/home/crealab/.cagefs/tmp/php3gX9pU
# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in French (France)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2022-02-22 08:10:33+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: fr\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/dash/dashboard.tpl.php:563
msgid "<b>Last crawled:</b> %d item(s)"
msgstr "<b>Dernière exploration :</b> %d élément(s)"

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr "Voir le .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "Vous pouvez utiliser le code %1$s dans %2$s pour spécifier le chemin du fichier htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr "La constante PHP %s est prise en charge."

#: tpl/toolbox/edit_htaccess.tpl.php:52 tpl/toolbox/edit_htaccess.tpl.php:69
msgid "Default path is"
msgstr "Le chemin par défaut est"

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr "Chemin .htaccess"

#: tpl/general/settings.tpl.php:151
msgid "Please read all warnings before enabling this option."
msgstr "Veuillez lire tous les avertissements avant d’activer cette option."

#: tpl/toolbox/purge.tpl.php:80
msgid "This will delete all generated unique CSS files"
msgstr "Cela supprimera tous les fichiers CSS uniques générés"

#: tpl/toolbox/beta_test.tpl.php:57
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "Afin d’éviter une erreur de mise à niveau, vous devez utiliser la version %1$s ou ultérieure avant de pouvoir mettre à niveau vers la version %2$s."

#: tpl/toolbox/beta_test.tpl.php:51
msgid "Use latest GitHub Dev/Master commit"
msgstr "Utiliser le dernier commit GitHub de développement/maître"

#: tpl/toolbox/beta_test.tpl.php:51
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Appuyez sur le bouton %s pour utiliser le commit GitHub le plus récent. Master est pour la version candidate et Dev est pour les tests expérimentaux."

#: tpl/toolbox/beta_test.tpl.php:47
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "La rétrogradation n’est pas recommandée. Peut provoquer une erreur fatale en raison du code remanié."

#: tpl/page_optm/settings_tuning.tpl.php:213
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Optimiser uniquement les pages pour les visiteurs invités (non connectés). Si cette option est désactivée, les fichiers CSS/JS/CCSS seront doublés par chaque groupe d’utilisateurs et utilisatrices."

#: tpl/page_optm/settings_tuning.tpl.php:179
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Les fichiers JS listés ou le code JS en ligne ne seront pas optimisés par %s."

#: tpl/page_optm/settings_tuning.tpl.php:97
msgid "Listed URI will not generate UCSS."
msgstr "Les URL listées ne généreront pas d’UCSS."

#: tpl/page_optm/settings_tuning.tpl.php:79
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "Le sélecteur doit exister dans le CSS. Les classes parentes dans le HTML ne fonctionneront pas."

#: tpl/page_optm/settings_tuning.tpl.php:75
msgid "Wildcard %s supported."
msgstr "Wildcard %s pris en charge."

#: tpl/page_optm/settings_tuning.tpl.php:74
msgid "How to choose an UCSS whitelist selector?"
msgstr "Comment choisir un sélecteur de liste d’acceptation UCSS ?"

#: tpl/page_optm/settings_media.tpl.php:227
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Définir une largeur et une hauteur explicites sur les éléments images pour réduire les changements de mise en page et améliorer le CLS (une métrique Core Web Vitals)"

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Delayed"
msgstr "Différé"

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr "Réglages HTML"

#: tpl/dash/dashboard.tpl.php:300 tpl/dash/dashboard.tpl.php:389
#: tpl/dash/dashboard.tpl.php:432 tpl/dash/dashboard.tpl.php:465
#: tpl/dash/dashboard.tpl.php:498 tpl/dash/dashboard.tpl.php:530
msgid "More"
msgstr "Plus"

#: tpl/dash/dashboard.tpl.php:160
msgid "Remaining Daily Quota"
msgstr "Quota quotidien restant"

#: tpl/crawler/summary.tpl.php:183
msgid "Successfully Crawled"
msgstr "Bien exploré"

#: tpl/crawler/summary.tpl.php:182
msgid "Already Cached"
msgstr "Déjà mise en cache"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "Le robot explorateur utilisera votre plan de site XML ou votre index de plan de site. Saisissez l’URL complète de votre plan de site ici."

#: tpl/cdn/settings.tpl.php:214
msgid "Optional when API token used."
msgstr "Facultatif en cas d’utilisation d’un jeton d’API."

#: tpl/cdn/settings.tpl.php:198
msgid "Global API Key / API Token"
msgstr "Clé/jeton d’API global"

#: tpl/cdn/settings.tpl.php:194
msgid "This can be managed from %1$s%2$s tab."
msgstr "Cela peut être géré à partir de l’onglet %1$s%2$s."

#: tpl/cdn/settings.tpl.php:54
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s."
msgstr "Remarque : QUIC.cloud CDN et Cloudflare n’utilisent pas de CDN mapping. Si vous utilisez uniquement QUIC.cloud ou Cloudflare, laissez ce réglage %1$s."

#: src/lang.cls.php:164
msgid "Add Missing Sizes"
msgstr "Ajouter les dimensions manquantes"

#: src/lang.cls.php:139
msgid "Optimize for Guests Only"
msgstr "Optimiser pour les visiteurs uniquement"

#: src/lang.cls.php:69
msgid "Guest Optimization"
msgstr "Optimisation visiteur"

#: src/lang.cls.php:68
msgid "Guest Mode"
msgstr "Mode visiteur"

#: src/doc.cls.php:37
msgid "Please see %s for more details."
msgstr "Veuillez voir %s pour plus de détails."

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Purgé !"

#: tpl/toolbox/beta_test.tpl.php:34
msgid "Use latest GitHub Master commit"
msgstr "Utiliser le dernier commit GitHub maître"

#: tpl/toolbox/beta_test.tpl.php:32
msgid "Use latest GitHub Dev commit"
msgstr "Utiliser le dernier commit GitHub de développement"

#: src/crawler-map.cls.php:317
msgid "No valid sitemap parsed for crawler."
msgstr "Aucun plan de site valide n’a été analysé par le robot explorateur."

#: src/lang.cls.php:109
msgid "CSS Combine External and Inline"
msgstr "Combiner les CSS externes et en ligne"

#: tpl/page_optm/settings_css.tpl.php:149
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Inclure les CSS externes et les CSS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par CSS Combine."

#: tpl/page_optm/settings_css.tpl.php:30
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiser les fichiers CSS et le code CSS en ligne."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:83
#: tpl/page_optm/settings_tuning.tpl.php:165
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La liste prédéfinie sera également combinée avec les réglages ci-dessus."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localisation"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Inclure les JS externes et les JS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par JS Combine."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combiner tous les fichiers JS locaux en un seul fichier."

#: tpl/page_optm/settings_tuning.tpl.php:158
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Les fichiers JS listés ou le code JS en ligne ne seront pas différés."

#: tpl/general/settings.tpl.php:94
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Demande envoyée. Veuillez patienter, puis actualisez la page pour voir la notification d’approbation."

#: src/data.upgrade.func.php:102
msgid "Click here to settings"
msgstr "Cliquez ici pour les réglages"

#: src/data.upgrade.func.php:101
msgid "JS Defer"
msgstr "Différer le JS"

#: src/data.upgrade.func.php:101
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "Mise à niveau réussie de LiteSpeed Cache. Note : en raison de modifications dans cette version, les réglages %1$s et %2$s ont été désactivés. Veuillez les réactiver manuellement, puis vérifier que la mise en page de votre site est correcte et que vous n’avez aucune erreur JS."

#: src/lang.cls.php:116
msgid "JS Combine External and Inline"
msgstr "Combiner les JS externes et en ligne"

#: src/admin-display.cls.php:455
msgid "Dismiss"
msgstr "Ignorer"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "Le dernier fichier de données est"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La liste sera fusionnée avec les nonces prédéfinis dans votre fichier de données local."

#: tpl/page_optm/settings_css.tpl.php:43
msgid "Combine CSS files and inline CSS code."
msgstr "Combinez les fichiers CSS et le code CSS en ligne."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minifier les fichiers JS et les codes JS en ligne."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Les fichiers JS listés ou le code JS en ligne ne seront pas minifiés/combinés."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Les fichiers CSS listés ou le code CSS en ligne ne seront pas minifiés/combinés."

#: src/css.cls.php:60 src/root.cls.php:176
msgid "Queue cleared successfully."
msgstr "File d’attente bien vidée."

#: src/admin-display.cls.php:930
msgid "This setting is overwritten by the Network setting"
msgstr "Ce réglage est surchargé par le réglage du réseau"

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr "LQIP exclut"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "Ces images ne génèrent pas de LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Confirmez-vous vouloir réinitialiser tous les réglages aux valeurs par défaut ?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "Cette option retirera toutes les balises %s du HTML."

#: tpl/general/settings.tpl.php:116
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Confirmez-vous vouloir vider tous les nœuds du cloud ?"

#: src/lang.cls.php:137
msgid "Remove Noscript Tags"
msgstr "Retirer les balises Noscript"

#: src/error.cls.php:84
msgid "The site is not registered on QUIC.cloud."
msgstr "Le site n’est pas enregistré sur QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Cliquez ici pour modifier."

#: src/cloud.cls.php:763 src/error.cls.php:48
msgid "Click here to set."
msgstr "Cliquez ici pour paramétrer."

#: src/cloud.cls.php:762
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site non reconnu. La clé de domaine a été automatiquement supprimée. Veuillez en demander une nouvelle."

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Paramétrage des en-têtes personnalisés"

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Réglages de localisation"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Indiquez au sélecteur CSS que son style doit toujours être contenu dans l’UCSS."

#: tpl/page_optm/settings_css.tpl.php:64
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Utilisez le service en ligne QUIC.cloud pour générer des CSS uniques."

#: src/lang.cls.php:110
msgid "Generate UCSS"
msgstr "Générer l’UCSS"

#: tpl/dash/dashboard.tpl.php:464 tpl/toolbox/purge.tpl.php:79
msgid "Unique CSS"
msgstr "CSS unique"

#: tpl/toolbox/purge.tpl.php:107
msgid "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"
msgstr "Purger les entrées de cache créées par cette extension à l’exception des caches CSS et LQIP critiques"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "Rapport LiteSpeed"

#: tpl/img_optm/summary.tpl.php:222
msgid "Image Thumbnail Group Sizes"
msgstr "Dimensions de groupe de la miniature d’image"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorez certaines chaînes de requête lors de la mise en cache. (%s LSWS nécessaire)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "Pour les URL avec des jokers, il peut y avoir un retard dans le lancement de la purge planifiée."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Par conception, cette option peut servir du contenu périmé. N’activez pas cette option si cela ne vous convient pas."

#: src/lang.cls.php:97
msgid "Serve Stale"
msgstr "Servir le périmé"

#: src/admin-display.cls.php:927
msgid "This setting is overwritten by the primary site setting"
msgstr "Ce réglage est surchargé par le réglage du site principal"

#: src/img-optm.cls.php:965
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Une ou plusieurs images tirées ne correspondent pas à l’image md5 notifiée"

#: src/img-optm.cls.php:948
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Certains fichiers d’image optimisés ont expiré et ont été effacés."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "Vous avez trop d’images notifiées, veuillez d’abord retirer les images notifiées."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Vous avez trop de demandes d’images, veuillez réessayer dans quelques minutes."

#: src/img-optm.cls.php:1026
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "L’image WebP md5 tirée ne correspond pas à l’image WebP md5 notifiée."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Lire la documentation LiteSpeed"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "Il y a une file d’attente qui n’est pas encore tirée. Informations sur la file d’attente : %s."

#: src/lang.cls.php:220
msgid "Sitemap Timeout"
msgstr "Délai d’attente du plan du site"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Précisez le délai d’attente lors de l’analyse du plan du site."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Spécifiez combien de temps, en secondes, les fichiers Gravatar sont mis en cache."

#: tpl/general/settings.tpl.php:112
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Une clé de domaine est nécessaire pour les services en ligne QUIC.cloud."

#: src/img-optm.cls.php:548
msgid "Cleared %1$s invalid images."
msgstr "Effacé %1$s images non valides."

#: src/img-optm.cls.php:510
msgid "Bypassed %1$s duplicated images."
msgstr "Contourné %1$s images dupliquées."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Demander la clé du domaine"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "Réglages généraux de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all cached Gravatar files"
msgstr "Cela supprimera tous les fichiers Gravatar mis en cache"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Empêcher tout journal de débogage des pages listées."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Journaliser uniquement les pages répertoriées."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Précisez la taille maximale du fichier journal."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Pour éviter de remplir le disque, ce réglage doit être désactivé lorsque tout fonctionne."

#: tpl/toolbox/beta_test.tpl.php:52
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Cliquez sur le bouton %s pour stopper le test bêta et revenir à la version actuelle depuis le répertoire des extensions WordPress."

#: tpl/toolbox/beta_test.tpl.php:36 tpl/toolbox/beta_test.tpl.php:52
msgid "Use latest WordPress release version"
msgstr "Utiliser la dernière version de WordPress"

#: tpl/toolbox/beta_test.tpl.php:36
msgid "OR"
msgstr "Ou"

#: tpl/toolbox/beta_test.tpl.php:27
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utilisez cette section pour permuter les versions d’extension. Pour tester la version bêta d'un commit GitHub, saisissez l’URL du commit dans le champ ci-dessous."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Réinitialiser les réglages"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "Boîte à outils LiteSpeed Cache"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Bêta test"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Vue du journal"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Réglages de débogage"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Activez pour contrôler les battements de cœur dans l'éditeur de l’interface d’administration."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "L’intervalle valide de WordPress est de %s secondes"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Activez pour contrôler les battements de cœur dans l’interface d’administration."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Réglez sur %1$s pour interdire les battements de cœur sur %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "L’intervalle valide de WordPress est de %s secondes."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Précisez l’intervalle de battement de cœur de %s en secondes."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Activez pour contrôler les battements de cœur sur l’interface publique."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Désactivez l’intervalle de battement de cœur de WordPress pour réduire la charge du serveur."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Contrôle des battements de cœur"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "fournir plus d'informations ici pour aider l’équipe LiteSpeed dans le débogage."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Facultatif"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Générer un lien pour l’utilisateur actuel"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Lien de connexion sans mot de passe"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Informations système"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Aller à la liste des extensions"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Installer DoLogin Security"

#: tpl/general/settings.tpl.php:206
msgid "Check my public IP from"
msgstr "Vérifier mon IP publique à partir de"

#: tpl/general/settings.tpl.php:206
msgid "Your server IP"
msgstr "L’adresse IP de votre serveur"

#: tpl/general/settings.tpl.php:205
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Saisissez l'adresse IP de ce site pour permettre aux services de cloud d'appeler directement l’IP au lieu du nom de domaine. Cela permet d’éviter les surcharges des consultations DNS et CDN."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Précisez le délai d’attente lors de l’exploration de chaque URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Précisez le temps en secondes pour le temps entre chaque intervalle d’exécution."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "Cela permettra le cron du robot explorateur."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Réglages généraux du robot explorateur"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr "Pas sur liste de refus"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr "Retirer de la liste de refus"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr "Vider la liste de refus"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr "Confirmez-vous vouloir supprimer toutes les listes de refus existantes ?"

#: tpl/crawler/blacklist.tpl.php:56 tpl/crawler/map.tpl.php:69
msgid "Blacklisted due to not cacheable"
msgstr "Mis sur liste de refus car impossible à mettre en cache"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr "Ajouter à la liste noire"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr "Opération"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Total du plan de site"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Liste du plan du site"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Actualiser la carte du robot explorateur"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Vider la carte du robot explorateur"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Réglages du plan du site"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Réglages de simulation"

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blacklist"
msgstr "Liste de blocage"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Carte"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Résumé"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Si vous utilisez plusieurs domaines pour un site et que vous avez plusieurs domaines dans le plan du site, veuillez laisser cette option désactivée afin que le robot explorateur sache qu’il doit explorer chaque domaine."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "Le robot explorateur analyse le plan du site et le sauvegarde dans la base de données avant l’exploration. Lors de l’analyse du plan du site, l’abandon du domaine peut permettre d’économiser du stockage en base de données."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Réglages de plan de site du robot explorateur"

#: tpl/crawler/summary.tpl.php:190
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr " Si le cron et une exécution manuelle démarrent tous deux à des moments similaires, le premier qui démarre aura la priorité."

#: tpl/crawler/summary.tpl.php:189
msgid "Crawlers cannot run concurrently."
msgstr "Les robots explorateurs ne peuvent pas s’exécuter simultanément."

#: tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Cache manquant"

#: tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Occurrences de cache"

#: tpl/crawler/summary.tpl.php:181
msgid "Waiting to be Crawled"
msgstr "En attente d’exploration"

#: tpl/crawler/blacklist.tpl.php:57 tpl/crawler/map.tpl.php:70
#: tpl/crawler/summary.tpl.php:160 tpl/crawler/summary.tpl.php:184
msgid "Blacklisted"
msgstr "Bloqué"

#: tpl/crawler/summary.tpl.php:159
msgid "Miss"
msgstr "Manquer"

#: tpl/crawler/summary.tpl.php:158
msgid "Hit"
msgstr "Occurrences"

#: tpl/crawler/summary.tpl.php:157
msgid "Waiting"
msgstr "En attente"

#: tpl/crawler/summary.tpl.php:126
msgid "Running"
msgstr "En cours d’exécution"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Utilisez %1$s dans %2$s pour indiquer que ce cookie n’a pas été défini."

#: src/admin-display.cls.php:209
msgid "Add new cookie to simulate"
msgstr "Ajouter un nouveau cookie pour simuler"

#: src/admin-display.cls.php:208
msgid "Remove cookie simulation"
msgstr "Supprimer la simulation de cookie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Réglages de simulation du robot explorateur"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr "La règle htaccess est : %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "D’autres réglages sont disponibles dans le menu %s"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "La durée, en secondes, pendant laquelle les fichiers seront stockés dans le cache du navigateur avant d’expirer."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Utilisateurs d’OpenLiteSpeed, veuillez vérifier ceci"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Réglages du cache navigateur"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Les chemins contenant ces chaînes de caractères seront forcés à être mis en cache public, indépendamment des réglages qui ne peuvent pas être mis en cache."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Si le CDN QUIC.cloud est activé, vous pouvez toujours voir les en-têtes de cache de votre serveur local."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Un second paramètre facultatif peut être utilisé pour spécifier le contrôle du cache. Utilisez un espace pour séparer"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Les nonces ci-dessus seront automatiquement convertis en ESI."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Navigateur"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Objet"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Le port par défaut pour %1$s est %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Réglages du cache objet"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Spécifiez un code d’état HTTP et le nombre de secondes pour mettre cette page en cache, séparés par un espace."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Spécifiez combien de temps, en secondes, la page d’accueil est mise en cache."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si activé, une copie périmée de la page en cache sera affichée au visiteur jusqu’à ce qu’une nouvelle copie de cache soit disponible. Réduit la charge du serveur pour les visites suivantes. Si désactivé, la page sera générée dynamiquement pendant que le visiteur attend."

#: tpl/page_optm/settings_css.tpl.php:269
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:268
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Définissez ceci pour ajouter %1$s à toutes les règles %2$s avant de mettre en cache le CSS pour spécifier comment les polices doivent être affichées lors du téléchargement."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Liste des avatars en attente de mise à jour"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Actualiser le cache  Gravatar par cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Accélère la vitesse en mettant en cache Gravatar (avatars mondialement reconnus)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Stockez Gravatar localement."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Échec de la création de la table Avatar. Veuillez suivre les conseils <a %s>de création de tableau du wiki LiteSpeed</a> pour terminer la configuration."

#: tpl/page_optm/settings_media.tpl.php:140
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "Les requêtes LQIP ne seront pas envoyées pour les images dont la largeur et la hauteur sont inférieures à ces dimensions."

#: tpl/page_optm/settings_media.tpl.php:138
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:122
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Un plus grand nombre générera une meilleure qualité de résolution de remplacement, mais donnera lieu à des fichiers plus volumineux qui augmenteront la taille des pages et consommeront plus de points."

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Specify the quality when generating LQIP."
msgstr "Précisez la qualité lors de la génération du LQIP."

#: tpl/page_optm/settings_media.tpl.php:107
msgid "Keep this off to use plain color placeholders."
msgstr "N’utilisez pas cette option pour utiliser des textes indicatifs en couleur."

#: tpl/page_optm/settings_media.tpl.php:106
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Utilisez le service de génération de LQIP (Low Quality Image Placeholder) de QUIC.cloud pour une prévisualisation responsive des images pendant le chargement."

#: tpl/page_optm/settings_media.tpl.php:92
msgid "Specify the responsive placeholder SVG color."
msgstr "Précisez la couleur SVG du texte indicatif responsive."

#: tpl/page_optm/settings_media.tpl.php:78
msgid "Variables %s will be replaced with the configured background color."
msgstr "Les variables %s seront remplacées par la couleur d’arrière-plan configurée."

#: tpl/page_optm/settings_media.tpl.php:77
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Les variables %s seront remplacées par les propriétés de l’image correspondante."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Ce sera converti à la volée en un texte indicatif base64 SVG."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Spécifiez un SVG à utiliser comme texte indicatif lors de la génération en local."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Empêcher tout chargement différé des pages listées."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Les iframes ayant ces noms de classe parent ne seront pas chargées en différé."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Les iframes contenant ces noms de classe ne seront pas chargées en différé."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Les images ayant ces noms de classe de parent ne seront pas chargées en différé."

#: tpl/page_optm/entry.tpl.php:19
msgid "LiteSpeed Cache Page Optimization"
msgstr "Optimisation des pages de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Médias exclus"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:16
msgid "CSS Settings"
msgstr "Réglages CSS"

#: tpl/page_optm/settings_css.tpl.php:269
msgid "%s is recommended."
msgstr "%s est recommandé."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Deferred"
msgstr "Différé"

#: tpl/page_optm/settings_css.tpl.php:266
msgid "Default"
msgstr "Par défaut"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "Cela peut améliorer la vitesse de chargement des pages."

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activer automatiquement le pré-lancement des DNS pour les URL dans le document, y compris les images, CSS, JavaScript, etc…"

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "La nouvelle version développeur %s est disponible dès maintenant."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "Nouvelle version développeur disponible !"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Ignorer cette notification"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweeter ceci"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Aperçu du tweet"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Apprendre plus"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "Vous venez de débloquer une promotion de QUIC.cloud !"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "Le réglage de la qualité de compression d’image de WordPress sur 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Réglages d’optimisation des images"

#: tpl/img_optm/summary.tpl.php:373
msgid "Are you sure to destroy all optimized images?"
msgstr "Confirmez-vous vouloir détruire toutes les images optimisées ?"

#: tpl/img_optm/summary.tpl.php:365
msgid "Use Optimized Files"
msgstr "Utiliser les fichiers optimisés"

#: tpl/img_optm/summary.tpl.php:364
msgid "Switch back to using optimized images on your site"
msgstr "Revenir à l’utilisation d’images optimisées sur votre site"

#: tpl/img_optm/summary.tpl.php:361
msgid "Use Original Files"
msgstr "Utiliser les fichiers originaux"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use original images (unoptimized) on your site"
msgstr "Utiliser des images originales (non optimisées) sur votre site"

#: tpl/img_optm/summary.tpl.php:355
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Vous pouvez rapidement passer de l’utilisation de fichiers d’images originaux (versions non optimisées) à celle de fichiers d’images optimisés. Cela affectera toutes les images de votre site web, qu’il s’agisse de la version normale ou de la version webp si disponible."

#: tpl/img_optm/summary.tpl.php:352
msgid "Optimization Tools"
msgstr "Outils d’optimisation"

#: tpl/img_optm/summary.tpl.php:325
msgid "Rescan New Thumbnails"
msgstr "Scanner à nouveau les nouvelles miniatures"

#: tpl/img_optm/summary.tpl.php:317
msgid "Congratulations, all requested!"
msgstr "Félicitations, tous demandées !"

#: tpl/img_optm/summary.tpl.php:290
msgid "Congratulations, all gathered!"
msgstr "Félicitations, tous recueillies !"

#: tpl/img_optm/summary.tpl.php:287
msgid "Images not yet gathered"
msgstr "Images non encore recueillies"

#: tpl/img_optm/summary.tpl.php:282 tpl/img_optm/summary.tpl.php:309
msgid "What is an image group?"
msgstr "Qu’est-ce qu’un groupe d’images ?"

#: tpl/img_optm/summary.tpl.php:233
msgid "Delete all backups of the original images"
msgstr "Supprimer toutes les sauvegardes des images originales"

#: tpl/img_optm/summary.tpl.php:215
msgid "Calculate Backups Disk Space"
msgstr "Calculer l’espace disque de sauvegarde"

#: tpl/img_optm/summary.tpl.php:100
msgid "Optimization Status"
msgstr "État de l’optimisation"

#: tpl/img_optm/summary.tpl.php:84
msgid "Gather Image Data"
msgstr "Recueillir les données des images"

#: tpl/img_optm/summary.tpl.php:72
msgid "Current limit is"
msgstr "La limite actuelle est"

#: tpl/img_optm/summary.tpl.php:71
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "Afin de s’assurer que notre serveur peut communiquer avec le vôtre sans problème et que tout fonctionne bien, pour les quelques premières demandes, le nombre d’images autorisées dans une seule requête est limité."

#: tpl/img_optm/summary.tpl.php:66
msgid "You can request a maximum of %s images at once."
msgstr "Vous pouvez demander un maximum de %s images à la fois."

#: tpl/img_optm/summary.tpl.php:61
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiser les images avec notre serveur QUIC.cloud"

#: tpl/img_optm/summary.tpl.php:57 tpl/page_optm/settings_css.tpl.php:90
#: tpl/page_optm/settings_css.tpl.php:200
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "Le serveur Cloud le plus proche est actuellement %s.&#10; Cliquez pour le détecter à nouveau."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Les révisions plus récentes que ce nombre de jours seront conservées lors du nettoyage des révisions."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Jour(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Précisez le nombre de révisions les plus récentes à conserver lors du nettoyage des révisions."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimisation de la base de données LiteSpeed Cache"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Réglages d’optimisation de la BDD"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Nom de l’option"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Résumé de la base de données"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "Nous sommes bons. Aucune table n’utilise le moteur MyISAM."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Convertir en InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Outil"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Moteur"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Tableau"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Convertisseur de moteur de table de base de données"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Révisions propres plus anciennes que %1$s jour(s), à l’exclusion des %2$s dernières révisions"

#: tpl/dash/dashboard.tpl.php:537
msgid "Currently active crawler"
msgstr "Robot explorateur actuellement actif"

#: tpl/dash/dashboard.tpl.php:534
msgid "Crawler(s)"
msgstr "Robot(s) explorateur(s)"

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:529
msgid "Crawler Status"
msgstr "État du robot explorateur"

#: tpl/dash/dashboard.tpl.php:448 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513
msgid "Force cron"
msgstr "Forcer le cron"

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:511
msgid "Requests in queue"
msgstr "Demandes en file d’attente"

#: tpl/dash/dashboard.tpl.php:440 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:506
msgid "Time to execute previous request"
msgstr "Délai d’exécution de la demande précédente"

#: tpl/dash/dashboard.tpl.php:417
msgid "Cache Stats"
msgstr "Statistiques de cache"

#: tpl/dash/dashboard.tpl.php:395
msgid "Private Cache"
msgstr "Cache privé"

#: tpl/dash/dashboard.tpl.php:394
msgid "Public Cache"
msgstr "Cache public"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Status"
msgstr "État du cache"

#: tpl/dash/dashboard.tpl.php:360
msgid "Last Pull"
msgstr "Dernier tirage"

#: tpl/dash/dashboard.tpl.php:325
msgid "Images Requested"
msgstr "Images demandées"

#: tpl/dash/dashboard.tpl.php:310
msgid "Image Groups Prepared"
msgstr "Groupes d’images préparés"

#: tpl/dash/dashboard.tpl.php:299 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Résumé d’optimisation des images"

#: tpl/dash/dashboard.tpl.php:238
msgid "Refresh page score"
msgstr "Actualiser le score de la page"

#: tpl/dash/dashboard.tpl.php:227 tpl/img_optm/summary.tpl.php:57
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:200
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Confirmez-vous vouloir détecter à nouveau le serveur cloud le plus proche pour ce service ?"

#: tpl/dash/dashboard.tpl.php:227
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "Le serveur Cloud le plus proche est actuellement %s.&#10;Cliquez pour le redétecter."

#: tpl/dash/dashboard.tpl.php:222 tpl/dash/dashboard.tpl.php:291
#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:489
#: tpl/dash/dashboard.tpl.php:521
msgid "Last requested"
msgstr "Dernière demande"

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh page load time"
msgstr "Actualiser le temps de chargement des pages"

#: tpl/dash/dashboard.tpl.php:169
msgid "Go to QUIC.cloud dashboard"
msgstr "Aller au tableau de bord QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:497
msgid "Low Quality Image Placeholder"
msgstr "Texte indicatif d’image de faible qualité"

#: tpl/dash/dashboard.tpl.php:45
msgid "Sync data from Cloud"
msgstr "Synchroniser les données depuis le Cloud"

#: tpl/dash/dashboard.tpl.php:42
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Statistiques sur l’utilisation des services QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:151 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Total des images optimisées ce mois-ci"

#: tpl/dash/dashboard.tpl.php:150 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Utilisation totale"

#: tpl/dash/dashboard.tpl.php:131 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Statistiques sur l’utilisation du paiement au fur et à mesure"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "Utilisation de ce mois"

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "Solde du paiement au fur et à mesure"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Paiement au fur et à mesure"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Utilisation"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Utilisation de la file d’attente rapide"

#: tpl/dash/dashboard.tpl.php:57 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "Bande passante de CDN"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Statistiques d’utilisation"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "Tableau de bord LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Tableau de bord du réseau"

#: tpl/general/settings.tpl.php:128
msgid "No cloud services currently in use"
msgstr "Aucun service cloud n’est actuellement utilisé"

#: tpl/general/settings.tpl.php:116
msgid "Click to clear all nodes for further redetection."
msgstr "Cliquez pour effacer tous les nœuds pour une nouvelle détection."

#: tpl/general/settings.tpl.php:115
msgid "Current Cloud Nodes in Service"
msgstr "Nœuds cloud actuels en service"

#: tpl/general/settings.tpl.php:107
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Avantages de lier vers un compte QUIC.cloud"

#: tpl/general/settings.tpl.php:106
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Vous devez cliquer sur le bouton %s si vous souhaitez associer ce site à un compte QUIC.cloud."

#: tpl/general/settings.tpl.php:101
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Vous devez d’abord avoir %1$s avant de créer un lien vers QUIC.cloud."

#: tpl/general/settings.tpl.php:87
msgid "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."
msgstr "Veuillez vérifier que vos autres extensions ne bloquent pas les appels à l’API REST, mettez nos adresses IP sur une liste d’acceptation ou contactez l’administrateur/administratrice de votre serveur pour obtenir une assistance."

#: tpl/general/settings.tpl.php:86
msgid "Our %s was not whitelisted."
msgstr "Notre %s n’était pas en liste d’acceptation."

#: tpl/general/settings.tpl.php:85
msgid "The POST callback to %s failed."
msgstr "Le rappel de publication vers %s a échoué."

#: tpl/general/settings.tpl.php:84
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "Il y a deux raisons pour lesquelles nous pourrions ne pas être en mesure de communiquer avec votre domaine :"

#: tpl/general/settings.tpl.php:83
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Un problème est survenu lors de la récupération de votre clé de domaine. Veuillez cliquer sur le bouton %s pour réessayer."

#: tpl/general/settings.tpl.php:75 tpl/general/settings.tpl.php:77
#: tpl/general/settings.tpl.php:106
msgid "Link to QUIC.cloud"
msgstr "Lier à QUIC.cloud"

#: tpl/general/settings.tpl.php:73
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visitez mon tableau de bord sur QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Prochaine heure de demande disponible : <code>après %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Approuvé"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Demandé"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "En attente d’approbation"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "En attente d’actualisation"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Actualiser la clé de domaine"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:42
msgid "General Settings"
msgstr "Réglages généraux"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Spécifiez quels attributs des éléments HTML seront remplacés avec CDN Mapping."

#: src/admin-display.cls.php:231
msgid "Add new CDN URL"
msgstr "Ajouter une nouvelle URL de CDN"

#: src/admin-display.cls.php:230
msgid "Remove CDN URL"
msgstr "Supprimer l’URL du CDN"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Activez la fonctionnalité %s de l’API du CDN."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Pour activer la fonctionnalité suivante, activez l’API Cloudflare dans les réglages CDN."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "Pour gérer les options de QUIC.cloud, veuillez visiter"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "Réglages WooCommerce"

#: src/doc.cls.php:119 tpl/general/settings.tpl.php:86
msgid "Current Online Server IPs"
msgstr "IP actuelles du serveur en ligne"

#: src/doc.cls.php:118
msgid "Before generating key, please verify all IPs on this list are whitelisted"
msgstr "Avant de générer la clé, veuillez vérifier que toutes les IP de cette liste sont sur la liste blanche."

#: src/doc.cls.php:117
msgid "For online services to work correctly, you must whitelist all %s server IPs."
msgstr "Pour que les services en ligne fonctionnent correctement, vous devez inscrire sur une liste d’acceptation toutes les adresses IP des serveurs en ligne."

#: src/gui.cls.php:536 src/gui.cls.php:687
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:88
msgid "LQIP Cache"
msgstr "Cache LQIP"

#: src/gui.cls.php:84
msgid "Private Cache Hits"
msgstr "Occurrence du cache privé"

#: src/gui.cls.php:83
msgid "Private Caches"
msgstr "Caches privés"

#: src/gui.cls.php:82
msgid "Public Cache Hits"
msgstr "Occurrences du cache public"

#: src/gui.cls.php:81
msgid "Public Caches"
msgstr "Caches publics"

#: src/admin-settings.cls.php:242 src/admin-settings.cls.php:276
msgid "Options saved."
msgstr "Options enregistrées."

#: src/img-optm.cls.php:1462
msgid "Removed backups successfully."
msgstr "Sauvegardes bien supprimées."

#: src/img-optm.cls.php:1400
msgid "Calculated backups successfully."
msgstr "Sauvegardes bien calculées."

#: src/img-optm.cls.php:1341
msgid "Rescaned %d images successfully."
msgstr "%d images ont bien été réanalysées."

#: src/img-optm.cls.php:1276 src/img-optm.cls.php:1341
msgid "Rescaned successfully."
msgstr "Bien été réanalysées."

#: src/img-optm.cls.php:1244
msgid "Destroy all optimization data successfully."
msgstr "Bien détruire toutes les données d’optimisation."

#: src/img-optm.cls.php:1173
msgid "Cleaned up unfinished data successfully."
msgstr "Bien nettoyé les données non finalisées."

#: src/img-optm.cls.php:1086
msgid "Pulled %d image(s)"
msgstr "Extrait %d image(s)"

#: src/img-optm.cls.php:1009
msgid "Optimized WebP file expired and was cleared."
msgstr "Le fichier WebP optimisé a expiré et a été effacé."

#: src/img-optm.cls.php:889
msgid "Pull Cron is running"
msgstr "Le tirage du cron est en cours d’exécution"

#: src/img-optm.cls.php:650
msgid "No valid image found by Cloud server in the current request."
msgstr "Aucune image valide trouvée par le serveur cloud dans la demande actuelle."

#: src/img-optm.cls.php:627
msgid "No valid image found in the current request."
msgstr "Aucune image valide trouvée dans la demande actuelle."

#: src/img-optm.cls.php:473
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s poussées vers le serveur Cloud, %2$s acceptées."

#: src/img-optm.cls.php:181
msgid "Gathered %d images successfully."
msgstr "%d images bien collectées."

#: src/img-optm.cls.php:148
msgid "No new image gathered."
msgstr "Aucune nouvelle image recueillie."

#: src/lang.cls.php:233
msgid "Revisions Max Age"
msgstr "Âge maximal des révisions"

#: src/lang.cls.php:232
msgid "Revisions Max Number"
msgstr "Nombre maximum de révisions"

#: src/lang.cls.php:230
msgid "Debug URI Excludes"
msgstr "L’URL de débogage exclut"

#: src/lang.cls.php:229
msgid "Debug URI Includes"
msgstr "L’URL de débogage comprend"

#: src/lang.cls.php:219
msgid "Drop Domain from Sitemap"
msgstr "Supprimer le domaine du plan de site"

#: src/lang.cls.php:214
msgid "Timeout"
msgstr "Délai dépassé"

#: src/lang.cls.php:202
msgid "HTML Attribute To Replace"
msgstr "Attribut HTML à remplacer"

#: src/lang.cls.php:196
msgid "Use CDN Mapping"
msgstr "Utiliser le mappage CDN"

#: src/lang.cls.php:195
msgid "QUIC.cloud CDN"
msgstr "CDN QUIC.cloud"

#: src/lang.cls.php:193
msgid "Editor Heartbeat TTL"
msgstr "Éditeur Heartbeat TTL"

#: src/lang.cls.php:192
msgid "Editor Heartbeat"
msgstr "Éditeur Heartbeat"

#: src/lang.cls.php:191
msgid "Backend Heartbeat TTL"
msgstr "TTL du battement de cœur de l’interface d’administration"

#: src/lang.cls.php:190
msgid "Backend Heartbeat Control"
msgstr "Contrôle du battement de cœur de l’interface d’administration"

#: src/lang.cls.php:189
msgid "Frontend Heartbeat TTL"
msgstr "TTL du battement de cœur de l’interface publique"

#: src/lang.cls.php:188
msgid "Frontend Heartbeat Control"
msgstr "Contrôle du battement de cœur de l’interface publique"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Chemin du .htaccess de l’interface d’administration"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Chemin .htaccess sur interface publique"

#: src/lang.cls.php:178
msgid "ESI Nonces"
msgstr "Nonces d’ESI"

#: src/lang.cls.php:174
msgid "WordPress Image Quality Control"
msgstr "Contrôle de la qualité des images WordPress"

#: src/lang.cls.php:169
msgid "Create WebP Versions"
msgstr "Créer les versions WebP"

#: src/lang.cls.php:166
msgid "Auto Pull Cron"
msgstr "Cron de traction automatique"

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr "Générer LQIP en arrière-plan"

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr "Dimensions minimales de LQIP"

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr "Qualité de LQIP"

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr "Générateur de cloud de LQIP"

#: src/lang.cls.php:144
msgid "Gravatar Cache TTL"
msgstr "TTL du cache Gravatar"

#: src/lang.cls.php:143
msgid "Gravatar Cache Cron"
msgstr "Cron du cache Gravatar"

#: src/gui.cls.php:546 src/gui.cls.php:697 src/lang.cls.php:142
#: tpl/toolbox/purge.tpl.php:97
msgid "Gravatar Cache"
msgstr "Cache Gravatar"

#: src/lang.cls.php:125
msgid "DNS Prefetch Control"
msgstr "Contrôle du préfixe DNS"

#: src/lang.cls.php:122
msgid "Font Display Optimization"
msgstr "Optimisation de l’affichage des polices"

#: src/lang.cls.php:101
msgid "Force Public Cache URIs"
msgstr "Forcer les URL du cache public"

#: src/lang.cls.php:70
msgid "Notifications"
msgstr "Notifications"

#: src/lang.cls.php:58
msgid "Enable Cache"
msgstr "Activer la mise en cache"

#: src/lang.cls.php:54
msgid "Domain Key"
msgstr "Clé de domaine"

#: src/lang.cls.php:53
msgid "Server IP"
msgstr "IP du serveur"

#: src/lang.cls.php:33
msgid "Duplicate image files ignored"
msgstr "Fichiers d’image dupliqués ignorés"

#: src/lang.cls.php:23
msgid "Images not requested"
msgstr "Images non demandées"

#: src/cloud.cls.php:1184
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Synchronisation de l’allocation de crédit avec le serveur cloud bien effectuée."

#: src/cloud.cls.php:1073
msgid "Domain Key hash mismatch"
msgstr "Erreur de hachage de la clé de domaine"

#: src/cloud.cls.php:1002
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "Félicitations, votre clé de domaine a été approuvée ! Les réglages ont été définis en conséquence."

#: src/cloud.cls.php:951
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Demande de clé de domaine bien effectuée. Veuillez attendre le résultat. La clé de domaine sera automatiquement envoyée à votre WordPress."

#: src/cloud.cls.php:754 src/cloud.cls.php:932
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Échec de la communication avec le serveur QUIC.cloud"

#: src/cloud.cls.php:702
msgid "Good news from QUIC.cloud server"
msgstr "Bonnes nouvelles du serveur QUIC.cloud"

#: src/cloud.cls.php:686 src/cloud.cls.php:694 src/cloud.cls.php:943
msgid "Message from QUIC.cloud server"
msgstr "Message du serveur QUIC.cloud"

#: src/cloud.cls.php:551
msgid "Please try after %1$s for service %2$s."
msgstr "Veuillez essayer après %1$s pour le service %2$s."

#: src/cloud.cls.php:407
msgid "No available Cloud Node."
msgstr "Aucun nœud de cloud disponible."

#: src/cloud.cls.php:359 src/cloud.cls.php:372 src/cloud.cls.php:407
#: src/cloud.cls.php:432 src/cloud.cls.php:551 src/cloud.cls.php:907
msgid "Cloud Error"
msgstr "Erreur de cloud"

#: src/data.cls.php:219
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de données a été mise à niveau en arrière-plan depuis %s. Ce message disparaîtra une fois la mise à niveau terminée."

#: src/media.cls.php:335
msgid "Restore from backup"
msgstr "Restaurer depuis une sauvegarde"

#: src/media.cls.php:325
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:319
msgid "No backup of unoptimized WebP file exists."
msgstr "Aucune sauvegarde du fichier WebP non optimisé n’existe."

#: src/media.cls.php:306
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Fichier WebP réduit de %1$s (%2$s)"

#: src/media.cls.php:302
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Utilisation actuelle de la version originale (non optimisée) du fichier WebP."

#: src/media.cls.php:297
msgid "Currently using optimized version of WebP file."
msgstr "Utilisation actuelle d’une version optimisée du fichier WebP."

#: src/media.cls.php:281
msgid "Orig"
msgstr "Originale"

#: src/media.cls.php:278
msgid "(no savings)"
msgstr "(aucun enregistrement)"

#: src/media.cls.php:278
msgid "Orig %s"
msgstr "%s originaux"

#: src/media.cls.php:275
msgid "Congratulation! Your file was already optmized"
msgstr "Félicitations ! Votre fichier a déjà été optimisé"

#: src/media.cls.php:266
msgid "No backup of original file exists."
msgstr "Aucune sauvegarde du fichier original n’existe."

#: src/media.cls.php:266 src/media.cls.php:319
msgid "Using optimized version of file. "
msgstr "Utilisation de la version optimisée du fichier. "

#: src/media.cls.php:247 src/media.cls.php:301
msgid "(non-optm)"
msgstr "(non-optimisée)"

#: src/media.cls.php:243 src/media.cls.php:297
msgid "Click to switch to original (unoptimized) version."
msgstr "Cliquez pour passer à la version originale (non optimisée)."

#: src/media.cls.php:243
msgid "Currently using optimized version of file."
msgstr "Utilisation actuelle d’une version optimisée du fichier."

#: src/media.cls.php:242 src/media.cls.php:267 src/media.cls.php:296
#: src/media.cls.php:320
msgid "(optm)"
msgstr "(optimisée)"

#: src/placeholder.cls.php:138
msgid "LQIP image preview for size %s"
msgstr "Aperçu de l’image LQIP pour la taille %s"

#: src/placeholder.cls.php:80 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/admin-display.cls.php:1092
msgid "Invalid IP"
msgstr "IP non valide"

#: src/admin-display.cls.php:1064
msgid "Smaller than"
msgstr "Plus petit que"

#: src/admin-display.cls.php:1061
msgid "Larger than"
msgstr "Plus grand que"

#: src/admin-display.cls.php:1054
msgid "Zero, or"
msgstr "Zéro, ou"

#: src/admin-display.cls.php:1042
msgid "Maximum value"
msgstr "Valeur maximale"

#: src/admin-display.cls.php:1039
msgid "Minimum value"
msgstr "Valeur minimale"

#: src/admin-display.cls.php:1021
msgid "Path must end with %s"
msgstr "Le chemin doit finir par %s"

#: src/admin-display.cls.php:1004
msgid "Invalid rewrite rule"
msgstr "Règle de réécriture non valide"

#: src/admin-display.cls.php:934
msgid "currently set to %s"
msgstr "actuellement défini à %s"

#: src/admin-display.cls.php:131
msgid "Toolbox"
msgstr "Boîte à outils"

#: src/admin-display.cls.php:127
msgid "Database"
msgstr "Base de données"

#: src/admin-display.cls.php:115 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Tableau de bord"

#: src/error.cls.php:173
msgid "Unknown error"
msgstr "Erreur inconnue"

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "Le réglage %s est actuellement activé."

#: src/task.cls.php:120
msgid "Every Minute"
msgstr "Chaque minute"

#: tpl/general/settings.tpl.php:223
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activez cette option pour afficher automatiquement les dernières nouvelles, y compris les correctifs, les nouvelles versions, les versions bêta disponibles et les promotions."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Pour accorder un accès wp-admin à l’équipe de support de LiteSpeed, veuillez générer un lien sans mot de passe pour l’utilisateur actuellement connecté qui sera envoyé avec le rapport."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Les liens générés peuvent être gérés dans <a %s>Réglages</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Veuillez ne pas partager le lien sans mot de passe ci-dessus avec qui que ce soit."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Pour générer un lien sans mot de passe pour un accès à l’équipe de support de LiteSpeed, vous devez installer %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Installer"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Ces options sont uniquement disponibles avec LiteSpeed Enterprise Web Server ou QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr "Score PageSpeed"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr "Amélioré par"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr "Après"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr "Avant"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr "Temps de chargement de la page"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Pour utiliser les fonctions de mise en cache, vous devez avoir un serveur web LiteSpeed ou utiliser un CDN QUIC.cloud."

#: src/lang.cls.php:171
msgid "Preserve EXIF/XMP data"
msgstr "Conserver les données EXIF/XMP"

#: tpl/toolbox/beta_test.tpl.php:23
msgid "Try GitHub Version"
msgstr "Essayez la version GitHub"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si vous désactivez un des réglages ci-dessus, veuillez supprimer les types de fichiers correspondants de la boîte %s."

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr "Il est possible d’utiliser aussi bien des chaînes complètes que partielles."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Les images contenant ces noms de classes ne seront pas chargées en différé."

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Le nom de la classe d’image de chargement différé exclut"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Par exemple, %1$s définit un TTL de %2$s secondes pour %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Pour définir un TTL personnalisé pour une URL, ajoutez un espace suivi de la valeur TTL à la fin de l’URL."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Peut-être ultérieurement"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Activer la mise à niveau auto"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:60
msgid "Upgrade"
msgstr "Mettre à niveau"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "La nouvelle version %s est maintenant disponible."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "Nouvelle version disponible !"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Forum de support</a> | <a %s>Soumettre un ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Créé avec ❤️ par l’équipe LiteSpeed."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Bien sûr que j’adorerais évaluer !"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Merci d’utiliser l’extension LiteSpeed Cache !"

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr "Bien mis à niveau."

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr "Échec de mise à niveau."

#: src/conf.cls.php:704
msgid "Changed setting successfully."
msgstr "Réglage bien modifié."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "Exemple d’ESI pour les développeurs"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Remplacer %1$s avec %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Vous pouvez transformer les codes courts en blocs ESI."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW : cache privé vs. cache public"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Ajoutez des chaînes de requête %s aux ressources pour contourner cette action."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA sera automatiquement contourné."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "Pour explorer un cookie particulier, saisissez son nom et les valeurs que vous souhaitez explorer. Les valeurs doivent être uniques par ligne, et peuvent inclure une ligne vierge. Il y aura un robot explorateur créé par valeur de cookie, par rôle simulé."

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Valeurs de cookie"

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr "Nom de cookie"

#: src/lang.cls.php:217
msgid "Cookie Simulation"
msgstr "Simulation de cookie"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utilisez la bibliothèque Web Font Loader pour charger les polices Google de manière asynchrone tout en laissant les autres CSS intacts."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activez cette option pour que LiteSpeed Cache soit mis à jour automatiquement, chaque fois qu’une nouvelle version est diffusée. Si inactif, mettre à jour manuellement comme d’habitude."

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr "Mettre à jour automatiquement"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Votre IP"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Réinitialisation effectuée."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Cela va réinitialiser tous les réglages à ceux par défaut."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Réinitialiser tous les réglages"

#: tpl/page_optm/settings_tuning.tpl.php:131
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Des fichiers CSS critiques distincts seront générés pour les chemins contenant ces chaînes."

#: src/lang.cls.php:133
msgid "Separate CCSS Cache URIs"
msgstr "Séparer les URL de ca CCSS"

#: tpl/page_optm/settings_tuning.tpl.php:117
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Par exemple, si chaque page du site a un formatage différent, saisissez %s dans la case. Des fichiers CSS critiques distincts seront stockés pour chaque page du site."

#: tpl/page_optm/settings_tuning.tpl.php:116
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Énumérer les types de publication où chaque élément de ce type devrait avoir son propre CCSS généré."

#: src/lang.cls.php:132
msgid "Separate CCSS Cache Post Types"
msgstr "Séparer le cache du CCSS par type de publication."

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr "Liste des tailles dans la file d’attente en attente de cron"

#: tpl/page_optm/settings_media.tpl.php:158
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si défini à %1$s, avant que le texte indicatif ne soit localisé, la configuration %2$s sera utilisée."

#: tpl/page_optm/settings_media.tpl.php:156
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Générer automatiquement LQIP en arrière-plan via une file d’attente basée sur cron."

#: tpl/page_optm/settings_media.tpl.php:62
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Ceci générera le texte indicatif avec les mêmes tailles que l’image si elle a des attributs largeur et hauteur."

#: tpl/page_optm/settings_media.tpl.php:61
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Les textes indicatif d’image responsive peuvent aider à réduire le remaniement de la mise en page lorsque les images sont chargées."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Texte indicatif responsive"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Ceci supprimera tous les fichiers indicatif LQIP d’image générés"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Veuillez activer LiteSpeed Cache dans les réglages de l’extension."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Veuillez activer le module LSCache au niveau du serveur ou demandez à votre hébergeur."

#: src/cloud.cls.php:634 src/cloud.cls.php:650
msgid "Failed to request via WordPress"
msgstr "Échec de la requête via WordPress"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Mise en cache des pages haute performance et optimisation du site à partir de LiteSpeed"

#: src/img-optm.cls.php:1779
msgid "Reset the optimized data successfully."
msgstr "Bien réinitialiser les données optimisées."

#: src/gui.cls.php:763
msgid "Update %s now"
msgstr "Lettre à jour %s maintenant"

#: src/gui.cls.php:758
msgid "View %1$s version %2$s details"
msgstr "Voir les détails de la %1$s version %2$s"

#: src/gui.cls.php:755
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>Voir les détails de la version %3$s</a> ou <a href=\"%4$s\" %5$s target=\"_blank\">mettre à jour maintenant</a>."

#: src/gui.cls.php:735
msgid "Install %s"
msgstr "Installer %s"

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr "Images précédemment optimisées"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "Les fonctions de mise en cache de LSCache sur cette page sont actuellement indisponibles !"

#: src/cloud.cls.php:711
msgid "%1$s plugin version %2$s required for this action."
msgstr "Extension %1$s version %2$s nécessaire pour cette action."

#: src/cloud.cls.php:673
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Nous travaillons dur pour améliorer votre expérience de service en ligne. Le service sera indisponible pendant que nous travaillons. Nous nous excusons pour tout inconvénient."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Supprimer automatiquement les sauvegarde d’image après récupération des images optimisées."

#: src/lang.cls.php:168
msgid "Remove Original Backups"
msgstr "Supprimer les sauvegardes d’originales"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Demander automatiquement l’optimisation via tâche cron."

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr "Une sauvegarde de chaque image est enregistrée avant d’être optimisée."

#: src/img-optm.cls.php:1659
msgid "Switched images successfully."
msgstr "Commutation d’image réussie."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Cela peut améliorer la qualité, mais peut entraîner des images plus grandes que la compression avec perte."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimiser les images en utilisant la compression sans perte."

#: src/lang.cls.php:170
msgid "Optimize Losslessly"
msgstr "Optimiser sans perte"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Demander les versions WebP des images originales lors de l’optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiser les images et enregistrer les sauvegardes des originaux dans le même dossier."

#: src/lang.cls.php:167
msgid "Optimize Original Images"
msgstr "Optimiser les images originales"

#: tpl/page_optm/settings_css.tpl.php:173
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Lorsque cette option est définie à %s, elle chargera également les polices Google de manière asynchrone."

#: src/purge.cls.php:222
msgid "Cleaned all Critical CSS files."
msgstr "Nettoyé tous les fichiers CSS critiques."

#: tpl/page_optm/settings_css.tpl.php:255
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Ceci mettra en ligne la bibliothèque CSS asynchrone pour éviter le blocage du rendu."

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr "Librairie CSS Async en ligne"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr "Exécuter la file d’attente manuellement"

#: tpl/page_optm/settings_css.tpl.php:96 tpl/page_optm/settings_css.tpl.php:206
msgid "URL list in %s queue waiting for cron"
msgstr "Liste d’URL dans la file d’attente de cron"

#: tpl/page_optm/settings_css.tpl.php:84 tpl/page_optm/settings_css.tpl.php:194
msgid "Last requested cost"
msgstr "Dernier coût demandé"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:81
#: tpl/page_optm/settings_css.tpl.php:191
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr "Dernier généré"

#: tpl/page_optm/settings_media.tpl.php:162
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si défini sur %s, cela se fait au premier plan, ce qui peut ralentir le chargement de la page."

#: tpl/page_optm/settings_css.tpl.php:172
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Générer automatiquement des CSS critiques en arrière-plan via une file d’attente à base de cron."

#: tpl/page_optm/settings_css.tpl.php:168
msgid "Optimize CSS delivery."
msgstr "Optimiser la livraison CSS."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "Cela supprimera tous les fichiers CSS critiques générés"

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "CSS critique"

#: src/doc.cls.php:36
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "Ce site utilise la mise en cache afin de faciliter un temps de réponse plus rapide et une meilleure expérience utilisateur. La mise en cache stocke potentiellement une copie de chaque page web affichée sur ce site. Tous les fichiers de cache sont temporaires et ne sont jamais accessibles à un tiers, sauf si cela est nécessaire pour obtenir le support technique du fournisseur de l’extension de cache. Les fichiers cache expirent selon une planification fixée par l’administrateur du site, mais peuvent facilement être purgés par l’administrateur avant leur expiration naturelle, si nécessaire."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Désactiver cela peut entraîner l’arrêt des tâches WordPress déclenchées par AJAX."

#: src/utility.cls.php:249
msgid "right now"
msgstr "tout de suite"

#: src/utility.cls.php:249
msgid "just now"
msgstr "juste maintenant"

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr "Enregistré"

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Dernière exécution"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "Vous ne pourrez pas annuler l’optimisation une fois les sauvegardes supprimées !"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr "C’est irréversible."

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr "Supprimer les sauvegardes de l’image originale"

#: tpl/img_optm/summary.tpl.php:255
msgid "Are you sure you want to remove all image backups?"
msgstr "Confirmez-vous vouloir la suppression de toutes les sauvegardes d’image ?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr "Fichiers"

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr "Dernier calculé"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calculer le stockage des images originales"

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr "Optimisation du stockage"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Activer le remplacement de WebP dans les éléments %s qui ont été générés en dehors de la logique WordPress."

#: src/lang.cls.php:173
msgid "WebP For Extra srcset"
msgstr "WebP pour srcset extra"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Utilisez le format %1$s ou %2$s (élément est facultatif)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Ne seront remplacés uniquement les attributs listés ici."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Spécifiez quels attributs d’élément seront remplacés avec WebP."

#: src/lang.cls.php:172
msgid "WebP Attribute To Replace"
msgstr "Attribut WebP à remplacer"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Uniquement les fichiers de ces répertoires seront dirigés vers le CDN."

#: src/lang.cls.php:204
msgid "Included Directories"
msgstr "Répertoires inclus"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Une purge de tout sera exécutée lorsque WordPress exécute ces crochets."

#: src/lang.cls.php:180
msgid "Purge All Hooks"
msgstr "Purger tous les crochets"

#: src/purge.cls.php:184
msgid "Purged all caches successfully."
msgstr "Tous les caches ont bien été purgés."

#: src/gui.cls.php:479 src/gui.cls.php:570 src/gui.cls.php:620
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:423
msgid "Forced cacheable"
msgstr "Mise en cache forcée"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Les chemins contenant ces chaînes de caractères seront mis en cache sans tenir compte des réglages de non mise en cache."

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr "Forcer la mise en cache des URL"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Réglages d’exclusion"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Ceci désactivera LSCache et toutes les fonctionnalités d’optimisation à des fins de débogage."

#: src/lang.cls.php:222 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Désactiver toutes les fonctionnalités"

#: src/gui.cls.php:506 src/gui.cls.php:657 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Cache Opcode"

#: src/gui.cls.php:487 src/gui.cls.php:628 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "Cache CSS/JS"

#: src/gui.cls.php:716 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr "Supprimer toutes les requêtes d’optimisation d’images inachevées."

#: src/gui.cls.php:717 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr "Nettoyage des données inachevées"

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr "Images qui ont échoué avec d’autres erreurs"

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr "Images avec fausse méta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Rejoignez-nous sur Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Rejoignez la communauté %s."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Souhaitez-vous vous connecter avec les autres utilisateurs LitePeed ?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Obtenez-le à partir de <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:202
msgid "Your API key / token is used to access %s APIs."
msgstr "Votre clé/jeton d’API est utilisé pour accéder aux APIS %s."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Votre adresse de messagerie sur %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Utiliser la fonctionnalité d’API %s."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Pour rendre le nom d’hôte CDN aléatoire, définissez plusieurs noms d’hôte pour les mêmes ressources."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Rejoindre la communauté Slack LieteSpeed"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visiter le forum de support LSCWP"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Évaluer %s sur %s"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr "Images notifiées à tirer"

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr "Fichiers image manquants"

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr "Qu’est-ce qu’un groupe ?"

#: src/admin-display.cls.php:1160
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1157
msgid "%s group"
msgstr "%s groupe"

#: src/admin-display.cls.php:1147
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1144
msgid "%s groups"
msgstr "%s groupes"

#: src/crawler.cls.php:826
msgid "Guest"
msgstr "Hôte"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Pour crawler le site comme utilisateur connecté, saisissez les ID utilisateur à simuler."

#: src/lang.cls.php:216
msgid "Role Simulation"
msgstr "Simulation de rôle"

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr "exécution"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Taille"

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr "Raison pour laquelle c’est terminé"

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr "Dernier intervalle"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr "Le crawler actuel a démarré le"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Durée d’exécution du précédent robot explorateur"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d secondes"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Durée de dernière exécution complète pour tous les robots explorateurs"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Le crawl de plan de site actuel a commencé le"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Enregistrer les transients dans la base de données lorsque %1$s est %2$s."

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr "Stocker les transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "Si %1$s est %2$s, alors %3$s doit être renseigné !"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Valeur max. de serveur autorisée"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Valeur imposée par le serveur"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Valeur min. de serveur autorisée"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "Remarque"

#: src/admin-display.cls.php:1113
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable·s de serveur %s disponible·s pour surpasser ce réglage."

#: src/admin-display.cls.php:1112 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:175
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:162
#: tpl/page_optm/settings_tuning.tpl.php:183
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:337
msgid "Reset the entire opcode cache successfully."
msgstr "Bien réinitialiser l’ensemble du cache opcode."

#: src/purge.cls.php:325
msgid "Opcode cache is not enabled."
msgstr "Le cache opcode n’est pas activé."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Fichier de réglages %s bien importé."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Échec de l’import du à une erreur fichier."

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Comment corriger les problèmes dus à l’optimisation du CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Cela va générer des requêtes supplémentaires au serveur, ce qui augmentera la charge du serveur."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Lorsqu’un visiteur survole un lien de page, préchargez cette page. Cela accélérera la visite de ce lien."

#: src/lang.cls.php:182
msgid "Instant Click"
msgstr "Clic instantané"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Réinitialiser l’intégralité du cache opcode"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Cela va importer les réglages via un fichier et remplacer tous les réglages LiteSpeed Cache actuels."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Dernier importé"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importer"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Importer des réglages"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Cela exportera tous les réglages actuels de LiteSpeed Cache et les enregistrera en tant que fichier."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Dernier exporté"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exporter"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Exporter les réglages"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Importer/exporter"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilisez des connexions persistantes pour accélérer les opérations de cache."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Base de données à utiliser"

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr "ID de base de données Redis"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Précisez le mot de passe utilisé pour la connexion."

#: src/lang.cls.php:88
msgid "Password"
msgstr "Mot de passe"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Uniquement disponible lorsque %s est installé."

#: src/lang.cls.php:87
msgid "Username"
msgstr "Nom d’utilisateur"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Votre nom d’hébergeur ou adresse IP de %s."

#: src/lang.cls.php:83
msgid "Method"
msgstr "Méthode"

#: src/purge.cls.php:378
msgid "Purge all object caches successfully."
msgstr "Bien purger tous les caches d’objets."

#: src/purge.cls.php:365
msgid "Object cache is not enabled."
msgstr "Cache d’objet non activé."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Améliorez la vitesse de wp-admin grâce à la mise en cache. (peut rencontrer des données expirées)"

#: src/lang.cls.php:93
msgid "Cache WP-Admin"
msgstr "Mettre en cache wp-admin"

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr "Connexion persistante"

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr "Ne pas mettre en cache les groupes"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groupes mis en cache au niveau du réseau."

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr "Groupes globaux"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Test de connexion"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "Extension %s"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr "État"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "TTL par défaut pour les objets mis en cache."

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr "Durée de vie de l'objet par défaut"

#: src/lang.cls.php:85
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:84
msgid "Host"
msgstr "Hébergeur"

#: src/gui.cls.php:496 src/gui.cls.php:647 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Mise en cache d’objet"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Échouée"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Réussie"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Non disponible"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Purger tous les caches d'objets"

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr "Échec de communication avec Cloudflare"

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr "Bien communiqué avec Cloudflare."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "Aucune zone Cloudflare disponible"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Bien notifié Cloudflare de tout purger."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "L’API Cloudflare est définie à inactif."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Bien notifié Cloudflare de définir le mode développement à %s."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Une fois enregistré, il sera harmonisé avec la liste actuelle et complété automatiquement."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "Vous pouvez saisir juste une partie du domaine."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Domaine"

#: src/lang.cls.php:206
msgid "Cloudflare API"
msgstr "API Cloudflare"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Tout purger"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cache Cloudflare"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Le mode développement sera automatiquement désactivé après trois heures."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Ignorer temporairement le cache Cloudflare. Cela permet de voir en temps réel les modifications apportées au serveur d'origine."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Le mode développement sera automatiquement désactivé dans %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "L’état actuel est %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "L’état actuel est %1$s depuis %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Vérifier l’état"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Désactiver"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Activer"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Mode développement"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Zone Cloudflare"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Domaine Cloudflare"

#: src/gui.cls.php:637 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "Par exemple"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Le pré-chargement des DNS peut réduire la latence pour les visiteurs."

#: src/lang.cls.php:124
msgid "DNS Prefetch"
msgstr "Pré-chargement des DNS"

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Ajout de style à vos images chargées en différé"

#: src/admin-display.cls.php:975 src/admin-display.cls.php:980
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Valeur par défaut"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Liens de type de fichier statique à remplacer par des liens CDN."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Par exemple, pour supprimer les paramètres commençant par %s, %s peut être utilisé ici."

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr "Supprimer la chaîne de requête"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activez cette option si vous utilisez HTTP et HTTPS sur le même domaine et que vous remarquez des irrégularités de cache."

#: src/lang.cls.php:181
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Améliorer la compatibilité HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:378
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Supprimer toutes les requêtes/résultats d'optimisation d'image précédentes, annulez les optimisations terminées et supprimer tous les fichiers d'optimisation."

#: tpl/img_optm/summary.tpl.php:374
msgid "Destroy All Optimization Data"
msgstr "Détruire toutes les données d’optimisation"

#: tpl/img_optm/summary.tpl.php:324
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Rechercher toute nouvelle taille de miniature d'image non optimisée et renvoyez les requêtes d'optimisation d'image nécessaires."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Cela augmentera la taille des fichiers optimisés."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Conserver les données EXIF (copyright, GPS, commentaires, mots clés, etc.) lors de l'optimisation."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Effacer le journal"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Pour tester le panier, visitez la <a %s>FAQ</a>."

#: src/utility.cls.php:252
msgid " %s ago"
msgstr "il y a %s"

#: src/media.cls.php:311
msgid "WebP saved %s"
msgstr "WebP économisé %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si vous rencontrez des problèmes, veuillez vous reporter au numéro de rapport dans votre message de support."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Cela générera également une clé d’API à partir du serveur LiteSpeed."

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr "Dernier tirage initié par cron à %s."

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Les images seront tirées automatiquement si la tâche cron est en cours d’exécution."

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr "N'appuyez sur le bouton que si la tâche cron de tirage est désactivée."

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr "Tirer les images"

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr "Ce processus est automatique."

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr "Dernière requête"

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr "Tirage des images échoué"

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr "Les images n'ont pas pu être récupérées"

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr "Images tirées"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Rapport"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Envoyez ce rapport à LiteSpeed. Référez-vous à ce numéro de rapport lorsque vous publiez sur le forum de support WordPress."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Envoyer à LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Date de rapport"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Numéro de rapport"

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr "Mettre en cache privé le panier lorsqu'il n'est pas vide."

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr "Mettre en cache privé le panier"

#: src/media.cls.php:192
msgid "LiteSpeed Optimization"
msgstr "Optimisation de LiteSpeed"

#: src/lang.cls.php:129
msgid "Load Google Fonts Asynchronously"
msgstr "Charger les Google Fonts de manière asynchrone"

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr "TTL du cache navigateur"

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Les résultats peuvent être vérifiés dans la <a %s> bibliothèque des médias</a>."

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Apprendre plus"

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr "Images optimisées et tirées"

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr "Images demandées"

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr "Images pas encore demandées"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr "Images totales"

#: src/img-optm.cls.php:1716
msgid "Switched to optimized file successfully."
msgstr "Commuté pour bien optimiser le fichier."

#: src/img-optm.cls.php:1709
msgid "Restored original file successfully."
msgstr "Fichier original bien restauré."

#: src/img-optm.cls.php:1693
msgid "Enabled WebP file successfully."
msgstr "Fichier WebP bien activé."

#: src/img-optm.cls.php:1687
msgid "Disabled WebP file successfully."
msgstr "Fichier WebP bien désactivé."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Désactiver cela stoppera la tâche cron responsable de la récupération des images optimisées à partir du serveur d’images QUIC.cloud."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Améliorez significativement le temps de chargement en remplaçant les images par leurs versions %s optimisées."

#: src/lang.cls.php:186
msgid "Image WebP Replacement"
msgstr "Remplacement de l'image WebP"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Les rôles sélectionnés seront exclus du cache."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Personnalisation"

#: tpl/page_optm/settings_tuning.tpl.php:225
msgid "Selected roles will be excluded from all optimizations."
msgstr "Les rôles sélectionnés seront exclus de toutes les optimisations."

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Rôle exclu"

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Réglages de personnalisation"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si l’identifiant d’étiquette n’est pas trouvé, l’étiquette sera retirée de la liste à l’enregistrement."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si le nom de la catégorie n’est pas trouvé, la catégorie sera retirée de la liste lors de l’enregistrement."

#: tpl/img_optm/summary.tpl.php:117
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Une fois que le serveur d’optimisation d’images QUIC.cloud a terminé l’optimisation, il demandera à votre site de tirer les images optimisées."

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr "Envoyer une requête d’optimisation"

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr "Information d’image"

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr "Réduction totale"

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr "Résumé d’optimisation"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimisation d’image LiteSpeed Cache"

#: src/admin-display.cls.php:123 src/gui.cls.php:603
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr "Optimisation d’image"

#: src/lang.cls.php:134
msgid "JS Deferred Excludes"
msgstr "JS différé exclut"

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Par exemple, %s peut être utilisé pour un texte indicatif transparent."

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr "Par défaut une image indicative grise %s sera utilisée."

#: tpl/page_optm/settings_media.tpl.php:46
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Cela peut être défini dans %2$s comme utilisant la constante %1$s, en prenant ce réglage en priorité."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Précisez une image base64 à utiliser comme indicative pendant que les autres images terminent de charger."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:164
#: tpl/page_optm/settings_tuning.tpl.php:185
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Les éléments avec l’attribut %s dans le code html seront exclus."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:163
#: tpl/page_optm/settings_tuning.tpl.php:184
msgid "Filter %s is supported."
msgstr "Le filtre %s est supporté."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Les images listées ne seront pas chargées lentement."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Exclut l’image du chargement lent"

#: src/gui.cls.php:456
msgid "No optimization"
msgstr "Aucune optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:199
msgid "Prevent any optimization of listed pages."
msgstr "Empêche toute optimisation des pages listées."

#: src/lang.cls.php:138
msgid "URI Excludes"
msgstr "URI exclut"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Stopper le chargement d’emoji WordPress.org. Les emojis par défaut du navigateur seront affichés à la place."

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr "À la fois les URL complètes et les chaînes partielles peuvent être utilisées."

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr "Chargez les iframes uniquement lorsqu'elles entrent dans la fenêtre d'affichage."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Chargement différé des iframes"

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Cela peut améliorer le temps de chargement de la page en réduisant les requêtes HTTP initiales."

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr "Charger les images uniquement lorsqu’elles entrent dans la fenêtre d’affichage."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Chargement différé des images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr "Réglages des médias"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "Par exemple, pour %s, %s et %s peuvent être utilisés ici."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s pris en charge (correspond à zéro ou plusieurs caractères). Par exemple, pour faire correspondre %2$s et %3$s, utilisez %4$s."

#: src/admin-display.cls.php:1128
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Pour correspondre au début, ajoutez %s au début de l'élément."

#: src/admin-display.cls.php:1126
msgid "For example, for %s, %s can be used here."
msgstr "Par exemple, pour %s, %s peut être utilisé ici."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Peut-être plus tard"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "J’ai déjà laissé une évaluation"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Bienvenue chez LiteSpeed"

#: src/lang.cls.php:136
msgid "Remove WordPress Emoji"
msgstr "Retirer les emoji WordPress"

#: src/gui.cls.php:464
msgid "More settings"
msgstr "Plus de réglages"

#: src/gui.cls.php:445
msgid "Private cache"
msgstr "Cache privé"

#: src/gui.cls.php:434
msgid "Non cacheable"
msgstr "Impossible à mettre en cache"

#: src/gui.cls.php:411
msgid "Mark this page as "
msgstr "Marquer cette page comme"

#: src/gui.cls.php:403
msgid "Purge this page"
msgstr "Purger cette page"

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr "Charger le JS en diféré"

#: tpl/page_optm/settings_tuning.tpl.php:145
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Spécifiez les règles CSS critiques pour le contenu au-dessus du pli lorsque vous activez %s."

#: src/lang.cls.php:131
msgid "Critical CSS Rules"
msgstr "Règles CSS critiques"

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:145
msgid "Load CSS Asynchronously"
msgstr "Charger le CSS de manière asynchrone"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Empêcher les polices Google de charger sur toutes vos pages."

#: src/lang.cls.php:130
msgid "Remove Google Fonts"
msgstr "Retirer les polices Google"

#: tpl/page_optm/settings_css.tpl.php:169
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Cela peut améliorer votre score de vitesse dans des services tels que Pingdom, GTmetrix et PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:79
msgid "Remove query strings from internal static resources."
msgstr "Retirer les chaines de requête des ressources statiques internes."

#: src/lang.cls.php:128
msgid "Remove Query Strings"
msgstr "Retirer les chaînes de requête"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "agents utilisateur"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "Vous pouvez aussi activer la mise en cache du navigateur dans l’admin serveur. <a %s>En apprendre plus sur les réglages du cache navigateur LiteSpeed</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "La mise en cache du navigateur stocke les fichiers statiques localement dans le navigateur de l'utilisateur. Activez ce réglage pour réduire les requêtes répétées de fichiers statiques."

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr "Cache navigateur"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "étiquettes"

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr "Ne pas mettre en cache les étiquettes"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "Pour exclure %1$s, insérez %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "catégories"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "Pour éviter que les %s soient mises en cache, saisissez-les ici."

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr "Ne pas mettre en cache les catégories"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "Les chaînes de requête contenant ces paramètres ne seront pas mises en cache."

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr "Ne pas mettre en cache les chaînes de requête"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Les chemins contenant ces chaînes de requête ne seront pas mis en cache."

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr "Ne pas mettre en cache les URI"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "Les journaux seront sortis en %s."

#: src/admin-display.cls.php:1130 src/doc.cls.php:74
msgid "One per line."
msgstr "Une par ligne."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Les chemins d’URI contenant ces chaînes ne seront pas mis en cache comme publics."

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr "URI mises en cache privées"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Les chemins contenant ces chaînes ne seront pas servis par le CDN."

#: src/lang.cls.php:205
msgid "Exclude Path"
msgstr "Exclure le chemin"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Cela va affecter toutes les balises contenant les attributs : %s %s %s."

#: src/lang.cls.php:201 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Inclure les types de fichier"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir tous les fichiers JavaScript via le CDN. Cela affectera tous les fichiers JavaScript WP en file d’attente."

#: src/lang.cls.php:200
msgid "Include JS"
msgstr "Inclure le JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir tous les fichiers CSS via le CDN. Cela affectera tous les fichiers CSS WP en file d’attente."

#: src/lang.cls.php:199
msgid "Include CSS"
msgstr "Inclure le CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Servir tous les fichiers d’image via le CDN. Cela affectera toutes les pièces jointes, les balises HTML %s et les attributs CSS %s."

#: src/lang.cls.php:198
msgid "Include Images"
msgstr "Inclure les images"

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr "URL de CDN à utiliser. Par exemple : %s"

#: src/lang.cls.php:197
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "L’URL du site à servir via le CDN. À partir de %1$s. Par exemple : %2$s."

#: src/lang.cls.php:203
msgid "Original URLs"
msgstr "URL originales"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "Réglage du CDN"

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:233 src/admin-display.cls.php:833
#: src/admin-display.cls.php:860 src/admin-display.cls.php:912
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:71 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "Inactif"

#: src/admin-display.cls.php:232 src/admin-display.cls.php:832
#: src/admin-display.cls.php:861 src/admin-display.cls.php:912
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:173
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "Actif"

#: src/purge.cls.php:309
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Serveur web LiteSpeed notifié de purger les entrées CSS/JS."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minifier le contenu HTML."

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr "Minifier  le HTML"

#: src/lang.cls.php:127
msgid "JS Excludes"
msgstr "JS exclu"

#: src/data.upgrade.func.php:101 src/lang.cls.php:115
msgid "JS Combine"
msgstr "Combiner JS"

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr "Minifier JS"

#: src/lang.cls.php:126
msgid "CSS Excludes"
msgstr "CSS exclu"

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr "Combiner CSS"

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr "Minifier CSS"

#: tpl/page_optm/entry.tpl.php:31
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Veuillez effectuer un test approfondi lorsque vous activez une option dans cette liste. Après avoir modifié les réglages Minifier/Combiner, veuillez faire une purge totale."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Cela purgera uniquement toutes les entrées CSS/JS minifiées/combinées."

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purger les erreurs %s"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Optimiseur de base de données"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimiser toutes les tables dans votre base de données"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimiser les tables"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Nettoyer toutes les options de transient"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Tous les transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Nettoyer les options de transient expirées"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Transients expirés"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Nettoyer tous les rétroliens et pings"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Rétroliens/pings"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Nettoyer tous les commentaires mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Commentaires mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Nettoyer tous les commentaires indésirables"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Commentaires indésirables"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Nettoyer tous les articles et pages mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Articles mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Nettoyer tous les brouillons auto-enregistrés"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Brouillons auto"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Nettoyer toutes les révisions d’article"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Révisions d’article"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Tout nettoyer"

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr "Optimisé toutes les tables."

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr "Tous les transients ont bien été nettoyés."

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr "Les transients expirés ont bien été nettoyés."

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Les rétroliens et pings ont bien été nettoyés."

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr "Les commentaires mis à la corbeille ont bien été nettoyés."

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr "Les commentaires indésirables ont bien été nettoyés."

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr "Articles et pages mis à la corbeille bien nettoyés."

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr "Les brouillons auto ont bien été nettoyés."

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr "Les révisions d’article ont bien été nettoyées."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Tout a bien été nettoyé."

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr "TTL cache privé par défaut"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si votre site contient du contenu public que certains rôles utilisateur peuvent voir, mais que d’autres rôles ne peuvent pas, vous pouvez spécifier un groupe variable pour ces rôles utilisateur. Par exemple, la spécification d’un groupe variable par l’administrateur permet d’avoir une page distincte en cache publique adaptée aux administrateurs (avec des liens \"modifier\", etc.), tandis que tous les autres rôles utilisateur voient la page publique par défaut."

#: src/lang.cls.php:179 tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:219
msgid "Vary Group"
msgstr "Varier le groupe"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Mettre en cache le bloc ESI de formulaire de commentaires intégré."

#: src/lang.cls.php:177
msgid "Cache Comment Form"
msgstr "Mettre en cache le formulaire de commentaire"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr "Mettre en cache le bloc ESI de barre d’administration intégré."

#: src/lang.cls.php:176
msgid "Cache Admin Bar"
msgstr "Mettre en cache la barre d’administration"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Activer la mise en cache des pages publiques pour les utilisateurs connectés et servir la barre d’administration et le formulaire de commentaire via des blocs ESI. Ces deux blocs ne seront pas mis en cache, sauf s’ils sont activés ci-dessous."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI vous permet de désigner des parties de votre page dynamique comme des fragments séparés qui sont ensuite assemblés pour créer la page entière. En d’autres termes, ESI vous permet de « percer des trous » dans une page, puis de remplir ces trous avec un contenu qui peut être mis en cache en privé, mis en cache publiquement avec son propre TTL ou non mis en cache du tout."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Avec ESI (Edge Side Includes), les pages peuvent être envoyées à partir du cache pour les utilisateurs connectés."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privé"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Publique"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purger les réglages"

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr "Ressources PHP de cache"

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Le niveau avancé enregistrera plus de détails."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basique"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La charge moyenne maximale du serveur est autorisée lors de l’exploration. Le nombre de threads de robot explorateur en cours d’utilisation sera activement réduit jusqu'à ce que la charge moyenne du serveur tombe sous cette limite. Si cela ne peut pas être réalisé avec un seul thread, l’exécution du robot explorateur actuel sera terminée."

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr "Mettre en cache la page de connexion"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Mettre en cache les requêtes effectuées par les appels de l’API REST WordPress."

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr "Mettre en cache l’API REST."

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Mettre en cache privé les commentateurs qui ont des commentaires en attente. La désactivation de cette option servira les pages ne pouvant pas être mises en cache aux commentateurs. (LSWS %s nécessaire)"

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr "Mettre en cache les commentateurs"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Mettre en cache privé les pages interface utilisateur pour les utilisateurs connectés. (LSWS %s nécessaire)"

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr "Mettre en cache les utilisateurs connectés"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Mettre en cache les réglages de contrôle"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Exclure"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:133
msgid "Purge"
msgstr "Purger"

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Règle de cache inattendue %2$s trouvée dans le fichier %1$s. Cette règle peut amener les visiteurs à voir d’anciennes versions de pages en raison de la mise en cache des pages HTML par le navigateur. Si vous êtes sûr que des pages HTML ne sont pas mises en cache par le navigateur, ce message peut être ignoré.(<a %3$s>En apprendre plus</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "L’heure actuelle du serveur est %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Précisez l’heure pour purger la liste \"%s\"."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "À la fois %1$s et %2$s sont acceptables."

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Heure de purge planifiée"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "Les URLs ci-dessus (une par ligne) seront automatiquement purgées à l’heure fixée dans l’option \"%s\"."

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Purge planifiée d’URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Raccourcir les chaînes de requêtes dans le journal de débogage pour améliorer la lisibilité."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Valeurs de cookie de demande de journal."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Battement de cœur"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "Mo"

#: src/lang.cls.php:226
msgid "Log File Size Limit"
msgstr "Limite de taille de fichier journal"

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Veuillez ajouter/remplacer les codes suivants dansle début de %1$s:</p> %2$s"

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr "Le fichier %s n’est pas inscriptible."

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr "Le fichier %s n’est pas lisible."

#: src/lang.cls.php:228
msgid "Collapse Query Strings"
msgstr "Réduire les chaînes de requêtes"

#: src/lang.cls.php:227
msgid "Log Cookies"
msgstr "Activer les cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "Réglages ESI"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 indique de ne pas mettre en cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valeur recommandée : 28800 secondes (8 heures)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget de cache TTL :"

#: src/lang.cls.php:175 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Activer ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Voyez <a %s>Introduction pour l’activation du robot explorateur</a> pour les informations détaillées."

#: src/lang.cls.php:218
msgid "Custom Sitemap"
msgstr "Plan de site personnalisé"

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by relative or full URL."
msgstr "Purger les pages par URL relative ou complète."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La fonctionnalité de robot explorateur n’est pas activée sur le serveur LiteSpeed. Veuillez consulter votre administrateur serveur ou votre hébergeur."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:164
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "Attention"

#: tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Dernier crawlé :</b> %s élément(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "Le prochain crawl complet de plan de site débutera le"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Impossible d'écrire sur %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "Le dossier n’est pas inscriptible : %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Impossible de créer un dossier : %1$s. Erreur : %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "Le dossier n’existe pas : %s"

#: src/core.cls.php:294
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Serveur LiteSpeed notifié pour tout purger."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Veuillez visiter la page <a %s>d’informations</a> sur la façon de tester le cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Autorise les IPs listées (une par ligne) à réaliser certaines actions depuis leurs navigateurs."

#: src/lang.cls.php:215
msgid "Server Load Limit"
msgstr "Limite de chargement du serveur"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Spécifiez le nombre de threads à utiliser lors du crawl."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Spécifiez combien de temps en secondes avant que le crawler initie un nouveau crawl entier du plan de site."

#: src/lang.cls.php:212
msgid "Crawl Interval"
msgstr "Intervalle de crawl"

#: src/lang.cls.php:211
msgid "Interval Between Runs"
msgstr "Intervalle entre chaque exécution"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Spécifiez le temps en secondes pour la durée de l’intervalle de crawl."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Spécifiez le temps en microsecondes pour le délai entre requêtes durant une exploration."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microsecondes"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Ensuite, un autre WordPress est installé (non multisite) sur %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Réglages de cache de réseau LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:170
msgid "Select below for \"Purge by\" options."
msgstr "Sélectionnez ci-dessous pour les options « purger par »."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "CDN LiteSpeed Cache"

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr "Encore aucun fichier méta de crawler généré"

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr "Afficher l’état du crawler"

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr "Voir l’état de crawler"

#: tpl/crawler/summary.tpl.php:191
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Veuillez voir <a %s>Connexion de WP-Cron au planificateur de tâches du système</a> pour apprendre comment créer le système de tâche cron."

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La fréquence d’exécution est définie par le réglage d’intervalle entre exécutions."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Exécution manuelle"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Réinitialiser la position"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Fréquence d’exécution"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Nom du cron"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Cron du crawler"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d heure"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d heures"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Généré dans %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "Crawler LiteSpeed Cache"

#: src/lang.cls.php:213
msgid "Threads"
msgstr "Fils de discussion"

#: src/lang.cls.php:210
msgid "Run Duration"
msgstr "Durée d’exécution"

#: src/lang.cls.php:209
msgid "Delay"
msgstr "Délai"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "S’il y a des questions, l’équipe est toujours heureuse d’y répondre sur le<a %s>forum de support</a>."

#: src/admin-display.cls.php:129 src/lang.cls.php:208
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:584
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Notifié le serveur web LiteSpeed de purger toutes les pages."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Toutes les pages avec le widget des articles récents"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Cela purgera uniquement les pages"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purger les pages"

#: thirdparty/woocommerce.content.tpl.php:78
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "Par exemple, si la page d’accueil du site est située %1$s, la page de la boutique peut être située %2$s."

#: src/css.cls.php:526
msgid "Cancel"
msgstr "Effacer"

#: tpl/crawler/summary.tpl.php:125
msgid "Activate"
msgstr "Activer"

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Adresse de messagerie"

#: tpl/general/settings.tpl.php:100
msgid "Warning"
msgstr "Avertissement"

#: src/gui.cls.php:736
msgid "Install Now"
msgstr "Installer maintenant"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purgé l’url !"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purgé le blog !"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Tout purgé !"

#: src/purge.cls.php:603
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notifié LiteSpeed ​​Web Server de purger les pages d'erreur."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si vous utilisez OpenLiteSpeed, le serveur doit être redémarré une fois pour que les modifications prennent effet."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Si non, veuillez vérifier le réglage dans l’<a href=\"%1$s\">onglet Avancé</a> ."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si le cookie de connexion a été modifié récemment dans les réglages, veuillez vous déconnecter et vous reconnecter."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Cependant, il n’y a aucun moyen de connaître toutes les personnalisations possibles qui ont été mises en œuvre."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "L’extension LiteSpeed ​​Cache est utilisée pour mettre les pages en cache - un moyen simple d’améliorer les performances du site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "Le réglage administrateur réseau peut être remplacé ici."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Spécifiez combien de temps, en secondes, les pages publiques sont mises en cache."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Spécifiez combien de temps, en secondes, les pages privées sont mises en cache."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Il est <b>fortement</b> recommandé que la compatibilité avec d’autres extensions de d’abord tester sur un seul/quelques sites."

#: tpl/toolbox/purge.tpl.php:226
msgid "Purge pages by post ID."
msgstr "Purger les pages par ID d’article."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purger les entrées LiteSpeed Cache créées par cette extension"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s error pages"
msgstr "Purger les pages d’erreur %s."

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Cela purgera uniquement la page d’accueil"

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purger les pages par nom d’étiquette - par ex.,%2$s devrait être utilisé pour l’URL %1$s."

#: tpl/toolbox/purge.tpl.php:236
msgid "e.g. Use %s or %s."
msgstr "par ex. utilisez %s ou %s."

#: tpl/toolbox/purge.tpl.php:221
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purger les pages par nom de catégorie - par exemple,%2$s devrait être utilisé pour l’URL%1$s."

#: tpl/toolbox/purge.tpl.php:124
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si seul le site WordPress doit être purgé, utilisez « Tout purger »."

#: src/core.cls.php:289
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Serveur LiteSpeed notifié pour tout purger."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Utiliser les configurations du site principal"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "Cela désactivera la page des réglages sur tous les sous-sites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Cochez cette option pour utiliser les configurations du site principal sur tous les sous-sites."

#: src/admin-display.cls.php:701 src/admin-display.cls.php:706
msgid "Save Changes"
msgstr "Enregistrer les modifications"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Les options suivantes sont sélectionnées, mais ne sont pas modifiables dans la page des réglages."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "L’administrateur réseau sélectionné utilise les configurations du site principal pour tous les sous-sites."

#: tpl/toolbox/purge.tpl.php:116
msgid "Empty Entire Cache"
msgstr "Vider tout le cache"

#: tpl/toolbox/purge.tpl.php:118
msgid "This action should only be used if things are cached incorrectly."
msgstr "Cette action doit être utilisée uniquement si les éléments sont incorrectement mis en cache."

#: tpl/toolbox/purge.tpl.php:117
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Efface toutes les entrées du cache liées à ce site, <i> y compris les autres applications web </i>."

#: tpl/toolbox/purge.tpl.php:123
msgid "This may cause heavy load on the server."
msgstr "Cela peut entraîner une charge importante sur le serveur."

#: tpl/toolbox/purge.tpl.php:122
msgid "This will clear EVERYTHING inside the cache."
msgstr "Cela effacera tout dans le cache."

#: src/gui.cls.php:570
msgid "LiteSpeed Cache Purge All"
msgstr "Cache LiteSpeed Tout purger"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si vous préférez ne pas avoir des affichages à la vitesse de la lumière, vous pouvez désactiver cette extension."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Créez un article, assurez-vous que la page d’accueil est exacte."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visitez le site en déconnecté."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Les exemples de cas d’essai incluent :"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Pour cette raison, veuillez tester le site pour vous assurer que tout fonctionne encore correctement."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Ce message indique que l’extension a été installée par l’administrateur du serveur."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "L’extension LiteSpeed Cache est installée !"

#: src/lang.cls.php:223 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Journal de débogage"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Uniquement l’IP de l’admin"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "L’option IP d’admin ne génère que des messages de journalisation sur les requêtes provenant des IPs d'admin."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Précisez combien de temps, en secondes, les appels REST sont mis en cache."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "Le rapport d’environnement contient des informations détaillées sur la configuration WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "Le serveur déterminera si l’utilisateur est connecté grâce à l'existence de ce cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr "Remarque"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Après vérification que le cache fonctionne en général, veuillez tester le panier."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Lorsque activé, le cache sera vidé automatiquement lors d’une mise à jour de tout extension, thème ou du cœur WordPress."

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr "Tout purger lors d'une mise à niveau"

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr "Utilisez la page d’accueil TTL pour la page boutique"

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr "Intervalle de mise à jour de produit"

#: thirdparty/woocommerce.content.tpl.php:77
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Cocher cette option forcera la page boutique à utiliser les réglages de page d’accueil TTL."

#: thirdparty/woocommerce.content.tpl.php:64
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Détermine comment les modifications dans les quantités de produit et états de stock de produit affecte les pages de produit et leurs pages de catégorie associés."

#: thirdparty/woocommerce.content.tpl.php:51
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Toujours vider les produits et les catégories lors d’un changement de quantité disponible ou de statut de stock."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Ne pas purger les catégories lors de modification de quantité ou d’état de stock."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr "Purger le produit uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr "Purger les produits et catégories uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr "Purger les catégories uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purger le produit au changement de la quantité ou de l’état du stock."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr "Le htaccess ne correspondait pas à l’option de configuration."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si vous configurez une valeur de moins de 30, les flux RSS ne seront pas mis en cache."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Spécifiez une durée en secondes, pour la mise en cache des flux RSS."

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr "Flux TTL par défaut"

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr "Échec de récupération du contenu du fichier %s."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "La mise en cache de ces pages peut améliorer les performances du serveur en évitant les appels PHP inutiles."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Certains thèmes et extensions ajoutent des ressources par requête PHP."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Mettre en cache cette ressource peut améliorer les performances du serveur en évitant les appels PHP inutiles."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico est appelé sur la majorité des pages."

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr "Mettre en cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Désactiver cette option aura un effet négatif sur la performance."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de connexion non valide. Caractères non valides trouvés."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "Avertissement : Les cookies de connexion du fichier .htaccess et de la base de données ne correspondent pas."

#: src/error.cls.php:116
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de connexion non valide. Veuillez vérifier le fichier %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "Le cache doit faire la distinction de qui est connecté dans quel site WordPress afin de mettre en cache correctement."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Il y a une installation de WordPress pour %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Exemple d’utilisation :"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "Le cookie réglé ici sera utilisé pour cette installation WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si chaque application web utilise le même cookie, le serveur pourrait ne pas savoir si l’utilisateur est connecté."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Ce réglage est utile pour ceux qui ont plusieurs applications web avec le même nom de domaine."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "Le cookie de connexion par défaut est %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "Doit être unique d’autres applications web."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Aucun espace et sensible à la casse."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "Syntaxe : alphanumérique et \"_\"."

#: src/lang.cls.php:185
msgid "Login Cookie"
msgstr "Cookie de connexion"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "Plus d’informations sur les commandes disponibles peuvent être trouvées ici."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Ces réglages sont uniquement destinés à des utilisateurs avancés."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Contenus actuel de %s"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Avancé"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Réglages avancés"

#: tpl/toolbox/purge.tpl.php:249
msgid "Purge List"
msgstr "Purger la liste"

#: tpl/toolbox/purge.tpl.php:168
msgid "Purge By..."
msgstr "Purger par…"

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:215
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:209
msgid "Tag"
msgstr "Étiquette"

#: tpl/toolbox/purge.tpl.php:203
msgid "Post ID"
msgstr "ID de l’article"

#: tpl/toolbox/purge.tpl.php:197
msgid "Category"
msgstr "Catégorie"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "Remarque : le cookie de connection de base de données ne correspond pas à votre cookie de connexion."

#: src/purge.cls.php:688
msgid "Purge url %s"
msgstr "Purger l’URL %s"

#: src/purge.cls.php:657
msgid "Purge tag %s"
msgstr "Purger l'étiquette %s"

#: src/purge.cls.php:630
msgid "Purge category %s"
msgstr "Purger la catégorie %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Lorsque vous désactivez le cache, toutes les entrées mises en cache pour ce site seront purgées."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr "Notification"

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr "Ce réglage modifiera le fichier .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr "Modifier le .htaccess LiteSpeed Cache"

#: src/error.cls.php:120
msgid "Failed to back up %s file, aborted changes."
msgstr "Échec de sauvegarde du fichier %s, modifications interrompues."

#: src/lang.cls.php:183
msgid "Do Not Cache Cookies"
msgstr "Ne pas mettre en cache les cookies"

#: src/lang.cls.php:184
msgid "Do Not Cache User Agents"
msgstr "Ne pas mettre en cache les agents utilisateur"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "C’est pour tester la compatibilité avant d’activer le cache pour tous les sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Activer le cache sur le réseau"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "Remarque :"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Les autres cases à cocher seront ignorées."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Sélectionnez \"Tous\" s'il y a des widgets dynamiques liés aux articles sur les pages autres que la page d’accueil."

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "Liste des agents utilisateurs mobile"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "Le fichier %s n’est pas inscriptible."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr "Réglages JS"

#: src/gui.cls.php:586 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Gérer"

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr "TTL de page d’accueil par défaut"

#: src/purge.cls.php:571
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "LiteSpeed Web Server a été notifié de purger la page d’accueil."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purger la page d’accueil"

#: tpl/toolbox/beta_test.tpl.php:28
msgid "Example"
msgstr "Exemple"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "Toutes les étiquettes sont mises en cache par défaut."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "Toutes les catégories sont mises en cache par défaut."

#: src/admin-display.cls.php:1129
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Pour avoir une correspondance exacte, ajoutez %s  à la fin de l’URL."

#: src/admin-display.cls.php:1125
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Ces URLs seront comparées à la variable serveur REQUEST_URI."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Sélectionnez uniquement les types d'archives qui sont actuellement utilisées, les autres peuvent être laissées décochées."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Remarques"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Utiliser le réglage admin du réseau"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Désactiver"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activer ici LiteSpeed Cache pour WordPress active le cache pour le réseau."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "D&eacute;sactiv&eacute;"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Activé(e)"

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr "Ne pas mettre les rôles en cache"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "Technologies LiteSpeed"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Sorties du journal de débogage WordPress."

#: src/lang.cls.php:225
msgid "Debug Level"
msgstr "Niveau de débogage"

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr "Notification"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Archive de terme (inclure catégorie, étiquette et taxinomie)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Archive quotidienne"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Archive mensuelle"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Archive annuelle"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Archive de type de contenu"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Archive d’auteur"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Page d’accueil"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Page de garde"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Toutes les pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Sélectionnez quelles pages seront purgées automatiquement lorsque des articles sont publiés/mis à jour."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Règles de purge automatique pour les publication/mise à jour"

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr "Durée de vie par défaut du cache publique"

#: src/admin-display.cls.php:944 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "secondes"

#: src/lang.cls.php:224
msgid "Admin IPs"
msgstr "IP d’admin"

#: src/admin-display.cls.php:117
msgid "General"
msgstr "Général"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "Réglages LiteSpeed Cache"

#: src/purge.cls.php:203
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Serveur web LiteSpeed notifié de purger toutes les entrées LSCache."

#: src/gui.cls.php:471 src/gui.cls.php:479 src/gui.cls.php:487
#: src/gui.cls.php:496 src/gui.cls.php:506 src/gui.cls.php:516
#: src/gui.cls.php:526 src/gui.cls.php:536 src/gui.cls.php:546
#: src/gui.cls.php:612 src/gui.cls.php:620 src/gui.cls.php:628
#: src/gui.cls.php:637 src/gui.cls.php:647 src/gui.cls.php:657
#: src/gui.cls.php:667 src/gui.cls.php:677 src/gui.cls.php:687
#: src/gui.cls.php:697 tpl/page_optm/settings_media.tpl.php:125
#: tpl/toolbox/purge.tpl.php:37 tpl/toolbox/purge.tpl.php:43
#: tpl/toolbox/purge.tpl.php:52 tpl/toolbox/purge.tpl.php:61
#: tpl/toolbox/purge.tpl.php:70 tpl/toolbox/purge.tpl.php:79
#: tpl/toolbox/purge.tpl.php:88 tpl/toolbox/purge.tpl.php:97
#: tpl/toolbox/purge.tpl.php:106
msgid "Purge All"
msgstr "Tout purger"

#: src/admin-display.cls.php:281 src/gui.cls.php:594
msgid "Settings"
msgstr "Réglages"PKEVT�x�V�x�litespeed-cache-fr_FR.poUT	f�bg�bux�����\�r7���)0�jF�%��E�gB&-�J�Eʞ��Eu�ruU�~H�N�{ڛ���f���%�*T�I6���Nxl�H$��e"�/�YeU�&�T>R'i36Y�Vձ��i�u���x���i
S�b��jU�TG�~�L���:�'��sP���ϾPgS���x�71U]�aS�Z�%�T5(V�T���:���*�췬_D��X>�Vc���?�X�?}~�z��>7��z��{js}ssu}susS���m��mm��:��o��<|����=�1����Y��z�lV�@�?�kE��KO���WoϞ���R�#]�~��yb����Z�`�e��>��i���B~���R����_�Ɨ2��/t�˨��=�"��RW���`}����$l��(7�Þ�v�2��z�0�v��KZ�}�m�ZU��0��d��Ť��y����_�#̎��"��ޟ׆Q�զ�G��`�.3s�s���X�y)Z��O휫���r
a�D�C���0�����Y��ƶ��{�/�`RGqAu~��Ra�W�H&�~�v�Ġ'���7*�2�@�kZ�_��R�Rl�u��B�f4��Ĭ�Q=�l7�*��\RMmRSi�FG5��Y�V���%H7l��X6i@<��Ö������7��O�=Q0����Z=�h�USy	��uav�s0�jW�ءҙ��zi.7����@��&�E�`1૕Y�*��ĸ��-���_��4u�U�%�-��8SO��Rj�����NK�D��%*JSu��0V
�(�-e0c|`�//hT�>�Ƥ)�)5\S�R]��\���*M{�<���?��6�N�`Iw��eQ4<,����V�VT	�	(�e�M
̇F���SQ���u��f���N�+�d�Wj|u�]]�W��z���]Z�+O<{��z��{��-���K�e^��z�@5�FMɊ��/��r�y�w�AQ����*8�g#�$�{uynH��d5
���)-��'�A�Q��ι�D�=@�	;nu��h~Z<��WTev�
x,%�V߂M,^���f���K��K>������w%t��?����u�����4��'��Wů£s���ºc7����.l�(�9���?�iblS����_#di�fVG�"+P����Fv<����#���⸡�d�eJ\#�G�q�ka�� O٤R��ǥx�����"�ʜ�"4�����5��(��VfD�K8���0���Y]�$kQg;����ե��0��9l�g$��D�22U.�Mb�1�\]-���oM[���n�1�
on���u����M�'�ⱶ�=n��C�!��cl�d�q%�Y
��H�M��s񺯟?_�Z;:]�o�����"I�i%j8S��%ʼ)Q�.*�8��P�r՞�0�^����ό�5�������h
�\�w��W��֖up�ӗ�ggXDl����x2�ёe��/��{��Ɠ6H#o�����p&Cl�H�[$�S��D�B{�
S���	N�#)|
mJ����4uҒ����o7O��m��Îk�[Hz��o���,��1F��y���	��)|
��7����O�0pKI���Ƞ�_}{����E^��c]AV$+�,7�.�X�j�Hs��n!��!+`ϣ<���Y��mv�o��&1Rz�Eh4��t!]b�6�6��'�'y��6�V�*���_�#޵��4;'I-ڠ(�uQ[�I¿���[ٜ�F���l���
��Gua�a8`5�f<�0ST��BC��I3��`+3"d�$3���	����@��P}o�+���G����Mf�sO)ol���N��Wǜ�\4��̰��9w�В4�����Ǝg�t&ޓ+DS1`P��0�E��N���t���9�V�c@B:	vkF#A��h���ݛV��ӴӷV�h0�nL���q*��;��[��}z���[�~�s��������eN`�7z�t�6���'��:�B�wM^G9�U}��Mb�2�$��
��Q�U
�JX��mO����nԤ��o�!�
_��-{��p3�6�~�2��ٲM�3����^�c~���ӑU��iTN!n���Dy3��ߡdnc���~�o��U��g�_�2я��R�cE�����LY�
L����F֕$'�H�L).#$��,ҫ��<�"��.�����z���^�潘@��N���|�<����G��qT=�D�-�g꽮�/�uOw=/�|.���L��Ogd%�)�k��X�ݹ�v/�gb�p���|*y�-gE�\�^�_�BI���1�D����d�%��)���r��wZ�^�>�fO}��p�y����W}���Q�[�	5�߾���q�8�y:��9���zP��qt�Jy�+a:�2�I����O����V�q���g@]�}7�S�C�>��Ux�ҹ|�#�Z���}�ɕ�4�%�z����)�s=��Gx�6�&L!��A%�аlW�D}�ih+�J1�z�HJ�kQ�� ��6�R]AO�+���׵5��y�7Q��S|�젣��PH�%��d�RWi)EPSb��I�E59)�"��lQ�O�zqj\�ͯ��e�'�"�C���?�a��k����o.�ܣ���yki�)ug�B�*�`{v�$_��<J�]oz9F75,�41<y/��lk�+�88�(��K"�.~7��z��L#�)��G�HD�w(�q/�� kR��e����纷��8�jol?�j�qڰ<�W'qA�67篆�Y?��+�%R���m������N
���0&���l�X^��0���
Өx��#o��'s՚�o��*[��j@ ���d#.[�P��/
���_����,qv��8�ɒr啁��/��P��ԙ�G��:C��xu7'4���s����n�]�����A��AR>���e��xˍf]�~���
}/{�j�"][u	%|�D{kw��;O���|���NPsN�H�]�{�͢�C��Ś(t4d�\]K֎#���cmb,��(T)�w���X�[�Y^lV���2�܍i[1?�c����i?�ܧ��;�7:����8�?t,�}��v~��8��U]�G���ђ~"8�8���k���Uo��\E�HSē�n��{>lA��H�(���{�����o�,ö)��*)'���w�]*�FLZ5C`V0�Ø8��k�RWkL�m���J�)֣���^��b��|&�/-,-0��rE
�3��Ȧ'��� V���$\��+��0
�5Gu4pץ�Q���Nd?5�R4����������Zox�B��Q��,�<:����7@2(
��b셙�U��i�Wl��۷ut��uO��5N��<�~���~��S5� Bg�t�@�6�DuW��\iY����(f�,�e��8�^���)���Z�d�]�먽��7�I�-�
��U�R�9�?k+���uV讛��(�<z]��� �~zg�o�T�V�DD�>'�"s����yC1h/*�No����?�?�
�s�(��_ML��d�.��ӂ�Sa��9�3�ÃB�+��tNi+,�T���zU>����ȴ,�2	9�֚�V�(;�Ų�f֋_k�:8��Yl
K�܆����%�k�P�0ˑ
Й�V���&�-�������pۍ��;��a�s.8Z����\����A&��{��h�/�O-Wɚ���WH��1|��]Unm�m�;�nG��ۖ8{��zY�
4�����Ge�ם�{�z��
G#6��0(��qZ�	M�xGrn��.��t��r�+���/J⥌��╮ym�G��뮀j�V)�A���H���n��;�9wx�.)Q������׷�0������+w
z���k��합�)����n�|��Lye��V��5�U���grU\�\�0F	��A$�
�ٻ�F���O�`��2�V2u���M:|�L8�f9]�]w佋Ս�͞:��L�[�)x��/?�%��kO�A&W�ڔ�����x([�H��f��	���.�&�ۂ���n���B�f��M"�	�V~�O�{U��U^ť)ju����z��C;�0[�۽����\?�X�J�Q ��rd��3�3�ى��b?Ao�b����H,lܒ�Xl��®]ʓ~�xkт�7�@��m�����[�>Ѹξq�֩�:�Ym��IT�փOk`t&V��ܳtY)�>}����d�,k�}�)�:a��%��[��w���~.��3H�j�F2�Ƨi� �A�6,����\ӄz[����i��Z�����B���/���/�r��x�I�*[�춨wk'�O�-�ͷ'm� ÷yu]`��ѳ�!Թ�ِ��"��I�M��[���j#R��m��$1׳T�%N�}Nm�cy4Ӹ��R}m!n~ܻ�
�I-n�ɟ�X,���]��څat;��F]���!Ot"�F�9�k1ʋ��[�EK��Φ���۷4�w�~o����������ؙbU��׸���/.���F�7���f�������5,��_�+�}��x�T���2��0�{iV R)�r=)<Ia��}"dW$<��{.u�l/�鼑!�]F�L�U::�f:v:;�̳ف�C�;�4�a�T�`G�=�Aw��tM��T���f�'p`w����%e^��z��)[�tK)��0��{�nR�'
�Uxx|��)�#{�h����ӱ�xW���qr���ۭ�K �B?c'|UEX�э��9m�h�ϡwo�W�8p��<+���lh������
[p)!�b�U�FmK>�R_ldw��l��V�Q�_f�D9���]��R>��g�.��X򭛃��F�����,�O���~dtdpg�1om�0/��ް�S����^���sЋ�$�lm��].��Y��|���K�r�j}L֛]�W�UdWZ��s�{��\�Ӡ���=�nby��
�Ý�d�#�D>I��NL���I���,6���"�p'�t'���k�ʷ�H��m����#�U<�Jd�D�ǩi�DARk���؇���oF�hU�a.wt�%�V��۶���|��[:,�<�	E�I#e�ꌭ&�2.�5Aɣu�a?�B��uPA֣Q�k}X����8Bkʳ9���8p
�pYV��KO�!����U'J�=�@X*%�^�Ҫk3n��͛q���nj(y4��O�k��a=Lioو��=8�p'�UU4�O�v*��:�7j��������'�Z�[@O��C�ıUB:V���]����	�6m�ͻQ�#s����'��8��F�m���K�;"V��<�X�G�1F>"�2�1�n��(%�>f�4�-ۙl����n���v�z���1ݒ�@�Z9u�=�}�6O�}�n��a�ެ3 ���{��idz|%��ϲ.���]��i�j��k��@^m��}t�}�X-���'�u�Z�ϤI����'�O��=�/�V6^��VL�	�^��y|���ۡo=���?نI��Y����hֽzK������5��uuư0a:�)�ō_���j��h�/�Kd?Q�w�;�	+7���^��fB����1Ǎ��;s݃����.��zV�%�[,i�`&��w�(C�]fsK�`�K�TKBW��-	��\�(��o�䯯�oN�L|�:�f��%���|���T�k�_�v�ZƜ����z;3���L��(��&�a�^��Υw(#�� >MeTjo��yU�W�`-)�֊��4��a>��-���?=,�Z��-����#��ͯ[�/���4��awg���Fʹ�~�?#wsW����E'v*3��/h8�-�UW?�y9-dž���4 ߗ�S���e���^?nsoL-g��e"���?;���U��m�
��Vzo�gKpA�D۩&zҽ�\��l�����	9Ͽ�D?�{�BqSʭ��/,��^K�)u`J)^��?�'�m쑮�!1�����W�lvb��v���v��Ճ}��[JX[���f������3>���gv���@�˱����UE���.�~[��hD�D����Za��2�Yީ�f�5o��f�۟e�
�"6���
����9��&����\<��ҝ�@�a����ް�����VTu��TBd�/œ��{��8�-Mp?����Q)P#�d���ِ()��)�W�2�<"<HOE�G�����]a���4�(�2��Z�3�]�G��_;3;fn��-4P����nv��|�z�A�y]�N����a(ä`\;��d�v�^��"�1���
�_9d,����wΛ��L�%��L�8�U�{�-f߆Q�"`���7o޴{K�:�l�/�=�s�6k�VFb5K�*��ߛ�iTf[��"�8,w�0�wQ�d�h�,Z|���W&�>�=�׿�ub��_��5�-|f�<�\\!n�P5�2=�y`�g�-�����\5�9_V�:?�2�6rg#��ľZ��6�܌�o���P����q!"����hDte�5Kn�9k�Y�|��k8ر����>&
ts���̰FM��~:d�!�U�E~�Y���|u���d^�=,\\��u2��X�-��o�ױ�gh�
j�HB]1�a���m�%���	�E��UQ����z1Ӌ�{���A}2�צ�'4��G����F>���9)������@R��X{�WI��X��W�%e	Gq�\��#h�,1��VH��C�nd��~2��n���P�~o1���_��4�@�o��(+��kp4%l��\F%���Θ��jZ��p���m��c��!?�G��p�s�?RoE�@��N��k�Օ���U���/{bf�؆)K�� ��ltSc^�"�_��x�j=ϕ��F�>��Nv�P6������tr��+���ytz�[a��T����������*��yiG;=w��x{S5�<ڍUb�Js��N}�K(2^,����,�e4��.��"95��5��@�%�	�,^'����Re�
7��^���_Sr!0)��C����y�vx��@s
$�D��F&����x�I`P��e�F�Z��[�n��k�b��>�À�����1PZE-\ډ�^}��׻�
����V`)�zA�9u9��X���Ł"Z8*op�-L�4X5V�8��N�_�@�����Q��RHCG���/A���C�I�ܦG�qӅ�HM�3/��;�H�Տ���:�85IJp��z��7����E6aAli��]�G8��[7d-J����=�1�Uh�1!l����8^�7�]4kV�M�эO(� ��V[��5 q|��~��=H�9��4
�����A�wL�󀌎Z��L�h��ep��wRӯ�,�B.W&%|+��L;r;��l�M�RU{`UhNi9d��2
�Ik�¾L��|O.Z7T����v^IK�i#�IK$�)s�y��MA_pܡ
4j�k���W�ƹ�ձ�B���zl(�2�B@5We>�mji�C������/�p�XX׫A ��<9di�G�5����s0W�]1Kԙ���W�9O�X��e�ᵁ2lLBpz���*ݬ�
F�C���B9�wj<�!�ʀ�>$��AUB8��@/�Y~��.���t\���{Y�ۋ� :�|c�b�����6,�@W7�K��p�F񒀾AJ"u;�5x<V��~N��u����V�A$Z��3VŒ!�FK�*���0��6hw�o�1s���ى������a�ϟA\���z�	5>�qN�-�&����&�#l��
&rv�~ލ�A@;��L
Y�Ȃ�[{��{��vs"��׫eR�,�[���5L�AۥG�8l�n�`�m�Y�����W�\��Z�Pb�:����r�*�+�Mӕ2/�
A�o�_�';K�9L!W��?`�<Y$�\.�_R_�6Ι�V�hr��T���Sy�2�����uN�8j��<3���� 5��k%\bK��;�*ԟ"�o�</Sf\w�o!S���s�X_��n4ʷ�w���#Jّ�Ż�}�[b=�%�r��o�Z����[�ג�͜�7�#C����)�ܴ0ĭ/�*ӈB�dGO[{5��m��^O'������r�x
��c��/g��O2�S��x��)d�MJh�c�Io�,�˙c"�{����]�"��K����xZ
(��&�h�~tLT!�BH�'�4;�*�'�8bD4�&C��޴������	8�DgPO����(�2��ㄬ�����#�υH�טL�>�:k=/�[�MU��� �;����g��h��PPQ#y
��=ь��4�
%eE i�V�Ӽ����&�q�l����u�}���O{V����Z�2��0�ywuk�»�vuf��;�.�:�U��S��B�11��(Ih�T,'j9$��p�Oj<u��ry�d����c�m2/�QȽ�A<X8~��mD#�DY+Ŗ���L�l�tBJ}+�c0����w���y4O��V�3{�3n:�{n�4Jv�Z�nG�؆��k���f<����D^j��	z8�€��r�����反[�|
�9D2`%����ν4�y\�K@����au(c�p���M�%��Znk�o3(\��Y���q�o!��S�"�\A�`�?�$�A�v_SJ<�Z������EE���&�Y����'�8'��$�����Rg�h��\g|��f�)y��Յ	Y��H݋V���c���B��7���y<�˜��F^(�/X����>��u:�;����@o�u%��z����i��ٖ	ޅT_\����'���Q��L\(-_Uhc�<wف���{5ކl�^�n2�ddo-��|R�ŽU��:��ߐ��ß7T
!��X���^�%�,��a�F}���FX�.�}�m>���U%��{
�~�E__^���Y=��W�g�Q�
��
�D��v̇�\���S��>��U!UM��,_�����B��
�T�;�9j�(������B��t]a&�oI�bO���t��M���}=���g"�qy60�ݢwN�ћ�̋��;X�>�7�8���[�H�T����2W���7�Rf���-�J��4`0��9`�l�2I�
���y���5��X�K
��u�{�����d�Mj��5숲0^������HD��%�n�=2g/�d����a[�{ך�j$�Vk�b���+���p2�u�m5r�z��A�Mp�F�n�]1�fl���2PA�\ʑ����;�Y6�L��E"0�����Ȱ2KR����e��?���c�4fhyA�8,�d���b����k9�Hʹ���ő=F���([���"�e�+���)Z�dƘEW2.��*����&�Z��SJ�[�0�)߲���z�pL�3��,;�8���j��ݹ}���ȧ���K睏�QP��ٷ�Ȧp�%C�b#���K2Ш/��;�Mu��f�ڎ�ʯ�Ƹ|�4z��3!U�T�i֐Y9�h=�ku���לi���;h��pŷU�ӎ-z�r�I��|��Y�/Չ@�0��XEL�F'B�E=(���+�	<���:]�]��U���C�œ�K��}
�PG�o��>P��'B5����ֿ˳2��j�"q�bD�ݪ�ئa�6��T��o����U��H�	�H�����a�rH�9kKDcl��Hq�rMpLe�e��E~T���J�rN5ٹ�S5�)�	����_Z��_i�Ԃ˸�����ib�M�1Y	�Z�{xY}v#�[�8��Z
f*�e�����OUw��'�j|ﳺҬ�M�MxE����	u�(���yȵ�iCP��<Ug���O0��e��0���:��
�(j"����3]�9{���:K�L��w�z�
�%^D�K\_�1���s�mRt�W��EZB,�d���,�B0M=���s;����d*�AdZç���k�l6����R+i��F�U�\/rf_[��ɓ+��@��2uc�$]��K�H.�q@�[���Lm��a&��sہGz����8��ez�L��ŝ&�%�l`��N���"�&&֦E�|�`"Wrm� e3v+3~�$j��Cz<�UQ�X��7_��h[�<�� ؋0�v�E��4qj6�o�"�1$�z���(8��R<��z�Y�
��F�g�6��Pt/�E�׏���rɀ��4ݺK���x�搪�&��
���
�0��L"��lup�۪g�U����9��E"WW�=V]}�t̿�Vj7����Wp�$����jy�]m$�:��V;m�7�긤�<��;�5�с��k�e��6*+�EV�w��,b7�t��,2��61�t	�{�@�����*Ǽ��4�h�\Z|�c<���Ȇ�%��#3�E���}�M�O�קw�
\y����%$<���/4ATX�,~�y���6�s������E@�Z��+�D�ᧀ�+H�G�Ĺ#��V�� 9�C�G�p8��{����E.(wM<���C(u�S��I�k�:{K{�H�K�ʡ��{
��t
)��u.��I^����ޛE�l�z��o��{��sj�)�x�T�u�9&!p�֤�Ѐ�j�r��=���(@@����Fy�2��"~,�u)�n#�zM�i�
�i)��~�۟���Y��'Yr���`�/���'�:�1>�U���1��-�&sk�b�7�=FɶF��_����RKƎ���ұl�s��o�ާ��BW�ug�l��an^cޫe��:���+'�hΓ�D�%��ܠZ,���6a���G������D�ǗB�T�0�:� i�T��H�"Clj,RՒ-P�^n�]N$��u	��xL-��⡅.J{����LB����{��&��p���[.�&���$諅�ծ%�R�M���U�M���ޞ�7g��"Y�e[~`��RӨ�F�C�ϖG��ی/x��x��c�0^Z �!y��7Lh�@T?���,EUS~����<@i$�$��*6�S�����Jkv���i�K��Q��?�%�T��
!�2MZG�G�H��W����hN0=8+�\�V�pPKL�"�J�4lL��㠊�dE���;�Y��Ay�2�Pw�ˁ"�UƣO
��[ �U?��2^��Ng��<�^��n�Gh�����՟�K@��ᭅ�dF�<�(��S��<�m,���[H��3���7�#�qY&���YRI�]Lr�1��`��`!��a�궧t�C*�����I+����*e;U�e� �B>z��2�`�Aa,y`�
�v��6D2;�R�e�{�����2���9�ب��XzR�$ê���v&k5�=��P/V]Y�1�o��]��/�0O+��*ѕ
v��
3�IY���bT��W��{�JW|4��
�H�Sf��R���X���Eu����ͣ���3��
��3�5��?��#�b��aG�x"6ΤzSj�[oK�V�o�&0��xH�l��I��cI�[�����d�<�|Oo%�Z�ߙ&
�[�m�/��2�p?�.���m��W��8f�<�by��
���dne�M�6�GN�������R�:��텏-��Ѻ|A�xM�2���y�68x���]�,��){L�Lx��d#(�Ҡ\t�����r;�n�V���:��!��LfX1p���J��9:I�[x�a�����9��`�
�t�G���;ֵ`D+0��r��Ŏ����x蕨�Y��@t��8�Z���зs�:�f�V�:U��o�f_�=�:���hY�i9�u#����ja�#/����:��s��1�I�����;������a0�q�V�0Y'b��r����h�?F$IL�j��W��%��"�|\':
�ȟ;�"_��E��Zq�8󻘵�R�(@7ѤLn-P'-I_fj�:���HY>`�(��>��X.����(u:��lSb	GU�88Eu��;MzoK�Q�,�}V>r����e�'�����9��	F�����(�����"�û�0��Oc���G��L��(�5àXJ�E�5��Җ������~����f{�ʏ�H�ݫ��2z��a]K�D&m%
'��V���a���2�M�w����uΘ�T}_ݝ^<}����у}
��Ju������=z7��!�%�lG��7�cO	��i��ϟ9.)	�?��lc�pS�.�^�Z��+�?1ѹ�MTj-�,�K�J�p��%7�AU�E�<p�H�[9���|h�(��n�~�%>'��XO
�|��u��)B;� ����mN@���-���V������mzG���;H�#� ��^9�{�h�
J�0,7��Mry>�k�5�{9�΁�u�����9��lf��5��Y���Ug�|���Q��G���񎗐�{�}����e@s:��6g�%�&�����P_m@���8�k��^�cSm���H^(�El|PcMp�б����Y���#v�U%��1*I�7���R�����Ʋ��r�l
HTPܾ���pi�[iGG�.?������X� �(���`�M�魭����y���
ךu�kM-��q���)���H\P�a�[���+<w�Rk�����49�Ӈ*?w#�N��(���kO���/��{��W^'��qg�����/��#�n�Ԩ�
�7�Z
̆cw�/�J�Ao;���J��r��/�l=�:1���}f�m=����#���X��v�Q+>jz�%(������4�Kt|��Z!
�|���e��y���4�Y�U,�^����6��Vvgځ�bx�c5��|����EP�es$r$��	�����ke���p�k��A�aم��_pJƻ��-�y��Qz�z�74�[L���۟5"�!n{�3_�`�9koZ�U�
~� ���u���%����{�M�s���d""�7Rc�t�7.�B��p���V_�o��Z}�)߷�hI�~�<
'S���}�9��W0c]�E�0S*?�ܪ�>��Wѳ��b|�S�r��F�a�(�z�?�C���%L$��=�}k�m�o�Ӟ戋���jv���
�G���es�zp�|����r���ñ3���0�:��?o����A��7nVd��C*���.8N�v%e;Яs_ ���~_��B���+�״�cj��Ajۂj��R�0�;�1}Pꢢ�a2XSW�B��	�[���
ٿ�]�(m
��8�}�&�w4�����@~��D��y��i�h�X���zq��g�iURNT���bci���9��9�

�Z�'���J�6DGk�P��[N����;�-0�\W>O
)!� �j���PF��%���y}���ڒ�(�@Z[�����E��H�]�0�����@gpW��6F:,��c����ڮ��tn�z)�W����c�*WP��(�gC޾�������HR���U�|(����%'M=���r�R2J��^��I	I��O(\u�e��a�4�"�ڑ-�&� U�*6��Hu	E�J��Y��X��
����}`�=!����O�?Ψv�qg�g�k����ecr�cq�<�f���k�[=�1�X�i%�������~�z
4V�-�����4`*zi8q�>�|T`��kD�ނ}т��|���V��]tT:@��{B)�Z�h�?^�U�lȋ^�)��4D��HH�c�מe�D*t�߅�В`n�_�|H�'n�o)�@@	K�Zs	&4b�����I�LhF�N��酅�OY��xsEN/8�덤
�^�W�5�b�nݗ���;��:Ӄ�ߧ�P(��lƎ!z�:�l^�7������C�j�@Y�w��-���LDr��Jdqi�8�>��v�/�.�����	�SB4�5�7\'��u�DfP�r�M)^���v��
�7҅��oن���6�#��r�}�}8��mR��cُၙw1��%U�N��:��7��QÙo7�V$����9vZ�/�z7���ck��Qo?��l;�8ѹE��4d��K���WgQ�C��sgN�^���U��.a>�������H�k��/V���i/�ؘH^��,Ğ/.>��*��]U�y���Y�Z�Xt���s1:����C�cnY���-g�2(����(�Z��6��X,�e�Ӊ(l�6�f�D�O�o��R_���I�}��3�m�̕;��x�2E�:,��{�6�w@��i��4ZS�x�5���W��*�LK�뎇\�ݢ�?\d'���uZ,@z���m�c:~�li��%~��'�T�N!��+���z�����	�&[�izanE��<7��Rr���~����j���R�|H��ѵ��l1���xQ��#��G@�B�C"HկQ蜩�5l!�n�J�柖6�����6{7H�h=�~R�����z�&n�����_q��X�r��G�nadu�&����Z</ W���(FF�7u�%t�b<��Ԍ���ã��n��Gb|�!a#�K�m�R�X@����X6n	li�:	��3�\H�R�8�im�`
�0�F��P���ᯥ|��œ���Ο��De8y��O�"�/��1����cX��?�g��dg�5J�,k�
J�_!o7��We#r&�j���joe����横z`��[*{ Ң+��Ԋ���z�U��E�Z���j�ܿϛ��|I�`vW���w��E���;0iAf��G"�޾��x#e# Gr	�~i�����fb
8��<cΏ��\J��m2;�8)�,(aX� D��8W�^3A�(���%:�`
`��xƂm:�M����ȗ;K\�[��Y���+<�L@��H]�S�f�<��;PD�:0�^�]/`��5�<�R��'�硡�|��Hh�k�-�)�����OiѾ�L�k�.4m�?������]e
|z���P�Cu�v�]��h��)o�s�&��E�T�?dl�����6���J�A�$-�Q啸�N�)_���S��߯�dt���;���,Hlɉʶ�>ɬ�RW��oڙ�A�M~���X�V���قO�A+M�h+��ӟ�F��8��A/�q5�E���K x^���-KiQ�EX�!t�<�.�H]�ߒ�F,<��1�?碥�ѱC�+|4AV�26�s,^��>o,MGЪ��-�X��G�:��YW��{r��R��~o)u�VjW�������AƢ����ff�"e�c4�׿�
��K��w�t���վ�^�	�l9X^+���m�=�_��K�C~���J�:*��w���PuG��k�H�@��b��K�֞h

�A;����!��Ƹ��\�$����-6{���=J�n�:�~n-�F0_ag5��k*}62�4���{(r�P�M[�蓗b�,��X��m-�P�:FƼ�%�b��5G/���
*f:?͐�ضE����S �"�[kq�%^��F�s�� �=�ߐWg��R���oU��x�_I�bY�:��?x�|�y���$K�û��R#~Bޗ�6�j��9i)2�.�u<k����4T���5\/�E����=i}���M�zμ�=�0d-ӏ�u�Z�U�7�s��Mt�]5�t�=�.��fAQ���8�Y����T0�PK���Ο�����Kތ=�qGv��8�	D\OB1�f�}A;��X��� ���͊/�.J��T�q/�i��
�Wp���wg	p]��x�&7#�$ؚn�;��Nh��A�"
���	����&[�]�+��7����+C���f� }\m��޳Wz;� �~
�GLs�/
�M�c�Q�F�C��[��<j���{�X��E��F^�L�e��, ��J�-�1ΫX�8�i7:sb���8r�,����`���|l��n�"MH�Pt�Y��lZ/�^U���w�dI�I�8���m$F�y莁�b,��Q��(���5来=&i�
�Q~ٲ�M�C�8	i����#W̼�f���.�^�b�*��P����<ˑ:����i��G������v��6N?�U����u[wQ�4�K����c0]�AY�',�ޏ�m�bO�J-���}���e�S_6+���:�4(���8<��9�����
Xڸv?���!w��X"�P�{<����O����܍0�j�K�5d��d=�bHB7_o�A��`o��}W�Hf)��7���yQM`��"�����̀9͘=�8R�sOA
5[�C�>"~+�,�e#�9�<B�@��<�ˣ.ϽJz/�YS+�Z�CW�q�ґ�c�m|�N ǡ��|(�c�,�V\��/�P�>�G
C��,X�v����7n��tP
?2t��j�[��%3�.�a�����:L��ik�}���Z�r��]Ӹ�m�� �W'���7��G��!�/&��wU���р�j�i;�$gv��%�;ȕ$=E����$^�`�ȷ��`�}�։����6B{���&Y���	�yw�����F޵�A\~QW�e碃W[�?
~�#��2�ɥ�ӟ^{ᓞ�Og�1/���-����Y	�w���h�V{�_l[�h�8�����=l;�c�3.��(����9ҐdEǩ�)�"�T�×�x4����2�'�sTX5�315�٨�iFq|�A��	�!�+`��i�T)2�(o�)��#A�A�Y��$E�t������T�c��8��Gr|}�@$�4���h�vK����/��@`���p�k�\�g@wBa���)��N�A�_�޾�x�䶀�Ϣ�܅oQ��������#5�?]Zǖ���J�IE�r�"'%��!jk������$��,�(��ʒG�=G��޲,<F�0�T��bGa����ڪ?[�֒�EMĹ̶�.����N
���eޓ���W!}a$~e�0��ֺj�#�8��*.?��6�� #��P-EGN�c&���IE"G�H��[߼��:����Yq<]R��:� �P� (�H�	z	�	0K*sj���fd��@FS[��A�4���u|4�c�K�/� �.'�8��G�h�@�l���-��;E�ɋ*@x��^E��ǔ��1_5�p�<�wQeD�I�6�|#t�)����
ކ�pCD��h���*Y<&����\�5i�u����p�R���o���rF4�Z�
	pC�&�@��,�p�L�j�"&�`R2Ib�`
���a(i��M�g�!$Sg�f��.p��ƈRK��0_��S�R'}|�$����N�1{l��f)�����@?*��pi}
�<{�<z��R}���|
�ʐ9�\D����Y0;���!&�"dQ����Uj�Id0	LN^������_�ᯀ?���feE����a��.�+�I���{P��)R�z���)�-�S]�ȃ�x���'e��D�Z�c+&π��l˸H쐿�	l����!��Q1�1+�is�0[���Y+�tz+��y���簾�$�j}�ry)�������ߏ�����[9��b�f2ٖ�O�V�����4𨿁�L��j�fK�K�)�	:�4��}�פ��I�Bl^�YG�Ɲ�!�T��|<����e�9��d�,�'��?��Gs�%��=���9�Zڝ9ab��ܪ/�4�&��ë��(#���Z�]"�=�d��)!�7��@SjM��
.��l$Tٱ���_��|�ׯ�1.� U�p�L��O702߃���U&�Wi�u=�3a�c��G�X�G�R��w��X�0�AX��g�b���Kc���L��6�w���`�}hލ��D&0)����:���4
�#����X)P�%W#U��>�[Y+�f�э�Aْqi���@���d�+�"�W�j2��{p�:w��ރ6yY�⯕K;_��b��9���S�p`�g-��5��������A�KH�ےڔ��mT�x2뢃V�.Ex�l-�n����b�"�3/yO喦���g#[�����L�M>���a��t� (	�>�u�<�2Qù�(����Q��c"� g"X�"��$��bvkH���K�Pݘ�
\�:4	���n��)&U8b��]E(Gr��k!x�x7Q/��:w���ݨ/�H �hh�޽=S�"]�,I$��.��
a�������3ث�N}$g�c0�'u���E���p�����_���T��"����`w;��Ɵ�g�[�t4D\|���	Y����)D�z[u8�b��[��u�9Y=���hK+����NH�S;�Zg#˥�n���/�^�u9��􍼞�h`U�CR�o���KxI����zM�YFG��.\�]��_���?#�z�aT�뮋`��
~ōӼ�u�Y�p+�>\�C�&!F.��ˈ-��
��dP��S����螏�`M���H
a���"x�9r��N.�b���:��0�_�iz��k��aѱ�x���s��ii���΢���k�kb�i�B�����2��R�׬΍`�:iorK���u����a��p
XO=���x��t�����ܐ	�x���+
��|z���?��c��3.�ΔӤ�j4⬧"Kl��"�/���?gU5o��,[$"�"�J50�P�w!ݹB
^.���Ͳ�5�o?�\���r7
�����'M^���K�ܽ�֫��S5uFT�!2��d`[C���L�2�_�b��)��e�:�@�\�js�$?��^��3�P�H����틄|������˓��D.��2`!Z�x3���mu?1&63�]�kƽEa�l��]e����<��*����w���H�Q��)p7��~Uk�^-��9�ua�"�"3?�o�z���r�X�����~/r��&'i_ѝ���J!�TGH��A�tp؄,̒�X^]]�."����<�t�,�tv�����§&�Q"��DD�Y#@�)߅ ~�ix��ف�R���s-k!5�;�N�t�#ͧ/m��k?�j0��y)�S���t������w���"�����ڠ�jG5�^���������
I� v� �ɇO..`���N�F7�L���z��gX�~��S]ces�t;'"��TF&�==Q7�mQ�AW�^��]؆�k��
X�k�K�d&1�
܂�j�T��Ն:��b���%y���o��
qե��A1[\�M4҆�rt��yx�Ĭ'�4�3p�GE]b��E������XX�]D�k2l��YZՋV*�v2<:�t��4ݔfKX���=���E�H	sJ�c�)��=�T$8GR��LP�-�Zޫ�R����x�X+䌳�B?H�.��oN�}�4-��֗	�@�{1�;�n�;,OW-l��m��ت<�R��f�8��c7�Ճ����S��ġ�D���u��^T'����[(� �	����F���2<�
y�B��Jmɵ:'�F�@@#��y��v2A��+�1`<]N?�0L�Q�@��5����T;C�P0�c,Z[J�d�T;ǀY„��p�m>�2���F�����3n�Q��w?k>=(
C�\mʻ�6��Z<�`�<І��&Ap_�Ǿ��-��Z𶐯2�_�e���K�f�`̲w.�H~�B����!�e�!�P�f���BW`��r.ת���>�Z����KhWp���b�ذ�Q���Rk��[$��b����٠]M�3b��QD�]I
�D�F������`�@Eu{�����/�B���E��=���frx��yᢋT`��� JΨ��267��hH1�P������L���̈́+�'���u�� P�p������1
rJ`����ϰ*��eM�d����G��?���)!����q��Q�IMIZ�Ci'��^'(�`ɱCa�ZLO�f������b��01.���wa	�W`瓀׵i��[��diܨ�06����P�:YmX��C��n@�^/���Qv�� X'a�ΗA��¶@_��tAI���Đ��J�����dQj�[M�G�	T����$�h��4�<����\$��槵�d*�X�x�{�˄�ck����6˲�m��C`03��W$�,HB'd<ۼp�x�%��9�g|�C�*�Fc�{�/j��H�ր6ԅ
U|����_�%Xu����%�:�bu-q��y";:�5}�6�����Y�_uk"��$��-h*��_K`�+h�����=���4ߔ�F�c���z9�>�$��΋���Ř
�7lCъ@3��R*Q=Vޕ��HV��=W�6�V��+d=�t�]���6����ջ:�!��Bv=���w���Vn��E�A)��-eZ��H����������ف�ɱ��WF�նD�H���;$��֗�S��6#�9���k�����)W�?�
���K����-���K6��PnB�Q�gC��d�����:�=.Ӎ���7�&��ڠ����:D�5��b=�Hmj��К�?M��>�6����@���͇_.W��z�H�=ϼ8�`׉�z�VD�H"�r�
�S}cG�^� p�R�<l1�+�Zވ6o���-�$SM�;yJ [֩s� &�)��0�
���E2�F��-U�Am�|�_�
#=��),M\}��``T��I�*o1�}AH�1�$��d$gZ�I��3�G���)� �F�W�n��?'��+C'6�]�7i�Ig���]c8pQpoA�h�~�z�D�DS�den.���!�P
���6&��4��BzҭV��'S�3���O�!�T+��\�:[�2���)�#���s�ϚdC��ٱ���q[r/����zKI&V��
��Khg����B��Q�s���塂�t܊hEK��`p��c'���1]`>z��T
�.5+r���/�NM}G�%n�z#��)6�02��f
.+�>q� X��ʒS�TC������_%��Ϲ'lIO@�%:{�9lL���>�N�x�V�d5��#��^WD�u����:vd��5�@�C�b����a��l^~��h��bu�ږ9�ǣ=_X��ELR�d������/��J�7XP���l/Vw1���݇��Y�+�r����]�q��hI	�}�)��о�*}�%G�3����{��ٺɪ�i[h�x��W��*#�����l�h[�a�sK'�g�p+FC�7��4T��.c��U���堐�Yr�Xf��/�#ϮA�����h�X�X���4}A)�u�}!���@?~VZ��w;�$��N
�*hA]E(�C.PSݺR-��)5
~
���L��URe�\���ac���?9ws[#�΢?b����Q�Z ,I�;�e ~�$Z
�B�:N�*�ma�!�٠��A�ű�ƥ`@U�Z)�
 ��Z��R&Tۘ����ɴ�guvp�7������x4|�٣��xv��b<��nǁ��S�<O,���aQO0��U~��5n�%XU��iG��je��#�����S�J�3�s��:+�V�U)C���[Hͫ��#O��N˿l�j�����+u�i��ȕ�i{g3G?4b����|6J@d�Ի��ݾP�Me�	E4�����pG/uh��G]���j�y�a��p�L4��x��6��$��J��kA$�x�~�(��>�Б���œ�aSs��ʜp��VGJt�̀���!���̿$����牠�]l��4�6�C 6��f��@��`E�d D.���sxY��-�(��գ�GN��g���L�|�U�:���$&ٓ��ڡ�-�{"�DZa�p�f�Z#;k���\bU+�b��-��LWHr��d���
׫]'�������6�x�tyA�����j�Mu�Ev���^��
CzPS����T&
��(�4^D@�tF�� h���7���T���A�	ɥGM� ��[�g�֌��S,�.
\^�Έ����]6�腞j���x�݆2��1��i����1aI�@�z��"�@������dt��F�Z
�t�n���_��9��ɶY��nZ�3JV�Y��
q�z��bs�T�2
1Yƪqbi�ɩ�!L�R���m�Pi��|!�J�I`;��r5�,���'^J�0�ֻ�I�&p��WW({�>��x��ȝT��~�u$�J�o���`7�B���;�j*`S̕m�ˌF�\֕����|�('$��^̒s4�:
�8	�2�/I#���:[�8�����
)g�`�K�ȵ�%��sM#���=��iO3'S��$B
I1�"*GS�����rP�F�b�;/w���e�j��+^M���R4{n!��dv�Ϯu���ޫ��Ur���
����XE�m�yʈ��?/�B�K����xZ�1�?��mLb��	~�g��b����ǘ���
�l��s����,�ן�s3[i�R¥X4��[{������?<p�UX*���M��E�2q�繑
ܞYxȬ�5ć��u�̫���'����ּ�p'vDW,�*$�S������e%���4)�����HI�l.ɒ�M
	^W���^1gDD绁��Ĩ"�k-��5j�@{K��B�C�ّ�Z��c��y�^`�Ш�E}�Q5H.=<S�:�c}�0L4�1�.�3���@tq����>�x�(���_�#
�2�P8$]>���´�6���b�Iz���ه���CX��y5��
����T����<�Y�ًM2O�w��c*�7���L�n�uuPŤj�UW�m�4C����<VxoA��9Pc�mj�����3g:�AY���,R �T;��M��Bg	��R��	s�8@��Y��UG���V�To�U����6��m���c+�l�u�2��WO�s�	}����\����ݭ����:ϝ|r�fc��f�J2*�b�1��8��Fm�.��Iվ��Yh�௡"�&*i}��e��t�x�99b�i����-?�;�j�|�kAr�O���zӽ����`0����?+�
Ԋ[P3�kJ�]T}��`j����n��2�	߇��m�V'f�?6
�}�z��z�D��ښ����+9 f�!@��7H��(�ץ�7@i�揱&}�4
Lbe=�m|��QC��s�t����EP�%[S0�Y�/��,`9�o��&�(�|d��g���ď>Z�7�w�21Nan����aF� T���e����v<6PF
_|�:A_���m�%w(���hl���^@Y�`���>(`��g�o-��4��u�)D$..���"\'�ւc�\�G��vkIcU���
x��2$��sbN4^=�r̍������|=���f� �w����s������d0�m�ޑ�]��9�@6��ﵗ��u^k�&FQ����{c��j�Aܨ�_�!�Y~��&�ٽ�����a�~��9����1���O�k�i�Xf�dM��Iׅ[Ѿ� ����޲��\�r>l�
|�K�BӃ�H���N���=We�ΐ�I<޳�joM9����k��^uը��"x��汓��4���EO�@}H-��V!�x5;�!��Hki>�>�����ວ�]<G�z��<�w��M��/��s�B�X�T�ј$D��\�BཷN��yG$w�
�G�d�KX�l1��_�T���1�h��ט�Dt<L�V�����/�a�Gě�O�9s
�މ$��>q����ً�޲ctM�N��W3񇚗L?�;Z�%/��%�y��/��x��߬��/���~���Y�T>{v��ͣ)�G�̙o�m��B�G�O��h��Ş�,T���p�ʌ-⿃�ha�C]���)b�f7���.��L�j�HZ��N�|UW�3g"�d����{��8Yq����������q���������$k�g�#�K��2e>�>8"t��^ᘩ(kwJ����?�S6[3@��J����@{��5��-���6�3ξ�5�۱����&�P�RW,DR�!#]�Z@D�ۛ�[q�D�#=���$��}��yN}XK;�wl�(��!�TH����j�bQg���}6$"|lSI� ����ߎ��ND��y���J�K���_b��H�n�!6��:���V�x0F]�?X��(����_��蠻N_�Ԭ��RV8�*W��47R�\Ct��hHs���I�ѣo`���s��)�P�B2&w��>݀���6s�`�ɲ�~�0��jr��ZC|�v�-H���'V�ID�-k�I3�(G)�c@3|yW�v�����l,�h�{�^�kesu8�&dh�g߫�LX�{�@�)F������}���Qv�O_x��Hn(7k2	�����g|��ʗ��k"��o@�HP��:��Hfs�.�#�'-���6t��΁�:��QK�|���.�R3_&�^z���Yh�L�'BW����
b&a_��Ewuf�,o&�mU�ȫ8ɖ��
�f�R�ڷ��F��Y��bWq-��Rzo9�ҍ�����>y��q�;<"��-�ko�g�����q\���4W7q�������d@��
����%o�����������~�-��u�V�pw@��}����q��)���':��`�rG{�-�L��>��!5�1�	�i�Cv�~z~*"��p�pb�m����%��x�?m������(
SsTZkN�d|�����aENY0	|�$��T��7�~����5h�wvF-s
t~R��ºjv4��{B>�i���9J�9jЫO�v5��m{B����$��K�Ii~��Z�2��+�o����$�Fρ�7�ؓ|��j�3��P���[�F��g��������
�,:	N
��L|Ec"��Hgq""�l������V�p��c��ň��dž���
��o�1��0QH�#m�eka֪jY
��u���؂)�)�>�-sV�I������0G���z�n$���L�4�����o\�~��Q����n�c��f���8&��r�c�QF�2T�w����&ù>�D$ǃ��VZ�H3�\ڟ�n���o	���^�wp�#D��a��<�_5X��}�|�B�GI^z��8�A-�X�
�Vg�uo�ܨ(To�C�xۯ��RLJ�4�zy���t��+�o�>=2hnm��Z�k��*�眊tr��<�9b��2`N���b�u�Ik��QwwG�O���r�e���@鋏��ݔ�f\��F@m�7G }��-�'��T���$�6��86s�d�8�TJ��EB
�{�;�ޭ8ʹ�VIXE��_
��X�"�t��p���ݭ�a]�Z��}�`��kף���ƖS�H��Rd�?}.&�9����[�C��3��YR���p����
���aGٍY.�O��y$TS�v��Eo�=����,Fe�0��"FLX�SF.%~���*٩�^dM
W�|��M����j��J���7��6n��-孃�K�t�=2��WIu��)�����ު�*."MІ����n�P��B��W��*��گs�|�KF0�{������(st�v;̒��.��Z�8�F�����l��:��H"�|�Tsf�Yu2N�U��<a�E�}F�PKV���A�J��Gm`X�q����S��!ca`��UmZ�+���ѝ���l�Dn�m��m�y�V�L��ʋ��&��bX`Nlu��pU�Q��g�T"���T���uHj!K�U�s{kN�V�,^5��k�����t��̜D�N,�I���oU��ώD<��>� ����iO��d����H\�J����֑_z��'Z��� 7w�l��&�C����Z7�C�Z�0��eR9�6HwC)쫇�Y�6��by����~e�z~\�>�Z���4P���c��A�k��Fx�<�ǡ�O��b������v��T[����H��5l"j�5b��ؑ�}^�Fc-d���BG~
��"%:f���r���`��g�Re���<!�A=1/����qC~(_�k�%�>��.��;�'n��l���m�H���ˆu��g2����;�(�@W�"
��p�$�����o
�s���TdS��B�M)�
��FіK�dԨx�'�c�����=#M`�U���s�aG�kh�8�'B��(5~����9��*�XSq#g
{��r
<F4�.��N�JWUɊ���b�V[�W<�2���B��I0��#������EJT�4�&�\�@iѢ� �""��?8:�齤[}lm]xC��TBkF�axY;��F���lZm�/�5	�A��,?��u�5
4,�3�q� ���+X�z=2������Ƽ�ꪖ\�.܄��'T�5YX�ԈN�*`�^���E��XKz��u� �ݴ�Ծ�*1&�б$�c&0�d�xv����U�쿖[�3t٘�HĴ������M�����7=g�[�!����ۙt�ah^�r^����zY�:���z�3���𖀈��;9 �Gs�v��t���2�M�Ê���Ħ�ز��-��D��� �Z���w/B��,�I߼|L�.c�-�u�7���q�V!ݑ�u�Yf�~��b��T�.�(P\���3��S{����6��>���!�T<ܢL{[(C�����F"�J��ޡ1����8��;�%B�2#zsQ"{F��ۓ�oJ��t�聺� !�n����#x������(�AX�
���WP��0��.�H!uI�j�sO�~=��4h��}7D^�p5��x(}3�b�h��@�%��<M��U��f�i1F���	c$��YL�5KM�	�]�F�$=KA�RP�U�B-�:p\1S60��Q
L�H&��RȤҦ0�=�k�e��i�j���Bϸt�<XW]�|,�J��b���?BO�Z-3Q�kŚ�AN�i�F���-6&Xԗȭ�'��r5j__^������'��x�����x�:y�j���~/�d�˔�Pk��z��DՖu!��i+O*+y_0����xƕc�~�C�p4�CP���D݉Ԃ�!u_ �Ph����s����1
e�w��?!a��
b���D�|I4��CץN��3ڟ����Щ���B���H�n���C�����Cg)�=��-4F�3j���i.@7=^�TU���	���C� ���h
#P��3O�G}X�z�A&p�L�0e�������I�6Q������X�w��$E�,E�	3mٳ�/%�n�;�:�i�vA
Z�:��4����~D�3;T�Z%����3]��tk`�������_��$��π	9?w���/v�,���Cr�z���(��m�d�S����J���q�\A���T��#�J��h��*�z�&�I! }OH�:Q'�Y.Φ�%�j�Aj.3��ی��On�;P̓]b٩�9�f�!]s����kb(�|��c�H�[Ԁ
���"��7[yXm��r[����If&cӒc��1�f����'���}��Љ��W斄4�l8�!W,̀�T�ʲ�Ű!�P0��Ҡ��L�&�(H�:ћ�\F}>C9N���!�*�� c� (���9�#� )�qe"��O�ߤ��G�K�������-T�9���ˈR;��A�d�^	:A8a�.��A�]�/��#žVdB��X\��

�SU���(���4�����
�&����}Rr�je3p�pn�G��E����",D�����#s��bj��7qs�� NiC���[W٪�˪1e�v�C�X�C�,k8�؈��1G��@��6CS�
��D�{,��VM-�˴pt��,+��B���v�.�;?Q&K��n���䠇lhbS�q��W��ٽ�4���0�P���fC��j&����;n��s=�5�=�3JZ��:1R�z��5�+>ǯ��_�V/U`!]�[�{{O�����|^���;��Zs��G�HA�fÚ�|#�������K��ܞjw�U���K�~T��
;ħ6�l�ڏ��k�s�v�ͤ��}w��:4��p:�[�;�`eJlIL��)�?�Y;bcH���,��HoT�Vw|���"	��V�����
愳���P�[�C�/r�[5Ϣvl�88�/��9m����,�~�tP��s�Z�}C�['�|��c�y!,=�R���gE~�24f��g.��$�d�Mz��t;���c��p(�W��W0��)�y�a���A\��|C��pn?��i�-���UK��
������Ak<�O2�{�lfj�)�7�����eѫ\�(��=�Nm�o�<��,{���&|�	�_�ҔZ���N3d�F��Q��lv����R�]RuT�܋�E]��a��kL��ȿʑl��N-u�Q���4��ՙ	�+��N/[��R���V���r��k��q]ŀ�����k�f/��{H}� �JHn�d�#L�IU��� '���4s(�p�K+~aj����Q%�.�Bc���[tCY��hO��9q�V ـA��᫷�H�M�4�'�Mf��"�"
����/��)��wfw�B�V��l��V&x7��P�`�44Ĉi��&.s�QI��%	ܛ�"�a��G��MK��p�3��{p��pR�8d4�+�]DE��~eA�M�`��QrE� ��38���@�����YB���ԋ{�'�^�4d�iA��k��'bl�
�})?e@��Ri]���n���0w�����O�!�p���<<������
�)l�U|���J'9-IrT�de* �������D���a����R;|��T�~�jJʋ���b��gIU$d)i�d2߂M��}�?�����ʋ�⚃`~����:b2�!�$Z��y�}��z�0t8��y�t�9G��`�f��jq��c:� ������1����Mur����&N���@x�e�cB��eHS4T��1p�t;b]��3f
�~�{]��>%l:>t/�iF*<��Z�ю� �ܡ��Yµ�[�N��E���r'�6.�킞s
/�3dh�lp=�=�����F��+���j<i��&}BׂzRQ�?�d
�v����?\D��	�执~5.:��-0fBeM�<�����Ov`n��u�����`�Z�DxCCq֏Ċhg.e��t���;`�Fl0�f �
m2���KU+���ӧwu�}U��:���N�U[]���F�+2������is��f�i�3��xw�Moy�����e��,�'FF�fA����r�x���M}	W~�B���	�3��\�G�g' ���}
!1�D+R����y���K+�t��M����(�$(x�To�)�yF��WG��9�2T��:w������6Dr��ؽVPK��B4BiH��E����o�A�Q&I��v��L�,,չ>tX��`�p�i�b�'[�ls��ۆ��p���I͊���ĺ|���z�0��РO�S˵D���	?���;�~��&}��ly�In��+@N	�:pu�ڨ��
ctZ7�T�K%4_��n�+��HN��+�s�n�Q�m��h��瀗������K-�����?��E�:�nG�����������_�"�d1Z��\?��*Rw����Hx�6[�}x��ap��.��[�@��
�p�#}s��tR�Ղ��#�$��{�$xb��fl� ���
�g�D_b�2q����&qVlVo["�Rh8�A\!�	9S����/�)��%Or��`�T]'�\�;�F���ߗ�J�6�'��b�$c��!
{�l��p���B�5L�
�m�6�s��8�7�B��%FE���W]�����2�g���wؑKn�
�u�Sj����bU\��e���o�X7@c��GܳZ���]/�P�ΊA�ŃE�yr����]T�v8���pG��$8W@��q>lI�&��I������v�q�����Qw����}��su��LJmE�a{��ρr(��3�AU�|���:�<]�`�&pa�ᢸ��e��{1�)�g�[����?"�%��ȓ��T�h��`Ց-���P~j�NI�v�qw۳�Rw��:i��`j�kӔ8A$J0�}@�t��2�UQ��m+�_)�c.	C�ܻ�?ew�BIe;��p�W�݌����T$̰�����w�!��ʢQ�r�O$�$��;�~�VHZB���r�<����wla�+eN$- 1`�P�t���QA�C/;�b�^�y%�z���d-F�M����(#��&�2�Q����xOʪ������B���YR�[M�GS�R�E������Z]���
�~L���B�<JSj����
�r�A����;垊�Ӂן��h�yse	�\\DE�b�x���c�=^�k#3�	a�rp�BĝV����b`b�a.�V;��A�A�g���Θ�tܥ,1����z�6�i+rt��h�A�=|��7�7:����v����&l��rfk�J�@h�s���X3�A�bZ�c�۩d��۔[�`���������6}rj�%(܇�<Z"��v��It�J[���K�)�G�h�U�:��f�!;�Y�8#��TV�3| �
��"�:8�co�0��ܞq%��X�wj��q�)UK'e�tt�4M�xɅw����+�������,iL6g�=��B\n(ڇ?�Z���P�Z]�<�?�Icj�_l
���ȥ ��TL@�[?�)V#K}CL�U��2l��h�ǐ3#��k4x`]I�z�i�qdM�z�%D7O�ň�E�Y/2��0V��Kr�Hٶ��0�S������0HKt�s�Uf��z�v�K�	7�kf�"�$�1f�0�@�H7o�@�(<��Q�/�ɷp�I�;�Xֻ��۷�,<�-���P� �}���}���ԓ� Tݷ4C��^�9��X�-��j7�Rɰ{���ۨbP{��ɿr�1�����8»$>X�1�Ao�S�%�e�k�O�U��'�6��v�Aް�����Yb/B�uݸ$��[$�/��(D��)��Wl	i���c�ٵ�������$0'��*v��1��W���2��,2tE��E�BG7_(��Ұ�A-w��l�âkض�3��g�{�qu7=�-Q'e�Sp(6`���z��t�(��IkfXɬ��"����E�(dSWD���ꏺke^TԳC<v��F��r����
�G��C�vz��ke<����X'�7d�_����Ŝ�8oYࣇ�[B��3��
o=��Ǿ����h��)����]�~fQ��o-DV%n�->w\�q���*�j�|�B��`8F܂>b���r	,�H��������Y��N��QT���3CE,9 �����)���y��_42/vty��'�Ɔ#��IC�o�Ǝ�'���b^���Mq-(�E�$Sr
9=�"���E��H�b\�fX<��>�~O՜��*�%�C���.B���F�2c�\T�:~��!o5b��vC% z�T!��¿w�~s���p��-�	���|u�� �iI��A)��!#iQ���?�Mz��Δ(�䞠۔��5�}�������{����Yg!5,�ы)>p��3�K��Wt��ǵ�e�U*��0�ɸǷ����^�y�����Y��	�Z�����&�.�B�q�P8[k������; :��?�ݸ�am��H=
���B�w�N���2f��ɤ�ףɤ���ý.&�Vuoό<�B(c��>������d0�E(1�]�!.ُOI.��Ɲ�5ѿ�tQ�:���7�9�?,���|�#����;�uz٪N�w�Pw�~�o�g([��7��&m��ɼU/�"��d�����!j�A�J4��U����S��Hћ���mm=N-vK���A��Dke*�a�I0"��q�֛�"^$��Z-RVZ5�@~��g�d��?�
 suZ������u�������8��w����"����N8f�͆�ωڏYs44���5~9�(ސy7��G;��QO�7&dcyG�e��x�Ʉ�	4'���bl�)�e�-Z��
0i�3"A֪����8)! 	����ԭ/!��P(������'��P�:k�p�dN.�M��~L��X+���m/\����0��V36!���e���� j�
�
���K��r1��ꋓ�ʯ��'�[��Ǒ%_���;_�lv���*��n@�Z��o	����3i��K
Um��/wOr�r��0J@_��t�*̸��X�׼�[�u�����+�=�c_��no�~��u�*r�W/�sTq�c�o��%���4��*����W�Wx���wU�D�b�t���Ҥ�*��7�{k2�d���t���8���)F�2�r��b��v�߀��V{Ҩ��7W���e����w16�2-�}ۂ,j��ٖe��5�ܘ���w�$��(�ҙ>e�-K���sh���j>���fW��i�E��™��TM(���{,���ڻO���^m�ܲ��l$0_M.�7�B����P�j�-�#�k����V����S��0DwB�6fۖ�쿱�s��m���^l���;��V����A���H0��f)惵O�z����������Z��m�WW[B�ק5f�����jDߑ�I
:��t�g��v�����m-z:d7�F
j΁o�(�;`נx��'�ā�^�=�g�6��Ft��i�rh�. �$PE���p��<91�&�C[��
��1�0�G�5�@���b����F�8li� /{�W���Y^�p>c�*�`Gdcu���(ыw�{�� �*�q�eP��kmGh�&��U�)TiT���1�(0�TB��d�e�F_���W�H���%�+���a
�q��р�@�S�A�M@o��4���@�����cnx�$����d'Z�L0��x7�%��г������@�gC�"�#<�I�z/��!�����	�K�N�!�L��A��z�)�j�+I�}�� ����<";�����aJ��~��);jd8k;�'����z:�״C|���� ���P�P�����+��L30h_�ZaNh�\HW�c�����u���4����o8^�#��II�
=v,.K ����
�2�Q4����{G�y��gj�?a8fq�Ӫ��%On�`��a��Qy�Z᠁����#���k�����*��"N&��@2J�l-䪂�����ns����x3��dB&L<K�I�P�����V�R|�ʒ9
�%���w''��v��.��]�j��K�a�v�`��eT�c���ƪ�)&��C9~,�9�pd�a��-��h*!9���wY��َ-ǧ첈��BFc��!V�e�����UR�&�:�>�b���W���F���,��Z%�I��5���P±�&-0�m�"#��ª�rnjY�wR��*;�/l.Ы)�6�k�s�ј�Iu��t��g�\eI��DJ���,f<�pH�G&*���T\�L�uJ��lZ��jp�����$���E&���Jxx����sn.�v�ѯ�B�r} �D(���bu��d гx�֙�d��"܁��:��#�
X��4��l
4�!��ꜗ5z���e3PS��ً�_��Z"�R���6т�0S���u��^'�hz{�+�9(�פ���١D�U��ߦ���=ر�_.$���n}�jk�7"cG4g��k��މ���)'r���U O݅0{'��@��y�2���*����1w�n	�p��
���ׁ`�{ʲ�j<n���j�R*�"���'���#2�շ��*Lø[ĔbG�~sh��_�Y\���t�J߮�JAĴӡ�*����^���PZJ��S��k�i�`Ih�"u�q��K�Eɦ��.(v�b� �2��o�*��q��a�}�>���S}�B��vb��+��&03�����n�'��\��P�]�v�x�H:}�V���î�q��I���r9��b�C�|>�1�b�R�M�EL����MɁU�}
�T��O����V�j��@�h5��SWg!�-YGF�+&�}�I�2��r$蠮f�b�5��F��5b����+���
��	�a5Dܱ?v��.�̯�d���r[YN��/..Q&�P���L�d`<��P�2�y�@�X�������Zݤ����f��Q��
�h���c�&%NXr��F���TH]/+��xlhH���[�)~7����[l�H�'���)�)�������k1��p�ԧnD���+��W�XXZ7q&?/5<'NsD������jp�W�S�����/48�K�5�>u��D�)�[��g�m7��ƞ�=xW��gKz
2o���S�A$(`��)򀂳�f���Iw쉋�s��~���=���tx\e#{������ݚ��]����3�[����ǭ
?��v�X�,�NY�*�YĊ�m�	? ����6py�߾R��j�,�u�r��N��\���yj[ '8p�Av'��#p���`�T4XC�H�F�ZX�e&n�N"1dmBs�'b�fp|�5z?��c���7
4����%3ݚ��5��/�>���U�r[Y<�i��U%[�ĚDŽE8���C�r�'	7i����%Im�YPa"%�
u[H�tJE}Lf��tJu8�x|
�~-=RE㤼�J��^?Y8��Y���z��O"��r�n0��@��JN*6��,����		<�	��>�v��_�_����
7�:�py��w�P~�{
�(�W�Qx�i��g���j���/	��{>O6��3��	qYh��~��=>�4K�a
NJ�1\�k�E}���3���ể���"Y1�*?�Ev�#��]\54���N��G�˰�g&E��"v
�o�Z&�?2�˞�7Ԯ�Ov),ӏv�`�Yox��[��,�yf���s��Y9�#1��k�-�<�+S|}&��4`p��g��rd"ު�����y��O���)���p�H�a��R������
V������%K?�ML2sh��#-r��ɭ��U�66���l�fI\I_OU��������Б��WτI��%*�T�?�_2����@_z8bD�؜s�e[�u#����V�͗��/OH@�6�eN(�l.���z�}��/�l�ĝ�6P�k�-�ߵxR�`�2,��S����Z%���/Y�&���	�բ���F�m��[�0!JG�+�J�kOg+�@�+�UD����CY�'�D���xS���I��W�Z�T.���� q�:���H��u1W;�������R�d�i��cncZ�	>�F�&�=
M�������M��r��!}������Y����:���kp,>jlTj&�]���z*|��1���~����%�4�d�i��[�����Ҩ����^�=V;�=}�{L��
����[+����Ef<Z�^N%���?���F:�!�S;N�`�r��/|O*Vd\"��RGV]�c{��ԥ�I"H�_��F��SB R�Zңl���������i-��`lic�Y!�ݾW[��y�w(����NM0�X�Q�r2Hl�*]&v#>y@p
�f��L��7�yY��U~��rcg`[g�/�����͖a	.�[�i�nd�-n�!7��^�U5t�:�5�u1,�;i�b�z'�_G}2��z,]�7v��{��	4�u0֩/�č�W��������_�]=�n��eh�e�ٗgq�CQeN̾D�#�I~V
��z�yRdp:�����yڰ��+}�ۭ�u�NJ����O^�T���V�f$��3���H@��xy��K�c-���)���qm��}SYq`%
2AL�x���EJN �.�-�`bI�Q��?}mi}�󜩓ZՑ�����
��/�3�H���Ύ �
�ܳIe�3�3�$�Y��>b��cz�M���E���Q��;\.~�?�Bu��k�@�s��o�$�un�<�r���Q+k����5�\��ܤ.����o�I��I�`3{/9�,��E� q$cٸ��� ����A��Q��u=����� �h�����<)�%QN�楡pS�i��:�
a��m3߳q��#?V����E�&��Za�er�0?�k�z���@ƛ�
�a����@.9.��!.Ρ��?ח:������-Zz<�
�t�kji2�g�2'8��wJe���T��Cp\vˏ���{���	/]gJ2{%�o���k���a/tP@�IAJ��h_6쉯�B|�&^I����2�S���,s�=S�F�:���`���+
�g�
[̝�6w1���Q�����g&�B�7�u�5g�.1�%�q[j��6kpr�֏u:/�Fg��x>_�PM�,SO�D�B�B��8��@5���J��6�4ւ�m�ӜNv� U�9P�%bv3��ZTI��F���>V�W��.O/N/_<״<�_<u>2���r����!��8�E��Gl2#��ؤ�-�bد�I�W��	H��Q�v����NŽ|$A���5gw�^�ȕ�KBw0��x�ޡ5¯��ן8�N�_��_v�x�,��?4>�Y{o�l�ej{��]u�T1��h����8��(o�����+`�y����_2Oצ�{җk�J]���
%�r`@}�9�b���ؘ�ߢ�;U���o **�H���'�)���k�NA���I�>�S�J��S��:�������F=�� 1[�l��K%�4��*�f�|��P�'���-�k������UЄ�*�^'�d����18��<m��
p��,u�[XR��g�d��=����s��VaYpAشX������=�h�/�C�"�
��p_Qg�bڲV$QB{�#�v�!QW���U;!kR��gz���0/���_�
�…}�z�:����ꖀ�]K
��
9X�6[���>X�S-a��O��L唁��{�l�ϝb�->���WH�,%�e��[�2��g|�wx
�>��]l�ez��L�ϴ��-l�����u��s����,PȞ��ׅ'Y��-��P��pe��RЬ�����fG
��i�@��.Bk�%�WI��3^��wet���;̈��[p%�7�3��V�;�^{�?��A�7ǢN: ��M��j���#���ga��P<��.��Lub]x5�ʅ�O�qh���]����\���J{��l�/���ڔ�?yr{{���.XwU2��U�ݓ
QJ2dӫ�Hoۀ9��˫�_4�B�D�Gۺ�B*r��7L�\�MK�)駅�\?>�Hr�Q3(�&s0&�\(���K� k����xpdO���e4�n�M�r��]��C�{��	�Fٹ�\�t��:O��o���ujVS�>
�Ʀ�\����捎�����рD��u�!%��ɧ<#�;P�6�C��:Q{�fĆMF��5pe"�x�:�~�4ϻ��s9���l%�>/�b��-�V�Fh��b\�/ֱ��ł�^M9�o�-c�T�f)8��{O�'��UJ\�a�ԩ5�N�h�^�ґE�U�,AA%�W��U���PW�X��]ư
A6R����ߵf)Ea�U~(�~�(�+LmQ��X`Ng
inŇ�&;p+F M�fl_��?��D.�1Û��n������ȍ3*Ӣ����&�L��1Sm���7�!T�������Rj*H�$�)�.��W�8uy�?�"Qw5��,ތ R��j�-��36n�RK���A�0��<7L��:�a�Z�/5F�22�����.���4Y�U<�ͧ2��퍲�
y��xj(f����)�s�M|P�<�1BW��Ɛ9�$d���-t�|€�D
�l�X�:�Sb�֠C�
�FbK2T�x4��J�� �C�D�;g���J*�#���o��-hi�o��&3c�j(�����09�C�s��p��s�n�u8�0=����4���s�1N���U�ّz�������6�W37�f��jx���]}S$Çb*c���O���� ��<�,W��!`Z.
�W�mk�Ht|�Q�pklk�8ർ<�i�fw8��82C��B�A�oiLu�JmG��Z,3!���LiG��5E�.�-�X��=�vRk���j��N`��U%8��mQ���q�]��P�����ȏCw`�V����d:�L������
�@OƝ�ޜV�}1������_��	A4�FL�6RQz�F}�E���k�*��ߜ^�d���
�NE��eZ80��~F��%��a�u#��$m��u���1_+�O���j\\�95��*pE� ���x��C2���}�������ɑ[���&�O�����y3�k&x'��I���^3��c���aOG�
bxa_v*���rt������z_b�9�\]}�׽~��^���(��p4$�W��dD���2�*�>�Գ�2pOS$�5}U�����`�䦈����/�5�u�|�w%N`^��1����L=d�D��9������DhҚѣ+��4�"A����6`�^�#J��A���pM[$�X���$n(t%ܱ���K�%�&��h[��_�k�I�6�.�ϴ9���"��!K|�^5����(�3���6���x�MK��v�+�����L�F�.d�0jH2����8D���Z�-��V
F{U�M��
�?��?�����ѥ������������{��_�Fvl'��CJԼû��^����.�l-
��ns��IU:w;p	i�gy闺8N��biap�3s��ʌ}2%�%��m�;�&�[\dr��z(��Y��U�S���6l��m��j�ҭ��z�,�'�8�I�0p��]+��t��Cz�DžaojѨ�\Օ�M��\�8%�V?��N��ה)��
�zw���.J�g���d��ӲG|��)���C̍��7���2�x�J�9ǃ�H��n����yb+����Q�E��
����3���:�o��+τ+�?�
M�DA"+f>�t
�I�޽D��7Ϭ9LI��o�t����=�.� ��P���^M�/�.�����J�������2<@}첏G�����l�k����	Z.�E�yh��m����������Eb�������&F����a�U�F�L�+[��m�?��N����j�(Q�9��h�ǝf[�3����K����z����f��7"cp�O>�nl��A�oL�nׄ>g�_�ߴ�+<񣱄��b��Nb{_�#�уF�f�<�y\b�!R�||]`�'_W����W�?}>��2҉�5y%x�7�NwV3��tZ<*+��ATQ��MR8�9Q�#2�/�MϠ�2GJr�]ř/4�ye��`�z)���n�L�b���S�=���
��d8mg�r
���u��:"`@í�6�bx��6>��6/���1m]Ҷ�N��K�8�����ߤɭ:nY�ϑ��,a�?�$��XmVb�>=��8ޗw��z{z��8���9�F��Kr�ݤ��,1�)�5�nL��̠�_��O.
ڨ;>���&n��Lɖ���V2��b�1Pqi|ҍ�
�>�cGnD�j��--��46b��7�e	�*-��Iv��C�h<�A+J%�bSx���b1!�pc��2ZpV�+�\g��`��r�,���ʻybM4�U?ˢ��AD�X���h#[��~pG��U���"F_��j(spFW���Q�}���!ad���A@����g���a�F]j�U
��M�+�����i�������L����T�X�J����aGL�螫�d�!��r�UMt:��SVg/@Ɂ{C�t���1}�g�rSw�[����ܻ���,c��n)�玏4|g�l��J�m��af]_fر�d�7)�|)�)D
���}�	�S�ڄY�‡k ����{!��ɢw�
�$:>�M"���poc���	�������﴿7d�û:?�д��f�i�	&��c���E�e�Vۍ��q`�u��0K�E�	禸���45ЋY�^L,Sxf
���q��GC3��U��y�x�ǼF6�Y�h]�o(S⵨��,�|��S��J
�c�7�Y�����*?��1�]r�Ň�=7�ɵi�����v�7�)L�Gj���)�S���u&�C���`dῈQ�]m\�z�`�xLH�ہ�]'v���sW����H�B��n�ԯRt���W�I�̨B�a�g���-�J+3�[�q�<'�&��������f7g����ɬ���31����/�.����j^Sh����⨜�k�d���U�)�wW�����x@�`�7�F�����p����չ�.�$Гn�.(b믙gP��b��{���νBh��(cl9��#�O��s�4�c.��G�W݉�MK��	�DZtU��E�E���h�$vp�:F��^\�d�u"�%'��s��b���c��C>k`��˨}���-0
̹�kc�I��;Ҫ:�B_�'^J���2Ц�AT���d�hbF��gs��p��y����f���O�?-q���J<!�o�ܮP�*3iH)_�%�tv�O�p}��2�@��W�8kN�Z��*�Éj�f�|�I!$�2P)$t���S��]���q���x���{�3c��Fs|��+J7/<mx�xG�SX1$XL�E%��2�I璪�9�ii���T_���?�3��1��Q�'JKA�Y�yY5�}�J�@��	�~���Ă��ܜ���'�)JnL�A�h˝�^��ϒ��ŗ��N�{��bq\H\#\��9@v�[�Aq��Ahs�O3u���) `H�P0D�
�"p�ͬ`A�U'�&��K�wC�)n̓C��sT��5�������g��aa�X4Mv[��ϣ3�t�vS��D[XX�2�Z4�]��&,r��S�	3Y��m���&��3����;d��]ehU�'
_�iy
2�����U�>R�?	�bĐ���3�{p�%��̍���%/�\��:�U�\pc�L3�1�6�p�q��H��'cIJd�K�zJ��`{�S��j�G��m|�Ťс���%kGbrL�F�v\ᡳPh�����bTq-�V
Uc�A.	c�BB>]QK�3��)�"��1:�ㆠ'%]�]Lﻹ���QW�#]�8�!�V�^��i�>���Ӣ��?�jE�!�QR��/h�)��扛|BL�Z�+��L��ria���òI�0��|��x�r�3�����H�\2�CI���@^�{:qSE�r�J,��t�qΣ��J8�P\��UڛcK��]\F�^D�^���݋���7��7�_�x}��Y����������Z�����mҌ?��Ҽ#A�Un�9_��&���M�piBva����uF���������ޜ����_ū�����H�ؤ�~��*��˪�#���g�xEZ��<f^?:��P��<ч3��!}���`�;�Q�es�T��H����;G1U���`�0����W�*New�_����T7�e�^�����7O_��x��x�"z��O�.� ���q�.��%�h�ZC_���eC�]U�7JM�RR�	;"������ Q������F[���nic�{�5:�ӆ�oۡ��ޜ��}��¦Ô��zQ��������n��v���k�f�V��2[����j��3�{x�V8��}9v_I?�N��/��f)eQ���
������z,D)(!��?$����7��'/>o��9�ipnXM��6�������$8�w[�4���V+��L�_�gW��t�)�C�`���"ӯ�8?	фqCe�2v�`�B�e`C��B�Y�ʷc��7W�:2d�&[`̏�D���|dUrf��Ysl0��ԃ�;�iZ�>I����Z�s)�4�qT�±�߉ ,i����@�1�$�9�>��4��J����Oؖ����L{�h�x��5�]��@(ce�\��"qC;"�3�|���]�#ez�Gj5�/��:�P��_
԰��w��W���QK��J�g[J�cg��R�y]����"����m–���#0���i��~D�j��	�'fy9Y�zh�8
�呼��~ݜQ��e��G�m�qǵ�u	���|�%𤃿uk}I|7O����4#�]"��T�&���Q����mBeT@��xf���}V�Y�����~�Yf�\�e�Z������l��o���`�آ�P�h�4�".��w������5R����J�C7Ā�f�X,��Ě����V�+V7��_��m��P�]p_�f���^��D��/K��]��
7�}ټ���󇋖$�����i;����|��Y�凂�فz~ygE[�~܈�;R�J#	�T1�>��O���K9ѡ�tb��
�r�_G���3�퀄L�~��YR���t����o8�ە�X^��'��8i��;��
���B�AHN���6�(�S4�
�k��I�ְ�u��ۃ�2��ڼ1񐮐;�Vx`�Z@q�4`��ȣ��vQN�T�F, �	�09$��!�m�4�3��B'@'��|����=�s@�&.Ro�<��|�R)F[96��(w�I���$.��dkw���k��i�!QP�W�\%K���࢚��գ��j�Z"�c�n�6�GMZ��Y�S�us��,)-rF�מ��bJ�-O^
�!5�mMp@�k#����	R�x�m(��ت-:��HȈ$t��ʞ:�p=�/�pI�aB��(���n����m��6ldP�2��rG�aM��XC>��A�Y���(F믒x�6��Hc���M�d����/�%�ڮ���ĹB��W�WTJL���h�{�i]]��'r�dwj
�"2��;YN?��W��tPo�
�٘�j')�B�}��&������M�=m��5�m�Y��3����2ρ�!&k�G��O�"P[�Yo0��:A�U���v��pgA��ޤ��=�8e8���ԯ1۩%g��
�h���d��A��q!|�j�h������{2?1�']����ٺd/�bm�Ϙ��x�w��ܡ����X}�o`�o�֯2�fG�6U%�Y�N�GC[i�M���*m��Z
�"��E[qe\w�/��n�Y��v�)�����N�U�#'T�M{�2�8<�ȡ���!m��UZ �Kl��=���"qu
�ק�2�D�4�D��$B��'
m�v	��eN}���p��D�e���)F�>e3������vC�\Z�M�4������z��:��@��b��O�Zʙ��m
ee�9u�	e�J���WL��2��V����q�{"E�{�㜘��r<ύ�M�\0-!�&���4�F{��2�{���~��.`!
�GW�1p�7X=�x����{RN���S��FYL�ۢV]�����o�������j��t�k��P|��ma�ڟ�;n��h|�������mtt{��N��~87�6���(��d��~�o�������V��Z}m����͑<�tr0��p���v��p.u�x<�A��5���
}{����U�n�PKEVTw���U�litespeed-cache-fr_FR.moUT	g�bg�bux�����y�U�?��$Q�pEi!	�tŽ"Y&a�$2�D��Jz��{&vA�ٗ�@de("��"
� �<���>w���<�~��ܮ�[��r�g?��Єod��LfK*��&�y�]�{~F���A��FT�L�*�B�T~�`�_H�P��ʍ�<��M��2��=TA�T���7����{w�z�8���Y*KT�Y�9�hw%��r��Qy8�;Qy�C��[Q95@�E�"*#*w��V*���P9��i���nT.�r<�_�r*O�G����T>G��+��r\>�����r2�9*�K�<�Q��r�P9����i�|��è���yT�X�xF���ڹ��~�Z�x�����h��0���@*?G�uTΤrӁL�A���.*sT���*�F�4*��6�߃X�K���g�h?K��)�����rn��x|CX׻���=*;�y�~�F�t*��0OZ��|��T~��V�+0/G�����8��OS����	+Q�o%��Q*�Tn��Թ��r{*�^	x]�����S+�.��˼��Lfg�w*ij2w�]�	�n	𱠄v���/����y9��~}�����ֻ��}X������Z	�V	�q�e��(c�s˘�E��PF��2�;��ͨ<����f��N�߮�T�^��R�|}�B{��yT.g�P~x����`�U��*��*��*?����]E�Gx�S�/��T�8�)�~S�Q�*?����;��?��`��]C��5]����[s?j��˴������+��i1�P�N�9TnK�b�ݫ1�H�ݭ�~��yYQ�<_Ǻ����{��u�ڄ;P�U�k������������������G��0��g��nCz�u*?E�=���T~�ʶ�s�ڭ��G��#��FПo��o�:�;������~�*��jƓ[�����3^Z�}U]���*���*��/Va>��
p��*��Q��܃��ߣX��F1O?��F��Vc}�Y�������j��j��eT�I士���z[���r(�?�P���C���P�y�P�ա�lj�b��?�P�G�<?��P|���?�|�a�����z�q�~�a��������]p���0o����0�����?�oL�T�LJ�8p~���ˇ�㏠9�r�#pnp����s���|�|��#0���}�őx/���$��Q��͏¸�����K��zFGa^�=
�y��k��o�r�O�y��р�������9>G�O:�_v4�������=u4�7T��F�ј��1��}�A?��3|��y����c�?:���1h��Ǡ����wy���(����X�����/㽥_Ƹ���χ��u��x>x���8<�s��s�%8�[q�;�8��X�>�8��yǁ��q��8�ǏG��hy��h��������x���_�M����W0�{x�sz=���}��ٯ`^_�
��6'�\:���T�O�w��3��U���}�;xx���'����T�?�׿��o�x{�I�'a^g��u�=	�]?	�v�q�I�okO��g'�_<	p���h��Qo�8�x���'c�7������oh��O}��)�߽O�8杂��y-���<�|﫧�}
�u1�������������yש8�69�ש�+O\�s*���N�8&�zr+*�d��J"�2�N�v��O����k�*��>��}�8De�������3�^H�7���x/ �勼�T.��cgRi��}��Y4G<��q���8N8�p�٘����z�{6��^��l��G�:��|�>G��98?�sP��s���`�����2^<��so{��}��^r.�w�������>���s�ί��w�:�v��o{i��<���}p�^_v��\lz>�#�+r>���w��������B�}�7.�8�\�r��/J*�y!�uԅh��1_�]�y�Q��B��Oh9�"��3�U��.¼~�"��"�qk�϶^��ۯ�w>��^/]�����Qk0o��}t����k�3��Kk�����l�M��o��i����w����H�9L_]��w1�s��x����>w^�����=�\o��֗(_z	ƻ��;���K�G\|p�%���.�x���/_��}���F����x)��R��/��K�ov�|��П�\���eO����/�|M��g��q�,��w��x����ݗ�>�����
��+��^W`��^:�N�KOW`���<�J\����u%��s}�֕��M�b�g��zDk��k�^'��8�^���f-���ck��E�8*���e�*���Po���O��
�=�*���wB-�J�Z�t�{�����0w_�py�����W~�]�u�Y��^�u�Z��h�l}~'�_a>�j|���q�5X��\�{
�{�5�ϻ��<�p
�����9�-�ߪoa�N���o��O�Znu-ڛ}-������Z���9s��_��x>�m��j��1�������׾�|ɷ��_�6��T���q��:�e�����~�s�u���u8�?t=�u�X��Z.��[x=ֿ�z�Up=�a�z�Gθ����ѯO߀��37`|�7�'݀yy�ʣ�O��1��_p#ڽ�F��nT��F�nĺmz�/{���&<_p�頛0�#7���kn��澛ߛތ���f�G��ߩ7�/����~߻��./�������7cߏ��ܶ�������-h��[��so��^u�[T~x�[ЯǨ\�x�Ї{|�y�w0��}��Э�o�[��go�-�r�o��ezN���.���8�jT���]���-���=��'o��a�C�a<����#o��~��!*R��۰^ݷ�;��!|�v���<Z�+�}����[w`|mw*?y'�}���w�y着��;��Cw��'�	9�'�|�}���c}��>���Κk�xX�}|����\|�X�m�����?s�v�]X����]h�𻀿O��ܻp�]��o����'w�޼�����ܻA.��Ys7�{��؏��
|9���{�.��}������������|�:��u����Co�z��ú<���u�܋�ov/���>�w/�q�:��b�_{/��כ�b]7�����~z��}����{�݇�.��}�}����þ{N�[����̡�n?�^��~�v���u>�C�?�h��C���s�1�S�~]�C��u?�>�����z�G����Yu?�s�x���1�uZ>v?������c�6���g��~>�����?<��#�<���y���ϊ�������z�W�_x|k��*W�1��~����1Υ�~��q�>g��n� �=^�y��D��^��p��Ή�>�q��a�U��r�����m�|�a�����z�Ѕy*��>��f�b}�~�(޿@�[�z=�(��o��s�'�'���M7L��ǀ��?�㋏)\>>�F��q�C>�8֭�8���c�=�8��7���8��'��6z�?�����ϵ'P��'�/����W�<����B��͟B��[*����3���?^���0�O�n���O��I��q?�s���?�K�z���ϟ㼝��d�S�~
��CZ������י��/��6z��<Oc?��;E�_�4����?�y�����x��gпO?�s�����g�=:�g׷��T�|N?�qn�,��Y���ς�z�Y�=~	y���^��/1�oRy �_�|?�W�#��i;>Gg*��s��<�<��ȇ�R������O^��|�ט�)��>�S9���q������
��ߢ�3�<�؟/��鋀�]^�*/}_�"�˾��V��}}�K���^R9��0�=~����祿C�ƿ�}�2�碗�~y�r�W ��<?���_|���[�����*��*�w٫��P�"|��=��G�w���.�#Ή_���?�9�x���5�?�'��=�~Z�g�Iƾ���O���t�_0?���o�W��οb>O�+��ÿ*=�W�m��\�5�1�
��k��=^Ǿ9�u|����|��g�N���b\/�/���o��	<r̛��x�&�
��o�W�
���o�'w�
xl�߀����W�����coom����o)���_��j�[h%��0���#��;�w��|��c��;���<��?@/=���	�k��}��?Q���k��_�Ϫ�>�_�Y�¸.�����|x�_�c6�7��o�K�����2Je��翁�6����o|�?��~��o��L�����'R��*���=T�|���&|�L*�\�"�L'_J%��U*��K%�#[�k��nK%��L-����(*�|E������*y|����Ʒ�y���7<�-��ׯ@%�S�d��N�w'M������.���ax�?�J��s�d�w�L�C%�ɴ�+�����۳T��w�	=�����Q����T�|���	�������D*o]M%�K�Q���0_���6��*���
���n�&�{*n�E%㻟m�~n�	�ap�ߵ���R���	~�l�~|gS��䦘��ރy�=���`�w�u�>�~֥�J����`�R�x�`=����6�/����6�E�����{��Z�^�ߩ���A�d�Ok����k��cT�>��N��-��G�K�G;�ޏ~K%�]N?�}��F뿨�E����e��z�`������uz��Я���<_�A��#T2]��1>��º=�!��7k�r �|~����Ͱ�n���f��m��l�6��37�>�m����9޿ps���T
��9��*��qS���	[`ܿ��Ͽ׶��>��6�+{~�kT��0�i��|�����>��n�Ѷ�i�O?�y}�J>w�C%��]k�t"�|�K%��|�~���JƇOR�x�%*�n��6��|㾊�#X�N%��l�&t��[b}��M�噟�8V~��*��z铘�I�j���)�><t�/|
���O�����8��)��䭀����K��{�o��������?9*Y�0�J>�߽u[f˅�������n
�xak��Ƽ�sk���������{"��‰��X�>��z}�D������1OON�MئM���z�
�
l���k�|g���m0�Ƿ�8_���x[�ۊJ��sT2�?[�w�J�K|��2��J����q=3	�x�v����an�u��v��������|�v�/�R���Z�;�p�d����Nƾ�L���M�||n
�{��w���*�~m
�ϭ��_}Sq������Q�tҋS��>�}����ܰ=�u{���>�z_�4���F;w|���O�|�秱>��z��~Q;���ϴη��|�C�e�eU�?�pzc��?��d���s���Wp2��g�0�?ɡ�T2��i8G���u9{�i�����G��Ӱ�oL��5
����X�ݦc�
�1�OǺ_;p�逳Mw�>�v�����3w\^�΋��};�>��;^��x�q��q.��#��&;�?�w|���N�'Q���T2�ۄޞ�3��Ψw��ǣ;��ng�Ǹ]0���.X��vA�Q�|��.�W�����.����~����^�w�<,����u\�+�u�h��]'?��]��O��s7�Mi7�v�y�U�>}7�'��zl7�m����̷�>�;΃��y�������;'R�r�?���b�c�����T���������#��:����n-���\�'��'�?jO��"*��yhO���^X���п=�d;��^����ܼ���|&�3��>;�a������g1��u��ހ����:io�Ú�q�ߺ7���1o�f���,W?z���ga>6�
:d�ـ��l�ۙT�c>e6��x+s����˯���}���{q���9�����86�x�H%�s��bފs��Π�<Ưs�o:��t���<>ى�މ�?5ߙ7�x���y��'�C�[�~�����=�q�,W:i>��O�op��̕Lo�|�{*Y�6��B%�yz�{�,��l��X�	�b?�/�;e_��=����꾀�;�E�����}�/7�F�[v��|����
�8��|���n��Gb�,<v/��b�g,D���Ӆ��b��-R�hƱ�"<���|�Q[�v�]��}}���T��E����u,<�\��k1���d;�/�Ճu�R����}T	���,����-���%؏�z��ϡ��ޢr��߇�^���������6��2���>]:�w��<ؿ-�K�������6ȗD;����@�׃b~_8�x�@�>�8��g�y���>��\�y�ﭟ�w�<��Ǿ�����������/����A���A��s֧|�?� |�⃰^��~lr0��6�^���̃����=�}���O?��"�K�q��/�?�"���j"����7�|��&����/��8��c<+��'��W�屟�ɣ�G��?��r��Py,˯
�G�>�	�.}!��h�~�b.�z����
!��Cſ!�;n�@ϗ���h�Կb��w�S*Y��6��� ���T>��8���~�]C��G���C�����8�u�~-�}9�<^��ΏG��P��MW��x���?I��V�ݫV`�^X�\��%+�w�\�}�w��׊����>X�:�S�:�_�yS,�ǖ�G/-�~^�x2e���e���2��e������e�ǟ����I%�l��
�uW1U�Ǫ*�ZE������*��*Y��!�����A�:�!��w�Wl^��j�w����.��a>���|�N�}������'5��+5싿װ�[��1��gb����\�1�1�yU�����6�c�_<o]߿���/�PG�ߧ�\�u�C�x�6�k���n`���j��a�s�0Ωo
c��j�����#x�?���~t�3n��J�Z��~C�@���
p��U���b~>7�|�(��Q���Q�+F1��G�g��:>8���Q����ox5�o_
<��X�=���k�|?}(�ׇ^���
��롊����0�U�>����?yȿ�||�p�3:t�
T>��9����~��FG��m?��p$ढ�	G�?���uۑ��'�ĺ�^��s��(����9s�Q�+�8
p���Qo��z�
���h|�z}~��X�׏�zl�%�{�/a������K����z�/a�o���/�69�>���g��z����1طK��8G����T������|,�6�e��A�_���ː�e�Ŧ�a�;�W���3���}|[��o�c~��-�*Ӎ_:|��'`�~r���'(8��_�|8�Uȿ��*��'��?��!��D��O�<���')~<	x��d��N'�;{��y9�d��>?�d�ׯ�8��ʇ.O]u�)*?��{*���h/:�}�T��3N�uϩ�Ϗ�
��Sѯ�O�<�qƷ�i�;����r�i�ޙ�a�ޮ�8
��i�����ﴝ����X�ɧ��ŧc�WN��p:���}��5�ג�A.����~��װ�v�:��c���u��O�\��;�y���������z�)-_=C��3��6�����{]߀�f�oo��
����:s&Ƶٙ�;�	�-��}r�ՙ���g_��L�-��<�q�,�g�,�s�Yh�ҳ�Cg.�}�y�����8p�����'�����|��~�=���_>���s0���A��9�r
��w���=s.��Ǹ�0��yhw�y�~�<��yϷ��8��y�/;��7J%��8��0޽.��=������_��������G.D�N�x�A>v!�;w�?������k.���n��M�X������5��Ck���M�編<��뛀˕�z�b�{�K��Qy�\����%*7����R�a\������|َ��e�cz�2�ˎ�1o{\�u8P��/�]t9��T^��wE[�&>?�����t�eWb_<r%����ļ����b�X<��Z�s�U����\��z��W�L���պϮ��j��_
xx�j�w_��g]=ʷ�<L���U����pN̽t�Y�B���kAgn�m<?���Ϗ|��^����_����'���]y��h���c]?t�j�
��o=����qN]~#���q^�n��r盰�/�	p����ߞ�	��M�m7c�mr3ίo���f�����/ξ���7c=��E���@����n��d�~���x�ێ��*Od��;��[1ߧ܊����9�X�U߅����<�9��T���� o��v�wގ�9����������N���wb�/�p��>��wL���?�|�7�º�x7Α���3�ލ��|Ι�{0G݃s��{�����}�:���a�vދ���^����:}�>|g�}8/N�x�p����S�����x���o�!�}�����r�5�c���~��k�c�S������T��^/{��q>\� �����?�����0��B?7{��0�麇��yx�S�`��}��#:o���(�:{�'��s~|��`߽��
[>F�I���ƿ��XדG���8�q��7��|i����Ӷ�/.~�q��g�oy�O_��$���O�C?���s��<��|�)\O~
�B�S�g��>\��W?�sꤧ�������o����Γ�~������y�>�����X�g�ޞ�L[�.�7T^�r�g��w������O>��³���j*�y]�K��
�O���޸�p~n��9�9<��9��0�����9�g���y�Ì灏|��P*�/o��X�}_h˜�x��]��5�M���G��k�g
���o���<�Qy�[�A�����ϟ�[�?����3^�z�"�����/�߿|��^|l��k�%�G_z	�q�^�%ෟ�<������s.�70���/�ϼ�}���^�8N}�%/^n��/�?�_�~<�य़�<��U�{^���WA?�t�1������c]@���>�x�?`=_������G���T~���??\�����w�	���:*�.nӿ`=��~��/��������W��տ�|�5���^ùw�k���_S9�k��a���{�k���_<��5���ױ�����_=���q^ޥ�7�>�
|��
|o�7��gSن8�k��ل~2����Z�06���ٮzo���o/���^O��z�kl�az��`��.����֭���e��q/����V�~��[��/R=B��%t�~��G�;��k��NS����O���ڷ�u9���۔��ns�����</��{�7��[O�=���jm�Hq����Q�O�5��:}�wTo2�����7��2�t]���i>Du���3��v�N86�b��4�>'%� ���ص�N�o��[�kB	��;|�mK�n��k�>�3�R�G��<�݌ʛu�u*	e�q�������
�OdAfRl�z���7��7x\�~�Mc�h��R9��8���E�<�%�f��ۙ~7�k>S>4�]�Im��ݗ��,����:Q{`8g�E�Y�p��s"�c���x��ym��v��C��U�[66���{ڿ��d��-�/z��^�<�{�ޣc�ݟ����r=+��C�w��G�l+���g�߻��W�JߝE��<;.��������w�Au�@1]N�nC��ߝT2]��~�u�zѳ{��6,/��l;�M�����-:3Ӄf`W|��߁�
j?�����ޘסg����W��{%�O����TLe���-����7��&5�����+�E�>��_L��T�K��q�>��g��:7Gj{}T�����LOϟ�qlF�#�&�7s�m�ktoOj�PƝ��Z����'k�O�<O�|G��7�xoӽQ/��o��?�mw�6��%:i<�_��%��'���;�|~<�
t��e؜����g_jc[������ه�~F�O��2��>|[�ޗޛH�v��Թ��iU�7�7����a���C,L����ڙo�����~����~c3s�P[��~����5�i�S��to]�����������1zgmg)�s�M�	��f��vt�b*O����٠�2���lK������K�����n�q��N��9D�d�g>�!���k�0z�7|6k�7P��ٜ���*_Ծ���Az���.^�,�ث
~�3� [��^�s��}��Y��4j�}�U���7�!��3��w�I��m�i���v��z�����q�9~���A�/��:S��Z�Bz~���9�g�'�}Z>��g{s�m� ��۸���i��!�~�~�G;�����Nt�|mf�H�{��u^���׷nz���a��0����@��
*���o:��6���g��_�~����ۻ�="�3��?�\J��>,��w~D�����"���x��'X����"�#��O����G��6�<j�9-Y��1��-m��>ӥ��؎�7�:�7h�����Z����^?��_��E�G3
5�M��l���7�9H�.�kbM3���#��{�e��\��`����������q�'�C�H����4�����~ϛ &���0N��?t����ijcP�|"]���?��~wg�Ϸ�<����_2��{�S��y�v��{���Mx_���7]�}���l
�d�۝�}����싁gN�w_��b��N��7Ry&սeb��:�S�m��>�~������8�����uC��	�������L����w-=#6.s!�#*�I�֌�_����G��L�Ϗ��q���a}D���_���������a|Lߢ�]t]��g�ߧ��к,�~�a����0H���w*��R�e^�0h[Ry��{"��)�}7]G��=*��GQy/��L~?*�����u�N��y�K�!f��[L������ޑ�^�~_�����6��¬ջ��5�#�7��3�ˊ�f���<>�=���s�r|���8�{��~@ug������&���r*]��:���n�o�sŴ�}�� ��G�ܒ�a;���
{m���-���#�s��}	�t}�7�w�����L���/��N����_& ^T']s��|��u|z�����a*_��!���ޡ�g3~���uٞ�0jo�����]̣^��6����}-/b^�
�R0� ]�L�xr|
�돏�����t�%����:X��}�z<�J�m.�2GϏ��T�P�-��O�y���3c��-�;d<���8�}����?���Wg��
��l���~G��*>{���Tn��S���`^g*?I��u?EuN��
��5��g��E���u��3]Dװ���Sz7�6����_�}�3\�Y�ˏ{Sk������6H�2F�Ǽ�-�mL��A�n��|A߻�q-�Az��Q	gve��x����
�y��?���O�z�׌���Tִ�Y��Y�z��è�>~���w�~W>a�D��<���wy�8�7.?�,�;B��9��\��a>Gا��*o�9۞~�/�C|���o]H�Og�����5�����x��$�{5�c����7B!�Ǧw��m6�����L�Ry��͹��K���6��T~��^�p�Tw9]��z������F�7Ѿ�����Y�7蝏Ry���}\�}�����7��:���}�iI>�w0�4��V~�|*��l�A�?���LC2�������nl/�t�4�/�sR׽>�%��2]���H�F���
f<��o��,f]=ۋ~�0_I�_/惙S��6>-�r�qm������\Q˭���,o�u��l�ߟ:~��8īx���������P���#�n�����_ǩ����{'1]E�_Ǿ��)�q>gӳ����q<�Y鍏�M�`�8��|�>��ן'XNEm���XBu��zӽ�]�ރ�~�����޺nD�����m�it������T��4��Ͳ|�;lg�d|��7���{��z��L��oL��g�߫�7@�N���'�S��Tv���o�]Aߺ|<���9OmL�vj�����
�Sg��kg;��<���1�=��'��Z���ޮZJ��q��_i���g��J&;'���:��7�b�#*ggJ��젖����+���̤����bc�
��8����v�{��FTفJ�ډ��|���+��P�Q3e�?��F=t��f�+�������a�狁�f˕:}#(��0��;R���`�Ҩ��VT
C�����J��a!�ٮ�W���W�C2�
,(�A��A1[k��q=�ճA=G��H3S�Ja�.oD����W��!��\�D�b���U�^X�y��r%�Qy0���J�^��(rC� ��8�ԇ2{�H3{�j��M��(�9-��=,k��"��%�2��3~g��5��k�,��eQ8�l'Z�BX�b,�Ѣ��v��v�*4�����ă��Ay�ę�j!���[�̞�3�v���Œ=�����RF��4�F�y�Wg�� �A�0�V�A`8P)+#4G�|��e�Z�ϐ`��*Y5Z�)c���έ��}�Q,���-횓�+�B�R.FeZ��6�L��Ş�4;��K�1\���Ca9��R+��xUb�	uz�RY)o��usw�S7Q���f�"Й��U����F�k�t��}$H�o��E���-������z�2��aMZ���!�1*m�D̯�-Uv�b�?(G�K���Fv�<��Rc�#�"��*��8�{�R,w� s�.�.]�m��4�(d�&�o��t=��je1��|C�����˳��ю�J@�+ۅ���Փ]\.��+�?��(��ް^������P��X̖x�~i\���e����OgcBFH��Tq *G1���my��+ _���F��<����Vm�v��R��]��E/�dԇK"�:R��d��eZ�b;�P{ZSS�V�f�}��P_X��r��4X�E�Ӡ�����Qԗ��a��@������T�z�]h+K�z0���*#q��W�'�N��V���x�L�yk��l>��y��J�UJ<����Q+�l�AFۣ8ah��#�(!���Vk�B#_l�
�V*?�y0��i�zTed��8b<[o�7ʲ$�2�i�"4
��򢔂Q�΍8��ݓ���P�z�R�e�2����V�
0�W�tHз��(}�Ƌ;�v�H}��q�<��b���MqC0��h.�(p$��s���)�:�$T/�<��/�Z%_�U�y�i��!}�&�*"!X��	���h��F�l��4�ʨ�O�|�6�	Н<��&/a����>ah�U^7B��f��BQ�z+����@��~��X��dY��}H-5�Cԣ�F�w8��Jvn-�-˿{Q�!�\2�/i	N��{=�~��iK�4�:���K�9�'†:;����9�kL�TG-�*��7�i�O��,����e&��s�2q2�q��L�L�!`�X��D*�	;��ņ`{A;��=��Ο^�n���6�+�N}(�_��ޏ���v<�‚�kQAj���`c;��:� }�@�?	�/B����8`y�p��_�a͜�2�̦0�Hq�>�1�!�
s�xZ<!Z���Q>3[�-,p�W�����#k�غR�F��2����Z*�]��W�IU�)�NL�6�E��փlMKƝ���~g
A��a���f�.���0	�����R�� �-ޮG�����^�`o���W�dJ?�+Gf$o��Cb�yCXBڧ�{�W>
�����؜|�l_�V�ˡ�C�]#�GG�V�&O�/0�?@��3�m�Q�s!��*��pRl9�G��v|'���M�E�|������S|�B�}���*��]A��?ç�_��Рs./�1{l��ѓ�Gld�0h+�xCnj�쓌C0e�*(���(3��TJ�D����W�1`���^�w�b\�ŅD�
��O����iz2���s�S�s�J�[D�������>Q]uW�3�Kc�ݥ;=̡����g���@/z��!zN�
�����/���3�N�n���=2$� ޓV?G���%:'�t܎�F�a�W�YP�O�/+��{��Ғ��P'�lWj��|�t0\��i��!cЀ/���*f��b^��l=E�F��l/S������g�Kx��
�J�xT��X�]��-m��yr��Z�������J�@V��� �f�B"T�j�Ei��k"0��j1I��}d@��c�5ڰL��1A�c l(b������c���mN�U�=�Te���POF�.s�:j���23�k��
jمAU�,�f���]+d��A��gL+]�U��!�X��? 2���m�~rn�z�֔�U�(�\%��k�9i�,^�dt-:eU����̞���c�-WUE2V����n&9�-���8���(���N���ӷ�(�o��X��_k9ƪ���VJ�q��T+��#��6�UB2`�.Z4Tc܏_����A1�NP~���K�޸��������LG��Dk0�g�*�f��=�E3�݈�=�
.;}��g�[z����',����FM>m�:a��1�!�eI�)��%Ч	%��Ԩ`F�(�Ly?q�%.���������T�ww̵�s�*�bP%���p���-3�ذ�-@A��7YJ����S1x,0�E�I�@�C�'�K���MBZy�I�L�L`�����!d�H� !K�ySՉO�
�2aa�֏�
h�\$�<b�>��e�.5l��c̯��}�\E�S�Rd���kZvY��r�2w6��㢠�߽�?�N@�,�
ƃ|`ЋD����aJ���b>�o��\뭞��RPm�@�]\�<[
/"�F�O�|�V��+c��<���.���f ��������`����|8��%��.��O���eB����+"�z����T�H$2<A:��&�s����"���\��>^���ҋ��扑����94�Iqn�mv��G���1r��^�52���n�����
m��9ں{�k/͵j"Hy�Q8mo"��x˵�����2�����{Ј�R��!�]�F�dž���zqo�w��-�]��;;)N���%I=*IJ\XY�� �a��l.����V�0I����|�f���m��Nu7��_�,


�_p�$�c$37�of�Y�`~��_nr�tI�c ݭ���%l�)��x���ސ]ۣ䮽��:�#�7{��&�Oa���o~�T4�*įH�`�y��=C��V����B�y<�ؔ�B��2"1F�/���ذ7��8�DƬgH����s��xڂH���{�Z	�UF�2����X��lz��d���n�D׆�"��J>,���Q���T���.$��t�J]�}Dp���*�ja�w�Ւ�H�M�I.c
�EE���L�<�tH����#=
�v3bE'yRtW��p��p[?�R��~�q����g�ALT8�L��Lg�i4k�����O�j0a�Rmy"�rHT
��?,���^�铦��~E���U:W#��xVܵC�/j�&�!�2�b�e2Z⻬��on�Nĺ��9Vw��/�J��|�'$�%)�ģ%�b��� ]�T��0g
�A�b>(�K=��̎�$I¡,M�1�����r�Y[go g�v}12�od�tfйX�	��$����~FV�D�����\#�T1�ރen.����4=e��O��"��CP}ы����	
\-%��B��UR߂A0�"2
@��DŽ%�X��`(�5/$O��-�����Űm�����^�E�^8�j�L�)��p��y�ݠ�2�U�1N(E��z�3Շ�Q�Sm�w�)��U�����ig��2~��x�r2y��ie���X��Y�h)�n��h��'괘�
��I��ꥢ��g�!�0!�N��bvV��؇��������-���tB����E�1МBsL�3�m\��Z��6T�`�lh!s<:�
#�F=�h��E���`��_��`$�& zM����B�^�u��g�l�W���Nb:#X �}��&��h����sn�q*@�x�f��=�=��l�3a��>7WmGC��
�*��2�z�f����
fk�l��7��lJ/�
�Z>/�L������L��!��D*��B��4ad��0c��0P���"��q9��$�j���T����̅�7���T�g�A��R�½2�@�
��|v5�Y��#$�_�D�yΫ�w����a}��CD�_<�*F��3�0�R5��­2p6�����;�Z����چ쌥	��?Ÿf��%�i�����=o@��փr�L����D��4f����B`�Ԑ�o*8`��1^�	h��=����J,}�jo����bF�s�Ua�!�U!<X�rB�<�`��;�G��#�c�Ս� ��<�Z&�cYm8 $w`l�DT���`v�6Υ�L(_�5�D�Gƕ��2���K�&N�������Ih4��,\XE�%/7��
���9�.e��gE��'�(�*�r����7	}��f�޵�hs��P�
)aХ�/�r�Y���bE�ܯ�cӲ�f@�P[�س�PZ�D��$e�&��W�`�ԠMc����&��G;%�"���1�s�/�ú��E���t��|@���G��F�c��3{���La���g�
{��|��#&i拤U9	�|��U�cK-�*��4�(�'�f�ʢ�����,*�2B'&���,��o��ػf[��qZ+���f���3���Oh�M���s�ϙ~�TlP��b�`��ꫬ��2?�+���S�!<��9lY�VELR�&~M�&�0($ڜY=}s��e�f��TH0��Qc6j/y	�q�,�tޣ�="f��2�B���L��}�vggYb���]�O�`A~[Pp�t3$�
u�:o��~E��x�%�.�#8��
�B�nا���ļhU��V��R"�9DA̽ZP��ʙW�C�BX���!��He��>�5y��cL��A!;+˰���Z����E�_��툑�e�	����� G�p�)�6�m�r��Iꆜ�]�Ŋz�b8�&8��G2]	Z;X/��d��ݭ�`k��x��o�����q�Jكd��-�@֊�4Ŵ	Rm��V�ժطpFEP^KD���N������6c�4�O��S��+{���cx��l���-���I�R2�1;���~�DtD+����x�@�p��`7�KT�-�ꞾIO���Lk=NDp�D��u�l��F� k�tR�]�}� �n����z�XzvȲQ����Ŗײʗ"���W���o� @k.��-����u
(��L��9��MO`TY�6�0 ds�`8���\I�X�Xs���LŰ���좱�>�����s�ʶ�z@�<���G廓la��Ѭ�P_JSaP�M�!�Q�1�����!�p��i��J���g����NxW6~�i:���Xc�R�/����հl�pr�(6!(U�SE8'�}�SN�L����(�#�_���g������as��ѯ��jseVB&l�!,o��c0��:�@�����^��,n�`XyTsv��:��+�e躔ؚk0�Ͳ�\�T1��$���W�-�1��>Z
�C�K��FU�@���"&�Z$�����.����`�@Ԙ�Թ��Y�p��J쌛� ȚH���8d����}������!�.c/�]|�pv-��-�=Pـ�i�р��0�$�uFdZ7"„Z��$v�����ī�g�@�}�a!���S�R����z��H��τo���XU�`�'6S��E��(�C�գ�L�I��YSF�NoH"}�k���,S-���ݻ��A͸�M̀�P��+�rA�v���21����▣#[=S�*�
�N+�p '1<q�'��`�K�*ýX!L�czI
L̍�rM���@��t��>��a��:����xJ����(���&}���@��{��MgbR�L�Vqq�U3Ϛ>P�j.̹��R*H�OX�Z$��e���YE�	���*���}*��k�p�bET�#HW�$�<����%�.5�eq�4���TJUA��|[a��!�F'�C҃C޾c�TX�ɲJz�i�ٝ�gj�JbN��Qe��'�7���
�7�t��� h�6�~L&�	FLÃ$Y�v�oG���do�o��\�*��.�ٯ���qb���`"��E:�!�/�]���XeAA$���W�Y��V܁@�*A�(���X">�"��4|�1��5�A����{j^����y��\�V@/��V`V<Z���O7�-,�RxO�9���^�SM@Z,���XfE��c����G��nI��
������IxV9�.��5�SXD(�wn��*�ϫEyh��~-�H�y�L�����?��o��E�p�
��d���i#bw|5��6@����s�uApp���
Z˫IH�,��s�w��V)w�w:����~��/��b)c0°J����*�Y๞,�М:�G/+(����Y/�A�#����r�}>0`��it�`E6|p#%��D�G%^�)24�Vj�i�/W<�R�D�\BT��_C���P�$�H����e�ֵ.&�I���HDG��m�8�3	��!(���1-�Y]�}���PZᗓw,h�.s�qe+M�:��qj�ߐ.[��!��7Ǖ�`
6���f�]Hsy޼���hU�]�FTfe���`���z� �]�ݫ��Ҟ�d$��X���.��!E�+L�˾,���v(��^�
�/���Q�h��p%��w��C�.�-�R3}vtI�z)�'��Cd������ʌmV=HM�����k%~��'K��h����X	ky$N����@�28�O�",���`�87�94�;���z߱ӂWp2*b(
��Y�kꭆ��W�N=��`c�s�9Rm�[XТ���w���UL�&@���P���U �J�Q������C��-��o���sm~�4w㖮դJWh����,R�D��5]��m��Ц'c6�W��+���K@�ikz�A���]����+)�\HTX���sFvn��oQYVdI��2�,[U�s�y����\� S9DP��V<M[�Ix��(�?�بO!vc>@>V��)$�c���y7��P���c8�v��$~�,"��
�<�7"���\hm����y���䴾r�R]$�::���ʠ5�����<��RT�{J��?IDF-V�<�BŢ�1��n�wrg��,\�ۗ�ݙ]��k����yK/�.�ۧsIvy��쬞��9���/"��Pԥ\�|Ͱ�� ��'6�,�Z%tL���$���\��.�wX�w|��N�B�:�R�.�C�B$��y+i-�1wpssA�7	Ǩ䍄�cRC�y���%��T�(��s�R[B�l]�f€��4`�W^PUmL�`#û?�My�����ML4�SZ��<�9�	���cHռ�ڳ��ä����rG��tj1Ô�'T*Im�`���1��*�N�rq�ֹ�����!p�������'���+'Uk!0�Vս{�6�i��=�f"jҤx�ir�YT�^pG�����eoQ��e� Qbë8���x��^Ք��� ��*��`��w��Ѱ�UX]����q_��r(��G��Dt`D�������%	w(0��I3�c������S5�K.*W*{v3len!G�\���[���R~�H6�U���f�'͎�cTg�[!�P%��{ֆa�qV�Vku���׸���o�U��
|����kL���$��k�L�ŋ2��d���'�mzW��c/,	m�Ŭ�G�M���\���0F6�o����2�/){
�R.�pxضm���S��.҈	��M�	h�zl5a�[�S��5H1�ɫ���!/�|X���䳐���ˡ��]���#�
T�(�탂����!�Tk�!g���r։.gڜf��B�!&愴�7����UXzK8�z��"�m�d�)
�D�U�T@�� �+��۱��mH���LR!�ޖJ��M�ol=�W���˹�ݕ8fˀ⨻��%�!&�޵A�����g�V�՛�X���L���|q¥`@�uӭ�*�hds��U�.ĸ�Z:uq���(ۖ�!�Uv���sy�F��?����Ζ�jh��s�.i��K)�b��uf��J�w� Z����b/j���l�z�Q�geT/R�T�LϬ�ggE�N�p�9�7��K.\U���ʌ�L`���}��:d��`+�v��K��]m�n-�UOI:�p0�6+l��a�K��6���������o��m�+����`ў`�Y��-�_I^�U@�GT�Ӵ2���u�Q�1�d�!�S딪�dl���P��
,���J�A�2"o�oqC�,��O�1_5�LL��W��� H$+A#A=�p&�v	je�L�f3,7{vڷ�Rc�dW�9l��a��ZY��!
�L���ј�}��^�m�Ǒ��s��*2@�$
;���	zET�F\a� 6D�����e���d��g�f4FM�oV@��&8��C�
�JT'�=Ԩ�'e�hKI
�z~!��*���3���5З���7+<��\�14\pMo�$��<sY���?�bx�n% r��82m�k.�%6P���[aBxA�@��(zEѧ��i-̽2=^tK���K�"�f�K9?*C�$��@y��w̓g������=;����Fj�X���vJ ����N�6m��=�b��>l[�ǸI�3S�f,�+����}Sw+���a�T`�ϣ��>h�s��IϏ�4�e�Q��u�:[�V)(�X$��cQ�yL�8�)�
�:��������,q���������>�W��WKؿ���ىp�+�'o�e���.�~�Q�-��oo�]7��:��Ws͕l�A�s�bK\沭]��0/�ȁ���ZU� ���i���Bm�C!��h�E��N�w�I\��{w�J��zFJ��t5�Ь�
��[p�5�\��K�|ɪ�,���/
���Ǧg���|�yO�b�azqs�h.��vZ�]o��"z��Z�����{������i9��%|�_S�%���2q�:�&^jS�N$z�o�ޑ
s�9�6�jN�NXW�n���Z��i�/�bG’!�lS%�0��{0V�rO���1
�� �77�[<P�
BZ*2].���xr���Tg/��
�DЩ��ǖ+�&��F�h�Z���mcᵄ�$	����oPs�K��'�͵/Km���aA	/� �I�/5V3�_�ַ���2[q,pCV85�%�#�l>��Iq��s5Z7dK\�
hkfdw�}��ӭK���f*5h�f��%��
C�����ܲ�r������OE��۱�K’N�E�ר��V�&Z�^�Ą���Kr�Gћ���ȮM��L=M�cћ���,UVD涐.j���D��0�O�`D�"�$��'����P{��n{7���^��tþ�j�����B�9���MZ�K1���\m3"�o�W-ȱ!��=��mY	����Ȩ�S�pK�hcB��9�2��^, uZ4-ĒM�%/~V��)�Z�9QB�1Ф!��m��+����N�|+Ѭ�}�w��$l+4��BG��R�tPF��|٪�:0;�P�x��?�%�hk�k�FiN�߽�M�Ρ#f;^/���V��4� �H=k��ꡖ�K��4�
)�aSOy���as�:��F� f�Y™��j,ug�fs��8�F��ży��J>O�2f�m�\� ��Vr��\� fP��b��b~�
���a�[���q��dKCc�y�o^hђ�q�D�������*
����Fy����2G���1.���Q�ʾ�v�@\�����EyT���PU�..lp	�8��e�27�׋C{md
P-"�M�iro�$un&�v��Y2�� �R^�	}W��i�OT}�Z*��T#��rD��J`�JY�^H���j�*5	Gaxa�L�n�ܛ�Q��DC�V�N�*�Q�H	�3�������)��V��lð��&�U��*��(h����18M#КY�\�UT&��B���7�=�j�2�$�C�(����^N3ZK�����vtU�������9/�Ω��팍^"�95�c�	�$��8cC��8�����s�X���N�["i�V�g����y�>���Ee9B�#��o�]6����t~�~l�
k9��iZU^(�V��*�ǃ��7Vm�_c�% ���ޖ�0�V��h��eպ$���%@S����� �T�Ɓ�|�&���,�+Fy�ŧl�+z�zQ�ҧu<
h�u��aNwovJ���G4,�ꬕ$�N����t��9���pq�7#i(%ɒ�"��?O���kH𙄂�l~a�l����_d�zC<�:�qX����_SaJE٩K�Y
��1hl`o���!�AM�%+�Ϙ�A��A�z%�p�z��h�,�'��5�kA”�K�d���G�M��Z���^�U�5�٩HC��"5
��]�H�,̵�4�"	�#Ӎy�d������XSos�OmHw-.�l`*��'���\R2�||�	
���x c���M�)VJ�*u
/��c���Zn�r��9&kD��8�K��tb#�t�`+[q��R���Nf=';^I�;�q
-)$i�6�{͖��H��c�X��t�XQK�5�LP�Ȗƛ\�K��/�>;t����gX�sgi�&�F�x�ʑ�H�
���G~RA�^�Z)VpD�y1B�~�1�2v-|��X��-!��v��N��5'CZ�����;x	�,6���5��7�=��N^k��~O5`q�Xɮ�d풚m�cV�BQ�G��i_����J�1�8�1c��+jM�o1�o2�,iM֬9���$���c0Y[N��q��I�D��KW�S=�^`�%B��+����{����/-C��B���(��Z�BC�t�Fs[M�4\�E�Q-T���8^�2b
k�z���J���i�@
�陥���6X(F/��rP�#�0�}���9*?�;LZ�N��i]��J����t�k�<�Cn;#@K[i�VnY�f%�[zE8cљC�rߋ���	g�g&6Gm�z9|`�dv\ֈ��o�u�w$��?��h�ә�����W�1$r�i���B�����6�.A�\0VcK��-��	�)53j���tb5H�f�Bv�$ž�G��z���U��h���	�0�C�P�`��(2���+��e��h�[��kgG#S��f��+�d�7�R��<̄��:�g�u�$��"k���rA�#FV��Rfޤ��Ikc{����>p�t8��C�y�� g/О�
���,փՀ�$��%��mR��]D(����ݰ<N��F�^��	�$1c��.��o)���d�d�6�g�#��+��JOZRˋ%��!�A=L��A�u�T�����ʂ���±,�5E����#C�D�8R*�1�-�bw;

c��PU�l�\�S�w�b��2�>��@^��9�	)���b*��w��V����E髸l�Ǩ����񜕜�0��"dj>��%�l����[�[�;[VR|�z���f:�L�*5�3*�U�l�u4Jz���Ԅ3X�?/��Mx�1/�����)�@�آ�Z�fT�Db�b���/ꡖp��d>}B�GDq�@�,Ά�j%��|�4%��]�Q�����H06|���&J曍�}��g�l[��8�%��s��ӧ�u�և�HX���={c�������S�b�בͶ�ߨx&Š�54w�G��	��ǹ4R��+Y�Yn���\1l��d9��G �*�Л-�7 |�0T��L`@M&�Eᰙ�]hO��1i��H����P����%��S!*n�³U+�ūد���Wfw>E"�KӰ��ZP� �F0��*�h��y^��Њ��8��H��쓱mMZ �*�7���ʷ�9-���~�:��;5��!��brCJ5��5|���HM�:ՊwNx�<�)l��piw_WoW_�T
��g8�($�u�Z�X��XR�lS�~��r���1u�|^�a�[
��P�Ӂ��)�H�ѐ��A�a3�7G kAX`t�Ʋ�PB��2�c9��v��&N�8l
ϐ�o*�X���⾸�V�q�;�Uj)�`Ӱs0��a�1jf�]6kќι٥��Kz��u�o���fU
���z�s��������R>1Y����-�,�PE�M�>Y�C�QYS���r�,��H�Z��~^�`%�	���P��vG�[�2�I����i�S�6�b�>�8�mSp]zQM���h��b�hѪ5�0��Ho-*�����o���-F+�v��i�g��a�PQ��F��kb�#A���:���ɈV2�x��{]���='�k
���1l.{����4DK	:�]L-�ox����?�{|�ז|��L�TUd��i�Yn@٨̱%���i㰮�6��6�{4YD?z�M�u��k�·��.�4:�A�|��\fC�h�l�(1$0Z'���H�9{z�)G'q��&�)��C��Ț��6�\q��߂Mze⊻��0R�B��$Ɔ��U������v�U(��ѫ8�,&�����m76��gM(X.ҏx{�D$�Vgm�>C>��Z�$�>Aq�Q���·J�%Hēm�8���X�j}���G�l�97�ǟ�0�
�IȽ�;3��hrd�����ʺk�I�,��J�tˁ����TɴT2�&�t�N.�g6���*�3�`
�,�2M%��Lx�]�}�\ֹ䀾}��g�5���q�=+F=���U�eA���۽NǦ}!��KT^���i��l�&�LMʨ�;��%��>ʵh*��xL��u��&���c$��yV~"-�r���H#��<|��wGt-p�5�$��Va�	&[���/�0���ǝ�[���`T�_r�5��L'���
2A0����nؐ)K4l
��PR���/�s�x�Ȋ0t!ek��Ƌ�o�Ōh���
^��5���2�!9!���(|q�O?��:C>��њ�������@�qk6����v��5@���<��5��ߞ��//�ޓ��3�9�u�PP�rG�զ+�F��IG&(�9Fbۓ�@��
�&Qo�vU��WE��xܑ�U��f����ʗ�e4_��
{k�����|�[��<��X)���a�/�5|$pج������|v�&��);�9��C��W3O��T	�>�����و�h�����t��u���m���Xw����}�-����2�њI��"Ru/�l	/��bY�I�d�8�*G���qB�e���"5�Z�Y�B+X�Dd��� T=O_T5^q6�X�\~1�@��w��9I1,�@x[�dDN�
�i�u��Kg��$���'�����HF�&�05KPT� T�5ց�t�Z^�<I1	��C_­�Voor��7k?���9O�樴�Y	<Xf">��
R�InQ�3&�"��_d��P�UF!��tly#;.�8#�W�+Y�Oc�X~�M�-�G���ըq��b���|�p�W}�l����L�i�|�V�5n�8B��Z����A
6�� ���l��Vr��.��<,k���)+��(v0����%���[	3Q<0�
%���ԯ�o_�8ٚ�D��m=F���K�"M	45G�,M���eπ��9�Ml�\�(4��d޻��ct$[�$�[��P3|U��*�Sv��x��hO|㍁b��^���v�H�~.��W���;�/6$"Kk]����g�e���T�8�����K�������Rr���ΆdC������*Nd�n�����NN�"G4�U�a���6�3K����"!�9��-(�5"'>��!d
c����g�ˌ���,��~rf�2<�3�=���#�K[�u�{5�Y.�Ջ��>YW��0_�/����#�W�V���&�BʵǢ�N"�pV�t͉�������c��:r�zT�%��s|��<�p�p�S��t��|��"��v�–�U�f-9S�L�EN^��猷X�.)m�v]Hv������8��!��@�����%]G����]���A�K�v\����b"=�8v"]�~8M�_�Yg��N�bbf讕Ji��)���Ԥ��ؐ�B�	E֧;0�t��Ԝ�"$t<-�}�R65��ԓ6��D�$��wD?o��Eaў����ҔQ�9LU�e��ɉ��Z[��~�!U���)np5�z��kY$Cwy�2�Z&�>�q[�Ï3�x�˄���'郣O�� �IU�V����qB�O��,��dQע���!Zl'zNX"�	8F0ي�eAm�d2%TZ긚��^��cf��y0�)eq�r�:R��>Ku%4�wƇ\�
�C�9X������n��p��w�B��A	��5��',^+��X���K���(���g�S��.J
|@�AUikL=���bUF�6��Z'p�'���)������&���[��6��l**Hh:V
/��
�0Ηk���Q���a<n�}VF3�P�!�hx	<�O���"b�}&�F�[`����v)xqf�Tj���F"eM��	K7mJ��vO%Qu���<^��v8Od�H�
k��6��S>��j;���tؑ]��*jM\-]~�t�ٱ�6�_v
���a�bÎ��;SS�1u�nC�˾N;���	�I;���}'0p9oH�v�t�Nb�&#���+�����PwN��߃&S���Z	���H�Ʋ/t�=�1�-���sy�"�Z�����E���m�c�����Z��HC.&�X��S]>#���4LGd"�D�z���T^+&jKA����M�CQ~%���Y�����>1`O꩐Z�p/b��ޤJ3���H�)�uj᠈i�)�:�"��
�~;�*c�E�[�S]��\}�&V�M��3+��^��TX⒱���;P�6�q"y�1{�I�z=zl��؈-[Ph�b�S!���V�"�5�N�ɨ�Nn&1l%?o��IV�ܔ�_�jKb�7Dz,�كƃ��k�y�̩:�8�(`k�.ҦV�8�@B�q%Y>JQ���y��&�ms�i���5I�'JV>6���-��/ړYm�� BJ›Z,5��'��w��ad�u��1�%)(�aύ�s�F��̿u�����%��m �>��Ai#)f>G���)f\0�L^sW8�2��9#��U��by��H_@p�v*R�z�Ϙ6mdd$g�β�=GT��N��Q�4�N�k8���bi�Q4Q���;��p2�hUHD��#c�F�&%,"G�D�Y�H4���i���m$cb��o�j;#��ٗzw��D�rL��;��1}ǎw�N�}��g�ӧ���,�Z�١���r�7�O�v�A]YU�&)��Әg��}�:vw���d �ut�\Č��Q}��"�
t��1��-W�2�k�=���W9;3�����a�����/V�rM�)7=7�C`�vܤ;(6ht3h�n�S�p赎���y�:�v4I�:���=3E�N�6�n�!�e��I�6�UV
)
-J�����o�o��:dz�@������uks΃W[��#�׭�H2�ўȳ)�
t:�5����1�s��&֜~{��]�H؎V�w���V�x����
M���=9t��9�������$<��鍲E͊2�eV�Ǝ<p,
��>{��R]R������*�nM���R�1a�"OX��C�/q߉>���K�C10fy܅)A#�`R��5a��f�p4G��!��/�mL�c^U;��*/���w�0=�{+��F"�й"�աZ8��D�����3�U"�{�=f�-F�t��	ѻ�w��w�F"��{M<���WN���[��$;��,�q���?snH��+�)R�Z�Y3C�K�[[�I���`��~��,֭�5�T���ea���pu6�o�8��X�:��E� 
�W�@���FJNP�ՙ23,��sv�Z~R0�j�0�c�VD�M��`9L���xIs�1���u&Һ������Os�
m}6�\Z&�3]$��R�-�d����_��ư�斚�)�
� Q��ύ`�uW�k�#�A1���53+��Y��c ��I�T˗�U��������*D�ʼxs��
�]7KL�k�YX5@��&��)ic��y����B���x4�@�
�\�#N�j�4	#K�i=�D��$�
�K(�3H3!�\�֭�9S��H�FT� ��3|m/f���f�f.������H���<DQc�xAFv�ҴUk��T"�bd����}TW��Б��z)���7��fK+Ơ������ ӌa��H۽�0M�
�f�hV���@4��	:|�	��>��5���V��4H��S�WA�1��3�<c`Sw�^�?��384����h���=�ϊQ�H

�d!��5j�R���aX��7���v~������4ʨ+�d*�<}��_ᣐ�>4���[Ъs���h���s�s׭]A/s/l'����9$EA�O�J�UI�LO#c&���	t*�^�qNCF,��C��	�>A�l$�km�<@��uW2 
�F��A�jHՁr���H�l��90Q�����v�8�.��-|��6o�[��f�������'��
������v5Z!�X��Ki�h.��`����0L�#ͬ;��*�P��Ռe�lw�Ԇ�
FpfPKX��2���йsgDܠ���S����B���g*�C{���Qhħ31Ј��
ݻg�g�j��O�#A�-5������\���B,���m>��XA��{Mb�4`�>dIZs@���b�iR�Bb���"]Oc���W�hk�7$��lZ/p���1[΍���lZ_�#��$��H��D׃�ȃ:]�,be���=t$ₗ�	�P�-3��y���%!�2w�X��]!�
�b���K�.2����.z�B����b�[�*h����vH�+�`G&\��!u۳�� ێ��.f��x���3	����qӠy��
c��k�b����f�,�,�#�Q�C�'����I�t}���R-}��8�h��HXV�É�&�s�~KI��0*nfL3s|$�ϭ�%O���Am
�_�=;�e�09Vǿ�ޠ]�"��G�(#l^3���RRN~^oK\2o$�|
6\[5��ŰY����l:��ٵ�"�?󺳋:��r�N|�T&�51�����K1�uGq�n�@X����w���\M^M��ĕ�����X+b&�c>��0y�s�]Ea<l����)�@Kwq�&l��r�E���@�� ��6��T���>��	��+�� j@���"Fe���&Q�T,��?���,0�j>���\FW9j��PjE�!����E8�=P+�)>,k�h�S�'Dl���y��V��U�&T���5�6�5����Һ���"�k:�GoӲ��"[�e�d�,S�\3'X��-�� ��|~�#Ű���8�f�f���b&�k֚���g�~�n0�&��l)/�B��&����f�]��Wq�l����3x�/6��7җ�ISH"���h�c
�Z	Y`�1�  XM�e�ʱ}.�A��4)x�vfq��>h�uN/�`:66�ض���j��J�ydX}sY�ӔC8�����	�6Vpp4��떴�;�n�-�Ԅ�Poz��[O�ݝ��]'ny�jX����O����w̵�}1o3ւ�̬l^b����aܽX8� 
)M-�[;�D�O?�{�%��36���?8'(�Y�#�����*s��WQP��#�TY+1�a/�N^�Ճʝ�B��].�nX�g�
��I;��kv0���n���*B�f�,]��b�NݻW�H%!�y������c������sÞ���"�<����������'�tq���I��d��V%�2"�L��M`�w9�0*���fQ���\-�4"s|A�J?�GQ!1ˋ��Y�a�f����a��U|��?�:ux��duC��!{�>C�Ӣ��>�7�j�)c��rV�@yɛ�1S]!z�,'KU�'Zu�N(xq�[�IJLƵ�x�{�aQ�h�R���m񊕂�uc������ߐ��5P���*w'G��7��1v��$�{�-y�D�@��^(+-*�
�DS�L�g��S����Q5~W�gcC���	r�敷[�>kC��6-,�d�ǒ�	aB.3�z��˒<�M���P�(���3�ʭ���ݐ{��Pl�B�p�H�iPy��۳{F3S��N)��~���$�)�zu6�G@�@�,�nzq�Z�x�����<
u�iAN_A�r3]&�`�٪A���99�tٓ,L���crOfQ��!+�<��L��9�G���"���Z9.kף��!���sU��\%y��g�Z	u-%���i�	�\*!�s�~3�.������7X��+�TW��Y��7���dP>Bj���5[g���(���c��iO�؎��B9Gi�sS��@salsȐӢ�@?�r�=�N��PKW
ju�ZI;"�%�z��G�HH��r�2wvfQ��J�������TB��$&�&F��OV�h��,��6�%Z�����\����me���V�Uu�s�h��p�q�&+�e�Y�?�Eͫbf�c9g�'V�&Q�Љ4�^e0��b�,D_�G`;�4jF�-Z���jm1;/�h��\��[O�#D�!���
�2>�����04�y�����aQ��T���=�w�M��n�+��JW F��B	����a���t(5��������Ҫq���������+�6��!-�X�����y�z(�o�^���b�K;;lk��p%o]MR��@rB�D�,UI��5l�E�s�L<,�F1��o`�w�
;"�����)q�1aD1>i���fϝ��a]�X$�I!:+D�R���!�J=*����f�9�l���*S�XO����%��,�(��
v�M��v��U��N�<df���"�D��2������7H��fHT៽	i]��3�,+|jf^�{�����4�I��܆���`4���֛R�Z4̚�1[�8�Ո2�:R�	j��uK:4V���`t���t����9�]k3�(� �n�RB'�-%4s[i�-̤�H��;zG%LhJe��
��Wa~�@�x��JAy�5{�¸?�K��E���Zɑr'��P%��R�BO�͛��vk#�+E</$���{�b���׍��L��	n��~��`�~��e0��j���^k���KiJ�i�g�j�0`i|�\e�y�ZUNnP��@s!Mf������U��P�����9"��!+��`��=����6`B"���b��DOzڢw�����9O�k�
���H�����YY�Y.�5Xf�)uP~R�̢�&�i{��VS{��T1V��k��������g���=���U[��k}�a �QLm1⨍a�&�T�.���,%挱��&�=��y��Ju4�&%&8!wb�<|�7���\����T8e�񝁀���$Ԃ(Vέ"�Bo�t�EǤ2��QU~���nbq�&�YTX�"A>�,��^Z���|�
�be�0H��Jb(��y��l"(�eQ�_�6�Ԏ�T��"5j�����w���E��aH�*K�E~3&e�5〒,M�0��V��R|��iK���s5_䵻����ۀ�atȉ����:�,�D����4��e�tϧ/�ș��}C����y�!^������K��u��Te���#qܑ�
�u'"�@�1�XZ��	�m
ɍ�'�w�=���F�/�9T/����ys�Y�b��`��2c�V�F�N͑4��#��H���9�n�ZM�I�N�!�V�����<K�x30	���<*;a0��!�;E	�%��sg͐T�$6����R��x��[wUɳ��� b�.bw�E���9_�D����ptO	��8��nf�ŬM�E�����,[��+<��.�g�z&[�
�i5n��{�2�H�̓c?���ee��ŋd�s-0b�la��GyGz:a|�6�Q����tBs�9�a��\`~u`h�@8�׌J��u{J3�́��z�vLlˆ��Y3C6��X�R��Q������,��lU*�f��YD�ğ�f����N�UX?/�h��.
��=�iZ#Q��}/N����׫WZU�lX=���[l��U�#=�Ș�[�P��?|�Tmۨ��o��8�*G�c5���-MJ:���D�ñ��l�hw�W��%"���L��E��$M�"��d�Y��x7���Px��[Q����J�-Bc��V	F��� nz��K��3�7�w�(���"#�L�o�*��OWTVJ\5�>�q<*I�V��9Ҁ9�|�Y�$�@��)1HP0ݯ��v�A��fe�	���r����s��㱍��M�M������UI5�j��Ű��4�����V�i~��ր�jY�(�.�rB�3�-���5Ą�玩���H�zlH����܇掶�ٛ�Fb���?=;,�CoZl��Vu{�FǼ!��N97�V�t�S�� �B��a�����R��Ԭ�X�
�h�pJV�g���ǞJ�ǹĂKi���n��)�T8��$qM�Q���&ZN:���scܞ����c�O&�`�>�zt��D*�W*�挦�H�k'����%F�YKI�B��kC1�\�R,��!��YK͟g��҆�{��
Y��4Nc���
K��s����@L�XgxTt_
�]y���=�f��!��(&
��2m噼?Q�9�i+º��1�0X��ӄ̇`�4�$�1��j��@P��,-���qfvEl`��AB�浣Qxj�Y=}s���Z�����$���:�n�v�z��5#M�4@��d=�!�YwѰ"U� IL�/N:H�],
��!ϸ;�_���>��ݴ�]ŀl*Į��&<��PШ's���)�O���C���*Jp�M��~�&],�����`qݕ%Y�ؘ:�?+�kb�B�(��0�d�R,�A�Vת����� c�#"���T
��� Xwm=)�mJ��1��ZM����"'�� tA���1UH��"c
�k��	�	�X#c�Q���@>���
M�%5-���n&�)Fu�2�?Xf����-eqۥ�|��#5�7���l<މBi��wÂ<ǥ9��\�XB�τY�7�w6�n9G�\&:��"y'���[>�C�|1�#T���zr52��bl��KN)o�(�jK��T(�$&��Ǘqk�h��f�+u:�Y�w�l9A48G����:��J�h�Y�����o&m���!<<}��
&���垫�Y#f�'߳�ۤ)���A"��c�./�J��p�M�a��%ޗb%¡�`�zV�5l 
>��t*^�#]�C4�)�
pH��h��P�V��s_u�5���Ho�U�jn�;)��t&Bw�o������5�2��p/�NA�L��g�2@��	Ս��×��*�D6h��D�1�d��Gm�X��o"2MƯ�ړ��?"�2^�Z�]A��T?h�@��g"�4�B&�Z��f��@���N�ۡ[d=�b��F]Q;��޻7-�\L����m�����ab.T}�%)*b#�WD���l��
:k���'��[�`�z�Cj�j�IΗ���í�iC���d�FX.?���YI�<-Gj��v|LZ0u��ZG1��y@��ٸ�V�R���24hQL�j�sOy܀*ә*��7�o'�V����|%Ȅ;&C�����
��͙�#A�g���G�@)��%�:�{����Y0Ki�Wm�
�`������P�Lau���dx�k;�灹��>җ���ɮzAhΡs�ɨ��}��'����.HI�&մ�����Wy����8%l�;�T�vVe�-��Fej`�&���������4�
s�0o1��/��+c{���lb4P��XP��y�J*�gm`
���H�l.�)�6�E�W{�GZF�(:�PB���N�g�{���ᓦZ^ͳ*�}�h��Jgk�d���z�������\|�X4�*GH�}9�Y+N��Ylm�����#
N�e�G�^:�m,�FZH��&�'b��\m��͈���}Q-�1G�Eib��(�WQ��"��'F1&$�)0:�o���*c���SnV��z�!��m	od�v12�j�D����*�XW���%��:tm�I@	�oك�]��ѐ��vv�daث�ٛ��@t)� 3?���Rw�稯�����MϞØ��k!���I*��ۢ��\C�D�U�'VO��:u��|R�5��P��4�a��Z�uк�M����efSF���i��*!�v~�^=	���6�u�`�m�N�ʧ�����*	�"�x		
5)�e39�x���{}A����g���4:4��c�p
_g�l���t��=;'a�ơG90FF������ж��2�4�3:.Y�S�9&�*D����Z��h��'����/����/��Mg �P���!��3ݜ�#bN��hGJw~]����~�,�]̭tK��^B����{�@��Y������Q��M�F�>΃/3���s�Y�K�����Ӽ����zlx�(nM��^/5�ɞ���B�++=�8�b�BzM���g5P 2zU<��-���4�<E�q�V�>������k����e;l������e�=W��0ƈ��vޘ0z���#��/h
�������
��5�T"���^��Vf���ȱ�� �E$!'υ�q�M��-r�fZD(Iz���Xc7G���(�]1��TW!?����{I����B鄙�HL�ʁ�HEʇͥܘE�u�
w�$��;�rL�bh4N.�TJRU&�\섰&�J���so�䉮����Qy��_�#���A�]�Qz���S�T��կBȋD�OϽ�*�+��2��8�d�i���	a�J���o2���Fp��)/̄��P�	������*�����9h�'��-�S؄"�%;�,���s@�7ր�h�u!�3.X��f��p5P��!R�B���NR�t�ٿж
����V�n�:�ݰ�<5��D�S��[Y�,�ʚ����Уn��u��-%͆hVlM�q�QՉ���p�IIrU��Y��n,jq�Y����Ⰼ��ȋ��쎠\��^��&c�؄�Yw�ei	��/[Y�]s�Z�N53�4��P-����Kn��F*�5��QOwǵ�q~�rE8h��`*�%�Qn,�c�i+>���_v�0�J�4C�ũ6�lr��-��m�k���Վ����a?;��l+~��h�f3T��?e�Q��M��-5}?�m��|q��c�9��֮��۴��1��
̂��}�{~ZMSb��n�7�o͆x��[a�+,T!$C�3�I�����O[6�.-3��ac�M=��[���|�9B���r��I��j{*P"�`"��QH������Џ�Z\�1=��صy"s�eas�P��Ex,.�l���SgD�D��N_�*K�1}���)�.���f�Q�^�8���m�+�u��'�<#nxʅ]�Qx.����4e���d���%��x��A���i�7h%��1�{��?q�����b¬����L �e
9��e:�h%�Y��ia�LR���$��O3s��P�jz]:`�����V�)�['��C�F�J�|+9���
����2����H�O��,\��1? V��U�YR�3�ꭥa5Q�L�9'�ذ`+�,:J��O�G��6*�����P^�f�̳f��C��2�
�[Vҩ4��Z�b��q)�=)���X�z'3��k���
w�7jK%=qoK���`��t���V��8Zs�#�e	�oŞ&�y������5ۮ��dTR	v�Y�{uz����h6��,�t�'�����Ƨiސ�&��Y�Ny�]:w�/���5�-���u��g
ղ5u�b����	�r-���\5ߨ*�ÑD�=
�=|D�uoFvO�$3��{R��4����9	�	(���)�:oɫbj�v��i�GDn�o�V"�F�6	(�kL[bcj��zv��+�������.����'��_�2d��
�{�ؽ�&!��C����כ�Ӭ��۴�6�%C���B���O�f����lA.8-J/Jl�LO�*0u3z���Ŀ�5�*�Шf� �s뭨Fgp0l�@e��
l�_ۦ	�_KF�3���v��s*	3�U�X�H�ز!M+g�v�_8�D���y�"�]r��L��F�bFt���U��7��jޚ�S���0N��@fq#�����-�Y�/�[D�ƃ9Ɋ�|�o�M��	�c��-\"�����˹�Ku�a[%U�h���L���@�,4��Aa��Ff)�)�C-�^e�,8��u�	S��J"����yG��o�I�1Q?A�i�ᚯd�>":���k�p(�h>B=��
5M�"xy�XEcTO��$���[�xM.6�T!�*�Rh-�ڛ(Z���DLfFUi��~`���H�6X�_s]c'Z1��m��a��(v��LI�
d]2���~���U>�%�@^�֠��q_S��-l��a>�0��&�]��0��
�\�q4߷�*�jX
"�r�b>�B������ϑ���P<�m�NJ�Uk`[w*��ټZ>�~�T���/.��1.���ѫ�����/
+CF���y��B�9�,0f<.��C_��B����L�G�@��g�@y?���;�1Lx8�̿���OH�L�WRx@���IZ-D��
�B�+pYêDF��ڗ�N�����d�1/rBo�ҸDjA@d2�pBq�S!��O�DM]Qs�f�A�p�R5N�9��|�W�d������lj�#d5�BȪ�rRg.�UJԱ��D�2k���i[6ߊ0�i�u�>\�M�Lh��B:и�
	Q��o�oR�Eth[��Y|OJ6>��kS1;����>Z+��o@S�ׅ�2�
p"���y�{�����X b/-M9��b_5�f׵@e���qκ�����⡒sMrZ"��a=��uS+�#E��N8L*��[��Cֿ�k��q�Ԓ�R4�h�oG�xa^+�ɛ��Os��d=x]���x0=�f4L4���c0��xx�D3^Y
]����5M�<�(��]#�h�vG�e���z�=<��B-�	k��\��A�o.�Y'�״�7�56��iƮţt$�F��k�����88H����J��1R

��:u'm6�)K�����]��M֐va�y�T���z��S����naJ?ͻd��Ӟ�{�~�_�҃#���D����#)I��ƴ�]���u�W\�Cgg�k�
�������`��Y�+#B���@�&�pt����ن&*KKW����ʪ�j^0B��]·-hF�x�����w��N�W���V�=;�������KX�X����dd�|d�{l@�$�a��# ��~�I2{9,������Ք�>��O%�l��^x�Ed����i��˚�5�]!�X#a��g��B���pث$�^1�a�]�g��*��,U�]%�`��`1*:KZ�L�vy�Dƽ-r����&�|�{���L�z]�VZk�]�	Ϧ�#b�y��^�	<Z���)��<������M��i�[��m+�%{�O6\,�͍�j*�uX(�3`�������.}"��$?<qC��A���V%���Ng�$|��_s13N]���5�璱��^t�L����I�K�#1� Wb��R
�>�v>I����Uu1V2�?$@���	o�B1�bm�M*6W�24������jPM�KO����#�=V6��u4m�_I1�d�RL`�׉���-n!C����_���N�ļ��.��JF�\�
�X'�C�z�9vw*��VBCJpd$��y�[M<�(j����ƥP���U��"b~C���Lp8�b�J,D��E$S�J�,s��w��t<����6��K��:�^��F*�7�M2�lآ�V-�7����Q��$����_�:�;۲k�7�LNa���ԴA�]���հ_7+��D��Km�T�%T�UǡH�� �i�0�]+�;���%1\@��=����X�@x�?6!�.ߞ�#w%ĈcH1��	?zX�|#�%�2,�l9 �|�	F�g"ӭ��I��:-���ggdw�}���]X�)�k��9eI�����H�6��dv����S�6Ƒ��Υ��[��I������� fץ���,���+��	ȯ�$�۳:I'��7��
&�:7�V��3�]���o$>�2η_!,UVD^�ɖ�	�+�4�!�	�Z~�(DZi��r�2��c���n*�T!�έ��-���c��%1����ʼdfʏ
�������HA]�V�Y�ײ� �xS�A��Z��C���^f��!�^�B�%B���a��{�N��:
E"L*y��\�φ����;D-V�W���I/����q,�O|H\.�>-,7�:���[Nd&Bz8������R�ުI�M���ɒukŽC��RI�T��?8PWd��&ĥ�m����L��ݧ�Ѐb��8�V���_ȵ~��x~޹&;Qͺ@�!�U��<;RW�*
��a�\�;
��e	{g#,�|bnh�yW�Nl`W<&Ͳ�㶵���@���`�$R�6�!u�?j��J}hݕ��k�K�gݗ$2�ر�Ɏ��]�!�R�3����(HSs�C� �v�V���`~���z҈e\�n�΋�DuȒm|���켚I��~�i����V�ۺ��r`�v�I��
*�L�[�2{`���(�GYҥsֽw���Ub�D�N#h:�&<1G�&��	���^�WRMdW�6ΉN�氢Ca�J�<c?gC�E���<��ROF��7�����O�B����k�#.�E�n�ygIw�Y&�&��#�*�U�F)4v�B����;�jH3]�·KBԮ�Nd�db6����
��C�F݋%Uj�(:&1�1��z�1�	���"v�3����V<���o�l��-nr���]���(�k^�$b�0��fC6���ăU?����<��d�1^�y���ui�+��b�Y��D&
c饋�T�;h�ax�N�w�{q�6���]�wѻ��.�#��D�,�DD�1��>��H�������Wyy8���?1��|;�I�"�&s�+h�_��2�$v���@��0������in�N�̑�Ua���a�����V�bn�, f�W8�w�1�w�MG����5Zwe^�G`�|�Sb�N�=��#O�n9���{�E>��;������Rxk��x^(oS����fpz��g�|'���{��3
�^�Ξ�����(��+?__~>"8����0&W2��U��	�~��%������N)7�"`K�\xYT��T�Wu41Y��!��D�HL���c!�2t��i�c�\�:?���W*���m$\G�ebD�`X�����*��j��M(}$�6�fX�H�������3͕�Ɩn8w���F�m"�}��ef���ZRHkr){Q�8�m���m)z�yd�8�=������b��H��v�8���%Pƺ����"7�Cfg�J�Fuz����Y������c�C�,L�a��F"Zg�L=�	4�A�J��4%D��֋&*���M�S��G��撸8�G�+��cbJ�@՞�:�k�|�<T"�hK���8�Y`�K:'Cb��$H�>=6�x�q�$[
F��fӯ֠��ևjaPHd��]='	w��&g�m40��R�v^Xw?���$�}?r�hX
�nJR5
�gRd%�L��x�s
5(���+�3g}���]6�Ÿґ������g���;<�$����q�ƂO@x�/q�q͋�N�C�s$�NK"v��[uY�R^K��Zz���c��R�V:�MW}�ڀ��Z��X@�	5
��Z1�/��DL��w:JUe����V8F�6�E5.�or���)s`��jvR�-�p?�	�wl�^���V�W2I�X�[ӭ��O%����Mi�ߓ61(i��N`ug�5
�%��ɥ1Š鹇+�U�6ى�≩1��Ddv�y�p�Lxg�@��tΦЛ�;����$Nv���#�5FNd�uw̶S�f���s,�6^�i�=�b�ͥ�z�c!��H���0\�hȇ7wQv�����I9M̢1c=MN�b���l=�oJ$jA�e�Y,��})��}Ώ�!�"�Uj�D!�a�N�^��A
��������#��%�xe��{���j���ôdz
@�:��
��u���x���2��aΐl��@l��	��%�=g��١cQ[��*B�5��;&�LN�4$���$�౽�$�
��3a�7��Q�)}"|��u_Y���KCU1��CN��z�
��2j�b�]�v�p�L��u�ȩܛ!~aYw"��b���r�%%��;w{6��vvJ�AM�5P���Zb�YE�P$��OzNVF%6V!�{�r߰��X��(TWJ�=�� zH�Y1�j�=r�h
x �"��sc6��od��	������B�Y�ĥ	�E�'Y��I�
qeXL�\"������!�.�S-�H�Vr�;��@��y����y9�|�j�J��,&����%��-%"��K���2�_�ގ�;UT����KBY�|J�e�-��q$s:סM�l�Fu�0�`���).g�1�Qy�͇%���3ܟt�I��B�����m���
I�	oL��C�4
(���ͩ���p��ݵ�M��'�����ө�	��R�sRw���(�pD�T?��X�:�a�`���I0d�	��rG�Έ˅˘�^��������1R��������n7iD��.�Bf�L�*�ra8]vx�Uq��n5g^�2/Z[:{�9ʈ[����L�8��dH\����I��	�O��5kl����[���/؄~��䌩{4~@�R�6�Ԁ6K�ńK�b��)kY1�����vYO=3Ī��;���֫:��a�ӧ#+�,pq�]����ܑ�$�u��H�箔pNoհ�a�E�G-R��4U�������,'�W����-�ⵘn!^k����>��ty+L�i�8I@7٤��Dr��^�|��uo8��vb�<cUX'
�d*�XI[ѮC��"Z`D�%c�jNUcBK&@�K='7�%8X�R�Gՠ�
��C��`�>��]/��e�爹�X�\LP���bUBC4pE�9"7T$�W���
�-�L%����)�aL$�5f��/K���d�����ALF��ph�Ė�1u�O���:v���Ⱦw�ά�&��U���#T��D�xN5��]��/"`8%��1(��quP�R	q����KAr�=;9f�~Nd�>��@n�6;��n�!��{b��n9�lWS��f=�I�����i�u�r�M�ϛC5����"&�������J���ql��1��`���~�?�xǴt�����IDP$���T�@��z����B�+@���y��l�5/� 'E�Dr���$��[.)��`�>]��R+��H�9Nf�.YE�\�E�5)�Y�E*�	������3���f���\��9#�P:�b��tL�(m�`4����.�d�,��n�7Av��%�O�ti�������i�0Ƌ*�1n���'�=�,��D�A�w��}D�עU��#�EgQů�4�q��x���H�QL��&��7��D��$�)I�a���1�	1���]L���92%�I䂩��>a�b�W&		���spD�%7������8���6[��P���$)��2�E��O3#�d�s��|kEw�r�~}6�����/�S��(�Hu�ݳ�TZ�e��� ϰdbM�&GF��x�U����2.��z�)�Hh؝���������e?e2��Nd2lf��P.���>ʥ[�LaV�(Zt���`~pI��,�;	9�>�8]�b^>�R5�������D����m��2���K�	1��nD�_��iÆ�Uĵ��$�A�b�#������X��B-�"%!�b�[�Ĕ49ޜ\"Z� ai��!w̺�Kj;��V�ߙ	&Mט@��+/��B�����8t�w�6ZH�Жi|��i
�����*-|J`�K	8�Iz��j�{�)��1�V6�X���{iY�'��k���pò�d�q�&Kg5�
a����u�HD
l���U�lAo�Z�60f�^ �@T��ªp|[�T[C$�Z(%	��6љͫ�L ���x��"W����̠�YH��.�i��{�1�餚M��E&Obr���:�=�c��NO�ν~&9^^!���J�Ca��al�����7�
�Y�7dBX.4�F|���"6�M��,(N���CU�i����"%1V��P��}�/�	�8ȾK�}�-�ؠ?�SQ[X�w�K䞂)�bĎ{��ƒ,�d6°��K�-���,�6q��I[S�p�.�C��#���щs8b�<1�ƒ7d=Z����.��D�W;��ĕI*�	�90�RE�`��Ь��³�57Q��1�i��t��#g�����&㹘j����jg�&�H�T�Í@��d�J�{.��ɛ�t���W�#t����d4ki��ݚ��]~����r����Y�S���:�k8��(�Ϥ�'ʃc����]Ţ��-=���J#/��7��WM�6����\6xi�^B�D{�ăsG|m-�Z���m��1E����4�T��&�G�_w�ԓЩNU7پ램R�ڝ��M�H�9����0y��rgP�$�*�̰Q��m�@a�ݭ�.���?ш��ȏ܋xl��톐��*�M�{�Ĭ�G�l�
c��A��<i��!���͑�`��� �NM�'d5�P�tlMDS���k$�bh#�ъ"!F@c	$Y��J������%��J?8kd���X�@U�:߫���Y��ɵ'�l}�{� �1B�sRa�*UJ���!�rS�)�����(D�Ä�Po�����Y�8�#qc�ZE�����W�4�Vw6�������2�o�v�4v��
Q�2=�i�A��~:�Q�&A�K��F6m��vᵐ��[�����G��c���+C��:EB=J4��b���Α!-�{c~5L=��bl%��X�Ӂ�VY
��fr�6��
���bn�q�.Y�@�ۏ��7k�ԸV͚��i�'�O5��eܓ&�9�l���L�˴��(�%_V"刁o���͢������
.�=ĕZ��G�F!̭g�q�i�I`��^��v�7E�i�"��5�v�%�/O{2��F�*���%R�6�m#[	�z���5!�9��f��#�S�k�"'�7c�4B]����^4���q�q���"-�(46����"-�H�Oˆ�C�d�E���,�Ә|�zooj�3ms��փ�D�^g\�D)�n�FS/&L+R� �m�in��>Gé���Ӷ��βC�c>0�f�P&Ӊp{�o*�$6�$?�������!��N�JhŒ��R�	Z��#��s:(��+�|�P�>"���dM�C&6�W[3FP7)�녒Ƌg�.�δrv�JM��!+8e���v�B`i�6i�1�U�����5�78��<4����HY�G�]"��a��G̯MMR�����C��N�P+����(��\�Z�J�{IY�'P�%V-)�a�/'z�vW���,��.6G�m��0���X�1�ϸ'��}�{�(�j�������c���fQ�"	�����۔o�ygZI���
x��f�eŶy�<�W�uܧ)�0 �Դ�&0q� �\0����Mr1�[�q�`�n���PUHD��$U�f�z�N��7?	���:V�?��	�q�2S�6,��Mq�P�l�����M���;�4�y!�o�h��*n`� 6��Bz_���L��y)��'���^�&��X��&��65�z2��DDo¢�w������2�x�
��E���Ӆe�$QN��(!R$A��G ;vXȡ����\�\j�>Vb�V����8{?�̚i4��=+�L��"~����v���\��=D�߳��)ѥr���_�3?2Ub����Ӭ�ޓ��3n��C��Ѯ�Ysx�Κ0�bq�՚\�>|�r����JsS�^Lo��\��q9�Q���P;1"�ΊL�
!��6-Grб7C�(>�w���L����]l�0yl�6��>;���T�j�̙%�撄1���-�5`�!: �������'Q��&'q�l	i� �C+�T¹͚��M�w0��M��%���T�y��洽��$M=W��?<�}C9�v/��بs�Ӗ!�4aRslo��iW_|���P��7���ʔ��c�E��4%`��
&f%Д㫘��Aw��|@7j��A/8ŋ�M=Y-q�i���>S� T~ߑ��To�Lۉe�6yYFﺓ�L��L��7�)�4�h(]�Ρ�tj�9eʄ����z>��=�i��4U�VͰZ�2p�#ް9�\;�M9@��|y�"��Z�_�ߝc�3����rXwҝUӓҦ���6�E��[��r63M��&��`o��8��d�^�͝�P56O�k�^��sJ�%�ä��geZ!Z2|r��~V�)�l"HEa�L��tی�JI+�EgT4�(ȔS`�=�%�G��-�&4�{@�WY��g��Ƌ��x�d{�
�J'_X���R��/��5&*�o?8����^��܂|��8�2/`�a0\�Z]0���&^K�91'iJ���3*��k��svq�t��T�>@����*�L�Κݷ��vm
j輆�e�s�Y��Q�-*���B2\�
	�l>��.sZ�1���(���=X�#��� F�s���}7;��hXb
@��q!��M
��EM����P���J��"$c�M���x��6��P��Li�����H��p�����H�We�J�׀i�`e{��!V����Q���$�9>�۩�/mAF��LB�k�׭�g
Q��4�;��j��hs���?Y�$�G�QD��߾��P�^�gL�622�c�Иw4�:��tZ9�i��=m������yv�DZb018/<Ae"xD��
�q��&����\d�Ix`_賂V&޳1�5�S��k�w�4���E�Y��PKEVT�x�V�x���litespeed-cache-fr_FR.poUTf�bux����PKEVTw���U�����litespeed-cache-fr_FR.moUTg�bux����PK��c��p�#�G�^�^(�^2_M_U_	^_
h_
s_~_�_�_�_	�_�_	�_�_m�_^`
k`v`}`3�`h�`)aIaNia8�a=�a"/b7Rb�bH�b�b�b�bcc'.c
Vc	dcncwc%�c�c|�cF2dyd%�d	�d"�d�dP�dLeT[eZ�e>fuJf�f.�f-�f/&gLVg2�gI�g h/h;h#JhQnh�hs�hEJiP�i0�i'j:jQjkj�j�jI�j+�j	k	kk $k"Ek/hk*�k�k
�k�k�k�l4�lf�l $mEmJm
Nm\mim#qm�m�m�m
�m�m�m�m�m	nn-n	DnNndn
un�n�n�n�n�n�n�n0�n*oUFoW�o�o p 2p(Sp|p�p�p�p�pK�pPq	lqvq�q�q�q�q�q"r)r"Erhr!�r�r�r&�r"sG/s!ws,�s$�s+�st(7t	`tjtW�t�t�tu1u2Qu�u
�u�u�u�u�u�u�u&v.9v*hv.�v�v�v]w_wow�w�w
�w�w�w�w�w�wxx
.x!9x[x4px'�x�x�x	�x�xy*y;Dy:�y�y�y�y z"#zFz\z/uz*�z<�z
{{5{B{
W{	e{o{x{�{�{�{�{�{	�{�{�{|"|*|;|R|j|�|�|�|�|
�|�|}	})};}+Y}}�}~D~8Y~�~�~;�~�~ �~K8aq���(�@�U�i���������CԀ�
�*�HC�������Ձ
ف�<�.�H�Y�9n�
����Ƀ ك��
�Y�ql�ބ�N�U�b��i���	��#�C�P�a�j�}�����+��%dž,�s�����·���	�"�(�@�Z�v�L��݈9�:#�0^�)�����cV�G��L�WO�����
Ћۋ
����*�A� S�t�|�����
Ȍ֌8��=�
X�f��� ��0�����	�#�@�
F�Q�d�~�
��	����B����	���2
�)=�Zg�,��-��M�i%�I��;ّY�Ko�V��U�Lh�l��B"�Ye����Va�`��J�gd�=̗@
�=K�����������.�
B�P�<a�����˙?�+�@�X�q�������Қ?ߚ�6�=�M� ]�&~� ��Dƛ�l�������
������}�C�X�m�
u�����
����
ɞ/Ԟ/�4�pI�<��
���!�*�?�	K�U�a�����.��נ
ܠ�
��
�"�/�hN���A������	������'΢
���
�
!�"/�R�[�j�~�#����ͣ
ޣ
���P"�Hs�B��7��@7�>x�"��&ڥ��%�=�%W� }�"��&��!�
�$�=�U�$t������������ ب��/
�.:�i�v���������ҩߩ��+�,�3�@�D�
W�e�q�}�������%���$��
!�/�4�D�@I�
��%�����ëL�S�>[����� ���*�� $�2E�x���"��*ѭ"��"�B�Y�i�<��,Į$�
�
$�
2�@�E�K�
R�.`�?��6ϯ;�1B�3t�2��6۰0�C�G�J�M�T�a�w�Q��D�
+�-9�$g�?��̲��7e�����%dz	���� �3�J�^�w�$����EŴ+�*7�,b���������ص��
�!�$�@�`�m�������������ҶR�c;�2��?ҷ
� �?�<U�5��Sȸ5�R�pr���'g����E�c�h�p��;��0ͻM��L�pc�|Լ/Q�&��&��)Ͻ��
��"�6�
E�S�$h����F�b�z�����
����ÿϿA�$�*�9�	N�X�h�}�����
�����%���0�D�IV���$��D�@"�9c�1����8��T�j�z�����������+��
��#"�=F���
����+����	��0�P�g�z��������������{*�;������4�F�d�|���
����A��S��	F�P�b� x�������������+�&?�f�Y}���$��2�C�U�Ij�
������
����:�;�Y�a��.����d��&�;�MP�f��$�X*�Q��7��+
�9�gS�������Q�W�Pc�^��m�	����������9��v�}��(�=�W�>`���U��	�N�Yl�������
���#�+�98�8r�
��0��V��_A�C��G��a-�8��4��/��7-�6e�7��-��)�L,�*y�)��-��(��,%�.R�K��?��?
�HM�<��3���R�a�v�����������2��
�(+�5T�����������e��-&�/T�M��h��;�][�=��8��[0�c��A��q2����`6�q��	�W)�O��>���K(�t���E��1��-�M>�Y��$��)�95�Oo�&��9��Y �$z�X��1��*�A;�&}�^��E�UI�(��S���J2�(}�I��.���2:�7m�Y��*��9*�d���:��;��,�*C�1n�;��/��J�4W���N��Q��oL�X��/�GE�9��1���� �"��*�J��^;�3��N���W;�����*�*�<�1Q�V��L�*'�]R���������$���
*�8�K�R�b�k��s�/�(G�)p�������8�
��
��@�!�%%�K�
Q�
\�
j�x�������:����$�8�R�f�y�r��5�_A�8���#��$;.`2�r�5!>C`F�
��$ > _�K����+GO)d�� %? U
v���d�J'jrM�+g=�R�Zjv�&�'�#�%-�S/	q;	(�	E�	J
Fg
.�
Z�
68Go�/�!)8
ALTh'{�K�


#
J*
	u

�
�
�
'�
	�B�:P	Y	c
mx�"�'�	�
��	������:��/�)�P�JJJ�.�K[S_�!��&�$3>r���0����U��7�+5<7rb�
t"{�P�d	�I�AI8�^�L#Sp���>fC�~�YH`�:,>7kC�=�%-j3+�
���8�)'RQO�
�� . �F 9!x@!#�!�!�!�!�!
"("@"%M"	s"}"
�"�"�"+�",�"!#*&#Q#+f#$�#�#�#�#�#	$$.$G$Sc$D�$n�$pk%(�%*&0&7M&�&
�&�&�&&�&_�&_K'
�'#�'"�'.(*/(,Z(�(&�((�(-�(2!)7T)-�)+�)1�)5*cN*8�*2�*>+5]+)�++�+�+ �+f,�,�,�,B�,=-]-
m-x-+�-�-�-�-"�-2
.8=.!v.8�.#�."�.m/�/�/
�/�/�/�/�/�/)
0,70.d0�0�0D�01C$1-h1�1�1�1�1�1 �1_2U|2 �2�2%
3.03&_3�3$�3@�3;4NA4�4$�4�4�455&575V54v5�5�5�5�5�56,6J6V6#k6$�6�6+�6-�6+7'E7m7	�7�7	�76�7.�748�68�8L�8@>99'�9a�9:-:YL:C�:��:w;;&�;"�;"�;/<!7<&Y<�<-�<V�<$=,='<=id=$�= �=&>;>?>
N>�\>&�?@@D1@v@�@�@0�@�@ArA|�A
�A	BK$B%pB�B��B
aCoCwC)�C�C�C�C�CDD	"D?,D'lD5�D��D2fE#�E�E�E)�E'FFFOFkF*�F)�Fa�FBG=NGH�G;�G1H�CHm�H[ZI��IePJ�J�J�JK
K'(K9PK3�K"�K�K	�KLL-<LjL}LD�L)�L�LM#(M LM&mM1�M�M�M�M*N-N
3NANWNrN�N�N!�NX�N!O-O
>OBIO>�Ou�O@AP�P%�P5�P�PvRS�RJ�Ri/S_�Ss�SymTv�Tm^UV�Uu#V��VnyWx�WuaX��XN�ZQ[VW[�[�[�[%�[$\.D\s\�\�\�\N�\+]E]/`]S�]�]�]^5^P^!n^�^�^X�^
_#_,_>_.U_&�_'�_f�_:`�I`�`�`a
"a�0a�+b#c7c	Tc^ckc�c�c"�c
�cA�cAd!ad��d?eHe$Teye�e�e�e�e)�e�efMfmf
rf}f�f�f�f+�f}gg[�g��g�h�h�h�hJ�h>iOiairi&�i�i�i�i �i<j#Hjlj�j�j�j$�jl�jSOkS�kH�kQ@lO�l.�l6mHmXmlm�m3�m'�m&n-'n)Unn�n �n%�n/�n,oLpfpxp%�p/�p�pQ�pTQq�q�q�q#�qr(r=r,Qr~r.�r�r�r�r�r�r�rs*s9sOsms3vs�s2�s�stt!tP&twt5�t�t��tcupuf|u�u�u+vJvCiv1�v?�v w!@w1bw;�w1�w/x!2xTx%hxK�x6�xHyZyxy�y�y	�y�y
�y(�yB�y=8zEvz=�zA�z,<{Di{,�{�{�{�{�{�{
|#|^@|O�|�|:�|/9}Hi}0�}��}I�~�~$7,
do������7!�'Y�X��<ڀ2�7J�����
��7���	��"�,1�1^�*��%��(�
�)�9�?�H�#U�y�{����J��C�D�@a���R��E�XQ�E��'������2W����Uv�̉щ���M�Gc�d����0����=N�7��7Č/��,�3�@�[�w��� ��:����n��%-�S�\�i���-��ӏL�4�;�Q�q�}�%��
��ʐ֐���''�O�Bo���bʑ$-�/R�`��N�I2�=|���@ѓk�~�����'��ٔ�	��6�
>�I�8X�P�����03�d�(����'Ȗ+��;�S�l���(��0͗ ����;�Gߘ!'�I�Bf���Ǚ�����J(�hs�ܚ�+�'.�V�!p�����ʛ0�1�-K�y����� =�U^���Нi�W�c�w���*��[Ҟ6.�e�"}���J��	�������i͠u7�=���kk�Dע1�%N��t���2
�=�_Y���e̤s2����
-�;�![�!}���C�������Ac�)��	Ϩa٨;�pY�ʩL�k/�����"˪��=�I�IX�H���:�kA�t��U"�^x�l׭RD�K��F�Q*�R|�PϯA �0b�c��5��6-�7d�.��F˱D�[W�J��T��RS�E��A�.�q4�����ܴ
��'
�2�@7�x�(��S��)�?�U�Y�
a��l�>�3-�sa��շ,a�l��>��=:�tx�v�Fd�����G��1����*C�cn�dҽI7�"��[��!�b"�o��<��62�`i�\�('�/P�@��n��-0�f^���%E�_k�E���`(�8��i��b,�m��8��f6���U��:
�ZE�4����5��<)�`f�+��b��+V�!��G��K��!8�7Z�:��E��8�cL�@��,��e�d��t��f^�2��V��IO�>����0���-�Z1�o��G��\D�!��x���<���7��A�AY�^��m��0h�v����'�-�?�'R�z� �������������'�d �V��K��(��G�������
��T��7�.;�_j�
��������'�3�LP�'����6��%� :�[�-{����GK����O�3m�;��)��*�?2�;r����V�1j�Q��U��D�)U��!��*�� ��	��m	�
w�������F��
�*�<D����4�9�T�#k�������(��m�cq���lU������g�u��j��d�p�-��5��6��$!�F�/W���8�����6y�Z��W�Qc�7��_��HM�T��-��@�#Z�~���	����������3��0�KN���
����S��
�
"�-�6�B��B�D�>O6x=7/�I����5�����G1�T`�R��,(p�@4s��������O!1z�9�+���'c��BmZv�&�ed68���E�7��p�2$�����\�t�F�F��%MM{���c�)(%��[4u����?�i9��T�_��Z��?le�V��j��d���*>�jl7�'c���AJ���[�]s}#hEb!}���,��������1g�,����^���m� :_n�+�>���`��@�Hv��T�0W�i��z�<{>�v�����2�a�yn�)�-YK�V�m�V��gL�G��U��H���'�K"2��#G�s����wY~��j/�A����CP��;UCN�&���B�U�M7J>8��bG'�|��.f�e^ 5k=3E���T?/��2h�9�8��+�OD�:��(��[�?�BL�X�c��Q4�3�q:w�c3LHH���u��yr
�L��P�{�9��N� ���g���%|Z���SX&	e�.��������ZK;A����WNYa�-����lx���bF(���Yk�g��qH4�[l�f
�S��hZ
�I0����8�����������3���\�n�u��;����h��]��C�;w������5Y����K�W���m����.0E���Q`��!(��r�@�,C��D�����pP]�������o?�8�)��
���.�vp�$q��j���*�����iE�$t�X����b{�|O%�&�@/���<J�4���=���-"!��M.�P*���$qC�_k	�:7R�Q2x��!*������Uo��1�y��9���i^����IoS�����S��T�	��]�XQ�6�+]�
DX}e+r�
d}|0Ano�V���U1 ~�ax���*�V����:$y�a���z�@z���^ AF�����^'M�W��Du
���_�I��_�\����;���\��"�b��"=����tfRm�`�-�d�<=w~�n�#a��l�s	�
)
ig�N�Gh�K#�R�3���<B���k�F%#���S�jR�	Ptd�oW��Q��5�f6�/�,�0
\-5�"��f��`�L���O�)r[Ip��&�N�~�<J�6�Jk %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAutomatic generation of critical CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache WP-AdminCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Communicated with Cloudflare successfully.Congratulation! Your file was already optmizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBCookie NameCookie SimulationCookie ValuesCrawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDelayDelayedDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDowngrade not recommended. May cause fatal error due to refactored code.Drop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all %s server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest OptimizationHTML Attribute To ReplaceHTML MinifyHTML SettingsHeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.How to choose an UCSS whitelist selector?However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load ImagesLearn MoreLearn moreLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization SettingsLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot BlacklistNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOriginal URLsOther checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePHP Constant %s is supported.Page Load TimePageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please read all warnings before enabling this option.Please see %s for more details.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePredefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.PrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlacklistRemove query strings from internal static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Responsive PlaceholderResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe selector must exist in the CSS. Parent classes in the HTML will not work.The server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from %1$s%2$s tab.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in %s queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unique CSSUnknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimized version of file. Variables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsView .htaccessVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour server IPZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsuser agentsPO-Revision-Date: 2022-02-22 08:10:33+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n > 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: fr
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
il y a %sMettre en cache le bloc ESI de barre d’administration intégré.Extension %1$s version %2$s nécessaire pour cette action.%d heure%d heures%d minute%d minutes%d secondesExtension %sLe fichier %s n’est pas lisible.Le fichier %s n’est pas inscriptible.%s groupe%s groupes%s image%s images%s est recommandé. Si le cron et une exécution manuelle démarrent tous deux à des moments similaires, le premier qui démarre aura la priorité.(aucun enregistrement)(non-optimisée)(optimisée)Chemin .htaccess<a %s>Forum de support</a> | <a %s>Soumettre un ticket</a><a href="%1$s" %2$s>Voir les détails de la version %3$s</a> ou <a href="%4$s" %5$s target="_blank">mettre à jour maintenant</a>.<b>Dernière exploration :</b> %d élément(s)<b>Dernier crawlé :</b> %s élément(s)<p>Veuillez ajouter/remplacer les codes suivants dansle début de %1$s:</p> %2$sUne clé de domaine est nécessaire pour les services en ligne QUIC.cloud.Une purge de tout sera exécutée lorsque WordPress exécute ces crochets.Un TTL de 0 indique de ne pas mettre en cache.Une sauvegarde de chaque image est enregistrée avant d’être optimisée.APIAccélère la vitesse en mettant en cache Gravatar (avatars mondialement reconnus).ActiverAjouter les dimensions manquantesAjouter une nouvelle URL de CDNAjouter un nouveau cookie pour simulerAjouter à la liste noireAjout de style à vos images chargées en différéUniquement l’IP de l’adminIP d’adminAvancéRéglages avancésLe niveau avancé enregistrera plus de détails.AprèsUne fois que le serveur d’optimisation d’images QUIC.cloud a terminé l’optimisation, il demandera à votre site de tirer les images optimisées.Après vérification que le cache fonctionne en général, veuillez tester le panier.Tous les transientsToutes les catégories sont mises en cache par défaut.Toutes les pagesToutes les pages avec le widget des articles récentsToutes les étiquettes sont mises en cache par défaut.Autorise les IPs listées (une par ligne) à réaliser certaines actions depuis leurs navigateurs.Déjà mise en cacheToujours vider les produits et les catégories lors d’un changement de quantité disponible ou de statut de stock.Un second paramètre facultatif peut être utilisé pour spécifier le contrôle du cache. Utilisez un espace pour séparerAjoutez des chaînes de requête %s aux ressources pour contourner cette action.Demande de clé de domaine bien effectuée. Veuillez attendre le résultat. La clé de domaine sera automatiquement envoyée à votre WordPress.ApprouvéConfirmez-vous vouloir supprimer toutes les listes de refus existantes ?Confirmez-vous vouloir détruire toutes les images optimisées ?Confirmez-vous vouloir vider tous les nœuds du cloud ?Confirmez-vous vouloir détecter à nouveau le serveur cloud le plus proche pour ce service ?Confirmez-vous vouloir la suppression de toutes les sauvegardes d’image ?Confirmez-vous vouloir réinitialiser tous les réglages aux valeurs par défaut ?Archive d’auteurBrouillons autoCron de traction automatiqueRègles de purge automatique pour les publication/mise à jourGénérer automatiquement des CSS critiques en arrière-plan via une file d’attente à base de cron.Mettre à jour automatiquementActiver automatiquement le pré-lancement des DNS pour les URL dans le document, y compris les images, CSS, JavaScript, etc…Générer automatiquement LQIP en arrière-plan via une file d’attente basée sur cron.Supprimer automatiquement les sauvegarde d’image après récupération des images optimisées.Demander automatiquement l’optimisation via tâche cron.Liste des avatars en attente de mise à jourChemin du .htaccess de l’interface d’administrationContrôle du battement de cœur de l’interface d’administrationTTL du battement de cœur de l’interface d’administrationBasiqueAvantAvant de générer la clé, veuillez vérifier que toutes les IP de cette liste sont sur la liste blanche.Avantages de lier vers un compte QUIC.cloudBêta testListe de blocageBloquéMis sur liste de refus car impossible à mettre en cacheÀ la fois %1$s et %2$s sont acceptables.À la fois les URL complètes et les chaînes partielles peuvent être utilisées.Il est possible d’utiliser aussi bien des chaînes complètes que partielles.NavigateurCache navigateurRéglages du cache navigateurTTL du cache navigateurLa mise en cache du navigateur stocke les fichiers statiques localement dans le navigateur de l'utilisateur. Activez ce réglage pour réduire les requêtes répétées de fichiers statiques.Par défaut une image indicative grise %s sera utilisée.Par conception, cette option peut servir du contenu périmé. N’activez pas cette option si cela ne vous convient pas.Contourné %1$s images dupliquées.CCSSCDNBande passante de CDNRéglage du CDNURL de CDNURL de CDN à utiliser. Par exemple : %sCombiner CSSCombiner les CSS externes et en ligneCSS excluMinifier CSSRéglages CSSCache CSS/JSCacheMettre en cache la barre d’administrationMettre en cache le formulaire de commentaireMettre en cache les commentateursMettre en cache les réglages de contrôleOccurrences de cacheMettre en cache les utilisateurs connectésMettre en cache la page de connexionCache manquantCache mobileRessources PHP de cacheMettre en cache l’API REST.Statistiques de cacheÉtat du cacheMettre en cache wp-adminMettre en cache favicon.icoMettre en cache les requêtes effectuées par les appels de l’API REST WordPress.Mettre en cache le bloc ESI de formulaire de commentaires intégré.La mise en cache de ces pages peut améliorer les performances du serveur en évitant les appels PHP inutiles.Mettre en cache cette ressource peut améliorer les performances du serveur en évitant les appels PHP inutiles.Calculer l’espace disque de sauvegardeCalculer le stockage des images originalesSauvegardes bien calculées.Impossible de créer un dossier : %1$s. Erreur : %2$sEffacerCatégorieRéglage bien modifié.Vérifier l’étatVérifier mon IP publique à partir deCochez cette option pour utiliser les configurations du site principal sur tous les sous-sites.Cocher cette option forcera la page boutique à utiliser les réglages de page d’accueil TTL.Tout nettoyerVider la carte du robot explorateurNettoyage des données inachevéesNettoyer tous les brouillons auto-enregistrésNettoyer toutes les révisions d’articleNettoyer tous les commentaires indésirablesTout a bien été nettoyé.Nettoyer tous les rétroliens et pingsNettoyer toutes les options de transientTous les transients ont bien été nettoyés.Nettoyer tous les commentaires mis à la corbeilleNettoyer tous les articles et pages mis à la corbeilleLes brouillons auto ont bien été nettoyés.Nettoyer les options de transient expiréesLes transients expirés ont bien été nettoyés.Les révisions d’article ont bien été nettoyées.Révisions propres plus anciennes que %1$s jour(s), à l’exclusion des %2$s dernières révisionsLes commentaires indésirables ont bien été nettoyés.Les rétroliens et pings ont bien été nettoyés.Les commentaires mis à la corbeille ont bien été nettoyés.Articles et pages mis à la corbeille bien nettoyés.Nettoyé tous les fichiers CSS critiques.Bien nettoyé les données non finalisées.Effacer le journalEffacé %1$s images non valides.Efface toutes les entrées du cache liées à ce site, <i> y compris les autres applications web </i>.Cliquez ici pour modifier.Cliquez ici pour paramétrer.Cliquez ici pour les réglagesCliquez pour effacer tous les nœuds pour une nouvelle détection.Cliquez pour passer à la version originale (non optimisée).Erreur de cloudCloudflareAPI CloudflareL’API Cloudflare est définie à inactif.Cache CloudflareDomaine CloudflareZone CloudflareRéduire les chaînes de requêtesCombinez les fichiers CSS et le code CSS en ligne.Combiner tous les fichiers JS locaux en un seul fichier.Bien communiqué avec Cloudflare.Félicitations ! Votre fichier a déjà été optimiséFélicitations, tous recueillies !Félicitations, tous demandées !Félicitations, votre clé de domaine a été approuvée ! Les réglages ont été définis en conséquence.Test de connexionConvertir en InnoDBNom de cookieSimulation de cookieValeurs de cookieIntervalle de crawlCrawlerCron du crawlerRéglages généraux du robot explorateurRéglages de simulation du robot explorateurRéglages de plan de site du robot explorateurÉtat du robot explorateurRobot(s) explorateur(s)Les robots explorateurs ne peuvent pas s’exécuter simultanément.Créer les versions WebPCréez un article, assurez-vous que la page d’accueil est exacte.Créé avec ❤️ par l’équipe LiteSpeed.CSS critiqueRègles CSS critiquesNom du cronContenus actuel de %sNœuds cloud actuels en serviceIP actuelles du serveur en ligneLe serveur Cloud le plus proche est actuellement %s.&#10; Cliquez pour le détecter à nouveau.Le serveur Cloud le plus proche est actuellement %s.&#10;Cliquez pour le redétecter.Le crawler actuel a démarré leLa limite actuelle estL’heure actuelle du serveur est %s.Le crawl de plan de site actuel a commencé leL’état actuel est %1$s depuis %2$s.L’état actuel est %s.Robot explorateur actuellement actifUtilisation actuelle d’une version optimisée du fichier WebP.Utilisation actuelle d’une version optimisée du fichier.Utilisation actuelle de la version originale (non optimisée) du fichier WebP.Plan de site personnaliséRéglages d’optimisation de la BDDPré-chargement des DNSContrôle du préfixe DNSArchive quotidienneTableau de bordBase de donnéesOptimiseur de base de donnéesRésumé de la base de donnéesConvertisseur de moteur de table de base de donnéesBase de données à utiliserJour(s)Niveau de débogageJournal de débogageRéglages de débogageL’URL de débogage exclutL’URL de débogage comprendPar défautFlux TTL par défautTTL de page d’accueil par défautDurée de vie de l'objet par défautTTL cache privé par défautDurée de vie par défaut du cache publiqueTTL par défaut pour les objets mis en cache.Le chemin par défaut estLe port par défaut pour %1$s est %2$s.Valeur par défautDifféréDélaiDifféréSupprimer toutes les sauvegardes des images originalesDétruire toutes les données d’optimisationBien détruire toutes les données d’optimisation.Détermine comment les modifications dans les quantités de produit et états de stock de produit affecte les pages de produit et leurs pages de catégorie associés.Mode développementLe mode développement sera automatiquement désactivé après trois heures.Le mode développement sera automatiquement désactivé dans %s.DésactiverDésactiver toutes les fonctionnalitésDésactivez l’intervalle de battement de cœur de WordPress pour réduire la charge du serveur.D&eacute;sactiv&eacute;Fichier WebP bien désactivé.Désactiver cela peut entraîner l’arrêt des tâches WordPress déclenchées par AJAX.Désactiver cette option aura un effet négatif sur la performance.Désactiver cela stoppera la tâche cron responsable de la récupération des images optimisées à partir du serveur d’images QUIC.cloud.IgnorerIgnorer cette notificationNe pas mettre en cache les catégoriesNe pas mettre en cache les cookiesNe pas mettre en cache les groupesNe pas mettre en cache les chaînes de requêteNe pas mettre les rôles en cacheNe pas mettre en cache les étiquettesNe pas mettre en cache les URINe pas mettre en cache les agents utilisateurNe pas purger les catégories lors de modification de quantité ou d’état de stock.DomaineClé de domaineErreur de hachage de la clé de domaineLa rétrogradation n’est pas recommandée. Peut provoquer une erreur fatale en raison du code remanié.Supprimer le domaine du plan de siteSupprimer la chaîne de requêteFichiers d’image dupliqués ignorésESINonces d’ESIRéglages ESIESI vous permet de désigner des parties de votre page dynamique comme des fragments séparés qui sont ensuite assemblés pour créer la page entière. En d’autres termes, ESI vous permet de « percer des trous » dans une page, puis de remplir ces trous avec un contenu qui peut être mis en cache en privé, mis en cache publiquement avec son propre TTL ou non mis en cache du tout.Exemple d’ESI pour les développeursÉditeur HeartbeatÉditeur Heartbeat TTLLes éléments avec l’attribut %s dans le code html seront exclus.Adresse de messagerieVider tout le cacheVider la liste de refusActivez la fonctionnalité %s de l’API du CDN.Activer la mise en cacheActiver ESIActiver le remplacement de WebP dans les éléments %s qui ont été générés en dehors de la logique WordPress.Activez cette option si vous utilisez HTTP et HTTPS sur le même domaine et que vous remarquez des irrégularités de cache.Activé(e)Fichier WebP bien activé.Activer ici LiteSpeed Cache pour WordPress active le cache pour le réseau.Raison pour laquelle c’est terminéMoteurSaisissez l'adresse IP de ce site pour permettre aux services de cloud d'appeler directement l’IP au lieu du nom de domaine. Cela permet d’éviter les surcharges des consultations DNS et CDN.Chaque minuteExempleExemple d’utilisation :Les exemples de cas d’essai incluent :Exclure le cheminRéglages d’exclusionExclureTransients expirésExporterExporter les réglagesÉchouéeÉchec de sauvegarde du fichier %s, modifications interrompues.Échec de communication avec CloudflareÉchec de la communication avec le serveur QUIC.cloudÉchec de la création de la table Avatar. Veuillez suivre les conseils <a %s>de création de tableau du wiki LiteSpeed</a> pour terminer la configuration.Échec de récupération du contenu du fichier %s.Échec de la requête via WordPressÉchec de mise à niveau.Impossible d'écrire sur %s.Utilisation de la file d’attente rapideLe fichier %s n’est pas inscriptible.FichiersLe filtre %s est supporté.Le dossier n’existe pas : %sLe dossier n’est pas inscriptible : %s.Optimisation de l’affichage des policesPour les URL avec des jokers, il peut y avoir un retard dans le lancement de la purge planifiée.Par exemplePar exemple, %1$s définit un TTL de %2$s secondes pour %3$s.Par exemple, %s peut être utilisé pour un texte indicatif transparent.Par exemple, pour %s, %s et %s peuvent être utilisés ici.Par exemple, pour %s, %s peut être utilisé ici.Par exemple, si chaque page du site a un formatage différent, saisissez %s dans la case. Des fichiers CSS critiques distincts seront stockés pour chaque page du site.Par exemple, si la page d’accueil du site est située %1$s, la page de la boutique peut être située %2$s.Par exemple, pour supprimer les paramètres commençant par %s, %s peut être utilisé ici.Pour que les services en ligne fonctionnent correctement, vous devez inscrire sur une liste d’acceptation toutes les adresses IP des serveurs en ligne.Pour cette raison, veuillez tester le site pour vous assurer que tout fonctionne encore correctement.Forcer la mise en cache des URLForcer les URL du cache publicForcer le cronMise en cache forcéePage de gardeChemin .htaccess sur interface publiqueContrôle du battement de cœur de l’interface publiqueTTL du battement de cœur de l’interface publiqueRecueillir les données des images%d images bien collectées.GénéralRéglages générauxGénérer LQIP en arrière-planGénérer un lien pour l’utilisateur actuelGénérer l’UCSSGénéré dans %sLes liens générés peuvent être gérés dans <a %s>Réglages</a>.Obtenez-le à partir de <a %1$s>%2$s</a>.Clé/jeton d’API globalGroupes globauxAller au tableau de bord QUIC.cloudAller à la liste des extensionsBonnes nouvelles du serveur QUIC.cloudGoogle reCAPTCHA sera automatiquement contourné.Cache GravatarCron du cache GravatarTTL du cache GravatarGroupes mis en cache au niveau du réseau.HôteMode visiteurOptimisation visiteurAttribut HTML à remplacerMinifier  le HTMLRéglages HTMLBattement de cœurContrôle des battements de cœurMise en cache des pages haute performance et optimisation du site à partir de LiteSpeedOccurrencesPage d’accueilHébergeurComment corriger les problèmes dus à l’optimisation du CSS/JS.Comment choisir un sélecteur de liste d’acceptation UCSS ?Cependant, il n’y a aucun moyen de connaître toutes les personnalisations possibles qui ont été mises en œuvre.Le htaccess ne correspondait pas à l’option de configuration.La règle htaccess est : %sJ’ai déjà laissé une évaluationSi %1$s est %2$s, alors %3$s doit être renseigné !Si activé, une copie périmée de la page en cache sera affichée au visiteur jusqu’à ce qu’une nouvelle copie de cache soit disponible. Réduit la charge du serveur pour les visites suivantes. Si désactivé, la page sera générée dynamiquement pendant que le visiteur attend.Si chaque application web utilise le même cookie, le serveur pourrait ne pas savoir si l’utilisateur est connecté.Si non, veuillez vérifier le réglage dans l’<a href="%1$s">onglet Avancé</a> .Si seul le site WordPress doit être purgé, utilisez « Tout purger ».Si défini à %1$s, avant que le texte indicatif ne soit localisé, la configuration %2$s sera utilisée.Si défini sur %s, cela se fait au premier plan, ce qui peut ralentir le chargement de la page.Si le nom de la catégorie n’est pas trouvé, la catégorie sera retirée de la liste lors de l’enregistrement.Si le cookie de connexion a été modifié récemment dans les réglages, veuillez vous déconnecter et vous reconnecter.Si l’identifiant d’étiquette n’est pas trouvé, l’étiquette sera retirée de la liste à l’enregistrement.S’il y a des questions, l’équipe est toujours heureuse d’y répondre sur le<a %s>forum de support</a>.Si vous configurez une valeur de moins de 30, les flux RSS ne seront pas mis en cache.Si vous utilisez OpenLiteSpeed, le serveur doit être redémarré une fois pour que les modifications prennent effet.Si vous utilisez plusieurs domaines pour un site et que vous avez plusieurs domaines dans le plan du site, veuillez laisser cette option désactivée afin que le robot explorateur sache qu’il doit explorer chaque domaine.Si vous rencontrez des problèmes, veuillez vous reporter au numéro de rapport dans votre message de support.Si vous désactivez un des réglages ci-dessus, veuillez supprimer les types de fichiers correspondants de la boîte %s.Si vous préférez ne pas avoir des affichages à la vitesse de la lumière, vous pouvez désactiver cette extension.Si votre site contient du contenu public que certains rôles utilisateur peuvent voir, mais que d’autres rôles ne peuvent pas, vous pouvez spécifier un groupe variable pour ces rôles utilisateur. Par exemple, la spécification d’un groupe variable par l’administrateur permet d’avoir une page distincte en cache publique adaptée aux administrateurs (avec des liens "modifier", etc.), tandis que tous les autres rôles utilisateur voient la page publique par défaut.Les iframes contenant ces noms de classe ne seront pas chargées en différé.Les iframes ayant ces noms de classe parent ne seront pas chargées en différé.Ignorez certaines chaînes de requête lors de la mise en cache. (%s LSWS nécessaire)Groupes d’images préparésInformation d’imageOptimisation d’imageRéglages d’optimisation des imagesRésumé d’optimisation des imagesDimensions de groupe de la miniature d’imageRemplacement de l'image WebPFichiers image manquantsImages tiréesImages demandéesLes images contenant ces noms de classes ne seront pas chargées en différé.Les images n'ont pas pu être récupéréesTirage des images échouéImages qui ont échoué avec d’autres erreursLes images ayant ces noms de classe de parent ne seront pas chargées en différé.Images non demandéesImages non encore recueilliesImages pas encore demandéesImages notifiées à tirerImages optimisées et tiréesImages précédemment optimiséesImages demandéesImages totalesLes images seront tirées automatiquement si la tâche cron est en cours d’exécution.Images avec fausse métaImporterImporter/exporterImporter des réglagesÉchec de l’import du à une erreur fichier.Fichier de réglages %s bien importé.Améliorer la compatibilité HTTP/HTTPSAméliorez la vitesse de wp-admin grâce à la mise en cache. (peut rencontrer des données expirées)Amélioré parAfin d’éviter une erreur de mise à niveau, vous devez utiliser la version %1$s ou ultérieure avant de pouvoir mettre à niveau vers la version %2$s.Inclure le CSSInclure les types de fichierInclure les imagesInclure le JSInclure les CSS externes et les CSS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par CSS Combine.Inclure les JS externes et les JS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par JS Combine.Répertoires inclusLibrairie CSS Async en ligneInstallerInstaller %sInstaller DoLogin SecurityInstaller maintenantClic instantanéIntervalle entre chaque exécutionIP non valideCookie de connexion non valide. Caractères non valides trouvés.Cookie de connexion non valide. Veuillez vérifier le fichier %s.Règle de réécriture non valideIl est <b>fortement</b> recommandé que la compatibilité avec d’autres extensions de d’abord tester sur un seul/quelques sites.Ce sera converti à la volée en un texte indicatif base64 SVG.Combiner JSCombiner les JS externes et en ligneDifférer le JSJS différé exclutJS excluMinifier JSRéglages JSRejoindre la communauté Slack LieteSpeedRejoignez-nous sur SlackRejoignez la communauté %s.N’utilisez pas cette option pour utiliser des textes indicatifs en couleur.LQIPCache LQIPGénérateur de cloud de LQIPLQIP exclutDimensions minimales de LQIPQualité de LQIPAperçu de l’image LQIP pour la taille %sLes requêtes LQIP ne seront pas envoyées pour les images dont la largeur et la hauteur sont inférieures à ces dimensions.LSCacheLes fonctions de mise en cache de LSCache sur cette page sont actuellement indisponibles !Un plus grand nombre générera une meilleure qualité de résolution de remplacement, mais donnera lieu à des fichiers plus volumineux qui augmenteront la taille des pages et consommeront plus de points.Plus grand queDernier tirageDernière requêteDernier calculéDurée de dernière exécution complète pour tous les robots explorateursDernier exportéDernier généréDernier importéDernier intervalleDernier tirage initié par cron à %s.Dernière exécutionDernière demandeDernier coût demandéChargement différé des iframesLe nom de la classe d’image de chargement différé exclutExclut l’image du chargement lentChargement différé des imagesApprendre plusApprendre plusLier à QUIC.cloudListe des agents utilisateurs mobileÉnumérer les types de publication où chaque élément de ce type devrait avoir son propre CCSS généré.Indiquez au sélecteur CSS que son style doit toujours être contenu dans l’UCSS.Les fichiers CSS listés ou le code CSS en ligne ne seront pas minifiés/combinés.Les fichiers JS listés ou le code JS en ligne ne seront pas différés.Les fichiers JS listés ou le code JS en ligne ne seront pas minifiés/combinés.Les fichiers JS listés ou le code JS en ligne ne seront pas optimisés par %s.Les URL listées ne généreront pas d’UCSS.Les images listées ne seront pas chargées lentement.LiteSpeed CacheCDN LiteSpeed CacheCrawler LiteSpeed CacheTableau de bord LiteSpeed CacheOptimisation de la base de données LiteSpeed CacheRéglages généraux de LiteSpeed CacheOptimisation d’image LiteSpeed CacheRéglages de cache de réseau LiteSpeed CacheOptimisation des pages de LiteSpeed CacheCache LiteSpeed Tout purgerRéglages LiteSpeed CacheBoîte à outils LiteSpeed CacheModifier le .htaccess LiteSpeed CacheL’extension LiteSpeed Cache est installée !Mise à niveau réussie de LiteSpeed Cache. Note : en raison de modifications dans cette version, les réglages %1$s et %2$s ont été désactivés. Veuillez les réactiver manuellement, puis vérifier que la mise en page de votre site est correcte et que vous n’avez aucune erreur JS.Optimisation de LiteSpeedRapport LiteSpeedTechnologies LiteSpeedCharger le CSS de manière asynchroneCharger les Google Fonts de manière asynchroneCharger le JS en diféréChargez les iframes uniquement lorsqu'elles entrent dans la fenêtre d'affichage.Charger les images uniquement lorsqu’elles entrent dans la fenêtre d’affichage.LocalisationRéglages de localisationActiver les cookiesLimite de taille de fichier journalVue du journalValeurs de cookie de demande de journal.Cookie de connexionTexte indicatif d’image de faible qualitéMoDoit être unique d’autres applications web.GérerExécution manuelleCarteMarquer cette page commeValeur maximalePeut-être ultérieurementPeut-être plus tardMédias exclusRéglages des médiasMessage du serveur QUIC.cloudMéthodeMinimiser les fichiers CSS et le code CSS en ligne.Minifier le contenu HTML.Minifier les fichiers JS et les codes JS en ligne.Valeur minimaleManquerArchive mensuellePlusPlus d’informations sur les commandes disponibles peuvent être trouvées ici.Plus de réglagesD’autres réglages sont disponibles dans le menu %sRemarqueRemarque : QUIC.cloud CDN et Cloudflare n’utilisent pas de CDN mapping. Si vous utilisez uniquement QUIC.cloud ou Cloudflare, laissez ce réglage %1$s.NotificationRemarque :Remarque : le cookie de connection de base de données ne correspond pas à votre cookie de connexion.Tableau de bord du réseauActiver le cache sur le réseauNouvelle version développeur disponible !Nouvelle version disponible !La nouvelle version développeur %s est disponible dès maintenant.La nouvelle version %s est maintenant disponible.Prochaine heure de demande disponible : <code>après %s</code>Aucun nœud de cloud disponible.Aucune zone Cloudflare disponibleAucune sauvegarde du fichier original n’existe.Aucune sauvegarde du fichier WebP non optimisé n’existe.Aucun service cloud n’est actuellement utiliséEncore aucun fichier méta de crawler généréAucune nouvelle image recueillie.Aucune optimisationAucun espace et sensible à la casse.Aucune image valide trouvée par le serveur cloud dans la demande actuelle.Aucune image valide trouvée dans la demande actuelle.Aucun plan de site valide n’a été analysé par le robot explorateur.Impossible à mettre en cacheNon disponiblePas sur liste de refusRemarqueRemarquesNotificationNotificationsBien notifié Cloudflare de tout purger.Bien notifié Cloudflare de définir le mode développement à %s.Serveur web LiteSpeed notifié de purger les entrées CSS/JS.Serveur web LiteSpeed notifié de purger toutes les entrées LSCache.Notifié le serveur web LiteSpeed de purger toutes les pages.Notifié LiteSpeed ​​Web Server de purger les pages d'erreur.Serveur LiteSpeed notifié pour tout purger.LiteSpeed Web Server a été notifié de purger la page d’accueil.Serveur LiteSpeed notifié pour tout purger.InactifActifOuObjetMise en cache d’objetRéglages du cache objetCache d’objet non activé.Une fois enregistré, il sera harmonisé avec la liste actuelle et complété automatiquement.Une ou plusieurs images tirées ne correspondent pas à l’image md5 notifiéeUne par ligne.Ne seront remplacés uniquement les attributs listés ici.Uniquement disponible lorsque %s est installé.Uniquement les fichiers de ces répertoires seront dirigés vers le CDN.Journaliser uniquement les pages répertoriées.Optimiser uniquement les pages pour les visiteurs invités (non connectés). Si cette option est désactivée, les fichiers CSS/JS/CCSS seront doublés par chaque groupe d’utilisateurs et utilisatrices.N'appuyez sur le bouton que si la tâche cron de tirage est désactivée.Cache OpcodeLe cache opcode n’est pas activé.Utilisateurs d’OpenLiteSpeed, veuillez vérifier ceciOpérationÉtat de l’optimisationRésumé d’optimisationOutils d’optimisationOptimiser la livraison CSS.Optimiser sans perteOptimiser les images originalesOptimiser les tablesOptimiser toutes les tables dans votre base de donnéesOptimiser pour les visiteurs uniquementOptimiser les images et enregistrer les sauvegardes des originaux dans le même dossier.Optimiser les images en utilisant la compression sans perte.Optimiser les images avec notre serveur QUIC.cloudLe fichier WebP optimisé a expiré et a été effacé.Optimisé toutes les tables.Nom de l’optionFacultatifFacultatif en cas d’utilisation d’un jeton d’API.Options enregistrées.Originale%s originauxURL originalesLes autres cases à cocher seront ignorées.Notre %s n’était pas en liste d’acceptation.Sorties du journal de débogage WordPress.Solde du paiement au fur et à mesureLa constante PHP %s est prise en charge.Temps de chargement de la pageScore PageSpeedPagesRéussieMot de passeLien de connexion sans mot de passeLe chemin doit finir par %sLes chemins contenant ces chaînes de caractères seront mis en cache sans tenir compte des réglages de non mise en cache.Les chemins contenant ces chaînes de caractères seront forcés à être mis en cache public, indépendamment des réglages qui ne peuvent pas être mis en cache.Les chemins contenant ces chaînes de requête ne seront pas mis en cache.Les chemins contenant ces chaînes ne seront pas servis par le CDN.Paiement au fur et à mesureStatistiques sur l’utilisation du paiement au fur et à mesureConnexion persistanteVeuillez ne pas partager le lien sans mot de passe ci-dessus avec qui que ce soit.Veuillez activer LiteSpeed Cache dans les réglages de l’extension.Veuillez activer le module LSCache au niveau du serveur ou demandez à votre hébergeur.Veuillez lire tous les avertissements avant d’activer cette option.Veuillez voir %s pour plus de détails.Veuillez voir <a %s>Connexion de WP-Cron au planificateur de tâches du système</a> pour apprendre comment créer le système de tâche cron.Veuillez effectuer un test approfondi lorsque vous activez une option dans cette liste. Après avoir modifié les réglages Minifier/Combiner, veuillez faire une purge totale.Veuillez essayer après %1$s pour le service %2$s.Veuillez vérifier que vos autres extensions ne bloquent pas les appels à l’API REST, mettez nos adresses IP sur une liste d’acceptation ou contactez l’administrateur/administratrice de votre serveur pour obtenir une assistance.Veuillez visiter la page <a %s>d’informations</a> sur la façon de tester le cache.PortID de l’articleRévisions d’articleArchive de type de contenuLa liste prédéfinie sera également combinée avec les réglages ci-dessus.Le pré-chargement des DNS peut réduire la latence pour les visiteurs.Conserver les données EXIF (copyright, GPS, commentaires, mots clés, etc.) lors de l'optimisation.Conserver les données EXIF/XMPCliquez sur le bouton %s pour stopper le test bêta et revenir à la version actuelle depuis le répertoire des extensions WordPress.Appuyez sur le bouton %s pour utiliser le commit GitHub le plus récent. Master est pour la version candidate et Dev est pour les tests expérimentaux.Empêcher les polices Google de charger sur toutes vos pages.Empêcher tout journal de débogage des pages listées.Empêcher tout chargement différé des pages listées.Empêche toute optimisation des pages listées.PrivéCache privéOccurrence du cache privéURI mises en cache privéesCaches privésCache privéMettre en cache privé le panierMettre en cache privé le panier lorsqu'il n'est pas vide.Mettre en cache privé les commentateurs qui ont des commentaires en attente. La désactivation de cette option servira les pages ne pouvant pas être mises en cache aux commentateurs. (LSWS %s nécessaire)Mettre en cache privé les pages interface utilisateur pour les utilisateurs connectés. (LSWS %s nécessaire)Intervalle de mise à jour de produitPubliqueCache publicOccurrences du cache publicCaches publicsLe tirage du cron est en cours d’exécutionTirer les imagesExtrait %d image(s)L’image WebP md5 tirée ne correspond pas à l’image WebP md5 notifiée.PurgerPurger les erreurs %sPurger les pages d’erreur %s.Tout purgerPurger tous les crochetsTout purger lors d'une mise à niveauPurger par…Tout purgerPurger la page d’accueilPurger la listePurger les pagesPurger les réglagesBien purger tous les caches d’objets.Purger tous les caches d'objetsPurger les catégories uniquement quand l’état du stock change.Purger la catégorie %sPurger les pages par nom de catégorie - par exemple,%2$s devrait être utilisé pour l’URL%1$s.Purger les pages par ID d’article.Purger les pages par URL relative ou complète.Purger les pages par nom d’étiquette - par ex.,%2$s devrait être utilisé pour l’URL %1$s.Purger les produits et catégories uniquement quand l’état du stock change.Purger le produit au changement de la quantité ou de l’état du stock.Purger le produit uniquement quand l’état du stock change.Purger l'étiquette %sPurger les entrées LiteSpeed Cache créées par cette extensionPurger les entrées de cache créées par cette extension à l’exception des caches CSS et LQIP critiquesPurger cette pagePurger l’URL %sTout purgé !Tous les caches ont bien été purgés.Purgé le blog !Purgé l’url !Purgé !%1$s poussées vers le serveur Cloud, %2$s acceptées.QUIC.cloudCDN QUIC.cloudStatistiques sur l’utilisation des services QUIC.cloudLes chaînes de requête contenant ces paramètres ne seront pas mises en cache.File d’attente bien vidée.Évaluer %s sur %sLire la documentation LiteSpeedValeur recommandée : 28800 secondes (8 heures).ID de base de données RedisActualiser la carte du robot explorateurActualiser la clé de domaineActualiser le cache  Gravatar par cron.Actualiser le temps de chargement des pagesActualiser le score de la pageQuota quotidien restantSupprimer l’URL du CDNRetirer les polices GoogleRetirer les balises NoscriptSupprimer les sauvegardes d’originalesSupprimer les sauvegardes de l’image originaleRetirer les chaînes de requêteRetirer les emoji WordPressSupprimer toutes les requêtes/résultats d'optimisation d'image précédentes, annulez les optimisations terminées et supprimer tous les fichiers d'optimisation.Supprimer toutes les requêtes d’optimisation d’images inachevées.Supprimer la simulation de cookieRetirer de la liste de refusRetirer les chaines de requête des ressources statiques internes.Sauvegardes bien supprimées.Remplacer %1$s avec %2$s.RapportDate de rapportNuméro de rapportDemander la clé du domaineDemander les versions WebP des images originales lors de l’optimisation.Demande envoyée. Veuillez patienter, puis actualisez la page pour voir la notification d’approbation.DemandéDemandes en file d’attenteScanner à nouveau les nouvelles miniatures%d images ont bien été réanalysées.Bien été réanalysées.Réinitialiser tous les réglagesRéinitialiser les réglagesRéinitialiser la positionRéinitialisation effectuée.Réinitialiser l’intégralité du cache opcodeBien réinitialiser l’ensemble du cache opcode.Bien réinitialiser les données optimisées.Texte indicatif responsiveLes textes indicatif d’image responsive peuvent aider à réduire le remaniement de la mise en page lorsque les images sont chargées.Restaurer depuis une sauvegardeFichier original bien restauré.Les résultats peuvent être vérifiés dans la <a %s> bibliothèque des médias</a>.Âge maximal des révisionsNombre maximum de révisionsLes révisions plus récentes que ce nombre de jours seront conservées lors du nettoyage des révisions.Rôle excluSimulation de rôleDurée d’exécutionFréquence d’exécutionExécuter la file d’attente manuellementLa fréquence d’exécution est définie par le réglage d’intervalle entre exécutions.Durée d’exécution du précédent robot explorateurEn cours d’exécutionSyntaxe : alphanumérique et "_".Enregistrer les modificationsEnregistrer les transients dans la base de données lorsque %1$s est %2$s.EnregistréRechercher toute nouvelle taille de miniature d'image non optimisée et renvoyez les requêtes d'optimisation d'image nécessaires.Heure de purge planifiéePurge planifiée d’URLsVoyez <a %s>Introduction pour l’activation du robot explorateur</a> pour les informations détaillées.Sélectionnez "Tous" s'il y a des widgets dynamiques liés aux articles sur les pages autres que la page d’accueil.Sélectionnez ci-dessous pour les options « purger par ».Sélectionnez uniquement les types d'archives qui sont actuellement utilisées, les autres peuvent être laissées décochées.Sélectionnez quelles pages seront purgées automatiquement lorsque des articles sont publiés/mis à jour.Les rôles sélectionnés seront exclus de toutes les optimisations.Les rôles sélectionnés seront exclus du cache.Envoyer une requête d’optimisationEnvoyez ce rapport à LiteSpeed. Référez-vous à ce numéro de rapport lorsque vous publiez sur le forum de support WordPress.Envoyer à LiteSpeedSéparer le cache du CCSS par type de publication.Séparer les URL de ca CCSSDes fichiers CSS critiques distincts seront générés pour les chemins contenant ces chaînes.Servir le périméServir tous les fichiers CSS via le CDN. Cela affectera tous les fichiers CSS WP en file d’attente.Servir tous les fichiers JavaScript via le CDN. Cela affectera tous les fichiers JavaScript WP en file d’attente.Servir tous les fichiers d’image via le CDN. Cela affectera toutes les pièces jointes, les balises HTML %s et les attributs CSS %s.IP du serveurLimite de chargement du serveurValeur max. de serveur autoriséeValeur min. de serveur autoriséeValeur imposée par le serveurVariable·s de serveur %s disponible·s pour surpasser ce réglage.Définir une largeur et une hauteur explicites sur les éléments images pour réduire les changements de mise en page et améliorer le CLS (une métrique Core Web Vitals)Définissez ceci pour ajouter %1$s à toutes les règles %2$s avant de mettre en cache le CSS pour spécifier comment les polices doivent être affichées lors du téléchargement.Réglez sur %1$s pour interdire les battements de cœur sur %2$s.Paramétrage des en-têtes personnalisésRéglagesRaccourcir les chaînes de requêtes dans le journal de débogage pour améliorer la lisibilité.Afficher l’état du crawlerAméliorez significativement le temps de chargement en remplaçant les images par leurs versions %s optimisées.Réglages de simulationL’URL du site à servir via le CDN. À partir de %1$s. Par exemple : %2$s.Site non reconnu. La clé de domaine a été automatiquement supprimée. Veuillez en demander une nouvelle.Liste du plan du siteRéglages du plan du siteDélai d’attente du plan du siteTotal du plan de siteTailleListe des tailles dans la file d’attente en attente de cronPlus petit queCertains fichiers d’image optimisés ont expiré et ont été effacés.Certains thèmes et extensions ajoutent des ressources par requête PHP.Commentaires indésirablesSpécifiez le nombre de threads à utiliser lors du crawl.Précisez une image base64 à utiliser comme indicative pendant que les autres images terminent de charger.Spécifiez un code d’état HTTP et le nombre de secondes pour mettre cette page en cache, séparés par un espace.Spécifiez un SVG à utiliser comme texte indicatif lors de la génération en local.Spécifiez les règles CSS critiques pour le contenu au-dessus du pli lorsque vous activez %s.Spécifiez combien de temps en secondes avant que le crawler initie un nouveau crawl entier du plan de site.Spécifiez combien de temps, en secondes, les fichiers Gravatar sont mis en cache.Précisez combien de temps, en secondes, les appels REST sont mis en cache.Spécifiez une durée en secondes, pour la mise en cache des flux RSS.Spécifiez combien de temps, en secondes, les pages privées sont mises en cache.Spécifiez combien de temps, en secondes, les pages publiques sont mises en cache.Spécifiez combien de temps, en secondes, la page d’accueil est mise en cache.Précisez l’intervalle de battement de cœur de %s en secondes.Précisez la taille maximale du fichier journal.Précisez le nombre de révisions les plus récentes à conserver lors du nettoyage des révisions.Précisez le mot de passe utilisé pour la connexion.Précisez la qualité lors de la génération du LQIP.Précisez la couleur SVG du texte indicatif responsive.Précisez l’heure pour purger la liste "%s".Précisez le délai d’attente lors de l’exploration de chaque URL.Précisez le délai d’attente lors de l’analyse du plan du site.Spécifiez le temps en microsecondes pour le délai entre requêtes durant une exploration.Spécifiez le temps en secondes pour la durée de l’intervalle de crawl.Précisez le temps en secondes pour le temps entre chaque intervalle d’exécution.Spécifiez quels attributs des éléments HTML seront remplacés avec CDN Mapping.Spécifiez quels attributs d’élément seront remplacés avec WebP.Liens de type de fichier statique à remplacer par des liens CDN.ÉtatStopper le chargement d’emoji WordPress.org. Les emojis par défaut du navigateur seront affichés à la place.Optimisation du stockageStockez Gravatar localement.Stocker les transientsBien exploréRésuméBien sûr que j’adorerais évaluer !SwapRevenir à l’utilisation d’images optimisées sur votre siteCommutation d’image réussie.Commuté pour bien optimiser le fichier.Synchronisation de l’allocation de crédit avec le serveur cloud bien effectuée.Synchroniser les données depuis le CloudInformations systèmeTTLTableauÉtiquetteIgnorer temporairement le cache Cloudflare. Cela permet de voir en temps réel les modifications apportées au serveur d'origine.Archive de terme (inclure catégorie, étiquette et taxinomie)Merci d’utiliser l’extension LiteSpeed Cache !L’option IP d’admin ne génère que des messages de journalisation sur les requêtes provenant des IPs d'admin.L’extension LiteSpeed ​​Cache est utilisée pour mettre les pages en cache - un moyen simple d’améliorer les performances du site.Le rappel de publication vers %s a échoué.Les URLs ci-dessus (une par ligne) seront automatiquement purgées à l’heure fixée dans l’option "%s".Ces URLs seront comparées à la variable serveur REQUEST_URI.Les nonces ci-dessus seront automatiquement convertis en ESI.La durée, en secondes, pendant laquelle les fichiers seront stockés dans le cache du navigateur avant d’expirer.Le cache doit faire la distinction de qui est connecté dans quel site WordPress afin de mettre en cache correctement.Le cookie réglé ici sera utilisé pour cette installation WordPress.La fonctionnalité de robot explorateur n’est pas activée sur le serveur LiteSpeed. Veuillez consulter votre administrateur serveur ou votre hébergeur.Le robot explorateur analyse le plan du site et le sauvegarde dans la base de données avant l’exploration. Lors de l’analyse du plan du site, l’abandon du domaine peut permettre d’économiser du stockage en base de données.Le robot explorateur utilisera votre plan de site XML ou votre index de plan de site. Saisissez l’URL complète de votre plan de site ici.La base de données a été mise à niveau en arrière-plan depuis %s. Ce message disparaîtra une fois la mise à niveau terminée.Le cookie de connexion par défaut est %s.Le rapport d’environnement contient des informations détaillées sur la configuration WordPress.Les options suivantes sont sélectionnées, mais ne sont pas modifiables dans la page des réglages.Le réglage de la qualité de compression d’image de WordPress sur 100.Le dernier fichier de données estLa liste sera fusionnée avec les nonces prédéfinis dans votre fichier de données local.Les journaux seront sortis en %s.La charge moyenne maximale du serveur est autorisée lors de l’exploration. Le nombre de threads de robot explorateur en cours d’utilisation sera activement réduit jusqu'à ce que la charge moyenne du serveur tombe sous cette limite. Si cela ne peut pas être réalisé avec un seul thread, l’exécution du robot explorateur actuel sera terminée.L’administrateur réseau sélectionné utilise les configurations du site principal pour tous les sous-sites.Le réglage administrateur réseau peut être remplacé ici.Le prochain crawl complet de plan de site débutera leLe sélecteur doit exister dans le CSS. Les classes parentes dans le HTML ne fonctionneront pas.Le serveur déterminera si l’utilisateur est connecté grâce à l'existence de ce cookie.Le réglage %s est actuellement activé.Le site n’est pas enregistré sur QUIC.cloud.Ensuite, un autre WordPress est installé (non multisite) sur %sIl y a deux raisons pour lesquelles nous pourrions ne pas être en mesure de communiquer avec votre domaine :Il y a une installation de WordPress pour %s.Il y a une file d’attente qui n’est pas encore tirée. Informations sur la file d’attente : %s.Un problème est survenu lors de la récupération de votre clé de domaine. Veuillez cliquer sur le bouton %s pour réessayer.Ces images ne génèrent pas de LQIP.Ces options sont uniquement disponibles avec LiteSpeed Enterprise Web Server ou QUIC.cloud CDN.Ces réglages sont uniquement destinés à des utilisateurs avancés.Utilisation de ce moisCette action doit être utilisée uniquement si les éléments sont incorrectement mis en cache.Cela peut être géré à partir de l’onglet %1$s%2$s.Cela peut être défini dans %2$s comme utilisant la constante %1$s, en prenant ce réglage en priorité.Cela peut améliorer le temps de chargement de la page en réduisant les requêtes HTTP initiales.Cela peut améliorer la qualité, mais peut entraîner des images plus grandes que la compression avec perte.Cela peut améliorer la vitesse de chargement des pages.Cela peut améliorer votre score de vitesse dans des services tels que Pingdom, GTmetrix et PageSpeed.C’est irréversible.C’est pour tester la compatibilité avant d’activer le cache pour tous les sites.Cela peut entraîner une charge importante sur le serveur.Ce message indique que l’extension a été installée par l’administrateur du serveur.Cette option retirera toutes les balises %s du HTML.Ce processus est automatique.Ce réglage est surchargé par le réglage du réseauCe réglage est surchargé par le réglage du site principalCe réglage est utile pour ceux qui ont plusieurs applications web avec le même nom de domaine.Ce réglage modifiera le fichier .htaccess.Ce site utilise la mise en cache afin de faciliter un temps de réponse plus rapide et une meilleure expérience utilisateur. La mise en cache stocke potentiellement une copie de chaque page web affichée sur ce site. Tous les fichiers de cache sont temporaires et ne sont jamais accessibles à un tiers, sauf si cela est nécessaire pour obtenir le support technique du fournisseur de l’extension de cache. Les fichiers cache expirent selon une planification fixée par l’administrateur du site, mais peuvent facilement être purgés par l’administrateur avant leur expiration naturelle, si nécessaire.Cela purgera uniquement la page d’accueilCela purgera uniquement les pagesCela va affecter toutes les balises contenant les attributs : %s %s %s.Cela générera également une clé d’API à partir du serveur LiteSpeed.Cela effacera tout dans le cache.Cela supprimera tous les fichiers Gravatar mis en cacheCela supprimera tous les fichiers CSS critiques générésCeci supprimera tous les fichiers indicatif LQIP d’image générésCela supprimera tous les fichiers CSS uniques générésCeci désactivera LSCache et toutes les fonctionnalités d’optimisation à des fins de débogage.Cela désactivera la page des réglages sur tous les sous-sites.Cela permettra le cron du robot explorateur.Cela exportera tous les réglages actuels de LiteSpeed Cache et les enregistrera en tant que fichier.Cela va générer des requêtes supplémentaires au serveur, ce qui augmentera la charge du serveur.Ceci générera le texte indicatif avec les mêmes tailles que l’image si elle a des attributs largeur et hauteur.Cela va importer les réglages via un fichier et remplacer tous les réglages LiteSpeed Cache actuels.Cela augmentera la taille des fichiers optimisés.Ceci mettra en ligne la bibliothèque CSS asynchrone pour éviter le blocage du rendu.Cela purgera uniquement toutes les entrées CSS/JS minifiées/combinées.Cela va réinitialiser tous les réglages à ceux par défaut.Fils de discussionDélai d’exécution de la demande précédenteDélai dépasséPour explorer un cookie particulier, saisissez son nom et les valeurs que vous souhaitez explorer. Les valeurs doivent être uniques par ligne, et peuvent inclure une ligne vierge. Il y aura un robot explorateur créé par valeur de cookie, par rôle simulé.Pour crawler le site comme utilisateur connecté, saisissez les ID utilisateur à simuler.Pour définir un TTL personnalisé pour une URL, ajoutez un espace suivi de la valeur TTL à la fin de l’URL.Pour avoir une correspondance exacte, ajoutez %s  à la fin de l’URL.Pour activer la fonctionnalité suivante, activez l’API Cloudflare dans les réglages CDN.Pour exclure %1$s, insérez %2$s.Pour générer un lien sans mot de passe pour un accès à l’équipe de support de LiteSpeed, vous devez installer %s.Pour accorder un accès wp-admin à l’équipe de support de LiteSpeed, veuillez générer un lien sans mot de passe pour l’utilisateur actuellement connecté qui sera envoyé avec le rapport.Afin de s’assurer que notre serveur peut communiquer avec le vôtre sans problème et que tout fonctionne bien, pour les quelques premières demandes, le nombre d’images autorisées dans une seule requête est limité.Pour gérer les options de QUIC.cloud, veuillez visiterPour correspondre au début, ajoutez %s au début de l'élément.Pour éviter que les %s soient mises en cache, saisissez-les ici.Pour éviter de remplir le disque, ce réglage doit être désactivé lorsque tout fonctionne.Pour rendre le nom d’hôte CDN aléatoire, définissez plusieurs noms d’hôte pour les mêmes ressources.Pour tester le panier, visitez la <a %s>FAQ</a>.Pour utiliser les fonctions de mise en cache, vous devez avoir un serveur web LiteSpeed ou utiliser un CDN QUIC.cloud.OutilBoîte à outilsTotalRéduction totaleUtilisation totaleTotal des images optimisées ce mois-ciRétroliens/pingsCommentaires mis à la corbeilleArticles mis à la corbeilleEssayez la version GitHubPersonnalisationRéglages de personnalisationDésactiverActiverActiver la mise en cache des pages publiques pour les utilisateurs connectés et servir la barre d’administration et le formulaire de commentaire via des blocs ESI. Ces deux blocs ne seront pas mis en cache, sauf s’ils sont activés ci-dessous.Activez pour contrôler les battements de cœur dans l'éditeur de l’interface d’administration.Activez pour contrôler les battements de cœur dans l’interface d’administration.Activez pour contrôler les battements de cœur sur l’interface publique.Activer la mise à niveau autoActivez cette option pour que LiteSpeed Cache soit mis à jour automatiquement, chaque fois qu’une nouvelle version est diffusée. Si inactif, mettre à jour manuellement comme d’habitude.Activez cette option pour afficher automatiquement les dernières nouvelles, y compris les correctifs, les nouvelles versions, les versions bêta disponibles et les promotions.Aperçu du tweetTweeter ceciURI exclutLes chemins d’URI contenant ces chaînes ne seront pas mis en cache comme publics.URLListe d’URL dans la file d’attente de cronRègle de cache inattendue %2$s trouvée dans le fichier %1$s. Cette règle peut amener les visiteurs à voir d’anciennes versions de pages en raison de la mise en cache des pages HTML par le navigateur. Si vous êtes sûr que des pages HTML ne sont pas mises en cache par le navigateur, ce message peut être ignoré.(<a %3$s>En apprendre plus</a>)CSS uniqueErreur inconnueLettre à jour %s maintenantMettre à niveauBien mis à niveau.UtilisationStatistiques d’utilisationUtilisez %1$s dans %2$s pour indiquer que ce cookie n’a pas été défini.Utiliser la fonctionnalité d’API %s.Utiliser le mappage CDNUtilisez la page d’accueil TTL pour la page boutiqueUtiliser le réglage admin du réseauUtiliser les fichiers optimisésUtiliser les fichiers originauxUtiliser les configurations du site principalUtilisez le service de génération de LQIP (Low Quality Image Placeholder) de QUIC.cloud pour une prévisualisation responsive des images pendant le chargement.Utilisez le service en ligne QUIC.cloud pour générer des CSS uniques.Utilisez la bibliothèque Web Font Loader pour charger les polices Google de manière asynchrone tout en laissant les autres CSS intacts.Utilisez des connexions persistantes pour accélérer les opérations de cache.Utiliser le dernier commit GitHub de développementUtiliser le dernier commit GitHub de développement/maîtreUtiliser le dernier commit GitHub maîtreUtiliser la dernière version de WordPressUtiliser des images originales (non optimisées) sur votre siteUtilisez le format %1$s ou %2$s (élément est facultatif).Utilisez cette section pour permuter les versions d’extension. Pour tester la version bêta d'un commit GitHub, saisissez l’URL du commit dans le champ ci-dessous.Nom d’utilisateurUtilisation de la version optimisée du fichier. Les variables %s seront remplacées par la couleur d’arrière-plan configurée.Les variables %s seront remplacées par les propriétés de l’image correspondante.Varier le groupeVoir les détails de la %1$s version %2$sVoir le .htaccessVisiter le forum de support LSCWPVisitez mon tableau de bord sur QUIC.cloudVisitez le site en déconnecté.AttentionAvertissement : Les cookies de connexion du fichier .htaccess et de la base de données ne correspondent pas.En attenteEn attente d’approbationEn attente d’actualisationEn attente d’explorationSouhaitez-vous vous connecter avec les autres utilisateurs LitePeed ?AvertissementVoir l’état de crawlerNous sommes bons. Aucune table n’utilise le moteur MyISAM.Nous travaillons dur pour améliorer votre expérience de service en ligne. Le service sera indisponible pendant que nous travaillons. Nous nous excusons pour tout inconvénient.WebPAttribut WebP à remplacerWebP pour srcset extraFichier WebP réduit de %1$s (%2$s)WebP économisé %sBienvenue chez LiteSpeedQu’est-ce qu’un groupe ?Qu’est-ce qu’un groupe d’images ?Lorsqu’un visiteur survole un lien de page, préchargez cette page. Cela accélérera la visite de ce lien.Lorsque vous désactivez le cache, toutes les entrées mises en cache pour ce site seront purgées.Lorsque activé, le cache sera vidé automatiquement lors d’une mise à jour de tout extension, thème ou du cœur WordPress.Lorsque cette option est définie à %s, elle chargera également les polices Google de manière asynchrone.Widget de cache TTL :Wildcard %1$s pris en charge (correspond à zéro ou plusieurs caractères). Par exemple, pour faire correspondre %2$s et %3$s, utilisez %4$s.Wildcard %s pris en charge.Avec ESI (Edge Side Includes), les pages peuvent être envoyées à partir du cache pour les utilisateurs connectés.Si le CDN QUIC.cloud est activé, vous pouvez toujours voir les en-têtes de cache de votre serveur local.WooCommerceRéglages WooCommerceContrôle de la qualité des images WordPressL’intervalle valide de WordPress est de %s secondesL’intervalle valide de WordPress est de %s secondes.WpW : cache privé vs. cache publicArchive annuelleVous pouvez saisir juste une partie du domaine.Vous pouvez rapidement passer de l’utilisation de fichiers d’images originaux (versions non optimisées) à celle de fichiers d’images optimisés. Cela affectera toutes les images de votre site web, qu’il s’agisse de la version normale ou de la version webp si disponible.Vous pouvez demander un maximum de %s images à la fois.Vous pouvez aussi activer la mise en cache du navigateur dans l’admin serveur. <a %s>En apprendre plus sur les réglages du cache navigateur LiteSpeed</a>.Vous pouvez transformer les codes courts en blocs ESI.Vous pouvez utiliser le code %1$s dans %2$s pour spécifier le chemin du fichier htaccess.Vous avez trop d’images notifiées, veuillez d’abord retirer les images notifiées.Vous avez trop de demandes d’images, veuillez réessayer dans quelques minutes.Vous venez de débloquer une promotion de QUIC.cloud !Vous devez cliquer sur le bouton %s si vous souhaitez associer ce site à un compte QUIC.cloud.Vous devez d’abord avoir %1$s avant de créer un lien vers QUIC.cloud.Vous ne pourrez pas annuler l’optimisation une fois les sauvegardes supprimées !Votre nom d’hébergeur ou adresse IP de %s.Votre clé/jeton d’API est utilisé pour accéder aux APIS %s.Votre adresse de messagerie sur %s.Votre IPL’adresse IP de votre serveurZéro, oucatégoriescookiesactuellement défini à %spar ex. utilisez %s ou %s.favicon.ico est appelé sur la majorité des pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjuste maintenantmicrosecondespixelsfournir plus d'informations ici pour aider l’équipe LiteSpeed dans le débogage.tout de suiteexécutionsecondesétiquettesagents utilisateur0df93e6a480f74771a4e4da28a94d870PKp][9��&m�Kzlitespeed-cache-es_ES.poUT	dL�hdL�hux�����\�nG���S�:k���hQ�R6'P$��B�SN6@�9�$�NO�g(ӏ�w��X�]���;_U�L�P�D�'��驪�����\��2��,�I��^R�tjŦ�ԅ�gJ��TFc�o��$J<�je��DI��
��~&Sm��	�����>7cm�Pc=�k[�zP�V���E�VN�Ht�R�����������g;ұx�C��Q�z�j��m���c������u���'��������_��Ϗ)���xy����i���vܷ�&-TZl��2(��Y�`�_�h,s��/_�<�<l�%�U�y�F&���Xt�k��\&��M>��"���r��2�Rt����|�R������Eb�^��}����ty��LG%p,�u�s�VE��E��;K�>��͒g��c���<��N6Ύw��{��ԇ����N��lϮ�჈��=�{zc�b�.�A��(S��Mdm�c�f��j�S�,���[�$z5b�Dd&~t��1���)��"�%����YEO�R��N��"%�G����X!ߖ�g�k���mt�m��Cq���N���E"��P�`.���'%%�5�6,��=�C����ܹw�-w��\���s�ʉ���T���Y;�t�r���)�W���>�tt=�cs�F���DƼ��	֭I\Ej�
���b
mgΩ:����c{Oe�Hp���נ!H�v���;�K5�KlK���c��=���8�26�� �'&�I'V2*�3��y�3��Y��U�~S�R���G�[�G�Q�Y�H����Δu�r�������L)��\Z(�b��Y�'����c�Enf��#\"��c
��-:���2P��
��
�;�;f�0�Up��m�ƈ�e�MgAGTsj\��d��T��\����+g�S��l#
�~��h,�jBZ8h���bLa�p<�a��l��%Ă�,c���u*��’d�>��y8W/#@J�8I�u/�|��G%�G� qc뉹��㙐9���p��9�_y�~���S9��t��7���b�C�5���&f�#�b���Õ�=��F�������^��Xn7R�5�H��w��[��b��4Ƒ��>�A�$Ȕ��������cޮ��
�|֊AͩT��Y��Ų��, ��^��,�]�<�c��ITo�-r�g�x�ۈ
�׬��ZIt�M�<]J�d]��{
=����P�oO�t��#Ԩ�����6F|e�>�5^o�g_�S������a��]4�:l<�IY��H�V�1�	&�NYb|c�[3��F�^�X��B3[����!h�Z�;��{�w��e����Y��	b��3#n!��D!U�7�s�:����%��xm9sy��e&4JL�u��
Ӥ����ud��ϡ�x�=��Jk��X���7�{z�P�:o7�!� ����on��!f���/�!ϟ�(����	q-ӱ���H'��m�< ��}��� p��{���fϗ�3˟J:ָ}"�&@
RX��2^�8�w��}|������{�o��w^e���1k-�ww�{���pjMȑ	ܖ�|�1�`��b�ݸQ��Wqrv�ƻ�����L�m�_C��64�����t���/���o4����a}F��Xt�Op��}-��|�_Oʘ{Ze�?���p�D����ձh0|��:���_�2��/����m��&|�,
���G��43���΃[�v��ua;�֍�ry�p�x���8W�h��c�~�M�}�������=�O=W���GÏk�N��-'�� `x�Zȼ����T��t>ɴ�-R��O��������SN�ʔ<uT�@�E2�d�S�J�H��I
D�R&�޲l�@8�hd7�|���,�"^ǥdI�|GɝB�`�a�����s�)���	�VEeAM�U&d_�ᇎ@���0lc$(���M��\ة���1Il'm��Є�78���N��f��Nc*�dd�:��:����3�0����U�aZ]�#=^fd�h]]/ZxYVޕ�b�>�)�qh'��U]�*�R(�aM�VT�@�䜗��m�r���Й+�
�	8L���˓��*��U��8�{\���|g%��G^�/:���#�G�ԤB)��qo;t�J�)Pd�p�m��d�M�\4s�W�i���]�an&�]
��Υ6�<z��9 t��*0��
(�7�q�}(u�*Y�Su��GNE5�[���T��J.;G
P�ikW7R.k%���BT)���J���?l�K�|�\ɢ��l�Jb��Kd3��E�$�����F|�u���S��T��A�g��S��jQ�f�IbFo�Z����Z�+d����+�:zG>42YP�F~�L�T��ie<�雡1�5�WTp��m��2-�V�Q���y��*�s'z;ƫ?�tK���#������		�.5�1�p��9|�ۿ��;P���W����6�݁���,��G��W7'�8�igc�xz(��ڏ����#��:V��eD�R�Rr��0N�/��E�
��g��B���
dD@�r
(iD����Hi��Yë" ��Z�]��U�{��C�(^��߈���뫋o_��篮_��o�_��Ͽ'��������U��Q��"�!��W�/~g��G���I��h��O�J�P��E�j\�L�Y
p�T���)(@G�G�W��m�N�)�	�	Ua�v��R��W{��ilt�*�~���{�y�i���ꩋ��īs�I���&��c��`�-���wM���a�_g:x�p:䵱��v��t|A�-��K3
�D��sFԒ7�ܥ�=�`!�!Ȥ�Q�Xu�N�}�H�0.|��7�z����K.(dQg�ڊ.���J��Ϋ�IP1]*�u4U'@��
I��|�F}�O�v�H�4�F�-f�َM��$�[9�t�axJ2�n��I{�D;*g��a����r�*%�,���j~ڎ���
���7�!=U�Y��kuz�v���u���v�dt2�cp$�����Up�q+]8�63��e1�r9��k��xT"������|�FU�^��Q���]5]�*!?�	�(�
��sˍ�,7SM�0��
at)���|�pJ����j��.P_KB�7#�Ƀ�3�~���&#G2��"�NM�L�rh���(���a{;��J�ZO2�j7�>�8�֍;piH�&�MLi��	!�	�r�S�*~\�S���R�<ʡZdf�+S鈛`��r*,�t��<3s*7'�a6��ɑD
��9����{R��_���&숗FQ�A>/ٿ���>��Gpk�����:4�n\?u!��,]_�;uc2��6��F�sN1�B�P����pښ��Ck�6�J?
�绱e��|INS|�So�`�|sf5L�LRe�F^T�E~��y4�Ӧ�W��M;7^��6?)
@ ��Q����Zq:V���	z�S�w�_S��K(�n&|�E���!�0G-���}G�[�]�"�K�C9&d�<bP3s����wZ�W���w�������+�\S�^F���¢��W�]��[�>Pw8C�+.�]�ۊ��W�̩��T�%|WΝ��՝�)RP.ʥHj��ґ+����|w��`���d0�f���wr��j�GW6�]VN;Z��s�((��?rsr�5�nQRm�=�I��<���X0�<Jw��
�X�c�y������Nֽ���l<��V
� d?p�
�7C23:�քЩ)�b�@��z<�c�c0�"�k�|��~����jW
wa��~�)�հ�˲d�N5��FcLB��;[�
�����NR�Jn�u��<�O>�n�A�[˃/+|�YhF�=9��aH�\�]�Z5����
���D�Ͱ��S����W�F���������~>ŁX��<@M�6]�ŽT�@Ҟθ�и���K�`��j��	�nT�Z�bhDa17�ȵ<	�jLV��y�~�0)�����p�7x��X\��l�b�.�h4u�alZT�&�%)4ɥP7#tcG����O��d�I)UTƇ���2���h� ��z3ѩ�}.�.cH��(���a={M��t$r�8�'ԚN�a�_+����T�q�����%^)�W�Ǥ`��,��c�>���#���J��ī6��8oO2RС�y�k�F�V�V{�����0�́"cnǭR��FKx��,����Ur�2��-��˩&�\���}��k��$�����Q�(�W[�=��F�BeHO�vL\%؇��$��&�x����a=uĥN�bȋO^8��E�VChqC�0�ݔ��a���n��^�;� ���*��_�5Z�:���m]JW�"wFR�D�IWA?�(���[�>���bW�пI�?c_�=C��\��Y�߹+O��~����!AL���o	��}pO.Vǃ���~;�//6�V	��\j��j�[}oֳ.JYMx�X�*��[Oş�ч�v�s�+�|��$��NM*R���K'\4�S�-Re�Ud�T�3W����z�i�x�Fl�)5aW��k�]k6��� 5��ƅq禨�^a�;��r����4����g72��V��Q��J>�C�\㌷|;x8�Qr&EB^;�A��b���_k�qBt2V�`�pƷޤWi&h$���>��a�.��ocT�R�UW�S9�d��h`$��{����!q�E%b��Pk�I�E��P}�b���<2����I؍�be���S�;S�eR���c�D
W��_=�F��B�(�:���s�	��\��'l�h֌�"Y�����V��c��*z�g}Ĺs�� �8����G��r3��}��������AH�����;��;��9�w�[�j�=ųTNtT���xk���Ƕt{'�DF*e�Z���n��F37'�,Z��l��������ZpV��'��0���T�9W��$�%1ԧՓ�N��c�a��k����X�+%+�|׻x�gV�$�*I63�4���m�7>Pc��a�i3��x{}V�5"˚rE�N����
.���M=��&��@�h����2]�[�-R5��wZ�1�pߟ\~{�Dl"L�*8�A�U=�c���2�vs��M>���d�}`��@��P�$��P�H��_V��J�Q-��>I׵��-bY���t~�{�F\����W�뽼N�1�ݼ'ԥ�ti	�mn
�KN�i�KC��/S���&؃%�S">ȿ�-��o�����k@�Z���IZYW��(璩�~�@g�%V���c?Q)e
5�/����-q�:mKΦ�cx|Zt�6q�6�:5���k�Vx��!��CEE@+�j���i˯5ܗܯP��4Z�R��N�K�"�zqL?dg������H!��{B�Ϩ7B��1b/�bcI�v��1�<\T���c���O�T��3h�2��F�X9���L���F'�٠�a"��2UoM.�w���[['�؍�~��&�#�y;ljR�)j3]J�ʴ(���"&bwҢ��uDE�-U�W�^l���^�c�B�s`uI�r"���w*���v�ت�!3� =���
����6��E�J%}�
����mZL#�k���#�#�����_��/6���*���"o�m^'-K:ū
�u�����]�#��q��_����.�T�ʬ���)ϕ�]%��%n��`��~f�O�n*�&�K!��r��^q�l�`:���:�1'6���:n�a�\n���<�w5�K�능�$U0\C�K��cמ����/	���U6��2?�7�v�k������{p������	�o+O�s�x��i��Gw���d�q�*'�ʑ/s�ow��I�d���bU�ѝ	0t����f<2#w<XAFf�Fsw#i�f^f�d2G���AgRh�`�&Ճ
T����W������ӣ��9�@?2�f�2}��,Y��vԉ�6������lr��>YG|�I<.͏�b����&e,ʼ^��C��#�>�� ��|���](+���H��l���ux0|�a0�c�=%}�E�n�'@n}�u�uy.�U���"�,S4���>v�9Z�� &�J6�psE7{��B:�>}n�b.�z2��A��i�u���e9D�ƀ=[z׎��k���}�z���#k�G����ћ���2Y�{����lтi֍��(۹'��%���.3��f�����V��)�3���W5/����2#M�����>"�T���K�4l��(��x^>ɹf�撋x�G�pE�ʗ:=�Y6�M���T�<�~S�bK9
p!���/�3�#��uj?%ww}�M=�ߛ�{��.�o��Z���Hi��$�BixY-؆�ނ�$�o�]���s���4o�1��\Q"I6;���ki��;�0@�y���a-���y݂~h�R��čd�X���Xِ:�2i���vaۆ��{����?{l��V�o��3�S�J��i�2u�
ì��U���Ƕj"��+CfmN<	#��.TT�l8�	�v?v�e�)��9�#���s�Q�(+��U�-�"o�ӲFD��Hƕ�9��?JP�'�U�`@&v�tF �6��S�c�����B�m�� r�Y��#Z-02­���mY��l�S�����i�)>�.#2��H6rf�/��Gq=�u�d�O�ڇ&t�:]�#�K�o�ՙ��v�ń]�l{����ȸ�7�X()M�+a�7uW޲�_�U�;��M�8�v$5Ċ�|čb��tm	�"䌫t'�.��fvˎ��W�3U���Y�F~x����2rV�'sS�x�/�����w����ݴ��I��Sg���G=	*�����*?RLf��S2P��\ڴ=NuG�%�����!L�
�B����X
�����g����z�/jd~rϿ�<Gݝ�m	�;�r�m���v�e�����.�O��K��}xܟ����u+���t���I�,�f�ȉ���]��6f���5~�)'�KɹF�	ٻ�cm�Ԑ;�w��~�p�4�Vu�
b%�
]g�b�c~bZ�r��oR2%�1�2����-	b�ki���?'�y]�Cn��~0�Y�W�c)xQGN{�9���`�&�������s]v�v��>������|�#v��^>4u�;�q[xG����'5z�㖛�e�M�w��ye���&@��`xb{�0���f��|�8�������3��^2�dStx��5�q?[[���i���A�?�8�.��o��=�� �f�$w��|�e���\<��T��E������2��,4u�{�:@Gn�.�"�� A8��:�'1��P8�]OU
�2�-;�,��fC_�wĜ�wy]6�!h�?�l.�n�yJ��<ek���3y#~��У������5�c��d�ʶ��4M�(��
��cU��.�;N�#��)��9�sC�UI|1䭪n����>��O��,�0]S���bJ-k���(��M{��q,"E���]:��D�)����f���)|6��)nF����[F)�sF�C ��$&�e�ȶU��4ϠJo��k�Tr��t�X�6C��$Ϗ�b>�f&��p>~ף��?�-��	X�OwT��5"g��s��^��wC����c�];�\fJ�4��_Ć������w�OYn��M�_��.ɮ�i!����J|&��>�����<_k������$�����Ͼ���9���$*yX�%A|�
��kʗ7��R�M"-���
���j�cNZ�f��I�no�{�j�Y��h��{�UOt�">��[ˌ3Z���[=�5�5dt��f�o���0/�9cίl�Z?�^��\N�,��|��Kg�~)� iOsp�=��&A��9�J�)uo$+���t��os�����2�ό�N�3���|(f͸h�g��A
qi{���#ō�V�+�D�mJ���)�ԉ�v8�<��Z��ƌj0��/.��^e���;�<r����.���%��ݭ?�^f�c�_ɀ����ʑ�k��
ӇMpd6j8	���?+o
l޻!����9D�4d��|�<U}�ږpM�q}*J��ư܍ri����
����TF�>GO��>�hd��)F�ὄN'M�/�w�f���q�_�ژŽM����<���|�R���%C�=�r'D_���E��,�}6�Q�U�}�|��{l�ۼbAD�۔3�]2O�d�����'�?�s�}��H_��A���wD����J��~Z��P��|y�rf�1��6Z�Դ��Y�<Z�t�춲��Eꦱ���H�\#�Y��ہhkE��ܘ_�BE��
�?�;�u�<��=�5�t~��n�!4cޣ[��lww��J���Oڶ��������bn9m=m��.��.����Å��	ha#5��ݩ������lp��%9���5+�K�&
��y��y����Z�$(��&�O.����j�3��y�G���'A����e眵N�`ΚC�)%�M�(��}�5�g��e_�!��zNjSp� �E��M��0D
�R�dW�ʅ�#
Nt��å3��drM;-�?�Wm}%$��m�UVYx~���	��(y�)�:;�]�Ȯ��	�90��:�Å�y2֩$�
X}6O��o�=j9X�;�~t�֡(�E9k��.�9��sI��j*j�JI<���^�ݦ���	m�43��<�Y�%E"�$!{�|�g��]/*�T��a�g�����֘���#tg�K�W9�rB���\�9LVByΘ�s�Ky�03SW�V�K8�p�!
�9S�7�8�A�/!U��u3sJP�|�Eȭ�"�[�XQ���X�w�r��M	N��R+���f!mH��8��v�Kz������M(��C�x{y���W.�P�&�j�ʹ��wQ���VӚ}})S.�b���B/�>S�RH�p�n���2NI&q�R��
��֜�i�Ao�D�&<�]^�ɑ����,[%O����^#l�]]}��b�<	���WW���+��R/�T��>m�lI(�Os���մ2�1�r��Go��'=��N����?�fK3��t���{͚���G%���Z��K��f6�sҼ�M��O�O���8	o]��.�fϛ~��)r���u[V�فR����*��cE"ʶD�3��ռnR�{aB��\�ӡ���ͧ�Tצ�z�=�¶��xm�T;X���!bu�
�+8�h�Y9�ƞ��p�[F��3@c%{ݲ0�e�p�c8���o����>����C�غ�3gY�*��Y?�KK��]�YǡZ`��\E)=�ADa��\7�'�/��*���=j}ʅi&�*'&4���C���]�é�J��ҽ�E�������l�$�(��Vȇ������/�'lNy�(��kؚ�:�n�jN��,�86��+	�- ��ba�S�>�B��$O���8�Ѥ5��0�:�M��dȩ��\dh&Ӌ6�<��5��I�>7����N���w����-�"�wXje�c.�a�4)j˱��b,�՝�2��T�T�;g�ر*
�eeQ��W��dRAM9�0k���to�����B�Q�E��u�s��*B�^�7OS�Kk�o�N6���8v=~5雮Z�!��3%8P�:��Z�ظ$	���	+F�YX��f����	L�4�E��W���$`&�Gz!G�6$�DJ,x$Ռ6?<д��1��	�K��7�iV�3�?�>~3$W��P�8m�8�9�������J~x���X����,�U��w���u�ڿ��O�O�s��Ҵ�7?yɔ����K���Yi�<�;=�G_�G?����4Ú�]\��g��-<���35�G0��z�"n�t��-܅7�X�OjL���:m_6�xm�!�FՃO�Ic��9M���Uda�xZ���� ӳ�ڴ�=txx0�[��*�B��c��]a���qK�kmrkg[>v��xq�,��k&�-�����w+�z,ܚ���x�`;��/��Ms���?����GH���ɧ�=#��4Q�\�O?���G�%>f�-���x�9�ŅD���0�@Rݗ�����Ͽ����h����^����i?���"���ض�ej�4��3��e#ž�f{BX7
��j��GQ��Y{��A�ն6�%(��Fu����L�O�2������Z�����t��/̍��sp"��b���Y�¾=~�ɡsl�>Ɇ!&J�?vu��5
Ө��@�ˬp�e��5I:�Lz)�
�)T�0/��7S�Ƅ)�9�ތT6���	�^�?���R&#]�r���L߰<���lͨ�NFs��]!hqqa޴�C�M"�GM�4���.�֥�9n��2|��d!8zz�%�5aN{�����<��?:)�E�B;�}e2Z�+�����Af��B��V�*��e��
���:]�Ƞ��J�Ō�γ�Y�z�����Ja~���WP�*]ߎ/��LK��t��z|T��?��a<�ԥA�>��[j埠*����}㒔[�U2��]�%��I���b��Q'IU�k���%�^i&Y��#�"ɨ����K6A�P]�	��:�6.0�"JK�#�`뇕�Q`7_A���Z��|*�Y@rI�_��@\�poW�h*��l?�S.��}���T,�>7�����98/��/�)�5��K��蓎F�=�dn��&ZQai�k���1�p��\{��Oܕ�O�\Y��4���K�~�U�c��4�p�]	��X2��M da��5]NH]�T�A(t��3���*�`$h߈�!�$������lʿ��(�
�=]X�
o="=��'|y'$�J��;=�4۱GH��Y������GH�����f�'f#(�ܘ2�kHǵ�P��B�J�eT���7T
�0,��0m��7D� ����~�o79/D,����qV8W�i�y�YH!�/�]��	���} ����e�vN"|{�xXHn$y��+Ht��^�	�|�YM��9�xv����ߋ��C*�n��{p��<�یo�Y��v�VO�wn��)�^)J���tC�*�j�*E�~\��7f%�k�qv�p�"��yO~uD+�By��ZC�?YW���b?���{��1~�U��������7�Ǣ�W�?˂�uLI^����"���-SoT������&=�D��U�
d�<%�N<W�g��s	Ϻ99�hyŃ�G���u���̜_�|΀���<t�a��>w+ٟx�Di�S�'��NK��j���lPKܓ�6���Sh��󳼾�"y��3Jn}l�R~C�VQT+,"�#��w��
���U^$�	; l3(�f�FڭCa�\fkz<��>���v�m���y�נ�4��
�1~�3�8!5�.�S�{��sAi_?�)M�ɷ��SOiO7%ٿn|���L���ֲyz)�ʨ�AX�N:�E������?\Q#�]��f-�Y�_�a��.���t��6���]�k��b���"-~�s�nӚ�^�e�k�Q���ϥ��{��%��^�aǤM��� `�=����';V���d�$�-V�5c��A٘����z��l��
�쯘׹�Nh 3[��*l4uQҤ- �x���>M���,�s�%���>U�sF(�9���*��6?Xj<�i���4�����
'xG�r���I��"Bh�&���`=���>��cs���|�����?*#�R�R�2��'5�aw�{Q����?^��Z��XP����_�� CA��G(��svAJ�J���_�W��ӞV{"�P��b��:����<?�r��
;f'�I.:G��$�6t�?fss���Qu���9��֏?��*�gm��2��e��,(�ށ��R�)��Յ�p�pN���$���`�L��q�7׈��� ����ѝ��O��X�q���5CZvM��I��g�J	!@��fɢ���7�y`l��d��@Ԯ�h�b&{^go;��MG�")#Y���q�1_��t�3aM���J�B��y�5*�!�>��3�
����\��XΥ15�|t�9�z_13�du)��F�e�ua12���Ø��^�'|��-���c�����۷�#[m>��u�Ÿ�1�qt<���}��g!L��ut�T����5�!��J�='h�:�����(�n̺��iz�5�uS���ɼ��W�(�c�x`����!��}c]���o���Ú:����-6�w�7�dE�qZ	���<dnF��a>g�pynR���_�R&䏸��ņ\�w�>�mVUL��A�_i�=jho@xI�{�N
�R�KGQ�k_U`�Y0R���Z]֎|f�樨d�v�!��N\n�u���얈W�haV��}��iif���f2dhNZ�3p����M�q�W����^c�q��ewea�ά5���Z28�ѝ����H��5pl����׋������(�Zʟ:4ƻ�?h?/�6�Y�a��jj��iw�8+݅�F��2N�1w�c~������_�����;%r�р!RDž�KS���?��Xx�Qۖ����>���$�t�,�{���ӦX��M����N�~N<���a�B����L�o�-���М6��E���"��V�#�7&S��vT0�r�k��<D�Q�5흛M�٩���U��vnz:������)��a�v)�t���z��q�{�v��+�f�����R����i�����&�1��h3�`�<b����w	�Ym�ɋ&
�� M�
�C��u-{C,��7R��9��|cʹ"�g��m�a �13��>`�b֮�1u��ư�hG�f�i�"$qik�Pi�
�C%�x^�
\�U}@�i��:�f�|���{��9�GE��l�uj̥���"��5�%F���zr�C����lY$!��A�+��������Og;0� �G�W���p;�X:;ڏ��t�'l�
�g�'��1�����p`F:������q��48٧��
*�u9Z�z̊NH���y���˾��W�K"l�7Y��:�:/�fj��#�=�Yu�NO��T0��\~�ژ{@Ҙ|�^Ԩg2�#=4�"�ֈ`|��5hE1�š��l?�+���6��9����kZ��dQ�|��6�Z�,�
{U�H�����)܋�<e6��(�k��!�+�}�ME@7:u��*���,��ϳ��F�s%��Iȴg5�B��V��5��D�BbX[��H�}^���9��e����:X���+4���e��O�p�kF�D��Y%v/�9o��9謦�^�� �u:��'�f�U�=��Ym��-�����Pe���H�N��&ܛ�M�l���!q��ʹ�8fҖ>2��(�-S[���H���ߞUYV\o(xk�9�����hy�)El7�w{	s��
V
�=�=���#�I����bI��.�]آ0���Շz���d3	8][����UF�RZ|��e�<�K>P�R�n��f�G��m3Rư�N�љ����/q�d@�S� �C&�V�����\\�bJ�dFЧ�`v�Y�Z�`(�Q�:æk2}�F��@؛�Ӥ�{!�~��DC[����a��5�{�%K�4�`�Q��l	�g���7-���Y��
b@#So9J�" �;E���ô�Nɳ=z���֮F�3�׬I�["$�E�;�;���3�r�j�7�L �޾�lf�`k>�;ApOO��[��J����A���{�Í@'�X*\x)p�6S� �I�?�x���5t{��f��tI��8�{�{6�V%��E�(6a�Vr/tܓ7��>˶��fk���^|{�[QM�[��S�P�����>�|��8�h5z���1Oi;�IqՄw�~Y(������$�@�fA#IԥhGa��e(!��E9r�Nu��уQ	;tW��5��p�"%Jn�W�{mΫ��]��ҔX����~IJ�;�3ߨ�5�Z��I\Ep���ς����˙�S�^\Yd��ux�%�� � 9�ԝ��<.��0,[��w$s᮴9�Tl�0T[TK��t�5U�m�-��ܖ�7�L�x�@#'�P `�*J�����$����Ɠ�˩\W�o�7��v����8>|o���S���0�)t��D}dh�tFsU
6a����s
g��[R	�-P��q�_�c;6�wU��UG�v��_����)Td�ZG�BG��!��^�>�>�%_��Dt�gco����99�!!����i8=�
���j!U�S���B4k�c�:[K-����wZ�y����CH����y(y��%*e6�M�ʟ%���e�3�D���	��y�O�"w�R� �z�A"��v�L���϶vU�0�\�����F�퐒ej~��ށ��1�\�9��V�OY�+=�a<Ǹ�)䕻O^�PF�*W�i�#"�U*�$2@̍�*77Ъ�.��diX8WuN�X�TU4�`�rP��{+2Ot^��N�~kC���iC�3j����ɕ��B��⒢6�>�9���ݦ+�:[�V��V=&[�y�.{�9����0s�_��-����2Zn��-�:[���bޔq�s
��[�^Y�G���S�k0.����<n}(�+r��x^Eݕ�P�M	��f����n^��j7L3�`�����J�&��������� ?#��g�@&4�z�bKs���P�����z�8�@�cR�H(/a����N��Z��M���b�9���S�
<m���ç-x�k�L��PM�J�6K?՜e��ٲ��-�cɡzΡhV_o����}�kӕ�Sxs�+�
�d�A�i�Y�C����S��>�֫1.���	�*����.�EvS����K�|��3�
�]N��y�6��@����a9%�wL	���R��VA��<��j
��dٜ���j�٠ML�I�wO���
�c1L�!��u\���5[sa,D����3������}@��G<��`,��)��2y!:&E)�Mp�49=,���1�t���=�2�ѫ
ع;:�;���cz�é�K�=s�v�s�����.͒E�#lt�NG<�3S,��l�P3А)�E�m��S��QN.Lj�٬Cɳ����l><�lC� $���
�+���b�cm����;���ʧ3�[>[�onJ��*�-
-�v��X'9����a|2��7Pd[6��kmæ�:������dfDp��f�ٛ�s�k��Z�Z2Z{e�d\v��—����J��1��P
:�7i�.
e8�2醒��ꉱ*3�u�?�t(�V��	MӶ{����:j�|��f�<�NQ9����fh�L�O�q)��LC�����є���z�əV��R(���U�&Ro�Θ*��14X���:�3C)�F}�jeK��\�T9�Ǯ�|�'�bWҜ̛����6Ӊ6�gl��n\6�Kzwty_�ܴ�`�zF�$�B�:N:�eΘu�YC�J����]�G�������8��=ժlU����ШfhU(BjZ�J�`�Òј|��/ʛ$�_�
	�z7yymm�m�}�b[̓�.�<m������ ����X���.��T9�^kt�h!�C���?��M.s��Ƒ���$#�7E��a1�g��6|������KP���2(�
��s�p��L
�q)	Q�Rx�������K�twk��0`o��AB�䖍v��۵��0p�Y\s{C�	f#�7nL
"��-p[��O��ZŃ�h���:*a��n����L9�3��nZ�ODC<��{[��|��bN�&��-ɧbF���a�]���~)���?d?�Z.�����`�@�<6C�H���s������+�l�|o��|��f�7�c�V-�P�p���;�]닡,2l�����_P<g��5���[��`XNJh&͌���یR�!�B1H��|:P�"}�-��ͯ�9�	+��繈2�?���Ճ�a��&}�e��W2tS�dx\�k�/sXq0��M(Q�R*�_4'/�TH���ш
Q��$�j�	�7�_���9��0�n+�Ukާ_w�1�����T$��9����hϵ��������RF���eM�O��T��Xn� ��J������N��%+>�M>�i#�P��L��Eˀ�X�030 �gS��a�>�P�ZQf�ҝ��Mk�_h�|�-Vv&;7���;]�g%]�ٽ1^�|�|1<�m��-�o,�[t
��/��z����|�Z�hX��Y%j����tN��Vv�]�rWI�zD�+�-}�E���":�6.�޲�4$ۖ��@]��b�ׅd�0����\y�L�����O*��xɒȘ�����o%��se���BU��;�T�\QʈI@:sT�w�
��6��q'H��\�[_��o�����x�(MF<t�dg6 ;�8���ɬ�[���F��a
0f�܆2�R$jR?�M��{�<���N_���$�R�Is8,S��K�3��
\�6#K�k��&����|��{1�L/)�hec`�c#��,�yQ�����֐F
̓�Z�!�7k�� #��?S�X�L�a3�д�l�a��[t��Ң�}!��z����l��߬�LX�r7^�$�mU`�C�
��d.���q��]������Tq�a�Ԇ�H��Bn�9Œ	f6c2G09p�v�\��8��X�T��$�f��t�����E{�r\��˯a�����tc��`f8�U���=����+���屹�9��������a�nHO�u�*��h��<[�3�Ɯ�KqI�g�:�D�S0V,�]��Y;MNY��?���i�ƕ�=Fڡhʴx@��z�׼���G[�ɧ6�%B�a�6g�t���\VQ cS�B�j�*���\,�^}s���>9��>���54S�4tZ�����VD�43r��*)RO�<��撟f�m,!Z�h�E�$B4��>����mJ����08�~`v�T�3g���1�����C�tS�C���f�;e)����{YY4��]��5�{���]E(��N��ϛ�u�4Wu*�tP�,ګ�`Y'�%`��C��70��u�B�h>\]L�~�K����`�c����'��&`��~�Sdm��{"?-"�j�h�8�:�B��գ��l2��[� �@��
�}Ȟ^{,�;�@U<�։��|5cA��V�t�셃�l�w9�Wش�L�X�C���6���ѣ5�1-p��=���_�$f��.� x$!�ԍ��~K0�*Wԭ�gM#�����kƔbsڎb��,�	޸�![0�b?�r�Q6��8��$��m�̟K�yH�cL�8򇽖Wy3ϗ�e�"b�^�ʮͩu�paZWFR��S�H
	�#7��L�\Y�0хR�#-l��EH;u����NC>L��CE�����‡Yl2�,$
���6�{���K����o*�a��.�� �Xp/��p~#&�g4���q���
��R~nWZXI���B`/UBa�!I�>;���,D�&��>��
ѵ�v8G��Ɉ��'V՝�ƴ��3�0�
��*��>@�C�yԨ�6WH��/�
#�E�
�ˤ�"e�,/ㆉrC�fן1�t��c�x���>}�yxR��z�3��g��J�g�O�p	wd�j�Ċ�\�{C�n𑥏s
�ᡣ,��i�vr��~2�_\MEe��0{p,��)q�tk���E�ژ����(�E$�ߴ���/8E�_��J�0˾���`�sڢ�:P�8��������U�:!��V��D�ZE�=a��^8�Ui�R�LEpt��l����c���0��sRR3F}�Yߔ�HE�D�]n�B�'>]Ax(�C�Ă��&I8Z�|=07�tF�NO����Y��A�q�"���Q�7���<��5���(J"ǘ��f I�>sˢ�#����%d���B[�t�^;zxv�."-��}S��n@�Z �TG@��+��;e���P��8� Յ_�i��"K�`bb
����1!L
߲Ba$j�ȁՁ0��H�5��_O'C���|v2P��~o��O�2�'��	����v�Ի�_�U�����@{�UX�R�&��d �'��|L�b�:ʾ!�'s�0K��YR���ezL
�ێ#�l髲���iK��::��y��M��7sQ�Q�LW�<"����'H\�F��P�0�������u���LD�?���J�$��Χ_�QCL$��WZ~��O�O���h��ְ`M���y�dvݲ��]�F��󋗦S��
\�oWr�E���ɏ��a^�SML����[.�n�$8{�%�oך�w����e5'$��k�i��j�ZK�f�$Dj��ﮰ��
`�-�U��tw�'�|�(�f��.���]�T����������ư
J�j��y{��+�iF�-�a5x�4ǯ��Պ��J�Ą9��]�*���ZH��3m9'2���t{

� �/�)�|A:.��.�6u���̳��A9|��9t\y��=�5��Z(R;����q���A����֤���0�ME�P1=��(���0DN�>,�T%����͘$�˸1�ngB��擨Ut�RK����D�q꫇���M�SrͲ�Ƽ[����[8�ԫ�RI�Z���H?��0���2�����Ճ�ӝ�ńzƼ,�����Hd;�+s���,iw�fٮ̚�����ف�JO^?$�̉��<����m��)U
��a�$�6���u^�:��q�N뺜�B0lf�e�T�%ۖ�M�"\7Ӈ
QdBk^����0������c��"�)�V�`���2����YL�F�p��yv��˥����2H���.�"�=E�G�2��@��"5�rKS�H3"�Ҍ[�ە�����U��(㤙�V��&���!��^|�A��e��Nl9cۥ��{ə�נ�*:%oO��A�vwY����	:�D�B�ļ�����w���P��̞lVr�EG0��Ŭ�s�g��v����J�%!
�0�O��+Ť��oz���?�/�pg��A�11�{�.�*d/J�m��|ۼ�΁�Ist��w�rږ��B��\l3iNOZ�S>w���p���qcx�˷`/Pv7�2�/-��b`Y�Y�����]UvssL������8�iP��2�w����6��S�����y{S1������Z�'1�F�1ĘNt�t^�[q��t�օC�Q���v\e�	c�J�Sh�{""��L�3���^s��7J���ϕI�`�,��(�4�9��bi<�Ro̺�����&�3�-H'�+)2��`�U4}�1w�XwB���9��q>[��`$0[h���o��l��-� �ne�I�h1
�*��U0(��|�N��1&��5uH�zv�wn����f��e?������79�	��P��D�:��LF� ��-�azH�Bp�(@��f���F�r�T�/�"v�o�ͯKL��sn�
��ynT��g�<��|VQ7σeB����7��Ws�����-;3�:*��ESCt�E����QGC=#�������8�JK|�<T��ȣ��L׮,WI�R\�iF�[��&ڎ�[C�-P���e��~�7����WN2'(�*;O��	i��B
�҈�t��������~O�҉ �1���Rl4�H�����(_s��>��� ��<Ύ9�݅��s/x�!�E�o'�}K�q+��̮�΢��,�D\�����HԬ���)�8� 8�3-հ�ofE|��<$!8�q�
���_2����qaπ�G��$%F 
��Ŕ:7O�N9r��$��-��hqt)���Nr�\�'��_~<��[�$�����/�=[���r����v�Y[2l���2��t��J���{MS����0U���'�SFL�u��+)
V7Aj[TV�ݩ��^��#H���D}`�<2il~��q���2�y��[�$�$)�o�Կ�[����}�<:ԭ��~�E����(�e���0�Y�f�����(gM����ly�HS�*����r��	�r�{�?�w�������zO_���g��^��ul"-���|���Ipl�9p ��W�q,�i����)�3�A��ͤVQ�݄J�8�d&���J�}�]����l�f��; a��K����]s�%[�8��<F`S�|��J�*�ȥ��@2;��(]V_�
;�*4i��N��N���Fz��5�	v~��x��Ϟ_2g����:�n�-(� ��a�<�Fj�9�+��n��AK^�������jn}�U�]�Qڭyt49�-c�B[�I���%#�>-O�6��5?��.��z���\S�=�jsS]k���j��6��Ur}!d2�y��.-^uJ����n?��.S�$�b˷J>g��S�Ō$���]#w[��[70]�o����1��@;�ƚ��8���?%��#�ߵ4FN���.�N5���8h�>�8\�^.�ւ�9٧�s`�H�vq�(Sw{�}�D"t�{��v�|x����Epd{���k(p��66�4�����"䩨>hÆ�+Y�+���ڹ}V�U�q �f�ڒ5fr�7�:�1MJ!
�RO�($�^�|�,w���6uz��#�1��>%M�u>a�:;�L
�(�lp��;�%��`�fzR0��a-��Վ��B,y��������٘B*�~�;�:��
�T�F��t�Sr�%�8oւK9�Ӳ\;G��h!CV��O>��EA�E%��3h{4 �	��)�vV��*�i�s�>��&��&ϊ{�`���)2}i�|������ �qrx���t_av��/'a�n��I����O@z
��^����d�Hf[�~�<5kk'3�7wz� T�b��fo)���C$�g��$�M���U� �!���f�n����I�����#e�1[E��Yr	Q4�8��I@8��J��������$ҡ�dj%���\3�_�|�ʳ�9b��"c�����4�l.���AkIY�#q�7�o��..6�R��Ʋ������g)*6��s�i��t%V~����V����N,��ʱ��Y+�x
����09n���wq3xdT����J4����)��:��p|��=�t�lվ�;�}M��ς�>����Ϊ�r�Ȍͭ��j�9`<{�i2�I����Ө�:�m�{�$��a���:w�R��g�0Y|'f�hغv�,�,U<ڹ���#��R��C�8_��܍OV)ey����rZ��"�d�1v��d�ss���fK�i ޢ^���}e���T�3��.9�/^�A,2��7Ӎv���MX�M9�Ǭ.1�<�W�?\b��2c���K5x(-H��9)��1��վ�T�JVN�
z��_v�P�i�6f'45�µ��JUF�T$��z)1A�L��%�M�xut3
���I�37�Q�������(��!�[��@����#���7�0B�{��|�v�g��ϊ�DjPw��f���3���e'�N��D����RP�r
B�u������:|�Ν�,��f�ͻ�[O��H�K�P[Q̊����{�R��y��ʦKA�jO�3Age�J��ƚ��R�	�D�P��<�΢!t�ᣴo���6LV���ˌ��2]�n�����)Lt������)��XX	��7�E��(�q~�"�DR���u�mvb�c�/��T��08����-$�Q�J�5��C}��7��(��7��fF9��+O��Eo޾N��V�,�C���2rg�;� ���B�^g���7��ʅw��,�nVj�W�����a�(��)&@�A��e�=��geǺ�ϔ`���FY��=5-=��I�4���|��jS�n�����n��t�&��O�t���
�K�ޠM�}��uY;��:>r?+g�wD����Φ��DfHs�i�E�|�U93o`K#�&����/H�1v��ͅc'e|�Sm��D�G�w��k�[����5����l��
ք�o��Y�M�ޑ��x�+1bCA��̍����)H�\�;�c�&�taz�A.�h�I�}��x/P�^&�9�I��c7���B�zOp�ʥbJ���|Y��ҤDq���*�z�"�m����*�{�~ �R�I��u�z�C�WA��T������^��*�:ρ��dA�M��+#e_{��$Kܳ;��>�O�hWG�ȟ`���p�^��R)9YR�^��&5���bC�,_dɁ�����Ʃ�mL��L�|t�����;a�������������a}+4��ұk�S6?c�7�f���?�8���[8�4n�������1�d��=���6��J�8�2�؜\�YN؁�!؅u�����rԎ��%_$UcNcƕ��G��9WN�3�|8z���wَ�\�#אi;��Utǵ�-�w*]i̫A����J��!:�hNz	ܕn.�FY��h�$���}U�z�@�U�(�w[t�,0SV����授Mx(9Ց	��a"�X>�,\�1��W��t�n��>�C����-'�;�PXݲ|���?�S��^����Ǔ������k �$c�ʚ�v� �&�I�'�T]���ŃCpp0f�>P��8U{����l���z���V`bo�0kf�"q�'$1��v�$��B��2���i�^����n�ɸf��Y��v#���6E
��NOG��T먬K�ll�i>;�^�ł|_^�w�(͑w�C���O'C}:�'���ALrl��?�|������h��Y ��Hx^��|�ױ㡎���q��fڢW��a�ֽ���=���A��������Eb����msD�P���ߦ�>G�D����a�yz��:f���5�RL�v�ܺ�i�,�o]=Oy��88��i�{j0b2�!add'd��
`AZ�1b�s��K�Jҙqޚ@��zڳ�������.�&���e�u����q̂�$<.eo���F��U^|䈚��n���H0t)g6�
��yG��2��3_`ʡz�Ȩ���BH=�����O��r�`����.��M�7.�C}����� p�U��
ĥ��c��O|�"&��Yi���ls����x��`�}����WFQPz�$�&ˇd��6ZF\�B8δ]���gL[�]e�	����G��rT�n�,�,f�3�K��9�`��bn�x}-���ä�<�+�e�$�H`n0�� (s+?{�YM�)Z���ͪ�������]�k��`H���s��/����6w�ҢD?"=&�z�S�$)0��)�$¶$"%��Fٝ>�~�[�'(_���=/� ��`�t�I���?z�t��f*��d�~��I�����Q'ώ����~�#���V�������@}g5J�d�Z?�p�+��q��Qv;�r]j��S�s5'�aD[�U�PcIA��ߍi�i�DD�u�u�}/Q� �ci��a+�B�$�8�14[�� '2����M�~�גl���Ou�0�j�!k�l�
��ۥ$�_�km~�?[� ����=��W����sr�R�i����,!����ֹ�c�,�j�A���[�I�@$�pܘ���u̟����o�1��'�cp�r�oZ�k�z��7Aȃ�:ȕz�
�B�jP�~O5���o5��9����$�uc�Cʔ�L^���=�"<S��1j�;���a�XL���֓���.������7��U����G��]۾ޘ�o"��C�(�H��q1ie�~v	�r��Bsĉ~f��<#,
�%��cTBF�R*�`/��bn�9ڟL�Wd��@Ҡ[n�hu�D��P����W�u�EV�%��J���C(^�@0�K��j�,5b���:�L�m�<�e�[)!�6���)6�[O�ݰ��{2������A���o�-�6�!�g��|%��}���ob�G5�}�t1G�d��X|��vI�A�k�](w�e-� ��Z�xpN^vQ�e��4�F���v�#��\�[����b�
�Ayc"#��,���v�� 9Rv\�������J�v}�W3
����ߛBQ�%Ay[��߫��1�y��o�Nh)�3PpsN��-�V��6~M�,�|�w�C`�!��SE�ث��=9T8�6��$<�~oRN���a�k0U2��Ov
����Ë%Z����d��a�#�'����o�t);t�#$������Ӓ��� O;8��R�����\���#��$���y���'+�O#��/g�ۧ���5�Yfp	ؚ�]�J$.ay��	��'��*�I��/9?�OQ#t���9���Q���)̼�[s�JЛ�^W`����1�0`d�3����+�,$�8<�|�/G���gb�!I_������_/�:��Pp��d/�xAZ׆Ur8X�"$%&pum&>�C�Z_%o5q8<�;dy}n���t�Ӭ�N@�����;�Ñ�E�����\a/+��gn�'0�a��H�d�sz�V�����Ĵ��5"��Ԝ�/*Z2����r����, �v�ʦ�"Y���G@F$��=�@S퐐O�ɳ�|g-������%�Pж��.�E�;jP�F�S	c�(&s��u/8u,(U+�o���ȏp2��=W�b���JI�bP/���o�H�OV���h8�i�N�P�|�')�r<�~������]kar�WZ��`���IKe�$m�ŋ�?ik�?��C��m��de��?�7�V���CⰔ�I/� <~�	��(�9�t���!���).�k��ަ��ʷ8p�;��b/\�7��I��e5ilHg̸�%���e�婅�yaNXgZ�	�D�Q��o!�zp��ӽ���F��TpyGdc��V�W�t\k{W�D�D�k���K\F=�T.�n�Lɠ��)���m�e�wZ�Ŝ)�]]D5B��*scns���Y!Z�
��l����b&�ÚQ������ĨJ3��t��;��́	ၦՂA�Jd%�"��QV��v
�Y���t�۷��1��ځ��G����6�Ǧ{oUV#D�[[���Y���F�0�kN�\t�}��Af���MA�R<���
dp����٠��a�3n*��p�U��»H12gO.Td_~Ng�
y	W��=X�箍Q���ئ�������`����e�X�ԑ���M�z�\�x���ss�ok*�6���˓�_	
�R��Q��n�JG�k��B���! ��M���W8n	^s�4z�ޑ���j
m
k���!ש_�E�̂À`H��ꀨ�&>؜���?Ӓ�n�v(��on�L�k>�i!>�yn>2�c*欸Jl��TF�kuI2���{pZP��T>�-Y

9L$S�芩�nU�G[�fd�v��f�*�)[(#�{|Y>��٠�0�QM#�
n�hR�I].�a�􂤓� �-��L��fmy��_�Mz���3�XY�	sըh�}Dy$F僥`�Ven����Vx�p-1�]x�����Ռ|t��u���2}�v�u��G3�V\��iL{�u���:2�9K���'��� =�4����r���di?e�X�S��7����O'��n�J�.��n����,[If��5��.Rt-`�0ܥ�m�֊X����T�>���H�n�ڽJZ�_�2���e0�;�·�K;�e�?����� "~'�Ȕ �g���j0�B��{�qqt \�LӞ��
h��G��2r���w9�4�6牓dRm�i-�qc��:'ը��\~���l�_�+�
h[�(��d�u�8l��"�R��x�]d��g�8�d �o�rCS�WV��(�b'��E|�`����A.�������sP����
�������[ח�v>��3�Q���6}�!ߗ�v�ej>F��D�S�,��>�9�ϥpHwO,)�pq$B�]��pz��Bь _4t�㍻i���)�'ف�'M��˲�oj�kڶ02*�����T�@�篆ra��Uۺ�>��5��HfSD�g���|��M�:��̥4�ȯ��'��#�`�;���zh�WK��m���oD۾?�(eKԫ�c���z5g<�?�)�~���F��{�5瘯�l����N�M����;FVΫ<�&�wJ;L�X.�߆�\QD9B_br<�{�����G���sx8�U�����DcH &��B�߼$��*D:��8c��ȁ�˼Z�R��İl�v.��A+p�x�G}��ݢq�R7T�e�8P��F���쎂����ym�-/	���Ψ�wX��.�$�Uf�)cp}&>y��Ʈ�ųL��OM�.l��ʥ�Rj�0��uZZ`��Ƨ�9�a�ݵ,�7ٽ�#���j	Og��)��W�S��ȕ��#��T>��M�n-4�k�Ҵsۨ@	�M����{�k�o�����&��>i>`���lI�2~����g�59�p�K��=,\-��L\�*r�1�5��G����4�<Ʃ�|ocEx<7���8ӏ϶�>��WYZ�Qk�4�@e�v�j��J��kPT�	=K>'r���n0��g�4���ڥ�2/�yߝ�������[�]�D	����0�blb�d	����^����<�GJJm���"�#�g��l�C��c;~��o�.ЉM0�YDB�| $��vO�A_ƶ����47�[@4�@�I�&�<�-����G�j�W*l�J���1�;<Po];"%J�q.GWI9jP��;,Aˆ����#�٩ܨ��R�8�S;��u�g�QM��V9̇�@��q���Q�}�v��M�eGǩv�WW}�EQ��e�����\�g��#+�{{a?�m�n�#`��,�6C����5LG��ѧ6MF�w8\R����R�;̦+W�9=�!��˓.���J̵ie�-����d�&�*ZU�uX�:���������?th[��)4]ؑ@[o�|s�#48K�_��unv�yw�>�%�y�G�V䊘Y��nL5����"�=�H~��짔�qd������)n*�"��ͩ�)u��mx���#IN�I$t�+�:�?+,�_0��][��7@&�����0f?�?T�1.���fU[±h�
���;�L$�Lm�a.C;:2���U�k��Q�E��X��K��4=�i��)���z�ȃ[�9�)��-<�	���23ɶS��O8I�@z�:ּZ|��^�}Lѧ��m�~��.P��XI�;��p,�{����SlD�IQ��V�Hya6V�\	�g�u^�k�!�jnל���
N-Q��R��.��}��gL����ذr�GcqVk��j�-��<�XG��ܰf���qi25�Վ���KR.	�-Աpq`��ZТ�6~It��y
�g�Τ��i�=��U;`��4Ì�3����2k9�,.A3=y �����.�yL��%�t�����R;�hM�`����5�o ���W�~�F���\�=>"��sx�>���G��3;�c1�+�z�U!�$d^e3	�_F�֍@���W�`)�ۻc:�.��҇/j����/)�a��^��~�܆N0��2cc|D�{xL�0��w��x\g!yfǣ�]�ށ���]��g������G�8_�n�;jo�\I;���G>���D��}���3�S�${zR�$o�Q��A�Sc���>7΍�jc�m�٣9�������N7e9'�5��fT^?��<m���P�ǵ�۴ɛw̐bc�؆�
��.`wDs&�nD���eQ�Ͼ`��5۴�m�`O���դQȑ'��	�E_��#
p��*d��?G4�'���?nO"#��S-���X�m��W�f���q4��B
�i3%�JX�M�{���mc�m
f���j��2�Y�gG:�/d���A�I��u�8�,��K���F-E���Õ�W~��'���LT���h���YL��i��sZt����|�?Բ��ޟO����,# ���"/��?6����ӳ����=��o1����R������������0�2�=���l�Y����ֲ�ٿ-+��'Y��d��[�K$�*��h��Yo'={�E���&Aq�%dUQ��pu�c�YD.8Ǹ�6I����!iI��:�-�*ћ�$_'���}�ߙtz���.-��w״���
�1N��VM�\���h�M�`�Ma���C	eVwp�?p�;��읍|r��x<��-�ޭ�|�u[0�ϘJ��,k����*n����e�HJ�B)�4��/pJ"O���󎬇YV��}i�֙��n�'����'�2�Q��B»	������u��8
V��g[h�j�8���F	6ڏ�u
�e�v�N�?����Jҋ�=�+��|j&�0�<ؘ�����lc�z�?|��<�zT="	8���#�`�'^���ᒑr�)�����x��O@y0��k:q�S_�R���k�G"�	g�����xR�m>���G�L����U0���b}�$����ƶq��M[y���OG91�ך�����������>�W�YSc�����`S�#ڳ7���8��7���It*p� ���:�BOZ;�}���B�����Hv��~��_�4d��I�U�l�w�Vw4��y��go�)攲��J�����qP�DuGγngc;l�(۶j&	G}.�ҞЎ���)c���Z�.I��+�`��R|Eϕ��=d�Y$xH�ТDh��
6՚����σ���Jh0��_���p�b���7�8�˦���2��7T��2/��i�����v�ߋ��&�ux0EL�i�ծ�&^��◇`]������r8�%�P[ک��pn�W�_Y��$]��|
5ˎ,'l"���*̳{�h
��@�������TW#�IXZ��*+vq��ȱd�h�w�����C���W�~čبA3"��m?�캍�������3A$�Y������EC����X�h�e�e��Ԃ�&�Faq1f�Ew�<���UX��T���жm�5��m^��V�~xr_��9PͲ]+f�̝��,��S�a)�����r�UG=|��toYm���竒�?B�',�U��w"
�t�1{pr��&J]#z|B��=K��S��a�y�M5K�hs���B�*AP����
s�2U�Y�E��V[g��7o��5{-�Ԕ�������yZj/UИ�Mr~��J����P�V�d�'�QC��[$W�U�^���i�o��{[�����i����.�@��oX��p;��a��!�A��̘8�������(s4<�Qnj��쟅���a��
�^o�D˧-.QL�ۤW�q{�>>h�>����]�G����y��!~;����v��jQV�ּw�M�:Z��Vλ�����C�ib��
M΋�:����<�[���xj�xx�)
���uevfm�bAO��QC��P����UΎ���u�BH��ɬ��ufّ8�S�J�{6sQ�Ƃ@��!rO�T(����Lb��d6�B�
���bζ��<���^���Io/[ͼ1�Z�}��4��м��bzha@Ͳv��
R���X�=m�!C	��j�����`�^�?%��w����\�w�o)����7��R�-�)�Q�~(���˖�W�ך1	��%�7�"[J�4KY��N��9�t���ʹ�A��_��)&�ڤ�VSu�M��T��סy�(�.�ޔ���RG^L/�Ug�
xN�^<.��#C����,z��h
2ڢ<���)��m%�(XK���;'�[�YM���gV獩"��e�p�ʢhyK5�=�lӭ���Y�
?X��_;�������Hو���g<�kV7��7�>6�7D��2"�6�_;�8l
�r ʆ��>�"�
"S��u�Z�B�x"�ZTE�a������,y�)����˂�-�����H�d�ܔZv�19;
�V��,<�����<��r��kܺ��O���C�!v�{�9/��kcɯ�!��� ��R�N^�Q!CT{������Á����IO�~ީ�
���QCQq\T6b���0���{�N<�+�B�ݔ�)�LJN��Z|�����g ��>x��!=��d�!a_��3�MgsN;��cDNZZ�����6x=RKk*B�-�o+�lgɓ��۷ց�w�a���`��
އe� [�Oj�=$I��ꬽm��`�R��Sm�K@�U���@���L�g��a�@�q��xӗ���H;Ff�~�٬<��M�&��:<����ռ�����30�|���*�L�E��bVZ��:ͺc^����˫fU���*qϧ0�o89����}t+�נ���5��n�˦�.��."�ݦU�t��K\��ҹ
A�%yt�����̟τ*�U���O���9�i}���2ci3>�3�n��~̪O��-r���g�ngӏ�����ў�>/r(٘���%K�4��;��)K�9�1;J���7�iDl8�m޲�I���<�XM�����6n�c�u�Q8���C�^C�]׊�5�E񡨜�g�)}�z��n�MN�R�B�SZZ��ߔ����v�
�?�� h�F*4ș�������t��m���V��BR��W�6��
`�́�.�{�+gn�� jH����M�4d�[U4�X��O��l)3��f����V��+Ű�	�ɳ�+LUd-��Z�)�m��uΩ��g窩<E(h($�ォ/�Wt-�,��☜��=�-Mw�z8`���)r��}'��H�oVr�h3�h��j�����
tD�N˔�HDu��l\�������%��+���-�/�U�Թ���+OwTxܒ�ú��_��m�nZ�#eS��|�Y�|��ɗ����۷8��F�vm�,���G٥�����1���S�/�H@���җ#
B�Ab��zTw�~��q��;��>���	R��hw���&�ڸ�3Kߪ��e��~��M�_aQڲv{Ѻo(���9G�-	���^�j�~�u	|��[ 
M5�¢'ʡ�罟o����/��3�o݌N�K!�Z�͑�\�����iLj�4��w�_#�i�u��NRP�T�#Ei��Q��ik�{}�wX��Bc����΂_��i�I붺�z�w�%n�"�~��S��
�1	ց�@�����US�!x}�����r5���ѭ��U�b*ܟ�D�V�=D�!�V���,ɮ*���g�֙?��bC���|�ٶ*	�:oR�N�Y��k�]�ԫO��9Ķ�w�����"#-n$���._4:���v�N�|���Dk)�}E�'�{ ��źܜ���2$���S�.���oƾO]r���nFqY��[�OUmO�_�e�����cv�����Ӆ��Ti�!��?�j**/ug�^�K�/E��+�����Ɇ�<:����I�g\I��oYU�$A8��2\��{-dSw:��`�,Ne�<oQ��`Gy	�(�'�!�̀WD��I��sTy�y/X6#�����YXe�Hڠx�q�p"%T����{�Sbꌒ�ugRu���<]d�P�Ξ"���f&󅶑9(ѱ5�tLu���;�q2h�
�ۗ�� ?�N�"��^��vEQ��;8�$8��vj��rc�� ��+i�?�pDb�I���`htП�{���a�^W������S�i��Q�Z���a�̭�}�.�4T��hU`h]4�	f�f4c4����t����&{m���M]J��d�P*h����f����Pv�����K�9��16��1���\��M�����Te�p�Cb���m�����aN6�w����|��K
iBX9�S���D�~R��O��xYv�;��C����i�g<��Ƀ�k��8eKϳIL�	q�
3�'�U��z� �\##��}�2�h]X�:	h��Y	?�������1T/����o����|�^o��1�<.J�P�z�n�ԇ!��Gү��A==�_?��������Ѳ��,Lc��25W�-����~U-�m���yav����QewNN��#]�LJ��槪�#_��P�J"��8�b�9��5�[mk�~|�t����K7�(�v���[H��B��e��خ�e0m��eBF1��)�e�58�Rۉ7�t��1
���8*Ay23v[	�}b��Ҋ
z��\l-�cQS|4�!Q̌��f�&��������̇eSX��NG��e���́)�έ\��RQ�.�bU�و�
	�f�@}�j�2�)��fE��!��Y73d���x@8�C	�P���:����8��1�=>�B��<��N�Wv���o�kk���I (�&�Wh҇ӝ�1Eƈ�4f�q�U�4�EB!+*?�ͮhs�BW������6�:oG�VƊ5_�![��6���c��%���
ώ*[�
@J�ݧ_���0���t�lM6���63gM~-�S�k���rI�l��gS�9��%}�M6��T���H
������ٻæD
e��fg��!���Xi��t��U~lK�P����b5�dGp���y�u��7��g�d�?�p\4�
m��Y��Y~߾�et[�[rSBҤZ�Lˍݖ��'H ˿�h�@�?��:u2,C����=�0o"������V�L1�ZO�FƳ�K���)�V�pz;J��ګ/���QK[�e���g�&|U�<�:�_=��)�3�XH~�\nV($��ҥ�=wZ�Hf���/���U�nы��&�?fR�JDVIީ�JC�D��#أ�mb�Ey��pA�_��LCV�(-�o���͇��1�GM�$��}�碑-l�M
v���ã�$?�(-*,/�D��Ů�Ӣ^�_�U�Dқz�3�X��r��Ȃ���d�sӁ9{���Q���ݫ�zu����+K����G���I��2c���Y�)�z�t
���e�p�6�7oi�M�u*<��<'��Z��yF��-�.�t�PkMN�� kF��p?A<�-߂�sݽ��ohF3mיV�8f�4��>R����BR����m䏳:oI_�^l)�� e�x�ۉiN�A~�ϸ�r����bKܡЉh�2EA`���E!�f�`5�Z�A%�R�C�%�>�D!pi�
)O/B�S�\O���?;bx��|��aI�����(_jz�'|�����5o��G}�����3���4J��p�I��{Bffk��V���1ގ���r�p^���4F�2�?�Z�`/��vU����iF��op��S����©�$�t�ڹPi34wD0���BoyY\�B&[��&�L<��N+�`�!Uugn��BD��i}��^�x�o�/x��{��im�10�>�4m,�2��7����Ԫ��A�C�
a��^Z.o&���/D�O��M,>��ޜ�}��p3S��Ŵ'�Z?�2A��G��,�@�\2@��l��
t��@)��|
�W�vs��9с\$�,�
� ���*�1
}L���9��x��o��	�z
�!�����XB�Ϙ�s�ۛw��Ζ���ۊ��p��c��B�
��!-x�z 5�+����-y]�]�scR�d�6["��8���:<�$�
:����5����'�%��_f�"9�Ħ��Qgf0県�蠑���N�2(��$�I�H��J!#;u<�S�EK̐��f)B�hd|�!M2��	3�w\�Q�)�;�S���=�j"<zsi��p�mD#a��0
�wx�C�wρ�,R�TΕu+Z�1s�!fm�J�#��h1x��`�!K΅�EB���97�)<�Lh����&: �݇��CīU�5U������o�?dk��y�$�5v��'�� 4`+I�>�qoQM<��S�������������:������t4���i������C�ῗ�l��tҖ	c�nb��7�4��k�|��JK.�;Vj.��;�~��Г������V|_JZ-2����1�B����Z�B�x�=G�<,G&k'����o����Iw�̀���Ɖ}f3rK[�`�\�8�<��(��Cuu��Dl"�uk���e���i��lQbV�1�Ѧ���bOUU.��܃�*�{��ӎ�ga���(�G�=���8�$��6��z&$�擡/ ���3'H���
�\�xwd[�\�a��WI T��!Ъ%C��5�"2�R�i�o�˅2\3�W+�Ǧ��+�Z9�ͧ,7�pdN�b�xS<��ɼ�F-���z�P�#�?���l�1�M��#AM�o�3�Չ}���b�O�/��~{��io�jv�M�� AJ:ґ{}�)�Ռ$�h�\zL%� ���,?��@D�⳦��m����&���-b����{��LH�I��m�զJޖp<�~�6;�*�-�v�/u�>J����:�(M%q7z9+T�(6X�H�!)K-�(�?�T�0�Rf5e`���w�W�V���B�v���&���)�R���kę�v��/����)�
�;ؕ�N�>�RĦ~����Y�p�'Q�=��q�Q��~T�%�#����Qk�^ߋw��*p���95���I�EV1;"շUYp��-��X�#���?����J����|�:���Xjy��f������F�nh�em&b�A�M���GNF>W�f�ߊr�;��!/f��A>X[��/����O�՜Vew��lƔ�7��Px��=�M^^�K���L��T дr�2��T[�|��7b�^�w�3
xfska�E�[��W��E��[LA�ɬ\
SB��`t�<}׹���Z��O����9(���0@q錋�M�s~�%��Z��߁�����F��`v�.sV�������<b���t`��m���>3��M��55C�E��
�+.:0ٺ]}�J�I`�܃p��m:�|S�
����8�Ba/��t�a1`�U9M"����;Ź�J׷-�8��AZg���g�qK"e���5%c����d�b�R�qח�������y�/��Gq��$˯��n(��Fv���:�h>B�)o�G��(�50�m�<�?L{�]~�:Wd��U��ڬD�x�F��r�M�[C�,�+�l�t|�9�{)C>w��0#����T�R��CAt�5���ⅿ'�13�����W���ܤ#
h9�i�i��8rNw���j�I���tLǔ�+d�U�_�3�l��\�ޣ��)~|�7�/��+tTG�-�}.���2�W�)~�@�)C�D�5@􆢵W�[*�c�<(�����z���p�NT���G�k��Y!$��Š2YaL�{1�D�)>�ϷpV� ��.�8�a8o�I*U�VBJf�O+��J�Ȝ*M���0���M���d�A6pJ��	Qs���1�e�jeM�U��f`a�����-�4�����'g�V�<9j�뮋�&�K�H��э�<\;��٦�5m�	r�=�6�on�
Ol��X��>���5c�k����k���h�4ׂ=)I���?0}�G��	Tr��p4�6[�D1���������5�$��"
��4#je�F�'���Ӈ͜��H��Uf&J9�Hw�4z��M�T���/���P��I#��>
�IsN�,[�j����p����t�G���B���~6�:�^�m�)����-84�F��H���[��t�2|������G���|w,�⨽�䦿�J^#!��N6X����g�|d�mYә�N>r&�=����WSp���;S��m~���q@�	��w2��9i���W;8kc=��K� ���t��"d>�i�ӻ�3J��k�D3�����	k|B	��9�~�_>��	�"(�H��B_R�7[g�2	�"$�IX�LR�MG��hJh���n�K��F�.�����4�R*�x�-W��m�=�1op�zy�y�a!���M�>2j̥�L�C.N8�s��$�A�tT�C9��&�Uv���#�m���R3\|��I��Xy�C~��P�&[�?~�Z��?��_ŹcFo�/�^�]_�L3��ѵ;M�J���q|a<����R:rk�v�i�ȬB-4̞��^�a�W1:,�4�{Q���h�~:�ޒ�8����<t����3#��ؿr{�m��\�
���� (��]
�9}]��vo���M�G��S�CZ��3z��Pd��͞g���&��ݵ�P�\r��s�	j[��7(���{Tܙ�r�@zU)��a�!0�y�$�p̸�XJ4��v�乢�,��hs�RW�9<��o9�7�؂��uK��W��C	�7�s�Pl)Y�0��$�����݆d{
ɬEj, Br�� ��r��V�NH���JG��5��E���y wS�n�C�	.�!f� 8~a,�ޗ�XN��V��[�p��N�d��Td�|�,����"�r����A×3QƳ�����񇬎������n�S-���N�q�eC�r�Z��r��4�Z�f��?�戹,R"��=�Ʀ�_"	���+�v� L�zֱ_j��/XB!T��겔
�k��cH���[����īO��;90{Z,������%����6	N*�F�8�f!e$jV̹ٔWR�·�U�R��ʠ�l�j	�Y���>9����b0eʠ�e}^�]2�װ�[%��E�L�uR~F�z��w�Q���w����v��k��ڹ�ɑs�,t��V�~��A׆_�{yi�aXe��9�������?�|�����V�E?����/�~� t�#�f̆#���� :Z[�\���5�qZgP�f�?���wR���Q�<mD:�U�l����C|���U���#�9�CE�ӻ���(w�2��+�o*��U�|��/�-�%4+� &��d6�-�ڎ��)S�U>UTWO`�h�ȶ1e��Y�6m.��?�A�����{
XfF5x��Y��
�������إv����ʣݼ`#��m��Q=�xe����&/R���D�`�#���ؾ�;eZ+E�6~�ߑg]�_3�kQnѤ��M:8�8=�yV��P?����E�G�*�r�e�9ir^�f� �,�1ka�Ջ��<v_���t#��bA�L��>̲F�e�A�[g�9[�]�gk�52�v�8xN�	���� &�׿fxIo�[���;�`G�:�F�E�pz�����'g7v�
���4���c�ב"y���zE(㛧l�FUq��qD0	w�@ntG�}�K��i
��yin8�H~mֲ�se���g��t��/JُYxc�J���.9]�	'��|�TXj+J�c���n2F��d����:�[�PJ�G)�ƺ����ȹC��r*N�3�f?A|aI�f�bW�S@kL��ۂ���Ty�M��;wZ�#��p��p�����`ϲ�K��b����Mfi�/���K{bvQϫ�H�[pu�5���\](	��4N. l�1���^1��vP�d%�Q��o(	^(��H���RN��N)��Z��_�a�W��VK0
]�cǚ0Y�C����~Ȃ�]m�=�<EO�b0���O��ە���\�rP�^��IF��0�M1#*GcͨQiV���l���R����F^�Kq
����HlY֟�2+�K���s5�^"|P�T��
�H"-R���f�&Øh_㫯?��|u>U0�������7��1�&����X�3��r��1���#���&O>x�SY7N��_JH|�Dj9]��?ǜm�	��˙�d�b�y�Z��ɛ��d������H����z�w^�TR�2�-B�i%��Z��mb�<�T�<�1�>
GYC���m���2������U��%�-�=��%��ʔ!��|\!�ޮ|�*���-����&`�q�4��H�����!E��[����H�{��Ι�9��z`4t�IR�lŦ2v�[�b�c�7�z|4���H�TԺZ��C,k�<�Ꮟ�"��m|��a7�1>^Pѡ�,���:+��S+a�A�ߩo�?�ԝ�U
)j{�6݃L;:�:�f2�t��<���L��9�:U�;���������0��DɜzT-���6�~�YJ-��OƏ�6��bK��٥��қ�Yn�Y\�9�<��4=��v�u�� 0fYO�"�ъS/q�Zm0�p��F��5����W�Y�9bC��C�v��Lj�$�����F�MNJ�����"*{-_|��MΞ8W�n/Q��dh8�;�p�0���!�f@��i]������@�
&���Un�,S���r���k��4o����/�͖����+���F�(�?m>��h�9h�2��i��]�/W��~��F�ظ��Du�#8G�,3؆
�~��4�bi�Ȏ�վ��yn[j��d)��-M ���W����̞0�>��U0�h!y"�qP����Z��B�m�n�s�?��;d��ŕ�_WN�/K`�90�/N$���g�Y:]ėO���vufEG�P��x�\�'r�.g?������l�MQ�Hݖ��0��4��V��n4�^�^�|Yd�$�C�(��-x+��o�e�r��P�!�P�!?�.ؑ�Z�Ig��[t���ږ����7��&���xcO�O�So��Z��q  >�0V8Rw����9��5�IVn�A�o�D���*�Ǯ�6|�1�V�C)���b�!�� ?|Gm�U��sg���Y��W{��v��(ZiOK �J�e�E`�x��B�Ԓ�w�{�9���I��-qF�9����C�l'DV{�)kbU֍;��7�a�|����gk� ��㶠X	�Q��O�s9�̇��)�{���|&]���BZ��G�nU��;;k.��I����pޮ�oSPָ�;*=�kV*��J=������.;*�; ��g��G$��W4���)�7U;�R8�$�ׂ���d��i�bE`k�<����g�JZ]h٣�������*y��,�d<@%4���Z-t��JF��ݑ�'W�%~�W���3V���CG\jn[<�����Φx�5E��{�-
bT����6�ZU����Yޠ_f��|�G	�ܓ�bp�2�Ij&����B�pv����K��b�1#0��T���f�Cu(�H�� �_��˜K�V*{�Yt�J�5Z��+5�2�����r�29�:�����x�&Ͳ`n�7/�Y��BAU�ޣ��f!%\�4���<fc��f��A�d��8�UN�N�ʄU,)��ui���QE���ˁ���A'�!���버�	C��ҹ؆��vz��+�]��'Y����>,WV�e��
�ߟ��x��=��5�0A��󲁜D5��k������q%y=�$$�&�=�g�V��ͪ�ݰ����!�}���_���b�aA1Ԛ�R�M�V]G�	_�EM����=R��^+��;:��.��t�x�]���C��[�e4i���ym�,sR'i�ד,�I�����Q���&n�^^dV�}W.F�T�e������u�+_ߙ�q*�ĔW�(7�N�o�7d"����^O�z���Ŝn�i���]�������Qg�&�}�
Q��N��6<՝��[�e�x�R��M�i�;
1d��:P-V\�W1CғT61��|v�ю�]!k��{J�d��9���G4`�����-��ڵ掕wDM!�PS�U'P7;mNjQ{�w..}�㑍h�'��v��${�C"��)_&��߷�a{��4�|M���h�zS�{-���B�V��K�Hs�9�7��[v2��X3Qr����}qy2
a��q������X�,��X�@Yr���*�l@�H�oRW_�S�t���!ܡ�O��j
��(�=�8�d��ݞ���%��w�3�ՃJL"��J���^��/�`q#x�Ԁn�CR��fĩ�(bXVO8���OL��U���t7�H�:m�ٿ
W;k?�k� ��hg��p�
VH�di&�O���4��H��d�+P����K\t��g���o��+�÷W���d/�;cG��E�%Q���SDo���k%��w��"�s��P�}�(����;B'�t�;2Z�p��ǣм��񄱓�G�[�2Wi����o����g'��-�?ێ���h��ώ�|~��$�…L���zR������:��ء�y�	��	���1��<���
M���b����Ԍ>��~Q�ܤ_�'�χ���y�B��HԂӽ���15��U�U�?�p���dH{�'�u=�c�"w�my����J ;�Ȗ��L6����Ţ�����*ħ�D�%P8dS;�j��vSs��;p��Չ�Ú��`�
	�;s���Ɉ/q�yt�ܕ�KE��T�,]l��3ב�I�JC�wT''A�$T�ɈLnq
�ta5��wp��4IB�� q��S�?|Ŝ���1���f����(/e�2z�ܚ�J��ث�1�[p���zV�D���<�Zh!�A:MFdG(�;��0��{��E���'����ʡ������g�mۨ��4Uۓ��
��zĭJ���1�RZD�;B��򡻦��T�휯\8�JڮY���p�Q�/i��s�Λ�Y|]��S���\6�&�7W����Fƻjc��F��佱��i�A�&Ə���>����%;A1[�ޟܷo!����e��S��6{C��#h��!Лm���ҭq_a�����>���7[>�-�������'ȡӁ���
~܏'ؓ$��ni�V?���}̲��)�6dJ�H��GjIc�c�o�pi����D	T��^q	-�L�[5���Y���a�����R�J��f�o��r���_>S�Ņ."z|��+Ԡ�W���rh�\X�cDi�G)d�N�U���d�� v������9P/��v�.�/_m�eEn	�����P�	rU��#p0ێ��?�������謸2y
���=?;��q	ny|�)>�\��y��Mow��:[ߖ꛾��>���I_dd��x��Bp�|=�&6`�@՘�� 3j��}���)�+������t����K��nc9ޏ�l��9o��۪����4�����!-f�Š��ʔ�_��L޶(g62�
wY�6{��C�Iŋ?�R�Y�e�>v�3"0|?\<&�{���,�D�O����;!�����qf���1~V&oJ"�&� C��$�8��8_
�lѣ*pJ�H�mT�5ι�[p����l�o��l����_��N��\�j�M�h�_3;:��F=<�i͌��b�?�4�6�!x��)���X�X�K
����`�l��g"�a�5e���
˜�o���f��^�&�(�U~��;���lF�������z�7��O�7U=oy������V��i�d�V�D�x��׃���G���e��)_k�-�4�3i����&�4���eޮ0��;eMm))+l��Oޒ �3mMD�C�k4(��H3�^����:�ٳz*i��9!D��[TQ7T�~t�i'J���8��첮�J���9l��`#��ƛR�ߪ��͹|�[c�(�n��AݵEߕ"���SU��ΐ.eLB�_�²��A#�ħR��:�!��C�S ���6���{C
�j���V��'��-K2�{�v���ijn��d���I������{��s���K=+�$(�J��(\�gEb�OY�L���{Ɉ����ٻ�y�>��K�2�)�N0 ���,�%���U��j����ES`��Q+O�u6[d�H�(X����g<��I��U
	�ڙ�w�>���\8c;19�n���\ƛ�ͺ�.��U�'阦yh�3�^c=�)'�f�3J8���-�{SEw�uPgarQ��k9��Ὣ�?�+��cY� q��f�b�#)�hg���W3$�#�O�x-�uѭ\���0�c�S�O\b�MȔ������=!B;���c.������y���p �ar���E��OQ�]���m%{�䖒��sl�j�������XK9�ӻ����?�/=OAl���T�S�q }����Ӝs���݃��7�{o�>��y�˝�r�4&Bwy�8¯���@��d�1��Ry��u��me63�ZnD�Ј���Z�mvlHtx4�ɓ���Vu�-jwW�*s,���\҉�t�@D�@7p	����>�7�Mҋ4�y�Sw\���J���i[��3�T��O�?�������ȝ�*���1i����"�mVtNq=b����b u�x�{n{'��?��0%��f]��a��?�K��a���3����Ȃ��p�@�<{ÿ�m��|��b�z�]O��r�y�d����퀀����g��n1��7s�����s�U���Z�eN�x̳4���j�͘�2��2g)?L@#�.!M�K
�
�aʮ�d	.��S .����D�F�QI�{��h��i�.i�T(� �~������i�N"6��r��衰�3��L��۫����?.�v�xF�� ��1�iޡ�XI��ds-�ʎ��OɕS��kgی2�%�\��MS?��+6���nc�kA�L�@j|���^0�nJ�sq��4�ψs�G����%{�dx?a�3�dM�0��5S�*>ڐ~ "a���6
êA�OF�s\��J=L��[�<5=|b-���U	Z>��ګ�
�@��]��N�mr��y�lؘ	��ٴ�'Y� ��o�HǬ��rZ +�&v]|Z.����h�� Y��͑��Im,<h�1c��G-J���@�$+�r��q�s��Òl����Z)��ȩ�?���Ƭ&��$�Md�k�ls=Iu�M4��&�
����$��l��|sq�C>X��� ?�_�L��qRw��b]H�Jo+�:G�n�.�)>e�K
�_�UbiQ�|�˳{eu=qr���}V�� �\�S͎.V?M2�$?�/K�j��2Y���T�5�R��2�ܦ�������/���]/�Y�k�(*w,�Ҝ	���Ey7����۵~[���ǖ����m�����6a�Ў�1�ay�W��yx�{f���ހ�w����+�R���_NI�9�m����MR�3I2M18jn>��p���bIHӼ̼���ߖg���Z�b��Cu�c�R�G�J�)�H�c�:��xI�
\x�nRgs�dKb��
�_��1�8;�����P�ȑ���jq��!)�a����6mÛc�%3{���˶�S�����VL���z�!!�6�E��h�̃�蛔k1�†���"��b�ꐍj�+��)���R lGiy��1��<���9�"I�H{'���Gr�D���fk,03��<��=�.3��4��8'�z�<m٤"d�7n#@'�����Z]�ʡ�l`��g����#����%`��x"���#�-�qCiqvKu���n�GZ�;s�6��Q�����F�1�g��lٕf�mR��ٴ����\�-���Z�y��:�t���n$neE��=(+��uU�#�QVWW�B���$e|������6�w���K�u/�,�w�1�l��DpH�
�Y��~f�Ե��T�
O��e�#�0��i�O��^����"Y���ӁODT����
v���'������8!^?=��Z$�K�*~�e�>=�k��(�;�Ƭ�&A5>�Ĵ�.7���o8���:���l���NzO��I�'1�V�S���5�7�N�Ի}��\���?Ba<�@��z8��n�W;|_/f0�=Uv_���0i�o���+Fzv9��D�;�ZzPL�-*܏�����oe;�b�*�O�o
B��޵�D�d>��L��MG���u��Lt�rz��
`rmkA�%D�P�1l�:xH�����V:��ڴ�G�xJ��la&,H~ʅ�W�+sN��xyxp[���k�@�bæ��yٙ~b��(�vl"îE�"z���7!ӻl
��~��8-�_�F�S��?�<N/tav��;�h��q6H�B�kD�[t�i������N����i+'�jc/%�bsc��Y%������{�+�Ia]�,t=o0�����	��
x:�+�i�:�����E,!?c�6�o�u�EҤ��4ޔ�!�[:�~�uz\��Z�T��_������F���k��D���	|��6�:X,G���r"��2ا[���� !�ct��͡ZS�f�D��(r*�
)����=���rރ��ox�
�\������|e����氏�I��$��dn�D�W�)s�Є�A���t�5"c�.<����j��6WM�
;��QI��f�!V?cy��-�:���}�q=;�N��wŽmӈ�b0�m<�g嶃�ţ~���<@;��(-�`��r��`��1r�P����M��i8�;8�r�߾�lw�^x��׸
2T������QN
��A=T�0�}�jm��<�c���>���'+cn&��S���͙i3��� ZFc��sd;�#ɇ�_1dg~����A�U�~&su}�Ų�ҵ����J)�����?�c8D�o5'q5����K	g�h����:�6�IMw�ΔkdA�'����*��P@Q�')>!")�da�G�!	鸶��:ق	�l�
����Y��o�h�:�!�/���F
�{N��7����T4�N|�$��d����{���mK���-HҶ��o���6�g�m>��ޖ�{[ҳ%A��m9w����?'�4HO܁���ɳ��"W�"���L�R~�
#�Lצ1�q���cx�sL�%�pѬHԻ��]��|&A���:];T�u�H~�||����V��2/���1�z�
$rG�b�C��)���*��<�#]c�j�	�
ͻIz0���n��k�w/[��W����ʓ-��NJ
o��Mbn�?滉
�X{���8�f�7Cp�=�~L��^�iQ�n�~�d���R�%�.I��)�.,�TQ�k$�e)#�ɧ$ɝ����$�™P�1ޑ��и�W�4%Cm:�ʆR\贆��TJ�)*j���"
96�r���_N@�N�B�S��)������w�.�&-˜�	��Xʕ�����b(ζ����i=�L2's�{�����rN����mZ<��\
z���,	��΅g��TL���,[�H�i!��gE���R������wՋ��g#'�b�A�ו�A������k&�
��ͅ������t��t&��@�4�ȫ_��R-�>3���<0k�$_P6m�3����\|v+2b���I����a�%��2l��O�����KU.i�fT3��|Y���l�r���l�<ʶ�!&eOmpe�B ,����$�w���I
�������	�?��[�����r���e�f\�,>������i������X?ayZkf�HL�:}�rr�R_��&�_�>���4SeKa��τ̇����5I�b[�e�!M�0m��p��)��Zl�x)|�0�X����]��p�7'��n4���i�fQKF@���aO{�-�*O���sR6���!U~��$��P��;�Q��oʢM��M���VơGx�N���K"+�}�K�{pB�;��~�(�Ez���z8!�U��G��t����.�g��UzR�_����]��؄���
��9?3��<��L��B��ҩ�h�͆���\�E�t�ѝaK���#��n`k��Y����ݚ��9���8!�Ș1�HT���yl�Sݕw�Eh}P��ު[�=�?oT�롆�iˍ��O�+j�£��5{��F�R�E��"�`UzJ��v��h�e�lN��#��'��o�G#��=�N��O���	��A>#���,�0����N��2�Ș�02ܴ���$P��x��'��lMy)w�fUAE�G��tƧ�R�*�NL��mƒ�;��72��4�Z��
Ӽ��8�Y�6����I���jp���^�����
�8��YY~��e�/����ơY[*��W��fbIb�L��/OZZ��3t0��,wM��$�l�M�K�&B��	(ߧ�<�k�q�H]!�+�^D:���ݓ���#��X�M+�Nר�l�\dz��=��n�HGh���Q���e;��>��a��YԜZR8I���h�&W�ˆWi��l�Q�����+��Kh~�����9�(�y�s$����M|�������(/ڼ�)��ʮ�/�h]�x�Ab�zҊ8oa�Y�P��*w/��U�r�3<�z�7z��ܖ2�p��y-E+?��-/j�#G�.t+�8U�\�@cy�@�O�>��P]{��*[
���M���~ƾ�y�щ�J+1��<�\��\Ʉ.�t�r��u'��v3��a���h�~��,�
����`�)����>�_�3����}`�����W1� x��10�(��f��������eHp|̎ #OGpL<�E0Z��Ӗ�}�y\�E��m0;���Um��4�G�#�
3�0=l�]�{��x��e�z�6az�['��g�[d@�&_
Y�H��\IJn6�nj�n��BPn��y{����4k�9�Fπ�t}�1�|[X}�����Κ�ܬ�o��MtSm���0���Q��eš�YHL��veMG6mz�0��������h��7q�hGg{]~tc|Yp�/��zX��~SE.9GbA���G�!��K���Y���b�Zbx;�J_)�F4�^�
3�$�\4�,�6��.\w'�_a�k�|`�n뻔E�H��,�c�avD�
�GR{�Z��9vp�|wG���>w���v�u��)�9`���;m�m�g�f����+­����W���8��,�*�U������5���k�6g��V����hծ��#�|��?Z�~ߟ�`��	��ۣ-�$q�,U,{ԙz�+Ro�l�^r4ﺼDB�o���u�,�axw�8]h9:��r�qƘ������z"��6����)�K1ru����ޘ��>{H����W��z~=;������or4���?݆����=d�?�p��ptz����.�r�3\�%�����G�l��̳�榅??�W�M�>��3����+�X���Z��٤c�y�N���i��8<:럑�β�޸x����p�飶��o���ߛ�~��ir�Ȧ��_�^�
�/]��g�'�5ѣ��>jb��j������s���e�Rq��+ţ�w7O�M%r�m����P�3{Mw�3^��LK*]���Ս�l�zcօ>*�6��⟖�i����iX|T��*����x�xg�=t�n���L�݋�"Nu�L�.��ڽ`�0aX+�Z�H@������C�P�݄�C���q��H�\d�Q�~��
�YLg�v�%�x.�<��u	{J��5�E<	A���D����ת��B�d�CO��lf�u�`�T����J�Ipw���6��Ȓ>Y6�&d�h�!Hf#�ˀz�w2$4�ol��'�}�R:p=�փHJVP�V
 n��ؽN3�ͧ<ϖi��b�ꕒ���Yo=G�����ْY����Q�ͥ�f�Z�/��p�mٌ�F3��	�5R=�ej�EF^P�.*Y����A"X����$��uY�c���M�W��Zۄ$������	���_\��M8�r�Ty[/��CU�~��ǩ�_I0�$���S��W�C�{|�+��E�>����v���ײ��tI�J�c��H;w�����Q�Ӡ��\��F�����*]n�;�3\��ҙ*�;4�����F<��x���;a|�і�K�TH��^�H��ҭ?�^��`f��y�^�~�)ӯqa%��ܛ���+�Y[�\�b�^f�-���P��`����~��:=$�$�FM�>���I�s���L�\����M�r�yR4w���8ڣC~������s�S��Z��le�;Fsx@�0�k����8�}g�VDH׹5jDZ�Q��k�"8b���5vcS�$:��`ۺ��l���w=ڽǴ���~G�r$���pC���ƴ`ھ���9��7��}pD�WVF�@�6�����vK�A�&�i����͂\��L.o2��1Il��	J}����	u(�k@��QF'��/�1��3���{h�Z4�׷e���H����\C�%ۦ�C,�4��ZH}Y<<��o��,��!<]n�|Aq������<_���d!&��
�����H�l�|I�U�PݱL��=d�['p��CX�֑�̆w����0a�l��&*ps�(A�!��n&��g���F!�Z�wx���^ܦ�Eq�1q���BM�,���LЎ6��6~���L��-�QZ���yv�qd#�NjnKG����Cl{�"��u����%��;��n��ۂ�Rj�_gԎ೏x�a"�|�~lV��D�6���˗�tQ�>jRP�
�6��_�T�ޙ3���y�X����{��$l�nS��EWE��Bi7�� �_�:��c0@Ӵ"z�:�CYA���C�#�<ע�0��ӋCV�pt	��4U��5��/ʛ�d�n(��CY�2CO&s���X�D����x>�Bv�M�@�b&���l���ԧ_�{)��W�33��p7���W���c�!Y4_���!����f�S�F�Hb-���g���������	��o�����4�z>����S�a���6N�妌�7V^)���3��N��*�aØ�wF(���)���dttR�G�#���K��2yY��*9h����M�\^��p���3T��M�wT�uN��0.n�)֜�9�L�r�V��a�E�~5G���c;�K�Т/	��S'L{�<�3P�P$��Vv�Μy^|����-��a>@����lΛo~eXOY�Z��I�A�R�yhu�vPۺ?�6Ur�Ɍ)���b���z���ZCb2�p������/��sp�3�2D5Vf��{�n g�7�}.5�:��󹙞�90R����ܑ�K��F���w��vG$ꋞ�Í��3�G�S+a�w�4�k�s���S�zn~�p��J�`�D�y�5h��:�����{����#o�!���2!�Ǣ\�^xE����{��-�³�5�����_��E3`ցA�e碹h��;s��e�'��3\:��"ǃ�y
�/+�E>JI�K��ߥ3)�lTkݜ�:��'���gn�wANNC���|�Y�NP��$�v:L�x�
7�y+�bN��d��y-���Ǧ�m!L;d��Ek}צBs|s*���f�3G�5��/�\�m�a�3���oHMgѬ�̓Ɩ`g*�u�� ��t���Kb1U64�7U*B�i�Orr'��[ҵ%�Pf�0;�M-+!~��9�v���i-�(��m:
�X3,�E	y�O��`�M.IW�6b�:�5�`��#��h�s���߸>X�nn��X���u�i�*!�~P X������{d��gR�:\*��(�E����Ur~�2A�ep�6�4EPb��E�Ly���*m�ZѪsm;�
����qtZ�%�G�83��D��m
����3�*{:wV���/KK����,;F
9gץ*~7�����`����e`�ѐ4-�V��D��&�J�?��ҷ��*\�H��
�����/v�z75�m�-�e�;>�p�l�6o\Ƽ���Q�gf'�T����J�6��[G���A%J�:�����i\��*3yȥ��m�t2���+�@�'�'������x��:N��8�W������1��0$�����-=k6?�h���^��u:��gw�(˧�R����T�my�9@m��uԪ��7I�W;�<� l����)�1��6�&ɝ©�Hx�%�ޱ�8��xۘo2G/�,��^��^#��н���.���YTym�E-+���˼��/���ո���e�r|��/K�E�@f࠮��ܬh��ֲ"P���G��V���fV��k�]&I�^�?�YH�S�uϘ���%��҄n'�tar�s��E�f��z�x�M�5�D5sD:oQz�B"+�EW�?Qf�O�:&Đ/2�~���bD��N���
^�ͷf{1�M��9~��ILGE�3�2�n�叿}_aX[��$:�t��T�������(o�g,-Y�*����-�a����t}���J��=I�{c��U��B7���u�*_�
�ے]���4��ME������"�0Q��R%Q��t����n����c	P��%�RE���� 5�K�^�N���9[�7�)򢲆e0��a�l�)}��ܯ��0p�W|M�� �,"�&Tz����1X᪙NY[{�K��P�Rě�U�f�ߕ?�e����s�`��w�e�q�91��,U�7�OcG�O��_+H��]!1�+�^_�
�5
�*M_�8oO#�$��zn�t���p�O���տ
X?�ϟ�og�%�,|Y�}�hc�^�տ<Y�+�%��(�ޙ�S��3Q'ųz��epۡ�q�$N��	)�5Cv�}�Ǜ�ҳ�f��23�
Nx�'F��<]	O��J�� �^1���f�(�s׺��8�1��;Ip�h�����wL�=�q���"J��.�aS�v	��{����b e�����&�*�?=��3��{�:�����P�����*x�p�Vӿtc�RުRz��!'4�/���\gF�䨳.�#b}�$���B>�(7렍T���^"�4^�g���y�8�b˥<b�{�)�����gk�2�f�(ڼw�Ĩ���O!�{����>���L�r� �{��4�����#�E2���� �7bs_�JŎ(�
V�1�!A��J[B@���&�4�~�ksv�~%‚6�]���٤�M�P��siB>��[�?�i���T�&��O��0��h�e{˰�i��V��*��-"tP��7j��i$�ή[ٴ�FxoX
�Ct�c������~@�7L�@����i��Ȅ��8���o�.���ﮞ�y��|x�����1�Ok;�3�bYѻ��5��:Ѧ֫ԛ���
pHH�F`���f�#�E���ވ�)K�np!A0壙��,�4<�Â�b{�zX�����UT����$#
A�"�p{Mj�J><���T�W���c��[�������ފø��2��'��
�<���3�Ww���Lj��Im�O�r�� �Z�$Oo�t�x=������s�#!�6[�myO�2N��f��>�X��*�=)���[[U9�*�<��D���#"B//�v���Uh���r�m�H���]��(8Z�T��xjܩ��ن���R=siz�=@7�9����>/P��`w_�,���,#��m]E����ڲ�9ͮK�0��6��b.j/kզ��N�W~�Ko�H�{����&�3�B�I6U�l�YbZ�Mv׍��d�%/��]��<A��8p۱��3,�|��\����\,�"˖t�+����!׼&�' �� �{�����˗WϿ�H�X���/ӛ�J̛�ŗo�$�ƺ5�ш	x��X��
?)����VnW�8sM+8�IN�B�s<���G1]���M�
�¬�9�U�c�Hv��f
��LcfE���a���o�k�=��)�f�����@�u��������\���`��H?�
'��:/G4� ��ܲ_�\�X��y�1&cL5nH ���%�Q=�qu�����?�~5��Ţ�v��㧕9�^Zg�僙���*�?&�WY�2͂7r6���Wj~��M��H�׃G�SF�V��t���`~�\De��b�����>|���df ��5��F\��<��ܗ)�]�&��%]��g��2�Ř��vx���=4R� �$��|�������=ML�=�5���{�uR��1�I���bCn�j�T
���zI?�L���*�
���X��z̡�ke`G���v�}�/:rL��)�&]B0�)!�	~.N�2Ȳ����.�f����{��)�����*��?;ݶ�������Io���_^P:�t�E��mWt�(�n~McE��;[�w�D��7rv4�).:*:�J~^-N�������@��
�7
9	!�`50�q��K�q��>}���t�z���+I�a�Q�jQn�E�Y>��D7f���*T�ήS���"���6�����W%���� ��G���l׺$��G#���L��h9�}#� �
P�`T���.�$��f��m�����ɓ���]��:�������gk6Ms���?�[?FPI��F���Ηv|v��-�M��*�)	4�-�7����mC��GŚy'ĉ���-���b��|asq$ll{��9�ٸ��]ՇM)6�/�ngDE�\��{5X�A���z���̈́�����bw���|�B$�cfj���y��Z��L��Y0��
�y���F)�Z1}�K�"9��Yϵ�5���U��	��*�7�o�㱢��-=yS���;�w��������^� ���o|I�3�A�8~��ȃ��"����S&�A�tzz�i�oOq��Mצu2�vӢP��m+B}��cv.wV�+�=��1�A2B�v��>�%��47@e*:=��e�P�1#��ȯˈ);<�k����&dTm�TMʖ��|�9��C^XJ�:m����ʶIB^���H�y�5�-��ԧ�Ũ4�W��pU�I���0|\�K�|��c��y�6w�a��47 ��U����&[P���"m�v͓}[�g���v�'�0<��X0���h`u��$dP\TBD�߿��ᬣ��wC-�l9M��r�ߚ��0����(g�����Z�WŅ�*Pc�{��N���f
�N��>��ǔ�C^H��(ј��g�5��4
�:RA\�Z,,&��jL~*iC��
?D.�d:?VD�Q,�����R^��5ݭ�|���H��v�1WrC�Ms��#��HY7j�z�ha����;�m����ѐ�Q�p�5�|��w��v!:v�ZN1&�{\��=�ae���C�����@���R/�XN�W�޾���6#��-֜DJ؄�c����rm �OI�{r����"�="aH�ͫ0��qE����7O��=�����o��s�p�Sv�ze��o��0�K�K���dt�	Y=�Ī��"�1	�|6��x�L�
�Nb-_���fI^�[:g�bn;�&��k�%PI6�ݶ��׃�2���n�<�ZLN��1/��DW�1���‚��b�3���&�Z��ܳݛ]�Xs|ϊ�[�
(���O+��U��M��L2�j���i$T�C���"x��k���.��K������0�><5����w�q�;���F-5j�I����
Fi�s尿�U��a}:p��1_-{~C�{���Z�D�(O��:���Σ�5���oJ����k�
��.�hwX
&R��Q+��=\���Qy����,r9�Q0�b���W��jڀ�Fv�'�ϵ4�����‡���H)x�����{���<�;���]"�)_�ϛHP+{���A��A�k��t�Rs
y@���gsLj�&el�F�U�����6�E��<Y����ä
NP��iέ�m;��g�sGi:�$߿�B��v��ߧ�҉������\Z�T�٩��|�2��s�DY�ߧ��j�/�/���CÀaIv�s�a9�8`2x�)��\�)����	W0ee�jb/���Y�s-,���ܠ�-��Ȫ���}�.O�9ăFi�B�d�tE��a�ۜ�m<��؅@�4����w,!z�,A)U%��T��1N��瞚����r��r_�k��"�om�*B��֍�#h�/�<����?\}���7
���
�G
�D�<Wo��5�YH�R�<�v��M���d	̮�X � ff���o��{O�ǜQ�E�Y��۞yzN�Y��$��
P<�YŹ�)G��S[*���!�e��[z-�IR���0e���w�p,�/��� J��屓��YK�LaFi\)<�}#�[�������{&���r�n�F+o���6�w�A
�“�1l��	�:3 �����ONG"���m_��x�Î+v0�S�W밳����'��sR��x�
�6��*�䉦t�٘���~q��dt�tȨtl�,�׾�y3O��O�}��s����>� G�t�p;ry�R��.�Ү7�>Zјl��~w�d�C��5�>V^T�������f�|�˳{-�x�C�V}U�h�Qk��hX��c�ʗ��/q��;�a��Z���դIu�1���D#Ɠ��q����۩�� �1/�T�%QãiBFҲt�c<�j��Jt�>��Aݨ4e|���y^OGz����(��W�]s�m�7�H��L�+2��rs�)?�����̸!f�=��ex�W3�D�UQ2ݧ��v��I�A�]��D�
�� ��^|�Ϙ�+ck]Ƚ���Hb!��lB�3qp�qUA�UDRx�4��Β9���[�mI��l+[� q;p���q?s�7�arؓ�� _;L$���y��\8G+6�Akc%�xz3�Y��}䀶v�w�A@|.�������m�����������*_��ӗ��CY|�j�M��N���٥O���x
v��s�ƒ�s�Β2F��Q\�zE�tY�/��u�}�
J
d��R�8[�D�iF���S���*S�����2^��m����7���{銮��[*�H5S���@�����d�t+���C~��-��#��'�d���5�
c$�!4W��GI�j�7	21뺜�)S9��>F��f]�FV�c�X[> ����yq'�x�K.i[:^��|�|,�����t�p�øA���sF�򂙂�Ǝ
FEjb���r��цU�����Q�'�t�N�n�`�`;�m��zmC�H����{Szơ:�87D��?�3a��EF(�xtQѓ^��.������E�)�ů�d���ܘa��kF��%�O����G�F����ҙ��~�|�����z#�Mjܬ߂ڛK�
�N27�"��f�������!
�^$FSi��yY��.J���g��<ǒ���Y&�c���Nrmn��B������J��p���ADx�����ez�K�>�Bx2����a0ٵ�k ���m�i:�E�^��1�ʹ��:鈎��<�[r"Yl���L�����8��9N�������"�I���Z9g����B���g{���Y��5�QO���0���!�����GLq"ܙA"b53��ӟ@�|����K
�s�#��ܞO#����}�m"���N~f&ڣv[9@�J^��^1Y|e��X+T����Vt�l��KW#�����$��Y����ߓ�~0�����k9'�M^�B�$�f���67gD\!ڝ9C,�v3L��]���t����.�6�m��%)~�Σk��c��إݓ�y)�l�o�i#'!� =�[����-�|������h�9X���3�_g�d�Ɋ�Iyԕ�Ƙ�=�P��R�N2�>�ݗ��u�y�OA�8���l@h��Y	�����nY�'mq��zNhhД��g��[<�ه�y�L]�:EA�Ǩל#�bV�>A�x��|��1�f���f��=}���	9գ�C��@�c>��6#��oк�(֟6�v�Ul�o���PÐ�(>/�(nY�֞	� 	���Jj�Vl�o����f�mƈ���e"���>BF�eN�1���w�����l)�a,�!4�-8���#\�9�h�\)FE�/��^��G��!te�OC�ȰKEz����E��
���ؽ���c����ϒ����]&o߼�C���=�12+��а˷��&�������߽|{��������m��|������$��6��S1~�6ukqrh���E1�S�L���:?���� H��:��O7t��ih���p��~-~e����a��0�/��aw�ŷb�����9�>A��Iu��!��:~��U@�<؍3�JU\��@������_>S�l�G0��02��TY���j�����˧Ͽ�R~���w5Ѿy�6�_L�3��2p���l��+b�+��t/
Wl�E����aJ�;�EO���d�}��z�:�TN�Gca<����.��G����G
��ؔBoi�I�*�p����dzy���t��~����`��mrp�O����~�y�D�_���3u>m�i�q�g�����$olLXu�u/�>b;Q���ٽ/0"��U����3����v�탦���s7+{�߁YEI�M����I��r��{-��/�;�Q<c"�y�cA��͛�R?��Xǖ$޺����2�j��߄��cK٣�4�=����ӅY}+��ү�v�!�m�Y��,=VK�gIc�h��c��TF7���O�#���P�Vj��v$�a��=�$	��R���j�>�C��<>��Y\9o�N~8S_�ŖI&8�8�%Y����cz_Q�G�������
VH����0���V|�cE�-e!�u��SL�c���z�5�<�������,@����j�R��t����o.\Nn��C��[��Q�l6f���ζ/U$�Ƭ,�E��}{yE���WQ6�:9��O��=�0j{T��ɟ#��w�NN��N?��$�����v��Ʉ��ik#}^�A�
�`u�g��p��pa*	3��t^9��gP0{�|{�bg>bL��5�.��i�ǥ�2n��6s���'
���1�?�ւ|�q�U��Q/�z~��i�)��\��u��qO���<I�T�q�
^���xl�9]�`|�BA����<��
.��۟�������$�Xz�B��/1��@�r�A����1`_�y��i�e6q��Re�C�v*��A�߿~y�p�A�:
*
�R\�i�})(p�6Bt��DǪ˦�m׬���ME��Ϟ6���ŧ�Թ1�:�d����V�:_16Cvy�F�Yf��E�0��=*�'��Y�D��5+12�&���>�C��ث���Cⴵ/�/�J�3�ϰ2 �~�ۇ��FYǧ���������b�k]�>{u�)M���zT�G�rs'�+�`��^���j�;e��-�5/�*�(T��}����z'�7�w�"�y�8(�������oַ$�+�F�$��M�s_�����,�0�W4���U'}�iZYe�Qܴۛ|���ٝ���y�4W�%����Y���J����4�K�/
HsP"�H��'0ew��
�6��K�נ��:���l�����'{=F��L���ޭ�&������cP�d�ҝ}_H��s��.�atv�ӗM"y$��إ�����;�

��ʢ\�?�G��giP���9b�cyF�|زX���Ԯ�f��/���?�m��\�[�I"�}�3�V`�€c��F0o�=�p�G5��O�'��k�ե�PgҼp�� �u=^xu�`��#�Y�������'K��sK�̜��
Jq���<�P�G��il��x�ˠj�����D
�'�ѿK��=�w��fR)���6����|��y�9,A2�"U­��V\x�a/QvK��a?�0\0�^�za��`m3a����6���w��v#�_���<SO�]�2�Tc�}�Vx�ë�����I�
�����i#W�i5D�)�p��ݯ.�jv��3�NH"tg6�v����^��'gͿ����쬕�c�����ol96�|p��a�o'ǭn��f�O��}?9���~2i���og����5=��5����N��7�,��3q��Ǔ����z~<>��������E�����*�8�u�L�l�����Z���_�b��J�u���ͬ&��;s�%"Tp7o��PKp][�Ў}�&�litespeed-cache-es_ES.moUT	dL�hdL�hux������\e7�OB�H� �N�@"�	��f6n�Kv�����ݝdv�0wf7�M@��AA�( �(A���ޛR�)�s�<�ޙM����a�̽���<��'�wr��;a�LfCJ/l�dW�d����Oe2�y�ҵ)}�үR���e8�ْ�m)]���0���Rz(��Rz,����4}>_��)]���)݀�[)�"���Z��Q�K����I���V��(�������)��O��)=��J/�t���d2���E�ޔ.�4�d2=�OiH�?)
(�c?���FJ�k�/� �)r��H�)݉���d6��7�nG���/�ɬD�7@7�tkJ�S���G��A�e`�o�tWJ>��C��7)]��)]��vJע���M)]�C�s�1OW�寧�K��A�y��	��J)m��Z4��<S:���<>z �����8�xZB���Β�0�C)�:�?�����4�zS^7�{�>�tgJ:��K�`��:��mJ'�zR:�׍�})���vn�P쿟P����oR��a��,J��v�t5^J���r���0/��{�0�ۛ��cJw�y9<�頴�p��_RSz;���G`������gܑX��Gb��(�
��?�,�t+�gGb��H�)�ˑط��q�B��</Ge2]��~�2M�=
�Q�Gw�u��Q����Ƽ|�h��EGc�����AGc��QJC��h��?��(
)�t�c�>��~������y���{�1�S��ʱ(��c�F�b�y,�}α�>�b�,�?:��4}��X����c1o����̱�oi����x��8����{�q���ǡ���0��>��'P�=�J7���Ιc�[��Ǐ�>�����j���3���nw<���c������1�(�-���x�c�0��)]@�ޔ~��_��qe~��[��(��'����f7}?���cM�쓛5�����OWƟH��Oĺ|O�N�<���'������w�-������I���(݌ҿ��z�?	�~�d�g��1�y-���:�d��
���'c]_>��ɘ�UO�9��|_|
���|J�`�|
��k�~�������}8W��Q:�҅�~���h/{��f���SO�~�4�C��u�8
��ǧ��sN�|]{����=t:��^��~:ڽ����w��"J��p����/���}�죵�D?�8��r&��}��9��31g��q]w&����sv&�L�yG�e~��[��i��~��YL�Q\�OG�8�F�<?g��s��\~����¼��,��ɳ/?�r_>�r��^8�~��(w�~��l���gc_�r6���`��y�A�E�`�ϤtG��+������b���E�#��s1�+)���=���s1�o��q}t.�y��0޵�C��q�����.��y���x���u;�<����>���<���a��j;oj��X�/���_;�7��}���'�����y?�|��b������Ǿ{�|���P�0�)�^D�~�����ޅ���t6��.�|�v!�µ���p�B��}�d:�׋����q�����?�8��eJw�qQ�;�??C���9�E��=?=���c�?{1���X��.F{�\�����~?�b�;�b�Uc��j���1�/Q�����w�%X�.��s	�_z	�՛.�>��%�gwP���.��|�R��既?͗b��kz�����\�~=|)��K��/E�k^�v6��g��0��4�2��2��s/��e��}/Ǿ�����~s9������*����W^�v����p��+��ָ�l��3�D{ᕘ��+���D�s��|\v%��+1�?]����Z�yS�p%��'W�mvƻ�U���
���Wa�ֿ��|�s5���O��^w5��_��z�u5���_b?|�ȷ�/q���p�;��>;�����=�+}�痸^�%��v�`�[(�J�נ�����5�3_���
�B���DׯѯK�v�k�����_㜾�k��߿w-���>9�Z���b~���o����Z����*^x��/^�u���>��:�{�u�����ծ�mr=��^���?��u���z�����k�������t��.n��7O��o������n@��߀���sx�y�
X�n�8����o�~��
�G���ڍ��I7lq#�oC�8�G7b���zj�F��n<��F���>�B�C����67��q?o¾��&��U:w��_���)���f��o]�����ߣ��G}�RJ$Rf�P�2J���-���<����|�����~��}^�V���[1��܊�T��;N�/��ފy~�V��/R���?a^z��}��O(w�>_�'��?�	���'�[�a?n�i�m�o;ކ�]}>�6�W݆�~�6�޻
xq��x�o��������o�?c�Qz3�Ô����_��h��_��M���O����_�_>�+�Y�쿵�@{��ls��܁}0G��@�WP���;0S�D��8��w��r'�9��v�ҝ��o߉v?s��:w�yCJ{)�x�s�Ÿ�p�~{����>{7�]�n�o��1�M�ƺms7��Qߞw��3r7��YJ�y=(=�����O��_����/߃u��=�w�{��_��gҽx�۽��4-ދu\r/�����/��}q�������<=��?�t�j��>�>���*݇���}�W/��}�>��K���>���ǼM��ek}���u?��q�^r�ޗ�Oy�~쯯>�j��:J�{����y�.��0]�7�����ʃ�oփ�� ���q��|�(��y�C���!ܫ#a��y�:}�C8w�?���{���0�v����Ø��F��F}?����Ø�5�9�yzD�Xϭ��G1�{���G�>=��>��<�ˏ��5C{C���-x���ǰ��}��1�߃���cX�O�|l�8��������q?�I�X�k�n�8�`�w��G.}�_�8ڻ�q�������ۏc�k����
�@�;<�u���?��q�'P�O�^��������O`��|�?�}���I��'1�}O"���x����3Oᜯ����ºt?�~�=�u��)�O���F�?���)�Ǹ����f��X�����y����?�~��k�3��s�����g0?�}��3�`�/i���[�Y��u�E��|��y�
�Ux�,�ђgq_]�,�W��=�}�������0�[�C�w����<��w��	��|�ϣ�>�u;�y�Ӊ�+�xxܟ�G�뽀�＀����g_���|�,�"�_ļ�}�~�t�1�"��Η��/a]N~	�㊗�x	��ɗ��o������J���[���/�?�{��/�]�2���/c���
����+_�9\�
�_���O^�y���ߓ�`>���4��+hw�W�ϦW�λ�
x�*��W���_��*��^E�k������}��kW�k���}
�x�k�њ���0��(���k��?�:ֳ�:�����^���(����&��?����w�C3���ޟ��IwQ��?Sz��7�o>��Io�y�&�3ob^?|�Y�-��joa�}���-�E[���Pz��/��x�-�M�?b���O~�6껉�2�oC.��?���'��4]��5�x|���~=���x��.��.�qһ؏���w(=���]����ż���}�{8��P�;�>�s��/����K�c�>�kz���~�y���?����>�����|�z�`?.��0�gh��4ߕZ��\���?o~�y^�_X����Fǿ0���sp��/��
���������ߘ�r���~�?�?D��P���7������8��~��|�?:/��>����]���{�����?�����h�
?R��G��}8w8�?�}����T(=��Qo�'J�|�y���ۧ?<���#3F��~�r?���D)�ןQ��{�R�_�P�|�R>?_3�R�w;S��m���P/�|/Q��T���[Jy�C)���2��ҷx���+����J����Q���8�o��v�����LJy�?�zO�v�����ݔ�xp�Օ�NY�4S*�QnD�OX�fe��O��7}��o��`�6����c@������?�q���w�U�ȺoL)��](�v�*������Q��qJ/�Y�?�Y�۷)��1�X�s>�u����M����b<�P��;�E�S>����9��<JY�}�|>��9��3��x�
�gw���M����>A)ӯoS������(e8�'Jy~}�1������%�2����1��5Џ�k`�篁}�+J��<���?�@}�~�0�2�XH)��3)e>��2�;k��M�2<zpM��X���D�k�5F�ɤ�p~z)b�F)󝟣��`m�?zm仐R�/._�:��3�>�|JYO�uPn�u1���:m�.���u��K)�_�R���(������E?��_���lD)�kF(݇�K)߫-_�A)�û)e��ŗp�R�p�/a}�U���)e<l�R��.���;wQ�x���������lJ�o}�|����1�7̥��k)�{�s��,X�2�>�͒�Q�	�2~z�8�X��]�o�
p����m��p��~���n���f�?l�y~t�ŧ6��XgC������{P�x���_m�s�gJ/~|C������
�ޯn���*�?૘��)e~ܵ�2b�9�J�?�5�㗾�u:�ҽ�~�:��Y�����D����c�/�}���O[�����a�s���T���xJ���|?o����l����1o/n����R�Ǿ<��q�J���d���Wl��?�	��M��37�;yS��76��p��gL�>c"���C}?a�e�I�/�NB{OL���M�����&�u�7q.W�L��fh���П'7�ܾ	piN��&��d�ݝ(e~��Q&�����<��C�a��"����z2�?c>"��oZ���̩̏���Y[����������y�����i[��%nE�CY~+���۠��m�~=�
���#xk�-�mQ�'�b����~=m;����0/om��v��ܾ�>�j{����|��[cD_��-����B};M<�����T������aL��w;`���8F������0�Kv\xd'������{�}�dg�s���`羍�>�鵔2~�ɷя�OK̀s�6c~֙�s��4��3��\�;
��i�;WLý�i�_�a_�1
�i\��[G����mZP�n-�_�����/l�<~i:�e�t�h:�9��#��2}�]�������#��n3t�f��Kf�\>p���w�����f�}�����Xc&��fb>Ϥ�P���3���]��[�~�+ƳF��0Mm�m�Wf�a�nC�hþ;�h<�t�>�5�w�,��_ga_>Ii���YX��w����q�c2g�l�|��
x��l��ٸ���su�l�뭳q�_���9h�}���9X��v�\��U�{���;p~��|�Ձy{��x��W��:1o�vb�v���;1�:1/�ub>O�����N������o��n�����u�,��e7��=�Y���2��(w�\��b_=7��sq��.�_�u�=ҭ�e7�ۻ��K����ü�?��?��y��
��m9��a�1�O�G^������X׶��AJ/a�b��&��j��:>���m�����r��_ާ�Z>�{������p/���)e��ٽ�o6����O�7��S{c>W�.�Ǥ��>�.�ѕ�E���]��o~��=���{��C?���>X�`=;��<�P���yh�>�݋RB3�|��������%�y�/���(�`=7�A����r�G�����=�˟�A��k�������6���ź�@)�>��z����ؿ�屾O�q����Ж!�WB�sd�rLJ��!�qq�q�2D;7������������?����P~�����<�էxm�%}ؿWh���0�ú��8�F����o��R�3M������{Ga���-o�g!�y!�M]�����)b���8���b��A��UJ�c��p��K8?/��w���O�G?(a^w�p^���D8O?��?��<<��^��T�y,c?�,c޾W�:���Y���|�2�ٴ}�}���/�E�����M*߂
�aa��lJY���
��7c�WSc�'Ř�5���U�w�*�T�/���{`�ژ� �-5���m0�y/n\=<��!��[À��ƽ�;��t�0��~p��a��Àk-�9�a1��)�1��Y�k��G�`_�>������%8�/A�>���b?��{��s�~X�[���s?����q~��3��1�s���W�����e��<M�����?�O��\�s��G��ܭs�gJ��_�=�Ǝ?\�@����;���1�/�~� ���}��Ax���p��<�ÃP�������8�z� ��g���a}>���̓q��8��y0�Ѿ#����y��`���ƾ|�`���Cp���t�C���9�ڮ�`~O;����X�P����}r١8/��{c���S>�a8W���x�0����Z��1�_0�z8�����ۇc_�}�U���#��=����x$��~$��#�/]v$��]���#q��}��棰~�Q8������e�F�͏��s4�z4�ң���?�Y?��Џ��}��p.��~M>F��c�G���r�1X�G����1��
��>��X��c�'����z?<����>��8�[r������8�׏�ü��cľdSJ����X�o��4�x��ǣ�ÎǾ;Cӫ�������#�c|p<��&'�{���/o=�y����x��Op_=��c���մ�D��������vo>�>�����NB�~���'���0��I�a'���'�\]x�ͭ'���N�}��I�L9��xJ/�}s2�q�|
���S�oW;pg�Sя�OE��>����b�p*���S1O�����u���.<
���Ӱ/�p�y�4��ǧ.�u:֡�t��cNG;KOG��>x�^g`�瞁�t����q�r��3���<��Ǚg^�=��3q�?���31�?��{�1-�ܙh��}���~��)��S��?�x�S]/Mo�)��?žx�����gaݿv��ga��z���[�B;/k���ho��X�]�Ƽ��
�V����8pq�9�w�?��e��spާ��s]:��K�E?�����<���ü<s���y��u�G=���y��|�>�"מ��_|�ɯ.����@�����/�>��B�1�;.ļ?y!��U�r��Fa����a~]��_�r']�}u�>��{�����3���^=�g�7��㺈R")3���}����v�xӞc�u1��+_�b��˗ ��K��.��̿����CM/�x�m���k�|��/�ޯ���_���.�1�R�{إ�gκx��n/C�3/C�^����p����Ͽ���.�|M��b��q�5_�q�s9�W�|_�����r�۫�4���߽���_��۷�]��
웏����x%��]�s3x%���Wb_�w%��+Wָ
�0�*싽�¼�W!��W�7]|�OWa�k^�t�����hw�Հ��\�y{�j���~	���/q^��%�ѿRz�y׀_x�U��_��}��0o��
��P�������W�~
>wǯu�~
x��_��k�g�k��^���ע޾k�V�.���p-�����~�t֩�:���uX>s�uz�_�s��u���Ǿ��z���z�{�������z��ף����s=�y�ߠ�������~��һ.�x̙7���n�}��
�'�܀��1�nĸg݈�^p#����/�7�<F�?��s7b��~#���A���[����k�oq����7��������Dt�������:���^��f�����.���j�����������8��[�o�-Xǻ)=����\���:|8�R:R�{)e=���=�6���
tȥ�a>߾
��X�Mo�̾�a�v����1�����Ϸ�����e�?c]N�3��?c?�g�����s�/�'�\������:�/�o����W��u��?d��_��?w��;p�ֺ���N��6w*�@髌/P��w�_[�
�q׻�^t7��	����/�F+�����#����s�=�w���!M׻�ǽ�#�b�_��m~���>�>����?�>���wh�W�;���1�Ca�q~~t?��u�c���y�~��I���P�N`=�����?z��LJ������a�vS�v��
��Q��Q���+���A���N�� ��UB�Y��.���>9A�_���C���y�飇��k=����0��]��<��]�0��1_�{�n�G�>��/������#��_}�ޣ��&����G�~?|��Gq���(��c��M�8L�;����D���y��c��|�8O<�s���o��x�I��<�y��I���S�_7{J�)�.y
��iO��������Oc\�}Z�O^\�4������i��g0���%x��387>�}y޳�;�?���_߿�,�}^�9�S'>��W=������g��<��c=Nx��y������c���珟�y[�쟝^�~�|�+���F}�~��	/��u/�<���ɽ/༿���ڋ��Q�E�[��q.x�/*��E��^D}���G_D}�{	xߗ_��՗p.6~	�w|I��K�מ/�^��%�3��{���p��|��[�e����~|�S_FǼ���}pa�W0��}|�%�`ݯ|p��W0�/��d�W�_�^�y|��u��.�ǫ��[�������N}
��5��_�y��u�����^�8�:���ױo�T�W^�x{����s��o�w��%�t��O��{��~����G����p}�7p��y�ƣo`�<����c����
�k�7���&�g�7!/��M����s?�-��=��:��-���¹��-�瓷0�۾�s���'���w���W�'���W�����X�ϼ�s�w/�{�g�;8����y�;8??�\���w�����}���wQ�=���]웕�C�W�w��?~�/x��e�׿��x�=�/Ͽ���X�M����>���{��U��}�_��y���׎`�{j�����t�8�7}������Я�?�:����+���^��7��~���o���
��o��}����|��U����`�.��c�Sz%�>B�?�>�^����c��?�������c���'����	����`��i+�r~���R�;�3V�(�t8���@)ˁ>3v�쇓(�s�gJy����X9�3)�~H)�U���츱�΋)�?�R�g.�T��>?@鹌�S��p��cE��<��W�����7����Ӕ���X�O�)�}�M)��
�|_�{�R��->;V���9�M)�� �<#��~<�R�������#����,���Q�s�ύ�{�k��7�s��
�|>���s�|�6^u��͙��R��fJ��\m5�<JE/V�/����X
��Y���|GP�����m��xju���2���x����]�8
�w�R��J)��(��9��co���1�#>��q)��O��<�5vͱv�4eM��VJſ�Zc��Y�3{�B���6��յQ�'kc����;j���u�N�k��:h�?�`<[����q]����b�_�/��FJ_�s]��_���_�<�~��ϵ/��}���/`�?@���X��G�4V�";~	�L)�M����_+��J�\F)��۾�~���X��&��u�k=��*����zX�{��z<��y=��_A��(�f�W��G|�.����|���+X�/�?V��N�2>���1o'���j}�˗��<l��w���P�t߹`����a[J�.hC��
������6D���ձ�o�U��C����U���b\�}�}�R��>����.�5��c(e}��
��Я�|䤯#�C���4��h�,�?[��ؗ�P�tۤ��E�2���x����
��JJ���`#��-���p,��?���������6����슍qn?���/M+��^���ާ���;l������MP��M������vJ��Q�T�sQz�5JY��D��_��'a��O��'���'�<��R�����X���&�͋�ļ����fX�om��������p�����a}�n�wS��lH)��=O)�+�O}~2�yj��LJ���&�,'�2V�ԫ� ��S�߮ͱ��9��J��cE.U���-���m9V�ܖ��:��%�ymK�m��|�C)Ӈlx6wk��k���ѯӷF=�n���یy��`���
��M�`�?�
��m�?����x?e[��](e|y`[���8��l��x˶8�/o��n��U��v
��_I)�e�l���JY��v�����=���2�k�o�~���>^u*ֳc*��\���X��~�����g�8V��/�{�_����T��3�䳔���]�O����w�`�_�x��oc�/�6�'��{i�f�#�q�.���R�)��
�������KZ�^j�<l<p9O)������r+�a[+�Qkžz��}v�k����p�_:������fn�D�?���}�R��v�
|��]�6j��lC�oh<��,��mf��3��;8��w��]O)�3ځ���|a�l�^�q�������{pGJ��㤔�c��16���:�o�D������G�a>/�
�{�RƓ�5��)}����<�b�ǃ�p��7�|싓���~y֧�R��Z���8���~�Q��������_�禰�=п�(e��i{��߸'�}�^����\���[��~��{��\���h����<)�w�_�}��3�����K�>|�c37�<S�����n��{�^ۃ{�������|��� �s{d��{y�cC��5C��/��?6	�>���o{���r�u91�tM�pg��`��~x�f���5�}���ҏ���Ǔ���F)�W������kOx���q��/}1{!����o������Xx7f�Ǖa��E�OD�m����H���E�i��탨��A�y�� �]���f	x���R	�y=�'2�p���P����N�4�qZ)=��{���/��(e9協^�稂��"����>�kzb���%�<�c�׮�|Π��}�����a
�;��y>��q���}r{
t�#5��CX��!�#�g�B��|xA���}y�Ҕa�k�0��0���w?�z�<��e��0��ދ1}�q��ϿZ��v�bП�,�}{��ӭ#x~|�z����x�%���K������~����u��N���~�{�c�3���y��|��1�o�{t�����qn�C�g���!�m�b���!�僔�����^?D�ۼo�Z�ౙ�<����F�����=�v(���
8��ac�O��a�/��u��0��uG�݇cޏ9��g�ν~8��M�@�C�����������H���#qo��H�����Qȷ�QX�Y�^�p�(�=��Q�N�G��1��/�獎A��<�bW}�=�>H��y�G���|�����������X���X���ؗ#���=�>�)�ș�V���3�l����P'��|����~����q�+^y��?�|�J��	廋���,�zn��׭����>��kӻ����/�>�D2dF�v��Z�jTf.��������t�[�|��_��olFւ�;g,���bnE�����Ô-��lz�S�smkC�n}���Hw�:��2|��Iy��7�~�y|0��~N�Dyz�o2����)O�o'��/k_"o^���?�q�^�g:���ݻ���1�W�q��T3ԇm(�� ���u��}�c�y��u�����Z7�3�;y^)
�.:֙��T�/�&m�9�MWM���紞O�<��W�|�WN�E�� �6�����)�z��b���)��/Y4s�8�{m����"}��y��>;~�w׼�;^Iy�c^�8�G��߲���ql{�ɼ��t
=oH��s�x,T�4JWf�t�#+����Tϓ�m��� ��D�W͛�}���(=�������[�~�[s��~O�Dd�d6���J��z	�s�X�=':��>N��LkR�oh�gs���a�V���,�8��D_���������3�{�1�Q���)}��#��X��8V۽��[�o*��j?_��ڇ�����g5�]�T�c�m����D/һ���/AY�y���y�Ҟ��ߛ��L�����y-[�f��z�
����m�8y���߄�d&��.�k���:�����Ǖ�MsM��2t�f6�lA������ȫضL��~�ow2/������C��T*�]��D��N1һ*�+J_�:�˜���oR]_����>ڏ.��&�1���^�{W|-�~��ّ�t�����k��L�l��/�4�>�m��K�]^�O�����o<��2�UJק�o������{���Ly�w(�9���e^��G2|��@�	-ʬGe���U��/���Gx/�M�W}I��@ʷ�~H�/����;Jo�w���k�ݥu<�0���[}�J�V��zw�T7��0�u3=W��#���yZv���ѹ[��`��JC��RJC���V^˨_��x�~oGo�x6�zRp�����)�^�m��|�}[����2w�J,k�����u�h�;�����Y���-��D��M��������/�Q��w���Oz7Q�\��ֿ�8��������V�O����g澣��>2N��Ie��z������x���s�˘o_1DJg��g���|G�߽|_k_O��ޭ����M��뽈҇��짿g�k���D��O��α��1O������/���z�
���on��8���23�祐��������1};��_վ�N��|��'��-�S���W����z�2���kP��DZ�<�H���L�)����P�nNy��w���	�V��m��q�Iv
�0<�o1�����[�]��,7ib�G�p,|t���
���o������[��C�X�Ϲ�f'�o"2P�a�{�����9_�Fy��XN���M�v�7�?л3�Uu�J������߫e�fސ�ԱCy�fx���}�÷x���~��w��R�G�1֓�yX���,�<7��0�.�;����>���t/�}�Mw�ݬ���[��������{o^_`9��ƈK��fT����j��b>�#����^6~�~N��ԺX?pS��|��g��Z�=+!^�m+eD����}���ݖ|G� 6�N��s��б��u�������畨�a�*�5�e��o���u���wL��G�e�M�.j��cōC��e��~O�#ʳ�X�`3�q�'�4z?��/Ѷfi}�c<���s�%m�Qz�6��C�����
��z�K7��&��z�ژ�lC�,O�K߽�{�ޭ���2��|�.�{:�m��߫��k��_��mU�^^���L�P�u�ϴ�/�/ѷ��i��f|����T���~�E�~�~�˴�B����e��Q��GڏS(������]�x���+�/��o��a��>�|%���ڷ[�§��:�CLYƷ���$����Z�*��e	����w�{��;4ϟ��-�F����.����O��Q_��:f��^|����NTfD�Ǻ'����i����W�}z��g|�E)��ʳ����3xK��~
w�Q��P�=���w�J�x�ש�"�/�%�ෙe/׎e��K�I����e����P���d�3^�l�w_���6N��!�s�دj?vҹn18�pZϪ�Թf~�Ì��Y���_�=�}��a�������O�>���4OI��F�cj�,f����V���3�w��oW�;��~�����C�w��A�𹢴���茶0/��KJ�-�Ʊ�6�+�S���1�c�<��i>z�(Jw��	:?R�_Q�[�6����0�Qzf9��0��<D}a��'�l��(�ߙ��4&�y�Sh;�0d��5q?���g�
�;x,�)�Y�ow��s�r�c�bx@���[���I󟶱幞�@��Wz�;�|��B�A߾A����<�c�_��c��q�A�'}W��2����ˈ�Sڠ|��y�}����2����}��?�����m�mYv�ͼ������\�X�q�OP�W��O�o���<蕹�L�2��m���j�3�K���Ne���u���������5�rlW� =o6>/�㼋���c�។2_z!忉�]ByN��u�w���*s���{'� �˘�׵�[�?��9�ܥޚ�G�?d8H�n�3G���*�>Ű��nI���-?��'������̿�w��9��x�������v�+z��ʈ	'�K�c*��'��W���0�東C��F�g��Yڗc�5�ze��\��c���(�'L7i}��>��a�X��\��l��^f}�dڙ�|�y�\���;5�:�Y+ÿ{���3�N�`��o�X����u�(�k�� ^�j��ʴ�8���X�s!��c�o�a8��Jo��o�:�*7���N߮ay���:����5ރ|O2m�s�]�~�Ģ�j,|���f���}:wP���ۍ���c4˥~L��R=-����rk=eCC1^epb�úuW����.�+y��y��/�&数n��Y�q���4���Л��rʻ%�(K��f%�=�ޭB�BiM����*�W��Տ�?�c��e�31��4%�E���+��/?2���
�����aޯ~{��4�M��]�5�����#o�+S���g�M�|�Q��3�B�Z~�i���#�bo=F�פ<!�Mw�t+�2�U��k�������om��~f0���ǚ�MJ�A��~L室wW�N�#��J>�����1m�_j?�Sx�ٓy)T���+���i���ݏ���ok���8�9���V�G}8��}�~��m�?��O�7����1�MeV�z�0~��C�/b^��h��h�=��-������2��sLm|����8�_�{<}Y~��������,���*���yL����>��\��8�Ν��_0�^��3�w���n�On]���,��J�g�>�V[�����)�@��/��ܿ��+���Ui�2��|�mN��P����״�M��`,������᩻�u.�t�7Q�M���d,|�S�݁�b] >#T�~���)����Y�;��B�}��O�ߏ2�Jy��|�<�ȔX&�m?H�D��he��f�*닼��Ʒ�T��1gceq	�y��`��uq^aX�2�C����:L�3��1���T׉��V�?;!��Qf���	[n������x�}g�
�0�þj�P��[k!��,���B>��Z%��c�X��Ca%.D%d����
���F�lu��V�+���A���UBΜ���D��I��\>;X(ժ��%��7*��g�m]\
K�4?p3C7��� ..s?r����-EU�]�z�a��p�P�o�+Q�lH;���?�?�G�
���62X��ٞ0KT��w�qS��j�ԟ�F�ᨲ(��X��q0D�h��P�����In��q������@%��i#�d�w�_���oE3��A��8%�9K
�B[K�m(K5��՝6ڧ��m�s�LS�s0̥r��;w� �A>?���A/
h ����0��7��V)�h,��'�-P�Q_��7u�)坥���j%*���B�[�
�ٖ�����wҎS�[��8;T��٠'
'Sœ��<5V�%�f���V�A)�.T�}�b1WG��pζ��˓�(W��%�\3��!�HT�ƃA�H��bbą%�:T��JP��IWy{4�ݭՑ,����nRe�wk�Ԡ9m�2B�h��=�`��b-�4��l1X2��p�u�>J�`���l<�&�:�
�!m�j,{Pg�H�׼R��:Ve^rU*�`�#��j1mfi�vX_�Tྠ� ��0_����@��Uh�]+�S�Q��Y���w�y-�+�P��T�����X����L�:Cmw�f;ҡk�N��@�	G�D�+���I]�+WB:��lG�8�������

ѨyZ���`�A�ˬ�UJ�ұ�`qa�6H�t(,򑈼Ĭy�T��g0��ֈ?e�m��b�gn0(��ZDg�ĥ���]c�i'&���&�Z�mOͻ��GE�@g�R���p��!�.{	��9K�Q%�Ya@X��d��_tp�tww;O���R��]�|$��W7�,=A�Z�s��J�<C�W�'쓎V��L�V�������4w�����B��6Cky�y�B,?{�Q�"ڽ��w�ڙm�Y�4�)4�m�B��;8"05;���$d@�'ęf�"�Ѹ���_����V��ؙX�����ى3�Qّ�\��K<�f�O�^�b
3�|vv!���Sޔ�`�L���7��>��
d�1���)L���h��T$��������vy��G���S�}�CA����N��n�I�u._WB��b����'
����ʼ�6��%�[�jڣL���B�.�p��V�t4�ƒVhK�Fp���
��S�B���;�A.&�*�ZP����a�am��5�M�
o��~>:te���@�*�G��A@��f����J\����A�0����Cdz���t��Y�KG�<�G���V��?�E�ZQ[)c��/�%:��.��<�,���/��h�PX�Z�w:��D%{|��E9I�<��y���*�=`��+� �[���P-�Uq��,��.+#`�����E��*��7X��A��(Ҿ5:��6���_�t����~T�x-MC%y���r��I*�����1�D�\v#k�Q5�r|��e:�d�z�]�h���ڋ��c�H9��$�Nŋn�2ח{x�vʛL3���U��ԡN�`9�7la�`��.
1:0"���!��r�`�I!l����O0�&�D�k�.�n�9���d�bj�l�X�x�'
*��Gk�NG��Dz�|Dݩb��9e�,�2t�����[��"�j\Bi�X
�}���~���R��fQ-̰X#N���g��U�S��+��"4ǘ^.�2r#<��h��%�+_�	|j�F(+t51��Q�镠�a	��0��h���Y�a,q�<!`�g.�/<�-�yyè��A�]�ϧ{�H�{�F�,�%z3H�W���y�z}"�T��M���(�R�	�󀗹Qk�9�O��y�
ݗ���d���t������F8.tY��Qo��2����|8yMܷ��,��h�e��.����@�':�0˴�=��r3V
D\�ݞ
�z�cjp�*ľ�f��$�0�1Cݖ��`BY�/e��*T̈́���L��1�M����=Dm0JȰ��F6�c�ۇo2���w��ʔ��$
���M3Ӥ�&vR5���;ې��gT��Q��ەj�v���,cY+��)�oPO�Qi�3�5��0D����&Č�M��S�4����#�/�����f���"3�/n�R���PG�UV�d���wr��W�\�1�W27���Y�\��E��a��ײ3�A�	�`•�	Zwe�E��z���ʦ��jr��Z�d���J��`�]�g��
�"]t�	���,{ܐ	���t�P��k�H��f����&PqAY�$T[,Dh��C��:�}����ByZ��T-09�0�@�����
+���P�f����
���nB�mL\�/5a��I=r��Cû��-�PA�W� n�{e^t|�,���ɲ�4�LY�C]�����fs3Dy�_vrv:�ɼ>�)a��rw�(E��A��y�Ēo-�p!O@���N4ԝ�:7��r���A�"ML�r77���" 7�Cx��h�[x����m���ފiFM�����`�7r%uI�]�g�#�����S�u9Y޿Y�ӂ�>�> <�0�|%��/P{m��]U�������T�����w���f�3�c�s[����\У/T�>,�,]�GՖ�\�>�Ӿ��g�q8X���@x��§
��a�6�0��$\�	+�M/�|cS@�Z�X����Ͷv��o�ϟ��.��
�H>F�)�̷S�0/��0ښb�V�:���z�NS��NȢlSJ���c���ㅅ�y�v�5�Յ-�՗p��=-ɰ2U�\���?0���]��i33LK�#��|���D5����9ծO[z@\_�"����d���+��u3����%���D:R����	d�{h�i:	�o��<�yLxy/sk�`Ɛ�R��e�#F��X`b��b^U�N�u���ΐG���'��P�kY��+t!1�K;����`����y;ӈKQ�WK%f�젬o敳�J���g�6��"���%���E�2�szy�����Ш��3ɷJ����D����x���}�B�7�"-4����N[�o�Z�)h�)�,<`B���<I������n��}o\M��n�-9�
���@h�.o�#D4): \�"T4X��6li�U-sb��)���R.^��|N�<���7�&�^���l��WAS�f3�(C��|t�k��	��~��K��,6���6�F����-�z�+Z&���+KV1$W�4D=t4�|��k�������jr���u8�جx�TX ��LX���7d�2��E/����	.�� �U�]���+�G�SL8g��r��J�s
s�+sb�dKL�D��Q���Y]r�oe{U�>p6�/V�T��J]I7���T}U�|�LWY����[��J�SW[+1�ݱLŖ!����z�1�O`m��,.c���>���F���7�t�'��ŠL��M8�]�+3���KzA�hy�b���f�c��/|:RT]bp����ǵ2�ό��5_arOj
%0�d&(Y~��0IFTW+�dN���Rg��6ZoF�h��4HУ� 6Ȍ۟����~�X
>�y�8	���z�O��R�k��?�6U�X0y�?��Ae����0?�?3�K8�<3$�ţ��E"hg�	�,X�mQi�31K�V*Eӧ�7�xW��"���w$�B����Xc���d�Q+���[��e�o�FFӨ1�3���L`�0r2��iETVU<+B&A`_
���w06��"��E.=N�
���Ϛ*���b�%>�J��*���˶�A�$`�ٖ|�����qD�,q%2�6Ma�9��-!�<�v�'�Qj�_{�(�5��D�/
UF��P��͈ZXo/#ն���gϺ��̳�Na���a0(���-�D����k���'rH`*"��J��Ңt�t�.�9���~����"�x�|12��-Cß@���-�s�t�������˄,��C���£�mS��w�����ElA=hԾ�b\�O]��9T�Y�[�OؼfpއZ����4"�RCn��/{:?M�Q�.GY^��[xY�\naS.�m݅���L(XX�"�N&~�G�~$�X!�2Ϳ�L
��*h�nD�&kY*cX���{�Ud�ڽ�~bk�_����UH�p�L�O�~z����	J��֟�5,��ц�v��0�	�㗛9<B�m��x;on[�WFˉ^	�ڤ�[x��=e��}!�QT��׻vww��B���st�,d�p{����}�Y����~�����������4E��|/����>��0��
��_�҆����Z�Z(�{�Ld�VaM��*�k�kY�z�HEh)��A�@����kNd$�z����h�`��ى-,٢C��_�Ři�J�ww��@������j�丷��+�<�z�ta��+�]K�8�>��F}
ē<��1�*Ԣ��*d�Ř�+Р5l˒"VT��o��:}��tU�`D"�5�^a��}N"_�Y�dP�E�a����y��b5T�[�/}U�l����|S
�u����Vfy�u:�QYȂ�t�^XQ�*N���>�*cѲAO<Y�_I��W%c�\�Iezg��}��]��f�4����D�ߎ[^P��Y�*�u�5�*�=I�1-kVD>���zP��2s�c¥�"�R��W�D12�r)�0��5�[��A�|(�KUU�W>�4)t�Gt�iQ9��T�`�i��f�\9����3�m�M懻Q��d��f�l|����j/���3}��U�4�1��|�D���˓͕B���ʆ�nv`E
��ğY��)jf��ް�;�+"TS/�l��
K��'�r&���ܨ���;Hg��-������!�t�m����3x�3h2��
�DGE5���Dv�]�>�[E�V,��.����dn��
��?�֮6�������^��@+�5��eF�C�
:�NadK*3�Jt��~\"�
@�܅����Q(�6�^���� iY�t�����M"��}z����k%BӸ@��g��Ak2е�'�S��>
g�¤g�+�7}�Cq�ɾ��v�勎ն	Ah��j2�,��ɋE�+A�Q�V"��UZ�{!8H��Wq�Ui�zjU,������/��@u�8jI�m�ls>���X��
i":^Ye�d��+@�i<�.�OO��E�o���|�S�҆"%�TĘ�ϙ�j�#� S�ʽ���áS���V�4e\�B�b�_����_v;P-a=.�{wg�Q0�=n��$@�z�TH�M�n��Z1`ҝ����׆�>ڭ!�Et�$dúq
�<�L4zm&~R$��ˋ8"��EC	e�o�d3�����Ubu��ߦ���gE���:Sn��2�_�Z��2hf&�D%f�1����	����෩�w��ha�=�J0�ĺH�S�x�aM'UQ �=t⛲��Z��h�~}��_\��3TDL*��^"��7@�E96�9�S���t�̃��kU	���N��pi���J3�q)z��rV-���Hx'z
漼����fl/+W
��e�M�
��fD��c��	�Π���Ƨ��V�a$X�;
�
bHuC�z��MiLv�l�n�S��s�T����{�V�T��(Q������黠��&.���٤�A)\.#�a�M{���5(��EDtT�usO�ll�)��i���M�;�Ŭ2�GSϤ�(��_D�f���3�̃��3�� U����y��X�Kfd�I����e�_R=��q0'���2�>�a]-�i��H�g�7�Dd�@��4 �
Uј��ZQP	BsO�+�T)9[

Ѡ6Z"$W�]���-�T��%��PD��Q���TSE
עIu:Y\�6�~}PYV���{1H*\�H/@�B�}"*��BS�iʊ>��.�
-�,R���N�nњ�/��q��Ή����~$�Lse��;дK���J2:�x�h�Yu`�@L�
i�*FR��!�M�퓌
��/���]�Gx1�6�F<�Ƨz{C����G�{�~�=��E�C2@צ���5�"�.�ej:Q"�f��PPPcH9��32�l� n��k�7��ȵʳ2ur��	
�����A��V(-�}e��L
����S�!V�2�G��A�R�3�^�3�B�l�BbL��g�t�b}�X��V��C��!�9��-��-X�ȯ�hQX2�����BJ��33ņ����~/Z��*k�8�/0w;e�̽����e�f{�ap�S�3�h@F��G�"��;�
2H����Z�:R�|��_0��O�vy��<\��2�^���1q�x9��u[y��Ig����d��ĉ�=��"�ʐB�S(3�����M����X)��Q��y[�@S�Ʀ=μF5����vSYg�����R��l�$w�|'�F6�+f*��������,����e,�\Ӟqtx=�ص�?0��˄�1�a@��'�H����ٮ���Oj�h�ӯ��y*g��1-�`LT d�HVu����q���`��ufd��ʥ���S�bx����5>w�n�/AQ�&�iW^��о�H)���2W��n~ն���A�D����g��&l(A6�~6k>�N�x��1��h�r�˙��@/����
K�Ae+���-��4W�˱�� 6m�fwH���t̘�N%ZW6X–����bç�˨�@ķ(,�/�Ђv�J�muJ��l	�o�"�`Z9��~VZ 6Ҝ(�3r6��ҴY�GLlBl�	{��򙒯����‹��/����e(eU�h�Zl�{�1�ة>693���L��x5+�Y�J�7�;���v�X�0����d]sH]��UDc�ѱA
��'���;mp��"�l�E�{P�V۪�7sBT��0���Ub+���~!�Y�Fk��ҽ۠���Su�
�*����SRUʩ�]3@{j�xX�x%>!Vb���6�[�,��ɖj�=|"�g�z�[mN�W����n�
p�:�a���P@C�S�;"a(B���E�!5'�z�j�D��ª�n��]��/��<ہe�.�iA.;���u��wc��Z���
�w��a�Aa\�VbŇ�3s��������� ���M���(�T���n�r�h�V����F�Ο�X&�L�2�����$�ܬ�C����1y�w��"���Js�w	!U���L�x9XY��H	C�UU*a��4�_Av>#��a�b)��1e��]@W�N!
�2	� >��T�jT�{t��UL�oHv��o�D�qv"���)���E
�𫽓��1�؛
�	�^'���	9P����}�eޘ��<���O_F���]�Xr��>&�c��j���"{i(�GpX�Q�(= �Ŵ��OV���_\f�#bx��rb{ׂ.����,���a��P4x�P�F�T����0���Ʈ�#|��6�gB�2*T�]o��_N*
��s���=U(���e����P�y�d$F�ԱF�T��rT���nD�ϩ�.�z�P�$�X��fiB�����[-\ �Tl+�P��Ϙ�O��IQN��0�3T�Ie�jO������0D�7��@EtHݖd�rX��b톘�;�T�4I�Ų�<n�`(*�4N2:��sa�uI�L,�g��)�w&ߤ���G�k��n-���D�=��i�5e`.�ˣ�zĊ���]������39Gx}���ȹ��vP����n ����fq� �a���-|sVW��+u�dg�̡1fhʄA�I�_��U��uK�|8�
�4���Y����ucA�ȗ��UVt�!8�6�ݪ�\a��N0d��^��V����/��ꆓ4A�>�0fՏ"��.2K(���g0�B��2����Yw��h�D�ԠxL4q���o��T���^W��+B݌�.5ٜ��}��[&"u�cO��E�
�?�G����s�a���B�"z��X[����B���tpX���B��Fɯb�^k>��6��Bx�\�L���]�s;��l��װ�\��� D���*�j
4�/S�jU�c�V��J�o��_�pۭ�]�g&Hިw��=����
�>����!-���ݞ7����jo:V�|�F����}}��,�x`��w���h'��DС�VC��%f�:��w��]��?����|��"�Vh7��B��&p"ܮ"��*E�(���R�'��a��2�h���g.Z�a�F��C���;�\ʥ�*xi�H�x������ ���{����v����&h^�w�?�Jь%ް
���Bfo ����*�5г����KDžԹ��"&�
`k��J�%�h�ig��COJ����8���\��rrؼ���*�f���O�04�Y>ߝ<m�m�ǵ�P���`�A{�3@�����z�=1��%^̑�W@*��A��)=<%�֍E�1v�|�O<L�S�8!�,�1�(|XyU���Z<�ͦ��ջ�XGUE@$Y*fF,vL�0ó�9ÍE���{6.�~:Sg�F�ϛx#c9�$ϨV�e�^�E���u�良���n�'3Ij>��]�A�M�`�1n�����%���6#r�M����cBx'�p7yy
 
KC�)�{&�
��P���t�]��}�%!�Ob�����V�A0�|5���ό��hg��m10=l#be��zx�z�K)�`�+��A5�l5�Qg'͋0{P�����
jIkm��g�8�w�0!nw�<=������'�32
[jV}�gu%�G�@V���6o0
c���X愭`�I�������|��d�eq[���ق�_h��H�s�U4qdS�Bx��s��a���d���4h*��N�"��#+��XJ�<���u.�"+X��2j�]D��i��N\w{��u�%��UI���1�A��?,�LgR�G>��Q�t��<�#��=�T���|�9O�&�Œ���=��Xy�9tfLV�G0�q���E�3`�B+�
7JQ� �qb�v��
q��,*�,�Ew�;P�����l��<�%�F���^a���i��}��x����@	��L�3�
����W7���W}V0�f�H0�((7ZĪF;hD��/C��-+XY��"Eՙ��P�L�r�Fe��"�E�^Y��F�����`q1癈��BU��9ʀe˞�2#FdfO��e'Nt���3Q���ΰK��Ae�O��Yz��	�r�f�����ac�\�.�w�/ģ��ِ����4;�DԒ��sE�������Y
J�}#�7��R7z���5�����٪�g̝y���VD���H���.S��&�}�JJ�
O�ɫ�h��������e� 28��h���ܥ�7��+m����<��0���"��QS���P�tLju���U��&uwgB��ԫ��_e�E�S�$�k���3��M櫅|���9�(�����j1�&'Y��:�k�!�W'��t�l�̜���H�9�0��|Ҧs�"�>`Y����9���ZC��:�q.��s,�Y�,7�3�񲦌W��cɢw�8T��N;h$�y�U���G��	���>^nf��B������LlG2'*yJ�l
i7�<�xn��8�$N�:ŕU�Jl!�
3���4W#uT�c�9"�S`�&��H����7Jvn3������(���a�ֳ��V����S�SV��W�8����U1_�"I�7��"���阓��TS���L�cn 4Q��?��XߎR�.���1`]��1��r{	Z�E���V�J�e�:J�8?�K)�i�:�����ZHB»�'��]E:�����~Z��Q�X���6���K��m����m�����~�S��u�����g��c$�(��(#��q
h�絹-���/N�P���DxWZƵ��9�=3y��A���<��i_�,�k��MCCQ�f��ә���zF#���@t�	���so�Q����(Ո����I�[�¦T��p��Ɓq�E�������TP򃸮6��^��s���$5I�⫡vI�%��6�ؼ�C˹��Q�V_qĽK����=�Yt�a�j�������+7��~d?�!0,��<��	3�>��J�R�pt�F1�d��t^k��@��X�cC�AW�B'�g��6�l����++���"�	A�L��aG�bm��4�=�L�?�ߗԆϲK�6q�iY�:��Yq�A�O��`!*���ņH���ْ=�b��D��{V��k0A`巊J��sF#�3�6^g�3�ӂ��W�uu�>3����|�A6�!5���l^h7B��Hyd��Q˒F�¼b������/9
�<��o�J���Fk���Nx�2N�؁H�^�َ��ϰ��ѫӋdB,o�tYm5�քa%��Έ��';�s��V��>X�ɍ��q)��OQDN�'��ۢ3aV�D)Ό�O�v�ލi�Ҵ2A�"���1د�r�h$��ܚF����>�Q��b
S|ĩ�"v����qC7k����>"J#��ZX5/�<J�K�Dbҥ8�AcgGl�j,��Ǩ�x��E�������+�N�}bA|��'k�3��{����J[�	@*%�o��YX��scK�j����v��2�N5,�,^�LP׮��EX�<�.�����kQ�u0�1��<=("w;;�M��g$�z��g;o"W2���e����C�*dL1*#uy��.��	cf���H-�D��3���e�\�X�޹��"���%�2���A�C��
��A�*���4�!��`���d���)�NPF`dŋ(A0;-�)+.y3�̕�T�S���ڦ#�k]�w!��9�b�[��U�k�DEC�

�B1���m��L�eLj����
�+Z�P����qq�i�^�/�l�I-����,���p4���	G6�D��E����ή&�ǽ�� ���qH�j,Q۔�gwJ�#��6��6��z�mc�ی�G�p����&���l�tM�p��
��p�/ag���zd��*�|�`�lu�h/�t�B�&�4���TX���CY;Qj|Hj��mU#e6�T0�%���z�����g���egK�N���U��b�[����Z�ZL�s,��j�O.���t�����O7�$Ƒ�wK�B]Qf.)�Oy�ݛw�~��37�u0x��q�JD�I�e;p�ӊ�1oZe�5��Z&�{�gL��\��|�����Yj&XM���;�̔�5�s�!���~�TAͨ�c�Qi�*�#�f
�F_,g1���&��J!}s�/��Y�;��P�H��fR��nD�D�:�ӘZ�Q����C��X�Q����8����q!�8�gȰ2�Q=s�T��j>a7��&��I0z�Ys�o��WC2+�@x���G����3NP�pƪ�/D���x9m$��F��o��p�d�E��A��L�N�u� ����c��.�p
���-��`l	o��#R����d��J�M�����a�?�64��^�⿣A��5���Խ�;�J-Q/��.[���=-ί'�^��
>�G�t�m�jWA���ڀ�L|Iqoo���+��ո��[����l6��lw$�=f%�\�m��|lƛ�6�JÍ�7K6��˫߼�T"�zͶ	ӪIC?�yE�=����aJ<�|��ku��1�(|8��\pP6�ϱ䓱�&֘;����NjP�ٙ�L°V=����S�g����f]����x�[�g����>���4�ރb=_"�Ʃw�����(��P�V��*�	��YbI��\����mrGR�՟Iv
�8.<B���dj�lj"��k��d�
���6S�t�ցغ+�H�"P�'ӎ���6����k�^��ce�4O1��i�頜.&f�_��u�AEdH:]@�8d��7�,�-aqZ���[5b���ob��H!���a�k�c0+�2��eq	 ,i�hR�~�]�H��,��Q.Q�(�L�n����on��M�>�'q^0��!����U� �o�e��z.s���D���
BU�B̤��v�u'h���9����Cxb�t%�2�<ٝ#&�ײI蕝kލ]��3am
U��ˮ�d��`7fT�[޴&"�>�t�y7'�%d5�!�K��א�u�q�S_�I(x`N�d�
�c���Ԥ�("��O	x	�ml)+�d�;��
’��*��`�뾋)�&��	�P6�����.3���F/Ѩ
<�r��נu0ZX0��7�)p��6�@S`C@���JՓ
����s��#���Ŕ[F7lYUy�]�"� ��P�ۤ������Ą�����Ӓy%�@E��N%����8��z�RW;"�0��`K{�:F��D[ŋ������}L6�̛؆B�71�e>��8?ַ�R�`e���u��Z�
� �V�����c��5��*��x��(����w����5F�@�Ex�Y�:}���jC�ި\P�FA�0	��rN���2���:j�����c�����8���U�/�Z_�я0m�뼲�Ģ�9U8�9%)�kR��nN�MO��'��öz*Aed�̞	:;X̊��7jH�^��ag�(�
�	�f7f��u<kp�K����� ��Z�\y�"�ͭ��nk�����!��ԋ��L�����_(;-���=e���9)j�,P5��*G�k�9�ͻO%��sB�*�x_n��F|Sr`�^U`�@�ć�]5���ΞG����9m��k�Θ�1;�ѽk����i��u���4w�u��v������-��:F�pP���_2��<ȶum
�]l�97o-v#�����ĩ�Z�&l���-*��Y�{�2�.�����/Eա+��
�	��Z�乊,��C9V�D-�qYv#�Y�l��
Å|?�:(ZS<��Jʚ�	���U]��E��_0����ь{��]{F62a�m&�M%Uj�g�7xv��q�%}��_��qL��V���tI�p�,z��Ό٘A�FV�F��Kc4�
�S���&�J�%<a���騸�q�&��o�*���<AZa�"@M�l�ZB��ZO\.�1�6��9��\�nմ~�M�n�*Qw�=�R�`Yt�Ԧ�D�i�Y+���>\�b��E]�Q{��R�ta��D�Z��w���Y�3 �DT��7�3��`v�"���[o�
�zO%kk���JCe�_�+��Àso��iZR�z�d'����%X���B��m��VJ}Bl>�%U��.b�d�OJzz�C-���@/���J?��cVK��+�)o�bB^<�4��4���ᴴwe'�Q��u����3T���#�[b<$���n@����s�hf����
���b
Uz
y/<VdB�*���W�jp�]À�ȌE�X
-�L��:�����z����~hN�`t��Yl���,�"FjTyZ��|�.�	��'�(���
ҿ�(L�wўr��S�ՙ�I��%`}V���V�vf�֟�HJ3��H[��9�#f4J%�Q�[����^
��#���S�2d-����?GWIKq6k���ͽ����XM�q������i'����@G܃�Yb���&�:O�]����Q��s��	m������%��t�-!���F��wvtuO���mV�[3�\Dx��~��Fn�W�j`ʉ�$���+�bR-�~��������5�����������$�3��Ud]&���`U1vaF�9�@�̸�{�+�n��Dk���&��&�QU�Ɗ�M/��p�y2>M!��]���o\�r�5�)V5:]N5��m`�'�z��ծU��D����s�-�#Yښ��"��4*��WftO��QĪ�%��?��R�dΊc���|8jJ��(ad�фx#�42A���M}Õ���RoJS�p��(5�mFY>IOڬ��U�K����A˓d~�6�_7W)���OC����:A���\U���x�M�N����$@�pB��2���˞�<�ף��.�Ꙉ�a̗tuz`�%ߤMAzX1�(����E��l�\{�L�u�q�+����4��U���aga�������U���mrvFM�QPf�}j���Ӈ�DU�m�Ǫ	�̢���L�X��(<��[�N��E�Q��k5��i�W����5ʄ��D�.R��6(��jIΌ*m��w9l�ѿ���=i�BS�$�`�g�9��&��=��m((�/��R�엉F���51E��8�œ(��2���"�Cb��:�("�O��l�x�m�L�
(���ɷ,�u6���t�0��ѽ���ƠF�';�#Xxԇ�B��4�����!
'F���$�u/�`����BAGɊh�|+x�;� ;-�f�s[w�G8�>�,(NҶ(��OiuDVm\��=ѕ��iF_!��VUg-��5�h	�Jĵ�{I	暴
�����˴�gn����j�z��7�{�I�r	v[(k�/�N�1?<%�Op�,���ET��f�Z��6�EM�N݄��ۤse"[���X�?e���R\�>�u�%�95LZ����MeU�f�΀�UK�=!��T��n?���*���C�U�'eBm�:����8�v�X�&�]B�F&@~��W����"�؟�R>\�˶Zg7F��ΰ�	/$ݞ����B����eEL��?%x��=6R;�e�r���BP����p�%��y]���^[=�8���3�_�T$���pE�Yҫ��'ƹIh�3g�/B�q�Ӻ���n���Lh$��|����p��z�����w��-�N�l���J��_�07������d��\гϵ��q咈��#�[l��_���e���D/�P��wv2l�B�ad�ΞF��c���ֆ6��F5 /N��Ă]ba�~>gNSu���X�8iL�w7��:�A{}Be㨨ə����-�y]*(�Cf��?�v�)a>c�ǎQM��(#���C�M}�������q=h��ַj\�w̍k�ҫ�JY���	6�vN�b˔��e�'AUr��V�ȋb젴���E3���^FѾ��z��?:u;�K��SG���Y(C�q	x�k�n~RK�d�@�D_�3���s�4��)}B�u���ѡi�(MӺ��9���Q�+���@F��l���D���=�������u�W�6wmP#j�
j+n�C����=��1V?EN�4`�:մ�u�"��@�&�$������\�tb���UR>�L��;��
�.�<}~����y]�s��s��4J��Ʃ��Bl���1��C6�mAm������1{��PR��M(H������S��y�slC�����j`Jv+� Ȉ;� ���T�j1�_T|��|VS'�������ݠV���O��d��T��O��#�e;�8�Mٙ�"�Z,�uA�u��߹�Mc;1��a�P-2 =a�j�������W�������(to�p��,�z�.$�@{��
O�}�����MY��ЛT���L?$�s��2ӭ�[�+i�ӖX�^�+�_@DV	ᡓ61p�LA$V�cu�h�>���
��ӚJQr�BV&z,��ކY	�ʯE���&�,!���T_�w2���]�6�����fl��H+Eip��T�}�q۫�߯��C�%UV�����]��B���Xh����VH��	�c��3y��
1o�sj\k��)314+�� �m@�`g(3j�N��|��;Z`$0��u�E�kW�#���}$젅/�s��B	
��\�t�.ˮ3D��K�@"a�q�&���*Ä��I�����
��*l���Za�@����Gs	7��8��&��D!�xk�u�����U��Q�g��� �R��͒�+�=�‡���.�I�7��=O������~	*���dcz��{�]5�e���Ogd|]
�:��6+(�2n+5׊a�9��W�H��)�|M�(|Έ�0�jA��]5�������99�~�|.4����Y+�p�P<΍�ϡ��d���4��F4�(8�E���-���}�P1� Ab$@h(:_u�[��hcG��c48_S�6��G/�b�/�	�g�������!z�]���Z>�K�W	'���f��R��j4��9`aB`'��	�U�3������j�	

�GU?}�^Y�D��&�ۅ�N�U�����D��m����Gܜ�$؎&GX�5�k�LM�e�m�����,�,/m-x�N�@:�P�LnO]��5
�b�k��0`TY/�<�u�1��/}fV$̗}P),���N�����q���)����t�I�ӣ�q�P���x
�@��o��G��msf2�4��e�li��I�24���!�u&�W)1���+T��싗��[vV7~F@)��I�p�)�a�A�U�4FH�AU	g��1O��cjn����������#�U���Ű��>K���h+��b8���'�;��,�G�6{��D��T7�a�p�ܠ�t�l���l('�$��� N�*L~W�Su�!���:)���
���D�f����MIʇS�Ea@ ��\�=P����MY	�Wi�%~=΃�	(2�n��+�4T4�r�����5�h�k�EE5O4ѽ��YbOe�Z83);�3i�|�����T_�F�+m�c�
n���hш����@���{���T��f�ň}��qU3qݠ�	I=i�OF
�u�b�޻@*A P��'���9��Mի0����N3ח'/ݓ��730[�]'�JKM�F��jv�s�p�C���(��Z���>�
|0�8����ݮ�3on[�^��e����pV駁>L�*�B�Q}uk�>�*'�
˴K����n�kB葎9i�p��> �щ��[Yyt��M���ޙ87��*6�͑�
?ن�-�����{�F�u6�I�_�u���>%\8'��*���{��M�����.�Pt)�KY
��E{�n]��*
�a��!ǰ�f�Jȓ
~�hË/�(�։����uZ�ʽnb�jɘc��So�XrSZ4�Aq�**[�u���(�*�"��Ǩ��ω�`N���pY}�Mл��@ =00h�Q�]����
ɸ�)��v��c��u��t�#��G��k�3��Tcid�%E{V��	���^�1���<�y��;KV��>��=�B�޹c�3�B^�NzEŌ��m{�7;7T�=}���.������tW��3���s��/� ު��l4�O#Ƌ�F�ȀA�� -�FC�y�,g��sL�iQ����[�xb��oU��5�ՍJ����V*]!A�D��@�a���T�h�@��J݌�Q�1Ͻ��Q��/���?����ѰUM�R��Fy��n�r�QT%;�>*W�� �I���67�S�FO@F^0;q�*��Ż�	jܑX��O@���ơ�c ��#����Km�~�Ҙ�`������1q�Fƙ
ت׆�lQ������2�&ҁ�$^}�R3�LQ�8m�)mb����@�T����5�`QƂۏq,_���j�yMѰ�������u+�����6�"�\.�^TXǨ+d�M�iLph6G�™W2o)�ļ�܂N�$6�`]�܁wb~�;�E+g�m�ٹ�U;\�q���
K�f�?f�jO����y��\!��O����;t��0��5
R�mR�8:�.�U
�e��U��i�n*S��s��ٝ8a��c�u���޹c���JT$;�9��o�f�5�=�v�%��<#�2s/A<!�50�`��BQ^ɹ��=B4ϸB�Z%[g�
ew+�jP��EU�'���s�-a��A�
,����+��`���+�����R��yF�$C����C�
�­�ת|q�G�O�U��ļ/eS>{�LXq��n��"�O5�����9�fo�&���%H0n��bC��bҧ��1Q�I���_�g��&�5C��,?�� �7��Ap_A$����L@��/%��YuÔ8!�9|<�'����r^X� 0�]H/��,%�FD4�»���zg��A�N������1�c��I�F&�QE
�d����u=j�Q�;�'�[Z��dJ{>��☔4�.+�����s>��E\̥I9-"I��0@�R��vG�37�b	/�IV�E`�	�-�:ωS6�:B���,�H��N1]���2�1�'�e3�;�2�nb��.��j6 "���a~�Q�֣��j��uTi����B�kU�86��,�o�x��>~�$q +Ռ��U�g@��L*.�<
��"�׽N�?%-(R�r�A�8�����
m�jYЙt��_,G�@\!����s�͙iҩ�Z넽	=l����}��e�h�I��cl�8&��8H c*~�.��O��O�&j�J��$����k�8:{���y6��~��9�@F�P���|���5-�zV%?~WAD�PMe�fP�ؽ�I�R%�V)�ʌ��8J !�`#9�y�Z0xPo�g��*����K�}*�F�=;�(T�����{Q�^��L
jKِĐm
�Bi[
��`�}�#@�l�Y�t�$���
�����Zr`#'���*�ԛ<�x�"�E��B;��	�IY��|���h�hJD*#{�Oc��=f|�c���,� �QYQ��u�P:�ݶ[]�f�����YfҸw R�e�m��T�Ґnb�O���Ch�6�Q����P�Q�T[Y
���<��PA��‚��p�<�ށ#rv�%g2��kF�ċ�	c��N/�yY�9�*;k�$�D6j`/��7d��I�U��.;E�jc:1є��I��Z����L[�L���
v��&�T�ɏ��<ӑPeʵ���#�T�.-���G�jO���/���(Y�!���s��Z2��S�w
�j-�家F���fa!�C�1�߃�"\<�=���r	��g�r��y�uZ��pe54	�t\Ģ�d����`ц���{��օ5��w�n�&��P��VF�ʣ�Gc兛���ge%5UV�{j�lVS�h�$��8��H#���2wV=��l�̬�%�Hچ=e��(�9��뷑�N��OxpjZ1�_�fQ��3�l�!��FQ��C1��ސ��4r_�}%ڊ�[������-Ho(iF�_H�Ɖ�/[lC#Y�qd�&��[�'�ޚ�)���Mc��9d$�j�f]�Rm��ݚ�Y
b�h��S�B��]Aa��
s�?�h���E(�jd͊���K��(�7�P۶U�J#~0+ƽ�����AjD Dz<�P���LQT�U}�5��P:�YS��*.����Sʕk�&�D�O������]d?V�Ë���ɕ5�C�P��)`�?jq��S��*�Jv��8�b6G��r�B����΂�gQ����g_D���l�at�ȥj�R8Z2�.��#2�T7��B�9��l���/���^�Puh�t�s�U�������pS�P`�T��n���<��c�֎�eZ���@Zu~E��}+ӎ�k�V5�3QFb4w��U��|F�:ML��|H������=/
�4�[�O��+�0_�:�z:�"��b�1��=<�]k��py�x_�N��Pe�NɆ��B/ݰ�Ș{{U��#��W}.�A���M�gˆ�
��q \@D����غ����bC[��A~�,���ir˪�Nh\��F�'�_'�E9_:B3���2[F��Q�*�H�J�F�H��X��3����W����Lgr�=	��'�"�d��8lR9�DbKԟy)b+��V���)S���sEV�d�5�s���u���S`]��.SX_F,�&��)��,bᝒ)	�Q�C4v�(�˅�a1Ψ���B��ı�2bTe� a���j�p�%⠴mn)Ξam茹�'�!x�[�ޚp�U�
m�~�bU���{<��9T�f���j��Zf�*5ȥ2�HDW�!tvL6��'O8�–�o���ͷ���6�-�����S��~���Ug��n���	S�[�6_U������T����)�"���(�~�4�{���]>vG�V&���P-��{
�U;���>����RY㝶�!��;���w�n�ê�O�id#S�3�QUȦ)[�6�m�j{PꯉAi��Y���>�-��6�M&-ȟ�<1>�ǭ��I�fh��WCF�5�0.����$�6V�+�Eq2(��^�f��
��C��84楗�t/���$-��& )e�w����0,����)���{e�
�a�����.=/�8-�YB��ʋ�P�@#�K��D����uq��|�.}�ٚ ���AW{:���eؕ8c�!G`ٚ�h�I�4�{��Dz
uy���J��Ҳ`�%�Zz�!��T�wh܁)K�4������ķa�;���3؀� 1�'��;*Ù��X�&\�_H�֪�̹��-�ZF�-7fv���o��x6��y(���"��y2�%�j�u��Q��Z�n#�y+�*��>=Š�h��i�>XdG�H�X޹�C�C|+,�:ȇS*���Y�z���믉e&��������eu���Sw�R�1}̕�2�^ڨ�O��D��<�EҢ}��zAw�@51$�M�*FJ���®jh'f+K�+sN��y
EK�D�L{`�Ssb[��Ԯ,G�c�����"���ft��%�U��=��]�eZ���A��6qEg�N��{��ؽ�'b"Kv��)�O֍�y[�N?�*�'�候�x��9>��̭4#S6_ �Iߗ=Cej�Q׍�� {�w�:��eG�A�@��G�+�qHV�{�D=�7��J�5�%�F��%�U1�r��q]s��a�F3�
#���׮�U�Y��z���L����eXQ�{���P���x<=��^��l�}\1��S,��
T�*����S��w(�%�튊�)K�;��g��Ј%K/������b��t����O�;"�h��vGE�z�<�4%�0n�ؒ�W����B�B��uRغ#���2
���8��)�lI�Պ��މρB�@ؓ���o�g����b$����0X��m����z�p!L%،��Π�;��5�$��T��,�c*��"�V�¢*y���\�c�H@�t� c`�=*fr*E�6��,ޗ3D����l���c)�^�*��
B�R�+�`���V���NAI�̣���k,L�<l���*�69 y�e�|��|���i�d���{�C�	��YR�j/JY��V23�`�_�v�_b�e#�4Q��4�䓨�N�������/��"͋��kY��C��9ᘛ�wc#�d�`J�Z�ԕ8J>��fI_w��q��2�"c����t�f�|ɇ���-銈��D��H^>���*a�s̷8�y�^�*rt�1�X.3�|m�%���=�����##����F�?�s[��y�"�f[�U.�JMY�su}c����ލ��&�
�+��(ZP��j�mE���	.�F=2"��x�"����@�3����$,�X:�tNX�܄B�.��.DDb��������8*)h$Aւe-Q�+�02n�J�L��޴�xWr��{e�*�U��j'/���p��T�M���ǥ���`�B`6?+0�G"u�!�y��b(��.�������_7`�T�./�fn$1I
�{�A�aP�Th�i��Y*�췀f[d��`��s�y���w{��P���ޠb�~V��{;2����
��N�g���R"O`P�\?�CvH�C�Ǒ�&�P���ْĺ��\a�%!�9K�g��sE��^��rs_g �%�H
���nR����ۅ�h�3�"���J�P�ND��K��|N4_�_rtF)°#bvePI�]��9��g��|)�����~�[N_����bot�����
����Z`�\��(��%U��b�"�F��/傁/.b�x�I��{������4��w�wɴ���t�Y)_4��>A�i�/��2�C\���{}~�!Ә����eE�]a�T2�i�bS<�Dn��Tf��x�`9�����_a/�B�Qۂ5�vp$k��"��oR�@ �x�tԽ�V���7AN2�Jp[�A�t!w�ʕ�j堘��>k�-z���;��i�	��%�H��������n�f啴�wc�1{�K�ACh��Lt�x
��em�����a6 ��A�,��i�y����ψ0q�AhRK6zT]m��Q'St�?�$�]DppаHYeL�U��;�	.ZZªb���
`�e�F]�ze?%�6oH�BO�0�e���k9�'�G�=����vw(�W�H���
�ݬ?ᾖo��B1z���qt���\k�U��ek�'�z%n�Z��4�-q�N�D������12͂\5��qԄ���CR��*H��m�����ɾ����W�����[9����H@Kgn9��h"�yƴl1�Q��0
��}K��-�cc'��5�oB<>�)�x,:�v��j-%h��R
�`6������3W���m��"�HU�
��(}��EJ�c>��b�Z03A�؜���(�A}�숫#��c��L��յ4��8���ƶ�����%^[�ڱ��`��u=���+Ǎ��%#Ŗa��d�P��Q�J�r�5j�f�!��N�0o���.�W�Ww��as˥�J��rc=v��-7�:�ri�=z�M 
���4�Ό�@Yb/���8��v7ە������� �UY�V�
	��#���dX�P�!z�3P�CB'��&�n�bA&+�"�#�%�N;|V�ɂqAPc��"�"������m�X_�O80��36���%2�Ha���t�d�G��9�X�2��
S�
��M"b`Q�ǮqS̏���~"mJ��rY�@�D�l�N��.`�5�F���õ]y��%�2QMe�E����.��*�'���Q��H߈��Q�6�~t�Iv��C�8���ό^3{
􋰄����+Z���G�*��,$z�1��������6���n��=��`���2�f�P��X1�ÒeZ
��g�[�9Y���k�-�6k
�W�ִfDW.�<�E y���1�fN�_*ɹ�0�2�})l7P0Q�2�\;hXT^�(��t�
Ы��UXψ�Q~e�:I�Wu���EؠcL�[�]�͛�{����
2���J�1������H�p�H`��h�Yv��u�x�ś}zH_
��E
yi@��8���7����u�5.�Z٦y*p�����ˌ��%[E�I �e�mG�y|N�$W�����K�������/e�@�UKJ�3bh:Le;qw[���R��]��B�Gh��s,8KKoX�f�1Ȥ�գ*����`�Y��7���3�
�+�o>���*�xRn>�����[[zy.���Ui%\�nw#��t7�;V\��i�^>Uf>xV<QA�
nU�,N��`oHP�`]q��ܶ��0����X��ۏ��R�Dz%�����v�)qa��HZ��w�tRуp�'yy����
W�+Z��uS�pYU�\��M�C����?��rP�T}o�$Q<��ߣ��<���,{���4��2��5L�#[�%쎰;Y�i�R
(#���R�N��`y���NIpZ0g�"[zGpKT�腿H�(�q8�8��({�q���el�ٮ��7���}fi!�C'Vý�fͻ���ΈP�m|;���
6����ԉ)��˖c:I�L[Lݙ����H�	V.���1��w��M
ɒ����9H�x���|1F����+�pچ��5W	�B���A�:ؿ�p�p��1{r�]�%�3w�
��ȫ9�g\?�b�8�GL���NF!�|��J�R����_
m���X���om�J�Wx���X$o�VJ�'�����`a	cN�d(���%K��1��Q����3$#�R�������!�m�%�
�%,�W-4��|�Kt���el����cO
EO{f��R�ۦ�.I�Т^Ɍ� 0�<� ./�kw��Q__Σ��:��P�O���{F �W-Q1(3Re�aV��J:	�F��q_r:gs7jD.��F1�z*��›c��*!�-�'d]�:SrJ����9�l\S��m3&�
鞸�L`鐈�	�en9oFȻ���0��Yb�P�V(�{烈d�[(T�r���`)��%x�
=މA�W��S��� �������I����1j<�I�Qt�Ч*{9�23WB����7�%��iiTF���l:�m�R4}�}%�������e0�fQ�Kԉ���*�Mdڵb/=�NX�"�,��j����r�65��QI�G���ut�J;��9�C�:{^�������阷:
?���4��ЭI�=)W���
C���j~�~�t�n9ϩ�$�	L,��;e�61d�V��a��K�^��"Ø�vT��"UH�H1��}j66ʋ�]��F�*k�0O�h�*TJV��P�3�A���ּE�Й�l �
飪F^�#gq-x�8Ԥ��ٳ.|����06e�>�HD�����/J� ��5v6�z�9�B^|&�ݔԪ�=��k�A��)�+M�=�Z����y��"w��ȡR�T��-Ό�q$�6�]P.�D��P�"���62=�+��ag:����E���h�@�뤾B�J�}W��l����'��-�i��V�z��PJO�D�<
3���9a�;��Rp��Q�τ�	k���k��+P�
v�˲��E�ـƪ>N�/0
2�_gj"�I�u��Xd8T>X��ImL�N7nh�Z���}!;��'�Y����H���ѩ�D��jյ2���pG2��@f��Ƭ+by��7\�1�
FU���S�+J��713����{U��I��yO�rXõL�HM��|X6���c��4Wq���b��V�2H�C�L��Ş�U�Ay���g�$�����D��=˶���Q��k��;�ӪBAӣh�Ռ?�^y~�r��A���g7�
��-[�}���dR�v�\"�J�Wk���[Q5[a���L?o���̥j6����C&F?�+���[�W�uU�c�c�%�L�DV���4f���a��ןQS���mfYK#j"{��5i"DM�`3d"�(��6��h&M\z	{ՙt*8���m$�T$��)�Uq��W+�N-%	�.�׬ ���P��<��VB#K�,�V��z�Z5:�3�t�3]��K2�4�Z��(�g��<�uz��rm����uJ�
�TՀ�7]c @e�I	��W�w�أ�Xg�>�DI�
��h����V�j[/ov�7�A�®MDߩ�m6=3�x�=�r[�q}1��Յ�L��{{(e���{�W�gga�H���(�5��<��ԋs�Q	��1���4������*��¼aj��j�X�4�!f
p�D�.�F�U���a>��/�U8�C�$���p�����UZ�F�X�����(���Q?���8�b\1y�i�ԩi�0�T>'��|7�)�(��U�4�TZ�j�!}_�F�_�J�����"�헙��
Y�h�N/_V�δ���*đ��"j~��$�+9���zNM��)v�Q���s�O�\��՚�$�
�|�
�����r��#�V&ĕ��B&&T���
�ko�����L�٠�H �����'5u����>�٠D��i%��R��Od�����/�[�'y�G���/�t2y�i���N�U�Q��7�*A�1a��`�0���60������/�(����~4eE���n#(�
�h*�W�iʲ�bQ�6՜r@�d�*����rd��׊��(	[�&
Fg�k�FnW�j�f7d@E���$����Nڮ�.j�F�[W�8{�9\I�G�YBXܽ���[��Wa�T��9N�ciV�� �k12��N�'�Z��>aQYw{�X�aRmFټ��d=�$���>�a�Y��F��1��pk��5*��r�w��L��JO�-.��_�c_����MW��z*�l�]��;q`�W���&
�~Ĕ,��,F���|B�̴�D�w������4��vW�TNWѩb+a�Ft�
�D�����<��~f�#�P�nK���'V>'b��b(�5E�͓�j��cG�KVX��h��"A�����,�!ޗi��pQF �Q�4�̖/��U�Y������j`�"�?�)�,��fğg��|��I�c?��J@��wl%�BDM�ʶ�`^�Vh�T��h�yV�VF6?�*�2��_c��{�,��0��M�D2%���2�V�v�V&���J�{���߉O�%�z�1(侭�WE���8�S���``�rv=��A�p���]⋞�'�l���[;��,0��q�›�E�K|�@QTc�:��@�_�'ހ�]��OU&�ݴ�3��㒱U���(.�t�	z8���Nv�൪\�JR������0%�7���Ű��J]���q��_��X7Q��4/��(6�R�0+�XJl�JN�b�AX$��x�c�D,�X(�߅y
i㓆�#I���yD����V_��i�J���o��Ep�4�}�7}5ؽ�
b�q�&�*�#�V�c�v�*��9����a.�ݩſn��A&i�щ
�Yo$�YRWc�U���K�-%p�H,�SgE�X���,Μ�ֆV$nh�̛�E<�U��H��4(�
�%r�� �wS�DPU���sP�
��
��'8�c!���ݱFy�`L��k�3T0
2%k<��h���yA�mI����8=��ZgP��-%�&1r�����OUb�� ��}>���(Ci���j� �X!FzE.C���Ux�ł���m�3'!��K�_%̛�-T[�eZ�
��X�Hg�Zc��f(�Y��|ݲ�dr-�31Ֆ	D.#+[�7�_&�V�i�*T�,�~5�s��T��9l�3�5Ժ��ؚ�~园�1?��6�=zIٌ��C���理�Q�������[1*�K/Q��`���Xd���X��;��Q���,>fvš��&�:
�q�a� �s�P8�[+����އl����ϴ�K��'	��P`Q��i5��Y�Z!)
�
�Q	[�;�[vm��	�р�k��b�� !��_u6���dET�)3I!��J엄0bá/���h0�^����gu5�#l9��fs6̗n�eM�*)Qհ>A߃���L�XL�G��Z��γ�gDz���`���2��4JNw
�v�_�OG��C�Y�?�C/����L
\{	�
�IΉt�h]�*�5��$n�<�����-��
�7�7�ٌ����̘h��
���e9�J��4POĕ�f!&F���|(콴��;�j�0���y�M����F"#�o��W4���N�	�'f�Cz�e�5��=U��sϛ���`�0jxQ��w,DYY���8.�+�)_H|��>���@	z�iw��`�w�f���������K�Q'��q��4^���AibWSE���{Y;.�M&~'YT���
	I6�
[�'�,`�������;e6��
���S��+•gA���5T�����+d���o��D�4���>N�AِP�ac1�s^⹠E�b� ��6�o�[���O9츚d�2C<5P����i*zg-O�,�(ͥ�JB�j�HM6���K��xb��SmJ0"T�E�����.�d�c�ňpJ�C�D�H)9v3�$To��9��HK��jaj�{;����j(/��p��ɂ��uv((o]%e
ac=���k@h�����,4c?	�`u��ӓ�ؓ��RUa��}c�T�$q�����G�b���#�%�s�c���0�-��i�*+;�o�����3g��ҧHj���X���ZX�����8��bB���ƃ]���i�$�g�.Xm���[5yz��J�=v��G�.B$A#����X�	[�2&�D~�G�Kw��}��j��--�A4�%�	%j�V���:���l<
"l/sV;�a�^VM)��bY�s���P��9��?v�l<v��	�9��T�̨O��Pv|����ّͅ�q|,�uL�6����	1t`F����taXqwNGw�T̰s�rәt�T�؍��NK{��ƙ{���`�XΗ.X��R��^�	�,�U���	ѭ{MυP=!:f�H�i�+䮘���0T֝�f���B��}$�=�S�4�'���.c�X��S�|x�#�d�j�3��(�bz����PX��nk%x�f0[�~�4�A�)�+Pa�ˆ.'p+�V�)1����,=���=�
�^�\jt#����lR����	kE�.ܰ���fu	�cg�pى�b_��8S_蠣���a<5�+�V���a5o��U&�ִ|3�.P%�E�N`Y��ol�\�
�
U�*��o6���ծ�8���Thu&�ai�a�Hz��[tvb{ׂ.	�d�lG��.��!&|Rt��Fw�
�.WR�yg�Mn�"�~!-/�_��!Ѡ��['t��=��"�(��v,�q�kP߲7�I9�-4�"m�y��jd0�&�>��Cb/�wAjbr$k|‰C�X���7��ī�^�0.@vVa3<f���1S*��ϠJ1͏씬�lz[L�k�k�<6��Y�#`1�n@K%-"Ä�+lf-N�6�G0�>E�w͑�N��'#l��_hvM�z�3�`#�L�*ax�ae�J�*����g܅�@%؉���d�8(Gy��aE�^5���Җ����i���(7+��#V�`oCM�BM;�7{����I5fN0����Ҕh50��	��&��4-�]��A���a�b�*���;](;��T@=g��iT�~�`�����F���F�ŊG��h��G�
�� �S�����D�]b�*K�*�(�:�jf��Au��j���Ϯhɋ
[���[�y,g�:���
Գm�s���f&�t+�u���̴ݱT��P�&�y)Cg�,�nj��̬�e������t�/�o�|��?�f��S�eU�-��2%�l�Ӹ-*&rF"G�.��^>�Q�1����8��o'ߖaz��	��H��6w, �۽
S��PM^��w�Xe Y�T��w���2+�4US(��0�0+!$0�R�z���:��ynkK���٭s�[��d��E�I����r�D���8�`
�_$�
�:N`4�|��b_��������9�pV�7�Y����GJ{�߻����*<9Y�V�)"��bMb轳�p�(c2��Ě�{D��p�HOl(*7/vJ*�
7��KqT�Vܹ/z�Kls�b
�q$;+���W9�5j�K�(�F
JUz�� [���ۼ%Qݍ�g�*�	JU���a�z���F0(����d��n=	�<iż�T�+(�3��g��$�����e�竿qB����h�HtM�01�n�"��h:ѐ�mp	zo��%�Z1NN��A��eJ
��Q�݀h�����}��:��S�y�B6~OK���y4^K�託�~�im��2�e����G{P�>�`
�d,X����n�Ds�0�6�dt���b�@�z�RGY��y_r_�&ڻ�+�b7�q�,nh��j}k�]Wd�Y�9��U���d�d}C�L���Vd���]VG`>2a�ɥ\�%\M�:Ղ=�<��Gݘ\F����T�DVe�'h#S�V�l�Z��P�6��9�#;T73����UliG�%y���(m&�Y�"BI��ЄZ�V�����J��0��ݲ��
�m�u<]��M��I	asK]m:�ԗ$�˴�e�uP���J��;��A���<�0p����*:2�I+���]�B��h9�eZK@F����$Z���	�^|jB^R{���S���EO����-�J��Wp,��������m(BZ���f~hL�1����E�(T"�j��`mċ
i�:\_Ii�8�_�3���}�T���$i01-���}P_����Ǿ���W��qa�F<��V[�1,�aG���d�ot��`&��%h�8����[/ӵĈ���p�oYU��Lz����v/Xl7��t�Ř������O��	1V���[�R�$�ުW��Aj٢�-[�Y�ݘ�na:����NF�(�1:MЍ�^���=tn��vB�ːF_;�5I��XFG��Z~��y�ܣ�P���s�#���m�Bg��W��`�����y˲�	�t�"IU@�&��嘟���&�hb���Ӗa�o���3&���`���UT<ݺ��s��x�Mu�T��ro��(*�[��[���7O��J�3�f�^��W܄�4��#^�%��Z�j ��I�F��IU_0l7�5�\��o�el-��ME܉�n����("@4x�f���[�y�{��Eޙ�&m�S�b��BP�uT�1H��)#���@Z�M�s%����m��Z�3"1O��c�P	� 匬2^zM�2hE�kԛ���:�ۭ����v�eR�A~��|!LƊ(&2�m�2��Wqn_�)7J	uj�ē�����p�u�g�������L�ÓgfO��4
�Ε&�?vu�][M�J/5U�^%�X^F�mzʕ�v��ӣ�������n��~�^�h!�E�5�7���Ice��K/��&"�
zfu�<���x���Y^=q��^���R+J�q�����B���'c1��Be��L�'��SV+��bh屁r ��է�P�-2��>�]]�����D���ޒx(!$U|-ذ�'*dUR�ʫ&�ie�D���b��m]�w�&"m�3i3�x�Т�v�Dc��\

#d&�k�������7G�l��5�'�hاv1�ח�?��]�5��A��\�B��t����9a���L�W�AP����)NsPYiۄ#-EV�^���C�ڐ���Y�jmV�%��.aM6�x���=�Cڌ��W���E�G@�gb�ӵ-�|��bB�m�a�=`RM����B�2��n�;�|����Y�]��)x[��S,R/�����Yn�q�hwF����,���BN��Nu�vh���7�N^H��4+�tk�'G�A��De*Z?ڈ�g��;�@��񳙽Œ�!�Y�'�w��[0��q�~���m�XtY�טg���R	�ث!=W��ƁT,2j�X�H��������v}��L�?��b�6ը��*��cƌLǜLG'�^#\��~ʑ速IGE���Q�}�ˆM@1�V����vvb0�M0�<f; E�d�
K*��{L�@���X;���%�o�XѪ�S�r�bl2�H���H��G`)�d\Ck�y��LLF��b�§6��wUC0�
]��u'�F�ݪV�Bro�}1w[X䱿�K�Q2k�8k3]~.�]ц�K28��m[�^t�e�Ӥ	�5#FT�e��J�>�s�44�	���К�m���cU<���GE�A�\��S>EB q��0(���m�ǵ��Z1�rOTU�GI]Ih�M��YO}��������O$�(\l1�u��ĉZIf�([��E8L��Bo�î)�Y�]�b�-���V����J��[�ucϥ�3��/쵀Oj����
s�w����Dm�]��aTG���I�3�-���n40%��PRƟ��?�>�`�`>|��#�:<m��̤?��Z��j~x�����b�n-��߂j�\|V
@� ��IeC��{~�r(���?��m@d3��"N�M>q��m����rj��щ�e��Q"�e:���`�	e�<�W^�ZDU_z?�S`���NV�A�Ą���ӂ�x��y�9�T�3=�$��5�e��=�!a
~c��S*�ʊ���l@"�f�J��=�7ƅ��7�dg;w��yN�����t���ם�U�q�p;3���B����\(���h�U��E���Q1��^��_-�e�'��v�o�j�l�3��mHoLf>,�Q�3 �7�*yĉ��V�i��ݏ ��Ī7��,oK��H���s���m?V�u6|�2F�2"NԡA�Մ�;�v��r}2�+7��A,;�~j�~�لIÃf����|WHL���)}B+�
}k2H��XT�rjƣ	�t�t���r@��_��FS��;bIQ{���FEY�3޸�<�g_������r\(d`U���954(F�nׯ����7T�p��Ƣ�8TEC���[+J�U}2.ȳ:�(_��^��IW��q�8�R$���Kd2��Ÿ^�9Y$MLWX7�QA�3�!fC4Sm`T`z�/��!���l�D�c��cKy�fMF��o=�2T�hs����L<;���\m);��O��?5��7�=~�Y��u����d	gL�8�b�Έ����ʳ��H�r��n!?�͠��{dIO�K�&I�{B���M��N�|&'��:a�,�`k��A!�FHp�u��1�c7v���Mu�6+�N�\�8t��S1�S�[C�A���(�E�/%N�O�z����`H�oU�3�#8�qQ���F��Ho�Hdg;�:��D�uwB_'	0B38Pm����j�}�4Y������$q	��-�Ņ��r�Sv���,�~)�Vjq�5�3f/�4�0�:�H{�������S�3/'�X<�n-6F����6�Pݵ��k\(䲳�<ˆ���v���	ZJ���p(�Br�]�g�.��I2թ�����H;,5��B�V���:FB��z��4�а��l����,�Q���C�n<�eg �ȕ��=�LB �uZN������3m֪��S�!C��S�ܴ$�ވ���L���Y[�#~/���XCu�i1[�>������kݲ�xvl�tL���ձ6���O4�&5�`�z�.A�Q�n\'����̄�93�Z�s�3Q6��(��(4��B��cJ6�*��
+"`k����I\�ԁ&i��06����&���ʬ�����%Y�Cc¸�ح�3ǂ6<�g�$�	�KT
�J�1Y/�.�1��֥b*��pDT�=	+h�I��3��s����.�5No�>q��Z��V*��ϣժ<�9����V&1A�_WF�����1S�lb[����$��/���\.Q�m�^�b���3V�Ti���C�����~�^�����5�?I~8#Q>zq��EB�9oĞ{$7��N���]ީ�r��dι�&���W�8,��
kM఍��e�Z��C�ƙ�C�e�L1����qg��h���unݤ2���<�([�4./�JÚ���x������Mh�
�j��x�qF����F)��{�r5Joj�� �uS»�x����WH�'K۸�r��>�S�߃��`��y|�{�o�Q?�ī�
R<T����:�
x�ty<�z{�K꫓������5��2���:1��&1[������k܀���i��^Yl�2#����U6U��~����XV�O�Ǖ��l$%M�%8���ԗ�]�e��� �Nh����s�v9��	z�x4��:���4��f�|(��W�$g�}T�-Z�j�7q�W��s��g�˛3
�(a����~?�t�����
�������N�͙�Pӛb��$����@:O����~	S~�����V��y�M8��r`6�}S#a���MBn"�Q�>�@G0i�Zh�YD�j����^�s���b��7���0dS����
���B���
��u�`�3Q仑�X�r�e/��D�Q���/�ۊkkjv���|sv`��H�k~:Ƶh�9�(I���T���ȿF�m�5�f�t�*��$g�a���cU'����{�v�kk���*M��HFx2Y �O��ě�2�s;cf�ŝV��774�=����Gzc`
��
9�p|��4l���Q/�H��g�c����93G�U���4����.'���Qw�)C���[���˲F�T��`M6���
��8$0��e�G�6��{�$ϰ���_tT����4�5.��}�W�HD
e=�E����snB��0��
^(�{�^�qv��ٶL8-,$���gbo���S���qɉ�/�e)'^樤��x��Ah�E����<e�DK�D'
rE{��*��:�8+qa�VL�E(��L��ڃ|����1��-m�+��1�
"�iip����:�|�Q � $"xQ-���q�\��e�S�*�e�W��
��&�<���P-\`�䪈}��	]=�)���h0B|3n"�U\�;m�bP4��&�ݹR����Z���F4�E��X?W�u�U�<<(�B��O����שE{w�-�j�J&z�2U��cGW��h{�C`�c�#7���/<�"��%bb��Э
m���N�������s��ޗ\�t�<ʚS?��b�3F�}��*/+��� 	��ӍY�$��yo-�Wo��[ץVQ�]Q��RJ]FB�5�Բe��מ���JZ��I�l�E��e��������Zw2j
j��'2'%a�(�n�e��	&@Y.��!W:g=S�@�]����j�f��6d����4�}�A���F)�l��mB��d���X���w���q���Vo�a�Bv&�2��6��y����R����K/����A�}6d%�m��ĩ��2�6we0YzC�[+�?T��)������i�ٮֹ٥g�iki����ͭҧlG���.�}��SK[ǜ֮��i��L��c�gE(�!K�o�+E��s����!#�6a�j�'�?sٶΡ��a�9G�Ú.��ǣ��M�,�����Q�� vB���HƑL��t;�x6�0X�q "���$��C#�6�I�ȬT$n�9�-�v�

kY��p!�VcC#E-ѰD��ʀڲ:���_�6�z+�v>�	�
yLF��C�H�W"6
�i7��q�"J��a�g���\��{l�)0_��8�]���������9�ԍ�`F���rM�h�y>��b}�Ƕi�PNd�'�Cѓ����㣴'��������l�:����0)�@WB
щ1�M��Ҋ��G�L�!�P�ƕ��8��ζn��ʱ��?k�a~MoSqR�!ڢ��Zz���=yv���$=�w���Y��
�ȑ<�\�B�q>�l8ȍ*r��UWD�Umh|�q�,5�fK^���dP�T��3�Vހ��
~�+5xA`�OXZ,h��JƤ�j�g��7k��
��p���.������ �)��s�.M�fK<-&�
�K#�eO�-���f�<���z��S\[��^>q���P�-�N�'%!L�
�P!��g+�l����рؿr	�E%T��K/�-��fR�3!�O�N
9�[�]�d[ڻ��D�T�ht����:e>Mo�Y��G�p^ŧExP�b=+@�ft��b^�?0�^�(fkȇؼ��u1+bgf%
ť�3�z�_�B^��ga��hZ�A"lYީd�{�ܾ.@�aA��])�4(4�3���_"=ML'4���ꡞ4��0���U��`K�ڄ�Q\Kx�O��'ר$�5�I,�K�ԩd�F'�
끭"h����h%ʥ��FVH�l��ev�rQ�� ���z��{���zr)�,�m$����7�ģ>:ZU��x�D�����f��i�4��3އ���H&�v���%Ҭz.N\3��r�|�ՆA���7A<X�-�.�i�鈘$`el�s�.�
�^� �61�ꍙ(�P+�dw�9�#ռQ��(�<��]�Sf�v�v�C����h͇J��ߠ� ��fi�T�/U��5ݝ��/���):ٮ�x��_��%n�GaXyh3����ժ`��ƌ2a��H.��J]�CK�MH.�,5���A��0�Q`��Š�谅t<����J6Q��	�'S[q�����'�u(��O��{�(�m,��D�"?�'��^���\l��u��W�/6���V��Q�+x5�f��T�e��u�KGa�_Xl�1,]�;�����1���l���]j�i�ό��55��P��ޱ���*W�����t'8��fX��
�V��-�N�����y�ZpȾX�Vh�n
�|#�&�G��QM|][���an#�x���Z�*�}_��5#�*X�FU}K�e���-p��*4�X����X2UYzI�P����q~͍�ofZ��;��d��.=��M��t?R����XU�<t.Sn�];c@eN����U/�1Q�3
պ��AzU�CȫzQv.��s���Z��$�a�K��/@"WoBm��L��	��~���8qO�L�e��!�@Hl�6�è�6(��g$yE�F�?kq�B�W"K��� �\)F�3]�A٩��8P�QLxp{��d&jk�d�E�V�p�Y�>��
�G��F:6隡:�%Y��y��}`�KR����
tI��T��>M�T�>kd�Q��4�)�V�d:�{Q���K���iY��b�G�d�W����i{(lS�/��6�K/aD<�N�A7�8�V�y�n��t����M�-��dX��əj;6p�,��<Z��bd
����P��G��݈�.:�`�;+�Q}�z!m5Ā���e��]���D��G�L�7m�9 ��s4i�,vw�r�03�\��=�{l�ظ@R�a���#dtv��t��D*��(�J����K�S��Jdɱ������2f��� vW���L��,!F��j�}$8fkW[�M��J����h�S����_��e*"���J��eB�)/��%¬�Νmhr���A#$@�XOע��g�?Q�ؐ�y�Z�RPW5:b6�bQJ��bl����@,��<�`E��Q{I�u�Jp�'v`�j�Wٕ�2�JP��Д<���W���X-B��M�f��S�{��"Z[-�Ry��q��c��Kh�Kk�h�sږ�<�R#'L�'�n@�S&G�N��v'^�e�l�Bo؀������+�6FpA�*��f���x���D�+)^��J9F	w�&��s�����g��8V�&릞�����5��UO�����0���ϴ7s��ݴ���ʒ�=H�
5��k��LV����s�n±0�)v����.�\}0��N9�IGđD@7f��|I�x%��\"yb�	�@�4�����`(y}�����{��/��rvs2[l���!i-+�V��%i΄��xئ����}f�*V���ދηBd�ʄ|0��?@l[+�R�Ց����q�fҚ�vH 8�M����>������5���d�´
i/��"�{�=�@E�G1<F+M�E�T���+oz����z(Q1�6�w��ֲ�R�*`,�������ְ9�Ģ1�>�CJ�񛃐S>��RGC�@6[��3���Ʋ�ESqԷZ2�����B`(L(��hK��*� X�"5u�=:� ��1�b�3��lu�xk��z#����t�9���$�m�L	�jW6�k:���!�g?� ���>g0�<�6�+hXo�В��!�;n�rN�ӑ�=��������c��@��K�V'y�J6�%]�W�/+DUUԐ3�ev�q_-�5�G�5:�����*�jB!<]�0(�	w|�3}2�b�1X+�
��b��Y��<|΀�y
�Zm�/z>�]������y]��ute��7��Sb�d�őI�O:k�Q�Մ��z����_k��[n�! ��$�}�(x�߈����-��X�ک2�V��E[s�%��kӣp�i���>4�{�H����a�kwk���9��i	{�.����5W6���l�h�����c�kIC+WMX�8��N�	�j���f��b"���DS��rte��&�c����B��)3�X��A	! ���܊������m�WW*4q�C7G�o9sʼn��ak�Z�B�K�K�S�<=���J3�#M���E��5�8�m�$�Oo��	;V%�*.��J�p��X��&P"��
L���I�V�?⪺����\�a�D	8��v,N�f8�
%�SK�Uu|��O�d2x�t���',���s����X[�J�0FR�{�`@��T���$0y��{�h�fG�D�,��
=��'���|��.�\k�폨f������|J�`7.��Sl���� ��;4.WfueEG³���Z�H�"��j��8�9f�/���R�C�S�evٹ[��[�=�ы�<��+D]\��	�^$ޕ�K�x�U^P�7F�M�g��V�;^��̵�O�z�Ũ?iv�$�&U\���<��
^�h(��s�xg�Z�\��!Gց��HuT�mi.��|�����]�%�.<+ƈ��OG�5��8=�'�� �6�a���+tQ�A9�G�ù�<�v�,10nu��g],)��v�����®���f �B��s�V/��g��U���o� KR�k��v�� qr=�|���s�)��5���D�F�L�#�Q�n�v�b_�Ӳ"�
J��ۃ$e�ɥ7T\��X�*�&2�v�XW��J�\��<��5�<��_-sK��zZ6Nbz�+��ڝ�?��������\�D4����`�	i��ؿT3�;Y5��U���#xŨ�C�2[eǬ 3�i�UJ��k@�GwW�9����6$��E��`{��KY�2�%:�By�j0�]@'A�Z�
m�&�(>d]��I�c4P]zI/���bϯp�/�m������tc�cM�,|t��ħ��-=�V]]��Oܸ���5tG0Ȓ�<��&#d��N�N_V.Ŵ���4���(l�<+��|>!�M����Z5�M�4���V�i��_we'-'���%�#�U��ÝtM��ީ
���'�f��."�X��kd�([2i��0��8a�[�<x��i٩�@!���wS�
®.љ�E)��twL�J���^�c�>��݇��ݒ��/o�|ً��|ʢ�u����Zn����¨�*�BlJf�s�
��#	�y�n��(|����^c�f_�>נ�b#N���m�tMm�B(E~ �R^���Xi��֚ă���-|=5��M^yX
b��դ־h���M�ˤ�L"	��-�N]��~�jG�4��Gas&�Ѿ�Q�N�Τ�/�g�
�t9$L=^�U��B�m0�f��ڹ��>�)m/.��!|���8{�d_���#7u4-���zUdR�Bu�(�����ه�{��3��D{�H����+Y8�*���_�3�{�XO6F�T��J5�ig.Jz:bM��~�jv�_~��P�,ߪ�V�E�6��'Р}�ch�BE�W>ϓ4�U��U�
=[�z���2��-�s3���Zt�k��1�Xŏ���-����I��K3�|,��R�!�v��� w�/Ƴ����E��&��
+�ȥ��f����A�X
��Cʅ�/�zs'=f}���ݞ�܊����̈́������6Y��UQAh�6|��@x�Z�7�PMmע�����K��j���}�5
J�э�4��	p�엪�'Os��X+-?���@1a\N[X�$[NJ�`١�Ub��bꇣ��;M�N����Eu� �1����^d��bd49U��,�r�K��D���̥,�h�Vb@[��jm�i8x1�'�{"���^�X
��s*�I�5	C�r�`%��
B%"�r5r\ė/v�$$�w5�{{���}��2/�&�2�Ӭx�2�K/gmTz9���3Ҁ���f���.1Uj�V4�en4'�{���	Ж���s���b��B����Ov�*���<�����
f�q1?��2p ���`0t��	�3�C&S�8��r��V��R�
*�C����u��2�g4��`gS ʇ��ޒ[SD10����ZvG�(?�Ā
�i �Uo�lLd<N۲�Zb��EA��8���,�|Av�?6u�n)��"�4,>�d=n�{��HMD����)��Kg_�X2�*B��T��)t?r]K��u�ľ܅����r}O�J���9�
�`So��Q�E��$N~����m�ْ��|(3�U�'_ ��]����2��������G�D~��QC�k<�������\�Y�h��]>�?�@�_�M��Tr���� ��h��ff�g�d��Z۔�j^f�V�v�SƱ*z�9�&Qhn̑VY4����w��b�J:rT�ia����\
��=R.$�`�I������N0�[�\��eI��E���~�h���|�����:БW��!�����'��Q�@c�OA�lx<���C�J3�O��9+��
3�1BU��25�g�v��b).�̓��)�3#�F����GX`7j��(���i��z�>8�:Y	r��"�4����y:��>��40���C^��`4�&�Q⩽Sc8��.�7/~xrOrc%�@Ů�O d�Ꞁ�Il{1g ��E�0)�P#�A�L7W���|5��}�fr'��D�r�ZE�}���$�E�nrm}��p'���d]�':�H�.����&��j��J󏍨ơ�8Cw&g��0���	��.f+�CQ���8_���V;F3�ZSw/�B&���n5� �HU��i;x���𫍙X�c�TA�<�/7�V�?3Q������)�0�R�puO^���'=��m�x�p33a��αIR��(�b&ٟx��m�\!J��G������]ھ�����-O���7'y��������`�]���L���a%���V_j��I����c�M�0��	�//È嘑|f�K�ͦ���DKYj֥>�Z=��Ĩʩ�b�՟#I�%���*�(�xKָL�K	�#ob�^a�3rG�ϜO�s��ƒU]�����:�Y�q�Y�o������Pm���MH�om��}\���6���	�����;$4�B�b,�!�J)��!���mZ�1��Z�Pn���3U1��jDb$��_u�`�<Y1h�uD{�4e�PҚ�i6����]4���%B��JވV�X�vq��e��8m��g�>~���Q})`h����2j��Q��ۇ��瑣i˨Q�6�,%n8��F�J#�ԫ�؅&�x�Nu�]%�4����<�1b��U���������!�oU|��Aer�:6�\�����i����2ި,H����cU7����z�h8��S���]�=e�� T�C�yu��ɛ��Rj>vBu��	��I�ފ��0t����Q>� ���;ݒr��*�֫�>�W^�؇���
˒k��N���Q��V�O�h6��9/r32������yγ=�2��N�Dzн�W1(�����Rq�4�����89�9�x}v1=?�~_�q����y=v�P���	���l�Hz�wO�foe�")��W7bR�,o�s��s�J�!|E"���z]@��L��؀��|~u�ce'�(qZ�5���\����B���֒�L���b��@ϫ�72�n�q�n)��gŸQ8q*[x�n~TЏ!�?�%�K�tr[~4���&�Q�v�5}iY��ϡ!��Q���n$��{Q����ߒ�����$��u�](s�Jh��0F�|���ى����y`k�G5r!�8$H��k�����m�b��0x��\B�����f���^�q+D�WMF����[�ݵ࿵�(�]�M��ж]R�X+rS�i��5�ʺ+�y���~�nGhEs�&���&��Xٯ��df���n�I���\0�IL�@��v]�
e$&���Z'�a�o���T<��Y(T��L�5F
�֤a}��t��yq��D�&l�#�@Y7a�9Ɏr�8*��	qF*�Ɂ��˲$M]$����O^�T�bCX�$5�BC˫%9�W�OM�4u�dr��<��y���7��,cV9�ؕ�Ȼz䔌k�\�̀7�:�mۆW������?O9OoW������v��U���Fl������}�\ߓ9�AtI��&T����=$x�j�Ƒo�����b%������Z�ςD޾RK�,K��U�F^�T�@&ฆ�hҷ%��̃����T[��z�= ��	�;x��X	k=S��2�\e�yzN��d���3���Է�[�M������և��č�.l|��D�-�{r�5C4,*H��,�Kg�0DÏ��pRt��p��p���`%/��� ,�)�l�F>~<��l�@e"��B��jb�9iW��a:�S�zg'�(c���˛32Z�)Rv�W�1#δ8�S�$���P �eˣ�zA��!I���\�L��n=��յ���P�<
k���)�z�9r/Z����)�O��&*&�S6%u>(S�����/�k���� b�������!ڣ\�C/�Y�Sqܻ5��;r�K�9\/yO���37D��}=>Jk-=�0�E����
���9	��`��dȅ�R��┠B?5 ��;��Ӳ�A�56�{��K�%��Б:�B���vޥ�2�C���M�_��U�����S�2	P�X��s�Z�51�X�&M:@�D@>
����'�޲%�hl?eb5^z�D�+����f��k�fu8H���3��p��5�.pF��4-�=��a�� j�΄i����8�!.2R��˭fY�/IL��N��k��0�Z⚜���Y`�r��0�r�r�Z��%�Q�����i"�N4�;��x�4���x|�~ZR)�zՈ��+�b��:�M�b5m�tr�C?_���<[�M
��>�A���,5�@�e������E+E¯�Hʾ*�`q&��`f�qm	�L��b��iή��D]�tE�D�t%��T�7���$/�eTG�7b�o"U�x��˶��Q]�=��U6�~
�E���G���&F�/�ǽ
N�$;)�"jwv�fh�t�')״����XZ�*>���{|���T�B�!
���*��=�5�;�R�;!�?�-�:�w�H�`cRPL�`�=�XA�\�wI���p��,�ѬB��l�H|�*s<����"Dz�`0�o���t�;��xvŊ
B��V,��In��.!Bb��wa������L���	�F.���pk�Z���PKp][,��<�3litespeed-cache-es_ES.l10n.phpUT	dL�hdL�hux������nY�&�ޟ���*$���Y�`PT������ʞ��F�B�f�f�<��
�`�"��I$⢑7Yߤ_��Y߷��?����g�����۶���ַ~������W�M����_Vm՗������M�>�ax��_�����}�M����q_]���(�n��_��?>��?=��,��o���?<����~)�O�[5��l_t�r����0����B���m�.��?�����׋��U�.��I���ۡx\����骪�Q9����uy�T�CY5���j�r�I[M�^n�K��䇥����Q�/�����l�ti��k�#�)U/�#2��n�æ��o�)d�]q^�ny�K7���X�p���*�j���K��˒���Z�e�.��?�r�5R�����E�
E��f��)�v]�u�s�g�V�,�NO�Ӥ�C�[�ES��R&t^��ū���;�z/1�����VF)�:���E�v�Y
�n�|��bˁ�������u��e�����Nky�@7��Ǫ�T���|T-~|0�d�����,���E��F�I��n�Yq1T}/�z]��-�jY��?d�|��*��Z�֯,L���׾���o��6�U)S�d�/���7�u���f
��`�F�}�-�����u�`(.�~Xϊ�oΎ�ʜ�C����e�d�/�٤����Q�Foa��ʡج��[c2���`^,o10Ƞ���(��m\���o_�Dtź[�'�g����SmK��<|*�f��5rU&r�dT�KxhQ��i�r�>Ms K�'2�F]��l���Ղov�ȟ�>V�X�֛��6�/�E�B��mQ��:�b���No�
���>�����N���
�/�pu��ψM������:�Φ���Y���zӲj|�k�I�5VY�Czb���*k��څ���̎�5Բ^�ު갻ή��:J���[�[���ml��;�|��d�h�c��Ϝ�x+6����ųz��^���_�Y���v܎n:L���V��^vC��<��W?�z��*7��zY���Ӫ������u�t�ȓnE�~�R^��k�L��!��x?��u;�W��Ђ���<Y���u��R�� �Ϝ�KI_���+�g{յ"���{*{����챪�Í?|�[p.�e��|�e���[�-�:{d)��H��S�s�}[r^��=����>ܬdg�y������O�Lɮ[Ջ����n�rx�Gd����_� o��FDBY��z�Y�y�i(�w��o��M.�ˎ_���T�ἲ�ú��:/�q_�(�{U���XM�㹮" n���Ɲ�<�>pr��/����_���Ef��TS�;l��qȲl6H����m�5�e3ߨ�Fy���s ]=�Bd�P6���m��O�]C���RU�T�k~�{�˗]��?�/7����O�G�^.�w⃿�OC����]d����?�����pA���;�Ŕ���ٌ/u�\���34�&�}��L@�#r�b-�7�H�u��r:�w���{���вI�)�?��r-;uY��R��q:�	��";p�>jQr>��8*+QU*�L�B�l�˜�<���7�h�y^�-�e�`�+��B�mQ@��C�㡓S���tKـ�Q�D��i�e=ȝ�����޲1­��v�m��%z�Sw�� ���#��·�?�뤟{�k�86MV��j)�f�Pu�7aE
.
U�����Zº�@>��$�k��盵-j~����ZB-)��_�2%k�f�T�%�P�]�/EmE�������
q��� B��-�..�n�xs���ҝ�m��D�r9�9�Ӥ�(��4��ဥ�UN�yE��n��dOժVz�jov�7na�m�����*�����N�8;9��x�+U�˙�@2vlM����k5����P��v�u=��2�VT:�*(��c�*{��+5�B��g�§�dӮo�lmV���7Wr鳓�(�x��0�u��Kt�k(xr#۽���;���hA_����1��߾>;����VW��dɰ!&>���DǕ�Wr��i-~�Z�k��/�S4p��o� 
�"]��I���qI��-����֍�4���� �q�h���_8��ջӳ�����߼;.��}�xs������/�Ó��/��^�y}�?�m�g�2�S�-=�-��8=C�rIF���TF�Aɠ�O1L��|){Mv�����丽�G����,�����X5F��G�O�_?����|B�W!��I�X�����m��L8o:���F��r%drM�M!{V�$������F��S��.�fr׈d��a4R����4]��S�B<��x>:=ݡ�';�Yv髳W/U�B��q�>X��H��Gڬ{;�٨�{���5��5�-�DŽ
2���+�"r�
6��ޢ���42C�M�0��~s��usC'o��fE�ˋ8��^C��7�Wӻ�ޘ�٘��0��./D�*�*�U;}ŪZum�Ċ[�mJŞ�]nD��l�>Ywfe2_��Ѱ�	�%ya'��y���j^����2�[�ɱ �a�V�Ϣ��؃�1�P����9����f�E(�|��oyY�E��u׈n���K�ty�y_U�"�Ţ*o��6[�
�.j�e۵�e���8�r/
������؊h5�K�96��@��tϊ��EE�x�i��.݈ăm�>�vPA�t�B�����y��P.�v|܀�HzN5��ݿ�"����Z��*����C]�8&��zu�.�kIJ���?��f�ڬ)�J,���Q��(T�x]�t��-g�Y	�~ê����cً�	��LC:\�E('_�H��=�\ʊY˷���X`��wp�n�]�_���T��`���E��IA[��`B��7��2��G���RUm��n/�F?����[����O��Vm�z�z�<W��ퟩ�O?�rK���iE��uuc
����%��vS]�-Eu��(4-�F���K5\O�~��y�š�L��{�3���!N�;m�<�f�=>�)��D��RIG$����������A`�
��?����#:9:��$�ȃ���˱�%B-�����<e�٣n{Wg���N9 �tW�}��Vʝ��A��nj5iU����N�mn�ժ������W��r\�c��U�Sպ;���u�Jz"{�	��R��-s��t�	
y�-�?Jf�З& F�ERy���o�՝�f�t
!����Ω%������7S$�y�e/&����w9.���QvBy���[��������u ���Ysc,:9t )�ns���d�����+��9�1G��jJ��O��\�������e�Onf���Z���0�q���m�^ U���LN]Z�ܛ���;FN���ZW�h���q||������ߗת�4�Z��C!k�At�����Snj8�y�U�C������&SD���]�6�Q3����3
#��jfn��žQ��8�(��q���g���c
J�sP� ��!���.�stYlD������0��۰�k:_�9�>IH�d
޴M�VA�,�o�_�pi/��WO�gѱ��ˠ`>psӆ�	,�'(��{t�8����>��b��-��x�/=����r

�_��O|�	q��FD�e�SuI�����۪�Q��|��#�o����R-,��W,���xo�򎂟C��7~�a��ko� �%$�=�z��f›�;�db���.^$��bE���X�w�����;�4P�ǂ�%
���������}�K��>���p�wF@�E�J{�R���/r@��"fA�j��tY_��
�����8۪vP�o�E}�@�� ����Plj=�N8�5�l����\��!3[�;l���H��\Н���`�ͱ��_��)8qԨRP�
��o..P��ӵ	{�|S7��"���>�)�S=��^l�!�������7Q ��9;�q�Sc�\H�65*jk���G�W���X���99��o\؉IS5�/��HHtUn�ғ��m����h�'��I���H�V�Lcc�~)��l(	�a�.��/��@g��"!��͏���`��q[������O������d��2��y'���26�֩7�Wj<}��edX ��?�M'-�q��3%��1K�r`�"r�m�e=�HÚ��;>}�~��x1U����|��Q�� �
35�H�����({���խ8�_>|�M�V�JΤ�6�b‰{�aw��ӛ���nh��2�=y�(�ݕ�AQ«�y��D&^I�T�#,.\K#�d��kT{�'a1�s^ӽ�*��Ź|K�)tH.�����Y�B/���Qy�O�s��Ǹ�1�>x��'I�A6�jx��j�a4]�*P����>L��M�b󺹸��`���y�=���a�q�%Xc���rX������dQ�H���ƒ�!�џ��E��<�1�k�Z�k�!\�I���C:��?-;�SZU�b@���
�JL�v�d�=�Ƌu<�ȁE
1
�j����V(6�.��]����,�$�%N�� ��ԏФ/~$BS�m��~�����QK�+�cYď��æG�����~Β�
���,\��G]�س��X��u��9����v�'c�Z�`/��rD��k���y�΅�]TV����A�@����U=��Z ����=�л�D
��\�~y�����O�/�Vc�L�R�ru{єt��MD����x�0�Z�u-\ޣ4XPX@8|��y�`LW��v�So����TN�n�]��bG6�M�*N^yP|}�N4�^*�e�:٬�3N��K�rQ�b�e<ע��eoޡХ���gM���p����-�2s�+5@m�R��)
��hZ֎6�zb��Hs�:uc_�H

�:��8JCmB[��o��aJf��feǍ�#'���2��u����a)ï%"Y�]������|]����N�׆0�#�ٲ�� ���:�P�*�����f���3]�&�w��.���F�Hm�4=���Ω�!�RDQ5]�<M��䈂�@�%L��v���D�!�b�=)L\�s��|��} �W^F���o��W�ȁ,�
!X��H���<؝�	� ����	��D|=���}��IC#X;[zk��3o`C;�_�񰻪�>���i����
�I����}���C�-l�p�Ć��YY^d;t(bĈ��@��	{�;�]���h�,���aㄤ��؋�ܧ�Jͼ���)4��]��!��M�r�;�[�����#t��J�ܐM�hۢwZpb����2]t;C����X�n��D6¨�W���5�����e~]
��P,��b��U��L*�]�1�Ef
v���s�
��(��~�L!�����~]��]�g�'���U�a8����
mx^]����P�"A��ږ�(���I"��~u4��N5�g@fm��Q����nv;MpZ�>5��xf;}z�����v2ʂF_�{��6@�:jcrv�Y�g��%Tҷ:�B���l-�@q@�QUb��9‹�Q�y��ŋfqɩ�DdH���%Y
&9�	��4Ps�iB�V�8�B���֤V)��y9�"fgm�K#�@(l����=f�����@�/�Ek蝯���nX���ۣ�ԁ�ڴ�?"i�G�F<u+w�5���ҤM�<�*e���O�ŵ�3O�+�F�P|�t0������M��$I�yK`�W&�1�L�#O��Bw��I{Xn�W�x��_k
��
� ��v��%�)-��D9�ۻ�t~���9���ﺛ��YF�a����M����~n�;-�:�)��]Tt�8��
T���⑅�Lu��*i�b3�'���W�p�U���lr����0/w�N1@�������Jt��}��pvl֣`���5k�j3��Xq�������C;U'#����DE��
���V�N��!\��}=�b i�fN��Xcn'=�@.i�hw�ԗ%���t�ڀ�YNVṈ��aw����x?H⧛D��>n��;6�p��4�k}�Vʖ��\;C�l�׉����/�A%b�
!X�I��ƹa���k��Am���*�!�c��Q@Ps�����5��qi�ϼ8��	n��mn�/��o�1�Ս��6K��i�S�
��)Ì����j��܅��u�b���L>1Y�5 �W�����l����"����=�P\e٭�>�4]�ku<���H�,�E%p��2��V���툹�UOo���k�AR�!�C�M��
���.��|H����
�X��R�V�H�fs����!��W�Rb�N{r�+��{Y=�����<�+�"�^G"w�@���cb@�ܜ<�
����%��
���r�-�P����˔m����1�i/��Q�6�Ov��6�
����^��{81���E>Zʔ�vGl2{�G;�1�O��h�8�i��>�%t�{g�烦�ī�煢\��ܦk���2��P|N�:��d��yS^�p��k�0c���l�z�"���3h�G�:�è�L4��Y�f��\!���G@mmO�hs/�N��e�	��Z��ۨ���򼯲�J�u9�����9�gN�E�>�THcS��aKz�XÎt�%�x�r&�a�e�궝��vg�n�<j	��~��9{I�zdb�[�S.M��|WfLn�Rfdl�PeF:g����v�"�u96'��1��EmƠ�z�tB5�:
bY�U�+��م�k�2�t
��λ��`��X��`�NΒa^�
��q�G>���m��p(CmǎZ���}��O;��uCA';	�L�"�w�k�P��L�9��b\R�ԔqQ��+�<�d!�Yֿ#�G�_�LU���L�!��/�P�������J�#�-n?}�΃�!w���A�KGM���F8y���>�h�՟���U7/E�q@`W�bZ�0Z�g�Q^S�Nvv�5c��qu�~]!�^o�s���.��o$��}��2P�P���p���ee�r'�5G�:�l
�曣$��`���ݻ���l_,���� ��j�-�t�Yn�<2����,pÝ,�V�)#�Φ�?4�
������������M�HR͐�3��Ht	eL
-�G���rx��"J���5�
�w��.�!����*ڮ�b��q�ay��Թ����a�pU���EJ( ���T˿�.����B�>���y�:eM��m`hk��Ey^�1��TS`���#bդ��-���
f�dLJ�T�)@\�����<��"/��r<;z=��H��3���B�Z'�x_���M�t9X�7}�T '8�m�te�#&�
���I��YKׂ���B�a��BSW�:����� +Q��\�>�M0�[��Bc4fB��BM�J���0����3)b��ޤ]�-e��nI:���_,�6�ɛӳ'_��G��C|�1�8Pz��q��`�i��b�����3�c�s�q��H?HR=Yٓ���'`W`iV�ZQ�>>�1��H�Ɯ��RU��ȾW~}7�J2���1>�<;{I��K��s\O�!�n�Zy¸�VrXC�4��vU�w)�vՁ�4�xU-e�8�K��Դit��sO��<Z�2�dS�☗�㴎�&��}�D唝{~���K -�o�Y]u}�}���X�p�-�����/��h#2�9;���Z�������9���x�'h���K�?��2q�	a��/��Z�u�9�ڔ#	����O�ZR
����Z#��I	��gf�z+�I�f�y�i�lR���-p4V�(&:��#����E�Gz��a�5��HZ2���1TC7���U��vrO�9V|^	�j��QW�%���g܂�A<N�Gjk���)��E��SZ�+jx�.�S4�֤%�P7=�P��Z�ߪ)���C�AG��D9|�@�F41�U���<з��H�HC#2�3h[�\)��ơ�}�Ԍ�B��d�-
/���f@�q�z�ˉ���}i����h��KAa)p�������>K�����'a�a\�0��RԹ����lƼQx�^�q�N�,$��	�)t0M���	���`��6��[�
Dw5��8��
_5�ARW)]e��µ5Q��
٬ȕ��UځR��,��$	�h��O�nQ�����(`��On�ކdUG���e����B���V޽}Y�VhM~��RQȏrI�|��/���r���C��]��9rj��l���V��JB�c
K�omi��t9����6+�r��QfRϫ�:[��r�@[�Ǘ��kx��1rMJ���A��*�U��-��A�wR�Fى�2O����"_��7�����j���sD��f^4�ϗt���t�װd]���!�x����G>��2�=�{"	l~ct��k�0��}7}X8d[��8��"��}f��C�jߋG��dO��z��*����t��sF�.�M'��Q=�y�z6�;ngӹZf���)4j<���ɜ�k�Z��@9�'�@�*E�Q�<�L[
�]v��cՐ�U��'�R8̙���)N��)����N%^��ԥ9����$ժ&暫�;��X��2����*���ue
�EyU~�{iߙz\��g�r#*�8�)�B�e���CFV���Ũa�5�mh/��Cq��벊�@V�HwJ�!�o�	�)~"�t��F�1��L� zh���Rϐ��a�
<�}�'ي=e�i��M���� ��.�"I�4�xF�!��x;U�C�3�S\5�+��#R�;8�,YX����1�d�L�I��R��E5�ECjC�:��P�$]��j3%�Jɫ���@�:'v3ž���}j�3?�/D���|�����濳#۲�:y�O��|f�(P�V�c�
��1"/�<��cJ�{�Pǰġ��*A;c��HF��cy6�{��Q����Wٸ��go�2�/N"4qա��<��Ns�c�L���� L������e\\��	���Y��1�����.t[ƙL>��V'*��f�a�5�%X�XuK`�mQF!w>�2�xU��	�0l�)�Ad�J���G�V. $�U�+���8
�0dҹU���t��[ă:B`v�?����IҁE���O��@���֧�䘴_��6��b�!��٭	k�؊��v;K7%��?�6�É�,����CJ����tg��v۷{G^u�ƿ/�2��?k�6��ቧ5�d�Dma���NLj�10���	ꪯVH�VGX�F�~�P���%
�X$	R�FVm��S���Dh���+b<��֝}��n�I�g	w�Yh��%���<$f8P=o��]��T�z��2E���.�13�.D^FYH�AP���8��T|���{?�I8d�e3���J����#u��ʊq�W���w�	�:l��F+J:�eE�KI�Gq��`Ej@V��	Ǣs^�b
�N ��d�Ts3�'�NͲ���H��f��٢����us2�7V:���2��eT��P�"Ϫ�"�=�k��Q�+0G�/����mcLa����A�PVKRt�"�N���V�Ӆjo	:�|v��@��{g�rH�g�Ex����]�\3"@���	�|���T`�!7��
��o�KM�
&��,@�At�u_�q�t\y|^���A�CJ�w�MC@�P���lI��}�t連ҙ+_\u�8ڭ�Bf%θ�8���@�G/�e��WQ�y�p��"�p�w�o���K�g/]�GZ뇇�i�6B9���^GV�'6�t_���`��&�h��Q|��O�Ϳ�t �ydT�e�U�&Vt9�)W���4?F�Dh���p��?�V�g���a��LQ�HƱ
Kտ��n�ڗ��*�[�"�JÒ���!�%L��QT��/�S[�X���)����Tq�W��I��u�U����X���U��2gP� O���dI*骥�W��~az���������B[���\������W�E�9��{_�b!L}p�2����(�)	����������"��x&�}b'�����n0��$�m��ܡN��z���?�S�nQ�Ha�v׭�Ú^�z1[�q%Sg��u��ǘ;�5�#?��.&�!g��<act^Y�s(�u5F2��^��В]v��8_q�Z�ҏ�W�V��M�-f=��p��;X��3�X`�oa�j��S盪��(%O���M�i'�|��J]p0]n���tc0E�l��]_��z�Ri�����{�i\7�_;��Ģ���ȮZ3F}i����׆M�q�,fC7�nV]T�^P�j��,�I�Eq���uږ�`�Kƈ�Y���p
�Ii���<8H����(h����qt��F
��9�A��p!��N���w�"HhB�L����麽���pi?�y�s��?�pQ��s�'25�l��|�V
~�A�Ξ]��ǣ�-u>"ph�P���c���������Ԗ��ӝB��nԾs�ծ��f��(�����Q�֌�I��
�N����ɀ��/�'�Kzn=�r$����3C-c<G���-1?��MZ���2҅�pn[%�Z�>2j��Q��΁�E������u��l���>�8f��-�4rry��9�_�-�	�~Z��(��e;^��
�emw���.갶�u�r�>���qV|��&Hʙ�{�d���P=���'��7��
uje%�?bu��1��.��JOGƉ�Jw��
:<C�XU�A��;!�2���D��}�@�x⒦�Cigi��E�)�[�%Ð���a�;q�.j�.
=
G)$ZH��tD��d���\}�b'<��Q���9f,��cp��xa�vj��/��Lп�!�9DF�!��b����8�^
�O@�y/���b���^9����� ��y��e����1=/��x+�h�,��]�i�Q�Z�8�V%[/;�G8�n\sSYa�VPv_Z��c�,���_%E�N��rW^z�KE�Z����#���g�"��n��ml)�T��բ�����;_h �o�ގM|]�S�����G�
|��,����ن�ۍ�X�o���cR�*����,M�*~�p�9�wd��*�#B�my5���U�^l�StRE�*��F=˞��X~C+���º'����yuGlp�	uɬ�jD��yFܭ7Eew�?#ڃ�mZW��(��� :
:KL�Su6�l79�G����RKq�1x�>�d9!��^�meS�;�fG�g~p`������o���M�/���^�~f���Sn��A˘)㩸���,���O��U9dq]@Bz��5��+dN���Y< 膲!F#�P���AeMSC�-C���*�(�����ŷ�
�<�-�A�����߼64d�w%�(���Ԉ�x�T	$�]d�ǥ�7<#�1�ah�'/��Zk
{�*+�09�x���Pߑ�k�Q�Ĵ�r㕛�Nw6��F�B$8��!��DrX�=��ك9	�H]�ڵGq#��nB�;H��ʠ�8�[B%#U�i�"�M�W�y���x��٤�Ad�b#v8��`Jh>�Y�3]��L*d�2���<p�ܸ����d��6OZ��w8�Ի2	
cp����XL�z��!6'��G��(��Fi�#��v��1��b�I�E:ږ�*+���!�u_�M�}��ϲ{�0�T}3�t`t��OE@�[aA2����Lg�$[Ӂ�Xi�����_q���[uk�?�����;D��Vd6w#�EC=���k�I�Jt��~�| _��5mR��6��b�cL
�ـ�|����sK(���R�4�.�(�*V�M=�v3��ؒN5�vҞ�]��{4������X��IWsw鴰���6��Mr7�=5bm��>2t}��U�"'zf�� ���k�*N,���0�R3d��w혪��Z!;�����1����W�b��wf���W���&��z~t/ĝN����8��T
�p�PZ�O��"'sɸo٧!���oÆe��æ�F5ؚ�4q�<�bI�{9�UE��
|��΃bnR�N��z��՞��5�x�^�e�;j��`�~�j���ф*��s������<�GG��A�y�	0^c�g��AAwmo\�t��f�>#�W�3G�E��e��J�&}��Ĝ��V�����,�n
bJ�w�����4Â��p��YܵQ�,GхQ#X^hD�i#��V���S?�%������f�X�:"�mM�@Z�u��\�&��>ۂ�9ϏVv=ˬ������X5xcF�������Yt��CK���@�W7��roKR�2*)_�*1f�8�.���Z�'��$�7?�1\��ߓ���f��rl#W�%�0�W9�*-E=%أE�yKO���={�:l����!R�����I�E��z���%�Y5��k�1K#�uf��㶠�,�8����6�j<��8F?�,"�:
�JoN`:ք��I�T�
_.���])ŵN��2��5�KڅH�P�%DF�R�A�B<w2���J/�����-#�����4E'����^ޔ�#>-^+̟v:j/�a����t.T]�|�Ed�Nټ��)<İ"��M�B˓�N=
b}��¸�}���_m΋g��WZ�q�z��E�r�z1�]��6̝<8��C'$S"�7��P����j�D1�o�J��7��/k8����HHW�'Eb�^�/Fm�d+��
���P�x
"zM
a(�.�U�nZ]N�d!f�5�E�9R�ds��
�p��
+YH��Ъг�l����`��,�U��BK;��s�9SZ0ۗ<��
���e��bJͳ����(�<~������'G��E�!9��ԑ��%t�%�̯�Y_�"ùf���LX�<�+��k�U���F����B늁�j�mT������J��Xe�ӲcC�<�v��_���A�{�"�TR(M3�o�[<F�fM�D�z�YL-�s�x���ul�yS�&�]"$ x+���ӹQF2�Rh|�@�V%�vp����]�,HX�`|z��Yk}1ˏ�9�����)�Xc�y�+�^cA��<-ڳXw�,��T	}=4S&�#���qH\��X�|W�	e�Fm��
kx�
+�.�������a�;��
	���"l)�Ѕ24&�04���pU_�����=��؋��"n����#
���ymv]n�W�#��T臘ݨ���.T���?)G�n�
��ܨm,��f1>�Jj�
,x����>�y^��̽�E��\.�H+`��vv��T�f�x�Y�\GI�x�.b5|4}�Ki�ZbV���I���&C���f^F���˘��yx�M�K�R��[\��f��oj
sL#��WU���~����O�M���܈���Y���д+`a<�ntj���@r��2�^���E�Kz07�Q�$���%VK2��A|�D=���Mp�)��;ܘf�@�M��ϐ&"��]�}w��T������3�� ��㤿hYG�E�v�&\U�y3�ْ�Ei%�db�`"����]�s��J"K�B+US[�Ԛ=�
�%�#R��0NrdT�)��a�Âi�wZ�Wqg� ����BApE�����o���_�26���!��}$ȶ��,\
��<��1��;:�Y���E.}�u�=�L\+�%xZK��9+��=O����X����2���[wl��rO37C��eɥ^�ٽx�z=���"�
�?�gq!�6�Yb�3�M\l����z6P���b�hD���{�H�tF���ְZeS��	5��
@���h�K�����vP\�@B�z�-IQJ�d��-xi��ͣ�X�R���jJqM�踘?��"��沴��}pz�z��U��!�\xAv��y: ��Zʡp���ZW�pB�Yj:��Ei��K:�ƾ5�{��]��1�d�l����8��V�/��v�O�(�EŠ�镧��2r�y�~����銥6�Y!�D-�,�wy1���4[���*k!!�~5��c�����7eu�&�\|T,�\���>�q7�T���[Ɯ�~-UY�Μ�w|4u����8ڶ��,;��ܨ��T#MKp脚���蜨 ��]�#�%g~ݙ��S9��bGL(��At��k��<�T�K�3��o�����z�5I�ĽM�s�(��*���x]j����=�!e�+���W�^�l��0�1���;׃��{
�Clez[�0]JLQ��c0����@����D66<���ֵ%F�����`t�������ȑ�x}������h��VU��ʾ[i�����=Au�k��"��S�{�����4칈�n��̓C�R?x=K��M��0�\$t�ZwÃW)���G��K��eU:�m@�!X�E��{ZƵB�z�O<����vsLq�K.��!�H�f�G�%bww��`��%�(�t�rc$�3P�/���1�YtY�*�J𛀒Gc�>:&�q*ymg�LC���!��ˌ��ID�;��߂�#	��u`4J?��k'�s���d���:��h�|Z&T�`ϱ�K�Ԥ���E��LcO櫴�wH(s�&Y��gR5'
z�)R�����d�1�vʇk0?��e�^�C�`��Q8�m����ʊ�(($�!0���{u�n6L��J�f��hx�#;�bH�w��d���Y�
�=`�HP^Ӕ�$��O�E_���	_}��Z��ǰ5wg=d���cz9HLx��Ǒ�<%�p���A���F��8�#����P�����|�aj%(�>|�����U�~��*	�.E-��t�H2���k�k8r��8+�/T�ݪ��*PT�P���<��Z	t�j�%O\kR������cR�3&r�VF�Q�AV~�<V>O�|#Zw~	�J�©&|L,E���#�[� ƈޣ�w�v�p^z�dH��*����2>?,�}GB.��ޔ�7b	��ۇ[@�=�H�<W�Q������Q���tZ�A39Ա�y�B(�V���m�I�GX�`=�6c�Qu����\/�Ϻ]T@Z‚]W�?�J(�w�㴨05n��A��*�$GtHuF������=H��A-�"]���i��{[�L 8����=U3\�¨R@We-Z�z�JQyP��C�13G1z;5R)^4Hԋ=�I$$7��?3�NH�ݱ=}�yt ���鏡�����<.u�0���N�kHC|���).?�>�V�4�p̛�㧣��Z
0����p�U�Z��L�IV�n����fo(��1���(�H�-��MG�җ4]}��bz�D�3g7L���dQ}_f�����>�T
�Ϥ�vp?��j}(�{�y���,us��2�G�Y�CEo�Ʊ����
�#G�9���M�h���t'p�����{%՞_U�(��:�h�L6�����l�q1ˤ�^�Qa�X�M�ͤ�����Ŏr�둸w�]�,�!��W��P�KN�B�J'خ��5��Z�J����!7စ�[C7�-u[��w]��<�[8)f�o������˝y'�t��G~�����?����yR^v"����#�ꖿ���B��q̤�<+�!YN�>#���U�0��&���{�����L�,�A�\H�UR�*����R�]7|Eo�b��H�pZ�`�`
J/wy�ߌ���Q�\ċ�e`Vx��mP�z�r#7��>��
r�i8$}�'
���q_�҅�%	x<a��s�9U���i�N�oХ"��1���(����;��*nӳ4ō�O��\9�7eɽ�sB�uv�
{ڰ��-iYZA7k_�=�U��̓��z�sp2�25[:���sNn���&��D����@��1�
qy�+[�e
z*��Sڒ^u-:�06Y�k�����I�Z�X5V���j+�a0a��z�J\����>
�iit��"r�$�,��>
��*M�0Pm���
A,�Z?� pS&����Y@\	��4to=9��#�~Q�*)G�i��/��I����b���6%�DH�1a��!��e^��u�Ԓ`���캲��&9��8�E�����vWX��6IÓ�Cw���ɤY�\�Y�/
�C4�	��>\�r�<��-!�/X��2�pg���~\�F�b����D6$gt@Fp��ղ�����撤���=��]��A4GX�eɒ��t���RC��k+��C���?�+:Aa�N�u������C�V�̸ӌ6
w#+S<9�J-�d?TM���#�X������:�)�m}�D��Dh���%���;0-�!pvlV,L�Ȳ&�y�����=�,W�x��g�~�6�m���4D��p�X�q���QX���dF���+{-V��U8��m,w�1^�e9,�p������OH_��%\%�o0�N��kl����g�lш��)�#��<�>�<Q�	�$^��e��ځ�0L��M��q��F�*��SI2�q����i�I��^�l�8(i�?y�~=�n�N����[�B�a�}��_�_�j�W]!�'��k�*+=.:M�MY!�A�Aa�eZ��ӑ�/<� �O�M4��.WZz�*����4U�9'�w�>M�C���f�i�<H�Wt+��L�5μ_���?v�֋P<5��p����c�uUKeB�2h@��D�r� �b�=��S���?7Q�W-��q^�P�Z�Lhv�1]�`�1^v��r���ώO���ٛ�,}��zi���x	fb��L�GM
���h�Xm�U]�[/쨯?Y�z�:���&�=�z��	�ae:�ֲ�T���2hJI�_��[��*9P�z�32ޯ��jф�U*B���A�-��H��!�y�igtl=�H?T]�L���vM�{믓v�L���tVn�U���8)�����`���K��=EO�)�#��C���1��}9��':M�/9�p^cq����
#�>9�y���x3��kp]��+��d���KY��d��@L>M(�:B���M��L����.Z���H	�;+��'`�L�S7r٘z�������ʀ�q/9�Z&`�$x]L:h*C��{�@�)�SC0��xS��$�G����D^����j]���9�o>J�o�dB9�*���0���QʕS�;��l�R1�_n�vUG���v�5����ݪ8��/'v��NJ��+�d�ڡ3����ߙ��O��eh�>��Փ�R�
��ú��R��[Pǩ׮�zA�@
y��3k�]�E5�:�p3ZA�j� �G�sm��FuY[��;;9-�g��  h�UL����)��,5���e:�Ae�)� �u��v�s�n�RWL@3����1,�Տ}g�^���i�s^|}6�DFșs@z�&���c!΂����ߤ���ь,68��R���zN*F�ؖ�Xw�ƽCQ=���Iu�ָڢH�ک���]gW��y[�M�%�mc|�K�t
���%����n�X�!a��T�<�<���i�ɥ� @����P	#
��f"]0���k\ǰ�7��<H}���2q�Z(�
��+�
NJ�G������4Y��AFʶi-��9��/�;�BVu����dI,*=��7!q�E�X�x�����J^�͛��� �b��r0J6�R}�u�DŻsd���Jn��~��pP[�|{Պ5�}����5ޗ���O?�`PeA�J��X0�
�ݵ��E�%q�j[�ƨ�!e�'+T�p/K��+F~RV�h���cr�EF|���+�3��
V l�I���?�H�	��t��#'�>�Ⱥ
c����x�@Brx����\y󃽫U+��[7��]�51��g���"K�2;�|ج�9�-�yYJ�Ge�@��ik.�
*�9�]�E_�
��}����ՙ��Ǽ-~�}_˾�����}��o�;8��Ռ�;V���f} �-Ϻ��Fp�V��h�Bp$�����٬�[�ڛxA�E[p�kz	JH?
��,Qj@,���YB.֜�sR�yjp�S#��nd�j
dzL��}yM�8��{;؝9ǩx��]pԐ�h�Y9σ$�c )D��P*0�e���=�0��눋�+<֭F���\��$���ӐP9LuS���T�T/j��1�h4�(�:/��MNx�'��/����Ru�_���X�*'#��<Ti	��9e��ՀzI��IK�vZ�v��N�'�P����N�q�XQU��M3o�5�ס"��Ƙ�Yy���A����<�*T��oȟHm� �~�]غ�q��}��@|xr���7j���H����Y�^b����2'C,���D�q
�O��V������h�)~��5��g�6"ER*��~�šW-�r�ge���}��'֊��ФǴA�ʷD�X�q�eD�@�N@ B2b�W$g�HZ������2j1,9L�`��&���ԋ:OpCt��8�!
�c��t�5�cL�t�B1@�"2)Y�l�T+���JW��B��m��� <���p��9�qa���>���'�Ą���{I�vR�����D��p�)L��^�������y�r��%�#�S�-)3���ce�<����|��.��ͫ�l��S��n�r�׋����y"f>-��;���^<�3�-;���L� w5ȯF�D��
�|L��40d��j�~2����j��v����dfL�Õ�q��I�n�|N�!e;�S^*�ӦLj$��\�h�x6����c@�W��#}#�r>��p]�D85�j�,.�^�rG��;]�V=��ĥ}iښ�;����?=P�h*��lW}':͹H�+Rw�˺}�� ;��L�O�Z-�?;��A�z<���0�Y�h0�hP
b�����0�Vd��UdW�G3]܆��H�mg��ya�e���
�]��Јu ����O��z��~pM����L�%�PXn���E:�}'�R`۲�ᄚ5+�SOmɾ81s� �4��UJ�đ*���Ho[,T[�����7�`j@���#�%*���"�X[=�$��f�[��l��f5�#9ٛ~}�J�<�=�@s��>���1�	6�E��
!�Oʧ���lȗݧ����ބ
����~���w`;��{����`07�cUC�6m�o�Jg��͞���b�bȅ��Nh��\�(���/W�m$��Ѯ���[��Q$H�,_�!���@2Z�):�a"��E��u�X�!+�܏���������\�җƲs�~�;	oVI�b��ͩ!Ϻ�
A�c"�-��eVbj�ַF��U��x�2���d끩�����}(���ٛ[����>Fڍ�����KC�KW����C��n����@�l�$����-�% �a���U�<K����^݃ͮ����?3�R�'�52�u`I���ݎȧ��I�3�c}�����D��IR�=���F2
-7����N��V��w&"�n�lm'�Z�����&ө��
�/p<9yru�Lg�J/kvl�G���%��O�n<}6ܩ����Cj�%��舨�U�뢫?�N�ֆѽiX�9��3v�	�8da�>��)�~���S,g|���h�U��ڨu�v���������~^*�8�� _7m�rRd-a������*հ�ՠDښԼ&P#İl~e�2k��9ѐ�h:�|��{�|M�0pk���B.KťŨ��	�3�֫�H�m�;�2d�Z�z��QJY:$�G�ɿt��QY#��tCUaNt-]i�_�����
�ɡ$GI�v`<�=e,�&VZkH����D!����"a
v	�ò��h�?�t�wO���2���^�sCTh���u�ƻ�X_`�v'e�����N�H0���A�Ր_m�$A�k�ޡy��6�[BC�t����<3`���V���l'�Ǔ$�Y�[�nH��&�Rk`k�9�I�h+�:��L�qLd}Ҧ￙=�61�˖h&o����R��@ilU�Z��Q�ƒ|>>Q�(�8���:>"C�Ԗ��rү2��Bղ8M��#�k%�нoGY�u��}��:����})�3�jF,��x��`��^mY��E$GΩ++o�Y�F1[�
���,�o+-��h����J��ئҎ�j<�T��z���~��JЍ�PD�sн����C�+qi�U3�E�}_����(O�yBI{Un5�*�etU��a����n:����22#��Fu.cZ�nE��3&�����t��ި>���#��
�Ow)]*V�����oH���IcP$��ɯv^)��M����
��z���L�T�{�/�j��Df:��u{��;ێt9��9i��2�Z]l�+�9T�y~;�ܡ��#R�p�YX�J��!��g8&���U����eb~�(����h��-��^�T|c�;E���}I��|>gx�wȦS�eK`���`D��T^'0�(.�4{ه)x�Ez[<؀ȳ�0�J�9�������QӼ)��C� ň�(�WȋPiT�
>�_�i�(n����� ������������]��Dy��jz�W�]�ai�g�	���U:<�>:�TB��;��в�pR��4�����B��=0�	0�!���=��Q���D�4|zek�w(�:$i�U{m	�
K��c�}s�S�,[:Œ���'@!4�)��tF��
�!@�SW��JK�ۿ�eˠM����VS�a&��Lr���W�Su��S	7ڪv�>�Qzu|��2Ƨ�4�$��W]-�2j}�~�G��"x�8�$��灢��HX��R��]���
j�s���Ĭ;�;
(�c�<?��.����զ]�Fu|&w�0#��9`�����1�V�����Z4��{op���ei%aJz��9����	��;ɔ��	�`.߇/E`|c���̓�#Ѯ�Z-��`����10uu�e�&w�5��
�;+[��2aJb䏦x����PU9�������!����%_�8��K�ʝ�~3�;N-l<+��j���)��A����g[d���x餅ޔ�!�=|��fc���>i@�NX���e��;&�ڱ=�ܓ��F�g#K�z�%
n�?��9�d]�%T����Թ��Y�Zsdv�4�j)�F���Ƨ�$�XZ�gnѡ%�Ѹ��ܳe�g��dɕ�������������ՌΫUR�G��fgtO��U[;�k:UR?^���lzP�=�Ws��kĿ���~�O���p�M
.&�rdF�:10UK����`��2��Q�ӗ��3�1���nj����$�U%*�]�jK�ASe����|��
�N�V-�͝!{0�Z2�xf���_4���$؁�@L0��@S;#�"�5�X2"�6��FF.��e�d��^F�V��|�J��"��1���@i!���	`��<Gc�#��)\G"�U�� ܐg�D�Y������)�
'�������n��07��1V�t�{Rl[B��-��'a�<�|k�z��A�:o٠}I�,,򋘭�Jp��*���ʙ��2��RS��W�?\3�(�T3Q�IܑDMʞ��H
�� '�t�l��A�Ya�Ee�^�p^�{�!�\'O���>�N_=�I
�
܉�PQ9M"^y����򗡤��>SU�ڛT�Bc�)o��<M(>��C7H��ɠ;�v[�QƒGۏ����#u����3���S�߄f[a��`I
�ёEp��Y�s<�ȳ\�g�[�����t���T�R�!���c��<<�?�@n�0�G;�bc�HBk,���Q62��+���G��W�$�ω�$B@�>���a�s֩g. �x>�2�Á�
z���1ݥ:_�^��]�Im޲a棘H��_�·�&�U$V���ȶA:K�8�x��音�ob�੅�a+��9$��W[��X��9�ʷv&�6
�"͢nK d�^d���6�Bp�!�C��!q���~xy��Q���k���`�ݒIv.�W��p`�����}g�j��$d�O���l�ie�7�3�-A�P���jp��h{��/4�>
]ꃇe���:L.=�9��֝K�S������[�<�N�:�r��Vyj��]��ц�3�#?Gs�#ɾϡ�DR�^���m�*����
�g	VVSV�$	�le�z{$~i�����mɇ��h��d�a]�ȕ�{�Z�e'�o7�������!dG�Q��r/���4�ALW�'I����kՠ3�S)B'�BG��}&�qҳJ^�f��
-9��O@��/���p$�x��9Ϡc�0��C����f)'k ��Ϗ��xqt!dw�큉ݙ�����"�鶺��zЌ��`�'�=R�5[@/,����	����t"Y��fU`Ao�ok��4��r�p`���K�3w?�u�֥c�n��ûƜ{��x�1׃F�<�$;�/bD�����g���=,E-\TE��q`=��<���i�����x-G�����?���@��S�e59b�$��]�`��Z�W���j����,�Kgk�\����.w��14�b�����R�G�9��*|�m�=�¢�꿒�j�B�*�=9w�W�4��Wh�9��(ӗ�X�>QX�
�������K���/�O��%�bU'���.�#�&�;�����ㅧ�bP��P�JְZ�l���&�a�0�;�8��yk�۾�w<��}:q��p��;���uc<�J���Zvz�4�'1�D�~�3�a�c����.�<�U�V��k�cۙ�9�&<��kV��φ�V��@`�1�g;70,@S��N��.���u�5�
���E��}{�N��C����a���a�g��s���s����o�k7=�L5�^_�吘��[rF�I�st>w����(�S�`�M�����1�iV(�O�:;������@��ň��o,�.��CR:�Д��5)%�� :��y'ǔ���	e�W�)wwD���\�(����΍2.*Q�kY��P��ɣ��O-�&6�n���q����K�;�"��}�Z
�w6ڼ��t�*���wp	-M}������
m��(��/ _]Qw:�N��X2
p���t˝øU³&�a!�[S���~7ı+������\���;��~tR�I��q��v��N�v�C=u���8_hN&�v�Pz�T���[+�R�����c
S��k���z����%Q2���=K�L$'��e�ͳ�؆��d����䣕���WVO�R+�!-���t��wru��g�x��6�!��48�\U��:y�z�
i��:�5�9�IK3H�I��w�u���J��Yј�{�z\u�fɟ0ˉ=la�3�/�7s`�L�R���w����� ��i��=v@rK�B�.ĩ�Y)�!1
0&p��n�W�=c��ӧ�ٮ�*�zb.�a�y��D��ʪ�f��m��ԄE���i��9$ii\T9MF�#�}m���G<!�ԉC.d��w���mhsF�ڑC�Ο��D�zN��U8e�gF�15��M��Q�W	���Ƹ��g\we�;�:Kd\�È�7u�}b�s}n�Mu����Ap��4�K���j��c�����M�j�t'<���i)���X5g�ܖ;�h��6+Y)
ADr�dG��<
��r�?x!���acG�ք�cZ�}�Ū�Q�p(�`��nη#-����K��,����j�Ѐ�a����(^��%,t<6g�w�`Be��w��ӓ
��#�Ӊ��_`�����w��[��t���
�~�W���lb�x!I�ig�|��k����J���sʲ1.�$Ie+=�r΍����2@�ם���ڕ��w�0�B��2)]b�D+	!6U*���yn�Sʟq:�S������V�P,
��S�s�����O�.�|��j��i�������0�=Qx�T�N���7�����fW�ˉ@
�e.�K}�Oheg$H�z�,��Ԓ{�0E�e���_;��f�s�L�Ka..
_�!��m�L�����a0EA���Z%yq�ft�D��|�,�h��Zď-}�	�)����@��^z�
�/#�d�X����ғ\:�B�A��o�O�2w�QӶ�(f|�%2B����~����)IgRDN���
(xdPjX�]б]�"�o{�8��_�ž�uB�zo�j{�@b�T��̙�}h���X��'�1vb��i��X�e4PP�US�>*��z	�	WԼ��LO}�\a�g=.�����D�s���kH�I�N�~ly��� �9o&�0�*�z�o�O��fF9����f��+xO�����j��bBUc@S�}7�Tޙ�>&��ڜ�8��$�cN�!�k)]�h�Z5oP-�������j0R�=L>����ƨ�ɐq$ʰH��5y'�;�������/6L�'Pm�}�����V���Wr��Ww�q��۲���$#�A����6��i����T��:�j���c��d�?r�7P�7^��KV"�U-�$�K�b���ܥM����;˞�/B��}h�z.y�Y-!R�x��
��`%������I�%"�[�A�#el�8�-��k�/�}���\ �3�,f�����)j�ug����"��9�
�k�kT�9E�P��b�8�خ����z�E�()�L�`m[Dv>�/����{`��z�/R�a�S*��\�{�󒳩��a���}�q�C�-y��(�'�s`*�N�C�8}\@��)���]$�/
��i9:܈7o�[�@�~Q�ŢE�2��ď?^laz��E�h6�ޙ�f��o�g��]�6k�W�����x����x��;�Ga���v�p"��ܨ�7�������:3]��c����v���k�9������{�e��_�ߗv]���4�m��F0�$�0f
'9��մ,ql��yb�֗��-P,ek�0�1�"�M�K��*T�[,T�:ߥj[tY=�	޶W�96+ro7�W�q��R�n�t]7	C��6I�ǧtq���	ђ�	,O�4��Dw��!֖6m��i'���t\�ퟒvI?�.ՠOGRt�F6Ԁn��V�AU��Pa$I"y`�ZA�Ʒ��Ĵ�p�����0�]���H�kt��s0�͛i�&o�7�3z)
�YD�9����輊�fC2}�z�2�GV/�"-�ƞ�T^[�m�Lv^�_�B��(�q��	�a�V���Y�2��*��h��rF��8�Br`�'��������T�T�Hq~$곛�N��	�g����	2������Z�l�w��:���ÉV��4J�,���OT���� ��m!����YFA�L9PjV}wU���I�2(�1[R�G��cv
+�'73C�{���F)�^}���m����k�dтoC��	 ��WG�a~��4RO=2�ef���b�i}Q];[iX��!�HК��@���.V���G��~]^l*���Vk�'��ԹYq!���-����t�?xz>u|��6^,�r��z���>��BoZ����[:��>�1��>$�@r�ﮡ�3�1���S����~9���������X�7�1H(�]-�?]��g1s�Z3��>0����������R�ү/�,�4�B�byA�uV�vއ?ZXT �Y�)�V�/��o^>�ަ�~�b}�h�n�r ͂�n�k�^u�4:�g��:
pJjU-A�m.ibX-���o��G�#]��H���s�� ~bt����oz�t����^���ly��+5��x��&0��c�պE۴,s9^(���iX1�˽� �>�\�ʔ������ԋ���
1�uM{��3Ջ>J �¤(�j}a��BI���"���Ya.1+�u@SeSj����+PY��r�ɲ��l�x��;���rn��@?m���+)���r��6�'7k�����xHK�i������.A�uƼ�2\u�� 4��2H�_�V�Ve)�C�0�ڇMcTs;ĝDg����g��"��3�?Z�gH==H�P�
LB[��vOF:�H��.nV�)�
[]���N��jqV�ˀ�Z��'�/��ʘ����������ON��@7��zAV<��ţ�>#�'y���c��l�d�A8�:'�7�Ԁ�k��n7���<X�-���邓18��lK�Zw�i�c>�D`:�!0>
�(	>���~P<h���p�i��EF��͙,�RUAc��DZ:��v�o�H��o(,J-��rQWI���W�]��w_$Ӌ�Vb�����Ńb���%��˿��։�0k/��Sk�6���Dxg�JL7��&‚3_��0V}-}W�{t0�e)�7�����v��m>�N�j�۬{��I���`l��.Ц4�Ֆ�R����g� $p��3�q�3Kf9�H�ʙ2�y���=�u�—e2	7��C�Z�L�щ9�]
p����B�%I۴1��H[t��v^��Z=��ϟ�˫F��u�+Y*�߄��3�
�}뛝h����EoR�_���Hߵ�{�����&ͭ�
b���ſޮ�!��Cu����ѓ�M�9sR�f^�}}�J��Fv�q��kK���'2~�d�~�D_�cN={ED�K�;��Wl�R���u�vyJ�X==�8$lS?�k�j�cDXԱL�S9��s7.Ɩ�n'-�e��?��A%!�q`	�H����ہ>u"n���}U�����Ɔ1��=l��Z���+"v;��X��r�����iѶí���ϭ-xy8nu��l>�B�nk�o�J��1�:ڄt]�E��!`m�H>v��V�����I`ΏFj�D�D���0|J6��~�#�h�N^�QQEy%�݉��I�3AY�'��?�����ϕ�	S�m�Y�}6�տ�#׋�\T+ʫ��`��
q�Й&+q�����BcSʦR4��a�i`5Wz�Ǎ���/�v#��P�1AL�~?�D&A�vY�&�/H#��C��W�,b=ҝ~�ݯ�z�/@Znz�C����r�A\s��YX$��غ�5b�����֋�.�(�F�G�Xh�zn�pV��!��D��Uk��O���i��e�0�Gyؼ-��.��f��CeD�P֜�6��P�nzK:�B�U����*Z?�ԕؒ�M�9���"�z�EbiE���
���|������Ð��]#�SUb�(��h��D��Ns�M�U�-���7�?%j�x�Jc��n@��N�����/��1lu����bI3*��G�=��8!Z�:�(�͙�U$���Қ�UZ�-�*�J���KJtYz�*��Y�2�A	A�Vߞ)r�t���P���A�v,�p�\�+򒢑�{*��H��3™��WJ��&�<�7�f��N��K��wfc�
����\�+�y�Z����%J�������qW���1�,�5��������s����\��F�'�V��Qˑu;Ȕ�gN�t0��W����\�7��M��1>%��1�,�o��`8�bQ�zŋX�B�0,AÌn����JX���2�㎷)��2��~�'�'�{�<pMո�#A�� '�ʰ�`��xN�0;C���B�6!Z�x"1Ͻ�愕�5y�Ɗ�=[�S!XD\	
:��A����E��r�f� �.Ȁ��'`%hu�M����N��-kq��p��i^M,�F�`]��Jd�]�E6<*�&�=C�ݐ�$ߧ�,��ʑ��X�qM��\~�촙�Q_(y���;Ÿ�_�p�^�|����0�~=��0Q��L��aìMw�k�u����<;`f-�O��2�N�-�x�<B9��K=:�|���\����
?	B'��>�������U*�tb��:*��Ĕk���V�,Vdֺ.��4N��B9�7R��Gx$��Y�’�B��}�[A'x�3��z�v:�kia�)#���b-�)t�U9�|�X���a��ƙ�^\����^���I�QmUI��G��C.?_��mQ[��
���NB�k��iN$��lU�����b�2Kۅ��Wr��)�����f2͌�����gE�������wBq�r�ew�x�i��ĺ$8K�!p%�^S���*'��"J�Xlio��FB�d5I�nXF���))��<A�ځI�OWU�J��7�T� �\\�
�;'$�)���$8Xs�yM�8�ñS(3�IJ��Z=)�$��M�۟E���Ņ�T���N��F��qἽ��Jݒ��.�c�%)�qG�
�����8D�z�m(sd�E��QUo��I��[u��l�_�1N� ��8�謳Rl�򁞔��^��W�Q���Qa��I��BU�)$���#�#x+lg젲���{��\!���9���Q�p��&�~%��1l$���H�=r@jw(3C^�)��K+8`G w�r�K����(^�*�n�.���>N�5�S����7#u�8�o����%p���k'�p�
�`7F�����_��U_]��g��3^�5;m�}l����LJ�����+�Z��g�r�����ly<�����J���z�K�-���3���Fe�}7�<6\n��+���i�rb�)<�-E(��z�d�/0�uT��m��5�/���]���N�/x� �[�;�hv�Cpz��Y�aae�=�%!(ar�T8�z�Lsu��߃.�&qT:n��Y��Vr�\B���
��-݃�6���t8��T0�՟�F�Y8����I`k���_�#YWKoN���R1��Vq�˩�S�b�B��1�,ᷚ����?t��Or�I"�H��x;cۚ��E�Z4�=2y���g�}w��r�T�xݑ(M�N�P]����m�������e�=Y��{�Q��'s�]d3tx]�h�$�U�	�b&��򧨋vʱx
ԯe�|�uG�Y�0�mV����-s�/c�9����^��si�݂sM�ո����C����[��'a$�PgivAZH���i/����5�غ�Z�@��e���o_<�EҼ�XSQ$w��؈����b�w��G�La�u>5k�~`��a��NԖ��Lư��O�d�0Lq�UK`U��B�E(0�3���0��g�k7=	�����qO�!�X�ܫ���`}�0��\4iB!��l���.��<�9��H�"}�đ�1�õ�Dx$/�G��h�LQ"�����h��w�A�rG3�f�Ƣo�ƀ�C"�?$��e}�<�ԛ�^wt�0��<�[��JT�xl��L�A�|�J��ep�<��t�*�0�h
�{I���!�r�k;21w�����?,��f�-s'��
��y�~ĩ�Ηc�P�5�#Ep�6
���^gmP�y��9��)�Ut�T��\��]�+=j�h�f�����(]���G��=�����w6���g.}M�>�e�+�o!}?�&b�L�e������!$5t��Bk/�$�C_a���P~�"�4��j�&��3m��Z\u�����'G�c��$�X7^��~��ԯ\�,���B�?��֩+�0U !�4�̴��QR��|i�W�ז��(D�4����\w����9�j9��K�M�vR��s��d:j�9ӁR
v����|K�"�;+��Y�C��������&���e��F��>b�#�
M��ɫЦ$��<M�o�4�.��:��\���
_1��B��𸄢  �}17)�Cʚ� c4#؊�dž���iP���.��W?7�
�.C�|J�"X�V�ci�7���bmN�vƷFƋ͝B�
X���Y#nt���	׀�esݹߓߐ��Ȯc�׷����3��� ����C�P��7P��p��ͽnML�؟ׄ9I�w�-\�^���`,�ȼ�H0g���z��lF�Dr�~��nQ�0V��(�t�>�.p�s�T�Ô�d�KyѰ8;3�H(s�1�Zq���)�����=,����u�~}�/LYw+wj���\�U���"Y�U]�pE��Wx]'��/��+#�R"h¹z� ̙Gug�2��r
���R�����y/A�VgD�-�9��B�1�Y@%+%A� ?�� x'��{
��"��@Z;���$�{|���׳š��q<`��]/�f����u-�i���s��"Pd8n}$-t��Rc��P��sW:�ne�?,˙�z�{��eU�F�u*����F�:ط#�=���H�f��$�72!5�U����:�Mէ��n�jxU�"��γJ��˯;��J����i"�zW���?]�j��~�P�i���ixL:�~�X��QZ���Tx(��+�ტ�2�$r�[��:��g�F��w��5ڽ�)��NM�{�S;Q��W`�BIcJ����)!�&�a�C���T��d5\j�ȓ�[u0Q����8�~<W���*J�h��2!�7&�E�,��p����#sg'�(�A�����B�Lq�v���������]�Tl<�C
��.�����.��\�0���:����ن<�>~��=���\�.yt�tLy8-HB�ԫ���r��{�.��
F�f��U"���j"V��qh+�޾�HJ�Fx��n�Ō��>�v��g��so�K�w�5�,?d_ч*��䖮f·X�1��E��
�,H�-l�
�	p�Xl��6=�dC��@��=��@gp߭n�4�&,r���J|n�)j�;�g(��֎?ka�'_��\ן�΁	
\+	!����y��Y��$��X����!����RWc�nU��Cyf�f^"N�g2�x&�kt�;��"O߫����H��ٲŒn�R��#�ޗ�g4��;S���"��jZA�J�ĬV��4\e�Hb6����QTRA���}E71 V�j��\n��#�h�'����Q+����V��H@��e
i�E�[�W��y"�Y�ƪ���i�̊��m=�HҒ1q�ք�t[����kb:�o�Uˍ�H��+C�Ӧ�?$3$�kd)�(2��?���4>$�k��NQQI���O���5W�E��{GP�ok4ߝD�O�o�F-� ��Z;ٿx&�UE���J���
ث!g�0�7O�$�Y�ӫIJ��������ۇpԹ��!}���ث�c�v�tH�>,�>Is��������b1�]I���͜��W��]B�K��j�횏$!�/[,�X�$�D�g�u��a^������6��61m'hz�u٤���֥�--xb��Ơ�g�0�0DC:U�a�
:b���#���2��d�i�v`!,<3ӊ�x�e0	���a�Z�v;��ʖ3J�tAS�X�o;)-�%�D�Xt{�3��up߼�Ӂ�};Դ�62$SVҜ!���KĝE|�Tk��dǦ+��`��$ >�R�
Ψݶ5�����_H1o�F�J��9QN�c�C/1q^����E�4�����fDy1ӌ�0T�)�ڳZ��Zh�M]@����7g��/zsv�%����px�l��+An�a��>C�ЋOe���z��Uf���W�gƩN^�;��Ȁx�i��|s���
O��o��O�~�wM�i�0�;�`Ł;�"��]T�0e˙2
�Z*mT7)�a4�;���KhZ��n���Cq����u7p1���pt��%��7�L*�����6��]}��>���Ī?-ڍ�!�Y=�9�j'���]�0Ն�z�
��]���<s�/�
@u�-�
܎\�L�$R���\˵B�����a�׮4C��
�Qn��)a��
m�J�Qsꕳ3a<Ѩ�E?8}�j�Aۂ3#w7�c5�&��VD
���d�Z5�C�PZ��nj'��du�
�Me�m�a��t}�,F�J]�0>���Qe'�n��8YK��w������[g���tR�n�R;���;5����N�d���^����c��Z�3V}�c�������Tu/�;�#�C����6{өYМX�z/O��צ⅓��c�����9�&G��M�_M��l
��
���c����V�ˆ���$d�ߜz( ���^��Jó��"%i�C�^�������OC����n�s��AW�g^<��=۩!_���W�,c[R������N�VK
\I^Pd�խ�A�h(W��t�إe�0��S?tr~��J���.As��owr��hp�[z�ʭ�ɢn}{]�`�v�	�
0��jW���U�P"�?��Ku~�O�>�剹QUU�Ku�C�ie��A�F��E <�p{.��C4q��"��.�UOvA��̊���Mh�݆֝"4�Q$uR�w�������G�*�I$�4
�!i$�Be��N��<�"�*�(ްfݧ�/m��~��n���+������/i�e�jY&\w��e´Vn��0��a}n����n��4���lv;���U���gf��(碦-���~�a�9b*��R���@�P<-���8�F�8��4��d�]?��fIc�_��z���ڱ��Rc�᳙�������E>Q
�F�<�GY�O�d���og�����x/��6+���
[��s_�]=)�c��X�l�:%���B�qS��zsn�N������&"��nf�{�^��
:�|w�d��F&Qڬc��R�u����]\���({Ma�
��{��f�Æq�eGa<i���do0Ug�A3�F����m����$�/1�d}T\ ���� �.�kf��坁&�*sw�,Ե*]I�
s�ljނ=/N�CP	�cr\�rΦ�;C���+���>f΢��O2�?�|}���o60	^���w�	��5�,Y���cL\VQ>זZ#�f�����ķ�<���ZM���=]�e0GP��%�EyeF#�:�����a�^���4��m�d��Wd�^W#tT�l����=d�we'~��v^%�#,��]i�@�`6��e:���'����9�!���Z������m��b�x~8�������nXT�{����>B�	�+?ȕ�s�
�_�
?�fO���_?;~;�����LO�9����S���T�����;nVo@r)��Qd(�eHRC�KH���p�
�9TU}p^�C�DŽs}�.cT)8IT�I�j�ޕ��<\��t�U�#��+>&}�"I@1�.0��&�0F^����:5*,�׳Ģ��W�؁u�<o�^�5]x�	�\���#��xۏ�B>ɮ
��)�$#\�Z�w���\�#B���s#��WD�M��v�Q,La�턋�}�P�ش�����&�bdߐ{� 
��-�Y��E0Y��t�X�@vQ�+���f)PF���$���`qq	d\-ro?�`J!
k��n�-�~U�2B�ط����Gc�,F�tu3M>�v!xd���^�������Xy�=��;PO4�O>��>U&�ߘғ,�N2�R@�ǖ<�pxrol�=���x�0	��m�ǜ�����=#bK�I�u�o��i���H�)OcMXZ�R�~}�Y��%��~�|>�W��$��c`�/6�Uk����)���9��|��q@‹t!�9-�@�������r'o�<�������ɲ��:z�*p����1;�˚��+�Y_���.q����%����z��A��Y���v���X�W�Xk�\�K��2ّ�B���e��8�gMb�7$�߿�E����
��ϟkx~2f����_��虃�����&�����i�H�pU�(6֊���1�ȓ��ðA~D ��P�5r�˚\�3?^�W�a�k=�M�I8���F�]=%��(=��o����a��TW7I}Z���5@J�k��r3���a����a�J����"RV�%�R"�*l�><���
p� �6��w����k��"h�~-��+̈́��^�I'�i�1y]��˕[�W�T;��US��ԈRP��M����15ЅRÓ�꤆G�mҫK�鈁K�N?�(��W:���1?N��e��V!Ҡ+��nR��ؑKW�w�-��Ú��آ��Y��� ��!�L�f�ۗt�v�*,�2�P��d����'@Q�]_�˩rl e�ŠQ��fd��difY�j�sQ�r�3�O��b5�L��ZR4>Z��H2�j4��뵬��EC���F�22�Q#񔩹�x�� =�,g��;+��R$}+֜ZU/����נ�d��l4��qڅ-�xn�b�gy"=b#!�9rT�ޙ*�J��jvݚt&��n�P�8+�mE���ɻN�ݺ�Z|��Z�)I�m�P,o�W�o;i9�����e���@NС��ηfR���Nè��|�$v3x��ݼ"M���"8X�mF�1g����z񼜊�>w��!�A�<��Շ�{EI�yf5Z�(M6��ۍ��m��Z���������%�	r�!w�/����E�U���B�uyY�������b�͒�XB63��z"�\U��crl�LDG�6��5hע4%�<�伌
����#�qى������t�9%��z��?��	/px��$�T�ofΙ��@�C������᭩��*px��p4=K�����M�<AVA�U�&t�e:I��*�2G+�M���>��Du�S?e�۱hu&U;
���N���&�~��޼�l�lH���R�ecP�i85�1he�O�&�|���w�Vv���~4��'~T><�	i它MK%um�u��5�U��M3�m��Z������^ړ��T~Y�(��<�d���k7�M�y�L�H!Xx�K�n��1g],bMw��I��u�^�+kQ��1_�A��khk/�?:\�
7
��`�� �[�Ì^U�<R�fK*�������B�4���֒��N}8T
&�:�ڔZ/�5�_Gb
0<��0��NS�ڠ#`A�е{��֍��ʺ}�^6���s*{桞�<j�T[+��9�Ǝ=���hx������"k���"�Hw����RSc���W�&M�-;�tb��6�'9�{��Lj����e����XT��sF��vG���.Sq�m���.<xI��)R�1���;AXo_d/C�$ՕJ�^�JM�Ʈ�,���n�����a�Kw��ڰ�Ϫ�˸u�౜W�̊ch���78�����6�JcwcK0�b̢�Oe��&�Ĥw�
��b�w����/z&J�p�ҚU�$��BYL�����OM �^n���(5�'�@RJj�R�!Ӳ�s�'�h�V0OQ���:�1jNCy��.���qNY��K�$
����ͪYğ2��F�OmpgM�l���Ͱ�TP��X�`���zef�=�sy�-.b�`��P��Y��Aq��C[��]��)2�+˱͊q�Q��F|@j#��$džY�؆T�(��f_j����C��[���w��YY|�K�#�~u]��Բs��S��L�M�Ӯ�MbsJ?�Di��W�رs��!��H$����}�;����nY�bu���fS����Jս���Dn���Ś�
�?x�e����k���껪Ad�q������o(Gl�>F��1Dw�8�.X{C��^�-"Jܫ��G�!���C���^'�����}��<����ɚ)��)<�����]d}}Z<����)��>
f��v�����xY��,��`�4��J@���t�X��K��jγ[�2d���I�#)���ro��t�o7��C��S�Q��<��)�oND�_W�2�0]~>!��v�YŒ�r�W�b�h��K�0�ޜ-���ġ���Ü|�m�rk�Uq"�]t˃��3�&�����#,�y���ڄ_��s��m�Exϴ��(�`[�E����`i��0j+q`+��إ��=�	�F$0?��~��σϵV/�?Gee]��n��(��Ga�뮛�zV�=�8�e�4�&m!
!O�w�ؕ�({�^�P$کi�eϓ5ߛ�5z��SG�����&;J=Vjw47F9D���7�
	���2+�l�s{=T,髕��ydiA/��vY�&F����8��
�j�#r�3/U�9�,Q71�u�p�T��q�)�6Y�i]��v��0�j8����qZ�Y�&��5jH�#^Qi��7��b��k�S�&��j`������ϫ�Z$<�DIȁI��Ϊ�$���0b|Tr��?ϫ�K�_�eC=�CO�7����I`n�3@_*��$�T=��������#L�hG�Mt:z��M���	�8~�C�L=��1;����&�������9��
�ߜ%<L8�����_��Nت��켕�^��pBI��E���9���q���C%�|8�ؾ/C���.�2�g�H%�C@Ƞ�N�|�������cxcY5�
�ڨ���Sy���.OE�\�M�{���M��\^���Ǫ�ϋ⻓�&�3�w�މJL���J�j��LJ� ����=�2�|}������mc��O͜�}��Q���/��?���!���;�k�S޲\�e+VW/�H�Y�O�J�̼��iݳV����b�ܙ(�o�G>�	�i2���G��U��t�.��~��w�Ap���!���%$M&��/	���/�;��]��xH�h�YŤǞ	_���\������-����i��8S�{�Z���_�z���!���޼N��ƍ�ç!F3֌��:�d��JLJc��H.$a� ytVm���u1���̞V�E��e��qI5p�>�ߊ �:�DP}M�y�	��2^�j�װ���=�z��ƫS
�U+-g�ӎ��ݪ���1��UC���(��3�	�i7Ol,�X
�Pz�"�dZ�*��[i>m)�j�wH��h
�4fEw��}j��
A�'s�&���VX�//����T5���4�T.9���ڮ�uK�ub�k�	�vu}�׮?1g�\y���	YƠ~a��qzN�K9	�JB���2�Ҋ
L�%=e@�:!S^�%zTp{9wo�gJٙ��'�!�vN&[|�V_�@<1m`��	�-�w:�G�<���Q�ݷq�+Oױ5�����es1�i�`���_���[%7o�[e݆ON����۳��4�p��n`�G�rE��-%-e\ז��?1���G���W���uj��'0�+4�ag�
���ս��b�*��)}���ٰ��������Ӈ�����z��R<����Du��Yf1�a��F<koGⲓg��U;<T:F'1���7��QV��ٴ�Hgo�0p�X�m	��r�_>|�����n��G�`r�O��m�[�k_���f�m�$��N�Ԏ�����q��9r�4�cw�|>�kv[̷�ݍNQNQ7���c򜧮f.�9�C'�0!|�y?4��;mB �\gs8 �j�p���sO�8��v�f����n�a1�n��G��=��j^��[�{��$�j}�X���.������QY7D��LM��������T�z����S�y5���^�*��L���>�M�*I�
�N��o��1���Co��`gI�ϑB)�I�g!�*��w�ZF����0�.jҽO4;2���U�q.��U��H�?.x�NM� G�A3�Hʕ6*c|�&DK����g�,3�.g�ܾR*��$
��h���kB��`J���Y�����eq|�BK��R�Ѽ\S(�ǻVW�I��X�z]�Y�;��HI����I�T|!����*k����J��P���:K�;ф�\�`��>Z,�,�;)ra��|Z�>�N�S_W�yP�.���0�o:�%��c�cӲ���~�%>�I~�#����l��3�^�dGj���3:��u�Lo�;N��o7��Q�ʅC�9��}�b��Wi�C�B���&��0�&�qhm���-5T�fu5=����F#H�LjǔZ�M�6��\9�.+�b������ʘ<_�&�-C���T�$r~%�����=����"�vQ3)�cQ�;���P+=���A�Ŏ!}�ƻߴ8���B�!�^�WF��2�&�{��s)�����/!�$�cE����p�.m�8�Uu�Z�8ğ�T62(�5���MӬ胂S�L��^m*Q�>�͜� æQ�e=��N�+�1KZ��|���9H~��̈́b�	Y�:�1Х"�;�>���x��I�'5W���D�}�4�c���q��8��;ͷ|�զ���yh��(3) �
&J5Y9	{ib�+s'\c��&&����s�Q
b�Uw^7!�]��?]׬�.[P��uOe�̃�*���W�R �e��F�no�E9�x��+^)�[��f)�T�K���lU�HPN�D<g��,i�*���͈"�1�+���&�)3��B��Ge��T��?U��F����+�^��C8��|xH�W
�_�D�p�Qn
p���>�z���E�L��(ܘ�_��)(�cL��5K!J�R��b�M>����r�	�hn\�v�i�u�Ȅ�Tr�v-���bP���dp�=�wp�&��U���@�u*��N�c��C��p+K�;Ϸ	x����Y퀐�
����b���\��������w�"m����ٚ�1��6W f"f٨M>+FEͱ�$�T�ڮMJ!��3�Dm~V<|y��)�Ϙ �@e���bWa��P$i��>�����րx��i�����!0"x��Gce؊"���&�WD<�ŎJ��LLx���4�;����2ܺ����j21��4���] 3U�L��4H�KD�zo?�#��Uz-�y�� �
�OT�������2ĂI~��m�+�:��HV ��e��@���������S�i�"N�d$�[��I�P�A)�Q�T�O�e=0� �H"�#K��*!�A����ת�!+�T�3� Р/Hg�YգT-sHWd^��Ub�xR�j�Y���=��o�0ŠC`]k�V���
���6�$�F� )s�$��Hmlc<��6�>«1�R�E�(ha�Z��;�o��(;�)aJ���C��|�@�c�Xw��ٶ���Xn�eA����F'����Tb6z=�Vt�|�����x��oӡZ���nόH؋�h�ѫS��K�rВ��:�(a��ʁ9Q�:N	�^
yj��%���l��<�dp�Gn��R�;:q6Ӓ �d��S:��1=�WH�iGHk{#���X�B��TJ7�(�}�WL�^���R�Q�<]"!�����8�0��J��?>��_��`2T]*^B����F�2�t%%N|H�įV�6�A�X<1D+�
%]un�v*��鯞�~�Չ��b��k�͓�z��d��&Y9��0j���d��ؾ��I^w1��KId�{$}\?���MUM<z$�P��)�h��>��N��z�M\��P�IV
?N�$����S��J��3B?����"�
����_�ҋR�Iiu�";f_Q�B42ޮU��~�(��-�.N�c��ux�_}��
��V�L�e�m�wE�Q���\+'x��
�^y~��dO%(�h=�R�u·k֝��eq�ճ�篅���M`F0�U�`�%j�]��g�Βģ�=�X/4��:���pv��J}��(�?�FГnV�^6��E�Ҍ
�Q�+���9�RMtRPD�r����lM8��PDR�K��9|����/�l�}{���ыC�Q0�jye35�P�̊��,�����E�h�s��F��Dz#0�E��MД&$�+��}&PO��X���gk#���՝�W�ͧ���Aʦrk�%cSO�Q.�ʖ��^blw��Zyq���V&�v0e�ُ����׃x`������V���r����xB3�1��3gU-�k̒�mI�/N������h3�WK�m�sY)feXr��[��m��=�{
%BQ�H<���
j�i��U��7����J4^�g�y2���E�N�XwQΓf��/�M园�t>�DU�9�x��~^�j,��l���E��&;B�HJG���.(�'��pBt��r��H�x���ً�gǏ�}�I�,}�>���3�o)'��k+~��#�J���Ce�cY�2si���gz4�o?sH���yS]~����RV�����G���0�!���JYB�R��js�b[�S�6�2rb� m�����L
�+e�p~���<Fr�i	7<��}Ϙ�����:�5N�S�§[�^���n����C`��$:�v�rs�n~�=%G^f�;+�h�(���Bk�k7媯��Vq�Ø4<5�R�tU��J�����{��BV,��EY��L���H+Uf��`�j����
�Z3��m�w:�۫�����7Z�Dž�0�����UI����c/��_�Ed���D&��US�w�6�2�N��k��,�hx���Cve�KP��wh���!��%��f
��K�*{E�Q,q�6�i�����1�nzڕM���\�	��)�CqU�V[q����'\_}0d����Q�R�\���z�<�S�iW�=���BFtQ���,J�p���7`*�aİ���!�_�׫��'7773��+������L��'+5^�'�3���h�����N��
ء�fs����=��i�w�d�ި��脓��Y�
�=nu��H�����
�n&�����0�z��^���ِ�i��>�-�f�*�2���ƿ�~V���7�<0Ʌ���?Բw|&+5O�U����o!}��F�Qu�ZDON��%p���(��Y=fԩy)����.'�V��er�|��;��������b���;כ� ��{���p� �L�9����8��l��*+�TI�l:�:�Bo�C��5���Մ
�xݲ�=W%�`���:6���ѵ_��V���/�I9�@���b`�ӤOk���Cd�q��_�ke�d!?a#H�j`]���BO��zS5Dٛ7��,��W�Á���N�������"�K�a5s��CY+#��Y��b�]vh���įz/��yU[�0�R׌)��iO�>�ڭ���oAV��M��y���o�6�3�Bq{ߚ�-
֜���1nt��e/m��t]P�j���Yp��qa�(��XV�Е@p�jec
͎��Yv�n��8K��l<H�ƃ�jl-ƶ�C���G{�@�S�%y�f������ct���:<�1k��K�����_���:d͋�=�V�@�#��Z��*�^�`*O.�.BZ�kR��޻?��.�e/���G�o��^<;|u���XA[(�Ыk	y~V�/+X�ü#わ�(10�][����R"�_<���꺆��%,N����){jY-�d�}L�,l�4m@�
G�0�h�$i|�!�~�L{0��<8����
L�3+w�wG�>j�>?.������IYmMyPW�9����j&V���Co 4��Ra����A�t���E��Ȍr�(��}:H9~�C8*�?X�:�/��&J�Y��"BB�x���C��
/��9e�w�L��}"��w�9I��#�M��4�K�����#������rN���r���S~����Z�/�?�;~���z�dG��
��m<"��%���ӡ���)�\G�j�W�s�	�d��Ts�)>�H���&F`�뜻i��(/s����s�E$��w�P820�q
P��y���S'��fȿ���0=��ʹb�x�''��`���;,	���3/WrB��9 ���S�Ӏ��z�.�X���5̈́@��	D�1��<J��
D��	��"%��R��L�z����!CUZu��@U3�Di�./�\1f��2'`�H��\����nW�E<�	�WDy�N��I�!?��DӽV�g�Y�rD��������q�y�1O�ג�������W/^	�<�y@�]x�9�Kgo���Wn
���}Ɗ{8�ZxA�>p���pi�|�����@lޠ�d�·T�I�3���RC�C:6gةEجBk�}�!]R%;Д���R�;w��Ug��
qb\2EI-c��01r�1�-3�Bh�"D��$o���+���v��ǚqH� ��bT�k����Yq�� ���S���
;�L�2��*��O�K��b�Z�9Uo��Iy
Yb��m\9��瓳�b�b�،�x�h�Y�P�`E�5zS�A.s�X��+�ic�v.6U�r���w�y��Ϻ�Bǿ��0������Z1��׋��)ߧJꁟ����I!�<!du��f��9ͰȢ�J8�x�$��eJ��!�f�'I`R��1��-�K�%9�%V#{	���V0a�D�ǚ�\�]�ǂ���Ye���<��1�\��T@W9�ޚZ�]�v��V����uN(�9��,�Տ+/c���P�4�����p�)�"8���B?�=�=Z���>�Ȝi{!�V�BQ�ށŶ�Z��@��[d�S� yKҎ��9�Ej�ٕ�(�9YW'~~�]�?�v&�U�$(pU��T�F��
u�q��I>�$k�Z�q�Y]����a�1b��0��B����\-���
���t�grvњfE۶x�#Kc���S�Qk�Hn_�0���lQ�����@����S�·����hRb�Y�v#��k�NӼK�����k5��%X%՘l�+�9u��i׎1��]���kKX1�:֤���䖈��RRĪ�HMljhSWkV���"y+�ui��✑O7NU���P��)�	lX]��*��=/ot�P1u�?����^�Q�k�]��9�l겲�2��s���G�i���v���>e������(>:����K��G�96�0��ʍ����՚�*$4/�":'������?�#�%4����zP��i�����FK�<(.D��K��i�CE4���C*����_�%̈������C�G��a�p�b�v50�#IYf�C��K.��z�E���*?��:�:-W0��O�4�1�V����)�j�<?���U`�ގ��dQ2e��PV\�����hš��F�U��׷�G����@����6L�S&6��:΢��K�0�b�� �.�i�r"�����l'#�N��0����?[.7�l��㳕—Q��W�Y��Zn�ɚX�
��\u�N
��U-�c��'�}��uϼM]v/�r'�sE�p覧��ܢ�Ӧ*�AG_޺�r@6�X�,�����j��p����� �e
[��e���A,<�cC�q��>��M �8�����ad\;��fT\c�ĕ&bi�:9-rV����&�����?;�s�\�"ޙ��L!儕�$.����-��_����ʰ,Cw)��ܐ�Q�T5|���
�K=�`<⮐��M�PdŬ��⚸��{6D�8�qR���e�n������4v {û�X;�����p��L�d	�;R$=8BҤ��$��	^+hڞ/���)�R`�����&��!�b�2Q��Y�c��$V���ڳ'�+(�Wp�.+��ė�{���Y����i����Gr��a.��4�����7����Cy����oN�Ci�>{s:K�SE|ّj `=@�����p�sw�#��B�;{G�¡c��E.~���2�����8O6���L�b8��g�:�=�uj��%#�xs����s/��ÔD|�o_���t+����9�e֛�����of4r
5�E`~|K(�����͉%���Y$ʓ�31�� �՝�e�#��LP���NE�F)�1�B��U���D��G�GTS�
��8Rñ�t��#S��o��&��������Ә�i�Y��s1Exaj�=�
tM�Οw+���Y�sl���MMK��ĺI��q���"��P�)�s�b�YB�v��E-b�]�:^n1����a�A���`Q;kn'����c��!����]�}��zM5Qa�8i�"PS=�>$��I'`��
�!rn֚�b�̬��i>3�A��Lq�	&u�(jךL�45cp�i��*���ܜ��xF��  �'�g��JƜ��5�u�³u�K��*�L/��J5^U/����~7^)-��g�6�����t_"	�_��q}�)��6�6b���M5h92��	y�1,:�����'�~ˏ��G�	�(���G-��p*��rh~,�1tii�y�!O�୺O˹�ꎶ�:M��=��5?��c�ڐL���X��d��r!�@�[��V�Љ��	-i�(
P:}�����P��l��j���ђ��@�Z�=kj5��i�d��(P$I4�1�	�ZD'A3fQPP��ž� ����B�rXC�ʙ����(�3V�E�Q|��ʙJ<�4��%��Om[���`��+�M�4��S�a)�5l4�N�u4�Rv���4�Xb���Ё�O0�̌..�j㦒�'�"��_�S�m�<FD�q�~,#�9F��t&?����D���*��&���O��'k�N�2v��Ϫ~�Ch��b�x;���<Q zn��hQg�m���AԶ���е�R~~�:5\��g�dmt��D�^M߃���o��L�üD7���';�����֞�_AÚz@c�=S/LaHҤ�c�y8�p�V3,�mM�gEy��4O�2���H�B#���/8�l��D���u��2�XX#�AX�P�	��J'�p�0e�[Ґ��Оh�4/��'sһ�6�G��v=M�5���#��9��;���V�:�x�5dz�
��ZH}j�fj����hO�_���ğ�M��,:>
�s��5�3���g�~�������PKp][9��&m�Kz��litespeed-cache-es_ES.poUTdL�hux����PKp][�Ў}�&�����litespeed-cache-es_ES.moUTdL�hux����PKp][,��<�3����litespeed-cache-es_ES.l10n.phpUTdL�hux����PK ʂ# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in Spanish (Mexico)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2024-02-24 15:52:26+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/4.0.1\n"
"Language: es_MX\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/db_optm/manage.tpl.php:26
msgid "Clean all orphaned post meta records"
msgstr "Limpiar todos los registros meta de entradas huérfanas"

#: tpl/db_optm/manage.tpl.php:25
msgid "Orphaned Post Meta"
msgstr "Meta de entrada huérfano"

#: tpl/dash/dashboard.tpl.php:863
msgid "Best available WordPress performance"
msgstr "El mejor rendimiento disponible para WordPress"

#: src/db-optm.cls.php:204
msgid "Clean orphaned post meta successfully."
msgstr "Limpieza correcta de los meta de entrada huérfanos."

#: tpl/img_optm/summary.tpl.php:325
msgid "Last Pulled"
msgstr "Última extracción"

#: tpl/cache/settings_inc.login_cookie.tpl.php:104
msgid "You can list the 3rd party vary cookies here."
msgstr "Puedes listar las cookies de terceros que varían aquí."

#: src/lang.cls.php:226
msgid "Vary Cookies"
msgstr "Variar cookies"

#: tpl/page_optm/settings_html.tpl.php:75
msgid "Preconnecting speeds up future loads from a given origin."
msgstr "La preconexión acelera las cargas futuras desde un origen determinado."

#: thirdparty/woocommerce.content.tpl.php:71
msgid "If your theme does not use JS to update the mini cart, you must enable this option to display the correct cart contents."
msgstr "Si tu tema no utiliza JS para actualizar el minicarrito, debes activar esta opción para mostrar el contenido correcto del carrito."

#: thirdparty/woocommerce.content.tpl.php:70
msgid "Generate a separate vary cache copy for the mini cart when the cart is not empty."
msgstr "Generar una copia de caché variable separada para el minicarrito cuando éste no esté vacío."

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Vary for Mini Cart"
msgstr "Variante según el minicarrito"

#: src/lang.cls.php:161
msgid "DNS Preconnect"
msgstr "Preconexión DNS"

#: src/doc.cls.php:39
msgid "This setting is %1$s for certain qualifying requests due to %2$s!"
msgstr "¡Este ajuste es %1$s para determinadas solicitudes que cumplen los requisitos debido a %2$s!"

#: tpl/page_optm/settings_tuning.tpl.php:43
msgid "Listed JS files or inline JS code will be delayed."
msgstr "Los archivos JS listados o el código JS en línea se retrasarán."

#: tpl/crawler/map.tpl.php:58
msgid "URL Search"
msgstr "Buscar URL"

#: src/lang.cls.php:163
msgid "JS Delayed Includes"
msgstr "Inclusiones de JS retrasadas"

#: src/cloud.cls.php:1453
msgid "Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more."
msgstr "Tu domain_key ha sido bloqueada temporalmente para evitar abusos. Puedes ponerte en contacto con el servicio de asistencia de QUIC.cloud para obtener más información."

#: src/cloud.cls.php:1448
msgid "Cloud server refused the current request due to unpulled images. Please pull the images first."
msgstr "El servidor de la nube ha rechazado la solicitud actual debido a que no se han extraído las imágenes. Por favor, extrae primero las imágenes."

#: tpl/crawler/summary.tpl.php:110
msgid "Current server load"
msgstr "Carga actual del servidor"

#: src/img-optm.cls.php:876
msgid "Started async image optimization request"
msgstr "Se inició la solicitud de optimización asíncrona de imágenes"

#: src/crawler.cls.php:229
msgid "Started async crawling"
msgstr "Se inició el rastreo asíncrono"

#: src/conf.cls.php:514
msgid "Saving option failed. IPv4 only for %s."
msgstr "Falló el guardado de la opción. IPv4 es solo para %s."

#: src/cloud.cls.php:1460
msgid "Cloud server refused the current request due to rate limiting. Please try again later."
msgstr "El servidor en la nube rechazó la solicitud actual debido a la limitación de cuota. Por favor, inténtalo de nuevo más tarde."

#: tpl/img_optm/summary.tpl.php:298
msgid "Maximum image post id"
msgstr "ID de entrada de imagen máxima"

#: tpl/img_optm/summary.tpl.php:297 tpl/img_optm/summary.tpl.php:372
msgid "Current image post id position"
msgstr "Posición actual del id de entrada de la imagen"

#: src/lang.cls.php:26
msgid "Images ready to request"
msgstr "Imágenes listas para la solicitud"

#: tpl/dash/dashboard.tpl.php:384 tpl/general/online.tpl.php:31
#: tpl/img_optm/summary.tpl.php:54 tpl/img_optm/summary.tpl.php:56
#: tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:246
#: tpl/page_optm/settings_media.tpl.php:192
#: tpl/page_optm/settings_vpi.tpl.php:59
msgid "Redetect"
msgstr "Volver a detectar"

#. translators: %1$s: Socket name, %2$s: Host field title, %3$s: Example socket
#. path
#. translators: %1$s: Socket name, %2$s: Port field title, %3$s: Port value
#: tpl/cache/settings_inc.object.tpl.php:107
#: tpl/cache/settings_inc.object.tpl.php:146
msgid "If you are using a %1$s socket, %2$s should be set to %3$s"
msgstr "Si estás usando un socket %1$s, %2$s debería estar en %3$s"

#: src/root.cls.php:197
msgid "All QUIC.cloud service queues have been cleared."
msgstr "Se han borrado todas las colas de servicio de QUIC.cloud"

#. translators: %s: The type of the given cache key.
#: src/object.lib.php:519
msgid "Cache key must be integer or non-empty string, %s given."
msgstr "La clave de caché debe ser un entero o una cadena no vacía, %s proporcionado."

#: src/object.lib.php:517
msgid "Cache key must not be an empty string."
msgstr "La clave de caché no puede ser una cadena vacía."

#: src/lang.cls.php:172
msgid "JS Deferred / Delayed Excludes"
msgstr "Exclusiones de JS diferido / retrasado"

#: src/doc.cls.php:168
msgid "The queue is processed asynchronously. It may take time."
msgstr "La cola se procesa de forma asíncrona. Puede llevar un tiempo."

#: src/cloud.cls.php:1179
msgid "In order to use QC services, need a real domain name, cannot use an IP."
msgstr "Para poder usar los servicios de QC necesitas un nombre de demonio real, no puedes usar una IP."

#: tpl/presets/standard.tpl.php:195
msgid "Restore Settings"
msgstr "Restaurar los ajustes"

#: tpl/presets/standard.tpl.php:193
msgid "This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?"
msgstr "Esto restaurará la copia de seguridad de los ajustes creada %1$s antes de aplicar el preajuste %2$s. Cualquier cambio realizado desde entonces se perderá. ¿Quieres continuar?"

#: tpl/presets/standard.tpl.php:189
msgid "Backup created %1$s before applying the %2$s preset"
msgstr "Copia de seguridad creada %1$s antes de aplicar el preajuste %2$s"

#: tpl/presets/standard.tpl.php:178
msgid "Applied the %1$s preset %2$s"
msgstr "Se ha aplicado el prejuste %1$s %2$s"

#: tpl/presets/standard.tpl.php:175
msgid "Restored backup settings %1$s"
msgstr "Se han restaurado el respaldo de los ajustes %1$s"

#: tpl/presets/standard.tpl.php:173
msgid "Error: Failed to apply the settings %1$s"
msgstr "Error: No se pudieron aplicar los ajustes %1$s"

#: tpl/presets/standard.tpl.php:163
msgid "History"
msgstr "Historial"

#: tpl/presets/standard.tpl.php:152
msgid "unknown"
msgstr "desconocido"

#: tpl/presets/standard.tpl.php:133
msgid "Apply Preset"
msgstr "Aplicar el preajuste"

#: tpl/presets/standard.tpl.php:131
msgid "This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?"
msgstr "Se ha a a hacer una copia de seguridad de tus ajustes actuales y reemplazarlos con los de los preajustes %1$s. ¿Quieres continuar?"

#: tpl/presets/standard.tpl.php:121
msgid "Who should use this preset?"
msgstr "¿Quién debería usar este preajuste?"

#: tpl/presets/standard.tpl.php:96
msgid "Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between."
msgstr "Utiliza un preajuste oficial diseñado por LiteSpeed para configurar tu sitio en un clic. Pruebe el cacheo esencial sin riesgos, la optimización extrema o algo intermedio."

#: tpl/presets/standard.tpl.php:92
msgid "LiteSpeed Cache Standard Presets"
msgstr "Preajustes estándar de cache de LiteSpeed"

#: tpl/presets/standard.tpl.php:85
msgid "A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Activa el máximo nivel de optimizaciones para obtener puntuaciones de velocidad de página mejorados."

#: tpl/presets/standard.tpl.php:84
msgid "This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images."
msgstr "Este preajuste es casi seguro que requerirá pruebas y exclusiones de algo de CSS, JS y carga diferida de imágenes. Presta especial atención a los logotipos, o a imágenes de carrusel basadas en HTML."

#: tpl/presets/standard.tpl.php:81
msgid "Inline CSS added to Combine"
msgstr "CSS en línea añadido a Combinar"

#: tpl/presets/standard.tpl.php:80
msgid "Inline JS added to Combine"
msgstr "JS en línea añadido a Combinar"

#: tpl/presets/standard.tpl.php:79
msgid "JS Delayed"
msgstr "JS Retrasado"

#: tpl/presets/standard.tpl.php:78
msgid "Viewport Image Generation"
msgstr "Generación del viewport de la imagen"

#: tpl/presets/standard.tpl.php:77
msgid "Lazy Load for Images"
msgstr "Carga diferida para imágenes"

#: tpl/presets/standard.tpl.php:76
msgid "Everything in Aggressive, Plus"
msgstr "Todo lo de Aggressive y además"

#: tpl/presets/standard.tpl.php:74
msgid "Extreme"
msgstr "Extremo"

#: tpl/presets/standard.tpl.php:69
msgid "This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning."
msgstr "Este preajuste puede que funcione tal cual en algunas webs, ¡pero asegúrate de hacer pruebas! Puede que sean necesarias algunas exclusiones de CSS y JS en \"Optimización de página > Retoques\""

#: tpl/presets/standard.tpl.php:66
msgid "Lazy Load for Iframes"
msgstr "Carga diferida de Iframes"

#: tpl/presets/standard.tpl.php:65
msgid "Removed Unused CSS for Users"
msgstr "CSS sin uso eliminado para los usuarios"

#: tpl/presets/standard.tpl.php:64
msgid "Asynchronous CSS Loading with Critical CSS"
msgstr "Carga de CSS asíncrono con CSS crítico"

#: tpl/presets/standard.tpl.php:63
msgid "CSS & JS Combine"
msgstr "Combinar CSS y JS"

#: tpl/presets/standard.tpl.php:62
msgid "Everything in Advanced, Plus"
msgstr "Todo lo de Advance y además"

#: tpl/presets/standard.tpl.php:60
msgid "Aggressive"
msgstr "Agresivo"

#: tpl/presets/standard.tpl.php:56 tpl/presets/standard.tpl.php:70
msgid "A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones de velocidad de página."

#: tpl/presets/standard.tpl.php:55
msgid "This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools."
msgstr "Este preajuste es bueno para la mayoría de webs, y es raro que provoque conflictos. Cualquier conflicto de CSS o JS puede solucionarse con las herramientas de \"Optimización de página > Retoques\""

#: tpl/presets/standard.tpl.php:50
msgid "Remove Query Strings from Static Files"
msgstr "Eliminar cadenas de consulta de recursos estáticos"

#: tpl/presets/standard.tpl.php:48
msgid "DNS Prefetch for static files"
msgstr "Precarga de DNS para archivos estáticos"

#: tpl/presets/standard.tpl.php:47
msgid "JS Defer for both external and inline JS"
msgstr "Aplazar JS para JS externos e incrustados"

#: tpl/presets/standard.tpl.php:45
msgid "CSS, JS and HTML Minification"
msgstr "Minimizado de CSS, JS y HTML"

#: tpl/presets/standard.tpl.php:44
msgid "Guest Mode and Guest Optimization"
msgstr "Modo de invitado y modo de optimización"

#: tpl/presets/standard.tpl.php:43
msgid "Everything in Basic, Plus"
msgstr "Todo en el básico, además"

#: tpl/presets/standard.tpl.php:41
msgid "Advanced (Recommended)"
msgstr "Avanzado (Recomendado)"

#: tpl/presets/standard.tpl.php:37
msgid "A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones del sitio en las herramientas de medición de velocidad de página."

#: tpl/presets/standard.tpl.php:36
msgid "This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners."
msgstr "Este preajuste de bajo riesgo introduce optimizaciones básicas de mejora de la velocidad de página y experiencia de usuario. Adecuado para principiantes entusiastas."

#: tpl/presets/standard.tpl.php:33
msgid "Mobile Cache"
msgstr "Caché móvil"

#: tpl/presets/standard.tpl.php:31
msgid "Everything in Essentials, Plus"
msgstr "Todo lo de Essentials y además"

#: tpl/presets/standard.tpl.php:25
msgid "A Domain Key is not required to use this preset. Only basic caching features are enabled."
msgstr "No es obligatoria una clave de dominio para este preajuste. Solo se activan características básicas de caché."

#: tpl/presets/standard.tpl.php:24
msgid "This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development."
msgstr "Este preajuste sin riesgos es apropiado para todas las webs. Es bueno para nuevos usuarios, webs sencillas o desarrollos orientados a caché."

#: tpl/presets/standard.tpl.php:20
msgid "Higher TTL"
msgstr "TTL mayor"

#: tpl/presets/standard.tpl.php:19
msgid "Default Cache"
msgstr "Caché predeterminado"

#: tpl/presets/standard.tpl.php:17
msgid "Essentials"
msgstr "Básicos"

#: tpl/presets/entry.tpl.php:23
msgid "LiteSpeed Cache Configuration Presets"
msgstr "Preajustes de configuración de caché LiteSpeed"

#: tpl/presets/entry.tpl.php:16
msgid "Standard Presets"
msgstr "Preajustes estándar"

#: tpl/page_optm/settings_tuning_css.tpl.php:52
msgid "Listed CSS files will be excluded from UCSS and saved to inline."
msgstr "Los archivos CSS listados se excluirán del CSS sin uso y guardados para que se incrusten."

#: src/lang.cls.php:144
msgid "UCSS File Excludes and Inline"
msgstr "Excluir archivo del CSS sin uso e incrustar"

#: src/lang.cls.php:143
msgid "UCSS Selector Allowlist"
msgstr "Lista blanca del selector de CSS sin uso"

#: src/admin-display.cls.php:122
msgid "Presets"
msgstr "Preajustes"

#: tpl/dash/dashboard.tpl.php:310
msgid "Partner Benefits Provided by"
msgstr "Ventajas de colaboración ofrecidas por"

#: tpl/toolbox/log_viewer.tpl.php:35
msgid "LiteSpeed Logs"
msgstr "Registros de LiteSpeed"

#: tpl/toolbox/log_viewer.tpl.php:28
msgid "Crawler Log"
msgstr "Registros de rastreadores"

#: tpl/toolbox/log_viewer.tpl.php:23
msgid "Purge Log"
msgstr "Purgar registro"

#: tpl/toolbox/settings-debug.tpl.php:164
msgid "Prevent writing log entries that include listed strings."
msgstr "Evita escribir entradas del registro que incluyan cadenas listadas."

#: tpl/toolbox/settings-debug.tpl.php:27
msgid "View Site Before Cache"
msgstr "Ver sitio sin caché"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "View Site Before Optimization"
msgstr "Ver sitio sin optimizar"

#: tpl/toolbox/settings-debug.tpl.php:19
msgid "Debug Helpers"
msgstr "Ayudas de depuración"

#: tpl/page_optm/settings_vpi.tpl.php:122
msgid "Enable Viewport Images auto generation cron."
msgstr "Activar el cron de generación automática del viewport de imágenes."

#: tpl/page_optm/settings_vpi.tpl.php:39
msgid "This enables the page's initial screenful of imagery to be fully displayed without delay."
msgstr "Esto permite que la pantalla inicial de imágenes de la página se muestre completamente sin demora."

#: tpl/page_optm/settings_vpi.tpl.php:38
msgid "The Viewport Images service detects which images appear above the fold, and excludes them from lazy load."
msgstr "El servicio de viewport de imágenes detecta qué imágenes aparecen antes de hacer scroll y las excluye de la carga diferida."

#: tpl/page_optm/settings_vpi.tpl.php:37
msgid "When you use Lazy Load, it will delay the loading of all images on a page."
msgstr "Cuando usas la carga diferida, se retrasa la carga de todas las imágenes de la página."

#: tpl/page_optm/settings_media.tpl.php:257
msgid "Use %1$s to bypass remote image dimension check when %2$s is ON."
msgstr "Utiliza %1$s para saltarte la comprobación de dimensión en imágenes remotas cuando la %2$s esté ACTIVA."

#: tpl/page_optm/entry.tpl.php:20
msgid "VPI"
msgstr "VPI"

#: tpl/general/settings.tpl.php:72 tpl/page_optm/settings_media.tpl.php:251
#: tpl/page_optm/settings_vpi.tpl.php:44
msgid "%s must be turned ON for this setting to work."
msgstr "%s debe estar activo para que este ajuste funcione."

#: tpl/dash/dashboard.tpl.php:755
msgid "Viewport Image"
msgstr "Imagen de la vista"

#: thirdparty/litespeed-check.cls.php:74 thirdparty/litespeed-check.cls.php:122
msgid "Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:"
msgstr "Debido a que puede haber conflictos con LiteSpeed Cache, por favor, considera desactivar los siguientes plugins:"

#: src/metabox.cls.php:34
msgid "Mobile"
msgstr "Móvil"

#: src/metabox.cls.php:32
msgid "Disable VPI"
msgstr "Desactivar VPI"

#: src/metabox.cls.php:31
msgid "Disable Image Lazyload"
msgstr "Desactivar la carga de imágenes diferida"

#: src/metabox.cls.php:30
msgid "Disable Cache"
msgstr "Desactivar la caché"

#: src/lang.cls.php:263
msgid "Debug String Excludes"
msgstr "Exclusión de cadenas de depuración"

#: src/lang.cls.php:204
msgid "Viewport Images Cron"
msgstr "Cron de imágenes de la vista"

#: src/lang.cls.php:203 src/metabox.cls.php:33 src/metabox.cls.php:34
#: tpl/page_optm/settings_vpi.tpl.php:23
msgid "Viewport Images"
msgstr "Imágenes de la vista"

#: src/lang.cls.php:54
msgid "Alias is in use by another QUIC.cloud account."
msgstr "El alias ya está en uso por otra cuenta de QUIC.cloud."

#: src/lang.cls.php:52
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain."
msgstr "No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal."

#: src/lang.cls.php:47
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict."
msgstr "No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal, debido a un conflicto potencial con la CDN."

#: src/error.cls.php:200
msgid "You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible."
msgstr "No puedes eliminar esta zona de DNS porque aún está en uso. Por favor, actualiza los servidores de nombers, luego tratar de borrar de nuevo esta zona, en caso contrario tu sitio será inaccesible."

#: src/error.cls.php:103
msgid "The site is not a valid alias on QUIC.cloud."
msgstr "El sitio no tiene un alias válido en QUIC.cloud."

#: tpl/page_optm/settings_localization.tpl.php:141
msgid "Please thoroughly test each JS file you add to ensure it functions as expected."
msgstr "Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera."

#: tpl/page_optm/settings_localization.tpl.php:108
msgid "Please thoroughly test all items in %s to ensure they function as expected."
msgstr "Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera."

#: tpl/page_optm/settings_tuning_css.tpl.php:100
msgid "Use %1$s to bypass UCSS for the pages which page type is %2$s."
msgstr "Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s."

#: tpl/page_optm/settings_tuning_css.tpl.php:99
msgid "Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL."
msgstr "Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL."

#: tpl/page_optm/settings_css.tpl.php:86
msgid "Filter %s available for UCSS per page type generation."
msgstr "Disponible el filtro %s para la generación de UCSS por tipo de página."

#: tpl/general/settings_inc.guest.tpl.php:45
#: tpl/general/settings_inc.guest.tpl.php:48
msgid "Guest Mode failed to test."
msgstr "Prueba fallida del modo de invitado."

#: tpl/general/settings_inc.guest.tpl.php:42
msgid "Guest Mode passed testing."
msgstr "Prueba superada del modo de invitado."

#: tpl/general/settings_inc.guest.tpl.php:35
msgid "Testing"
msgstr "Probando"

#: tpl/general/settings_inc.guest.tpl.php:34
msgid "Guest Mode testing result"
msgstr "Resultado de la prueba del modo de invitado"

#: tpl/crawler/blacklist.tpl.php:85
msgid "Not blocklisted"
msgstr "No está en la lista negra"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:25
msgid "Learn more about when this is needed"
msgstr "Aprende más sobre cuándo esto es necesario "

#: src/purge.cls.php:344
msgid "Cleaned all localized resource entries."
msgstr "Limpiadas todas las entradas de recursos localizados."

#: tpl/toolbox/entry.tpl.php:24
msgid "View .htaccess"
msgstr "Ver el archivo \".htaccess\""

#: tpl/toolbox/edit_htaccess.tpl.php:63 tpl/toolbox/edit_htaccess.tpl.php:81
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "Puedes usar este código %1$s en %2$s para especificar la ruta al archivo \".htaccess\"."

#: tpl/toolbox/edit_htaccess.tpl.php:62 tpl/toolbox/edit_htaccess.tpl.php:80
msgid "PHP Constant %s is supported."
msgstr "Es compatible la contante %s de PHP."

#: tpl/toolbox/edit_htaccess.tpl.php:58 tpl/toolbox/edit_htaccess.tpl.php:76
msgid "Default path is"
msgstr "La ruta predeterminada es"

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid ".htaccess Path"
msgstr "Ruta del archivo \".htaccess\""

#: tpl/general/settings.tpl.php:49
msgid "Please read all warnings before enabling this option."
msgstr "Por favor, lee todas las advertencias antes de activar esta opción."

#: tpl/toolbox/purge.tpl.php:83
msgid "This will delete all generated unique CSS files"
msgstr "Esto borrará todos los archivos CSS únicos generados"

#: tpl/toolbox/beta_test.tpl.php:74
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "Para evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s."

#: tpl/toolbox/beta_test.tpl.php:67
msgid "Use latest GitHub Dev/Master commit"
msgstr "Utiliza el último commit Dev/Master de GitHub"

#: tpl/toolbox/beta_test.tpl.php:67
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales."

#: tpl/toolbox/beta_test.tpl.php:62
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "No se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado."

#: tpl/page_optm/settings_tuning.tpl.php:144
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios."

#: tpl/page_optm/settings_tuning.tpl.php:106
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Los archivos JS listados o el código JS integrado no serán optimizados por %s."

#: tpl/page_optm/settings_tuning_css.tpl.php:92
msgid "Listed URI will not generate UCSS."
msgstr "Las URI listadas no generarán UCSS."

#: tpl/page_optm/settings_tuning_css.tpl.php:74
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "El selector debe existir en el CSS. Las clases principales en HTML no funcionarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:70
#: tpl/page_optm/settings_tuning_css.tpl.php:145
msgid "Wildcard %s supported."
msgstr "Compatibilidad con el comodín %s."

#: tpl/page_optm/settings_media_exc.tpl.php:34
msgid "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr "Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:246
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de layout y mejorar CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:139
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr "Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración."

#: tpl/page_optm/settings_js.tpl.php:79
msgid "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."
msgstr "Aplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals)."

#: tpl/page_optm/settings_js.tpl.php:77
msgid "Delayed"
msgstr "Retrasada"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "JS error can be found from the developer console of browser by right clicking and choosing Inspect."
msgstr "El error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar."

#: tpl/page_optm/settings_js.tpl.php:51 tpl/page_optm/settings_js.tpl.php:85
msgid "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."
msgstr "Esta opción puede resultar en un error de JS o un problema de layout en las páginas del frontend con ciertos temas/plugins."

#: tpl/page_optm/settings_html.tpl.php:147
msgid "This will also add a preconnect to Google Fonts to establish a connection earlier."
msgstr "Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes."

#: tpl/page_optm/settings_html.tpl.php:91
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr "Retraso al mostrar los elementos HTML fuera de la pantalla por su selector."

#: tpl/page_optm/settings_css.tpl.php:312
msgid "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."
msgstr "Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas."

#: tpl/page_optm/settings_css.tpl.php:228
msgid "This option is bypassed due to %s option."
msgstr "Esta opción se omite debido a la opción %s."

#: tpl/page_optm/settings_css.tpl.php:222
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en el código HTML."

#: tpl/page_optm/settings_css.tpl.php:215
msgid "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."
msgstr "Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante."

#: tpl/page_optm/settings_css.tpl.php:179
msgid "This option will automatically bypass %s option."
msgstr "Esta opción omitirá automáticamente la opción %s."

#: tpl/page_optm/settings_css.tpl.php:176
msgid "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."
msgstr "UCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala."

#: tpl/page_optm/settings_css.tpl.php:153
#: tpl/page_optm/settings_css.tpl.php:158
#: tpl/page_optm/settings_css.tpl.php:290
#: tpl/page_optm/settings_css.tpl.php:295
#: tpl/page_optm/settings_vpi.tpl.php:100
#: tpl/page_optm/settings_vpi.tpl.php:105
msgid "Run %s Queue Manually"
msgstr "Ejecutar manualmente la cola %s"

#: tpl/page_optm/settings_css.tpl.php:91
msgid "This option is bypassed because %1$s option is %2$s."
msgstr "Esta opción se omite porque la opción %1$s es %2$s."

#: tpl/page_optm/settings_css.tpl.php:84
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr "La generación automática de CSS único está en segundo plano a través de una cola basada en cron."

#: tpl/page_optm/settings_css.tpl.php:82
msgid "This will drop the unused CSS on each page from the combined file."
msgstr "Esto eliminará el CSS no utilizado en cada página del archivo combinado."

#: tpl/page_optm/entry.tpl.php:18 tpl/page_optm/settings_html.tpl.php:17
msgid "HTML Settings"
msgstr "Ajustes HTML"

#: tpl/inc/in_upgrading.php:15
msgid "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."
msgstr "Actualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración."

#: tpl/general/settings_tuning.tpl.php:62
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr "Las IP listadas serán consideradas visitantes en modo invitado."

#: tpl/general/settings_tuning.tpl.php:40
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr "Los agentes de usuario listados serán considerados visitantes en modo invitado."

#: tpl/general/settings_inc.guest.tpl.php:27
msgid "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."
msgstr "Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas."

#: tpl/general/settings_inc.guest.tpl.php:26
msgid "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr "El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX."

#: tpl/general/settings.tpl.php:104
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr "Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio."

#: tpl/general/settings.tpl.php:103
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server."
msgstr "la IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor."

#: tpl/general/settings.tpl.php:86
msgid "You need to turn %s on and finish all WebP generation to get maximum result."
msgstr "Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:79
msgid "You need to turn %s on to get maximum result."
msgstr "Necesitas activar %s para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:48
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr "Esta opción permite la máxima optimización para los visitantes del modo de invitado."

#: tpl/dash/dashboard.tpl.php:54 tpl/dash/dashboard.tpl.php:81
#: tpl/dash/dashboard.tpl.php:520 tpl/dash/dashboard.tpl.php:597
#: tpl/dash/dashboard.tpl.php:624 tpl/dash/dashboard.tpl.php:668
#: tpl/dash/dashboard.tpl.php:712 tpl/dash/dashboard.tpl.php:756
#: tpl/dash/dashboard.tpl.php:800 tpl/dash/dashboard.tpl.php:847
msgid "More"
msgstr "Más"

#: tpl/dash/dashboard.tpl.php:300
msgid "Remaining Daily Quota"
msgstr "Cuota diaria restante"

#: tpl/crawler/summary.tpl.php:246
msgid "Successfully Crawled"
msgstr "Rastreado correctamente"

#: tpl/crawler/summary.tpl.php:245
msgid "Already Cached"
msgstr "Ya en la caché"

#: tpl/crawler/settings.tpl.php:59
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio."

#: tpl/cdn/cf.tpl.php:48
msgid "Optional when API token used."
msgstr "Opcional cuando se usa el token de la API."

#: tpl/cdn/cf.tpl.php:40
msgid "Recommended to generate the token from Cloudflare API token template \"WordPress\"."
msgstr "Recomendado para generar el token desde la plantilla \"WordPress\" del token de la API de Cloudflare."

#: tpl/cdn/cf.tpl.php:35
msgid "Global API Key / API Token"
msgstr "Clave/Token global de la API"

#: tpl/cache/settings_inc.object.tpl.php:47
msgid "Use external object cache functionality."
msgstr "Usa la funcionalidad de la caché de objetos externos."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:24
msgid "Serve a separate cache copy for mobile visitors."
msgstr "Ofrece una copia de la caché separada para los visitantes móviles."

#: thirdparty/woocommerce.content.tpl.php:25
msgid "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."
msgstr "Por defecto, las páginas \"Mi cuenta\", \"Pago\" y \"Carrito\" son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente."

#: src/purge.cls.php:272
msgid "Cleaned all Unique CSS files."
msgstr "Limpiados todos los archivos CSS únicos."

#: src/lang.cls.php:202
msgid "Add Missing Sizes"
msgstr "Añadir tamaños que faltan"

#: src/lang.cls.php:177
msgid "Optimize for Guests Only"
msgstr "Optimizar solamente para invitados"

#: src/lang.cls.php:173
msgid "Guest Mode JS Excludes"
msgstr "Exclusiones JS del modo de invitado"

#: src/lang.cls.php:153
msgid "CCSS Per URL"
msgstr "CCSS por URL"

#: src/lang.cls.php:150
msgid "HTML Lazy Load Selectors"
msgstr "Selectores HTML de carga diferida"

#: src/lang.cls.php:145
msgid "UCSS URI Excludes"
msgstr "Exclusiones UCSS de la URI"

#: src/lang.cls.php:142
msgid "UCSS Inline"
msgstr "UCCS integrado"

#: src/lang.cls.php:102
msgid "Guest Optimization"
msgstr "Optimización para invitados"

#: src/lang.cls.php:101
msgid "Guest Mode"
msgstr "Modo de invitado"

#: src/lang.cls.php:88
msgid "Guest Mode IPs"
msgstr "IP del modo de invitado"

#: src/lang.cls.php:87
msgid "Guest Mode User Agents"
msgstr "Agentes de usuario del modo de invitado"

#: src/error.cls.php:119
msgid "Online node needs to be redetected."
msgstr "El nodo online tiene que volver a ser detectado."

#: src/error.cls.php:115
msgid "The current server is under heavy load."
msgstr "El servidor actual está bajo una gran carga."

#: src/doc.cls.php:71
msgid "Please see %s for more details."
msgstr "Por favor, consulta %s para más detalles."

#: src/doc.cls.php:55
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr "¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!"

#: src/gui.cls.php:82
msgid "%1$s %2$s files left in queue"
msgstr "%1$s %2$s archivos restantes en la cola"

#: src/crawler.cls.php:144
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr "¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos!"

#: src/cloud.cls.php:1468
msgid "Redetected node"
msgstr "Nodo detectado nuevamente"

#: src/cloud.cls.php:1018
msgid "No available Cloud Node after checked server load."
msgstr "No hay ningún nodo de la nube disponible después de comprobar la carga del servidor."

#: src/lang.cls.php:158
msgid "Localization Files"
msgstr "Archivos de idiomas"

#: cli/purge.cls.php:234
msgid "Purged!"
msgstr "¡Purgado!"

#: tpl/page_optm/settings_localization.tpl.php:130
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Los recursos listados aquí se copiarán y reemplazarán con URL locales."

#: tpl/toolbox/beta_test.tpl.php:50
msgid "Use latest GitHub Master commit"
msgstr "Usar el último commit maestro de GitHub"

#: tpl/toolbox/beta_test.tpl.php:46
msgid "Use latest GitHub Dev commit"
msgstr "Usar el último commit de desarrollo de GitHub"

#: src/crawler-map.cls.php:371
msgid "No valid sitemap parsed for crawler."
msgstr "No se ha analizado ningún mapa del sitio válido para el rastreador."

#: src/lang.cls.php:140
msgid "CSS Combine External and Inline"
msgstr "Combinación de CSS externo e integrado"

#: tpl/page_optm/settings_css.tpl.php:193
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS."

#: tpl/page_optm/settings_css.tpl.php:45
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: tpl/cache/settings-excludes.tpl.php:32
#: tpl/page_optm/settings_tuning_css.tpl.php:78
#: tpl/page_optm/settings_tuning_css.tpl.php:153
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La lista predefinida también se combinará con los ajustes anteriores"

#: tpl/page_optm/entry.tpl.php:22
msgid "Localization"
msgstr "Localización"

#: tpl/page_optm/settings_js.tpl.php:66
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS."

#: tpl/page_optm/settings_js.tpl.php:47
msgid "Combine all local JS files into a single file."
msgstr "Combina todos los archivos JS locales en un único archivo."

#: tpl/page_optm/settings_tuning.tpl.php:85
msgid "Listed JS files or inline JS code will not be deferred or delayed."
msgstr "Los archivos JS listados o el código JS integrado no serán aplazados ni diferidos."

#: src/data.upgrade.func.php:238
msgid "Click here to settings"
msgstr "Haz clic aquí para los ajustes"

#: src/data.upgrade.func.php:236
msgid "JS Defer"
msgstr "Diferir JS"

#: src/data.upgrade.func.php:231
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el layout de tu sitio es correcto y que no tienes errores de JS."

#: src/lang.cls.php:148
msgid "JS Combine External and Inline"
msgstr "Combinación de JS externo e integrado"

#: src/admin-display.cls.php:519 tpl/banner/new_version.php:114
#: tpl/banner/score.php:142 tpl/banner/slack.php:49
msgid "Dismiss"
msgstr "Descartar"

#: tpl/cache/settings-esi.tpl.php:103
msgid "The latest data file is"
msgstr "El último archivo de datos es"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La lista se fusionará con los nonces predefinidos en tu archivo de datos local."

#: tpl/page_optm/settings_css.tpl.php:59
msgid "Combine CSS files and inline CSS code."
msgstr "Combina archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_js.tpl.php:33
msgid "Minify JS files and inline JS codes."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: src/admin-display.cls.php:1030
msgid "This setting is overwritten by the Network setting"
msgstr "Esta configuración se sobrescribe con la configuración de red"

#: src/lang.cls.php:191
msgid "LQIP Excludes"
msgstr "Excluye LQIP"

#: tpl/page_optm/settings_media_exc.tpl.php:132
msgid "These images will not generate LQIP."
msgstr "Estas imágenes no generarán LQIP."

#: tpl/toolbox/import_export.tpl.php:70
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "¿Estás seguro de que deseas restablecer todas las configuraciones a la configuración predeterminada?"

#: tpl/page_optm/settings_html.tpl.php:188
msgid "This option will remove all %s tags from HTML."
msgstr "Esta opción eliminará todas las etiquetas %s de HTML."

#: tpl/general/online.tpl.php:31
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "¿Estás seguro de que deseas borrar todos los nodos de la nube?"

#: src/lang.cls.php:175 tpl/presets/standard.tpl.php:52
msgid "Remove Noscript Tags"
msgstr "Eliminar las etiquetas Noscript"

#: src/error.cls.php:107
msgid "The site is not registered on QUIC.cloud."
msgstr "El sitio no está registrado en QUIC.cloud."

#: src/error.cls.php:46 tpl/crawler/settings.tpl.php:123
#: tpl/crawler/settings.tpl.php:144 tpl/crawler/summary.tpl.php:218
msgid "Click here to set."
msgstr "Haz clic aquí para configurarlo."

#: src/lang.cls.php:157
msgid "Localize Resources"
msgstr "Recursos localizados"

#: tpl/cache/settings_inc.browser.tpl.php:26
msgid "Setting Up Custom Headers"
msgstr "Configurar cabeceras personalizadas"

#: tpl/toolbox/purge.tpl.php:92
msgid "This will delete all localized resources"
msgstr "Esto borrará todos los recursos localizados"

#: src/gui.cls.php:628 src/gui.cls.php:810 tpl/toolbox/purge.tpl.php:91
msgid "Localized Resources"
msgstr "Recursos localizados"

#: tpl/page_optm/settings_localization.tpl.php:135
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. "

#: tpl/page_optm/settings_localization.tpl.php:131
msgid "HTTPS sources only."
msgstr "Solo orígenes HTTPS"

#: tpl/page_optm/settings_localization.tpl.php:104
msgid "Localize external resources."
msgstr "Localizar recursos externos."

#: tpl/page_optm/settings_localization.tpl.php:27
msgid "Localization Settings"
msgstr "Ajustes de localización"

#: tpl/page_optm/settings_css.tpl.php:81
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Usa el servicio en línea QUIC.cloud para generar un CSS único."

#: src/lang.cls.php:141
msgid "Generate UCSS"
msgstr "Generar UCSS"

#: tpl/dash/dashboard.tpl.php:667 tpl/toolbox/purge.tpl.php:82
msgid "Unique CSS"
msgstr "CSS único"

#: tpl/toolbox/purge.tpl.php:118
msgid "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"
msgstr "Vacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS, únicas de CSS y de LQIP"

#: tpl/toolbox/report.tpl.php:58
msgid "LiteSpeed Report"
msgstr "Reporte de LiteSpeed"

#: tpl/img_optm/summary.tpl.php:224
msgid "Image Thumbnail Group Sizes"
msgstr "Tamaños de grupo de imágenes en miniatura"

#. translators: %s: LiteSpeed Web Server version
#: tpl/cache/settings_inc.cache_dropquery.tpl.php:27
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorar ciertas cadenas de consulta al almacenar en caché. (Se requiere LSWS %s)"

#: tpl/cache/settings-purge.tpl.php:116
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "En el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado."

#: tpl/cache/settings-purge.tpl.php:92
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien."

#: src/lang.cls.php:128
msgid "Serve Stale"
msgstr "Servir contenido rancio"

#: src/admin-display.cls.php:1028
msgid "This setting is overwritten by the primary site setting"
msgstr "Esta ajuste es sobrescrito por los ajuste del sitio primario"

#: src/img-optm.cls.php:1151
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificado"

#: src/img-optm.cls.php:1072
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Una o más imágenes optimizadas han caducado y han sido borradas."

#: src/error.cls.php:76
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos."

#: src/img-optm.cls.php:1087
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP."

#: tpl/inc/admin_footer.php:19
msgid "Read LiteSpeed Documentation"
msgstr "Leer la documentación de LiteSpeed"

#: src/error.cls.php:97
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "La cola aún no ha sido recuperada. Información de la cola: %s."

#: tpl/page_optm/settings_localization.tpl.php:89
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos Gravatar."

#: src/img-optm.cls.php:604
msgid "Cleared %1$s invalid images."
msgstr "Vaciar %1$s imágenes no validas."

#: tpl/general/entry.tpl.php:31
msgid "LiteSpeed Cache General Settings"
msgstr "Ajustes generales de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:110
msgid "This will delete all cached Gravatar files"
msgstr "Esto borrará todos los archivos Gravatar almacenados en caché"

#: tpl/toolbox/settings-debug.tpl.php:150
msgid "Prevent any debug log of listed pages."
msgstr "Evita cualquier registro de depuración de las páginas enumeradas."

#: tpl/toolbox/settings-debug.tpl.php:136
msgid "Only log listed pages."
msgstr "Solo registra las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:108
msgid "Specify the maximum size of the log file."
msgstr "Especifica el tamaño máximo del archivo de registro."

#: tpl/toolbox/settings-debug.tpl.php:59
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Para evitar llenar el disco, esta configuración debe estar APAGADA cuando todo funciona."

#: tpl/toolbox/beta_test.tpl.php:70
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress."

#: tpl/toolbox/beta_test.tpl.php:54 tpl/toolbox/beta_test.tpl.php:70
msgid "Use latest WordPress release version"
msgstr "Usar la última versión de WordPress"

#: tpl/toolbox/beta_test.tpl.php:54
msgid "OR"
msgstr "O"

#: tpl/toolbox/beta_test.tpl.php:37
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utiliza esta sección para cambiar la versión del plugin. Para probar un commit de GitHub, introduce la URL del commit en el campo de abajo."

#: tpl/toolbox/import_export.tpl.php:71
msgid "Reset Settings"
msgstr "Restablecer ajustes"

#: tpl/toolbox/entry.tpl.php:41
msgid "LiteSpeed Cache Toolbox"
msgstr "Herramientas de LiteSpeed Cache"

#: tpl/toolbox/entry.tpl.php:35
msgid "Beta Test"
msgstr "Pruebas beta"

#: tpl/toolbox/entry.tpl.php:34
msgid "Log View"
msgstr "Vista de registros"

#: tpl/toolbox/entry.tpl.php:33 tpl/toolbox/settings-debug.tpl.php:31
msgid "Debug Settings"
msgstr "Ajustes de depuración"

#: tpl/toolbox/heartbeat.tpl.php:103
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Actívalo para controlar heartbeat en el editor."

#: tpl/toolbox/heartbeat.tpl.php:73
msgid "Turn ON to control heartbeat on backend."
msgstr "Actívalo para controlar heartbeat en el escritorio."

#: tpl/toolbox/heartbeat.tpl.php:58 tpl/toolbox/heartbeat.tpl.php:88
#: tpl/toolbox/heartbeat.tpl.php:118
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Establécelo en %1$s para bloquear heartbeat en %2$s."

#: tpl/toolbox/heartbeat.tpl.php:57 tpl/toolbox/heartbeat.tpl.php:87
#: tpl/toolbox/heartbeat.tpl.php:117
msgid "WordPress valid interval is %s seconds."
msgstr "El intervalo válido de WordPress es %s segundos."

#: tpl/toolbox/heartbeat.tpl.php:56 tpl/toolbox/heartbeat.tpl.php:86
#: tpl/toolbox/heartbeat.tpl.php:116
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Especifica el intervalo de heartbeat para %s en segundos."

#: tpl/toolbox/heartbeat.tpl.php:43
msgid "Turn ON to control heartbeat on frontend."
msgstr "Enciéndelo para controlar heartbeat en el frontend."

#: tpl/toolbox/heartbeat.tpl.php:26
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Desactiva el intervalo del heartbeat de WordPress para reducir la carga del servidor."

#: tpl/toolbox/heartbeat.tpl.php:19
msgid "Heartbeat Control"
msgstr "Control de Heartbeat"

#: tpl/toolbox/report.tpl.php:127
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "proporcione más información aquí para ayudar al equipo de LiteSpeed con la depuración."

#: tpl/toolbox/report.tpl.php:126
msgid "Optional"
msgstr "Opcional"

#: tpl/toolbox/report.tpl.php:100 tpl/toolbox/report.tpl.php:102
msgid "Generate Link for Current User"
msgstr "Generar enlace para el usuario actual"

#: tpl/toolbox/report.tpl.php:96
msgid "Passwordless Link"
msgstr "Enlace sin contraseña"

#: tpl/toolbox/report.tpl.php:75
msgid "System Information"
msgstr "Información del sistema"

#: tpl/toolbox/report.tpl.php:52
msgid "Go to plugins list"
msgstr "Ir a la lista de plugins"

#: tpl/toolbox/report.tpl.php:51
msgid "Install DoLogin Security"
msgstr "Instalar DoLogin Security"

#: tpl/general/settings.tpl.php:102
msgid "Check my public IP from"
msgstr "Comprueba mi IP pública desde"

#: tpl/general/settings.tpl.php:102
msgid "Your server IP"
msgstr "La IP de tu servidor"

#: tpl/general/settings.tpl.php:101
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Ingrese la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a IP en lugar del nombre de dominio. Esto elimina la sobrecarga de las búsquedas de DNS y CDN."

#: tpl/crawler/settings.tpl.php:31
msgid "This will enable crawler cron."
msgstr "Esto habilitará el cron del rastreador."

#: tpl/crawler/settings.tpl.php:17
msgid "Crawler General Settings"
msgstr "Ajustes generales del rastreador"

#: tpl/crawler/blacklist.tpl.php:53
msgid "Remove from Blocklist"
msgstr "Eliminar de la lista negra"

#: tpl/crawler/blacklist.tpl.php:22
msgid "Empty blocklist"
msgstr "Vaciar la lista negra"

#: tpl/crawler/blacklist.tpl.php:21
msgid "Are you sure to delete all existing blocklist items?"
msgstr "¿Seguro que quieres borrar todos los elementos de la lista negra?"

#: tpl/crawler/blacklist.tpl.php:86 tpl/crawler/map.tpl.php:103
msgid "Blocklisted due to not cacheable"
msgstr "En la lista negra debido a que no se puede cachear"

#: tpl/crawler/map.tpl.php:89
msgid "Add to Blocklist"
msgstr "Añadir a la lista negra"

#: tpl/crawler/blacklist.tpl.php:42 tpl/crawler/map.tpl.php:78
msgid "Operation"
msgstr "Operación"

#: tpl/crawler/map.tpl.php:52
msgid "Sitemap Total"
msgstr "Sitemap Total"

#: tpl/crawler/map.tpl.php:48
msgid "Sitemap List"
msgstr "Lista de Sitemap"

#: tpl/crawler/map.tpl.php:32
msgid "Refresh Crawler Map"
msgstr "Actualizar mapa de rastreadores"

#: tpl/crawler/map.tpl.php:29
msgid "Clean Crawler Map"
msgstr "Vaciar el mapa del rastreador"

#: tpl/crawler/blacklist.tpl.php:27 tpl/crawler/entry.tpl.php:16
msgid "Blocklist"
msgstr "Lista negra"

#: tpl/crawler/entry.tpl.php:15
msgid "Map"
msgstr "Mapa"

#: tpl/crawler/entry.tpl.php:14
msgid "Summary"
msgstr "Sumario"

#: tpl/crawler/map.tpl.php:63 tpl/crawler/map.tpl.php:102
msgid "Cache Miss"
msgstr "Fallo de caché"

#: tpl/crawler/map.tpl.php:62 tpl/crawler/map.tpl.php:101
msgid "Cache Hit"
msgstr "Acierto de caché"

#: tpl/crawler/summary.tpl.php:244
msgid "Waiting to be Crawled"
msgstr "Esperando a ser rastreado"

#: tpl/crawler/blacklist.tpl.php:87 tpl/crawler/map.tpl.php:64
#: tpl/crawler/map.tpl.php:104 tpl/crawler/summary.tpl.php:199
#: tpl/crawler/summary.tpl.php:247
msgid "Blocklisted"
msgstr "En lista negra"

#: tpl/crawler/summary.tpl.php:194
msgid "Miss"
msgstr "Perder"

#: tpl/crawler/summary.tpl.php:189
msgid "Hit"
msgstr "Acierto"

#: tpl/crawler/summary.tpl.php:184
msgid "Waiting"
msgstr "En espera"

#: tpl/crawler/summary.tpl.php:155
msgid "Running"
msgstr "En curso"

#: tpl/crawler/settings.tpl.php:177
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida."

#: src/admin-display.cls.php:211
msgid "Add new cookie to simulate"
msgstr "Añadir una cookie nueva para simular"

#: src/admin-display.cls.php:210
msgid "Remove cookie simulation"
msgstr "Eliminar la simulación de la cookie"

#. translators: %s: Current mobile agents in htaccess
#: tpl/cache/settings_inc.cache_mobile.tpl.php:51
msgid "Htaccess rule is: %s"
msgstr "La regla de Htaccess es: %s"

#. translators: %s: LiteSpeed Cache menu label
#: tpl/cache/more_settings_tip.tpl.php:27
msgid "More settings available under %s menu"
msgstr "Más ajustes disponibles en el menú %s"

#: tpl/cache/settings_inc.browser.tpl.php:63
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "El tiempo, en segundos, durante el cual los archivos serán almacenados en la caché del navegador antes de expirar."

#: tpl/cache/settings_inc.browser.tpl.php:25
msgid "OpenLiteSpeed users please check this"
msgstr "Marca esto si eres un usuario de OpenLiteSpeed"

#: tpl/cache/settings_inc.browser.tpl.php:17
msgid "Browser Cache Settings"
msgstr "Ajustes de la caché del navegador"

#: tpl/cache/settings-cache.tpl.php:158
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable."

#: tpl/cache/settings-cache.tpl.php:49
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Con el CDN de QUIC.cloud habilitado, puede que todavía estés viendo las cabeceras de la caché de tu servidor local."

#: tpl/cache/settings-esi.tpl.php:114
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar"

#: tpl/cache/settings-esi.tpl.php:112
msgid "The above nonces will be converted to ESI automatically."
msgstr "Los noces anteriores se convertirán en ESI automáticamente."

#: tpl/cache/entry.tpl.php:25 tpl/cache/entry_network.tpl.php:20
msgid "Browser"
msgstr "Navegador"

#: tpl/cache/entry.tpl.php:24 tpl/cache/entry_network.tpl.php:19
msgid "Object"
msgstr "Objeto"

#. translators: %1$s: Object cache name, %2$s: Port number
#: tpl/cache/settings_inc.object.tpl.php:128
#: tpl/cache/settings_inc.object.tpl.php:137
msgid "Default port for %1$s is %2$s."
msgstr "Puerto por defecto de %1$s es %2$s."

#: tpl/cache/settings_inc.object.tpl.php:33
msgid "Object Cache Settings"
msgstr "Ajustes de la caché de objetos"

#: tpl/cache/settings-ttl.tpl.php:111
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio."

#: tpl/cache/settings-ttl.tpl.php:59
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Especifica cuánto tiempo, en segundos, se almacena la página de inicio."

#: tpl/cache/entry.tpl.php:17 tpl/cache/settings-ttl.tpl.php:15
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:86
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan."

#: tpl/page_optm/settings_css.tpl.php:339
msgid "Swap"
msgstr "Intercambiar"

#: tpl/page_optm/settings_css.tpl.php:338
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Establece esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan."

#: tpl/page_optm/settings_localization.tpl.php:67
msgid "Avatar list in queue waiting for update"
msgstr "La lista de avatares está en la cola esperando ser actualizada"

#: tpl/page_optm/settings_localization.tpl.php:54
msgid "Refresh Gravatar cache by cron."
msgstr "Refrescar la caché de Gravatar por cron."

#: tpl/page_optm/settings_localization.tpl.php:41
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Acelera la velocidad al cachear Gravatar (Avatares reconocidos mundialmente)."

#: tpl/page_optm/settings_localization.tpl.php:40
msgid "Store Gravatar locally."
msgstr "Almacena Gravatar localmente."

#: tpl/page_optm/settings_localization.tpl.php:22
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:154
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "Las solicitudes LQIP no se enviarán para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones."

#: tpl/page_optm/settings_media.tpl.php:152
msgid "pixels"
msgstr "píxeles"

#: tpl/page_optm/settings_media.tpl.php:136
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos."

#: tpl/page_optm/settings_media.tpl.php:135
msgid "Specify the quality when generating LQIP."
msgstr "Especifica la calidad al generar el LQIP."

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Keep this off to use plain color placeholders."
msgstr "Mantén esto apagado para usar marcadores de posición de color."

#: tpl/page_optm/settings_media.tpl.php:120
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Usa el servicio generador de QUIC.cloud LQIP (Low Quality Image Placeholder) para obtener vistas previas de la imagen mientras se carga."

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Specify the responsive placeholder SVG color."
msgstr "Especifica el color del marcador de posición SVG adaptable."

#: tpl/page_optm/settings_media.tpl.php:91
msgid "Variables %s will be replaced with the configured background color."
msgstr "Las variables %s serán reemplazadas con el color de fondo configurado."

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Las variables %s serán reemplazadas con las propiedades de imagen correspondientes."

#: tpl/page_optm/settings_media.tpl.php:89
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Se convertirá en un marcador de posición SVG base64 sobre la marcha."

#: tpl/page_optm/settings_media.tpl.php:88
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Especifica un SVG que se utilizará como marcador de posición al generar localmente."

#: tpl/page_optm/settings_media_exc.tpl.php:118
msgid "Prevent any lazy load of listed pages."
msgstr "Evita cualquier carga diferida de las páginas de la lista."

#: tpl/page_optm/settings_media_exc.tpl.php:104
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Los iframes con estos nombres de clase padres no se cargarán de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:89
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Los marcos que contengan estos nombres de clase no serán cargados de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:75
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida."

#: tpl/page_optm/entry.tpl.php:31
msgid "LiteSpeed Cache Page Optimization"
msgstr "Página de optimización de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:21 tpl/page_optm/settings_media_exc.tpl.php:17
msgid "Media Excludes"
msgstr "Exclusiones de medios"

#: tpl/page_optm/entry.tpl.php:16 tpl/page_optm/settings_css.tpl.php:30
msgid "CSS Settings"
msgstr "Ajustes de CSS"

#: tpl/page_optm/settings_css.tpl.php:339
msgid "%s is recommended."
msgstr "%s es recomendado."

#: tpl/page_optm/settings_js.tpl.php:77
msgid "Deferred"
msgstr "Diferido"

#: tpl/page_optm/settings_css.tpl.php:336
msgid "Default"
msgstr "Predeterminado"

#: tpl/page_optm/settings_html.tpl.php:61
msgid "This can improve the page loading speed."
msgstr "Esto puede mejorar la velocidad de carga de la página."

#: tpl/page_optm/settings_html.tpl.php:60
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc."

#: tpl/banner/new_version_dev.tpl.php:30
msgid "New developer version %s is available now."
msgstr "La nueva versión de desarrollo %s está disponible."

#: tpl/banner/new_version_dev.tpl.php:22
msgid "New Developer Version Available!"
msgstr "¡Nueva versión para desarrolladores disponible!"

#: tpl/banner/cloud_news.tpl.php:51 tpl/banner/cloud_promo.tpl.php:73
msgid "Dismiss this notice"
msgstr "Descartar este aviso"

#: tpl/banner/cloud_promo.tpl.php:61
msgid "Tweet this"
msgstr "Tuitea esto"

#: tpl/banner/cloud_promo.tpl.php:45
msgid "Tweet preview"
msgstr "Vista previa del Tuit"

#: tpl/banner/cloud_promo.tpl.php:40
#: tpl/page_optm/settings_tuning_css.tpl.php:69
#: tpl/page_optm/settings_tuning_css.tpl.php:144
msgid "Learn more"
msgstr "Saber más"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "¡Acabas de desbloquear una promoción de QUIC.cloud!"

#: tpl/page_optm/settings_media.tpl.php:271
msgid "The image compression quality setting of WordPress out of 100."
msgstr "El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100."

#: tpl/img_optm/entry.tpl.php:17 tpl/img_optm/entry.tpl.php:22
#: tpl/img_optm/network_settings.tpl.php:19 tpl/img_optm/settings.tpl.php:19
msgid "Image Optimization Settings"
msgstr "Ajustes de optimización de imágenes"

#: tpl/img_optm/summary.tpl.php:377
msgid "Are you sure to destroy all optimized images?"
msgstr "¿Estás seguro de destruir todas las imágenes optimizadas?"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use Optimized Files"
msgstr "Usar archivos optimizados"

#: tpl/img_optm/summary.tpl.php:359
msgid "Switch back to using optimized images on your site"
msgstr "Volver a utilizar imágenes optimizadas en tu web"

#: tpl/img_optm/summary.tpl.php:356
msgid "Use Original Files"
msgstr "Usar archivos originales"

#: tpl/img_optm/summary.tpl.php:355
msgid "Use original images (unoptimized) on your site"
msgstr "Usar imágenes originales (no optimizadas) en tu web"

#: tpl/img_optm/summary.tpl.php:350
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles."

#: tpl/img_optm/summary.tpl.php:347
msgid "Optimization Tools"
msgstr "Heramientas de optimización"

#: tpl/img_optm/summary.tpl.php:305
msgid "Rescan New Thumbnails"
msgstr "Re-escanear nuevas miniaturas"

#: tpl/img_optm/summary.tpl.php:289
msgid "Congratulations, all gathered!"
msgstr "¡Felicidades, todos reunidos!"

#: tpl/img_optm/summary.tpl.php:293
msgid "What is an image group?"
msgstr "¿Qué es un grupo de imágenes?"

#: tpl/img_optm/summary.tpl.php:241
msgid "Delete all backups of the original images"
msgstr "Borrar todas las copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:217
msgid "Calculate Backups Disk Space"
msgstr "Calcular espacio en el disco para copias de seguridad"

#: tpl/img_optm/summary.tpl.php:108
msgid "Optimization Status"
msgstr "Estado de optimización"

#: tpl/img_optm/summary.tpl.php:69
msgid "Current limit is"
msgstr "El límite actual es:"

#: tpl/img_optm/summary.tpl.php:68
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited."
msgstr "Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de grupos de imágenes permitidas en una sola petición es limitada."

#: tpl/img_optm/summary.tpl.php:63
msgid "You can request a maximum of %s images at once."
msgstr "Solo puedes solicitar un máximo de %s imágenes a la vez."

#: tpl/img_optm/summary.tpl.php:58
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiza las imágenes con nuestro servidor QUIC.cloud."

#: tpl/db_optm/settings.tpl.php:46
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Las revisiones más recientes se guardarán cuando se limpien las revisiones."

#: tpl/db_optm/settings.tpl.php:44
msgid "Day(s)"
msgstr "Día(s)"

#: tpl/db_optm/settings.tpl.php:32
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones."

#: tpl/db_optm/entry.tpl.php:24
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimización de la base de datos de LiteSpeed Cache"

#: tpl/db_optm/entry.tpl.php:17 tpl/db_optm/settings.tpl.php:19
msgid "DB Optimization Settings"
msgstr "Ajustes de optimización de BD"

#: tpl/db_optm/manage.tpl.php:185
msgid "Option Name"
msgstr "Nombre de la opción"

#: tpl/db_optm/manage.tpl.php:171
msgid "Database Summary"
msgstr "Resumen de la base de datos"

#: tpl/db_optm/manage.tpl.php:149
msgid "We are good. No table uses MyISAM engine."
msgstr "Estamos bien. Ninguna tabla usa el motor MyISAM."

#: tpl/db_optm/manage.tpl.php:141
msgid "Convert to InnoDB"
msgstr "Convertir a InnoDB"

#: tpl/db_optm/manage.tpl.php:126
msgid "Tool"
msgstr "Herramienta"

#: tpl/db_optm/manage.tpl.php:125
msgid "Engine"
msgstr "Motor"

#: tpl/db_optm/manage.tpl.php:124
msgid "Table"
msgstr "Tabla"

#: tpl/db_optm/manage.tpl.php:116
msgid "Database Table Engine Converter"
msgstr "Conversor de motor de tabla de base de datos"

#: tpl/db_optm/manage.tpl.php:66
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones"

#: tpl/dash/dashboard.tpl.php:87 tpl/dash/dashboard.tpl.php:806
msgid "Currently active crawler"
msgstr "Rastreador activo"

#: tpl/dash/dashboard.tpl.php:84 tpl/dash/dashboard.tpl.php:803
msgid "Crawler(s)"
msgstr "Rastreador(es)"

#: tpl/crawler/map.tpl.php:77 tpl/dash/dashboard.tpl.php:80
#: tpl/dash/dashboard.tpl.php:799
msgid "Crawler Status"
msgstr "Estado del rastreador"

#: tpl/dash/dashboard.tpl.php:648 tpl/dash/dashboard.tpl.php:692
#: tpl/dash/dashboard.tpl.php:736 tpl/dash/dashboard.tpl.php:780
msgid "Force cron"
msgstr "Forzar cron"

#: tpl/dash/dashboard.tpl.php:645 tpl/dash/dashboard.tpl.php:689
#: tpl/dash/dashboard.tpl.php:733 tpl/dash/dashboard.tpl.php:777
msgid "Requests in queue"
msgstr "Peticiones en cola"

#: tpl/dash/dashboard.tpl.php:59 tpl/dash/dashboard.tpl.php:602
msgid "Private Cache"
msgstr "Caché privada"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:601
msgid "Public Cache"
msgstr "Caché publica "

#: tpl/dash/dashboard.tpl.php:53 tpl/dash/dashboard.tpl.php:596
msgid "Cache Status"
msgstr "Estado de la caché"

#: tpl/dash/dashboard.tpl.php:571
msgid "Last Pull"
msgstr "Última lectura"

#: tpl/dash/dashboard.tpl.php:519 tpl/img_optm/entry.tpl.php:16
msgid "Image Optimization Summary"
msgstr "Resumen de la optimización de imágenes"

#: tpl/dash/dashboard.tpl.php:511
msgid "Refresh page score"
msgstr "Actualizar la puntuación de la página"

#: tpl/dash/dashboard.tpl.php:382 tpl/img_optm/summary.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:246
#: tpl/page_optm/settings_media.tpl.php:192
#: tpl/page_optm/settings_vpi.tpl.php:59
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "¿Estás seguro de que deseas volver a detectar el servidor en la nube más cercano para este servicio?"

#: tpl/dash/dashboard.tpl.php:446
msgid "Refresh page load time"
msgstr "Actualizar el tiempo de carga de la página"

#: tpl/dash/dashboard.tpl.php:353 tpl/general/online.tpl.php:128
msgid "Go to QUIC.cloud dashboard"
msgstr "Ir al escritorio de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:206 tpl/dash/dashboard.tpl.php:711
#: tpl/dash/network_dash.tpl.php:39
msgid "Low Quality Image Placeholder"
msgstr "Marcador de imagen de baja calidad"

#: tpl/dash/dashboard.tpl.php:182
msgid "Sync data from Cloud"
msgstr "Sincronizar los datos de la nube"

#: tpl/dash/dashboard.tpl.php:179
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Estadísticas de uso del servicio QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:292 tpl/dash/network_dash.tpl.php:119
msgid "Total images optimized in this month"
msgstr "Total de imágenes optimizadas en este mes"

#: tpl/dash/dashboard.tpl.php:291 tpl/dash/network_dash.tpl.php:118
msgid "Total Usage"
msgstr "Uso total"

#: tpl/dash/dashboard.tpl.php:273 tpl/dash/network_dash.tpl.php:111
msgid "Pay as You Go Usage Statistics"
msgstr "Estadísticas pago por uso"

#: tpl/dash/dashboard.tpl.php:270 tpl/dash/network_dash.tpl.php:108
msgid "PAYG Balance"
msgstr "Balance de pago"

#: tpl/dash/network_dash.tpl.php:107
msgid "Pay as You Go"
msgstr "Pago por uso"

#: tpl/dash/dashboard.tpl.php:258 tpl/dash/network_dash.tpl.php:95
msgid "Usage"
msgstr "Uso"

#: tpl/dash/dashboard.tpl.php:258 tpl/dash/network_dash.tpl.php:95
msgid "Fast Queue Usage"
msgstr "Uso de la cola rápida"

#: tpl/dash/dashboard.tpl.php:205 tpl/dash/network_dash.tpl.php:38
msgid "CDN Bandwidth"
msgstr "Ancho de banda CDN"

#: tpl/dash/entry.tpl.php:29
msgid "LiteSpeed Cache Dashboard"
msgstr "Escritorio de LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:21
msgid "Network Dashboard"
msgstr "Escritorio de la red"

#: tpl/general/online.tpl.php:51
msgid "No cloud services currently in use"
msgstr "No hay servicios cloud en uso"

#: tpl/general/online.tpl.php:31
msgid "Click to clear all nodes for further redetection."
msgstr "Haga clic para borrar todos los nodos para una mayor redetección."

#: tpl/general/online.tpl.php:30
msgid "Current Cloud Nodes in Service"
msgstr "Nodos cloud actual en servicio"

#: tpl/cdn/qc.tpl.php:126 tpl/cdn/qc.tpl.php:133 tpl/dash/dashboard.tpl.php:359
#: tpl/general/online.tpl.php:153
msgid "Link to QUIC.cloud"
msgstr "Enlace a QUIC.cloud"

#: tpl/general/entry.tpl.php:17 tpl/general/entry.tpl.php:23
#: tpl/general/network_settings.tpl.php:19 tpl/general/settings.tpl.php:24
msgid "General Settings"
msgstr "Ajustes generales"

#: tpl/cdn/other.tpl.php:136
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN."

#: src/admin-display.cls.php:233
msgid "Add new CDN URL"
msgstr "Añade una nueva url de la CDN"

#: src/admin-display.cls.php:232
msgid "Remove CDN URL"
msgstr "Elimina la url de la CDN"

#: tpl/cdn/cf.tpl.php:102
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Para habilitar la siguiente funcionalidad, activa la API de Cloudflare en la configuración del CDN."

#: tpl/cdn/entry.tpl.php:14
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:17
msgid "WooCommerce Settings"
msgstr "Ajustes de WooCommerce"

#: src/doc.cls.php:155
msgid "Current Online Server IPs"
msgstr "IPs del servidor en línea"

#: src/doc.cls.php:154
msgid "Before generating key, please verify all IPs on this list are allowlisted"
msgstr "Antes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blanca"

#: src/doc.cls.php:153
msgid "For online services to work correctly, you must allowlist all %s server IPs."
msgstr "Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor."

#: src/gui.cls.php:638 src/gui.cls.php:820
#: tpl/page_optm/settings_media.tpl.php:139 tpl/toolbox/purge.tpl.php:100
msgid "LQIP Cache"
msgstr "Caché de LQIP"

#: src/admin-settings.cls.php:274 src/admin-settings.cls.php:308
msgid "Options saved."
msgstr "Opciones guardadas."

#: src/img-optm.cls.php:1729
msgid "Removed backups successfully."
msgstr "Se han eliminado las copias de seguridad correctamente."

#: src/img-optm.cls.php:1637
msgid "Calculated backups successfully."
msgstr "Copias de seguridad calculadas correctamente."

#: src/img-optm.cls.php:1571
msgid "Rescanned %d images successfully."
msgstr "%d imágenes reexploradas correctamente."

#: src/img-optm.cls.php:1509 src/img-optm.cls.php:1571
msgid "Rescanned successfully."
msgstr "Reexploración correcta."

#: src/img-optm.cls.php:1444
msgid "Destroy all optimization data successfully."
msgstr "Todos los datos de optimización destruidos correctamente."

#: src/img-optm.cls.php:1343
msgid "Cleaned up unfinished data successfully."
msgstr "Datos incompletos limpiados correctamente."

#: src/img-optm.cls.php:962
msgid "Pull Cron is running"
msgstr "Pull Cron se está ejecutando"

#: src/img-optm.cls.php:686
msgid "No valid image found by Cloud server in the current request."
msgstr "El servidor cloud no ha encontrado ninguna imagen válida por en la petición actual."

#: src/img-optm.cls.php:661
msgid "No valid image found in the current request."
msgstr "No se ha encontrado ninguna imagen válida en la petición actual."

#: src/img-optm.cls.php:343
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s enviado al servidor cloud, %2$s aceptado."

#: src/lang.cls.php:266
msgid "Revisions Max Age"
msgstr "Edad máxima de las revisiones"

#: src/lang.cls.php:265
msgid "Revisions Max Number"
msgstr "Número máximo de revisiones"

#: src/lang.cls.php:262
msgid "Debug URI Excludes"
msgstr "URIs excluidas de la depuración"

#: src/lang.cls.php:261
msgid "Debug URI Includes"
msgstr "URIs incluidas en la depuración"

#: src/lang.cls.php:241
msgid "HTML Attribute To Replace"
msgstr "Atributo HTML a reemplazar"

#: src/lang.cls.php:235
msgid "Use CDN Mapping"
msgstr "Usar mapeo de CDN"

#: src/lang.cls.php:233
msgid "Editor Heartbeat TTL"
msgstr "TTL de heartbeat del editor"

#: src/lang.cls.php:232
msgid "Editor Heartbeat"
msgstr "Heartbeat del editor"

#: src/lang.cls.php:231
msgid "Backend Heartbeat TTL"
msgstr "TTL de heartbeat del backend"

#: src/lang.cls.php:230
msgid "Backend Heartbeat Control"
msgstr "Control de heartbeat del backend"

#: src/lang.cls.php:229
msgid "Frontend Heartbeat TTL"
msgstr "TTL de heartbeat del frontend"

#: src/lang.cls.php:228
msgid "Frontend Heartbeat Control"
msgstr "Control de heartbeat del frontend"

#: tpl/toolbox/edit_htaccess.tpl.php:71
msgid "Backend .htaccess Path"
msgstr "Ruta del .htaccess del backend"

#: tpl/toolbox/edit_htaccess.tpl.php:53
msgid "Frontend .htaccess Path"
msgstr "Ruta del .htaccess del frontend"

#: src/lang.cls.php:218
msgid "ESI Nonces"
msgstr "Nonces de ESI"

#: src/lang.cls.php:214
msgid "WordPress Image Quality Control"
msgstr "Control de la calidad de imagen de WordPress"

#: src/lang.cls.php:206
msgid "Auto Request Cron"
msgstr "Cron de petición automática"

#: src/lang.cls.php:200
msgid "Generate LQIP In Background"
msgstr "Generar LQIP en segundo plano"

#: src/lang.cls.php:198
msgid "LQIP Minimum Dimensions"
msgstr "Dimensiones mínimas de LQIP"

#: src/lang.cls.php:197
msgid "LQIP Quality"
msgstr "Calidad LQIP"

#: src/lang.cls.php:196
msgid "LQIP Cloud Generator"
msgstr "Generador de LQIP en la nube"

#: src/lang.cls.php:195
msgid "Responsive Placeholder SVG"
msgstr "Marcador de posición SVG adaptable"

#: src/lang.cls.php:194
msgid "Responsive Placeholder Color"
msgstr "Color del marcador de posición adaptable"

#: src/lang.cls.php:192
msgid "Basic Image Placeholder"
msgstr "Marcador de posición de imagen básica"

#: src/lang.cls.php:190
msgid "Lazy Load URI Excludes"
msgstr "Exclusión de URIs de carga diferida"

#: src/lang.cls.php:189
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padre de iframes"

#: src/lang.cls.php:188
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases de iframes"

#: src/lang.cls.php:187
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padres"

#: src/lang.cls.php:182
msgid "Gravatar Cache TTL"
msgstr "TTL de la caché de Gravatar"

#: src/lang.cls.php:181
msgid "Gravatar Cache Cron"
msgstr "Cron de la caché de Gravatar"

#: src/gui.cls.php:648 src/gui.cls.php:830 src/lang.cls.php:180
#: tpl/presets/standard.tpl.php:49 tpl/toolbox/purge.tpl.php:109
msgid "Gravatar Cache"
msgstr "Caché de Gravatar"

#: src/lang.cls.php:160
msgid "DNS Prefetch Control"
msgstr "Control del prefetch DNS"

#: src/lang.cls.php:155 tpl/presets/standard.tpl.php:46
msgid "Font Display Optimization"
msgstr "Optimización de visualización de fuentes"

#: src/lang.cls.php:132
msgid "Force Public Cache URIs"
msgstr "Forzar URIs de caché pública"

#: src/lang.cls.php:103
msgid "Notifications"
msgstr "Notificaciones"

#: src/lang.cls.php:97
msgid "Default HTTP Status Code Page TTL"
msgstr "TTL del código de estado de página predeterminado"

#: src/lang.cls.php:96
msgid "Default REST TTL"
msgstr "TTLpredeterminado de REST"

#: src/lang.cls.php:90
msgid "Enable Cache"
msgstr "Activa cache"

#: src/cloud.cls.php:233 src/cloud.cls.php:285 src/lang.cls.php:86
msgid "Server IP"
msgstr "IP del servidor"

#: src/lang.cls.php:25
msgid "Images not requested"
msgstr "Imágenes no solicitadas"

#: src/cloud.cls.php:1994
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Asignación de créditos correctamente sincronizada con el servidor cloud."

#: src/cloud.cls.php:1614
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Fallo de comunicación con el servidor QUIC.cloud"

#: src/cloud.cls.php:1537
msgid "Good news from QUIC.cloud server"
msgstr "Buenas noticias del servidor QUIC.cloud"

#: src/cloud.cls.php:1521 src/cloud.cls.php:1529
msgid "Message from QUIC.cloud server"
msgstr "Mensaje del servidor QUIC.cloud"

#: src/cloud.cls.php:1228
msgid "Please try after %1$s for service %2$s."
msgstr "Por favor, inténtalo después de %1$s para el servicio %2$s."

#: src/cloud.cls.php:1084
msgid "No available Cloud Node."
msgstr "No hay ningún nodo de cloud disponible."

#: src/cloud.cls.php:967 src/cloud.cls.php:980 src/cloud.cls.php:1018
#: src/cloud.cls.php:1084 src/cloud.cls.php:1225
msgid "Cloud Error"
msgstr "Error de cloud"

#: src/data.cls.php:220
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado."

#: src/media.cls.php:403
msgid "Restore from backup"
msgstr "Restaurar desde una copia de seguridad"

#: src/media.cls.php:388
msgid "No backup of unoptimized WebP file exists."
msgstr "No existe una copia de seguridad del archivo WebP no optimizado."

#: src/media.cls.php:374
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Archivo WebP reducido en %1$s (%2$s)"

#: src/media.cls.php:366
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo WebP."

#: src/media.cls.php:359
msgid "Currently using optimized version of WebP file."
msgstr "Actualmente usando la versión optimizada del archivo WebP."

#: src/media.cls.php:337
msgid "Orig"
msgstr "Orig"

#: src/media.cls.php:335
msgid "(no savings)"
msgstr "(sin ahorro)"

#: src/media.cls.php:335
msgid "Orig %s"
msgstr "Orig %s"

#: src/media.cls.php:334
msgid "Congratulation! Your file was already optimized"
msgstr "¡Felicidades! Tu archivo ya ha sido optimizado"

#: src/media.cls.php:329
msgid "No backup of original file exists."
msgstr "No existe una copia de seguridad del archivo original."

#: src/media.cls.php:329 src/media.cls.php:387
msgid "Using optimized version of file. "
msgstr "Usando la versión optimizada del archivo. "

#: src/media.cls.php:322
msgid "Orig saved %s"
msgstr "Ahorrados %s del original"

#: src/media.cls.php:318
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Archivo original reducido en %1$s (%2$s)"

#: src/media.cls.php:312 src/media.cls.php:367
msgid "Click to switch to optimized version."
msgstr "Haz clic para cambiar a la versión optimizada."

#: src/media.cls.php:312
msgid "Currently using original (unoptimized) version of file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo."

#: src/media.cls.php:311 src/media.cls.php:363
msgid "(non-optm)"
msgstr "(no-optm)"

#: src/media.cls.php:308 src/media.cls.php:360
msgid "Click to switch to original (unoptimized) version."
msgstr "Haz clic para cambiar a la versión original (no optimizada)."

#: src/media.cls.php:308
msgid "Currently using optimized version of file."
msgstr "Actualmente usando la versión optimizada del archivo."

#: src/media.cls.php:307 src/media.cls.php:330 src/media.cls.php:356
#: src/media.cls.php:389
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:141
msgid "LQIP image preview for size %s"
msgstr "Vista previa de la imagen LQIP para el tamaño %s"

#: src/placeholder.cls.php:84
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:1409
msgid "Previously existed in blocklist"
msgstr "Anteriormente existía en la lista negra"

#: src/crawler.cls.php:1406
msgid "Manually added to blocklist"
msgstr "Añadido manualmente a la lista negra"

#: src/htaccess.cls.php:328
msgid "Mobile Agent Rules"
msgstr "Reglas de agente móvil"

#: src/crawler-map.cls.php:376
msgid "Sitemap created successfully: %d items"
msgstr "Mapa del sitio creado con éxito: %d elementos"

#: src/crawler-map.cls.php:279
msgid "Sitemap cleaned successfully"
msgstr "El mapa del sitio se limpió con éxito"

#: src/admin-display.cls.php:1188
msgid "Invalid IP"
msgstr "IP no válida"

#: src/admin-display.cls.php:1163
msgid "Value range"
msgstr "Rango de valores"

#: src/admin-display.cls.php:1160
msgid "Smaller than"
msgstr "Mas pequeño que"

#: src/admin-display.cls.php:1158
msgid "Larger than"
msgstr "Mayor que"

#: src/admin-display.cls.php:1152
msgid "Zero, or"
msgstr "Cero, o"

#: src/admin-display.cls.php:1140
msgid "Maximum value"
msgstr "Valor máximo"

#: src/admin-display.cls.php:1137
msgid "Minimum value"
msgstr "Valor mínimo"

#: src/admin-display.cls.php:1119
msgid "Path must end with %s"
msgstr "La ruta debe terminar en %s"

#: src/admin-display.cls.php:1102
msgid "Invalid rewrite rule"
msgstr "Regla de reescritura no válida"

#: src/admin-display.cls.php:1033
msgid "currently set to %s"
msgstr "actualmente establecido en %s"

#: src/admin-display.cls.php:1026
msgid "This setting is overwritten by the PHP constant %s"
msgstr "Este ajuste es sobrescrita por la constante %s de PHP"

#: src/admin-display.cls.php:138
msgid "Toolbox"
msgstr "Herramientas"

#: src/admin-display.cls.php:134
msgid "Database"
msgstr "Base de datos"

#: src/admin-display.cls.php:132 tpl/dash/dashboard.tpl.php:204
#: tpl/dash/network_dash.tpl.php:37 tpl/general/online.tpl.php:83
#: tpl/general/online.tpl.php:133 tpl/general/online.tpl.php:148
msgid "Page Optimization"
msgstr "Optimización de página"

#: src/admin-display.cls.php:120 tpl/dash/entry.tpl.php:16
msgid "Dashboard"
msgstr "Escritorio"

#: src/db-optm.cls.php:292
msgid "Converted to InnoDB successfully."
msgstr "Convertido a InnoDB exitosamente."

#: src/purge.cls.php:327
msgid "Cleaned all Gravatar files."
msgstr "Vaciados todos los archivos de Gravatar."

#: src/purge.cls.php:310
msgid "Cleaned all LQIP files."
msgstr "Vaciados todos los archivos LQIP."

#: src/error.cls.php:207
msgid "Unknown error"
msgstr "Error desconocido"

#: src/error.cls.php:196
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "Se le ha prohibido a tu dominio usar nuestros servicios debido a una violación anterior de la política."

#: src/error.cls.php:191
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores. Código de respuesta:"

#: src/error.cls.php:186
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores."

#: src/error.cls.php:182
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "La validación de la llamada a tu dominio falló debido a la falta de coincidencia."

#: src/error.cls.php:178
msgid "Your application is waiting for approval."
msgstr "Tu solicitud está a la espera de aprobación."

#: src/error.cls.php:172
msgid "Previous request too recent. Please try again after %s."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s."

#: src/error.cls.php:167
msgid "Previous request too recent. Please try again later."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde."

#: src/error.cls.php:163
msgid "Crawler disabled by the server admin."
msgstr "Rastreador desactivado por el administrador del servidor."

#: src/error.cls.php:135
msgid "Could not find %1$s in %2$s."
msgstr "No he podido encontrar %1$s en %2$s."

#: src/error.cls.php:123
msgid "Credits are not enough to proceed the current request."
msgstr "Los créditos no son suficientes para proceder con la solicitud actual."

#: src/error.cls.php:111
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "La clave de dominio no es correcta. Por favor, intenta sincronizar tu clave de dominio nuevamente."

#: src/error.cls.php:92
msgid "There is proceeding queue not pulled yet."
msgstr "Hay una cola de procedimiento que no se ha retirado todavía."

#: src/error.cls.php:88
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "No hay suficientes parámetros. Compruebe si la clave de dominio está establecida correctamente"

#: src/error.cls.php:84
msgid "The image list is empty."
msgstr "La lista de imágenes está vacía."

#: src/task.cls.php:233
msgid "LiteSpeed Crawler Cron"
msgstr "Cron del rastreador de LiteSpeed"

#: src/task.cls.php:214
msgid "Every Minute"
msgstr "Cada minuto"

#: tpl/general/settings.tpl.php:119
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones."

#: tpl/toolbox/report.tpl.php:105
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe."

#: tpl/toolbox/report.tpl.php:107
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Por favor, NO compartas el enlace de acceso sin contraseña de arriba con nadie."

#: tpl/toolbox/report.tpl.php:48
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s."

#: tpl/banner/cloud_news.tpl.php:30 tpl/banner/cloud_news.tpl.php:41
msgid "Install"
msgstr "Instalar"

#: tpl/cache/settings-esi.tpl.php:46
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN."

#: tpl/banner/score.php:74 tpl/dash/dashboard.tpl.php:455
msgid "PageSpeed Score"
msgstr "Puntuación de PageSpeed"

#: tpl/banner/score.php:62 tpl/banner/score.php:96
#: tpl/dash/dashboard.tpl.php:410 tpl/dash/dashboard.tpl.php:486
msgid "Improved by"
msgstr "Mejorado por"

#: tpl/banner/score.php:53 tpl/banner/score.php:87
#: tpl/dash/dashboard.tpl.php:402 tpl/dash/dashboard.tpl.php:478
msgid "After"
msgstr "Después"

#: tpl/banner/score.php:45 tpl/banner/score.php:79
#: tpl/dash/dashboard.tpl.php:394 tpl/dash/dashboard.tpl.php:470
msgid "Before"
msgstr "Antes"

#: tpl/banner/score.php:40 tpl/dash/dashboard.tpl.php:374
msgid "Page Load Time"
msgstr "Tiempo de carga de la página"

#: tpl/inc/check_cache_disabled.php:20
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud."

#: src/lang.cls.php:211
msgid "Preserve EXIF/XMP data"
msgstr "Conservar los datos EXIF/XMP"

#: tpl/toolbox/beta_test.tpl.php:32
msgid "Try GitHub Version"
msgstr "Probar versión de GitHub"

#: tpl/cdn/other.tpl.php:112
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s."

#: src/doc.cls.php:124
msgid "Both full and partial strings can be used."
msgstr "Se pueden usa cadenas parciales y completas."

#: tpl/page_optm/settings_media_exc.tpl.php:60
msgid "Images containing these class names will not be lazy loaded."
msgstr "Las imágenes que contengan estos nombres de clases no tendrán carga diferida."

#: src/lang.cls.php:186
msgid "Lazy Load Image Class Name Excludes"
msgstr "Exclusión de nombres de clases para carga diferida de imágenes"

#: tpl/cache/settings-cache.tpl.php:139 tpl/cache/settings-cache.tpl.php:164
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s."

#: tpl/cache/settings-cache.tpl.php:136 tpl/cache/settings-cache.tpl.php:161
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI."

#: tpl/banner/new_version.php:93
msgid "Maybe Later"
msgstr "Puede que más tarde"

#: tpl/banner/new_version.php:87
msgid "Turn On Auto Upgrade"
msgstr "Activar la actualización automática"

#: tpl/banner/new_version.php:77 tpl/banner/new_version_dev.tpl.php:41
#: tpl/toolbox/beta_test.tpl.php:77
msgid "Upgrade"
msgstr "Actualizar"

#: tpl/banner/new_version.php:66
msgid "New release %s is available now."
msgstr "La nueva versión %s está disponible ahora."

#: tpl/banner/new_version.php:58
msgid "New Version Available!"
msgstr "¡Nueva versión disponible!"

#: tpl/banner/score.php:112
msgid "Sure I'd love to review!"
msgstr "¡Por supuesto, me encantará valorarlo!"

#: tpl/banner/score.php:36
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "¡Gracias por usar el plugin de caché LiteSpeed!"

#: src/activation.cls.php:526
msgid "Upgraded successfully."
msgstr "Actualizado con éxito."

#: src/activation.cls.php:517 src/activation.cls.php:522
msgid "Failed to upgrade."
msgstr "Fallo al actualizar."

#: src/conf.cls.php:688
msgid "Changed setting successfully."
msgstr "Ajuste cambiado con éxito."

#: tpl/cache/settings-esi.tpl.php:37
msgid "ESI sample for developers"
msgstr "Muestra de ESI para desarrolaldores"

#: tpl/cache/settings-esi.tpl.php:29
msgid "Replace %1$s with %2$s."
msgstr "Reemplaza %1$s con %2$s."

#: tpl/cache/settings-esi.tpl.php:26
msgid "You can turn shortcodes into ESI blocks."
msgstr "Puedes convertir shortcodes en bloques ESI."

#: tpl/cache/settings-esi.tpl.php:22
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Caché privada o caché pública"

#: tpl/page_optm/settings_html.tpl.php:132
msgid "Append query string %s to the resources to bypass this action."
msgstr "Añade la cadena de consulta %s a los recursos para evitar esta acción."

#: tpl/page_optm/settings_html.tpl.php:127
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA se omitirá automáticamente."

#: tpl/crawler/settings.tpl.php:172
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado."

#: src/admin-display.cls.php:208 tpl/crawler/settings.tpl.php:179
msgid "Cookie Values"
msgstr "Valores de la cookie"

#: src/admin-display.cls.php:207
msgid "Cookie Name"
msgstr "Nombre de la cookie"

#: src/lang.cls.php:252
msgid "Cookie Simulation"
msgstr "Simulación de cookie"

#: tpl/page_optm/settings_html.tpl.php:146
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente las Google Fonts dejando el resto del CSS intacto."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:25
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre."

#: src/lang.cls.php:100
msgid "Automatically Upgrade"
msgstr "Actualizar automáticamente"

#: tpl/toolbox/settings-debug.tpl.php:74
msgid "Your IP"
msgstr "Tu IP"

#: src/import.cls.php:155
msgid "Reset successfully."
msgstr "Restablecimiento realizado con éxito"

#: tpl/toolbox/import_export.tpl.php:67
msgid "This will reset all settings to default settings."
msgstr "Esto restablecerá todos los ajustes a su valores predeterminados."

#: tpl/toolbox/import_export.tpl.php:63
msgid "Reset All Settings"
msgstr "Restablecer todos los ajustes"

#: tpl/page_optm/settings_tuning_css.tpl.php:128
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separa archivos CSS críticos al generar las rutas que contengan estas cadenas."

#: src/lang.cls.php:170
msgid "Separate CCSS Cache URIs"
msgstr "Distintas URIs de caché CCSS"

#: tpl/page_optm/settings_tuning_css.tpl.php:114
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:113
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS."

#: src/lang.cls.php:169
msgid "Separate CCSS Cache Post Types"
msgstr "Tipos de contenido de caché de CCSS distintos"

#: tpl/page_optm/settings_media.tpl.php:198
msgid "Size list in queue waiting for cron"
msgstr "Tamaño de la lista en la cola de espera del cron"

#: tpl/page_optm/settings_media.tpl.php:173
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s."

#: tpl/page_optm/settings_media.tpl.php:170
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto."

#: tpl/page_optm/settings_media.tpl.php:74
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes."

#: src/lang.cls.php:193
msgid "Responsive Placeholder"
msgstr "Marcador de posición adaptable"

#: tpl/toolbox/purge.tpl.php:101
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP"

#: tpl/inc/check_cache_disabled.php:31
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Por favor, activa LiteSpeed Cache en los ajustes del plugin."

#: tpl/inc/check_cache_disabled.php:25
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento."

#: src/cloud.cls.php:1393 src/cloud.cls.php:1416
msgid "Failed to request via WordPress"
msgstr "Fallo en la solicitud desde WordPress"

#. Description of the plugin
#: litespeed-cache.php
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed"

#: src/img-optm.cls.php:2083
msgid "Reset the optimized data successfully."
msgstr "Datos de optimización restablecidos correctamente."

#: src/gui.cls.php:893
msgid "Update %s now"
msgstr "Actualizar %s"

#: src/gui.cls.php:890
msgid "View %1$s version %2$s details"
msgstr "Ver detalles de la versión %2$s de %1$s"

#: src/gui.cls.php:888
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>ver detalles de la versión %3$s</a> o <a href=\"%4$s\" %5$s target=\"_blank\">actualiza ya</a>."

#: src/gui.cls.php:868
msgid "Install %s"
msgstr "Instalar %s"

#: tpl/inc/check_cache_disabled.php:40
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "¡Las funciones caché de LSCache de está página no están disponibles!"

#: src/cloud.cls.php:1547
msgid "%1$s plugin version %2$s required for this action."
msgstr "Para esta acción se necesita la versión %2$s del plugin %1$s."

#: src/cloud.cls.php:1476
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente."

#: tpl/img_optm/settings.tpl.php:60
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas."

#: src/lang.cls.php:208
msgid "Remove Original Backups"
msgstr "Eliminar copias de seguridad del orginal"

#: tpl/img_optm/settings.tpl.php:34
msgid "Automatically request optimization via cron job."
msgstr "Solicitar automáticamente la optimización mediante un trabajo cron."

#: tpl/img_optm/summary.tpl.php:188
msgid "A backup of each image is saved before it is optimized."
msgstr "Se guarda una copia de seguridad de cada imagen antes de optimizarla."

#: src/img-optm.cls.php:1876
msgid "Switched images successfully."
msgstr "Cambió las imágenes con éxito."

#: tpl/img_optm/settings.tpl.php:81
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida."

#: tpl/img_optm/settings.tpl.php:80
msgid "Optimize images using lossless compression."
msgstr "Optimizar imágenes usando compresión sin pérdida."

#: src/lang.cls.php:210
msgid "Optimize Losslessly"
msgstr "Optimizar sin pérdida"

#: tpl/img_optm/settings.tpl.php:47
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta."

#: src/lang.cls.php:207
msgid "Optimize Original Images"
msgstr "Optimizar imágenes originales"

#: tpl/page_optm/settings_css.tpl.php:218
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google."

#: src/purge.cls.php:253
msgid "Cleaned all Critical CSS files."
msgstr "Limpiados todos los archivos CSS críticos."

#: tpl/page_optm/settings_css.tpl.php:325
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado."

#: src/lang.cls.php:154
msgid "Inline CSS Async Lib"
msgstr "Biblioteca de CSS integrado asíncrono"

#: tpl/page_optm/settings_localization.tpl.php:72
#: tpl/page_optm/settings_media.tpl.php:216
msgid "Run Queue Manually"
msgstr "Ejecutar cola manualmente"

#: tpl/page_optm/settings_css.tpl.php:115
#: tpl/page_optm/settings_css.tpl.php:252 tpl/page_optm/settings_vpi.tpl.php:65
msgid "URL list in %s queue waiting for cron"
msgstr "Lista de URL en cola %s esperando el cron"

#: tpl/page_optm/settings_css.tpl.php:103
#: tpl/page_optm/settings_css.tpl.php:240
msgid "Last requested cost"
msgstr "Último coste solicitado"

#: tpl/page_optm/settings_css.tpl.php:100
#: tpl/page_optm/settings_css.tpl.php:237
#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_vpi.tpl.php:53
msgid "Last generated"
msgstr "Último generado"

#: tpl/page_optm/settings_media.tpl.php:178
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página."

#: tpl/page_optm/settings_css.tpl.php:217
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron."

#: tpl/page_optm/settings_css.tpl.php:213
msgid "Optimize CSS delivery."
msgstr "Optimiza la entrega de CSS."

#: tpl/toolbox/purge.tpl.php:74
msgid "This will delete all generated critical CSS files"
msgstr "Esto borrará todos los archivos generados de CSS crítico"

#: tpl/dash/dashboard.tpl.php:623 tpl/toolbox/purge.tpl.php:73
msgid "Critical CSS"
msgstr "CSS crítico"

#: src/doc.cls.php:66
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché."

#: tpl/toolbox/heartbeat.tpl.php:28
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar."

#: src/utility.cls.php:228
msgid "right now"
msgstr "ahora mismo"

#: src/utility.cls.php:228
msgid "just now"
msgstr "ahora mismo"

#: tpl/img_optm/summary.tpl.php:259
msgid "Saved"
msgstr "Guardado"

#: tpl/img_optm/summary.tpl.php:253
#: tpl/page_optm/settings_localization.tpl.php:61
msgid "Last ran"
msgstr "Última ejecución"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:245
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!"

#: tpl/img_optm/settings.tpl.php:65 tpl/img_optm/summary.tpl.php:244
msgid "This is irreversible."
msgstr "Esto es irreversible."

#: tpl/img_optm/summary.tpl.php:265
msgid "Remove Original Image Backups"
msgstr "Eliminar copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:264
msgid "Are you sure you want to remove all image backups?"
msgstr "¿Estás seguro de que deseas eliminar todas las copias de seguridad de imágenes?"

#: tpl/crawler/blacklist.tpl.php:31 tpl/img_optm/summary.tpl.php:201
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:198 tpl/img_optm/summary.tpl.php:256
msgid "Files"
msgstr "Archivos"

#: tpl/img_optm/summary.tpl.php:194
msgid "Last calculated"
msgstr "Último cálculo"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calcular almacenamiento original de imágenes"

#: tpl/img_optm/summary.tpl.php:184
msgid "Storage Optimization"
msgstr "Optimización de almacenamiento."

#: tpl/cdn/other.tpl.php:141 tpl/img_optm/settings.tpl.php:125
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Usa el formato %1$s o %2$s (el elemento es opcional)."

#: tpl/cdn/other.tpl.php:137 tpl/img_optm/settings.tpl.php:124
msgid "Only attributes listed here will be replaced."
msgstr "Solo los atributos aquí listados serán reemplazados."

#: tpl/cdn/other.tpl.php:196
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Solo los archivos en estos directorios apuntarán a la CDN."

#: src/lang.cls.php:243
msgid "Included Directories"
msgstr "Directorios incluidos"

#: tpl/cache/settings-purge.tpl.php:152
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Un vaciado completo se iniciará cuando WordPress ejecute estos hooks."

#: src/lang.cls.php:220
msgid "Purge All Hooks"
msgstr "Vaciar todos los hooks"

#: src/purge.cls.php:212
msgid "Purged all caches successfully."
msgstr "Vaciado de todas las cachés correctamente."

#: src/gui.cls.php:562 src/gui.cls.php:691 src/gui.cls.php:744
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:506
msgid "Forced cacheable"
msgstr "Forzar cacheables"

#: tpl/cache/settings-cache.tpl.php:133
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables."

#: src/lang.cls.php:131
msgid "Force Cache URIs"
msgstr "Forzar URLs en caché"

#: tpl/cache/network_settings-excludes.tpl.php:17
#: tpl/cache/settings-excludes.tpl.php:15
msgid "Exclude Settings"
msgstr "Ajustes de exclusión"

#: tpl/toolbox/settings-debug.tpl.php:45
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Esto desactivará LSCache y todas las características de optimización con propósitos de depuración."

#: src/lang.cls.php:255
msgid "Disable All Features"
msgstr "Desactivar todas las características"

#: src/gui.cls.php:599 src/gui.cls.php:781 tpl/toolbox/purge.tpl.php:64
msgid "Opcode Cache"
msgstr "Caché opcode"

#: src/gui.cls.php:570 src/gui.cls.php:752 tpl/toolbox/purge.tpl.php:47
msgid "CSS/JS Cache"
msgstr "Caché CSS/JS"

#: src/gui.cls.php:849 tpl/img_optm/summary.tpl.php:176
msgid "Remove all previous unfinished image optimization requests."
msgstr "Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar."

#: src/gui.cls.php:850 tpl/img_optm/summary.tpl.php:178
msgid "Clean Up Unfinished Data"
msgstr "Limpiar datos no finalizados"

#: tpl/banner/slack.php:40
msgid "Join Us on Slack"
msgstr "Únete a nuestro Slack"

#. translators: %s: Link to LiteSpeed Slack community
#: tpl/banner/slack.php:28
msgid "Join the %s community."
msgstr "Únete a la comunidad %s."

#: tpl/banner/slack.php:24
msgid "Want to connect with other LiteSpeed users?"
msgstr "¿Quieres conectar con otros usuarios de LiteSpeed?"

#: tpl/cdn/cf.tpl.php:38
msgid "Your API key / token is used to access %s APIs."
msgstr "Tu clave de la API/token se usa para acceder a las API de %s."

#: tpl/cdn/cf.tpl.php:47
msgid "Your Email address on %s."
msgstr "Tu dirección de email en %s."

#: tpl/cdn/cf.tpl.php:31
msgid "Use %s API functionality."
msgstr "Usar la funcionalidad de la API %s."

#: tpl/cdn/other.tpl.php:80
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos."

#: tpl/inc/admin_footer.php:23
msgid "Join LiteSpeed Slack community"
msgstr "Únete a la comunidad de Slack de LiteSpeed"

#: tpl/inc/admin_footer.php:21
msgid "Visit LSCWP support forum"
msgstr "Visita el foro de soporte de LSCWP"

#: src/lang.cls.php:28 tpl/dash/dashboard.tpl.php:560
msgid "Images notified to pull"
msgstr "Imágenes notificadas para descargar"

#: tpl/img_optm/summary.tpl.php:291
msgid "What is a group?"
msgstr "¿Qué es un grupo?"

#: src/admin-display.cls.php:1256
msgid "%s image"
msgstr "%s imagen"

#: src/admin-display.cls.php:1253
msgid "%s group"
msgstr "%s grupo"

#: src/admin-display.cls.php:1244
msgid "%s images"
msgstr "%s imágenes"

#: src/admin-display.cls.php:1241
msgid "%s groups"
msgstr "%s grupos"

#: src/crawler.cls.php:1235
msgid "Guest"
msgstr "Invitado"

#: tpl/crawler/settings.tpl.php:109
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar."

#: src/lang.cls.php:251
msgid "Role Simulation"
msgstr "Simulación de rol"

#: tpl/crawler/summary.tpl.php:232
msgid "running"
msgstr "ejecutando"

#: tpl/db_optm/manage.tpl.php:187
msgid "Size"
msgstr "Tamaño"

#: tpl/crawler/summary.tpl.php:123 tpl/dash/dashboard.tpl.php:103
#: tpl/dash/dashboard.tpl.php:822
msgid "Ended reason"
msgstr "Razón de finalización"

#: tpl/crawler/summary.tpl.php:116 tpl/dash/dashboard.tpl.php:97
#: tpl/dash/dashboard.tpl.php:816
msgid "Last interval"
msgstr "Último intervalo"

#: tpl/crawler/summary.tpl.php:104 tpl/dash/dashboard.tpl.php:91
#: tpl/dash/dashboard.tpl.php:810
msgid "Current crawler started at"
msgstr "El rastreador actual comenzó a las"

#: tpl/crawler/summary.tpl.php:97
msgid "Run time for previous crawler"
msgstr "Hora de ejecución para el rastreador anterior"

#: tpl/crawler/summary.tpl.php:91 tpl/crawler/summary.tpl.php:98
msgid "%d seconds"
msgstr "%d segundos"

#: tpl/crawler/summary.tpl.php:90
msgid "Last complete run time for all crawlers"
msgstr "Hora de la última ejecución completa para todos los rastreadores"

#: tpl/crawler/summary.tpl.php:77
msgid "Current sitemap crawl started at"
msgstr "El rastreo del mapa del sitio actual comenzó a las"

#. translators: %1$s: Object Cache Admin title, %2$s: OFF status
#: tpl/cache/settings_inc.object.tpl.php:278
msgid "Save transients in database when %1$s is %2$s."
msgstr "Guarda datos transitorios en la base de datos cuando %1$s es %2$s."

#: src/lang.cls.php:125
msgid "Store Transients"
msgstr "Almacenar datos transitorios"

#. translators: %1$s: Cache Mobile label, %2$s: ON status, %3$s: List of Mobile
#. User Agents label
#: tpl/cache/settings_inc.cache_mobile.tpl.php:89
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "¡Si %1$s es %2$s entonces debe completarse %3$s!"

#: tpl/cache/more_settings_tip.tpl.php:22
#: tpl/cache/settings-excludes.tpl.php:71
#: tpl/cache/settings-excludes.tpl.php:104 tpl/cdn/other.tpl.php:79
#: tpl/crawler/settings.tpl.php:76 tpl/crawler/settings.tpl.php:86
msgid "NOTE"
msgstr "NOTA"

#: src/admin-display.cls.php:1210
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable(s) del servidor %s disponible para omitir este ajuste."

#: src/admin-display.cls.php:1208 tpl/cache/settings-esi.tpl.php:105
#: tpl/page_optm/settings_css.tpl.php:86 tpl/page_optm/settings_css.tpl.php:221
#: tpl/page_optm/settings_html.tpl.php:131
#: tpl/page_optm/settings_media.tpl.php:256
#: tpl/page_optm/settings_media_exc.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:48
#: tpl/page_optm/settings_tuning.tpl.php:68
#: tpl/page_optm/settings_tuning.tpl.php:89
#: tpl/page_optm/settings_tuning.tpl.php:110
#: tpl/page_optm/settings_tuning.tpl.php:129
#: tpl/page_optm/settings_tuning_css.tpl.php:35
#: tpl/page_optm/settings_tuning_css.tpl.php:96
#: tpl/page_optm/settings_tuning_css.tpl.php:99
#: tpl/page_optm/settings_tuning_css.tpl.php:100
#: tpl/toolbox/edit_htaccess.tpl.php:61 tpl/toolbox/edit_htaccess.tpl.php:79
msgid "API"
msgstr "API"

#: src/import.cls.php:133
msgid "Imported setting file %s successfully."
msgstr "Importado con éxito el archivo de ajustes %s."

#: src/import.cls.php:80
msgid "Import failed due to file error."
msgstr "Importación fallida debido a un error en el archivo."

#: tpl/page_optm/settings_css.tpl.php:60 tpl/page_optm/settings_js.tpl.php:48
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Cómo solucionar problemas causados por la optimización CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:76
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor."

#: tpl/cache/settings-advanced.tpl.php:71
msgid "When a visitor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace."

#: src/lang.cls.php:222
msgid "Instant Click"
msgstr "Clic instantáneo"

#: tpl/toolbox/purge.tpl.php:65
msgid "Reset the entire opcode cache"
msgstr "Reestablecer toda la caché opcode"

#: tpl/toolbox/import_export.tpl.php:59
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales."

#: tpl/toolbox/import_export.tpl.php:54
msgid "Last imported"
msgstr "Última importación"

#: tpl/toolbox/import_export.tpl.php:48
msgid "Import"
msgstr "Importar"

#: tpl/toolbox/import_export.tpl.php:40
msgid "Import Settings"
msgstr "Ajustes de importación"

#: tpl/toolbox/import_export.tpl.php:36
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Esto exportará todas las configuraciones actuales de LiteSpeed Cache y las guardará como un archivo."

#: tpl/toolbox/import_export.tpl.php:31
msgid "Last exported"
msgstr "Última exportación"

#: tpl/toolbox/import_export.tpl.php:25
msgid "Export"
msgstr "Exportar"

#: tpl/toolbox/import_export.tpl.php:19
msgid "Export Settings"
msgstr "Ajustes de exportación"

#: tpl/presets/entry.tpl.php:17 tpl/toolbox/entry.tpl.php:20
msgid "Import / Export"
msgstr "Importar / Exportar"

#: tpl/cache/settings_inc.object.tpl.php:249
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilizar conexiones keep-alive para acelerar operaciones de la caché."

#: tpl/cache/settings_inc.object.tpl.php:209
msgid "Database to be used"
msgstr "Base de datos a usar"

#: src/lang.cls.php:120
msgid "Redis Database ID"
msgstr "ID de base de datos Redis"

#: tpl/cache/settings_inc.object.tpl.php:196
msgid "Specify the password used when connecting."
msgstr "Especifica la contraseña utilizada al conectar."

#: src/lang.cls.php:119
msgid "Password"
msgstr "Contraseña"

#. translators: %s: SASL
#: tpl/cache/settings_inc.object.tpl.php:180
msgid "Only available when %s is installed."
msgstr "Solo disponible cuando está instalado %s."

#: src/lang.cls.php:118
msgid "Username"
msgstr "Nombre de usuario"

#. translators: %s: Object cache name
#: tpl/cache/settings_inc.object.tpl.php:99
msgid "Your %s Hostname or IP address."
msgstr "El hostname o dirección IP de tu %s."

#: src/lang.cls.php:114
msgid "Method"
msgstr "Método"

#: src/purge.cls.php:472
msgid "Purge all object caches successfully."
msgstr "Vació de todas las cachés de objetos correctamente."

#: src/purge.cls.php:459
msgid "Object cache is not enabled."
msgstr "La caché de objetos no está activada."

#: tpl/cache/settings_inc.object.tpl.php:262
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)"

#: src/lang.cls.php:124
msgid "Cache WP-Admin"
msgstr "Caché de WP-Admin"

#: src/lang.cls.php:123
msgid "Persistent Connection"
msgstr "Conexión persistente"

#: src/lang.cls.php:122
msgid "Do Not Cache Groups"
msgstr "Grupos a no cachear"

#: tpl/cache/settings_inc.object.tpl.php:222
msgid "Groups cached at the network level."
msgstr "Grupos cacheados a nivel de red."

#: src/lang.cls.php:121
msgid "Global Groups"
msgstr "Grupos globales"

#: tpl/cache/settings_inc.object.tpl.php:71
msgid "Connection Test"
msgstr "Prueba de conexión"

#. translators: %s: Object cache name
#: tpl/cache/settings_inc.object.tpl.php:58
#: tpl/cache/settings_inc.object.tpl.php:66
msgid "%s Extension"
msgstr "Extensión %s"

#: tpl/cache/settings_inc.object.tpl.php:52 tpl/crawler/blacklist.tpl.php:41
#: tpl/crawler/summary.tpl.php:153
msgid "Status"
msgstr "Estado"

#: tpl/cache/settings_inc.object.tpl.php:164
msgid "Default TTL for cached objects."
msgstr "TTL por defecto para objetos cacheados."

#: src/lang.cls.php:117
msgid "Default Object Lifetime"
msgstr "Tiempo de vida por defecto del objeto"

#: src/lang.cls.php:116
msgid "Port"
msgstr "Puerto"

#: src/lang.cls.php:115
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:589 src/gui.cls.php:771 src/lang.cls.php:113
#: tpl/dash/dashboard.tpl.php:60 tpl/dash/dashboard.tpl.php:603
#: tpl/toolbox/purge.tpl.php:55
msgid "Object Cache"
msgstr "Caché de objetos"

#: tpl/cache/settings_inc.object.tpl.php:28
msgid "Failed"
msgstr "Fallido"

#: tpl/cache/settings_inc.object.tpl.php:25
msgid "Passed"
msgstr "Exitoso"

#: tpl/cache/settings_inc.object.tpl.php:23
msgid "Not Available"
msgstr "No disponible"

#: tpl/toolbox/purge.tpl.php:56
msgid "Purge all the object caches"
msgstr "Vaciar todas las cachés de objetos"

#: src/cdn/cloudflare.cls.php:259 src/cdn/cloudflare.cls.php:281
msgid "Failed to communicate with Cloudflare"
msgstr "Fallo al comunicar con Cloudflare"

#: src/cdn/cloudflare.cls.php:272
msgid "Communicated with Cloudflare successfully."
msgstr "Comunicado con éxito con Cloudflare."

#: src/cdn/cloudflare.cls.php:169
msgid "No available Cloudflare zone"
msgstr "No hay disponible una zona Cloudflare"

#: src/cdn/cloudflare.cls.php:155
msgid "Notified Cloudflare to purge all successfully."
msgstr "Avisado a Cloudflare el vaciado completo con éxito."

#: src/cdn/cloudflare.cls.php:139
msgid "Cloudflare API is set to off."
msgstr "La API de Cloudflare está configurada en off."

#: src/cdn/cloudflare.cls.php:111
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito."

#: tpl/cdn/cf.tpl.php:60
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Una vez guardado, coincidirá con la lista actual y se completará automáticamente."

#: tpl/cdn/cf.tpl.php:59
msgid "You can just type part of the domain."
msgstr "Puedes simplemente teclear parte de dominio."

#: tpl/cdn/cf.tpl.php:52
msgid "Domain"
msgstr "Dominio"

#: src/lang.cls.php:245
msgid "Cloudflare API"
msgstr "API de Cloudflare"

#: tpl/cdn/cf.tpl.php:162
msgid "Purge Everything"
msgstr "Vaciar todo"

#: tpl/cdn/cf.tpl.php:156
msgid "Cloudflare Cache"
msgstr "Caché de Cloudflare"

#: tpl/cdn/cf.tpl.php:151
msgid "Development Mode will be turned off automatically after three hours."
msgstr "El modo de desarrollo se desactivará automáticamente después de tres horas."

#: tpl/cdn/cf.tpl.php:149
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real."

#: tpl/cdn/cf.tpl.php:141
msgid "Development mode will be automatically turned off in %s."
msgstr "El modo de desarrollo se desactivará automáticamente en %s."

#: tpl/cdn/cf.tpl.php:137
msgid "Current status is %s."
msgstr "El estado actual es %s."

#: tpl/cdn/cf.tpl.php:129
msgid "Current status is %1$s since %2$s."
msgstr "El estado actual es %1$s desde %2$s."

#: tpl/cdn/cf.tpl.php:119
msgid "Check Status"
msgstr "Comprobar estado"

#: tpl/cdn/cf.tpl.php:116
msgid "Turn OFF"
msgstr "APAGAR"

#: tpl/cdn/cf.tpl.php:113
msgid "Turn ON"
msgstr "ENCENDER"

#: tpl/cdn/cf.tpl.php:111
msgid "Development Mode"
msgstr "Modo de desarrollo"

#: tpl/cdn/cf.tpl.php:108
msgid "Cloudflare Zone"
msgstr "Zona de Cloudflare"

#: tpl/cdn/cf.tpl.php:107
msgid "Cloudflare Domain"
msgstr "Dominio de Cloudflare"

#: src/gui.cls.php:579 src/gui.cls.php:761 tpl/cdn/cf.tpl.php:96
#: tpl/cdn/entry.tpl.php:15
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:45
#: tpl/page_optm/settings_html.tpl.php:76
msgid "For example"
msgstr "Por ejemplo"

#: tpl/page_optm/settings_html.tpl.php:44
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "La precarga DNS puede reducir la latencia para los visitantes."

#: src/lang.cls.php:159
msgid "DNS Prefetch"
msgstr "Prefetch DNS"

#: tpl/page_optm/settings_media.tpl.php:43
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Añade estilos a tus imágenes de carga diferida"

#: src/admin-display.cls.php:1074 src/admin-display.cls.php:1078
#: tpl/cdn/other.tpl.php:108
msgid "Default value"
msgstr "Valor por defecto"

#: tpl/cdn/other.tpl.php:100
msgid "Static file type links to be replaced by CDN links."
msgstr "Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN."

#: src/lang.cls.php:111
msgid "Drop Query String"
msgstr "Ignorar cadenas de consulta"

#: tpl/cache/settings-advanced.tpl.php:57
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché."

#: src/lang.cls.php:221
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Mejorar compatibilidad HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:382
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización."

#: tpl/img_optm/settings.media_webp.tpl.php:34 tpl/img_optm/summary.tpl.php:378
msgid "Destroy All Optimization Data"
msgstr "Destruir todos los datos de optimización"

#: tpl/img_optm/summary.tpl.php:304
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias."

#: tpl/img_optm/settings.tpl.php:95
msgid "This will increase the size of optimized files."
msgstr "Esto aumentará el tamaño de los archivos optimizados."

#: tpl/img_optm/settings.tpl.php:94
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar."

#: tpl/toolbox/log_viewer.tpl.php:46 tpl/toolbox/log_viewer.tpl.php:75
msgid "Clear Logs"
msgstr "Vaciar registros"

#: thirdparty/woocommerce.content.tpl.php:24
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Para probar el carrito, visita la <a %s>FAQ</a>."

#: src/utility.cls.php:231
msgid " %s ago"
msgstr "hace %s"

#: src/media.cls.php:380
msgid "WebP saved %s"
msgstr "WebP guardado %s"

#: tpl/toolbox/report.tpl.php:68
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte."

#: tpl/img_optm/summary.tpl.php:156
msgid "Last pull initiated by cron at %s."
msgstr "Última descarga iniciada por cron a las %s."

#: tpl/img_optm/summary.tpl.php:93
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando."

#: tpl/img_optm/summary.tpl.php:93
msgid "Only press the button if the pull cron job is disabled."
msgstr "Solo pulsar el botón si la tarea cron de descarga está desactivada."

#: tpl/img_optm/summary.tpl.php:102
msgid "Pull Images"
msgstr "Descargar imágenes"

#: tpl/img_optm/summary.tpl.php:142
msgid "This process is automatic."
msgstr "Este proceso es automático"

#: tpl/dash/dashboard.tpl.php:568 tpl/img_optm/summary.tpl.php:322
msgid "Last Request"
msgstr "Última petición"

#: tpl/dash/dashboard.tpl.php:545 tpl/img_optm/summary.tpl.php:319
msgid "Images Pulled"
msgstr "Imágenes recuperadas"

#: tpl/toolbox/entry.tpl.php:29
msgid "Report"
msgstr "Informe"

#: tpl/toolbox/report.tpl.php:139
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress."

#: tpl/toolbox/report.tpl.php:38
msgid "Send to LiteSpeed"
msgstr "Enviar a LiteSpeed"

#: src/media.cls.php:258
msgid "LiteSpeed Optimization"
msgstr "Optimización de LiteSpeed"

#: src/lang.cls.php:166
msgid "Load Google Fonts Asynchronously"
msgstr "Cargar Google Fonts asíncronamente"

#: src/lang.cls.php:98
msgid "Browser Cache TTL"
msgstr "TTL caché de navegador"

#: src/doc.cls.php:88 src/doc.cls.php:140 tpl/dash/dashboard.tpl.php:186
#: tpl/dash/dashboard.tpl.php:845 tpl/general/online.tpl.php:81
#: tpl/general/online.tpl.php:93 tpl/general/online.tpl.php:109
#: tpl/general/online.tpl.php:114 tpl/img_optm/summary.tpl.php:59
#: tpl/inc/check_cache_disabled.php:46
msgid "Learn More"
msgstr "Leer más"

#: tpl/img_optm/summary.tpl.php:285
msgid "Image groups total"
msgstr "Total de grupos de imágenes"

#: src/lang.cls.php:29
msgid "Images optimized and pulled"
msgstr "Imágenes optimizadas y descargadas"

#: src/lang.cls.php:27 tpl/dash/dashboard.tpl.php:551
msgid "Images requested"
msgstr "Imágenes solicitadas"

#: src/img-optm.cls.php:1973 src/img-optm.cls.php:2033
msgid "Switched to optimized file successfully."
msgstr "Cambio correcto a archivo optimizado."

#: src/img-optm.cls.php:2027
msgid "Restored original file successfully."
msgstr "Archivo original restaurado con éxito."

#: src/img-optm.cls.php:1997
msgid "Enabled WebP file successfully."
msgstr "Archivo WebP activado con éxito."

#: src/img-optm.cls.php:1992
msgid "Disabled WebP file successfully."
msgstr "Archivo WebP desactivado con éxito."

#: tpl/img_optm/settings.media_webp.tpl.php:26
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas."

#: tpl/cache/settings-excludes.tpl.php:135
msgid "Selected roles will be excluded from cache."
msgstr "Los perfiles seleccionados serán excluidos de la caché."

#: tpl/general/entry.tpl.php:18 tpl/page_optm/entry.tpl.php:23
#: tpl/page_optm/entry.tpl.php:24
msgid "Tuning"
msgstr "Ajustar"

#: tpl/page_optm/settings_tuning.tpl.php:156
msgid "Selected roles will be excluded from all optimizations."
msgstr "Los perfiles seleccionados serán excluidos de todas las optimizaciones."

#: src/lang.cls.php:178
msgid "Role Excludes"
msgstr "Excluir perfiles"

#: tpl/general/settings_tuning.tpl.php:19
#: tpl/page_optm/settings_tuning.tpl.php:29
msgid "Tuning Settings"
msgstr "Configuración de ajustes"

#: tpl/cache/settings-excludes.tpl.php:106
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar."

#: tpl/cache/settings-excludes.tpl.php:73
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar."

#: tpl/img_optm/summary.tpl.php:141
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, notificará a tu sitio para descargar las imágenes optimizadas."

#: tpl/dash/dashboard.tpl.php:536 tpl/img_optm/summary.tpl.php:76
#: tpl/img_optm/summary.tpl.php:89
msgid "Send Optimization Request"
msgstr "Enviar solicitud de optimización"

#: tpl/img_optm/summary.tpl.php:276
msgid "Image Information"
msgstr "Información de imágenes"

#: tpl/dash/dashboard.tpl.php:542 tpl/img_optm/summary.tpl.php:316
msgid "Total Reduction"
msgstr "Reducción total"

#: tpl/img_optm/summary.tpl.php:313
msgid "Optimization Summary"
msgstr "Resumen de optimización"

#: tpl/img_optm/entry.tpl.php:30
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimización de imágenes de LiteSpeed Cache"

#: src/admin-display.cls.php:130 src/gui.cls.php:727
#: tpl/dash/dashboard.tpl.php:203 tpl/dash/network_dash.tpl.php:36
#: tpl/general/online.tpl.php:75 tpl/general/online.tpl.php:134
#: tpl/general/online.tpl.php:149 tpl/presets/standard.tpl.php:32
msgid "Image Optimization"
msgstr "Optimización de imágenes"

#: tpl/page_optm/settings_media.tpl.php:60
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Por ejemplo, los %s pueden usarse para un marcador de posición transparente."

#: tpl/page_optm/settings_media.tpl.php:59
msgid "By default a gray image placeholder %s will be used."
msgstr "Por defecto, se utilizará un marcador de posición de imagen gris %s."

#: tpl/page_optm/settings_media.tpl.php:58
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración."

#: tpl/page_optm/settings_media.tpl.php:57
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes."

#: tpl/page_optm/settings_media_exc.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:70
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_tuning.tpl.php:112
#: tpl/page_optm/settings_tuning_css.tpl.php:37
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en código html."

#: tpl/cache/settings-esi.tpl.php:106
#: tpl/page_optm/settings_media_exc.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:49
#: tpl/page_optm/settings_tuning.tpl.php:69
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_tuning.tpl.php:111
#: tpl/page_optm/settings_tuning.tpl.php:130
#: tpl/page_optm/settings_tuning_css.tpl.php:36
#: tpl/page_optm/settings_tuning_css.tpl.php:97
msgid "Filter %s is supported."
msgstr "El filtro %s es compatible."

#: tpl/page_optm/settings_media_exc.tpl.php:31
msgid "Listed images will not be lazy loaded."
msgstr "Las imágenes listadas no se cargarán de forma retrasada."

#: src/lang.cls.php:185
msgid "Lazy Load Image Excludes"
msgstr "Exclusiones de carga retrasada de imágenes"

#: src/gui.cls.php:539
msgid "No optimization"
msgstr "Sin optimización"

#: tpl/page_optm/settings_tuning.tpl.php:126
msgid "Prevent any optimization of listed pages."
msgstr "Evitar cualquier optimización de las páginas listadas."

#: src/lang.cls.php:176
msgid "URI Excludes"
msgstr "URL excluidas"

#: tpl/page_optm/settings_html.tpl.php:174
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Deja de cargar emojis de WordPress.org. En su lugar se mostrará el emoji predeterminado del navegador."

#: src/doc.cls.php:126
msgid "Both full URLs and partial strings can be used."
msgstr "Pueden utilizarse tanto URLs completas como cadenas parciales."

#: tpl/page_optm/settings_media.tpl.php:232
msgid "Load iframes only when they enter the viewport."
msgstr "Cargar iframes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:201
msgid "Lazy Load Iframes"
msgstr "Retrasar la carga de iframes"

#: tpl/page_optm/settings_media.tpl.php:39
#: tpl/page_optm/settings_media.tpl.php:233
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales."

#: tpl/page_optm/settings_media.tpl.php:38
msgid "Load images only when they enter the viewport."
msgstr "Cargar las imágenes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:184
msgid "Lazy Load Images"
msgstr "Retrasar la carga de imágenes"

#: tpl/page_optm/entry.tpl.php:19 tpl/page_optm/settings_media.tpl.php:24
msgid "Media Settings"
msgstr "Ajustes de medios"

#: tpl/cache/settings-esi.tpl.php:117 tpl/cache/settings-purge.tpl.php:111
#: tpl/cdn/other.tpl.php:169
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s."

#: src/admin-display.cls.php:1225
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Para que coincida con el principio, añade %s al comienzo del artículo."

#: tpl/banner/score.php:117
msgid "Maybe later"
msgstr "Quizás más tarde"

#: tpl/banner/score.php:116
msgid "I've already left a review"
msgstr "Ya he dejado una valoración"

#: tpl/banner/slack.php:20
msgid "Welcome to LiteSpeed"
msgstr "Bienvenido a LiteSpeed"

#: src/lang.cls.php:174 tpl/presets/standard.tpl.php:51
msgid "Remove WordPress Emoji"
msgstr "Eliminar emojis de WordPress"

#: src/gui.cls.php:547
msgid "More settings"
msgstr "Más ajustes"

#: src/gui.cls.php:528
msgid "Private cache"
msgstr "Caché privada"

#: src/gui.cls.php:517
msgid "Non cacheable"
msgstr "No cacheable"

#: src/gui.cls.php:494
msgid "Mark this page as "
msgstr "Marcar esta página como"

#: src/gui.cls.php:470 src/gui.cls.php:485
msgid "Purge this page"
msgstr "Vaciar esta página"

#: src/lang.cls.php:156
msgid "Load JS Deferred"
msgstr "Deferir carga de JS"

#: tpl/page_optm/settings_tuning_css.tpl.php:167
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s."

#: src/lang.cls.php:168
msgid "Critical CSS Rules"
msgstr "Reglas de CSS críticas"

#: src/lang.cls.php:152 tpl/page_optm/settings_tuning_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr "Cargar CSS asíncronamente"

#: tpl/page_optm/settings_html.tpl.php:161
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Evita que cargue Google Fonts en todas las páginas."

#: src/lang.cls.php:167
msgid "Remove Google Fonts"
msgstr "Eliminar Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:214
#: tpl/page_optm/settings_html.tpl.php:175 tpl/page_optm/settings_js.tpl.php:81
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:123
msgid "Remove query strings from internal static resources."
msgstr "Eliminar cadenas de consulta de recursos estáticos internos."

#: src/lang.cls.php:165
msgid "Remove Query Strings"
msgstr "Eliminar query strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:28
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:28
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:41
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos."

#: src/lang.cls.php:91 tpl/dash/dashboard.tpl.php:61
#: tpl/dash/dashboard.tpl.php:604 tpl/presets/standard.tpl.php:21
msgid "Browser Cache"
msgstr "Caché del navegador"

#: tpl/cache/settings-excludes.tpl.php:100
msgid "tags"
msgstr "etiquetas"

#: src/lang.cls.php:136
msgid "Do Not Cache Tags"
msgstr "Etiquetas a no cachear"

#: tpl/cache/settings-excludes.tpl.php:110
msgid "To exclude %1$s, insert %2$s."
msgstr "Para excluir %1$s, insertar %2$s."

#: tpl/cache/settings-excludes.tpl.php:67
msgid "categories"
msgstr "categorías"

#. translators: %s: "cookies"
#. translators: %s: "user agents"
#: tpl/cache/settings-excludes.tpl.php:67
#: tpl/cache/settings-excludes.tpl.php:100
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:27
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:27
msgid "To prevent %s from being cached, enter them here."
msgstr "Para evitar que los %s sean almacenados en la caché, introdúcelos aquí."

#: src/lang.cls.php:135
msgid "Do Not Cache Categories"
msgstr "Categorías a no cachear"

#: tpl/cache/settings-excludes.tpl.php:45
msgid "Query strings containing these parameters will not be cached."
msgstr "Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché."

#: src/lang.cls.php:134
msgid "Do Not Cache Query Strings"
msgstr "Cadenas de consulta a no cachear"

#: tpl/cache/settings-excludes.tpl.php:30
msgid "Paths containing these strings will not be cached."
msgstr "Las rutas que contengan estas cadenas no serán cacheadas."

#: src/lang.cls.php:133
msgid "Do Not Cache URIs"
msgstr "URIs a no cachear"

#: src/admin-display.cls.php:1227 src/doc.cls.php:109
msgid "One per line."
msgstr "Una por línea."

#: tpl/cache/settings-cache.tpl.php:119
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas."

#: src/lang.cls.php:110
msgid "Private Cached URIs"
msgstr "URIs cacheadas privadamente"

#: tpl/cdn/other.tpl.php:210
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Las rutas que contengan las siguientes cadenas no se servirán desde el CDN."

#: src/lang.cls.php:244
msgid "Exclude Path"
msgstr "Excluir ruta"

#: src/lang.cls.php:240 tpl/cdn/other.tpl.php:113
msgid "Include File Types"
msgstr "Incluir tipos de archivo"

#: tpl/cdn/other.tpl.php:97
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress."

#: src/lang.cls.php:239
msgid "Include JS"
msgstr "Incluir JS"

#: tpl/cdn/other.tpl.php:94
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress."

#: src/lang.cls.php:238
msgid "Include CSS"
msgstr "Incluir CSS"

#: src/lang.cls.php:237
msgid "Include Images"
msgstr "Incluir imágenes"

#: src/admin-display.cls.php:230
msgid "CDN URL to be used. For example, %s"
msgstr "URL de la CDN a utilizar. Por ejemplo, %s"

#: src/lang.cls.php:236
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/other.tpl.php:161
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s"

#: src/lang.cls.php:242
msgid "Original URLs"
msgstr "URLs originales"

#: tpl/cdn/other.tpl.php:28
msgid "CDN Settings"
msgstr "Ajustes de CDN"

#: src/admin-display.cls.php:128
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:235 src/admin-display.cls.php:940
#: src/admin-display.cls.php:966 src/admin-display.cls.php:1015
#: tpl/cache/settings-cache.tpl.php:28
#: tpl/cache/settings_inc.object.tpl.php:280 tpl/cdn/other.tpl.php:53
#: tpl/dash/dashboard.tpl.php:69 tpl/dash/dashboard.tpl.php:461
#: tpl/dash/dashboard.tpl.php:583 tpl/dash/dashboard.tpl.php:612
#: tpl/img_optm/settings.media_webp.tpl.php:22
#: tpl/page_optm/settings_css.tpl.php:91 tpl/page_optm/settings_js.tpl.php:77
#: tpl/page_optm/settings_media.tpl.php:178
#: tpl/toolbox/settings-debug.tpl.php:56
msgid "OFF"
msgstr "APAGAR"

#: src/admin-display.cls.php:234 src/admin-display.cls.php:939
#: src/admin-display.cls.php:966 src/admin-display.cls.php:1015
#: src/doc.cls.php:40 tpl/cache/settings-cache.tpl.php:28
#: tpl/cache/settings_inc.cache_mobile.tpl.php:91 tpl/cdn/other.tpl.php:45
#: tpl/crawler/settings.tpl.php:138 tpl/dash/dashboard.tpl.php:67
#: tpl/dash/dashboard.tpl.php:459 tpl/dash/dashboard.tpl.php:581
#: tpl/dash/dashboard.tpl.php:610 tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:174
#: tpl/toolbox/settings-debug.tpl.php:56
msgid "ON"
msgstr "ENCENDER"

#: src/purge.cls.php:378
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed."

#: tpl/page_optm/settings_html.tpl.php:31
msgid "Minify HTML content."
msgstr "Minificar contenido HTML."

#: src/lang.cls.php:149
msgid "HTML Minify"
msgstr "Minificar HTML"

#: src/lang.cls.php:164
msgid "JS Excludes"
msgstr "Excluir JS"

#: src/data.upgrade.func.php:235 src/lang.cls.php:147
msgid "JS Combine"
msgstr "Combinar JS"

#: src/lang.cls.php:146
msgid "JS Minify"
msgstr "Minificar JS"

#: src/lang.cls.php:162
msgid "CSS Excludes"
msgstr "Excluir CSS"

#: src/lang.cls.php:139
msgid "CSS Combine"
msgstr "Combinar CSS"

#: src/lang.cls.php:138
msgid "CSS Minify"
msgstr "Minificar CSS"

#: tpl/page_optm/entry.tpl.php:43
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción \"Vaciar todo\"."

#: tpl/toolbox/purge.tpl.php:48
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Esto vaciará solo las entradas CSS/JS minimizadas o combinadas"

#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s Error"
msgstr "Vaciar error %s"

#: tpl/db_optm/manage.tpl.php:90
msgid "Database Optimizer"
msgstr "Optimizador de base de datos"

#: tpl/db_optm/manage.tpl.php:58
msgid "Optimize all tables in your database"
msgstr "Optimizar todas las tablas en tu base de datos"

#: tpl/db_optm/manage.tpl.php:57
msgid "Optimize Tables"
msgstr "Optimizar tablas"

#: tpl/db_optm/manage.tpl.php:54
msgid "Clean all transient options"
msgstr "Borrar todas las opciones de datos transitorios"

#: tpl/db_optm/manage.tpl.php:53
msgid "All Transients"
msgstr "Todos los datos transitorios"

#: tpl/db_optm/manage.tpl.php:50
msgid "Clean expired transient options"
msgstr "Borrar opciones de datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:49
msgid "Expired Transients"
msgstr "Datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:46
msgid "Clean all trackbacks and pingbacks"
msgstr "Borrar todos los trackbacks y pingbacks"

#: tpl/db_optm/manage.tpl.php:45
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/pingbacks"

#: tpl/db_optm/manage.tpl.php:42
msgid "Clean all trashed comments"
msgstr "Borrar todos los comentarios en la papelera"

#: tpl/db_optm/manage.tpl.php:41
msgid "Trashed Comments"
msgstr "Comentarios enviados a la papelera"

#: tpl/db_optm/manage.tpl.php:38
msgid "Clean all spam comments"
msgstr "Borrar todos los comentarios spam"

#: tpl/db_optm/manage.tpl.php:37
msgid "Spam Comments"
msgstr "Comentarios spam"

#: tpl/db_optm/manage.tpl.php:34
msgid "Clean all trashed posts and pages"
msgstr "Borrar todas las entradas y páginas en la papelera"

#: tpl/db_optm/manage.tpl.php:33
msgid "Trashed Posts"
msgstr "Entradas enviadas a la papelera"

#: tpl/db_optm/manage.tpl.php:30
msgid "Clean all auto saved drafts"
msgstr "Borrar todos los borradores guardados automáticamente"

#: tpl/db_optm/manage.tpl.php:29
msgid "Auto Drafts"
msgstr "Borradores automáticos"

#: tpl/db_optm/manage.tpl.php:22
msgid "Clean all post revisions"
msgstr "Borrar todas las revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:21
msgid "Post Revisions"
msgstr "Revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:17
msgid "Clean All"
msgstr "Limpiar todo"

#: src/db-optm.cls.php:242
msgid "Optimized all tables."
msgstr "Optimizadas todas las tablas."

#: src/db-optm.cls.php:232
msgid "Clean all transients successfully."
msgstr "Limpieza de todos los datos transitorios exitosa."

#: src/db-optm.cls.php:228
msgid "Clean expired transients successfully."
msgstr "Limpieza de datos transitorios expirados exitosa."

#: src/db-optm.cls.php:224
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Limpieza de trackbacks y pingbacks exitosa."

#: src/db-optm.cls.php:220
msgid "Clean trashed comments successfully."
msgstr "Limpieza de comentarios en papelera exitosa."

#: src/db-optm.cls.php:216
msgid "Clean spam comments successfully."
msgstr "Limpieza de comentarios no deseados exitosa."

#: src/db-optm.cls.php:212
msgid "Clean trashed posts and pages successfully."
msgstr "Limpieza de páginas y entradas en papelera exitosa."

#: src/db-optm.cls.php:208
msgid "Clean auto drafts successfully."
msgstr "Limpieza de borradores automáticos exitosa."

#: src/db-optm.cls.php:200
msgid "Clean post revisions successfully."
msgstr "Limpieza de revisiones de entradas exitosa."

#: src/db-optm.cls.php:143
msgid "Clean all successfully."
msgstr "Limpieza completa exitosa."

#: src/lang.cls.php:93
msgid "Default Private Cache TTL"
msgstr "TTL por defecto de la caché privada"

#: tpl/cache/settings-esi.tpl.php:145
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de \"editar\", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto."

#: src/lang.cls.php:219 tpl/page_optm/settings_css.tpl.php:138
#: tpl/page_optm/settings_css.tpl.php:275 tpl/page_optm/settings_vpi.tpl.php:88
msgid "Vary Group"
msgstr "Grupos de variación"

#: tpl/cache/settings-esi.tpl.php:85
msgid "Cache the built-in Comment Form ESI block."
msgstr "Almacena en la caché el bloque ESI del formulario de comentarios incluido."

#: src/lang.cls.php:217
msgid "Cache Comment Form"
msgstr "Cachear formulario de comentario"

#: src/lang.cls.php:216
msgid "Cache Admin Bar"
msgstr "Cachear barra de administrador"

#: tpl/cache/settings-esi.tpl.php:59
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación."

#: tpl/cache/settings-esi.tpl.php:21
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite \"hacer huecos\" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado."

#: tpl/cache/settings-esi.tpl.php:20
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada."

#: tpl/esi_widget_edit.php:53
msgid "Private"
msgstr "Privada"

#: tpl/esi_widget_edit.php:52
msgid "Public"
msgstr "Pública"

#: tpl/cache/network_settings-purge.tpl.php:17
#: tpl/cache/settings-purge.tpl.php:15
msgid "Purge Settings"
msgstr "Ajustes del vaciado"

#: src/lang.cls.php:108 tpl/cache/settings_inc.cache_mobile.tpl.php:90
msgid "Cache Mobile"
msgstr "Cache móvil"

#: tpl/toolbox/settings-debug.tpl.php:95
msgid "Advanced level will log more details."
msgstr "El nivel avanzado registrará más detalles."

#: tpl/presets/standard.tpl.php:29 tpl/toolbox/settings-debug.tpl.php:93
msgid "Basic"
msgstr "Básico"

#: tpl/crawler/settings.tpl.php:73
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado."

#: src/lang.cls.php:107
msgid "Cache Login Page"
msgstr "Cachear página de acceso"

#: tpl/cache/settings-cache.tpl.php:89
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cachear peticiones realizadas por llamadas de la API REST de WordPress."

#: src/lang.cls.php:106
msgid "Cache REST API"
msgstr "Cachear API REST"

#: tpl/cache/settings-cache.tpl.php:76
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)"

#: src/lang.cls.php:105
msgid "Cache Commenters"
msgstr "Cachear comentaristas"

#: tpl/cache/settings-cache.tpl.php:63
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)"

#: src/lang.cls.php:104
msgid "Cache Logged-in Users"
msgstr "Cachear usuarios con sesión iniciada"

#: tpl/cache/network_settings-cache.tpl.php:17
#: tpl/cache/settings-cache.tpl.php:15
msgid "Cache Control Settings"
msgstr "Ajustes de control de caché"

#: tpl/cache/entry.tpl.php:20
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:19 tpl/cache/entry_network.tpl.php:18
msgid "Excludes"
msgstr "Excluir"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:17
#: tpl/toolbox/entry.tpl.php:16 tpl/toolbox/purge.tpl.php:141
msgid "Purge"
msgstr "Vaciar"

#: src/admin-display.cls.php:126 tpl/cache/entry.tpl.php:16
#: tpl/cache/entry_network.tpl.php:16
msgid "Cache"
msgstr "Caché"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/cache/settings-purge.tpl.php:132
msgid "Current server time is %s."
msgstr "La hora actual del servidor es %s."

#: tpl/cache/settings-purge.tpl.php:131
msgid "Specify the time to purge the \"%s\" list."
msgstr "Especifica la hora para vaciar la lista \"%s\"."

#: tpl/cache/settings-purge.tpl.php:107
msgid "Both %1$s and %2$s are acceptable."
msgstr "Tanto %1$s como %2$s son aceptables."

#: src/lang.cls.php:130 tpl/cache/settings-purge.tpl.php:106
msgid "Scheduled Purge Time"
msgstr "Hora de vaciado programado"

#: tpl/cache/settings-purge.tpl.php:106
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción \"%s\"."

#: src/lang.cls.php:129 tpl/cache/settings-purge.tpl.php:131
msgid "Scheduled Purge URLs"
msgstr "URLs de vaciado programado"

#: tpl/toolbox/settings-debug.tpl.php:123
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad."

#: tpl/toolbox/entry.tpl.php:28
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:106
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:259
msgid "Log File Size Limit"
msgstr "Límite de tamaño de archivo de registro"

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s"

#: src/error.cls.php:127 src/error.cls.php:151
msgid "%s file not writable."
msgstr "No se puede escribir el archivo %s."

#: src/error.cls.php:147
msgid "%s file not readable."
msgstr "No se puede leer el archivo %s."

#: src/lang.cls.php:260
msgid "Collapse Query Strings"
msgstr "Colapsar cadenas de peticiones"

#: tpl/cache/settings-esi.tpl.php:15
msgid "ESI Settings"
msgstr "Ajustes de ESI"

#: tpl/esi_widget_edit.php:82
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 implica no cachear."

#: tpl/esi_widget_edit.php:81
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valor recomendado: 28800 segundos (8 horas)."

#: src/lang.cls.php:215 tpl/esi_widget_edit.php:43
msgid "Enable ESI"
msgstr "Activar ESI"

#: src/lang.cls.php:253
msgid "Custom Sitemap"
msgstr "Sitemap personalizado"

#: tpl/toolbox/purge.tpl.php:214
msgid "Purge pages by relative or full URL."
msgstr "Vaciar páginas por URL completa o relativa."

#: tpl/crawler/summary.tpl.php:61
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La función de rastreador no está habilitada en el servidor LiteSpeed. Consulta al administrador de tu servidor o al proveedor de hosting."

#: tpl/cache/settings-esi.tpl.php:45 tpl/cdn/cf.tpl.php:100
#: tpl/crawler/summary.tpl.php:60 tpl/inc/check_cache_disabled.php:38
#: tpl/inc/check_if_network_disable_all.php:28
#: tpl/page_optm/settings_css.tpl.php:76 tpl/page_optm/settings_css.tpl.php:209
#: tpl/page_optm/settings_localization.tpl.php:21
msgid "WARNING"
msgstr "ADVERTENCIA"

#: tpl/crawler/summary.tpl.php:82
msgid "The next complete sitemap crawl will start at"
msgstr "La siguiente indexación de sitemap completa empezará a las"

#: src/file.cls.php:178
msgid "Failed to write to %s."
msgstr "Error al escribir a %s."

#: src/file.cls.php:161
msgid "Folder is not writable: %s."
msgstr "El directorio no es escribible: %s."

#: src/file.cls.php:153
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "No se puede crear el directorio: %1$s. Error: %2$s"

#: src/file.cls.php:141
msgid "Folder does not exist: %s"
msgstr "El directorio no existe: %s"

#: src/core.cls.php:332
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Solicitado el vaciado de la lista al servidor web LiteSpeed."

#: tpl/toolbox/settings-debug.tpl.php:73
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores."

#: src/lang.cls.php:250
msgid "Server Load Limit"
msgstr "Límite de carga del servidor"

#: tpl/crawler/settings.tpl.php:45
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo."

#: src/lang.cls.php:249
msgid "Crawl Interval"
msgstr "Intervalo de indexación"

#. translators: %s: Example subdomain
#: tpl/cache/settings_inc.login_cookie.tpl.php:53
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Y otro WordPress instalado (NO MULTISITIO) en %s"

#: tpl/cache/entry_network.tpl.php:27
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Ajustes de la caché de la red de caché de LiteSpeed"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Selecciona debajo las opciones de \"Vaciar por\"."

#: tpl/cdn/entry.tpl.php:22
msgid "LiteSpeed Cache CDN"
msgstr "CDN de la caché de LiteSpeed"

#: tpl/crawler/summary.tpl.php:293
msgid "No crawler meta file generated yet"
msgstr "Archivo meta del crawler aún no generado"

#: tpl/crawler/summary.tpl.php:278
msgid "Show crawler status"
msgstr "Mostrar estado del Crawler"

#: tpl/crawler/summary.tpl.php:272
msgid "Watch Crawler Status"
msgstr "Ver estado del Crawler"

#: tpl/crawler/summary.tpl.php:251
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones."

#: tpl/crawler/summary.tpl.php:142
msgid "Manually run"
msgstr "Ejecutar manualmente"

#: tpl/crawler/summary.tpl.php:141
msgid "Reset position"
msgstr "Reestablecer posición"

#: tpl/crawler/summary.tpl.php:152
msgid "Run Frequency"
msgstr "Frecuencia de ejecución"

#: tpl/crawler/summary.tpl.php:151
msgid "Cron Name"
msgstr "Nombre del Cron"

#: tpl/crawler/summary.tpl.php:54
msgid "Crawler Cron"
msgstr "Cron del Crawler"

#: cli/crawler.cls.php:100 tpl/crawler/summary.tpl.php:47
msgid "%d minute"
msgstr "%d minuto"

#: cli/crawler.cls.php:98 tpl/crawler/summary.tpl.php:47
msgid "%d minutes"
msgstr "%d minutos"

#: cli/crawler.cls.php:91 tpl/crawler/summary.tpl.php:39
msgid "%d hour"
msgstr "%d hora"

#: cli/crawler.cls.php:89 tpl/crawler/summary.tpl.php:39
msgid "%d hours"
msgstr "%d horas"

#: tpl/crawler/map.tpl.php:40
msgid "Generated at %s"
msgstr "Generado en %s"

#: tpl/crawler/entry.tpl.php:23
msgid "LiteSpeed Cache Crawler"
msgstr "Crawler de LiteSpeed Cache"

#: src/admin-display.cls.php:136 src/lang.cls.php:248
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
#: litespeed-cache.php
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:697
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Solicitado el vaciado de todas las páginas al servidor web LiteSpeed."

#: tpl/cache/settings-purge.tpl.php:25
msgid "All pages with Recent Posts Widget"
msgstr "Todas las páginas con widget de Entradas recientes"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Pages"
msgstr "Páginas"

#: tpl/toolbox/purge.tpl.php:24
msgid "This will Purge Pages only"
msgstr "Esto solo vaciará las páginas"

#: tpl/toolbox/purge.tpl.php:23
msgid "Purge Pages"
msgstr "Vaciar páginas"

#: src/gui.cls.php:83 tpl/inc/modal.deactivation.php:77
msgid "Cancel"
msgstr "Cancelar"

#: tpl/crawler/summary.tpl.php:154
msgid "Activate"
msgstr "Activar"

#: tpl/cdn/cf.tpl.php:44
msgid "Email Address"
msgstr "Email Address"

#: src/gui.cls.php:869
msgid "Install Now"
msgstr "Instalar ahora"

#: cli/purge.cls.php:133
msgid "Purged the blog!"
msgstr "¡Se ha vaciado el blog!"

#: cli/purge.cls.php:86
msgid "Purged All!"
msgstr "¡Se ha vaciado todo!"

#: src/purge.cls.php:717
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Solicitado el vaciado de las páginas de error al servidor web LiteSpeed."

#: tpl/inc/show_error_cookie.php:27
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto."

#: tpl/inc/show_error_cookie.php:18
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla."

#: tpl/inc/show_display_installed.php:29
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas."

#: tpl/inc/show_display_installed.php:28
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio."

#: tpl/cache/settings-cache.tpl.php:45
msgid "The network admin setting can be overridden here."
msgstr "El ajuste de administrador de red puede ser modificado aquí."

#: tpl/cache/settings-ttl.tpl.php:29
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas."

#: tpl/cache/settings-ttl.tpl.php:44
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas."

#: tpl/toolbox/purge.tpl.php:208
msgid "Purge pages by post ID."
msgstr "Vaciar páginas por ID de entrada."

#: tpl/toolbox/purge.tpl.php:41
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Vacía las entradas de caché de LiteSpeed creadas por este plugin"

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge %s error pages"
msgstr "Purgar las páginas de error %s"

#: tpl/toolbox/purge.tpl.php:18
msgid "This will Purge Front Page only"
msgstr "Esto vaciará solo la página principal"

#: tpl/toolbox/purge.tpl.php:211
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s."

#: tpl/toolbox/purge.tpl.php:205
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s."

#: tpl/toolbox/purge.tpl.php:132
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo»."

#: src/core.cls.php:327
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Solicitado el vaciado de todo al servidor web LiteSpeed."

#: tpl/general/network_settings.tpl.php:31
msgid "Use Primary Site Configuration"
msgstr "Usar configuración del sitio principal"

#: tpl/general/network_settings.tpl.php:36
msgid "This will disable the settings page on all subsites."
msgstr "Esto desactivará la página de ajustes en todos los subsitios."

#: tpl/general/network_settings.tpl.php:35
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Marca esta opción para usar la configuración del sitio principal para todos los subsitios."

#: src/admin-display.cls.php:809 src/admin-display.cls.php:813
msgid "Save Changes"
msgstr "Guardar cambios"

#: tpl/inc/check_if_network_disable_all.php:31
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes."

#: tpl/inc/check_if_network_disable_all.php:30
msgid "The network admin selected use primary site configs for all subsites."
msgstr "El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios."

#: tpl/toolbox/purge.tpl.php:127
msgid "Empty Entire Cache"
msgstr "Vaciar la caché entera"

#: tpl/toolbox/purge.tpl.php:128
msgid "This action should only be used if things are cached incorrectly."
msgstr "Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "Esto puede causar una alta carga en el servidor."

#: tpl/toolbox/purge.tpl.php:132
msgid "This will clear EVERYTHING inside the cache."
msgstr "Esto eliminará TODO dentro de la caché."

#: src/gui.cls.php:691
msgid "LiteSpeed Cache Purge All"
msgstr "Vaciar toda la caché de LiteSpeed"

#: tpl/inc/show_display_installed.php:41
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si no quieres la aceleración de litespeed, puedes desactivar este plugin."

#: tpl/inc/show_display_installed.php:33
msgid "Create a post, make sure the front page is accurate."
msgstr "Crear una entrada, asegurarse que la página principal está actualizada."

#: tpl/inc/show_display_installed.php:32
msgid "Visit the site while logged out."
msgstr "Visitar el sitio sin la sesión iniciada."

#: tpl/inc/show_display_installed.php:31
msgid "Examples of test cases include:"
msgstr "Ejemplos de pruebas incluyen:"

#: tpl/inc/show_display_installed.php:30
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente."

#: tpl/inc/show_display_installed.php:27
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Este mensaje indica que el plugin fue instalado por el administrador del servidor."

#: tpl/inc/show_display_installed.php:26
msgid "LiteSpeed Cache plugin is installed!"
msgstr "¡El plugin LiteSpeed Cache está instalado!"

#: src/lang.cls.php:256 tpl/toolbox/log_viewer.tpl.php:18
msgid "Debug Log"
msgstr "Registro de depuración"

#: tpl/toolbox/settings-debug.tpl.php:56
msgid "Admin IP Only"
msgstr "Solo la IP del administrador"

#: tpl/cache/settings-ttl.tpl.php:89
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST."

#: tpl/toolbox/report.tpl.php:66
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "El informe de entorno contiene información detallada sobre la configuración de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:36
msgid "The server will determine if the user is logged in based on the existence of this cookie."
msgstr "El servidor determinará si el usuario está conectado en base a la existencia de esta cookie."

#: tpl/cache/settings-purge.tpl.php:53 tpl/cache/settings-purge.tpl.php:90
#: tpl/cache/settings-purge.tpl.php:114
#: tpl/page_optm/settings_tuning_css.tpl.php:72
#: tpl/page_optm/settings_tuning_css.tpl.php:147
msgid "Note"
msgstr "Nota"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Después de que la caché funcione en general, por favor prueba el carrito."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:25
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado."

#: src/lang.cls.php:127
msgid "Purge All On Upgrade"
msgstr "Vaciar todo al actualizar"

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Product Update Interval"
msgstr "Intervalo de actualización de producto"

#: thirdparty/woocommerce.content.tpl.php:54
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas."

#: thirdparty/woocommerce.content.tpl.php:41
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Vaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:40
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "No vaciar las categorías al cambiar la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:40
msgid "Purge product only when the stock status changes."
msgstr "Vaciar los productos solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:39
msgid "Purge product and categories only when the stock status changes."
msgstr "Vaciar productos y categorías solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Purge categories only when stock status changes."
msgstr "Vaciar las categorías solo cuando el estado del inventario cambie."

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Purge product on changes to the quantity or stock status."
msgstr "Vaciar los productos con los cambios de cantidad o estado del inventario."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:47
msgid "Htaccess did not match configuration option."
msgstr "El htaccess no coincide con la opción de configuración."

#: tpl/cache/settings-ttl.tpl.php:75 tpl/cache/settings-ttl.tpl.php:90
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si esto se fija en un número inferior a 30, los feeds no serán cacheados."

#: tpl/cache/settings-ttl.tpl.php:74
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Especifica por cuanto tiempo, en segundos, se cachean los feeds."

#: src/lang.cls.php:95
msgid "Default Feed TTL"
msgstr "TTL por defecto del Feed"

#: src/error.cls.php:155
msgid "Failed to get %s file contents."
msgstr "Error al obtener contenido del archivo %s."

#: tpl/cache/settings-cache.tpl.php:102
msgid "Disabling this option may negatively affect performance."
msgstr "Desactivar esta opción puede afectar negativamente al rendimiento."

#: tpl/cache/settings_inc.login_cookie.tpl.php:63
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de acceso no válida. Encontrados caracteres no válidos."

#: tpl/cache/settings_inc.login_cookie.tpl.php:84
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden."

#: src/error.cls.php:139
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de acceso no válida. Por favor, comprueba el archivo %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:57
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente."

#. translators: %s: Example domain
#: tpl/cache/settings_inc.login_cookie.tpl.php:45
msgid "There is a WordPress installed for %s."
msgstr "Hay un WordPress instalado para %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:41
msgid "Example use case:"
msgstr "Ejemplo de uso:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:39
msgid "The cookie set here will be used for this WordPress installation."
msgstr "La cookie aquí establecida será usada por esta instalación de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:38
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no."

#: tpl/cache/settings_inc.login_cookie.tpl.php:37
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio."

#. translators: %s: Default login cookie name
#: tpl/cache/settings_inc.login_cookie.tpl.php:32
msgid "The default login cookie is %s."
msgstr "La cookie de acceso por defecto es %s."

#: src/lang.cls.php:225
msgid "Login Cookie"
msgstr "Cookie de acceso"

#: tpl/toolbox/settings-debug.tpl.php:80
msgid "More information about the available commands can be found here."
msgstr "Aquí se puede encontrar más información sobre los comandos disponibles."

#: tpl/cache/settings-advanced.tpl.php:22
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS."

#: tpl/toolbox/edit_htaccess.tpl.php:91
msgid "Current %s Contents"
msgstr "Contenidos actuales de %s"

#: tpl/cache/entry.tpl.php:28 tpl/cache/entry_network.tpl.php:21
#: tpl/toolbox/settings-debug.tpl.php:93
msgid "Advanced"
msgstr "Avanzado"

#: tpl/cache/network_settings-advanced.tpl.php:17
#: tpl/cache/settings-advanced.tpl.php:16
msgid "Advanced Settings"
msgstr "Ajustes avanzados"

#: tpl/toolbox/purge.tpl.php:225
msgid "Purge List"
msgstr "Vaciar lista"

#: tpl/toolbox/purge.tpl.php:176
msgid "Purge By..."
msgstr "Vaciar por..."

#: tpl/crawler/blacklist.tpl.php:40 tpl/crawler/map.tpl.php:76
#: tpl/toolbox/purge.tpl.php:200
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:196
msgid "Tag"
msgstr "Etiqueta"

#: tpl/toolbox/purge.tpl.php:192
msgid "Post ID"
msgstr "ID de entrada"

#: tpl/toolbox/purge.tpl.php:188
msgid "Category"
msgstr "Categoría"

#: tpl/inc/show_error_cookie.php:16
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión."

#: src/purge.cls.php:807
msgid "Purge url %s"
msgstr "Vaciar la URL %s"

#: src/purge.cls.php:773
msgid "Purge tag %s"
msgstr "Vaciar la etiqueta %s"

#: src/purge.cls.php:744
msgid "Purge category %s"
msgstr "Vaciar la categoría %s"

#: tpl/cache/settings-cache.tpl.php:42
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas."

#: tpl/cache/settings-cache.tpl.php:42 tpl/crawler/settings.tpl.php:113
#: tpl/crawler/settings.tpl.php:133 tpl/crawler/summary.tpl.php:208
#: tpl/page_optm/entry.tpl.php:42
msgid "NOTICE"
msgstr "AVISO"

#: src/doc.cls.php:138
msgid "This setting will edit the .htaccess file."
msgstr "Este ajuste editará el archivo .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid "LiteSpeed Cache View .htaccess"
msgstr "Ver el archivo \".htaccess\" de LiteSpeed Cache"

#: src/error.cls.php:143
msgid "Failed to back up %s file, aborted changes."
msgstr "Fallo al hacer copia de seguridad del archivo %s, cambios cancelados."

#: src/lang.cls.php:223
msgid "Do Not Cache Cookies"
msgstr "Cookies a no cachear"

#: src/lang.cls.php:224
msgid "Do Not Cache User Agents"
msgstr "User Agents a no cachear"

#: tpl/cache/network_settings-cache.tpl.php:30
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios."

#: tpl/cache/network_settings-cache.tpl.php:24
msgid "Network Enable Cache"
msgstr "Habilitar caché de red"

#: thirdparty/woocommerce.content.tpl.php:22
#: tpl/cache/settings-advanced.tpl.php:21
#: tpl/cache/settings_inc.browser.tpl.php:23 tpl/toolbox/heartbeat.tpl.php:24
#: tpl/toolbox/report.tpl.php:46
msgid "NOTICE:"
msgstr "AVISO:"

#: tpl/cache/settings-purge.tpl.php:56
msgid "Other checkboxes will be ignored."
msgstr "Otras opciones serán ignoradas."

#: tpl/cache/settings-purge.tpl.php:55
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Selecciona \"Todo\" si hay widgets dinámicos enlazados a entradas en páginas distintas de la página de inicio"

#: src/lang.cls.php:109 tpl/cache/settings_inc.cache_mobile.tpl.php:92
msgid "List of Mobile User Agents"
msgstr "Lista de User Agents móviles"

#: src/file.cls.php:167 src/file.cls.php:171
msgid "File %s is not writable."
msgstr "No se puede escribir el archivo %s."

#: tpl/page_optm/entry.tpl.php:17 tpl/page_optm/settings_js.tpl.php:17
msgid "JS Settings"
msgstr "Ajustes de JS"

#: src/gui.cls.php:710 tpl/db_optm/entry.tpl.php:13
msgid "Manage"
msgstr "Gestionar"

#: src/lang.cls.php:94
msgid "Default Front Page TTL"
msgstr "TTL por defecto de la Página Principal"

#: src/purge.cls.php:683
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Solicitado el vaciado de la página de inicio al servidor web LiteSpeed."

#: tpl/toolbox/purge.tpl.php:17
msgid "Purge Front Page"
msgstr "Vaciar la página de inicio"

#: tpl/page_optm/settings_localization.tpl.php:137
#: tpl/toolbox/beta_test.tpl.php:40
msgid "Example"
msgstr "Ejemplo"

#: tpl/cache/settings-excludes.tpl.php:99
msgid "All tags are cached by default."
msgstr "Todas las etiquetas son cacheadas por defecto."

#: tpl/cache/settings-excludes.tpl.php:66
msgid "All categories are cached by default."
msgstr "Todas las categorías son cacheadas por defecto."

#: src/admin-display.cls.php:1226
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Para coincidencias exactas, añadir %s al final de la URL."

#: src/admin-display.cls.php:1222
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Las URLs serán comparadas con la variable REQUEST_URI del servidor."

#: tpl/cache/settings-purge.tpl.php:57
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados."

#: tpl/toolbox/report.tpl.php:122
msgid "Notes"
msgstr "Notas"

#: tpl/cache/settings-cache.tpl.php:28
msgid "Use Network Admin Setting"
msgstr "Usar ajuste de administrador de red"

#: tpl/esi_widget_edit.php:54
msgid "Disable"
msgstr "Desactivar"

#: tpl/cache/network_settings-cache.tpl.php:28
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activar LiteSpeed Cache para WordPress aquí activa la caché para la red."

#: tpl/cache/settings_inc.object.tpl.php:16
msgid "Disabled"
msgstr "Desactivado"

#: tpl/cache/settings_inc.object.tpl.php:15
msgid "Enabled"
msgstr "Habilitado"

#: src/lang.cls.php:137
msgid "Do Not Cache Roles"
msgstr "No cachear perfiles"

#. Author URI of the plugin
#: litespeed-cache.php
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
#: litespeed-cache.php
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: litespeed-cache.php tpl/banner/new_version.php:57
#: tpl/banner/new_version_dev.tpl.php:21 tpl/cache/more_settings_tip.tpl.php:28
#: tpl/esi_widget_edit.php:41 tpl/inc/admin_footer.php:17
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: src/lang.cls.php:258
msgid "Debug Level"
msgstr "Nivel de depuración"

#: tpl/general/settings.tpl.php:72 tpl/general/settings.tpl.php:79
#: tpl/general/settings.tpl.php:86 tpl/general/settings.tpl.php:103
#: tpl/page_optm/settings_media.tpl.php:251
#: tpl/page_optm/settings_vpi.tpl.php:44
msgid "Notice"
msgstr "Nota"

#: tpl/cache/settings-purge.tpl.php:31
msgid "Term archive (include category, tag, and tax)"
msgstr "Archivo de término (incluye categoría, etiqueta y taxonomía)"

#: tpl/cache/settings-purge.tpl.php:30
msgid "Daily archive"
msgstr "Archivo diario"

#: tpl/cache/settings-purge.tpl.php:29
msgid "Monthly archive"
msgstr "Archivo mensual"

#: tpl/cache/settings-purge.tpl.php:28
msgid "Yearly archive"
msgstr "Archivo anual"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Post type archive"
msgstr "Archivo de tipo de contenido"

#: tpl/cache/settings-purge.tpl.php:26
msgid "Author archive"
msgstr "Archivo del Autor"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Home page"
msgstr "Página de Inicio"

#: tpl/cache/settings-purge.tpl.php:22
msgid "Front page"
msgstr "Página de inicio"

#: tpl/cache/settings-purge.tpl.php:21
msgid "All pages"
msgstr "Todas las páginas"

#: tpl/cache/settings-purge.tpl.php:73
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Seleccionar que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadas"

#: tpl/cache/settings-purge.tpl.php:50
msgid "Auto Purge Rules For Publish/Update"
msgstr "Reglas de vaciado automático para publicación y actualización"

#: src/lang.cls.php:92
msgid "Default Public Cache TTL"
msgstr "TTL por defecto de la caché pública"

#: src/admin-display.cls.php:1043 tpl/cache/settings_inc.object.tpl.php:162
#: tpl/crawler/settings.tpl.php:43 tpl/esi_widget_edit.php:78
msgid "seconds"
msgstr "segundos"

#: src/lang.cls.php:257
msgid "Admin IPs"
msgstr "IPs de administrador"

#: src/admin-display.cls.php:124
msgid "General"
msgstr "Opciones generales"

#: tpl/cache/entry.tpl.php:50
msgid "LiteSpeed Cache Settings"
msgstr "Configuración de Caché de LiteSpeed"

#: src/purge.cls.php:234
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Solicitado el vaciado de todas las entradas de la caché de LSCache al servidor web LiteSpeed."

#: src/gui.cls.php:554 src/gui.cls.php:562 src/gui.cls.php:570
#: src/gui.cls.php:579 src/gui.cls.php:589 src/gui.cls.php:599
#: src/gui.cls.php:609 src/gui.cls.php:619 src/gui.cls.php:628
#: src/gui.cls.php:638 src/gui.cls.php:648 src/gui.cls.php:736
#: src/gui.cls.php:744 src/gui.cls.php:752 src/gui.cls.php:761
#: src/gui.cls.php:771 src/gui.cls.php:781 src/gui.cls.php:791
#: src/gui.cls.php:801 src/gui.cls.php:810 src/gui.cls.php:820
#: src/gui.cls.php:830 tpl/page_optm/settings_media.tpl.php:139
#: tpl/toolbox/purge.tpl.php:40 tpl/toolbox/purge.tpl.php:47
#: tpl/toolbox/purge.tpl.php:55 tpl/toolbox/purge.tpl.php:64
#: tpl/toolbox/purge.tpl.php:73 tpl/toolbox/purge.tpl.php:82
#: tpl/toolbox/purge.tpl.php:91 tpl/toolbox/purge.tpl.php:100
#: tpl/toolbox/purge.tpl.php:109 tpl/toolbox/purge.tpl.php:117
msgid "Purge All"
msgstr "Vaciar todo"

#: src/admin-display.cls.php:291 src/gui.cls.php:718
#: tpl/crawler/entry.tpl.php:17
msgid "Settings"
msgstr "Ajustes"����%GLKhdidqd2�d�d�d	�d
�d
�d�dee,e	5e?e	HeRe.ee�e
�e�e�eh�eN+fYzfw�flLg��g=:h"xh7�h�hH�h i)i;iKifi'wi
�i	�i�i�i�i%�ij|jF�j
�j.�j0kDk%Sk	yk"�k�kP�klT&lZ{l>�lm2m4?m-tm/�mL�m2nIRn*�n�n�n#�noQoOjo�os�oEDpP�p0�p'q4qKqeq3{q�q�q�qI�q$r	Cr	MrWr cr"�r/�r*�rs

ss/s�As4�s��sf�t0u=u
AuOu\u#du�u�u�u�u
�u�u�uvvv+v>vOv	fvpv�v
�v�v�v�v�v8�v&w0:w*kw�w �w �w(�wx%x.x�Lx�x�xK�x	EyOyayzy$�y�y�y�y"z'z"Czfz!�z�z�z&�z&
{"1{GT{!�{,�{$�{+|<|\|x|�|'�|(�|
�|
}'}:}1Q}%�}2�}�}V�}^?~
�~�~�~�~�~�~	& .GNv*�/� �?�O�!a�����
����̀ۀ��	��%$�BJ�
��4��6́��	$�.�B�a�{�����Ƃڂ ��"�9�O�/h�*��<Ã7�8�G�`�o�|���
��	��DŽЄ���(�
/�=�	I�S�b�x�����
����Ņ!܅���0�I�Z�z���
�������9f���)��҇+�}���D��8�)�1�
F�T�k�;w����r� {�K��8�!�)�=�U�j�~�������ЋC�-�H4�}���
����<�����9(�9b�
������͎
ڎ,�q�����N�������(��
ː֐���9�X�`�r���������̑ӑ��+�%�,D�sq���%�8�O�`�y�6���Γ��L�k�9w�:����L��W֕.�?�
W�b�
s�~�����ȖЖ���
�Q*�|���
����З �0�5�D�X�#k���
������Ƙ!ݘ����5�ș����(�
4�B�	V�`�Br�
����Ț	֚̚2ۚZ�,i�����-ƛ��i̜;6�Yr�K̝V�Uo�LŞB�YU�:��V�`A�J��g�xU�=΢@�=M�������̣��
�<$�?a�����Τ��?�S�Z�j� z�&�� ¥D�(�l4�G������
��"�������Ҩ��	���
����թ
�
�/��/*�Z�<o�
����֪(ߪ�
'�2�F�	R�\�ch�̫���.�B�
G�R�
g�u�����h��"�A*��l��	��(�5�'E�
m�{�
��
��"��ɮҮ$�+�7�#I�m�*����¯ٯ�
�
�$�?�R�Pm�@��5��25�Bh�>��"�=
�&K�r���%����Բ%� �"5�&X�!����� Գ��
�$,��Q�9�P�_�v���d��� �<�/M�.}�����̶����&�:�C�P�n�q�x���������
ηܷ����1�%8�^�$s�
��������ŸҸ�@�
(�%6�\�a�h�>p����� ֹ��*� 9�2Z�����"ú*�"�"4�W�<g�,��$ѻ
��
��F"�i�n�t�
{�.��?��6��;/�1k�3��2ѽ6�0;�l�p�s�v�}�����Q��D�
T�#b�-��$��?ٿ��0�7���%��	�'�;�P�c�z�����$���E��+;�*g���������������
��
�$�8�!K�m�z������������������R$�cw�2��?�
N�\�{�d��<��53�Si�C��5�7��W�K��O'�'w���������9��;�0C�Mt�����p��|R�/��&��&&�)M�8w�7��4���=�
E�S�
g��u�F�J�b�i�v���A��������	�
��2�>�O�
`�	k�u���%����0���I�_�$w�D��@��9"�1\���8��a��6�F�S�_����+��
��#��=��1�QN�+�����������+�B�U�k�z���������&���{,�;������4�H�e���������!������&�5�I�&g�B�������Y �z�����$������I	�
S�a�q�
����:�����	�.�E�'K�ds�����f�$i�X��Q��79�+q���g���1�P�Qi���0��P��^I�	����9��v��}u�(���6�>?�~�U��N��7�
D�R�&o���#����9��
�V�_k�C��G�aW�8��4��/'�7W�6��7��-��),�LV�*��)��-��(&�HO�����(��3���R$�w�������������2��#�(A�5j�����������e��-<�j�/r�h��]�=i�i��8�[J�c��C
�jN�z��A4�qv�`��'I�qq���H�WL�O��>��3�L�Kd���E��1��--�8[�M��Y��,<�)i�9��&��)��9�$X�X}�1��A�^J�E��U��(E�Sn�Y��J2�z}�(��I!�xk�^�AC�4��)��c�0H�.y�����O�����A��2�2�7D�Y|�*�F�9H�����R��p,�*�1�;/G(wJ�4�B cN�Q�o#X�/�G9d1����gJ-^x3�NZWx���g<,	1i	V�	L�	*?
]j
�
�
�
�
�
$�
1
BPcjz���//(_)�����P

�

�
�
	-?@L�
�%�g�H*
s
~
����:�>�@9pz�/CVru]�5F_|��(z8��#�$=.b2�r�H7�!���C�F�F
S^q������
" <]Ke��+��)�: �
��!e9J�j�MUJ��g
rR�Z�7CX'x#��%�-��'/�(E8�~F5.|L�-�G& n /� � � )� Z
!we!�!�!
�!"""K:"�"�"J�"	�"�"�"�"�#�#�##�#�$'�$?�$0%8%	A%
K%V%
b%p%#�%�%	�%	�%�%�%3�%%&	2&<&C&p`&S�&p%'��'�;(��(F�)�)E	*O*MS*�*�*�*%�*
+0#+T+q+�+�+�+,�+�+��+K�,�,7�,8-S-0p-�-3�-.�-\.t.Y�.z�.HY/$�/�/B�/<0@\0g�0R1gX1(�1�1�1@2T2Zr2e�233oO3c�3p#4E�4?�45 95Z5Aw5�5'�5�5h�5.X6�6�6�62�6$�6>7,F7	s7}7"�7�7��7Fu8��8i�9":/:3:F:
U:)`:�:�:'�:�:
�:�:�:
;%;,; K;l;�;�;%�;�;�;<<<3<OF<2�<G�<K=5]=-�=-�=2�=">
+>6>�R>�>?\-?�?�?�?6�?7	@'A@!i@�@'�@/�@1�@+0A3\A,�A/�A1�A4B+TBY�B,�B+C,3C4`C+�C(�C!�C)D56D*lD�D!�D!�D�DBE/OE=E�E��E�MF
�F�F.�F*G?GUGhG-�G;�Gc�G%UH/{H�H�H�H!�HI'I=I$RIwI�I�I �I�I�I9�I_4J�JI�JG�J5KBKZKjK�K�K#�K/�KL(L"BL3eL$�L�L�L;�L6$MI[MD�M�MNN0N=N(VNN
�N
�N�N�N,�N
O"O*O@OUOmO$�O �O �O�O�OP')P3QP%�P$�P%�P�P'Q8Q#RQvQ�Q��QKiR	�R@�R)S:*S�eS�SNT=_T
�T%�T�T)�T
UUU�rUdV$pV_�VC�V	9WCWXWqW�W �W�W�W�W�WIX[X^cX�X�X
�X�XP�X#PZtZ�ZB�Z?�Z
([6[N[d[q[E}[}�[
A\!L\Jn\�\�\��\.�]�]�]�]�]^:^Z^b^r^�^�^�^�^�^�^�^_E	_!O_1q_��_*5`%``�`�`�`#�`�`H�`@a\a#xa*�a`�a(b;4bMpb��btmc[�c>dTdsdd�d�d!�d�dee(e%Fele_ye�e�eff4f'Mf.uf�f�f�f �fgg-g#Eg'ig(�g$�g%�g�h+�hii!8iZiiivi	�i�iL�i	�i	jjj%j@*jYkj9�j�jk18k&jko�lAmfCmc�mdntsn^�nKGod�o<�oc5ps�pJ
q�Xq�sU�sP�sQ2t�t�t%�t(�t+u4uQuOguc�uv$4v#Yv"}v�vW�vww+w5Cw.yw!�wR�wx*x_�x
yy/y
Ay�Ly�7z,{&B{!i{ �{��{l|u|�|�|�|
�|@�|@}L}Fl}�}&�}
�})�}&~B~O~
l~w~
�~{�~+:Q@k������1��F�ǀIπ��	����&�B7�z�������,ǂ��2 �8S���@��+�.�E�$d�����	��
˄-ք��^6�Z��@�B1�Tt�PɆ$�P?�:��ˇۇ0��*�E�4c�$��-��5�+!�"M�%p�*����-�,�<� >�_�v��������E�#`���C��I܌
&�4�H�a�v���)��ҍ�"���	�%&�L�a�f��
����ŽՎ����.%�T�.n�
��������
яߏ�J�?�'L�t�y��i����1�O�4l�,��VΑ(%�%N�6t�@���)
�4�UF�B��Eߓ%�
2�@�`[�����ǔ̔4۔N�C_�^��F�II�8��H̖<�R�Y�b�d�k�}�'��TŗS�n�0~�6��*�;�$M��r�E
�
S�.a�
������̚���;�.L�"{�V��4��7*�b�����*��ɜݜ���(�=� W�x�$����˝���'�.�6�B�Y�gu��ݞ:d�L������p*�P��<�_)�K��Dա*��E�_�aS�=���
����G<�F��>ˤU
�`�
}�t�����4��C��;�8@�Cy�[��W�(q�������ͨ�ܨ_}�'ݩ���<�XP����������
�+�7�S�`�p���5��#ʫC�2�YJ�"��,ǬJ�K?�I��Aխ�B-�xp�����+$�P�
i�.t�
��,��Xۯ#4�cX�,������/�)O�+y�'��ͱ����(2�8[���3��߲���T��$���=6�'t�7��Դ����(&�O�h�����%��"׵3��I.�x�)��#¶�f�&|�1��'շ���M:�������̸�V��.V�����B���7��"���ún޺/M�i}�l�HT�9��!׼q��k�.~���O˽�D3�px�n�X�h�?���ƿ�^�5�#<�`�Xh���e�QB���
��'��.��
�1�D�BU���~��|(�U��`��Q\�`��\�@l�`��a�Ip�9��6��b+�0��)��<��-&�OT��� ��@��O�k�gr� �����6�N�(V��1��!��%��J� Q�r�������z��?�Y�1b�s��i�Dr�~��=6�tt�l��SV�����3�K�������-,��Z�&��b�[t�_��J0�#{���P��$�d4�=��<��?�ST�^��1�+9�0e�#��=��@��#9�\]�;��^��sU�]��t'�7��_��d4���V����0��R���2����WG�5��-��}�5��7�����������C�]_�?��5��<3�Vp�*��W���J�'<�d�\�����)e�?��:��U
�6`�,��g��?,�Jl�(��f��VG�x��i�7��S��?
�BM�����B�T!�cv�:��d�!z�k�������H��J��Y:�\��0�m"���������	��*���"
�-�M�g�o�������0��4�4�%D��j��)���+��(.�W�
r�R���
�)���f��
��
#�
1�<�T�EX�I��k��T�#��#�B�\�'u����k&@����T6F8..�(�%4,5a��i%�+���G�T*��(��3%Fl�"�)��f�	`j3��0��$���� 	|#	`�	}
a
X�
&:ua"�o�vj��,
11
%c

�
,�
8�
��
:�+*VV��Kt5�[�7RR�%�=A_.ei���������K`lZu�
��	������G+�X�c��i:X1�u��H�`��X������v�|D }*����"�,
M���A|�/����9���3��o�ah#�V<<_���xN��3����0g^��m[!���?�@2XN�nYoh2+"u}������%��'p])K�Y�����6�'~�8��kP
�:�����v���Yb�b�$l"r��4�F*������S�����FG�}�Q��Hw�O������{�l!�3u� cq��q{b�Ra�;Kr��fw����(>�h���QX
�k��BI�^���u�YEc,IRo�y(5@]�W\/f�}2�����#]��
,�����*��ikG	^�+���m��m���Ldz�=u`�����T���y����>_�UI���=S��6�	&Z�JBt��QP��CT�e���
@$.%��*��tq\�r
����T>p�T��d�t	�;m87BJ��J&s��3D��������da�l_3:�!$�]�'B��{�?n��-����a=�����P�~�#'2�%����jw�&�n��������;�����[��KZ!q�Nsv�7y`=}S�(���Cx��Wt�rW�O	P�O\�54��-��o1w�REf�|IR����W���J�x���,���U(Lz<�b�S�
�����#�Hq���G��C��#����Z]%.�S�����@�i5�5��d����V+���j���9
��gL����;j�������f�8�������nE){\�*��C����c y���e~��0!p��\-�0-�U�iK���zk���<��%�?)`Y���W����F�anTQ��L"�&�Rs���	��G����Q/z���dt|��.�N�{��: �:����oO���AU����Z�9�g0�?���l�r_F�
�1h���M�2K��8M����N�_e��&�6i�.U��'(���gz���P����J��h�[b��e �k<����e�A��=A�$�����pc4�V���9V���D�>l����4���A~�Iy�~.^����4���B�w[�`�$?�)���7)��|�s��Ev�1��5���m���OD�,��F����D���Z�-^�/��"�v�V�+j����MML�7�����6sg���Ex��>�C��
f[�@;��0HH�p��/�x�97�j68��1� %s ago%1$s %2$s files left in queue%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.%s must be turned ON for this setting to work.(no savings)(non-optm)(optm).htaccess Path<a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is not required to use this preset. Only basic caching features are enabled.A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores.A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores.A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdd to BlocklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced (Recommended)Advanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.AggressiveAlias is in use by another QUIC.cloud account.All QUIC.cloud service queues have been cleared.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied the %1$s preset %2$sApply PresetAre you sure to delete all existing blocklist items?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Asynchronous CSS Loading with Critical CSSAuthor archiveAuto DraftsAuto Purge Rules For Publish/UpdateAuto Request CronAutomatic generation of critical CSS is in the background via a cron-based queue.Automatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBackup created %1$s before applying the %2$s presetBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are allowlistedBest available WordPress performanceBeta TestBlocklistBlocklistedBlocklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.CCSS Per URLCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS & JS CombineCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS, JS and HTML MinificationCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache REST APICache StatusCache WP-AdminCache key must be integer or non-empty string, %s given.Cache key must not be an empty string.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all orphaned post meta recordsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean orphaned post meta successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all Unique CSS files.Cleaned all localized resource entries.Cleaned up unfinished data successfully.Clear LogsCleared %1$s invalid images.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloud server refused the current request due to rate limiting. Please try again later.Cloud server refused the current request due to unpulled images. Please pull the images first.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optimizedCongratulations, all gathered!Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler LogCrawler StatusCrawler disabled by the server admin.Crawler disabled list is cleared! All crawlers are set to active! Crawler(s)Create a post, make sure the front page is accurate.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent crawler started atCurrent image post id positionCurrent limit isCurrent server loadCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PreconnectDNS PrefetchDNS Prefetch ControlDNS Prefetch for static filesDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug HelpersDebug LevelDebug LogDebug SettingsDebug String ExcludesDebug URI ExcludesDebug URI IncludesDefaultDefault CacheDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDeferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).Delay rendering off-screen HTML elements by its selector.DelayedDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable CacheDisable Image LazyloadDisable VPIDisable WordPress interval heartbeat to reduce server load.Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDowngrade not recommended. May cause fatal error due to refactored code.Drop Query StringESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Elements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blocklistEnable CacheEnable ESIEnable Viewport Images auto generation cron.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Error: Failed to apply the settings %1$sEssentialsEvery MinuteEverything in Advanced, PlusEverything in Aggressive, PlusEverything in Basic, PlusEverything in Essentials, PlusExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsExtremeFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s available for UCSS per page type generation.Filter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For online services to work correctly, you must allowlist all %s server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate a separate vary cache copy for the mini cart when the cart is not empty.Generated at %sGlobal API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode IPsGuest Mode JS ExcludesGuest Mode User AgentsGuest Mode and Guest OptimizationGuest Mode failed to test.Guest Mode passed testing.Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.Guest Mode testing resultGuest OptimizationHTML Attribute To ReplaceHTML Lazy Load SelectorsHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHigher TTLHistoryHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using a %1$s socket, %2$s should be set to %3$sIf you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.If your theme does not use JS to update the mini cart, you must enable this option to display the correct cart contents.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage groups totalImages PulledImages containing these class names will not be lazy loaded.Images having these parent class names will not be lazy loaded.Images not requestedImages notified to pullImages optimized and pulledImages ready to requestImages requestedImages will be pulled automatically if the cron job is running.ImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.In order to use QC services, need a real domain name, cannot use an IP.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInline CSS added to CombineInline JS added to CombineInline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.InstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Defer for both external and inline JSJS Deferred / Delayed ExcludesJS DelayedJS Delayed IncludesJS ExcludesJS MinifyJS SettingsJS error can be found from the developer console of browser by right clicking and choosing Inspect.Join LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast PulledLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLazy Load for IframesLazy Load for ImagesLearn MoreLearn moreLearn more about when this is neededLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.Listed CSS files will be excluded from UCSS and saved to inline.Listed IPs will be considered as Guest Mode visitors.Listed JS files or inline JS code will be delayed.Listed JS files or inline JS code will not be deferred or delayed.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed User Agents will be considered as Guest Mode visitors.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache Configuration PresetsLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache Standard PresetsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed LogsLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.Load CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog File Size LimitLog ViewLogin CookieLow Quality Image PlaceholderMBManageManually added to blocklistManually runMapMark this page as Maximum image post idMaximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobileMobile Agent RulesMobile CacheMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.No available Cloud Node after checked server load.No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo optimizationNo valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot blocklistedNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Online node needs to be redetected.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Orphaned Post MetaOther checkboxes will be ignored.PAYG BalancePHP Constant %s is supported.Page Load TimePage OptimizationPageSpeed ScorePagesPartner Benefits Provided byPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please make sure this IP is the correct one for visiting your site.Please read all warnings before enabling this option.Please see %s for more details.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please thoroughly test all items in %s to ensure they function as expected.Please thoroughly test each JS file you add to ensure it functions as expected.Please try after %1$s for service %2$s.PortPost IDPost RevisionsPost type archivePreconnecting speeds up future loads from a given origin.Predefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPresetsPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Prevent writing log entries that include listed strings.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blocklistPrivatePrivate CachePrivate Cached URIsPrivate cachePrivately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePull Cron is runningPull ImagesPulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge LogPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Read LiteSpeed DocumentationRecommended to generate the token from Cloudflare API token template "WordPress".Recommended value: 28800 seconds (8 hours).RedetectRedetected nodeRedis Database IDRefresh Crawler MapRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove Query Strings from Static FilesRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlocklistRemove query strings from internal static resources.Removed Unused CSS for UsersRemoved backups successfully.Replace %1$s with %2$s.ReportRequests in queueRescan New ThumbnailsRescanned %d images successfully.Rescanned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore SettingsRestore from backupRestored backup settings %1$sRestored original file successfully.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun %s Queue ManuallyRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSave ChangesSave transients in database when %1$s is %2$s.SavedSaving option failed. IPv4 only for %s.Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSelect "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe a separate cache copy for mobile visitors.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Server IPServer Load LimitServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Sitemap ListSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Spam CommentsSpecify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify which HTML element attributes will be replaced with CDN Mapping.Standard PresetsStarted async crawlingStarted async image optimization requestStatic file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)TestingThank You for Using the LiteSpeed Cache Plugin!The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The Viewport Images service detects which images appear above the fold, and excludes them from lazy load.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The current server is under heavy load.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe queue is processed asynchronously. It may take time.The selector must exist in the CSS. Parent classes in the HTML will not work.The server will determine if the user is logged in based on the existence of this cookie.The site is not a valid alias on QUIC.cloud.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This action should only be used if things are cached incorrectly.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This enables the page's initial screenful of imagery to be fully displayed without delay.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development.This option can help to correct the cache vary for certain advanced mobile or tablet visitors.This option enables maximum optimization for Guest Mode visitors.This option is bypassed because %1$s option is %2$s.This option is bypassed due to %s option.This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.This option will automatically bypass %s option.This option will remove all %s tags from HTML.This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images.This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools.This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning.This process is automatic.This setting is %1$s for certain qualifying requests due to %2$s!This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This setting will regenerate crawler list and clear the disabled list!This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will also add a preconnect to Google Fonts to establish a connection earlier.This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page from the combined file.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited.To match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisUCSS File Excludes and InlineUCSS InlineUCSS Selector AllowlistUCSS URI ExcludesURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL SearchURL list in %s queue waiting for cronUnable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict.Unable to automatically add %1$s as a Domain Alias for main %2$s domain.Unique CSSUnknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUse %1$s in %2$s to indicate this cookie has not been set.Use %1$s to bypass UCSS for the pages which page type is %2$s.Use %1$s to bypass remote image dimension check when %2$s is ON.Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.Use %s API functionality.Use CDN MappingUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between.Use external object cache functionality.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.Useful for above-the-fold images causing CLS (a Core Web Vitals metric).UsernameUsing optimized version of file. VPIValue rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary CookiesVary GroupVary for Mini CartView %1$s version %2$s detailsView .htaccessView Site Before CacheView Site Before OptimizationViewport ImageViewport Image GenerationViewport ImagesViewport Images CronVisit LSCWP support forumVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting to be CrawledWant to connect with other LiteSpeed users?Watch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.When you use Lazy Load, it will delay the loading of all images on a page.Who should use this preset?Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can list the 3rd party vary cookies here.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You need to turn %s on and finish all WebP generation to get maximum result.You need to turn %s on to get maximum result.You will be unable to Revert Optimization once the backups are deleted!Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more.Your server IPZero, orcategoriescookiescurrently set to %shttps://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowpixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.unknownuser agentsPO-Revision-Date: 2024-02-24 15:52:26+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/4.0.1
Language: es_MX
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
hace %s%1$s %2$s archivos restantes en la colaPara esta acción se necesita la versión %2$s del plugin %1$s.%d hora%d horas%d minuto%d minutos%d segundosExtensión %sNo se puede leer el archivo %s.No se puede escribir el archivo %s.%s grupo%s grupos%s imagen%s imágenes%s es recomendado.%s debe estar activo para que este ajuste funcione.(sin ahorro)(no-optm)(optm)Ruta del archivo ".htaccess"<a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$sNo es obligatoria una clave de dominio para este preajuste. Solo se activan características básicas de caché.Es obligatoria una clave de dominio para usar este preajuste. Activa el máximo nivel de optimizaciones para obtener puntuaciones de velocidad de página mejorados.Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones de velocidad de página.Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones del sitio en las herramientas de medición de velocidad de página.Un vaciado completo se iniciará cuando WordPress ejecute estos hooks.Un TTL de 0 implica no cachear.Se guarda una copia de seguridad de cada imagen antes de optimizarla.APIAcelera la velocidad al cachear Gravatar (Avatares reconocidos mundialmente).ActivarAñadir tamaños que faltanAñade una nueva url de la CDNAñadir una cookie nueva para simularAñadir a la lista negraAñade estilos a tus imágenes de carga diferidaSolo la IP del administradorIPs de administradorAvanzadoAvanzado (Recomendado)Ajustes avanzadosEl nivel avanzado registrará más detalles.DespuésDespués de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, notificará a tu sitio para descargar las imágenes optimizadas.Después de que la caché funcione en general, por favor prueba el carrito.AgresivoEl alias ya está en uso por otra cuenta de QUIC.cloud.Se han borrado todas las colas de servicio de QUIC.cloudTodos los datos transitoriosTodas las categorías son cacheadas por defecto.Todas las páginasTodas las páginas con widget de Entradas recientesTodas las etiquetas son cacheadas por defecto.Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.Ya en la cachéVaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario.Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separarAñade la cadena de consulta %s a los recursos para evitar esta acción.Se ha aplicado el prejuste %1$s %2$sAplicar el preajuste¿Seguro que quieres borrar todos los elementos de la lista negra?¿Estás seguro de destruir todas las imágenes optimizadas?¿Estás seguro de que deseas borrar todos los nodos de la nube?¿Estás seguro de que deseas volver a detectar el servidor en la nube más cercano para este servicio?¿Estás seguro de que deseas eliminar todas las copias de seguridad de imágenes?¿Estás seguro de que deseas restablecer todas las configuraciones a la configuración predeterminada?Carga de CSS asíncrono con CSS críticoArchivo del AutorBorradores automáticosReglas de vaciado automático para publicación y actualizaciónCron de petición automáticaGenera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.La generación automática de CSS único está en segundo plano a través de una cola basada en cron.Actualizar automáticamenteActivar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.Solicitar automáticamente la optimización mediante un trabajo cron.La lista de avatares está en la cola esperando ser actualizadaRuta del .htaccess del backendControl de heartbeat del backendTTL de heartbeat del backendCopia de seguridad creada %1$s antes de aplicar el preajuste %2$sBásicoMarcador de posición de imagen básicaAntesAntes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blancaEl mejor rendimiento disponible para WordPressPruebas betaLista negraEn lista negraEn la lista negra debido a que no se puede cachearTanto %1$s como %2$s son aceptables.Pueden utilizarse tanto URLs completas como cadenas parciales.Se pueden usa cadenas parciales y completas.NavegadorCaché del navegadorAjustes de la caché del navegadorTTL caché de navegadorEl cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.Por defecto, se utilizará un marcador de posición de imagen gris %s.Por defecto, las páginas "Mi cuenta", "Pago" y "Carrito" son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente.Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien.CCSS por URLCDNAncho de banda CDNAjustes de CDNURL de CDNURL de la CDN a utilizar. Por ejemplo, %sCombinar CSS y JSCombinar CSSCombinación de CSS externo e integradoExcluir CSSMinificar CSSAjustes de CSSMinimizado de CSS, JS y HTMLCaché CSS/JSCachéCachear barra de administradorCachear formulario de comentarioCachear comentaristasAjustes de control de cachéAcierto de cachéCachear usuarios con sesión iniciadaCachear página de accesoFallo de cachéCache móvilCachear API RESTEstado de la cachéCaché de WP-AdminLa clave de caché debe ser un entero o una cadena no vacía, %s proporcionado.La clave de caché no puede ser una cadena vacía.Cachear peticiones realizadas por llamadas de la API REST de WordPress.Almacena en la caché el bloque ESI del formulario de comentarios incluido.Calcular espacio en el disco para copias de seguridadCalcular almacenamiento original de imágenesCopias de seguridad calculadas correctamente.No se puede crear el directorio: %1$s. Error: %2$sCancelarCategoríaAjuste cambiado con éxito.Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración.Comprobar estadoComprueba mi IP pública desdeMarca esta opción para usar la configuración del sitio principal para todos los subsitios.Limpiar todoVaciar el mapa del rastreadorLimpiar datos no finalizadosBorrar todos los borradores guardados automáticamenteLimpiar todos los registros meta de entradas huérfanasBorrar todas las revisiones de entradasBorrar todos los comentarios spamLimpieza completa exitosa.Borrar todos los trackbacks y pingbacksBorrar todas las opciones de datos transitoriosLimpieza de todos los datos transitorios exitosa.Borrar todos los comentarios en la papeleraBorrar todas las entradas y páginas en la papeleraLimpieza de borradores automáticos exitosa.Borrar opciones de datos transitorios expiradosLimpieza de datos transitorios expirados exitosa.Limpieza correcta de los meta de entrada huérfanos.Limpieza de revisiones de entradas exitosa.Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisionesLimpieza de comentarios no deseados exitosa.Limpieza de trackbacks y pingbacks exitosa.Limpieza de comentarios en papelera exitosa.Limpieza de páginas y entradas en papelera exitosa.Limpiados todos los archivos CSS críticos.Vaciados todos los archivos de Gravatar.Vaciados todos los archivos LQIP.Limpiados todos los archivos CSS únicos.Limpiadas todas las entradas de recursos localizados.Datos incompletos limpiados correctamente.Vaciar registrosVaciar %1$s imágenes no validas.Haz clic aquí para configurarlo.Haz clic aquí para los ajustesHaga clic para borrar todos los nodos para una mayor redetección.Haz clic para cambiar a la versión optimizada.Haz clic para cambiar a la versión original (no optimizada).Error de cloudEl servidor en la nube rechazó la solicitud actual debido a la limitación de cuota. Por favor, inténtalo de nuevo más tarde.El servidor de la nube ha rechazado la solicitud actual debido a que no se han extraído las imágenes. Por favor, extrae primero las imágenes.CloudflareAPI de CloudflareLa API de Cloudflare está configurada en off.Caché de CloudflareDominio de CloudflareZona de CloudflareColapsar cadenas de peticionesCombina archivos CSS y código CSS integrado.Combina todos los archivos JS locales en un único archivo.Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. Comunicado con éxito con Cloudflare.¡Felicidades! Tu archivo ya ha sido optimizado¡Felicidades, todos reunidos!Prueba de conexiónConvertir a InnoDBConvertido a InnoDB exitosamente.Nombre de la cookieSimulación de cookieValores de la cookieNo he podido encontrar %1$s en %2$s.Intervalo de indexaciónCrawlerCron del CrawlerAjustes generales del rastreadorRegistros de rastreadoresEstado del rastreadorRastreador desactivado por el administrador del servidor.¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos!Rastreador(es)Crear una entrada, asegurarse que la página principal está actualizada.Los créditos no son suficientes para proceder con la solicitud actual.CSS críticoReglas de CSS críticasNombre del CronContenidos actuales de %sNodos cloud actual en servicioIPs del servidor en líneaEl rastreador actual comenzó a lasPosición actual del id de entrada de la imagenEl límite actual es:Carga actual del servidorLa hora actual del servidor es %s.El rastreo del mapa del sitio actual comenzó a lasEl estado actual es %1$s desde %2$s.El estado actual es %s.Rastreador activoActualmente usando la versión optimizada del archivo WebP.Actualmente usando la versión optimizada del archivo.Actualmente usando la versión original (no optimizada) del archivo WebP.Actualmente usando la versión original (no optimizada) del archivo.Sitemap personalizadoAjustes de optimización de BDPreconexión DNSPrefetch DNSControl del prefetch DNSPrecarga de DNS para archivos estáticosArchivo diarioEscritorioBase de datosOptimizador de base de datosResumen de la base de datosConversor de motor de tabla de base de datosBase de datos a usarDía(s)Ayudas de depuraciónNivel de depuraciónRegistro de depuraciónAjustes de depuraciónExclusión de cadenas de depuraciónURIs excluidas de la depuraciónURIs incluidas en la depuraciónPredeterminadoCaché predeterminadoTTL por defecto del FeedTTL por defecto de la Página PrincipalTTL del código de estado de página predeterminadoTiempo de vida por defecto del objetoTTL por defecto de la caché privadaTTL por defecto de la caché públicaTTLpredeterminado de RESTTTL por defecto para objetos cacheados.La ruta predeterminada esPuerto por defecto de %1$s es %2$s.Valor por defectoDiferidoAplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals).Retraso al mostrar los elementos HTML fuera de la pantalla por su selector.RetrasadaBorrar todas las copias de seguridad de las imágenes originalesDestruir todos los datos de optimizaciónTodos los datos de optimización destruidos correctamente.Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.Modo de desarrolloEl modo de desarrollo se desactivará automáticamente después de tres horas.El modo de desarrollo se desactivará automáticamente en %s.DesactivarDesactivar todas las característicasDesactivar la cachéDesactivar la carga de imágenes diferidaDesactivar VPIDesactiva el intervalo del heartbeat de WordPress para reducir la carga del servidor.Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas.DesactivadoArchivo WebP desactivado con éxito.Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.Desactivar esta opción puede afectar negativamente al rendimiento.DescartarDescartar este avisoCategorías a no cachearCookies a no cachearGrupos a no cachearCadenas de consulta a no cachearNo cachear perfilesEtiquetas a no cachearURIs a no cachearUser Agents a no cachearNo vaciar las categorías al cambiar la cantidad o estado del inventario.DominioNo se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado.Ignorar cadenas de consultaESINonces de ESIAjustes de ESIESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.Muestra de ESI para desarrolaldoresHeartbeat del editorTTL de heartbeat del editorSe excluirán los elementos con el atributo %s en el código HTML.Se excluirán los elementos con el atributo %s en código html.Email AddressVaciar la caché enteraVaciar la lista negraActiva cacheActivar ESIActivar el cron de generación automática del viewport de imágenes.Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.HabilitadoArchivo WebP activado con éxito.Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.Razón de finalizaciónMotorIngrese la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a IP en lugar del nombre de dominio. Esto elimina la sobrecarga de las búsquedas de DNS y CDN.Error: No se pudieron aplicar los ajustes %1$sBásicosCada minutoTodo lo de Advance y ademásTodo lo de Aggressive y ademásTodo en el básico, ademásTodo lo de Essentials y ademásEjemploEjemplo de uso:Ejemplos de pruebas incluyen:Excluir rutaAjustes de exclusiónExcluirDatos transitorios expiradosExportarAjustes de exportaciónExtremoFallidoFallo al hacer copia de seguridad del archivo %s, cambios cancelados.Fallo al comunicar con CloudflareFallo de comunicación con el servidor QUIC.cloudFallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.Error al obtener contenido del archivo %s.Fallo en la solicitud desde WordPressFallo al actualizar.Error al escribir a %s.Uso de la cola rápidaNo se puede escribir el archivo %s.ArchivosDisponible el filtro %s para la generación de UCSS por tipo de página.El filtro %s es compatible.El directorio no existe: %sEl directorio no es escribible: %s.Optimización de visualización de fuentesEn el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado.Por ejemploPor ejemplo, %1$s define un TTL de %2$s segundos para %3$s.Por ejemplo, los %s pueden usarse para un marcador de posición transparente.Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor.Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.Forzar URLs en cachéForzar URIs de caché públicaForzar cronForzar cacheablesPágina de inicioRuta del .htaccess del frontendControl de heartbeat del frontendTTL de heartbeat del frontendOpciones generalesAjustes generalesGenerar LQIP en segundo planoGenerar enlace para el usuario actualGenerar UCSSGenerar una copia de caché variable separada para el minicarrito cuando éste no esté vacío.Generado en %sClave/Token global de la APIGrupos globalesIr al escritorio de QUIC.cloudIr a la lista de pluginsBuenas noticias del servidor QUIC.cloudGoogle reCAPTCHA se omitirá automáticamente.Caché de GravatarCron de la caché de GravatarTTL de la caché de GravatarGrupos cacheados a nivel de red.InvitadoModo de invitadoIP del modo de invitadoExclusiones JS del modo de invitadoAgentes de usuario del modo de invitadoModo de invitado y modo de optimizaciónPrueba fallida del modo de invitado.Prueba superada del modo de invitado.El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX.Resultado de la prueba del modo de invitadoOptimización para invitadosAtributo HTML a reemplazarSelectores HTML de carga diferidaMinificar HTMLAjustes HTMLSolo orígenes HTTPSHeartbeatControl de HeartbeatCaché de páginas de alto rendimiento y optimización de sitio de LiteSpeedTTL mayorHistorialAciertoPágina de InicioHostCómo solucionar problemas causados por la optimización CSS/JS.Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.El htaccess no coincide con la opción de configuración.La regla de Htaccess es: %sYa he dejado una valoración¡Si %1$s es %2$s entonces debe completarse %3$s!Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo».Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.Si esto se fija en un número inferior a 30, los feeds no serán cacheados.Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.Si estás usando un socket %1$s, %2$s debería estar en %3$sSi experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.Si no quieres la aceleración de litespeed, puedes desactivar este plugin.Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.Si tu tema no utiliza JS para actualizar el minicarrito, debes activar esta opción para mostrar el contenido correcto del carrito.Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.Los iframes con estos nombres de clase padres no se cargarán de forma diferida.Ignorar ciertas cadenas de consulta al almacenar en caché. (Se requiere LSWS %s)Información de imágenesOptimización de imágenesAjustes de optimización de imágenesResumen de la optimización de imágenesTamaños de grupo de imágenes en miniaturaTotal de grupos de imágenesImágenes recuperadasLas imágenes que contengan estos nombres de clases no tendrán carga diferida.Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.Imágenes no solicitadasImágenes notificadas para descargarImágenes optimizadas y descargadasImágenes listas para la solicitudImágenes solicitadasLas imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.ImportarImportar / ExportarAjustes de importaciónImportación fallida debido a un error en el archivo.Importado con éxito el archivo de ajustes %s.Mejorar compatibilidad HTTP/HTTPSMejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)Mejorado porPara evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s.Para poder usar los servicios de QC necesitas un nombre de demonio real, no puedes usar una IP.Incluir CSSIncluir tipos de archivoIncluir imágenesIncluir JSIncluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.Directorios incluidosBiblioteca de CSS integrado asíncronoCSS en línea añadido a CombinarJS en línea añadido a CombinarUCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala.InstalarInstalar %sInstalar DoLogin SecurityInstalar ahoraClic instantáneoIP no válidaCookie de acceso no válida. Encontrados caracteres no válidos.Cookie de acceso no válida. Por favor, comprueba el archivo %s.Regla de reescritura no válidaSe convertirá en un marcador de posición SVG base64 sobre la marcha.Combinar JSCombinación de JS externo e integradoDiferir JSAplazar JS para JS externos e incrustadosExclusiones de JS diferido / retrasadoJS RetrasadoInclusiones de JS retrasadasExcluir JSMinificar JSAjustes de JSEl error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar.Únete a la comunidad de Slack de LiteSpeedÚnete a nuestro SlackÚnete a la comunidad %s.Mantén esto apagado para usar marcadores de posición de color.LQIPCaché de LQIPGenerador de LQIP en la nubeExcluye LQIPDimensiones mínimas de LQIPCalidad LQIPVista previa de la imagen LQIP para el tamaño %sLas solicitudes LQIP no se enviarán para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.LSCache¡Las funciones caché de LSCache de está página no están disponibles!Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.Mayor queÚltima lecturaÚltima extracciónÚltima peticiónÚltimo cálculoHora de la última ejecución completa para todos los rastreadoresÚltima exportaciónÚltimo generadoÚltima importaciónÚltimo intervaloÚltima descarga iniciada por cron a las %s.Última ejecuciónÚltimo coste solicitadoExclusiones de carga diferida de clases de iframesExclusiones de carga diferida de clases padre de iframesRetrasar la carga de iframesExclusión de nombres de clases para carga diferida de imágenesExclusiones de carga retrasada de imágenesExclusiones de carga diferida de clases padresRetrasar la carga de imágenesExclusión de URIs de carga diferidaCarga diferida de IframesCarga diferida para imágenesLeer másSaber másAprende más sobre cuándo esto es necesario Enlace a QUIC.cloudLista de User Agents móvilesLista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.Los archivos CSS listados se excluirán del CSS sin uso y guardados para que se incrusten.Las IP listadas serán consideradas visitantes en modo invitado.Los archivos JS listados o el código JS en línea se retrasarán.Los archivos JS listados o el código JS integrado no serán aplazados ni diferidos.Los archivos JS listados o el código JS integrado no serán optimizados por %s.Las URI listadas no generarán UCSS.Los agentes de usuario listados serán considerados visitantes en modo invitado.Las imágenes listadas no se cargarán de forma retrasada.LiteSpeed CacheCDN de la caché de LiteSpeedPreajustes de configuración de caché LiteSpeedCrawler de LiteSpeed CacheEscritorio de LiteSpeed CacheOptimización de la base de datos de LiteSpeed CacheAjustes generales de LiteSpeed CacheOptimización de imágenes de LiteSpeed CacheAjustes de la caché de la red de caché de LiteSpeedPágina de optimización de LiteSpeed CacheVaciar toda la caché de LiteSpeedConfiguración de Caché de LiteSpeedPreajustes estándar de cache de LiteSpeedHerramientas de LiteSpeed CacheVer el archivo ".htaccess" de LiteSpeed Cache¡El plugin LiteSpeed Cache está instalado!LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el layout de tu sitio es correcto y que no tienes errores de JS.Cron del rastreador de LiteSpeedRegistros de LiteSpeedOptimización de LiteSpeedReporte de LiteSpeedLiteSpeed TechnologiesActualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración.Cargar CSS asíncronamenteCargar Google Fonts asíncronamenteDeferir carga de JSCargar iframes sólo cuando entran en la ventana de visualización.Cargar las imágenes sólo cuando entran en la ventana de visualización.LocalizaciónArchivos de idiomasAjustes de localizaciónRecursos localizadosLocalizar recursos externos.Recursos localizadosLímite de tamaño de archivo de registroVista de registrosCookie de accesoMarcador de imagen de baja calidadMBGestionarAñadido manualmente a la lista negraEjecutar manualmenteMapaMarcar esta página comoID de entrada de imagen máximaValor máximoPuede que más tardeQuizás más tardeExclusiones de mediosAjustes de mediosMensaje del servidor QUIC.cloudMétodoMinimiza archivos CSS y código CSS integrado.Minificar contenido HTML.Minimiza archivos CSS y código CSS integrado.Valor mínimoPerderMóvilReglas de agente móvilCaché móvilArchivo mensualMásAquí se puede encontrar más información sobre los comandos disponibles.Más ajustesMás ajustes disponibles en el menú %sNOTAAVISOAVISO:AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.Escritorio de la redHabilitar caché de red¡Nueva versión para desarrolladores disponible!¡Nueva versión disponible!La nueva versión de desarrollo %s está disponible.La nueva versión %s está disponible ahora.No hay ningún nodo de la nube disponible después de comprobar la carga del servidor.No hay ningún nodo de cloud disponible.No hay disponible una zona CloudflareNo existe una copia de seguridad del archivo original.No existe una copia de seguridad del archivo WebP no optimizado.No hay servicios cloud en usoArchivo meta del crawler aún no generadoSin optimizaciónEl servidor cloud no ha encontrado ninguna imagen válida por en la petición actual.No se ha encontrado ninguna imagen válida en la petición actual.No se ha analizado ningún mapa del sitio válido para el rastreador.No cacheableNo disponibleNo está en la lista negraNo hay suficientes parámetros. Compruebe si la clave de dominio está establecida correctamenteNotaNotasNotaNotificacionesAvisado a Cloudflare el vaciado completo con éxito.Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed.Solicitado el vaciado de todas las entradas de la caché de LSCache al servidor web LiteSpeed.Solicitado el vaciado de todas las páginas al servidor web LiteSpeed.Solicitado el vaciado de las páginas de error al servidor web LiteSpeed.Solicitado el vaciado de todo al servidor web LiteSpeed.Solicitado el vaciado de la página de inicio al servidor web LiteSpeed.Solicitado el vaciado de la lista al servidor web LiteSpeed.APAGARENCENDEROObjetoCaché de objetosAjustes de la caché de objetosLa caché de objetos no está activada.Una vez guardado, coincidirá con la lista actual y se completará automáticamente.Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificadoUna por línea.El nodo online tiene que volver a ser detectado.Solo los atributos aquí listados serán reemplazados.Solo disponible cuando está instalado %s.Solo los archivos en estos directorios apuntarán a la CDN.Solo registra las páginas listadas.Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios.Solo pulsar el botón si la tarea cron de descarga está desactivada.Caché opcodeMarca esto si eres un usuario de OpenLiteSpeedOperaciónEstado de optimizaciónResumen de optimizaciónHeramientas de optimizaciónOptimiza la entrega de CSS.Optimizar sin pérdidaOptimizar imágenes originalesOptimizar tablasOptimizar todas las tablas en tu base de datosOptimizar solamente para invitadosOptimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.Optimizar imágenes usando compresión sin pérdida.Optimiza las imágenes con nuestro servidor QUIC.cloud.Optimizadas todas las tablas.Nombre de la opciónOpcionalOpcional cuando se usa el token de la API.Opciones guardadas.OrigOrig %sAhorrados %s del originalURLs originalesArchivo original reducido en %1$s (%2$s)Meta de entrada huérfanoOtras opciones serán ignoradas.Balance de pagoEs compatible la contante %s de PHP.Tiempo de carga de la páginaOptimización de páginaPuntuación de PageSpeedPáginasVentajas de colaboración ofrecidas porExitosoContraseñaEnlace sin contraseñaLa ruta debe terminar en %sLas rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.Las rutas que contengan estas cadenas no serán cacheadas.Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.Pago por usoEstadísticas pago por usoConexión persistenteDebido a que puede haber conflictos con LiteSpeed Cache, por favor, considera desactivar los siguientes plugins:Por favor, NO compartas el enlace de acceso sin contraseña de arriba con nadie.Por favor, activa LiteSpeed Cache en los ajustes del plugin.Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio.Por favor, lee todas las advertencias antes de activar esta opción.Por favor, consulta %s para más detalles.Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción "Vaciar todo".Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera.Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera.Por favor, inténtalo después de %1$s para el servicio %2$s.PuertoID de entradaRevisiones de entradasArchivo de tipo de contenidoLa preconexión acelera las cargas futuras desde un origen determinado.La lista predefinida también se combinará con los ajustes anterioresLa precarga DNS puede reducir la latencia para los visitantes.Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.Conservar los datos EXIF/XMPPreajustesPulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales.Evita que cargue Google Fonts en todas las páginas.Evita cualquier registro de depuración de las páginas enumeradas.Evita cualquier carga diferida de las páginas de la lista.Evitar cualquier optimización de las páginas listadas.Evita escribir entradas del registro que incluyan cadenas listadas.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.Anteriormente existía en la lista negraPrivadaCaché privadaURIs cacheadas privadamenteCaché privadaCachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)Intervalo de actualización de productoPúblicaCaché publica Pull Cron se está ejecutandoDescargar imágenesEl md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP.VaciarVaciar error %sPurgar las páginas de error %sVaciar todoVaciar todos los hooksVaciar todo al actualizarVaciar por...Vaciar todoVaciar la página de inicioVaciar listaPurgar registroVaciar páginasAjustes del vaciadoVació de todas las cachés de objetos correctamente.Vaciar todas las cachés de objetosVaciar las categorías solo cuando el estado del inventario cambie.Vaciar la categoría %sVaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.Vaciar páginas por ID de entrada.Vaciar páginas por URL completa o relativa.Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.Vaciar productos y categorías solo cuando cambie el estado del inventario.Vaciar los productos con los cambios de cantidad o estado del inventario.Vaciar los productos solo cuando cambie el estado del inventario.Vaciar la etiqueta %sVacía las entradas de caché de LiteSpeed creadas por este pluginVacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS, únicas de CSS y de LQIPVaciar esta páginaVaciar la URL %s¡Se ha vaciado todo!Vaciado de todas las cachés correctamente.¡Se ha vaciado el blog!¡Purgado!%1$s enviado al servidor cloud, %2$s aceptado.QUIC.cloudEstadísticas de uso del servicio QUIC.cloudLas cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.Leer la documentación de LiteSpeedRecomendado para generar el token desde la plantilla "WordPress" del token de la API de Cloudflare.Valor recomendado: 28800 segundos (8 horas).Volver a detectarNodo detectado nuevamenteID de base de datos RedisActualizar mapa de rastreadoresRefrescar la caché de Gravatar por cron.Actualizar el tiempo de carga de la páginaActualizar la puntuación de la páginaCuota diaria restanteElimina la url de la CDNEliminar Google FontsEliminar las etiquetas NoscriptEliminar copias de seguridad del orginalEliminar copias de seguridad de las imágenes originalesEliminar query stringsEliminar cadenas de consulta de recursos estáticosEliminar emojis de WordPressEliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.Eliminar la simulación de la cookieEliminar de la lista negraEliminar cadenas de consulta de recursos estáticos internos.CSS sin uso eliminado para los usuariosSe han eliminado las copias de seguridad correctamente.Reemplaza %1$s con %2$s.InformePeticiones en colaRe-escanear nuevas miniaturas%d imágenes reexploradas correctamente.Reexploración correcta.Restablecer todos los ajustesRestablecer ajustesReestablecer posiciónRestablecimiento realizado con éxitoReestablecer toda la caché opcodeDatos de optimización restablecidos correctamente.Los recursos listados aquí se copiarán y reemplazarán con URL locales.Marcador de posición adaptableColor del marcador de posición adaptableMarcador de posición SVG adaptableLos marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.Restaurar los ajustesRestaurar desde una copia de seguridadSe han restaurado el respaldo de los ajustes %1$sArchivo original restaurado con éxito.Edad máxima de las revisionesNúmero máximo de revisionesLas revisiones más recientes se guardarán cuando se limpien las revisiones.Excluir perfilesSimulación de rolEjecutar manualmente la cola %sFrecuencia de ejecuciónEjecutar cola manualmenteLa frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.Hora de ejecución para el rastreador anteriorEn cursoGuardar cambiosGuarda datos transitorios en la base de datos cuando %1$s es %2$s.GuardadoFalló el guardado de la opción. IPv4 es solo para %s.Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.Hora de vaciado programadoURLs de vaciado programadoSelecciona "Todo" si hay widgets dinámicos enlazados a entradas en páginas distintas de la página de inicioSelecciona debajo las opciones de "Vaciar por".Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.Seleccionar que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadasLos perfiles seleccionados serán excluidos de todas las optimizaciones.Los perfiles seleccionados serán excluidos de la caché.Enviar solicitud de optimizaciónEnviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.Enviar a LiteSpeedTipos de contenido de caché de CCSS distintosDistintas URIs de caché CCSSSepara archivos CSS críticos al generar las rutas que contengan estas cadenas.Servir contenido rancioOfrece una copia de la caché separada para los visitantes móviles.Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.IP del servidorLímite de carga del servidorVariable(s) del servidor %s disponible para omitir este ajuste.Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de layout y mejorar CLS (una métrica de Core Web Vitals).Establece esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.Establécelo en %1$s para bloquear heartbeat en %2$s.Configurar cabeceras personalizadasAjustesAcortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.Mostrar estado del CrawlerMejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$sLista de SitemapSitemap TotalEl mapa del sitio se limpió con éxitoMapa del sitio creado con éxito: %d elementosTamañoTamaño de la lista en la cola de espera del cronMas pequeño queUna o más imágenes optimizadas han caducado y han sido borradas.Comentarios spamEspecifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.Especifica un SVG que se utilizará como marcador de posición al generar localmente.Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos Gravatar.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.Especifica por cuanto tiempo, en segundos, se cachean los feeds.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.Especifica cuánto tiempo, en segundos, se almacena la página de inicio.Especifica el intervalo de heartbeat para %s en segundos.Especifica el tamaño máximo del archivo de registro.Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.Especifica la contraseña utilizada al conectar.Especifica la calidad al generar el LQIP.Especifica el color del marcador de posición SVG adaptable.Especifica la hora para vaciar la lista "%s".Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.Preajustes estándarSe inició el rastreo asíncronoSe inició la solicitud de optimización asíncrona de imágenesEnlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.EstadoDeja de cargar emojis de WordPress.org. En su lugar se mostrará el emoji predeterminado del navegador.Optimización de almacenamiento.Almacena Gravatar localmente.Almacenar datos transitoriosRastreado correctamenteSumario¡Por supuesto, me encantará valorarlo!IntercambiarVolver a utilizar imágenes optimizadas en tu webCambió las imágenes con éxito.Cambio correcto a archivo optimizado.Asignación de créditos correctamente sincronizada con el servidor cloud.Sincronizar los datos de la nubeInformación del sistemaTTLTablaEtiquetaOmite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.Archivo de término (incluye categoría, etiqueta y taxonomía)Probando¡Gracias por usar el plugin de caché LiteSpeed!El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción "%s".Las URLs serán comparadas con la variable REQUEST_URI del servidor.El servicio de viewport de imágenes detecta qué imágenes aparecen antes de hacer scroll y las excluye de la carga diferida.Los noces anteriores se convertirán en ESI automáticamente.El tiempo, en segundos, durante el cual los archivos serán almacenados en la caché del navegador antes de expirar.La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.La validación de la llamada a tu dominio falló debido a la falta de coincidencia.La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores.La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores. Código de respuesta:La cookie aquí establecida será usada por esta instalación de WordPress.La función de rastreador no está habilitada en el servidor LiteSpeed. Consulta al administrador de tu servidor o al proveedor de hosting.El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio.El servidor actual está bajo una gran carga.La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.La cookie de acceso por defecto es %s.La clave de dominio no es correcta. Por favor, intenta sincronizar tu clave de dominio nuevamente.El informe de entorno contiene información detallada sobre la configuración de WordPress.Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.La lista de imágenes está vacía.El último archivo de datos esLa lista se fusionará con los nonces predefinidos en tu archivo de datos local.La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.El ajuste de administrador de red puede ser modificado aquí.La siguiente indexación de sitemap completa empezará a lasLa cola se procesa de forma asíncrona. Puede llevar un tiempo.El selector debe existir en el CSS. Las clases principales en HTML no funcionarán.El servidor determinará si el usuario está conectado en base a la existencia de esta cookie.El sitio no tiene un alias válido en QUIC.cloud.El sitio no está registrado en QUIC.cloud.Y otro WordPress instalado (NO MULTISITIO) en %sHay un WordPress instalado para %s.Hay una cola de procedimiento que no se ha retirado todavía.La cola aún no ha sido recuperada. Información de la cola: %s.Estas imágenes no generarán LQIP.Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.Esto puede mejorar la velocidad de carga de la página.Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.Esto permite que la pantalla inicial de imágenes de la página se muestre completamente sin demora.Esto es irreversible.Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.Este preajuste de bajo riesgo introduce optimizaciones básicas de mejora de la velocidad de página y experiencia de usuario. Adecuado para principiantes entusiastas.Esto puede causar una alta carga en el servidor.Este mensaje indica que el plugin fue instalado por el administrador del servidor.Este preajuste sin riesgos es apropiado para todas las webs. Es bueno para nuevos usuarios, webs sencillas o desarrollos orientados a caché.Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas.Esta opción permite la máxima optimización para los visitantes del modo de invitado.Esta opción se omite porque la opción %1$s es %2$s.Esta opción se omite debido a la opción %s.Esta opción puede resultar en un error de JS o un problema de layout en las páginas del frontend con ciertos temas/plugins.Esta opción omitirá automáticamente la opción %s.Esta opción eliminará todas las etiquetas %s de HTML.Este preajuste es casi seguro que requerirá pruebas y exclusiones de algo de CSS, JS y carga diferida de imágenes. Presta especial atención a los logotipos, o a imágenes de carrusel basadas en HTML.Este preajuste es bueno para la mayoría de webs, y es raro que provoque conflictos. Cualquier conflicto de CSS o JS puede solucionarse con las herramientas de "Optimización de página > Retoques"Este preajuste puede que funcione tal cual en algunas webs, ¡pero asegúrate de hacer pruebas! Puede que sean necesarias algunas exclusiones de CSS y JS en "Optimización de página > Retoques"Este proceso es automático¡Este ajuste es %1$s para determinadas solicitudes que cumplen los requisitos debido a %2$s!Esta configuración se sobrescribe con la configuración de redEste ajuste es sobrescrita por la constante %s de PHPEsta ajuste es sobrescrito por los ajuste del sitio primarioEste ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.Este ajuste editará el archivo .htaccess.¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché.Esto vaciará solo la página principalEsto solo vaciará las páginasEsto también añadirá una preconexión a Google Fonts para establecer una conexión antes.Se ha a a hacer una copia de seguridad de tus ajustes actuales y reemplazarlos con los de los preajustes %1$s. ¿Quieres continuar?Esto eliminará TODO dentro de la caché.Esto borrará todos los archivos Gravatar almacenados en cachéEsto borrará todos los archivos generados de CSS críticoEsto borrará todos los archivos generados de marcador de posición de imágenes LQIPEsto borrará todos los archivos CSS únicos generadosEsto borrará todos los recursos localizadosEsto desactivará LSCache y todas las características de optimización con propósitos de depuración.Esto desactivará la página de ajustes en todos los subsitios.Esto eliminará el CSS no utilizado en cada página del archivo combinado.Esto habilitará el cron del rastreador.Esto exportará todas las configuraciones actuales de LiteSpeed Cache y las guardará como un archivo.Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.Esto aumentará el tamaño de los archivos optimizados.Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.Esto vaciará solo las entradas CSS/JS minimizadas o combinadasEsto restablecerá todos los ajustes a su valores predeterminados.Esto restaurará la copia de seguridad de los ajustes creada %1$s antes de aplicar el preajuste %2$s. Cualquier cambio realizado desde entonces se perderá. ¿Quieres continuar?Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.Para coincidencias exactas, añadir %s al final de la URL.Para habilitar la siguiente funcionalidad, activa la API de Cloudflare en la configuración del CDN.Para excluir %1$s, insertar %2$s.Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de grupos de imágenes permitidas en una sola petición es limitada.Para que coincida con el principio, añade %s al comienzo del artículo.Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.Para evitar llenar el disco, esta configuración debe estar APAGADA cuando todo funciona.Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.Para probar el carrito, visita la <a %s>FAQ</a>.Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.HerramientaHerramientasTotalReducción totalUso totalTotal de imágenes optimizadas en este mesTrackbacks/pingbacksComentarios enviados a la papeleraEntradas enviadas a la papeleraProbar versión de GitHubAjustarConfiguración de ajustesAPAGARENCENDERActívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.Actívalo para controlar heartbeat en el editor.Actívalo para controlar heartbeat en el escritorio.Enciéndelo para controlar heartbeat en el frontend.Activar la actualización automáticaActiva esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.Vista previa del TuitTuitea estoExcluir archivo del CSS sin uso e incrustarUCCS integradoLista blanca del selector de CSS sin usoExclusiones UCSS de la URIURL excluidasLas rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.URLBuscar URLLista de URL en cola %s esperando el cronNo ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal, debido a un conflicto potencial con la CDN.No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal.CSS únicoError desconocidoActualizar %sActualizarActualizado con éxito.UsoUsa %1$s en %2$s para indicar que esta cookie no ha sido establecida.Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s.Utiliza %1$s para saltarte la comprobación de dimensión en imágenes remotas cuando la %2$s esté ACTIVA.Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL.Usar la funcionalidad de la API %s.Usar mapeo de CDNUsar ajuste de administrador de redUsar archivos optimizadosUsar archivos originalesUsar configuración del sitio principalUsa el servicio generador de QUIC.cloud LQIP (Low Quality Image Placeholder) para obtener vistas previas de la imagen mientras se carga.Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante.Usa el servicio en línea QUIC.cloud para generar un CSS único.Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente las Google Fonts dejando el resto del CSS intacto.Utiliza un preajuste oficial diseñado por LiteSpeed para configurar tu sitio en un clic. Pruebe el cacheo esencial sin riesgos, la optimización extrema o algo intermedio.Usa la funcionalidad de la caché de objetos externos.Utilizar conexiones keep-alive para acelerar operaciones de la caché.Usar el último commit de desarrollo de GitHubUtiliza el último commit Dev/Master de GitHubUsar el último commit maestro de GitHubUsar la última versión de WordPressUsar imágenes originales (no optimizadas) en tu webUsa el formato %1$s o %2$s (el elemento es opcional).Utiliza esta sección para cambiar la versión del plugin. Para probar un commit de GitHub, introduce la URL del commit en el campo de abajo.Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals).Nombre de usuarioUsando la versión optimizada del archivo. VPIRango de valoresLas variables %s serán reemplazadas con el color de fondo configurado.Las variables %s serán reemplazadas con las propiedades de imagen correspondientes.Variar cookiesGrupos de variaciónVariante según el minicarritoVer detalles de la versión %2$s de %1$sVer el archivo ".htaccess"Ver sitio sin cachéVer sitio sin optimizarImagen de la vistaGeneración del viewport de la imagenImágenes de la vistaCron de imágenes de la vistaVisita el foro de soporte de LSCWPVisitar el sitio sin la sesión iniciada.ADVERTENCIAADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.En esperaEsperando a ser rastreado¿Quieres conectar con otros usuarios de LiteSpeed?Ver estado del CrawlerEstamos bien. Ninguna tabla usa el motor MyISAM.Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.Archivo WebP reducido en %1$s (%2$s)WebP guardado %sBienvenido a LiteSpeed¿Qué es un grupo?¿Qué es un grupo de imágenes?Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas.Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.Cuando usas la carga diferida, se retrasa la carga de todas las imágenes de la página.¿Quién debería usar este preajuste?El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.Compatibilidad con el comodín %s.Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.Con el CDN de QUIC.cloud habilitado, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.WooCommerceAjustes de WooCommerceControl de la calidad de imagen de WordPressEl intervalo válido de WordPress es %s segundos.WpW: Caché privada o caché públicaArchivo anualPuedes simplemente teclear parte de dominio.Puedes listar las cookies de terceros que varían aquí.Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles.Solo puedes solicitar un máximo de %s imágenes a la vez.Puedes convertir shortcodes en bloques ESI.Puedes usar este código %1$s en %2$s para especificar la ruta al archivo ".htaccess".No puedes eliminar esta zona de DNS porque aún está en uso. Por favor, actualiza los servidores de nombers, luego tratar de borrar de nuevo esta zona, en caso contrario tu sitio será inaccesible.Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.¡Acabas de desbloquear una promoción de QUIC.cloud!Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado.Necesitas activar %s para obtener el máximo resultado.¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!El hostname o dirección IP de tu %s.Tu clave de la API/token se usa para acceder a las API de %s.Tu dirección de email en %s.Tu IPTu solicitud está a la espera de aprobación.Se le ha prohibido a tu dominio usar nuestros servicios debido a una violación anterior de la política.Tu domain_key ha sido bloqueada temporalmente para evitar abusos. Puedes ponerte en contacto con el servicio de asistencia de QUIC.cloud para obtener más información.La IP de tu servidorCero, ocategoríascookiesactualmente establecido en %shttps://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationahora mismopíxelesproporcione más información aquí para ayudar al equipo de LiteSpeed con la depuración.ahora mismoejecutandosegundosetiquetasla IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor.desconocidouser agents# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in Spanish (Spain)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2025-08-25 11:14:58+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/4.0.1\n"
"Language: es\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/dash/dashboard.tpl.php:425 tpl/dash/dashboard.tpl.php:843
msgid "QUIC.cloud CDN"
msgstr "CDN de QUIC.cloud"

#: tpl/page_optm/settings_tuning_css.tpl.php:38
msgid "Predefined list will also be combined with the above settings"
msgstr "La lista predefinida también se combinará con los ajustes anteriores"

#: tpl/page_optm/settings_tuning_css.tpl.php:17
msgid "Tuning CSS Settings"
msgstr "Ajustar la configuración de CSS"

#: tpl/page_optm/settings_tuning.tpl.php:71
#: tpl/page_optm/settings_tuning.tpl.php:92
msgid "Predefined list will also be combined with the above settings."
msgstr "La lista predefinida también se combinará con los ajustes anteriores."

#: tpl/page_optm/settings_css.tpl.php:116
#: tpl/page_optm/settings_css.tpl.php:253
#: tpl/page_optm/settings_media.tpl.php:199
#: tpl/page_optm/settings_vpi.tpl.php:66
msgid "Clear"
msgstr "Vaciar"

#: tpl/inc/show_error_cookie.php:21
msgid "If not, please verify the setting in the %sAdvanced tab%s."
msgstr "Si no es así, comprueba la configuración en la %spestaña Avanzado%s."

#: tpl/inc/modal.deactivation.php:77
msgid "Close popup"
msgstr "Cerrar ventana emergente"

#: tpl/inc/modal.deactivation.php:76
msgid "Deactivate plugin"
msgstr "Desactivar el plugin"

#: tpl/inc/modal.deactivation.php:68
msgid "If you have used Image Optimization, please %sDestroy All Optimization Data%s first. NOTE: this does not remove your optimized images."
msgstr "Si has utilizado la Optimización de Imágenes, por favor %sDestruye primero todos los datos de optimización%s. NOTA: esto no elimina tus imágenes optimizadas."

#: tpl/inc/modal.deactivation.php:60
msgid "On uninstall, all plugin settings will be deleted."
msgstr "Al desinstalar, se eliminarán todos los ajustes del plugin."

#: tpl/inc/modal.deactivation.php:47
msgid "Why are you deactivating the plugin?"
msgstr "¿Por qué desactivas el plugin?"

#: tpl/inc/modal.deactivation.php:38
msgid "Other"
msgstr "Otros"

#: tpl/inc/modal.deactivation.php:33
msgid "Plugin is too complicated"
msgstr "El plugin es demasiado complicado"

#: tpl/inc/modal.deactivation.php:28
msgid "Site performance is worse"
msgstr "El rendimiento del sitio es peor"

#: tpl/inc/modal.deactivation.php:22
msgid "The deactivation is temporary"
msgstr "La desactivación es temporal"

#: tpl/inc/modal.deactivation.php:16
msgid "Deactivate LiteSpeed Cache"
msgstr "Desactivar la caché de LiteSpeed"

#: tpl/general/online.tpl.php:138
msgid "CDN - Disabled"
msgstr "CDN - Desactivado"

#: tpl/general/online.tpl.php:136
msgid "CDN - Enabled"
msgstr "CDN - Activado"

#: tpl/general/online.tpl.php:45
msgid "Connected Date:"
msgstr "Fecha de conexión:"

#: tpl/general/online.tpl.php:43
msgid "Node:"
msgstr "Nodo:"

#: tpl/general/online.tpl.php:41
msgid "Service:"
msgstr "Servicio:"

#: tpl/db_optm/manage.tpl.php:180
msgid "Autoload top list"
msgstr "Cargar automáticamente la lista principal"

#: tpl/db_optm/manage.tpl.php:176
msgid "Autoload entries"
msgstr "Cargar entradas automáticamente"

#: tpl/db_optm/manage.tpl.php:175
msgid "Autoload size"
msgstr "Tamaño de carga automática"

#: tpl/dash/network_dash.tpl.php:109
msgid "This Month Usage: %s"
msgstr "Uso de este mes: %s"

#: tpl/dash/network_dash.tpl.php:28
msgid "Usage Statistics: %s"
msgstr "Estadísticas de uso: %s"

#: tpl/dash/dashboard.tpl.php:869
msgid "more"
msgstr "más"

#: tpl/dash/dashboard.tpl.php:868
msgid "Globally fast TTFB, easy setup, and %s!"
msgstr "¡TTFB globalmente rápido, fácil configuración y %s!"

#: tpl/dash/dashboard.tpl.php:656 tpl/dash/dashboard.tpl.php:700
#: tpl/dash/dashboard.tpl.php:744 tpl/dash/dashboard.tpl.php:788
msgid "Last requested: %s"
msgstr "Última solicitud: %s"

#: tpl/dash/dashboard.tpl.php:630 tpl/dash/dashboard.tpl.php:674
#: tpl/dash/dashboard.tpl.php:718 tpl/dash/dashboard.tpl.php:762
msgid "Last generated: %s"
msgstr "Última generación: %s"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:502
msgid "Requested: %s ago"
msgstr "Solicitado: hace %s"

#: tpl/dash/dashboard.tpl.php:423
msgid "LiteSpeed Web ADC"
msgstr "LiteSpeed Web ADC"

#: tpl/dash/dashboard.tpl.php:421
msgid "OpenLiteSpeed Web Server"
msgstr "Servidor web OpenLiteSpeed"

#: tpl/dash/dashboard.tpl.php:419
msgid "LiteSpeed Web Server"
msgstr "Servidor web LiteSpeed"

#: tpl/dash/dashboard.tpl.php:271
msgid "PAYG used this month: %s. PAYG balance and usage not included in above quota calculation."
msgstr "PAYG utilizado este mes: %s. El saldo y el uso de PAYG no están incluidos en el cálculo de cuota anterior."

#: tpl/dash/dashboard.tpl.php:112 tpl/dash/dashboard.tpl.php:831
msgid "Last crawled:"
msgstr "Último rastreo:"

#: tpl/dash/dashboard.tpl.php:111 tpl/dash/dashboard.tpl.php:830
msgid "%1$s %2$d item(s)"
msgstr "%1$s %2$d elemento(s)"

#: tpl/crawler/summary.tpl.php:288
msgid "Start watching..."
msgstr "Empieza a ver..."

#: tpl/crawler/summary.tpl.php:254
msgid "Crawlers cannot run concurrently. If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "Los rastreadores no pueden ejecutarse simultáneamente. Si tanto el cron como una ejecución manual se inician al mismo tiempo, el primero que se inicie tendrá prioridad."

#: tpl/crawler/summary.tpl.php:230
msgid "Position: "
msgstr "Posición: "

#: tpl/crawler/summary.tpl.php:133
msgid "%d item(s)"
msgstr "%d elemento(s)"

#: tpl/crawler/summary.tpl.php:130
msgid "Last crawled"
msgstr "Último rastreo"

#: tpl/cdn/qc.tpl.php:73
msgid "Serve your visitors fast"
msgstr "Sirve rápido a tus visitantes"

#: tpl/cdn/other.tpl.php:104
msgid "This will affect all tags containing attributes: %s."
msgstr "Esto afectará a todas las etiquetas que contengan atributos: %s."

#: tpl/cdn/cf.tpl.php:152
msgid "%1$sLearn More%2$s"
msgstr "%1$sAprender más%2$s"

#: tpl/cdn/cf.tpl.php:39
msgid "Get it from %s."
msgstr "Obtenerlo de %s."

#: src/purge.cls.php:418
msgid "Reset the OPcache failed."
msgstr "Error al restablecer el OPcache."

#: src/purge.cls.php:395
msgid "OPcache is not enabled."
msgstr "OPcache no está activada."

#: src/gui.cls.php:681
msgid "Enable All Features"
msgstr "Activar todas las funciones"

#: tpl/toolbox/purge.tpl.php:215
msgid "e.g. Use %1$s or %2$s."
msgstr "p.ej. utiliza %1$s o %2$s."

#: tpl/toolbox/log_viewer.tpl.php:64 tpl/toolbox/report.tpl.php:62
msgid "Click to copy"
msgstr "Haz clic para copiar"

#: tpl/inc/admin_footer.php:17
msgid "Rate %1$s on %2$s"
msgstr "Puntúa %1$s en %2$s"

#: tpl/cdn/cf.tpl.php:74
msgid "Clear %s cache when \"Purge All\" is run."
msgstr "Limpiar la caché de %s cuando se ejecuta «Purgar todo»."

#: tpl/cache/settings_inc.login_cookie.tpl.php:102
msgid "SYNTAX: alphanumeric and \"_\". No spaces and case sensitive."
msgstr "SINTAXIS: alfanumérica y «_». Sin espacios y con distinción entre mayúsculas y minúsculas."

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "SYNTAX: alphanumeric and \"_\". No spaces and case sensitive. MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "SINTAXIS: alfanumérica y «_». Sin espacios y con distinción entre mayúsculas y minúsculas. DEBE SER ÚNICA Y DISTINTA DE OTRAS APLICACIONES WEB."

#: tpl/banner/score.php:122
msgid "Submit a ticket"
msgstr "Enviar un tique"

#: src/lang.cls.php:246
msgid "Clear Cloudflare cache"
msgstr "Vaciar la caché de Cloudflare"

#: src/cloud.cls.php:164 src/cloud.cls.php:244
msgid "QUIC.cloud's access to your WP REST API seems to be blocked."
msgstr "El acceso de QUIC.cloud a tu API REST de WP parece estar bloqueado."

#: tpl/toolbox/log_viewer.tpl.php:65
msgid "Copy Log"
msgstr "Copiar registro"

#: tpl/page_optm/settings_tuning_css.tpl.php:149
msgid "Selectors must exist in the CSS. Parent classes in the HTML will not work."
msgstr "Los selectores deben existir en el CSS. Las clases principales en el HTML no funcionarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:142
msgid "List the CSS selectors whose styles should always be included in CCSS."
msgstr "Lista los selectores CSS cuyos estilos siempre deben incluirse en CCSS."

#: tpl/page_optm/settings_tuning_css.tpl.php:67
msgid "List the CSS selectors whose styles should always be included in UCSS."
msgstr "Lista los selectores CSS cuyos estilos siempre deben incluirse en UCSS."

#: tpl/img_optm/summary.tpl.php:77 tpl/page_optm/settings_css.tpl.php:154
#: tpl/page_optm/settings_css.tpl.php:291
#: tpl/page_optm/settings_vpi.tpl.php:101
msgid "Available after %d second(s)"
msgstr "Disponible después de %d segundo(s)"

#: tpl/dash/dashboard.tpl.php:346
msgid "Enable QUIC.cloud Services"
msgstr "Activar los servicios de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:193
msgid "The features below are provided by %s"
msgstr "Las siguientes características son proporcionadas por %s"

#: tpl/dash/dashboard.tpl.php:162
msgid "Do not show this again"
msgstr "No volver a mostrar esto"

#: tpl/dash/dashboard.tpl.php:153
msgid "Free monthly quota available. Can also be used anonymously (no email required)."
msgstr "Cuota mensual gratuita disponible. También se puede usar de forma anónima (no se requiere correo electrónico)."

#: tpl/cdn/cf.tpl.php:17
msgid "Cloudflare Settings"
msgstr "Ajustes de Cloudflare"

#: src/tool.cls.php:36 src/tool.cls.php:47
msgid "Failed to detect IP"
msgstr "No se pudo detectar la IP"

#: src/lang.cls.php:171
msgid "CCSS Selector Allowlist"
msgstr "Lista de permitidos del selector del CCSS"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "Outputs to a series of files in the %s directory."
msgstr "Da salida en una serie de archivos en el directorio %s."

#: tpl/toolbox/report.tpl.php:87
msgid "Attach PHP info to report. Check this box to insert relevant data from %s."
msgstr "Adjuntar información PHP al informe. Marca esta casilla para insertar datos relevantes de %s."

#: tpl/toolbox/report.tpl.php:63
msgid "Last Report Date"
msgstr "Fecha del último informe"

#: tpl/toolbox/report.tpl.php:62
msgid "Last Report Number"
msgstr "Número del último informe"

#: tpl/toolbox/report.tpl.php:40
msgid "Regenerate and Send a New Report"
msgstr "Regenerar y enviar un nuevo informe"

#: tpl/img_optm/summary.tpl.php:372
msgid "This will reset the %1$s. If you changed WebP/AVIF settings and want to generate %2$s for the previously optimized images, use this action."
msgstr "Esto restablecerá los %1$s. Si cambiaste los ajustes de WebP/AVIF y quieres generar %2$s para las imágenes previamente optimizadas, utiliza esta acción."

#: tpl/img_optm/settings.media_webp.tpl.php:34 tpl/img_optm/summary.tpl.php:368
msgid "Soft Reset Optimization Counter"
msgstr "Restablecimiento suave del contador de optimización"

#: tpl/img_optm/settings.media_webp.tpl.php:34
msgid "When switching formats, please %1$s or %2$s to apply this new choice to previously optimized images."
msgstr "Al cambiar de formato, utiliza %1$s o %2$s para aplicar esta nueva opción a las imágenes previamente optimizadas."

#: tpl/img_optm/settings.media_webp.tpl.php:31
msgid "%1$s is a %2$s paid feature."
msgstr "%1$s es una característica de pago de %2$s."

#: tpl/general/online.tpl.php:160
msgid "Remove QUIC.cloud integration from this site. Note: QUIC.cloud data will be preserved so you can re-enable services at any time. If you want to fully remove your site from QUIC.cloud, delete the domain through the QUIC.cloud Dashboard first."
msgstr "Quita la integración de QUIC.cloud de este sitio. Nota: Los datos de QUIC.cloud se conservarán para que puedas reactivar los servicios en cualquier momento. Si quieres borrar completamente tu sitio de QUIC.cloud, primero borra el dominio a través del escritorio de QUIC.cloud."

#: tpl/general/online.tpl.php:159
msgid "Disconnect from QUIC.cloud"
msgstr "Desconectar de QUIC.cloud"

#: tpl/general/online.tpl.php:159
msgid "Are you sure you want to disconnect from QUIC.cloud? This will not remove any data from the QUIC.cloud dashboard."
msgstr "¿Seguro que quieres desconectar de QUIC.cloud? Esto no eliminará ningún dato del escritorio de QUIC.cloud."

#: tpl/general/online.tpl.php:150
msgid "CDN - not available for anonymous users"
msgstr "CDN - no disponible para usuarios anónimos"

#: tpl/general/online.tpl.php:144
msgid "Your site is connected and using QUIC.cloud Online Services as an <strong>anonymous user</strong>. The CDN function and certain features of optimization services are not available for anonymous users. Link to QUIC.cloud to use the CDN and all available Online Services features."
msgstr "Tu sitio está conectado y utiliza los servicios en línea de QUIC.cloud como <strong>usuario anónimo</strong>. La función CDN y ciertas funciones de los servicios de optimización no están disponibles para usuarios anónimos. Conéctate a QUIC.cloud para usar la CDN y todas las funciones de los servicios en línea disponibles."

#: tpl/general/online.tpl.php:143
msgid "QUIC.cloud Integration Enabled with limitations"
msgstr "Integración de QUIC.cloud activada con limitaciones"

#: tpl/general/online.tpl.php:126
msgid "Your site is connected and ready to use QUIC.cloud Online Services."
msgstr "Tu sitio está conectado y listo para usar los servicios en línea de QUIC.cloud."

#: tpl/general/online.tpl.php:125
msgid "QUIC.cloud Integration Enabled"
msgstr "Integración de QUIC.cloud activada"

#: tpl/general/online.tpl.php:114
msgid "In order to use most QUIC.cloud services, you need quota. QUIC.cloud gives you free quota every month, but if you need more, you can purchase it."
msgstr "Para utilizar la mayoría de los servicios de QUIC.cloud, necesitas una cuota. QUIC.cloud te ofrece cuota gratuita cada mes, pero si necesitas más, puedes comprarla."

#: tpl/general/online.tpl.php:105
msgid "Offers optional <strong>built-in DNS service</strong> to simplify CDN onboarding."
msgstr "Ofrece un <strong>servicio DNS integrado</strong> opcional para simplificar la puesta en marcha de CDN."

#: tpl/general/online.tpl.php:104
msgid "Provides <strong>security at the CDN level</strong>, protecting your server from attack."
msgstr "Proporciona <strong>seguridad a nivel de CDN</strong>, protegiendo tu servidor de ataques."

#: tpl/general/online.tpl.php:103
msgid "Delivers global coverage with a growing <strong>network of 80+ PoPs</strong>."
msgstr "Ofrece cobertura global con una <strong>red en crecimiento de más de 80 PoP</strong>."

#: tpl/general/online.tpl.php:102
msgid "Caches your entire site, including dynamic content and <strong>ESI blocks</strong>."
msgstr "Almacena en caché todo tu sitio, incluido el contenido dinámico y los <strong>bloques ESI</strong>."

#: tpl/general/online.tpl.php:98
msgid "Content Delivery Network"
msgstr "Red de entrega de contenidos"

#: tpl/general/online.tpl.php:89
msgid "<strong>Viewport Images (VPI)</strong> provides a well-polished fully-loaded view above the fold."
msgstr "<strong>Viewport Images (VPI)</strong> proporciona una vista completa y bien pulida antes de desplazarse."

#: tpl/general/online.tpl.php:88
msgid "<strong>Low Quality Image Placeholder (LQIP)</strong> gives your imagery a more pleasing look as it lazy loads."
msgstr "El <strong>marcador de posición de imagen de baja calidad (LQIP)</strong> le da a tus imágenes un aspecto más agradable a medida que se cargan de forma diferida."

#: tpl/general/online.tpl.php:87
msgid "<strong>Unique CSS (UCSS)</strong> removes unused style definitions for a speedier page load overall."
msgstr "<strong>CSS único (UCSS)</strong> elimina las definiciones de estilo no utilizadas para lograr una carga de página más rápida en general."

#: tpl/general/online.tpl.php:86
msgid "<strong>Critical CSS (CCSS)</strong> loads visible above-the-fold content faster and with full styling."
msgstr "<strong>CSS crítico (CCSS)</strong> carga el contenido visible antes de desplazarse más rápido y con estilo completo."

#: tpl/general/online.tpl.php:84
msgid "QUIC.cloud's Page Optimization services address CSS bloat, and improve the user experience during page load, which can lead to improved page speed scores."
msgstr "Los servicios de optimización de páginas de QUIC.cloud abordan el problema del inflado de CSS y mejoran la experiencia del usuario durante la carga de la página, lo que puede generar mejores puntuaciones de velocidad de la página."

#: tpl/general/online.tpl.php:81
msgid "Processing for PNG, JPG, and WebP image formats is free. AVIF is available for a fee."
msgstr "El procesamiento de imágenes en formato PNG, JPG y WebP es gratuito. El formato AVIF tiene un coste."

#: tpl/general/online.tpl.php:79
msgid "Optionally creates next-generation WebP or AVIF image files."
msgstr "Crea opcionalmente archivos de imagen WebP o AVIF de próxima generación."

#: tpl/general/online.tpl.php:78
msgid "Processes your uploaded PNG and JPG images to produce smaller versions that don't sacrifice quality."
msgstr "Procesa las imágenes PNG y JPG cargadas para producir versiones más pequeñas que no sacrifican la calidad."

#: tpl/general/online.tpl.php:76
msgid "QUIC.cloud's Image Optimization service does the following:"
msgstr "El servicio de optimización de imágenes de QUIC.cloud hace lo siguiente:"

#: tpl/general/online.tpl.php:72
msgid "<strong>Page Optimization</strong> streamlines page styles and visual elements for faster loading."
msgstr "La <strong>optimización de página</strong> agiliza los estilos de página y los elementos visuales para una carga más rápida."

#: tpl/general/online.tpl.php:71
msgid "<strong>Image Optimization</strong> gives you smaller image file sizes that transmit faster."
msgstr "La <strong>optimización de imágenes</strong> te ofrece archivos de imagen de menor tamaño que se transmiten más rápido."

#: tpl/general/online.tpl.php:69
msgid "QUIC.cloud's Online Services improve your site in the following ways:"
msgstr "Los servicios en línea de QUIC.cloud mejoran su sitio de las siguientes maneras:"

#: tpl/general/online.tpl.php:60
msgid "Speed up your WordPress site even further with QUIC.cloud Online Services and CDN."
msgstr "Acelera aún más tu sitio de WordPress con los servicios en línea y CDN de QUIC.cloud."

#: tpl/general/online.tpl.php:59
msgid "QUIC.cloud Integration Disabled"
msgstr "Integración de QUIC.cloud desactivada"

#: tpl/general/online.tpl.php:22
msgid "QUIC.cloud Online Services"
msgstr "Servicios en línea de QUIC.cloud"

#: tpl/general/entry.tpl.php:16 tpl/general/online.tpl.php:68
msgid "Online Services"
msgstr "Servicios en línea"

#: tpl/db_optm/manage.tpl.php:186
msgid "Autoload"
msgstr "Carga automática"

#: tpl/dash/dashboard.tpl.php:886
msgid "Refresh QUIC.cloud status"
msgstr "Actualizar el estado de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:510
msgid "Refresh"
msgstr "Actualizar"

#: tpl/dash/dashboard.tpl.php:418
msgid "You must be using one of the following products in order to measure Page Load Time:"
msgstr "Debes usar uno de los siguientes productos para medir el tiempo de carga de la página:"

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh Usage"
msgstr "Actualizar el uso"

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/dashboard.tpl.php:907
msgid "News"
msgstr "Noticias"

#: tpl/crawler/summary.tpl.php:28
msgid "You need to set the %s in Settings first before using the crawler"
msgstr "Debes configurar %s en Ajustes antes de usar el rastreador"

#: tpl/crawler/settings.tpl.php:136
msgid "You must set %1$s to %2$s before using this feature."
msgstr "Debes configurar %1$s en %2$s antes de usar esta característica."

#: tpl/crawler/settings.tpl.php:116 tpl/crawler/summary.tpl.php:211
msgid "You must set %s before using this feature."
msgstr "Debes configurar %s antes de usar esta característica."

#: tpl/cdn/qc.tpl.php:139 tpl/cdn/qc.tpl.php:146
msgid "My QUIC.cloud Dashboard"
msgstr "Mi escritorio de QUIC.cloud"

#: tpl/cdn/qc.tpl.php:130
msgid "You are currently using services as an anonymous user. To manage your QUIC.cloud options, use the button below to create an account and link to the QUIC.cloud Dashboard."
msgstr "Actualmente estás utilizando los servicios como usuario anónimo. Para gestionar tus opciones de QUIC.cloud, utiliza el botón de abajo para crear una cuenta y acceder al escritorio de QUIC.cloud."

#: tpl/cdn/qc.tpl.php:123 tpl/cdn/qc.tpl.php:143
msgid "To manage your QUIC.cloud options, go to QUIC.cloud Dashboard."
msgstr "Para gestionar tus opciones de QUIC.cloud, ve al escritorio de QUIC.cloud."

#: tpl/cdn/qc.tpl.php:119
msgid "To manage your QUIC.cloud options, please contact your hosting provider."
msgstr "Para gestionar tus opciones de QUIC.cloud, comunícate con tu proveedor de alojamiento."

#: tpl/cdn/qc.tpl.php:117
msgid "To manage your QUIC.cloud options, go to your hosting provider's portal."
msgstr "Para gestionar tus opciones de QUIC.cloud, ve al portal de tu proveedor de alojamiento."

#: tpl/cdn/qc.tpl.php:96
msgid "QUIC.cloud CDN Options"
msgstr "Opciones de CDN de QUIC.cloud"

#. translators: %s: Link tags
#: tpl/cdn/qc.tpl.php:79
msgid "Best available WordPress performance, globally fast TTFB, easy setup, and %smore%s!"
msgstr "¡El mejor rendimiento disponible para WordPress, TTFB globalmente rápido, fácil configuración y %smucho más%s!"

#: tpl/cdn/qc.tpl.php:73
msgid "no matter where they live."
msgstr "no importa dónde vivan."

#: tpl/cdn/qc.tpl.php:71
msgid "Content Delivery Network Service"
msgstr "Servicio de red de entrega de contenido"

#: tpl/cdn/qc.tpl.php:61 tpl/dash/dashboard.tpl.php:856
msgid "Enable QUIC.cloud CDN"
msgstr "Activar la CDN de QUIC.cloud"

#: tpl/cdn/qc.tpl.php:59
msgid "Link & Enable QUIC.cloud CDN"
msgstr "Enlazar y activar la CDN de QUIC.cloud"

#: tpl/cdn/qc.tpl.php:55
msgid "QUIC.cloud CDN is <strong>not available</strong> for anonymous (unlinked) users."
msgstr "La CDN de QUIC.cloud <strong>no está disponible</strong> para usuarios anónimos (sin enlazar)."

#: tpl/cdn/qc.tpl.php:53
msgid "QUIC.cloud CDN is currently <strong>fully disabled</strong>."
msgstr "La CDN de QUIC.cloud está actualmente <strong>totalmente desactivada</strong>."

#: tpl/cdn/qc.tpl.php:46 tpl/dash/dashboard.tpl.php:168
msgid "Learn More about QUIC.cloud"
msgstr "Obtén más información acerca de QUIC.cloud"

#: tpl/cdn/qc.tpl.php:45 tpl/dash/dashboard.tpl.php:166
#: tpl/general/online.tpl.php:26
msgid "QUIC.cloud provides CDN and online optimization services, and is not required. You may use many features of this plugin without QUIC.cloud."
msgstr "QUIC.cloud ofrece servicios de CDN y optimización en línea, y no es obligatorio. Puedes usar muchas características de este plugin sin QUIC.cloud."

#: tpl/cdn/qc.tpl.php:41 tpl/dash/dashboard.tpl.php:158
#: tpl/general/online.tpl.php:64 tpl/general/online.tpl.php:119
msgid "Enable QUIC.cloud services"
msgstr "Activar los servicios de QUIC.cloud"

#: tpl/cdn/qc.tpl.php:38 tpl/general/online.tpl.php:61
#: tpl/general/online.tpl.php:145
msgid "Free monthly quota available."
msgstr "Cuota mensual gratuita disponible."

#: tpl/cdn/qc.tpl.php:36 tpl/dash/dashboard.tpl.php:150
msgid "Speed up your WordPress site even further with <strong>QUIC.cloud Online Services and CDN</strong>."
msgstr "Acelera aún más su sitio de WordPress con los <strong>servicios en línea y CDN de QUIC.cloud</strong>."

#: tpl/cdn/qc.tpl.php:34 tpl/dash/dashboard.tpl.php:146
msgid "Accelerate, Optimize, Protect"
msgstr "Acelera, optimiza, protege"

#: tpl/cdn/qc.tpl.php:29
msgid "Check the status of your most important settings and the health of your CDN setup here."
msgstr "Verifica el estado de tus ajustes más importantes y el estado de tu configuración CDN aquí."

#: tpl/cdn/qc.tpl.php:27
msgid "QUIC.cloud CDN Status Overview"
msgstr "Resumen del estado de CDN de QUIC.cloud"

#: tpl/cdn/qc.tpl.php:24 tpl/dash/dashboard.tpl.php:885
msgid "Refresh Status"
msgstr "Actualizar Estado"

#: tpl/cdn/entry.tpl.php:16
msgid "Other Static CDN"
msgstr "Otra CDN estática"

#: tpl/banner/new_version.php:113 tpl/banner/score.php:141
#: tpl/banner/slack.php:48
msgid "Dismiss this notice."
msgstr "Descartar este aviso."

#: tpl/banner/cloud_promo.tpl.php:35
msgid "Send to twitter to get %s bonus"
msgstr "Envíar a X para obtener %s de bonificación"

#: tpl/banner/cloud_promo.tpl.php:26
msgid "Spread the love and earn %s credits to use in our QUIC.cloud online services."
msgstr "Difunde el amor y gana %s créditos para usar en nuestros servicios en línea QUIC.cloud."

#: src/media.cls.php:388
msgid "No backup of unoptimized AVIF file exists."
msgstr "No existe ninguna copia de seguridad del archivo AVIF sin optimizar."

#: src/media.cls.php:380
msgid "AVIF saved %s"
msgstr "AVIF guardado %s"

#: src/media.cls.php:374
msgid "AVIF file reduced by %1$s (%2$s)"
msgstr "Archivo AVIF reducido en %1$s (%2$s)"

#: src/media.cls.php:365
msgid "Currently using original (unoptimized) version of AVIF file."
msgstr "Actualmente se utiliza la versión original (sin optimizar) del archivo AVIF."

#: src/media.cls.php:358
msgid "Currently using optimized version of AVIF file."
msgstr "Actualmente se utiliza la versión optimizada del archivo AVIF."

#: src/lang.cls.php:213
msgid "WebP/AVIF For Extra srcset"
msgstr "WebP/AVIF para srcset adicional"

#: src/lang.cls.php:209
msgid "Next-Gen Image Format"
msgstr "Formato de imagen de próxima generación"

#: src/img-optm.cls.php:2011
msgid "Enabled AVIF file successfully."
msgstr "Archivo AVIF activado correctamente."

#: src/img-optm.cls.php:2006
msgid "Disabled AVIF file successfully."
msgstr "El archivo AVIF desactivado correctamente."

#: src/img-optm.cls.php:1360
msgid "Reset image optimization counter successfully."
msgstr "Restablecido el contador de optimización de imágenes correctamente."

#: src/file.cls.php:132
msgid "Filename is empty!"
msgstr "¡El nombre del archivo está vacío!"

#: src/error.cls.php:45
msgid "You will need to finish %s setup to use the online services."
msgstr "Necesitarás finalizar la configuración de %s para utilizar los servicios en línea."

#: src/cloud.cls.php:1987
msgid "Sync QUIC.cloud status successfully."
msgstr "Sincronizado el estado de QUIC.cloud correctamente."

#: src/cloud.cls.php:1935
msgid "Linked to QUIC.cloud preview environment, for testing purpose only."
msgstr "Enlazado al entorno de vista previa de QUIC.cloud, solo para fines de prueba."

#: src/cloud.cls.php:1668
msgid "Click here to proceed."
msgstr "Haz clic aquí para continuar."

#: src/cloud.cls.php:1667
msgid "Site not recognized. QUIC.cloud deactivated automatically. Please reactivate your QUIC.cloud account."
msgstr "Sitio no reconocido. QUIC.cloud se desactivó automáticamente. Reactiva tu cuenta de QUIC.cloud."

#: src/cloud.cls.php:702
msgid "Reset %s activation successfully."
msgstr "Restablecida la activación de %s correctamente."

#: src/cloud.cls.php:596 src/cloud.cls.php:634 src/cloud.cls.php:674
msgid "Congratulations, %s successfully set this domain up for the online services with CDN service."
msgstr "Felicidades, %s configuró correctamente este dominio para los servicios en línea con servicio CDN."

#: src/cloud.cls.php:591
msgid "Congratulations, %s successfully set this domain up for the online services."
msgstr "Felicidades, %s configuró correctamente este dominio para los servicios en línea."

#: src/cloud.cls.php:589
msgid "Congratulations, %s successfully set this domain up for the anonymous online services."
msgstr "Felicidades, %s configuró correctamente este dominio para los servicios anónimos en línea."

#: src/cloud.cls.php:567
msgid "%s activation data expired."
msgstr "%s datos de activación caducados."

#: src/cloud.cls.php:560
msgid "Failed to parse %s activation status."
msgstr "No se pudo analizar el estado de activación de %s."

#: src/cloud.cls.php:553
msgid "Failed to validate %s activation data."
msgstr "No se pudieron validar los datos de activación de %s."

#: src/cloud.cls.php:294
msgid "Cert or key file does not exist."
msgstr "El archivo de certificado o clave no existe."

#: src/cloud.cls.php:276 src/cloud.cls.php:322 src/cloud.cls.php:349
#: src/cloud.cls.php:365 src/cloud.cls.php:384 src/cloud.cls.php:402
msgid "You need to activate QC first."
msgstr "Primero debes activar QC."

#: src/cloud.cls.php:232 src/cloud.cls.php:284
msgid "You need to set the %1$s first. Please use the command %2$s to set."
msgstr "Primero debes configurar %1$s. Usa el comando %2$s para configurarlo."

#: src/cloud.cls.php:174 src/cloud.cls.php:254
msgid "Failed to get echo data from WPAPI"
msgstr "No se pudieron obtener los datos de eco de WPAPI"

#: src/admin-settings.cls.php:92
msgid "The user with id %s has editor access, which is not allowed for the role simulator."
msgstr "El usuario con id %s tiene acceso de editor, que no tiene permisos para el simulador de perfiles."

#: src/error.cls.php:63
msgid "You have used all of your quota left for current service this month."
msgstr "Has utilizado toda la cuota que te quedaba para el servicio actual este mes."

#: src/error.cls.php:55 src/error.cls.php:68
msgid "Learn more or purchase additional quota."
msgstr "Más información o compra cuota adicional."

#: src/error.cls.php:50
msgid "You have used all of your daily quota for today."
msgstr "Has utilizado toda tu cuota diaria de hoy."

#: tpl/page_optm/settings_html.tpl.php:108
msgid "If comment to be kept is like: %1$s write: %2$s"
msgstr "Si el comentario a conservar es como: %1$s escribe: %2$s"

#: tpl/page_optm/settings_html.tpl.php:106
msgid "When minifying HTML do not discard comments that match a specified pattern."
msgstr "Al minimizar HTML no descartes los comentarios que coincidan con un patrón especificado."

#: tpl/cache/settings-advanced.tpl.php:39
msgid "Specify an AJAX action in POST/GET and the number of seconds to cache that request, separated by a space."
msgstr "Especifica una acción AJAX en POST/GET y el número de segundos para almacenar en caché esa petición, separados por un espacio."

#: src/lang.cls.php:151
msgid "HTML Keep Comments"
msgstr "HTML Mantener comentarios"

#: src/lang.cls.php:99
msgid "AJAX Cache TTL"
msgstr "TTL de caché AJAX"

#: src/error.cls.php:80
msgid "You have images waiting to be pulled. Please wait for the automatic pull to complete, or pull them down manually now."
msgstr "Tienes imágenes esperando a ser retiradas. Espera a que se complete la extracción automática o bájalas manualmente ahora."

#: tpl/db_optm/manage.tpl.php:26
msgid "Clean all orphaned post meta records"
msgstr "Limpiar todos los registros meta de entradas huérfanas"

#: tpl/db_optm/manage.tpl.php:25
msgid "Orphaned Post Meta"
msgstr "Meta de entrada huérfano"

#: tpl/dash/dashboard.tpl.php:863
msgid "Best available WordPress performance"
msgstr "El mejor rendimiento disponible para WordPress"

#: src/db-optm.cls.php:204
msgid "Clean orphaned post meta successfully."
msgstr "Limpieza correcta de los meta de entrada huérfanos."

#: tpl/img_optm/summary.tpl.php:325
msgid "Last Pulled"
msgstr "Última extracción"

#: tpl/cache/settings_inc.login_cookie.tpl.php:104
msgid "You can list the 3rd party vary cookies here."
msgstr "Puedes listar las cookies de terceros que varían aquí."

#: src/lang.cls.php:226
msgid "Vary Cookies"
msgstr "Variar cookies"

#: tpl/page_optm/settings_html.tpl.php:75
msgid "Preconnecting speeds up future loads from a given origin."
msgstr "La preconexión acelera las cargas futuras desde un origen determinado."

#: thirdparty/woocommerce.content.tpl.php:71
msgid "If your theme does not use JS to update the mini cart, you must enable this option to display the correct cart contents."
msgstr "Si tu tema no utiliza JS para actualizar el minicarrito, debes activar esta opción para mostrar el contenido correcto del carrito."

#: thirdparty/woocommerce.content.tpl.php:70
msgid "Generate a separate vary cache copy for the mini cart when the cart is not empty."
msgstr "Generar una copia de caché variable separada para el minicarrito cuando éste no esté vacío."

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Vary for Mini Cart"
msgstr "Variante según el minicarrito"

#: src/lang.cls.php:161
msgid "DNS Preconnect"
msgstr "Preconexión DNS"

#: src/doc.cls.php:39
msgid "This setting is %1$s for certain qualifying requests due to %2$s!"
msgstr "¡Este ajuste es %1$s para determinadas solicitudes que cumplen los requisitos debido a %2$s!"

#: tpl/page_optm/settings_tuning.tpl.php:43
msgid "Listed JS files or inline JS code will be delayed."
msgstr "Los archivos JS listados o el código JS en línea se retrasarán."

#: tpl/crawler/map.tpl.php:58
msgid "URL Search"
msgstr "Buscar URL"

#: src/lang.cls.php:163
msgid "JS Delayed Includes"
msgstr "Inclusiones de JS retrasadas"

#: src/cloud.cls.php:1453
msgid "Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more."
msgstr "Tu domain_key ha sido bloqueada temporalmente para evitar abusos. Puedes ponerte en contacto con el servicio de asistencia de QUIC.cloud para obtener más información."

#: src/cloud.cls.php:1448
msgid "Cloud server refused the current request due to unpulled images. Please pull the images first."
msgstr "El servidor de la nube ha rechazado la solicitud actual debido a que no se han extraído las imágenes. Por favor, extrae primero las imágenes."

#: tpl/crawler/summary.tpl.php:110
msgid "Current server load"
msgstr "Carga actual del servidor"

#: src/object-cache.cls.php:485
msgid "Redis encountered a fatal error: %1$s (code: %2$d)"
msgstr "Redis encontró un error fatal: %1$s (código: %2$d)"

#: src/img-optm.cls.php:876
msgid "Started async image optimization request"
msgstr "Se inició la solicitud de optimización asíncrona de imágenes"

#: src/crawler.cls.php:229
msgid "Started async crawling"
msgstr "Se inició el rastreo asíncrono"

#: src/conf.cls.php:514
msgid "Saving option failed. IPv4 only for %s."
msgstr "Falló el guardado de la opción. IPv4 es solo para %s."

#: src/cloud.cls.php:1460
msgid "Cloud server refused the current request due to rate limiting. Please try again later."
msgstr "El servidor en la nube rechazó la solicitud actual debido a la limitación de cuota. Por favor, inténtalo de nuevo más tarde."

#: tpl/img_optm/summary.tpl.php:298
msgid "Maximum image post id"
msgstr "ID de entrada de imagen máxima"

#: tpl/img_optm/summary.tpl.php:297 tpl/img_optm/summary.tpl.php:372
msgid "Current image post id position"
msgstr "Posición actual del id de entrada de la imagen"

#: src/lang.cls.php:26
msgid "Images ready to request"
msgstr "Imágenes listas para la solicitud"

#: tpl/dash/dashboard.tpl.php:384 tpl/general/online.tpl.php:31
#: tpl/img_optm/summary.tpl.php:54 tpl/img_optm/summary.tpl.php:56
#: tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:246
#: tpl/page_optm/settings_media.tpl.php:192
#: tpl/page_optm/settings_vpi.tpl.php:59
msgid "Redetect"
msgstr "Volver a detectar"

#. translators: %1$s: Socket name, %2$s: Host field title, %3$s: Example socket
#. path
#. translators: %1$s: Socket name, %2$s: Port field title, %3$s: Port value
#: tpl/cache/settings_inc.object.tpl.php:107
#: tpl/cache/settings_inc.object.tpl.php:146
msgid "If you are using a %1$s socket, %2$s should be set to %3$s"
msgstr "Si estás usando un socket %1$s, %2$s debería estar en %3$s"

#: src/root.cls.php:197
msgid "All QUIC.cloud service queues have been cleared."
msgstr "Se han borrado todas las colas de servicio de QUIC.cloud."

#. translators: %s: The type of the given cache key.
#: src/object.lib.php:519
msgid "Cache key must be integer or non-empty string, %s given."
msgstr "La clave de caché debe ser un entero o una cadena no vacía, %s proporcionado."

#: src/object.lib.php:517
msgid "Cache key must not be an empty string."
msgstr "La clave de caché no puede ser una cadena vacía."

#: src/lang.cls.php:172
msgid "JS Deferred / Delayed Excludes"
msgstr "Exclusiones de JS diferido / retrasado"

#: src/doc.cls.php:168
msgid "The queue is processed asynchronously. It may take time."
msgstr "La cola se procesa de forma asíncrona. Puede llevar un tiempo."

#: src/cloud.cls.php:1179
msgid "In order to use QC services, need a real domain name, cannot use an IP."
msgstr "Para poder usar los servicios de QC necesitas un nombre de demonio real, no puedes usar una IP."

#: tpl/presets/standard.tpl.php:195
msgid "Restore Settings"
msgstr "Restaurar los ajustes"

#: tpl/presets/standard.tpl.php:193
msgid "This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?"
msgstr "Esto restaurará la copia de seguridad de los ajustes creada %1$s antes de aplicar el preajuste %2$s. Cualquier cambio realizado desde entonces se perderá. ¿Quieres continuar?"

#: tpl/presets/standard.tpl.php:189
msgid "Backup created %1$s before applying the %2$s preset"
msgstr "Copia de seguridad creada %1$s antes de aplicar el preajuste %2$s"

#: tpl/presets/standard.tpl.php:178
msgid "Applied the %1$s preset %2$s"
msgstr "Se ha aplicado el prejuste %1$s %2$s"

#: tpl/presets/standard.tpl.php:175
msgid "Restored backup settings %1$s"
msgstr "Se han restaurado el respaldo de los ajustes %1$s"

#: tpl/presets/standard.tpl.php:173
msgid "Error: Failed to apply the settings %1$s"
msgstr "Error: No se pudieron aplicar los ajustes %1$s"

#: tpl/presets/standard.tpl.php:163
msgid "History"
msgstr "Historial"

#: tpl/presets/standard.tpl.php:152
msgid "unknown"
msgstr "desconocido"

#: tpl/presets/standard.tpl.php:133
msgid "Apply Preset"
msgstr "Aplicar el preajuste"

#: tpl/presets/standard.tpl.php:131
msgid "This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?"
msgstr "Se va a hacer una copia de seguridad de tus ajustes actuales y reemplazarlos con los de los preajustes %1$s. ¿Quieres continuar?"

#: tpl/presets/standard.tpl.php:121
msgid "Who should use this preset?"
msgstr "¿Quién debería usar este preajuste?"

#: tpl/presets/standard.tpl.php:96
msgid "Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between."
msgstr "Utiliza un preajuste oficial diseñado por LiteSpeed para configurar tu sitio en un clic. Pruebe el cacheo esencial sin riesgos, la optimización extrema o algo intermedio."

#: tpl/presets/standard.tpl.php:92
msgid "LiteSpeed Cache Standard Presets"
msgstr "Preajustes estándar de cache de LiteSpeed"

#: tpl/presets/standard.tpl.php:85
msgid "A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Activa el máximo nivel de optimizaciones para obtener puntuaciones de velocidad de página mejorados."

#: tpl/presets/standard.tpl.php:84
msgid "This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images."
msgstr "Este preajuste es casi seguro que requerirá pruebas y exclusiones de algo de CSS, JS y carga diferida de imágenes. Presta especial atención a los logotipos, o a imágenes de carrusel basadas en HTML."

#: tpl/presets/standard.tpl.php:81
msgid "Inline CSS added to Combine"
msgstr "CSS en línea añadido a Combinar"

#: tpl/presets/standard.tpl.php:80
msgid "Inline JS added to Combine"
msgstr "JS en línea añadido a Combinar"

#: tpl/presets/standard.tpl.php:79
msgid "JS Delayed"
msgstr "JS Retrasado"

#: tpl/presets/standard.tpl.php:78
msgid "Viewport Image Generation"
msgstr "Generación del viewport de la imagen"

#: tpl/presets/standard.tpl.php:77
msgid "Lazy Load for Images"
msgstr "Carga diferida para imágenes"

#: tpl/presets/standard.tpl.php:76
msgid "Everything in Aggressive, Plus"
msgstr "Todo lo de Aggressive y además"

#: tpl/presets/standard.tpl.php:74
msgid "Extreme"
msgstr "Extremo"

#: tpl/presets/standard.tpl.php:69
msgid "This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning."
msgstr "Este preajuste puede que funcione tal cual en algunas webs, ¡pero asegúrate de hacer pruebas! Puede que sean necesarias algunas exclusiones de CSS y JS en Optimización de página > Retoques."

#: tpl/presets/standard.tpl.php:66
msgid "Lazy Load for Iframes"
msgstr "Carga diferida de Iframes"

#: tpl/presets/standard.tpl.php:65
msgid "Removed Unused CSS for Users"
msgstr "CSS sin uso eliminado para los usuarios"

#: tpl/presets/standard.tpl.php:64
msgid "Asynchronous CSS Loading with Critical CSS"
msgstr "Carga de CSS asíncrono con CSS crítico"

#: tpl/presets/standard.tpl.php:63
msgid "CSS & JS Combine"
msgstr "Combinar CSS y JS"

#: tpl/presets/standard.tpl.php:62
msgid "Everything in Advanced, Plus"
msgstr "Todo lo de Advance y además"

#: tpl/presets/standard.tpl.php:60
msgid "Aggressive"
msgstr "Agresivo"

#: tpl/presets/standard.tpl.php:56 tpl/presets/standard.tpl.php:70
msgid "A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones de velocidad de página."

#: tpl/presets/standard.tpl.php:55
msgid "This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools."
msgstr "Este preajuste es bueno para la mayoría de webs, y es raro que provoque conflictos. Cualquier conflicto de CSS o JS puede solucionarse con las herramientas de Optimización de página > Retoques."

#: tpl/presets/standard.tpl.php:50
msgid "Remove Query Strings from Static Files"
msgstr "Eliminar cadenas de consulta de recursos estáticos"

#: tpl/presets/standard.tpl.php:48
msgid "DNS Prefetch for static files"
msgstr "Precarga de DNS para archivos estáticos"

#: tpl/presets/standard.tpl.php:47
msgid "JS Defer for both external and inline JS"
msgstr "Aplazar JS para JS externos e incrustados"

#: tpl/presets/standard.tpl.php:45
msgid "CSS, JS and HTML Minification"
msgstr "Minimizado de CSS, JS y HTML"

#: tpl/presets/standard.tpl.php:44
msgid "Guest Mode and Guest Optimization"
msgstr "Modo de invitado y modo de optimización"

#: tpl/presets/standard.tpl.php:43
msgid "Everything in Basic, Plus"
msgstr "Todo en el básico, además"

#: tpl/presets/standard.tpl.php:41
msgid "Advanced (Recommended)"
msgstr "Avanzado (Recomendado)"

#: tpl/presets/standard.tpl.php:37
msgid "A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones del sitio en las herramientas de medición de velocidad de página."

#: tpl/presets/standard.tpl.php:36
msgid "This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners."
msgstr "Este preajuste de bajo riesgo introduce optimizaciones básicas de mejora de la velocidad de página y experiencia de usuario. Adecuado para principiantes entusiastas."

#: tpl/presets/standard.tpl.php:33
msgid "Mobile Cache"
msgstr "Caché móvil"

#: tpl/presets/standard.tpl.php:31
msgid "Everything in Essentials, Plus"
msgstr "Todo lo de Essentials y además"

#: tpl/presets/standard.tpl.php:25
msgid "A Domain Key is not required to use this preset. Only basic caching features are enabled."
msgstr "No es obligatoria una clave de dominio para este preajuste. Solo se activan características básicas de caché."

#: tpl/presets/standard.tpl.php:24
msgid "This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development."
msgstr "Este preajuste sin riesgos es apropiado para todas las webs. Es bueno para nuevos usuarios, webs sencillas o desarrollos orientados a caché."

#: tpl/presets/standard.tpl.php:20
msgid "Higher TTL"
msgstr "TTL mayor"

#: tpl/presets/standard.tpl.php:19
msgid "Default Cache"
msgstr "Caché por defecto"

#: tpl/presets/standard.tpl.php:17
msgid "Essentials"
msgstr "Básicos"

#: tpl/presets/entry.tpl.php:23
msgid "LiteSpeed Cache Configuration Presets"
msgstr "Preajustes de configuración de caché LiteSpeed"

#: tpl/presets/entry.tpl.php:16
msgid "Standard Presets"
msgstr "Preajustes estándar"

#: tpl/page_optm/settings_tuning_css.tpl.php:52
msgid "Listed CSS files will be excluded from UCSS and saved to inline."
msgstr "Los archivos CSS listados se excluirán del CSS sin uso y guardados para que se incrusten."

#: src/lang.cls.php:144
msgid "UCSS File Excludes and Inline"
msgstr "Excluir archivo del CSS sin uso e incrustar"

#: src/lang.cls.php:143
msgid "UCSS Selector Allowlist"
msgstr "Lista blanca del selector de CSS sin uso"

#: src/admin-display.cls.php:122
msgid "Presets"
msgstr "Preajustes"

#: tpl/dash/dashboard.tpl.php:310
msgid "Partner Benefits Provided by"
msgstr "Ventajas de colaboración ofrecidas por"

#: tpl/toolbox/log_viewer.tpl.php:35
msgid "LiteSpeed Logs"
msgstr "Registros de LiteSpeed"

#: tpl/toolbox/log_viewer.tpl.php:28
msgid "Crawler Log"
msgstr "Registros de rastreadores"

#: tpl/toolbox/log_viewer.tpl.php:23
msgid "Purge Log"
msgstr "Purgar registro"

#: tpl/toolbox/settings-debug.tpl.php:164
msgid "Prevent writing log entries that include listed strings."
msgstr "Evita escribir entradas del registro que incluyan cadenas listadas."

#: tpl/toolbox/settings-debug.tpl.php:27
msgid "View Site Before Cache"
msgstr "Ver sitio sin caché"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "View Site Before Optimization"
msgstr "Ver sitio sin optimizar"

#: tpl/toolbox/settings-debug.tpl.php:19
msgid "Debug Helpers"
msgstr "Ayudas de depuración"

#: tpl/page_optm/settings_vpi.tpl.php:122
msgid "Enable Viewport Images auto generation cron."
msgstr "Activar el cron de generación automática del viewport de imágenes."

#: tpl/page_optm/settings_vpi.tpl.php:39
msgid "This enables the page's initial screenful of imagery to be fully displayed without delay."
msgstr "Esto permite que la pantalla inicial de imágenes de la página se muestre completamente sin demora."

#: tpl/page_optm/settings_vpi.tpl.php:38
msgid "The Viewport Images service detects which images appear above the fold, and excludes them from lazy load."
msgstr "El servicio de viewport de imágenes detecta qué imágenes aparecen antes de hacer scroll y las excluye de la carga diferida."

#: tpl/page_optm/settings_vpi.tpl.php:37
msgid "When you use Lazy Load, it will delay the loading of all images on a page."
msgstr "Cuando usas la carga diferida, se retrasa la carga de todas las imágenes de la página."

#: tpl/page_optm/settings_media.tpl.php:257
msgid "Use %1$s to bypass remote image dimension check when %2$s is ON."
msgstr "Utiliza %1$s para saltarte la comprobación de dimensión en imágenes remotas cuando la %2$s esté ACTIVA."

#: tpl/page_optm/entry.tpl.php:20
msgid "VPI"
msgstr "VPI"

#: tpl/general/settings.tpl.php:72 tpl/page_optm/settings_media.tpl.php:251
#: tpl/page_optm/settings_vpi.tpl.php:44
msgid "%s must be turned ON for this setting to work."
msgstr "%s debe estar activo para que este ajuste funcione."

#: tpl/dash/dashboard.tpl.php:755
msgid "Viewport Image"
msgstr "Imagen de la vista"

#: tpl/crawler/blacklist.tpl.php:78
msgid "API: Filter %s available to disable blocklist."
msgstr "API: El filtro %s está disponible para desactivar la lista de bloqueos."

#: tpl/crawler/blacklist.tpl.php:68
msgid "API: PHP Constant %s available to disable blocklist."
msgstr "API: La constante %s de PHP está disponible para desactivar la lista de bloqueos."

#: thirdparty/litespeed-check.cls.php:74 thirdparty/litespeed-check.cls.php:122
msgid "Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:"
msgstr "Debido a que puede haber conflictos con LiteSpeed Cache, por favor, considera desactivar los siguientes plugins:"

#: src/metabox.cls.php:34
msgid "Mobile"
msgstr "Móvil"

#: src/metabox.cls.php:32
msgid "Disable VPI"
msgstr "Desactivar VPI"

#: src/metabox.cls.php:31
msgid "Disable Image Lazyload"
msgstr "Desactivar la carga de imágenes diferida"

#: src/metabox.cls.php:30
msgid "Disable Cache"
msgstr "Desactivar la caché"

#: src/lang.cls.php:263
msgid "Debug String Excludes"
msgstr "Exclusión de cadenas de depuración"

#: src/lang.cls.php:204
msgid "Viewport Images Cron"
msgstr "Cron de imágenes de la vista"

#: src/lang.cls.php:203 src/metabox.cls.php:33 src/metabox.cls.php:34
#: tpl/page_optm/settings_vpi.tpl.php:23
msgid "Viewport Images"
msgstr "Imágenes de la vista"

#: src/lang.cls.php:54
msgid "Alias is in use by another QUIC.cloud account."
msgstr "El alias ya está en uso por otra cuenta de QUIC.cloud."

#: src/lang.cls.php:52
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain."
msgstr "No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal."

#: src/lang.cls.php:47
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict."
msgstr "No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal, debido a un conflicto potencial con la CDN."

#: src/error.cls.php:200
msgid "You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible."
msgstr "No puedes eliminar esta zona de DNS porque aún está en uso. Por favor, actualiza los servidores de nombers, luego tratar de borrar de nuevo esta zona, en caso contrario tu sitio será inaccesible."

#: src/error.cls.php:103
msgid "The site is not a valid alias on QUIC.cloud."
msgstr "El sitio no tiene un alias válido en QUIC.cloud."

#: tpl/page_optm/settings_localization.tpl.php:141
msgid "Please thoroughly test each JS file you add to ensure it functions as expected."
msgstr "Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera."

#: tpl/page_optm/settings_localization.tpl.php:108
msgid "Please thoroughly test all items in %s to ensure they function as expected."
msgstr "Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera."

#: tpl/page_optm/settings_tuning_css.tpl.php:100
msgid "Use %1$s to bypass UCSS for the pages which page type is %2$s."
msgstr "Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s."

#: tpl/page_optm/settings_tuning_css.tpl.php:99
msgid "Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL."
msgstr "Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL."

#: tpl/page_optm/settings_css.tpl.php:86
msgid "Filter %s available for UCSS per page type generation."
msgstr "Disponible el filtro %s para la generación de UCSS por tipo de página."

#: tpl/general/settings_inc.guest.tpl.php:45
#: tpl/general/settings_inc.guest.tpl.php:48
msgid "Guest Mode failed to test."
msgstr "Prueba fallida del modo de invitado."

#: tpl/general/settings_inc.guest.tpl.php:42
msgid "Guest Mode passed testing."
msgstr "Prueba superada del modo de invitado."

#: tpl/general/settings_inc.guest.tpl.php:35
msgid "Testing"
msgstr "Probando"

#: tpl/general/settings_inc.guest.tpl.php:34
msgid "Guest Mode testing result"
msgstr "Resultado de la prueba del modo de invitado"

#: tpl/crawler/blacklist.tpl.php:85
msgid "Not blocklisted"
msgstr "No está en la lista negra"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:25
msgid "Learn more about when this is needed"
msgstr "Aprende más sobre cuándo es esto necesario"

#: src/purge.cls.php:344
msgid "Cleaned all localized resource entries."
msgstr "Limpiadas todas las entradas de recursos localizados."

#: tpl/toolbox/entry.tpl.php:24
msgid "View .htaccess"
msgstr "Ver el archivo «.htaccess»"

#: tpl/toolbox/edit_htaccess.tpl.php:63 tpl/toolbox/edit_htaccess.tpl.php:81
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess»."

#: tpl/toolbox/edit_htaccess.tpl.php:62 tpl/toolbox/edit_htaccess.tpl.php:80
msgid "PHP Constant %s is supported."
msgstr "Es compatible la contante %s de PHP."

#: tpl/toolbox/edit_htaccess.tpl.php:58 tpl/toolbox/edit_htaccess.tpl.php:76
msgid "Default path is"
msgstr "La ruta por defecto es"

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid ".htaccess Path"
msgstr "Ruta del archivo «.htaccess»"

#: tpl/general/settings.tpl.php:49
msgid "Please read all warnings before enabling this option."
msgstr "Por favor, lee todas las advertencias antes de activar esta opción."

#: tpl/toolbox/purge.tpl.php:83
msgid "This will delete all generated unique CSS files"
msgstr "Esto borrará todos los archivos CSS únicos generados"

#: tpl/toolbox/beta_test.tpl.php:74
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "Para evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s."

#: tpl/toolbox/beta_test.tpl.php:67
msgid "Use latest GitHub Dev/Master commit"
msgstr "Utiliza el último commit Dev/Master de GitHub"

#: tpl/toolbox/beta_test.tpl.php:67
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales."

#: tpl/toolbox/beta_test.tpl.php:62
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "No se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado."

#: tpl/page_optm/settings_tuning.tpl.php:144
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios."

#: tpl/page_optm/settings_tuning.tpl.php:106
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Los archivos JS listados o el código JS integrado no serán optimizados por %s."

#: tpl/page_optm/settings_tuning_css.tpl.php:92
msgid "Listed URI will not generate UCSS."
msgstr "Las URI listadas no generarán UCSS."

#: tpl/page_optm/settings_tuning_css.tpl.php:74
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "El selector debe existir en el CSS. Las clases principales en HTML no funcionarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:70
#: tpl/page_optm/settings_tuning_css.tpl.php:145
msgid "Wildcard %s supported."
msgstr "Compatibilidad con el comodín %s."

#: tpl/page_optm/settings_media_exc.tpl.php:34
msgid "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr "Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:246
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:139
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr "Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración."

#: tpl/page_optm/settings_js.tpl.php:79
msgid "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."
msgstr "Aplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals)."

#: tpl/page_optm/settings_js.tpl.php:77
msgid "Delayed"
msgstr "Retrasado"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "JS error can be found from the developer console of browser by right clicking and choosing Inspect."
msgstr "El error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar."

#: tpl/page_optm/settings_js.tpl.php:51 tpl/page_optm/settings_js.tpl.php:85
msgid "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."
msgstr "Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins."

#: tpl/page_optm/settings_html.tpl.php:147
msgid "This will also add a preconnect to Google Fonts to establish a connection earlier."
msgstr "Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes."

#: tpl/page_optm/settings_html.tpl.php:91
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr "Retraso al mostrar los elementos HTML fuera de la pantalla por su selector."

#: tpl/page_optm/settings_css.tpl.php:312
msgid "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."
msgstr "Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas."

#: tpl/page_optm/settings_css.tpl.php:228
msgid "This option is bypassed due to %s option."
msgstr "Esta opción se omite debido a la opción %s."

#: tpl/page_optm/settings_css.tpl.php:222
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en el código HTML."

#: tpl/page_optm/settings_css.tpl.php:215
msgid "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."
msgstr "Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante."

#: tpl/page_optm/settings_css.tpl.php:179
msgid "This option will automatically bypass %s option."
msgstr "Esta opción omitirá automáticamente la opción %s."

#: tpl/page_optm/settings_css.tpl.php:176
msgid "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."
msgstr "UCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala."

#: tpl/page_optm/settings_css.tpl.php:153
#: tpl/page_optm/settings_css.tpl.php:158
#: tpl/page_optm/settings_css.tpl.php:290
#: tpl/page_optm/settings_css.tpl.php:295
#: tpl/page_optm/settings_vpi.tpl.php:100
#: tpl/page_optm/settings_vpi.tpl.php:105
msgid "Run %s Queue Manually"
msgstr "Ejecutar manualmente la cola %s"

#: tpl/page_optm/settings_css.tpl.php:91
msgid "This option is bypassed because %1$s option is %2$s."
msgstr "Esta opción se omite porque la opción %1$s es %2$s."

#: tpl/page_optm/settings_css.tpl.php:84
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr "La generación automática de CSS único está en segundo plano a través de una cola basada en cron."

#: tpl/page_optm/settings_css.tpl.php:82
msgid "This will drop the unused CSS on each page from the combined file."
msgstr "Esto eliminará el CSS no utilizado en cada página del archivo combinado."

#: tpl/page_optm/entry.tpl.php:18 tpl/page_optm/settings_html.tpl.php:17
msgid "HTML Settings"
msgstr "Ajustes HTML"

#: tpl/inc/in_upgrading.php:15
msgid "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."
msgstr "Actualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración."

#: tpl/general/settings_tuning.tpl.php:62
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr "Las IP listadas serán consideradas visitantes en modo invitado."

#: tpl/general/settings_tuning.tpl.php:40
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr "Los agentes de usuario listados serán considerados visitantes en modo invitado."

#: tpl/general/settings.tpl.php:64
msgid "Your %1$s quota on %2$s will still be in use."
msgstr "Tu cuota de %1$s en %2$s aún seguirá en uso."

#: tpl/general/settings_inc.guest.tpl.php:27
msgid "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."
msgstr "Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas."

#: tpl/general/settings_inc.guest.tpl.php:26
msgid "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr "El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX."

#: tpl/general/settings.tpl.php:104
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr "Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio."

#: tpl/general/settings.tpl.php:103
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server."
msgstr "la IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor."

#: tpl/general/settings.tpl.php:86
msgid "You need to turn %s on and finish all WebP generation to get maximum result."
msgstr "Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:79
msgid "You need to turn %s on to get maximum result."
msgstr "Necesitas activar %s para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:48
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr "Esta opción permite la máxima optimización para los visitantes del modo de invitado."

#: tpl/dash/dashboard.tpl.php:54 tpl/dash/dashboard.tpl.php:81
#: tpl/dash/dashboard.tpl.php:520 tpl/dash/dashboard.tpl.php:597
#: tpl/dash/dashboard.tpl.php:624 tpl/dash/dashboard.tpl.php:668
#: tpl/dash/dashboard.tpl.php:712 tpl/dash/dashboard.tpl.php:756
#: tpl/dash/dashboard.tpl.php:800 tpl/dash/dashboard.tpl.php:847
msgid "More"
msgstr "Más"

#: tpl/dash/dashboard.tpl.php:300
msgid "Remaining Daily Quota"
msgstr "Cuota diaria restante"

#: tpl/crawler/summary.tpl.php:246
msgid "Successfully Crawled"
msgstr "Rastreado correctamente"

#: tpl/crawler/summary.tpl.php:245
msgid "Already Cached"
msgstr "Ya en la caché"

#: tpl/crawler/settings.tpl.php:59
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio."

#: tpl/cdn/cf.tpl.php:48
msgid "Optional when API token used."
msgstr "Opcional cuando se usa el token de la API."

#: tpl/cdn/cf.tpl.php:40
msgid "Recommended to generate the token from Cloudflare API token template \"WordPress\"."
msgstr "Recomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare."

#: tpl/cdn/cf.tpl.php:35
msgid "Global API Key / API Token"
msgstr "Clave/Token global de la API"

#: tpl/cdn/other.tpl.php:52
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are only using QUIC.cloud or Cloudflare, leave this setting %s."
msgstr "NOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %s."

#: tpl/cdn/other.tpl.php:44
msgid "Turn this setting %s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN."
msgstr "Cambia este ajuste %s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud."

#: tpl/cache/settings_inc.object.tpl.php:47
msgid "Use external object cache functionality."
msgstr "Usa la funcionalidad de la caché de objetos externos."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:24
msgid "Serve a separate cache copy for mobile visitors."
msgstr "Ofrece una copia de la caché separada para los visitantes móviles."

#: thirdparty/woocommerce.content.tpl.php:25
msgid "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."
msgstr "Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente."

#: src/purge.cls.php:272
msgid "Cleaned all Unique CSS files."
msgstr "Limpiados todos los archivos CSS únicos."

#: src/lang.cls.php:202
msgid "Add Missing Sizes"
msgstr "Añadir tamaños que faltan"

#: src/lang.cls.php:177
msgid "Optimize for Guests Only"
msgstr "Optimizar solamente para invitados"

#: src/lang.cls.php:173
msgid "Guest Mode JS Excludes"
msgstr "Exclusiones JS del modo de invitado"

#: src/lang.cls.php:153
msgid "CCSS Per URL"
msgstr "CCSS por URL"

#: src/lang.cls.php:150
msgid "HTML Lazy Load Selectors"
msgstr "Selectores HTML de carga diferida"

#: src/lang.cls.php:145
msgid "UCSS URI Excludes"
msgstr "Exclusiones UCSS de la URI"

#: src/lang.cls.php:142
msgid "UCSS Inline"
msgstr "UCCS integrado"

#: src/lang.cls.php:102
msgid "Guest Optimization"
msgstr "Optimización para invitados"

#: src/lang.cls.php:101
msgid "Guest Mode"
msgstr "Modo de invitado"

#: src/lang.cls.php:88
msgid "Guest Mode IPs"
msgstr "IP del modo de invitado"

#: src/lang.cls.php:87
msgid "Guest Mode User Agents"
msgstr "Agentes de usuario del modo de invitado"

#: src/error.cls.php:119
msgid "Online node needs to be redetected."
msgstr "El nodo online tiene que volver a ser detectado."

#: src/error.cls.php:115
msgid "The current server is under heavy load."
msgstr "El servidor actual está bajo una gran carga."

#: src/doc.cls.php:71
msgid "Please see %s for more details."
msgstr "Por favor, consulta %s para más detalles."

#: src/doc.cls.php:55
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr "¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!"

#: src/gui.cls.php:82
msgid "%1$s %2$s files left in queue"
msgstr "%1$s %2$s archivos restantes en la cola"

#: src/crawler.cls.php:144
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr "¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos! "

#: src/cloud.cls.php:1468
msgid "Redetected node"
msgstr "Nodo detectado nuevamente"

#: src/cloud.cls.php:1018
msgid "No available Cloud Node after checked server load."
msgstr "No hay ningún nodo de la nube disponible después de comprobar la carga del servidor."

#: src/lang.cls.php:158
msgid "Localization Files"
msgstr "Archivos de idiomas"

#: cli/purge.cls.php:234
msgid "Purged!"
msgstr "¡Purgado!"

#: tpl/page_optm/settings_localization.tpl.php:130
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Los recursos listados aquí se copiarán y reemplazarán con URL locales."

#: tpl/toolbox/beta_test.tpl.php:50
msgid "Use latest GitHub Master commit"
msgstr "Usar el último commit maestro de GitHub"

#: tpl/toolbox/beta_test.tpl.php:46
msgid "Use latest GitHub Dev commit"
msgstr "Usar el último commit de desarrollo de GitHub"

#: src/crawler-map.cls.php:371
msgid "No valid sitemap parsed for crawler."
msgstr "No se ha analizado ningún mapa del sitio válido para el rastreador."

#: src/lang.cls.php:140
msgid "CSS Combine External and Inline"
msgstr "Combinación de CSS externo e integrado"

#: tpl/page_optm/settings_css.tpl.php:193
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS."

#: tpl/page_optm/settings_css.tpl.php:45
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: tpl/cache/settings-excludes.tpl.php:32
#: tpl/page_optm/settings_tuning_css.tpl.php:78
#: tpl/page_optm/settings_tuning_css.tpl.php:153
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La lista predefinida también se combinará con los ajustes anteriores"

#: tpl/page_optm/entry.tpl.php:22
msgid "Localization"
msgstr "Localización"

#: tpl/page_optm/settings_js.tpl.php:66
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS."

#: tpl/page_optm/settings_js.tpl.php:47
msgid "Combine all local JS files into a single file."
msgstr "Combina todos los archivos JS locales en un único archivo."

#: tpl/page_optm/settings_tuning.tpl.php:85
msgid "Listed JS files or inline JS code will not be deferred or delayed."
msgstr "Los archivos JS listados o el código JS integrado no serán aplazados ni diferidos."

#: src/data.upgrade.func.php:238
msgid "Click here to settings"
msgstr "Haz clic aquí para los ajustes"

#: src/data.upgrade.func.php:236
msgid "JS Defer"
msgstr "Diferir JS"

#: src/data.upgrade.func.php:231
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS."

#: src/lang.cls.php:148
msgid "JS Combine External and Inline"
msgstr "Combinación de JS externo e integrado"

#: src/admin-display.cls.php:519 tpl/banner/new_version.php:114
#: tpl/banner/score.php:142 tpl/banner/slack.php:49
msgid "Dismiss"
msgstr "Descartar"

#: tpl/cache/settings-esi.tpl.php:103
msgid "The latest data file is"
msgstr "El último archivo de datos es"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La lista se fusionará con los nonces predefinidos en tu archivo de datos local."

#: tpl/page_optm/settings_css.tpl.php:59
msgid "Combine CSS files and inline CSS code."
msgstr "Combina archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_js.tpl.php:33
msgid "Minify JS files and inline JS codes."
msgstr "Minimiza archivos JS y códigos JS integrados."

#: tpl/page_optm/settings_tuning.tpl.php:63
msgid "Listed JS files or inline JS code will not be minified or combined."
msgstr "Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified or combined."
msgstr "Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán."

#: src/admin-display.cls.php:1030
msgid "This setting is overwritten by the Network setting"
msgstr "Los ajustes de red sobreescriben este ajuste"

#: src/lang.cls.php:191
msgid "LQIP Excludes"
msgstr "Exclusiones de LQIP"

#: tpl/page_optm/settings_media_exc.tpl.php:132
msgid "These images will not generate LQIP."
msgstr "Estas imágenes no generarán LQIP."

#: tpl/toolbox/import_export.tpl.php:70
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "¿Seguro que quieres restablecer los ajustes a los valores por defecto?"

#: tpl/page_optm/settings_html.tpl.php:188
msgid "This option will remove all %s tags from HTML."
msgstr "Esta opción eliminará todas las etiquetas %s del HTML."

#: tpl/general/online.tpl.php:31
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "¿Seguro que quieres vaciar todos los nodos cloud?"

#: src/lang.cls.php:175 tpl/presets/standard.tpl.php:52
msgid "Remove Noscript Tags"
msgstr "Eliminar las etiquetas Noscript"

#: src/error.cls.php:107
msgid "The site is not registered on QUIC.cloud."
msgstr "El sitio no está registrado en QUIC.cloud."

#: src/error.cls.php:46 tpl/crawler/settings.tpl.php:123
#: tpl/crawler/settings.tpl.php:144 tpl/crawler/summary.tpl.php:218
msgid "Click here to set."
msgstr "Haz clic aquí para configurarlo."

#: src/lang.cls.php:157
msgid "Localize Resources"
msgstr "Recursos localizados"

#: tpl/cache/settings_inc.browser.tpl.php:26
msgid "Setting Up Custom Headers"
msgstr "Configurar cabeceras personalizadas"

#: tpl/toolbox/purge.tpl.php:92
msgid "This will delete all localized resources"
msgstr "Esto borrará todos los recursos localizados"

#: src/gui.cls.php:628 src/gui.cls.php:810 tpl/toolbox/purge.tpl.php:91
msgid "Localized Resources"
msgstr "Recursos localizados"

#: tpl/page_optm/settings_localization.tpl.php:135
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario."

#: tpl/page_optm/settings_localization.tpl.php:131
msgid "HTTPS sources only."
msgstr "Solo orígenes HTTPS."

#: tpl/page_optm/settings_localization.tpl.php:104
msgid "Localize external resources."
msgstr "Localizar recursos externos."

#: tpl/page_optm/settings_localization.tpl.php:27
msgid "Localization Settings"
msgstr "Ajustes de localización"

#: tpl/page_optm/settings_css.tpl.php:81
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Usar el servicio en línea QUIC.cloud para generar CSS único."

#: src/lang.cls.php:141
msgid "Generate UCSS"
msgstr "Generar UCSS"

#: tpl/dash/dashboard.tpl.php:667 tpl/toolbox/purge.tpl.php:82
msgid "Unique CSS"
msgstr "CSS único"

#: tpl/toolbox/purge.tpl.php:118
msgid "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"
msgstr "Purga las entradas de la caché creadas por este plugin, excepto las cachés de CSS único, CSS crítico y de LQIP"

#: tpl/toolbox/report.tpl.php:58
msgid "LiteSpeed Report"
msgstr "Informe de LiteSpeed"

#: tpl/img_optm/summary.tpl.php:224
msgid "Image Thumbnail Group Sizes"
msgstr "Grupo de tamaños de miniaturas"

#. translators: %s: LiteSpeed Web Server version
#: tpl/cache/settings_inc.cache_dropquery.tpl.php:27
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)"

#: tpl/cache/settings-purge.tpl.php:116
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "En el caso de las URL con comodines, puede haber un retraso en el inicio de la purga programada."

#: tpl/cache/settings-purge.tpl.php:92
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Por diseño, esta opción puede servir contenido obsoleto. No actives esta opción si no estás de acuerdo."

#: src/lang.cls.php:128
msgid "Serve Stale"
msgstr "Servir contenido rancio"

#: src/admin-display.cls.php:1028
msgid "This setting is overwritten by the primary site setting"
msgstr "Esta ajuste es sobrescrito por los ajuste del sitio primario"

#: src/img-optm.cls.php:1151
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Una o más de las imágenes recuperadas no coincide con el md5 de imagen avisado"

#: src/img-optm.cls.php:1072
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Una o más imágenes optimizadas han caducado y han sido borradas."

#: src/error.cls.php:76
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos."

#: src/img-optm.cls.php:1087
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "El md5 de la imagen WebP recuperada no coincide con el md5 avisado de la imagen WebP."

#: src/img-optm.cls.php:1116
msgid "Pulled AVIF image md5 does not match the notified AVIF image md5."
msgstr "El md5 de la imagen AVIF extraída no coincide con el md5 de la imagen AVIF avisada."

#: tpl/inc/admin_footer.php:19
msgid "Read LiteSpeed Documentation"
msgstr "Leer la documentación de LiteSpeed"

#: src/error.cls.php:97
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "La cola aún no ha sido recuperada. Información de la cola: %s."

#: tpl/page_optm/settings_localization.tpl.php:89
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar."

#: src/img-optm.cls.php:604
msgid "Cleared %1$s invalid images."
msgstr "Purgadas %1$s imágenes no válidas."

#: tpl/general/entry.tpl.php:31
msgid "LiteSpeed Cache General Settings"
msgstr "Ajustes generales de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:110
msgid "This will delete all cached Gravatar files"
msgstr "Esto borrará todos los archivos Gravatar almacenados en caché"

#: tpl/toolbox/settings-debug.tpl.php:150
msgid "Prevent any debug log of listed pages."
msgstr "Evita cualquier registro de depuración de las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:136
msgid "Only log listed pages."
msgstr "Solo registra las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:108
msgid "Specify the maximum size of the log file."
msgstr "Especifica el tamaño máximo del archivo de registro."

#: tpl/toolbox/settings-debug.tpl.php:59
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione."

#: tpl/toolbox/beta_test.tpl.php:70
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress."

#: tpl/toolbox/beta_test.tpl.php:54 tpl/toolbox/beta_test.tpl.php:70
msgid "Use latest WordPress release version"
msgstr "Usar la última versión de WordPress"

#: tpl/toolbox/beta_test.tpl.php:54
msgid "OR"
msgstr "O"

#: tpl/toolbox/beta_test.tpl.php:37
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo."

#: tpl/toolbox/import_export.tpl.php:71
msgid "Reset Settings"
msgstr "Restablecer ajustes"

#: tpl/toolbox/entry.tpl.php:41
msgid "LiteSpeed Cache Toolbox"
msgstr "Caja de herramientas de LiteSpeed"

#: tpl/toolbox/entry.tpl.php:35
msgid "Beta Test"
msgstr "Pruebas beta"

#: tpl/toolbox/entry.tpl.php:34
msgid "Log View"
msgstr "Vista de registros"

#: tpl/toolbox/entry.tpl.php:33 tpl/toolbox/settings-debug.tpl.php:31
msgid "Debug Settings"
msgstr "Ajustes de depuración"

#: tpl/toolbox/heartbeat.tpl.php:103
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Actívalo para controlar heartbeat en el editor."

#: tpl/toolbox/heartbeat.tpl.php:73
msgid "Turn ON to control heartbeat on backend."
msgstr "Actívalo para controlar heartbeat en el escritorio."

#: tpl/toolbox/heartbeat.tpl.php:58 tpl/toolbox/heartbeat.tpl.php:88
#: tpl/toolbox/heartbeat.tpl.php:118
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Ponlo en %1$s para bloquear heartbeat en %2$s."

#: tpl/toolbox/heartbeat.tpl.php:57 tpl/toolbox/heartbeat.tpl.php:87
#: tpl/toolbox/heartbeat.tpl.php:117
msgid "WordPress valid interval is %s seconds."
msgstr "El intervalo válido de WordPress es de %s segundos."

#: tpl/toolbox/heartbeat.tpl.php:56 tpl/toolbox/heartbeat.tpl.php:86
#: tpl/toolbox/heartbeat.tpl.php:116
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Especifica el intervalo de heartbeat para %s en segundos."

#: tpl/toolbox/heartbeat.tpl.php:43
msgid "Turn ON to control heartbeat on frontend."
msgstr "Enciéndelo para controlar heartbeat en las páginas públicas."

#: tpl/toolbox/heartbeat.tpl.php:26
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Desactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor."

#: tpl/toolbox/heartbeat.tpl.php:19
msgid "Heartbeat Control"
msgstr "Control de Heartbeat"

#: tpl/toolbox/report.tpl.php:127
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "proporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración."

#: tpl/toolbox/report.tpl.php:126
msgid "Optional"
msgstr "Opcional"

#: tpl/toolbox/report.tpl.php:100 tpl/toolbox/report.tpl.php:102
msgid "Generate Link for Current User"
msgstr "Generar el enlace para el usuario actual"

#: tpl/toolbox/report.tpl.php:96
msgid "Passwordless Link"
msgstr "Enlace sin contraseña"

#: tpl/toolbox/report.tpl.php:75
msgid "System Information"
msgstr "Información del sistema"

#: tpl/toolbox/report.tpl.php:52
msgid "Go to plugins list"
msgstr "Ir a la lista de plugins"

#: tpl/toolbox/report.tpl.php:51
msgid "Install DoLogin Security"
msgstr "Instalar la seguridad de DoLogin"

#: tpl/general/settings.tpl.php:102
msgid "Check my public IP from"
msgstr "Comprobar mi IP pública desde"

#: tpl/general/settings.tpl.php:102
msgid "Your server IP"
msgstr "La IP de tu servidor"

#: tpl/general/settings.tpl.php:101
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Introduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN."

#: tpl/crawler/settings.tpl.php:31
msgid "This will enable crawler cron."
msgstr "Esto activará el cron rastreador."

#: tpl/crawler/settings.tpl.php:17
msgid "Crawler General Settings"
msgstr "Ajustes generales del rastreador"

#: tpl/crawler/blacklist.tpl.php:53
msgid "Remove from Blocklist"
msgstr "Eliminar de la lista negra"

#: tpl/crawler/blacklist.tpl.php:22
msgid "Empty blocklist"
msgstr "Vaciar la lista negra"

#: tpl/crawler/blacklist.tpl.php:21
msgid "Are you sure to delete all existing blocklist items?"
msgstr "¿Seguro que quieres borrar todos los elementos de la lista negra?"

#: tpl/crawler/blacklist.tpl.php:86 tpl/crawler/map.tpl.php:103
msgid "Blocklisted due to not cacheable"
msgstr "En la lista negra debido a que no se puede cachear"

#: tpl/crawler/map.tpl.php:89
msgid "Add to Blocklist"
msgstr "Añadir a la lista negra"

#: tpl/crawler/blacklist.tpl.php:42 tpl/crawler/map.tpl.php:78
msgid "Operation"
msgstr "Operación"

#: tpl/crawler/map.tpl.php:52
msgid "Sitemap Total"
msgstr "Total del mapa del sitio"

#: tpl/crawler/map.tpl.php:48
msgid "Sitemap List"
msgstr "Lista del mapa del sitio"

#: tpl/crawler/map.tpl.php:32
msgid "Refresh Crawler Map"
msgstr "Recargar el mapa del rastreador"

#: tpl/crawler/map.tpl.php:29
msgid "Clean Crawler Map"
msgstr "Vaciar el mapa del rastreador"

#: tpl/crawler/blacklist.tpl.php:27 tpl/crawler/entry.tpl.php:16
msgid "Blocklist"
msgstr "Lista negra"

#: tpl/crawler/entry.tpl.php:15
msgid "Map"
msgstr "Mapa"

#: tpl/crawler/entry.tpl.php:14
msgid "Summary"
msgstr "Sumario"

#: tpl/crawler/map.tpl.php:63 tpl/crawler/map.tpl.php:102
msgid "Cache Miss"
msgstr "Fallo de caché"

#: tpl/crawler/map.tpl.php:62 tpl/crawler/map.tpl.php:101
msgid "Cache Hit"
msgstr "Acierto de caché"

#: tpl/crawler/summary.tpl.php:244
msgid "Waiting to be Crawled"
msgstr "Esperando a ser rastreado"

#: tpl/crawler/blacklist.tpl.php:87 tpl/crawler/map.tpl.php:64
#: tpl/crawler/map.tpl.php:104 tpl/crawler/summary.tpl.php:199
#: tpl/crawler/summary.tpl.php:247
msgid "Blocklisted"
msgstr "En lista negra"

#: tpl/crawler/summary.tpl.php:194
msgid "Miss"
msgstr "Fallo"

#: tpl/crawler/summary.tpl.php:189
msgid "Hit"
msgstr "Acierto"

#: tpl/crawler/summary.tpl.php:184
msgid "Waiting"
msgstr "En espera"

#: tpl/crawler/summary.tpl.php:155
msgid "Running"
msgstr "En curso"

#: tpl/crawler/settings.tpl.php:177
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida."

#: src/admin-display.cls.php:211
msgid "Add new cookie to simulate"
msgstr "Añadir una cookie nueva para simular"

#: src/admin-display.cls.php:210
msgid "Remove cookie simulation"
msgstr "Eliminar la simulación de la cookie"

#. translators: %s: Current mobile agents in htaccess
#: tpl/cache/settings_inc.cache_mobile.tpl.php:51
msgid "Htaccess rule is: %s"
msgstr "La regla de Htaccess es: %s"

#. translators: %s: LiteSpeed Cache menu label
#: tpl/cache/more_settings_tip.tpl.php:27
msgid "More settings available under %s menu"
msgstr "Más ajustes disponibles en el menú %s"

#: tpl/cache/settings_inc.browser.tpl.php:63
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar."

#: tpl/cache/settings_inc.browser.tpl.php:25
msgid "OpenLiteSpeed users please check this"
msgstr "Marca esto si eres un usuario de OpenLiteSpeed"

#: tpl/cache/settings_inc.browser.tpl.php:17
msgid "Browser Cache Settings"
msgstr "Ajustes de la caché del navegador"

#: tpl/cache/settings-cache.tpl.php:158
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable."

#: tpl/cache/settings-cache.tpl.php:49
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local."

#: tpl/cache/settings-esi.tpl.php:114
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar"

#: tpl/cache/settings-esi.tpl.php:112
msgid "The above nonces will be converted to ESI automatically."
msgstr "Los nonces anteriores se convertirán en ESI automáticamente."

#: tpl/cache/entry.tpl.php:25 tpl/cache/entry_network.tpl.php:20
msgid "Browser"
msgstr "Navegador"

#: tpl/cache/entry.tpl.php:24 tpl/cache/entry_network.tpl.php:19
msgid "Object"
msgstr "Objeto"

#. translators: %1$s: Object cache name, %2$s: Port number
#: tpl/cache/settings_inc.object.tpl.php:128
#: tpl/cache/settings_inc.object.tpl.php:137
msgid "Default port for %1$s is %2$s."
msgstr "Puerto por defecto de %1$s es %2$s."

#: tpl/cache/settings_inc.object.tpl.php:33
msgid "Object Cache Settings"
msgstr "Ajustes de la caché de objetos"

#: tpl/cache/settings-ttl.tpl.php:111
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio."

#: tpl/cache/settings-ttl.tpl.php:59
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Especifica cuánto tiempo, en segundos, se almacena la página de inicio."

#: tpl/cache/entry.tpl.php:17 tpl/cache/settings-ttl.tpl.php:15
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:86
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan."

#: tpl/page_optm/settings_css.tpl.php:339
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:338
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan."

#: tpl/page_optm/settings_localization.tpl.php:67
msgid "Avatar list in queue waiting for update"
msgstr "La lista de avatares está en la cola esperando ser actualizada"

#: tpl/page_optm/settings_localization.tpl.php:54
msgid "Refresh Gravatar cache by cron."
msgstr "Refrescar la caché de Gravatar por cron."

#: tpl/page_optm/settings_localization.tpl.php:41
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Acelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente)."

#: tpl/page_optm/settings_localization.tpl.php:40
msgid "Store Gravatar locally."
msgstr "Almacenar los gravatares localmente."

#: tpl/page_optm/settings_localization.tpl.php:22
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:154
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "No se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones."

#: tpl/page_optm/settings_media.tpl.php:152
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:136
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos."

#: tpl/page_optm/settings_media.tpl.php:135
msgid "Specify the quality when generating LQIP."
msgstr "Especifica la calidad al generar el LQIP."

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Keep this off to use plain color placeholders."
msgstr "Mantén esto apagado para usar marcadores de posición de color."

#: tpl/page_optm/settings_media.tpl.php:120
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Usa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga."

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Specify the responsive placeholder SVG color."
msgstr "Especifica el color del marcador de posición SVG adaptable."

#: tpl/page_optm/settings_media.tpl.php:91
msgid "Variables %s will be replaced with the configured background color."
msgstr "Las variables %s serán reemplazadas por el color de fondo configurado."

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen."

#: tpl/page_optm/settings_media.tpl.php:89
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Se convertirá en un marcador de posición SVG base64 sobre la marcha."

#: tpl/page_optm/settings_media.tpl.php:88
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Especifica un SVG que se utilizará como marcador de posición al generar localmente."

#: tpl/page_optm/settings_media_exc.tpl.php:118
msgid "Prevent any lazy load of listed pages."
msgstr "Evita cualquier carga diferida de las páginas de la lista."

#: tpl/page_optm/settings_media_exc.tpl.php:104
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Los iframes con estos nombres de clase padres no se cargarán de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:89
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Los marcos que contengan estos nombres de clase no serán cargados de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:75
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida."

#: tpl/page_optm/entry.tpl.php:31
msgid "LiteSpeed Cache Page Optimization"
msgstr "Optimización de página de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:21 tpl/page_optm/settings_media_exc.tpl.php:17
msgid "Media Excludes"
msgstr "Exclusiones de medios"

#: tpl/page_optm/entry.tpl.php:16 tpl/page_optm/settings_css.tpl.php:30
msgid "CSS Settings"
msgstr "Ajustes de CSS"

#: tpl/page_optm/settings_css.tpl.php:339
msgid "%s is recommended."
msgstr "Se recomienda %s."

#: tpl/page_optm/settings_js.tpl.php:77
msgid "Deferred"
msgstr "Diferido"

#: tpl/page_optm/settings_css.tpl.php:336
msgid "Default"
msgstr "Por defecto"

#: tpl/page_optm/settings_html.tpl.php:61
msgid "This can improve the page loading speed."
msgstr "Esto puede mejorar la velocidad de carga de la página."

#: tpl/page_optm/settings_html.tpl.php:60
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc."

#: tpl/banner/new_version_dev.tpl.php:30
msgid "New developer version %s is available now."
msgstr "La nueva versión de desarrollo %s está disponible."

#: tpl/banner/new_version_dev.tpl.php:22
msgid "New Developer Version Available!"
msgstr "¡Nueva versión para desarrolladores disponible!"

#: tpl/banner/cloud_news.tpl.php:51 tpl/banner/cloud_promo.tpl.php:73
msgid "Dismiss this notice"
msgstr "Ignorar ese aviso"

#: tpl/banner/cloud_promo.tpl.php:61
msgid "Tweet this"
msgstr "Tuitea esto"

#: tpl/banner/cloud_promo.tpl.php:45
msgid "Tweet preview"
msgstr "Vista previa del tweet"

#: tpl/banner/cloud_promo.tpl.php:40
#: tpl/page_optm/settings_tuning_css.tpl.php:69
#: tpl/page_optm/settings_tuning_css.tpl.php:144
msgid "Learn more"
msgstr "Aprender más"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "¡Acabas de desbloquear una promoción de QUIC.cloud!"

#: tpl/page_optm/settings_media.tpl.php:271
msgid "The image compression quality setting of WordPress out of 100."
msgstr "El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100."

#: tpl/img_optm/entry.tpl.php:17 tpl/img_optm/entry.tpl.php:22
#: tpl/img_optm/network_settings.tpl.php:19 tpl/img_optm/settings.tpl.php:19
msgid "Image Optimization Settings"
msgstr "Ajustes de optimización de imágenes"

#: tpl/img_optm/summary.tpl.php:377
msgid "Are you sure to destroy all optimized images?"
msgstr "¿Está seguro de destruir todas las imágenes optimizadas?"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use Optimized Files"
msgstr "Usar archivos optimizados"

#: tpl/img_optm/summary.tpl.php:359
msgid "Switch back to using optimized images on your site"
msgstr "Volver a utilizar imágenes optimizadas en tu web"

#: tpl/img_optm/summary.tpl.php:356
msgid "Use Original Files"
msgstr "Usar archivos originales"

#: tpl/img_optm/summary.tpl.php:355
msgid "Use original images (unoptimized) on your site"
msgstr "Usar imágenes originales (no optimizadas) en tu web"

#: tpl/img_optm/summary.tpl.php:350
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Puedes alternar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones normales como a las versiones webp si están disponibles."

#: tpl/img_optm/summary.tpl.php:347
msgid "Optimization Tools"
msgstr "Herramientas de optimización"

#: tpl/img_optm/summary.tpl.php:305
msgid "Rescan New Thumbnails"
msgstr "Reexaminar nuevas miniaturas"

#: tpl/img_optm/summary.tpl.php:289
msgid "Congratulations, all gathered!"
msgstr "¡Felicidades, todos obtenidos!"

#: tpl/img_optm/summary.tpl.php:293
msgid "What is an image group?"
msgstr "¿Qué es un grupo de imágenes?"

#: tpl/img_optm/summary.tpl.php:241
msgid "Delete all backups of the original images"
msgstr "Borrar todas las copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:217
msgid "Calculate Backups Disk Space"
msgstr "Calcular el espacio en disco de las copias de seguridad"

#: tpl/img_optm/summary.tpl.php:108
msgid "Optimization Status"
msgstr "Estado de optimización"

#: tpl/img_optm/summary.tpl.php:69
msgid "Current limit is"
msgstr "El límite actual es"

#: tpl/img_optm/summary.tpl.php:68
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited."
msgstr "Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de grupos de imágenes permitidas en una sola petición es limitada."

#: tpl/img_optm/summary.tpl.php:63
msgid "You can request a maximum of %s images at once."
msgstr "Puedes solicitar un máximo de %s imágenes de una vez."

#: tpl/img_optm/summary.tpl.php:58
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiza las imágenes con nuestro servidor en QUIC.cloud"

#: tpl/db_optm/settings.tpl.php:46
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Las revisiones más recientes se guardarán cuando se limpien las revisiones."

#: tpl/db_optm/settings.tpl.php:44
msgid "Day(s)"
msgstr "Día(s)"

#: tpl/db_optm/settings.tpl.php:32
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones."

#: tpl/db_optm/entry.tpl.php:24
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimización de la base de datos de la caché de LiteSpeed"

#: tpl/db_optm/entry.tpl.php:17 tpl/db_optm/settings.tpl.php:19
msgid "DB Optimization Settings"
msgstr "Ajustes de optimización de la BD"

#: tpl/db_optm/manage.tpl.php:185
msgid "Option Name"
msgstr "Nombre de la opción"

#: tpl/db_optm/manage.tpl.php:171
msgid "Database Summary"
msgstr "Resumen de la base de datos"

#: tpl/db_optm/manage.tpl.php:149
msgid "We are good. No table uses MyISAM engine."
msgstr "Estamos bien. Ninguna tabla usa el motor MyISAM."

#: tpl/db_optm/manage.tpl.php:141
msgid "Convert to InnoDB"
msgstr "Convertir a InnoDB"

#: tpl/db_optm/manage.tpl.php:126
msgid "Tool"
msgstr "Herramienta"

#: tpl/db_optm/manage.tpl.php:125
msgid "Engine"
msgstr "Motor"

#: tpl/db_optm/manage.tpl.php:124
msgid "Table"
msgstr "Tabla"

#: tpl/db_optm/manage.tpl.php:116
msgid "Database Table Engine Converter"
msgstr "Conversor de motor de tabla de base de datos"

#: tpl/db_optm/manage.tpl.php:66
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones"

#: tpl/dash/dashboard.tpl.php:87 tpl/dash/dashboard.tpl.php:806
msgid "Currently active crawler"
msgstr "Rastreador activo"

#: tpl/dash/dashboard.tpl.php:84 tpl/dash/dashboard.tpl.php:803
msgid "Crawler(s)"
msgstr "Rastreador(es)"

#: tpl/crawler/map.tpl.php:77 tpl/dash/dashboard.tpl.php:80
#: tpl/dash/dashboard.tpl.php:799
msgid "Crawler Status"
msgstr "Estado del rastreador"

#: tpl/dash/dashboard.tpl.php:648 tpl/dash/dashboard.tpl.php:692
#: tpl/dash/dashboard.tpl.php:736 tpl/dash/dashboard.tpl.php:780
msgid "Force cron"
msgstr "Forzar cron"

#: tpl/dash/dashboard.tpl.php:645 tpl/dash/dashboard.tpl.php:689
#: tpl/dash/dashboard.tpl.php:733 tpl/dash/dashboard.tpl.php:777
msgid "Requests in queue"
msgstr "Peticiones en cola"

#: tpl/dash/dashboard.tpl.php:638 tpl/dash/dashboard.tpl.php:682
#: tpl/dash/dashboard.tpl.php:726 tpl/dash/dashboard.tpl.php:770
msgid "Time to execute previous request: %s"
msgstr "Hora para ejecutar la solicitud anterior: %s"

#: tpl/dash/dashboard.tpl.php:59 tpl/dash/dashboard.tpl.php:602
msgid "Private Cache"
msgstr "Caché privada"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:601
msgid "Public Cache"
msgstr "Caché pública"

#: tpl/dash/dashboard.tpl.php:53 tpl/dash/dashboard.tpl.php:596
msgid "Cache Status"
msgstr "Estado de caché"

#: tpl/dash/dashboard.tpl.php:571
msgid "Last Pull"
msgstr "Última lectura"

#: tpl/dash/dashboard.tpl.php:519 tpl/img_optm/entry.tpl.php:16
msgid "Image Optimization Summary"
msgstr "Resumen de la optimización de imágenes"

#: tpl/dash/dashboard.tpl.php:511
msgid "Refresh page score"
msgstr "Actualizar la puntuación de la página"

#: tpl/dash/dashboard.tpl.php:382 tpl/img_optm/summary.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:246
#: tpl/page_optm/settings_media.tpl.php:192
#: tpl/page_optm/settings_vpi.tpl.php:59
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?"

#: tpl/dash/dashboard.tpl.php:381 tpl/img_optm/summary.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:246
#: tpl/page_optm/settings_media.tpl.php:192
#: tpl/page_optm/settings_vpi.tpl.php:59
msgid "Current closest Cloud server is %s. Click to redetect."
msgstr "El servidor en la nube más cercano es %s. Haz clic para volver a detectarlo."

#: tpl/dash/dashboard.tpl.php:446
msgid "Refresh page load time"
msgstr "Actualizar el tiempo de carga de la página"

#: tpl/dash/dashboard.tpl.php:353 tpl/general/online.tpl.php:128
msgid "Go to QUIC.cloud dashboard"
msgstr "Ir al escritorio de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:206 tpl/dash/dashboard.tpl.php:711
#: tpl/dash/network_dash.tpl.php:39
msgid "Low Quality Image Placeholder"
msgstr "Marcador de imagen de baja calidad"

#: tpl/dash/dashboard.tpl.php:182
msgid "Sync data from Cloud"
msgstr "Sincronizar los datos de la nube"

#: tpl/dash/dashboard.tpl.php:179
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Estadísticas de uso del servicio QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:292 tpl/dash/network_dash.tpl.php:119
msgid "Total images optimized in this month"
msgstr "Total de imágenes optimizadas en este mes"

#: tpl/dash/dashboard.tpl.php:291 tpl/dash/network_dash.tpl.php:118
msgid "Total Usage"
msgstr "Uso total"

#: tpl/dash/dashboard.tpl.php:273 tpl/dash/network_dash.tpl.php:111
msgid "Pay as You Go Usage Statistics"
msgstr "Estadísticas pago por uso"

#: tpl/dash/dashboard.tpl.php:270 tpl/dash/network_dash.tpl.php:108
msgid "PAYG Balance"
msgstr "Balance de pagos"

#: tpl/dash/network_dash.tpl.php:107
msgid "Pay as You Go"
msgstr "Pago por uso"

#: tpl/dash/dashboard.tpl.php:258 tpl/dash/network_dash.tpl.php:95
msgid "Usage"
msgstr "Uso"

#: tpl/dash/dashboard.tpl.php:258 tpl/dash/network_dash.tpl.php:95
msgid "Fast Queue Usage"
msgstr "Uso de la cola rápida"

#: tpl/dash/dashboard.tpl.php:205 tpl/dash/network_dash.tpl.php:38
msgid "CDN Bandwidth"
msgstr "Ancho de banda de la CDN"

#: tpl/dash/entry.tpl.php:29
msgid "LiteSpeed Cache Dashboard"
msgstr "Escritorio de LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:21
msgid "Network Dashboard"
msgstr "Escritorio de red"

#: tpl/general/online.tpl.php:51
msgid "No cloud services currently in use"
msgstr "No hay servicios de la nube en uso"

#: tpl/general/online.tpl.php:31
msgid "Click to clear all nodes for further redetection."
msgstr "Haz clic para borrar todos los nodos para volver a detectar."

#: tpl/general/online.tpl.php:30
msgid "Current Cloud Nodes in Service"
msgstr "Nodos de la nube actual en servicio"

#: tpl/cdn/qc.tpl.php:126 tpl/cdn/qc.tpl.php:133 tpl/dash/dashboard.tpl.php:359
#: tpl/general/online.tpl.php:153
msgid "Link to QUIC.cloud"
msgstr "Enlace a QUIC.cloud"

#: tpl/general/entry.tpl.php:17 tpl/general/entry.tpl.php:23
#: tpl/general/network_settings.tpl.php:19 tpl/general/settings.tpl.php:24
msgid "General Settings"
msgstr "Ajustes generales"

#: tpl/cdn/other.tpl.php:136
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN."

#: src/admin-display.cls.php:233
msgid "Add new CDN URL"
msgstr "Añadir una nueva URL de la CDN"

#: src/admin-display.cls.php:232
msgid "Remove CDN URL"
msgstr "Eliminar la URL de la CDN"

#: tpl/cdn/cf.tpl.php:102
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN."

#: tpl/cdn/entry.tpl.php:14
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:17
msgid "WooCommerce Settings"
msgstr "Ajustes de WooCommerce"

#: src/doc.cls.php:155
msgid "Current Online Server IPs"
msgstr "IPs del servidor en línea"

#: src/doc.cls.php:154
msgid "Before generating key, please verify all IPs on this list are allowlisted"
msgstr "Antes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blanca"

#: src/doc.cls.php:153
msgid "For online services to work correctly, you must allowlist all %s server IPs."
msgstr "Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor."

#: src/gui.cls.php:638 src/gui.cls.php:820
#: tpl/page_optm/settings_media.tpl.php:139 tpl/toolbox/purge.tpl.php:100
msgid "LQIP Cache"
msgstr "Caché de LQIP"

#: src/admin-settings.cls.php:274 src/admin-settings.cls.php:308
msgid "Options saved."
msgstr "Las opciones han sido guardadas."

#: src/img-optm.cls.php:1729
msgid "Removed backups successfully."
msgstr "Copias de seguridad eliminadas correctamente."

#: src/img-optm.cls.php:1637
msgid "Calculated backups successfully."
msgstr "Copias de seguridad calculadas correctamente."

#: src/img-optm.cls.php:1571
msgid "Rescanned %d images successfully."
msgstr "%d imágenes reexploradas correctamente."

#: src/img-optm.cls.php:1509 src/img-optm.cls.php:1571
msgid "Rescanned successfully."
msgstr "Reexploración correcta."

#: src/img-optm.cls.php:1444
msgid "Destroy all optimization data successfully."
msgstr "Todos los datos de optimización destruidos correctamente."

#: src/img-optm.cls.php:1343
msgid "Cleaned up unfinished data successfully."
msgstr "Datos incompletos limpiados correctamente."

#: src/img-optm.cls.php:962
msgid "Pull Cron is running"
msgstr "Pull Cron se está ejecutando"

#: src/img-optm.cls.php:686
msgid "No valid image found by Cloud server in the current request."
msgstr "El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual."

#: src/img-optm.cls.php:661
msgid "No valid image found in the current request."
msgstr "No se ha encontrado ninguna imagen válida en la petición actual."

#: src/img-optm.cls.php:343
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s enviadas al servidor en la nube, %2$s aceptadas."

#: src/lang.cls.php:266
msgid "Revisions Max Age"
msgstr "Edad máxima de las revisiones"

#: src/lang.cls.php:265
msgid "Revisions Max Number"
msgstr "Número máximo de revisiones"

#: src/lang.cls.php:262
msgid "Debug URI Excludes"
msgstr "URIs excluidas de la depuración"

#: src/lang.cls.php:261
msgid "Debug URI Includes"
msgstr "URIs incluidas en la depuración"

#: src/lang.cls.php:241
msgid "HTML Attribute To Replace"
msgstr "Atributo HTML a reemplazar"

#: src/lang.cls.php:235
msgid "Use CDN Mapping"
msgstr "Usar mapeo de CDN"

#: tpl/general/online.tpl.php:100
msgid "QUIC.cloud CDN:"
msgstr "CDN de QUIC.cloud:"

#: src/lang.cls.php:233
msgid "Editor Heartbeat TTL"
msgstr "TTL de heartbeat del editor"

#: src/lang.cls.php:232
msgid "Editor Heartbeat"
msgstr "Heartbeat del editor"

#: src/lang.cls.php:231
msgid "Backend Heartbeat TTL"
msgstr "TTL de heartbeat de la administración"

#: src/lang.cls.php:230
msgid "Backend Heartbeat Control"
msgstr "Control de heartbeat de la administración"

#: src/lang.cls.php:229
msgid "Frontend Heartbeat TTL"
msgstr "TTL de heartbeat de la parte pública"

#: src/lang.cls.php:228
msgid "Frontend Heartbeat Control"
msgstr "Control de heartbeat de la parte pública"

#: tpl/toolbox/edit_htaccess.tpl.php:71
msgid "Backend .htaccess Path"
msgstr "Ruta del .htaccess de la administración"

#: tpl/toolbox/edit_htaccess.tpl.php:53
msgid "Frontend .htaccess Path"
msgstr "Ruta del .htaccess de la parte pública"

#: src/lang.cls.php:218
msgid "ESI Nonces"
msgstr "Nonces de ESI"

#: src/lang.cls.php:214
msgid "WordPress Image Quality Control"
msgstr "Control de la calidad de imagen de WordPress"

#: src/lang.cls.php:206
msgid "Auto Request Cron"
msgstr "Cron de petición automática"

#: src/lang.cls.php:200
msgid "Generate LQIP In Background"
msgstr "Generar LQIP en segundo plano"

#: src/lang.cls.php:198
msgid "LQIP Minimum Dimensions"
msgstr "Dimensiones mínimas de LQIP"

#: src/lang.cls.php:197
msgid "LQIP Quality"
msgstr "Calidad de LQIP"

#: src/lang.cls.php:196
msgid "LQIP Cloud Generator"
msgstr "Generador de LQIP en la nube"

#: src/lang.cls.php:195
msgid "Responsive Placeholder SVG"
msgstr "Marcador de posición SVG adaptable"

#: src/lang.cls.php:194
msgid "Responsive Placeholder Color"
msgstr "Color del marcador de posición adaptable"

#: src/lang.cls.php:192
msgid "Basic Image Placeholder"
msgstr "Marcador de posición de imagen básica"

#: src/lang.cls.php:190
msgid "Lazy Load URI Excludes"
msgstr "Exclusión de URIs de carga diferida"

#: src/lang.cls.php:189
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padre de iframes"

#: src/lang.cls.php:188
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases de iframes"

#: src/lang.cls.php:187
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padres"

#: src/lang.cls.php:182
msgid "Gravatar Cache TTL"
msgstr "TTL de la caché de Gravatar"

#: src/lang.cls.php:181
msgid "Gravatar Cache Cron"
msgstr "Cron de la caché de Gravatar"

#: src/gui.cls.php:648 src/gui.cls.php:830 src/lang.cls.php:180
#: tpl/presets/standard.tpl.php:49 tpl/toolbox/purge.tpl.php:109
msgid "Gravatar Cache"
msgstr "Caché de Gravatar"

#: src/lang.cls.php:160
msgid "DNS Prefetch Control"
msgstr "Control del prefetch DNS"

#: src/lang.cls.php:155 tpl/presets/standard.tpl.php:46
msgid "Font Display Optimization"
msgstr "Optimización de visualización de fuentes"

#: src/lang.cls.php:132
msgid "Force Public Cache URIs"
msgstr "Forzar URIs de caché púbica"

#: src/lang.cls.php:103
msgid "Notifications"
msgstr "Avisos"

#: src/lang.cls.php:97
msgid "Default HTTP Status Code Page TTL"
msgstr "TTL del código de estado de página por defecto"

#: src/lang.cls.php:96
msgid "Default REST TTL"
msgstr "TTL por defecto de REST"

#: src/lang.cls.php:90
msgid "Enable Cache"
msgstr "Activa cache"

#: src/cloud.cls.php:233 src/cloud.cls.php:285 src/lang.cls.php:86
msgid "Server IP"
msgstr "IP del servidor"

#: src/lang.cls.php:25
msgid "Images not requested"
msgstr "Imágenes no solicitadas"

#: src/cloud.cls.php:1994
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube."

#: src/cloud.cls.php:1614
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Fallo de comunicación con el servidor QUIC.cloud"

#: src/cloud.cls.php:1537
msgid "Good news from QUIC.cloud server"
msgstr "Buenas noticias del servidor QUIC.cloud"

#: src/cloud.cls.php:1521 src/cloud.cls.php:1529
msgid "Message from QUIC.cloud server"
msgstr "Mensaje del servidor QUIC.cloud"

#: src/cloud.cls.php:1228
msgid "Please try after %1$s for service %2$s."
msgstr "Por favor, inténtalo después de %1$s para el servicio %2$s."

#: src/cloud.cls.php:1084
msgid "No available Cloud Node."
msgstr "No hay ningún nodo de la nube disponible."

#: src/cloud.cls.php:967 src/cloud.cls.php:980 src/cloud.cls.php:1018
#: src/cloud.cls.php:1084 src/cloud.cls.php:1225
msgid "Cloud Error"
msgstr "Error de la nube"

#: src/data.cls.php:220
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado."

#: src/media.cls.php:403
msgid "Restore from backup"
msgstr "Restaurar desde la copia de seguridad"

#: src/media.cls.php:388
msgid "No backup of unoptimized WebP file exists."
msgstr "No existe una copia de seguridad del archivo WebP no optimizado."

#: src/media.cls.php:374
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Archivo WebP reducido en %1$s (%2$s)"

#: src/media.cls.php:366
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo WebP."

#: src/media.cls.php:359
msgid "Currently using optimized version of WebP file."
msgstr "Actualmente usando la versión optimizada del archivo WebP."

#: src/media.cls.php:337
msgid "Orig"
msgstr "Original"

#: src/media.cls.php:335
msgid "(no savings)"
msgstr "(sin reducción)"

#: src/media.cls.php:335
msgid "Orig %s"
msgstr "Original %s"

#: src/media.cls.php:334
msgid "Congratulation! Your file was already optimized"
msgstr "¡Felicidades! Tu archivo ya ha sido optimizado"

#: src/media.cls.php:329
msgid "No backup of original file exists."
msgstr "No existe una copia de seguridad del archivo original."

#: src/media.cls.php:329 src/media.cls.php:387
msgid "Using optimized version of file. "
msgstr "Usando la versión optimizada del archivo. "

#: src/media.cls.php:322
msgid "Orig saved %s"
msgstr "Ahorrado un %s del original"

#: src/media.cls.php:318
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Archivo original reducido en %1$s (%2$s)"

#: src/media.cls.php:312 src/media.cls.php:367
msgid "Click to switch to optimized version."
msgstr "Haz clic para cambiar a la versión optimizada."

#: src/media.cls.php:312
msgid "Currently using original (unoptimized) version of file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo."

#: src/media.cls.php:311 src/media.cls.php:363
msgid "(non-optm)"
msgstr "(no-optm)"

#: src/media.cls.php:308 src/media.cls.php:360
msgid "Click to switch to original (unoptimized) version."
msgstr "Haz clic para cambiar a la versión original (no optimizada)."

#: src/media.cls.php:308
msgid "Currently using optimized version of file."
msgstr "Actualmente usando la versión optimizada del archivo."

#: src/media.cls.php:307 src/media.cls.php:330 src/media.cls.php:356
#: src/media.cls.php:389
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:141
msgid "LQIP image preview for size %s"
msgstr "Vista previa de la imagen LQIP para el tamaño %s"

#: src/placeholder.cls.php:84
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:1409
msgid "Previously existed in blocklist"
msgstr "Anteriormente existía en la lista negra"

#: src/crawler.cls.php:1406
msgid "Manually added to blocklist"
msgstr "Añadido manualmente a la lista negra"

#: src/htaccess.cls.php:328
msgid "Mobile Agent Rules"
msgstr "Reglas de agente móvil"

#: src/crawler-map.cls.php:376
msgid "Sitemap created successfully: %d items"
msgstr "Mapa del sitio creado con éxito: %d elementos"

#: src/crawler-map.cls.php:279
msgid "Sitemap cleaned successfully"
msgstr "El mapa del sitio se limpió con éxito"

#: src/admin-display.cls.php:1188
msgid "Invalid IP"
msgstr "IP no válida"

#: src/admin-display.cls.php:1163
msgid "Value range"
msgstr "Rango de valores"

#: src/admin-display.cls.php:1160
msgid "Smaller than"
msgstr "Más pequeño que"

#: src/admin-display.cls.php:1158
msgid "Larger than"
msgstr "Mayor que"

#: src/admin-display.cls.php:1152
msgid "Zero, or"
msgstr "Cero, o"

#: src/admin-display.cls.php:1140
msgid "Maximum value"
msgstr "Valor máximo"

#: src/admin-display.cls.php:1137
msgid "Minimum value"
msgstr "Valor mínimo"

#: src/admin-display.cls.php:1119
msgid "Path must end with %s"
msgstr "La ruta debe terminar en %s"

#: src/admin-display.cls.php:1102
msgid "Invalid rewrite rule"
msgstr "Regla de reescritura no válida"

#: src/admin-display.cls.php:1033
msgid "currently set to %s"
msgstr "actualmente establecido en %s"

#: src/admin-display.cls.php:1026
msgid "This setting is overwritten by the PHP constant %s"
msgstr "Este ajuste es sobrescrita por la constante %s de PHP"

#: src/admin-display.cls.php:138
msgid "Toolbox"
msgstr "Herramientas"

#: src/admin-display.cls.php:134
msgid "Database"
msgstr "Base de datos"

#: src/admin-display.cls.php:132 tpl/dash/dashboard.tpl.php:204
#: tpl/dash/network_dash.tpl.php:37 tpl/general/online.tpl.php:83
#: tpl/general/online.tpl.php:133 tpl/general/online.tpl.php:148
msgid "Page Optimization"
msgstr "Optimización de página"

#: src/admin-display.cls.php:120 tpl/dash/entry.tpl.php:16
msgid "Dashboard"
msgstr "Escritorio"

#: src/db-optm.cls.php:292
msgid "Converted to InnoDB successfully."
msgstr "Convertido a InnoDB correctamente."

#: src/purge.cls.php:327
msgid "Cleaned all Gravatar files."
msgstr "Vaciados todos los archivos de Gravatar."

#: src/purge.cls.php:310
msgid "Cleaned all LQIP files."
msgstr "Vaciados todos los archivos LQIP."

#: src/error.cls.php:207
msgid "Unknown error"
msgstr "Error desconocido"

#: src/error.cls.php:196
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior."

#: src/error.cls.php:191
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: "

#: src/error.cls.php:186
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores."

#: src/error.cls.php:182
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash."

#: src/error.cls.php:178
msgid "Your application is waiting for approval."
msgstr "Tu solicitud está a la espera de aprobación."

#: src/error.cls.php:172
msgid "Previous request too recent. Please try again after %s."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s."

#: src/error.cls.php:167
msgid "Previous request too recent. Please try again later."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde."

#: src/error.cls.php:163
msgid "Crawler disabled by the server admin."
msgstr "Rastreador desactivado por el administrador del servidor."

#: src/error.cls.php:159
msgid "Failed to create table %1$s! SQL: %2$s."
msgstr "¡Error al crear la tabla %1$s! SQL: %2$s."

#: src/error.cls.php:135
msgid "Could not find %1$s in %2$s."
msgstr "No se ha podido encontrar %1$s en %2$s."

#: src/error.cls.php:123
msgid "Credits are not enough to proceed the current request."
msgstr "Los créditos no son suficientes para proceder con la solicitud actual."

#: src/error.cls.php:111
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio."

#: src/error.cls.php:92
msgid "There is proceeding queue not pulled yet."
msgstr "Hay una cola de procedimiento que no se ha retirado todavía."

#: src/error.cls.php:88
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "No hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamente"

#: src/error.cls.php:84
msgid "The image list is empty."
msgstr "La lista de imágenes está vacía."

#: src/task.cls.php:233
msgid "LiteSpeed Crawler Cron"
msgstr "Cron del rastreador de LiteSpeed"

#: src/task.cls.php:214
msgid "Every Minute"
msgstr "Cada minuto"

#: tpl/general/settings.tpl.php:119
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones."

#: tpl/toolbox/report.tpl.php:105
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe."

#. translators: %s: Link tags
#: tpl/toolbox/report.tpl.php:112
msgid "Generated links may be managed under %sSettings%s."
msgstr "Los enlaces generados pueden gestionarse en los %sAjustes%s."

#: tpl/toolbox/report.tpl.php:107
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior."

#: tpl/toolbox/report.tpl.php:48
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s."

#: tpl/banner/cloud_news.tpl.php:30 tpl/banner/cloud_news.tpl.php:41
msgid "Install"
msgstr "Instalar"

#: tpl/cache/settings-esi.tpl.php:46
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN."

#: tpl/banner/score.php:74 tpl/dash/dashboard.tpl.php:455
msgid "PageSpeed Score"
msgstr "Puntuación de PageSpeed"

#: tpl/banner/score.php:62 tpl/banner/score.php:96
#: tpl/dash/dashboard.tpl.php:410 tpl/dash/dashboard.tpl.php:486
msgid "Improved by"
msgstr "Mejorado por"

#: tpl/banner/score.php:53 tpl/banner/score.php:87
#: tpl/dash/dashboard.tpl.php:402 tpl/dash/dashboard.tpl.php:478
msgid "After"
msgstr "Después"

#: tpl/banner/score.php:45 tpl/banner/score.php:79
#: tpl/dash/dashboard.tpl.php:394 tpl/dash/dashboard.tpl.php:470
msgid "Before"
msgstr "Antes"

#: tpl/banner/score.php:40 tpl/dash/dashboard.tpl.php:374
msgid "Page Load Time"
msgstr "Tiempo de carga de la página"

#: tpl/inc/check_cache_disabled.php:20
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud."

#: src/lang.cls.php:211
msgid "Preserve EXIF/XMP data"
msgstr "Conservar los datos EXIF/XMP"

#: tpl/toolbox/beta_test.tpl.php:32
msgid "Try GitHub Version"
msgstr "Probar versión de GitHub"

#: tpl/cdn/other.tpl.php:112
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s."

#: src/doc.cls.php:124
msgid "Both full and partial strings can be used."
msgstr "Se pueden usa cadenas parciales y completas."

#: tpl/page_optm/settings_media_exc.tpl.php:60
msgid "Images containing these class names will not be lazy loaded."
msgstr "Las imágenes que contengan estos nombres de clases no tendrán carga diferida."

#: src/lang.cls.php:186
msgid "Lazy Load Image Class Name Excludes"
msgstr "Exclusión de nombres de clases para carga diferida de imágenes"

#: tpl/cache/settings-cache.tpl.php:139 tpl/cache/settings-cache.tpl.php:164
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s."

#: tpl/cache/settings-cache.tpl.php:136 tpl/cache/settings-cache.tpl.php:161
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI."

#: tpl/banner/new_version.php:93
msgid "Maybe Later"
msgstr "Puede que más tarde"

#: tpl/banner/new_version.php:87
msgid "Turn On Auto Upgrade"
msgstr "Activar la actualización automática"

#: tpl/banner/new_version.php:77 tpl/banner/new_version_dev.tpl.php:41
#: tpl/toolbox/beta_test.tpl.php:77
msgid "Upgrade"
msgstr "Actualizar"

#: tpl/banner/new_version.php:66
msgid "New release %s is available now."
msgstr "La nueva versión %s está disponible ahora."

#: tpl/banner/new_version.php:58
msgid "New Version Available!"
msgstr "¡Nueva versión disponible!"

#: tpl/banner/score.php:121
msgid "Created with ❤️ by LiteSpeed team."
msgstr "Creado con ❤️ por el equipo de LiteSpeed."

#: tpl/banner/score.php:112
msgid "Sure I'd love to review!"
msgstr "¡Por supuesto, me encantará valorarlo!"

#: tpl/banner/score.php:36
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "¡Gracias por usar el plugin de caché LiteSpeed!"

#: src/activation.cls.php:526
msgid "Upgraded successfully."
msgstr "Actualizado con éxito."

#: src/activation.cls.php:517 src/activation.cls.php:522
msgid "Failed to upgrade."
msgstr "Fallo al actualizar."

#: src/conf.cls.php:688
msgid "Changed setting successfully."
msgstr "Ajuste cambiado con éxito."

#: tpl/cache/settings-esi.tpl.php:37
msgid "ESI sample for developers"
msgstr "Muestra de ESI para desarrolaldores"

#: tpl/cache/settings-esi.tpl.php:29
msgid "Replace %1$s with %2$s."
msgstr "Reemplaza %1$s con %2$s."

#: tpl/cache/settings-esi.tpl.php:26
msgid "You can turn shortcodes into ESI blocks."
msgstr "Puedes convertir shortcodes en bloques ESI."

#: tpl/cache/settings-esi.tpl.php:22
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Caché privada o caché pública"

#: tpl/page_optm/settings_html.tpl.php:132
msgid "Append query string %s to the resources to bypass this action."
msgstr "Añade la cadena de consulta %s a los recursos para evitar esta acción."

#: tpl/page_optm/settings_html.tpl.php:127
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA se omitirá automáticamente."

#: tpl/crawler/settings.tpl.php:172
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado."

#: src/admin-display.cls.php:208 tpl/crawler/settings.tpl.php:179
msgid "Cookie Values"
msgstr "Valores de la cookie"

#: src/admin-display.cls.php:207
msgid "Cookie Name"
msgstr "Nombre de la cookie"

#: src/lang.cls.php:252
msgid "Cookie Simulation"
msgstr "Simulación de cookie"

#: tpl/page_optm/settings_html.tpl.php:146
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:25
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre."

#: src/lang.cls.php:100
msgid "Automatically Upgrade"
msgstr "Actualizar automáticamente"

#: tpl/toolbox/settings-debug.tpl.php:74
msgid "Your IP"
msgstr "Tu IP"

#: src/import.cls.php:155
msgid "Reset successfully."
msgstr "Restablecimiento realizado con éxito."

#: tpl/toolbox/import_export.tpl.php:67
msgid "This will reset all settings to default settings."
msgstr "Esto restablecerá todos los ajustes a su valores predeterminados."

#: tpl/toolbox/import_export.tpl.php:63
msgid "Reset All Settings"
msgstr "Restablecer todos los ajustes"

#: tpl/page_optm/settings_tuning_css.tpl.php:128
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separa archivos CSS críticos al generar las rutas que contengan estas cadenas."

#: src/lang.cls.php:170
msgid "Separate CCSS Cache URIs"
msgstr "Distintas URIs de caché CCSS"

#: tpl/page_optm/settings_tuning_css.tpl.php:114
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:113
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS."

#: src/lang.cls.php:169
msgid "Separate CCSS Cache Post Types"
msgstr "Tipos de contenido de caché de CCSS distintos"

#: tpl/page_optm/settings_media.tpl.php:198
msgid "Size list in queue waiting for cron"
msgstr "Tamaño de la lista en la cola de espera del cron"

#: tpl/page_optm/settings_media.tpl.php:173
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s."

#: tpl/page_optm/settings_media.tpl.php:170
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto."

#: tpl/page_optm/settings_media.tpl.php:74
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes."

#: src/lang.cls.php:193
msgid "Responsive Placeholder"
msgstr "Marcador de posición adaptable"

#: tpl/toolbox/purge.tpl.php:101
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP"

#: tpl/inc/check_cache_disabled.php:31
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Por favor, activa LiteSpeed Cache en los ajustes del plugin."

#: tpl/inc/check_cache_disabled.php:25
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento."

#: src/cloud.cls.php:1393 src/cloud.cls.php:1416
msgid "Failed to request via WordPress"
msgstr "Fallo en la solicitud desde WordPress"

#. Description of the plugin
#: litespeed-cache.php
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed"

#: src/img-optm.cls.php:2083
msgid "Reset the optimized data successfully."
msgstr "Datos de optimización restablecidos correctamente."

#: src/gui.cls.php:893
msgid "Update %s now"
msgstr "Actualizar %s"

#: src/gui.cls.php:890
msgid "View %1$s version %2$s details"
msgstr "Ver detalles de la versión %2$s de %1$s"

#: src/gui.cls.php:888
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>ver detalles de la versión %3$s</a> o <a href=\"%4$s\" %5$s target=\"_blank\">actualiza ya</a>."

#: src/gui.cls.php:868
msgid "Install %s"
msgstr "Instalar %s"

#: tpl/inc/check_cache_disabled.php:40
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!"

#: src/cloud.cls.php:1547
msgid "%1$s plugin version %2$s required for this action."
msgstr "Para esta acción se necesita la versión %2$s del plugin %1$s."

#: src/cloud.cls.php:1476
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente."

#: tpl/img_optm/settings.tpl.php:60
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas."

#: src/lang.cls.php:208
msgid "Remove Original Backups"
msgstr "Eliminar copias de seguridad del orginal"

#: tpl/img_optm/settings.tpl.php:34
msgid "Automatically request optimization via cron job."
msgstr "Solicitar automáticamente la optimización mediante un trabajo cron."

#: tpl/img_optm/summary.tpl.php:188
msgid "A backup of each image is saved before it is optimized."
msgstr "Se guarda una copia de seguridad de cada imagen antes de optimizarla."

#: src/img-optm.cls.php:1876
msgid "Switched images successfully."
msgstr "Imágenes cambiadas correctamente."

#: tpl/img_optm/settings.tpl.php:81
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida."

#: tpl/img_optm/settings.tpl.php:80
msgid "Optimize images using lossless compression."
msgstr "Optimizar imágenes usando compresión sin pérdida."

#: src/lang.cls.php:210
msgid "Optimize Losslessly"
msgstr "Optimizar sin pérdida"

#: tpl/img_optm/settings.media_webp.tpl.php:25
msgid "Request WebP/AVIF versions of original images when doing optimization."
msgstr "Solicita versiones WebP/AVIF de las imágenes originales al hacer la optimización."

#: tpl/img_optm/settings.tpl.php:47
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta."

#: src/lang.cls.php:207
msgid "Optimize Original Images"
msgstr "Optimizar imágenes originales"

#: tpl/page_optm/settings_css.tpl.php:218
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google."

#: src/purge.cls.php:253
msgid "Cleaned all Critical CSS files."
msgstr "Limpiados todos los archivos CSS críticos."

#: tpl/page_optm/settings_css.tpl.php:325
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado."

#: src/lang.cls.php:154
msgid "Inline CSS Async Lib"
msgstr "Biblioteca de CSS integrado asíncrono"

#: tpl/page_optm/settings_localization.tpl.php:72
#: tpl/page_optm/settings_media.tpl.php:216
msgid "Run Queue Manually"
msgstr "Ejecutar la cola manualmente"

#: tpl/page_optm/settings_css.tpl.php:115
#: tpl/page_optm/settings_css.tpl.php:252 tpl/page_optm/settings_vpi.tpl.php:65
msgid "URL list in %s queue waiting for cron"
msgstr "Lista de URL en cola %s esperando el cron"

#: tpl/page_optm/settings_css.tpl.php:103
#: tpl/page_optm/settings_css.tpl.php:240
msgid "Last requested cost"
msgstr "Último coste solicitado"

#: tpl/page_optm/settings_css.tpl.php:100
#: tpl/page_optm/settings_css.tpl.php:237
#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_vpi.tpl.php:53
msgid "Last generated"
msgstr "Último generado"

#: tpl/page_optm/settings_media.tpl.php:178
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página."

#: tpl/page_optm/settings_css.tpl.php:217
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron."

#: tpl/page_optm/settings_css.tpl.php:213
msgid "Optimize CSS delivery."
msgstr "Optimiza la entrega de CSS."

#: tpl/toolbox/purge.tpl.php:74
msgid "This will delete all generated critical CSS files"
msgstr "Esto borrará todos los archivos generados de CSS crítico"

#: tpl/dash/dashboard.tpl.php:623 tpl/toolbox/purge.tpl.php:73
msgid "Critical CSS"
msgstr "CSS crítico"

#: src/doc.cls.php:66
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente purgados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché."

#: tpl/toolbox/heartbeat.tpl.php:28
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar."

#: src/utility.cls.php:228
msgid "right now"
msgstr "ahora mismo"

#: src/utility.cls.php:228
msgid "just now"
msgstr "ahora mismo"

#: tpl/img_optm/summary.tpl.php:259
msgid "Saved"
msgstr "Guardado"

#: tpl/img_optm/summary.tpl.php:253
#: tpl/page_optm/settings_localization.tpl.php:61
msgid "Last ran"
msgstr "Última ejecución"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:245
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "¡No podrás revertir la optimización una vez eliminadas las copias de seguridad!"

#: tpl/img_optm/settings.tpl.php:65 tpl/img_optm/summary.tpl.php:244
msgid "This is irreversible."
msgstr "Esto es irreversible."

#: tpl/img_optm/summary.tpl.php:265
msgid "Remove Original Image Backups"
msgstr "Eliminar copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:264
msgid "Are you sure you want to remove all image backups?"
msgstr "¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?"

#: tpl/crawler/blacklist.tpl.php:31 tpl/img_optm/summary.tpl.php:201
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:198 tpl/img_optm/summary.tpl.php:256
msgid "Files"
msgstr "Archivos"

#: tpl/img_optm/summary.tpl.php:194
msgid "Last calculated"
msgstr "Último cálculo"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calcular almacenamiento original de imágenes"

#: tpl/img_optm/summary.tpl.php:184
msgid "Storage Optimization"
msgstr "Optimización de almacenamiento"

#: tpl/img_optm/settings.tpl.php:139
msgid "Enable replacement of WebP/AVIF in %s elements that were generated outside of WordPress logic."
msgstr "Activar reemplazo de WebP/AVIF en los elementos %s generados fuera de la lógica de WordPress."

#: tpl/cdn/other.tpl.php:141 tpl/img_optm/settings.tpl.php:125
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Usa el formato %1$s o %2$s (el elemento es opcional)."

#: tpl/cdn/other.tpl.php:137 tpl/img_optm/settings.tpl.php:124
msgid "Only attributes listed here will be replaced."
msgstr "Solo los atributos aquí listados serán reemplazados."

#: tpl/img_optm/settings.tpl.php:123
msgid "Specify which element attributes will be replaced with WebP/AVIF."
msgstr "Especificar que atributos de elementos serán reemplazados con WebP/AVIF."

#: src/lang.cls.php:212
msgid "WebP/AVIF Attribute To Replace"
msgstr "Atributo a reemplazar para WebP/AVIF"

#: tpl/cdn/other.tpl.php:196
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Solo los archivos en estos directorios apuntarán a la CDN."

#: src/lang.cls.php:243
msgid "Included Directories"
msgstr "Directorios incluidos"

#: tpl/cache/settings-purge.tpl.php:152
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Se iniciará una purga completa cuando WordPress ejecute estos ganchos."

#: src/lang.cls.php:220
msgid "Purge All Hooks"
msgstr "Ganchos de purgar todo"

#: src/purge.cls.php:212
msgid "Purged all caches successfully."
msgstr "Todas las cachés purgadas correctamente."

#: src/gui.cls.php:562 src/gui.cls.php:691 src/gui.cls.php:744
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:506
msgid "Forced cacheable"
msgstr "Forzar cacheables"

#: tpl/cache/settings-cache.tpl.php:133
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables."

#: src/lang.cls.php:131
msgid "Force Cache URIs"
msgstr "Forzar URLs en caché"

#: tpl/cache/network_settings-excludes.tpl.php:17
#: tpl/cache/settings-excludes.tpl.php:15
msgid "Exclude Settings"
msgstr "Ajustes de exclusión"

#: tpl/toolbox/settings-debug.tpl.php:45
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Esto desactivará LSCache y todas las características de optimización con propósitos de depuración."

#: src/lang.cls.php:255
msgid "Disable All Features"
msgstr "Desactivar todas las características"

#: src/gui.cls.php:599 src/gui.cls.php:781 tpl/toolbox/purge.tpl.php:64
msgid "Opcode Cache"
msgstr "Caché opcode"

#: src/gui.cls.php:570 src/gui.cls.php:752 tpl/toolbox/purge.tpl.php:47
msgid "CSS/JS Cache"
msgstr "Caché CSS/JS"

#: src/gui.cls.php:849 tpl/img_optm/summary.tpl.php:176
msgid "Remove all previous unfinished image optimization requests."
msgstr "Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar."

#: src/gui.cls.php:850 tpl/img_optm/summary.tpl.php:178
msgid "Clean Up Unfinished Data"
msgstr "Limpiar datos no finalizados"

#: tpl/banner/slack.php:40
msgid "Join Us on Slack"
msgstr "Únete a nuestro Slack"

#. translators: %s: Link to LiteSpeed Slack community
#: tpl/banner/slack.php:28
msgid "Join the %s community."
msgstr "Únete a la comunidad %s."

#: tpl/banner/slack.php:24
msgid "Want to connect with other LiteSpeed users?"
msgstr "¿Quieres conectar con otros usuarios de LiteSpeed?"

#: tpl/cdn/cf.tpl.php:38
msgid "Your API key / token is used to access %s APIs."
msgstr "Tu clave de la API/token se usa para acceder a las API de %s."

#: tpl/cdn/cf.tpl.php:47
msgid "Your Email address on %s."
msgstr "Tu dirección de email en %s."

#: tpl/cdn/cf.tpl.php:31
msgid "Use %s API functionality."
msgstr "Usar la funcionalidad de la API %s."

#: tpl/cdn/other.tpl.php:80
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos."

#: tpl/inc/admin_footer.php:23
msgid "Join LiteSpeed Slack community"
msgstr "Únete a la comunidad de Slack de LiteSpeed"

#: tpl/inc/admin_footer.php:21
msgid "Visit LSCWP support forum"
msgstr "Visita el foro de soporte de LSCWP"

#: src/lang.cls.php:28 tpl/dash/dashboard.tpl.php:560
msgid "Images notified to pull"
msgstr "Imágenes avisadas para descargar"

#: tpl/img_optm/summary.tpl.php:291
msgid "What is a group?"
msgstr "¿Qué es un grupo?"

#: src/admin-display.cls.php:1256
msgid "%s image"
msgstr "%s imagen"

#: src/admin-display.cls.php:1253
msgid "%s group"
msgstr "%s grupo"

#: src/admin-display.cls.php:1244
msgid "%s images"
msgstr "%s imágenes"

#: src/admin-display.cls.php:1241
msgid "%s groups"
msgstr "%s grupos"

#: src/crawler.cls.php:1235
msgid "Guest"
msgstr "Invitado"

#: tpl/crawler/settings.tpl.php:109
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar."

#: src/lang.cls.php:251
msgid "Role Simulation"
msgstr "Simulación de rol"

#: tpl/crawler/summary.tpl.php:232
msgid "running"
msgstr "ejecutando"

#: tpl/db_optm/manage.tpl.php:187
msgid "Size"
msgstr "Tamaño"

#: tpl/crawler/summary.tpl.php:123 tpl/dash/dashboard.tpl.php:103
#: tpl/dash/dashboard.tpl.php:822
msgid "Ended reason"
msgstr "Razón de finalización"

#: tpl/crawler/summary.tpl.php:116 tpl/dash/dashboard.tpl.php:97
#: tpl/dash/dashboard.tpl.php:816
msgid "Last interval"
msgstr "Último intervalo"

#: tpl/crawler/summary.tpl.php:104 tpl/dash/dashboard.tpl.php:91
#: tpl/dash/dashboard.tpl.php:810
msgid "Current crawler started at"
msgstr "El rastreador actual comenzó a las"

#: tpl/crawler/summary.tpl.php:97
msgid "Run time for previous crawler"
msgstr "Hora de ejecución para el rastreador anterior"

#: tpl/crawler/summary.tpl.php:91 tpl/crawler/summary.tpl.php:98
msgid "%d seconds"
msgstr "%d segundos"

#: tpl/crawler/summary.tpl.php:90
msgid "Last complete run time for all crawlers"
msgstr "Hora de la última ejecución completa para todos los rastreadores"

#: tpl/crawler/summary.tpl.php:77
msgid "Current sitemap crawl started at"
msgstr "El rastreo del mapa del sitio actual comenzó a las"

#. translators: %1$s: Object Cache Admin title, %2$s: OFF status
#: tpl/cache/settings_inc.object.tpl.php:278
msgid "Save transients in database when %1$s is %2$s."
msgstr "Guarda datos transitorios en la base de datos cuando %1$s es %2$s."

#: src/lang.cls.php:125
msgid "Store Transients"
msgstr "Almacenar datos transitorios"

#. translators: %1$s: Cache Mobile label, %2$s: ON status, %3$s: List of Mobile
#. User Agents label
#: tpl/cache/settings_inc.cache_mobile.tpl.php:89
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "¡Si %1$s es %2$s entonces debe completarse %3$s!"

#: tpl/crawler/settings.tpl.php:89
msgid "Server allowed max value: %s"
msgstr "Valor máximo permitido por el servidor: %s"

#: tpl/crawler/settings.tpl.php:79
msgid "Server enforced value: %s"
msgstr "Valor forzado por el servidor: %s"

#: tpl/cache/more_settings_tip.tpl.php:22
#: tpl/cache/settings-excludes.tpl.php:71
#: tpl/cache/settings-excludes.tpl.php:104 tpl/cdn/other.tpl.php:79
#: tpl/crawler/settings.tpl.php:76 tpl/crawler/settings.tpl.php:86
msgid "NOTE"
msgstr "NOTA"

#: src/admin-display.cls.php:1210
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable(s) del servidor %s disponible para omitir este ajuste."

#: src/admin-display.cls.php:1208 tpl/cache/settings-esi.tpl.php:105
#: tpl/page_optm/settings_css.tpl.php:86 tpl/page_optm/settings_css.tpl.php:221
#: tpl/page_optm/settings_html.tpl.php:131
#: tpl/page_optm/settings_media.tpl.php:256
#: tpl/page_optm/settings_media_exc.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:48
#: tpl/page_optm/settings_tuning.tpl.php:68
#: tpl/page_optm/settings_tuning.tpl.php:89
#: tpl/page_optm/settings_tuning.tpl.php:110
#: tpl/page_optm/settings_tuning.tpl.php:129
#: tpl/page_optm/settings_tuning_css.tpl.php:35
#: tpl/page_optm/settings_tuning_css.tpl.php:96
#: tpl/page_optm/settings_tuning_css.tpl.php:99
#: tpl/page_optm/settings_tuning_css.tpl.php:100
#: tpl/toolbox/edit_htaccess.tpl.php:61 tpl/toolbox/edit_htaccess.tpl.php:79
msgid "API"
msgstr "API"

#: src/purge.cls.php:431
msgid "Reset the entire OPcache successfully."
msgstr "Reestablecida correctamente la caché «OPcache»."

#: src/import.cls.php:133
msgid "Imported setting file %s successfully."
msgstr "Importado con éxito el archivo de ajustes %s."

#: src/import.cls.php:80
msgid "Import failed due to file error."
msgstr "Importación fallida debido a un error en el archivo."

#: tpl/page_optm/settings_css.tpl.php:60 tpl/page_optm/settings_js.tpl.php:48
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Cómo solucionar problemas causados por la optimización CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:76
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor."

#: tpl/cache/settings-advanced.tpl.php:71
msgid "When a visitor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace."

#: src/lang.cls.php:222
msgid "Instant Click"
msgstr "Clic instantáneo"

#: tpl/toolbox/purge.tpl.php:65
msgid "Reset the entire opcode cache"
msgstr "Reestablecer toda la caché opcode"

#: tpl/toolbox/import_export.tpl.php:59
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales."

#: tpl/toolbox/import_export.tpl.php:54
msgid "Last imported"
msgstr "Última importación"

#: tpl/toolbox/import_export.tpl.php:48
msgid "Import"
msgstr "Importar"

#: tpl/toolbox/import_export.tpl.php:40
msgid "Import Settings"
msgstr "Ajustes de importación"

#: tpl/toolbox/import_export.tpl.php:36
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo."

#: tpl/toolbox/import_export.tpl.php:31
msgid "Last exported"
msgstr "Última exportación"

#: tpl/toolbox/import_export.tpl.php:25
msgid "Export"
msgstr "Exportar"

#: tpl/toolbox/import_export.tpl.php:19
msgid "Export Settings"
msgstr "Exportar ajustes"

#: tpl/presets/entry.tpl.php:17 tpl/toolbox/entry.tpl.php:20
msgid "Import / Export"
msgstr "Importar / Exportar"

#: tpl/cache/settings_inc.object.tpl.php:249
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilizar conexiones keep-alive para acelerar operaciones de la caché."

#: tpl/cache/settings_inc.object.tpl.php:209
msgid "Database to be used"
msgstr "Base de datos a usar"

#: src/lang.cls.php:120
msgid "Redis Database ID"
msgstr "ID de base de datos Redis"

#: tpl/cache/settings_inc.object.tpl.php:196
msgid "Specify the password used when connecting."
msgstr "Especifica la contraseña utilizada al conectar."

#: src/lang.cls.php:119
msgid "Password"
msgstr "Contraseña"

#. translators: %s: SASL
#: tpl/cache/settings_inc.object.tpl.php:180
msgid "Only available when %s is installed."
msgstr "Solo disponible cuando está instalado %s."

#: src/lang.cls.php:118
msgid "Username"
msgstr "Nombre de usuario"

#. translators: %s: Object cache name
#: tpl/cache/settings_inc.object.tpl.php:99
msgid "Your %s Hostname or IP address."
msgstr "El hostname o dirección IP de tu %s."

#: src/lang.cls.php:114
msgid "Method"
msgstr "Método"

#: src/purge.cls.php:472
msgid "Purge all object caches successfully."
msgstr "Purga correcta de todas las cachés de objetos."

#: src/purge.cls.php:459
msgid "Object cache is not enabled."
msgstr "La caché de objetos no está activada."

#: tpl/cache/settings_inc.object.tpl.php:262
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)"

#: src/lang.cls.php:124
msgid "Cache WP-Admin"
msgstr "Caché de WP-Admin"

#: src/lang.cls.php:123
msgid "Persistent Connection"
msgstr "Conexión persistente"

#: src/lang.cls.php:122
msgid "Do Not Cache Groups"
msgstr "Grupos a no cachear"

#: tpl/cache/settings_inc.object.tpl.php:222
msgid "Groups cached at the network level."
msgstr "Grupos cacheados a nivel de red."

#: src/lang.cls.php:121
msgid "Global Groups"
msgstr "Grupos globales"

#: tpl/cache/settings_inc.object.tpl.php:71
msgid "Connection Test"
msgstr "Prueba de conexión"

#. translators: %s: Object cache name
#: tpl/cache/settings_inc.object.tpl.php:58
#: tpl/cache/settings_inc.object.tpl.php:66
msgid "%s Extension"
msgstr "Extensión %s"

#: tpl/cache/settings_inc.object.tpl.php:52 tpl/crawler/blacklist.tpl.php:41
#: tpl/crawler/summary.tpl.php:153
msgid "Status"
msgstr "Estado"

#: tpl/cache/settings_inc.object.tpl.php:164
msgid "Default TTL for cached objects."
msgstr "TTL por defecto para objetos cacheados."

#: src/lang.cls.php:117
msgid "Default Object Lifetime"
msgstr "Tiempo de vida por defecto del objeto"

#: src/lang.cls.php:116
msgid "Port"
msgstr "Puerto"

#: src/lang.cls.php:115
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:589 src/gui.cls.php:771 src/lang.cls.php:113
#: tpl/dash/dashboard.tpl.php:60 tpl/dash/dashboard.tpl.php:603
#: tpl/toolbox/purge.tpl.php:55
msgid "Object Cache"
msgstr "Caché de objetos"

#: tpl/cache/settings_inc.object.tpl.php:28
msgid "Failed"
msgstr "Fallido"

#: tpl/cache/settings_inc.object.tpl.php:25
msgid "Passed"
msgstr "Exitoso"

#: tpl/cache/settings_inc.object.tpl.php:23
msgid "Not Available"
msgstr "No disponible"

#: tpl/toolbox/purge.tpl.php:56
msgid "Purge all the object caches"
msgstr "Purgar todas las cachés de objetos"

#: src/cdn/cloudflare.cls.php:259 src/cdn/cloudflare.cls.php:281
msgid "Failed to communicate with Cloudflare"
msgstr "Fallo al comunicar con Cloudflare"

#: src/cdn/cloudflare.cls.php:272
msgid "Communicated with Cloudflare successfully."
msgstr "Comunicado con éxito con Cloudflare."

#: src/cdn/cloudflare.cls.php:169
msgid "No available Cloudflare zone"
msgstr "No hay disponible una zona Cloudflare"

#: src/cdn/cloudflare.cls.php:155
msgid "Notified Cloudflare to purge all successfully."
msgstr "Avisado correctamente a Cloudflare de la purga completa."

#: src/cdn/cloudflare.cls.php:139
msgid "Cloudflare API is set to off."
msgstr "La API de Cloudflare está configurada en off."

#: src/cdn/cloudflare.cls.php:111
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito."

#: tpl/cdn/cf.tpl.php:60
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Una vez guardado, coincidirá con la lista actual y se completará automáticamente."

#: tpl/cdn/cf.tpl.php:59
msgid "You can just type part of the domain."
msgstr "Puedes simplemente teclear parte de dominio."

#: tpl/cdn/cf.tpl.php:52
msgid "Domain"
msgstr "Dominio"

#: src/lang.cls.php:245
msgid "Cloudflare API"
msgstr "API de Cloudflare"

#: tpl/cdn/cf.tpl.php:162
msgid "Purge Everything"
msgstr "Purgar todo"

#: tpl/cdn/cf.tpl.php:156
msgid "Cloudflare Cache"
msgstr "Caché de Cloudflare"

#: tpl/cdn/cf.tpl.php:151
msgid "Development Mode will be turned off automatically after three hours."
msgstr "El modo de desarrollo se desactivará automáticamente después de tres horas."

#: tpl/cdn/cf.tpl.php:149
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real."

#: tpl/cdn/cf.tpl.php:141
msgid "Development mode will be automatically turned off in %s."
msgstr "El modo de desarrollo se desactivará automáticamente en %s."

#: tpl/cdn/cf.tpl.php:137
msgid "Current status is %s."
msgstr "El estado actual es %s."

#: tpl/cdn/cf.tpl.php:129
msgid "Current status is %1$s since %2$s."
msgstr "El estado actual es %1$s desde %2$s."

#: tpl/cdn/cf.tpl.php:119
msgid "Check Status"
msgstr "Comprobar estado"

#: tpl/cdn/cf.tpl.php:116
msgid "Turn OFF"
msgstr "APAGAR"

#: tpl/cdn/cf.tpl.php:113
msgid "Turn ON"
msgstr "ENCENDER"

#: tpl/cdn/cf.tpl.php:111
msgid "Development Mode"
msgstr "Modo de desarrollo"

#: tpl/cdn/cf.tpl.php:108
msgid "Cloudflare Zone"
msgstr "Zona de Cloudflare"

#: tpl/cdn/cf.tpl.php:107
msgid "Cloudflare Domain"
msgstr "Dominio de Cloudflare"

#: src/gui.cls.php:579 src/gui.cls.php:761 tpl/cdn/cf.tpl.php:96
#: tpl/cdn/entry.tpl.php:15
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:45
#: tpl/page_optm/settings_html.tpl.php:76
msgid "For example"
msgstr "Por ejemplo"

#: tpl/page_optm/settings_html.tpl.php:44
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "La precarga DNS puede reducir la latencia para los visitantes."

#: src/lang.cls.php:159
msgid "DNS Prefetch"
msgstr "Prefetch DNS"

#: tpl/page_optm/settings_media.tpl.php:43
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Añade estilos a tus imágenes de carga diferida"

#: src/admin-display.cls.php:1074 src/admin-display.cls.php:1078
#: tpl/cdn/other.tpl.php:108
msgid "Default value"
msgstr "Valor por defecto"

#: tpl/cdn/other.tpl.php:100
msgid "Static file type links to be replaced by CDN links."
msgstr "Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN."

#. translators: %1$s: Example query string, %2$s: Example wildcard
#: tpl/cache/settings_inc.cache_dropquery.tpl.php:34
msgid "For example, to drop parameters beginning with %1$s, %2$s can be used here."
msgstr "Por ejemplo, para eliminar parámetros que comienzan con %1$s, se puede usar %2$s aquí."

#: src/lang.cls.php:111
msgid "Drop Query String"
msgstr "Ignorar cadenas de consulta"

#: tpl/cache/settings-advanced.tpl.php:57
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché."

#: src/lang.cls.php:221
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Mejorar compatibilidad HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:382
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización."

#: tpl/img_optm/settings.media_webp.tpl.php:34 tpl/img_optm/summary.tpl.php:378
msgid "Destroy All Optimization Data"
msgstr "Destruir todos los datos de optimización"

#: tpl/img_optm/summary.tpl.php:304
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias."

#: tpl/img_optm/settings.tpl.php:95
msgid "This will increase the size of optimized files."
msgstr "Esto aumentará el tamaño de los archivos optimizados."

#: tpl/img_optm/settings.tpl.php:94
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar."

#: tpl/toolbox/log_viewer.tpl.php:46 tpl/toolbox/log_viewer.tpl.php:75
msgid "Clear Logs"
msgstr "Vaciar los registros"

#: thirdparty/woocommerce.content.tpl.php:24
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Para probar el carrito, visita la <a %s>FAQ</a>."

#: src/utility.cls.php:231
msgid " %s ago"
msgstr " hace %s"

#: src/media.cls.php:380
msgid "WebP saved %s"
msgstr "WebP ha ahorrado un %s"

#: tpl/toolbox/report.tpl.php:68
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte."

#: tpl/img_optm/summary.tpl.php:156
msgid "Last pull initiated by cron at %s."
msgstr "Última descarga iniciada por cron a las %s."

#: tpl/img_optm/summary.tpl.php:93
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando."

#: tpl/img_optm/summary.tpl.php:93
msgid "Only press the button if the pull cron job is disabled."
msgstr "Solo pulsar el botón si la tarea cron de descarga está desactivada."

#: tpl/img_optm/summary.tpl.php:102
msgid "Pull Images"
msgstr "Descargar imágenes"

#: tpl/img_optm/summary.tpl.php:142
msgid "This process is automatic."
msgstr "Este proceso es automático."

#: tpl/dash/dashboard.tpl.php:568 tpl/img_optm/summary.tpl.php:322
msgid "Last Request"
msgstr "Última petición"

#: tpl/dash/dashboard.tpl.php:545 tpl/img_optm/summary.tpl.php:319
msgid "Images Pulled"
msgstr "Imágenes recuperadas"

#: tpl/toolbox/entry.tpl.php:29
msgid "Report"
msgstr "Informe"

#: tpl/toolbox/report.tpl.php:139
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress."

#: tpl/toolbox/report.tpl.php:38
msgid "Send to LiteSpeed"
msgstr "Enviar a LiteSpeed"

#: src/media.cls.php:258
msgid "LiteSpeed Optimization"
msgstr "Optimización de LiteSpeed"

#: src/lang.cls.php:166
msgid "Load Google Fonts Asynchronously"
msgstr "Cargar Google Fonts asíncronamente"

#: src/lang.cls.php:98
msgid "Browser Cache TTL"
msgstr "TTL caché de navegador"

#. translators: %s: Link tags
#: tpl/img_optm/summary.tpl.php:337
msgid "Results can be checked in %sMedia Library%s."
msgstr "Los resultados pueden comprobarse en la %sBiblioteca de medios%s."

#: src/doc.cls.php:88 src/doc.cls.php:140 tpl/dash/dashboard.tpl.php:186
#: tpl/dash/dashboard.tpl.php:845 tpl/general/online.tpl.php:81
#: tpl/general/online.tpl.php:93 tpl/general/online.tpl.php:109
#: tpl/general/online.tpl.php:114 tpl/img_optm/summary.tpl.php:59
#: tpl/inc/check_cache_disabled.php:46
msgid "Learn More"
msgstr "Leer más"

#: tpl/img_optm/summary.tpl.php:285
msgid "Image groups total"
msgstr "Total de grupos de imágenes"

#: src/lang.cls.php:29
msgid "Images optimized and pulled"
msgstr "Imágenes optimizadas y descargadas"

#: src/lang.cls.php:27 tpl/dash/dashboard.tpl.php:551
msgid "Images requested"
msgstr "Imágenes solicitadas"

#: src/img-optm.cls.php:1973 src/img-optm.cls.php:2033
msgid "Switched to optimized file successfully."
msgstr "Cambio correcto a archivo optimizado."

#: src/img-optm.cls.php:2027
msgid "Restored original file successfully."
msgstr "Archivo original restaurado con éxito."

#: src/img-optm.cls.php:1997
msgid "Enabled WebP file successfully."
msgstr "Archivo WebP activado con éxito."

#: src/img-optm.cls.php:1992
msgid "Disabled WebP file successfully."
msgstr "Archivo WebP desactivado con éxito."

#: tpl/img_optm/settings.media_webp.tpl.php:26
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas."

#: tpl/cache/settings-excludes.tpl.php:135
msgid "Selected roles will be excluded from cache."
msgstr "Los perfiles seleccionados serán excluidos de la caché."

#: tpl/general/entry.tpl.php:18 tpl/page_optm/entry.tpl.php:23
#: tpl/page_optm/entry.tpl.php:24
msgid "Tuning"
msgstr "Retoques"

#: tpl/page_optm/settings_tuning.tpl.php:156
msgid "Selected roles will be excluded from all optimizations."
msgstr "Los perfiles seleccionados serán excluidos de todas las optimizaciones."

#: src/lang.cls.php:178
msgid "Role Excludes"
msgstr "Excluir perfiles"

#: tpl/general/settings_tuning.tpl.php:19
#: tpl/page_optm/settings_tuning.tpl.php:29
msgid "Tuning Settings"
msgstr "Ajustes de los retoques"

#: tpl/cache/settings-excludes.tpl.php:106
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar."

#: tpl/cache/settings-excludes.tpl.php:73
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar."

#: tpl/img_optm/summary.tpl.php:141
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas."

#: tpl/dash/dashboard.tpl.php:536 tpl/img_optm/summary.tpl.php:76
#: tpl/img_optm/summary.tpl.php:89
msgid "Send Optimization Request"
msgstr "Enviar solicitud de optimización"

#: tpl/img_optm/summary.tpl.php:276
msgid "Image Information"
msgstr "Información de imágenes"

#: tpl/dash/dashboard.tpl.php:542 tpl/img_optm/summary.tpl.php:316
msgid "Total Reduction"
msgstr "Reducción total"

#: tpl/img_optm/summary.tpl.php:313
msgid "Optimization Summary"
msgstr "Resumen de optimización"

#: tpl/img_optm/entry.tpl.php:30
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimización de imágenes de LiteSpeed Cache"

#: src/admin-display.cls.php:130 src/gui.cls.php:727
#: tpl/dash/dashboard.tpl.php:203 tpl/dash/network_dash.tpl.php:36
#: tpl/general/online.tpl.php:75 tpl/general/online.tpl.php:134
#: tpl/general/online.tpl.php:149 tpl/presets/standard.tpl.php:32
msgid "Image Optimization"
msgstr "Optimización de imágenes"

#: tpl/page_optm/settings_media.tpl.php:60
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Por ejemplo, los %s pueden usarse para un marcador de posición transparente."

#: tpl/page_optm/settings_media.tpl.php:59
msgid "By default a gray image placeholder %s will be used."
msgstr "Por defecto, se utilizará un marcador de posición de imagen gris %s."

#: tpl/page_optm/settings_media.tpl.php:58
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración."

#: tpl/page_optm/settings_media.tpl.php:57
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes."

#: tpl/page_optm/settings_media_exc.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:70
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_tuning.tpl.php:112
#: tpl/page_optm/settings_tuning_css.tpl.php:37
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en código html."

#: tpl/cache/settings-esi.tpl.php:106
#: tpl/page_optm/settings_media_exc.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:49
#: tpl/page_optm/settings_tuning.tpl.php:69
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_tuning.tpl.php:111
#: tpl/page_optm/settings_tuning.tpl.php:130
#: tpl/page_optm/settings_tuning_css.tpl.php:36
#: tpl/page_optm/settings_tuning_css.tpl.php:97
msgid "Filter %s is supported."
msgstr "El filtro %s es compatible."

#: tpl/page_optm/settings_media_exc.tpl.php:31
msgid "Listed images will not be lazy loaded."
msgstr "Las imágenes listadas no se cargarán de forma retrasada."

#: src/lang.cls.php:185
msgid "Lazy Load Image Excludes"
msgstr "Exclusiones de carga retrasada de imágenes"

#: src/gui.cls.php:539
msgid "No optimization"
msgstr "Sin optimización"

#: tpl/page_optm/settings_tuning.tpl.php:126
msgid "Prevent any optimization of listed pages."
msgstr "Evitar cualquier optimización de las páginas listadas."

#: src/lang.cls.php:176
msgid "URI Excludes"
msgstr "URL excluidas"

#: tpl/page_optm/settings_html.tpl.php:174
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Deja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador."

#: src/doc.cls.php:126
msgid "Both full URLs and partial strings can be used."
msgstr "Pueden utilizarse tanto URLs completas como cadenas parciales."

#: tpl/page_optm/settings_media.tpl.php:232
msgid "Load iframes only when they enter the viewport."
msgstr "Cargar iframes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:201
msgid "Lazy Load Iframes"
msgstr "Retrasar la carga de iframes"

#: tpl/page_optm/settings_media.tpl.php:39
#: tpl/page_optm/settings_media.tpl.php:233
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales."

#: tpl/page_optm/settings_media.tpl.php:38
msgid "Load images only when they enter the viewport."
msgstr "Cargar las imágenes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:184
msgid "Lazy Load Images"
msgstr "Retrasar la carga de imágenes"

#: tpl/page_optm/entry.tpl.php:19 tpl/page_optm/settings_media.tpl.php:24
msgid "Media Settings"
msgstr "Ajustes de medios"

#: tpl/cache/settings-excludes.tpl.php:46
msgid "For example, for %1$s, %2$s and %3$s can be used here."
msgstr "Por ejemplo, para %1$s, se pueden utilizar aquí %2$s y %3$s."

#: tpl/cache/settings-esi.tpl.php:117 tpl/cache/settings-purge.tpl.php:111
#: tpl/cdn/other.tpl.php:169
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s."

#: src/admin-display.cls.php:1225
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Para que coincida con el principio, añade %s al comienzo del artículo."

#: src/admin-display.cls.php:1223
msgid "For example, for %1$s, %2$s can be used here."
msgstr "Por ejemplo, para %1$s, se puede utilizar %2$s aquí."

#: tpl/banner/score.php:117
msgid "Maybe later"
msgstr "Quizás más tarde"

#: tpl/banner/score.php:116
msgid "I've already left a review"
msgstr "Ya he dejado una valoración"

#: tpl/banner/slack.php:20
msgid "Welcome to LiteSpeed"
msgstr "Bienvenido a LiteSpeed"

#: src/lang.cls.php:174 tpl/presets/standard.tpl.php:51
msgid "Remove WordPress Emoji"
msgstr "Eliminar emojis de WordPress"

#: src/gui.cls.php:547
msgid "More settings"
msgstr "Más ajustes"

#: src/gui.cls.php:528
msgid "Private cache"
msgstr "Caché privada"

#: src/gui.cls.php:517
msgid "Non cacheable"
msgstr "No cacheable"

#: src/gui.cls.php:494
msgid "Mark this page as "
msgstr "Marcar esta página como "

#: src/gui.cls.php:470 src/gui.cls.php:485
msgid "Purge this page"
msgstr "Purgar esta página"

#: src/lang.cls.php:156
msgid "Load JS Deferred"
msgstr "Deferir carga de JS"

#: tpl/page_optm/settings_tuning_css.tpl.php:167
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s."

#: src/lang.cls.php:168
msgid "Critical CSS Rules"
msgstr "Reglas de CSS críticas"

#: src/lang.cls.php:152 tpl/page_optm/settings_tuning_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr "Cargar CSS asíncronamente"

#: tpl/page_optm/settings_html.tpl.php:161
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Evita que cargue Google Fonts en todas las páginas."

#: src/lang.cls.php:167
msgid "Remove Google Fonts"
msgstr "Eliminar Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:214
#: tpl/page_optm/settings_html.tpl.php:175 tpl/page_optm/settings_js.tpl.php:81
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:123
msgid "Remove query strings from internal static resources."
msgstr "Eliminar cadenas de consulta de recursos estáticos internos."

#: src/lang.cls.php:165
msgid "Remove Query Strings"
msgstr "Eliminar query strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:28
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:28
msgid "cookies"
msgstr "cookies"

#. translators: %s: Link tags
#: tpl/cache/settings_inc.browser.tpl.php:46
msgid "You can turn on browser caching in server admin too. %sLearn more about LiteSpeed browser cache settings%s."
msgstr "También puedes activar el almacenamiento en caché del navegador en la administración del servidor. %sObtén más información sobre los ajustes de caché del navegador de LiteSpeed%s."

#: tpl/cache/settings_inc.browser.tpl.php:41
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos."

#: src/lang.cls.php:91 tpl/dash/dashboard.tpl.php:61
#: tpl/dash/dashboard.tpl.php:604 tpl/presets/standard.tpl.php:21
msgid "Browser Cache"
msgstr "Caché del navegador"

#: tpl/cache/settings-excludes.tpl.php:100
msgid "tags"
msgstr "etiquetas"

#: src/lang.cls.php:136
msgid "Do Not Cache Tags"
msgstr "Etiquetas a no cachear"

#: tpl/cache/settings-excludes.tpl.php:110
msgid "To exclude %1$s, insert %2$s."
msgstr "Para excluir %1$s, insertar %2$s."

#: tpl/cache/settings-excludes.tpl.php:67
msgid "categories"
msgstr "categorías"

#. translators: %s: "cookies"
#. translators: %s: "user agents"
#: tpl/cache/settings-excludes.tpl.php:67
#: tpl/cache/settings-excludes.tpl.php:100
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:27
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:27
msgid "To prevent %s from being cached, enter them here."
msgstr "Para evitar que los %s sean almacenados en la caché, introdúcelos aquí."

#: src/lang.cls.php:135
msgid "Do Not Cache Categories"
msgstr "Categorías a no cachear"

#: tpl/cache/settings-excludes.tpl.php:45
msgid "Query strings containing these parameters will not be cached."
msgstr "Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché."

#: src/lang.cls.php:134
msgid "Do Not Cache Query Strings"
msgstr "Cadenas de consulta a no cachear"

#: tpl/cache/settings-excludes.tpl.php:30
msgid "Paths containing these strings will not be cached."
msgstr "Las rutas que contengan estas cadenas no serán cacheadas."

#: src/lang.cls.php:133
msgid "Do Not Cache URIs"
msgstr "URIs a no cachear"

#: src/admin-display.cls.php:1227 src/doc.cls.php:109
msgid "One per line."
msgstr "Una por línea."

#: tpl/cache/settings-cache.tpl.php:119
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas."

#: src/lang.cls.php:110
msgid "Private Cached URIs"
msgstr "URIs cacheadas privadamente"

#: tpl/cdn/other.tpl.php:210
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Las rutas que contengan las siguientes cadenas no se servirán desde el CDN."

#: src/lang.cls.php:244
msgid "Exclude Path"
msgstr "Excluir ruta"

#: src/lang.cls.php:240 tpl/cdn/other.tpl.php:113
msgid "Include File Types"
msgstr "Incluir tipos de archivo"

#: tpl/cdn/other.tpl.php:97
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress."

#: src/lang.cls.php:239
msgid "Include JS"
msgstr "Incluir JS"

#: tpl/cdn/other.tpl.php:94
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress."

#: src/lang.cls.php:238
msgid "Include CSS"
msgstr "Incluir CSS"

#: tpl/cdn/other.tpl.php:87
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %1$s tags, and CSS %2$s attributes."
msgstr "Sirve todos los archivos de imagen a través de la CDN. Esto afectará a todos los archivos adjuntos, las etiquetas HTML %1$s y los atributos CSS %2$s."

#: src/lang.cls.php:237
msgid "Include Images"
msgstr "Incluir imágenes"

#: src/admin-display.cls.php:230
msgid "CDN URL to be used. For example, %s"
msgstr "URL de la CDN a utilizar. Por ejemplo, %s"

#: src/lang.cls.php:236
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/other.tpl.php:161
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s."

#: src/lang.cls.php:242
msgid "Original URLs"
msgstr "URLs originales"

#: tpl/cdn/other.tpl.php:28
msgid "CDN Settings"
msgstr "Ajustes de CDN"

#: src/admin-display.cls.php:128
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:235 src/admin-display.cls.php:940
#: src/admin-display.cls.php:966 src/admin-display.cls.php:1015
#: tpl/cache/settings-cache.tpl.php:28
#: tpl/cache/settings_inc.object.tpl.php:280 tpl/cdn/other.tpl.php:53
#: tpl/dash/dashboard.tpl.php:69 tpl/dash/dashboard.tpl.php:461
#: tpl/dash/dashboard.tpl.php:583 tpl/dash/dashboard.tpl.php:612
#: tpl/img_optm/settings.media_webp.tpl.php:22
#: tpl/page_optm/settings_css.tpl.php:91 tpl/page_optm/settings_js.tpl.php:77
#: tpl/page_optm/settings_media.tpl.php:178
#: tpl/toolbox/settings-debug.tpl.php:56
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:234 src/admin-display.cls.php:939
#: src/admin-display.cls.php:966 src/admin-display.cls.php:1015
#: src/doc.cls.php:40 tpl/cache/settings-cache.tpl.php:28
#: tpl/cache/settings_inc.cache_mobile.tpl.php:91 tpl/cdn/other.tpl.php:45
#: tpl/crawler/settings.tpl.php:138 tpl/dash/dashboard.tpl.php:67
#: tpl/dash/dashboard.tpl.php:459 tpl/dash/dashboard.tpl.php:581
#: tpl/dash/dashboard.tpl.php:610 tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:174
#: tpl/toolbox/settings-debug.tpl.php:56
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:378
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Solicitada la purga de entradas CSS/JS al servidor web LiteSpeed."

#: tpl/page_optm/settings_html.tpl.php:31
msgid "Minify HTML content."
msgstr "Minificar contenido HTML."

#: src/lang.cls.php:149
msgid "HTML Minify"
msgstr "Minificar HTML"

#: src/lang.cls.php:164
msgid "JS Excludes"
msgstr "Excluir JS"

#: src/data.upgrade.func.php:235 src/lang.cls.php:147
msgid "JS Combine"
msgstr "Combinar JS"

#: src/lang.cls.php:146
msgid "JS Minify"
msgstr "Minificar JS"

#: src/lang.cls.php:162
msgid "CSS Excludes"
msgstr "Excluir CSS"

#: src/lang.cls.php:139
msgid "CSS Combine"
msgstr "Combinar CSS"

#: src/lang.cls.php:138
msgid "CSS Minify"
msgstr "Minificar CSS"

#: tpl/page_optm/entry.tpl.php:43
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Purgar todo»."

#: tpl/toolbox/purge.tpl.php:48
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Esto purgará solo las entradas CSS/JS minimizadas o combinadas"

#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s Error"
msgstr "Error de purga de %s"

#: tpl/db_optm/manage.tpl.php:90
msgid "Database Optimizer"
msgstr "Optimizador de base de datos"

#: tpl/db_optm/manage.tpl.php:58
msgid "Optimize all tables in your database"
msgstr "Optimizar todas las tablas en tu base de datos"

#: tpl/db_optm/manage.tpl.php:57
msgid "Optimize Tables"
msgstr "Optimizar tablas"

#: tpl/db_optm/manage.tpl.php:54
msgid "Clean all transient options"
msgstr "Borrar todas las opciones de datos transitorios"

#: tpl/db_optm/manage.tpl.php:53
msgid "All Transients"
msgstr "Todos los datos transitorios"

#: tpl/db_optm/manage.tpl.php:50
msgid "Clean expired transient options"
msgstr "Borrar opciones de datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:49
msgid "Expired Transients"
msgstr "Datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:46
msgid "Clean all trackbacks and pingbacks"
msgstr "Borrar todos los trackbacks y pingbacks"

#: tpl/db_optm/manage.tpl.php:45
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/pingbacks"

#: tpl/db_optm/manage.tpl.php:42
msgid "Clean all trashed comments"
msgstr "Borrar todos los comentarios en la papelera"

#: tpl/db_optm/manage.tpl.php:41
msgid "Trashed Comments"
msgstr "Comentarios enviados a la papelera"

#: tpl/db_optm/manage.tpl.php:38
msgid "Clean all spam comments"
msgstr "Borrar todos los comentarios spam"

#: tpl/db_optm/manage.tpl.php:37
msgid "Spam Comments"
msgstr "Comentarios spam"

#: tpl/db_optm/manage.tpl.php:34
msgid "Clean all trashed posts and pages"
msgstr "Borrar todas las entradas y páginas en la papelera"

#: tpl/db_optm/manage.tpl.php:33
msgid "Trashed Posts"
msgstr "Entradas enviadas a la papelera"

#: tpl/db_optm/manage.tpl.php:30
msgid "Clean all auto saved drafts"
msgstr "Borrar todos los borradores guardados automáticamente"

#: tpl/db_optm/manage.tpl.php:29
msgid "Auto Drafts"
msgstr "Borradores automáticos"

#: tpl/db_optm/manage.tpl.php:22
msgid "Clean all post revisions"
msgstr "Borrar todas las revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:21
msgid "Post Revisions"
msgstr "Revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:17
msgid "Clean All"
msgstr "Limpiar todo"

#: src/db-optm.cls.php:242
msgid "Optimized all tables."
msgstr "Optimizadas todas las tablas."

#: src/db-optm.cls.php:232
msgid "Clean all transients successfully."
msgstr "Limpieza de todos los datos transitorios exitosa."

#: src/db-optm.cls.php:228
msgid "Clean expired transients successfully."
msgstr "Limpieza de datos transitorios expirados exitosa."

#: src/db-optm.cls.php:224
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Limpieza de trackbacks y pingbacks exitosa."

#: src/db-optm.cls.php:220
msgid "Clean trashed comments successfully."
msgstr "Limpieza de comentarios en papelera exitosa."

#: src/db-optm.cls.php:216
msgid "Clean spam comments successfully."
msgstr "Limpieza de comentarios no deseados exitosa."

#: src/db-optm.cls.php:212
msgid "Clean trashed posts and pages successfully."
msgstr "Limpieza de páginas y entradas en papelera exitosa."

#: src/db-optm.cls.php:208
msgid "Clean auto drafts successfully."
msgstr "Limpieza de borradores automáticos exitosa."

#: src/db-optm.cls.php:200
msgid "Clean post revisions successfully."
msgstr "Limpieza de revisiones de entradas exitosa."

#: src/db-optm.cls.php:143
msgid "Clean all successfully."
msgstr "Limpieza completa exitosa."

#: src/lang.cls.php:93
msgid "Default Private Cache TTL"
msgstr "TTL por defecto de la caché privada"

#: tpl/cache/settings-esi.tpl.php:145
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de \"editar\", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto."

#: src/lang.cls.php:219 tpl/page_optm/settings_css.tpl.php:138
#: tpl/page_optm/settings_css.tpl.php:275 tpl/page_optm/settings_vpi.tpl.php:88
msgid "Vary Group"
msgstr "Grupos de variación"

#: tpl/cache/settings-esi.tpl.php:85
msgid "Cache the built-in Comment Form ESI block."
msgstr "Almacena en la caché el bloque ESI del formulario de comentarios incluido."

#: src/lang.cls.php:217
msgid "Cache Comment Form"
msgstr "Cachear formulario de comentario"

#: tpl/cache/settings-esi.tpl.php:72
msgid "Cache the built-in Admin Bar ESI block."
msgstr "Almacena en caché el bloque ESI de la barra de administración incorporada."

#: src/lang.cls.php:216
msgid "Cache Admin Bar"
msgstr "Cachear barra de administrador"

#: tpl/cache/settings-esi.tpl.php:59
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación."

#: tpl/cache/settings-esi.tpl.php:21
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite \"hacer huecos\" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado."

#: tpl/cache/settings-esi.tpl.php:20
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada."

#: tpl/esi_widget_edit.php:53
msgid "Private"
msgstr "Privada"

#: tpl/esi_widget_edit.php:52
msgid "Public"
msgstr "Pública"

#: tpl/cache/network_settings-purge.tpl.php:17
#: tpl/cache/settings-purge.tpl.php:15
msgid "Purge Settings"
msgstr "Ajustes de purga"

#: src/lang.cls.php:108 tpl/cache/settings_inc.cache_mobile.tpl.php:90
msgid "Cache Mobile"
msgstr "Cache móvil"

#: tpl/toolbox/settings-debug.tpl.php:95
msgid "Advanced level will log more details."
msgstr "El nivel avanzado registrará más detalles."

#: tpl/presets/standard.tpl.php:29 tpl/toolbox/settings-debug.tpl.php:93
msgid "Basic"
msgstr "Básico"

#: tpl/crawler/settings.tpl.php:73
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del rastreador será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado."

#: src/lang.cls.php:107
msgid "Cache Login Page"
msgstr "Cachear página de acceso"

#: tpl/cache/settings-cache.tpl.php:89
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cachear peticiones realizadas por llamadas de la API REST de WordPress."

#: src/lang.cls.php:106
msgid "Cache REST API"
msgstr "Cachear API REST"

#: tpl/cache/settings-cache.tpl.php:76
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)"

#: src/lang.cls.php:105
msgid "Cache Commenters"
msgstr "Cachear comentaristas"

#: tpl/cache/settings-cache.tpl.php:63
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)"

#: src/lang.cls.php:104
msgid "Cache Logged-in Users"
msgstr "Cachear usuarios con sesión iniciada"

#: tpl/cache/network_settings-cache.tpl.php:17
#: tpl/cache/settings-cache.tpl.php:15
msgid "Cache Control Settings"
msgstr "Ajustes de control de caché"

#: tpl/cache/entry.tpl.php:20
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:19 tpl/cache/entry_network.tpl.php:18
msgid "Excludes"
msgstr "Excluir"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:17
#: tpl/toolbox/entry.tpl.php:16 tpl/toolbox/purge.tpl.php:141
msgid "Purge"
msgstr "Purgar"

#: src/admin-display.cls.php:126 tpl/cache/entry.tpl.php:16
#: tpl/cache/entry_network.tpl.php:16
msgid "Cache"
msgstr "Caché"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:16
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (%3$sLearn More%4$s)"
msgstr "Se ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si tienes la seguridad de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (%3$sMás información%4$s)"

#: tpl/cache/settings-purge.tpl.php:132
msgid "Current server time is %s."
msgstr "La hora actual del servidor es %s."

#: tpl/cache/settings-purge.tpl.php:131
msgid "Specify the time to purge the \"%s\" list."
msgstr "Especifica la hora para purgar la lista «%s»."

#: tpl/cache/settings-purge.tpl.php:107
msgid "Both %1$s and %2$s are acceptable."
msgstr "Tanto %1$s como %2$s son aceptables."

#: src/lang.cls.php:130 tpl/cache/settings-purge.tpl.php:106
msgid "Scheduled Purge Time"
msgstr "Hora de purga programada"

#: tpl/cache/settings-purge.tpl.php:106
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "Las URLs de aquí (una por línea) serán purgadas automáticamente a la hora establecida en la opción «%s»."

#: src/lang.cls.php:129 tpl/cache/settings-purge.tpl.php:131
msgid "Scheduled Purge URLs"
msgstr "URLs de purga programada"

#: tpl/toolbox/settings-debug.tpl.php:123
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad."

#: tpl/toolbox/entry.tpl.php:28
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:106
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:259
msgid "Log File Size Limit"
msgstr "Límite de tamaño de archivo de registro"

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s"

#: src/error.cls.php:127 src/error.cls.php:151
msgid "%s file not writable."
msgstr "No se puede escribir el archivo %s."

#: src/error.cls.php:147
msgid "%s file not readable."
msgstr "No se puede leer el archivo %s."

#: src/lang.cls.php:260
msgid "Collapse Query Strings"
msgstr "Colapsar cadenas de peticiones"

#: tpl/cache/settings-esi.tpl.php:15
msgid "ESI Settings"
msgstr "Ajustes de ESI"

#: tpl/esi_widget_edit.php:82
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 implica no cachear."

#: tpl/esi_widget_edit.php:81
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valor recomendado: 28800 segundos (8 horas)."

#: tpl/esi_widget_edit.php:71
msgid "Widget Cache TTL"
msgstr "TTL caché de Widgets"

#: src/lang.cls.php:215 tpl/esi_widget_edit.php:43
msgid "Enable ESI"
msgstr "Activar ESI"

#. translators: %s: Link tags
#: tpl/crawler/summary.tpl.php:66
msgid "See %sIntroduction for Enabling the Crawler%s for detailed information."
msgstr "Ver la %sIntroducción para activar el rastreador%s para obtener información detallada."

#: src/lang.cls.php:253
msgid "Custom Sitemap"
msgstr "Sitemap personalizado"

#: tpl/toolbox/purge.tpl.php:214
msgid "Purge pages by relative or full URL."
msgstr "Purgar páginas por URL completa o relativa."

#: tpl/crawler/summary.tpl.php:61
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La característica de rastreador no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor."

#: tpl/cache/settings-esi.tpl.php:45 tpl/cdn/cf.tpl.php:100
#: tpl/crawler/summary.tpl.php:60 tpl/inc/check_cache_disabled.php:38
#: tpl/inc/check_if_network_disable_all.php:28
#: tpl/page_optm/settings_css.tpl.php:76 tpl/page_optm/settings_css.tpl.php:209
#: tpl/page_optm/settings_localization.tpl.php:21
msgid "WARNING"
msgstr "ADVERTENCIA"

#: tpl/crawler/summary.tpl.php:82
msgid "The next complete sitemap crawl will start at"
msgstr "La siguiente indexación de sitemap completa empezará a las"

#: src/file.cls.php:178
msgid "Failed to write to %s."
msgstr "Error al escribir a %s."

#: src/file.cls.php:161
msgid "Folder is not writable: %s."
msgstr "El directorio no es escribible: %s."

#: src/file.cls.php:153
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "No se puede crear el directorio: %1$s. Error: %2$s"

#: src/file.cls.php:141
msgid "Folder does not exist: %s"
msgstr "El directorio no existe: %s"

#: src/core.cls.php:332
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Solicitado la purga de la lista al servidor web LiteSpeed."

#. translators: %s: Link tags
#: tpl/cache/settings-cache.tpl.php:36
msgid "Please visit the %sInformation%s page on how to test the cache."
msgstr "Visita la página de %sInformación%s sobre cómo probar la caché."

#: tpl/toolbox/settings-debug.tpl.php:73
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores."

#: src/lang.cls.php:250
msgid "Server Load Limit"
msgstr "Límite de carga del servidor"

#: tpl/crawler/settings.tpl.php:45
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Especifica tras cuanto tiempo debe el rastreador indexar el sitemap entero de nuevo."

#: src/lang.cls.php:249
msgid "Crawl Interval"
msgstr "Intervalo de indexación"

#. translators: %s: Example subdomain
#: tpl/cache/settings_inc.login_cookie.tpl.php:53
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Y otro WordPress instalado (NO MULTISITIO) en %s"

#: tpl/cache/entry_network.tpl.php:27
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Ajustes de la caché de la red de caché de LiteSpeed"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Selecciona debajo las opciones de «Purgar por»."

#: tpl/cdn/entry.tpl.php:22
msgid "LiteSpeed Cache CDN"
msgstr "CDN de la caché de LiteSpeed"

#: tpl/crawler/summary.tpl.php:293
msgid "No crawler meta file generated yet"
msgstr "Archivo meta del rastreador aún no generado"

#: tpl/crawler/summary.tpl.php:278
msgid "Show crawler status"
msgstr "Mostrar estado del rastreador"

#: tpl/crawler/summary.tpl.php:272
msgid "Watch Crawler Status"
msgstr "Ver estado del rastreador"

#. translators: %s: Link tags
#: tpl/crawler/summary.tpl.php:261
msgid "Please see %sHooking WP-Cron Into the System Task Scheduler%s to learn how to create the system cron task."
msgstr "Consulta %sConectar WP-Cron al programador de tareas del sistema%s para aprender cómo crear la tarea cron del sistema."

#: tpl/crawler/summary.tpl.php:251
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones."

#: tpl/crawler/summary.tpl.php:142
msgid "Manually run"
msgstr "Ejecutar manualmente"

#: tpl/crawler/summary.tpl.php:141
msgid "Reset position"
msgstr "Reestablecer posición"

#: tpl/crawler/summary.tpl.php:152
msgid "Run Frequency"
msgstr "Frecuencia de ejecución"

#: tpl/crawler/summary.tpl.php:151
msgid "Cron Name"
msgstr "Nombre del Cron"

#: tpl/crawler/summary.tpl.php:54
msgid "Crawler Cron"
msgstr "Cron del rastreador"

#: cli/crawler.cls.php:100 tpl/crawler/summary.tpl.php:47
msgid "%d minute"
msgstr "%d minuto"

#: cli/crawler.cls.php:98 tpl/crawler/summary.tpl.php:47
msgid "%d minutes"
msgstr "%d minutos"

#: cli/crawler.cls.php:91 tpl/crawler/summary.tpl.php:39
msgid "%d hour"
msgstr "%d hora"

#: cli/crawler.cls.php:89 tpl/crawler/summary.tpl.php:39
msgid "%d hours"
msgstr "%d horas"

#: tpl/crawler/map.tpl.php:40
msgid "Generated at %s"
msgstr "Generado en %s"

#: tpl/crawler/entry.tpl.php:23
msgid "LiteSpeed Cache Crawler"
msgstr "Rastreador de LiteSpeed Cache"

#. translators: %s: Link tags
#: tpl/inc/show_display_installed.php:37
msgid "If there are any questions, the team is always happy to answer any questions on the %ssupport forum%s."
msgstr "Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el %sforo de soporte%s."

#: src/admin-display.cls.php:136 src/lang.cls.php:248
msgid "Crawler"
msgstr "Rastreador"

#. Plugin URI of the plugin
#: litespeed-cache.php
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:697
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Solicitada la purga de todas las páginas al servidor web LiteSpeed."

#: tpl/cache/settings-purge.tpl.php:25
msgid "All pages with Recent Posts Widget"
msgstr "Todas las páginas con widget de Entradas recientes"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Pages"
msgstr "Páginas"

#: tpl/toolbox/purge.tpl.php:24
msgid "This will Purge Pages only"
msgstr "Esto solo purgará las páginas"

#: tpl/toolbox/purge.tpl.php:23
msgid "Purge Pages"
msgstr "Purgar páginas"

#: src/gui.cls.php:83 tpl/inc/modal.deactivation.php:77
msgid "Cancel"
msgstr "Cancelar"

#: tpl/inc/modal.deactivation.php:76
msgid "Deactivate"
msgstr "Desactivar"

#: tpl/crawler/summary.tpl.php:154
msgid "Activate"
msgstr "Activar"

#: tpl/cdn/cf.tpl.php:44
msgid "Email Address"
msgstr "Dirección de correo electrónico"

#: src/gui.cls.php:869
msgid "Install Now"
msgstr "Instalar ahora"

#: cli/purge.cls.php:182
msgid "Purged the URL!"
msgstr "¡Se ha purgado la URL!"

#: cli/purge.cls.php:133
msgid "Purged the blog!"
msgstr "¡Se ha purgado el blog!"

#: cli/purge.cls.php:86
msgid "Purged All!"
msgstr "¡Se ha purgado todo!"

#: src/purge.cls.php:717
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Solicitada la purga de las páginas de error al servidor web LiteSpeed."

#: tpl/inc/show_error_cookie.php:27
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto."

#: tpl/inc/show_error_cookie.php:18
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla."

#: tpl/inc/show_display_installed.php:29
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas."

#: tpl/inc/show_display_installed.php:28
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio."

#: tpl/cache/settings-cache.tpl.php:45
msgid "The network admin setting can be overridden here."
msgstr "El ajuste de administrador de red puede ser modificado aquí."

#: tpl/cache/settings-ttl.tpl.php:29
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas."

#: tpl/cache/settings-ttl.tpl.php:44
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas."

#: tpl/cache/network_settings-cache.tpl.php:29
msgid "It is STRONGLY recommended that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Se recomienda ENCARECIDAMENTE que primero se pruebe la compatibilidad con otros plugins en uno o varios sitios."

#: tpl/toolbox/purge.tpl.php:208
msgid "Purge pages by post ID."
msgstr "Purgar páginas por ID de entrada."

#: tpl/toolbox/purge.tpl.php:41
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purga las entradas de caché de LiteSpeed creadas por este plugin"

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge %s error pages"
msgstr "Purgar las páginas de error %s"

#: tpl/toolbox/purge.tpl.php:18
msgid "This will Purge Front Page only"
msgstr "Esto solo purgará la página principal"

#: tpl/toolbox/purge.tpl.php:211
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purgar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s."

#: tpl/toolbox/purge.tpl.php:205
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purgar páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s."

#: tpl/toolbox/purge.tpl.php:132
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si se debe purgar todo el sitio WordPress, usa «Purgar todo»."

#: src/core.cls.php:327
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Solicitado la purga de todo al servidor web LiteSpeed."

#: tpl/general/network_settings.tpl.php:31
msgid "Use Primary Site Configuration"
msgstr "Usar configuración del sitio principal"

#: tpl/general/network_settings.tpl.php:36
msgid "This will disable the settings page on all subsites."
msgstr "Esto desactivará la página de ajustes en todos los subsitios."

#: tpl/general/network_settings.tpl.php:35
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Marca esta opción para usar la configuración del sitio principal para todos los subsitios."

#: src/admin-display.cls.php:809 src/admin-display.cls.php:813
msgid "Save Changes"
msgstr "Guardar cambios"

#: tpl/inc/check_if_network_disable_all.php:31
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes."

#: tpl/inc/check_if_network_disable_all.php:30
msgid "The network admin selected use primary site configs for all subsites."
msgstr "El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios."

#: tpl/toolbox/purge.tpl.php:127
msgid "Empty Entire Cache"
msgstr "Vaciar la caché entera"

#: tpl/toolbox/purge.tpl.php:128
msgid "This action should only be used if things are cached incorrectly."
msgstr "Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente."

#: tpl/toolbox/purge.tpl.php:128
msgid "Clears all cache entries related to this site, including other web applications."
msgstr "Vacía todas las entradas de la caché relacionadas con este sitio, incluyendo otras aplicaciones web."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "Esto puede causar una alta carga en el servidor."

#: tpl/toolbox/purge.tpl.php:132
msgid "This will clear EVERYTHING inside the cache."
msgstr "Esto eliminará TODO dentro de la caché."

#: src/gui.cls.php:691
msgid "LiteSpeed Cache Purge All"
msgstr "Purdgar toda la caché de LiteSpeed"

#: tpl/inc/show_display_installed.php:41
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si no quieres la aceleración de litespeed, puedes desactivar este plugin."

#: tpl/inc/show_display_installed.php:33
msgid "Create a post, make sure the front page is accurate."
msgstr "Crear una entrada, asegurarse que la página principal está actualizada."

#: tpl/inc/show_display_installed.php:32
msgid "Visit the site while logged out."
msgstr "Visitar el sitio sin la sesión iniciada."

#: tpl/inc/show_display_installed.php:31
msgid "Examples of test cases include:"
msgstr "Ejemplos de pruebas incluyen:"

#: tpl/inc/show_display_installed.php:30
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente."

#: tpl/inc/show_display_installed.php:27
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Este mensaje indica que el plugin fue instalado por el administrador del servidor."

#: tpl/inc/show_display_installed.php:26
msgid "LiteSpeed Cache plugin is installed!"
msgstr "¡El plugin LiteSpeed Cache está instalado!"

#: src/lang.cls.php:256 tpl/toolbox/log_viewer.tpl.php:18
msgid "Debug Log"
msgstr "Registro de depuración"

#: tpl/toolbox/settings-debug.tpl.php:56
msgid "Admin IP Only"
msgstr "Solo la IP del administrador"

#: tpl/toolbox/settings-debug.tpl.php:60
msgid "The Admin IP option will only output log messages on requests from admin IPs listed below."
msgstr "La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs abajo listadas."

#: tpl/cache/settings-ttl.tpl.php:89
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST."

#: tpl/toolbox/report.tpl.php:66
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "El informe de entorno contiene información detallada sobre la configuración de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:36
msgid "The server will determine if the user is logged in based on the existence of this cookie."
msgstr "El servidor determinará si el usuario está conectado en base a la existencia de esta cookie."

#: tpl/cache/settings-purge.tpl.php:53 tpl/cache/settings-purge.tpl.php:90
#: tpl/cache/settings-purge.tpl.php:114
#: tpl/page_optm/settings_tuning_css.tpl.php:72
#: tpl/page_optm/settings_tuning_css.tpl.php:147
msgid "Note"
msgstr "Nota"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Después de que la caché funcione en general, por favor prueba el carrito."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:25
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Al activarlo, la caché se purgará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado."

#: src/lang.cls.php:127
msgid "Purge All On Upgrade"
msgstr "Purgar todo al actualizar"

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Product Update Interval"
msgstr "Intervalo de actualización de producto"

#: thirdparty/woocommerce.content.tpl.php:54
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas."

#: thirdparty/woocommerce.content.tpl.php:41
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Purgar siempre productos y categorías cuando cambie la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:40
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "No purgar las categorías al cambiar la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:40
msgid "Purge product only when the stock status changes."
msgstr "Purgar los productos solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:39
msgid "Purge product and categories only when the stock status changes."
msgstr "Purgar productos y categorías solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Purge categories only when stock status changes."
msgstr "Purgar las categorías solo cuando el estado del inventario cambie."

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purgar los productos con los cambios de cantidad o estado del inventario."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:47
msgid "Htaccess did not match configuration option."
msgstr "El htaccess no coincide con la opción de configuración."

#: tpl/cache/settings-ttl.tpl.php:75 tpl/cache/settings-ttl.tpl.php:90
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si esto se fija en un número inferior a 30, los feeds no serán cacheados."

#: tpl/cache/settings-ttl.tpl.php:74
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Especifica por cuanto tiempo, en segundos, se cachean los feeds."

#: src/lang.cls.php:95
msgid "Default Feed TTL"
msgstr "TTL por defecto del Feed"

#: src/error.cls.php:155
msgid "Failed to get %s file contents."
msgstr "Error al obtener contenido del archivo %s."

#: tpl/cache/settings-cache.tpl.php:102
msgid "Disabling this option may negatively affect performance."
msgstr "Desactivar esta opción puede afectar negativamente al rendimiento."

#: tpl/cache/settings_inc.login_cookie.tpl.php:63
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de acceso no válida. Encontrados caracteres no válidos."

#: tpl/cache/settings_inc.login_cookie.tpl.php:84
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden."

#: src/error.cls.php:139
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de acceso no válida. Por favor, comprueba el archivo %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:57
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente."

#. translators: %s: Example domain
#: tpl/cache/settings_inc.login_cookie.tpl.php:45
msgid "There is a WordPress installed for %s."
msgstr "Hay un WordPress instalado para %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:41
msgid "Example use case:"
msgstr "Ejemplo de uso:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:39
msgid "The cookie set here will be used for this WordPress installation."
msgstr "La cookie aquí establecida será usada por esta instalación de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:38
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no."

#: tpl/cache/settings_inc.login_cookie.tpl.php:37
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio."

#. translators: %s: Default login cookie name
#: tpl/cache/settings_inc.login_cookie.tpl.php:32
msgid "The default login cookie is %s."
msgstr "La cookie de acceso por defecto es %s."

#: src/lang.cls.php:225
msgid "Login Cookie"
msgstr "Cookie de acceso"

#: tpl/toolbox/settings-debug.tpl.php:80
msgid "More information about the available commands can be found here."
msgstr "Aquí se puede encontrar más información sobre los comandos disponibles."

#: tpl/cache/settings-advanced.tpl.php:22
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS."

#: tpl/toolbox/edit_htaccess.tpl.php:91
msgid "Current %s Contents"
msgstr "Contenidos actuales de %s"

#: tpl/cache/entry.tpl.php:28 tpl/cache/entry_network.tpl.php:21
#: tpl/toolbox/settings-debug.tpl.php:93
msgid "Advanced"
msgstr "Avanzado"

#: tpl/cache/network_settings-advanced.tpl.php:17
#: tpl/cache/settings-advanced.tpl.php:16
msgid "Advanced Settings"
msgstr "Ajustes avanzados"

#: tpl/toolbox/purge.tpl.php:225
msgid "Purge List"
msgstr "Purgar lista"

#: tpl/toolbox/purge.tpl.php:176
msgid "Purge By..."
msgstr "Purgar por..."

#: tpl/crawler/blacklist.tpl.php:40 tpl/crawler/map.tpl.php:76
#: tpl/toolbox/purge.tpl.php:200
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:196
msgid "Tag"
msgstr "Etiqueta"

#: tpl/toolbox/purge.tpl.php:192
msgid "Post ID"
msgstr "ID de entrada"

#: tpl/toolbox/purge.tpl.php:188
msgid "Category"
msgstr "Categoría"

#: tpl/inc/show_error_cookie.php:16
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión."

#: src/purge.cls.php:807
msgid "Purge url %s"
msgstr "Purgar la URL %s"

#: src/purge.cls.php:773
msgid "Purge tag %s"
msgstr "Purgar la etiqueta %s"

#: src/purge.cls.php:744
msgid "Purge category %s"
msgstr "Purgar la categoría %s"

#: tpl/cache/settings-cache.tpl.php:42
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Al desactivar la caché, se purgarán todas las entradas almacenadas en caché de este sitio."

#: tpl/cache/settings-cache.tpl.php:42 tpl/crawler/settings.tpl.php:113
#: tpl/crawler/settings.tpl.php:133 tpl/crawler/summary.tpl.php:208
#: tpl/page_optm/entry.tpl.php:42
msgid "NOTICE"
msgstr "AVISO"

#: src/doc.cls.php:138
msgid "This setting will edit the .htaccess file."
msgstr "Este ajuste editará el archivo .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid "LiteSpeed Cache View .htaccess"
msgstr "Ver el archivo «.htaccess» de LiteSpeed Cache"

#: src/error.cls.php:143
msgid "Failed to back up %s file, aborted changes."
msgstr "Fallo al hacer copia de seguridad del archivo %s, cambios cancelados."

#: src/lang.cls.php:223
msgid "Do Not Cache Cookies"
msgstr "Cookies a no cachear"

#: src/lang.cls.php:224
msgid "Do Not Cache User Agents"
msgstr "User Agents a no cachear"

#: tpl/cache/network_settings-cache.tpl.php:30
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios."

#: tpl/cache/network_settings-cache.tpl.php:24
msgid "Network Enable Cache"
msgstr "Habilitar caché de red"

#: thirdparty/woocommerce.content.tpl.php:22
#: tpl/cache/settings-advanced.tpl.php:21
#: tpl/cache/settings_inc.browser.tpl.php:23 tpl/toolbox/heartbeat.tpl.php:24
#: tpl/toolbox/report.tpl.php:46
msgid "NOTICE:"
msgstr "AVISO:"

#: tpl/cache/settings-purge.tpl.php:56
msgid "Other checkboxes will be ignored."
msgstr "Otras opciones serán ignoradas."

#: tpl/cache/settings-purge.tpl.php:55
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio."

#: src/lang.cls.php:109 tpl/cache/settings_inc.cache_mobile.tpl.php:92
msgid "List of Mobile User Agents"
msgstr "Lista de User Agents móviles"

#: src/file.cls.php:167 src/file.cls.php:171
msgid "File %s is not writable."
msgstr "No se puede escribir el archivo %s."

#: tpl/page_optm/entry.tpl.php:17 tpl/page_optm/settings_js.tpl.php:17
msgid "JS Settings"
msgstr "Ajustes de JS"

#: src/gui.cls.php:710 tpl/db_optm/entry.tpl.php:13
msgid "Manage"
msgstr "Gestionar"

#: src/lang.cls.php:94
msgid "Default Front Page TTL"
msgstr "TTL por defecto de la Página Principal"

#: src/purge.cls.php:683
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Solicitado al servidor web LiteSpeed la purga de la página de inicio."

#: tpl/toolbox/purge.tpl.php:17
msgid "Purge Front Page"
msgstr "Purgar la página de inicio"

#: tpl/page_optm/settings_localization.tpl.php:137
#: tpl/toolbox/beta_test.tpl.php:40
msgid "Example"
msgstr "Ejemplo"

#: tpl/cache/settings-excludes.tpl.php:99
msgid "All tags are cached by default."
msgstr "Todas las etiquetas son cacheadas por defecto."

#: tpl/cache/settings-excludes.tpl.php:66
msgid "All categories are cached by default."
msgstr "Todas las categorías son cacheadas por defecto."

#: src/admin-display.cls.php:1226
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Para coincidencias exactas, añadir %s al final de la URL."

#: src/admin-display.cls.php:1222
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Las URLs serán comparadas con la variable REQUEST_URI del servidor."

#: tpl/cache/settings-purge.tpl.php:57
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Selecciona solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados."

#: tpl/toolbox/report.tpl.php:122
msgid "Notes"
msgstr "Notas"

#: tpl/cache/settings-cache.tpl.php:28
msgid "Use Network Admin Setting"
msgstr "Usar ajuste de administrador de red"

#: tpl/esi_widget_edit.php:54
msgid "Disable"
msgstr "Desactivar"

#: tpl/cache/network_settings-cache.tpl.php:28
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activar LiteSpeed Cache para WordPress aquí activa la caché para la red."

#: tpl/cache/settings_inc.object.tpl.php:16
msgid "Disabled"
msgstr "Desactivado"

#: tpl/cache/settings_inc.object.tpl.php:15
msgid "Enabled"
msgstr "Activado"

#: src/lang.cls.php:137
msgid "Do Not Cache Roles"
msgstr "No cachear perfiles"

#. Author URI of the plugin
#: litespeed-cache.php
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
#: litespeed-cache.php
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: litespeed-cache.php tpl/banner/new_version.php:57
#: tpl/banner/new_version_dev.tpl.php:21 tpl/cache/more_settings_tip.tpl.php:28
#: tpl/esi_widget_edit.php:41 tpl/inc/admin_footer.php:17
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: src/lang.cls.php:258
msgid "Debug Level"
msgstr "Nivel de depuración"

#: tpl/general/settings.tpl.php:72 tpl/general/settings.tpl.php:79
#: tpl/general/settings.tpl.php:86 tpl/general/settings.tpl.php:103
#: tpl/page_optm/settings_media.tpl.php:251
#: tpl/page_optm/settings_vpi.tpl.php:44
msgid "Notice"
msgstr "Nota"

#: tpl/cache/settings-purge.tpl.php:31
msgid "Term archive (include category, tag, and tax)"
msgstr "Archivo de término (incluye categoría, etiqueta y taxonomía)"

#: tpl/cache/settings-purge.tpl.php:30
msgid "Daily archive"
msgstr "Archivo diario"

#: tpl/cache/settings-purge.tpl.php:29
msgid "Monthly archive"
msgstr "Archivo mensual"

#: tpl/cache/settings-purge.tpl.php:28
msgid "Yearly archive"
msgstr "Archivo anual"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Post type archive"
msgstr "Archivo de tipo de contenido"

#: tpl/cache/settings-purge.tpl.php:26
msgid "Author archive"
msgstr "Archivo del autor"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Home page"
msgstr "Página de inicio"

#: tpl/cache/settings-purge.tpl.php:22
msgid "Front page"
msgstr "Portada"

#: tpl/cache/settings-purge.tpl.php:21
msgid "All pages"
msgstr "Todas las páginas"

#: tpl/cache/settings-purge.tpl.php:73
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Selecciona qué páginas serán purgadas automáticamente cuando las entradas sean publicadas o actualizadas."

#: tpl/cache/settings-purge.tpl.php:50
msgid "Auto Purge Rules For Publish/Update"
msgstr "Reglas de purga automática para publicación y actualización"

#: src/lang.cls.php:92
msgid "Default Public Cache TTL"
msgstr "TTL por defecto de la caché pública"

#: src/admin-display.cls.php:1043 tpl/cache/settings_inc.object.tpl.php:162
#: tpl/crawler/settings.tpl.php:43 tpl/esi_widget_edit.php:78
msgid "seconds"
msgstr "segundos"

#: src/lang.cls.php:257
msgid "Admin IPs"
msgstr "IPs de administrador"

#: src/admin-display.cls.php:124
msgid "General"
msgstr "Opciones generales"

#: tpl/cache/entry.tpl.php:50
msgid "LiteSpeed Cache Settings"
msgstr "Configuración de Caché de LiteSpeed"

#: src/purge.cls.php:234
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Solicitado al servidor web LiteSpeed la purga de todas las entradas de LSCache."

#: src/gui.cls.php:554 src/gui.cls.php:562 src/gui.cls.php:570
#: src/gui.cls.php:579 src/gui.cls.php:589 src/gui.cls.php:599
#: src/gui.cls.php:609 src/gui.cls.php:619 src/gui.cls.php:628
#: src/gui.cls.php:638 src/gui.cls.php:648 src/gui.cls.php:736
#: src/gui.cls.php:744 src/gui.cls.php:752 src/gui.cls.php:761
#: src/gui.cls.php:771 src/gui.cls.php:781 src/gui.cls.php:791
#: src/gui.cls.php:801 src/gui.cls.php:810 src/gui.cls.php:820
#: src/gui.cls.php:830 tpl/page_optm/settings_media.tpl.php:139
#: tpl/toolbox/purge.tpl.php:40 tpl/toolbox/purge.tpl.php:47
#: tpl/toolbox/purge.tpl.php:55 tpl/toolbox/purge.tpl.php:64
#: tpl/toolbox/purge.tpl.php:73 tpl/toolbox/purge.tpl.php:82
#: tpl/toolbox/purge.tpl.php:91 tpl/toolbox/purge.tpl.php:100
#: tpl/toolbox/purge.tpl.php:109 tpl/toolbox/purge.tpl.php:117
msgid "Purge All"
msgstr "Purgar todo"

#: src/admin-display.cls.php:291 src/gui.cls.php:718
#: tpl/crawler/entry.tpl.php:17
msgid "Settings"
msgstr "Ajustes"

#: tpl/banner/score.php:122
msgid "Support forum"
msgstr "Foro de soporte"PKk��Z���'ټ.�litespeed-cache-es_MX.poUT	�w�h�w�hux�����\[s7�~�_�$�٤V�%�f+���e%QV��H��V��v�$�f�tKf~ʾ�1y��۾lU��;��"%ʳ[�IQ�ppp.߹���K+KW�Z�R��8/��.��g�V�R�8��T��E-G���m�jaU��S�]��J��M�g/�;���􉸜j'��3׮�z�Ԙ�)seE�)��)Q�L�N	�هP��JN��O37ѹ��c������6P��a��/0�P����[�����;���u��X��/O6�(K���zl�Z������zW?�
��/D6�֩��ח_m>�K�+�yRf&���P<��.�,6�2v�EY�������})������*����������V9�dw�5���d9i��C��ۗ��+X�����<��xKs��l�*�䣷��gOf�$n�Ѡ�V�^�c�)�,
al5�%��&��Zb����ų9ӳJKH�ɍ�X5!9�'�+>Z�C4���v�������j�8'*^bθ��
�&�_�)�od�ͻ����<'V�k�f�߱A>Q);���2Sqɓ���X��LciC�Q�R��JZ��t8�a����AV8����>Ǘp�5Y�I�MQ�<W�H����xw���!z6�w�l&�c�N�	�XV�q��(j=�zce������H�@�j�{��lP���̘+�u;n��M#2l�����ر9����k�%�HH��*�y�r<�Q��bվ����f�d��F�,���,���6�GQ@��9D�C����zxJ����W��v��zVt;=�yNZS�8)�%i�M%�M�X:9����̄}�H4x������A�!h�}i'���I�#?	���2ӥ�M+Smsf�c23���7yq��N�bn6�����KS����>6����!b%M$�4F��*Y�jr&�y��4��� �<PB\��-���+�\�
���n2�IO�PS�y���v?�xA_ӷ�P���Πl֏���ܴԀDz�z$�Z���(��%kěmvf������N�Lqr��M{~�YU�v�Omq�d
`�Ih��_i	�L����v��Y#K�W��X��f��=r�Þю^�n�1rA�0TMn��\ g��n�w����)�	�n��욬�h�Y;Ú����O���f����4���V������}:���(.��b����*��̎��tI�
�.2NY3�
�w�?7�6�!���v�{�Mݔ�ٝ�n���`�G��ܠr��%k+P�7�}�H��\婡
�fS}�x��,�v�*r�{�'�� �o+�56%r0�����dV�J��W�{O[*_�p&.�W�8Ȃ�W+e��%hx���eVc�D���wx7����'g�i�8���N�,���J��'8R��PB���\�
�]��h�n@��@�{��9��8�
#�u-�}z<��i��-a�z^��//�V��6:��"u�}��#��p�"�I��4a���o�zN�k�$�9w�G�y#��S�QM�F�n�;��"6�����}�
MD�)�Mc�'�ƭ��-�V�Z
kʊ��ژ(�
�XAOy�鶮�o)��"��h �S��S��v��F�9�KXAGcJ�sn�A�5�w��`���6vÿʬ�Y\|�&,B����O^6(�;;&ɍ�����̧�AX`IH�������\&{�p���a�q�}��q�w��d֔,7����[O�ֳ�d�0hK������U&����[ao����Lx�c@|;qz~�+LYx7�i�3�B��C,fs�/I4�������G��>T)`5Y�Nj8W9!E1�]!�d���{�_<�E�Ǘ�T8U���eO�u	pR0O�F]op��Z'�>�l�K�NϚYFyt"�/�8&*_�z'�Z��p�`��{=b�&�I`������R�KO����So�,,���|Q
O[}�~8��$tw�������H ~�� '�v�~���9��~��|s�{ߜ3�kg}6����JGB;��"l�"�7� ��
!5[���'֌u�������E)gj�Qڡ��$f�U��uA�w��;I �ECh�J���='��d^~~-�F�~����<���~�L��ґ1��=yJ���D����Ag/z����qp :��y�0	�j�s��6���*�5�����AK�PAX<�Q����k�[F@�v/��!�#K_�>�Pp$݃Hq�e��?�0�R��%��cy��
ڍfz�U'���>n����	3\�r�C@Ai�r�9�F?Q���
_i#�uB��)�nj2GdN��#>�V�Xb�I�`)�+��H�J���D�P\
dv�y�V�n���``�`�s�N�-������	>�B�<|���� _<�c��k�̔�I�9�B�@-� @�L0O~<��	�
(^
_s��i����0�R
���S5����+)mL�����d�ls;8���4�FΧ24%��r��*�+ .Wp��[����9�jfJmx�������U�#�	�@���l��^4���Bz3ɤodc�>0wkM���p�l�2��#�]5U�7���n��=�1�'���
`�����rNu��<�L������e��`��°ɽ�%�R
�4���1v��>o�$�2@NMH��۴p`ӛ�MY>3Y�!�JC��c@������lNO��A���`��X��ݾ�?��{Dzʥ��:��I�s����7�����q_�փ�� ��O��0S�ӄ%s�KҠ��]����T�|w\\++~m�V�"�6����kP�)ʉ�T��#+V>_\NP���U�CR����!�Ĕ�7�x2���Z�̳�y���*�M�!�e��ܬ3��N*sJY�D�h��5�]E�O�N�g]!�3ഫBzK3ØzzGV���1=A����.$�{��n�Y�x	� ���HK�M���{�ѱ����aǪ�OM�OɩqKv�� �� �=�"�hZg�gp~�=����e�j�&�IO�����=���9ƒ��)�J:��K��ٴ�]1j"H�L���(�Τy�
����Tͯc‘�oT0����hM�9�N�'Y
`¤��ahK3U��2���d�]lCȓK(@�T]�cA�OX��ĀpN��)%�<��F��B>�Bx6�Y�~u�"���zՃV�8L��Zp�襛j
�v������u��[o&$q N�D�'f!7��!�H���)���Ob�|IQ�DY�&�N�0�BO$�@��-����$��:�
�̸D�I#JM��R��{)�)��Y�1��7	��\A���:G�t�g��͒��ڂ
�l�k�cA�����{֑>�㋋
B��e.� Y�qlWYZeM��P�,-������H�w�&P�`Z�R�f�io%
g�9�c5A���E��T� �� �4�}ŷ�\����wMAtG>i'����j]�.��#��[�$�¥�g��Z��ž�z��s/���0�ii
I���H����,�������?�`�b�������:�F��
qBP��q/�蟵��B\�C�&�_� �x�g���ŊC'b�������ɵ���M&�K�A�LɊ��*-,��%;������Ӹ��s*�ϖY���Lkqc�0M�&xF�]4)7jDnj5j8�ȝC�}$.��!�A����:GΎ��`�9���D�Wq��+͋Ϡ�U7%`QC�3JT+��8�sC��D��B<�r]0D��M�A�	����Z�T��y(���WO��_IM���~�x��_!�c+g��,V�^yx�$���g}]r���D��Y�7_cG���5!=o(����Z+wR{���x]�*�
��c���,�͝=kە�Wӣ`�֒�.j���s�k����z�y�+LA~M�u�}����(++nь$�=����co�s��AH�mV�ޗ�h�a'�
���1s��&��H�^89������� �u���2K�Oc��3‹v�����b��T��L)A�Q;�e�V���5�X�
=�W��Vs��~(7jTi���77�*X�9����=:N�}?�$�O��O[U���7E�x�ʇ0U���O}�����m�-��u���rF��K������(�@��!{�%ĺ)|[�UYc�	QY�u�9����������q�jk�"
�-�mO���>X,0�#�A��lI�IJş�$%9�&Ev�4����H�[�֡c/1�]�BȜ���/�Ez:kS�I�@C�Y��I_sK�Kj�%����$k��.�	��P`��௳��r���S��_(�h�E�h7�.v����G��9��$>O_3G����|��;���x�Gp����(�3%	�R��{���y1o�̪Qڧ�g�gv�{~�07>��:���&o��1"�Z�m��$�o�@��;�Ȍ�$L�š�wT�KG�i�@#�{INe��LH�Eby�%��
�3D~K�+�H�O�<
zs���p�Qi_�t�V^&f�_�]�<[
M��;���Z������ҟ$YΕH1��(�8\���"���N^b�|�XI��w�-���v��(���-j���QF��r�U`�R�$i�/ �������6���\�o��"����Ej��a�9�=/�Q[5IƦ!���^N�MS�aZ�I���&��In�ՠ�8��qsZ��6�%����pSZk

�<]��,û�Xw��r��˳D6/�<(\���A5��K+T	$�9֪�u*��G�m��=�n���ngUN��-0x�/�9��mݓ^���v�>"��F}��lo��J�I�o+�ʷ��������ko.< \�XO�w��.�FY`��K��5$ڃw
R�+�c"�c��w1L�O�.4�hےy���Z��5wzk^����XqE�����(M=�L����r�²q)�C�7õ���p�\�Z%�I�V�sik*e<W�k��Y�{�Ԗߐ���r
92�d�1"M��J՟ �ȼ{R��[J�*߻�ag����ު\^��g�al���4���}�5�ͦ,�o����ٛ�I���;a����5�D�w�#�K7����z����ke��K��0|�YpQ4[�Y=�6^F͹�S�J�3�ٷ���kh=@�� M�B��}�ʂE�l��$�������e��f��Zhi�?��A�FU/z4o<O�_՚�{�nژ������~E檁M�tuAI�䌏�}CtL��	��q�/�O�]�x�܅{d*)����+2��Bwf�*�
Wq�Fc9m5�}��YHHQi��d
Z�*��
��P>�}�P�W�:�BGQ�"���"dVKg�$���|��{����v�j�ʩΦ�eIŷ�(d%V�M�o�m�98���L?݁Yr�!��.=Ķ}����%\�ʨ
Ҷ�ZN�h�s�/�>�G��R;
�]�bC���>j�E��؁e���0����DT������K�U	Z^!&�o��p?�;H{\���dz^IG)����}
Ys��S�]�k�ܵ�y�ݒ6�x{�ɂ���F�u�"rs�H�l�W�nϦ�ߣ�Z��/O�-�������Ċ�/��>E�;Օ��q{M��@�S�5�#Ф�W߅��ɅVU*�~��Cg=ǐ&�I�\`mK���A��
Az}E�蜨 oz�NqA1"wE��t��`w��R���GQ���1`Ya��N�1Ez7�7�9����w���˚������p�0��EzeЧ�r�&�}k���G�S��JF��jDI)�������x�����w�Y�$�$^���x��y��J��HT'�K��^��w1����bLfL�Sb���g����p��W-����G5�ı��@�vՍ;`��"��Xt��6�h��,�Dm�L���K;�De=��Ǘ	��n�=L�^�p�=�	 �S��MMɓ���2Ӕ7{%�K�s���m���ܻ�Hr$Y��b,Lv'��H���ۅ`^���%*#X�jHX�[D�����=�������C=|h�[��2_�zDDUEծ�ř]�/�p3��^DE��S�F��:��t݌���{!�(�DL)���QP�:X� 7��'�,�O���&k#�3Ԩ�V([`T�9�J�\��p��;yk�EW�|��7�؎MF]�kv%Ϟ�u���~��M�b��:2�9<�F�1�9W�f1а�wɆ����b�s�r�9'_h����S�%�*�3c�#��}��B	k���ŗ�����;	-�Oy���iB��ԙ�5tɣ�l蕰�H:6E?�
gTJtj����@����}��ud��nJd��Kis��vU��@Z3~d	�G�H������d_�6͎yd�-�<�7��0P�E����Xq�����,r6���
rQ�h�p�T����1��������Xif� K���sr��03�`rq��� +2Otڕ�N�2ݿ.a�ΐ�b�u���A�
�z��|$�
��knGcS
]�ڻ=9�6]c�ْ��G��1�Z��[w�󌙥��$��߮�-���2Zn<�[��u؛/�b)!4�}ߩ�]�D��%	���W3\f�1�W��e���rz�֕�R�M	i�f����n^��j7L3�`t���1J�&��������� �"'	�:��$��z���˴�
� �725��� ^�u�EGHAj�	�R��ܓƙ��pD>�9�7�W���G`��NJ��7�h$����@�]��^��R���g����?,$d˶�T�%���߬��`��&�{��%צ++��aخ�6T��T0��f��X��r$�����3s�H���%-�-�=sQ���@p��M���џ>,���W�؍��8j���HC�m8[�V1c^��D��l� �����\&�pX!���9!�"�f��,�
pS�2I����>32�6{.�I,֏���;`�{�fs.tЛ/k���ј=W�<_�(�|���_t�b�m�^̀S�5{)malˀʢI���B�+�J�n?�6P���&��̳���{�7��>��9�׈����¼g���yA�Uڦ�Y����\j�)ftOF<��&,�l�PАh��؆xr7�ɹ�Em>�5o5��	zpه*2x�l$��n����αC�[��L;��x�p��I�-D�-��7+Z�妆[���9����4|!2�7R��?[7� ?mî�u�a�
�Ԣ�̈�cV����H���IQn^Y�Z~e�tQv���ڗ���0�c��:&}j9��i�2�[�M�H� .\=q*efϮ��b"	E��֞4�i�v�Q���o���yv��M�ʱ����9�i��wPۖ�~�4�Kڮ!L Ly�&�ל=�{m�v
H��rջ�ԛ�CF���99�	��?3�� ���Dƒ�xU��{�ֹ�=v����j\s2o��Ok��!�d�����q��/�]�姂�&{g M��u�~˔�4�kΘ�Y�,�}Ȕ���%�/l�,�

׳��q�'{�U٪*M��a9�ԩ�9"�x��d�Ò�<F���
2S�/�d�A7����� �6߽|��-��wO�5�J�r("ܭ� 덹���X�3�/��T9�^kx�h!�D�\�?��M.�����o���xSt-^L�|��j����nl'G[Ҡ
_��4J'�hJT�j"��B�\kA�-�6��=F�}���o����~����Mr�F����Zr|8�,^�9��wά�(ܘ�E1[��V۟(i��>�S�P`�3�j'a0�n����L9�3���nZ�ODG;���-}C>7�|1����ݘ|&�d�`Vfa�oj��k185(|�!�y�r�4P&�����'@XX,�4��^_$���l�����f!/�9��g_�j�ws<Fy�rO�/ڹ�Z���q�Zp]�8/���9O1��˭��r��"VD�hf�ܘ�@��f��[�A?aͧa��=n��m~�f(�ͥ=<���g�>�bv�f���4���Y.���U���yp�I9~�fI��&�ؿ��s�aLτ�
>
$��lm9}�!��'�"~��W��8��к���y�~�IVl�<�^F�`/ @�9����h˵��@��y�/�R���aM�O��T���m[b���χ�%+�._̴�3.����ݢe��[���ó)x��0���	-(��J��5܀{3]��+;��#C��ɣ���R�p;��9�_�z�<��6��y!|�-��t$��Q��Q�r��W��`����J��ӹY� �����AއK��Q@="�2j�B�������r=�c�:�t�lZ�Xn��_��pc���UU~��f̓�v8"�$'f*��*�]���\����h3��oW�2�AR#R&�6'uz��пnS\z2���.��/[�7�CN��;z��#:	��������4K�-�yi��z���ln���X�Ҷ��
�&��f
��c����]�&�9����%�͙�V�Xf\+�и��+72����0S������������D��e)cF�ğh*�V	̓�Z�!�4kl�`˒��_(�)T(	�IM|hZ�0�06�-:{:
V%mY���'��esН�f��o���x�tsj �M]o2�s��8A�.tdi�_E�(�4}f�I�tIa�œa�3���3�T��C�y����>���� :����1��h�P����r��B$l`s3"5��c7�yբ�b��gq�k�`�ln�B�'lt+a4���!4y��M�xΣ�C��li�sP��Y�&]���<��`�X<�L�A����-��{o�m��k� ##N�EZ<���c����h�6yȽ]"��k�x#����@4Ħ>�D�*�)\=r�I�X�#����9&�h��P{�l���
]����N���D`~��O�""O	�{�h�VːzZd2�4��)˽b�*���H(y���n=
��WO)��ė�gC�Nހk}���P��sQ���`�~�s�[�lf�S�U:蛸�p�õˆ�o�d_kN�@����Pv+��!
�7��	/h��"'�,8�B��h��e�@���m����Ek*�-fL_େ_��E�ŷ9����؅y:����Ġ�d�iCn�??����`��Y���[� X�On���z��N�6u����=B�����k��cP?\�co���yTƂPA��y�*��*�r���i	�!��T���V*���i�`���0��=���lҍ������ὖ`^U��[��E֭3��׌	���f�Y��q{-:�`ȁmo�:~��v
�,�q����n�It�bL�8򇽖Wy3���O�"b�s{��ksj�:l��R~Y&#�S�)L$��y{K)2d�,J��B���:Z�n��:�NZvaӊ�%���b_��sf�	��(���ۄ�W��;/�������oJ�]�b]�I>���FL��h:�!7���J�F�G])?�+M��qۮ�bk'�(ꉘ�wV���S��è%�
�b�n�n��9���6Hq�O7�|"�Sn�jR�b�;���t��`�D��Y�ec� ��8��ns����<<)#[
J@�ݐ����2�D���u�Bɂ;��pI�r���Ļ�G�6N����-�K�H6�>�.���-e������#� J~\��ŗn�G�o�Y�Ws��(8����>�!�g��k��oe]BDP�9my����A��r��v�L��)�}P��'[9"�b���{\/\�|�fL���:S�
�Z��6�v#�f�|N�ZƄ.7뛒��h��bܣKsc�A&�]�Q�����@9j$�U4I�qӒec��7��
8!�v.) VY���~P�~�޸c
T�;E�)�(�c�#��#A��̝�nk�ɿ�I�8���sm��w����8d���#��Mi2��jS���,$uL���wC��dT~����cl�mP ��5�*�DŽ��#Xʊuǽ#�U�`�#
W�ٺdΧC��Mz>=(�h��GG'Cy�ӽ�4�!)�IoN�c�MY��A3�t��.z�B���@��|8$�9�����1m%��0W�7Yj����uL
���lW�����iK��:<�Py��ɍMc�7s-�Q�LW$D!����g(XF���u��������_,?
�G�����*U\��������(�3`0�D{�������%�[j\����uˎ�n%����_�N}����a�n%'� ��݌�8�:��t�뉱���~K��p�v�I�e
��jN�EB]���l89m[k	�,�V��HP
`�-���twҧ`|�(��x�]0�=���D�j	�J�)�1���]��9���A(uD���ص6�͜���[lj����J��D�!���/r+H��G��r�i9�ށ�*%||;C�谲w��T�}Z���2�S�l��>9���8�a��(�K�S7��4l�ø������H�6i]��\�=�M�|&���IK0%b��Y{�-2���A�)Dt�@�N��worIR��w;���Mi�ƽ�O���|�vR`R6����&��.�b=�SO���5E@I��O��%�@���I��_�ϥ��fDL��p�+%gO����#@}3�����{��w�A���?�us���Qr��5�g�N��c��n�Y�5��61���Xh��C�vֲ�r���b@�z��	b�J��=f�9QS�6\K�(c�!�D����O��E`�I+x�
��?�/�pg�{A�1��>�U�$�Rlg`{�4��dڜ�t�����p�����8�fҜ���\�Zj��#�'J���s�8~X�*�$�n\e��Z���0-'�cY�Y���:�?Pv�L�I둀;� ��6K�:��`��T8?���b��n��f�cb�:c%�褪�6א���h�흙pqxe���H���@EXK��؇×�gVf�cY���J^�//��2Y��M#�Is0ޙ��x�e�u����&�3�-H'�)�우.�R�X�1w��[��q�9��Q�Z��`$0[D}�P��!d�F$�[��5[��`6���
%�Ͽ\�3x��p��K�^�!|�߻F�Og��*�ED �>�R�dz�S�U�<]���0pMyZ0���]i��"����pP��ː.6W�H�z�����S��]�r��6�V<��ř�6��湱OeO�-���}"L���S����ȱ���
�-'*��*ҳʅ�^�AE���I�z|ʳ�����8�D�zJ�.�T����Iw_W���E	|�4#Z׭���z��֭������2]��u�ݿ-���zAN,�x�6(�6�j�F���7�b�o
���%bP��R�'��$Q�&B2|�M�ؘ�?�ܢ����̕{���C��89e�I��Z^�c��aM�W�PR	��p�,���'"&�d��Lqc���6�G��M}3�����>	�G�Rl����y[,�m{D0$
V&)q��ۜ�Թy:w�m;d#9�[��¢cH��D[�Q��ژ�3���Q�'=�{Ÿ}�(��
݄w�{.F�����R�z��ޖic'[�����9��k��d,x��|z�)3ğ[7���m����r���=e5��8s���Y=�u��@����.����:�w����N�L���p��K������^����3`��
��_��]���NV{�8���k
1a��@Yrִ9���˖���@�䁭R�O?/�xN�^*�+���CY�)Zx�ȭ�$p�o�k�V�E����<Ė!@������a[Ϲ�9����b�4M|�WN=���i��E�%����&o�]��*y�p���5�B8$��qv�^��4�]	xp�Q8��_�t�7
_K9�	�1��
0�3WN�Vi.��د�PE钖Bh��Ta� u��tڥ4�'=k�N��S��m���|�ₙ�����ww�lA�	ȣ$
����'�u��җ�xβ3�Go$-V鉚Z�e�~�c�v�NOiǸJ���>}�	%�"G�+O�&��4?��+��y���\SB=�jsQ]k���h��6T�Ur{!�%��y����,^�E����n/���-W�'ý�/�|�:��(��GZ�ٻF3`� �n`�H9��)-��!�c�!���vf��D�i��!�H*�5���ki�>�?h�H�L�w!p
¼2k�,�F���6[�R�<ad�hEٮ*�g���-!�ʪ�47�ħ�Ȁ1����}=����)4�7Px��r!��<;%�%H#L�ڄ���� ���O)i;&���ktBQFfC����+��x��&P>�L�&�͉�~PI���[��P�%m�d!;��Hd=9�Lm�f����գ��V,�B�+J�uN9}��E9h:�1������p4����5?�B��
ڢ�;��7�/<P�݋T}ߖXq�ur�޴i���d���j>��jf��Lp��D�|�a�����ـ��~��to�4=8�RM����~��-c4u;����u�8_n�i0P��G�8�.9#���1��2cS:���Ƥ��>�[�y�cZ�����5i9G��U��G���N��餯��3̷������<\

9� �mW�<���st�Q��#��ޒ�N"�f-�MP�5�j%/��<��aϋ�_���i��$q� Y�%
Q=�!)k7��~O=n��"�1��j8�BY�OQz�s��K˹�ܴ�m��*%Z��j��~�5�ԝ�E�Jci�Vz����>�'�aP��]I�f�xXN���c4q���)��:>>:��T:��jgs���~�g�C�Zd�gUF�2d�V�0����<�)��O���DT��Ng������:EdR䂩���9����梧��O}w�N�IX20��hTY`����sQ��G��H�W�Xe���9����"B����U������Kۂ��
�67R��E����E�Nan߀%}e���T�!؁.8�,�AH&�J�W�p+��M��M9�Ǭ:%��Z���.��Z�i%:O���E}O'>�0�z,��,+���_d\$������}<�=�=��ⓐܱ�I�Z�>"gGT"P?$ˢ�|�Nv���b
s�Y�;����_*aja�?dL�EH�r���'�H��N@ł��|�tᘶv��L��1{�ҝX��-�w�����"�N�`!3Sx'bM����[)�3{g8o�Z�H�V�0������Wy�>�g%a���͆�ʇ}�I��	{HϤC��@PCY�kV~�L��uC�v�ۍ�vM=���?	R��,0U�?/3�~�t=���,�:��%��:6�	M�V��",����m*�+yS*��w/��Jf�[�ُ���^��IL�mp=��#x	I���O�$�6޷����"6M��(�{��@�B����q��F^os��y|O;TFqw���$�Gbb���v��:0�.s!�\�5��%qC⯔��W�6a�(�)��F�A�e�=��'	eʹO�`���F���=)$=�J�L��n��O���uY�5R�})>/g2꣘nF�D�G��9墳���O�[�b�ê��7�%�FMV޽�HqG^\�_ED�B
�2��	���B^y�杯�kZ
�7R��p[~2�Nq�	e�+�Ep~S�w$�%��J��PJ��$sc� `B�k
,W厢ƨ�8ٞ�E��D:m�}�hb`�F���
l�<F���IϷ���0�����ˏ���R�V�q�T��:��D�k���4y�R�[��9�Bz�$��k�[E����g�tA���0�(��>6ˬ�N�|꣸DT��u4����kּ�����P�#63������&W�[hH<�+��֬,V���8��c���i��mV�q'��(���߽|��ݯo�8B�$��W�f{,n8Gn����0��=;?���ő`*���Q`��ɀ��Y*��9	#X7ex��y�c�v\~`r�W��9ń��@SfQ�� ��+�D��S �9�W�
�B��PҜq@Ճу�����v4�AJM�9<����8��n�WI(c^��e�,�@m�`�&�Gsz! \ssܟZ����,�z��2&��E��E<� �L���!��;� !O�7Ʉ�
d
J�d�ν�P�K�%�H���*v�n9�ޫxZ���:�<J/�yy0�WJ����3:�}v&>%D�by����`A��z�@�J�.�Av����-+js�s�6t�u��BZ_e�\����L4�y�H��	���>���K�왰�ε���J��sϽ9ܮ�q�*]�>�=|��rT�"���''#|z���ץ�4�U>;�B�w�x���l)IV(�ɫEi�q;t�Z�v<Ե�1]s��?��.i��Hk{�����G���1�WGC�:ӫ�6�ʹE�۽��o���	��+��"�n�ǃ��rr��з�lx�����㰖�G7V�O�ڞ�����Ӆ���޴%/j��;��[W�3� �L�
��}j0�0��ta/c?]Η|�us>�k��0����%;�谸	�kO6&���v���{3���t�e����Δ�=;�C�� åL&�?�5�m���#ǣ�2G�n3���s�B6�M�v��Ν��b.6����ˊ��	�Oʽ����e;#����K��	]V��a<<\���|S���p�U��åc�c��O}��	��yil��`sW���x�|��##H�<��)��}��\���na�,ߢ�9~]=��L�]e�l	B��uGi�#mT�n�,]�#f�31���9_N��o.��(w-���<�P�^�3��K$�$��LA��F�6�hŭ<��-�<{�����ͪ�<n���]5��SdV"t1!j��r2�6�nS�)�uAl�~!��!T4��.�(�ɋ��|�J������/s����a!K�G�vG�>�O��5�٤p!�
j�)$�֖8�P�����8�z;W��o�b�O���.����-�9v7��&wV�x������fnxc?��v���.Q���jN�x�/��9����b�r���Q�!��-���t�UM@�Q��^4A����2-t#|0�2�ޖ�`�d��Z�#�V����Gm.d��l[!�h�����r����}e����`^ۃQ~�/m_�S�V�.�7x��]���ߠ���Ӏ���Yi�/n�Mc�8x "�>jL�x�:&KT�O�Ս7�~ճ�1�F}��
�w��h���Qor�{�M���2�t�.������j�a5��3&ZI���䇔Iv�]����+jE�t�qSc��v��ۃ���N�Q�����.�l��N�7��U�����3T�(��m�oL�G�E�Fs�U#��B~�2M���V9�n
��9�ę>3�c�$�Eə������ e]J�<�����x0�go:��Y�}���r��E�`c�@��/�6~��s�TR��k*A~��x��g��|�2׽�"V�~[�Em�VJH�
e�}E�!�Se7,�����!�f�4���a��3��U��>��3�0Qգ�
�o=��ͱ�L,�h�܂� 1]�БB��2!�e�k��]�d+��`
=8/��	�Ȉ`u��mu���Z����S����\�Ce��cC���@'"<��A�Ռ�_D=N��P<jIP�Vm���e�y���ۇ�eI�T��Gh}Kdk!S^SZ�C��\0_|�t���Y^���̴*�'^�mˡ�F�A4�d��9{�rJ���ʄ0U2̍Ow=?�K�/�pY	y!��1��n���A�?�c�p��:��]�����&�0��Vn9��/�*ɶA����d(:T2������3]�������+�`I�!�6/(��UΞFn_r��R�
�R�uЁ�Df�E։,�-9�w���]�3��b�� ?��)R>5vE�Z@�$�-5D�,m��bo�����&���%弤F�����L#	�J��:</.^�,��DQ��f��L,3�]�~���"f���'�G&�Σx��v�����Jm$�5��2�.����*y����!��+P �����ʪ�ҀW�x_�s�.��^֮)v�����3c�u��
��'��0ly&XJ��)�^�_o{�haZPn@��M�d*".#C��^���Q�Ȋm�-lJ‘�_(D���A-�!�Ę=�N|�(�	��X�^�Ɓ�l,;�_��p$֔03�3:��>��X����"rּ��3�x�C{F�K�+L����5R^]'��
s�$b��1'Rk�p8[��,���|��鹲�w��a�� ƅYi!^����Z*��MЦ�/w���}~o��(�yvspJ)�䓹�je�;��}H��U��SL���́���'��L5M�:�mz�ٟ|�
xw����ڕu~�ə�[fF�wƌ��Y�[�v��u���`KD��:���~=}�n�W8�C�Ei! y�V+�},8�x	pa�尶���JD��V�����=4T.�n�\�e77S�0Z�$�Kǩ�ΌF��.��g3ͭ��ܘ��\'�YaÆ�c6L�^�|�ǚ�I������Dg@3����;
�j�!	a�U�A��d����e�U4�v*�Y��*�۷��,������zG���e��ǧ{oUV#/[[㑂g�Y��]G�2�t^ݻ��{̺f����MA�C<�\�
dХ��d-҅�����<�D��9qr��s��,�8	|u�t`��-|&6aG�n;�9%���l_&��sa|J$��ҿ^2�1V��	�p�ۙJ=�?��4�W���i�f���1�U�sզ҆���1m�7\ظ%x���U�I�1� Z�)�K��w���QV�A@�#_u��W��zB�C����RN� =(��on�L���9i!>�yn>2�C�$���s�9��w�^�V�7���b�3����;] ���0L�t�����7$��'7�V���BYݫ�_��z��|��k���;�F�e�ߚ�43H�}i�A�6	�Cߖ�yf&��fm)x�t��x�����2�	s��h)�ID���t� �VenN��bʆw�`,0��]�>��Ռ�rݔu���2����w�G3&�[���8{�u��:��9͍�)$�qu/=�;3����r�O�1�7i?��X�?�m78���O�����J�)b�n�
��,[Ib�5	{�.RBl-`�����kɆ���Ġ��>����H�n��I���ǯ�V�Lf8�m��mY9b�@�e+���I6.e��٧Z�2�R�͖���4ݶQ���]N;
��y�$�S[\ZJb��MZg������q���3���ږ(J06�j�D��x�i=�P<򮯐�^+O���2�q�_[yW[�x������t�`����,���d�T�9(Y�N�rG]VN_��,%��%U���t�s_��]�$��,��,���>�9��v�*)��n����}��pr��B� 3�t�㽹i��.'��å��fb�\�}S��X���PqרL�d�ȳ1>�4�jj$�*��֍�ɯ���'^��i���W�g64]g˹�F�^���I�OY���X��EZ:�ث���}R��7"�ym�L��%���1�M���S|������3�
dr�vkΨY��T'ӱ���~�M�]��ܻKCq߾̻N^����G��ۀlc�X9��z4����F���G𨼬��/�(�QyU��\��:�B��1%��$��v%�*��O��̧G!�zfA٢��{��d�N��0�2��(�W���ӗ��-�IhCN�Gn���l�&��)��6��� ��묚z�)ɾK���e���ַa�"i��ư��gLi��NM��i��R���Rj�����yZZ`��Ƨ��a�ݵ,���'S!F~�����S�ί�^'|+�G֍����=Xh�s״?J��l�)��a{$�^Zd�o�5_4ZC��M�[{�|�L�eْ�*t�|���,k�F��
si�^O�j�}�ď��R�k3�fTi^��K�kb���w7���a\ѓ��d�N������YZ�Q81�-�����ۿ1x4�ݜг�Y"�����l�^���]�D]D��}w�����D�w)���Z;�,]�1�}�$4���I�=s�c��$��z�F�^��ub��l#�Z;~��k�.��M��iD��| $`ԦO�Y߰�\�G?�ù����{:M"~�bmzs�k��V^�ߏi�Q�hz�I���,�J�Q�� L�a�T6�]���NfD�:������X0�Sv5�i�8޻*����<5nx(6j��ڮ>���_vt�jW}u�'��Rw��-�>���2s!�}4Ə��\���|&�t�fG��%Y6mD}X��k zh�G��4����He�:2D��/�Z�Z@A�a
j�v+fP1��ٶ؊¦�q�/S�hQ��A����nr����m-2T�t`G�-l���t�^6��׹8UX��1� V����*u@���U��nL-���K��s��G�z�Y��g����N��IqS�[oN̨���[��e�yw$���6���Ř:�L��|J��m8`W�N��
��hn���ٍ�ۋ�d�n�YՖ,�B|�v��N�b%�u:<�I��f{*[5]�(�"�Z�glۏ��i
��OU'� |"����F�h��R�r�مp&�vb��&iH�XNJC��_�A�尿S���Z[�3�
T�9���Sl,Ѯ{�����PlD:Gq��R�BtavU\[	`g��u^�k���jjל{ΙN�N��J��n�DQ��wL�)oe@�
��z���%����zs_DW���M7`y#��^�3\V[��)xX��5��.v��X�U�ou&�L�[��ݏ�T;`��3Ìk3�D� :�r��S���S���^�eL��e����Sq=�k:%��P����5>qC܄��:�s/R�><g��d{ D^3��<�����`�g�q$�b�W��8]B��I\��f�^����Pᳯr�L��Gu�]B����kE{�����&+�,���0�_����Bh�����0ʩ���%Q�Y���0P"��;P1��9�<]����~�����h}����U��s�������ϛ-1�:�\�'�!�N�֘�Z۲c,C�p��Q�F��*m�
�s4�t�����,�D��l��ɛ�Wgo�V{j��63��ݓ�f<�3l� �e	<�;�9Se,"抵�(��_�B�	��6T�g8�!�JR8��C�rh:�A7G��e���h���wӁA}ܞDFFo����ù�5,����t���L[�0�BӮOx�9m���!�u�
��{O3�mG���0;W�rJ�!K��<��T1(�"��]�N�"��$w`if�Rt��H9\�A��Lp.��g��Fi�@/�y|z�t��4]�9'�?��
�l���瓉��egVHV�YV�����|r:��ޟ����-�\���-
�`�O{��2Ϋ��9|�u��᫊2A����2㜓i;j�0��pu��}?
:��?\�?����N���K|��̗��fV맿���E����Ƹ�;[5��	B;�3�7�Ma��M<��V��7p:�NNG>�wp4��7��g�VyK�\�@*B�3&�4��������?��l�h�NG:�50��]����3$�ͰYg5���/v�oj����$�$	 ��"�CU		1g����B�D�*��7�?|���H��;t�{����0I��Ou=��W���/f�z���3��,p6��-]��5��/q!��k�[2h�f��k�d�8�`��|�ӽ��0�*!����Ј�g��VY��t��Z���#vܽ��`+O�V���|���U��`]��N�8�o̬����l�����������M�u�@��r���j����(󸵏�7�M'���Z�
+�_�7-�%��.j�#^��F�F�t�C���#~��|�bN�R���%ڪ�y
������t��ij��/��ۍ�R���X)~��E��{�"���`g�.�#R8��
��X�M
�[���(t N�ߜ=��֜h�fBd�~��S�D����]�sh�T����8����8NCO�H��4Rz\�n0lئpä.����g�������zFVb�^�R�+���V�jU��l����߇�5�t���um8�%&Q[���~s"��-!k���U~Ἆd�o��*"�R��F�6�b��l�TW#�DX0��*+�p9�� ��th��_G,t��,�T�r��m}5�E�s�
^x�䖢�G�]��^^�^4Sl�1���2wX���[^}�@5$g篰њ�&��2��	���
�#�xE��+��b�"&6���m[n�Uv�Ws�Q��~*KBpW�l�ʦ61�?��3y�?F��_z^μJ���-��^_XFrU��GHh�$��J?��8D젒>f�N���D)D�8N��b�����1癣d�)?8һl����vS�p�XJ.�/pW��	�����`�u�m_���b�-�c����.,dz��0�E���s��x.�,�ih��|�BhH2�e�=!���ݢ]������O;ٛl��{ڧ?8���펶@i��W�p��A��!�A���
4`)	'�5Z�2��{��9w��zCl�כE����0�[F�<M�e{q������Y[��6'?���0��<O9�eG����~^-�jۚ'�۴��%�m���{k>P��&ږݞ����٩�Y�A	�K������=�m��l̐���&=������I�}�&��i������s�_�����6k`$��Y=���2Qb��|@��ս鲩J"�WU��EJw��L���bh!Ac�c��TJ���F���Ѵ��
~K�Q-ܾuj�oh�X�&=�0�f�
�Lı'$�w�-��C�#dJx��5t��Z ;oҟ�3�#x�
��K.�6���}�^�[���Q؊BF�(|/T�����TC�ך���e7�ZJ�6KU��N�Zz6�t�j��ə�A��=�}��%��ɤ�Su�`��)���g�����,7G_����JbҼPm��;���*Z�1�(ύ��"s�M[E����Iw�}rb[U�훗"նU��[g�'=ŏ�DXM��i���bޢ;j�n�>��oYY�5g���6\��-�nnY��@z�;�h�ۭ>4��֌��������"�xl���(>� ���6�����&+ �@U�H�0�d��%O�jn�c�*Y�<'M)7z&S�ƦԲ����Ip}ycL- q�;f-�2�H�̹�kA ���&*�8(^>D���!�-�(�a�I��%�/A;;A��l��ayp�C���`�MgE=匞���:��-��
ܸ`g��$����/u�4�z��� |x��t�� ,R:�>B-�
]��_m@���۠�$t� �ImBdB3A}g���t6�7iLj���?�o=�m�≖{Q��[N�V��Β�%��e������
�I��u���.h�N�;����
��sa^�;���	]����;
ͤz�.��ts�`T�����v5�[�%�5�1�B��0�M��*�pϷ�|�����ݕN��D'�7�Q�B$Ӳ-\��x�\f��%Ҭ>�"I޿��l���Z�XW���f�p�2�"8�E�m�zrج�;B.�ꡤ����C�RLN�!�8hW�+�{�$�Ӻ��SZtgV�,f�7�8��`6��^��:�)��UŅ+rI!�K @��&|������y�W��r=�K^�M�ά#1lF�iiʡw�~S�ҫc�F�_oH��(?أ�e�{�?�zҤ��4C-yc���l��[�p���$��d	y���d���c=9�h�Yû^m��b�V��!���CK�&^-�m�Hh<`�������!� <_�?Ӭ����'�֖MO���>�>�G-zQU�P����h�9L�=}��@�6��l�ǶY�T̳$LE$�ʼn�B
^�l�ȺP§�*J1��~�,$�	���J
���[|wc]fj���yj*O��L{8P�_8�y5��/�
ݗ�u0QB�$��+�2z�"�U��	�)��Z��m& ���=M��CvuNL	�Y[�����U--ba4�r4eAw����^�,y�i5>��SI"g�z8��<�Q�QK�K�ė�a
�5���1�ϕM��h��u�_6�{�O;[�_|n#]��h�?|�V��R�W�Knw�x��n�?�c�\���.�Q�
��^=h�n�"!eu�~�@E�@�Ͻ�.�/�ˍ���)E����`�M��`!ڲv{ѺW(���yFS,	����n�ݜ���R�=��g�d4��bg���.ٱ����n4ӽ��縁f��u�����0Z���c�w{�����o����s�:|�j�((�w����(ur�Z���˶_�cLv{Z���[l�=�9n�T'���Q�%�6���>���V`�i�������4"�@��N%Xc���㣭'�چ�7��d��v{����rS���g&��(k�ܽ�
��%�H;S���y5�bC���|�ֶ*I�h:��M���>��{����%y�3�'�7��{��D�H��]�ht�	2~����{/R1!Z�+����P��o��9��5f�O��s�.����oƞOr��nF�Y��[Z����6�k��
��`0H��1���9��{�Ӆ��Ti���?�fj**�tg�^DH���o�sa�*��&.��$�X�L\I����*w� ��.ī$�
�;���i0T2\�7�m ��<D�F��3�$f�(��䒊u�9p|�y"6#>�Gd�IXe�*pOA�-Z���lD(�l1A'��sK��MugRu�y��rdw&�G��S���,�D���1����$K���)�R�K�::��/F��k��(j�q�'������c���1ˆN2k�e�ןRu0";�/�d(Me�?[�@Iaߌ��	ru{��7�ʺ�L&=�V�ev��|���`B�n`.S��e�p��
�%��A}�?Ju�3���{ь�>kJSX���N��#l����*��T u->�(������*J!�70/�Pfr>Lcj^�Ɛ�e��7����)� ���{f+0������!�{A��UU��W�=�TkΆ�����LC���ϒCbALG��^.~�e����3����x�(��ܫ�����S�����8X��O�	[S�D��gd�H�UQ�BO����+�Ș
L������wB�X���>+�uz��n@��\ظ��K��3>��I��ē�������A��������3fM^/Ss9���*R9s�37�`q��1ϙ?�����#d��,��`[HW��D��|���*���)����i��u���d[�⫤�w\����9E����:���4��LkBf[�`��3���h=��;��k>2U��Em'�s~ͳ�v��U��Z�QiZ���ʢ�(Ps>�.x:��Mךc5�����1b�׹�J6c>u�lΖ1�H�4+�fTٞ�7B�5�١ʬ(77�&3�v���t�,��<�
��]�ۑ�1TPz���?r���t�a��|��y][@0����@o;x��\8�(c��e�NL2�.�'�s6��5�@�ml���:ջ&
2��jX��[��|��l�%�%V��1ܜ����94Ze�2D��w��k�.���n��-����n3���עO�?nr.�IΉ�����!c�c�?lpo�s�ĩ�S҃�E0
��=:h
X�2�Y ��~�][��R�w�,8s?�ؖ��d3i��i김���Oyf`�7�g�d�?�p/4S���Y���@߽���uaA$J�����m���:�ϫ��H�`�*[��c�5���I�P)�\a�C��5��j)*E~	��x��F�B��2E�c��Q��^E���[5��y�"����6��˒$r�ɧ�:��!�����b�B!�e�.]R��6�gZ���=_���,�ݗ��M6�<��0�@��Ɣ�F�3�.��n�&��?�����9qP�y�3+V]��,��A�57���K�$�K�����I��7)8K�oX��!���h���T]6�CG�"S��w�fv�l�'�
��KC��e@$����A������Q��J�U~�ش"��#zp���gC�l�)���s��(�<�
6����ُ74!8��L+oB��^�O��W��2��?�n|��y6���KI
�)�U�FF���ئ�*7/��]Ycw�M<U��FM
.���M��j��D�J����K�z�	 �[�	�'��|�J���~z4��7��|�x&I�v� Bȏ���	;_��'�C͛�:K�M��:`8~.���F	qk�1����I��Qh�5��c(��e)��2�T�Ǣh��dW~��������A�ӹ��h�0��~������5��,�ڭOR'ƫ��6Cs��F-lϖo��3��Xs|Sx�����wZ�0=S�4Zr��BM�O^�۫�O���9�/w1~���3��Xv-r�ƶ�&_���J�Z���J�@m��%[�ДW���b�8�G�ݛ�w/_:��b�!6]�т`>�U&�h����l����R���MQZ����a�J��d7�a��E��B��b�;r��,�H@�ɫ�����l�!Gr���^C�CD�C�1IuDS?K��6�;�
SE��%�a]����B�
E�!�e� ��+���-�DG]	[c2�d�6["�8���8�$�
�����4mP�3TY�a�� ��$�@�l	ufs��G�
�{�R�ˠ�G�3&EZ�*����јNM�-M����Kj�N�h��
$��$�_�׆G)^n�Hu�Na^��h�)�loW�(��K�%>s�P����!»g��Md�ʺ�b٘�؁{�6^�����qX�9X��i��]�PN��o��6qꍴ�ڄo@
�`:|�xV���
��`{<���w'l-�"�K�t��zt
���o�����ԉx��Ы����.c�mނ:���
E��
_bA@v��i��j�W߾����X,FF�^�o_l�q����Z(f�{E���AW�*�N��¢v?���)��Ln�������5�5Ӽ$�d7N�2;�[W�g2@�E䑜��Z�֤�K'a���[�U/�CM�}O'��r�K��!ԣNs��T3�z��� �1����A�Tb���X���,�L(W�'C_(hZ�*�T���B��5��7W~X��UhN$w��B�á���&֎Q�Wɼg�C�c��ልN�I�)�M%ăW���_7�is�ta-J����G��FB���9Lm��].��8mb��N��F�{vv~���3G��M~D{�U�o�Yy=�H�\ûM����X���cb��u�ʒ����������B�1;��G2Y��)�)v�
�M�ȿ�	���K�1�9%���ߤ���lK���K�/���,�,6�$�PI��^�
�7�fU%2&H�M+��4+��l��k����tf#��Aw�����9v:���fX#��#�~1]5�>�m�v�X;9��J��(�hfu0��G��(��EF9�{QI����8�ͧE�G�Ƀ@��E"'���f敱,(�JB����!Z��ʂ��nq)7���X��������|Լ����I�͘Iy��f����Ä݀�6�bf�em&��*�4k��Ĺ���׬��R�v��>��l��kx6��P9�bj���Œ�fPN�X��2��vD�t�ɫkvIp��_�?�$�13�ԸI���Eu#��)I�x�hk�u�[��!�{���MA�iP�<�����;��l:ӣ��\+�iz��?s��������$:�#_Rh��7�=h?��Em�Z��f�kX���rm���x������"!ԥ���gN��I����VH�(�Y!2�C�P���m!Ў��Ct�h#o��lH�_�*�L��kS��i�^@�Tw�ژڜN�U��m񄉓.p��2s�U<����/!uM���hn٣׹�����jcry��Y��\��֣8m�Q�׬��,%�����v�__g�F�6����v��ϰ��
���i���
V��Z"
���Y���X_�Ȓ=~�Gy{葥̈́�����=�q/e��.�&�m�\�
���s(�I���Z���v�̧��(v����58���i�@n�k/
�_�ϛ窤\`A�F�lBs�d�
�~����7�Ǫ*W����s�{!�)~��^��:��h���sy�}�a����[�
($†4�f��C�2�|�kh�����t���'6O�\�w�
!>},��H��%XA��#{|g	�\���
�P1�v��RUjy��d������x�̩�TN�<#��a�d�M�$��4�O�3珸6�V�DŽZU��|�/N�^�8�Jc�,�`��r�n������a� ��r�0	�p� nf��״%�o$oD7��,����&�U �P�.�DFo�خ}�~��p�c���\���$���&�6�GI�����l�	C���Vn�]�o7��r@�\���h��ڍO�6ZG	ϥ��+>�����D)gz��ImS�t�)B���t��s��2��#ޛ6���5�q(ˉ�g]�iJ�y4�X�)48�z#ԣ4��n:Mc�ك�O�,80����H���c��t֙|���������|w,�᰽�䨿�J�#����/�E��>2����L&�(�fO���f
.]=Y�^f�6�ͯ�-$���7�|'sY����nV���6v��O��y�>��\Q�n�,�3�R�8��<��M��K0��
Z�0���'���i��A7����`*����C-�$%b�uj>,Az�4��$�=�t�p��.��0�}���$�u���VbX��!DQ��n!���oS߳���Z��:�7,��
��˄�s)5�E�퐽�
�w>&�oP1�`ο��m�]�?�����������Z��[�/O���S��k����7���Dx>���ߎ���@{�w}�2���G��<4�}*����I���_yD�ȭ�g��
����O��p0�,qc{�Fa_�,��̭����m��/���ׅy�xf"����V��.�]�(8�cfׄ7j�TaE��;��������O+�Gs�I��T�������3�8����!
�J~�O\�n��V��e�'�=��w�ZFE���%0UU
`�>s�B3��0��I��c)���Q“���t]�}�J]UK$�\���ߘ]�HƵ4�ye�8np�qQ05G�F��_�=�I~��mj��:�ID�7�z��V�
�*��	>�E��父��>5�\u4t^�ͫ�=�A<�l
'-�\��+}�v�ք��hS;�/%�:"�wE�r�����0��w������~,6�������Fn�S-�ժN��`eC�\πPx�[4wZ�
���$�D�ffw�?����B�V֔J�0�<������κ0��+���n��((\j��L]�R!�{��B����g�Vw�]=���{��L��>��C��1��P}�mRZT���%��BnFԬ<q�)��v���ԥ��?'㾒�/������s�[㚩��MR�po�Kמ�D)=��\�Y྽����4iv�m~��>��^߆v�*���QF�_�g��:�͘
Gf�jfwC*�-	�>S��V�_唘g�&W�W�gv�;B���B�5���+ڪε�	����!��k��l]�ա"��L�H���!�|�|SYǧ�o�05|�f!�$a�@1�n$5p�mrj;J?�T���"��uG�����){G�:{Ɏu>����=�o�WVy�tuj�X�b��
�������uv�����C��B��_�8��z0��&�=Rf]�F�&؄�@з�ؾ��UZ+
��6>�w$̖���S��[4i2�I���]�'G=�ꯣ��O�lvѺ��8��\Jg�gx�V��8ް#
�c�E��<���;,��F�ŅE�k�֟e��Î)�L6_ on�2�X��S��ũsܰ��>3{ʂ�l^�����oq�l��7�t�f���6S�zs��n��;�1?>�0oƼ?�M���7�#Y�ho�����7O���d���s��
!��-#�e5��ks	�<;�4_��l�\Y�(�2����<��
�Ϥ�U	J����xe�a,���1��1e7�s�7	�Ϲ�Z@X��cTe�#�F?�/��\t��,xAHϝ�����g��"BGޞZ���
(S�춠�%i��q���T�;F��&39�)��+�س,q
>���_Ço�[YZ�fĮ��T7>�i
|p9��"E�j����@H�r�L�fF� V
�J�5矤W��_��<�W�z��A
�TGP�+�
�Vî�S�2��.��q|��,�p̡B����$��p�u����D}�>�/�<ELCD0���#L�������e+/��5�vd9#��@���f�(�1�fY�Ƀk�]��⮴AH���@�hf&���|���_gvi���!�fH�	�jz���$��As!2S�.�J}�g���_�W�S�Β���&���C�E��2���^�3898b�ӳݓ��{��I g�I��K	���H-���7�瘳M��_�!j�S1�o�b�y�N�	���d������]���z�w��T��2�NA�i%ΐZ�
��gb��<�T�<�)�2��)4���m�!�P%n�ݽUB�%��6��wʔ!��|\!��^�|
%���-ڔҕ���h���:�F��)�!V��t�,�c�@rn�v�<̎C
ス�E�X����٢�Z�:_����P�C#
�SU�^�Y|��?x-/z�9Qy[�y�o�.�4��+:t����T�KD�gj%L� h�{�-����8��*-���d��t��׋�7�s�)��{��t�s
�R�SE#����bK�tQ�G�r,l��g���r)�~��(	[b<�.�ɗ�<a�k�l8j�zx�?�k,7s؀�^�������r97Z
 m1��]M�w5]|���f��`~׽ꁯ�%���{Z.��}-w��؆6��N@{*9����y�*#�]���ï�D��ł`we33CK�=I2��²��Q$~�bf��k�J��6!1dT񭴶af�!\Y�u����"�T)�~��%6:S�s�,����5`,�)�
Χb�%�.������]�`^{oU�����-� M���ڨ���\?�H5ĝ_lr_��L�oz`�kϔ��-ވh�u��-������|OL�Ÿ3r(D���G����C�G{M���i�o�4��r��?�V09
$r��#�EFڸ��, �Z��;��M#z��T8�Js�.���۰��Ǥ�p(�Кʋy�$b�<�%�ɌS��ϝ���d��^u�״�y
ģh�|�з(�lW�v�IwLK�љ�i�haF��D���G�2a�n�Y-���L8^Ve�0:]jv[�}��*��-j8�Z{�������\ }��[~���SڞK������^�[ձ�NO��d���&���;�K�����I�R	�W�C��..�~w�Q)���]�n��C2�{��
l
P���N'��@��7Ye�D��e
`��UX�ml��d��.d��d�k'A�7�~�|��<`/�ho%."Ʒ>-�t�&Dh���|O����������L��\�Mi�0��J��}
M���&��:��Φx�5E8��{�-
b\��W�6NLU�WS�+�Y� J�Lη����<���x7����e����Y��߇����_�B����WD���4�cFPdQȜyn�0���,߱;�A0�>�9o��h�d�=*! �oi�_�԰�4��oN@�Q��t� �dz��
�}όDh���)�I���z�
����[�'����z��0��=!,[ˍ�:��R;j`B�8b�����	�Xҹ���JSW��Z�A�	���<_H��@���e	��	k�s�
����F�]�������sw)��20��
~[��u���E��{ ���yـ�]A�������*,>L�0�S�E`~��W� |���	s�_V�7��úI�=���e�j�)F������Pk�K�[u�&�k�5�T7[T�4�y)�op�h�]���)�⒎�Ƈ���Gs~k�
�����[��N���ld����Fcѣd%K���C��Ȳt��\��3��E��3۳#�+7nX�<�6c�T��+^!˴H�-�s�!��;ܐ���;�B�t<q��^s������/22�<���M��U|:Dx|2=
ܗp�Tw��j����1�5�%,>�6j)�:�$d��:��T�CB.o&zV�Ae+c�ͧ��F�"�����D:J�^�AG��[#���L�v�٣��U���q���)����
Z������f��a-���������xd#��&�ǯ�r,6��)�a�H��sJ���1����O0��f~F��u�&�=���K�a����6TR!~+�W&D�Z�it5�Gv4�PS�qx҆��}q{r��J�BZ?#�ձXP����ux����5N�U\��ـΑ����)�H���*c�V�p�R�p=C�ǵ<���GB�5��3ڜ���w�.r��~zP�8AR��Q���+>B� �E� N`H��M�
7S���kiF��W�~p���x:�=&�n����;����=5��w�/�ٻ˳a�k��n(���pA=��$RB���h�y���^V⮁ڿ���H��g�1؅(s�N��z�'C��N<9aܛ������hmE�4�\��KF?{�ų'�㟝N'[<�w�/��vϟm����Q�l�ք�����&#�,�g��>�t�����+�E��s��Π?Ң�K��癋Qt�QN&a"�Ijk�5�f
QL��$X�AK{ƃ��&]O�T��|[~BC_�?'\Xd�ڜ���7Z��u���ߖP�[lr�J �v��
�����M�w�?��à��&�@F롶�`���HyI�)h�),B�|DI���\C��)�f4�g����||C}qT'�AR�xɠInq��8�Œ�\�qw��"t1���j;>5�gWLK(�(�n&km
~�p�	�e�X�\�41�Tp���zV�Ā��<� !�|?#��Y����l�k_;��2Or�r/t����f��� �,d
L�T���	=�O��~�H	��򎁈�3:��#��&�f;�"N��GZk'�;�=T�*���i�M���d�YC8R.ul��}ql�~#�]���V�K�w��P��u�e�GF}c��jf�r�-
����k��#F��~Ŷ/|Oop�+!D�CW�E�
��kۇ�o5�{*�~�?o��8%�9�ok�XQ�H��a���	~܋���$��n���+���!}̲ՓH6�G(�ٓ�s%@��j�¥L���g�D�D	��V_q	>܆:�|�~n��]�u�RO7CJ�N��ğ暕��_=W�Ņ�z|��+P�Y[����]��".ɻb?F��K/�3	CyDIO��=bC���?�ϥ�@�˖���8�x�E��@�dH�
�?3�OR�.�3�<nvQr���a����):��%|��Y��@�{~z��MO����$�64�'|���a�4<
���#�M��-�7}��W��]��^Ǹ!��^�i޷`�0e�{غ�fx�(u�f
�y$�툖l]�W��l���EŽ^5�7�mE�ԒK��<~�D�bVn(���pLq�e��K�rf�Ǯp�jjS��n�T�)�/������#�1|?�?!�p	����,"D�A�$��;'�]��\pf���1~^&P��~�8���f�z,�v���K�Ga,�S�6����s�-8�o��v��7���l����_���
	�\!�sH�[����vx2��#���Z�EFb��mC0s�9^(�3����9‚���	�υ��j�Ɍ��t��y
X�My���N��8�Q>��:[wH��ٴF[)�bQ����oxؠfo�z�:�~$=E�_��ȓ@����Ѥ��~�G��Z��)_k�-�$�
iD���h%�"����ݮ0��;�9m/)[lȩ�9ޞ �%mS�%t�
�@r]�i�~N{�`��U`^��O(�g��6F}���jڱR�q5��*;)Ф��)�aw���m��pU�/��>��1l���/ ڢ�J��E��*	lfgH�V�]^a�~�t3��Vm��v�{�%_*@�ˣ�uhl
T7�,M�Faf~o�^X�c`�
�ӣt�eIfvO�u�����<(95�����f��z�.t���='�X�ڏ&8qH��H�లX�n���%%�F��w�;f���9;�
/s ��{洑X��[أ��X�ҷI�\�)nn��M��:G��ʲ�f@و〆�D��x*s�~�3��}a�p�v6bz�_���v7�Y[���_����4��{����;儜�,�pF	驹�e�&o��ݲ�,L~ip��!�Ӻ"<r��`����v�iF�<�$���`
N�Of=���_q���T	�2� I'�~�Gh�����a�/����
9VT�#ta�MȔ—����=a:A;���c.������y����8����7�]tI `NTF���p[�^´�d x�[j�j��U��y�P6���ξg��N��3Px�+i%��t�B�|�w��o������Vu��o���{�sP��D�.O%������%k��ٟ��/�c/o+��)�r�DT�s�(��r<�Hi�cC���ñO�Hw�*emQ��f�W���~���Nl��&�{�}K�<�W�Qi�)tv^0���S�Z����qo?�L�:�ῠ�-h}n��|��^��{F���/�OH)sޠ�y]��s����ϴ�g��1Ǭۃ6��|ғ��כuW��l$u�}��^�{Y>��8Yk�0�tKS@���o�7��ր�qVsQp��P�8G[@�0?3y{�!@o^U�iuo�dXV�n
����J
y<T�Ыr[���{M�+ؚ��ʌj����9Y�����]�1W�b���9�n@⑛c���E���Fc=�\9ő�v66(��Z�ƪ�7M���\�����72�����)W��L�+�r�=�D�m��޿8"�i�d�/��'��)��;I��G�ʤ���P1<������ε�wK@^?���pm�+�0�_�5l����r�"���^BsƂ~ʮV�������O�I�����&׭��jҌ�OM�S�*T@xwSDf�m�WEJ:ӿc90�y��qy�_o��Gҹ��s
�Z�uE\su�Q�Rk2$��ϊ�\�����䰴u����{洕[ y�h�K���Ƭ&D��ܙMd���ls=,G�N�t�J^�۫�L������|s~�CE$� !au�_���C�Rwҗb]|�Jo+�:G�n�.�+|>Ja�R��,΢��p�g��1zp4���Ο7Gy��ښ�̆��Q�}��,i@�Y��� ���
��`����XP����Կ�<�C$Pt.,�W�2h^3�P�c���<���d��p$�ߔ�"BֺPl��W�=����\D6�8��:�� �tc�RŚ��5R�� ʪ6u�k�%�`SV�1��徼"U�6�I�Kl7Y��\�4��n�y�{ᠺ,|O�l�e��H_f���`����z����L%(�/9���x�uNrc���
���&B̦o�D��ڴ�cZq��B;.�
 )�;"gW��|!�t��hq��(�W���]>	c"�iK��\����B�]gm�bN%n�k6	q�Y,�>8���c�E#�\�-6����ɲ���z\4�-��,��H�����r���1�/?C�j�
sZ
0��{(��|^7g4[`�i�U����ȴ>��ܖ�o5��i�O�A�yC��T���
]Rd���'�f����-�NԕHKʵų�l
���ʳ�X��|�6;<Ҳݙsv��ZP��+-��!����F٦�(�N۴�Ci��ċt[�H2Ė�#�l�[74_���駕��X�eL�g]���e�0����!�»�s� ������A/\@�At��:���S��S�S�~���}��|����t�sx:N�[c�ɛR;_gf��Z>����0�x���L�&=*>�X�p~6�����)�:���^��ᮊ�{���i��r�V�7��5��N����T}>�SM[��}�W@��LDy���_�v{�\��U��瞨���3[�}�\7Ud�Ջ;=�<Z�l�1�҃b�lQ�^D>�m��)��Ե85�<L<�)�M�V���pu/~N:���qw��զ��Rk[Z.A���.`��9A�@�ݬ7�x����;��
��5��LXp��e��+sΌ�i���d⊭Q������eg
��g�X�I䲏�����	�݄1�F���#r���i�0�~���̃�B�_��ۻ߈tG(15��\#���s���g�K>ϳ&c޶����_���MR/67�~�JM�'O����ˮT˘4ώ���S7$1K�yT���\ �Y�67x�����^����fum�P�P�������'@qKg��M���Ak��~��{�}�{����?���VJx�M���,(
!�����RD�v/��k0[�����}�P(R�0�nm��,�Y ���?3Ԅ�o���}F��,����79	/���7��r�r~�����6o��F+�cs�G\�.�G��2�6Q*��+_�� �oH�� ^�s��n�1c��浔�sͅ�sE
&qT�`{��wo�x�X�g�����t\ю{o����+�p��tR$��u���Y��`nI��O���!�hZ�,L�rq��1�աH�m,��` ;�1判�5k� ����3Q`��'���k�v���k|�� C�F���j/�Diꐼ�v�:V�aͦ���yf�o�<rQ7���d
?���G�r`�2�̴�C��[Pc;�~�Y��)�T�@r�*Ik�`lU`%�\]�Z�F�Hjyͨ�.WRV�:I'N����x��L0vt`#�.5�S��|�O����Չk�_u��/�P���ʌ��K �}"���x�s]��&~p���� i"��-��N�ې�m�c������#�\�"&,�i����R�|m�����Up�R	i����o��{�]kKڪ�-h����m���6LT�m>��d�Ͻ-
ձAZ�;O��_�c
L�$k�<�l���*X'WB�p��R��
#�M֦1�व\ex�sLP�ͫ{���5/�ޭ
�_B.x>�;�Ե��X��T��k
 ��:]�l5(.��
Csv��w��`-嵕ZE���\��?�W�y�!������8�ZۯZƓ���
�����c-L��NJ���Mb.�?廉�rX{���8�f�7CPT=�~J��/�∨g7y?]���!�}�P���Fǻ�GsNu1������_Q�(���O>�����f�����|��T�Œ�|�Z��)���V���j���_W�#_"VN!Es�W�@�P��Ѳ��[8
S:��$bR��"��덧K�)N�-K���w0Zơ�vn�=��[��~�촞h'/Nf��HOM�ٜ>?!=��B�u��e��9P��3kh*�"��X�-煏�����"�sCi�E�����E^�ӑB1����s#������n�~54o��`�}���bna.�5�NHSzb���7�Jxv+�A���Ip�]���(W���Bw�T��i:ء����כ�-�:;��Y��e�8�ӣ�V�B(�*��U��T?D���/m_��Մ#y<4��J�~�Y�`���w��E	��5����{q�����A1�>N�y��+�%[�ff�S�o�+��P����`�h�!�9�Z
�N�&68��ɖ]��(s�dz��&��4G*��HU(��i��(0�p�(��f(��gV�A���A��G)0��C`^�@oA~�X&����1�iZ���a��Q�g<8��tݠS�L�UEp��R�tx[m*yoK�׶2<��MZ}d�^f�V]�U�3�܁�E�Qh��ׁ��9���Ԁ��Z:S�B��w�s��*=��/y��.F��!i�QÓ2Cj�̬�gI�Y��Oze���/<�.s��[�1IM�9�,I�:����(qV=���q�)R99��-��m,v��$K�`X�>,��}���~��Lj��t�:����*}=�0��#���Q�
��m/U�bm�XJ�(mW+��M��J�-���~����I�ղ7�?��6ޛ�����A�T!
k��ts�&�d�|F���YrnJ��˝�˥����f872°�]oH�n�5֓�e�����P�����ѣ��_�3��r�읍f
ɪt����6A/�!��bc�,V���u���Cu�P2�	tm�(h|/��
?@���6��0�U]�GT0+ˏ������_��CO�W�)�|WRR���k��1��L(�N���Ė�PzvYD����V�*#p�c�ơ�+�,b4���Nu[�0�	A�sy��A���5�&>���4� ����^�6�s�ݷU�5�D馋Ij:HD5`��M[�-,��:��L�u�W�E�t�q��8��JyaKE��Ҽ����%V�5R#�x�W?xP.H[�W��$`�p
:I�A��i��0�I[|���s�?o'<V_i%F�#9�2�<W�oK��o|9��²�Po
QV���0�wG���>�VN�[��u�>k����̩�yw��
�mlHK�SÈX,h;3��%Y��y_�h�A�H��m�:N�g--����(�1��}�5�9Nc��L��c�z�f0��8����^��q�]��@�	�=B�+��0�����6�{��>a�߷�.��;�yJli�9�Fπ�t}��1�l���N)3=����O���
|��5�nIM��v�b�~O��ahR�t~�!u�h:�o���롎Pb�VI�oBgю�2&]�R�zUp�/����_��~C2|.YbA����Ւ��3�K�ҋY���b�Z"e;�J�$���^�
3����E�~l��wE����u��5�3ȱ�]�b_�mY]ͱ�AS;����#��3-cw�;8>w�ܻ�F���;\xy��:����0�cG	�q	qL�2ZxwϟR`�A�ף���(F�,q��U��ԙt��n��Q��{/1�w�\I�.[Yc�|�|���Q�0���!N�R6��)�\e�+���)�s�r��w6��%��-
.���Dlo�ʍp߱��Sf��{��=��L�_?=:��`��2�N�a,�:>��O�~=�?��߿��K���O�k���xtlyꩱl��0��js�B��I��7���N9��έؚ���gO�VE��iǜ�s�r��GCx���I9�N�y�O��A�ϠN�Ŧ�Hr\�\�Cv�\8�Q�k@�B����Zj�fұX��}U��%f����k��{cl�����7�mDJ'9��X�(�x�V*�Ko+?w:��!g�۝����m�*��Yݘ��v�7f}�S#j�*�Y���5}%�!
��
8Rtw���ï����f���E_'���~�"�0�q�Iv���$�ɢ�\��"˂��9C
wN#�^<ǭz*�s�tG�C`���,�E��疌��$�&�%,+	�`H?�3�w�1F����P8�H�|:㡧h6 ��|dD*iF?jb��;$ppҤ��4�K�d�\��݆ͣ`YQ�6�Kjp��
�7�w�q�_QF`=���Z&bm�I�U�<ͯx�-�"U%zY{�3&�9���e�W
ݱ�*|��-�%��;��soV���RZ�Ӗ�8n4㒚�Z#�3\��$��S��Ũ�����;X�.�_��d5�)�_F���?	{gŤ�{��/.>��&h�C������*�Z����_�
�����)e|�+�����=���Y��u��Z�VÕi�{��x�ē�JW$�8\�Tu��{֨�YP�].�V�T��[�z�.����L��L�W�A����E�.��&��{�c���R�j����|e��?T����4{
R3�)�W�u�Ǻ����Mں�Vxڅ3���V�D�
/���e��Gh�z��ψt���p�[U�[����W��8�9YT�!_�B�
�(\E,=�]�9�ܑ��bW�h��ݞ
��z��NEj}�K*�!��9< Y���`�d�lՊ��qT+�
���5"�بVL���1�Gg��X�T?���ض���:��{�]�v�1�p{���ѷ�I|b��uL���Q5GS ��T޾��{����Цq�����c�� "ܤ�
��M�)�<�V!S�
��ml��׷���� t¿�h��jB�K���\��/=���No�
%$���3Ub����������K�)���z`s��89�����	oz� r7�t�u�C���<_�����O�H�<QLQ��h`$H7K���E�frD��3��(1�z?�!>�X���������+au����+��� akAR���g���Fq�"N�wx+��^ܦ��@q�hp@	�?BJ�,��/�mLb�P���Z��T�����������5���Kh���-E^����E����0������}��K��m�~)5Dw��3jG�i��0�r�X?1+^n"X����ū�jQ�>jN@q�x,bQ^��xg��K�(�c�VB>��㰁�M!���]u�~�N2���i�,�*��*�����4R�"YN�P��1^�77�p�F�/���H>��?��T3��S)��.�숛b�*�7?��4�8y�ya�(-/��A
��@ya!�gA�yF�YU�J�-˻�}�;u��8O��g�Y��ɟ=D��Y��;��C�f%؞�b� l����O!�Cڌ@@�2��XN���"]�$@͝`�Uz��&Ĥ�	�<�p�W,�z��qD	�y�|�!?ɫB�+�i@��}�m2g��L��/�8�Co�ڮs�iÁ}+��L�ez�0v+�d�;�/r�9��������TѼh�3��7��3��Bѝd�ƍ���y��%6r�����|�C��-�s��Ӧ�i�<�>�IG�%�1V�b'��������v����a��p��FZCr�����Ɉ�Nv��QNS�)��,b���������C'����y�|� ���ٸ�k(!oo~G{bw�@��):�X��xp@5���~'J���<Dz�V6A����Sn*]�!�����%����
��{����#oyֺ2�����cQ"f��Ū�Œ��� ��|C?Ggg�|��]�h��:��^*�L��̎ug�N痙M��>�`�Gy8E�S�bJV��bf�E��kBg���ֺi�uZ���/�U�s+�	�
��/7K�	JR���ąL�	$��2B�mG�U0��TDr��[�����
2����kS�9��9�Fq_�љS��=.�6��2Ȋ�fCvyd�<��8a[&cYGx���^vY��_�����ݺ�R��M���;yȺܒ^ �q¾mS�rv+�:��۴�d�Eذ���J�a(ck��+���dNh#��XYWv)0�ẇ�0��s����D�9�Nl�$2�_�P�=�e�O|F�=��I��+�+�սJ���⒄ő��
:��b�|��H�)o�xB����*�bn�mG��ܑ}?>�N����!�a�6�M��s�(d��n�������/����s���m����?\ V�����˖�UFCҴ���ZIV�(,�"9l�?��ҷ��*\�ȝ�
%����/v�z�3�m�-�e�;��p�l�6o\Ƽ���Q�pb&��T����J�6_��ZoՃ6J��s<.m��Q���)��y&^ܶ�z~�n^���=�稟>H�-~��҄
�q2\�q�"����h���a;�`�����p���{{U��镏�{GY>��Ԝ��8�XE���<sfp	'C�ޞ����P=�w3�~��<���w�pS$@]+��B�D�#�<�;�=�Q�* ;�o"�'b}���_Q4U5�X��a���i\�S�pO��dL����x6�2s�/��dG��S馂uP��#mjSr�*K�K%�W�4��ҵ����0 '��"jJ1O 2{�Ǜ ��K��.�I��s�6�Q����4h~����&l�Z2R>��IQq\܂����8dH�-��KGN�E�*Ɓ���y�_�LJ�#X
O��[9	ZY��K�<':Ȼ�Bq�h�֜��,Ud��OcG�O�7_+|��]l�Z6�>g6^��55	�"B�2�k5�(J�c��]�e��,�'n���տ
r8�ϟ�9}��WT6u��l�[�^�տ<]��$G�f�\��ev��N��K�s�TƊ|�1�q�C]U���j�N\p?Uy�)��LW��e��23�X��MQ%Ԯ+��Y��d]�����?3�#]��I�%~�Z7�bʇ���k��X��눟�u��2�-�M(��� ��6L�KP$����N�߭�'t�.6�W����db>�1E�u�����'j�jApq��=�_��p.�[UJou�;[�!�uضgrAs�ڲ?x���2A��2]�4���a	�=�U�u�;��.R
�`I�nF��1d[:�DiK8��,R�8����p�3;y�*�P�)?l�&��	�"�H$s]�
N�Ay(�`x$�؀���k,e
l�T�-X)�ڨT�����"��s�ýC�tf�n�o_��w6�n�[��ɰ��{����NR���� O�57%?>K���環n��~8{����o��z���/_�}��lx*���Xd?���c�%F�+�D�S����*���(�S����I�*��4�x!�et	�)���+w���	��K����fʯ���U*'eF�q�	*���kRXZ�_e�����kj�W�9��O�E�oH��8��;/3�]~6�� E��[<�}$�q�KM�ԑ��VJlLR���F0P�ufb�B]�꼎/QhkV!�� d��U;�3̈́�-`��p*���d',и>�lx�p)ܟf.C�A(6:V��{�OI��&&�n+ڒ�����;��-?������q�]��Q	cw,�N3�E~�!�a��#�3���]��69����E*1�n<�Pl��}en�Mv׍��)5Tb�
��i1\��8��A?����^��;/z2��oXK�%�&
�B��D^��B���1���|����ū�_➯W���/���&֘yӽ��ݗ$T�z~3O<+���'�_�v���?�ot^���G��i(�ɠ r��(������	Zۊ��LJ*�h.��,��ieL��Z��5,1E��-}�:��|��ʲ�8`�V�Je���uS	������8��y9�����^��ژ����E,�$��l�����E��"���gV���7����(f�	Sk�V�}ʮ��k3�3�F�Î{3����
])r��϶���O-�B̴�s_���P[��S�]�&-6��6J	�=k��s���Y��ab8����k�cV:kD�s��iޗ��c ǔ=�۹�:�M���b��#�S	�2��=��QGc���-Q�&�5)������*��?=ٶ�������io�,�CP:\	�E��nWt�(�n~Jc��;3��7F��7��5NA)�!)ݵ�ۉৈ�S���<j�WN�)٨�����	�TĊ��:ͥ>#�l	x��m�������O�>�����v��➚�;$Mk6�p��S�4H������p��Mm�I9:=��.�Ư�yi򪏺���.��Ǚm
�ޛ�Xs�i��ւ��%3�`�1rW�\!����yl{�s,L�=���kM�6�ΝdO�
A "G�{5X�~�ʋ�y��%"��
>�����<c��Z�J����,�b�;�ƜIn\���vq��V�rp)�Is�X$g�9���a����#E}H���m�I_p�J`,�p�W�"b=�#H��_����3�t8�O�zr�i�BOqHS��k8�n�0-��M Xts���}3�܆?}�W�/�I��A�w��p�0Q��Kc2�<;9��;<�$5-cJ�[���ψt2L��B�q=�F9���H���N�-K4��
��N@��G��@=݃~"��{�ٺr�>�ml��΃0k�Y�I�E0�-��u@Ą8I&ڙ�n�t�D��WUM�wM�:��}r���t!C�H�@N�����[~�()�s�+i��'�ǂ����C[`�ǰ��>��p?PO�U3���*�nJ(�#�
7����ߢ�e:_О���ȥ�U����D��cÉ�}��}�O�<0�E�iL�a��;p��\� �W-ֺ	ᥨ�_�J�J�U R&_�sc���	y��}��� Œ��U�ϑQq����F��\��aN:�'�h�[�^/Z�"b'��a��4•gϢ�g���x��˩p rG��cr��ǟ�����:Ā�z��K�GQMJ;�| ���J1���
Zz-�d`�+B[���<����-�@*�b�	�n�`�o0��C_��:���	�h���tY�/�%�t5���e��t1Ҟv|�uz�@��l`��ͮ���%oe׭�X6E��g�'�*Y�&�OR&5%��*�IU��=��h}���E���xE��~��V�RNc�\)��=��a�;¨=�tt���Y�پ$�R1VQH�����������mm6�ݯoC�g�չe$��y�o�P�~�1�r\��u~�����+ʿ����7�p��+]����i���߸��n���]�]~�������p�p9yYo5j�\C��aڀ�F6�'�ϵ4z���;B��a���
�������ݽ��LN�~�
�fy��#��#���cBCv��x<�PbLd+��ª��B��9�
/i0i"tQ)�'\:Ů�H�]!މ�q�NH"Ղ�~n�n��I����餧�|��o
�X�۬���[M%	Ω���d���Գ[�]��r���
��(/��&�5��t���@`D���l�GYNI�����DY��� t����Y��ȸՔ�o獳>��-=qu0�{��l�Y��o�Ow���Y�Ѯ��w��H���Qg[7�����|�O�߾z�
b���&_I�Ƥe"Shv��w�ߙ�,x�&ۤ]lG�Ӯ��;����(�ڛ�L��|�)e�m`�ې.c��NOt�ܝ���C��@bl45eO��x�B��gd�e�̑��3FL�t��a��z#J{�C���G����9�!��Z�$)�`��$�anK��i(�s���)����:�
!y�B�Rn�G��t����9]{X�Z�<�B�D�m.Ǚp�̳��1��FMֵ�z*�_�ă�*vG�O`#��n�A�ԛ�I���6��QpBdU���ӂ�؝kN���|E���{�!��4c�kY��I��7��:w?c��dt�ow#�����@v����FZ6i����M��<S����P���62�so��n/*��/:�la��Y1���UtN<�l^�7�Zt[��h��h`��W�ɻ��~!�t��<�Q^���^4J����.'���j[��*3�����h`�5{1:񃞗��.�~!�,=����U8�m��!��������	�̵�kO#�I2{J������mpy�A�e��0cj���7���9�3�Y�ՠ�ં��h�0'��(O�Ү�,�Q�oK4�dW�jFk��3*"|�?���d\c�x�<���vϫ��:�X���D^�IҌ,�R������tvs�CYrotƖէ�yp���@�ؓ/��p3%V��쟾4��⃕+iB~pZ6�(}ʅ��g����cQ�e��w��//e�`I��w��a���3�m$���S�	h���%�n2bH1�~�o��*3��rğ�^��]�|��o�٭�]m5��?�Q/��9��ر���d��)���#��-��#Ȇ��d���5�Jnn�D�+4���G�yZQC���H��
�u]�r
8Gnk��vU��T��rRj�g^�	�H 
_��ݛ���?y�ip��̻[
����->���,�+�۱��x5k�:X���&�v?�MOv���}/��vØC�1l[�v��xq�����{[z��:��dE�ag$� ��<2�㑑�'�t�%�P��0n�)��o�d���ܘa��kF���K�lm��яf�nsWc�3�X�����%N���FH�ԸY�	�7�����dn�E#�ۇ�j��͵���F�h��yY�����.��'�n��E���#�Xc��d'�67��r�xfL���
�Q������Ȧ��̆�y9�p<����a0�R�k ���m�z?���_�B?�𾠧:)�����ZBYl�)�����"���
�:M�������"�I�o�Z9cZ�|c��If[��F	C�q=R���@4���s`�忚��,:�t�.�8L#H���w{c�ĊHfgR3�#��ܞO��寈�q�m"��S`~6ڣv[���J^�`�0Y|e���@v�:jzo+��1��x�'������I�� ���up���I4<x�W�F���Sr�&�oA�x3��}��3"3���V��z�.~Ef:�#�VVQ�AB���M�� ų�yt�C�[aAC̮�s{r4?/A3���m7mdX.�d�k�s��ec����>�A�� ,��M?�	�_}���4�,<Yq��8�v��1���ؿ�*�Li�(��@���R;^��?O��)AДtE\,tljr䛎��l=�}CL��Lj�����/<44hJ�T��[,�ه�y�L]��-�S�k�\	1�B��[<�H>gt����2>�z�P�(�0ti서@��@��E��.�w�Ռ���A���?o�a��_�a#*cC
CV�����e�[{&8V�0�z��y[�-L}�SG[P�����;&��#���8q��rߵ���;c����4�м��d�.bL��h�6%FEŔց�^�����Se�_��בa�
�vK6�H8`
,祱{�4��p��ً��/�_$�޾�S�=�1+�а�w��%�g����ߟ���"93�����wm�k�|����y�������
���ԭ���Y���m8�:��|?�5W_X��Wߩ�����Q�V��T�2�'��E����i^��1�=�0%_���V���ے�}e��D��}R�y��GCHZ����: ?�Ʃ�n�*��B ����
���+O��C�}��x�uҝ��J3r]z���ճ_u])�iֻ�h|u�.�_D�+��F�Q����ە�v2���j�1{����d���x{A��W�A�'ᆪH�t4���P�j���b���P s6���	(R�ؔB.)��aY'�Ò��E�'���������x��A���~?�Ť��,<A�X�ʉV�R,g�|�j2Ҙ��/����7�I'�X���^}�tb�g�|������߹g~�]oL����sQv�feo�;��(����~	���X�gV�8�Oh&������8+y^���*���l{���Q���zV��2Z��{rv5�-e��p�hdv��|.M��^�nྲ�_�ã���Y��T��i!LF�m��C�Aȣ��Gղ*	�fJ�Vx+�UC:�7�ƞ�ܓ�Ma)�uzk��u��F�!��c�,��wtK'W��/�
s�M�M-�L�cw/�:=׿�GuF�T?��l)�9R�DP��j�䭃�s�BB��Fa
�%��e��f�W?�<�4��9��ڊ��Y���쮋���n�MTZ[1����i4)*-cN�ע�Ծ��&��y�8e��G�mܓ�2�=�c���!S�;j��] �����.�Iվ�h�O'��yԈ}�!��|clL�����&��#䀅[�\:����d�3�&=L|$�dc>oE?ِB�b?2m6q�Jچv�ߐ�2����Z0�.n8���xEGį�SMac�A��սu�����{�2X�ݺE�vLS<*��.I0�A!~��I}�$B}	g$Ġ�)���cc��{�� $�>':{2Ӥ�b��E,�9����f�,ds�M�k(J�S��њ^����qq�LR�&��p/D�c��T

� �KA�����8:M]n-o�f�߯2�>*n�!�'�Og�s`.��5fa�x{z��5��u.�Ų��V��|��̪���%^g�x~��fV/�=9o�O���&����:���АBk�J��˹e��J�K����-p��Q|p�Ü�ow0�}��+F�֑�y��M~�F�֣�<��;[��f�u)�~;O��)c5o�nɘ�"C�y��Э���?���}��'L�r���mַD���ύ$��M�_���N�,�2�Wt{�U'}«�(���O̶Z[ұCw�7�0���UL�ȋ~��|��L�"=�:7*��ץ�_�Ȃix>���D�Ԟ8qڨj�jWގ�qoj��
�~:X��Q����~�FR��l��w���~��=]a� T�Y�t��c��sN�Xf"����e�9�����50zǻ�A+�sY�K��/�6�#���*ngK3r/z?�Vx�C����\$�m4�C�n���lk}����R���,�����Ȱr�[�7�y�d�M�'s��p�[�ghPD2�qxy�/�5/�M���|�R�
f�>͑����؝���ĝ"S�L��3���8�G�#�6��J�h58%i�9^��D*j@=����]����"�.��~s
���ܛ���dc.�@s�7Y�NҲ���I.]������b��p9XC-�7�,M�G�p{�j
��'�gUܯ���v��q�zZ��>|E<9��a��C����~�&uӕ���������#��?����4k�vt���,�r�R��G��������ߎ'���6�v����V�I�ѣi��ئl�y������ߎ��Z��;6�~|4m}�x��I��N[_?�4=�N�ۛ��	O�Y��S�M�~<����ǣ�����{~<��Y�;|�^���Ӿ_��4���̡}m�e>LO��ާ����{��PKk��ZzK���litespeed-cache-es_MX.moUT	�w�h�w�hux������\U��O�

�
u��L�bhn6��!e�n@�μݝdv�0of7i�A�  =R$��k��A�"�.X�/�s������&�����͝w�}��w��~~���d迫�g2Qy��Lfև3�9�e�B&�*�T~���܊��~���>*?F�cT�C�sZ�J�'��;�p�!�
C<��m�z�ޕ��\@e���I!�]A%
3s	����S���r���f2{R���!*��D圾L�`*o�r'*��C�\F�7�<��q�T�J�S�W���|���T�K�T~��ݨ�4��TnJ������"���"����
��C�y�J���kT~��u�d2�S��3���|��K�r*�_��w-�{���;��T^@e'�������r*���{T�L�%���߭�܆ׁ�)T֨�J�Ϩ�C�X���3�^*7��2�s��~���/���2�ݩ�<��\n�2��WT��wU0�V𽿩`^?��o*�����ܚ�g?���T~��k�|<��8�_��+U�W��s��b*�T櫘�ê��W�}OU�cc��:1���7��él�1�P�����@/���w�:�k�:�i��~~��]Ǽꀫ#��O�X���u�ǣz�\��u��� �c�A����6D�;b��1���ϊ�?b��2��~6���\�o��ܞ�g�܄�s�6m�t�u��j-�r�o
a����d�2|G���~]��=��"������n�ϧ��TT~���0�d��y�?���X����~��n[�}�K��T~9�\-G��;_�r���-��Ee����T��<}�x��ͩ���g��޽��x���>~��e�c~�������u�:nz�o�[R���������ͳT.b<L�wy_���:��@�����O���Á����|� |o� �Y��u�� 엿P�nw0���`]��1/��סZ��+�]~0�����9��Xǿ���>�m�}|�ש�N����~�}��S�܎���C0�9��u*�gx;�~�Kp��{Z�!��k��/�3���:p���G�<�(�P�өT��pt(Λ�a���C�Yz��aoD�g��0��	�a�.?�0�{�w��0����g�8����g���S�<�t8��8��:��9�-���ñg����\s8���ñ��x���1�������8������#0�?<��<B�K*����o�~���������G�}�*	�3���F�*/>��/G��Ga>�<
�y��}�c)�;�9N�m����x�?�:�?g����C��ј��G�w:�Y��K��x4��G�/��1O����那�^S���1hw�18?�;p~�1�����q}�1��W�y{,Ʊ����IZ���?�X��c����<�?s,��賓#4��q��Î�:s�%��w�ø?z<�0L�<�����ǣݓ�c��|<�?s��p���=N�w�{�W=��|��'`}�8�q�	x�'�{�~^�7N������7�ǠC��1��{-?t"��x"�d���'b��=���3�����D|�C'Ͽ���O����N�zQ9��+�<��'mwQ�y�~���NF�����\|2�{�:��x;�d��ʓ1�j�_��q�x2�ݓ�:m�S0���~�9���מ���싗O��?�T�mO��8�8t��S1_ǝ��D۟s*�y���8��S���OW��y�O�Kz��O�.랆��tƽ�i��Ӏ���pu΍�iϵ�a��8
��^m���yN����@G�t�O�t쳓O�8/>��/�|��0�E�����R=��3qN�,������}Ʒ��h��l���g���T��t�9t��>�����\��>�!*��t�{.���s1g�x��\������w�q��p~}��]��<߽�<�����Cz��y���G����>�:𵗖K�-?t��z��|�����|�6��Zq�_��|���G�����S9�ʻN~��^x!�[/�x��'*�f�b%�`�J�s�J��-+�'Vb>^�^�s�?Znv���"�Wt�]r��o=y���Z�ы�nӋ�[]��ͼp�@���2�t��x1�o\���ߋA��	�v�%�w�%ׂK0��K�N�K�Wt	�;���7^�y�p)����2�K1�_�q�w�7��L���e�g�/�.�|O��婗�~��2��//�?z��W.����o\|�q9�e�r�WG\�y��r�ê�A�<}9��ϗc�_�r�+����r�`��C������m]����ؗ�W����J���+��>y�x��0ի�=�\�s��0�\�����*��g�F�^�~�����~����\�����ﭫ�~����B��?����k1����z�k1_�z�*LO\���]���t��x�{�u����z_r����a��뗮�9��u����G��X�i���A�uR9����]���L۝t=�������}7\8z�z�{�|�z|�?�w�g���7`޷����0o�
�7`�\��/�����o��>��^���}~ҍ��q��Op#�U����ʍ���o�8���X�����M���M�ýn��&��7nFnB�W�37���f�w��K}7�:�f|�#7c�ok9��_�ȥ&܂�(ނs�|��v����Q���p�݂so��W��
�͙��;����:b�۰Υ�-����0�܆���m��sn�r�m87ֽ�����v��G܎��v����1�_��x~�W�v�x��w`�y�ݗ�oz'�k�;�w����_~'���;1�?��^럽r���~�a֭o��ǫ���~�f�ɭ�ϿY��x}��ϫ���C#x�#�#�#���F����w����#�#X�_�`~���9��]�w��]�;�>����]J/݅y���׼�����}�n��\�}7��ֿ Z����n������T��|������<�^���b~λ�yɽ����~�^��G~	�k�r.�/��%���
�����v�}���<�����>u����<]q?��ޏ�������7]z�G�|~�o܃�˳�:�<�u,>8|�r�8�Oy����ݟ�{�ɇP���V��P���!<�T��B�������{��C��qC����>.��>=�a���zL���޿��+���T|�
���ܟ����u�G0�����ש��;�z���Gp^�������{��yp���x���{~�(�韏�}p��c�g�\/|��1��a��}�p�c�7k�ӏ~���m�8�
>�|^�8���G��>xZ�	��'�_��?�	���O`�?{�]��}���'0��O��@�M�ĸ�}�v<��=	���'1�G��_}�Ӈ���}
�)�s�S��짰��>�q����ON>�k�ׯ1�1����x�k�C����k����{�цOc�?
����7��xﯵ��Ӑ׏}�+R��3��?<�}���>��
�3��c��|�W�~��Y�W�x��,���g�?�yt濞�|��9��C?W=��p��,W{r��o�7���x�F�N�{��.�c�|�䏟�����1/�x�8��ۂ�����'���q�h���܇_��Y*�a�~���������◰oo|	p����/7}�e����/^��?/��|���\<�w��wh���a6�=�d�x;���˕��;~z��c?|�=�^����}p�+x�<�����}�`}���+8��
��k�{Z���i��9�^��'�p��^?�Q�f���g�W�%�b�������a<��U�5�~��3�g2��s�u�����X�
����y���͛��
�	���ob_t����x��?b^�	r�9�zޟg���e�?c���p���c�3�k�|��_�S��q��8gO�+��K=��߰�ſ�N���A������ا{����=O���`_�Ʊ���֫�-���Uo�l�6�)[��y;�m����O��D���'��/����8o���w��~��G�T^�������j��~��w�;���j���b��/ƻ��/��/�1�Ҽ���X�C�C?{�~�{�_>�#�}*��˨�y{�J>g>>f���,*�����8�J��7�d��;F�\�J�/�P�x�*#���Ⱥ�8��I%㇍8x�
��޳�<��T����Cxߔ���]F%�ߧ>��|�#cd��E%�岏��T���t�Б-C�E*_�N%㓿}߽�:cd_-�����T�{�JާOP���o�d���o�����F#�bK*/N�R�*��?��P�y����T�����1/S?�yއJ��#?�����H>'�d���xϣT2��'1o|�ا��>܀J>?�P�{*���C%�}
ϟ@%�mgP���**y�o�.����}jy̺�iT2~�ٺ����s�v*/�g]�#�J>��4��C���T�95�3�����QY�s�3X�W�d�:s�1r��O��?��y[���'�R��ٳT�o*��,�m'*y��P����=w}��
�NS���Q`�.��{9��Wo����{`~gn�������
��Q�t��b����u��?�!���
1/�n�u���P?�J�w��;T2~
��J*_�H%�#Ͽ�9�ѧ??�U+�i�G?|���k��~?����T�y��/`��M%��S�xz�Q.�L�鋀�u���R�x�(*Y>��0o���k���|�,��t�F���6<>F%����z���}���~e�������+X�m����������;�d�r���<ߖ�|�:�y{!����
7�������X�6�s�	��N��n4�4m�1��	����d:��	x�
-�>x�*�!�5��5���T�3gh�_�<�K%���:귘��n?�i����6�,�8虈��L�:��]��ݪ�=�L|�v"��_�~�&h��&��7�>l��_*��}D�'n:&s�æ��;L���ϟIXǟMƸ^��u��f؇�7vm��\��p�f�owo���L����9w��9�ӽ9�p��u]6��9����\�A�ʳ�7�z���OS���K-�;_������}�)��S0O�L\�J���_��kT�9~�Lg�6<��T૟M�x�٩8׾����[`����݇��[b�ܱ%��-����ϭ��{+�yu+���|n�5��T2�r��X��m��8i��3�`޿�-��7��<�E%�/C�b�n�pz�8/^����?o�y�c;���|����9�O_����p�|�X������<@%�9�
|�T��������c2�ܝJ��o�&�;a�k�4�����ӰoN^�w�������]+�a܏LþzN�c��?Z���?&�yk��������w<_���S;n���?fG��O����u�T2�>sG���;��rG��gv�y����O��Ν��;�'���|g��vT^���x�;�;>��z�.�w|����Z*��{t웏}��-��E*�N=Z�/���C���?���E+��ޭX��[���V��c+�ӯNG����_OG�g��#m�޺
�mC�Oڰo�lø^oúb�k��K3��@���o�֛3�_?ю�ͧ������R�v�Py<�	gb�;S��L�wf�7���e�w�,�{�,��f�n�v��_gn�oW��xW��}�*��֯߁�lځ��ԁ}���t����|���ߕ����u���O�mf�O����sg�8��nد�w|��[��}�n��sw�9u�n���v�֛����`�O�8	�`�?���o���}r���9�˯�Ÿ�M%�#ϟ�~_���g��{�:��b�c�y��E��}��:;�����?���s�<���Λ���0��l>�5�]8��||�a�u���o��}�?�1�OwbM��<��	x8��\�׿�ļ���?�;����`w����GR�'�<R\�{��+�/�~�t�،J�k�.�ۻ]��>ݍ��O7���n���n|�C����n|�'��}#*����B���"|Oe��'�@�����b�;c^���ޏX�y<M�o^��~x1��}�_�����=��������o������*ij3��������x�p������m��v�ƺ�6��m|�~��9|�,�6�uo��9{��,�~n���#{��~jo�3��u}�;��^_���|��wq=�����}��]��w1�㿋��.����xϯ������}���㟿�~��9w��m���/��}���bݮ��|߾xߟ�=��}��
P��ݲ��A%��	0�z����Y��2�T�x?�Lj��<�w��Dw����AZ�P���[���0o�/`_��n���B|���Z
��!����j��t/޿A/�u�^�繽X�z/�s^/����?���[/�k�>ํ�0�S�0O�}��|wB��M}��T>����9�x?�����\�wo_��*⻊E��`��h��I��EZ�O-�,�||	�k�%�&.��l	��Kp�ܽ����KKW�SI�Hf�Rй'�@��#���Q�z�O���q���2�߬�O�@��+�s�Vƈ=�O+؇�܏�޷����H|v4�,�1��l���a5��Y5��5��5��G�mꀿ����x��u����N�b��x� �;g���������!�=mC���!�w��o�7�u��1��x��N/Z�}��0Ʊ�0�k��)*_g<E�?X>��i����N��҅�|M%�q]�=���?����������{.�x��i����~�t������0�W���W��ҁ���b���v%�:�;�J���@�ӧ^�vƹ�A�҃���q_y��� �^���9p�كA7�<��q.=L%��|��'�|x�/��zf��|���M���C�ߖk�qz}�����+���C��9|B�P�]�b����[y(���C7��~�p��À��=��0����}�0���h��ñ��;|�O��r8�g�#ƈ�S��_��}�����K�������|���}�ّ�o?�A�H�s�׭Gb_�q$�s㣰����Z9
���G��<
Ͻx�s��Ɍ!|���;
8��h��h��	Z�ѐݪ�ۏ�~���aǀ�9��ó�7��o�#�ۮ?B����^�z}���������m*���b�6:߹ɱx~α���X���X|�A�bgk�K�E����~�X����c�_>p3�8�I�^��Cg>�b-�:N����qX��ø�|��?�Sy��8������A
��:�#�Ǹ�r<���	؇_>A�	���	X�'@���	���y��c��^/�1���c��9�͉8f�x>�D�Eϟ�r���}[�8��I�[�}�㖓�w�='�<p������	�e��`?���ñ'~:Nƾ>�d�O���m�S0?Nޓ�1Lj}�|��S����y>��˻O��b}ʧb�x*���S�o^9��g~�}7��Ә�)�㓧a�N\�o�҃��>
��i�^;
��C�mt:�|���Ϝ���;�x�阷�N��b�3�n=g.>��30��~������<�t�3����||�L��t&��3qٙ��#��.=�s���;�}�L����{rg�<��,|����{��`��#x\g��u�ـ�7�\��l��Ϟ��f��~���sp�O^:��X�y����d.e<�3��;�l�u.��k����\����x?z���A>��y���΃���?�9�=�~���ώ����=�v���;.<��9�[?G���A��s�A_��߅����gb����<����Vb�[�u��EX�O]����E��/�>��"|�Jmw�E�/w\��{�"�Ǜ>�]�y��Ÿ����7.ƺu]�~�ղr1�w��8�N�X�������d�K@/Ͼp�%z�_�����.�/})��'.||�2�)T�>�r��e*��>u9�ɯ_���V������^��_v9��7�c��\�v�+p��+TNv��-7��8�J��W��Wb}ο�y�J��e���>��UX����|�*��IWA�r�U��篂��W�������t
�|�k���5�g\��>~
����<|���G��7���_���kU^q-�sڵ*��Ե���:��,��p�u��UׁN�:|w�o���ڹ�c�O\���Ϻ|���Gހq����0�n�:����n��.��������9K�_���:��G=�&��Z�PYf��M��ͽ��T�?�n�9�}��3o���l���[0ޥ�b<ުx�V�M�ߊ��ۀǶ�
xo�mx�k�a�{ܮ�q;�5G���/n���w`�}�N��wb�����'���;�oy�N�}�Wa^OZ�}~�*��ի0�߬B?�`��A�#�Džz}*�2^���S'�|y�]�޹��n\_v7��tI�����ן��T��z�=8��Ae�{q~{/��{q>�v/��M~���%���~�s��_�}��/�|��>�S���0��܇}���U.v?�c�*�x�1?�܏���~��>���w��� �;��M�=���ǝ��*�� ��y��I?����t�?�s��0��A�,��:.��[?<�(�G�y�(�=.z���ؘ�q,7y����0��y�W�q�C�z߹����=�}|�8�o���D���$��<�q��)��SO�{?�k���נ/�5��#O�~�i�{�4�s���禧����o>���38oz����o�o`����`�6}V���ǟ�q>|���W.��ÿ�8.�-���Vσι�y��^��<���/@n:�E��E��z*�c~�E�IoziLf��/�m�ƻ��0O��Ͽ�;��ֿ�*�t���Q�Wb�f��}��k����0?���Ћ�a�����^����J������8Oy��7о�M��M��߄<�71�Y�9}��������z�'���?�̥�J����-㩿���8����=�W��þ[N�R^G*o��1��O�x��`���ioaNz�W*�x[��V}��ا+����m�w�����m��ƹ��?1�S��si�?�7��:�'��Q��>��ui������|F�u�
|2�J�_�o���>����`���?����#���w���n~x�w@=���%*����:��_��>�.��ڻ���]���E��_��]���ź�J�|��O_��p���0?����=�m�=�3�C?�d��~�1�,�z��K��1cNnj+�T�9v���Q����<�7V淅J�O���O���t��A%��
*������*�_x�J���>4�8*�ޞJƃ�~�]E%��z����Jџ�I����s�*�Ρ��g�J^�?R���o*���X�/�d��0*�n��J����d�!�ѱB7��(��E���dz�OT�y5�cc�<��|>�C%�1댕s� *��x�J>�}|l���q��)*Y�*َ|�'0�?����J�'�?9V���d�:ꓸ
�L�E%��ޥ����?�u�lݱ�gQ��#��s��i��T�y�6��w|f���?��=G%�#���|�R�}��7�z�������S�a�~��X�׷���K��>����o���|��h�/�"O���u��������,�/T���Q����d9���}sb���Z{��?��,�W�{���'��̴��[�9?�~���~��]�H�����%��T���n��{Ǡ���3ό�$���x���������n�`g���b:��6��+�<��}���X���q�<k�Q«T��6��Bz�oz����)�f*�w��X����$�k�~�{�g�6����Tw�y��y@�ښꮦ�C�/���kۀ~�S��hL�M�.�H�eG}����g,�
���~>�=�l���3�1=Bm��o�8��m��d��t�����_ҽ3��g��mcj�	��&�{��;>r�?���|t|���r��G�i?em��~ח��h<l����Vc�2���kۃ���޹��[�~��<;~�{�G��I�x�X���nSjW��ߡ��to2�_�����{O�x�՟G�x�y�ߎ����L�ؔ�1-�}��=�1�|�����Y��I]�<8���߫��;�%��1*�ج�s�ca_�C��D�{���|
J���3S��_2�ҵ8�귡��L�ی�/�N}<��K���w3�9�6�6L_�xo���󨏙�W�����?�ow�b2oP�]dz�>���[�7�~�yI���{D�e�����}O�Y�Q�g4�&��_�{[S�u�#�0s�Ω�K�_�w������P�~�z�G��ȸ���X��c�7¶�LGpPB>O����1�w@s�c9q|1����K�L?������Hv�h~_R�:T�Y���=´?�5:���(��.õ�O,i�g�_�d��=��vn�c��3-���L��/�v�߰��g�$�&�stTf�e��u��C��2
��7��J�?A��2틎���������w6]�M���l+��������/�vcyό��>ļ8��/�{��f���é��^��+zv��;��}�q��~oH�����b�G���}L�ݻO��ʟ��-�o�8�!��J���;w��u����u�S���c�����ݻ���{�c��$Z��]�<��7˚���+�Bj�A��5ۚ����i��8enbZ���ӾD�	
��?H��z���j|n��ܝ��
�u�Ϣ�Ț̵Ԧ���$�*|�J�LuW�}����u�DFuo�i�c�YmF�����'��������g�TGdf�v}ׯ�7�k'���c�c�)z���n��E��	Z_���?�|z|!�?��^f�B�vH}�8��}�;�%�l��5�-�l�&<��;��V���?�e8P�-tM$j�j*����8��z�e�c�;����k%��G�g�q�O�����nקg�NuG��_��d>x����S��Qy�7o����X�ƞKm��:��7�L#�~������������R�G�E}\6����G�T���n�s�������O��>c�*���~��+͢��S�M��x�����P�k2����~�t�-j{�w^?���ߦv����̓���Li0>���VLd��]L�Rݿt.�_f�C�;1.�>����I���C���6j�l�l7�</�AT.��F�~4�������M��ӽ��P�I�7Χ�/i�����t��t�-=�
�U��K���g��M��\����-� >���i��.�s�� ���~���Loxs+1ak�Oxp{�{S���v����y|c�s�1�ϛ�?��_G����Z���{�y>���s��u��m�L�t���>��V�	*?I���f�}�o<��C�c�:P���ܱ��ۏ��e�'�/���,z�`>'����{P��f�CT�޻�ʫt������wN������;�\�GRy?տHu�3MA�:>��2�K�o���'�/|�Ry�֯�w>n�!�u��ͩ��<js+���f��D�Yv�#����������#��#Ԯ��Пg�O�N���o��f��~J�_�<�޿R��S��>�{�e't}��饺�ư��H������ϗ����=�n��L�8濽9�b����泚�8?G�_ӱ�o�?�y��j�����t�)t,�:��c�3�ۂ�٘��0�d����
O�����궠�/h�S�y�}����~�ΰ@��Fu�����/�x���z�n�;��z)<����7�#�'��0�m�?d��L�ۗ��䳓�~C����/f�cb$\�0r�X�ޙ91O���e�>"�E�f]֡��[t�����2��;��6�>�2��1�]D��}�6ޒ���ǘ��6�1�E��t�(�]��~��v��j�1�aډ�9�~��t
��"��XC���{~��ڝN���7sN���yY����K���!��WQ�G���1�H�?Mo1��s��~O�J��UǼ�[ןi�a|F1ͬ��B�^�������
˫� ���7��r�ۅ��6�S�oz�4�-�,s��LsvS�:̃���������Ӛ�x�r�C:���;c�j��4�x��9d|A�lk�r�y4�
vS��c�"d���s��7���mG�|������^�ʅTw3��Xv���� ��=���1�Ѹ��3��J���3�"F�]t�6O�j_�Ӓ��o��ͦ��v+��~�����澨m��-����B}>���ʥl�Hϯ`��qä>j�C�~�xĆ����L��@XV���+�1���,�߷Q�a��u��E��}֓��sv7��K���~ð7�w1n��3�Jmv���]�k
o����1�ļ%����'�&�h+�8N�g3��S�9��-�H��1���e�K��x��+�Y&c���1
G���#����q���=ʼ�'�G��?<O�7�>��o@��a���´4�hT��m�X��@{m,bb�l�iA�~��~�t���,�形��=q%������R_��}��G�g��m]���=���X��{�2Eu�3��{3��^��e����#>�^��<8�B}|W�<n<b�N�gG���>c�͠���lxǵ Z�����
����K}�����?2�@��,󥿯2�>�_/��ۍE��>�c��~��:2Z��e�����u��E<��l}�ec����ڽ�s��q��q��;�yb]�,+�?�?3�O���P��z��$��X�<9��G*��p���8��ٞ��A�;�a�q��N��A_�������ĭ��b)������-�����z���R��j�j\��h\
���a!�U���"u����\fb!�ի����@�\���T�a>*�g�m_V��9_�8��F�
AO)�%j����F���!}���@�7
��BX��q-�fk�j��b�<�!qX��}�Z���Ks�I�(�TO��R��(r�� ��8��3;�jػ���	2[;/*�Cn����+���X�w�윥�������&����v��OO)(/��s�Rj<C�T.�ce��R�a6(�V�J)�����)�R4�ߐ�
���2}��	i!�|#����8����1Ӛ�
�λ��<cX]ez����J5�)�e�K�ٞ .� �Ͻ��M(�1��ٰ��Dӝ�y����S�w XV�L�%2Mxq��<`H�eŊ�j4H}Uh��q%��q>����{;�R�'k (�^����O���^����EZpyoI���4��5j�d�u�lk��*�?��0Oۭ�����Q��Ye@���2�4��(Z*Oww��)ނ�T(�	�H#�^ݐ�����
�
�
���6��'앁ָJ?L���#�J�V�W^Y|Eϰ��Y�`0 ��N�U�z���ڲ}e�#�*����a�3��Bvn1���.jKM��Yیyم���<}a1�i�	�J�a��^��KKŸ��Qm�$-�$̕�,�2'
gd;�LZ���������r>,��Iƙ쪻�\�
ܲb��/;�s�؁>��V����;�r�RT�e�{D��JH�Pe������F�BKZ���'
��V�t�_`�Mѧ��=$h�?�ISA��a�}a���BDž %ZjӮZ�n���4��b H���A`Р��5�N��e~�����G	��g�	�����ު=�]
�@���%�s_T-*j����ޠ^ҷT���MW����wYg����b�p�4�}��,���@�a�3�N�ʄ6�K�r8Y�<��~���j���O�j�h��X�T�:5�C>��m�.�
�	�Ȇ#��Md��X�|P��#`�zP�k�|��5����6��,������4
�` ����r���g P�Z5*��0��rQ��;�V��F�%���G�.�c�p%��$IA����bj�D�[ts8�)5�VZ�,#G�@X� ��	�BZ
~q���#x�&��ay*�R���P H�'P�|���=�*�-���ża��Fv$���j;����\�����J���Yf{�z����jT��q���+˸�gT�I�etn��N��^�U������j��ۑ�ZP�~&5�Њ�O](4�,������(5���g��A��ު(E�&		���d�:�B�JX�ȍ�c�\������ZX����I��1��A�7�)�n�Բo,D�:�X�v�[Kv6�]�j»>���Zz$�uav��tn}��Q��#�Z$*2HZ6�s�~S��$�!V�?�d,<�쒨�E���	Ao�f�qf:���K�7ջҶ��e�m�jr���%�&O���� �i�18�B�?�@����W�N���R�����̨���='q���A����x	�,�IB=q� �G���Ä)
jT���2����;q����`<K�q���|���3\���@hn+�zI�޺��gE��G�����+��o��8�L�#/y娨d����’�8fH���5R7�f��V7��i��vOh��	a��|\U!
�`D��GXb��a�a�,|:]��>�"�;�mD[�?�/����h�F��I"�e�\@I�<�X�s���Ww�N8
:n�|QY�"�	QS�t"����|��Z
��n>��ɨҎ
�L�ޭ��-�G�ҏ�n<a%���r�=	*��!��S�����,�ic<�I��?Q����Ns4T,�+,�1�R�/s/�P�,�M�B+��n7���"�1�C$�T4�-��*cC^��r��o�L���D���O7A�]�ܮ�s�s^,��S���޿Y�Ӄ�^�RсN0��"��V���-ջk�kN���P�c��RM'�SP�������ł���,�y�;��ԋŝSd�zI���^�4�>Z:�z�����y
�}D:��z�A�&��?`��=9@�/��G�Qfy���9
��R��ޟ�l{WhEnZ�瘝��݌b�4�ń�ws�9qt��i��=,�T����2P�=,�!�0MPp.�Nۋ/��mc_�B|(��I���)�)[/���\L1�BAHzu7�<K?XZ���KdsUZød�:�i2y�2�P!�ļɗg^��zUX�	��*�Of�b'L��c�z��=|�W�FVfA��j�C%��AEkV���'�3�����S�i@��{Q�B���&���e�b��7�{�p���>�qF��d����Z��aF�X�}�J6�����^��7�4��U��6��ڂ'	�Ӵ�pY�Q��p�y7M�Y��7m���#�*�O�'���%�)�<�c��cb
��i�U�qbV�(���R+^<�3D���ۚ�F�I�B�5�+D�����ü�R׎���vD�7[�*<��Ë�A���m�:�f�ê�jM���{.�����zU�N�i�}"&2#�Ͽ3�B����T/�'&��0o/�\+�O� +,�W��[��`�uYbN�5‰AK�X����m�̒?Ǥ���<����}o�����?q��i#����?g(W��_�W�4TT*��"4���1d�B�
E����59��&SZh/��;�M����|���^�#�T!�YU��w!:#�b�E��Mw�4Dw���*q_���L�A�����!x]�P���_�=���}CqXؘo���� A��\�fL75㡮aH"/���w�B��fQP��Y�K�&hW۽*��:�c��A�I�7���)!�1� =�HT�A���6$�^��h�����^ȏ\c+�b#'�X4%y�ҕȲ�q0�8k��Á~
i
n!�ri��Bַї�ˊ�2Ϥ	����P�&��	��T�|�|k�c�$-��E`�����G	&�HŶ�`�*ibE�ho�ǖ�œ����)aM�$��[���a[�Ө��ۂ�h
l��H)

�:h���(�d�
F��U�ci�����&���\,��8�F=N��������aO��k�~���=��5>l��kD~wa3���!��X�����	s)R�ą��%*ӂ�̌��s�b�D��DA��a������M���0U�*���o/�	2WD�=�v�c�-3#�ew
Kf[q5�j�7a�r3�K(!,��څ:�Uu-U�xƔz������Ye+/0��޵��Sq}%��
-�,a��"M;�[�Y�'�w�M5��ׯ`=/����"yms�B�	�a{Mg�<��~3�� ૐ��?xj��Z�d�b%�2)B��RY*�XP��GĀ���NЦt�
�����F"��N鬎���옑���bW�\�E�ZP��}��y�4�L��!z���}�e�b�Rz�NF�1U䉛�'�;�b���Qo�8�#�I|�$��p�3uM�ۄ8���8:�X�
Y�[���*��E�J_˗
z{��=�!��q4���j�ц�N�*��3�����J3զ�&5%�T�M
۠d�~'�'�.���q��R�w����Jݟz�k��@2Ջ�|5�����dA�Q8�w�ّ�eVn""JV��
9�=\a�W\#�ND�t�g8����y��!ˢS�Q�=�W�jA�|�旅v@`8�]H�BgaD[��[ǵᒨ�z=E?aΘIQ�ԋ����(��(
�j��/v�Vb�si���1A��uv��'բ�X��.՗'.�D��i"�`u�\`1��x�M�����X9�f��z!`S��`>��K2�[�R��� ݈N�t
+&Z��LSy7T�Pc��ӌh�,�F��r�nٹv�z	��DV_�<%�p�j"}`�iF����L{W��7������|�Ё��P��2̳�G0�_a����k@�s�D+��t��P8 �X��Baѩ{!�yF��i�u�t$
�X�"R[B��K�Q���p��>�7
6@��zeufv#��*�=t025�3��c�4�bk�%��G��`K.:j[ ݮ���h�s2y���l-
2�N,�X�dC�����WZ����D[�C,�S��Y�����ҨO�����ou�b�{;����Qe�+2��37q!��l)��� R��	Ι�>�Rp��/&0BVA����e�{4ɬL�<���X1/摲-��6���eN�O:��`�Q���8!�.�h�>�u8QDR�g֘�����`f��[��^cb�@S���)�}wt��'�m���MF����1PEGV����љ��hN�������#ªگ���u�yt�EL��0���I�!���=m!���v��e����A�)sa,5Q��H�\K��T��7��X�ۢwozǽ�܆nϔ�Y�O1�Ԁ~� �J�������
�Ю�l��������f3�q)�7�JV��	C���9�mމ���յJ��s�5��C�.��7�@X����xg�i"���W/�����K�b�L}C��R����������L#�d�����u����}�o�'zxw1Y�.n&�	&�Ic���ҿ5�杕oԅ���#��4�CT9�1ިV~��	UC!
�:Q�Mc���I
c�\#�7fR|�!�Zj1���$]�r�ϜRx,���`s�S/�aE4G.㩼3I��(E�^�4c,:��?����\�Ʉ-4s��Ёχ�g��z�pz(XB��H�7/e�(�HA�A(A�I-YQr�%z�hY�����=�bP=<��/��"��,bU����|��9$jik�#������H�΄�vo��5v�N�:|��K�l4�y#P���͇>����0���?���L+���&�T��і��-�OT��i���J��u�E�S4�^��TV�H��rv�y7���ѓ��$66��a{��W;d��d��Đ g{*��(,�E��F�S�Ww�4,�[�6̊x�<�Z��0܂
���*�t5�mD�ԀUհ����m�V������1
�(�@i%/!gO����=�ԣF`�N=3�ſ`��O�{��=����y�j&+p�@p^�^��k"�n�,p�0���j4X,�L�6�XI[Hϖ譼��r*�����M�5�ȧY�[�8B<+1�q���1����!�0�U�4�j!�[-%�Ͷ��)q�%bkK�r�8�,����n0P�Ƣ�P�c&7�ž�)�(Mfǘωe)#��p*y�K��T��Ҙ��.c)F�b��y�Y\��F�1A�=�Y5x��%Ǐ04�l�,-*�G�,##TMe%"B�W9/�p�T#xwH�F,��h�� �B
,�|ʴ��׸J(
C��M��:q��X �t�&��-�q�2�O��������y0�3Fq�����$���W/!�N��vqد�Q19)]ž���WЃ[�1�3&���4s&�x���	�b�/b����ts�]8]���Ը
r(˜�?�����h%�J'�-�} v��Q%�V�C����]�p����EE�3�d�ܩu��gU��K�bL~��=k�b�,Z�p^���^�*�*�OU94�
�G_� ���G2�]�5������WO-�2g��^�oF��3�%���v[K?u�b�sU�^��T3�M+���,Eu���ªW��B'_�q�3D̝��f���_�َg�-Z����b����5���+a٢�$��$�Q�c$,��H�I�P$��sR�f2�/
���lAЀ!�h�^V#�2�ظ��e�[�y���N��.���M��L�b� ��Xb%=]��}�5�0S~����0��y��|SU,�?����t�a~���0P�=u�r�t��if�&��00!3NR��"�IyȂ�Jm=
ǽܸ*�EL
գ��?�c�X��!��K�`j$t��	h��$R#��#r���54�o��$��K���,�$d)DX�OnQ,+�"�`o6x&|��Ċ�"Sn�!���I��o�h�-�^�Pe��A�j��w�Xl�V=(X�Rb'����wl�I���\����Z�TFr�:�+3*7�㻟���u��9]��ƍ����Eep�L�5�\6�r�X�{��ƭ�~��e�*�NJ{ph�y&� ��N��2WpR���S<o��Cq)q���"�-�L�3��d�+@>9Q��Oun�5XK��z<��8`��ӝG,b8�ũXN��Ղ�l��H�����Y[��,))�P�4��SA��EjO�p�m0T�Ki8C��b�@��7aY@ª5�e��d�	��V�T8)�����l$c���{�I%��2�4T�A��i>��S{�������f�#-D����|Is�"ey `�i��Tf��oα�4�U�wm.g�ơq�`�N�P��ԳL6�!ɃR���+Vc�Vleg���>J�i����/����A�)��w3����5�vb���=����V�?cv�W�3D�=k�[�%�ǯ
 �H�a�y�["xu�w�&��j`�z��d��Sᣯ�eg�f�>�B{��Nb�(��y<̫�L)����s����*;^ő��[��t��N�ӧ�Y��Z"@�L�-��΍�^�y���tݵ����3+��Y���
C�n�M�kѬ��P�Sz�y�Q�W�E��0����]�7�{�6d�75�V7N�$�a��~:;-_5ۺ_���x+�.\��2��ص�X����ʹ}�A��B����&�����H+�pE���-�Ӈt��?R�A��^(��
]3�,��-+J{���Kk"�N���>��Y�*��4?E��Ψ�J;Erœ�Vf�G�w�rl�}�s����Dmk�������ؒ	�,�/Nz2{��̨X��^1 P
vL�}]�](]�+7��07�Z[6�,[��ƙ9`�j8*�5��H�M�J�/����a>�Ag�SB��p;K7V��&xO��
��NT���0ݬ#���qM(?���^~��<.���L�#�cd��!�4�R����e kpeE:�,�7�M��G@L̅�/���Фj�o�9��H4A�|2��6�T�ujؼ涉��5<%mF��vo��*֤����q�R�=�1�s�u?�?���[UD#Ly�2��$���*����fB/�Ě�>v&b�����5���[1.b�fA&'�D��-铼Аlp��GexN�qS�s).Ě,���\�H�S�Ńq��,�,�k�����9�������@�Q&�A3��v}���5qK�f��O����J���?�RO�^�[��}�ޙ�7�IZ���N�j�)�4���M橞+O ݬs�YIrÝQ;�"�@�?��uGQ�'Z�P/a�j���铨%Bp�r!�H9�B�k�Λ��>-;\�gY,�E���F#!��a2!�f�t~j,�d�d�b�Y��&�\0!0�8� m3Fsl�q̢���Q�Pqq�}�"W-N��r�E] RV��;��#&�C��?�fN�V�^Z�~�=�-�c��
$��֔E��Ci���0�U7�&"q�ጊ�J�DAb���j;�cT3<}�⋵j.��B�"c�D��
�E��V%���̀
	e�"k�胰�%fDbkR�$�f�t1d(�&Z�N��
ʬ��k��0�Ό��#J*�>�s��R�Č�T�P�	)['���p۟�O~��;,G)����\H�G3��#z��8kr��Vj���rv�'� ������JW��jZ��d.���s�f.BZѪ�4����W�lm��јFɡ�䛸�z��5�
"�0��:�L1͔��I�’�aAM	v;c�w������<��3,K�H��Z+�
F�v��
 'T�4'M��
�ФA��8�@u��AXHz6��H��m]Ξ��"/P����$����\������zMS歎��BH�(Η��M�5n�0��P��Œ:�Z���̦���qnTO(q�¨�Q�3�b�r��o��Imx�8%�Qq��`�"")˯��w#}�v��y"���>�+>N��X�ɝƘ�4�w�.>P���g?��T�b�����1�j���@��,��g���Z?��<~_�1(�2D�e����_�������wi���^�&��Ye.<��6�{Ox��\R� ��,��١N�#~���n�}[6�@a[�Ą��.�h� �5�0V&>�,c�ey
{��Dd[[|i}��õ�a�y��h��ϝ���@j�L�gk���T���|�ZĘ-;�'Ț�Lv�!�(�.t��`sMmkd�Q�8ڋt@Ϣ��T� ��j5�h�[y���o|z�"<��o�!��F잷���(�LR���M��J�l;�E��y��\��(�ٲ�4�꒑��>�޻k4�z��񅶍x�fAP*q��
�m#͵4N8��9u���J�5��ę�
��me��`	�Nyk�
�(�5j���-�ֲ5��Us(��h�tI#���XJH��Jf�m�ݕ��PA���$�>'S#�$N�D��b#!�C̴�E1�!t��9+;=(I���];Y��L�%��?�f��F�ר���u�uL�VkD�d�5��R�Nا�޶S�X�`�5�C��%y6�6&�?'�R�D�o
��&'հ/�>	���gk(���v��q9K`�������xD��������;�3�㜼�?��k��ie�:�#F%c�*��)3�@��9<��w�JXgc�H�U��d2��K
�a�q�:B��VŇ6R׽�p��>�F:iy�QCR�F�)nb�����p�0'ΌA�x�?�]��\Wm�~p��x�ㄕ�@2�㈻�B����
�e�&��BXn��O��D��8�	�H,-�|�h����Ea�e[�E
�)�OՉS�³�&���S��D�6cp���H�fD
�v�\aل��j-�pYE	�Q���Yy&"нvH4�Ӓ5�j����~Oí#�C'��v�@���G�4���@#��Rj�����/L���'\�����푝.�"�V㈡�Ml3�^de�`�K�71`yK9?�OD�"�吤�{t̄0nP���%;���ņgkanJ]��( ��P�ަ�1�Sz�Yo���ؠĒ��a�ո0�%Br;�R���s6ϝ���*c87�Mh�DΓ����]�=��;��5X>�|���ىB�7a���ͰTe5-��[�z����-e�j���`��2�y+$�����^��Uf��Y�aԖl���0�{V�v�1=��`��O�Z�t6�Ҧ{�}?����ChW�;eOP��a2�01ɫ��L]�oQr�S&�,>^���)e�r��1d�bpTWG	ؘ����v����3�ݔl�ZaF�!NRޅ!�s\��˰R]��� *�އ��)�X�y���lJk����q"
���D�QrgȮ��Ż�_��Q9}8�ӗd�+�V�8DZ1G�?#Ӫ�{��;�$�8���Ƶ6�o��.�ɛ�Lc���+5X~��;ALɆ��\������r��{��$k�;x&1"弡�0|�����S��vzL�'\H�ɵ}�]�Sj0�)M�|��g�צ9�
�X%��m� ���	���WKv��6��b3* #,��>���T�"�R�8����H�/<vZ�5��'���'�m�"-`B�-�M���A�I$.8š�Y�
މ;��(Q�'X�bB.ѣ肦e��~�-���ᓶGh���L��")
_�JY���Ta�Gj6u�uУvF9{�zI��S�ZrgQՀN)���Ρ����F^/}J��͋bI�� ?Zi�������dP�f�X�.Dك"U�9*�} ZR4�B>r'N��1FySa�F�+;՚'uM�!���˜�t�D��f�B��f�Yձ�.��ސ	p�+�6�!m�M�a�<��u*[X<,"M� ��������{2��j���8�$�˜y�Y��Xk�M�h����
�aM�y{�*ui�o�Y'5�[�A�
���u��&�ƽ��x���ta8�wYx']TXv2�Լ7�ζ�A�h7���o5dԈ]Ag1�V$�꽽F<o�ʅ�JT��$K��@���IE��w�Z��8�s�e�6O��sT��9kآ&(,�g�Y��|^Ÿ�m��\�����.�+/�H#�X:H�Lٱ�.�U�����.j^Cjg���!�Z��u�r�G���f]��w���^��b�JՓ�ةܼ���H���į'�������sk�Dj_!
 �YG-�ۍ�cfJ�!�-���u��+�MD���q7|��h�OP5Jf�&�ڐ$��(P��>*+q
�@c?�Jˆ%v&uKμ�'doc��	C����6���*�QsQ�ͳ���_����n�{<Gb+�1̣+	�����������n�|�L���e��膧��,^��4f/xB�d,���NuӥE�D��[G^��؝�O��U)v������36܍���&�����	�ڄ�q6�UW+��1������
�2!'��J�0�G�����@D���~e9�����S�]���o�힣��_��%��pL|L�''JqT�A��[�Y��Z�1Jżh�S��].Bm�I�{5I�	��6�+;)Ȏ�Kh�b���²ctĵI>K�>��u�2.��J$��e��K�ƈ�	��f�l�.}A\.�jO��]�L<y=�9y���ޕ�&���������I�g�^�]$���?>��?g�r���&G���7 .`*�e��ŪG_M��(9P���J�W
�9�&l!*��!�05j\$�s�-���*�98|j��TVܿ9MW�Ld��R�YM2>	.���d���I��xG�C� .��u�fp��+&)]~uJ�C�Fg]gt��~��@�氐t�_�u[F�H#�0�D��Z��嗚8*�i$Q��D���O��]z��q�e??�&�s}$�4��P,���CudC&$�ZB�x;��1_�<����k�{Pot��O{6�P7���{EK*݌�6wMJ�rI�>B$��o��\��zk����~kL�~N�5�hԮ�dk�*]��"�E}?���}ՏˎDp��=G�'�Όjp�G��/��ϥa��xɖU��U����	'��&L�'���iBӏ��w�M�4��y,���K�>]&;�8:�
���%�t�4
P�J�k��a�T��dr"�����,����}ِCtl����"�Κ���{�TuI��.a��uHI�@�]ީ�"<"L���U����򠆝f��3]CA����IF˙N�a����>�"T�wi����]X7�� .���R5��M�I���Re��r~���&�a�o_�;d?J�i~4��'sw*T�ɤd��'��)J2�b���x��-�ˢM2K�-ia9�Ʋ�M�tCG��W-���opt��Ծ��<2	��?Fh�;�9v�G|	
�B�)�%H7�&@9�@�E�@?�g��0�x헭�� �у׻�f
T����\о�B:|�a�8I���t�jc)Y��5�&"�=���P���f)(ǍNo�Se����__b�'Mg�"�Z�0�S(�5��:e/�nhMo�\l�mu9ւ���u&����D�6��*����V�b�Q���;J%A
bB��C0��q{2^Q��فb,
�هջ'�;ٰ��D�I��L��W2�7_�Uh(��,^��t������BR�~z�L�8���׋$)�n��|�9�{��y�� xJ���o���=�<��ц����g�\������e���p��e�?G�ADW
�����)F8�y/a�f��ck�5|[b�K�8F�[e��Q愷���n�ܐ��	�f��<��Q��[���"����]�@k������K�[�:�Gj5���=+ �����Rs8.t�<�����M�%ΓeG�c��-����dx�x�|C�x��f0F��*c�BF�CPq�g�t�-74�7�����(��r�[�!t|J��N��6q0lq"Ѽ&D1����z�U����r�(��I:�/���mBD�%aof�Ǒ$l�IE�k�8XCZ���*�*,�M��6�K�Bd�²����2/�E2�L��ñ&�!�(�H��X�	'Z�)d��0�JW��6�Zc/S1�j��r&B��P��I��G��ngT�a�:���0���,�嗥�����W����
�W�>�Zr(I(��so�Nb���twtut�O����LO=��Uݢ��v�PȐ#��9��Z�Tu#�i�q���Fn�-J��$���0"�C��*JxQ�::v��?4,N�E����gdv�/��Ο7gO~B2I
JVi����+�35÷)�@?���Ch���ePC���0�3�W1��3��p�'�wo��3�v3�QBX8F�TL$mN-�Ћ��|~$�[i\]BQn�o�p���mҫ��7�[�&
AH����G�9����:�q:j[���E~�Lhx�}��^�ś�v�g��޿�58�{@��sZ>�$�����D�v���;�Ē���r�6X��Д*g������w�c�?�[I*�`#.�� �����r��
g+��׾���~��M��Y���s"����lV����ED�$7Q]����d�i�&��F���
���8!�zHe%x?W����IZ,o���KB�w
[��'���/VfԷX0�n}$ά�5�i��r�-�D-5O��wo�А(IS㆖��P�]ځ���Б�>T�=���D�ѝ��x`#z 2��뒜#e�,]:1�6���7�w@����f�AiD/k��^�1:�3]�+�%���PJ��y�DN����}�
	)�1 m8(?#7�g1&�ȫ�<�4�DD6�	qI��L�t���@���(�ldW?^W'~K4��2�K��Bo��3)͒�
�qٝ��uh��	39��m
ᧄ�fsq����'C�a��b�l�Τ�Λg�g�Q^��츄:t`�Fo��� �w�^m#��=�qCLѲ��,G���jma�Ew��k�H�$�U|L�X��`�6lQ���?��^޵�����+�s�fC�nJ��!�#��Yc実��̴$�$VI�v��ڗ:�y>%�F��.U#^"F��pL�m�pk�m���0dhL����%C@L �+�܄�6�E���8��֬������N�bUY��jA�0RS5�bo�|���C�v�Z�ǢD��A½Q5g��ɘ��/�aʷ�%H9o��]H�HZ���3`��Z�H�-ˤ8&-�.@�Z"�����>%$q҇٤n2�z�*�m'�h�f���P�
�;m�$���]�8NUb<��#e1��,4
����Z*Zr<�f��a;ɖa)�&��V��H�@��3;#BFBz����.�����/س{׎y����ɊQYx�=saeF�*��M��Q�Қ���G�|-�Z=[w��io�}8�b����5n����5#�&�d���
!�\����*��,-$�q�V�8g����6�L��B�
V�Y�w�eM�Ҋ��I�>1pH��bqp�'��[�3E�����DMzL'k��	d#Ǫ?��
!�bM佒P�!�U��C4T���*rE~�Zu�͔%:6
�	~R{�j/1LYz�+��R����������~\�F��6�K2�N�ʷ�fCC����jNm���1?\��_ҊvUD@b�D��t����K�%#�,E�=:�ӐQ�����"Gϭ�lD.�J������1��y沋p�Y���K�z*�� &�����QW	5V͹�p'-o��w��)-ڐ7�?�
">�`\�y1=t��i&�M*�w'67�q���\����0��`���_]N��>3G��8��qaAQbKΟ�vb��3�Yk~t��[!�㌽`�{����&x"�P�J'u���R^^���
	�~�~6ۃR�������8�D8�ĺ[3�r�Pɰ����ر8�!i���3")�����V�܋�К�r�pI��~BR�s���T-aܤ�FCa�9�K�4X��XE W��{�br���|�v̀�6�'8c8��Wﱴ%)/u[�̙j��e(�e���#�]���@���@6�#-�e,��;r9E��G�:r��3[w礼���h�naY���Sf_b+��D$���gL[�ʿHC�FZ^�.�����ǐ�tW���#��RX�ŕ�qf�EM��հ	k��3��p�>݂Gf���L�Y���~�
=k��q:�����U��t6�(����$�d�
9�E��
�����JN�˲�:^�6r�1"�c�hPZƫ��_C�ȶ_sC#�3-��V��n�һ�׉�Е@ScD�B���E�8[�����?!ȱ�j�*T���37�@b�̄nXR��^�)�����[\��66�&/�U
I�c�
 Vs R�}�43$�$��DA�(��9�O�!w��&�'��i��(�
kA�uw.^T`2��2��]![��Oc�M8s�e��2�*(}'4�X+��jR$���LAh�b$g.!
#G#w�_��;2� �䬢e��39b"k	�2�6
��[h���%�J
_Y+���s�Q>�!�^h�Vk֖�yL�jԊߛ<��ax,#���6���8��߁%;�6�x���Pۻ��fBV軅�T��Z����V��\HU���q��--u��Uu��S</��w��La�j#GO6S�EHB���{*����|�ze2�xb	�F��Z�v�N�0��ޝ$O�[�ϋ��s������ךO��R�ٸjA^!<��;�E�f؃`
a�b�D�_�SGV(�"³䖙%N�Cg&GQ���`X*Ȃ�3-�UÁ����KX�P3����bt6��¤t�����CGzR�X}����賑	Y�[T�%I8~�-5�9UC0��f�����m�JY�d��&y.�����c�����'�|�����kP���G��eU;o+IV?(N�e�^�ND�J2�\#�~&yn1,Y:h�SU�|b�Y�%�e
�p �I��”%��?���V6���##�>���u�������Չ\�
ձa�������k5	m,�N?θ���ɓ�!���2�SBVՆ����2��r)t:�4���P��#HJ�.MR�Ɔq�	C3��mqg�;V�XY���B�Ϛ�,n]0�c�,SN+<��Jc2�%(|�b>Q��L�\�q�X�$O�@�U���p��P[�!&��z,��7+ns�y��H�=w���u.�>�k�-��$�Z�M�eG�_�e�Ҋy�x��G5�L�x��[�����x�"(�Qz]f\0�Q��J�uqX�G��q�͋UI@8���(�B�g+5c�@d;��HdEv���
�i�|�_����"F�?i�O��dP��-��ÈL��5�1ᱠ]);��)ۚX+@L;;�aE�-��W)2�Z6r6+	^UK�gh�牱�-J�5���X|`-\7b��h�Q.�3O�����##)��CR^Z�b��g FBm�7;	2��a5���]v��)�ؚ���=��f៘�lÄ�{O"��bީ̢Oj/p�&���[�V�?��3�J�C�IA�����G�8c�Nż�8�Wx���*jq�|����N��X�P�m`���:�Qd}WO�&"
f�Hŏ��'k/]=5�쒺���v#�3\�i%&��ڨ�a��,δޯN� k�ՍL����r|������i��p:@�M
RZ�Ȱ���@<�Þ�}+�,u�6��Yf�J�i�����k/B�%|j<�mh���1�Y���L�]Hp��5+<G��%�=Z�XQp0`n�\�X�M5�4�WZ��Q�ն�[�
p]h�9T�}�_����2���U-qM	���
bF�@����2������� ��yVCh�U��ο��4���|D�Ln�<�p5g��3���8`�jv�a����մ�i��,@X��aS��1�J�Ȭ�$=ή*Xf�J�oP(�G)�3��^%S50���.޴o�@9ڇDo0w::QzC"
�DHb}9Ȓ�==�뗃��N�y��=Tj��BD��E��qw�އ��v_�4]�X�h,��=]�d-_��(�\�3�l�6�{c9d/:˜!͸�EsRG�a"��k�J<m�ԡ��\���Za���ߝ�Q�0LU;ɩ�P��)��%C��.`�W��,$.@��p��B����c��][c�P�b��'�d��M�U=[2lb��6?Sl�@�G�h뵒������al������$o'O�����եp�I��<��uH3�I�.�s��k
��p������VS��&��Ӷ�j�V�m����܎��ST�0-�en�u��a
��FS��6Ur�� ��s���3�l�ڱ{uoX��ND5SQӲ�k�t��j
k�i�rE.㝶�!��;����r�u��b�N��*E59ާn��"��:s�c��gMˆ�>s�X����cJG���쾛��Oa�$�6��a�:�~��g���%d@��Cl4����� !#(^����,�Y1��JR�W��dd�:�@�~50e�?�G�T�tB���S��KNs�/��C���}_ɌX�?�(�=ņ6�����Jd�s���kd�R�D�V.�H���T��I�O��s-�7oG����Ṙ}o5���T��3@�P,����1N�,�̎A����4��o�L�΃)@L�y0�Y'j����(��Fݖi
vʨ�4a��RP^:ag]r�e��w����Qt�A��#W;�Jl��l���Q_]��iC�\](�E�f�O�
�J�L�qjeg0/
SbDr�1x>�j��6��t��,���$�]Ĵ��L��[9��K�%������`�#+s���}[=�EL��U^�PC�@y�-�;?ld���1��zj�q	��4�z���q�	j��B EDPv \B`Op����6Ì �|�ư�j��G|����gF'�.�(H��j�pVÂ��"�Ш��LI�Hsn�����:�"���:�c�CB���lf�~�-ݰ����h�b�o�K�'a�0t��SU����U͘�����z U-�`�,˴�`Ƕ6_�̫���V)C��%�w��f1(I��ԣs5��[���'��#,BoP"�{B�f��@�#1�p6a�(>�U�L�FI�2p��X�G�^{g�
FA�V�p,��G�U��>6#[�:!z@Т�F.��t@!LU�D���/�#;i�Cړ3���MnөR�Mm�ԡ�* A��-��efqVY�<A���iޫI���J��TR�[4}^F����/�\�س4KU��_�x!��i�LJ�`D{em,��X�W���G0��Z��9��G�E��R�9�؄a���-C�uޏ�O�
�>=t����"���{�y�b�|2�13�cJ�"�(�!Z�n�
��K�wl�1�݊�����b��IS����^f�
d_��	k���������bƏ0�ʎ�v�xq��ȥ�0���M��e��/�i�3C>�1���L7���3�!;V���4sÉIR<�z�
� ������曈��d
AJ�)#``(3�ˑ���=y��z��؂!Y@J�Q
@��#w���t�f��!O�(�1+	�(BT�Ƒ��D��pY�T�T��4�P`�B�Do�UnW�.N�̪ۻ{G���#��Q��3� U�ZdH1��B]��q�Ӣ֪�b��M�sӇy$�A4HY~a�zO�����5X7|�Eg�0��0V	^|"�l�5�'d�rPM��J���|��.�p� �#٫	�	���JF����XZ�6=���iK�Q�(�����љt�(q�[�M����l�=��ܐ�J�)�3t�w���p�R�R���&L��A�A���W�Q�m6�i���	%&9�/IlF&GX�QRW�9�
o534rSY�7�@�%��A=���oi5_[m�C�dYP�+�'�,7ey�%"/IA�(Dj6,���u۴qa%Tn�����;��xi�J
0iƧr;��%��	%K'Z�8M-�[(���$m���~�D��I���`I��� 9�AhڅWy��z1�͊��,-Qq��u
[�R��L�;����@���7���D�US2C\M�:0�ta#�
�7+��=�M�_��L����c쓪��E5��ܸ��~R�U�'L-O�ʲ�'��1���%\�x��㑘]��\Dr���#�)\,��9��^N������Œ�$��O�r8鉲��l��Ei��������GʖL`��<&�Sٮ@;�y.G6�!:3^ʄe�� ;��e�Z(���H��ɍT-{ëoW&+JT��8}+�`#�m �z=l.`����Z���BO@$k��UE�rnUC�(�=d�WJV?Cjr0[;�5�좿z��j�D7	rx�ܢR�Z�:��h���60d��9�Lc���b���(.11��8�"��!:Yr�הHY|Y�
J���o B�dX��KC���yG��
�`S2+D��-�MU���!<�祜i��8�X\�
��I�I��l£ȝ�[�
;]���p�Rp�������?��<���e��u�mAßg��2�	�pvvW��\ة�V0���\��l}@����ę�?���ޔ#'���0,�
�΄O�^I������7�Y[�0���;b�*�����i(k�*<U�՘Ntc���CHO!��˴2b�B�Y����.�D�z�X���
�#!g�
_�kkewN�X>k�p�"&*���}�@w��e#�;^|1&��„���IL����A'9��>ҳ�m�ĴM`0��FlL�6�j��Ϣ2^�)E�OY	Έq�U�A��3ڂ���K���M�'����zzZJ��4@I��<z(ȉ%1^���LpT1M	ϱ�$�d�B���������
�`�!�,gGV.���I�	
�Ϡi���:lw,g;q�XŴ�Hd�ãV8���D#p`�wX�I��vUֺ�#9E=�r�
%
Y|W�ItZ+�j���a��4DB�#`p</��|(�)T���IPJ�s�ID�4�)�K��P'�mz���q|$�|��s�_�lB��X���F��_YY�
X�^�T���
�fi��eh{`���J��􁴹�Y�,����0v0�&�8��B�u��p5#�?(�TD�8;�I*�{�QOs�a0��H�aQH}���7xk<"{�$,DXH��4�����ڊȆ�{����e�{&�5��E`�����CR'�H��_�r)L��,���V��7�ؼ�]�ao"F}H���Ҿ�DL��6-�h�o�p�k|-�'W�����55��3��hj,q��7��)��
�Y����z�5X.��`��ȥ�xU�\-E�[x:���@n�"���`X�[?�b_����*%��v���lo�
ˑ���\F�iCQ<�7Ҽ��G����zAE�}�z�Xsv��V�Nד��lb�kH֡Eة`�0����c`Ra��p<|�0?Q#��Cު'�$mBK$f��>k&��w5s@&*U@d�����7瑽^3T����+��U�E��KRQ�|4'�Mr�
���'g[7٦��Ȟ����*��"�`:�&�3,�"�O�C64;B�![��Ll�W���m&a.����e����\fՊ�!$a�q��n
H��g�l���(پE?�֙��7V��Q�JEm�L��Q.G3��*�7��ki䁞���8��nk�v턪ՠ�HlvX�
���,<��\�I-eR
�H�q+;GZB�����eU���Q���k��m=W�S����O>a�R�V4��%�;�:)�(y�V��~����V8�h��칲�"�J��M
��4��
K&GLK6^G�t�'6������=���&Ց��.�ˁ�:���
��U/�r3tE��W�8u�W����=�f�0����09E��1,[��Z�p�l<F�n&ͳ�ߋ�!�iEhۖ�łO��{�z��WOS=�׃
�Q��kv/BPg�	 �,
����n/������a5m�)H��VP�@�G�Z`��LNX��1u�=���F9�?�֢'���B�E�]�O
��gR
-6e�W��N"�	w������(�i%�"!kg�G�F2��z��)����B���\Ƭ;���>�cQͨ�zJAcG�wf��gf��ȴו�-���g��:�Ҡ�t�7�~u;�����~#N�鉃�

T�d�J�A��:�=SIֲj�����Ɏq�7��NE���ګdIUA��t�l�!
m
�g��Z4���3��	��H�9�*9n'���j!�D�5��hZV&���J�֢� p���	B8�M23`<�%G���OT�4�_���
�X��h�X�)c�̂>�x�L]
DU���e؆՘Q�Ow�BǶ��M�d�pf����u�40����A�&��'sj-'��`�F��O$wAo=����%e��S\�)L_��
"�Q��	m�"�P,�5KB��F�
f]M0�tՄ��a 
�RRB�[2���hVM٠W1AR��?9,6W�-gG��*a��Fc�+Y*���@Cm6-'�}�3g�Wc�N��s��N<3l#刺�)[j���W�+�\�l��ג���eV�Q쥄V߳�MhD���Գ�k� و��έV�DF3%L��(E;j5<��5�"S}����g�w�����g�H��e��(�}._AU�GX���&|�XYh-<Y�-�[1,4�[?��I��|��W!x���bO���x.V��ko��i�ݺ�_�@MH�j������#��t$�:�>8�@�T�1X�#OY„�3��h��d�,��H5tt��L4�gJN;	<�n�;M�6Hְ�U��z��-m�*&�P����FT�$N(�`�����`ٟ�[�D�5_:dH�j�,����+�y�o��L{W�^2*Du�`|�ڼ����qaxB9�&�Y�)Q��|�	�}�r�1XH9�����撺4�.�lU� 7��5&��ܲ�Џ�����&�Z��NSO02�%�^��R��/�l�/-ek9"��դ��P�-^��L��k�����=�J-����\v��.CW�o��A	�]&Q��\J�u�J�VYN�$xH�� ~�h�$P�������p2m����F{�a�����нL��`4H��.���b);h“����h0�a��"̙$�/��ҙ��u�6O���<��_�����b�%ؒ���7E���y&��T>���G��j2+)��H�]�� ��2���(��?x$�ncV�!C��k�WQO�(���ؗ������p�]V\<���<١N���jCqR�����x?��c�/#����ҾPJ�M�o\��1	d�}!0^�L�fq��"��B&�7��$��`�}	���f϶�(X޳��1�����4s�+����4k��̕��C�#�&�NE��.�ăj��3L7G�=�]����H�����bI�<$�-���U^M��=�m�Td%g�?��S�B_�{*�
a�F��:����ʏYFO�[��Z\\Z�v?��%l��4�k0z'	[�Aw�R��|��B���?�'Zqm�{���
�˅�e�ق�z�����UE���De[�b��b|4\�X�>=��������*A�Lk���'�kr/6��g�Cn~Z G��gg��=�8�35bY���s�͌���*��9����a��\ߧ�<k�L�r2Y	\�>�0�Uh�*{���2�I���,�W��(f���+��0L��I�g��3׈�DH��@���fs���g	dsFջk�a��_�3�3/d���p1Ց��y�)�Q���[9)>hS�X�h�<Ck�\�ڰ��M��OP39�4Jc�):1��8_%3�*˪�J:,���vxN�N���%x��-�#�bg:��"@r4C|xtK|ۢ)mi��7�3V�֨lSG�js�
{7,KB�Y�i�j�c{��թ2y�ՙ����PG�7�RM���������ֵlN9�[����� 
��z���v����	'ق��CH]80�������@�}Uö���][y�DB�5��wc�b]�|ywW׻�M�X+�e����(��5Ɫ�P�ށt}�I���i�A��h�.�R��jUR���^�_����L�X�nFm��X�[�l��,��T6����E���P�z7���$d�����D�q% �M��3ss�K�l��''���g�\1�M�;y����=B�#�43G�YR�C\7z�;�s�(7(E.�C��*@
3��b�y��}�nP�E	��F=p�O����̮�X"$������;��9\S�m��֘���1���T���Y�]�`D�
HO�X����<K� �ɇ��&�4�
�SN
*e�G��>�2
}b8��F���#����j�c!���9}	CR]L�K�Q��Z�UL(uX`$M=���0EÔ����$AD-�"�2#�{4l��t ��Ռ�
�B� NDxA�o���j���K���\�}L%`g�X6����e(eW�C�����\,�P�~�+�8�3Ĉ��D�]��|��""jxI��ż--��օA	�t��X�<L"��=�Y�ћ
4ߋu�3F�j�݄��T,�hG�!^co	3�x?����� ٧��\S���$���*��]X�)�A���$/y�ط�kU"��	؞W�%�Z�9�X�/u*l���>1�hK�cuG��%�"�1RJ�~YL���ӄEh�/��7���-.Q��ly�&�J,��L��F[o����0L�B�Hz�e,������l�vK*b�Xw�W�p���pN����6*!`
�Еr`BhRrk���P�ѢB�g��%��������@�g � p��Q01�dUkunK�H�*`H���sϟ�	��	���s	ٯ.ѼX<T�D�b�jX
���QK Y��H	%&B�2���8w�L{&n&����ҕU��t˓�(/����)���jr<:�2Ȓ�N��Ǩ��.�B'YbF5M�My�E�i�7��H6V���ER*s�//Z�&�)G�a��R2�	����>��"�FR�����39�h�@и�$�`��@�!����r�ѢI���͵����u�8"X~�D-�kX����6Bsٳ1���.����<�}�E�a�P�Z�J'���U�l(�D��I�Vߦ�^���%'�p�I.;���x�e�t-�m7�.yGcԡF	���:�5�*i����&��`�;ꂗ]��j�(�0Nv�a�1��iN�dm�Wւ�n��Um�o�����_er�����Y��V>ƿ��O� N�y�y��p6-�ɉ�įVR�5�G��|���F����y���Yx`4d&|QYt��50?�S��4	H̩�@�w�㪴��l�Y�9�>�4���Յ�)w�TG���|�X�s�S�>�E2�ub��Hv3B��L�a�D�Yg
�6�\
�ǸR#g"B���B�
�b0�q�t�%���5��y\�
~荪Z6iDkk3'�G[t��������r��p b�&;�XOb$�Y�$!��q�NS���ߵf�>5�tMN�n(ah�	a"1�#q5|~�Dw��U��.C	#<3O��i�W;�)!7�^�j}Nj�v$ƀb��f��9����/�����Ml�8����Y�1�*l��w��N�t�zrA��$��L�3`
���D9��^S���Λ����2s`+ʋԬ�3��#q��X���;��s)0q--�8u?r�`�<X��)e�?X�bψ�H֓.6E-ֆݝ@"���:-��H(�XvY��P
�<���c� 91�T�A��&�w��Oɚ�N�)��#I����3�+t>T�p45WעYb���6���+ȹ���b�n���/6��{"�G��z\S��j�k�
":������B�B��0��n��cv"0]�O��-�S��C��n*�Q)HؕZO%��?�#���X��r�af�p���a��i�P��~^O�.bF�&E��mYL�"��9ƒrM�]d�f^��P��h�&�=yb`�4j����lV0���r�I�'�՗��_�t�����E"ސx�I� ���4+o�9A�h�P�5y�`���>I]R�I��$������$�ph�25������@V��Mj�����3�j�V�=�h���M*�PwtΫ\�JA���E+�{p^'��"<*�‚ck�]�e�����@uxWJC7�Ii�0����I�<d��PO��)�e��2�Z�ha&e�l�>���!L���X#`����?�m�T���W�{�GK��h �U��6��M�mfx	G�"!�q��F�o�#v�q�a5�4L�a��L��~D�1��ơ#a���U���[T����tX;�E��>a���{3�4�, �.kkxG�~y�N�d�p}18����Za��F����Ӯ(D��|�3� �L;������ct۾�4�$Il	�k���u��߈ZF�L�vBc?�d�1�w&�mB]7؝ ��0<���������^�+���!8 �l��9'-@X�P˔�2u��9ios3��7�Mвb�
3����ѺNb�­�EK���N��9��1f�3۩*G>�_�V�Q��Wjz�5MoB�Ώ�\�n`ʑ0��Xm
V�|�4�$�F��g��0�
�=��fw�xi'�f5sw_sωx�u��X'B�����
����b0m��&�m��ڤ���!a\�]SƔ�1���h�zՊv��$m�
����m�8��>m(�)�[�eg�`#
1œ�������h�8&��g�w��uw,j�1�+��Y͟
�%R�$iG;�mJ�R"ʨ^SGM�;��	I"ƃNt����S�V'��U���	Q�%+�LwS�<�,�&<m���*D�P��j)Cӄ�cڊ�
��!�5���J%xL���;����\���"��deG��1Qg���3ik���@=�Q
��q{񕊅b4���XJ4^�$���o
��	
� &ܖ����&T�ro^M� �H
V�N���a�̝N�e,)�Ln�B��L
�2�M"����}��LnjT

��(�il�Wlԡ���r��R�+K���i�\�wnn�8wd�D�3�B�2<�n8�^H�#�̬G���H���taG@�!<�8�+�ì2����X�k��Vd
��6N�O�s�1��%�??˿�7#����N�0ȴ.�蚏�i��㛅X�tk�ьtH�{_M�����0U�#��W��'�SV��pg+i��ҍ��o�1�X�n�-z��O��h5y�I3�H%�'[�q�;6�(G�R|��|��
�9���(�"b�?Xm轇�+���s��g<!FO5�㫟{���%��sJ#|�x[E���J��f'�`CƤ-����}��Z�l�����L�`��%h��yjڵݬ���D|����£rp+�sM�yӊ�[_�Fs1���Lw2���\�sYl�(g�si�jXǟ��*��@���O��S��N�/�[�1�V�C��C�C�6	l 6y~w]V��ُ�	��l�A�;Z"n5}4���d<T���jw>H7�(�q� �>�|�u=>`G�o��[;[g�.ȴ�kk�7�}Af~f>��8FO�Ɍʑ��s�TZy�U�qn7��O�9EϤV�:p���-���M�.J��$�"�=Ӗ��wFa[���F"���RG��&�%L��w6�O�\����O��b����pZ�bM�aRɏy��!��-l�l�*cUS����!�	4��>k�%�Hr�W���z�!� ��8�L'�����>�B�����'2	�L�QED4i�������R/�0X�j�K�4������
�Xw���)�]�l	"ZW�$��J���6,�
�<l=���]Ä$$y�N{	qC�6�-IU$�������]u��A�6�j�
�:qK�\{��4�2$�*w�b�`d��F:��A걬�A�&�~��-��?9}T�[�h@��P�d�`�K*ئ�&�G�+�ٰ���x�Y����$([��A�a����c�"if)#��¶�HO5�P_:HMby�G�;3_�Sm`nEJE1���MJ��Zà�#�y��&@��k�h���v�8iM���J�F��$��N��	�f�Yěf�1�,=��%�V���81�93��R��G�=a`�{�&@��[gr8#���o6���Jc��G�\+���\
����"��y����]Q��FRA�V	$,��Ka�Ė���0�)vk;�_�`5_���I�_�$��x�<8�����j�W�[m6�#kk΅�?H��JΤ1͎���?&���ķ�O�dVg�iOl9o>v�s\��3�IA�� �) ��e�rP�-� �N��)Y��Ƈ%��Յ:����A88Ne�R�6/�AM�|��:��,EKO����M�u��ie�M�˫]����`'�*�>!�H��$cM����y+a՞�/��'��(tT.���;��X~��x.�X.�g���=�����٩�}��o�9_DD`� N��&�n�͒b�.v�A�z��\E<��vY]�pl�Ӆ�>1�`�j�ߐ���ON)���<�jH+*��W"��f�pY#C�1����a��9�Ŗ8leb����Vnz���'�4{�l2�lC���śaf�-�@̦�al�#'���xv�@��]�Gk��t�e���ɮ(�ar�%;���ŏ��b�t�za-?Y¢�����ګӠp�S����hQJ l��h
�ͫ&N�NJ,�!�F�^f/����O�:��8g��[����@Q�c���]�=��5/���=w6t��v0y"�h%e�3������?��`�v�z�t�ʁ'J#���!�[��C�6"�r} TZ,�G��KZ�a�i}6����M�@���q����x�1�C�1'�\wBV��@�ܬ��8$��q�~��V�J�:Y�+�
��N��ۖ�+�C^�j/l]��M	�Q�s"{���Œ��HM�}�է�Lj�D��\v��;����Ln>�&�ktG�&�[�Yu�&^,���L �f+!z�z8'�e4�e��FJ(	H�ը���h4���5>n2���X"D��x��x��c�$#����&�T�Q�\�YW���/����j���j�HM4J����"X�c_�<e��q�N���T�Q�#�z.��~OL��Z��
ǵ�����r��i�b���z�V�o��3i��^�7A,�D��/o�捍��G�G\��FIY�O��m~��F�ן�w���L�"�6����s���b�5M�4��έs��'��A�VjQ�m�
��$�n\:�ak�n�g��}��hܐل���&sV�
�څ��8��5Â
�?M3���iա��#;1�ǞAB�iGDE��e�7a�9������3Y��e���br���������m���'��U~Ub��@�,m:A�*%�K�T2�U��i٭��~�-\�I�#�djl�e�&T%��-@�:�%ih� ,c?���O�F��ު��̓OYk�Dy���J�Z�XHb�_OXS�vm�[ri��t���N
�Ւ��kn$��\��QOz^K�yw���������1��L�giz��>��P�9��"��p ZRL�?�RCG�S�D���1����T"ٔk'=�
xs�D����/�\b���Yۑ9�X�����5�;��V.��m�+>���/�5��7Y7�U"ǔB7ӥi�l��<�p���3Y�]�-�:��t(�K,������`��9�Ǚ����8��M^�{�w%&��J��r��]W�UZ�"���2Y�};���){dU��h�Ţ��-i�9Q��v4*�ؓ��ȁ1��JSx9c57].a��ܦhJ+�vΗ��|kh9wTJ�Ƅ�ſN

��,]
2<v�H����S����<��h�j2h�Wk�c�̚�6�jkUN)]*4Dő@�MX�Y�:��7��Z��eP���z�2����T�V#�G���#?��=����6�A*�^5*5�/�a��z�ɠ		_�%�=(-}��9A�w�����pN�N�dYKh<�[�6�<��1�q^o�vU=s�^�S�Y�2C��u�\��F[HߵކM��6!c��ʰd�D�Z�\��sp�l��b����.�Hrbc|l%��&��&c~./P��<?��_�E+�f�161Է�oI�Fğ����'�
�
}a-���dF�cQ�L�k�
�k�F��{q��)��z�)Lȹ��Y���8qIP�|h��X�B�{޲�,��(/�ޤ��Q�r��5��@�`��#W�D|�ic��6Sl��Y�h3|���ۧ�r�#�Ei����&�h!,��F�)sٹ6r���m�]���1&��G^���]��a8=��X��P��\!0[���'��%Vs�:e�Jk��f�a1�74�?��c�N+G]$C��<J�(��A]պ
�49����a%�R�?�g�/�7{��i�`�%�o4ZX'��ϓ��Ig���y�&�C�
���('r��+e9�аL��\�/�*3��L�Y��D�"'��r����te'I��&}s�B'�O�%ф�����֣��V:�q�n�8R��uy	Q�B��	����8�.r\�l��f�#+�a�� 	x)�M�I�l�p������äv�V[p�]b�O�i�gE�鮠rיgN��i(��� ϤֈP��_�vi�8Xz]�b$̻8���)�+�ǯ��U�#�l��J�\���&�L"�M��֔�6u�^C�v�ЕD�x<��d#,���,�uv3�p�Lp�&��9���#��E��&�Y�Lg�Mà�C�'q�hWY�FI9/���餈� 5p���5F�!bՑ �'�`l�ޜ��{A�ef�xL�M�{Jf��T�O+�C0vē��-��Pl�=WaR �rf�|�h���QxE��c�S�Y�WE=��6�;�Œ�>�ԋ6˽��l�]&&�L�I�Zdv�ۨP3 xU�KV)�GM�X ���� �k�8n��I!n�3���0V/1N?8�j�s������/�e-��ztN���/P�j�
k�sS^#�S*=�wV)�~Ҹ�:.��̯4����G��6ʼnl�q�%��
%�K�+����N/H�$��Ն4؎��i���I�>��RB|�~��;��]*�ۄ���53[���:+�5f"�m����H�6�D`��@Xz�^�8�5H�^J���;��E�5�_.�X׬p�����u������8�j:�D0���}�
1�kj�8��֒�6�p�B5ɞd����l5��jg�ӡ�W���_>��U�<�VtJ��
��֖H׬��@�j)�j��TT�X�z�3�Pؓi#��������";�C�3�U�^��Ց��b���N����ܿ˶�&���d�h�|��|�qN
"�zJ��b��/<S��c��9٩5�����K$B�D?>�`(���,P�%,GV2�E�I6���*ȇ	�.��7@Փi�F=b%�j�,&�U�m��4VC�@+gF��Ņ�xOj@dN�)BjV�X�d�߽YNoG����� ���9jM^���!F�_3L��vD\�9^l�Hb�f�-h�}!Q�p��Gr���x
M2c�.p����a"H3&Rk�yv�eY���+��1A�9]IRŖ�(��@m�k/5?�
���K)I���G�[B��H>�����՜�Kh��`��.�/�&�͏!�y!p�c���t���zRO$�Rh�|}�R�0�7>���J�p�%�hTӔ00c�|� QĽ���ҧ�2������tiN�:6,6�
Wya����d��� nL˸ 
��~D��zl5���h�ʓb�z��Ѝ��.�j���q�'Km��'Rh����$�$�#R�5�����I6����"�U(�C%�69V�h�?�
��bUꩄ��ZZcD��(�c6Y��%�3p�07�rĠIfmQe 1�|��^r�X1�����"zڸ3�|���!犗!����4q�/�A�����8@�ޱ�18���52�F���
�V���;�2qpc�% 6�Ldu/��S"�1�D��e�5�p%~��]��t�^pO�o2��OҮnAXn�-������$��_3�y2�\�睑�7	'�2R9����
�	髧�u-ޤF.h�s�"��*=�X�,B�'�'��b	�76k&������T��eUJ,!$���1"/A�nRT��db25��8e�d�!�#ۡ�`�8���7AbA��R�����tW��(���i����sI�9ëZN>�evA⛐N�Kۅ"��c���3ufo�1��d�R8�� jO"=D[b�_4Z2�E>^3D���|Ÿ+W̧��?!fd{��7�L4dv*/�R|YO���HAX z���3h#�{Y�M)%��M`��wk���[��c�=EE��O.�y�s�������?Ydw%������G'�������8s�ģT՞5�b���1ٷ��>��ɼ,*����Z��LF�42�Z�Z�5�ZNy��3EM0C��z;v��&Ԋ<��‡%瑩�s�g;[�fv-l]�1�+ۺ�u�^2Pf�eX	K�1xd1tEڽ��Xj�$�N�nO���#��V��&t�)E��n�l&�O������Z�RŹ�y���q>�K��ػ���9��$)��)�$
��$ݞ��u.�@�&��4�b��9v�M�ͺn²���I'.-�Y�l]\FL���7�{����,�)�L��R�̏8 ���<�9WI�|���Yi�)ŵ6�-�J
��؛���7�C{#f�X����0��)��ZNc����/M���O�?��m"��a���<(��5"lq��WVv {���$A��
������"�^q���UͼR�mC�n�x�0ObtH g�-N�=�E��e��6U��E���ո�Rb!-O�B��$2���X�E�J}0`L�qK�I>�Yj�Ay��)&Ța��a�A�z�,�7���F�ivS�!�d&N�݉��髺�̭��[�|�}.n:�&0��谹�fweE�j2z��D(~�qx�$3�OU����GM���1�r�R]H0k��"@�^	al
�A�ŽQu�!
s��A	R�-,G<Ot�����K�
[���Eb���$���x���h�D�P��>��Yb�9�4N�E�JL�9�~(K"5���l�s6�ƕH<��P�I�c�d8��1O-KvgN�¯�'���b#���Z��@�Xr&LE&-�U+��Mʔ �ԥ�8�B��ў3��}��^S�kz_�*�e�,�nwvJY��z���J�ʚ�\,�O�H\�A�0��R��’q��)�e�356�\-pi��"sax�xl�.Z��	×~��M�bIOs��RI]��+�L�y�e}8Ԝ�
*Ƭ��t%��V�eBQf�|�;�Z: l��'��8ڀ(:Sm\ԯ�aR�EXJ)ݚ��丹K&��#W�@SU�#+*E�����R�}k�K��&�V��Y4"���@S>��j�@�*.
�l���W�g �QjU�%s[��.����� ,�J��8(
ZN��6�=�aOk#+�eV�¤8�Q�D���C��R X�jko�ʣ�M<'> �v�wd�:N65ێ�wbiٸ��UY��R�iD�q2T3!,�d:-K�c#��	GU&�ʗHN��M��~�B�ڝ��\Tu#�@;��m#G*ྍw���*�MXI��P�G�������?���Ε��aUD��	G���l�:�X�}wM�,��2��]�kqTJ��󩇲�:��T��Io%��O)����7A|�Yg,��磣�}rԋ���W�8-�o��j�����~l�U�&�p�ai�|��$Y.�7�/#W���7C�5yO���\C�4i��@�x]�eO��-5&�Ԯ��I��7&c0���	9-�� ߘCu�֡�ZX�l��w�����X��f�
t.��h��Sݎj�dhP��H�f�j/J���dU^<�j\_�9���a*4��Y�a�?&�M�]��B�dɛ�Tz3�xYz�+_g��e�L��PL�P=�ȧiQ:�\ *b���4B�b5�Hdp}1Piy�a䦳�Q&&@F5cU泌��������AԤ�J*�R�a�}6�AΉTC�$��X���[FA�
T��9^D�#��RM�J��R����!ЙA�VbZlڸ*H�F�"�-G~T�,�٬J�H�TOilc�JP��[���S4�D��59D��:8}��H��b!��waQ�;��LX����9	ǁT@�YA�����~?�Zb���8�/\С��M(Ѿc�������s�Q�]�$n�IF-��_���,@�Kՙ����(yO��'��E���o�2>C�zy�Q��%3���'�EA&Eu�e���Uf"�j���r��7w��-^�K|��
����T	��AV���j�u�F\B
P:0��N%/iފ/�և1�F��xpz8B�!�Z�I��<l��M�9x9�4H
;�p�锏��,dž��|�.��d?k�@���gk}hd�Q��1i�B�rc�\���V�I��dD8`���fZeP��M���U����Y��D2Uh��%F��V��%�٬f)��T���Kr�4-@ �'+0�b'a9��Mu��`��ä��*D����_�yf��;N
vn�w=�`�KJ�{
lh���
H�U��K?$�*�ҙ%R�e��5V�ΚT,�#�%
�@�2�
���hI���_<�R,�ɯ�Ǎ�Q��JP����v�<�v�����V?��&�
,�6I�f����j�l�5�g��f�K��^|*��*�6i47��|jI?N��a�yZ*fSG��LX�5?�����
��ȁfKb(�A�Q)��ȟ-������}t�̄�5?f���&�fK�ayb|m��$h����jWl�6�O�x|ӊs�A�y��L2<o�B�ej���3rA����ku��r�_
�,b�8��~L��h<Kd����$l0�Z
�b}[<�C	�[36���x*yu)�]/�2�O�46Ԅ��JfQuYЫ��mm^F.�L����U�v.~�dʼn�f�/�n�
�qW��f�� �X,�ň^`�6�O�ɖ_\6�2ԋQC���<gb̥�ذ�Y���J�ǘ�Z�\������8!~��iY�Tֈ�H�eH�H!L�]u}t��Y��ѷ&���}�:��O�1c�
���?�
p<�j��{~/���	�g
�8�X�J�]�"y�[�j�j��`��eO%� �I��h ���
��c4�2����Q{<���|@��V5d�^�p^DFe"�(�8�2&A�	��-�<����o��P�z3<m�DF����ɍ&|����xa���m�Ք �%��Is�������l�{���k�G%��&'��V�d*��#����h��&�t��Η�q5���44�����H��.�,���'%B�}f�LDV����cMH�9�J�a���#s�k��P�^�^�*
ǧ��;�
�a"
�t�����dM��K�O!���B��g��c_��BH6W���gQɁ��e_4�rIJ5(�[��)�àF��x�/�`}y�Bu�2F�.ܸ�U͑��b1�Čpp��"��7�} M��!
Kɕ��J�f%=��lL�\��Œ�������ħIo�Ճ�dB!����eR#�ô�*�>�''l2��/�S�����Җ^���l�ˌ�f��i����#�;�{k0ĥR΅�OO��n�}�@.�Y�ّY�a��rB���G�2�)�[�<�܂M��Mf���G5�i+��`N�]�\M�q~�*gfYI���B1�E��E�0�"	�M*k~gR�"�1��	\ni(��ե%+mN�L�M\
p�df	&v��gz0	;xVsh7@�.�X�yp�9]m�;��'���z*Fz�uƢ���bw���S�gU���a�H4@�ڬ6#-���Jh�W8�m$�r�LB�.��G p,�w�b6�|a�����.����B%ٖɜE���Ꭾֹ9������W`S�D�Be)c�% F�����d�Zn�`{�.�+ v�j$ؚ�#Q��O�:Z".�i���>��D�?��4��t"�ܥI]wɴ�֥��\���)R���&9�.lI
���$^�_��L18njG솞H��&M�Z	K�ĭc�	��p�h�����r���n�L���ćȗ”�(�/r���=�&bLl⌓t�-�L0���%�`���7�� n��mA���z�;�w���ŒO14�ow o�a��@�V�^��I�ͳ��
2���3=&�#�&H/����ĭ�?26W�Ah��E�=��@�J��'��8ԒĴ̗X�?�%%Xt�;��ڌ>^֔�B��O�o���}�\Ѹ���dSa��m��TߕT=�GM�[S��V��6�lo�.ړ���Z1�A	 7ԁ	����xZ6��$Y8�z��9��!�}���s�Ŕ��?����ic�����'dJĎLc0��ƥ��P�Z҃����a�Դ��z	��$�ѥ���D��lk2�^�}ڙ�~�5���JS�
F#�Iݦ'+���id3�br5˯��^�ۉ�`4��r;���?�¡��rp��!0�Q$�ǯ+i�Ġ)�&�0��!.�s��n��W���.���1�np������Y5OsI(�����!8̑\V���6q�*MVX�ޓ�����KwQ����o�Q��K�X��ˢ�*��
[��:Pi_�p}j��ra���٘s��Gcu���&o��K� @BI���N�H^!�Z<�j/o�J���7��&*��fj�.�D��0BF0t"�)y�� �ܵ!
����mUyyՌ��TׯO{3�1K�c��������ɫA[��L�Q�t�8�j�*��*,�bFȶJFDP�N+Xfj*21
l�*=��B�a������p؊`�8	]�ӷ"
z�N��N'É!_�( G���g�@�@�R�5�٨�m��[�Q��8�1��$�)G�_�_�U�iS�

����ut�������T�(O�ud�:D����ST����_�F�Й�ȥ�B�2wU�����P��L����c������>/U�9�3�-&S�)e���	����R�e��\��xfㄜ�3��P�Tő�� \-��%�N����6�%�,�Z���PKk��Zco��F���litespeed-cache-es_MX.l10n.phpUT	�w�h�w�hux����ͽ˒Yr%�����L@&�(ɖ�l�J"@&�xD!"3Yl�P,�-",an�ef�窿cdf�˒�\�Ԯf1"�?�/=GU���<Yd��g*nv_v�^}=�w��\o����}[���>>��ڪ/Ǯ����ٗM7���0<���/���gc_�CS�u�>髛z��ʱ�����/��WS���~�����W�����?�ަ�e����m����?����������^=��zt�WN��U�œ�U=Vg��Z'�򺒿���ES�dd�0}�T�P=�����ږW_5������eF�'�?v"��E�4E�o��VZ�t�ƺKih�+��U���e_�ݪ�F���������Ⳬ��ZY�U9���?�e[��[o��g����J'o|�I�7e�pZ����M�c	�v�	=o���^�Ү�u-muŪ6][��Mٗ�miX';3�a�\�#�ۦ�-�t��B@VA����5�{XH�Ji�TZ�Vh�h�z]�Gyx��o���C���R�����|���W�+n�~']v��JV��+�t[���x^�@#��@ƪ_V�
��Vx��'|��oo€�E�'�4���+��)�q������b�).�r&0�R�}�w�,��
�W�F�U*�
߯>bnE���'k�!�����)1�A��ץ�U%_�m��0Η�Ů�X�uU�:�[ۍ�v����d�ɐp̸\�V���#�S����U˭2^�C�mp>�M��[�!�������Y]�[YG�P�t4�M-^��)���_��jط���cw$s��q��
~��#}�+�k�_���֫��!�ß�)���*y*Y���ceہ�|�mv�l�|�ײ���U�U�ͨ�X�eݱ��cǠ��?�񚋦��^��I�m�ʨo�0�xdyd�|wy�S6�c:�Q�m&3���n��N�מ�9+���&O7��,��k�ȭ)���b`_��Dzne�˗���羒�?����ȸ��/�_����9�^~��T�
���lСk�e=nq�p������UQ������>��W,�9�r*E��v��yW�W�M�r�.;Y��H׋
��U+=9�T�/���y�g���n��㪾��Fp�S[aW�8d?
r�l��߼{U�UhM~�d}���$o>�����7��yʚ\QT�Gpխem��}�+�e].*�0�R�l���M�|��e�E�Ty}!�uQ@���7����yS~��~��d�l�-�Q,w�3w��;.,��%�{�FЬ+l+ݩ75�!:�[���/��ǀ3�-8T��|c��0�v�G"��.F��b}�� �������Cc��K��J��V�v;�^�m7�
�
�ڕ��z.�W�������.6�u%�	����l�k�����S�ǰeMH�͉
,�u�;�^?�?�%��L
j"�_�7]��Ș�z-���AL��f�ƽ���@������Jzl�rصK�$e�Z�)%��e����Y�|b���
�r�Ӱ컖�-q��e_~�Sx5i\F(�}�.�ytV�@���q)��������]ۨ�{���Q��%Ѭ���~#���ZE���~z8�9�w@#���f�[^A�A��6$�m�-�5�n����
��vc�m���/���d�mu���E_U����c�ޮ�;S���E^>K���m���e���W��ʯ��}����դa���
�B�T/�cǵ�{�o��v�K$→p;���m���!�`����:�^,��J4\�p�m�d��b����/S9p��mޯ��l�^�~}��?,�?��XG"�T�U8�[��M�b{	!k7ΙʂQ?�eE����.�P?��cl߇�2u�����%�
ҊD���c%!cTStq�`@Q��&
i.�S
�\��E��dSb
��a��8
ib.�
�	�?�.�漬dG����}�1^����]����p�v�_�@y�y��pu
����(^��1��n�a�]�[_���E��@��
�^n��I�(�RC�^U=� i�'�Qd�0q��,��-�r]�0q�[��� 8 ���~��n�Hۢ�Ur`e+�(�n}�s�W�Z���=���|t��6��]�:Cm�댿���Snp��JUooA�^��b���(�Zz�u�SyQ]�r�i�-�1�^�Eq܊�"�2c]b�bd�6�o2
y�Yǃ�A��BU�o[��;c���a���nQ���Iʕ��6#�te�J3W��4P�q��M{Őʼn@�G�c,���m��^D���NF?p�T��?.����С���c[���,/��i��y@�I��]����y��E����	k�[3�wV{[%��?�6%�ڔ�]����KG�=���xAM�����oϾ�µٮd�E���4�U���g]6��m���>�“)_�[�$��4,��̢f++�6�2�n6n�qd�b�_�;��W��������&�f���m\���?v2X��=
�z�2�f�Kwpw�e�E7�N���[������N
]��oT�u��"�D4W�� ��X�:����$\f~�E_��F��Eq.�Z�=���=/ �%�2�T醿#Պ�p�ݺ��4xQ�*�N�1���x�:�����-7f�&�~㣅o[P��F�m9X�H�-�e:%䂅�O�(,���:2��T!�9�_����A��V5�Rt�v%���`��c�Dx�ol^!��ٌ���A��,�^O���/��t

�21�T.J�bw���z�ܴ7\/QC�
+������8�h꫒�U7�kr�ָ��3{K.z�����m��dU���l[9)ˠl�+
z�6���2:A�=X��#,�2�is���[�kV�WL�U�A�:�.�_qrvv���*����K�XQZd��G��4s�5������WO.Jh=CSC���L��R�rMX*�}��t��YB`T���]���ݩ��u��L\p�Ш���iYP�`�c��2��;��e�A��c����E����(W+ݐ'��y]�����T�/}FM��6�k��O7�>�»D���>�C˨0w��W�/������XUap����aɹ�S���O� Ў����$F�-�wpO�KƟ�cʎ���6TX����&�}]_]�Ň�_t�g�za�1n��Ĵ|܋-͆�[g�řm{l]�w<P��q*�\�2�S���ԡ���|ۺ�1��jv`W_n[h��W|X��"Q���70�J�O�XUv��A��i�hp@T�C��umMN
&�3�⃷�O�ɯ�k�u���^���/.
��P�֔�ߴ�p�_�-�k?�a������0+��i ������v0�"j,'��bKY?�%����ޡR�?-���o�Ͽ�Z�g�NRX�����A�i5�m��l�ƭL�
��o��{��Wv��)��E�o��?���vr�n�p	O.,݂�P^�v�먥s�>���֒���:�q����UT��l�UC�β�zA�5fԔ�g8��GX��;g�[�������Eu���.����Z媲��C�j�5��1�`��r+��[��sSt͖��^'�E��z9jw��澇Y�e�[�Sw���4��LF��'�T����O�۶��g_�Q1t���L
1�sY��k����7���Q<�6�dm���\t�DѬ�W66�ߕf�~!;�n<�F�ѥ�ڌ��J
�nƭDW!��vk:�*�0�ttоF\M�?�
�6:}�n�����F�?e��B��D�T�]\�@��9J��I��ѻj٭�U+Z�c.����/���-v>!qh�P�`
��YW%�W�l���(j�
4w�`„�t��j�j�jǾ[m���眱4ty���CV嶗���6px�Œ�s-wx9� ]Tҳhj�bi���jq�5ҝ����7k[���Ԧ��YF�!.n�<����#��A��I^w"�ԋ����o�f�<O,�{6��_���
/��-"�Bn�_V%P�
)P���ܶ�{�(�
�[X�pC��Q7u�[�<�7c9�@��(��{��>po�5��%�:�ē�N���n��:��������c$]�՝]�E��t-4x�>K���������2Y��D��sr~��{�^��r��R.���%�O&�ba�0V��t�qQ�������BoC},ʹ��[q_wG�PW&���ΕFVzQC�V�P��֛pT��`�v`J������4Q�9+�
(!�q���"u�#��%�Ľ7wV5���ű|��b�`�_4r��S��L?������{ُp�|!��e-�ߩ�T5V�^�o�˾w��)/:��ݥ�(5v�������&�����Syp�9
:�
�:�m/��=��}��鴈���3���5�Y%�~��`�[*�l�e__�}�����.���ƎIu<�-*��-(�p����p���z�9�t�Ͻ0Չ�N�3|��*����هǻ��X�o�GgXA^�'C��V��U�g0��ǎ�j�74x�8:�ޚg���Ȱ�U�L���ϟR��.��j/�t,�Y��6�����5c@4�:� h�F��Q�����yi͵[�(<c7�e����Q?�
��:#�֛���r8ָ�Ȝ�Z4w���MS^����Q��t1�*�8
�
��M�]Y��˜El�?�"��%\"CRLJ,�\"�wm�*[���`@@@��~pb������Y5�Q�/���&��
?3�s� 8QH���dV�k�\�>��"��`��6��|ݍ��^�c��������=��M�ȶ�l���$��xQY�t޷���/:�F1n��;>9��1E��K�g�����l�o��`�dnp�q��`�*E]�u���~�Ş�RQ��H��BtAp*D�*��r���z�J��K�\����m�ͼs�
ruL����h������-���ɻG���YR2Q�Ⱥ�T���A��u�j�3�N��~�g��8��z|q
��<���d���NZ	7��e�T��[a/Ԥ�Qȥ�T8��zq���"��r�O��q�h
�M�p!��	�-8M�\v�6 �J��+U]c�l�[7"���.�cfx�
���=S�S�b� ;�n�����?�ß�pD$PQhW#}z���g�r�;��y҄[H��[�;��l�nT��8y�&��ys:�(�m�8�8.^��S������Z/>�.�U� ��H�kcb����f
�����M����!�dTA.�j�nЅB��Hî�Pip�Lxt�Ӓ)X8_O��T�c���J���X%!��nΠ~�a>T[	����B���:�C9j����>bC�G▃�!�b�y2ŧ�3QEEc�j����+����sf�[�s��,}��ǦVZ~8Jy����d��*�e��Vxߊ6�\���Gǝ�~*!�"���+�!�e��t	T�[EҺ~��F�\=�y��%�!�������;�M�e�֔k�dļ�|�?c�1�G�'�`�`�ß;����"�j'��n�O�u�!�k:`a{mü�kSP\v��.u`U�X>�+O����S�������zu�_] ��ß�U��(����ϙ�QA?%�jh.�oB;�q���kQ�q*Z^Y��gbǏ�I�CtM:�İ�|���*��rP`N>�ګ,�l
bI�,rW�e�YaC���y)�[�M�[}��QXC�Ȱņ���s}G_]���(i۱"��h�DDC��N�\���Tc�D�)�&"���zh*�Bv�mH����o��V){��\n�Tb��Zz`�+<�g٦2�jŘض_V�d�)pRѐI�	1d�8����������,.�$�p�?˜W*d�k\���o��ޔ�u�%��Eö�j2-�Sx^Y�[Y�rv���_��+(����q�kV����TNd <4�ڑ�O4v
i`��*1bi�P��<sWb|�xDq*/p�mG�`�+i��L��-���9�P[(d�MJ��ru�\hJ)�s&�m��M�� \ήD��W��|�;�A��N��TI9XS�K��2r���6rx�3I�p�>wB�k�/��7��m�c���m	G���[U��
�� �R��$Ԏ�� f�����N��"��'���~Y�_m/�g����%Z���1��.���O;�1}\��6̅�^��p܏�b��8V��?&��-
k�V��������_�K�Y�HP%��"��L9�n�j
i��	�Q�����AHo���>�0��d�������FP+ DV�����%�a���u�t/�	�:9��Q#��j�>@��tki�xqQ�W���ѭ��b�|���`��xs=����
���1��ZF8,���,x�����ӯϞ�� V��0��Ԑ��t�Y��W�25�k�nu��8`l�p�?/�3 ��+�^��V��ZL�B��,Yܫ~�:���Oϴ,_J���ɤ��[3m�����!������{PH�2Y
�G�/�fM�D���K!�d��,�51O�
B����4�O�?���,�����XB�1�E����*1����H�,�d���f�D,���<���n4�@�5aL�njm�D���ΐ'<�OdO�v�-Nd�ɫ��`�"ڿ�.�oe�5�����ㅦ勐��M�C�J��:$_��Mj�� ���V�Y��c��0\��7�-��^��'�uE�bך��,�A�	#�M���7\ח���sq�Y��
�~��p��F��l��`nZ�f��f^���5�`j�MjƉ=��D��MN,��~�&��=����=�:ī߾<�u�
F����_ŖՋ�e�j|��\�����\��p���6s?k��fq8:=�T�2���OqT��f^_O�}�����O��2:dp�����c�K�L����+M-:lUp��W��������d�U��T~�B� �`	�F8ZX�"�_�|V<�k�9 ��&��y���BF{�(�^�Q)�)�9b�}���҆l�`��-ɘg�9�$��	b.T'��y��\]*ZM�m,3�~ݶ]ōg�
��-�����>�"����$`҈��v\�-����n�����Y3CR�(�nЊR3�EЗ7��u]B}�{J��ߐ+	Q5���P�g�A��i�I��e��;���5C=[�W��N+w� ����Z�#ȭȣ�)jO:�T��������"��e"��4L>W�̾���G2�Ԍ�����4'PW ���:��^t&�+��z�.��dS�-V�M�ڰtFH�!��[l�˜C%o�!E*�=�*<��%�z�k4��F��B���6�!��_ĝy(K�;�M\n��iH�a�4�E.� �O��D>�sz�ĸ��*�O"������b��5�-�9�GŵH$$g��dO�Rb�/���;���e�O�B}�0�X>��ط
�N��'S�Vdx���^���'��Uh��;��V�9?'f'ȎW�NG�Wk��D|͟8v8L8��i�ϮK�I�p8����Yh�ѩd�숊 �]H	�GUޞ����/G�bi�m�fL)�y����oL�Km��T%��rOρ����:5��n�e�T@I��)�A"��_2� ��v?oJ1b=�p��2x�'%x�R��wk��d�����RQ�����~�GSG�ȟ�X��dz�$zr�j�k��!���H
;���<G?��� `����e��~����fG($� t��k��.��ZӤ�$f��o���1]�}�f����B:�^@����l�?ݔ
}��t{��l��v�%�W�^��5���w�\U��)�"+��B��.��4:���+��+�܉�&&��)�stS#��}m��Fp������@AGE��ȑ�xs��%zCR��LuDX��
��9J��=�t��&����U�AVG�g��;�>	�tS���h
�������o$����;+W!��W�" �C�J�	�l)��.1kır[g@Z�v3����yZ����x�r�'vK���6q��)��ʐ<�H�2���1����\0g��%�(P�tTsc�3�ˏ���Yc���r�y�R �dL�'ǔ��`ō�H��߰7n��͵��3D�
����l�=�qs��\�%c\������n�t2���P���!�H]E��gR%$
�)`^�K?��A'Yj��%fOO*��~��d��B�P���H�����
��([�㯏��ͮiH/��Q>tX]r��I��L׊�B��9�r+��7%��a�a��F"&⍒���i��ɲ�2Ѩ3
��5g'P���Cƕ��8���Ă�y7�3U
�r$��}e<��K82`P��ȼ�p��
�޵��r�T�W�#|�Պ<Qr���w��hF�#S£kQ�kdB@��* :-�s8��#�`�
I�s�ʁh>�:�"N�`�!T��6�`2>�(]�ƍ��ʃAZJ9�P7�I"]H��>Tx*�]3�]uq�^�Ti�@{�6�Y7)k�C�K��K��̈́��zFL��	�c����&�%C�WW�`tt�w���aع�36��N6!�9ʉ�;�)x��ђ�͂xV�F�\�oUc?%�ㄓ����;y*A8ST
	oT�3��|�we&},Z��D^m[����("8��rC
�Ϻ]U���Q��-���Ey�'_��&�w�>��.x!7e�y��l���Rz3y�~��FN[�}����2ӷۘL p���=�nfV��ء4�3�{j��*E�E��
a��X�z���I�w� {,�8��F~����%�f�Y�>���-
P<p�$�p“�R_���t2K��̸���s��͇���gq�O���ly���J�����L��-`y��>M��*#��`��s5D��d���[S^�c�i:U�6;�m'��ut��N^$*����8V��Qq���(�5�������)��hY6�x]��
�T1кem	���}�u'�_����u�6��B�֤8@ۊ·�WrJ��%�?G����umP�GŃ��{ ����2�>�>Zs��ڳx��]� �S6�La#�]�F� ,ؔ�ѥ3w=ܜ�H�E�f+�A�*H���p17}3A����n�Ԅf�j�H�Y���U�
�,2���oF�}�d��d����e��ADҤn��߯�r�ppeF�䩢y��I����5#��g�G���,O��I�\<g�C#��U�1#�~#�~�0�i���;w~��r��e]�	���,y6����cό;��[���h�%��ӾrU֯�/�kP��dmw~с��8;��/s�]�_3$���L��\#IUo	[�W�f_�X��H)�,)�r�L��<Y����1f���&I��H��L%NU�8Hy���I56���a��U�ST��$��s����3M"\݁5� Mu�X=QLN
����kM�${f���1��_ ���w���qD�/
����q�s5?�l&ſ�x�0��iF�eUq����TTw�m3��
��K��W��\����J�V)	t��CM>=R�.�bIC��dpCV]?���� 5���ʠ��=;ɱ�U-qȩ]�bN���H��ٲ�S�Φ6.�D4f�Z!8�c'"^ݝ�:��(,'e44W5V�W�����6��ˊ��)�o����p���2.\�7|=K��t�[���h�����:q�.���h��fIH^��a�LA� ����E��(FZ�V�ԑ��ns��%U��&U2���Y,����N���C���Ke�єc�\+�L�dB1z�x%ř%�_��]>�]��84��QvcF�<ڬ��ˏI�����d��m����(�9�7U�ϴyy�S"���U+��4
u�	i%�~g��L�U�R:/O���B�/[��[E�G�l�!��ī��B���<$~�W.�7�\;aIo�w���z�Va��q�2L%�2���v��g9����J�$ė�;��7����t�~��߮�:����-�5w����R��5
��^H&���K���Ų��=���+�2wt��-@2�j-y�����V�^����<}U��P#�3�eI;��Kӌ�h�$|S�~�e��7oϟ^<S���yז5c���}g6�|�8�s�_��e��$�ɕ���0-��5?��I�B��N�	�'�v9�j>�2	�e�>N�X�@{H��?�#���iSn5���3M���,��l���sϲV������ۿ�I�g�H��X�h��I�un'/���:�!m�Y=�kMBzV�<����2���P
�ژ�l,\i��Ur�\�Czg����{�U��"*B���AV���F���y�`otl=H��S]�J���vM��]=��$�q��Ÿh��o��Ԯ�T��O\Pt�]��㔉3~���=D��y3�����P�g���B!��ȑ��ؑ�-�m4gx`Tw��&J&
�+wQ����V1�d��<D\��j����GX�kʙ��S�~36��x��ƥ�H*�jTI�I"�X�6X���.�:ХB�`��g!,1=^�m�
(wX���Ęo:��X��W9
f>dn&Y]�*�+ޑ��ڍ2�s9�{W���5�ݛ.���"��n������o6ʼn���b�9So$�_��M%�0��|�p(�o?��Ό�~~t�B+��]�m���L
���n��R����V�G��4�3�R�L��#��1M��E�s+	��qrC�lc�ɓ�a���am-
:f�O�
wS��v�|*0˪P�S��
CX�Ej`�	Mkn�|*s�#Btr��Ɉ��EF
�C��m�x�ˆ�ͳ5�Y�=:���h�"@�9Լ�	���ivZ����ϑRK�F�R�;ؠ��D頽���Һ(jE(9$�;��:+��g������lʄ�{���-����hp�O���z��h˺)�D�^l�{@i�G�3��N;&��/�Z��cF�	��!����wg8��I�Z6��g�O3��Y�˪U����ia�)�up۾�8���?X��ҭ��?�F�E�8�۴�)�[�q7�2*�H`�ŵ4�<+9�Q��m-��9{IަQw���?�}���1T�XA�܄ba}Ͻb�G�(3��Co�A�A�����V!�;�۽"�M�'8��D$w��6��׆���E0��V�H��a�*Bg۽���Pm�1<Q�"wP�Fef��N�Զj��LjGV�1��]�`�Z��I��X����IL�P�A�nv�dW�I�'�e��I1<m~�V��TT����1krV7�������:oɐ�XBj�&�t�]*1u��2��~���u�:o���B0v,G�D���D�v��輶��u9(�D����_'[sroA��������
G
b�Ͳϕ?�|��1ё��/v��ϴ���D�U�}�-���ﯢ�JFl?{$���X^3�"�Q��a��_w�0V�8
�~ҕ
�\j$&�l��T+��]%�|n��3#۸�>�IBI������}yC�'�{�]�é5��\���d�4�Q����R�͑��_�;�0���VcI]�o
��S��O��\a"�)�Y}H5���	_���+2Y�{1^�W|Y��.'�ũ\�s�ݥ��6���`���@�͹�\t%0��
���b�}�n��M�\�g	w����V�m'��nR�$�R=�x�]��4�d���#���L�X�����T	��d��P�p��k5����.�=�B�<>=��ٱ{��Bjq�}C6�u�ʬH�U��b�X��!e!@�@��YM�[�3��f��ۀٯ�t'3�v��2k$�XWּ��Z*��{l ��g���ܳ!^)=�.�1m���"ֲ}ޥ�_���ˡ�\�[���)�ɑ�#��DI��Y�D�n������V�[&h�a'0��UayB�&/a�or����qiP,��\��^�a%4�q���9���}*�λ���>ҹ0)��/�ڝ[!�S#Q��Ұ�"�0ep@18vd�79s2�s��o�x���k�w�Nj���<���ѳX�-���7^+��E]:��t���ټ꡽�PϬ���ɽ{Q��^�����K�cE�&�qV}ҙgd��dw!v��'ӽ��]��_cX>=X���=����;x?m�I&�c����V;���I<��L�%B����_%�3���L�k1�q�vI҃�٥�gk:��8�|^>�i�����.�Zz�Z0V��b��/,��7��x�J+�I���o���R헼O=��$�\T
@I��:ۓ��"�S�u��yU����b�px���jY��#���d�� ����R�5�|���G`iL��H������O4b��x/|ّ��n5/R���&���a�7���D��c���w�~�I�Z|�w��_���W�S�蕼�����H�q5�<�E~7;���4���z�ᶔ�4)���V���@.�"+,>�
��,C�P��O�G��<����ì����BK8��7r�����`��F�uǾ�C�*�A2:ۯfi�}`����Հ �!��Fn�[.I��ߤ���@ز�m
Z�")[հ`˟�߃�dpbݝGc��4�|E	�u	����G�:�0�޽�q���T�p��,���_�<��U�/��͠�{4�D.cl���R�Z�؜����z�{��)%Q�7�VG6M')�u�ͅ��9
,XT�ހ��X�b��.���&����sf��nT�!>�*+|"���
5�׷�k�k���;�nZa�X��k�!�4�l�ds~�M�Z���ݮ�㤶�TSu���_��+�������5_4{໲�rr�����$n�ထ����|�6�SBg1�t�[���/M�o�HI9�r��K��K��uE?�bp��9pFG��1mҚH�7I~�''�ē=H����U�[5;F���jC��D@�#ւ��$�i���"���t��~K\HNlZ])Qx�ҟ55.)G�
lGM���z�\L	0bg�P⬇�(��ܡ[�^W�׊���Ъ�Ú0*&�9]*����k3�rWe�\3W���rGN��2JPv��.�'mԯX���Z;N�e�,��w�
�m��-YK866e��} 8?T�\��`��ƑH��%��\jʜ�4���Q��&_�����Pv�S�A���6B�*��F��ҙz�UH���R,�c����o��%�CR�BQ���%��\�,b6�שׁš�v��p���	(�7>Q3�	c\OX��o���1G�fAr[�[�$J?ͼK�:n-����PF��ў	�g��.Y@[ǂoʥ�4�ς�:h�Š�#0w@�i\ǀ��G�L�G0��4s���h<�	7v�/E��*!r �1'���e����m�̐�
���>����v�*���� ��мe%��A���(`xpR���-��M��+�;!eѦ��=31�˖m�
��%���8�&P��.:�`�O�(|{�mOLpw
LU{�R�/��
��Gd<R����H���[�v�n���gз�@�S�g�7��ҡ0O��a��0/��o�jA�͎E�\Fr4ᮺ����k���1a�N��E��B�
z
n�X
�m*+0���L މug����Sk �}5J�u��V._f�+�~�f��L^�fߗ�� ˓o�PF^�;�⨚c�A]�u�w�D6���l -�MFV�r8/���Vu+-\2�F�d��_j���*�/!d�g�.Ch���7�9�}H��F�[���˗Cאl�K��pGR��_�R��-�E���K�B=?�S*b:A�Qͣ|Ѽ9�b��d��p��=!/򀡝��p�jh_n�k��T�h~C�ె��;� �3#�ɕ�%�B��5ϗK��묔�#����:SwѸ�G�ie,���
rUձ(�
���O�x��9�[�4�_(�Z�t��jSy߲q�6i�اN�I<��H����Z�8�E}���cs����{Jy(���<?M�§�;��}�نx.�+�w�w�ST�������5���|"ʢ�����)��.?:,��юcNYp���c�k���������־U�l���]8�؀C��10L��
��m�2�{��2��g�]ٚ�
FM����Ⱦ�Q�7��8��6�:��eK��E��@
_�x/�Qr+u�Cд�M����۟�?5�$gUn
� `���/Ћ
s��m�ILļ��y���㎝ܳ�V͞c��e<�w�b��T��a�6o���E&F=O5�A�ȑ^�����2�fvC,�2�p�:م�ŊAl��8[����8̺����}0���pgsQ�m���~��W��m�2��fCYո�HXH��U�1���W��oD�z�+4~/�(	��ĮΤ��/��H��
�PvrC?z%B�65�4�Ʈ�D�>`S�44����
��/��ĕs�Ug��'�ٽ�����}�������L���uq�헾`{q7�2ʩ3�}�\l��m�o�@D���h-�I�)� .���G���ȼ)3�CZ�"ɿ��+�&��g
���!Pʿ0��P��c�4B�{�}����Y�_��V%�'���7\��{u��-p�wfRZ���e�j�'pTA�d[��ՁJÝ�tS���������
xf&��cL�G����P(�^����d��D�=.�`"_�Im��Z�1���x������.Fz'R�r�"fv�*q��V/H̊����3&,y7��\����,�ef`�}���+CtR��sh��._2��@���S��)m�i4�sֶY$��JTރL6����*a��Y��f hM��T�:65�H�b	
U<�����zH1�*��A���yi9$���s��IY}�u��sB+
^�fh/C�"!զ���_��YQ� ��#�_�Z̄3�Ki��@�m���:2Po��+�&:{&�̺�ߝ�,�8ӷL}S}H�10�ʺ�HDk �W�SHQh	o�C�!o�u�,t�ur��Iɛ�e�%%���/b>��b#/�,��
������2W�N[9#��"[��p��|V��73�Ji�8΂\�UZ(A�e]��5&������C�5iy3��Eu���N�ԽM�Guʅ17HA�?��/
9{B@��[{�mV(4FK�2;���4��9$ �Q�`6~�܎Gl�?���w�u?[m>����4귡�@�C�e�K��UtQF�S�3[�P����F��>A3�?TNc�!���c�߹zx���y�m���
��%#	��Y2���ȼB�h$�"
ZzQ�*2JrM|$���1%�\Jܮ�Mr	��V���UƁ9������?��M�I@�jb8�\��VU@�J�T]ƈ���t�bM��j��.�c��ܼs�R�Q2�#�;Lk�+/�=���jg�J�‹�§�����)�5;�
��'��9r��}Ÿ �x1NSNQ-p�ȹH
�,�s�2�E�
�#��Ֆ�n�Y�V�XZ��o��2�����������fp\��p��/�&d�o��H�����& ��YiP|a�ɥ�8C���L��q9
�.� ͽ>���1(�E+Du��.����۟��8�>��Hv�@�Z�z�m��9s��7	,4R҃$Y��Cux��$(%޿<��|�Aw
D\1����i��V+�L[��1
=��άBӈ���{�$P�di	��;Jj\tK��Y3��:�8jG�5ܠb`=����Y�jS�f4V6�R5}��e�t������``�.2
e��=��!��5�o���O��"��$��_��e~@��{� ��W!!�V�'�4�n�{�%�G���ťu�����TC^�>$�а
��
�O��ߦUR�
L�}v�S��鴩�)nܴl4��p�5��9��yOĜ�x@6�q�g&2���#����^zO��P�b�h|�ş��}�,��7r+}�COc�~r��C��u5;N�cW]�b��X*�z�{yv�ZNޕ@��G�d��gRc%�-��l_}U�d��W~ٶݳ/��~+�j���
ZO�H9�2ޞ�h�9@�Q���P��QXz�����t���LE�q��󋧎!�����'�84—��ދ�����Ov�0+=@ְZ�l�ҙ�&�%)�X;^8#z��3B���'U<�����?'P��?�z^:��I�*��Rj�SJ���FƂzڋ���n<����E�?3v���{`������S�zyc��_-઩a�,6F������&� ���f���6q�f��)ws�(媺��n�>K��jdzW�`�	�yF��)�!A�s�.�2h�PS�
a��LgN-P���W��<�J
��)w��E'���&����g�!�u4߳��y��Q,fy�Kc�
��Mae�@�d�-�����̂Hb8^��}���OC �P;*	e�"�;�u�t%�k�kJ�N������EƇ9:�o��%���:%����� �-]G�ǿ�R�qx���˓�T7�ZHGEX�lwMW�����<�Hx�F:oW��s2*�ό2���e����ۿɝN쎗��X��t�|�e�5KJ$$�1Eߡ��|N�I����G���I��}_�r���y��lVX%)����[J�ϙ��v�SB���pj�T���X'IVe���h��O˔����~�!���&�<��a2{IHET�L���\����L�أ'��'��J�f��q��#
P���<�M>�"�K����G�P��ʹ��|?ts���i��"E��-/�qdм٢!��p�����{ ��i9��q�H�5�B��3،�ȑz�=���ľ%���.���f�i��z0���R�;f�Ԛ�/q�ʛ*�ؘ]F�S37bF\��Y�. ?K�)��h?QGf�3L9|�a�η������	g]�g���g�Ѩ���ɒQR�N��}fv��Z]d�R[g`�޴�D
9���
�����B���-�Q�3^��5uT���\C��"&m��Ԟ��{�Q�Y������?��^+�E=����IUǽ�b����LU`�x쭢�T�nd�(�	w�=c�@��L$��+{
C�/Nz-J��\����r|��@m
���C'�,�*m��ȐA�f�N�SI"��˨�=΄i��&����HG�^��C�c�=����t�����t
 �A/W�b.���ݐ���.đ!x񖅫���u��Q��8%^͜řQ�����#Nٜ>�_.{O�!�f��CR�G�М-"�hd��E����"Ձ�P�Z��w�f�R��|�L�:X�)QBBxIu�Ue��srM��"&�t�@L1�Tf�ˆ0�׃Z̾7O:p�Ƨpώ�~a��t���c_\{f!��(4����O�}�w�~����Dz��V$��g,j��;?�s�ٱ)�
0�9c(ن抧� f e�
��_��(H/%U��B�~���y�.����U�W��O-�Y	%޴I[ ��KV���4�̞�QEk�]>��ǩ/���p'�g�)���E9���S���j_���A�Q��u����H	6W�+6��20
���<�w!��Au�f*�#V��\O��.5���7
�#:���l��K�cw��r�8y`�SCT�K�& ��|�� K�L�v>ǐ�tRnےh��7��r�%���Kki�To��pti�X��[S�̧�\���z��739��N`NA�fI�{~v���?��#�Q�BQf�
��Γb���CE*���^�ɔK0�tw�ǭ��e��Ī�W�����ղ��n�������-W�Grs�m�z3�i�F3#E�ʼn����ϝ;]G��0�w%�~�eZ6�ij^j�,��m��+������ӄ��Uʨ�^&91�6���h�I)�RO�g���vW
4s�g�@}�9�^P��?³�v[yD�k�"��	�jU$�{����gm˪����,²g�܋�hM�i�EU�l)�o��>��H-�~��i�`�-���UsS�����zy(�N����ts�	X�HI�=g5`SDɛ��B�:Ee��5?HS3���5�qO����v�9�v)w�#��I�:'�%�*���si\�x��_��;_Đ�
��P*=@����2(��I.��2�����C����
�{��8��K���Zd�؞6���),����v2"�Pv��N��y,��+K���
��ߴ��M�:��\�Œ��.
p�蓳;�&�s7���`�}zK��c[{�0�c�?���EƧY����:1���e���}"��u����c~�w�kp`l�>���#�i�)�|i�e�vzg��n�6OR����3MC7��H*������'��2�C��)Ҧ��4^�C1��y��'[uY�6��Z�����w��˕x�|y���A�P�yE�TA��Nf��9�VBfϢ̘+n��QTF>]i��M�v�MLj�1i�����
s�ܡ%��-��Z������RL��Β�e�
p��
����4���?U}wT�����泌���f0�͵h��f��3
#
��D-9rW�/袊ސeC�}�R��7V����8�-T[%`�L^���B����p��)󂁦�V��Y��2V3�*+�$��k�
8�h) G[��c�٦#r ��fzX6�Q�	��
�u�/�ӰG�����}���Z���o�-�[���?8��w�f��,xUY.�I�m��r*�IR��q����U}<��P����um���9/5'��i1�%R}G��3��؟�Ѣ5�d�,SF�q�9�w�$/i�>�����A�9eD�C��G�ya~��\E�vv@ل����m��4-��1����O�:�:���&��mu���.�Z@;Y8�m-����@�0)?���<�+-�ϝ�ol9
"�끅=|F�$,�AI�2��:����9��h����*�.����ܘ��%���n��3�.YT#*woyr���k*Ԏ�*
���ECsb�|�p쒂*]�Kg/so�2�s?`�����"2Q$�J)oWJѽ��⺨�fL;�r>��Ϡ��9����aNȆ��eݮ2:��ʁ�װ�g���S�
�V@ѲL��ʽ�m9�E>wt�ћ������bp�,|�D�a�C��"=9﫝W2�a�
a}�K�6��o*��!k��>�|L2'	�R��~�J�k�޵m�ڙѬ���HM��K(|��k�НQ�u�Z�!��2h֗�Ɯ."��I�}�72C�{#膫6���U0$C�q�=�Y���Y�^�bJ^���֟�d?�1�D/R����s�4!�-|�*����5ʔ� ��b��θӔ��n��?"�:+��t��OeYOe�T�L<$���e8)����HhB޻?:�ׯ�Q%� �\��tx��r�)�Γ�=�#��X|�<�,*,�l�[�:�*��yU�z-0$��7!�o�*?,MwuU��(�7�L���5#\l	O�g2*���W�w�9�����r:p�/�����o8��l����<��6�+$/�y{.��T�Ȩ>�WK�}����_��-�%+S�C���2<�d��BC0m��+�؟�`��vE����v��ܗT��}}?���W{5U�pAZ� �@�Ї�F����r��Ya`����wՅG����"IC��Ρ�2���z�ܟ�`�}5Km�=��4��O0�G~
�y���c\Z"�3S�5H�fD�ܒ'�?�.q�lZ^�4Eq_�_�,�����l?xuf���P��,��a�!�[َP��mcm���jZE�b�'��@����|���?�>e,��v���^�CX	��ӷ�ԩ�IJ�7�!%Q�
"�,JK|VY���ij��JW�PTp(���nS
���qu��T]�\m��)l�h�
�uE��B�kK�uO?�'";��^"�E��H��C�A�Q5�zF��Y#xZ�D�-S��[ޒ�N�'��
	�ϟOG���)F"*�@QE����g�b�`�s�Oq!i~���G��TG��W!yY�' �(H�9&'�_'���{���e����F]�E���/\)��p�R�x��%�G�=.mM��/�ux-m�������Zw�4�UJ�����r����Lj�����
\�;��J�����<�r��S[���SƟ�(p�c�_��3���q�g���a�t��{r��t<g�ȼ���Vr:X,��h���Ew����'C�<�1���q�ަ=�T����D��b�!k�K(jVV��=�K<��_�%����B
9�Ā9�j��jX_#
��e��Q��
Խ���x4���I�t+����ɒ��˞|W���ݪ��]�q�EK�Ix��MӏKK�2�x:؆H�2D޾�5G؀�	�|�y�e�7�@'Y�|,ϝ-�ֱ�A������DZ	y;h�j��1��r��&���#���7I�K�]eL+��딪����㐪�]�c�Ǭ��TKVs�m�J��Ӕh��	�_Dk��5��I��N]O����P�I���[�5d�8��=4
�>/��9i�nS�H�'���j,�Bvge���Yi��Mf��~��S��+�N�5��&{��U�'��86S��'�<�9�g�,�؂�2���$Eo�y*��D��+n�􀗌��fi��e5i��:4��o� RZ��E_�ۋ�̶�^���'��Z
l�4�1A�W�@����H�����N�a�O��TΣ."�v�%��,qKdZU�+��$�ZJ+B�8삡e0�(��|5uǀ��҄qxaP�:��X@��xw�\_��ݞl��`'�o�E�I�	�b��߻	�G�R�rZ+F�I!��2�[�}��Y]co�'�0��� AˮΤo��ϼ�r��.ج`\φ`�˅A��YY�<���k^I��$h)�Ce�X/��i֌�k��Y��Q f���6�+��,�pW� �_�ƀ�N��gL�'�����H�y��r��3���&���O��33�K%{Rs��K��1L+V��F�.�	��7��@�	S����YE*��|��V�P'��	/�c:F�}J��uj�X�{�a,K�}��ǁ/�ҕ�l�Vi��D�����~�n_���l��,:�-jŔ��_�k�� tΏv�"V�V�n�M4Γ�z!�Q�y�Wx)���ƒ�B��}�A���9栞����^ZًaɈ����V����g��QKTpil����e��r{�AH��� ��@�i�ګ!כ�����^�-Ӫ���I��amzi��4����"�j?���\*_e�L��g@�J.��RV����T���f=��@�k�����1:��>'��(���g�t�i����k�U:�`��z�0���?&�(�c͙�)K�e��yV��!������P1��&h%d�Ǟ��'��4���f��Mn���@*������`N��Ws���`���U�Ӓ��Y�6LaLk&CP�eh�mq0I�p^W�7BR5ނ�\
lL�ƥ���*�G~���"�K}8��]r��T/��LL�2;P�2������e������KGƙ���1�H;?9�5>}�i�X+s������.�Pe�+Ҫ\Q?�@j�De�'��
q�8;S2�磚�5!��JN�XI�xۥ1v���<�P"���M�C�R��D��	��sZ�e<���GnЀ�+��)�O�39�ߨ����m�X�o��%o��^��V���B*X�щ�ϲi���⺯.�����������:�͚=���K×��/貼�ƿ�/��x���f����c�����*]k���1�.Ů�>cq�s���:hT��#F�t��!Q�r�M����PP�\���30���΅��ZԼ)%٧�A�]��:�N��,�� �[Q1�M�?}�p��E�>{
Qe���T�&9�
ʫV�����w�߃��&�Mz>h��m䚹�"G�ha[�[m2�X��d�xV�nS����(
#�K7�/��I
Zkѷ܅��XWk`Q��o5��e4�1�3�o�I�s���B!�)�"�:�Ea$��=t���	&�,Z�����FI�0���.��2]��h�=�*��wN:kD�3ӝH�D����*pI
�ZDk�B�i:�ȓ�8.�G��K�pb��@��A]����aRJu�����?ΐ�F�^�
'�G�.T��+�e���St�a�q��4�Q�b�DV���?���ס�VZb��VSf������"�S^`
�c�v$C]�X��_���i/$^���5�h��Z��̨�G�R>@�\4A.�wf�M����t�f��Ѿ�N���|F�L���s��q�!uq��'�`[N�������U�?�S�Bv��?��qj�D�mV��<M8���,"��<��Œ����\�4$��+��[tb&��z�c���P�w�;q_��d�Y���H�!��t�s}�����Ĕ��/��z��}��x�~��|'�P� =튃U��^M�ą��ݫ�9y8��<y�0I�aD���ž�iBNِ�Oqd���*&�w�F0�҇�D�}1��[!xd�]}GF~���(��J���5��Ia�
����G�2e��E�-�F�Kλ�F=�̼�����I���v��$
�lUS�c����k��+ߐ�O��ٟo���#P<6I����	^��\����/6��:/E��#Q����Pٰ"U/o����Bu�D�=�7P�55��(Xm5�!V�V��Ʊ���wM��*C�ni�G�m�2|���`,a�}�~ae�[�[�^AN;�f��x]�ɸ��isy�r-�Q̖vl�`�V�d9j���WN���lD@������ʡ�����"*G����Z�E�� �v�s�(B�
����\�l�����6+��R�E�Cɾэ}+�����
'����D�Pdt�JF�OF^�H.�kj��������[z��X.=Q^u�O^�F�jkÁ82�.��l_�52,l��n�t��H���az�%�<7�=��M��C~C△ʞ�o��l!Ҕ�'����9�0K6T������p���ˈ��]�&�n����嫫�����F��0lu8Tmg3�$����O�U�S1��4�t���<��Ѣ�A�
�/奊��,�
����Y@5�q�"�X�a�WWU�����d���m�a�0@oi��*h�d�j���?ch��u����2�%��%.��+�|b��Qq��g���_�`��U�Ԡ�#�$�d�tB����C�2z|���UN�(܈^��
�"_��՞���������:�_����P{�*^���}_���*etW?;
��|���_�p>Yc)��D&���W�kƮ1��_Z�LW���M�ECQwc^E�&";8a&�Y{��)�y{^�ٔ^�/�L-z���;X|e�8-��ak}+����g�EQ
���í�l�r&�X<(�}�����q�U7̱���<|�RP�.;|ⲐI\�%�5���pd~����ԡ��zZ��!�j��*���_5�S����U5X�&�	`yG��o��s�u�|���[���4A��X�ZXo�،�V6'k	��>���H�"N��?��5U���%���z[��(̷M[�̫�o�=xm����3�0�%�.�O��a�@�R�ݓ�Vn{uT��'�>wB-9�����5����v������+���Wx�ǽ
X�ܦ���B��?婾��IX��{E��tCr�v���˾p/�kp�W}z}����P[8+�������6��Jp�Cڠ��q>v���~������x�a��CB���O�t^Pn��}	(�鹳�hH�Ɖ�a�<'��U|�)��Cyf9<^I�4�xr�k�t�74�DȾ�;���J��/����c�廆W�K�Z���Rc��KZ�.r�bA�1J
�w%�JkI�Z#��#E�Y/y���8����T�{_�ɚ�p�i:�\� d�j]����"_T�U{����V{��8����Jkض�(��J��Uk/��h0���Ԡ?Hk@�aZ�]A��T��a^�Ԗ��ފ�t��2�dT���<�U([	w�a���Xc��!i]kv
cI`��<IZ%�T�E�7$���ƿ�EH@�|w}]�]]"����U❌7���u�l�`UJ����r9�N+��Y�7Vr|mʜ�w��w>�<>��n��;���q���;@?:L4g �AN1�tDի��?����V��gG�"�ڌ�����{�u�'��`��,V�J���H(��}^�ܻ�g�5��uth{�M٤���K��x2��k�F��g�ߐ�*�ҩJ���G��_I���:͖��a�N��ka�YoV���؂�a|�Pc�Tʹ�!�WN��ާC�DDK��Һx�bʏ�Mw`�:�������jDa��ځk�Z�ҁ1qH�o�L�MS��1�Ӧ��d!C�6����<�Km*x>���8B:�5
�œ`=Nf���Y�8��RQ��G9X4������L�x{~��E�=3)("`#�b�V^��ڡ)�񭌯�aZ��|gL��z��*�8}Ʌ9}���?���1S���O��"a�\UA+�L����lH�;AΕ6����M��QJ$|�_u�ڋ�cq�5vQ���6�05�5Ry��5Y���6J���宺=��6x�Z}��4!�ܝǞ,҈T�!b�<�4�&ꥶ]�`���RY
T[��"N9	c�`㎗K^n.�y��}Ѧ�q7���q�a��m4Ӌ78�X�|;�o[}���M������%�
�6�3��s��3+�2�tS��UR�$�\
0.��ת�?�y����2`�3R�a�t��]��e���8XI�X�wH$a����J�~�)�M����LSN�Y��,A�`�d���$���SS�+򙸶*��C���:9��'g��G���:i!�X����g="�B>�Z�@��~̏a�R7`����Vc�7Bgӈ�T�p���|��s���H�?�E�<l��,�XA�)_���Pu���
K٪����YՐ{���c	v4Ϊ��BI[f<�n�r��_�pB��1V�u������D�|��=۫(\�IYl�zQ�P�_ۜ��Z�C j�`݊�-S�,�FCU}!�6l"�?
�*��4��v@0������}���iZ�[���Wn�uH�s�+j��K�T�V�Q�z]����
�H�����r��o��G��=�A��&�:=��W��,�^�����"��DJ'���uO�1�/�G�/n�ݖF�F�g�8��(���n��f��#���a!љ��0���ǡ��w�O��F��FdeYd%�N�ir�h#�GX�+@�����/i#e�0j
���O��Vh�(�E򲾷�f�7�&�̗MwQ6�^��1���s�SO����:�o�5�E� ��������I����5��5轼���¶}j��1ۉ���j����x��G�*��g3�+���2��7l��36����)�:{�4}]xH;��$F}�Ivd�4L�m��?xJ�.U+�fL^�D�w�C�
��մ�9�`}8��F�}h�?tmZ�7�P�.��%m�5�˸ϒ!�$1sYU�f?��Cp�b��u��.�f��R��DaV|���Ѭ�s0z��(�gM�ٹ̗�][�g�`���)�-���FG@(
���a�w���S�U�^��R|cAl�M�9Cl��WBo~����̠>@^�"�3���*�dJ*2�hO�9c�u�	DI�$)R�&�ǽ�oVt����%�#b�W��[�Ό<�{�����1�+�(_kK#�+��y�b��U�C�|�cO�qo��$�<(ɴ(�̊d�&�b$�	����vFEDZ��C~+�p]����UKD���Y��"���d��W	���TN#XL��.���ǨC<��\�o�9��UI�V����_���J��m�}e�VU��%wk��ɿJ���/q%�z�B������߰�7'��<{�nf#SM�[��p��]��)�N~#�����{ �)�"�d�+�^H�A]9H��z�ݎʋyX�t�f�C�<Z}�.c�%xMT�I
ةΕ�;^��lܩ����ݞ��e�d�|���¿b|r�졫R����d�\���~�y�!T��+���mk٫01�Lwi�$V��c�K:��GC�x�w����Go��U���'�K�p]����J��rj@�í��8˲<��8@n�z+�	$��
ПZ��aZ��VBv@�������bt.0�M陯�.YZi���|���8�Wd%����W�V�vS|�@0���SM��^�qQAH�7*�+�CB�G����'"
O��ס�Q�}�iz�40�2��6�)-�C��3��68_7g
2�!A)��Yӵ��닶$Y�����v��?t�b� �2�^H��e��:�˘�C�W�,Y�i����O~G��{�9�0�@�k���'ۂn��O�9`�?W,.6��*���D�_���zB8�@���D?V�5��(k0x��\�+7���Kh��]�3�""廫��3_��F�I�0�^z2_�������oC����/4&��*�.�c���gR]ux�14�Y�.-v�?��o�|T�"�I�?&����@{�J`dҖ�����D�;^��.zڎB幚$�E��$4�(�Ƞ߬F:6��^[��XWѱ��`xcMX�6��m9,Rװc
�g.}���a�ЋJʟk�F��9���p�E�A(�{�=�Ry�	��V�
*bl>�.7
�zy;�zK�#�m�lL^G":F�#˔�Ԯ��cU�<�3�S�b��5>sG����<�:aƏi�+A�q9��
��/���'ǘx�֦}W��n(�yɎH�7�\��!��:a��Gl�S�l����̐3�WQ�2��;�L;{v?��`�'_f���N�"L�˹4l e�����OB����O���S5��'&)� ��{�?���цlE��b��m�FQ[�UU�����<2�N�F�3�u�&��٦g�T~�&96r�V�P��g���ϧ�{�V�
U2���V'v5)���گS��d��h5@��=�	�g�f�y����V�ɛ:��ZƑ���9��bg�
O��ou�E�7a���H�������o��0����i��%��$�2�˄��L���	�@�P�g���c��G�%:R<>߬W�~�|�.�4��W�S�~�s�߹��i{���}��0�,4{2��&|�/��˫bh�W���b�)�>�Y� $M�;��'2����#RyKr��д�j���E�I��+s�2�:�7j${g�U'�?Æ����[��S�j��?���?��/ۘ$�����)��z�vVt]�35��DE�NX���g�������-���)��A�>��?蝊�ˡ�w���͖"Qe�Ϊ�M�J]L�V�}l�ܟ�gO!D�
M�C-�*��v���(Oa�͍d���̳�B��6����^ق��1c<���혲��3�6Z�9���W��yr��mZ_�/-���n�]�I�FG�B�C�� �#�U_���f.*���|�E��P5�9�beT�Vڵ�U�J6W�j03Pϼ/̪���Xe��2Ī��u���lN+�!W��"A�(��?���P�E�F'ʉ&�Te7���3H�)mI�sk?���(����=��#m������k`�Ԓ��g4���aϽ�٩���}�*{�(��3:ۥ��D�ͧtR�`�X�ϩ0"1���Ǩ	����tb߫,�����I�0j�L_a��
(3eO��-ޞ��7]v�����6�~��`ݜ,1�ҳ&7��KYa"���-����	0z�2�yYTa*-�t�;5������zQ���"���(x�e�[}V}_�������aQ<��Z�v�;��Br��~r�l��A�W�a�}����5�'"��l T��s�W�g��g}�3I�ո>(sR�KR/P�$�}3k�_n��Z��������n�!��2٥ڐޟ܉9��u4��m({���]
5���<�m�	l�Fɘm��ʥs�g���V�,⟳��6�o_��Y�_�䬿V��@2�_����̈pu�W<"h����!�����,���ȴ��S��]~(��׸�@�jK��ض�۟ڐ��)��k-��>�e��*+t��*|TnH%�D�;�ԸN�cz�up�	V��[R���R,�~p�K��Y�o��(�Z�k[�����Nz8I��*����X���H���?`�Yq����#U�x�;���f�ͅw~Wd��$p�
q�]�I���BFt�D������{і�f$$�-1$��5f�O�l�� E��
o�6O�~��$s���)c�P�e�8�G�* X�I�!}ڏ��g�383{]!�w����,\׺2�~�X~#��=���z��=�t �T��Lլ���`HȞ<�/�'��ܖ8�YQu��Yb*��(�Q��6.*�[N>������\�9�{&]A����]v#l�`k�&�~���w!L�J$�����~��P�x��5,ɖ�F6��~_�2�U�>*�<G��#�W(�x�z]t^/2Bv�6a��U���.�"�3��d+��*�y&m�8�
(h֪5��`-v�P�|���Lڄ��"���gZv�?�F7�����Vy��6d���gCq��.
bs���f�N��6Zr)�3�p�=���\�n*rm�����)��(��UDJ�N��g��kF��\L]�̮�|�c��˝m��}n<�������)3Jk�#�J����>b�.�k�2��ufލ�����/�:Y%	�kr�$��eA�%uL �ϵ�	��f�iY5�ղ�.�I6ԓ8���6;�{��hxf�餂�7w*�b&��(L��\�3�;�'3�N&w���}����b�ĺ�$���#��3�۴̚#p��df8�g
�9Wp�0X8�A_�1'�7o�f���K�.#)�ʧ�3(ܦ��t'�n�:�eh-���g�H�(����-6x��`di,]Dz�DT��
�
lФ���S!���)�D�ڌ&�=G�g�dp��p�%s�
eǧM�s�:��G��
�g9��L�R����;�#�|}��]u�0�X���O3�	><?jh���fh̤>E-��?F��OmP�(�ԉNʉ�0�}����OL��I��k�FA�*���޲�<��Z�!�ŧ��;.�z��~0Jo�@0��X�"Ю��c�L��0�V���Hy�c
b��/�<�kH*��d�=�O±�g��8M0a��H����y��38`ĉH���ׯ�<��r�A�>1y���񰾘?���r6)��ыZ��e�m�U���0רnw��i6�:װ�j%o��qC�)؈�j�ZՁk���^ɐ"��v�����H�}I�҂�D�F��Jђ�e32��F>!���.�4¨T�}��
�e�>]�2Y��j�z�t_xu�I�ɃOӡ�\�je-W�ɾ�o.lܲ}���ao�p�'�N](Me�% AT�+���E!7���4XgQ�,W8�f���X��FrF�h��r0���ϕ�.o�o/��#����ΐ
�<KE�m�s��O���t��z�(���X����5�����/ek�|&O��˙��%�Y%�Geˆ���-$OϺ'��Cvg�M��fl�
�޵k�p��p��pS[Bm�bİ)���L^:ԩ=�?O`=b����gu�G���*��-�pyׄ�4�//L���Zz���\�W�����%����%\������͎y�ā&�;�vx�tcN�g)}o#�/���(�
�ż�I�do���X�c�$�rqX>|�����~��'f0{�g[ώ�ݭNεo�f�z�6�N	�-�܉���pw��9r�4=cw�|1j�[̏�ݍΟ��Q�%\��;Y�'�ef����S���4Cx��!�@ڢ%�nƣg`E����Pw�o��	|&�G�EN
������ʼn1d渚�@�NAŞ*;�KY
0�KV%W��잘F�F�uCd.�ԴݡxD����Z������f�i�ɑ�Y��䄓�J0{�>�-�&ɻ�5�����ȱL>����
	�3ҟ�ٲ6��]�O@�PB�������N��{4��&���E�Y\����*����J=� �����AB��Q�4�Q:}��S��Y�]�ǀ�^�~n�w��,Mz^p��fM�>��~M���L���`/���g/���"%��_��F|ze��LL��ԉ���;w�#��P�Er�_�}��E�+Kb�	b�2�1��I���P���d��'j�ؘvǿg��J=a�V?�����$��o[�Wa��$"�sFoBT�6R`2�V<jL-�,�|��
�V�[&=����8t���:�P�i�n���b9��|)u���
,��Hde����R�D#9��܁�A�^����
J-)#c�j}�|)W"����ʨ�^�&1-��M�$�v#�����.��"�vY}ܑ�����K
7��}�c�;
��@_�*�rW��/�ܑ#��:2R�R�l�x�1�T(7_��?�!L��#q��Lķ��_�߶�)�ק�o�ºQ�h��Q����=@�a_\o+Q\�J-N8S�(��^�$��2�%�<t
.�%Τ��\x�z]�bQ��V�~�|�� �3����D�}�4�`����q^��s�;͏|�=����y��(3) �)5�g(&Mau��{���	�y�jpo�����y�PK��fA��
j6���JŢ,�"����������
�W����
�������ŋ���c�ޮ���U6N)d��FD\���=��c�6%�J��r�� �Z���(�GЌ���SPM��z(eNj`���ҩ�^�ՍS���^��C8�8x|xH�
1
�S6�r(��)kM��G�(O�R�}i�+���Ѥ1jQ%y��� �]�Z�v�9�W‘��t]�m�e����K@@s�Ӛ���j�#D9���׵UC�Ĉ�]���vp�_��F]�Uz��P�Eu� +���= &��]�$ػ�g�d�6��������J5M�.�0;�<ۙF��w�"m�_���ٙ�1�Aw^6�`�d�b��2^�"P�WWVX*Cm�&7T�ߘ6�(�:���_�R�8�"��}�%S8B)����TZxTC�Q>�%A�"����d��A�OUR��ag
̬��x\@�=�2����0Ia�&M�[��9�Wa8`��&wg���$�
�-��P�M�7�Bbh<�����[D����:~�~ɿ��L�,.Wk���@��_v�3AH�R�Q��{�˃���0��O>ʶ�e4d���V@��Kp/Q��ʒ
��J|H�:�h�sP�JLjW�:7�Cg��P�W�[�e�`)}��$�8�#Њ@9����t�13��3�5V�>K<=�f���n���H
�J�u��^�c��9]�,|hή�n'A��Vʁ"����m[*Q�Yf�̛��R��V�v��T���c�sF�Ð����R������^���D�^)d�e��<p�r��O~v�4�w�_[8�\��c���6����!�9`7����t�k
�K�h1&�4�2k��?��C	�[#�fI,ʜn�C�:�7Dިf�<�)���u��3�7���{�D֡�s��?��f��*���z*�K�$$Մ��6����_b'ү^
:՛�����������ט(�G�|��L^}�������{3����v��NdFbŜi��	j	w�1p������!7�8���E�vM�zY�]����Ę�V�jB=�0�47T�Ea;�0}�5�B�ɕ����x���>^�$��l��*'b)�p�$t'M�_Y��U����ʩ�����7/�|ɏ�����Ο�9yylk�V�b"y�U�P�ê|�*��̔�U�jp���H(
�G�YQ�)��1~2�-�x�ДJ�d~�?O(cy>���t�V�L_ѷ�6?7���<ȧ��/�N�c�0�UW��(_�sC[��rp��y���H�4M�0D�X]c�Y��t�^�ʍ	�L���F�HH�D7Բyc��m��˽��
�����ݾ����n��6F���s�~]�DA��>�Ţ9.�b��h��lV��)�i-�����&��TH6�M��p�xZ�,�����+�)Z
�������L*�O�S=�`TWc4&S*������yu������JG��&_K_���Nx�����7:����H�_��!J?��SF%Q7m�z9\�8h�0�N��-��4r��`13���d:�7]�$k�6�
�L��S�>��6J���]�K��凴�Q��֜W�]]���b{H����V�����T���?j�V,�7T�|>��C�Ѵ�.1d����I�(��.��ˤ�&a�bۚr^t��e����o����?8�C�ey$��+!��&��'J���ْ��ʹ���k��!�72~e!K���
8��:A�]�Ð�2�OP���Н��䯬�6V8�_��9xOb��(of�.���?^��f����>,D'���5V��\�O7,�6O�P>����S5H��FicD����ܽ��<������ɫ�tRzVE��Ӏ��zu�'�|��%`x��c d_�i�4�b��KSE�iȀ(Kz-�2�4hѡ割���,��I�_�ή��w�,ky��E�}�+���-���D�����Q(���E�G7|
_�">.K>�$�L����P��=�D��V�❻��љ��Tm��()��‘׌�,��5:S�s�+�$8h"ұL{�	�ؾ�|�P�=ЕӇi���%�lB�߸���5y���;�"��q����g�>����U�BtVkM����<�
b^��(�\��*U
^��V4s0m�0�k3oJ+�V��2���z*�P���y�c��������*T��2;�2�ڄ\WU�%N:/fr@#
Cj�Z��D���S*�*��@�<xyg0���٩����5�^���+j�=���y$�b٤�������ݪ��"��&Z�K)5:���eHI|��{�o�ж�k��J+�v1q��%�Q��VS�ޣZ���Q�?Ҍcu��ك�}@�����O#	IU��!��峃�-�e@�EB�nl��8���J�Q�pWZ �� ���8�~�J�M�\J�XB�e�ù�B4�Q�Nv��*e� ��dA�G��'E��Z��^�ΔAlT߻�-�� ^l��Zk�����.�[�T��g�,�Itt9�_�N�{�ZP3�\Q�~�����C��R��<�p��ۄXXl#�mz����������F(��I���[�@ݾӾ��E �t���gJ�X�/�}q+�rv�+�s��5!�Ɋ�$�;�ߪ$�1��.)	��ǎ_���M�t`��0�1�FD�<�k�M#��rLkg�e�U�b���u'��b�Ü̃��lU
�5��uΡ0Dp�<U8�-h[�)�) O���*��R��?ΡkרW�-��`+8�/��f�c���lY��;�	��3<_o�l�:-x$L��½P��VǤ�X$"�*���TI��@.��(/2�T*'9�6��'\�j���B��G	dj�ES�7JU�7LxOXi�ה=��=��i{Z������o��/OkCWI�H��ۈ����ʔ[Af�S1��Iq�Þ3��#'>J����`���UU�9�j	�,�%�a��F�؜A�W�
���`@I��H!���|�f���[B<��0(�%����QQB��i�LiO�E,��!�:�^�!T`���Ŷ����x���.��y�5���V濊�Y�zU}n�6`�5ɼ������nJ;%5�����i���,�~
5~��&���jߐL,Xw���U|=���3!(+
�u��}Ϟ3����K9�1�T��1n��4�kx�m�q����J����H��6�€��q�L�T���bEx�]����@J�/O���ƞ���Ұ���n�@2��ǚ'ކ�RC��P��"BH�QH(}�,m�v�葙��ל�9Ps���N��U�5������sJH�;��Lu��Y��`k��I�8ׄF
�Q�'},>��/d0EZ'uY�b�IE�F;�X��ʊ�=P6�9I4K^�b�Jᔩ���P
y4�R�gf)����N�PlgFrXU�P���G�j�?�0%��?h�lg��he��nQ��vs�����O2�0���n��(c��Z���g�2�-.���%��Qm�lRE���-"��.��p�2���n6Ͻ嵽;P<�7�n�!��r�kQ��h�C�+:h4,���:4��a�ZD'X���x���RG���v�r�>�K�du{c�Q#m��u�o��NJ��K��\'�͇r7��b}8�!�6,�I�˰f�R�K��DhG�$���+�.,F�-ā�U�2�?�7]�3٨�2�{ɜ�tl��l��3������lY���}��3�C�����(>���|�K��G�s6l�1X�79�<H��
_��" �h��c��@�r���^�$���zpµ�����fs���V�=�yT\�Vv����*@�\ӒB&���/Z�%���������[��V�XX,���k`�[G�f[���y0ɺ���QO�TZ����]���3��)�r>��t[]��E�H�y�V1��W��H��ge��Pv\$C^��5�3k��ȚĽ����.R�wg�[dZ����6����+Z�}�E� �N���Cy@���ū��V>v���ީg c�IV{x�Di��7ƧW+!P�0�{�.9:^�c�=Y��E݅�]�S|x]��8���\�O�s_R7ѫ�ܱ
%�uC7=]抓��U�N!���z��A�zPC�D��Yb�{ج�\�J΃H�9mi]%s���@�
�<��s_L�&�}DZ9�b2��QE3*�1����|M�RǚEmJ��$����
��ۡb�]�1���&��wך�[�XY��R�߬d7: ��QD�2t����o�E�@UÇ�M��;�Ճ�£���6	UD̻Z�,���Wb����p�bXU�O�4T��ZMc�7<�y�{�n��ʊ
��s҇L�d)4{R$�8B�&Щ$��	N}>oϗ7r딚ԷFu�P�29����c.��b�ٗ�f�kXI�;*[tm�5��|��z����K��=~s�Y����wg��7�~<�C��yz8{��mqz��X^���˷gű��O��ޞ�%�E|�ؕj�z�f�)�LO���-)6ͨ��jz�l��J���~�b�Xd*o��`�u�H,Wy�r";���g�:��1Jj��t�pA�=y��C�^���]D��/��N.A�O���9T?q��Ȍۻ����o��q�EPx�H��<���É%��va����#v,�q� ����u��#�'\3�a��A��bH��w�^�y]��a��JE
1/N%j*A���YR�h�+
�9'�u�!>������ʨ��ݸ�s9E�Wj��@9�M�-Xvu���m.�T�9
��R{�&�,ۑ�s���A�<���?������n��_��ൔ��:�o1��G��a���׊]����t{��:t��"���W�f�'��WL�J�(@�F���E�1�MY_��NR�6�C��3��l���yw��	<��(4t Ӓ�%�Zs�)���f�G1�h]������:N�����1��)'aF#�ZThǐK�D�U�Y	.8���a��^1�d��ݨ�t�Ѻ_f���g�R�*��l-�K�9X�>5d#��N�0���?#O'?�����w�C����"��^��'꾡�Q� ��_�:���J(�K$Uϩ��y��}Z�=Sw�}ޑg$�"��B��=U�T���*�4h�S0��%9�����$��e��K��:�J��<?;�Pٛ�A�,��w�w�h�����Q��Ϛ�
M� ��h����DF�!�NS;�2$�ìl�!�n���I�_#��M~	a-+g�0J�ұ��ޖŒ�+V8xi��`H'����@Nw�?cQ���������=n�h�R*k�h�\[c��,Ҭֽ.�Xb���ЁL�-�zJkQg�jnŮӛ��.oT.��MY��;�/>���iH��Ƕ�]�x��eO�ʟu=��Ԡ���Iֳ���]����_�]�ȠA>� 3Ƭ���4З�? J��{�*�:�l 3?vm��??&�t
ע��5Y��k�����5���;�2��0��� ����*Fgɠ�����P��^h
��Û��$�hn�]/�%5y"\!�e>�%�&u�mbQN0��ZW�0�����t�`�D(�#�'�d���Ff�������u<��N#��*x���TG�T��yM/���T=�֋���Ԕ�T��?��4�j�����>�vh]��a��PS��6�բ�sG�E�O�I�;W���I��o�V��Ag��=ԧ=��VL�S*?�/��?�PKk��Z���'ټ.���litespeed-cache-es_MX.poUT�w�hux����PKk��ZzK�����+�litespeed-cache-es_MX.moUT�w�hux����PKk��Zco��F������litespeed-cache-es_MX.l10n.phpUT�w�hux����PK !<?php
return ['x-generator'=>'GlotPress/4.0.1','translation-revision-date'=>'2024-02-24 15:52:26+0000','plural-forms'=>'nplurals=2; plural=n != 1;','project-id-version'=>'Plugins - LiteSpeed Cache - Stable (latest release)','language'=>'es_MX','messages'=>['Clean all orphaned post meta records'=>'Limpiar todos los registros meta de entradas huérfanas','Orphaned Post Meta'=>'Meta de entrada huérfano','Best available WordPress performance'=>'El mejor rendimiento disponible para WordPress','Clean orphaned post meta successfully.'=>'Limpieza correcta de los meta de entrada huérfanos.','Last Pulled'=>'Última extracción','You can list the 3rd party vary cookies here.'=>'Puedes listar las cookies de terceros que varían aquí.','Vary Cookies'=>'Variar cookies','Preconnecting speeds up future loads from a given origin.'=>'La preconexión acelera las cargas futuras desde un origen determinado.','If your theme does not use JS to update the mini cart, you must enable this option to display the correct cart contents.'=>'Si tu tema no utiliza JS para actualizar el minicarrito, debes activar esta opción para mostrar el contenido correcto del carrito.','Generate a separate vary cache copy for the mini cart when the cart is not empty.'=>'Generar una copia de caché variable separada para el minicarrito cuando éste no esté vacío.','Vary for Mini Cart'=>'Variante según el minicarrito','DNS Preconnect'=>'Preconexión DNS','This setting is %1$s for certain qualifying requests due to %2$s!'=>'¡Este ajuste es %1$s para determinadas solicitudes que cumplen los requisitos debido a %2$s!','Listed JS files or inline JS code will be delayed.'=>'Los archivos JS listados o el código JS en línea se retrasarán.','URL Search'=>'Buscar URL','JS Delayed Includes'=>'Inclusiones de JS retrasadas','Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more.'=>'Tu domain_key ha sido bloqueada temporalmente para evitar abusos. Puedes ponerte en contacto con el servicio de asistencia de QUIC.cloud para obtener más información.','Cloud server refused the current request due to unpulled images. Please pull the images first.'=>'El servidor de la nube ha rechazado la solicitud actual debido a que no se han extraído las imágenes. Por favor, extrae primero las imágenes.','Current server load'=>'Carga actual del servidor','Started async image optimization request'=>'Se inició la solicitud de optimización asíncrona de imágenes','Started async crawling'=>'Se inició el rastreo asíncrono','Saving option failed. IPv4 only for %s.'=>'Falló el guardado de la opción. IPv4 es solo para %s.','Cloud server refused the current request due to rate limiting. Please try again later.'=>'El servidor en la nube rechazó la solicitud actual debido a la limitación de cuota. Por favor, inténtalo de nuevo más tarde.','Maximum image post id'=>'ID de entrada de imagen máxima','Current image post id position'=>'Posición actual del id de entrada de la imagen','Images ready to request'=>'Imágenes listas para la solicitud','Redetect'=>'Volver a detectar','If you are using a %1$s socket, %2$s should be set to %3$s'=>'Si estás usando un socket %1$s, %2$s debería estar en %3$s','All QUIC.cloud service queues have been cleared.'=>'Se han borrado todas las colas de servicio de QUIC.cloud','Cache key must be integer or non-empty string, %s given.'=>'La clave de caché debe ser un entero o una cadena no vacía, %s proporcionado.','Cache key must not be an empty string.'=>'La clave de caché no puede ser una cadena vacía.','JS Deferred / Delayed Excludes'=>'Exclusiones de JS diferido / retrasado','The queue is processed asynchronously. It may take time.'=>'La cola se procesa de forma asíncrona. Puede llevar un tiempo.','In order to use QC services, need a real domain name, cannot use an IP.'=>'Para poder usar los servicios de QC necesitas un nombre de demonio real, no puedes usar una IP.','Restore Settings'=>'Restaurar los ajustes','This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?'=>'Esto restaurará la copia de seguridad de los ajustes creada %1$s antes de aplicar el preajuste %2$s. Cualquier cambio realizado desde entonces se perderá. ¿Quieres continuar?','Backup created %1$s before applying the %2$s preset'=>'Copia de seguridad creada %1$s antes de aplicar el preajuste %2$s','Applied the %1$s preset %2$s'=>'Se ha aplicado el prejuste %1$s %2$s','Restored backup settings %1$s'=>'Se han restaurado el respaldo de los ajustes %1$s','Error: Failed to apply the settings %1$s'=>'Error: No se pudieron aplicar los ajustes %1$s','History'=>'Historial','unknown'=>'desconocido','Apply Preset'=>'Aplicar el preajuste','This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?'=>'Se ha a a hacer una copia de seguridad de tus ajustes actuales y reemplazarlos con los de los preajustes %1$s. ¿Quieres continuar?','Who should use this preset?'=>'¿Quién debería usar este preajuste?','Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between.'=>'Utiliza un preajuste oficial diseñado por LiteSpeed para configurar tu sitio en un clic. Pruebe el cacheo esencial sin riesgos, la optimización extrema o algo intermedio.','LiteSpeed Cache Standard Presets'=>'Preajustes estándar de cache de LiteSpeed','A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores.'=>'Es obligatoria una clave de dominio para usar este preajuste. Activa el máximo nivel de optimizaciones para obtener puntuaciones de velocidad de página mejorados.','This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images.'=>'Este preajuste es casi seguro que requerirá pruebas y exclusiones de algo de CSS, JS y carga diferida de imágenes. Presta especial atención a los logotipos, o a imágenes de carrusel basadas en HTML.','Inline CSS added to Combine'=>'CSS en línea añadido a Combinar','Inline JS added to Combine'=>'JS en línea añadido a Combinar','JS Delayed'=>'JS Retrasado','Viewport Image Generation'=>'Generación del viewport de la imagen','Lazy Load for Images'=>'Carga diferida para imágenes','Everything in Aggressive, Plus'=>'Todo lo de Aggressive y además','Extreme'=>'Extremo','This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning.'=>'Este preajuste puede que funcione tal cual en algunas webs, ¡pero asegúrate de hacer pruebas! Puede que sean necesarias algunas exclusiones de CSS y JS en "Optimización de página > Retoques"','Lazy Load for Iframes'=>'Carga diferida de Iframes','Removed Unused CSS for Users'=>'CSS sin uso eliminado para los usuarios','Asynchronous CSS Loading with Critical CSS'=>'Carga de CSS asíncrono con CSS crítico','CSS & JS Combine'=>'Combinar CSS y JS','Everything in Advanced, Plus'=>'Todo lo de Advance y además','Aggressive'=>'Agresivo','A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores.'=>'Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones de velocidad de página.','This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools.'=>'Este preajuste es bueno para la mayoría de webs, y es raro que provoque conflictos. Cualquier conflicto de CSS o JS puede solucionarse con las herramientas de "Optimización de página > Retoques"','Remove Query Strings from Static Files'=>'Eliminar cadenas de consulta de recursos estáticos','DNS Prefetch for static files'=>'Precarga de DNS para archivos estáticos','JS Defer for both external and inline JS'=>'Aplazar JS para JS externos e incrustados','CSS, JS and HTML Minification'=>'Minimizado de CSS, JS y HTML','Guest Mode and Guest Optimization'=>'Modo de invitado y modo de optimización','Everything in Basic, Plus'=>'Todo en el básico, además','Advanced (Recommended)'=>'Avanzado (Recomendado)','A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools.'=>'Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones del sitio en las herramientas de medición de velocidad de página.','This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners.'=>'Este preajuste de bajo riesgo introduce optimizaciones básicas de mejora de la velocidad de página y experiencia de usuario. Adecuado para principiantes entusiastas.','Mobile Cache'=>'Caché móvil','Everything in Essentials, Plus'=>'Todo lo de Essentials y además','A Domain Key is not required to use this preset. Only basic caching features are enabled.'=>'No es obligatoria una clave de dominio para este preajuste. Solo se activan características básicas de caché.','This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development.'=>'Este preajuste sin riesgos es apropiado para todas las webs. Es bueno para nuevos usuarios, webs sencillas o desarrollos orientados a caché.','Higher TTL'=>'TTL mayor','Default Cache'=>'Caché predeterminado','Essentials'=>'Básicos','LiteSpeed Cache Configuration Presets'=>'Preajustes de configuración de caché LiteSpeed','Standard Presets'=>'Preajustes estándar','Listed CSS files will be excluded from UCSS and saved to inline.'=>'Los archivos CSS listados se excluirán del CSS sin uso y guardados para que se incrusten.','UCSS File Excludes and Inline'=>'Excluir archivo del CSS sin uso e incrustar','UCSS Selector Allowlist'=>'Lista blanca del selector de CSS sin uso','Presets'=>'Preajustes','Partner Benefits Provided by'=>'Ventajas de colaboración ofrecidas por','LiteSpeed Logs'=>'Registros de LiteSpeed','Crawler Log'=>'Registros de rastreadores','Purge Log'=>'Purgar registro','Prevent writing log entries that include listed strings.'=>'Evita escribir entradas del registro que incluyan cadenas listadas.','View Site Before Cache'=>'Ver sitio sin caché','View Site Before Optimization'=>'Ver sitio sin optimizar','Debug Helpers'=>'Ayudas de depuración','Enable Viewport Images auto generation cron.'=>'Activar el cron de generación automática del viewport de imágenes.','This enables the page\'s initial screenful of imagery to be fully displayed without delay.'=>'Esto permite que la pantalla inicial de imágenes de la página se muestre completamente sin demora.','The Viewport Images service detects which images appear above the fold, and excludes them from lazy load.'=>'El servicio de viewport de imágenes detecta qué imágenes aparecen antes de hacer scroll y las excluye de la carga diferida.','When you use Lazy Load, it will delay the loading of all images on a page.'=>'Cuando usas la carga diferida, se retrasa la carga de todas las imágenes de la página.','Use %1$s to bypass remote image dimension check when %2$s is ON.'=>'Utiliza %1$s para saltarte la comprobación de dimensión en imágenes remotas cuando la %2$s esté ACTIVA.','VPI'=>'VPI','%s must be turned ON for this setting to work.'=>'%s debe estar activo para que este ajuste funcione.','Viewport Image'=>'Imagen de la vista','Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:'=>'Debido a que puede haber conflictos con LiteSpeed Cache, por favor, considera desactivar los siguientes plugins:','Mobile'=>'Móvil','Disable VPI'=>'Desactivar VPI','Disable Image Lazyload'=>'Desactivar la carga de imágenes diferida','Disable Cache'=>'Desactivar la caché','Debug String Excludes'=>'Exclusión de cadenas de depuración','Viewport Images Cron'=>'Cron de imágenes de la vista','Viewport Images'=>'Imágenes de la vista','Alias is in use by another QUIC.cloud account.'=>'El alias ya está en uso por otra cuenta de QUIC.cloud.','Unable to automatically add %1$s as a Domain Alias for main %2$s domain.'=>'No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal.','Unable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict.'=>'No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal, debido a un conflicto potencial con la CDN.','You cannot remove this DNS zone, because it is still in use. Please update the domain\'s nameservers, then try to delete this zone again, otherwise your site will become inaccessible.'=>'No puedes eliminar esta zona de DNS porque aún está en uso. Por favor, actualiza los servidores de nombers, luego tratar de borrar de nuevo esta zona, en caso contrario tu sitio será inaccesible.','The site is not a valid alias on QUIC.cloud.'=>'El sitio no tiene un alias válido en QUIC.cloud.','Please thoroughly test each JS file you add to ensure it functions as expected.'=>'Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera.','Please thoroughly test all items in %s to ensure they function as expected.'=>'Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera.','Use %1$s to bypass UCSS for the pages which page type is %2$s.'=>'Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s.','Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.'=>'Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL.','Filter %s available for UCSS per page type generation.'=>'Disponible el filtro %s para la generación de UCSS por tipo de página.','Guest Mode failed to test.'=>'Prueba fallida del modo de invitado.','Guest Mode passed testing.'=>'Prueba superada del modo de invitado.','Testing'=>'Probando','Guest Mode testing result'=>'Resultado de la prueba del modo de invitado','Not blocklisted'=>'No está en la lista negra','Learn more about when this is needed'=>'Aprende más sobre cuándo esto es necesario ','Cleaned all localized resource entries.'=>'Limpiadas todas las entradas de recursos localizados.','View .htaccess'=>'Ver el archivo ".htaccess"','You can use this code %1$s in %2$s to specify the htaccess file path.'=>'Puedes usar este código %1$s en %2$s para especificar la ruta al archivo ".htaccess".','PHP Constant %s is supported.'=>'Es compatible la contante %s de PHP.','Default path is'=>'La ruta predeterminada es','.htaccess Path'=>'Ruta del archivo ".htaccess"','Please read all warnings before enabling this option.'=>'Por favor, lee todas las advertencias antes de activar esta opción.','This will delete all generated unique CSS files'=>'Esto borrará todos los archivos CSS únicos generados','In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.'=>'Para evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s.','Use latest GitHub Dev/Master commit'=>'Utiliza el último commit Dev/Master de GitHub','Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.'=>'Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales.','Downgrade not recommended. May cause fatal error due to refactored code.'=>'No se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado.','Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.'=>'Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios.','Listed JS files or inline JS code will not be optimized by %s.'=>'Los archivos JS listados o el código JS integrado no serán optimizados por %s.','Listed URI will not generate UCSS.'=>'Las URI listadas no generarán UCSS.','The selector must exist in the CSS. Parent classes in the HTML will not work.'=>'El selector debe existir en el CSS. Las clases principales en HTML no funcionarán.','Wildcard %s supported.'=>'Compatibilidad con el comodín %s.','Useful for above-the-fold images causing CLS (a Core Web Vitals metric).'=>'Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals).','Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).'=>'Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de layout y mejorar CLS (una métrica de Core Web Vitals).','Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.'=>'Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración.','Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).'=>'Aplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals).','Delayed'=>'Retrasada','JS error can be found from the developer console of browser by right clicking and choosing Inspect.'=>'El error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar.','This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.'=>'Esta opción puede resultar en un error de JS o un problema de layout en las páginas del frontend con ciertos temas/plugins.','This will also add a preconnect to Google Fonts to establish a connection earlier.'=>'Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes.','Delay rendering off-screen HTML elements by its selector.'=>'Retraso al mostrar los elementos HTML fuera de la pantalla por su selector.','Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.'=>'Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas.','This option is bypassed due to %s option.'=>'Esta opción se omite debido a la opción %s.','Elements with attribute %s in HTML code will be excluded.'=>'Se excluirán los elementos con el atributo %s en el código HTML.','Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.'=>'Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante.','This option will automatically bypass %s option.'=>'Esta opción omitirá automáticamente la opción %s.','Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.'=>'UCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala.','Run %s Queue Manually'=>'Ejecutar manualmente la cola %s','This option is bypassed because %1$s option is %2$s.'=>'Esta opción se omite porque la opción %1$s es %2$s.','Automatic generation of unique CSS is in the background via a cron-based queue.'=>'La generación automática de CSS único está en segundo plano a través de una cola basada en cron.','This will drop the unused CSS on each page from the combined file.'=>'Esto eliminará el CSS no utilizado en cada página del archivo combinado.','HTML Settings'=>'Ajustes HTML','LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.'=>'Actualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración.','Listed IPs will be considered as Guest Mode visitors.'=>'Las IP listadas serán consideradas visitantes en modo invitado.','Listed User Agents will be considered as Guest Mode visitors.'=>'Los agentes de usuario listados serán considerados visitantes en modo invitado.','This option can help to correct the cache vary for certain advanced mobile or tablet visitors.'=>'Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas.','Guest Mode provides an always cacheable landing page for an automated guest\'s first time visit, and then attempts to update cache varies via AJAX.'=>'El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX.','Please make sure this IP is the correct one for visiting your site.'=>'Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio.','the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.'=>'la IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor.','You need to turn %s on and finish all WebP generation to get maximum result.'=>'Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado.','You need to turn %s on to get maximum result.'=>'Necesitas activar %s para obtener el máximo resultado.','This option enables maximum optimization for Guest Mode visitors.'=>'Esta opción permite la máxima optimización para los visitantes del modo de invitado.','More'=>'Más','Remaining Daily Quota'=>'Cuota diaria restante','Successfully Crawled'=>'Rastreado correctamente','Already Cached'=>'Ya en la caché','The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.'=>'El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio.','Optional when API token used.'=>'Opcional cuando se usa el token de la API.','Recommended to generate the token from Cloudflare API token template "WordPress".'=>'Recomendado para generar el token desde la plantilla "WordPress" del token de la API de Cloudflare.','Global API Key / API Token'=>'Clave/Token global de la API','Use external object cache functionality.'=>'Usa la funcionalidad de la caché de objetos externos.','Serve a separate cache copy for mobile visitors.'=>'Ofrece una copia de la caché separada para los visitantes móviles.','By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.'=>'Por defecto, las páginas "Mi cuenta", "Pago" y "Carrito" son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente.','Cleaned all Unique CSS files.'=>'Limpiados todos los archivos CSS únicos.','Add Missing Sizes'=>'Añadir tamaños que faltan','Optimize for Guests Only'=>'Optimizar solamente para invitados','Guest Mode JS Excludes'=>'Exclusiones JS del modo de invitado','CCSS Per URL'=>'CCSS por URL','HTML Lazy Load Selectors'=>'Selectores HTML de carga diferida','UCSS URI Excludes'=>'Exclusiones UCSS de la URI','UCSS Inline'=>'UCCS integrado','Guest Optimization'=>'Optimización para invitados','Guest Mode'=>'Modo de invitado','Guest Mode IPs'=>'IP del modo de invitado','Guest Mode User Agents'=>'Agentes de usuario del modo de invitado','Online node needs to be redetected.'=>'El nodo online tiene que volver a ser detectado.','The current server is under heavy load.'=>'El servidor actual está bajo una gran carga.','Please see %s for more details.'=>'Por favor, consulta %s para más detalles.','This setting will regenerate crawler list and clear the disabled list!'=>'¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!','%1$s %2$s files left in queue'=>'%1$s %2$s archivos restantes en la cola','Crawler disabled list is cleared! All crawlers are set to active! '=>'¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos!','Redetected node'=>'Nodo detectado nuevamente','No available Cloud Node after checked server load.'=>'No hay ningún nodo de la nube disponible después de comprobar la carga del servidor.','Localization Files'=>'Archivos de idiomas','Purged!'=>'¡Purgado!','Resources listed here will be copied and replaced with local URLs.'=>'Los recursos listados aquí se copiarán y reemplazarán con URL locales.','Use latest GitHub Master commit'=>'Usar el último commit maestro de GitHub','Use latest GitHub Dev commit'=>'Usar el último commit de desarrollo de GitHub','No valid sitemap parsed for crawler.'=>'No se ha analizado ningún mapa del sitio válido para el rastreador.','CSS Combine External and Inline'=>'Combinación de CSS externo e integrado','Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.'=>'Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.','Minify CSS files and inline CSS code.'=>'Minimiza archivos CSS y código CSS integrado.','Predefined list will also be combined w/ the above settings'=>'La lista predefinida también se combinará con los ajustes anteriores','Localization'=>'Localización','Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.'=>'Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.','Combine all local JS files into a single file.'=>'Combina todos los archivos JS locales en un único archivo.','Listed JS files or inline JS code will not be deferred or delayed.'=>'Los archivos JS listados o el código JS integrado no serán aplazados ni diferidos.','Click here to settings'=>'Haz clic aquí para los ajustes','JS Defer'=>'Diferir JS','LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.'=>'LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el layout de tu sitio es correcto y que no tienes errores de JS.','JS Combine External and Inline'=>'Combinación de JS externo e integrado','Dismiss'=>'Descartar','The latest data file is'=>'El último archivo de datos es','The list will be merged with the predefined nonces in your local data file.'=>'La lista se fusionará con los nonces predefinidos en tu archivo de datos local.','Combine CSS files and inline CSS code.'=>'Combina archivos CSS y código CSS integrado.','Minify JS files and inline JS codes.'=>'Minimiza archivos CSS y código CSS integrado.','This setting is overwritten by the Network setting'=>'Esta configuración se sobrescribe con la configuración de red','LQIP Excludes'=>'Excluye LQIP','These images will not generate LQIP.'=>'Estas imágenes no generarán LQIP.','Are you sure you want to reset all settings back to the default settings?'=>'¿Estás seguro de que deseas restablecer todas las configuraciones a la configuración predeterminada?','This option will remove all %s tags from HTML.'=>'Esta opción eliminará todas las etiquetas %s de HTML.','Are you sure you want to clear all cloud nodes?'=>'¿Estás seguro de que deseas borrar todos los nodos de la nube?','Remove Noscript Tags'=>'Eliminar las etiquetas Noscript','The site is not registered on QUIC.cloud.'=>'El sitio no está registrado en QUIC.cloud.','Click here to set.'=>'Haz clic aquí para configurarlo.','Localize Resources'=>'Recursos localizados','Setting Up Custom Headers'=>'Configurar cabeceras personalizadas','This will delete all localized resources'=>'Esto borrará todos los recursos localizados','Localized Resources'=>'Recursos localizados','Comments are supported. Start a line with a %s to turn it into a comment line.'=>'Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. ','HTTPS sources only.'=>'Solo orígenes HTTPS','Localize external resources.'=>'Localizar recursos externos.','Localization Settings'=>'Ajustes de localización','Use QUIC.cloud online service to generate unique CSS.'=>'Usa el servicio en línea QUIC.cloud para generar un CSS único.','Generate UCSS'=>'Generar UCSS','Unique CSS'=>'CSS único','Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches'=>'Vacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS, únicas de CSS y de LQIP','LiteSpeed Report'=>'Reporte de LiteSpeed','Image Thumbnail Group Sizes'=>'Tamaños de grupo de imágenes en miniatura','Ignore certain query strings when caching. (LSWS %s required)'=>'Ignorar ciertas cadenas de consulta al almacenar en caché. (Se requiere LSWS %s)','For URLs with wildcards, there may be a delay in initiating scheduled purge.'=>'En el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado.','By design, this option may serve stale content. Do not enable this option, if that is not OK with you.'=>'Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien.','Serve Stale'=>'Servir contenido rancio','This setting is overwritten by the primary site setting'=>'Esta ajuste es sobrescrito por los ajuste del sitio primario','One or more pulled images does not match with the notified image md5'=>'Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificado','Some optimized image file(s) has expired and was cleared.'=>'Una o más imágenes optimizadas han caducado y han sido borradas.','You have too many requested images, please try again in a few minutes.'=>'Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.','Pulled WebP image md5 does not match the notified WebP image md5.'=>'El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP.','Read LiteSpeed Documentation'=>'Leer la documentación de LiteSpeed','There is proceeding queue not pulled yet. Queue info: %s.'=>'La cola aún no ha sido recuperada. Información de la cola: %s.','Specify how long, in seconds, Gravatar files are cached.'=>'Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos Gravatar.','Cleared %1$s invalid images.'=>'Vaciar %1$s imágenes no validas.','LiteSpeed Cache General Settings'=>'Ajustes generales de LiteSpeed Cache','This will delete all cached Gravatar files'=>'Esto borrará todos los archivos Gravatar almacenados en caché','Prevent any debug log of listed pages.'=>'Evita cualquier registro de depuración de las páginas enumeradas.','Only log listed pages.'=>'Solo registra las páginas listadas.','Specify the maximum size of the log file.'=>'Especifica el tamaño máximo del archivo de registro.','To prevent filling up the disk, this setting should be OFF when everything is working.'=>'Para evitar llenar el disco, esta configuración debe estar APAGADA cuando todo funciona.','Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.'=>'Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.','Use latest WordPress release version'=>'Usar la última versión de WordPress','OR'=>'O','Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.'=>'Utiliza esta sección para cambiar la versión del plugin. Para probar un commit de GitHub, introduce la URL del commit en el campo de abajo.','Reset Settings'=>'Restablecer ajustes','LiteSpeed Cache Toolbox'=>'Herramientas de LiteSpeed Cache','Beta Test'=>'Pruebas beta','Log View'=>'Vista de registros','Debug Settings'=>'Ajustes de depuración','Turn ON to control heartbeat in backend editor.'=>'Actívalo para controlar heartbeat en el editor.','Turn ON to control heartbeat on backend.'=>'Actívalo para controlar heartbeat en el escritorio.','Set to %1$s to forbid heartbeat on %2$s.'=>'Establécelo en %1$s para bloquear heartbeat en %2$s.','WordPress valid interval is %s seconds.'=>'El intervalo válido de WordPress es %s segundos.','Specify the %s heartbeat interval in seconds.'=>'Especifica el intervalo de heartbeat para %s en segundos.','Turn ON to control heartbeat on frontend.'=>'Enciéndelo para controlar heartbeat en el frontend.','Disable WordPress interval heartbeat to reduce server load.'=>'Desactiva el intervalo del heartbeat de WordPress para reducir la carga del servidor.','Heartbeat Control'=>'Control de Heartbeat','provide more information here to assist the LiteSpeed team with debugging.'=>'proporcione más información aquí para ayudar al equipo de LiteSpeed con la depuración.','Optional'=>'Opcional','Generate Link for Current User'=>'Generar enlace para el usuario actual','Passwordless Link'=>'Enlace sin contraseña','System Information'=>'Información del sistema','Go to plugins list'=>'Ir a la lista de plugins','Install DoLogin Security'=>'Instalar DoLogin Security','Check my public IP from'=>'Comprueba mi IP pública desde','Your server IP'=>'La IP de tu servidor','Enter this site\'s IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.'=>'Ingrese la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a IP en lugar del nombre de dominio. Esto elimina la sobrecarga de las búsquedas de DNS y CDN.','This will enable crawler cron.'=>'Esto habilitará el cron del rastreador.','Crawler General Settings'=>'Ajustes generales del rastreador','Remove from Blocklist'=>'Eliminar de la lista negra','Empty blocklist'=>'Vaciar la lista negra','Are you sure to delete all existing blocklist items?'=>'¿Seguro que quieres borrar todos los elementos de la lista negra?','Blocklisted due to not cacheable'=>'En la lista negra debido a que no se puede cachear','Add to Blocklist'=>'Añadir a la lista negra','Operation'=>'Operación','Sitemap Total'=>'Sitemap Total','Sitemap List'=>'Lista de Sitemap','Refresh Crawler Map'=>'Actualizar mapa de rastreadores','Clean Crawler Map'=>'Vaciar el mapa del rastreador','Blocklist'=>'Lista negra','Map'=>'Mapa','Summary'=>'Sumario','Cache Miss'=>'Fallo de caché','Cache Hit'=>'Acierto de caché','Waiting to be Crawled'=>'Esperando a ser rastreado','Blocklisted'=>'En lista negra','Miss'=>'Perder','Hit'=>'Acierto','Waiting'=>'En espera','Running'=>'En curso','Use %1$s in %2$s to indicate this cookie has not been set.'=>'Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida.','Add new cookie to simulate'=>'Añadir una cookie nueva para simular','Remove cookie simulation'=>'Eliminar la simulación de la cookie','Htaccess rule is: %s'=>'La regla de Htaccess es: %s','More settings available under %s menu'=>'Más ajustes disponibles en el menú %s','The amount of time, in seconds, that files will be stored in browser cache before expiring.'=>'El tiempo, en segundos, durante el cual los archivos serán almacenados en la caché del navegador antes de expirar.','OpenLiteSpeed users please check this'=>'Marca esto si eres un usuario de OpenLiteSpeed','Browser Cache Settings'=>'Ajustes de la caché del navegador','Paths containing these strings will be forced to public cached regardless of no-cacheable settings.'=>'Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.','With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.'=>'Con el CDN de QUIC.cloud habilitado, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.','An optional second parameter may be used to specify cache control. Use a space to separate'=>'Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar','The above nonces will be converted to ESI automatically.'=>'Los noces anteriores se convertirán en ESI automáticamente.','Browser'=>'Navegador','Object'=>'Objeto','Default port for %1$s is %2$s.'=>'Puerto por defecto de %1$s es %2$s.','Object Cache Settings'=>'Ajustes de la caché de objetos','Specify an HTTP status code and the number of seconds to cache that page, separated by a space.'=>'Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.','Specify how long, in seconds, the front page is cached.'=>'Especifica cuánto tiempo, en segundos, se almacena la página de inicio.','TTL'=>'TTL','If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.'=>'Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.','Swap'=>'Intercambiar','Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.'=>'Establece esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.','Avatar list in queue waiting for update'=>'La lista de avatares está en la cola esperando ser actualizada','Refresh Gravatar cache by cron.'=>'Refrescar la caché de Gravatar por cron.','Accelerates the speed by caching Gravatar (Globally Recognized Avatars).'=>'Acelera la velocidad al cachear Gravatar (Avatares reconocidos mundialmente).','Store Gravatar locally.'=>'Almacena Gravatar localmente.','Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.'=>'Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.','LQIP requests will not be sent for images where both width and height are smaller than these dimensions.'=>'Las solicitudes LQIP no se enviarán para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.','pixels'=>'píxeles','Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.'=>'Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.','Specify the quality when generating LQIP.'=>'Especifica la calidad al generar el LQIP.','Keep this off to use plain color placeholders.'=>'Mantén esto apagado para usar marcadores de posición de color.','Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.'=>'Usa el servicio generador de QUIC.cloud LQIP (Low Quality Image Placeholder) para obtener vistas previas de la imagen mientras se carga.','Specify the responsive placeholder SVG color.'=>'Especifica el color del marcador de posición SVG adaptable.','Variables %s will be replaced with the configured background color.'=>'Las variables %s serán reemplazadas con el color de fondo configurado.','Variables %s will be replaced with the corresponding image properties.'=>'Las variables %s serán reemplazadas con las propiedades de imagen correspondientes.','It will be converted to a base64 SVG placeholder on-the-fly.'=>'Se convertirá en un marcador de posición SVG base64 sobre la marcha.','Specify an SVG to be used as a placeholder when generating locally.'=>'Especifica un SVG que se utilizará como marcador de posición al generar localmente.','Prevent any lazy load of listed pages.'=>'Evita cualquier carga diferida de las páginas de la lista.','Iframes having these parent class names will not be lazy loaded.'=>'Los iframes con estos nombres de clase padres no se cargarán de forma diferida.','Iframes containing these class names will not be lazy loaded.'=>'Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.','Images having these parent class names will not be lazy loaded.'=>'Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.','LiteSpeed Cache Page Optimization'=>'Página de optimización de LiteSpeed Cache','Media Excludes'=>'Exclusiones de medios','CSS Settings'=>'Ajustes de CSS','%s is recommended.'=>'%s es recomendado.','Deferred'=>'Diferido','Default'=>'Predeterminado','This can improve the page loading speed.'=>'Esto puede mejorar la velocidad de carga de la página.','Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.'=>'Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.','New developer version %s is available now.'=>'La nueva versión de desarrollo %s está disponible.','New Developer Version Available!'=>'¡Nueva versión para desarrolladores disponible!','Dismiss this notice'=>'Descartar este aviso','Tweet this'=>'Tuitea esto','Tweet preview'=>'Vista previa del Tuit','Learn more'=>'Saber más','You just unlocked a promotion from QUIC.cloud!'=>'¡Acabas de desbloquear una promoción de QUIC.cloud!','The image compression quality setting of WordPress out of 100.'=>'El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.','Image Optimization Settings'=>'Ajustes de optimización de imágenes','Are you sure to destroy all optimized images?'=>'¿Estás seguro de destruir todas las imágenes optimizadas?','Use Optimized Files'=>'Usar archivos optimizados','Switch back to using optimized images on your site'=>'Volver a utilizar imágenes optimizadas en tu web','Use Original Files'=>'Usar archivos originales','Use original images (unoptimized) on your site'=>'Usar imágenes originales (no optimizadas) en tu web','You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.'=>'Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles.','Optimization Tools'=>'Heramientas de optimización','Rescan New Thumbnails'=>'Re-escanear nuevas miniaturas','Congratulations, all gathered!'=>'¡Felicidades, todos reunidos!','What is an image group?'=>'¿Qué es un grupo de imágenes?','Delete all backups of the original images'=>'Borrar todas las copias de seguridad de las imágenes originales','Calculate Backups Disk Space'=>'Calcular espacio en el disco para copias de seguridad','Optimization Status'=>'Estado de optimización','Current limit is'=>'El límite actual es:','To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited.'=>'Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de grupos de imágenes permitidas en una sola petición es limitada.','You can request a maximum of %s images at once.'=>'Solo puedes solicitar un máximo de %s imágenes a la vez.','Optimize images with our QUIC.cloud server'=>'Optimiza las imágenes con nuestro servidor QUIC.cloud.','Revisions newer than this many days will be kept when cleaning revisions.'=>'Las revisiones más recientes se guardarán cuando se limpien las revisiones.','Day(s)'=>'Día(s)','Specify the number of most recent revisions to keep when cleaning revisions.'=>'Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.','LiteSpeed Cache Database Optimization'=>'Optimización de la base de datos de LiteSpeed Cache','DB Optimization Settings'=>'Ajustes de optimización de BD','Option Name'=>'Nombre de la opción','Database Summary'=>'Resumen de la base de datos','We are good. No table uses MyISAM engine.'=>'Estamos bien. Ninguna tabla usa el motor MyISAM.','Convert to InnoDB'=>'Convertir a InnoDB','Tool'=>'Herramienta','Engine'=>'Motor','Table'=>'Tabla','Database Table Engine Converter'=>'Conversor de motor de tabla de base de datos','Clean revisions older than %1$s day(s), excluding %2$s latest revisions'=>'Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones','Currently active crawler'=>'Rastreador activo','Crawler(s)'=>'Rastreador(es)','Crawler Status'=>'Estado del rastreador','Force cron'=>'Forzar cron','Requests in queue'=>'Peticiones en cola','Private Cache'=>'Caché privada','Public Cache'=>'Caché publica ','Cache Status'=>'Estado de la caché','Last Pull'=>'Última lectura','Image Optimization Summary'=>'Resumen de la optimización de imágenes','Refresh page score'=>'Actualizar la puntuación de la página','Are you sure you want to redetect the closest cloud server for this service?'=>'¿Estás seguro de que deseas volver a detectar el servidor en la nube más cercano para este servicio?','Refresh page load time'=>'Actualizar el tiempo de carga de la página','Go to QUIC.cloud dashboard'=>'Ir al escritorio de QUIC.cloud','Low Quality Image Placeholder'=>'Marcador de imagen de baja calidad','Sync data from Cloud'=>'Sincronizar los datos de la nube','QUIC.cloud Service Usage Statistics'=>'Estadísticas de uso del servicio QUIC.cloud','Total images optimized in this month'=>'Total de imágenes optimizadas en este mes','Total Usage'=>'Uso total','Pay as You Go Usage Statistics'=>'Estadísticas pago por uso','PAYG Balance'=>'Balance de pago','Pay as You Go'=>'Pago por uso','Usage'=>'Uso','Fast Queue Usage'=>'Uso de la cola rápida','CDN Bandwidth'=>'Ancho de banda CDN','LiteSpeed Cache Dashboard'=>'Escritorio de LiteSpeed Cache','Network Dashboard'=>'Escritorio de la red','No cloud services currently in use'=>'No hay servicios cloud en uso','Click to clear all nodes for further redetection.'=>'Haga clic para borrar todos los nodos para una mayor redetección.','Current Cloud Nodes in Service'=>'Nodos cloud actual en servicio','Link to QUIC.cloud'=>'Enlace a QUIC.cloud','General Settings'=>'Ajustes generales','Specify which HTML element attributes will be replaced with CDN Mapping.'=>'Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.','Add new CDN URL'=>'Añade una nueva url de la CDN','Remove CDN URL'=>'Elimina la url de la CDN','To enable the following functionality, turn ON Cloudflare API in CDN Settings.'=>'Para habilitar la siguiente funcionalidad, activa la API de Cloudflare en la configuración del CDN.','QUIC.cloud'=>'QUIC.cloud','WooCommerce Settings'=>'Ajustes de WooCommerce','Current Online Server IPs'=>'IPs del servidor en línea','Before generating key, please verify all IPs on this list are allowlisted'=>'Antes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blanca','For online services to work correctly, you must allowlist all %s server IPs.'=>'Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor.','LQIP Cache'=>'Caché de LQIP','Options saved.'=>'Opciones guardadas.','Removed backups successfully.'=>'Se han eliminado las copias de seguridad correctamente.','Calculated backups successfully.'=>'Copias de seguridad calculadas correctamente.','Rescanned %d images successfully.'=>'%d imágenes reexploradas correctamente.','Rescanned successfully.'=>'Reexploración correcta.','Destroy all optimization data successfully.'=>'Todos los datos de optimización destruidos correctamente.','Cleaned up unfinished data successfully.'=>'Datos incompletos limpiados correctamente.','Pull Cron is running'=>'Pull Cron se está ejecutando','No valid image found by Cloud server in the current request.'=>'El servidor cloud no ha encontrado ninguna imagen válida por en la petición actual.','No valid image found in the current request.'=>'No se ha encontrado ninguna imagen válida en la petición actual.','Pushed %1$s to Cloud server, accepted %2$s.'=>'%1$s enviado al servidor cloud, %2$s aceptado.','Revisions Max Age'=>'Edad máxima de las revisiones','Revisions Max Number'=>'Número máximo de revisiones','Debug URI Excludes'=>'URIs excluidas de la depuración','Debug URI Includes'=>'URIs incluidas en la depuración','HTML Attribute To Replace'=>'Atributo HTML a reemplazar','Use CDN Mapping'=>'Usar mapeo de CDN','Editor Heartbeat TTL'=>'TTL de heartbeat del editor','Editor Heartbeat'=>'Heartbeat del editor','Backend Heartbeat TTL'=>'TTL de heartbeat del backend','Backend Heartbeat Control'=>'Control de heartbeat del backend','Frontend Heartbeat TTL'=>'TTL de heartbeat del frontend','Frontend Heartbeat Control'=>'Control de heartbeat del frontend','Backend .htaccess Path'=>'Ruta del .htaccess del backend','Frontend .htaccess Path'=>'Ruta del .htaccess del frontend','ESI Nonces'=>'Nonces de ESI','WordPress Image Quality Control'=>'Control de la calidad de imagen de WordPress','Auto Request Cron'=>'Cron de petición automática','Generate LQIP In Background'=>'Generar LQIP en segundo plano','LQIP Minimum Dimensions'=>'Dimensiones mínimas de LQIP','LQIP Quality'=>'Calidad LQIP','LQIP Cloud Generator'=>'Generador de LQIP en la nube','Responsive Placeholder SVG'=>'Marcador de posición SVG adaptable','Responsive Placeholder Color'=>'Color del marcador de posición adaptable','Basic Image Placeholder'=>'Marcador de posición de imagen básica','Lazy Load URI Excludes'=>'Exclusión de URIs de carga diferida','Lazy Load Iframe Parent Class Name Excludes'=>'Exclusiones de carga diferida de clases padre de iframes','Lazy Load Iframe Class Name Excludes'=>'Exclusiones de carga diferida de clases de iframes','Lazy Load Image Parent Class Name Excludes'=>'Exclusiones de carga diferida de clases padres','Gravatar Cache TTL'=>'TTL de la caché de Gravatar','Gravatar Cache Cron'=>'Cron de la caché de Gravatar','Gravatar Cache'=>'Caché de Gravatar','DNS Prefetch Control'=>'Control del prefetch DNS','Font Display Optimization'=>'Optimización de visualización de fuentes','Force Public Cache URIs'=>'Forzar URIs de caché pública','Notifications'=>'Notificaciones','Default HTTP Status Code Page TTL'=>'TTL del código de estado de página predeterminado','Default REST TTL'=>'TTLpredeterminado de REST','Enable Cache'=>'Activa cache','Server IP'=>'IP del servidor','Images not requested'=>'Imágenes no solicitadas','Sync credit allowance with Cloud Server successfully.'=>'Asignación de créditos correctamente sincronizada con el servidor cloud.','Failed to communicate with QUIC.cloud server'=>'Fallo de comunicación con el servidor QUIC.cloud','Good news from QUIC.cloud server'=>'Buenas noticias del servidor QUIC.cloud','Message from QUIC.cloud server'=>'Mensaje del servidor QUIC.cloud','Please try after %1$s for service %2$s.'=>'Por favor, inténtalo después de %1$s para el servicio %2$s.','No available Cloud Node.'=>'No hay ningún nodo de cloud disponible.','Cloud Error'=>'Error de cloud','The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.'=>'La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.','Restore from backup'=>'Restaurar desde una copia de seguridad','No backup of unoptimized WebP file exists.'=>'No existe una copia de seguridad del archivo WebP no optimizado.','WebP file reduced by %1$s (%2$s)'=>'Archivo WebP reducido en %1$s (%2$s)','Currently using original (unoptimized) version of WebP file.'=>'Actualmente usando la versión original (no optimizada) del archivo WebP.','Currently using optimized version of WebP file.'=>'Actualmente usando la versión optimizada del archivo WebP.','Orig'=>'Orig','(no savings)'=>'(sin ahorro)','Orig %s'=>'Orig %s','Congratulation! Your file was already optimized'=>'¡Felicidades! Tu archivo ya ha sido optimizado','No backup of original file exists.'=>'No existe una copia de seguridad del archivo original.','Using optimized version of file. '=>'Usando la versión optimizada del archivo. ','Orig saved %s'=>'Ahorrados %s del original','Original file reduced by %1$s (%2$s)'=>'Archivo original reducido en %1$s (%2$s)','Click to switch to optimized version.'=>'Haz clic para cambiar a la versión optimizada.','Currently using original (unoptimized) version of file.'=>'Actualmente usando la versión original (no optimizada) del archivo.','(non-optm)'=>'(no-optm)','Click to switch to original (unoptimized) version.'=>'Haz clic para cambiar a la versión original (no optimizada).','Currently using optimized version of file.'=>'Actualmente usando la versión optimizada del archivo.','(optm)'=>'(optm)','LQIP image preview for size %s'=>'Vista previa de la imagen LQIP para el tamaño %s','LQIP'=>'LQIP','Previously existed in blocklist'=>'Anteriormente existía en la lista negra','Manually added to blocklist'=>'Añadido manualmente a la lista negra','Mobile Agent Rules'=>'Reglas de agente móvil','Sitemap created successfully: %d items'=>'Mapa del sitio creado con éxito: %d elementos','Sitemap cleaned successfully'=>'El mapa del sitio se limpió con éxito','Invalid IP'=>'IP no válida','Value range'=>'Rango de valores','Smaller than'=>'Mas pequeño que','Larger than'=>'Mayor que','Zero, or'=>'Cero, o','Maximum value'=>'Valor máximo','Minimum value'=>'Valor mínimo','Path must end with %s'=>'La ruta debe terminar en %s','Invalid rewrite rule'=>'Regla de reescritura no válida','currently set to %s'=>'actualmente establecido en %s','This setting is overwritten by the PHP constant %s'=>'Este ajuste es sobrescrita por la constante %s de PHP','Toolbox'=>'Herramientas','Database'=>'Base de datos','Page Optimization'=>'Optimización de página','Dashboard'=>'Escritorio','Converted to InnoDB successfully.'=>'Convertido a InnoDB exitosamente.','Cleaned all Gravatar files.'=>'Vaciados todos los archivos de Gravatar.','Cleaned all LQIP files.'=>'Vaciados todos los archivos LQIP.','Unknown error'=>'Error desconocido','Your domain has been forbidden from using our services due to a previous policy violation.'=>'Se le ha prohibido a tu dominio usar nuestros servicios debido a una violación anterior de la política.','The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: '=>'La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores. Código de respuesta:','The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.'=>'La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores.','The callback validation to your domain failed due to hash mismatch.'=>'La validación de la llamada a tu dominio falló debido a la falta de coincidencia.','Your application is waiting for approval.'=>'Tu solicitud está a la espera de aprobación.','Previous request too recent. Please try again after %s.'=>'La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.','Previous request too recent. Please try again later.'=>'La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.','Crawler disabled by the server admin.'=>'Rastreador desactivado por el administrador del servidor.','Could not find %1$s in %2$s.'=>'No he podido encontrar %1$s en %2$s.','Credits are not enough to proceed the current request.'=>'Los créditos no son suficientes para proceder con la solicitud actual.','The domain key is not correct. Please try to sync your domain key again.'=>'La clave de dominio no es correcta. Por favor, intenta sincronizar tu clave de dominio nuevamente.','There is proceeding queue not pulled yet.'=>'Hay una cola de procedimiento que no se ha retirado todavía.','Not enough parameters. Please check if the domain key is set correctly'=>'No hay suficientes parámetros. Compruebe si la clave de dominio está establecida correctamente','The image list is empty.'=>'La lista de imágenes está vacía.','LiteSpeed Crawler Cron'=>'Cron del rastreador de LiteSpeed','Every Minute'=>'Cada minuto','Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.'=>'Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.','To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.'=>'Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.','Please do NOT share the above passwordless link with anyone.'=>'Por favor, NO compartas el enlace de acceso sin contraseña de arriba con nadie.','To generate a passwordless link for LiteSpeed Support Team access, you must install %s.'=>'Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.','Install'=>'Instalar','These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.'=>'Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.','PageSpeed Score'=>'Puntuación de PageSpeed','Improved by'=>'Mejorado por','After'=>'Después','Before'=>'Antes','Page Load Time'=>'Tiempo de carga de la página','To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.'=>'Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.','Preserve EXIF/XMP data'=>'Conservar los datos EXIF/XMP','Try GitHub Version'=>'Probar versión de GitHub','If you turn any of the above settings OFF, please remove the related file types from the %s box.'=>'Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.','Both full and partial strings can be used.'=>'Se pueden usa cadenas parciales y completas.','Images containing these class names will not be lazy loaded.'=>'Las imágenes que contengan estos nombres de clases no tendrán carga diferida.','Lazy Load Image Class Name Excludes'=>'Exclusión de nombres de clases para carga diferida de imágenes','For example, %1$s defines a TTL of %2$s seconds for %3$s.'=>'Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s.','To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.'=>'Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.','Maybe Later'=>'Puede que más tarde','Turn On Auto Upgrade'=>'Activar la actualización automática','Upgrade'=>'Actualizar','New release %s is available now.'=>'La nueva versión %s está disponible ahora.','New Version Available!'=>'¡Nueva versión disponible!','Sure I\'d love to review!'=>'¡Por supuesto, me encantará valorarlo!','Thank You for Using the LiteSpeed Cache Plugin!'=>'¡Gracias por usar el plugin de caché LiteSpeed!','Upgraded successfully.'=>'Actualizado con éxito.','Failed to upgrade.'=>'Fallo al actualizar.','Changed setting successfully.'=>'Ajuste cambiado con éxito.','ESI sample for developers'=>'Muestra de ESI para desarrolaldores','Replace %1$s with %2$s.'=>'Reemplaza %1$s con %2$s.','You can turn shortcodes into ESI blocks.'=>'Puedes convertir shortcodes en bloques ESI.','WpW: Private Cache vs. Public Cache'=>'WpW: Caché privada o caché pública','Append query string %s to the resources to bypass this action.'=>'Añade la cadena de consulta %s a los recursos para evitar esta acción.','Google reCAPTCHA will be bypassed automatically.'=>'Google reCAPTCHA se omitirá automáticamente.','To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.'=>'Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.','Cookie Values'=>'Valores de la cookie','Cookie Name'=>'Nombre de la cookie','Cookie Simulation'=>'Simulación de cookie','Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.'=>'Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente las Google Fonts dejando el resto del CSS intacto.','Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.'=>'Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.','Automatically Upgrade'=>'Actualizar automáticamente','Your IP'=>'Tu IP','Reset successfully.'=>'Restablecimiento realizado con éxito','This will reset all settings to default settings.'=>'Esto restablecerá todos los ajustes a su valores predeterminados.','Reset All Settings'=>'Restablecer todos los ajustes','Separate critical CSS files will be generated for paths containing these strings.'=>'Separa archivos CSS críticos al generar las rutas que contengan estas cadenas.','Separate CCSS Cache URIs'=>'Distintas URIs de caché CCSS','For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.'=>'Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.','List post types where each item of that type should have its own CCSS generated.'=>'Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.','Separate CCSS Cache Post Types'=>'Tipos de contenido de caché de CCSS distintos','Size list in queue waiting for cron'=>'Tamaño de la lista en la cola de espera del cron','If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.'=>'Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.','Automatically generate LQIP in the background via a cron-based queue.'=>'Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.','This will generate the placeholder with same dimensions as the image if it has the width and height attributes.'=>'Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.','Responsive image placeholders can help to reduce layout reshuffle when images are loaded.'=>'Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.','Responsive Placeholder'=>'Marcador de posición adaptable','This will delete all generated image LQIP placeholder files'=>'Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP','Please enable LiteSpeed Cache in the plugin settings.'=>'Por favor, activa LiteSpeed Cache en los ajustes del plugin.','Please enable the LSCache Module at the server level, or ask your hosting provider.'=>'Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.','Failed to request via WordPress'=>'Fallo en la solicitud desde WordPress','High-performance page caching and site optimization from LiteSpeed'=>'Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed','Reset the optimized data successfully.'=>'Datos de optimización restablecidos correctamente.','Update %s now'=>'Actualizar %s','View %1$s version %2$s details'=>'Ver detalles de la versión %2$s de %1$s','<a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.'=>'<a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.','Install %s'=>'Instalar %s','LSCache caching functions on this page are currently unavailable!'=>'¡Las funciones caché de LSCache de está página no están disponibles!','%1$s plugin version %2$s required for this action.'=>'Para esta acción se necesita la versión %2$s del plugin %1$s.','We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.'=>'Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.','Automatically remove the original image backups after fetching optimized images.'=>'Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.','Remove Original Backups'=>'Eliminar copias de seguridad del orginal','Automatically request optimization via cron job.'=>'Solicitar automáticamente la optimización mediante un trabajo cron.','A backup of each image is saved before it is optimized.'=>'Se guarda una copia de seguridad de cada imagen antes de optimizarla.','Switched images successfully.'=>'Cambió las imágenes con éxito.','This can improve quality but may result in larger images than lossy compression will.'=>'Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.','Optimize images using lossless compression.'=>'Optimizar imágenes usando compresión sin pérdida.','Optimize Losslessly'=>'Optimizar sin pérdida','Optimize images and save backups of the originals in the same folder.'=>'Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.','Optimize Original Images'=>'Optimizar imágenes originales','When this option is turned %s, it will also load Google Fonts asynchronously.'=>'Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.','Cleaned all Critical CSS files.'=>'Limpiados todos los archivos CSS críticos.','This will inline the asynchronous CSS library to avoid render blocking.'=>'Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.','Inline CSS Async Lib'=>'Biblioteca de CSS integrado asíncrono','Run Queue Manually'=>'Ejecutar cola manualmente','URL list in %s queue waiting for cron'=>'Lista de URL en cola %s esperando el cron','Last requested cost'=>'Último coste solicitado','Last generated'=>'Último generado','If set to %s this is done in the foreground, which may slow down page load.'=>'Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.','Automatic generation of critical CSS is in the background via a cron-based queue.'=>'Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.','Optimize CSS delivery.'=>'Optimiza la entrega de CSS.','This will delete all generated critical CSS files'=>'Esto borrará todos los archivos generados de CSS crítico','Critical CSS'=>'CSS crítico','This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.'=>'Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché.','Disabling this may cause WordPress tasks triggered by AJAX to stop working.'=>'Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.','right now'=>'ahora mismo','just now'=>'ahora mismo','Saved'=>'Guardado','Last ran'=>'Última ejecución','You will be unable to Revert Optimization once the backups are deleted!'=>'¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!','This is irreversible.'=>'Esto es irreversible.','Remove Original Image Backups'=>'Eliminar copias de seguridad de las imágenes originales','Are you sure you want to remove all image backups?'=>'¿Estás seguro de que deseas eliminar todas las copias de seguridad de imágenes?','Total'=>'Total','Files'=>'Archivos','Last calculated'=>'Último cálculo','Calculate Original Image Storage'=>'Calcular almacenamiento original de imágenes','Storage Optimization'=>'Optimización de almacenamiento.','Use the format %1$s or %2$s (element is optional).'=>'Usa el formato %1$s o %2$s (el elemento es opcional).','Only attributes listed here will be replaced.'=>'Solo los atributos aquí listados serán reemplazados.','Only files within these directories will be pointed to the CDN.'=>'Solo los archivos en estos directorios apuntarán a la CDN.','Included Directories'=>'Directorios incluidos','A Purge All will be executed when WordPress runs these hooks.'=>'Un vaciado completo se iniciará cuando WordPress ejecute estos hooks.','Purge All Hooks'=>'Vaciar todos los hooks','Purged all caches successfully.'=>'Vaciado de todas las cachés correctamente.','LSCache'=>'LSCache','Forced cacheable'=>'Forzar cacheables','Paths containing these strings will be cached regardless of no-cacheable settings.'=>'Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.','Force Cache URIs'=>'Forzar URLs en caché','Exclude Settings'=>'Ajustes de exclusión','This will disable LSCache and all optimization features for debug purpose.'=>'Esto desactivará LSCache y todas las características de optimización con propósitos de depuración.','Disable All Features'=>'Desactivar todas las características','Opcode Cache'=>'Caché opcode','CSS/JS Cache'=>'Caché CSS/JS','Remove all previous unfinished image optimization requests.'=>'Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.','Clean Up Unfinished Data'=>'Limpiar datos no finalizados','Join Us on Slack'=>'Únete a nuestro Slack','Join the %s community.'=>'Únete a la comunidad %s.','Want to connect with other LiteSpeed users?'=>'¿Quieres conectar con otros usuarios de LiteSpeed?','Your API key / token is used to access %s APIs.'=>'Tu clave de la API/token se usa para acceder a las API de %s.','Your Email address on %s.'=>'Tu dirección de email en %s.','Use %s API functionality.'=>'Usar la funcionalidad de la API %s.','To randomize CDN hostname, define multiple hostnames for the same resources.'=>'Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.','Join LiteSpeed Slack community'=>'Únete a la comunidad de Slack de LiteSpeed','Visit LSCWP support forum'=>'Visita el foro de soporte de LSCWP','Images notified to pull'=>'Imágenes notificadas para descargar','What is a group?'=>'¿Qué es un grupo?','%s image'=>'%s imagen','%s group'=>'%s grupo','%s images'=>'%s imágenes','%s groups'=>'%s grupos','Guest'=>'Invitado','To crawl the site as a logged-in user, enter the user ids to be simulated.'=>'Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.','Role Simulation'=>'Simulación de rol','running'=>'ejecutando','Size'=>'Tamaño','Ended reason'=>'Razón de finalización','Last interval'=>'Último intervalo','Current crawler started at'=>'El rastreador actual comenzó a las','Run time for previous crawler'=>'Hora de ejecución para el rastreador anterior','%d seconds'=>'%d segundos','Last complete run time for all crawlers'=>'Hora de la última ejecución completa para todos los rastreadores','Current sitemap crawl started at'=>'El rastreo del mapa del sitio actual comenzó a las','Save transients in database when %1$s is %2$s.'=>'Guarda datos transitorios en la base de datos cuando %1$s es %2$s.','Store Transients'=>'Almacenar datos transitorios','If %1$s is %2$s, then %3$s must be populated!'=>'¡Si %1$s es %2$s entonces debe completarse %3$s!','NOTE'=>'NOTA','Server variable(s) %s available to override this setting.'=>'Variable(s) del servidor %s disponible para omitir este ajuste.','API'=>'API','Imported setting file %s successfully.'=>'Importado con éxito el archivo de ajustes %s.','Import failed due to file error.'=>'Importación fallida debido a un error en el archivo.','How to Fix Problems Caused by CSS/JS Optimization.'=>'Cómo solucionar problemas causados por la optimización CSS/JS.','This will generate extra requests to the server, which will increase server load.'=>'Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.','When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.'=>'Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.','Instant Click'=>'Clic instantáneo','Reset the entire opcode cache'=>'Reestablecer toda la caché opcode','This will import settings from a file and override all current LiteSpeed Cache settings.'=>'Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.','Last imported'=>'Última importación','Import'=>'Importar','Import Settings'=>'Ajustes de importación','This will export all current LiteSpeed Cache settings and save them as a file.'=>'Esto exportará todas las configuraciones actuales de LiteSpeed Cache y las guardará como un archivo.','Last exported'=>'Última exportación','Export'=>'Exportar','Export Settings'=>'Ajustes de exportación','Import / Export'=>'Importar / Exportar','Use keep-alive connections to speed up cache operations.'=>'Utilizar conexiones keep-alive para acelerar operaciones de la caché.','Database to be used'=>'Base de datos a usar','Redis Database ID'=>'ID de base de datos Redis','Specify the password used when connecting.'=>'Especifica la contraseña utilizada al conectar.','Password'=>'Contraseña','Only available when %s is installed.'=>'Solo disponible cuando está instalado %s.','Username'=>'Nombre de usuario','Your %s Hostname or IP address.'=>'El hostname o dirección IP de tu %s.','Method'=>'Método','Purge all object caches successfully.'=>'Vació de todas las cachés de objetos correctamente.','Object cache is not enabled.'=>'La caché de objetos no está activada.','Improve wp-admin speed through caching. (May encounter expired data)'=>'Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)','Cache WP-Admin'=>'Caché de WP-Admin','Persistent Connection'=>'Conexión persistente','Do Not Cache Groups'=>'Grupos a no cachear','Groups cached at the network level.'=>'Grupos cacheados a nivel de red.','Global Groups'=>'Grupos globales','Connection Test'=>'Prueba de conexión','%s Extension'=>'Extensión %s','Status'=>'Estado','Default TTL for cached objects.'=>'TTL por defecto para objetos cacheados.','Default Object Lifetime'=>'Tiempo de vida por defecto del objeto','Port'=>'Puerto','Host'=>'Host','Object Cache'=>'Caché de objetos','Failed'=>'Fallido','Passed'=>'Exitoso','Not Available'=>'No disponible','Purge all the object caches'=>'Vaciar todas las cachés de objetos','Failed to communicate with Cloudflare'=>'Fallo al comunicar con Cloudflare','Communicated with Cloudflare successfully.'=>'Comunicado con éxito con Cloudflare.','No available Cloudflare zone'=>'No hay disponible una zona Cloudflare','Notified Cloudflare to purge all successfully.'=>'Avisado a Cloudflare el vaciado completo con éxito.','Cloudflare API is set to off.'=>'La API de Cloudflare está configurada en off.','Notified Cloudflare to set development mode to %s successfully.'=>'Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.','Once saved, it will be matched with the current list and completed automatically.'=>'Una vez guardado, coincidirá con la lista actual y se completará automáticamente.','You can just type part of the domain.'=>'Puedes simplemente teclear parte de dominio.','Domain'=>'Dominio','Cloudflare API'=>'API de Cloudflare','Purge Everything'=>'Vaciar todo','Cloudflare Cache'=>'Caché de Cloudflare','Development Mode will be turned off automatically after three hours.'=>'El modo de desarrollo se desactivará automáticamente después de tres horas.','Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.'=>'Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.','Development mode will be automatically turned off in %s.'=>'El modo de desarrollo se desactivará automáticamente en %s.','Current status is %s.'=>'El estado actual es %s.','Current status is %1$s since %2$s.'=>'El estado actual es %1$s desde %2$s.','Check Status'=>'Comprobar estado','Turn OFF'=>'APAGAR','Turn ON'=>'ENCENDER','Development Mode'=>'Modo de desarrollo','Cloudflare Zone'=>'Zona de Cloudflare','Cloudflare Domain'=>'Dominio de Cloudflare','Cloudflare'=>'Cloudflare','For example'=>'Por ejemplo','Prefetching DNS can reduce latency for visitors.'=>'La precarga DNS puede reducir la latencia para los visitantes.','DNS Prefetch'=>'Prefetch DNS','Adding Style to Your Lazy-Loaded Images'=>'Añade estilos a tus imágenes de carga diferida','Default value'=>'Valor por defecto','Static file type links to be replaced by CDN links.'=>'Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.','Drop Query String'=>'Ignorar cadenas de consulta','Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.'=>'Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.','Improve HTTP/HTTPS Compatibility'=>'Mejorar compatibilidad HTTP/HTTPS','Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.'=>'Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.','Destroy All Optimization Data'=>'Destruir todos los datos de optimización','Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.'=>'Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.','This will increase the size of optimized files.'=>'Esto aumentará el tamaño de los archivos optimizados.','Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.'=>'Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.','Clear Logs'=>'Vaciar registros','To test the cart, visit the <a %s>FAQ</a>.'=>'Para probar el carrito, visita la <a %s>FAQ</a>.',' %s ago'=>'hace %s','WebP saved %s'=>'WebP guardado %s','If you run into any issues, please refer to the report number in your support message.'=>'Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.','Last pull initiated by cron at %s.'=>'Última descarga iniciada por cron a las %s.','Images will be pulled automatically if the cron job is running.'=>'Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.','Only press the button if the pull cron job is disabled.'=>'Solo pulsar el botón si la tarea cron de descarga está desactivada.','Pull Images'=>'Descargar imágenes','This process is automatic.'=>'Este proceso es automático','Last Request'=>'Última petición','Images Pulled'=>'Imágenes recuperadas','Report'=>'Informe','Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.'=>'Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.','Send to LiteSpeed'=>'Enviar a LiteSpeed','LiteSpeed Optimization'=>'Optimización de LiteSpeed','Load Google Fonts Asynchronously'=>'Cargar Google Fonts asíncronamente','Browser Cache TTL'=>'TTL caché de navegador','Learn More'=>'Leer más','Image groups total'=>'Total de grupos de imágenes','Images optimized and pulled'=>'Imágenes optimizadas y descargadas','Images requested'=>'Imágenes solicitadas','Switched to optimized file successfully.'=>'Cambio correcto a archivo optimizado.','Restored original file successfully.'=>'Archivo original restaurado con éxito.','Enabled WebP file successfully.'=>'Archivo WebP activado con éxito.','Disabled WebP file successfully.'=>'Archivo WebP desactivado con éxito.','Significantly improve load time by replacing images with their optimized %s versions.'=>'Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.','Selected roles will be excluded from cache.'=>'Los perfiles seleccionados serán excluidos de la caché.','Tuning'=>'Ajustar','Selected roles will be excluded from all optimizations.'=>'Los perfiles seleccionados serán excluidos de todas las optimizaciones.','Role Excludes'=>'Excluir perfiles','Tuning Settings'=>'Configuración de ajustes','If the tag slug is not found, the tag will be removed from the list on save.'=>'Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.','If the category name is not found, the category will be removed from the list on save.'=>'Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.','After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.'=>'Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, notificará a tu sitio para descargar las imágenes optimizadas.','Send Optimization Request'=>'Enviar solicitud de optimización','Image Information'=>'Información de imágenes','Total Reduction'=>'Reducción total','Optimization Summary'=>'Resumen de optimización','LiteSpeed Cache Image Optimization'=>'Optimización de imágenes de LiteSpeed Cache','Image Optimization'=>'Optimización de imágenes','For example, %s can be used for a transparent placeholder.'=>'Por ejemplo, los %s pueden usarse para un marcador de posición transparente.','By default a gray image placeholder %s will be used.'=>'Por defecto, se utilizará un marcador de posición de imagen gris %s.','This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.'=>'Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.','Specify a base64 image to be used as a simple placeholder while images finish loading.'=>'Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.','Elements with attribute %s in html code will be excluded.'=>'Se excluirán los elementos con el atributo %s en código html.','Filter %s is supported.'=>'El filtro %s es compatible.','Listed images will not be lazy loaded.'=>'Las imágenes listadas no se cargarán de forma retrasada.','Lazy Load Image Excludes'=>'Exclusiones de carga retrasada de imágenes','No optimization'=>'Sin optimización','Prevent any optimization of listed pages.'=>'Evitar cualquier optimización de las páginas listadas.','URI Excludes'=>'URL excluidas','Stop loading WordPress.org emoji. Browser default emoji will be displayed instead.'=>'Deja de cargar emojis de WordPress.org. En su lugar se mostrará el emoji predeterminado del navegador.','Both full URLs and partial strings can be used.'=>'Pueden utilizarse tanto URLs completas como cadenas parciales.','Load iframes only when they enter the viewport.'=>'Cargar iframes sólo cuando entran en la ventana de visualización.','Lazy Load Iframes'=>'Retrasar la carga de iframes','This can improve page loading time by reducing initial HTTP requests.'=>'Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.','Load images only when they enter the viewport.'=>'Cargar las imágenes sólo cuando entran en la ventana de visualización.','Lazy Load Images'=>'Retrasar la carga de imágenes','Media Settings'=>'Ajustes de medios','Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.'=>'El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.','To match the beginning, add %s to the beginning of the item.'=>'Para que coincida con el principio, añade %s al comienzo del artículo.','Maybe later'=>'Quizás más tarde','I\'ve already left a review'=>'Ya he dejado una valoración','Welcome to LiteSpeed'=>'Bienvenido a LiteSpeed','Remove WordPress Emoji'=>'Eliminar emojis de WordPress','More settings'=>'Más ajustes','Private cache'=>'Caché privada','Non cacheable'=>'No cacheable','Mark this page as '=>'Marcar esta página como','Purge this page'=>'Vaciar esta página','Load JS Deferred'=>'Deferir carga de JS','Specify critical CSS rules for above-the-fold content when enabling %s.'=>'Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.','Critical CSS Rules'=>'Reglas de CSS críticas','Load CSS Asynchronously'=>'Cargar CSS asíncronamente','Prevent Google Fonts from loading on all pages.'=>'Evita que cargue Google Fonts en todas las páginas.','Remove Google Fonts'=>'Eliminar Google Fonts','This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.'=>'Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.','Remove query strings from internal static resources.'=>'Eliminar cadenas de consulta de recursos estáticos internos.','Remove Query Strings'=>'Eliminar query strings','user agents'=>'user agents','cookies'=>'cookies','Browser caching stores static files locally in the user\'s browser. Turn on this setting to reduce repeated requests for static files.'=>'El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.','Browser Cache'=>'Caché del navegador','tags'=>'etiquetas','Do Not Cache Tags'=>'Etiquetas a no cachear','To exclude %1$s, insert %2$s.'=>'Para excluir %1$s, insertar %2$s.','categories'=>'categorías','To prevent %s from being cached, enter them here.'=>'Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.','Do Not Cache Categories'=>'Categorías a no cachear','Query strings containing these parameters will not be cached.'=>'Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.','Do Not Cache Query Strings'=>'Cadenas de consulta a no cachear','Paths containing these strings will not be cached.'=>'Las rutas que contengan estas cadenas no serán cacheadas.','Do Not Cache URIs'=>'URIs a no cachear','One per line.'=>'Una por línea.','URI Paths containing these strings will NOT be cached as public.'=>'Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.','Private Cached URIs'=>'URIs cacheadas privadamente','Paths containing these strings will not be served from the CDN.'=>'Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.','Exclude Path'=>'Excluir ruta','Include File Types'=>'Incluir tipos de archivo','Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.'=>'Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.','Include JS'=>'Incluir JS','Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.'=>'Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.','Include CSS'=>'Incluir CSS','Include Images'=>'Incluir imágenes','CDN URL to be used. For example, %s'=>'URL de la CDN a utilizar. Por ejemplo, %s','CDN URL'=>'URL de CDN','Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.'=>'URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s','Original URLs'=>'URLs originales','CDN Settings'=>'Ajustes de CDN','CDN'=>'CDN','OFF'=>'APAGAR','ON'=>'ENCENDER','Notified LiteSpeed Web Server to purge CSS/JS entries.'=>'Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed.','Minify HTML content.'=>'Minificar contenido HTML.','HTML Minify'=>'Minificar HTML','JS Excludes'=>'Excluir JS','JS Combine'=>'Combinar JS','JS Minify'=>'Minificar JS','CSS Excludes'=>'Excluir CSS','CSS Combine'=>'Combinar CSS','CSS Minify'=>'Minificar CSS','Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.'=>'Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción "Vaciar todo".','This will purge all minified/combined CSS/JS entries only'=>'Esto vaciará solo las entradas CSS/JS minimizadas o combinadas','Purge %s Error'=>'Vaciar error %s','Database Optimizer'=>'Optimizador de base de datos','Optimize all tables in your database'=>'Optimizar todas las tablas en tu base de datos','Optimize Tables'=>'Optimizar tablas','Clean all transient options'=>'Borrar todas las opciones de datos transitorios','All Transients'=>'Todos los datos transitorios','Clean expired transient options'=>'Borrar opciones de datos transitorios expirados','Expired Transients'=>'Datos transitorios expirados','Clean all trackbacks and pingbacks'=>'Borrar todos los trackbacks y pingbacks','Trackbacks/Pingbacks'=>'Trackbacks/pingbacks','Clean all trashed comments'=>'Borrar todos los comentarios en la papelera','Trashed Comments'=>'Comentarios enviados a la papelera','Clean all spam comments'=>'Borrar todos los comentarios spam','Spam Comments'=>'Comentarios spam','Clean all trashed posts and pages'=>'Borrar todas las entradas y páginas en la papelera','Trashed Posts'=>'Entradas enviadas a la papelera','Clean all auto saved drafts'=>'Borrar todos los borradores guardados automáticamente','Auto Drafts'=>'Borradores automáticos','Clean all post revisions'=>'Borrar todas las revisiones de entradas','Post Revisions'=>'Revisiones de entradas','Clean All'=>'Limpiar todo','Optimized all tables.'=>'Optimizadas todas las tablas.','Clean all transients successfully.'=>'Limpieza de todos los datos transitorios exitosa.','Clean expired transients successfully.'=>'Limpieza de datos transitorios expirados exitosa.','Clean trackbacks and pingbacks successfully.'=>'Limpieza de trackbacks y pingbacks exitosa.','Clean trashed comments successfully.'=>'Limpieza de comentarios en papelera exitosa.','Clean spam comments successfully.'=>'Limpieza de comentarios no deseados exitosa.','Clean trashed posts and pages successfully.'=>'Limpieza de páginas y entradas en papelera exitosa.','Clean auto drafts successfully.'=>'Limpieza de borradores automáticos exitosa.','Clean post revisions successfully.'=>'Limpieza de revisiones de entradas exitosa.','Clean all successfully.'=>'Limpieza completa exitosa.','Default Private Cache TTL'=>'TTL por defecto de la caché privada','If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.'=>'Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.','Vary Group'=>'Grupos de variación','Cache the built-in Comment Form ESI block.'=>'Almacena en la caché el bloque ESI del formulario de comentarios incluido.','Cache Comment Form'=>'Cachear formulario de comentario','Cache Admin Bar'=>'Cachear barra de administrador','Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.'=>'Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.','ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.'=>'ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.','With ESI (Edge Side Includes), pages may be served from cache for logged-in users.'=>'Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.','Private'=>'Privada','Public'=>'Pública','Purge Settings'=>'Ajustes del vaciado','Cache Mobile'=>'Cache móvil','Advanced level will log more details.'=>'El nivel avanzado registrará más detalles.','Basic'=>'Básico','The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.'=>'La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.','Cache Login Page'=>'Cachear página de acceso','Cache requests made by WordPress REST API calls.'=>'Cachear peticiones realizadas por llamadas de la API REST de WordPress.','Cache REST API'=>'Cachear API REST','Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)'=>'Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)','Cache Commenters'=>'Cachear comentaristas','Privately cache frontend pages for logged-in users. (LSWS %s required)'=>'Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)','Cache Logged-in Users'=>'Cachear usuarios con sesión iniciada','Cache Control Settings'=>'Ajustes de control de caché','ESI'=>'ESI','Excludes'=>'Excluir','Purge'=>'Vaciar','Cache'=>'Caché','WooCommerce'=>'WooCommerce','Current server time is %s.'=>'La hora actual del servidor es %s.','Specify the time to purge the "%s" list.'=>'Especifica la hora para vaciar la lista "%s".','Both %1$s and %2$s are acceptable.'=>'Tanto %1$s como %2$s son aceptables.','Scheduled Purge Time'=>'Hora de vaciado programado','The URLs here (one per line) will be purged automatically at the time set in the option "%s".'=>'La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción "%s".','Scheduled Purge URLs'=>'URLs de vaciado programado','Shorten query strings in the debug log to improve readability.'=>'Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.','Heartbeat'=>'Heartbeat','MB'=>'MB','Log File Size Limit'=>'Límite de tamaño de archivo de registro','<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s'=>'<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s','%s file not writable.'=>'No se puede escribir el archivo %s.','%s file not readable.'=>'No se puede leer el archivo %s.','Collapse Query Strings'=>'Colapsar cadenas de peticiones','ESI Settings'=>'Ajustes de ESI','A TTL of 0 indicates do not cache.'=>'Un TTL de 0 implica no cachear.','Recommended value: 28800 seconds (8 hours).'=>'Valor recomendado: 28800 segundos (8 horas).','Enable ESI'=>'Activar ESI','Custom Sitemap'=>'Sitemap personalizado','Purge pages by relative or full URL.'=>'Vaciar páginas por URL completa o relativa.','The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.'=>'La función de rastreador no está habilitada en el servidor LiteSpeed. Consulta al administrador de tu servidor o al proveedor de hosting.','WARNING'=>'ADVERTENCIA','The next complete sitemap crawl will start at'=>'La siguiente indexación de sitemap completa empezará a las','Failed to write to %s.'=>'Error al escribir a %s.','Folder is not writable: %s.'=>'El directorio no es escribible: %s.','Can not create folder: %1$s. Error: %2$s'=>'No se puede crear el directorio: %1$s. Error: %2$s','Folder does not exist: %s'=>'El directorio no existe: %s','Notified LiteSpeed Web Server to purge the list.'=>'Solicitado el vaciado de la lista al servidor web LiteSpeed.','Allows listed IPs (one per line) to perform certain actions from their browsers.'=>'Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.','Server Load Limit'=>'Límite de carga del servidor','Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.'=>'Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo.','Crawl Interval'=>'Intervalo de indexación','Then another WordPress is installed (NOT MULTISITE) at %s'=>'Y otro WordPress instalado (NO MULTISITIO) en %s','LiteSpeed Cache Network Cache Settings'=>'Ajustes de la caché de la red de caché de LiteSpeed','Select below for "Purge by" options.'=>'Selecciona debajo las opciones de "Vaciar por".','LiteSpeed Cache CDN'=>'CDN de la caché de LiteSpeed','No crawler meta file generated yet'=>'Archivo meta del crawler aún no generado','Show crawler status'=>'Mostrar estado del Crawler','Watch Crawler Status'=>'Ver estado del Crawler','Run frequency is set by the Interval Between Runs setting.'=>'La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.','Manually run'=>'Ejecutar manualmente','Reset position'=>'Reestablecer posición','Run Frequency'=>'Frecuencia de ejecución','Cron Name'=>'Nombre del Cron','Crawler Cron'=>'Cron del Crawler','%d minute'=>'%d minuto','%d minutes'=>'%d minutos','%d hour'=>'%d hora','%d hours'=>'%d horas','Generated at %s'=>'Generado en %s','LiteSpeed Cache Crawler'=>'Crawler de LiteSpeed Cache','Crawler'=>'Crawler','https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration'=>'https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration','Notified LiteSpeed Web Server to purge all pages.'=>'Solicitado el vaciado de todas las páginas al servidor web LiteSpeed.','All pages with Recent Posts Widget'=>'Todas las páginas con widget de Entradas recientes','Pages'=>'Páginas','This will Purge Pages only'=>'Esto solo vaciará las páginas','Purge Pages'=>'Vaciar páginas','Cancel'=>'Cancelar','Activate'=>'Activar','Email Address'=>'Email Address','Install Now'=>'Instalar ahora','Purged the blog!'=>'¡Se ha vaciado el blog!','Purged All!'=>'¡Se ha vaciado todo!','Notified LiteSpeed Web Server to purge error pages.'=>'Solicitado el vaciado de las páginas de error al servidor web LiteSpeed.','If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.'=>'Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.','If the login cookie was recently changed in the settings, please log out and back in.'=>'Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.','However, there is no way of knowing all the possible customizations that were implemented.'=>'Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.','The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.'=>'El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.','The network admin setting can be overridden here.'=>'El ajuste de administrador de red puede ser modificado aquí.','Specify how long, in seconds, public pages are cached.'=>'Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.','Specify how long, in seconds, private pages are cached.'=>'Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.','Purge pages by post ID.'=>'Vaciar páginas por ID de entrada.','Purge the LiteSpeed cache entries created by this plugin'=>'Vacía las entradas de caché de LiteSpeed creadas por este plugin','Purge %s error pages'=>'Purgar las páginas de error %s','This will Purge Front Page only'=>'Esto vaciará solo la página principal','Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.'=>'Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.','Purge pages by category name - e.g. %2$s should be used for the URL %1$s.'=>'Vaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.','If only the WordPress site should be purged, use Purge All.'=>'Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo».','Notified LiteSpeed Web Server to purge everything.'=>'Solicitado el vaciado de todo al servidor web LiteSpeed.','Use Primary Site Configuration'=>'Usar configuración del sitio principal','This will disable the settings page on all subsites.'=>'Esto desactivará la página de ajustes en todos los subsitios.','Check this option to use the primary site\'s configuration for all subsites.'=>'Marca esta opción para usar la configuración del sitio principal para todos los subsitios.','Save Changes'=>'Guardar cambios','The following options are selected, but are not editable in this settings page.'=>'Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.','The network admin selected use primary site configs for all subsites.'=>'El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.','Empty Entire Cache'=>'Vaciar la caché entera','This action should only be used if things are cached incorrectly.'=>'Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.','This may cause heavy load on the server.'=>'Esto puede causar una alta carga en el servidor.','This will clear EVERYTHING inside the cache.'=>'Esto eliminará TODO dentro de la caché.','LiteSpeed Cache Purge All'=>'Vaciar toda la caché de LiteSpeed','If you would rather not move at litespeed, you can deactivate this plugin.'=>'Si no quieres la aceleración de litespeed, puedes desactivar este plugin.','Create a post, make sure the front page is accurate.'=>'Crear una entrada, asegurarse que la página principal está actualizada.','Visit the site while logged out.'=>'Visitar el sitio sin la sesión iniciada.','Examples of test cases include:'=>'Ejemplos de pruebas incluyen:','For that reason, please test the site to make sure everything still functions properly.'=>'Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.','This message indicates that the plugin was installed by the server admin.'=>'Este mensaje indica que el plugin fue instalado por el administrador del servidor.','LiteSpeed Cache plugin is installed!'=>'¡El plugin LiteSpeed Cache está instalado!','Debug Log'=>'Registro de depuración','Admin IP Only'=>'Solo la IP del administrador','Specify how long, in seconds, REST calls are cached.'=>'Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.','The environment report contains detailed information about the WordPress configuration.'=>'El informe de entorno contiene información detallada sobre la configuración de WordPress.','The server will determine if the user is logged in based on the existence of this cookie.'=>'El servidor determinará si el usuario está conectado en base a la existencia de esta cookie.','Note'=>'Nota','After verifying that the cache works in general, please test the cart.'=>'Después de que la caché funcione en general, por favor prueba el carrito.','When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.'=>'Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.','Purge All On Upgrade'=>'Vaciar todo al actualizar','Product Update Interval'=>'Intervalo de actualización de producto','Determines how changes in product quantity and product stock status affect product pages and their associated category pages.'=>'Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.','Always purge both product and categories on changes to the quantity or stock status.'=>'Vaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario.','Do not purge categories on changes to the quantity or stock status.'=>'No vaciar las categorías al cambiar la cantidad o estado del inventario.','Purge product only when the stock status changes.'=>'Vaciar los productos solo cuando cambie el estado del inventario.','Purge product and categories only when the stock status changes.'=>'Vaciar productos y categorías solo cuando cambie el estado del inventario.','Purge categories only when stock status changes.'=>'Vaciar las categorías solo cuando el estado del inventario cambie.','Purge product on changes to the quantity or stock status.'=>'Vaciar los productos con los cambios de cantidad o estado del inventario.','Htaccess did not match configuration option.'=>'El htaccess no coincide con la opción de configuración.','If this is set to a number less than 30, feeds will not be cached.'=>'Si esto se fija en un número inferior a 30, los feeds no serán cacheados.','Specify how long, in seconds, feeds are cached.'=>'Especifica por cuanto tiempo, en segundos, se cachean los feeds.','Default Feed TTL'=>'TTL por defecto del Feed','Failed to get %s file contents.'=>'Error al obtener contenido del archivo %s.','Disabling this option may negatively affect performance.'=>'Desactivar esta opción puede afectar negativamente al rendimiento.','Invalid login cookie. Invalid characters found.'=>'Cookie de acceso no válida. Encontrados caracteres no válidos.','WARNING: The .htaccess login cookie and Database login cookie do not match.'=>'ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.','Invalid login cookie. Please check the %s file.'=>'Cookie de acceso no válida. Por favor, comprueba el archivo %s.','The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.'=>'La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.','There is a WordPress installed for %s.'=>'Hay un WordPress instalado para %s.','Example use case:'=>'Ejemplo de uso:','The cookie set here will be used for this WordPress installation.'=>'La cookie aquí establecida será usada por esta instalación de WordPress.','If every web application uses the same cookie, the server may confuse whether a user is logged in or not.'=>'Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.','This setting is useful for those that have multiple web applications for the same domain.'=>'Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.','The default login cookie is %s.'=>'La cookie de acceso por defecto es %s.','Login Cookie'=>'Cookie de acceso','More information about the available commands can be found here.'=>'Aquí se puede encontrar más información sobre los comandos disponibles.','These settings are meant for ADVANCED USERS ONLY.'=>'Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.','Current %s Contents'=>'Contenidos actuales de %s','Advanced'=>'Avanzado','Advanced Settings'=>'Ajustes avanzados','Purge List'=>'Vaciar lista','Purge By...'=>'Vaciar por...','URL'=>'URL','Tag'=>'Etiqueta','Post ID'=>'ID de entrada','Category'=>'Categoría','NOTICE: Database login cookie did not match your login cookie.'=>'AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.','Purge url %s'=>'Vaciar la URL %s','Purge tag %s'=>'Vaciar la etiqueta %s','Purge category %s'=>'Vaciar la categoría %s','When disabling the cache, all cached entries for this site will be purged.'=>'Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas.','NOTICE'=>'AVISO','This setting will edit the .htaccess file.'=>'Este ajuste editará el archivo .htaccess.','LiteSpeed Cache View .htaccess'=>'Ver el archivo ".htaccess" de LiteSpeed Cache','Failed to back up %s file, aborted changes.'=>'Fallo al hacer copia de seguridad del archivo %s, cambios cancelados.','Do Not Cache Cookies'=>'Cookies a no cachear','Do Not Cache User Agents'=>'User Agents a no cachear','This is to ensure compatibility prior to enabling the cache for all sites.'=>'Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.','Network Enable Cache'=>'Habilitar caché de red','NOTICE:'=>'AVISO:','Other checkboxes will be ignored.'=>'Otras opciones serán ignoradas.','Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.'=>'Selecciona "Todo" si hay widgets dinámicos enlazados a entradas en páginas distintas de la página de inicio','List of Mobile User Agents'=>'Lista de User Agents móviles','File %s is not writable.'=>'No se puede escribir el archivo %s.','JS Settings'=>'Ajustes de JS','Manage'=>'Gestionar','Default Front Page TTL'=>'TTL por defecto de la Página Principal','Notified LiteSpeed Web Server to purge the front page.'=>'Solicitado el vaciado de la página de inicio al servidor web LiteSpeed.','Purge Front Page'=>'Vaciar la página de inicio','Example'=>'Ejemplo','All tags are cached by default.'=>'Todas las etiquetas son cacheadas por defecto.','All categories are cached by default.'=>'Todas las categorías son cacheadas por defecto.','To do an exact match, add %s to the end of the URL.'=>'Para coincidencias exactas, añadir %s al final de la URL.','The URLs will be compared to the REQUEST_URI server variable.'=>'Las URLs serán comparadas con la variable REQUEST_URI del servidor.','Select only the archive types that are currently used, the others can be left unchecked.'=>'Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.','Notes'=>'Notas','Use Network Admin Setting'=>'Usar ajuste de administrador de red','Disable'=>'Desactivar','Enabling LiteSpeed Cache for WordPress here enables the cache for the network.'=>'Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.','Disabled'=>'Desactivado','Enabled'=>'Habilitado','Do Not Cache Roles'=>'No cachear perfiles','https://www.litespeedtech.com'=>'https://www.litespeedtech.com','LiteSpeed Technologies'=>'LiteSpeed Technologies','LiteSpeed Cache'=>'LiteSpeed Cache','Debug Level'=>'Nivel de depuración','Notice'=>'Nota','Term archive (include category, tag, and tax)'=>'Archivo de término (incluye categoría, etiqueta y taxonomía)','Daily archive'=>'Archivo diario','Monthly archive'=>'Archivo mensual','Yearly archive'=>'Archivo anual','Post type archive'=>'Archivo de tipo de contenido','Author archive'=>'Archivo del Autor','Home page'=>'Página de Inicio','Front page'=>'Página de inicio','All pages'=>'Todas las páginas','Select which pages will be automatically purged when posts are published/updated.'=>'Seleccionar que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadas','Auto Purge Rules For Publish/Update'=>'Reglas de vaciado automático para publicación y actualización','Default Public Cache TTL'=>'TTL por defecto de la caché pública','seconds'=>'segundos','Admin IPs'=>'IPs de administrador','General'=>'Opciones generales','LiteSpeed Cache Settings'=>'Configuración de Caché de LiteSpeed','Notified LiteSpeed Web Server to purge all LSCache entries.'=>'Solicitado el vaciado de todas las entradas de la caché de LSCache al servidor web LiteSpeed.','Purge All'=>'Vaciar todo','Settings'=>'Ajustes']];<?php
return ['x-generator'=>'GlotPress/4.0.1','translation-revision-date'=>'2025-08-25 11:14:58+0000','plural-forms'=>'nplurals=2; plural=n != 1;','project-id-version'=>'Plugins - LiteSpeed Cache - Stable (latest release)','language'=>'es','messages'=>['QUIC.cloud CDN'=>'CDN de QUIC.cloud','Predefined list will also be combined with the above settings'=>'La lista predefinida también se combinará con los ajustes anteriores','Tuning CSS Settings'=>'Ajustar la configuración de CSS','Predefined list will also be combined with the above settings.'=>'La lista predefinida también se combinará con los ajustes anteriores.','Clear'=>'Vaciar','If not, please verify the setting in the %sAdvanced tab%s.'=>'Si no es así, comprueba la configuración en la %spestaña Avanzado%s.','Close popup'=>'Cerrar ventana emergente','Deactivate plugin'=>'Desactivar el plugin','If you have used Image Optimization, please %sDestroy All Optimization Data%s first. NOTE: this does not remove your optimized images.'=>'Si has utilizado la Optimización de Imágenes, por favor %sDestruye primero todos los datos de optimización%s. NOTA: esto no elimina tus imágenes optimizadas.','On uninstall, all plugin settings will be deleted.'=>'Al desinstalar, se eliminarán todos los ajustes del plugin.','Why are you deactivating the plugin?'=>'¿Por qué desactivas el plugin?','Other'=>'Otros','Plugin is too complicated'=>'El plugin es demasiado complicado','Site performance is worse'=>'El rendimiento del sitio es peor','The deactivation is temporary'=>'La desactivación es temporal','Deactivate LiteSpeed Cache'=>'Desactivar la caché de LiteSpeed','CDN - Disabled'=>'CDN - Desactivado','CDN - Enabled'=>'CDN - Activado','Connected Date:'=>'Fecha de conexión:','Node:'=>'Nodo:','Service:'=>'Servicio:','Autoload top list'=>'Cargar automáticamente la lista principal','Autoload entries'=>'Cargar entradas automáticamente','Autoload size'=>'Tamaño de carga automática','This Month Usage: %s'=>'Uso de este mes: %s','Usage Statistics: %s'=>'Estadísticas de uso: %s','more'=>'más','Globally fast TTFB, easy setup, and %s!'=>'¡TTFB globalmente rápido, fácil configuración y %s!','Last requested: %s'=>'Última solicitud: %s','Last generated: %s'=>'Última generación: %s','Requested: %s ago'=>'Solicitado: hace %s','LiteSpeed Web ADC'=>'LiteSpeed Web ADC','OpenLiteSpeed Web Server'=>'Servidor web OpenLiteSpeed','LiteSpeed Web Server'=>'Servidor web LiteSpeed','PAYG used this month: %s. PAYG balance and usage not included in above quota calculation.'=>'PAYG utilizado este mes: %s. El saldo y el uso de PAYG no están incluidos en el cálculo de cuota anterior.','Last crawled:'=>'Último rastreo:','%1$s %2$d item(s)'=>'%1$s %2$d elemento(s)','Start watching...'=>'Empieza a ver...','Crawlers cannot run concurrently. If both the cron and a manual run start at similar times, the first to be started will take precedence.'=>'Los rastreadores no pueden ejecutarse simultáneamente. Si tanto el cron como una ejecución manual se inician al mismo tiempo, el primero que se inicie tendrá prioridad.','Position: '=>'Posición: ','%d item(s)'=>'%d elemento(s)','Last crawled'=>'Último rastreo','Serve your visitors fast'=>'Sirve rápido a tus visitantes','This will affect all tags containing attributes: %s.'=>'Esto afectará a todas las etiquetas que contengan atributos: %s.','%1$sLearn More%2$s'=>'%1$sAprender más%2$s','Get it from %s.'=>'Obtenerlo de %s.','Reset the OPcache failed.'=>'Error al restablecer el OPcache.','OPcache is not enabled.'=>'OPcache no está activada.','Enable All Features'=>'Activar todas las funciones','e.g. Use %1$s or %2$s.'=>'p.ej. utiliza %1$s o %2$s.','Click to copy'=>'Haz clic para copiar','Rate %1$s on %2$s'=>'Puntúa %1$s en %2$s','Clear %s cache when "Purge All" is run.'=>'Limpiar la caché de %s cuando se ejecuta «Purgar todo».','SYNTAX: alphanumeric and "_". No spaces and case sensitive.'=>'SINTAXIS: alfanumérica y «_». Sin espacios y con distinción entre mayúsculas y minúsculas.','SYNTAX: alphanumeric and "_". No spaces and case sensitive. MUST BE UNIQUE FROM OTHER WEB APPLICATIONS.'=>'SINTAXIS: alfanumérica y «_». Sin espacios y con distinción entre mayúsculas y minúsculas. DEBE SER ÚNICA Y DISTINTA DE OTRAS APLICACIONES WEB.','Submit a ticket'=>'Enviar un tique','Clear Cloudflare cache'=>'Vaciar la caché de Cloudflare','QUIC.cloud\'s access to your WP REST API seems to be blocked.'=>'El acceso de QUIC.cloud a tu API REST de WP parece estar bloqueado.','Copy Log'=>'Copiar registro','Selectors must exist in the CSS. Parent classes in the HTML will not work.'=>'Los selectores deben existir en el CSS. Las clases principales en el HTML no funcionarán.','List the CSS selectors whose styles should always be included in CCSS.'=>'Lista los selectores CSS cuyos estilos siempre deben incluirse en CCSS.','List the CSS selectors whose styles should always be included in UCSS.'=>'Lista los selectores CSS cuyos estilos siempre deben incluirse en UCSS.','Available after %d second(s)'=>'Disponible después de %d segundo(s)','Enable QUIC.cloud Services'=>'Activar los servicios de QUIC.cloud','The features below are provided by %s'=>'Las siguientes características son proporcionadas por %s','Do not show this again'=>'No volver a mostrar esto','Free monthly quota available. Can also be used anonymously (no email required).'=>'Cuota mensual gratuita disponible. También se puede usar de forma anónima (no se requiere correo electrónico).','Cloudflare Settings'=>'Ajustes de Cloudflare','Failed to detect IP'=>'No se pudo detectar la IP','CCSS Selector Allowlist'=>'Lista de permitidos del selector del CCSS','Outputs to a series of files in the %s directory.'=>'Da salida en una serie de archivos en el directorio %s.','Attach PHP info to report. Check this box to insert relevant data from %s.'=>'Adjuntar información PHP al informe. Marca esta casilla para insertar datos relevantes de %s.','Last Report Date'=>'Fecha del último informe','Last Report Number'=>'Número del último informe','Regenerate and Send a New Report'=>'Regenerar y enviar un nuevo informe','This will reset the %1$s. If you changed WebP/AVIF settings and want to generate %2$s for the previously optimized images, use this action.'=>'Esto restablecerá los %1$s. Si cambiaste los ajustes de WebP/AVIF y quieres generar %2$s para las imágenes previamente optimizadas, utiliza esta acción.','Soft Reset Optimization Counter'=>'Restablecimiento suave del contador de optimización','When switching formats, please %1$s or %2$s to apply this new choice to previously optimized images.'=>'Al cambiar de formato, utiliza %1$s o %2$s para aplicar esta nueva opción a las imágenes previamente optimizadas.','%1$s is a %2$s paid feature.'=>'%1$s es una característica de pago de %2$s.','Remove QUIC.cloud integration from this site. Note: QUIC.cloud data will be preserved so you can re-enable services at any time. If you want to fully remove your site from QUIC.cloud, delete the domain through the QUIC.cloud Dashboard first.'=>'Quita la integración de QUIC.cloud de este sitio. Nota: Los datos de QUIC.cloud se conservarán para que puedas reactivar los servicios en cualquier momento. Si quieres borrar completamente tu sitio de QUIC.cloud, primero borra el dominio a través del escritorio de QUIC.cloud.','Disconnect from QUIC.cloud'=>'Desconectar de QUIC.cloud','Are you sure you want to disconnect from QUIC.cloud? This will not remove any data from the QUIC.cloud dashboard.'=>'¿Seguro que quieres desconectar de QUIC.cloud? Esto no eliminará ningún dato del escritorio de QUIC.cloud.','CDN - not available for anonymous users'=>'CDN - no disponible para usuarios anónimos','Your site is connected and using QUIC.cloud Online Services as an <strong>anonymous user</strong>. The CDN function and certain features of optimization services are not available for anonymous users. Link to QUIC.cloud to use the CDN and all available Online Services features.'=>'Tu sitio está conectado y utiliza los servicios en línea de QUIC.cloud como <strong>usuario anónimo</strong>. La función CDN y ciertas funciones de los servicios de optimización no están disponibles para usuarios anónimos. Conéctate a QUIC.cloud para usar la CDN y todas las funciones de los servicios en línea disponibles.','QUIC.cloud Integration Enabled with limitations'=>'Integración de QUIC.cloud activada con limitaciones','Your site is connected and ready to use QUIC.cloud Online Services.'=>'Tu sitio está conectado y listo para usar los servicios en línea de QUIC.cloud.','QUIC.cloud Integration Enabled'=>'Integración de QUIC.cloud activada','In order to use most QUIC.cloud services, you need quota. QUIC.cloud gives you free quota every month, but if you need more, you can purchase it.'=>'Para utilizar la mayoría de los servicios de QUIC.cloud, necesitas una cuota. QUIC.cloud te ofrece cuota gratuita cada mes, pero si necesitas más, puedes comprarla.','Offers optional <strong>built-in DNS service</strong> to simplify CDN onboarding.'=>'Ofrece un <strong>servicio DNS integrado</strong> opcional para simplificar la puesta en marcha de CDN.','Provides <strong>security at the CDN level</strong>, protecting your server from attack.'=>'Proporciona <strong>seguridad a nivel de CDN</strong>, protegiendo tu servidor de ataques.','Delivers global coverage with a growing <strong>network of 80+ PoPs</strong>.'=>'Ofrece cobertura global con una <strong>red en crecimiento de más de 80 PoP</strong>.','Caches your entire site, including dynamic content and <strong>ESI blocks</strong>.'=>'Almacena en caché todo tu sitio, incluido el contenido dinámico y los <strong>bloques ESI</strong>.','Content Delivery Network'=>'Red de entrega de contenidos','<strong>Viewport Images (VPI)</strong> provides a well-polished fully-loaded view above the fold.'=>'<strong>Viewport Images (VPI)</strong> proporciona una vista completa y bien pulida antes de desplazarse.','<strong>Low Quality Image Placeholder (LQIP)</strong> gives your imagery a more pleasing look as it lazy loads.'=>'El <strong>marcador de posición de imagen de baja calidad (LQIP)</strong> le da a tus imágenes un aspecto más agradable a medida que se cargan de forma diferida.','<strong>Unique CSS (UCSS)</strong> removes unused style definitions for a speedier page load overall.'=>'<strong>CSS único (UCSS)</strong> elimina las definiciones de estilo no utilizadas para lograr una carga de página más rápida en general.','<strong>Critical CSS (CCSS)</strong> loads visible above-the-fold content faster and with full styling.'=>'<strong>CSS crítico (CCSS)</strong> carga el contenido visible antes de desplazarse más rápido y con estilo completo.','QUIC.cloud\'s Page Optimization services address CSS bloat, and improve the user experience during page load, which can lead to improved page speed scores.'=>'Los servicios de optimización de páginas de QUIC.cloud abordan el problema del inflado de CSS y mejoran la experiencia del usuario durante la carga de la página, lo que puede generar mejores puntuaciones de velocidad de la página.','Processing for PNG, JPG, and WebP image formats is free. AVIF is available for a fee.'=>'El procesamiento de imágenes en formato PNG, JPG y WebP es gratuito. El formato AVIF tiene un coste.','Optionally creates next-generation WebP or AVIF image files.'=>'Crea opcionalmente archivos de imagen WebP o AVIF de próxima generación.','Processes your uploaded PNG and JPG images to produce smaller versions that don\'t sacrifice quality.'=>'Procesa las imágenes PNG y JPG cargadas para producir versiones más pequeñas que no sacrifican la calidad.','QUIC.cloud\'s Image Optimization service does the following:'=>'El servicio de optimización de imágenes de QUIC.cloud hace lo siguiente:','<strong>Page Optimization</strong> streamlines page styles and visual elements for faster loading.'=>'La <strong>optimización de página</strong> agiliza los estilos de página y los elementos visuales para una carga más rápida.','<strong>Image Optimization</strong> gives you smaller image file sizes that transmit faster.'=>'La <strong>optimización de imágenes</strong> te ofrece archivos de imagen de menor tamaño que se transmiten más rápido.','QUIC.cloud\'s Online Services improve your site in the following ways:'=>'Los servicios en línea de QUIC.cloud mejoran su sitio de las siguientes maneras:','Speed up your WordPress site even further with QUIC.cloud Online Services and CDN.'=>'Acelera aún más tu sitio de WordPress con los servicios en línea y CDN de QUIC.cloud.','QUIC.cloud Integration Disabled'=>'Integración de QUIC.cloud desactivada','QUIC.cloud Online Services'=>'Servicios en línea de QUIC.cloud','Online Services'=>'Servicios en línea','Autoload'=>'Carga automática','Refresh QUIC.cloud status'=>'Actualizar el estado de QUIC.cloud','Refresh'=>'Actualizar','You must be using one of the following products in order to measure Page Load Time:'=>'Debes usar uno de los siguientes productos para medir el tiempo de carga de la página:','Refresh Usage'=>'Actualizar el uso','News'=>'Noticias','You need to set the %s in Settings first before using the crawler'=>'Debes configurar %s en Ajustes antes de usar el rastreador','You must set %1$s to %2$s before using this feature.'=>'Debes configurar %1$s en %2$s antes de usar esta característica.','You must set %s before using this feature.'=>'Debes configurar %s antes de usar esta característica.','My QUIC.cloud Dashboard'=>'Mi escritorio de QUIC.cloud','You are currently using services as an anonymous user. To manage your QUIC.cloud options, use the button below to create an account and link to the QUIC.cloud Dashboard.'=>'Actualmente estás utilizando los servicios como usuario anónimo. Para gestionar tus opciones de QUIC.cloud, utiliza el botón de abajo para crear una cuenta y acceder al escritorio de QUIC.cloud.','To manage your QUIC.cloud options, go to QUIC.cloud Dashboard.'=>'Para gestionar tus opciones de QUIC.cloud, ve al escritorio de QUIC.cloud.','To manage your QUIC.cloud options, please contact your hosting provider.'=>'Para gestionar tus opciones de QUIC.cloud, comunícate con tu proveedor de alojamiento.','To manage your QUIC.cloud options, go to your hosting provider\'s portal.'=>'Para gestionar tus opciones de QUIC.cloud, ve al portal de tu proveedor de alojamiento.','QUIC.cloud CDN Options'=>'Opciones de CDN de QUIC.cloud','Best available WordPress performance, globally fast TTFB, easy setup, and %smore%s!'=>'¡El mejor rendimiento disponible para WordPress, TTFB globalmente rápido, fácil configuración y %smucho más%s!','no matter where they live.'=>'no importa dónde vivan.','Content Delivery Network Service'=>'Servicio de red de entrega de contenido','Enable QUIC.cloud CDN'=>'Activar la CDN de QUIC.cloud','Link & Enable QUIC.cloud CDN'=>'Enlazar y activar la CDN de QUIC.cloud','QUIC.cloud CDN is <strong>not available</strong> for anonymous (unlinked) users.'=>'La CDN de QUIC.cloud <strong>no está disponible</strong> para usuarios anónimos (sin enlazar).','QUIC.cloud CDN is currently <strong>fully disabled</strong>.'=>'La CDN de QUIC.cloud está actualmente <strong>totalmente desactivada</strong>.','Learn More about QUIC.cloud'=>'Obtén más información acerca de QUIC.cloud','QUIC.cloud provides CDN and online optimization services, and is not required. You may use many features of this plugin without QUIC.cloud.'=>'QUIC.cloud ofrece servicios de CDN y optimización en línea, y no es obligatorio. Puedes usar muchas características de este plugin sin QUIC.cloud.','Enable QUIC.cloud services'=>'Activar los servicios de QUIC.cloud','Free monthly quota available.'=>'Cuota mensual gratuita disponible.','Speed up your WordPress site even further with <strong>QUIC.cloud Online Services and CDN</strong>.'=>'Acelera aún más su sitio de WordPress con los <strong>servicios en línea y CDN de QUIC.cloud</strong>.','Accelerate, Optimize, Protect'=>'Acelera, optimiza, protege','Check the status of your most important settings and the health of your CDN setup here.'=>'Verifica el estado de tus ajustes más importantes y el estado de tu configuración CDN aquí.','QUIC.cloud CDN Status Overview'=>'Resumen del estado de CDN de QUIC.cloud','Refresh Status'=>'Actualizar Estado','Other Static CDN'=>'Otra CDN estática','Dismiss this notice.'=>'Descartar este aviso.','Send to twitter to get %s bonus'=>'Envíar a X para obtener %s de bonificación','Spread the love and earn %s credits to use in our QUIC.cloud online services.'=>'Difunde el amor y gana %s créditos para usar en nuestros servicios en línea QUIC.cloud.','No backup of unoptimized AVIF file exists.'=>'No existe ninguna copia de seguridad del archivo AVIF sin optimizar.','AVIF saved %s'=>'AVIF guardado %s','AVIF file reduced by %1$s (%2$s)'=>'Archivo AVIF reducido en %1$s (%2$s)','Currently using original (unoptimized) version of AVIF file.'=>'Actualmente se utiliza la versión original (sin optimizar) del archivo AVIF.','Currently using optimized version of AVIF file.'=>'Actualmente se utiliza la versión optimizada del archivo AVIF.','WebP/AVIF For Extra srcset'=>'WebP/AVIF para srcset adicional','Next-Gen Image Format'=>'Formato de imagen de próxima generación','Enabled AVIF file successfully.'=>'Archivo AVIF activado correctamente.','Disabled AVIF file successfully.'=>'El archivo AVIF desactivado correctamente.','Reset image optimization counter successfully.'=>'Restablecido el contador de optimización de imágenes correctamente.','Filename is empty!'=>'¡El nombre del archivo está vacío!','You will need to finish %s setup to use the online services.'=>'Necesitarás finalizar la configuración de %s para utilizar los servicios en línea.','Sync QUIC.cloud status successfully.'=>'Sincronizado el estado de QUIC.cloud correctamente.','Linked to QUIC.cloud preview environment, for testing purpose only.'=>'Enlazado al entorno de vista previa de QUIC.cloud, solo para fines de prueba.','Click here to proceed.'=>'Haz clic aquí para continuar.','Site not recognized. QUIC.cloud deactivated automatically. Please reactivate your QUIC.cloud account.'=>'Sitio no reconocido. QUIC.cloud se desactivó automáticamente. Reactiva tu cuenta de QUIC.cloud.','Reset %s activation successfully.'=>'Restablecida la activación de %s correctamente.','Congratulations, %s successfully set this domain up for the online services with CDN service.'=>'Felicidades, %s configuró correctamente este dominio para los servicios en línea con servicio CDN.','Congratulations, %s successfully set this domain up for the online services.'=>'Felicidades, %s configuró correctamente este dominio para los servicios en línea.','Congratulations, %s successfully set this domain up for the anonymous online services.'=>'Felicidades, %s configuró correctamente este dominio para los servicios anónimos en línea.','%s activation data expired.'=>'%s datos de activación caducados.','Failed to parse %s activation status.'=>'No se pudo analizar el estado de activación de %s.','Failed to validate %s activation data.'=>'No se pudieron validar los datos de activación de %s.','Cert or key file does not exist.'=>'El archivo de certificado o clave no existe.','You need to activate QC first.'=>'Primero debes activar QC.','You need to set the %1$s first. Please use the command %2$s to set.'=>'Primero debes configurar %1$s. Usa el comando %2$s para configurarlo.','Failed to get echo data from WPAPI'=>'No se pudieron obtener los datos de eco de WPAPI','The user with id %s has editor access, which is not allowed for the role simulator.'=>'El usuario con id %s tiene acceso de editor, que no tiene permisos para el simulador de perfiles.','You have used all of your quota left for current service this month.'=>'Has utilizado toda la cuota que te quedaba para el servicio actual este mes.','Learn more or purchase additional quota.'=>'Más información o compra cuota adicional.','You have used all of your daily quota for today.'=>'Has utilizado toda tu cuota diaria de hoy.','If comment to be kept is like: %1$s write: %2$s'=>'Si el comentario a conservar es como: %1$s escribe: %2$s','When minifying HTML do not discard comments that match a specified pattern.'=>'Al minimizar HTML no descartes los comentarios que coincidan con un patrón especificado.','Specify an AJAX action in POST/GET and the number of seconds to cache that request, separated by a space.'=>'Especifica una acción AJAX en POST/GET y el número de segundos para almacenar en caché esa petición, separados por un espacio.','HTML Keep Comments'=>'HTML Mantener comentarios','AJAX Cache TTL'=>'TTL de caché AJAX','You have images waiting to be pulled. Please wait for the automatic pull to complete, or pull them down manually now.'=>'Tienes imágenes esperando a ser retiradas. Espera a que se complete la extracción automática o bájalas manualmente ahora.','Clean all orphaned post meta records'=>'Limpiar todos los registros meta de entradas huérfanas','Orphaned Post Meta'=>'Meta de entrada huérfano','Best available WordPress performance'=>'El mejor rendimiento disponible para WordPress','Clean orphaned post meta successfully.'=>'Limpieza correcta de los meta de entrada huérfanos.','Last Pulled'=>'Última extracción','You can list the 3rd party vary cookies here.'=>'Puedes listar las cookies de terceros que varían aquí.','Vary Cookies'=>'Variar cookies','Preconnecting speeds up future loads from a given origin.'=>'La preconexión acelera las cargas futuras desde un origen determinado.','If your theme does not use JS to update the mini cart, you must enable this option to display the correct cart contents.'=>'Si tu tema no utiliza JS para actualizar el minicarrito, debes activar esta opción para mostrar el contenido correcto del carrito.','Generate a separate vary cache copy for the mini cart when the cart is not empty.'=>'Generar una copia de caché variable separada para el minicarrito cuando éste no esté vacío.','Vary for Mini Cart'=>'Variante según el minicarrito','DNS Preconnect'=>'Preconexión DNS','This setting is %1$s for certain qualifying requests due to %2$s!'=>'¡Este ajuste es %1$s para determinadas solicitudes que cumplen los requisitos debido a %2$s!','Listed JS files or inline JS code will be delayed.'=>'Los archivos JS listados o el código JS en línea se retrasarán.','URL Search'=>'Buscar URL','JS Delayed Includes'=>'Inclusiones de JS retrasadas','Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more.'=>'Tu domain_key ha sido bloqueada temporalmente para evitar abusos. Puedes ponerte en contacto con el servicio de asistencia de QUIC.cloud para obtener más información.','Cloud server refused the current request due to unpulled images. Please pull the images first.'=>'El servidor de la nube ha rechazado la solicitud actual debido a que no se han extraído las imágenes. Por favor, extrae primero las imágenes.','Current server load'=>'Carga actual del servidor','Redis encountered a fatal error: %1$s (code: %2$d)'=>'Redis encontró un error fatal: %1$s (código: %2$d)','Started async image optimization request'=>'Se inició la solicitud de optimización asíncrona de imágenes','Started async crawling'=>'Se inició el rastreo asíncrono','Saving option failed. IPv4 only for %s.'=>'Falló el guardado de la opción. IPv4 es solo para %s.','Cloud server refused the current request due to rate limiting. Please try again later.'=>'El servidor en la nube rechazó la solicitud actual debido a la limitación de cuota. Por favor, inténtalo de nuevo más tarde.','Maximum image post id'=>'ID de entrada de imagen máxima','Current image post id position'=>'Posición actual del id de entrada de la imagen','Images ready to request'=>'Imágenes listas para la solicitud','Redetect'=>'Volver a detectar','If you are using a %1$s socket, %2$s should be set to %3$s'=>'Si estás usando un socket %1$s, %2$s debería estar en %3$s','All QUIC.cloud service queues have been cleared.'=>'Se han borrado todas las colas de servicio de QUIC.cloud.','Cache key must be integer or non-empty string, %s given.'=>'La clave de caché debe ser un entero o una cadena no vacía, %s proporcionado.','Cache key must not be an empty string.'=>'La clave de caché no puede ser una cadena vacía.','JS Deferred / Delayed Excludes'=>'Exclusiones de JS diferido / retrasado','The queue is processed asynchronously. It may take time.'=>'La cola se procesa de forma asíncrona. Puede llevar un tiempo.','In order to use QC services, need a real domain name, cannot use an IP.'=>'Para poder usar los servicios de QC necesitas un nombre de demonio real, no puedes usar una IP.','Restore Settings'=>'Restaurar los ajustes','This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?'=>'Esto restaurará la copia de seguridad de los ajustes creada %1$s antes de aplicar el preajuste %2$s. Cualquier cambio realizado desde entonces se perderá. ¿Quieres continuar?','Backup created %1$s before applying the %2$s preset'=>'Copia de seguridad creada %1$s antes de aplicar el preajuste %2$s','Applied the %1$s preset %2$s'=>'Se ha aplicado el prejuste %1$s %2$s','Restored backup settings %1$s'=>'Se han restaurado el respaldo de los ajustes %1$s','Error: Failed to apply the settings %1$s'=>'Error: No se pudieron aplicar los ajustes %1$s','History'=>'Historial','unknown'=>'desconocido','Apply Preset'=>'Aplicar el preajuste','This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?'=>'Se va a hacer una copia de seguridad de tus ajustes actuales y reemplazarlos con los de los preajustes %1$s. ¿Quieres continuar?','Who should use this preset?'=>'¿Quién debería usar este preajuste?','Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between.'=>'Utiliza un preajuste oficial diseñado por LiteSpeed para configurar tu sitio en un clic. Pruebe el cacheo esencial sin riesgos, la optimización extrema o algo intermedio.','LiteSpeed Cache Standard Presets'=>'Preajustes estándar de cache de LiteSpeed','A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores.'=>'Es obligatoria una clave de dominio para usar este preajuste. Activa el máximo nivel de optimizaciones para obtener puntuaciones de velocidad de página mejorados.','This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images.'=>'Este preajuste es casi seguro que requerirá pruebas y exclusiones de algo de CSS, JS y carga diferida de imágenes. Presta especial atención a los logotipos, o a imágenes de carrusel basadas en HTML.','Inline CSS added to Combine'=>'CSS en línea añadido a Combinar','Inline JS added to Combine'=>'JS en línea añadido a Combinar','JS Delayed'=>'JS Retrasado','Viewport Image Generation'=>'Generación del viewport de la imagen','Lazy Load for Images'=>'Carga diferida para imágenes','Everything in Aggressive, Plus'=>'Todo lo de Aggressive y además','Extreme'=>'Extremo','This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning.'=>'Este preajuste puede que funcione tal cual en algunas webs, ¡pero asegúrate de hacer pruebas! Puede que sean necesarias algunas exclusiones de CSS y JS en Optimización de página > Retoques.','Lazy Load for Iframes'=>'Carga diferida de Iframes','Removed Unused CSS for Users'=>'CSS sin uso eliminado para los usuarios','Asynchronous CSS Loading with Critical CSS'=>'Carga de CSS asíncrono con CSS crítico','CSS & JS Combine'=>'Combinar CSS y JS','Everything in Advanced, Plus'=>'Todo lo de Advance y además','Aggressive'=>'Agresivo','A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores.'=>'Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones de velocidad de página.','This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools.'=>'Este preajuste es bueno para la mayoría de webs, y es raro que provoque conflictos. Cualquier conflicto de CSS o JS puede solucionarse con las herramientas de Optimización de página > Retoques.','Remove Query Strings from Static Files'=>'Eliminar cadenas de consulta de recursos estáticos','DNS Prefetch for static files'=>'Precarga de DNS para archivos estáticos','JS Defer for both external and inline JS'=>'Aplazar JS para JS externos e incrustados','CSS, JS and HTML Minification'=>'Minimizado de CSS, JS y HTML','Guest Mode and Guest Optimization'=>'Modo de invitado y modo de optimización','Everything in Basic, Plus'=>'Todo en el básico, además','Advanced (Recommended)'=>'Avanzado (Recomendado)','A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools.'=>'Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones del sitio en las herramientas de medición de velocidad de página.','This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners.'=>'Este preajuste de bajo riesgo introduce optimizaciones básicas de mejora de la velocidad de página y experiencia de usuario. Adecuado para principiantes entusiastas.','Mobile Cache'=>'Caché móvil','Everything in Essentials, Plus'=>'Todo lo de Essentials y además','A Domain Key is not required to use this preset. Only basic caching features are enabled.'=>'No es obligatoria una clave de dominio para este preajuste. Solo se activan características básicas de caché.','This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development.'=>'Este preajuste sin riesgos es apropiado para todas las webs. Es bueno para nuevos usuarios, webs sencillas o desarrollos orientados a caché.','Higher TTL'=>'TTL mayor','Default Cache'=>'Caché por defecto','Essentials'=>'Básicos','LiteSpeed Cache Configuration Presets'=>'Preajustes de configuración de caché LiteSpeed','Standard Presets'=>'Preajustes estándar','Listed CSS files will be excluded from UCSS and saved to inline.'=>'Los archivos CSS listados se excluirán del CSS sin uso y guardados para que se incrusten.','UCSS File Excludes and Inline'=>'Excluir archivo del CSS sin uso e incrustar','UCSS Selector Allowlist'=>'Lista blanca del selector de CSS sin uso','Presets'=>'Preajustes','Partner Benefits Provided by'=>'Ventajas de colaboración ofrecidas por','LiteSpeed Logs'=>'Registros de LiteSpeed','Crawler Log'=>'Registros de rastreadores','Purge Log'=>'Purgar registro','Prevent writing log entries that include listed strings.'=>'Evita escribir entradas del registro que incluyan cadenas listadas.','View Site Before Cache'=>'Ver sitio sin caché','View Site Before Optimization'=>'Ver sitio sin optimizar','Debug Helpers'=>'Ayudas de depuración','Enable Viewport Images auto generation cron.'=>'Activar el cron de generación automática del viewport de imágenes.','This enables the page\'s initial screenful of imagery to be fully displayed without delay.'=>'Esto permite que la pantalla inicial de imágenes de la página se muestre completamente sin demora.','The Viewport Images service detects which images appear above the fold, and excludes them from lazy load.'=>'El servicio de viewport de imágenes detecta qué imágenes aparecen antes de hacer scroll y las excluye de la carga diferida.','When you use Lazy Load, it will delay the loading of all images on a page.'=>'Cuando usas la carga diferida, se retrasa la carga de todas las imágenes de la página.','Use %1$s to bypass remote image dimension check when %2$s is ON.'=>'Utiliza %1$s para saltarte la comprobación de dimensión en imágenes remotas cuando la %2$s esté ACTIVA.','VPI'=>'VPI','%s must be turned ON for this setting to work.'=>'%s debe estar activo para que este ajuste funcione.','Viewport Image'=>'Imagen de la vista','API: Filter %s available to disable blocklist.'=>'API: El filtro %s está disponible para desactivar la lista de bloqueos.','API: PHP Constant %s available to disable blocklist.'=>'API: La constante %s de PHP está disponible para desactivar la lista de bloqueos.','Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:'=>'Debido a que puede haber conflictos con LiteSpeed Cache, por favor, considera desactivar los siguientes plugins:','Mobile'=>'Móvil','Disable VPI'=>'Desactivar VPI','Disable Image Lazyload'=>'Desactivar la carga de imágenes diferida','Disable Cache'=>'Desactivar la caché','Debug String Excludes'=>'Exclusión de cadenas de depuración','Viewport Images Cron'=>'Cron de imágenes de la vista','Viewport Images'=>'Imágenes de la vista','Alias is in use by another QUIC.cloud account.'=>'El alias ya está en uso por otra cuenta de QUIC.cloud.','Unable to automatically add %1$s as a Domain Alias for main %2$s domain.'=>'No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal.','Unable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict.'=>'No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal, debido a un conflicto potencial con la CDN.','You cannot remove this DNS zone, because it is still in use. Please update the domain\'s nameservers, then try to delete this zone again, otherwise your site will become inaccessible.'=>'No puedes eliminar esta zona de DNS porque aún está en uso. Por favor, actualiza los servidores de nombers, luego tratar de borrar de nuevo esta zona, en caso contrario tu sitio será inaccesible.','The site is not a valid alias on QUIC.cloud.'=>'El sitio no tiene un alias válido en QUIC.cloud.','Please thoroughly test each JS file you add to ensure it functions as expected.'=>'Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera.','Please thoroughly test all items in %s to ensure they function as expected.'=>'Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera.','Use %1$s to bypass UCSS for the pages which page type is %2$s.'=>'Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s.','Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.'=>'Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL.','Filter %s available for UCSS per page type generation.'=>'Disponible el filtro %s para la generación de UCSS por tipo de página.','Guest Mode failed to test.'=>'Prueba fallida del modo de invitado.','Guest Mode passed testing.'=>'Prueba superada del modo de invitado.','Testing'=>'Probando','Guest Mode testing result'=>'Resultado de la prueba del modo de invitado','Not blocklisted'=>'No está en la lista negra','Learn more about when this is needed'=>'Aprende más sobre cuándo es esto necesario','Cleaned all localized resource entries.'=>'Limpiadas todas las entradas de recursos localizados.','View .htaccess'=>'Ver el archivo «.htaccess»','You can use this code %1$s in %2$s to specify the htaccess file path.'=>'Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess».','PHP Constant %s is supported.'=>'Es compatible la contante %s de PHP.','Default path is'=>'La ruta por defecto es','.htaccess Path'=>'Ruta del archivo «.htaccess»','Please read all warnings before enabling this option.'=>'Por favor, lee todas las advertencias antes de activar esta opción.','This will delete all generated unique CSS files'=>'Esto borrará todos los archivos CSS únicos generados','In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.'=>'Para evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s.','Use latest GitHub Dev/Master commit'=>'Utiliza el último commit Dev/Master de GitHub','Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.'=>'Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales.','Downgrade not recommended. May cause fatal error due to refactored code.'=>'No se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado.','Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.'=>'Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios.','Listed JS files or inline JS code will not be optimized by %s.'=>'Los archivos JS listados o el código JS integrado no serán optimizados por %s.','Listed URI will not generate UCSS.'=>'Las URI listadas no generarán UCSS.','The selector must exist in the CSS. Parent classes in the HTML will not work.'=>'El selector debe existir en el CSS. Las clases principales en HTML no funcionarán.','Wildcard %s supported.'=>'Compatibilidad con el comodín %s.','Useful for above-the-fold images causing CLS (a Core Web Vitals metric).'=>'Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals).','Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).'=>'Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals).','Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.'=>'Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración.','Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).'=>'Aplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals).','Delayed'=>'Retrasado','JS error can be found from the developer console of browser by right clicking and choosing Inspect.'=>'El error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar.','This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.'=>'Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins.','This will also add a preconnect to Google Fonts to establish a connection earlier.'=>'Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes.','Delay rendering off-screen HTML elements by its selector.'=>'Retraso al mostrar los elementos HTML fuera de la pantalla por su selector.','Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.'=>'Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas.','This option is bypassed due to %s option.'=>'Esta opción se omite debido a la opción %s.','Elements with attribute %s in HTML code will be excluded.'=>'Se excluirán los elementos con el atributo %s en el código HTML.','Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.'=>'Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante.','This option will automatically bypass %s option.'=>'Esta opción omitirá automáticamente la opción %s.','Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.'=>'UCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala.','Run %s Queue Manually'=>'Ejecutar manualmente la cola %s','This option is bypassed because %1$s option is %2$s.'=>'Esta opción se omite porque la opción %1$s es %2$s.','Automatic generation of unique CSS is in the background via a cron-based queue.'=>'La generación automática de CSS único está en segundo plano a través de una cola basada en cron.','This will drop the unused CSS on each page from the combined file.'=>'Esto eliminará el CSS no utilizado en cada página del archivo combinado.','HTML Settings'=>'Ajustes HTML','LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.'=>'Actualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración.','Listed IPs will be considered as Guest Mode visitors.'=>'Las IP listadas serán consideradas visitantes en modo invitado.','Listed User Agents will be considered as Guest Mode visitors.'=>'Los agentes de usuario listados serán considerados visitantes en modo invitado.','Your %1$s quota on %2$s will still be in use.'=>'Tu cuota de %1$s en %2$s aún seguirá en uso.','This option can help to correct the cache vary for certain advanced mobile or tablet visitors.'=>'Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas.','Guest Mode provides an always cacheable landing page for an automated guest\'s first time visit, and then attempts to update cache varies via AJAX.'=>'El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX.','Please make sure this IP is the correct one for visiting your site.'=>'Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio.','the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.'=>'la IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor.','You need to turn %s on and finish all WebP generation to get maximum result.'=>'Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado.','You need to turn %s on to get maximum result.'=>'Necesitas activar %s para obtener el máximo resultado.','This option enables maximum optimization for Guest Mode visitors.'=>'Esta opción permite la máxima optimización para los visitantes del modo de invitado.','More'=>'Más','Remaining Daily Quota'=>'Cuota diaria restante','Successfully Crawled'=>'Rastreado correctamente','Already Cached'=>'Ya en la caché','The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.'=>'El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio.','Optional when API token used.'=>'Opcional cuando se usa el token de la API.','Recommended to generate the token from Cloudflare API token template "WordPress".'=>'Recomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare.','Global API Key / API Token'=>'Clave/Token global de la API','NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are only using QUIC.cloud or Cloudflare, leave this setting %s.'=>'NOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %s.','Turn this setting %s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.'=>'Cambia este ajuste %s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud.','Use external object cache functionality.'=>'Usa la funcionalidad de la caché de objetos externos.','Serve a separate cache copy for mobile visitors.'=>'Ofrece una copia de la caché separada para los visitantes móviles.','By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.'=>'Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente.','Cleaned all Unique CSS files.'=>'Limpiados todos los archivos CSS únicos.','Add Missing Sizes'=>'Añadir tamaños que faltan','Optimize for Guests Only'=>'Optimizar solamente para invitados','Guest Mode JS Excludes'=>'Exclusiones JS del modo de invitado','CCSS Per URL'=>'CCSS por URL','HTML Lazy Load Selectors'=>'Selectores HTML de carga diferida','UCSS URI Excludes'=>'Exclusiones UCSS de la URI','UCSS Inline'=>'UCCS integrado','Guest Optimization'=>'Optimización para invitados','Guest Mode'=>'Modo de invitado','Guest Mode IPs'=>'IP del modo de invitado','Guest Mode User Agents'=>'Agentes de usuario del modo de invitado','Online node needs to be redetected.'=>'El nodo online tiene que volver a ser detectado.','The current server is under heavy load.'=>'El servidor actual está bajo una gran carga.','Please see %s for more details.'=>'Por favor, consulta %s para más detalles.','This setting will regenerate crawler list and clear the disabled list!'=>'¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!','%1$s %2$s files left in queue'=>'%1$s %2$s archivos restantes en la cola','Crawler disabled list is cleared! All crawlers are set to active! '=>'¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos! ','Redetected node'=>'Nodo detectado nuevamente','No available Cloud Node after checked server load.'=>'No hay ningún nodo de la nube disponible después de comprobar la carga del servidor.','Localization Files'=>'Archivos de idiomas','Purged!'=>'¡Purgado!','Resources listed here will be copied and replaced with local URLs.'=>'Los recursos listados aquí se copiarán y reemplazarán con URL locales.','Use latest GitHub Master commit'=>'Usar el último commit maestro de GitHub','Use latest GitHub Dev commit'=>'Usar el último commit de desarrollo de GitHub','No valid sitemap parsed for crawler.'=>'No se ha analizado ningún mapa del sitio válido para el rastreador.','CSS Combine External and Inline'=>'Combinación de CSS externo e integrado','Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.'=>'Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.','Minify CSS files and inline CSS code.'=>'Minimiza archivos CSS y código CSS integrado.','Predefined list will also be combined w/ the above settings'=>'La lista predefinida también se combinará con los ajustes anteriores','Localization'=>'Localización','Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.'=>'Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.','Combine all local JS files into a single file.'=>'Combina todos los archivos JS locales en un único archivo.','Listed JS files or inline JS code will not be deferred or delayed.'=>'Los archivos JS listados o el código JS integrado no serán aplazados ni diferidos.','Click here to settings'=>'Haz clic aquí para los ajustes','JS Defer'=>'Diferir JS','LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.'=>'LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS.','JS Combine External and Inline'=>'Combinación de JS externo e integrado','Dismiss'=>'Descartar','The latest data file is'=>'El último archivo de datos es','The list will be merged with the predefined nonces in your local data file.'=>'La lista se fusionará con los nonces predefinidos en tu archivo de datos local.','Combine CSS files and inline CSS code.'=>'Combina archivos CSS y código CSS integrado.','Minify JS files and inline JS codes.'=>'Minimiza archivos JS y códigos JS integrados.','Listed JS files or inline JS code will not be minified or combined.'=>'Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán.','Listed CSS files or inline CSS code will not be minified or combined.'=>'Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán.','This setting is overwritten by the Network setting'=>'Los ajustes de red sobreescriben este ajuste','LQIP Excludes'=>'Exclusiones de LQIP','These images will not generate LQIP.'=>'Estas imágenes no generarán LQIP.','Are you sure you want to reset all settings back to the default settings?'=>'¿Seguro que quieres restablecer los ajustes a los valores por defecto?','This option will remove all %s tags from HTML.'=>'Esta opción eliminará todas las etiquetas %s del HTML.','Are you sure you want to clear all cloud nodes?'=>'¿Seguro que quieres vaciar todos los nodos cloud?','Remove Noscript Tags'=>'Eliminar las etiquetas Noscript','The site is not registered on QUIC.cloud.'=>'El sitio no está registrado en QUIC.cloud.','Click here to set.'=>'Haz clic aquí para configurarlo.','Localize Resources'=>'Recursos localizados','Setting Up Custom Headers'=>'Configurar cabeceras personalizadas','This will delete all localized resources'=>'Esto borrará todos los recursos localizados','Localized Resources'=>'Recursos localizados','Comments are supported. Start a line with a %s to turn it into a comment line.'=>'Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario.','HTTPS sources only.'=>'Solo orígenes HTTPS.','Localize external resources.'=>'Localizar recursos externos.','Localization Settings'=>'Ajustes de localización','Use QUIC.cloud online service to generate unique CSS.'=>'Usar el servicio en línea QUIC.cloud para generar CSS único.','Generate UCSS'=>'Generar UCSS','Unique CSS'=>'CSS único','Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches'=>'Purga las entradas de la caché creadas por este plugin, excepto las cachés de CSS único, CSS crítico y de LQIP','LiteSpeed Report'=>'Informe de LiteSpeed','Image Thumbnail Group Sizes'=>'Grupo de tamaños de miniaturas','Ignore certain query strings when caching. (LSWS %s required)'=>'Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)','For URLs with wildcards, there may be a delay in initiating scheduled purge.'=>'En el caso de las URL con comodines, puede haber un retraso en el inicio de la purga programada.','By design, this option may serve stale content. Do not enable this option, if that is not OK with you.'=>'Por diseño, esta opción puede servir contenido obsoleto. No actives esta opción si no estás de acuerdo.','Serve Stale'=>'Servir contenido rancio','This setting is overwritten by the primary site setting'=>'Esta ajuste es sobrescrito por los ajuste del sitio primario','One or more pulled images does not match with the notified image md5'=>'Una o más de las imágenes recuperadas no coincide con el md5 de imagen avisado','Some optimized image file(s) has expired and was cleared.'=>'Una o más imágenes optimizadas han caducado y han sido borradas.','You have too many requested images, please try again in a few minutes.'=>'Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.','Pulled WebP image md5 does not match the notified WebP image md5.'=>'El md5 de la imagen WebP recuperada no coincide con el md5 avisado de la imagen WebP.','Pulled AVIF image md5 does not match the notified AVIF image md5.'=>'El md5 de la imagen AVIF extraída no coincide con el md5 de la imagen AVIF avisada.','Read LiteSpeed Documentation'=>'Leer la documentación de LiteSpeed','There is proceeding queue not pulled yet. Queue info: %s.'=>'La cola aún no ha sido recuperada. Información de la cola: %s.','Specify how long, in seconds, Gravatar files are cached.'=>'Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar.','Cleared %1$s invalid images.'=>'Purgadas %1$s imágenes no válidas.','LiteSpeed Cache General Settings'=>'Ajustes generales de LiteSpeed Cache','This will delete all cached Gravatar files'=>'Esto borrará todos los archivos Gravatar almacenados en caché','Prevent any debug log of listed pages.'=>'Evita cualquier registro de depuración de las páginas listadas.','Only log listed pages.'=>'Solo registra las páginas listadas.','Specify the maximum size of the log file.'=>'Especifica el tamaño máximo del archivo de registro.','To prevent filling up the disk, this setting should be OFF when everything is working.'=>'Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione.','Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.'=>'Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.','Use latest WordPress release version'=>'Usar la última versión de WordPress','OR'=>'O','Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.'=>'Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo.','Reset Settings'=>'Restablecer ajustes','LiteSpeed Cache Toolbox'=>'Caja de herramientas de LiteSpeed','Beta Test'=>'Pruebas beta','Log View'=>'Vista de registros','Debug Settings'=>'Ajustes de depuración','Turn ON to control heartbeat in backend editor.'=>'Actívalo para controlar heartbeat en el editor.','Turn ON to control heartbeat on backend.'=>'Actívalo para controlar heartbeat en el escritorio.','Set to %1$s to forbid heartbeat on %2$s.'=>'Ponlo en %1$s para bloquear heartbeat en %2$s.','WordPress valid interval is %s seconds.'=>'El intervalo válido de WordPress es de %s segundos.','Specify the %s heartbeat interval in seconds.'=>'Especifica el intervalo de heartbeat para %s en segundos.','Turn ON to control heartbeat on frontend.'=>'Enciéndelo para controlar heartbeat en las páginas públicas.','Disable WordPress interval heartbeat to reduce server load.'=>'Desactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor.','Heartbeat Control'=>'Control de Heartbeat','provide more information here to assist the LiteSpeed team with debugging.'=>'proporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración.','Optional'=>'Opcional','Generate Link for Current User'=>'Generar el enlace para el usuario actual','Passwordless Link'=>'Enlace sin contraseña','System Information'=>'Información del sistema','Go to plugins list'=>'Ir a la lista de plugins','Install DoLogin Security'=>'Instalar la seguridad de DoLogin','Check my public IP from'=>'Comprobar mi IP pública desde','Your server IP'=>'La IP de tu servidor','Enter this site\'s IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.'=>'Introduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN.','This will enable crawler cron.'=>'Esto activará el cron rastreador.','Crawler General Settings'=>'Ajustes generales del rastreador','Remove from Blocklist'=>'Eliminar de la lista negra','Empty blocklist'=>'Vaciar la lista negra','Are you sure to delete all existing blocklist items?'=>'¿Seguro que quieres borrar todos los elementos de la lista negra?','Blocklisted due to not cacheable'=>'En la lista negra debido a que no se puede cachear','Add to Blocklist'=>'Añadir a la lista negra','Operation'=>'Operación','Sitemap Total'=>'Total del mapa del sitio','Sitemap List'=>'Lista del mapa del sitio','Refresh Crawler Map'=>'Recargar el mapa del rastreador','Clean Crawler Map'=>'Vaciar el mapa del rastreador','Blocklist'=>'Lista negra','Map'=>'Mapa','Summary'=>'Sumario','Cache Miss'=>'Fallo de caché','Cache Hit'=>'Acierto de caché','Waiting to be Crawled'=>'Esperando a ser rastreado','Blocklisted'=>'En lista negra','Miss'=>'Fallo','Hit'=>'Acierto','Waiting'=>'En espera','Running'=>'En curso','Use %1$s in %2$s to indicate this cookie has not been set.'=>'Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida.','Add new cookie to simulate'=>'Añadir una cookie nueva para simular','Remove cookie simulation'=>'Eliminar la simulación de la cookie','Htaccess rule is: %s'=>'La regla de Htaccess es: %s','More settings available under %s menu'=>'Más ajustes disponibles en el menú %s','The amount of time, in seconds, that files will be stored in browser cache before expiring.'=>'La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar.','OpenLiteSpeed users please check this'=>'Marca esto si eres un usuario de OpenLiteSpeed','Browser Cache Settings'=>'Ajustes de la caché del navegador','Paths containing these strings will be forced to public cached regardless of no-cacheable settings.'=>'Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.','With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.'=>'Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.','An optional second parameter may be used to specify cache control. Use a space to separate'=>'Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar','The above nonces will be converted to ESI automatically.'=>'Los nonces anteriores se convertirán en ESI automáticamente.','Browser'=>'Navegador','Object'=>'Objeto','Default port for %1$s is %2$s.'=>'Puerto por defecto de %1$s es %2$s.','Object Cache Settings'=>'Ajustes de la caché de objetos','Specify an HTTP status code and the number of seconds to cache that page, separated by a space.'=>'Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.','Specify how long, in seconds, the front page is cached.'=>'Especifica cuánto tiempo, en segundos, se almacena la página de inicio.','TTL'=>'TTL','If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.'=>'Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.','Swap'=>'Swap','Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.'=>'Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.','Avatar list in queue waiting for update'=>'La lista de avatares está en la cola esperando ser actualizada','Refresh Gravatar cache by cron.'=>'Refrescar la caché de Gravatar por cron.','Accelerates the speed by caching Gravatar (Globally Recognized Avatars).'=>'Acelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente).','Store Gravatar locally.'=>'Almacenar los gravatares localmente.','Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.'=>'Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.','LQIP requests will not be sent for images where both width and height are smaller than these dimensions.'=>'No se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.','pixels'=>'pixels','Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.'=>'Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.','Specify the quality when generating LQIP.'=>'Especifica la calidad al generar el LQIP.','Keep this off to use plain color placeholders.'=>'Mantén esto apagado para usar marcadores de posición de color.','Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.'=>'Usa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga.','Specify the responsive placeholder SVG color.'=>'Especifica el color del marcador de posición SVG adaptable.','Variables %s will be replaced with the configured background color.'=>'Las variables %s serán reemplazadas por el color de fondo configurado.','Variables %s will be replaced with the corresponding image properties.'=>'Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen.','It will be converted to a base64 SVG placeholder on-the-fly.'=>'Se convertirá en un marcador de posición SVG base64 sobre la marcha.','Specify an SVG to be used as a placeholder when generating locally.'=>'Especifica un SVG que se utilizará como marcador de posición al generar localmente.','Prevent any lazy load of listed pages.'=>'Evita cualquier carga diferida de las páginas de la lista.','Iframes having these parent class names will not be lazy loaded.'=>'Los iframes con estos nombres de clase padres no se cargarán de forma diferida.','Iframes containing these class names will not be lazy loaded.'=>'Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.','Images having these parent class names will not be lazy loaded.'=>'Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.','LiteSpeed Cache Page Optimization'=>'Optimización de página de LiteSpeed Cache','Media Excludes'=>'Exclusiones de medios','CSS Settings'=>'Ajustes de CSS','%s is recommended.'=>'Se recomienda %s.','Deferred'=>'Diferido','Default'=>'Por defecto','This can improve the page loading speed.'=>'Esto puede mejorar la velocidad de carga de la página.','Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.'=>'Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.','New developer version %s is available now.'=>'La nueva versión de desarrollo %s está disponible.','New Developer Version Available!'=>'¡Nueva versión para desarrolladores disponible!','Dismiss this notice'=>'Ignorar ese aviso','Tweet this'=>'Tuitea esto','Tweet preview'=>'Vista previa del tweet','Learn more'=>'Aprender más','You just unlocked a promotion from QUIC.cloud!'=>'¡Acabas de desbloquear una promoción de QUIC.cloud!','The image compression quality setting of WordPress out of 100.'=>'El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.','Image Optimization Settings'=>'Ajustes de optimización de imágenes','Are you sure to destroy all optimized images?'=>'¿Está seguro de destruir todas las imágenes optimizadas?','Use Optimized Files'=>'Usar archivos optimizados','Switch back to using optimized images on your site'=>'Volver a utilizar imágenes optimizadas en tu web','Use Original Files'=>'Usar archivos originales','Use original images (unoptimized) on your site'=>'Usar imágenes originales (no optimizadas) en tu web','You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.'=>'Puedes alternar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones normales como a las versiones webp si están disponibles.','Optimization Tools'=>'Herramientas de optimización','Rescan New Thumbnails'=>'Reexaminar nuevas miniaturas','Congratulations, all gathered!'=>'¡Felicidades, todos obtenidos!','What is an image group?'=>'¿Qué es un grupo de imágenes?','Delete all backups of the original images'=>'Borrar todas las copias de seguridad de las imágenes originales','Calculate Backups Disk Space'=>'Calcular el espacio en disco de las copias de seguridad','Optimization Status'=>'Estado de optimización','Current limit is'=>'El límite actual es','To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited.'=>'Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de grupos de imágenes permitidas en una sola petición es limitada.','You can request a maximum of %s images at once.'=>'Puedes solicitar un máximo de %s imágenes de una vez.','Optimize images with our QUIC.cloud server'=>'Optimiza las imágenes con nuestro servidor en QUIC.cloud','Revisions newer than this many days will be kept when cleaning revisions.'=>'Las revisiones más recientes se guardarán cuando se limpien las revisiones.','Day(s)'=>'Día(s)','Specify the number of most recent revisions to keep when cleaning revisions.'=>'Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.','LiteSpeed Cache Database Optimization'=>'Optimización de la base de datos de la caché de LiteSpeed','DB Optimization Settings'=>'Ajustes de optimización de la BD','Option Name'=>'Nombre de la opción','Database Summary'=>'Resumen de la base de datos','We are good. No table uses MyISAM engine.'=>'Estamos bien. Ninguna tabla usa el motor MyISAM.','Convert to InnoDB'=>'Convertir a InnoDB','Tool'=>'Herramienta','Engine'=>'Motor','Table'=>'Tabla','Database Table Engine Converter'=>'Conversor de motor de tabla de base de datos','Clean revisions older than %1$s day(s), excluding %2$s latest revisions'=>'Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones','Currently active crawler'=>'Rastreador activo','Crawler(s)'=>'Rastreador(es)','Crawler Status'=>'Estado del rastreador','Force cron'=>'Forzar cron','Requests in queue'=>'Peticiones en cola','Time to execute previous request: %s'=>'Hora para ejecutar la solicitud anterior: %s','Private Cache'=>'Caché privada','Public Cache'=>'Caché pública','Cache Status'=>'Estado de caché','Last Pull'=>'Última lectura','Image Optimization Summary'=>'Resumen de la optimización de imágenes','Refresh page score'=>'Actualizar la puntuación de la página','Are you sure you want to redetect the closest cloud server for this service?'=>'¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?','Current closest Cloud server is %s. Click to redetect.'=>'El servidor en la nube más cercano es %s. Haz clic para volver a detectarlo.','Refresh page load time'=>'Actualizar el tiempo de carga de la página','Go to QUIC.cloud dashboard'=>'Ir al escritorio de QUIC.cloud','Low Quality Image Placeholder'=>'Marcador de imagen de baja calidad','Sync data from Cloud'=>'Sincronizar los datos de la nube','QUIC.cloud Service Usage Statistics'=>'Estadísticas de uso del servicio QUIC.cloud','Total images optimized in this month'=>'Total de imágenes optimizadas en este mes','Total Usage'=>'Uso total','Pay as You Go Usage Statistics'=>'Estadísticas pago por uso','PAYG Balance'=>'Balance de pagos','Pay as You Go'=>'Pago por uso','Usage'=>'Uso','Fast Queue Usage'=>'Uso de la cola rápida','CDN Bandwidth'=>'Ancho de banda de la CDN','LiteSpeed Cache Dashboard'=>'Escritorio de LiteSpeed Cache','Network Dashboard'=>'Escritorio de red','No cloud services currently in use'=>'No hay servicios de la nube en uso','Click to clear all nodes for further redetection.'=>'Haz clic para borrar todos los nodos para volver a detectar.','Current Cloud Nodes in Service'=>'Nodos de la nube actual en servicio','Link to QUIC.cloud'=>'Enlace a QUIC.cloud','General Settings'=>'Ajustes generales','Specify which HTML element attributes will be replaced with CDN Mapping.'=>'Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.','Add new CDN URL'=>'Añadir una nueva URL de la CDN','Remove CDN URL'=>'Eliminar la URL de la CDN','To enable the following functionality, turn ON Cloudflare API in CDN Settings.'=>'Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN.','QUIC.cloud'=>'QUIC.cloud','WooCommerce Settings'=>'Ajustes de WooCommerce','Current Online Server IPs'=>'IPs del servidor en línea','Before generating key, please verify all IPs on this list are allowlisted'=>'Antes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blanca','For online services to work correctly, you must allowlist all %s server IPs.'=>'Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor.','LQIP Cache'=>'Caché de LQIP','Options saved.'=>'Las opciones han sido guardadas.','Removed backups successfully.'=>'Copias de seguridad eliminadas correctamente.','Calculated backups successfully.'=>'Copias de seguridad calculadas correctamente.','Rescanned %d images successfully.'=>'%d imágenes reexploradas correctamente.','Rescanned successfully.'=>'Reexploración correcta.','Destroy all optimization data successfully.'=>'Todos los datos de optimización destruidos correctamente.','Cleaned up unfinished data successfully.'=>'Datos incompletos limpiados correctamente.','Pull Cron is running'=>'Pull Cron se está ejecutando','No valid image found by Cloud server in the current request.'=>'El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual.','No valid image found in the current request.'=>'No se ha encontrado ninguna imagen válida en la petición actual.','Pushed %1$s to Cloud server, accepted %2$s.'=>'%1$s enviadas al servidor en la nube, %2$s aceptadas.','Revisions Max Age'=>'Edad máxima de las revisiones','Revisions Max Number'=>'Número máximo de revisiones','Debug URI Excludes'=>'URIs excluidas de la depuración','Debug URI Includes'=>'URIs incluidas en la depuración','HTML Attribute To Replace'=>'Atributo HTML a reemplazar','Use CDN Mapping'=>'Usar mapeo de CDN','QUIC.cloud CDN:'=>'CDN de QUIC.cloud:','Editor Heartbeat TTL'=>'TTL de heartbeat del editor','Editor Heartbeat'=>'Heartbeat del editor','Backend Heartbeat TTL'=>'TTL de heartbeat de la administración','Backend Heartbeat Control'=>'Control de heartbeat de la administración','Frontend Heartbeat TTL'=>'TTL de heartbeat de la parte pública','Frontend Heartbeat Control'=>'Control de heartbeat de la parte pública','Backend .htaccess Path'=>'Ruta del .htaccess de la administración','Frontend .htaccess Path'=>'Ruta del .htaccess de la parte pública','ESI Nonces'=>'Nonces de ESI','WordPress Image Quality Control'=>'Control de la calidad de imagen de WordPress','Auto Request Cron'=>'Cron de petición automática','Generate LQIP In Background'=>'Generar LQIP en segundo plano','LQIP Minimum Dimensions'=>'Dimensiones mínimas de LQIP','LQIP Quality'=>'Calidad de LQIP','LQIP Cloud Generator'=>'Generador de LQIP en la nube','Responsive Placeholder SVG'=>'Marcador de posición SVG adaptable','Responsive Placeholder Color'=>'Color del marcador de posición adaptable','Basic Image Placeholder'=>'Marcador de posición de imagen básica','Lazy Load URI Excludes'=>'Exclusión de URIs de carga diferida','Lazy Load Iframe Parent Class Name Excludes'=>'Exclusiones de carga diferida de clases padre de iframes','Lazy Load Iframe Class Name Excludes'=>'Exclusiones de carga diferida de clases de iframes','Lazy Load Image Parent Class Name Excludes'=>'Exclusiones de carga diferida de clases padres','Gravatar Cache TTL'=>'TTL de la caché de Gravatar','Gravatar Cache Cron'=>'Cron de la caché de Gravatar','Gravatar Cache'=>'Caché de Gravatar','DNS Prefetch Control'=>'Control del prefetch DNS','Font Display Optimization'=>'Optimización de visualización de fuentes','Force Public Cache URIs'=>'Forzar URIs de caché púbica','Notifications'=>'Avisos','Default HTTP Status Code Page TTL'=>'TTL del código de estado de página por defecto','Default REST TTL'=>'TTL por defecto de REST','Enable Cache'=>'Activa cache','Server IP'=>'IP del servidor','Images not requested'=>'Imágenes no solicitadas','Sync credit allowance with Cloud Server successfully.'=>'Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube.','Failed to communicate with QUIC.cloud server'=>'Fallo de comunicación con el servidor QUIC.cloud','Good news from QUIC.cloud server'=>'Buenas noticias del servidor QUIC.cloud','Message from QUIC.cloud server'=>'Mensaje del servidor QUIC.cloud','Please try after %1$s for service %2$s.'=>'Por favor, inténtalo después de %1$s para el servicio %2$s.','No available Cloud Node.'=>'No hay ningún nodo de la nube disponible.','Cloud Error'=>'Error de la nube','The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.'=>'La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.','Restore from backup'=>'Restaurar desde la copia de seguridad','No backup of unoptimized WebP file exists.'=>'No existe una copia de seguridad del archivo WebP no optimizado.','WebP file reduced by %1$s (%2$s)'=>'Archivo WebP reducido en %1$s (%2$s)','Currently using original (unoptimized) version of WebP file.'=>'Actualmente usando la versión original (no optimizada) del archivo WebP.','Currently using optimized version of WebP file.'=>'Actualmente usando la versión optimizada del archivo WebP.','Orig'=>'Original','(no savings)'=>'(sin reducción)','Orig %s'=>'Original %s','Congratulation! Your file was already optimized'=>'¡Felicidades! Tu archivo ya ha sido optimizado','No backup of original file exists.'=>'No existe una copia de seguridad del archivo original.','Using optimized version of file. '=>'Usando la versión optimizada del archivo. ','Orig saved %s'=>'Ahorrado un %s del original','Original file reduced by %1$s (%2$s)'=>'Archivo original reducido en %1$s (%2$s)','Click to switch to optimized version.'=>'Haz clic para cambiar a la versión optimizada.','Currently using original (unoptimized) version of file.'=>'Actualmente usando la versión original (no optimizada) del archivo.','(non-optm)'=>'(no-optm)','Click to switch to original (unoptimized) version.'=>'Haz clic para cambiar a la versión original (no optimizada).','Currently using optimized version of file.'=>'Actualmente usando la versión optimizada del archivo.','(optm)'=>'(optm)','LQIP image preview for size %s'=>'Vista previa de la imagen LQIP para el tamaño %s','LQIP'=>'LQIP','Previously existed in blocklist'=>'Anteriormente existía en la lista negra','Manually added to blocklist'=>'Añadido manualmente a la lista negra','Mobile Agent Rules'=>'Reglas de agente móvil','Sitemap created successfully: %d items'=>'Mapa del sitio creado con éxito: %d elementos','Sitemap cleaned successfully'=>'El mapa del sitio se limpió con éxito','Invalid IP'=>'IP no válida','Value range'=>'Rango de valores','Smaller than'=>'Más pequeño que','Larger than'=>'Mayor que','Zero, or'=>'Cero, o','Maximum value'=>'Valor máximo','Minimum value'=>'Valor mínimo','Path must end with %s'=>'La ruta debe terminar en %s','Invalid rewrite rule'=>'Regla de reescritura no válida','currently set to %s'=>'actualmente establecido en %s','This setting is overwritten by the PHP constant %s'=>'Este ajuste es sobrescrita por la constante %s de PHP','Toolbox'=>'Herramientas','Database'=>'Base de datos','Page Optimization'=>'Optimización de página','Dashboard'=>'Escritorio','Converted to InnoDB successfully.'=>'Convertido a InnoDB correctamente.','Cleaned all Gravatar files.'=>'Vaciados todos los archivos de Gravatar.','Cleaned all LQIP files.'=>'Vaciados todos los archivos LQIP.','Unknown error'=>'Error desconocido','Your domain has been forbidden from using our services due to a previous policy violation.'=>'A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior.','The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: '=>'Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: ','The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.'=>'Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores.','The callback validation to your domain failed due to hash mismatch.'=>'Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash.','Your application is waiting for approval.'=>'Tu solicitud está a la espera de aprobación.','Previous request too recent. Please try again after %s.'=>'La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.','Previous request too recent. Please try again later.'=>'La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.','Crawler disabled by the server admin.'=>'Rastreador desactivado por el administrador del servidor.','Failed to create table %1$s! SQL: %2$s.'=>'¡Error al crear la tabla %1$s! SQL: %2$s.','Could not find %1$s in %2$s.'=>'No se ha podido encontrar %1$s en %2$s.','Credits are not enough to proceed the current request.'=>'Los créditos no son suficientes para proceder con la solicitud actual.','The domain key is not correct. Please try to sync your domain key again.'=>'La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio.','There is proceeding queue not pulled yet.'=>'Hay una cola de procedimiento que no se ha retirado todavía.','Not enough parameters. Please check if the domain key is set correctly'=>'No hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamente','The image list is empty.'=>'La lista de imágenes está vacía.','LiteSpeed Crawler Cron'=>'Cron del rastreador de LiteSpeed','Every Minute'=>'Cada minuto','Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.'=>'Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.','To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.'=>'Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.','Generated links may be managed under %sSettings%s.'=>'Los enlaces generados pueden gestionarse en los %sAjustes%s.','Please do NOT share the above passwordless link with anyone.'=>'Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior.','To generate a passwordless link for LiteSpeed Support Team access, you must install %s.'=>'Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.','Install'=>'Instalar','These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.'=>'Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.','PageSpeed Score'=>'Puntuación de PageSpeed','Improved by'=>'Mejorado por','After'=>'Después','Before'=>'Antes','Page Load Time'=>'Tiempo de carga de la página','To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.'=>'Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.','Preserve EXIF/XMP data'=>'Conservar los datos EXIF/XMP','Try GitHub Version'=>'Probar versión de GitHub','If you turn any of the above settings OFF, please remove the related file types from the %s box.'=>'Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.','Both full and partial strings can be used.'=>'Se pueden usa cadenas parciales y completas.','Images containing these class names will not be lazy loaded.'=>'Las imágenes que contengan estos nombres de clases no tendrán carga diferida.','Lazy Load Image Class Name Excludes'=>'Exclusión de nombres de clases para carga diferida de imágenes','For example, %1$s defines a TTL of %2$s seconds for %3$s.'=>'Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s.','To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.'=>'Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.','Maybe Later'=>'Puede que más tarde','Turn On Auto Upgrade'=>'Activar la actualización automática','Upgrade'=>'Actualizar','New release %s is available now.'=>'La nueva versión %s está disponible ahora.','New Version Available!'=>'¡Nueva versión disponible!','Created with ❤️ by LiteSpeed team.'=>'Creado con ❤️ por el equipo de LiteSpeed.','Sure I\'d love to review!'=>'¡Por supuesto, me encantará valorarlo!','Thank You for Using the LiteSpeed Cache Plugin!'=>'¡Gracias por usar el plugin de caché LiteSpeed!','Upgraded successfully.'=>'Actualizado con éxito.','Failed to upgrade.'=>'Fallo al actualizar.','Changed setting successfully.'=>'Ajuste cambiado con éxito.','ESI sample for developers'=>'Muestra de ESI para desarrolaldores','Replace %1$s with %2$s.'=>'Reemplaza %1$s con %2$s.','You can turn shortcodes into ESI blocks.'=>'Puedes convertir shortcodes en bloques ESI.','WpW: Private Cache vs. Public Cache'=>'WpW: Caché privada o caché pública','Append query string %s to the resources to bypass this action.'=>'Añade la cadena de consulta %s a los recursos para evitar esta acción.','Google reCAPTCHA will be bypassed automatically.'=>'Google reCAPTCHA se omitirá automáticamente.','To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.'=>'Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.','Cookie Values'=>'Valores de la cookie','Cookie Name'=>'Nombre de la cookie','Cookie Simulation'=>'Simulación de cookie','Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.'=>'Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto.','Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.'=>'Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.','Automatically Upgrade'=>'Actualizar automáticamente','Your IP'=>'Tu IP','Reset successfully.'=>'Restablecimiento realizado con éxito.','This will reset all settings to default settings.'=>'Esto restablecerá todos los ajustes a su valores predeterminados.','Reset All Settings'=>'Restablecer todos los ajustes','Separate critical CSS files will be generated for paths containing these strings.'=>'Separa archivos CSS críticos al generar las rutas que contengan estas cadenas.','Separate CCSS Cache URIs'=>'Distintas URIs de caché CCSS','For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.'=>'Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.','List post types where each item of that type should have its own CCSS generated.'=>'Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.','Separate CCSS Cache Post Types'=>'Tipos de contenido de caché de CCSS distintos','Size list in queue waiting for cron'=>'Tamaño de la lista en la cola de espera del cron','If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.'=>'Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.','Automatically generate LQIP in the background via a cron-based queue.'=>'Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.','This will generate the placeholder with same dimensions as the image if it has the width and height attributes.'=>'Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.','Responsive image placeholders can help to reduce layout reshuffle when images are loaded.'=>'Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.','Responsive Placeholder'=>'Marcador de posición adaptable','This will delete all generated image LQIP placeholder files'=>'Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP','Please enable LiteSpeed Cache in the plugin settings.'=>'Por favor, activa LiteSpeed Cache en los ajustes del plugin.','Please enable the LSCache Module at the server level, or ask your hosting provider.'=>'Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.','Failed to request via WordPress'=>'Fallo en la solicitud desde WordPress','High-performance page caching and site optimization from LiteSpeed'=>'Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed','Reset the optimized data successfully.'=>'Datos de optimización restablecidos correctamente.','Update %s now'=>'Actualizar %s','View %1$s version %2$s details'=>'Ver detalles de la versión %2$s de %1$s','<a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.'=>'<a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.','Install %s'=>'Instalar %s','LSCache caching functions on this page are currently unavailable!'=>'¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!','%1$s plugin version %2$s required for this action.'=>'Para esta acción se necesita la versión %2$s del plugin %1$s.','We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.'=>'Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.','Automatically remove the original image backups after fetching optimized images.'=>'Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.','Remove Original Backups'=>'Eliminar copias de seguridad del orginal','Automatically request optimization via cron job.'=>'Solicitar automáticamente la optimización mediante un trabajo cron.','A backup of each image is saved before it is optimized.'=>'Se guarda una copia de seguridad de cada imagen antes de optimizarla.','Switched images successfully.'=>'Imágenes cambiadas correctamente.','This can improve quality but may result in larger images than lossy compression will.'=>'Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.','Optimize images using lossless compression.'=>'Optimizar imágenes usando compresión sin pérdida.','Optimize Losslessly'=>'Optimizar sin pérdida','Request WebP/AVIF versions of original images when doing optimization.'=>'Solicita versiones WebP/AVIF de las imágenes originales al hacer la optimización.','Optimize images and save backups of the originals in the same folder.'=>'Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.','Optimize Original Images'=>'Optimizar imágenes originales','When this option is turned %s, it will also load Google Fonts asynchronously.'=>'Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.','Cleaned all Critical CSS files.'=>'Limpiados todos los archivos CSS críticos.','This will inline the asynchronous CSS library to avoid render blocking.'=>'Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.','Inline CSS Async Lib'=>'Biblioteca de CSS integrado asíncrono','Run Queue Manually'=>'Ejecutar la cola manualmente','URL list in %s queue waiting for cron'=>'Lista de URL en cola %s esperando el cron','Last requested cost'=>'Último coste solicitado','Last generated'=>'Último generado','If set to %s this is done in the foreground, which may slow down page load.'=>'Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.','Automatic generation of critical CSS is in the background via a cron-based queue.'=>'Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.','Optimize CSS delivery.'=>'Optimiza la entrega de CSS.','This will delete all generated critical CSS files'=>'Esto borrará todos los archivos generados de CSS crítico','Critical CSS'=>'CSS crítico','This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.'=>'Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente purgados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché.','Disabling this may cause WordPress tasks triggered by AJAX to stop working.'=>'Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.','right now'=>'ahora mismo','just now'=>'ahora mismo','Saved'=>'Guardado','Last ran'=>'Última ejecución','You will be unable to Revert Optimization once the backups are deleted!'=>'¡No podrás revertir la optimización una vez eliminadas las copias de seguridad!','This is irreversible.'=>'Esto es irreversible.','Remove Original Image Backups'=>'Eliminar copias de seguridad de las imágenes originales','Are you sure you want to remove all image backups?'=>'¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?','Total'=>'Total','Files'=>'Archivos','Last calculated'=>'Último cálculo','Calculate Original Image Storage'=>'Calcular almacenamiento original de imágenes','Storage Optimization'=>'Optimización de almacenamiento','Enable replacement of WebP/AVIF in %s elements that were generated outside of WordPress logic.'=>'Activar reemplazo de WebP/AVIF en los elementos %s generados fuera de la lógica de WordPress.','Use the format %1$s or %2$s (element is optional).'=>'Usa el formato %1$s o %2$s (el elemento es opcional).','Only attributes listed here will be replaced.'=>'Solo los atributos aquí listados serán reemplazados.','Specify which element attributes will be replaced with WebP/AVIF.'=>'Especificar que atributos de elementos serán reemplazados con WebP/AVIF.','WebP/AVIF Attribute To Replace'=>'Atributo a reemplazar para WebP/AVIF','Only files within these directories will be pointed to the CDN.'=>'Solo los archivos en estos directorios apuntarán a la CDN.','Included Directories'=>'Directorios incluidos','A Purge All will be executed when WordPress runs these hooks.'=>'Se iniciará una purga completa cuando WordPress ejecute estos ganchos.','Purge All Hooks'=>'Ganchos de purgar todo','Purged all caches successfully.'=>'Todas las cachés purgadas correctamente.','LSCache'=>'LSCache','Forced cacheable'=>'Forzar cacheables','Paths containing these strings will be cached regardless of no-cacheable settings.'=>'Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.','Force Cache URIs'=>'Forzar URLs en caché','Exclude Settings'=>'Ajustes de exclusión','This will disable LSCache and all optimization features for debug purpose.'=>'Esto desactivará LSCache y todas las características de optimización con propósitos de depuración.','Disable All Features'=>'Desactivar todas las características','Opcode Cache'=>'Caché opcode','CSS/JS Cache'=>'Caché CSS/JS','Remove all previous unfinished image optimization requests.'=>'Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.','Clean Up Unfinished Data'=>'Limpiar datos no finalizados','Join Us on Slack'=>'Únete a nuestro Slack','Join the %s community.'=>'Únete a la comunidad %s.','Want to connect with other LiteSpeed users?'=>'¿Quieres conectar con otros usuarios de LiteSpeed?','Your API key / token is used to access %s APIs.'=>'Tu clave de la API/token se usa para acceder a las API de %s.','Your Email address on %s.'=>'Tu dirección de email en %s.','Use %s API functionality.'=>'Usar la funcionalidad de la API %s.','To randomize CDN hostname, define multiple hostnames for the same resources.'=>'Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.','Join LiteSpeed Slack community'=>'Únete a la comunidad de Slack de LiteSpeed','Visit LSCWP support forum'=>'Visita el foro de soporte de LSCWP','Images notified to pull'=>'Imágenes avisadas para descargar','What is a group?'=>'¿Qué es un grupo?','%s image'=>'%s imagen','%s group'=>'%s grupo','%s images'=>'%s imágenes','%s groups'=>'%s grupos','Guest'=>'Invitado','To crawl the site as a logged-in user, enter the user ids to be simulated.'=>'Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.','Role Simulation'=>'Simulación de rol','running'=>'ejecutando','Size'=>'Tamaño','Ended reason'=>'Razón de finalización','Last interval'=>'Último intervalo','Current crawler started at'=>'El rastreador actual comenzó a las','Run time for previous crawler'=>'Hora de ejecución para el rastreador anterior','%d seconds'=>'%d segundos','Last complete run time for all crawlers'=>'Hora de la última ejecución completa para todos los rastreadores','Current sitemap crawl started at'=>'El rastreo del mapa del sitio actual comenzó a las','Save transients in database when %1$s is %2$s.'=>'Guarda datos transitorios en la base de datos cuando %1$s es %2$s.','Store Transients'=>'Almacenar datos transitorios','If %1$s is %2$s, then %3$s must be populated!'=>'¡Si %1$s es %2$s entonces debe completarse %3$s!','Server allowed max value: %s'=>'Valor máximo permitido por el servidor: %s','Server enforced value: %s'=>'Valor forzado por el servidor: %s','NOTE'=>'NOTA','Server variable(s) %s available to override this setting.'=>'Variable(s) del servidor %s disponible para omitir este ajuste.','API'=>'API','Reset the entire OPcache successfully.'=>'Reestablecida correctamente la caché «OPcache».','Imported setting file %s successfully.'=>'Importado con éxito el archivo de ajustes %s.','Import failed due to file error.'=>'Importación fallida debido a un error en el archivo.','How to Fix Problems Caused by CSS/JS Optimization.'=>'Cómo solucionar problemas causados por la optimización CSS/JS.','This will generate extra requests to the server, which will increase server load.'=>'Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.','When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.'=>'Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.','Instant Click'=>'Clic instantáneo','Reset the entire opcode cache'=>'Reestablecer toda la caché opcode','This will import settings from a file and override all current LiteSpeed Cache settings.'=>'Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.','Last imported'=>'Última importación','Import'=>'Importar','Import Settings'=>'Ajustes de importación','This will export all current LiteSpeed Cache settings and save them as a file.'=>'Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo.','Last exported'=>'Última exportación','Export'=>'Exportar','Export Settings'=>'Exportar ajustes','Import / Export'=>'Importar / Exportar','Use keep-alive connections to speed up cache operations.'=>'Utilizar conexiones keep-alive para acelerar operaciones de la caché.','Database to be used'=>'Base de datos a usar','Redis Database ID'=>'ID de base de datos Redis','Specify the password used when connecting.'=>'Especifica la contraseña utilizada al conectar.','Password'=>'Contraseña','Only available when %s is installed.'=>'Solo disponible cuando está instalado %s.','Username'=>'Nombre de usuario','Your %s Hostname or IP address.'=>'El hostname o dirección IP de tu %s.','Method'=>'Método','Purge all object caches successfully.'=>'Purga correcta de todas las cachés de objetos.','Object cache is not enabled.'=>'La caché de objetos no está activada.','Improve wp-admin speed through caching. (May encounter expired data)'=>'Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)','Cache WP-Admin'=>'Caché de WP-Admin','Persistent Connection'=>'Conexión persistente','Do Not Cache Groups'=>'Grupos a no cachear','Groups cached at the network level.'=>'Grupos cacheados a nivel de red.','Global Groups'=>'Grupos globales','Connection Test'=>'Prueba de conexión','%s Extension'=>'Extensión %s','Status'=>'Estado','Default TTL for cached objects.'=>'TTL por defecto para objetos cacheados.','Default Object Lifetime'=>'Tiempo de vida por defecto del objeto','Port'=>'Puerto','Host'=>'Host','Object Cache'=>'Caché de objetos','Failed'=>'Fallido','Passed'=>'Exitoso','Not Available'=>'No disponible','Purge all the object caches'=>'Purgar todas las cachés de objetos','Failed to communicate with Cloudflare'=>'Fallo al comunicar con Cloudflare','Communicated with Cloudflare successfully.'=>'Comunicado con éxito con Cloudflare.','No available Cloudflare zone'=>'No hay disponible una zona Cloudflare','Notified Cloudflare to purge all successfully.'=>'Avisado correctamente a Cloudflare de la purga completa.','Cloudflare API is set to off.'=>'La API de Cloudflare está configurada en off.','Notified Cloudflare to set development mode to %s successfully.'=>'Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.','Once saved, it will be matched with the current list and completed automatically.'=>'Una vez guardado, coincidirá con la lista actual y se completará automáticamente.','You can just type part of the domain.'=>'Puedes simplemente teclear parte de dominio.','Domain'=>'Dominio','Cloudflare API'=>'API de Cloudflare','Purge Everything'=>'Purgar todo','Cloudflare Cache'=>'Caché de Cloudflare','Development Mode will be turned off automatically after three hours.'=>'El modo de desarrollo se desactivará automáticamente después de tres horas.','Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.'=>'Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.','Development mode will be automatically turned off in %s.'=>'El modo de desarrollo se desactivará automáticamente en %s.','Current status is %s.'=>'El estado actual es %s.','Current status is %1$s since %2$s.'=>'El estado actual es %1$s desde %2$s.','Check Status'=>'Comprobar estado','Turn OFF'=>'APAGAR','Turn ON'=>'ENCENDER','Development Mode'=>'Modo de desarrollo','Cloudflare Zone'=>'Zona de Cloudflare','Cloudflare Domain'=>'Dominio de Cloudflare','Cloudflare'=>'Cloudflare','For example'=>'Por ejemplo','Prefetching DNS can reduce latency for visitors.'=>'La precarga DNS puede reducir la latencia para los visitantes.','DNS Prefetch'=>'Prefetch DNS','Adding Style to Your Lazy-Loaded Images'=>'Añade estilos a tus imágenes de carga diferida','Default value'=>'Valor por defecto','Static file type links to be replaced by CDN links.'=>'Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.','For example, to drop parameters beginning with %1$s, %2$s can be used here.'=>'Por ejemplo, para eliminar parámetros que comienzan con %1$s, se puede usar %2$s aquí.','Drop Query String'=>'Ignorar cadenas de consulta','Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.'=>'Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.','Improve HTTP/HTTPS Compatibility'=>'Mejorar compatibilidad HTTP/HTTPS','Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.'=>'Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.','Destroy All Optimization Data'=>'Destruir todos los datos de optimización','Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.'=>'Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.','This will increase the size of optimized files.'=>'Esto aumentará el tamaño de los archivos optimizados.','Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.'=>'Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.','Clear Logs'=>'Vaciar los registros','To test the cart, visit the <a %s>FAQ</a>.'=>'Para probar el carrito, visita la <a %s>FAQ</a>.',' %s ago'=>' hace %s','WebP saved %s'=>'WebP ha ahorrado un %s','If you run into any issues, please refer to the report number in your support message.'=>'Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.','Last pull initiated by cron at %s.'=>'Última descarga iniciada por cron a las %s.','Images will be pulled automatically if the cron job is running.'=>'Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.','Only press the button if the pull cron job is disabled.'=>'Solo pulsar el botón si la tarea cron de descarga está desactivada.','Pull Images'=>'Descargar imágenes','This process is automatic.'=>'Este proceso es automático.','Last Request'=>'Última petición','Images Pulled'=>'Imágenes recuperadas','Report'=>'Informe','Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.'=>'Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.','Send to LiteSpeed'=>'Enviar a LiteSpeed','LiteSpeed Optimization'=>'Optimización de LiteSpeed','Load Google Fonts Asynchronously'=>'Cargar Google Fonts asíncronamente','Browser Cache TTL'=>'TTL caché de navegador','Results can be checked in %sMedia Library%s.'=>'Los resultados pueden comprobarse en la %sBiblioteca de medios%s.','Learn More'=>'Leer más','Image groups total'=>'Total de grupos de imágenes','Images optimized and pulled'=>'Imágenes optimizadas y descargadas','Images requested'=>'Imágenes solicitadas','Switched to optimized file successfully.'=>'Cambio correcto a archivo optimizado.','Restored original file successfully.'=>'Archivo original restaurado con éxito.','Enabled WebP file successfully.'=>'Archivo WebP activado con éxito.','Disabled WebP file successfully.'=>'Archivo WebP desactivado con éxito.','Significantly improve load time by replacing images with their optimized %s versions.'=>'Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.','Selected roles will be excluded from cache.'=>'Los perfiles seleccionados serán excluidos de la caché.','Tuning'=>'Retoques','Selected roles will be excluded from all optimizations.'=>'Los perfiles seleccionados serán excluidos de todas las optimizaciones.','Role Excludes'=>'Excluir perfiles','Tuning Settings'=>'Ajustes de los retoques','If the tag slug is not found, the tag will be removed from the list on save.'=>'Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.','If the category name is not found, the category will be removed from the list on save.'=>'Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.','After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.'=>'Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas.','Send Optimization Request'=>'Enviar solicitud de optimización','Image Information'=>'Información de imágenes','Total Reduction'=>'Reducción total','Optimization Summary'=>'Resumen de optimización','LiteSpeed Cache Image Optimization'=>'Optimización de imágenes de LiteSpeed Cache','Image Optimization'=>'Optimización de imágenes','For example, %s can be used for a transparent placeholder.'=>'Por ejemplo, los %s pueden usarse para un marcador de posición transparente.','By default a gray image placeholder %s will be used.'=>'Por defecto, se utilizará un marcador de posición de imagen gris %s.','This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.'=>'Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.','Specify a base64 image to be used as a simple placeholder while images finish loading.'=>'Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.','Elements with attribute %s in html code will be excluded.'=>'Se excluirán los elementos con el atributo %s en código html.','Filter %s is supported.'=>'El filtro %s es compatible.','Listed images will not be lazy loaded.'=>'Las imágenes listadas no se cargarán de forma retrasada.','Lazy Load Image Excludes'=>'Exclusiones de carga retrasada de imágenes','No optimization'=>'Sin optimización','Prevent any optimization of listed pages.'=>'Evitar cualquier optimización de las páginas listadas.','URI Excludes'=>'URL excluidas','Stop loading WordPress.org emoji. Browser default emoji will be displayed instead.'=>'Deja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador.','Both full URLs and partial strings can be used.'=>'Pueden utilizarse tanto URLs completas como cadenas parciales.','Load iframes only when they enter the viewport.'=>'Cargar iframes sólo cuando entran en la ventana de visualización.','Lazy Load Iframes'=>'Retrasar la carga de iframes','This can improve page loading time by reducing initial HTTP requests.'=>'Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.','Load images only when they enter the viewport.'=>'Cargar las imágenes sólo cuando entran en la ventana de visualización.','Lazy Load Images'=>'Retrasar la carga de imágenes','Media Settings'=>'Ajustes de medios','For example, for %1$s, %2$s and %3$s can be used here.'=>'Por ejemplo, para %1$s, se pueden utilizar aquí %2$s y %3$s.','Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.'=>'El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.','To match the beginning, add %s to the beginning of the item.'=>'Para que coincida con el principio, añade %s al comienzo del artículo.','For example, for %1$s, %2$s can be used here.'=>'Por ejemplo, para %1$s, se puede utilizar %2$s aquí.','Maybe later'=>'Quizás más tarde','I\'ve already left a review'=>'Ya he dejado una valoración','Welcome to LiteSpeed'=>'Bienvenido a LiteSpeed','Remove WordPress Emoji'=>'Eliminar emojis de WordPress','More settings'=>'Más ajustes','Private cache'=>'Caché privada','Non cacheable'=>'No cacheable','Mark this page as '=>'Marcar esta página como ','Purge this page'=>'Purgar esta página','Load JS Deferred'=>'Deferir carga de JS','Specify critical CSS rules for above-the-fold content when enabling %s.'=>'Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.','Critical CSS Rules'=>'Reglas de CSS críticas','Load CSS Asynchronously'=>'Cargar CSS asíncronamente','Prevent Google Fonts from loading on all pages.'=>'Evita que cargue Google Fonts en todas las páginas.','Remove Google Fonts'=>'Eliminar Google Fonts','This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.'=>'Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.','Remove query strings from internal static resources.'=>'Eliminar cadenas de consulta de recursos estáticos internos.','Remove Query Strings'=>'Eliminar query strings','user agents'=>'user agents','cookies'=>'cookies','You can turn on browser caching in server admin too. %sLearn more about LiteSpeed browser cache settings%s.'=>'También puedes activar el almacenamiento en caché del navegador en la administración del servidor. %sObtén más información sobre los ajustes de caché del navegador de LiteSpeed%s.','Browser caching stores static files locally in the user\'s browser. Turn on this setting to reduce repeated requests for static files.'=>'El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.','Browser Cache'=>'Caché del navegador','tags'=>'etiquetas','Do Not Cache Tags'=>'Etiquetas a no cachear','To exclude %1$s, insert %2$s.'=>'Para excluir %1$s, insertar %2$s.','categories'=>'categorías','To prevent %s from being cached, enter them here.'=>'Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.','Do Not Cache Categories'=>'Categorías a no cachear','Query strings containing these parameters will not be cached.'=>'Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.','Do Not Cache Query Strings'=>'Cadenas de consulta a no cachear','Paths containing these strings will not be cached.'=>'Las rutas que contengan estas cadenas no serán cacheadas.','Do Not Cache URIs'=>'URIs a no cachear','One per line.'=>'Una por línea.','URI Paths containing these strings will NOT be cached as public.'=>'Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.','Private Cached URIs'=>'URIs cacheadas privadamente','Paths containing these strings will not be served from the CDN.'=>'Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.','Exclude Path'=>'Excluir ruta','Include File Types'=>'Incluir tipos de archivo','Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.'=>'Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.','Include JS'=>'Incluir JS','Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.'=>'Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.','Include CSS'=>'Incluir CSS','Serve all image files through the CDN. This will affect all attachments, HTML %1$s tags, and CSS %2$s attributes.'=>'Sirve todos los archivos de imagen a través de la CDN. Esto afectará a todos los archivos adjuntos, las etiquetas HTML %1$s y los atributos CSS %2$s.','Include Images'=>'Incluir imágenes','CDN URL to be used. For example, %s'=>'URL de la CDN a utilizar. Por ejemplo, %s','CDN URL'=>'URL de CDN','Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.'=>'URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s.','Original URLs'=>'URLs originales','CDN Settings'=>'Ajustes de CDN','CDN'=>'CDN','OFF'=>'OFF','ON'=>'ON','Notified LiteSpeed Web Server to purge CSS/JS entries.'=>'Solicitada la purga de entradas CSS/JS al servidor web LiteSpeed.','Minify HTML content.'=>'Minificar contenido HTML.','HTML Minify'=>'Minificar HTML','JS Excludes'=>'Excluir JS','JS Combine'=>'Combinar JS','JS Minify'=>'Minificar JS','CSS Excludes'=>'Excluir CSS','CSS Combine'=>'Combinar CSS','CSS Minify'=>'Minificar CSS','Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.'=>'Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Purgar todo».','This will purge all minified/combined CSS/JS entries only'=>'Esto purgará solo las entradas CSS/JS minimizadas o combinadas','Purge %s Error'=>'Error de purga de %s','Database Optimizer'=>'Optimizador de base de datos','Optimize all tables in your database'=>'Optimizar todas las tablas en tu base de datos','Optimize Tables'=>'Optimizar tablas','Clean all transient options'=>'Borrar todas las opciones de datos transitorios','All Transients'=>'Todos los datos transitorios','Clean expired transient options'=>'Borrar opciones de datos transitorios expirados','Expired Transients'=>'Datos transitorios expirados','Clean all trackbacks and pingbacks'=>'Borrar todos los trackbacks y pingbacks','Trackbacks/Pingbacks'=>'Trackbacks/pingbacks','Clean all trashed comments'=>'Borrar todos los comentarios en la papelera','Trashed Comments'=>'Comentarios enviados a la papelera','Clean all spam comments'=>'Borrar todos los comentarios spam','Spam Comments'=>'Comentarios spam','Clean all trashed posts and pages'=>'Borrar todas las entradas y páginas en la papelera','Trashed Posts'=>'Entradas enviadas a la papelera','Clean all auto saved drafts'=>'Borrar todos los borradores guardados automáticamente','Auto Drafts'=>'Borradores automáticos','Clean all post revisions'=>'Borrar todas las revisiones de entradas','Post Revisions'=>'Revisiones de entradas','Clean All'=>'Limpiar todo','Optimized all tables.'=>'Optimizadas todas las tablas.','Clean all transients successfully.'=>'Limpieza de todos los datos transitorios exitosa.','Clean expired transients successfully.'=>'Limpieza de datos transitorios expirados exitosa.','Clean trackbacks and pingbacks successfully.'=>'Limpieza de trackbacks y pingbacks exitosa.','Clean trashed comments successfully.'=>'Limpieza de comentarios en papelera exitosa.','Clean spam comments successfully.'=>'Limpieza de comentarios no deseados exitosa.','Clean trashed posts and pages successfully.'=>'Limpieza de páginas y entradas en papelera exitosa.','Clean auto drafts successfully.'=>'Limpieza de borradores automáticos exitosa.','Clean post revisions successfully.'=>'Limpieza de revisiones de entradas exitosa.','Clean all successfully.'=>'Limpieza completa exitosa.','Default Private Cache TTL'=>'TTL por defecto de la caché privada','If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.'=>'Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.','Vary Group'=>'Grupos de variación','Cache the built-in Comment Form ESI block.'=>'Almacena en la caché el bloque ESI del formulario de comentarios incluido.','Cache Comment Form'=>'Cachear formulario de comentario','Cache the built-in Admin Bar ESI block.'=>'Almacena en caché el bloque ESI de la barra de administración incorporada.','Cache Admin Bar'=>'Cachear barra de administrador','Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.'=>'Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.','ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.'=>'ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.','With ESI (Edge Side Includes), pages may be served from cache for logged-in users.'=>'Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.','Private'=>'Privada','Public'=>'Pública','Purge Settings'=>'Ajustes de purga','Cache Mobile'=>'Cache móvil','Advanced level will log more details.'=>'El nivel avanzado registrará más detalles.','Basic'=>'Básico','The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.'=>'La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del rastreador será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.','Cache Login Page'=>'Cachear página de acceso','Cache requests made by WordPress REST API calls.'=>'Cachear peticiones realizadas por llamadas de la API REST de WordPress.','Cache REST API'=>'Cachear API REST','Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)'=>'Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)','Cache Commenters'=>'Cachear comentaristas','Privately cache frontend pages for logged-in users. (LSWS %s required)'=>'Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)','Cache Logged-in Users'=>'Cachear usuarios con sesión iniciada','Cache Control Settings'=>'Ajustes de control de caché','ESI'=>'ESI','Excludes'=>'Excluir','Purge'=>'Purgar','Cache'=>'Caché','WooCommerce'=>'WooCommerce','Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (%3$sLearn More%4$s)'=>'Se ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si tienes la seguridad de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (%3$sMás información%4$s)','Current server time is %s.'=>'La hora actual del servidor es %s.','Specify the time to purge the "%s" list.'=>'Especifica la hora para purgar la lista «%s».','Both %1$s and %2$s are acceptable.'=>'Tanto %1$s como %2$s son aceptables.','Scheduled Purge Time'=>'Hora de purga programada','The URLs here (one per line) will be purged automatically at the time set in the option "%s".'=>'Las URLs de aquí (una por línea) serán purgadas automáticamente a la hora establecida en la opción «%s».','Scheduled Purge URLs'=>'URLs de purga programada','Shorten query strings in the debug log to improve readability.'=>'Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.','Heartbeat'=>'Heartbeat','MB'=>'MB','Log File Size Limit'=>'Límite de tamaño de archivo de registro','<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s'=>'<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s','%s file not writable.'=>'No se puede escribir el archivo %s.','%s file not readable.'=>'No se puede leer el archivo %s.','Collapse Query Strings'=>'Colapsar cadenas de peticiones','ESI Settings'=>'Ajustes de ESI','A TTL of 0 indicates do not cache.'=>'Un TTL de 0 implica no cachear.','Recommended value: 28800 seconds (8 hours).'=>'Valor recomendado: 28800 segundos (8 horas).','Widget Cache TTL'=>'TTL caché de Widgets','Enable ESI'=>'Activar ESI','See %sIntroduction for Enabling the Crawler%s for detailed information.'=>'Ver la %sIntroducción para activar el rastreador%s para obtener información detallada.','Custom Sitemap'=>'Sitemap personalizado','Purge pages by relative or full URL.'=>'Purgar páginas por URL completa o relativa.','The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.'=>'La característica de rastreador no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor.','WARNING'=>'ADVERTENCIA','The next complete sitemap crawl will start at'=>'La siguiente indexación de sitemap completa empezará a las','Failed to write to %s.'=>'Error al escribir a %s.','Folder is not writable: %s.'=>'El directorio no es escribible: %s.','Can not create folder: %1$s. Error: %2$s'=>'No se puede crear el directorio: %1$s. Error: %2$s','Folder does not exist: %s'=>'El directorio no existe: %s','Notified LiteSpeed Web Server to purge the list.'=>'Solicitado la purga de la lista al servidor web LiteSpeed.','Please visit the %sInformation%s page on how to test the cache.'=>'Visita la página de %sInformación%s sobre cómo probar la caché.','Allows listed IPs (one per line) to perform certain actions from their browsers.'=>'Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.','Server Load Limit'=>'Límite de carga del servidor','Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.'=>'Especifica tras cuanto tiempo debe el rastreador indexar el sitemap entero de nuevo.','Crawl Interval'=>'Intervalo de indexación','Then another WordPress is installed (NOT MULTISITE) at %s'=>'Y otro WordPress instalado (NO MULTISITIO) en %s','LiteSpeed Cache Network Cache Settings'=>'Ajustes de la caché de la red de caché de LiteSpeed','Select below for "Purge by" options.'=>'Selecciona debajo las opciones de «Purgar por».','LiteSpeed Cache CDN'=>'CDN de la caché de LiteSpeed','No crawler meta file generated yet'=>'Archivo meta del rastreador aún no generado','Show crawler status'=>'Mostrar estado del rastreador','Watch Crawler Status'=>'Ver estado del rastreador','Please see %sHooking WP-Cron Into the System Task Scheduler%s to learn how to create the system cron task.'=>'Consulta %sConectar WP-Cron al programador de tareas del sistema%s para aprender cómo crear la tarea cron del sistema.','Run frequency is set by the Interval Between Runs setting.'=>'La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.','Manually run'=>'Ejecutar manualmente','Reset position'=>'Reestablecer posición','Run Frequency'=>'Frecuencia de ejecución','Cron Name'=>'Nombre del Cron','Crawler Cron'=>'Cron del rastreador','%d minute'=>'%d minuto','%d minutes'=>'%d minutos','%d hour'=>'%d hora','%d hours'=>'%d horas','Generated at %s'=>'Generado en %s','LiteSpeed Cache Crawler'=>'Rastreador de LiteSpeed Cache','If there are any questions, the team is always happy to answer any questions on the %ssupport forum%s.'=>'Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el %sforo de soporte%s.','Crawler'=>'Rastreador','https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration'=>'https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration','Notified LiteSpeed Web Server to purge all pages.'=>'Solicitada la purga de todas las páginas al servidor web LiteSpeed.','All pages with Recent Posts Widget'=>'Todas las páginas con widget de Entradas recientes','Pages'=>'Páginas','This will Purge Pages only'=>'Esto solo purgará las páginas','Purge Pages'=>'Purgar páginas','Cancel'=>'Cancelar','Deactivate'=>'Desactivar','Activate'=>'Activar','Email Address'=>'Dirección de correo electrónico','Install Now'=>'Instalar ahora','Purged the URL!'=>'¡Se ha purgado la URL!','Purged the blog!'=>'¡Se ha purgado el blog!','Purged All!'=>'¡Se ha purgado todo!','Notified LiteSpeed Web Server to purge error pages.'=>'Solicitada la purga de las páginas de error al servidor web LiteSpeed.','If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.'=>'Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.','If the login cookie was recently changed in the settings, please log out and back in.'=>'Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.','However, there is no way of knowing all the possible customizations that were implemented.'=>'Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.','The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.'=>'El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.','The network admin setting can be overridden here.'=>'El ajuste de administrador de red puede ser modificado aquí.','Specify how long, in seconds, public pages are cached.'=>'Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.','Specify how long, in seconds, private pages are cached.'=>'Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.','It is STRONGLY recommended that the compatibility with other plugins on a single/few sites is tested first.'=>'Se recomienda ENCARECIDAMENTE que primero se pruebe la compatibilidad con otros plugins en uno o varios sitios.','Purge pages by post ID.'=>'Purgar páginas por ID de entrada.','Purge the LiteSpeed cache entries created by this plugin'=>'Purga las entradas de caché de LiteSpeed creadas por este plugin','Purge %s error pages'=>'Purgar las páginas de error %s','This will Purge Front Page only'=>'Esto solo purgará la página principal','Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.'=>'Purgar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.','Purge pages by category name - e.g. %2$s should be used for the URL %1$s.'=>'Purgar páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.','If only the WordPress site should be purged, use Purge All.'=>'Si se debe purgar todo el sitio WordPress, usa «Purgar todo».','Notified LiteSpeed Web Server to purge everything.'=>'Solicitado la purga de todo al servidor web LiteSpeed.','Use Primary Site Configuration'=>'Usar configuración del sitio principal','This will disable the settings page on all subsites.'=>'Esto desactivará la página de ajustes en todos los subsitios.','Check this option to use the primary site\'s configuration for all subsites.'=>'Marca esta opción para usar la configuración del sitio principal para todos los subsitios.','Save Changes'=>'Guardar cambios','The following options are selected, but are not editable in this settings page.'=>'Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.','The network admin selected use primary site configs for all subsites.'=>'El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.','Empty Entire Cache'=>'Vaciar la caché entera','This action should only be used if things are cached incorrectly.'=>'Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.','Clears all cache entries related to this site, including other web applications.'=>'Vacía todas las entradas de la caché relacionadas con este sitio, incluyendo otras aplicaciones web.','This may cause heavy load on the server.'=>'Esto puede causar una alta carga en el servidor.','This will clear EVERYTHING inside the cache.'=>'Esto eliminará TODO dentro de la caché.','LiteSpeed Cache Purge All'=>'Purdgar toda la caché de LiteSpeed','If you would rather not move at litespeed, you can deactivate this plugin.'=>'Si no quieres la aceleración de litespeed, puedes desactivar este plugin.','Create a post, make sure the front page is accurate.'=>'Crear una entrada, asegurarse que la página principal está actualizada.','Visit the site while logged out.'=>'Visitar el sitio sin la sesión iniciada.','Examples of test cases include:'=>'Ejemplos de pruebas incluyen:','For that reason, please test the site to make sure everything still functions properly.'=>'Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.','This message indicates that the plugin was installed by the server admin.'=>'Este mensaje indica que el plugin fue instalado por el administrador del servidor.','LiteSpeed Cache plugin is installed!'=>'¡El plugin LiteSpeed Cache está instalado!','Debug Log'=>'Registro de depuración','Admin IP Only'=>'Solo la IP del administrador','The Admin IP option will only output log messages on requests from admin IPs listed below.'=>'La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs abajo listadas.','Specify how long, in seconds, REST calls are cached.'=>'Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.','The environment report contains detailed information about the WordPress configuration.'=>'El informe de entorno contiene información detallada sobre la configuración de WordPress.','The server will determine if the user is logged in based on the existence of this cookie.'=>'El servidor determinará si el usuario está conectado en base a la existencia de esta cookie.','Note'=>'Nota','After verifying that the cache works in general, please test the cart.'=>'Después de que la caché funcione en general, por favor prueba el carrito.','When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.'=>'Al activarlo, la caché se purgará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.','Purge All On Upgrade'=>'Purgar todo al actualizar','Product Update Interval'=>'Intervalo de actualización de producto','Determines how changes in product quantity and product stock status affect product pages and their associated category pages.'=>'Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.','Always purge both product and categories on changes to the quantity or stock status.'=>'Purgar siempre productos y categorías cuando cambie la cantidad o estado del inventario.','Do not purge categories on changes to the quantity or stock status.'=>'No purgar las categorías al cambiar la cantidad o estado del inventario.','Purge product only when the stock status changes.'=>'Purgar los productos solo cuando cambie el estado del inventario.','Purge product and categories only when the stock status changes.'=>'Purgar productos y categorías solo cuando cambie el estado del inventario.','Purge categories only when stock status changes.'=>'Purgar las categorías solo cuando el estado del inventario cambie.','Purge product on changes to the quantity or stock status.'=>'Purgar los productos con los cambios de cantidad o estado del inventario.','Htaccess did not match configuration option.'=>'El htaccess no coincide con la opción de configuración.','If this is set to a number less than 30, feeds will not be cached.'=>'Si esto se fija en un número inferior a 30, los feeds no serán cacheados.','Specify how long, in seconds, feeds are cached.'=>'Especifica por cuanto tiempo, en segundos, se cachean los feeds.','Default Feed TTL'=>'TTL por defecto del Feed','Failed to get %s file contents.'=>'Error al obtener contenido del archivo %s.','Disabling this option may negatively affect performance.'=>'Desactivar esta opción puede afectar negativamente al rendimiento.','Invalid login cookie. Invalid characters found.'=>'Cookie de acceso no válida. Encontrados caracteres no válidos.','WARNING: The .htaccess login cookie and Database login cookie do not match.'=>'ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.','Invalid login cookie. Please check the %s file.'=>'Cookie de acceso no válida. Por favor, comprueba el archivo %s.','The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.'=>'La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.','There is a WordPress installed for %s.'=>'Hay un WordPress instalado para %s.','Example use case:'=>'Ejemplo de uso:','The cookie set here will be used for this WordPress installation.'=>'La cookie aquí establecida será usada por esta instalación de WordPress.','If every web application uses the same cookie, the server may confuse whether a user is logged in or not.'=>'Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.','This setting is useful for those that have multiple web applications for the same domain.'=>'Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.','The default login cookie is %s.'=>'La cookie de acceso por defecto es %s.','Login Cookie'=>'Cookie de acceso','More information about the available commands can be found here.'=>'Aquí se puede encontrar más información sobre los comandos disponibles.','These settings are meant for ADVANCED USERS ONLY.'=>'Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.','Current %s Contents'=>'Contenidos actuales de %s','Advanced'=>'Avanzado','Advanced Settings'=>'Ajustes avanzados','Purge List'=>'Purgar lista','Purge By...'=>'Purgar por...','URL'=>'URL','Tag'=>'Etiqueta','Post ID'=>'ID de entrada','Category'=>'Categoría','NOTICE: Database login cookie did not match your login cookie.'=>'AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.','Purge url %s'=>'Purgar la URL %s','Purge tag %s'=>'Purgar la etiqueta %s','Purge category %s'=>'Purgar la categoría %s','When disabling the cache, all cached entries for this site will be purged.'=>'Al desactivar la caché, se purgarán todas las entradas almacenadas en caché de este sitio.','NOTICE'=>'AVISO','This setting will edit the .htaccess file.'=>'Este ajuste editará el archivo .htaccess.','LiteSpeed Cache View .htaccess'=>'Ver el archivo «.htaccess» de LiteSpeed Cache','Failed to back up %s file, aborted changes.'=>'Fallo al hacer copia de seguridad del archivo %s, cambios cancelados.','Do Not Cache Cookies'=>'Cookies a no cachear','Do Not Cache User Agents'=>'User Agents a no cachear','This is to ensure compatibility prior to enabling the cache for all sites.'=>'Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.','Network Enable Cache'=>'Habilitar caché de red','NOTICE:'=>'AVISO:','Other checkboxes will be ignored.'=>'Otras opciones serán ignoradas.','Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.'=>'Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio.','List of Mobile User Agents'=>'Lista de User Agents móviles','File %s is not writable.'=>'No se puede escribir el archivo %s.','JS Settings'=>'Ajustes de JS','Manage'=>'Gestionar','Default Front Page TTL'=>'TTL por defecto de la Página Principal','Notified LiteSpeed Web Server to purge the front page.'=>'Solicitado al servidor web LiteSpeed la purga de la página de inicio.','Purge Front Page'=>'Purgar la página de inicio','Example'=>'Ejemplo','All tags are cached by default.'=>'Todas las etiquetas son cacheadas por defecto.','All categories are cached by default.'=>'Todas las categorías son cacheadas por defecto.','To do an exact match, add %s to the end of the URL.'=>'Para coincidencias exactas, añadir %s al final de la URL.','The URLs will be compared to the REQUEST_URI server variable.'=>'Las URLs serán comparadas con la variable REQUEST_URI del servidor.','Select only the archive types that are currently used, the others can be left unchecked.'=>'Selecciona solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.','Notes'=>'Notas','Use Network Admin Setting'=>'Usar ajuste de administrador de red','Disable'=>'Desactivar','Enabling LiteSpeed Cache for WordPress here enables the cache for the network.'=>'Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.','Disabled'=>'Desactivado','Enabled'=>'Activado','Do Not Cache Roles'=>'No cachear perfiles','https://www.litespeedtech.com'=>'https://www.litespeedtech.com','LiteSpeed Technologies'=>'LiteSpeed Technologies','LiteSpeed Cache'=>'LiteSpeed Cache','Debug Level'=>'Nivel de depuración','Notice'=>'Nota','Term archive (include category, tag, and tax)'=>'Archivo de término (incluye categoría, etiqueta y taxonomía)','Daily archive'=>'Archivo diario','Monthly archive'=>'Archivo mensual','Yearly archive'=>'Archivo anual','Post type archive'=>'Archivo de tipo de contenido','Author archive'=>'Archivo del autor','Home page'=>'Página de inicio','Front page'=>'Portada','All pages'=>'Todas las páginas','Select which pages will be automatically purged when posts are published/updated.'=>'Selecciona qué páginas serán purgadas automáticamente cuando las entradas sean publicadas o actualizadas.','Auto Purge Rules For Publish/Update'=>'Reglas de purga automática para publicación y actualización','Default Public Cache TTL'=>'TTL por defecto de la caché pública','seconds'=>'segundos','Admin IPs'=>'IPs de administrador','General'=>'Opciones generales','LiteSpeed Cache Settings'=>'Configuración de Caché de LiteSpeed','Notified LiteSpeed Web Server to purge all LSCache entries.'=>'Solicitado al servidor web LiteSpeed la purga de todas las entradas de LSCache.','Purge All'=>'Purgar todo','Settings'=>'Ajustes','Support forum'=>'Foro de soporte']];����,m,Y�v�v�v�vw26wiw|w�w
�w	�w
�w
�w�w�w�w�w
x	x x	)x3x.Fxux
�x�x�xh�xNyg[y\�yo zb�ze�zaY{Y�{w|l�|��|={}"�}7�}~#~.'~4V~ �~
�~�~H�~!*<Lg'x
�	����%��|�F��
ڀ.�0�E�%T�	z�"����Pǁ�T'�Z|�>ׂ�3�4@�-u�/��qӃLE�2��Iń*�J:�����#��ąօ߅
���Q�Ob���sȆE<�P��0Ӈ�'!�I�`�z�3��Ĉʈ�I�$3�SX�	��	���� ̉"�/�*@�k�
s��������40��e�f2�������Œ
ь'ߌ
��"�#*�N�_�k���
������΍ۍ����	,�6�L�
]�h�u�����8��&َ0�'1�*Y�S��؏ �� �(7�`�g� p������7�D�W\�K��	�
��5�$Q�v�����"���"��!�!<�^�~�&��&œ"�G�!W�,y�$��+˔���3�K�'i�(����'���
��
�P'�x�����1��
�%��2�R�^�Vj�^��
 �+�:�X�i�{�����&��.ݘN�*[�/��V��]
�Lk���ך��� �1�!C�e�q�
��������ƛΛۛ��%�B5�
x����4
�&B�6i�����	��ʝޝ��6�N�i������� Ȟ"��"�/;�/k�*��<Ɵ<�7@�x���������Ѡ
�	����#�4�T�h�
o�z���
����	��ˡڡ���
�,�=�!T�v�������Ң��
!�/��8�9ޣ�) �MJ���+��}�`�Dq�8�����
��1�;=��y�8� A� b�K��8ϧ�#�+�?�T�l�������èը�C�D�[�Hb�����
��̩<٩�0�A�9V�9��
ʫث����
�'�=�X�,s�^��q��q�y���N������(��
خ��
�,�F�e�m��������Ưٯ����+��%+�,Q�s~�'��.�"N�%q�����&ʱ���2�E�6K�������вL�7�9C�:}�6��-���K��L�WS�����
Եߵ�O�
^�i���������̶�
�Q�g�2w�����
շ'��&� 9�0Z�������#���
�����!3�U�p�����8�K�e�x���
����	��ɺBۺ
�)�1�	5�?�2D�Zw�,һ���-/��]�/5�ie�:Ͻ;
�YF�K��V�UC�L��f�BM�Y��:��%�V��`�Jd�g��x�=��@��=�M�_�r�������
��<��?#�c�x�������?����,� <�&]� ��D����l��Gc����=�I�\�
k��v��6����&�B��]���
��)�
5�
C�/N�/~���k��</�
l�w���(����
�����	��c(�������.���
��
'�5�M�Z�hy���A���,���	����������')�Q�
^�
l�z���
��
��"��������$�+0�\�#n���*���������
)�4�
P�$[�(������C���P8�F��F��E�@]�5��2��B�CJ�>��"��=��&.�U�e�%y�����%�� ��"�&;�!b����� ������$��4��3�B�Y�j�����d��
� %�F�/W�.�������������0�D�M�Z�x�{�����������
��������
��;�%B�h�$}�
��������������@��
2�%@�f�~�����
�>�T�f� {���*�� �����2�M�f�"��*��*��"��"�B�<R�,��$����
��
���F�Z�_�e�
l�.z�?��6��; �1\�3��2��6��0,�]�a�d�|��������Q��2�QK�D��
����#�-$�$R�?w������7P�����%��	��������1�E�^�$n���E��+��*�I�_�k�t�<��������
��
��$�,�?�E�!V�1x���Y���/�>�P�`�f���������R��c�2r�?��
�����d(�<��5��S�CT�5����j���Y�K��O)�'y�?������
���"�94�;n�=��>��0'�MX�����p��|6�/��&��&
�)1�8[�7��4���!�
)�7�
K��Y�F�d.�U���X�Z�a�n���A��A���(�	=�G�W�l�x���
��	������%��0�=�IO���$��D�@�9\�1���8�a�p�����������+�
��(�?�P^�<������/;�k�#�����;6�Er����<S�=����Q��+O{��2����/
>Lc v�������
&"I{`;�14G|���F�/A!Wy!���.�'&Ah&�B��$Y?���$�,.@IU
���
��:�/	M	;U	g�	�	.
5
';
dc
�
�
G�
f:$�X�Q7q+�J� 
g:
�
�
�
�
Q^0jP�^�qK�	���9)cvl}�(a��>��UNVe�%
2@&]�#���9�
V"iy_�CCG�a�814j/�7�67>-v)�L�*)F-p(�H�AcRR�M	Whz(�3��R�H]u���
���2�(0$Y5~�����e�-P~/�Z�h]z=�i8�[�c Cy j� z(!A�!q�!`W"'�"q�"R#p#H�#W�#%1$OW$>�$�$�$K%c%Eh&1�&-�&8'MG'Y�',�')(SF(9�(&�()�(9%)$_)X�)1�)*A$*^f*E�*U+(a+S�+Y�+8,JN,z�,(-I=-x�-^.A_.4�.)�.c/0d/.�/��/�k0�1�1A�12�12-27`2Y�2*�2F39d3�5�54�5R6pa6,�6*�61*7;\7/�7(�7J�74<8Bq8�8N�8Q"9ot9X�9/=:Gm:9�:1�:�!;��;$D<�i<J/=^z=3�=N
>\>Wz>��>�i?>.@Hm@H�@<�@1<AVnAL�A*B]=B�B�B�B�B�B$�B�BC
C#C6C=CQCaCjC�rC/D(FD)oD�D��D�7E��E
CF
QF\FzF�F�F�F@�F�F
G%
Gg3GH�G�G
�H
�H
�H
II,I2I:GI>�I@�IpJsJ�J�J�J�J�Jr�J]pK5�K_L�dL(M8+MdM#�M�M$�M.�M2NrLNH�NO!O3O7OCCOF�O�O
�O�O�OP'P>P\PkP�P�P�P �P�PK�P9QAQ+WQ�Q)�Q��Q TR
uR�R�R�R�R�Re�RJaSj�SKTdcTM�TJUaU$}U�Ug�UVR2VZ�V�V�VW'!W#IWmW�|W%&X-LX�zX/2YkbY(�YE�Y�=Zu�ZFj[0�[D�[.'\SV\4�\*�\
]C)]Am]L�]-�]G*^<r^-�^�^/�^-_G_)O_Zy_w�_L`C[`�`�a
�a�a�a�a�aKbgbpbub�bJ�b	�b�b�b�b�c�c�c �c�d�d'�d,e?2ere�e�e�e	�e
�e�e
�e"�e�e#f>f	Gf	Qf[fhf3zf�f	�f�f�fp�fS`gx�g|-h��h�Oi��ii_jp�j�:k��k�}lGFm�mE�m�mnHnRTn$�n�n�n_�nXo`o|o%�o�o0�op)p>pGp^p,pp�p��pKBq�q7�q9�q	r0&rWr3jr.�r\�r*sY:sz�sHt$Xt}tB�t;�t2umDuh�uMvGiv(�v^�v9wKw>cw�w�w �w�w*xZ;xe�x�xoyc�yp�yE]z$�z?�z({*1{&\{A�{�{'�{�{h�{.d|s�|}} }2/}$b}>�},�}	�}�}"~5~�M~F�~<k>���)������+�2�K�
Z�)e�����'��ց
����
�*�1� P�q�����%��܂����$�5�OH�2��G˃L�K`�e��7�-J�-x�2��م
�,���6���^�\p�͇ڇ��6�7L�'��!��Έ'�/�1A�+s�3��,Ӊ/�10�4b�+��YÊ,�+J�,v�4��+؋(�!-�)O�5y�*��ڌ:��;�$P�fu�܍!���<=�z�/��=������'����
9�D�.V�������Ɛِ-��;&�bb�%ő/�]�dy�Sޒ2�R�f�z�'����"ғ��	��4�'D�l�
���� ��Ŕߔ9��`/������IK�-��GÖ��0�@�#Z�~�M��#�/�;�P�"j�3��$�����?�;P�6��MÙI�D[���!��ؚ���(�8�
G�
R�`�}�,��ƛۛ
�!��%�;�P�h�$� �� Ŝ���'�0F�%w�$��%�'�(�#?�c�u��~�KV�	��@��V�)D�:n����A�NT�=��
�%��)'�Q�U`������*��$ߣ_�Cd���	¤̤ޤ�
�"� 6�W�k�����I�����^�w���
����P��#�)�>�BZ�?��!ݨ���-�I�V�b�#�#��Eǩ^
�}l��$�!�J:��������.l�������ͬ�	�)�1�A�_�l�����������ɭEѭ!�19��k�*��(�*B�0m�3��%ү��6
�D�\�#s�%����Hư�+�#G�*k�`����;�M?�=��5˲��X��t	�[~�ڴ���",�qO���'ɵ)�%�A�T�f�(����_���<)�f�w���7��ܷ��'�.<�k�~��� ��ڸ��#�'0�(X�$��%���̹+��Ǻ���!�;�J�W�	m�w�L��	ٻ	�����@�YM�9�����1�&L�8s�o��G�?d�f��c�do�t�^I�u��K�dj�<����c��s�J��������U�PZ�F�����%'�(M�v�����O��c�}�!��#��"����W�m�v���5��.��!�R)�|���_	��i���5�
G��R��=�2�&H�!o� �����r�{� ������
��@��@�Y�oy�F��0�&<�
c�)n�&������
����
�{�+������@��)�.�=�Z�n���1��~��L�^T����	��������������B�J�Z�k���������,�����)�2?�8r���@��+	�.5�d�$������	��-��
�,&�+S�&���M���^&�G��G��Y�Zo�@��B�TN�W��P��$L�Pq�:����
�0+�\�z�;��$��-��5'�+]�#��%��*��!��/ �,P�}� ��������������(���#����C�IG�
������������)�=�P�"a���	��%����������
��.�A�W�i���.����.��
	���$�
<�J�Z�J_���'������������i����1+�]�4z�,����)��V�*f�%��6��D��@3�"t�,����Z��B1�Et�����
����l��c�h�n�s�8z�N��A�OD�D��G��6!�FX�:��������������'7�g_�<��T�PY�����0��6��*6�;a�$�����E]�
����.��
����7�U�q�����.��"��V
�4a�9�����*�J7� ���������(�
�'�-� @�7a���l��$�<�Z�s���'�������g��l�:�L.�{�����p��O*�<z�_��K�Dc�*��w��K�_��a[�=��C��!?�a�h�
t�����G��F��FEG�>�Ui
�t��4�A�;8GC�[�W (x������_�m�eR'�Z�;DTrT�U�18Mmy�
������
	/	#N	Cr	�	U�	"$
,G
Jt
K�
IAU�A�r�bv�)���
�5

9
D
V
't
`�
O�
M&`#�4�!�,�/J�Q�bCMX��#�e#,����4�
1<)\"���+�'�#!E[u�(�8�
%3<p��T2$��=�'--[tS|���(=0V��E��& =2^"�3�I�2)R#|� %61\'�A��M5�����V�.T�`����B��7�� � � X� {)!1�!i�!mA"H�"9�"Z2#!�#q�#!$,4$.a$�$O�$�$D%p[%n�%�;&�&�&'+ '!L'?n'	�'��'�Q(.�(#()L)XT)�)e�)R1*a�* �*+ +'9+.a+�+1�+�+4�+B,T,~e,��,|g-U�-`:.T�.c�.\T/@�/`�/aS0I�09�0691bp10�1)2<.2/k2O�2I�2i53X�3Y�3R4g4 x4@�4O�4*5k15�5$�5�5�56'6/6(?6h61m6"�6%�63�6X7 u7�7�7�7�7z�7?=8}81�8m�8s&9o�9D
:~O:>�:q
;l;`�;�M<��<K�=�=�`>-�>�?�?&�?a�?[G@9�@_�@J=A#�A�AP�A'BdDC=�C<�C?$DSdD^�D1E+IEauE0�E#F=,F@jF#�F\�F;,GhG^|Gs�G]OHt�H7"I_ZId�IJV5J��J04KReK��K�FLW�L5%M-[M|�M5N8<N�uN�@O�P�P]�P,BQ5oQ<�QV�Q*9RWdR��R'�U�UA�U\8V��V)W?AW:�WU�W6X,IXgvX?�XJY"iY^�YV�YxBZi�Z7%[S][?�[B�[�4\��\,�]��]T�^c�^:G_d�_!�_k	`�u`�3aJbW^bW�bHcJWcW�c\�c0Wdm�d�deee	&e*0e[e"pe�e�e�e �e�efff0/g4`g?�g%�g��g��h�bi�ij+!jMj(\j�j
�jR�jk
k)k�:kf�k�4l
�m�m
�m
�m�mnnE(nInnk�n�$o#�o�o#�op,p'Ep�mpkq>|q}�q�9r6�rFs.ds.�s(�s%�s4t5Ft�|tiu�u+�u�u�uG�uW!vyv�v�v(�v�vww/w%Bwhw~w"�w)�w�wf�w	\xfx3�x�x0�x��x$�y�y$�yz!z8z Lz|mz]�z}H{Y�{s |a�|X�|&O} v}�}u�}"#~oF~t�~+7,N4{%�
���,��8׀��7��;�+��X"��{�}B�K��*�L7�5��W��A�7T���E��:�['�7��R��U�.d�%��=�����.�fJ����Z�Qo�L����"�*�H�c�K��ٌ͌ތ��Z��Y�
e�p�	y�������a���gb�s��U��)j���c������(yvpR����pqf�L�`3��eG2M�Y
8X^��������c-�d��e�o
)���fV���:�5��/��T�xW�qa������nI.���uDk�J�NM��6��������X���s�� �/�����Bm��b��

(uq��(gK�C�$E3l�G��4�.#�C�t�N���R&p'~?���: �W���y���0/p�_�b�>�,n#���r%?4�	}�|1�H���>���&}:]�:���tI�H��D_yI*C�.��u<T���R�"�a	~gMd�Qx�Vh������L�z}���NS��Y���Y������:3��O� �t��.V��z��v���E���h�7�v�0Z6�����_���9)��-���K��(�64W=x|���	Q6���!,���	^�����)Z�RT�k�{G����� g�������T�x+En�0������-Q0��[6}�
\���cD�0���d1E"�r�s�1�,5�-��t��"
�����w��#V���*���2�s��m��d.]9+��<���wA���)�~���y�P�b�\�_��o�+cRhI�=������'%�]�\�{��2$�!�W��bO�U�Si'�$5L{��lw.i,T�o&�BNzJ^��@�sqc��	�$5r��A
i=(S�8�E`
[7��}�������\*]��/����>,��Y�6j�>�n��;��j��*�1zG�X���1��;l<'m^CJA[�"=yw{�rW�?�_�[��{�H�2�<zZ�l~VP��g��*Ke�-!L��vB=C��
�u��JV�j����n��xiE��H��z�c���O�g����Q_��fb�H%���x�$�~���P�a����?"?���5-�����9��>D�����i��o��#��f�o�R`�n�l`���UN"Q�9����@���Y�D�|'��W�9�`��<�d8������+p �^��j��������l�q8\���?�L�*2��FG���s9O��~�XoX:��r���F��4#���&��=k[8;t�P�JkSd/FDMT
��H�3���K��Oth���w��u���]��3�m���;�7|�0�CQm�p�����@�F�,���BP���2�5���u�a@�m|���JA!M���fN����
���[�B7Z�v�!��e�A3�&�Y+�I|�G��#����PU��`j��A;Z!��hLU��4q��>�����FZ��O�k��y�^�X�}�w@����e�f��7F\�i��B�r1�v�hS�<�%S8	��%{��/��&a�%��I�'U�+�;�@� 4)�K������e�(kK����M������]$��7
�� %s ago%1$s %2$d item(s)%1$s %2$s files left in queue%1$s is a %2$s paid feature.%1$s plugin version %2$s required for this action.%1$sLearn More%2$s%d hour%d hours%d item(s)%d minute%d minutes%d seconds%s Extension%s activation data expired.%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.%s must be turned ON for this setting to work.(no savings)(non-optm)(optm).htaccess Path<a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s<strong>Critical CSS (CCSS)</strong> loads visible above-the-fold content faster and with full styling.<strong>Image Optimization</strong> gives you smaller image file sizes that transmit faster.<strong>Low Quality Image Placeholder (LQIP)</strong> gives your imagery a more pleasing look as it lazy loads.<strong>Page Optimization</strong> streamlines page styles and visual elements for faster loading.<strong>Unique CSS (UCSS)</strong> removes unused style definitions for a speedier page load overall.<strong>Viewport Images (VPI)</strong> provides a well-polished fully-loaded view above the fold.A Domain Key is not required to use this preset. Only basic caching features are enabled.A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores.A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores.A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.AJAX Cache TTLAPIAPI: Filter %s available to disable blocklist.API: PHP Constant %s available to disable blocklist.AVIF file reduced by %1$s (%2$s)AVIF saved %sAccelerate, Optimize, ProtectAccelerates the speed by caching Gravatar (Globally Recognized Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdd to BlocklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced (Recommended)Advanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.AggressiveAlias is in use by another QUIC.cloud account.All QUIC.cloud service queues have been cleared.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied the %1$s preset %2$sApply PresetAre you sure to delete all existing blocklist items?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to disconnect from QUIC.cloud? This will not remove any data from the QUIC.cloud dashboard.Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Asynchronous CSS Loading with Critical CSSAttach PHP info to report. Check this box to insert relevant data from %s.Author archiveAuto DraftsAuto Purge Rules For Publish/UpdateAuto Request CronAutoloadAutoload entriesAutoload sizeAutoload top listAutomatic generation of critical CSS is in the background via a cron-based queue.Automatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Available after %d second(s)Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBackup created %1$s before applying the %2$s presetBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are allowlistedBest available WordPress performanceBest available WordPress performance, globally fast TTFB, easy setup, and %smore%s!Beta TestBlocklistBlocklistedBlocklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.CCSS Per URLCCSS Selector AllowlistCDNCDN - DisabledCDN - EnabledCDN - not available for anonymous usersCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS & JS CombineCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS, JS and HTML MinificationCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache REST APICache StatusCache WP-AdminCache key must be integer or non-empty string, %s given.Cache key must not be an empty string.Cache requests made by WordPress REST API calls.Cache the built-in Admin Bar ESI block.Cache the built-in Comment Form ESI block.Caches your entire site, including dynamic content and <strong>ESI blocks</strong>.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCategoryCert or key file does not exist.Changed setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck the status of your most important settings and the health of your CDN setup here.Check this option to use the primary site's configuration for all subsites.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all orphaned post meta recordsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean orphaned post meta successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all Unique CSS files.Cleaned all localized resource entries.Cleaned up unfinished data successfully.ClearClear %s cache when "Purge All" is run.Clear Cloudflare cacheClear LogsCleared %1$s invalid images.Clears all cache entries related to this site, including other web applications.Click here to proceed.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to copyClick to switch to optimized version.Click to switch to original (unoptimized) version.Close popupCloud ErrorCloud server refused the current request due to rate limiting. Please try again later.Cloud server refused the current request due to unpulled images. Please pull the images first.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare SettingsCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optimizedCongratulations, %s successfully set this domain up for the anonymous online services.Congratulations, %s successfully set this domain up for the online services with CDN service.Congratulations, %s successfully set this domain up for the online services.Congratulations, all gathered!Connected Date:Connection TestContent Delivery NetworkContent Delivery Network ServiceConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCopy LogCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler LogCrawler StatusCrawler disabled by the server admin.Crawler disabled list is cleared! All crawlers are set to active! Crawler(s)Crawlers cannot run concurrently. If both the cron and a manual run start at similar times, the first to be started will take precedence.Create a post, make sure the front page is accurate.Created with ❤️ by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s. Click to redetect.Current crawler started atCurrent image post id positionCurrent limit isCurrent server loadCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of AVIF file.Currently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of AVIF file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PreconnectDNS PrefetchDNS Prefetch ControlDNS Prefetch for static filesDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)DeactivateDeactivate LiteSpeed CacheDeactivate pluginDebug HelpersDebug LevelDebug LogDebug SettingsDebug String ExcludesDebug URI ExcludesDebug URI IncludesDefaultDefault CacheDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDeferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).Delay rendering off-screen HTML elements by its selector.DelayedDelete all backups of the original imagesDelivers global coverage with a growing <strong>network of 80+ PoPs</strong>.Destroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable CacheDisable Image LazyloadDisable VPIDisable WordPress interval heartbeat to reduce server load.Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.DisabledDisabled AVIF file successfully.Disabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disconnect from QUIC.cloudDismissDismiss this noticeDismiss this notice.Do Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Do not show this againDomainDowngrade not recommended. May cause fatal error due to refactored code.Drop Query StringESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Elements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blocklistEnable All FeaturesEnable CacheEnable ESIEnable QUIC.cloud CDNEnable QUIC.cloud ServicesEnable QUIC.cloud servicesEnable Viewport Images auto generation cron.Enable replacement of WebP/AVIF in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled AVIF file successfully.Enabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Error: Failed to apply the settings %1$sEssentialsEvery MinuteEverything in Advanced, PlusEverything in Aggressive, PlusEverything in Basic, PlusEverything in Essentials, PlusExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsExtremeFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %1$s! SQL: %2$s.Failed to detect IPFailed to get %s file contents.Failed to get echo data from WPAPIFailed to parse %s activation status.Failed to request via WordPressFailed to upgrade.Failed to validate %s activation data.Failed to write to %s.Fast Queue UsageFile %s is not writable.Filename is empty!FilesFilter %s available for UCSS per page type generation.Filter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %1$s, %2$s and %3$s can be used here.For example, for %1$s, %2$s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, to drop parameters beginning with %1$s, %2$s can be used here.For online services to work correctly, you must allowlist all %s server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFree monthly quota available.Free monthly quota available. Can also be used anonymously (no email required).Front pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate a separate vary cache copy for the mini cart when the cart is not empty.Generated at %sGenerated links may be managed under %sSettings%s.Get it from %s.Global API Key / API TokenGlobal GroupsGlobally fast TTFB, easy setup, and %s!Go to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode IPsGuest Mode JS ExcludesGuest Mode User AgentsGuest Mode and Guest OptimizationGuest Mode failed to test.Guest Mode passed testing.Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.Guest Mode testing resultGuest OptimizationHTML Attribute To ReplaceHTML Keep CommentsHTML Lazy Load SelectorsHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHigher TTLHistoryHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If comment to be kept is like: %1$s write: %2$sIf every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the %sAdvanced tab%s.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the %ssupport forum%s.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using a %1$s socket, %2$s should be set to %3$sIf you have used Image Optimization, please %sDestroy All Optimization Data%s first. NOTE: this does not remove your optimized images.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.If your theme does not use JS to update the mini cart, you must enable this option to display the correct cart contents.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage groups totalImages PulledImages containing these class names will not be lazy loaded.Images having these parent class names will not be lazy loaded.Images not requestedImages notified to pullImages optimized and pulledImages ready to requestImages requestedImages will be pulled automatically if the cron job is running.ImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.In order to use QC services, need a real domain name, cannot use an IP.In order to use most QUIC.cloud services, you need quota. QUIC.cloud gives you free quota every month, but if you need more, you can purchase it.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInline CSS added to CombineInline JS added to CombineInline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.InstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is STRONGLY recommended that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Defer for both external and inline JSJS Deferred / Delayed ExcludesJS DelayedJS Delayed IncludesJS ExcludesJS MinifyJS SettingsJS error can be found from the developer console of browser by right clicking and choosing Inspect.Join LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast PulledLast Report DateLast Report NumberLast RequestLast calculatedLast complete run time for all crawlersLast crawledLast crawled:Last exportedLast generatedLast generated: %sLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requested costLast requested: %sLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLazy Load for IframesLazy Load for ImagesLearn MoreLearn More about QUIC.cloudLearn moreLearn more about when this is neededLearn more or purchase additional quota.Link & Enable QUIC.cloud CDNLink to QUIC.cloudLinked to QUIC.cloud preview environment, for testing purpose only.List of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selectors whose styles should always be included in CCSS.List the CSS selectors whose styles should always be included in UCSS.Listed CSS files or inline CSS code will not be minified or combined.Listed CSS files will be excluded from UCSS and saved to inline.Listed IPs will be considered as Guest Mode visitors.Listed JS files or inline JS code will be delayed.Listed JS files or inline JS code will not be deferred or delayed.Listed JS files or inline JS code will not be minified or combined.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed User Agents will be considered as Guest Mode visitors.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache Configuration PresetsLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache Standard PresetsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed LogsLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLiteSpeed Web ADCLiteSpeed Web ServerLiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.Load CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog File Size LimitLog ViewLogin CookieLow Quality Image PlaceholderMBManageManually added to blocklistManually runMapMark this page as Maximum image post idMaximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobileMobile Agent RulesMobile CacheMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuMy QUIC.cloud DashboardNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are only using QUIC.cloud or Cloudflare, leave this setting %s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.NewsNext-Gen Image FormatNo available Cloud Node after checked server load.No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized AVIF file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo optimizationNo valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Node:Non cacheableNot AvailableNot blocklistedNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONOPcache is not enabled.ORObjectObject CacheObject Cache SettingsObject cache is not enabled.Offers optional <strong>built-in DNS service</strong> to simplify CDN onboarding.On uninstall, all plugin settings will be deleted.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Online ServicesOnline node needs to be redetected.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpenLiteSpeed Web ServerOpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized all tables.Option NameOptionalOptional when API token used.Optionally creates next-generation WebP or AVIF image files.Options saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Orphaned Post MetaOtherOther Static CDNOther checkboxes will be ignored.Outputs to a series of files in the %s directory.PAYG BalancePAYG used this month: %s. PAYG balance and usage not included in above quota calculation.PHP Constant %s is supported.Page Load TimePage OptimizationPageSpeed ScorePagesPartner Benefits Provided byPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please make sure this IP is the correct one for visiting your site.Please read all warnings before enabling this option.Please see %s for more details.Please see %sHooking WP-Cron Into the System Task Scheduler%s to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please thoroughly test all items in %s to ensure they function as expected.Please thoroughly test each JS file you add to ensure it functions as expected.Please try after %1$s for service %2$s.Please visit the %sInformation%s page on how to test the cache.Plugin is too complicatedPortPosition: Post IDPost RevisionsPost type archivePreconnecting speeds up future loads from a given origin.Predefined list will also be combined w/ the above settingsPredefined list will also be combined with the above settingsPredefined list will also be combined with the above settings.Prefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPresetsPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Prevent writing log entries that include listed strings.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blocklistPrivatePrivate CachePrivate Cached URIsPrivate cachePrivately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Processes your uploaded PNG and JPG images to produce smaller versions that don't sacrifice quality.Processing for PNG, JPG, and WebP image formats is free. AVIF is available for a fee.Product Update IntervalProvides <strong>security at the CDN level</strong>, protecting your server from attack.PublicPublic CachePull Cron is runningPull ImagesPulled AVIF image md5 does not match the notified AVIF image md5.Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge LogPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the URL!Purged the blog!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud CDN OptionsQUIC.cloud CDN Status OverviewQUIC.cloud CDN is <strong>not available</strong> for anonymous (unlinked) users.QUIC.cloud CDN is currently <strong>fully disabled</strong>.QUIC.cloud CDN:QUIC.cloud Integration DisabledQUIC.cloud Integration EnabledQUIC.cloud Integration Enabled with limitationsQUIC.cloud Online ServicesQUIC.cloud Service Usage StatisticsQUIC.cloud provides CDN and online optimization services, and is not required. You may use many features of this plugin without QUIC.cloud.QUIC.cloud's Image Optimization service does the following:QUIC.cloud's Online Services improve your site in the following ways:QUIC.cloud's Page Optimization services address CSS bloat, and improve the user experience during page load, which can lead to improved page speed scores.QUIC.cloud's access to your WP REST API seems to be blocked.Query strings containing these parameters will not be cached.Rate %1$s on %2$sRead LiteSpeed DocumentationRecommended to generate the token from Cloudflare API token template "WordPress".Recommended value: 28800 seconds (8 hours).RedetectRedetected nodeRedis Database IDRedis encountered a fatal error: %1$s (code: %2$d)RefreshRefresh Crawler MapRefresh Gravatar cache by cron.Refresh QUIC.cloud statusRefresh StatusRefresh UsageRefresh page load timeRefresh page scoreRegenerate and Send a New ReportRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove QUIC.cloud integration from this site. Note: QUIC.cloud data will be preserved so you can re-enable services at any time. If you want to fully remove your site from QUIC.cloud, delete the domain through the QUIC.cloud Dashboard first.Remove Query StringsRemove Query Strings from Static FilesRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlocklistRemove query strings from internal static resources.Removed Unused CSS for UsersRemoved backups successfully.Replace %1$s with %2$s.ReportRequest WebP/AVIF versions of original images when doing optimization.Requested: %s agoRequests in queueRescan New ThumbnailsRescanned %d images successfully.Rescanned successfully.Reset %s activation successfully.Reset All SettingsReset SettingsReset image optimization counter successfully.Reset positionReset successfully.Reset the OPcache failed.Reset the entire OPcache successfully.Reset the entire opcode cacheReset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore SettingsRestore from backupRestored backup settings %1$sRestored original file successfully.Results can be checked in %sMedia Library%s.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun %s Queue ManuallyRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_". No spaces and case sensitive.SYNTAX: alphanumeric and "_". No spaces and case sensitive. MUST BE UNIQUE FROM OTHER WEB APPLICATIONS.Save ChangesSave transients in database when %1$s is %2$s.SavedSaving option failed. IPv4 only for %s.Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee %sIntroduction for Enabling the Crawler%s for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Selectors must exist in the CSS. Parent classes in the HTML will not work.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSend to twitter to get %s bonusSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe a separate cache copy for mobile visitors.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %1$s tags, and CSS %2$s attributes.Serve your visitors fastServer IPServer Load LimitServer allowed max value: %sServer enforced value: %sServer variable(s) %s available to override this setting.Service:Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. QUIC.cloud deactivated automatically. Please reactivate your QUIC.cloud account.Site performance is worseSitemap ListSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSoft Reset Optimization CounterSome optimized image file(s) has expired and was cleared.Spam CommentsSpecify a base64 image to be used as a simple placeholder while images finish loading.Specify an AJAX action in POST/GET and the number of seconds to cache that request, separated by a space.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP/AVIF.Speed up your WordPress site even further with <strong>QUIC.cloud Online Services and CDN</strong>.Speed up your WordPress site even further with QUIC.cloud Online Services and CDN.Spread the love and earn %s credits to use in our QUIC.cloud online services.Standard PresetsStart watching...Started async crawlingStarted async image optimization requestStatic file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSubmit a ticketSuccessfully CrawledSummarySupport forumSure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync QUIC.cloud status successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)TestingThank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs listed below.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The Viewport Images service detects which images appear above the fold, and excludes them from lazy load.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The current server is under heavy load.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The deactivation is temporaryThe default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The features below are provided by %sThe following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe queue is processed asynchronously. It may take time.The selector must exist in the CSS. Parent classes in the HTML will not work.The server will determine if the user is logged in based on the existence of this cookie.The site is not a valid alias on QUIC.cloud.The site is not registered on QUIC.cloud.The user with id %s has editor access, which is not allowed for the role simulator.Then another WordPress is installed (NOT MULTISITE) at %sThere is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month Usage: %sThis action should only be used if things are cached incorrectly.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This enables the page's initial screenful of imagery to be fully displayed without delay.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development.This option can help to correct the cache vary for certain advanced mobile or tablet visitors.This option enables maximum optimization for Guest Mode visitors.This option is bypassed because %1$s option is %2$s.This option is bypassed due to %s option.This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.This option will automatically bypass %s option.This option will remove all %s tags from HTML.This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images.This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools.This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning.This process is automatic.This setting is %1$s for certain qualifying requests due to %2$s!This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This setting will regenerate crawler list and clear the disabled list!This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s.This will also add a preconnect to Google Fonts to establish a connection earlier.This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page from the combined file.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.This will reset the %1$s. If you changed WebP/AVIF settings and want to generate %2$s for the previously optimized images, use this action.This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?Time to execute previous request: %sTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited.To manage your QUIC.cloud options, go to QUIC.cloud Dashboard.To manage your QUIC.cloud options, go to your hosting provider's portal.To manage your QUIC.cloud options, please contact your hosting provider.To match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning CSS SettingsTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.Tweet previewTweet thisUCSS File Excludes and InlineUCSS InlineUCSS Selector AllowlistUCSS URI ExcludesURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL SearchURL list in %s queue waiting for cronUnable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict.Unable to automatically add %1$s as a Domain Alias for main %2$s domain.Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (%3$sLearn More%4$s)Unique CSSUnknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage Statistics: %sUse %1$s in %2$s to indicate this cookie has not been set.Use %1$s to bypass UCSS for the pages which page type is %2$s.Use %1$s to bypass remote image dimension check when %2$s is ON.Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.Use %s API functionality.Use CDN MappingUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between.Use external object cache functionality.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.Useful for above-the-fold images causing CLS (a Core Web Vitals metric).UsernameUsing optimized version of file. VPIValue rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary CookiesVary GroupVary for Mini CartView %1$s version %2$s detailsView .htaccessView Site Before CacheView Site Before OptimizationViewport ImageViewport Image GenerationViewport ImagesViewport Images CronVisit LSCWP support forumVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting to be CrawledWant to connect with other LiteSpeed users?Watch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebP file reduced by %1$s (%2$s)WebP saved %sWebP/AVIF Attribute To ReplaceWebP/AVIF For Extra srcsetWelcome to LiteSpeedWhat is a group?What is an image group?When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When minifying HTML do not discard comments that match a specified pattern.When switching formats, please %1$s or %2$s to apply this new choice to previously optimized images.When this option is turned %s, it will also load Google Fonts asynchronously.When you use Lazy Load, it will delay the loading of all images on a page.Who should use this preset?Why are you deactivating the plugin?Widget Cache TTLWildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou are currently using services as an anonymous user. To manage your QUIC.cloud options, use the button below to create an account and link to the QUIC.cloud Dashboard.You can just type part of the domain.You can list the 3rd party vary cookies here.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. %sLearn more about LiteSpeed browser cache settings%s.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible.You have images waiting to be pulled. Please wait for the automatic pull to complete, or pull them down manually now.You have too many requested images, please try again in a few minutes.You have used all of your daily quota for today.You have used all of your quota left for current service this month.You just unlocked a promotion from QUIC.cloud!You must be using one of the following products in order to measure Page Load Time:You must set %1$s to %2$s before using this feature.You must set %s before using this feature.You need to activate QC first.You need to set the %1$s first. Please use the command %2$s to set.You need to set the %s in Settings first before using the crawlerYou need to turn %s on and finish all WebP generation to get maximum result.You need to turn %s on to get maximum result.You will be unable to Revert Optimization once the backups are deleted!You will need to finish %s setup to use the online services.Your %1$s quota on %2$s will still be in use.Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more.Your server IPYour site is connected and ready to use QUIC.cloud Online Services.Your site is connected and using QUIC.cloud Online Services as an <strong>anonymous user</strong>. The CDN function and certain features of optimization services are not available for anonymous users. Link to QUIC.cloud to use the CDN and all available Online Services features.Zero, orcategoriescookiescurrently set to %se.g. Use %1$s or %2$s.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmoreno matter where they live.pixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.unknownuser agentsPO-Revision-Date: 2025-08-25 11:14:58+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/4.0.1
Language: es
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 hace %s%1$s %2$d elemento(s)%1$s %2$s archivos restantes en la cola%1$s es una característica de pago de %2$s.Para esta acción se necesita la versión %2$s del plugin %1$s.%1$sAprender más%2$s%d hora%d horas%d elemento(s)%d minuto%d minutos%d segundosExtensión %s%s datos de activación caducados.No se puede leer el archivo %s.No se puede escribir el archivo %s.%s grupo%s grupos%s imagen%s imágenesSe recomienda %s.%s debe estar activo para que este ajuste funcione.(sin reducción)(no-optm)(optm)Ruta del archivo «.htaccess»<a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s<strong>CSS crítico (CCSS)</strong> carga el contenido visible antes de desplazarse más rápido y con estilo completo.La <strong>optimización de imágenes</strong> te ofrece archivos de imagen de menor tamaño que se transmiten más rápido.El <strong>marcador de posición de imagen de baja calidad (LQIP)</strong> le da a tus imágenes un aspecto más agradable a medida que se cargan de forma diferida.La <strong>optimización de página</strong> agiliza los estilos de página y los elementos visuales para una carga más rápida.<strong>CSS único (UCSS)</strong> elimina las definiciones de estilo no utilizadas para lograr una carga de página más rápida en general.<strong>Viewport Images (VPI)</strong> proporciona una vista completa y bien pulida antes de desplazarse.No es obligatoria una clave de dominio para este preajuste. Solo se activan características básicas de caché.Es obligatoria una clave de dominio para usar este preajuste. Activa el máximo nivel de optimizaciones para obtener puntuaciones de velocidad de página mejorados.Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones de velocidad de página.Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones del sitio en las herramientas de medición de velocidad de página.Se iniciará una purga completa cuando WordPress ejecute estos ganchos.Un TTL de 0 implica no cachear.Se guarda una copia de seguridad de cada imagen antes de optimizarla.TTL de caché AJAXAPIAPI: El filtro %s está disponible para desactivar la lista de bloqueos.API: La constante %s de PHP está disponible para desactivar la lista de bloqueos.Archivo AVIF reducido en %1$s (%2$s)AVIF guardado %sAcelera, optimiza, protegeAcelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente).ActivarAñadir tamaños que faltanAñadir una nueva URL de la CDNAñadir una cookie nueva para simularAñadir a la lista negraAñade estilos a tus imágenes de carga diferidaSolo la IP del administradorIPs de administradorAvanzadoAvanzado (Recomendado)Ajustes avanzadosEl nivel avanzado registrará más detalles.DespuésDespués de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas.Después de que la caché funcione en general, por favor prueba el carrito.AgresivoEl alias ya está en uso por otra cuenta de QUIC.cloud.Se han borrado todas las colas de servicio de QUIC.cloud.Todos los datos transitoriosTodas las categorías son cacheadas por defecto.Todas las páginasTodas las páginas con widget de Entradas recientesTodas las etiquetas son cacheadas por defecto.Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.Ya en la cachéPurgar siempre productos y categorías cuando cambie la cantidad o estado del inventario.Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separarAñade la cadena de consulta %s a los recursos para evitar esta acción.Se ha aplicado el prejuste %1$s %2$sAplicar el preajuste¿Seguro que quieres borrar todos los elementos de la lista negra?¿Está seguro de destruir todas las imágenes optimizadas?¿Seguro que quieres vaciar todos los nodos cloud?¿Seguro que quieres desconectar de QUIC.cloud? Esto no eliminará ningún dato del escritorio de QUIC.cloud.¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?¿Seguro que quieres restablecer los ajustes a los valores por defecto?Carga de CSS asíncrono con CSS críticoAdjuntar información PHP al informe. Marca esta casilla para insertar datos relevantes de %s.Archivo del autorBorradores automáticosReglas de purga automática para publicación y actualizaciónCron de petición automáticaCarga automáticaCargar entradas automáticamenteTamaño de carga automáticaCargar automáticamente la lista principalGenera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.La generación automática de CSS único está en segundo plano a través de una cola basada en cron.Actualizar automáticamenteActivar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.Solicitar automáticamente la optimización mediante un trabajo cron.Disponible después de %d segundo(s)La lista de avatares está en la cola esperando ser actualizadaRuta del .htaccess de la administraciónControl de heartbeat de la administraciónTTL de heartbeat de la administraciónCopia de seguridad creada %1$s antes de aplicar el preajuste %2$sBásicoMarcador de posición de imagen básicaAntesAntes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blancaEl mejor rendimiento disponible para WordPress¡El mejor rendimiento disponible para WordPress, TTFB globalmente rápido, fácil configuración y %smucho más%s!Pruebas betaLista negraEn lista negraEn la lista negra debido a que no se puede cachearTanto %1$s como %2$s son aceptables.Pueden utilizarse tanto URLs completas como cadenas parciales.Se pueden usa cadenas parciales y completas.NavegadorCaché del navegadorAjustes de la caché del navegadorTTL caché de navegadorEl cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.Por defecto, se utilizará un marcador de posición de imagen gris %s.Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente.Por diseño, esta opción puede servir contenido obsoleto. No actives esta opción si no estás de acuerdo.CCSS por URLLista de permitidos del selector del CCSSCDNCDN - DesactivadoCDN - ActivadoCDN - no disponible para usuarios anónimosAncho de banda de la CDNAjustes de CDNURL de CDNURL de la CDN a utilizar. Por ejemplo, %sCombinar CSS y JSCombinar CSSCombinación de CSS externo e integradoExcluir CSSMinificar CSSAjustes de CSSMinimizado de CSS, JS y HTMLCaché CSS/JSCachéCachear barra de administradorCachear formulario de comentarioCachear comentaristasAjustes de control de cachéAcierto de cachéCachear usuarios con sesión iniciadaCachear página de accesoFallo de cachéCache móvilCachear API RESTEstado de cachéCaché de WP-AdminLa clave de caché debe ser un entero o una cadena no vacía, %s proporcionado.La clave de caché no puede ser una cadena vacía.Cachear peticiones realizadas por llamadas de la API REST de WordPress.Almacena en caché el bloque ESI de la barra de administración incorporada.Almacena en la caché el bloque ESI del formulario de comentarios incluido.Almacena en caché todo tu sitio, incluido el contenido dinámico y los <strong>bloques ESI</strong>.Calcular el espacio en disco de las copias de seguridadCalcular almacenamiento original de imágenesCopias de seguridad calculadas correctamente.No se puede crear el directorio: %1$s. Error: %2$sCancelarCategoríaEl archivo de certificado o clave no existe.Ajuste cambiado con éxito.Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración.Comprobar estadoComprobar mi IP pública desdeVerifica el estado de tus ajustes más importantes y el estado de tu configuración CDN aquí.Marca esta opción para usar la configuración del sitio principal para todos los subsitios.Limpiar todoVaciar el mapa del rastreadorLimpiar datos no finalizadosBorrar todos los borradores guardados automáticamenteLimpiar todos los registros meta de entradas huérfanasBorrar todas las revisiones de entradasBorrar todos los comentarios spamLimpieza completa exitosa.Borrar todos los trackbacks y pingbacksBorrar todas las opciones de datos transitoriosLimpieza de todos los datos transitorios exitosa.Borrar todos los comentarios en la papeleraBorrar todas las entradas y páginas en la papeleraLimpieza de borradores automáticos exitosa.Borrar opciones de datos transitorios expiradosLimpieza de datos transitorios expirados exitosa.Limpieza correcta de los meta de entrada huérfanos.Limpieza de revisiones de entradas exitosa.Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisionesLimpieza de comentarios no deseados exitosa.Limpieza de trackbacks y pingbacks exitosa.Limpieza de comentarios en papelera exitosa.Limpieza de páginas y entradas en papelera exitosa.Limpiados todos los archivos CSS críticos.Vaciados todos los archivos de Gravatar.Vaciados todos los archivos LQIP.Limpiados todos los archivos CSS únicos.Limpiadas todas las entradas de recursos localizados.Datos incompletos limpiados correctamente.VaciarLimpiar la caché de %s cuando se ejecuta «Purgar todo».Vaciar la caché de CloudflareVaciar los registrosPurgadas %1$s imágenes no válidas.Vacía todas las entradas de la caché relacionadas con este sitio, incluyendo otras aplicaciones web.Haz clic aquí para continuar.Haz clic aquí para configurarlo.Haz clic aquí para los ajustesHaz clic para borrar todos los nodos para volver a detectar.Haz clic para copiarHaz clic para cambiar a la versión optimizada.Haz clic para cambiar a la versión original (no optimizada).Cerrar ventana emergenteError de la nubeEl servidor en la nube rechazó la solicitud actual debido a la limitación de cuota. Por favor, inténtalo de nuevo más tarde.El servidor de la nube ha rechazado la solicitud actual debido a que no se han extraído las imágenes. Por favor, extrae primero las imágenes.CloudflareAPI de CloudflareLa API de Cloudflare está configurada en off.Caché de CloudflareDominio de CloudflareAjustes de CloudflareZona de CloudflareColapsar cadenas de peticionesCombina archivos CSS y código CSS integrado.Combina todos los archivos JS locales en un único archivo.Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario.Comunicado con éxito con Cloudflare.¡Felicidades! Tu archivo ya ha sido optimizadoFelicidades, %s configuró correctamente este dominio para los servicios anónimos en línea.Felicidades, %s configuró correctamente este dominio para los servicios en línea con servicio CDN.Felicidades, %s configuró correctamente este dominio para los servicios en línea.¡Felicidades, todos obtenidos!Fecha de conexión:Prueba de conexiónRed de entrega de contenidosServicio de red de entrega de contenidoConvertir a InnoDBConvertido a InnoDB correctamente.Nombre de la cookieSimulación de cookieValores de la cookieCopiar registroNo se ha podido encontrar %1$s en %2$s.Intervalo de indexaciónRastreadorCron del rastreadorAjustes generales del rastreadorRegistros de rastreadoresEstado del rastreadorRastreador desactivado por el administrador del servidor.¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos! Rastreador(es)Los rastreadores no pueden ejecutarse simultáneamente. Si tanto el cron como una ejecución manual se inician al mismo tiempo, el primero que se inicie tendrá prioridad.Crear una entrada, asegurarse que la página principal está actualizada.Creado con ❤️ por el equipo de LiteSpeed.Los créditos no son suficientes para proceder con la solicitud actual.CSS críticoReglas de CSS críticasNombre del CronContenidos actuales de %sNodos de la nube actual en servicioIPs del servidor en líneaEl servidor en la nube más cercano es %s. Haz clic para volver a detectarlo.El rastreador actual comenzó a lasPosición actual del id de entrada de la imagenEl límite actual esCarga actual del servidorLa hora actual del servidor es %s.El rastreo del mapa del sitio actual comenzó a lasEl estado actual es %1$s desde %2$s.El estado actual es %s.Rastreador activoActualmente se utiliza la versión optimizada del archivo AVIF.Actualmente usando la versión optimizada del archivo WebP.Actualmente usando la versión optimizada del archivo.Actualmente se utiliza la versión original (sin optimizar) del archivo AVIF.Actualmente usando la versión original (no optimizada) del archivo WebP.Actualmente usando la versión original (no optimizada) del archivo.Sitemap personalizadoAjustes de optimización de la BDPreconexión DNSPrefetch DNSControl del prefetch DNSPrecarga de DNS para archivos estáticosArchivo diarioEscritorioBase de datosOptimizador de base de datosResumen de la base de datosConversor de motor de tabla de base de datosBase de datos a usarDía(s)DesactivarDesactivar la caché de LiteSpeedDesactivar el pluginAyudas de depuraciónNivel de depuraciónRegistro de depuraciónAjustes de depuraciónExclusión de cadenas de depuraciónURIs excluidas de la depuraciónURIs incluidas en la depuraciónPor defectoCaché por defectoTTL por defecto del FeedTTL por defecto de la Página PrincipalTTL del código de estado de página por defectoTiempo de vida por defecto del objetoTTL por defecto de la caché privadaTTL por defecto de la caché públicaTTL por defecto de RESTTTL por defecto para objetos cacheados.La ruta por defecto esPuerto por defecto de %1$s es %2$s.Valor por defectoDiferidoAplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals).Retraso al mostrar los elementos HTML fuera de la pantalla por su selector.RetrasadoBorrar todas las copias de seguridad de las imágenes originalesOfrece cobertura global con una <strong>red en crecimiento de más de 80 PoP</strong>.Destruir todos los datos de optimizaciónTodos los datos de optimización destruidos correctamente.Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.Modo de desarrolloEl modo de desarrollo se desactivará automáticamente después de tres horas.El modo de desarrollo se desactivará automáticamente en %s.DesactivarDesactivar todas las característicasDesactivar la cachéDesactivar la carga de imágenes diferidaDesactivar VPIDesactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor.Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas.DesactivadoEl archivo AVIF desactivado correctamente.Archivo WebP desactivado con éxito.Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.Desactivar esta opción puede afectar negativamente al rendimiento.Desconectar de QUIC.cloudDescartarIgnorar ese avisoDescartar este aviso.Categorías a no cachearCookies a no cachearGrupos a no cachearCadenas de consulta a no cachearNo cachear perfilesEtiquetas a no cachearURIs a no cachearUser Agents a no cachearNo purgar las categorías al cambiar la cantidad o estado del inventario.No volver a mostrar estoDominioNo se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado.Ignorar cadenas de consultaESINonces de ESIAjustes de ESIESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.Muestra de ESI para desarrolaldoresHeartbeat del editorTTL de heartbeat del editorSe excluirán los elementos con el atributo %s en el código HTML.Se excluirán los elementos con el atributo %s en código html.Dirección de correo electrónicoVaciar la caché enteraVaciar la lista negraActivar todas las funcionesActiva cacheActivar ESIActivar la CDN de QUIC.cloudActivar los servicios de QUIC.cloudActivar los servicios de QUIC.cloudActivar el cron de generación automática del viewport de imágenes.Activar reemplazo de WebP/AVIF en los elementos %s generados fuera de la lógica de WordPress.Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.ActivadoArchivo AVIF activado correctamente.Archivo WebP activado con éxito.Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.Razón de finalizaciónMotorIntroduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN.Error: No se pudieron aplicar los ajustes %1$sBásicosCada minutoTodo lo de Advance y ademásTodo lo de Aggressive y ademásTodo en el básico, ademásTodo lo de Essentials y ademásEjemploEjemplo de uso:Ejemplos de pruebas incluyen:Excluir rutaAjustes de exclusiónExcluirDatos transitorios expiradosExportarExportar ajustesExtremoFallidoFallo al hacer copia de seguridad del archivo %s, cambios cancelados.Fallo al comunicar con CloudflareFallo de comunicación con el servidor QUIC.cloudFallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.¡Error al crear la tabla %1$s! SQL: %2$s.No se pudo detectar la IPError al obtener contenido del archivo %s.No se pudieron obtener los datos de eco de WPAPINo se pudo analizar el estado de activación de %s.Fallo en la solicitud desde WordPressFallo al actualizar.No se pudieron validar los datos de activación de %s.Error al escribir a %s.Uso de la cola rápidaNo se puede escribir el archivo %s.¡El nombre del archivo está vacío!ArchivosDisponible el filtro %s para la generación de UCSS por tipo de página.El filtro %s es compatible.El directorio no existe: %sEl directorio no es escribible: %s.Optimización de visualización de fuentesEn el caso de las URL con comodines, puede haber un retraso en el inicio de la purga programada.Por ejemploPor ejemplo, %1$s define un TTL de %2$s segundos para %3$s.Por ejemplo, los %s pueden usarse para un marcador de posición transparente.Por ejemplo, para %1$s, se pueden utilizar aquí %2$s y %3$s.Por ejemplo, para %1$s, se puede utilizar %2$s aquí.Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.Por ejemplo, para eliminar parámetros que comienzan con %1$s, se puede usar %2$s aquí.Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor.Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.Forzar URLs en cachéForzar URIs de caché púbicaForzar cronForzar cacheablesCuota mensual gratuita disponible.Cuota mensual gratuita disponible. También se puede usar de forma anónima (no se requiere correo electrónico).PortadaRuta del .htaccess de la parte públicaControl de heartbeat de la parte públicaTTL de heartbeat de la parte públicaOpciones generalesAjustes generalesGenerar LQIP en segundo planoGenerar el enlace para el usuario actualGenerar UCSSGenerar una copia de caché variable separada para el minicarrito cuando éste no esté vacío.Generado en %sLos enlaces generados pueden gestionarse en los %sAjustes%s.Obtenerlo de %s.Clave/Token global de la APIGrupos globales¡TTFB globalmente rápido, fácil configuración y %s!Ir al escritorio de QUIC.cloudIr a la lista de pluginsBuenas noticias del servidor QUIC.cloudGoogle reCAPTCHA se omitirá automáticamente.Caché de GravatarCron de la caché de GravatarTTL de la caché de GravatarGrupos cacheados a nivel de red.InvitadoModo de invitadoIP del modo de invitadoExclusiones JS del modo de invitadoAgentes de usuario del modo de invitadoModo de invitado y modo de optimizaciónPrueba fallida del modo de invitado.Prueba superada del modo de invitado.El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX.Resultado de la prueba del modo de invitadoOptimización para invitadosAtributo HTML a reemplazarHTML Mantener comentariosSelectores HTML de carga diferidaMinificar HTMLAjustes HTMLSolo orígenes HTTPS.HeartbeatControl de HeartbeatCaché de páginas de alto rendimiento y optimización de sitio de LiteSpeedTTL mayorHistorialAciertoPágina de inicioHostCómo solucionar problemas causados por la optimización CSS/JS.Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.El htaccess no coincide con la opción de configuración.La regla de Htaccess es: %sYa he dejado una valoración¡Si %1$s es %2$s entonces debe completarse %3$s!Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.Si el comentario a conservar es como: %1$s escribe: %2$sSi cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.Si no es así, comprueba la configuración en la %spestaña Avanzado%s.Si se debe purgar todo el sitio WordPress, usa «Purgar todo».Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el %sforo de soporte%s.Si esto se fija en un número inferior a 30, los feeds no serán cacheados.Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.Si estás usando un socket %1$s, %2$s debería estar en %3$sSi has utilizado la Optimización de Imágenes, por favor %sDestruye primero todos los datos de optimización%s. NOTA: esto no elimina tus imágenes optimizadas.Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.Si no quieres la aceleración de litespeed, puedes desactivar este plugin.Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.Si tu tema no utiliza JS para actualizar el minicarrito, debes activar esta opción para mostrar el contenido correcto del carrito.Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.Los iframes con estos nombres de clase padres no se cargarán de forma diferida.Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)Información de imágenesOptimización de imágenesAjustes de optimización de imágenesResumen de la optimización de imágenesGrupo de tamaños de miniaturasTotal de grupos de imágenesImágenes recuperadasLas imágenes que contengan estos nombres de clases no tendrán carga diferida.Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.Imágenes no solicitadasImágenes avisadas para descargarImágenes optimizadas y descargadasImágenes listas para la solicitudImágenes solicitadasLas imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.ImportarImportar / ExportarAjustes de importaciónImportación fallida debido a un error en el archivo.Importado con éxito el archivo de ajustes %s.Mejorar compatibilidad HTTP/HTTPSMejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)Mejorado porPara evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s.Para poder usar los servicios de QC necesitas un nombre de demonio real, no puedes usar una IP.Para utilizar la mayoría de los servicios de QUIC.cloud, necesitas una cuota. QUIC.cloud te ofrece cuota gratuita cada mes, pero si necesitas más, puedes comprarla.Incluir CSSIncluir tipos de archivoIncluir imágenesIncluir JSIncluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.Directorios incluidosBiblioteca de CSS integrado asíncronoCSS en línea añadido a CombinarJS en línea añadido a CombinarUCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala.InstalarInstalar %sInstalar la seguridad de DoLoginInstalar ahoraClic instantáneoIP no válidaCookie de acceso no válida. Encontrados caracteres no válidos.Cookie de acceso no válida. Por favor, comprueba el archivo %s.Regla de reescritura no válidaSe recomienda ENCARECIDAMENTE que primero se pruebe la compatibilidad con otros plugins en uno o varios sitios.Se convertirá en un marcador de posición SVG base64 sobre la marcha.Combinar JSCombinación de JS externo e integradoDiferir JSAplazar JS para JS externos e incrustadosExclusiones de JS diferido / retrasadoJS RetrasadoInclusiones de JS retrasadasExcluir JSMinificar JSAjustes de JSEl error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar.Únete a la comunidad de Slack de LiteSpeedÚnete a nuestro SlackÚnete a la comunidad %s.Mantén esto apagado para usar marcadores de posición de color.LQIPCaché de LQIPGenerador de LQIP en la nubeExclusiones de LQIPDimensiones mínimas de LQIPCalidad de LQIPVista previa de la imagen LQIP para el tamaño %sNo se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.LSCache¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.Mayor queÚltima lecturaÚltima extracciónFecha del último informeNúmero del último informeÚltima peticiónÚltimo cálculoHora de la última ejecución completa para todos los rastreadoresÚltimo rastreoÚltimo rastreo:Última exportaciónÚltimo generadoÚltima generación: %sÚltima importaciónÚltimo intervaloÚltima descarga iniciada por cron a las %s.Última ejecuciónÚltimo coste solicitadoÚltima solicitud: %sExclusiones de carga diferida de clases de iframesExclusiones de carga diferida de clases padre de iframesRetrasar la carga de iframesExclusión de nombres de clases para carga diferida de imágenesExclusiones de carga retrasada de imágenesExclusiones de carga diferida de clases padresRetrasar la carga de imágenesExclusión de URIs de carga diferidaCarga diferida de IframesCarga diferida para imágenesLeer másObtén más información acerca de QUIC.cloudAprender másAprende más sobre cuándo es esto necesarioMás información o compra cuota adicional.Enlazar y activar la CDN de QUIC.cloudEnlace a QUIC.cloudEnlazado al entorno de vista previa de QUIC.cloud, solo para fines de prueba.Lista de User Agents móvilesLista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.Lista los selectores CSS cuyos estilos siempre deben incluirse en CCSS.Lista los selectores CSS cuyos estilos siempre deben incluirse en UCSS.Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán.Los archivos CSS listados se excluirán del CSS sin uso y guardados para que se incrusten.Las IP listadas serán consideradas visitantes en modo invitado.Los archivos JS listados o el código JS en línea se retrasarán.Los archivos JS listados o el código JS integrado no serán aplazados ni diferidos.Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán.Los archivos JS listados o el código JS integrado no serán optimizados por %s.Las URI listadas no generarán UCSS.Los agentes de usuario listados serán considerados visitantes en modo invitado.Las imágenes listadas no se cargarán de forma retrasada.LiteSpeed CacheCDN de la caché de LiteSpeedPreajustes de configuración de caché LiteSpeedRastreador de LiteSpeed CacheEscritorio de LiteSpeed CacheOptimización de la base de datos de la caché de LiteSpeedAjustes generales de LiteSpeed CacheOptimización de imágenes de LiteSpeed CacheAjustes de la caché de la red de caché de LiteSpeedOptimización de página de LiteSpeed CachePurdgar toda la caché de LiteSpeedConfiguración de Caché de LiteSpeedPreajustes estándar de cache de LiteSpeedCaja de herramientas de LiteSpeedVer el archivo «.htaccess» de LiteSpeed Cache¡El plugin LiteSpeed Cache está instalado!LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS.Cron del rastreador de LiteSpeedRegistros de LiteSpeedOptimización de LiteSpeedInforme de LiteSpeedLiteSpeed TechnologiesLiteSpeed Web ADCServidor web LiteSpeedActualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración.Cargar CSS asíncronamenteCargar Google Fonts asíncronamenteDeferir carga de JSCargar iframes sólo cuando entran en la ventana de visualización.Cargar las imágenes sólo cuando entran en la ventana de visualización.LocalizaciónArchivos de idiomasAjustes de localizaciónRecursos localizadosLocalizar recursos externos.Recursos localizadosLímite de tamaño de archivo de registroVista de registrosCookie de accesoMarcador de imagen de baja calidadMBGestionarAñadido manualmente a la lista negraEjecutar manualmenteMapaMarcar esta página como ID de entrada de imagen máximaValor máximoPuede que más tardeQuizás más tardeExclusiones de mediosAjustes de mediosMensaje del servidor QUIC.cloudMétodoMinimiza archivos CSS y código CSS integrado.Minificar contenido HTML.Minimiza archivos JS y códigos JS integrados.Valor mínimoFalloMóvilReglas de agente móvilCaché móvilArchivo mensualMásAquí se puede encontrar más información sobre los comandos disponibles.Más ajustesMás ajustes disponibles en el menú %sMi escritorio de QUIC.cloudNOTANOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %s.AVISOAVISO:AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.Escritorio de redHabilitar caché de red¡Nueva versión para desarrolladores disponible!¡Nueva versión disponible!La nueva versión de desarrollo %s está disponible.La nueva versión %s está disponible ahora.NoticiasFormato de imagen de próxima generaciónNo hay ningún nodo de la nube disponible después de comprobar la carga del servidor.No hay ningún nodo de la nube disponible.No hay disponible una zona CloudflareNo existe una copia de seguridad del archivo original.No existe ninguna copia de seguridad del archivo AVIF sin optimizar.No existe una copia de seguridad del archivo WebP no optimizado.No hay servicios de la nube en usoArchivo meta del rastreador aún no generadoSin optimizaciónEl servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual.No se ha encontrado ninguna imagen válida en la petición actual.No se ha analizado ningún mapa del sitio válido para el rastreador.Nodo:No cacheableNo disponibleNo está en la lista negraNo hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamenteNotaNotasNotaAvisosAvisado correctamente a Cloudflare de la purga completa.Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.Solicitada la purga de entradas CSS/JS al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed la purga de todas las entradas de LSCache.Solicitada la purga de todas las páginas al servidor web LiteSpeed.Solicitada la purga de las páginas de error al servidor web LiteSpeed.Solicitado la purga de todo al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed la purga de la página de inicio.Solicitado la purga de la lista al servidor web LiteSpeed.OFFONOPcache no está activada.OObjetoCaché de objetosAjustes de la caché de objetosLa caché de objetos no está activada.Ofrece un <strong>servicio DNS integrado</strong> opcional para simplificar la puesta en marcha de CDN.Al desinstalar, se eliminarán todos los ajustes del plugin.Una vez guardado, coincidirá con la lista actual y se completará automáticamente.Una o más de las imágenes recuperadas no coincide con el md5 de imagen avisadoUna por línea.Servicios en líneaEl nodo online tiene que volver a ser detectado.Solo los atributos aquí listados serán reemplazados.Solo disponible cuando está instalado %s.Solo los archivos en estos directorios apuntarán a la CDN.Solo registra las páginas listadas.Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios.Solo pulsar el botón si la tarea cron de descarga está desactivada.Caché opcodeServidor web OpenLiteSpeedMarca esto si eres un usuario de OpenLiteSpeedOperaciónEstado de optimizaciónResumen de optimizaciónHerramientas de optimizaciónOptimiza la entrega de CSS.Optimizar sin pérdidaOptimizar imágenes originalesOptimizar tablasOptimizar todas las tablas en tu base de datosOptimizar solamente para invitadosOptimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.Optimizar imágenes usando compresión sin pérdida.Optimiza las imágenes con nuestro servidor en QUIC.cloudOptimizadas todas las tablas.Nombre de la opciónOpcionalOpcional cuando se usa el token de la API.Crea opcionalmente archivos de imagen WebP o AVIF de próxima generación.Las opciones han sido guardadas.OriginalOriginal %sAhorrado un %s del originalURLs originalesArchivo original reducido en %1$s (%2$s)Meta de entrada huérfanoOtrosOtra CDN estáticaOtras opciones serán ignoradas.Da salida en una serie de archivos en el directorio %s.Balance de pagosPAYG utilizado este mes: %s. El saldo y el uso de PAYG no están incluidos en el cálculo de cuota anterior.Es compatible la contante %s de PHP.Tiempo de carga de la páginaOptimización de páginaPuntuación de PageSpeedPáginasVentajas de colaboración ofrecidas porExitosoContraseñaEnlace sin contraseñaLa ruta debe terminar en %sLas rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.Las rutas que contengan estas cadenas no serán cacheadas.Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.Pago por usoEstadísticas pago por usoConexión persistenteDebido a que puede haber conflictos con LiteSpeed Cache, por favor, considera desactivar los siguientes plugins:Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior.Por favor, activa LiteSpeed Cache en los ajustes del plugin.Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio.Por favor, lee todas las advertencias antes de activar esta opción.Por favor, consulta %s para más detalles.Consulta %sConectar WP-Cron al programador de tareas del sistema%s para aprender cómo crear la tarea cron del sistema.Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Purgar todo».Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera.Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera.Por favor, inténtalo después de %1$s para el servicio %2$s.Visita la página de %sInformación%s sobre cómo probar la caché.El plugin es demasiado complicadoPuertoPosición: ID de entradaRevisiones de entradasArchivo de tipo de contenidoLa preconexión acelera las cargas futuras desde un origen determinado.La lista predefinida también se combinará con los ajustes anterioresLa lista predefinida también se combinará con los ajustes anterioresLa lista predefinida también se combinará con los ajustes anteriores.La precarga DNS puede reducir la latencia para los visitantes.Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.Conservar los datos EXIF/XMPPreajustesPulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales.Evita que cargue Google Fonts en todas las páginas.Evita cualquier registro de depuración de las páginas listadas.Evita cualquier carga diferida de las páginas de la lista.Evitar cualquier optimización de las páginas listadas.Evita escribir entradas del registro que incluyan cadenas listadas.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.Anteriormente existía en la lista negraPrivadaCaché privadaURIs cacheadas privadamenteCaché privadaCachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)Procesa las imágenes PNG y JPG cargadas para producir versiones más pequeñas que no sacrifican la calidad.El procesamiento de imágenes en formato PNG, JPG y WebP es gratuito. El formato AVIF tiene un coste.Intervalo de actualización de productoProporciona <strong>seguridad a nivel de CDN</strong>, protegiendo tu servidor de ataques.PúblicaCaché públicaPull Cron se está ejecutandoDescargar imágenesEl md5 de la imagen AVIF extraída no coincide con el md5 de la imagen AVIF avisada.El md5 de la imagen WebP recuperada no coincide con el md5 avisado de la imagen WebP.PurgarError de purga de %sPurgar las páginas de error %sPurgar todoGanchos de purgar todoPurgar todo al actualizarPurgar por...Purgar todoPurgar la página de inicioPurgar listaPurgar registroPurgar páginasAjustes de purgaPurga correcta de todas las cachés de objetos.Purgar todas las cachés de objetosPurgar las categorías solo cuando el estado del inventario cambie.Purgar la categoría %sPurgar páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.Purgar páginas por ID de entrada.Purgar páginas por URL completa o relativa.Purgar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.Purgar productos y categorías solo cuando cambie el estado del inventario.Purgar los productos con los cambios de cantidad o estado del inventario.Purgar los productos solo cuando cambie el estado del inventario.Purgar la etiqueta %sPurga las entradas de caché de LiteSpeed creadas por este pluginPurga las entradas de la caché creadas por este plugin, excepto las cachés de CSS único, CSS crítico y de LQIPPurgar esta páginaPurgar la URL %s¡Se ha purgado todo!Todas las cachés purgadas correctamente.¡Se ha purgado la URL!¡Se ha purgado el blog!¡Purgado!%1$s enviadas al servidor en la nube, %2$s aceptadas.QUIC.cloudCDN de QUIC.cloudOpciones de CDN de QUIC.cloudResumen del estado de CDN de QUIC.cloudLa CDN de QUIC.cloud <strong>no está disponible</strong> para usuarios anónimos (sin enlazar).La CDN de QUIC.cloud está actualmente <strong>totalmente desactivada</strong>.CDN de QUIC.cloud:Integración de QUIC.cloud desactivadaIntegración de QUIC.cloud activadaIntegración de QUIC.cloud activada con limitacionesServicios en línea de QUIC.cloudEstadísticas de uso del servicio QUIC.cloudQUIC.cloud ofrece servicios de CDN y optimización en línea, y no es obligatorio. Puedes usar muchas características de este plugin sin QUIC.cloud.El servicio de optimización de imágenes de QUIC.cloud hace lo siguiente:Los servicios en línea de QUIC.cloud mejoran su sitio de las siguientes maneras:Los servicios de optimización de páginas de QUIC.cloud abordan el problema del inflado de CSS y mejoran la experiencia del usuario durante la carga de la página, lo que puede generar mejores puntuaciones de velocidad de la página.El acceso de QUIC.cloud a tu API REST de WP parece estar bloqueado.Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.Puntúa %1$s en %2$sLeer la documentación de LiteSpeedRecomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare.Valor recomendado: 28800 segundos (8 horas).Volver a detectarNodo detectado nuevamenteID de base de datos RedisRedis encontró un error fatal: %1$s (código: %2$d)ActualizarRecargar el mapa del rastreadorRefrescar la caché de Gravatar por cron.Actualizar el estado de QUIC.cloudActualizar EstadoActualizar el usoActualizar el tiempo de carga de la páginaActualizar la puntuación de la páginaRegenerar y enviar un nuevo informeCuota diaria restanteEliminar la URL de la CDNEliminar Google FontsEliminar las etiquetas NoscriptEliminar copias de seguridad del orginalEliminar copias de seguridad de las imágenes originalesQuita la integración de QUIC.cloud de este sitio. Nota: Los datos de QUIC.cloud se conservarán para que puedas reactivar los servicios en cualquier momento. Si quieres borrar completamente tu sitio de QUIC.cloud, primero borra el dominio a través del escritorio de QUIC.cloud.Eliminar query stringsEliminar cadenas de consulta de recursos estáticosEliminar emojis de WordPressEliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.Eliminar la simulación de la cookieEliminar de la lista negraEliminar cadenas de consulta de recursos estáticos internos.CSS sin uso eliminado para los usuariosCopias de seguridad eliminadas correctamente.Reemplaza %1$s con %2$s.InformeSolicita versiones WebP/AVIF de las imágenes originales al hacer la optimización.Solicitado: hace %sPeticiones en colaReexaminar nuevas miniaturas%d imágenes reexploradas correctamente.Reexploración correcta.Restablecida la activación de %s correctamente.Restablecer todos los ajustesRestablecer ajustesRestablecido el contador de optimización de imágenes correctamente.Reestablecer posiciónRestablecimiento realizado con éxito.Error al restablecer el OPcache.Reestablecida correctamente la caché «OPcache».Reestablecer toda la caché opcodeDatos de optimización restablecidos correctamente.Los recursos listados aquí se copiarán y reemplazarán con URL locales.Marcador de posición adaptableColor del marcador de posición adaptableMarcador de posición SVG adaptableLos marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.Restaurar los ajustesRestaurar desde la copia de seguridadSe han restaurado el respaldo de los ajustes %1$sArchivo original restaurado con éxito.Los resultados pueden comprobarse en la %sBiblioteca de medios%s.Edad máxima de las revisionesNúmero máximo de revisionesLas revisiones más recientes se guardarán cuando se limpien las revisiones.Excluir perfilesSimulación de rolEjecutar manualmente la cola %sFrecuencia de ejecuciónEjecutar la cola manualmenteLa frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.Hora de ejecución para el rastreador anteriorEn cursoSINTAXIS: alfanumérica y «_». Sin espacios y con distinción entre mayúsculas y minúsculas.SINTAXIS: alfanumérica y «_». Sin espacios y con distinción entre mayúsculas y minúsculas. DEBE SER ÚNICA Y DISTINTA DE OTRAS APLICACIONES WEB.Guardar cambiosGuarda datos transitorios en la base de datos cuando %1$s es %2$s.GuardadoFalló el guardado de la opción. IPv4 es solo para %s.Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.Hora de purga programadaURLs de purga programadaVer la %sIntroducción para activar el rastreador%s para obtener información detallada.Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio.Selecciona debajo las opciones de «Purgar por».Selecciona solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.Selecciona qué páginas serán purgadas automáticamente cuando las entradas sean publicadas o actualizadas.Los perfiles seleccionados serán excluidos de todas las optimizaciones.Los perfiles seleccionados serán excluidos de la caché.Los selectores deben existir en el CSS. Las clases principales en el HTML no funcionarán.Enviar solicitud de optimizaciónEnviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.Enviar a LiteSpeedEnvíar a X para obtener %s de bonificaciónTipos de contenido de caché de CCSS distintosDistintas URIs de caché CCSSSepara archivos CSS críticos al generar las rutas que contengan estas cadenas.Servir contenido rancioOfrece una copia de la caché separada para los visitantes móviles.Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.Sirve todos los archivos de imagen a través de la CDN. Esto afectará a todos los archivos adjuntos, las etiquetas HTML %1$s y los atributos CSS %2$s.Sirve rápido a tus visitantesIP del servidorLímite de carga del servidorValor máximo permitido por el servidor: %sValor forzado por el servidor: %sVariable(s) del servidor %s disponible para omitir este ajuste.Servicio:Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals).Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.Ponlo en %1$s para bloquear heartbeat en %2$s.Configurar cabeceras personalizadasAjustesAcortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.Mostrar estado del rastreadorMejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s.Sitio no reconocido. QUIC.cloud se desactivó automáticamente. Reactiva tu cuenta de QUIC.cloud.El rendimiento del sitio es peorLista del mapa del sitioTotal del mapa del sitioEl mapa del sitio se limpió con éxitoMapa del sitio creado con éxito: %d elementosTamañoTamaño de la lista en la cola de espera del cronMás pequeño queRestablecimiento suave del contador de optimizaciónUna o más imágenes optimizadas han caducado y han sido borradas.Comentarios spamEspecifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.Especifica una acción AJAX en POST/GET y el número de segundos para almacenar en caché esa petición, separados por un espacio.Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.Especifica un SVG que se utilizará como marcador de posición al generar localmente.Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.Especifica tras cuanto tiempo debe el rastreador indexar el sitemap entero de nuevo.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.Especifica por cuanto tiempo, en segundos, se cachean los feeds.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.Especifica cuánto tiempo, en segundos, se almacena la página de inicio.Especifica el intervalo de heartbeat para %s en segundos.Especifica el tamaño máximo del archivo de registro.Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.Especifica la contraseña utilizada al conectar.Especifica la calidad al generar el LQIP.Especifica el color del marcador de posición SVG adaptable.Especifica la hora para purgar la lista «%s».Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.Especificar que atributos de elementos serán reemplazados con WebP/AVIF.Acelera aún más su sitio de WordPress con los <strong>servicios en línea y CDN de QUIC.cloud</strong>.Acelera aún más tu sitio de WordPress con los servicios en línea y CDN de QUIC.cloud.Difunde el amor y gana %s créditos para usar en nuestros servicios en línea QUIC.cloud.Preajustes estándarEmpieza a ver...Se inició el rastreo asíncronoSe inició la solicitud de optimización asíncrona de imágenesEnlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.EstadoDeja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador.Optimización de almacenamientoAlmacenar los gravatares localmente.Almacenar datos transitoriosEnviar un tiqueRastreado correctamenteSumarioForo de soporte¡Por supuesto, me encantará valorarlo!SwapVolver a utilizar imágenes optimizadas en tu webImágenes cambiadas correctamente.Cambio correcto a archivo optimizado.Sincronizado el estado de QUIC.cloud correctamente.Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube.Sincronizar los datos de la nubeInformación del sistemaTTLTablaEtiquetaOmite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.Archivo de término (incluye categoría, etiqueta y taxonomía)Probando¡Gracias por usar el plugin de caché LiteSpeed!La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs abajo listadas.El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.Las URLs de aquí (una por línea) serán purgadas automáticamente a la hora establecida en la opción «%s».Las URLs serán comparadas con la variable REQUEST_URI del servidor.El servicio de viewport de imágenes detecta qué imágenes aparecen antes de hacer scroll y las excluye de la carga diferida.Los nonces anteriores se convertirán en ESI automáticamente.La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar.La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: La cookie aquí establecida será usada por esta instalación de WordPress.La característica de rastreador no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor.El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio.El servidor actual está bajo una gran carga.La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.La desactivación es temporalLa cookie de acceso por defecto es %s.La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio.El informe de entorno contiene información detallada sobre la configuración de WordPress.Las siguientes características son proporcionadas por %sLas siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.La lista de imágenes está vacía.El último archivo de datos esLa lista se fusionará con los nonces predefinidos en tu archivo de datos local.La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del rastreador será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.El ajuste de administrador de red puede ser modificado aquí.La siguiente indexación de sitemap completa empezará a lasLa cola se procesa de forma asíncrona. Puede llevar un tiempo.El selector debe existir en el CSS. Las clases principales en HTML no funcionarán.El servidor determinará si el usuario está conectado en base a la existencia de esta cookie.El sitio no tiene un alias válido en QUIC.cloud.El sitio no está registrado en QUIC.cloud.El usuario con id %s tiene acceso de editor, que no tiene permisos para el simulador de perfiles.Y otro WordPress instalado (NO MULTISITIO) en %sHay un WordPress instalado para %s.Hay una cola de procedimiento que no se ha retirado todavía.La cola aún no ha sido recuperada. Información de la cola: %s.Estas imágenes no generarán LQIP.Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.Uso de este mes: %sEsta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.Esto puede mejorar la velocidad de carga de la página.Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.Esto permite que la pantalla inicial de imágenes de la página se muestre completamente sin demora.Esto es irreversible.Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.Este preajuste de bajo riesgo introduce optimizaciones básicas de mejora de la velocidad de página y experiencia de usuario. Adecuado para principiantes entusiastas.Esto puede causar una alta carga en el servidor.Este mensaje indica que el plugin fue instalado por el administrador del servidor.Este preajuste sin riesgos es apropiado para todas las webs. Es bueno para nuevos usuarios, webs sencillas o desarrollos orientados a caché.Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas.Esta opción permite la máxima optimización para los visitantes del modo de invitado.Esta opción se omite porque la opción %1$s es %2$s.Esta opción se omite debido a la opción %s.Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins.Esta opción omitirá automáticamente la opción %s.Esta opción eliminará todas las etiquetas %s del HTML.Este preajuste es casi seguro que requerirá pruebas y exclusiones de algo de CSS, JS y carga diferida de imágenes. Presta especial atención a los logotipos, o a imágenes de carrusel basadas en HTML.Este preajuste es bueno para la mayoría de webs, y es raro que provoque conflictos. Cualquier conflicto de CSS o JS puede solucionarse con las herramientas de Optimización de página > Retoques.Este preajuste puede que funcione tal cual en algunas webs, ¡pero asegúrate de hacer pruebas! Puede que sean necesarias algunas exclusiones de CSS y JS en Optimización de página > Retoques.Este proceso es automático.¡Este ajuste es %1$s para determinadas solicitudes que cumplen los requisitos debido a %2$s!Los ajustes de red sobreescriben este ajusteEste ajuste es sobrescrita por la constante %s de PHPEsta ajuste es sobrescrito por los ajuste del sitio primarioEste ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.Este ajuste editará el archivo .htaccess.¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente purgados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché.Esto solo purgará la página principalEsto solo purgará las páginasEsto afectará a todas las etiquetas que contengan atributos: %s.Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes.Se va a hacer una copia de seguridad de tus ajustes actuales y reemplazarlos con los de los preajustes %1$s. ¿Quieres continuar?Esto eliminará TODO dentro de la caché.Esto borrará todos los archivos Gravatar almacenados en cachéEsto borrará todos los archivos generados de CSS críticoEsto borrará todos los archivos generados de marcador de posición de imágenes LQIPEsto borrará todos los archivos CSS únicos generadosEsto borrará todos los recursos localizadosEsto desactivará LSCache y todas las características de optimización con propósitos de depuración.Esto desactivará la página de ajustes en todos los subsitios.Esto eliminará el CSS no utilizado en cada página del archivo combinado.Esto activará el cron rastreador.Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo.Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.Esto aumentará el tamaño de los archivos optimizados.Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.Esto purgará solo las entradas CSS/JS minimizadas o combinadasEsto restablecerá todos los ajustes a su valores predeterminados.Esto restablecerá los %1$s. Si cambiaste los ajustes de WebP/AVIF y quieres generar %2$s para las imágenes previamente optimizadas, utiliza esta acción.Esto restaurará la copia de seguridad de los ajustes creada %1$s antes de aplicar el preajuste %2$s. Cualquier cambio realizado desde entonces se perderá. ¿Quieres continuar?Hora para ejecutar la solicitud anterior: %sPara rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.Para coincidencias exactas, añadir %s al final de la URL.Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN.Para excluir %1$s, insertar %2$s.Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de grupos de imágenes permitidas en una sola petición es limitada.Para gestionar tus opciones de QUIC.cloud, ve al escritorio de QUIC.cloud.Para gestionar tus opciones de QUIC.cloud, ve al portal de tu proveedor de alojamiento.Para gestionar tus opciones de QUIC.cloud, comunícate con tu proveedor de alojamiento.Para que coincida con el principio, añade %s al comienzo del artículo.Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione.Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.Para probar el carrito, visita la <a %s>FAQ</a>.Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.HerramientaHerramientasTotalReducción totalUso totalTotal de imágenes optimizadas en este mesTrackbacks/pingbacksComentarios enviados a la papeleraEntradas enviadas a la papeleraProbar versión de GitHubRetoquesAjustar la configuración de CSSAjustes de los retoquesAPAGARENCENDERActívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.Actívalo para controlar heartbeat en el editor.Actívalo para controlar heartbeat en el escritorio.Enciéndelo para controlar heartbeat en las páginas públicas.Activar la actualización automáticaActiva esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.Cambia este ajuste %s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud.Vista previa del tweetTuitea estoExcluir archivo del CSS sin uso e incrustarUCCS integradoLista blanca del selector de CSS sin usoExclusiones UCSS de la URIURL excluidasLas rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.URLBuscar URLLista de URL en cola %s esperando el cronNo ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal, debido a un conflicto potencial con la CDN.No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal.Se ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si tienes la seguridad de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (%3$sMás información%4$s)CSS únicoError desconocidoActualizar %sActualizarActualizado con éxito.UsoEstadísticas de uso: %sUsa %1$s en %2$s para indicar que esta cookie no ha sido establecida.Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s.Utiliza %1$s para saltarte la comprobación de dimensión en imágenes remotas cuando la %2$s esté ACTIVA.Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL.Usar la funcionalidad de la API %s.Usar mapeo de CDNUsar ajuste de administrador de redUsar archivos optimizadosUsar archivos originalesUsar configuración del sitio principalUsa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga.Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante.Usar el servicio en línea QUIC.cloud para generar CSS único.Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto.Utiliza un preajuste oficial diseñado por LiteSpeed para configurar tu sitio en un clic. Pruebe el cacheo esencial sin riesgos, la optimización extrema o algo intermedio.Usa la funcionalidad de la caché de objetos externos.Utilizar conexiones keep-alive para acelerar operaciones de la caché.Usar el último commit de desarrollo de GitHubUtiliza el último commit Dev/Master de GitHubUsar el último commit maestro de GitHubUsar la última versión de WordPressUsar imágenes originales (no optimizadas) en tu webUsa el formato %1$s o %2$s (el elemento es opcional).Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo.Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals).Nombre de usuarioUsando la versión optimizada del archivo. VPIRango de valoresLas variables %s serán reemplazadas por el color de fondo configurado.Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen.Variar cookiesGrupos de variaciónVariante según el minicarritoVer detalles de la versión %2$s de %1$sVer el archivo «.htaccess»Ver sitio sin cachéVer sitio sin optimizarImagen de la vistaGeneración del viewport de la imagenImágenes de la vistaCron de imágenes de la vistaVisita el foro de soporte de LSCWPVisitar el sitio sin la sesión iniciada.ADVERTENCIAADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.En esperaEsperando a ser rastreado¿Quieres conectar con otros usuarios de LiteSpeed?Ver estado del rastreadorEstamos bien. Ninguna tabla usa el motor MyISAM.Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.Archivo WebP reducido en %1$s (%2$s)WebP ha ahorrado un %sAtributo a reemplazar para WebP/AVIFWebP/AVIF para srcset adicionalBienvenido a LiteSpeed¿Qué es un grupo?¿Qué es un grupo de imágenes?Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.Al desactivar la caché, se purgarán todas las entradas almacenadas en caché de este sitio.Al activarlo, la caché se purgará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.Al minimizar HTML no descartes los comentarios que coincidan con un patrón especificado.Al cambiar de formato, utiliza %1$s o %2$s para aplicar esta nueva opción a las imágenes previamente optimizadas.Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.Cuando usas la carga diferida, se retrasa la carga de todas las imágenes de la página.¿Quién debería usar este preajuste?¿Por qué desactivas el plugin?TTL caché de WidgetsEl comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.Compatibilidad con el comodín %s.Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.WooCommerceAjustes de WooCommerceControl de la calidad de imagen de WordPressEl intervalo válido de WordPress es de %s segundos.WpW: Caché privada o caché públicaArchivo anualActualmente estás utilizando los servicios como usuario anónimo. Para gestionar tus opciones de QUIC.cloud, utiliza el botón de abajo para crear una cuenta y acceder al escritorio de QUIC.cloud.Puedes simplemente teclear parte de dominio.Puedes listar las cookies de terceros que varían aquí.Puedes alternar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones normales como a las versiones webp si están disponibles.Puedes solicitar un máximo de %s imágenes de una vez.También puedes activar el almacenamiento en caché del navegador en la administración del servidor. %sObtén más información sobre los ajustes de caché del navegador de LiteSpeed%s.Puedes convertir shortcodes en bloques ESI.Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess».No puedes eliminar esta zona de DNS porque aún está en uso. Por favor, actualiza los servidores de nombers, luego tratar de borrar de nuevo esta zona, en caso contrario tu sitio será inaccesible.Tienes imágenes esperando a ser retiradas. Espera a que se complete la extracción automática o bájalas manualmente ahora.Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.Has utilizado toda tu cuota diaria de hoy.Has utilizado toda la cuota que te quedaba para el servicio actual este mes.¡Acabas de desbloquear una promoción de QUIC.cloud!Debes usar uno de los siguientes productos para medir el tiempo de carga de la página:Debes configurar %1$s en %2$s antes de usar esta característica.Debes configurar %s antes de usar esta característica.Primero debes activar QC.Primero debes configurar %1$s. Usa el comando %2$s para configurarlo.Debes configurar %s en Ajustes antes de usar el rastreadorDebes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado.Necesitas activar %s para obtener el máximo resultado.¡No podrás revertir la optimización una vez eliminadas las copias de seguridad!Necesitarás finalizar la configuración de %s para utilizar los servicios en línea.Tu cuota de %1$s en %2$s aún seguirá en uso.El hostname o dirección IP de tu %s.Tu clave de la API/token se usa para acceder a las API de %s.Tu dirección de email en %s.Tu IPTu solicitud está a la espera de aprobación.A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior.Tu domain_key ha sido bloqueada temporalmente para evitar abusos. Puedes ponerte en contacto con el servicio de asistencia de QUIC.cloud para obtener más información.La IP de tu servidorTu sitio está conectado y listo para usar los servicios en línea de QUIC.cloud.Tu sitio está conectado y utiliza los servicios en línea de QUIC.cloud como <strong>usuario anónimo</strong>. La función CDN y ciertas funciones de los servicios de optimización no están disponibles para usuarios anónimos. Conéctate a QUIC.cloud para usar la CDN y todas las funciones de los servicios en línea disponibles.Cero, ocategoríascookiesactualmente establecido en %sp.ej. utiliza %1$s o %2$s.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationahora mismomásno importa dónde vivan.pixelsproporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración.ahora mismoejecutandosegundosetiquetasla IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor.desconocidouser agents                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
<?php

/**
 * Plugin Name:       LiteSpeed Cache
 * Plugin URI:        https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration
 * Description:       High-performance page caching and site optimization from LiteSpeed
 * Version:           7.3.0.1
 * Author:            LiteSpeed Technologies
 * Author URI:        https://www.litespeedtech.com
 * License:           GPLv3
 * License URI:       https://www.gnu.org/licenses/gpl-3.0.html
 * Text Domain:       litespeed-cache
 * Domain Path:       /lang
 *
 * Copyright (C) 2015-2025 LiteSpeed Technologies, Inc.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

defined('WPINC') || exit();

if (defined('LSCWP_V')) return;

!defined('LSCWP_V') && define('LSCWP_V', '7.3.0.1');

!defined('LSCWP_CONTENT_DIR') && define('LSCWP_CONTENT_DIR', WP_CONTENT_DIR);
!defined('LSCWP_DIR') && define('LSCWP_DIR', __DIR__ . '/'); // Full absolute path '/var/www/html/***/wp-content/plugins/litespeed-cache/' or MU
!defined('LSCWP_BASENAME') && define('LSCWP_BASENAME', 'litespeed-cache/litespeed-cache.php'); // LSCWP_BASENAME='litespeed-cache/litespeed-cache.php'

/**
 * This needs to be before activation because admin-rules.class.php need const `LSCWP_CONTENT_FOLDER`
 * This also needs to be before cfg.cls init because default cdn_included_dir needs `LSCWP_CONTENT_FOLDER`
 *
 * @since  5.2 Auto correct protocol for CONTENT URL
 */
$WP_CONTENT_URL = WP_CONTENT_URL;
$site_url       = site_url('/');
if (substr($WP_CONTENT_URL, 0, 5) == 'http:' && substr($site_url, 0, 5) == 'https') {
	$WP_CONTENT_URL = str_replace('http://', 'https://', $WP_CONTENT_URL);
}
!defined('LSCWP_CONTENT_FOLDER') && define('LSCWP_CONTENT_FOLDER', str_replace($site_url, '', $WP_CONTENT_URL)); // `wp-content`
unset($site_url);
!defined('LSWCP_PLUGIN_URL') && define('LSWCP_PLUGIN_URL', plugin_dir_url(__FILE__)); // Full URL path '//example.com/wp-content/plugins/litespeed-cache/'

/**
 * Static cache files consts
 *
 * @since  3.0
 */
!defined('LITESPEED_DATA_FOLDER') && define('LITESPEED_DATA_FOLDER', 'litespeed');
!defined('LITESPEED_STATIC_URL') && define('LITESPEED_STATIC_URL', $WP_CONTENT_URL . '/' . LITESPEED_DATA_FOLDER); // Full static cache folder URL '//example.com/wp-content/litespeed'
unset($WP_CONTENT_URL);
!defined('LITESPEED_STATIC_DIR') && define('LITESPEED_STATIC_DIR', LSCWP_CONTENT_DIR . '/' . LITESPEED_DATA_FOLDER); // Full static cache folder path '/var/www/html/***/wp-content/litespeed'

!defined('LITESPEED_TIME_OFFSET') && define('LITESPEED_TIME_OFFSET', get_option('gmt_offset') * 60 * 60);

// Placeholder for lazyload img
!defined('LITESPEED_PLACEHOLDER') && define('LITESPEED_PLACEHOLDER', 'data:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=');

// Auto register LiteSpeed classes
require_once LSCWP_DIR . 'autoload.php';

// Define CLI
if ((defined('WP_CLI') && WP_CLI) || PHP_SAPI == 'cli') {
	!defined('LITESPEED_CLI') && define('LITESPEED_CLI', true);

	// Register CLI cmd
	if (method_exists('WP_CLI', 'add_command')) {
		WP_CLI::add_command('litespeed-option', 'LiteSpeed\CLI\Option');
		WP_CLI::add_command('litespeed-purge', 'LiteSpeed\CLI\Purge');
		WP_CLI::add_command('litespeed-online', 'LiteSpeed\CLI\Online');
		WP_CLI::add_command('litespeed-image', 'LiteSpeed\CLI\Image');
		WP_CLI::add_command('litespeed-debug', 'LiteSpeed\CLI\Debug');
		WP_CLI::add_command('litespeed-presets', 'LiteSpeed\CLI\Presets');
		WP_CLI::add_command('litespeed-crawler', 'LiteSpeed\CLI\Crawler');
		WP_CLI::add_command('litespeed-database', 'LiteSpeed\CLI\Database');
	}
}

// Server type
if (!defined('LITESPEED_SERVER_TYPE')) {
	if (isset($_SERVER['HTTP_X_LSCACHE']) && $_SERVER['HTTP_X_LSCACHE']) {
		define('LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_ADC');
	} elseif (isset($_SERVER['LSWS_EDITION']) && strpos($_SERVER['LSWS_EDITION'], 'Openlitespeed') === 0) {
		define('LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_OLS');
	} elseif (isset($_SERVER['SERVER_SOFTWARE']) && $_SERVER['SERVER_SOFTWARE'] == 'LiteSpeed') {
		define('LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_ENT');
	} else {
		define('LITESPEED_SERVER_TYPE', 'NONE');
	}
}

// Checks if caching is allowed via server variable
if (!empty($_SERVER['X-LSCACHE']) || LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_ADC' || defined('LITESPEED_CLI')) {
	!defined('LITESPEED_ALLOWED') && define('LITESPEED_ALLOWED', true);
}

// ESI const definition
if (!defined('LSWCP_ESI_SUPPORT')) {
	define('LSWCP_ESI_SUPPORT', LITESPEED_SERVER_TYPE !== 'LITESPEED_SERVER_OLS' ? true : false);
}

if (!defined('LSWCP_TAG_PREFIX')) {
	define('LSWCP_TAG_PREFIX', substr(md5(LSCWP_DIR), -3));
}

/**
 * Handle exception
 */
if (!function_exists('litespeed_exception_handler')) {
	function litespeed_exception_handler( $errno, $errstr, $errfile, $errline ) {
		throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
	}
}

/**
 * Overwrite the WP nonce funcs outside of LiteSpeed namespace
 *
 * @since  3.0
 */
if (!function_exists('litespeed_define_nonce_func')) {
	function litespeed_define_nonce_func() {
		/**
		 * If the nonce is in none_actions filter, convert it to ESI
		 */
		function wp_create_nonce( $action = -1 ) {
			if (!defined('LITESPEED_DISABLE_ALL') || !LITESPEED_DISABLE_ALL) {
				$control = \LiteSpeed\ESI::cls()->is_nonce_action($action);
				if ($control !== null) {
					$params = array(
						'action' => $action,
					);
					return \LiteSpeed\ESI::cls()->sub_esi_block('nonce', 'wp_create_nonce ' . $action, $params, $control, true, true, true);
				}
			}

			return wp_create_nonce_litespeed_esi($action);
		}

		/**
		 * Ori WP wp_create_nonce
		 */
		function wp_create_nonce_litespeed_esi( $action = -1 ) {
			$uid = get_current_user_id();
			if (!$uid) {
				/** This filter is documented in wp-includes/pluggable.php */
				$uid = apply_filters('nonce_user_logged_out', $uid, $action);
			}

			$token = wp_get_session_token();
			$i     = wp_nonce_tick();

			return substr(wp_hash($i . '|' . $action . '|' . $uid . '|' . $token, 'nonce'), -12, 10);
		}
	}
}

/**
 * Begins execution of the plugin.
 *
 * @since    1.0.0
 */
if (!function_exists('run_litespeed_cache')) {
	function run_litespeed_cache() {
		// Check minimum PHP requirements, which is 7.2 at the moment.
		if (version_compare(PHP_VERSION, '7.2.0', '<')) {
			return;
		}

		// Check minimum WP requirements, which is 5.3 at the moment.
		if (version_compare($GLOBALS['wp_version'], '5.3', '<')) {
			return;
		}

		\LiteSpeed\Core::cls();
	}

	run_litespeed_cache();
}
{
	"name": "litespeed-cache",
	"description": "High-performance page caching and site optimization from LiteSpeed",
	"license": "GPLv3",
	"scripts": {
		"format-check": "vendor/bin/phpcs --standard=phpcs.ruleset.xml cli/ tpl/ autoload.php",
		"format-check-bk": "vendor/bin/phpcs --standard=phpcs.ruleset.xml cli/ lib/ src/ tpl/ thirdparty autoload.php litespeed-cache.php",
		"install-composer-packages": "composer require --dev squizlabs/php_codesniffer:^3.12 wp-coding-standards/wpcs:^3.1 dealerdirect/phpcodesniffer-composer-installer:^1.0 && vendor/bin/phpcs --config-set installed_paths vendor/wp-coding-standards/wpcs,vendor/phpcsstandards/phpcsutils,vendor/phpcsstandards/phpcsextra",
		"sniff-check": "vendor/bin/phpcs --standard=phpcs.ruleset.xml cli/ tpl/ autoload.php",
		"sniff-check-bk": "vendor/bin/phpcs --standard=phpcs.ruleset.xml cli/ lib/ src/ tpl/ thirdparty autoload.php litespeed-cache.php",
		"wpformat": "vendor/bin/phpcbf --standard=phpcs.ruleset.xml cli/ tpl/ autoload.php",
		"wpformat-bk": "vendor/bin/phpcbf --standard=phpcs.ruleset.xml cli/ lib/ src/ tpl/ thirdparty autoload.php litespeed-cache.php"
	},
	"devDependencies": {
		"@prettier/plugin-php": "^0.21.0",
		"prettier": "^3.0.3"
	}
}
<?xml version="1.0"?>
<ruleset name="LiteSpeed Cache Coding Standards">
	<description>Apply LiteSpeed Cache Coding Standards to all plugin files</description>

	<!--
	#############################################################################
	COMMAND LINE ARGUMENTS
	https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset
	#############################################################################
	-->

	<!-- Only scan PHP files -->
	<arg name="extensions" value="php"/>

	<!-- Cache scan results to use for unchanged files on future scans -->
	<arg name="cache" value=".cache/phpcs.json"/>

	<!-- Set memory limit to 512M
		 Ref: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#specifying-phpini-settings 
	-->
	<ini name="memory_limit" value="512M"/> 

	<!-- Remove unwanted prefix from filepaths -->
	<arg name="basepath" value="./"/>

	<!-- Check max 20 files in parallel -->
	<arg name="parallel" value="20"/>

	<!-- Show sniff codes in all reports -->
	<arg value="ps"/>

	<!--
	#############################################################################
	FILE SELECTION
	Set which files will be subject to the scans executed using this ruleset.
	#############################################################################
	-->

	<file>.</file>

	<!-- Exclude any wordpress folder in the current directory -->
	<exclude-pattern type="relative">^wordpress/*</exclude-pattern>

	<!-- Directories and third-party library exclusions -->
	<exclude-pattern>/node_modules/*</exclude-pattern>
	<exclude-pattern>/vendor/*</exclude-pattern>

	<!--
	#############################################################################
	SET UP THE RULESET
	#############################################################################
	-->
	<!-- Check PHP v7.2 and all newer versions -->
	<config name="testVersion" value="7.2-"/>

	<rule ref="PHPCompatibility">
		<!-- Exclude false positives -->
		<!-- array_key_firstFound is defined in lib/php-compatibility.func.php -->
		<exclude name="PHPCompatibility.FunctionUse.NewFunctions.array_key_firstFound" />
	</rule>

</ruleset>
=== LiteSpeed Cache ===
Contributors: LiteSpeedTech
Tags: caching, optimize, performance, pagespeed, seo, image optimize, object cache, redis, memcached, database cleaner
Requires at least: 5.3
Requires PHP: 7.2
Tested up to: 6.8
Stable tag: 7.3.0.1
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl.html

All-in-one unbeatable acceleration & PageSpeed improvement: caching, image/CSS/JS optimization...

== Description ==

LiteSpeed Cache for WordPress (LSCWP) is an all-in-one site acceleration plugin, featuring an exclusive server-level cache and a collection of optimization features.

LSCWP supports WordPress Multisite and is compatible with most popular plugins, including WooCommerce, bbPress, and Yoast SEO.

LiteSpeed Cache for WordPress is compatible with ClassicPress.

== Requirements ==
**General Features** may be used by anyone with any web server (LiteSpeed, Apache, NGINX, etc.).

**LiteSpeed Exclusive Features** require one of the following: OpenLiteSpeed, commercial LiteSpeed products, LiteSpeed-powered hosting, or QUIC.cloud CDN. [Why?](https://docs.litespeedtech.com/lscache/lscwp/faq/#why-do-the-cache-features-require-a-litespeed-server)

== Plugin Features ==

= General Features =

* Free QUIC.cloud CDN Cache
* Object Cache (Memcached/LSMCD/Redis) Support<sup>+</sup>
* Image Optimization (Lossless/Lossy)
* Minify CSS, JavaScript, and HTML
* Minify inline & external CSS/JS
* Combine CSS/JS
* Automatically generate Critical CSS
* Lazy-load images/iframes
* Responsive Image Placeholders
* Multiple CDN Support<sup>+</sup>
* Load CSS Asynchronously
* Defer/delay JS loading
* Browser Cache Support<sup>+</sup>
* Database Cleaner and Optimizer
* PageSpeed score (including Core Web Vitals) optimization
* OPcode Cache Support<sup>+</sup>
* HTTP/2 Push for CSS/JS (on web servers that support it)
* DNS Prefetch
* Cloudflare API
* Single Site and Multisite (Network) support
* Import/Export settings
* Attractive, easy-to-understand interface
* AVIF/WebP image format support
* Heartbeat control

<sup>+</sup> This service is not provided by the LSCache plugin, nor is it guaranteed to be installed by your service provider. However, the plugin is compatible with the service if it is in use on your site.

= LiteSpeed Exclusive Features =

* Automatic page caching to greatly improve site performance
* Automatic purge of related pages based on certain events
* Private cache for logged-in users
* Caching of WordPress REST API calls
* Separate caching of desktop and mobile views
* Ability to schedule purge for specified URLs
* WooCommerce and bbPress support
* [WordPress CLI](https://docs.litespeedtech.com/lscache/lscwp/cli/) commands
* API system for easy cache integration
* Exclude from cache by URI, Category, Tag, Cookie, User Agent
* Smart preload crawler with support for SEO-friendly sitemap
* Multiple crawlers for cache varies
* HTTP/2 support
* [HTTP/3 & QUIC](https://www.litespeedtech.com/http3-faq) support
* ESI (Edge Side Includes) support<sup>*</sup>
* Widgets and Shortcodes as ESI blocks<sup>*</sup> (requires Classic Widgets plugin for WP 5.8+)

<sup>*</sup> Feature not available in OpenLiteSpeed

== Screenshots ==

1. Plugin Benchmarks
2. Admin - Dashboard
3. Admin - Image Optimization
4. Admin - Crawler
5. Admin Settings - Cache
6. Admin Settings - Page Optimization
7. Admin Settings - CDN
8. Admin Settings - DB Optimizer
9. Admin Settings - Toolbox
10. Cache Miss Example
11. Cache Hit Example

== LSCWP Resources ==
* [Join our Slack community](https://litespeedtech.com/slack) to connect with other LiteSpeed users.
* [Ask a question on our support forum](https://wordpress.org/support/plugin/litespeed-cache/).
* [View detailed documentation](https://docs.litespeedtech.com/lscache/lscwp/).
* [Read about LSCWP and WordPress on our blog](https://blog.litespeedtech.com/tag/wordpress/).
* [Help translate LSCWP](https://translate.wordpress.org/projects/wp-plugins/litespeed-cache/).
* [Contribute to the LSCWP GitHub repo](https://github.com/litespeedtech/lscache_wp).

== Installation ==

[View detailed documentation](https://docs.litespeedtech.com/lscache/lscwp/installation/).

= For Optimization Without a LiteSpeed Web Server =
1. Install the LiteSpeed Cache for WordPress plugin and activate it.
1. From the WordPress Dashboard, navigate to **LiteSpeed Cache > Page Optimization**. Enable the available optimization features in the various tabs.

= For Caching and Optimization With a LiteSpeed Web Server =
1. Install [LiteSpeed Web Server Enterprise](https://www.litespeedtech.com/products/litespeed-web-server) with LSCache Module, [LiteSpeed Web ADC](https://www.litespeedtech.com/products/litespeed-web-adc), or [OpenLiteSpeed](https://www.litespeedtech.com/open-source/openlitespeed) with cache module (Free). Or sign up for [QUIC.cloud CDN](https://quic.cloud).
1. Install the LiteSpeed Cache for WordPress plugin and activate it.
1. From the WordPress Dashboard, navigate to **LiteSpeed Cache > Cache**, make sure the option **Enable LiteSpeed Cache** is set to `ON`.
1. Enable any desired caching and optimization features in the various tabs.

= Notes for LiteSpeed Web Server Enterprise =

* Make sure that your license includes the LSCache module. A [2-CPU trial license with LSCache module](https://www.litespeedtech.com/products/litespeed-web-server/download/get-a-trial-license "trial license") is available for free for 15 days.
* The server must be configured to have caching enabled. If you are the server admin, [click here](https://docs.litespeedtech.com/lscache/start/#configure-cache-root-and-cache-policy) for instructions. Otherwise, please request that the server admin configure the cache root for the server.

= Notes for OpenLiteSpeed =

* This integration utilizes OpenLiteSpeed's cache module.
* If it is a fresh OLS installation, the easiest way to integrate is to use [ols1clk](https://openlitespeed.org/kb/1-click-install/). If using an existing WordPress installation, use the `--wordpresspath` parameter.
* If OLS and WordPress are both already installed, please follow the instructions in [How To Set Up LSCache For WordPress](https://openlitespeed.org/kb/how-to-setup-lscache-for-wordpress/).

== Third Party Compatibility ==

The vast majority of plugins and themes are compatible with LSCache. [Our API](https://docs.litespeedtech.com/lscache/lscwp/api/) is available for those that are not. Use the API to customize smart purging, customize cache rules, create cache varies, and make WP nonce cacheable, among other things.

== Privacy ==

This plugin includes some suggested text that you can add to your site's Privacy Policy via the Guide in the WordPress Privacy settings.

**For your own information:** LiteSpeed Cache for WordPress potentially stores a duplicate copy of every web page on display on your site. The pages are stored locally on the system where LiteSpeed server software is installed and are not transferred to or accessed by LiteSpeed employees in any way, except as necessary in providing routine technical support if you request it. All cache files are temporary, and may easily be purged before their natural expiration, if necessary, via a Purge All command. It is up to individual site administrators to come up with their own cache expiration rules.

In addition to caching, our WordPress plugin has online features provided by QUIC.cloud for Image Optimization and Page Optimization services. When one of these optimizations is requested, data is transmitted to a remote QUIC.cloud server, processed, and then transmitted back for use on your site. QUIC.cloud keeps copies of that data for up to 7 days and then permanently deletes it. Similarly, the WordPress plugin has a Reporting feature whereby a site owner can transmit an environment report to LiteSpeed so that we may better provide technical support. None of these features collects any visitor data. Only server and site data are involved.

QUIC.cloud CDN, if enabled, uses LSCache technology to access your site, and serve your content from remote global nodes. Your data is not accessed by QUIC.cloud employees in any way, except as necessary in providing maintenance or technical support.

Please see the [QUIC.cloud Privacy Policy](https://quic.cloud/privacy-policy/) for our complete Privacy/GDPR statement.

== Frequently Asked Questions ==

= Why do the cache features require LiteSpeed Server? =
This plugin communicates with your LiteSpeed Web Server and its built-in page cache (LSCache) to deliver superior performance to your WordPress site. The plugin’s cache features indicate to the server that a page is cacheable and for how long, or they invalidate particular cached pages using tags.

LSCache is a server-level cache, so it's faster than PHP-level caches. [Compare with other PHP-based caches](https://www.litespeedtech.com/benchmarks/wordpress).

A page cache allows the server to bypass PHP and database queries altogether. LSCache, in particular, because of its close relationship with the server, can remember things about the cache entries that other plugins cannot, and it can analyze dependencies. It can utilize tags to manage the smart purging of the cache, and it can use vary cookies to serve multiple versions of cached content based on things like mobile vs. desktop, geographic location, and currencies. [See our Caching 101 blog series](https://blog.litespeedtech.com/tag/caching-101/).

If all of that sounds complicated, no need to worry. LSCWP works right out of the box with default settings that are appropriate for most sites. [See the Beginner's Guide](https://docs.litespeedtech.com/lscache/lscwp/beginner/).

**Don't have a LiteSpeed server?** Try our QUIC.cloud CDN service. It allows sites on *any server* (NGINX and Apache included) to experience the power of LiteSpeed caching! [Click here](https://quic.cloud) to learn more or to give QUIC.cloud a try.

= What about the optimization features of LSCache? =

LSCWP includes additional optimization features, such as Database Optimization, Minification and Combination of CSS and JS files, HTTP/2 Push, CDN Support, Browser Cache, Object Cache, Lazy Load for Images, and Image Optimization! These features do not require the use of a LiteSpeed web server.

= Is the LiteSpeed Cache Plugin for WordPress free? =

Yes, LSCWP will always be free and open source. That said, a LiteSpeed server is required for the cache features, and there are fees associated with some LiteSpeed server editions. Some of the premium online services provided through QUIC.cloud (CDN Service, Image Optimization, Critical CSS, Low-Quality Image Placeholder, etc.) require payment at certain usage levels. You can learn more about what these services cost, and what levels of service are free, on [your QUIC.cloud dashboard](https://my.quic.cloud).

= What server software is required for this plugin? =

A LiteSpeed solution is required in order to use the **LiteSpeed Exclusive** features of this plugin. Any one of the following will work:

1. LiteSpeed Web Server Enterprise with LSCache Module (v5.0.10+)
2. OpenLiteSpeed (v1.4.17+)
3. LiteSpeed WebADC (v2.0+)
4. QUIC.cloud CDN

The **General Features** may be used with *any* web server. LiteSpeed is not required.

= Does this plugin work in a clustered environment? =

The cache entries are stored at the LiteSpeed server level. The simplest solution is to use LiteSpeed WebADC, as the cache entries will be stored at that level.

If using another load balancer, the cache entries will only be stored at the backend nodes, not at the load balancer.

The purges will also not be synchronized across the nodes, so this is not recommended.

If a customized solution is required, please contact LiteSpeed Technologies at `info@litespeedtech.com`

NOTICE: The rewrite rules created by this plugin must be copied to the Load Balancer.

= Where are the cached files stored? =

The actual cached pages are stored and managed by LiteSpeed Servers.

Nothing is stored within the WordPress file structure.

= Does LiteSpeed Cache for WordPress work with OpenLiteSpeed? =

Yes it can work well with OpenLiteSpeed, although some features may not be supported. See **Plugin Features** above for details. Any setting changes that require modifying the `.htaccess` file will require a server restart.

= Is WooCommerce supported? =

In short, yes. However, for some WooCommerce themes, the cart may not be updated correctly. Please [visit our blog](https://blog.litespeedtech.com/2017/05/31/wpw-fixing-lscachewoocommerce-conflicts/) for a quick tutorial on how to detect this problem and fix it if necessary.

= Are my images optimized? =

Images are not optimized automatically unless you set **LiteSpeed Cache > Image Optimization > Image Optimization Settings > Auto Request Cron** to `ON`. You may also optimize your images manually. [Learn more](https://docs.litespeedtech.com/lscache/lscwp/imageopt/).

= How do I make a WP nonce cacheable in my third-party plugin? =

Our API includes a function that uses ESI to "punch a hole" in a cached page for a nonce. This allows the nonce to be cached separately, regardless of the TTL of the page it is on. Learn more in [the API documentation](https://docs.litespeedtech.com/lscache/lscwp/api/#esi). We also welcome contributions to our predefined list of known third party plugin nonces that users can optionally include via [the plugin's ESI settings](https://docs.litespeedtech.com/lscache/lscwp/cache/#esi-nonce).

= How do I enable the crawler? =

The crawler is disabled by default, and must be enabled by the server admin first.

Once the crawler is enabled on the server side, navigate to **LiteSpeed Cache > Crawler > General Settings** and set **Crawler** to `ON`.

For more detailed information about crawler setup, please see [the Crawler documentation](https://docs.litespeedtech.com/lscache/lscwp/crawler/).

= What are the known compatible plugins and themes? =

* [WPML](https://wpml.org/)
* [DoLogin Security](https://wordpress.org/plugins/dologin/)
* [bbPress](https://wordpress.org/plugins/bbpress/)
* [WooCommerce](https://wordpress.org/plugins/woocommerce/)
* [Contact Form 7](https://wordpress.org/plugins/contact-form-7/)
* [All in One SEO](https://wordpress.org/plugins/all-in-one-seo-pack/)
* [Google XML Sitemaps](https://wordpress.org/plugins/google-sitemap-generator/)
* [Yoast SEO](https://wordpress.org/plugins/wordpress-seo/)
* [Wordfence Security](https://wordpress.org/plugins/wordfence/)
* [NextGen Gallery](https://wordpress.org/plugins/nextgen-gallery/)
* [ShortPixel](https://shortpixel.com/h/af/CXNO4OI28044/)
* Aelia CurrencySwitcher
* [Fast Velocity Minify](https://wordpress.org/plugins/fast-velocity-minify/) - Thanks Raul Peixoto!
* Autoptimize
* [Better WP Minify](https://wordpress.org/plugins/bwp-minify/)
* [WP Touch](https://wordpress.org/plugins/wptouch/)
* [Theme My Login](https://wordpress.org/plugins/theme-my-login/)
* [WPLister](https://www.wplab.com/plugins/wp-lister/)
* [WP-PostRatings](https://wordpress.org/plugins/wp-postratings/)
* [Avada 5.1 RC1+](https://avada.theme-fusion.com/)
* [Elegant Themes Divi 3.0.67+](https://www.elegantthemes.com/gallery/divi/)
* [Elegant Divi Builder](https://www.elegantthemes.com/plugins/divi-builder/)
* [Caldera Forms](https://wordpress.org/plugins/caldera-forms/) 1.5.6.2+
* Login With Ajax
* [Ninja Forms](https://wordpress.org/plugins/ninja-forms/)
* [Post Types Order 1.9.3.6+](https://wordpress.org/plugins/post-types-order/)
* [BoomBox — Viral Magazine WordPress Theme](https://themeforest.net/item/boombox-viral-buzz-wordpress-theme/16596434?ref=PX-lab)
* FacetWP (LSWS 5.3.6+)
* Beaver Builder
* WpDiscuz
* WP-Stateless
* Elementor
* WS Form
* WP Statistics

The vast majority of plugins and themes are compatible with LiteSpeed Cache. The most up-to-date compatibility information can be found [in our documentation](https://docs.litespeedtech.com/lscache/lscwp/thirdparty/)

= How can I report security bugs? =

You can report security bugs through the Patchstack Vulnerability Disclosure Program. The Patchstack team help validate, triage and handle any security vulnerabilities. [Report a security vulnerability.](https://patchstack.com/database/vdp/litespeed-cache)

== Changelog ==

= 7.3.0.1 - Jul 30 2025 =
* **Page Optimize** Fixed the page score impact caused by CSS placeholder. (wpconvert, Sean Thompson)
* **Page Optimize** Fixed wrong prefetch/preload injection when a page contains other `<title>` tags. (idatahuy)
* **Crawler** Bypassed port test if no server IP set. (kptk, serkanix, Guillermo)

= 7.3 - Jul 24 2025 =
* 🌱**CLI** Added `wp litespeed-database` database optimization command.
* 🌱**Misc** Added survey and data deletion reminder in deactivation process.
* **Core** Refactored the template files to comply with WordPress standards.
* **Core** Refactored the CLI files to comply with WordPress standards. Fixed a bug with CLI `option` command failure handler.
* **ESI** Fixed a case where the Edit button is missing on the frontend when the permalink structure is `Plain`. (#934261 PR#860)
* **API** Added `litespeed_purge_tags` filter to allow manipulation of purge tags.
* **API** Allowed overriding `litespeed_ui_events` via window property. (Zsombor Franczia PR#865)
* **API** Added `litespeed_vpi_should_queue` filter to allow control over appending to the VPI queue. (tompalmer #855, Viktor Szépe PR#856)
* **Debug** Allowed debug at multisite network level. (PR#861)
* **Vary** Fixed a possible duplicate WebP vary in Chrome when mimicking an iPhone visit.
* 🐞**Vary** Used simpler rewrite rule to check for next generation image format support.
* **Page Optimize** Tuned the optimized data injection location in HTML to improve SEO. (videofinanzas)
* **Page Optimize** Improved DNS prefetch and preconnect sequence in HTML to be as early as possible. Simplified DNS optimization code.
* 🐞**Page Optimize** Added the JS Delay library that was missing when page optimization was off while iframe lazy load was on. (Zsombor Franczia #867)
* 🐞**Page Optimize** Allowed lazy load threshold overwrite. (Zsombor Franczia #852 PR#857)
* 🐞**Page Optimize** Fixed an issue where the `async` attribute was replaced even when it contained a value, e.g. `async=true`. (@macorak)
* 🐞**Cloud** Fixed the API call timestamp file creation warning.
* **Cloud** No longer include public key when logging QUIC.cloud registration process.
* **Image Optimize** Resend all images that failed to pull instead of bypassing them. (Ryan D)
* **Crawler** Checked QUIC.cloud CDN for crawler hit. (PR#866)
* 🐞**Crawler** Fixed an issue where the non-role-simulator crawler added the whole map to the blocklist on servers that only support port 80.
* **GUI** Added Enable All Features icon to admin bar when all features are disabled. This replaces the banner that previously displayed in admin. (Tobolo, PR#868)
* **GUI** Dropped font files. (Masoud Najjar Khodabakhsh)
* **3rd** Resolved an issue with an empty WooCommerce ESI nonce and HTML comments on geolocation redirection. (#612331 PR#708)
* **OPcache** Detected `opcache.restrict_api` setting to prevent PHP warning in purge. (ookris #9496550 PR#812)
* **Misc** Simplified admin JavaScript.
* **Misc** Fixed download import file extension issue on mobile. (autori76 #874)
* **Misc** Added existing plugin version to ping API for debugging purposes.
* **Misc** Fixed comment typos reported by static analysis. (Viktor Szépe PR#836)
* **Misc** Removed global variables from plugin initialization file. (Viktor Szépe PR#837)

= 7.2 - Jun 18 2025 =
* 🌱**CDN** New option: Cloudflare Clear on purge all. (PR#828)
* **Core** Used `site_url` instead of `home_url` to fix the content folder parsing and QUIC.cloud calls.
* 🐞**Cloud** Fixed a bug where we tried to sync QUIC.cloud usage while debug mode was ON, even when QC was not activated.
* **Cloud** Stored request timestamp in static files along w/ database to prevent duplicate requests when database is down.
* **Cache** Dropped `Cache PHP Resources` option.
* **Cache** Added verification to prevent admin pages from caching even if the site is set to be globally cacheable.
* **Image Optimize** Disable image pull cron if there have been no image notifications.
* **Crawler** Non-role simulator crawler will now use DNS resolve to hit original server instead of CDN nodes.
* **Media** Resolved an issue where deleting an image from grid mode neglected to also remove the optimized versions of the image. (PR#844, Zsombor Franczia #841)
* **Media** Allowed filter `litespeed_next_gen_format` to manipulate the value of next gen format. (Zsombor Franczia #853)
* **3rd** Elementor: Clear all caches on regenerate CSS & Data. (PR#806)
* **Config** `Purge All On Upgrade` now defaults to OFF.
* **GUI** Showed `Disable all features` message on all WP-Admin pages for Admin-level users when enabled.
* **Misc** Used PHPCS w/ WordPress core and security coding standards to reformat cache menu code. (Viktor Szépe #696)
* **Misc** Replaced use of `SHOW TABLES` with `DESCRIBE` to prevent database halt in very large WP Multisite installations. (Boone Gorges PR#834, PR#850)
* **Misc** Replaced constants with WordPress functions to check whether AJAX or CRON is running.
* **API** Added action `litespeed_save_conf` to provide a trigger for configuration updates.

= 7.1 - Apr 24 2025 =
* 🌱**Page Optimize** Added allowlist support for CCSS.
* **Cloud** CCSS results are now generated asynchronously via QUIC.cloud queue services.
* **Cloud** Added TTL control to QUIC.cloud services to make next requests more flexible.
* **Crawler** Dropped non-WebP/AVIF crawler if Next Gen Images are being used.
* 🐞**Config** Fixed an .htaccess generation bug that occurred when reactivating after previous deactivation. (PR#825)
* **GUI** Improved the QC registration notice banner for online services thanks to user feedback.
* **GUI** QUIC.cloud management links will be opened in a single dedicated new window to prevent multiple sessions.
* **Page Optimization** Enhanced URL fetch validation to avoid exposing possible local info.
* **Debug** Added a Click to copy logs button under `Log View` tab.
* **CLI** Removed a vary warning log in CLI for QC activation process with a customized login cookie.
* **CLI** Removed a log failure in CLI in QC activation process when no existing admin message.
* **Misc** Check version only after upgrade to reduce the requests.
* **Misc** Switched to CyberPanel.sh to detect public IP for dash tool.

= 7.0.1 - Apr 8 2025 =
* **Page Optimize** Migrate legacy data to append trailing slash for better compatibility with v7.0-optimized UCSS/CCSS data.

= 7.0.0.1 - Mar 27 2025 =
* **GUI** Resolved a banner message display error in certain old version cases.
* **GUI** Fixed a continual error banner when site doesn't use QC.
* **Config** Fixed a continual CDN sync_conf/purge check issue after upgraded to v7.0.
* **3rd** Improved WPML multi lang sync_conf compatibility.

= 7.0 - Mar 25 2025 =
* 🌱**Image Optimization** Added AVIF format.
* **Core** Changed plugin classes auto load to preload all to prevent upgrade problems.
* **Core** Refactored configuration data initialization method to realtime update instead of delayed update in plugin upgrade phase.
* **Core** Used `const.default.json` instead of `const.default.ini` for better compatibility in case `parse_ini_file()` is disabled.
* **Core** Minimum required PHP version escalated to PHP v7.2.0.
* **Core** Minimum required WP version escalated to WP v5.3.
* **Cloud** Dropped `Domain Key`. Now using sodium encryption for authentication and validation.
* **Cloud** Added support for `list_preferred` in online service node detection.
* **Cloud** Fixed a domain expiry removal PHP warning. (cheekymate06)
* **Cloud** Auto dropped Cloud error message banner when successfully reconnected.
* **Cloud** Simplified the configure sync parameters to only compare and post the necessary settings.
* **Config** Simplified QUIC.cloud CDN Setup. CDN service is now automatically detected when activated in the QUIC.cloud Dashboard.
* **Config** Dropped the initial version check when comparing md5 to decide if whether to sync the configuration when upgrading the plugin.
* **Config** `LITESPEED_DISABLE_ALL` will now check the value to determine whether it's been applied.
* **Database Optimize** Fixed Autoload summary for WP6.6+. (Mukesh Panchal/Viktor Szépe)
* **CLI** Added QUIC.cloud CDN CLI command: `wp litespeed-online cdn_init --ssl-cert=xxx.pem --ssl-key=xxx -method=cname|ns|cfi`.
* **CLI** Added QUIC.cloud CDN CLI command: `wp litespeed-online link --email=xxx@example.com --api-key=xxxx`.
* **CLI** Added QUIC.cloud CDN CLI command: `wp litespeed-online cdn_status`.
* **CLI** Added `--force` argument for QUIC.cloud CLI command `wp litespeed-online ping`.
* **Image Optimization** Dropped `Auto Pull Cron` setting. Added PHP const `LITESPEED_IMG_OPTM_PULL_CRON` support.
* **Image Optimization** Added Soft Reset Counter button to allow restarting image optimization without destroying previously optimized images.
* **Image Optimization** Added support for `LITESPEED_IMG_OPTM_PULL_THREADS` to adjust the threads to avoid PHP max connection limits.
* **Image Optimization** Added support for the latest firefox WebP Accept header change for serving WebP.
* **Image Optimization** Allowed PHP Constant `LITESPEED_FORCE_WP_REMOTE_GET` to force using `wp_remote_get()` to pull images.
* **Image Optimization** Dropped API filter `litespeed_img_optm_options_per_image`.
* **Image Optimization** Auto redirect nodes if the server environment is switched between Preview and Production.
* **Purge** Allowed `LSWCP_EMPTYCACHE` to be defined as false to disable the ability to Purge all sites.
* **Purge** Each purge action now has a hook.
* **Purge** Fixed `PURGESINGLE` and `PURGE` query string purge tag bug.
* **Purge** `PURGE` will purge the single URL only like `PURGESINGLE`.
* **ESI** Fixed a log logic failure when ESI buffer is empty.
* **ESI** Added Elementor nonces (jujube0ajluxl PR#736)
* **ESI** Fixed a no-cache issue in no-vary ESI requests that occurred when `Login Cookie` was set.
* **ESI** ESI will no longer send cookie update headers.
* **Vary** Vary name correction, which used to happen in the `after_setup_theme` hook, now happens later in the `init` hook.
* **Crawler** Enhanced hash generation function for cryptographic security.
* **Crawler** Added back `Role Simulator` w/ IP limited to `127.0.0.1` only. Use `LITESPEED_CRAWLER_LOCAL_PORT` to use 80 if original server does not support 443.
* **Crawler** Enhanced Role Simulator security by disallowing editor or above access in settings.
* **Crawler** Defaulted and limited crawler `Run Duration` maximum to 900 seconds and dropped the setting.
* **Crawler** Crawler will be stopped when load limit setting is 0.
* **Crawler** Dropped `Delay` setting. Added PHP const `LITESPEED_CRAWLER_USLEEP` support.
* **Crawler** Dropped `Timeout` setting. Added PHP const `LITESPEED_CRAWLER_TIMEOUT` support.
* **Crawler** Dropped `Threads` setting. Added PHP const `LITESPEED_CRAWLER_THREADS` support.
* **Crawler** Dropped `Interval Between Runs` setting. Added PHP const `LITESPEED_CRAWLER_RUN_INTERVAL` support.
* **Crawler** Dropped `Sitemap Timeout` setting. Added PHP const `LITESPEED_CRAWLER_MAP_TIMEOUT` support.
* **Crawler** Dropped `Drop Domain from Sitemap` setting. Added PHP const `LITESPEED_CRAWLER_DROP_DOMAIN` support.
* **Crawler** Fixed wrong path of .pid file under wp-admin folder in certain case. (igobybus)
* **Crawler** Show an empty map error and disabled crawler when the map is not set yet.
* **Page Optimize** Updated request link parser to follow the site permalink. (Mijnheer Eetpraat #766)
* **Page Optimize** Updated latest CSS/JS optimization library to fix issues for RGB minification and external imports when combining CSS.
* **Page Optimize** Exclude Google Analytics from JavaScript optimization. (James M. Joyce #269 PR#726)
* **Page Optimize** Fixed typo in `LITESPEED_NO_OPTM` constant definition. (Roy Orbitson PR#796)
* **CDN** Fixed CDN replacement for inline CSS url with round brackets case. (agodbu)
* **GUI** Added an Online Service tab under General menu.
* **GUI** Added a QUIC.cloud CDN tab.
* **GUI** Combined all Crawler settings to a single setting tab.
* **GUI** Switch buttons rtl compatibility. (Eliza/Mehrshad Darzi #603)
* **GUI** Fixed an issue where an irremovable banner couldn't be echoed directly.
* **GUI** Limited page speed chart to cacheable servers only.
* **Tag** Fixed a potential warning in tags. (ikiterder)
* **Tag** Appended AJAX action to cache tags.
* **Tag** Dropped normal HTTP code. Only error codes (403/404/500) will be used for tags.
* **Misc** Fixed fatal activation error on Network installation when no other plugins are active. (PR#808 #9496550)
* **Misc** Improved README file by adding minimum supported PHP/WordPress versions. (Viktor Szépe)
* **Misc** Added reliance on just-in-time translation loading. (Pascal Birchler #738)
* **Misc** Will now check whether the filename is valid before saving a file to fix the possible Object Cache log issue. (Mahdi Akrami #761)
* **Misc** Fixed PHP 7.2 compatibility in cloud message. (Viktor Szépe #771)
* **Misc** Incompatibility warning banner for third party plugins is now dismissible.
* **Misc** Generated robots.txt file under litespeed folder to discourage search engine indexing of static resource files. (djwilko12)
* **Debug** Escalated debug initialization to as early as possible to allow more configuration information to be logged.
* **3rd** Fixed warning in Buddy Press code integration. (Viktor Szépe/antipole PR#778)

= 6.5.4 - Dec 16 2024 =
* **Page Optimize** Fixed Google Fonts broken with the Async option. (HivePress #787)

= 6.5.3 - Dec 4 2024 =
* **Misc** Quote escaped in attributes when building HTML. (CVE-2024-51915)

= 6.5.2 - Oct 17 2024 =
* **Crawler** Removed barely used Role Simulator from Crawler, to prevent potential security issues.
* **Misc** Removed `mt_srand` function in random hash generation to slightly improve the hash result.

= 6.5.1 - Sep 25 2024 =
* **Security** This release includes two security updates to enhance the post validation of the editor (CVE-2024-47373), and to secure the GUI queue display from malicious vary input (CVE-2024-47374).
* **Media** Sanitized dimensions for the images when replacing with placeholders. (TaiYou)
* **Page Optimize** Sanitized vary value in queue list. (TaiYou)
* **Cloud** Silent API error when failing to retrieve news updates.

= 6.5.0.2 - Sep 6 2024 =
* **Debug** Compatibility improvement for WP installations w/o `AUTH_KEY` defined in `wp-config.php`.

= 6.5.0.1 - Sep 4 2024 =
* 🔥**Debug** Fixed a corner case fatal error when Object Cache is ON but failed to connect, and `wp-content/litespeed` directory is not writable, and debug option is ON.

= 6.5 - Sep 4 2024 =
*❗**Security** This release includes several debug log improvements for improved security, as listed below. Update strongly recommended.
* **Debug** Moved debug log to litespeed individual folder `/wp-content/litespeed/debug/`.
* **Debug** Disallowed visits to `/litespeed/debug/` folder log files in .htaccess.
* **Debug** Dropped const `LSCWP_DEBUG_PATH` support.
* **Debug** Renamed `debug.purge.log` to `purge.log`.
* **Debug** Added dummy `index.php` for debug folder.
* **Debug** Used random string for log filenames.
* **Debug** Removed cookies-related info. (Thanks to Rafie)
* **Debug** Dropped `Log Cookies` option.
* **Report** Escaped report content to protect it from potential XSS attack. (Islam R alsaid #505746)
* **ESI** Added nonce for Advanced Custom Fields + Advanced Forms. (David Lapointe Gilbert #439)
* **Purge** Run ACTION_PURGE_EMPTYCACHE even if cache is disabled in network admin. (Philip #453)
* **Page Optimize** Disable UCSS exclusion when UCSS is inactived. (#640)
* **3rd** Fixed undefined warning in WooCommerce Widgets. (Lolosan #719)
* **3rd** Correct the integration with User Switching. (John Blackbourn #725)
* **3rd** Fixed Admin Bar Missing issue on DIVI + Elementor frontend. (thyran/robertstaddon PR#727)

= 6.4.1 - Aug 19 2024 =
* ❗**Security** This release patches a security issue that may affect previous LSCWP versions since v1.9.
* 🐞**Page Optimize** Fixed HTML minification returning blank page issue. (#706)
* 🐞**CDN** Fixed a bug when Cloudflare status option is empty. (#684 #992174)
* **Core** Minimum required WP version escalated to WP v4.9.

= 6.4 - Aug 13 2024 =
* **Cache** Corrected QC and LSADC cache hit status.
* **Cloud** Allow partner info removal in QUIC.cloud notification.
* **Crawler** Separated CSS preparation validation from crawler validation.
* **GUI** Moved `WordPress Image Quality Control` setting from `Image Optimization` menu to `Page Optimization` menu.
* **3rd** Add Elementor Edit button back in ESI. (PR#635)
* **3rd** Fixed Instant click potential conflict w/ other plugins.

= 6.3.0.1 - Jul 29 2024 =
* 🔥🐞**Rest** Disabled WP default Editor cache for REST requests to fix editor errors. (Shivam)
* **Cache** Supported `cache_nocacheable.txt` predefined settings.

= 6.3 - Jul 22 2024 =
* 🌱**Page Optimize** HTML Keep Comments: When minifying HTML do not discard comments that match a specified pattern. (#328853)
* 🌱**Cache** Cache POST requests. Now can configure POST/GET AJAX requests to be cached. (#647300)
* **Cache** Bypass admin initialization when doing ajax call. (Tim)
* **Cache** Better control over the cache location #541 (Gal Baras/Tanvir Israq)
* **Cloud** Added nonce for callback validation to enhance security. (Chloe@Wordfence)
* **Cloud** Fixed an error message for daily quota.
* **Cloud** Display error message when communicating with QUIC.cloud causes a token error.
* **ESI** Bypass ESI at an earlier stage when getting `DONOTCACHEPAGE`.
* **ESI** Added ESI nonce for Events Calendar and jetMenu mobile hamburger menu. (#306983 #163710 PR#419)
* **ESI** Added WP Data Access nonce (PR#665)
* **ESI** Added WP User Frontend ESI nonce (PR#675)
* **Media** Ignored images from JS in image size detection (PR#660)
* **GUI** Moved Preset menu from network level to site level for multisite networks.
* **GUI** Suppressed sitemap generation message if not triggered manually.
* **GUI** Added CloudFlare purge to front end menu.
* **GUI** Allowed customized partner CDN login link on dash.
* **Page Optimize** Cleaned up litespeed_url table when clearing url files. (PR#664)
* **Page Optimize** Updated Instant Click library to version 5.2.0.
* **Page Optimize** Added Flatsome theme random string excludes. (PR#415)
* **Page Optimize** Exclude Cloudflare turnstile from JS optimizations. (Tobolo)
* **Page Optimize** Fixed Cloudflare Turnstile issues. (Contributolo PR#671/672)
* **Object** Improved debug log for object cache status. (PR#669)
* **Object** Added brief parseable header comments to the drop-in file. (OllieJones)
* **Debug** Trimmed debug log.
* **Misc** Improved compatibility and sped up resolving for JSON functions `json_encode/json_decode`. (hosni/szepeviktor #693)
* **Misc** Fixed typos in params and comments. (szepeviktor #688)
* **Image Optimization** Fixed an issue which suppressed new requests when there were no new images in the library but there were unprocessed images in the send queue.
* **Image Optimization** Improved Cloud side quota check by disallowing new requests if notified but not pulled.
* **Image Optimization** Keep image attributes when replacing dimensions. (PR#686 #381779)

= 6.2.0.1 - Apr 25 2024 =
* 🔥🐞**Page Optimize** Fixed the image display issue that occurs with Elementor's `data-settings` attribute when the WebP image is not yet ready. (kanten/cbwwebmaster/reedock #132840 #680939 #326525)

= 6.2 - Apr 23 2024 =
* 🌱**Crawler** Added Crawler hit/miss filter. (#328853)
* 🌱**CLI** Image optimization now supports `wp litespeed-image batch_switch orig/optm`. (A2Hosting)
* 🌱**VPI** Auto preload VPI images. (Ankit)
* **Object** Added support for username/password authentication for Redis (PR#616 Donatas Abraitis/hostinger)
* **Page Optimize** Now supporting Elementors data-settings WebP replacement. (Thanks to Ryan D)
* **Cache** Send `Cache-Control: no-cache, no-store, must-revalidate, max-age=0` when page is not cacheable. (asafm7/Ruikai)
* **Cache** Cache control will respect `X-Http-Method-Override` now. (George)
* **Cache** No cache for `X-Http-Method-Override: HEAD`. (George)
* **Cache** Specified LSCWP in adv-cache compatible file.
* **Cache** Fixed redirection loop if query string has tailing ampersand (#389629)
* **Cache** Dropped "Cache Favicon.ico" option as it is redundant with 404 cache. (Lauren)
* **Cache** Fixed deprecated PHP v8 warning in page redirection. (Issue#617 dcx15)
* **Cloud** REST callback used ACL for QC ips validation.
* **Cloud** Fixed a typo in parsing cloud msg which prevented error messages to show.
* **Cloud** Carried on PHP ver for better version detection purpose.
* **Cloud** Escaped token to show correctly in report.
* **Cloud** Fixed a QC cloud ip verification setup failure in PHP 5.3.
* 🐞**Cloud** Fixed a continual new version detection.
* 🐞**Image Optimize** Fixed a summary counter mismatch for finished images. (A2Hosting)
* **CDN** Auto CDN setup compatibility with WP versions less than 5.3.
* 🐞**CDN** Fixed wrong replacement of non image files in image replacement. (Lucas)
* **GUI** Further filtered admin banner messages to prevent from existing danger code in database.
* **REST** Fixed a potential PHP warning in REST check when param is empty. (metikar)

= 6.1 - Feb 1 2024 =
* 🌱**Database** New Clear Orphaned Post Meta optimizer function.
* **Image Optimize** Fixed possible PHP warning for WP requests library response.
* **Image Optimize** Unlocked `noabort` to all async tasks to avoid image optimization timeout. (Peter Wells)
* **Image Optimize** Fixed an issue where images weren't being pulled with older versions of WordPress. (PR#608)
* **Image Optimize** Improved exception handling when node server cert expire.
* 🐞**Image Optimize** The failed to pull images due to 404 expiry will now be able to send the request again.
* **Crawler** CLI will now be able to force crawling even if a crawl was recently initiated within the plugin GUI.
* **Page Optimize** Fixed a dynamic property creation warning in PHP8. (PR#606)
* **Page Optimize** Fixed an issue where getimagesize could cause page optimization to fail. (PR#607)
* **Tag** Fixed an array to string conversion warning. (PR#604)
* **Object Cache** Return false to prevent PHP warning when Redis fails to set a value. (PR#612)
* **Cache Tag** Fixed an issue where $wp_query is null when getting cache tags. (PR#589)

= 6.0.0.1 - Dec 15 2023 =
* 🐞**Image Optimize** Grouped the taken notification to regional center servers to reduce the load after image pulled.

= 6.0 - Dec 12 2023 =
* 🌱**Image Optimize** Parallel pull. (⭐ Contributed by Peter Wells #581)
* 🌱**Cache** CLI Crawler.
* 🌱**Cache** New Vary Cookies option.
* 🌱**Media** New Preload Featured Image option. (Ankit)
* **Core** Codebase safety review. (Special thanks to Rafie Muhammad @ Patchstack)
* **Purge** Purge will not show QC message if no queue is cleared.
* **Purge** Fixed a potential warning when post type is not as expected. (victorzink)
* **Conf** Server IP field may now be emptied. (#111647)
* **Conf** CloudFlare CDN setting vulnerability patch. (Gulshan Kumar #541805)
* **Crawler** Suppressed sitemap generation msg when running by cron.
* **Crawler** PHP v8.2 Dynamic property creation warning fix. (oldrup #586)
* **VPI** VPI can now support non-alphabet filenames.
* **VPI** Fixed PHP8.2 deprecated warning. (Ryan D)
* **ESI** Fixed ESI nonce showing only HTML comment issue. (Giorgos K.)
* 🐞**Page Optimize** Fixed a fatal PHP error caused by the WHM plugin's Mass Enable for services not in use. (Michael)
* 🐞**Network** Fix in-memory options for multisites. (Tynan #588)
* **Network** Correct `Disable All Features` link for Multisite.
* 🐞**Image Optimize** Removing original image will also remove optimized images.
* **Image Optimize** Increased time limit for pull process.
* **Image Optimize** Last pull time and cron tag now included in optimization summary.
* **Image Optimize** Fixed Elementors Slideshow unusual background images. (Ryan D)
* 🐞**Database Optimize** Fix an issue where cleaning post revisions would fail while cleaning postmeta. (Tynan #596)
* **Crawler** Added status updates to CLI. (Lars)
* **3rd** WPML product category purge for WooCommerce. (Tynan #577)

= 5.7.0.1 - Oct 25 2023 =
* **GUI** Improvements to admin banner messaging. (#694622)
* **CDN** Improvements to CDN Setup. (#694622)
* **Image Optimize** Improvements to the process of checking image identification. (#694622)

= 5.7 - Oct 10 2023 =
* 🌱**Page Optimize** New option available: Preconnect. (xguiboy/Mukesh Patel)
* 🌱**3rd** New Vary for Mini Cart option for WooCommerce. (Ruikai)
* **Cloud** Force syncing the configuration to QUIC.cloud if CDN is reenabled.
* **Cloud** Force syncing the configuration to QUIC.cloud if domain key is readded.
* **Cloud** Limit multi-line fields when posting to QC.
* **Cache** Treat HEAD requests as cacheable as GET. (George Wang)
* 🐞**ESI** Patched a possible vulnerability issue. (István Márton@Wordfence #841011)
* 🐞**ESI** Overwrite SCRIPT_URI to prevent ESI sub request resulting in redirections. (Tobolo)
* 🐞**Image Optimize** Bypass unnecessary image processing when images were only partially optimized. (Ruikai)
* 🐞**Guest** Guest mode will not enable WebP directly anymore. (Michael Heymann)
* **CDN** Auto disable CDN if CDN URL is invalid. (Ruikai)
* **CDN** Fixed a null parameter warning for PHP v8.1 (#584)
* **API** Added `litespeed_media_add_missing_sizes` filter to allow bypassing Media's "add missing sizes" option (for Guest Optimization and otherwise). (PR #564)
* **Guest** Fixed soft 404 and robots.txt report for guest.vary.php.
* **Vary** Enabled `litespeed_vary_cookies` for LSWS Enterprise.
* **GUI** Stopped WebP tip from wrongly displaying when Guest Mode is off.
* **GUI** Added QUIC.cloud promotion postbox on dashboard page.
* **3rd** Added `pagespeed ninja` to blocklist due to its bad behavior.
<?php
/**
 * Presets CLI for LiteSpeed Cache.
 *
 * @package LiteSpeed\CLI
 */

namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit();

use LiteSpeed\Debug2;
use LiteSpeed\Preset;
use WP_CLI;

/**
 * Presets CLI
 */
class Presets {

	/**
	 * Preset instance.
	 *
	 * @var Preset
	 */
	private $preset;

	/**
	 * Constructor for Presets CLI.
	 */
	public function __construct() {
		Debug2::debug( 'CLI_Presets init' );

		$this->preset = Preset::cls();
	}

	/**
	 * Applies a standard preset's settings.
	 *
	 * ## OPTIONS
	 *
	 * <preset>
	 * : The preset name to apply (e.g., basic).
	 *
	 * ## EXAMPLES
	 *
	 *     # Apply the preset called "basic"
	 *     $ wp litespeed-presets apply basic
	 *
	 * @param array $args Positional arguments (preset).
	 */
	public function apply( $args ) {
		$preset = $args[0];

		if ( empty( $preset ) ) {
			WP_CLI::error( 'Please specify a preset to apply.' );
			return;
		}

		return $this->preset->apply( $preset );
	}

	/**
	 * Returns sorted backup names.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Get all backups
	 *     $ wp litespeed-presets get_backups
	 */
	public function get_backups() {
		$backups = $this->preset->get_backups();

		foreach ( $backups as $backup ) {
			WP_CLI::line( $backup );
		}
	}

	/**
	 * Restores settings from the backup file with the given timestamp, then deletes the file.
	 *
	 * ## OPTIONS
	 *
	 * <timestamp>
	 * : The timestamp of the backup to restore.
	 *
	 * ## EXAMPLES
	 *
	 *     # Restore the backup with the timestamp 1667485245
	 *     $ wp litespeed-presets restore 1667485245
	 *
	 * @param array $args Positional arguments (timestamp).
	 */
	public function restore( $args ) {
		$timestamp = $args[0];

		if ( empty( $timestamp ) ) {
			WP_CLI::error( 'Please specify a timestamp to restore.' );
			return;
		}

		return $this->preset->restore( $timestamp );
	}
}
<?php
/**
 * LiteSpeed Cache option Interface CLI.
 *
 * @package LiteSpeed\CLI
 */

namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit();

use LiteSpeed\Base;
use LiteSpeed\Admin_Settings;
use LiteSpeed\Utility;
use WP_CLI;
use WP_Filesystem;

/**
 * LiteSpeed Cache option Interface
 */
class Option extends Base {

	/**
	 * Set an individual LiteSpeed Cache option.
	 *
	 * ## OPTIONS
	 *
	 * <key>
	 * : The option key to update.
	 *
	 * <newvalue>
	 * : The new value to set the option to.
	 *
	 * ## EXAMPLES
	 *
	 *     # Set to not cache the login page
	 *     $ wp litespeed-option set cache-priv false
	 *     $ wp litespeed-option set 'cdn-mapping[url][0]' https://cdn.EXAMPLE.com
	 *     $ wp litespeed-option set media-lqip_exc $'line1\nline2'
	 *
	 * @param array $args Positional arguments (key, newvalue).
	 * @param array $assoc_args Associative arguments.
	 */
	public function set( $args, $assoc_args ) {
		// Note: If the value is multiple dimensions like cdn-mapping, need to specially handle it both here and in `const.default.json`
		// For CDN/Crawler multi dimension settings, if all children are empty in one line, will delete that line. To delete one line, just set all to empty.
		// E.g. to delete cdn-mapping[0], need to run below:
		// `set cdn-mapping[url][0] ''`
		// `set cdn-mapping[inc_img][0] ''`
		// `set cdn-mapping[inc_css][0] ''`
		// `set cdn-mapping[inc_js][0] ''`
		// `set cdn-mapping[filetype][0] ''`

		$key = $args[0];
		$val = $args[1];

		// For CDN mapping, allow:
		// `set 'cdn-mapping[url][0]' https://the1st_cdn_url`
		// `set 'cdn-mapping[inc_img][0]' true`
		// `set 'cdn-mapping[inc_img][0]' 1`
		//
		// For Crawler cookies:
		// `set 'crawler-cookies[name][0]' my_currency`
		// `set 'crawler-cookies[vals][0]' "USD\nTWD"`
		//
		// For multi lines setting:
		// `set media-lqip_exc $'img1.jpg\nimg2.jpg'`

		// Build raw data
		$raw_data = array(
			Admin_Settings::ENROLL => array( $key ),
		);

		// Contains child set
		if ( false !== strpos( $key, '[' ) ) {
			parse_str( $key . '=' . $val, $key2 );
			$raw_data = array_merge( $raw_data, $key2 );
		} else {
			$raw_data[ $key ] = $val;
		}

		$this->cls( 'Admin_Settings' )->save( $raw_data );
		WP_CLI::line( "$key:" );
		$this->get( $args, $assoc_args );
	}

	/**
	 * Get all plugin options.
	 *
	 * ## OPTIONS
	 *
	 * [--format=<format>]
	 * : Output format (e.g., json).
	 *
	 * ## EXAMPLES
	 *
	 *     # Get all options
	 *     $ wp litespeed-option all
	 *     $ wp litespeed-option all --json
	 *
	 * @param array $args Positional arguments.
	 * @param array $assoc_args Associative arguments.
	 */
	public function all( $args, $assoc_args ) {
		$options = $this->get_options();

		if ( ! empty( $assoc_args['format'] ) ) {
			WP_CLI::print_value( $options, $assoc_args );
			return;
		}

		$option_out = array();

		$buf = WP_CLI::colorize( '%CThe list of options:%n' );
		WP_CLI::line( $buf );

		foreach ( $options as $k => $v ) {
			if ( self::O_CDN_MAPPING === $k || self::O_CRAWLER_COOKIES === $k ) {
				foreach ( $v as $k2 => $v2 ) {
					// $k2 is numeric
					if ( is_array( $v2 ) ) {
						foreach ( $v2 as $k3 => $v3 ) {
							// $k3 is 'url/inc_img/name/vals'
							if ( is_array( $v3 ) ) {
								$option_out[] = array(
									'key'   => '',
									'value' => '',
								);
								foreach ( $v3 as $k4 => $v4 ) {
									$option_out[] = array(
										'key'   => 0 === $k4 ? "{$k}[$k3][$k2]" : '',
										'value' => $v4,
									);
								}
								$option_out[] = array(
									'key'   => '',
									'value' => '',
								);
							} else {
								$option_out[] = array(
									'key'   => "{$k}[$k3][$k2]",
									'value' => $v3,
								);
							}
						}
					}
				}
				continue;
			} elseif ( is_array( $v ) && $v ) {
				$option_out[] = array(
					'key'   => '',
					'value' => '',
				);
				foreach ( $v as $k2 => $v2 ) {
					$option_out[] = array(
						'key'   => 0 === $k2 ? $k : '',
						'value' => $v2,
					);
				}
				$option_out[] = array(
					'key'   => '',
					'value' => '',
				);
				continue;
			}

			if ( array_key_exists( $k, self::$_default_options ) && is_bool( self::$_default_options[ $k ] ) && ! $v ) {
				$v = 0;
			}

			if ( '' === $v || array() === $v ) {
				$v = "''";
			}

			$option_out[] = array(
				'key'   => $k,
				'value' => $v,
			);
		}

		WP_CLI\Utils\format_items( 'table', $option_out, array( 'key', 'value' ) );
	}

	/**
	 * Get a specific plugin option.
	 *
	 * ## OPTIONS
	 *
	 * <id>
	 * : The option ID to retrieve (e.g., cache-priv, cdn-mapping[url][0]).
	 *
	 * ## EXAMPLES
	 *
	 *     # Get one option
	 *     $ wp litespeed-option get cache-priv
	 *     $ wp litespeed-option get 'cdn-mapping[url][0]'
	 *
	 * @param array $args Positional arguments (id).
	 * @param array $assoc_args Associative arguments.
	 */
	public function get( $args, $assoc_args ) {
		$id = $args[0];

		$child = false;
		if ( false !== strpos( $id, '[' ) ) {
			parse_str( $id, $id2 );
			Utility::compatibility();
			$id = array_key_first( $id2 );

			$child = array_key_first( $id2[ $id ] ); // is `url`
			if ( ! $child ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
			$numeric = array_key_first( $id2[ $id ][ $child ] ); // `0`
			if ( null === $numeric ) {
				WP_CLI::error( 'Wrong 2nd level numeric key' );
				return;
			}
		}

		if ( ! isset( self::$_default_options[ $id ] ) ) {
			WP_CLI::error( 'ID not exist [id] ' . $id );
			return;
		}

		$v         = $this->conf( $id );
		$default_v = self::$_default_options[ $id ];

		// For CDN_mapping and crawler_cookies
		// Examples of option name:
		// cdn-mapping[url][0]
		// crawler-cookies[name][1]
		if ( self::O_CDN_MAPPING === $id ) {
			if ( ! in_array( $child, array( self::CDN_MAPPING_URL, self::CDN_MAPPING_INC_IMG, self::CDN_MAPPING_INC_CSS, self::CDN_MAPPING_INC_JS, self::CDN_MAPPING_FILETYPE ), true ) ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
		}
		if ( self::O_CRAWLER_COOKIES === $id ) {
			if ( ! in_array( $child, array( self::CRWL_COOKIE_NAME, self::CRWL_COOKIE_VALS ), true ) ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
		}

		if ( self::O_CDN_MAPPING === $id || self::O_CRAWLER_COOKIES === $id ) {
			if ( ! empty( $v[ $numeric ][ $child ] ) ) {
				$v = $v[ $numeric ][ $child ];
			} elseif ( self::O_CDN_MAPPING === $id ) {
				if ( in_array( $child, array( self::CDN_MAPPING_INC_IMG, self::CDN_MAPPING_INC_CSS, self::CDN_MAPPING_INC_JS ), true ) ) {
					$v = 0;
				} else {
					$v = "''";
				}
			} else {
				$v = "''";
			}
		}

		if ( is_array( $v ) ) {
			$v = implode( PHP_EOL, $v );
		}

		if ( ! $v && self::O_CDN_MAPPING !== $id && self::O_CRAWLER_COOKIES !== $id ) {
			// empty array for CDN/crawler has been handled
			if ( is_bool( $default_v ) ) {
				$v = 0;
			} elseif ( ! is_array( $default_v ) ) {
				$v = "''";
			}
		}

		WP_CLI::line( $v );
	}

	/**
	 * Export plugin options to a file.
	 *
	 * ## OPTIONS
	 *
	 * [--filename=<path>]
	 * : The default path used is CURRENTDIR/lscache_wp_options_DATE-TIME.txt.
	 * To select a different file, use this option.
	 *
	 * ## EXAMPLES
	 *
	 *     # Export options to a file.
	 *     $ wp litespeed-option export
	 *
	 * @param array $args Positional arguments.
	 * @param array $assoc_args Associative arguments.
	 */
	public function export( $args, $assoc_args ) {
		if ( isset( $assoc_args['filename'] ) ) {
			$file = $assoc_args['filename'];
		} else {
			$file = getcwd() . '/litespeed_options_' . gmdate( 'd_m_Y-His' ) . '.data';
		}

		global $wp_filesystem;
		if ( ! $wp_filesystem ) {
			require_once ABSPATH . '/wp-admin/includes/file.php';
			WP_Filesystem();
		}

		if ( ! $wp_filesystem->is_writable( dirname( $file ) ) ) {
			WP_CLI::error( 'Directory not writable.' );
			return;
		}

		$data = $this->cls( 'Import' )->export( true );

		if ( false === $wp_filesystem->put_contents( $file, $data ) ) {
			WP_CLI::error( 'Failed to create file.' );
			return;
		}

		WP_CLI::success( 'Created file ' . $file );
	}

	/**
	 * Import plugin options from a file.
	 *
	 * The file must be formatted as such:
	 * option_key=option_value
	 * One per line.
	 * A semicolon at the beginning of the line indicates a comment and will be skipped.
	 *
	 * ## OPTIONS
	 *
	 * <file>
	 * : The file to import options from.
	 *
	 * ## EXAMPLES
	 *
	 *     # Import options from CURRENTDIR/options.txt
	 *     $ wp litespeed-option import options.txt
	 *
	 * @param array $args Positional arguments (file).
	 * @param array $assoc_args Associative arguments.
	 */
	public function import( $args, $assoc_args ) {
		$file = $args[0];

		global $wp_filesystem;
		if ( ! $wp_filesystem ) {
			require_once ABSPATH . '/wp-admin/includes/file.php';
			WP_Filesystem();
		}

		if ( ! $wp_filesystem->exists( $file ) || ! $wp_filesystem->is_readable( $file ) ) {
			WP_CLI::error( 'File does not exist or is not readable.' );
			return;
		}

		$res = $this->cls( 'Import' )->import( $file );

		if ( ! $res ) {
			WP_CLI::error( 'Failed to parse serialized data from file.' );
			return;
		}

		WP_CLI::success( 'Options imported. [File] ' . $file );
	}

	/**
	 * Import plugin options from a remote file.
	 *
	 * The file must be formatted as such:
	 * option_key=option_value
	 * One per line.
	 * A semicolon at the beginning of the line indicates a comment and will be skipped.
	 *
	 * ## OPTIONS
	 *
	 * <url>
	 * : The URL to import options from.
	 *
	 * ## EXAMPLES
	 *
	 *     # Import options from https://domain.com/options.txt
	 *     $ wp litespeed-option import_remote https://domain.com/options.txt
	 *
	 * @param array $args Positional arguments (url).
	 */
	public function import_remote( $args ) {
		$file = $args[0];

		$tmp_file = download_url( $file );

		if ( is_wp_error( $tmp_file ) ) {
			WP_CLI::error( 'Failed to download file.' );
			return;
		}

		$res = $this->cls( 'Import' )->import( $tmp_file );

		if ( ! $res ) {
			WP_CLI::error( 'Failed to parse serialized data from file.' );
			return;
		}

		WP_CLI::success( 'Options imported. [File] ' . $file );
	}

	/**
	 * Reset all options to default.
	 *
	 * ## EXAMPLES
	 *
	 *     # Reset all options
	 *     $ wp litespeed-option reset
	 */
	public function reset() {
		$this->cls( 'Import' )->reset();
	}
}
<?php
/**
 * Debug API CLI for LiteSpeed integration.
 *
 * @package LiteSpeed\CLI
 */

namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit();

use LiteSpeed\Debug2;
use LiteSpeed\Report;
use WP_CLI;

/**
 * Debug API CLI
 */
class Debug {

	/**
	 * Report instance.
	 *
	 * @var Report
	 */
	private $report;

	/**
	 * Constructor for Debug CLI.
	 */
	public function __construct() {
		Debug2::debug( 'CLI_Debug init' );

		$this->report = Report::cls();
	}

	/**
	 * Send report
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Send env report to LiteSpeed
	 *     $ wp litespeed-debug send
	 */
	public function send() {
		$num = $this->report->post_env();
		WP_CLI::success( 'Report Number = ' . $num );
	}
}
<?php
/**
 * LiteSpeed CLI - database cleanup
 *
 * Add CLI database cleanup commands.
 *
 * @package LiteSpeed
 * @since 7.3
 */

namespace LiteSpeed\CLI;

defined('WPINC') || exit();

use LiteSpeed\Debug2;
use LiteSpeed\DB_Optm;
use WP_CLI;

/**
 * LiteSpeed Cache Database CLI
 */
class Database {
	/**
	 * Current blog id the optimization is working on.
	 *
	 * @var int|false $current_blog Current blog id.
	 */
	private $current_blog = false;
	/**
	 * Database class.
	 *
	 * @var DB_Optim $db Database class.
	 */
	private $db;

	/**
	 * Class constructor.
	 */
	public function __construct() {
		Debug2::debug('CLI_Database init');

		$this->db = DB_Optm::cls();
	}

	/**
	 * List all site domains and ids on the network.
	 */
	public function network_list() {
		if ( !is_multisite() ) {
			WP_CLI::error('This is not a multisite installation!');

			return;
		}
		$buf = WP_CLI::colorize("%CThe list of installs:%n\n");

		$sites = get_sites();
		foreach ( $sites as $site ) {
			$buf .= WP_CLI::colorize( '%Y' . $site->domain . $site->path . ':%n ID ' . $site->blog_id ) . "\n";
		}

		WP_CLI::line($buf);
	}

	/**
	 * Change to blog sent as param.
	 *
	 * @param array $args Description.
	 */
	private function change_to_blog( $args ) {
		if ( !isset( $args[0] ) || 'blog' !== $args[0] ) {
			return;
		}

		$this->current_blog = get_current_blog_id();
		$blogid             = $args[1];
		if ( !is_numeric( $blogid ) ) {
			$error = WP_CLI::colorize( '%RError: invalid blog id entered.%n' );
			WP_CLI::line( $error );
			$this->network_list( $args );
			return;
		}
		$site = get_blog_details( $blogid );
		if ( false === $site ) {
			$error = WP_CLI::colorize( '%RError: invalid blog id entered.%n' );
			WP_CLI::line( $error );
			$this->network_list( $args );
			return;
		}
		switch_to_blog( $blogid );
	}

	/**
	 * Change to previous blog.
	 */
	private function change_to_default() {
		// Check if previous blog set.
		if ( $this->current_blog ) {
			switch_to_blog( $this->current_blog );
			// Switched to previous blog.
			$this->current_blog = false;
		}
	}

	/**
	 * Show CLI response.
	 *
	 * @param boolean $result Flag if result is scuccess or failure.
	 * @param string  $action Action name.
	 */
	private function show_response( $result, $action ) {
		if ($result) {
			WP_CLI::success( $result );
		} else {
			WP_CLI::error( 'Error running optimization: ' . $action );
		}
	}

	/**
	 * Clean actions function.
	 *
	 * @param int   $args Action arguments.
	 * @param array $types What data to clean.
	 */
	private function clean_action( $args, $types ) {
		$this->change_to_blog( $args );
		foreach ( $types as $type ) {
			$result = $this->db->handler_clean_db_cli( $type );
			$this->show_response( $result, $type );
		}
		$this->change_to_default();
	}

	/**
	 * Clear posts data(revisions, orphaned, auto drafts, trashed posts).
	 *     # Start clearing posts data.
	 *     $ wp litespeed-database clear_posts
	 *     $ wp litespeed-database clear_posts blog 2
	 *
	 * @param string $args Action arguments.
	 */
	public function clear_posts( $args ) {
		$types = array(
			'revision',
			'orphaned_post_meta',
			'auto_draft',
			'trash_post',
		);
		$this->clean_action( $args, $types );
	}

	/**
	 * Clear comments(spam and trash comments).
	 *     # Start clearing comments.
	 *     $ wp litespeed-database clear_comments
	 *     $ wp litespeed-database clear_comments blog 2
	 *
	 * @param string $args Action arguments.
	 */
	public function clear_comments( $args ) {
		$types = array(
			'spam_comment',
			'trash_comment',
		);
		$this->clean_action( $args, $types );
	}

	/**
	 * Clear trackbacks/pingbacks.
	 *     # Start clearing trackbacks/pingbacks.
	 *     $ wp litespeed-database clear_trackbacks
	 *     $ wp litespeed-database clear_trackbacks blog 2
	 *
	 * @param string $args Action arguments.
	 */
	public function clear_trackbacks( $args ) {
		$types = array(
			'trackback-pingback',
		);
		$this->clean_action( $args, $types );
	}

	/**
	 * Clear transients.
	 *     # Start clearing transients.
	 *     $ wp litespeed-database clear_transients
	 *     $ wp litespeed-database clear_transients blog 2
	 *
	 * @param string $args Action arguments.
	 */
	public function clear_transients( $args ) {
		$types = array(
			'expired_transient',
			'all_transients',
		);
		$this->clean_action( $args, $types );
	}

	/**
	 * Optimize tables.
	 *     # Start optimizing tables.
	 *     $ wp litespeed-database optimize_tables
	 *     $ wp litespeed-database optimize_tables blog 2
	 *
	 * @param string $args Action arguments.
	 */
	public function optimize_tables( $args ) {
		$types = array(
			'optimize_tables',
		);
		$this->clean_action( $args, $types );
	}

	/**
	 * Optimize database by running all possible opreations.
	 *     # Start optimizing all.
	 *     $ wp litespeed-database optimize_all
	 *     $ wp litespeed-database optimize_all blog 2
	 *
	 * @param string $args Action arguments.
	 */
	public function optimize_all( $args ) {
		$types = array(
			'all',
		);
		$this->clean_action( $args, $types );
	}
}
<?php
/**
 * QUIC.cloud API CLI for LiteSpeed integration.
 *
 * @package LiteSpeed\CLI
 */

namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit();

use LiteSpeed\Debug2;
use LiteSpeed\Cloud;
use WP_CLI;

/**
 * QUIC.cloud API CLI
 */
class Online {

	/**
	 * Cloud instance.
	 *
	 * @var Cloud
	 */
	private $cloud;

	/**
	 * Constructor for Online CLI.
	 */
	public function __construct() {
		Debug2::debug( 'CLI_Cloud init' );

		$this->cloud = Cloud::cls();
	}

	/**
	 * Init domain on QUIC.cloud server (See https://quic.cloud/terms/)
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Activate domain on QUIC.cloud (! Require SERVER IP setting to be set first)
	 *     $ wp litespeed-online init
	 */
	public function init() {
		$resp = $this->cloud->init_qc_cli();
		if ( ! empty( $resp['qc_activated'] ) ) {
			$main_domain = ! empty( $resp['main_domain'] ) ? $resp['main_domain'] : false;
			$this->cloud->update_qc_activation( $resp['qc_activated'], $main_domain );
			WP_CLI::success( 'Init successfully. Activated type: ' . $resp['qc_activated'] );
		} else {
			WP_CLI::error( 'Init failed!' );
		}
	}

	/**
	 * Init domain CDN service on QUIC.cloud server (See https://quic.cloud/terms/)
	 *
	 * ## OPTIONS
	 *
	 * [--method=<method>]
	 * : The method to use (e.g., cname, ns, cfi).
	 *
	 * [--ssl-cert=<cert>]
	 * : Path to SSL certificate.
	 *
	 * [--ssl-key=<key>]
	 * : Path to SSL key.
	 *
	 * [--cf-token=<token>]
	 * : Cloudflare token for CFI method.
	 *
	 * [--format=<format>]
	 * : Output format (e.g., json).
	 *
	 * ## EXAMPLES
	 *
	 *     # Activate domain CDN on QUIC.cloud (support --format=json)
	 *     $ wp litespeed-online cdn_init --method=cname|ns
	 *     $ wp litespeed-online cdn_init --method=cname|ns --ssl-cert=xxx.pem --ssl-key=xxx
	 *     $ wp litespeed-online cdn_init --method=cfi --cf-token=xxxxxxxx
	 *     $ wp litespeed-online cdn_init --method=cfi --cf-token=xxxxxxxx  --ssl-cert=xxx.pem --ssl-key=xxx
	 *
	 * @param array $args Positional arguments.
	 * @param array $assoc_args Associative arguments.
	 */
	public function cdn_init( $args, $assoc_args ) {
		if ( empty( $assoc_args['method'] ) ) {
			WP_CLI::error( 'Init CDN failed! Missing parameters `--method`.' );
			return;
		}
		if ( ( ! empty( $assoc_args['ssl-cert'] ) && empty( $assoc_args['ssl-key'] ) ) || ( empty( $assoc_args['ssl-cert'] ) && ! empty( $assoc_args['ssl-key'] ) ) ) {
			WP_CLI::error( 'Init CDN failed! SSL cert must be present together w/ SSL key.' );
			return;
		}

		if ( 'cfi' === $assoc_args['method'] && empty( $assoc_args['cf-token'] ) ) {
			WP_CLI::error( 'Init CDN failed! CFI must set `--cf-token`.' );
			return;
		}

		$cert     = ! empty( $assoc_args['ssl-cert'] ) ? $assoc_args['ssl-cert'] : '';
		$key      = ! empty( $assoc_args['ssl-key'] ) ? $assoc_args['ssl-key'] : '';
		$cf_token = ! empty( $assoc_args['cf-token'] ) ? $assoc_args['cf-token'] : '';

		$resp = $this->cloud->init_qc_cdn_cli( $assoc_args['method'], $cert, $key, $cf_token );
		if ( ! empty( $resp['qc_activated'] ) ) {
			$main_domain = ! empty( $resp['main_domain'] ) ? $resp['main_domain'] : false;
			$this->cloud->update_qc_activation( $resp['qc_activated'], $main_domain, true );
		}
		if ( ! empty( $assoc_args['format'] ) && 'json' === $assoc_args['format'] ) {
			WP_CLI::log( wp_json_encode( $resp ) );
			return;
		}
		if ( ! empty( $resp['qc_activated'] ) ) {
			WP_CLI::success( 'Init QC CDN successfully. Activated type: ' . $resp['qc_activated'] );
		} else {
			WP_CLI::error( 'Init QC CDN failed!' );
		}

		if ( ! empty( $resp['cname'] ) ) {
			WP_CLI::success( 'cname: ' . $resp['cname'] );
		}
		if ( ! empty( $resp['msgs'] ) ) {
			WP_CLI::success( 'msgs: ' . wp_json_encode( $resp['msgs'] ) );
		}
	}

	/**
	 * Link user account by api key
	 *
	 * ## OPTIONS
	 *
	 * [--email=<email>]
	 * : User email for QUIC.cloud account.
	 *
	 * [--api-key=<key>]
	 * : API key for QUIC.cloud account.
	 *
	 * ## EXAMPLES
	 *
	 *     # Link user account by api key
	 *     $ wp litespeed-online link --email=xxx@example.com --api-key=xxxx
	 *
	 * @param array $args Positional arguments.
	 * @param array $assoc_args Associative arguments.
	 */
	public function link( $args, $assoc_args ) {
		if ( empty( $assoc_args['email'] ) || empty( $assoc_args['api-key'] ) ) {
			WP_CLI::error( 'Link to QUIC.cloud failed! Missing parameters `--email` or `--api-key`.' );
			return;
		}

		$resp = $this->cloud->link_qc_cli( $assoc_args['email'], $assoc_args['api-key'] );
		if ( ! empty( $resp['qc_activated'] ) ) {
			$main_domain = ! empty( $resp['main_domain'] ) ? $resp['main_domain'] : false;
			$this->cloud->update_qc_activation( $resp['qc_activated'], $main_domain, true );
			WP_CLI::success( 'Link successfully!' );
			WP_CLI::log( wp_json_encode( $resp ) );
		} else {
			WP_CLI::error( 'Link failed!' );
		}
	}

	/**
	 * Sync usage data from QUIC.cloud
	 *
	 * ## OPTIONS
	 *
	 * [--format=<format>]
	 * : Output format (e.g., json).
	 *
	 * ## EXAMPLES
	 *
	 *     # Sync QUIC.cloud service usage info
	 *     $ wp litespeed-online sync
	 *
	 * @param array $args Positional arguments.
	 * @param array $assoc_args Associative arguments.
	 */
	public function sync( $args, $assoc_args ) {
		$json = $this->cloud->sync_usage();

		if ( ! empty( $assoc_args['format'] ) ) {
			WP_CLI::print_value( $json, $assoc_args );
			return;
		}

		WP_CLI::success( 'Sync successfully' );

		$list = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$list[] = array(
				'key' => $v,
				'used' => ! empty( $json['usage.' . $v]['used'] ) ? $json['usage.' . $v]['used'] : 0,
				'quota' => ! empty( $json['usage.' . $v]['quota'] ) ? $json['usage.' . $v]['quota'] : 0,
				'PayAsYouGo_Used' => ! empty( $json['usage.' . $v]['pag_used'] ) ? $json['usage.' . $v]['pag_used'] : 0,
				'PayAsYouGo_Balance' => ! empty( $json['usage.' . $v]['pag_bal'] ) ? $json['usage.' . $v]['pag_bal'] : 0,
			);
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'key', 'used', 'quota', 'PayAsYouGo_Used', 'PayAsYouGo_Balance' ) );
	}

	/**
	 * Check QC account status
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Check QC account status
	 *     $ wp litespeed-online cdn_status
	 */
	public function cdn_status() {
		$resp = $this->cloud->cdn_status_cli();
		WP_CLI::log( wp_json_encode( $resp ) );
	}

	/**
	 * List all QUIC.cloud services
	 *
	 * ## OPTIONS
	 *
	 * [--format=<format>]
	 * : Output format (e.g., json).
	 *
	 * ## EXAMPLES
	 *
	 *     # List all services tag
	 *     $ wp litespeed-online services
	 *
	 * @param array $args Positional arguments.
	 * @param array $assoc_args Associative arguments.
	 */
	public function services( $args, $assoc_args ) {
		if ( ! empty( $assoc_args['format'] ) ) {
			WP_CLI::print_value( Cloud::$SERVICES, $assoc_args );
			return;
		}

		$list = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$list[] = array(
				'service' => $v,
			);
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'service' ) );
	}

	/**
	 * List all QUIC.cloud servers in use
	 *
	 * ## OPTIONS
	 *
	 * [--format=<format>]
	 * : Output format (e.g., json).
	 *
	 * ## EXAMPLES
	 *
	 *     # List all QUIC.cloud servers in use
	 *     $ wp litespeed-online nodes
	 *
	 * @param array $args Positional arguments.
	 * @param array $assoc_args Associative arguments.
	 */
	public function nodes( $args, $assoc_args ) {
		$json = Cloud::get_summary();

		$list        = array();
		$json_output = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$server        = ! empty( $json['server.' . $v] ) ? $json['server.' . $v] : '';
			$list[]        = array(
				'service' => $v,
				'server' => $server,
			);
			$json_output[] = array( $v => $server );
		}

		if ( ! empty( $assoc_args['format'] ) ) {
			WP_CLI::print_value( $json_output, $assoc_args );
			return;
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'service', 'server' ) );
	}

	/**
	 * Detect closest node server for current service
	 *
	 * ## OPTIONS
	 *
	 * [<service>]
	 * : Service to ping (e.g., img_optm).
	 *
	 * [--force]
	 * : Force detection of the closest server.
	 *
	 * ## EXAMPLES
	 *
	 *     # Detect closest node for one service
	 *     $ wp litespeed-online ping img_optm
	 *     $ wp litespeed-online ping img_optm --force
	 *
	 * @param array $param Positional arguments (service).
	 * @param array $assoc_args Associative arguments.
	 */
	public function ping( $param, $assoc_args ) {
		$svc   = $param[0];
		$force = ! empty( $assoc_args['force'] );

		$json = $this->cloud->detect_cloud( $svc, $force );
		if ( $json ) {
			WP_CLI::success( 'Updated closest server.' );
		}
		WP_CLI::log( 'svc = ' . $svc );
		WP_CLI::log( 'node = ' . ( $json ? $json : '-' ) );
	}
}
<?php
/**
 * Image Optimization API CLI for LiteSpeed integration.
 *
 * @package LiteSpeed\CLI
 */

namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit();

use LiteSpeed\Lang;
use LiteSpeed\Debug2;
use LiteSpeed\Img_Optm;
use LiteSpeed\Utility;
use WP_CLI;

/**
 * Image Optimization API CLI
 */
class Image {

	/**
	 * Image optimization instance.
	 *
	 * @var Img_Optm
	 */
	private $img_optm;

	/**
	 * Constructor for Image CLI.
	 */
	public function __construct() {
		Debug2::debug( 'CLI_Cloud init' );

		$this->img_optm = Img_Optm::cls();
	}

	/**
	 * Batch toggle optimized images with original images.
	 *
	 * ## OPTIONS
	 *
	 * [<type>]
	 * : Type to switch to (orig or optm).
	 *
	 * ## EXAMPLES
	 *
	 *     # Switch to original images
	 *     $ wp litespeed-image batch_switch orig
	 *
	 *     # Switch to optimized images
	 *     $ wp litespeed-image batch_switch optm
	 *
	 * @param array $param Positional arguments (type).
	 */
	public function batch_switch( $param ) {
		$type = $param[0];
		$this->img_optm->batch_switch( $type );
	}

	/**
	 * Send image optimization request to QUIC.cloud server.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Send image optimization request
	 *     $ wp litespeed-image push
	 */
	public function push() {
		$this->img_optm->new_req();
	}

	/**
	 * Pull optimized images from QUIC.cloud server.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Pull images back from cloud
	 *     $ wp litespeed-image pull
	 */
	public function pull() {
		$this->img_optm->pull( true );
	}

	/**
	 * Show optimization status based on local data (alias for status).
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Show optimization status
	 *     $ wp litespeed-image s
	 */
	public function s() {
		$this->status();
	}

	/**
	 * Show optimization status based on local data.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Show optimization status
	 *     $ wp litespeed-image status
	 */
	public function status() {
		$summary   = Img_Optm::get_summary();
		$img_count = $this->img_optm->img_count();
		foreach ( Lang::img_status() as $k => $v ) {
			if ( isset( $img_count["img.$k"] ) ) {
				$img_count["$v - images"] = $img_count["img.$k"];
				unset( $img_count["img.$k"] );
			}
			if ( isset( $img_count["group.$k"] ) ) {
				$img_count["$v - groups"] = $img_count["group.$k"];
				unset( $img_count["group.$k"] );
			}
		}

		foreach ( array( 'reduced', 'reduced_webp', 'reduced_avif' ) as $v ) {
			if ( ! empty( $summary[$v] ) ) {
				$summary[$v] = Utility::real_size( $summary[$v] );
			}
		}

		if ( ! empty( $summary['last_requested'] ) ) {
			$summary['last_requested'] = gmdate( 'm/d/y H:i:s', $summary['last_requested'] );
		}

		$list = array();
		foreach ( $summary as $k => $v ) {
			$list[] = array(
				'key'   => $k,
				'value' => $v,
			);
		}

		$list2 = array();
		foreach ( $img_count as $k => $v ) {
			if ( ! $v ) {
				continue;
			}
			$list2[] = array(
				'key'   => $k,
				'value' => $v,
			);
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'key', 'value' ) );

		WP_CLI::line( WP_CLI::colorize( '%CImages in database summary:%n' ) );
		WP_CLI\Utils\format_items( 'table', $list2, array( 'key', 'value' ) );
	}

	/**
	 * Clean up unfinished image data from QUIC.cloud server.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Clean up unfinished requests
	 *     $ wp litespeed-image clean
	 */
	public function clean() {
		$this->img_optm->clean();

		WP_CLI::line( WP_CLI::colorize( '%CLatest status:%n' ) );

		$this->status();
	}

	/**
	 * Remove original image backups.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Remove original image backups
	 *     $ wp litespeed-image rm_bkup
	 */
	public function rm_bkup() {
		$this->img_optm->rm_bkup();
	}
}
<?php
/**
 * LiteSpeed Cache CLI Crawler Commands
 *
 * Provides WP-CLI commands for managing LiteSpeed Cache crawlers.
 *
 * @package LiteSpeed
 * @since 1.1.0
 */

namespace LiteSpeed\CLI;

defined('WPINC') || exit();

use LiteSpeed\Debug2;
use LiteSpeed\Base;
use LiteSpeed\Task;
use LiteSpeed\Crawler as Crawler2;
use WP_CLI;

/**
 * Crawler
 */
class Crawler extends Base {
	/**
	 * Crawler instance
	 *
	 * @var Crawler2 $crawler
	 */
	private $crawler;

	/**
	 * Constructor for Crawler CLI commands
	 *
	 * @since 1.1.0
	 */
	public function __construct() {
		Debug2::debug('CLI_Crawler init');

		$this->crawler = Crawler2::cls();
	}

	/**
	 * List all crawlers
	 *
	 * Displays a table of all crawlers with their details.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # List all crawlers
	 *     $ wp litespeed-crawler l
	 *
	 * @since 1.1.0
	 */
	public function l() {
		$this->list();
	}

	/**
	 * List all crawlers
	 *
	 * Displays a table of all crawlers with their details.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # List all crawlers
	 *     $ wp litespeed-crawler list
	 *
	 * @since 1.1.0
	 */
	public function list() {
		$crawler_list = $this->crawler->list_crawlers();
		$summary      = Crawler2::get_summary();
		if ($summary['curr_crawler'] >= count($crawler_list)) {
			$summary['curr_crawler'] = 0;
		}
		$is_running = time() - $summary['is_running'] <= 900;

		$CRAWLER_RUN_INTERVAL = defined('LITESPEED_CRAWLER_RUN_INTERVAL') ? LITESPEED_CRAWLER_RUN_INTERVAL : 600; // Specify time in seconds for the time between each run interval
		if ($CRAWLER_RUN_INTERVAL > 0) {
			$recurrence = '';
			$hours      = (int) floor($CRAWLER_RUN_INTERVAL / 3600);
			if ($hours) {
				if ($hours > 1) {
					$recurrence .= sprintf(__('%d hours', 'litespeed-cache'), $hours);
				} else {
					$recurrence .= sprintf(__('%d hour', 'litespeed-cache'), $hours);
				}
			}
			$minutes = (int) floor(($CRAWLER_RUN_INTERVAL % 3600) / 60);
			if ($minutes) {
				$recurrence .= ' ';
				if ($minutes > 1) {
					$recurrence .= sprintf(__('%d minutes', 'litespeed-cache'), $minutes);
				} else {
					$recurrence .= sprintf(__('%d minute', 'litespeed-cache'), $minutes);
				}
			}
		}

		$list = array();
		foreach ($crawler_list as $i => $v) {
			$hit  = !empty($summary['crawler_stats'][$i][Crawler2::STATUS_HIT]) ? $summary['crawler_stats'][$i][Crawler2::STATUS_HIT] : 0;
			$miss = !empty($summary['crawler_stats'][$i][Crawler2::STATUS_MISS]) ? $summary['crawler_stats'][$i][Crawler2::STATUS_MISS] : 0;

			$blacklisted  = !empty($summary['crawler_stats'][$i][Crawler2::STATUS_BLACKLIST]) ? $summary['crawler_stats'][$i][Crawler2::STATUS_BLACKLIST] : 0;
			$blacklisted += !empty($summary['crawler_stats'][$i][Crawler2::STATUS_NOCACHE]) ? $summary['crawler_stats'][$i][Crawler2::STATUS_NOCACHE] : 0;

			if (isset($summary['crawler_stats'][$i][Crawler2::STATUS_WAIT])) {
				$waiting = $summary['crawler_stats'][$i][Crawler2::STATUS_WAIT] ?? 0;
			} else {
				$waiting = $summary['list_size'] - $hit - $miss - $blacklisted;
			}

			$analytics  = 'Waiting: ' . $waiting;
			$analytics .= '     Hit: ' . $hit;
			$analytics .= '     Miss: ' . $miss;
			$analytics .= '     Blocked: ' . $blacklisted;

			$running = '';
			if ($i === $summary['curr_crawler']) {
				$running = 'Pos: ' . ($summary['last_pos'] + 1);
				if ($is_running) {
					$running .= '(Running)';
				}
			}

			$status = $this->crawler->is_active($i) ? '✅' : '❌';

			$list[] = array(
				'ID' => $i + 1,
				'Name' => wp_strip_all_tags($v['title']),
				'Frequency' => $recurrence,
				'Status' => $status,
				'Analytics' => $analytics,
				'Running' => $running,
			);
		}

		WP_CLI\Utils\format_items('table', $list, array( 'ID', 'Name', 'Frequency', 'Status', 'Analytics', 'Running' ));
	}

	/**
	 * Enable one crawler
	 *
	 * ## OPTIONS
	 *
	 * <id>
	 * : The ID of the crawler to enable.
	 *
	 * ## EXAMPLES
	 *
	 *     # Turn on 2nd crawler
	 *     $ wp litespeed-crawler enable 2
	 *
	 * @since 1.1.0
	 * @param array $args Command arguments.
	 */
	public function enable( $args ) {
		$id = $args[0] - 1;
		if ($this->crawler->is_active($id)) {
			WP_CLI::error('ID #' . $id . ' had been enabled');
			return;
		}

		$this->crawler->toggle_activeness($id);
		WP_CLI::success('Enabled crawler #' . $id);
	}

	/**
	 * Disable one crawler
	 *
	 * ## OPTIONS
	 *
	 * <id>
	 * : The ID of the crawler to disable.
	 *
	 * ## EXAMPLES
	 *
	 *     # Turn off 1st crawler
	 *     $ wp litespeed-crawler disable 1
	 *
	 * @since 1.1.0
	 * @param array $args Command arguments.
	 */
	public function disable( $args ) {
		$id = $args[0] - 1;
		if (!$this->crawler->is_active($id)) {
			WP_CLI::error('ID #' . $id . ' has been disabled');
			return;
		}

		$this->crawler->toggle_activeness($id);
		WP_CLI::success('Disabled crawler #' . $id);
	}

	/**
	 * Run crawling
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Start crawling
	 *     $ wp litespeed-crawler r
	 *
	 * @since 1.1.0
	 */
	public function r() {
		$this->run();
	}

	/**
	 * Run crawling
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Start crawling
	 *     $ wp litespeed-crawler run
	 *
	 * @since 1.1.0
	 */
	public function run() {
		self::debug('⚠️⚠️⚠️ Forced take over lane (CLI)');
		$this->crawler->Release_lane();

		Task::async_call('crawler');

		$summary = Crawler2::get_summary();

		WP_CLI::success('Start crawling. Current crawler #' . ($summary['curr_crawler'] + 1) . ' [position] ' . $summary['last_pos'] . ' [total] ' . $summary['list_size']);
	}

	/**
	 * Reset crawler position
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Reset crawler position
	 *     $ wp litespeed-crawler reset
	 *
	 * @since 1.1.0
	 */
	public function reset() {
		$this->crawler->reset_pos();

		$summary = Crawler2::get_summary();

		WP_CLI::success('Reset position. Current crawler #' . ($summary['curr_crawler'] + 1) . ' [position] ' . $summary['last_pos'] . ' [total] ' . $summary['list_size']);
	}
}
<?php
/**
 * LiteSpeed Cache Purge Interface CLI.
 *
 * @package LiteSpeed\CLI
 */

namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit();

use LiteSpeed\Core;
use LiteSpeed\Router;
use LiteSpeed\Admin_Display;
use WP_CLI;

/**
 * LiteSpeed Cache Purge Interface
 */
class Purge {

	/**
	 * List all site domains and ids on the network.
	 *
	 * For use with the blog subcommand.
	 *
	 * ## EXAMPLES
	 *
	 *     # List all the site domains and ids in a table.
	 *     $ wp litespeed-purge network_list
	 */
	public function network_list() {
		if ( ! is_multisite() ) {
			WP_CLI::error( 'This is not a multisite installation!' );
			return;
		}

		$buf = WP_CLI::colorize( '%CThe list of installs:%n' ) . PHP_EOL;

		$sites = get_sites();
		foreach ( $sites as $site ) {
			$buf .= WP_CLI::colorize( '%Y' . $site->domain . $site->path . ':%n ID ' . $site->blog_id ) . PHP_EOL;
		}

		WP_CLI::line( $buf );
	}

	/**
	 * Sends an AJAX request to the site.
	 *
	 * @param string $action The action to perform.
	 * @param array  $extra  Additional data to include in the request.
	 * @return object The HTTP response.
	 * @since 1.0.14
	 */
	private function send_request( $action, $extra = array() ) {
		$data = array(
			Router::ACTION => $action,
			Router::NONCE => wp_create_nonce( $action ),
		);
		if ( ! empty( $extra ) ) {
			$data = array_merge( $data, $extra );
		}

		$url = admin_url( 'admin-ajax.php' );
		WP_CLI::debug( 'URL is ' . $url );

		$out = WP_CLI\Utils\http_request( 'GET', $url, $data );
		return $out;
	}

	/**
	 * Purges all cache entries for the blog (the entire network if multisite).
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge Everything associated with the WordPress install.
	 *     $ wp litespeed-purge all
	 */
	public function all() {
		$action = is_multisite() ? Core::ACTION_QS_PURGE_EMPTYCACHE : Core::ACTION_QS_PURGE_ALL;

		$purge_ret = $this->send_request( $action );

		if ( $purge_ret->success ) {
			WP_CLI::success( __( 'Purged All!', 'litespeed-cache' ) );
		} else {
			WP_CLI::error( 'Something went wrong! Got ' . $purge_ret->status_code );
		}
	}

	/**
	 * Purges all cache entries for the blog.
	 *
	 * ## OPTIONS
	 *
	 * <blogid>
	 * : The blog id to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # In a multisite install, purge only the shop.example.com cache (stored as blog id 2).
	 *     $ wp litespeed-purge blog 2
	 *
	 * @param array $args Positional arguments (blogid).
	 */
	public function blog( $args ) {
		if ( ! is_multisite() ) {
			WP_CLI::error( 'Not a multisite installation.' );
			return;
		}

		$blogid = $args[0];
		if ( ! is_numeric( $blogid ) ) {
			$error = WP_CLI::colorize( '%RError: invalid blog id entered.%n' );
			WP_CLI::line( $error );
			$this->network_list( $args );
			return;
		}

		$site = get_blog_details( $blogid );
		if ( false === $site ) {
			$error = WP_CLI::colorize( '%RError: invalid blog id entered.%n' );
			WP_CLI::line( $error );
			$this->network_list( $args );
			return;
		}

		switch_to_blog( $blogid );

		$purge_ret = $this->send_request( Core::ACTION_QS_PURGE_ALL );
		if ( $purge_ret->success ) {
			WP_CLI::success( __( 'Purged the blog!', 'litespeed-cache' ) );
		} else {
			WP_CLI::error( 'Something went wrong! Got ' . $purge_ret->status_code );
		}
	}

	/**
	 * Purges all cache tags related to a URL.
	 *
	 * ## OPTIONS
	 *
	 * <url>
	 * : The URL to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the front page.
	 *     $ wp litespeed-purge url https://mysite.com/
	 *
	 * @param array $args Positional arguments (URL).
	 */
	public function url( $args ) {
		$data          = array(
			Router::ACTION => Core::ACTION_QS_PURGE,
		);
		$url           = $args[0];
		$deconstructed = wp_parse_url( $url );
		if ( empty( $deconstructed ) ) {
			WP_CLI::error( 'URL passed in is invalid.' );
			return;
		}

		if ( is_multisite() ) {
			if ( 0 === get_blog_id_from_url( $deconstructed['host'], '/' ) ) {
				WP_CLI::error( 'Multisite URL passed in is invalid.' );
				return;
			}
		} else {
			$deconstructed_site = wp_parse_url( get_home_url() );
			if ( $deconstructed['host'] !== $deconstructed_site['host'] ) {
				WP_CLI::error( 'Single site URL passed in is invalid.' );
				return;
			}
		}

		WP_CLI::debug( 'URL is ' . $url );

		$purge_ret = WP_CLI\Utils\http_request( 'GET', $url, $data );
		if ( $purge_ret->success ) {
			WP_CLI::success( __( 'Purged the URL!', 'litespeed-cache' ) );
		} else {
			WP_CLI::error( 'Something went wrong! Got ' . $purge_ret->status_code );
		}
	}

	/**
	 * Helper function for purging by IDs.
	 *
	 * @param array    $args     The ID list to parse.
	 * @param string   $select   The purge by kind.
	 * @param callable $callback The callback function to check the ID.
	 */
	private function purgeby( $args, $select, $callback ) {
		$filtered = array();
		foreach ( $args as $val ) {
			if ( ! ctype_digit( $val ) ) {
				WP_CLI::debug( '[LSCACHE] Skip val, not a number. ' . $val );
				continue;
			}
			$term = $callback( $val );
			if ( ! empty( $term ) ) {
				WP_CLI::line( $term->name );
				$filtered[] = in_array( $callback, array( 'get_tag', 'get_category' ), true ) ? $term->name : $val;
			} else {
				WP_CLI::debug( '[LSCACHE] Skip val, not a valid term. ' . $val );
			}
		}

		if ( empty( $filtered ) ) {
			WP_CLI::error( 'Arguments must be integer IDs.' );
			return;
		}

		$str = implode( ',', $filtered );

		$purge_titles = array(
			Admin_Display::PURGEBY_CAT => 'Category',
			Admin_Display::PURGEBY_PID => 'Post ID',
			Admin_Display::PURGEBY_TAG => 'Tag',
			Admin_Display::PURGEBY_URL => 'URL',
		);

		WP_CLI::line( 'Will purge the following: [' . $purge_titles[ $select ] . '] ' . $str );

		$data = array(
			Admin_Display::PURGEBYOPT_SELECT => $select,
			Admin_Display::PURGEBYOPT_LIST   => $str,
		);

		$purge_ret = $this->send_request( Core::ACTION_PURGE_BY, $data );
		if ( $purge_ret->success ) {
			WP_CLI::success( __( 'Purged!', 'litespeed-cache' ) );
		} else {
			WP_CLI::error( 'Something went wrong! Got ' . $purge_ret->status_code );
		}
	}

	/**
	 * Purges cache tags for a WordPress tag.
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : The Term IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the tag IDs 1, 3, and 5
	 *     $ wp litespeed-purge tag 1 3 5
	 *
	 * @param array $args Positional arguments (IDs).
	 */
	public function tag( $args ) {
		$this->purgeby( $args, Admin_Display::PURGEBY_TAG, 'get_tag' );
	}

	/**
	 * Purges cache tags for a WordPress category.
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : The Term IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the category IDs 1, 3, and 5
	 *     $ wp litespeed-purge category 1 3 5
	 *
	 * @param array $args Positional arguments (IDs).
	 */
	public function category( $args ) {
		$this->purgeby( $args, Admin_Display::PURGEBY_CAT, 'get_category' );
	}

	/**
	 * Purges cache tags for a WordPress Post/Product.
	 *
	 * @alias product
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : The Post IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the post IDs 1, 3, and 5
	 *     $ wp litespeed-purge post_id 1 3 5
	 *
	 * @param array $args Positional arguments (IDs).
	 */
	public function post_id( $args ) {
		$this->purgeby( $args, Admin_Display::PURGEBY_PID, 'get_post' );
	}
}
<?php
/**
 * Lightweight script to update guest mode vary
 *
 * @since 4.1
 */

require 'lib/guest.cls.php';

$guest = new \LiteSpeed\Lib\Guest();

$guest->update_guest_vary();
# Predefined list for excluding URI from page optimization #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/optm_uri_exc.txt We will merge into next plugin release

# URI excludes
.well-known{
	"auto_upgrade": "",
	"server_ip": "",
	"guest": "",
	"guest_optm": "",
	"news": "1",
	"guest_uas": "Lighthouse\nGTmetrix\nGoogle\nPingdom\nbot\nspider\nPTST\nHeadlessChrome",
	"guest_ips": "208.70.247.157\n172.255.48.130\n172.255.48.131\n172.255.48.132\n172.255.48.133\n172.255.48.134\n172.255.48.135\n172.255.48.136\n172.255.48.137\n172.255.48.138\n172.255.48.139\n172.255.48.140\n172.255.48.141\n172.255.48.142\n172.255.48.143\n172.255.48.144\n172.255.48.145\n172.255.48.146\n172.255.48.147\n52.229.122.240\n104.214.72.101\n13.66.7.11\n13.85.24.83\n13.85.24.90\n13.85.82.26\n40.74.242.253\n40.74.243.13\n40.74.243.176\n104.214.48.247\n157.55.189.189\n104.214.110.135\n70.37.83.240\n65.52.36.250\n13.78.216.56\n52.162.212.163\n23.96.34.105\n65.52.113.236\n172.255.61.34\n172.255.61.35\n172.255.61.36\n172.255.61.37\n172.255.61.38\n172.255.61.39\n172.255.61.40\n104.41.2.19\n191.235.98.164\n191.235.99.221\n191.232.194.51\n52.237.235.185\n52.237.250.73\n52.237.236.145\n104.211.143.8\n104.211.165.53\n52.172.14.87\n40.83.89.214\n52.175.57.81\n20.188.63.151\n20.52.36.49\n52.246.165.153\n51.144.102.233\n13.76.97.224\n102.133.169.66\n52.231.199.170\n13.53.162.7\n40.123.218.94",
	"cache-priv": "1",
	"cache-commenter": "1",
	"cache-rest": "1",
	"cache-page_login": "1",
	"cache-resources": "1",
	"cache-browser": "",
	"cache-mobile": "",
	"cache-mobile_rules": "Mobile\nAndroid\nSilk/\nKindle\nBlackBerry\nOpera Mini\nOpera Mobi",
	"cache-exc_useragents": "",
	"cache-exc_cookies": "",
	"cache-exc_qs": "",
	"cache-exc_cat": "",
	"cache-exc_tag": "",
	"cache-force_uri": "",
	"cache-force_pub_uri": "",
	"cache-priv_uri": "",
	"cache-exc": "",
	"cache-exc_roles": "",
	"cache-drop_qs": "fbclid\ngclid\nutm*\n_ga",
	"cache-ttl_pub": "604800",
	"cache-ttl_priv": "1800",
	"cache-ttl_frontpage": "604800",
	"cache-ttl_feed": "604800",
	"cache-ttl_rest": "604800",
	"cache-ttl_browser": "31557600",
	"cache-login_cookie": "",
	"cache-vary_group": "",
	"cache-ttl_status": "404 3600\n500 600",
	"purge-upgrade": "0",
	"purge-stale": "",
	"purge-post_all": "",
	"purge-post_f": "1",
	"purge-post_h": "1",
	"purge-post_p": "1",
	"purge-post_pwrp": "1",
	"purge-post_a": "1",
	"purge-post_y": "",
	"purge-post_m": "1",
	"purge-post_d": "",
	"purge-post_t": "1",
	"purge-post_pt": "1",
	"purge-timed_urls": "",
	"purge-timed_urls_time": "",
	"purge-hook_all": "switch_theme\nwp_create_nav_menu\nwp_update_nav_menu\nwp_delete_nav_menu\ncreate_term\nedit_terms\ndelete_term\nadd_link\nedit_link\ndelete_link",
	"esi": "",
	"esi-cache_admbar": "1",
	"esi-cache_commform": "1",
	"esi-nonce": "stats_nonce\nsubscribe_nonce",
	"util-heartbeat": "1",
	"util-instant_click": "",
	"util-no_https_vary": "",
	"debug-disable_all": "",
	"debug": "",
	"debug-ips": "127.0.0.1",
	"debug-level": "",
	"debug-filesize": "3",
	"debug-collapse_qs": "",
	"debug-inc": "",
	"debug-exc": "",
	"debug-exc_strings": "",
	"db_optm-revisions_max": "0",
	"db_optm-revisions_age": "0",
	"optm-css_min": "",
	"optm-css_comb": "",
	"optm-css_comb_ext_inl": "1",
	"optm-ucss": "",
	"optm-ucss_inline": "",
	"optm-ucss_file_exc_inline": "",
	"optm-ucss_whitelist": "",
	"optm-ucss_exc": "",
	"optm-css_exc": "",
	"optm-js_min": "",
	"optm-js_comb": "",
	"optm-js_comb_ext_inl": "1",
	"optm-js_exc": "jquery.js\njquery.min.js",
	"optm-html_min": "",
	"optm-html_lazy": "",
	"optm-qs_rm": "",
	"optm-ggfonts_rm": "",
	"optm-css_async": "",
	"optm-ccss_per_url": "",
	"optm-ccss_whitelist": "",
	"optm-css_async_inline": "1",
	"optm-css_font_display": "",
	"optm-js_defer": "",
	"optm-emoji_rm": "",
	"optm-noscript_rm": "",
	"optm-ggfonts_async": "",
	"optm-exc_roles": "",
	"optm-ccss_con": "",
	"optm-ccss_sep_posttype": "page",
	"optm-ccss_sep_uri": "",
	"optm-js_defer_exc": "jquery.js\njquery.min.js\ngtm.js\nanalytics.js",
	"optm-gm_js_exc": "",
	"optm-dns_prefetch": "",
	"optm-dns_prefetch_ctrl": "",
	"optm-dns_preconnect": "",
	"optm-exc": "",
	"optm-guest_only": "1",
	"object": "",
	"object-kind": "",
	"object-host": "localhost",
	"object-port": "11211",
	"object-life": "360",
	"object-persistent": "1",
	"object-admin": "1",
	"object-transients": "1",
	"object-db_id": "0",
	"object-user": "",
	"object-pswd": "",
	"object-global_groups": "users\nuserlogins\nuseremail\nuserslugs\nusermeta\nuser_meta\nsite-transient\nsite-options\nsite-lookup\nsite-details\nblog-lookup\nblog-details\nblog-id-cache\nrss\nglobal-posts\nglobal-cache-test",
	"object-non_persistent_groups": "comment\ncounts\nplugins\nwc_session_id",
	"discuss-avatar_cache": "",
	"discuss-avatar_cron": "",
	"discuss-avatar_cache_ttl": "604800",
	"optm-localize": "",
	"optm-localize_domains": "### Popular scripts ###\nhttps://platform.twitter.com/widgets.js\nhttps://connect.facebook.net/en_US/fbevents.js",
	"media-lazy": "",
	"media-lazy_placeholder": "",
	"media-placeholder_resp": "",
	"media-placeholder_resp_color": "#cfd4db",
	"media-placeholder_resp_svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"{width}\" height=\"{height}\" viewBox=\"0 0 {width} {height}\"><rect width=\"100%\" height=\"100%\" style=\"fill:{color};fill-opacity: 0.1;\"/></svg>",
	"media-lqip": "",
	"media-lqip_qual": "4",
	"media-lqip_min_w": "150",
	"media-lqip_min_h": "150",
	"media-placeholder_resp_async": "1",
	"media-iframe_lazy": "",
	"media-add_missing_sizes": "",
	"media-lazy_exc": "",
	"media-lazy_cls_exc": "wmu-preview-img",
	"media-lazy_parent_cls_exc": "",
	"media-iframe_lazy_cls_exc": "",
	"media-iframe_lazy_parent_cls_exc": "",
	"media-lazy_uri_exc": "",
	"media-lqip_exc": "",
	"media-vpi": "",
	"media-vpi_cron": "",
	"img_optm-auto": "",
	"img_optm-ori": "1",
	"img_optm-rm_bkup": "",
	"img_optm-webp": "",
	"img_optm-lossless": "",
	"img_optm-exif": "1",
	"img_optm-webp_attr": "img.src\ndiv.data-thumb\nimg.data-src\nimg.data-lazyload\ndiv.data-large_image\nimg.retina_logo_url\ndiv.data-parallax-image\ndiv.data-vc-parallax-image\nvideo.poster",
	"img_optm-webp_replace_srcset": "",
	"img_optm-jpg_quality": "82",
	"crawler": "",
	"crawler-crawl_interval": "302400",
	"crawler-load_limit": "1",
	"crawler-sitemap": "",
	"crawler-roles": "",
	"crawler-cookies": "",
	"misc-heartbeat_front": "",
	"misc-heartbeat_front_ttl": "60",
	"misc-heartbeat_back": "",
	"misc-heartbeat_back_ttl": "60",
	"misc-heartbeat_editor": "",
	"misc-heartbeat_editor_ttl": "15",
	"cdn": "",
	"cdn-attr": ".src\n.data-src\n.href\n.poster\nsource.srcset",
	"cdn-ori": "",
	"cdn-ori_dir": "",
	"cdn-exc": "",
	"cdn-quic": "",
	"cdn-quic_email": "",
	"cdn-quic_key": "",
	"cdn-cloudflare": "",
	"cdn-cloudflare_email": "",
	"cdn-cloudflare_key": "",
	"cdn-cloudflare_name": "",
	"cdn-cloudflare_zone": "",
	"cdn-cloudflare_clear": "",
	"cdn-mapping": {
		"url": [""],
		"inc_js": ["1"],
		"inc_css": ["1"],
		"inc_img": ["1"],
		"filetype": [".aac\n.css\n.eot\n.gif\n.jpeg\n.jpg\n.js\n.less\n.mp3\n.mp4\n.ogg\n.otf\n.pdf\n.png\n.svg\n.ttf\n.webp\n.woff\n.woff2"]
	}
}
Order Deny,Allow
Deny from All

<IfModule LiteSpeed>
RewriteEngine on
RewriteRule .* - [F,L]
</IfModule>
# !!!!! Legacy file for v3.5.1- !!!!!

## Predefined elsewhere so not needed here:

## WordPress core
#stats_nonce
#subscribe_nonce

# Divi Theme Builder
#et-pb-contact-form-submit
#et_frontend_nonce
#et_ab_log_nonce

# WooCommerce PayPal Checkout
#_wc_ppec_update_shipping_costs_nonce private
#_wc_ppec_start_checkout_nonce private
#_wc_ppec_generate_cart_nonce private

# User Switching
#switch_to_olduser_'<ID>'

# Caldera Forms
#caldera_forms_front_*

## Predefined list of ESI nonces:

# CM Registration Pro
cmreg_registration_nonce private
role_nonce private

# WooCommerce Delivery Area Pro #16843635
wdap-call-nonce private

# SEOpress Cookie Consent
seopress_cookies_user_consent_nonce

#SearchWP Metrics
swpmtxnonce

#wpDataTables #986128
wdt*
# Predefined list for excluding CSS files or inline CSS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/css_excludes.txt We will merge into next plugin release

# CSS file URL excludes



# Inline CSS excludes

########## Flatsome theme random string excludes ############
#row-
#col-
#cats-
#stack-
#timer-
#gap-
#portfolio-
#image_
#banner-
#map-
#text-
#page-header-
#section_

.tdi_ # Theme: Newspaper by tagDiv.com 2020

######### WoodMart - Responsive WooCommerce WordPress Theme ########
.tabs-wd-
#wd-# Predefined list for excluding deferred JS files or inline JS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_defer_excludes.txt We will merge into next plugin release

# JS file URL excludes
adsbygoogle

## JetPack Stats
stats.wp.com/e-
_stq

# Cloudflare turnstile - Tobolo
turnstile
challenges.cloudflare.com["_version","5.3"]

["guest",true]

["guest_optm",true]

["cache",true]

["cache-priv",true]

["cache-commenter",true]

["cache-rest",true]

["cache-page_login",true]

["cache-resources",true]

["cache-mobile",true]

["cache-browser",true]

["esi",false]

["esi-cache_admbar",true]

["esi-cache_commform",true]

["util-instant_click",false]

["util-no_https_vary",false]

["optm-css_min",true]

["optm-css_comb",true]

["optm-css_comb_ext_inl",false]

["optm-ucss",true]

["optm-ucss_inline",false]

["optm-js_min",true]

["optm-js_comb",true]

["optm-js_comb_ext_inl",false]

["optm-html_min",true]

["optm-qs_rm",true]

["optm-ggfonts_rm",false]

["optm-css_async",true]

["optm-ccss_per_url",true]

["optm-css_async_inline",true]

["optm-css_font_display",true]

["optm-js_defer",1]

["optm-emoji_rm",true]

["optm-noscript_rm",true]

["optm-ggfonts_async",false]

["optm-dns_prefetch_ctrl",true]

["optm-guest_only",true]

["discuss-avatar_cache",true]

["discuss-avatar_cron",true]

["optm-localize",false]

["media-lazy",false]

["media-lazy_placeholder",""]

["media-placeholder_resp",false]

["media-lqip",false]

["media-placeholder_resp_async",true]

["media-iframe_lazy",true]

["media-add_missing_sizes",false]

["media-vpi",false]

["media-vpi_cron",false]

["img_optm-auto",true]

["img_optm-ori",true]

["img_optm-rm_bkup",false]

["img_optm-webp",true]

["img_optm-lossless",false]

["img_optm-exif",false]

["img_optm-webp_replace_srcset",true]
["_version","5.3"]

["guest",false]

["guest_optm",false]

["cache",true]

["cache-priv",true]

["cache-commenter",true]

["cache-rest",true]

["cache-page_login",true]

["cache-resources",true]

["cache-mobile",true]

["cache-browser",true]

["esi",false]

["esi-cache_admbar",true]

["esi-cache_commform",true]

["util-instant_click",false]

["util-no_https_vary",false]

["optm-css_min",false]

["optm-css_comb",false]

["optm-css_comb_ext_inl",true]

["optm-ucss",false]

["optm-ucss_inline",false]

["optm-js_min",false]

["optm-js_comb",false]

["optm-js_comb_ext_inl",true]

["optm-html_min",false]

["optm-qs_rm",false]

["optm-ggfonts_rm",false]

["optm-css_async",false]

["optm-ccss_per_url",false]

["optm-css_async_inline",true]

["optm-css_font_display",false]

["optm-js_defer",0]

["optm-emoji_rm",false]

["optm-noscript_rm",false]

["optm-ggfonts_async",false]

["optm-dns_prefetch_ctrl",false]

["optm-guest_only",true]

["discuss-avatar_cache",false]

["discuss-avatar_cron",false]

["optm-localize",false]

["media-lazy",false]

["media-lazy_placeholder",""]

["media-placeholder_resp",false]

["media-lqip",false]

["media-placeholder_resp_async",true]

["media-iframe_lazy",false]

["media-add_missing_sizes",false]

["media-vpi",false]

["media-vpi_cron",false]

["img_optm-auto",true]

["img_optm-ori",true]

["img_optm-rm_bkup",false]

["img_optm-webp",true]

["img_optm-lossless",false]

["img_optm-exif",false]

["img_optm-webp_replace_srcset",true]
["_version","5.3"]

["guest",true]

["guest_optm",true]

["cache",true]

["cache-priv",true]

["cache-commenter",true]

["cache-rest",true]

["cache-page_login",true]

["cache-resources",true]

["cache-mobile",true]

["cache-browser",true]

["esi",false]

["esi-cache_admbar",true]

["esi-cache_commform",true]

["util-instant_click",false]

["util-no_https_vary",false]

["optm-css_min",true]

["optm-css_comb",true]

["optm-css_comb_ext_inl",true]

["optm-ucss",true]

["optm-ucss_inline",false]

["optm-js_min",true]

["optm-js_comb",true]

["optm-js_comb_ext_inl",true]

["optm-html_min",true]

["optm-qs_rm",true]

["optm-ggfonts_rm",false]

["optm-css_async",true]

["optm-ccss_per_url",true]

["optm-css_async_inline",true]

["optm-css_font_display",true]

["optm-js_defer",2]

["optm-emoji_rm",true]

["optm-noscript_rm",true]

["optm-ggfonts_async",false]

["optm-dns_prefetch_ctrl",true]

["optm-guest_only",true]

["discuss-avatar_cache",true]

["discuss-avatar_cron",true]

["optm-localize",false]

["media-lazy",true]

["media-lazy_placeholder","data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"]

["media-placeholder_resp",true]

["media-lqip",true]

["media-placeholder_resp_async",true]

["media-iframe_lazy",true]

["media-add_missing_sizes",true]

["media-vpi",true]

["media-vpi_cron",true]

["img_optm-auto",true]

["img_optm-ori",true]

["img_optm-rm_bkup",false]

["img_optm-webp",true]

["img_optm-lossless",false]

["img_optm-exif",false]

["img_optm-webp_replace_srcset",true]
["_version","5.3"]

["guest",true]

["guest_optm",true]

["cache",true]

["cache-priv",true]

["cache-commenter",true]

["cache-rest",true]

["cache-page_login",true]

["cache-resources",true]

["cache-mobile",true]

["cache-browser",true]

["esi",false]

["esi-cache_admbar",true]

["esi-cache_commform",true]

["util-instant_click",false]

["util-no_https_vary",false]

["optm-css_min",true]

["optm-css_comb",false]

["optm-css_comb_ext_inl",false]

["optm-ucss",false]

["optm-ucss_inline",false]

["optm-js_min",true]

["optm-js_comb",false]

["optm-js_comb_ext_inl",false]

["optm-html_min",true]

["optm-qs_rm",true]

["optm-ggfonts_rm",false]

["optm-css_async",false]

["optm-ccss_per_url",false]

["optm-css_async_inline",false]

["optm-css_font_display",true]

["optm-js_defer",1]

["optm-emoji_rm",true]

["optm-noscript_rm",true]

["optm-ggfonts_async",false]

["optm-dns_prefetch_ctrl",true]

["optm-guest_only",true]

["discuss-avatar_cache",true]

["discuss-avatar_cron",true]

["optm-localize",false]

["media-lazy",false]

["media-lazy_placeholder",""]

["media-placeholder_resp",false]

["media-lqip",false]

["media-placeholder_resp_async",true]

["media-iframe_lazy",false]

["media-add_missing_sizes",false]

["media-vpi",false]

["media-vpi_cron",false]

["img_optm-auto",true]

["img_optm-ori",true]

["img_optm-rm_bkup",false]

["img_optm-webp",true]

["img_optm-lossless",false]

["img_optm-exif",false]

["img_optm-webp_replace_srcset",true]
["_version","5.3"]

["guest",false]

["guest_optm",false]

["cache",true]

["cache-priv",true]

["cache-commenter",true]

["cache-rest",true]

["cache-page_login",true]

["cache-resources",true]

["cache-mobile",false]

["cache-browser",true]

["esi",false]

["esi-cache_admbar",true]

["esi-cache_commform",true]

["util-instant_click",false]

["util-no_https_vary",false]

["optm-css_min",false]

["optm-css_comb",false]

["optm-css_comb_ext_inl",true]

["optm-ucss",false]

["optm-ucss_inline",false]

["optm-js_min",false]

["optm-js_comb",false]

["optm-js_comb_ext_inl",true]

["optm-html_min",false]

["optm-qs_rm",false]

["optm-ggfonts_rm",false]

["optm-css_async",false]

["optm-ccss_per_url",false]

["optm-css_async_inline",true]

["optm-css_font_display",false]

["optm-js_defer",0]

["optm-emoji_rm",false]

["optm-noscript_rm",false]

["optm-ggfonts_async",false]

["optm-dns_prefetch_ctrl",false]

["optm-guest_only",true]

["discuss-avatar_cache",false]

["discuss-avatar_cron",false]

["optm-localize",false]

["media-lazy",false]

["media-lazy_placeholder",""]

["media-placeholder_resp",false]

["media-lqip",false]

["media-placeholder_resp_async",true]

["media-iframe_lazy",false]

["media-add_missing_sizes",false]

["media-vpi",false]

["media-vpi_cron",false]

["img_optm-auto",false]

["img_optm-ori",true]

["img_optm-rm_bkup",false]

["img_optm-webp",false]

["img_optm-lossless",false]

["img_optm-exif",false]

["img_optm-webp_replace_srcset",false]
{
	"cache": false,
	"use_primary_settings": false,
	"auto_upgrade": false,
	"cache-resources": true,
	"cache-browser": false,
	"cache-mobile": false,
	"cache-mobile_rules": "Mobile\nAndroid\nSilk/\nKindle\nBlackBerry\nOpera Mini\nOpera Mobi",
	"cache-login_cookie": "",
	"cache-exc_cookies": "",
	"cache-exc_useragents": "",
	"cache-ttl_browser": 31557600,
	"purge-upgrade": false,
	"object": false,
	"object-kind": false,
	"object-host": "localhost",
	"object-port": 11211,
	"object-life": 360,
	"object-persistent": true,
	"object-admin": true,
	"object-transients": true,
	"object-db_id": 0,
	"object-user": "",
	"object-pswd": "",
	"object-global_groups": "users\nuserlogins\nusermeta\nuser_meta\nuseremail\nuserslugs\nsites\nsite-details\nsite-transient\nsite-options\nsite-lookup\nblog-lookup\nblog-id-cache\nblog-details\nnetworks\nrss\nglobal-posts\nglobal-cache-test",
	"object-non_persistent_groups": "comment\ncounts\nplugins",
	"debug-disable_all": false,
	"debug": false,
	"debug-ips": "127.0.0.1",
	"debug-level": false,
	"debug-filesize": 3,
	"debug-collapse_qs": false,
	"debug-inc": "",
	"debug-exc": "",
	"debug-exc_strings": "",
	"img_optm-webp": false
}
## To predefine more list, please submit a PR to https://github.com/litespeedtech/lscache_wp/blob/dev/data/esi.nonces.txt
## 	 Comment Format:
## 		1. `# this is comment`
## 		2. `##this is comment`


## Predefined elsewhere so not needed here:

## WordPress core
# stats_nonce
# subscribe_nonce

# Divi Theme Builder
# et-pb-contact-form-submit
# et_frontend_nonce
# et_ab_log_nonce

# WooCommerce PayPal Checkout
# _wc_ppec_update_shipping_costs_nonce private
# _wc_ppec_start_checkout_nonce private
# _wc_ppec_generate_cart_nonce private

# User Switching
# switch_to_olduser_'<ID>'

# Caldera Forms
# caldera_forms_front_*


## Predefined list of ESI nonces:

# WordPress REST nonce
wp_rest

# CM Registration Pro
cmreg_registration_nonce private
role_nonce private

# WooCommerce Delivery Area Pro #16843635
wdap-call-nonce private

# SEOpress Cookie Consent
seopress_cookies_user_consent_nonce

# SearchWP Metrics
swpmtxnonce

# The Events Calendar
_tec_view_rest_nonce_primary
_tec_view_rest_nonce_secondary

# wpDataTables #986128
wdt*

# WPBakery gallery
_vcnonce
data-vc-public-nonce

# Extra Theme
rating_nonce
timeline_nonce
blog_feed_nonce

# WS Form
wsf_post

# Easy Digital Download (EDD)
edd-* private
edd_* private

# WP Menu Cart
wpmenucart private

# Advanced Custom Fields + Advanced Forms
acf_nonce
af_form_nonce
af_submission_*

# Woo nonce
woocommerce-login

# Premium Addons for Elementor
pa-blog-widget-nonce

# WPUF User Frontend
wpuf* private

# MetForm
form_nonce

# Mobile hamburger menu - jetMenu #306983 #163710 PR#419
tgmpa-*
bulk-*

# WP Data Access
wpda-*

# Elementor
elementor-pro-frontend
elementor-conversion-center-click# Predefined list for excluding JS files or inline JS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_excludes.txt We will merge into next plugin release

# JS file URL excludes
maps-api-ssl.google.com
maps.google.com/maps
maps.googleapis.com
google.com/recaptcha
google-analytics.com/analytics.js
stats.wp.com
js.stripe.com
paypal.com/sdk/js
cse.google.com/cse.js
/syntaxhighlighter/
spotlight-social-photo-feeds ## https://docs.spotlightwp.com/article/757-autoptimize-compatibility @Tobolo
userway.org

# Inline JS excludes
document.write
gtag
gtm
dataLayer
adsbygoogle

block_tdi_ ## Theme: Newspaper by tagDiv.com

data-view-breakpoint-pointer ## Plugin: The Events Calendar by Modern Tribe (https://theeventscalendar.com/)

wp-json/wp-statistics ## WP Statistics

## JetPack Stats
stats.wp.com/e-
_stq

# Cloudflare turnstile - Tobolo
turnstile
challenges.cloudflare.com# Predefined list for CCSS whitelist #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/ccss_whitelist.txt We will merge into next plugin release


############# DoBar compatibility #############
.pace-inactive

############# DIVI ################
.et_pb_number_counter.active
# Predefined list for UCSS whitelist #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/ucss_whitelist.txt We will merge into next plugin release


############# DoBar compatibility #############
.pace-inactive

############# DIVI ################
.et_pb_number_counter.active# Predefined list for Do Not Cache URIs #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/cache_nocacheable.txt We will merge into next plugin release


# WP v6.6 Official Site Editor (Appearance >> Editor)
^/wp-json/wp/v2<?php
/**
 * Rewrite file-relative URIs as root-relative in CSS files
 *
 * @package Minify
 * @author Stephen Clay <steve@mrclay.org>
 */

namespace LiteSpeed\Lib;

defined( 'WPINC' ) || exit;

class UriRewriter {


	/**
	 * rewrite() and rewriteRelative() append debugging information here
	 *
	 * @var string
	 */
	public static $debugText = '';

	/**
	 * In CSS content, rewrite file relative URIs as root relative
	 *
	 * @param string $css
	 *
	 * @param string $currentDir The directory of the current CSS file.
	 *
	 * @param string $docRoot The document root of the web site in which
	 * the CSS file resides (default = $_SERVER['DOCUMENT_ROOT']).
	 *
	 * @param array  $symlinks (default = array()) If the CSS file is stored in
	 *  a symlink-ed directory, provide an array of link paths to
	 *  target paths, where the link paths are within the document root. Because
	 *  paths need to be normalized for this to work, use "//" to substitute
	 *  the doc root in the link paths (the array keys). E.g.:
	 *  <code>
	 *  array('//symlink' => '/real/target/path') // unix
	 *  array('//static' => 'D:\\staticStorage')  // Windows
	 *  </code>
	 *
	 * @return string
	 */
	public static function rewrite( $css, $currentDir, $docRoot = null, $symlinks = array() ) {
		self::$_docRoot    = self::_realpath(
			$docRoot ? $docRoot : $_SERVER['DOCUMENT_ROOT']
		);
		self::$_currentDir = self::_realpath( $currentDir );
		self::$_symlinks   = array();

		// normalize symlinks in order to map to link
		foreach ( $symlinks as $link => $target ) {
			$link = ( $link === '//' ) ? self::$_docRoot : str_replace( '//', self::$_docRoot . '/', $link );
			$link = strtr( $link, '/', DIRECTORY_SEPARATOR );

			self::$_symlinks[ $link ] = self::_realpath( $target );
		}

		self::$debugText .= 'docRoot    : ' . self::$_docRoot . "\n"
							. 'currentDir : ' . self::$_currentDir . "\n";
		if ( self::$_symlinks ) {
			self::$debugText .= 'symlinks : ' . var_export( self::$_symlinks, 1 ) . "\n";
		}
		self::$debugText .= "\n";

		$css = self::_trimUrls( $css );

		$css = self::_owlifySvgPaths( $css );

		// rewrite
		$pattern = '/@import\\s+([\'"])(.*?)[\'"]/';
		$css     = preg_replace_callback( $pattern, __CLASS__ . '::_processUriCB', $css );

		$pattern = '/url\\(\\s*([\'"](.*?)[\'"]|[^\\)\\s]+)\\s*\\)/';
		$css     = preg_replace_callback( $pattern, __CLASS__ . '::_processUriCB', $css );

		$css = self::_unOwlify( $css );

		return $css;
	}

	/**
	 * In CSS content, prepend a path to relative URIs
	 *
	 * @param string $css
	 *
	 * @param string $path The path to prepend.
	 *
	 * @return string
	 */
	public static function prepend( $css, $path ) {
		self::$_prependPath = $path;

		$css = self::_trimUrls( $css );

		$css = self::_owlifySvgPaths( $css );

		// append
		$pattern = '/@import\\s+([\'"])(.*?)[\'"]/';
		$css     = preg_replace_callback( $pattern, __CLASS__ . '::_processUriCB', $css );

		$pattern = '/url\\(\\s*([\'"](.*?)[\'"]|[^\\)\\s]+)\\s*\\)/';
		$css     = preg_replace_callback( $pattern, __CLASS__ . '::_processUriCB', $css );

		$css = self::_unOwlify( $css );

		self::$_prependPath = null;

		return $css;
	}

	/**
	 * Get a root relative URI from a file relative URI
	 *
	 * <code>
	 * UriRewriter::rewriteRelative(
	 *       '../img/hello.gif'
	 *     , '/home/user/www/css'  // path of CSS file
	 *     , '/home/user/www'      // doc root
	 * );
	 * // returns '/img/hello.gif'
	 *
	 * // example where static files are stored in a symlinked directory
	 * UriRewriter::rewriteRelative(
	 *       'hello.gif'
	 *     , '/var/staticFiles/theme'
	 *     , '/home/user/www'
	 *     , array('/home/user/www/static' => '/var/staticFiles')
	 * );
	 * // returns '/static/theme/hello.gif'
	 * </code>
	 *
	 * @param string $uri file relative URI
	 *
	 * @param string $realCurrentDir realpath of the current file's directory.
	 *
	 * @param string $realDocRoot realpath of the site document root.
	 *
	 * @param array  $symlinks (default = array()) If the file is stored in
	 *  a symlink-ed directory, provide an array of link paths to
	 *  real target paths, where the link paths "appear" to be within the document
	 *  root. E.g.:
	 *  <code>
	 *  array('/home/foo/www/not/real/path' => '/real/target/path') // unix
	 *  array('C:\\htdocs\\not\\real' => 'D:\\real\\target\\path')  // Windows
	 *  </code>
	 *
	 * @return string
	 */
	public static function rewriteRelative( $uri, $realCurrentDir, $realDocRoot, $symlinks = array() ) {
		// prepend path with current dir separator (OS-independent)
		$path  = strtr( $realCurrentDir, '/', DIRECTORY_SEPARATOR );
		$path .= DIRECTORY_SEPARATOR . strtr( $uri, '/', DIRECTORY_SEPARATOR );

		self::$debugText .= "file-relative URI  : {$uri}\n"
							. "path prepended     : {$path}\n";

		// "unresolve" a symlink back to doc root
		foreach ( $symlinks as $link => $target ) {
			if ( 0 === strpos( $path, $target ) ) {
				// replace $target with $link
				$path = $link . substr( $path, strlen( $target ) );

				self::$debugText .= "symlink unresolved : {$path}\n";

				break;
			}
		}
		// strip doc root
		$path = substr( $path, strlen( $realDocRoot ) );

		self::$debugText .= "docroot stripped   : {$path}\n";

		// fix to root-relative URI
		$uri = strtr( $path, '/\\', '//' );
		$uri = self::removeDots( $uri );

		self::$debugText .= "traversals removed : {$uri}\n\n";

		return $uri;
	}

	/**
	 * Remove instances of "./" and "../" where possible from a root-relative URI
	 *
	 * @param string $uri
	 *
	 * @return string
	 */
	public static function removeDots( $uri ) {
		$uri = str_replace( '/./', '/', $uri );
		// inspired by patch from Oleg Cherniy
		do {
			$uri = preg_replace( '@/[^/]+/\\.\\./@', '/', $uri, 1, $changed );
		} while ( $changed );

		return $uri;
	}

	/**
	 * Get realpath with any trailing slash removed. If realpath() fails,
	 * just remove the trailing slash.
	 *
	 * @param string $path
	 *
	 * @return mixed path with no trailing slash
	 */
	protected static function _realpath( $path ) {
		$realPath = realpath( $path );
		if ( $realPath !== false ) {
			$path = $realPath;
		}

		return rtrim( $path, '/\\' );
	}

	/**
	 * Directory of this stylesheet
	 *
	 * @var string
	 */
	private static $_currentDir = '';

	/**
	 * DOC_ROOT
	 *
	 * @var string
	 */
	private static $_docRoot = '';

	/**
	 * directory replacements to map symlink targets back to their
	 * source (within the document root) E.g. '/var/www/symlink' => '/var/realpath'
	 *
	 * @var array
	 */
	private static $_symlinks = array();

	/**
	 * Path to prepend
	 *
	 * @var string
	 */
	private static $_prependPath = null;

	/**
	 * @param string $css
	 *
	 * @return string
	 */
	private static function _trimUrls( $css ) {
		$pattern = '/
            url\\(      # url(
            \\s*
            ([^\\)]+?)  # 1 = URI (assuming does not contain ")")
            \\s*
            \\)         # )
        /x';

		return preg_replace( $pattern, 'url($1)', $css );
	}

	/**
	 * @param array $m
	 *
	 * @return string
	 */
	private static function _processUriCB( $m ) {
		// $m matched either '/@import\\s+([\'"])(.*?)[\'"]/' or '/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
		$isImport = ( $m[0][0] === '@' );
		// determine URI and the quote character (if any)
		if ( $isImport ) {
			$quoteChar = $m[1];
			$uri       = $m[2];
		} else {
			// $m[1] is either quoted or not
			$quoteChar = ( $m[1][0] === "'" || $m[1][0] === '"' ) ? $m[1][0] : '';

			$uri = ( $quoteChar === '' ) ? $m[1] : substr( $m[1], 1, strlen( $m[1] ) - 2 );
		}

		if ( $uri === '' ) {
			return $m[0];
		}

		// if not anchor id, not root/scheme relative, and not starts with scheme
		if ( ! preg_match( '~^(#|/|[a-z]+\:)~', $uri ) ) {
			// URI is file-relative: rewrite depending on options
			if ( self::$_prependPath === null ) {
				$uri = self::rewriteRelative( $uri, self::$_currentDir, self::$_docRoot, self::$_symlinks );
			} else {
				$uri = self::$_prependPath . $uri;
				if ( $uri[0] === '/' ) {
					$root         = '';
					$rootRelative = $uri;
					$uri          = $root . self::removeDots( $rootRelative );
				} elseif ( preg_match( '@^((https?\:)?//([^/]+))/@', $uri, $m ) && ( false !== strpos( $m[3], '.' ) ) ) {
					$root         = $m[1];
					$rootRelative = substr( $uri, strlen( $root ) );
					$uri          = $root . self::removeDots( $rootRelative );
				}
			}
		}

		if ( $isImport ) {
			return "@import {$quoteChar}{$uri}{$quoteChar}";
		} else {
			return "url({$quoteChar}{$uri}{$quoteChar})";
		}
	}

	/**
	 * Mungs some inline SVG URL declarations so they won't be touched
	 *
	 * @link https://github.com/mrclay/minify/issues/517
	 * @see _unOwlify
	 *
	 * @param string $css
	 * @return string
	 */
	private static function _owlifySvgPaths( $css ) {
		$pattern = '~\b((?:clip-path|mask|-webkit-mask)\s*\:\s*)url(\(\s*#\w+\s*\))~';

		return preg_replace( $pattern, '$1owl$2', $css );
	}

	/**
	 * Undo work of _owlify
	 *
	 * @see _owlifySvgPaths
	 *
	 * @param string $css
	 * @return string
	 */
	private static function _unOwlify( $css ) {
		$pattern = '~\b((?:clip-path|mask|-webkit-mask)\s*\:\s*)owl~';

		return preg_replace( $pattern, '$1url', $css );
	}
}
<?php

/**
 * Plugin Name:       LiteSpeed Cache - Object Cache (Drop-in)
 * Plugin URI:        https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration
 * Description:       High-performance page caching and site optimization from LiteSpeed.
 * Author:            LiteSpeed Technologies
 * Author URI:        https://www.litespeedtech.com
 */

defined( 'WPINC' ) || exit;
/**
 * LiteSpeed Object Cache
 *
 * @since  1.8
 */

! defined( 'LSCWP_OBJECT_CACHE' ) && define( 'LSCWP_OBJECT_CACHE', true );

// Initialize const `LSCWP_DIR` and locate LSCWP plugin folder
$lscwp_dir = ( defined( 'WP_PLUGIN_DIR' ) ? WP_PLUGIN_DIR : WP_CONTENT_DIR . '/plugins' ) . '/litespeed-cache/';

// Use plugin as higher priority than MU plugin
if ( ! file_exists( $lscwp_dir . 'litespeed-cache.php' ) ) {
	// Check if is mu plugin or not
	$lscwp_dir = ( defined( 'WPMU_PLUGIN_DIR' ) ? WPMU_PLUGIN_DIR : WP_CONTENT_DIR . '/mu-plugins' ) . '/litespeed-cache/';
	if ( ! file_exists( $lscwp_dir . 'litespeed-cache.php' ) ) {
		$lscwp_dir = '';
	}
}

$data_file = WP_CONTENT_DIR . '/.litespeed_conf.dat';
$lib_file  = $lscwp_dir . 'src/object.lib.php';

// Can't find LSCWP location, terminate object cache process
if ( ! $lscwp_dir || ! file_exists( $data_file ) || ( ! file_exists( $lib_file ) ) ) {
	if ( ! is_admin() ) { // Bypass object cache for frontend
		require_once ABSPATH . WPINC . '/cache.php';
	} else {
		$err = 'Can NOT find LSCWP path for object cache initialization in ' . __FILE__;
		error_log( $err );
		add_action(
			is_network_admin() ? 'network_admin_notices' : 'admin_notices',
			function () use ( &$err ) {
				echo $err;
			}
		);
	}
} elseif ( ! LSCWP_OBJECT_CACHE ) {
	// Disable cache
		wp_using_ext_object_cache( false );
}
	// Init object cache & LSCWP
elseif ( file_exists( $lib_file ) ) {
	require_once $lib_file;
}
<?php
/**
 * LiteSpeed PHP compatibility functions for lower PHP version
 *
 * @since      1.1.3
 * @package    LiteSpeed_Cache
 * @subpackage LiteSpeed_Cache/lib
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */

defined( 'WPINC' ) || exit;


/**
 * http_build_url() compatibility
 */
if ( ! function_exists( 'http_build_url' ) ) {
	if ( ! defined( 'HTTP_URL_REPLACE' ) ) {
		define( 'HTTP_URL_REPLACE', 1 );              // Replace every part of the first URL when there's one of the second URL
	}
	if ( ! defined( 'HTTP_URL_JOIN_PATH' ) ) {
		define( 'HTTP_URL_JOIN_PATH', 2 );            // Join relative paths
	}
	if ( ! defined( 'HTTP_URL_JOIN_QUERY' ) ) {
		define( 'HTTP_URL_JOIN_QUERY', 4 );           // Join query strings
	}
	if ( ! defined( 'HTTP_URL_STRIP_USER' ) ) {
		define( 'HTTP_URL_STRIP_USER', 8 );           // Strip any user authentication information
	}
	if ( ! defined( 'HTTP_URL_STRIP_PASS' ) ) {
		define( 'HTTP_URL_STRIP_PASS', 16 );          // Strip any password authentication information
	}
	if ( ! defined( 'HTTP_URL_STRIP_AUTH' ) ) {
		define( 'HTTP_URL_STRIP_AUTH', 32 );          // Strip any authentication information
	}
	if ( ! defined( 'HTTP_URL_STRIP_PORT' ) ) {
		define( 'HTTP_URL_STRIP_PORT', 64 );          // Strip explicit port numbers
	}
	if ( ! defined( 'HTTP_URL_STRIP_PATH' ) ) {
		define( 'HTTP_URL_STRIP_PATH', 128 );         // Strip complete path
	}
	if ( ! defined( 'HTTP_URL_STRIP_QUERY' ) ) {
		define( 'HTTP_URL_STRIP_QUERY', 256 );        // Strip query string
	}
	if ( ! defined( 'HTTP_URL_STRIP_FRAGMENT' ) ) {
		define( 'HTTP_URL_STRIP_FRAGMENT', 512 );     // Strip any fragments (#identifier)
	}
	if ( ! defined( 'HTTP_URL_STRIP_ALL' ) ) {
		define( 'HTTP_URL_STRIP_ALL', 1024 );         // Strip anything but scheme and host
	}

	// Build an URL
	// The parts of the second URL will be merged into the first according to the flags argument.
	//
	// @param   mixed           (Part(s) of) an URL in form of a string or associative array like parse_url() returns
	// @param   mixed           Same as the first argument
	// @param   int             A bitmask of binary or'ed HTTP_URL constants (Optional)HTTP_URL_REPLACE is the default
	// @param   array           If set, it will be filled with the parts of the composed url like parse_url() would return
	function http_build_url( $url, $parts = array(), $flags = HTTP_URL_REPLACE, &$new_url = false ) {
		$keys = array( 'user', 'pass', 'port', 'path', 'query', 'fragment' );

		// HTTP_URL_STRIP_ALL becomes all the HTTP_URL_STRIP_Xs
		if ( $flags & HTTP_URL_STRIP_ALL ) {
			$flags |= HTTP_URL_STRIP_USER;
			$flags |= HTTP_URL_STRIP_PASS;
			$flags |= HTTP_URL_STRIP_PORT;
			$flags |= HTTP_URL_STRIP_PATH;
			$flags |= HTTP_URL_STRIP_QUERY;
			$flags |= HTTP_URL_STRIP_FRAGMENT;
		}
		// HTTP_URL_STRIP_AUTH becomes HTTP_URL_STRIP_USER and HTTP_URL_STRIP_PASS
		elseif ( $flags & HTTP_URL_STRIP_AUTH ) {
			$flags |= HTTP_URL_STRIP_USER;
			$flags |= HTTP_URL_STRIP_PASS;
		}

		// Parse the original URL
		// - Suggestion by Sayed Ahad Abbas
		// In case you send a parse_url array as input
		$parse_url = ! is_array( $url ) ? parse_url( $url ) : $url;

		// Scheme and Host are always replaced
		if ( isset( $parts['scheme'] ) ) {
			$parse_url['scheme'] = $parts['scheme'];
		}
		if ( isset( $parts['host'] ) ) {
			$parse_url['host'] = $parts['host'];
		}

		// (If applicable) Replace the original URL with it's new parts
		if ( $flags & HTTP_URL_REPLACE ) {
			foreach ( $keys as $key ) {
				if ( isset( $parts[ $key ] ) ) {
					$parse_url[ $key ] = $parts[ $key ];
				}
			}
		} else {
			// Join the original URL path with the new path
			if ( isset( $parts['path'] ) && ( $flags & HTTP_URL_JOIN_PATH ) ) {
				if ( isset( $parse_url['path'] ) ) {
					$parse_url['path'] = rtrim( str_replace( basename( $parse_url['path'] ), '', $parse_url['path'] ), '/' ) . '/' . ltrim( $parts['path'], '/' );
				} else {
					$parse_url['path'] = $parts['path'];
				}
			}

			// Join the original query string with the new query string
			if ( isset( $parts['query'] ) && ( $flags & HTTP_URL_JOIN_QUERY ) ) {
				if ( isset( $parse_url['query'] ) ) {
					$parse_url['query'] .= '&' . $parts['query'];
				} else {
					$parse_url['query'] = $parts['query'];
				}
			}
		}

		// Strips all the applicable sections of the URL
		// Note: Scheme and Host are never stripped
		foreach ( $keys as $key ) {
			if ( $flags & (int) constant( 'HTTP_URL_STRIP_' . strtoupper( $key ) ) ) {
				unset( $parse_url[ $key ] );
			}
		}

		$new_url = $parse_url;

		return ( isset( $parse_url['scheme'] ) ? $parse_url['scheme'] . '://' : '' )
			. ( isset( $parse_url['user'] ) ? $parse_url['user'] . ( isset( $parse_url['pass'] ) ? ':' . $parse_url['pass'] : '' ) . '@' : '' )
			. ( isset( $parse_url['host'] ) ? $parse_url['host'] : '' )
			. ( isset( $parse_url['port'] ) ? ':' . $parse_url['port'] : '' )
			. ( isset( $parse_url['path'] ) ? $parse_url['path'] : '' )
			. ( isset( $parse_url['query'] ) ? '?' . $parse_url['query'] : '' )
			. ( isset( $parse_url['fragment'] ) ? '#' . $parse_url['fragment'] : '' );
	}
}


if ( ! function_exists( 'array_key_first' ) ) {
	function array_key_first( array $arr ) {
		foreach ( $arr as $k => $unused ) {
			return $k;
		}
		return null;
	}
}

if ( ! function_exists( 'array_column' ) ) {
	function array_column( $array, $column_name ) {
		return array_map(
			function ( $element ) use ( $column_name ) {
				return $element[ $column_name ];
			},
			$array
		);
	}
}
<?php

namespace LiteSpeed\Lib;

/**
 * Update guest vary
 *
 * @since 4.1
 */
class Guest {

	const CONF_FILE            = '.litespeed_conf.dat';
	const HASH                 = 'hash'; // Not set-able
	const O_CACHE_LOGIN_COOKIE = 'cache-login_cookie';
	const O_DEBUG              = 'debug';
	const O_DEBUG_IPS          = 'debug-ips';
	const O_UTIL_NO_HTTPS_VARY = 'util-no_https_vary';
	const O_GUEST_UAS          = 'guest_uas';
	const O_GUEST_IPS          = 'guest_ips';

	private static $_ip;
	private static $_vary_name = '_lscache_vary'; // this default vary cookie is used for logged in status check
	private $_conf             = false;

	/**
	 * Constructor
	 *
	 * @since 4.1
	 */
	public function __construct() {
		! defined( 'LSCWP_CONTENT_FOLDER' ) && define( 'LSCWP_CONTENT_FOLDER', dirname( __DIR__, 3 ) );
		// Load config
		$this->_conf = file_get_contents( LSCWP_CONTENT_FOLDER . '/' . self::CONF_FILE );
		if ( $this->_conf ) {
			$this->_conf = json_decode( $this->_conf, true );
		}

		if ( ! empty( $this->_conf[ self::O_CACHE_LOGIN_COOKIE ] ) ) {
			self::$_vary_name = $this->_conf[ self::O_CACHE_LOGIN_COOKIE ];
		}
	}

	/**
	 * Update Guest vary
	 *
	 * @since  4.0
	 */
	public function update_guest_vary() {
		// This process must not be cached
		/**
		 * @reference https://wordpress.org/support/topic/soft-404-from-google-search-on-litespeed-cache-guest-vary-php/#post-16838583
		 */
		header( 'X-Robots-Tag: noindex' );
		header( 'X-LiteSpeed-Cache-Control: no-cache' );

		if ( $this->always_guest() ) {
			echo '[]';
			exit;
		}

		// If contains vary already, don't reload to avoid infinite loop when parent page having browser cache
		if ( $this->_conf && self::has_vary() ) {
			echo '[]';
			exit;
		}

		// Send vary cookie
		$vary = 'guest_mode:1';
		if ( $this->_conf && empty( $this->_conf[ self::O_DEBUG ] ) ) {
			$vary = md5( $this->_conf[ self::HASH ] . $vary );
		}

		$expire = time() + 2 * 86400;
		$is_ssl = ! empty( $this->_conf[ self::O_UTIL_NO_HTTPS_VARY ] ) ? false : $this->is_ssl();
		setcookie( self::$_vary_name, $vary, $expire, '/', false, $is_ssl, true );

		// return json
		echo json_encode( array( 'reload' => 'yes' ) );
		exit;
	}

	/**
	 * WP's is_ssl() func
	 *
	 * @since 4.1
	 */
	private function is_ssl() {
		if ( isset( $_SERVER['HTTPS'] ) ) {
			if ( 'on' === strtolower( $_SERVER['HTTPS'] ) ) {
				return true;
			}

			if ( '1' == $_SERVER['HTTPS'] ) {
				return true;
			}
		} elseif ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
			return true;
		}
		return false;
	}

	/**
	 * Check if default vary has a value
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function has_vary() {
		if ( empty( $_COOKIE[ self::$_vary_name ] ) ) {
			return false;
		}
		return $_COOKIE[ self::$_vary_name ];
	}

	/**
	 * Detect if is a guest visitor or not
	 *
	 * @since  4.0
	 */
	public function always_guest() {
		if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
			return false;
		}

		if ( $this->_conf[ self::O_GUEST_UAS ] ) {
			$quoted_uas = array();
			foreach ( $this->_conf[ self::O_GUEST_UAS ] as $v ) {
				$quoted_uas[] = preg_quote( $v, '#' );
			}
			$match = preg_match( '#' . implode( '|', $quoted_uas ) . '#i', $_SERVER['HTTP_USER_AGENT'] );
			if ( $match ) {
				return true;
			}
		}

		if ( $this->ip_access( $this->_conf[ self::O_GUEST_IPS ] ) ) {
			return true;
		}

		return false;
	}

	/**
	 * Check if the ip is in the range
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function ip_access( $ip_list ) {
		if ( ! $ip_list ) {
			return false;
		}
		if ( ! isset( self::$_ip ) ) {
			self::$_ip = self::get_ip();
		}
		// $uip = explode('.', $_ip);
		// if(empty($uip) || count($uip) != 4) Return false;
		// foreach($ip_list as $key => $ip) $ip_list[$key] = explode('.', trim($ip));
		// foreach($ip_list as $key => $ip) {
		// if(count($ip) != 4) continue;
		// for($i = 0; $i <= 3; $i++) if($ip[$i] == '*') $ip_list[$key][$i] = $uip[$i];
		// }
		return in_array( self::$_ip, $ip_list );
	}

	/**
	 * Get client ip
	 *
	 * @since 1.1.0
	 * @since  1.6.5 changed to public
	 * @access public
	 * @return string
	 */
	public static function get_ip() {
		$_ip = '';
		if ( function_exists( 'apache_request_headers' ) ) {
			$apache_headers = apache_request_headers();
			$_ip            = ! empty( $apache_headers['True-Client-IP'] ) ? $apache_headers['True-Client-IP'] : false;
			if ( ! $_ip ) {
				$_ip = ! empty( $apache_headers['X-Forwarded-For'] ) ? $apache_headers['X-Forwarded-For'] : false;
				$_ip = explode( ',', $_ip );
				$_ip = $_ip[0];
			}
		}

		if ( ! $_ip ) {
			$_ip = ! empty( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : false;
		}
		return $_ip;
	}
}
<?php
/**
 * Compress HTML
 *
 * This is a heavy regex-based removal of whitespace, unnecessary comments and
 * tokens. IE conditional comments are preserved. There are also options to have
 * STYLE and SCRIPT blocks compressed by callback functions.
 *
 * A test suite is available.
 *
 * @package Minify
 * @author Stephen Clay <steve@mrclay.org>
 */
namespace LiteSpeed\Lib;

defined( 'WPINC' ) || exit;

class HTML_MIN {

	/**
	 * @var string
	 */
	protected $_html = '';

	/**
	 * @var boolean
	 */
	protected $_jsCleanComments = true;
	protected $_skipComments    = array();

	/**
	 * "Minify" an HTML page
	 *
	 * @param string $html
	 *
	 * @param array  $options
	 *
	 * 'cssMinifier' : (optional) callback function to process content of STYLE
	 * elements.
	 *
	 * 'jsMinifier' : (optional) callback function to process content of SCRIPT
	 * elements. Note: the type attribute is ignored.
	 *
	 * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
	 * unset, minify will sniff for an XHTML doctype.
	 *
	 * @return string
	 */
	public static function minify( $html, $options = array() ) {
		$min = new self( $html, $options );

		return $min->process();
	}

	/**
	 * Create a minifier object
	 *
	 * @param string $html
	 *
	 * @param array  $options
	 *
	 * 'cssMinifier' : (optional) callback function to process content of STYLE
	 * elements.
	 *
	 * 'jsMinifier' : (optional) callback function to process content of SCRIPT
	 * elements. Note: the type attribute is ignored.
	 *
	 * 'jsCleanComments' : (optional) whether to remove HTML comments beginning and end of script block
	 *
	 * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
	 * unset, minify will sniff for an XHTML doctype.
	 */
	public function __construct( $html, $options = array() ) {
		$this->_html = str_replace( "\r\n", "\n", trim( $html ) );
		if ( isset( $options['xhtml'] ) ) {
			$this->_isXhtml = (bool) $options['xhtml'];
		}
		if ( isset( $options['cssMinifier'] ) ) {
			$this->_cssMinifier = $options['cssMinifier'];
		}
		if ( isset( $options['jsMinifier'] ) ) {
			$this->_jsMinifier = $options['jsMinifier'];
		}
		if ( isset( $options['jsCleanComments'] ) ) {
			$this->_jsCleanComments = (bool) $options['jsCleanComments'];
		}
		if ( isset( $options['skipComments'] ) ) {
			$this->_skipComments = $options['skipComments'];
		}
	}

	/**
	 * Minify the markeup given in the constructor
	 *
	 * @return string
	 */
	public function process() {
		if ( $this->_isXhtml === null ) {
			$this->_isXhtml = ( false !== strpos( $this->_html, '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML' ) );
		}

		$this->_replacementHash = 'MINIFYHTML' . md5( $_SERVER['REQUEST_TIME'] );
		$this->_placeholders    = array();

		// replace SCRIPTs (and minify) with placeholders
		$this->_html = preg_replace_callback(
			'/(\\s*)<script(\\b[^>]*?>)([\\s\\S]*?)<\\/script>(\\s*)/i',
			array( $this, '_removeScriptCB' ),
			$this->_html
		);

		// replace STYLEs (and minify) with placeholders
		$this->_html = preg_replace_callback(
			'/\\s*<style(\\b[^>]*>)([\\s\\S]*?)<\\/style>\\s*/i',
			array( $this, '_removeStyleCB' ),
			$this->_html
		);

		// remove HTML comments (not containing IE conditional comments).
		$this->_html = preg_replace_callback(
			'/<!--([\\s\\S]*?)-->/',
			array( $this, '_commentCB' ),
			$this->_html
		);

		// replace PREs with placeholders
		$this->_html = preg_replace_callback(
			'/\\s*<pre(\\b[^>]*?>[\\s\\S]*?<\\/pre>)\\s*/i',
			array( $this, '_removePreCB' ),
			$this->_html
		);

		// replace TEXTAREAs with placeholders
		$this->_html = preg_replace_callback(
			'/\\s*<textarea(\\b[^>]*?>[\\s\\S]*?<\\/textarea>)\\s*/i',
			array( $this, '_removeTextareaCB' ),
			$this->_html
		);

		// trim each line.
		// @todo take into account attribute values that span multiple lines.
		$this->_html = preg_replace( '/^\\s+|\\s+$/m', '', $this->_html );

		// remove ws around block/undisplayed elements
		$this->_html = preg_replace(
			'/\\s+(<\\/?(?:area|article|aside|base(?:font)?|blockquote|body'
			. '|canvas|caption|center|col(?:group)?|dd|dir|div|dl|dt|fieldset|figcaption|figure|footer|form'
			. '|frame(?:set)?|h[1-6]|head|header|hgroup|hr|html|legend|li|link|main|map|menu|meta|nav'
			. '|ol|opt(?:group|ion)|output|p|param|section|t(?:able|body|head|d|h||r|foot|itle)'
			. '|ul|video)\\b[^>]*>)/i',
			'$1',
			$this->_html
		);

		// remove ws outside of all elements
		$this->_html = preg_replace(
			'/>(\\s(?:\\s*))?([^<]+)(\\s(?:\s*))?</',
			'>$1$2$3<',
			$this->_html
		);

		// use newlines before 1st attribute in open tags (to limit line lengths)
		// $this->_html = preg_replace('/(<[a-z\\-]+)\\s+([^>]+>)/i', "$1\n$2", $this->_html);

		// fill placeholders
		$this->_html = str_replace(
			array_keys( $this->_placeholders ),
			array_values( $this->_placeholders ),
			$this->_html
		);
		// issue 229: multi-pass to catch scripts that didn't get replaced in textareas
		$this->_html = str_replace(
			array_keys( $this->_placeholders ),
			array_values( $this->_placeholders ),
			$this->_html
		);

		return $this->_html;
	}

	/**
	 * From LSCWP 6.2: Changed the function to test for special comments that will be skipped. See: https://github.com/litespeedtech/lscache_wp/pull/622
	 */
	protected function _commentCB( $m ) {
		// If is IE conditional comment return it.
		if ( 0 === strpos( $m[1], '[' ) || false !== strpos( $m[1], '<![' ) ) {
			return $m[0];
		}

		// Check if comment text is present in Page Optimization -> HTML Settings -> HTML Keep comments
		if ( count( $this->_skipComments ) > 0 ) {
			foreach ( $this->_skipComments as $comment ) {
				if ( $comment && strpos( $m[1], $comment ) !== false ) {
					return $m[0];
				}
			}
		}

		// Comment can be removed.
		return '';
	}

	protected function _reservePlace( $content ) {
		$placeholder                         = '%' . $this->_replacementHash . count( $this->_placeholders ) . '%';
		$this->_placeholders[ $placeholder ] = $content;

		return $placeholder;
	}

	protected $_isXhtml         = null;
	protected $_replacementHash = null;
	protected $_placeholders    = array();
	protected $_cssMinifier     = null;
	protected $_jsMinifier      = null;

	protected function _removePreCB( $m ) {
		return $this->_reservePlace( "<pre{$m[1]}" );
	}

	protected function _removeTextareaCB( $m ) {
		return $this->_reservePlace( "<textarea{$m[1]}" );
	}

	protected function _removeStyleCB( $m ) {
		$openStyle = "<style{$m[1]}";
		$css       = $m[2];
		// remove HTML comments
		$css = preg_replace( '/(?:^\\s*<!--|-->\\s*$)/', '', $css );

		// remove CDATA section markers
		$css = $this->_removeCdata( $css );

		// minify
		$minifier = $this->_cssMinifier
			? $this->_cssMinifier
			: 'trim';
		$css      = call_user_func( $minifier, $css );

		return $this->_reservePlace(
			$this->_needsCdata( $css )
			? "{$openStyle}/*<![CDATA[*/{$css}/*]]>*/</style>"
			: "{$openStyle}{$css}</style>"
		);
	}

	protected function _removeScriptCB( $m ) {
		$openScript = "<script{$m[2]}";
		$js         = $m[3];

		// whitespace surrounding? preserve at least one space
		$ws1 = ( $m[1] === '' ) ? '' : ' ';
		$ws2 = ( $m[4] === '' ) ? '' : ' ';

		// remove HTML comments (and ending "//" if present)
		if ( $this->_jsCleanComments ) {
			$js = preg_replace( '/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $js );
		}

		// remove CDATA section markers
		$js = $this->_removeCdata( $js );

		// minify
		/**
		 * Added 2nd param by LiteSpeed
		 *
		 * @since  2.2.3
		 */
		if ( $this->_jsMinifier ) {
			$js = call_user_func( $this->_jsMinifier, $js, trim( $m[2] ) );
		} else {
			$js = trim( $js );
		}

		return $this->_reservePlace(
			$this->_needsCdata( $js )
			? "{$ws1}{$openScript}/*<![CDATA[*/{$js}/*]]>*/</script>{$ws2}"
			: "{$ws1}{$openScript}{$js}</script>{$ws2}"
		);
	}

	protected function _removeCdata( $str ) {
		return ( false !== strpos( $str, '<![CDATA[' ) )
			? str_replace( array( '<![CDATA[', ']]>' ), '', $str )
			: $str;
	}

	protected function _needsCdata( $str ) {
		return ( $this->_isXhtml && preg_match( '/(?:[<&]|\\-\\-|\\]\\]>)/', $str ) );
	}
}
Copyright (c) 2012 Matthias Mullie

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
-
*
/
%
=
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
&
|
^
<<
>>
>>>
==
===
!=
!==
>
<
>=
<=
&&
||
.
[
]
?
:
,
;
(
)
}do
if
in
for
let
new
try
var
case
else
enum
eval
null
this
true
void
with
break
catch
class
const
false
super
throw
while
yield
delete
export
import
public
return
static
switch
typeof
default
extends
finally
package
private
continue
debugger
function
arguments
interface
protected
implements
instanceof
abstract
boolean
byte
char
double
final
float
goto
int
long
native
short
synchronized
throws
transient
volatiledo
in
let
new
var
case
else
enum
void
with
class
const
yield
delete
export
import
public
static
typeof
extends
package
private
function
protected
implements
instanceofin
public
extends
private
protected
implements
instanceof+
-
*
/
%
=
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
&
|
^
~
<<
>>
>>>
==
===
!=
!==
>
<
>=
<=
&&
||
!
.
[
]
?
:
,
;
(
)
{
}+
-
*
/
%
=
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
&
|
^
~
<<
>>
>>>
==
===
!=
!==
>
<
>=
<=
&&
||
!
.
[
?
:
,
;
(
{
<?php
/**
 * modified PHP implementation of Matthias Mullie's Abstract minifier class.
 *
 * @author Matthias Mullie <minify@mullie.eu>
 * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
 * @license MIT License
 */

namespace LiteSpeed\Lib\CSS_JS_MIN\Minify;

use LiteSpeed\Lib\CSS_JS_MIN\Minify\Exception\IOException;

defined( 'WPINC' ) || exit;

abstract class Minify {

	/**
	 * The data to be minified.
	 *
	 * @var string[]
	 */
	protected $data = array();

	/**
	 * Array of patterns to match.
	 *
	 * @var string[]
	 */
	protected $patterns = array();

	/**
	 * This array will hold content of strings and regular expressions that have
	 * been extracted from the JS source code, so we can reliably match "code",
	 * without having to worry about potential "code-like" characters inside.
	 *
	 * @internal
	 *
	 * @var string[]
	 */
	public $extracted = array();

	/**
	 * Init the minify class - optionally, code may be passed along already.
	 */
	public function __construct( /* $data = null, ... */ ) {
		// it's possible to add the source through the constructor as well ;)
		if ( func_num_args() ) {
			call_user_func_array( array( $this, 'add' ), func_get_args() );
		}
	}

	/**
	 * Add a file or straight-up code to be minified.
	 *
	 * @param string|string[] $data
	 *
	 * @return static
	 */
	public function add( $data /* $data = null, ... */ ) {
		// bogus "usage" of parameter $data: scrutinizer warns this variable is
		// not used (we're using func_get_args instead to support overloading),
		// but it still needs to be defined because it makes no sense to have
		// this function without argument :)
		$args = array( $data ) + func_get_args();

		// this method can be overloaded
		foreach ( $args as $data ) {
			if ( is_array( $data ) ) {
				call_user_func_array( array( $this, 'add' ), $data );
				continue;
			}

			// redefine var
			$data = (string) $data;

			// load data
			$value = $this->load( $data );
			$key   = ( $data != $value ) ? $data : count( $this->data );

			// replace CR linefeeds etc.
			// @see https://github.com/matthiasmullie/minify/pull/139
			$value = str_replace( array( "\r\n", "\r" ), "\n", $value );

			// store data
			$this->data[ $key ] = $value;
		}

		return $this;
	}

	/**
	 * Add a file to be minified.
	 *
	 * @param string|string[] $data
	 *
	 * @return static
	 *
	 * @throws IOException
	 */
	public function addFile( $data /* $data = null, ... */ ) {
		// bogus "usage" of parameter $data: scrutinizer warns this variable is
		// not used (we're using func_get_args instead to support overloading),
		// but it still needs to be defined because it makes no sense to have
		// this function without argument :)
		$args = array( $data ) + func_get_args();

		// this method can be overloaded
		foreach ( $args as $path ) {
			if ( is_array( $path ) ) {
				call_user_func_array( array( $this, 'addFile' ), $path );
				continue;
			}

			// redefine var
			$path = (string) $path;

			// check if we can read the file
			if ( ! $this->canImportFile( $path ) ) {
				throw new IOException( 'The file "' . $path . '" could not be opened for reading. Check if PHP has enough permissions.' );
			}

			$this->add( $path );
		}

		return $this;
	}

	/**
	 * Minify the data & (optionally) saves it to a file.
	 *
	 * @param string[optional] $path Path to write the data to
	 *
	 * @return string The minified data
	 */
	public function minify( $path = null ) {
		$content = $this->execute( $path );

		// save to path
		if ( $path !== null ) {
			$this->save( $content, $path );
		}

		return $content;
	}

	/**
	 * Minify & gzip the data & (optionally) saves it to a file.
	 *
	 * @param string[optional] $path  Path to write the data to
	 * @param int[optional]    $level Compression level, from 0 to 9
	 *
	 * @return string The minified & gzipped data
	 */
	public function gzip( $path = null, $level = 9 ) {
		$content = $this->execute( $path );
		$content = gzencode( $content, $level, FORCE_GZIP );

		// save to path
		if ( $path !== null ) {
			$this->save( $content, $path );
		}

		return $content;
	}


	/**
	 * Minify the data.
	 *
	 * @param string[optional] $path Path to write the data to
	 *
	 * @return string The minified data
	 */
	abstract public function execute( $path = null );

	/**
	 * Load data.
	 *
	 * @param string $data Either a path to a file or the content itself
	 *
	 * @return string
	 */
	protected function load( $data ) {
		// check if the data is a file
		if ( $this->canImportFile( $data ) ) {
			$data = file_get_contents( $data );

			// strip BOM, if any
			if ( substr( $data, 0, 3 ) == "\xef\xbb\xbf" ) {
				$data = substr( $data, 3 );
			}
		}

		return $data;
	}

	/**
	 * Save to file.
	 *
	 * @param string $content The minified data
	 * @param string $path    The path to save the minified data to
	 *
	 * @throws IOException
	 */
	protected function save( $content, $path ) {
		$handler = $this->openFileForWriting( $path );

		$this->writeToFile( $handler, $content );

		@fclose( $handler );
	}

	/**
	 * Register a pattern to execute against the source content.
	 *
	 * If $replacement is a string, it must be plain text. Placeholders like $1 or \2 don't work.
	 * If you need that functionality, use a callback instead.
	 *
	 * @param string          $pattern     PCRE pattern
	 * @param string|callable $replacement Replacement value for matched pattern
	 */
	protected function registerPattern( $pattern, $replacement = '' ) {
		// study the pattern, we'll execute it more than once
		$pattern .= 'S';

		$this->patterns[] = array( $pattern, $replacement );
	}

	/**
	 * Both JS and CSS use the same form of multi-line comment, so putting the common code here.
	 */
	protected function stripMultilineComments() {
		// First extract comments we want to keep, so they can be restored later
		// PHP only supports $this inside anonymous functions since 5.4
		$minifier = $this;
		$callback = function ( $match ) use ( $minifier ) {
			$count                               = count( $minifier->extracted );
			$placeholder                         = '/*' . $count . '*/';
			$minifier->extracted[ $placeholder ] = $match[0];

			return $placeholder;
		};
		$this->registerPattern(
			'/
            # optional newline
            \n?

            # start comment
            \/\*

            # comment content
            (?:
                # either starts with an !
                !
            |
                # or, after some number of characters which do not end the comment
                (?:(?!\*\/).)*?

                # there is either a @license or @preserve tag
                @(?:license|preserve)
            )

            # then match to the end of the comment
            .*?\*\/\n?

            /ixs',
			$callback
		);

		// Then strip all other comments
		$this->registerPattern( '/\/\*.*?\*\//s', '' );
	}

	/**
	 * We can't "just" run some regular expressions against JavaScript: it's a
	 * complex language. E.g. having an occurrence of // xyz would be a comment,
	 * unless it's used within a string. Of you could have something that looks
	 * like a 'string', but inside a comment.
	 * The only way to accurately replace these pieces is to traverse the JS one
	 * character at a time and try to find whatever starts first.
	 *
	 * @param string $content The content to replace patterns in
	 *
	 * @return string The (manipulated) content
	 */
	protected function replace( $content ) {
		$contentLength   = strlen( $content );
		$output          = '';
		$processedOffset = 0;
		$positions       = array_fill( 0, count( $this->patterns ), -1 );
		$matches         = array();

		while ( $processedOffset < $contentLength ) {
			// find first match for all patterns
			foreach ( $this->patterns as $i => $pattern ) {
				list($pattern, $replacement) = $pattern;

				// we can safely ignore patterns for positions we've unset earlier,
				// because we know these won't show up anymore
				if ( array_key_exists( $i, $positions ) == false ) {
					continue;
				}

				// no need to re-run matches that are still in the part of the
				// content that hasn't been processed
				if ( $positions[ $i ] >= $processedOffset ) {
					continue;
				}

				$match = null;
				if ( preg_match( $pattern, $content, $match, PREG_OFFSET_CAPTURE, $processedOffset ) ) {
					$matches[ $i ] = $match;

					// we'll store the match position as well; that way, we
					// don't have to redo all preg_matches after changing only
					// the first (we'll still know where those others are)
					$positions[ $i ] = $match[0][1];
				} else {
					// if the pattern couldn't be matched, there's no point in
					// executing it again in later runs on this same content;
					// ignore this one until we reach end of content
					unset( $matches[ $i ], $positions[ $i ] );
				}
			}

			// no more matches to find: everything's been processed, break out
			if ( ! $matches ) {
				// output the remaining content
				$output .= substr( $content, $processedOffset );
				break;
			}

			// see which of the patterns actually found the first thing (we'll
			// only want to execute that one, since we're unsure if what the
			// other found was not inside what the first found)
			$matchOffset  = min( $positions );
			$firstPattern = array_search( $matchOffset, $positions );
			$match        = $matches[ $firstPattern ];

			// execute the pattern that matches earliest in the content string
			list(, $replacement) = $this->patterns[ $firstPattern ];

			// add the part of the input between $processedOffset and the first match;
			// that content wasn't matched by anything
			$output .= substr( $content, $processedOffset, $matchOffset - $processedOffset );
			// add the replacement for the match
			$output .= $this->executeReplacement( $replacement, $match );
			// advance $processedOffset past the match
			$processedOffset = $matchOffset + strlen( $match[0][0] );
		}

		return $output;
	}

	/**
	 * If $replacement is a callback, execute it, passing in the match data.
	 * If it's a string, just pass it through.
	 *
	 * @param string|callable $replacement Replacement value
	 * @param array           $match       Match data, in PREG_OFFSET_CAPTURE form
	 *
	 * @return string
	 */
	protected function executeReplacement( $replacement, $match ) {
		if ( ! is_callable( $replacement ) ) {
			return $replacement;
		}
		// convert $match from the PREG_OFFSET_CAPTURE form to the form the callback expects
		foreach ( $match as &$matchItem ) {
			$matchItem = $matchItem[0];
		}

		return $replacement( $match );
	}

	/**
	 * Strings are a pattern we need to match, in order to ignore potential
	 * code-like content inside them, but we just want all of the string
	 * content to remain untouched.
	 *
	 * This method will replace all string content with simple STRING#
	 * placeholder text, so we've rid all strings from characters that may be
	 * misinterpreted. Original string content will be saved in $this->extracted
	 * and after doing all other minifying, we can restore the original content
	 * via restoreStrings().
	 *
	 * @param string[optional] $chars
	 * @param string[optional] $placeholderPrefix
	 */
	protected function extractStrings( $chars = '\'"', $placeholderPrefix = '' ) {
		// PHP only supports $this inside anonymous functions since 5.4
		$minifier = $this;
		$callback = function ( $match ) use ( $minifier, $placeholderPrefix ) {
			// check the second index here, because the first always contains a quote
			if ( $match[2] === '' ) {
				/*
				 * Empty strings need no placeholder; they can't be confused for
				 * anything else anyway.
				 * But we still needed to match them, for the extraction routine
				 * to skip over this particular string.
				 */
				return $match[0];
			}

			$count                               = count( $minifier->extracted );
			$placeholder                         = $match[1] . $placeholderPrefix . $count . $match[1];
			$minifier->extracted[ $placeholder ] = $match[1] . $match[2] . $match[1];

			return $placeholder;
		};

		/*
		 * The \\ messiness explained:
		 * * Don't count ' or " as end-of-string if it's escaped (has backslash
		 * in front of it)
		 * * Unless... that backslash itself is escaped (another leading slash),
		 * in which case it's no longer escaping the ' or "
		 * * So there can be either no backslash, or an even number
		 * * multiply all of that times 4, to account for the escaping that has
		 * to be done to pass the backslash into the PHP string without it being
		 * considered as escape-char (times 2) and to get it in the regex,
		 * escaped (times 2)
		 */
		$this->registerPattern( '/([' . $chars . '])(.*?(?<!\\\\)(\\\\\\\\)*+)\\1/s', $callback );
	}

	/**
	 * This method will restore all extracted data (strings, regexes) that were
	 * replaced with placeholder text in extract*(). The original content was
	 * saved in $this->extracted.
	 *
	 * @param string $content
	 *
	 * @return string
	 */
	protected function restoreExtractedData( $content ) {
		if ( ! $this->extracted ) {
			// nothing was extracted, nothing to restore
			return $content;
		}

		$content = strtr( $content, $this->extracted );

		$this->extracted = array();

		return $content;
	}

	/**
	 * Check if the path is a regular file and can be read.
	 *
	 * @param string $path
	 *
	 * @return bool
	 */
	protected function canImportFile( $path ) {
		$parsed = parse_url( $path );
		if (
			// file is elsewhere
			isset( $parsed['host'] )
			// file responds to queries (may change, or need to bypass cache)
			|| isset( $parsed['query'] )
		) {
			return false;
		}

		try {
			return strlen( $path ) < PHP_MAXPATHLEN && @is_file( $path ) && is_readable( $path );
		}
		// catch openbasedir exceptions which are not caught by @ on is_file()
		catch ( \Exception $e ) {
			return false;
		}
	}

	/**
	 * Attempts to open file specified by $path for writing.
	 *
	 * @param string $path The path to the file
	 *
	 * @return resource Specifier for the target file
	 *
	 * @throws IOException
	 */
	protected function openFileForWriting( $path ) {
		if ( $path === '' || ( $handler = @fopen( $path, 'w' ) ) === false ) {
			throw new IOException( 'The file "' . $path . '" could not be opened for writing. Check if PHP has enough permissions.' );
		}

		return $handler;
	}

	/**
	 * Attempts to write $content to the file specified by $handler. $path is used for printing exceptions.
	 *
	 * @param resource $handler The resource to write to
	 * @param string   $content The content to write
	 * @param string   $path    The path to the file (for exception printing only)
	 *
	 * @throws IOException
	 */
	protected function writeToFile( $handler, $content, $path = '' ) {
		if (
			! is_resource( $handler )
			|| ( $result = @fwrite( $handler, $content ) ) === false
			|| ( $result < strlen( $content ) )
		) {
			throw new IOException( 'The file "' . $path . '" could not be written to. Check your disk space and file permissions.' );
		}
	}

	protected static function str_replace_first( $search, $replace, $subject ) {
		$pos = strpos( $subject, $search );
		if ( $pos !== false ) {
			return substr_replace( $subject, $replace, $pos, strlen( $search ) );
		}

		return $subject;
	}
}
<?php
/**
 * js.cls.php - modified PHP implementation of Matthias Mullie's JavaScript minifier
 *
 * @author Matthias Mullie <minify@mullie.eu>
 * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
 * @license MIT License
 */

namespace LiteSpeed\Lib\CSS_JS_MIN\Minify;

defined( 'WPINC' ) || exit;

class JS extends Minify {

	/**
	 * Var-matching regex based on http://stackoverflow.com/a/9337047/802993.
	 *
	 * Note that regular expressions using that bit must have the PCRE_UTF8
	 * pattern modifier (/u) set.
	 *
	 * @internal
	 *
	 * @var string
	 */
	const REGEX_VARIABLE = '\b[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{02c1}\x{02c6}-\x{02d1}\x{02e0}-\x{02e4}\x{02ec}\x{02ee}\x{0370}-\x{0374}\x{0376}\x{0377}\x{037a}-\x{037d}\x{0386}\x{0388}-\x{038a}\x{038c}\x{038e}-\x{03a1}\x{03a3}-\x{03f5}\x{03f7}-\x{0481}\x{048a}-\x{0527}\x{0531}-\x{0556}\x{0559}\x{0561}-\x{0587}\x{05d0}-\x{05ea}\x{05f0}-\x{05f2}\x{0620}-\x{064a}\x{066e}\x{066f}\x{0671}-\x{06d3}\x{06d5}\x{06e5}\x{06e6}\x{06ee}\x{06ef}\x{06fa}-\x{06fc}\x{06ff}\x{0710}\x{0712}-\x{072f}\x{074d}-\x{07a5}\x{07b1}\x{07ca}-\x{07ea}\x{07f4}\x{07f5}\x{07fa}\x{0800}-\x{0815}\x{081a}\x{0824}\x{0828}\x{0840}-\x{0858}\x{08a0}\x{08a2}-\x{08ac}\x{0904}-\x{0939}\x{093d}\x{0950}\x{0958}-\x{0961}\x{0971}-\x{0977}\x{0979}-\x{097f}\x{0985}-\x{098c}\x{098f}\x{0990}\x{0993}-\x{09a8}\x{09aa}-\x{09b0}\x{09b2}\x{09b6}-\x{09b9}\x{09bd}\x{09ce}\x{09dc}\x{09dd}\x{09df}-\x{09e1}\x{09f0}\x{09f1}\x{0a05}-\x{0a0a}\x{0a0f}\x{0a10}\x{0a13}-\x{0a28}\x{0a2a}-\x{0a30}\x{0a32}\x{0a33}\x{0a35}\x{0a36}\x{0a38}\x{0a39}\x{0a59}-\x{0a5c}\x{0a5e}\x{0a72}-\x{0a74}\x{0a85}-\x{0a8d}\x{0a8f}-\x{0a91}\x{0a93}-\x{0aa8}\x{0aaa}-\x{0ab0}\x{0ab2}\x{0ab3}\x{0ab5}-\x{0ab9}\x{0abd}\x{0ad0}\x{0ae0}\x{0ae1}\x{0b05}-\x{0b0c}\x{0b0f}\x{0b10}\x{0b13}-\x{0b28}\x{0b2a}-\x{0b30}\x{0b32}\x{0b33}\x{0b35}-\x{0b39}\x{0b3d}\x{0b5c}\x{0b5d}\x{0b5f}-\x{0b61}\x{0b71}\x{0b83}\x{0b85}-\x{0b8a}\x{0b8e}-\x{0b90}\x{0b92}-\x{0b95}\x{0b99}\x{0b9a}\x{0b9c}\x{0b9e}\x{0b9f}\x{0ba3}\x{0ba4}\x{0ba8}-\x{0baa}\x{0bae}-\x{0bb9}\x{0bd0}\x{0c05}-\x{0c0c}\x{0c0e}-\x{0c10}\x{0c12}-\x{0c28}\x{0c2a}-\x{0c33}\x{0c35}-\x{0c39}\x{0c3d}\x{0c58}\x{0c59}\x{0c60}\x{0c61}\x{0c85}-\x{0c8c}\x{0c8e}-\x{0c90}\x{0c92}-\x{0ca8}\x{0caa}-\x{0cb3}\x{0cb5}-\x{0cb9}\x{0cbd}\x{0cde}\x{0ce0}\x{0ce1}\x{0cf1}\x{0cf2}\x{0d05}-\x{0d0c}\x{0d0e}-\x{0d10}\x{0d12}-\x{0d3a}\x{0d3d}\x{0d4e}\x{0d60}\x{0d61}\x{0d7a}-\x{0d7f}\x{0d85}-\x{0d96}\x{0d9a}-\x{0db1}\x{0db3}-\x{0dbb}\x{0dbd}\x{0dc0}-\x{0dc6}\x{0e01}-\x{0e30}\x{0e32}\x{0e33}\x{0e40}-\x{0e46}\x{0e81}\x{0e82}\x{0e84}\x{0e87}\x{0e88}\x{0e8a}\x{0e8d}\x{0e94}-\x{0e97}\x{0e99}-\x{0e9f}\x{0ea1}-\x{0ea3}\x{0ea5}\x{0ea7}\x{0eaa}\x{0eab}\x{0ead}-\x{0eb0}\x{0eb2}\x{0eb3}\x{0ebd}\x{0ec0}-\x{0ec4}\x{0ec6}\x{0edc}-\x{0edf}\x{0f00}\x{0f40}-\x{0f47}\x{0f49}-\x{0f6c}\x{0f88}-\x{0f8c}\x{1000}-\x{102a}\x{103f}\x{1050}-\x{1055}\x{105a}-\x{105d}\x{1061}\x{1065}\x{1066}\x{106e}-\x{1070}\x{1075}-\x{1081}\x{108e}\x{10a0}-\x{10c5}\x{10c7}\x{10cd}\x{10d0}-\x{10fa}\x{10fc}-\x{1248}\x{124a}-\x{124d}\x{1250}-\x{1256}\x{1258}\x{125a}-\x{125d}\x{1260}-\x{1288}\x{128a}-\x{128d}\x{1290}-\x{12b0}\x{12b2}-\x{12b5}\x{12b8}-\x{12be}\x{12c0}\x{12c2}-\x{12c5}\x{12c8}-\x{12d6}\x{12d8}-\x{1310}\x{1312}-\x{1315}\x{1318}-\x{135a}\x{1380}-\x{138f}\x{13a0}-\x{13f4}\x{1401}-\x{166c}\x{166f}-\x{167f}\x{1681}-\x{169a}\x{16a0}-\x{16ea}\x{16ee}-\x{16f0}\x{1700}-\x{170c}\x{170e}-\x{1711}\x{1720}-\x{1731}\x{1740}-\x{1751}\x{1760}-\x{176c}\x{176e}-\x{1770}\x{1780}-\x{17b3}\x{17d7}\x{17dc}\x{1820}-\x{1877}\x{1880}-\x{18a8}\x{18aa}\x{18b0}-\x{18f5}\x{1900}-\x{191c}\x{1950}-\x{196d}\x{1970}-\x{1974}\x{1980}-\x{19ab}\x{19c1}-\x{19c7}\x{1a00}-\x{1a16}\x{1a20}-\x{1a54}\x{1aa7}\x{1b05}-\x{1b33}\x{1b45}-\x{1b4b}\x{1b83}-\x{1ba0}\x{1bae}\x{1baf}\x{1bba}-\x{1be5}\x{1c00}-\x{1c23}\x{1c4d}-\x{1c4f}\x{1c5a}-\x{1c7d}\x{1ce9}-\x{1cec}\x{1cee}-\x{1cf1}\x{1cf5}\x{1cf6}\x{1d00}-\x{1dbf}\x{1e00}-\x{1f15}\x{1f18}-\x{1f1d}\x{1f20}-\x{1f45}\x{1f48}-\x{1f4d}\x{1f50}-\x{1f57}\x{1f59}\x{1f5b}\x{1f5d}\x{1f5f}-\x{1f7d}\x{1f80}-\x{1fb4}\x{1fb6}-\x{1fbc}\x{1fbe}\x{1fc2}-\x{1fc4}\x{1fc6}-\x{1fcc}\x{1fd0}-\x{1fd3}\x{1fd6}-\x{1fdb}\x{1fe0}-\x{1fec}\x{1ff2}-\x{1ff4}\x{1ff6}-\x{1ffc}\x{2071}\x{207f}\x{2090}-\x{209c}\x{2102}\x{2107}\x{210a}-\x{2113}\x{2115}\x{2119}-\x{211d}\x{2124}\x{2126}\x{2128}\x{212a}-\x{212d}\x{212f}-\x{2139}\x{213c}-\x{213f}\x{2145}-\x{2149}\x{214e}\x{2160}-\x{2188}\x{2c00}-\x{2c2e}\x{2c30}-\x{2c5e}\x{2c60}-\x{2ce4}\x{2ceb}-\x{2cee}\x{2cf2}\x{2cf3}\x{2d00}-\x{2d25}\x{2d27}\x{2d2d}\x{2d30}-\x{2d67}\x{2d6f}\x{2d80}-\x{2d96}\x{2da0}-\x{2da6}\x{2da8}-\x{2dae}\x{2db0}-\x{2db6}\x{2db8}-\x{2dbe}\x{2dc0}-\x{2dc6}\x{2dc8}-\x{2dce}\x{2dd0}-\x{2dd6}\x{2dd8}-\x{2dde}\x{2e2f}\x{3005}-\x{3007}\x{3021}-\x{3029}\x{3031}-\x{3035}\x{3038}-\x{303c}\x{3041}-\x{3096}\x{309d}-\x{309f}\x{30a1}-\x{30fa}\x{30fc}-\x{30ff}\x{3105}-\x{312d}\x{3131}-\x{318e}\x{31a0}-\x{31ba}\x{31f0}-\x{31ff}\x{3400}-\x{4db5}\x{4e00}-\x{9fcc}\x{a000}-\x{a48c}\x{a4d0}-\x{a4fd}\x{a500}-\x{a60c}\x{a610}-\x{a61f}\x{a62a}\x{a62b}\x{a640}-\x{a66e}\x{a67f}-\x{a697}\x{a6a0}-\x{a6ef}\x{a717}-\x{a71f}\x{a722}-\x{a788}\x{a78b}-\x{a78e}\x{a790}-\x{a793}\x{a7a0}-\x{a7aa}\x{a7f8}-\x{a801}\x{a803}-\x{a805}\x{a807}-\x{a80a}\x{a80c}-\x{a822}\x{a840}-\x{a873}\x{a882}-\x{a8b3}\x{a8f2}-\x{a8f7}\x{a8fb}\x{a90a}-\x{a925}\x{a930}-\x{a946}\x{a960}-\x{a97c}\x{a984}-\x{a9b2}\x{a9cf}\x{aa00}-\x{aa28}\x{aa40}-\x{aa42}\x{aa44}-\x{aa4b}\x{aa60}-\x{aa76}\x{aa7a}\x{aa80}-\x{aaaf}\x{aab1}\x{aab5}\x{aab6}\x{aab9}-\x{aabd}\x{aac0}\x{aac2}\x{aadb}-\x{aadd}\x{aae0}-\x{aaea}\x{aaf2}-\x{aaf4}\x{ab01}-\x{ab06}\x{ab09}-\x{ab0e}\x{ab11}-\x{ab16}\x{ab20}-\x{ab26}\x{ab28}-\x{ab2e}\x{abc0}-\x{abe2}\x{ac00}-\x{d7a3}\x{d7b0}-\x{d7c6}\x{d7cb}-\x{d7fb}\x{f900}-\x{fa6d}\x{fa70}-\x{fad9}\x{fb00}-\x{fb06}\x{fb13}-\x{fb17}\x{fb1d}\x{fb1f}-\x{fb28}\x{fb2a}-\x{fb36}\x{fb38}-\x{fb3c}\x{fb3e}\x{fb40}\x{fb41}\x{fb43}\x{fb44}\x{fb46}-\x{fbb1}\x{fbd3}-\x{fd3d}\x{fd50}-\x{fd8f}\x{fd92}-\x{fdc7}\x{fdf0}-\x{fdfb}\x{fe70}-\x{fe74}\x{fe76}-\x{fefc}\x{ff21}-\x{ff3a}\x{ff41}-\x{ff5a}\x{ff66}-\x{ffbe}\x{ffc2}-\x{ffc7}\x{ffca}-\x{ffcf}\x{ffd2}-\x{ffd7}\x{ffda}-\x{ffdc}][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{02c1}\x{02c6}-\x{02d1}\x{02e0}-\x{02e4}\x{02ec}\x{02ee}\x{0370}-\x{0374}\x{0376}\x{0377}\x{037a}-\x{037d}\x{0386}\x{0388}-\x{038a}\x{038c}\x{038e}-\x{03a1}\x{03a3}-\x{03f5}\x{03f7}-\x{0481}\x{048a}-\x{0527}\x{0531}-\x{0556}\x{0559}\x{0561}-\x{0587}\x{05d0}-\x{05ea}\x{05f0}-\x{05f2}\x{0620}-\x{064a}\x{066e}\x{066f}\x{0671}-\x{06d3}\x{06d5}\x{06e5}\x{06e6}\x{06ee}\x{06ef}\x{06fa}-\x{06fc}\x{06ff}\x{0710}\x{0712}-\x{072f}\x{074d}-\x{07a5}\x{07b1}\x{07ca}-\x{07ea}\x{07f4}\x{07f5}\x{07fa}\x{0800}-\x{0815}\x{081a}\x{0824}\x{0828}\x{0840}-\x{0858}\x{08a0}\x{08a2}-\x{08ac}\x{0904}-\x{0939}\x{093d}\x{0950}\x{0958}-\x{0961}\x{0971}-\x{0977}\x{0979}-\x{097f}\x{0985}-\x{098c}\x{098f}\x{0990}\x{0993}-\x{09a8}\x{09aa}-\x{09b0}\x{09b2}\x{09b6}-\x{09b9}\x{09bd}\x{09ce}\x{09dc}\x{09dd}\x{09df}-\x{09e1}\x{09f0}\x{09f1}\x{0a05}-\x{0a0a}\x{0a0f}\x{0a10}\x{0a13}-\x{0a28}\x{0a2a}-\x{0a30}\x{0a32}\x{0a33}\x{0a35}\x{0a36}\x{0a38}\x{0a39}\x{0a59}-\x{0a5c}\x{0a5e}\x{0a72}-\x{0a74}\x{0a85}-\x{0a8d}\x{0a8f}-\x{0a91}\x{0a93}-\x{0aa8}\x{0aaa}-\x{0ab0}\x{0ab2}\x{0ab3}\x{0ab5}-\x{0ab9}\x{0abd}\x{0ad0}\x{0ae0}\x{0ae1}\x{0b05}-\x{0b0c}\x{0b0f}\x{0b10}\x{0b13}-\x{0b28}\x{0b2a}-\x{0b30}\x{0b32}\x{0b33}\x{0b35}-\x{0b39}\x{0b3d}\x{0b5c}\x{0b5d}\x{0b5f}-\x{0b61}\x{0b71}\x{0b83}\x{0b85}-\x{0b8a}\x{0b8e}-\x{0b90}\x{0b92}-\x{0b95}\x{0b99}\x{0b9a}\x{0b9c}\x{0b9e}\x{0b9f}\x{0ba3}\x{0ba4}\x{0ba8}-\x{0baa}\x{0bae}-\x{0bb9}\x{0bd0}\x{0c05}-\x{0c0c}\x{0c0e}-\x{0c10}\x{0c12}-\x{0c28}\x{0c2a}-\x{0c33}\x{0c35}-\x{0c39}\x{0c3d}\x{0c58}\x{0c59}\x{0c60}\x{0c61}\x{0c85}-\x{0c8c}\x{0c8e}-\x{0c90}\x{0c92}-\x{0ca8}\x{0caa}-\x{0cb3}\x{0cb5}-\x{0cb9}\x{0cbd}\x{0cde}\x{0ce0}\x{0ce1}\x{0cf1}\x{0cf2}\x{0d05}-\x{0d0c}\x{0d0e}-\x{0d10}\x{0d12}-\x{0d3a}\x{0d3d}\x{0d4e}\x{0d60}\x{0d61}\x{0d7a}-\x{0d7f}\x{0d85}-\x{0d96}\x{0d9a}-\x{0db1}\x{0db3}-\x{0dbb}\x{0dbd}\x{0dc0}-\x{0dc6}\x{0e01}-\x{0e30}\x{0e32}\x{0e33}\x{0e40}-\x{0e46}\x{0e81}\x{0e82}\x{0e84}\x{0e87}\x{0e88}\x{0e8a}\x{0e8d}\x{0e94}-\x{0e97}\x{0e99}-\x{0e9f}\x{0ea1}-\x{0ea3}\x{0ea5}\x{0ea7}\x{0eaa}\x{0eab}\x{0ead}-\x{0eb0}\x{0eb2}\x{0eb3}\x{0ebd}\x{0ec0}-\x{0ec4}\x{0ec6}\x{0edc}-\x{0edf}\x{0f00}\x{0f40}-\x{0f47}\x{0f49}-\x{0f6c}\x{0f88}-\x{0f8c}\x{1000}-\x{102a}\x{103f}\x{1050}-\x{1055}\x{105a}-\x{105d}\x{1061}\x{1065}\x{1066}\x{106e}-\x{1070}\x{1075}-\x{1081}\x{108e}\x{10a0}-\x{10c5}\x{10c7}\x{10cd}\x{10d0}-\x{10fa}\x{10fc}-\x{1248}\x{124a}-\x{124d}\x{1250}-\x{1256}\x{1258}\x{125a}-\x{125d}\x{1260}-\x{1288}\x{128a}-\x{128d}\x{1290}-\x{12b0}\x{12b2}-\x{12b5}\x{12b8}-\x{12be}\x{12c0}\x{12c2}-\x{12c5}\x{12c8}-\x{12d6}\x{12d8}-\x{1310}\x{1312}-\x{1315}\x{1318}-\x{135a}\x{1380}-\x{138f}\x{13a0}-\x{13f4}\x{1401}-\x{166c}\x{166f}-\x{167f}\x{1681}-\x{169a}\x{16a0}-\x{16ea}\x{16ee}-\x{16f0}\x{1700}-\x{170c}\x{170e}-\x{1711}\x{1720}-\x{1731}\x{1740}-\x{1751}\x{1760}-\x{176c}\x{176e}-\x{1770}\x{1780}-\x{17b3}\x{17d7}\x{17dc}\x{1820}-\x{1877}\x{1880}-\x{18a8}\x{18aa}\x{18b0}-\x{18f5}\x{1900}-\x{191c}\x{1950}-\x{196d}\x{1970}-\x{1974}\x{1980}-\x{19ab}\x{19c1}-\x{19c7}\x{1a00}-\x{1a16}\x{1a20}-\x{1a54}\x{1aa7}\x{1b05}-\x{1b33}\x{1b45}-\x{1b4b}\x{1b83}-\x{1ba0}\x{1bae}\x{1baf}\x{1bba}-\x{1be5}\x{1c00}-\x{1c23}\x{1c4d}-\x{1c4f}\x{1c5a}-\x{1c7d}\x{1ce9}-\x{1cec}\x{1cee}-\x{1cf1}\x{1cf5}\x{1cf6}\x{1d00}-\x{1dbf}\x{1e00}-\x{1f15}\x{1f18}-\x{1f1d}\x{1f20}-\x{1f45}\x{1f48}-\x{1f4d}\x{1f50}-\x{1f57}\x{1f59}\x{1f5b}\x{1f5d}\x{1f5f}-\x{1f7d}\x{1f80}-\x{1fb4}\x{1fb6}-\x{1fbc}\x{1fbe}\x{1fc2}-\x{1fc4}\x{1fc6}-\x{1fcc}\x{1fd0}-\x{1fd3}\x{1fd6}-\x{1fdb}\x{1fe0}-\x{1fec}\x{1ff2}-\x{1ff4}\x{1ff6}-\x{1ffc}\x{2071}\x{207f}\x{2090}-\x{209c}\x{2102}\x{2107}\x{210a}-\x{2113}\x{2115}\x{2119}-\x{211d}\x{2124}\x{2126}\x{2128}\x{212a}-\x{212d}\x{212f}-\x{2139}\x{213c}-\x{213f}\x{2145}-\x{2149}\x{214e}\x{2160}-\x{2188}\x{2c00}-\x{2c2e}\x{2c30}-\x{2c5e}\x{2c60}-\x{2ce4}\x{2ceb}-\x{2cee}\x{2cf2}\x{2cf3}\x{2d00}-\x{2d25}\x{2d27}\x{2d2d}\x{2d30}-\x{2d67}\x{2d6f}\x{2d80}-\x{2d96}\x{2da0}-\x{2da6}\x{2da8}-\x{2dae}\x{2db0}-\x{2db6}\x{2db8}-\x{2dbe}\x{2dc0}-\x{2dc6}\x{2dc8}-\x{2dce}\x{2dd0}-\x{2dd6}\x{2dd8}-\x{2dde}\x{2e2f}\x{3005}-\x{3007}\x{3021}-\x{3029}\x{3031}-\x{3035}\x{3038}-\x{303c}\x{3041}-\x{3096}\x{309d}-\x{309f}\x{30a1}-\x{30fa}\x{30fc}-\x{30ff}\x{3105}-\x{312d}\x{3131}-\x{318e}\x{31a0}-\x{31ba}\x{31f0}-\x{31ff}\x{3400}-\x{4db5}\x{4e00}-\x{9fcc}\x{a000}-\x{a48c}\x{a4d0}-\x{a4fd}\x{a500}-\x{a60c}\x{a610}-\x{a61f}\x{a62a}\x{a62b}\x{a640}-\x{a66e}\x{a67f}-\x{a697}\x{a6a0}-\x{a6ef}\x{a717}-\x{a71f}\x{a722}-\x{a788}\x{a78b}-\x{a78e}\x{a790}-\x{a793}\x{a7a0}-\x{a7aa}\x{a7f8}-\x{a801}\x{a803}-\x{a805}\x{a807}-\x{a80a}\x{a80c}-\x{a822}\x{a840}-\x{a873}\x{a882}-\x{a8b3}\x{a8f2}-\x{a8f7}\x{a8fb}\x{a90a}-\x{a925}\x{a930}-\x{a946}\x{a960}-\x{a97c}\x{a984}-\x{a9b2}\x{a9cf}\x{aa00}-\x{aa28}\x{aa40}-\x{aa42}\x{aa44}-\x{aa4b}\x{aa60}-\x{aa76}\x{aa7a}\x{aa80}-\x{aaaf}\x{aab1}\x{aab5}\x{aab6}\x{aab9}-\x{aabd}\x{aac0}\x{aac2}\x{aadb}-\x{aadd}\x{aae0}-\x{aaea}\x{aaf2}-\x{aaf4}\x{ab01}-\x{ab06}\x{ab09}-\x{ab0e}\x{ab11}-\x{ab16}\x{ab20}-\x{ab26}\x{ab28}-\x{ab2e}\x{abc0}-\x{abe2}\x{ac00}-\x{d7a3}\x{d7b0}-\x{d7c6}\x{d7cb}-\x{d7fb}\x{f900}-\x{fa6d}\x{fa70}-\x{fad9}\x{fb00}-\x{fb06}\x{fb13}-\x{fb17}\x{fb1d}\x{fb1f}-\x{fb28}\x{fb2a}-\x{fb36}\x{fb38}-\x{fb3c}\x{fb3e}\x{fb40}\x{fb41}\x{fb43}\x{fb44}\x{fb46}-\x{fbb1}\x{fbd3}-\x{fd3d}\x{fd50}-\x{fd8f}\x{fd92}-\x{fdc7}\x{fdf0}-\x{fdfb}\x{fe70}-\x{fe74}\x{fe76}-\x{fefc}\x{ff21}-\x{ff3a}\x{ff41}-\x{ff5a}\x{ff66}-\x{ffbe}\x{ffc2}-\x{ffc7}\x{ffca}-\x{ffcf}\x{ffd2}-\x{ffd7}\x{ffda}-\x{ffdc}0-9\x{0300}-\x{036f}\x{0483}-\x{0487}\x{0591}-\x{05bd}\x{05bf}\x{05c1}\x{05c2}\x{05c4}\x{05c5}\x{05c7}\x{0610}-\x{061a}\x{064b}-\x{0669}\x{0670}\x{06d6}-\x{06dc}\x{06df}-\x{06e4}\x{06e7}\x{06e8}\x{06ea}-\x{06ed}\x{06f0}-\x{06f9}\x{0711}\x{0730}-\x{074a}\x{07a6}-\x{07b0}\x{07c0}-\x{07c9}\x{07eb}-\x{07f3}\x{0816}-\x{0819}\x{081b}-\x{0823}\x{0825}-\x{0827}\x{0829}-\x{082d}\x{0859}-\x{085b}\x{08e4}-\x{08fe}\x{0900}-\x{0903}\x{093a}-\x{093c}\x{093e}-\x{094f}\x{0951}-\x{0957}\x{0962}\x{0963}\x{0966}-\x{096f}\x{0981}-\x{0983}\x{09bc}\x{09be}-\x{09c4}\x{09c7}\x{09c8}\x{09cb}-\x{09cd}\x{09d7}\x{09e2}\x{09e3}\x{09e6}-\x{09ef}\x{0a01}-\x{0a03}\x{0a3c}\x{0a3e}-\x{0a42}\x{0a47}\x{0a48}\x{0a4b}-\x{0a4d}\x{0a51}\x{0a66}-\x{0a71}\x{0a75}\x{0a81}-\x{0a83}\x{0abc}\x{0abe}-\x{0ac5}\x{0ac7}-\x{0ac9}\x{0acb}-\x{0acd}\x{0ae2}\x{0ae3}\x{0ae6}-\x{0aef}\x{0b01}-\x{0b03}\x{0b3c}\x{0b3e}-\x{0b44}\x{0b47}\x{0b48}\x{0b4b}-\x{0b4d}\x{0b56}\x{0b57}\x{0b62}\x{0b63}\x{0b66}-\x{0b6f}\x{0b82}\x{0bbe}-\x{0bc2}\x{0bc6}-\x{0bc8}\x{0bca}-\x{0bcd}\x{0bd7}\x{0be6}-\x{0bef}\x{0c01}-\x{0c03}\x{0c3e}-\x{0c44}\x{0c46}-\x{0c48}\x{0c4a}-\x{0c4d}\x{0c55}\x{0c56}\x{0c62}\x{0c63}\x{0c66}-\x{0c6f}\x{0c82}\x{0c83}\x{0cbc}\x{0cbe}-\x{0cc4}\x{0cc6}-\x{0cc8}\x{0cca}-\x{0ccd}\x{0cd5}\x{0cd6}\x{0ce2}\x{0ce3}\x{0ce6}-\x{0cef}\x{0d02}\x{0d03}\x{0d3e}-\x{0d44}\x{0d46}-\x{0d48}\x{0d4a}-\x{0d4d}\x{0d57}\x{0d62}\x{0d63}\x{0d66}-\x{0d6f}\x{0d82}\x{0d83}\x{0dca}\x{0dcf}-\x{0dd4}\x{0dd6}\x{0dd8}-\x{0ddf}\x{0df2}\x{0df3}\x{0e31}\x{0e34}-\x{0e3a}\x{0e47}-\x{0e4e}\x{0e50}-\x{0e59}\x{0eb1}\x{0eb4}-\x{0eb9}\x{0ebb}\x{0ebc}\x{0ec8}-\x{0ecd}\x{0ed0}-\x{0ed9}\x{0f18}\x{0f19}\x{0f20}-\x{0f29}\x{0f35}\x{0f37}\x{0f39}\x{0f3e}\x{0f3f}\x{0f71}-\x{0f84}\x{0f86}\x{0f87}\x{0f8d}-\x{0f97}\x{0f99}-\x{0fbc}\x{0fc6}\x{102b}-\x{103e}\x{1040}-\x{1049}\x{1056}-\x{1059}\x{105e}-\x{1060}\x{1062}-\x{1064}\x{1067}-\x{106d}\x{1071}-\x{1074}\x{1082}-\x{108d}\x{108f}-\x{109d}\x{135d}-\x{135f}\x{1712}-\x{1714}\x{1732}-\x{1734}\x{1752}\x{1753}\x{1772}\x{1773}\x{17b4}-\x{17d3}\x{17dd}\x{17e0}-\x{17e9}\x{180b}-\x{180d}\x{1810}-\x{1819}\x{18a9}\x{1920}-\x{192b}\x{1930}-\x{193b}\x{1946}-\x{194f}\x{19b0}-\x{19c0}\x{19c8}\x{19c9}\x{19d0}-\x{19d9}\x{1a17}-\x{1a1b}\x{1a55}-\x{1a5e}\x{1a60}-\x{1a7c}\x{1a7f}-\x{1a89}\x{1a90}-\x{1a99}\x{1b00}-\x{1b04}\x{1b34}-\x{1b44}\x{1b50}-\x{1b59}\x{1b6b}-\x{1b73}\x{1b80}-\x{1b82}\x{1ba1}-\x{1bad}\x{1bb0}-\x{1bb9}\x{1be6}-\x{1bf3}\x{1c24}-\x{1c37}\x{1c40}-\x{1c49}\x{1c50}-\x{1c59}\x{1cd0}-\x{1cd2}\x{1cd4}-\x{1ce8}\x{1ced}\x{1cf2}-\x{1cf4}\x{1dc0}-\x{1de6}\x{1dfc}-\x{1dff}\x{200c}\x{200d}\x{203f}\x{2040}\x{2054}\x{20d0}-\x{20dc}\x{20e1}\x{20e5}-\x{20f0}\x{2cef}-\x{2cf1}\x{2d7f}\x{2de0}-\x{2dff}\x{302a}-\x{302f}\x{3099}\x{309a}\x{a620}-\x{a629}\x{a66f}\x{a674}-\x{a67d}\x{a69f}\x{a6f0}\x{a6f1}\x{a802}\x{a806}\x{a80b}\x{a823}-\x{a827}\x{a880}\x{a881}\x{a8b4}-\x{a8c4}\x{a8d0}-\x{a8d9}\x{a8e0}-\x{a8f1}\x{a900}-\x{a909}\x{a926}-\x{a92d}\x{a947}-\x{a953}\x{a980}-\x{a983}\x{a9b3}-\x{a9c0}\x{a9d0}-\x{a9d9}\x{aa29}-\x{aa36}\x{aa43}\x{aa4c}\x{aa4d}\x{aa50}-\x{aa59}\x{aa7b}\x{aab0}\x{aab2}-\x{aab4}\x{aab7}\x{aab8}\x{aabe}\x{aabf}\x{aac1}\x{aaeb}-\x{aaef}\x{aaf5}\x{aaf6}\x{abe3}-\x{abea}\x{abec}\x{abed}\x{abf0}-\x{abf9}\x{fb1e}\x{fe00}-\x{fe0f}\x{fe20}-\x{fe26}\x{fe33}\x{fe34}\x{fe4d}-\x{fe4f}\x{ff10}-\x{ff19}\x{ff3f}]*\b';

	/**
	 * Full list of JavaScript reserved words.
	 * Will be loaded from /data/js/keywords_reserved.txt.
	 *
	 * @see https://mathiasbynens.be/notes/reserved-keywords
	 *
	 * @var string[]
	 */
	protected $keywordsReserved = array();

	/**
	 * List of JavaScript reserved words that accept a <variable, value, ...>
	 * after them. Some end of lines are not the end of a statement, like with
	 * these keywords.
	 *
	 * E.g.: we shouldn't insert a ; after this else
	 * else
	 *     console.log('this is quite fine')
	 *
	 * Will be loaded from /data/js/keywords_before.txt
	 *
	 * @var string[]
	 */
	protected $keywordsBefore = array();

	/**
	 * List of JavaScript reserved words that accept a <variable, value, ...>
	 * before them. Some end of lines are not the end of a statement, like when
	 * continued by one of these keywords on the newline.
	 *
	 * E.g.: we shouldn't insert a ; before this instanceof
	 * variable
	 *     instanceof String
	 *
	 * Will be loaded from /data/js/keywords_after.txt
	 *
	 * @var string[]
	 */
	protected $keywordsAfter = array();

	/**
	 * List of all JavaScript operators.
	 *
	 * Will be loaded from /data/js/operators.txt
	 *
	 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators
	 *
	 * @var string[]
	 */
	protected $operators = array();

	/**
	 * List of JavaScript operators that accept a <variable, value, ...> after
	 * them. Some end of lines are not the end of a statement, like with these
	 * operators.
	 *
	 * Note: Most operators are fine, we've only removed ++ and --.
	 * ++ & -- have to be joined with the value they're in-/decrementing.
	 *
	 * Will be loaded from /data/js/operators_before.txt
	 *
	 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators
	 *
	 * @var string[]
	 */
	protected $operatorsBefore = array();

	/**
	 * List of JavaScript operators that accept a <variable, value, ...> before
	 * them. Some end of lines are not the end of a statement, like when
	 * continued by one of these operators on the newline.
	 *
	 * Note: Most operators are fine, we've only removed ), ], ++, --, ! and ~.
	 * There can't be a newline separating ! or ~ and whatever it is negating.
	 * ++ & -- have to be joined with the value they're in-/decrementing.
	 * ) & ] are "special" in that they have lots or usecases. () for example
	 * is used for function calls, for grouping, in if () and for (), ...
	 *
	 * Will be loaded from /data/js/operators_after.txt
	 *
	 * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators
	 *
	 * @var string[]
	 */
	protected $operatorsAfter = array();

	public function __construct() {
		call_user_func_array( array( '\\LiteSpeed\\Lib\\CSS_JS_MIN\\Minify\\Minify', '__construct' ), func_get_args() );

		$dataDir                = __DIR__ . '/data/js/';
		$options                = FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES;
		$this->keywordsReserved = file( $dataDir . 'keywords_reserved.txt', $options );
		$this->keywordsBefore   = file( $dataDir . 'keywords_before.txt', $options );
		$this->keywordsAfter    = file( $dataDir . 'keywords_after.txt', $options );
		$this->operators        = file( $dataDir . 'operators.txt', $options );
		$this->operatorsBefore  = file( $dataDir . 'operators_before.txt', $options );
		$this->operatorsAfter   = file( $dataDir . 'operators_after.txt', $options );
	}

	/**
	 * Minify the data.
	 * Perform JS optimizations.
	 *
	 * @param string[optional] $path Path to write the data to
	 *
	 * @return string The minified data
	 */
	public function execute( $path = null ) {
		$content = '';

		/*
		 * Let's first take out strings, comments and regular expressions.
		 * All of these can contain JS code-like characters, and we should make
		 * sure any further magic ignores anything inside of these.
		 *
		 * Consider this example, where we should not strip any whitespace:
		 * var str = "a   test";
		 *
		 * Comments will be removed altogether, strings and regular expressions
		 * will be replaced by placeholder text, which we'll restore later.
		 */
		$this->extractStrings( '\'"`' );
		$this->stripComments();
		$this->extractRegex();

		// loop files
		foreach ( $this->data as $source => $js ) {
			// take out strings, comments & regex (for which we've registered
			// the regexes just a few lines earlier)
			$js = $this->replace( $js );

			$js = $this->propertyNotation( $js );
			$js = $this->shortenBools( $js );
			$js = $this->stripWhitespace( $js );

			// combine js: separating the scripts by a ;
			$content .= $js . ';';
		}

		// clean up leftover `;`s from the combination of multiple scripts
		$content = ltrim( $content, ';' );
		$content = (string) substr( $content, 0, -1 );

		/*
		 * Earlier, we extracted strings & regular expressions and replaced them
		 * with placeholder text. This will restore them.
		 */
		$content = $this->restoreExtractedData( $content );

		return $content;
	}

	/**
	 * Strip comments from source code.
	 */
	protected function stripComments() {
		$this->stripMultilineComments();

		// single-line comments
		$this->registerPattern( '/\/\/.*$/m', '' );
	}

	/**
	 * JS can have /-delimited regular expressions, like: /ab+c/.match(string).
	 *
	 * The content inside the regex can contain characters that may be confused
	 * for JS code: e.g. it could contain whitespace it needs to match & we
	 * don't want to strip whitespace in there.
	 *
	 * The regex can be pretty simple: we don't have to care about comments,
	 * (which also use slashes) because stripComments() will have stripped those
	 * already.
	 *
	 * This method will replace all string content with simple REGEX#
	 * placeholder text, so we've rid all regular expressions from characters
	 * that may be misinterpreted. Original regex content will be saved in
	 * $this->extracted and after doing all other minifying, we can restore the
	 * original content via restoreRegex()
	 */
	protected function extractRegex() {
		// PHP only supports $this inside anonymous functions since 5.4
		$minifier = $this;
		$callback = function ( $match ) use ( $minifier ) {
			$count                               = count( $minifier->extracted );
			$placeholder                         = '"' . $count . '"';
			$minifier->extracted[ $placeholder ] = $match[0];

			return $placeholder;
		};

		// match all chars except `/` and `\`
		// `\` is allowed though, along with whatever char follows (which is the
		// one being escaped)
		// this should allow all chars, except for an unescaped `/` (= the one
		// closing the regex)
		// then also ignore bare `/` inside `[]`, where they don't need to be
		// escaped: anything inside `[]` can be ignored safely
		$pattern = '\\/(?!\*)(?:[^\\[\\/\\\\\n\r]++|(?:\\\\.)++|(?:\\[(?:[^\\]\\\\\n\r]++|(?:\\\\.)++)++\\])++)++\\/[gimuy]*';

		// a regular expression can only be followed by a few operators or some
		// of the RegExp methods (a `\` followed by a variable or value is
		// likely part of a division, not a regex)
		$keywords             = array( 'do', 'in', 'new', 'else', 'throw', 'yield', 'delete', 'return', 'typeof' );
		$before               = '(^|[=:,;\+\-\*\?\/\}\(\{\[&\|!]|' . implode( '|', $keywords ) . ')\s*';
		$propertiesAndMethods = array(
			// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Properties_2
			'constructor',
			'flags',
			'global',
			'ignoreCase',
			'multiline',
			'source',
			'sticky',
			'unicode',
			// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Methods_2
			'compile(',
			'exec(',
			'test(',
			'toSource(',
			'toString(',
		);
		$delimiters           = array_fill( 0, count( $propertiesAndMethods ), '/' );
		$propertiesAndMethods = array_map( 'preg_quote', $propertiesAndMethods, $delimiters );
		$after                = '(?=\s*([\.,;:\)\}&\|+]|\/\/|$|\.(' . implode( '|', $propertiesAndMethods ) . ')))';
		$this->registerPattern( '/' . $before . '\K' . $pattern . $after . '/', $callback );

		// regular expressions following a `)` are rather annoying to detect...
		// quite often, `/` after `)` is a division operator & if it happens to
		// be followed by another one (or a comment), it is likely to be
		// confused for a regular expression
		// however, it's perfectly possible for a regex to follow a `)`: after
		// a single-line `if()`, `while()`, ... statement, for example
		// since, when they occur like that, they're always the start of a
		// statement, there's only a limited amount of ways they can be useful:
		// by calling the regex methods directly
		// if a regex following `)` is not followed by `.<property or method>`,
		// it's quite likely not a regex
		$before = '\)\s*';
		$after  = '(?=\s*\.(' . implode( '|', $propertiesAndMethods ) . '))';
		$this->registerPattern( '/' . $before . '\K' . $pattern . $after . '/', $callback );

		// 1 more edge case: a regex can be followed by a lot more operators or
		// keywords if there's a newline (ASI) in between, where the operator
		// actually starts a new statement
		// (https://github.com/matthiasmullie/minify/issues/56)
		$operators  = $this->getOperatorsForRegex( $this->operatorsBefore, '/' );
		$operators += $this->getOperatorsForRegex( $this->keywordsReserved, '/' );
		$after      = '(?=\s*\n\s*(' . implode( '|', $operators ) . '))';
		$this->registerPattern( '/' . $pattern . $after . '/', $callback );
	}

	/**
	 * Strip whitespace.
	 *
	 * We won't strip *all* whitespace, but as much as possible. The thing that
	 * we'll preserve are newlines we're unsure about.
	 * JavaScript doesn't require statements to be terminated with a semicolon.
	 * It will automatically fix missing semicolons with ASI (automatic semi-
	 * colon insertion) at the end of line causing errors (without semicolon.)
	 *
	 * Because it's sometimes hard to tell if a newline is part of a statement
	 * that should be terminated or not, we'll just leave some of them alone.
	 *
	 * @param string $content The content to strip the whitespace for
	 *
	 * @return string
	 */
	protected function stripWhitespace( $content ) {
		// uniform line endings, make them all line feed
		$content = str_replace( array( "\r\n", "\r" ), "\n", $content );

		// collapse all non-line feed whitespace into a single space
		$content = preg_replace( '/[^\S\n]+/', ' ', $content );

		// strip leading & trailing whitespace
		$content = str_replace( array( " \n", "\n " ), "\n", $content );

		// collapse consecutive line feeds into just 1
		$content = preg_replace( '/\n+/', "\n", $content );

		$operatorsBefore = $this->getOperatorsForRegex( $this->operatorsBefore, '/' );
		$operatorsAfter  = $this->getOperatorsForRegex( $this->operatorsAfter, '/' );
		$operators       = $this->getOperatorsForRegex( $this->operators, '/' );
		$keywordsBefore  = $this->getKeywordsForRegex( $this->keywordsBefore, '/' );
		$keywordsAfter   = $this->getKeywordsForRegex( $this->keywordsAfter, '/' );

		// strip whitespace that ends in (or next line begin with) an operator
		// that allows statements to be broken up over multiple lines
		unset( $operatorsBefore['+'], $operatorsBefore['-'], $operatorsAfter['+'], $operatorsAfter['-'] );
		$content = preg_replace(
			array(
				'/(' . implode( '|', $operatorsBefore ) . ')\s+/',
				'/\s+(' . implode( '|', $operatorsAfter ) . ')/',
			),
			'\\1',
			$content
		);

		// make sure + and - can't be mistaken for, or joined into ++ and --
		$content = preg_replace(
			array(
				'/(?<![\+\-])\s*([\+\-])(?![\+\-])/',
				'/(?<![\+\-])([\+\-])\s*(?![\+\-])/',
			),
			'\\1',
			$content
		);

		// collapse whitespace around reserved words into single space
		$content = preg_replace( '/(^|[;\}\s])\K(' . implode( '|', $keywordsBefore ) . ')\s+/', '\\2 ', $content );
		$content = preg_replace( '/\s+(' . implode( '|', $keywordsAfter ) . ')(?=([;\{\s]|$))/', ' \\1', $content );

		/*
		 * We didn't strip whitespace after a couple of operators because they
		 * could be used in different contexts and we can't be sure it's ok to
		 * strip the newlines. However, we can safely strip any non-line feed
		 * whitespace that follows them.
		 */
		$operatorsDiffBefore = array_diff( $operators, $operatorsBefore );
		$operatorsDiffAfter  = array_diff( $operators, $operatorsAfter );
		$content             = preg_replace( '/(' . implode( '|', $operatorsDiffBefore ) . ')[^\S\n]+/', '\\1', $content );
		$content             = preg_replace( '/[^\S\n]+(' . implode( '|', $operatorsDiffAfter ) . ')/', '\\1', $content );

		/*
		 * Whitespace after `return` can be omitted in a few occasions
		 * (such as when followed by a string or regex)
		 * Same for whitespace in between `)` and `{`, or between `{` and some
		 * keywords.
		 */
		$content = preg_replace( '/\breturn\s+(["\'\/\+\-])/', 'return$1', $content );
		$content = preg_replace( '/\)\s+\{/', '){', $content );
		$content = preg_replace( '/}\n(else|catch|finally)\b/', '}$1', $content );

		/*
		 * Get rid of double semicolons, except where they can be used like:
		 * "for(v=1,_=b;;)", "for(v=1;;v++)" or "for(;;ja||(ja=true))".
		 * I'll safeguard these double semicolons inside for-loops by
		 * temporarily replacing them with an invalid condition: they won't have
		 * a double semicolon and will be easy to spot to restore afterwards.
		 */
		$content = preg_replace( '/\bfor\(([^;]*);;([^;]*)\)/', 'for(\\1;-;\\2)', $content );
		$content = preg_replace( '/;+/', ';', $content );
		$content = preg_replace( '/\bfor\(([^;]*);-;([^;]*)\)/', 'for(\\1;;\\2)', $content );

		/*
		 * Next, we'll be removing all semicolons where ASI kicks in.
		 * for-loops however, can have an empty body (ending in only a
		 * semicolon), like: `for(i=1;i<3;i++);`, of `for(i in list);`
		 * Here, nothing happens during the loop; it's just used to keep
		 * increasing `i`. With that ; omitted, the next line would be expected
		 * to be the for-loop's body... Same goes for while loops.
		 * I'm going to double that semicolon (if any) so after the next line,
		 * which strips semicolons here & there, we're still left with this one.
		 * Note the special recursive construct in the three inner parts of the for:
		 * (\{([^\{\}]*(?-2))*[^\{\}]*\})? - it is intended to match inline
		 * functions bodies, e.g.: i<arr.map(function(e){return e}).length.
		 * Also note that the construct is applied only once and multiplied
		 * for each part of the for, otherwise it risks a catastrophic backtracking.
		 * The limitation is that it will not allow closures in more than one
		 * of the three parts for a specific for() case.
		 * REGEX throwing catastrophic backtracking: $content = preg_replace('/(for\([^;\{]*(\{([^\{\}]*(?-2))*[^\{\}]*\})?[^;\{]*;[^;\{]*(\{([^\{\}]*(?-2))*[^\{\}]*\})?[^;\{]*;[^;\{]*(\{([^\{\}]*(?-2))*[^\{\}]*\})?[^;\{]*\));(\}|$)/s', '\\1;;\\8', $content);
		 */
		$content = preg_replace( '/(for\((?:[^;\{]*|[^;\{]*function[^;\{]*(\{([^\{\}]*(?-2))*[^\{\}]*\})?[^;\{]*);[^;\{]*;[^;\{]*\));(\}|$)/s', '\\1;;\\4', $content );
		$content = preg_replace( '/(for\([^;\{]*;(?:[^;\{]*|[^;\{]*function[^;\{]*(\{([^\{\}]*(?-2))*[^\{\}]*\})?[^;\{]*);[^;\{]*\));(\}|$)/s', '\\1;;\\4', $content );
		$content = preg_replace( '/(for\([^;\{]*;[^;\{]*;(?:[^;\{]*|[^;\{]*function[^;\{]*(\{([^\{\}]*(?-2))*[^\{\}]*\})?[^;\{]*)\));(\}|$)/s', '\\1;;\\4', $content );

		$content = preg_replace( '/(for\([^;\{]+\s+in\s+[^;\{]+\));(\}|$)/s', '\\1;;\\2', $content );

		/*
		 * Do the same for the if's that don't have a body but are followed by ;}
		 */
		$content = preg_replace( '/(\bif\s*\([^{;]*\));\}/s', '\\1;;}', $content );

		/*
		 * Below will also keep `;` after a `do{}while();` along with `while();`
		 * While these could be stripped after do-while, detecting this
		 * distinction is cumbersome, so I'll play it safe and make sure `;`
		 * after any kind of `while` is kept.
		 */
		$content = preg_replace( '/(while\([^;\{]+\));(\}|$)/s', '\\1;;\\2', $content );

		/*
		 * We also can't strip empty else-statements. Even though they're
		 * useless and probably shouldn't be in the code in the first place, we
		 * shouldn't be stripping the `;` that follows it as it breaks the code.
		 * We can just remove those useless else-statements completely.
		 *
		 * @see https://github.com/matthiasmullie/minify/issues/91
		 */
		$content = preg_replace( '/else;/s', '', $content );

		/*
		 * We also don't really want to terminate statements followed by closing
		 * curly braces (which we've ignored completely up until now) or end-of-
		 * script: ASI will kick in here & we're all about minifying.
		 * Semicolons at beginning of the file don't make any sense either.
		 */
		$content = preg_replace( '/;(\}|$)/s', '\\1', $content );
		$content = ltrim( $content, ';' );

		// get rid of remaining whitespace af beginning/end
		return trim( $content );
	}

	/**
	 * We'll strip whitespace around certain operators with regular expressions.
	 * This will prepare the given array by escaping all characters.
	 *
	 * @param string[] $operators
	 * @param string   $delimiter
	 *
	 * @return string[]
	 */
	protected function getOperatorsForRegex( array $operators, $delimiter = '/' ) {
		// escape operators for use in regex
		$delimiters = array_fill( 0, count( $operators ), $delimiter );
		$escaped    = array_map( 'preg_quote', $operators, $delimiters );

		$operators = array_combine( $operators, $escaped );

		// ignore + & - for now, they'll get special treatment
		unset( $operators['+'], $operators['-'] );

		// dot can not just immediately follow a number; it can be confused for
		// decimal point, or calling a method on it, e.g. 42 .toString()
		$operators['.'] = '(?<![0-9]\s)\.';

		// don't confuse = with other assignment shortcuts (e.g. +=)
		$chars          = preg_quote( '+-*\=<>%&|', $delimiter );
		$operators['='] = '(?<![' . $chars . '])\=';

		return $operators;
	}

	/**
	 * We'll strip whitespace around certain keywords with regular expressions.
	 * This will prepare the given array by escaping all characters.
	 *
	 * @param string[] $keywords
	 * @param string   $delimiter
	 *
	 * @return string[]
	 */
	protected function getKeywordsForRegex( array $keywords, $delimiter = '/' ) {
		// escape keywords for use in regex
		$delimiter = array_fill( 0, count( $keywords ), $delimiter );
		$escaped   = array_map( 'preg_quote', $keywords, $delimiter );

		// add word boundaries
		array_walk(
			$keywords,
			function ( $value ) {
				return '\b' . $value . '\b';
			}
		);

		$keywords = array_combine( $keywords, $escaped );

		return $keywords;
	}

	/**
	 * Replaces all occurrences of array['key'] by array.key.
	 *
	 * @param string $content
	 *
	 * @return string
	 */
	protected function propertyNotation( $content ) {
		// PHP only supports $this inside anonymous functions since 5.4
		$minifier = $this;
		$keywords = $this->keywordsReserved;
		$callback = function ( $match ) use ( $minifier, $keywords ) {
			$property = trim( $minifier->extracted[ $match[1] ], '\'"' );

			/*
			 * Check if the property is a reserved keyword. In this context (as
			 * property of an object literal/array) it shouldn't matter, but IE8
			 * freaks out with "Expected identifier".
			 */
			if ( in_array( $property, $keywords ) ) {
				return $match[0];
			}

			/*
			 * See if the property is in a variable-like format (e.g.
			 * array['key-here'] can't be replaced by array.key-here since '-'
			 * is not a valid character there.
			 */
			if ( ! preg_match( '/^' . $minifier::REGEX_VARIABLE . '$/u', $property ) ) {
				return $match[0];
			}

			return '.' . $property;
		};

		/*
		 * Figure out if previous character is a variable name (of the array
		 * we want to use property notation on) - this is to make sure
		 * standalone ['value'] arrays aren't confused for keys-of-an-array.
		 * We can (and only have to) check the last character, because PHP's
		 * regex implementation doesn't allow unfixed-length look-behind
		 * assertions.
		 */
		preg_match( '/(\[[^\]]+\])[^\]]*$/', static::REGEX_VARIABLE, $previousChar );
		$previousChar = $previousChar[1];

		/*
		 * Make sure word preceding the ['value'] is not a keyword, e.g.
		 * return['x']. Because -again- PHP's regex implementation doesn't allow
		 * unfixed-length look-behind assertions, I'm just going to do a lot of
		 * separate look-behind assertions, one for each keyword.
		 */
		$keywords = $this->getKeywordsForRegex( $keywords );
		$keywords = '(?<!' . implode( ')(?<!', $keywords ) . ')';

		return preg_replace_callback( '/(?<=' . $previousChar . '|\])' . $keywords . '\[\s*(([\'"])[0-9]+\\2)\s*\]/u', $callback, $content );
	}

	/**
	 * Replaces true & false by !0 and !1.
	 *
	 * @param string $content
	 *
	 * @return string
	 */
	protected function shortenBools( $content ) {
		/*
		 * 'true' or 'false' could be used as property names (which may be
		 * followed by whitespace) - we must not replace those!
		 * Since PHP doesn't allow variable-length (to account for the
		 * whitespace) lookbehind assertions, I need to capture the leading
		 * character and check if it's a `.`
		 */
		$callback = function ( $match ) {
			if ( trim( $match[1] ) === '.' ) {
				return $match[0];
			}

			return $match[1] . ( $match[2] === 'true' ? '!0' : '!1' );
		};
		$content  = preg_replace_callback( '/(^|.\s*)\b(true|false)\b(?!:)/', $callback, $content );

		// for(;;) is exactly the same as while(true), but shorter :)
		$content = preg_replace( '/\bwhile\(!0\){/', 'for(;;){', $content );

		// now make sure we didn't turn any do ... while(true) into do ... for(;;)
		preg_match_all( '/\bdo\b/', $content, $dos, PREG_OFFSET_CAPTURE | PREG_SET_ORDER );

		// go backward to make sure positional offsets aren't altered when $content changes
		$dos = array_reverse( $dos );
		foreach ( $dos as $do ) {
			$offsetDo = $do[0][1];

			// find all `while` (now `for`) following `do`: one of those must be
			// associated with the `do` and be turned back into `while`
			preg_match_all( '/\bfor\(;;\)/', $content, $whiles, PREG_OFFSET_CAPTURE | PREG_SET_ORDER, $offsetDo );
			foreach ( $whiles as $while ) {
				$offsetWhile = $while[0][1];

				$open  = substr_count( $content, '{', $offsetDo, $offsetWhile - $offsetDo );
				$close = substr_count( $content, '}', $offsetDo, $offsetWhile - $offsetDo );
				if ( $open === $close ) {
					// only restore `while` if amount of `{` and `}` are the same;
					// otherwise, that `for` isn't associated with this `do`
					$content = substr_replace( $content, 'while(!0)', $offsetWhile, strlen( 'for(;;)' ) );
					break;
				}
			}
		}

		return $content;
	}
}
<?php
/**
 * css.cls.php - modified PHP implementation of Matthias Mullie's CSS minifier
 *
 * @author Matthias Mullie <minify@mullie.eu>
 * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
 * @license MIT License
 */

namespace LiteSpeed\Lib\CSS_JS_MIN\Minify;

use LiteSpeed\Lib\CSS_JS_MIN\Minify\Minify;
use LiteSpeed\Lib\CSS_JS_MIN\Minify\Exception\FileImportException;
use LiteSpeed\Lib\CSS_JS_MIN\PathConverter\Converter;
use LiteSpeed\Lib\CSS_JS_MIN\PathConverter\ConverterInterface;

defined( 'WPINC' ) || exit;

class CSS extends Minify {

	/**
	 * @var int maximum import size in kB
	 */
	protected $maxImportSize = 5;

	/**
	 * @var string[] valid import extensions
	 */
	protected $importExtensions = array(
		'gif'   => 'data:image/gif',
		'png'   => 'data:image/png',
		'jpe'   => 'data:image/jpeg',
		'jpg'   => 'data:image/jpeg',
		'jpeg'  => 'data:image/jpeg',
		'svg'   => 'data:image/svg+xml',
		'woff'  => 'data:application/x-font-woff',
		'woff2' => 'data:application/x-font-woff2',
		'avif'  => 'data:image/avif',
		'apng'  => 'data:image/apng',
		'webp'  => 'data:image/webp',
		'tif'   => 'image/tiff',
		'tiff'  => 'image/tiff',
		'xbm'   => 'image/x-xbitmap',
	);

	/**
	 * Set the maximum size if files to be imported.
	 *
	 * Files larger than this size (in kB) will not be imported into the CSS.
	 * Importing files into the CSS as data-uri will save you some connections,
	 * but we should only import relatively small decorative images so that our
	 * CSS file doesn't get too bulky.
	 *
	 * @param int $size Size in kB
	 */
	public function setMaxImportSize( $size ) {
		$this->maxImportSize = $size;
	}

	/**
	 * Set the type of extensions to be imported into the CSS (to save network
	 * connections).
	 * Keys of the array should be the file extensions & respective values
	 * should be the data type.
	 *
	 * @param string[] $extensions Array of file extensions
	 */
	public function setImportExtensions( array $extensions ) {
		$this->importExtensions = $extensions;
	}

	/**
	 * Move any import statements to the top.
	 *
	 * @param string $content Nearly finished CSS content
	 *
	 * @return string
	 */
	public function moveImportsToTop( $content ) {
		if ( preg_match_all( '/(;?)(@import (?<url>url\()?(?P<quotes>["\']?).+?(?P=quotes)(?(url)\)));?/', $content, $matches ) ) {
			// remove from content
			foreach ( $matches[0] as $import ) {
				$content = str_replace( $import, '', $content );
			}

			// add to top
			$content = implode( ';', $matches[2] ) . ';' . trim( $content, ';' );
		}

		return $content;
	}

	/**
	 * Combine CSS from import statements.
	 *
	 * \@import's will be loaded and their content merged into the original file,
	 * to save HTTP requests.
	 *
	 * @param string   $source  The file to combine imports for
	 * @param string   $content The CSS content to combine imports for
	 * @param string[] $parents Parent paths, for circular reference checks
	 *
	 * @return string
	 *
	 * @throws FileImportException
	 */
	protected function combineImports( $source, $content, $parents ) {
		$importRegexes = array(
			// @import url(xxx)
			'/
            # import statement
            @import

            # whitespace
            \s+

                # open url()
                url\(

                    # (optional) open path enclosure
                    (?P<quotes>["\']?)

                        # fetch path
                        (?P<path>.+?)

                    # (optional) close path enclosure
                    (?P=quotes)

                # close url()
                \)

                # (optional) trailing whitespace
                \s*

                # (optional) media statement(s)
                (?P<media>[^;]*)

                # (optional) trailing whitespace
                \s*

            # (optional) closing semi-colon
            ;?

            /ix',

			// @import 'xxx'
			'/

            # import statement
            @import

            # whitespace
            \s+

                # open path enclosure
                (?P<quotes>["\'])

                    # fetch path
                    (?P<path>.+?)

                # close path enclosure
                (?P=quotes)

                # (optional) trailing whitespace
                \s*

                # (optional) media statement(s)
                (?P<media>[^;]*)

                # (optional) trailing whitespace
                \s*

            # (optional) closing semi-colon
            ;?

            /ix',
		);

		// find all relative imports in css
		$matches = array();
		foreach ( $importRegexes as $importRegex ) {
			if ( preg_match_all( $importRegex, $content, $regexMatches, PREG_SET_ORDER ) ) {
				$matches = array_merge( $matches, $regexMatches );
			}
		}

		$search  = array();
		$replace = array();

		// loop the matches
		foreach ( $matches as $match ) {
			// get the path for the file that will be imported
			$importPath = dirname( $source ) . '/' . $match['path'];

			// only replace the import with the content if we can grab the
			// content of the file
			if ( ! $this->canImportByPath( $match['path'] ) || ! $this->canImportFile( $importPath ) ) {
				continue;
			}

			// check if current file was not imported previously in the same
			// import chain.
			if ( in_array( $importPath, $parents ) ) {
				throw new FileImportException( 'Failed to import file "' . $importPath . '": circular reference detected.' );
			}

			// grab referenced file & minify it (which may include importing
			// yet other @import statements recursively)
			$minifier = new self( $importPath );
			$minifier->setMaxImportSize( $this->maxImportSize );
			$minifier->setImportExtensions( $this->importExtensions );
			$importContent = $minifier->execute( $source, $parents );

			// check if this is only valid for certain media
			if ( ! empty( $match['media'] ) ) {
				$importContent = '@media ' . $match['media'] . '{' . $importContent . '}';
			}

			// add to replacement array
			$search[]  = $match[0];
			$replace[] = $importContent;
		}

		// replace the import statements
		return str_replace( $search, $replace, $content );
	}

	/**
	 * Import files into the CSS, base64 encoded.
	 *
	 * Included images @url(image.jpg) will be loaded and their content merged into the
	 * original file, to save HTTP requests.
	 *
	 * @param string $source  The file to import files for
	 * @param string $content The CSS content to import files for
	 *
	 * @return string
	 */
	protected function importFiles( $source, $content ) {
		$regex = '/url\((["\']?)(.+?)\\1\)/i';
		if ( $this->importExtensions && preg_match_all( $regex, $content, $matches, PREG_SET_ORDER ) ) {
			$search  = array();
			$replace = array();

			// loop the matches
			foreach ( $matches as $match ) {
				$extension = substr( strrchr( $match[2], '.' ), 1 );
				if ( $extension && ! array_key_exists( $extension, $this->importExtensions ) ) {
					continue;
				}

				// get the path for the file that will be imported
				$path = $match[2];
				$path = dirname( $source ) . '/' . $path;

				// only replace the import with the content if we're able to get
				// the content of the file, and it's relatively small
				if ( $this->canImportFile( $path ) && $this->canImportBySize( $path ) ) {
					// grab content && base64-ize
					$importContent = $this->load( $path );
					$importContent = base64_encode( $importContent );

					// build replacement
					$search[]  = $match[0];
					$replace[] = 'url(' . $this->importExtensions[ $extension ] . ';base64,' . $importContent . ')';
				}
			}

			// replace the import statements
			$content = str_replace( $search, $replace, $content );
		}

		return $content;
	}

	/**
	 * Minify the data.
	 * Perform CSS optimizations.
	 *
	 * @param string[optional] $path    Path to write the data to
	 * @param string[]         $parents Parent paths, for circular reference checks
	 *
	 * @return string The minified data
	 */
	public function execute( $path = null, $parents = array() ) {
		$content = '';

		// loop CSS data (raw data and files)
		foreach ( $this->data as $source => $css ) {
			/*
			 * Let's first take out strings & comments, since we can't just
			 * remove whitespace anywhere. If whitespace occurs inside a string,
			 * we should leave it alone. E.g.:
			 * p { content: "a   test" }
			 */
			$this->extractStrings();
			$this->stripComments();
			$this->extractMath();
			$this->extractCustomProperties();
			$css = $this->replace( $css );

			$css = $this->stripWhitespace( $css );
			$css = $this->convertLegacyColors( $css );
			$css = $this->cleanupModernColors( $css );
			$css = $this->shortenHEXColors( $css );
			$css = $this->shortenZeroes( $css );
			$css = $this->shortenFontWeights( $css );
			$css = $this->stripEmptyTags( $css );

			// restore the string we've extracted earlier
			$css = $this->restoreExtractedData( $css );

			$source  = is_int( $source ) ? '' : $source;
			$parents = $source ? array_merge( $parents, array( $source ) ) : $parents;
			$css     = $this->combineImports( $source, $css, $parents );
			$css     = $this->importFiles( $source, $css );

			/*
			 * If we'll save to a new path, we'll have to fix the relative paths
			 * to be relative no longer to the source file, but to the new path.
			 * If we don't write to a file, fall back to same path so no
			 * conversion happens (because we still want it to go through most
			 * of the move code, which also addresses url() & @import syntax...)
			 */
			$converter = $this->getPathConverter( $source, $path ?: $source );
			$css       = $this->move( $converter, $css );

			// combine css
			$content .= $css;
		}

		$content = $this->moveImportsToTop( $content );

		return $content;
	}

	/**
	 * Moving a css file should update all relative urls.
	 * Relative references (e.g. ../images/image.gif) in a certain css file,
	 * will have to be updated when a file is being saved at another location
	 * (e.g. ../../images/image.gif, if the new CSS file is 1 folder deeper).
	 *
	 * @param ConverterInterface $converter Relative path converter
	 * @param string             $content   The CSS content to update relative urls for
	 *
	 * @return string
	 */
	protected function move( ConverterInterface $converter, $content ) {
		/*
		 * Relative path references will usually be enclosed by url(). @import
		 * is an exception, where url() is not necessary around the path (but is
		 * allowed).
		 * This *could* be 1 regular expression, where both regular expressions
		 * in this array are on different sides of a |. But we're using named
		 * patterns in both regexes, the same name on both regexes. This is only
		 * possible with a (?J) modifier, but that only works after a fairly
		 * recent PCRE version. That's why I'm doing 2 separate regular
		 * expressions & combining the matches after executing of both.
		 */
		$relativeRegexes = array(
			// url(xxx)
			'/
            # open url()
            url\(

                \s*

                # open path enclosure
                (?P<quotes>["\'])?

                    # fetch path
                    (?P<path>.+?)

                # close path enclosure
                (?(quotes)(?P=quotes))

                \s*

            # close url()
            \)

            /ix',

			// @import "xxx"
			'/
            # import statement
            @import

            # whitespace
            \s+

                # we don\'t have to check for @import url(), because the
                # condition above will already catch these

                # open path enclosure
                (?P<quotes>["\'])

                    # fetch path
                    (?P<path>.+?)

                # close path enclosure
                (?P=quotes)

            /ix',
		);

		// find all relative urls in css
		$matches = array();
		foreach ( $relativeRegexes as $relativeRegex ) {
			if ( preg_match_all( $relativeRegex, $content, $regexMatches, PREG_SET_ORDER ) ) {
				$matches = array_merge( $matches, $regexMatches );
			}
		}

		$search  = array();
		$replace = array();

		// loop all urls
		foreach ( $matches as $match ) {
			// determine if it's a url() or an @import match
			$type = ( strpos( $match[0], '@import' ) === 0 ? 'import' : 'url' );

			$url = $match['path'];
			if ( $this->canImportByPath( $url ) ) {
				// attempting to interpret GET-params makes no sense, so let's discard them for awhile
				$params = strrchr( $url, '?' );
				$url    = $params ? substr( $url, 0, -strlen( $params ) ) : $url;

				// fix relative url
				$url = $converter->convert( $url );

				// now that the path has been converted, re-apply GET-params
				$url .= $params;
			}

			/*
			 * Urls with control characters above 0x7e should be quoted.
			 * According to Mozilla's parser, whitespace is only allowed at the
			 * end of unquoted urls.
			 * Urls with `)` (as could happen with data: uris) should also be
			 * quoted to avoid being confused for the url() closing parentheses.
			 * And urls with a # have also been reported to cause issues.
			 * Urls with quotes inside should also remain escaped.
			 *
			 * @see https://developer.mozilla.org/nl/docs/Web/CSS/url#The_url()_functional_notation
			 * @see https://hg.mozilla.org/mozilla-central/rev/14abca4e7378
			 * @see https://github.com/matthiasmullie/minify/issues/193
			 */
			$url = trim( $url );
			if ( preg_match( '/[\s\)\'"#\x{7f}-\x{9f}]/u', $url ) ) {
				$url = $match['quotes'] . $url . $match['quotes'];
			}

			// build replacement
			$search[] = $match[0];
			if ( $type === 'url' ) {
				$replace[] = 'url(' . $url . ')';
			} elseif ( $type === 'import' ) {
				$replace[] = '@import "' . $url . '"';
			}
		}

		// replace urls
		return str_replace( $search, $replace, $content );
	}

	/**
	 * Shorthand HEX color codes.
	 * #FF0000FF -> #f00 -> red
	 * #FF00FF00 -> transparent.
	 *
	 * @param string $content The CSS content to shorten the HEX color codes for
	 *
	 * @return string
	 */
	protected function shortenHexColors( $content ) {
		// shorten repeating patterns within HEX ..
		$content = preg_replace( '/(?<=[: ])#([0-9a-f])\\1([0-9a-f])\\2([0-9a-f])\\3(?:([0-9a-f])\\4)?(?=[; }])/i', '#$1$2$3$4', $content );

		// remove alpha channel if it's pointless ..
		$content = preg_replace( '/(?<=[: ])#([0-9a-f]{6})ff(?=[; }])/i', '#$1', $content );
		$content = preg_replace( '/(?<=[: ])#([0-9a-f]{3})f(?=[; }])/i', '#$1', $content );

		// replace `transparent` with shortcut ..
		$content = preg_replace( '/(?<=[: ])#[0-9a-f]{6}00(?=[; }])/i', '#fff0', $content );

		$colors = array(
			// make these more readable
			'#00f'        => 'blue',
			'#dc143c'     => 'crimson',
			'#0ff'        => 'cyan',
			'#8b0000'     => 'darkred',
			'#696969'     => 'dimgray',
			'#ff69b4'     => 'hotpink',
			'#0f0'        => 'lime',
			'#fdf5e6'     => 'oldlace',
			'#87ceeb'     => 'skyblue',
			'#d8bfd8'     => 'thistle',
			// we can shorten some even more by replacing them with their color name
			'#f0ffff'     => 'azure',
			'#f5f5dc'     => 'beige',
			'#ffe4c4'     => 'bisque',
			'#a52a2a'     => 'brown',
			'#ff7f50'     => 'coral',
			'#ffd700'     => 'gold',
			'#808080'     => 'gray',
			'#008000'     => 'green',
			'#4b0082'     => 'indigo',
			'#fffff0'     => 'ivory',
			'#f0e68c'     => 'khaki',
			'#faf0e6'     => 'linen',
			'#800000'     => 'maroon',
			'#000080'     => 'navy',
			'#808000'     => 'olive',
			'#ffa500'     => 'orange',
			'#da70d6'     => 'orchid',
			'#cd853f'     => 'peru',
			'#ffc0cb'     => 'pink',
			'#dda0dd'     => 'plum',
			'#800080'     => 'purple',
			'#f00'        => 'red',
			'#fa8072'     => 'salmon',
			'#a0522d'     => 'sienna',
			'#c0c0c0'     => 'silver',
			'#fffafa'     => 'snow',
			'#d2b48c'     => 'tan',
			'#008080'     => 'teal',
			'#ff6347'     => 'tomato',
			'#ee82ee'     => 'violet',
			'#f5deb3'     => 'wheat',
			// or the other way around
			'black'       => '#000',
			'fuchsia'     => '#f0f',
			'magenta'     => '#f0f',
			'white'       => '#fff',
			'yellow'      => '#ff0',
			// and also `transparent`
			'transparent' => '#fff0',
		);

		return preg_replace_callback(
			'/(?<=[: ])(' . implode( '|', array_keys( $colors ) ) . ')(?=[; }])/i',
			function ( $match ) use ( $colors ) {
				return $colors[ strtolower( $match[0] ) ];
			},
			$content
		);
	}

	/**
	 * Convert RGB|HSL color codes.
	 * rgb(255,0,0,.5) -> rgb(255 0 0 / .5).
	 * rgb(255,0,0) -> #f00.
	 *
	 * @param string $content The CSS content to shorten the RGB color codes for
	 *
	 * @return string
	 */
	protected function convertLegacyColors( $content ) {
		/*
			https://drafts.csswg.org/css-color/#color-syntax-legacy
			https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/rgb
			https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl
		*/

		// convert legacy color syntax
		$content = preg_replace( '/(rgb)a?\(\s*([0-9]{1,3}%?)\s*,\s*([0-9]{1,3}%?)\s*,\s*([0-9]{1,3}%?)\s*,\s*([0,1]?(?:\.[0-9]*)?)\s*\)/i', '$1($2 $3 $4 / $5)', $content );
		$content = preg_replace( '/(rgb)a?\(\s*([0-9]{1,3}%?)\s*,\s*([0-9]{1,3}%?)\s*,\s*([0-9]{1,3}%?)\s*\)/i', '$1($2 $3 $4)', $content );
		$content = preg_replace( '/(hsl)a?\(\s*([0-9]+(?:deg|grad|rad|turn)?)\s*,\s*([0-9]{1,3}%)\s*,\s*([0-9]{1,3}%)\s*,\s*([0,1]?(?:\.[0-9]*)?)\s*\)/i', '$1($2 $3 $4 / $5)', $content );
		$content = preg_replace( '/(hsl)a?\(\s*([0-9]+(?:deg|grad|rad|turn)?)\s*,\s*([0-9]{1,3}%)\s*,\s*([0-9]{1,3}%)\s*\)/i', '$1($2 $3 $4)', $content );

		// convert `rgb` to `hex`
		$dec = '([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])';
		return preg_replace_callback(
			"/rgb\($dec $dec $dec\)/i",
			function ( $match ) {
				return sprintf( '#%02x%02x%02x', $match[1], $match[2], $match[3] );
			},
			$content
		);
	}

	/**
	 * Cleanup RGB|HSL|HWB|LCH|LAB
	 * rgb(255 0 0 / 1) -> rgb(255 0 0).
	 * rgb(255 0 0 / 0) -> transparent.
	 *
	 * @param string $content The CSS content to cleanup HSL|HWB|LCH|LAB
	 *
	 * @return string
	 */
	protected function cleanupModernColors( $content ) {
		/*
			https://drafts.csswg.org/css-color/#color-syntax-modern
			https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hwb
			https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/lch
			https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/lab
			https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/oklch
			https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/oklab
		*/
		$tag = '(rgb|hsl|hwb|(?:(?:ok)?(?:lch|lab)))';

		// remove alpha channel if it's pointless ..
		$content = preg_replace( '/' . $tag . '\(\s*([^\s]+)\s+([^\s]+)\s+([^\s]+)\s+\/\s+1(?:(?:\.\d?)*|00%)?\s*\)/i', '$1($2 $3 $4)', $content );

		// replace `transparent` with shortcut ..
		$content = preg_replace( '/' . $tag . '\(\s*[^\s]+\s+[^\s]+\s+[^\s]+\s+\/\s+0(?:[\.0%]*)?\s*\)/i', '#fff0', $content );

		return $content;
	}

	/**
	 * Shorten CSS font weights.
	 *
	 * @param string $content The CSS content to shorten the font weights for
	 *
	 * @return string
	 */
	protected function shortenFontWeights( $content ) {
		$weights = array(
			'normal' => 400,
			'bold'   => 700,
		);

		$callback = function ( $match ) use ( $weights ) {
			return $match[1] . $weights[ $match[2] ];
		};

		return preg_replace_callback( '/(font-weight\s*:\s*)(' . implode( '|', array_keys( $weights ) ) . ')(?=[;}])/', $callback, $content );
	}

	/**
	 * Shorthand 0 values to plain 0, instead of e.g. -0em.
	 *
	 * @param string $content The CSS content to shorten the zero values for
	 *
	 * @return string
	 */
	protected function shortenZeroes( $content ) {
		// we don't want to strip units in `calc()` expressions:
		// `5px - 0px` is valid, but `5px - 0` is not
		// `10px * 0` is valid (equates to 0), and so is `10 * 0px`, but
		// `10 * 0` is invalid
		// we've extracted calcs earlier, so we don't need to worry about this

		// reusable bits of code throughout these regexes:
		// before & after are used to make sure we don't match lose unintended
		// 0-like values (e.g. in #000, or in http://url/1.0)
		// units can be stripped from 0 values, or used to recognize non 0
		// values (where wa may be able to strip a .0 suffix)
		$before = '(?<=[:(, ])';
		$after  = '(?=[ ,);}])';
		$units  = '(em|ex|%|px|cm|mm|in|pt|pc|ch|rem|vh|vw|vmin|vmax|vm)';

		// strip units after zeroes (0px -> 0)
		// NOTE: it should be safe to remove all units for a 0 value, but in
		// practice, Webkit (especially Safari) seems to stumble over at least
		// 0%, potentially other units as well. Only stripping 'px' for now.
		// @see https://github.com/matthiasmullie/minify/issues/60
		$content = preg_replace( '/' . $before . '(-?0*(\.0+)?)(?<=0)px' . $after . '/', '\\1', $content );

		// strip 0-digits (.0 -> 0)
		$content = preg_replace( '/' . $before . '\.0+' . $units . '?' . $after . '/', '0\\1', $content );
		// strip trailing 0: 50.10 -> 50.1, 50.10px -> 50.1px
		$content = preg_replace( '/' . $before . '(-?[0-9]+\.[0-9]+)0+' . $units . '?' . $after . '/', '\\1\\2', $content );
		// strip trailing 0: 50.00 -> 50, 50.00px -> 50px
		$content = preg_replace( '/' . $before . '(-?[0-9]+)\.0+' . $units . '?' . $after . '/', '\\1\\2', $content );
		// strip leading 0: 0.1 -> .1, 01.1 -> 1.1
		$content = preg_replace( '/' . $before . '(-?)0+([0-9]*\.[0-9]+)' . $units . '?' . $after . '/', '\\1\\2\\3', $content );

		// strip negative zeroes (-0 -> 0) & truncate zeroes (00 -> 0)
		$content = preg_replace( '/' . $before . '-?0+' . $units . '?' . $after . '/', '0\\1', $content );

		// IE doesn't seem to understand a unitless flex-basis value (correct -
		// it goes against the spec), so let's add it in again (make it `%`,
		// which is only 1 char: 0%, 0px, 0 anything, it's all just the same)
		// @see https://developer.mozilla.org/nl/docs/Web/CSS/flex
		$content = preg_replace( '/flex:([0-9]+\s[0-9]+\s)0([;\}])/', 'flex:${1}0%${2}', $content );
		$content = preg_replace( '/flex-basis:0([;\}])/', 'flex-basis:0%${1}', $content );

		return $content;
	}

	/**
	 * Strip empty tags from source code.
	 *
	 * @param string $content
	 *
	 * @return string
	 */
	protected function stripEmptyTags( $content ) {
		$content = preg_replace( '/(?<=^)[^\{\};]+\{\s*\}/', '', $content );
		$content = preg_replace( '/(?<=(\}|;))[^\{\};]+\{\s*\}/', '', $content );

		return $content;
	}

	/**
	 * Strip comments from source code.
	 */
	protected function stripComments() {
		$this->stripMultilineComments();
	}

	/**
	 * Strip whitespace.
	 *
	 * @param string $content The CSS content to strip the whitespace for
	 *
	 * @return string
	 */
	protected function stripWhitespace( $content ) {
		// remove leading & trailing whitespace
		$content = preg_replace( '/^\s*/m', '', $content );
		$content = preg_replace( '/\s*$/m', '', $content );

		// replace newlines with a single space
		$content = preg_replace( '/\s+/', ' ', $content );

		// remove whitespace around meta characters
		// inspired by stackoverflow.com/questions/15195750/minify-compress-css-with-regex
		$content = preg_replace( '/\s*([\*$~^|]?+=|[{};,>~]|!important\b)\s*/', '$1', $content );
		$content = preg_replace( '/([\[(:>\+])\s+/', '$1', $content );
		$content = preg_replace( '/\s+([\]\)>\+])/', '$1', $content );
		$content = preg_replace( '/\s+(:)(?![^\}]*\{)/', '$1', $content );

		// whitespace around + and - can only be stripped inside some pseudo-
		// classes, like `:nth-child(3+2n)`
		// not in things like `calc(3px + 2px)`, shorthands like `3px -2px`, or
		// selectors like `div.weird- p`
		$pseudos = array( 'nth-child', 'nth-last-child', 'nth-last-of-type', 'nth-of-type' );
		$content = preg_replace( '/:(' . implode( '|', $pseudos ) . ')\(\s*([+-]?)\s*(.+?)\s*([+-]?)\s*(.*?)\s*\)/', ':$1($2$3$4$5)', $content );

		// remove semicolon/whitespace followed by closing bracket
		$content = str_replace( ';}', '}', $content );

		return trim( $content );
	}

	/**
	 * Replace all occurrences of functions that may contain math, where
	 * whitespace around operators needs to be preserved (e.g. calc, clamp).
	 */
	protected function extractMath() {
		$functions = array( 'calc', 'clamp', 'min', 'max' );
		$pattern   = '/\b(' . implode( '|', $functions ) . ')(\(.+?)(?=$|;|})/m';

		// PHP only supports $this inside anonymous functions since 5.4
		$minifier = $this;
		$callback = function ( $match ) use ( $minifier, $pattern, &$callback ) {
			$function = $match[1];
			$length   = strlen( $match[2] );
			$expr     = '';
			$opened   = 0;

			// the regular expression for extracting math has 1 significant problem:
			// it can't determine the correct closing parenthesis...
			// instead, it'll match a larger portion of code to where it's certain that
			// the calc() musts have ended, and we'll figure out which is the correct
			// closing parenthesis here, by counting how many have opened
			for ( $i = 0; $i < $length; ++$i ) {
				$char  = $match[2][ $i ];
				$expr .= $char;
				if ( $char === '(' ) {
					++$opened;
				} elseif ( $char === ')' && --$opened === 0 ) {
					break;
				}
			}

			// now that we've figured out where the calc() starts and ends, extract it
			$count                               = count( $minifier->extracted );
			$placeholder                         = 'math(' . $count . ')';
			$minifier->extracted[ $placeholder ] = $function . '(' . trim( substr( $expr, 1, -1 ) ) . ')';

			// and since we've captured more code than required, we may have some leftover
			// calc() in here too - go recursive on the remaining but of code to go figure
			// that out and extract what is needed
			$rest = $minifier->str_replace_first( $function . $expr, '', $match[0] );
			$rest = preg_replace_callback( $pattern, $callback, $rest );

			return $placeholder . $rest;
		};

		$this->registerPattern( $pattern, $callback );
	}

	/**
	 * Replace custom properties, whose values may be used in scenarios where
	 * we wouldn't want them to be minified (e.g. inside calc).
	 */
	protected function extractCustomProperties() {
		// PHP only supports $this inside anonymous functions since 5.4
		$minifier = $this;
		$this->registerPattern(
			'/(?<=^|[;}{])\s*(--[^:;{}"\'\s]+)\s*:([^;{}]+)/m',
			function ( $match ) use ( $minifier ) {
				$placeholder                         = '--custom-' . count( $minifier->extracted ) . ':0';
				$minifier->extracted[ $placeholder ] = $match[1] . ':' . trim( $match[2] );

				return $placeholder;
			}
		);
	}

	/**
	 * Check if file is small enough to be imported.
	 *
	 * @param string $path The path to the file
	 *
	 * @return bool
	 */
	protected function canImportBySize( $path ) {
		return ( $size = @filesize( $path ) ) && $size <= $this->maxImportSize * 1024;
	}

	/**
	 * Check if file a file can be imported, going by the path.
	 *
	 * @param string $path
	 *
	 * @return bool
	 */
	protected function canImportByPath( $path ) {
		return preg_match( '/^(data:|https?:|\\/)/', $path ) === 0;
	}

	/**
	 * Return a converter to update relative paths to be relative to the new
	 * destination.
	 *
	 * @param string $source
	 * @param string $target
	 *
	 * @return ConverterInterface
	 */
	protected function getPathConverter( $source, $target ) {
		return new Converter( $source, $target );
	}
}
<?php
/**
 * exception.cls.php - modified PHP implementation of Matthias Mullie's Exceptions Classes.
 *
 * @author Matthias Mullie <minify@mullie.eu>
 */

namespace LiteSpeed\Lib\CSS_JS_MIN\Minify\Exception;

defined( 'WPINC' ) || exit;

abstract class Exception extends \Exception {

}

abstract class BasicException extends Exception {

}

class FileImportException extends BasicException {

}

class IOException extends BasicException {

}
Copyright (c) 2015 Matthias Mullie

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
<?php
/**
 * modified PHP implementation of Matthias Mullie's convert path class
 * Convert paths relative from 1 file to another.
 *
 * E.g.
 *     ../../images/icon.jpg relative to /css/imports/icons.css
 * becomes
 *     ../images/icon.jpg relative to /css/minified.css
 *
 * @author Matthias Mullie <pathconverter@mullie.eu>
 * @copyright Copyright (c) 2015, Matthias Mullie. All rights reserved
 * @license MIT License
 */

namespace LiteSpeed\Lib\CSS_JS_MIN\PathConverter;

defined( 'WPINC' ) || exit;

interface ConverterInterface {

	/**
	 * Convert file paths.
	 *
	 * @param string $path The path to be converted
	 *
	 * @return string The new path
	 */
	public function convert( $path );
}

class Converter implements ConverterInterface {

	/**
	 * @var string
	 */
	protected $from;

	/**
	 * @var string
	 */
	protected $to;

	/**
	 * @param string $from The original base path (directory, not file!)
	 * @param string $to   The new base path (directory, not file!)
	 * @param string $root Root directory (defaults to `getcwd`)
	 */
	public function __construct( $from, $to, $root = '' ) {
		$shared = $this->shared( $from, $to );
		if ( $shared === '' ) {
			// when both paths have nothing in common, one of them is probably
			// absolute while the other is relative
			$root = $root ?: getcwd();
			$from = strpos( $from, $root ) === 0 ? $from : preg_replace( '/\/+/', '/', $root . '/' . $from );
			$to   = strpos( $to, $root ) === 0 ? $to : preg_replace( '/\/+/', '/', $root . '/' . $to );

			// or traveling the tree via `..`
			// attempt to resolve path, or assume it's fine if it doesn't exist
			$from = @realpath( $from ) ?: $from;
			$to   = @realpath( $to ) ?: $to;
		}

		$from = $this->dirname( $from );
		$to   = $this->dirname( $to );

		$from = $this->normalize( $from );
		$to   = $this->normalize( $to );

		$this->from = $from;
		$this->to   = $to;
	}

	/**
	 * Normalize path.
	 *
	 * @param string $path
	 *
	 * @return string
	 */
	protected function normalize( $path ) {
		// deal with different operating systems' directory structure
		$path = rtrim( str_replace( DIRECTORY_SEPARATOR, '/', $path ), '/' );

		// remove leading current directory.
		if ( substr( $path, 0, 2 ) === './' ) {
			$path = substr( $path, 2 );
		}

		// remove references to current directory in the path.
		$path = str_replace( '/./', '/', $path );

		/*
		 * Example:
		 *     /home/forkcms/frontend/cache/compiled_templates/../../core/layout/css/../images/img.gif
		 * to
		 *     /home/forkcms/frontend/core/layout/images/img.gif
		 */
		do {
			$path = preg_replace( '/[^\/]+(?<!\.\.)\/\.\.\//', '', $path, -1, $count );
		} while ( $count );

		return $path;
	}

	/**
	 * Figure out the shared path of 2 locations.
	 *
	 * Example:
	 *     /home/forkcms/frontend/core/layout/images/img.gif
	 * and
	 *     /home/forkcms/frontend/cache/minified_css
	 * share
	 *     /home/forkcms/frontend
	 *
	 * @param string $path1
	 * @param string $path2
	 *
	 * @return string
	 */
	protected function shared( $path1, $path2 ) {
		// $path could theoretically be empty (e.g. no path is given), in which
		// case it shouldn't expand to array(''), which would compare to one's
		// root /
		$path1 = $path1 ? explode( '/', $path1 ) : array();
		$path2 = $path2 ? explode( '/', $path2 ) : array();

		$shared = array();

		// compare paths & strip identical ancestors
		foreach ( $path1 as $i => $chunk ) {
			if ( isset( $path2[ $i ] ) && $path1[ $i ] == $path2[ $i ] ) {
				$shared[] = $chunk;
			} else {
				break;
			}
		}

		return implode( '/', $shared );
	}

	/**
	 * Convert paths relative from 1 file to another.
	 *
	 * E.g.
	 *     ../images/img.gif relative to /home/forkcms/frontend/core/layout/css
	 * should become:
	 *     ../../core/layout/images/img.gif relative to
	 *     /home/forkcms/frontend/cache/minified_css
	 *
	 * @param string $path The relative path that needs to be converted
	 *
	 * @return string The new relative path
	 */
	public function convert( $path ) {
		// quit early if conversion makes no sense
		if ( $this->from === $this->to ) {
			return $path;
		}

		$path = $this->normalize( $path );
		// if we're not dealing with a relative path, just return absolute
		if ( strpos( $path, '/' ) === 0 ) {
			return $path;
		}

		// normalize paths
		$path = $this->normalize( $this->from . '/' . $path );

		// strip shared ancestor paths
		$shared = $this->shared( $path, $this->to );
		$path   = mb_substr( $path, mb_strlen( $shared ) );
		$to     = mb_substr( $this->to, mb_strlen( $shared ) );

		// add .. for every directory that needs to be traversed to new path
		$to = str_repeat( '../', count( array_filter( explode( '/', $to ) ) ) );

		return $to . ltrim( $path, '/' );
	}

	/**
	 * Attempt to get the directory name from a path.
	 *
	 * @param string $path
	 *
	 * @return string
	 */
	protected function dirname( $path ) {
		if ( @is_file( $path ) ) {
			return dirname( $path );
		}

		if ( @is_dir( $path ) ) {
			return rtrim( $path, '/' );
		}

		// no known file/dir, start making assumptions

		// ends in / = dir
		if ( mb_substr( $path, -1 ) === '/' ) {
			return rtrim( $path, '/' );
		}

		// has a dot in the name, likely a file
		if ( preg_match( '/.*\..*$/', basename( $path ) ) !== 0 ) {
			return dirname( $path );
		}

		// you're on your own here!
		return $path;
	}
}

class NoConverter implements ConverterInterface {

	/**
	 * {@inheritdoc}
	 */
	public function convert( $path ) {
		return $path;
	}
}
{
	"name": "litespeedtech/lscache_wp",
	"require-dev": {
		"squizlabs/php_codesniffer": "^3.12",
		"phpcompatibility/php-compatibility": "*",
		"wp-coding-standards/wpcs": "^3.1",
		"phpcsstandards/phpcsutils": "^1.0",
		"phpcsstandards/phpcsextra": "^1.2",
		"dealerdirect/phpcodesniffer-composer-installer": "^1.0",
		"php-stubs/wp-cli-stubs": "^2.12"
	},
	"prefer-stable": true,
	"scripts": {
		"sniff-check": "vendor/bin/phpcs --standard=phpcs.ruleset.xml --no-cache cli/ tpl/ autoload.php",
		"sniff-check-bk": "vendor/bin/phpcs --standard=phpcs.ruleset.xml --no-cache cli/ lib/ src/ tpl/ thirdparty autoload.php litespeed-cache.php"
	},
	"config": {
		"allow-plugins": {
			"dealerdirect/phpcodesniffer-composer-installer": true
		}
	}
}
{
    "_readme": [
        "This file locks the dependencies of your project to a known state",
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "8c6cb907d697cb733facab6d72af1add",
    "packages": [],
    "packages-dev": [
        {
            "name": "dealerdirect/phpcodesniffer-composer-installer",
            "version": "v1.0.0",
            "source": {
                "type": "git",
                "url": "https://github.com/PHPCSStandards/composer-installer.git",
                "reference": "4be43904336affa5c2f70744a348312336afd0da"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/PHPCSStandards/composer-installer/zipball/4be43904336affa5c2f70744a348312336afd0da",
                "reference": "4be43904336affa5c2f70744a348312336afd0da",
                "shasum": ""
            },
            "require": {
                "composer-plugin-api": "^1.0 || ^2.0",
                "php": ">=5.4",
                "squizlabs/php_codesniffer": "^2.0 || ^3.1.0 || ^4.0"
            },
            "require-dev": {
                "composer/composer": "*",
                "ext-json": "*",
                "ext-zip": "*",
                "php-parallel-lint/php-parallel-lint": "^1.3.1",
                "phpcompatibility/php-compatibility": "^9.0",
                "yoast/phpunit-polyfills": "^1.0"
            },
            "type": "composer-plugin",
            "extra": {
                "class": "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
            },
            "autoload": {
                "psr-4": {
                    "PHPCSStandards\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Franck Nijhof",
                    "email": "franck.nijhof@dealerdirect.com",
                    "homepage": "http://www.frenck.nl",
                    "role": "Developer / IT Manager"
                },
                {
                    "name": "Contributors",
                    "homepage": "https://github.com/PHPCSStandards/composer-installer/graphs/contributors"
                }
            ],
            "description": "PHP_CodeSniffer Standards Composer Installer Plugin",
            "homepage": "http://www.dealerdirect.com",
            "keywords": [
                "PHPCodeSniffer",
                "PHP_CodeSniffer",
                "code quality",
                "codesniffer",
                "composer",
                "installer",
                "phpcbf",
                "phpcs",
                "plugin",
                "qa",
                "quality",
                "standard",
                "standards",
                "style guide",
                "stylecheck",
                "tests"
            ],
            "support": {
                "issues": "https://github.com/PHPCSStandards/composer-installer/issues",
                "source": "https://github.com/PHPCSStandards/composer-installer"
            },
            "time": "2023-01-05T11:28:13+00:00"
        },
        {
            "name": "php-stubs/wordpress-stubs",
            "version": "v6.8.1",
            "source": {
                "type": "git",
                "url": "https://github.com/php-stubs/wordpress-stubs.git",
                "reference": "92e444847d94f7c30f88c60004648f507688acd5"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/php-stubs/wordpress-stubs/zipball/92e444847d94f7c30f88c60004648f507688acd5",
                "reference": "92e444847d94f7c30f88c60004648f507688acd5",
                "shasum": ""
            },
            "conflict": {
                "phpdocumentor/reflection-docblock": "5.6.1"
            },
            "require-dev": {
                "dealerdirect/phpcodesniffer-composer-installer": "^1.0",
                "nikic/php-parser": "^5.4",
                "php": "^7.4 || ^8.0",
                "php-stubs/generator": "^0.8.3",
                "phpdocumentor/reflection-docblock": "^5.4.1",
                "phpstan/phpstan": "^2.1",
                "phpunit/phpunit": "^9.5",
                "szepeviktor/phpcs-psr-12-neutron-hybrid-ruleset": "^1.1.1",
                "wp-coding-standards/wpcs": "3.1.0 as 2.3.0"
            },
            "suggest": {
                "paragonie/sodium_compat": "Pure PHP implementation of libsodium",
                "symfony/polyfill-php80": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
                "szepeviktor/phpstan-wordpress": "WordPress extensions for PHPStan"
            },
            "type": "library",
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "description": "WordPress function and class declaration stubs for static analysis.",
            "homepage": "https://github.com/php-stubs/wordpress-stubs",
            "keywords": [
                "PHPStan",
                "static analysis",
                "wordpress"
            ],
            "support": {
                "issues": "https://github.com/php-stubs/wordpress-stubs/issues",
                "source": "https://github.com/php-stubs/wordpress-stubs/tree/v6.8.1"
            },
            "time": "2025-05-02T12:33:34+00:00"
        },
        {
            "name": "php-stubs/wp-cli-stubs",
            "version": "v2.12.0",
            "source": {
                "type": "git",
                "url": "https://github.com/php-stubs/wp-cli-stubs.git",
                "reference": "af16401e299a3fd2229bd0fa9a037638a4174a9d"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/php-stubs/wp-cli-stubs/zipball/af16401e299a3fd2229bd0fa9a037638a4174a9d",
                "reference": "af16401e299a3fd2229bd0fa9a037638a4174a9d",
                "shasum": ""
            },
            "require": {
                "php-stubs/wordpress-stubs": "^4.7 || ^5.0 || ^6.0"
            },
            "require-dev": {
                "php": "~7.3 || ~8.0",
                "php-stubs/generator": "^0.8.0"
            },
            "suggest": {
                "symfony/polyfill-php73": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
                "szepeviktor/phpstan-wordpress": "WordPress extensions for PHPStan"
            },
            "type": "library",
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "description": "WP-CLI function and class declaration stubs for static analysis.",
            "homepage": "https://github.com/php-stubs/wp-cli-stubs",
            "keywords": [
                "PHPStan",
                "static analysis",
                "wordpress",
                "wp-cli"
            ],
            "support": {
                "issues": "https://github.com/php-stubs/wp-cli-stubs/issues",
                "source": "https://github.com/php-stubs/wp-cli-stubs/tree/v2.12.0"
            },
            "time": "2025-06-10T09:58:05+00:00"
        },
        {
            "name": "phpcompatibility/php-compatibility",
            "version": "9.3.5",
            "source": {
                "type": "git",
                "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
                "reference": "9fb324479acf6f39452e0655d2429cc0d3914243"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/9fb324479acf6f39452e0655d2429cc0d3914243",
                "reference": "9fb324479acf6f39452e0655d2429cc0d3914243",
                "shasum": ""
            },
            "require": {
                "php": ">=5.3",
                "squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
            },
            "conflict": {
                "squizlabs/php_codesniffer": "2.6.2"
            },
            "require-dev": {
                "phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
            },
            "suggest": {
                "dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
                "roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
            },
            "type": "phpcodesniffer-standard",
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "LGPL-3.0-or-later"
            ],
            "authors": [
                {
                    "name": "Wim Godden",
                    "homepage": "https://github.com/wimg",
                    "role": "lead"
                },
                {
                    "name": "Juliette Reinders Folmer",
                    "homepage": "https://github.com/jrfnl",
                    "role": "lead"
                },
                {
                    "name": "Contributors",
                    "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
                }
            ],
            "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
            "homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
            "keywords": [
                "compatibility",
                "phpcs",
                "standards"
            ],
            "support": {
                "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues",
                "source": "https://github.com/PHPCompatibility/PHPCompatibility"
            },
            "time": "2019-12-27T09:44:58+00:00"
        },
        {
            "name": "phpcsstandards/phpcsextra",
            "version": "1.3.0",
            "source": {
                "type": "git",
                "url": "https://github.com/PHPCSStandards/PHPCSExtra.git",
                "reference": "46d08eb86eec622b96c466adec3063adfed280dd"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/PHPCSStandards/PHPCSExtra/zipball/46d08eb86eec622b96c466adec3063adfed280dd",
                "reference": "46d08eb86eec622b96c466adec3063adfed280dd",
                "shasum": ""
            },
            "require": {
                "php": ">=5.4",
                "phpcsstandards/phpcsutils": "^1.0.9",
                "squizlabs/php_codesniffer": "^3.12.1"
            },
            "require-dev": {
                "php-parallel-lint/php-console-highlighter": "^1.0",
                "php-parallel-lint/php-parallel-lint": "^1.3.2",
                "phpcsstandards/phpcsdevcs": "^1.1.6",
                "phpcsstandards/phpcsdevtools": "^1.2.1",
                "phpunit/phpunit": "^4.5 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
            },
            "type": "phpcodesniffer-standard",
            "extra": {
                "branch-alias": {
                    "dev-stable": "1.x-dev",
                    "dev-develop": "1.x-dev"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "LGPL-3.0-or-later"
            ],
            "authors": [
                {
                    "name": "Juliette Reinders Folmer",
                    "homepage": "https://github.com/jrfnl",
                    "role": "lead"
                },
                {
                    "name": "Contributors",
                    "homepage": "https://github.com/PHPCSStandards/PHPCSExtra/graphs/contributors"
                }
            ],
            "description": "A collection of sniffs and standards for use with PHP_CodeSniffer.",
            "keywords": [
                "PHP_CodeSniffer",
                "phpcbf",
                "phpcodesniffer-standard",
                "phpcs",
                "standards",
                "static analysis"
            ],
            "support": {
                "issues": "https://github.com/PHPCSStandards/PHPCSExtra/issues",
                "security": "https://github.com/PHPCSStandards/PHPCSExtra/security/policy",
                "source": "https://github.com/PHPCSStandards/PHPCSExtra"
            },
            "funding": [
                {
                    "url": "https://github.com/PHPCSStandards",
                    "type": "github"
                },
                {
                    "url": "https://github.com/jrfnl",
                    "type": "github"
                },
                {
                    "url": "https://opencollective.com/php_codesniffer",
                    "type": "open_collective"
                },
                {
                    "url": "https://thanks.dev/u/gh/phpcsstandards",
                    "type": "thanks_dev"
                }
            ],
            "time": "2025-04-20T23:35:32+00:00"
        },
        {
            "name": "phpcsstandards/phpcsutils",
            "version": "1.0.12",
            "source": {
                "type": "git",
                "url": "https://github.com/PHPCSStandards/PHPCSUtils.git",
                "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/PHPCSStandards/PHPCSUtils/zipball/87b233b00daf83fb70f40c9a28692be017ea7c6c",
                "reference": "87b233b00daf83fb70f40c9a28692be017ea7c6c",
                "shasum": ""
            },
            "require": {
                "dealerdirect/phpcodesniffer-composer-installer": "^0.4.1 || ^0.5 || ^0.6.2 || ^0.7 || ^1.0",
                "php": ">=5.4",
                "squizlabs/php_codesniffer": "^3.10.0 || 4.0.x-dev@dev"
            },
            "require-dev": {
                "ext-filter": "*",
                "php-parallel-lint/php-console-highlighter": "^1.0",
                "php-parallel-lint/php-parallel-lint": "^1.3.2",
                "phpcsstandards/phpcsdevcs": "^1.1.6",
                "yoast/phpunit-polyfills": "^1.1.0 || ^2.0.0"
            },
            "type": "phpcodesniffer-standard",
            "extra": {
                "branch-alias": {
                    "dev-stable": "1.x-dev",
                    "dev-develop": "1.x-dev"
                }
            },
            "autoload": {
                "classmap": [
                    "PHPCSUtils/"
                ]
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "LGPL-3.0-or-later"
            ],
            "authors": [
                {
                    "name": "Juliette Reinders Folmer",
                    "homepage": "https://github.com/jrfnl",
                    "role": "lead"
                },
                {
                    "name": "Contributors",
                    "homepage": "https://github.com/PHPCSStandards/PHPCSUtils/graphs/contributors"
                }
            ],
            "description": "A suite of utility functions for use with PHP_CodeSniffer",
            "homepage": "https://phpcsutils.com/",
            "keywords": [
                "PHP_CodeSniffer",
                "phpcbf",
                "phpcodesniffer-standard",
                "phpcs",
                "phpcs3",
                "standards",
                "static analysis",
                "tokens",
                "utility"
            ],
            "support": {
                "docs": "https://phpcsutils.com/",
                "issues": "https://github.com/PHPCSStandards/PHPCSUtils/issues",
                "security": "https://github.com/PHPCSStandards/PHPCSUtils/security/policy",
                "source": "https://github.com/PHPCSStandards/PHPCSUtils"
            },
            "funding": [
                {
                    "url": "https://github.com/PHPCSStandards",
                    "type": "github"
                },
                {
                    "url": "https://github.com/jrfnl",
                    "type": "github"
                },
                {
                    "url": "https://opencollective.com/php_codesniffer",
                    "type": "open_collective"
                }
            ],
            "time": "2024-05-20T13:34:27+00:00"
        },
        {
            "name": "squizlabs/php_codesniffer",
            "version": "3.13.0",
            "source": {
                "type": "git",
                "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git",
                "reference": "65ff2489553b83b4597e89c3b8b721487011d186"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/65ff2489553b83b4597e89c3b8b721487011d186",
                "reference": "65ff2489553b83b4597e89c3b8b721487011d186",
                "shasum": ""
            },
            "require": {
                "ext-simplexml": "*",
                "ext-tokenizer": "*",
                "ext-xmlwriter": "*",
                "php": ">=5.4.0"
            },
            "require-dev": {
                "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4"
            },
            "bin": [
                "bin/phpcbf",
                "bin/phpcs"
            ],
            "type": "library",
            "extra": {
                "branch-alias": {
                    "dev-master": "3.x-dev"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "Greg Sherwood",
                    "role": "Former lead"
                },
                {
                    "name": "Juliette Reinders Folmer",
                    "role": "Current lead"
                },
                {
                    "name": "Contributors",
                    "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer/graphs/contributors"
                }
            ],
            "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
            "homepage": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
            "keywords": [
                "phpcs",
                "standards",
                "static analysis"
            ],
            "support": {
                "issues": "https://github.com/PHPCSStandards/PHP_CodeSniffer/issues",
                "security": "https://github.com/PHPCSStandards/PHP_CodeSniffer/security/policy",
                "source": "https://github.com/PHPCSStandards/PHP_CodeSniffer",
                "wiki": "https://github.com/PHPCSStandards/PHP_CodeSniffer/wiki"
            },
            "funding": [
                {
                    "url": "https://github.com/PHPCSStandards",
                    "type": "github"
                },
                {
                    "url": "https://github.com/jrfnl",
                    "type": "github"
                },
                {
                    "url": "https://opencollective.com/php_codesniffer",
                    "type": "open_collective"
                },
                {
                    "url": "https://thanks.dev/u/gh/phpcsstandards",
                    "type": "thanks_dev"
                }
            ],
            "time": "2025-05-11T03:36:00+00:00"
        },
        {
            "name": "wp-coding-standards/wpcs",
            "version": "3.1.0",
            "source": {
                "type": "git",
                "url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
                "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/9333efcbff231f10dfd9c56bb7b65818b4733ca7",
                "reference": "9333efcbff231f10dfd9c56bb7b65818b4733ca7",
                "shasum": ""
            },
            "require": {
                "ext-filter": "*",
                "ext-libxml": "*",
                "ext-tokenizer": "*",
                "ext-xmlreader": "*",
                "php": ">=5.4",
                "phpcsstandards/phpcsextra": "^1.2.1",
                "phpcsstandards/phpcsutils": "^1.0.10",
                "squizlabs/php_codesniffer": "^3.9.0"
            },
            "require-dev": {
                "php-parallel-lint/php-console-highlighter": "^1.0.0",
                "php-parallel-lint/php-parallel-lint": "^1.3.2",
                "phpcompatibility/php-compatibility": "^9.0",
                "phpcsstandards/phpcsdevtools": "^1.2.0",
                "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
            },
            "suggest": {
                "ext-iconv": "For improved results",
                "ext-mbstring": "For improved results"
            },
            "type": "phpcodesniffer-standard",
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "MIT"
            ],
            "authors": [
                {
                    "name": "Contributors",
                    "homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors"
                }
            ],
            "description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
            "keywords": [
                "phpcs",
                "standards",
                "static analysis",
                "wordpress"
            ],
            "support": {
                "issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues",
                "source": "https://github.com/WordPress/WordPress-Coding-Standards",
                "wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki"
            },
            "funding": [
                {
                    "url": "https://opencollective.com/php_codesniffer",
                    "type": "custom"
                }
            ],
            "time": "2024-03-25T16:39:00+00:00"
        }
    ],
    "aliases": [],
    "minimum-stability": "stable",
    "stability-flags": {},
    "prefer-stable": true,
    "prefer-lowest": false,
    "platform": {},
    "platform-dev": {},
    "plugin-api-version": "2.6.0"
}
var litespeed_vary = document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/, '$1');
if (!litespeed_vary) {
	// Note: as the vary may be changed in Login Cookie option, even the visitor doesn't have this cookie, it doesn't mean the visitor doesn't have the vary, so still need PHP side to decide if need to set vary or not.
	fetch('litespeed_url', {
		method: 'POST',
		cache: 'no-cache',
		redirect: 'follow',
	})
		.then(response => response.json())
		.then(data => {
			console.log(data);
			if (data.hasOwnProperty('reload') && data.reload == 'yes') {
				// Save doc.ref for organic traffic usage
				sessionStorage.setItem('litespeed_docref', document.referrer);

				window.location.reload(true);
			}
		});
}
/**
 * CDN module
 * @author Hai Zheng
 */
class CDNMapping extends React.Component {
	constructor(props) {
		super(props);
		this.state = {
			list: props.list,
		};

		this.onChange = this.onChange.bind(this);
		this.delRow = this.delRow.bind(this);
		this.addNew = this.addNew.bind(this);
	}

	onChange(e, index) {
		const target = e.currentTarget;
		const value = target.dataset.hasOwnProperty('value') ? Boolean(target.dataset.value * 1) : target.value;
		const list = this.state.list;
		list[index][target.dataset.type] = value;

		this.setState({
			list: list,
		});
	}

	delRow(index) {
		const data = this.state.list;
		data.splice(index, 1);
		this.setState({ list: data });
	}

	addNew() {
		const list = this.state.list;
		list.push({ url: '' });
		this.setState({ list: list });
	}

	render() {
		return (
			<React.Fragment>
				{this.state.list.map((item, i) => (
					<CDNMappingBlock item={item} key={i} index={i} onChange={this.onChange} delRow={this.delRow} />
				))}

				<p>
					<button type="button" className="button button-link litespeed-form-action litespeed-link-with-icon" onClick={this.addNew}>
						<span className="dashicons dashicons-plus-alt"></span>
						{litespeed_data['lang']['add_cdn_mapping_row']}
					</button>
				</p>
			</React.Fragment>
		);
	}
}

// { url: '', inc_img: true, inc_css: false, inc_js: false, filetype: [ '.aac', '.eot', ... ] }
class CDNMappingBlock extends React.Component {
	constructor(props) {
		super(props);

		this.onChange = this.onChange.bind(this);
		this.delRow = this.delRow.bind(this);
	}

	onChange(e) {
		this.props.onChange(e, this.props.index);
	}

	delRow() {
		this.props.delRow(this.props.index);
	}

	render() {
		const name_prefix = litespeed_data['ids']['cdn_mapping'];

		const item = this.props.item;

		const filetype = item.filetype ? (Array.isArray(item.filetype) ? item.filetype.join('\n') : item.filetype) : '';
		return (
			<div className="litespeed-block">
				<div className="litespeed-cdn-mapping-col1">
					<label className="litespeed-form-label">{litespeed_data['lang']['cdn_mapping_url']}</label>
					<input
						type="text"
						name={name_prefix + '[url][]'}
						className="regular-text litespeed-input-long"
						value={item.url ? item.url : ''}
						data-type="url"
						onChange={this.onChange}
					/>

					<div className="litespeed-desc">
						<span dangerouslySetInnerHTML={{ __html: litespeed_data['lang']['cdn_mapping_url_desc'] }} />
					</div>
				</div>

				<div className="litespeed-col-auto litespeed-cdn-mapping-col2">
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">{litespeed_data['lang']['cdn_mapping_inc_img']}</div>
						<div
							className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_img ? 'primary' : 'default litespeed-toggleoff'}`}
							data-type="inc_img"
							data-value={item.inc_img ? 0 : 1}
							onClick={this.onChange}
						>
							<input name={name_prefix + '[inc_img][]'} type="hidden" value={item.inc_img ? 1 : 0} />
							<div className="litespeed-toggle-group">
								<label className="litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on">{litespeed_data['lang']['on']}</label>
								<label className="litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off">
									{litespeed_data['lang']['off']}
								</label>
								<span className="litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default"></span>
							</div>
						</div>
					</div>
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">{litespeed_data['lang']['cdn_mapping_inc_css']}</div>
						<div
							className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_css ? 'primary' : 'default litespeed-toggleoff'}`}
							data-type="inc_css"
							data-value={item.inc_css ? 0 : 1}
							onClick={this.onChange}
						>
							<input name={name_prefix + '[inc_css][]'} type="hidden" value={item.inc_css ? 1 : 0} />
							<div className="litespeed-toggle-group">
								<label className="litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on">{litespeed_data['lang']['on']}</label>
								<label className="litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off">
									{litespeed_data['lang']['off']}
								</label>
								<span className="litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default"></span>
							</div>
						</div>
					</div>
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">{litespeed_data['lang']['cdn_mapping_inc_js']}</div>
						<div
							className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_js ? 'primary' : 'default litespeed-toggleoff'}`}
							data-type="inc_js"
							data-value={item.inc_js ? 0 : 1}
							onClick={this.onChange}
						>
							<input name={name_prefix + '[inc_js][]'} type="hidden" value={item.inc_js ? 1 : 0} />
							<div className="litespeed-toggle-group">
								<label className="litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on">{litespeed_data['lang']['on']}</label>
								<label className="litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off">
									{litespeed_data['lang']['off']}
								</label>
								<span className="litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default"></span>
							</div>
						</div>
					</div>
				</div>

				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">{litespeed_data['lang']['cdn_mapping_filetype']}</label>
					<textarea name={name_prefix + '[filetype][]'} rows={filetype.split('\n').length + 2} cols="18" value={filetype} data-type="filetype" onChange={this.onChange} />
				</div>

				<div className="litespeed-col-auto">
					<button type="button" className="button button-link litespeed-collection-button litespeed-danger" onClick={this.delRow}>
						<span className="dashicons dashicons-dismiss"></span>
						<span className="screen-reader-text">{litespeed_data['lang']['cdn_mapping_remove']}</span>
					</button>
				</div>
			</div>
		);
	}
}
var litespeed_vary=document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/,"$1");litespeed_vary||fetch("litespeed_url",{method:"POST",cache:"no-cache",redirect:"follow"}).then(e=>e.json()).then(e=>{console.log(e),e.hasOwnProperty("reload")&&"yes"==e.reload&&(sessionStorage.setItem("litespeed_docref",document.referrer),window.location.reload(!0))});var litespeed_docref=sessionStorage.getItem("litespeed_docref");litespeed_docref&&(Object.defineProperty(document,"referrer",{get:function(){return litespeed_docref}}),sessionStorage.removeItem("litespeed_docref"));var litespeed_docref = sessionStorage.getItem('litespeed_docref');
if (litespeed_docref) {
	Object.defineProperty(document, 'referrer', {
		get: function () {
			return litespeed_docref;
		},
	});
	sessionStorage.removeItem('litespeed_docref');
}
/**
 * Lazyload init js
 *
 * @author LiteSpeed
 * @since 1.4
 *
 */

(function (window, document) {
	'use strict';

	var instance;
	var update_lazyload;

	var litespeed_finish_callback = function () {
		document.body.classList.add('litespeed_lazyloaded');
	};

	var init = function () {
		console.log('[LiteSpeed] Start Lazy Load');
		instance = new LazyLoad(
			Object.assign(
				{},
				window.lazyLoadOptions || {},
				{
					elements_selector: '[data-lazyloaded]',
					callback_finish: litespeed_finish_callback,
				},
			)
		);

		update_lazyload = function () {
			instance.update();
		};

		if (window.MutationObserver) {
			new MutationObserver(update_lazyload).observe(document.documentElement, { childList: true, subtree: true, attributes: true });
		}
	};

	window.addEventListener ? window.addEventListener('load', init, false) : window.attachEvent('onload', init);
})(window, document);
/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.o=b||a;this.c=this.o.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&("style"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}
function w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function y(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
function ea(a){return a.o.location.hostname||a.a.location.hostname}function z(a,b,c){function d(){m&&e&&f&&(m(g),m=null)}b=t(a,"link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,m=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);u(a,"head",b)}
function A(a,b,c,d){var e=a.c.getElementsByTagName("head")[0];if(e){var f=t(a,"script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function B(){this.a=0;this.c=null}function C(a){a.a++;return function(){a.a--;D(a)}}function E(a,b){a.c=b;D(a)}function D(a){0==a.a&&a.c&&(a.c(),a.c=null)};function F(a){this.a=a||"-"}F.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.a)};function G(a,b){this.c=a;this.f=4;this.a="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return H(a)+" "+(a.f+"00")+" 300px "+I(a.c)}function I(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function J(a){return a.a+a.f}function H(a){var b="normal";"o"===a.a?b="oblique":"i"===a.a&&(b="italic");return b}
function ga(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.o.document.documentElement;this.h=b;this.a=new F("-");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c("wf","loading")]);K(a,"loading")}function L(a){if(a.g){var b=y(a.f,a.a.c("wf","active")),c=[],d=[a.a.c("wf","loading")];b||c.push(a.a.c("wf","inactive"));w(a.f,c,d)}K(a,"inactive")}function K(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,J(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function M(a,b){this.c=a;this.f=b;this.a=t(this.c,"span",{"aria-hidden":"true"},this.f)}function N(a){u(a.c,"body",a.a)}function O(a){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+I(a.c)+";"+("font-style:"+H(a)+";font-weight:"+(a.f+"00")+";")};function P(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}P.prototype.start=function(){var a=this.c.o.document,b=this,c=q(),d=new Promise(function(d,e){function f(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.s);this.h=new M(this.c,this.s);this.j=new M(this.c,this.s);this.m=new M(this.c,this.s);a=new G(this.a.c+",serif",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+",sans-serif",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G("serif",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G("sans-serif",J(this.a));a=
O(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:"serif",C:"sans-serif"},S=null;function T(){if(null===S){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.m.a.offsetWidth;this.A=q();U(this)};
function la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,J(a).toString(),"active")],[b.a.c("wf",a.c,J(a).toString(),"loading"),b.a.c("wf",a.c,J(a).toString(),"inactive")]);K(b,"fontactive",a);this.m=!0;na(this)};
W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,J(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,J(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,J(a).toString(),"inactive"));w(b.f,d,e)}K(b,"fontinactive",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),K(a,"active")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};
function qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h<c.length;h++){var k=c[h],n=m[k.c],r=b.a,x=k;r.g&&w(r.f,[r.a.c("wf",x.c,J(x).toString(),"loading")]);K(r,"fontloading",x);r=null;if(null===X)if(window.FontFace){var x=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent),xa=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);
X=x?42<parseInt(x[1],10):xa?!1:!0}else X=!1;X?r=new P(p(b.g,b),p(b.h,b),b.c,k,b.s,n):r=new Q(p(b.g,b),p(b.h,b),b.c,k,b.s,a,n);l.push(r)}for(h=0;h<l.length;h++)l[h].start()}},0)}function pa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){qa(a,f,b,d,c)})};function ra(a,b){this.c=a;this.a=b}
ra.prototype.load=function(a){function b(){if(f["__mti_fntLst"+d]){var c=f["__mti_fntLst"+d](),e=[],h;if(c)for(var l=0;l<c.length;l++){var k=c[l].fontfamily;void 0!=c[l].fontStyle&&void 0!=c[l].fontWeight?(h=c[l].fontStyle+c[l].fontWeight,e.push(new G(k,h))):e.push(new G(k))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.o;A(this.c,(c.a.api||"https://fast.fonts.net/jsapi")+"/"+d+".js"+(e?"?v="+e:""),function(e){e?a([]):(f["__MonotypeConfiguration__"+
d]=function(){return c.a},b())}).id="__MonotypeAPIScript__"+d}else a([])};function sa(a,b){this.c=a;this.a=b}sa.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new B;b=0;for(c=d.length;b<c;b++)z(this.c,d[b],C(g));var m=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),l=0;l<h.length;l+=1)m.push(new G(d[0],h[l]));else m.push(new G(d[0]));E(g,function(){a(m,f)})};function ta(a,b){a?this.c=a:this.c=ua;this.a=[];this.f=[];this.g=b||""}var ua="https://fonts.googleapis.com/css";function va(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.f.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.a.push(e.join(f))}}
function wa(a){if(0==a.a.length)throw Error("No fonts to load!");if(-1!=a.c.indexOf("kit="))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,"+"));b=a.c+"?family="+c.join("%7C");0<a.f.length&&(b+="&subset="+a.f.join(","));0<a.g.length&&(b+="&text="+encodeURIComponent(a.g));return b};function ya(a){this.f=a;this.a=[];this.c={}}
var za={latin:"BESbswy","latin-ext":"\u00e7\u00f6\u00fc\u011f\u015f",cyrillic:"\u0439\u044f\u0416",greek:"\u03b1\u03b2\u03a3",khmer:"\u1780\u1781\u1782",Hanuman:"\u1780\u1781\u1782"},Aa={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Ba={i:"i",italic:"i",n:"n",normal:"n"},
Ca=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
function Da(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(":"),e=d[0].replace(/\+/g," "),f=["n4"];if(2<=d.length){var g;var m=d[1];g=[];if(m)for(var m=m.split(","),h=m.length,l=0;l<h;l++){var k;k=m[l];if(k.match(/^[\w-]+$/)){var n=Ca.exec(k.toLowerCase());if(null==n)k="";else{k=n[2];k=null==k||""==k?"n":Ba[k];n=n[1];if(null==n||""==n)n="4";else var r=Aa[n],n=r?r:isNaN(n)?"4":n.substr(0,1);k=[k,n].join("")}}else k="";k&&g.push(k)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(","):
g,0<d.length&&(d=za[d[0]])&&(a.c[e]=d))}a.c[e]||(d=za[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new G(e,f[d]))}};function Ea(a,b){this.c=a;this.a=b}var Fa={Arimo:!0,Cousine:!0,Tinos:!0};Ea.prototype.load=function(a){var b=new B,c=this.c,d=new ta(this.a.api,this.a.text),e=this.a.families;va(d,e);var f=new ya(e);Da(f);z(c,wa(d),C(b));E(b,function(){a(f.a,f.c,Fa)})};function Ga(a,b){this.c=a;this.a=b}Ga.prototype.load=function(a){var b=this.a.id,c=this.c.o;b?A(this.c,(this.a.api||"https://use.typekit.net")+"/"+b+".js",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],m=b[f+1],h=0;h<m.length;h++)e.push(new G(g,m[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(l){}a(e)}},2E3):a([])};function Ha(a,b){this.c=a;this.f=b;this.a=[]}Ha.prototype.load=function(a){var b=this.f.id,c=this.c.o,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,m=c.fonts.length;g<m;++g){var h=c.fonts[g];d.a.push(new G(h.name,ga("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.a)},A(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+ea(this.c)+"/"+b+".js",function(b){b&&a([])})):a([])};var Y=new oa(window);Y.a.c.custom=function(a,b){return new sa(b,a)};Y.a.c.fontdeck=function(a,b){return new Ha(b,a)};Y.a.c.monotype=function(a,b){return new ra(b,a)};Y.a.c.typekit=function(a,b){return new Ga(b,a)};Y.a.c.google=function(a,b){return new Ea(b,a)};var Z={load:p(Y.load,Y)};"function"===typeof define&&define.amd?define(function(){return Z}):"undefined"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());
/*
* iziModal | v1.6.0
* https://izimodal.marcelodolza.com/
* by Marcelo Dolce.
*/
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=function(e,i){return void 0===i&&(i="undefined"!=typeof window?require("jquery"):require("jquery")(e)),t(i),i}:t(jQuery)}(function(t){function e(){var t,e=document.createElement("fakeelement"),i={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in i)if(void 0!==e.style[t])return i[t]}function i(t){return 9===t?navigator.appVersion.indexOf("MSIE 9.")!==-1:(userAgent=navigator.userAgent,userAgent.indexOf("MSIE ")>-1||userAgent.indexOf("Trident/")>-1)}function n(t){var e=/%|px|em|cm|vh|vw/;return parseInt(String(t).split(e)[0])}function o(e){var i=e.replace(/^.*#/,""),n=t(e);n.attr("id",i+"-tmp"),window.location.hash=e,n.attr("id",i)}var s=t(window),a=t(document),r="iziModal",l={CLOSING:"closing",CLOSED:"closed",OPENING:"opening",OPENED:"opened",DESTROYED:"destroyed"},d=e(),h=!!/Mobi/.test(navigator.userAgent);window.$iziModal={},window.$iziModal.autoOpen=0,window.$iziModal.history=!1;var c=function(t,e){this.init(t,e)};return c.prototype={constructor:c,init:function(e,i){var n=this;this.$element=t(e),void 0!==this.$element[0].id&&""!==this.$element[0].id?this.id=this.$element[0].id:(this.id=r+Math.floor(1e7*Math.random()+1),this.$element.attr("id",this.id)),this.classes=void 0!==this.$element.attr("class")?this.$element.attr("class"):"",this.content=this.$element.html(),this.state=l.CLOSED,this.options=i,this.width=0,this.timer=null,this.timerTimeout=null,this.progressBar=null,this.isPaused=!1,this.isFullscreen=!1,this.headerHeight=0,this.modalHeight=0,this.$overlay=t('<div class="'+r+'-overlay" style="background-color:'+i.overlayColor+'"></div>'),this.$navigate=t('<div class="'+r+'-navigate"><div class="'+r+'-navigate-caption">Use</div><button class="'+r+'-navigate-prev"></button><button class="'+r+'-navigate-next"></button></div>'),this.group={name:this.$element.attr("data-"+r+"-group"),index:null,ids:[]},this.$element.attr("aria-hidden","true"),this.$element.attr("aria-labelledby",this.id),this.$element.attr("role","dialog"),this.$element.hasClass("iziModal")||this.$element.addClass("iziModal"),void 0===this.group.name&&""!==i.group&&(this.group.name=i.group,this.$element.attr("data-"+r+"-group",i.group)),this.options.loop===!0&&this.$element.attr("data-"+r+"-loop",!0),t.each(this.options,function(t,e){var o=n.$element.attr("data-"+r+"-"+t);try{"undefined"!=typeof o&&(""===o||"true"==o?i[t]=!0:"false"==o?i[t]=!1:"function"==typeof e?i[t]=new Function(o):i[t]=o)}catch(s){}}),i.appendTo!==!1&&this.$element.appendTo(i.appendTo),i.iframe===!0?(this.$element.html('<div class="'+r+'-wrap"><div class="'+r+'-content"><iframe class="'+r+'-iframe"></iframe>'+this.content+"</div></div>"),null!==i.iframeHeight&&this.$element.find("."+r+"-iframe").css("height",i.iframeHeight)):this.$element.html('<div class="'+r+'-wrap"><div class="'+r+'-content">'+this.content+"</div></div>"),null!==this.options.background&&this.$element.css("background",this.options.background),this.$wrap=this.$element.find("."+r+"-wrap"),null===i.zindex||isNaN(parseInt(i.zindex))||(this.$element.css("z-index",i.zindex),this.$navigate.css("z-index",i.zindex-1),this.$overlay.css("z-index",i.zindex-2)),""!==i.radius&&this.$element.css("border-radius",i.radius),""!==i.padding&&this.$element.find("."+r+"-content").css("padding",i.padding),""!==i.theme&&("light"===i.theme?this.$element.addClass(r+"-light"):this.$element.addClass(i.theme)),i.rtl===!0&&this.$element.addClass(r+"-rtl"),i.openFullscreen===!0&&(this.isFullscreen=!0,this.$element.addClass("isFullscreen")),this.createHeader(),this.recalcWidth(),this.recalcVerticalPos(),!n.options.afterRender||"function"!=typeof n.options.afterRender&&"object"!=typeof n.options.afterRender||n.options.afterRender(n)},createHeader:function(){this.$header=t('<div class="'+r+'-header"><h2 class="'+r+'-header-title">'+this.options.title+'</h2><p class="'+r+'-header-subtitle">'+this.options.subtitle+'</p><div class="'+r+'-header-buttons"></div></div>'),this.options.closeButton===!0&&this.$header.find("."+r+"-header-buttons").append('<a href="javascript:void(0)" class="'+r+"-button "+r+'-button-close" data-'+r+"-close></a>"),this.options.fullscreen===!0&&this.$header.find("."+r+"-header-buttons").append('<a href="javascript:void(0)" class="'+r+"-button "+r+'-button-fullscreen" data-'+r+"-fullscreen></a>"),this.options.timeoutProgressbar===!0&&this.$header.prepend('<div class="'+r+'-progressbar"><div style="background-color:'+this.options.timeoutProgressbarColor+'"></div></div>'),""===this.options.subtitle&&this.$header.addClass(r+"-noSubtitle"),""!==this.options.title&&(null!==this.options.headerColor&&(this.options.borderBottom===!0&&this.$element.css("border-bottom","3px solid "+this.options.headerColor),this.$header.css("background",this.options.headerColor)),null===this.options.icon&&null===this.options.iconText||(this.$header.prepend('<i class="'+r+'-header-icon"></i>'),null!==this.options.icon&&this.$header.find("."+r+"-header-icon").addClass(this.options.icon).css("color",this.options.iconColor),null!==this.options.iconText&&this.$header.find("."+r+"-header-icon").html(this.options.iconText)),this.$element.css("overflow","hidden").prepend(this.$header))},setGroup:function(e){var i=this,n=this.group.name||e;if(this.group.ids=[],void 0!==e&&e!==this.group.name&&(n=e,this.group.name=n,this.$element.attr("data-"+r+"-group",n)),void 0!==n&&""!==n){var o=0;t.each(t("."+r+"[data-"+r+"-group="+n+"]"),function(e,n){i.group.ids.push(t(this)[0].id),i.id==t(this)[0].id&&(i.group.index=o),o++})}},toggle:function(){this.state==l.OPENED&&this.close(),this.state==l.CLOSED&&this.open()},startProgress:function(t){var e=this;this.isPaused=!1,clearTimeout(this.timerTimeout),this.options.timeoutProgressbar===!0?(this.progressBar={hideEta:null,maxHideTime:null,currentTime:(new Date).getTime(),el:this.$element.find("."+r+"-progressbar > div"),updateProgress:function(){if(!e.isPaused){e.progressBar.currentTime=e.progressBar.currentTime+10;var t=(e.progressBar.hideEta-e.progressBar.currentTime)/e.progressBar.maxHideTime*100;e.progressBar.el.width(t+"%"),t<0&&e.close()}}},t>0&&(this.progressBar.maxHideTime=parseFloat(t),this.progressBar.hideEta=(new Date).getTime()+this.progressBar.maxHideTime,this.timerTimeout=setInterval(this.progressBar.updateProgress,10))):this.timerTimeout=setTimeout(function(){e.close()},e.options.timeout)},pauseProgress:function(){this.isPaused=!0},resumeProgress:function(){this.isPaused=!1},resetProgress:function(t){clearTimeout(this.timerTimeout),this.progressBar={},this.$element.find("."+r+"-progressbar > div").width("100%")},open:function(e){function i(){s.state=l.OPENED,s.$element.trigger(l.OPENED),!s.options.onOpened||"function"!=typeof s.options.onOpened&&"object"!=typeof s.options.onOpened||s.options.onOpened(s)}function n(){s.$element.off("click","[data-"+r+"-close]").on("click","[data-"+r+"-close]",function(e){e.preventDefault();var i=t(e.currentTarget).attr("data-"+r+"-transitionOut");void 0!==i?s.close({transition:i}):s.close()}),s.$element.off("click","[data-"+r+"-fullscreen]").on("click","[data-"+r+"-fullscreen]",function(t){t.preventDefault(),s.isFullscreen===!0?(s.isFullscreen=!1,s.$element.removeClass("isFullscreen")):(s.isFullscreen=!0,s.$element.addClass("isFullscreen")),s.options.onFullscreen&&"function"==typeof s.options.onFullscreen&&s.options.onFullscreen(s),s.$element.trigger("fullscreen",s)}),s.$navigate.off("click","."+r+"-navigate-next").on("click","."+r+"-navigate-next",function(t){s.next(t)}),s.$element.off("click","[data-"+r+"-next]").on("click","[data-"+r+"-next]",function(t){s.next(t)}),s.$navigate.off("click","."+r+"-navigate-prev").on("click","."+r+"-navigate-prev",function(t){s.prev(t)}),s.$element.off("click","[data-"+r+"-prev]").on("click","[data-"+r+"-prev]",function(t){s.prev(t)})}var s=this;try{void 0!==e&&e.preventClose===!1&&t.each(t("."+r),function(e,i){if(void 0!==t(i).data().iziModal){var n=t(i).iziModal("getState");"opened"!=n&&"opening"!=n||t(i).iziModal("close")}})}catch(c){}if(function(){if(s.options.history){var t=document.title;document.title=t+" - "+s.options.title,o("#"+s.id),document.title=t,window.$iziModal.history=!0}else window.$iziModal.history=!1}(),this.state==l.CLOSED){if(n(),this.setGroup(),this.state=l.OPENING,this.$element.trigger(l.OPENING),this.$element.attr("aria-hidden","false"),this.options.timeoutProgressbar===!0&&this.$element.find("."+r+"-progressbar > div").width("100%"),this.options.iframe===!0){this.$element.find("."+r+"-content").addClass(r+"-content-loader"),this.$element.find("."+r+"-iframe").on("load",function(){t(this).parent().removeClass(r+"-content-loader")});var u=null;try{u=""!==t(e.currentTarget).attr("href")?t(e.currentTarget).attr("href"):null}catch(c){}if(null===this.options.iframeURL||null!==u&&void 0!==u||(u=this.options.iframeURL),null===u||void 0===u)throw new Error("Failed to find iframe URL");this.$element.find("."+r+"-iframe").attr("src",u)}(this.options.bodyOverflow||h)&&(t("html").addClass(r+"-isOverflow"),h&&t("body").css("overflow","hidden")),this.options.onOpening&&"function"==typeof this.options.onOpening&&this.options.onOpening(this),function(){if(s.group.ids.length>1){s.$navigate.appendTo("body"),s.$navigate.addClass("fadeIn"),s.options.navigateCaption===!0&&s.$navigate.find("."+r+"-navigate-caption").show();var n=s.$element.outerWidth();s.options.navigateArrows!==!1?"closeScreenEdge"===s.options.navigateArrows?(s.$navigate.find("."+r+"-navigate-prev").css("left",0).show(),s.$navigate.find("."+r+"-navigate-next").css("right",0).show()):(s.$navigate.find("."+r+"-navigate-prev").css("margin-left",-(n/2+84)).show(),s.$navigate.find("."+r+"-navigate-next").css("margin-right",-(n/2+84)).show()):(s.$navigate.find("."+r+"-navigate-prev").hide(),s.$navigate.find("."+r+"-navigate-next").hide());var o;0===s.group.index&&(o=t("."+r+"[data-"+r+'-group="'+s.group.name+'"][data-'+r+"-loop]").length,0===o&&s.options.loop===!1&&s.$navigate.find("."+r+"-navigate-prev").hide()),s.group.index+1===s.group.ids.length&&(o=t("."+r+"[data-"+r+'-group="'+s.group.name+'"][data-'+r+"-loop]").length,0===o&&s.options.loop===!1&&s.$navigate.find("."+r+"-navigate-next").hide())}s.options.overlay===!0&&(s.options.appendToOverlay===!1?s.$overlay.appendTo("body"):s.$overlay.appendTo(s.options.appendToOverlay)),s.options.transitionInOverlay&&s.$overlay.addClass(s.options.transitionInOverlay);var a=s.options.transitionIn;"object"==typeof e&&(void 0===e.transition&&void 0===e.transitionIn||(a=e.transition||e.transitionIn),void 0!==e.zindex&&s.setZindex(e.zindex)),""!==a&&void 0!==d?(s.$element.addClass("transitionIn "+a).show(),s.$wrap.one(d,function(){s.$element.removeClass(a+" transitionIn"),s.$overlay.removeClass(s.options.transitionInOverlay),s.$navigate.removeClass("fadeIn"),i()})):(s.$element.show(),i()),s.options.pauseOnHover!==!0||s.options.pauseOnHover!==!0||s.options.timeout===!1||isNaN(parseInt(s.options.timeout))||s.options.timeout===!1||0===s.options.timeout||(s.$element.off("mouseenter").on("mouseenter",function(t){t.preventDefault(),s.isPaused=!0}),s.$element.off("mouseleave").on("mouseleave",function(t){t.preventDefault(),s.isPaused=!1}))}(),this.options.timeout===!1||isNaN(parseInt(this.options.timeout))||this.options.timeout===!1||0===this.options.timeout||s.startProgress(this.options.timeout),this.options.overlayClose&&!this.$element.hasClass(this.options.transitionOut)&&this.$overlay.click(function(){s.close()}),this.options.focusInput&&this.$element.find(":input:not(button):enabled:visible:first").focus(),function p(){s.recalcLayout(),s.timer=setTimeout(p,300)}(),a.on("keydown."+r,function(t){s.options.closeOnEscape&&27===t.keyCode&&s.close()})}},close:function(e){function i(){n.state=l.CLOSED,n.$element.trigger(l.CLOSED),n.options.iframe===!0&&n.$element.find("."+r+"-iframe").attr("src",""),(n.options.bodyOverflow||h)&&(t("html").removeClass(r+"-isOverflow"),h&&t("body").css("overflow","auto")),n.options.onClosed&&"function"==typeof n.options.onClosed&&n.options.onClosed(n),n.options.restoreDefaultContent===!0&&n.$element.find("."+r+"-content").html(n.content),0===t("."+r+":visible").length&&t("html").removeClass(r+"-isAttached")}var n=this;if(this.state==l.OPENED||this.state==l.OPENING){a.off("keydown."+r),this.state=l.CLOSING,this.$element.trigger(l.CLOSING),this.$element.attr("aria-hidden","true"),clearTimeout(this.timer),clearTimeout(this.timerTimeout),n.options.onClosing&&"function"==typeof n.options.onClosing&&n.options.onClosing(this);var o=this.options.transitionOut;"object"==typeof e&&(void 0===e.transition&&void 0===e.transitionOut||(o=e.transition||e.transitionOut)),o===!1||""===o||void 0===d?(this.$element.hide(),this.$overlay.remove(),this.$navigate.remove(),i()):(this.$element.attr("class",[this.classes,r,o,"light"==this.options.theme?r+"-light":this.options.theme,this.isFullscreen===!0?"isFullscreen":"",this.options.rtl?r+"-rtl":""].join(" ")),this.$overlay.attr("class",r+"-overlay "+this.options.transitionOutOverlay),n.options.navigateArrows===!1||h||this.$navigate.attr("class",r+"-navigate fadeOut"),this.$element.one(d,function(){n.$element.hasClass(o)&&n.$element.removeClass(o+" transitionOut").hide(),n.$overlay.removeClass(n.options.transitionOutOverlay).remove(),n.$navigate.removeClass("fadeOut").remove(),i()}))}},next:function(e){var i=this,n="fadeInRight",o="fadeOutLeft",s=t("."+r+":visible"),a={};a.out=this,void 0!==e&&"object"!=typeof e?(e.preventDefault(),s=t(e.currentTarget),n=s.attr("data-"+r+"-transitionIn"),o=s.attr("data-"+r+"-transitionOut")):void 0!==e&&(void 0!==e.transitionIn&&(n=e.transitionIn),void 0!==e.transitionOut&&(o=e.transitionOut)),this.close({transition:o}),setTimeout(function(){for(var e=t("."+r+"[data-"+r+'-group="'+i.group.name+'"][data-'+r+"-loop]").length,o=i.group.index+1;o<=i.group.ids.length;o++){try{a["in"]=t("#"+i.group.ids[o]).data().iziModal}catch(s){}if("undefined"!=typeof a["in"]){t("#"+i.group.ids[o]).iziModal("open",{transition:n});break}if(o==i.group.ids.length&&e>0||i.options.loop===!0)for(var l=0;l<=i.group.ids.length;l++)if(a["in"]=t("#"+i.group.ids[l]).data().iziModal,"undefined"!=typeof a["in"]){t("#"+i.group.ids[l]).iziModal("open",{transition:n});break}}},200),t(document).trigger(r+"-group-change",a)},prev:function(e){var i=this,n="fadeInLeft",o="fadeOutRight",s=t("."+r+":visible"),a={};a.out=this,void 0!==e&&"object"!=typeof e?(e.preventDefault(),s=t(e.currentTarget),n=s.attr("data-"+r+"-transitionIn"),o=s.attr("data-"+r+"-transitionOut")):void 0!==e&&(void 0!==e.transitionIn&&(n=e.transitionIn),void 0!==e.transitionOut&&(o=e.transitionOut)),this.close({transition:o}),setTimeout(function(){for(var e=t("."+r+"[data-"+r+'-group="'+i.group.name+'"][data-'+r+"-loop]").length,o=i.group.index;o>=0;o--){try{a["in"]=t("#"+i.group.ids[o-1]).data().iziModal}catch(s){}if("undefined"!=typeof a["in"]){t("#"+i.group.ids[o-1]).iziModal("open",{transition:n});break}if(0===o&&e>0||i.options.loop===!0)for(var l=i.group.ids.length-1;l>=0;l--)if(a["in"]=t("#"+i.group.ids[l]).data().iziModal,"undefined"!=typeof a["in"]){t("#"+i.group.ids[l]).iziModal("open",{transition:n});break}}},200),t(document).trigger(r+"-group-change",a)},destroy:function(){var e=t.Event("destroy");this.$element.trigger(e),a.off("keydown."+r),clearTimeout(this.timer),clearTimeout(this.timerTimeout),this.options.iframe===!0&&this.$element.find("."+r+"-iframe").remove(),this.$element.html(this.$element.find("."+r+"-content").html()),this.$element.off("click","[data-"+r+"-close]"),this.$element.off("click","[data-"+r+"-fullscreen]"),this.$element.off("."+r).removeData(r).attr("style",""),this.$overlay.remove(),this.$navigate.remove(),this.$element.trigger(l.DESTROYED),this.$element=null},getState:function(){return this.state},getGroup:function(){return this.group},setWidth:function(t){this.options.width=t,this.recalcWidth();var e=this.$element.outerWidth();this.options.navigateArrows!==!0&&"closeToModal"!=this.options.navigateArrows||(this.$navigate.find("."+r+"-navigate-prev").css("margin-left",-(e/2+84)).show(),this.$navigate.find("."+r+"-navigate-next").css("margin-right",-(e/2+84)).show())},setTop:function(t){this.options.top=t,this.recalcVerticalPos(!1)},setBottom:function(t){this.options.bottom=t,this.recalcVerticalPos(!1)},setHeader:function(t){t?this.$element.find("."+r+"-header").show():(this.headerHeight=0,this.$element.find("."+r+"-header").hide())},setTitle:function(t){this.options.title=t,0===this.headerHeight&&this.createHeader(),0===this.$header.find("."+r+"-header-title").length&&this.$header.append('<h2 class="'+r+'-header-title"></h2>'),this.$header.find("."+r+"-header-title").html(t)},setSubtitle:function(t){""===t?(this.$header.find("."+r+"-header-subtitle").remove(),this.$header.addClass(r+"-noSubtitle")):(0===this.$header.find("."+r+"-header-subtitle").length&&this.$header.append('<p class="'+r+'-header-subtitle"></p>'),this.$header.removeClass(r+"-noSubtitle")),this.$header.find("."+r+"-header-subtitle").html(t),this.options.subtitle=t},setIcon:function(t){0===this.$header.find("."+r+"-header-icon").length&&this.$header.prepend('<i class="'+r+'-header-icon"></i>'),this.$header.find("."+r+"-header-icon").attr("class",r+"-header-icon "+t),this.options.icon=t},setIconText:function(t){this.$header.find("."+r+"-header-icon").html(t),this.options.iconText=t},setHeaderColor:function(t){this.options.borderBottom===!0&&this.$element.css("border-bottom","3px solid "+t),this.$header.css("background",t),this.options.headerColor=t},setBackground:function(t){t===!1?(this.options.background=null,this.$element.css("background","")):(this.$element.css("background",t),this.options.background=t)},setZindex:function(t){isNaN(parseInt(this.options.zindex))||(this.options.zindex=t,this.$element.css("z-index",t),this.$navigate.css("z-index",t-1),this.$overlay.css("z-index",t-2))},setFullscreen:function(t){t?(this.isFullscreen=!0,this.$element.addClass("isFullscreen")):(this.isFullscreen=!1,this.$element.removeClass("isFullscreen"))},setContent:function(t){if("object"==typeof t){var e=t["default"]||!1;e===!0&&(this.content=t.content),t=t.content}this.options.iframe===!1&&this.$element.find("."+r+"-content").html(t)},setTransitionIn:function(t){this.options.transitionIn=t},setTransitionOut:function(t){this.options.transitionOut=t},setTimeout:function(t){this.options.timeout=t},resetContent:function(){this.$element.find("."+r+"-content").html(this.content)},startLoading:function(){this.$element.find("."+r+"-loader").length||this.$element.append('<div class="'+r+'-loader fadeIn"></div>'),this.$element.find("."+r+"-loader").css({top:this.headerHeight,borderRadius:this.options.radius})},stopLoading:function(){var t=this.$element.find("."+r+"-loader");t.length||(this.$element.prepend('<div class="'+r+'-loader fadeIn"></div>'),t=this.$element.find("."+r+"-loader").css("border-radius",this.options.radius)),t.removeClass("fadeIn").addClass("fadeOut"),setTimeout(function(){t.remove()},600)},recalcWidth:function(){var t=this;if(this.$element.css("max-width",this.options.width),i()){var e=t.options.width;e.toString().split("%").length>1&&(e=t.$element.outerWidth()),t.$element.css({left:"50%",marginLeft:-(e/2)})}},recalcVerticalPos:function(t){null!==this.options.top&&this.options.top!==!1?(this.$element.css("margin-top",this.options.top),0===this.options.top&&this.$element.css({borderTopRightRadius:0,borderTopLeftRadius:0})):t===!1&&this.$element.css({marginTop:"",borderRadius:this.options.radius}),null!==this.options.bottom&&this.options.bottom!==!1?(this.$element.css("margin-bottom",this.options.bottom),0===this.options.bottom&&this.$element.css({borderBottomRightRadius:0,borderBottomLeftRadius:0})):t===!1&&this.$element.css({marginBottom:"",borderRadius:this.options.radius})},recalcLayout:function(){var e=this,o=s.height(),a=this.$element.outerHeight(),d=this.$element.outerWidth(),h=this.$element.find("."+r+"-content")[0].scrollHeight,c=h+this.headerHeight,u=this.$element.innerHeight()-this.headerHeight,p=(parseInt(-((this.$element.innerHeight()+1)/2))+"px",this.$wrap.scrollTop()),f=0;i()&&(d>=s.width()||this.isFullscreen===!0?this.$element.css({left:"0",marginLeft:""}):this.$element.css({left:"50%",marginLeft:-(d/2)})),this.options.borderBottom===!0&&""!==this.options.title&&(f=3),this.$element.find("."+r+"-header").length&&this.$element.find("."+r+"-header").is(":visible")?(this.headerHeight=parseInt(this.$element.find("."+r+"-header").innerHeight()),this.$element.css("overflow","hidden")):(this.headerHeight=0,this.$element.css("overflow","")),this.$element.find("."+r+"-loader").length&&this.$element.find("."+r+"-loader").css("top",this.headerHeight),a!==this.modalHeight&&(this.modalHeight=a,this.options.onResize&&"function"==typeof this.options.onResize&&this.options.onResize(this)),this.state!=l.OPENED&&this.state!=l.OPENING||(this.options.iframe===!0&&(o<this.options.iframeHeight+this.headerHeight+f||this.isFullscreen===!0?this.$element.find("."+r+"-iframe").css("height",o-(this.headerHeight+f)):this.$element.find("."+r+"-iframe").css("height",this.options.iframeHeight)),a==o?this.$element.addClass("isAttached"):this.$element.removeClass("isAttached"),this.isFullscreen===!1&&this.$element.width()>=s.width()?this.$element.find("."+r+"-button-fullscreen").hide():this.$element.find("."+r+"-button-fullscreen").show(),this.recalcButtons(),this.isFullscreen===!1&&(o=o-(n(this.options.top)||0)-(n(this.options.bottom)||0)),c>o?(this.options.top>0&&null===this.options.bottom&&h<s.height()&&this.$element.addClass("isAttachedBottom"),this.options.bottom>0&&null===this.options.top&&h<s.height()&&this.$element.addClass("isAttachedTop"),1===t("."+r+":visible").length&&t("html").addClass(r+"-isAttached"),this.$element.css("height",o)):(this.$element.css("height",h+(this.headerHeight+f)),this.$element.removeClass("isAttachedTop isAttachedBottom"),1===t("."+r+":visible").length&&t("html").removeClass(r+"-isAttached")),function(){h>u&&c>o?(e.$element.addClass("hasScroll"),e.$wrap.css("height",a-(e.headerHeight+f))):(e.$element.removeClass("hasScroll"),e.$wrap.css("height","auto"))}(),function(){u+p<h-30?e.$element.addClass("hasShadow"):e.$element.removeClass("hasShadow")}())},recalcButtons:function(){var t=this.$header.find("."+r+"-header-buttons").innerWidth()+10;this.options.rtl===!0?this.$header.css("padding-left",t):this.$header.css("padding-right",t)}},s.off("load."+r).on("load."+r,function(e){var i=document.location.hash;if(0===window.$iziModal.autoOpen&&!t("."+r).is(":visible"))try{var n=t(i).data();"undefined"!=typeof n&&n.iziModal.options.autoOpen!==!1&&t(i).iziModal("open")}catch(o){}}),s.off("hashchange."+r).on("hashchange."+r,function(e){var i=document.location.hash;if(""!==i)try{var n=t(i).data();"undefined"!=typeof n&&"opening"!==t(i).iziModal("getState")&&setTimeout(function(){t(i).iziModal("open",{preventClose:!1})},200)}catch(o){}else window.$iziModal.history&&t.each(t("."+r),function(e,i){if(void 0!==t(i).data().iziModal){var n=t(i).iziModal("getState");"opened"!=n&&"opening"!=n||t(i).iziModal("close")}})}),a.off("click","[data-"+r+"-open]").on("click","[data-"+r+"-open]",function(e){e.preventDefault();var i=t("."+r+":visible"),n=t(e.currentTarget).attr("data-"+r+"-open"),o=t(e.currentTarget).attr("data-"+r+"-preventClose"),s=t(e.currentTarget).attr("data-"+r+"-transitionIn"),a=t(e.currentTarget).attr("data-"+r+"-transitionOut"),l=t(e.currentTarget).attr("data-"+r+"-zindex");void 0!==l&&t(n).iziModal("setZindex",l),void 0===o&&(void 0!==a?i.iziModal("close",{transition:a}):i.iziModal("close")),setTimeout(function(){void 0!==s?t(n).iziModal("open",{transition:s}):t(n).iziModal("open")},200)}),a.off("keyup."+r).on("keyup."+r,function(e){if(t("."+r+":visible").length){var i=t("."+r+":visible")[0].id,n=t("#"+i).data().iziModal.options.arrowKeys,o=t("#"+i).iziModal("getGroup"),s=e||window.event,a=s.target||s.srcElement;void 0===i||!n||void 0===o.name||s.ctrlKey||s.metaKey||s.altKey||"INPUT"===a.tagName.toUpperCase()||"TEXTAREA"==a.tagName.toUpperCase()||(37===s.keyCode?t("#"+i).iziModal("prev",s):39===s.keyCode&&t("#"+i).iziModal("next",s))}}),t.fn[r]=function(e,i){if(!t(this).length&&"object"==typeof e){var n={$el:document.createElement("div"),id:this.selector.split("#"),"class":this.selector.split(".")};if(n.id.length>1){try{n.$el=document.createElement(id[0])}catch(o){}n.$el.id=this.selector.split("#")[1].trim()}else if(n["class"].length>1){try{n.$el=document.createElement(n["class"][0])}catch(o){}for(var s=1;s<n["class"].length;s++)n.$el.classList.add(n["class"][s].trim())}document.body.appendChild(n.$el),this.push(t(this.selector))}for(var a=this,l=0;l<a.length;l++){var d=t(a[l]),h=d.data(r),u=t.extend({},t.fn[r].defaults,d.data(),"object"==typeof e&&e);if(h||e&&"object"!=typeof e){if("string"==typeof e&&"undefined"!=typeof h)return h[e].apply(h,[].concat(i))}else d.data(r,h=new c(d,u));u.autoOpen&&(isNaN(parseInt(u.autoOpen))?u.autoOpen===!0&&h.open():setTimeout(function(){h.open()},u.autoOpen),window.$iziModal.autoOpen++)}return this},t.fn[r].defaults={title:"",subtitle:"",headerColor:"#88A0B9",background:null,theme:"",icon:null,iconText:null,iconColor:"",rtl:!1,width:600,top:null,bottom:null,borderBottom:!0,padding:0,radius:3,zindex:999,iframe:!1,iframeHeight:400,iframeURL:null,focusInput:!0,group:"",loop:!1,arrowKeys:!0,navigateCaption:!0,navigateArrows:!0,history:!1,restoreDefaultContent:!1,autoOpen:0,bodyOverflow:!1,fullscreen:!1,openFullscreen:!1,closeOnEscape:!0,closeButton:!0,appendTo:"body",appendToOverlay:"body",overlay:!0,overlayClose:!0,overlayColor:"rgba(0, 0, 0, 0.4)",timeout:!1,timeoutProgressbar:!1,pauseOnHover:!1,timeoutProgressbarColor:"rgba(255,255,255,0.5)",transitionIn:"comingIn",transitionOut:"comingOut",transitionInOverlay:"fadeIn",transitionOutOverlay:"fadeOut",onFullscreen:function(){},onResize:function(){},onOpening:function(){},onOpened:function(){},onClosing:function(){},onClosed:function(){},afterRender:function(){}},t.fn[r].Constructor=c,t.fn.iziModal});!function(){function e(t,n,i){return t.call.apply(t.bind,arguments)}function o(n,i,t){if(!n)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var t=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(t,e),n.apply(i,t)}}return function(){return n.apply(i,arguments)}}function d(t,n,i){return(d=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?e:o).apply(null,arguments)}var r=Date.now||function(){return+new Date};function n(t,n){this.a=t,this.o=n||t,this.c=this.o.document}var f=!!window.FontFace;function c(t,n,i,e){if(n=t.c.createElement(n),i)for(var o in i)i.hasOwnProperty(o)&&("style"==o?n.style.cssText=i[o]:n.setAttribute(o,i[o]));return e&&n.appendChild(t.c.createTextNode(e)),n}function h(t,n,i){(t=t.c.getElementsByTagName(n)[0])||(t=document.documentElement),t.insertBefore(i,t.lastChild)}function i(t){t.parentNode&&t.parentNode.removeChild(t)}function g(t,n,i){n=n||[],i=i||[];for(var e=t.className.split(/\s+/),o=0;o<n.length;o+=1){for(var a=!1,s=0;s<e.length;s+=1)if(n[o]===e[s]){a=!0;break}a||e.push(n[o])}for(n=[],o=0;o<e.length;o+=1){for(a=!1,s=0;s<i.length;s+=1)if(e[o]===i[s]){a=!0;break}a||n.push(e[o])}t.className=n.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function a(t,n){for(var i=t.className.split(/\s+/),e=0,o=i.length;e<o;e++)if(i[e]==n)return!0;return!1}function l(t,n,i){function e(){s&&o&&(s(a),s=null)}n=c(t,"link",{rel:"stylesheet",href:n,media:"all"});var o=!1,a=null,s=i||null;f?(n.onload=function(){o=!0,e()},n.onerror=function(){o=!0,a=Error("Stylesheet failed to load"),e()}):setTimeout(function(){o=!0,e()},0),h(t,"head",n)}function u(t,n,i,e){var o=t.c.getElementsByTagName("head")[0];if(o){var a=c(t,"script",{src:n}),s=!1;return a.onload=a.onreadystatechange=function(){s||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(s=!0,i&&i(null),a.onload=a.onreadystatechange=null,"HEAD"==a.parentNode.tagName&&o.removeChild(a))},o.appendChild(a),setTimeout(function(){s||(s=!0,i&&i(Error("Script load timeout")))},e||5e3),a}return null}function p(){this.a=0,this.c=null}function v(t){return t.a++,function(){t.a--,s(t)}}function w(t,n){t.c=n,s(t)}function s(t){0==t.a&&t.c&&(t.c(),t.c=null)}function m(t){this.a=t||"-"}function y(t,n){this.c=t,this.f=4,this.a="n";var i=(n||"n4").match(/^([nio])([1-9])$/i);i&&(this.a=i[1],this.f=parseInt(i[2],10))}function b(t){var n=[];t=t.split(/,\s*/);for(var i=0;i<t.length;i++){var e=t[i].replace(/['"]/g,"");-1!=e.indexOf(" ")||/^\d/.test(e)?n.push("'"+e+"'"):n.push(e)}return n.join(",")}function x(t){return t.a+t.f}function j(t){var n="normal";return"o"===t.a?n="oblique":"i"===t.a&&(n="italic"),n}function _(t,n){this.c=t,this.f=t.o.document.documentElement,this.h=n,this.a=new m("-"),this.j=!1!==n.events,this.g=!1!==n.classes}function k(t){if(t.g){var n=a(t.f,t.a.c("wf","active")),i=[],e=[t.a.c("wf","loading")];n||i.push(t.a.c("wf","inactive")),g(t.f,i,e)}T(t,"inactive")}function T(t,n,i){t.j&&t.h[n]&&(i?t.h[n](i.c,x(i)):t.h[n]())}function S(){this.c={}}function C(t,n){this.c=t,this.f=n,this.a=c(this.c,"span",{"aria-hidden":"true"},this.f)}function A(t){h(t.c,"body",t.a)}function N(t){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+b(t.c)+";font-style:"+j(t)+";font-weight:"+t.f+"00;"}function E(t,n,i,e,o,a){this.g=t,this.j=n,this.a=e,this.c=i,this.f=o||3e3,this.h=a||void 0}function W(t,n,i,e,o,a,s){this.v=t,this.B=n,this.c=i,this.a=e,this.s=s||"BESbswy",this.f={},this.w=o||3e3,this.u=a||null,this.m=this.j=this.h=this.g=null,this.g=new C(this.c,this.s),this.h=new C(this.c,this.s),this.j=new C(this.c,this.s),this.m=new C(this.c,this.s),t=N(t=new y(this.a.c+",serif",x(this.a))),this.g.a.style.cssText=t,t=N(t=new y(this.a.c+",sans-serif",x(this.a))),this.h.a.style.cssText=t,t=N(t=new y("serif",x(this.a))),this.j.a.style.cssText=t,t=N(t=new y("sans-serif",x(this.a))),this.m.a.style.cssText=t,A(this.g),A(this.h),A(this.j),A(this.m)}m.prototype.c=function(t){for(var n=[],i=0;i<arguments.length;i++)n.push(arguments[i].replace(/[\W_]+/g,"").toLowerCase());return n.join(this.a)},E.prototype.start=function(){var o=this.c.o.document,a=this,s=r(),t=new Promise(function(i,e){!function n(){var t;r()-s>=a.f?e():o.fonts.load((t=a.a,j(t)+" "+t.f+"00 300px "+b(t.c)),a.h).then(function(t){1<=t.length?i():setTimeout(n,25)},function(){e()})}()}),i=null,n=new Promise(function(t,n){i=setTimeout(n,a.f)});Promise.race([n,t]).then(function(){i&&(clearTimeout(i),i=null),a.g(a.a)},function(){a.j(a.a)})};var F={D:"serif",C:"sans-serif"},I=null;function O(){if(null===I){var t=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);I=!!t&&(parseInt(t[1],10)<536||536===parseInt(t[1],10)&&parseInt(t[2],10)<=11)}return I}function P(t,n,i){for(var e in F)if(F.hasOwnProperty(e)&&n===t.f[F[e]]&&i===t.f[F[e]])return!0;return!1}function B(t){var n,i=t.g.a.offsetWidth,e=t.h.a.offsetWidth;(n=i===t.f.serif&&e===t.f["sans-serif"])||(n=O()&&P(t,i,e)),n?r()-t.A>=t.w?O()&&P(t,i,e)&&(null===t.u||t.u.hasOwnProperty(t.a.c))?L(t,t.v):L(t,t.B):setTimeout(d(function(){B(this)},t),50):L(t,t.v)}function L(t,n){setTimeout(d(function(){i(this.g.a),i(this.h.a),i(this.j.a),i(this.m.a),n(this.a)},t),0)}function D(t,n,i){this.c=t,this.a=n,this.f=0,this.m=this.j=!1,this.s=i}W.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=r(),B(this)};var $=null;function q(t){0==--t.f&&t.j&&(t.m?((t=t.a).g&&g(t.f,[t.a.c("wf","active")],[t.a.c("wf","loading"),t.a.c("wf","inactive")]),T(t,"active")):k(t.a))}function t(t){this.j=t,this.a=new S,this.h=0,this.f=this.g=!0}function H(t,n){this.c=t,this.a=n}function M(t,n){this.c=t,this.a=n}function z(t,n){this.c=t||"https://fonts.googleapis.com/css",this.a=[],this.f=[],this.g=n||""}D.prototype.g=function(t){var n=this.a;n.g&&g(n.f,[n.a.c("wf",t.c,x(t).toString(),"active")],[n.a.c("wf",t.c,x(t).toString(),"loading"),n.a.c("wf",t.c,x(t).toString(),"inactive")]),T(n,"fontactive",t),this.m=!0,q(this)},D.prototype.h=function(t){var n=this.a;if(n.g){var i=a(n.f,n.a.c("wf",t.c,x(t).toString(),"active")),e=[],o=[n.a.c("wf",t.c,x(t).toString(),"loading")];i||e.push(n.a.c("wf",t.c,x(t).toString(),"inactive")),g(n.f,e,o)}T(n,"fontinactive",t),q(this)},t.prototype.load=function(t){this.c=new n(this.j,t.context||this.j),this.g=!1!==t.events,this.f=!1!==t.classes,function(o,t,n){var i=[],e=n.timeout;a=t,a.g&&g(a.f,[a.a.c("wf","loading")]),T(a,"loading");var a;var i=function(t,n,i){var e,o=[];for(e in n)if(n.hasOwnProperty(e)){var a=t.c[e];a&&o.push(a(n[e],i))}return o}(o.a,n,o.c),s=new D(o.c,t,e);for(o.h=i.length,t=0,n=i.length;t<n;t++)i[t].load(function(t,n,i){var e,c,h,l,u,p;c=s,h=t,l=n,u=i,p=0==--(e=o).h,(e.f||e.g)&&setTimeout(function(){var t=u||null,n=l||{};if(0===h.length&&p)k(c.a);else{c.f+=h.length,p&&(c.j=p);var i,e=[];for(i=0;i<h.length;i++){var o=h[i],a=n[o.c],s=c.a,r=o;if(s.g&&g(s.f,[s.a.c("wf",r.c,x(r).toString(),"loading")]),T(s,"fontloading",r),(s=null)===$)if(window.FontFace){var r=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent),f=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);$=r?42<parseInt(r[1],10):!f}else $=!1;s=$?new E(d(c.g,c),d(c.h,c),c.c,o,c.s,a):new W(d(c.g,c),d(c.h,c),c.c,o,c.s,t,a),e.push(s)}for(i=0;i<e.length;i++)e[i].start()}},0)})}(this,new _(this.c,t),t)},H.prototype.load=function(s){var n=this,r=n.a.projectId,t=n.a.version;if(r){var f=n.c.o;u(this.c,(n.a.api||"https://fast.fonts.net/jsapi")+"/"+r+".js"+(t?"?v="+t:""),function(t){t?s([]):(f["__MonotypeConfiguration__"+r]=function(){return n.a},function t(){if(f["__mti_fntLst"+r]){var n,i=f["__mti_fntLst"+r](),e=[];if(i)for(var o=0;o<i.length;o++){var a=i[o].fontfamily;null!=i[o].fontStyle&&null!=i[o].fontWeight?(n=i[o].fontStyle+i[o].fontWeight,e.push(new y(a,n))):e.push(new y(a))}s(e)}else setTimeout(function(){t()},50)}())}).id="__MonotypeAPIScript__"+r}else s([])},M.prototype.load=function(t){var n,i,e=this.a.urls||[],o=this.a.families||[],a=this.a.testStrings||{},s=new p;for(n=0,i=e.length;n<i;n++)l(this.c,e[n],v(s));var r=[];for(n=0,i=o.length;n<i;n++)if((e=o[n].split(":"))[1])for(var f=e[1].split(","),c=0;c<f.length;c+=1)r.push(new y(e[0],f[c]));else r.push(new y(e[0]));w(s,function(){t(r,a)})};function G(t){this.f=t,this.a=[],this.c={}}var K={latin:"BESbswy","latin-ext":"çöüğş",cyrillic:"йяЖ",greek:"αβΣ",khmer:"កខគ",Hanuman:"កខគ"},R={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},U={i:"i",italic:"i",n:"n",normal:"n"},V=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;function X(t,n){this.c=t,this.a=n}var J={Arimo:!0,Cousine:!0,Tinos:!0};function Q(t,n){this.c=t,this.a=n}function Y(t,n){this.c=t,this.f=n,this.a=[]}X.prototype.load=function(t){var n=new p,i=this.c,e=new z(this.a.api,this.a.text),o=this.a.families;!function(t,n){for(var i=n.length,e=0;e<i;e++){var o=n[e].split(":");3==o.length&&t.f.push(o.pop());var a="";2==o.length&&""!=o[1]&&(a=":"),t.a.push(o.join(a))}}(e,o);var a=new G(o);!function(t){for(var n=t.f.length,i=0;i<n;i++){var e=t.f[i].split(":"),o=e[0].replace(/\+/g," "),a=["n4"];if(2<=e.length){var s;if(s=[],r=e[1])for(var r,f=(r=r.split(",")).length,c=0;c<f;c++){var h;if((h=r[c]).match(/^[\w-]+$/))if(null==(u=V.exec(h.toLowerCase())))h="";else{if(h=null==(h=u[2])||""==h?"n":U[h],null==(u=u[1])||""==u)u="4";else var l=R[u],u=l||(isNaN(u)?"4":u.substr(0,1));h=[h,u].join("")}else h="";h&&s.push(h)}0<s.length&&(a=s),3==e.length&&(s=[],0<(e=(e=e[2])?e.split(","):s).length&&(e=K[e[0]])&&(t.c[o]=e))}for(t.c[o]||(e=K[o])&&(t.c[o]=e),e=0;e<a.length;e+=1)t.a.push(new y(o,a[e]))}}(a),l(i,function(t){if(0==t.a.length)throw Error("No fonts to load!");if(-1!=t.c.indexOf("kit="))return t.c;for(var n=t.a.length,i=[],e=0;e<n;e++)i.push(t.a[e].replace(/ /g,"+"));return n=t.c+"?family="+i.join("%7C"),0<t.f.length&&(n+="&subset="+t.f.join(",")),0<t.g.length&&(n+="&text="+encodeURIComponent(t.g)),n}(e),v(n)),w(n,function(){t(a.a,a.c,J)})},Q.prototype.load=function(s){var t=this.a.id,r=this.c.o;t?u(this.c,(this.a.api||"https://use.typekit.net")+"/"+t+".js",function(t){if(t)s([]);else if(r.Typekit&&r.Typekit.config&&r.Typekit.config.fn){t=r.Typekit.config.fn;for(var n=[],i=0;i<t.length;i+=2)for(var e=t[i],o=t[i+1],a=0;a<o.length;a++)n.push(new y(e,o[a]));try{r.Typekit.load({events:!1,classes:!1,async:!0})}catch(t){}s(n)}},2e3):s([])},Y.prototype.load=function(c){var t,n=this.f.id,i=this.c.o,h=this;n?(i.__webfontfontdeckmodule__||(i.__webfontfontdeckmodule__={}),i.__webfontfontdeckmodule__[n]=function(t,n){for(var i=0,e=n.fonts.length;i<e;++i){var o=n.fonts[i];h.a.push(new y(o.name,(a="font-weight:"+o.weight+";font-style:"+o.style,f=r=s=void 0,s=4,r="n",f=null,a&&((f=a.match(/(normal|oblique|italic)/i))&&f[1]&&(r=f[1].substr(0,1).toLowerCase()),(f=a.match(/([1-9]00|normal|bold)/i))&&f[1]&&(/bold/i.test(f[1])?s=7:/[1-9]00/.test(f[1])&&(s=parseInt(f[1].substr(0,1),10)))),r+s)))}var a,s,r,f;c(h.a)},u(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+((t=this.c).o.location.hostname||t.a.location.hostname)+"/"+n+".js",function(t){t&&c([])})):c([])};var Z=new t(window);Z.a.c.custom=function(t,n){return new M(n,t)},Z.a.c.fontdeck=function(t,n){return new Y(n,t)},Z.a.c.monotype=function(t,n){return new H(n,t)},Z.a.c.typekit=function(t,n){return new Q(n,t)},Z.a.c.google=function(t,n){return new X(n,t)};var tt={load:d(Z.load,Z)};"function"==typeof define&&define.amd?define(function(){return tt}):"undefined"!=typeof module&&module.exports?module.exports=tt:(window.WebFont=tt,window.WebFontConfig&&Z.load(window.WebFontConfig))}();!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Babel=t():e.Babel=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var r=t.slice(1),n=e[t[0]];return function(e,t,i){n.apply(this,[e,t,i].concat(r))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,r){"use strict";function n(e,t){return g(t)&&"string"==typeof t[0]?e.hasOwnProperty(t[0])?[e[t[0]]].concat(t.slice(1)):void 0:"string"==typeof t?e[t]:t}function i(e){var t=(e.presets||[]).map(function(e){var t=n(E,e);if(!t)throw new Error('Invalid preset specified in Babel options: "'+e+'"');return g(t)&&"object"===h(t[0])&&t[0].hasOwnProperty("buildPreset")&&(t[0]=d({},t[0],{buildPreset:t[0].buildPreset})),t}),r=(e.plugins||[]).map(function(e){var t=n(b,e);if(!t)throw new Error('Invalid plugin specified in Babel options: "'+e+'"');return t});return d({babelrc:!1},e,{presets:t,plugins:r})}function s(e,t){return y.transform(e,i(t))}function a(e,t,r){return y.transformFromAst(e,t,i(r))}function o(e,t){b.hasOwnProperty(e)&&console.warn('A plugin named "'+e+'" is already registered, it will be overridden'),b[e]=t}function u(e){Object.keys(e).forEach(function(t){return o(t,e[t])})}function l(e,t){E.hasOwnProperty(e)&&console.warn('A preset named "'+e+'" is already registered, it will be overridden'),E[e]=t}function c(e){Object.keys(e).forEach(function(t){return l(t,e[t])})}function f(e){(0,v.runScripts)(s,e)}function p(){window.removeEventListener("DOMContentLoaded",f)}Object.defineProperty(t,"__esModule",{value:!0}),t.version=t.buildExternalHelpers=t.availablePresets=t.availablePlugins=void 0;var d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.transform=s,t.transformFromAst=a,t.registerPlugin=o,t.registerPlugins=u,t.registerPreset=l,t.registerPresets=c,t.transformScriptTags=f,t.disableScriptTags=p;var m=r(290),y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(m),v=r(629),g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},b=t.availablePlugins={},E=t.availablePresets={};t.buildExternalHelpers=y.buildExternalHelpers;u({"check-es2015-constants":r(66),"external-helpers":r(322),"inline-replace-variables":r(323),"syntax-async-functions":r(67),"syntax-async-generators":r(195),"syntax-class-constructor-call":r(196),"syntax-class-properties":r(197),"syntax-decorators":r(125),"syntax-do-expressions":r(198),"syntax-exponentiation-operator":r(199),"syntax-export-extensions":r(200),"syntax-flow":r(126),"syntax-function-bind":r(201),"syntax-function-sent":r(325),"syntax-jsx":r(127),"syntax-object-rest-spread":r(202),"syntax-trailing-function-commas":r(128),"transform-async-functions":r(326),"transform-async-to-generator":r(129),"transform-async-to-module-method":r(328),"transform-class-constructor-call":r(203),"transform-class-properties":r(204),"transform-decorators":r(205),"transform-decorators-legacy":r(329).default,"transform-do-expressions":r(206),"transform-es2015-arrow-functions":r(68),"transform-es2015-block-scoped-functions":r(69),"transform-es2015-block-scoping":r(70),"transform-es2015-classes":r(71),"transform-es2015-computed-properties":r(72),"transform-es2015-destructuring":r(73),"transform-es2015-duplicate-keys":r(130),"transform-es2015-for-of":r(74),"transform-es2015-function-name":r(75),"transform-es2015-instanceof":r(332),"transform-es2015-literals":r(76),"transform-es2015-modules-amd":r(131),"transform-es2015-modules-commonjs":r(77),"transform-es2015-modules-systemjs":r(208),"transform-es2015-modules-umd":r(209),"transform-es2015-object-super":r(78),"transform-es2015-parameters":r(79),"transform-es2015-shorthand-properties":r(80),"transform-es2015-spread":r(81),"transform-es2015-sticky-regex":r(82),"transform-es2015-template-literals":r(83),"transform-es2015-typeof-symbol":r(84),"transform-es2015-unicode-regex":r(85),"transform-es3-member-expression-literals":r(336),"transform-es3-property-literals":r(337),"transform-es5-property-mutators":r(338),"transform-eval":r(339),"transform-exponentiation-operator":r(132),"transform-export-extensions":r(210),"transform-flow-comments":r(340),"transform-flow-strip-types":r(211),"transform-function-bind":r(212),"transform-jscript":r(341),"transform-object-assign":r(342),"transform-object-rest-spread":r(213),"transform-object-set-prototype-of-to-assign":r(343),"transform-proto-to-assign":r(344),"transform-react-constant-elements":r(345),"transform-react-display-name":r(214),"transform-react-inline-elements":r(346),"transform-react-jsx":r(215),"transform-react-jsx-compat":r(347),"transform-react-jsx-self":r(349),"transform-react-jsx-source":r(350),"transform-regenerator":r(86),"transform-runtime":r(353),"transform-strict-mode":r(216),"undeclared-variables-check":r(354)}),c({es2015:r(217),es2016:r(218),es2017:r(219),latest:r(356),react:r(357),"stage-0":r(358),"stage-1":r(220),"stage-2":r(221),"stage-3":r(222),"es2015-no-commonjs":{plugins:[r(83),r(76),r(75),r(68),r(69),r(71),r(78),r(80),r(72),r(74),r(82),r(85),r(66),r(81),r(79),r(73),r(70),r(84),[r(86),{async:!1,asyncGenerators:!1}]]},"es2015-loose":{plugins:[[r(83),{loose:!0}],r(76),r(75),r(68),r(69),[r(71),{loose:!0}],r(78),r(80),r(130),[r(72),{loose:!0}],[r(74),{loose:!0}],r(82),r(85),r(66),[r(81),{loose:!0}],r(79),[r(73),{loose:!0}],r(70),r(84),[r(77),{loose:!0}],[r(86),{async:!1,asyncGenerators:!1}]]}});t.version="6.26.0";"undefined"!=typeof window&&window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",function(){return f()},!1)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=z["is"+e];t||(t=z["is"+e]=function(t,r){return z.is(e,t,r)}),z["assert"+e]=function(r,n){if(n=n||{},!t(r,n))throw new Error("Expected type "+(0,I.default)(e)+" with option "+(0,I.default)(n))}}function s(e,t,r){return!!t&&(!!a(t.type,e)&&(void 0===r||z.shallowEqual(t,r)))}function a(e,t){if(e===t)return!0;if(z.ALIAS_KEYS[t])return!1;var r=z.FLIPPED_ALIAS_KEYS[t];if(r){if(r[0]===e)return!0;for(var n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}if(e===a)return!0}}return!1}function o(e,t,r){if(e){var n=z.NODE_FIELDS[e.type];if(n){var i=n[t];i&&i.validate&&(i.optional&&null==r||i.validate(e,t,r))}}}function u(e,t){for(var r=(0,B.default)(t),n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if(e[o]!==t[o])return!1}return!0}function l(e,t,r){return e.object=z.memberExpression(e.object,e.property,e.computed),e.property=t,e.computed=!!r,e}function c(e,t){return e.object=z.memberExpression(t,e.object),e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body";return e[t]=z.toBlock(e[t],e)}function p(e){if(!e)return e;var t={};for(var r in e)"_"!==r[0]&&(t[r]=e[r]);return t}function d(e){var t=p(e);return delete t.loc,t}function h(e){if(!e)return e;var t={};for(var r in e)if("_"!==r[0]){var n=e[r];n&&(n.type?n=z.cloneDeep(n):Array.isArray(n)&&(n=n.map(z.cloneDeep))),t[r]=n}return t}function m(e,t){var r=e.split(".");return function(e){if(!z.isMemberExpression(e))return!1;for(var n=[e],i=0;n.length;){var s=n.shift();if(t&&i===r.length)return!0;if(z.isIdentifier(s)){if(r[i]!==s.name)return!1}else{if(!z.isStringLiteral(s)){if(z.isMemberExpression(s)){if(s.computed&&!z.isStringLiteral(s.property))return!1;n.push(s.object),n.push(s.property);continue}return!1}if(r[i]!==s.value)return!1}if(++i>r.length)return!1}return!0}}function y(e){for(var t=z.COMMENT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,T.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}delete e[i]}return e}function v(e,t){return g(e,t),b(e,t),E(e,t),e}function g(e,t){x("trailingComments",e,t)}function b(e,t){x("leadingComments",e,t)}function E(e,t){x("innerComments",e,t)}function x(e,t,r){t&&r&&(t[e]=(0,K.default)([].concat(t[e],r[e]).filter(Boolean)))}function A(e,t){if(!e||!t)return e;for(var r=z.INHERIT_KEYS.optional,n=Array.isArray(r),i=0,r=n?r:(0,T.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;null==e[a]&&(e[a]=t[a])}for(var o in t)"_"===o[0]&&(e[o]=t[o]);for(var u=z.INHERIT_KEYS.force,l=Array.isArray(u),c=0,u=l?u:(0,T.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;e[p]=t[p]}return z.inheritsComments(e,t),e}function S(e){if(!_(e))throw new TypeError("Not a valid node "+(e&&e.type))}function _(e){return!(!e||!H.VISITOR_KEYS[e.type])}function D(e,t,r){if(e){var n=z.VISITOR_KEYS[e.type];if(n){r=r||{},t(e,r);for(var i=n,s=Array.isArray(i),a=0,i=s?i:(0,T.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o,l=e[u];if(Array.isArray(l))for(var c=l,f=Array.isArray(c),p=0,c=f?c:(0,T.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;D(h,t,r)}else D(l,t,r)}}}}function C(e,t){t=t||{};for(var r=t.preserveComments?Z:ee,n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;null!=e[o]&&(e[o]=void 0)}for(var u in e)"_"===u[0]&&null!=e[u]&&(e[u]=void 0);for(var l=(0,k.default)(e),c=l,f=Array.isArray(c),p=0,c=f?c:(0,T.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}e[d]=null}}function w(e,t){return D(e,C,t),e}t.__esModule=!0,t.createTypeAnnotationBasedOnTypeof=t.removeTypeDuplicates=t.createUnionTypeAnnotation=t.valueToNode=t.toBlock=t.toExpression=t.toStatement=t.toBindingIdentifierName=t.toIdentifier=t.toKeyAlias=t.toSequenceExpression=t.toComputedKey=t.isNodesEquivalent=t.isImmutable=t.isScope=t.isSpecifierDefault=t.isVar=t.isBlockScoped=t.isLet=t.isValidIdentifier=t.isReferenced=t.isBinding=t.getOuterBindingIdentifiers=t.getBindingIdentifiers=t.TYPES=t.react=t.DEPRECATED_KEYS=t.BUILDER_KEYS=t.NODE_FIELDS=t.ALIAS_KEYS=t.VISITOR_KEYS=t.NOT_LOCAL_BINDING=t.BLOCK_SCOPED_SYMBOL=t.INHERIT_KEYS=t.UNARY_OPERATORS=t.STRING_UNARY_OPERATORS=t.NUMBER_UNARY_OPERATORS=t.BOOLEAN_UNARY_OPERATORS=t.BINARY_OPERATORS=t.NUMBER_BINARY_OPERATORS=t.BOOLEAN_BINARY_OPERATORS=t.COMPARISON_BINARY_OPERATORS=t.EQUALITY_BINARY_OPERATORS=t.BOOLEAN_NUMBER_BINARY_OPERATORS=t.UPDATE_OPERATORS=t.LOGICAL_OPERATORS=t.COMMENT_KEYS=t.FOR_INIT_KEYS=t.FLATTENABLE_KEYS=t.STATEMENT_OR_BLOCK_KEYS=void 0;var P=r(360),k=n(P),F=r(2),T=n(F),O=r(14),B=n(O),R=r(35),I=n(R),M=r(135);Object.defineProperty(t,"STATEMENT_OR_BLOCK_KEYS",{enumerable:!0,get:function(){return M.STATEMENT_OR_BLOCK_KEYS}}),Object.defineProperty(t,"FLATTENABLE_KEYS",{enumerable:!0,get:function(){return M.FLATTENABLE_KEYS}}),Object.defineProperty(t,"FOR_INIT_KEYS",{enumerable:!0,get:function(){return M.FOR_INIT_KEYS}}),Object.defineProperty(t,"COMMENT_KEYS",{enumerable:!0,get:function(){return M.COMMENT_KEYS}}),Object.defineProperty(t,"LOGICAL_OPERATORS",{enumerable:!0,get:function(){return M.LOGICAL_OPERATORS}}),Object.defineProperty(t,"UPDATE_OPERATORS",{enumerable:!0,get:function(){return M.UPDATE_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_NUMBER_BINARY_OPERATORS}}),Object.defineProperty(t,"EQUALITY_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.EQUALITY_BINARY_OPERATORS}}),Object.defineProperty(t,"COMPARISON_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.COMPARISON_BINARY_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_BINARY_OPERATORS}}),Object.defineProperty(t,"NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.NUMBER_BINARY_OPERATORS}}),Object.defineProperty(t,"BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BINARY_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_UNARY_OPERATORS}}),Object.defineProperty(t,"NUMBER_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.NUMBER_UNARY_OPERATORS}}),Object.defineProperty(t,"STRING_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.STRING_UNARY_OPERATORS}}),Object.defineProperty(t,"UNARY_OPERATORS",{enumerable:!0,get:function(){return M.UNARY_OPERATORS}}),Object.defineProperty(t,"INHERIT_KEYS",{enumerable:!0,get:function(){return M.INHERIT_KEYS}}),Object.defineProperty(t,"BLOCK_SCOPED_SYMBOL",{enumerable:!0,get:function(){return M.BLOCK_SCOPED_SYMBOL}}),Object.defineProperty(t,"NOT_LOCAL_BINDING",{enumerable:!0,get:function(){return M.NOT_LOCAL_BINDING}}),t.is=s,t.isType=a,t.validate=o,t.shallowEqual=u,t.appendToMemberExpression=l,t.prependToMemberExpression=c,t.ensureBlock=f,t.clone=p,t.cloneWithoutLoc=d,t.cloneDeep=h,t.buildMatchMemberExpression=m,t.removeComments=y,t.inheritsComments=v,t.inheritTrailingComments=g,t.inheritLeadingComments=b,t.inheritInnerComments=E,t.inherits=A,t.assertNode=S,t.isNode=_,t.traverseFast=D,t.removeProperties=C,t.removePropertiesDeep=w;var N=r(226);Object.defineProperty(t,"getBindingIdentifiers",{enumerable:!0,get:function(){return N.getBindingIdentifiers}}),Object.defineProperty(t,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return N.getOuterBindingIdentifiers}});var L=r(395);Object.defineProperty(t,"isBinding",{enumerable:!0,get:function(){return L.isBinding}}),Object.defineProperty(t,"isReferenced",{enumerable:!0,get:function(){return L.isReferenced}}),Object.defineProperty(t,"isValidIdentifier",{enumerable:!0,get:function(){return L.isValidIdentifier}}),Object.defineProperty(t,"isLet",{enumerable:!0,get:function(){return L.isLet}}),Object.defineProperty(t,"isBlockScoped",{enumerable:!0,get:function(){return L.isBlockScoped}}),Object.defineProperty(t,"isVar",{enumerable:!0,get:function(){return L.isVar}}),Object.defineProperty(t,"isSpecifierDefault",{enumerable:!0,get:function(){return L.isSpecifierDefault}}),Object.defineProperty(t,"isScope",{enumerable:!0,get:function(){return L.isScope}}),Object.defineProperty(t,"isImmutable",{enumerable:!0,get:function(){return L.isImmutable}}),Object.defineProperty(t,"isNodesEquivalent",{enumerable:!0,get:function(){return L.isNodesEquivalent}});var j=r(385);Object.defineProperty(t,"toComputedKey",{enumerable:!0,get:function(){return j.toComputedKey}}),Object.defineProperty(t,"toSequenceExpression",{enumerable:!0,get:function(){return j.toSequenceExpression}}),Object.defineProperty(t,"toKeyAlias",{enumerable:!0,get:function(){return j.toKeyAlias}}),Object.defineProperty(t,"toIdentifier",{enumerable:!0,get:function(){return j.toIdentifier}}),Object.defineProperty(t,"toBindingIdentifierName",{enumerable:!0,get:function(){return j.toBindingIdentifierName}}),Object.defineProperty(t,"toStatement",{enumerable:!0,get:function(){return j.toStatement}}),Object.defineProperty(t,"toExpression",{enumerable:!0,get:function(){return j.toExpression}}),Object.defineProperty(t,"toBlock",{enumerable:!0,get:function(){return j.toBlock}}),Object.defineProperty(t,"valueToNode",{enumerable:!0,get:function(){return j.valueToNode}});var U=r(393);Object.defineProperty(t,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return U.createUnionTypeAnnotation}}),Object.defineProperty(t,"removeTypeDuplicates",{enumerable:!0,get:function(){return U.removeTypeDuplicates}}),Object.defineProperty(t,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return U.createTypeAnnotationBasedOnTypeof}});var V=r(624),G=n(V),W=r(109),Y=n(W),q=r(600),K=n(q);r(390);var H=r(26),J=r(394),X=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(J),z=t;t.VISITOR_KEYS=H.VISITOR_KEYS,t.ALIAS_KEYS=H.ALIAS_KEYS,t.NODE_FIELDS=H.NODE_FIELDS,t.BUILDER_KEYS=H.BUILDER_KEYS,t.DEPRECATED_KEYS=H.DEPRECATED_KEYS,t.react=X;for(var $ in z.VISITOR_KEYS)i($);z.FLIPPED_ALIAS_KEYS={},(0,B.default)(z.ALIAS_KEYS).forEach(function(e){z.ALIAS_KEYS[e].forEach(function(t){(z.FLIPPED_ALIAS_KEYS[t]=z.FLIPPED_ALIAS_KEYS[t]||[]).push(e)})}),(0,B.default)(z.FLIPPED_ALIAS_KEYS).forEach(function(e){z[e.toUpperCase()+"_TYPES"]=z.FLIPPED_ALIAS_KEYS[e],i(e)});t.TYPES=(0,B.default)(z.VISITOR_KEYS).concat((0,B.default)(z.FLIPPED_ALIAS_KEYS)).concat((0,B.default)(z.DEPRECATED_KEYS));(0,B.default)(z.BUILDER_KEYS).forEach(function(e){function t(){if(arguments.length>r.length)throw new Error("t."+e+": Too many arguments passed. Received "+arguments.length+" but can receive no more than "+r.length);var t={};t.type=e;for(var n=0,i=r,s=Array.isArray(i),a=0,i=s?i:(0,T.default)(i);;){var u;if(s){if(a>=i.length)break;u=i[a++]}else{if(a=i.next(),a.done)break;u=a.value}var l=u,c=z.NODE_FIELDS[e][l],f=arguments[n++];void 0===f&&(f=(0,Y.default)(c.default)),t[l]=f}for(var p in t)o(t,p,t[p]);return t}var r=z.BUILDER_KEYS[e];z[e]=t,z[e[0].toLowerCase()+e.slice(1)]=t});for(var Q in z.DEPRECATED_KEYS)!function(e){function t(t){return function(){return console.trace("The node type "+e+" has been renamed to "+r),t.apply(this,arguments)}}var r=z.DEPRECATED_KEYS[e];z[e]=z[e[0].toLowerCase()+e.slice(1)]=t(z[r]),z["is"+e]=t(z["is"+r]),z["assert"+e]=t(z["assert"+r])}(Q);(0,G.default)(z),(0,G.default)(z.VISITOR_KEYS);var Z=["tokens","start","end","loc","raw","rawValue"],ee=z.COMMENT_KEYS.concat(["comments"]).concat(Z)},function(e,t,r){"use strict";e.exports={default:r(404),__esModule:!0}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){e=(0,l.default)(e);var r=e,n=r.program;return t.length&&(0,m.default)(e,A,null,t),n.body.length>1?n.body:n.body[0]}t.__esModule=!0;var a=r(10),o=i(a);t.default=function(e,t){var r=void 0;try{throw new Error}catch(e){e.stack&&(r=e.stack.split("\n").slice(1).join("\n"))}t=(0,f.default)({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,preserveComments:!1},t);var n=function(){var i=void 0;try{i=v.parse(e,t),i=m.default.removeProperties(i,{preserveComments:t.preserveComments}),m.default.cheap(i,function(e){e[E]=!0})}catch(e){throw e.stack=e.stack+"from\n"+r,e}return n=function(){return i},i};return function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return s(n(),t)}};var u=r(574),l=i(u),c=r(174),f=i(c),p=r(274),d=i(p),h=r(7),m=i(h),y=r(89),v=n(y),g=r(1),b=n(g),E="_fromTemplate",x=(0,o.default)(),A={noScope:!0,enter:function(e,t){var r=e.node;if(r[x])return e.skip();b.isExpressionStatement(r)&&(r=r.expression);var n=void 0;if(b.isIdentifier(r)&&r[E])if((0,d.default)(t[0],r.name))n=t[0][r.name];else if("$"===r.name[0]){var i=+r.name.slice(1);t[i]&&(n=t[i])}null===n&&e.remove(),n&&(n[x]=!0,e.replaceInline(n))},exit:function(e){var t=e.node;t.loc||m.default.clearNode(t)}};e.exports=t.default},function(e,t){"use strict";var r=e.exports={version:"2.5.0"};"number"==typeof __e&&(__e=r)},function(e,t){"use strict";var r=Array.isArray;e.exports=r},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r,n,i){if(e){if(t||(t={}),!t.noScope&&!r&&"Program"!==e.type&&"File"!==e.type)throw new Error(v.get("traverseNeedsParent",e.type));m.explode(t),s.node(e,t,r,n,i)}}function a(e,t){e.node.type===t.type&&(t.has=!0,e.stop())}t.__esModule=!0,t.visitors=t.Hub=t.Scope=t.NodePath=void 0;var o=r(2),u=i(o),l=r(36);Object.defineProperty(t,"NodePath",{enumerable:!0,get:function(){return i(l).default}});var c=r(134);Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i(c).default}});var f=r(223);Object.defineProperty(t,"Hub",{enumerable:!0,get:function(){return i(f).default}}),t.default=s;var p=r(367),d=i(p),h=r(384),m=n(h),y=r(20),v=n(y),g=r(111),b=i(g),E=r(1),x=n(E),A=r(88),S=n(A);t.visitors=m,s.visitors=m,s.verify=m.verify,s.explode=m.explode,s.NodePath=r(36),s.Scope=r(134),s.Hub=r(223),s.cheap=function(e,t){return x.traverseFast(e,t)},s.node=function(e,t,r,n,i,s){var a=x.VISITOR_KEYS[e.type];if(a)for(var o=new d.default(r,t,n,i),l=a,c=Array.isArray(l),f=0,l=c?l:(0,u.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var h=p;if((!s||!s[h])&&o.visit(e,h))return}},s.clearNode=function(e,t){x.removeProperties(e,t),S.path.delete(e)},s.removeProperties=function(e,t){return x.traverseFast(e,s.clearNode,t),e},s.hasType=function(e,t,r,n){if((0,b.default)(n,e.type))return!1;if(e.type===r)return!0;var i={has:!1,type:r};return s(e,{blacklist:n,enter:a},t,i),i.has},s.clearCache=function(){S.clear()},s.clearCache.clearPath=S.clearPath,s.clearCache.clearScope=S.clearScope,s.copyCache=function(e,t){S.path.has(e)&&S.path.set(t,S.path.get(e))}},function(e,t){"use strict";function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function i(e){if(c===setTimeout)return setTimeout(e,0);if((c===r||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function s(e){if(f===clearTimeout)return clearTimeout(e);if((f===n||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function a(){m&&d&&(m=!1,d.length?h=d.concat(h):y=-1,h.length&&o())}function o(){if(!m){var e=i(a);m=!0;for(var t=h.length;t;){for(d=h,h=[];++y<t;)d&&d[y].run();y=-1,t=h.length}d=null,m=!1,s(e)}}function u(e,t){this.fun=e,this.array=t}function l(){}var c,f,p=e.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:r}catch(e){c=r}try{f="function"==typeof clearTimeout?clearTimeout:n}catch(e){f=n}}();var d,h=[],m=!1,y=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];h.push(new u(e,t)),1!==h.length||m||i(o)},u.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=l,p.addListener=l,p.once=l,p.off=l,p.removeListener=l,p.removeAllListeners=l,p.emit=l,p.prependListener=l,p.prependOnceListener=l,p.listeners=function(e){return[]},p.binding=function(e){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(e){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},function(e,t,r){"use strict";e.exports={default:r(409),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(414),__esModule:!0}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.__esModule=!0;var s=r(363),a=n(s),o=r(10),u=n(o),l="function"==typeof u.default&&"symbol"===i(a.default)?function(e){return void 0===e?"undefined":i(e)}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":void 0===e?"undefined":i(e)};t.default="function"==typeof u.default&&"symbol"===l(a.default)?function(e){return void 0===e?"undefined":l(e)}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":void 0===e?"undefined":l(e)}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(43),a=r(29),o=function e(t,r,o){var u,l,c,f=t&e.F,p=t&e.G,d=t&e.S,h=t&e.P,m=t&e.B,y=t&e.W,v=p?i:i[r]||(i[r]={}),g=v.prototype,b=p?n:d?n[r]:(n[r]||{}).prototype;p&&(o=r);for(u in o)(l=!f&&b&&void 0!==b[u])&&u in v||(c=l?b[u]:o[u],v[u]=p&&"function"!=typeof b[u]?o[u]:m&&l?s(c,n):y&&b[u]==c?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(c):h&&"function"==typeof c?s(Function.call,c):c,h&&((v.virtual||(v.virtual={}))[u]=c,t&e.R&&g&&!g[u]&&a(g,u,c)))};o.F=1,o.G=2,o.S=4,o.P=8,o.B=16,o.W=32,o.U=64,o.R=128,e.exports=o},function(e,t,r){"use strict";var n=r(151)("wks"),i=r(95),s=r(15).Symbol,a="function"==typeof s;(e.exports=function(e){return n[e]||(n[e]=a&&s[e]||(a?s:i)("Symbol."+e))}).store=n},function(e,t,r){"use strict";e.exports={default:r(411),__esModule:!0}},function(e,t){"use strict";var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function(e){return"object"===(void 0===e?"undefined":r(e))?null!==e:"function"==typeof e}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(261),s="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,a=i||s||Function("return this")();e.exports=a},function(e,t){"use strict";function r(e){var t=void 0===e?"undefined":n(e);return null!=e&&("object"==t||"function"==t)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){(function(e){"use strict";function r(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};t.resolve=function(){for(var t="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a=s>=0?arguments[s]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,i="/"===a.charAt(0))}return t=r(n(t.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+t||"."},t.normalize=function(e){var i=t.isAbsolute(e),s="/"===a(e,-1);return e=r(n(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(n(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,r){function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=t.resolve(e).substr(1),r=t.resolve(r).substr(1);for(var i=n(e.split("/")),s=n(r.split("/")),a=Math.min(i.length,s.length),o=a,u=0;u<a;u++)if(i[u]!==s[u]){o=u;break}for(var l=[],u=o;u<i.length;u++)l.push("..");return l=l.concat(s.slice(o)),l.join("/")},t.sep="/",t.delimiter=":",t.dirname=function(e){var t=s(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},t.basename=function(e,t){var r=s(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},t.extname=function(e){return s(e)[3]};var a="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)}}).call(t,r(8))},function(e,t,r){"use strict";function n(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var s=l[e];if(!s)throw new ReferenceError("Unknown message "+(0,a.default)(e));return r=i(r),s.replace(/\$(\d+)/g,function(e,t){return r[t-1]})}function i(e){return e.map(function(e){if(null!=e&&e.inspect)return e.inspect();try{return(0,a.default)(e)||e+""}catch(t){return u.inspect(e)}})}t.__esModule=!0,t.MESSAGES=void 0;var s=r(35),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.get=n,t.parseArgs=i;var o=r(117),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o),l=t.MESSAGES={tailCallReassignmentDeopt:"Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence",classesIllegalBareSuper:"Illegal use of bare super",classesIllegalSuperCall:"Direct super call is illegal in non-constructor, use super.$1() instead",scopeDuplicateDeclaration:"Duplicate declaration $1",settersNoRest:"Setters aren't allowed to have a rest",noAssignmentsInForHead:"No assignments allowed in for-in/of head",expectedMemberExpressionOrIdentifier:"Expected type MemberExpression or Identifier",invalidParentForThisNode:"We don't know how to handle this node within the current parent - please open an issue",readOnly:"$1 is read-only",unknownForHead:"Unknown node type $1 in ForStatement",didYouMean:"Did you mean $1?",codeGeneratorDeopt:"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.",missingTemplatesDirectory:"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues",unsupportedOutputType:"Unsupported output type $1",illegalMethodName:"Illegal method name $1",lostTrackNodePath:"We lost track of this node's position, likely because the AST was directly manipulated",modulesIllegalExportName:"Illegal export $1",modulesDuplicateDeclarations:"Duplicate module declarations with the same source but in different scopes",undeclaredVariable:"Reference to undeclared variable $1",undeclaredVariableType:"Referencing a type alias outside of a type annotation",undeclaredVariableSuggestion:"Reference to undeclared variable $1 - did you mean $2?",traverseNeedsParent:"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.",traverseVerifyRootFunction:"You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?",traverseVerifyVisitorProperty:"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2",traverseVerifyNodeType:"You gave us a visitor for the node type $1 but it's not a valid type",pluginNotObject:"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3",pluginNotFunction:"Plugin $2 specified in $1 was expected to return a function but returned $3",
pluginUnknown:"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4",pluginInvalidProperty:"Plugin $2 specified in $1 provided an invalid property of $3"}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t,r){"use strict";e.exports=!r(27)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,r){"use strict";var n=r(21),i=r(231),s=r(154),a=Object.defineProperty;t.f=r(22)?Object.defineProperty:function(e,t,r){if(n(e),t=s(t,!0),n(r),i)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},function(e,t,r){"use strict";function n(e){return null!=e&&s(e.length)&&!i(e)}var i=r(175),s=r(176);e.exports=n},function(e,t){"use strict";function r(e){return null!=e&&"object"==(void 0===e?"undefined":n(e))}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return Array.isArray(e)?"array":null===e?"null":void 0===e?"undefined":void 0===e?"undefined":(0,v.default)(e)}function s(e){function t(t,r,n){if(Array.isArray(n))for(var i=0;i<n.length;i++)e(t,r+"["+i+"]",n[i])}return t.each=e,t}function a(){function e(e,t,n){if(r.indexOf(n)<0)throw new TypeError("Property "+t+" expected value to be one of "+(0,m.default)(r)+" but got "+(0,m.default)(n))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOf=r,e}function o(){function e(e,t,n){for(var i=!1,s=r,a=Array.isArray(s),o=0,s=a?s:(0,d.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(b.is(l,n)){i=!0;break}}if(!i)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,m.default)(r)+" but instead got "+(0,m.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOfNodeTypes=r,e}function u(){function e(e,t,n){for(var s=!1,a=r,o=Array.isArray(a),u=0,a=o?a:(0,d.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(i(n)===c||b.is(c,n)){s=!0;break}}if(!s)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,m.default)(r)+" but instead got "+(0,m.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOfNodeOrValueTypes=r,e}function l(e){function t(t,r,n){if(i(n)!==e)throw new TypeError("Property "+r+" expected type of "+e+" but got "+i(n))}return t.type=e,t}function c(){function e(){for(var e=r,t=Array.isArray(e),n=0,e=t?e:(0,d.default)(e);;){var i;if(t){if(n>=e.length)break;i=e[n++]}else{if(n=e.next(),n.done)break;i=n.value}i.apply(void 0,arguments)}}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.chainOf=r,e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.inherits&&D[t.inherits]||{};t.fields=t.fields||r.fields||{},t.visitor=t.visitor||r.visitor||[],t.aliases=t.aliases||r.aliases||[],t.builder=t.builder||r.builder||t.visitor||[],t.deprecatedAlias&&(_[t.deprecatedAlias]=e);for(var n=t.visitor.concat(t.builder),s=Array.isArray(n),a=0,n=s?n:(0,d.default)(n);;){var o;if(s){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;t.fields[u]=t.fields[u]||{}}for(var c in t.fields){var f=t.fields[c];-1===t.builder.indexOf(c)&&(f.optional=!0),void 0===f.default?f.default=null:f.validate||(f.validate=l(i(f.default)))}E[e]=t.visitor,S[e]=t.builder,A[e]=t.fields,x[e]=t.aliases,D[e]=t}t.__esModule=!0,t.DEPRECATED_KEYS=t.BUILDER_KEYS=t.NODE_FIELDS=t.ALIAS_KEYS=t.VISITOR_KEYS=void 0;var p=r(2),d=n(p),h=r(35),m=n(h),y=r(11),v=n(y);t.assertEach=s,t.assertOneOf=a,t.assertNodeType=o,t.assertNodeOrValueType=u,t.assertValueType=l,t.chain=c,t.default=f;var g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E=t.VISITOR_KEYS={},x=t.ALIAS_KEYS={},A=t.NODE_FIELDS={},S=t.BUILDER_KEYS={},_=t.DEPRECATED_KEYS={},D={}},function(e,t){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){"use strict";var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){"use strict";var n=r(23),i=r(92);e.exports=r(22)?function(e,t,r){return n.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){"use strict";function n(e){return null==e?void 0===e?u:o:l&&l in Object(e)?s(e):a(e)}var i=r(45),s=r(534),a=r(559),o="[object Null]",u="[object Undefined]",l=i?i.toStringTag:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var a=!r;r||(r={});for(var o=-1,u=t.length;++o<u;){var l=t[o],c=n?n(r[l],e[l],l,r,e):void 0;void 0===c&&(c=e[l]),a?s(r,l,c):i(r,l,c)}return r}var i=r(162),s=r(163);e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)?i(e):s(e)}var i=r(245),s=r(500),a=r(24);e.exports=n},function(e,t){"use strict";e.exports={filename:{type:"filename",description:"filename to use when reading from stdin - this will be used in source-maps, errors etc",default:"unknown",shorthand:"f"},filenameRelative:{hidden:!0,type:"string"},inputSourceMap:{hidden:!0},env:{hidden:!0,default:{}},mode:{description:"",hidden:!0},retainLines:{type:"boolean",default:!1,description:"retain line numbers - will result in really ugly code"},highlightCode:{description:"enable/disable ANSI syntax highlighting of code frames (on by default)",type:"boolean",default:!0},suppressDeprecationMessages:{type:"boolean",default:!1,hidden:!0},presets:{type:"list",description:"",default:[]},plugins:{type:"list",default:[],description:""},ignore:{type:"list",description:"list of glob paths to **not** compile",default:[]},only:{type:"list",description:"list of glob paths to **only** compile"},code:{hidden:!0,default:!0,type:"boolean"},metadata:{hidden:!0,default:!0,type:"boolean"},ast:{hidden:!0,default:!0,type:"boolean"},extends:{type:"string",hidden:!0},comments:{type:"boolean",default:!0,description:"write comments to generated output (true by default)"},shouldPrintComment:{hidden:!0,description:"optional callback to control whether a comment should be inserted, when this is used the comments option is ignored"},wrapPluginVisitorMethod:{hidden:!0,description:"optional callback to wrap all visitor methods"},compact:{type:"booleanString",default:"auto",description:"do not include superfluous whitespace characters and line terminators [true|false|auto]"},minified:{type:"boolean",default:!1,description:"save as much bytes when printing [true|false]"},sourceMap:{alias:"sourceMaps",hidden:!0},sourceMaps:{type:"booleanString",description:"[true|false|inline]",default:!1,shorthand:"s"},sourceMapTarget:{type:"string",description:"set `file` on returned source map"},sourceFileName:{type:"string",description:"set `sources[0]` on returned source map"},sourceRoot:{type:"filename",description:"the root from which all sources are relative"},babelrc:{description:"Whether or not to look up .babelrc and .babelignore files",type:"boolean",default:!0},sourceType:{description:"",default:"module"},auxiliaryCommentBefore:{type:"string",description:"print a comment before any injected non-user code"},auxiliaryCommentAfter:{type:"string",description:"print a comment after any injected non-user code"},resolveModuleSource:{hidden:!0},getModuleId:{hidden:!0},moduleRoot:{type:"filename",description:"optional prefix for the AMD module formatter that will be prepend to the filename on module definitions"},moduleIds:{type:"boolean",default:!1,shorthand:"M",description:"insert an explicit id for modules"},moduleId:{description:"specify a custom name for module ids",type:"string"},passPerPreset:{description:"Whether to spawn a traversal pass per a preset. By default all presets are merged.",type:"boolean",default:!1,hidden:!0},parserOpts:{description:"Options to pass into the parser, or to change parsers (parserOpts.parser)",default:!1},generatorOpts:{description:"Options to pass into the generator, or to change generators (generatorOpts.generator)",default:!1}}},function(e,t,r){(function(n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var a=r(366),o=s(a),u=r(35),l=s(u),c=r(87),f=s(c),p=r(2),d=s(p),h=r(11),m=s(h),y=r(3),v=s(y),g=r(182),b=i(g),E=r(65),x=s(E),A=r(20),S=i(A),_=r(52),D=r(184),C=s(D),w=r(185),P=s(w),k=r(575),F=s(k),T=r(109),O=s(T),B=r(293),R=s(B),I=r(33),M=s(I),N=r(54),L=s(N),j=r(51),U=s(j),V=r(19),G=s(V),W=function(){function e(t){(0,v.default)(this,e),this.resolvedConfigs=[],this.options=e.createBareOptions(),this.log=t}return e.memoisePluginContainer=function(t,r,n,i){for(var s=e.memoisedPlugins,a=Array.isArray(s),o=0,s=a?s:(0,d.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(l.container===t)return l.plugin}var c=void 0;if(c="function"==typeof t?t(b):t,"object"===(void 0===c?"undefined":(0,m.default)(c))){var f=new x.default(c,i);return e.memoisedPlugins.push({container:t,plugin:f}),f}throw new TypeError(S.get("pluginNotObject",r,n,void 0===c?"undefined":(0,m.default)(c))+r+n)},e.createBareOptions=function(){var e={};for(var t in M.default){var r=M.default[t];e[t]=(0,O.default)(r.default)}return e},e.normalisePlugin=function(t,r,n,i){if(!((t=t.__esModule?t.default:t)instanceof x.default)){if("function"!=typeof t&&"object"!==(void 0===t?"undefined":(0,m.default)(t)))throw new TypeError(S.get("pluginNotFunction",r,n,void 0===t?"undefined":(0,m.default)(t)));t=e.memoisePluginContainer(t,r,n,i)}return t.init(r,n),t},e.normalisePlugins=function(t,n,i){return i.map(function(i,s){var a=void 0,o=void 0;if(!i)throw new TypeError("Falsy value found in plugins");Array.isArray(i)?(a=i[0],o=i[1]):a=i;var u="string"==typeof a?a:t+"$"+s;if("string"==typeof a){var l=(0,C.default)(a,n);if(!l)throw new ReferenceError(S.get("pluginUnknown",a,t,s,n));a=r(179)(l)}return a=e.normalisePlugin(a,t,s,u),[a,o]})},e.prototype.mergeOptions=function(t){var r=this,i=t.options,s=t.extending,a=t.alias,o=t.loc,u=t.dirname;if(a=a||"foreign",i){("object"!==(void 0===i?"undefined":(0,m.default)(i))||Array.isArray(i))&&this.log.error("Invalid options type for "+a,TypeError);var l=(0,F.default)(i,function(e){if(e instanceof x.default)return e});u=u||n.cwd(),o=o||a;for(var c in l){if(!M.default[c]&&this.log)if(L.default[c])this.log.error("Using removed Babel 5 option: "+a+"."+c+" - "+L.default[c].message,ReferenceError);else{var p="Unknown option: "+a+"."+c+". Check out http://babeljs.io/docs/usage/options/ for more information about options.";this.log.error(p+"\n\nA common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:\n\nInvalid:\n  `{ presets: [{option: value}] }`\nValid:\n  `{ presets: [['presetName', {option: value}]] }`\n\nFor more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options.",ReferenceError)}}(0,_.normaliseOptions)(l),l.plugins&&(l.plugins=e.normalisePlugins(o,u,l.plugins)),l.presets&&(l.passPerPreset?l.presets=this.resolvePresets(l.presets,u,function(e,t){r.mergeOptions({options:e,extending:e,alias:t,loc:t,dirname:u})}):(this.mergePresets(l.presets,u),delete l.presets)),i===s?(0,f.default)(s,l):(0,R.default)(s||this.options,l)}},e.prototype.mergePresets=function(e,t){var r=this;this.resolvePresets(e,t,function(e,t){r.mergeOptions({options:e,alias:t,loc:t,dirname:G.default.dirname(t||"")})})},e.prototype.resolvePresets=function(e,t,n){return e.map(function(e){var i=void 0;if(Array.isArray(e)){if(e.length>2)throw new Error("Unexpected extra options "+(0,l.default)(e.slice(2))+" passed to preset.");var s=e;e=s[0],i=s[1]}var a=void 0;try{if("string"==typeof e){if(!(a=(0,P.default)(e,t)))throw new Error("Couldn't find preset "+(0,l.default)(e)+" relative to directory "+(0,l.default)(t));e=r(179)(a)}if("object"===(void 0===e?"undefined":(0,m.default)(e))&&e.__esModule)if(e.default)e=e.default;else{var u=e,c=(u.__esModule,(0,o.default)(u,["__esModule"]));e=c}if("object"===(void 0===e?"undefined":(0,m.default)(e))&&e.buildPreset&&(e=e.buildPreset),"function"!=typeof e&&void 0!==i)throw new Error("Options "+(0,l.default)(i)+" passed to "+(a||"a preset")+" which does not accept options.");if("function"==typeof e&&(e=e(b,i,{dirname:t})),"object"!==(void 0===e?"undefined":(0,m.default)(e)))throw new Error("Unsupported preset format: "+e+".");n&&n(e,a)}catch(e){throw a&&(e.message+=" (While processing preset: "+(0,l.default)(a)+")"),e}return e})},e.prototype.normaliseOptions=function(){var e=this.options;for(var t in M.default){var r=M.default[t],n=e[t];!n&&r.optional||(r.alias?e[r.alias]=e[r.alias]||n:e[t]=n)}},e.prototype.init=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,U.default)(e,this.log),r=Array.isArray(t),n=0,t=r?t:(0,d.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this.mergeOptions(s)}return this.normaliseOptions(e),this.options},e}();t.default=W,W.memoisedPlugins=[],e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";e.exports={default:r(405),__esModule:!0}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(2),a=i(s),o=r(3),u=i(o),l=r(224),c=n(l),f=r(239),p=i(f),d=r(466),h=i(d),m=r(7),y=i(m),v=r(174),g=i(v),b=r(134),E=i(b),x=r(1),A=n(x),S=r(88),_=(0,p.default)("babel"),D=function(){function e(t,r){(0,u.default)(this,e),this.parent=r,this.hub=t,this.contexts=[],this.data={},this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.state=null,this.opts=null,this.skipKeys=null,this.parentPath=null,this.context=null,this.container=null,this.listKey=null,this.inList=!1,this.parentKey=null,this.key=null,this.node=null,this.scope=null,this.type=null,this.typeAnnotation=null}return e.get=function(t){var r=t.hub,n=t.parentPath,i=t.parent,s=t.container,a=t.listKey,o=t.key;!r&&n&&(r=n.hub),(0,h.default)(i,"To get a node path the parent needs to exist");var u=s[o],l=S.path.get(i)||[];S.path.has(i)||S.path.set(i,l);for(var c=void 0,f=0;f<l.length;f++){var p=l[f];if(p.node===u){c=p;break}}return c||(c=new e(r,i),l.push(c)),c.setup(n,s,a,o),c},e.prototype.getScope=function(e){var t=e;return this.isScope()&&(t=new E.default(this,e)),t},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e,t){var r=this.data[e];return!r&&t&&(r=this.data[e]=t),r},e.prototype.buildCodeFrameError=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:SyntaxError;return this.hub.file.buildCodeFrameError(this.node,e,t)},e.prototype.traverse=function(e,t){(0,y.default)(this.node,e,this.scope,t,this)},e.prototype.mark=function(e,t){this.hub.file.metadata.marked.push({type:e,message:t,loc:this.node.loc})},e.prototype.set=function(e,t){A.validate(this.node,e,t),this.node[e]=t},e.prototype.getPathLocation=function(){var e=[],t=this;do{var r=t.key;t.inList&&(r=t.listKey+"["+r+"]"),e.unshift(r)}while(t=t.parentPath);return e.join(".")},e.prototype.debug=function(e){_.enabled&&_(this.getPathLocation()+" "+this.type+": "+e())},e}();t.default=D,(0,g.default)(D.prototype,r(368)),(0,g.default)(D.prototype,r(374)),(0,g.default)(D.prototype,r(382)),(0,g.default)(D.prototype,r(372)),(0,g.default)(D.prototype,r(371)),(0,g.default)(D.prototype,r(377)),(0,g.default)(D.prototype,r(370)),(0,g.default)(D.prototype,r(381)),(0,g.default)(D.prototype,r(380)),(0,g.default)(D.prototype,r(373)),(0,g.default)(D.prototype,r(369));for(var C=A.TYPES,w=Array.isArray(C),P=0,C=w?C:(0,a.default)(C);;){var k;if("break"===function(){if(w){if(P>=C.length)return"break";k=C[P++]}else{if(P=C.next(),P.done)return"break";k=P.value}var e=k,t="is"+e;D.prototype[t]=function(e){return A[t](this.node,e)},D.prototype["assert"+e]=function(r){if(!this[t](r))throw new TypeError("Expected node path of type "+e)}}())break}for(var F in c){(function(e){if("_"===e[0])return"continue";A.TYPES.indexOf(e)<0&&A.TYPES.push(e);var t=c[e];D.prototype["is"+e]=function(e){return t.checkPath(this,e)}})(F)}e.exports=t.default},function(e,t,r){"use strict";var n=r(142),i=r(140);e.exports=function(e){return n(i(e))}},function(e,t,r){"use strict";function n(e,t){var r=s(e,t);return i(r)?r:void 0}var i=r(497),s=r(535);e.exports=n},function(e,t){"use strict";e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r,n){if(e.selfReference){if(!n.hasBinding(r.name)||n.hasGlobal(r.name)){if(!f.isFunction(t))return;var i=p;t.generator&&(i=d);var s=i({FUNCTION:t,FUNCTION_ID:r,FUNCTION_KEY:n.generateUidIdentifier(r.name)}).expression;s.callee._skipModulesRemap=!0;for(var a=s.callee.body.body[0].params,u=0,l=(0,o.default)(t);u<l;u++)a.push(n.generateUidIdentifier("x"));return s}n.rename(r.name)}t.id=r,n.getProgramParent().references[r.name]=!0}function s(e,t,r){var n={selfAssignment:!1,selfReference:!1,outerDeclar:r.getBindingIdentifier(t),references:[],name:t},i=r.getOwnBinding(t);return i?"param"===i.kind&&(n.selfReference=!0):(n.outerDeclar||r.hasGlobal(t))&&r.traverse(e,h,n),n}t.__esModule=!0,t.default=function(e){var t=e.node,r=e.parent,n=e.scope,a=e.id;if(!t.id){if(!f.isObjectProperty(r)&&!f.isObjectMethod(r,{kind:"method"})||r.computed&&!f.isLiteral(r.key)){if(f.isVariableDeclarator(r)){if(a=r.id,f.isIdentifier(a)){var o=n.parent.getBinding(a.name);if(o&&o.constant&&n.getBinding(a.name)===o)return t.id=a,void(t.id[f.NOT_LOCAL_BINDING]=!0)}}else if(f.isAssignmentExpression(r))a=r.left;else if(!a)return}else a=r.key;var u=void 0;if(a&&f.isLiteral(a))u=a.value;else{if(!a||!f.isIdentifier(a))return;u=a.name}u=f.toBindingIdentifierName(u),a=f.identifier(u),a[f.NOT_LOCAL_BINDING]=!0;return i(s(t,u,n),t,a,n)||t}};var a=r(189),o=n(a),u=r(4),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=(0,l.default)("\n  (function (FUNCTION_KEY) {\n    function FUNCTION_ID() {\n      return FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    }\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"),d=(0,l.default)("\n  (function (FUNCTION_KEY) {\n    function* FUNCTION_ID() {\n      return yield* FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    };\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"),h={"ReferencedIdentifier|BindingIdentifier":function(e,t){if(e.node.name===t.name){e.scope.getBindingIdentifier(t.name)===t.outerDeclar&&(t.selfReference=!0,e.stop())}}};e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(361),s=n(i),a=r(9),o=n(a),u=r(11),l=n(u);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,l.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(s.default?(0,s.default)(e,t):e.__proto__=t)}},function(e,t,r){"use strict";t.__esModule=!0;var n=r(11),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,i.default)(t))&&"function"!=typeof t?e:t}},function(e,t,r){"use strict";var n=r(227);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,r){"use strict";var n=r(237),i=r(141);e.exports=Object.keys||function(e){return n(e,i)}},function(e,t,r){"use strict";var n=r(17),i=n.Symbol;e.exports=i},function(e,t){"use strict";function r(e,t){return e===t||e!==e&&t!==t}e.exports=r},function(e,t,r){"use strict";function n(e){return a(e)?i(e,!0):s(e)}var i=r(245),s=r(501),a=r(24);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(e),r=t%1;return t===t?r?t-r:t:0}var i=r(597);e.exports=n},function(e,t){(function(t){e.exports=t}).call(t,{})},function(e,t,r){(function(e){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.File=void 0;var s=r(2),a=i(s),o=r(9),u=i(o),l=r(87),c=i(l),f=r(3),p=i(f),d=r(42),h=i(d),m=r(41),y=i(m),v=r(194),g=i(v),b=r(121),E=n(b),x=r(403),A=i(x),S=r(34),_=i(S),D=r(299),C=i(D),w=r(7),P=i(w),k=r(288),F=i(k),T=r(186),O=i(T),B=r(181),R=i(B),I=r(273),M=i(I),N=r(120),L=i(N),j=r(119),U=i(j),V=r(89),G=r(122),W=n(G),Y=r(19),q=i(Y),K=r(1),H=n(K),J=r(118),X=i(J),z=r(296),$=i(z),Q=r(297),Z=i(Q),ee=/^#!.*/,te=[[$.default],[Z.default]],re={enter:function(e,t){var r=e.node.loc;r&&(t.loc=r,e.stop())}},ne=function(t){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments[1];(0,p.default)(this,n);var i=(0,h.default)(this,t.call(this));return i.pipeline=r,i.log=new L.default(i,e.filename||"unknown"),i.opts=i.initOptions(e),i.parserOpts={sourceType:i.opts.sourceType,sourceFileName:i.opts.filename,plugins:[]},i.pluginVisitors=[],i.pluginPasses=[],i.buildPluginsForOptions(i.opts),i.opts.passPerPreset&&(i.perPresetOpts=[],i.opts.presets.forEach(function(e){var t=(0,c.default)((0,u.default)(i.opts),e);i.perPresetOpts.push(t),i.buildPluginsForOptions(t)})),i.metadata={usedHelpers:[],marked:[],modules:{imports:[],exports:{exported:[],specifiers:[]}}},i.dynamicImportTypes={},i.dynamicImportIds={},i.dynamicImports=[],i.declarations={},i.usedHelpers={},i.path=null,i.ast={},i.code="",i.shebang="",i.hub=new w.Hub(i),i}return(0,y.default)(n,t),n.prototype.getMetadata=function(){for(var e=!1,t=this.ast.program.body,r=Array.isArray(t),n=0,t=r?t:(0,a.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(H.isModuleDeclaration(s)){e=!0;break}}e&&this.path.traverse(E,this)},n.prototype.initOptions=function(e){e=new _.default(this.log,this.pipeline).init(e),e.inputSourceMap&&(e.sourceMaps=!0),e.moduleId&&(e.moduleIds=!0),e.basename=q.default.basename(e.filename,q.default.extname(e.filename)),e.ignore=W.arrayify(e.ignore,W.regexify),e.only&&(e.only=W.arrayify(e.only,W.regexify)),(0,M.default)(e,{moduleRoot:e.sourceRoot}),(0,M.default)(e,{sourceRoot:e.moduleRoot}),(0,M.default)(e,{filenameRelative:e.filename});var t=q.default.basename(e.filenameRelative);return(0,M.default)(e,{sourceFileName:t,sourceMapTarget:t}),e},n.prototype.buildPluginsForOptions=function(e){if(Array.isArray(e.plugins)){for(var t=e.plugins.concat(te),r=[],n=[],i=t,s=Array.isArray(i),o=0,i=s?i:(0,a.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u,c=l[0],f=l[1];r.push(c.visitor),n.push(new C.default(this,c,f)),c.manipulateOptions&&c.manipulateOptions(e,this.parserOpts,this)}this.pluginVisitors.push(r),this.pluginPasses.push(n)}},n.prototype.getModuleName=function(){var e=this.opts;if(!e.moduleIds)return null;if(null!=e.moduleId&&!e.getModuleId)return e.moduleId;var t=e.filenameRelative,r="";if(null!=e.moduleRoot&&(r=e.moduleRoot+"/"),!e.filenameRelative)return r+e.filename.replace(/^\//,"");if(null!=e.sourceRoot){var n=new RegExp("^"+e.sourceRoot+"/?");t=t.replace(n,"")}return t=t.replace(/\.(\w*?)$/,""),r+=t,r=r.replace(/\\/g,"/"),e.getModuleId?e.getModuleId(r)||r:r},n.prototype.resolveModuleSource=function(e){var t=this.opts.resolveModuleSource;return t&&(e=t(e,this.opts.filename)),e},n.prototype.addImport=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,n=e+":"+t,i=this.dynamicImportIds[n];if(!i){e=this.resolveModuleSource(e),i=this.dynamicImportIds[n]=this.scope.generateUidIdentifier(r);var s=[];"*"===t?s.push(H.importNamespaceSpecifier(i)):"default"===t?s.push(H.importDefaultSpecifier(i)):s.push(H.importSpecifier(i,H.identifier(t)));var a=H.importDeclaration(s,H.stringLiteral(e));a._blockHoist=3,this.path.unshiftContainer("body",a)}return i},n.prototype.addHelper=function(e){var t=this.declarations[e];if(t)return t;this.usedHelpers[e]||(this.metadata.usedHelpers.push(e),this.usedHelpers[e]=!0);var r=this.get("helperGenerator"),n=this.get("helpersNamespace");if(r){var i=r(e);if(i)return i}else if(n)return H.memberExpression(n,H.identifier(e));var s=(0,g.default)(e),a=this.declarations[e]=this.scope.generateUidIdentifier(e);return H.isFunctionExpression(s)&&!s.id?(s.body._compact=!0,s._generated=!0,s.id=a,s.type="FunctionDeclaration",this.path.unshiftContainer("body",s)):(s._compact=!0,this.scope.push({id:a,init:s,unique:!0})),a},n.prototype.addTemplateObject=function(e,t,r){var n=r.elements.map(function(e){return e.value}),i=e+"_"+r.elements.length+"_"+n.join(","),s=this.declarations[i];if(s)return s;var a=this.declarations[i]=this.scope.generateUidIdentifier("templateObject"),o=this.addHelper(e),u=H.callExpression(o,[t,r]);return u._compact=!0,this.scope.push({id:a,init:u,_blockHoist:1.9}),a},n.prototype.buildCodeFrameError=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:SyntaxError,n=e&&(e.loc||e._loc),i=new r(t);return n?i.loc=n.start:((0,P.default)(e,re,this.scope,i),i.message+=" (This is an error on an internal node. Probably an internal error",i.loc&&(i.message+=". Location has been estimated."),i.message+=")"),i},n.prototype.mergeSourceMap=function(e){var t=this.opts.inputSourceMap;if(t){var r=new F.default.SourceMapConsumer(t),n=new F.default.SourceMapConsumer(e),i=new F.default.SourceMapGenerator({file:r.file,sourceRoot:r.sourceRoot}),s=n.sources[0];r.eachMapping(function(e){var t=n.generatedPositionFor({line:e.generatedLine,column:e.generatedColumn,source:s});null!=t.column&&i.addMapping({source:e.source,original:null==e.source?null:{line:e.originalLine,column:e.originalColumn},generated:t})});var a=i.toJSON();return t.mappings=a.mappings,t}return e},n.prototype.parse=function(t){var n=V.parse,i=this.opts.parserOpts;if(i&&(i=(0,c.default)({},this.parserOpts,i),i.parser)){if("string"==typeof i.parser){var s=q.default.dirname(this.opts.filename)||e.cwd(),a=(0,X.default)(i.parser,s);if(!a)throw new Error("Couldn't find parser "+i.parser+' with "parse" method relative to directory '+s);n=r(178)(a).parse}else n=i.parser;i.parser={parse:function(e){return(0,V.parse)(e,i)}}}this.log.debug("Parse start");var o=n(t,i||this.parserOpts);return this.log.debug("Parse stop"),o},n.prototype._addAst=function(e){this.path=w.NodePath.get({hub:this.hub,parentPath:null,parent:e,container:e,key:"program"}).setContext(),this.scope=this.path.scope,this.ast=e,this.getMetadata()},n.prototype.addAst=function(e){this.log.debug("Start set AST"),this._addAst(e),this.log.debug("End set AST")},n.prototype.transform=function(){for(var e=0;e<this.pluginPasses.length;e++){var t=this.pluginPasses[e];this.call("pre",t),this.log.debug("Start transform traverse");var r=P.default.visitors.merge(this.pluginVisitors[e],t,this.opts.wrapPluginVisitorMethod);(0,P.default)(this.ast,r,this.scope),this.log.debug("End transform traverse"),this.call("post",t)}return this.generate()},n.prototype.wrap=function(t,r){t+="";try{return this.shouldIgnore()?this.makeResult({code:t,ignored:!0}):r()}catch(r){if(r._babel)throw r;r._babel=!0;var n=r.message=this.opts.filename+": "+r.message,i=r.loc;if(i&&(r.codeFrame=(0,R.default)(t,i.line,i.column+1,this.opts),n+="\n"+r.codeFrame),e.browser&&(r.message=n),r.stack){var s=r.stack.replace(r.message,n);r.stack=s}throw r}},n.prototype.addCode=function(e){e=(e||"")+"",e=this.parseInputSourceMap(e),this.code=e},n.prototype.parseCode=function(){this.parseShebang();var e=this.parse(this.code);this.addAst(e)},n.prototype.shouldIgnore=function(){var e=this.opts;return W.shouldIgnore(e.filename,e.ignore,e.only)},n.prototype.call=function(e,t){for(var r=t,n=Array.isArray(r),i=0,r=n?r:(0,a.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var o=s,u=o.plugin,l=u[e];l&&l.call(o,this)}},n.prototype.parseInputSourceMap=function(e){var t=this.opts;if(!1!==t.inputSourceMap){var r=A.default.fromSource(e);r&&(t.inputSourceMap=r.toObject(),e=A.default.removeComments(e))}return e},n.prototype.parseShebang=function(){var e=ee.exec(this.code);e&&(this.shebang=e[0],this.code=this.code.replace(ee,""))},n.prototype.makeResult=function(e){var t=e.code,r=e.map,n=e.ast,i=e.ignored,s={metadata:null,options:this.opts,ignored:!!i,code:null,ast:null,map:r||null};return this.opts.code&&(s.code=t),this.opts.ast&&(s.ast=n),this.opts.metadata&&(s.metadata=this.metadata),s},n.prototype.generate=function(){var t=this.opts,n=this.ast,i={ast:n};if(!t.code)return this.makeResult(i);var s=O.default;if(t.generatorOpts.generator&&"string"==typeof(s=t.generatorOpts.generator)){var a=q.default.dirname(this.opts.filename)||e.cwd(),o=(0,X.default)(s,a);if(!o)throw new Error("Couldn't find generator "+s+' with "print" method relative to directory '+a);s=r(178)(o).print}this.log.debug("Generation start");var u=s(n,t.generatorOpts?(0,c.default)(t,t.generatorOpts):t,this.code);return i.code=u.code,i.map=u.map,this.log.debug("Generation end"),this.shebang&&(i.code=this.shebang+"\n"+i.code),i.map&&(i.map=this.mergeSourceMap(i.map)),"inline"!==t.sourceMaps&&"both"!==t.sourceMaps||(i.code+="\n"+A.default.fromObject(i.map).toComment()),"inline"===t.sourceMaps&&(i.map=null),this.makeResult(i)},n}(U.default);t.default=ne,t.File=ne}).call(t,r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=x[e];return null==t?x[e]=E.default.existsSync(e):t}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],r=e.filename,n=new S(t);return!1!==e.babelrc&&n.findConfigs(r),n.mergeConfig({options:e,alias:"base",dirname:r&&g.default.dirname(r)}),n.configs}t.__esModule=!0;var o=r(87),u=i(o),l=r(3),c=i(l);t.default=a;var f=r(118),p=i(f),d=r(470),h=i(d),m=r(604),y=i(m),v=r(19),g=i(v),b=r(115),E=i(b),x={},A={},S=function(){function e(t){(0,c.default)(this,e),this.resolvedConfigs=[],this.configs=[],this.log=t}return e.prototype.findConfigs=function(e){if(e){(0,y.default)(e)||(e=g.default.join(n.cwd(),e));for(var t=!1,r=!1;e!==(e=g.default.dirname(e));){if(!t){var i=g.default.join(e,".babelrc");s(i)&&(this.addConfig(i),t=!0);var a=g.default.join(e,"package.json");!t&&s(a)&&(t=this.addConfig(a,"babel",JSON))}if(!r){var o=g.default.join(e,".babelignore");s(o)&&(this.addIgnoreConfig(o),r=!0)}if(r&&t)return}}},e.prototype.addIgnoreConfig=function(e){var t=E.default.readFileSync(e,"utf8"),r=t.split("\n");r=r.map(function(e){return e.replace(/#(.*?)$/,"").trim()}).filter(function(e){return!!e}),r.length&&this.mergeConfig({options:{ignore:r},alias:e,dirname:g.default.dirname(e)})},e.prototype.addConfig=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.default;if(this.resolvedConfigs.indexOf(e)>=0)return!1
;this.resolvedConfigs.push(e);var n=E.default.readFileSync(e,"utf8"),i=void 0;try{i=A[n]=A[n]||r.parse(n),t&&(i=i[t])}catch(t){throw t.message=e+": Error while parsing JSON - "+t.message,t}return this.mergeConfig({options:i,alias:e,dirname:g.default.dirname(e)}),!!i},e.prototype.mergeConfig=function(e){var t=e.options,r=e.alias,i=e.loc,s=e.dirname;if(!t)return!1;if(t=(0,u.default)({},t),s=s||n.cwd(),i=i||r,t.extends){var a=(0,p.default)(t.extends,s);a?this.addConfig(a):this.log&&this.log.error("Couldn't resolve extends clause of "+t.extends+" in "+r),delete t.extends}this.configs.push({options:t,alias:r,loc:i,dirname:s});var o=void 0,l=n.env.BABEL_ENV||"production"||"development";t.env&&(o=t.env[l],delete t.env),this.mergeConfig({options:o,alias:r+".env."+l,dirname:s})},e}();e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e){var r=e[t];if(null!=r){var n=o.default[t];if(n&&n.alias&&(n=o.default[n.alias]),n){var i=s[n.type];i&&(r=i(r)),e[t]=r}}}return e}t.__esModule=!0,t.config=void 0,t.normaliseOptions=n;var i=r(53),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(i),a=r(33),o=function(e){return e&&e.__esModule?e:{default:e}}(a);t.config=o.default},function(e,t,r){"use strict";function n(e){return!!e}function i(e){return l.booleanify(e)}function s(e){return l.list(e)}t.__esModule=!0,t.filename=void 0,t.boolean=n,t.booleanString=i,t.list=s;var a=r(284),o=function(e){return e&&e.__esModule?e:{default:e}}(a),u=r(122),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.filename=o.default},function(e,t){"use strict";e.exports={auxiliaryComment:{message:"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"},blacklist:{message:"Put the specific transforms you want in the `plugins` option"},breakConfig:{message:"This is not a necessary option in Babel 6"},experimental:{message:"Put the specific transforms you want in the `plugins` option"},externalHelpers:{message:"Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"},extra:{message:""},jsxPragma:{message:"use the `pragma` option in the `react-jsx` plugin . Check out http://babeljs.io/docs/plugins/transform-react-jsx/"},loose:{message:"Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."},metadataUsedHelpers:{message:"Not required anymore as this is enabled by default"},modules:{message:"Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"},nonStandard:{message:"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"},optional:{message:"Put the specific transforms you want in the `plugins` option"},sourceMapName:{message:"Use the `sourceMapTarget` option"},stage:{message:"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"},whitelist:{message:"Put the specific transforms you want in the `plugins` option"}}},function(e,t,r){"use strict";var n=r(43),i=r(428),s=r(427),a=r(21),o=r(153),u=r(238),l={},c={},f=e.exports=function(e,t,r,f,p){var d,h,m,y,v=p?function(){return e}:u(e),g=n(r,f,t?2:1),b=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(s(v)){for(d=o(e.length);d>b;b++)if((y=t?g(a(h=e[b])[0],h[1]):g(e[b]))===l||y===c)return y}else for(m=v.call(e);!(h=m.next()).done;)if((y=i(m,g,h.value,t))===l||y===c)return y};f.BREAK=l,f.RETURN=c},function(e,t){"use strict";e.exports={}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(95)("meta"),s=r(16),a=r(28),o=r(23).f,u=0,l=Object.isExtensible||function(){return!0},c=!r(27)(function(){return l(Object.preventExtensions({}))}),f=function(e){o(e,i,{value:{i:"O"+ ++u,w:{}}})},p=function(e,t){if(!s(e))return"symbol"==(void 0===e?"undefined":n(e))?e:("string"==typeof e?"S":"P")+e;if(!a(e,i)){if(!l(e))return"F";if(!t)return"E";f(e)}return e[i].i},d=function(e,t){if(!a(e,i)){if(!l(e))return!0;if(!t)return!1;f(e)}return e[i].w},h=function(e){return c&&m.NEED&&l(e)&&!a(e,i)&&f(e),e},m=e.exports={KEY:i,NEED:!1,fastKey:p,getWeak:d,onFreeze:h}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e,t){if(!n(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,r){"use strict";r(440);for(var n=r(15),i=r(29),s=r(56),a=r(13)("toStringTag"),o="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<o.length;u++){var l=o[u],c=n[l],f=c&&c.prototype;f&&!f[a]&&i(f,a,l),s[l]=s.Array}},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}e.exports=r},function(e,t,r){"use strict";function n(e){return"function"==typeof e?e:null==e?o:"object"==(void 0===e?"undefined":i(e))?u(e)?a(e[0],e[1]):s(e):l(e)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(502),a=r(503),o=r(110),u=r(6),l=r(592);e.exports=n},function(e,t,r){"use strict";function n(e){return"symbol"==(void 0===e?"undefined":i(e))||a(e)&&s(e)==o}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(30),a=r(25),o="[object Symbol]";e.exports=n},function(e,t){"use strict";function r(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}function n(e){var t=e.match(y);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function s(e){var r=e,s=n(e);if(s){if(!s.path)return e;r=s.path}for(var a,o=t.isAbsolute(r),u=r.split(/\/+/),l=0,c=u.length-1;c>=0;c--)a=u[c],"."===a?u.splice(c,1):".."===a?l++:l>0&&(""===a?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return r=u.join("/"),""===r&&(r=o?"/":"."),s?(s.path=r,i(s)):r}function a(e,t){""===e&&(e="."),""===t&&(t=".");var r=n(t),a=n(e);if(a&&(e=a.path||"/"),r&&!r.scheme)return a&&(r.scheme=a.scheme),i(r);if(r||t.match(v))return t;if(a&&!a.host&&!a.path)return a.host=t,i(a);var o="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return a?(a.path=o,i(a)):o}function o(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if(e=e.slice(0,n),e.match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)}function u(e){return e}function l(e){return f(e)?"$"+e:e}function c(e){return f(e)?e.slice(1):e}function f(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function p(e,t,r){var n=e.source-t.source;return 0!==n?n:0!==(n=e.originalLine-t.originalLine)?n:0!==(n=e.originalColumn-t.originalColumn)||r?n:0!==(n=e.generatedColumn-t.generatedColumn)?n:(n=e.generatedLine-t.generatedLine,0!==n?n:e.name-t.name)}function d(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!==(n=e.generatedColumn-t.generatedColumn)||r?n:0!==(n=e.source-t.source)?n:0!==(n=e.originalLine-t.originalLine)?n:(n=e.originalColumn-t.originalColumn,0!==n?n:e.name-t.name)}function h(e,t){return e===t?0:e>t?1:-1}function m(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!==(r=e.generatedColumn-t.generatedColumn)?r:0!==(r=h(e.source,t.source))?r:0!==(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,0!==r?r:h(e.name,t.name))}t.getArg=r;var y=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,v=/^data:.+\,.+$/;t.urlParse=n,t.urlGenerate=i,t.normalize=s,t.join=a,t.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(y)},t.relative=o;var g=function(){return!("__proto__"in Object.create(null))}();t.toSetString=g?u:l,t.fromSetString=g?u:c,t.compareByOriginalPositions=p,t.compareByGeneratedPositionsDeflated=d,t.compareByGeneratedPositionsInflated=m},function(e,t,r){(function(t){"use strict";function n(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i<s;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}function i(e){return t.Buffer&&"function"==typeof t.Buffer.isBuffer?t.Buffer.isBuffer(e):!(null==e||!e._isBuffer)}function s(e){return Object.prototype.toString.call(e)}function a(e){return!i(e)&&("function"==typeof t.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function o(e){if(x.isFunction(e)){if(_)return e.name;var t=e.toString(),r=t.match(C);return r&&r[1]}}function u(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function l(e){if(_||!x.isFunction(e))return x.inspect(e);var t=o(e);return"[Function"+(t?": "+t:"")+"]"}function c(e){return u(l(e.actual),128)+" "+e.operator+" "+u(l(e.expected),128)}function f(e,t,r,n,i){throw new D.AssertionError({message:r,actual:e,expected:t,operator:n,stackStartFunction:i})}function p(e,t){e||f(e,!0,t,"==",D.ok)}function d(e,t,r,o){if(e===t)return!0;if(i(e)&&i(t))return 0===n(e,t);if(x.isDate(e)&&x.isDate(t))return e.getTime()===t.getTime();if(x.isRegExp(e)&&x.isRegExp(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"===(void 0===e?"undefined":E(e))||null!==t&&"object"===(void 0===t?"undefined":E(t))){if(a(e)&&a(t)&&s(e)===s(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===n(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(i(e)!==i(t))return!1;o=o||{actual:[],expected:[]};var u=o.actual.indexOf(e);return-1!==u&&u===o.expected.indexOf(t)||(o.actual.push(e),o.expected.push(t),m(e,t,r,o))}return r?e===t:e==t}function h(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function m(e,t,r,n){if(null===e||void 0===e||null===t||void 0===t)return!1;if(x.isPrimitive(e)||x.isPrimitive(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=h(e),s=h(t);if(i&&!s||!i&&s)return!1;if(i)return e=S.call(e),t=S.call(t),d(e,t,r);var a,o,u=w(e),l=w(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),o=u.length-1;o>=0;o--)if(u[o]!==l[o])return!1;for(o=u.length-1;o>=0;o--)if(a=u[o],!d(e[a],t[a],r,n))return!1;return!0}function y(e,t,r){d(e,t,!0)&&f(e,t,r,"notDeepStrictEqual",y)}function v(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function g(e){var t;try{e()}catch(e){t=e}return t}function b(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=g(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&f(i,r,"Missing expected exception"+n);var s="string"==typeof n,a=!e&&x.isError(i),o=!e&&i&&!r;if((a&&s&&v(i,r)||o)&&f(i,r,"Got unwanted exception"+n),e&&i&&r&&!v(i,r)||!e&&i)throw i}var E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x=r(117),A=Object.prototype.hasOwnProperty,S=Array.prototype.slice,_=function(){return"foo"===function(){}.name}(),D=e.exports=p,C=/\s*function\s+([^\(\s]*)\s*/;D.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=c(this),this.generatedMessage=!0);var t=e.stackStartFunction||f;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=o(t),s=n.indexOf("\n"+i);if(s>=0){var a=n.indexOf("\n",s+1);n=n.substring(a+1)}this.stack=n}}},x.inherits(D.AssertionError,Error),D.fail=f,D.ok=p,D.equal=function(e,t,r){e!=t&&f(e,t,r,"==",D.equal)},D.notEqual=function(e,t,r){e==t&&f(e,t,r,"!=",D.notEqual)},D.deepEqual=function(e,t,r){d(e,t,!1)||f(e,t,r,"deepEqual",D.deepEqual)},D.deepStrictEqual=function(e,t,r){d(e,t,!0)||f(e,t,r,"deepStrictEqual",D.deepStrictEqual)},D.notDeepEqual=function(e,t,r){d(e,t,!1)&&f(e,t,r,"notDeepEqual",D.notDeepEqual)},D.notDeepStrictEqual=y,D.strictEqual=function(e,t,r){e!==t&&f(e,t,r,"===",D.strictEqual)},D.notStrictEqual=function(e,t,r){e===t&&f(e,t,r,"!==",D.notStrictEqual)},D.throws=function(e,t,r){b(!0,e,t,r)},D.doesNotThrow=function(e,t,r){b(!1,e,t,r)},D.ifError=function(e){if(e)throw e};var w=Object.keys||function(e){var t=[];for(var r in e)A.call(e,r)&&t.push(r);return t}}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c),p=r(34),d=n(p),h=r(20),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(119),v=n(y),g=r(7),b=n(g),E=r(174),x=n(E),A=r(109),S=n(A),_=["enter","exit"],D=function(e){function t(r,n){(0,o.default)(this,t);var i=(0,l.default)(this,e.call(this));return i.initialized=!1,i.raw=(0,x.default)({},r),i.key=i.take("name")||n,i.manipulateOptions=i.take("manipulateOptions"),i.post=i.take("post"),i.pre=i.take("pre"),i.visitor=i.normaliseVisitor((0,S.default)(i.take("visitor"))||{}),i}return(0,f.default)(t,e),t.prototype.take=function(e){var t=this.raw[e];return delete this.raw[e],t},t.prototype.chain=function(e,t){if(!e[t])return this[t];if(!this[t])return e[t];var r=[e[t],this[t]];return function(){for(var e=void 0,t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];for(var a=r,o=Array.isArray(a),u=0,a=o?a:(0,s.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(c){var f=c.apply(this,n);null!=f&&(e=f)}}return e}},t.prototype.maybeInherit=function(e){var t=this.take("inherits");t&&(t=d.default.normalisePlugin(t,e,"inherits"),this.manipulateOptions=this.chain(t,"manipulateOptions"),this.post=this.chain(t,"post"),this.pre=this.chain(t,"pre"),this.visitor=b.default.visitors.merge([t.visitor,this.visitor]))},t.prototype.init=function(e,t){if(!this.initialized){this.initialized=!0,this.maybeInherit(e);for(var r in this.raw)throw new Error(m.get("pluginInvalidProperty",e,t,r))}},t.prototype.normaliseVisitor=function(e){for(var t=_,r=Array.isArray(t),n=0,t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}if(e[i])throw new Error("Plugins aren't allowed to specify catch-all enter/exit handlers. Please target individual nodes.")}return b.default.explode(e),e},t}(v.default);t.default=D,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.messages;return{visitor:{Scope:function(e){var r=e.scope;for(var n in r.bindings){var s=r.bindings[n];if("const"===s.kind||"module"===s.kind)for(var a=s.constantViolations,o=Array.isArray(a),u=0,a=o?a:(0,i.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;throw c.buildCodeFrameError(t.get("readOnly",n))}}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncFunctions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{ArrowFunctionExpression:function(e,r){if(r.opts.spec){var n=e.node;if(n.shadow)return;n.shadow={this:!1},n.type="FunctionExpression";var i=t.thisExpression();i._forceShadow=e,e.ensureBlock(),e.get("body").unshiftContainer("body",t.expressionStatement(t.callExpression(r.addHelper("newArrowCheck"),[t.thisExpression(),i]))),e.replaceWith(t.callExpression(t.memberExpression(n,t.identifier("bind")),[t.thisExpression()]))}else e.arrowFunctionToShadowed()}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e,t){for(var n=t.get(e),s=n,a=Array.isArray(s),o=0,s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u,c=l.node;if(l.isFunctionDeclaration()){var f=r.variableDeclaration("let",[r.variableDeclarator(c.id,r.toExpression(c))]);f._blockHoist=2,c.id=null,l.replaceWith(f)}}}var r=e.types;return{visitor:{BlockStatement:function(e){var n=e.node,i=e.parent;r.isFunction(i,{body:n})||r.isExportDeclaration(i)||t("body",e)},SwitchCase:function(e){t("consequent",e)}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return b.isLoop(e.parent)||b.isCatchClause(e.parent)}function s(e){return!!b.isVariableDeclaration(e)&&(!!e[b.BLOCK_SCOPED_SYMBOL]||("let"===e.kind||"const"===e.kind))}function a(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(t||(t=e.node),!b.isFor(r))for(var s=0;s<t.declarations.length;s++){var a=t.declarations[s];a.init=a.init||n.buildUndefinedNode()}if(t[b.BLOCK_SCOPED_SYMBOL]=!0,t.kind="var",i){var o=n.getFunctionParent(),u=e.getBindingIdentifiers();for(var l in u){var c=n.getOwnBinding(l);c&&(c.kind="var"),n.moveBindingTo(l,o)}}}function o(e){return b.isVariableDeclaration(e,{kind:"var"})&&!s(e)}function u(e){return b.isBreakStatement(e)?"break":b.isContinueStatement(e)?"continue":void 0}t.__esModule=!0;var l=r(10),c=n(l),f=r(9),p=n(f),d=r(3),h=n(d);t.default=function(){return{visitor:{VariableDeclaration:function(e,t){var r=e.node,n=e.parent,i=e.scope;if(s(r)&&(a(e,null,n,i,!0),r._tdzThis)){for(var o=[r],u=0;u<r.declarations.length;u++){var l=r.declarations[u];if(l.init){var c=b.assignmentExpression("=",l.id,l.init);c._ignoreBlockScopingTDZ=!0,o.push(b.expressionStatement(c))}l.init=t.addHelper("temporalUndefined")}r._blockHoist=2,e.isCompletionRecord()&&o.push(b.expressionStatement(i.buildUndefinedNode())),e.replaceWithMultiple(o)}},Loop:function(e,t){var r=e.node,n=e.parent,i=e.scope;b.ensureBlock(r);var s=new B(e,e.get("body"),n,i,t),a=s.run();a&&e.replaceWith(a)},CatchClause:function(e,t){var r=e.parent,n=e.scope;new B(null,e.get("body"),r,n,t).run()},"BlockStatement|SwitchStatement|Program":function(e,t){if(!i(e)){new B(null,e,e.parent,e.scope,t).run()}}}}};var m=r(7),y=n(m),v=r(330),g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E=r(280),x=n(E),A=r(578),S=n(A),_=r(4),D=n(_),C=(0,D.default)('\n  if (typeof RETURN === "object") return RETURN.v;\n'),w=y.default.visitors.merge([{Loop:{enter:function(e,t){t.loopDepth++},exit:function(e,t){t.loopDepth--}},Function:function(e,t){return t.loopDepth>0&&e.traverse(P,t),e.skip()}},v.visitor]),P=y.default.visitors.merge([{ReferencedIdentifier:function(e,t){var r=t.letReferences[e.node.name];if(r){var n=e.scope.getBindingIdentifier(e.node.name);n&&n!==r||(t.closurify=!0)}}},v.visitor]),k={enter:function(e,t){var r=e.node;e.parent;if(e.isForStatement()){if(o(r.init)){var n=t.pushDeclar(r.init);1===n.length?r.init=n[0]:r.init=b.sequenceExpression(n)}}else if(e.isFor())o(r.left)&&(t.pushDeclar(r.left),r.left=r.left.declarations[0].id);else if(o(r))e.replaceWithMultiple(t.pushDeclar(r).map(function(e){return b.expressionStatement(e)}));else if(e.isFunction())return e.skip()}},F={LabeledStatement:function(e,t){var r=e.node;t.innerLabels.push(r.label.name)}},T={enter:function(e,t){if(e.isAssignmentExpression()||e.isUpdateExpression()){var r=e.getBindingIdentifiers();for(var n in r)t.outsideReferences[n]===e.scope.getBindingIdentifier(n)&&(t.reassignments[n]=!0)}}},O={Loop:function(e,t){var r=t.ignoreLabeless;t.ignoreLabeless=!0,e.traverse(O,t),t.ignoreLabeless=r,e.skip()},Function:function(e){e.skip()},SwitchCase:function(e,t){var r=t.inSwitchCase;t.inSwitchCase=!0,e.traverse(O,t),t.inSwitchCase=r,e.skip()},"BreakStatement|ContinueStatement|ReturnStatement":function(e,t){var r=e.node,n=e.parent,i=e.scope;if(!r[this.LOOP_IGNORE]){var s=void 0,a=u(r);if(a){if(r.label){if(t.innerLabels.indexOf(r.label.name)>=0)return;a=a+"|"+r.label.name}else{if(t.ignoreLabeless)return;if(t.inSwitchCase)return;if(b.isBreakStatement(r)&&b.isSwitchCase(n))return}t.hasBreakContinue=!0,t.map[a]=r,s=b.stringLiteral(a)}e.isReturnStatement()&&(t.hasReturn=!0,s=b.objectExpression([b.objectProperty(b.identifier("v"),r.argument||i.buildUndefinedNode())])),s&&(s=b.returnStatement(s),s[this.LOOP_IGNORE]=!0,e.skip(),e.replaceWith(b.inherits(s,r)))}}},B=function(){function e(t,r,n,i,s){(0,h.default)(this,e),this.parent=n,this.scope=i,this.file=s,this.blockPath=r,this.block=r.node,this.outsideLetReferences=(0,p.default)(null),this.hasLetReferences=!1,this.letReferences=(0,p.default)(null),this.body=[],t&&(this.loopParent=t.parent,this.loopLabel=b.isLabeledStatement(this.loopParent)&&this.loopParent.label,this.loopPath=t,this.loop=t.node)}return e.prototype.run=function(){var e=this.block;if(!e._letDone){e._letDone=!0;var t=this.getLetReferences();if(b.isFunction(this.parent)||b.isProgram(this.block))return void this.updateScopeInfo();if(this.hasLetReferences)return t?this.wrapClosure():this.remap(),this.updateScopeInfo(t),this.loopLabel&&!b.isLabeledStatement(this.loopParent)?b.labeledStatement(this.loopLabel,this.loop):void 0}},e.prototype.updateScopeInfo=function(e){var t=this.scope,r=t.getFunctionParent(),n=this.letReferences;for(var i in n){var s=n[i],a=t.getBinding(s.name);a&&("let"!==a.kind&&"const"!==a.kind||(a.kind="var",e?t.removeBinding(s.name):t.moveBindingTo(s.name,r)))}},e.prototype.remap=function(){var e=this.letReferences,t=this.scope;for(var r in e){var n=e[r];(t.parentHasBinding(r)||t.hasGlobal(r))&&(t.hasOwnBinding(r)&&t.rename(n.name),this.blockPath.scope.hasOwnBinding(r)&&this.blockPath.scope.rename(n.name))}},e.prototype.wrapClosure=function(){if(this.file.opts.throwIfClosureRequired)throw this.blockPath.buildCodeFrameError("Compiling let/const in this block would add a closure (throwIfClosureRequired).");var e=this.block,t=this.outsideLetReferences;if(this.loop)for(var r in t){var n=t[r];(this.scope.hasGlobal(n.name)||this.scope.parentHasBinding(n.name))&&(delete t[n.name],delete this.letReferences[n.name],this.scope.rename(n.name),this.letReferences[n.name]=n,t[n.name]=n)}this.has=this.checkLoop(),this.hoistVarDeclarations();var i=(0,x.default)(t),s=(0,x.default)(t),a=this.blockPath.isSwitchStatement(),o=b.functionExpression(null,i,b.blockStatement(a?[e]:e.body));o.shadow=!0,this.addContinuations(o);var u=o;this.loop&&(u=this.scope.generateUidIdentifier("loop"),this.loopPath.insertBefore(b.variableDeclaration("var",[b.variableDeclarator(u,o)])));var l=b.callExpression(u,s),c=this.scope.generateUidIdentifier("ret");y.default.hasType(o.body,this.scope,"YieldExpression",b.FUNCTION_TYPES)&&(o.generator=!0,l=b.yieldExpression(l,!0)),y.default.hasType(o.body,this.scope,"AwaitExpression",b.FUNCTION_TYPES)&&(o.async=!0,l=b.awaitExpression(l)),this.buildClosure(c,l),a?this.blockPath.replaceWithMultiple(this.body):e.body=this.body},e.prototype.buildClosure=function(e,t){var r=this.has;r.hasReturn||r.hasBreakContinue?this.buildHas(e,t):this.body.push(b.expressionStatement(t))},e.prototype.addContinuations=function(e){var t={reassignments:{},outsideReferences:this.outsideLetReferences};this.scope.traverse(e,T,t);for(var r=0;r<e.params.length;r++){var n=e.params[r];if(t.reassignments[n.name]){var i=this.scope.generateUidIdentifier(n.name);e.params[r]=i,this.scope.rename(n.name,i.name,e),e.body.body.push(b.expressionStatement(b.assignmentExpression("=",n,i)))}}},e.prototype.getLetReferences=function(){var e=this,t=this.block,r=[];if(this.loop){var n=this.loop.left||this.loop.init;s(n)&&(r.push(n),(0,S.default)(this.outsideLetReferences,b.getBindingIdentifiers(n)))}var i=function n(i,o){o=o||i.node,(b.isClassDeclaration(o)||b.isFunctionDeclaration(o)||s(o))&&(s(o)&&a(i,o,t,e.scope),r=r.concat(o.declarations||o)),b.isLabeledStatement(o)&&n(i.get("body"),o.body)};if(t.body)for(var o=0;o<t.body.length;o++){var u=this.blockPath.get("body")[o];i(u)}if(t.cases)for(var l=0;l<t.cases.length;l++)for(var c=t.cases[l].consequent,f=0;f<c.length;f++){var p=this.blockPath.get("cases")[l],d=c[f];i(p,d)}for(var h=0;h<r.length;h++){var m=r[h],y=b.getBindingIdentifiers(m,!1,!0);(0,S.default)(this.letReferences,y),this.hasLetReferences=!0}if(this.hasLetReferences){var v={letReferences:this.letReferences,closurify:!1,file:this.file,loopDepth:0},g=this.blockPath.find(function(e){return e.isLoop()||e.isFunction()});return g&&g.isLoop()&&v.loopDepth++,this.blockPath.traverse(w,v),v.closurify}},e.prototype.checkLoop=function(){var e={hasBreakContinue:!1,ignoreLabeless:!1,inSwitchCase:!1,innerLabels:[],hasReturn:!1,isLoop:!!this.loop,map:{},LOOP_IGNORE:(0,c.default)()};return this.blockPath.traverse(F,e),this.blockPath.traverse(O,e),e},e.prototype.hoistVarDeclarations=function(){this.blockPath.traverse(k,this)},e.prototype.pushDeclar=function(e){var t=[],r=b.getBindingIdentifiers(e);for(var n in r)t.push(b.variableDeclarator(r[n]));this.body.push(b.variableDeclaration(e.kind,t));for(var i=[],s=0;s<e.declarations.length;s++){var a=e.declarations[s];if(a.init){var o=b.assignmentExpression("=",a.id,a.init);i.push(b.inherits(o,a))}}return i},e.prototype.buildHas=function(e,t){var r=this.body;r.push(b.variableDeclaration("var",[b.variableDeclarator(e,t)]));var n=void 0,i=this.has,s=[];if(i.hasReturn&&(n=C({RETURN:e})),i.hasBreakContinue){for(var a in i.map)s.push(b.switchCase(b.stringLiteral(a),[i.map[a]]));if(i.hasReturn&&s.push(b.switchCase(null,[n])),1===s.length){var o=s[0];r.push(b.ifStatement(b.binaryExpression("===",e,o.test),o.consequent[0]))}else{if(this.loop)for(var u=0;u<s.length;u++){var l=s[u].consequent[0];b.isBreakStatement(l)&&!l.label&&(l.label=this.loopLabel=this.loopLabel||this.scope.generateUidIdentifier("loop"))}r.push(b.switchStatement(e,s))}}else i.hasReturn&&r.push(n)},e}();e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(10),s=n(i);t.default=function(e){var t=e.types,r=(0,s.default)();return{visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var r=e.node,n=r.declaration.id||e.scope.generateUidIdentifier("class");r.declaration.id=n,e.replaceWith(r.declaration),e.insertAfter(t.exportDefaultDeclaration(n))}},ClassDeclaration:function(e){var r=e.node,n=r.id||e.scope.generateUidIdentifier("class");e.replaceWith(t.variableDeclaration("let",[t.variableDeclarator(n,t.toExpression(r))]))},ClassExpression:function(e,t){var n=e.node;if(!n[r]){var i=(0,f.default)(e);if(i&&i!==n)return e.replaceWith(i);n[r]=!0;var s=l.default;t.opts.loose&&(s=o.default),e.replaceWith(new s(e,t.file).run())}}}}};var a=r(331),o=n(a),u=r(207),l=n(u),c=r(40),f=n(c);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){return o.isObjectProperty(e)?e.value:o.isObjectMethod(e)?o.functionExpression(null,e.params,e.body,e.generator,e.async):void 0}function r(e,r,i){"get"===r.kind&&"set"===r.kind?n(e,r,i):i.push(o.expressionStatement(o.assignmentExpression("=",o.memberExpression(e,r.key,r.computed||o.isLiteral(r.key)),t(r))))}function n(e,r){var n=(e.objId,e.body),i=e.getMutatorId,s=e.scope,a=!r.computed&&o.isIdentifier(r.key)?o.stringLiteral(r.key.name):r.key,u=s.maybeGenerateMemoised(a);u&&(n.push(o.expressionStatement(o.assignmentExpression("=",u,a))),a=u),n.push.apply(n,l({MUTATOR_MAP_REF:i(),KEY:a,VALUE:t(r),KIND:o.identifier(r.kind)}))}function s(e){for(var t=e.computedProps,s=Array.isArray(t),a=0,t=s?t:(0,i.default)(t);;){var o;if(s){if(a>=t.length)break;o=t[a++]}else{if(a=t.next(),a.done)break;o=a.value}var u=o;"get"===u.kind||"set"===u.kind?n(e,u):r(e.objId,u,e.body)}}function a(e){for(var s=e.objId,a=e.body,u=e.computedProps,l=e.state,c=u,f=Array.isArray(c),p=0,c=f?c:(0,i.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d,m=o.toComputedKey(h);if("get"===h.kind||"set"===h.kind)n(e,h);else if(o.isStringLiteral(m,{value:"__proto__"}))r(s,h,a);else{if(1===u.length)return o.callExpression(l.addHelper("defineProperty"),[e.initPropExpression,m,t(h)]);a.push(o.expressionStatement(o.callExpression(l.addHelper("defineProperty"),[s,m,t(h)])))}}}var o=e.types,u=e.template,l=u("\n    MUTATOR_MAP_REF[KEY] = MUTATOR_MAP_REF[KEY] || {};\n    MUTATOR_MAP_REF[KEY].KIND = VALUE;\n  ");return{visitor:{ObjectExpression:{exit:function(e,t){for(var r=e.node,n=e.parent,u=e.scope,l=!1,c=r.properties,f=Array.isArray(c),p=0,c=f?c:(0,i.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}if(l=!0===d.computed)break}if(l){for(var h=[],m=[],y=!1,v=r.properties,g=Array.isArray(v),b=0,v=g?v:(0,i.default)(v);;){var E;if(g){if(b>=v.length)break;E=v[b++]}else{if(b=v.next(),b.done)break;E=b.value}var x=E;x.computed&&(y=!0),y?m.push(x):h.push(x)}var A=u.generateUidIdentifierBasedOnNode(n),S=o.objectExpression(h),_=[];_.push(o.variableDeclaration("var",[o.variableDeclarator(A,S)]));var D=a;t.opts.loose&&(D=s);var C=void 0,w=function(){return C||(C=u.generateUidIdentifier("mutatorMap"),_.push(o.variableDeclaration("var",[o.variableDeclarator(C,o.objectExpression([]))]))),C},P=D({scope:u,objId:A,body:_,computedProps:m,initPropExpression:S,getMutatorId:w,state:t});C&&_.push(o.expressionStatement(o.callExpression(t.addHelper("defineEnumerableProperties"),[A,C]))),P?e.replaceWith(P):(_.push(o.expressionStatement(A)),e.replaceWithMultiple(_))}}}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(2),o=n(a);t.default=function(e){function t(e){for(var t=e.declarations,r=Array.isArray(t),i=0,t=r?t:(0,o.default)(t);;){var s;if(r){if(i>=t.length)break;s=t[i++]}else{if(i=t.next(),i.done)break;s=i.value}var a=s;if(n.isPattern(a.id))return!0}return!1}function r(e){for(var t=e.elements,r=Array.isArray(t),i=0,t=r?t:(0,o.default)(t);;){var s;if(r){if(i>=t.length)break;s=t[i++]}else{if(i=t.next(),i.done)break;s=i.value}var a=s;if(n.isRestElement(a))return!0}return!1}var n=e.types,i={ReferencedIdentifier:function(e,t){t.bindings[e.node.name]&&(t.deopt=!0,e.stop())}},a=function(){function e(t){(0,s.default)(this,e),this.blockHoist=t.blockHoist,this.operator=t.operator,this.arrays={},this.nodes=t.nodes||[],this.scope=t.scope,this.file=t.file,this.kind=t.kind}
return e.prototype.buildVariableAssignment=function(e,t){var r=this.operator;n.isMemberExpression(e)&&(r="=");var i=void 0;return i=r?n.expressionStatement(n.assignmentExpression(r,e,t)):n.variableDeclaration(this.kind,[n.variableDeclarator(e,t)]),i._blockHoist=this.blockHoist,i},e.prototype.buildVariableDeclaration=function(e,t){var r=n.variableDeclaration("var",[n.variableDeclarator(e,t)]);return r._blockHoist=this.blockHoist,r},e.prototype.push=function(e,t){n.isObjectPattern(e)?this.pushObjectPattern(e,t):n.isArrayPattern(e)?this.pushArrayPattern(e,t):n.isAssignmentPattern(e)?this.pushAssignmentPattern(e,t):this.nodes.push(this.buildVariableAssignment(e,t))},e.prototype.toArray=function(e,t){return this.file.opts.loose||n.isIdentifier(e)&&this.arrays[e.name]?e:this.scope.toArray(e,t)},e.prototype.pushAssignmentPattern=function(e,t){var r=this.scope.generateUidIdentifierBasedOnNode(t),i=n.variableDeclaration("var",[n.variableDeclarator(r,t)]);i._blockHoist=this.blockHoist,this.nodes.push(i);var s=n.conditionalExpression(n.binaryExpression("===",r,n.identifier("undefined")),e.right,r),a=e.left;if(n.isPattern(a)){var o=n.expressionStatement(n.assignmentExpression("=",r,s));o._blockHoist=this.blockHoist,this.nodes.push(o),this.push(a,r)}else this.nodes.push(this.buildVariableAssignment(a,s))},e.prototype.pushObjectRest=function(e,t,r,i){for(var s=[],a=0;a<e.properties.length;a++){var o=e.properties[a];if(a>=i)break;if(!n.isRestProperty(o)){var u=o.key;n.isIdentifier(u)&&!o.computed&&(u=n.stringLiteral(o.key.name)),s.push(u)}}s=n.arrayExpression(s);var l=n.callExpression(this.file.addHelper("objectWithoutProperties"),[t,s]);this.nodes.push(this.buildVariableAssignment(r.argument,l))},e.prototype.pushObjectProperty=function(e,t){n.isLiteral(e.key)&&(e.computed=!0);var r=e.value,i=n.memberExpression(t,e.key,e.computed);n.isPattern(r)?this.push(r,i):this.nodes.push(this.buildVariableAssignment(r,i))},e.prototype.pushObjectPattern=function(e,t){if(e.properties.length||this.nodes.push(n.expressionStatement(n.callExpression(this.file.addHelper("objectDestructuringEmpty"),[t]))),e.properties.length>1&&!this.scope.isStatic(t)){var r=this.scope.generateUidIdentifierBasedOnNode(t);this.nodes.push(this.buildVariableDeclaration(r,t)),t=r}for(var i=0;i<e.properties.length;i++){var s=e.properties[i];n.isRestProperty(s)?this.pushObjectRest(e,t,s,i):this.pushObjectProperty(s,t)}},e.prototype.canUnpackArrayPattern=function(e,t){if(!n.isArrayExpression(t))return!1;if(!(e.elements.length>t.elements.length)){if(e.elements.length<t.elements.length&&!r(e))return!1;for(var s=e.elements,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var l;if(a){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l;if(!c)return!1;if(n.isMemberExpression(c))return!1}for(var f=t.elements,p=Array.isArray(f),d=0,f=p?f:(0,o.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h;if(n.isSpreadElement(m))return!1;if(n.isCallExpression(m))return!1;if(n.isMemberExpression(m))return!1}var y=n.getBindingIdentifiers(e),v={deopt:!1,bindings:y};return this.scope.traverse(t,i,v),!v.deopt}},e.prototype.pushUnpackedArrayPattern=function(e,t){for(var r=0;r<e.elements.length;r++){var i=e.elements[r];n.isRestElement(i)?this.push(i.argument,n.arrayExpression(t.elements.slice(r))):this.push(i,t.elements[r])}},e.prototype.pushArrayPattern=function(e,t){if(e.elements){if(this.canUnpackArrayPattern(e,t))return this.pushUnpackedArrayPattern(e,t);var i=!r(e)&&e.elements.length,s=this.toArray(t,i);n.isIdentifier(s)?t=s:(t=this.scope.generateUidIdentifierBasedOnNode(t),this.arrays[t.name]=!0,this.nodes.push(this.buildVariableDeclaration(t,s)));for(var a=0;a<e.elements.length;a++){var o=e.elements[a];if(o){var u=void 0;n.isRestElement(o)?(u=this.toArray(t),u=n.callExpression(n.memberExpression(u,n.identifier("slice")),[n.numericLiteral(a)]),o=o.argument):u=n.memberExpression(t,n.numericLiteral(a),!0),this.push(o,u)}}}},e.prototype.init=function(e,t){if(!n.isArrayExpression(t)&&!n.isMemberExpression(t)){var r=this.scope.maybeGenerateMemoised(t,!0);r&&(this.nodes.push(this.buildVariableDeclaration(r,t)),t=r)}return this.push(e,t),this.nodes},e}();return{visitor:{ExportNamedDeclaration:function(e){var r=e.get("declaration");if(r.isVariableDeclaration()&&t(r.node)){var i=[];for(var s in e.getOuterBindingIdentifiers(e)){var a=n.identifier(s);i.push(n.exportSpecifier(a,a))}e.replaceWith(r.node),e.insertAfter(n.exportNamedDeclaration(null,i))}},ForXStatement:function(e,t){var r=e.node,i=e.scope,s=r.left;if(n.isPattern(s)){var o=i.generateUidIdentifier("ref");return r.left=n.variableDeclaration("var",[n.variableDeclarator(o)]),e.ensureBlock(),void r.body.body.unshift(n.variableDeclaration("var",[n.variableDeclarator(s,o)]))}if(n.isVariableDeclaration(s)){var u=s.declarations[0].id;if(n.isPattern(u)){var l=i.generateUidIdentifier("ref");r.left=n.variableDeclaration(s.kind,[n.variableDeclarator(l,null)]);var c=[];new a({kind:s.kind,file:t,scope:i,nodes:c}).init(u,l),e.ensureBlock();var f=r.body;f.body=c.concat(f.body)}}},CatchClause:function(e,t){var r=e.node,i=e.scope,s=r.param;if(n.isPattern(s)){var o=i.generateUidIdentifier("ref");r.param=o;var u=[];new a({kind:"let",file:t,scope:i,nodes:u}).init(s,o),r.body.body=u.concat(r.body.body)}},AssignmentExpression:function(e,t){var r=e.node,i=e.scope;if(n.isPattern(r.left)){var s=[],o=new a({operator:r.operator,file:t,scope:i,nodes:s}),u=void 0;!e.isCompletionRecord()&&e.parentPath.isExpressionStatement()||(u=i.generateUidIdentifierBasedOnNode(r.right,"ref"),s.push(n.variableDeclaration("var",[n.variableDeclarator(u,r.right)])),n.isArrayExpression(r.right)&&(o.arrays[u.name]=!0)),o.init(r.left,u||r.right),u&&s.push(n.expressionStatement(u)),e.replaceWithMultiple(s)}},VariableDeclaration:function(e,r){var i=e.node,s=e.scope,u=e.parent;if(!n.isForXStatement(u)&&u&&e.container&&t(i)){for(var l=[],c=void 0,f=0;f<i.declarations.length;f++){c=i.declarations[f];var p=c.init,d=c.id,h=new a({blockHoist:i._blockHoist,nodes:l,scope:s,kind:i.kind,file:r});n.isPattern(d)?(h.init(d,p),+f!=i.declarations.length-1&&n.inherits(l[l.length-1],c)):l.push(n.inherits(h.buildVariableAssignment(c.id,c.init),c))}for(var m=[],y=l,v=Array.isArray(y),g=0,y=v?y:(0,o.default)(y);;){var b;if(v){if(g>=y.length)break;b=y[g++]}else{if(g=y.next(),g.done)break;b=g.value}var E=b,x=m[m.length-1];if(x&&n.isVariableDeclaration(x)&&n.isVariableDeclaration(E)&&x.kind===E.kind){var A;(A=x.declarations).push.apply(A,E.declarations)}else m.push(E)}for(var S=m,_=Array.isArray(S),D=0,S=_?S:(0,o.default)(S);;){var C;if(_){if(D>=S.length)break;C=S[D++]}else{if(D=S.next(),D.done)break;C=D.value}var w=C;if(w.declarations)for(var P=w.declarations,k=Array.isArray(P),F=0,P=k?P:(0,o.default)(P);;){var T;if(k){if(F>=P.length)break;T=P[F++]}else{if(F=P.next(),F.done)break;T=F.value}var O=T,B=O.id.name;s.bindings[B]&&(s.bindings[B].kind=w.kind)}}1===m.length?e.replaceWith(m[0]):e.replaceWithMultiple(m)}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){function t(e){var t=e.node,r=e.scope,n=[],i=t.right;if(!a.isIdentifier(i)||!r.hasBinding(i.name)){var s=r.generateUidIdentifier("arr");n.push(a.variableDeclaration("var",[a.variableDeclarator(s,i)])),i=s}var u=r.generateUidIdentifier("i"),l=o({BODY:t.body,KEY:u,ARR:i});a.inherits(l,t),a.ensureBlock(l);var c=a.memberExpression(i,u,!0),f=t.left;return a.isVariableDeclaration(f)?(f.declarations[0].init=c,l.body.body.unshift(f)):l.body.body.unshift(a.expressionStatement(a.assignmentExpression("=",f,c))),e.parentPath.isLabeledStatement()&&(l=a.labeledStatement(e.parentPath.node.label,l)),n.push(l),n}function r(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,l=void 0,c=void 0;if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))c=o;else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));c=n.generateUidIdentifier("ref"),l=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,c)])}var f=n.generateUidIdentifier("iterator"),p=n.generateUidIdentifier("isArray"),d=u({LOOP_OBJECT:f,IS_ARRAY:p,OBJECT:r.right,INDEX:n.generateUidIdentifier("i"),ID:c});l||d.body.body.shift();var h=a.isLabeledStatement(s),m=void 0;return h&&(m=a.labeledStatement(s.label,d)),{replaceParent:h,declar:l,node:m||d,loop:d}}function n(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,u=void 0,c=n.generateUidIdentifier("step"),f=a.memberExpression(c,a.identifier("value"));if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))u=a.expressionStatement(a.assignmentExpression("=",o,f));else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));u=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,f)])}var p=n.generateUidIdentifier("iterator"),d=l({ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:p,STEP_KEY:c,OBJECT:r.right,BODY:null}),h=a.isLabeledStatement(s),m=d[3].block.body,y=m[0];return h&&(m[0]=a.labeledStatement(s.label,y)),{replaceParent:h,declar:u,loop:y,node:d}}var i=e.messages,s=e.template,a=e.types,o=s("\n    for (var KEY = 0; KEY < ARR.length; KEY++) BODY;\n  "),u=s("\n    for (var LOOP_OBJECT = OBJECT,\n             IS_ARRAY = Array.isArray(LOOP_OBJECT),\n             INDEX = 0,\n             LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n      var ID;\n      if (IS_ARRAY) {\n        if (INDEX >= LOOP_OBJECT.length) break;\n        ID = LOOP_OBJECT[INDEX++];\n      } else {\n        INDEX = LOOP_OBJECT.next();\n        if (INDEX.done) break;\n        ID = INDEX.value;\n      }\n    }\n  "),l=s("\n    var ITERATOR_COMPLETION = true;\n    var ITERATOR_HAD_ERROR_KEY = false;\n    var ITERATOR_ERROR_KEY = undefined;\n    try {\n      for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) {\n      }\n    } catch (err) {\n      ITERATOR_HAD_ERROR_KEY = true;\n      ITERATOR_ERROR_KEY = err;\n    } finally {\n      try {\n        if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n          ITERATOR_KEY.return();\n        }\n      } finally {\n        if (ITERATOR_HAD_ERROR_KEY) {\n          throw ITERATOR_ERROR_KEY;\n        }\n      }\n    }\n  ");return{visitor:{ForOfStatement:function(e,i){if(e.get("right").isArrayExpression())return e.parentPath.isLabeledStatement()?e.parentPath.replaceWithMultiple(t(e)):e.replaceWithMultiple(t(e));var s=n;i.opts.loose&&(s=r);var o=e.node,u=s(e,i),l=u.declar,c=u.loop,f=c.body;e.ensureBlock(),l&&f.body.push(l),f.body=f.body.concat(o.body.body),a.inherits(c,o),a.inherits(c.body,o.body),u.replaceParent?(e.parentPath.replaceWithMultiple(u.node),e.remove()):e.replaceWithMultiple(u.node)}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{FunctionExpression:{exit:function(e){if("value"!==e.key&&!e.parentPath.isObjectProperty()){var t=(0,i.default)(e);t&&e.replaceWith(t)}}},ObjectProperty:function(e){var t=e.get("value");if(t.isFunction()){var r=(0,i.default)(t);r&&t.replaceWith(r)}}}}};var n=r(40),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{NumericLiteral:function(e){var t=e.node;t.extra&&/^0[ob]/i.test(t.extra.raw)&&(t.extra=void 0)},StringLiteral:function(e){var t=e.node;t.extra&&/\\[u]/gi.test(t.extra.raw)&&(t.extra=void 0)}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(14),s=n(i),a=r(9),o=n(a),u=r(2),l=n(u),c=r(10),f=n(c);t.default=function(){var e=(0,f.default)(),t={ReferencedIdentifier:function(e){var t=e.node.name,r=this.remaps[t];if(r&&this.scope.getBinding(t)===e.scope.getBinding(t)){if(e.parentPath.isCallExpression({callee:e.node}))e.replaceWith(g.sequenceExpression([g.numericLiteral(0),r]));else if(e.isJSXIdentifier()&&g.isMemberExpression(r)){var n=r.object,i=r.property;e.replaceWith(g.JSXMemberExpression(g.JSXIdentifier(n.name),g.JSXIdentifier(i.name)))}else e.replaceWith(r);this.requeueInParent(e)}},AssignmentExpression:function(t){var r=t.node;if(!r[e]){var n=t.get("left");if(n.isIdentifier()){var i=n.node.name,s=this.exports[i];if(!s)return;if(this.scope.getBinding(i)!==t.scope.getBinding(i))return;r[e]=!0;for(var a=s,o=Array.isArray(a),u=0,a=o?a:(0,l.default)(a);;){var c;if(o){if(u>=a.length)break;c=a[u++]}else{if(u=a.next(),u.done)break;c=u.value}r=S(c,r).expression}t.replaceWith(r),this.requeueInParent(t)}else if(n.isObjectPattern())for(var f=n.node.properties,p=Array.isArray(f),d=0,f=p?f:(0,l.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h,y=m.value.name,v=this.exports[y];if(v){if(this.scope.getBinding(y)!==t.scope.getBinding(y))return;r[e]=!0,t.insertAfter(S(g.identifier(y),g.identifier(y)))}}else if(n.isArrayPattern())for(var b=n.node.elements,E=Array.isArray(b),x=0,b=E?b:(0,l.default)(b);;){var A;if(E){if(x>=b.length)break;A=b[x++]}else{if(x=b.next(),x.done)break;A=x.value}var _=A;if(_){var D=_.name,C=this.exports[D];if(C){if(this.scope.getBinding(D)!==t.scope.getBinding(D))return;r[e]=!0,t.insertAfter(S(g.identifier(D),g.identifier(D)))}}}}},UpdateExpression:function(e){var t=e.get("argument");if(t.isIdentifier()){var r=t.node.name;if(this.exports[r]&&this.scope.getBinding(r)===e.scope.getBinding(r)){var n=g.assignmentExpression(e.node.operator[0]+"=",t.node,g.numericLiteral(1));if(e.parentPath.isExpressionStatement()&&!e.isCompletionRecord()||e.node.prefix)return e.replaceWith(n),void this.requeueInParent(e);var i=[];i.push(n);var s=void 0;s="--"===e.node.operator?"+":"-",i.push(g.binaryExpression(s,t.node,g.numericLiteral(1))),e.replaceWithMultiple(g.sequenceExpression(i))}}}};return{inherits:y.default,visitor:{ThisExpression:function(e,t){this.ranCommonJS||!0===t.opts.allowTopLevelThis||e.findParent(function(e){return!e.is("shadow")&&D.indexOf(e.type)>=0})||e.replaceWith(g.identifier("undefined"))},Program:{exit:function(e){function r(t,r){var n=C[t];if(n)return n;var i=e.scope.generateUidIdentifier((0,p.basename)(t,(0,p.extname)(t))),s=g.variableDeclaration("var",[g.variableDeclarator(i,b(g.stringLiteral(t)).expression)]);return h[t]&&(s.loc=h[t].loc),"number"==typeof r&&r>0&&(s._blockHoist=r),v.push(s),C[t]=i}function n(e,t,r){var n=e[t]||[];e[t]=n.concat(r)}this.ranCommonJS=!0;var i=!!this.opts.strict,a=!!this.opts.noInterop,u=e.scope;u.rename("module"),u.rename("exports"),u.rename("require");for(var c=!1,f=!1,d=e.get("body"),h=(0,o.default)(null),m=(0,o.default)(null),y=(0,o.default)(null),v=[],D=(0,o.default)(null),C=(0,o.default)(null),w=d,P=Array.isArray(w),k=0,w=P?w:(0,l.default)(w);;){var F;if(P){if(k>=w.length)break;F=w[k++]}else{if(k=w.next(),k.done)break;F=k.value}var T=F;if(T.isExportDeclaration()){c=!0;for(var O=[].concat(T.get("declaration"),T.get("specifiers")),B=O,R=Array.isArray(B),I=0,B=R?B:(0,l.default)(B);;){var M;if(R){if(I>=B.length)break;M=B[I++]}else{if(I=B.next(),I.done)break;M=I.value}var N=M;if(N.getBindingIdentifiers().__esModule)throw N.buildCodeFrameError('Illegal export "__esModule"')}}if(T.isImportDeclaration()){var L;f=!0;var j=T.node.source.value,U=h[j]||{specifiers:[],maxBlockHoist:0,loc:T.node.loc};(L=U.specifiers).push.apply(L,T.node.specifiers),"number"==typeof T.node._blockHoist&&(U.maxBlockHoist=Math.max(T.node._blockHoist,U.maxBlockHoist)),h[j]=U,T.remove()}else if(T.isExportDefaultDeclaration()){var V=T.get("declaration");if(V.isFunctionDeclaration()){var G=V.node.id,W=g.identifier("default");G?(n(m,G.name,W),v.push(S(W,G)),T.replaceWith(V.node)):(v.push(S(W,g.toExpression(V.node))),T.remove())}else if(V.isClassDeclaration()){var Y=V.node.id,q=g.identifier("default");Y?(n(m,Y.name,q),T.replaceWithMultiple([V.node,S(q,Y)])):(T.replaceWith(S(q,g.toExpression(V.node))),T.parentPath.requeue(T.get("expression.left")))}else T.replaceWith(S(g.identifier("default"),V.node)),T.parentPath.requeue(T.get("expression.left"))}else if(T.isExportNamedDeclaration()){var K=T.get("declaration");if(K.node){if(K.isFunctionDeclaration()){var H=K.node.id;n(m,H.name,H),v.push(S(H,H)),T.replaceWith(K.node)}else if(K.isClassDeclaration()){var J=K.node.id;n(m,J.name,J),T.replaceWithMultiple([K.node,S(J,J)]),y[J.name]=!0}else if(K.isVariableDeclaration()){for(var X=K.get("declarations"),z=X,$=Array.isArray(z),Q=0,z=$?z:(0,l.default)(z);;){var Z;if($){if(Q>=z.length)break;Z=z[Q++]}else{if(Q=z.next(),Q.done)break;Z=Q.value}var ee=Z,te=ee.get("id"),re=ee.get("init"),ne=[];if(re.node||re.replaceWith(g.identifier("undefined")),te.isIdentifier())n(m,te.node.name,te.node),re.replaceWith(S(te.node,re.node).expression),y[te.node.name]=!0;else if(te.isObjectPattern())for(var ie=0;ie<te.node.properties.length;ie++){var se=te.node.properties[ie],ae=se.value;g.isAssignmentPattern(ae)?ae=ae.left:g.isRestProperty(se)&&(ae=se.argument),n(m,ae.name,ae),ne.push(S(ae,ae)),y[ae.name]=!0}else if(te.isArrayPattern()&&te.node.elements)for(var oe=0;oe<te.node.elements.length;oe++){var ue=te.node.elements[oe];if(ue){g.isAssignmentPattern(ue)?ue=ue.left:g.isRestElement(ue)&&(ue=ue.argument);var le=ue.name;n(m,le,ue),ne.push(S(ue,ue)),y[le]=!0}}T.insertAfter(ne)}T.replaceWith(K.node)}continue}var ce=T.get("specifiers"),fe=[],pe=T.node.source;if(pe)for(var de=r(pe.value,T.node._blockHoist),he=ce,me=Array.isArray(he),ye=0,he=me?he:(0,l.default)(he);;){var ve;if(me){if(ye>=he.length)break;ve=he[ye++]}else{if(ye=he.next(),ye.done)break;ve=ye.value}var ge=ve;ge.isExportNamespaceSpecifier()||ge.isExportDefaultSpecifier()||ge.isExportSpecifier()&&(a||"default"!==ge.node.local.name?v.push(x(g.stringLiteral(ge.node.exported.name),g.memberExpression(de,ge.node.local))):v.push(x(g.stringLiteral(ge.node.exported.name),g.memberExpression(g.callExpression(this.addHelper("interopRequireDefault"),[de]),ge.node.local))),y[ge.node.exported.name]=!0)}else for(var be=ce,Ee=Array.isArray(be),xe=0,be=Ee?be:(0,l.default)(be);;){var Ae;if(Ee){if(xe>=be.length)break;Ae=be[xe++]}else{if(xe=be.next(),xe.done)break;Ae=xe.value}var Se=Ae;Se.isExportSpecifier()&&(n(m,Se.node.local.name,Se.node.exported),y[Se.node.exported.name]=!0,fe.push(S(Se.node.exported,Se.node.local)))}T.replaceWithMultiple(fe)}else if(T.isExportAllDeclaration()){var _e=_({OBJECT:r(T.node.source.value,T.node._blockHoist)});_e.loc=T.node.loc,v.push(_e),T.remove()}}for(var De in h){var Ce=h[De],O=Ce.specifiers,we=Ce.maxBlockHoist;if(O.length){for(var Pe=r(De,we),ke=void 0,Fe=0;Fe<O.length;Fe++){var Te=O[Fe];if(g.isImportNamespaceSpecifier(Te)){if(i||a)D[Te.local.name]=Pe;else{var Oe=g.variableDeclaration("var",[g.variableDeclarator(Te.local,g.callExpression(this.addHelper("interopRequireWildcard"),[Pe]))]);we>0&&(Oe._blockHoist=we),v.push(Oe)}ke=Te.local}else g.isImportDefaultSpecifier(Te)&&(O[Fe]=g.importSpecifier(Te.local,g.identifier("default")))}for(var Be=O,Re=Array.isArray(Be),Ie=0,Be=Re?Be:(0,l.default)(Be);;){var Me;if(Re){if(Ie>=Be.length)break;Me=Be[Ie++]}else{if(Ie=Be.next(),Ie.done)break;Me=Ie.value}var Ne=Me;if(g.isImportSpecifier(Ne)){var Le=Pe;if("default"===Ne.imported.name)if(ke)Le=ke;else if(!a){Le=ke=e.scope.generateUidIdentifier(Pe.name);var je=g.variableDeclaration("var",[g.variableDeclarator(Le,g.callExpression(this.addHelper("interopRequireDefault"),[Pe]))]);we>0&&(je._blockHoist=we),v.push(je)}D[Ne.local.name]=g.memberExpression(Le,g.cloneWithoutLoc(Ne.imported))}}}else{var Ue=b(g.stringLiteral(De));Ue.loc=h[De].loc,v.push(Ue)}}if(f&&(0,s.default)(y).length)for(var Ve=(0,s.default)(y),Ge=0;Ge<Ve.length;Ge+=100)!function(e){var t=Ve.slice(e,e+100),r=g.identifier("undefined");t.forEach(function(e){r=S(g.identifier(e),r).expression});var n=g.expressionStatement(r);n._blockHoist=3,v.unshift(n)}(Ge);if(c&&!i){var We=E;this.opts.loose&&(We=A);var Ye=We();Ye._blockHoist=3,v.unshift(Ye)}e.unshiftContainer("body",v),e.traverse(t,{remaps:D,scope:u,exports:m,requeueInParent:function(t){return e.requeue(t)}})}}}}};var p=r(19),d=r(4),h=n(d),m=r(216),y=n(m),v=r(1),g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(v),b=(0,h.default)("\n  require($0);\n"),E=(0,h.default)('\n  Object.defineProperty(exports, "__esModule", {\n    value: true\n  });\n'),x=(0,h.default)("\n  Object.defineProperty(exports, $0, {\n    enumerable: true,\n    get: function () {\n      return $1;\n    }\n  });\n"),A=(0,h.default)("\n  exports.__esModule = true;\n"),S=(0,h.default)("\n  exports.$0 = $1;\n"),_=(0,h.default)('\n  Object.keys(OBJECT).forEach(function (key) {\n    if (key === "default" || key === "__esModule") return;\n    Object.defineProperty(exports, key, {\n      enumerable: true,\n      get: function () {\n        return OBJECT[key];\n      }\n    });\n  });\n'),D=["FunctionExpression","FunctionDeclaration","ClassProperty","ClassMethod","ObjectMethod"];e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(10),o=n(a);t.default=function(e){function t(e,t,r,n,i){new l.default({getObjectRef:n,methodNode:t,methodPath:e,isStatic:!0,scope:r,file:i}).replace()}var r=e.types,n=(0,o.default)();return{visitor:{Super:function(e){var t=e.findParent(function(e){return e.isObjectExpression()});t&&(t.node[n]=!0)},ObjectExpression:{exit:function(e,i){if(e.node[n]){for(var a=void 0,o=function(){return a=a||e.scope.generateUidIdentifier("obj")},u=e.get("properties"),l=u,c=Array.isArray(l),f=0,l=c?l:(0,s.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;d.isObjectProperty()&&(d=d.get("value")),t(d,d.node,e.scope,o,i)}a&&(e.scope.push({id:a}),e.replaceWith(r.assignmentExpression("=",a,e.node)))}}}}}};var u=r(193),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}t.__esModule=!0;var i=r(2),s=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default=function(){return{visitor:a.visitors.merge([{ArrowFunctionExpression:function(e){for(var t=e.get("params"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}var o=a;if(o.isRestElement()||o.isAssignmentPattern()){e.arrowFunctionToShadowed();break}}}},u.visitor,p.visitor,c.visitor])}};var a=r(7),o=r(334),u=n(o),l=r(333),c=n(l),f=r(335),p=n(f);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{ObjectMethod:function(e){var t=e.node;if("method"===t.kind){var r=i.functionExpression(null,t.params,t.body,t.generator,t.async);r.returnType=t.returnType,e.replaceWith(i.objectProperty(t.key,r,t.computed))}},ObjectProperty:function(e){var t=e.node;t.shorthand&&(t.shorthand=!1)}}}};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e,t,r){return r.opts.loose&&!s.isIdentifier(e.argument,{name:"arguments"})?e.argument:t.toArray(e.argument,!0)}function r(e){for(var t=0;t<e.length;t++)if(s.isSpreadElement(e[t]))return!0;return!1}function n(e,r,n){function a(){u.length&&(o.push(s.arrayExpression(u)),u=[])}for(var o=[],u=[],l=e,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;s.isSpreadElement(d)?(a(),o.push(t(d,r,n))):u.push(d)}return a(),o}var s=e.types;return{visitor:{ArrayExpression:function(e,t){var i=e.node,a=e.scope,o=i.elements;if(r(o)){var u=n(o,a,t),l=u.shift();s.isArrayExpression(l)||(u.unshift(l),l=s.arrayExpression([])),e.replaceWith(s.callExpression(s.memberExpression(l,s.identifier("concat")),u))}},CallExpression:function(e,t){var i=e.node,a=e.scope,o=i.arguments;if(r(o)){var u=e.get("callee");if(!u.isSuper()){var l=s.identifier("undefined");i.arguments=[];var c=void 0;c=1===o.length&&"arguments"===o[0].argument.name?[o[0].argument]:n(o,a,t);var f=c.shift();c.length?i.arguments.push(s.callExpression(s.memberExpression(f,s.identifier("concat")),c)):i.arguments.push(f);var p=i.callee;if(u.isMemberExpression()){var d=a.maybeGenerateMemoised(p.object);d?(p.object=s.assignmentExpression("=",d,p.object),l=d):l=p.object,s.appendToMemberExpression(p,s.identifier("apply"))}else i.callee=s.memberExpression(i.callee,s.identifier("apply"));s.isSuper(l)&&(l=s.thisExpression()),i.arguments.unshift(l)}}},NewExpression:function(e,t){var i=e.node,a=e.scope,o=i.arguments;if(r(o)){var u=n(o,a,t),l=s.arrayExpression([s.nullLiteral()]);o=s.callExpression(s.memberExpression(l,s.identifier("concat")),u),e.replaceWith(s.newExpression(s.callExpression(s.memberExpression(s.memberExpression(s.memberExpression(s.identifier("Function"),s.identifier("prototype")),s.identifier("bind")),s.identifier("apply")),[i.callee,o]),[]))}}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}t.__esModule=!0,t.default=function(){return{visitor:{RegExpLiteral:function(e){var t=e.node;s.is(t,"y")&&e.replaceWith(o.newExpression(o.identifier("RegExp"),[o.stringLiteral(t.pattern),o.stringLiteral(t.flags)]))}}}};var i=r(192),s=n(i),a=r(1),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){return n.isLiteral(e)&&"string"==typeof e.value}function r(e,t){return n.binaryExpression("+",e,t)}var n=e.types;return{visitor:{TaggedTemplateExpression:function(e,t){for(var r=e.node,s=r.quasi,a=[],o=[],u=[],l=s.quasis,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;o.push(n.stringLiteral(d.value.cooked)),u.push(n.stringLiteral(d.value.raw))}o=n.arrayExpression(o),u=n.arrayExpression(u);var h="taggedTemplateLiteral";t.opts.loose&&(h+="Loose");var m=t.file.addTemplateObject(h,o,u);a.push(m),a=a.concat(s.expressions),e.replaceWith(n.callExpression(r.tag,a))},TemplateLiteral:function(e,s){for(var a=[],o=e.get("expressions"),u=e.node.quasis,l=Array.isArray(u),c=0,u=l?u:(0,i.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;a.push(n.stringLiteral(p.value.cooked));var d=o.shift();d&&(!s.opts.spec||d.isBaseType("string")||d.isBaseType("number")?a.push(d.node):a.push(n.callExpression(n.identifier("String"),[d.node])))}if(a=a.filter(function(e){return!n.isLiteral(e,{value:""})}),t(a[0])||t(a[1])||a.unshift(n.stringLiteral("")),a.length>1){for(var h=r(a.shift(),a.shift()),m=a,y=Array.isArray(m),v=0,m=y?m:(0,i.default)(m);;){var g;if(y){if(v>=m.length)break;g=m[v++]}else{if(v=m.next(),v.done)break;g=v.value}h=r(h,g)}e.replaceWith(h)}else e.replaceWith(a[0])}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(10),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types,r=(0,i.default)();return{visitor:{Scope:function(e){var t=e.scope;t.getBinding("Symbol")&&t.rename("Symbol")},UnaryExpression:function(e){var n=e.node,i=e.parent;if(!n[r]&&!e.find(function(e){return e.node&&!!e.node._generated})){if(e.parentPath.isBinaryExpression()&&t.EQUALITY_BINARY_OPERATORS.indexOf(i.operator)>=0){var s=e.getOpposite();if(s.isLiteral()&&"symbol"!==s.node.value&&"object"!==s.node.value)return}if("typeof"===n.operator){var a=t.callExpression(this.addHelper("typeof"),[n.argument]);if(e.get("argument").isIdentifier()){var o=t.stringLiteral("undefined"),u=t.unaryExpression("typeof",n.argument);u[r]=!0,e.replaceWith(t.conditionalExpression(t.binaryExpression("===",u,o),o,a))}else e.replaceWith(a)}}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{RegExpLiteral:function(e){var t=e.node;a.is(t,"u")&&(t.pattern=(0,i.default)(t.pattern,t.flags),a.pullFlag(t,"u"))}}}};var n=r(612),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(192),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";e.exports=r(606)},function(e,t,r){"use strict";e.exports={default:r(408),__esModule:!0}},function(e,t,r){"use strict";function n(){i(),s()}function i(){t.path=u=new o.default}function s(){t.scope=l=new o.default}t.__esModule=!0,t.scope=t.path=void 0;var a=r(364),o=function(e){return e&&e.__esModule?e:{default:e}}(a);t.clear=n,t.clearPath=i,t.clearScope=s;var u=t.path=new o.default,l=t.scope=new o.default},function(e,t){"use strict";function r(e){return e=e.split(" "),function(t){return e.indexOf(t)>=0}}function n(e,t){for(var r=65536,n=0;n<t.length;n+=2){if((r+=t[n])>e)return!1;if((r+=t[n+1])>=e)return!0}}function i(e){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&x.test(String.fromCharCode(e)):n(e,S)))}function s(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&A.test(String.fromCharCode(e)):n(e,S)||n(e,_))))}function a(e){var t={};for(var r in D)t[r]=e&&r in e?e[r]:D[r];return t}function o(e){return 10===e||13===e||8232===e||8233===e}function u(e,t){for(var r=1,n=0;;){N.lastIndex=n;var i=N.exec(e);if(!(i&&i.index<t))return new V(r,t-n);++r,n=i.index+i[0].length}}function l(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}function c(e,t,r,n){return e.type=t,e.end=r,e.loc.end=n,this.processComment(e),e}function f(e){return e[e.length-1]}function p(e){return e&&"Property"===e.type&&"init"===e.kind&&!1===e.method}function d(e){return"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?d(e.object)+"."+d(e.property):void 0}function h(e,t){return new J(t,e).parse()}function m(e,t){var r=new J(t,e);return r.options.strictMode&&(r.state.strict=!0),r.getExpression()}var y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var v={6:r("enum await"),strict:r("implements interface let package private protected public static yield"),strictBind:r("eval arguments")
},g=r("break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super"),b="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",E="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",x=new RegExp("["+b+"]"),A=new RegExp("["+b+E+"]");b=E=null;var S=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],_=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],D={sourceType:"script",sourceFilename:void 0,startLine:1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,plugins:[],strictMode:null},C="function"==typeof Symbol&&"symbol"===y(Symbol.iterator)?function(e){return void 0===e?"undefined":y(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":y(e)},w=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},P=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":y(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},k=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":y(t))&&"function"!=typeof t?e:t},F=!0,T=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w(this,e),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.rightAssociative=!!r.rightAssociative,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null},O=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return w(this,t),n.keyword=r,k(this,e.call(this,r,n))}return P(t,e),t}(T),B=function(e){function t(r,n){return w(this,t),k(this,e.call(this,r,{beforeExpr:F,binop:n}))}return P(t,e),t}(T),R={num:new T("num",{startsExpr:!0}),regexp:new T("regexp",{startsExpr:!0}),string:new T("string",{startsExpr:!0}),name:new T("name",{startsExpr:!0}),eof:new T("eof"),bracketL:new T("[",{beforeExpr:F,startsExpr:!0}),bracketR:new T("]"),braceL:new T("{",{beforeExpr:F,startsExpr:!0}),braceBarL:new T("{|",{beforeExpr:F,startsExpr:!0}),braceR:new T("}"),braceBarR:new T("|}"),parenL:new T("(",{beforeExpr:F,startsExpr:!0}),parenR:new T(")"),comma:new T(",",{beforeExpr:F}),semi:new T(";",{beforeExpr:F}),colon:new T(":",{beforeExpr:F}),doubleColon:new T("::",{beforeExpr:F}),dot:new T("."),question:new T("?",{beforeExpr:F}),arrow:new T("=>",{beforeExpr:F}),template:new T("template"),ellipsis:new T("...",{beforeExpr:F}),backQuote:new T("`",{startsExpr:!0}),dollarBraceL:new T("${",{beforeExpr:F,startsExpr:!0}),at:new T("@"),eq:new T("=",{beforeExpr:F,isAssign:!0}),assign:new T("_=",{beforeExpr:F,isAssign:!0}),incDec:new T("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new T("prefix",{beforeExpr:F,prefix:!0,startsExpr:!0}),logicalOR:new B("||",1),logicalAND:new B("&&",2),bitwiseOR:new B("|",3),bitwiseXOR:new B("^",4),bitwiseAND:new B("&",5),equality:new B("==/!=",6),relational:new B("</>",7),bitShift:new B("<</>>",8),plusMin:new T("+/-",{beforeExpr:F,binop:9,prefix:!0,startsExpr:!0}),modulo:new B("%",10),star:new B("*",10),slash:new B("/",10),exponent:new T("**",{beforeExpr:F,binop:11,rightAssociative:!0})},I={break:new O("break"),case:new O("case",{beforeExpr:F}),catch:new O("catch"),continue:new O("continue"),debugger:new O("debugger"),default:new O("default",{beforeExpr:F}),do:new O("do",{isLoop:!0,beforeExpr:F}),else:new O("else",{beforeExpr:F}),finally:new O("finally"),for:new O("for",{isLoop:!0}),function:new O("function",{startsExpr:!0}),if:new O("if"),return:new O("return",{beforeExpr:F}),switch:new O("switch"),throw:new O("throw",{beforeExpr:F}),try:new O("try"),var:new O("var"),let:new O("let"),const:new O("const"),while:new O("while",{isLoop:!0}),with:new O("with"),new:new O("new",{beforeExpr:F,startsExpr:!0}),this:new O("this",{startsExpr:!0}),super:new O("super",{startsExpr:!0}),class:new O("class"),extends:new O("extends",{beforeExpr:F}),export:new O("export"),import:new O("import",{startsExpr:!0}),yield:new O("yield",{beforeExpr:F,startsExpr:!0}),null:new O("null",{startsExpr:!0}),true:new O("true",{startsExpr:!0}),false:new O("false",{startsExpr:!0}),in:new O("in",{beforeExpr:F,binop:7}),instanceof:new O("instanceof",{beforeExpr:F,binop:7}),typeof:new O("typeof",{beforeExpr:F,prefix:!0,startsExpr:!0}),void:new O("void",{beforeExpr:F,prefix:!0,startsExpr:!0}),delete:new O("delete",{beforeExpr:F,prefix:!0,startsExpr:!0})};Object.keys(I).forEach(function(e){R["_"+e]=I[e]});var M=/\r\n?|\n|\u2028|\u2029/,N=new RegExp(M.source,"g"),L=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,j=function e(t,r,n,i){w(this,e),this.token=t,this.isExpr=!!r,this.preserveSpace=!!n,this.override=i},U={braceStatement:new j("{",!1),braceExpression:new j("{",!0),templateQuasi:new j("${",!0),parenStatement:new j("(",!1),parenExpression:new j("(",!0),template:new j("`",!0,!0,function(e){return e.readTmplToken()}),functionExpression:new j("function",!0)};R.parenR.updateContext=R.braceR.updateContext=function(){if(1===this.state.context.length)return void(this.state.exprAllowed=!0);var e=this.state.context.pop();e===U.braceStatement&&this.curContext()===U.functionExpression?(this.state.context.pop(),this.state.exprAllowed=!1):e===U.templateQuasi?this.state.exprAllowed=!0:this.state.exprAllowed=!e.isExpr},R.name.updateContext=function(e){this.state.exprAllowed=!1,e!==R._let&&e!==R._const&&e!==R._var||M.test(this.input.slice(this.state.end))&&(this.state.exprAllowed=!0)},R.braceL.updateContext=function(e){this.state.context.push(this.braceIsBlock(e)?U.braceStatement:U.braceExpression),this.state.exprAllowed=!0},R.dollarBraceL.updateContext=function(){this.state.context.push(U.templateQuasi),this.state.exprAllowed=!0},R.parenL.updateContext=function(e){var t=e===R._if||e===R._for||e===R._with||e===R._while;this.state.context.push(t?U.parenStatement:U.parenExpression),this.state.exprAllowed=!0},R.incDec.updateContext=function(){},R._function.updateContext=function(){this.curContext()!==U.braceStatement&&this.state.context.push(U.functionExpression),this.state.exprAllowed=!1},R.backQuote.updateContext=function(){this.curContext()===U.template?this.state.context.pop():this.state.context.push(U.template),this.state.exprAllowed=!1};var V=function e(t,r){w(this,e),this.line=t,this.column=r},G=function e(t,r){w(this,e),this.start=t,this.end=r},W=function(){function e(){w(this,e)}return e.prototype.init=function(e,t){return this.strict=!1!==e.strictMode&&"module"===e.sourceType,this.input=t,this.potentialArrowAt=-1,this.inMethod=this.inFunction=this.inGenerator=this.inAsync=this.inPropertyName=this.inType=this.inClassProperty=this.noAnonFunctionType=!1,this.labels=[],this.decorators=[],this.tokens=[],this.comments=[],this.trailingComments=[],this.leadingComments=[],this.commentStack=[],this.pos=this.lineStart=0,this.curLine=e.startLine,this.type=R.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=[U.braceStatement],this.exprAllowed=!0,this.containsEsc=this.containsOctal=!1,this.octalPosition=null,this.invalidTemplateEscapePosition=null,this.exportedIdentifiers=[],this},e.prototype.curPosition=function(){return new V(this.curLine,this.pos-this.lineStart)},e.prototype.clone=function(t){var r=new e;for(var n in this){var i=this[n];t&&"context"!==n||!Array.isArray(i)||(i=i.slice()),r[n]=i}return r},e}(),Y=function e(t){w(this,e),this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new G(t.startLoc,t.endLoc)},q=function(){function e(t,r){w(this,e),this.state=new W,this.state.init(t,r)}return e.prototype.next=function(){this.isLookahead||this.state.tokens.push(new Y(this.state)),this.state.lastTokEnd=this.state.end,this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()},e.prototype.eat=function(e){return!!this.match(e)&&(this.next(),!0)},e.prototype.match=function(e){return this.state.type===e},e.prototype.isKeyword=function(e){return g(e)},e.prototype.lookahead=function(){var e=this.state;this.state=e.clone(!0),this.isLookahead=!0,this.next(),this.isLookahead=!1;var t=this.state.clone(!0);return this.state=e,t},e.prototype.setStrict=function(e){if(this.state.strict=e,this.match(R.num)||this.match(R.string)){for(this.state.pos=this.state.start;this.state.pos<this.state.lineStart;)this.state.lineStart=this.input.lastIndexOf("\n",this.state.lineStart-2)+1,--this.state.curLine;this.nextToken()}},e.prototype.curContext=function(){return this.state.context[this.state.context.length-1]},e.prototype.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.state.containsOctal=!1,this.state.octalPosition=null,this.state.start=this.state.pos,this.state.startLoc=this.state.curPosition(),this.state.pos>=this.input.length?this.finishToken(R.eof):e.override?e.override(this):this.readToken(this.fullCharCodeAtPos())},e.prototype.readToken=function(e){return i(e)||92===e?this.readWord():this.getTokenFromCode(e)},e.prototype.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.state.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.state.pos+1)-56613888},e.prototype.pushComment=function(e,t,r,n,i,s){var a={type:e?"CommentBlock":"CommentLine",value:t,start:r,end:n,loc:new G(i,s)};this.isLookahead||(this.state.tokens.push(a),this.state.comments.push(a),this.addComment(a))},e.prototype.skipBlockComment=function(){var e=this.state.curPosition(),t=this.state.pos,r=this.input.indexOf("*/",this.state.pos+=2);-1===r&&this.raise(this.state.pos-2,"Unterminated comment"),this.state.pos=r+2,N.lastIndex=t;for(var n=void 0;(n=N.exec(this.input))&&n.index<this.state.pos;)++this.state.curLine,this.state.lineStart=n.index+n[0].length;this.pushComment(!0,this.input.slice(t+2,r),t,this.state.pos,e,this.state.curPosition())},e.prototype.skipLineComment=function(e){for(var t=this.state.pos,r=this.state.curPosition(),n=this.input.charCodeAt(this.state.pos+=e);this.state.pos<this.input.length&&10!==n&&13!==n&&8232!==n&&8233!==n;)++this.state.pos,n=this.input.charCodeAt(this.state.pos);this.pushComment(!1,this.input.slice(t+e,this.state.pos),t,this.state.pos,r,this.state.curPosition())},e.prototype.skipSpace=function(){e:for(;this.state.pos<this.input.length;){var e=this.input.charCodeAt(this.state.pos);switch(e){case 32:case 160:++this.state.pos;break;case 13:10===this.input.charCodeAt(this.state.pos+1)&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&L.test(String.fromCharCode(e))))break e;++this.state.pos}}},e.prototype.finishToken=function(e,t){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();var r=this.state.type;this.state.type=e,this.state.value=t,this.updateContext(r)},e.prototype.readToken_dot=function(){var e=this.input.charCodeAt(this.state.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.state.pos+2);return 46===e&&46===t?(this.state.pos+=3,this.finishToken(R.ellipsis)):(++this.state.pos,this.finishToken(R.dot))},e.prototype.readToken_slash=function(){return this.state.exprAllowed?(++this.state.pos,this.readRegexp()):61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.assign,2):this.finishOp(R.slash,1)},e.prototype.readToken_mult_modulo=function(e){var t=42===e?R.star:R.modulo,r=1,n=this.input.charCodeAt(this.state.pos+1);return 42===n&&(r++,n=this.input.charCodeAt(this.state.pos+2),t=R.exponent),61===n&&(r++,t=R.assign),this.finishOp(t,r)},e.prototype.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?this.finishOp(124===e?R.logicalOR:R.logicalAND,2):61===t?this.finishOp(R.assign,2):124===e&&125===t&&this.hasPlugin("flow")?this.finishOp(R.braceBarR,2):this.finishOp(124===e?R.bitwiseOR:R.bitwiseAND,1)},e.prototype.readToken_caret=function(){return 61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.assign,2):this.finishOp(R.bitwiseXOR,1)},e.prototype.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?45===t&&62===this.input.charCodeAt(this.state.pos+2)&&M.test(this.input.slice(this.state.lastTokEnd,this.state.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(R.incDec,2):61===t?this.finishOp(R.assign,2):this.finishOp(R.plusMin,1)},e.prototype.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.state.pos+1),r=1;return t===e?(r=62===e&&62===this.input.charCodeAt(this.state.pos+2)?3:2,61===this.input.charCodeAt(this.state.pos+r)?this.finishOp(R.assign,r+1):this.finishOp(R.bitShift,r)):33===t&&60===e&&45===this.input.charCodeAt(this.state.pos+2)&&45===this.input.charCodeAt(this.state.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(r=2),this.finishOp(R.relational,r))},e.prototype.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.state.pos+1);return 61===t?this.finishOp(R.equality,61===this.input.charCodeAt(this.state.pos+2)?3:2):61===e&&62===t?(this.state.pos+=2,this.finishToken(R.arrow)):this.finishOp(61===e?R.eq:R.prefix,1)},e.prototype.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.state.pos,this.finishToken(R.parenL);case 41:return++this.state.pos,this.finishToken(R.parenR);case 59:return++this.state.pos,this.finishToken(R.semi);case 44:return++this.state.pos,this.finishToken(R.comma);case 91:return++this.state.pos,this.finishToken(R.bracketL);case 93:return++this.state.pos,this.finishToken(R.bracketR);case 123:return this.hasPlugin("flow")&&124===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.braceBarL,2):(++this.state.pos,this.finishToken(R.braceL));case 125:return++this.state.pos,this.finishToken(R.braceR);case 58:return this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.doubleColon,2):(++this.state.pos,this.finishToken(R.colon));case 63:return++this.state.pos,this.finishToken(R.question);case 64:return++this.state.pos,this.finishToken(R.at);case 96:return++this.state.pos,this.finishToken(R.backQuote);case 48:var t=this.input.charCodeAt(this.state.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(R.prefix,1)}this.raise(this.state.pos,"Unexpected character '"+l(e)+"'")},e.prototype.finishOp=function(e,t){var r=this.input.slice(this.state.pos,this.state.pos+t);return this.state.pos+=t,this.finishToken(e,r)},e.prototype.readRegexp=function(){for(var e=this.state.pos,t=void 0,r=void 0;;){this.state.pos>=this.input.length&&this.raise(e,"Unterminated regular expression");var n=this.input.charAt(this.state.pos);if(M.test(n)&&this.raise(e,"Unterminated regular expression"),t)t=!1;else{if("["===n)r=!0;else if("]"===n&&r)r=!1;else if("/"===n&&!r)break;t="\\"===n}++this.state.pos}var i=this.input.slice(e,this.state.pos);++this.state.pos;var s=this.readWord1();if(s){/^[gmsiyu]*$/.test(s)||this.raise(e,"Invalid regular expression flag")}return this.finishToken(R.regexp,{pattern:i,flags:s})},e.prototype.readInt=function(e,t){for(var r=this.state.pos,n=0,i=0,s=null==t?1/0:t;i<s;++i){var a=this.input.charCodeAt(this.state.pos),o=void 0;if((o=a>=97?a-97+10:a>=65?a-65+10:a>=48&&a<=57?a-48:1/0)>=e)break;++this.state.pos,n=n*e+o}return this.state.pos===r||null!=t&&this.state.pos-r!==t?null:n},e.prototype.readRadixNumber=function(e){this.state.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.state.start+2,"Expected number in radix "+e),i(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number"),this.finishToken(R.num,t)},e.prototype.readNumber=function(e){var t=this.state.pos,r=48===this.input.charCodeAt(t),n=!1;e||null!==this.readInt(10)||this.raise(t,"Invalid number"),r&&this.state.pos==t+1&&(r=!1);var s=this.input.charCodeAt(this.state.pos);46!==s||r||(++this.state.pos,this.readInt(10),n=!0,s=this.input.charCodeAt(this.state.pos)),69!==s&&101!==s||r||(s=this.input.charCodeAt(++this.state.pos),43!==s&&45!==s||++this.state.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),n=!0),i(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number");var a=this.input.slice(t,this.state.pos),o=void 0;return n?o=parseFloat(a):r&&1!==a.length?this.state.strict?this.raise(t,"Invalid number"):o=/[89]/.test(a)?parseInt(a,10):parseInt(a,8):o=parseInt(a,10),this.finishToken(R.num,o)},e.prototype.readCodePoint=function(e){var t=this.input.charCodeAt(this.state.pos),r=void 0;if(123===t){var n=++this.state.pos;if(r=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos,e),++this.state.pos,null===r)--this.state.invalidTemplateEscapePosition;else if(r>1114111){if(!e)return this.state.invalidTemplateEscapePosition=n-2,null;this.raise(n,"Code point out of bounds")}}else r=this.readHexChar(4,e);return r},e.prototype.readString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;92===n?(t+=this.input.slice(r,this.state.pos),t+=this.readEscapedChar(!1),r=this.state.pos):(o(n)&&this.raise(this.state.start,"Unterminated string constant"),++this.state.pos)}return t+=this.input.slice(r,this.state.pos++),this.finishToken(R.string,t)},e.prototype.readTmplToken=function(){for(var e="",t=this.state.pos,r=!1;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated template");var n=this.input.charCodeAt(this.state.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.state.pos+1))return this.state.pos===this.state.start&&this.match(R.template)?36===n?(this.state.pos+=2,this.finishToken(R.dollarBraceL)):(++this.state.pos,this.finishToken(R.backQuote)):(e+=this.input.slice(t,this.state.pos),this.finishToken(R.template,r?null:e));if(92===n){e+=this.input.slice(t,this.state.pos);var i=this.readEscapedChar(!0);null===i?r=!0:e+=i,t=this.state.pos}else if(o(n)){switch(e+=this.input.slice(t,this.state.pos),++this.state.pos,n){case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}++this.state.curLine,this.state.lineStart=this.state.pos,t=this.state.pos}else++this.state.pos}},e.prototype.readEscapedChar=function(e){var t=!e,r=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,r){case 110:return"\n";case 114:return"\r";case 120:var n=this.readHexChar(2,t);return null===n?null:String.fromCharCode(n);case 117:var i=this.readCodePoint(t);return null===i?null:l(i);case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:return this.state.lineStart=this.state.pos,++this.state.curLine,"";default:if(r>=48&&r<=55){var s=this.state.pos-1,a=this.input.substr(this.state.pos-1,3).match(/^[0-7]+/)[0],o=parseInt(a,8);if(o>255&&(a=a.slice(0,-1),o=parseInt(a,8)),o>0){if(e)return this.state.invalidTemplateEscapePosition=s,null;this.state.strict?this.raise(s,"Octal literal in strict mode"):this.state.containsOctal||(this.state.containsOctal=!0,this.state.octalPosition=s)}return this.state.pos+=a.length-1,String.fromCharCode(o)}return String.fromCharCode(r)}},e.prototype.readHexChar=function(e,t){var r=this.state.pos,n=this.readInt(16,e);return null===n&&(t?this.raise(r,"Bad character escape sequence"):(this.state.pos=r-1,this.state.invalidTemplateEscapePosition=r-1)),n},e.prototype.readWord1=function(){this.state.containsEsc=!1;for(var e="",t=!0,r=this.state.pos;this.state.pos<this.input.length;){var n=this.fullCharCodeAtPos();if(s(n))this.state.pos+=n<=65535?1:2;else{if(92!==n)break;this.state.containsEsc=!0,e+=this.input.slice(r,this.state.pos);var a=this.state.pos;117!==this.input.charCodeAt(++this.state.pos)&&this.raise(this.state.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.state.pos;var o=this.readCodePoint(!0);(t?i:s)(o,!0)||this.raise(a,"Invalid Unicode escape"),e+=l(o),r=this.state.pos}t=!1}return e+this.input.slice(r,this.state.pos)},e.prototype.readWord=function(){var e=this.readWord1(),t=R.name;return!this.state.containsEsc&&this.isKeyword(e)&&(t=I[e]),this.finishToken(t,e)},e.prototype.braceIsBlock=function(e){if(e===R.colon){var t=this.curContext();if(t===U.braceStatement||t===U.braceExpression)return!t.isExpr}return e===R._return?M.test(this.input.slice(this.state.lastTokEnd,this.state.start)):e===R._else||e===R.semi||e===R.eof||e===R.parenR||(e===R.braceL?this.curContext()===U.braceStatement:!this.state.exprAllowed)},e.prototype.updateContext=function(e){var t=this.state.type,r=void 0;t.keyword&&e===R.dot?this.state.exprAllowed=!1:(r=t.updateContext)?r.call(this,e):this.state.exprAllowed=t.beforeExpr},e}(),K={},H=["jsx","doExpressions","objectRestSpread","decorators","classProperties","exportExtensions","asyncGenerators","functionBind","functionSent","dynamicImport","flow"],J=function(e){function t(r,n){w(this,t),r=a(r);var i=k(this,e.call(this,r,n));return i.options=r,i.inModule="module"===i.options.sourceType,i.input=n,i.plugins=i.loadPlugins(i.options.plugins),i.filename=r.sourceFilename,0===i.state.pos&&"#"===i.input[0]&&"!"===i.input[1]&&i.skipLineComment(2),i}return P(t,e),t.prototype.isReservedWord=function(e){return"await"===e?this.inModule:v[6](e)},t.prototype.hasPlugin=function(e){return!!(this.plugins["*"]&&H.indexOf(e)>-1)||!!this.plugins[e]},t.prototype.extend=function(e,t){this[e]=t(this[e])},t.prototype.loadAllPlugins=function(){var e=this,t=Object.keys(K).filter(function(e){return"flow"!==e&&"estree"!==e});t.push("flow"),t.forEach(function(t){var r=K[t];r&&r(e)})},t.prototype.loadPlugins=function(e){if(e.indexOf("*")>=0)return this.loadAllPlugins(),{"*":!0};var t={};e.indexOf("flow")>=0&&(e=e.filter(function(e){return"flow"!==e}),e.push("flow")),e.indexOf("estree")>=0&&(e=e.filter(function(e){return"estree"!==e}),e.unshift("estree"));for(var r=e,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if(!t[a]){t[a]=!0;var o=K[a];o&&o(this)}}return t},t.prototype.parse=function(){var e=this.startNode(),t=this.startNode();return this.nextToken(),this.parseTopLevel(e,t)},t}(q),X=J.prototype;X.addExtra=function(e,t,r){if(e){(e.extra=e.extra||{})[t]=r}},X.isRelational=function(e){return this.match(R.relational)&&this.state.value===e},X.expectRelational=function(e){this.isRelational(e)?this.next():this.unexpected(null,R.relational)},X.isContextual=function(e){return this.match(R.name)&&this.state.value===e},X.eatContextual=function(e){return this.state.value===e&&this.eat(R.name)},X.expectContextual=function(e,t){this.eatContextual(e)||this.unexpected(null,t)},X.canInsertSemicolon=function(){return this.match(R.eof)||this.match(R.braceR)||M.test(this.input.slice(this.state.lastTokEnd,this.state.start))},X.isLineTerminator=function(){return this.eat(R.semi)||this.canInsertSemicolon()},X.semicolon=function(){this.isLineTerminator()||this.unexpected(null,R.semi)},X.expect=function(e,t){return this.eat(e)||this.unexpected(t,e)},X.unexpected=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unexpected token";t&&"object"===(void 0===t?"undefined":C(t))&&t.label&&(t="Unexpected token, expected "+t.label),this.raise(null!=e?e:this.state.start,t)};var z=J.prototype;z.parseTopLevel=function(e,t){return t.sourceType=this.options.sourceType,this.parseBlockBody(t,!0,!0,R.eof),e.program=this.finishNode(t,"Program"),e.comments=this.state.comments,e.tokens=this.state.tokens,this.finishNode(e,"File")};var $={kind:"loop"},Q={kind:"switch"};z.stmtToDirective=function(e){var t=e.expression,r=this.startNodeAt(t.start,t.loc.start),n=this.startNodeAt(e.start,e.loc.start),i=this.input.slice(t.start,t.end),s=r.value=i.slice(1,-1);return this.addExtra(r,"raw",i),this.addExtra(r,"rawValue",s),n.value=this.finishNodeAt(r,"DirectiveLiteral",t.end,t.loc.end),this.finishNodeAt(n,"Directive",e.end,e.loc.end)},z.parseStatement=function(e,t){this.match(R.at)&&this.parseDecorators(!0);var r=this.state.type,n=this.startNode();switch(r){case R._break:case R._continue:return this.parseBreakContinueStatement(n,r.keyword);case R._debugger:return this.parseDebuggerStatement(n);case R._do:return this.parseDoStatement(n);case R._for:return this.parseForStatement(n);case R._function:return e||this.unexpected(),this.parseFunctionStatement(n);case R._class:return e||this.unexpected(),this.parseClass(n,!0);case R._if:return this.parseIfStatement(n);case R._return:return this.parseReturnStatement(n);case R._switch:return this.parseSwitchStatement(n);case R._throw:return this.parseThrowStatement(n);case R._try:return this.parseTryStatement(n);case R._let:case R._const:e||this.unexpected();case R._var:return this.parseVarStatement(n,r);case R._while:return this.parseWhileStatement(n);case R._with:return this.parseWithStatement(n);case R.braceL:return this.parseBlock();case R.semi:return this.parseEmptyStatement(n);case R._export:case R._import:if(this.hasPlugin("dynamicImport")&&this.lookahead().type===R.parenL)break;return this.options.allowImportExportEverywhere||(t||this.raise(this.state.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.state.start,"'import' and 'export' may appear only with 'sourceType: \"module\"'")),r===R._import?this.parseImport(n):this.parseExport(n);case R.name:if("async"===this.state.value){var i=this.state.clone();if(this.next(),this.match(R._function)&&!this.canInsertSemicolon())return this.expect(R._function),this.parseFunction(n,!0,!1,!0);this.state=i}}var s=this.state.value,a=this.parseExpression();return r===R.name&&"Identifier"===a.type&&this.eat(R.colon)?this.parseLabeledStatement(n,s,a):this.parseExpressionStatement(n,a)},z.takeDecorators=function(e){this.state.decorators.length&&(e.decorators=this.state.decorators,this.state.decorators=[])},z.parseDecorators=function(e){for(;this.match(R.at);){var t=this.parseDecorator();this.state.decorators.push(t)}e&&this.match(R._export)||this.match(R._class)||this.raise(this.state.start,"Leading decorators must be attached to a class declaration")},z.parseDecorator=function(){this.hasPlugin("decorators")||this.unexpected();var e=this.startNode();return this.next(),e.expression=this.parseMaybeAssign(),this.finishNode(e,"Decorator")},z.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.isLineTerminator()?e.label=null:this.match(R.name)?(e.label=this.parseIdentifier(),this.semicolon()):this.unexpected();var n=void 0;for(n=0;n<this.state.labels.length;++n){var i=this.state.labels[n];if(null==e.label||i.name===e.label.name){if(null!=i.kind&&(r||"loop"===i.kind))break;if(e.label&&r)break}}return n===this.state.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},z.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},z.parseDoStatement=function(e){return this.next(),this.state.labels.push($),e.body=this.parseStatement(!1),this.state.labels.pop(),this.expect(R._while),e.test=this.parseParenExpression(),this.eat(R.semi),this.finishNode(e,"DoWhileStatement")},z.parseForStatement=function(e){this.next(),this.state.labels.push($);var t=!1;if(this.hasPlugin("asyncGenerators")&&this.state.inAsync&&this.isContextual("await")&&(t=!0,this.next()),this.expect(R.parenL),this.match(R.semi))return t&&this.unexpected(),this.parseFor(e,null);if(this.match(R._var)||this.match(R._let)||this.match(R._const)){var r=this.startNode(),n=this.state.type;return this.next(),(this.parseVar(r,!0,n),this.finishNode(r,"VariableDeclaration"),!this.match(R._in)&&!this.isContextual("of")||1!==r.declarations.length||r.declarations[0].init)?(t&&this.unexpected(),
this.parseFor(e,r)):this.parseForIn(e,r,t)}var i={start:0},s=this.parseExpression(!0,i);if(this.match(R._in)||this.isContextual("of")){var a=this.isContextual("of")?"for-of statement":"for-in statement";return this.toAssignable(s,void 0,a),this.checkLVal(s,void 0,void 0,a),this.parseForIn(e,s,t)}return i.start&&this.unexpected(i.start),t&&this.unexpected(),this.parseFor(e,s)},z.parseFunctionStatement=function(e){return this.next(),this.parseFunction(e,!0)},z.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!1),e.alternate=this.eat(R._else)?this.parseStatement(!1):null,this.finishNode(e,"IfStatement")},z.parseReturnStatement=function(e){return this.state.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.state.start,"'return' outside of function"),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},z.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(R.braceL),this.state.labels.push(Q);for(var t,r=void 0;!this.match(R.braceR);)if(this.match(R._case)||this.match(R._default)){var n=this.match(R._case);r&&this.finishNode(r,"SwitchCase"),e.cases.push(r=this.startNode()),r.consequent=[],this.next(),n?r.test=this.parseExpression():(t&&this.raise(this.state.lastTokStart,"Multiple default clauses"),t=!0,r.test=null),this.expect(R.colon)}else r?r.consequent.push(this.parseStatement(!0)):this.unexpected();return r&&this.finishNode(r,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")},z.parseThrowStatement=function(e){return this.next(),M.test(this.input.slice(this.state.lastTokEnd,this.state.start))&&this.raise(this.state.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var Z=[];z.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(R._catch)){var t=this.startNode();this.next(),this.expect(R.parenL),t.param=this.parseBindingAtom(),this.checkLVal(t.param,!0,Object.create(null),"catch clause"),this.expect(R.parenR),t.body=this.parseBlock(),e.handler=this.finishNode(t,"CatchClause")}return e.guardedHandlers=Z,e.finalizer=this.eat(R._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},z.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},z.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.state.labels.push($),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"WhileStatement")},z.parseWithStatement=function(e){return this.state.strict&&this.raise(this.state.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},z.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},z.parseLabeledStatement=function(e,t,r){for(var n=this.state.labels,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}a.name===t&&this.raise(r.start,"Label '"+t+"' is already declared")}for(var o=this.state.type.isLoop?"loop":this.match(R._switch)?"switch":null,u=this.state.labels.length-1;u>=0;u--){var l=this.state.labels[u];if(l.statementStart!==e.start)break;l.statementStart=this.state.start,l.kind=o}return this.state.labels.push({name:t,kind:o,statementStart:this.state.start}),e.body=this.parseStatement(!0),this.state.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},z.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},z.parseBlock=function(e){var t=this.startNode();return this.expect(R.braceL),this.parseBlockBody(t,e,!1,R.braceR),this.finishNode(t,"BlockStatement")},z.isValidDirective=function(e){return"ExpressionStatement"===e.type&&"StringLiteral"===e.expression.type&&!e.expression.extra.parenthesized},z.parseBlockBody=function(e,t,r,n){e.body=[],e.directives=[];for(var i=!1,s=void 0,a=void 0;!this.eat(n);){i||!this.state.containsOctal||a||(a=this.state.octalPosition);var o=this.parseStatement(!0,r);if(t&&!i&&this.isValidDirective(o)){var u=this.stmtToDirective(o);e.directives.push(u),void 0===s&&"use strict"===u.value.value&&(s=this.state.strict,this.setStrict(!0),a&&this.raise(a,"Octal literal in strict mode"))}else i=!0,e.body.push(o)}!1===s&&this.setStrict(!1)},z.parseFor=function(e,t){return e.init=t,this.expect(R.semi),e.test=this.match(R.semi)?null:this.parseExpression(),this.expect(R.semi),e.update=this.match(R.parenR)?null:this.parseExpression(),this.expect(R.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"ForStatement")},z.parseForIn=function(e,t,r){var n=void 0;return r?(this.eatContextual("of"),n="ForAwaitStatement"):(n=this.match(R._in)?"ForInStatement":"ForOfStatement",this.next()),e.left=t,e.right=this.parseExpression(),this.expect(R.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,n)},z.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r.keyword;;){var n=this.startNode();if(this.parseVarHead(n),this.eat(R.eq)?n.init=this.parseMaybeAssign(t):r!==R._const||this.match(R._in)||this.isContextual("of")?"Identifier"===n.id.type||t&&(this.match(R._in)||this.isContextual("of"))?n.init=null:this.raise(this.state.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(R.comma))break}return e},z.parseVarHead=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0,void 0,"variable declaration")},z.parseFunction=function(e,t,r,n,i){var s=this.state.inMethod;return this.state.inMethod=!1,this.initFunction(e,n),this.match(R.star)&&(e.async&&!this.hasPlugin("asyncGenerators")?this.unexpected():(e.generator=!0,this.next())),!t||i||this.match(R.name)||this.match(R._yield)||this.unexpected(),(this.match(R.name)||this.match(R._yield))&&(e.id=this.parseBindingIdentifier()),this.parseFunctionParams(e),this.parseFunctionBody(e,r),this.state.inMethod=s,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},z.parseFunctionParams=function(e){this.expect(R.parenL),e.params=this.parseBindingList(R.parenR)},z.parseClass=function(e,t,r){return this.next(),this.takeDecorators(e),this.parseClassId(e,t,r),this.parseClassSuper(e),this.parseClassBody(e),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},z.isClassProperty=function(){return this.match(R.eq)||this.match(R.semi)||this.match(R.braceR)},z.isClassMethod=function(){return this.match(R.parenL)},z.isNonstaticConstructor=function(e){return!(e.computed||e.static||"constructor"!==e.key.name&&"constructor"!==e.key.value)},z.parseClassBody=function(e){var t=this.state.strict;this.state.strict=!0;var r=!1,n=!1,i=[],s=this.startNode();for(s.body=[],this.expect(R.braceL);!this.eat(R.braceR);)if(this.eat(R.semi))i.length>0&&this.raise(this.state.lastTokEnd,"Decorators must not be followed by a semicolon");else if(this.match(R.at))i.push(this.parseDecorator());else{var a=this.startNode();if(i.length&&(a.decorators=i,i=[]),a.static=!1,this.match(R.name)&&"static"===this.state.value){var o=this.parseIdentifier(!0);if(this.isClassMethod()){a.kind="method",a.computed=!1,a.key=o,this.parseClassMethod(s,a,!1,!1);continue}if(this.isClassProperty()){a.computed=!1,a.key=o,s.body.push(this.parseClassProperty(a));continue}a.static=!0}if(this.eat(R.star))a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be a generator"),a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.parseClassMethod(s,a,!0,!1);else{var u=this.match(R.name),l=this.parsePropertyName(a);if(a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.isClassMethod())this.isNonstaticConstructor(a)?(n?this.raise(l.start,"Duplicate constructor in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),n=!0,a.kind="constructor"):a.kind="method",this.parseClassMethod(s,a,!1,!1);else if(this.isClassProperty())this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a));else if(u&&"async"===l.name&&!this.isLineTerminator()){var c=this.hasPlugin("asyncGenerators")&&this.eat(R.star);a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be an async function"),this.parseClassMethod(s,a,c,!0)}else!u||"get"!==l.name&&"set"!==l.name||this.isLineTerminator()&&this.match(R.star)?this.hasPlugin("classConstructorCall")&&u&&"call"===l.name&&this.match(R.name)&&"constructor"===this.state.value?(r?this.raise(a.start,"Duplicate constructor call in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),r=!0,a.kind="constructorCall",this.parsePropertyName(a),this.parseClassMethod(s,a,!1,!1)):this.isLineTerminator()?(this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a))):this.unexpected():(a.kind=l.name,this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't have get/set modifier"),this.parseClassMethod(s,a,!1,!1),this.checkGetterSetterParamCount(a))}}i.length&&this.raise(this.state.start,"You have trailing decorators with no method"),e.body=this.finishNode(s,"ClassBody"),this.state.strict=t},z.parseClassProperty=function(e){return this.state.inClassProperty=!0,this.match(R.eq)?(this.hasPlugin("classProperties")||this.unexpected(),this.next(),e.value=this.parseMaybeAssign()):e.value=null,this.semicolon(),this.state.inClassProperty=!1,this.finishNode(e,"ClassProperty")},z.parseClassMethod=function(e,t,r,n){this.parseMethod(t,r,n),e.body.push(this.finishNode(t,"ClassMethod"))},z.parseClassId=function(e,t,r){this.match(R.name)?e.id=this.parseIdentifier():r||!t?e.id=null:this.unexpected()},z.parseClassSuper=function(e){e.superClass=this.eat(R._extends)?this.parseExprSubscripts():null},z.parseExport=function(e){if(this.next(),this.match(R.star)){var t=this.startNode();if(this.next(),!this.hasPlugin("exportExtensions")||!this.eatContextual("as"))return this.parseExportFrom(e,!0),this.finishNode(e,"ExportAllDeclaration");t.exported=this.parseIdentifier(),e.specifiers=[this.finishNode(t,"ExportNamespaceSpecifier")],this.parseExportSpecifiersMaybe(e),this.parseExportFrom(e,!0)}else if(this.hasPlugin("exportExtensions")&&this.isExportDefaultSpecifier()){var r=this.startNode();if(r.exported=this.parseIdentifier(!0),e.specifiers=[this.finishNode(r,"ExportDefaultSpecifier")],this.match(R.comma)&&this.lookahead().type===R.star){this.expect(R.comma);var n=this.startNode();this.expect(R.star),this.expectContextual("as"),n.exported=this.parseIdentifier(),e.specifiers.push(this.finishNode(n,"ExportNamespaceSpecifier"))}else this.parseExportSpecifiersMaybe(e);this.parseExportFrom(e,!0)}else{if(this.eat(R._default)){var i=this.startNode(),s=!1;return this.eat(R._function)?i=this.parseFunction(i,!0,!1,!1,!0):this.match(R._class)?i=this.parseClass(i,!0,!0):(s=!0,i=this.parseMaybeAssign()),e.declaration=i,s&&this.semicolon(),this.checkExport(e,!0,!0),this.finishNode(e,"ExportDefaultDeclaration")}this.shouldParseExportDeclaration()?(e.specifiers=[],e.source=null,e.declaration=this.parseExportDeclaration(e)):(e.declaration=null,e.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(e))}return this.checkExport(e,!0),this.finishNode(e,"ExportNamedDeclaration")},z.parseExportDeclaration=function(){return this.parseStatement(!0)},z.isExportDefaultSpecifier=function(){if(this.match(R.name))return"async"!==this.state.value;if(!this.match(R._default))return!1;var e=this.lookahead();return e.type===R.comma||e.type===R.name&&"from"===e.value},z.parseExportSpecifiersMaybe=function(e){this.eat(R.comma)&&(e.specifiers=e.specifiers.concat(this.parseExportSpecifiers()))},z.parseExportFrom=function(e,t){this.eatContextual("from")?(e.source=this.match(R.string)?this.parseExprAtom():this.unexpected(),this.checkExport(e)):t?this.unexpected():e.source=null,this.semicolon()},z.shouldParseExportDeclaration=function(){return"var"===this.state.type.keyword||"const"===this.state.type.keyword||"let"===this.state.type.keyword||"function"===this.state.type.keyword||"class"===this.state.type.keyword||this.isContextual("async")},z.checkExport=function(e,t,r){if(t)if(r)this.checkDuplicateExports(e,"default");else if(e.specifiers&&e.specifiers.length)for(var n=e.specifiers,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;this.checkDuplicateExports(o,o.exported.name)}else if(e.declaration)if("FunctionDeclaration"===e.declaration.type||"ClassDeclaration"===e.declaration.type)this.checkDuplicateExports(e,e.declaration.id.name);else if("VariableDeclaration"===e.declaration.type)for(var u=e.declaration.declarations,l=Array.isArray(u),c=0,u=l?u:u[Symbol.iterator]();;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;this.checkDeclaration(p.id)}if(this.state.decorators.length){var d=e.declaration&&("ClassDeclaration"===e.declaration.type||"ClassExpression"===e.declaration.type);e.declaration&&d||this.raise(e.start,"You can only use decorators on an export when exporting a class"),this.takeDecorators(e.declaration)}},z.checkDeclaration=function(e){if("ObjectPattern"===e.type)for(var t=e.properties,r=Array.isArray(t),n=0,t=r?t:t[Symbol.iterator]();;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this.checkDeclaration(s)}else if("ArrayPattern"===e.type)for(var a=e.elements,o=Array.isArray(a),u=0,a=o?a:a[Symbol.iterator]();;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;c&&this.checkDeclaration(c)}else"ObjectProperty"===e.type?this.checkDeclaration(e.value):"RestElement"===e.type||"RestProperty"===e.type?this.checkDeclaration(e.argument):"Identifier"===e.type&&this.checkDuplicateExports(e,e.name)},z.checkDuplicateExports=function(e,t){this.state.exportedIdentifiers.indexOf(t)>-1&&this.raiseDuplicateExportError(e,t),this.state.exportedIdentifiers.push(t)},z.raiseDuplicateExportError=function(e,t){this.raise(e.start,"default"===t?"Only one default export allowed per module.":"`"+t+"` has already been exported. Exported identifiers must be unique.")},z.parseExportSpecifiers=function(){var e=[],t=!0,r=void 0;for(this.expect(R.braceL);!this.eat(R.braceR);){if(t)t=!1;else if(this.expect(R.comma),this.eat(R.braceR))break;var n=this.match(R._default);n&&!r&&(r=!0);var i=this.startNode();i.local=this.parseIdentifier(n),i.exported=this.eatContextual("as")?this.parseIdentifier(!0):i.local.__clone(),e.push(this.finishNode(i,"ExportSpecifier"))}return r&&!this.isContextual("from")&&this.unexpected(),e},z.parseImport=function(e){return this.eat(R._import),this.match(R.string)?(e.specifiers=[],e.source=this.parseExprAtom()):(e.specifiers=[],this.parseImportSpecifiers(e),this.expectContextual("from"),e.source=this.match(R.string)?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},z.parseImportSpecifiers=function(e){var t=!0;if(this.match(R.name)){var r=this.state.start,n=this.state.startLoc;if(e.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(),r,n)),!this.eat(R.comma))return}if(this.match(R.star)){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdentifier(),this.checkLVal(i.local,!0,void 0,"import namespace specifier"),void e.specifiers.push(this.finishNode(i,"ImportNamespaceSpecifier"))}for(this.expect(R.braceL);!this.eat(R.braceR);){if(t)t=!1;else if(this.eat(R.colon)&&this.unexpected(null,"ES2015 named imports do not destructure. Use another statement for destructuring after the import."),this.expect(R.comma),this.eat(R.braceR))break;this.parseImportSpecifier(e)}},z.parseImportSpecifier=function(e){var t=this.startNode();t.imported=this.parseIdentifier(!0),this.eatContextual("as")?t.local=this.parseIdentifier():(this.checkReservedWord(t.imported.name,t.start,!0,!0),t.local=t.imported.__clone()),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))},z.parseImportSpecifierDefault=function(e,t,r){var n=this.startNodeAt(t,r);return n.local=e,this.checkLVal(n.local,!0,void 0,"default import specifier"),this.finishNode(n,"ImportDefaultSpecifier")};var ee=J.prototype;ee.toAssignable=function(e,t,r){if(e)switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(var n=e.properties,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;"ObjectMethod"===o.type?"get"===o.kind||"set"===o.kind?this.raise(o.key.start,"Object pattern can't contain getter or setter"):this.raise(o.key.start,"Object pattern can't contain methods"):this.toAssignable(o,t,"object destructuring pattern")}break;case"ObjectProperty":this.toAssignable(e.value,t,r);break;case"SpreadProperty":e.type="RestProperty";var u=e.argument;this.toAssignable(u,t,r);break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t,r);break;case"AssignmentExpression":"="===e.operator?(e.type="AssignmentPattern",delete e.operator):this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break;case"MemberExpression":if(!t)break;default:var l="Invalid left-hand side"+(r?" in "+r:"expression");this.raise(e.start,l)}return e},ee.toAssignableList=function(e,t,r){var n=e.length;if(n){var i=e[n-1];if(i&&"RestElement"===i.type)--n;else if(i&&"SpreadElement"===i.type){i.type="RestElement";var s=i.argument;this.toAssignable(s,t,r),"Identifier"!==s.type&&"MemberExpression"!==s.type&&"ArrayPattern"!==s.type&&this.unexpected(s.start),--n}}for(var a=0;a<n;a++){var o=e[a];o&&this.toAssignable(o,t,r)}return e},ee.toReferencedList=function(e){return e},ee.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},ee.parseRest=function(){var e=this.startNode();return this.next(),e.argument=this.parseBindingIdentifier(),this.finishNode(e,"RestElement")},ee.shouldAllowYieldIdentifier=function(){return this.match(R._yield)&&!this.state.strict&&!this.state.inGenerator},ee.parseBindingIdentifier=function(){return this.parseIdentifier(this.shouldAllowYieldIdentifier())},ee.parseBindingAtom=function(){switch(this.state.type){case R._yield:(this.state.strict||this.state.inGenerator)&&this.unexpected();case R.name:return this.parseIdentifier(!0);case R.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(R.bracketR,!0),this.finishNode(e,"ArrayPattern");case R.braceL:return this.parseObj(!0);default:this.unexpected()}},ee.parseBindingList=function(e,t){for(var r=[],n=!0;!this.eat(e);)if(n?n=!1:this.expect(R.comma),t&&this.match(R.comma))r.push(null);else{if(this.eat(e))break;if(this.match(R.ellipsis)){r.push(this.parseAssignableListItemTypes(this.parseRest())),this.expect(e);break}for(var i=[];this.match(R.at);)i.push(this.parseDecorator());var s=this.parseMaybeDefault();i.length&&(s.decorators=i),this.parseAssignableListItemTypes(s),r.push(this.parseMaybeDefault(s.start,s.loc.start,s))}return r},ee.parseAssignableListItemTypes=function(e){return e},ee.parseMaybeDefault=function(e,t,r){if(t=t||this.state.startLoc,e=e||this.state.start,r=r||this.parseBindingAtom(),!this.eat(R.eq))return r;var n=this.startNodeAt(e,t);return n.left=r,n.right=this.parseMaybeAssign(),this.finishNode(n,"AssignmentPattern")},ee.checkLVal=function(e,t,r,n){switch(e.type){case"Identifier":if(this.checkReservedWord(e.name,e.start,!1,!0),r){var i="_"+e.name;r[i]?this.raise(e.start,"Argument name clash in strict mode"):r[i]=!0}break;case"MemberExpression":t&&this.raise(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var s=e.properties,a=Array.isArray(s),o=0,s=a?s:s[Symbol.iterator]();;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;"ObjectProperty"===l.type&&(l=l.value),this.checkLVal(l,t,r,"object destructuring pattern")}break;case"ArrayPattern":for(var c=e.elements,f=Array.isArray(c),p=0,c=f?c:c[Symbol.iterator]();;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;h&&this.checkLVal(h,t,r,"array destructuring pattern")}break;case"AssignmentPattern":this.checkLVal(e.left,t,r,"assignment pattern");break;case"RestProperty":this.checkLVal(e.argument,t,r,"rest property");break;case"RestElement":this.checkLVal(e.argument,t,r,"rest element");break;default:var m=(t?"Binding invalid":"Invalid")+" left-hand side"+(n?" in "+n:"expression");this.raise(e.start,m)}};var te=J.prototype;te.checkPropClash=function(e,t){if(!e.computed&&!e.kind){var r=e.key;"__proto__"===("Identifier"===r.type?r.name:String(r.value))&&(t.proto&&this.raise(r.start,"Redefinition of __proto__ property"),t.proto=!0)}},te.getExpression=function(){this.nextToken();var e=this.parseExpression();return this.match(R.eof)||this.unexpected(),e},te.parseExpression=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeAssign(e,t);if(this.match(R.comma)){var s=this.startNodeAt(r,n);for(s.expressions=[i];this.eat(R.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.toReferencedList(s.expressions),this.finishNode(s,"SequenceExpression")}return i},te.parseMaybeAssign=function(e,t,r,n){var i=this.state.start,s=this.state.startLoc;if(this.match(R._yield)&&this.state.inGenerator){var a=this.parseYield();return r&&(a=r.call(this,a,i,s)),a}var o=void 0;t?o=!1:(t={start:0},o=!0),(this.match(R.parenL)||this.match(R.name))&&(this.state.potentialArrowAt=this.state.start);var u=this.parseMaybeConditional(e,t,n);if(r&&(u=r.call(this,u,i,s)),this.state.type.isAssign){var l=this.startNodeAt(i,s);if(l.operator=this.state.value,l.left=this.match(R.eq)?this.toAssignable(u,void 0,"assignment expression"):u,t.start=0,this.checkLVal(u,void 0,void 0,"assignment expression"),u.extra&&u.extra.parenthesized){var c=void 0;"ObjectPattern"===u.type?c="`({a}) = 0` use `({a} = 0)`":"ArrayPattern"===u.type&&(c="`([a]) = 0` use `([a] = 0)`"),c&&this.raise(u.start,"You're trying to assign to a parenthesized expression, eg. instead of "+c)}return this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return o&&t.start&&this.unexpected(t.start),u},te.parseMaybeConditional=function(e,t,r){var n=this.state.start,i=this.state.startLoc,s=this.parseExprOps(e,t);return t&&t.start?s:this.parseConditional(s,e,n,i,r)},te.parseConditional=function(e,t,r,n){if(this.eat(R.question)){var i=this.startNodeAt(r,n);return i.test=e,i.consequent=this.parseMaybeAssign(),this.expect(R.colon),i.alternate=this.parseMaybeAssign(t),this.finishNode(i,"ConditionalExpression")}return e},te.parseExprOps=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeUnary(t);return t&&t.start?i:this.parseExprOp(i,r,n,-1,e)},te.parseExprOp=function(e,t,r,n,i){var s=this.state.type.binop;if(!(null==s||i&&this.match(R._in))&&s>n){var a=this.startNodeAt(t,r);a.left=e,a.operator=this.state.value,"**"!==a.operator||"UnaryExpression"!==e.type||!e.extra||e.extra.parenthesizedArgument||e.extra.parenthesized||this.raise(e.argument.start,"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.");var o=this.state.type;this.next();var u=this.state.start,l=this.state.startLoc;return a.right=this.parseExprOp(this.parseMaybeUnary(),u,l,o.rightAssociative?s-1:s,i),this.finishNode(a,o===R.logicalOR||o===R.logicalAND?"LogicalExpression":"BinaryExpression"),this.parseExprOp(a,t,r,n,i)}return e},te.parseMaybeUnary=function(e){if(this.state.type.prefix){var t=this.startNode(),r=this.match(R.incDec);t.operator=this.state.value,t.prefix=!0,this.next();var n=this.state.type;return t.argument=this.parseMaybeUnary(),this.addExtra(t,"parenthesizedArgument",!(n!==R.parenL||t.argument.extra&&t.argument.extra.parenthesized)),e&&e.start&&this.unexpected(e.start),r?this.checkLVal(t.argument,void 0,void 0,"prefix operation"):this.state.strict&&"delete"===t.operator&&"Identifier"===t.argument.type&&this.raise(t.start,"Deleting local variable in strict mode"),this.finishNode(t,r?"UpdateExpression":"UnaryExpression")}var i=this.state.start,s=this.state.startLoc,a=this.parseExprSubscripts(e);if(e&&e.start)return a;for(;this.state.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,s);o.operator=this.state.value,o.prefix=!1,o.argument=a,this.checkLVal(a,void 0,void 0,"postfix operation"),this.next(),a=this.finishNode(o,"UpdateExpression")}return a},te.parseExprSubscripts=function(e){var t=this.state.start,r=this.state.startLoc,n=this.state.potentialArrowAt,i=this.parseExprAtom(e);return"ArrowFunctionExpression"===i.type&&i.start===n?i:e&&e.start?i:this.parseSubscripts(i,t,r)},te.parseSubscripts=function(e,t,r,n){for(;;){if(!n&&this.eat(R.doubleColon)){var i=this.startNodeAt(t,r);return i.object=e,i.callee=this.parseNoCallExpr(),this.parseSubscripts(this.finishNode(i,"BindExpression"),t,r,n)}if(this.eat(R.dot)){var s=this.startNodeAt(t,r);s.object=e,s.property=this.parseIdentifier(!0),s.computed=!1,e=this.finishNode(s,"MemberExpression")}else if(this.eat(R.bracketL)){var a=this.startNodeAt(t,r);a.object=e,a.property=this.parseExpression(),a.computed=!0,this.expect(R.bracketR),e=this.finishNode(a,"MemberExpression")}else if(!n&&this.match(R.parenL)){var o=this.state.potentialArrowAt===e.start&&"Identifier"===e.type&&"async"===e.name&&!this.canInsertSemicolon();this.next();var u=this.startNodeAt(t,r);if(u.callee=e,u.arguments=this.parseCallExpressionArguments(R.parenR,o),"Import"===u.callee.type&&1!==u.arguments.length&&this.raise(u.start,"import() requires exactly one argument"),e=this.finishNode(u,"CallExpression"),o&&this.shouldParseAsyncArrow())return this.parseAsyncArrowFromCallExpression(this.startNodeAt(t,r),u);this.toReferencedList(u.arguments)}else{if(!this.match(R.backQuote))return e;var l=this.startNodeAt(t,r);l.tag=e,l.quasi=this.parseTemplate(!0),e=this.finishNode(l,"TaggedTemplateExpression")}}},te.parseCallExpressionArguments=function(e,t){for(var r=[],n=void 0,i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(R.comma),this.eat(e))break;this.match(R.parenL)&&!n&&(n=this.state.start),r.push(this.parseExprListItem(!1,t?{start:0}:void 0,t?{start:0}:void 0))}return t&&n&&this.shouldParseAsyncArrow()&&this.unexpected(),r},te.shouldParseAsyncArrow=function(){return this.match(R.arrow)},te.parseAsyncArrowFromCallExpression=function(e,t){return this.expect(R.arrow),this.parseArrowExpression(e,t.arguments,!0)},te.parseNoCallExpr=function(){var e=this.state.start,t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,t,!0)},te.parseExprAtom=function(e){var t=this.state.potentialArrowAt===this.state.start,r=void 0;switch(this.state.type){case R._super:return this.state.inMethod||this.state.inClassProperty||this.options.allowSuperOutsideMethod||this.raise(this.state.start,"'super' outside of function or class"),r=this.startNode(),this.next(),this.match(R.parenL)||this.match(R.bracketL)||this.match(R.dot)||this.unexpected(),this.match(R.parenL)&&"constructor"!==this.state.inMethod&&!this.options.allowSuperOutsideMethod&&this.raise(r.start,"super() outside of class constructor"),this.finishNode(r,"Super");case R._import:return this.hasPlugin("dynamicImport")||this.unexpected(),r=this.startNode(),this.next(),this.match(R.parenL)||this.unexpected(null,R.parenL),this.finishNode(r,"Import");case R._this:return r=this.startNode(),this.next(),this.finishNode(r,"ThisExpression");case R._yield:this.state.inGenerator&&this.unexpected();case R.name:r=this.startNode();var n="await"===this.state.value&&this.state.inAsync,i=this.shouldAllowYieldIdentifier(),s=this.parseIdentifier(n||i);if("await"===s.name){if(this.state.inAsync||this.inModule)return this.parseAwait(r)}else{if("async"===s.name&&this.match(R._function)&&!this.canInsertSemicolon())return this.next(),this.parseFunction(r,!1,!1,!0);if(t&&"async"===s.name&&this.match(R.name)){var a=[this.parseIdentifier()];return this.expect(R.arrow),this.parseArrowExpression(r,a,!0)}}return t&&!this.canInsertSemicolon()&&this.eat(R.arrow)?this.parseArrowExpression(r,[s]):s;case R._do:if(this.hasPlugin("doExpressions")){var o=this.startNode();this.next();var u=this.state.inFunction,l=this.state.labels;return this.state.labels=[],this.state.inFunction=!1,o.body=this.parseBlock(!1,!0),this.state.inFunction=u,this.state.labels=l,this.finishNode(o,"DoExpression")}case R.regexp:var c=this.state.value;return r=this.parseLiteral(c.value,"RegExpLiteral"),r.pattern=c.pattern,r.flags=c.flags,r;case R.num:return this.parseLiteral(this.state.value,"NumericLiteral");case R.string:return this.parseLiteral(this.state.value,"StringLiteral");case R._null:return r=this.startNode(),this.next(),this.finishNode(r,"NullLiteral");case R._true:case R._false:return r=this.startNode(),r.value=this.match(R._true),this.next(),this.finishNode(r,"BooleanLiteral");case R.parenL:return this.parseParenAndDistinguishExpression(null,null,t);case R.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(R.bracketR,!0,e),this.toReferencedList(r.elements),this.finishNode(r,"ArrayExpression");case R.braceL:return this.parseObj(!1,e);case R._function:return this.parseFunctionExpression();case R.at:this.parseDecorators();case R._class:return r=this.startNode(),this.takeDecorators(r),this.parseClass(r,!1);case R._new:return this.parseNew();case R.backQuote:return this.parseTemplate(!1);case R.doubleColon:r=this.startNode(),this.next(),r.object=null;var f=r.callee=this.parseNoCallExpr();if("MemberExpression"===f.type)return this.finishNode(r,"BindExpression");this.raise(f.start,"Binding should be performed on object property.");default:this.unexpected()}},te.parseFunctionExpression=function(){var e=this.startNode(),t=this.parseIdentifier(!0);return this.state.inGenerator&&this.eat(R.dot)&&this.hasPlugin("functionSent")?this.parseMetaProperty(e,t,"sent"):this.parseFunction(e,!1)},te.parseMetaProperty=function(e,t,r){return e.meta=t,e.property=this.parseIdentifier(!0),e.property.name!==r&&this.raise(e.property.start,"The only valid meta property for new is "+t.name+"."+r),this.finishNode(e,"MetaProperty")},te.parseLiteral=function(e,t,r,n){r=r||this.state.start,n=n||this.state.startLoc;var i=this.startNodeAt(r,n);return this.addExtra(i,"rawValue",e),this.addExtra(i,"raw",this.input.slice(r,this.state.end)),i.value=e,this.next(),this.finishNode(i,t)},te.parseParenExpression=function(){this.expect(R.parenL);var e=this.parseExpression();return this.expect(R.parenR),e},te.parseParenAndDistinguishExpression=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;var n=void 0;this.expect(R.parenL);for(var i=this.state.start,s=this.state.startLoc,a=[],o={start:0},u={start:0},l=!0,c=void 0,f=void 0;!this.match(R.parenR);){if(l)l=!1;else if(this.expect(R.comma,u.start||null),this.match(R.parenR)){f=this.state.start;break}
if(this.match(R.ellipsis)){var p=this.state.start,d=this.state.startLoc;c=this.state.start,a.push(this.parseParenItem(this.parseRest(),p,d));break}a.push(this.parseMaybeAssign(!1,o,this.parseParenItem,u))}var h=this.state.start,m=this.state.startLoc;this.expect(R.parenR);var y=this.startNodeAt(e,t);if(r&&this.shouldParseArrow()&&(y=this.parseArrow(y))){for(var v=a,g=Array.isArray(v),b=0,v=g?v:v[Symbol.iterator]();;){var E;if(g){if(b>=v.length)break;E=v[b++]}else{if(b=v.next(),b.done)break;E=b.value}var x=E;x.extra&&x.extra.parenthesized&&this.unexpected(x.extra.parenStart)}return this.parseArrowExpression(y,a)}return a.length||this.unexpected(this.state.lastTokStart),f&&this.unexpected(f),c&&this.unexpected(c),o.start&&this.unexpected(o.start),u.start&&this.unexpected(u.start),a.length>1?(n=this.startNodeAt(i,s),n.expressions=a,this.toReferencedList(n.expressions),this.finishNodeAt(n,"SequenceExpression",h,m)):n=a[0],this.addExtra(n,"parenthesized",!0),this.addExtra(n,"parenStart",e),n},te.shouldParseArrow=function(){return!this.canInsertSemicolon()},te.parseArrow=function(e){if(this.eat(R.arrow))return e},te.parseParenItem=function(e){return e},te.parseNew=function(){var e=this.startNode(),t=this.parseIdentifier(!0);if(this.eat(R.dot)){var r=this.parseMetaProperty(e,t,"target");return this.state.inFunction||this.raise(r.property.start,"new.target can only be used in functions"),r}return e.callee=this.parseNoCallExpr(),this.eat(R.parenL)?(e.arguments=this.parseExprList(R.parenR),this.toReferencedList(e.arguments)):e.arguments=[],this.finishNode(e,"NewExpression")},te.parseTemplateElement=function(e){var t=this.startNode();return null===this.state.value&&(e&&this.hasPlugin("templateInvalidEscapes")?this.state.invalidTemplateEscapePosition=null:this.raise(this.state.invalidTemplateEscapePosition,"Invalid escape sequence in template")),t.value={raw:this.input.slice(this.state.start,this.state.end).replace(/\r\n?/g,"\n"),cooked:this.state.value},this.next(),t.tail=this.match(R.backQuote),this.finishNode(t,"TemplateElement")},te.parseTemplate=function(e){var t=this.startNode();this.next(),t.expressions=[];var r=this.parseTemplateElement(e);for(t.quasis=[r];!r.tail;)this.expect(R.dollarBraceL),t.expressions.push(this.parseExpression()),this.expect(R.braceR),t.quasis.push(r=this.parseTemplateElement(e));return this.next(),this.finishNode(t,"TemplateLiteral")},te.parseObj=function(e,t){var r=[],n=Object.create(null),i=!0,s=this.startNode();s.properties=[],this.next();for(var a=null;!this.eat(R.braceR);){if(i)i=!1;else if(this.expect(R.comma),this.eat(R.braceR))break;for(;this.match(R.at);)r.push(this.parseDecorator());var o=this.startNode(),u=!1,l=!1,c=void 0,f=void 0;if(r.length&&(o.decorators=r,r=[]),this.hasPlugin("objectRestSpread")&&this.match(R.ellipsis)){if(o=this.parseSpread(e?{start:0}:void 0),o.type=e?"RestProperty":"SpreadProperty",e&&this.toAssignable(o.argument,!0,"object pattern"),s.properties.push(o),!e)continue;var p=this.state.start;if(null===a){if(this.eat(R.braceR))break;if(this.match(R.comma)&&this.lookahead().type===R.braceR)continue;a=p;continue}this.unexpected(a,"Cannot have multiple rest elements when destructuring")}if(o.method=!1,o.shorthand=!1,(e||t)&&(c=this.state.start,f=this.state.startLoc),e||(u=this.eat(R.star)),!e&&this.isContextual("async")){u&&this.unexpected();var d=this.parseIdentifier();this.match(R.colon)||this.match(R.parenL)||this.match(R.braceR)||this.match(R.eq)||this.match(R.comma)?(o.key=d,o.computed=!1):(l=!0,this.hasPlugin("asyncGenerators")&&(u=this.eat(R.star)),this.parsePropertyName(o))}else this.parsePropertyName(o);this.parseObjPropValue(o,c,f,u,l,e,t),this.checkPropClash(o,n),o.shorthand&&this.addExtra(o,"shorthand",!0),s.properties.push(o)}return null!==a&&this.unexpected(a,"The rest element has to be the last element when destructuring"),r.length&&this.raise(this.state.start,"You have trailing decorators with no property"),this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},te.isGetterOrSetterMethod=function(e,t){return!t&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&(this.match(R.string)||this.match(R.num)||this.match(R.bracketL)||this.match(R.name)||this.state.type.keyword)},te.checkGetterSetterParamCount=function(e){var t="get"===e.kind?0:1;if(e.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}},te.parseObjectMethod=function(e,t,r,n){return r||t||this.match(R.parenL)?(n&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,t,r),this.finishNode(e,"ObjectMethod")):this.isGetterOrSetterMethod(e,n)?((t||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),this.parseMethod(e),this.checkGetterSetterParamCount(e),this.finishNode(e,"ObjectMethod")):void 0},te.parseObjectProperty=function(e,t,r,n,i){return this.eat(R.colon)?(e.value=n?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssign(!1,i),this.finishNode(e,"ObjectProperty")):e.computed||"Identifier"!==e.key.type?void 0:(this.checkReservedWord(e.key.name,e.key.start,!0,!0),n?e.value=this.parseMaybeDefault(t,r,e.key.__clone()):this.match(R.eq)&&i?(i.start||(i.start=this.state.start),e.value=this.parseMaybeDefault(t,r,e.key.__clone())):e.value=e.key.__clone(),e.shorthand=!0,this.finishNode(e,"ObjectProperty"))},te.parseObjPropValue=function(e,t,r,n,i,s,a){var o=this.parseObjectMethod(e,n,i,s)||this.parseObjectProperty(e,t,r,s,a);return o||this.unexpected(),o},te.parsePropertyName=function(e){if(this.eat(R.bracketL))e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(R.bracketR);else{e.computed=!1;var t=this.state.inPropertyName;this.state.inPropertyName=!0,e.key=this.match(R.num)||this.match(R.string)?this.parseExprAtom():this.parseIdentifier(!0),this.state.inPropertyName=t}return e.key},te.initFunction=function(e,t){e.id=null,e.generator=!1,e.expression=!1,e.async=!!t},te.parseMethod=function(e,t,r){var n=this.state.inMethod;return this.state.inMethod=e.kind||!0,this.initFunction(e,r),this.expect(R.parenL),e.params=this.parseBindingList(R.parenR),e.generator=!!t,this.parseFunctionBody(e),this.state.inMethod=n,e},te.parseArrowExpression=function(e,t,r){return this.initFunction(e,r),e.params=this.toAssignableList(t,!0,"arrow function parameters"),this.parseFunctionBody(e,!0),this.finishNode(e,"ArrowFunctionExpression")},te.isStrictBody=function(e,t){if(!t&&e.body.directives.length)for(var r=e.body.directives,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if("use strict"===a.value.value)return!0}return!1},te.parseFunctionBody=function(e,t){var r=t&&!this.match(R.braceL),n=this.state.inAsync;if(this.state.inAsync=e.async,r)e.body=this.parseMaybeAssign(),e.expression=!0;else{var i=this.state.inFunction,s=this.state.inGenerator,a=this.state.labels;this.state.inFunction=!0,this.state.inGenerator=e.generator,this.state.labels=[],e.body=this.parseBlock(!0),e.expression=!1,this.state.inFunction=i,this.state.inGenerator=s,this.state.labels=a}this.state.inAsync=n;var o=this.isStrictBody(e,r),u=this.state.strict||t||o;if(o&&e.id&&"Identifier"===e.id.type&&"yield"===e.id.name&&this.raise(e.id.start,"Binding yield in strict mode"),u){var l=Object.create(null),c=this.state.strict;o&&(this.state.strict=!0),e.id&&this.checkLVal(e.id,!0,void 0,"function name");for(var f=e.params,p=Array.isArray(f),d=0,f=p?f:f[Symbol.iterator]();;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h;o&&"Identifier"!==m.type&&this.raise(m.start,"Non-simple parameter in strict mode"),this.checkLVal(m,!0,l,"function parameter list")}this.state.strict=c}},te.parseExprList=function(e,t,r){for(var n=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(R.comma),this.eat(e))break;n.push(this.parseExprListItem(t,r))}return n},te.parseExprListItem=function(e,t,r){return e&&this.match(R.comma)?null:this.match(R.ellipsis)?this.parseSpread(t):this.parseMaybeAssign(!1,t,this.parseParenItem,r)},te.parseIdentifier=function(e){var t=this.startNode();return e||this.checkReservedWord(this.state.value,this.state.start,!!this.state.type.keyword,!1),this.match(R.name)?t.name=this.state.value:this.state.type.keyword?t.name=this.state.type.keyword:this.unexpected(),!e&&"await"===t.name&&this.state.inAsync&&this.raise(t.start,"invalid use of await inside of an async function"),t.loc.identifierName=t.name,this.next(),this.finishNode(t,"Identifier")},te.checkReservedWord=function(e,t,r,n){(this.isReservedWord(e)||r&&this.isKeyword(e))&&this.raise(t,e+" is a reserved word"),this.state.strict&&(v.strict(e)||n&&v.strictBind(e))&&this.raise(t,e+" is a reserved word in strict mode")},te.parseAwait=function(e){return this.state.inAsync||this.unexpected(),this.match(R.star)&&this.raise(e.start,"await* has been removed from the async functions proposal. Use Promise.all() instead."),e.argument=this.parseMaybeUnary(),this.finishNode(e,"AwaitExpression")},te.parseYield=function(){var e=this.startNode();return this.next(),this.match(R.semi)||this.canInsertSemicolon()||!this.match(R.star)&&!this.state.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(R.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")};var re=J.prototype,ne=["leadingComments","trailingComments","innerComments"],ie=function(){function e(t,r,n){w(this,e),this.type="",this.start=t,this.end=0,this.loc=new G(r),n&&(this.loc.filename=n)}return e.prototype.__clone=function(){var t=new e;for(var r in this)ne.indexOf(r)<0&&(t[r]=this[r]);return t},e}();re.startNode=function(){return new ie(this.state.start,this.state.startLoc,this.filename)},re.startNodeAt=function(e,t){return new ie(e,t,this.filename)},re.finishNode=function(e,t){return c.call(this,e,t,this.state.lastTokEnd,this.state.lastTokEndLoc)},re.finishNodeAt=function(e,t,r,n){return c.call(this,e,t,r,n)},J.prototype.raise=function(e,t){var r=u(this.input,e);t+=" ("+r.line+":"+r.column+")";var n=new SyntaxError(t);throw n.pos=e,n.loc=r,n};var se=J.prototype;se.addComment=function(e){this.filename&&(e.loc.filename=this.filename),this.state.trailingComments.push(e),this.state.leadingComments.push(e)},se.processComment=function(e){if(!("Program"===e.type&&e.body.length>0)){var t=this.state.commentStack,r=void 0,n=void 0,i=void 0,s=void 0,a=void 0;if(this.state.trailingComments.length>0)this.state.trailingComments[0].start>=e.end?(i=this.state.trailingComments,this.state.trailingComments=[]):this.state.trailingComments.length=0;else{var o=f(t);t.length>0&&o.trailingComments&&o.trailingComments[0].start>=e.end&&(i=o.trailingComments,o.trailingComments=null)}for(t.length>0&&f(t).start>=e.start&&(r=t.pop());t.length>0&&f(t).start>=e.start;)n=t.pop();if(!n&&r&&(n=r),r&&this.state.leadingComments.length>0){var u=f(this.state.leadingComments);if("ObjectProperty"===r.type){if(u.start>=e.start&&this.state.commentPreviousNode){for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(r.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}else if("CallExpression"===e.type&&e.arguments&&e.arguments.length){var l=f(e.arguments);l&&u.start>=l.start&&u.end<=e.end&&this.state.commentPreviousNode&&this.state.leadingComments.length>0&&(l.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}if(n){if(n.leadingComments)if(n!==e&&f(n.leadingComments).end<=e.start)e.leadingComments=n.leadingComments,n.leadingComments=null;else for(s=n.leadingComments.length-2;s>=0;--s)if(n.leadingComments[s].end<=e.start){e.leadingComments=n.leadingComments.splice(0,s+1);break}}else if(this.state.leadingComments.length>0)if(f(this.state.leadingComments).end<=e.start){if(this.state.commentPreviousNode)for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(s=0;s<this.state.leadingComments.length&&!(this.state.leadingComments[s].end>e.start);s++);e.leadingComments=this.state.leadingComments.slice(0,s),0===e.leadingComments.length&&(e.leadingComments=null),i=this.state.leadingComments.slice(s),0===i.length&&(i=null)}this.state.commentPreviousNode=e,i&&(i.length&&i[0].start>=e.start&&f(i).end<=e.end?e.innerComments=i:e.trailingComments=i),t.push(e)}};var ae=J.prototype;ae.estreeParseRegExpLiteral=function(e){var t=e.pattern,r=e.flags,n=null;try{n=new RegExp(t,r)}catch(e){}var i=this.estreeParseLiteral(n);return i.regex={pattern:t,flags:r},i},ae.estreeParseLiteral=function(e){return this.parseLiteral(e,"Literal")},ae.directiveToStmt=function(e){var t=e.value,r=this.startNodeAt(e.start,e.loc.start),n=this.startNodeAt(t.start,t.loc.start);return n.value=t.value,n.raw=t.extra.raw,r.expression=this.finishNodeAt(n,"Literal",t.end,t.loc.end),r.directive=t.extra.raw.slice(1,-1),this.finishNodeAt(r,"ExpressionStatement",e.end,e.loc.end)};var oe=function(e){e.extend("checkDeclaration",function(e){return function(t){p(t)?this.checkDeclaration(t.value):e.call(this,t)}}),e.extend("checkGetterSetterParamCount",function(){return function(e){var t="get"===e.kind?0:1;if(e.value.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}}}),e.extend("checkLVal",function(e){return function(t,r,n){var i=this;switch(t.type){case"ObjectPattern":t.properties.forEach(function(e){i.checkLVal("Property"===e.type?e.value:e,r,n,"object destructuring pattern")});break;default:for(var s=arguments.length,a=Array(s>3?s-3:0),o=3;o<s;o++)a[o-3]=arguments[o];e.call.apply(e,[this,t,r,n].concat(a))}}}),e.extend("checkPropClash",function(){return function(e,t){if(!e.computed&&p(e)){var r=e.key;"__proto__"===("Identifier"===r.type?r.name:String(r.value))&&(t.proto&&this.raise(r.start,"Redefinition of __proto__ property"),t.proto=!0)}}}),e.extend("isStrictBody",function(){return function(e,t){if(!t&&e.body.body.length>0)for(var r=e.body.body,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if("ExpressionStatement"!==a.type||"Literal"!==a.expression.type)break;if("use strict"===a.expression.value)return!0}return!1}}),e.extend("isValidDirective",function(){return function(e){return!("ExpressionStatement"!==e.type||"Literal"!==e.expression.type||"string"!=typeof e.expression.value||e.expression.extra&&e.expression.extra.parenthesized)}}),e.extend("stmtToDirective",function(e){return function(t){var r=e.call(this,t),n=t.expression.value;return r.value.value=n,r}}),e.extend("parseBlockBody",function(e){return function(t){for(var r=this,n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];e.call.apply(e,[this,t].concat(i)),t.directives.reverse().forEach(function(e){t.body.unshift(r.directiveToStmt(e))}),delete t.directives}}),e.extend("parseClassMethod",function(){return function(e,t,r,n){this.parseMethod(t,r,n),t.typeParameters&&(t.value.typeParameters=t.typeParameters,delete t.typeParameters),e.body.push(this.finishNode(t,"MethodDefinition"))}}),e.extend("parseExprAtom",function(e){return function(){switch(this.state.type){case R.regexp:return this.estreeParseRegExpLiteral(this.state.value);case R.num:case R.string:return this.estreeParseLiteral(this.state.value);case R._null:return this.estreeParseLiteral(null);case R._true:return this.estreeParseLiteral(!0);case R._false:return this.estreeParseLiteral(!1);default:for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.call.apply(e,[this].concat(r))}}}),e.extend("parseLiteral",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i.raw=i.extra.raw,delete i.extra,i}}),e.extend("parseMethod",function(e){return function(t){var r=this.startNode();r.kind=t.kind;for(var n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];return r=e.call.apply(e,[this,r].concat(i)),delete r.kind,t.value=this.finishNode(r,"FunctionExpression"),t}}),e.extend("parseObjectMethod",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&("method"===i.kind&&(i.kind="init"),i.type="Property"),i}}),e.extend("parseObjectProperty",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&(i.kind="init",i.type="Property"),i}}),e.extend("toAssignable",function(e){return function(t,r){for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];if(p(t))return this.toAssignable.apply(this,[t.value,r].concat(i)),t;if("ObjectExpression"===t.type){t.type="ObjectPattern";for(var a=t.properties,o=Array.isArray(a),u=0,a=o?a:a[Symbol.iterator]();;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;"get"===c.kind||"set"===c.kind?this.raise(c.key.start,"Object pattern can't contain getter or setter"):c.method?this.raise(c.key.start,"Object pattern can't contain methods"):this.toAssignable(c,r,"object destructuring pattern")}return t}return e.call.apply(e,[this,t,r].concat(i))}})},ue=["any","mixed","empty","bool","boolean","number","string","void","null"],le=J.prototype;le.flowParseTypeInitialiser=function(e){var t=this.state.inType;this.state.inType=!0,this.expect(e||R.colon);var r=this.flowParseType();return this.state.inType=t,r},le.flowParsePredicate=function(){var e=this.startNode(),t=this.state.startLoc,r=this.state.start;this.expect(R.modulo);var n=this.state.startLoc;return this.expectContextual("checks"),t.line===n.line&&t.column===n.column-1||this.raise(r,"Spaces between ´%´ and ´checks´ are not allowed here."),this.eat(R.parenL)?(e.expression=this.parseExpression(),this.expect(R.parenR),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")},le.flowParseTypeAndPredicateInitialiser=function(){var e=this.state.inType;this.state.inType=!0,this.expect(R.colon);var t=null,r=null;return this.match(R.modulo)?(this.state.inType=e,r=this.flowParsePredicate()):(t=this.flowParseType(),this.state.inType=e,this.match(R.modulo)&&(r=this.flowParsePredicate())),[t,r]},le.flowParseDeclareClass=function(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")},le.flowParseDeclareFunction=function(e){this.next();var t=e.id=this.parseIdentifier(),r=this.startNode(),n=this.startNode();this.isRelational("<")?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(R.parenL);var i=this.flowParseFunctionTypeParams();r.params=i.params,r.rest=i.rest,this.expect(R.parenR);var s=null,a=this.flowParseTypeAndPredicateInitialiser();return r.returnType=a[0],s=a[1],n.typeAnnotation=this.finishNode(r,"FunctionTypeAnnotation"),n.predicate=s,t.typeAnnotation=this.finishNode(n,"TypeAnnotation"),this.finishNode(t,t.type),this.semicolon(),this.finishNode(e,"DeclareFunction")},le.flowParseDeclare=function(e){return this.match(R._class)?this.flowParseDeclareClass(e):this.match(R._function)?this.flowParseDeclareFunction(e):this.match(R._var)?this.flowParseDeclareVariable(e):this.isContextual("module")?this.lookahead().type===R.dot?this.flowParseDeclareModuleExports(e):this.flowParseDeclareModule(e):this.isContextual("type")?this.flowParseDeclareTypeAlias(e):this.isContextual("opaque")?this.flowParseDeclareOpaqueType(e):this.isContextual("interface")?this.flowParseDeclareInterface(e):this.match(R._export)?this.flowParseDeclareExportDeclaration(e):void this.unexpected()},le.flowParseDeclareExportDeclaration=function(e){if(this.expect(R._export),this.isContextual("opaque"))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");throw this.unexpected()},le.flowParseDeclareVariable=function(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(),this.semicolon(),this.finishNode(e,"DeclareVariable")},le.flowParseDeclareModule=function(e){this.next(),this.match(R.string)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();var t=e.body=this.startNode(),r=t.body=[];for(this.expect(R.braceL);!this.match(R.braceR);){var n=this.startNode();if(this.match(R._import)){var i=this.lookahead();"type"!==i.value&&"typeof"!==i.value&&this.unexpected(null,"Imports within a `declare module` body must always be `import type` or `import typeof`"),this.parseImport(n)}else this.expectContextual("declare","Only declares and type imports are allowed inside declare module"),n=this.flowParseDeclare(n,!0);r.push(n)}return this.expect(R.braceR),this.finishNode(t,"BlockStatement"),this.finishNode(e,"DeclareModule")},le.flowParseDeclareModuleExports=function(e){return this.expectContextual("module"),this.expect(R.dot),this.expectContextual("exports"),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")},le.flowParseDeclareTypeAlias=function(e){return this.next(),this.flowParseTypeAlias(e),this.finishNode(e,"DeclareTypeAlias")},le.flowParseDeclareOpaqueType=function(e){return this.next(),this.flowParseOpaqueType(e,!0),this.finishNode(e,"DeclareOpaqueType")},le.flowParseDeclareInterface=function(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")},le.flowParseInterfaceish=function(e){if(e.id=this.parseIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.mixins=[],this.eat(R._extends))do{e.extends.push(this.flowParseInterfaceExtends())}while(this.eat(R.comma));if(this.isContextual("mixins")){this.next();do{e.mixins.push(this.flowParseInterfaceExtends())}while(this.eat(R.comma))}e.body=this.flowParseObjectType(!0,!1,!1)},le.flowParseInterfaceExtends=function(){var e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")},le.flowParseInterface=function(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,"InterfaceDeclaration")},le.flowParseRestrictedIdentifier=function(e){return ue.indexOf(this.state.value)>-1&&this.raise(this.state.start,"Cannot overwrite primitive type "+this.state.value),this.parseIdentifier(e)},le.flowParseTypeAlias=function(e){return e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(R.eq),this.semicolon(),this.finishNode(e,"TypeAlias")},le.flowParseOpaqueType=function(e,t){return this.expectContextual("type"),e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(R.colon)&&(e.supertype=this.flowParseTypeInitialiser(R.colon)),e.impltype=null,t||(e.impltype=this.flowParseTypeInitialiser(R.eq)),this.semicolon(),this.finishNode(e,"OpaqueType")},le.flowParseTypeParameter=function(){var e=this.startNode(),t=this.flowParseVariance(),r=this.flowParseTypeAnnotatableIdentifier();return e.name=r.name,e.variance=t,e.bound=r.typeAnnotation,this.match(R.eq)&&(this.eat(R.eq),e.default=this.flowParseType()),this.finishNode(e,"TypeParameter")},le.flowParseTypeParameterDeclaration=function(){var e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.isRelational("<")||this.match(R.jsxTagStart)?this.next():this.unexpected();do{t.params.push(this.flowParseTypeParameter()),this.isRelational(">")||this.expect(R.comma)}while(!this.isRelational(">"));return this.expectRelational(">"),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")},le.flowParseTypeParameterInstantiation=function(){var e=this.startNode(),t=this.state.inType;for(e.params=[],this.state.inType=!0,this.expectRelational("<");!this.isRelational(">");)e.params.push(this.flowParseType()),this.isRelational(">")||this.expect(R.comma);return this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")},le.flowParseObjectPropertyKey=function(){return this.match(R.num)||this.match(R.string)?this.parseExprAtom():this.parseIdentifier(!0)},le.flowParseObjectTypeIndexer=function(e,t,r){return e.static=t,this.expect(R.bracketL),this.lookahead().type===R.colon?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(R.bracketR),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeIndexer")},le.flowParseObjectTypeMethodish=function(e){for(e.params=[],e.rest=null,e.typeParameters=null,this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(R.parenL);!this.match(R.parenR)&&!this.match(R.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(R.parenR)||this.expect(R.comma);return this.eat(R.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),this.expect(R.parenR),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")},le.flowParseObjectTypeMethod=function(e,t,r,n){var i=this.startNodeAt(e,t);return i.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e,t)),i.static=r,i.key=n,i.optional=!1,this.flowObjectTypeSemicolon(),this.finishNode(i,"ObjectTypeProperty")},le.flowParseObjectTypeCallProperty=function(e,t){var r=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(r),this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeCallProperty")},le.flowParseObjectType=function(e,t,r){var n=this.state.inType;this.state.inType=!0;var i=this.startNode(),s=void 0,a=void 0,o=!1;i.callProperties=[],i.properties=[],i.indexers=[];var u=void 0,l=void 0;for(t&&this.match(R.braceBarL)?(this.expect(R.braceBarL),u=R.braceBarR,l=!0):(this.expect(R.braceL),u=R.braceR,l=!1),i.exact=l;!this.match(u);){var c=!1,f=this.state.start,p=this.state.startLoc;s=this.startNode(),e&&this.isContextual("static")&&this.lookahead().type!==R.colon&&(this.next(),o=!0);var d=this.state.start,h=this.flowParseVariance();this.match(R.bracketL)?i.indexers.push(this.flowParseObjectTypeIndexer(s,o,h)):this.match(R.parenL)||this.isRelational("<")?(h&&this.unexpected(d),i.callProperties.push(this.flowParseObjectTypeCallProperty(s,o))):this.match(R.ellipsis)?(r||this.unexpected(null,"Spread operator cannot appear in class or interface definitions"),h&&this.unexpected(h.start,"Spread properties cannot have variance"),this.expect(R.ellipsis),s.argument=this.flowParseType(),this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeSpreadProperty"))):(a=this.flowParseObjectPropertyKey(),this.isRelational("<")||this.match(R.parenL)?(h&&this.unexpected(h.start),i.properties.push(this.flowParseObjectTypeMethod(f,p,o,a))):(this.eat(R.question)&&(c=!0),s.key=a,s.value=this.flowParseTypeInitialiser(),s.optional=c,s.static=o,s.variance=h,this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeProperty")))),o=!1}this.expect(u);var m=this.finishNode(i,"ObjectTypeAnnotation");return this.state.inType=n,m},le.flowObjectTypeSemicolon=function(){this.eat(R.semi)||this.eat(R.comma)||this.match(R.braceR)||this.match(R.braceBarR)||this.unexpected()},le.flowParseQualifiedTypeIdentifier=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;for(var n=r||this.parseIdentifier();this.eat(R.dot);){var i=this.startNodeAt(e,t);i.qualification=n,i.id=this.parseIdentifier(),n=this.finishNode(i,"QualifiedTypeIdentifier")}return n},le.flowParseGenericType=function(e,t,r){var n=this.startNodeAt(e,t);return n.typeParameters=null,n.id=this.flowParseQualifiedTypeIdentifier(e,t,r),this.isRelational("<")&&(n.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(n,"GenericTypeAnnotation")},le.flowParseTypeofType=function(){var e=this.startNode();return this.expect(R._typeof),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")},le.flowParseTupleType=function(){var e=this.startNode();for(e.types=[],this.expect(R.bracketL);this.state.pos<this.input.length&&!this.match(R.bracketR)&&(e.types.push(this.flowParseType()),!this.match(R.bracketR));)this.expect(R.comma);return this.expect(R.bracketR),this.finishNode(e,"TupleTypeAnnotation")},le.flowParseFunctionTypeParam=function(){var e=null,t=!1,r=null,n=this.startNode(),i=this.lookahead();return i.type===R.colon||i.type===R.question?(e=this.parseIdentifier(),this.eat(R.question)&&(t=!0),r=this.flowParseTypeInitialiser()):r=this.flowParseType(),n.name=e,n.optional=t,n.typeAnnotation=r,this.finishNode(n,"FunctionTypeParam")},le.reinterpretTypeAsFunctionTypeParam=function(e){var t=this.startNodeAt(e.start,e.loc.start);return t.name=null,t.optional=!1,t.typeAnnotation=e,this.finishNode(t,"FunctionTypeParam")},le.flowParseFunctionTypeParams=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t={params:e,rest:null};!this.match(R.parenR)&&!this.match(R.ellipsis);)t.params.push(this.flowParseFunctionTypeParam()),this.match(R.parenR)||this.expect(R.comma);return this.eat(R.ellipsis)&&(t.rest=this.flowParseFunctionTypeParam()),t},le.flowIdentToTypeAnnotation=function(e,t,r,n){switch(n.name){case"any":return this.finishNode(r,"AnyTypeAnnotation");case"void":return this.finishNode(r,"VoidTypeAnnotation");case"bool":case"boolean":return this.finishNode(r,"BooleanTypeAnnotation");case"mixed":return this.finishNode(r,"MixedTypeAnnotation");case"empty":return this.finishNode(r,"EmptyTypeAnnotation");case"number":return this.finishNode(r,"NumberTypeAnnotation");case"string":return this.finishNode(r,"StringTypeAnnotation");default:return this.flowParseGenericType(e,t,n)}},le.flowParsePrimaryType=function(){var e=this.state.start,t=this.state.startLoc,r=this.startNode(),n=void 0,i=void 0,s=!1,a=this.state.noAnonFunctionType;switch(this.state.type){case R.name:return this.flowIdentToTypeAnnotation(e,t,r,this.parseIdentifier());case R.braceL:return this.flowParseObjectType(!1,!1,!0);case R.braceBarL:return this.flowParseObjectType(!1,!0,!0);case R.bracketL:return this.flowParseTupleType();case R.relational:if("<"===this.state.value)return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(R.parenL),n=this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(R.parenR),this.expect(R.arrow),r.returnType=this.flowParseType(),this.finishNode(r,"FunctionTypeAnnotation");break;case R.parenL:if(this.next(),!this.match(R.parenR)&&!this.match(R.ellipsis))if(this.match(R.name)){var o=this.lookahead().type;s=o!==R.question&&o!==R.colon}else s=!0;if(s){if(this.state.noAnonFunctionType=!1,i=this.flowParseType(),this.state.noAnonFunctionType=a,this.state.noAnonFunctionType||!(this.match(R.comma)||this.match(R.parenR)&&this.lookahead().type===R.arrow))return this.expect(R.parenR),i;this.eat(R.comma)}return n=i?this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(i)]):this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(R.parenR),this.expect(R.arrow),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,"FunctionTypeAnnotation");case R.string:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case R._true:case R._false:return r.value=this.match(R._true),this.next(),this.finishNode(r,"BooleanLiteralTypeAnnotation");case R.plusMin:if("-"===this.state.value)return this.next(),
this.match(R.num)||this.unexpected(null,"Unexpected token, expected number"),this.parseLiteral(-this.state.value,"NumericLiteralTypeAnnotation",r.start,r.loc.start);this.unexpected();case R.num:return this.parseLiteral(this.state.value,"NumericLiteralTypeAnnotation");case R._null:return r.value=this.match(R._null),this.next(),this.finishNode(r,"NullLiteralTypeAnnotation");case R._this:return r.value=this.match(R._this),this.next(),this.finishNode(r,"ThisTypeAnnotation");case R.star:return this.next(),this.finishNode(r,"ExistentialTypeParam");default:if("typeof"===this.state.type.keyword)return this.flowParseTypeofType()}this.unexpected()},le.flowParsePostfixType=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.flowParsePrimaryType();!this.canInsertSemicolon()&&this.match(R.bracketL);){var n=this.startNodeAt(e,t);n.elementType=r,this.expect(R.bracketL),this.expect(R.bracketR),r=this.finishNode(n,"ArrayTypeAnnotation")}return r},le.flowParsePrefixType=function(){var e=this.startNode();return this.eat(R.question)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()},le.flowParseAnonFunctionWithoutParens=function(){var e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(R.arrow)){var t=this.startNodeAt(e.start,e.loc.start);return t.params=[this.reinterpretTypeAsFunctionTypeParam(e)],t.rest=null,t.returnType=this.flowParseType(),t.typeParameters=null,this.finishNode(t,"FunctionTypeAnnotation")}return e},le.flowParseIntersectionType=function(){var e=this.startNode();this.eat(R.bitwiseAND);var t=this.flowParseAnonFunctionWithoutParens();for(e.types=[t];this.eat(R.bitwiseAND);)e.types.push(this.flowParseAnonFunctionWithoutParens());return 1===e.types.length?t:this.finishNode(e,"IntersectionTypeAnnotation")},le.flowParseUnionType=function(){var e=this.startNode();this.eat(R.bitwiseOR);var t=this.flowParseIntersectionType();for(e.types=[t];this.eat(R.bitwiseOR);)e.types.push(this.flowParseIntersectionType());return 1===e.types.length?t:this.finishNode(e,"UnionTypeAnnotation")},le.flowParseType=function(){var e=this.state.inType;this.state.inType=!0;var t=this.flowParseUnionType();return this.state.inType=e,t},le.flowParseTypeAnnotation=function(){var e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")},le.flowParseTypeAndPredicateAnnotation=function(){var e=this.startNode(),t=this.flowParseTypeAndPredicateInitialiser();return e.typeAnnotation=t[0],e.predicate=t[1],this.finishNode(e,"TypeAnnotation")},le.flowParseTypeAnnotatableIdentifier=function(){var e=this.flowParseRestrictedIdentifier();return this.match(R.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(e,e.type)),e},le.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.finishNodeAt(e.expression,e.expression.type,e.typeAnnotation.end,e.typeAnnotation.loc.end)},le.flowParseVariance=function(){var e=null;return this.match(R.plusMin)&&("+"===this.state.value?e="plus":"-"===this.state.value&&(e="minus"),this.next()),e};var ce=function(e){e.extend("parseFunctionBody",function(e){return function(t,r){return this.match(R.colon)&&!r&&(t.returnType=this.flowParseTypeAndPredicateAnnotation()),e.call(this,t,r)}}),e.extend("parseStatement",function(e){return function(t,r){if(this.state.strict&&this.match(R.name)&&"interface"===this.state.value){var n=this.startNode();return this.next(),this.flowParseInterface(n)}return e.call(this,t,r)}}),e.extend("parseExpressionStatement",function(e){return function(t,r){if("Identifier"===r.type)if("declare"===r.name){if(this.match(R._class)||this.match(R.name)||this.match(R._function)||this.match(R._var)||this.match(R._export))return this.flowParseDeclare(t)}else if(this.match(R.name)){if("interface"===r.name)return this.flowParseInterface(t);if("type"===r.name)return this.flowParseTypeAlias(t);if("opaque"===r.name)return this.flowParseOpaqueType(t,!1)}return e.call(this,t,r)}}),e.extend("shouldParseExportDeclaration",function(e){return function(){return this.isContextual("type")||this.isContextual("interface")||this.isContextual("opaque")||e.call(this)}}),e.extend("isExportDefaultSpecifier",function(e){return function(){return(!this.match(R.name)||"type"!==this.state.value&&"interface"!==this.state.value&&"opaque"!==this.state.value)&&e.call(this)}}),e.extend("parseConditional",function(e){return function(t,r,n,i,s){if(s&&this.match(R.question)){var a=this.state.clone();try{return e.call(this,t,r,n,i)}catch(e){if(e instanceof SyntaxError)return this.state=a,s.start=e.pos||this.state.start,t;throw e}}return e.call(this,t,r,n,i)}}),e.extend("parseParenItem",function(e){return function(t,r,n){if(t=e.call(this,t,r,n),this.eat(R.question)&&(t.optional=!0),this.match(R.colon)){var i=this.startNodeAt(r,n);return i.expression=t,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,"TypeCastExpression")}return t}}),e.extend("parseExport",function(e){return function(t){return t=e.call(this,t),"ExportNamedDeclaration"===t.type&&(t.exportKind=t.exportKind||"value"),t}}),e.extend("parseExportDeclaration",function(e){return function(t){if(this.isContextual("type")){t.exportKind="type";var r=this.startNode();return this.next(),this.match(R.braceL)?(t.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(t),null):this.flowParseTypeAlias(r)}if(this.isContextual("opaque")){t.exportKind="type";var n=this.startNode();return this.next(),this.flowParseOpaqueType(n,!1)}if(this.isContextual("interface")){t.exportKind="type";var i=this.startNode();return this.next(),this.flowParseInterface(i)}return e.call(this,t)}}),e.extend("parseClassId",function(e){return function(t){e.apply(this,arguments),this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration())}}),e.extend("isKeyword",function(e){return function(t){return(!this.state.inType||"void"!==t)&&e.call(this,t)}}),e.extend("readToken",function(e){return function(t){return!this.state.inType||62!==t&&60!==t?e.call(this,t):this.finishOp(R.relational,1)}}),e.extend("jsx_readToken",function(e){return function(){if(!this.state.inType)return e.call(this)}}),e.extend("toAssignable",function(e){return function(t,r,n){return"TypeCastExpression"===t.type?e.call(this,this.typeCastToParameter(t),r,n):e.call(this,t,r,n)}}),e.extend("toAssignableList",function(e){return function(t,r,n){for(var i=0;i<t.length;i++){var s=t[i];s&&"TypeCastExpression"===s.type&&(t[i]=this.typeCastToParameter(s))}return e.call(this,t,r,n)}}),e.extend("toReferencedList",function(){return function(e){for(var t=0;t<e.length;t++){var r=e[t];r&&r._exprListItem&&"TypeCastExpression"===r.type&&this.raise(r.start,"Unexpected type cast")}return e}}),e.extend("parseExprListItem",function(e){return function(){for(var t=this.startNode(),r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];var s=e.call.apply(e,[this].concat(n));return this.match(R.colon)?(t._exprListItem=!0,t.expression=s,t.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t,"TypeCastExpression")):s}}),e.extend("checkLVal",function(e){return function(t){if("TypeCastExpression"!==t.type)return e.apply(this,arguments)}}),e.extend("parseClassProperty",function(e){return function(t){return delete t.variancePos,this.match(R.colon)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),e.call(this,t)}}),e.extend("isClassMethod",function(e){return function(){return this.isRelational("<")||e.call(this)}}),e.extend("isClassProperty",function(e){return function(){return this.match(R.colon)||e.call(this)}}),e.extend("isNonstaticConstructor",function(e){return function(t){return!this.match(R.colon)&&e.call(this,t)}}),e.extend("parseClassMethod",function(e){return function(t,r){r.variance&&this.unexpected(r.variancePos),delete r.variance,delete r.variancePos,this.isRelational("<")&&(r.typeParameters=this.flowParseTypeParameterDeclaration());for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];e.call.apply(e,[this,t,r].concat(i))}}),e.extend("parseClassSuper",function(e){return function(t,r){if(e.call(this,t,r),t.superClass&&this.isRelational("<")&&(t.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual("implements")){this.next();var n=t.implements=[];do{var i=this.startNode();i.id=this.parseIdentifier(),this.isRelational("<")?i.typeParameters=this.flowParseTypeParameterInstantiation():i.typeParameters=null,n.push(this.finishNode(i,"ClassImplements"))}while(this.eat(R.comma))}}}),e.extend("parsePropertyName",function(e){return function(t){var r=this.state.start,n=this.flowParseVariance(),i=e.call(this,t);return t.variance=n,t.variancePos=r,i}}),e.extend("parseObjPropValue",function(e){return function(t){t.variance&&this.unexpected(t.variancePos),delete t.variance,delete t.variancePos;var r=void 0;this.isRelational("<")&&(r=this.flowParseTypeParameterDeclaration(),this.match(R.parenL)||this.unexpected()),e.apply(this,arguments),r&&((t.value||t).typeParameters=r)}}),e.extend("parseAssignableListItemTypes",function(){return function(e){return this.eat(R.question)&&(e.optional=!0),this.match(R.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),this.finishNode(e,e.type),e}}),e.extend("parseMaybeDefault",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.apply(this,r);return"AssignmentPattern"===i.type&&i.typeAnnotation&&i.right.start<i.typeAnnotation.start&&this.raise(i.typeAnnotation.start,"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`"),i}}),e.extend("parseImportSpecifiers",function(e){return function(t){t.importKind="value";var r=null;if(this.match(R._typeof)?r="typeof":this.isContextual("type")&&(r="type"),r){var n=this.lookahead();(n.type===R.name&&"from"!==n.value||n.type===R.braceL||n.type===R.star)&&(this.next(),t.importKind=r)}e.call(this,t)}}),e.extend("parseImportSpecifier",function(){return function(e){var t=this.startNode(),r=this.state.start,n=this.parseIdentifier(!0),i=null;"type"===n.name?i="type":"typeof"===n.name&&(i="typeof");var s=!1;if(this.isContextual("as")){var a=this.parseIdentifier(!0);null===i||this.match(R.name)||this.state.type.keyword?(t.imported=n,t.importKind=null,t.local=this.parseIdentifier()):(t.imported=a,t.importKind=i,t.local=a.__clone())}else null!==i&&(this.match(R.name)||this.state.type.keyword)?(t.imported=this.parseIdentifier(!0),t.importKind=i,this.eatContextual("as")?t.local=this.parseIdentifier():(s=!0,t.local=t.imported.__clone())):(s=!0,t.imported=n,t.importKind=null,t.local=t.imported.__clone());"type"!==e.importKind&&"typeof"!==e.importKind||"type"!==t.importKind&&"typeof"!==t.importKind||this.raise(r,"`The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements`"),s&&this.checkReservedWord(t.local.name,t.start,!0,!0),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))}}),e.extend("parseFunctionParams",function(e){return function(t){this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),e.call(this,t)}}),e.extend("parseVarHead",function(e){return function(t){e.call(this,t),this.match(R.colon)&&(t.id.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t.id,t.id.type))}}),e.extend("parseAsyncArrowFromCallExpression",function(e){return function(t,r){if(this.match(R.colon)){var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,t.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=n}return e.call(this,t,r)}}),e.extend("shouldParseAsyncArrow",function(e){return function(){return this.match(R.colon)||e.call(this)}}),e.extend("parseMaybeAssign",function(e){return function(){for(var t=null,r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];if(R.jsxTagStart&&this.match(R.jsxTagStart)){var s=this.state.clone();try{return e.apply(this,n)}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=s,this.state.context.length-=2,t=e}}if(null!=t||this.isRelational("<")){var a=void 0,o=void 0;try{o=this.flowParseTypeParameterDeclaration(),a=e.apply(this,n),a.typeParameters=o,a.start=o.start,a.loc.start=o.loc.start}catch(e){throw t||e}if("ArrowFunctionExpression"===a.type)return a;if(null!=t)throw t;this.raise(o.start,"Expected an arrow function after this type parameter declaration")}return e.apply(this,n)}}),e.extend("parseArrow",function(e){return function(t){if(this.match(R.colon)){var r=this.state.clone();try{var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;var i=this.flowParseTypeAndPredicateAnnotation();this.state.noAnonFunctionType=n,this.canInsertSemicolon()&&this.unexpected(),this.match(R.arrow)||this.unexpected(),t.returnType=i}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=r}}return e.call(this,t)}}),e.extend("shouldParseArrow",function(e){return function(){return this.match(R.colon)||e.call(this)}})},fe=String.fromCodePoint;if(!fe){var pe=String.fromCharCode,de=Math.floor;fe=function(){var e=[],t=void 0,r=void 0,n=-1,i=arguments.length;if(!i)return"";for(var s="";++n<i;){var a=Number(arguments[n]);if(!isFinite(a)||a<0||a>1114111||de(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?e.push(a):(a-=65536,t=55296+(a>>10),r=a%1024+56320,e.push(t,r)),(n+1==i||e.length>16384)&&(s+=pe.apply(null,e),e.length=0)}return s}}var he=fe,me={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},ye=/^[\da-fA-F]+$/,ve=/^\d+$/;U.j_oTag=new j("<tag",!1),U.j_cTag=new j("</tag",!1),U.j_expr=new j("<tag>...</tag>",!0,!0),R.jsxName=new T("jsxName"),R.jsxText=new T("jsxText",{beforeExpr:!0}),R.jsxTagStart=new T("jsxTagStart",{startsExpr:!0}),R.jsxTagEnd=new T("jsxTagEnd"),R.jsxTagStart.updateContext=function(){this.state.context.push(U.j_expr),this.state.context.push(U.j_oTag),this.state.exprAllowed=!1},R.jsxTagEnd.updateContext=function(e){var t=this.state.context.pop();t===U.j_oTag&&e===R.slash||t===U.j_cTag?(this.state.context.pop(),this.state.exprAllowed=this.curContext()===U.j_expr):this.state.exprAllowed=!0};var ge=J.prototype;ge.jsxReadToken=function(){for(var e="",t=this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated JSX contents");var r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?60===r&&this.state.exprAllowed?(++this.state.pos,this.finishToken(R.jsxTagStart)):this.getTokenFromCode(r):(e+=this.input.slice(t,this.state.pos),this.finishToken(R.jsxText,e));case 38:e+=this.input.slice(t,this.state.pos),e+=this.jsxReadEntity(),t=this.state.pos;break;default:o(r)?(e+=this.input.slice(t,this.state.pos),e+=this.jsxReadNewLine(!0),t=this.state.pos):++this.state.pos}}},ge.jsxReadNewLine=function(e){var t=this.input.charCodeAt(this.state.pos),r=void 0;return++this.state.pos,13===t&&10===this.input.charCodeAt(this.state.pos)?(++this.state.pos,r=e?"\n":"\r\n"):r=String.fromCharCode(t),++this.state.curLine,this.state.lineStart=this.state.pos,r},ge.jsxReadString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;38===n?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadEntity(),r=this.state.pos):o(n)?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return t+=this.input.slice(r,this.state.pos++),this.finishToken(R.string,t)},ge.jsxReadEntity=function(){for(var e="",t=0,r=void 0,n=this.input[this.state.pos],i=++this.state.pos;this.state.pos<this.input.length&&t++<10;){if(";"===(n=this.input[this.state.pos++])){"#"===e[0]?"x"===e[1]?(e=e.substr(2),ye.test(e)&&(r=he(parseInt(e,16)))):(e=e.substr(1),ve.test(e)&&(r=he(parseInt(e,10)))):r=me[e];break}e+=n}return r||(this.state.pos=i,"&")},ge.jsxReadWord=function(){var e=void 0,t=this.state.pos;do{e=this.input.charCodeAt(++this.state.pos)}while(s(e)||45===e);return this.finishToken(R.jsxName,this.input.slice(t,this.state.pos))},ge.jsxParseIdentifier=function(){var e=this.startNode();return this.match(R.jsxName)?e.name=this.state.value:this.state.type.keyword?e.name=this.state.type.keyword:this.unexpected(),this.next(),this.finishNode(e,"JSXIdentifier")},ge.jsxParseNamespacedName=function(){var e=this.state.start,t=this.state.startLoc,r=this.jsxParseIdentifier();if(!this.eat(R.colon))return r;var n=this.startNodeAt(e,t);return n.namespace=r,n.name=this.jsxParseIdentifier(),this.finishNode(n,"JSXNamespacedName")},ge.jsxParseElementName=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.jsxParseNamespacedName();this.eat(R.dot);){var n=this.startNodeAt(e,t);n.object=r,n.property=this.jsxParseIdentifier(),r=this.finishNode(n,"JSXMemberExpression")}return r},ge.jsxParseAttributeValue=function(){var e=void 0;switch(this.state.type){case R.braceL:if(e=this.jsxParseExpressionContainer(),"JSXEmptyExpression"!==e.expression.type)return e;this.raise(e.start,"JSX attributes must only be assigned a non-empty expression");case R.jsxTagStart:case R.string:return e=this.parseExprAtom(),e.extra=null,e;default:this.raise(this.state.start,"JSX value should be either an expression or a quoted JSX text")}},ge.jsxParseEmptyExpression=function(){var e=this.startNodeAt(this.state.lastTokEnd,this.state.lastTokEndLoc);return this.finishNodeAt(e,"JSXEmptyExpression",this.state.start,this.state.startLoc)},ge.jsxParseSpreadChild=function(){var e=this.startNode();return this.expect(R.braceL),this.expect(R.ellipsis),e.expression=this.parseExpression(),this.expect(R.braceR),this.finishNode(e,"JSXSpreadChild")},ge.jsxParseExpressionContainer=function(){var e=this.startNode();return this.next(),this.match(R.braceR)?e.expression=this.jsxParseEmptyExpression():e.expression=this.parseExpression(),this.expect(R.braceR),this.finishNode(e,"JSXExpressionContainer")},ge.jsxParseAttribute=function(){var e=this.startNode();return this.eat(R.braceL)?(this.expect(R.ellipsis),e.argument=this.parseMaybeAssign(),this.expect(R.braceR),this.finishNode(e,"JSXSpreadAttribute")):(e.name=this.jsxParseNamespacedName(),e.value=this.eat(R.eq)?this.jsxParseAttributeValue():null,this.finishNode(e,"JSXAttribute"))},ge.jsxParseOpeningElementAt=function(e,t){var r=this.startNodeAt(e,t);for(r.attributes=[],r.name=this.jsxParseElementName();!this.match(R.slash)&&!this.match(R.jsxTagEnd);)r.attributes.push(this.jsxParseAttribute());return r.selfClosing=this.eat(R.slash),this.expect(R.jsxTagEnd),this.finishNode(r,"JSXOpeningElement")},ge.jsxParseClosingElementAt=function(e,t){var r=this.startNodeAt(e,t);return r.name=this.jsxParseElementName(),this.expect(R.jsxTagEnd),this.finishNode(r,"JSXClosingElement")},ge.jsxParseElementAt=function(e,t){var r=this.startNodeAt(e,t),n=[],i=this.jsxParseOpeningElementAt(e,t),s=null;if(!i.selfClosing){e:for(;;)switch(this.state.type){case R.jsxTagStart:if(e=this.state.start,t=this.state.startLoc,this.next(),this.eat(R.slash)){s=this.jsxParseClosingElementAt(e,t);break e}n.push(this.jsxParseElementAt(e,t));break;case R.jsxText:n.push(this.parseExprAtom());break;case R.braceL:this.lookahead().type===R.ellipsis?n.push(this.jsxParseSpreadChild()):n.push(this.jsxParseExpressionContainer());break;default:this.unexpected()}d(s.name)!==d(i.name)&&this.raise(s.start,"Expected corresponding JSX closing tag for <"+d(i.name)+">")}return r.openingElement=i,r.closingElement=s,r.children=n,this.match(R.relational)&&"<"===this.state.value&&this.raise(this.state.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,"JSXElement")},ge.jsxParseElement=function(){var e=this.state.start,t=this.state.startLoc;return this.next(),this.jsxParseElementAt(e,t)};var be=function(e){e.extend("parseExprAtom",function(e){return function(t){if(this.match(R.jsxText)){var r=this.parseLiteral(this.state.value,"JSXText");return r.extra=null,r}return this.match(R.jsxTagStart)?this.jsxParseElement():e.call(this,t)}}),e.extend("readToken",function(e){return function(t){if(this.state.inPropertyName)return e.call(this,t);var r=this.curContext();if(r===U.j_expr)return this.jsxReadToken();if(r===U.j_oTag||r===U.j_cTag){if(i(t))return this.jsxReadWord();if(62===t)return++this.state.pos,this.finishToken(R.jsxTagEnd);if((34===t||39===t)&&r===U.j_oTag)return this.jsxReadString(t)}return 60===t&&this.state.exprAllowed?(++this.state.pos,this.finishToken(R.jsxTagStart)):e.call(this,t)}}),e.extend("updateContext",function(e){return function(t){if(this.match(R.braceL)){var r=this.curContext();r===U.j_oTag?this.state.context.push(U.braceExpression):r===U.j_expr?this.state.context.push(U.templateQuasi):e.call(this,t),this.state.exprAllowed=!0}else{if(!this.match(R.slash)||t!==R.jsxTagStart)return e.call(this,t);this.state.context.length-=2,this.state.context.push(U.j_cTag),this.state.exprAllowed=!1}}})};K.estree=oe,K.flow=ce,K.jsx=be,t.parse=h,t.parseExpression=m,t.tokTypes=R},function(e,t,r){"use strict";var n=r(21),i=r(431),s=r(141),a=r(150)("IE_PROTO"),o=function(){},u=function(){var e,t=r(230)("iframe"),n=s.length;for(t.style.display="none",r(426).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;n--;)delete u.prototype[s[n]];return u()};e.exports=Object.create||function(e,t){var r;return null!==e?(o.prototype=n(e),r=new o,o.prototype=null,r[a]=e):r=u(),void 0===t?r:i(r,t)}},function(e,t){"use strict";t.f={}.propertyIsEnumerable},function(e,t){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){"use strict";var n=r(23).f,i=r(28),s=r(13)("toStringTag");e.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,r){"use strict";var n=r(140);e.exports=function(e){return Object(n(e))}},function(e,t){"use strict";var r=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+n).toString(36))}},function(e,t){"use strict"},function(e,t,r){"use strict";!function(){t.ast=r(461),t.code=r(240),t.keyword=r(462)}()},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(546),s=r(547),a=r(548),o=r(549),u=r(550);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t,r){"use strict";function n(e){var t=this.__data__=new i(e);this.size=t.size}var i=r(98),s=r(565),a=r(566),o=r(567),u=r(568),l=r(569);n.prototype.clear=s,n.prototype.delete=a,n.prototype.get=o,n.prototype.has=u,n.prototype.set=l,e.exports=n},function(e,t,r){"use strict";function n(e,t){for(var r=e.length;r--;)if(i(e[r][0],t))return r;return-1}var i=r(46);e.exports=n},function(e,t,r){"use strict";function n(e,t){return a(s(e,t,i),e+"")}var i=r(110),s=r(560),a=r(563);e.exports=n},function(e,t){"use strict";function r(e){return function(t){return e(t)}}e.exports=r},function(e,t,r){"use strict";function n(e){return i(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,o&&s(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n<i;){var u=r[n];u&&e(t,u,n,a)}return t})}var i=r(101),s=r(172);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=e.__data__;return i(t)?r["string"==typeof t?"string":"hash"]:r.map}var i=r(544);e.exports=n},function(e,t){"use strict";function r(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}var n=Object.prototype;e.exports=r},function(e,t,r){"use strict";var n=r(38),i=n(Object,"create");e.exports=i},function(e,t){"use strict";function r(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}e.exports=r},function(e,t,r){"use strict";function n(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-s?"-0":t}var i=r(62),s=1/0;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,s)}var i=r(164),s=4;e.exports=n},function(e,t){"use strict";function r(e){return e}e.exports=r},function(e,t,r){"use strict";function n(e,t,r,n){e=s(e)?e:u(e),r=r&&!n?o(r):0;var c=e.length;return r<0&&(r=l(c+r,0)),a(e)?r<=c&&e.indexOf(t,r)>-1:!!c&&i(e,t,r)>-1}var i=r(166),s=r(24),a=r(587),o=r(48),u=r(280),l=Math.max;e.exports=n},function(e,t,r){"use strict";var n=r(493),i=r(25),s=Object.prototype,a=s.hasOwnProperty,o=s.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(e){return i(e)&&a.call(e,"callee")&&!o.call(e,"callee")};e.exports=u},function(e,t,r){(function(e){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(17),s=r(596),a="object"==n(t)&&t&&!t.nodeType&&t,o=a&&"object"==n(e)&&e&&!e.nodeType&&e,u=o&&o.exports===a,l=u?i.Buffer:void 0,c=l?l.isBuffer:void 0,f=c||s;e.exports=f}).call(t,r(39)(e))},function(e,t,r){"use strict";function n(e){return null==e?"":i(e)}var i=r(253);e.exports=n},96,function(e,t,r){"use strict";function n(e){return o.memberExpression(o.identifier("regeneratorRuntime"),o.identifier(e),!1)}function i(e){return e.isReferenced()||e.parentPath.isAssignmentExpression({left:e.node})}function s(e,t){t?e.replaceWith(t):e.remove()}t.__esModule=!0,t.runtimeProperty=n,t.isReference=i,t.replaceWithOrRemove=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){(function(e,n){"use strict";function i(e,r){var n={seen:[],stylize:a};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(r)?n.showHidden=r:r&&t._extend(n,r),x(n.showHidden)&&(n.showHidden=!1),x(n.depth)&&(n.depth=2),x(n.colors)&&(n.colors=!1),x(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=s),u(n,e,n.depth)}function s(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function a(e,t){return e}function o(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,r,n){if(e.customInspect&&r&&C(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return b(i)||(i=u(e,i,n)),i}var s=l(e,r);if(s)return s;var a=Object.keys(r),m=o(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(r)),D(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(r);if(0===a.length){if(C(r)){var y=r.name?": "+r.name:"";return e.stylize("[Function"+y+"]","special")}if(A(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(_(r))return e.stylize(Date.prototype.toString.call(r),"date");if(D(r))return c(r)}var v="",g=!1,E=["{","}"];if(h(r)&&(g=!0,E=["[","]"]),C(r)){v=" [Function"+(r.name?": "+r.name:"")+"]"}if(A(r)&&(v=" "+RegExp.prototype.toString.call(r)),_(r)&&(v=" "+Date.prototype.toUTCString.call(r)),D(r)&&(v=" "+c(r)),0===a.length&&(!g||0==r.length))return E[0]+v+E[1];if(n<0)return A(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var x;return x=g?f(e,r,n,m,a):a.map(function(t){return p(e,r,n,m,t,g)}),e.seen.pop(),d(x,v,E)}function l(e,t){if(x(t))return e.stylize("undefined","undefined");if(b(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return g(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):y(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,r,n,i){for(var s=[],a=0,o=t.length;a<o;++a)T(t,String(a))?s.push(p(e,t,r,n,String(a),!0)):s.push("");return i.forEach(function(i){i.match(/^\d+$/)||s.push(p(e,t,r,n,i,!0))}),s}function p(e,t,r,n,i,s){var a,o,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?o=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(o=e.stylize("[Setter]","special")),T(n,i)||(a="["+i+"]"),o||(e.seen.indexOf(l.value)<0?(o=y(r)?u(e,l.value,null):u(e,l.value,r-1),o.indexOf("\n")>-1&&(o=s?o.split("\n").map(function(e){return"  "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return"   "+e}).join("\n"))):o=e.stylize("[Circular]","special")),x(a)){if(s&&i.match(/^\d+$/))return o;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+o}function d(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf("\n")>=0&&n++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n  ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function y(e){return null===e}function v(e){return null==e}function g(e){return"number"==typeof e}function b(e){return"string"==typeof e}function E(e){return"symbol"===(void 0===e?"undefined":O(e))}function x(e){return void 0===e}function A(e){return S(e)&&"[object RegExp]"===P(e)}function S(e){return"object"===(void 0===e?"undefined":O(e))&&null!==e}function _(e){return S(e)&&"[object Date]"===P(e)}function D(e){return S(e)&&("[object Error]"===P(e)||e instanceof Error)}function C(e){return"function"==typeof e}function w(e){
return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===(void 0===e?"undefined":O(e))||void 0===e}function P(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}function F(){var e=new Date,t=[k(e.getHours()),k(e.getMinutes()),k(e.getSeconds())].join(":");return[e.getDate(),M[e.getMonth()],t].join(" ")}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B=/%[sdj%]/g;t.format=function(e){if(!b(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(i(arguments[r]));return t.join(" ")}for(var r=1,n=arguments,s=n.length,a=String(e).replace(B,function(e){if("%%"===e)return"%";if(r>=s)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),o=n[r];r<s;o=n[++r])y(o)||!S(o)?a+=" "+o:a+=" "+i(o);return a},t.deprecate=function(r,i){function s(){if(!a){if(n.throwDeprecation)throw new Error(i);n.traceDeprecation?console.trace(i):console.error(i),a=!0}return r.apply(this,arguments)}if(x(e.process))return function(){return t.deprecate(r,i).apply(this,arguments)};if(!0===n.noDeprecation)return r;var a=!1;return s};var R,I={};t.debuglog=function(e){if(x(R)&&(R=n.env.NODE_DEBUG||""),e=e.toUpperCase(),!I[e])if(new RegExp("\\b"+e+"\\b","i").test(R)){var r=n.pid;I[e]=function(){var n=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,n)}}else I[e]=function(){};return I[e]},t.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=m,t.isNull=y,t.isNullOrUndefined=v,t.isNumber=g,t.isString=b,t.isSymbol=E,t.isUndefined=x,t.isRegExp=A,t.isObject=S,t.isDate=_,t.isError=D,t.isFunction=C,t.isPrimitive=w,t.isBuffer=r(627);var M=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];t.log=function(){console.log("%s - %s",F(),t.format.apply(t,arguments))},t.inherits=r(626),t._extend=function(e,t){if(!t||!S(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}}).call(t,function(){return this}(),r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(11),a=i(s);t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();if("object"===(void 0===u.default?"undefined":(0,a.default)(u.default)))return null;var r=f[t];if(!r){r=new u.default;var i=c.default.join(t,".babelrc");r.id=i,r.filename=i,r.paths=u.default._nodeModulePaths(t),f[t]=r}try{return u.default._resolveFilename(e,r)}catch(e){return null}};var o=r(115),u=i(o),l=r(19),c=i(l),f={};e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(133),s=n(i),a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c),p=function(e){function t(){(0,o.default)(this,t);var r=(0,l.default)(this,e.call(this));return r.dynamicData={},r}return(0,f.default)(t,e),t.prototype.setDynamic=function(e,t){this.dynamicData[e]=t},t.prototype.get=function(t){if(this.has(t))return e.prototype.get.call(this,t);if(Object.prototype.hasOwnProperty.call(this.dynamicData,t)){var r=this.dynamicData[t]();return this.set(t,r),r}},t}(s.default);t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(239),o=n(a),u=(0,o.default)("babel:verbose"),l=(0,o.default)("babel"),c=[],f=function(){function e(t,r){(0,s.default)(this,e),this.filename=r,this.file=t}return e.prototype._buildMessage=function(e){var t="[BABEL] "+this.filename;return e&&(t+=": "+e),t},e.prototype.warn=function(e){console.warn(this._buildMessage(e))},e.prototype.error=function(e){throw new(arguments.length>1&&void 0!==arguments[1]?arguments[1]:Error)(this._buildMessage(e))},e.prototype.deprecate=function(e){this.file.opts&&this.file.opts.suppressDeprecationMessages||(e=this._buildMessage(e),c.indexOf(e)>=0||(c.push(e),console.error(e)))},e.prototype.verbose=function(e){u.enabled&&u(this._buildMessage(e))},e.prototype.debug=function(e){l.enabled&&l(this._buildMessage(e))},e.prototype.deopt=function(e,t){this.debug(t)},e}();t.default=f,e.exports=t.default},function(e,t,r){"use strict";function n(e,t){var r=e.node,n=r.source?r.source.value:null,i=t.metadata.modules.exports,s=e.get("declaration");if(s.isStatement()){var o=s.getBindingIdentifiers();for(var l in o)i.exported.push(l),i.specifiers.push({kind:"local",local:l,exported:e.isExportDefaultDeclaration()?"default":l})}if(e.isExportNamedDeclaration()&&r.specifiers)for(var c=r.specifiers,f=Array.isArray(c),p=0,c=f?c:(0,a.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d,m=h.exported.name;i.exported.push(m),u.isExportDefaultSpecifier(h)&&i.specifiers.push({kind:"external",local:m,exported:m,source:n}),u.isExportNamespaceSpecifier(h)&&i.specifiers.push({kind:"external-namespace",exported:m,source:n});var y=h.local;y&&(n&&i.specifiers.push({kind:"external",local:y.name,exported:m,source:n}),n||i.specifiers.push({kind:"local",local:y.name,exported:m}))}e.isExportAllDeclaration()&&i.specifiers.push({kind:"external-all",source:n})}function i(e){e.skip()}t.__esModule=!0,t.ImportDeclaration=t.ModuleDeclaration=void 0;var s=r(2),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.ExportDeclaration=n,t.Scope=i;var o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o);t.ModuleDeclaration={enter:function(e,t){var r=e.node;r.source&&(r.source.value=t.resolveModuleSource(r.source.value))}},t.ImportDeclaration={exit:function(e,t){var r=e.node,n=[],i=[];t.metadata.modules.imports.push({source:r.source.value,imported:i,specifiers:n});for(var s=e.get("specifiers"),o=Array.isArray(s),u=0,s=o?s:(0,a.default)(s);;){var l;if(o){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l,f=c.node.local.name;if(c.isImportDefaultSpecifier()&&(i.push("default"),n.push({kind:"named",imported:"default",local:f})),c.isImportSpecifier()){var p=c.node.imported.name;i.push(p),n.push({kind:"named",imported:p,local:f})}c.isImportNamespaceSpecifier()&&(i.push("*"),n.push({kind:"namespace",local:f}))}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=t||i.EXTENSIONS,n=D.default.extname(e);return(0,x.default)(r,n)}function s(e){return e?Array.isArray(e)?e:"string"==typeof e?e.split(","):[e]:[]}function a(e){if(!e)return new RegExp(/.^/);if(Array.isArray(e)&&(e=new RegExp(e.map(m.default).join("|"),"i")),"string"==typeof e){e=(0,w.default)(e),((0,v.default)(e,"./")||(0,v.default)(e,"*/"))&&(e=e.slice(2)),(0,v.default)(e,"**/")&&(e=e.slice(3));var t=b.default.makeRe(e,{nocase:!0});return new RegExp(t.source.slice(1,-1),"i")}if((0,S.default)(e))return e;throw new TypeError("illegal type for regexify")}function o(e,t){return e?"boolean"==typeof e?o([e],t):"string"==typeof e?o(s(e),t):Array.isArray(e)?(t&&(e=e.map(t)),e):[e]:[]}function u(e){return"true"===e||1==e||!("false"===e||0==e||!e)&&e}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];if(e=e.replace(/\\/g,"/"),r){for(var n=r,i=Array.isArray(n),s=0,n=i?n:(0,p.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}if(c(a,e))return!1}return!0}if(t.length)for(var o=t,u=Array.isArray(o),l=0,o=u?o:(0,p.default)(o);;){var f;if(u){if(l>=o.length)break;f=o[l++]}else{if(l=o.next(),l.done)break;f=l.value}var d=f;if(c(d,e))return!0}return!1}function c(e,t){return"function"==typeof e?e(t):e.test(t)}t.__esModule=!0,t.inspect=t.inherits=void 0;var f=r(2),p=n(f),d=r(117);Object.defineProperty(t,"inherits",{enumerable:!0,get:function(){return d.inherits}}),Object.defineProperty(t,"inspect",{enumerable:!0,get:function(){return d.inspect}}),t.canCompile=i,t.list=s,t.regexify=a,t.arrayify=o,t.booleanify=u,t.shouldIgnore=l;var h=r(577),m=n(h),y=r(595),v=n(y),g=r(601),b=n(g),E=r(111),x=n(E),A=r(276),S=n(A),_=r(19),D=n(_),C=r(284),w=n(C);i.EXTENSIONS=[".js",".jsx",".es6",".es"]},function(e,t,r){"use strict";function n(e){e.variance&&("plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")),this.word(e.name)}function i(e){this.token("..."),this.print(e.argument,e)}function s(e){var t=e.properties;this.token("{"),this.printInnerComments(e),t.length&&(this.space(),this.printList(t,e,{indent:!0,statement:!0}),this.space()),this.token("}")}function a(e){this.printJoin(e.decorators,e),this._method(e)}function o(e){if(this.printJoin(e.decorators,e),e.computed)this.token("["),this.print(e.key,e),this.token("]");else{if(m.isAssignmentPattern(e.value)&&m.isIdentifier(e.key)&&e.key.name===e.value.left.name)return void this.print(e.value,e);if(this.print(e.key,e),e.shorthand&&m.isIdentifier(e.key)&&m.isIdentifier(e.value)&&e.key.name===e.value.name)return}this.token(":"),this.space(),this.print(e.value,e)}function u(e){var t=e.elements,r=t.length;this.token("["),this.printInnerComments(e);for(var n=0;n<t.length;n++){var i=t[n];i?(n>0&&this.space(),this.print(i,e),n<r-1&&this.token(",")):this.token(",")}this.token("]")}function l(e){this.word("/"+e.pattern+"/"+e.flags)}function c(e){this.word(e.value?"true":"false")}function f(){this.word("null")}function p(e){var t=this.getPossibleRaw(e),r=e.value+"";null==t?this.number(r):this.format.minified?this.number(t.length<r.length?t:r):this.number(t)}function d(e,t){var r=this.getPossibleRaw(e);if(!this.format.minified&&null!=r)return void this.token(r);var n={quotes:m.isJSX(t)?"double":this.format.quotes,wrap:!0};this.format.jsonCompatibleStrings&&(n.json=!0);var i=(0,v.default)(e.value,n);return this.token(i)}t.__esModule=!0,t.ArrayPattern=t.ObjectPattern=t.RestProperty=t.SpreadProperty=t.SpreadElement=void 0,t.Identifier=n,t.RestElement=i,t.ObjectExpression=s,t.ObjectMethod=a,t.ObjectProperty=o,t.ArrayExpression=u,t.RegExpLiteral=l,t.BooleanLiteral=c,t.NullLiteral=f,t.NumericLiteral=p,t.StringLiteral=d;var h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(469),v=function(e){return e&&e.__esModule?e:{default:e}}(y);t.SpreadElement=i,t.SpreadProperty=i,t.RestProperty=i,t.ObjectPattern=s,t.ArrayPattern=u},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=e.node,n=r.body;r.async=!1;var i=f.functionExpression(null,[],f.blockStatement(n.body),!0);i.shadow=!0,n.body=[f.returnStatement(f.callExpression(f.callExpression(t,[i]),[]))],r.generator=!1}function s(e,t){var r=e.node,n=e.isFunctionDeclaration(),i=r.id,s=h;e.isArrowFunctionExpression()?e.arrowFunctionToShadowed():!n&&i&&(s=m),r.async=!1,r.generator=!0,r.id=null,n&&(r.type="FunctionExpression");var a=f.callExpression(t,[r]),u=s({NAME:i,REF:e.scope.generateUidIdentifier("ref"),FUNCTION:a,PARAMS:r.params.reduce(function(t,r){return t.done=t.done||f.isAssignmentPattern(r)||f.isRestElement(r),t.done||t.params.push(e.scope.generateUidIdentifier("x")),t},{params:[],done:!1}).params}).expression;if(n){var l=f.variableDeclaration("let",[f.variableDeclarator(f.identifier(i.name),f.callExpression(u,[]))]);l._blockHoist=!0,e.replaceWith(l)}else{var c=u.body.body[1].argument;i||(0,o.default)({node:c,parent:e.parent,scope:e.scope}),!c||c.id||r.params.length?e.replaceWith(f.callExpression(u,[])):e.replaceWith(a)}}t.__esModule=!0,t.default=function(e,t,r){r||(r={wrapAsync:t},t=null),e.traverse(y,{file:t,wrapAwait:r.wrapAwait}),e.isClassMethod()||e.isObjectMethod()?i(e,r.wrapAsync):s(e,r.wrapAsync)};var a=r(40),o=n(a),u=r(4),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=r(320),d=n(p),h=(0,l.default)("\n  (() => {\n    var REF = FUNCTION;\n    return function NAME(PARAMS) {\n      return REF.apply(this, arguments);\n    };\n  })\n"),m=(0,l.default)("\n  (() => {\n    var REF = FUNCTION;\n    function NAME(PARAMS) {\n      return REF.apply(this, arguments);\n    }\n    return NAME;\n  })\n"),y={Function:function(e){if(e.isArrowFunctionExpression()&&!e.node.async)return void e.arrowFunctionToShadowed();e.skip()},AwaitExpression:function(e,t){var r=e.node,n=t.wrapAwait;r.type="YieldExpression",n&&(r.argument=f.callExpression(n,[r.argument]))},ForAwaitStatement:function(e,t){var r=t.file,n=t.wrapAwait,i=e.node,s=(0,d.default)(e,{getAsyncIterator:r.addHelper("asyncIterator"),wrapAwait:n}),a=s.declar,o=s.loop,u=o.body;e.ensureBlock(),a&&u.body.push(a),u.body=u.body.concat(i.body.body),f.inherits(o,i),f.inherits(o.body,i.body),s.replaceParent?(e.parentPath.replaceWithMultiple(s.node),e.remove()):e.replaceWithMultiple(s.node)}};e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("decorators")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("flow")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("jsx")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("trailingFunctionCommas")}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67),visitor:{Function:function(e,t){e.node.async&&!e.node.generator&&(0,i.default)(e,t.file,{wrapAsync:t.addHelper("asyncToGenerator")})}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return c.isIdentifier(e)?e.name:e.value.toString()}t.__esModule=!0;var s=r(2),a=n(s),o=r(9),u=n(o);t.default=function(){return{visitor:{ObjectExpression:function(e){for(var t=e.node,r=t.properties.filter(function(e){return!c.isSpreadProperty(e)&&!e.computed}),n=(0,u.default)(null),s=(0,u.default)(null),o=(0,u.default)(null),l=r,f=Array.isArray(l),p=0,l=f?l:(0,a.default)(l);;){var d;if(f){if(p>=l.length)break;d=l[p++]}else{if(p=l.next(),p.done)break;d=p.value}var h=d,m=i(h.key),y=!1;switch(h.kind){case"get":(n[m]||s[m])&&(y=!0),s[m]=!0;break;case"set":(n[m]||o[m])&&(y=!0),o[m]=!0;break;default:(n[m]||s[m]||o[m])&&(y=!0),n[m]=!0}y&&(h.computed=!0,h.key=c.stringLiteral(m))}}}}};var l=r(1),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(l);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i);t.default=function(e){function t(e){if(!e.isCallExpression())return!1;if(!e.get("callee").isIdentifier({name:"require"}))return!1;if(e.scope.getBinding("require"))return!1;var t=e.get("arguments");return 1===t.length&&!!t[0].isStringLiteral()}var n=e.types,i={ReferencedIdentifier:function(e){var t=e.node,r=e.scope;"exports"!==t.name||r.getBinding("exports")||(this.hasExports=!0),"module"!==t.name||r.getBinding("module")||(this.hasModule=!0)},CallExpression:function(e){t(e)&&(this.bareSources.push(e.node.arguments[0]),e.remove())},VariableDeclarator:function(e){var r=e.get("id");if(r.isIdentifier()){var n=e.get("init");if(t(n)){var i=n.node.arguments[0];this.sourceNames[i.value]=!0,this.sources.push([r.node,i]),e.remove()}}}};return{inherits:r(77),pre:function(){this.sources=[],this.sourceNames=(0,s.default)(null),this.bareSources=[],this.hasExports=!1,this.hasModule=!1},visitor:{Program:{exit:function(e){var t=this;if(!this.ran){this.ran=!0,e.traverse(i,this);var r=this.sources.map(function(e){return e[0]}),s=this.sources.map(function(e){return e[1]});s=s.concat(this.bareSources.filter(function(e){return!t.sourceNames[e.value]}));var a=this.getModuleName();a&&(a=n.stringLiteral(a)),this.hasExports&&(s.unshift(n.stringLiteral("exports")),r.unshift(n.identifier("exports"))),this.hasModule&&(s.unshift(n.stringLiteral("module")),r.unshift(n.identifier("module")));var o=e.node,c=l({PARAMS:r,BODY:o.body});c.expression.body.directives=o.directives,o.directives=[],o.body=[u({MODULE_NAME:a,SOURCES:s,FACTORY:c})]}}}}}};var a=r(4),o=n(a),u=(0,o.default)("\n  define(MODULE_NAME, [SOURCES], FACTORY);\n"),l=(0,o.default)("\n  (function (PARAMS) {\n    BODY;\n  })\n");e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{inherits:r(199),visitor:(0,i.default)({operator:"**",build:function(e,r){return t.callExpression(t.memberExpression(t.identifier("Math"),t.identifier("pow")),[e,r])}})}};var n=r(316),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";e.exports={default:r(406),__esModule:!0}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r){for(var n=I.scope.get(e.node)||[],i=n,s=Array.isArray(i),a=0,i=s?i:(0,y.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;if(u.parent===t&&u.path===e)return u}n.push(r),I.scope.has(e.node)||I.scope.set(e.node,n)}function a(e,t){if(R.isModuleDeclaration(e))if(e.source)a(e.source,t);else if(e.specifiers&&e.specifiers.length)for(var r=e.specifiers,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var o=s;a(o,t)}else e.declaration&&a(e.declaration,t);else if(R.isModuleSpecifier(e))a(e.local,t);else if(R.isMemberExpression(e))a(e.object,t),a(e.property,t);else if(R.isIdentifier(e))t.push(e.name);else if(R.isLiteral(e))t.push(e.value);else if(R.isCallExpression(e))a(e.callee,t);else if(R.isObjectExpression(e)||R.isObjectPattern(e))for(var u=e.properties,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;a(p.key||p.argument,t)}}t.__esModule=!0;var o=r(14),u=i(o),l=r(9),c=i(l),f=r(133),p=i(f),d=r(3),h=i(d),m=r(2),y=i(m),v=r(111),g=i(v),b=r(278),E=i(b),x=r(383),A=i(x),S=r(7),_=i(S),D=r(273),C=i(D),w=r(20),P=n(w),k=r(225),F=i(k),T=r(463),O=i(T),B=r(1),R=n(B),I=r(88),M=0,N={For:function(e){for(var t=R.FOR_INIT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=e.get(s);a.isVar()&&e.scope.getFunctionParent().registerBinding("var",a)}},Declaration:function(e){e.isBlockScoped()||e.isExportDeclaration()&&e.get("declaration").isDeclaration()||e.scope.getFunctionParent().registerDeclaration(e)},ReferencedIdentifier:function(e,t){t.references.push(e)},ForXStatement:function(e,t){var r=e.get("left");(r.isPattern()||r.isIdentifier())&&t.constantViolations.push(r)},ExportDeclaration:{exit:function(e){var t=e.node,r=e.scope,n=t.declaration;if(R.isClassDeclaration(n)||R.isFunctionDeclaration(n)){var i=n.id;if(!i)return;var s=r.getBinding(i.name);s&&s.reference(e)}else if(R.isVariableDeclaration(n))for(var a=n.declarations,o=Array.isArray(a),u=0,a=o?a:(0,y.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l,f=R.getBindingIdentifiers(c);for(var p in f){var d=r.getBinding(p);d&&d.reference(e)}}}},LabeledStatement:function(e){e.scope.getProgramParent().addGlobal(e.node),e.scope.getBlockParent().registerDeclaration(e)},AssignmentExpression:function(e,t){t.assignments.push(e)},UpdateExpression:function(e,t){t.constantViolations.push(e.get("argument"))},UnaryExpression:function(e,t){"delete"===e.node.operator&&t.constantViolations.push(e.get("argument"))},BlockScoped:function(e){var t=e.scope;t.path===e&&(t=t.parent),t.getBlockParent().registerDeclaration(e)},ClassDeclaration:function(e){var t=e.node.id;if(t){var r=t.name;e.scope.bindings[r]=e.scope.getBinding(r)}},Block:function(e){for(var t=e.get("body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;a.isFunctionDeclaration()&&e.scope.getBlockParent().registerDeclaration(a)}}},L=0,j=function(){function e(t,r){if((0,h.default)(this,e),r&&r.block===t.node)return r;var n=s(t,r,this);if(n)return n;this.uid=L++,this.parent=r,this.hub=t.hub,this.parentBlock=t.parent,this.block=t.node,this.path=t,this.labels=new p.default}return e.prototype.traverse=function(e,t,r){(0,_.default)(e,t,this,r,this.path)},e.prototype.generateDeclaredUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp",t=this.generateUidIdentifier(e);return this.push({id:t}),t},e.prototype.generateUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";return R.identifier(this.generateUid(e))},e.prototype.generateUid=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";e=R.toIdentifier(e).replace(/^_+/,"").replace(/[0-9]+$/g,"");var t=void 0,r=0;do{t=this._generateUid(e,r),r++}while(this.hasLabel(t)||this.hasBinding(t)||this.hasGlobal(t)||this.hasReference(t));var n=this.getProgramParent();return n.references[t]=!0,n.uids[t]=!0,t},e.prototype._generateUid=function(e,t){var r=e;return t>1&&(r+=t),"_"+r},e.prototype.generateUidIdentifierBasedOnNode=function(e,t){var r=e;R.isAssignmentExpression(e)?r=e.left:R.isVariableDeclarator(e)?r=e.id:(R.isObjectProperty(r)||R.isObjectMethod(r))&&(r=r.key);var n=[];a(r,n);var i=n.join("$");return i=i.replace(/^_/,"")||t||"ref",this.generateUidIdentifier(i.slice(0,20))},e.prototype.isStatic=function(e){if(R.isThisExpression(e)||R.isSuper(e))return!0;if(R.isIdentifier(e)){var t=this.getBinding(e.name);return t?t.constant:this.hasBinding(e.name)}return!1},e.prototype.maybeGenerateMemoised=function(e,t){if(this.isStatic(e))return null;var r=this.generateUidIdentifierBasedOnNode(e);return t||this.push({id:r}),r},e.prototype.checkBlockScopedCollisions=function(e,t,r,n){if("param"!==t&&("hoisted"!==t||"let"!==e.kind)){if("let"===t||"let"===e.kind||"const"===e.kind||"module"===e.kind||"param"===e.kind&&("let"===t||"const"===t))throw this.hub.file.buildCodeFrameError(n,P.get("scopeDuplicateDeclaration",r),TypeError)}},e.prototype.rename=function(e,t,r){var n=this.getBinding(e);if(n)return t=t||this.generateUidIdentifier(e).name,new A.default(n,e,t).rename(r)},e.prototype._renameFromMap=function(e,t,r,n){e[t]&&(e[r]=n,e[t]=null)},e.prototype.dump=function(){var e=(0,E.default)("-",60);console.log(e);var t=this;do{console.log("#",t.block.type);for(var r in t.bindings){var n=t.bindings[r];console.log(" -",r,{constant:n.constant,references:n.references,violations:n.constantViolations.length,kind:n.kind})}}while(t=t.parent);console.log(e)},e.prototype.toArray=function(e,t){var r=this.hub.file;if(R.isIdentifier(e)){var n=this.getBinding(e.name);if(n&&n.constant&&n.path.isGenericType("Array"))return e}if(R.isArrayExpression(e))return e;if(R.isIdentifier(e,{name:"arguments"}))return R.callExpression(R.memberExpression(R.memberExpression(R.memberExpression(R.identifier("Array"),R.identifier("prototype")),R.identifier("slice")),R.identifier("call")),[e]);var i="toArray",s=[e];return!0===t?i="toConsumableArray":t&&(s.push(R.numericLiteral(t)),i="slicedToArray"),R.callExpression(r.addHelper(i),s)},e.prototype.hasLabel=function(e){return!!this.getLabel(e)},e.prototype.getLabel=function(e){return this.labels.get(e)},e.prototype.registerLabel=function(e){this.labels.set(e.node.label.name,e)},e.prototype.registerDeclaration=function(e){if(e.isLabeledStatement())this.registerLabel(e);else if(e.isFunctionDeclaration())this.registerBinding("hoisted",e.get("id"),e);else if(e.isVariableDeclaration())for(var t=e.get("declarations"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;this.registerBinding(e.node.kind,a)}else if(e.isClassDeclaration())this.registerBinding("let",e);else if(e.isImportDeclaration())for(var o=e.get("specifiers"),u=o,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;this.registerBinding("module",p)}else if(e.isExportDeclaration()){var d=e.get("declaration");(d.isClassDeclaration()||d.isFunctionDeclaration()||d.isVariableDeclaration())&&this.registerDeclaration(d)}else this.registerBinding("unknown",e)},e.prototype.buildUndefinedNode=function(){return this.hasBinding("undefined")?R.unaryExpression("void",R.numericLiteral(0),!0):R.identifier("undefined")},e.prototype.registerConstantViolation=function(e){var t=e.getBindingIdentifiers();for(var r in t){var n=this.getBinding(r);n&&n.reassign(e)}},e.prototype.registerBinding=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)throw new ReferenceError("no `kind`");if(t.isVariableDeclaration())for(var n=t.get("declarations"),i=n,s=Array.isArray(i),a=0,i=s?i:(0,y.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;this.registerBinding(e,u)}else{var l=this.getProgramParent(),c=t.getBindingIdentifiers(!0);for(var f in c)for(var p=c[f],d=Array.isArray(p),h=0,p=d?p:(0,y.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var v=m,g=this.getOwnBinding(f);if(g){if(g.identifier===v)continue;this.checkBlockScopedCollisions(g,e,f,v)}g&&g.path.isFlow()&&(g=null),l.references[f]=!0,this.bindings[f]=new F.default({identifier:v,existing:g,scope:this,path:r,kind:e})}}},e.prototype.addGlobal=function(e){this.globals[e.name]=e},e.prototype.hasUid=function(e){var t=this;do{if(t.uids[e])return!0}while(t=t.parent);return!1},e.prototype.hasGlobal=function(e){var t=this;do{if(t.globals[e])return!0}while(t=t.parent);return!1},e.prototype.hasReference=function(e){var t=this;do{if(t.references[e])return!0}while(t=t.parent);return!1},e.prototype.isPure=function(e,t){if(R.isIdentifier(e)){var r=this.getBinding(e.name);return!!r&&(!t||r.constant)}if(R.isClass(e))return!(e.superClass&&!this.isPure(e.superClass,t))&&this.isPure(e.body,t);if(R.isClassBody(e)){for(var n=e.body,i=Array.isArray(n),s=0,n=i?n:(0,y.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if(!this.isPure(o,t))return!1}return!0}if(R.isBinary(e))return this.isPure(e.left,t)&&this.isPure(e.right,t);if(R.isArrayExpression(e)){for(var u=e.elements,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;if(!this.isPure(p,t))return!1}return!0}if(R.isObjectExpression(e)){for(var d=e.properties,h=Array.isArray(d),m=0,d=h?d:(0,y.default)(d);;){var v;if(h){if(m>=d.length)break;v=d[m++]}else{if(m=d.next(),m.done)break;v=m.value}var g=v;if(!this.isPure(g,t))return!1}return!0}return R.isClassMethod(e)?!(e.computed&&!this.isPure(e.key,t))&&("get"!==e.kind&&"set"!==e.kind):R.isClassProperty(e)||R.isObjectProperty(e)?!(e.computed&&!this.isPure(e.key,t))&&this.isPure(e.value,t):R.isUnaryExpression(e)?this.isPure(e.argument,t):R.isPureish(e)},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e){var t=this;do{var r=t.data[e];if(null!=r)return r}while(t=t.parent)},e.prototype.removeData=function(e){var t=this;do{null!=t.data[e]&&(t.data[e]=null)}while(t=t.parent)},e.prototype.init=function(){this.references||this.crawl()},e.prototype.crawl=function(){M++,this._crawl(),M--},e.prototype._crawl=function(){var e=this.path;if(this.references=(0,c.default)(null),this.bindings=(0,c.default)(null),this.globals=(0,c.default)(null),this.uids=(0,c.default)(null),this.data=(0,c.default)(null),e.isLoop())for(var t=R.FOR_INIT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=e.get(s);a.isBlockScoped()&&this.registerBinding(a.node.kind,a)}if(e.isFunctionExpression()&&e.has("id")&&(e.get("id").node[R.NOT_LOCAL_BINDING]||this.registerBinding("local",e.get("id"),e)),e.isClassExpression()&&e.has("id")&&(e.get("id").node[R.NOT_LOCAL_BINDING]||this.registerBinding("local",e)),e.isFunction())for(var o=e.get("params"),u=o,l=Array.isArray(u),f=0,u=l?u:(0,y.default)(u);;){var p;if(l){if(f>=u.length)break;p=u[f++]}else{if(f=u.next(),f.done)break;p=f.value}var d=p;this.registerBinding("param",d)}if(e.isCatchClause()&&this.registerBinding("let",e),!this.getProgramParent().crawling){var h={references:[],constantViolations:[],assignments:[]};this.crawling=!0,e.traverse(N,h),this.crawling=!1;for(var m=h.assignments,v=Array.isArray(m),g=0,m=v?m:(0,y.default)(m);;){var b;if(v){if(g>=m.length)break;b=m[g++]}else{if(g=m.next(),g.done)break;b=g.value}var E=b,x=E.getBindingIdentifiers(),A=void 0;for(var S in x)E.scope.getBinding(S)||(A=A||E.scope.getProgramParent(),A.addGlobal(x[S]));E.scope.registerConstantViolation(E)}for(var _=h.references,D=Array.isArray(_),C=0,_=D?_:(0,y.default)(_);;){var w;if(D){if(C>=_.length)break;w=_[C++]}else{if(C=_.next(),C.done)break;w=C.value}var P=w,k=P.scope.getBinding(P.node.name);k?k.reference(P):P.scope.getProgramParent().addGlobal(P.node)}for(var F=h.constantViolations,T=Array.isArray(F),O=0,F=T?F:(0,y.default)(F);;){var B;if(T){if(O>=F.length)break;B=F[O++]}else{if(O=F.next(),O.done)break;B=O.value}var I=B;I.scope.registerConstantViolation(I)}}},e.prototype.push=function(e){var t=this.path;t.isBlockStatement()||t.isProgram()||(t=this.getBlockParent().path),t.isSwitchStatement()&&(t=this.getFunctionParent().path),(t.isLoop()||t.isCatchClause()||t.isFunction())&&(R.ensureBlock(t.node),t=t.get("body"));var r=e.unique,n=e.kind||"var",i=null==e._blockHoist?2:e._blockHoist,s="declaration:"+n+":"+i,a=!r&&t.getData(s);if(!a){var o=R.variableDeclaration(n,[]);o._generated=!0,o._blockHoist=i;a=t.unshiftContainer("body",[o])[0],r||t.setData(s,a)}var u=R.variableDeclarator(e.id,e.init);a.node.declarations.push(u),this.registerBinding(n,a.get("declarations").pop())},e.prototype.getProgramParent=function(){var e=this;do{if(e.path.isProgram())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getFunctionParent=function(){var e=this;do{if(e.path.isFunctionParent())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getBlockParent=function(){var e=this;do{if(e.path.isBlockParent())return e}while(e=e.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},e.prototype.getAllBindings=function(){var e=(0,c.default)(null),t=this;do{(0,C.default)(e,t.bindings),t=t.parent}while(t);return e},e.prototype.getAllBindingsOfKind=function(){for(var e=(0,c.default)(null),t=arguments,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=this;do{for(var o in a.bindings){var u=a.bindings[o];u.kind===s&&(e[o]=u)}a=a.parent}while(a)}return e},e.prototype.bindingIdentifierEquals=function(e,t){
return this.getBindingIdentifier(e)===t},e.prototype.warnOnFlowBinding=function(e){return 0===M&&e&&e.path.isFlow()&&console.warn("\n        You or one of the Babel plugins you are using are using Flow declarations as bindings.\n        Support for this will be removed in version 7. To find out the caller, grep for this\n        message and change it to a `console.trace()`.\n      "),e},e.prototype.getBinding=function(e){var t=this;do{var r=t.getOwnBinding(e);if(r)return this.warnOnFlowBinding(r)}while(t=t.parent)},e.prototype.getOwnBinding=function(e){return this.warnOnFlowBinding(this.bindings[e])},e.prototype.getBindingIdentifier=function(e){var t=this.getBinding(e);return t&&t.identifier},e.prototype.getOwnBindingIdentifier=function(e){var t=this.bindings[e];return t&&t.identifier},e.prototype.hasOwnBinding=function(e){return!!this.getOwnBinding(e)},e.prototype.hasBinding=function(t,r){return!!t&&(!!this.hasOwnBinding(t)||(!!this.parentHasBinding(t,r)||(!!this.hasUid(t)||(!(r||!(0,g.default)(e.globals,t))||!(r||!(0,g.default)(e.contextVariables,t))))))},e.prototype.parentHasBinding=function(e,t){return this.parent&&this.parent.hasBinding(e,t)},e.prototype.moveBindingTo=function(e,t){var r=this.getBinding(e);r&&(r.scope.removeOwnBinding(e),r.scope=t,t.bindings[e]=r)},e.prototype.removeOwnBinding=function(e){delete this.bindings[e]},e.prototype.removeBinding=function(e){var t=this.getBinding(e);t&&t.scope.removeOwnBinding(e);var r=this;do{r.uids[e]&&(r.uids[e]=!1)}while(r=r.parent)},e}();j.globals=(0,u.default)(O.default.builtin),j.contextVariables=["arguments","undefined","Infinity","NaN"],t.default=j,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.NOT_LOCAL_BINDING=t.BLOCK_SCOPED_SYMBOL=t.INHERIT_KEYS=t.UNARY_OPERATORS=t.STRING_UNARY_OPERATORS=t.NUMBER_UNARY_OPERATORS=t.BOOLEAN_UNARY_OPERATORS=t.BINARY_OPERATORS=t.NUMBER_BINARY_OPERATORS=t.BOOLEAN_BINARY_OPERATORS=t.COMPARISON_BINARY_OPERATORS=t.EQUALITY_BINARY_OPERATORS=t.BOOLEAN_NUMBER_BINARY_OPERATORS=t.UPDATE_OPERATORS=t.LOGICAL_OPERATORS=t.COMMENT_KEYS=t.FOR_INIT_KEYS=t.FLATTENABLE_KEYS=t.STATEMENT_OR_BLOCK_KEYS=void 0;var n=r(362),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=(t.STATEMENT_OR_BLOCK_KEYS=["consequent","body","alternate"],t.FLATTENABLE_KEYS=["body","expressions"],t.FOR_INIT_KEYS=["left","init"],t.COMMENT_KEYS=["leadingComments","trailingComments","innerComments"],t.LOGICAL_OPERATORS=["||","&&"],t.UPDATE_OPERATORS=["++","--"],t.BOOLEAN_NUMBER_BINARY_OPERATORS=[">","<",">=","<="]),a=t.EQUALITY_BINARY_OPERATORS=["==","===","!=","!=="],o=t.COMPARISON_BINARY_OPERATORS=[].concat(a,["in","instanceof"]),u=t.BOOLEAN_BINARY_OPERATORS=[].concat(o,s),l=t.NUMBER_BINARY_OPERATORS=["-","/","%","*","**","&","|",">>",">>>","<<","^"],c=(t.BINARY_OPERATORS=["+"].concat(l,u),t.BOOLEAN_UNARY_OPERATORS=["delete","!"]),f=t.NUMBER_UNARY_OPERATORS=["+","-","++","--","~"],p=t.STRING_UNARY_OPERATORS=["typeof"];t.UNARY_OPERATORS=["void"].concat(c,f,p),t.INHERIT_KEYS={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]},t.BLOCK_SCOPED_SYMBOL=(0,i.default)("var used to be block scoped"),t.NOT_LOCAL_BINDING=(0,i.default)("should not be considered a local binding")},function(e,t){"use strict";e.exports=function(e,t,r,n){if(!(e instanceof t)||void 0!==n&&n in e)throw TypeError(r+": incorrect invocation!");return e}},function(e,t,r){"use strict";var n=r(43),i=r(142),s=r(94),a=r(153),o=r(422);e.exports=function(e,t){var r=1==e,u=2==e,l=3==e,c=4==e,f=6==e,p=5==e||f,d=t||o;return function(t,o,h){for(var m,y,v=s(t),g=i(v),b=n(o,h,3),E=a(g.length),x=0,A=r?d(t,E):u?d(t,0):void 0;E>x;x++)if((p||x in g)&&(m=g[x],y=b(m,x,v),e))if(r)A[x]=y;else if(y)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:A.push(m)}else if(c)return!1;return f?-1:l||c?c:A}}},function(e,t){"use strict";var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,r){"use strict";var n=r(15),i=r(12),s=r(57),a=r(27),o=r(29),u=r(146),l=r(55),c=r(136),f=r(16),p=r(93),d=r(23).f,h=r(137)(0),m=r(22);e.exports=function(e,t,r,y,v,g){var b=n[e],E=b,x=v?"set":"add",A=E&&E.prototype,S={};return m&&"function"==typeof E&&(g||A.forEach&&!a(function(){(new E).entries().next()}))?(E=t(function(t,r){c(t,E,e,"_c"),t._c=new b,void 0!=r&&l(r,v,t[x],t)}),h("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in A&&(!g||"clear"!=e)&&o(E.prototype,e,function(r,n){if(c(this,E,e),!t&&g&&!f(r))return"get"==e&&void 0;var i=this._c[e](0===r?0:r,n);return t?this:i})}),g||d(E.prototype,"size",{get:function(){return this._c.size}})):(E=y.getConstructor(t,e,v,x),u(E.prototype,r),s.NEED=!0),p(E,e),S[e]=E,i(i.G+i.W+i.F,S),g||y.setStrong(E,e,v),E}},function(e,t){"use strict";e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t){"use strict";e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,r){"use strict";var n=r(138);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t,r){"use strict";var n=r(144),i=r(12),s=r(147),a=r(29),o=r(28),u=r(56),l=r(429),c=r(93),f=r(433),p=r(13)("iterator"),d=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,r,m,y,v,g){l(r,t,m);var b,E,x,A=function(e){if(!d&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new r(this,e)}}return function(){return new r(this,e)}},S=t+" Iterator",_="values"==y,D=!1,C=e.prototype,w=C[p]||C["@@iterator"]||y&&C[y],P=w||A(y),k=y?_?A("entries"):P:void 0,F="Array"==t?C.entries||w:w;if(F&&(x=f(F.call(new e)))!==Object.prototype&&x.next&&(c(x,S,!0),n||o(x,p)||a(x,p,h)),_&&w&&"values"!==w.name&&(D=!0,P=function(){return w.call(this)}),n&&!g||!d&&!D&&C[p]||a(C,p,P),u[t]=P,u[S]=h,y)if(b={values:_?P:A("values"),keys:v?P:A("keys"),entries:k},g)for(E in b)E in C||s(C,E,b[E]);else i(i.P+i.F*(d||D),t,b);return b}},function(e,t){"use strict";e.exports=!0},function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,r){"use strict";var n=r(29);e.exports=function(e,t,r){for(var i in t)r&&e[i]?e[i]=t[i]:n(e,i,t[i]);return e}},function(e,t,r){"use strict";e.exports=r(29)},function(e,t,r){"use strict";var n=r(12),i=r(227),s=r(43),a=r(55);e.exports=function(e){n(n.S,e,{from:function(e){var t,r,n,o,u=arguments[1];return i(this),t=void 0!==u,t&&i(u),void 0==e?new this:(r=[],t?(n=0,o=s(u,arguments[2],2),a(e,!1,function(e){r.push(o(e,n++))})):a(e,!1,r.push,r),new this(r))}})}},function(e,t,r){"use strict";var n=r(12);e.exports=function(e){n(n.S,e,{of:function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,r){"use strict";var n=r(151)("keys"),i=r(95);e.exports=function(e){return n[e]||(n[e]=i(e))}},function(e,t,r){"use strict";var n=r(15),i=n["__core-js_shared__"]||(n["__core-js_shared__"]={});e.exports=function(e){return i[e]||(i[e]={})}},function(e,t){"use strict";var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t,r){"use strict";var n=r(152),i=Math.min;e.exports=function(e){return e>0?i(n(e),9007199254740991):0}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if("function"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(144),a=r(156),o=r(23).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:a.f(e)})}},function(e,t,r){"use strict";t.f=r(13)},function(e,t,r){"use strict";var n=r(437)(!0);r(143)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(15),s=r(28),a=r(22),o=r(12),u=r(147),l=r(57).KEY,c=r(27),f=r(151),p=r(93),d=r(95),h=r(13),m=r(156),y=r(155),v=r(430),g=r(425),b=r(232),E=r(21),x=r(37),A=r(154),S=r(92),_=r(90),D=r(432),C=r(235),w=r(23),P=r(44),k=C.f,F=w.f,T=D.f,O=i.Symbol,B=i.JSON,R=B&&B.stringify,I=h("_hidden"),M=h("toPrimitive"),N={}.propertyIsEnumerable,L=f("symbol-registry"),j=f("symbols"),U=f("op-symbols"),V=Object.prototype,G="function"==typeof O,W=i.QObject,Y=!W||!W.prototype||!W.prototype.findChild,q=a&&c(function(){return 7!=_(F({},"a",{get:function(){return F(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=k(V,t);n&&delete V[t],F(e,t,r),n&&e!==V&&F(V,t,n)}:F,K=function(e){var t=j[e]=_(O.prototype);return t._k=e,t},H=G&&"symbol"==n(O.iterator)?function(e){return"symbol"==(void 0===e?"undefined":n(e))}:function(e){return e instanceof O},J=function(e,t,r){return e===V&&J(U,t,r),E(e),t=A(t,!0),E(r),s(j,t)?(r.enumerable?(s(e,I)&&e[I][t]&&(e[I][t]=!1),r=_(r,{enumerable:S(0,!1)})):(s(e,I)||F(e,I,S(1,{})),e[I][t]=!0),q(e,t,r)):F(e,t,r)},X=function(e,t){E(e);for(var r,n=g(t=x(t)),i=0,s=n.length;s>i;)J(e,r=n[i++],t[r]);return e},z=function(e,t){return void 0===t?_(e):X(_(e),t)},$=function(e){var t=N.call(this,e=A(e,!0));return!(this===V&&s(j,e)&&!s(U,e))&&(!(t||!s(this,e)||!s(j,e)||s(this,I)&&this[I][e])||t)},Q=function(e,t){if(e=x(e),t=A(t,!0),e!==V||!s(j,t)||s(U,t)){var r=k(e,t);return!r||!s(j,t)||s(e,I)&&e[I][t]||(r.enumerable=!0),r}},Z=function(e){for(var t,r=T(x(e)),n=[],i=0;r.length>i;)s(j,t=r[i++])||t==I||t==l||n.push(t);return n},ee=function(e){for(var t,r=e===V,n=T(r?U:x(e)),i=[],a=0;n.length>a;)!s(j,t=n[a++])||r&&!s(V,t)||i.push(j[t]);return i};G||(O=function(){if(this instanceof O)throw TypeError("Symbol is not a constructor!");var e=d(arguments.length>0?arguments[0]:void 0),t=function t(r){this===V&&t.call(U,r),s(this,I)&&s(this[I],e)&&(this[I][e]=!1),q(this,e,S(1,r))};return a&&Y&&q(V,e,{configurable:!0,set:t}),K(e)},u(O.prototype,"toString",function(){return this._k}),C.f=Q,w.f=J,r(236).f=D.f=Z,r(91).f=$,r(145).f=ee,a&&!r(144)&&u(V,"propertyIsEnumerable",$,!0),m.f=function(e){return K(h(e))}),o(o.G+o.W+o.F*!G,{Symbol:O});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;te.length>re;)h(te[re++]);for(var ne=P(h.store),ie=0;ne.length>ie;)y(ne[ie++]);o(o.S+o.F*!G,"Symbol",{for:function(e){return s(L,e+="")?L[e]:L[e]=O(e)},keyFor:function(e){if(H(e))return v(L,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){Y=!0},useSimple:function(){Y=!1}}),o(o.S+o.F*!G,"Object",{create:z,defineProperty:J,defineProperties:X,getOwnPropertyDescriptor:Q,getOwnPropertyNames:Z,getOwnPropertySymbols:ee}),B&&o(o.S+o.F*(!G||c(function(){var e=O();return"[null]"!=R([e])||"{}"!=R({a:e})||"{}"!=R(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!H(e)){for(var t,r,n=[e],i=1;arguments.length>i;)n.push(arguments[i++]);return t=n[1],"function"==typeof t&&(r=t),!r&&b(t)||(t=function(e,t){if(r&&(t=r.call(this,e,t)),!H(t))return t}),n[1]=t,R.apply(B,n)}}}),O.prototype[M]||r(29)(O.prototype,M,O.prototype.valueOf),p(O,"Symbol"),p(Math,"Math",!0),p(i.JSON,"JSON",!0)},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Map");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(551),s=r(552),a=r(553),o=r(554),u=r(555);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t){"use strict";function r(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=e[t];o.call(e,t)&&s(n,r)&&(void 0!==r||t in e)||i(e,t,r)}var i=r(163),s=r(46),a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var i=r(259);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,T,O,B){var R,I=t&S,M=t&_,N=t&D;if(r&&(R=O?r(e,T,O,B):r(e)),void 0!==R)return R;if(!x(e))return e;var L=b(e);if(L){if(R=y(e),!I)return c(e,R)}else{var j=m(e),U=j==w||j==P;if(E(e))return l(e,I);if(j==k||j==C||U&&!O){if(R=M||U?{}:g(e),!I)return M?p(e,u(R,e)):f(e,o(R,e))}else{if(!F[j])return O?e:{};R=v(e,j,n,I)}}B||(B=new i);var V=B.get(e);if(V)return V;B.set(e,R);var G=N?M?h:d:M?keysIn:A,W=L?void 0:G(e);return s(W||e,function(i,s){W&&(s=i,i=e[s]),a(R,s,n(i,t,r,s,e,B))}),R}var i=r(99),s=r(478),a=r(162),o=r(483),u=r(484),l=r(256),c=r(168),f=r(523),p=r(524),d=r(262),h=r(532),m=r(264),y=r(541),v=r(542),g=r(266),b=r(6),E=r(113),x=r(18),A=r(32),S=1,_=2,D=4,C="[object Arguments]",w="[object Function]",P="[object GeneratorFunction]",k="[object Object]",F={};F[C]=F["[object Array]"]=F["[object ArrayBuffer]"]=F["[object DataView]"]=F["[object Boolean]"]=F["[object Date]"]=F["[object Float32Array]"]=F["[object Float64Array]"]=F["[object Int8Array]"]=F["[object Int16Array]"]=F["[object Int32Array]"]=F["[object Map]"]=F["[object Number]"]=F[k]=F["[object RegExp]"]=F["[object Set]"]=F["[object String]"]=F["[object Symbol]"]=F["[object Uint8Array]"]=F["[object Uint8ClampedArray]"]=F["[object Uint16Array]"]=F["[object Uint32Array]"]=!0,F["[object Error]"]=F[w]=F["[object WeakMap]"]=!1,e.exports=n},function(e,t){"use strict";function r(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){return t===t?a(e,t,r):i(e,s,r)}var i=r(165),s=r(496),a=r(570);e.exports=n},function(e,t,r){"use strict";function n(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}var i=r(243);e.exports=n},function(e,t){"use strict";function r(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}e.exports=r},function(e,t,r){"use strict";var n=r(271),i=n(Object.getPrototypeOf,Object);e.exports=i},function(e,t,r){"use strict";var n=r(479),i=r(279),s=Object.prototype,a=s.propertyIsEnumerable,o=Object.getOwnPropertySymbols,u=o?function(e){return null==e?[]:(e=Object(e),n(o(e),function(t){return a.call(e,t)}))}:i;e.exports=u},function(e,t){"use strict";function r(e,t){return!!(t=null==t?n:t)&&("number"==typeof e||i.test(e))&&e>-1&&e%1==0&&e<t}var n=9007199254740991,i=/^(?:0|[1-9]\d*)$/;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){if(!u(r))return!1;var n=void 0===t?"undefined":i(t);return!!("number"==n?a(r)&&o(t,r.length):"string"==n&&t in r)&&s(r[t],e)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(46),a=r(24),o=r(171),u=r(18);e.exports=n},function(e,t,r){"use strict";function n(e,t){if(s(e))return!1;var r=void 0===e?"undefined":i(e);return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!a(e))||(u.test(e)||!o.test(e)||null!=t&&e in Object(t))}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(6),a=r(62),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;e.exports=n},function(e,t,r){"use strict";var n=r(162),i=r(31),s=r(103),a=r(24),o=r(105),u=r(32),l=Object.prototype,c=l.hasOwnProperty,f=s(function(e,t){if(o(t)||a(t))return void i(t,u(t),e);for(var r in t)c.call(t,r)&&n(e,r,t[r])});e.exports=f},function(e,t,r){"use strict";function n(e){if(!s(e))return!1;var t=i(e);return t==o||t==u||t==a||t==l}var i=r(30),s=r(18),a="[object AsyncFunction]",o="[object Function]",u="[object GeneratorFunction]",l="[object Proxy]";e.exports=n},function(e,t){"use strict";function r(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}var n=9007199254740991;e.exports=r},function(e,t,r){"use strict";var n=r(499),i=r(102),s=r(270),a=s&&s.isTypedArray,o=a?i(a):n;e.exports=o},function(e,t,r){function n(e){return r(i(e))}function i(e){return s[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var s={"./index":50,"./index.js":50,"./logger":120,"./logger.js":120,"./metadata":121,"./metadata.js":121,"./options/build-config-chain":51,"./options/build-config-chain.js":51,"./options/config":33,"./options/config.js":33,"./options/index":52,"./options/index.js":52,"./options/option-manager":34,"./options/option-manager.js":34,"./options/parsers":53,"./options/parsers.js":53,"./options/removed":54,"./options/removed.js":54};n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=178},function(e,t,r){function n(e){return r(i(e))}function i(e){return s[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var s={"./build-config-chain":51,"./build-config-chain.js":51,"./config":33,"./config.js":33,"./index":52,"./index.js":52,"./option-manager":34,"./option-manager.js":34,"./parsers":53,"./parsers.js":53,"./removed":54,"./removed.js":54};n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=179},function(e,t){"use strict";e.exports=function(){return/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return{keyword:e.cyan,capitalized:e.yellow,jsx_tag:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold,gutter:e.grey,marker:e.red.bold}}function s(e){var t=e.slice(-2),r=t[0],n=t[1],i=(0,o.matchToToken)(e);if("name"===i.type){if(c.default.keyword.isReservedWordES6(i.value))return"keyword";if(h.test(i.value)&&("<"===n[r-1]||"</"==n.substr(r-2,2)))return"jsx_tag";if(i.value[0]!==i.value[0].toLowerCase())return"capitalized"}return"punctuator"===i.type&&m.test(i.value)?"bracket":i.type}function a(e,t){return t.replace(u.default,function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=s(r),a=e[i];return a?r[0].split(d).map(function(e){return a(e)}).join("\n"):r[0]})}t.__esModule=!0,t.default=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r=Math.max(r,0);var s=n.highlightCode&&p.default.supportsColor||n.forceColor,o=p.default;n.forceColor&&(o=new p.default.constructor({enabled:!0}));var u=function(e,t){return s?e(t):t},l=i(o);s&&(e=a(l,e));var c=n.linesAbove||2,f=n.linesBelow||3,h=e.split(d),m=Math.max(t-(c+1),0),y=Math.min(h.length,t+f);t||r||(m=0,y=h.length);var v=String(y).length,g=h.slice(m,y).map(function(e,n){var i=m+1+n,s=(" "+i).slice(-v),a=" "+s+" | ";if(i===t){var o="";if(r){var c=e.slice(0,r-1).replace(/[^\t]/g," ");o=["\n ",u(l.gutter,a.replace(/\d/g," ")),c,u(l.marker,"^")].join("")}return[u(l.marker,">"),u(l.gutter,a),e,o].join("")}return" "+u(l.gutter,a)+e}).join("\n");return s?o.reset(g):g};var o=r(468),u=n(o),l=r(97),c=n(l),f=r(401),p=n(f),d=/\r\n|[\n\r\u2028\u2029]/,h=/^[a-z][\w-]*$/i,m=/^[()\[\]{}]$/;e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){throw new Error("The ("+e+") Babel 5 plugin is being run with Babel 6.")}function a(e,t,r){"function"==typeof t&&(r=t,t={}),t.filename=e,y.default.readFile(e,function(e,n){var i=void 0;if(!e)try{i=F(n,t)}catch(t){e=t}e?r(e):r(null,i)})}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.filename=e,F(y.default.readFileSync(e,"utf8"),t)}t.__esModule=!0,t.transformFromAst=t.transform=t.analyse=t.Pipeline=t.OptionManager=t.traverse=t.types=t.messages=t.util=t.version=t.resolvePreset=t.resolvePlugin=t.template=t.buildExternalHelpers=t.options=t.File=void 0;var u=r(50);Object.defineProperty(t,"File",{enumerable:!0,get:function(){return i(u).default}});var l=r(33);Object.defineProperty(t,"options",{enumerable:!0,get:function(){return i(l).default}});var c=r(295);Object.defineProperty(t,"buildExternalHelpers",{enumerable:!0,get:function(){return i(c).default}});var f=r(4);Object.defineProperty(t,"template",{enumerable:!0,get:function(){return i(f).default}});var p=r(184);Object.defineProperty(t,"resolvePlugin",{enumerable:!0,get:function(){return i(p).default}});var d=r(185);Object.defineProperty(t,"resolvePreset",{enumerable:!0,get:function(){return i(d).default}});var h=r(628);Object.defineProperty(t,"version",{enumerable:!0,get:function(){return h.version}}),t.Plugin=s,t.transformFile=a,t.transformFileSync=o;var m=r(115),y=i(m),v=r(122),g=n(v),b=r(20),E=n(b),x=r(1),A=n(x),S=r(7),_=i(S),D=r(34),C=i(D),w=r(298),P=i(w);t.util=g,t.messages=E,t.types=A,t.traverse=_.default,t.OptionManager=C.default,t.Pipeline=P.default;var k=new P.default,F=(t.analyse=k.analyse.bind(k),t.transform=k.transform.bind(k));t.transformFromAst=k.transformFromAst.bind(k)},function(e,t,r){"use strict";function n(e,t){return e.reduce(function(e,r){return e||(0,s.default)(r,t)},null)}t.__esModule=!0,t.default=n;var i=r(118),s=function(e){return e&&e.__esModule?e:{default:e}}(i);e.exports=t.default},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,o.default)((0,l.default)(e),t)}t.__esModule=!0,t.default=s;var a=r(183),o=i(a),u=r(291),l=i(u);e.exports=t.default}).call(t,r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,o.default)((0,l.default)(e),t)}t.__esModule=!0,t.default=s;var a=r(183),o=i(a),u=r(292),l=i(u);e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r){var n="  ";if(e&&"string"==typeof e){var i=(0,d.default)(e).indent;i&&" "!==i&&(n=i)}var a={auxiliaryCommentBefore:t.auxiliaryCommentBefore,auxiliaryCommentAfter:t.auxiliaryCommentAfter,shouldPrintComment:t.shouldPrintComment,retainLines:t.retainLines,retainFunctionParens:t.retainFunctionParens,comments:null==t.comments||t.comments,compact:t.compact,minified:t.minified,concise:t.concise,quotes:t.quotes||s(e,r),jsonCompatibleStrings:t.jsonCompatibleStrings,indent:{adjustMultilineComment:!0,style:n,base:0},flowCommaSeparator:t.flowCommaSeparator};return a.minified?(a.compact=!0,a.shouldPrintComment=a.shouldPrintComment||function(){return a.comments}):a.shouldPrintComment=a.shouldPrintComment||function(e){return a.comments||e.indexOf("@license")>=0||e.indexOf("@preserve")>=0},"auto"===a.compact&&(a.compact=e.length>5e5,a.compact&&console.error("[BABEL] "+v.get("codeGeneratorDeopt",t.filename,"500KB"))),a.compact&&(a.indent.adjustMultilineComment=!1),a}function s(e,t){if(!e)return"double";for(var r={single:0,double:0},n=0,i=0;i<t.length;i++){var s=t[i];if("string"===s.type.label){if("'"===e.slice(s.start,s.end)[0]?r.single++:r.double++,++n>=3)break}}return r.single>r.double?"single":"double"}t.__esModule=!0,t.CodeGenerator=void 0;var a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c);t.default=function(e,t,r){return new E(e,t,r).generate()};var p=r(459),d=n(p),h=r(313),m=n(h),y=r(20),v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(y),g=r(312),b=n(g),E=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments[2];(0,o.default)(this,t);var a=r.tokens||[],u=i(s,n,a),c=n.sourceMaps?new m.default(n,s):null,f=(0,l.default)(this,e.call(this,u,c,a));return f.ast=r,f}return(0,f.default)(t,e),t.prototype.generate=function(){return e.prototype.generate.call(this,this.ast)},t}(b.default);t.CodeGenerator=function(){function e(t,r,n){(0,o.default)(this,e),this._generator=new E(t,r,n)}return e.prototype.generate=function(){return this._generator.generate()},e}()},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){function t(e,t){var n=r[e];r[e]=n?function(e,r,i){var s=n(e,r,i);return null==s?t(e,r,i):s}:t}for(var r={},n=(0,m.default)(e),i=Array.isArray(n),s=0,n=i?n:(0,d.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a,u=x.FLIPPED_ALIAS_KEYS[o];if(u)for(var l=u,c=Array.isArray(l),f=0,l=c?l:(0,d.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var h=p;t(h,e[o])}else t(o,e[o])}return r}function a(e,t,r,n){var i=e[t.type];return i?i(t,r,n):null}function o(e){return!!x.isCallExpression(e)||!!x.isMemberExpression(e)&&(o(e.object)||!e.computed&&o(e.property))}function u(e,t,r){if(!e)return 0;x.isExpressionStatement(e)&&(e=e.expression);var n=a(S,e,t);if(!n){var i=a(_,e,t);if(i)for(var s=0;s<i.length&&!(n=u(i[s],e,r));s++);}return n&&n[r]||0}function l(e,t){return u(e,t,"before")}function c(e,t){return u(e,t,"after")}function f(e,t,r){return!!t&&(!(!x.isNewExpression(t)||t.callee!==e||!o(e))||a(A,e,t,r))}t.__esModule=!0;var p=r(2),d=i(p),h=r(14),m=i(h);t.needsWhitespace=u,t.needsWhitespaceBefore=l,t.needsWhitespaceAfter=c,t.needsParens=f;var y=r(311),v=i(y),g=r(310),b=n(g),E=r(1),x=n(E),A=s(b),S=s(v.default.nodes),_=s(v.default.list)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return!v.isClassMethod(e)&&!v.isObjectMethod(e)||"get"!==e.kind&&"set"!==e.kind?"value":e.kind}function s(e,t,r,n,s){var a=v.toKeyAlias(t),o={};if((0,m.default)(e,a)&&(o=e[a]),e[a]=o,o._inherits=o._inherits||[],o._inherits.push(t),o._key=t.key,t.computed&&(o._computed=!0),t.decorators){var u=o.decorators=o.decorators||v.arrayExpression([]);u.elements=u.elements.concat(t.decorators.map(function(e){return e.expression}).reverse())}if(o.value||o.initializer)throw n.buildCodeFrameError(t,"Key conflict with sibling node");var l=void 0,c=void 0;(v.isObjectProperty(t)||v.isObjectMethod(t)||v.isClassMethod(t))&&(l=v.toComputedKey(t,t.key)),v.isObjectProperty(t)||v.isClassProperty(t)?c=t.value:(v.isObjectMethod(t)||v.isClassMethod(t))&&(c=v.functionExpression(null,t.params,t.body,t.generator,t.async),c.returnType=t.returnType);var f=i(t);return r&&"value"===f||(r=f),s&&v.isStringLiteral(l)&&("value"===r||"initializer"===r)&&v.isFunctionExpression(c)&&(c=(0,d.default)({id:l,node:c,scope:s})),c&&(v.inheritsComments(c,t),o[r]=c),o}function a(e){for(var t in e)if(e[t]._computed)return!0;return!1}function o(e){for(var t=v.arrayExpression([]),r=0;r<e.properties.length;r++){var n=e.properties[r],i=n.value;i.properties.unshift(v.objectProperty(v.identifier("key"),v.toComputedKey(n))),t.elements.push(i)}return t}function u(e){var t=v.objectExpression([]);return(0,f.default)(e).forEach(function(r){var n=e[r],i=v.objectExpression([]),s=v.objectProperty(n._key,i,n._computed);(0,f.default)(n).forEach(function(e){var t=n[e];if("_"!==e[0]){var r=t;(v.isClassMethod(t)||v.isClassProperty(t))&&(t=t.value);var s=v.objectProperty(v.identifier(e),t);v.inheritsComments(s,r),v.removeComments(r),i.properties.push(s)}}),t.properties.push(s)}),t}function l(e){return(0,f.default)(e).forEach(function(t){var r=e[t];r.value&&(r.writable=v.booleanLiteral(!0)),r.configurable=v.booleanLiteral(!0),r.enumerable=v.booleanLiteral(!0)}),u(e)}t.__esModule=!0;var c=r(14),f=n(c);t.push=s,t.hasComputed=a,t.toComputedObjectFromClass=o,t.toClassObject=u,t.toDefineObject=l;var p=r(40),d=n(p),h=r(274),m=n(h),y=r(1),v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(y)},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){for(var t=e.params,r=0;r<t.length;r++){var n=t[r];if(i.isAssignmentPattern(n)||i.isRestElement(n))return r}return t.length};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"var";e.traverse(o,{kind:r,emit:t})};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s),o={Scope:function(e,t){"let"===t.kind&&e.skip()},Function:function(e){e.skip()},VariableDeclaration:function(e,t){if(!t.kind||e.node.kind===t.kind){for(var r=[],n=e.get("declarations"),s=void 0,o=n,u=Array.isArray(o),l=0,o=u?o:(0,i.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;s=f.node.id,f.node.init&&r.push(a.expressionStatement(a.assignmentExpression("=",f.node.id,f.node.init)));for(var p in f.getBindingIdentifiers())t.emit(a.identifier(p),p)}e.parentPath.isFor({left:e.node})?e.replaceWith(s):e.replaceWithMultiple(r)}}};e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e,t,r){return 1===r.length&&i.isSpreadElement(r[0])&&i.isIdentifier(r[0].argument,{name:"arguments"})?i.callExpression(i.memberExpression(e,i.identifier("apply")),[t,r[0].argument]):i.callExpression(i.memberExpression(e,i.identifier("call")),[t].concat(r))};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e,t){return u.isRegExpLiteral(e)&&e.flags.indexOf(t)>=0}function i(e,t){var r=e.flags.split("");e.flags.indexOf(t)<0||((0,a.default)(r,t),e.flags=r.join(""))}t.__esModule=!0,t.is=n,t.pullFlag=i;var s=r(277),a=function(e){return e&&e.__esModule?e:{default:e}}(s),o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){return!!v.isSuper(e)&&(!v.isMemberExpression(t,{computed:!1})&&!v.isCallExpression(t,{callee:e}))}function a(e){return v.isMemberExpression(e)&&v.isSuper(e.object)}function o(e,t){var r=t?e:v.memberExpression(e,v.identifier("prototype"));return v.logicalExpression("||",v.memberExpression(r,v.identifier("__proto__")),v.callExpression(v.memberExpression(v.identifier("Object"),v.identifier("getPrototypeOf")),[r]))}t.__esModule=!0;var u=r(3),l=i(u),c=r(10),f=i(c),p=r(191),d=i(p),h=r(20),m=n(h),y=r(1),v=n(y),g=(0,f.default)(),b={Function:function(e){e.inShadow("this")||e.skip()},ReturnStatement:function(e,t){e.inShadow("this")||t.returns.push(e)},ThisExpression:function(e,t){e.node[g]||t.thises.push(e)},enter:function(e,t){var r=t.specHandle;t.isLoose&&(r=t.looseHandle);var n=e.isCallExpression()&&e.get("callee").isSuper(),i=r.call(t,e);i&&(t.hasSuper=!0),n&&t.bareSupers.push(e),!0===i&&e.requeue(),!0!==i&&i&&(Array.isArray(i)?e.replaceWithMultiple(i):e.replaceWith(i))}},E=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,l.default)(this,e),this.forceSuperMemoisation=t.forceSuperMemoisation,this.methodPath=t.methodPath,
this.methodNode=t.methodNode,this.superRef=t.superRef,this.isStatic=t.isStatic,this.hasSuper=!1,this.inClass=r,this.isLoose=t.isLoose,this.scope=this.methodPath.scope,this.file=t.file,this.opts=t,this.bareSupers=[],this.returns=[],this.thises=[]}return e.prototype.getObjectRef=function(){return this.opts.objectRef||this.opts.getObjectRef()},e.prototype.setSuperProperty=function(e,t,r){return v.callExpression(this.file.addHelper("set"),[o(this.getObjectRef(),this.isStatic),r?e:v.stringLiteral(e.name),t,v.thisExpression()])},e.prototype.getSuperProperty=function(e,t){return v.callExpression(this.file.addHelper("get"),[o(this.getObjectRef(),this.isStatic),t?e:v.stringLiteral(e.name),v.thisExpression()])},e.prototype.replace=function(){this.methodPath.traverse(b,this)},e.prototype.getLooseSuperProperty=function(e,t){var r=this.methodNode,n=this.superRef||v.identifier("Function");return t.property===e?void 0:v.isCallExpression(t,{callee:e})?void 0:v.isMemberExpression(t)&&!r.static?v.memberExpression(n,v.identifier("prototype")):n},e.prototype.looseHandle=function(e){var t=e.node;if(e.isSuper())return this.getLooseSuperProperty(t,e.parent);if(e.isCallExpression()){var r=t.callee;if(!v.isMemberExpression(r))return;if(!v.isSuper(r.object))return;return v.appendToMemberExpression(r,v.identifier("call")),t.arguments.unshift(v.thisExpression()),!0}},e.prototype.specHandleAssignmentExpression=function(e,t,r){return"="===r.operator?this.setSuperProperty(r.left.property,r.right,r.left.computed):(e=e||t.scope.generateUidIdentifier("ref"),[v.variableDeclaration("var",[v.variableDeclarator(e,r.left)]),v.expressionStatement(v.assignmentExpression("=",r.left,v.binaryExpression(r.operator[0],e,r.right)))])},e.prototype.specHandle=function(e){var t=void 0,r=void 0,n=void 0,i=e.parent,o=e.node;if(s(o,i))throw e.buildCodeFrameError(m.get("classesIllegalBareSuper"));if(v.isCallExpression(o)){var u=o.callee;if(v.isSuper(u))return;a(u)&&(t=u.property,r=u.computed,n=o.arguments)}else if(v.isMemberExpression(o)&&v.isSuper(o.object))t=o.property,r=o.computed;else{if(v.isUpdateExpression(o)&&a(o.argument)){var l=v.binaryExpression(o.operator[0],o.argument,v.numericLiteral(1));if(o.prefix)return this.specHandleAssignmentExpression(null,e,l);var c=e.scope.generateUidIdentifier("ref");return this.specHandleAssignmentExpression(c,e,l).concat(v.expressionStatement(c))}if(v.isAssignmentExpression(o)&&a(o.left))return this.specHandleAssignmentExpression(null,e,o)}if(t){var f=this.getSuperProperty(t,r);return n?this.optimiseCall(f,n):f}},e.prototype.optimiseCall=function(e,t){var r=v.thisExpression();return r[g]=!0,(0,d.default)(e,r,t)},e}();t.default=E,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=u.default[e];if(!t)throw new ReferenceError("Unknown helper "+e);return t().expression}t.__esModule=!0,t.list=void 0;var s=r(14),a=n(s);t.get=i;var o=r(321),u=n(o);t.list=(0,a.default)(u.default).map(function(e){return e.replace(/^_/,"")}).filter(function(e){return"__esModule"!==e});t.default=i},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncGenerators")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("classConstructorCall")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("classProperties")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("doExpressions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("exponentiationOperator")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("exportExtensions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("functionBind")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("objectRestSpread")}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(10),o=n(a);t.default=function(e){function t(e){for(var t=e.get("body.body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}var o=a;if("constructorCall"===o.node.kind)return o}return null}function n(e,t){var r=t,n=r.node,s=n.id||t.scope.generateUidIdentifier("class");t.parentPath.isExportDefaultDeclaration()&&(t=t.parentPath,t.insertAfter(i.exportDefaultDeclaration(s))),t.replaceWithMultiple(c({CLASS_REF:t.scope.generateUidIdentifier(s.name),CALL_REF:t.scope.generateUidIdentifier(s.name+"Call"),CALL:i.functionExpression(null,e.node.params,e.node.body),CLASS:i.toExpression(n),WRAPPER_REF:s})),e.remove()}var i=e.types,a=(0,o.default)();return{inherits:r(196),visitor:{Class:function(e){if(!e.node[a]){e.node[a]=!0;var r=t(e);r&&n(r,e)}}}}};var u=r(4),l=n(u),c=(0,l.default)("\n  let CLASS_REF = CLASS;\n  var CALL_REF = CALL;\n  var WRAPPER_REF = function (...args) {\n    if (this instanceof WRAPPER_REF) {\n      return Reflect.construct(CLASS_REF, args);\n    } else {\n      return CALL_REF.apply(this, args);\n    }\n  };\n  WRAPPER_REF.__proto__ = CLASS_REF;\n  WRAPPER_REF;\n");e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){var t=e.types,n={Super:function(e){e.parentPath.isCallExpression({callee:e.node})&&this.push(e.parentPath)}},i={ReferencedIdentifier:function(e){this.scope.hasOwnBinding(e.node.name)&&(this.collision=!0,e.skip())}},a=(0,l.default)("\n    Object.defineProperty(REF, KEY, {\n      // configurable is false by default\n      enumerable: true,\n      writable: true,\n      value: VALUE\n    });\n  "),u=function(e,r){var n=r.key,i=r.value,s=r.computed;return a({REF:e,KEY:t.isIdentifier(n)&&!s?t.stringLiteral(n.name):n,VALUE:i||t.identifier("undefined")})},c=function(e,r){var n=r.key,i=r.value,s=r.computed;return t.expressionStatement(t.assignmentExpression("=",t.memberExpression(e,n,s||t.isLiteral(n)),i))};return{inherits:r(197),visitor:{Class:function(e,r){for(var a=r.opts.spec?u:c,l=!!e.node.superClass,f=void 0,p=[],d=e.get("body"),h=d.get("body"),m=Array.isArray(h),y=0,h=m?h:(0,s.default)(h);;){var v;if(m){if(y>=h.length)break;v=h[y++]}else{if(y=h.next(),y.done)break;v=y.value}var g=v;g.isClassProperty()?p.push(g):g.isClassMethod({kind:"constructor"})&&(f=g)}if(p.length){var b=[],E=void 0;e.isClassExpression()||!e.node.id?((0,o.default)(e),E=e.scope.generateUidIdentifier("class")):E=e.node.id;for(var x=[],A=p,S=Array.isArray(A),_=0,A=S?A:(0,s.default)(A);;){var D;if(S){if(_>=A.length)break;D=A[_++]}else{if(_=A.next(),_.done)break;D=_.value}var C=D,w=C.node;if(!(w.decorators&&w.decorators.length>0)&&(r.opts.spec||w.value)){if(w.static)b.push(a(E,w));else{if(!w.value)continue;x.push(a(t.thisExpression(),w))}}}if(x.length){if(!f){var P=t.classMethod("constructor",t.identifier("constructor"),[],t.blockStatement([]));l&&(P.params=[t.restElement(t.identifier("args"))],P.body.body.push(t.returnStatement(t.callExpression(t.super(),[t.spreadElement(t.identifier("args"))]))));f=d.unshiftContainer("body",P)[0]}for(var k={collision:!1,scope:f.scope},F=p,T=Array.isArray(F),O=0,F=T?F:(0,s.default)(F);;){var B;if(T){if(O>=F.length)break;B=F[O++]}else{if(O=F.next(),O.done)break;B=O.value}if(B.traverse(i,k),k.collision)break}if(k.collision){var R=e.scope.generateUidIdentifier("initialiseProps");b.push(t.variableDeclaration("var",[t.variableDeclarator(R,t.functionExpression(null,[],t.blockStatement(x)))])),x=[t.expressionStatement(t.callExpression(t.memberExpression(R,t.identifier("call")),[t.thisExpression()]))]}if(l){var I=[];f.traverse(n,I);for(var M=I,N=Array.isArray(M),L=0,M=N?M:(0,s.default)(M);;){var j;if(N){if(L>=M.length)break;j=M[L++]}else{if(L=M.next(),L.done)break;j=L.value}j.insertAfter(x)}}else f.get("body").unshiftContainer("body",x)}for(var U=p,V=Array.isArray(U),G=0,U=V?U:(0,s.default)(U);;){var W;if(V){if(G>=U.length)break;W=U[G++]}else{if(G=U.next(),G.done)break;W=G.value}W.remove()}b.length&&(e.isClassExpression()?(e.scope.push({id:E}),e.replaceWith(t.assignmentExpression("=",E,e.node))):(e.node.id||(e.node.id=E),e.parentPath.isExportDeclaration()&&(e=e.parentPath)),e.insertAfter(b))}},ArrowFunctionExpression:function(e){var t=e.get("body");if(t.isClassExpression()){t.get("body").get("body").some(function(e){return e.isClassProperty()})&&e.ensureBlock()}}}}};var a=r(40),o=n(a),u=r(4),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i),a=r(2),o=n(a);t.default=function(e){function t(e){return e.reverse().map(function(e){return e.expression})}function n(e,r,n){var i=[],a=e.node.decorators;if(a){e.node.decorators=null,a=t(a);for(var l=a,c=Array.isArray(l),f=0,l=c?l:(0,o.default)(l);;){var d;if(c){if(f>=l.length)break;d=l[f++]}else{if(f=l.next(),f.done)break;d=f.value}var h=d;i.push(p({CLASS_REF:r,DECORATOR:h}))}}for(var m=(0,s.default)(null),y=e.get("body.body"),v=Array.isArray(y),g=0,y=v?y:(0,o.default)(y);;){var b;if(v){if(g>=y.length)break;b=y[g++]}else{if(g=y.next(),g.done)break;b=g.value}var E=b;if(E.node.decorators){var x=u.toKeyAlias(E.node);m[x]=m[x]||[],m[x].push(E.node),E.remove()}}for(var A in m){m[A]}return i}function i(e){if(e.isClass()){if(e.node.decorators)return!0;for(var t=e.node.body.body,r=Array.isArray(t),n=0,t=r?t:(0,o.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}if(i.decorators)return!0}}else if(e.isObjectExpression())for(var s=e.node.properties,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var l;if(a){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l;if(c.decorators)return!0}return!1}function a(e){throw e.buildCodeFrameError('Decorators are not officially supported yet in 6.x pending a proposal update.\nHowever, if you need to use them you can install the legacy decorators transform with:\n\nnpm install babel-plugin-transform-decorators-legacy --save-dev\n\nand add the following line to your .babelrc file:\n\n{\n  "plugins": ["transform-decorators-legacy"]\n}\n\nThe repo url is: https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy.\n    ')}var u=e.types;return{inherits:r(125),visitor:{ClassExpression:function(e){if(i(e)){a(e),(0,f.default)(e);var t=e.scope.generateDeclaredUidIdentifier("ref"),r=[];r.push(u.assignmentExpression("=",t,e.node)),r=r.concat(n(e,t,this)),r.push(t),e.replaceWith(u.sequenceExpression(r))}},ClassDeclaration:function(e){if(i(e)){a(e),(0,f.default)(e);var t=e.node.id,r=[];r=r.concat(n(e,t,this).map(function(e){return u.expressionStatement(e)})),r.push(u.expressionStatement(t)),e.insertAfter(r)}},ObjectExpression:function(e){i(e)&&a(e)}}}};var u=r(4),l=n(u),c=r(319),f=n(c),p=(0,l.default)("\n  CLASS_REF = DECORATOR(CLASS_REF) || CLASS_REF;\n");e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(198),visitor:{DoExpression:function(e){var t=e.node.body.body;t.length?e.replaceWithMultiple(t):e.replaceWith(e.scope.buildUndefinedNode())}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(2),a=i(s),o=r(3),u=i(o),l=r(7),c=r(193),f=i(c),p=r(191),d=i(p),h=r(188),m=n(h),y=r(4),v=i(y),g=r(1),b=n(g),E=(0,v.default)("\n  (function () {\n    super(...arguments);\n  })\n"),x={"FunctionExpression|FunctionDeclaration":function(e){e.is("shadow")||e.skip()},Method:function(e){e.skip()}},A=l.visitors.merge([x,{Super:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.parentPath.isCallExpression({callee:e.node}))throw e.buildCodeFrameError("'super.*' is not allowed before super()")},CallExpression:{exit:function(e){if(e.get("callee").isSuper()&&(this.hasBareSuper=!0,!this.isDerived))throw e.buildCodeFrameError("super() is only allowed in a derived constructor")}},ThisExpression:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.inShadow("this"))throw e.buildCodeFrameError("'this' is not allowed before super()")}}]),S=l.visitors.merge([x,{ThisExpression:function(e){this.superThises.push(e)}}]),_=function(){function e(t,r){(0,u.default)(this,e),this.parent=t.parent,this.scope=t.scope,this.node=t.node,this.path=t,this.file=r,this.clearDescriptors(),this.instancePropBody=[],this.instancePropRefs={},this.staticPropBody=[],this.body=[],this.bareSuperAfter=[],this.bareSupers=[],this.pushedConstructor=!1,this.pushedInherits=!1,this.isLoose=!1,this.superThises=[],this.classId=this.node.id,this.classRef=this.node.id?b.identifier(this.node.id.name):this.scope.generateUidIdentifier("class"),this.superName=this.node.superClass||b.identifier("Function"),this.isDerived=!!this.node.superClass}return e.prototype.run=function(){var e=this,t=this.superName,r=this.file,n=this.body,i=this.constructorBody=b.blockStatement([]);this.constructor=this.buildConstructor();var s=[],a=[];if(this.isDerived&&(a.push(t),t=this.scope.generateUidIdentifierBasedOnNode(t),s.push(t),this.superName=t),this.buildBody(),i.body.unshift(b.expressionStatement(b.callExpression(r.addHelper("classCallCheck"),[b.thisExpression(),this.classRef]))),n=n.concat(this.staticPropBody.map(function(t){return t(e.classRef)})),this.classId&&1===n.length)return b.toExpression(n[0]);n.push(b.returnStatement(this.classRef));var o=b.functionExpression(null,s,b.blockStatement(n));return o.shadow=!0,b.callExpression(o,a)},e.prototype.buildConstructor=function(){var e=b.functionDeclaration(this.classRef,[],this.constructorBody);return b.inherits(e,this.node),e},e.prototype.pushToMap=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"value",n=arguments[3],i=void 0;e.static?(this.hasStaticDescriptors=!0,i=this.staticMutatorMap):(this.hasInstanceDescriptors=!0,i=this.instanceMutatorMap);var s=m.push(i,e,r,this.file,n);return t&&(s.enumerable=b.booleanLiteral(!0)),s},e.prototype.constructorMeMaybe=function(){for(var e=!1,t=this.path.get("body.body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,a.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}if(e=s.equals("kind","constructor"))break}if(!e){var o=void 0,u=void 0;if(this.isDerived){var l=E().expression;o=l.params,u=l.body}else o=[],u=b.blockStatement([]);this.path.get("body").unshiftContainer("body",b.classMethod("constructor",b.identifier("constructor"),o,u))}},e.prototype.buildBody=function(){if(this.constructorMeMaybe(),this.pushBody(),this.verifyConstructor(),this.userConstructor){var e=this.constructorBody;e.body=e.body.concat(this.userConstructor.body.body),b.inherits(this.constructor,this.userConstructor),b.inherits(e,this.userConstructor.body)}this.pushDescriptors()},e.prototype.pushBody=function(){for(var e=this.path.get("body.body"),t=e,r=Array.isArray(t),n=0,t=r?t:(0,a.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,o=s.node;if(s.isClassProperty())throw s.buildCodeFrameError("Missing class properties transform.");if(o.decorators)throw s.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");if(b.isClassMethod(o)){var u="constructor"===o.kind;if(u&&(s.traverse(A,this),!this.hasBareSuper&&this.isDerived))throw s.buildCodeFrameError("missing super() call in constructor");var l=new f.default({forceSuperMemoisation:u,methodPath:s,methodNode:o,objectRef:this.classRef,superRef:this.superName,isStatic:o.static,isLoose:this.isLoose,scope:this.scope,file:this.file},!0);l.replace(),u?this.pushConstructor(l,o,s):this.pushMethod(o,s)}}},e.prototype.clearDescriptors=function(){this.hasInstanceDescriptors=!1,this.hasStaticDescriptors=!1,this.instanceMutatorMap={},this.staticMutatorMap={}},e.prototype.pushDescriptors=function(){this.pushInherits();var e=this.body,t=void 0,r=void 0;if(this.hasInstanceDescriptors&&(t=m.toClassObject(this.instanceMutatorMap)),this.hasStaticDescriptors&&(r=m.toClassObject(this.staticMutatorMap)),t||r){t&&(t=m.toComputedObjectFromClass(t)),r&&(r=m.toComputedObjectFromClass(r));var n=b.nullLiteral(),i=[this.classRef,n,n,n,n];t&&(i[1]=t),r&&(i[2]=r),this.instanceInitializersId&&(i[3]=this.instanceInitializersId,e.unshift(this.buildObjectAssignment(this.instanceInitializersId))),this.staticInitializersId&&(i[4]=this.staticInitializersId,e.unshift(this.buildObjectAssignment(this.staticInitializersId)));for(var s=0,a=0;a<i.length;a++)i[a]!==n&&(s=a);i=i.slice(0,s+1),e.push(b.expressionStatement(b.callExpression(this.file.addHelper("createClass"),i)))}this.clearDescriptors()},e.prototype.buildObjectAssignment=function(e){return b.variableDeclaration("var",[b.variableDeclarator(e,b.objectExpression([]))])},e.prototype.wrapSuperCall=function(e,t,r,n){var i=e.node;this.isLoose?(i.arguments.unshift(b.thisExpression()),2===i.arguments.length&&b.isSpreadElement(i.arguments[1])&&b.isIdentifier(i.arguments[1].argument,{name:"arguments"})?(i.arguments[1]=i.arguments[1].argument,i.callee=b.memberExpression(t,b.identifier("apply"))):i.callee=b.memberExpression(t,b.identifier("call"))):i=(0,d.default)(b.logicalExpression("||",b.memberExpression(this.classRef,b.identifier("__proto__")),b.callExpression(b.memberExpression(b.identifier("Object"),b.identifier("getPrototypeOf")),[this.classRef])),b.thisExpression(),i.arguments);var s=b.callExpression(this.file.addHelper("possibleConstructorReturn"),[b.thisExpression(),i]),a=this.bareSuperAfter.map(function(e){return e(r)});e.parentPath.isExpressionStatement()&&e.parentPath.container===n.node.body&&n.node.body.length-1===e.parentPath.key?((this.superThises.length||a.length)&&(e.scope.push({id:r}),s=b.assignmentExpression("=",r,s)),a.length&&(s=b.toSequenceExpression([s].concat(a,[r]))),e.parentPath.replaceWith(b.returnStatement(s))):e.replaceWithMultiple([b.variableDeclaration("var",[b.variableDeclarator(r,s)])].concat(a,[b.expressionStatement(r)]))},e.prototype.verifyConstructor=function(){var e=this;if(this.isDerived){var t=this.userConstructorPath,r=t.get("body");t.traverse(S,this);for(var n=!!this.bareSupers.length,i=this.superName||b.identifier("Function"),s=t.scope.generateUidIdentifier("this"),o=this.bareSupers,u=Array.isArray(o),l=0,o=u?o:(0,a.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;this.wrapSuperCall(f,i,s,r),n&&f.find(function(e){return e===t||(e.isLoop()||e.isConditional()?(n=!1,!0):void 0)})}for(var p=this.superThises,d=Array.isArray(p),h=0,p=d?p:(0,a.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}m.replaceWith(s)}var y=function(t){return b.callExpression(e.file.addHelper("possibleConstructorReturn"),[s].concat(t||[]))},v=r.get("body");v.length&&!v.pop().isReturnStatement()&&r.pushContainer("body",b.returnStatement(n?s:y()));for(var g=this.superReturns,E=Array.isArray(g),x=0,g=E?g:(0,a.default)(g);;){var A;if(E){if(x>=g.length)break;A=g[x++]}else{if(x=g.next(),x.done)break;A=x.value}var _=A;if(_.node.argument){var D=_.scope.generateDeclaredUidIdentifier("ret");_.get("argument").replaceWithMultiple([b.assignmentExpression("=",D,_.node.argument),y(D)])}else _.get("argument").replaceWith(y())}}},e.prototype.pushMethod=function(e,t){var r=t?t.scope:this.scope;"method"===e.kind&&this._processMethod(e,r)||this.pushToMap(e,!1,null,r)},e.prototype._processMethod=function(){return!1},e.prototype.pushConstructor=function(e,t,r){this.bareSupers=e.bareSupers,this.superReturns=e.returns,r.scope.hasOwnBinding(this.classRef.name)&&r.scope.rename(this.classRef.name);var n=this.constructor;this.userConstructorPath=r,this.userConstructor=t,this.hasConstructor=!0,b.inheritsComments(n,t),n._ignoreUserWhitespace=!0,n.params=t.params,b.inherits(n.body,t.body),n.body.directives=t.body.directives,this._pushConstructor()},e.prototype._pushConstructor=function(){this.pushedConstructor||(this.pushedConstructor=!0,(this.hasInstanceDescriptors||this.hasStaticDescriptors)&&this.pushDescriptors(),this.body.push(this.constructor),this.pushInherits())},e.prototype.pushInherits=function(){this.isDerived&&!this.pushedInherits&&(this.pushedInherits=!0,this.body.unshift(b.expressionStatement(b.callExpression(this.file.addHelper("inherits"),[this.classRef,this.superName]))))},e}();t.default=_,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i),a=r(2),o=n(a),u=r(10),l=n(u);t.default=function(e){var t=e.types,r=(0,l.default)(),n={"AssignmentExpression|UpdateExpression":function(e){if(!e.node[r]){e.node[r]=!0;var n=e.get(e.isAssignmentExpression()?"left":"argument");if(n.isIdentifier()){var i=n.node.name;if(this.scope.getBinding(i)===e.scope.getBinding(i)){var s=this.exports[i];if(s){var a=e.node,u=e.isUpdateExpression()&&!a.prefix;u&&("++"===a.operator?a=t.binaryExpression("+",a.argument,t.numericLiteral(1)):"--"===a.operator?a=t.binaryExpression("-",a.argument,t.numericLiteral(1)):u=!1);for(var l=s,c=Array.isArray(l),f=0,l=c?l:(0,o.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;a=this.buildCall(d,a).expression}u&&(a=t.sequenceExpression([a,e.node])),e.replaceWith(a)}}}}}};return{visitor:{CallExpression:function(e,r){if(e.node.callee.type===y){var n=r.contextIdent;e.replaceWith(t.callExpression(t.memberExpression(n,t.identifier("import")),e.node.arguments))}},ReferencedIdentifier:function(e,r){"__moduleName"!=e.node.name||e.scope.hasBinding("__moduleName")||e.replaceWith(t.memberExpression(r.contextIdent,t.identifier("id")))},Program:{enter:function(e,t){t.contextIdent=e.scope.generateUidIdentifier("context")},exit:function(e,r){function i(e,t){p[e]=p[e]||[],p[e].push(t)}function a(e,t,r){var n=void 0;d.forEach(function(t){t.key===e&&(n=t)}),n||d.push(n={key:e,imports:[],exports:[]}),n[t]=n[t].concat(r)}function u(e,r){return t.expressionStatement(t.callExpression(l,[t.stringLiteral(e),r]))}for(var l=e.scope.generateUidIdentifier("export"),c=r.contextIdent,p=(0,s.default)(null),d=[],y=[],v=[],g=[],b=[],E=[],x=e.get("body"),A=!0,S=x,_=Array.isArray(S),D=0,S=_?S:(0,o.default)(S);;){var C;if(_){if(D>=S.length)break;C=S[D++]}else{if(D=S.next(),D.done)break;C=D.value}var w=C;if(w.isExportDeclaration()&&(w=w.get("declaration")),w.isVariableDeclaration()&&"var"!==w.node.kind){A=!1;break}}for(var P=x,k=Array.isArray(P),F=0,P=k?P:(0,o.default)(P);;){var T;if(k){if(F>=P.length)break;T=P[F++]}else{if(F=P.next(),F.done)break;T=F.value}var O=T;if(A&&O.isFunctionDeclaration())y.push(O.node),E.push(O);else if(O.isImportDeclaration()){var B=O.node.source.value;a(B,"imports",O.node.specifiers);for(var R in O.getBindingIdentifiers())O.scope.removeBinding(R),b.push(t.identifier(R));O.remove()}else if(O.isExportAllDeclaration())a(O.node.source.value,"exports",O.node),O.remove();else if(O.isExportDefaultDeclaration()){var I=O.get("declaration");if(I.isClassDeclaration()||I.isFunctionDeclaration()){var M=I.node.id,N=[];M?(N.push(I.node),N.push(u("default",M)),i(M.name,"default")):N.push(u("default",t.toExpression(I.node))),!A||I.isClassDeclaration()?O.replaceWithMultiple(N):(y=y.concat(N),E.push(O))}else O.replaceWith(u("default",I.node))}else if(O.isExportNamedDeclaration()){var L=O.get("declaration");if(L.node){O.replaceWith(L);var j=[],U=void 0;if(O.isFunction()){var V=L.node,G=V.id.name;if(A)i(G,G),y.push(V),y.push(u(G,V.id)),E.push(O);else{var W;W={},W[G]=V.id,U=W}}else U=L.getBindingIdentifiers();for(var Y in U)i(Y,Y),j.push(u(Y,t.identifier(Y)));O.insertAfter(j)}else{var q=O.node.specifiers;if(q&&q.length)if(O.node.source)a(O.node.source.value,"exports",q),O.remove();else{for(var K=[],H=q,J=Array.isArray(H),X=0,H=J?H:(0,o.default)(H);;){var z;if(J){if(X>=H.length)break;z=H[X++]}else{if(X=H.next(),X.done)break;z=X.value}var $=z;K.push(u($.exported.name,$.local)),i($.local.name,$.exported.name)}O.replaceWithMultiple(K)}}}}d.forEach(function(r){for(var n=[],i=e.scope.generateUidIdentifier(r.key),s=r.imports,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var c;if(a){if(u>=s.length)break;c=s[u++]}else{if(u=s.next(),u.done)break;c=u.value}var f=c;t.isImportNamespaceSpecifier(f)?n.push(t.expressionStatement(t.assignmentExpression("=",f.local,i))):t.isImportDefaultSpecifier(f)&&(f=t.importSpecifier(f.local,t.identifier("default"))),t.isImportSpecifier(f)&&n.push(t.expressionStatement(t.assignmentExpression("=",f.local,t.memberExpression(i,f.imported))))}if(r.exports.length){var p=e.scope.generateUidIdentifier("exportObj");n.push(t.variableDeclaration("var",[t.variableDeclarator(p,t.objectExpression([]))]));for(var d=r.exports,h=Array.isArray(d),y=0,d=h?d:(0,o.default)(d);;){var b;if(h){if(y>=d.length)break;b=d[y++]}else{if(y=d.next(),y.done)break;b=y.value}var E=b;t.isExportAllDeclaration(E)?n.push(m({KEY:e.scope.generateUidIdentifier("key"),EXPORT_OBJ:p,TARGET:i})):t.isExportSpecifier(E)&&n.push(t.expressionStatement(t.assignmentExpression("=",t.memberExpression(p,E.exported),t.memberExpression(i,E.local))))}n.push(t.expressionStatement(t.callExpression(l,[p])))}g.push(t.stringLiteral(r.key)),v.push(t.functionExpression(null,[i],t.blockStatement(n)))});var Q=this.getModuleName();Q&&(Q=t.stringLiteral(Q)),A&&(0,f.default)(e,function(e){return b.push(e)}),b.length&&y.unshift(t.variableDeclaration("var",b.map(function(e){return t.variableDeclarator(e)}))),e.traverse(n,{exports:p,buildCall:u,scope:e.scope});for(var Z=E,ee=Array.isArray(Z),te=0,Z=ee?Z:(0,o.default)(Z);;){var re;if(ee){if(te>=Z.length)break;re=Z[te++]}else{if(te=Z.next(),te.done)break;re=te.value}re.remove()}e.node.body=[h({SYSTEM_REGISTER:t.memberExpression(t.identifier(r.opts.systemGlobal||"System"),t.identifier("register")),BEFORE_BODY:y,MODULE_NAME:Q,SETTERS:v,SOURCES:g,BODY:e.node.body,EXPORT_IDENTIFIER:l,CONTEXT_IDENTIFIER:c})]}}}}};var c=r(190),f=n(c),p=r(4),d=n(p),h=(0,d.default)('\n  SYSTEM_REGISTER(MODULE_NAME, [SOURCES], function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n    "use strict";\n    BEFORE_BODY;\n    return {\n      setters: [SETTERS],\n      execute: function () {\n        BODY;\n      }\n    };\n  });\n'),m=(0,d.default)('\n  for (var KEY in TARGET) {\n    if (KEY !== "default" && KEY !== "__esModule") EXPORT_OBJ[KEY] = TARGET[KEY];\n  }\n'),y="Import";e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e){if(e.isExpressionStatement()){var t=e.get("expression");if(!t.isCallExpression())return!1;if(!t.get("callee").isIdentifier({name:"define"}))return!1;var r=t.get("arguments");return!(3===r.length&&!r.shift().isStringLiteral())&&(2===r.length&&(!!r.shift().isArrayExpression()&&!!r.shift().isFunctionExpression()))}}var i=e.types;return{inherits:r(131),visitor:{Program:{exit:function(e,r){var s=e.get("body").pop();if(t(s)){var l=s.node.expression,c=l.arguments,f=3===c.length?c.shift():null,p=l.arguments[0],d=l.arguments[1],h=r.opts.globals||{},m=p.elements.map(function(e){return"module"===e.value||"exports"===e.value?i.identifier(e.value):i.callExpression(i.identifier("require"),[e])}),y=p.elements.map(function(e){if("module"===e.value)return i.identifier("mod");if("exports"===e.value)return i.memberExpression(i.identifier("mod"),i.identifier("exports"));var t=void 0;if(r.opts.exactGlobals){var s=h[e.value];t=s?s.split(".").reduce(function(e,t){return i.memberExpression(e,i.identifier(t))},i.identifier("global")):i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(e.value)))}else{var a=(0,n.basename)(e.value,(0,n.extname)(e.value)),o=h[a]||a;t=i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(o)))}return t}),v=f?f.value:this.file.opts.basename,g=i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(v))),b=null;if(r.opts.exactGlobals){var E=h[v];if(E){b=[];var x=E.split(".");g=x.slice(1).reduce(function(e,t){return b.push(a({GLOBAL_REFERENCE:e})),i.memberExpression(e,i.identifier(t))},i.memberExpression(i.identifier("global"),i.identifier(x[0])))}}var A=o({BROWSER_ARGUMENTS:y,PREREQUISITE_ASSIGNMENTS:b,GLOBAL_TO_ASSIGN:g});s.replaceWith(u({MODULE_NAME:f,AMD_ARGUMENTS:p,COMMON_ARGUMENTS:m,GLOBAL_EXPORT:A,FUNC:d}))}}}}}};var n=r(19),i=r(4),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=(0,s.default)("\n  GLOBAL_REFERENCE = GLOBAL_REFERENCE || {}\n"),o=(0,s.default)("\n  var mod = { exports: {} };\n  factory(BROWSER_ARGUMENTS);\n  PREREQUISITE_ASSIGNMENTS\n  GLOBAL_TO_ASSIGN = mod.exports;\n"),u=(0,s.default)('\n  (function (global, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(MODULE_NAME, AMD_ARGUMENTS, factory);\n    } else if (typeof exports !== "undefined") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      GLOBAL_EXPORT\n    }\n  })(this, FUNC);\n');e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,r,i){var s=e.specifiers[0];if(n.isExportNamespaceSpecifier(s)||n.isExportDefaultSpecifier(s)){var a=e.specifiers.shift(),o=i.generateUidIdentifier(a.exported.name),u=void 0;u=n.isExportNamespaceSpecifier(a)?n.importNamespaceSpecifier(o):n.importDefaultSpecifier(o),r.push(n.importDeclaration([u],e.source)),r.push(n.exportNamedDeclaration(null,[n.exportSpecifier(o,a.exported)])),t(e,r,i)}}var n=e.types;return{inherits:r(200),visitor:{ExportNamedDeclaration:function(e){var r=e.node,n=e.scope,i=[];t(r,i,n),i.length&&(r.specifiers.length>=1&&i.push(r),e.replaceWithMultiple(i))}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types;return{inherits:r(126),visitor:{Program:function(e,t){for(var r=t.file.ast.comments,n=r,s=Array.isArray(n),a=0,n=s?n:(0,i.default)(n);;){var o;if(s){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;u.value.indexOf("@flow")>=0&&(u.value=u.value.replace("@flow",""),u.value.replace(/\*/g,"").trim()||(u.ignore=!0))}},Flow:function(e){e.remove()},ClassProperty:function(e){e.node.variance=null,e.node.typeAnnotation=null,e.node.value||e.remove()},Class:function(e){e.node.implements=null,e.get("body.body").forEach(function(e){e.isClassProperty()&&(e.node.typeAnnotation=null,e.node.value||e.remove())})},AssignmentPattern:function(e){e.node.left.optional=!1},Function:function(e){for(var t=e.node,r=0;r<t.params.length;r++){t.params[r].optional=!1}},TypeCastExpression:function(e){var r=e.node;do{r=r.expression}while(t.isTypeCastExpression(r));e.replaceWith(r)}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e){var t=e.path.getData("functionBind");return t||(t=e.generateDeclaredUidIdentifier("context"),e.path.setData("functionBind",t))}function n(e,t){var r=e.object||e.callee.object;return t.isStatic(r)&&r}function i(e,r){var i=n(e,r);if(i)return i;var a=t(r);return e.object?e.callee=s.sequenceExpression([s.assignmentExpression("=",a,e.object),e.callee]):e.callee.object=s.assignmentExpression("=",a,e.callee.object),a}var s=e.types;return{inherits:r(201),visitor:{CallExpression:function(e){var t=e.node,r=e.scope,n=t.callee;if(s.isBindExpression(n)){var a=i(n,r);t.callee=s.memberExpression(n.callee,s.identifier("call")),t.arguments.unshift(a)}},BindExpression:function(e){
var t=e.node,r=e.scope,n=i(t,r);e.replaceWith(s.callExpression(s.memberExpression(t.callee,s.identifier("bind")),[n]))}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){var t=!1;return e.traverse({RestProperty:function(){t=!0,e.stop()}}),t}function n(e){for(var t=e.properties,r=Array.isArray(t),n=0,t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if(n=t.next(),n.done)break;s=n.value}var a=s;if(o.isSpreadProperty(a))return!0}return!1}function s(e,t,r){for(var n=t.pop(),s=[],a=t,u=Array.isArray(a),l=0,a=u?a:(0,i.default)(a);;){var c;if(u){if(l>=a.length)break;c=a[l++]}else{if(l=a.next(),l.done)break;c=l.value}var f=c,p=f.key;o.isIdentifier(p)&&!f.computed&&(p=o.stringLiteral(f.key.name)),s.push(p)}return[n.argument,o.callExpression(e.addHelper("objectWithoutProperties"),[r,o.arrayExpression(s)])]}function a(e,r,n,i){if(r.isAssignmentPattern())return void a(e,r.get("left"),n,i);if(r.isObjectPattern()&&t(r)){var s=e.scope.generateUidIdentifier("ref"),u=o.variableDeclaration("let",[o.variableDeclarator(r.node,s)]);u._blockHoist=n?i-n:1,e.ensureBlock(),e.get("body").unshiftContainer("body",u),r.replaceWith(s)}}var o=e.types;return{inherits:r(202),visitor:{Function:function(e){for(var t=e.get("params"),r=0;r<t.length;r++)a(t[r].parentPath,t[r],r,t.length)},VariableDeclarator:function(e,t){if(e.get("id").isObjectPattern()){var r=e;e.get("id").traverse({RestProperty:function(e){if(this.originalPath.node.id.properties.length>1&&!o.isIdentifier(this.originalPath.node.init)){var n=e.scope.generateUidIdentifierBasedOnNode(this.originalPath.node.init,"ref");return this.originalPath.insertBefore(o.variableDeclarator(n,this.originalPath.node.init)),void this.originalPath.replaceWith(o.variableDeclarator(this.originalPath.node.id,n))}var i=this.originalPath.node.init,a=[];e.findParent(function(e){if(e.isObjectProperty())a.unshift(e.node.key.name);else if(e.isVariableDeclarator())return!0}),a.length&&a.forEach(function(e){i=o.memberExpression(i,o.identifier(e))});var u=s(t,e.parentPath.node.properties,i),l=u[0],c=u[1];r.insertAfter(o.variableDeclarator(l,c)),r=r.getSibling(r.key+1),0===e.parentPath.node.properties.length&&e.findParent(function(e){return e.isObjectProperty()||e.isVariableDeclarator()}).remove()}},{originalPath:e})}},ExportNamedDeclaration:function(e){var r=e.get("declaration");if(r.isVariableDeclaration()&&t(r)){var n=[];for(var i in e.getOuterBindingIdentifiers(e)){var s=o.identifier(i);n.push(o.exportSpecifier(s,s))}e.replaceWith(r.node),e.insertAfter(o.exportNamedDeclaration(null,n))}},CatchClause:function(e){var t=e.get("param");a(t.parentPath,t)},AssignmentExpression:function(e,r){var n=e.get("left");if(n.isObjectPattern()&&t(n)){var i=[],a=void 0;(e.isCompletionRecord()||e.parentPath.isExpressionStatement())&&(a=e.scope.generateUidIdentifierBasedOnNode(e.node.right,"ref"),i.push(o.variableDeclaration("var",[o.variableDeclarator(a,e.node.right)])));var u=s(r,e.node.left.properties,a),l=u[0],c=u[1],f=o.clone(e.node);f.right=a,i.push(o.expressionStatement(f)),i.push(o.toStatement(o.assignmentExpression("=",l,c))),a&&i.push(o.expressionStatement(a)),e.replaceWithMultiple(i)}},ForXStatement:function(e){var r=e.node,n=e.scope,i=e.get("left"),s=r.left;if(o.isObjectPattern(s)&&t(i)){var a=n.generateUidIdentifier("ref");return r.left=o.variableDeclaration("var",[o.variableDeclarator(a)]),e.ensureBlock(),void r.body.body.unshift(o.variableDeclaration("var",[o.variableDeclarator(s,a)]))}if(o.isVariableDeclaration(s)){var u=s.declarations[0].id;if(o.isObjectPattern(u)){var l=n.generateUidIdentifier("ref");r.left=o.variableDeclaration(s.kind,[o.variableDeclarator(l,null)]),e.ensureBlock(),r.body.body.unshift(o.variableDeclaration(r.left.kind,[o.variableDeclarator(u,l)]))}}},ObjectExpression:function(e,t){function r(){u.length&&(a.push(o.objectExpression(u)),u=[])}if(n(e.node)){var s=t.opts.useBuiltIns||!1;if("boolean"!=typeof s)throw new Error("transform-object-rest-spread currently only accepts a boolean option for useBuiltIns (defaults to false)");for(var a=[],u=[],l=e.node.properties,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;o.isSpreadProperty(d)?(r(),a.push(d.argument)):u.push(d)}r(),o.isObjectExpression(a[0])||a.unshift(o.objectExpression([]));var h=s?o.memberExpression(o.identifier("Object"),o.identifier("assign")):t.addHelper("extends");e.replaceWith(o.callExpression(h,a))}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){for(var r=t.arguments[0].properties,i=!0,s=0;s<r.length;s++){var a=r[s],o=n.toComputedKey(a);if(n.isLiteral(o,{value:"displayName"})){i=!1;break}}i&&r.unshift(n.objectProperty(n.identifier("displayName"),n.stringLiteral(e)))}function r(e){if(!e||!n.isCallExpression(e))return!1;if(!s(e.callee)&&!a(e.callee))return!1;var t=e.arguments;if(1!==t.length)return!1;var r=t[0];return!!n.isObjectExpression(r)}var n=e.types,s=n.buildMatchMemberExpression("React.createClass"),a=function(e){return"createReactClass"===e.name};return{visitor:{ExportDefaultDeclaration:function(e,n){var s=e.node;if(r(s.declaration)){var a=n.file.opts.basename;"index"===a&&(a=i.default.basename(i.default.dirname(n.file.opts.filename))),t(a,s.declaration)}},CallExpression:function(e){var i=e.node;if(r(i)){var s=void 0;e.find(function(e){if(e.isAssignmentExpression())s=e.node.left;else if(e.isObjectProperty())s=e.node.key;else if(e.isVariableDeclarator())s=e.node.id;else if(e.isStatement())return!0;if(s)return!0}),s&&(n.isMemberExpression(s)&&(s=s.property),n.isIdentifier(s)&&t(s.name,i))}}}}};var n=r(19),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){var t=e.types,r=/\*?\s*@jsx\s+([^\s]+)/,n=(0,l.default)({pre:function(e){var r=e.tagName,n=e.args;t.react.isCompatTag(r)?n.push(t.stringLiteral(r)):n.push(e.tagExpr)},post:function(e,t){e.callee=t.get("jsxIdentifier")()}});return n.Program=function(e,n){for(var i=n.file,a=n.opts.pragma||"React.createElement",o=i.ast.comments,u=Array.isArray(o),l=0,o=u?o:(0,s.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c,p=r.exec(f.value);if(p){if("React.DOM"===(a=p[1]))throw i.buildCodeFrameError(f,"The @jsx React.DOM pragma has been deprecated as of React 0.12");break}}n.set("jsxIdentifier",function(){return a.split(".").map(function(e){return t.identifier(e)}).reduce(function(e,r){return t.memberExpression(e,r)})})},{inherits:o.default,visitor:n}};var a=r(127),o=n(a),u=r(351),l=n(u);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(){return{visitor:{Program:function(e,t){if(!1!==t.opts.strict&&!1!==t.opts.strictMode){for(var r=e.node,n=r.directives,s=Array.isArray(n),o=0,n=s?n:(0,i.default)(n);;){var u;if(s){if(o>=n.length)break;u=n[o++]}else{if(o=n.next(),o.done)break;u=o.value}if("use strict"===u.value.value)return}e.unshiftContainer("directives",a.directive(a.directiveLiteral("use strict")))}}}}};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=["commonjs","amd","umd","systemjs"],n=!1,i="commonjs",s=!1;if(void 0!==t&&(void 0!==t.loose&&(n=t.loose),void 0!==t.modules&&(i=t.modules),void 0!==t.spec&&(s=t.spec)),"boolean"!=typeof n)throw new Error("Preset es2015 'loose' option must be a boolean.");if("boolean"!=typeof s)throw new Error("Preset es2015 'spec' option must be a boolean.");if(!1!==i&&-1===r.indexOf(i))throw new Error("Preset es2015 'modules' option must be 'false' to indicate no modules\nor a module type which be be one of: 'commonjs' (default), 'amd', 'umd', 'systemjs'");var o={loose:n};return{plugins:[[a.default,{loose:n,spec:s}],u.default,c.default,[p.default,{spec:s}],h.default,[y.default,o],g.default,E.default,A.default,[_.default,o],[C.default,o],P.default,F.default,O.default,[R.default,o],M.default,[L.default,o],U.default,G.default,"commonjs"===i&&[Y.default,o],"systemjs"===i&&[K.default,o],"amd"===i&&[J.default,o],"umd"===i&&[z.default,o],[Q.default,{async:!1,asyncGenerators:!1}]].filter(Boolean)}}t.__esModule=!0;var s=r(83),a=n(s),o=r(76),u=n(o),l=r(75),c=n(l),f=r(68),p=n(f),d=r(69),h=n(d),m=r(71),y=n(m),v=r(78),g=n(v),b=r(80),E=n(b),x=r(130),A=n(x),S=r(72),_=n(S),D=r(74),C=n(D),w=r(82),P=n(w),k=r(85),F=n(k),T=r(66),O=n(T),B=r(81),R=n(B),I=r(79),M=n(I),N=r(73),L=n(N),j=r(70),U=n(j),V=r(84),G=n(V),W=r(77),Y=n(W),q=r(208),K=n(q),H=r(131),J=n(H),X=r(209),z=n(X),$=r(86),Q=n($),Z=i({});t.default=Z,Object.defineProperty(Z,"buildPreset",{configurable:!0,writable:!0,enumerable:!1,value:i}),e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(132),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={plugins:[i.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(128),s=n(i),a=r(129),o=n(a);t.default={plugins:[s.default,o.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(221),s=n(i),a=r(203),o=n(a),u=r(210),l=n(u);t.default={presets:[s.default],plugins:[o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(222),s=n(i),a=r(204),o=n(a),u=r(205),l=n(u),c=r(324),f=n(c);t.default={presets:[s.default],plugins:[f.default,o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(128),s=n(i),a=r(129),o=n(a),u=r(132),l=n(u),c=r(213),f=n(c),p=r(327),d=n(p);t.default={plugins:[s.default,o.default,l.default,d.default,f.default]},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function e(t,r){(0,i.default)(this,e),this.file=t,this.options=r};t.default=s,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.Flow=t.Pure=t.Generated=t.User=t.Var=t.BlockScoped=t.Referenced=t.Scope=t.Expression=t.Statement=t.BindingIdentifier=t.ReferencedMemberExpression=t.ReferencedIdentifier=void 0;var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);t.ReferencedIdentifier={types:["Identifier","JSXIdentifier"],checkPath:function(e,t){var r=e.node,s=e.parent;if(!i.isIdentifier(r,t)&&!i.isJSXMemberExpression(s,t)){if(!i.isJSXIdentifier(r,t))return!1;if(n.react.isCompatTag(r.name))return!1}return i.isReferenced(r,s)}},t.ReferencedMemberExpression={types:["MemberExpression"],checkPath:function(e){var t=e.node,r=e.parent;return i.isMemberExpression(t)&&i.isReferenced(t,r)}},t.BindingIdentifier={types:["Identifier"],checkPath:function(e){var t=e.node,r=e.parent;return i.isIdentifier(t)&&i.isBinding(t,r)}},t.Statement={types:["Statement"],checkPath:function(e){var t=e.node,r=e.parent;if(i.isStatement(t)){if(i.isVariableDeclaration(t)){if(i.isForXStatement(r,{left:t}))return!1;if(i.isForStatement(r,{init:t}))return!1}return!0}return!1}},t.Expression={types:["Expression"],checkPath:function(e){return e.isIdentifier()?e.isReferencedIdentifier():i.isExpression(e.node)}},t.Scope={types:["Scopable"],checkPath:function(e){return i.isScope(e.node,e.parent)}},t.Referenced={checkPath:function(e){return i.isReferenced(e.node,e.parent)}},t.BlockScoped={checkPath:function(e){return i.isBlockScoped(e.node)}},t.Var={types:["VariableDeclaration"],checkPath:function(e){return i.isVar(e.node)}},t.User={checkPath:function(e){return e.node&&!!e.node.loc}},t.Generated={checkPath:function(e){return!e.isUser()}},t.Pure={checkPath:function(e,t){return e.scope.isPure(e.node,t)}},t.Flow={types:["Flow","ImportDeclaration","ExportDeclaration","ImportSpecifier"],checkPath:function(e){var t=e.node;return!!i.isFlow(t)||(i.isImportDeclaration(t)?"type"===t.importKind||"typeof"===t.importKind:i.isExportDeclaration(t)?"type"===t.exportKind:!!i.isImportSpecifier(t)&&("type"===t.importKind||"typeof"===t.importKind))}}},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function(){function e(t){var r=t.existing,n=t.identifier,s=t.scope,a=t.path,o=t.kind;(0,i.default)(this,e),this.identifier=n,this.scope=s,this.path=a,this.kind=o,this.constantViolations=[],this.constant=!0,this.referencePaths=[],this.referenced=!1,this.references=0,this.clearValue(),r&&(this.constantViolations=[].concat(r.path,r.constantViolations,this.constantViolations))}return e.prototype.deoptValue=function(){this.clearValue(),this.hasDeoptedValue=!0},e.prototype.setValue=function(e){this.hasDeoptedValue||(this.hasValue=!0,this.value=e)},e.prototype.clearValue=function(){this.hasDeoptedValue=!1,this.hasValue=!1,this.value=null},e.prototype.reassign=function(e){this.constant=!1,-1===this.constantViolations.indexOf(e)&&this.constantViolations.push(e)},e.prototype.reference=function(e){-1===this.referencePaths.indexOf(e)&&(this.referenced=!0,this.references++,this.referencePaths.push(e))},e.prototype.dereference=function(){this.references--,this.referenced=!!this.references},e}();t.default=s,e.exports=t.default},function(e,t,r){"use strict";function n(e,t,r){for(var n=[].concat(e),i=(0,a.default)(null);n.length;){var s=n.shift();if(s){var o=u.getBindingIdentifiers.keys[s.type];if(u.isIdentifier(s))if(t){var l=i[s.name]=i[s.name]||[];l.push(s)}else i[s.name]=s;else if(u.isExportDeclaration(s))u.isDeclaration(s.declaration)&&n.push(s.declaration);else{if(r){if(u.isFunctionDeclaration(s)){n.push(s.id);continue}if(u.isFunctionExpression(s))continue}if(o)for(var c=0;c<o.length;c++){var f=o[c];s[f]&&(n=n.concat(s[f]))}}}}return i}function i(e,t){return n(e,t,!0)}t.__esModule=!0;var s=r(9),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.getBindingIdentifiers=n,t.getOuterBindingIdentifiers=i;var o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o);n.keys={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],OpaqueType:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],RestProperty:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]}},function(e,t){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,r){"use strict";var n=r(138),i=r(13)("toStringTag"),s="Arguments"==n(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,r,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=a(t=Object(e),i))?r:s?n(t):"Object"==(o=n(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,r){"use strict";var n=r(146),i=r(57).getWeak,s=r(21),a=r(16),o=r(136),u=r(55),l=r(137),c=r(28),f=r(58),p=l(5),d=l(6),h=0,m=function(e){return e._l||(e._l=new y)},y=function(){this.a=[]},v=function(e,t){return p(e.a,function(e){return e[0]===t})};y.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var r=v(this,e);r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=d(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,r,s){var l=e(function(e,n){o(e,l,t,"_i"),e._t=t,e._i=h++,e._l=void 0,void 0!=n&&u(n,r,e[s],e)});return n(l.prototype,{delete:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(f(this,t)).delete(e):r&&c(r,this._i)&&delete r[this._i]},has:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(f(this,t)).has(e):r&&c(r,this._i)}}),l},def:function(e,t,r){var n=i(s(t),!0);return!0===n?m(e).set(t,r):n[e._i]=r,e},ufstore:m}},function(e,t,r){"use strict";var n=r(16),i=r(15).document,s=n(i)&&n(i.createElement);e.exports=function(e){return s?i.createElement(e):{}}},function(e,t,r){"use strict";e.exports=!r(22)&&!r(27)(function(){return 7!=Object.defineProperty(r(230)("div"),"a",{get:function(){return 7}}).a})},function(e,t,r){"use strict";var n=r(138);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t){"use strict";e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,r){"use strict";var n=r(44),i=r(145),s=r(91),a=r(94),o=r(142),u=Object.assign;e.exports=!u||r(27)(function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach(function(e){t[e]=e}),7!=u({},e)[r]||Object.keys(u({},t)).join("")!=n})?function(e,t){for(var r=a(e),u=arguments.length,l=1,c=i.f,f=s.f;u>l;)for(var p,d=o(arguments[l++]),h=c?n(d).concat(c(d)):n(d),m=h.length,y=0;m>y;)f.call(d,p=h[y++])&&(r[p]=d[p]);return r}:u},function(e,t,r){"use strict";var n=r(91),i=r(92),s=r(37),a=r(154),o=r(28),u=r(231),l=Object.getOwnPropertyDescriptor;t.f=r(22)?l:function(e,t){if(e=s(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(o(e,t))return i(!n.f.call(e,t),e[t])}},function(e,t,r){"use strict";var n=r(237),i=r(141).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},function(e,t,r){"use strict";var n=r(28),i=r(37),s=r(420)(!1),a=r(150)("IE_PROTO");e.exports=function(e,t){var r,o=i(e),u=0,l=[];for(r in o)r!=a&&n(o,r)&&l.push(r);for(;t.length>u;)n(o,r=t[u++])&&(~s(l,r)||l.push(r));return l}},function(e,t,r){"use strict";var n=r(228),i=r(13)("iterator"),s=r(56);e.exports=r(5).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||s[n(e)]}},function(e,t,r){(function(n){"use strict";function i(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function s(e){var r=this.useColors;if(e[0]=(r?"%c":"")+this.namespace+(r?" %c":" ")+e[0]+(r?"%c ":" ")+"+"+t.humanize(this.diff),r){var n="color: "+this.color;e.splice(1,0,n,"color: inherit");var i=0,s=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(s=i))}),e.splice(s,0,n)}}function a(){return"object"===("undefined"==typeof console?"undefined":l(console))&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function o(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function u(){var e;try{e=t.storage.debug}catch(e){}return!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG),e}var l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t=e.exports=r(458),t.log=a,t.formatArgs=s,t.save=o,t.load=u,t.useColors=i,t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(u())}).call(t,r(8))},function(e,t){"use strict";!function(){function t(e){return 48<=e&&e<=57}function r(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70}function n(e){return e>=48&&e<=55}function i(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&d.indexOf(e)>=0}function s(e){return 10===e||13===e||8232===e||8233===e}function a(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}function o(e){return e<128?h[e]:p.NonAsciiIdentifierStart.test(a(e))}function u(e){return e<128?m[e]:p.NonAsciiIdentifierPart.test(a(e))}function l(e){return e<128?h[e]:f.NonAsciiIdentifierStart.test(a(e))}function c(e){return e<128?m[e]:f.NonAsciiIdentifierPart.test(a(e))}var f,p,d,h,m,y;for(p={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},f={
NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},d=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],h=new Array(128),y=0;y<128;++y)h[y]=y>=97&&y<=122||y>=65&&y<=90||36===y||95===y;for(m=new Array(128),y=0;y<128;++y)m[y]=y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||36===y||95===y;e.exports={isDecimalDigit:t,isHexDigit:r,isOctalDigit:n,isWhiteSpace:i,isLineTerminator:s,isIdentifierStartES5:o,isIdentifierPartES5:u,isIdentifierStartES6:l,isIdentifierPartES6:c}}()},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Set");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new i;++t<r;)this.add(e[t])}var i=r(160),s=r(561),a=r(562);n.prototype.add=n.prototype.push=s,n.prototype.has=a,e.exports=n},function(e,t,r){"use strict";var n=r(17),i=n.Uint8Array;e.exports=i},function(e,t){"use strict";function r(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}e.exports=r},function(e,t,r){"use strict";function n(e,t){var r=a(e),n=!r&&s(e),c=!r&&!n&&o(e),p=!r&&!n&&!c&&l(e),d=r||n||c||p,h=d?i(e.length,String):[],m=h.length;for(var y in e)!t&&!f.call(e,y)||d&&("length"==y||c&&("offset"==y||"parent"==y)||p&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||u(y,m))||h.push(y);return h}var i=r(513),s=r(112),a=r(6),o=r(113),u=r(171),l=r(177),c=Object.prototype,f=c.hasOwnProperty;e.exports=n},function(e,t){"use strict";function r(e,t,r,n){var i=-1,s=null==e?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){(void 0===r||s(e[t],r))&&(void 0!==r||t in e)||i(e,t,r)}var i=r(163),s=r(46);e.exports=n},function(e,t,r){"use strict";var n=r(527),i=n();e.exports=i},function(e,t,r){"use strict";function n(e,t){t=i(t,e);for(var r=0,n=t.length;null!=e&&r<n;)e=e[s(t[r++])];return r&&r==n?e:void 0}var i=r(255),s=r(108);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=t(e);return s(e)?n:i(n,r(e))}var i=r(161),s=r(6);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,a,o){return e===t||(null==e||null==t||!s(e)&&!s(t)?e!==e&&t!==t:i(e,t,r,a,n,o))}var i=r(494),s=r(25);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=-1,n=s(e)?Array(e.length):[];return i(e,function(e,i,s){n[++r]=t(e,i,s)}),n}var i=r(487),s=r(24);e.exports=n},function(e,t,r){"use strict";function n(e){if("string"==typeof e)return e;if(a(e))return s(e,n)+"";if(o(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=r(45),s=r(60),a=r(6),o=r(62),u=1/0,l=i?i.prototype:void 0,c=l?l.toString:void 0;e.exports=n},function(e,t){"use strict";function r(e,t){return e.has(t)}e.exports=r},function(e,t,r){"use strict";function n(e,t){return i(e)?e:s(e,t)?[e]:a(o(e))}var i=r(6),s=r(173),a=r(571),o=r(114);e.exports=n},function(e,t,r){(function(e){"use strict";function n(e,t){if(t)return e.slice();var r=e.length,n=c?c(r):new e.constructor(r);return e.copy(n),n}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(17),a="object"==i(t)&&t&&!t.nodeType&&t,o=a&&"object"==i(e)&&e&&!e.nodeType&&e,u=o&&o.exports===a,l=u?s.Buffer:void 0,c=l?l.allocUnsafe:void 0;e.exports=n}).call(t,r(39)(e))},function(e,t,r){"use strict";function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var i=r(167);e.exports=n},function(e,t,r){"use strict";function n(e){return function(t,r,n){var o=Object(t);if(!s(t)){var u=i(r,3);t=a(t),r=function(e){return u(o[e],e,o)}}var l=e(t,r,n);return l>-1?o[u?t[l]:l]:void 0}}var i=r(61),s=r(24),a=r(32);e.exports=n},function(e,t,r){"use strict";var n=r(38),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},function(e,t,r){"use strict";function n(e,t,r,n,l,c){var f=r&o,p=e.length,d=t.length;if(p!=d&&!(f&&d>p))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var m=-1,y=!0,v=r&u?new i:void 0;for(c.set(e,t),c.set(t,e);++m<p;){var g=e[m],b=t[m];if(n)var E=f?n(b,g,m,t,e,c):n(g,b,m,e,t,c);if(void 0!==E){if(E)continue;y=!1;break}if(v){if(!s(t,function(e,t){if(!a(v,t)&&(g===e||l(g,e,r,n,c)))return v.push(t)})){y=!1;break}}else if(g!==b&&!l(g,b,r,n,c)){y=!1;break}}return c.delete(e),c.delete(t),y}var i=r(242),s=r(482),a=r(254),o=1,u=2;e.exports=n},function(e,t){(function(t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n="object"==(void 0===t?"undefined":r(t))&&t&&t.Object===Object&&t;e.exports=n}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return i(e,a,s)}var i=r(250),s=r(170),a=r(32);e.exports=n},function(e,t,r){"use strict";var n=r(161),i=r(169),s=r(170),a=r(279),o=Object.getOwnPropertySymbols,u=o?function(e){for(var t=[];e;)n(t,s(e)),e=i(e);return t}:a;e.exports=u},function(e,t,r){"use strict";var n=r(472),i=r(159),s=r(474),a=r(241),o=r(475),u=r(30),l=r(272),c=l(n),f=l(i),p=l(s),d=l(a),h=l(o),m=u;(n&&"[object DataView]"!=m(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=m(new i)||s&&"[object Promise]"!=m(s.resolve())||a&&"[object Set]"!=m(new a)||o&&"[object WeakMap]"!=m(new o))&&(m=function(e){var t=u(e),r="[object Object]"==t?e.constructor:void 0,n=r?l(r):"";if(n)switch(n){case c:return"[object DataView]";case f:return"[object Map]";case p:return"[object Promise]";case d:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=m},function(e,t,r){"use strict";function n(e,t,r){t=i(t,e);for(var n=-1,c=t.length,f=!1;++n<c;){var p=l(t[n]);if(!(f=null!=e&&r(e,p)))break;e=e[p]}return f||++n!=c?f:!!(c=null==e?0:e.length)&&u(c)&&o(p,c)&&(a(e)||s(e))}var i=r(255),s=r(112),a=r(6),o=r(171),u=r(176),l=r(108);e.exports=n},function(e,t,r){"use strict";function n(e){return"function"!=typeof e.constructor||a(e)?{}:i(s(e))}var i=r(486),s=r(169),a=r(105);e.exports=n},function(e,t,r){"use strict";function n(e){return e===e&&!i(e)}var i=r(18);e.exports=n},function(e,t){"use strict";function r(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}e.exports=r},function(e,t){"use strict";function r(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}e.exports=r},function(e,t,r){(function(e){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(261),s="object"==n(t)&&t&&!t.nodeType&&t,a=s&&"object"==n(e)&&e&&!e.nodeType&&e,o=a&&a.exports===s,u=o&&i.process,l=function(){try{return u&&u.binding&&u.binding("util")}catch(e){}}();e.exports=l}).call(t,r(39)(e))},function(e,t){"use strict";function r(e,t){return function(r){return e(t(r))}}e.exports=r},function(e,t){"use strict";function r(e){if(null!=e){try{return i.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var n=Function.prototype,i=n.toString;e.exports=r},function(e,t,r){"use strict";var n=r(244),i=r(573),s=r(101),a=r(529),o=s(function(e){return e.push(void 0,a),n(i,void 0,e)});e.exports=o},function(e,t,r){"use strict";function n(e,t){return null!=e&&s(e,t,i)}var i=r(490),s=r(265);e.exports=n},function(e,t,r){"use strict";function n(e){if(!a(e)||i(e)!=o)return!1;var t=s(e);if(null===t)return!0;var r=f.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&c.call(r)==p}var i=r(30),s=r(169),a=r(25),o="[object Object]",u=Function.prototype,l=Object.prototype,c=u.toString,f=l.hasOwnProperty,p=c.call(Object);e.exports=n},function(e,t,r){"use strict";var n=r(498),i=r(102),s=r(270),a=s&&s.isRegExp,o=a?i(a):n;e.exports=o},function(e,t,r){"use strict";var n=r(101),i=r(593),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){return t=(r?s(e,t,r):void 0===t)?1:a(t),i(o(e),t)}var i=r(510),s=r(172),a=r(48),o=r(114);e.exports=n},function(e,t){"use strict";function r(){return[]}e.exports=r},function(e,t,r){"use strict";function n(e){return null==e?[]:i(e,s(e))}var i=r(515),s=r(32);e.exports=n},function(e,t){"use strict";function r(e,t,r){if(c)try{c.call(l,e,t,{value:r})}catch(n){e[t]=r}else e[t]=r}function n(e){return e&&(r(e,"call",e.call),r(e,"apply",e.apply)),e}function i(e){return f?f.call(l,e):(m.prototype=e||null,new m)}function s(){do{var e=a(h.call(d.call(y(),36),2))}while(p.call(v,e));return v[e]=e}function a(e){var t={};return t[e]=!0,Object.keys(t)[0]}function o(e){return i(null)}function u(e){function t(t){function n(r,n){if(r===u)return n?i=null:i||(i=e(t))}var i;r(t,a,n)}function n(e){return p.call(e,a)||t(e),e[a](u)}var a=s(),u=i(null);return e=e||o,n.forget=function(e){p.call(e,a)&&e[a](u,!0)},n}var l=Object,c=Object.defineProperty,f=Object.create;n(c),n(f);var p=n(Object.prototype.hasOwnProperty),d=n(Number.prototype.toString),h=n(String.prototype.slice),m=function(){},y=Math.random,v=i(null);t.makeUniqueKey=s;var g=Object.getOwnPropertyNames;Object.getOwnPropertyNames=function(e){for(var t=g(e),r=0,n=0,i=t.length;r<i;++r)p.call(v,t[r])||(r>n&&(t[n]=t[r]),++n);return t.length=n,t},t.makeAccessor=u},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(a){var o="object"==s(t)&&t,u="object"==s(e)&&e&&e.exports==o&&e,l="object"==(void 0===i?"undefined":s(i))&&i;l.global!==l&&l.window!==l||(a=l);var c={rangeOrder:"A range’s `stop` value must be greater than or equal to the `start` value.",codePointRange:"Invalid code point value. Code points range from U+000000 to U+10FFFF."},f=/\\x00([^0123456789]|$)/g,p={},d=p.hasOwnProperty,h=function(e,t){for(var r=-1,n=e.length;++r<n;)t(e[r],r)},m=p.toString,y=function(e){return"[object Array]"==m.call(e)},v=function(e){return"number"==typeof e||"[object Number]"==m.call(e)},g=function(e,t){var r=String(e);return r.length<t?("0000"+r).slice(-t):r},b=function(e){return Number(e).toString(16).toUpperCase()},E=[].slice,x=function(e){for(var t,r=-1,n=e.length,i=n-1,s=[],a=!0,o=0;++r<n;)if(t=e[r],a)s.push(t),o=t,a=!1;else if(t==o+1){if(r!=i){o=t;continue}a=!0,s.push(t+1)}else s.push(o+1,t),o=t;return a||s.push(t+1),s},A=function(e,t){for(var r,n,i=0,s=e.length;i<s;){if(r=e[i],n=e[i+1],t>=r&&t<n)return t==r?n==r+1?(e.splice(i,2),e):(e[i]=t+1,e):t==n-1?(e[i+1]=t,e):(e.splice(i,2,r,t,t+1,n),e);i+=2}return e},S=function(e,t,r){if(r<t)throw Error(c.rangeOrder);for(var n,i,s=0;s<e.length;){if(n=e[s],i=e[s+1]-1,n>r)return e;if(t<=n&&r>=i)e.splice(s,2);else{if(t>=n&&r<i)return t==n?(e[s]=r+1,e[s+1]=i+1,e):(e.splice(s,2,n,t,r+1,i+1),e);if(t>=n&&t<=i)e[s+1]=t;else if(r>=n&&r<=i)return e[s]=r+1,e;s+=2}}return e},_=function(e,t){var r,n,i=0,s=null,a=e.length;if(t<0||t>1114111)throw RangeError(c.codePointRange);for(;i<a;){if(r=e[i],n=e[i+1],t>=r&&t<n)return e;if(t==r-1)return e[i]=t,e;if(r>t)return e.splice(null!=s?s+2:0,0,t,t+1),e;if(t==n)return t+1==e[i+2]?(e.splice(i,4,r,e[i+3]),e):(e[i+1]=t+1,e);s=i,i+=2}return e.push(t,t+1),e},D=function(e,t){for(var r,n,i=0,s=e.slice(),a=t.length;i<a;)r=t[i],n=t[i+1]-1,s=r==n?_(s,r):w(s,r,n),i+=2;return s},C=function(e,t){for(var r,n,i=0,s=e.slice(),a=t.length;i<a;)r=t[i],n=t[i+1]-1,s=r==n?A(s,r):S(s,r,n),i+=2;return s},w=function(e,t,r){if(r<t)throw Error(c.rangeOrder);if(t<0||t>1114111||r<0||r>1114111)throw RangeError(c.codePointRange);for(var n,i,s=0,a=!1,o=e.length;s<o;){if(n=e[s],i=e[s+1],a){if(n==r+1)return e.splice(s-1,2),e;if(n>r)return e;n>=t&&n<=r&&(i>t&&i-1<=r?(e.splice(s,2),s-=2):(e.splice(s-1,2),s-=2))}else{if(n==r+1)return e[s]=t,e;if(n>r)return e.splice(s,0,t,r+1),e;if(t>=n&&t<i&&r+1<=i)return e;t>=n&&t<i||i==t?(e[s+1]=r+1,a=!0):t<=n&&r+1>=i&&(e[s]=t,e[s+1]=r+1,a=!0)}s+=2}return a||e.push(t,r+1),e},P=function(e,t){var r=0,n=e.length,i=e[r],s=e[n-1];if(n>=2&&(t<i||t>s))return!1;for(;r<n;){if(i=e[r],s=e[r+1],t>=i&&t<s)return!0;r+=2}return!1},k=function(e,t){for(var r,n=0,i=t.length,s=[];n<i;)r=t[n],P(e,r)&&s.push(r),++n;return x(s)},F=function(e){return!e.length},T=function(e){return 2==e.length&&e[0]+1==e[1]},O=function(e){for(var t,r,n=0,i=[],s=e.length;n<s;){for(t=e[n],r=e[n+1];t<r;)i.push(t),++t;n+=2}return i},B=Math.floor,R=function(e){return parseInt(B((e-65536)/1024)+55296,10)},I=function(e){return parseInt((e-65536)%1024+56320,10)},M=String.fromCharCode,N=function(e){return 9==e?"\\t":10==e?"\\n":12==e?"\\f":13==e?"\\r":92==e?"\\\\":36==e||e>=40&&e<=43||45==e||46==e||63==e||e>=91&&e<=94||e>=123&&e<=125?"\\"+M(e):e>=32&&e<=126?M(e):e<=255?"\\x"+g(b(e),2):"\\u"+g(b(e),4)},L=function(e){return e<=65535?N(e):"\\u{"+e.toString(16).toUpperCase()+"}"},j=function(e){var t,r=e.length,n=e.charCodeAt(0);return n>=55296&&n<=56319&&r>1?(t=e.charCodeAt(1),1024*(n-55296)+t-56320+65536):n},U=function(e){var t,r,n="",i=0,s=e.length;if(T(e))return N(e[0]);for(;i<s;)t=e[i],r=e[i+1]-1,n+=t==r?N(t):t+1==r?N(t)+N(r):N(t)+"-"+N(r),i+=2;return"["+n+"]"},V=function(e){var t,r,n="",i=0,s=e.length;if(T(e))return L(e[0]);for(;i<s;)t=e[i],r=e[i+1]-1,n+=t==r?L(t):t+1==r?L(t)+L(r):L(t)+"-"+L(r),i+=2;return"["+n+"]"},G=function(e){for(var t,r,n=[],i=[],s=[],a=[],o=0,u=e.length;o<u;)t=e[o],r=e[o+1]-1,t<55296?(r<55296&&s.push(t,r+1),r>=55296&&r<=56319&&(s.push(t,55296),n.push(55296,r+1)),r>=56320&&r<=57343&&(s.push(t,55296),n.push(55296,56320),i.push(56320,r+1)),r>57343&&(s.push(t,55296),n.push(55296,56320),i.push(56320,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>=55296&&t<=56319?(r>=55296&&r<=56319&&n.push(t,r+1),r>=56320&&r<=57343&&(n.push(t,56320),i.push(56320,r+1)),r>57343&&(n.push(t,56320),i.push(56320,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>=56320&&t<=57343?(r>=56320&&r<=57343&&i.push(t,r+1),r>57343&&(i.push(t,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>57343&&t<=65535?r<=65535?s.push(t,r+1):(s.push(t,65536),a.push(65536,r+1)):a.push(t,r+1),o+=2;return{loneHighSurrogates:n,loneLowSurrogates:i,bmp:s,astral:a}},W=function(e){for(var t,r,n,i,s,a,o=[],u=[],l=!1,c=-1,f=e.length;++c<f;)if(t=e[c],r=e[c+1]){for(n=t[0],i=t[1],s=r[0],a=r[1],u=i;s&&n[0]==s[0]&&n[1]==s[1];)u=T(a)?_(u,a[0]):w(u,a[0],a[1]-1),++c,t=e[c],n=t[0],i=t[1],r=e[c+1],s=r&&r[0],a=r&&r[1],l=!0;o.push([n,l?u:i]),l=!1}else o.push(t);return Y(o)},Y=function(e){if(1==e.length)return e;for(var t=-1,r=-1;++t<e.length;){var n=e[t],i=n[1],s=i[0],a=i[1];for(r=t;++r<e.length;){var o=e[r],u=o[1],l=u[0],c=u[1];s==l&&a==c&&(T(o[0])?n[0]=_(n[0],o[0][0]):n[0]=w(n[0],o[0][0],o[0][1]-1),e.splice(r,1),--r)}}return e},q=function(e){if(!e.length)return[];for(var t,r,n,i,s,a,o=0,u=[],l=e.length;o<l;){t=e[o],r=e[o+1]-1,n=R(t),i=I(t),s=R(r),a=I(r);var c=56320==i,f=57343==a,p=!1;n==s||c&&f?(u.push([[n,s+1],[i,a+1]]),p=!0):u.push([[n,n+1],[i,57344]]),!p&&n+1<s&&(f?(u.push([[n+1,s+1],[56320,a+1]]),p=!0):u.push([[n+1,s],[56320,57344]])),p||u.push([[s,s+1],[56320,a+1]]),o+=2}return W(u)},K=function(e){var t=[];return h(e,function(e){var r=e[0],n=e[1];t.push(U(r)+U(n))}),t.join("|")},H=function(e,t,r){if(r)return V(e);var n=[],i=G(e),s=i.loneHighSurrogates,a=i.loneLowSurrogates,o=i.bmp,u=i.astral,l=!F(s),c=!F(a),f=q(u);return t&&(o=D(o,s),l=!1,o=D(o,a),c=!1),F(o)||n.push(U(o)),f.length&&n.push(K(f)),l&&n.push(U(s)+"(?![\\uDC00-\\uDFFF])"),c&&n.push("(?:[^\\uD800-\\uDBFF]|^)"+U(a)),n.join("|")},J=function e(t){return arguments.length>1&&(t=E.call(arguments)),this instanceof e?(this.data=[],t?this.add(t):this):(new e).add(t)};J.version="1.3.2";var X=J.prototype;!function(e,t){var r;for(r in t)d.call(t,r)&&(e[r]=t[r])}(X,{add:function(e){var t=this;return null==e?t:e instanceof J?(t.data=D(t.data,e.data),t):(arguments.length>1&&(e=E.call(arguments)),y(e)?(h(e,function(e){t.add(e)}),t):(t.data=_(t.data,v(e)?e:j(e)),t))},remove:function(e){var t=this;return null==e?t:e instanceof J?(t.data=C(t.data,e.data),t):(arguments.length>1&&(e=E.call(arguments)),y(e)?(h(e,function(e){t.remove(e)}),t):(t.data=A(t.data,v(e)?e:j(e)),t))},addRange:function(e,t){var r=this;return r.data=w(r.data,v(e)?e:j(e),v(t)?t:j(t)),r},removeRange:function(e,t){var r=this,n=v(e)?e:j(e),i=v(t)?t:j(t);return r.data=S(r.data,n,i),r},intersection:function(e){var t=this,r=e instanceof J?O(e.data):e;return t.data=k(t.data,r),t},contains:function(e){return P(this.data,v(e)?e:j(e))},clone:function(){var e=new J;return e.data=this.data.slice(0),e},toString:function(e){var t=H(this.data,!!e&&e.bmpOnly,!!e&&e.hasUnicodeFlag);return t?t.replace(f,"\\0$1"):"[]"},toRegExp:function(e){var t=this.toString(e&&-1!=e.indexOf("u")?{hasUnicodeFlag:!0}:null);return RegExp(t,e||"")},valueOf:function(){return O(this.data)}}),X.toArray=X.valueOf,"object"==s(r(49))&&r(49)?void 0!==(n=function(){return J}.call(t,r,t,e))&&(e.exports=n):o&&!o.nodeType?u?u.exports=J:o.regenerate=J:a.regenerate=J}(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){p.default.ok(this instanceof s),h.assertIdentifier(e),this.nextTempId=0,this.contextId=e,this.listing=[],this.marked=[!0],this.finalLoc=a(),this.tryEntries=[],this.leapManager=new y.LeapManager(this)}function a(){return h.numericLiteral(-1)}function o(e){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+(0,c.default)(e))}function u(e){var t=e.type
;return"normal"===t?!x.call(e,"target"):"break"===t||"continue"===t?!x.call(e,"value")&&h.isLiteral(e.target):("return"===t||"throw"===t)&&(x.call(e,"value")&&!x.call(e,"target"))}var l=r(35),c=i(l),f=r(64),p=i(f),d=r(1),h=n(d),m=r(607),y=n(m),v=r(608),g=n(v),b=r(116),E=n(b),x=Object.prototype.hasOwnProperty,A=s.prototype;t.Emitter=s,A.mark=function(e){h.assertLiteral(e);var t=this.listing.length;return-1===e.value?e.value=t:p.default.strictEqual(e.value,t),this.marked[t]=!0,e},A.emit=function(e){h.isExpression(e)&&(e=h.expressionStatement(e)),h.assertStatement(e),this.listing.push(e)},A.emitAssign=function(e,t){return this.emit(this.assign(e,t)),e},A.assign=function(e,t){return h.expressionStatement(h.assignmentExpression("=",e,t))},A.contextProperty=function(e,t){return h.memberExpression(this.contextId,t?h.stringLiteral(e):h.identifier(e),!!t)},A.stop=function(e){e&&this.setReturnValue(e),this.jump(this.finalLoc)},A.setReturnValue=function(e){h.assertExpression(e.value),this.emitAssign(this.contextProperty("rval"),this.explodeExpression(e))},A.clearPendingException=function(e,t){h.assertLiteral(e);var r=h.callExpression(this.contextProperty("catch",!0),[e]);t?this.emitAssign(t,r):this.emit(r)},A.jump=function(e){this.emitAssign(this.contextProperty("next"),e),this.emit(h.breakStatement())},A.jumpIf=function(e,t){h.assertExpression(e),h.assertLiteral(t),this.emit(h.ifStatement(e,h.blockStatement([this.assign(this.contextProperty("next"),t),h.breakStatement()])))},A.jumpIfNot=function(e,t){h.assertExpression(e),h.assertLiteral(t);var r=void 0;r=h.isUnaryExpression(e)&&"!"===e.operator?e.argument:h.unaryExpression("!",e),this.emit(h.ifStatement(r,h.blockStatement([this.assign(this.contextProperty("next"),t),h.breakStatement()])))},A.makeTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},A.getContextFunction=function(e){return h.functionExpression(e||null,[this.contextId],h.blockStatement([this.getDispatchLoop()]),!1,!1)},A.getDispatchLoop=function(){var e=this,t=[],r=void 0,n=!1;return e.listing.forEach(function(i,s){e.marked.hasOwnProperty(s)&&(t.push(h.switchCase(h.numericLiteral(s),r=[])),n=!1),n||(r.push(i),h.isCompletionStatement(i)&&(n=!0))}),this.finalLoc.value=this.listing.length,t.push(h.switchCase(this.finalLoc,[]),h.switchCase(h.stringLiteral("end"),[h.returnStatement(h.callExpression(this.contextProperty("stop"),[]))])),h.whileStatement(h.numericLiteral(1),h.switchStatement(h.assignmentExpression("=",this.contextProperty("prev"),this.contextProperty("next")),t))},A.getTryLocsList=function(){if(0===this.tryEntries.length)return null;var e=0;return h.arrayExpression(this.tryEntries.map(function(t){var r=t.firstLoc.value;p.default.ok(r>=e,"try entries out of order"),e=r;var n=t.catchEntry,i=t.finallyEntry,s=[t.firstLoc,n?n.firstLoc:null];return i&&(s[2]=i.firstLoc,s[3]=i.afterLoc),h.arrayExpression(s)}))},A.explode=function(e,t){var r=e.node,n=this;if(h.assertNode(r),h.isDeclaration(r))throw o(r);if(h.isStatement(r))return n.explodeStatement(e);if(h.isExpression(r))return n.explodeExpression(e,t);switch(r.type){case"Program":return e.get("body").map(n.explodeStatement,n);case"VariableDeclarator":throw o(r);case"Property":case"SwitchCase":case"CatchClause":throw new Error(r.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+(0,c.default)(r.type))}},A.explodeStatement=function(e,t){var r=e.node,n=this,i=void 0,s=void 0,o=void 0;if(h.assertStatement(r),t?h.assertIdentifier(t):t=null,h.isBlockStatement(r))return void e.get("body").forEach(function(e){n.explodeStatement(e)});if(!g.containsLeap(r))return void n.emit(r);switch(r.type){case"ExpressionStatement":n.explodeExpression(e.get("expression"),!0);break;case"LabeledStatement":s=a(),n.leapManager.withEntry(new y.LabeledEntry(s,r.label),function(){n.explodeStatement(e.get("body"),r.label)}),n.mark(s);break;case"WhileStatement":i=a(),s=a(),n.mark(i),n.jumpIfNot(n.explodeExpression(e.get("test")),s),n.leapManager.withEntry(new y.LoopEntry(s,i,t),function(){n.explodeStatement(e.get("body"))}),n.jump(i),n.mark(s);break;case"DoWhileStatement":var u=a(),l=a();s=a(),n.mark(u),n.leapManager.withEntry(new y.LoopEntry(s,l,t),function(){n.explode(e.get("body"))}),n.mark(l),n.jumpIf(n.explodeExpression(e.get("test")),u),n.mark(s);break;case"ForStatement":o=a();var f=a();s=a(),r.init&&n.explode(e.get("init"),!0),n.mark(o),r.test&&n.jumpIfNot(n.explodeExpression(e.get("test")),s),n.leapManager.withEntry(new y.LoopEntry(s,f,t),function(){n.explodeStatement(e.get("body"))}),n.mark(f),r.update&&n.explode(e.get("update"),!0),n.jump(o),n.mark(s);break;case"TypeCastExpression":return n.explodeExpression(e.get("expression"));case"ForInStatement":o=a(),s=a();var d=n.makeTempVar();n.emitAssign(d,h.callExpression(E.runtimeProperty("keys"),[n.explodeExpression(e.get("right"))])),n.mark(o);var m=n.makeTempVar();n.jumpIf(h.memberExpression(h.assignmentExpression("=",m,h.callExpression(d,[])),h.identifier("done"),!1),s),n.emitAssign(r.left,h.memberExpression(m,h.identifier("value"),!1)),n.leapManager.withEntry(new y.LoopEntry(s,o,t),function(){n.explodeStatement(e.get("body"))}),n.jump(o),n.mark(s);break;case"BreakStatement":n.emitAbruptCompletion({type:"break",target:n.leapManager.getBreakLoc(r.label)});break;case"ContinueStatement":n.emitAbruptCompletion({type:"continue",target:n.leapManager.getContinueLoc(r.label)});break;case"SwitchStatement":var v=n.emitAssign(n.makeTempVar(),n.explodeExpression(e.get("discriminant")));s=a();for(var b=a(),x=b,A=[],_=r.cases||[],D=_.length-1;D>=0;--D){var C=_[D];h.assertSwitchCase(C),C.test?x=h.conditionalExpression(h.binaryExpression("===",v,C.test),A[D]=a(),x):A[D]=b}var w=e.get("discriminant");E.replaceWithOrRemove(w,x),n.jump(n.explodeExpression(w)),n.leapManager.withEntry(new y.SwitchEntry(s),function(){e.get("cases").forEach(function(e){var t=e.key;n.mark(A[t]),e.get("consequent").forEach(function(e){n.explodeStatement(e)})})}),n.mark(s),-1===b.value&&(n.mark(b),p.default.strictEqual(s.value,b.value));break;case"IfStatement":var P=r.alternate&&a();s=a(),n.jumpIfNot(n.explodeExpression(e.get("test")),P||s),n.explodeStatement(e.get("consequent")),P&&(n.jump(s),n.mark(P),n.explodeStatement(e.get("alternate"))),n.mark(s);break;case"ReturnStatement":n.emitAbruptCompletion({type:"return",value:n.explodeExpression(e.get("argument"))});break;case"WithStatement":throw new Error("WithStatement not supported in generator functions.");case"TryStatement":s=a();var k=r.handler,F=k&&a(),T=F&&new y.CatchEntry(F,k.param),O=r.finalizer&&a(),B=O&&new y.FinallyEntry(O,s),R=new y.TryEntry(n.getUnmarkedCurrentLoc(),T,B);n.tryEntries.push(R),n.updateContextPrevLoc(R.firstLoc),n.leapManager.withEntry(R,function(){if(n.explodeStatement(e.get("block")),F){O?n.jump(O):n.jump(s),n.updateContextPrevLoc(n.mark(F));var t=e.get("handler.body"),r=n.makeTempVar();n.clearPendingException(R.firstLoc,r),t.traverse(S,{safeParam:r,catchParamName:k.param.name}),n.leapManager.withEntry(T,function(){n.explodeStatement(t)})}O&&(n.updateContextPrevLoc(n.mark(O)),n.leapManager.withEntry(B,function(){n.explodeStatement(e.get("finalizer"))}),n.emit(h.returnStatement(h.callExpression(n.contextProperty("finish"),[B.firstLoc]))))}),n.mark(s);break;case"ThrowStatement":n.emit(h.throwStatement(n.explodeExpression(e.get("argument"))));break;default:throw new Error("unknown Statement of type "+(0,c.default)(r.type))}};var S={Identifier:function(e,t){e.node.name===t.catchParamName&&E.isReference(e)&&E.replaceWithOrRemove(e,t.safeParam)},Scope:function(e,t){e.scope.hasOwnBinding(t.catchParamName)&&e.skip()}};A.emitAbruptCompletion=function(e){u(e)||p.default.ok(!1,"invalid completion record: "+(0,c.default)(e)),p.default.notStrictEqual(e.type,"normal","normal completions are not abrupt");var t=[h.stringLiteral(e.type)];"break"===e.type||"continue"===e.type?(h.assertLiteral(e.target),t[1]=e.target):"return"!==e.type&&"throw"!==e.type||e.value&&(h.assertExpression(e.value),t[1]=e.value),this.emit(h.returnStatement(h.callExpression(this.contextProperty("abrupt"),t)))},A.getUnmarkedCurrentLoc=function(){return h.numericLiteral(this.listing.length)},A.updateContextPrevLoc=function(e){e?(h.assertLiteral(e),-1===e.value?e.value=this.listing.length:p.default.strictEqual(e.value,this.listing.length)):e=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty("prev"),e)},A.explodeExpression=function(e,t){function r(e){if(h.assertExpression(e),!t)return e;s.emit(e)}function n(e,t,r){p.default.ok(!r||!e,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var n=s.explodeExpression(t,r);return r||(e||l&&!h.isLiteral(n))&&(n=s.emitAssign(e||s.makeTempVar(),n)),n}var i=e.node;if(!i)return i;h.assertExpression(i);var s=this,o=void 0,u=void 0;if(!g.containsLeap(i))return r(i);var l=g.containsLeap.onlyChildren(i);switch(i.type){case"MemberExpression":return r(h.memberExpression(s.explodeExpression(e.get("object")),i.computed?n(null,e.get("property")):i.property,i.computed));case"CallExpression":var f=e.get("callee"),d=e.get("arguments"),m=void 0,y=[],v=!1;if(d.forEach(function(e){v=v||g.containsLeap(e.node)}),h.isMemberExpression(f.node))if(v){var b=n(s.makeTempVar(),f.get("object")),E=f.node.computed?n(null,f.get("property")):f.node.property;y.unshift(b),m=h.memberExpression(h.memberExpression(b,E,f.node.computed),h.identifier("call"),!1)}else m=s.explodeExpression(f);else m=n(null,f),h.isMemberExpression(m)&&(m=h.sequenceExpression([h.numericLiteral(0),m]));return d.forEach(function(e){y.push(n(null,e))}),r(h.callExpression(m,y));case"NewExpression":return r(h.newExpression(n(null,e.get("callee")),e.get("arguments").map(function(e){return n(null,e)})));case"ObjectExpression":return r(h.objectExpression(e.get("properties").map(function(e){return e.isObjectProperty()?h.objectProperty(e.node.key,n(null,e.get("value")),e.node.computed):e.node})));case"ArrayExpression":return r(h.arrayExpression(e.get("elements").map(function(e){return n(null,e)})));case"SequenceExpression":var x=i.expressions.length-1;return e.get("expressions").forEach(function(e){e.key===x?o=s.explodeExpression(e,t):s.explodeExpression(e,!0)}),o;case"LogicalExpression":u=a(),t||(o=s.makeTempVar());var A=n(o,e.get("left"));return"&&"===i.operator?s.jumpIfNot(A,u):(p.default.strictEqual(i.operator,"||"),s.jumpIf(A,u)),n(o,e.get("right"),t),s.mark(u),o;case"ConditionalExpression":var S=a();u=a();var _=s.explodeExpression(e.get("test"));return s.jumpIfNot(_,S),t||(o=s.makeTempVar()),n(o,e.get("consequent"),t),s.jump(u),s.mark(S),n(o,e.get("alternate"),t),s.mark(u),o;case"UnaryExpression":return r(h.unaryExpression(i.operator,s.explodeExpression(e.get("argument")),!!i.prefix));case"BinaryExpression":return r(h.binaryExpression(i.operator,n(null,e.get("left")),n(null,e.get("right"))));case"AssignmentExpression":return r(h.assignmentExpression(i.operator,s.explodeExpression(e.get("left")),s.explodeExpression(e.get("right"))));case"UpdateExpression":return r(h.updateExpression(i.operator,s.explodeExpression(e.get("argument")),i.prefix));case"YieldExpression":u=a();var D=i.argument&&s.explodeExpression(e.get("argument"));if(D&&i.delegate){var C=s.makeTempVar();return s.emit(h.returnStatement(h.callExpression(s.contextProperty("delegateYield"),[D,h.stringLiteral(C.property.name),u]))),s.mark(u),C}return s.emitAssign(s.contextProperty("next"),u),s.emit(h.returnStatement(D||null)),s.mark(u),s.contextProperty("sent");default:throw new Error("unknown Expression of type "+(0,c.default)(i.type))}}},function(e,t){"use strict";e.exports=function(e){var t=/^\\\\\?\\/.test(e),r=/[^\x00-\x80]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},function(e,t,r){"use strict";function n(){this._array=[],this._set=Object.create(null)}var i=r(63),s=Object.prototype.hasOwnProperty;n.fromArray=function(e,t){for(var r=new n,i=0,s=e.length;i<s;i++)r.add(e[i],t);return r},n.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},n.prototype.add=function(e,t){var r=i.toSetString(e),n=s.call(this._set,r),a=this._array.length;n&&!t||this._array.push(e),n||(this._set[r]=a)},n.prototype.has=function(e){var t=i.toSetString(e);return s.call(this._set,t)},n.prototype.indexOf=function(e){var t=i.toSetString(e);if(s.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},n.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},n.prototype.toArray=function(){return this._array.slice()},t.ArraySet=n},function(e,t,r){"use strict";function n(e){return e<0?1+(-e<<1):0+(e<<1)}function i(e){var t=1==(1&e),r=e>>1;return t?-r:r}var s=r(616);t.encode=function(e){var t,r="",i=n(e);do{t=31&i,i>>>=5,i>0&&(t|=32),r+=s.encode(t)}while(i>0);return r},t.decode=function(e,t,r){var n,a,o=e.length,u=0,l=0;do{if(t>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(a=s.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));n=!!(32&a),a&=31,u+=a<<l,l+=5}while(n);r.value=i(u),r.rest=t}},function(e,t,r){"use strict";function n(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}var i=r(286),s=r(63),a=r(285).ArraySet,o=r(618).MappingList;n.prototype._version=3,n.fromSourceMap=function(e){var t=e.sourceRoot,r=new n({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=s.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)}),e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&r.setSourceContent(t,n)}),r},n.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),r=s.getArg(e,"original",null),n=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},n.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=s.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[s.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},n.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var i=this._sourceRoot;null!=i&&(n=s.relative(i,n));var o=new a,u=new a;this._mappings.unsortedForEach(function(t){if(t.source===n&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=s.join(r,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var l=t.source;null==l||o.has(l)||o.add(l);var c=t.name;null==c||u.has(c)||u.add(c)},this),this._sources=o,this._names=u,e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=s.join(r,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,n))},this)},n.prototype._validateMapping=function(e,t,r,n){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},n.prototype._serializeMappings=function(){for(var e,t,r,n,a=0,o=1,u=0,l=0,c=0,f=0,p="",d=this._mappings.toArray(),h=0,m=d.length;h<m;h++){if(t=d[h],e="",t.generatedLine!==o)for(a=0;t.generatedLine!==o;)e+=";",o++;else if(h>0){if(!s.compareByGeneratedPositionsInflated(t,d[h-1]))continue;e+=","}e+=i.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=i.encode(n-f),f=n,e+=i.encode(t.originalLine-1-l),l=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=i.encode(r-c),c=r)),p+=e}return p},n.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var r=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},n.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},n.prototype.toString=function(){return JSON.stringify(this.toJSON())},t.SourceMapGenerator=n},function(e,t,r){"use strict";t.SourceMapGenerator=r(287).SourceMapGenerator,t.SourceMapConsumer=r(620).SourceMapConsumer,t.SourceNode=r(621).SourceNode},function(e,t,r){(function(e){"use strict";function t(){var e={modifiers:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},colors:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39]},bgColors:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49]}};return e.colors.grey=e.colors.gray,Object.keys(e).forEach(function(t){var r=e[t];Object.keys(r).forEach(function(t){var n=r[t];e[t]=r[t]={open:"["+n[0]+"m",close:"["+n[1]+"m"}}),Object.defineProperty(e,t,{value:r,enumerable:!1})}),e}Object.defineProperty(e,"exports",{enumerable:!0,get:t})}).call(t,r(39)(e))},function(e,t,r){"use strict";e.exports=r(182)},function(e,t){"use strict";function r(e){return["babel-plugin-"+e,e]}t.__esModule=!0,t.default=r,e.exports=t.default},function(e,t){"use strict";function r(e){var t=["babel-preset-"+e,e],r=e.match(/^(@[^\/]+)\/(.+)$/);if(r){var n=r[1],i=r[2];t.push(n+"/babel-preset-"+i)}return t}t.__esModule=!0,t.default=r,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e,t){if(e&&t)return(0,o.default)(e,t,function(e,t){if(t&&Array.isArray(e)){for(var r=t.slice(0),n=e,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;r.indexOf(u)<0&&r.push(u)}return r}})};var a=r(590),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e,t,r){if(e){if("Program"===e.type)return i.file(e,t||[],r||[]);if("File"===e.type)return e}throw new Error("Not a valid ast?")};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e,t){var r=[],n=g.functionExpression(null,[g.identifier("global")],g.blockStatement(r)),i=g.program([g.expressionStatement(g.callExpression(n,[c.get("selfGlobal")]))]);return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.assignmentExpression("=",g.memberExpression(g.identifier("global"),e),g.objectExpression([])))])),t(r),i}function a(e,t){var r=[];return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.identifier("global"))])),t(r),g.program([b({FACTORY_PARAMETERS:g.identifier("global"),BROWSER_ARGUMENTS:g.assignmentExpression("=",g.memberExpression(g.identifier("root"),e),g.objectExpression([])),COMMON_ARGUMENTS:g.identifier("exports"),AMD_ARGUMENTS:g.arrayExpression([g.stringLiteral("exports")]),FACTORY_BODY:r,UMD_ROOT:g.identifier("this")})])}function o(e,t){var r=[];return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.objectExpression([]))])),t(r),r.push(g.expressionStatement(e)),g.program(r)}function u(e,t,r){c.list.forEach(function(n){if(!(r&&r.indexOf(n)<0)){var i=g.identifier(n);e.push(g.expressionStatement(g.assignmentExpression("=",g.memberExpression(t,i),c.get(n))))}})}t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global",r=g.identifier("babelHelpers"),n=function(t){return u(t,r,e)},i=void 0,l={global:s,umd:a,var:o}[t];if(!l)throw new Error(h.get("unsupportedOutputType",t));return i=l(r,n),(0,p.default)(i).code};var l=r(194),c=i(l),f=r(186),p=n(f),d=r(20),h=i(d),m=r(4),y=n(m),v=r(1),g=i(v),b=(0,y.default)('\n  (function (root, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(AMD_ARGUMENTS, factory);\n    } else if (typeof exports === "object") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      factory(BROWSER_ARGUMENTS);\n    }\n  })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n    FACTORY_BODY\n  });\n');e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(65),s=n(i),a=r(594),o=n(a);t.default=new s.default({name:"internal.blockHoist",visitor:{Block:{exit:function(e){for(var t=e.node,r=!1,n=0;n<t.body.length;n++){var i=t.body[n];if(i&&null!=i._blockHoist){r=!0;break}}r&&(t.body=(0,o.default)(t.body,function(e){var t=e&&e._blockHoist;return null==t&&(t=1),!0===t&&(t=2),-1*t}))}}}}),e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return!!e.is("_forceShadow")||t}function s(e,t){var r=e.inShadow(t);if(i(e,r)){var n=e.node._shadowedFunctionLiteral,s=void 0,a=!1,o=e.find(function(t){if(t.parentPath&&t.parentPath.isClassProperty()&&"value"===t.key)return!0;if(e===t)return!1;if((t.isProgram()||t.isFunction())&&(s=s||t),t.isProgram())return a=!0,!0;if(t.isFunction()&&!t.isArrowFunctionExpression()){if(n){if(t===n||t.node===n.node)return!0}else if(!t.is("shadow"))return!0;return a=!0,!1}return!1});if(n&&o.isProgram()&&!n.isProgram()&&(o=e.findParent(function(e){return e.isProgram()||e.isFunction()})),o!==s&&a){var u=o.getData(t);if(u)return e.replaceWith(u);var l=e.scope.generateUidIdentifier(t);o.setData(t,l);var c=o.findParent(function(e){return e.isClass()}),p=!!(c&&c.node&&c.node.superClass);if("this"===t&&o.isMethod({kind:"constructor"})&&p)o.scope.push({id:l}),o.traverse(d,{id:l});else{var h="this"===t?f.thisExpression():f.identifier(t);n&&(h._shadowedFunctionLiteral=n),o.scope.push({id:l,init:h})}return e.replaceWith(l)}}}t.__esModule=!0;var a=r(10),o=n(a),u=r(65),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=(0,o.default)("super this bound"),d={CallExpression:function(e){if(e.get("callee").isSuper()){var t=e.node;t[p]||(t[p]=!0,e.replaceWith(f.assignmentExpression("=",this.id,t)))}}};t.default=new l.default({name:"internal.shadowFunctions",visitor:{ThisExpression:function(e){s(e,"this")},ReferencedIdentifier:function(e){"arguments"===e.node.name&&s(e,"arguments")}}}),e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(294),o=n(a),u=r(65),l=n(u),c=r(50),f=n(c),p=function(){function e(){(0,s.default)(this,e)}return e.prototype.lint=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.code=!1,t.mode="lint",this.transform(e,t)},e.prototype.pretransform=function(e,t){var r=new f.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r})},e.prototype.transform=function(e,t){var r=new f.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r.transform()})},e.prototype.analyse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2];return t.code=!1,r&&(t.plugins=t.plugins||[],t.plugins.push(new l.default({visitor:r}))),this.transform(e,t).metadata},e.prototype.transformFromAst=function(e,t,r){e=(0,o.default)(e);var n=new f.default(r,this);return n.wrap(t,function(){return n.addCode(t),n.addAst(e),n.transform()})},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(42),o=n(a),u=r(41),l=n(u),c=r(119),f=n(c),p=r(50),d=(n(p),function(e){function t(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,s.default)(this,t);var a=(0,o.default)(this,e.call(this));return a.plugin=n,a.key=n.key,a.file=r,a.opts=i,a}return(0,l.default)(t,e),t.prototype.addHelper=function(){var e;return(e=this.file).addHelper.apply(e,arguments)},t.prototype.addImport=function(){var e;return(e=this.file).addImport.apply(e,arguments)},t.prototype.getModuleName=function(){var e;return(e=this.file).getModuleName.apply(e,arguments)},t.prototype.buildCodeFrameError=function(){var e;return(e=this.file).buildCodeFrameError.apply(e,arguments)},t}(f.default));t.default=d,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(625),o=n(a),u=/^[ \t]+$/,l=function(){function e(t){(0,s.default)(this,e),this._map=null,this._buf=[],this._last="",this._queue=[],this._position={line:1,column:0},this._sourcePosition={identifierName:null,line:null,column:null,filename:null},this._map=t}return e.prototype.get=function(){this._flush();var e=this._map,t={code:(0,o.default)(this._buf.join("")),map:null,rawMappings:e&&e.getRawMappings()};return e&&Object.defineProperty(t,"map",{configurable:!0,enumerable:!0,get:function(){return this.map=e.get()},set:function(e){Object.defineProperty(this,"map",{value:e,writable:!0})}}),t},e.prototype.append=function(e){this._flush();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._append(e,r,n,s,i)},e.prototype.queue=function(e){if("\n"===e)for(;this._queue.length>0&&u.test(this._queue[0][0]);)this._queue.shift();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._queue.unshift([e,r,n,s,i])},e.prototype._flush=function(){for(var e=void 0;e=this._queue.pop();)this._append.apply(this,e)},e.prototype._append=function(e,t,r,n,i){this._map&&"\n"!==e[0]&&this._map.mark(this._position.line,this._position.column,t,r,n,i),this._buf.push(e),this._last=e[e.length-1];for(var s=0;s<e.length;s++)"\n"===e[s]?(this._position.line++,this._position.column=0):this._position.column++},e.prototype.removeTrailingNewline=function(){this._queue.length>0&&"\n"===this._queue[0][0]&&this._queue.shift()},e.prototype.removeLastSemicolon=function(){this._queue.length>0&&";"===this._queue[0][0]&&this._queue.shift()},e.prototype.endsWith=function(e){if(1===e.length){var t=void 0;if(this._queue.length>0){var r=this._queue[0][0];t=r[r.length-1]}else t=this._last;return t===e}var n=this._last+this._queue.reduce(function(e,t){return t[0]+e},"");return e.length<=n.length&&n.slice(-e.length)===e},e.prototype.hasContent=function(){return this._queue.length>0||!!this._last},e.prototype.source=function(e,t){if(!e||t){var r=t?t[e]:null;this._sourcePosition.identifierName=t&&t.identifierName||null,this._sourcePosition.line=r?r.line:null,this._sourcePosition.column=r?r.column:null,this._sourcePosition.filename=t&&t.filename||null}},e.prototype.withSource=function(e,t,r){if(!this._map)return r();var n=this._sourcePosition.line,i=this._sourcePosition.column,s=this._sourcePosition.filename,a=this._sourcePosition.identifierName;this.source(e,t),r(),this._sourcePosition.line=n,this._sourcePosition.column=i,this._sourcePosition.filename=s,this._sourcePosition.identifierName=a},e.prototype.getCurrentColumn=function(){var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=e.lastIndexOf("\n");return-1===t?this._position.column+e.length:e.length-1-t},e.prototype.getCurrentLine=function(){for(var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=0,r=0;r<e.length;r++)"\n"===e[r]&&t++;return this._position.line+t},e}();t.default=l,e.exports=t.default},function(e,t,r){"use strict";function n(e){this.print(e.program,e)}function i(e){this.printInnerComments(e,!1),this.printSequence(e.directives,e),e.directives&&e.directives.length&&this.newline(),this.printSequence(e.body,e)}function s(e){this.token("{"),this.printInnerComments(e);var t=e.directives&&e.directives.length;e.body.length||t?(this.newline(),this.printSequence(e.directives,e,{indent:!0}),t&&this.newline(),this.printSequence(e.body,e,{indent:!0}),this.removeTrailingNewline(),this.source("end",e.loc),this.endsWith("\n")||this.newline(),this.rightBrace()):(this.source("end",e.loc),this.token("}"))}function a(){}function o(e){this.print(e.value,e),this.semicolon()}t.__esModule=!0,t.File=n,t.Program=i,t.BlockStatement=s,t.Noop=a,t.Directive=o;var u=r(123);Object.defineProperty(t,"DirectiveLiteral",{enumerable:!0,get:function(){return u.StringLiteral}})},function(e,t){"use strict";function r(e){this.printJoin(e.decorators,e),this.word("class"),e.id&&(this.space(),this.print(e.id,e)),this.print(e.typeParameters,e),e.superClass&&(this.space(),this.word("extends"),this.space(),this.print(e.superClass,e),this.print(e.superTypeParameters,e)),e.implements&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements,e)),this.space(),this.print(e.body,e)}function n(e){this.token("{"),this.printInnerComments(e),0===e.body.length?this.token("}"):(this.newline(),this.indent(),this.printSequence(e.body,e),this.dedent(),this.endsWith("\n")||this.newline(),this.rightBrace())}function i(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),e.computed?(this.token("["),this.print(e.key,e),this.token("]")):(this._variance(e),this.print(e.key,e)),this.print(e.typeAnnotation,e),e.value&&(this.space(),this.token("="),this.space(),this.print(e.value,e)),this.semicolon()}function s(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),"constructorCall"===e.kind&&(this.word("call"),this.space()),this._method(e)}t.__esModule=!0,t.ClassDeclaration=r,t.ClassBody=n,t.ClassProperty=i,t.ClassMethod=s,t.ClassExpression=r},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){"void"===e.operator||"delete"===e.operator||"typeof"===e.operator?(this.word(e.operator),this.space()):this.token(e.operator),this.print(e.argument,e)}function s(e){this.word("do"),this.space(),this.print(e.body,e)}function a(e){this.token("("),this.print(e.expression,e),this.token(")")}function o(e){e.prefix?(this.token(e.operator),this.print(e.argument,e)):(this.print(e.argument,e),this.token(e.operator))}function u(e){this.print(e.test,e),this.space(),this.token("?"),this.space(),this.print(e.consequent,e),this.space(),this.token(":"),this.space(),this.print(e.alternate,e)}function l(e,t){this.word("new"),this.space(),this.print(e.callee,e),(0!==e.arguments.length||!this.format.minified||C.isCallExpression(t,{callee:e})||C.isMemberExpression(t)||C.isNewExpression(t))&&(this.token("("),this.printList(e.arguments,e),this.token(")"))}function c(e){this.printList(e.expressions,e)}function f(){
this.word("this")}function p(){this.word("super")}function d(e){this.token("@"),this.print(e.expression,e),this.newline()}function h(){this.token(","),this.newline(),this.endsWith("\n")||this.space()}function m(e){this.print(e.callee,e),this.token("(");var t=e._prettyCall,r=void 0;t&&(r=h,this.newline(),this.indent()),this.printList(e.arguments,e,{separator:r}),t&&(this.newline(),this.dedent()),this.token(")")}function y(){this.word("import")}function v(e){return function(t){if(this.word(e),t.delegate&&this.token("*"),t.argument){this.space();var r=this.startTerminatorless();this.print(t.argument,t),this.endTerminatorless(r)}}}function g(){this.semicolon(!0)}function b(e){this.print(e.expression,e),this.semicolon()}function E(e){this.print(e.left,e),e.left.optional&&this.token("?"),this.print(e.left.typeAnnotation,e),this.space(),this.token("="),this.space(),this.print(e.right,e)}function x(e,t){var r=this.inForStatementInitCounter&&"in"===e.operator&&!P.needsParens(e,t);r&&this.token("("),this.print(e.left,e),this.space(),"in"===e.operator||"instanceof"===e.operator?this.word(e.operator):this.token(e.operator),this.space(),this.print(e.right,e),r&&this.token(")")}function A(e){this.print(e.object,e),this.token("::"),this.print(e.callee,e)}function S(e){if(this.print(e.object,e),!e.computed&&C.isMemberExpression(e.property))throw new TypeError("Got a MemberExpression for MemberExpression property");var t=e.computed;C.isLiteral(e.property)&&"number"==typeof e.property.value&&(t=!0),t?(this.token("["),this.print(e.property,e),this.token("]")):(this.token("."),this.print(e.property,e))}function _(e){this.print(e.meta,e),this.token("."),this.print(e.property,e)}t.__esModule=!0,t.LogicalExpression=t.BinaryExpression=t.AwaitExpression=t.YieldExpression=void 0,t.UnaryExpression=i,t.DoExpression=s,t.ParenthesizedExpression=a,t.UpdateExpression=o,t.ConditionalExpression=u,t.NewExpression=l,t.SequenceExpression=c,t.ThisExpression=f,t.Super=p,t.Decorator=d,t.CallExpression=m,t.Import=y,t.EmptyStatement=g,t.ExpressionStatement=b,t.AssignmentPattern=E,t.AssignmentExpression=x,t.BindExpression=A,t.MemberExpression=S,t.MetaProperty=_;var D=r(1),C=n(D),w=r(187),P=n(w);t.YieldExpression=v("yield"),t.AwaitExpression=v("await");t.BinaryExpression=x,t.LogicalExpression=x},function(e,t,r){"use strict";function n(){this.word("any")}function i(e){this.print(e.elementType,e),this.token("["),this.token("]")}function s(){this.word("boolean")}function a(e){this.word(e.value?"true":"false")}function o(){this.word("null")}function u(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("class"),this.space(),this._interfaceish(e)}function l(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("function"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation.typeAnnotation,e),this.semicolon()}function c(e){this.word("declare"),this.space(),this.InterfaceDeclaration(e)}function f(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id,e),this.space(),this.print(e.body,e)}function p(e){this.word("declare"),this.space(),this.word("module"),this.token("."),this.word("exports"),this.print(e.typeAnnotation,e)}function d(e){this.word("declare"),this.space(),this.TypeAlias(e)}function h(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.OpaqueType(e)}function m(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("var"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation,e),this.semicolon()}function y(e){this.word("declare"),this.space(),this.word("export"),this.space(),e.default&&(this.word("default"),this.space()),v.apply(this,arguments)}function v(e){if(e.declaration){var t=e.declaration;this.print(t,e),Q.isStatement(t)||this.semicolon()}else this.token("{"),e.specifiers.length&&(this.space(),this.printList(e.specifiers,e),this.space()),this.token("}"),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}function g(){this.token("*")}function b(e,t){this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e),e.rest&&(e.params.length&&(this.token(","),this.space()),this.token("..."),this.print(e.rest,e)),this.token(")"),"ObjectTypeCallProperty"===t.type||"DeclareFunction"===t.type?this.token(":"):(this.space(),this.token("=>")),this.space(),this.print(e.returnType,e)}function E(e){this.print(e.name,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.typeAnnotation,e)}function x(e){this.print(e.id,e),this.print(e.typeParameters,e)}function A(e){this.print(e.id,e),this.print(e.typeParameters,e),e.extends.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends,e)),e.mixins&&e.mixins.length&&(this.space(),this.word("mixins"),this.space(),this.printList(e.mixins,e)),this.space(),this.print(e.body,e)}function S(e){"plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")}function _(e){this.word("interface"),this.space(),this._interfaceish(e)}function D(){this.space(),this.token("&"),this.space()}function C(e){this.printJoin(e.types,e,{separator:D})}function w(){this.word("mixed")}function P(){this.word("empty")}function k(e){this.token("?"),this.print(e.typeAnnotation,e)}function F(){this.word("number")}function T(){this.word("string")}function O(){this.word("this")}function B(e){this.token("["),this.printList(e.types,e),this.token("]")}function R(e){this.word("typeof"),this.space(),this.print(e.argument,e)}function I(e){this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),this.space(),this.token("="),this.space(),this.print(e.right,e),this.semicolon()}function M(e){this.word("opaque"),this.space(),this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),e.supertype&&(this.token(":"),this.space(),this.print(e.supertype,e)),e.impltype&&(this.space(),this.token("="),this.space(),this.print(e.impltype,e)),this.semicolon()}function N(e){this.token(":"),this.space(),e.optional&&this.token("?"),this.print(e.typeAnnotation,e)}function L(e){this._variance(e),this.word(e.name),e.bound&&this.print(e.bound,e),e.default&&(this.space(),this.token("="),this.space(),this.print(e.default,e))}function j(e){this.token("<"),this.printList(e.params,e,{}),this.token(">")}function U(e){var t=this;e.exact?this.token("{|"):this.token("{");var r=e.properties.concat(e.callProperties,e.indexers);r.length&&(this.space(),this.printJoin(r,e,{addNewlines:function(e){if(e&&!r[0])return 1},indent:!0,statement:!0,iterator:function(){1!==r.length&&(t.format.flowCommaSeparator?t.token(","):t.semicolon(),t.space())}}),this.space()),e.exact?this.token("|}"):this.token("}")}function V(e){e.static&&(this.word("static"),this.space()),this.print(e.value,e)}function G(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.token("["),this.print(e.id,e),this.token(":"),this.space(),this.print(e.key,e),this.token("]"),this.token(":"),this.space(),this.print(e.value,e)}function W(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.print(e.key,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.value,e)}function Y(e){this.token("..."),this.print(e.argument,e)}function q(e){this.print(e.qualification,e),this.token("."),this.print(e.id,e)}function K(){this.space(),this.token("|"),this.space()}function H(e){this.printJoin(e.types,e,{separator:K})}function J(e){this.token("("),this.print(e.expression,e),this.print(e.typeAnnotation,e),this.token(")")}function X(){this.word("void")}t.__esModule=!0,t.TypeParameterDeclaration=t.StringLiteralTypeAnnotation=t.NumericLiteralTypeAnnotation=t.GenericTypeAnnotation=t.ClassImplements=void 0,t.AnyTypeAnnotation=n,t.ArrayTypeAnnotation=i,t.BooleanTypeAnnotation=s,t.BooleanLiteralTypeAnnotation=a,t.NullLiteralTypeAnnotation=o,t.DeclareClass=u,t.DeclareFunction=l,t.DeclareInterface=c,t.DeclareModule=f,t.DeclareModuleExports=p,t.DeclareTypeAlias=d,t.DeclareOpaqueType=h,t.DeclareVariable=m,t.DeclareExportDeclaration=y,t.ExistentialTypeParam=g,t.FunctionTypeAnnotation=b,t.FunctionTypeParam=E,t.InterfaceExtends=x,t._interfaceish=A,t._variance=S,t.InterfaceDeclaration=_,t.IntersectionTypeAnnotation=C,t.MixedTypeAnnotation=w,t.EmptyTypeAnnotation=P,t.NullableTypeAnnotation=k;var z=r(123);Object.defineProperty(t,"NumericLiteralTypeAnnotation",{enumerable:!0,get:function(){return z.NumericLiteral}}),Object.defineProperty(t,"StringLiteralTypeAnnotation",{enumerable:!0,get:function(){return z.StringLiteral}}),t.NumberTypeAnnotation=F,t.StringTypeAnnotation=T,t.ThisTypeAnnotation=O,t.TupleTypeAnnotation=B,t.TypeofTypeAnnotation=R,t.TypeAlias=I,t.OpaqueType=M,t.TypeAnnotation=N,t.TypeParameter=L,t.TypeParameterInstantiation=j,t.ObjectTypeAnnotation=U,t.ObjectTypeCallProperty=V,t.ObjectTypeIndexer=G,t.ObjectTypeProperty=W,t.ObjectTypeSpreadProperty=Y,t.QualifiedTypeIdentifier=q,t.UnionTypeAnnotation=H,t.TypeCastExpression=J,t.VoidTypeAnnotation=X;var $=r(1),Q=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}($);t.ClassImplements=x,t.GenericTypeAnnotation=x,t.TypeParameterDeclaration=j},function(e,t,r){"use strict";function n(e){this.print(e.name,e),e.value&&(this.token("="),this.print(e.value,e))}function i(e){this.word(e.name)}function s(e){this.print(e.namespace,e),this.token(":"),this.print(e.name,e)}function a(e){this.print(e.object,e),this.token("."),this.print(e.property,e)}function o(e){this.token("{"),this.token("..."),this.print(e.argument,e),this.token("}")}function u(e){this.token("{"),this.print(e.expression,e),this.token("}")}function l(e){this.token("{"),this.token("..."),this.print(e.expression,e),this.token("}")}function c(e){this.token(e.value)}function f(e){var t=e.openingElement;if(this.print(t,e),!t.selfClosing){this.indent();for(var r=e.children,n=Array.isArray(r),i=0,r=n?r:(0,v.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;this.print(a,e)}this.dedent(),this.print(e.closingElement,e)}}function p(){this.space()}function d(e){this.token("<"),this.print(e.name,e),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,e,{separator:p})),e.selfClosing?(this.space(),this.token("/>")):this.token(">")}function h(e){this.token("</"),this.print(e.name,e),this.token(">")}function m(){}t.__esModule=!0;var y=r(2),v=function(e){return e&&e.__esModule?e:{default:e}}(y);t.JSXAttribute=n,t.JSXIdentifier=i,t.JSXNamespacedName=s,t.JSXMemberExpression=a,t.JSXSpreadAttribute=o,t.JSXExpressionContainer=u,t.JSXSpreadChild=l,t.JSXText=c,t.JSXElement=f,t.JSXOpeningElement=d,t.JSXClosingElement=h,t.JSXEmptyExpression=m},function(e,t,r){"use strict";function n(e){var t=this;this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e,{iterator:function(e){e.optional&&t.token("?"),t.print(e.typeAnnotation,e)}}),this.token(")"),e.returnType&&this.print(e.returnType,e)}function i(e){var t=e.kind,r=e.key;"method"!==t&&"init"!==t||e.generator&&this.token("*"),"get"!==t&&"set"!==t||(this.word(t),this.space()),e.async&&(this.word("async"),this.space()),e.computed?(this.token("["),this.print(r,e),this.token("]")):this.print(r,e),this._params(e),this.space(),this.print(e.body,e)}function s(e){e.async&&(this.word("async"),this.space()),this.word("function"),e.generator&&this.token("*"),e.id?(this.space(),this.print(e.id,e)):this.space(),this._params(e),this.space(),this.print(e.body,e)}function a(e){e.async&&(this.word("async"),this.space());var t=e.params[0];1===e.params.length&&l.isIdentifier(t)&&!o(e,t)?this.print(t,e):this._params(e),this.space(),this.token("=>"),this.space(),this.print(e.body,e)}function o(e,t){return e.typeParameters||e.returnType||t.typeAnnotation||t.optional||t.trailingComments}t.__esModule=!0,t.FunctionDeclaration=void 0,t._params=n,t._method=i,t.FunctionExpression=s,t.ArrowFunctionExpression=a;var u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.FunctionDeclaration=s},function(e,t,r){"use strict";function n(e){"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space()),this.print(e.imported,e),e.local&&e.local.name!==e.imported.name&&(this.space(),this.word("as"),this.space(),this.print(e.local,e))}function i(e){this.print(e.local,e)}function s(e){this.print(e.exported,e)}function a(e){this.print(e.local,e),e.exported&&e.local.name!==e.exported.name&&(this.space(),this.word("as"),this.space(),this.print(e.exported,e))}function o(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.exported,e)}function u(e){this.word("export"),this.space(),this.token("*"),this.space(),this.word("from"),this.space(),this.print(e.source,e),this.semicolon()}function l(){this.word("export"),this.space(),f.apply(this,arguments)}function c(){this.word("export"),this.space(),this.word("default"),this.space(),f.apply(this,arguments)}function f(e){if(e.declaration){var t=e.declaration;this.print(t,e),m.isStatement(t)||this.semicolon()}else{"type"===e.exportKind&&(this.word("type"),this.space());for(var r=e.specifiers.slice(0),n=!1;;){var i=r[0];if(!m.isExportDefaultSpecifier(i)&&!m.isExportNamespaceSpecifier(i))break;n=!0,this.print(r.shift(),e),r.length&&(this.token(","),this.space())}(r.length||!r.length&&!n)&&(this.token("{"),r.length&&(this.space(),this.printList(r,e),this.space()),this.token("}")),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}}function p(e){this.word("import"),this.space(),"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space());var t=e.specifiers.slice(0);if(t&&t.length){for(;;){var r=t[0];if(!m.isImportDefaultSpecifier(r)&&!m.isImportNamespaceSpecifier(r))break;this.print(t.shift(),e),t.length&&(this.token(","),this.space())}t.length&&(this.token("{"),this.space(),this.printList(t,e),this.space(),this.token("}")),this.space(),this.word("from"),this.space()}this.print(e.source,e),this.semicolon()}function d(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.local,e)}t.__esModule=!0,t.ImportSpecifier=n,t.ImportDefaultSpecifier=i,t.ExportDefaultSpecifier=s,t.ExportSpecifier=a,t.ExportNamespaceSpecifier=o,t.ExportAllDeclaration=u,t.ExportNamedDeclaration=l,t.ExportDefaultDeclaration=c,t.ImportDeclaration=p,t.ImportNamespaceSpecifier=d;var h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h)},function(e,t,r){"use strict";function n(e){this.word("with"),this.space(),this.token("("),this.print(e.object,e),this.token(")"),this.printBlock(e)}function i(e){this.word("if"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.space();var t=e.alternate&&S.isIfStatement(s(e.consequent));t&&(this.token("{"),this.newline(),this.indent()),this.printAndIndentOnComments(e.consequent,e),t&&(this.dedent(),this.newline(),this.token("}")),e.alternate&&(this.endsWith("}")&&this.space(),this.word("else"),this.space(),this.printAndIndentOnComments(e.alternate,e))}function s(e){return S.isStatement(e.body)?s(e.body):e}function a(e){this.word("for"),this.space(),this.token("("),this.inForStatementInitCounter++,this.print(e.init,e),this.inForStatementInitCounter--,this.token(";"),e.test&&(this.space(),this.print(e.test,e)),this.token(";"),e.update&&(this.space(),this.print(e.update,e)),this.token(")"),this.printBlock(e)}function o(e){this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.printBlock(e)}function u(e){this.word("do"),this.space(),this.print(e.body,e),this.space(),this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.semicolon()}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"label";return function(r){this.word(e);var n=r[t];if(n){this.space();var i=this.startTerminatorless();this.print(n,r),this.endTerminatorless(i)}this.semicolon()}}function c(e){this.print(e.label,e),this.token(":"),this.space(),this.print(e.body,e)}function f(e){this.word("try"),this.space(),this.print(e.block,e),this.space(),e.handlers?this.print(e.handlers[0],e):this.print(e.handler,e),e.finalizer&&(this.space(),this.word("finally"),this.space(),this.print(e.finalizer,e))}function p(e){this.word("catch"),this.space(),this.token("("),this.print(e.param,e),this.token(")"),this.space(),this.print(e.body,e)}function d(e){this.word("switch"),this.space(),this.token("("),this.print(e.discriminant,e),this.token(")"),this.space(),this.token("{"),this.printSequence(e.cases,e,{indent:!0,addNewlines:function(t,r){if(!t&&e.cases[e.cases.length-1]===r)return-1}}),this.token("}")}function h(e){e.test?(this.word("case"),this.space(),this.print(e.test,e),this.token(":")):(this.word("default"),this.token(":")),e.consequent.length&&(this.newline(),this.printSequence(e.consequent,e,{indent:!0}))}function m(){this.word("debugger"),this.semicolon()}function y(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<4;e++)this.space(!0)}function v(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<6;e++)this.space(!0)}function g(e,t){this.word(e.kind),this.space();var r=!1;if(!S.isFor(t))for(var n=e.declarations,i=Array.isArray(n),s=0,n=i?n:(0,x.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;o.init&&(r=!0)}var u=void 0;r&&(u="const"===e.kind?v:y),this.printList(e.declarations,e,{separator:u}),(!S.isFor(t)||t.left!==e&&t.init!==e)&&this.semicolon()}function b(e){this.print(e.id,e),this.print(e.id.typeAnnotation,e),e.init&&(this.space(),this.token("="),this.space(),this.print(e.init,e))}t.__esModule=!0,t.ThrowStatement=t.BreakStatement=t.ReturnStatement=t.ContinueStatement=t.ForAwaitStatement=t.ForOfStatement=t.ForInStatement=void 0;var E=r(2),x=function(e){return e&&e.__esModule?e:{default:e}}(E);t.WithStatement=n,t.IfStatement=i,t.ForStatement=a,t.WhileStatement=o,t.DoWhileStatement=u,t.LabeledStatement=c,t.TryStatement=f,t.CatchClause=p,t.SwitchStatement=d,t.SwitchCase=h,t.DebuggerStatement=m,t.VariableDeclaration=g,t.VariableDeclarator=b;var A=r(1),S=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(A),_=function(e){return function(t){this.word("for"),this.space(),"await"===e&&(this.word("await"),this.space()),this.token("("),this.print(t.left,t),this.space(),this.word("await"===e?"of":e),this.space(),this.print(t.right,t),this.token(")"),this.printBlock(t)}};t.ForInStatement=_("in"),t.ForOfStatement=_("of"),t.ForAwaitStatement=_("await"),t.ContinueStatement=l("continue"),t.ReturnStatement=l("return","argument"),t.BreakStatement=l("break"),t.ThrowStatement=l("throw","argument")},function(e,t){"use strict";function r(e){this.print(e.tag,e),this.print(e.quasi,e)}function n(e,t){var r=t.quasis[0]===e,n=t.quasis[t.quasis.length-1]===e,i=(r?"`":"}")+e.value.raw+(n?"`":"${");this.token(i)}function i(e){for(var t=e.quasis,r=0;r<t.length;r++)this.print(t[r],e),r+1<t.length&&this.print(e.expressions[r],e)}t.__esModule=!0,t.TaggedTemplateExpression=r,t.TemplateElement=n,t.TemplateLiteral=i},function(e,t,r){"use strict";function n(e,t){return b.isArrayTypeAnnotation(t)}function i(e,t){return b.isMemberExpression(t)&&t.object===e}function s(e,t,r){return v(r,{considerArrow:!0})}function a(e,t,r){return v(r)}function o(e,t){if((b.isCallExpression(t)||b.isNewExpression(t))&&t.callee===e||b.isUnaryLike(t)||b.isMemberExpression(t)&&t.object===e||b.isAwaitExpression(t))return!0;if(b.isBinary(t)){var r=t.operator,n=E[r],i=e.operator,s=E[i];if(n===s&&t.right===e&&!b.isLogicalExpression(t)||n>s)return!0}return!1}function u(e,t){return"in"===e.operator&&(b.isVariableDeclarator(t)||b.isFor(t))}function l(e,t){return!(b.isForStatement(t)||b.isThrowStatement(t)||b.isReturnStatement(t)||b.isIfStatement(t)&&t.test===e||b.isWhileStatement(t)&&t.test===e||b.isForInStatement(t)&&t.right===e||b.isSwitchStatement(t)&&t.discriminant===e||b.isExpressionStatement(t)&&t.expression===e)}function c(e,t){return b.isBinary(t)||b.isUnaryLike(t)||b.isCallExpression(t)||b.isMemberExpression(t)||b.isNewExpression(t)||b.isConditionalExpression(t)&&e===t.test}function f(e,t,r){return v(r,{considerDefaultExports:!0})}function p(e,t){return b.isMemberExpression(t,{object:e})||b.isCallExpression(t,{callee:e})||b.isNewExpression(t,{callee:e})}function d(e,t,r){return v(r,{considerDefaultExports:!0})}function h(e,t){return!!(b.isExportDeclaration(t)||b.isBinaryExpression(t)||b.isLogicalExpression(t)||b.isUnaryExpression(t)||b.isTaggedTemplateExpression(t))||p(e,t)}function m(e,t){return!!(b.isUnaryLike(t)||b.isBinary(t)||b.isConditionalExpression(t,{test:e})||b.isAwaitExpression(t))||p(e,t)}function y(e){return!!b.isObjectPattern(e.left)||m.apply(void 0,arguments)}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.considerArrow,n=void 0!==r&&r,i=t.considerDefaultExports,s=void 0!==i&&i,a=e.length-1,o=e[a];a--;for(var u=e[a];a>0;){if(b.isExpressionStatement(u,{expression:o})||b.isTaggedTemplateExpression(u)||s&&b.isExportDefaultDeclaration(u,{declaration:o})||n&&b.isArrowFunctionExpression(u,{body:o}))return!0;if(!(b.isCallExpression(u,{callee:o})||b.isSequenceExpression(u)&&u.expressions[0]===o||b.isMemberExpression(u,{object:o})||b.isConditional(u,{test:o})||b.isBinary(u,{left:o})||b.isAssignmentExpression(u,{left:o})))return!1;o=u,a--,u=e[a]}return!1}t.__esModule=!0,t.AwaitExpression=t.FunctionTypeAnnotation=void 0,t.NullableTypeAnnotation=n,t.UpdateExpression=i,t.ObjectExpression=s,t.DoExpression=a,t.Binary=o,t.BinaryExpression=u,t.SequenceExpression=l,t.YieldExpression=c,t.ClassExpression=f,t.UnaryLike=p,t.FunctionExpression=d,t.ArrowFunctionExpression=h,t.ConditionalExpression=m,t.AssignmentExpression=y;var g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E={"||":0,"&&":1,"|":2,"^":3,"&":4,"==":5,"===":5,"!=":5,"!==":5,"<":6,">":6,"<=":6,">=":6,in:6,instanceof:6,">>":7,"<<":7,">>>":7,"+":8,"-":8,"*":9,"/":9,"%":9,"**":10};t.FunctionTypeAnnotation=n,t.AwaitExpression=c},function(e,t,r){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l.isMemberExpression(e)?(n(e.object,t),e.computed&&n(e.property,t)):l.isBinary(e)||l.isAssignmentExpression(e)?(n(e.left,t),n(e.right,t)):l.isCallExpression(e)?(t.hasCall=!0,n(e.callee,t)):l.isFunction(e)?t.hasFunction=!0:l.isIdentifier(e)&&(t.hasHelper=t.hasHelper||i(e.callee)),t}function i(e){return l.isMemberExpression(e)?i(e.object)||i(e.property):l.isIdentifier(e)?"require"===e.name||"_"===e.name[0]:l.isCallExpression(e)?i(e.callee):!(!l.isBinary(e)&&!l.isAssignmentExpression(e))&&(l.isIdentifier(e.left)&&i(e.left)||i(e.right))}function s(e){return l.isLiteral(e)||l.isObjectExpression(e)||l.isArrayExpression(e)||l.isIdentifier(e)||l.isMemberExpression(e)}var a=r(588),o=function(e){return e&&e.__esModule?e:{default:e}}(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.nodes={AssignmentExpression:function(e){var t=n(e.right);if(t.hasCall&&t.hasHelper||t.hasFunction)return{before:t.hasFunction,after:!0}},SwitchCase:function(e,t){return{before:e.consequent.length||t.cases[0]===e}},LogicalExpression:function(e){if(l.isFunction(e.left)||l.isFunction(e.right))return{after:!0}},Literal:function(e){if("use strict"===e.value)return{after:!0}},CallExpression:function(e){if(l.isFunction(e.callee)||i(e))return{before:!0,after:!0}},VariableDeclaration:function(e){for(var t=0;t<e.declarations.length;t++){var r=e.declarations[t],a=i(r.id)&&!s(r.init);if(!a){var o=n(r.init);a=i(r.init)&&o.hasCall||o.hasFunction}if(a)return{before:!0,after:!0}}},IfStatement:function(e){if(l.isBlockStatement(e.consequent))return{before:!0,after:!0}}},t.nodes.ObjectProperty=t.nodes.ObjectTypeProperty=t.nodes.ObjectMethod=t.nodes.SpreadProperty=function(e,t){if(t.properties[0]===e)return{before:!0}},t.list={VariableDeclaration:function(e){return(0,o.default)(e.declarations,"init")},ArrayExpression:function(e){return e.elements},ObjectExpression:function(e){return e.properties}},[["Function",!0],["Class",!0],["Loop",!0],["LabeledStatement",!0],["SwitchStatement",!0],["TryStatement",!0]].forEach(function(e){var r=e[0],n=e[1];"boolean"==typeof n&&(n={after:n,before:n}),[r].concat(l.FLIPPED_ALIAS_KEYS[r]||[]).forEach(function(e){t.nodes[e]=function(){return n}})})},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(){this.token(","),this.space()}t.__esModule=!0;var a=r(87),o=i(a),u=r(2),l=i(u),c=r(35),f=i(c),p=r(365),d=i(p),h=r(3),m=i(h),y=r(579),v=i(y),g=r(581),b=i(g),E=r(586),x=i(E),A=r(278),S=i(A),_=r(300),D=i(_),C=r(187),w=n(C),P=r(314),k=i(P),F=r(1),T=n(F),O=/e/i,B=/\.0+$/,R=/^0[box]/,I=function(){function e(t,r,n){(0,m.default)(this,e),this.inForStatementInitCounter=0,this._printStack=[],this._indent=0,this._insideAux=!1,this._printedCommentStarts={},this._parenPushNewlineState=null,this._printAuxAfterOnNextUserNode=!1,this._printedComments=new d.default,this._endsWithInteger=!1,this._endsWithWord=!1,this.format=t||{},this._buf=new D.default(r),this._whitespace=n.length>0?new k.default(n):null}return e.prototype.generate=function(e){return this.print(e),this._maybeAddAuxComment(),this._buf.get()},e.prototype.indent=function(){this.format.compact||this.format.concise||this._indent++},e.prototype.dedent=function(){this.format.compact||this.format.concise||this._indent--},e.prototype.semicolon=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._maybeAddAuxComment(),this._append(";",!e)},e.prototype.rightBrace=function(){this.format.minified&&this._buf.removeLastSemicolon(),this.token("}")},e.prototype.space=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.format.compact||(this._buf.hasContent()&&!this.endsWith(" ")&&!this.endsWith("\n")||e)&&this._space()},e.prototype.word=function(e){this._endsWithWord&&this._space(),this._maybeAddAuxComment(),this._append(e),this._endsWithWord=!0},e.prototype.number=function(e){this.word(e),this._endsWithInteger=(0,x.default)(+e)&&!R.test(e)&&!O.test(e)&&!B.test(e)&&"."!==e[e.length-1]},e.prototype.token=function(e){("--"===e&&this.endsWith("!")||"+"===e[0]&&this.endsWith("+")||"-"===e[0]&&this.endsWith("-")||"."===e[0]&&this._endsWithInteger)&&this._space(),this._maybeAddAuxComment(),this._append(e)},e.prototype.newline=function(e){if(!this.format.retainLines&&!this.format.compact){if(this.format.concise)return void this.space();if(!(this.endsWith("\n\n")||("number"!=typeof e&&(e=1),e=Math.min(2,e),(this.endsWith("{\n")||this.endsWith(":\n"))&&e--,e<=0)))for(var t=0;t<e;t++)this._newline()}},e.prototype.endsWith=function(e){return this._buf.endsWith(e)},e.prototype.removeTrailingNewline=function(){this._buf.removeTrailingNewline()},e.prototype.source=function(e,t){this._catchUp(e,t),this._buf.source(e,t)},e.prototype.withSource=function(e,t,r){this._catchUp(e,t),this._buf.withSource(e,t,r)},e.prototype._space=function(){this._append(" ",!0)},e.prototype._newline=function(){this._append("\n",!0)},e.prototype._append=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._maybeAddParen(e),this._maybeIndent(e),t?this._buf.queue(e):this._buf.append(e),this._endsWithWord=!1,this._endsWithInteger=!1},e.prototype._maybeIndent=function(e){this._indent&&this.endsWith("\n")&&"\n"!==e[0]&&this._buf.queue(this._getIndent())},e.prototype._maybeAddParen=function(e){var t=this._parenPushNewlineState;if(t){this._parenPushNewlineState=null;var r=void 0;for(r=0;r<e.length&&" "===e[r];r++);if(r!==e.length){var n=e[r];"\n"!==n&&"/"!==n||(this.token("("),this.indent(),t.printed=!0)}}},e.prototype._catchUp=function(e,t){if(this.format.retainLines){var r=t?t[e]:null;if(r&&null!==r.line)for(var n=r.line-this._buf.getCurrentLine(),i=0;i<n;i++)this._newline()}},e.prototype._getIndent=function(){return(0,S.default)(this.format.indent.style,this._indent)},e.prototype.startTerminatorless=function(){return this._parenPushNewlineState={printed:!1}},e.prototype.endTerminatorless=function(e){e.printed&&(this.dedent(),this.newline(),this.token(")"))},e.prototype.print=function(e,t){var r=this;if(e){var n=this.format.concise;e._compact&&(this.format.concise=!0);if(!this[e.type])throw new ReferenceError("unknown node of type "+(0,f.default)(e.type)+" with constructor "+(0,f.default)(e&&e.constructor.name));this._printStack.push(e);var i=this._insideAux;this._insideAux=!e.loc,this._maybeAddAuxComment(this._insideAux&&!i);var s=w.needsParens(e,t,this._printStack);this.format.retainFunctionParens&&"FunctionExpression"===e.type&&e.extra&&e.extra.parenthesized&&(s=!0),s&&this.token("("),this._printLeadingComments(e,t);var a=T.isProgram(e)||T.isFile(e)?null:e.loc;this.withSource("start",a,function(){r[e.type](e,t)}),this._printTrailingComments(e,t),s&&this.token(")"),this._printStack.pop(),this.format.concise=n,this._insideAux=i}},e.prototype._maybeAddAuxComment=function(e){e&&this._printAuxBeforeComment(),this._insideAux||this._printAuxAfterComment()},e.prototype._printAuxBeforeComment=function(){if(!this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!0;var e=this.format.auxiliaryCommentBefore;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype._printAuxAfterComment=function(){if(this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!1;var e=this.format.auxiliaryCommentAfter;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype.getPossibleRaw=function(e){var t=e.extra;if(t&&null!=t.raw&&null!=t.rawValue&&e.value===t.rawValue)return t.raw},e.prototype.printJoin=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e&&e.length){r.indent&&this.indent();for(var n={addNewlines:r.addNewlines},i=0;i<e.length;i++){var s=e[i];s&&(r.statement&&this._printNewline(!0,s,t,n),this.print(s,t),r.iterator&&r.iterator(s,i),r.separator&&i<e.length-1&&r.separator.call(this),r.statement&&this._printNewline(!1,s,t,n))}r.indent&&this.dedent()}},e.prototype.printAndIndentOnComments=function(e,t){var r=!!e.leadingComments;r&&this.indent(),this.print(e,t),r&&this.dedent()},e.prototype.printBlock=function(e){var t=e.body;T.isEmptyStatement(t)||this.space(),this.print(t,e)},e.prototype._printTrailingComments=function(e,t){this._printComments(this._getComments(!1,e,t))},e.prototype._printLeadingComments=function(e,t){this._printComments(this._getComments(!0,e,t))},e.prototype.printInnerComments=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.innerComments&&(t&&this.indent(),this._printComments(e.innerComments),t&&this.dedent())},e.prototype.printSequence=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.statement=!0,this.printJoin(e,t,r)},e.prototype.printList=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return null==r.separator&&(r.separator=s),this.printJoin(e,t,r)},e.prototype._printNewline=function(e,t,r,n){var i=this;if(!this.format.retainLines&&!this.format.compact){if(this.format.concise)return void this.space();var s=0;if(null!=t.start&&!t._ignoreUserWhitespace&&this._whitespace)if(e){var a=t.leadingComments,o=a&&(0,v.default)(a,function(e){
return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesBefore(o||t)}else{var u=t.trailingComments,l=u&&(0,b.default)(u,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesAfter(l||t)}else{e||s++,n.addNewlines&&(s+=n.addNewlines(e,t)||0);var c=w.needsWhitespaceAfter;e&&(c=w.needsWhitespaceBefore),c(t,r)&&s++,this._buf.hasContent()||(s=0)}this.newline(s)}},e.prototype._getComments=function(e,t){return t&&(e?t.leadingComments:t.trailingComments)||[]},e.prototype._printComment=function(e){var t=this;if(this.format.shouldPrintComment(e.value)&&!e.ignore&&!this._printedComments.has(e)){if(this._printedComments.add(e),null!=e.start){if(this._printedCommentStarts[e.start])return;this._printedCommentStarts[e.start]=!0}this.newline(this._whitespace?this._whitespace.getNewlinesBefore(e):0),this.endsWith("[")||this.endsWith("{")||this.space();var r="CommentLine"===e.type?"//"+e.value+"\n":"/*"+e.value+"*/";if("CommentBlock"===e.type&&this.format.indent.adjustMultilineComment){var n=e.loc&&e.loc.start.column;if(n){var i=new RegExp("\\n\\s{1,"+n+"}","g");r=r.replace(i,"\n")}var s=Math.max(this._getIndent().length,this._buf.getCurrentColumn());r=r.replace(/\n(?!$)/g,"\n"+(0,S.default)(" ",s))}this.withSource("start",e.loc,function(){t._append(r)}),this.newline((this._whitespace?this._whitespace.getNewlinesAfter(e):0)+("CommentLine"===e.type?-1:0))}},e.prototype._printComments=function(e){if(e&&e.length)for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,l.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this._printComment(s)}},e}();t.default=I;for(var M=[r(309),r(303),r(308),r(302),r(306),r(307),r(123),r(304),r(301),r(305)],N=0;N<M.length;N++){var L=M[N];(0,o.default)(I.prototype,L)}e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(14),s=n(i),a=r(11),o=n(a),u=r(3),l=n(u),c=r(288),f=n(c),p=function(){function e(t,r){(0,l.default)(this,e),this._cachedMap=null,this._code=r,this._opts=t,this._rawMappings=[]}return e.prototype.get=function(){if(!this._cachedMap){var e=this._cachedMap=new f.default.SourceMapGenerator({file:this._opts.sourceMapTarget,sourceRoot:this._opts.sourceRoot}),t=this._code;"string"==typeof t?e.setSourceContent(this._opts.sourceFileName,t):"object"===(void 0===t?"undefined":(0,o.default)(t))&&(0,s.default)(t).forEach(function(r){e.setSourceContent(r,t[r])}),this._rawMappings.forEach(e.addMapping,e)}return this._cachedMap.toJSON()},e.prototype.getRawMappings=function(){return this._rawMappings.slice()},e.prototype.mark=function(e,t,r,n,i,s){this._lastGenLine!==e&&null===r||this._lastGenLine===e&&this._lastSourceLine===r&&this._lastSourceColumn===n||(this._cachedMap=null,this._lastGenLine=e,this._lastSourceLine=r,this._lastSourceColumn=n,this._rawMappings.push({name:i||void 0,generated:{line:e,column:t},source:null==r?void 0:s||this._opts.sourceFileName,original:null==r?void 0:{line:r,column:n}}))},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function(){function e(t){(0,i.default)(this,e),this.tokens=t,this.used={}}return e.prototype.getNewlinesBefore=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.start-e.start},0,n.length);if(i>=0){for(;i&&e.start===n[i-1].start;)--i;t=n[i-1],r=n[i]}return this._getNewlinesBetween(t,r)},e.prototype.getNewlinesAfter=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.end-e.end},0,n.length);if(i>=0){for(;i&&e.end===n[i-1].end;)--i;t=n[i],r=n[i+1],","===r.type.label&&(r=n[i+2])}return r&&"eof"===r.type.label?1:this._getNewlinesBetween(t,r)},e.prototype._getNewlinesBetween=function(e,t){if(!t||!t.loc)return 0;for(var r=e?e.loc.end.line:1,n=t.loc.start.line,i=0,s=r;s<n;s++)void 0===this.used[s]&&(this.used[s]=!0,i++);return i},e.prototype._findToken=function(e,t,r){if(t>=r)return-1;var n=t+r>>>1,i=e(this.tokens[n]);return i<0?this._findToken(e,n+1,r):i>0?this._findToken(e,t,n):0===i?n:-1},e}();t.default=s,e.exports=t.default},function(e,t,r){"use strict";function n(e){for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var a=i,u=a.node,l=u.expression;if(o.isMemberExpression(l)){var c=a.scope.maybeGenerateMemoised(l.object),f=void 0,p=[];c?(f=c,p.push(o.assignmentExpression("=",c,l.object))):f=l.object,p.push(o.callExpression(o.memberExpression(o.memberExpression(f,l.property,l.computed),o.identifier("bind")),[f])),1===p.length?u.expression=p[0]:u.expression=o.sequenceExpression(p)}}}t.__esModule=!0;var i=r(2),s=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default=n;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(t){return t&&t.operator===e.operator+"="}function r(e,t){return a.assignmentExpression("=",e,t)}var n={};return n.ExpressionStatement=function(n,s){if(!n.isCompletionRecord()){var o=n.node.expression;if(t(o)){var u=[],l=(0,i.default)(o.left,u,s,n.scope,!0);u.push(a.expressionStatement(r(l.ref,e.build(l.uid,o.right)))),n.replaceWithMultiple(u)}}},n.AssignmentExpression=function(n,s){var a=n.node,o=n.scope;if(t(a)){var u=[],l=(0,i.default)(a.left,u,s,o);u.push(r(l.ref,e.build(l.uid,a.right))),n.replaceWithMultiple(u)}},n.BinaryExpression=function(t){var r=t.node;r.operator===e.operator&&t.replaceWith(e.build(r.left,r.right))},n};var n=r(318),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.scope,r=e.node,n=a.functionExpression(null,[],r.body,r.generator,r.async),s=n,u=[];(0,i.default)(e,function(e){return t.push({id:e})});var l={foundThis:!1,foundArguments:!1};e.traverse(o,l),l.foundArguments&&(s=a.memberExpression(n,a.identifier("apply")),u=[],l.foundThis&&u.push(a.thisExpression()),l.foundArguments&&(l.foundThis||u.push(a.nullLiteral()),u.push(a.identifier("arguments"))));var c=a.callExpression(s,u);return r.generator&&(c=a.yieldExpression(c,!0)),a.returnStatement(c)};var n=r(190),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s),o={enter:function(e,t){e.isThisExpression()&&(t.foundThis=!0),e.isReferencedIdentifier({name:"arguments"})&&(t.foundArguments=!0)},Function:function(e){e.skip()}};e.exports=t.default},function(e,t,r){"use strict";function n(e,t,r,n){var i=void 0;if(a.isSuper(e))return e;if(a.isIdentifier(e)){if(n.hasBinding(e.name))return e;i=e}else{if(!a.isMemberExpression(e))throw new Error("We can't explode this node type "+e.type);if(i=e.object,a.isSuper(i)||a.isIdentifier(i)&&n.hasBinding(i.name))return i}var s=n.generateUidIdentifierBasedOnNode(i);return t.push(a.variableDeclaration("var",[a.variableDeclarator(s,i)])),s}function i(e,t,r,n){var i=e.property,s=a.toComputedKey(e,i);if(a.isLiteral(s)&&a.isPureish(s))return s;var o=n.generateUidIdentifierBasedOnNode(i);return t.push(a.variableDeclaration("var",[a.variableDeclarator(o,i)])),o}t.__esModule=!0,t.default=function(e,t,r,s,o){var u=void 0;u=a.isIdentifier(e)&&o?e:n(e,t,r,s);var l=void 0,c=void 0;if(a.isIdentifier(e))l=e,c=u;else{var f=i(e,t,r,s),p=e.computed||a.isLiteral(f);c=l=a.memberExpression(u,f,p)}return{uid:c,ref:l}};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){function t(t){if(t.node&&!t.isPure()){var r=e.scope.generateDeclaredUidIdentifier();n.push(l.assignmentExpression("=",r,t.node)),t.replaceWith(r)}}function r(e){if(Array.isArray(e)&&e.length){e=e.reverse(),(0,o.default)(e);for(var r=e,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}t(a)}}}e.assertClass();var n=[];t(e.get("superClass")),r(e.get("decorators"));for(var i=e.get("body.body"),a=i,u=Array.isArray(a),c=0,a=u?a:(0,s.default)(a);;){var f;if(u){if(c>=a.length)break;f=a[c++]}else{if(c=a.next(),c.done)break;f=c.value}var p=f;p.is("computed")&&t(p.get("key")),p.has("decorators")&&r(e.get("decorators"))}n&&e.insertBefore(n.map(function(e){return l.expressionStatement(e)}))};var a=r(315),o=n(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.default=function(e,t){var r=e.node,n=e.scope,i=e.parent,a=n.generateUidIdentifier("step"),o=n.generateUidIdentifier("value"),u=r.left,p=void 0;s.isIdentifier(u)||s.isPattern(u)||s.isMemberExpression(u)?p=s.expressionStatement(s.assignmentExpression("=",u,o)):s.isVariableDeclaration(u)&&(p=s.variableDeclaration(u.kind,[s.variableDeclarator(u.declarations[0].id,o)]));var d=c();(0,l.default)(d,f,null,{ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:n.generateUidIdentifier("iterator"),GET_ITERATOR:t.getAsyncIterator,OBJECT:r.right,STEP_VALUE:o,STEP_KEY:a,AWAIT:t.wrapAwait}),d=d.body.body;var h=s.isLabeledStatement(i),m=d[3].block.body,y=m[0];return h&&(m[0]=s.labeledStatement(i.label,y)),{replaceParent:h,node:d,declar:p,loop:y}};var i=r(1),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(i),a=r(4),o=n(a),u=r(7),l=n(u),c=(0,o.default)("\n  function* wrapper() {\n    var ITERATOR_COMPLETION = true;\n    var ITERATOR_HAD_ERROR_KEY = false;\n    var ITERATOR_ERROR_KEY = undefined;\n    try {\n      for (\n        var ITERATOR_KEY = GET_ITERATOR(OBJECT), STEP_KEY, STEP_VALUE;\n        (\n          STEP_KEY = yield AWAIT(ITERATOR_KEY.next()),\n          ITERATOR_COMPLETION = STEP_KEY.done,\n          STEP_VALUE = yield AWAIT(STEP_KEY.value),\n          !ITERATOR_COMPLETION\n        );\n        ITERATOR_COMPLETION = true) {\n      }\n    } catch (err) {\n      ITERATOR_HAD_ERROR_KEY = true;\n      ITERATOR_ERROR_KEY = err;\n    } finally {\n      try {\n        if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n          yield AWAIT(ITERATOR_KEY.return());\n        }\n      } finally {\n        if (ITERATOR_HAD_ERROR_KEY) {\n          throw ITERATOR_ERROR_KEY;\n        }\n      }\n    }\n  }\n"),f={noScope:!0,Identifier:function(e,t){e.node.name in t&&e.replaceInline(t[e.node.name])},CallExpression:function(e,t){var r=e.node.callee;s.isIdentifier(r)&&"AWAIT"===r.name&&!t.AWAIT&&e.replaceWith(e.node.arguments[0])}};e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(4),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s={};t.default=s,s.typeof=(0,i.default)('\n  (typeof Symbol === "function" && typeof Symbol.iterator === "symbol")\n    ? function (obj) { return typeof obj; }\n    : function (obj) {\n        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype\n          ? "symbol"\n          : typeof obj;\n      };\n'),s.jsx=(0,i.default)('\n  (function () {\n    var REACT_ELEMENT_TYPE = (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7;\n\n    return function createRawReactElement (type, props, key, children) {\n      var defaultProps = type && type.defaultProps;\n      var childrenLength = arguments.length - 3;\n\n      if (!props && childrenLength !== 0) {\n        // If we\'re going to assign props.children, we create a new object now\n        // to avoid mutating defaultProps.\n        props = {};\n      }\n      if (props && defaultProps) {\n        for (var propName in defaultProps) {\n          if (props[propName] === void 0) {\n            props[propName] = defaultProps[propName];\n          }\n        }\n      } else if (!props) {\n        props = defaultProps || {};\n      }\n\n      if (childrenLength === 1) {\n        props.children = children;\n      } else if (childrenLength > 1) {\n        var childArray = Array(childrenLength);\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 3];\n        }\n        props.children = childArray;\n      }\n\n      return {\n        $$typeof: REACT_ELEMENT_TYPE,\n        type: type,\n        key: key === undefined ? null : \'\' + key,\n        ref: null,\n        props: props,\n        _owner: null,\n      };\n    };\n\n  })()\n'),s.asyncIterator=(0,i.default)('\n  (function (iterable) {\n    if (typeof Symbol === "function") {\n      if (Symbol.asyncIterator) {\n        var method = iterable[Symbol.asyncIterator];\n        if (method != null) return method.call(iterable);\n      }\n      if (Symbol.iterator) {\n        return iterable[Symbol.iterator]();\n      }\n    }\n    throw new TypeError("Object is not async iterable");\n  })\n'),s.asyncGenerator=(0,i.default)('\n  (function () {\n    function AwaitValue(value) {\n      this.value = value;\n    }\n\n    function AsyncGenerator(gen) {\n      var front, back;\n\n      function send(key, arg) {\n        return new Promise(function (resolve, reject) {\n          var request = {\n            key: key,\n            arg: arg,\n            resolve: resolve,\n            reject: reject,\n            next: null\n          };\n\n          if (back) {\n            back = back.next = request;\n          } else {\n            front = back = request;\n            resume(key, arg);\n          }\n        });\n      }\n\n      function resume(key, arg) {\n        try {\n          var result = gen[key](arg)\n          var value = result.value;\n          if (value instanceof AwaitValue) {\n            Promise.resolve(value.value).then(\n              function (arg) { resume("next", arg); },\n              function (arg) { resume("throw", arg); });\n          } else {\n            settle(result.done ? "return" : "normal", result.value);\n          }\n        } catch (err) {\n          settle("throw", err);\n        }\n      }\n\n      function settle(type, value) {\n        switch (type) {\n          case "return":\n            front.resolve({ value: value, done: true });\n            break;\n          case "throw":\n            front.reject(value);\n            break;\n          default:\n            front.resolve({ value: value, done: false });\n            break;\n        }\n\n        front = front.next;\n        if (front) {\n          resume(front.key, front.arg);\n        } else {\n          back = null;\n        }\n      }\n\n      this._invoke = send;\n\n      // Hide "return" method if generator return is not supported\n      if (typeof gen.return !== "function") {\n        this.return = undefined;\n      }\n    }\n\n    if (typeof Symbol === "function" && Symbol.asyncIterator) {\n      AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; };\n    }\n\n    AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };\n    AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };\n    AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };\n\n    return {\n      wrap: function (fn) {\n        return function () {\n          return new AsyncGenerator(fn.apply(this, arguments));\n        };\n      },\n      await: function (value) {\n        return new AwaitValue(value);\n      }\n    };\n\n  })()\n'),s.asyncGeneratorDelegate=(0,i.default)('\n  (function (inner, awaitWrap) {\n    var iter = {}, waiting = false;\n\n    function pump(key, value) {\n      waiting = true;\n      value = new Promise(function (resolve) { resolve(inner[key](value)); });\n      return { done: false, value: awaitWrap(value) };\n    };\n\n    if (typeof Symbol === "function" && Symbol.iterator) {\n      iter[Symbol.iterator] = function () { return this; };\n    }\n\n    iter.next = function (value) {\n      if (waiting) {\n        waiting = false;\n        return value;\n      }\n      return pump("next", value);\n    };\n\n    if (typeof inner.throw === "function") {\n      iter.throw = function (value) {\n        if (waiting) {\n          waiting = false;\n          throw value;\n        }\n        return pump("throw", value);\n      };\n    }\n\n    if (typeof inner.return === "function") {\n      iter.return = function (value) {\n        return pump("return", value);\n      };\n    }\n\n    return iter;\n  })\n'),s.asyncToGenerator=(0,i.default)('\n  (function (fn) {\n    return function () {\n      var gen = fn.apply(this, arguments);\n      return new Promise(function (resolve, reject) {\n        function step(key, arg) {\n          try {\n            var info = gen[key](arg);\n            var value = info.value;\n          } catch (error) {\n            reject(error);\n            return;\n          }\n\n          if (info.done) {\n            resolve(value);\n          } else {\n            return Promise.resolve(value).then(function (value) {\n              step("next", value);\n            }, function (err) {\n              step("throw", err);\n            });\n          }\n        }\n\n        return step("next");\n      });\n    };\n  })\n'),s.classCallCheck=(0,i.default)('\n  (function (instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError("Cannot call a class as a function");\n    }\n  });\n'),s.createClass=(0,i.default)('\n  (function() {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i ++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ("value" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  })()\n'),s.defineEnumerableProperties=(0,i.default)('\n  (function (obj, descs) {\n    for (var key in descs) {\n      var desc = descs[key];\n      desc.configurable = desc.enumerable = true;\n      if ("value" in desc) desc.writable = true;\n      Object.defineProperty(obj, key, desc);\n    }\n    return obj;\n  })\n'),s.defaults=(0,i.default)("\n  (function (obj, defaults) {\n    var keys = Object.getOwnPropertyNames(defaults);\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      var value = Object.getOwnPropertyDescriptor(defaults, key);\n      if (value && value.configurable && obj[key] === undefined) {\n        Object.defineProperty(obj, key, value);\n      }\n    }\n    return obj;\n  })\n"),s.defineProperty=(0,i.default)("\n  (function (obj, key, value) {\n    // Shortcircuit the slow defineProperty path when possible.\n    // We are trying to avoid issues where setters defined on the\n    // prototype cause side effects under the fast path of simple\n    // assignment. By checking for existence of the property with\n    // the in operator, we can optimize most of this overhead away.\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n    return obj;\n  });\n"),s.extends=(0,i.default)("\n  Object.assign || (function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  })\n"),s.get=(0,i.default)('\n  (function get(object, property, receiver) {\n    if (object === null) object = Function.prototype;\n\n    var desc = Object.getOwnPropertyDescriptor(object, property);\n\n    if (desc === undefined) {\n      var parent = Object.getPrototypeOf(object);\n\n      if (parent === null) {\n        return undefined;\n      } else {\n        return get(parent, property, receiver);\n      }\n    } else if ("value" in desc) {\n      return desc.value;\n    } else {\n      var getter = desc.get;\n\n      if (getter === undefined) {\n        return undefined;\n      }\n\n      return getter.call(receiver);\n    }\n  });\n'),s.inherits=(0,i.default)('\n  (function (subClass, superClass) {\n    if (typeof superClass !== "function" && superClass !== null) {\n      throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);\n    }\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n  })\n'),s.instanceof=(0,i.default)('\n  (function (left, right) {\n    if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {\n      return right[Symbol.hasInstance](left);\n    } else {\n      return left instanceof right;\n    }\n  });\n'),s.interopRequireDefault=(0,i.default)("\n  (function (obj) {\n    return obj && obj.__esModule ? obj : { default: obj };\n  })\n"),s.interopRequireWildcard=(0,i.default)("\n  (function (obj) {\n    if (obj && obj.__esModule) {\n      return obj;\n    } else {\n      var newObj = {};\n      if (obj != null) {\n        for (var key in obj) {\n          if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n        }\n      }\n      newObj.default = obj;\n      return newObj;\n    }\n  })\n"),s.newArrowCheck=(0,i.default)('\n  (function (innerThis, boundThis) {\n    if (innerThis !== boundThis) {\n      throw new TypeError("Cannot instantiate an arrow function");\n    }\n  });\n'),s.objectDestructuringEmpty=(0,i.default)('\n  (function (obj) {\n    if (obj == null) throw new TypeError("Cannot destructure undefined");\n  });\n'),s.objectWithoutProperties=(0,i.default)("\n  (function (obj, keys) {\n    var target = {};\n    for (var i in obj) {\n      if (keys.indexOf(i) >= 0) continue;\n      if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n      target[i] = obj[i];\n    }\n    return target;\n  })\n"),s.possibleConstructorReturn=(0,i.default)('\n  (function (self, call) {\n    if (!self) {\n      throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n    }\n    return call && (typeof call === "object" || typeof call === "function") ? call : self;\n  });\n'),s.selfGlobal=(0,i.default)('\n  typeof global === "undefined" ? self : global\n'),s.set=(0,i.default)('\n  (function set(object, property, value, receiver) {\n    var desc = Object.getOwnPropertyDescriptor(object, property);\n\n    if (desc === undefined) {\n      var parent = Object.getPrototypeOf(object);\n\n      if (parent !== null) {\n        set(parent, property, value, receiver);\n      }\n    } else if ("value" in desc && desc.writable) {\n      desc.value = value;\n    } else {\n      var setter = desc.set;\n\n      if (setter !== undefined) {\n        setter.call(receiver, value);\n      }\n    }\n\n    return value;\n  });\n'),s.slicedToArray=(0,i.default)('\n  (function () {\n    // Broken out into a separate function to avoid deoptimizations due to the try/catch for the\n    // array iterator case.\n    function sliceIterator(arr, i) {\n      // this is an expanded form of `for...of` that properly supports abrupt completions of\n      // iterators etc. variable names have been minimised to reduce the size of this massive\n      // helper. sometimes spec compliancy is annoying :(\n      //\n      // _n = _iteratorNormalCompletion\n      // _d = _didIteratorError\n      // _e = _iteratorError\n      // _i = _iterator\n      // _s = _step\n\n      var _arr = [];\n      var _n = true;\n      var _d = false;\n      var _e = undefined;\n      try {\n        for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n          _arr.push(_s.value);\n          if (i && _arr.length === i) break;\n        }\n      } catch (err) {\n        _d = true;\n        _e = err;\n      } finally {\n        try {\n          if (!_n && _i["return"]) _i["return"]();\n        } finally {\n          if (_d) throw _e;\n        }\n      }\n      return _arr;\n    }\n\n    return function (arr, i) {\n      if (Array.isArray(arr)) {\n        return arr;\n      } else if (Symbol.iterator in Object(arr)) {\n        return sliceIterator(arr, i);\n      } else {\n        throw new TypeError("Invalid attempt to destructure non-iterable instance");\n      }\n    };\n  })();\n'),s.slicedToArrayLoose=(0,i.default)('\n  (function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if (Symbol.iterator in Object(arr)) {\n      var _arr = [];\n      for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n        _arr.push(_step.value);\n        if (i && _arr.length === i) break;\n      }\n      return _arr;\n    } else {\n      throw new TypeError("Invalid attempt to destructure non-iterable instance");\n    }\n  });\n'),s.taggedTemplateLiteral=(0,i.default)("\n  (function (strings, raw) {\n    return Object.freeze(Object.defineProperties(strings, {\n        raw: { value: Object.freeze(raw) }\n    }));\n  });\n"),s.taggedTemplateLiteralLoose=(0,i.default)("\n  (function (strings, raw) {\n    strings.raw = raw;\n    return strings;\n  });\n"),s.temporalRef=(0,i.default)('\n  (function (val, name, undef) {\n    if (val === undef) {\n      throw new ReferenceError(name + " is not defined - temporal dead zone");\n    } else {\n      return val;\n    }\n  })\n'),s.temporalUndefined=(0,i.default)("\n  ({})\n"),s.toArray=(0,i.default)("\n  (function (arr) {\n    return Array.isArray(arr) ? arr : Array.from(arr);\n  });\n"),s.toConsumableArray=(0,i.default)("\n  (function (arr) {\n    if (Array.isArray(arr)) {\n      for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n      return arr2;\n    } else {\n      return Array.from(arr);\n    }\n  });\n"),e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{pre:function(e){e.set("helpersNamespace",t.identifier("babelHelpers"))}}},e.exports=t.default},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(89);e.exports=function(e){var t=e.types,r={};return{visitor:{Identifier:function(e,s){if("MemberExpression"!==e.parent.type&&"ClassMethod"!==e.parent.type&&!e.isPure()&&s.opts.hasOwnProperty(e.node.name)){var a=s.opts[e.node.name];void 0!==a&&null!==a||(a=t.identifier(String(a)));var o=void 0===a?"undefined":n(a);"string"===o||"boolean"===o?a={type:o,replacement:a}:t.isNode(a)?a={type:"node",replacement:a}:"object"===o&&"node"===a.type&&"string"==typeof a.replacement&&(a.replacement=r[a.replacement]?r[a.replacement]:i.parseExpression(a.replacement));var u=a.replacement;switch(a.type){case"boolean":e.replaceWith(t.booleanLiteral(u));break;case"node":t.isNode(u)&&e.replaceWith(u);break;default:var l=String(u);e.replaceWith(t.stringLiteral(l))}}}}}}},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("dynamicImport")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("functionSent")}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67)}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types,n={Function:function(e){e.skip()},YieldExpression:function(e,r){var n=e.node;if(n.delegate){var i=r.addHelper("asyncGeneratorDelegate");n.argument=t.callExpression(i,[t.callExpression(r.addHelper("asyncIterator"),[n.argument]),t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("await"))])}}};return{inherits:r(195),visitor:{Function:function(e,r){e.node.async&&e.node.generator&&(e.traverse(n,r),(0,i.default)(e,r.file,{wrapAsync:t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("wrap")),wrapAwait:t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("await"))}))}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67),visitor:{Function:function(e,t){e.node.async&&!e.node.generator&&(0,i.default)(e,t.file,{wrapAsync:t.addImport(t.opts.module,t.opts.method)})}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){function t(e,t){if(!t.applyDecoratedDescriptor){t.applyDecoratedDescriptor=e.scope.generateUidIdentifier("applyDecoratedDescriptor");var r=f({NAME:t.applyDecoratedDescriptor});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.applyDecoratedDescriptor}function n(e,t){if(!t.initializerDefineProp){t.initializerDefineProp=e.scope.generateUidIdentifier("initDefineProp");var r=c({NAME:t.initializerDefineProp});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.initializerDefineProp}function i(e,t){if(!t.initializerWarningHelper){t.initializerWarningHelper=e.scope.generateUidIdentifier("initializerWarningHelper");var r=l({NAME:t.initializerWarningHelper});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.initializerWarningHelper}function p(e){var t=(e.isClass()?[e].concat(e.get("body.body")):e.get("properties")).reduce(function(e,t){return e.concat(t.node.decorators||[])},[]),r=t.filter(function(e){return!v.isIdentifier(e.expression)});if(0!==r.length)return v.sequenceExpression(r.map(function(t){var r=t.expression,n=t.expression=e.scope.generateDeclaredUidIdentifier("dec");return v.assignmentExpression("=",n,r)}).concat([e.node]))}function d(e,t){var r=e.node.decorators||[];if(e.node.decorators=null,0!==r.length){var n=e.scope.generateDeclaredUidIdentifier("class");return r.map(function(e){return e.expression}).reverse().reduce(function(e,t){return s({CLASS_REF:n,DECORATOR:t,INNER:e}).expression},e.node)}}function h(e,t){if(e.node.body.body.some(function(e){return(e.decorators||[]).length>0}))return y(e,t,e.node.body.body)}function m(e,t){if(e.node.properties.some(function(e){return(e.decorators||[]).length>0}))return y(e,t,e.node.properties)}function y(e,r,n){var s=(e.scope.generateDeclaredUidIdentifier("desc"),e.scope.generateDeclaredUidIdentifier("value"),
e.scope.generateDeclaredUidIdentifier(e.isClass()?"class":"obj")),l=n.reduce(function(n,l){var c=l.decorators||[];if(l.decorators=null,0===c.length)return n;if(l.computed)throw e.buildCodeFrameError("Computed method/property decorators are not yet supported.");var f=v.isLiteral(l.key)?l.key:v.stringLiteral(l.key.name),p=e.isClass()&&!l.static?a({CLASS_REF:s}).expression:s;if(v.isClassProperty(l,{static:!1})){var d=e.scope.generateDeclaredUidIdentifier("descriptor"),h=l.value?v.functionExpression(null,[],v.blockStatement([v.returnStatement(l.value)])):v.nullLiteral();l.value=v.callExpression(i(e,r),[d,v.thisExpression()]),n=n.concat([v.assignmentExpression("=",d,v.callExpression(t(e,r),[p,f,v.arrayExpression(c.map(function(e){return e.expression})),v.objectExpression([v.objectProperty(v.identifier("enumerable"),v.booleanLiteral(!0)),v.objectProperty(v.identifier("initializer"),h)])]))])}else n=n.concat(v.callExpression(t(e,r),[p,f,v.arrayExpression(c.map(function(e){return e.expression})),v.isObjectProperty(l)||v.isClassProperty(l,{static:!0})?u({TEMP:e.scope.generateDeclaredUidIdentifier("init"),TARGET:p,PROPERTY:f}).expression:o({TARGET:p,PROPERTY:f}).expression,p]));return n},[]);return v.sequenceExpression([v.assignmentExpression("=",s,e.node),v.sequenceExpression(l),s])}var v=e.types;return{inherits:r(125),visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var t=e.node,r=t.declaration.id||e.scope.generateUidIdentifier("default");t.declaration.id=r,e.replaceWith(t.declaration),e.insertAfter(v.exportNamedDeclaration(null,[v.exportSpecifier(r,v.identifier("default"))]))}},ClassDeclaration:function(e){var t=e.node,r=t.id||e.scope.generateUidIdentifier("class");e.replaceWith(v.variableDeclaration("let",[v.variableDeclarator(r,v.toExpression(t))]))},ClassExpression:function(e,t){var r=p(e)||d(e,t)||h(e,t);r&&e.replaceWith(r)},ObjectExpression:function(e,t){var r=p(e)||m(e,t);r&&e.replaceWith(r)},AssignmentExpression:function(e,t){t.initializerWarningHelper&&e.get("left").isMemberExpression()&&e.get("left.property").isIdentifier()&&e.get("right").isCallExpression()&&e.get("right.callee").isIdentifier({name:t.initializerWarningHelper.name})&&e.replaceWith(v.callExpression(n(e,t),[e.get("left.object").node,v.stringLiteral(e.get("left.property").node.name),e.get("right.arguments")[0].node,e.get("right.arguments")[1].node]))}}}};var n=r(4),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=(0,i.default)("\n  DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n"),a=(0,i.default)("\n  CLASS_REF.prototype;\n"),o=(0,i.default)("\n    Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n"),u=(0,i.default)("\n    (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n        enumerable: true,\n        configurable: true,\n        writable: true,\n        initializer: function(){\n            return TEMP;\n        }\n    })\n"),l=(0,i.default)("\n    function NAME(descriptor, context){\n        throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n    }\n"),c=(0,i.default)("\n    function NAME(target, property, descriptor, context){\n        if (!descriptor) return;\n\n        Object.defineProperty(target, property, {\n            enumerable: descriptor.enumerable,\n            configurable: descriptor.configurable,\n            writable: descriptor.writable,\n            value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,\n        });\n    }\n"),f=(0,i.default)("\n    function NAME(target, property, decorators, descriptor, context){\n        var desc = {};\n        Object['ke' + 'ys'](descriptor).forEach(function(key){\n            desc[key] = descriptor[key];\n        });\n        desc.enumerable = !!desc.enumerable;\n        desc.configurable = !!desc.configurable;\n        if ('value' in desc || desc.initializer){\n            desc.writable = true;\n        }\n\n        desc = decorators.slice().reverse().reduce(function(desc, decorator){\n            return decorator(target, property, desc) || desc;\n        }, desc);\n\n        if (context && desc.initializer !== void 0){\n            desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n            desc.initializer = undefined;\n        }\n\n        if (desc.initializer === void 0){\n            // This is a hack to avoid this being processed by 'transform-runtime'.\n            // See issue #9.\n            Object['define' + 'Property'](target, property, desc);\n            desc = null;\n        }\n\n        return desc;\n    }\n")},function(e,t,r){"use strict";function n(e,t){var r=t._guessExecutionStatusRelativeTo(e);return"before"===r?"inside":"after"===r?"outside":"maybe"}function i(e,t){return o.callExpression(t.addHelper("temporalRef"),[e,o.stringLiteral(e.name),t.addHelper("temporalUndefined")])}function s(e,t,r){var n=r.letReferences[e.name];return!!n&&t.getBindingIdentifier(e.name)===n}t.__esModule=!0,t.visitor=void 0;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);t.visitor={ReferencedIdentifier:function(e,t){if(this.file.opts.tdz){var r=e.node,a=e.parent,u=e.scope;if(!e.parentPath.isFor({left:r})&&s(r,u,t)){var l=u.getBinding(r.name).path,c=n(e,l);if("inside"!==c)if("maybe"===c){var f=i(r,t.file);if(l.parent._tdzThis=!0,e.skip(),e.parentPath.isUpdateExpression()){if(a._ignoreBlockScopingTDZ)return;e.parentPath.replaceWith(o.sequenceExpression([f,a]))}else e.replaceWith(f)}else"outside"===c&&e.replaceWith(o.throwStatement(o.inherits(o.newExpression(o.identifier("ReferenceError"),[o.stringLiteral(r.name+" is not defined - temporal dead zone")]),r)))}}},AssignmentExpression:{exit:function(e,t){if(this.file.opts.tdz){var r=e.node;if(!r._ignoreBlockScopingTDZ){var n=[],a=e.getBindingIdentifiers();for(var u in a){var l=a[u];s(l,e.scope,t)&&n.push(i(l,t.file))}n.length&&(r._ignoreBlockScopingTDZ=!0,n.push(r),e.replaceWithMultiple(n.map(o.expressionStatement)))}}}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(42),o=n(a),u=r(41),l=n(u),c=r(40),f=n(c),p=r(207),d=n(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=function(e){function t(){(0,s.default)(this,t);var r=(0,o.default)(this,e.apply(this,arguments));return r.isLoose=!0,r}return(0,l.default)(t,e),t.prototype._processMethod=function(e,t){if(!e.decorators){var r=this.classRef;e.static||(r=m.memberExpression(r,m.identifier("prototype")));var n=m.memberExpression(r,e.key,e.computed||m.isLiteral(e.key)),i=m.functionExpression(null,e.params,e.body,e.generator,e.async);i.returnType=e.returnType;var s=m.toComputedKey(e,e.key);m.isStringLiteral(s)&&(i=(0,f.default)({node:i,id:s,scope:t}));var a=m.expressionStatement(m.assignmentExpression("=",n,i));return m.inheritsComments(a,e),this.body.push(a),!0}},t}(d.default);t.default=y,e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{BinaryExpression:function(e){var r=e.node;"instanceof"===r.operator&&e.replaceWith(t.callExpression(this.addHelper("instanceof"),[r.left,r.right]))}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){for(var t=e.params,r=Array.isArray(t),n=0,t=r?t:(0,o.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(!m.isIdentifier(s))return!0}return!1}function s(e,t){if(!e.hasOwnBinding(t.name))return!0;var r=e.getOwnBinding(t.name),n=r.kind;return"param"===n||"local"===n}t.__esModule=!0,t.visitor=void 0;var a=r(2),o=n(a),u=r(189),l=n(u),c=r(317),f=n(c),p=r(4),d=n(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=(0,d.default)("\n  let VARIABLE_NAME =\n    ARGUMENTS.length > ARGUMENT_KEY && ARGUMENTS[ARGUMENT_KEY] !== undefined ?\n      ARGUMENTS[ARGUMENT_KEY]\n    :\n      DEFAULT_VALUE;\n"),v=(0,d.default)("\n  let $0 = $1[$2];\n"),g={ReferencedIdentifier:function(e,t){var r=e.scope,n=e.node;"eval"!==n.name&&s(r,n)||(t.iife=!0,e.stop())},Scope:function(e){e.skip()}};t.visitor={Function:function(e){var t=e.node,r=e.scope;if(i(t)){e.ensureBlock();var n={iife:!1,scope:r},a=[],o=m.identifier("arguments");o._shadowedFunctionLiteral=e;for(var u=(0,l.default)(t),c=e.get("params"),p=0;p<c.length;p++){var d=c[p];if(d.isAssignmentPattern()){var h=d.get("left"),b=d.get("right");if(p>=u||h.isPattern()){var E=r.generateUidIdentifier("x");E._isDefaultPlaceholder=!0,t.params[p]=E}else t.params[p]=h.node;n.iife||(b.isIdentifier()&&!s(r,b.node)?n.iife=!0:b.traverse(g,n)),function(e,r,n){var i=y({VARIABLE_NAME:e,DEFAULT_VALUE:r,ARGUMENT_KEY:m.numericLiteral(n),ARGUMENTS:o});i._blockHoist=t.params.length-n,a.push(i)}(h.node,b.node,p)}else n.iife||d.isIdentifier()||d.traverse(g,n)}for(var x=u+1;x<t.params.length;x++){var A=t.params[x];if(!A._isDefaultPlaceholder){var S=v(A,o,m.numericLiteral(x));S._blockHoist=t.params.length-x,a.push(S)}}t.params=t.params.slice(0,u),n.iife?(a.push((0,f.default)(e,r)),e.set("body",m.blockStatement(a))):e.get("body").unshiftContainer("body",a)}}}},function(e,t,r){"use strict";t.__esModule=!0,t.visitor=void 0;var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);t.visitor={Function:function(e){for(var t=e.get("params"),r=i.isRestElement(t[t.length-1])?1:0,n=t.length-r,s=0;s<n;s++){var a=t[s];if(a.isArrayPattern()||a.isObjectPattern()){var o=e.scope.generateUidIdentifier("ref"),u=i.variableDeclaration("let",[i.variableDeclarator(a.node,o)]);u._blockHoist=n-s,e.ensureBlock(),e.get("body").unshiftContainer("body",u),a.replaceWith(o)}}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return p.isRestElement(e.params[e.params.length-1])}function s(e,t,r){var n=void 0;n=p.isNumericLiteral(e.parent.property)?p.numericLiteral(e.parent.property.value+r):0===r?e.parent.property:p.binaryExpression("+",e.parent.property,p.numericLiteral(r));var i=e.scope;if(i.isPure(n))e.parentPath.replaceWith(h({ARGUMENTS:t,INDEX:n}));else{var s=i.generateUidIdentifierBasedOnNode(n);i.push({id:s,kind:"var"}),e.parentPath.replaceWith(m({ARGUMENTS:t,INDEX:n,REF:s}))}}function a(e,t,r){r?e.parentPath.replaceWith(y({ARGUMENTS:t,OFFSET:p.numericLiteral(r)})):e.replaceWith(t)}t.__esModule=!0,t.visitor=void 0;var o=r(2),u=n(o),l=r(4),c=n(l),f=r(1),p=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(f),d=(0,c.default)("\n  for (var LEN = ARGUMENTS.length,\n           ARRAY = Array(ARRAY_LEN),\n           KEY = START;\n       KEY < LEN;\n       KEY++) {\n    ARRAY[ARRAY_KEY] = ARGUMENTS[KEY];\n  }\n"),h=(0,c.default)("\n  ARGUMENTS.length <= INDEX ? undefined : ARGUMENTS[INDEX]\n"),m=(0,c.default)("\n  REF = INDEX, ARGUMENTS.length <= REF ? undefined : ARGUMENTS[REF]\n"),y=(0,c.default)("\n  ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET\n"),v={Scope:function(e,t){e.scope.bindingIdentifierEquals(t.name,t.outerBinding)||e.skip()},Flow:function(e){e.isTypeCastExpression()||e.skip()},"Function|ClassProperty":function(e,t){var r=t.noOptimise;t.noOptimise=!0,e.traverse(v,t),t.noOptimise=r,e.skip()},ReferencedIdentifier:function(e,t){var r=e.node;if("arguments"===r.name&&(t.deopted=!0),r.name===t.name)if(t.noOptimise)t.deopted=!0;else{var n=e.parentPath;if("params"===n.listKey&&n.key<t.offset)return;if(n.isMemberExpression({object:r})){var i=n.parentPath,s=!t.deopted&&!(i.isAssignmentExpression()&&n.node===i.node.left||i.isLVal()||i.isForXStatement()||i.isUpdateExpression()||i.isUnaryExpression({operator:"delete"})||(i.isCallExpression()||i.isNewExpression())&&n.node===i.node.callee);if(s)if(n.node.computed){if(n.get("property").isBaseType("number"))return void t.candidates.push({cause:"indexGetter",path:e})}else if("length"===n.node.property.name)return void t.candidates.push({cause:"lengthGetter",path:e})}if(0===t.offset&&n.isSpreadElement()){var a=n.parentPath;if(a.isCallExpression()&&1===a.node.arguments.length)return void t.candidates.push({cause:"argSpread",path:e})}t.references.push(e)}},BindingIdentifier:function(e,t){e.node.name===t.name&&(t.deopted=!0)}};t.visitor={Function:function(e){var t=e.node,r=e.scope;if(i(t)){var n=t.params.pop().argument,o=p.identifier("arguments");o._shadowedFunctionLiteral=e;var l={references:[],offset:t.params.length,argumentsNode:o,outerBinding:r.getBindingIdentifier(n.name),candidates:[],name:n.name,deopted:!1};if(e.traverse(v,l),l.deopted||l.references.length){l.references=l.references.concat(l.candidates.map(function(e){return e.path})),l.deopted=l.deopted||!!t.shadow;var c=p.numericLiteral(t.params.length),f=r.generateUidIdentifier("key"),h=r.generateUidIdentifier("len"),m=f,y=h;t.params.length&&(m=p.binaryExpression("-",f,c),y=p.conditionalExpression(p.binaryExpression(">",h,c),p.binaryExpression("-",h,c),p.numericLiteral(0)));var g=d({ARGUMENTS:o,ARRAY_KEY:m,ARRAY_LEN:y,START:c,ARRAY:n,KEY:f,LEN:h});if(l.deopted)g._blockHoist=t.params.length+1,t.body.body.unshift(g);else{g._blockHoist=1;var b=e.getEarliestCommonAncestorFrom(l.references).getStatementParent();b.findParent(function(e){if(!e.isLoop())return e.isFunction();b=e}),b.insertBefore(g)}}else for(var E=l.candidates,x=Array.isArray(E),A=0,E=x?E:(0,u.default)(E);;){var S;if(x){if(A>=E.length)break;S=E[A++]}else{if(A=E.next(),A.done)break;S=A.value}var _=S,D=_.path,C=_.cause;switch(C){case"indexGetter":s(D,o,l.offset);break;case"lengthGetter":a(D,o,l.offset);break;default:D.replaceWith(o)}}}}}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{MemberExpression:{exit:function(e){var r=e.node,n=r.property;r.computed||!t.isIdentifier(n)||t.isValidIdentifier(n.name)||(r.property=t.stringLiteral(n.name),r.computed=!0)}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{ObjectProperty:{exit:function(e){var r=e.node,n=r.key;r.computed||!t.isIdentifier(n)||t.isValidIdentifier(n.name)||(r.key=t.stringLiteral(n.name))}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types;return{visitor:{ObjectExpression:function(e,r){for(var n=e.node,s=!1,o=n.properties,u=Array.isArray(o),l=0,o=u?o:(0,i.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;if("get"===f.kind||"set"===f.kind){s=!0;break}}if(s){var p={};n.properties=n.properties.filter(function(e){return!!(e.computed||"get"!==e.kind&&"set"!==e.kind)||(a.push(p,e,null,r),!1)}),e.replaceWith(t.callExpression(t.memberExpression(t.identifier("Object"),t.identifier("defineProperties")),[n,a.toDefineObject(p)]))}}}}};var s=r(188),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.parse,r=e.traverse;return{visitor:{CallExpression:function(e){if(e.get("callee").isIdentifier({name:"eval"})&&1===e.node.arguments.length){var n=e.get("arguments")[0].evaluate();if(!n.confident)return;var i=n.value;if("string"!=typeof i)return;var s=t(i);return r.removeProperties(s),s.program}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){e.addComment("trailing",n(e,t)),e.replaceWith(i.noop())}function n(e,t){var r=e.getSource().replace(/\*-\//g,"*-ESCAPED/").replace(/\*\//g,"*-/");return t&&t.optional&&(r="?"+r),":"!==r[0]&&(r=":: "+r),r}var i=e.types;return{inherits:r(126),visitor:{TypeCastExpression:function(e){var t=e.node;e.get("expression").addComment("trailing",n(e.get("typeAnnotation"))),e.replaceWith(i.parenthesizedExpression(t.expression))},Identifier:function(e){var t=e.node;t.optional&&!t.typeAnnotation&&e.addComment("trailing",":: ?")},AssignmentPattern:{exit:function(e){e.node.left.optional=!1}},Function:{exit:function(e){e.node.params.forEach(function(e){return e.optional=!1})}},ClassProperty:function(e){var r=e.node,n=e.parent;r.value||t(e,n)},"ExportNamedDeclaration|Flow":function(e){var r=e.node,n=e.parent;i.isExportNamedDeclaration(r)&&!i.isFlow(r.declaration)||t(e,n)},ImportDeclaration:function(e){var r=e.node,n=e.parent;i.isImportDeclaration(r)&&"type"!==r.importKind&&"typeof"!==r.importKind||t(e,n)}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{FunctionExpression:{exit:function(e){var r=e.node;r.id&&(r._ignoreUserWhitespace=!0,e.replaceWith(t.callExpression(t.functionExpression(null,[],t.blockStatement([t.toStatement(r),t.returnStatement(r.id)])),[])))}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{CallExpression:function(e,t){e.get("callee").matchesPattern("Object.assign")&&(e.node.callee=t.addHelper("extends"))}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{CallExpression:function(e,t){e.get("callee").matchesPattern("Object.setPrototypeOf")&&(e.node.callee=t.addHelper("defaults"))}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){function t(e){return i.isLiteral(i.toComputedKey(e,e.key),{value:"__proto__"})}function r(e){var t=e.left;return i.isMemberExpression(t)&&i.isLiteral(i.toComputedKey(t,t.property),{value:"__proto__"})}function n(e,t,r){return i.expressionStatement(i.callExpression(r.addHelper("defaults"),[t,e.right]))}var i=e.types;return{visitor:{AssignmentExpression:function(e,t){if(r(e.node)){var s=[],a=e.node.left.object,o=e.scope.maybeGenerateMemoised(a);o&&s.push(i.expressionStatement(i.assignmentExpression("=",o,a))),s.push(n(e.node,o||a,t)),o&&s.push(o),e.replaceWithMultiple(s)}},ExpressionStatement:function(e,t){var s=e.node.expression;i.isAssignmentExpression(s,{operator:"="})&&r(s)&&e.replaceWith(n(s,s.left.object,t))},ObjectExpression:function(e,r){for(var n=void 0,a=e.node,u=a.properties,l=Array.isArray(u),c=0,u=l?u:(0,s.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;t(p)&&(n=p.value,(0,o.default)(a.properties,p))}if(n){var d=[i.objectExpression([]),n];a.properties.length&&d.push(a),e.replaceWith(i.callExpression(r.addHelper("extends"),d))}}}}};var a=r(277),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(11),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types,r={enter:function(e,r){var n=function(){r.isImmutable=!1,e.stop()};if(e.isJSXClosingElement())return void e.skip();if(e.isJSXIdentifier({name:"ref"})&&e.parentPath.isJSXAttribute({name:e.node}))return n();if(!(e.isJSXIdentifier()||e.isIdentifier()||e.isJSXMemberExpression()||e.isImmutable())){if(e.isPure()){var s=e.evaluate();if(s.confident){var a=s.value;if(!(a&&"object"===(void 0===a?"undefined":(0,i.default)(a))||"function"==typeof a))return}else if(t.isIdentifier(s.deopt))return}n()}}};return{visitor:{JSXElement:function(e){if(!e.node._hoisted){var t={isImmutable:!0};e.traverse(r,t),t.isImmutable?e.hoist():e.node._hoisted=!0}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){for(var t=0;t<e.length;t++){var n=e[t];if(s.isJSXSpreadAttribute(n))return!0;if(r(n,"ref"))return!0}return!1}function r(e,t){return s.isJSXAttribute(e)&&s.isJSXIdentifier(e.name,{name:t})}function n(e){var t=e.value;return t?(s.isJSXExpressionContainer(t)&&(t=t.expression),t):s.identifier("true")}var s=e.types;return{visitor:{JSXElement:function(e,a){var o=e.node,u=o.openingElement;if(!t(u.attributes)){var l=s.objectExpression([]),c=null,f=u.name;s.isJSXIdentifier(f)&&s.react.isCompatTag(f.name)&&(f=s.stringLiteral(f.name));for(var p=u.attributes,d=Array.isArray(p),h=0,p=d?p:(0,i.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var y=m;if(r(y,"key"))c=n(y);else{var v=y.name.name,g=s.isValidIdentifier(v)?s.identifier(v):s.stringLiteral(v);!function(e,t,r){e.push(s.objectProperty(t,r))}(l.properties,g,n(y))}}var b=[f,l];if(c||o.children.length){var E=s.react.buildChildren(o);b.push.apply(b,[c||s.unaryExpression("void",s.numericLiteral(0),!0)].concat(E))}var x=s.callExpression(a.addHelper("jsx"),b);e.replaceWith(x)}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{manipulateOptions:function(e,t){t.plugins.push("jsx")},visitor:(0,i.default)({pre:function(e){e.callee=e.tagExpr},post:function(e){t.react.isCompatTag(e.tagName)&&(e.call=t.callExpression(t.memberExpression(t.memberExpression(t.identifier("React"),t.identifier("DOM")),e.tagExpr,t.isLiteral(e.tagExpr)),e.args))}})}};var n=r(348),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,r){if(a.isJSXIdentifier(e)){if("this"===e.name&&a.isReferenced(e,r))return a.thisExpression();if(!i.default.keyword.isIdentifierNameES6(e.name))return a.stringLiteral(e.name);e.type="Identifier"}else if(a.isJSXMemberExpression(e))return a.memberExpression(t(e.object,e),t(e.property,e));return e}function r(e){return a.isJSXExpressionContainer(e)?e.expression:e}function n(e){var t=r(e.value||a.booleanLiteral(!0));return a.isStringLiteral(t)&&!a.isJSXExpressionContainer(e.value)&&(t.value=t.value.replace(/\n\s+/g," ")),a.isValidIdentifier(e.name.name)?e.name.type="Identifier":e.name=a.stringLiteral(e.name.name),a.inherits(a.objectProperty(e.name,t),e)}function s(r,n){r.parent.children=a.react.buildChildren(r.parent);var i=t(r.node.name,r.node),s=[],u=void 0;a.isIdentifier(i)?u=i.name:a.isLiteral(i)&&(u=i.value);var l={tagExpr:i,tagName:u,args:s};e.pre&&e.pre(l,n);var c=r.node.attributes;return c=c.length?o(c,n):a.nullLiteral(),s.push(c),e.post&&e.post(l,n),l.call||a.callExpression(l.callee,s)}function o(e,t){function r(){i.length&&(s.push(a.objectExpression(i)),i=[])}var i=[],s=[],o=t.opts.useBuiltIns||!1;if("boolean"!=typeof o)throw new Error("transform-react-jsx currently only accepts a boolean option for useBuiltIns (defaults to false)");for(;e.length;){var u=e.shift();a.isJSXSpreadAttribute(u)?(r(),s.push(u.argument)):i.push(n(u))}if(r(),1===s.length)e=s[0];else{a.isObjectExpression(s[0])||s.unshift(a.objectExpression([]));var l=o?a.memberExpression(a.identifier("Object"),a.identifier("assign")):t.addHelper("extends");e=a.callExpression(l,s)}return e}var u={};return u.JSXNamespacedName=function(e){throw e.buildCodeFrameError("Namespace tags are not supported. ReactJSX is not XML.")},u.JSXElement={exit:function(e,t){var r=s(e.get("openingElement"),t);r.arguments=r.arguments.concat(e.node.children),r.arguments.length>=3&&(r._prettyCall=!0),e.replaceWith(a.inherits(r,e.node))}},u};var n=r(97),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{JSXOpeningElement:function(e){var n=e.node,i=t.jSXIdentifier(r),s=t.thisExpression();n.attributes.push(t.jSXAttribute(i,t.jSXExpressionContainer(s)))}}}};var r="__self";e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){var r=null!=t?i.numericLiteral(t):i.nullLiteral(),n=i.objectProperty(i.identifier("fileName"),e),s=i.objectProperty(i.identifier("lineNumber"),r);return i.objectExpression([n,s])}var i=e.types;return{visitor:{JSXOpeningElement:function(e,s){var a=i.jSXIdentifier(r),o=e.container.openingElement.loc;if(o){for(var u=e.container.openingElement.attributes,l=0;l<u.length;l++){var c=u[l].name;if(c&&c.name===r)return}if(!s.fileNameIdentifier){var f="unknown"!==s.file.log.filename?s.file.log.filename:null,p=e.scope.generateUidIdentifier(n);e.hub.file.scope.push({id:p,init:i.stringLiteral(f)}),s.fileNameIdentifier=p}var d=t(s.fileNameIdentifier,o.start.line);u.push(i.jSXAttribute(a,i.jSXExpressionContainer(d)))}}}}};var r="__source",n="_jsxFileName";e.exports=t.default},348,function(e,t){"use strict";e.exports={builtins:{Symbol:"symbol",Promise:"promise",Map:"map",WeakMap:"weak-map",Set:"set",WeakSet:"weak-set",Observable:"observable",setImmediate:"set-immediate",clearImmediate:"clear-immediate",asap:"asap"},methods:{Array:{concat:"array/concat",copyWithin:"array/copy-within",entries:"array/entries",every:"array/every",fill:"array/fill",filter:"array/filter",findIndex:"array/find-index",find:"array/find",forEach:"array/for-each",from:"array/from",includes:"array/includes",indexOf:"array/index-of",join:"array/join",keys:"array/keys",lastIndexOf:"array/last-index-of",map:"array/map",of:"array/of",pop:"array/pop",push:"array/push",reduceRight:"array/reduce-right",reduce:"array/reduce",reverse:"array/reverse",shift:"array/shift",slice:"array/slice",some:"array/some",sort:"array/sort",splice:"array/splice",unshift:"array/unshift",values:"array/values"},JSON:{stringify:"json/stringify"},Object:{assign:"object/assign",create:"object/create",defineProperties:"object/define-properties",defineProperty:"object/define-property",entries:"object/entries",freeze:"object/freeze",getOwnPropertyDescriptor:"object/get-own-property-descriptor",getOwnPropertyDescriptors:"object/get-own-property-descriptors",getOwnPropertyNames:"object/get-own-property-names",getOwnPropertySymbols:"object/get-own-property-symbols",getPrototypeOf:"object/get-prototype-of",isExtensible:"object/is-extensible",isFrozen:"object/is-frozen",isSealed:"object/is-sealed",is:"object/is",keys:"object/keys",preventExtensions:"object/prevent-extensions",seal:"object/seal",setPrototypeOf:"object/set-prototype-of",values:"object/values"},RegExp:{escape:"regexp/escape"},Math:{acosh:"math/acosh",asinh:"math/asinh",atanh:"math/atanh",cbrt:"math/cbrt",clz32:"math/clz32",cosh:"math/cosh",expm1:"math/expm1",fround:"math/fround",hypot:"math/hypot",imul:"math/imul",log10:"math/log10",log1p:"math/log1p",log2:"math/log2",sign:"math/sign",sinh:"math/sinh",tanh:"math/tanh",trunc:"math/trunc",iaddh:"math/iaddh",isubh:"math/isubh",imulh:"math/imulh",umulh:"math/umulh"},Symbol:{for:"symbol/for",hasInstance:"symbol/has-instance",isConcatSpreadable:"symbol/is-concat-spreadable",iterator:"symbol/iterator",keyFor:"symbol/key-for",match:"symbol/match",replace:"symbol/replace",search:"symbol/search",species:"symbol/species",split:"symbol/split",toPrimitive:"symbol/to-primitive",toStringTag:"symbol/to-string-tag",unscopables:"symbol/unscopables"},String:{at:"string/at",codePointAt:"string/code-point-at",endsWith:"string/ends-with",fromCodePoint:"string/from-code-point",includes:"string/includes",matchAll:"string/match-all",padLeft:"string/pad-left",padRight:"string/pad-right",padStart:"string/pad-start",padEnd:"string/pad-end",raw:"string/raw",repeat:"string/repeat",startsWith:"string/starts-with",trim:"string/trim",trimLeft:"string/trim-left",trimRight:"string/trim-right",trimStart:"string/trim-start",trimEnd:"string/trim-end"},Number:{EPSILON:"number/epsilon",isFinite:"number/is-finite",isInteger:"number/is-integer",isNaN:"number/is-nan",isSafeInteger:"number/is-safe-integer",MAX_SAFE_INTEGER:"number/max-safe-integer",MIN_SAFE_INTEGER:"number/min-safe-integer",parseFloat:"number/parse-float",parseInt:"number/parse-int"},Reflect:{apply:"reflect/apply",construct:"reflect/construct",defineProperty:"reflect/define-property",deleteProperty:"reflect/delete-property",enumerate:"reflect/enumerate",getOwnPropertyDescriptor:"reflect/get-own-property-descriptor",getPrototypeOf:"reflect/get-prototype-of",get:"reflect/get",has:"reflect/has",isExtensible:"reflect/is-extensible",ownKeys:"reflect/own-keys",preventExtensions:"reflect/prevent-extensions",setPrototypeOf:"reflect/set-prototype-of",set:"reflect/set",defineMetadata:"reflect/define-metadata",deleteMetadata:"reflect/delete-metadata",getMetadata:"reflect/get-metadata",getMetadataKeys:"reflect/get-metadata-keys",getOwnMetadata:"reflect/get-own-metadata",getOwnMetadataKeys:"reflect/get-own-metadata-keys",hasMetadata:"reflect/has-metadata",hasOwnMetadata:"reflect/has-own-metadata",metadata:"reflect/metadata"},System:{global:"system/global"},Error:{isError:"error/is-error"},Date:{},Function:{}}}},function(e,t,r){"use strict";t.__esModule=!0,t.definitions=void 0,t.default=function(e){function t(e){return e.moduleName||"babel-runtime"}function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var n=e.types,s=["interopRequireWildcard","interopRequireDefault"];return{pre:function(e){var r=t(this.opts);!1!==this.opts.helpers&&e.set("helperGenerator",function(t){if(s.indexOf(t)<0)return e.addImport(r+"/helpers/"+t,"default",t)}),this.setDynamic("regeneratorIdentifier",function(){return e.addImport(r+"/regenerator","default","regeneratorRuntime")})},visitor:{ReferencedIdentifier:function(e,s){var a=e.node,o=e.parent,u=e.scope;if("regeneratorRuntime"===a.name&&!1!==s.opts.regenerator)return void e.replaceWith(s.get("regeneratorIdentifier"));if(!1!==s.opts.polyfill&&!n.isMemberExpression(o)&&r(i.default.builtins,a.name)&&!u.getBindingIdentifier(a.name)){var l=t(s.opts);e.replaceWith(s.addImport(l+"/core-js/"+i.default.builtins[a.name],"default",a.name))}},CallExpression:function(e,r){if(!1!==r.opts.polyfill&&!e.node.arguments.length){var i=e.node.callee;if(n.isMemberExpression(i)&&i.computed&&e.get("callee.property").matchesPattern("Symbol.iterator")){var s=t(r.opts);e.replaceWith(n.callExpression(r.addImport(s+"/core-js/get-iterator","default","getIterator"),[i.object]))}}},BinaryExpression:function(e,r){if(!1!==r.opts.polyfill&&"in"===e.node.operator&&e.get("left").matchesPattern("Symbol.iterator")){var i=t(r.opts);e.replaceWith(n.callExpression(r.addImport(i+"/core-js/is-iterable","default","isIterable"),[e.node.right]))}},MemberExpression:{enter:function(e,s){if(!1!==s.opts.polyfill&&e.isReferenced()){var a=e.node,o=a.object,u=a.property;if(n.isReferenced(o,a)&&!a.computed&&r(i.default.methods,o.name)){var l=i.default.methods[o.name];if(r(l,u.name)&&!e.scope.getBindingIdentifier(o.name)){if("Object"===o.name&&"defineProperty"===u.name&&e.parentPath.isCallExpression()){var c=e.parentPath.node;if(3===c.arguments.length&&n.isLiteral(c.arguments[1]))return}var f=t(s.opts);e.replaceWith(s.addImport(f+"/core-js/"+l[u.name],"default",o.name+"$"+u.name))}}}},exit:function(e,s){if(!1!==s.opts.polyfill&&e.isReferenced()){var a=e.node,o=a.object;if(r(i.default.builtins,o.name)&&!e.scope.getBindingIdentifier(o.name)){var u=t(s.opts);e.replaceWith(n.memberExpression(s.addImport(u+"/core-js/"+i.default.builtins[o.name],"default",o.name),a.property,a.computed))}}}}}}};var n=r(352),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.definitions=i.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.messages;return{visitor:{ReferencedIdentifier:function(e){var r=e.node,n=e.scope,s=n.getBinding(r.name)
;if(s&&"type"===s.kind&&!e.parentPath.isFlow())throw e.buildCodeFrameError(t.get("undeclaredVariableType",r.name),ReferenceError);if(!n.hasBinding(r.name)){var a=n.getAllBindings(),o=void 0,u=-1;for(var l in a){var c=(0,i.default)(r.name,l);c<=0||c>3||(c<=u||(o=l,u=c))}var f=void 0;throw f=o?t.get("undeclaredVariableSuggestion",r.name,o):t.get("undeclaredVariable",r.name),e.buildCodeFrameError(f,ReferenceError)}}}}};var n=r(471),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(211),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={plugins:[i.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{presets:[!1!==t.es2015&&[s.default.buildPreset,t.es2015],!1!==t.es2016&&o.default,!1!==t.es2017&&l.default].filter(Boolean)}};var i=r(217),s=n(i),a=r(218),o=n(a),u=r(219),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(355),s=n(i),a=r(215),o=n(a),u=r(127),l=n(u),c=r(214),f=n(c);t.default={presets:[s.default],plugins:[o.default,l.default,f.default],env:{development:{plugins:[]}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(220),s=n(i),a=r(206),o=n(a),u=r(212),l=n(u);t.default={presets:[s.default],plugins:[o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";e.exports={default:r(407),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(410),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(412),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(413),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(415),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(416),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(417),__esModule:!0}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(36),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=function(){function e(t,r,n,i){(0,o.default)(this,e),this.queue=null,this.parentPath=i,this.scope=t,this.state=n,this.opts=r}return e.prototype.shouldVisit=function(e){var t=this.opts;if(t.enter||t.exit)return!0;if(t[e.type])return!0;var r=f.VISITOR_KEYS[e.type];if(!r||!r.length)return!1;for(var n=r,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}if(e[o])return!0}return!1},e.prototype.create=function(e,t,r,n){return l.default.get({parentPath:this.parentPath,parent:e,container:t,key:r,listKey:n})},e.prototype.maybeQueue=function(e,t){if(this.trap)throw new Error("Infinite cycle detected");this.queue&&(t?this.queue.push(e):this.priorityQueue.push(e))},e.prototype.visitMultiple=function(e,t,r){if(0===e.length)return!1;for(var n=[],i=0;i<e.length;i++){var s=e[i];s&&this.shouldVisit(s)&&n.push(this.create(t,e,i,r))}return this.visitQueue(n)},e.prototype.visitSingle=function(e,t){return!!this.shouldVisit(e[t])&&this.visitQueue([this.create(e,e,t)])},e.prototype.visitQueue=function(e){this.queue=e,this.priorityQueue=[];for(var t=[],r=!1,n=e,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;if(u.resync(),0!==u.contexts.length&&u.contexts[u.contexts.length-1]===this||u.pushContext(this),null!==u.key&&!(t.indexOf(u.node)>=0)){if(t.push(u.node),u.visit()){r=!0;break}if(this.priorityQueue.length&&(r=this.visitQueue(this.priorityQueue),this.priorityQueue=[],this.queue=e,r))break}}for(var l=e,c=Array.isArray(l),f=0,l=c?l:(0,s.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}p.popContext()}return this.queue=null,r},e.prototype.visit=function(e,t){var r=e[t];return!!r&&(Array.isArray(r)?this.visitMultiple(r,e,t):this.visitSingle(e,t))},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){for(var t=this;t=t.parentPath;)if(e(t))return t;return null}function s(e){var t=this;do{if(e(t))return t}while(t=t.parentPath);return null}function a(){return this.findParent(function(e){return e.isFunction()||e.isProgram()})}function o(){var e=this;do{if(Array.isArray(e.container))return e}while(e=e.parentPath)}function u(e){return this.getDeepestCommonAncestorFrom(e,function(e,t,r){for(var n=void 0,i=g.VISITOR_KEYS[e.type],s=r,a=Array.isArray(s),o=0,s=a?s:(0,y.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u,c=l[t+1];if(n)if(c.listKey&&n.listKey===c.listKey&&c.key<n.key)n=c;else{var f=i.indexOf(n.parentKey),p=i.indexOf(c.parentKey);f>p&&(n=c)}else n=c}return n})}function l(e,t){var r=this;if(!e.length)return this;if(1===e.length)return e[0];var n=1/0,i=void 0,s=void 0,a=e.map(function(e){var t=[];do{t.unshift(e)}while((e=e.parentPath)&&e!==r);return t.length<n&&(n=t.length),t}),o=a[0];e:for(var u=0;u<n;u++){for(var l=o[u],c=a,f=Array.isArray(c),p=0,c=f?c:(0,y.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;if(h[u]!==l)break e}i=u,s=l}if(s)return t?t(s,i,a):s;throw new Error("Couldn't find intersection")}function c(){var e=this,t=[];do{t.push(e)}while(e=e.parentPath);return t}function f(e){return e.isDescendant(this)}function p(e){return!!this.findParent(function(t){return t===e})}function d(){for(var e=this;e;){for(var t=arguments,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(e.node.type===s)return!0}e=e.parentPath}return!1}function h(e){var t=this.isFunction()?this:this.findParent(function(e){return e.isFunction()});if(t){if(t.isFunctionExpression()||t.isFunctionDeclaration()){var r=t.node.shadow;if(r&&(!e||!1!==r[e]))return t}else if(t.isArrowFunctionExpression())return t;return null}}t.__esModule=!0;var m=r(2),y=n(m);t.findParent=i,t.find=s,t.getFunctionParent=a,t.getStatementParent=o,t.getEarliestCommonAncestorFrom=u,t.getDeepestCommonAncestorFrom=l,t.getAncestry=c,t.isAncestor=f,t.isDescendant=p,t.inType=d,t.inShadow=h;var v=r(1),g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(v),b=r(36);n(b)},function(e,t){"use strict";function r(){if("string"!=typeof this.key){var e=this.node;if(e){var t=e.trailingComments,r=e.leadingComments;if(t||r){var n=this.getSibling(this.key-1),i=this.getSibling(this.key+1);n.node||(n=i),i.node||(i=n),n.addComments("trailing",r),i.addComments("leading",t)}}}}function n(e,t,r){this.addComments(e,[{type:r?"CommentLine":"CommentBlock",value:t}])}function i(e,t){if(t){var r=this.node;if(r){var n=e+"Comments";r[n]?r[n]=r[n].concat(t):r[n]=t}}}t.__esModule=!0,t.shareCommentsWithSiblings=r,t.addComment=n,t.addComments=i},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=this.opts;return this.debug(function(){return e}),!(!this.node||!this._call(t[e]))||!!this.node&&this._call(t[this.node.type]&&t[this.node.type][e])}function s(e){if(!e)return!1;for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,D.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(s){var a=this.node;if(!a)return!0;if(s.call(this.state,this,this.state))throw new Error("Unexpected return value from visitor method "+s);if(this.node!==a)return!0;if(this.shouldStop||this.shouldSkip||this.removed)return!0}}return!1}function a(){var e=this.opts.blacklist;return e&&e.indexOf(this.node.type)>-1}function o(){return!!this.node&&(!this.isBlacklisted()&&((!this.opts.shouldSkip||!this.opts.shouldSkip(this))&&(this.call("enter")||this.shouldSkip?(this.debug(function(){return"Skip..."}),this.shouldStop):(this.debug(function(){return"Recursing into..."}),w.default.node(this.node,this.opts,this.scope,this.state,this,this.skipKeys),this.call("exit"),this.shouldStop))))}function u(){this.shouldSkip=!0}function l(e){this.skipKeys[e]=!0}function c(){this.shouldStop=!0,this.shouldSkip=!0}function f(){if(!this.opts||!this.opts.noScope){var e=this.context&&this.context.scope;if(!e)for(var t=this.parentPath;t&&!e;){if(t.opts&&t.opts.noScope)return;e=t.scope,t=t.parentPath}this.scope=this.getScope(e),this.scope&&this.scope.init()}}function p(e){return this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.skipKeys={},e&&(this.context=e,this.state=e.state,this.opts=e.opts),this.setScope(),this}function d(){this.removed||(this._resyncParent(),this._resyncList(),this._resyncKey())}function h(){this.parentPath&&(this.parent=this.parentPath.node)}function m(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e<this.container.length;e++)if(this.container[e]===this.node)return this.setKey(e)}else for(var t in this.container)if(this.container[t]===this.node)return this.setKey(t);this.key=null}}function y(){if(this.parent&&this.inList){var e=this.parent[this.listKey];this.container!==e&&(this.container=e||null)}}function v(){null!=this.key&&this.container&&this.container[this.key]===this.node||this._markRemoved()}function g(){this.contexts.pop(),this.setContext(this.contexts[this.contexts.length-1])}function b(e){this.contexts.push(e),this.setContext(e)}function E(e,t,r,n){this.inList=!!r,this.listKey=r,this.parentKey=r||n,this.container=t,this.parentPath=e||this.parentPath,this.setKey(n)}function x(e){this.key=e,this.node=this.container[this.key],this.type=this.node&&this.node.type}function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;if(!e.removed)for(var t=this.contexts,r=t,n=Array.isArray(r),i=0,r=n?r:(0,D.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;a.maybeQueue(e)}}function S(){for(var e=this,t=this.contexts;!t.length;)e=e.parentPath,t=e.contexts;return t}t.__esModule=!0;var _=r(2),D=n(_);t.call=i,t._call=s,t.isBlacklisted=a,t.visit=o,t.skip=u,t.skipKey=l,t.stop=c,t.setScope=f,t.setContext=p,t.resync=d,t._resyncParent=h,t._resyncKey=m,t._resyncList=y,t._resyncRemoved=v,t.popContext=g,t.pushContext=b,t.setup=E,t.setKey=x,t.requeue=A,t._getQueueContexts=S;var C=r(7),w=n(C)},function(e,t,r){"use strict";function n(){var e=this.node,t=void 0;if(this.isMemberExpression())t=e.property;else{if(!this.isProperty()&&!this.isMethod())throw new ReferenceError("todo");t=e.key}return e.computed||o.isIdentifier(t)&&(t=o.stringLiteral(t.name)),t}function i(){return o.ensureBlock(this.node)}function s(){if(this.isArrowFunctionExpression()){this.ensureBlock();var e=this.node;e.expression=!1,e.type="FunctionExpression",e.shadow=e.shadow||!0}}t.__esModule=!0,t.toComputedKey=n,t.ensureBlock=i,t.arrowFunctionToShadowed=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){(function(e){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){var e=this.evaluate();if(e.confident)return!!e.value}function s(){function t(e){i&&(s=e,i=!1)}function r(e){var r=e.node;if(a.has(r)){var s=a.get(r);return s.resolved?s.value:void t(e)}var o={resolved:!1};a.set(r,o);var u=n(e);return i&&(o.resolved=!0,o.value=u),u}function n(n){if(i){var s=n.node;if(n.isSequenceExpression()){var a=n.get("expressions");return r(a[a.length-1])}if(n.isStringLiteral()||n.isNumericLiteral()||n.isBooleanLiteral())return s.value;if(n.isNullLiteral())return null;if(n.isTemplateLiteral()){for(var u="",c=0,f=n.get("expressions"),h=s.quasis,m=Array.isArray(h),y=0,h=m?h:(0,l.default)(h);;){var v;if(m){if(y>=h.length)break;v=h[y++]}else{if(y=h.next(),y.done)break;v=y.value}var g=v;if(!i)break;u+=g.value.cooked;var b=f[c++];b&&(u+=String(r(b)))}if(!i)return;return u}if(n.isConditionalExpression()){var E=r(n.get("test"));if(!i)return;return r(E?n.get("consequent"):n.get("alternate"))}if(n.isExpressionWrapper())return r(n.get("expression"));if(n.isMemberExpression()&&!n.parentPath.isCallExpression({callee:s})){var x=n.get("property"),A=n.get("object");if(A.isLiteral()&&x.isIdentifier()){var S=A.node.value,_=void 0===S?"undefined":(0,o.default)(S);if("number"===_||"string"===_)return S[x.node.name]}}if(n.isReferencedIdentifier()){var D=n.scope.getBinding(s.name);if(D&&D.constantViolations.length>0)return t(D.path);if(D&&n.node.start<D.path.node.end)return t(D.path);if(D&&D.hasValue)return D.value;if("undefined"===s.name)return D?t(D.path):void 0;if("Infinity"===s.name)return D?t(D.path):1/0;if("NaN"===s.name)return D?t(D.path):NaN;var C=n.resolve();return C===n?t(n):r(C)}if(n.isUnaryExpression({prefix:!0})){if("void"===s.operator)return;var w=n.get("argument");if("typeof"===s.operator&&(w.isFunction()||w.isClass()))return"function";var P=r(w);if(!i)return;switch(s.operator){case"!":return!P;case"+":return+P;case"-":return-P;case"~":return~P;case"typeof":return void 0===P?"undefined":(0,o.default)(P)}}if(n.isArrayExpression()){for(var k=[],F=n.get("elements"),T=F,O=Array.isArray(T),B=0,T=O?T:(0,l.default)(T);;){var R;if(O){if(B>=T.length)break;R=T[B++]}else{if(B=T.next(),B.done)break;R=B.value}var I=R;if(I=I.evaluate(),!I.confident)return t(I);k.push(I.value)}return k}if(n.isObjectExpression()){for(var M={},N=n.get("properties"),L=N,j=Array.isArray(L),U=0,L=j?L:(0,l.default)(L);;){var V;if(j){if(U>=L.length)break;V=L[U++]}else{if(U=L.next(),U.done)break;V=U.value}var G=V;if(G.isObjectMethod()||G.isSpreadProperty())return t(G);var W=G.get("key"),Y=W;if(G.node.computed){if(Y=Y.evaluate(),!Y.confident)return t(W);Y=Y.value}else Y=Y.isIdentifier()?Y.node.name:Y.node.value;var q=G.get("value"),K=q.evaluate();if(!K.confident)return t(q);K=K.value,M[Y]=K}return M}if(n.isLogicalExpression()){var H=i,J=r(n.get("left")),X=i;i=H;var z=r(n.get("right")),$=i;switch(i=X&&$,s.operator){case"||":if(J&&X)return i=!0,J;if(!i)return;return J||z;case"&&":if((!J&&X||!z&&$)&&(i=!0),!i)return;return J&&z}}if(n.isBinaryExpression()){var Q=r(n.get("left"));if(!i)return;var Z=r(n.get("right"));if(!i)return;switch(s.operator){case"-":return Q-Z;case"+":return Q+Z;case"/":return Q/Z;case"*":return Q*Z;case"%":return Q%Z;case"**":return Math.pow(Q,Z);case"<":return Q<Z;case">":return Q>Z;case"<=":return Q<=Z;case">=":return Q>=Z;case"==":return Q==Z;case"!=":return Q!=Z;case"===":return Q===Z;case"!==":return Q!==Z;case"|":return Q|Z;case"&":return Q&Z;case"^":return Q^Z;case"<<":return Q<<Z;case">>":return Q>>Z;case">>>":return Q>>>Z}}if(n.isCallExpression()){var ee=n.get("callee"),te=void 0,re=void 0;if(ee.isIdentifier()&&!n.scope.getBinding(ee.node.name,!0)&&p.indexOf(ee.node.name)>=0&&(re=e[s.callee.name]),ee.isMemberExpression()){var ne=ee.get("object"),ie=ee.get("property");if(ne.isIdentifier()&&ie.isIdentifier()&&p.indexOf(ne.node.name)>=0&&d.indexOf(ie.node.name)<0&&(te=e[ne.node.name],re=te[ie.node.name]),ne.isLiteral()&&ie.isIdentifier()){var se=(0,o.default)(ne.node.value);"string"!==se&&"number"!==se||(te=ne.node.value,re=te[ie.node.name])}}if(re){var ae=n.get("arguments").map(r);if(!i)return;return re.apply(te,ae)}}t(n)}}var i=!0,s=void 0,a=new f.default,u=r(this);return i||(u=void 0),{confident:i,deopt:s,value:u}}t.__esModule=!0;var a=r(11),o=n(a),u=r(2),l=n(u),c=r(133),f=n(c);t.evaluateTruthy=i,t.evaluate=s;var p=["String","Number","Math"],d=["random"]}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){var e=this;do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())break;e=e.parentPath}while(e);if(e&&(e.isProgram()||e.isFile()))throw new Error("File/Program node, we can't possibly find a statement parent to this");return e}function s(){return"left"===this.key?this.getSibling("right"):"right"===this.key?this.getSibling("left"):void 0}function a(){var e=[],t=function(t){t&&(e=e.concat(t.getCompletionRecords()))};if(this.isIfStatement())t(this.get("consequent")),t(this.get("alternate"));else if(this.isDoExpression()||this.isFor()||this.isWhile())t(this.get("body"));else if(this.isProgram()||this.isBlockStatement())t(this.get("body").pop());else{if(this.isFunction())return this.get("body").getCompletionRecords();this.isTryStatement()?(t(this.get("block")),t(this.get("handler")),t(this.get("finalizer"))):e.push(this)}return e}function o(e){return _.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e})}function u(){return this.getSibling(this.key-1)}function l(){return this.getSibling(this.key+1)}function c(){for(var e=this.key,t=this.getSibling(++e),r=[];t.node;)r.push(t),t=this.getSibling(++e);return r}function f(){for(var e=this.key,t=this.getSibling(--e),r=[];t.node;)r.push(t),t=this.getSibling(--e);return r}function p(e,t){!0===t&&(t=this.context);var r=e.split(".");return 1===r.length?this._getKey(e,t):this._getPattern(r,t)}function d(e,t){var r=this,n=this.node,i=n[e];return Array.isArray(i)?i.map(function(s,a){return _.default.get({listKey:e,parentPath:r,parent:n,container:i,key:a}).setContext(t)}):_.default.get({parentPath:this,parent:n,container:n,key:e}).setContext(t)}function h(e,t){for(var r=this,n=e,i=Array.isArray(n),s=0,n=i?n:(0,A.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;r="."===o?r.parentPath:Array.isArray(r)?r[o]:r.get(o,t)}return r}function m(e){return C.getBindingIdentifiers(this.node,e)}function y(e){return C.getOuterBindingIdentifiers(this.node,e)}function v(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this,n=[].concat(r),i=(0,E.default)(null);n.length;){var s=n.shift();if(s&&s.node){var a=C.getBindingIdentifiers.keys[s.node.type];if(s.isIdentifier())if(e){var o=i[s.node.name]=i[s.node.name]||[];o.push(s)}else i[s.node.name]=s;else if(s.isExportDeclaration()){var u=s.get("declaration");u.isDeclaration()&&n.push(u)}else{if(t){if(s.isFunctionDeclaration()){n.push(s.get("id"));continue}if(s.isFunctionExpression())continue}if(a)for(var l=0;l<a.length;l++){var c=a[l],f=s.get(c);(Array.isArray(f)||f.node)&&(n=n.concat(f))}}}}return i}function g(e){return this.getBindingIdentifierPaths(e,!0)}t.__esModule=!0;var b=r(9),E=n(b),x=r(2),A=n(x);t.getStatementParent=i,t.getOpposite=s,t.getCompletionRecords=a,t.getSibling=o,t.getPrevSibling=u,t.getNextSibling=l,t.getAllNextSiblings=c,t.getAllPrevSiblings=f,t.get=p,t._getKey=d,t._getPattern=h,t.getBindingIdentifiers=m,t.getOuterBindingIdentifiers=y,t.getBindingIdentifierPaths=v,t.getOuterBindingIdentifierPaths=g;var S=r(36),_=n(S),D=r(1),C=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(D)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(){if(this.typeAnnotation)return this.typeAnnotation;var e=this._getTypeAnnotation()||y.anyTypeAnnotation();return y.isTypeAnnotation(e)&&(e=e.typeAnnotation),this.typeAnnotation=e}function s(){var e=this.node;{if(e){if(e.typeAnnotation)return e.typeAnnotation;var t=h[e.type];return t?t.call(this,e):(t=h[this.parentPath.type],t&&t.validParent?this.parentPath.getTypeAnnotation():void 0)}if("init"===this.key&&this.parentPath.isVariableDeclarator()){var r=this.parentPath.parentPath,n=r.parentPath;return"left"===r.key&&n.isForInStatement()?y.stringTypeAnnotation():"left"===r.key&&n.isForOfStatement()?y.anyTypeAnnotation():y.voidTypeAnnotation()}}}function a(e,t){return o(e,this.getTypeAnnotation(),t)}function o(e,t,r){if("string"===e)return y.isStringTypeAnnotation(t);if("number"===e)return y.isNumberTypeAnnotation(t);if("boolean"===e)return y.isBooleanTypeAnnotation(t);if("any"===e)return y.isAnyTypeAnnotation(t);if("mixed"===e)return y.isMixedTypeAnnotation(t);if("empty"===e)return y.isEmptyTypeAnnotation(t);if("void"===e)return y.isVoidTypeAnnotation(t);if(r)return!1;throw new Error("Unknown base type "+e)}function u(e){var t=this.getTypeAnnotation();if(y.isAnyTypeAnnotation(t))return!0;if(y.isUnionTypeAnnotation(t)){for(var r=t.types,n=Array.isArray(r),i=0,r=n?r:(0,p.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if(y.isAnyTypeAnnotation(a)||o(e,a,!0))return!0}return!1}return o(e,t,!0)}function l(e){var t=this.getTypeAnnotation();if(e=e.getTypeAnnotation(),!y.isAnyTypeAnnotation(t)&&y.isFlowBaseAnnotation(t))return e.type===t.type}function c(e){var t=this.getTypeAnnotation();return y.isGenericTypeAnnotation(t)&&y.isIdentifier(t.id,{name:e})}t.__esModule=!0;var f=r(2),p=function(e){return e&&e.__esModule?e:{default:e}}(f);t.getTypeAnnotation=i,t._getTypeAnnotation=s,t.isBaseType=a,t.couldBeBaseType=u,t.baseTypeStrictlyMatches=l,t.isGenericType=c;var d=r(376),h=n(d),m=r(1),y=n(m)},function(e,t,r){"use strict";function n(e,t){var r=e.scope.getBinding(t),n=[];e.typeAnnotation=f.unionTypeAnnotation(n);var s=[],a=i(r,e,s),u=o(e,t);if(u){var c=i(r,u.ifStatement);a=a.filter(function(e){return c.indexOf(e)<0}),n.push(u.typeAnnotation)}if(a.length){a=a.concat(s);for(var p=a,d=Array.isArray(p),h=0,p=d?p:(0,l.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var y=m;n.push(y.getTypeAnnotation())}}if(n.length)return f.createUnionTypeAnnotation(n)}function i(e,t,r){var n=e.constantViolations.slice();return n.unshift(e.path),n.filter(function(e){e=e.resolve();var n=e._guessExecutionStatusRelativeTo(t);return r&&"function"===n&&r.push(e),"before"===n})}function s(e,t){var r=t.node.operator,n=t.get("right").resolve(),i=t.get("left").resolve(),s=void 0;if(i.isIdentifier({name:e})?s=n:n.isIdentifier({name:e})&&(s=i),s)return"==="===r?s.getTypeAnnotation():f.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(r)>=0?f.numberTypeAnnotation():void 0;if("==="===r){var a=void 0,o=void 0;if(i.isUnaryExpression({operator:"typeof"})?(a=i,o=n):n.isUnaryExpression({operator:"typeof"})&&(a=n,o=i),(o||a)&&(o=o.resolve(),o.isLiteral())){if("string"==typeof o.node.value&&a.get("argument").isIdentifier({name:e}))return f.createTypeAnnotationBasedOnTypeof(o.node.value)}}}function a(e){for(var t=void 0;t=e.parentPath;){if(t.isIfStatement()||t.isConditionalExpression())return"test"===e.key?void 0:t;e=t}}function o(e,t){var r=a(e);if(r){var n=r.get("test"),i=[n],u=[];do{var l=i.shift().resolve();if(l.isLogicalExpression()&&(i.push(l.get("left")),i.push(l.get("right"))),l.isBinaryExpression()){var c=s(t,l);c&&u.push(c)}}while(i.length);return u.length?{typeAnnotation:f.createUnionTypeAnnotation(u),ifStatement:r}:o(r,t)}}t.__esModule=!0;var u=r(2),l=function(e){return e&&e.__esModule?e:{default:e}}(u);t.default=function(e){if(this.isReferenced()){var t=this.scope.getBinding(e.name);return t?t.identifier.typeAnnotation?t.identifier.typeAnnotation:n(this,e.name):"undefined"===e.name?f.voidTypeAnnotation():"NaN"===e.name||"Infinity"===e.name?f.numberTypeAnnotation():void e.name}};var c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){return this.get("id").isIdentifier()?this.get("init").getTypeAnnotation():void 0}function s(e){return e.typeAnnotation}function a(e){if(this.get("callee").isIdentifier())return k.genericTypeAnnotation(e.callee)}function o(){return k.stringTypeAnnotation()}function u(e){var t=e.operator;return"void"===t?k.voidTypeAnnotation():k.NUMBER_UNARY_OPERATORS.indexOf(t)>=0?k.numberTypeAnnotation():k.STRING_UNARY_OPERATORS.indexOf(t)>=0?k.stringTypeAnnotation():k.BOOLEAN_UNARY_OPERATORS.indexOf(t)>=0?k.booleanTypeAnnotation():void 0}function l(e){var t=e.operator;if(k.NUMBER_BINARY_OPERATORS.indexOf(t)>=0)return k.numberTypeAnnotation();if(k.BOOLEAN_BINARY_OPERATORS.indexOf(t)>=0)return k.booleanTypeAnnotation();if("+"===t){var r=this.get("right"),n=this.get("left");return n.isBaseType("number")&&r.isBaseType("number")?k.numberTypeAnnotation():n.isBaseType("string")||r.isBaseType("string")?k.stringTypeAnnotation():k.unionTypeAnnotation([k.stringTypeAnnotation(),k.numberTypeAnnotation()])}}function c(){return k.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()])}function f(){return k.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()])}function p(){return this.get("expressions").pop().getTypeAnnotation()}function d(){return this.get("right").getTypeAnnotation()}function h(e){var t=e.operator;if("++"===t||"--"===t)return k.numberTypeAnnotation()}function m(){return k.stringTypeAnnotation()}function y(){return k.numberTypeAnnotation()}function v(){return k.booleanTypeAnnotation()}function g(){return k.nullLiteralTypeAnnotation()}function b(){return k.genericTypeAnnotation(k.identifier("RegExp"))}function E(){return k.genericTypeAnnotation(k.identifier("Object"))}function x(){return k.genericTypeAnnotation(k.identifier("Array"))}function A(){return x()}function S(){return k.genericTypeAnnotation(k.identifier("Function"))}function _(){return C(this.get("callee"))}function D(){return C(this.get("tag"))}function C(e){if(e=e.resolve(),e.isFunction()){if(e.is("async"))return e.is("generator")?k.genericTypeAnnotation(k.identifier("AsyncIterator")):k.genericTypeAnnotation(k.identifier("Promise"));if(e.node.returnType)return e.node.returnType}}t.__esModule=!0,t.ClassDeclaration=t.ClassExpression=t.FunctionDeclaration=t.ArrowFunctionExpression=t.FunctionExpression=t.Identifier=void 0;var w=r(375);Object.defineProperty(t,"Identifier",{enumerable:!0,get:function(){return n(w).default}}),t.VariableDeclarator=i,t.TypeCastExpression=s,t.NewExpression=a,t.TemplateLiteral=o,t.UnaryExpression=u,t.BinaryExpression=l,t.LogicalExpression=c,t.ConditionalExpression=f,t.SequenceExpression=p,t.AssignmentExpression=d,t.UpdateExpression=h,t.StringLiteral=m,t.NumericLiteral=y,t.BooleanLiteral=v,t.NullLiteral=g,t.RegExpLiteral=b,t.ObjectExpression=E,t.ArrayExpression=x,t.RestElement=A,t.CallExpression=_,t.TaggedTemplateExpression=D;var P=r(1),k=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(P);s.validParent=!0,A.validParent=!0,t.FunctionExpression=S,t.ArrowFunctionExpression=S,t.FunctionDeclaration=S,t.ClassExpression=S,t.ClassDeclaration=S},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){function r(e){var t=n[s];return"*"===t||e===t}if(!this.isMemberExpression())return!1;for(var n=e.split("."),i=[this.node],s=0;i.length;){var a=i.shift();if(t&&s===n.length)return!0;if(C.isIdentifier(a)){if(!r(a.name))return!1}else if(C.isLiteral(a)){if(!r(a.value))return!1}else{if(C.isMemberExpression(a)){if(a.computed&&!C.isLiteral(a.property))return!1;i.unshift(a.property),i.unshift(a.object);continue}if(!C.isThisExpression(a))return!1;if(!r("this"))return!1}if(++s>n.length)return!1}return s===n.length}function s(e){var t=this.node&&this.node[e];return t&&Array.isArray(t)?!!t.length:!!t}function a(){return this.scope.isStatic(this.node)}function o(e){return!this.has(e)}function u(e,t){return this.node[e]===t}function l(e){return C.isType(this.type,e)}function c(){return("init"===this.key||"left"===this.key)&&this.parentPath.isFor()}function f(e){return!("body"!==this.key||!this.parentPath.isArrowFunctionExpression())&&(this.isExpression()?C.isBlockStatement(e):!!this.isBlockStatement()&&C.isExpression(e))}function p(e){var t=this,r=!0;do{var n=t.container;if(t.isFunction()&&!r)return!!e;if(r=!1,Array.isArray(n)&&t.key!==n.length-1)return!1}while((t=t.parentPath)&&!t.isProgram());return!0}function d(){return!this.parentPath.isLabeledStatement()&&!C.isBlockStatement(this.container)&&(0,_.default)(C.STATEMENT_OR_BLOCK_KEYS,this.key)}function h(e,t){if(!this.isReferencedIdentifier())return!1;var r=this.scope.getBinding(this.node.name);if(!r||"module"!==r.kind)return!1;var n=r.path,i=n.parentPath;return!!i.isImportDeclaration()&&(i.node.source.value===e&&(!t||(!(!n.isImportDefaultSpecifier()||"default"!==t)||(!(!n.isImportNamespaceSpecifier()||"*"!==t)||!(!n.isImportSpecifier()||n.node.imported.name!==t)))))}function m(){var e=this.node;return e.end?this.hub.file.code.slice(e.start,e.end):""}function y(e){return"after"!==this._guessExecutionStatusRelativeTo(e)}function v(e){var t=e.scope.getFunctionParent(),r=this.scope.getFunctionParent();if(t.node!==r.node){var n=this._guessExecutionStatusRelativeToDifferentFunctions(t);if(n)return n;e=t.path}var i=e.getAncestry();if(i.indexOf(this)>=0)return"after";var s=this.getAncestry(),a=void 0,o=void 0,u=void 0;for(u=0;u<s.length;u++){var l=s[u];if((o=i.indexOf(l))>=0){a=l;break}}if(!a)return"before";var c=i[o-1],f=s[u-1];return c&&f?c.listKey&&c.container===f.container?c.key>f.key?"before":"after":C.VISITOR_KEYS[c.type].indexOf(c.key)>C.VISITOR_KEYS[f.type].indexOf(f.key)?"before":"after":"before"}function g(e){var t=e.path;if(t.isFunctionDeclaration()){var r=t.scope.getBinding(t.node.id.name);if(!r.references)return"before";for(var n=r.referencePaths,i=n,s=Array.isArray(i),a=0,i=s?i:(0,A.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;if("callee"!==u.key||!u.parentPath.isCallExpression())return}for(var l=void 0,c=n,f=Array.isArray(c),p=0,c=f?c:(0,A.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;if(!!!h.find(function(e){return e.node===t.node})){var m=this._guessExecutionStatusRelativeTo(h);if(l){if(l!==m)return}else l=m}}return l}}function b(e,t){return this._resolve(e,t)||this}function E(e,t){if(!(t&&t.indexOf(this)>=0))if(t=t||[],t.push(this),this.isVariableDeclarator()){if(this.get("id").isIdentifier())return this.get("init").resolve(e,t)}else if(this.isReferencedIdentifier()){var r=this.scope.getBinding(this.node.name);if(!r)return;if(!r.constant)return;if("module"===r.kind)return;if(r.path!==this){var n=r.path.resolve(e,t);if(this.find(function(e){return e.node===n.node}))return;return n}}else{if(this.isTypeCastExpression())return this.get("expression").resolve(e,t);if(e&&this.isMemberExpression()){var i=this.toComputedKey();if(!C.isLiteral(i))return;var s=i.value,a=this.get("object").resolve(e,t);if(a.isObjectExpression())for(var o=a.get("properties"),u=o,l=Array.isArray(u),c=0,u=l?u:(0,A.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;if(p.isProperty()){var d=p.get("key"),h=p.isnt("computed")&&d.isIdentifier({name:s});if(h=h||d.isLiteral({value:s}))return p.get("value").resolve(e,t)}}else if(a.isArrayExpression()&&!isNaN(+s)){var m=a.get("elements"),y=m[s];if(y)return y.resolve(e,t)}}}}t.__esModule=!0,t.is=void 0;var x=r(2),A=n(x);t.matchesPattern=i,t.has=s,t.isStatic=a,t.isnt=o,t.equals=u,t.isNodeType=l,t.canHaveVariableDeclarationOrExpression=c,t.canSwapBetweenExpressionAndStatement=f,t.isCompletionRecord=p,t.isStatementOrBlock=d,t.referencesImport=h,t.getSource=m,
t.willIMaybeExecuteBefore=y,t._guessExecutionStatusRelativeTo=v,t._guessExecutionStatusRelativeToDifferentFunctions=g,t.resolve=b,t._resolve=E;var S=r(111),_=n(S),D=r(1),C=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(D);t.is=s},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u),c={ReferencedIdentifier:function(e,t){if(!e.isJSXIdentifier()||!u.react.isCompatTag(e.node.name)||e.parentPath.isJSXMemberExpression()){if("this"===e.node.name){var r=e.scope;do{if(r.path.isFunction()&&!r.path.isArrowFunctionExpression())break}while(r=r.parent);r&&t.breakOnScopePaths.push(r.path)}var n=e.scope.getBinding(e.node.name);n&&n===t.scope.getBinding(e.node.name)&&(t.bindings[e.node.name]=n)}}},f=function(){function e(t,r){(0,o.default)(this,e),this.breakOnScopePaths=[],this.bindings={},this.scopes=[],this.scope=r,this.path=t,this.attachAfter=!1}return e.prototype.isCompatibleScope=function(e){for(var t in this.bindings){var r=this.bindings[t];if(!e.bindingIdentifierEquals(t,r.identifier))return!1}return!0},e.prototype.getCompatibleScopes=function(){var e=this.path.scope;do{if(!this.isCompatibleScope(e))break;if(this.scopes.push(e),this.breakOnScopePaths.indexOf(e.path)>=0)break}while(e=e.parent)},e.prototype.getAttachmentPath=function(){var e=this._getAttachmentPath();if(e){var t=e.scope;if(t.path===e&&(t=e.scope.parent),t.path.isProgram()||t.path.isFunction())for(var r in this.bindings)if(t.hasOwnBinding(r)){var n=this.bindings[r];if("param"!==n.kind&&this.getAttachmentParentForPath(n.path).key>e.key){this.attachAfter=!0,e=n.path;for(var i=n.constantViolations,a=Array.isArray(i),o=0,i=a?i:(0,s.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;this.getAttachmentParentForPath(l).key>e.key&&(e=l)}}}return e.parentPath.isExportDeclaration()&&(e=e.parentPath),e}},e.prototype._getAttachmentPath=function(){var e=this.scopes,t=e.pop();if(t){if(t.path.isFunction()){if(this.hasOwnParamBindings(t)){if(this.scope===t)return;return t.path.get("body").get("body")[0]}return this.getNextScopeAttachmentParent()}return t.path.isProgram()?this.getNextScopeAttachmentParent():void 0}},e.prototype.getNextScopeAttachmentParent=function(){var e=this.scopes.pop();if(e)return this.getAttachmentParentForPath(e.path)},e.prototype.getAttachmentParentForPath=function(e){do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement()||e.isVariableDeclarator()&&null!==e.parentPath.node&&e.parentPath.node.declarations.length>1)return e}while(e=e.parentPath)},e.prototype.hasOwnParamBindings=function(e){for(var t in this.bindings)if(e.hasOwnBinding(t)){var r=this.bindings[t];if("param"===r.kind&&r.constant)return!0}return!1},e.prototype.run=function(){var e=this.path.node;if(!e._hoisted){e._hoisted=!0,this.path.traverse(c,this),this.getCompatibleScopes();var t=this.getAttachmentPath();if(t&&t.getFunctionParent()!==this.path.getFunctionParent()){var r=t.scope.generateUidIdentifier("ref"),n=l.variableDeclarator(r,this.path.node);t[this.attachAfter?"insertAfter":"insertBefore"]([t.isVariableDeclarator()?n:l.variableDeclaration("var",[n])]);var i=this.path.parentPath;i.isJSXElement()&&this.path.container===i.node.children&&(r=l.JSXExpressionContainer(r)),this.path.replaceWith(r)}}},e}();t.default=f,e.exports=t.default},function(e,t){"use strict";t.__esModule=!0;t.hooks=[function(e,t){if("test"===e.key&&(t.isWhile()||t.isSwitchCase())||"declaration"===e.key&&t.isExportDeclaration()||"body"===e.key&&t.isLabeledStatement()||"declarations"===e.listKey&&t.isVariableDeclaration()&&1===t.node.declarations.length||"expression"===e.key&&t.isExpressionStatement())return t.remove(),!0},function(e,t){if(t.isSequenceExpression()&&1===t.node.expressions.length)return t.replaceWith(t.node.expressions[0]),!0},function(e,t){if(t.isBinary())return"left"===e.key?t.replaceWith(t.node.right):t.replaceWith(t.node.left),!0},function(e,t){if(t.isIfStatement()&&("consequent"===e.key||"alternate"===e.key)||"body"===e.key&&(t.isLoop()||t.isArrowFunctionExpression()))return e.replaceWith({type:"BlockStatement",body:[]}),!0}]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertBefore(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key)this.node&&e.push(this.node),this.replaceExpressionWithStatements(e);else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertBefore(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.push(this.node),this._replaceWith(D.blockStatement(e))}return[this]}function s(e,t){this.updateSiblingKeys(e,t.length);for(var r=[],n=0;n<t.length;n++){var i=e+n,s=t[n];if(this.container.splice(i,0,s),this.context){var a=this.context.create(this.parent,this.container,i,this.listKey);this.context.queue&&a.pushContext(this.context),r.push(a)}else r.push(S.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:i}))}for(var o=this._getQueueContexts(),u=r,l=Array.isArray(u),c=0,u=l?u:(0,g.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;p.setScope(),p.debug(function(){return"Inserted."});for(var d=o,h=Array.isArray(d),m=0,d=h?d:(0,g.default)(d);;){var y;if(h){if(m>=d.length)break;y=d[m++]}else{if(m=d.next(),m.done)break;y=m.value}y.maybeQueue(p,!0)}}return r}function a(e){return this._containerInsert(this.key,e)}function o(e){return this._containerInsert(this.key+1,e)}function u(e){var t=e[e.length-1];(D.isIdentifier(t)||D.isExpressionStatement(t)&&D.isIdentifier(t.expression))&&!this.isCompletionRecord()&&e.pop()}function l(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertAfter(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key){if(this.node){var t=this.scope.generateDeclaredUidIdentifier();e.unshift(D.expressionStatement(D.assignmentExpression("=",t,this.node))),e.push(D.expressionStatement(t))}this.replaceExpressionWithStatements(e)}else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertAfter(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.unshift(this.node),this._replaceWith(D.blockStatement(e))}return[this]}function c(e,t){if(this.parent)for(var r=b.path.get(this.parent),n=0;n<r.length;n++){var i=r[n];i.key>=e&&(i.key+=t)}}function f(e){if(!e)return[];e.constructor!==Array&&(e=[e]);for(var t=0;t<e.length;t++){var r=e[t],n=void 0;if(r?"object"!==(void 0===r?"undefined":(0,y.default)(r))?n="contains a non-object node":r.type?r instanceof S.default&&(n="has a NodePath when it expected a raw object"):n="without a type":n="has falsy node",n){var i=Array.isArray(r)?"array":void 0===r?"undefined":(0,y.default)(r);throw new Error("Node list "+n+" with the index of "+t+" and type of "+i)}}return e}function p(e,t){return this._assertUnremoved(),t=this._verifyNodeList(t),S.default.get({parentPath:this,parent:this.node,container:this.node[e],listKey:e,key:0}).insertBefore(t)}function d(e,t){this._assertUnremoved(),t=this._verifyNodeList(t);var r=this.node[e];return S.default.get({parentPath:this,parent:this.node,container:r,listKey:e,key:r.length}).replaceWithMultiple(t)}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.scope;return new x.default(this,e).run()}t.__esModule=!0;var m=r(11),y=n(m),v=r(2),g=n(v);t.insertBefore=i,t._containerInsert=s,t._containerInsertBefore=a,t._containerInsertAfter=o,t._maybePopFromStatements=u,t.insertAfter=l,t.updateSiblingKeys=c,t._verifyNodeList=f,t.unshiftContainer=p,t.pushContainer=d,t.hoist=h;var b=r(88),E=r(378),x=n(E),A=r(36),S=n(A),_=r(1),D=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(_)},function(e,t,r){"use strict";function n(){if(this._assertUnremoved(),this.resync(),this._callRemovalHooks())return void this._markRemoved();this.shareCommentsWithSiblings(),this._remove(),this._markRemoved()}function i(){for(var e=c.hooks,t=Array.isArray(e),r=0,e=t?e:(0,l.default)(e);;){var n;if(t){if(r>=e.length)break;n=e[r++]}else{if(r=e.next(),r.done)break;n=r.value}if(n(this,this.parentPath))return!0}}function s(){Array.isArray(this.container)?(this.container.splice(this.key,1),this.updateSiblingKeys(this.key,-1)):this._replaceWith(null)}function a(){this.shouldSkip=!0,this.removed=!0,this.node=null}function o(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")}t.__esModule=!0;var u=r(2),l=function(e){return e&&e.__esModule?e:{default:e}}(u);t.remove=n,t._callRemovalHooks=i,t._remove=s,t._markRemoved=a,t._assertUnremoved=o;var c=r(379)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){this.resync(),e=this._verifyNodeList(e),E.inheritLeadingComments(e[0],this.node),E.inheritTrailingComments(e[e.length-1],this.node),this.node=this.container[this.key]=null,this.insertAfter(e),this.node?this.requeue():this.remove()}function s(e){this.resync();try{e="("+e+")",e=(0,g.parse)(e)}catch(r){var t=r.loc;throw t&&(r.message+=" - make sure this is an expression.",r.message+="\n"+(0,d.default)(e,t.line,t.column+1)),r}return e=e.program.body[0].expression,m.default.removeProperties(e),this.replaceWith(e)}function a(e){if(this.resync(),this.removed)throw new Error("You can't replace this node, we've already removed it");if(e instanceof v.default&&(e=e.node),!e)throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");if(this.node!==e){if(this.isProgram()&&!E.isProgram(e))throw new Error("You can only replace a Program root node with another Program node");if(Array.isArray(e))throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");if("string"==typeof e)throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");if(this.isNodeType("Statement")&&E.isExpression(e)&&(this.canHaveVariableDeclarationOrExpression()||this.canSwapBetweenExpressionAndStatement(e)||this.parentPath.isExportDefaultDeclaration()||(e=E.expressionStatement(e))),this.isNodeType("Expression")&&E.isStatement(e)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(e))return this.replaceExpressionWithStatements([e]);var t=this.node;t&&(E.inheritsComments(e,t),E.removeComments(t)),this._replaceWith(e),this.type=e.type,this.setScope(),this.requeue()}}function o(e){if(!this.container)throw new ReferenceError("Container is falsy");this.inList?E.validate(this.parent,this.key,[e]):E.validate(this.parent,this.key,e),this.debug(function(){return"Replace with "+(e&&e.type)}),this.node=this.container[this.key]=e}function u(e){this.resync();var t=E.toSequenceExpression(e,this.scope);if(E.isSequenceExpression(t)){var r=t.expressions;r.length>=2&&this.parentPath.isExpressionStatement()&&this._maybePopFromStatements(r),1===r.length?this.replaceWith(r[0]):this.replaceWith(t)}else{if(!t){var n=E.functionExpression(null,[],E.blockStatement(e));n.shadow=!0,this.replaceWith(E.callExpression(n,[])),this.traverse(x);for(var i=this.get("callee").getCompletionRecords(),s=i,a=Array.isArray(s),o=0,s=a?s:(0,f.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(l.isExpressionStatement()){var c=l.findParent(function(e){return e.isLoop()});if(c){var p=c.getData("expressionReplacementReturnUid");if(p)p=E.identifier(p.name);else{var d=this.get("callee");p=d.scope.generateDeclaredUidIdentifier("ret"),d.get("body").pushContainer("body",E.returnStatement(p)),c.setData("expressionReplacementReturnUid",p)}l.get("expression").replaceWith(E.assignmentExpression("=",p,l.node.expression))}else l.replaceWith(E.returnStatement(l.node.expression))}}return this.node}this.replaceWith(t)}}function l(e){return this.resync(),Array.isArray(e)?Array.isArray(this.container)?(e=this._verifyNodeList(e),this._containerInsertAfter(e),this.remove()):this.replaceWithMultiple(e):this.replaceWith(e)}t.__esModule=!0;var c=r(2),f=n(c);t.replaceWithMultiple=i,t.replaceWithSourceString=s,t.replaceWith=a,t._replaceWith=o,t.replaceExpressionWithStatements=u,t.replaceInline=l;var p=r(181),d=n(p),h=r(7),m=n(h),y=r(36),v=n(y),g=r(89),b=r(1),E=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(b),x={Function:function(e){e.skip()},VariableDeclaration:function(e){if("var"===e.node.kind){var t=e.getBindingIdentifiers();for(var r in t)e.scope.push({id:t[r]});for(var n=[],i=e.node.declarations,s=Array.isArray(i),a=0,i=s?i:(0,f.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;u.init&&n.push(E.expressionStatement(E.assignmentExpression("=",u.id,u.init)))}e.replaceWithMultiple(n)}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(225),o=(n(a),r(1)),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o),l={ReferencedIdentifier:function(e,t){var r=e.node;r.name===t.oldName&&(r.name=t.newName)},Scope:function(e,t){e.scope.bindingIdentifierEquals(t.oldName,t.binding.identifier)||e.skip()},"AssignmentExpression|Declaration":function(e,t){var r=e.getOuterBindingIdentifiers();for(var n in r)n===t.oldName&&(r[n].name=t.newName)}},c=function(){function e(t,r,n){(0,s.default)(this,e),this.newName=n,this.oldName=r,this.binding=t}return e.prototype.maybeConvertFromExportDeclaration=function(e){var t=e.parentPath.isExportDeclaration()&&e.parentPath;if(t){var r=t.isExportDefaultDeclaration();r&&(e.isFunctionDeclaration()||e.isClassDeclaration())&&!e.node.id&&(e.node.id=e.scope.generateUidIdentifier("default"));var n=e.getOuterBindingIdentifiers(),i=[];for(var s in n){var a=s===this.oldName?this.newName:s,o=r?"default":s;i.push(u.exportSpecifier(u.identifier(a),u.identifier(o)))}if(i.length){var l=u.exportNamedDeclaration(null,i);e.isFunctionDeclaration()&&(l._blockHoist=3),t.insertAfter(l),t.replaceWith(e.node)}}},e.prototype.rename=function(e){var t=this.binding,r=this.oldName,n=this.newName,i=t.scope,s=t.path,a=s.find(function(e){return e.isDeclaration()||e.isFunctionExpression()});a&&this.maybeConvertFromExportDeclaration(a),i.traverse(e||i.block,l,this),e||(i.removeOwnBinding(r),i.bindings[n]=t,this.binding.identifier.name=n),t.type},e}();t.default=c,e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){if(e._exploded)return e;e._exploded=!0;for(var t in e)if(!d(t)){var r=t.split("|");if(1!==r.length){var n=e[t];delete e[t];for(var i=r,s=Array.isArray(i),o=0,i=s?i:(0,E.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;e[l]=n}}}a(e),delete e.__esModule,c(e),f(e);for(var m=(0,g.default)(e),y=Array.isArray(m),v=0,m=y?m:(0,E.default)(m);;){var b;if(y){if(v>=m.length)break;b=m[v++]}else{if(v=m.next(),v.done)break;b=v.value}var x=b;if(!d(x)){var S=A[x];if(S){var _=e[x];for(var D in _)_[D]=p(S,_[D]);if(delete e[x],S.types)for(var w=S.types,k=Array.isArray(w),F=0,w=k?w:(0,E.default)(w);;){var T;if(k){if(F>=w.length)break;T=w[F++]}else{if(F=w.next(),F.done)break;T=F.value}var O=T;e[O]?h(e[O],_):e[O]=_}else h(e,_)}}}for(var B in e)if(!d(B)){var R=e[B],I=C.FLIPPED_ALIAS_KEYS[B],M=C.DEPRECATED_KEYS[B];if(M&&(console.trace("Visitor defined for "+B+" but it has been renamed to "+M),I=[M]),I){delete e[B];for(var N=I,L=Array.isArray(N),j=0,N=L?N:(0,E.default)(N);;){var U;if(L){if(j>=N.length)break;U=N[j++]}else{if(j=N.next(),j.done)break;U=j.value}var V=U,G=e[V];G?h(G,R):e[V]=(0,P.default)(R)}}}for(var W in e)d(W)||f(e[W]);return e}function a(e){if(!e._verified){if("function"==typeof e)throw new Error(_.get("traverseVerifyRootFunction"));for(var t in e)if("enter"!==t&&"exit"!==t||o(t,e[t]),!d(t)){if(C.TYPES.indexOf(t)<0)throw new Error(_.get("traverseVerifyNodeType",t));var r=e[t];if("object"===(void 0===r?"undefined":(0,y.default)(r)))for(var n in r){if("enter"!==n&&"exit"!==n)throw new Error(_.get("traverseVerifyVisitorProperty",t,n));o(t+"."+n,r[n])}}e._verified=!0}}function o(e,t){for(var r=[].concat(t),n=r,i=Array.isArray(n),s=0,n=i?n:(0,E.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if("function"!=typeof o)throw new TypeError("Non-function found defined in "+e+" with type "+(void 0===o?"undefined":(0,y.default)(o)))}}function u(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2],n={},i=0;i<e.length;i++){var a=e[i],o=t[i];s(a);for(var u in a){var c=a[u];(o||r)&&(c=l(c,o,r));h(n[u]=n[u]||{},c)}}return n}function l(e,t,r){var n={};for(var i in e){(function(i){var s=e[i];if(!Array.isArray(s))return"continue";s=s.map(function(e){var n=e;return t&&(n=function(r){return e.call(t,r,t)}),r&&(n=r(t.key,i,n)),n}),n[i]=s})(i)}return n}function c(e){for(var t in e)if(!d(t)){var r=e[t];"function"==typeof r&&(e[t]={enter:r})}}function f(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function p(e,t){var r=function(r){if(e.checkPath(r))return t.apply(this,arguments)};return r.toString=function(){return t.toString()},r}function d(e){return"_"===e[0]||("enter"===e||"exit"===e||"shouldSkip"===e||("blacklist"===e||"noScope"===e||"skipKeys"===e))}function h(e,t){for(var r in t)e[r]=[].concat(e[r]||[],t[r])}t.__esModule=!0;var m=r(11),y=i(m),v=r(14),g=i(v),b=r(2),E=i(b);t.explode=s,t.verify=a,t.merge=u;var x=r(224),A=n(x),S=r(20),_=n(S),D=r(1),C=n(D),w=r(109),P=i(w)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key||e.property;return e.computed||D.isIdentifier(t)&&(t=D.stringLiteral(t.name)),t}function s(e,t,r){for(var n=[],i=!0,a=e,o=Array.isArray(a),u=0,a=o?a:(0,b.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(i=!1,D.isExpression(c))n.push(c);else if(D.isExpressionStatement(c))n.push(c.expression);else if(D.isVariableDeclaration(c)){if("var"!==c.kind)return;for(var f=c.declarations,p=Array.isArray(f),d=0,f=p?f:(0,b.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h,y=D.getBindingIdentifiers(m);for(var v in y)r.push({kind:c.kind,id:y[v]});m.init&&n.push(D.assignmentExpression("=",m.id,m.init))}i=!0}else if(D.isIfStatement(c)){var g=c.consequent?s([c.consequent],t,r):t.buildUndefinedNode(),E=c.alternate?s([c.alternate],t,r):t.buildUndefinedNode();if(!g||!E)return;n.push(D.conditionalExpression(c.test,g,E))}else if(D.isBlockStatement(c)){var x=s(c.body,t,r);if(!x)return;n.push(x)}else{if(!D.isEmptyStatement(c))return;i=!0}}return i&&n.push(t.buildUndefinedNode()),1===n.length?n[0]:D.sequenceExpression(n)}function a(e,t){if(e&&e.length){var r=[],n=s(e,t,r);if(n){for(var i=r,a=Array.isArray(i),o=0,i=a?i:(0,b.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;t.push(l)}return n}}}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key,r=void 0;return"method"===e.kind?o.increment()+"":(r=D.isIdentifier(t)?t.name:D.isStringLiteral(t)?(0,v.default)(t.value):(0,v.default)(D.removePropertiesDeep(D.cloneDeep(t))),e.computed&&(r="["+r+"]"),e.static&&(r="static:"+r),r)}function u(e){return e+="",e=e.replace(/[^a-zA-Z0-9$_]/g,"-"),e=e.replace(/^[-0-9]+/,""),e=e.replace(/[-\s]+(.)?/g,function(e,t){return t?t.toUpperCase():""}),D.isValidIdentifier(e)||(e="_"+e),e||"_"}function l(e){return e=u(e),"eval"!==e&&"arguments"!==e||(e="_"+e),e}function c(e,t){if(D.isStatement(e))return e;var r=!1,n=void 0;if(D.isClass(e))r=!0,n="ClassDeclaration";else if(D.isFunction(e))r=!0,n="FunctionDeclaration";else if(D.isAssignmentExpression(e))return D.expressionStatement(e);if(r&&!e.id&&(n=!1),!n){if(t)return!1;throw new Error("cannot turn "+e.type+" to a statement")}return e.type=n,e}function f(e){if(D.isExpressionStatement(e)&&(e=e.expression),D.isExpression(e))return e;if(D.isClass(e)?e.type="ClassExpression":D.isFunction(e)&&(e.type="FunctionExpression"),!D.isExpression(e))throw new Error("cannot turn "+e.type+" to an expression");return e}function p(e,t){return D.isBlockStatement(e)?e:(D.isEmptyStatement(e)&&(e=[]),Array.isArray(e)||(D.isStatement(e)||(e=D.isFunction(t)?D.returnStatement(e):D.expressionStatement(e)),e=[e]),D.blockStatement(e))}function d(e){if(void 0===e)return D.identifier("undefined");if(!0===e||!1===e)return D.booleanLiteral(e);if(null===e)return D.nullLiteral();if("string"==typeof e)return D.stringLiteral(e);if("number"==typeof e)return D.numericLiteral(e);if((0,S.default)(e)){var t=e.source,r=e.toString().match(/\/([a-z]+|)$/)[1];return D.regExpLiteral(t,r)}if(Array.isArray(e))return D.arrayExpression(e.map(D.valueToNode));if((0,x.default)(e)){var n=[];for(var i in e){var s=void 0;s=D.isValidIdentifier(i)?D.identifier(i):D.stringLiteral(i),n.push(D.objectProperty(s,D.valueToNode(e[i])))}return D.objectExpression(n)}throw new Error("don't know how to turn this value into a node")}t.__esModule=!0;var h=r(359),m=n(h),y=r(35),v=n(y),g=r(2),b=n(g);t.toComputedKey=i,t.toSequenceExpression=a,t.toKeyAlias=o,t.toIdentifier=u,t.toBindingIdentifierName=l,t.toStatement=c,t.toExpression=f,t.toBlock=p,t.valueToNode=d;var E=r(275),x=n(E),A=r(276),S=n(A),_=r(1),D=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(_);o.uid=0,o.increment=function(){return o.uid>=m.default?o.uid=0:o.uid++}},function(e,t,r){"use strict";var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n),s=r(135),a=r(26),o=function(e){return e&&e.__esModule?e:{default:e}}(a);(0,o.default)("ArrayExpression",{fields:{elements:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeOrValueType)("null","Expression","SpreadElement"))),default:[]}},visitor:["elements"],aliases:["Expression"]}),(0,o.default)("AssignmentExpression",{fields:{operator:{validate:(0,a.assertValueType)("string")},left:{validate:(0,a.assertNodeType)("LVal")},right:{validate:(0,a.assertNodeType)("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),(0,o.default)("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:a.assertOneOf.apply(void 0,s.BINARY_OPERATORS)},left:{validate:(0,a.assertNodeType)("Expression")},right:{validate:(0,a.assertNodeType)("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),(0,o.default)("Directive",{visitor:["value"],fields:{value:{validate:(0,a.assertNodeType)("DirectiveLiteral")}}}),(0,o.default)("DirectiveLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("string")}}}),(0,o.default)("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Directive"))),default:[]},body:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","Statement"]}),(0,o.default)("BreakStatement",{visitor:["label"],fields:{label:{validate:(0,a.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,o.default)("CallExpression",{visitor:["callee","arguments"],fields:{callee:{validate:(0,a.assertNodeType)("Expression")},arguments:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression","SpreadElement")))}},aliases:["Expression"]}),(0,o.default)("CatchClause",{visitor:["param","body"],fields:{param:{validate:(0,a.assertNodeType)("Identifier")},body:{validate:(0,a.assertNodeType)("BlockStatement")}},aliases:["Scopable"]}),(0,o.default)("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},consequent:{validate:(0,a.assertNodeType)("Expression")},alternate:{validate:(0,a.assertNodeType)("Expression")}},aliases:["Expression","Conditional"]}),(0,o.default)("ContinueStatement",{visitor:["label"],fields:{label:{validate:(0,a.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,o.default)("DebuggerStatement",{aliases:["Statement"]}),(0,o.default)("DoWhileStatement",{visitor:["test","body"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),(0,o.default)("EmptyStatement",{aliases:["Statement"]}),(0,o.default)("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:(0,a.assertNodeType)("Expression")}},aliases:["Statement","ExpressionWrapper"]}),(0,o.default)("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:(0,a.assertNodeType)("Program")}}}),(0,o.default)("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,a.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:(0,a.assertNodeType)("VariableDeclaration","Expression"),optional:!0},test:{validate:(0,a.assertNodeType)("Expression"),optional:!0},update:{validate:(0,a.assertNodeType)("Expression"),optional:!0},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","params","body","returnType","typeParameters"],fields:{id:{validate:(0,a.assertNodeType)("Identifier")},params:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("LVal")))},body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}},aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"]}),(0,o.default)("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{id:{validate:(0,a.assertNodeType)("Identifier"),optional:!0},params:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("LVal")))},body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}}}),(0,o.default)("Identifier",{builder:["name"],visitor:["typeAnnotation"],aliases:["Expression","LVal"],fields:{name:{validate:function(e,t,r){i.isValidIdentifier(r)}},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))}}}),(0,o.default)("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},consequent:{validate:(0,a.assertNodeType)("Statement")},alternate:{optional:!0,validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:(0,a.assertNodeType)("Identifier")},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("StringLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:(0,a.assertValueType)("number")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("BooleanLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Literal"],fields:{pattern:{validate:(0,a.assertValueType)("string")},flags:{validate:(0,a.assertValueType)("string"),default:""}}}),(0,o.default)("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:a.assertOneOf.apply(void 0,s.LOGICAL_OPERATORS)},left:{validate:(0,a.assertNodeType)("Expression")},right:{validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("MemberExpression",{builder:["object","property","computed"],visitor:["object","property"],aliases:["Expression","LVal"],fields:{object:{validate:(0,a.assertNodeType)("Expression")},property:{validate:function(e,t,r){var n=e.computed?"Expression":"Identifier";(0,a.assertNodeType)(n)(e,t,r)}},computed:{default:!1}}}),(0,o.default)("NewExpression",{visitor:["callee","arguments"],aliases:["Expression"],fields:{callee:{validate:(0,a.assertNodeType)("Expression")},arguments:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression","SpreadElement")))}}}),(0,o.default)("Program",{visitor:["directives","body"],builder:["body","directives"],fields:{directives:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Directive"))),default:[]},body:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","FunctionParent"]}),(0,o.default)("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("ObjectMethod","ObjectProperty","SpreadProperty")))}}}),(0,o.default)("ObjectMethod",{builder:["kind","key","params","body","computed"],fields:{kind:{validate:(0,a.chain)((0,a.assertValueType)("string"),(0,a.assertOneOf)("method","get","set")),default:"method"},computed:{validate:(0,a.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];a.assertNodeType.apply(void 0,n)(e,t,r)}},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))},
body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}},visitor:["key","params","body","decorators","returnType","typeParameters"],aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]}),(0,o.default)("ObjectProperty",{builder:["key","value","computed","shorthand","decorators"],fields:{computed:{validate:(0,a.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];a.assertNodeType.apply(void 0,n)(e,t,r)}},value:{validate:(0,a.assertNodeType)("Expression","Pattern","RestElement")},shorthand:{validate:(0,a.assertValueType)("boolean"),default:!1},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator"))),optional:!0}},visitor:["key","value","decorators"],aliases:["UserWhitespacable","Property","ObjectMember"]}),(0,o.default)("RestElement",{visitor:["argument","typeAnnotation"],aliases:["LVal"],fields:{argument:{validate:(0,a.assertNodeType)("LVal")},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))}}}),(0,o.default)("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,a.assertNodeType)("Expression"),optional:!0}}}),(0,o.default)("SequenceExpression",{visitor:["expressions"],fields:{expressions:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression")))}},aliases:["Expression"]}),(0,o.default)("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:(0,a.assertNodeType)("Expression"),optional:!0},consequent:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}}}),(0,o.default)("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:(0,a.assertNodeType)("Expression")},cases:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("SwitchCase")))}}}),(0,o.default)("ThisExpression",{aliases:["Expression"]}),(0,o.default)("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{body:{validate:(0,a.assertNodeType)("BlockStatement")},handler:{optional:!0,handler:(0,a.assertNodeType)("BlockStatement")},finalizer:{optional:!0,validate:(0,a.assertNodeType)("BlockStatement")}}}),(0,o.default)("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:(0,a.assertNodeType)("Expression")},operator:{validate:a.assertOneOf.apply(void 0,s.UNARY_OPERATORS)}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),(0,o.default)("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:(0,a.assertNodeType)("Expression")},operator:{validate:a.assertOneOf.apply(void 0,s.UPDATE_OPERATORS)}},visitor:["argument"],aliases:["Expression"]}),(0,o.default)("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{kind:{validate:(0,a.chain)((0,a.assertValueType)("string"),(0,a.assertOneOf)("var","let","const"))},declarations:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("VariableDeclarator")))}}}),(0,o.default)("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:(0,a.assertNodeType)("LVal")},init:{optional:!0,validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("BlockStatement","Statement")}}}),(0,o.default)("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{object:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("BlockStatement","Statement")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AssignmentPattern",{visitor:["left","right"],aliases:["Pattern","LVal"],fields:{left:{validate:(0,n.assertNodeType)("Identifier")},right:{validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrayPattern",{visitor:["elements","typeAnnotation"],aliases:["Pattern","LVal"],fields:{elements:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Identifier","Pattern","RestElement")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["params","body","returnType","typeParameters"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement","Expression")},async:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("ClassBody",{visitor:["body"],fields:{body:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ClassMethod","ClassProperty")))}}}),(0,i.default)("ClassDeclaration",{builder:["id","superClass","body","decorators"],visitor:["id","body","superClass","mixins","typeParameters","superTypeParameters","implements","decorators"],aliases:["Scopable","Class","Statement","Declaration","Pureish"],fields:{id:{validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ClassExpression",{inherits:"ClassDeclaration",aliases:["Scopable","Class","Expression","Pureish"],fields:{id:{optional:!0,validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ExportAllDeclaration",{visitor:["source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("FunctionDeclaration","ClassDeclaration","Expression")}}}),(0,i.default)("ExportNamedDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("Declaration"),optional:!0},specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ExportSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral"),optional:!0}}}),(0,i.default)("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ForOfStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("ImportDeclaration",{visitor:["specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration"],fields:{specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportSpecifier",{visitor:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},imported:{validate:(0,n.assertNodeType)("Identifier")},importKind:{validate:(0,n.assertOneOf)(null,"type","typeof")}}}),(0,i.default)("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:(0,n.assertValueType)("string")},property:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("ClassMethod",{aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static"],visitor:["key","params","body","decorators","returnType","typeParameters"],fields:{kind:{validate:(0,n.chain)((0,n.assertValueType)("string"),(0,n.assertOneOf)("get","set","method","constructor")),default:"method"},computed:{default:!1,validate:(0,n.assertValueType)("boolean")},static:{default:!1,validate:(0,n.assertValueType)("boolean")},key:{validate:function(e,t,r){var i=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];n.assertNodeType.apply(void 0,i)(e,t,r)}},params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,n.assertValueType)("boolean")},async:{default:!1,validate:(0,n.assertValueType)("boolean")}}}),(0,i.default)("ObjectPattern",{visitor:["properties","typeAnnotation"],aliases:["Pattern","LVal"],fields:{properties:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("RestProperty","Property")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("Super",{aliases:["Expression"]}),(0,i.default)("TaggedTemplateExpression",{visitor:["tag","quasi"],aliases:["Expression"],fields:{tag:{validate:(0,n.assertNodeType)("Expression")},quasi:{validate:(0,n.assertNodeType)("TemplateLiteral")}}}),(0,i.default)("TemplateElement",{builder:["value","tail"],fields:{value:{},tail:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("TemplateElement")))},expressions:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Expression")))}}}),(0,i.default)("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:(0,n.assertValueType)("boolean"),default:!1},argument:{optional:!0,validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("ForAwaitStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:{}}),(0,i.default)("Import",{aliases:["Expression"]}),(0,i.default)("Decorator",{visitor:["expression"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("DoExpression",{visitor:["body"],aliases:["Expression"],fields:{body:{validate:(0,n.assertNodeType)("BlockStatement")}}}),(0,i.default)("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("RestProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("LVal")}}}),(0,i.default)("SpreadProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AnyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["Flow"],fields:{}}),(0,i.default)("BooleanTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("BooleanLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NullLiteralTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ClassImplements",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("ClassProperty",{visitor:["key","value","typeAnnotation","decorators"],builder:["key","value","typeAnnotation","decorators","computed"],aliases:["Property"],fields:{computed:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("DeclareClass",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareFunction",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareInterface",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModule",{visitor:["id","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareOpaqueType",{visitor:["id","typeParameters","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareVariable",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareExportDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("ExistentialTypeParam",{aliases:["Flow"]}),(0,i.default)("FunctionTypeAnnotation",{visitor:["typeParameters","params","rest","returnType"],aliases:["Flow"],fields:{}}),(0,i.default)("FunctionTypeParam",{visitor:["name","typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceExtends",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceDeclaration",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("IntersectionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("MixedTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("EmptyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("NumericLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NumberTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("StringLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("StringTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ThisTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("TupleTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeofTypeAnnotation",{visitor:["argument"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("OpaqueType",{visitor:["id","typeParameters","impltype","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("TypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["Flow","ExpressionWrapper","Expression"],fields:{}}),(0,i.default)("TypeParameter",{visitor:["bound"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterDeclaration",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterInstantiation",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeCallProperty",{visitor:["value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeIndexer",{visitor:["id","key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeProperty",{visitor:["key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeSpreadProperty",{visitor:["argument"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("QualifiedTypeIdentifier",{visitor:["id","qualification"],aliases:["Flow"],fields:{}}),(0,i.default)("UnionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("VoidTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}})},function(e,t,r){"use strict";r(26),r(386),r(387),r(389),r(391),r(392),r(388)},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("JSXAttribute",{visitor:["name","value"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:(0,n.assertNodeType)("JSXElement","StringLiteral","JSXExpressionContainer")}}}),(0,i.default)("JSXClosingElement",{visitor:["name"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")}}}),(0,i.default)("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["JSX","Immutable","Expression"],fields:{openingElement:{validate:(0,n.assertNodeType)("JSXOpeningElement")},closingElement:{optional:!0,validate:(0,n.assertNodeType)("JSXClosingElement")},children:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement")))}}}),(0,i.default)("JSXEmptyExpression",{aliases:["JSX","Expression"]}),(0,i.default)("JSXExpressionContainer",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXSpreadChild",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXIdentifier",{builder:["name"],aliases:["JSX","Expression"],fields:{name:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("JSXMemberExpression",{visitor:["object","property"],aliases:["JSX","Expression"],fields:{object:{validate:(0,n.assertNodeType)("JSXMemberExpression","JSXIdentifier")},property:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXNamespacedName",{visitor:["namespace","name"],aliases:["JSX"],fields:{namespace:{validate:(0,n.assertNodeType)("JSXIdentifier")},name:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","attributes"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")},selfClosing:{default:!1,validate:(0,n.assertValueType)("boolean")},attributes:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXAttribute","JSXSpreadAttribute")))}}}),(0,i.default)("JSXSpreadAttribute",{visitor:["argument"],aliases:["JSX"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXText",{aliases:["JSX","Immutable"],builder:["value"],fields:{value:{validate:(0,n.assertValueType)("string")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("Noop",{visitor:[]}),(0,i.default)("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";function n(e){var t=i(e);return 1===t.length?t[0]:o.unionTypeAnnotation(t)}function i(e){for(var t={},r={},n=[],s=[],a=0;a<e.length;a++){var u=e[a];if(u&&!(s.indexOf(u)>=0)){if(o.isAnyTypeAnnotation(u))return[u];if(o.isFlowBaseAnnotation(u))r[u.type]=u;else if(o.isUnionTypeAnnotation(u))n.indexOf(u.types)<0&&(e=e.concat(u.types),n.push(u.types));else if(o.isGenericTypeAnnotation(u)){var l=u.id.name;if(t[l]){var c=t[l];c.typeParameters?u.typeParameters&&(c.typeParameters.params=i(c.typeParameters.params.concat(u.typeParameters.params))):c=u.typeParameters}else t[l]=u}else s.push(u)}}for(var f in r)s.push(r[f]);for(var p in t)s.push(t[p]);return s}function s(e){if("string"===e)return o.stringTypeAnnotation();if("number"===e)return o.numberTypeAnnotation();if("undefined"===e)return o.voidTypeAnnotation();if("boolean"===e)return o.booleanTypeAnnotation();if("function"===e)return o.genericTypeAnnotation(o.identifier("Function"));if("object"===e)return o.genericTypeAnnotation(o.identifier("Object"));if("symbol"===e)return o.genericTypeAnnotation(o.identifier("Symbol"));throw new Error("Invalid typeof value")}t.__esModule=!0,t.createUnionTypeAnnotation=n,t.removeTypeDuplicates=i,t.createTypeAnnotationBasedOnTypeof=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){"use strict";function n(e){return!!e&&/^[a-z]|\-/.test(e)}function i(e,t){for(var r=e.value.split(/\r\n|\n|\r/),n=0,i=0;i<r.length;i++)r[i].match(/[^ \t]/)&&(n=i);for(var s="",a=0;a<r.length;a++){var u=r[a],l=0===a,c=a===r.length-1,f=a===n,p=u.replace(/\t/g," ");l||(p=p.replace(/^[ ]+/,"")),c||(p=p.replace(/[ ]+$/,"")),p&&(f||(p+=" "),s+=p)}s&&t.push(o.stringLiteral(s))}function s(e){for(var t=[],r=0;r<e.children.length;r++){var n=e.children[r];o.isJSXText(n)?i(n,t):(o.isJSXExpressionContainer(n)&&(n=n.expression),o.isJSXEmptyExpression(n)||t.push(n))}return t}t.__esModule=!0,t.isReactComponent=void 0,t.isCompatTag=n,t.buildChildren=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);t.isReactComponent=o.buildMatchMemberExpression("React.Component")},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=E.getBindingIdentifiers.keys[t.type];if(r)for(var n=0;n<r.length;n++){var i=r[n],s=t[i];if(Array.isArray(s)){if(s.indexOf(e)>=0)return!0}else if(s===e)return!0}return!1}function s(e,t){switch(t.type){case"BindExpression":return t.object===e||t.callee===e;case"MemberExpression":case"JSXMemberExpression":return!(t.property!==e||!t.computed)||t.object===e;case"MetaProperty":return!1;case"ObjectProperty":if(t.key===e)return t.computed;case"VariableDeclarator":return t.id!==e;case"ArrowFunctionExpression":case"FunctionDeclaration":case"FunctionExpression":for(var r=t.params,n=Array.isArray(r),i=0,r=n?r:(0,b.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}if(s===e)return!1}return t.id!==e;case"ExportSpecifier":return!t.source&&t.local===e;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"JSXAttribute":return t.name!==e;case"ClassProperty":return t.key===e?t.computed:t.value===e;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ClassDeclaration":case"ClassExpression":return t.id!==e;case"ClassMethod":case"ObjectMethod":return t.key===e&&t.computed;case"LabeledStatement":return!1;case"CatchClause":return t.param!==e;case"RestElement":return!1;case"AssignmentExpression":case"AssignmentPattern":return t.right===e;case"ObjectPattern":case"ArrayPattern":return!1}return!0}function a(e){return"string"==typeof e&&!A.default.keyword.isReservedWordES6(e,!0)&&("await"!==e&&A.default.keyword.isIdentifierNameES6(e))}function o(e){return _.isVariableDeclaration(e)&&("var"!==e.kind||e[D.BLOCK_SCOPED_SYMBOL])}function u(e){return _.isFunctionDeclaration(e)||_.isClassDeclaration(e)||_.isLet(e)}function l(e){return _.isVariableDeclaration(e,{kind:"var"})&&!e[D.BLOCK_SCOPED_SYMBOL]}function c(e){return _.isImportDefaultSpecifier(e)||_.isIdentifier(e.imported||e.exported,{name:"default"})}function f(e,t){return(!_.isBlockStatement(e)||!_.isFunction(t,{body:e}))&&_.isScopable(e)}function p(e){return!!_.isType(e.type,"Immutable")||!!_.isIdentifier(e)&&"undefined"===e.name}function d(e,t){if("object"!==(void 0===e?"undefined":(0,v.default)(e))||"object"!==(void 0===e?"undefined":(0,v.default)(e))||null==e||null==t)return e===t;if(e.type!==t.type)return!1;for(var r=(0,m.default)(_.NODE_FIELDS[e.type]||e.type),n=r,i=Array.isArray(n),s=0,n=i?n:(0,b.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if((0,v.default)(e[o])!==(0,v.default)(t[o]))return!1;if(Array.isArray(e[o])){if(!Array.isArray(t[o]))return!1;if(e[o].length!==t[o].length)return!1;for(var u=0;u<e[o].length;u++)if(!d(e[o][u],t[o][u]))return!1}else if(!d(e[o],t[o]))return!1}return!0}t.__esModule=!0;var h=r(14),m=n(h),y=r(11),v=n(y),g=r(2),b=n(g);t.isBinding=i,t.isReferenced=s,t.isValidIdentifier=a,t.isLet=o,t.isBlockScoped=u,t.isVar=l,t.isSpecifierDefault=c,t.isScope=f,t.isImmutable=p,t.isNodesEquivalent=d;var E=r(226),x=r(97),A=n(x),S=r(1),_=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(S),D=r(135)},function(e,t){"use strict";function r(e,t,r){e instanceof RegExp&&(e=n(e,r)),t instanceof RegExp&&(t=n(t,r));var s=i(e,t,r);return s&&{start:s[0],end:s[1],pre:r.slice(0,s[0]),body:r.slice(s[0]+e.length,s[1]),post:r.slice(s[1]+t.length)}}function n(e,t){var r=t.match(e);return r?r[0]:null}function i(e,t,r){var n,i,s,a,o,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=0&&l>0){for(n=[],s=r.length;c>=0&&!o;)c==u?(n.push(c),u=r.indexOf(e,c+1)):1==n.length?o=[n.pop(),l]:(i=n.pop(),i<s&&(s=i,a=l),l=r.indexOf(t,c+1)),c=u<l&&u>=0?u:l;n.length&&(o=[s,a])}return o}e.exports=r,r.range=i},function(e,t){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function n(e){return 3*e.length/4-r(e)}function i(e){var t,n,i,s,a,o=e.length;s=r(e),a=new c(3*o/4-s),n=s>0?o-4:o;var u=0;for(t=0;t<n;t+=4)i=l[e.charCodeAt(t)]<<18|l[e.charCodeAt(t+1)]<<12|l[e.charCodeAt(t+2)]<<6|l[e.charCodeAt(t+3)],a[u++]=i>>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===s?(i=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===s&&(i=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function s(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function a(e,t,r){for(var n,i=[],a=t;a<r;a+=3)n=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(s(n));return i.join("")}function o(e){for(var t,r=e.length,n=r%3,i="",s=[],o=0,l=r-n;o<l;o+=16383)s.push(a(e,o,o+16383>l?l:o+16383));return 1===n?(t=e[r-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),s.push(i),s.join("")}t.byteLength=n,t.toByteArray=i,t.fromByteArray=o;for(var u=[],l=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,d=f.length;p<d;++p)u[p]=f[p],l[f.charCodeAt(p)]=p;l["-".charCodeAt(0)]=62,l["_".charCodeAt(0)]=63},function(e,t,r){"use strict";function n(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function i(e){return e.split("\\\\").join(m).split("\\{").join(y).split("\\}").join(v).split("\\,").join(g).split("\\.").join(b)}function s(e){return e.split(m).join("\\").split(y).join("{").split(v).join("}").split(g).join(",").split(b).join(".")}function a(e){if(!e)return[""];var t=[],r=h("{","}",e);if(!r)return e.split(",");var n=r.pre,i=r.body,s=r.post,o=n.split(",");o[o.length-1]+="{"+i+"}";var u=a(s);return s.length&&(o[o.length-1]+=u.shift(),o.push.apply(o,u)),t.push.apply(t,o),t}function o(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),p(i(e),!0).map(s)):[]}function u(e){return"{"+e+"}"}function l(e){return/^-?0\d/.test(e)}function c(e,t){return e<=t}function f(e,t){return e>=t}function p(e,t){var r=[],i=h("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),m=s||o,y=i.body.indexOf(",")>=0;if(!m&&!y)return i.post.match(/,.*\}/)?(e=i.pre+"{"+i.body+v+i.post,p(e)):[e];var g;if(m)g=i.body.split(/\.\./);else if(g=a(i.body),1===g.length&&(g=p(g[0],!1).map(u),1===g.length)){var b=i.post.length?p(i.post,!1):[""];return b.map(function(e){return i.pre+g[0]+e})}var E,x=i.pre,b=i.post.length?p(i.post,!1):[""];if(m){var A=n(g[0]),S=n(g[1]),_=Math.max(g[0].length,g[1].length),D=3==g.length?Math.abs(n(g[2])):1,C=c;S<A&&(D*=-1,C=f);var w=g.some(l);E=[];for(var P=A;C(P,S);P+=D){var k;if(o)"\\"===(k=String.fromCharCode(P))&&(k="");else if(k=String(P),w){var F=_-k.length;if(F>0){var T=new Array(F+1).join("0");k=P<0?"-"+T+k.slice(1):T+k}}E.push(k)}}else E=d(g,function(e){return p(e,!1)});for(var O=0;O<E.length;O++)for(var B=0;B<b.length;B++){var R=x+E[O]+b[B];(!t||m||R)&&r.push(R)}return r}var d=r(402),h=r(396);e.exports=o;var m="\0SLASH"+Math.random()+"\0",y="\0OPEN"+Math.random()+"\0",v="\0CLOSE"+Math.random()+"\0",g="\0COMMA"+Math.random()+"\0",b="\0PERIOD"+Math.random()+"\0"},function(e,t,r){(function(e){"use strict";function n(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i(e,t){if(n()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,r){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return a(this,e,t,r)}function a(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number')
;return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?p(e,t,r,n):"string"==typeof t?c(e,t,r):d(e,t)}function o(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function u(e,t,r,n){return o(t),t<=0?i(e,t):void 0!==r?"string"==typeof n?i(e,t).fill(r,n):i(e,t).fill(r):i(e,t)}function l(e,t){if(o(t),e=i(e,t<0?0:0|h(t)),!s.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function c(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!s.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|y(t,r);e=i(e,n);var a=e.write(t,r);return a!==n&&(e=e.slice(0,a)),e}function f(e,t){var r=t.length<0?0:0|h(t.length);e=i(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function p(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n),s.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=s.prototype):e=f(e,t),e}function d(e,t){if(s.isBuffer(t)){var r=0|h(t.length);return e=i(e,r),0===e.length?e:(t.copy(e,0,0,r),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||X(t.length)?i(e,0):f(e,t);if("Buffer"===t.type&&Q(t.data))return f(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function h(e){if(e>=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),s.alloc(+e)}function y(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Y(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(n)return Y(e).length;t=(""+t).toLowerCase(),n=!0}}function v(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,r);case"utf8":case"utf-8":return P(this,t,r);case"ascii":return F(this,t,r);case"latin1":case"binary":return T(this,t,r);case"base64":return w(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:E(e,t,r,n,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):E(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function E(e,t,r,n,i){function s(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,o=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,o/=2,u/=2,r/=2}var l;if(i){var c=-1;for(l=r;l<o;l++)if(s(e,l)===s(t,-1===c?0:l-c)){if(-1===c&&(c=l),l-c+1===u)return c*a}else-1!==c&&(l-=l-c),c=-1}else for(r+u>o&&(r=o-u),l=r;l>=0;l--){for(var f=!0,p=0;p<u;p++)if(s(e,l+p)!==s(t,p)){f=!1;break}if(f)return l}return-1}function x(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o=parseInt(t.substr(2*a,2),16);if(isNaN(o))return a;e[r+a]=o}return a}function A(e,t,r,n){return J(Y(t,e.length-r),e,r,n)}function S(e,t,r,n){return J(q(t),e,r,n)}function _(e,t,r,n){return S(e,t,r,n)}function D(e,t,r,n){return J(H(t),e,r,n)}function C(e,t,r,n){return J(K(t,e.length-r),e,r,n)}function w(e,t,r){return 0===t&&r===e.length?z.fromByteArray(e):z.fromByteArray(e.slice(t,r))}function P(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var s=e[i],a=null,o=s>239?4:s>223?3:s>191?2:1;if(i+o<=r){var u,l,c,f;switch(o){case 1:s<128&&(a=s);break;case 2:u=e[i+1],128==(192&u)&&(f=(31&s)<<6|63&u)>127&&(a=f);break;case 3:u=e[i+1],l=e[i+2],128==(192&u)&&128==(192&l)&&(f=(15&s)<<12|(63&u)<<6|63&l)>2047&&(f<55296||f>57343)&&(a=f);break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128==(192&u)&&128==(192&l)&&128==(192&c)&&(f=(15&s)<<18|(63&u)<<12|(63&l)<<6|63&c)>65535&&f<1114112&&(a=f)}}null===a?(a=65533,o=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=o}return k(n)}function k(e){var t=e.length;if(t<=Z)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=Z));return r}function F(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function T(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function O(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",s=t;s<r;++s)i+=W(e[s]);return i}function B(e,t,r){for(var n=e.slice(t,r),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+256*n[s+1]);return i}function R(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function I(e,t,r,n,i,a){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function M(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-r,2);i<s;++i)e[r+i]=(t&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function N(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-r,4);i<s;++i)e[r+i]=t>>>8*(n?i:3-i)&255}function L(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(e,t,r,n,i){return i||L(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),$.write(e,t,r,n,23,4),r+4}function U(e,t,r,n,i){return i||L(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),$.write(e,t,r,n,52,8),r+8}function V(e){if(e=G(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function G(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function W(e){return e<16?"0"+e.toString(16):e.toString(16)}function Y(e,t){t=t||1/0;for(var r,n=e.length,i=null,s=[],a=0;a<n;++a){if((r=e.charCodeAt(a))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function q(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}function K(e,t){for(var r,n,i,s=[],a=0;a<e.length&&!((t-=2)<0);++a)r=e.charCodeAt(a),n=r>>8,i=r%256,s.push(i),s.push(n);return s}function H(e){return z.toByteArray(V(e))}function J(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function X(e){return e!==e}var z=r(397),$=r(465),Q=r(400);t.Buffer=s,t.SlowBuffer=m,t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=n(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,r){return a(null,e,t,r)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,r){return u(null,e,t,r)},s.allocUnsafe=function(e){return l(null,e)},s.allocUnsafeSlow=function(e){return l(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,a=Math.min(r,n);i<a;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!Q(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=s.allocUnsafe(t),i=0;for(r=0;r<e.length;++r){var a=e[r];if(!s.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i),i+=a.length}return n},s.byteLength=y,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?P(this,0,e):v.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,r,n,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var a=i-n,o=r-t,u=Math.min(a,o),l=this.slice(n,i),c=e.slice(t,r),f=0;f<u;++f)if(l[f]!==c[f]){a=l[f],o=c[f];break}return a<o?-1:o<a?1:0},s.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},s.prototype.indexOf=function(e,t,r){return b(this,e,t,r,!0)},s.prototype.lastIndexOf=function(e,t,r){return b(this,e,t,r,!1)},s.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return x(this,e,t,r);case"utf8":case"utf-8":return A(this,e,t,r);case"ascii":return S(this,e,t,r);case"latin1":case"binary":return _(this,e,t,r);case"base64":return D(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Z=4096;s.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n;if(s.TYPED_ARRAY_SUPPORT)n=this.subarray(e,t),n.__proto__=s.prototype;else{var i=t-e;n=new s(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+e]}return n},s.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n},s.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},s.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=t,i=1,s=this[e+--n];n>0&&(i*=256);)s+=this[e+--n]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},s.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),$.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),$.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),$.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),$.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){I(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,s=0;for(this[t]=255&e;++s<r&&(i*=256);)this[t+s]=e/i&255;return t+r},s.prototype.writeUIntBE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){I(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);I(this,e,t,r,i-1,-i)}var s=0,a=1,o=0;for(this[t]=255&e;++s<r&&(a*=256);)e<0&&0===o&&0!==this[t+s-1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);I(this,e,t,r,i-1,-i)}var s=r-1,a=1,o=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return U(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return U(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i,a=n-r;if(this===e&&r<t&&t<n)for(i=a-1;i>=0;--i)e[i+t]=this[i+r];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+a),t);return a},s.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var o=s.isBuffer(e)?e:Y(new s(e,n).toString()),u=o.length;for(a=0;a<r-t;++a)this[a+t]=o[a%u]}return this};var ee=/[^+\/0-9A-Za-z-_]/g}).call(t,function(){return this}())},function(e,t){"use strict";var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){(function(t){"use strict";function n(e){this.enabled=e&&void 0!==e.enabled?e.enabled:c}function i(e){var t=function e(){return s.apply(e,arguments)};return t._styles=e,t.enabled=this.enabled,t.__proto__=h,t}function s(){var e=arguments,t=e.length,r=0!==t&&String(arguments[0]);if(t>1)for(var n=1;n<t;n++)r+=" "+e[n];if(!this.enabled||!r)return r;var i=this._styles,s=i.length,a=o.dim.open;for(!p||-1===i.indexOf("gray")&&-1===i.indexOf("grey")||(o.dim.open="");s--;){var u=o[i[s]];r=u.open+r.replace(u.closeRe,u.open)+u.close}return o.dim.open=a,r}var a=r(460),o=r(289),u=r(622),l=r(464),c=r(623),f=Object.defineProperties,p="win32"===t.platform&&!/^xterm/i.test(t.env.TERM);p&&(o.blue.open="");var d=function(){var e={};return Object.keys(o).forEach(function(t){o[t].closeRe=new RegExp(a(o[t].close),"g"),e[t]={get:function(){return i.call(this,this._styles.concat(t))}}}),e}(),h=f(function(){},d);f(n.prototype,function(){var e={};return Object.keys(d).forEach(function(t){e[t]={get:function(){return i.call(this,[t])}}}),e}()),e.exports=new n,e.exports.styles=o,e.exports.hasColor=l,e.exports.stripColor=u,e.exports.supportsColor=c}).call(t,r(8))},function(e,t){"use strict";e.exports=function(e,t){for(var n=[],i=0;i<e.length;i++){var s=t(e[i],i);r(s)?n.push.apply(n,s):n.push(s)}return n};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){(function(e){"use strict";function n(t){return new e(t,"base64").toString()}function i(e){return e.split(",").pop()}function s(e,r){var n=t.mapFileCommentRegex.exec(e),i=n[1]||n[2],s=u.resolve(r,i);try{return o.readFileSync(s,"utf8")}catch(e){throw new Error("An error occurred while trying to read the map file at "+s+"\n"+e)}}function a(e,t){t=t||{},t.isFileComment&&(e=s(e,t.commentFileDir)),t.hasComment&&(e=i(e)),t.isEncoded&&(e=n(e)),(t.isJSON||t.isEncoded)&&(e=JSON.parse(e)),this.sourcemap=e}var o=r(115),u=r(19);Object.defineProperty(t,"commentRegex",{get:function(){return/^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/gm}}),Object.defineProperty(t,"mapFileCommentRegex",{get:function(){return/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/gm}}),a.prototype.toJSON=function(e){return JSON.stringify(this.sourcemap,null,e)},a.prototype.toBase64=function(){var t=this.toJSON();return new e(t).toString("base64")},a.prototype.toComment=function(e){var t=this.toBase64(),r="sourceMappingURL=data:application/json;charset=utf-8;base64,"+t;return e&&e.multiline?"/*# "+r+" */":"//# "+r},a.prototype.toObject=function(){return JSON.parse(this.toJSON())},a.prototype.addProperty=function(e,t){if(this.sourcemap.hasOwnProperty(e))throw new Error("property %s already exists on the sourcemap, use set property instead");return this.setProperty(e,t)},a.prototype.setProperty=function(e,t){return this.sourcemap[e]=t,this},a.prototype.getProperty=function(e){return this.sourcemap[e]},t.fromObject=function(e){return new a(e)},t.fromJSON=function(e){return new a(e,{isJSON:!0})},t.fromBase64=function(e){return new a(e,{isEncoded:!0})},t.fromComment=function(e){return e=e.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),new a(e,{isEncoded:!0,hasComment:!0})},t.fromMapFileComment=function(e,t){return new a(e,{commentFileDir:t,isFileComment:!0,isJSON:!0})},t.fromSource=function(e){var r=e.match(t.commentRegex);return r?t.fromComment(r.pop()):null},t.fromMapFileSource=function(e,r){var n=e.match(t.mapFileCommentRegex);return n?t.fromMapFileComment(n.pop(),r):null},t.removeComments=function(e){return e.replace(t.commentRegex,"")},t.removeMapFileComments=function(e){return e.replace(t.mapFileCommentRegex,"")},t.generateMapFileComment=function(e,t){var r="sourceMappingURL="+e;return t&&t.multiline?"/*# "+r+" */":"//# "+r}}).call(t,r(399).Buffer)},function(e,t,r){"use strict";r(59),r(157),e.exports=r(439)},function(e,t,r){"use strict";var n=r(5),i=n.JSON||(n.JSON={stringify:JSON.stringify});e.exports=function(e){return i.stringify.apply(i,arguments)}},function(e,t,r){"use strict";r(96),r(157),r(59),r(441),r(451),r(450),r(449),e.exports=r(5).Map},function(e,t,r){"use strict";r(442),e.exports=9007199254740991},function(e,t,r){"use strict";r(443),e.exports=r(5).Object.assign},function(e,t,r){"use strict";r(444);var n=r(5).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,r){"use strict";r(158),e.exports=r(5).Object.getOwnPropertySymbols},function(e,t,r){"use strict";r(445),e.exports=r(5).Object.keys},function(e,t,r){"use strict";r(446),e.exports=r(5).Object.setPrototypeOf},function(e,t,r){"use strict";r(158),e.exports=r(5).Symbol.for},function(e,t,r){"use strict";r(158),r(96),r(452),r(453),e.exports=r(5).Symbol},function(e,t,r){"use strict";r(157),r(59),e.exports=r(156).f("iterator")},function(e,t,r){"use strict";r(96),r(59),r(447),r(455),r(454),e.exports=r(5).WeakMap},function(e,t,r){"use strict";r(96),r(59),r(448),r(457),r(456),e.exports=r(5).WeakSet},function(e,t){"use strict";e.exports=function(){}},function(e,t,r){"use strict";var n=r(55);e.exports=function(e,t){var r=[];return n(e,!1,r.push,r,t),r}},function(e,t,r){"use strict";var n=r(37),i=r(153),s=r(438);e.exports=function(e){return function(t,r,a){var o,u=n(t),l=i(u.length),c=s(a,l);if(e&&r!=r){for(;l>c;)if((o=u[c++])!=o)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===r)return e||c||0;return!e&&-1}}},function(e,t,r){"use strict";var n=r(16),i=r(232),s=r(13)("species");e.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),n(t)&&null===(t=t[s])&&(t=void 0)),void 0===t?Array:t}},function(e,t,r){"use strict";var n=r(421);e.exports=function(e,t){return new(n(e))(t)}},function(e,t,r){"use strict";var n=r(23).f,i=r(90),s=r(146),a=r(43),o=r(136),u=r(55),l=r(143),c=r(233),f=r(436),p=r(22),d=r(57).fastKey,h=r(58),m=p?"_s":"size",y=function(e,t){var r,n=d(t);if("F"!==n)return e._i[n];for(r=e._f;r;r=r.n)if(r.k==t)return r};e.exports={getConstructor:function(e,t,r,l){var c=e(function(e,n){o(e,c,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=n&&u(n,r,e[l],e)});return s(c.prototype,{clear:function(){for(var e=h(this,t),r=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete r[n.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var r=h(this,t),n=y(r,e);if(n){var i=n.n,s=n.p;delete r._i[n.i],n.r=!0,s&&(s.n=i),i&&(i.p=s),r._f==n&&(r._f=i),r._l==n&&(r._l=s),r[m]--}return!!n},forEach:function(e){h(this,t);for(var r,n=a(e,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(n(r.v,r.k,this);r&&r.r;)r=r.p},has:function(e){return!!y(h(this,t),e)}}),p&&n(c.prototype,"size",{get:function(){return h(this,t)[m]}}),c},def:function(e,t,r){var n,i,s=y(e,t);return s?s.v=r:(e._l=s={i:i=d(t,!0),k:t,v:r,p:n=e._l,n:void 0,r:!1},e._f||(e._f=s),n&&(n.n=s),e[m]++,"F"!==i&&(e._i[i]=s)),e},getEntry:y,setStrong:function(e,t,r){l(e,t,function(e,r){this._t=h(e,t),this._k=r,this._l=void 0},function(){for(var e=this,t=e._k,r=e._l;r&&r.r;)r=r.p;return e._t&&(e._l=r=r?r.n:e._t._f)?"keys"==t?c(0,r.k):"values"==t?c(0,r.v):c(0,[r.k,r.v]):(e._t=void 0,c(1))},r?"entries":"values",!r,!0),f(t)}}},function(e,t,r){"use strict";var n=r(228),i=r(419);e.exports=function(e){return function(){if(n(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},function(e,t,r){"use strict";var n=r(44),i=r(145),s=r(91);e.exports=function(e){var t=n(e),r=i.f;if(r)for(var a,o=r(e),u=s.f,l=0;o.length>l;)u.call(e,a=o[l++])&&t.push(a);return t}},function(e,t,r){"use strict";var n=r(15).document;e.exports=n&&n.documentElement},function(e,t,r){"use strict";var n=r(56),i=r(13)("iterator"),s=Array.prototype;e.exports=function(e){return void 0!==e&&(n.Array===e||s[i]===e)}},function(e,t,r){"use strict";var n=r(21);e.exports=function(e,t,r,i){try{return i?t(n(r)[0],r[1]):t(r)}catch(t){var s=e.return;throw void 0!==s&&n(s.call(e)),t}}},function(e,t,r){"use strict";var n=r(90),i=r(92),s=r(93),a={};r(29)(a,r(13)("iterator"),function(){return this}),e.exports=function(e,t,r){e.prototype=n(a,{next:i(1,r)}),s(e,t+" Iterator")}},function(e,t,r){"use strict";var n=r(44),i=r(37);e.exports=function(e,t){for(var r,s=i(e),a=n(s),o=a.length,u=0;o>u;)if(s[r=a[u++]]===t)return r}},function(e,t,r){"use strict";var n=r(23),i=r(21),s=r(44);e.exports=r(22)?Object.defineProperties:function(e,t){i(e);for(var r,a=s(t),o=a.length,u=0;o>u;)n.f(e,r=a[u++],t[r]);return e}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(37),s=r(236).f,a={}.toString,o="object"==("undefined"==typeof window?"undefined":n(window))&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(e){try{return s(e)}catch(e){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?u(e):s(i(e))}},function(e,t,r){"use strict";var n=r(28),i=r(94),s=r(150)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,r){"use strict";var n=r(12),i=r(5),s=r(27);e.exports=function(e,t){var r=(i.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*s(function(){r(1)}),"Object",a)}},function(e,t,r){"use strict";var n=r(16),i=r(21),s=function(e,t){if(i(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{n=r(43)(Function.call,r(235).f(Object.prototype,"__proto__").set,2),n(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,r){return s(e,r),t?e.__proto__=r:n(e,r),e}}({},!1):void 0),check:s}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(23),a=r(22),o=r(13)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:n[e];a&&t&&!t[o]&&s.f(t,o,{configurable:!0,get:function(){return this}})}},function(e,t,r){"use strict";var n=r(152),i=r(140);e.exports=function(e){return function(t,r){var s,a,o=String(i(t)),u=n(r),l=o.length;return u<0||u>=l?e?"":void 0:(s=o.charCodeAt(u),s<55296||s>56319||u+1===l||(a=o.charCodeAt(u+1))<56320||a>57343?e?o.charAt(u):s:e?o.slice(u,u+2):a-56320+(s-55296<<10)+65536)}}},function(e,t,r){"use strict";var n=r(152),i=Math.max,s=Math.min;e.exports=function(e,t){return e=n(e),e<0?i(e+t,0):s(e,t)}},function(e,t,r){"use strict";var n=r(21),i=r(238);e.exports=r(5).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},function(e,t,r){"use strict";var n=r(418),i=r(233),s=r(56),a=r(37);e.exports=r(143)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,r):"values"==t?i(0,e[r]):i(0,[r,e[r]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},function(e,t,r){"use strict";var n=r(423),i=r(58);e.exports=r(139)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=n.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return n.def(i(this,"Map"),0===e?0:e,t)}},n,!0)},function(e,t,r){"use strict";var n=r(12);n(n.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,r){"use strict";var n=r(12);n(n.S+n.F,"Object",{assign:r(234)})},function(e,t,r){"use strict";var n=r(12);n(n.S,"Object",{create:r(90)})},function(e,t,r){"use strict";var n=r(94),i=r(44);r(434)("keys",function(){return function(e){return i(n(e))}})},function(e,t,r){"use strict";var n=r(12);n(n.S,"Object",{setPrototypeOf:r(435).set})},function(e,t,r){"use strict";var n,i=r(137)(0),s=r(147),a=r(57),o=r(234),u=r(229),l=r(16),c=r(27),f=r(58),p=a.getWeak,d=Object.isExtensible,h=u.ufstore,m={},y=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},v={get:function(e){if(l(e)){var t=p(e);return!0===t?h(f(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(f(this,"WeakMap"),e,t)}},g=e.exports=r(139)("WeakMap",y,v,u,!0,!0);c(function(){return 7!=(new g).set((Object.freeze||Object)(m),7).get(m)})&&(n=u.getConstructor(y,"WeakMap"),o(n.prototype,v),a.NEED=!0,i(["delete","has","get","set"],function(e){var t=g.prototype,r=t[e];s(t,e,function(t,i){if(l(t)&&!d(t)){this._f||(this._f=new n);var s=this._f[e](t,i);return"set"==e?this:s}return r.call(this,t,i)})}))},function(e,t,r){"use strict"
;var n=r(229),i=r(58);r(139)("WeakSet",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return n.def(i(this,"WeakSet"),e,!0)}},n,!1,!0)},function(e,t,r){"use strict";r(148)("Map")},function(e,t,r){"use strict";r(149)("Map")},function(e,t,r){"use strict";var n=r(12);n(n.P+n.R,"Map",{toJSON:r(424)("Map")})},function(e,t,r){"use strict";r(155)("asyncIterator")},function(e,t,r){"use strict";r(155)("observable")},function(e,t,r){"use strict";r(148)("WeakMap")},function(e,t,r){"use strict";r(149)("WeakMap")},function(e,t,r){"use strict";r(148)("WeakSet")},function(e,t,r){"use strict";r(149)("WeakSet")},function(e,t,r){"use strict";function n(e){var r,n=0;for(r in e)n=(n<<5)-n+e.charCodeAt(r),n|=0;return t.colors[Math.abs(n)%t.colors.length]}function i(e){function r(){if(r.enabled){var e=r,n=+new Date,i=n-(l||n);e.diff=i,e.prev=l,e.curr=n,l=n;for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&s.unshift("%O");var o=0;s[0]=s[0].replace(/%([a-zA-Z%])/g,function(r,n){if("%%"===r)return r;o++;var i=t.formatters[n];if("function"==typeof i){var a=s[o];r=i.call(e,a),s.splice(o,1),o--}return r}),t.formatArgs.call(e,s);(r.log||t.log||console.log.bind(console)).apply(e,s)}}return r.namespace=e,r.enabled=t.enabled(e),r.useColors=t.useColors(),r.color=n(e),"function"==typeof t.init&&t.init(r),r}function s(e){t.save(e),t.names=[],t.skips=[];for(var r=("string"==typeof e?e:"").split(/[\s,]+/),n=r.length,i=0;i<n;i++)r[i]&&(e=r[i].replace(/\*/g,".*?"),"-"===e[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))}function a(){t.enable("")}function o(e){var r,n;for(r=0,n=t.skips.length;r<n;r++)if(t.skips[r].test(e))return!1;for(r=0,n=t.names.length;r<n;r++)if(t.names[r].test(e))return!0;return!1}function u(e){return e instanceof Error?e.stack||e.message:e}t=e.exports=i.debug=i.default=i,t.coerce=u,t.disable=a,t.enable=s,t.enabled=o,t.humanize=r(602),t.names=[],t.skips=[],t.formatters={};var l},function(e,t,r){"use strict";function n(e){var t=0,r=0,n=0;for(var i in e){var s=e[i],a=s[0],o=s[1];(a>r||a===r&&o>n)&&(r=a,n=o,t=Number(i))}return t}var i=r(615),s=/^(?:( )+|\t+)/;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");var t,r,a=0,o=0,u=0,l={};e.split(/\n/g).forEach(function(e){if(e){var n,i=e.match(s);i?(n=i[0].length,i[1]?o++:a++):n=0;var c=n-u;u=n,c?(r=c>0,t=l[r?c:-c],t?t[0]++:t=l[c]=[1,0]):t&&(t[1]+=Number(r))}});var c,f,p=n(l);return p?o>=a?(c="space",f=i(" ",p)):(c="tab",f=i("\t",p)):(c=null,f=""),{amount:p,type:c,indent:f}}},function(e,t){"use strict";var r=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(r,"\\$&")}},function(e,t){"use strict";!function(){function t(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function r(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function n(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function i(e){return n(e)||null!=e&&"FunctionDeclaration"===e.type}function s(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}function a(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=s(t)}while(t);return!1}e.exports={isExpression:t,isStatement:n,isIterationStatement:r,isSourceElement:i,isProblematicIfStatement:a,trailingStatement:s}}()},function(e,t,r){"use strict";!function(){function t(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function n(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,r){if(r&&t(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function s(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function o(e){return"eval"===e||"arguments"===e}function u(e){var t,r,n;if(0===e.length)return!1;if(n=e.charCodeAt(0),!d.isIdentifierStartES5(n))return!1;for(t=1,r=e.length;t<r;++t)if(n=e.charCodeAt(t),!d.isIdentifierPartES5(n))return!1;return!0}function l(e,t){return 1024*(e-55296)+(t-56320)+65536}function c(e){var t,r,n,i,s;if(0===e.length)return!1;for(s=d.isIdentifierStartES6,t=0,r=e.length;t<r;++t){if(55296<=(n=e.charCodeAt(t))&&n<=56319){if(++t>=r)return!1;if(!(56320<=(i=e.charCodeAt(t))&&i<=57343))return!1;n=l(n,i)}if(!s(n))return!1;s=d.isIdentifierPartES6}return!0}function f(e,t){return u(e)&&!s(e,t)}function p(e,t){return c(e)&&!a(e,t)}var d=r(240);e.exports={isKeywordES5:n,isKeywordES6:i,isReservedWordES5:s,isReservedWordES6:a,isRestrictedWord:o,isIdentifierNameES5:u,isIdentifierNameES6:c,isIdentifierES5:f,isIdentifierES6:p}}()},function(e,t,r){"use strict";e.exports=r(630)},function(e,t,r){"use strict";var n=r(180),i=new RegExp(n().source);e.exports=i.test.bind(i)},function(e,t){"use strict";t.read=function(e,t,r,n,i){var s,a,o=8*i-n-1,u=(1<<o)-1,l=u>>1,c=-7,f=r?i-1:0,p=r?-1:1,d=e[t+f];for(f+=p,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+e[t+f],f+=p,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=n;c>0;a=256*a+e[t+f],f+=p,c-=8);if(0===s)s=1-l;else{if(s===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),s-=l}return(d?-1:1)*a*Math.pow(2,s-n)},t.write=function(e,t,r,n,i,s){var a,o,u,l=8*s-i-1,c=(1<<l)-1,f=c>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,h=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),t+=a+f>=1?p/u:p*Math.pow(2,1-f),t*u>=2&&(a++,u/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(t*u-1)*Math.pow(2,i),a+=f):(o=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[r+d]=255&o,d+=h,o/=256,i-=8);for(a=a<<i|o,l+=i;l>0;e[r+d]=255&a,d+=h,a/=256,l-=8);e[r+d-h]|=128*m}},function(e,t,r){"use strict";var n=function(e,t,r,n,i,s,a,o){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,n,i,s,a,o],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};e.exports=n},function(e,t,r){"use strict";var n=r(603);e.exports=Number.isFinite||function(e){return!("number"!=typeof e||n(e)||e===1/0||e===-1/0)}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,t.matchToToken=function(e){var t={type:"invalid",value:e[0]};return e[1]?(t.type="string",t.closed=!(!e[3]&&!e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(a){var o="object"==s(t)&&t,u="object"==s(e)&&e&&e.exports==o&&e,l="object"==(void 0===i?"undefined":s(i))&&i;l.global!==l&&l.window!==l||(a=l);var c={},f=c.hasOwnProperty,p=function(e,t){var r;for(r in e)f.call(e,r)&&t(r,e[r])},d=function(e,t){return t?(p(t,function(t,r){e[t]=r}),e):e},h=function(e,t){for(var r=e.length,n=-1;++n<r;)t(e[n])},m=c.toString,y=function(e){return"[object Array]"==m.call(e)},v=function(e){return"[object Object]"==m.call(e)},g=function(e){return"string"==typeof e||"[object String]"==m.call(e)},b=function(e){return"number"==typeof e||"[object Number]"==m.call(e)},E=function(e){return"function"==typeof e||"[object Function]"==m.call(e)},x=function(e){return"[object Map]"==m.call(e)},A=function(e){return"[object Set]"==m.call(e)},S={'"':'\\"',"'":"\\'","\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},_=/["'\\\b\f\n\r\t]/,D=/[0-9]/,C=/[ !#-&\(-\[\]-~]/,w=function e(t,r){var n={escapeEverything:!1,escapeEtago:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:"\t",__indent__:"",__inline1__:!1,__inline2__:!1},i=r&&r.json;i&&(n.quotes="double",n.wrap=!0),r=d(n,r),"single"!=r.quotes&&"double"!=r.quotes&&(r.quotes="single");var s,a="double"==r.quotes?'"':"'",o=r.compact,u=r.indent,l=r.lowercaseHex,c="",f=r.__inline1__,m=r.__inline2__,w=o?"":"\n",P=!0,k="binary"==r.numbers,F="octal"==r.numbers,T="decimal"==r.numbers,O="hexadecimal"==r.numbers;if(i&&t&&E(t.toJSON)&&(t=t.toJSON()),!g(t)){if(x(t))return 0==t.size?"new Map()":(o||(r.__inline1__=!0),"new Map("+e(Array.from(t),r)+")");if(A(t))return 0==t.size?"new Set()":"new Set("+e(Array.from(t),r)+")";if(y(t))return s=[],r.wrap=!0,f?(r.__inline1__=!1,r.__inline2__=!0):(c=r.__indent__,u+=c,r.__indent__=u),h(t,function(t){P=!1,m&&(r.__inline2__=!1),s.push((o||m?"":u)+e(t,r))}),P?"[]":m?"["+s.join(", ")+"]":"["+w+s.join(","+w)+w+(o?"":c)+"]";if(!b(t))return v(t)?(s=[],r.wrap=!0,c=r.__indent__,u+=c,r.__indent__=u,p(t,function(t,n){P=!1,s.push((o?"":u)+e(t,r)+":"+(o?"":" ")+e(n,r))}),P?"{}":"{"+w+s.join(","+w)+w+(o?"":c)+"}"):i?JSON.stringify(t)||"null":String(t);if(i)return JSON.stringify(t);if(T)return String(t);if(O){var B=t.toString(16);return l||(B=B.toUpperCase()),"0x"+B}if(k)return"0b"+t.toString(2);if(F)return"0o"+t.toString(8)}var R,I,M,N=t,L=-1,j=N.length;for(s="";++L<j;){var U=N.charAt(L);if(r.es6&&(R=N.charCodeAt(L))>=55296&&R<=56319&&j>L+1&&(I=N.charCodeAt(L+1))>=56320&&I<=57343){M=1024*(R-55296)+I-56320+65536;var V=M.toString(16);l||(V=V.toUpperCase()),s+="\\u{"+V+"}",L++}else{if(!r.escapeEverything){if(C.test(U)){s+=U;continue}if('"'==U){s+=a==U?'\\"':U;continue}if("'"==U){s+=a==U?"\\'":U;continue}}if("\0"!=U||i||D.test(N.charAt(L+1)))if(_.test(U))s+=S[U];else{var G=U.charCodeAt(0),V=G.toString(16);l||(V=V.toUpperCase());var W=V.length>2||i,Y="\\"+(W?"u":"x")+("0000"+V).slice(W?-4:-2);s+=Y}else s+="\\0"}}return r.wrap&&(s=a+s+a),r.escapeEtago?s.replace(/<\/(script|style)/gi,"<\\/$1"):s};w.version="1.3.0","object"==s(r(49))&&r(49)?void 0!==(n=function(){return w}.call(t,r,t,e))&&(e.exports=n):o&&!o.nodeType?u?u.exports=w:o.jsesc=w:a.jsesc=w}(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i="object"===n(t)?t:{};i.parse=function(){var e,t,r,i,s,a,o={"'":"'",'"':'"',"\\":"\\","/":"/","\n":"",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},u=[" ","\t","\r","\n","\v","\f"," ","\ufeff"],l=function(e){return""===e?"EOF":"'"+e+"'"},c=function(n){var i=new SyntaxError;throw i.message=n+" at line "+t+" column "+r+" of the JSON5 data. Still to read: "+JSON.stringify(s.substring(e-1,e+19)),i.at=e,i.lineNumber=t,i.columnNumber=r,i},f=function(n){return n&&n!==i&&c("Expected "+l(n)+" instead of "+l(i)),i=s.charAt(e),e++,r++,("\n"===i||"\r"===i&&"\n"!==p())&&(t++,r=0),i},p=function(){return s.charAt(e)},d=function(){var e=i;for("_"!==i&&"$"!==i&&(i<"a"||i>"z")&&(i<"A"||i>"Z")&&c("Bad identifier as unquoted key");f()&&("_"===i||"$"===i||i>="a"&&i<="z"||i>="A"&&i<="Z"||i>="0"&&i<="9");)e+=i;return e},h=function(){var e,t="",r="",n=10;if("-"!==i&&"+"!==i||(t=i,f(i)),"I"===i)return e=E(),("number"!=typeof e||isNaN(e))&&c("Unexpected word for number"),"-"===t?-e:e;if("N"===i)return e=E(),isNaN(e)||c("expected word to be NaN"),e;switch("0"===i&&(r+=i,f(),"x"===i||"X"===i?(r+=i,f(),n=16):i>="0"&&i<="9"&&c("Octal literal")),n){case 10:for(;i>="0"&&i<="9";)r+=i,f();if("."===i)for(r+=".";f()&&i>="0"&&i<="9";)r+=i;if("e"===i||"E"===i)for(r+=i,f(),"-"!==i&&"+"!==i||(r+=i,f());i>="0"&&i<="9";)r+=i,f();break;case 16:for(;i>="0"&&i<="9"||i>="A"&&i<="F"||i>="a"&&i<="f";)r+=i,f()}if(e="-"===t?-r:+r,isFinite(e))return e;c("Bad number")},m=function(){var e,t,r,n,s="";if('"'===i||"'"===i)for(r=i;f();){if(i===r)return f(),s;if("\\"===i)if(f(),"u"===i){for(n=0,t=0;t<4&&(e=parseInt(f(),16),isFinite(e));t+=1)n=16*n+e;s+=String.fromCharCode(n)}else if("\r"===i)"\n"===p()&&f();else{if("string"!=typeof o[i])break;s+=o[i]}else{if("\n"===i)break;s+=i}}c("Bad string")},y=function(){"/"!==i&&c("Not an inline comment");do{if(f(),"\n"===i||"\r"===i)return void f()}while(i)},v=function(){"*"!==i&&c("Not a block comment");do{for(f();"*"===i;)if(f("*"),"/"===i)return void f("/")}while(i);c("Unterminated block comment")},g=function(){"/"!==i&&c("Not a comment"),f("/"),"/"===i?y():"*"===i?v():c("Unrecognized comment")},b=function(){for(;i;)if("/"===i)g();else{if(!(u.indexOf(i)>=0))return;f()}},E=function(){switch(i){case"t":return f("t"),f("r"),f("u"),f("e"),!0;case"f":return f("f"),f("a"),f("l"),f("s"),f("e"),!1;case"n":return f("n"),f("u"),f("l"),f("l"),null;case"I":return f("I"),f("n"),f("f"),f("i"),f("n"),f("i"),f("t"),f("y"),1/0;case"N":return f("N"),f("a"),f("N"),NaN}c("Unexpected "+l(i))},x=function(){var e=[];if("["===i)for(f("["),b();i;){if("]"===i)return f("]"),e;if(","===i?c("Missing array element"):e.push(a()),b(),","!==i)return f("]"),e;f(","),b()}c("Bad array")},A=function(){var e,t={};if("{"===i)for(f("{"),b();i;){if("}"===i)return f("}"),t;if(e='"'===i||"'"===i?m():d(),b(),f(":"),t[e]=a(),b(),","!==i)return f("}"),t;f(","),b()}c("Bad object")};return a=function(){switch(b(),i){case"{":return A();case"[":return x();case'"':case"'":return m();case"-":case"+":case".":return h();default:return i>="0"&&i<="9"?h():E()}},function(o,u){var l;return s=String(o),e=0,t=1,r=1,i=" ",l=a(),b(),i&&c("Syntax error"),"function"==typeof u?function e(t,r){var i,s,a=t[r];if(a&&"object"===(void 0===a?"undefined":n(a)))for(i in a)Object.prototype.hasOwnProperty.call(a,i)&&(s=e(a,i),void 0!==s?a[i]=s:delete a[i]);return u.call(t,r,a)}({"":l},""):l}}(),i.stringify=function(e,t,r){function s(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e||"$"===e}function a(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e||"$"===e}function o(e){if("string"!=typeof e)return!1;if(!a(e[0]))return!1;for(var t=1,r=e.length;t<r;){if(!s(e[t]))return!1;t++}return!0}function u(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}function l(e){return"[object Date]"===Object.prototype.toString.call(e)}function c(e){for(var t=0;t<y.length;t++)if(y[t]===e)throw new TypeError("Converting circular structure to JSON")}function f(e,t,r){if(!e)return"";e.length>10&&(e=e.substring(0,10));for(var n=r?"":"\n",i=0;i<t;i++)n+=e;return n}function p(e){return v.lastIndex=0,v.test(e)?'"'+e.replace(v,function(e){var t=g[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function d(e,t,r){var i,s,a=h(e,t,r);switch(a&&!l(a)&&(a=a.valueOf()),void 0===a?"undefined":n(a)){case"boolean":return a.toString();case"number":return isNaN(a)||!isFinite(a)?"null":a.toString();case"string":return p(a.toString());case"object":if(null===a)return"null";if(u(a)){c(a),i="[",y.push(a);for(var v=0;v<a.length;v++)s=d(a,v,!1),i+=f(m,y.length),i+=null===s||void 0===s?"null":s,v<a.length-1?i+=",":m&&(i+="\n");y.pop(),a.length&&(i+=f(m,y.length,!0)),i+="]"}else{c(a),i="{";var g=!1;y.push(a);for(var b in a)if(a.hasOwnProperty(b)){var E=d(a,b,!1);r=!1,void 0!==E&&null!==E&&(i+=f(m,y.length),g=!0,t=o(b)?b:p(b),i+=t+":"+(m?" ":"")+E+",")}y.pop(),i=g?i.substring(0,i.length-1)+f(m,y.length)+"}":"{}"}return i;default:return}}if(t&&"function"!=typeof t&&!u(t))throw new Error("Replacer must be a function or an array");var h=function(e,r,n){var i=e[r];return i&&i.toJSON&&"function"==typeof i.toJSON&&(i=i.toJSON()),"function"==typeof t?t.call(e,r,i):t?n||u(e)||t.indexOf(r)>=0?i:void 0:i};i.isWord=o;var m,y=[];r&&("string"==typeof r?m=r:"number"==typeof r&&r>=0&&(m=f(" ",r,!0)));var v=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,g={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},b={"":e};return void 0===e?h(b,"",!0):d(b,"",!0)}},function(e,t){"use strict";var r=[],n=[];e.exports=function(e,t){if(e===t)return 0;var i=e.length,s=t.length;if(0===i)return s;if(0===s)return i;for(var a,o,u,l,c=0,f=0;c<i;)n[c]=e.charCodeAt(c),r[c]=++c;for(;f<s;)for(a=t.charCodeAt(f),u=f++,o=f,c=0;c<i;c++)l=a===n[c]?u:u+1,u=r[c],o=r[c]=u>o?l>o?o+1:l:l>u?u+1:l;return o}},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"DataView");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(536),s=r(537),a=r(538),o=r(539),u=r(540);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Promise");e.exports=s},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"WeakMap");e.exports=s},function(e,t){"use strict";function r(e,t){return e.set(t[0],t[1]),e}e.exports=r},function(e,t){"use strict";function r(e,t){return e.add(t),e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length,i=0,s=[];++r<n;){var a=e[r];t(a,r,e)&&(s[i++]=a)}return s}e.exports=r},function(e,t,r){"use strict";function n(e,t){return!!(null==e?0:e.length)&&i(e,t,0)>-1}var i=r(166);e.exports=n},function(e,t){"use strict";function r(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}e.exports=r},function(e,t,r){"use strict";function n(e,t){return e&&i(t,s(t),e)}var i=r(31),s=r(32);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&i(t,s(t),e)}var i=r(31),s=r(47);e.exports=n},function(e,t){"use strict";function r(e,t,r){return e===e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}e.exports=r},function(e,t,r){"use strict";var n=r(18),i=Object.create,s=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();e.exports=s},function(e,t,r){"use strict";var n=r(489),i=r(526),s=i(n);e.exports=s},function(e,t,r){"use strict";function n(e,t,r,a,o){var u=-1,l=e.length;for(r||(r=s),o||(o=[]);++u<l;){var c=e[u];t>0&&r(c)?t>1?n(c,t-1,r,a,o):i(o,c):a||(o[o.length]=c)}return o}var i=r(161),s=r(543);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&i(e,t,s)}var i=r(248),s=r(32);e.exports=n},function(e,t){"use strict";function r(e,t){return null!=e&&i.call(e,t)}var n=Object.prototype,i=n.hasOwnProperty;e.exports=r},function(e,t){"use strict";function r(e,t){return null!=e&&t in Object(e)}e.exports=r},function(e,t){"use strict";function r(e,t,r,n){for(var i=r-1,s=e.length;++i<s;)if(n(e[i],t))return i;return-1}e.exports=r},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)==a}var i=r(30),s=r(25),a="[object Arguments]";e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,y,g){var b=l(e),E=l(t),x=b?h:u(e),A=E?h:u(t);x=x==d?m:x,A=A==d?m:A;var S=x==m,_=A==m,D=x==A;if(D&&c(e)){if(!c(t))return!1;b=!0,S=!1}if(D&&!S)return g||(g=new i),b||f(e)?s(e,t,r,n,y,g):a(e,t,x,r,n,y,g);if(!(r&p)){var C=S&&v.call(e,"__wrapped__"),w=_&&v.call(t,"__wrapped__");if(C||w){var P=C?e.value():e,k=w?t.value():t;return g||(g=new i),y(P,k,r,n,g)}}return!!D&&(g||(g=new i),o(e,t,r,n,y,g))}var i=r(99),s=r(260),a=r(530),o=r(531),u=r(264),l=r(6),c=r(113),f=r(177),p=1,d="[object Arguments]",h="[object Array]",m="[object Object]",y=Object.prototype,v=y.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var u=r.length,l=u,c=!n;if(null==e)return!l;for(e=Object(e);u--;){var f=r[u];if(c&&f[2]?f[1]!==e[f[0]]:!(f[0]in e))return!1}for(;++u<l;){f=r[u];var p=f[0],d=e[p],h=f[1];if(c&&f[2]){if(void 0===d&&!(p in e))return!1}else{var m=new i;if(n)var y=n(d,h,p,e,t,m);if(!(void 0===y?s(h,d,a|o,n,m):y))return!1}}return!0}var i=r(99),s=r(251),a=1,o=2;e.exports=n},function(e,t){"use strict";function r(e){return e!==e}e.exports=r},function(e,t,r){"use strict";function n(e){return!(!a(e)||s(e))&&(i(e)?h:l).test(o(e))}var i=r(175),s=r(545),a=r(18),o=r(272),u=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,c=Function.prototype,f=Object.prototype,p=c.toString,d=f.hasOwnProperty,h=RegExp("^"+p.call(d).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=n},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)==a}var i=r(30),s=r(25),a="[object RegExp]";e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)&&s(e.length)&&!!o[i(e)]}var i=r(30),s=r(176),a=r(25),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,e.exports=n},function(e,t,r){"use strict";function n(e){if(!i(e))return s(e);var t=[];for(var r in Object(e))o.call(e,r)&&"constructor"!=r&&t.push(r);return t}var i=r(105),s=r(557),a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){if(!i(e))return a(e);var t=s(e),r=[];for(var n in e)("constructor"!=n||!t&&u.call(e,n))&&r.push(n);return r}var i=r(18),s=r(105),a=r(558),o=Object.prototype,u=o.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){var t=s(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(r){return r===e||i(r,e,t)}}var i=r(495),s=r(533),a=r(269);e.exports=n},function(e,t,r){"use strict";function n(e,t){return o(e)&&u(t)?l(c(e),t):function(r){var n=s(r,e);return void 0===n&&n===t?a(r,e):i(t,n,f|p)}}var i=r(251),s=r(583),a=r(584),o=r(173),u=r(267),l=r(269),c=r(108),f=1,p=2;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,c,f){e!==t&&a(t,function(a,l){if(u(a))f||(f=new i),o(e,t,l,r,n,c,f);else{var p=c?c(e[l],a,l+"",e,t,f):void 0;void 0===p&&(p=a),s(e,l,p)}},l)}var i=r(99),s=r(247),a=r(248),o=r(505),u=r(18),l=r(47);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,g,b,E){var x=e[r],A=t[r],S=E.get(A);if(S)return void i(e,r,S);var _=b?b(x,A,r+"",e,t,E):void 0,D=void 0===_;if(D){var C=c(A),w=!C&&p(A),P=!C&&!w&&y(A);_=A,C||w||P?c(x)?_=x:f(x)?_=o(x):w?(D=!1,_=s(A,!0)):P?(D=!1,_=a(A,!0)):_=[]:m(A)||l(A)?(_=x,l(x)?_=v(x):(!h(x)||n&&d(x))&&(_=u(A))):D=!1}D&&(E.set(A,_),g(_,A,n,b,E),E.delete(A)),i(e,r,_)}var i=r(247),s=r(256),a=r(257),o=r(168),u=r(266),l=r(112),c=r(6),f=r(585),p=r(113),d=r(175),h=r(18),m=r(275),y=r(177),v=r(599);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=-1;t=i(t.length?t:[c],u(s));var f=a(e,function(e,r,s){return{criteria:i(t,function(t){return t(e)}),index:++n,value:e}});return o(f,function(e,t){return l(e,t,r)})}var i=r(60),s=r(61),a=r(252),o=r(512),u=r(102),l=r(522),c=r(110);e.exports=n},function(e,t){"use strict";function r(e){return function(t){return null==t?void 0:t[e]}}e.exports=r},function(e,t,r){"use strict";function n(e){return function(t){return i(t,e)}}var i=r(249);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var l=n?a:s,f=-1,p=t.length,d=e;for(e===t&&(t=u(t)),r&&(d=i(e,o(r)));++f<p;)for(var h=0,m=t[f],y=r?r(m):m;(h=l(d,y,h,n))>-1;)d!==e&&c.call(d,h,1),c.call(e,h,1);return e}var i=r(60),s=r(166),a=r(492),o=r(102),u=r(168),l=Array.prototype,c=l.splice;e.exports=n},function(e,t){"use strict";function r(e,t){var r="";if(!e||t<1||t>n)return r;do{t%2&&(r+=e),(t=i(t/2))&&(e+=e)}while(t);return r}var n=9007199254740991,i=Math.floor;e.exports=r},function(e,t,r){"use strict";var n=r(576),i=r(259),s=r(110),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:s;e.exports=a},function(e,t){"use strict";function r(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=-1,f=s,p=e.length,d=!0,h=[],m=h;if(r)d=!1,f=a;else if(p>=c){var y=t?null:u(e);if(y)return l(y);d=!1,f=o,m=new i}else m=t?[]:h;e:for(;++n<p;){var v=e[n],g=t?t(v):v;if(v=r||0!==v?v:0,d&&g===g){for(var b=m.length;b--;)if(m[b]===g)continue e;t&&m.push(g),h.push(v)}else f(m,g,r)||(m!==h&&m.push(g),h.push(v))}return h}var i=r(242),s=r(480),a=r(481),o=r(254),u=r(528),l=r(107),c=200;e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(t,function(t){return e[t]})}var i=r(60);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var i=r(167);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=t?r(a(e),o):a(e);return s(n,i,new e.constructor)}var i=r(476),s=r(246),a=r(268),o=1;e.exports=n},function(e,t){"use strict";function r(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}var n=/\w*$/;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=t?r(a(e),o):a(e);return s(n,i,new e.constructor)}var i=r(477),s=r(246),a=r(107),o=1;e.exports=n},function(e,t,r){"use strict";function n(e){return a?Object(a.call(e)):{}}var i=r(45),s=i?i.prototype:void 0,a=s?s.valueOf:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t){if(e!==t){var r=void 0!==e,n=null===e,s=e===e,a=i(e),o=void 0!==t,u=null===t,l=t===t,c=i(t);if(!u&&!c&&!a&&e>t||a&&o&&l&&!u&&!c||n&&o&&l||!r&&l||!s)return 1;if(!n&&!a&&!c&&e<t||c&&r&&s&&!n&&!a||u&&r&&s||!o&&s||!l)return-1}return 0}var i=r(62);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){for(var n=-1,s=e.criteria,a=t.criteria,o=s.length,u=r.length;++n<o;){var l=i(s[n],a[n]);if(l){if(n>=u)return l;return l*("desc"==r[n]?-1:1)}}return e.index-t.index}var i=r(521);e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(e,s(e),t)}var i=r(31),s=r(170);e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(e,s(e),t)}var i=r(31),s=r(263);e.exports=n},function(e,t,r){"use strict";var n=r(17),i=n["__core-js_shared__"];e.exports=i},function(e,t,r){"use strict";function n(e,t){return function(r,n){if(null==r)return r;if(!i(r))return e(r,n);for(var s=r.length,a=t?s:-1,o=Object(r);(t?a--:++a<s)&&!1!==n(o[a],a,o););return r}}var i=r(24);e.exports=n},function(e,t){"use strict";function r(e){return function(t,r,n){for(var i=-1,s=Object(t),a=n(t),o=a.length;o--;){var u=a[e?o:++i];if(!1===r(s[u],u,s))break}return t}}e.exports=r},function(e,t,r){"use strict";var n=r(241),i=r(591),s=r(107),a=n&&1/s(new n([,-0]))[1]==1/0?function(e){return new n(e)}:i;e.exports=a},function(e,t,r){"use strict";function n(e,t,r,n){return void 0===e||i(e,s[r])&&!a.call(n,r)?t:e}var i=r(46),s=Object.prototype,a=s.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,i,S,D){switch(r){case A:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case x:return!(e.byteLength!=t.byteLength||!S(new s(e),new s(t)));case p:case d:case y:return a(+e,+t);case h:return e.name==t.name&&e.message==t.message;case v:case b:return e==t+"";case m:var C=u;case g:var w=n&c;if(C||(C=l),e.size!=t.size&&!w)return!1;var P=D.get(e);if(P)return P==t;n|=f,D.set(e,t);var k=o(C(e),C(t),n,i,S,D);return D.delete(e),k;case E:if(_)return _.call(e)==_.call(t)}return!1}var i=r(45),s=r(243),a=r(46),o=r(260),u=r(268),l=r(107),c=1,f=2,p="[object Boolean]",d="[object Date]",h="[object Error]",m="[object Map]",y="[object Number]",v="[object RegExp]",g="[object Set]",b="[object String]",E="[object Symbol]",x="[object ArrayBuffer]",A="[object DataView]",S=i?i.prototype:void 0,_=S?S.valueOf:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,a,u){var l=r&s,c=i(e),f=c.length;if(f!=i(t).length&&!l)return!1;for(var p=f;p--;){var d=c[p];if(!(l?d in t:o.call(t,d)))return!1}var h=u.get(e);if(h&&u.get(t))return h==t;var m=!0;u.set(e,t),u.set(t,e);for(var y=l;++p<f;){d=c[p];var v=e[d],g=t[d];if(n)var b=l?n(g,v,d,t,e,u):n(v,g,d,e,t,u);if(!(void 0===b?v===g||a(v,g,r,n,u):b)){m=!1;break}y||(y="constructor"==d)}if(m&&!y){var E=e.constructor,x=t.constructor;E!=x&&"constructor"in e&&"constructor"in t&&!("function"==typeof E&&E instanceof E&&"function"==typeof x&&x instanceof x)&&(m=!1)}return u.delete(e),u.delete(t),m}var i=r(262),s=1,a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,a,s)}var i=r(250),s=r(263),a=r(47);e.exports=n},function(e,t,r){"use strict";function n(e){for(var t=s(e),r=t.length;r--;){var n=t[r],a=e[n];t[r]=[n,a,i(a)]}return t}var i=r(267),s=r(32);e.exports=n},function(e,t,r){"use strict";function n(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var i=o.call(e);return n&&(t?e[u]=r:delete e[u]),i}var i=r(45),s=Object.prototype,a=s.hasOwnProperty,o=s.toString,u=i?i.toStringTag:void 0;e.exports=n},function(e,t){"use strict";function r(e,t){return null==e?void 0:e[t]}e.exports=r},function(e,t,r){"use strict";function n(){this.__data__=i?i(null):{},this.size=0}var i=r(106);e.exports=n},function(e,t){"use strict";function r(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=r},function(e,t,r){"use strict";function n(e){var t=this.__data__;if(i){var r=t[e];return r===s?void 0:r}return o.call(t,e)?t[e]:void 0}var i=r(106),s="__lodash_hash_undefined__",a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict"
;function n(e){var t=this.__data__;return i?void 0!==t[e]:a.call(t,e)}var i=r(106),s=Object.prototype,a=s.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=i&&void 0===t?s:t,this}var i=r(106),s="__lodash_hash_undefined__";e.exports=n},function(e,t){"use strict";function r(e){var t=e.length,r=e.constructor(t);return t&&"string"==typeof e[0]&&i.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var n=Object.prototype,i=n.hasOwnProperty;e.exports=r},function(e,t,r){"use strict";function n(e,t,r,n){var F=e.constructor;switch(t){case b:return i(e);case f:case p:return new F(+e);case E:return s(e,n);case x:case A:case S:case _:case D:case C:case w:case P:case k:return c(e,n);case d:return a(e,n,r);case h:case v:return new F(e);case m:return o(e);case y:return u(e,n,r);case g:return l(e)}}var i=r(167),s=r(516),a=r(517),o=r(518),u=r(519),l=r(520),c=r(257),f="[object Boolean]",p="[object Date]",d="[object Map]",h="[object Number]",m="[object RegExp]",y="[object Set]",v="[object String]",g="[object Symbol]",b="[object ArrayBuffer]",E="[object DataView]",x="[object Float32Array]",A="[object Float64Array]",S="[object Int8Array]",_="[object Int16Array]",D="[object Int32Array]",C="[object Uint8Array]",w="[object Uint8ClampedArray]",P="[object Uint16Array]",k="[object Uint32Array]";e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)||s(e)||!!(o&&e&&e[o])}var i=r(45),s=r(112),a=r(6),o=i?i.isConcatSpreadable:void 0;e.exports=n},function(e,t){"use strict";function r(e){var t=void 0===e?"undefined":n(e);return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){"use strict";function n(e){return!!s&&s in e}var i=r(525),s=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=n},function(e,t){"use strict";function r(){this.__data__=[],this.size=0}e.exports=r},function(e,t,r){"use strict";function n(e){var t=this.__data__,r=i(t,e);return!(r<0)&&(r==t.length-1?t.pop():a.call(t,r,1),--this.size,!0)}var i=r(100),s=Array.prototype,a=s.splice;e.exports=n},function(e,t,r){"use strict";function n(e){var t=this.__data__,r=i(t,e);return r<0?void 0:t[r][1]}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this.__data__,e)>-1}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=this.__data__,n=i(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(){this.size=0,this.__data__={hash:new i,map:new(a||s),string:new i}}var i=r(473),s=r(98),a=r(159);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this,e).get(e)}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this,e).has(e)}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=i(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(e,function(e){return r.size===s&&r.clear(),e}),r=t.cache;return t}var i=r(589),s=500;e.exports=n},function(e,t,r){"use strict";var n=r(271),i=n(Object.keys,Object);e.exports=i},function(e,t){"use strict";function r(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}e.exports=r},function(e,t){"use strict";function r(e){return i.call(e)}var n=Object.prototype,i=n.toString;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){return t=s(void 0===t?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=s(n.length-t,0),u=Array(o);++a<o;)u[a]=n[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=n[a];return l[t]=r(u),i(e,this,l)}}var i=r(244),s=Math.max;e.exports=n},function(e,t){"use strict";function r(e){return this.__data__.set(e,n),this}var n="__lodash_hash_undefined__";e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.has(e)}e.exports=r},function(e,t,r){"use strict";var n=r(511),i=r(564),s=i(n);e.exports=s},function(e,t){"use strict";function r(e){var t=0,r=0;return function(){var a=s(),o=i-(a-r);if(r=a,o>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var n=800,i=16,s=Date.now;e.exports=r},function(e,t,r){"use strict";function n(){this.__data__=new i,this.size=0}var i=r(98);e.exports=n},function(e,t){"use strict";function r(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.get(e)}e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.has(e)}e.exports=r},function(e,t,r){"use strict";function n(e,t){var r=this.__data__;if(r instanceof i){var n=r.__data__;if(!s||n.length<o-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(n)}return r.set(e,t),this.size=r.size,this}var i=r(98),s=r(159),a=r(160),o=200;e.exports=n},function(e,t){"use strict";function r(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}e.exports=r},function(e,t,r){"use strict";var n=r(556),i=/^\./,s=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=n(function(e){var t=[];return i.test(e)&&t.push(""),e.replace(s,function(e,r,n,i){t.push(n?i.replace(a,"$1"):r||e)}),t});e.exports=o},function(e,t,r){"use strict";var n=r(31),i=r(103),s=r(47),a=i(function(e,t){n(t,s(t),e)});e.exports=a},function(e,t,r){"use strict";var n=r(31),i=r(103),s=r(47),a=i(function(e,t,r,i){n(t,s(t),e,i)});e.exports=a},function(e,t,r){"use strict";function n(e){return i(e,s|a)}var i=r(164),s=1,a=4;e.exports=n},function(e,t,r){"use strict";function n(e,t){return t="function"==typeof t?t:void 0,i(e,s|a,t)}var i=r(164),s=1,a=4;e.exports=n},function(e,t){"use strict";function r(e){return function(){return e}}e.exports=r},function(e,t,r){"use strict";function n(e){return e=i(e),e&&a.test(e)?e.replace(s,"\\$&"):e}var i=r(114),s=/[\\^$.*+?()[\]{}|]/g,a=RegExp(s.source);e.exports=n},function(e,t,r){"use strict";e.exports=r(572)},function(e,t,r){"use strict";var n=r(258),i=r(580),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var u=null==r?0:a(r);return u<0&&(u=o(n+u,0)),i(e,s(t,3),u)}var i=r(165),s=r(61),a=r(48),o=Math.max;e.exports=n},function(e,t,r){"use strict";var n=r(258),i=r(582),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var l=n-1;return void 0!==r&&(l=a(r),l=r<0?o(n+l,0):u(l,n-1)),i(e,s(t,3),l,!0)}var i=r(165),s=r(61),a=r(48),o=Math.max,u=Math.min;e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?void 0:i(e,t);return void 0===n?r:n}var i=r(249);e.exports=n},function(e,t,r){"use strict";function n(e,t){return null!=e&&s(e,t,i)}var i=r(491),s=r(265);e.exports=n},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)}var i=r(24),s=r(25);e.exports=n},function(e,t,r){"use strict";function n(e){return"number"==typeof e&&e==i(e)}var i=r(48);e.exports=n},function(e,t,r){"use strict";function n(e){return"string"==typeof e||!s(e)&&a(e)&&i(e)==o}var i=r(30),s=r(6),a=r(25),o="[object String]";e.exports=n},function(e,t,r){"use strict";function n(e,t){return(o(e)?i:a)(e,s(t,3))}var i=r(60),s=r(61),a=r(252),o=r(6);e.exports=n},function(e,t,r){"use strict";function n(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(s);var r=function r(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var a=e.apply(this,n);return r.cache=s.set(i,a)||s,a};return r.cache=new(n.Cache||i),r}var i=r(160),s="Expected a function";n.Cache=i,e.exports=n},function(e,t,r){"use strict";var n=r(504),i=r(103),s=i(function(e,t,r,i){n(e,t,r,i)});e.exports=s},function(e,t){"use strict";function r(){}e.exports=r},function(e,t,r){"use strict";function n(e){return a(e)?i(o(e)):s(e)}var i=r(507),s=r(508),a=r(173),o=r(108);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&e.length&&t&&t.length?i(e,t):e}var i=r(509);e.exports=n},function(e,t,r){"use strict";var n=r(488),i=r(506),s=r(101),a=r(172),o=s(function(e,t){if(null==e)return[];var r=t.length;return r>1&&a(e,t[0],t[1])?t=[]:r>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),i(e,n(t,1),[])});e.exports=o},function(e,t,r){"use strict";function n(e,t,r){return e=o(e),r=null==r?0:i(a(r),0,e.length),t=s(t),e.slice(r,r+t.length)==t}var i=r(485),s=r(253),a=r(48),o=r(114);e.exports=n},function(e,t){"use strict";function r(){return!1}e.exports=r},function(e,t,r){"use strict";function n(e){if(!e)return 0===e?e:0;if((e=i(e))===s||e===-s){return(e<0?-1:1)*a}return e===e?e:0}var i=r(598),s=1/0,a=1.7976931348623157e308;e.exports=n},function(e,t,r){"use strict";function n(e){if("number"==typeof e)return e;if(s(e))return a;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var r=l.test(e);return r||c.test(e)?f(e.slice(2),r?2:8):u.test(e)?a:+e}var i=r(18),s=r(62),a=NaN,o=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,f=parseInt;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,s(e))}var i=r(31),s=r(47);e.exports=n},function(e,t,r){"use strict";function n(e){return e&&e.length?i(e):[]}var i=r(514);e.exports=n},function(e,t,r){"use strict";function n(e,t){return t=t||{},function(r,n,i){return s(r,e,t)}}function i(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach(function(e){r[e]=t[e]}),Object.keys(e).forEach(function(t){r[t]=e[t]}),r}function s(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new a(t,r).match(e))}function a(e,t){if(!(this instanceof a))return new a(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==m.sep&&(e=e.split(m.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function o(){if(!this._made){var e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error),this.debug(this.pattern,r),r=this.globParts=r.map(function(e){return e.split(_)}),this.debug(this.pattern,r),r=r.map(function(e,t,r){return e.map(this.parse,this)},this),this.debug(this.pattern,r),r=r.filter(function(e){return-1===e.indexOf(!1)}),this.debug(this.pattern,r),this.set=r}}function u(){var e=this.pattern,t=!1,r=this.options,n=0;if(!r.nonegate){for(var i=0,s=e.length;i<s&&"!"===e.charAt(i);i++)t=!t,n++;n&&(this.pattern=e.substr(n)),this.negate=t}}function l(e,t){if(t||(t=this instanceof a?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:v(e)}function c(e,t){function r(){if(i){switch(i){case"*":a+=E,o=!0;break;case"?":a+=b,o=!0;break;default:a+="\\"+i}v.debug("clearStateChar %j %j",i,a),i=!1}}if(e.length>65536)throw new TypeError("pattern is too long");var n=this.options;if(!n.noglobstar&&"**"===e)return y;if(""===e)return"";for(var i,s,a="",o=!!n.nocase,u=!1,l=[],c=[],f=!1,p=-1,h=-1,m="."===e.charAt(0)?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",v=this,x=0,A=e.length;x<A&&(s=e.charAt(x));x++)if(this.debug("%s\t%s %s %j",e,x,a,s),u&&S[s])a+="\\"+s,u=!1;else switch(s){case"/":return!1;case"\\":r(),u=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s\t%s %s %j <-- stateChar",e,x,a,s),f){this.debug("  in class"),"!"===s&&x===h+1&&(s="^"),a+=s;continue}v.debug("call clearStateChar %j",i),r(),i=s,n.noext&&r();continue;case"(":if(f){a+="(";continue}if(!i){a+="\\(";continue}l.push({type:i,start:x-1,reStart:a.length,open:g[i].open,close:g[i].close}),a+="!"===i?"(?:(?!(?:":"(?:",this.debug("plType %j %j",i,a),i=!1;continue;case")":if(f||!l.length){a+="\\)";continue}r(),o=!0;var _=l.pop();a+=_.close,"!"===_.type&&c.push(_),_.reEnd=a.length;continue;case"|":if(f||!l.length||u){a+="\\|",u=!1;continue}r(),a+="|";continue;case"[":if(r(),f){a+="\\"+s;continue}f=!0,h=x,p=a.length,a+=s;continue;case"]":if(x===h+1||!f){a+="\\"+s,u=!1;continue}if(f){var C=e.substring(h+1,x);try{RegExp("["+C+"]")}catch(e){var w=this.parse(C,D);a=a.substr(0,p)+"\\["+w[0]+"\\]",o=o||w[1],f=!1;continue}}o=!0,f=!1,a+=s;continue;default:r(),u?u=!1:!S[s]||"^"===s&&f||(a+="\\"),a+=s}for(f&&(C=e.substr(h+1),w=this.parse(C,D),a=a.substr(0,p)+"\\["+w[0],o=o||w[1]),_=l.pop();_;_=l.pop()){var P=a.slice(_.reStart+_.open.length);this.debug("setting tail",a,_),P=P.replace(/((?:\\{2}){0,64})(\\?)\|/g,function(e,t,r){return r||(r="\\"),t+t+r+"|"}),this.debug("tail=%j\n   %s",P,P,_,a);var k="*"===_.type?E:"?"===_.type?b:"\\"+_.type;o=!0,a=a.slice(0,_.reStart)+k+"\\("+P}r(),u&&(a+="\\\\");var F=!1;switch(a.charAt(0)){case".":case"[":case"(":F=!0}for(var T=c.length-1;T>-1;T--){var O=c[T],B=a.slice(0,O.reStart),R=a.slice(O.reStart,O.reEnd-8),I=a.slice(O.reEnd-8,O.reEnd),M=a.slice(O.reEnd);I+=M;var N=B.split("(").length-1,L=M;for(x=0;x<N;x++)L=L.replace(/\)[+*?]?/,"");M=L;var j="";""===M&&t!==D&&(j="$");a=B+R+M+j+I}if(""!==a&&o&&(a="(?=.)"+a),F&&(a=m+a),t===D)return[a,o];if(!o)return d(e);var U=n.nocase?"i":"";try{var V=new RegExp("^"+a+"$",U)}catch(e){return new RegExp("$.")}return V._glob=e,V._src=a,V}function f(){if(this.regexp||!1===this.regexp)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,r=t.noglobstar?E:t.dot?x:A,n=t.nocase?"i":"",i=e.map(function(e){return e.map(function(e){return e===y?r:"string"==typeof e?h(e):e._src}).join("\\/")}).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,n)}catch(e){this.regexp=!1}return this.regexp}function p(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==m.sep&&(e=e.split(m.sep).join("/")),e=e.split(_),this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var i,s;for(s=e.length-1;s>=0&&!(i=e[s]);s--);for(s=0;s<n.length;s++){var a=n[s],o=e;r.matchBase&&1===a.length&&(o=[i]);if(this.matchOne(o,a,t))return!!r.flipNegate||!this.negate}return!r.flipNegate&&this.negate}function d(e){return e.replace(/\\(.)/g,"$1")}function h(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}e.exports=s,s.Minimatch=a;var m={sep:"/"};try{m=r(19)}catch(e){}var y=s.GLOBSTAR=a.GLOBSTAR={},v=r(398),g={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},b="[^/]",E=b+"*?",x="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",A="(?:(?!(?:\\/|^)\\.).)*?",S=function(e){return e.split("").reduce(function(e,t){return e[t]=!0,e},{})}("().*{}+?[]^$\\!"),_=/\/+/;s.filter=n,s.defaults=function(e){if(!e||!Object.keys(e).length)return s;var t=s,r=function(r,n,s){return t.minimatch(r,n,i(e,s))};return r.Minimatch=function(r,n){return new t.Minimatch(r,i(e,n))},r},a.defaults=function(e){return e&&Object.keys(e).length?s.defaults(e).Minimatch:a},a.prototype.debug=function(){},a.prototype.make=o,a.prototype.parseNegate=u,s.braceExpand=function(e,t){return l(e,t)},a.prototype.braceExpand=l,a.prototype.parse=c;var D={};s.makeRe=function(e,t){return new a(e,t||{}).makeRe()},a.prototype.makeRe=f,s.match=function(e,t,r){r=r||{};var n=new a(t,r);return e=e.filter(function(e){return n.match(e)}),n.options.nonull&&!e.length&&e.push(t),e},a.prototype.match=p,a.prototype.matchOne=function(e,t,r){var n=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var i=0,s=0,a=e.length,o=t.length;i<a&&s<o;i++,s++){this.debug("matchOne loop");var u=t[s],l=e[i];if(this.debug(t,u,l),!1===u)return!1;if(u===y){this.debug("GLOBSTAR",[t,u,l]);var c=i,f=s+1;if(f===o){for(this.debug("** at the end");i<a;i++)if("."===e[i]||".."===e[i]||!n.dot&&"."===e[i].charAt(0))return!1;return!0}for(;c<a;){var p=e[c];if(this.debug("\nglobstar while",e,c,t,f,p),this.matchOne(e.slice(c),t.slice(f),r))return this.debug("globstar found match!",c,a,p),!0;if("."===p||".."===p||!n.dot&&"."===p.charAt(0)){this.debug("dot detected!",e,c,t,f);break}this.debug("globstar swallow a segment, and continue"),c++}return!(!r||(this.debug("\n>>> no match, partial?",e,c,t,f),c!==a))}var d;if("string"==typeof u?(d=n.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,d)):(d=l.match(u),this.debug("pattern match",u,l,d)),!d)return!1}if(i===a&&s===o)return!0;if(i===a)return r;if(s===o){return i===a-1&&""===e[i]}throw new Error("wtf?")}},function(e,t){"use strict";function r(e){if(e=String(e),!(e.length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*f;case"days":case"day":case"d":return r*c;case"hours":case"hour":case"hrs":case"hr":case"h":return r*l;case"minutes":case"minute":case"mins":case"min":case"m":return r*u;case"seconds":case"second":case"secs":case"sec":case"s":return r*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function n(e){return e>=c?Math.round(e/c)+"d":e>=l?Math.round(e/l)+"h":e>=u?Math.round(e/u)+"m":e>=o?Math.round(e/o)+"s":e+"ms"}function i(e){return s(e,c,"day")||s(e,l,"hour")||s(e,u,"minute")||s(e,o,"second")||e+" ms"}function s(e,t,r){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+r:Math.ceil(e/t)+" "+r+"s"}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=1e3,u=60*o,l=60*u,c=24*l,f=365.25*c;e.exports=function(e,t){t=t||{};var s=void 0===e?"undefined":a(e);if("string"===s&&e.length>0)return r(e);if("number"===s&&!1===isNaN(e))return t.long?i(e):n(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t){"use strict";e.exports=Number.isNaN||function(e){return e!==e}},function(e,t,r){(function(t){"use strict";function r(e){return"/"===e.charAt(0)}function n(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,r=t.exec(e),n=r[1]||"",i=Boolean(n&&":"!==n.charAt(1));return Boolean(r[2]||i)}e.exports="win32"===t.platform?n:r,e.exports.posix=r,e.exports.win32=n}).call(t,r(8))},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}var i=r(14),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=r(1),o=n(a),u=r(116),l=n(u),c=Object.prototype.hasOwnProperty;t.hoist=function(e){function t(e,t){o.assertVariableDeclaration(e);var n=[];return e.declarations.forEach(function(e){r[e.id.name]=o.identifier(e.id.name),e.init?n.push(o.assignmentExpression("=",e.id,e.init)):t&&n.push(e.id)}),0===n.length?null:1===n.length?n[0]:o.sequenceExpression(n)}o.assertFunction(e.node);var r={};e.get("body").traverse({VariableDeclaration:{exit:function(e){var r=t(e.node,!1);null===r?e.remove():l.replaceWithOrRemove(e,o.expressionStatement(r)),e.skip()}},ForStatement:function(e){var r=e.node.init;o.isVariableDeclaration(r)&&l.replaceWithOrRemove(e.get("init"),t(r,!1))},ForXStatement:function(e){var r=e.get("left");r.isVariableDeclaration()&&l.replaceWithOrRemove(r,t(r.node,!0))},FunctionDeclaration:function(e){var t=e.node;r[t.id.name]=t.id;var n=o.expressionStatement(o.assignmentExpression("=",t.id,o.functionExpression(t.id,t.params,t.body,t.generator,t.expression)));e.parentPath.isBlockStatement()?(e.parentPath.unshiftContainer("body",n),e.remove()):l.replaceWithOrRemove(e,n),e.skip()},FunctionExpression:function(e){e.skip()}});var n={};e.get("params").forEach(function(e){var t=e.node;o.isIdentifier(t)&&(n[t.name]=t)});var i=[];return(0,s.default)(r).forEach(function(e){c.call(n,e)||i.push(o.variableDeclarator(r[e],null))}),0===i.length?null:o.variableDeclaration("var",i)}},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return r(610)}},function(e,t,r){"use strict";function n(){d.default.ok(this instanceof n)}function i(e){n.call(this),m.assertLiteral(e),this.returnLoc=e}function s(e,t,r){n.call(this),m.assertLiteral(e),m.assertLiteral(t),r?m.assertIdentifier(r):r=null,this.breakLoc=e,this.continueLoc=t,this.label=r}function a(e){n.call(this),m.assertLiteral(e),this.breakLoc=e}function o(e,t,r){n.call(this),m.assertLiteral(e),t?d.default.ok(t instanceof u):t=null,r?d.default.ok(r instanceof l):r=null,d.default.ok(t||r),this.firstLoc=e,this.catchEntry=t,this.finallyEntry=r}function u(e,t){n.call(this),m.assertLiteral(e),m.assertIdentifier(t),this.firstLoc=e,this.paramId=t}function l(e,t){n.call(this),m.assertLiteral(e),m.assertLiteral(t),this.firstLoc=e,this.afterLoc=t}function c(e,t){n.call(this),m.assertLiteral(e),m.assertIdentifier(t),this.breakLoc=e,this.label=t}function f(e){d.default.ok(this instanceof f);var t=r(283).Emitter;d.default.ok(e instanceof t),this.emitter=e,this.entryStack=[new i(e.finalLoc)]}var p=r(64),d=function(e){return e&&e.__esModule?e:{default:e}}(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(117);(0,y.inherits)(i,n),t.FunctionEntry=i,(0,y.inherits)(s,n),t.LoopEntry=s,(0,y.inherits)(a,n),t.SwitchEntry=a,(0,y.inherits)(o,n),t.TryEntry=o,(0,y.inherits)(u,n),t.CatchEntry=u,(0,y.inherits)(l,n),t.FinallyEntry=l,(0,y.inherits)(c,n),t.LabeledEntry=c;var v=f.prototype;t.LeapManager=f,v.withEntry=function(e,t){d.default.ok(e instanceof n),this.entryStack.push(e);try{t.call(this.emitter)}finally{var r=this.entryStack.pop();d.default.strictEqual(r,e)}},v._findLeapLocation=function(e,t){for(var r=this.entryStack.length-1;r>=0;--r){var n=this.entryStack[r],i=n[e];if(i)if(t){if(n.label&&n.label.name===t.name)return i}else if(!(n instanceof c))return i}return null},v.getBreakLoc=function(e){return this._findLeapLocation("breakLoc",e)},v.getContinueLoc=function(e){return this._findLeapLocation("continueLoc",e)}},function(e,t,r){"use strict";function n(e,t){function r(e){function t(e){return r||(Array.isArray(e)?e.some(t):o.isNode(e)&&(s.default.strictEqual(r,!1),r=n(e))),r}o.assertNode(e);var r=!1,i=o.VISITOR_KEYS[e.type];if(i)for(var a=0;a<i.length;a++){var u=i[a],l=e[u];t(l)}return r}function n(n){o.assertNode(n);var i=u(n);return l.call(i,e)?i[e]:l.call(c,n.type)?i[e]=!1:l.call(t,n.type)?i[e]=!0:i[e]=r(n)}return n.onlyChildren=r,n}var i=r(64),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a),u=r(281).makeAccessor(),l=Object.prototype.hasOwnProperty,c={FunctionExpression:!0,ArrowFunctionExpression:!0},f={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},p={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var d in p)l.call(p,d)&&(f[d]=p[d]);t.hasSideEffects=n("hasSideEffects",f),t.containsLeap=n("containsLeap",p)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){if(!e.node||!a.isFunction(e.node))throw new Error("replaceShorthandObjectMethod can only be called on Function AST node paths.");if(!a.isObjectMethod(e.node))return e;if(!e.node.generator)return e;var t=e.node.params.map(function(e){return a.cloneDeep(e)}),r=a.functionExpression(null,t,a.cloneDeep(e.node.body),e.node.generator,e.node.async);return u.replaceWithOrRemove(e,a.objectProperty(a.cloneDeep(e.node.key),r,e.node.computed,!1)),e.get("value")}t.__esModule=!0,t.default=i;var s=r(1),a=n(s),o=r(116),u=n(o)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=e.node;return f.assertFunction(t),t.id||(t.id=e.scope.parent.generateUidIdentifier("callee")),t.generator&&f.isFunctionDeclaration(t)?a(e):t.id}function a(e){var t=e.node;f.assertIdentifier(t.id);var r=e.findParent(function(e){return e.isProgram()||e.isBlockStatement()});if(!r)return t.id;var n=r.node;l.default.ok(Array.isArray(n.body));var i=g(n);i.decl||(i.decl=f.variableDeclaration("var",[]),r.unshiftContainer("body",i.decl),i.declPath=r.get("body.0")),l.default.strictEqual(i.declPath.node,i.decl);var s=r.scope.generateUidIdentifier("marked"),a=f.callExpression(v.runtimeProperty("mark"),[t.id]),o=i.decl.declarations.push(f.variableDeclarator(s,a))-1,u=i.declPath.get("declarations."+o+".init");return l.default.strictEqual(u.node,a),u.addComment("leading","#__PURE__"),s}function o(e,t){var r={didRenameArguments:!1,argsId:t};return e.traverse(b,r),r.didRenameArguments}var u=r(64),l=i(u),c=r(1),f=n(c),p=r(605),d=r(283),h=r(609),m=i(h),y=r(116),v=n(y);t.name="regenerator-transform",t.visitor={Function:{exit:function(e,t){var r=e.node;if(r.generator){if(r.async){if(!1===t.opts.asyncGenerators)return}else if(!1===t.opts.generators)return}else{if(!r.async)return;if(!1===t.opts.async)return}e=(0,m.default)(e),r=e.node;var n=e.scope.generateUidIdentifier("context"),i=e.scope.generateUidIdentifier("args");e.ensureBlock();var a=e.get("body");r.async&&a.traverse(x),a.traverse(E,{context:n});var u=[],l=[];a.get("body").forEach(function(e){var t=e.node;f.isExpressionStatement(t)&&f.isStringLiteral(t.expression)?u.push(t):t&&null!=t._blockHoist?u.push(t):l.push(t)}),u.length>0&&(a.node.body=l);var c=s(e);f.assertIdentifier(r.id);var h=f.identifier(r.id.name+"$"),y=(0,p.hoist)(e);if(o(e,i)){y=y||f.variableDeclaration("var",[]);var g=f.identifier("arguments");g._shadowedFunctionLiteral=e,y.declarations.push(f.variableDeclarator(i,g))}var b=new d.Emitter(n);b.explode(e.get("body")),y&&y.declarations.length>0&&u.push(y);var A=[b.getContextFunction(h),r.generator?c:f.nullLiteral(),f.thisExpression()],S=b.getTryLocsList();S&&A.push(S);var _=f.callExpression(v.runtimeProperty(r.async?"async":"wrap"),A);u.push(f.returnStatement(_)),r.body=f.blockStatement(u);var D=a.node.directives;D&&(r.body.directives=D);var C=r.generator;C&&(r.generator=!1),r.async&&(r.async=!1),C&&f.isExpression(r)&&(v.replaceWithOrRemove(e,f.callExpression(v.runtimeProperty("mark"),[r])),e.addComment("leading","#__PURE__")),e.requeue()}}};var g=r(281).makeAccessor(),b={"FunctionExpression|FunctionDeclaration":function(e){e.skip()},Identifier:function(e,t){"arguments"===e.node.name&&v.isReference(e)&&(v.replaceWithOrRemove(e,t.argsId),t.didRenameArguments=!0)}},E={MetaProperty:function(e){var t=e.node;"function"===t.meta.name&&"sent"===t.property.name&&v.replaceWithOrRemove(e,f.memberExpression(this.context,f.identifier("_sent")))}},x={Function:function(e){e.skip()},AwaitExpression:function(e){var t=e.node.argument;v.replaceWithOrRemove(e,f.yieldExpression(f.callExpression(v.runtimeProperty("awrap"),[t]),!1))}}},function(e,t,r){"use strict";var n=r(282);t.REGULAR={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,65535),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535),w:n(95).addRange(48,57).addRange(65,90).addRange(97,122),W:n(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)},t.UNICODE={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,1114111),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:n(95).addRange(48,57).addRange(65,90).addRange(97,122),W:n(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)},t.UNICODE_IGNORE_CASE={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,1114111),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:n(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122),W:n(75,83,96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)}},function(e,t,r){"use strict";function n(e){return S?A?m.UNICODE_IGNORE_CASE[e]:m.UNICODE[e]:m.REGULAR[e]}function i(e,t){return v.call(e,t)}function s(e,t){for(var r in t)e[r]=t[r]}function a(e,t){if(t){var r=p(t,"");switch(r.type){case"characterClass":case"group":case"value":break;default:r=o(r,t)}s(e,r)}}function o(e,t){return{type:"group",behavior:"ignore",body:[e],raw:"(?:"+t+")"}}function u(e){return!!i(h,e)&&h[e]}function l(e){var t=d();e.body.forEach(function(e){switch(e.type){case"value":if(t.add(e.codePoint),A&&S){var r=u(e.codePoint);r&&t.add(r)}break;case"characterClassRange":var i=e.min.codePoint,s=e.max.codePoint;t.addRange(i,s),A&&S&&t.iuAddRange(i,s);break;case"characterClassEscape":t.add(n(e.value));break;default:throw Error("Unknown term type: "+e.type)}});return e.negative&&(t=(S?g:b).clone().remove(t)),a(e,t.toString()),e}function c(e){switch(e.type){case"dot":a(e,(S?E:x).toString());break;case"characterClass":e=l(e);break;case"characterClassEscape":a(e,n(e.value).toString());break;case"alternative":case"disjunction":case"group":case"quantifier":e.body=e.body.map(c);break;case"value":var t=e.codePoint,r=d(t);if(A&&S){var i=u(t);i&&r.add(i)}a(e,r.toString());break;case"anchor":case"empty":case"group":case"reference":break;default:throw Error("Unknown term type: "+e.type)}return e}var f=r(613).generate,p=r(614).parse,d=r(282),h=r(631),m=r(611),y={},v=y.hasOwnProperty,g=d().addRange(0,1114111),b=d().addRange(0,65535),E=g.clone().remove(10,13,8232,8233),x=E.clone().intersection(b);d.prototype.iuAddRange=function(e,t){var r=this;do{var n=u(e);n&&r.add(n)}while(++e<=t);return r};var A=!1,S=!1;e.exports=function(e,t){var r=p(e,t);return A=!!t&&t.indexOf("i")>-1,S=!!t&&t.indexOf("u")>-1,s(r,c(r)),f(r)}},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};(function(){function a(){var e,t,r=[],n=-1,i=arguments.length;if(!i)return"";for(var s="";++n<i;){var a=Number(arguments[n]);if(!isFinite(a)||a<0||a>1114111||k(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?r.push(a):(a-=65536,e=55296+(a>>10),t=a%1024+56320,r.push(e,t)),(n+1==i||r.length>16384)&&(s+=P.apply(null,r),r.length=0)}return s}function o(e,t){if(-1==t.indexOf("|")){if(e==t)return;throw Error("Invalid node type: "+e)}if(t=o.hasOwnProperty(t)?o[t]:o[t]=RegExp("^(?:"+t+")$"),!t.test(e))throw Error("Invalid node type: "+e)
}function u(e){var t=e.type;if(u.hasOwnProperty(t)&&"function"==typeof u[t])return u[t](e);throw Error("Invalid node type: "+t)}function l(e){o(e.type,"alternative");var t=e.body,r=t?t.length:0;if(1==r)return x(t[0]);for(var n=-1,i="";++n<r;)i+=x(t[n]);return i}function c(e){switch(o(e.type,"anchor"),e.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}}function f(e){return o(e.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value"),u(e)}function p(e){o(e.type,"characterClass");var t=e.body,r=t?t.length:0,n=-1,i="[";for(e.negative&&(i+="^");++n<r;)i+=m(t[n]);return i+="]"}function d(e){return o(e.type,"characterClassEscape"),"\\"+e.value}function h(e){o(e.type,"characterClassRange");var t=e.min,r=e.max;if("characterClassRange"==t.type||"characterClassRange"==r.type)throw Error("Invalid character class range");return m(t)+"-"+m(r)}function m(e){return o(e.type,"anchor|characterClassEscape|characterClassRange|dot|value"),u(e)}function y(e){o(e.type,"disjunction");var t=e.body,r=t?t.length:0;if(0==r)throw Error("No body");if(1==r)return u(t[0]);for(var n=-1,i="";++n<r;)0!=n&&(i+="|"),i+=u(t[n]);return i}function v(e){return o(e.type,"dot"),"."}function g(e){o(e.type,"group");var t="(";switch(e.behavior){case"normal":break;case"ignore":t+="?:";break;case"lookahead":t+="?=";break;case"negativeLookahead":t+="?!";break;default:throw Error("Invalid behaviour: "+e.behaviour)}var r=e.body,n=r?r.length:0;if(1==n)t+=u(r[0]);else for(var i=-1;++i<n;)t+=u(r[i]);return t+=")"}function b(e){o(e.type,"quantifier");var t="",r=e.min,n=e.max;switch(n){case void 0:case null:switch(r){case 0:t="*";break;case 1:t="+";break;default:t="{"+r+",}"}break;default:t=r==n?"{"+r+"}":0==r&&1==n?"?":"{"+r+","+n+"}"}return e.greedy||(t+="?"),f(e.body[0])+t}function E(e){return o(e.type,"reference"),"\\"+e.matchIndex}function x(e){return o(e.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|value"),u(e)}function A(e){o(e.type,"value");var t=e.kind,r=e.codePoint;switch(t){case"controlLetter":return"\\c"+a(r+64);case"hexadecimalEscape":return"\\x"+("00"+r.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+a(r);case"null":return"\\"+r;case"octal":return"\\"+r.toString(8);case"singleEscape":switch(r){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";default:throw Error("Invalid codepoint: "+r)}case"symbol":return a(r);case"unicodeEscape":return"\\u"+("0000"+r.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+r.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+t)}}var S={function:!0,object:!0},_=S["undefined"==typeof window?"undefined":s(window)]&&window||this,D=S[s(t)]&&t,C=S[s(e)]&&e&&!e.nodeType&&e,w=D&&C&&"object"==(void 0===i?"undefined":s(i))&&i;!w||w.global!==w&&w.window!==w&&w.self!==w||(_=w);var P=String.fromCharCode,k=Math.floor;u.alternative=l,u.anchor=c,u.characterClass=p,u.characterClassEscape=d,u.characterClassRange=h,u.disjunction=y,u.dot=v,u.group=g,u.quantifier=b,u.reference=E,u.value=A,"object"==s(r(49))&&r(49)?void 0!==(n=function(){return{generate:u}}.call(t,r,t,e))&&(e.exports=n):D&&C?D.generate=u:_.regjsgen={generate:u}}).call(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t){"use strict";!function(){function t(e,t){function r(t){return t.raw=e.substring(t.range[0],t.range[1]),t}function n(e,t){return e.range[0]=t,r(e)}function i(e,t){return r({type:"anchor",kind:e,range:[$-t,$]})}function s(e,t,n,i){return r({type:"value",kind:e,codePoint:t,range:[n,i]})}function a(e,t,r,n){return n=n||0,s(e,t,$-(r.length+n),$)}function o(e){var t=e[0],r=t.charCodeAt(0);if(z){var n;if(1===t.length&&r>=55296&&r<=56319&&(n=x().charCodeAt(0))>=56320&&n<=57343)return $++,s("symbol",1024*(r-55296)+n-56320+65536,$-2,$)}return s("symbol",r,$-1,$)}function u(e,t,n){return r({type:"disjunction",body:e,range:[t,n]})}function l(){return r({type:"dot",range:[$-1,$]})}function c(e){return r({type:"characterClassEscape",value:e,range:[$-2,$]})}function f(e){return r({type:"reference",matchIndex:parseInt(e,10),range:[$-1-e.length,$]})}function p(e,t,n,i){return r({type:"group",behavior:e,body:t,range:[n,i]})}function d(e,t,n,i){return null==i&&(n=$-1,i=$),r({type:"quantifier",min:e,max:t,greedy:!0,body:null,range:[n,i]})}function h(e,t,n){return r({type:"alternative",body:e,range:[t,n]})}function m(e,t,n,i){return r({type:"characterClass",body:e,negative:t,range:[n,i]})}function y(e,t,n,i){return e.codePoint>t.codePoint&&K("invalid range in character class",e.raw+"-"+t.raw,n,i),r({type:"characterClassRange",min:e,max:t,range:[n,i]})}function v(e){return"alternative"===e.type?e.body:[e]}function g(t){t=t||1;var r=e.substring($,$+t);return $+=t||1,r}function b(e){E(e)||K("character",e)}function E(t){if(e.indexOf(t,$)===$)return g(t.length)}function x(){return e[$]}function A(t){return e.indexOf(t,$)===$}function S(t){return e[$+1]===t}function _(t){var r=e.substring($),n=r.match(t);return n&&(n.range=[],n.range[0]=$,g(n[0].length),n.range[1]=$),n}function D(){var e=[],t=$;for(e.push(C());E("|");)e.push(C());return 1===e.length?e[0]:u(e,t,$)}function C(){for(var e,t=[],r=$;e=w();)t.push(e);return 1===t.length?t[0]:h(t,r,$)}function w(){if($>=e.length||A("|")||A(")"))return null;var t=k();if(t)return t;var r=T();r||K("Expected atom");var i=F()||!1;return i?(i.body=v(r),n(i,r.range[0]),i):r}function P(e,t,r,n){var i=null,s=$;if(E(e))i=t;else{if(!E(r))return!1;i=n}var a=D();a||K("Expected disjunction"),b(")");var o=p(i,v(a),s,$);return"normal"==i&&X&&J++,o}function k(){return E("^")?i("start",1):E("$")?i("end",1):E("\\b")?i("boundary",2):E("\\B")?i("not-boundary",2):P("(?=","lookahead","(?!","negativeLookahead")}function F(){var e,t,r,n,i=$;return E("*")?t=d(0):E("+")?t=d(1):E("?")?t=d(0,1):(e=_(/^\{([0-9]+)\}/))?(r=parseInt(e[1],10),t=d(r,r,e.range[0],e.range[1])):(e=_(/^\{([0-9]+),\}/))?(r=parseInt(e[1],10),t=d(r,void 0,e.range[0],e.range[1])):(e=_(/^\{([0-9]+),([0-9]+)\}/))&&(r=parseInt(e[1],10),n=parseInt(e[2],10),r>n&&K("numbers out of order in {} quantifier","",i,$),t=d(r,n,e.range[0],e.range[1])),t&&E("?")&&(t.greedy=!1,t.range[1]+=1),t}function T(){var e;return(e=_(/^[^^$\\.*+?(){[|]/))?o(e):E(".")?l():E("\\")?(e=R(),e||K("atomEscape"),e):(e=j())?e:P("(?:","ignore","(","normal")}function O(e){if(z){var t,n;if("unicodeEscape"==e.kind&&(t=e.codePoint)>=55296&&t<=56319&&A("\\")&&S("u")){var i=$;$++;var s=B();"unicodeEscape"==s.kind&&(n=s.codePoint)>=56320&&n<=57343?(e.range[1]=s.range[1],e.codePoint=1024*(t-55296)+n-56320+65536,e.type="value",e.kind="unicodeCodePointEscape",r(e)):$=i}}return e}function B(){return R(!0)}function R(e){var t,r=$;if(t=I())return t;if(e){if(E("b"))return a("singleEscape",8,"\\b");E("B")&&K("\\B not possible inside of CharacterClass","",r)}return t=M()}function I(){var e,t;if(e=_(/^(?!0)\d+/)){t=e[0];var r=parseInt(e[0],10);return r<=J?f(e[0]):(H.push(r),g(-e[0].length),(e=_(/^[0-7]{1,3}/))?a("octal",parseInt(e[0],8),e[0],1):(e=o(_(/^[89]/)),n(e,e.range[0]-1)))}return(e=_(/^[0-7]{1,3}/))?(t=e[0],/^0{1,3}$/.test(t)?a("null",0,"0",t.length+1):a("octal",parseInt(t,8),t,1)):!!(e=_(/^[dDsSwW]/))&&c(e[0])}function M(){var e;if(e=_(/^[fnrtv]/)){var t=0;switch(e[0]){case"t":t=9;break;case"n":t=10;break;case"v":t=11;break;case"f":t=12;break;case"r":t=13}return a("singleEscape",t,"\\"+e[0])}return(e=_(/^c([a-zA-Z])/))?a("controlLetter",e[1].charCodeAt(0)%32,e[1],2):(e=_(/^x([0-9a-fA-F]{2})/))?a("hexadecimalEscape",parseInt(e[1],16),e[1],2):(e=_(/^u([0-9a-fA-F]{4})/))?O(a("unicodeEscape",parseInt(e[1],16),e[1],2)):z&&(e=_(/^u\{([0-9a-fA-F]+)\}/))?a("unicodeCodePointEscape",parseInt(e[1],16),e[1],4):L()}function N(e){var t=new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]");return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&t.test(String.fromCharCode(e))}function L(){var e;return N(x())?E("‌")?a("identifier",8204,"‌"):E("‍")?a("identifier",8205,"‍"):null:(e=g(),a("identifier",e.charCodeAt(0),e,1))}function j(){var e,t=$;return(e=_(/^\[\^/))?(e=U(),b("]"),m(e,!0,t,$)):E("[")?(e=U(),b("]"),m(e,!1,t,$)):null}function U(){var e;return A("]")?[]:(e=G(),e||K("nonEmptyClassRanges"),e)}function V(e){var t,r,n;if(A("-")&&!S("]")){b("-"),n=Y(),n||K("classAtom"),r=$;var i=U();return i||K("classRanges"),t=e.range[0],"empty"===i.type?[y(e,n,t,r)]:[y(e,n,t,r)].concat(i)}return n=W(),n||K("nonEmptyClassRangesNoDash"),[e].concat(n)}function G(){var e=Y();return e||K("classAtom"),A("]")?[e]:V(e)}function W(){var e=Y();return e||K("classAtom"),A("]")?e:V(e)}function Y(){return E("-")?o("-"):q()}function q(){var e;return(e=_(/^[^\\\]-]/))?o(e[0]):E("\\")?(e=B(),e||K("classEscape"),O(e)):void 0}function K(t,r,n,i){n=null==n?$:n,i=null==i?n:i;var s=Math.max(0,n-10),a=Math.min(i+10,e.length),o="    "+e.substring(s,a),u="    "+new Array(n-s+1).join(" ")+"^";throw SyntaxError(t+" at position "+n+(r?": "+r:"")+"\n"+o+"\n"+u)}var H=[],J=0,X=!0,z=-1!==(t||"").indexOf("u"),$=0;""===(e=String(e))&&(e="(?:)");var Q=D();Q.range[1]!==e.length&&K("Could not parse entire input - got stuck","",Q.range[1]);for(var Z=0;Z<H.length;Z++)if(H[Z]<=J)return $=0,X=!1,D();return Q}var r={parse:t};void 0!==e&&e.exports?e.exports=r:window.regjsparser=r}()},function(e,t,r){"use strict";var n=r(467);e.exports=function(e,t){if("string"!=typeof e)throw new TypeError("Expected `input` to be a string");if(t<0||!n(t))throw new TypeError("Expected `count` to be a positive finite number");var r="";do{1&t&&(r+=e),e+=e}while(t>>=1);return r}},function(e,t){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},function(e,t){"use strict";function r(e,n,i,s,a,o){var u=Math.floor((n-e)/2)+e,l=a(i,s[u],!0);return 0===l?u:l>0?n-u>1?r(u,n,i,s,a,o):o==t.LEAST_UPPER_BOUND?n<s.length?n:-1:u:u-e>1?r(e,u,i,s,a,o):o==t.LEAST_UPPER_BOUND?u:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,i,s){if(0===n.length)return-1;var a=r(-1,n.length,e,n,i,s||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===i(n[a],n[a-1],!0);)--a;return a}},function(e,t,r){"use strict";function n(e,t){var r=e.generatedLine,n=t.generatedLine,i=e.generatedColumn,a=t.generatedColumn;return n>r||n==r&&a>=i||s.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var s=r(63);i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){n(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(s.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.MappingList=i},function(e,t){"use strict";function r(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function n(e,t){return Math.round(e+Math.random()*(t-e))}function i(e,t,s,a){if(s<a){var o=n(s,a),u=s-1;r(e,o,a);for(var l=e[a],c=s;c<a;c++)t(e[c],l)<=0&&(u+=1,r(e,u,c));r(e,u+1,c);var f=u+1;i(e,t,s,f-1),i(e,t,f+1,a)}}t.quickSort=function(e,t){i(e,t,0,e.length-1)}},function(e,t,r){"use strict";function n(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new a(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),n=o.getArg(t,"sources"),i=o.getArg(t,"names",[]),s=o.getArg(t,"sourceRoot",null),a=o.getArg(t,"sourcesContent",null),u=o.getArg(t,"mappings"),c=o.getArg(t,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);n=n.map(String).map(o.normalize).map(function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}),this._names=l.fromArray(i.map(String),!0),this._sources=l.fromArray(n,!0),this.sourceRoot=s,this.sourcesContent=a,this._mappings=u,this.file=c}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function a(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),i=o.getArg(t,"sections");if(r!=this._version)throw new Error("Unsupported version: "+r);this._sources=new l,this._names=new l;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=o.getArg(e,"offset"),r=o.getArg(t,"line"),i=o.getArg(t,"column");if(r<s.line||r===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:r+1,generatedColumn:i+1},consumer:new n(o.getArg(e,"map"))}})}var o=r(63),u=r(617),l=r(285).ArraySet,c=r(286),f=r(619).quickSort;n.fromSourceMap=function(e){return i.fromSourceMap(e)},n.prototype._version=3,n.prototype.__generatedMappings=null,Object.defineProperty(n.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),n.prototype.__originalMappings=null,Object.defineProperty(n.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),n.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},n.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},n.GENERATED_ORDER=1,n.ORIGINAL_ORDER=2,n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.prototype.eachMapping=function(e,t,r){var i,s=t||null,a=r||n.GENERATED_ORDER;switch(a){case n.GENERATED_ORDER:i=this._generatedMappings;break;case n.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=u&&(t=o.join(u,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},n.prototype.allGeneratedPositionsFor=function(e){var t=o.getArg(e,"line"),r={source:o.getArg(e,"source"),originalLine:t,originalColumn:o.getArg(e,"column",0)};if(null!=this.sourceRoot&&(r.source=o.relative(this.sourceRoot,r.source)),!this._sources.has(r.source))return[];r.source=this._sources.indexOf(r.source);var n=[],i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=0){var s=this._originalMappings[i];if(void 0===e.column)for(var a=s.originalLine;s&&s.originalLine===a;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return n},t.SourceMapConsumer=n,i.prototype=Object.create(n.prototype),i.prototype.consumer=n,i.fromSourceMap=function(e){var t=Object.create(i.prototype),r=t._names=l.fromArray(e._names.toArray(),!0),n=t._sources=l.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),u=t.__generatedMappings=[],c=t.__originalMappings=[],p=0,d=a.length;p<d;p++){var h=a[p],m=new s;m.generatedLine=h.generatedLine,m.generatedColumn=h.generatedColumn,h.source&&(m.source=n.indexOf(h.source),m.originalLine=h.originalLine,m.originalColumn=h.originalColumn,h.name&&(m.name=r.indexOf(h.name)),c.push(m)),u.push(m)}return f(t.__originalMappings,o.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?o.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var r,n,i,a,u,l=1,p=0,d=0,h=0,m=0,y=0,v=e.length,g=0,b={},E={},x=[],A=[];g<v;)if(";"===e.charAt(g))l++,g++,p=0;else if(","===e.charAt(g))g++;else{for(r=new s,r.generatedLine=l,a=g;a<v&&!this._charIsMappingSeparator(e,a);a++);if(n=e.slice(g,a),i=b[n])g+=n.length;else{for(i=[];g<a;)c.decode(e,g,E),u=E.value,g=E.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");b[n]=i}r.generatedColumn=p+i[0],p=r.generatedColumn,i.length>1&&(r.source=m+i[1],m+=i[1],r.originalLine=d+i[2],d=r.originalLine,r.originalLine+=1,r.originalColumn=h+i[3],h=r.originalColumn,i.length>4&&(r.name=y+i[4],y+=i[4])),A.push(r),"number"==typeof r.originalLine&&x.push(r)}f(A,o.compareByGeneratedPositionsDeflated),this.__generatedMappings=A,f(x,o.compareByOriginalPositions),this.__originalMappings=x},i.prototype._findMapping=function(e,t,r,n,i,s){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(t.generatedLine===r.generatedLine){t.lastGeneratedColumn=r.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositionsDeflated,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(r>=0){var i=this._generatedMappings[r];if(i.generatedLine===t.generatedLine){var s=o.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=o.join(this.sourceRoot,s)));var a=o.getArg(i,"name",null);return null!==a&&(a=this._names.at(a)),{source:s,line:o.getArg(i,"originalLine",null),column:o.getArg(i,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=o.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var r;if(null!=this.sourceRoot&&(r=o.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==r.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!r.path||"/"==r.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=o.getArg(e,"source");if(null!=this.sourceRoot&&(t=o.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};t=this._sources.indexOf(t);var r={source:t,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")},i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===r.source)return{line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},t.BasicSourceMapConsumer=i,a.prototype=Object.create(n.prototype),a.prototype.constructor=n,a.prototype._version=3,Object.defineProperty(a.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var r=0;r<this._sections[t].consumer.sources.length;r++)e.push(this._sections[t].consumer.sources[r]);return e}}),a.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=u.search(t,this._sections,function(e,t){var r=e.generatedLine-t.generatedOffset.generatedLine;return r||e.generatedColumn-t.generatedOffset.generatedColumn}),n=this._sections[r];return n?n.consumer.originalPositionFor({line:t.generatedLine-(n.generatedOffset.generatedLine-1),column:t.generatedColumn-(n.generatedOffset.generatedLine===t.generatedLine?n.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},a.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},a.prototype.sourceContentFor=function(e,t){for(var r=0;r<this._sections.length;r++){var n=this._sections[r],i=n.consumer.sourceContentFor(e,!0);if(i)return i}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},a.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var r=this._sections[t];if(-1!==r.consumer.sources.indexOf(o.getArg(e,"source"))){var n=r.consumer.generatedPositionFor(e);if(n){return{line:n.line+(r.generatedOffset.generatedLine-1),column:n.column+(r.generatedOffset.generatedLine===n.line?r.generatedOffset.generatedColumn-1:0)}}}}return{line:null,column:null}},a.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var r=0;r<this._sections.length;r++)for(var n=this._sections[r],i=n.consumer._generatedMappings,s=0;s<i.length;s++){var a=i[s],u=n.consumer._sources.at(a.source);null!==n.consumer.sourceRoot&&(u=o.join(n.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var l=n.consumer._names.at(a.name);this._names.add(l),l=this._names.indexOf(l);var c={source:u,generatedLine:a.generatedLine+(n.generatedOffset.generatedLine-1),generatedColumn:a.generatedColumn+(n.generatedOffset.generatedLine===a.generatedLine?n.generatedOffset.generatedColumn-1:0),originalLine:a.originalLine,originalColumn:a.originalColumn,name:l};this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}f(this.__generatedMappings,o.compareByGeneratedPositionsDeflated),f(this.__originalMappings,o.compareByOriginalPositions)},t.IndexedSourceMapConsumer=a},function(e,t,r){"use strict";function n(e,t,r,n,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==i?null:i,this[o]=!0,null!=n&&this.add(n)}var i=r(287).SourceMapGenerator,s=r(63),a=/(\r?\n)/,o="$$$isSourceNode$$$";n.fromStringWithSourceMap=function(e,t,r){function i(e,t){if(null===e||void 0===e.source)o.add(t);else{var i=r?s.join(r,e.source):e.source;o.add(new n(e.originalLine,e.originalColumn,i,t,e.name))}}var o=new n,u=e.split(a),l=function(){return u.shift()+(u.shift()||"")},c=1,f=0,p=null;return t.eachMapping(function(e){if(null!==p){if(!(c<e.generatedLine)){var t=u[0],r=t.substr(0,e.generatedColumn-f);return u[0]=t.substr(e.generatedColumn-f),f=e.generatedColumn,i(p,r),void(p=e)}i(p,l()),c++,f=0}for(;c<e.generatedLine;)o.add(l()),c++;if(f<e.generatedColumn){var t=u[0];o.add(t.substr(0,e.generatedColumn)),u[0]=t.substr(e.generatedColumn),f=e.generatedColumn}p=e},this),u.length>0&&(p&&i(p,l()),o.add(u.join(""))),t.sources.forEach(function(e){var n=t.sourceContentFor(e);null!=n&&(null!=r&&(e=s.join(r,e)),o.setSourceContent(e,n))}),o},n.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},n.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},n.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r<n;r++)t=this.children[r],t[o]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},n.prototype.join=function(e){var t,r,n=this.children.length;if(n>0){for(t=[],r=0;r<n-1;r++)t.push(this.children[r]),t.push(e);t.push(this.children[r]),this.children=t}return this},n.prototype.replaceRight=function(e,t){var r=this.children[this.children.length-1];return r[o]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},n.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},n.prototype.walkSourceContents=function(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][o]&&this.children[t].walkSourceContents(e);for(var n=Object.keys(this.sourceContents),t=0,r=n.length;t<r;t++)e(s.fromSetString(n[t]),this.sourceContents[n[t]])},n.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},n.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},r=new i(e),n=!1,s=null,a=null,o=null,u=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&a===i.line&&o===i.column&&u===i.name||r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,a=i.line,o=i.column,u=i.name,n=!0):n&&(r.addMapping({generated:{line:t.line,column:t.column}}),s=null,n=!1);for(var l=0,c=e.length;l<c;l++)10===e.charCodeAt(l)?(t.line++,t.column=0,l+1===c?(s=null,n=!1):n&&r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){r.setSourceContent(e,t)}),{code:t.code,map:r}},t.SourceNode=n},function(e,t,r){"use strict";var n=r(180)();e.exports=function(e){return"string"==typeof e?e.replace(n,""):e}},function(e,t,r){(function(t){"use strict";var r=t.argv,n=r.indexOf("--"),i=function(e){e="--"+e;var t=r.indexOf(e);return-1!==t&&(-1===n||t<n)};e.exports=function(){return"FORCE_COLOR"in t.env||!(i("no-color")||i("no-colors")||i("color=false"))&&(!!(i("color")||i("colors")||i("color=true")||i("color=always"))||!(t.stdout&&!t.stdout.isTTY)&&("win32"===t.platform||("COLORTERM"in t.env||"dumb"!==t.env.TERM&&!!/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(t.env.TERM))))}()}).call(t,r(8))},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function e(t){function n(){}function i(){return r(s.foo)}n.prototype=t;var s=new n;return i(),i(),t}},function(e,t){"use strict";e.exports=function(e){for(var t=e.length;/[\s\uFEFF\u00A0]/.test(e[t-1]);)t--;return e.slice(0,t)}},function(e,t){"use strict";"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function(e){return e&&"object"===(void 0===e?"undefined":r(e))&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.version="6.26.0"},function(e,t){"use strict";function r(e,t){var r=void 0;return null!=t.url?r=t.url:(r="Inline Babel script",++p>1&&(r+=" ("+p+")")),e(t.content,l({filename:r},n(t))).code}function n(e){return{presets:e.presets||["react","es2015"],plugins:e.plugins||["transform-class-properties","transform-object-rest-spread","transform-flow-strip-types"],sourceMaps:"inline"}}function i(e,t){var n=document.createElement("script");n.text=r(e,t),f.appendChild(n)}function s(e,t,r){var n=new XMLHttpRequest;return n.open("GET",e,!0),"overrideMimeType"in n&&n.overrideMimeType("text/plain"),n.onreadystatechange=function(){if(4===n.readyState){if(0!==n.status&&200!==n.status)throw r(),new Error("Could not load "+e);t(n.responseText)}},n.send(null)}function a(e,t){var r=e.getAttribute(t);return""===r?[]:r?r.split(",").map(function(e){return e.trim()}):null}function o(e,t){function r(){var t,r;for(r=0;r<o;r++)if(t=n[r],t.loaded&&!t.executed)t.executed=!0,i(e,t);else if(!t.loaded&&!t.error&&!t.async)break}var n=[],o=t.length;t.forEach(function(e,t){var i={async:e.hasAttribute("async"),error:!1,executed:!1,plugins:a(e,"data-plugins"),presets:a(e,"data-presets")};e.src?(n[t]=l({},i,{content:null,loaded:!1,url:e.src}),s(e.src,function(e){n[t].loaded=!0,n[t].content=e,r()},function(){n[t].error=!0,r()})):n[t]=l({},i,{content:e.innerHTML,loaded:!0,url:null})}),r()}function u(e,t){f=document.getElementsByTagName("head")[0],t||(t=document.getElementsByTagName("script"));for(var r=[],n=0;n<t.length;n++){var i=t.item(n),s=i.type.split(";")[0];-1!==c.indexOf(s)&&r.push(i)}0!==r.length&&(console.warn("You are using the in-browser Babel transformer. Be sure to precompile your scripts for production - https://babeljs.io/docs/setup/"),o(e,r))}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};t.runScripts=u;var c=["text/jsx","text/babel"],f=void 0,p=0},function(e,t){e.exports={builtin:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,
valueOf:!1,WeakMap:!1,WeakSet:!1},es5:{Array:!1,Boolean:!1,constructor:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,propertyIsEnumerable:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1},es6:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},browser:{addEventListener:!1,alert:!1,AnalyserNode:!1,Animation:!1,AnimationEffectReadOnly:!1,AnimationEffectTiming:!1,AnimationEffectTimingReadOnly:!1,AnimationEvent:!1,AnimationPlaybackEvent:!1,AnimationTimeline:!1,applicationCache:!1,ApplicationCache:!1,ApplicationCacheErrorEvent:!1,atob:!1,Attr:!1,Audio:!1,AudioBuffer:!1,AudioBufferSourceNode:!1,AudioContext:!1,AudioDestinationNode:!1,AudioListener:!1,AudioNode:!1,AudioParam:!1,AudioProcessingEvent:!1,AutocompleteErrorEvent:!1,BarProp:!1,BatteryManager:!1,BeforeUnloadEvent:!1,BiquadFilterNode:!1,Blob:!1,blur:!1,btoa:!1,Cache:!1,caches:!1,CacheStorage:!1,cancelAnimationFrame:!1,cancelIdleCallback:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CDATASection:!1,ChannelMergerNode:!1,ChannelSplitterNode:!1,CharacterData:!1,clearInterval:!1,clearTimeout:!1,clientInformation:!1,ClientRect:!1,ClientRectList:!1,ClipboardEvent:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,ConvolverNode:!1,createImageBitmap:!1,Credential:!1,CredentialsContainer:!1,crypto:!1,Crypto:!1,CryptoKey:!1,CSS:!1,CSSAnimation:!1,CSSFontFaceRule:!1,CSSImportRule:!1,CSSKeyframeRule:!1,CSSKeyframesRule:!1,CSSMediaRule:!1,CSSPageRule:!1,CSSRule:!1,CSSRuleList:!1,CSSStyleDeclaration:!1,CSSStyleRule:!1,CSSStyleSheet:!1,CSSSupportsRule:!1,CSSTransition:!1,CSSUnknownRule:!1,CSSViewportRule:!1,customElements:!1,CustomEvent:!1,DataTransfer:!1,DataTransferItem:!1,DataTransferItemList:!1,Debug:!1,defaultStatus:!1,defaultstatus:!1,DelayNode:!1,DeviceMotionEvent:!1,DeviceOrientationEvent:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DocumentTimeline:!1,DocumentType:!1,DOMError:!1,DOMException:!1,DOMImplementation:!1,DOMParser:!1,DOMSettableTokenList:!1,DOMStringList:!1,DOMStringMap:!1,DOMTokenList:!1,DragEvent:!1,DynamicsCompressorNode:!1,Element:!1,ElementTimeControl:!1,ErrorEvent:!1,event:!1,Event:!1,EventSource:!1,EventTarget:!1,external:!1,FederatedCredential:!1,fetch:!1,File:!1,FileError:!1,FileList:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FontFace:!1,FormData:!1,frameElement:!1,frames:!1,GainNode:!1,Gamepad:!1,GamepadButton:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,Headers:!1,history:!1,History:!1,HTMLAllCollection:!1,HTMLAnchorElement:!1,HTMLAppletElement:!1,HTMLAreaElement:!1,HTMLAudioElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLContentElement:!1,HTMLDataListElement:!1,HTMLDetailsElement:!1,HTMLDialogElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLDocument:!1,HTMLElement:!1,HTMLEmbedElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormControlsCollection:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLKeygenElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMarqueeElement:!1,HTMLMediaElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLMeterElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLOptionsCollection:!1,HTMLOutputElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPictureElement:!1,HTMLPreElement:!1,HTMLProgressElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLShadowElement:!1,HTMLSourceElement:!1,HTMLSpanElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLTrackElement:!1,HTMLUListElement:!1,HTMLUnknownElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBEnvironment:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,Image:!1,ImageBitmap:!1,ImageData:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,InputMethodContext:!1,IntersectionObserver:!1,IntersectionObserverEntry:!1,Intl:!1,KeyboardEvent:!1,KeyframeEffect:!1,KeyframeEffectReadOnly:!1,length:!1,localStorage:!1,location:!1,Location:!1,locationbar:!1,matchMedia:!1,MediaElementAudioSourceNode:!1,MediaEncryptedEvent:!1,MediaError:!1,MediaKeyError:!1,MediaKeyEvent:!1,MediaKeyMessageEvent:!1,MediaKeys:!1,MediaKeySession:!1,MediaKeyStatusMap:!1,MediaKeySystemAccess:!1,MediaList:!1,MediaQueryList:!1,MediaQueryListEvent:!1,MediaSource:!1,MediaRecorder:!1,MediaStream:!1,MediaStreamAudioDestinationNode:!1,MediaStreamAudioSourceNode:!1,MediaStreamEvent:!1,MediaStreamTrack:!1,menubar:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MIDIAccess:!1,MIDIConnectionEvent:!1,MIDIInput:!1,MIDIInputMap:!1,MIDIMessageEvent:!1,MIDIOutput:!1,MIDIOutputMap:!1,MIDIPort:!1,MimeType:!1,MimeTypeArray:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationEvent:!1,MutationObserver:!1,MutationRecord:!1,name:!1,NamedNodeMap:!1,navigator:!1,Navigator:!1,Node:!1,NodeFilter:!1,NodeIterator:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,OfflineAudioContext:!1,offscreenBuffering:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,opera:!1,Option:!1,OscillatorNode:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,PasswordCredential:!1,Path2D:!1,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,PeriodicWave:!1,Permissions:!1,PermissionStatus:!1,personalbar:!1,Plugin:!1,PluginArray:!1,PopStateEvent:!1,postMessage:!1,print:!1,ProcessingInstruction:!1,ProgressEvent:!1,PromiseRejectionEvent:!1,prompt:!1,PushManager:!1,PushSubscription:!1,RadioNodeList:!1,Range:!1,ReadableByteStream:!1,ReadableStream:!1,removeEventListener:!1,Request:!1,requestAnimationFrame:!1,requestIdleCallback:!1,resizeBy:!1,resizeTo:!1,Response:!1,RTCIceCandidate:!1,RTCSessionDescription:!1,RTCPeerConnection:!1,screen:!1,Screen:!1,screenLeft:!1,ScreenOrientation:!1,screenTop:!1,screenX:!1,screenY:!1,ScriptProcessorNode:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,SecurityPolicyViolationEvent:!1,Selection:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerRegistration:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,ShadowRoot:!1,SharedKeyframeList:!1,SharedWorker:!1,showModalDialog:!1,SiteBoundCredential:!1,speechSynthesis:!1,SpeechSynthesisEvent:!1,SpeechSynthesisUtterance:!1,status:!1,statusbar:!1,stop:!1,Storage:!1,StorageEvent:!1,styleMedia:!1,StyleSheet:!1,StyleSheetList:!1,SubtleCrypto:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCSSRule:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDiscardElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGEvent:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEDropShadowElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGeometryElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGGraphicsElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGLocatable:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformable:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGURIReference:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,SVGZoomAndPan:!1,SVGZoomEvent:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TextEvent:!1,TextMetrics:!1,TextTrack:!1,TextTrackCue:!1,TextTrackCueList:!1,TextTrackList:!1,TimeEvent:!1,TimeRanges:!1,toolbar:!1,top:!1,Touch:!1,TouchEvent:!1,TouchList:!1,TrackEvent:!1,TransitionEvent:!1,TreeWalker:!1,UIEvent:!1,URL:!1,URLSearchParams:!1,ValidityState:!1,VTTCue:!1,WaveShaperNode:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLDocument:!1,XMLHttpRequest:!1,XMLHttpRequestEventTarget:!1,XMLHttpRequestProgressEvent:!1,XMLHttpRequestUpload:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1,XSLTProcessor:!1},worker:{applicationCache:!1,atob:!1,Blob:!1,BroadcastChannel:!1,btoa:!1,Cache:!1,caches:!1,clearInterval:!1,clearTimeout:!1,close:!0,console:!1,fetch:!1,FileReaderSync:!1,FormData:!1,Headers:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,ImageData:!1,importScripts:!0,indexedDB:!1,location:!1,MessageChannel:!1,MessagePort:!1,name:!1,navigator:!1,Notification:!1,onclose:!0,onconnect:!0,onerror:!0,onlanguagechange:!0,onmessage:!0,onoffline:!0,ononline:!0,onrejectionhandled:!0,onunhandledrejection:!0,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,postMessage:!0,Promise:!1,Request:!1,Response:!1,self:!0,ServiceWorkerRegistration:!1,setInterval:!1,setTimeout:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1,WebSocket:!1,Worker:!1,XMLHttpRequest:!1},node:{__dirname:!1,__filename:!1,arguments:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,Intl:!1,module:!1,process:!1,require:!1,root:!1,setImmediate:!1,setInterval:!1,setTimeout:!1},commonjs:{exports:!0,module:!1,require:!1,global:!1},amd:{define:!1,require:!1},mocha:{after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,mocha:!1,run:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},jasmine:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,spyOnProperty:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},jest:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,check:!1,describe:!1,expect:!1,gen:!1,it:!1,fdescribe:!1,fit:!1,jest:!1,pit:!1,require:!1,test:!1,xdescribe:!1,xit:!1,xtest:!1},qunit:{asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notOk:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,throws:!1},phantomjs:{console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},couch:{emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},rhino:{defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},nashorn:{__DIR__:!1,__FILE__:!1,__LINE__:!1,com:!1,edu:!1,exit:!1,Java:!1,java:!1,javafx:!1,JavaImporter:!1,javax:!1,JSAdapter:!1,load:!1,loadWithNewGlobal:!1,org:!1,Packages:!1,print:!1,quit:!1},wsh:{ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},jquery:{$:!1,jQuery:!1},yui:{Y:!1,YUI:!1,YUI_config:!1},shelljs:{cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ls:!1,ln:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,set:!1,target:!1,tempdir:!1,test:!1,touch:!1,which:!1},prototypejs:{$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},meteor:{$:!1,_:!1,Accounts:!1,AccountsClient:!1,AccountsServer:!1,AccountsCommon:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPServer:!1,DDPRateLimiter:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,ServiceConfiguration:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},mongo:{_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,ISODate:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,NumberInt:!1,NumberLong:!1,ObjectId:!1,PlanCache:!1,print:!1,printjson:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1},applescript:{$:!1,Application:!1,Automation:!1,console:!1,delay:!1,Library:!1,ObjC:!1,ObjectSpecifier:!1,Path:!1,Progress:!1,Ref:!1},serviceworker:{caches:!1,Cache:!1,CacheStorage:!1,Client:!1,clients:!1,Clients:!1,ExtendableEvent:!1,ExtendableMessageEvent:!1,FetchEvent:!1,importScripts:!1,registration:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerGlobalScope:!1,ServiceWorkerMessageEvent:!1,ServiceWorkerRegistration:!1,skipWaiting:!1,WindowClient:!1},atomtest:{advanceClock:!1,fakeClearInterval:!1,fakeClearTimeout:!1,fakeSetInterval:!1,fakeSetTimeout:!1,resetTimeouts:!1,waitsForPromise:!1},embertest:{andThen:!1,click:!1,currentPath:!1,currentRouteName:!1,currentURL:!1,fillIn:!1,find:!1,findWithAssert:!1,keyEvent:!1,pauseTest:!1,resumeTest:!1,triggerEvent:!1,visit:!1},protractor:{$:!1,$$:!1,browser:!1,By:!1,by:!1,DartObject:!1,element:!1,protractor:!1},"shared-node-browser":{clearInterval:!1,clearTimeout:!1,console:!1,setInterval:!1,setTimeout:!1},webextensions:{browser:!1,chrome:!1,opr:!1},greasemonkey:{GM_addStyle:!1,GM_deleteValue:!1,GM_getResourceText:!1,GM_getResourceURL:!1,GM_getValue:!1,GM_info:!1,GM_listValues:!1,GM_log:!1,GM_openInTab:!1,GM_registerMenuCommand:!1,GM_setClipboard:!1,GM_setValue:!1,GM_xmlhttpRequest:!1,unsafeWindow:!1}}},function(e,t){e.exports={75:8490,83:383,107:8490,115:383,181:924,197:8491,383:83,452:453,453:452,455:456,456:455,458:459,459:458,497:498,498:497,837:8126,914:976,917:1013,920:1012,921:8126,922:1008,924:181,928:982,929:1009,931:962,934:981,937:8486,962:931,976:914,977:1012,981:934,982:928,1008:922,1009:929,1012:[920,977],1013:917,7776:7835,7835:7776,8126:[837,921],8486:937,8490:75,8491:197,66560:66600,66561:66601,66562:66602,66563:66603,66564:66604,66565:66605,66566:66606,66567:66607,66568:66608,66569:66609,66570:66610,66571:66611,66572:66612,66573:66613,66574:66614,66575:66615,66576:66616,66577:66617,66578:66618,66579:66619,66580:66620,66581:66621,66582:66622,66583:66623,66584:66624,66585:66625,66586:66626,66587:66627,66588:66628,66589:66629,66590:66630,66591:66631,66592:66632,66593:66633,66594:66634,66595:66635,66596:66636,66597:66637,66598:66638,66599:66639,66600:66560,66601:66561,66602:66562,66603:66563,66604:66564,66605:66565,66606:66566,66607:66567,66608:66568,66609:66569,66610:66570,66611:66571,66612:66572,66613:66573,66614:66574,66615:66575,66616:66576,66617:66577,66618:66578,66619:66579,66620:66580,66621:66581,66622:66582,66623:66583,66624:66584,66625:66585,66626:66586,66627:66587,66628:66588,66629:66589,66630:66590,66631:66591,66632:66592,66633:66593,66634:66594,66635:66595,66636:66596,66637:66597,66638:66598,66639:66599,68736:68800,68737:68801,68738:68802,68739:68803,68740:68804,68741:68805,68742:68806,68743:68807,68744:68808,68745:68809,68746:68810,68747:68811,68748:68812,68749:68813,68750:68814,68751:68815,68752:68816,68753:68817,68754:68818,68755:68819,68756:68820,68757:68821,68758:68822,68759:68823,68760:68824,68761:68825,68762:68826,68763:68827,68764:68828,68765:68829,68766:68830,68767:68831,68768:68832,68769:68833,68770:68834,68771:68835,68772:68836,68773:68837,68774:68838,68775:68839,68776:68840,68777:68841,68778:68842,68779:68843,68780:68844,68781:68845,68782:68846,68783:68847,68784:68848,68785:68849,68786:68850,68800:68736,68801:68737,68802:68738,68803:68739,68804:68740,68805:68741,68806:68742,68807:68743,68808:68744,68809:68745,68810:68746,68811:68747,68812:68748,68813:68749,68814:68750,68815:68751,68816:68752,68817:68753,68818:68754,68819:68755,68820:68756,68821:68757,68822:68758,68823:68759,68824:68760,68825:68761,68826:68762,68827:68763,68828:68764,68829:68765,68830:68766,68831:68767,68832:68768,68833:68769,68834:68770,68835:68771,68836:68772,68837:68773,68838:68774,68839:68775,68840:68776,68841:68777,68842:68778,68843:68779,68844:68780,68845:68781,68846:68782,68847:68783,68848:68784,68849:68785,68850:68786,71840:71872,71841:71873,71842:71874,71843:71875,71844:71876,71845:71877,71846:71878,71847:71879,71848:71880,71849:71881,71850:71882,71851:71883,71852:71884,71853:71885,71854:71886,71855:71887,71856:71888,71857:71889,71858:71890,71859:71891,71860:71892,71861:71893,71862:71894,71863:71895,71864:71896,71865:71897,71866:71898,71867:71899,71868:71900,71869:71901,71870:71902,71871:71903,71872:71840,71873:71841,71874:71842,71875:71843,71876:71844,71877:71845,71878:71846,71879:71847,71880:71848,71881:71849,71882:71850,71883:71851,71884:71852,71885:71853,71886:71854,71887:71855,71888:71856,71889:71857,71890:71858,71891:71859,71892:71860,71893:71861,71894:71862,71895:71863,71896:71864,71897:71865,71898:71866,71899:71867,71900:71868,71901:71869,71902:71870,71903:71871}}]))});let _chromiumMajorVersionInUserAgent=null,_speculationRulesType,_allowQueryString,_allowExternalLinks,_useWhitelist,_delayOnHover=65,_lastTouchstartEvent,_mouseoverTimer,_preloadedList=new Set;function init(){let e=document.createElement("link").relList,t=e.supports("prefetch")&&e.supports("modulepreload");if(!t)return;let n="instantVaryAccept"in document.body.dataset||"Shopify"in window,r=navigator.userAgent.indexOf("Chrome/");if(r>-1&&(_chromiumMajorVersionInUserAgent=parseInt(navigator.userAgent.substring(r+7))),n&&_chromiumMajorVersionInUserAgent&&_chromiumMajorVersionInUserAgent<110)return;if(_speculationRulesType="none",HTMLScriptElement.supports&&HTMLScriptElement.supports("speculationrules")){let s=document.body.dataset.instantSpecrules;"prerender"==s?_speculationRulesType="prerender":"no"!=s&&(_speculationRulesType="prefetch")}let i="instantMousedownShortcut"in document.body.dataset;_allowQueryString="instantAllowQueryString"in document.body.dataset,_allowExternalLinks="instantAllowExternalLinks"in document.body.dataset,_useWhitelist="instantWhitelist"in document.body.dataset;let o=!1,a=!1,l=!1;if("instantIntensity"in document.body.dataset){let u=document.body.dataset.instantIntensity;if("mousedown"!=u||i||(o=!0),"mousedown-only"!=u||i||(o=!0,a=!0),"viewport"==u){let c=document.documentElement.clientWidth*document.documentElement.clientHeight<45e4,d=navigator.connection&&navigator.connection.saveData,p=navigator.connection&&navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g");!c||d||p||(l=!0)}"viewport-all"==u&&(l=!0);let h=parseInt(u);isNaN(h)||(_delayOnHover=h)}let m={capture:!0,passive:!0};if(a?document.addEventListener("touchstart",touchstartEmptyListener,m):document.addEventListener("touchstart",touchstartListener,m),o||document.addEventListener("mouseover",mouseoverListener,m),o&&document.addEventListener("mousedown",mousedownListener,m),i&&document.addEventListener("mousedown",mousedownShortcutListener,m),l){let f=window.requestIdleCallback;f||(f=e=>{e()}),f(function e(){let t=new IntersectionObserver(e=>{e.forEach(e=>{if(e.isIntersecting){let n=e.target;t.unobserve(n),preload(n.href)}})});document.querySelectorAll("a").forEach(e=>{isPreloadable(e)&&t.observe(e)})},{timeout:1500})}}function touchstartListener(e){_lastTouchstartEvent=e;let t=e.target.closest("a");isPreloadable(t)&&preload(t.href,"high")}function touchstartEmptyListener(e){_lastTouchstartEvent=e}function mouseoverListener(e){if(isEventLikelyTriggeredByTouch(e)||!("closest"in e.target))return;let t=e.target.closest("a");isPreloadable(t)&&(t.addEventListener("mouseout",mouseoutListener,{passive:!0}),_mouseoverTimer=setTimeout(()=>{preload(t.href,"high"),_mouseoverTimer=null},_delayOnHover))}function mousedownListener(e){if(isEventLikelyTriggeredByTouch(e))return;let t=e.target.closest("a");isPreloadable(t)&&preload(t.href,"high")}function mouseoutListener(e){(!e.relatedTarget||e.target.closest("a")!=e.relatedTarget.closest("a"))&&_mouseoverTimer&&(clearTimeout(_mouseoverTimer),_mouseoverTimer=null)}function mousedownShortcutListener(e){if(isEventLikelyTriggeredByTouch(e))return;let t=e.target.closest("a");if(e.which>1||e.metaKey||e.ctrlKey||!t)return;t.addEventListener("click",function(e){1337!=e.detail&&e.preventDefault()},{capture:!0,passive:!1,once:!0});let n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});t.dispatchEvent(n)}function isEventLikelyTriggeredByTouch(e){if(!_lastTouchstartEvent||!e||e.target!=_lastTouchstartEvent.target)return!1;let t=e.timeStamp,n=t-_lastTouchstartEvent.timeStamp;return n<2500}function isPreloadable(e){if(e&&e.href&&(!_useWhitelist||"instant"in e.dataset)&&(e.origin==location.origin||(_allowExternalLinks||"instant"in e.dataset)&&_chromiumMajorVersionInUserAgent)){if(["http:","https:"].includes(e.protocol)&&("http:"!=e.protocol||"https:"!=location.protocol)&&(_allowQueryString||!e.search||"instant"in e.dataset)&&(!e.hash||e.pathname+e.search!=location.pathname+location.search)&&!("noInstant"in e.dataset))return!0}}function preload(e,t="auto"){!_preloadedList.has(e)&&("none"!=_speculationRulesType?preloadUsingSpeculationRules(e):preloadUsingLinkElement(e,t),_preloadedList.add(e))}function preloadUsingSpeculationRules(e){let t=document.createElement("script");t.type="speculationrules",t.textContent=JSON.stringify({[_speculationRulesType]:[{source:"list",urls:[e]}]}),document.head.appendChild(t)}function preloadUsingLinkElement(e,t="auto"){let n=document.createElement("link");n.rel="prefetch",n.href=e,n.fetchPriority=t,n.as="document",document.head.appendChild(n)}init();
window.litespeed_ui_events=window.litespeed_ui_events||["mouseover","click","keydown","wheel","touchmove","touchstart"];var urlCreator=window.URL||window.webkitURL;function litespeed_load_delayed_js_force(){console.log("[LiteSpeed] Start Load JS Delayed"),litespeed_ui_events.forEach(e=>{window.removeEventListener(e,litespeed_load_delayed_js_force,{passive:!0})}),document.querySelectorAll("iframe[data-litespeed-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-litespeed-src"))}),"loading"==document.readyState?window.addEventListener("DOMContentLoaded",litespeed_load_delayed_js):litespeed_load_delayed_js()}litespeed_ui_events.forEach(e=>{window.addEventListener(e,litespeed_load_delayed_js_force,{passive:!0})});async function litespeed_load_delayed_js(){let t=[];for(var d in document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e=>{t.push(e)}),t)await new Promise(e=>litespeed_load_one(t[d],e));document.dispatchEvent(new Event("DOMContentLiteSpeedLoaded")),window.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"))}function litespeed_load_one(t,e){console.log("[LiteSpeed] Load ",t);var d=document.createElement("script");d.addEventListener("load",e),d.addEventListener("error",e),t.getAttributeNames().forEach(e=>{"type"!=e&&d.setAttribute("data-src"==e?"src":e,t.getAttribute(e))});let a=!(d.type="text/javascript");!d.src&&t.textContent&&(d.src=litespeed_inline2src(t.textContent),a=!0),t.after(d),t.remove(),a&&e()}function litespeed_inline2src(t){try{var d=urlCreator.createObjectURL(new Blob([t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1")],{type:"text/javascript"}))}catch(e){d="data:text/javascript;base64,"+btoa(t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1"))}return d}(function ($) {
	'use strict';

	/**
	 * All of the code for your public-facing JavaScript source
	 * should reside in this file.
	 *
	 * Note: It has been assumed you will write jQuery code here, so the
	 * $ function reference has been prepared for usage within the scope
	 * of this function.
	 *
	 * This enables you to define handlers, for when the DOM is ready:
	 *
	 * $(function() {
	 *
	 * }) ;
	 *
	 * When the window is loaded:
	 *
	 * $( window ).load(function() {
	 *
	 * }) ;
	 *
	 * ...and/or other possibilities.
	 *
	 * Ideally, it is not considered best practise to attach more than a
	 * single DOM-ready or window-load handler for a particular page.
	 * Although scripts in the WordPress core, Plugins and Themes may be
	 * practising this, we should strive to set a better example in our own work.
	 */

	jQuery(document).ready(function () {
		/************** Common LiteSpeed JS **************/
		// Link confirm
		$('[data-litespeed-cfm]').on('click', function (event) {
			cfm_txt = $.trim($(this).data('litespeed-cfm')).replace(/\\n/g, '\n');
			if (cfm_txt === '') {
				return true;
			}
			if (confirm(cfm_txt)) {
				return true;
			}
			event.preventDefault();
			event.stopImmediatePropagation();
			return false;
		});

		/************** LSWCP JS ****************/
		// page tab switch functionality
		(function () {
			var hash = window.location.hash.substr(1);
			var $tabs = $('[data-litespeed-tab]');
			var $subtabs = $('[data-litespeed-subtab]');

			// Handle tab and subtab events
			var tab_action = function ($elems, type) {
				type = litespeed_tab_type(type);
				var data = 'litespeed-' + type;
				$elems.on('click', function (_event) {
					litespeed_display_tab($(this).data(data), type);
					document.cookie = 'litespeed_' + type + '=' + $(this).data(data);
					$(this).blur();
				});
			};
			tab_action($tabs);
			tab_action($subtabs, 'subtab');

			if (!$tabs.length > 0) {
				// No tabs exist
				return;
			}

			// Find hash in tabs and subtabs
			var $hash_tab = $tabs.filter('[data-litespeed-tab="' + hash + '"]:first');
			var $hash_subtab = $subtabs.filter('[data-litespeed-subtab="' + hash + '"]:first');

			// Find tab name
			var $subtab;
			var $tab;
			var tab_name;
			if ($hash_subtab.length > 0) {
				// Hash is a subtab
				$tab = $hash_subtab.closest('[data-litespeed-layout]');
				if ($tab.length > 0) {
					$subtab = $hash_subtab;
					tab_name = $tab.data('litespeed-layout');
				}
			}
			if (typeof $tab === 'undefined' || $tab.length < 1) {
				// Maybe hash is a tab
				$tab = $hash_tab;
				if ($tab.length < 1) {
					// Maybe tab cookie exists
					$tab = litespeed_tab_cookie($tabs);
					if ($tab.length < 1) {
						// Use the first tab by default
						$tab = $tabs.first();
					}
				}
				if (typeof tab_name === 'undefined') {
					tab_name = $tab.data('litespeed-tab');
				}
			}

			// Always display a tab
			litespeed_display_tab(tab_name);

			// Find subtab name
			if (typeof $subtab === 'undefined' || $subtab.length < 1) {
				$subtab = litespeed_tab_cookie($subtabs, 'subtab');
			}
			if ($subtab.length > 0) {
				var subtab_name = $subtab.data('litespeed-subtab');
				// Display a subtab
				litespeed_display_tab(subtab_name, 'subtab');
			}
		})();

		/******************** Clear whm msg ********************/
		$(document).on('click', '.lscwp-whm-notice .notice-dismiss', function () {
			$.get(litespeed_data.ajax_url_dismiss_whm);
		});
		/******************** Clear rule conflict msg ********************/
		$(document).on('click', '.lscwp-notice-ruleconflict .notice-dismiss', function () {
			$.get(litespeed_data.ajax_url_dismiss_ruleconflict);
		});

		/** Accesskey **/
		$('[litespeed-accesskey]').map(function () {
			var thiskey = $(this).attr('litespeed-accesskey');
			if (thiskey == '') {
				return;
			}
			$(this).attr('title', 'Shortcut : ' + thiskey.toLocaleUpperCase());
			var that = this;
			$(document).on('keydown', function (e) {
				if ($(':input:focus').length > 0) return;
				if (event.metaKey) return;
				if (event.ctrlKey) return;
				if (event.altKey) return;
				if (event.shiftKey) return;
				if (litespeed_keycode(thiskey.charCodeAt(0))) $(that)[0].click();
			});
		});

		/** Lets copy one more submit button **/
		if ($('input[name="LSCWP_CTRL"]').length > 0) {
			var btn = $('input.litespeed-duplicate-float');
			btn.clone().addClass('litespeed-float-submit').removeAttr('id').insertAfter(btn);
		}
		if ($('input[id="LSCWP_NONCE"]').length > 0) {
			$('input[id="LSCWP_NONCE"]').removeAttr('id');
		}

		/**
		 * Human readable time conversation
		 * @since  3.0
		 */
		if ($('[data-litespeed-readable]').length > 0) {
			$('[data-litespeed-readable]').each(function (index, el) {
				var that = this;
				var $input = $(this).siblings('input[type="text"]');

				var txt = litespeed_readable_time($input.val());
				$(that).html(txt ? '= ' + txt : '');

				$input.on('keyup', function (event) {
					var txt = litespeed_readable_time($(this).val());
					$(that).html(txt ? '= ' + txt : '');
				});
			});
		}

		/**
		 * Click only once
		 */
		if ($('[data-litespeed-onlyonce]').length > 0) {
			$('[data-litespeed-onlyonce]').on('click', function (e) {
				if ($(this).hasClass('disabled')) {
					e.preventDefault();
				}
				$(this).addClass('disabled');
			});
		}
	});
})(jQuery);

/**
 * Plural handler
 */
function litespeed_plural($num, $txt) {
	if ($num > 1) return $num + ' ' + $txt + 's';

	return $num + ' ' + $txt;
}

/**
 * Convert seconds to readable time
 */
function litespeed_readable_time(seconds) {
	if (seconds < 60) {
		return '';
	}

	var second = Math.floor(seconds % 60);
	var minute = Math.floor((seconds / 60) % 60);
	var hour = Math.floor((seconds / 3600) % 24);
	var day = Math.floor((seconds / 3600 / 24) % 7);
	var week = Math.floor(seconds / 3600 / 24 / 7);

	var str = '';
	if (week) str += ' ' + litespeed_plural(week, 'week');
	if (day) str += ' ' + litespeed_plural(day, 'day');
	if (hour) str += ' ' + litespeed_plural(hour, 'hour');
	if (minute) str += ' ' + litespeed_plural(minute, 'minute');
	if (second) str += ' ' + litespeed_plural(second, 'second');

	return str;
}

/**
 * Trigger a click event on an element
 * @since  1.8
 */
function litespeed_trigger_click(selector) {
	jQuery(selector).trigger('click');
}

function litespeed_keycode(num) {
	var num = num || 13;
	var code = window.event ? event.keyCode : event.which;
	if (num == code) return true;
	return false;
}

/**
 * Normalize specified tab type
 * @since  4.7
 */
function litespeed_tab_type(type) {
	return 'subtab' === type ? type : 'tab';
}

/**
 * Sniff cookies for tab and subtab
 * @since  4.7
 */
function litespeed_tab_cookie($elems, type) {
	type = litespeed_tab_type(type);
	var re = new RegExp('(?:^|.*;)\\s*litespeed_' + type + '\\s*=\\s*([^;]*).*$|^.*$', 'ms');
	var name = document.cookie.replace(re, '$1');
	return $elems.filter('[data-litespeed-' + type + '="' + name + '"]:first');
}

function litespeed_display_tab(name, type) {
	type = litespeed_tab_type(type);
	var $tabs;
	var $layouts;
	var classname;
	var layout_type;
	if ('subtab' === type) {
		classname = 'focus';
		layout_type = 'sublayout';
		$tabs = jQuery('[data-litespeed-subtab="' + name + '"]')
			.siblings('[data-litespeed-subtab]')
			.addBack();
		$layouts = jQuery('[data-litespeed-sublayout="' + name + '"]')
			.siblings('[data-litespeed-sublayout]')
			.addBack();
	} else {
		// Maybe handle subtabs
		var $subtabs = jQuery('[data-litespeed-layout="' + name + '"] [data-litespeed-subtab]');
		if ($subtabs.length > 0) {
			// Find subtab name
			var $subtab = litespeed_tab_cookie($subtabs, 'subtab');
			if ($subtab.length < 1) {
				$subtab = jQuery('[data-litespeed-layout="' + name + '"] [data-litespeed-subtab]:first');
			}
			if ($subtab.length > 0) {
				var subtab_name = $subtab.data('litespeed-subtab');
				// Display a subtab
				litespeed_display_tab(subtab_name, 'subtab');
			}
		}
		classname = 'nav-tab-active';
		layout_type = 'layout';
		$tabs = jQuery('[data-litespeed-tab]');
		$layouts = jQuery('[data-litespeed-layout]');
	}
	$tabs.removeClass(classname);
	$tabs.filter('[data-litespeed-' + type + '="' + name + '"]').addClass(classname);
	$layouts.hide();
	$layouts.filter('[data-litespeed-' + layout_type + '="' + name + '"]').show();
}

function litespeed_copy_to_clipboard(elementId, clickedElement) {
	var range = document.createRange();
	range.selectNode(document.getElementById(elementId));
	window.getSelection().removeAllRanges();
	window.getSelection().addRange(range);
	document.execCommand('copy');
	window.getSelection().removeAllRanges();

	clickedElement.setAttribute('aria-label', 'Copied!');
}
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
!function(a){"use strict";var b=function(b,c,d){function e(a){return h.body?a():void setTimeout(function(){e(a)})}function f(){i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"}var g,h=a.document,i=h.createElement("link");if(c)g=c;else{var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]}var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){g.parentNode.insertBefore(i,c?g:g.nextSibling)});var l=function(a){for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){l(a)})};return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);
/*! loadCSS rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */
!function(a){if(a.loadCSS){var b=loadCSS.relpreload={};if(b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}},b.poly=function(){for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)}},!b.support()){b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){b.poly(),a.clearInterval(c)}),a.attachEvent&&a.attachEvent("onload",function(){a.clearInterval(c)})}}}(this);/**
 * Crawler simulation module
 * @author Hai Zheng
 */
class CrawlerSimulate extends React.Component {
	constructor(props) {
		super(props);
		this.state = {
			list: props.list,
		};

		this.handleInputChange = this.handleInputChange.bind(this);
		this.delRow = this.delRow.bind(this);
		this.addNew = this.addNew.bind(this);
	}

	handleInputChange(e, index) {
		const target = e.target;
		const value = target.type === 'checkbox' ? target.checked : target.value;
		const list = this.state.list;
		list[index][target.dataset.type] = value;

		this.setState({
			list: list,
		});
	}

	delRow(index) {
		const data = this.state.list;
		data.splice(index, 1);
		this.setState({ list: data });
	}

	addNew() {
		const list = this.state.list;
		list.push({ name: '', vals: '' });
		this.setState({ list: list });
	}

	render() {
		return (
			<React.Fragment>
				{this.state.list.map((item, i) => (
					<SimulationBlock item={item} key={i} index={i} handleInputChange={this.handleInputChange} delRow={this.delRow} />
				))}

				<p>
					<button type="button" className="button button-link litespeed-form-action litespeed-link-with-icon" onClick={this.addNew}>
						<span className="dashicons dashicons-plus-alt"></span>
						{litespeed_data['lang']['add_cookie_simulation_row']}
					</button>
				</p>
			</React.Fragment>
		);
	}
}

// { name: '', vals: '' }
class SimulationBlock extends React.Component {
	constructor(props) {
		super(props);

		this.handleInputChange = this.handleInputChange.bind(this);
		this.delRow = this.delRow.bind(this);
	}

	handleInputChange(e) {
		this.props.handleInputChange(e, this.props.index);
	}

	delRow() {
		this.props.delRow(this.props.index);
	}

	render() {
		const item = this.props.item;
		return (
			<div className="litespeed-block">
				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">{litespeed_data['lang']['cookie_name']}</label>
					<input
						type="text"
						name={litespeed_data['ids']['crawler_cookies'] + '[name][]'}
						className="regular-text"
						value={item.name}
						data-type="name"
						onChange={this.handleInputChange}
					/>
				</div>
				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">{litespeed_data['lang']['cookie_values']}</label>
					<textarea
						rows="5"
						cols="40"
						name={litespeed_data['ids']['crawler_cookies'] + '[vals][]'}
						placeholder={litespeed_data['lang']['one_per_line']}
						value={Array.isArray(item.vals) ? item.vals.join('\n') : item.vals}
						data-type="vals"
						onChange={this.handleInputChange}
					/>
				</div>
				<div className="litespeed-col-auto">
					<button type="button" className="button button-link litespeed-collection-button litespeed-danger" onClick={this.delRow}>
						<span className="dashicons dashicons-dismiss"></span>
						<span className="screen-reader-text">{litespeed_data['lang']['remove_cookie_simulation']}</span>
					</button>
				</div>
			</div>
		);
	}
}
window.litespeed_ui_events = window.litespeed_ui_events || ['mouseover', 'click', 'keydown', 'wheel', 'touchmove', 'touchstart'];
var urlCreator = window.URL || window.webkitURL;

// const litespeed_js_delay_timer = setTimeout( litespeed_load_delayed_js, 70 );

litespeed_ui_events.forEach(e => {
	window.addEventListener(e, litespeed_load_delayed_js_force, { passive: true }); // Use passive to save GPU in interaction
});

function litespeed_load_delayed_js_force() {
	console.log('[LiteSpeed] Start Load JS Delayed');
	// clearTimeout( litespeed_js_delay_timer );
	litespeed_ui_events.forEach(e => {
		window.removeEventListener(e, litespeed_load_delayed_js_force, { passive: true });
	});

	document.querySelectorAll('iframe[data-litespeed-src]').forEach(e => {
		e.setAttribute('src', e.getAttribute('data-litespeed-src'));
	});

	// Prevent early loading
	if (document.readyState == 'loading') {
		window.addEventListener('DOMContentLoaded', litespeed_load_delayed_js);
	} else {
		litespeed_load_delayed_js();
	}
}

async function litespeed_load_delayed_js() {
	let js_list = [];
	// Prepare all JS
	document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e => {
		js_list.push(e);
	});

	// Load by sequence
	for (let script in js_list) {
		await new Promise(resolve => litespeed_load_one(js_list[script], resolve));
	}

	// Simulate doc.loaded
	document.dispatchEvent(new Event('DOMContentLiteSpeedLoaded'));
	window.dispatchEvent(new Event('DOMContentLiteSpeedLoaded'));
}

/**
 * Load one JS synchronously
 */
function litespeed_load_one(e, resolve) {
	console.log('[LiteSpeed] Load ', e);

	var e2 = document.createElement('script');

	e2.addEventListener('load', resolve);
	e2.addEventListener('error', resolve);

	var attrs = e.getAttributeNames();
	attrs.forEach(aname => {
		if (aname == 'type') return;
		e2.setAttribute(aname == 'data-src' ? 'src' : aname, e.getAttribute(aname));
	});
	e2.type = 'text/javascript';

	let is_inline = false;
	// Inline script
	if (!e2.src && e.textContent) {
		e2.src = litespeed_inline2src(e.textContent);
		// e2.textContent = e.textContent;
		is_inline = true;
	}

	// Deploy to dom
	e.after(e2);
	e.remove();
	// document.head.appendChild(e2);
	// e2 = e.cloneNode(true)
	// e2.setAttribute( 'type', 'text/javascript' );
	// e2.setAttribute( 'data-delayed', '1' );

	// Kick off resolve for inline
	if (is_inline) resolve();
}

/**
 * Prepare inline script
 */
function litespeed_inline2src(data) {
	try {
		var src = urlCreator.createObjectURL(
			new Blob([data.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm, '$1')], {
				type: 'text/javascript',
			}),
		);
	} catch (e) {
		var src = 'data:text/javascript;base64,' + btoa(data.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm, '$1'));
	}

	return src;
}
!function(a){"use strict";var b=function(b,c,d){function e(a){return h.body?a():void setTimeout(function(){e(a)})}function f(){i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"}var g,h=a.document,i=h.createElement("link");if(c)g=c;else{var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]}var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){g.parentNode.insertBefore(i,c?g:g.nextSibling)});var l=function(a){for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){l(a)})};return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);!function(a){if(a.loadCSS){var b=loadCSS.relpreload={};if(b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}},b.poly=function(){for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)}},!b.support()){b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){b.poly(),a.clearInterval(c)}),a.attachEvent&&a.attachEvent("onload",function(){a.clearInterval(c)})}}}(this);!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function o(t){return e({},at,t)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,vt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,vt,e)}function i(t){return s(t,null),0}function r(t){return null===c(t)}function u(t){return c(t)===_t}function d(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function f(t,e){et?t.classList.add(e):t.className+=(t.className?" ":"")+e}function _(t,e){et?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function v(t,e){!e||(e=e._observer)&&e.unobserve(t)}function b(t,e){t&&(t.loadingCount+=e)}function p(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function h(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function m(t){return!!t[lt]}function E(t){return t[lt]}function I(t){return delete t[lt]}function y(e,t){var n;m(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[lt]=n)}function L(a,t){var o;m(a)&&(o=E(a),t.forEach(function(t){var e,n;e=a,(t=o[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function k(t,e,n){f(t,e.class_loading),s(t,st),n&&(b(n,1),d(e.callback_loading,t,n))}function A(t,e,n){n&&t.setAttribute(e,n)}function O(t,e){A(t,rt,l(t,e.data_sizes)),A(t,it,l(t,e.data_srcset)),A(t,ot,l(t,e.data_src))}function w(t,e,n){var a=l(t,e.data_bg_multi),o=l(t,e.data_bg_multi_hidpi);(a=nt&&o?o:a)&&(t.style.backgroundImage=a,n=n,f(t=t,(e=e).class_applied),s(t,dt),n&&(e.unobserve_completed&&v(t,e),d(e.callback_applied,t,n)))}function x(t,e){!e||0<e.loadingCount||0<e.toLoadCount||d(t.callback_finish,e)}function M(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function N(t){return!!t.llEvLisnrs}function z(t){if(N(t)){var e,n,a=t.llEvLisnrs;for(e in a){var o=a[e];n=e,o=o,t.removeEventListener(n,o)}delete t.llEvLisnrs}}function C(t,e,n){var a;delete t.llTempImage,b(n,-1),(a=n)&&--a.toLoadCount,_(t,e.class_loading),e.unobserve_completed&&v(t,n)}function R(i,r,c){var l=g(i)||i;N(l)||function(t,e,n){N(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";M(t,a,e),M(t,"error",n)}(l,function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_loaded),s(e,ut),d(n.callback_loaded,e,a),o||x(n,a),z(l)},function(t){var e,n,a,o;n=r,a=c,o=u(e=i),C(e,n,a),f(e,n.class_error),s(e,ft),d(n.callback_error,e,a),o||x(n,a),z(l)})}function T(t,e,n){var a,o,i,r,c;t.llTempImage=document.createElement("IMG"),R(t,e,n),m(c=t)||(c[lt]={backgroundImage:c.style.backgroundImage}),i=n,r=l(a=t,(o=e).data_bg),c=l(a,o.data_bg_hidpi),(r=nt&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),k(a,o,i)),w(t,e,n)}function G(t,e,n){var a;R(t,e,n),a=e,e=n,(t=Et[(n=t).tagName])&&(t(n,a),k(n,a,e))}function D(t,e,n){var a;a=t,(-1<It.indexOf(a.tagName)?G:T)(t,e,n)}function S(t,e,n){var a;t.setAttribute("loading","lazy"),R(t,e,n),a=e,(e=Et[(n=t).tagName])&&e(n,a),s(t,_t)}function V(t){t.removeAttribute(ot),t.removeAttribute(it),t.removeAttribute(rt)}function j(t){h(t,function(t){L(t,mt)}),L(t,mt)}function F(t){var e;(e=yt[t.tagName])?e(t):m(e=t)&&(t=E(e),e.style.backgroundImage=t.backgroundImage)}function P(t,e){var n;F(t),n=e,r(e=t)||u(e)||(_(e,n.class_entered),_(e,n.class_exited),_(e,n.class_applied),_(e,n.class_loading),_(e,n.class_loaded),_(e,n.class_error)),i(t),I(t)}function U(t,e,n,a){var o;n.cancel_on_exit&&(c(t)!==st||"IMG"===t.tagName&&(z(t),h(o=t,function(t){V(t)}),V(o),j(t),_(t,n.class_loading),b(a,-1),i(t),d(n.callback_cancel,t,e,a)))}function $(t,e,n,a){var o,i,r=(i=t,0<=bt.indexOf(c(i)));s(t,"entered"),f(t,n.class_entered),_(t,n.class_exited),o=t,i=a,n.unobserve_entered&&v(o,i),d(n.callback_enter,t,e,a),r||D(t,n,a)}function q(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function H(t,o,i){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?$(t.target,t,o,i):(e=t.target,n=t,a=o,t=i,void(r(e)||(f(e,a.class_exited),U(e,n,a,t),d(a.callback_exit,e,n,t))));var e,n,a})}function B(e,n){var t;tt&&!q(e)&&(n._observer=new IntersectionObserver(function(t){H(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function J(t){return Array.prototype.slice.call(t)}function K(t){return t.container.querySelectorAll(t.elements_selector)}function Q(t){return c(t)===ft}function W(t,e){return e=t||K(e),J(e).filter(r)}function X(e,t){var n;(n=K(e),J(n).filter(Q)).forEach(function(t){_(t,e.class_error),i(t)}),t.update()}function t(t,e){var n,a,t=o(t);this._settings=t,this.loadingCount=0,B(t,this),n=t,a=this,Y&&window.addEventListener("online",function(){X(n,a)}),this.update(e)}var Y="undefined"!=typeof window,Z=Y&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),tt=Y&&"IntersectionObserver"in window,et=Y&&"classList"in document.createElement("p"),nt=Y&&1<window.devicePixelRatio,at={elements_selector:".lazy",container:Z||Y?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",it="srcset",rt="sizes",ct="poster",lt="llOriginalAttrs",st="loading",ut="loaded",dt="applied",ft="error",_t="native",gt="data-",vt="ll-status",bt=[st,ut,dt,ft],pt=[ot],ht=[ot,ct],mt=[ot,it,rt],Et={IMG:function(t,e){h(t,function(t){y(t,mt),O(t,e)}),y(t,mt),O(t,e)},IFRAME:function(t,e){y(t,pt),A(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){y(t,pt),A(t,ot,l(t,e.data_src))}),y(t,ht),A(t,ct,l(t,e.data_poster)),A(t,ot,l(t,e.data_src)),t.load()}},It=["IMG","IFRAME","VIDEO"],yt={IMG:j,IFRAME:function(t){L(t,pt)},VIDEO:function(t){a(t,function(t){L(t,pt)}),L(t,ht),t.load()}},Lt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,o=this._settings,i=W(t,o);{if(p(this,i.length),!Z&&tt)return q(o)?(e=o,n=this,i.forEach(function(t){-1!==Lt.indexOf(t.tagName)&&S(t,e,n)}),void p(n,0)):(t=this._observer,o=i,t.disconnect(),a=t,void o.forEach(function(t){a.observe(t)}));this.loadAll(i)}},destroy:function(){this._observer&&this._observer.disconnect(),K(this._settings).forEach(function(t){I(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;W(t,n).forEach(function(t){v(t,e),D(t,n,e)})},restoreAll:function(){var e=this._settings;K(e).forEach(function(t){P(t,e)})}},t.load=function(t,e){e=o(e);D(t,e)},t.resetStatus=function(t){i(t)},t}),function(t,e){"use strict";function n(){e.body.classList.add("litespeed_lazyloaded")}function a(){console.log("[LiteSpeed] Start Lazy Load"),o=new LazyLoad(Object.assign({},t.lazyLoadOptions||{},{elements_selector:"[data-lazyloaded]",callback_finish:n})),i=function(){o.update()},t.MutationObserver&&new MutationObserver(i).observe(e.documentElement,{childList:!0,subtree:!0,attributes:!0})}var o,i;t.addEventListener?t.addEventListener("load",a,!1):t.attachEvent("onload",a)}(window,document);(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined'
		? (module.exports = factory())
		: typeof define === 'function' && define.amd
		? define(factory)
		: ((global = typeof globalThis !== 'undefined' ? globalThis : global || self), (global.LazyLoad = factory()));
})(this, function () {
	'use strict';

	function _extends() {
		_extends =
			Object.assign ||
			function (target) {
				for (var i = 1; i < arguments.length; i++) {
					var source = arguments[i];

					for (var key in source) {
						if (Object.prototype.hasOwnProperty.call(source, key)) {
							target[key] = source[key];
						}
					}
				}

				return target;
			};

		return _extends.apply(this, arguments);
	}

	var runningOnBrowser = typeof window !== 'undefined';
	var isBot = (runningOnBrowser && !('onscroll' in window)) || (typeof navigator !== 'undefined' && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent));
	var supportsIntersectionObserver = runningOnBrowser && 'IntersectionObserver' in window;
	var supportsClassList = runningOnBrowser && 'classList' in document.createElement('p');
	var isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;

	var defaultSettings = {
		elements_selector: '.lazy',
		container: isBot || runningOnBrowser ? document : null,
		threshold: 300,
		thresholds: null,
		data_src: 'src',
		data_srcset: 'srcset',
		data_sizes: 'sizes',
		data_bg: 'bg',
		data_bg_hidpi: 'bg-hidpi',
		data_bg_multi: 'bg-multi',
		data_bg_multi_hidpi: 'bg-multi-hidpi',
		data_poster: 'poster',
		class_applied: 'applied',
		class_loading: 'litespeed-loading',
		class_loaded: 'litespeed-loaded', // https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lazy-load-images
		class_error: 'error',
		class_entered: 'entered',
		class_exited: 'exited',
		unobserve_completed: true,
		unobserve_entered: false,
		cancel_on_exit: true,
		callback_enter: null,
		callback_exit: null,
		callback_applied: null,
		callback_loading: null,
		callback_loaded: null,
		callback_error: null,
		callback_finish: null,
		callback_cancel: null,
		use_native: false,
	};
	var getExtendedSettings = function getExtendedSettings(customSettings) {
		return _extends({}, defaultSettings, customSettings);
	};

	/* Creates instance and notifies it through the window element */
	var createInstance = function createInstance(classObj, options) {
		var event;
		var eventString = 'LazyLoad::Initialized';
		var instance = new classObj(options);

		try {
			// Works in modern browsers
			event = new CustomEvent(eventString, {
				detail: {
					instance: instance,
				},
			});
		} catch (err) {
			// Works in Internet Explorer (all versions)
			event = document.createEvent('CustomEvent');
			event.initCustomEvent(eventString, false, false, {
				instance: instance,
			});
		}

		window.dispatchEvent(event);
	};
	/* Auto initialization of one or more instances of lazyload, depending on the
      options passed in (plain object or an array) */

	var autoInitialize = function autoInitialize(classObj, options) {
		if (!options) {
			return;
		}

		if (!options.length) {
			// Plain object
			createInstance(classObj, options);
		} else {
			// Array of objects
			for (var i = 0, optionsItem; (optionsItem = options[i]); i += 1) {
				createInstance(classObj, optionsItem);
			}
		}
	};

	var SRC = 'src';
	var SRCSET = 'srcset';
	var SIZES = 'sizes';
	var POSTER = 'poster';
	var ORIGINALS = 'llOriginalAttrs';

	var statusLoading = 'loading';
	var statusLoaded = 'loaded';
	var statusApplied = 'applied';
	var statusEntered = 'entered';
	var statusError = 'error';
	var statusNative = 'native';

	var dataPrefix = 'data-';
	var statusDataName = 'll-status';
	var getData = function getData(element, attribute) {
		return element.getAttribute(dataPrefix + attribute);
	};
	var setData = function setData(element, attribute, value) {
		var attrName = dataPrefix + attribute;

		if (value === null) {
			element.removeAttribute(attrName);
			return;
		}

		element.setAttribute(attrName, value);
	};
	var getStatus = function getStatus(element) {
		return getData(element, statusDataName);
	};
	var setStatus = function setStatus(element, status) {
		return setData(element, statusDataName, status);
	};
	var resetStatus = function resetStatus(element) {
		return setStatus(element, null);
	};
	var hasEmptyStatus = function hasEmptyStatus(element) {
		return getStatus(element) === null;
	};
	var hasStatusLoading = function hasStatusLoading(element) {
		return getStatus(element) === statusLoading;
	};
	var hasStatusError = function hasStatusError(element) {
		return getStatus(element) === statusError;
	};
	var hasStatusNative = function hasStatusNative(element) {
		return getStatus(element) === statusNative;
	};
	var statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];
	var hadStartedLoading = function hadStartedLoading(element) {
		return statusesAfterLoading.indexOf(getStatus(element)) >= 0;
	};

	var safeCallback = function safeCallback(callback, arg1, arg2, arg3) {
		if (!callback) {
			return;
		}

		if (arg3 !== undefined) {
			callback(arg1, arg2, arg3);
			return;
		}

		if (arg2 !== undefined) {
			callback(arg1, arg2);
			return;
		}

		callback(arg1);
	};

	var addClass = function addClass(element, className) {
		if (supportsClassList) {
			element.classList.add(className);
			return;
		}

		element.className += (element.className ? ' ' : '') + className;
	};
	var removeClass = function removeClass(element, className) {
		if (supportsClassList) {
			element.classList.remove(className);
			return;
		}

		element.className = element.className
			.replace(new RegExp('(^|\\s+)' + className + '(\\s+|$)'), ' ')
			.replace(/^\s+/, '')
			.replace(/\s+$/, '');
	};

	var addTempImage = function addTempImage(element) {
		element.llTempImage = document.createElement('IMG');
	};
	var deleteTempImage = function deleteTempImage(element) {
		delete element.llTempImage;
	};
	var getTempImage = function getTempImage(element) {
		return element.llTempImage;
	};

	var unobserve = function unobserve(element, instance) {
		if (!instance) return;
		var observer = instance._observer;
		if (!observer) return;
		observer.unobserve(element);
	};
	var resetObserver = function resetObserver(observer) {
		observer.disconnect();
	};
	var unobserveEntered = function unobserveEntered(element, settings, instance) {
		if (settings.unobserve_entered) unobserve(element, instance);
	};

	var updateLoadingCount = function updateLoadingCount(instance, delta) {
		if (!instance) return;
		instance.loadingCount += delta;
	};
	var decreaseToLoadCount = function decreaseToLoadCount(instance) {
		if (!instance) return;
		instance.toLoadCount -= 1;
	};
	var setToLoadCount = function setToLoadCount(instance, value) {
		if (!instance) return;
		instance.toLoadCount = value;
	};
	var isSomethingLoading = function isSomethingLoading(instance) {
		return instance.loadingCount > 0;
	};
	var haveElementsToLoad = function haveElementsToLoad(instance) {
		return instance.toLoadCount > 0;
	};

	var getSourceTags = function getSourceTags(parentTag) {
		var sourceTags = [];

		for (var i = 0, childTag; (childTag = parentTag.children[i]); i += 1) {
			if (childTag.tagName === 'SOURCE') {
				sourceTags.push(childTag);
			}
		}

		return sourceTags;
	};

	var forEachPictureSource = function forEachPictureSource(element, fn) {
		var parent = element.parentNode;

		if (!parent || parent.tagName !== 'PICTURE') {
			return;
		}

		var sourceTags = getSourceTags(parent);
		sourceTags.forEach(fn);
	};
	var forEachVideoSource = function forEachVideoSource(element, fn) {
		var sourceTags = getSourceTags(element);
		sourceTags.forEach(fn);
	};

	var attrsSrc = [SRC];
	var attrsSrcPoster = [SRC, POSTER];
	var attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];
	var hasOriginalAttrs = function hasOriginalAttrs(element) {
		return !!element[ORIGINALS];
	};
	var getOriginalAttrs = function getOriginalAttrs(element) {
		return element[ORIGINALS];
	};
	var deleteOriginalAttrs = function deleteOriginalAttrs(element) {
		return delete element[ORIGINALS];
	}; // ## SAVE ##

	var setOriginalsObject = function setOriginalsObject(element, attributes) {
		if (hasOriginalAttrs(element)) {
			return;
		}

		var originals = {};
		attributes.forEach(function (attribute) {
			originals[attribute] = element.getAttribute(attribute);
		});
		element[ORIGINALS] = originals;
	};
	var saveOriginalBackgroundStyle = function saveOriginalBackgroundStyle(element) {
		if (hasOriginalAttrs(element)) {
			return;
		}

		element[ORIGINALS] = {
			backgroundImage: element.style.backgroundImage,
		};
	}; // ## RESTORE ##

	var setOrResetAttribute = function setOrResetAttribute(element, attrName, value) {
		if (!value) {
			element.removeAttribute(attrName);
			return;
		}

		element.setAttribute(attrName, value);
	};

	var restoreOriginalAttrs = function restoreOriginalAttrs(element, attributes) {
		if (!hasOriginalAttrs(element)) {
			return;
		}

		var originals = getOriginalAttrs(element);
		attributes.forEach(function (attribute) {
			setOrResetAttribute(element, attribute, originals[attribute]);
		});
	};
	var restoreOriginalBgImage = function restoreOriginalBgImage(element) {
		if (!hasOriginalAttrs(element)) {
			return;
		}

		var originals = getOriginalAttrs(element);
		element.style.backgroundImage = originals.backgroundImage;
	};

	var manageApplied = function manageApplied(element, settings, instance) {
		addClass(element, settings.class_applied);
		setStatus(element, statusApplied); // Instance is not provided when loading is called from static class

		if (!instance) return;

		if (settings.unobserve_completed) {
			// Unobserve now because we can't do it on load
			unobserve(element, settings);
		}

		safeCallback(settings.callback_applied, element, instance);
	};
	var manageLoading = function manageLoading(element, settings, instance) {
		addClass(element, settings.class_loading);
		setStatus(element, statusLoading); // Instance is not provided when loading is called from static class

		if (!instance) return;
		updateLoadingCount(instance, +1);
		safeCallback(settings.callback_loading, element, instance);
	};
	var setAttributeIfValue = function setAttributeIfValue(element, attrName, value) {
		if (!value) {
			return;
		}

		element.setAttribute(attrName, value);
	};
	var setImageAttributes = function setImageAttributes(element, settings) {
		setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));
		setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));
		setAttributeIfValue(element, SRC, getData(element, settings.data_src));
	};
	var setSourcesImg = function setSourcesImg(imgEl, settings) {
		forEachPictureSource(imgEl, function (sourceTag) {
			setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);
			setImageAttributes(sourceTag, settings);
		});
		setOriginalsObject(imgEl, attrsSrcSrcsetSizes);
		setImageAttributes(imgEl, settings);
	};
	var setSourcesIframe = function setSourcesIframe(iframe, settings) {
		setOriginalsObject(iframe, attrsSrc);
		setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));
	};
	var setSourcesVideo = function setSourcesVideo(videoEl, settings) {
		forEachVideoSource(videoEl, function (sourceEl) {
			setOriginalsObject(sourceEl, attrsSrc);
			setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));
		});
		setOriginalsObject(videoEl, attrsSrcPoster);
		setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));
		setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));
		videoEl.load();
	};
	var setBackground = function setBackground(element, settings, instance) {
		var bg1xValue = getData(element, settings.data_bg);
		var bgHiDpiValue = getData(element, settings.data_bg_hidpi);
		var bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;
		if (!bgDataValue) return;
		element.style.backgroundImage = 'url("'.concat(bgDataValue, '")');
		getTempImage(element).setAttribute(SRC, bgDataValue);
		manageLoading(element, settings, instance);
	}; // NOTE: THE TEMP IMAGE TRICK CANNOT BE DONE WITH data-multi-bg
	// BECAUSE INSIDE ITS VALUES MUST BE WRAPPED WITH URL() AND ONE OF THEM
	// COULD BE A GRADIENT BACKGROUND IMAGE

	var setMultiBackground = function setMultiBackground(element, settings, instance) {
		var bg1xValue = getData(element, settings.data_bg_multi);
		var bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);
		var bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;

		if (!bgDataValue) {
			return;
		}

		element.style.backgroundImage = bgDataValue;
		manageApplied(element, settings, instance);
	};
	var setSourcesFunctions = {
		IMG: setSourcesImg,
		IFRAME: setSourcesIframe,
		VIDEO: setSourcesVideo,
	};
	var setSourcesNative = function setSourcesNative(element, settings) {
		var setSourcesFunction = setSourcesFunctions[element.tagName];

		if (!setSourcesFunction) {
			return;
		}

		setSourcesFunction(element, settings);
	};
	var setSources = function setSources(element, settings, instance) {
		var setSourcesFunction = setSourcesFunctions[element.tagName];

		if (!setSourcesFunction) {
			return;
		}

		setSourcesFunction(element, settings);
		manageLoading(element, settings, instance);
	};

	var elementsWithLoadEvent = ['IMG', 'IFRAME', 'VIDEO'];
	var hasLoadEvent = function hasLoadEvent(element) {
		return elementsWithLoadEvent.indexOf(element.tagName) > -1;
	};
	var checkFinish = function checkFinish(settings, instance) {
		if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {
			safeCallback(settings.callback_finish, instance);
		}
	};
	var addEventListener = function addEventListener(element, eventName, handler) {
		element.addEventListener(eventName, handler);
		element.llEvLisnrs[eventName] = handler;
	};
	var removeEventListener = function removeEventListener(element, eventName, handler) {
		element.removeEventListener(eventName, handler);
	};
	var hasEventListeners = function hasEventListeners(element) {
		return !!element.llEvLisnrs;
	};
	var addEventListeners = function addEventListeners(element, loadHandler, errorHandler) {
		if (!hasEventListeners(element)) element.llEvLisnrs = {};
		var loadEventName = element.tagName === 'VIDEO' ? 'loadeddata' : 'load';
		addEventListener(element, loadEventName, loadHandler);
		addEventListener(element, 'error', errorHandler);
	};
	var removeEventListeners = function removeEventListeners(element) {
		if (!hasEventListeners(element)) {
			return;
		}

		var eventListeners = element.llEvLisnrs;

		for (var eventName in eventListeners) {
			var handler = eventListeners[eventName];
			removeEventListener(element, eventName, handler);
		}

		delete element.llEvLisnrs;
	};
	var doneHandler = function doneHandler(element, settings, instance) {
		deleteTempImage(element);
		updateLoadingCount(instance, -1);
		decreaseToLoadCount(instance);
		removeClass(element, settings.class_loading);

		if (settings.unobserve_completed) {
			unobserve(element, instance);
		}
	};
	var loadHandler = function loadHandler(event, element, settings, instance) {
		var goingNative = hasStatusNative(element);
		doneHandler(element, settings, instance);
		addClass(element, settings.class_loaded);
		setStatus(element, statusLoaded);
		safeCallback(settings.callback_loaded, element, instance);
		if (!goingNative) checkFinish(settings, instance);
	};
	var errorHandler = function errorHandler(event, element, settings, instance) {
		var goingNative = hasStatusNative(element);
		doneHandler(element, settings, instance);
		addClass(element, settings.class_error);
		setStatus(element, statusError);
		safeCallback(settings.callback_error, element, instance);
		if (!goingNative) checkFinish(settings, instance);
	};
	var addOneShotEventListeners = function addOneShotEventListeners(element, settings, instance) {
		var elementToListenTo = getTempImage(element) || element;

		if (hasEventListeners(elementToListenTo)) {
			// This happens when loading is retried twice
			return;
		}

		var _loadHandler = function _loadHandler(event) {
			loadHandler(event, element, settings, instance);
			removeEventListeners(elementToListenTo);
		};

		var _errorHandler = function _errorHandler(event) {
			errorHandler(event, element, settings, instance);
			removeEventListeners(elementToListenTo);
		};

		addEventListeners(elementToListenTo, _loadHandler, _errorHandler);
	};

	var loadBackground = function loadBackground(element, settings, instance) {
		addTempImage(element);
		addOneShotEventListeners(element, settings, instance);
		saveOriginalBackgroundStyle(element);
		setBackground(element, settings, instance);
		setMultiBackground(element, settings, instance);
	};

	var loadRegular = function loadRegular(element, settings, instance) {
		addOneShotEventListeners(element, settings, instance);
		setSources(element, settings, instance);
	};

	var load = function load(element, settings, instance) {
		if (hasLoadEvent(element)) {
			loadRegular(element, settings, instance);
		} else {
			loadBackground(element, settings, instance);
		}
	};
	var loadNative = function loadNative(element, settings, instance) {
		element.setAttribute('loading', 'lazy');
		addOneShotEventListeners(element, settings, instance);
		setSourcesNative(element, settings);
		setStatus(element, statusNative);
	};

	var removeImageAttributes = function removeImageAttributes(element) {
		element.removeAttribute(SRC);
		element.removeAttribute(SRCSET);
		element.removeAttribute(SIZES);
	};

	var resetSourcesImg = function resetSourcesImg(element) {
		forEachPictureSource(element, function (sourceTag) {
			removeImageAttributes(sourceTag);
		});
		removeImageAttributes(element);
	};

	var restoreImg = function restoreImg(imgEl) {
		forEachPictureSource(imgEl, function (sourceEl) {
			restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);
		});
		restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);
	};
	var restoreVideo = function restoreVideo(videoEl) {
		forEachVideoSource(videoEl, function (sourceEl) {
			restoreOriginalAttrs(sourceEl, attrsSrc);
		});
		restoreOriginalAttrs(videoEl, attrsSrcPoster);
		videoEl.load();
	};
	var restoreIframe = function restoreIframe(iframeEl) {
		restoreOriginalAttrs(iframeEl, attrsSrc);
	};
	var restoreFunctions = {
		IMG: restoreImg,
		IFRAME: restoreIframe,
		VIDEO: restoreVideo,
	};

	var restoreAttributes = function restoreAttributes(element) {
		var restoreFunction = restoreFunctions[element.tagName];

		if (!restoreFunction) {
			restoreOriginalBgImage(element);
			return;
		}

		restoreFunction(element);
	};

	var resetClasses = function resetClasses(element, settings) {
		if (hasEmptyStatus(element) || hasStatusNative(element)) {
			return;
		}

		removeClass(element, settings.class_entered);
		removeClass(element, settings.class_exited);
		removeClass(element, settings.class_applied);
		removeClass(element, settings.class_loading);
		removeClass(element, settings.class_loaded);
		removeClass(element, settings.class_error);
	};

	var restore = function restore(element, settings) {
		restoreAttributes(element);
		resetClasses(element, settings);
		resetStatus(element);
		deleteOriginalAttrs(element);
	};

	var cancelLoading = function cancelLoading(element, entry, settings, instance) {
		if (!settings.cancel_on_exit) return;
		if (!hasStatusLoading(element)) return;
		if (element.tagName !== 'IMG') return; //Works only on images

		removeEventListeners(element);
		resetSourcesImg(element);
		restoreImg(element);
		removeClass(element, settings.class_loading);
		updateLoadingCount(instance, -1);
		resetStatus(element);
		safeCallback(settings.callback_cancel, element, entry, instance);
	};

	var onEnter = function onEnter(element, entry, settings, instance) {
		var dontLoad = hadStartedLoading(element);
		/* Save status
    before setting it, to prevent loading it again. Fixes #526. */

		setStatus(element, statusEntered);
		addClass(element, settings.class_entered);
		removeClass(element, settings.class_exited);
		unobserveEntered(element, settings, instance);
		safeCallback(settings.callback_enter, element, entry, instance);
		if (dontLoad) return;
		load(element, settings, instance);
	};
	var onExit = function onExit(element, entry, settings, instance) {
		if (hasEmptyStatus(element)) return; //Ignore the first pass, at landing

		addClass(element, settings.class_exited);
		cancelLoading(element, entry, settings, instance);
		safeCallback(settings.callback_exit, element, entry, instance);
	};

	var tagsWithNativeLazy = ['IMG', 'IFRAME', 'VIDEO'];
	var shouldUseNative = function shouldUseNative(settings) {
		return settings.use_native && 'loading' in HTMLImageElement.prototype;
	};
	var loadAllNative = function loadAllNative(elements, settings, instance) {
		elements.forEach(function (element) {
			if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {
				return;
			}

			loadNative(element, settings, instance);
		});
		setToLoadCount(instance, 0);
	};

	var isIntersecting = function isIntersecting(entry) {
		return entry.isIntersecting || entry.intersectionRatio > 0;
	};

	var getObserverSettings = function getObserverSettings(settings) {
		return {
			root: settings.container === document ? null : settings.container,
			rootMargin: settings.thresholds || settings.threshold + 'px',
		};
	};

	var intersectionHandler = function intersectionHandler(entries, settings, instance) {
		entries.forEach(function (entry) {
			return isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance);
		});
	};

	var observeElements = function observeElements(observer, elements) {
		elements.forEach(function (element) {
			observer.observe(element);
		});
	};
	var updateObserver = function updateObserver(observer, elementsToObserve) {
		resetObserver(observer);
		observeElements(observer, elementsToObserve);
	};
	var setObserver = function setObserver(settings, instance) {
		if (!supportsIntersectionObserver || shouldUseNative(settings)) {
			return;
		}

		instance._observer = new IntersectionObserver(function (entries) {
			intersectionHandler(entries, settings, instance);
		}, getObserverSettings(settings));
	};

	var toArray = function toArray(nodeSet) {
		return Array.prototype.slice.call(nodeSet);
	};
	var queryElements = function queryElements(settings) {
		return settings.container.querySelectorAll(settings.elements_selector);
	};
	var excludeManagedElements = function excludeManagedElements(elements) {
		return toArray(elements).filter(hasEmptyStatus);
	};
	var hasError = function hasError(element) {
		return hasStatusError(element);
	};
	var filterErrorElements = function filterErrorElements(elements) {
		return toArray(elements).filter(hasError);
	};
	var getElementsToLoad = function getElementsToLoad(elements, settings) {
		return excludeManagedElements(elements || queryElements(settings));
	};

	var retryLazyLoad = function retryLazyLoad(settings, instance) {
		var errorElements = filterErrorElements(queryElements(settings));
		errorElements.forEach(function (element) {
			removeClass(element, settings.class_error);
			resetStatus(element);
		});
		instance.update();
	};
	var setOnlineCheck = function setOnlineCheck(settings, instance) {
		if (!runningOnBrowser) {
			return;
		}

		window.addEventListener('online', function () {
			retryLazyLoad(settings, instance);
		});
	};

	var LazyLoad = function LazyLoad(customSettings, elements) {
		var settings = getExtendedSettings(customSettings);
		this._settings = settings;
		this.loadingCount = 0;
		setObserver(settings, this);
		setOnlineCheck(settings, this);
		this.update(elements);
	};

	LazyLoad.prototype = {
		update: function update(givenNodeset) {
			var settings = this._settings;
			var elementsToLoad = getElementsToLoad(givenNodeset, settings);
			setToLoadCount(this, elementsToLoad.length);

			if (isBot || !supportsIntersectionObserver) {
				this.loadAll(elementsToLoad);
				return;
			}

			if (shouldUseNative(settings)) {
				loadAllNative(elementsToLoad, settings, this);
				return;
			}

			updateObserver(this._observer, elementsToLoad);
		},
		destroy: function destroy() {
			// Observer
			if (this._observer) {
				this._observer.disconnect();
			} // Clean custom attributes on elements

			queryElements(this._settings).forEach(function (element) {
				deleteOriginalAttrs(element);
			}); // Delete all internal props

			delete this._observer;
			delete this._settings;
			delete this.loadingCount;
			delete this.toLoadCount;
		},
		loadAll: function loadAll(elements) {
			var _this = this;

			var settings = this._settings;
			var elementsToLoad = getElementsToLoad(elements, settings);
			elementsToLoad.forEach(function (element) {
				unobserve(element, _this);
				load(element, settings, _this);
			});
		},
		restoreAll: function restoreAll() {
			var settings = this._settings;
			queryElements(settings).forEach(function (element) {
				restore(element, settings);
			});
		},
	};

	LazyLoad.load = function (element, customSettings) {
		var settings = getExtendedSettings(customSettings);
		load(element, settings);
	};

	LazyLoad.resetStatus = function (element) {
		resetStatus(element);
	}; // Automatic instances creation if required (useful for async script loading)

	// if (runningOnBrowser) {
	// 	autoInitialize(LazyLoad, window.lazyLoadOptions);
	// }

	return LazyLoad;
});
/** @license React v17.0.1
 * react.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
(function(){'use strict';(function(c,x){"object"===typeof exports&&"undefined"!==typeof module?x(exports):"function"===typeof define&&define.amd?define(["exports"],x):(c=c||self,x(c.React={}))})(this,function(c){function x(a){if(null===a||"object"!==typeof a)return null;a=Y&&a[Y]||a["@@iterator"];return"function"===typeof a?a:null}function y(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,e=1;e<arguments.length;e++)b+="&args[]="+encodeURIComponent(arguments[e]);return"Minified React error #"+
a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function v(a,b,e){this.props=a;this.context=b;this.refs=Z;this.updater=e||aa}function ba(){}function K(a,b,e){this.props=a;this.context=b;this.refs=Z;this.updater=e||aa}function ca(a,b,e){var l,f={},c=null,da=null;if(null!=b)for(l in void 0!==b.ref&&(da=b.ref),void 0!==b.key&&(c=""+b.key),b)ea.call(b,l)&&!fa.hasOwnProperty(l)&&(f[l]=b[l]);var k=arguments.length-2;if(1===
k)f.children=e;else if(1<k){for(var h=Array(k),d=0;d<k;d++)h[d]=arguments[d+2];f.children=h}if(a&&a.defaultProps)for(l in k=a.defaultProps,k)void 0===f[l]&&(f[l]=k[l]);return{$$typeof:w,type:a,key:c,ref:da,props:f,_owner:L.current}}function va(a,b){return{$$typeof:w,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function M(a){return"object"===typeof a&&null!==a&&a.$$typeof===w}function wa(a){var b={"=":"=0",":":"=2"};return"$"+a.replace(/[=:]/g,function(a){return b[a]})}function N(a,b){return"object"===
typeof a&&null!==a&&null!=a.key?wa(""+a.key):b.toString(36)}function C(a,b,e,l,f){var c=typeof a;if("undefined"===c||"boolean"===c)a=null;var d=!1;if(null===a)d=!0;else switch(c){case "string":case "number":d=!0;break;case "object":switch(a.$$typeof){case w:case ha:d=!0}}if(d)return d=a,f=f(d),a=""===l?"."+N(d,0):l,Array.isArray(f)?(e="",null!=a&&(e=a.replace(ia,"$&/")+"/"),C(f,b,e,"",function(a){return a})):null!=f&&(M(f)&&(f=va(f,e+(!f.key||d&&d.key===f.key?"":(""+f.key).replace(ia,"$&/")+"/")+
a)),b.push(f)),1;d=0;l=""===l?".":l+":";if(Array.isArray(a))for(var k=0;k<a.length;k++){c=a[k];var h=l+N(c,k);d+=C(c,b,e,h,f)}else if(h=x(a),"function"===typeof h)for(a=h.call(a),k=0;!(c=a.next()).done;)c=c.value,h=l+N(c,k++),d+=C(c,b,e,h,f);else if("object"===c)throw b=""+a,Error(y(31,"[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b));return d}function D(a,b,e){if(null==a)return a;var l=[],c=0;C(a,l,"","",function(a){return b.call(e,a,c++)});return l}function xa(a){if(-1===
a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}function n(){var a=ja.current;if(null===a)throw Error(y(321));return a}function O(a,b){var e=a.length;a.push(b);a:for(;;){var c=e-1>>>1,f=a[c];if(void 0!==f&&0<E(f,b))a[c]=b,a[e]=f,e=c;else break a}}function p(a){a=a[0];return void 0===a?null:a}function F(a){var b=
a[0];if(void 0!==b){var e=a.pop();if(e!==b){a[0]=e;a:for(var c=0,f=a.length;c<f;){var d=2*(c+1)-1,g=a[d],k=d+1,h=a[k];if(void 0!==g&&0>E(g,e))void 0!==h&&0>E(h,g)?(a[c]=h,a[k]=e,c=k):(a[c]=g,a[d]=e,c=d);else if(void 0!==h&&0>E(h,e))a[c]=h,a[k]=e,c=k;else break a}}return b}return null}function E(a,b){var e=a.sortIndex-b.sortIndex;return 0!==e?e:a.id-b.id}function P(a){for(var b=p(r);null!==b;){if(null===b.callback)F(r);else if(b.startTime<=a)F(r),b.sortIndex=b.expirationTime,O(q,b);else break;b=p(r)}}
function Q(a){z=!1;P(a);if(!u)if(null!==p(q))u=!0,A(R);else{var b=p(r);null!==b&&G(Q,b.startTime-a)}}function R(a,b){u=!1;z&&(z=!1,S());H=!0;var e=g;try{P(b);for(m=p(q);null!==m&&(!(m.expirationTime>b)||a&&!T());){var c=m.callback;if("function"===typeof c){m.callback=null;g=m.priorityLevel;var f=c(m.expirationTime<=b);b=t();"function"===typeof f?m.callback=f:m===p(q)&&F(q);P(b)}else F(q);m=p(q)}if(null!==m)var d=!0;else{var n=p(r);null!==n&&G(Q,n.startTime-b);d=!1}return d}finally{m=null,g=e,H=!1}}
var w=60103,ha=60106;c.Fragment=60107;c.StrictMode=60108;c.Profiler=60114;var ka=60109,la=60110,ma=60112;c.Suspense=60113;var na=60115,oa=60116;if("function"===typeof Symbol&&Symbol.for){var d=Symbol.for;w=d("react.element");ha=d("react.portal");c.Fragment=d("react.fragment");c.StrictMode=d("react.strict_mode");c.Profiler=d("react.profiler");ka=d("react.provider");la=d("react.context");ma=d("react.forward_ref");c.Suspense=d("react.suspense");na=d("react.memo");oa=d("react.lazy")}var Y="function"===
typeof Symbol&&Symbol.iterator,ya=Object.prototype.hasOwnProperty,U=Object.assign||function(a,b){if(null==a)throw new TypeError("Object.assign target cannot be null or undefined");for(var e=Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(null!=d){var g=void 0;d=Object(d);for(g in d)ya.call(d,g)&&(e[g]=d[g])}}return e},aa={isMounted:function(a){return!1},enqueueForceUpdate:function(a,b,c){},enqueueReplaceState:function(a,b,c,d){},enqueueSetState:function(a,b,c,d){}},Z={};v.prototype.isReactComponent=
{};v.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error(y(85));this.updater.enqueueSetState(this,a,b,"setState")};v.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};ba.prototype=v.prototype;d=K.prototype=new ba;d.constructor=K;U(d,v.prototype);d.isPureReactComponent=!0;var L={current:null},ea=Object.prototype.hasOwnProperty,fa={key:!0,ref:!0,__self:!0,__source:!0},ia=/\/+/g,ja={current:null},V;if("object"===typeof performance&&
"function"===typeof performance.now){var za=performance;var t=function(){return za.now()}}else{var pa=Date,Aa=pa.now();t=function(){return pa.now()-Aa}}if("undefined"===typeof window||"function"!==typeof MessageChannel){var B=null,qa=null,ra=function(){if(null!==B)try{var a=t();B(!0,a);B=null}catch(b){throw setTimeout(ra,0),b;}};var A=function(a){null!==B?setTimeout(A,0,a):(B=a,setTimeout(ra,0))};var G=function(a,b){qa=setTimeout(a,b)};var S=function(){clearTimeout(qa)};var T=function(){return!1};
d=V=function(){}}else{var Ba=window.setTimeout,Ca=window.clearTimeout;"undefined"!==typeof console&&(d=window.cancelAnimationFrame,"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!==typeof d&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"));
var I=!1,J=null,W=-1,sa=5,ta=0;T=function(){return t()>=ta};d=function(){};V=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):sa=0<a?Math.floor(1E3/a):5};var ua=new MessageChannel,X=ua.port2;ua.port1.onmessage=function(){if(null!==J){var a=t();ta=a+sa;try{J(!0,a)?X.postMessage(null):(I=!1,J=null)}catch(b){throw X.postMessage(null),b;}}else I=!1};A=function(a){J=a;I||(I=!0,X.postMessage(null))};G=
function(a,b){W=Ba(function(){a(t())},b)};S=function(){Ca(W);W=-1}}var q=[],r=[],Da=1,m=null,g=3,H=!1,u=!1,z=!1,Ea=0;d={ReactCurrentDispatcher:ja,ReactCurrentOwner:L,IsSomeRendererActing:{current:!1},ReactCurrentBatchConfig:{transition:0},assign:U,Scheduler:{__proto__:null,unstable_ImmediatePriority:1,unstable_UserBlockingPriority:2,unstable_NormalPriority:3,unstable_IdlePriority:5,unstable_LowPriority:4,unstable_runWithPriority:function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=
3}var c=g;g=a;try{return b()}finally{g=c}},unstable_next:function(a){switch(g){case 1:case 2:case 3:var b=3;break;default:b=g}var c=g;g=b;try{return a()}finally{g=c}},unstable_scheduleCallback:function(a,b,c){var d=t();"object"===typeof c&&null!==c?(c=c.delay,c="number"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:Da++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=
c,O(r,a),null===p(q)&&a===p(r)&&(z?S():z=!0,G(Q,c-d))):(a.sortIndex=e,O(q,a),u||H||(u=!0,A(R)));return a},unstable_cancelCallback:function(a){a.callback=null},unstable_wrapCallback:function(a){var b=g;return function(){var c=g;g=b;try{return a.apply(this,arguments)}finally{g=c}}},unstable_getCurrentPriorityLevel:function(){return g},get unstable_shouldYield(){return T},unstable_requestPaint:d,unstable_continueExecution:function(){u||H||(u=!0,A(R))},unstable_pauseExecution:function(){},unstable_getFirstCallbackNode:function(){return p(q)},
get unstable_now(){return t},get unstable_forceFrameRate(){return V},unstable_Profiling:null},SchedulerTracing:{__proto__:null,__interactionsRef:null,__subscriberRef:null,unstable_clear:function(a){return a()},unstable_getCurrent:function(){return null},unstable_getThreadID:function(){return++Ea},unstable_trace:function(a,b,c){return c()},unstable_wrap:function(a){return a},unstable_subscribe:function(a){},unstable_unsubscribe:function(a){}}};c.Children={map:D,forEach:function(a,b,c){D(a,function(){b.apply(this,
arguments)},c)},count:function(a){var b=0;D(a,function(){b++});return b},toArray:function(a){return D(a,function(a){return a})||[]},only:function(a){if(!M(a))throw Error(y(143));return a}};c.Component=v;c.PureComponent=K;c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=d;c.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(y(267,a));var d=U({},a.props),e=a.key,g=a.ref,n=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,n=L.current);void 0!==b.key&&(e=""+b.key);if(a.type&&a.type.defaultProps)var k=
a.type.defaultProps;for(h in b)ea.call(b,h)&&!fa.hasOwnProperty(h)&&(d[h]=void 0===b[h]&&void 0!==k?k[h]:b[h])}var h=arguments.length-2;if(1===h)d.children=c;else if(1<h){k=Array(h);for(var m=0;m<h;m++)k[m]=arguments[m+2];d.children=k}return{$$typeof:w,type:a.type,key:e,ref:g,props:d,_owner:n}};c.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:la,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:ka,_context:a};return a.Consumer=
a};c.createElement=ca;c.createFactory=function(a){var b=ca.bind(null,a);b.type=a;return b};c.createRef=function(){return{current:null}};c.forwardRef=function(a){return{$$typeof:ma,render:a}};c.isValidElement=M;c.lazy=function(a){return{$$typeof:oa,_payload:{_status:-1,_result:a},_init:xa}};c.memo=function(a,b){return{$$typeof:na,type:a,compare:void 0===b?null:b}};c.useCallback=function(a,b){return n().useCallback(a,b)};c.useContext=function(a,b){return n().useContext(a,b)};c.useDebugValue=function(a,
b){};c.useEffect=function(a,b){return n().useEffect(a,b)};c.useImperativeHandle=function(a,b,c){return n().useImperativeHandle(a,b,c)};c.useLayoutEffect=function(a,b){return n().useLayoutEffect(a,b)};c.useMemo=function(a,b){return n().useMemo(a,b)};c.useReducer=function(a,b,c){return n().useReducer(a,b,c)};c.useRef=function(a){return n().useRef(a)};c.useState=function(a){return n().useState(a)};c.version="17.0.1"});
})();
/** @license React v17.0.1
 * react-dom.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
(function(){/*
 Modernizr 3.0.0pre (Custom Build) | MIT
*/
'use strict';(function(M,ha){"object"===typeof exports&&"undefined"!==typeof module?ha(exports,require("react")):"function"===typeof define&&define.amd?define(["exports","react"],ha):(M=M||self,ha(M.ReactDOM={},M.React))})(this,function(M,ha){function m(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c<arguments.length;c++)b+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}
function Ta(a,b){gb(a,b);gb(a+"Capture",b)}function gb(a,b){Ib[a]=b;for(a=0;a<b.length;a++)zf.add(b[a])}function li(a){if(Af.call(Bf,a))return!0;if(Af.call(Cf,a))return!1;if(mi.test(a))return Bf[a]=!0;Cf[a]=!0;return!1}function ni(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case "function":case "symbol":return!0;case "boolean":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return"data-"!==a&&"aria-"!==a;default:return!1}}function oi(a,b,c,d){if(null===
b||"undefined"===typeof b||ni(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function Q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}function Ed(a,b,c,d){var e=I.hasOwnProperty(b)?I[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||
"o"!==b[0]&&"O"!==b[0]||"n"!==b[1]&&"N"!==b[1]?!1:!0;f||(oi(b,c,e,d)&&(c=null),d||null===e?li(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}function Jb(a){if(null===a||"object"!==typeof a)return null;a=Df&&a[Df]||a["@@iterator"];return"function"===typeof a?a:null}
function Kb(a,b,c){if(void 0===Fd)try{throw Error();}catch(d){Fd=(b=d.stack.trim().match(/\n( *(at )?)/))&&b[1]||""}return"\n"+Fd+a}function Bc(a,b){if(!a||Gd)return"";Gd=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,"props",{set:function(){throw Error();}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();
}catch(k){d=k}a()}}catch(k){if(k&&d&&"string"===typeof k.stack){for(var e=k.stack.split("\n"),f=d.stack.split("\n"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return"\n"+e[g].replace(" at new "," at ");while(1<=g&&0<=h)}break}}}finally{Gd=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?Kb(a):""}function pi(a){switch(a.tag){case 5:return Kb(a.type);case 16:return Kb("Lazy");case 13:return Kb("Suspense");
case 19:return Kb("SuspenseList");case 0:case 2:case 15:return a=Bc(a.type,!1),a;case 11:return a=Bc(a.type.render,!1),a;case 22:return a=Bc(a.type._render,!1),a;case 1:return a=Bc(a.type,!0),a;default:return""}}function hb(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case wa:return"Fragment";case Ua:return"Portal";case Lb:return"Profiler";case Hd:return"StrictMode";case Mb:return"Suspense";case Cc:return"SuspenseList"}if("object"===
typeof a)switch(a.$$typeof){case Id:return(a.displayName||"Context")+".Consumer";case Jd:return(a._context.displayName||"Context")+".Provider";case Dc:var b=a.render;b=b.displayName||b.name||"";return a.displayName||(""!==b?"ForwardRef("+b+")":"ForwardRef");case Ec:return hb(a.type);case Kd:return hb(a._render);case Ld:b=a._payload;a=a._init;try{return hb(a(b))}catch(c){}}return null}function xa(a){switch(typeof a){case "boolean":case "number":case "object":case "string":case "undefined":return a;
default:return""}}function Ef(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}function qi(a){var b=Ef(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,
b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}}function Fc(a){a._valueTracker||(a._valueTracker=qi(a))}function Ff(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=Ef(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Gc(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||
a.body}catch(b){return a.body}}function Md(a,b){var c=b.checked;return B({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Gf(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=xa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function Hf(a,b){b=b.checked;null!=b&&Ed(a,"checked",
b,!1)}function Nd(a,b){Hf(a,b);var c=xa(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?Od(a,b.type,c):b.hasOwnProperty("defaultValue")&&Od(a,b.type,xa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function If(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=
b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}function Od(a,b,c){if("number"!==b||Gc(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}function ri(a){var b="";ha.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}
function Pd(a,b){a=B({children:void 0},b);if(b=ri(b.children))a.children=b;return a}function ib(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=""+xa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}function Qd(a,b){if(null!=
b.dangerouslySetInnerHTML)throw Error(m(91));return B({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function Jf(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(m(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(m(93));c=c[0]}b=c}null==b&&(b="");c=b}a._wrapperState={initialValue:xa(c)}}function Kf(a,b){var c=xa(b.value),d=xa(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==
c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function Lf(a,b){b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}function Mf(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Rd(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?Mf(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function Nf(a,b,c){return null==
b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||Nb.hasOwnProperty(a)&&Nb[a]?(""+b).trim():b+"px"}function Of(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=Nf(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}function Sd(a,b){if(b){if(si[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(m(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(m(60));if(!("object"===typeof b.dangerouslySetInnerHTML&&
"__html"in b.dangerouslySetInnerHTML))throw Error(m(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(m(62));}}function Td(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function Ud(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);
return 3===a.nodeType?a.parentNode:a}function Pf(a){if(a=Ob(a)){if("function"!==typeof Vd)throw Error(m(280));var b=a.stateNode;b&&(b=Hc(b),Vd(a.stateNode,a.type,b))}}function Qf(a){jb?kb?kb.push(a):kb=[a]:jb=a}function Rf(){if(jb){var a=jb,b=kb;kb=jb=null;Pf(a);if(b)for(a=0;a<b.length;a++)Pf(b[a])}}function Wd(){if(null!==jb||null!==kb)Xd(),Rf()}function ti(a,b,c){if(Yd)return a(b,c);Yd=!0;try{return Sf(a,b,c)}finally{Yd=!1,Wd()}}function Pb(a,b){var c=a.stateNode;if(null===c)return null;var d=Hc(c);
if(null===d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":case "onMouseEnter":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==typeof c)throw Error(m(231,b,typeof c));return c}function ui(a,b,c,d,e,
f,g,h,k){Qb=!1;Ic=null;vi.apply(wi,arguments)}function xi(a,b,c,d,e,f,g,h,k){ui.apply(this,arguments);if(Qb){if(Qb){var v=Ic;Qb=!1;Ic=null}else throw Error(m(198));Jc||(Jc=!0,Zd=v)}}function Va(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Tf(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Uf(a){if(Va(a)!==
a)throw Error(m(188));}function yi(a){var b=a.alternate;if(!b){b=Va(a);if(null===b)throw Error(m(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Uf(e),a;if(f===d)return Uf(e),b;f=f.sibling}throw Error(m(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=
f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(m(189));}}if(c.alternate!==d)throw Error(m(190));}if(3!==c.tag)throw Error(m(188));return c.stateNode.current===c?a:b}function Vf(a){a=yi(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}function Wf(a,b){for(var c=
a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}function $d(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function Xf(a,b){switch(a){case "focusin":case "focusout":ya=null;break;case "dragenter":case "dragleave":za=null;break;case "mouseover":case "mouseout":Aa=null;break;case "pointerover":case "pointerout":Rb.delete(b.pointerId);break;case "gotpointercapture":case "lostpointercapture":Sb.delete(b.pointerId)}}function Tb(a,
b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=$d(b,c,d,e,f),null!==b&&(b=Ob(b),null!==b&&Yf(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}function zi(a,b,c,d,e){switch(b){case "focusin":return ya=Tb(ya,a,b,c,d,e),!0;case "dragenter":return za=Tb(za,a,b,c,d,e),!0;case "mouseover":return Aa=Tb(Aa,a,b,c,d,e),!0;case "pointerover":var f=e.pointerId;Rb.set(f,Tb(Rb.get(f)||null,a,b,c,d,e));return!0;case "gotpointercapture":return f=e.pointerId,Sb.set(f,
Tb(Sb.get(f)||null,a,b,c,d,e)),!0}return!1}function Ai(a){var b=Wa(a.target);if(null!==b){var c=Va(b);if(null!==c)if(b=c.tag,13===b){if(b=Tf(c),null!==b){a.blockedOn=b;Bi(a.lanePriority,function(){ae(a.priority,function(){Ci(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Kc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=be(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);
if(null!==c)return b=Ob(c),null!==b&&Yf(b),a.blockedOn=c,!1;b.shift()}return!0}function Zf(a,b,c){Kc(a)&&c.delete(b)}function Di(){for(ce=!1;0<ia.length;){var a=ia[0];if(null!==a.blockedOn){a=Ob(a.blockedOn);null!==a&&Ei(a);break}for(var b=a.targetContainers;0<b.length;){var c=be(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&ia.shift()}null!==ya&&Kc(ya)&&(ya=null);null!==za&&Kc(za)&&(za=null);null!==Aa&&Kc(Aa)&&(Aa=null);Rb.forEach(Zf);
Sb.forEach(Zf)}function Ub(a,b){a.blockedOn===b&&(a.blockedOn=null,ce||(ce=!0,$f(ag,Di)))}function bg(a){if(0<ia.length){Ub(ia[0],a);for(var b=1;b<ia.length;b++){var c=ia[b];c.blockedOn===a&&(c.blockedOn=null)}}null!==ya&&Ub(ya,a);null!==za&&Ub(za,a);null!==Aa&&Ub(Aa,a);b=function(b){return Ub(b,a)};Rb.forEach(b);Sb.forEach(b);for(b=0;b<Vb.length;b++)c=Vb[b],c.blockedOn===a&&(c.blockedOn=null);for(;0<Vb.length&&(b=Vb[0],null===b.blockedOn);)Ai(b),null===b.blockedOn&&Vb.shift()}function Lc(a,b){var c=
{};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}function Mc(a){if(de[a])return de[a];if(!lb[a])return a;var b=lb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in cg)return de[a]=b[c];return a}function ee(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e="on"+(e[0].toUpperCase()+e.slice(1));fe.set(d,b);dg.set(d,e);Ta(e,[d])}}function mb(a){if(0!==(1&a))return w=15,1;if(0!==(2&a))return w=14,2;if(0!==(4&a))return w=13,4;var b=24&a;if(0!==b)return w=12,b;
if(0!==(a&32))return w=11,32;b=192&a;if(0!==b)return w=10,b;if(0!==(a&256))return w=9,256;b=3584&a;if(0!==b)return w=8,b;if(0!==(a&4096))return w=7,4096;b=4186112&a;if(0!==b)return w=6,b;b=62914560&a;if(0!==b)return w=5,b;if(a&67108864)return w=4,67108864;if(0!==(a&134217728))return w=3,134217728;b=805306368&a;if(0!==b)return w=2,b;if(0!==(1073741824&a))return w=1,1073741824;w=8;return a}function Fi(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}
function Gi(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(m(358,a));}}function Wb(a,b){var c=a.pendingLanes;if(0===c)return w=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=w=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=mb(k),e=w):(h&=f,0!==h&&(d=mb(h),e=w))}else f=c&~g,0!==f?(d=mb(f),e=w):0!==h&&(d=mb(h),
e=w);if(0===d)return 0;d=31-Ba(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){mb(b);if(e<=w)return b;w=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Ba(b),e=1<<c,d|=a[c],b&=~e;return d}function eg(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Nc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=nb(24&~b),0===a?Nc(10,b):a;case 10:return a=nb(192&~b),0===a?Nc(8,b):a;case 8:return a=nb(3584&~b),0===a&&(a=nb(4186112&~b),
0===a&&(a=512)),a;case 2:return b=nb(805306368&~b),0===b&&(b=268435456),b}throw Error(m(358,a));}function nb(a){return a&-a}function ge(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}function Oc(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Ba(b);a[b]=c}function Hi(a){return 0===a?32:31-(Ii(a)/Ji|0)|0}function Ki(a,b,c,d){Xa||Xd();var e=he,f=Xa;Xa=!0;try{fg(e,a,b,c,d)}finally{(Xa=f)||Wd()}}function Li(a,b,c,d){Mi(Ni,he.bind(null,a,b,c,d))}function he(a,
b,c,d){if(Pc){var e;if((e=0===(b&4))&&0<ia.length&&-1<gg.indexOf(a))a=$d(null,a,b,c,d),ia.push(a);else{var f=be(a,b,c,d);if(null===f)e&&Xf(a,d);else{if(e){if(-1<gg.indexOf(a)){a=$d(f,a,b,c,d);ia.push(a);return}if(zi(f,a,b,c,d))return;Xf(a,d)}hg(a,b,d,null,c)}}}}function be(a,b,c,d){var e=Ud(d);e=Wa(e);if(null!==e){var f=Va(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=Tf(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==
e&&(e=null)}}hg(a,b,d,e,c);return null}function ig(){if(Qc)return Qc;var a,b=ie,c=b.length,d,e="value"in Ca?Ca.value:Ca.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return Qc=e.slice(a,1<d?1-d:void 0)}function Rc(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function Sc(){return!0}function jg(){return!1}function V(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=
d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?Sc:jg;this.isPropagationStopped=jg;return this}B(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=Sc)},stopPropagation:function(){var a=
this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=Sc)},persist:function(){},isPersistent:Sc});return b}function Oi(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Pi[a])?!!b[a]:!1}function je(a){return Oi}function kg(a,b){switch(a){case "keyup":return-1!==Qi.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "focusout":return!0;default:return!1}}
function lg(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}function Ri(a,b){switch(a){case "compositionend":return lg(b);case "keypress":if(32!==b.which)return null;mg=!0;return ng;case "textInput":return a=b.data,a===ng&&mg?null:a;default:return null}}function Si(a,b){if(ob)return"compositionend"===a||!ke&&kg(a,b)?(a=ig(),Qc=ie=Ca=null,ob=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;
if(b.which)return String.fromCharCode(b.which)}return null;case "compositionend":return og&&"ko"!==b.locale?null:b.data;default:return null}}function pg(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!Ti[a.type]:"textarea"===b?!0:!1}function Ui(a){if(!oa)return!1;a="on"+a;var b=a in document;b||(b=document.createElement("div"),b.setAttribute(a,"return;"),b="function"===typeof b[a]);return b}function qg(a,b,c,d){Qf(d);b=Tc(b,"onChange");0<b.length&&(c=new le("onChange","change",
null,c,d),a.push({event:c,listeners:b}))}function Vi(a){rg(a,0)}function Uc(a){var b=pb(a);if(Ff(b))return a}function Wi(a,b){if("change"===a)return b}function sg(){Xb&&(Xb.detachEvent("onpropertychange",tg),Yb=Xb=null)}function tg(a){if("value"===a.propertyName&&Uc(Yb)){var b=[];qg(b,Yb,a,Ud(a));a=Vi;if(Xa)a(b);else{Xa=!0;try{me(a,b)}finally{Xa=!1,Wd()}}}}function Xi(a,b,c){"focusin"===a?(sg(),Xb=b,Yb=c,Xb.attachEvent("onpropertychange",tg)):"focusout"===a&&sg()}function Yi(a,b){if("selectionchange"===
a||"keyup"===a||"keydown"===a)return Uc(Yb)}function Zi(a,b){if("click"===a)return Uc(b)}function $i(a,b){if("input"===a||"change"===a)return Uc(b)}function aj(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}function Zb(a,b){if(X(a,b))return!0;if("object"!==typeof a||null===a||"object"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!bj.call(b,c[d])||!X(a[c[d]],b[c[d]]))return!1;return!0}function ug(a){for(;a&&a.firstChild;)a=
a.firstChild;return a}function vg(a,b){var c=ug(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ug(c)}}function wg(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wg(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xg(){for(var a=window,b=Gc();b instanceof a.HTMLIFrameElement;){try{var c=
"string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Gc(a.document)}return b}function ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}function yg(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;oe||null==qb||qb!==Gc(d)||(d=qb,"selectionStart"in d&&ne(d)?d={start:d.selectionStart,
end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),$b&&Zb($b,d)||($b=d,d=Tc(pe,"onSelect"),0<d.length&&(b=new le("onSelect","select",null,b,c),a.push({event:b,listeners:d}),b.target=qb)))}function zg(a,b,c){var d=a.type||"unknown-event";a.currentTarget=c;xi(d,b,void 0,a);a.currentTarget=null}function rg(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=
a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,v=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;zg(e,h,v);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;v=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;zg(e,h,v);f=k}}}if(Jc)throw a=Zd,Jc=!1,Zd=null,a;}function z(a,b){var c=Ag(b),d=a+"__bubble";c.has(d)||(Bg(b,a,2,!1),c.add(d))}function Cg(a){a[Dg]||(a[Dg]=!0,zf.forEach(function(b){Eg.has(b)||
Fg(b,!1,a,null);Fg(b,!0,a,null)}))}function Fg(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;"selectionchange"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Eg.has(a)){if("scroll"!==a)return;e|=2;f=d}var g=Ag(f),h=a+"__"+(b?"capture":"bubble");g.has(h)||(b&&(e|=4),Bg(f,a,e,b),g.add(h))}function Bg(a,b,c,d,e){e=fe.get(b);switch(void 0===e?2:e){case 0:e=Ki;break;case 1:e=Li;break;default:e=he}c=e.bind(null,b,c,a);e=void 0;!qe||"touchstart"!==b&&"touchmove"!==
b&&"wheel"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}function hg(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&
k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wa(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}ti(function(){var d=f,e=Ud(c),g=[];a:{var h=dg.get(a);if(void 0!==h){var k=le,m=a;switch(a){case "keypress":if(0===Rc(c))break a;case "keydown":case "keyup":k=cj;break;case "focusin":m="focus";k=re;break;case "focusout":m="blur";k=re;break;case "beforeblur":case "afterblur":k=re;break;case "click":if(2===c.button)break a;case "auxclick":case "dblclick":case "mousedown":case "mousemove":case "mouseup":case "mouseout":case "mouseover":case "contextmenu":k=
Gg;break;case "drag":case "dragend":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "dragstart":case "drop":k=dj;break;case "touchcancel":case "touchend":case "touchmove":case "touchstart":k=ej;break;case Hg:case Ig:case Jg:k=fj;break;case Kg:k=gj;break;case "scroll":k=hj;break;case "wheel":k=ij;break;case "copy":case "cut":case "paste":k=jj;break;case "gotpointercapture":case "lostpointercapture":case "pointercancel":case "pointerdown":case "pointermove":case "pointerout":case "pointerover":case "pointerup":k=
Lg}var l=0!==(b&4),C=!l&&"scroll"===a,x=l?null!==h?h+"Capture":null:h;l=[];for(var p=d,q;null!==p;){q=p;var u=q.stateNode;5===q.tag&&null!==u&&(q=u,null!==x&&(u=Pb(p,x),null!=u&&l.push(ac(p,u,q))));if(C)break;p=p.return}0<l.length&&(h=new k(h,m,null,c,e),g.push({event:h,listeners:l}))}}if(0===(b&7)){a:{h="mouseover"===a||"pointerover"===a;k="mouseout"===a||"pointerout"===a;if(h&&0===(b&16)&&(m=c.relatedTarget||c.fromElement)&&(Wa(m)||m[rb]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||
h.parentWindow:window;if(k){if(m=c.relatedTarget||c.toElement,k=d,m=m?Wa(m):null,null!==m&&(C=Va(m),m!==C||5!==m.tag&&6!==m.tag))m=null}else k=null,m=d;if(k!==m){l=Gg;u="onMouseLeave";x="onMouseEnter";p="mouse";if("pointerout"===a||"pointerover"===a)l=Lg,u="onPointerLeave",x="onPointerEnter",p="pointer";C=null==k?h:pb(k);q=null==m?h:pb(m);h=new l(u,p+"leave",k,c,e);h.target=C;h.relatedTarget=q;u=null;Wa(e)===d&&(l=new l(x,p+"enter",m,c,e),l.target=q,l.relatedTarget=C,u=l);C=u;if(k&&m)b:{l=k;x=m;p=
0;for(q=l;q;q=sb(q))p++;q=0;for(u=x;u;u=sb(u))q++;for(;0<p-q;)l=sb(l),p--;for(;0<q-p;)x=sb(x),q--;for(;p--;){if(l===x||null!==x&&l===x.alternate)break b;l=sb(l);x=sb(x)}l=null}else l=null;null!==k&&Mg(g,h,k,l,!1);null!==m&&null!==C&&Mg(g,C,m,l,!0)}}}a:{h=d?pb(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if("select"===k||"input"===k&&"file"===h.type)var n=Wi;else if(pg(h))if(Ng)n=$i;else{n=Yi;var da=Xi}else(k=h.nodeName)&&"input"===k.toLowerCase()&&("checkbox"===h.type||"radio"===h.type)&&(n=Zi);
if(n&&(n=n(a,d))){qg(g,n,c,e);break a}da&&da(a,h,d);"focusout"===a&&(da=h._wrapperState)&&da.controlled&&"number"===h.type&&Od(h,"number",h.value)}da=d?pb(d):window;switch(a){case "focusin":if(pg(da)||"true"===da.contentEditable)qb=da,pe=d,$b=null;break;case "focusout":$b=pe=qb=null;break;case "mousedown":oe=!0;break;case "contextmenu":case "mouseup":case "dragend":oe=!1;yg(g,c,e);break;case "selectionchange":if(kj)break;case "keydown":case "keyup":yg(g,c,e)}var Ea;if(ke)b:{switch(a){case "compositionstart":var F=
"onCompositionStart";break b;case "compositionend":F="onCompositionEnd";break b;case "compositionupdate":F="onCompositionUpdate";break b}F=void 0}else ob?kg(a,c)&&(F="onCompositionEnd"):"keydown"===a&&229===c.keyCode&&(F="onCompositionStart");F&&(og&&"ko"!==c.locale&&(ob||"onCompositionStart"!==F?"onCompositionEnd"===F&&ob&&(Ea=ig()):(Ca=e,ie="value"in Ca?Ca.value:Ca.textContent,ob=!0)),da=Tc(d,F),0<da.length&&(F=new Og(F,a,null,c,e),g.push({event:F,listeners:da}),Ea?F.data=Ea:(Ea=lg(c),null!==Ea&&
(F.data=Ea))));if(Ea=lj?Ri(a,c):Si(a,c))d=Tc(d,"onBeforeInput"),0<d.length&&(e=new mj("onBeforeInput","beforeinput",null,c,e),g.push({event:e,listeners:d}),e.data=Ea)}rg(g,b)})}function ac(a,b,c){return{instance:a,listener:b,currentTarget:c}}function Tc(a,b){for(var c=b+"Capture",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Pb(a,c),null!=f&&d.unshift(ac(a,f,e)),f=Pb(a,b),null!=f&&d.push(ac(a,f,e)));a=a.return}return d}function sb(a){if(null===a)return null;do a=a.return;while(a&&
5!==a.tag);return a?a:null}function Mg(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,v=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==v&&(h=v,e?(k=Pb(c,f),null!=k&&g.unshift(ac(c,k,h))):e||(k=Pb(c,f),null!=k&&g.push(ac(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function Vc(){}function Pg(a,b){switch(a){case "button":case "input":case "select":case "textarea":return!!b.autoFocus}return!1}function se(a,b){return"textarea"===a||"option"===
a||"noscript"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}function te(a){1===a.nodeType?a.textContent="":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=""))}function tb(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function Qg(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if("$"===c||"$!"===c||"$?"===
c){if(0===b)return a;b--}else"/$"===c&&b++}a=a.previousSibling}return null}function nj(a){return{$$typeof:ue,toString:a,valueOf:a}}function Wa(a){var b=a[Fa];if(b)return b;for(var c=a.parentNode;c;){if(b=c[rb]||c[Fa]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Qg(a);null!==a;){if(c=a[Fa])return c;a=Qg(a)}return b}a=c;c=a.parentNode}return null}function Ob(a){a=a[Fa]||a[rb];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function pb(a){if(5===a.tag||6===a.tag)return a.stateNode;
throw Error(m(33));}function Hc(a){return a[Wc]||null}function Ag(a){var b=a[Rg];void 0===b&&(b=a[Rg]=new Set);return b}function Ga(a){return{current:a}}function t(a,b){0>ub||(a.current=ve[ub],ve[ub]=null,ub--)}function A(a,b,c){ub++;ve[ub]=a.current;a.current=b}function vb(a,b){var c=a.type.contextTypes;if(!c)return Ha;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=
b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function S(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Sg(a,b,c){if(D.current!==Ha)throw Error(m(168));A(D,b);A(J,c)}function Tg(a,b,c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(m(108,hb(b)||"Unknown",e));return B({},c,d)}function Xc(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Ha;Ya=D.current;
A(D,a);A(J,J.current);return!0}function Ug(a,b,c){var d=a.stateNode;if(!d)throw Error(m(169));c?(a=Tg(a,b,Ya),d.__reactInternalMemoizedMergedChildContext=a,t(J),t(D),A(D,a)):t(J);A(J,c)}function wb(){switch(oj()){case Yc:return 99;case Vg:return 98;case Wg:return 97;case Xg:return 96;case Yg:return 95;default:throw Error(m(332));}}function Zg(a){switch(a){case 99:return Yc;case 98:return Vg;case 97:return Wg;case 96:return Xg;case 95:return Yg;default:throw Error(m(332));}}function Za(a,b){a=Zg(a);
return pj(a,b)}function bc(a,b,c){a=Zg(a);return we(a,b,c)}function ja(){if(null!==Zc){var a=Zc;Zc=null;xe(a)}$g()}function $g(){if(!ye&&null!==pa){ye=!0;var a=0;try{var b=pa;Za(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});pa=null}catch(c){throw null!==pa&&(pa=pa.slice(a+1)),we(Yc,ja),c;}finally{ye=!1}}}function ea(a,b){if(a&&a.defaultProps){b=B({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function ze(){$c=xb=ad=null}function Ae(a){var b=
bd.current;t(bd);a.type._context._currentValue=b}function ah(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function yb(a,b){ad=a;$c=xb=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(fa=!0),a.firstContext=null)}function Y(a,b){if($c!==a&&!1!==b&&0!==b){if("number"!==typeof b||1073741823===b)$c=a,b=1073741823;b={context:a,observedBits:b,
next:null};if(null===xb){if(null===ad)throw Error(m(308));xb=b;ad.dependencies={lanes:0,firstContext:b,responders:null}}else xb=xb.next=b}return a._currentValue}function Be(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function Ia(a,b){return{eventTime:a,
lane:b,tag:0,payload:null,callback:null,next:null}}function Ja(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}function ch(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=
f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=b;c.lastBaseUpdate=b}function cc(a,b,c,d){var e=a.updateQueue;Ka=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,v=k.next;k.next=null;null===g?f=v:g.next=v;g=k;var m=a.alternate;if(null!==m){m=m.updateQueue;var l=m.lastBaseUpdate;l!==g&&(null===l?m.firstBaseUpdate=
v:l.next=v,m.lastBaseUpdate=k)}}if(null!==f){l=e.baseState;g=0;m=v=k=null;do{h=f.lane;var r=f.eventTime;if((d&h)===h){null!==m&&(m=m.next={eventTime:r,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,next:null});a:{var n=a,t=f;h=b;r=c;switch(t.tag){case 1:n=t.payload;if("function"===typeof n){l=n.call(r,l,h);break a}l=n;break a;case 3:n.flags=n.flags&-4097|64;case 0:n=t.payload;h="function"===typeof n?n.call(r,l,h):n;if(null===h||void 0===h)break a;l=B({},l,h);break a;case 2:Ka=!0}}null!==f.callback&&
(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else r={eventTime:r,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===m?(v=m=r,k=l):m=m.next=r,g|=h;f=f.next;if(null===f)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===m&&(k=l);e.baseState=k;e.firstBaseUpdate=v;e.lastBaseUpdate=m;La|=g;a.lanes=g;a.memoizedState=l}}function dh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=
a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if("function"!==typeof e)throw Error(m(191,e));e.call(d)}}}function cd(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:B({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}function eh(a,b,c,d,e,f,g){a=a.stateNode;return"function"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Zb(c,d)||!Zb(e,f):!0}function fh(a,b,c){var d=!1,e=Ha;var f=b.contextType;"object"===
typeof f&&null!==f?f=Y(f):(e=S(b)?Ya:D.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?vb(a,e):Ha);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=dd;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}function gh(a,b,c,d){a=b.state;"function"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);"function"===typeof b.UNSAFE_componentWillReceiveProps&&
b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&dd.enqueueReplaceState(b,b.state,null)}function Ce(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=hh;Be(a);var f=b.contextType;"object"===typeof f&&null!==f?e.context=Y(f):(f=S(b)?Ya:D.current,e.context=vb(a,f));cc(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;"function"===typeof f&&(cd(a,b,f,c),e.state=a.memoizedState);"function"===typeof b.getDerivedStateFromProps||"function"===typeof e.getSnapshotBeforeUpdate||
"function"!==typeof e.UNSAFE_componentWillMount&&"function"!==typeof e.componentWillMount||(b=e.state,"function"===typeof e.componentWillMount&&e.componentWillMount(),"function"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&dd.enqueueReplaceState(e,e.state,null),cc(a,c,e,d),e.state=a.memoizedState);"function"===typeof e.componentDidMount&&(a.flags|=4)}function dc(a,b,c){a=c.ref;if(null!==a&&"function"!==typeof a&&"object"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==
c.tag)throw Error(m(309));var d=c.stateNode}if(!d)throw Error(m(147,a));var e=""+a;if(null!==b&&null!==b.ref&&"function"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===hh&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if("string"!==typeof a)throw Error(m(284));if(!c._owner)throw Error(m(290,a));}return a}function ed(a,b){if("textarea"!==a.type)throw Error(m(31,"[object Object]"===Object.prototype.toString.call(b)?"object with keys {"+Object.keys(b).join(", ")+
"}":b));}function ih(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Ma(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=
2,c):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=De(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=dc(a,b,c),d.return=a,d;d=fd(c.type,c.key,c.props,null,a.mode,d);d.ref=dc(a,b,c);d.return=a;return d}function v(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=
Ee(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function l(a,b,c,d,f){if(null===b||7!==b.tag)return b=zb(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function n(a,b,c){if("string"===typeof b||"number"===typeof b)return b=De(""+b,a.mode,c),b.return=a,b;if("object"===typeof b&&null!==b){switch(b.$$typeof){case ec:return c=fd(b.type,b.key,b.props,null,a.mode,c),c.ref=dc(a,null,b),c.return=a,c;case Ua:return b=Ee(b,a.mode,c),b.return=a,b}if(gd(b)||Jb(b))return b=zb(b,
a.mode,c,null),b.return=a,b;ed(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if("string"===typeof c||"number"===typeof c)return null!==e?null:h(a,b,""+c,d);if("object"===typeof c&&null!==c){switch(c.$$typeof){case ec:return c.key===e?c.type===wa?l(a,b,c.props.children,d,e):k(a,b,c,d):null;case Ua:return c.key===e?v(a,b,c,d):null}if(gd(c)||Jb(c))return null!==e?null:l(a,b,c,d,null);ed(a,c)}return null}function t(a,b,c,d,e){if("string"===typeof d||"number"===typeof d)return a=a.get(c)||
null,h(b,a,""+d,e);if("object"===typeof d&&null!==d){switch(d.$$typeof){case ec:return a=a.get(null===d.key?c:d.key)||null,d.type===wa?l(b,a,d.props.children,e,d.key):k(b,a,d,e);case Ua:return a=a.get(null===d.key?c:d.key)||null,v(b,a,d,e)}if(gd(d)||Jb(d))return a=a.get(c)||null,l(b,a,d,e,null);ed(b,d)}return null}function w(e,g,h,k){for(var m=null,v=null,l=g,p=g=0,x=null;null!==l&&p<h.length;p++){l.index>p?(x=l,l=null):x=l.sibling;var C=r(e,l,h[p],k);if(null===C){null===l&&(l=x);break}a&&l&&null===
C.alternate&&b(e,l);g=f(C,g,p);null===v?m=C:v.sibling=C;v=C;l=x}if(p===h.length)return c(e,l),m;if(null===l){for(;p<h.length;p++)l=n(e,h[p],k),null!==l&&(g=f(l,g,p),null===v?m=l:v.sibling=l,v=l);return m}for(l=d(e,l);p<h.length;p++)x=t(l,e,p,h[p],k),null!==x&&(a&&null!==x.alternate&&l.delete(null===x.key?p:x.key),g=f(x,g,p),null===v?m=x:v.sibling=x,v=x);a&&l.forEach(function(a){return b(e,a)});return m}function z(e,g,h,k){var l=Jb(h);if("function"!==typeof l)throw Error(m(150));h=l.call(h);if(null==
h)throw Error(m(151));for(var v=l=null,p=g,x=g=0,C=null,q=h.next();null!==p&&!q.done;x++,q=h.next()){p.index>x?(C=p,p=null):C=p.sibling;var Da=r(e,p,q.value,k);if(null===Da){null===p&&(p=C);break}a&&p&&null===Da.alternate&&b(e,p);g=f(Da,g,x);null===v?l=Da:v.sibling=Da;v=Da;p=C}if(q.done)return c(e,p),l;if(null===p){for(;!q.done;x++,q=h.next())q=n(e,q.value,k),null!==q&&(g=f(q,g,x),null===v?l=q:v.sibling=q,v=q);return l}for(p=d(e,p);!q.done;x++,q=h.next())q=t(p,e,x,q.value,k),null!==q&&(a&&null!==
q.alternate&&p.delete(null===q.key?x:q.key),g=f(q,g,x),null===v?l=q:v.sibling=q,v=q);a&&p.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===wa&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case ec:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===wa){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,
k.sibling);d=e(k,f.props);d.ref=dc(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===wa?(d=zb(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=fd(f.type,f.key,f.props,null,a.mode,h),h.ref=dc(a,d,f),h.return=a,a=h)}return g(a);case Ua:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=
d.sibling}d=Ee(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=De(f,a.mode,h),d.return=a,a=d),g(a);if(gd(f))return w(a,d,f,h);if(Jb(f))return z(a,d,f,h);l&&ed(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(m(152,hb(a.type)||"Component"));}return c(a,d)}}function $a(a){if(a===fc)throw Error(m(174));return a}function Fe(a,b){A(gc,
b);A(hc,a);A(ka,fc);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Rd(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Rd(b,a)}t(ka);A(ka,b)}function Ab(a){t(ka);t(hc);t(gc)}function jh(a){$a(gc.current);var b=$a(ka.current);var c=Rd(b,a.type);b!==c&&(A(hc,a),A(ka,c))}function Ge(a){hc.current===a&&(t(ka),t(hc))}function hd(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data||
"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function kh(a,b){var c=Z(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=
a.lastEffect=c}function lh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}function He(a){if(la){var b=Na;if(b){var c=b;if(!lh(a,b)){b=tb(c.nextSibling);if(!b||!lh(a,b)){a.flags=a.flags&-1025|2;la=!1;ra=a;return}kh(ra,c)}ra=a;Na=tb(b.firstChild)}else a.flags=a.flags&-1025|2,la=!1,
ra=a}}function mh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ra=a}function id(a){if(a!==ra)return!1;if(!la)return mh(a),la=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!se(b,a.memoizedProps))for(b=Na;b;)kh(a,b),b=tb(b.nextSibling);mh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(m(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if("/$"===c){if(0===b){Na=tb(a.nextSibling);break a}b--}else"$"!==c&&"$!"!==
c&&"$?"!==c||b++}a=a.nextSibling}Na=null}}else Na=ra?tb(a.stateNode.nextSibling):null;return!0}function Ie(){Na=ra=null;la=!1}function Je(){for(var a=0;a<Bb.length;a++)Bb[a]._workInProgressVersionPrimary=null;Bb.length=0}function T(){throw Error(m(321));}function Ke(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!X(a[c],b[c]))return!1;return!0}function Le(a,b,c,d,e,f){ic=f;y=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;jc.current=null===a||null===a.memoizedState?qj:rj;
a=c(d,e);if(kc){f=0;do{kc=!1;if(!(25>f))throw Error(m(301));f+=1;K=N=null;b.updateQueue=null;jc.current=sj;a=c(d,e)}while(kc)}jc.current=jd;b=null!==N&&null!==N.next;ic=0;K=N=y=null;kd=!1;if(b)throw Error(m(300));return a}function ab(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===K?y.memoizedState=K=a:K=K.next=a;return K}function bb(){if(null===N){var a=y.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===K?y.memoizedState:K.next;if(null!==
b)K=b,N=a;else{if(null===a)throw Error(m(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===K?y.memoizedState=K=a:K=K.next=a}return K}function ma(a,b){return"function"===typeof b?b(a):b}function lc(a,b,c){b=bb();c=b.queue;if(null===c)throw Error(m(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;
var h=g=f=null,k=e;do{var l=k.lane;if((ic&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;y.lanes|=l;La|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;X(d,b.memoizedState)||(fa=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=
d}return[b.memoizedState,c.dispatch]}function mc(a,b,c){b=bb();c=b.queue;if(null===c)throw Error(m(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);X(f,b.memoizedState)||(fa=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function nh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,
a=(ic&a)===a)b._workInProgressVersionPrimary=d,Bb.push(b);if(a)return c(b._source);Bb.push(b);throw Error(m(350));}function oh(a,b,c,d){var e=R;if(null===e)throw Error(m(349));var f=b._getVersion,g=f(b._source),h=jc.current,k=h.useState(function(){return nh(e,b,c)}),l=k[1],n=k[0];k=K;var t=a.memoizedState,r=t.refs,w=r.getSnapshot,z=t.source;t=t.subscribe;var B=y;a.memoizedState={refs:r,source:b,subscribe:d};h.useEffect(function(){r.getSnapshot=c;r.setSnapshot=l;var a=f(b._source);if(!X(g,a)){a=c(b._source);
X(n,a)||(l(a),a=Oa(B),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=e.entanglements,h=a;0<h;){var k=31-Ba(h),m=1<<k;d[k]|=a;h&=~m}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=r.getSnapshot,c=r.setSnapshot;try{c(a(b._source));var d=Oa(B);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);X(w,c)&&X(z,b)&&X(t,d)||(a={pending:null,dispatch:null,lastRenderedReducer:ma,lastRenderedState:n},a.dispatch=l=Me.bind(null,
y,a),k.queue=a,k.baseQueue=null,n=nh(e,b,c),k.memoizedState=k.baseState=n);return n}function ph(a,b,c){var d=bb();return oh(d,a,b,c)}function nc(a){var b=ab();"function"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:ma,lastRenderedState:a};a=a.dispatch=Me.bind(null,y,a);return[b.memoizedState,a]}function ld(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=y.updateQueue;null===b?(b={lastEffect:null},y.updateQueue=b,b.lastEffect=
a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function qh(a){var b=ab();a={current:a};return b.memoizedState=a}function md(a){return bb().memoizedState}function Ne(a,b,c,d){var e=ab();y.flags|=a;e.memoizedState=ld(1|b,c,void 0,void 0===d?null:d)}function Oe(a,b,c,d){var e=bb();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Ke(d,g.deps)){ld(b,c,f,d);return}}y.flags|=a;e.memoizedState=ld(1|
b,c,f,d)}function rh(a,b){return Ne(516,4,a,b)}function nd(a,b){return Oe(516,4,a,b)}function sh(a,b){return Oe(4,2,a,b)}function th(a,b){if("function"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function uh(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Oe(4,2,th.bind(null,b,a),c)}function Pe(a,b){}function vh(a,b){var c=bb();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Ke(b,d[1]))return d[0];
c.memoizedState=[a,b];return a}function wh(a,b){var c=bb();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Ke(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function tj(a,b){var c=wb();Za(98>c?98:c,function(){a(!0)});Za(97<c?97:c,function(){var c=aa.transition;aa.transition=1;try{a(!1),b()}finally{aa.transition=c}})}function Me(a,b,c){var d=W(),e=Oa(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);
b.pending=f;g=a.alternate;if(a===y||null!==g&&g===y)kc=kd=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(X(k,h))return}catch(v){}finally{}Pa(a,e,d)}}function U(a,b,c,d){b.child=null===a?xh(b,null,c,d):od(b,a.child,c,d)}function yh(a,b,c,d,e){c=c.render;var f=b.ref;yb(b,e);d=Le(a,b,c,d,f,e);if(null!==a&&!fa)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,sa(a,b,e);b.flags|=1;
U(a,b,d,e);return b.child}function zh(a,b,c,d,e,f){if(null===a){var g=c.type;if("function"===typeof g&&!Qe(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Ah(a,b,g,d,e,f);a=fd(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Zb,c(e,d)&&a.ref===b.ref))return sa(a,b,f);b.flags|=1;a=Ma(g,d);a.ref=b.ref;a.return=b;return b.child=a}function Ah(a,b,c,d,e,f){if(null!==a&&Zb(a.memoizedProps,
d)&&a.ref===b.ref)if(fa=!1,0!==(f&e))0!==(a.flags&16384)&&(fa=!0);else return b.lanes=a.lanes,sa(a,b,f);return Re(a,b,c,d,f)}function Se(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if("hidden"===d.mode||"unstable-defer-without-hiding"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},pd(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},pd(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState=
{baseLanes:a},pd(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,pd(b,d);U(a,b,e,c);return b.child}function Bh(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function Re(a,b,c,d,e){var f=S(c)?Ya:D.current;f=vb(b,f);yb(b,e);c=Le(a,b,c,d,f,e);if(null!==a&&!fa)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,sa(a,b,e);b.flags|=1;U(a,b,c,e);return b.child}function Ch(a,b,c,d,e){if(S(c)){var f=!0;Xc(b)}else f=!1;yb(b,e);if(null===b.stateNode)null!==
a&&(a.alternate=null,b.alternate=null,b.flags|=2),fh(b,c,d),Ce(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;"object"===typeof l&&null!==l?l=Y(l):(l=S(c)?Ya:D.current,l=vb(b,l));var m=c.getDerivedStateFromProps,n="function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate;n||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&gh(b,g,d,l);Ka=!1;var r=b.memoizedState;
g.state=r;cc(b,d,g,e);k=b.memoizedState;h!==d||r!==k||J.current||Ka?("function"===typeof m&&(cd(b,c,m,d),k=b.memoizedState),(h=Ka||eh(b,c,h,d,r,k,l))?(n||"function"!==typeof g.UNSAFE_componentWillMount&&"function"!==typeof g.componentWillMount||("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.flags|=4)):("function"===typeof g.componentDidMount&&(b.flags|=4),
b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):("function"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:ea(b.type,h);g.props=l;n=b.pendingProps;r=g.context;k=c.contextType;"object"===typeof k&&null!==k?k=Y(k):(k=S(c)?Ya:D.current,k=vb(b,k));var t=c.getDerivedStateFromProps;(m="function"===typeof t||"function"===typeof g.getSnapshotBeforeUpdate)||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&
"function"!==typeof g.componentWillReceiveProps||(h!==n||r!==k)&&gh(b,g,d,k);Ka=!1;r=b.memoizedState;g.state=r;cc(b,d,g,e);var w=b.memoizedState;h!==n||r!==w||J.current||Ka?("function"===typeof t&&(cd(b,c,t,d),w=b.memoizedState),(l=Ka||eh(b,c,l,d,r,w,k))?(m||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,w,k),"function"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,
w,k)),"function"===typeof g.componentDidUpdate&&(b.flags|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=w),g.props=d,g.state=w,g.context=k,d=l):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==
typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=256),d=!1)}return Te(a,b,c,d,f,e)}function Te(a,b,c,d,e,f){Bh(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Ug(b,c,!1),sa(a,b,f);d=b.stateNode;uj.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=od(b,a.child,null,f),b.child=od(b,null,h,f)):U(a,b,h,f);b.memoizedState=d.state;e&&Ug(b,c,!0);return b.child}function Dh(a){var b=a.stateNode;b.pendingContext?
Sg(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Sg(a,b.context,!1);Fe(a,b.containerInfo)}function Eh(a,b,c){var d=b.pendingProps,e=E.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);A(E,e&1);if(null===a){void 0!==d.fallback&&He(b);a=d.children;e=d.fallback;if(f)return a=Fh(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=
qd,a;if("number"===typeof d.unstable_expectedLoadTime)return a=Fh(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=qd,b.lanes=33554432,a;c=Ue({mode:"visible",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=Gh(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=qd,d;c=Hh(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=
Gh(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=qd,d;c=Hh(a,b,d.children,c);b.memoizedState=null;return c}function Fh(a,b,c,d){var e=a.mode,f=a.child;b={mode:"hidden",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=Ue(b,e,0,null);c=zb(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}function Hh(a,b,c,d){var e=a.child;a=e.sibling;c=Ma(e,
{mode:"visible",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}function Gh(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:"hidden",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Ma(g,h);null!==a?d=Ma(a,d):(d=zb(d,f,e,null),d.flags|=
2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function Ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);ah(a.return,b)}function Ve(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}function Jh(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;U(a,b,d.children,c);d=E.current;
if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&Ih(a,c);else if(19===a.tag)Ih(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}A(E,d);if(0===(b.mode&2))b.memoizedState=null;else switch(e){case "forwards":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===
hd(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Ve(b,!1,e,c,f,b.lastEffect);break;case "backwards":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hd(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Ve(b,!0,c,null,f,b.lastEffect);break;case "together":Ve(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}function sa(a,b,c){null!==a&&(b.dependencies=a.dependencies);La|=b.lanes;if(0!==(c&
b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(m(153));if(null!==b.child){a=b.child;c=Ma(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Ma(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}function oc(a,b){if(!la)switch(a.tailMode){case "hidden":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case "collapsed":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&
(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}function vj(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return S(b.type)&&(t(J),t(D)),null;case 3:Ab();t(J);t(D);Je();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)id(b)?b.flags|=4:d.hydrate||(b.flags|=256);Kh(b);return null;case 5:Ge(b);var e=$a(gc.current);
c=b.type;if(null!==a&&null!=b.stateNode)wj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===b.stateNode)throw Error(m(166));return null}a=$a(ka.current);if(id(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Fa]=b;d[Wc]=f;switch(c){case "dialog":z("cancel",d);z("close",d);break;case "iframe":case "object":case "embed":z("load",d);break;case "video":case "audio":for(a=0;a<pc.length;a++)z(pc[a],d);break;case "source":z("error",d);break;case "img":case "image":case "link":z("error",d);
z("load",d);break;case "details":z("toggle",d);break;case "input":Gf(d,f);z("invalid",d);break;case "select":d._wrapperState={wasMultiple:!!f.multiple};z("invalid",d);break;case "textarea":Jf(d,f),z("invalid",d)}Sd(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],"children"===g?"string"===typeof e?d.textContent!==e&&(a=["children",e]):"number"===typeof e&&d.textContent!==""+e&&(a=["children",""+e]):Ib.hasOwnProperty(g)&&null!=e&&"onScroll"===g&&z("scroll",d));switch(c){case "input":Fc(d);If(d,
f,!0);break;case "textarea":Fc(d);Lf(d);break;case "select":case "option":break;default:"function"===typeof f.onClick&&(d.onclick=Vc)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;"http://www.w3.org/1999/xhtml"===a&&(a=Mf(c));"http://www.w3.org/1999/xhtml"===a?"script"===c?(a=g.createElement("div"),a.innerHTML="<script>\x3c/script>",a=a.removeChild(a.firstChild)):"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple?
g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Fa]=b;a[Wc]=d;xj(a,b,!1,!1);b.stateNode=a;g=Td(c,d);switch(c){case "dialog":z("cancel",a);z("close",a);e=d;break;case "iframe":case "object":case "embed":z("load",a);e=d;break;case "video":case "audio":for(e=0;e<pc.length;e++)z(pc[e],a);e=d;break;case "source":z("error",a);e=d;break;case "img":case "image":case "link":z("error",a);z("load",a);e=d;break;case "details":z("toggle",a);e=d;break;case "input":Gf(a,d);e=Md(a,d);z("invalid",
a);break;case "option":e=Pd(a,d);break;case "select":a._wrapperState={wasMultiple:!!d.multiple};e=B({},d,{value:void 0});z("invalid",a);break;case "textarea":Jf(a,d);e=Qd(a,d);z("invalid",a);break;default:e=d}Sd(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];"style"===f?Of(a,k):"dangerouslySetInnerHTML"===f?(k=k?k.__html:void 0,null!=k&&Lh(a,k)):"children"===f?"string"===typeof k?("textarea"!==c||""!==k)&&qc(a,k):"number"===typeof k&&qc(a,""+k):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==
f&&"autoFocus"!==f&&(Ib.hasOwnProperty(f)?null!=k&&"onScroll"===f&&z("scroll",a):null!=k&&Ed(a,f,k,g))}switch(c){case "input":Fc(a);If(a,d,!1);break;case "textarea":Fc(a);Lf(a);break;case "option":null!=d.value&&a.setAttribute("value",""+xa(d.value));break;case "select":a.multiple=!!d.multiple;f=d.value;null!=f?ib(a,!!d.multiple,f,!1):null!=d.defaultValue&&ib(a,!!d.multiple,d.defaultValue,!0);break;default:"function"===typeof e.onClick&&(a.onclick=Vc)}Pg(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=
128)}return null;case 6:if(a&&null!=b.stateNode)yj(a,b,a.memoizedProps,d);else{if("string"!==typeof d&&null===b.stateNode)throw Error(m(166));c=$a(gc.current);$a(ka.current);id(b)?(d=b.stateNode,c=b.memoizedProps,d[Fa]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Fa]=b,b.stateNode=d)}return null;case 13:t(E);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&id(b):c=null!==a.memoizedState;
if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(E.current&1))0===L&&(L=3);else{if(0===L||3===L)L=4;null===R||0===(La&134217727)&&0===(Cb&134217727)||Db(R,O)}if(d||c)b.flags|=4;return null;case 4:return Ab(),Kh(b),null===a&&Cg(b.stateNode.containerInfo),null;case 10:return Ae(b),null;case 17:return S(b.type)&&(t(J),t(D)),null;case 19:t(E);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)oc(d,!1);else{if(0!==L||null!==
a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=hd(a);if(null!==g){b.flags|=64;oc(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=
g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;A(E,E.current&1|2);return b.child}a=a.sibling}null!==d.tail&&P()>We&&(b.flags|=64,f=!0,oc(d,!1),b.lanes=33554432)}else{if(!f)if(a=hd(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),oc(d,!0),null===d.tail&&"hidden"===d.tailMode&&
!g.alternate&&!la)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*P()-d.renderingStartTime>We&&1073741824!==c&&(b.flags|=64,f=!0,oc(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=P(),c.sibling=null,b=E.current,A(E,f?b&1|2:b&1),c):null;case 23:case 24:return ta=cb.current,t(cb),null!==a&&null!==
a.memoizedState!==(null!==b.memoizedState)&&"unstable-defer-without-hiding"!==d.mode&&(b.flags|=4),null}throw Error(m(156,b.tag));}function zj(a,b){switch(a.tag){case 1:return S(a.type)&&(t(J),t(D)),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 3:Ab();t(J);t(D);Je();b=a.flags;if(0!==(b&64))throw Error(m(285));a.flags=b&-4097|64;return a;case 5:return Ge(a),null;case 13:return t(E),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return t(E),null;case 4:return Ab(),null;case 10:return Ae(a),
null;case 23:case 24:return ta=cb.current,t(cb),null;default:return null}}function Xe(a,b){try{var c="",d=b;do c+=pi(d),d=d.return;while(d);var e=c}catch(f){e="\nError generating stack: "+f.message+"\n"+f.stack}return{value:a,source:b,stack:e}}function Ye(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}function Mh(a,b,c){c=Ia(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){rd||(rd=!0,Ze=d);Ye(a,b)};return c}function Nh(a,b,c){c=Ia(-1,c);c.tag=
3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){Ye(a,b);return d(e)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){"function"!==typeof d&&(null===na?na=new Set([this]):na.add(this),Ye(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}function Oh(a){var b=a.ref;if(null!==b)if("function"===typeof b)try{b(null)}catch(c){Qa(a,c)}else b.current=null}function Aj(a,
b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ea(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&te(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(m(163));}function Bj(a,b,c,d){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;
do 3===(a.tag&3)&&(d=a.create,a.destroy=d()),a=a.next;while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Ph(c,a),Cj(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:ea(c.type,b.memoizedProps),a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&dh(c,b,a);return;case 3:b=c.updateQueue;
if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}dh(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&Pg(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&bg(c))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(m(163));}function Qh(a,b){for(var c=a;;){if(5===
c.tag){var d=c.stateNode;if(b)d=d.style,"function"===typeof d.setProperty?d.setProperty("display","none","important"):d.display="none";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty("display")?e.display:null;d.style.display=Nf("display",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?"":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===a)break;for(;null===c.sibling;){if(null===
c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}function Rh(a,b,c){if(db&&"function"===typeof db.onCommitFiberUnmount)try{db.onCommitFiberUnmount($e,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Ph(b,c);else{d=b;try{e()}catch(f){Qa(d,f)}}c=c.next}while(c!==a)}break;case 1:Oh(b);a=b.stateNode;if("function"===typeof a.componentWillUnmount)try{a.props=
b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Qa(b,f)}break;case 5:Oh(b);break;case 4:Sh(a,b)}}function Th(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function Uh(a){return 5===a.tag||3===a.tag||4===a.tag}function Vh(a){a:{for(var b=a.return;null!==b;){if(Uh(b))break a;b=b.return}throw Error(m(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=
!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(m(161));}c.flags&16&&(qc(b,""),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Uh(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?af(a,c,b):bf(a,c,b)}function af(a,b,c){var d=
a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Vc));else if(4!==d&&(a=a.child,null!==a))for(af(a,b,c),a=a.sibling;null!==a;)af(a,b,c),a=a.sibling}function bf(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);
else if(4!==d&&(a=a.child,null!==a))for(bf(a,b,c),a=a.sibling;null!==a;)bf(a,b,c),a=a.sibling}function Sh(a,b,c){c=b;for(var d=!1,e,f;;){if(!d){e=c.return;a:for(;;){if(null===e)throw Error(m(160));f=e.stateNode;switch(e.tag){case 5:e=f;f=!1;break a;case 3:e=f.containerInfo;f=!0;break a;case 4:e=f.containerInfo;f=!0;break a}e=e.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(Rh(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===
k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(Rh(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=
c.sibling}}function cf(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Wc]=d;"input"===a&&"radio"===d.type&&null!=d.name&&Hf(c,d);Td(a,e);b=Td(a,d);for(e=0;e<f.length;e+=
2){var g=f[e],h=f[e+1];"style"===g?Of(c,h):"dangerouslySetInnerHTML"===g?Lh(c,h):"children"===g?qc(c,h):Ed(c,g,h,b)}switch(a){case "input":Nd(c,d);break;case "textarea":Kf(c,d);break;case "select":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?ib(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?ib(c,!!d.multiple,d.defaultValue,!0):ib(c,!!d.multiple,d.multiple?[]:"",!1))}}}return;case 6:if(null===b.stateNode)throw Error(m(162));b.stateNode.nodeValue=
b.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,bg(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(df=P(),Qh(b.child,!0));Wh(b);return;case 19:Wh(b);return;case 17:return;case 23:case 24:Qh(b,null!==b.memoizedState);return}throw Error(m(163));}function Wh(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Dj);b.forEach(function(b){var d=Ej.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}function Fj(a,
b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}function Eb(){We=P()+500}function W(){return 0!==(n&48)?P():-1!==sd?sd:sd=P()}function Oa(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===wb()?1:2;0===ua&&(ua=Fb);if(0!==Gj.transition){0!==td&&(td=null!==ef?ef.pendingLanes:0);a=ua;var b=4186112&~td;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=wb();0!==(n&4)&&98===a?a=Nc(12,ua):(a=Fi(a),a=Nc(a,ua));
return a}function Pa(a,b,c){if(50<rc)throw rc=0,ff=null,Error(m(185));a=ud(a,b);if(null===a)return null;Oc(a,b,c);a===R&&(Cb|=b,4===L&&Db(a,O));var d=wb();1===b?0!==(n&8)&&0===(n&48)?gf(a):(ba(a,c),0===n&&(Eb(),ja())):(0===(n&4)||98!==d&&99!==d||(null===va?va=new Set([a]):va.add(a)),ba(a,c));ef=a}function ud(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}
function ba(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Ba(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;mb(k);var m=w;f[h]=10<=m?l+250:6<=m?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Wb(a,a===R?O:0);b=w;if(0===d)null!==c&&(c!==hf&&xe(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==hf&&xe(c)}15===b?(c=gf.bind(null,a),null===pa?(pa=[c],Zc=we(Yc,$g)):pa.push(c),
c=hf):14===b?c=bc(99,gf.bind(null,a)):(c=Gi(b),c=bc(c,Xh.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}function Xh(a){sd=-1;td=ua=0;if(0!==(n&48))throw Error(m(327));var b=a.callbackNode;if(Ra()&&a.callbackNode!==b)return null;var c=Wb(a,a===R?O:0);if(0===c)return null;var d=c;var e=n;n|=16;var f=Yh();if(R!==a||O!==d)Eb(),Gb(a,d);do try{Hj();break}catch(h){Zh(a,h)}while(1);ze();vd.current=f;n=e;null!==G?d=0:(R=null,O=0,d=L);if(0!==(Fb&Cb))Gb(a,0);else if(0!==d){2===d&&(n|=64,a.hydrate&&(a.hydrate=
!1,te(a.containerInfo)),c=eg(a),0!==c&&(d=sc(a,c)));if(1===d)throw b=wd,Gb(a,0),Db(a,c),ba(a,P()),b;a.finishedWork=a.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(m(345));case 2:eb(a);break;case 3:Db(a,c);if((c&62914560)===c&&(d=df+500-P(),10<d)){if(0!==Wb(a,0))break;e=a.suspendedLanes;if((e&c)!==c){W();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=$h(eb.bind(null,a),d);break}eb(a);break;case 4:Db(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=
31-Ba(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=P()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>c?4320:1960*Ij(c/1960))-c;if(10<c){a.timeoutHandle=$h(eb.bind(null,a),c);break}eb(a);break;case 5:eb(a);break;default:throw Error(m(329));}}ba(a,P());return a.callbackNode===b?Xh.bind(null,a):null}function Db(a,b){b&=~jf;b&=~Cb;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Ba(b),d=1<<c;a[c]=-1;b&=~d}}function gf(a){if(0!==(n&48))throw Error(m(327));Ra();
if(a===R&&0!==(a.expiredLanes&O)){var b=O;var c=sc(a,b);0!==(Fb&Cb)&&(b=Wb(a,b),c=sc(a,b))}else b=Wb(a,0),c=sc(a,b);0!==a.tag&&2===c&&(n|=64,a.hydrate&&(a.hydrate=!1,te(a.containerInfo)),b=eg(a),0!==b&&(c=sc(a,b)));if(1===c)throw c=wd,Gb(a,0),Db(a,b),ba(a,P()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;eb(a);ba(a,P());return null}function Jj(){if(null!==va){var a=va;va=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;ba(a,P())})}ja()}function ai(a,b){var c=n;n|=1;try{return a(b)}finally{n=
c,0===n&&(Eb(),ja())}}function bi(a,b){var c=n;n&=-2;n|=8;try{return a(b)}finally{n=c,0===n&&(Eb(),ja())}}function pd(a,b){A(cb,ta);ta|=b;Fb|=b}function Gb(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Kj(c));if(null!==G)for(c=G.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&(t(J),t(D));break;case 3:Ab();t(J);t(D);Je();break;case 5:Ge(d);break;case 4:Ab();break;case 13:t(E);break;case 19:t(E);break;case 10:Ae(d);
break;case 23:case 24:ta=cb.current,t(cb)}c=c.return}R=a;G=Ma(a.current,null);O=ta=Fb=b;L=0;wd=null;jf=Cb=La=0}function Zh(a,b){do{var c=G;try{ze();jc.current=jd;if(kd){for(var d=y.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}kd=!1}ic=0;K=N=y=null;kc=!1;kf.current=null;if(null===c||null===c.return){L=1;wd=b;G=null;break}a:{var f=a,g=c.return,h=c,k=b;b=O;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&"object"===typeof k&&"function"===typeof k.then){var l=k;
if(0===(h.mode&2)){var m=h.alternate;m?(h.updateQueue=m.updateQueue,h.memoizedState=m.memoizedState,h.lanes=m.lanes):(h.updateQueue=null,h.memoizedState=null)}var n=0!==(E.current&1),r=g;do{var t;if(t=13===r.tag){var w=r.memoizedState;if(null!==w)t=null!==w.dehydrated?!0:!1;else{var z=r.memoizedProps;t=void 0===z.fallback?!1:!0!==z.unstable_avoidThisFallback?!0:n?!1:!0}}if(t){var C=r.updateQueue;if(null===C){var x=new Set;x.add(l);r.updateQueue=x}else C.add(l);if(0===(r.mode&2)){r.flags|=64;h.flags|=
16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var p=Ia(-1,1);p.tag=2;Ja(h,p)}h.lanes|=1;break a}k=void 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Lj,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var u=Mj.bind(null,f,l,h);l.then(u,u)}r.flags|=4096;r.lanes=b;break a}r=r.return}while(null!==r);k=Error((hb(h.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==
L&&(L=2);k=Xe(k,h);r=g;do{switch(r.tag){case 3:f=k;r.flags|=4096;b&=-b;r.lanes|=b;var B=Mh(r,f,b);ch(r,B);break a;case 1:f=k;var A=r.type,D=r.stateNode;if(0===(r.flags&64)&&("function"===typeof A.getDerivedStateFromError||null!==D&&"function"===typeof D.componentDidCatch&&(null===na||!na.has(D)))){r.flags|=4096;b&=-b;r.lanes|=b;var F=Nh(r,f,b);ch(r,F);break a}}r=r.return}while(null!==r)}ci(c)}catch(qa){b=qa;G===c&&null!==c&&(G=c=c.return);continue}break}while(1)}function Yh(){var a=vd.current;vd.current=
jd;return null===a?jd:a}function sc(a,b){var c=n;n|=16;var d=Yh();R===a&&O===b||Gb(a,b);do try{Nj();break}catch(e){Zh(a,e)}while(1);ze();n=c;vd.current=d;if(null!==G)throw Error(m(261));R=null;O=0;return L}function Nj(){for(;null!==G;)di(G)}function Hj(){for(;null!==G&&!Oj();)di(G)}function di(a){var b=Pj(a.alternate,a,ta);a.memoizedProps=a.pendingProps;null===b?ci(a):G=b;kf.current=null}function ci(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=vj(c,b,ta);if(null!==c){G=c;return}c=
b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(ta&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==a.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=zj(b);if(null!==c){c.flags&=2047;G=c;
return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){G=b;return}G=b=a}while(null!==b);0===L&&(L=5)}function eb(a){var b=wb();Za(99,Qj.bind(null,a,b));return null}function Qj(a,b){do Ra();while(null!==tc);if(0!==(n&48))throw Error(m(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(m(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;
a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Ba(f),v=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~v}null!==va&&0===(d&24)&&va.has(a)&&va.delete(a);a===R&&(G=R=null,O=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=n;n|=32;kf.current=null;lf=Pc;g=xg();if(ne(g)){if("selectionStart"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=
(h=g.ownerDocument)&&h.defaultView||window,(v=h.getSelection&&h.getSelection())&&0!==v.rangeCount){h=v.anchorNode;f=v.anchorOffset;k=v.focusNode;v=v.focusOffset;try{h.nodeType,k.nodeType}catch(qa){h=null;break a}var t=0,w=-1,r=-1,z=0,B=0,y=g,C=null;b:for(;;){for(var x;;){y!==h||0!==f&&3!==y.nodeType||(w=t+f);y!==k||0!==v&&3!==y.nodeType||(r=t+v);3===y.nodeType&&(t+=y.nodeValue.length);if(null===(x=y.firstChild))break;C=y;y=x}for(;;){if(y===g)break b;C===h&&++z===f&&(w=t);C===k&&++B===v&&(r=t);if(null!==
(x=y.nextSibling))break;y=C;C=y.parentNode}y=x}h=-1===w||-1===r?null:{start:w,end:r}}else h=null;h=h||{start:0,end:0}}else h=null;mf={focusedElem:g,selectionRange:h};Pc=!1;uc=null;xd=!1;l=d;do try{Rj()}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);uc=null;l=d;do try{for(g=a;null!==l;){var p=l.flags;p&16&&qc(l.stateNode,"");if(p&128){var q=l.alternate;if(null!==q){var u=q.ref;null!==u&&("function"===typeof u?u(null):u.current=null)}}switch(p&1038){case 2:Vh(l);l.flags&=
-3;break;case 6:Vh(l);l.flags&=-3;cf(l.alternate,l);break;case 1024:l.flags&=-1025;break;case 1028:l.flags&=-1025;cf(l.alternate,l);break;case 4:cf(l.alternate,l);break;case 8:h=l;Sh(g,h);var A=h.alternate;Th(h);null!==A&&Th(A)}l=l.nextEffect}}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);u=mf;q=xg();p=u.focusedElem;g=u.selectionRange;if(q!==p&&p&&p.ownerDocument&&wg(p.ownerDocument.documentElement,p)){null!==g&&ne(p)&&(q=g.start,u=g.end,void 0===u&&(u=q),"selectionStart"in
p?(p.selectionStart=q,p.selectionEnd=Math.min(u,p.value.length)):(u=(q=p.ownerDocument||document)&&q.defaultView||window,u.getSelection&&(u=u.getSelection(),h=p.textContent.length,A=Math.min(g.start,h),g=void 0===g.end?A:Math.min(g.end,h),!u.extend&&A>g&&(h=g,g=A,A=h),h=vg(p,A),f=vg(p,g),h&&f&&(1!==u.rangeCount||u.anchorNode!==h.node||u.anchorOffset!==h.offset||u.focusNode!==f.node||u.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),u.removeAllRanges(),A>g?(u.addRange(q),u.extend(f.node,
f.offset)):(q.setEnd(f.node,f.offset),u.addRange(q))))));q=[];for(u=p;u=u.parentNode;)1===u.nodeType&&q.push({element:u,left:u.scrollLeft,top:u.scrollTop});"function"===typeof p.focus&&p.focus();for(p=0;p<q.length;p++)u=q[p],u.element.scrollLeft=u.left,u.element.scrollTop=u.top}Pc=!!lf;mf=lf=null;a.current=c;l=d;do try{for(p=a;null!==l;){var D=l.flags;D&36&&Bj(p,l.alternate,l);if(D&128){q=void 0;var E=l.ref;if(null!==E){var F=l.stateNode;switch(l.tag){case 5:q=F;break;default:q=F}"function"===typeof E?
E(q):E.current=q}}l=l.nextEffect}}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);l=null;Sj();n=e}else a.current=c;if(Sa)Sa=!1,tc=a,vc=b;else for(l=d;null!==l;)b=l.nextEffect,l.nextEffect=null,l.flags&8&&(D=l,D.sibling=null,D.stateNode=null),l=b;d=a.pendingLanes;0===d&&(na=null);1===d?a===ff?rc++:(rc=0,ff=a):rc=0;c=c.stateNode;if(db&&"function"===typeof db.onCommitFiberRoot)try{db.onCommitFiberRoot($e,c,void 0,64===(c.current.flags&64))}catch(qa){}ba(a,P());if(rd)throw rd=
!1,a=Ze,Ze=null,a;if(0!==(n&8))return null;ja();return null}function Rj(){for(;null!==l;){var a=l.alternate;xd||null===uc||(0!==(l.flags&8)?Wf(l,uc)&&(xd=!0):13===l.tag&&Fj(a,l)&&Wf(l,uc)&&(xd=!0));var b=l.flags;0!==(b&256)&&Aj(a,l);0===(b&512)||Sa||(Sa=!0,bc(97,function(){Ra();return null}));l=l.nextEffect}}function Ra(){if(90!==vc){var a=97<vc?97:vc;vc=90;return Za(a,Tj)}return!1}function Cj(a,b){nf.push(b,a);Sa||(Sa=!0,bc(97,function(){Ra();return null}))}function Ph(a,b){of.push(b,a);Sa||(Sa=
!0,bc(97,function(){Ra();return null}))}function Tj(){if(null===tc)return!1;var a=tc;tc=null;if(0!==(n&48))throw Error(m(331));var b=n;n|=32;var c=of;of=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if("function"===typeof g)try{g()}catch(k){if(null===f)throw Error(m(330));Qa(f,k)}}c=nf;nf=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(m(330));Qa(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,
h.nextEffect=null,h.flags&8&&(h.sibling=null,h.stateNode=null),h=a;n=b;ja();return!0}function ei(a,b,c){b=Xe(c,b);b=Mh(a,b,1);Ja(a,b);b=W();a=ud(a,1);null!==a&&(Oc(a,1,b),ba(a,b))}function Qa(a,b){if(3===a.tag)ei(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){ei(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if("function"===typeof c.type.getDerivedStateFromError||"function"===typeof d.componentDidCatch&&(null===na||!na.has(d))){a=Xe(b,a);var e=Nh(c,a,1);Ja(c,e);e=W();c=ud(c,1);if(null!==
c)Oc(c,1,e),ba(c,e);else if("function"===typeof d.componentDidCatch&&(null===na||!na.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}function Mj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=W();a.pingedLanes|=a.suspendedLanes&c;R===a&&(O&c)===c&&(4===L||3===L&&(O&62914560)===O&&500>P()-df?Gb(a,0):jf|=c);ba(a,b)}function Ej(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===wb()?1:2:(0===ua&&(ua=Fb),b=nb(62914560&~ua),0===b&&(b=4194304)));
c=W();a=ud(a,b);null!==a&&(Oc(a,b,c),ba(a,c))}function Uj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function Qe(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Vj(a){if("function"===
typeof a)return Qe(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Dc)return 11;if(a===Ec)return 14}return 2}function Ma(a,b){var c=a.alternate;null===c?(c=Z(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=
a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}function fd(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)Qe(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case wa:return zb(c.children,e,f,b);case fi:g=8;e|=16;break;case Hd:g=8;e|=1;break;case Lb:return a=Z(12,c,b,e|8),a.elementType=Lb,a.type=Lb,a.lanes=f,a;case Mb:return a=Z(13,c,b,e),a.type=Mb,a.elementType=Mb,a.lanes=
f,a;case Cc:return a=Z(19,c,b,e),a.elementType=Cc,a.lanes=f,a;case pf:return Ue(c,e,f,b);case qf:return a=Z(24,c,b,e),a.elementType=qf,a.lanes=f,a;default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case Jd:g=10;break a;case Id:g=9;break a;case Dc:g=11;break a;case Ec:g=14;break a;case Ld:g=16;d=null;break a;case Kd:g=22;break a}throw Error(m(130,null==a?a:typeof a,""));}b=Z(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function zb(a,b,c,d){a=Z(7,a,d,b);a.lanes=c;return a}function Ue(a,
b,c,d){a=Z(23,a,d,b);a.elementType=pf;a.lanes=c;return a}function De(a,b,c){a=Z(6,a,null,b);a.lanes=c;return a}function Ee(a,b,c){b=Z(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function Wj(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=
null;this.callbackPriority=0;this.eventTimes=ge(0);this.expirationTimes=ge(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=ge(0);this.mutableSourceEagerHydrationData=null}function Xj(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ua,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}function yd(a,b,c,d){var e=b.current,f=W(),g=Oa(e);
a:if(c){c=c._reactInternals;b:{if(Va(c)!==c||1!==c.tag)throw Error(m(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(S(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(m(171));}if(1===c.tag){var k=c.type;if(S(k)){c=Tg(c,k,h);break a}}c=h}else c=Ha;null===b.context?b.context=c:b.pendingContext=c;b=Ia(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);Ja(e,b);Pa(e,g,f);return g}function rf(a){a=
a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function gi(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function sf(a,b){gi(a,b);(a=a.alternate)&&gi(a,b)}function Yj(a){a=Vf(a);return null===a?null:a.stateNode}function Zj(a){return null}function tf(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new Wj(a,b,null!=c&&!0===c.hydrate);
b=Z(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;Be(b);a[rb]=c.current;Cg(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}function wc(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function ak(a,b){b||(b=a?9===
a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute("data-reactroot")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new tf(a,0,b?{hydrate:!0}:void 0)}function zd(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if("function"===typeof e){var h=e;e=function(){var a=rf(g);h.call(a)}}yd(b,g,a,e)}else{f=c._reactRootContainer=ak(c,d);g=f._internalRoot;if("function"===typeof e){var k=e;e=function(){var a=rf(g);k.call(a)}}bi(function(){yd(b,
g,a,e)})}return rf(g)}function hi(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!wc(b))throw Error(m(200));return Xj(a,b,null,c)}if(!ha)throw Error(m(227));var zf=new Set,Ib={},oa=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),mi=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,
Af=Object.prototype.hasOwnProperty,Cf={},Bf={},I={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){I[a]=new Q(a,0,!1,a,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];I[b]=new Q(b,1,!1,a[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){I[a]=
new Q(a,2,!1,a.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){I[a]=new Q(a,2,!1,a,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){I[a]=new Q(a,3,!1,a.toLowerCase(),null,!1,!1)});["checked","multiple",
"muted","selected"].forEach(function(a){I[a]=new Q(a,3,!0,a,null,!1,!1)});["capture","download"].forEach(function(a){I[a]=new Q(a,4,!1,a,null,!1,!1)});["cols","rows","size","span"].forEach(function(a){I[a]=new Q(a,6,!1,a,null,!1,!1)});["rowSpan","start"].forEach(function(a){I[a]=new Q(a,5,!1,a.toLowerCase(),null,!1,!1)});var uf=/[\-:]([a-z])/g,vf=function(a){return a[1].toUpperCase()};"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=
a.replace(uf,vf);I[b]=new Q(b,1,!1,a,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(uf,vf);I[b]=new Q(b,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(uf,vf);I[b]=new Q(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(a){I[a]=new Q(a,1,!1,a.toLowerCase(),null,!1,!1)});I.xlinkHref=new Q("xlinkHref",
1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(a){I[a]=new Q(a,1,!1,a.toLowerCase(),null,!0,!0)});var B=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.assign,fb=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ec=60103,Ua=60106,wa=60107,Hd=60108,Lb=60114,Jd=60109,Id=60110,Dc=60112,Mb=60113,Cc=60120,Ec=60115,Ld=60116,Kd=60121,ue=60128,fi=60129,pf=60130,qf=60131;if("function"===typeof Symbol&&Symbol.for){var H=Symbol.for;ec=
H("react.element");Ua=H("react.portal");wa=H("react.fragment");Hd=H("react.strict_mode");Lb=H("react.profiler");Jd=H("react.provider");Id=H("react.context");Dc=H("react.forward_ref");Mb=H("react.suspense");Cc=H("react.suspense_list");Ec=H("react.memo");Ld=H("react.lazy");Kd=H("react.block");H("react.scope");ue=H("react.opaque.id");fi=H("react.debug_trace_mode");pf=H("react.offscreen");qf=H("react.legacy_hidden")}var Df="function"===typeof Symbol&&Symbol.iterator,Fd,Gd=!1,Ad,Lh=function(a){return"undefined"!==
typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if("http://www.w3.org/2000/svg"!==a.namespaceURI||"innerHTML"in a)a.innerHTML=b;else{Ad=Ad||document.createElement("div");Ad.innerHTML="<svg>"+b.valueOf().toString()+"</svg>";for(b=Ad.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}),qc=function(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=
b;return}}a.textContent=b},Nb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,
zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bk=["Webkit","ms","Moz","O"];Object.keys(Nb).forEach(function(a){bk.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Nb[b]=Nb[a]})});var si=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Vd=null,jb=null,kb=null,me=function(a,b){return a(b)},fg=function(a,
b,c,d,e){return a(b,c,d,e)},Xd=function(){},Sf=me,Xa=!1,Yd=!1,qe=!1;if(oa)try{var xc={};Object.defineProperty(xc,"passive",{get:function(){qe=!0}});window.addEventListener("test",xc,xc);window.removeEventListener("test",xc,xc)}catch(a){qe=!1}var vi=function(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(Da){this.onError(Da)}},Qb=!1,Ic=null,Jc=!1,Zd=null,wi={onError:function(a){Qb=!0;Ic=a}},ca=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Scheduler,
ck=ca.unstable_cancelCallback,Bd=ca.unstable_now,$f=ca.unstable_scheduleCallback,dk=ca.unstable_shouldYield,ii=ca.unstable_requestPaint,ae=ca.unstable_runWithPriority,ek=ca.unstable_getCurrentPriorityLevel,fk=ca.unstable_ImmediatePriority,ji=ca.unstable_UserBlockingPriority,ag=ca.unstable_NormalPriority,gk=ca.unstable_LowPriority,hk=ca.unstable_IdlePriority,ce=!1,ia=[],ya=null,za=null,Aa=null,Rb=new Map,Sb=new Map,Vb=[],gg="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" "),
lb={animationend:Lc("Animation","AnimationEnd"),animationiteration:Lc("Animation","AnimationIteration"),animationstart:Lc("Animation","AnimationStart"),transitionend:Lc("Transition","TransitionEnd")},de={},cg={};oa&&(cg=document.createElement("div").style,"AnimationEvent"in window||(delete lb.animationend.animation,delete lb.animationiteration.animation,delete lb.animationstart.animation),"TransitionEvent"in window||delete lb.transitionend.transition);var Hg=Mc("animationend"),Ig=Mc("animationiteration"),
Jg=Mc("animationstart"),Kg=Mc("transitionend"),dg=new Map,fe=new Map,ik=["abort","abort",Hg,"animationEnd",Ig,"animationIteration",Jg,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing",
"playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Kg,"transitionEnd","waiting","waiting"];Bd();var w=8,Ba=Math.clz32?Math.clz32:Hi,Ii=Math.log,Ji=Math.LN2,Ni=ji,Mi=ae,Pc=!0,Ca=null,ie=null,Qc=null,Hb={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},le=V(Hb),yc=B({},Hb,{view:0,detail:0}),hj=V(yc),wf,xf,zc,Cd=B({},yc,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,
pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:je,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if("movementX"in a)return a.movementX;a!==zc&&(zc&&"mousemove"===a.type?(wf=a.screenX-zc.screenX,xf=a.screenY-zc.screenY):xf=wf=0,zc=a);return wf},movementY:function(a){return"movementY"in a?a.movementY:xf}}),Gg=V(Cd),jk=B({},Cd,{dataTransfer:0}),dj=V(jk),kk=B({},
yc,{relatedTarget:0}),re=V(kk),lk=B({},Hb,{animationName:0,elapsedTime:0,pseudoElement:0}),fj=V(lk),mk=B({},Hb,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),jj=V(mk),nk=B({},Hb,{data:0}),Og=V(nk),mj=Og,ok={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},pk={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",
16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Pi={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},qk=B({},yc,{key:function(a){if(a.key){var b=ok[a.key]||a.key;if("Unidentified"!==
b)return b}return"keypress"===a.type?(a=Rc(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?pk[a.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:je,charCode:function(a){return"keypress"===a.type?Rc(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===a.type?Rc(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),cj=V(qk),rk=B({},
Cd,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Lg=V(rk),sk=B({},yc,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:je}),ej=V(sk),tk=B({},Hb,{propertyName:0,elapsedTime:0,pseudoElement:0}),gj=V(tk),uk=B({},Cd,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in
a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),ij=V(uk),Qi=[9,13,27,32],ke=oa&&"CompositionEvent"in window,Ac=null;oa&&"documentMode"in document&&(Ac=document.documentMode);var lj=oa&&"TextEvent"in window&&!Ac,og=oa&&(!ke||Ac&&8<Ac&&11>=Ac),ng=String.fromCharCode(32),mg=!1,ob=!1,Ti={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},Xb=null,Yb=null,Ng=!1;oa&&(Ng=Ui("input")&&(!document.documentMode||9<document.documentMode));
var X="function"===typeof Object.is?Object.is:aj,bj=Object.prototype.hasOwnProperty,kj=oa&&"documentMode"in document&&11>=document.documentMode,qb=null,pe=null,$b=null,oe=!1;ee("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),
0);ee("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1);ee(ik,2);(function(a,b){for(var c=0;c<a.length;c++)fe.set(a[c],b)})("change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),0);gb("onMouseEnter",["mouseout","mouseover"]);
gb("onMouseLeave",["mouseout","mouseover"]);gb("onPointerEnter",["pointerout","pointerover"]);gb("onPointerLeave",["pointerout","pointerover"]);Ta("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Ta("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Ta("onBeforeInput",["compositionend","keypress","textInput","paste"]);Ta("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));
Ta("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Ta("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var pc="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Eg=new Set("cancel close invalid load scroll toggle".split(" ").concat(pc)),
Dg="_reactListening"+Math.random().toString(36).slice(2),lf=null,mf=null,$h="function"===typeof setTimeout?setTimeout:void 0,Kj="function"===typeof clearTimeout?clearTimeout:void 0,yf=0,Dd=Math.random().toString(36).slice(2),Fa="__reactFiber$"+Dd,Wc="__reactProps$"+Dd,rb="__reactContainer$"+Dd,Rg="__reactEvents$"+Dd,ve=[],ub=-1,Ha={},D=Ga(Ha),J=Ga(!1),Ya=Ha,$e=null,db=null,pj=ae,we=$f,xe=ck,oj=ek,Yc=fk,Vg=ji,Wg=ag,Xg=gk,Yg=hk,hf={},Oj=dk,Sj=void 0!==ii?ii:function(){},pa=null,Zc=null,ye=!1,ki=Bd(),
P=1E4>ki?Bd:function(){return Bd()-ki},Gj=fb.ReactCurrentBatchConfig,bd=Ga(null),ad=null,xb=null,$c=null,Ka=!1,hh=(new ha.Component).refs,dd={isMounted:function(a){return(a=a._reactInternals)?Va(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=W(),e=Oa(a),f=Ia(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ja(a,f);Pa(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=W(),e=Oa(a),f=Ia(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ja(a,f);
Pa(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=W(),d=Oa(a),e=Ia(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);Ja(a,e);Pa(a,d,c)}},gd=Array.isArray,od=ih(!0),xh=ih(!1),fc={},ka=Ga(fc),hc=Ga(fc),gc=Ga(fc),E=Ga(0),ra=null,Na=null,la=!1,Bb=[],jc=fb.ReactCurrentDispatcher,aa=fb.ReactCurrentBatchConfig,ic=0,y=null,N=null,K=null,kd=!1,kc=!1,jd={readContext:Y,useCallback:T,useContext:T,useEffect:T,useImperativeHandle:T,useLayoutEffect:T,useMemo:T,useReducer:T,useRef:T,useState:T,
useDebugValue:T,useDeferredValue:T,useTransition:T,useMutableSource:T,useOpaqueIdentifier:T,unstable_isNewReconciler:!1},qj={readContext:Y,useCallback:function(a,b){ab().memoizedState=[a,void 0===b?null:b];return a},useContext:Y,useEffect:rh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ne(4,2,th.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ne(4,2,a,b)},useMemo:function(a,b){var c=ab();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,
b,c){var d=ab();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Me.bind(null,y,a);return[d.memoizedState,a]},useRef:qh,useState:nc,useDebugValue:Pe,useDeferredValue:function(a){var b=nc(a),c=b[0],d=b[1];rh(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=nc(!1),b=a[0];a=tj.bind(null,a[1]);qh(a);return[a,b]},useMutableSource:function(a,
b,c){var d=ab();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return oh(d,a,b,c)},useOpaqueIdentifier:function(){if(la){var a=!1,b=nj(function(){a||(a=!0,c("r:"+(yf++).toString(36)));throw Error(m(355));}),c=nc(b)[1];0===(y.mode&2)&&(y.flags|=516,ld(5,function(){c("r:"+(yf++).toString(36))},void 0,null));return b}b="r:"+(yf++).toString(36);nc(b);return b},unstable_isNewReconciler:!1},rj={readContext:Y,useCallback:vh,useContext:Y,useEffect:nd,useImperativeHandle:uh,useLayoutEffect:sh,
useMemo:wh,useReducer:lc,useRef:md,useState:function(a){return lc(ma)},useDebugValue:Pe,useDeferredValue:function(a){var b=lc(ma),c=b[0],d=b[1];nd(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=lc(ma)[0];return[md().current,a]},useMutableSource:ph,useOpaqueIdentifier:function(){return lc(ma)[0]},unstable_isNewReconciler:!1},sj={readContext:Y,useCallback:vh,useContext:Y,useEffect:nd,useImperativeHandle:uh,useLayoutEffect:sh,
useMemo:wh,useReducer:mc,useRef:md,useState:function(a){return mc(ma)},useDebugValue:Pe,useDeferredValue:function(a){var b=mc(ma),c=b[0],d=b[1];nd(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=mc(ma)[0];return[md().current,a]},useMutableSource:ph,useOpaqueIdentifier:function(){return mc(ma)[0]},unstable_isNewReconciler:!1},uj=fb.ReactCurrentOwner,fa=!1,qd={dehydrated:null,retryLane:0};var xj=function(a,b,c,d){for(c=
b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};var Kh=function(a){};var wj=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){a=b.stateNode;$a(ka.current);e=null;switch(c){case "input":f=Md(a,f);d=Md(a,d);e=[];break;case "option":f=Pd(a,f);d=Pd(a,d);e=[];break;case "select":f=
B({},f,{value:void 0});d=B({},d,{value:void 0});e=[];break;case "textarea":f=Qd(a,f);d=Qd(a,d);e=[];break;default:"function"!==typeof f.onClick&&"function"===typeof d.onClick&&(a.onclick=Vc)}Sd(c,d);var g;c=null;for(l in f)if(!d.hasOwnProperty(l)&&f.hasOwnProperty(l)&&null!=f[l])if("style"===l){var h=f[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]="")}else"dangerouslySetInnerHTML"!==l&&"children"!==l&&"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(Ib.hasOwnProperty(l)?
e||(e=[]):(e=e||[]).push(l,null));for(l in d){var k=d[l];h=null!=f?f[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if("style"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]="");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(e||(e=[]),e.push(l,c)),c=k;else"dangerouslySetInnerHTML"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(e=e||[]).push(l,k)):"children"===l?"string"!==typeof k&&"number"!==typeof k||(e=
e||[]).push(l,""+k):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&(Ib.hasOwnProperty(l)?(null!=k&&"onScroll"===l&&z("scroll",a),e||h===k||(e=[])):"object"===typeof k&&null!==k&&k.$$typeof===ue?k.toString():(e=e||[]).push(l,k))}c&&(e=e||[]).push("style",c);var l=e;if(b.updateQueue=l)b.flags|=4}};var yj=function(a,b,c,d){c!==d&&(b.flags|=4)};var Lj="function"===typeof WeakMap?WeakMap:Map,Dj="function"===typeof WeakSet?WeakSet:Set,Ij=Math.ceil,vd=fb.ReactCurrentDispatcher,kf=
fb.ReactCurrentOwner,n=0,R=null,G=null,O=0,ta=0,cb=Ga(0),L=0,wd=null,Fb=0,La=0,Cb=0,jf=0,ef=null,df=0,We=Infinity,l=null,rd=!1,Ze=null,na=null,Sa=!1,tc=null,vc=90,nf=[],of=[],va=null,rc=0,ff=null,sd=-1,ua=0,td=0,uc=null,xd=!1;var Pj=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||J.current)fa=!0;else if(0!==(c&d))fa=0!==(a.flags&16384)?!0:!1;else{fa=!1;switch(b.tag){case 3:Dh(b);Ie();break;case 5:jh(b);break;case 1:S(b.type)&&Xc(b);break;case 4:Fe(b,b.stateNode.containerInfo);
break;case 10:d=b.memoizedProps.value;var e=b.type._context;A(bd,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return Eh(a,b,c);A(E,E.current&1);b=sa(a,b,c);return null!==b?b.sibling:null}A(E,E.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Jh(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);A(E,E.current);if(d)break;else return null;case 23:case 24:return b.lanes=
0,Se(a,b,c)}return sa(a,b,c)}else fa=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=vb(b,D.current);yb(b,c);e=Le(null,b,d,a,e,c);b.flags|=1;if("object"===typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(S(d)){var f=!0;Xc(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;Be(b);var g=d.getDerivedStateFromProps;"function"===typeof g&&
cd(b,d,g,a);e.updater=dd;b.stateNode=e;e._reactInternals=b;Ce(b,d,a,c);b=Te(null,b,d,!0,f,c)}else b.tag=0,U(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=Vj(e);a=ea(e,a);switch(f){case 0:b=Re(null,b,e,a,c);break a;case 1:b=Ch(null,b,e,a,c);break a;case 11:b=yh(null,b,e,a,c);break a;case 14:b=zh(null,b,e,ea(e.type,a),d,c);break a}throw Error(m(306,e,""));}return b;case 0:return d=
b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),Re(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),Ch(a,b,d,e,c);case 3:Dh(b);d=b.updateQueue;if(null===a||null===d)throw Error(m(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;bh(a,b);cc(b,d,null,c);d=b.memoizedState.element;if(d===e)Ie(),b=sa(a,b,c);else{e=b.stateNode;if(f=e.hydrate)Na=tb(b.stateNode.containerInfo.firstChild),ra=b,f=la=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=
a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],Bb.push(f);c=xh(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else U(a,b,d,c),Ie();b=b.child}return b;case 5:return jh(b),null===a&&He(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,se(d,e)?g=null:null!==f&&se(d,f)&&(b.flags|=16),Bh(a,b),U(a,b,g,c),b.child;case 6:return null===a&&He(b),null;case 13:return Eh(a,b,c);case 4:return Fe(b,b.stateNode.containerInfo),d=b.pendingProps,null===
a?b.child=od(b,null,d,c):U(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),yh(a,b,d,e,c);case 7:return U(a,b,b.pendingProps,c),b.child;case 8:return U(a,b,b.pendingProps.children,c),b.child;case 12:return U(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;A(bd,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=X(h,f)?0:("function"===typeof d._calculateChangedBits?
d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!J.current){b=sa(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Ia(-1,c&-c),l.tag=2,Ja(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);ah(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=
h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}U(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,yb(b,c),e=Y(e,f.unstable_observedBits),d=d(e),b.flags|=1,U(a,b,d,c),b.child;case 14:return e=b.type,f=ea(e,b.pendingProps),f=ea(e.type,f),zh(a,b,e,f,d,c);case 15:return Ah(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),null!==a&&(a.alternate=null,b.alternate=
null,b.flags|=2),b.tag=1,S(d)?(a=!0,Xc(b)):a=!1,yb(b,c),fh(b,d,e),Ce(b,d,e,c),Te(null,b,d,!0,a,c);case 19:return Jh(a,b,c);case 23:return Se(a,b,c);case 24:return Se(a,b,c)}throw Error(m(156,b.tag));};var Z=function(a,b,c,d){return new Uj(a,b,c,d)};tf.prototype.render=function(a){yd(a,this._internalRoot,null,null)};tf.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;yd(null,a,null,function(){b[rb]=null})};var Ei=function(a){if(13===a.tag){var b=W();Pa(a,4,b);sf(a,4)}};var Yf=
function(a){if(13===a.tag){var b=W();Pa(a,67108864,b);sf(a,67108864)}};var Ci=function(a){if(13===a.tag){var b=W(),c=Oa(a);Pa(a,c,b);sf(a,c)}};var Bi=function(a,b){return b()};Vd=function(a,b,c){switch(b){case "input":Nd(a,c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Hc(d);if(!e)throw Error(m(90));Ff(d);Nd(d,e)}}}break;case "textarea":Kf(a,
c);break;case "select":b=c.value,null!=b&&ib(a,!!c.multiple,b,!1)}};(function(a,b,c,d){me=a;fg=b;Xd=c;Sf=d})(ai,function(a,b,c,d,e){var f=n;n|=4;try{return Za(98,a.bind(null,b,c,d,e))}finally{n=f,0===n&&(Eb(),ja())}},function(){0===(n&49)&&(Jj(),Ra())},function(a,b){var c=n;n|=2;try{return a(b)}finally{n=c,0===n&&(Eb(),ja())}});var vk={Events:[Ob,pb,Hc,Qf,Rf,Ra,{current:!1}]};(function(a){a={bundleType:a.bundleType,version:a.version,rendererPackageName:a.rendererPackageName,rendererConfig:a.rendererConfig,
overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:fb.ReactCurrentDispatcher,findHostInstanceByFiber:Yj,findFiberByHostInstance:a.findFiberByHostInstance||Zj,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)a=
!1;else{var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!b.isDisabled&&b.supportsFiber)try{$e=b.inject(a),db=b}catch(c){}a=!0}return a})({findFiberByHostInstance:Wa,bundleType:0,version:"17.0.1",rendererPackageName:"react-dom"});M.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;M.createPortal=hi;M.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if("function"===typeof a.render)throw Error(m(188));throw Error(m(268,Object.keys(a)));
}a=Vf(b);a=null===a?null:a.stateNode;return a};M.flushSync=function(a,b){var c=n;if(0!==(c&48))return a(b);n|=1;try{if(a)return Za(99,a.bind(null,b))}finally{n=c,ja()}};M.hydrate=function(a,b,c){if(!wc(b))throw Error(m(200));return zd(null,a,b,!0,c)};M.render=function(a,b,c){if(!wc(b))throw Error(m(200));return zd(null,a,b,!1,c)};M.unmountComponentAtNode=function(a){if(!wc(a))throw Error(m(40));return a._reactRootContainer?(bi(function(){zd(null,null,a,!1,function(){a._reactRootContainer=null;a[rb]=
null})}),!0):!1};M.unstable_batchedUpdates=ai;M.unstable_createPortal=function(a,b){return hi(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};M.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!wc(c))throw Error(m(200));if(null==a||void 0===a._reactInternals)throw Error(m(38));return zd(a,b,c,!1,d)};M.version="17.0.1"});
})();/*! instant.page v5.2.0 - (C) 2019-2024 Alexandre Dieulot - https://instant.page/license */

let _chromiumMajorVersionInUserAgent = null
  , _speculationRulesType
  , _allowQueryString
  , _allowExternalLinks
  , _useWhitelist
  , _delayOnHover = 65
  , _lastTouchstartEvent
  , _mouseoverTimer
  , _preloadedList = new Set()

init()

function init() {
  const supportCheckRelList = document.createElement('link').relList
  const isSupported = supportCheckRelList.supports('prefetch')
    && supportCheckRelList.supports('modulepreload')
  // instant.page is meant to be loaded with <script type=module>
  // (though sometimes webmasters load it as a regular script).
  // So it’s normally executed (and must not cause JavaScript errors) in:
  // - Chromium 61+
  // - Gecko in Firefox 60+
  // - WebKit in Safari 10.1+ (iOS 10.3+, macOS 10.10+)
  //
  // The check above used to check for IntersectionObserverEntry.isIntersecting
  // but module scripts support implies this compatibility — except in Safari
  // 10.1–12.0, but this prefetch check takes care of it.
  //
  // The modulepreload check is used to drop support for Firefox < 115 in order
  // to lessen maintenance.
  // This implies Safari 17+ (if it supported prefetch), if we ever support
  // fetch()-based preloading for Safari we might want to OR that check with
  // something that Safari 15.4 or 16.4 supports.
  // Also implies Chromium 66+.

  if (!isSupported) {
    return
  }

  const handleVaryAcceptHeader = 'instantVaryAccept' in document.body.dataset || 'Shopify' in window
  // The `Vary: Accept` header when received in Chromium 79–109 makes prefetches
  // unusable, as Chromium used to send a different `Accept` header.
  // It’s applied on all Shopify sites by default, as Shopify is very popular
  // and is the main source of this problem.
  // `window.Shopify` only exists on “classic” Shopify sites. Those using
  // Hydrogen (Remix SPA) aren’t concerned.

  const chromiumUserAgentIndex = navigator.userAgent.indexOf('Chrome/')
  if (chromiumUserAgentIndex > -1) {
    _chromiumMajorVersionInUserAgent = parseInt(navigator.userAgent.substring(chromiumUserAgentIndex + 'Chrome/'.length))
  }
  // The user agent client hints API is a theoretically more reliable way to
  // get Chromium’s version… but it’s not available in Samsung Internet 20.
  // It also requires a secure context, which would make debugging harder,
  // and is only available in recent Chromium versions.
  // In practice, Chromium browsers never shy from announcing "Chrome" in
  // their regular user agent string, as that maximizes their compatibility.

  if (handleVaryAcceptHeader && _chromiumMajorVersionInUserAgent && _chromiumMajorVersionInUserAgent < 110) {
    return
  }

  _speculationRulesType = 'none'
  if (HTMLScriptElement.supports && HTMLScriptElement.supports('speculationrules')) {
    const speculationRulesConfig = document.body.dataset.instantSpecrules
    if (speculationRulesConfig == 'prerender') {
      _speculationRulesType = 'prerender'
    } else if (speculationRulesConfig != 'no') {
      _speculationRulesType = 'prefetch'
    }
  }

  const useMousedownShortcut = 'instantMousedownShortcut' in document.body.dataset
  _allowQueryString = 'instantAllowQueryString' in document.body.dataset
  _allowExternalLinks = 'instantAllowExternalLinks' in document.body.dataset
  _useWhitelist = 'instantWhitelist' in document.body.dataset

  let preloadOnMousedown = false
  let preloadOnlyOnMousedown = false
  let preloadWhenVisible = false
  if ('instantIntensity' in document.body.dataset) {
    const intensityParameter = document.body.dataset.instantIntensity

    if (intensityParameter == 'mousedown' && !useMousedownShortcut) {
      preloadOnMousedown = true
    }

    if (intensityParameter == 'mousedown-only' && !useMousedownShortcut) {
      preloadOnMousedown = true
      preloadOnlyOnMousedown = true
    }

    if (intensityParameter == 'viewport') {
      const isOnSmallScreen = document.documentElement.clientWidth * document.documentElement.clientHeight < 450000
      // Smartphones are the most likely to have a slow connection, and
      // their small screen size limits the number of links (and thus
      // server load).
      //
      // Foldable phones (being expensive as of 2023), tablets and PCs
      // generally have a decent connection, and a big screen displaying
      // more links that would put more load on the server.
      //
      // iPhone 14 Pro Max (want): 430×932 = 400 760
      // Samsung Galaxy S22 Ultra with display size set to 80% (want):
      // 450×965 = 434 250
      // Small tablet (don’t want): 600×960 = 576 000
      // Those number are virtual screen size, the viewport (used for
      // the check above) will be smaller with the browser’s interface.

      const isNavigatorConnectionSaveDataEnabled = navigator.connection && navigator.connection.saveData
      const isNavigatorConnectionLike2g = navigator.connection && navigator.connection.effectiveType && navigator.connection.effectiveType.includes('2g')
      const isNavigatorConnectionAdequate = !isNavigatorConnectionSaveDataEnabled && !isNavigatorConnectionLike2g

      if (isOnSmallScreen && isNavigatorConnectionAdequate) {
        preloadWhenVisible = true
      }
    }

    if (intensityParameter == 'viewport-all') {
      preloadWhenVisible = true
    }

    const intensityAsInteger = parseInt(intensityParameter)
    if (!isNaN(intensityAsInteger)) {
      _delayOnHover = intensityAsInteger
    }
  }

  const eventListenersOptions = {
    capture: true,
    passive: true,
  }

  if (preloadOnlyOnMousedown) {
    document.addEventListener('touchstart', touchstartEmptyListener, eventListenersOptions)
  }
  else {
    document.addEventListener('touchstart', touchstartListener, eventListenersOptions)
  }

  if (!preloadOnMousedown) {
    document.addEventListener('mouseover', mouseoverListener, eventListenersOptions)
  }

  if (preloadOnMousedown) {
    document.addEventListener('mousedown', mousedownListener, eventListenersOptions)
  }
  if (useMousedownShortcut) {
    document.addEventListener('mousedown', mousedownShortcutListener, eventListenersOptions)
  }

  if (preloadWhenVisible) {
    let requestIdleCallbackOrFallback = window.requestIdleCallback
    // Safari has no support as of 16.3: https://webkit.org/b/164193
    if (!requestIdleCallbackOrFallback) {
      requestIdleCallbackOrFallback = (callback) => {
        callback()
        // A smarter fallback like setTimeout is not used because devices that
        // may eventually be eligible to a Safari version supporting prefetch
        // will be very powerful.
        // The weakest devices that could be eligible are the 2017 iPad and
        // the 2016 MacBook.
      }
    }

    requestIdleCallbackOrFallback(function observeIntersection() {
      const intersectionObserver = new IntersectionObserver((entries) => {
        entries.forEach((entry) => {
          if (entry.isIntersecting) {
            const anchorElement = entry.target
            intersectionObserver.unobserve(anchorElement)
            preload(anchorElement.href)
          }
        })
      })

      document.querySelectorAll('a').forEach((anchorElement) => {
        if (isPreloadable(anchorElement)) {
          intersectionObserver.observe(anchorElement)
        }
      })
    }, {
      timeout: 1500,
    })
  }
}

function touchstartListener(event) {
  _lastTouchstartEvent = event

  const anchorElement = event.target.closest('a')

  if (!isPreloadable(anchorElement)) {
    return
  }

  preload(anchorElement.href, 'high')
}

function touchstartEmptyListener(event) {
  _lastTouchstartEvent = event
}

function mouseoverListener(event) {
  if (isEventLikelyTriggeredByTouch(event)) {
    // This avoids uselessly adding a mouseout event listener and setting a timer.
    return
  }

  if (!('closest' in event.target)) {
    return
    // Without this check sometimes an error “event.target.closest is not a function” is thrown, for unknown reasons
    // That error denotes that `event.target` isn’t undefined. My best guess is that it’s the Document.
    //
    // Details could be gleaned from throwing such an error:
    //throw new TypeError(`instant.page non-element event target: timeStamp=${~~event.timeStamp}, type=${event.type}, typeof=${typeof event.target}, nodeType=${event.target.nodeType}, nodeName=${event.target.nodeName}, viewport=${innerWidth}x${innerHeight}, coords=${event.clientX}x${event.clientY}, scroll=${scrollX}x${scrollY}`)
  }
  const anchorElement = event.target.closest('a')

  if (!isPreloadable(anchorElement)) {
    return
  }

  anchorElement.addEventListener('mouseout', mouseoutListener, {passive: true})

  _mouseoverTimer = setTimeout(() => {
    preload(anchorElement.href, 'high')
    _mouseoverTimer = null
  }, _delayOnHover)
}

function mousedownListener(event) {
  if (isEventLikelyTriggeredByTouch(event)) {
    // When preloading only on mousedown, not touch, we need to stop there
    // because touches send compatibility mouse events including mousedown.
    //
    // (When preloading on touchstart, instructions below this block would
    // have no effect.)
    return
  }

  const anchorElement = event.target.closest('a')

  if (!isPreloadable(anchorElement)) {
    return
  }

  preload(anchorElement.href, 'high')
}

function mouseoutListener(event) {
  if (event.relatedTarget && event.target.closest('a') == event.relatedTarget.closest('a')) {
    return
  }

  if (_mouseoverTimer) {
    clearTimeout(_mouseoverTimer)
    _mouseoverTimer = null
  }
}

function mousedownShortcutListener(event) {
  if (isEventLikelyTriggeredByTouch(event)) {
    // Due to a high potential for complications with this mousedown shortcut
    // combined with other parties’ JavaScript code, we don’t want it to run
    // at all on touch devices, even though mousedown and click are triggered
    // at almost the same time on touch.
    return
  }

  const anchorElement = event.target.closest('a')

  if (event.which > 1 || event.metaKey || event.ctrlKey) {
    return
  }

  if (!anchorElement) {
    return
  }

  anchorElement.addEventListener('click', function (event) {
    if (event.detail == 1337) {
      return
    }

    event.preventDefault()
  }, {capture: true, passive: false, once: true})

  const customEvent = new MouseEvent('click', {view: window, bubbles: true, cancelable: false, detail: 1337})
  anchorElement.dispatchEvent(customEvent)
}

function isEventLikelyTriggeredByTouch(event) {
  // Touch devices fire “mouseover” and “mousedown” (and other) events after
  // a touch for compatibility reasons.
  // This function checks if it’s likely that we’re dealing with such an event.

  if (!_lastTouchstartEvent || !event) {
    return false
  }

  if (event.target != _lastTouchstartEvent.target) {
    return false
  }

  const now = event.timeStamp
  // Chromium (tested Chrome 95 and 122 on Android) sometimes uses the same
  // event.timeStamp value in touchstart, mouseover, and mousedown.
  // Testable in test/extras/delay-not-considered-touch.html
  // This is okay for our purpose: two equivalent timestamps will be less
  // than the max duration, which means they’re related events.
  // TODO: fill/find Chromium bug
  const durationBetweenLastTouchstartAndNow = now - _lastTouchstartEvent.timeStamp

  const MAX_DURATION_TO_BE_CONSIDERED_TRIGGERED_BY_TOUCHSTART = 2500
  // How long after a touchstart event can a simulated mouseover/mousedown event fire?
  // /test/extras/delay-not-considered-touch.html tries to answer that question.
  // I saw up to 1450 ms on an overwhelmed Samsung Galaxy S2.
  // On the other hand, how soon can an unrelated mouseover event happen after an unrelated touchstart?
  // Meaning the user taps a link, then grabs their pointing device and clicks another/the same link.
  // That scenario could occur if a user taps a link, thinks it hasn’t worked, and thus fall back to their pointing device.
  // I do that in about 1200 ms on a Chromebook. In which case this function returns a false positive.
  // False positives are okay, as this function is only used to decide to abort handling mouseover/mousedown/mousedownShortcut.
  // False negatives could lead to unforeseen state, particularly in mousedownShortcutListener.

  return durationBetweenLastTouchstartAndNow < MAX_DURATION_TO_BE_CONSIDERED_TRIGGERED_BY_TOUCHSTART

  // TODO: Investigate if pointer events could be used.
  // https://developer.mozilla.org/en-US/docs/Web/API/PointerEvent/pointerType

  // TODO: Investigate if InputDeviceCapabilities could be used to make it
  // less hacky on Chromium browsers.
  // https://developer.mozilla.org/en-US/docs/Web/API/InputDeviceCapabilities_API
  // https://wicg.github.io/input-device-capabilities/
  // Needs careful reading of the spec and tests (notably, what happens with a
  // mouse connected to an Android or iOS smartphone?) to make sure it’s solid.
  // Also need to judge if WebKit could implement it differently, as they
  // don’t mind doing when a spec gives room to interpretation.
  // It seems to work well on Chrome on ChromeOS.

  // TODO: Consider using event screen position as another heuristic.
}

function isPreloadable(anchorElement) {
  if (!anchorElement || !anchorElement.href) {
    return
  }

  if (_useWhitelist && !('instant' in anchorElement.dataset)) {
    return
  }

  if (anchorElement.origin != location.origin) {
    let allowed = _allowExternalLinks || 'instant' in anchorElement.dataset
    if (!allowed || !_chromiumMajorVersionInUserAgent) {
      // Chromium-only: see comment on “restrictive prefetch” and “cross-site speculation rules prefetch”
      return
    }
  }

  if (!['http:', 'https:'].includes(anchorElement.protocol)) {
    return
  }

  if (anchorElement.protocol == 'http:' && location.protocol == 'https:') {
    return
  }

  if (!_allowQueryString && anchorElement.search && !('instant' in anchorElement.dataset)) {
    return
  }

  if (anchorElement.hash && anchorElement.pathname + anchorElement.search == location.pathname + location.search) {
    return
  }

  if ('noInstant' in anchorElement.dataset) {
    return
  }

  return true
}

function preload(url, fetchPriority = 'auto') {
  if (_preloadedList.has(url)) {
    return
  }

  if (_speculationRulesType != 'none') {
    preloadUsingSpeculationRules(url)
  } else {
    preloadUsingLinkElement(url, fetchPriority)
  }

  _preloadedList.add(url)
}

function preloadUsingSpeculationRules(url) {
  const scriptElement = document.createElement('script')
  scriptElement.type = 'speculationrules'

  scriptElement.textContent = JSON.stringify({
    [_speculationRulesType]: [{
      source: 'list',
      urls: [url]
    }]
  })

  // When using speculation rules, cross-site prefetch is supported, but will
  // only work if the user has no cookies for the destination site. The
  // prefetch will not be sent, if the user does have such cookies.

  document.head.appendChild(scriptElement)
}

function preloadUsingLinkElement(url, fetchPriority = 'auto') {
  const linkElement = document.createElement('link')
  linkElement.rel = 'prefetch'
  linkElement.href = url

  linkElement.fetchPriority = fetchPriority
  // By default, a prefetch is loaded with a low priority.
  // When there’s a fair chance that this prefetch is going to be used in the
  // near term (= after a touch/mouse event), giving it a high priority helps
  // make the page load faster in case there are other resources loading.
  // Prioritizing it implicitly means deprioritizing every other resource
  // that’s loading on the page. Due to HTML documents usually being much
  // smaller than other resources (notably images and JavaScript), and
  // prefetches happening once the initial page is sufficiently loaded,
  // this theft of bandwidth should rarely be detrimental.

  linkElement.as = 'document'
  // as=document is Chromium-only and allows cross-origin prefetches to be
  // usable for navigation. They call it “restrictive prefetch” and intend
  // to remove it: https://crbug.com/1352371
  //
  // This document from the Chrome team dated 2022-08-10
  // https://docs.google.com/document/d/1x232KJUIwIf-k08vpNfV85sVCRHkAxldfuIA5KOqi6M
  // claims (I haven’t tested) that data- and battery-saver modes as well as
  // the setting to disable preloading do not disable restrictive prefetch,
  // unlike regular prefetch. That’s good for prefetching on a touch/mouse
  // event, but might be bad when prefetching every link in the viewport.

  document.head.appendChild(linkElement)
}@font-face {
  font-family: "litespeedfont";
  src: url(data:application/font-woff;base64,d09GRgABAAAAAAd8AAsAAAAABzAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIFKmNtYXAAAAFoAAAAVAAAAFQXVtKHZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAAAywAAAMsC7+w5mhlYWQAAATwAAAANgAAADYNxQCSaGhlYQAABSgAAAAkAAAAJAe+A8ZobXR4AAAFTAAAABQAAAAUCgAABWxvY2EAAAVgAAAADAAAAAwAKAGqbWF4cAAABWwAAAAgAAAAIAAOAX5uYW1lAAAFjAAAAc4AAAHOiN8uy3Bvc3QAAAdcAAAAIAAAACAAAwAAAAMDAAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6QADwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAIOkA//3//wAAAAAAIOkA//3//wAB/+MXBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAACAAF/8QD/AO7AIAAxAFEAWkBbgFyAXcBewAAATA0MTQmMTA0JzgBNSImOQEBOAExLgEjIgYHOAE5AQEwBiMUMDEGFDEwBhUwFDEcARUcARUwFDEUFjEwFBc4ARUyFjkBATAWFTAyMTAWMzAyFTAyMzIWMzI2MzoBMTQyMTI2MTAyMTQ2OQEBMDYzNDAxNjQxMDY1MDQxNDY1JjQ1BzEVBzgBMQE4ATEwBjEjMCIxMCIxMCIxMCYxOAExATgBMSc1MDQxMDQ5ATUxNzgBMQEwNjMyFjEBOAExFxUwFDEwFDEnMCIxMDQxMDQxMCIxNDAnMSc4ATEuASMiBgc4ATEHBjAVMCIxMBQxMBQxMCIxHAExMBQVMDIxMBQxMBQxMDIxFDAXMRcWMDM4ARUwMjE4ATEyMBU6ATEwMjM0MDM4ATEwMjE0MDEyMDcxNzYwNTAyMTA0MTA0MTgBMzwBMTA0NScHFzgBMRYUFxYGDwEOASMiJicmNj8BJyY2PwE+ATMyFhcWBgcFFxUBMxMHIwEBMwE1NzUnNQED+wEBAQH+FAIGAwMGAv4UAQEBAQEBAQEB7AIBAQEBAQEBAQEBAQEBAQEBAQECAewBAQEBAQFOAf5XAQEBAQEB/lcBAQGpAgEBAgGpAbABAQH0AgICAgIC9AEBAQEBAfQBAQEBAQEBAQEBAQH0AQEBoE8rAQEBAgSBAgQDBAYBAgEDTysFAwWBAgQEAwYBAgED/oz6/sw6+vo6ATQBNDb+zP7+ATgBwwEBAQEBAQIB7AICAgL+FAIBAQEBAQEBAQEBAQEBAQEBAQEC/hQBAQEBAQEBAQEBAewCAQEBAQEBAQEBAQEBBAEB/lcBAQGpAQEBAQEBAakBAf5XAQEBAQMBAQEB9AECAgH0AQEBAQEBAQEBAQEB9AEBAQEBAfQBAQEBAQEBAYRkPQECAQcLA2MCAgQDAwgDZD4GDgViAgIEAwMIA6P5OgEzATP6ATT+lP7MNv44/jb+zAABAAAAAQAAiK6LiV8PPPUACwQAAAAAANVU3gsAAAAA1VTeCwAA/8QD/AO7AAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAP8AAEAAAAAAAAAAAAAAAAAAAAFBAAAAAAAAAAAAAAAAgAAAAQAAAUAAAAAAAoAFAAeAZYAAQAAAAUBfAAIAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAA0AAAABAAAAAAACAAcAlgABAAAAAAADAA0ASAABAAAAAAAEAA0AqwABAAAAAAAFAAsAJwABAAAAAAAGAA0AbwABAAAAAAAKABoA0gADAAEECQABABoADQADAAEECQACAA4AnQADAAEECQADABoAVQADAAEECQAEABoAuAADAAEECQAFABYAMgADAAEECQAGABoAfAADAAEECQAKADQA7GxpdGVzcGVlZGZvbnQAbABpAHQAZQBzAHAAZQBlAGQAZgBvAG4AdFZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGxpdGVzcGVlZGZvbnQAbABpAHQAZQBzAHAAZQBlAGQAZgBvAG4AdGxpdGVzcGVlZGZvbnQAbABpAHQAZQBzAHAAZQBlAGQAZgBvAG4AdFJlZ3VsYXIAUgBlAGcAdQBsAGEAcmxpdGVzcGVlZGZvbnQAbABpAHQAZQBzAHAAZQBlAGQAZgBvAG4AdEZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=);
	font-weight: normal;
	font-style: normal;
}

#adminmenu #toplevel_page_lscache-settings .menu-icon-generic div.wp-menu-image:before,
#adminmenu #toplevel_page_litespeed .menu-icon-generic div.wp-menu-image:before,
.litespeed-top-toolbar .ab-icon::before {
	content: '\e900';
	font-family: 'litespeedfont' !important;
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;

	/* Better Font Rendering =========== */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

#wpadminbar .litespeed-top-toolbar .ab-icon.icon_disabled::before {
	color: #D9534F;
}

*[litespeed-accesskey]:before {
	content: '[' attr(litespeed-accesskey) '] ';
}

/* =======================================
   		  UTILITIES - toggle UI
======================================= */

input[type='checkbox'].litespeed-tiny-toggle {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;

	-webkit-tap-highlight-color: transparent;

	width: auto;
	height: auto;
	vertical-align: middle;
	position: relative;
	border: 0;
	outline: 0;
	cursor: pointer;
	margin: 0 4px;
	background: none;
	box-shadow: none;
}

input[type='checkbox'].litespeed-tiny-toggle:focus {
	box-shadow: none;
}

input[type='checkbox'].litespeed-tiny-toggle:after {
	content: '';
	font-size: 8px;
	font-weight: 400;
	line-height: 18px;
	text-indent: -14px;
	color: #ffffff;
	width: 36px;
	height: 18px;
	display: inline-block;
	background-color: #a7aaad;
	border-radius: 72px;
	box-shadow: 0 0 12px rgb(0 0 0 / 15%) inset;
}

input[type='checkbox'].litespeed-tiny-toggle:before {
	content: '';
	width: 14px;
	height: 14px;
	display: block;
	position: absolute;
	top: 2px;
	left: 2px;
	margin: 0;
	border-radius: 50%;
	background-color: #ffffff;
}

input[type='checkbox'].litespeed-tiny-toggle:checked:before {
	left: 20px;
	margin: 0;
	background-color: #ffffff;
}

input[type='checkbox'].litespeed-tiny-toggle,
input[type='checkbox'].litespeed-tiny-toggle:before,
input[type='checkbox'].litespeed-tiny-toggle:after,
input[type='checkbox'].litespeed-tiny-toggle:checked:before,
input[type='checkbox'].litespeed-tiny-toggle:checked:after {
	transition: ease 0.15s;
}

input[type='checkbox'].litespeed-tiny-toggle:checked:after {
	/*content: 'ON';*/
	background-color: #2271b1;
}

.block-editor__container input[type='checkbox'].litespeed-tiny-toggle {
	border: 0 !important;
}

.block-editor__container input[type='checkbox'].litespeed-tiny-toggle:before {
	top: 5px;
	left: 7px;
}

.block-editor__container input[type='checkbox'].litespeed-tiny-toggle:checked:before {
	left: 23px;
}

/* =======================================
   		  UTILITIES - structure
======================================= */

.litespeed_icon:before {
	/* content: "\e900";
    font-family: 'litespeedfont' !important; */
	content: '';
	background-image: url('../img/lscwp_grayscale_font-icon_22px.svg');
	/* filter: grayscale(1); */
	background-size: 22px;
	background-repeat: no-repeat;
	width: 22px;
	height: 22px;
	vertical-align: middle;
	display: inline-block;
	position: absolute;
	left: 5px;
	top: 8px;
}

.rtl .litespeed_icon:before {
	left: initial;
	right: 5px;
}

.litespeed_icon {
	padding-left: 30px !important;
	position: relative;
}

.rtl .litespeed_icon {
	padding-right: 40px;
}

.litespeed-quic-icon {
	background-image: url('../img/quic-cloud-icon-16x16.svg');
	background-repeat: no-repeat;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	display: inline-block;
}

.litespeed-row {
	margin-top: 5px;
}

.litespeed-reset {
	width: initial;
}

.litespeed-inline {
	display: inline-block;
}

.litespeed-flex {
	display: flex;
}

.litespeed-flex-container {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	height: auto;
}

.litespeed-flex-align-center {
	align-items: center;
}

.litespeed-flex-container > * {
	box-sizing: border-box;
}

.litespeed-flex-container--reverse {
	flex-direction: row-reverse;
}

.litespeed-flex-container .litespeed-icon-vertical-middle {
	margin-left: 0;
}

.litespeed-row-flex {
	display: inline-flex;
}

.litespeed-flex-wrap {
	flex-wrap: wrap;
}

.litespeed-align-right {
	margin-left: auto !important;
}

.litespeed-width-1-2 {
	width: 45%;
	padding: 20px;
}

.litespeed-width-1-3 {
	width: 30%;
	padding: 25px;
}

.litespeed-width-7-10 {
	width: 65%;
	padding: 20px;
}

.litespeed-width-3-10 {
	width: 35%;
	padding: 20px;
}

@media screen and (max-width: 814px) {
	.litespeed-width-7-10 {
		width: 100%;
	}

	.litespeed-width-3-10 {
		width: 100%;
		padding: 0;
	}
}

.litespeed-hide {
	display: none !important;
}

.litespeed-right {
	float: right !important;
}

.litespeed-relative {
	position: relative;
}

.litespeed-align-center {
	margin-left: auto;
	margin-right: auto;
}

/* =======================================
   		  UTILITIES - spacing
======================================= */

.litespeed-left10 {
	margin-left: 10px !important;
}

.litespeed-left20 {
	margin-left: 20px !important;
}

.litespeed-right10 {
	margin-right: 10px !important;
}

.litespeed-right20 {
	margin-right: 20px !important;
}

.litespeed-right30 {
	margin-right: 30px !important;
}

.litespeed-right50 {
	margin-right: 50px !important;
}

.litespeed-top10 {
	margin-top: 10px !important;
}

.litespeed-top15 {
	margin-top: 15px !important;
}

.litespeed-top20 {
	margin-top: 20px !important;
}

.litespeed-top30 {
	margin-top: 30px !important;
}

.litespeed-margin-y5 {
	margin-top: 5px !important;
	margin-bottom: 5px !important;
}

.litespeed-margin-x5 {
	margin-left: 5px !important;
	margin-right: 5px !important;
}

.litespeed-wrap .litespeed-left20,
.litespeed-left20 {
	margin-left: 20px;
}

.litespeed-wrap .litespeed-bg-quic-cloud {
	background: linear-gradient(rgba(230, 242, 242, 1) 10%, rgba(250, 255, 255, 1) 30%);
}

.litespeed-left50 {
	margin-left: 50px;
}

.litespeed-padding-space {
	padding: 5px 10px;
}

.litespeed-margin-bottom10 {
	margin-bottom: 10px !important;
}

.litespeed-margin-bottom20 {
	margin-bottom: 20px !important;
}

.litespeed-margin-bottom-remove {
	margin-bottom: 0px !important;
}

.litespeed-margin-top-remove {
	margin-top: 0px !important;
}

.litespeed-margin-left-remove {
	margin-left: 0px !important;
}

.litespeed-margin-y-remove {
	margin-top: 0px !important;
	margin-bottom: 0px !important;
}

.litespeed-empty-space-xlarge {
	margin-top: 8em;
}

.litespeed-empty-space-large {
	margin-top: 6em;
}

.litespeed-empty-space-medium {
	margin-top: 3em;
}

.litespeed-empty-space-small {
	margin-top: 2em;
}

.litespeed-empty-space-tiny {
	margin-top: 1em;
}

/* =======================================
   		UTILITIES - typography
======================================= */

.litespeed-text-jumbo {
	font-size: 3em !important;
}

.litespeed-text-large {
	font-size: 0.75em !important;
}

.litespeed-text-md {
	font-size: 1.2em;
}

.litespeed-text-right {
	text-align: right;
}

.litespeed-text-center {
	text-align: center;
}

.litespeed-text-bold, .litespeed-bold {
	font-weight: 600;
}

/* =======================================
	  			COLORS
======================================= */

.litespeed-default {
	color: #a7a7a7 !important;
}

.litespeed-primary {
	color: #3366cc !important;
}

.litespeed-info {
	color: #3fbfbf !important;
}

.litespeed-success {
	color: #73b38d !important;
}

.litespeed-warning {
	color: #ff8c00 !important;
}

.litespeed-danger {
	color: #dc3545 !important;
}

a.litespeed-danger:hover,
button.litespeed-danger:hover {
	color: #a00 !important;
}

.litespeed-text-success {
	color: #34b15d;
}

.litespeed-form-action {
	color: #1a9292 !important;
}

a.litespeed-form-action:hover,
button.litespeed-form-action:hover {
	color: #36b0af !important;
}

.litespeed-bg-default {
	background-color: #a7a7a7 !important;
}

.litespeed-bg-primary {
	background-color: #3366cc !important;
}

.litespeed-bg-info {
	background-color: #d1ecf1 !important;
}

.litespeed-bg-success {
	background-color: #73b38d !important;
}

.litespeed-bg-warning {
	background-color: #ff8c00 !important;
}

.litespeed-bg-danger {
	background-color: #dc3545 !important;
}

.litespeed-bg-text-success {
	background-color: #34b15d;
}

/* =======================================
	  			LAYOUT
======================================= */

.litespeed-wrap {
	margin: 10px 20px 0 2px;
}

@media screen and (max-width: 600px) {
	.litespeed-wrap h2 .nav-tab {
		border-bottom: 1px solid #c3c4c7;
		margin: 10px 10px 0 0;
	}

	.litespeed-wrap .nav-tab-wrapper {
		margin-bottom: 15px;
	}

	.litespeed-desc a,
	.litespeed-body p > a:not(.button) {
		word-break: break-word;
	}
}

.litespeed-wrap .nav-tab {
	border-bottom-color: inherit;
	border-bottom-style: solid;
	border-bottom-width: 1px;
	margin: 11px 10px -1px 0;
}

.litespeed-wrap .nav-tab-active {
	background: #fff;
	border-bottom-color: #fff;
}

.litespeed-wrap .nav-tab:focus:not(.nav-tab-active),
.litespeed-wrap .nav-tab:hover:not(.nav-tab-active) {
	background-color: #f1f1f1;
	color: #444;
}

.litespeed-body {
	background: #fff;
	border: 1px solid #e5e5e5;
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
	padding: 1px 20px 20px 20px;
}

@media screen and (min-width: 681px) {
	.litespeed-header + .litespeed-body {
		border-top: none;
	}
}

.litespeed-body table {
	border-collapse: collapse;
	width: 100%;
}

.litespeed-body .litespeed-width-auto {
	width: auto;
}

/* outside stripped table */
.litespeed-description {
	color: #666;
	font-size: 13px;
	margin: 1.5rem 0;
	max-width: 960px;
}

/* inside stripped table */
.litespeed-desc {
	font-size: 12px;
	font-weight: normal;
	color: #7a919e;
	margin: 10px 0;
	line-height: 1.7;
	/*max-width: 840px;*/
}

.litespeed-desc + .litespeed-desc {
	margin-top: -5px;
}

td > .litespeed-desc:first-child {
	margin-top: 0px;
	line-height: 2.24;
}

.litespeed-h3 {
	line-height: 18px;
	color: #264d73;
	font-size: 18px;
	font-weight: 600;
	margin: 2px 0;
}

.litespeed-div .submit {
	margin-top: 0;
}

@media screen and (min-width: 681px) {
	.litespeed-div {
		display: inline-block;
		min-width: 100px;
	}

	.litespeed-div .submit {
		margin: 5px;
		padding: 5px;
	}
}

@media screen and (max-width: 680px) {
	.litespeed-desc + .litespeed-desc.litespeed-left20 {
		margin-left: 0 !important;
	}

	.litespeed-desc .litespeed-callout.notice-warning.inline {
		word-break: break-word;
	}
}

.litespeed-h1 {
	display: inline-block;
}

h3 .litespeed-learn-more {
	font-size: 12px;
	font-weight: normal;
	color: #7a919e;
	margin-left: 30px;
}

.litespeed-wrap code {
	color: #666;
	background-color: #dde9f5;
	border-radius: 3px;
	font-size: 11px;
	font-style: normal;
}

.litespeed-wrap ul {
	margin-left: 2em;
}

.litespeed-wrap i {
	font-size: 13px;
	line-height: 16px;
}

.litespeed-wrap .litespeed-desc i {
	font-size: 12px;
}

.litespeed-wrap p {
	margin: 1em 0;
}

.litespeed-wrap p.submit {
	margin-bottom: 0;
}

.litespeed-desc p {
	margin-left: 0;
}

.litespeed-title,
.litespeed-title-short {
	font-size: 18px;
	border-bottom: 1px solid #cccccc;
	margin: 2.5em 0px 1.5em 0;
	display: table;
	padding-right: 50px;
	padding-left: 3px;
	padding-bottom: 3px;
}

.litespeed-title .button {
	margin-left: 1rem;
	margin-bottom: 5px;
	vertical-align: middle;
}

.litespeed-title .litespeed-quic-icon {
	margin-right: 6px;
}

.litespeed-title a,
.litespeed-title-short a {
	text-decoration: none;
}

.litespeed-title-short {
	padding-right: 20px;
}

.litespeed-title-section {
	margin: 2em -20px 12px -20px;
	padding: 12px 20px 12px 20px;
	border-bottom: 1px solid #eee;
	font-size: 1.2em;
	display: block;
	border-top: 1px solid #f1f1f1;
}

.litespeed-postbox .litespeed-title {
	display: flex;
	align-items: center;
}

.litespeed-title-right-icon {
	margin-left: auto;
	font-weight: normal;
}

.litespeed-list li:before {
	content: '>';
	color: #cc3d6a;
}

.litespeed-wrap a.disabled {
	cursor: not-allowed;
	opacity: 0.5;
	text-decoration: none;
	color: #72777c;
}

/* =======================================
			LAYOUT - table
======================================= */

.litespeed-table {
	font-size: 14px;
}

.litespeed-body tbody > tr > th {
	padding-left: 20px;
}

.litespeed-body tbody th {
	vertical-align: top;
	text-align: left;
	padding: 18px 10px 20px 0;
	width: 200px;
	font-weight: 600;
}

.litespeed-body td {
	padding: 15px 10px;
	line-height: 1.3;
	vertical-align: middle;
}

.litespeed-body .widefat td input + p {
	margin-top: 0.8em;
}

.litespeed-body .striped > tbody > :nth-child(even) .notice {
	background-color: #f9f9f9;
	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.05);
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	border-right: 1px solid #e5e5e5;
}

.litespeed-body .striped > tbody > :nth-child(even) .notice:first-child {
	margin-top: 0;
}

/* small table inside */
.litespeed-body .litespeed-vary-table {
	margin-top: -5px;
	width: 250px;
	margin-bottom: 20px;
}

.litespeed-body .litespeed-vary-table td {
	width: 50%;
	padding: 5px 0px;
}

.litespeed-table-compact td,
.litespeed-table-compact th {
	padding: 0.5rem 0.75rem;
}

/* =======================================
			LAYOUT - block
======================================= */

.litespeed-block,
.litespeed-block-tiny {
	border: 1px dotted #cccccc;
	border-radius: 5px;
	display: flex;
	flex-wrap: wrap;
	padding: 0.75rem 1.25rem;
	margin-bottom: 5px;
}

.litespeed-block-tiny {
	max-width: 670px;
}

.litespeed-col {
	flex: 0 0 30%;
	padding-right: 2rem;
}

.litespeed-col:last-child,
.litespeed-col-auto:last-child {
	padding-right: 0;
}

.litespeed-col-auto {
	padding-right: 2rem;
}

.litespeed-col-br {
	flex: 0 0 100%;
	border-top: 1px dotted #cccccc;
}

.litespeed-col-inc {
	display: inline-block;
	margin-top: 16px;
	min-width: 150px;
	font-weight: bold;
}

.litespeed-block h4:first-child,
.litespeed-block .litespeed-form-label:not(.litespeed-form-label--toggle):first-child {
	margin-top: 0.5rem;
}

.litespeed-block .litespeed-callout:last-child {
	margin-bottom: 0;
}

@media screen and (max-width: 600px) {
	.litespeed-block {
		flex-direction: column;
	}

	.litespeed-block .litespeed-col {
		padding-right: 0;
	}
}

/* =======================================
			  CARDS LINKS
======================================= */

.litespeed-cards-wrapper,
.litespeed-panel-wrapper {
	display: flex;
	width: 100%;
	flex-flow: row wrap;
	justify-content: flex-start;
}

.litespeed-cards-wrapper {
	margin: -10px -15px -10px -15px;
}

.litespeed-panel {
	text-decoration: none;
	display: flex;
	justify-content: space-between;
	padding: 6px 8px 4px 5px;
	width: 322px;
	margin: 15px 5px 15px 15px;
	min-height: 75px;
	box-sizing: border-box;
	background: #f9fafc;
	transition: 0.25s;
}

.litespeed-panel:hover {
	border: 1px solid #6699cc;
	box-shadow: none;
}

.litespeed-panel-wrapper-icon {
	width: 25%;
	height: 100%;
}

[class*='litespeed-panel-icon-'] {
	background-size: contain;
	width: 60px;
	height: 60px;
	margin: 5px;
	background-repeat: no-repeat;
	display: inline-block;
}

.litespeed-panel-icon-all {
	background-image: url('../img/icons/all.svg');
}

.litespeed-panel-icon-revision {
	background-image: url('../img/icons/revision.svg');
}

.litespeed-panel-icon-orphaned_post_meta {
	background-image: url('../img/icons/revision.svg');
}

.litespeed-panel-icon-auto_draft {
	background-image: url('../img/icons/auto_draft.svg');
}

.litespeed-panel-icon-trash_post {
	background-image: url('../img/icons/trash_post.svg');
}

.litespeed-panel-icon-spam_comment {
	background-image: url('../img/icons/spam_comment.svg');
}

.litespeed-panel-icon-trash_comment {
	background-image: url('../img/icons/trash_comment.svg');
}

.litespeed-panel-icon-trackback-pingback {
	background-image: url('../img/icons/trackback-pingback.svg');
}

.litespeed-panel-icon-expired_transient {
	background-image: url('../img/icons/expired_transient.svg');
}

.litespeed-panel-icon-all_transients {
	background-image: url('../img/icons/all_transients.svg');
}

.litespeed-panel-icon-optimize_tables {
	background-image: url('../img/icons/optimize_tables.svg');
}

.litespeed-panel-icon-purge-front {
	background-image: url('../img/icons/purge-front.svg');
}

.litespeed-panel-icon-purge-pages {
	background-image: url('../img/icons/purge-pages.svg');
}

.litespeed-panel-icon-purge-cssjs {
	background-image: url('../img/icons/purge-cssjs.svg');
}

.litespeed-panel-icon-purge-object {
	background-image: url('../img/icons/purge-object.svg');
}

.litespeed-panel-icon-purge-opcache {
	background-image: url('../img/icons/purge-opcache.svg');
}

.litespeed-panel-icon-purge-all {
	background-image: url('../img/icons/purge-all.svg');
}

.litespeed-panel-icon-empty-cache {
	background-image: url('../img/icons/empty-cache.svg');
}

.litespeed-panel-icon-purge-403 {
	background-image: url('../img/icons/purge-403.svg');
}

.litespeed-panel-icon-purge-404 {
	background-image: url('../img/icons/purge-404.svg');
}

.litespeed-panel-icon-purge-500 {
	background-image: url('../img/icons/purge-500.svg');
}

.litespeed-panel-top-right-icon-cross {
	background-image: url('../img/icons/cross_icon.svg');
}

.litespeed-panel-top-right-icon-tick {
	background-image: url('../img/icons/success_icon.svg');
}

.litespeed-panel-content {
	width: 75%;
	height: 100%;
	margin-top: 7px;
}

.litespeed-panel-para {
	color: #264d73;
	font-size: 12px;
	line-height: 1.45;
}

.litespeed-panel .litespeed-h3 {
	font-size: 14px;
}

.litespeed-panel-counter {
	color: #3abfbf;
}

.litespeed-panel-counter-red {
	color: #cc3d6a;
}

.litespeed-panel-wrapper-top-right {
	width: 10%;
	height: 100%;
	text-align: right;
}

.litespeed-panel-top-right-icon-tick,
.litespeed-panel-top-right-icon-cross {
	background-size: contain;
	width: 20px;
	height: 20px;
	background-repeat: no-repeat;
	display: inline-block;
}

/* =======================================
	 BUTTONS
======================================= */

/* .litespeed-wrap .button{
	background:#fff;
} */

.litespeed-wrap .button-link {
	height: auto;
	line-height: inherit;
	font-size: inherit;
	box-shadow: none;
}

.litespeed-wrap .button-link:hover,
.litespeed-wrap .button-link:focus {
	box-shadow: none;
	background: none;
}

.litespeed .litespeed-btn-danger-bg,
.litespeed-wrap .litespeed-btn-danger-bg,
.litespeed-btn-danger-bg {
	background: #dc3545;
	color: #fff;
	border: 1px solid #cc3d6a;
	box-shadow: 0 1px 0 rgba(177, 93, 93, 0.5);
}

.litespeed .litespeed-btn-danger,
.litespeed-wrap .litespeed-btn-danger,
.litespeed-btn-danger {
	background: #fff;
	color: #cc3d6a;
	border: 1px solid #cc3d6a;
	box-shadow: 0 1px 0 rgba(177, 93, 93, 0.5);
}

.litespeed .litespeed-btn-danger:hover,
.litespeed-wrap .litespeed-btn-danger:hover,
.litespeed-btn-danger:hover {
	border-color: #ab244e;
	background: #cc3d6a;
	color: #fff;
}

.litespeed .litespeed-btn-warning,
.litespeed-wrap .litespeed-btn-warning,
.litespeed-btn-warning {
	background: #fff;
	color: #e59544;
	border: 1px solid #e59544;
	box-shadow: 0 1px 0 rgba(249, 166, 82, 0.55);
}

.litespeed .litespeed-btn-warning:hover,
.litespeed-wrap .litespeed-btn-warning:hover,
.litespeed-btn-warning:hover {
	border-color: #e59544;
	background: #e59544;
	color: #fff;
}

.litespeed .litespeed-btn-success,
.litespeed-wrap .litespeed-btn-success,
.litespeed-btn-success {
	background: #fff;
	color: #36b0b0;
	border: 1px solid #36b0b0;
	box-shadow: 0 1px 0 rgba(73, 160, 160, 0.55);
}

.litespeed .litespeed-btn-success:hover,
.litespeed-wrap .litespeed-btn-success:hover,
.litespeed-btn-success:hover {
	border-color: #36b0b0;
	background: #36b0b0;
	color: #fff;
}

.litespeed-wrap .button-primary {
	background: #528ac6;
	border-color: #538ac6 #2264ad #2264ad;
	color: #fff;
	box-shadow: 0 1px 0 #2264ad;
	text-shadow:
		0 -1px 1px #2264ad,
		1px 0 1px #2264ad,
		0 1px 1px #2264ad,
		-1px 0 1px #2264ad;
}

.litespeed-wrap .button-primary:focus,
.litespeed-wrap .button-primary:hover {
	background: #5891ce;
	border-color: #2264ad;
	color: #fff;
}

.litespeed-wrap .button-primary:hover {
	box-shadow: 0 1px 0 #2264ad;
}

.litespeed-wrap .button-primary:focus {
	background: #5891ce;
	border-color: #2264ad;
	color: #fff;
	box-shadow:
		0 1px 0 #0073aa,
		0 0 2px 1px #33b3db;
}

.litespeed .litespeed-btn-primary,
.litespeed-wrap .litespeed-btn-primary,
.litespeed-btn-primary {
	color: #538ac6;
	border: 1px solid #538ac6;
	-moz-box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
	-webkit-box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
	box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
}

.litespeed .litespeed-btn-primary:hover,
.litespeed-wrap .litespeed-btn-primary:hover,
.litespeed-btn-primary:hover {
	background: #538ac6;
	border-color: #538ac6;
	color: #fff;
}

.litespeed-wrap .button:not(.litespeed-btn-large) .dashicons {
	position: relative;
	top: -0.075em;
	vertical-align: middle;
}

.litespeed-wrap .button:not(:first-child) {
	margin-left: 5px;
}

.litespeed-wrap .button + .button {
	margin-left: 10px;
}

.litespeed-info-button {
	color: #c8c8c8;
	padding: 0;
	-webkit-appearance: none;
	border: none;
	background: none;
	vertical-align: middle;
	line-height: inherit;
	text-decoration: none;
}

.litespeed-info-button .dashicons {
	font-size: 16px;
	vertical-align: middle;
}

.litespeed-btn-pie {
	-webkit-appearance: none;
	background: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
	top: -0.125em;
}

/* =======================================
   BUTTONS - sizes
======================================= */

.litespeed-wrap .litespeed-btn-tiny {
	padding: 2px 8px;
	line-height: 1.5;
	height: auto;
}

.litespeed-wrap .litespeed-btn-mini {
	padding: 0 8px 1px;
	font-size: 12px;
	font-weight: 600;
	margin: 5px 0;
}

.litespeed-wrap .litespeed-btn-mini .dashicons.dashicons-image-rotate {
	padding-top: 3px;
	font-size: 18px;
}

.litespeed-wrap .litespeed-btn-mini .dashicons {
	padding-top: 2px;
}

.litespeed-wrap .litespeed-btn-large {
	font-size: 1.5em;
	padding: 0.75em 1.5em;
	margin: 0 0.25em;
	height: auto;
}

.litespeed-wrap .litespeed-btn-large .dashicons {
	font-size: 1.25em;
	width: auto;
}

/* =======================================
	  SWITCH
======================================= */

.litespeed-switch {
	font-size: 14px;
	font-weight: 600;
	margin: 0 0 0;
	display: inline-flex;
	position: relative;
}

.rtl .litespeed-switch {
	flex-direction: row-reverse;
}

.litespeed-switch input:checked:active + label {
	box-shadow:
		0 2px 0 rgba(27, 146, 146, 0.7),
		inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
}

.litespeed-switch input:checked + label {
	background-color: #36b0b0;
	color: #fff;
	border: 1px solid #36b0b0;
	box-shadow: 0 2px 0 #1b9292;
	z-index: 2;
	text-shadow:
		0 -1px 1px #1b9292,
		1px 0 1px #1b9292,
		0 1px 1px #1b9292,
		-1px 0 1px #1b9292;
}

.litespeed-switch label {
	font-size: 14px;
	display: inline-block;
	min-width: 72px;
	background-color: #f9fafc;
	font-weight: 400;
	text-align: center;
	padding: 6px 12px 5px 12px;
	cursor: pointer;
	border: 1px solid #ccc;
	border-bottom: none;
	box-shadow: 0 2px 0 #ccc;
	position: relative;
}

.litespeed-switch label:not(:last-child) {
	margin-right: -1px;
}

.litespeed-switch label:last-child {
	border-top-right-radius: 3px;
	border-bottom-right-radius: 3px;
}

.litespeed-switch label:first-of-type {
	border-top-left-radius: 3px;
	border-bottom-left-radius: 3px;
}

.litespeed-switch input:hover + label {
	border-color: #1a9292;
	box-shadow: 0 2px 0 #1a9292;
	z-index: 2;
	color: #117171;
}

.litespeed-switch input:focus + label {
	color: #117171;
	box-shadow: 0 0px 0px 2px rgba(28, 138, 128, 0.85);
	border-color: transparent;
	z-index: 2;
}

.litespeed-switch input:focus + label + input + input:hover + label,
.litespeed-switch input:focus + label + input:hover + label {
	z-index: 1;
}

.litespeed-switch input:active + label {
	box-shadow:
		0 2px 0 #1b9292,
		inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
}

.litespeed-switch input:checked:hover + label,
.litespeed-switch input:checked:focus + label {
	background-color: #36b0b0;
	color: #fff;
}

.litespeed-switch input {
	display: inline-block;
	position: absolute;
	z-index: -1;
	margin: 0;
}

.litespeed-cache-purgeby-text {
	margin: 0;
	display: inline-block;
}

/* =======================================
				TOGGLE
======================================= */

.litespeed-toggle-stack {
	display: flex;
	flex-direction: column;
}

.litespeed-toggle-stack .litespeed-toggle-wrapper {
	justify-content: space-between;
}

.litespeed-toggle-wrapper {
	display: flex;
	align-items: center;
}

.litespeed-toggle-wrapper + .litespeed-toggle-wrapper {
	margin-top: 0.75rem;
}

.litespeed-toggle {
	position: relative;
	overflow: hidden;
	min-width: 58px;
	height: 21px;
	/*margin-left: 1.2rem;*/
}

.litespeed-toggle-group {
	position: absolute;
	width: 200%;
	top: 0;
	bottom: 0;
	left: 0;
	transition: left 0.35s;
	-webkit-transition: left 0.35s;
	-moz-user-select: none;
	-webkit-user-select: none;
}

.litespeed-toggle-on {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 50%;
	margin: 0;
	border: 0;
	border-radius: 0;
}

.litespeed-toggle-on.litespeed-toggle-btn {
	padding-right: 24px;
}

.litespeed-toggle-off.litespeed-toggle-btn {
	padding-left: 24px;
}

.litespeed-toggle-handle {
	position: relative;
	margin: 0 auto;
	padding-top: 0px;
	padding-bottom: 0px;
	height: 100%;
	width: 0px;
	border-width: 0 1px;
}

.litespeed-toggle-off {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	right: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
}

.litespeed-toggleoff .litespeed-toggle-group {
	left: -100%;
}

.litespeed-toggle-btn {
	display: inline-block;
	padding: 5px 10px;
	margin-bottom: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.42857143;
	text-align: center;
	white-space: nowrap;
	vertical-align: middle;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	background-image: none;
	border: 1px solid transparent;
	border-radius: 4px;
}

.litespeed-toggle-btn-primary {
	color: #fff;
	background-color: #36b0b0;
	border-color: #36b0b0;
}

.litespeed-toggle-btn-default {
	color: #333;
	background-color: #fff;
	border-color: #ccc;
}

.litespeed-toggle-btn-success:hover,
.litespeed-toggle-btn-success:focus,
.litespeed-toggle-btn-success:active,
.litespeed-toggle-btn-success.litespeed-toggle-active {
	color: #fff;
	background-color: #00bfbf;
	border-color: #6699cc;
}

.litespeed-toggle-btn-default:hover,
.litespeed-toggle-btn-default:focus,
.litespeed-toggle-btn-default:active,
.litespeed-toggle-btn-default.litespeed-toggle-active {
	color: #333;
	background-color: #e6e6e6;
	border-color: #adadad;
}

.litespeed-toggle-btn:active,
.litespeed-toggle-btn.litespeed-toggle-active {
	background-image: none;
	outline: 0;
	-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}

.litespeed-toggle-btn-default:active,
.litespeed-toggle-btn-default.litespeed-toggle-active {
	background-image: none;
}

/* =======================================
	LABEL/TAG
======================================= */
[class*='litespeed-label-'] {
	display: inline;
	padding: 0.2em 0.6em 0.3em;
	font-size: 75%;
	font-weight: bold;
	line-height: 1;
	color: #fff;
	text-align: center;
	white-space: nowrap;
	vertical-align: baseline;
	border-radius: 0.25em;
}

[class*='litespeed-label-']:hover,
[class*='litespeed-label-']:focus {
	color: #fff;
	text-decoration: none;
	cursor: pointer;
}

[class*='litespeed-label-']:empty {
	display: none;
}

.litespeed-label-regular {
	font-size: 1em;
}

.litespeed-label-default {
	background-color: #777;
}

.litespeed-label-default[href]:hover,
.litespeed-label-default[href]:focus {
	background-color: #5e5e5e;
}

.litespeed-label-primary {
	background-color: #337ab7;
}

.litespeed-label-primary[href]:hover,
.litespeed-label-primary[href]:focus {
	background-color: #286090;
}

.litespeed-label-success {
	background-color: #5cb85c;
}

.litespeed-label-success[href]:hover,
.litespeed-label-success[href]:focus {
	background-color: #449d44;
}

.litespeed-label-info {
	background-color: #5bc0de;
}

.litespeed-label-info[href]:hover,
.litespeed-label-info[href]:focus {
	background-color: #31b0d5;
}

.litespeed-label-warning {
	background-color: #f0ad4e;
}

.litespeed-label-warning[href]:hover,
.litespeed-label-warning[href]:focus {
	background-color: #ec971f;
}

.litespeed-label-danger {
	background-color: #d9534f;
}

.litespeed-label-danger[href]:hover,
.litespeed-label-danger[href]:focus {
	background-color: #c9302c;
}

/* =======================================
	   SHELL
======================================= */
.litespeed-shell {
	width: 98%;
	background: #141414;
	margin: 20px auto 0 10px;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	position: relative;
	height: 224px;
}

.litespeed-shell-header {
	z-index: 999;
	position: absolute;
	top: 0;
	right: 0;
	width: 50px;
	height: 34px;
	padding: 5px 0;
}

.litespeed-shell-header-bg {
	opacity: 0.4;
	background-color: #cccccc;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	z-index: 4;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-top-radius: 3px;
}

.litespeed-shell-header-bar {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	height: 2px;
	background-color: #f48024;
}

.litespeed-shell-header-icon-container {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 29px;
	height: 34px;
	z-index: 6;
}

ul.litespeed-shell-body {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow-y: scroll;
	margin: 0;
	padding: 5px;
	list-style: none;
	background: #141414;
	color: #45d40c;
	font:
		0.8em 'Andale Mono',
		Consolas,
		'Courier New';
	line-height: 1.6em;

	-webkit-border-bottom-right-radius: 3px;
	-webkit-border-bottom-left-radius: 3px;
	-moz-border-radius-bottomright: 3px;
	-moz-border-radius-bottomleft: 3px;
	border-bottom-right-radius: 3px;
	border-bottom-left-radius: 3px;
}

.litespeed-shell-body li:before {
	content: '>';
	position: absolute;
	left: 0;
	top: 0;
}

.litespeed-shell-body li {
	word-wrap: break-word;
	position: relative;
	padding: 0 0 0 15px;
	margin: 0;
}

.litespeed-widget-setting {
	background-color: #ecebdc;
	padding: 5px 14px;
	margin: 5px -15px;
}

/* =======================================
			CALLOUT / NOTICE
======================================= */

.litespeed-callout {
	margin: 1.5rem 0;

	border-right: 1px solid #e5e5e5;
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	background: #f9f9f9;
}

.litespeed-callout h4:not(:last-child) {
	margin-bottom: 0.5rem;
	margin-top: 1em;
}

.litespeed-callout p {
	margin-left: 0;
}

.litespeed-callout ol,
.litespeed-callout ul {
	margin-left: 1em;
}

.litespeed-callout.notice-warning h4 {
	color: #e59544;
}

.litespeed-callout.notice-error h4 {
	color: #dc3232;
}

.litespeed-callout-bg {
	margin: 1.5rem 0;
	background: #f9f9f9;
	border-top: none;
	border-bottom: none;
	border-right: none;
}

/* =======================================
			TICK / CHECKBOX
======================================= */

.litespeed-tick-wrapper {
	margin-left: -5px;
}

.litespeed-tick {
	display: inline-block;
	/* min-width: 125px; */
	background: #f2f9ff;
	padding: 5px 0 5px 0px;
	border-radius: 3px;
	cursor: pointer;
	margin: 5px 5px 5px 0;
}

.litespeed-tick-list .litespeed-tick {
	display: block;
	margin-bottom: 3px;
	margin-top: 0;
	background: none;
}

.litespeed-tick-list .litespeed-tick input[type='checkbox'] {
	margin-left: 0;
}

.litespeed-tick-list .litespeed-tick label {
	color: inherit;
}

.litespeed-tick input[type='checkbox'] {
	height: 18px;
	width: 18px;
	vertical-align: middle;
	margin: 0 10px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	-webkit-border-radius: 3px;
	border-radius: 3px;

	cursor: pointer;
}

.litespeed-tick input[type='checkbox']:not(:disabled):hover {
	border-color: #538ac6;
}

.litespeed-tick input[type='checkbox']:active:not(:disabled) {
	border-color: #538ac6;
}

.litespeed-tick input[type='checkbox']:focus {
	outline: none;
}

.litespeed-tick input[type='checkbox']:checked {
	border-color: #538ac6;
	background-color: #538ac6;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.litespeed-tick input[type='checkbox']:checked:before {
	content: '';
	display: block;
	width: 5px;
	height: 11px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	margin-left: 5px;
	margin-top: -1px;
	cursor: pointer;
}

.litespeed-tick label {
	padding: 2px 0px 2px 0;
	font-size: 14px;
	color: #264d73;
}

.litespeed-tick label:hover {
	min-width: 115px;
	color: #6699cc;
}

/* =======================================
			RADIO - vertical
======================================= */

.litespeed-radio-row {
	margin-bottom: 12px;
	position: relative;
	padding-left: 1.5rem;
}

.litespeed-radio-row input[type='radio'] {
	margin-top: 0;
	margin-bottom: 0;
	position: absolute;
	line-height: 1;
	left: 0;
	top: 0.7em;
	transform: translateY(-50%);
}

.litespeed-radio-row label {
	vertical-align: text-bottom;
	line-height: 1.4;
}

@media screen and (max-width: 782px) {
	.litespeed-radio-row {
		padding-left: 2rem;
	}
}

/* =======================================
		   FORM - layout
======================================= */

.litespeed-wrap .litespeed-float-submit {
	position: absolute;
	right: 0;
	top: -5px;
	margin-top: 0;
}

.rtl .litespeed-wrap .litespeed-float-submit {
	left: 10px;
	right: unset;
}

.litespeed-wrap .litespeed-float-resetbtn {
	position: absolute;
	right: 0;
	bottom: 20px;
}

.rtl .litespeed-wrap .litespeed-float-resetbtn {
	left: 10px;
	right: unset;
}

/* =======================================
		  FORM - utilities
======================================= */

.litespeed .litespeed-input-large {
	font-size: 20px;
}

.litespeed-input-long {
	width: 87%;
}

.litespeed-input-short2 {
	width: 150px;
}

.litespeed-input-short {
	width: 45px;
}

@media screen and (max-width: 680px) {
	.litespeed-input-short2 {
		width: 160px;
	}

	.litespeed-input-short {
		width: 50px;
	}
}

/* =======================================
		   FORM - elements
======================================= */

.litespeed-form-label {
	font-size: 1em;
	margin: 0.65rem 0;
	display: block;
	font-weight: 600;
}

.litespeed-form-label--toggle {
	margin: 0;
	display: inline-block;
	min-width: 110px;
}

input.litespeed-input[type='file'] {
	padding: 9px;
	min-width: 500px;
	border: 1px solid #ddd;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
	background-color: #fff;
	color: #32373c;
	outline: 0;
	transition: 50ms border-color ease-in-out;
}

.litespeed-body .litespeed-textarea-success {
	border-color: #6699cc;
}

input.litespeed-input-success {
	border-color: #28a745;
}

input.litespeed-input-warning {
	border-color: #e59544;
}

.litespeed-textarea {
	width: 60%;
}

.litespeed-textarea-recommended {
	display: flex;
	margin-top: -5px;
}

.litespeed-textarea-recommended .litespeed-desc {
	margin: 0;
}

.litespeed-textarea-recommended > div:first-child {
	margin-top: 1.7em;
	font-size: 12px;
	margin-right: 25px;
}

.litespeed-wrap .litespeed-collection-button {
	text-decoration: none;
	min-width: 30px;
	text-align: center;
}

.litespeed-collection-button[data-action='add'] {
	margin-top: -5px;
	margin-left: -5px;
}

.litespeed-collection-button .dashicons {
	vertical-align: baseline;
}

.litespeed-wrap .button:not(.litespeed-btn-large).litespeed-form-action .dashicons {
	font-size: 1.2em;
	vertical-align: middle;
	top: 0;
}

@media screen and (max-width: 680px) {
	.litespeed-body tbody > tr > th {
		display: block;
		padding: 18px 0 5px 12px;
	}

	.litespeed-body .litespeed-table td {
		display: block;
		max-width: 100%;
	}

	.litespeed-body .litespeed-table textarea,
	.litespeed-body .litespeed-table input.litespeed-regular-text {
		width: 100% !important;
	}

	.litespeed-wrap .litespeed-float-submit {
		display: none;
	}

	.litespeed-body {
		padding: 1px 10px 20px 15px;
	}

	.litespeed-body .regular-text:not(.litespeed-input-short) {
		width: 100%;
	}

	.litespeed-textarea-recommended {
		flex-direction: column;
	}

	.litespeed-textarea-recommended > div:first-child {
		margin-bottom: 1.7em;
		margin-top: 0;
		margin-right: 0;
	}

	.litespeed-switch {
		max-width: 100%;
		flex-wrap: wrap;
	}

	.litespeed-switch + .litespeed-warning {
		display: block;
		margin-top: 10px;
	}

	input.litespeed-input[type='file'] {
		max-width: calc(100% - 24px);
		min-width: 0;
	}

	.litespeed-body .litespeed-table .litespeed-row-flex {
		flex-direction: column;
	}
}

/* =======================================
		   ENTERPRISE NOTICE
======================================= */

.litespeed-ent-notice {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	background-color: #333;
	z-index: 999;
	opacity: 0.8;
	text-align: center;
	font-size: 3rem;
	color: #1865c5;
}

.litespeed-ent-notice-desc {
	position: relative;
	top: 30%;
	transform: rotate(-20deg);
	text-shadow: 2px 2px 4px #000000;
}

/* =======================================
			  PROMO BANNER
======================================= */

.litespeed-banner-promo,
.litespeed-banner-promo-full {
	display: flex;
	padding: 0px;
}

.litespeed-banner-promo-full {
	margin: 0px;
	padding: 0px;
}

.litespeed-banner-promo-logo {
	background-image: url(../img/lscwp-logo_90x90.png);
	background-size: contain;
	width: 90px;
	background-repeat: no-repeat;
	display: inline-block;
}

.litespeed-banner-promo-full .litespeed-banner-promo-logo {
	margin: 0px;
	width: 90px;
	height: 90px;
}

.litespeed-banner-promo-content {
	margin-left: 25px;
}

.litespeed-banner-promo-full .litespeed-banner-promo-content {
	width: 75%;
}

.litespeed-banner-promo-content h1 {
	font-weight: 600;
	color: #538ac6;
	margin-top: 10px;
}

.litespeed-banner-title {
	font-size: 1.3em;
	margin: 8px 0px 5px 0px;
}

.litespeed-banner-promo-slacklogo {
	background-image: url('../img/slack-logo.png');
	background-size: contain;
	width: 75px;
	height: 75px;
	background-repeat: no-repeat;
	display: inline-block;
	padding: 0px;
	flex: 0 0 5%;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-line1 {
	font-size: 18px;
	margin-top: 0px;
	line-height: 21px;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-textlink {
	color: #e59544;
	text-decoration: none;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-textlink:hover {
	opacity: 0.8;
}

.litespeed-banner-promo-slack-line2 {
	font-size: 15px;
	margin: 0px;
	line-height: 0.75em;
}

.litespeed-banner-promo-slack-link {
	color: #888888;
}

a.litespeed-btn-xs.litespeed-banner-promo-slack-btn {
	margin: 0px 5px;
}

/* =======================================
			  PROMO BANNER - QC
======================================= */

.litespeed-banner-promo-qc {
	display: flex;
}

.litespeed-banner-promo-qc h2 {
	line-height: 1.4;
}

.litespeed-banner-promo-qc-content {
	display: flex;
	align-items: center;
}

.litespeed-banner-promo-qc-description {
	flex-basis: 50%;
	padding-right: 2rem;
}

.litespeed-banner-promo-qc-description p {
	font-size: 14px;
}

.litespeed-banner-promo-qc-description .button {
	margin-right: 1.5rem;
}

.litespeed-tweet-preview {
	border-radius: 5px;
	line-height: 1.3125;
	box-shadow: 1px 1px 0.5em rgba(0, 0, 0, 0.3);
	margin: 0.5em 1em 1em 0;
	padding: 1em;
	max-width: 480px;
	display: flex;
}

.litespeed-tweet-preview:after {
	content: '';
	display: block;
	clear: both;
}

.litespeed-tweet-preview p:first-child {
	margin-top: 0;
}

.litespeed-tweet-preview-title {
	color: #777;
	margin-top: 0.9em;
	font-weight: normal;
	font-size: 12px;
	margin-bottom: 0;
	margin-top: 0.9em;
}

.litespeed-tweet-text {
	font:
		14px system-ui,
		-apple-system,
		BlinkMacSystemFont,
		'Segoe UI',
		Roboto,
		Ubuntu,
		'Helvetica Neue',
		sans-serif;
	line-height: 1.3125;
}

.litespeed-tweet-cta {
	text-align: right;
	margin-top: 1em;
}

.litespeed-tweet-cta a {
	background-color: #1da1f2;
	line-height: 1.3125;
	color: #fff;
	font-weight: bold;
	display: inline-flex;
	padding: 0.55em 1em;
	font-size: 14px;
	border-radius: 99em;
	text-decoration: none;
}

.litespeed-tweet-cta a:hover {
	background-color: #1e98e1;
}

.litespeed-tweet-cta a svg {
	width: 16px;
	height: 18px;
	margin-right: 0.5em;
}

.litespeed-tweet-cta a svg path {
	fill: currentColor;
}

.litespeed-tweet-img {
	width: calc(240px + 1rem);
	padding-right: 1rem;
	box-sizing: border-box;
}

.litespeed-tweet-img img {
	max-width: 100%;
	vertical-align: middle;
}

.litespeed-tweet-img + p {
	margin-top: 0;
}

/* =======================================
		admin -> media lib icon
======================================= */

.litespeed-media-href {
	display: inline-table;
}

[class*='litespeed-icon-media-'] {
	background-size: contain;
	width: 25px;
	height: 25px;
	vertical-align: middle;
	margin: 0;
	background-repeat: no-repeat;
	display: inline-block;
}

[class*='litespeed-icon-media-']:hover {
	opacity: 0.7;
}

.litespeed-icon-media-webp {
	background-image: url('../img/icons/img_webp.svg');
}

.litespeed-icon-media-webp-disabled {
	background-image: url('../img/icons/img_webp_disabled.svg');
}

.litespeed-icon-media-optm {
	background-image: url('../img/icons/img_optm.svg');
}

.litespeed-icon-media-optm-disabled {
	background-image: url('../img/icons/img_optm_disabled.svg');
}

p.litespeed-media-p {
	margin-bottom: 1px !important;
}

p.litespeed-txt-webp {
	color: #83b04a;
}

p.litespeed-txt-ori {
	color: #5967b3;
}

p.litespeed-txt-disabled {
	color: #ced2d9;
}

.litespeed-media-svg {
	vertical-align: middle;
	margin: 5px;
	width: 25px;
	height: auto;
}

@keyframes litespeed-circle-chart-fill {
	to {
		stroke-dasharray: 0 100;
	}
}

/* =======================================
			 PIE chart
======================================= */

.litespeed-pie {
	vertical-align: middle;
	margin: 5px 5px 5px 0;
}

circle.litespeed-pie_bg {
	stroke: #efefef;
	stroke-width: 2;
	fill: none;
}

circle.litespeed-pie_circle {
	animation: litespeed-circle-chart-fill 2s reverse;
	transform: rotate(-90deg);
	transform-origin: center;

	animation: litespeed-pie-fill 2s reverse;
	/* 1 */
	stroke: #28a745;
	stroke-width: 2;
	stroke-linecap: round;
	fill: none;
}

.litespeed-pie.litespeed-pie-tiny {
	margin: 0 2px 0 0;
}

.litespeed-pie.litespeed-pie-tiny text {
	font-weight: bold;
	fill: #828282;
}

.litespeed-pie.litespeed-pie-tiny circle {
	stroke-linecap: initial;
}

.litespeed-pie-tiny circle.litespeed-pie_bg,
.litespeed-pie-tiny circle.litespeed-pie_circle {
	stroke-width: 3;
}

.litespeed-pie-tiny circle.litespeed-pie_bg {
	stroke: #eee;
}

.litespeed-pie-success circle.litespeed-pie_circle {
	stroke: #28a745;
}

.litespeed-pie-warning circle.litespeed-pie_circle {
	stroke: #e67700;
}

.litespeed-pie-danger circle.litespeed-pie_circle {
	stroke: #c7221f;
}

g.litespeed-pie_info text {
	dominant-baseline: central;
	text-anchor: middle;
	font-size: 11px;
}

.litespeed-promo-score g.litespeed-pie_info text {
	font-size: 14px;
	font-weight: 600;
}

.litespeed-pie-success g.litespeed-pie_info text {
	fill: #28a745;
}

.litespeed-pie-warning g.litespeed-pie_info text {
	fill: #e67700;
}

.litespeed-pie-danger g.litespeed-pie_info text {
	fill: #c7221f;
}

g.litespeed-pie_info .litespeed-pie-done {
	fill: #28a745;
	font-size: 15px;
}

/* =======================================
		VIEW - multiple cdn mapping
======================================= */

[data-litespeed-cdn-mapping]:first-child [data-litespeed-cdn-mapping-del] {
	display: none;
}

.litespeed-cdn-mapping-col1 {
	padding-right: 2rem;
	max-width: 35%;
}

.litespeed-cdn-mapping-col1 .litespeed-input-long {
	width: 100%;
}

.litespeed-cdn-mapping-col2 {
	padding-top: 0.25rem;
}

.litespeed-cdn-mapping-col1 label {
	position: relative;
}

[data-litespeed-cdn-mapping-del] {
	position: absolute;
	right: -6px;
	top: -6px;
}

@media screen and (max-width: 600px) {
	.litespeed-cdn-mapping-col1 {
		max-width: 100%;
	}
}

/* =======================================
		VIEW - crawler
======================================= */

.litespeed-crawler-curr {
	vertical-align: middle;
	height: 20px;
	margin-left: 10px;
}

#cookie_crawler > p:first-child {
	margin-top: 5px;
}

.litespeed-crawler-sitemap-nav {
	display: flex;
	justify-content: space-between;
}

.litespeed-crawler-sitemap-nav > div {
	margin-top: 10px;
}

@media screen and (max-width: 680px) {
	.litespeed-crawler-sitemap-nav {
		display: block;
	}

	.litespeed-table-responsive {
		clear: both;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	.litespeed-table-responsive table {
		width: 100%;
	}

	.litespeed-table-responsive th {
		text-wrap: nowrap;
	}

	.litespeed-table-responsive [data-crawler-list].wp-list-table td:nth-child(2) {
		min-width: 115px;
	}

	.litespeed-wrap input[name='kw'] {
		width: 100% !important;
	}
}

/* =======================================
			PROGRESS BAR
======================================= */

.litespeed-progress-bar {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	color: #fff;
	text-align: center;
	background-color: #007bff;
	transition: width 0.6s ease;
}

.litespeed-progress-bar-yellow {
	background-color: #fbe100;
}

.litespeed-progress {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	height: 12px;
	overflow: hidden;
	font-size: 0.75rem;
	background-color: #e9ecef;
	border: 1px solid #dddddd;
	border-radius: 8px;
	width: 75%;
	margin: 5em 1em 1.5em 1em !important;
}

/* =======================================
		PROGRESS BAR - modal
======================================= */

.litespeed-modal {
	margin-top: -8px;
}

.litespeed-modal .litespeed-progress {
	margin-left: -8px;
	margin-right: -8px;
}

/* =======================================
		   		GUIDANCE
======================================= */

.litespeed-guide {
	border: 1px solid #73b38d;
	max-width: 50%;
	padding: 20px;
}

.litespeed-guide h2 {
	color: #73b38d;
	border-bottom: 1px solid #73b38d;
	display: table;
	padding-right: 50px;
	padding-left: 3px;
	padding-bottom: 3px;
}

.litespeed-guide li {
	font-size: 15px;
	line-height: 30px;
	margin: 10px 10px 10px 16px;
}

.litespeed-guide li.litespeed-guide-done:before {
	content: '\2713';
	font-size: 26px;
	color: #73b38d;
	margin-left: -37px;
	margin-right: 18px;
	opacity: 1;
}

.litespeed-guide li.litespeed-guide-done {
	opacity: 0.9;
}

/* =======================================
		VIEW - image optimization
======================================= */

.litespeed-image-optim-summary-wrapper {
	padding: 0;
}

.litespeed-cache_page_litespeed-img_optm .nav-tab-wrapper,
.litespeed-cache_page_litespeed-cdn .nav-tab-wrapper {
	border-bottom-color: #e5e5e5;
}

.litespeed-cache_page_litespeed-img_optm .litespeed-body,
.litespeed-cache_page_litespeed-cdn .litespeed-body {
	box-shadow: none;
}

.litespeed-cache_page_litespeed-img_optm .litespeed-wrap .nav-tab:not(.nav-tab-active),
.litespeed-cache_page_litespeed-cdn .litespeed-wrap .nav-tab:not(.nav-tab-active) {
	border-bottom-color: #e5e5e5;
}

.litespeed-cache_page_litespeed-img_optm .nav-tab-active,
.litespeed-cache_page_litespeed-cdn .nav-tab-active {
	border-left-color: #e5e5e5;
	border-right-color: #e5e5e5;
	border-top-color: #e5e5e5;
	position: relative;
	z-index: 2;
}

.litespeed-cache_page_litespeed-img_optm [data-litespeed-layout='summary'],
.litespeed-cache_page_litespeed-cdn [data-litespeed-layout='qc'] {
	margin: -2px -21px -21px -21px;
	background: #f0f0f1;
}

.litespeed-column-secondary {
	background: #f9fafc;
}

.litespeed-column-with-boxes .postbox {
	border-color: #e5e5e5;
}

.litespeed-column-with-boxes .litespeed-width-7-10 {
	padding: 0;
}

@media screen and (min-width: 815px) {
	.litespeed-column-with-boxes > div.litespeed-column-left {
		padding-right: 25px;
	}
}

.litespeed-column-with-boxes > div.litespeed-column-right {
	background: #f1f1f1;
	padding-top: 0;
	padding-right: 0;
	padding-left: 0;
}

.litespeed-column-with-boxes > div.litespeed-column-right .litespeed-postbox:last-child {
	margin-bottom: 0;
}

.litespeed-image-optim-summary,
.litespeed-column-left-inside {
	box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
	position: relative;
	padding: 1px 20px 20px 20px;
	background: #fff;
	border: 1px solid #e5e5e5;
}

.litespeed-image-optim-summary-footer,
.litespeed-column-with-boxes-footer {
	border-top: 1px solid #efefef;
	background: #f9f9f9;
	padding: 20px;
	margin: 20px -20px -20px;
}

.litespeed-help-btn-icon {
	text-decoration: none;
	margin-left: 10px;
	color: #c8c8c8;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container {
	align-items: center;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container:not(:last-child) {
	margin-bottom: 0.65em;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container p:first-child {
	margin-top: 0;
}

.litespeed-image-optim-summary > h3:first-child,
.litespeed-column-left-inside > h3:first-child {
	margin-top: 1.6em;
	font-size: 1.2em;
}

.litespeed-image-optim-summary > h3:first-child .litespeed-quic-icon,
.litespeed-column-left-inside > h3:first-child .litespeed-quic-icon {
	width: 1.2em;
	height: 1.4em;
	background-size: contain;
	margin-right: 0.2rem;
}

.litespeed-img-optim-actions {
	margin-top: 1.65em;
	display: flex;
	align-items: flex-end;
	flex-wrap: wrap;
}

.litespeed-img-optim-actions .button-primary {
	font-size: 1.2em;
	margin-right: 1em;
	padding: 0.35em 0.85em;
	min-width: 210px;
	text-align: center;
}

@media screen and (max-width: 1079px) {
	.litespeed-postbox-imgopt-info svg {
		height: 50px;
		width: 50px;
	}
}

@media screen and (max-width: 814px) {
	.litespeed-column-with-boxes > div:first-child {
		padding-right: 0;
		margin-bottom: 1rem;
	}
}

@media screen and (max-width: 680px) {
	.litespeed-img-optim-actions .button + .button.button-secondary {
		margin-left: 0;
		margin-top: 10px;
	}
}

/* =======================================
	VIEW - image optm media row
======================================= */

.imgoptm.column-imgoptm a[data-balloon-pos] {
	border-bottom: 1px dashed;
}

.imgoptm.column-imgoptm p {
	margin-bottom: 0.25em;
	margin-top: 0;
}

.imgoptm.column-imgoptm p + .row-actions {
	margin-top: 0.5em;
}

.fixed .column-lqip {
	width: 6rem;
}

.litespeed-media-lqip img {
	max-width: 62px;
	max-height: 62px;
}

.litespeed-media-href {
	font-size: 12px;
}

/* =======================================
		VIEW - log view
======================================= */

.litespeed-log-view-wrapper {
	margin: 1.5em 0;
}

/* =======================================
			VIEW - dashboard
======================================= */

.litespeed-dashboard-group {
	margin-bottom: 1rem;
}

.litespeed-dashboard-group > .litespeed-flex-container {
	margin: 0 -10px;
	min-width: 100%;
	width: auto;
}

.litespeed-dashboard .litespeed-postbox {
	margin: 10px;
}

.litespeed-dashboard-title a {
	text-decoration: none;
	margin-left: 0.25rem;
}

.litespeed-dashboard-title--w-btn {
	display: flex;
	align-items: center;
}

.litespeed-dashboard-title--w-btn .button {
	font-weight: normal;
}

.litespeed-postbox-footer .button-small {
	vertical-align: middle;
}

.litespeed-postbox .button.button-small .dashicons,
.litespeed-dashboard-title--w-btn .button.button-small .dashicons {
	font-size: 1rem;
	top: 0.05em;
	vertical-align: middle;
	margin-left: -5px;
}

.litespeed-dashboard-header {
	display: flex;
	align-items: center;
}

.litespeed-postbox p.litespeed-dashboard-stats-total + p.litespeed-dashboard-stats-total {
	margin-top: 1.2em;
}

.litespeed-dashboard-header:first-child {
	margin-top: 1.5rem;
}

.litespeed-dashboard-header hr {
	align-self: center;
	flex-grow: 1;
	margin-left: 15px;
	margin-right: 15px;
}

.litespeed-dashboard-header hr:last-child {
	margin-right: 0;
}

.litespeed-dashboard-header .litespeed-learn-more {
	font-weight: normal;
	text-decoration: none;
	margin-top: -2px;
	color: #5e7380;
}

.litespeed-dashboard-stats h3 {
	text-transform: uppercase;
	font-size: 12px;
	font-weight: normal;
	margin-bottom: 0;
	margin-top: 1.2em;
	color: #777;
}

.litespeed-dashboard-stats h3 + p {
	margin-top: 0;
	margin-bottom: 0;
}

.litespeed-dashboard-stats .litespeed-desc {
	color: #777;
}

.litespeed-dashboard-stats p strong {
	font-size: 2em;
	font-weight: normal;
	margin-right: 5px;
}

.litespeed-dashboard-stats-wrapper {
	display: flex;
	position: relative;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox {
	margin: 0;
	min-width: 20%;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox .inside .litespeed-title,
.litespeed-dashboard-group .litespeed-postbox .inside .litespeed-title {
	font-size: 14px;
}

.litespeed-postbox .inside .litespeed-title a {
	font-size: 13px;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:last-child) {
	margin-right: -1px;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:first-child) {
	border-left-color: #f9f9f9;
}

.litespeed-dashboard-stats-wrapper .litespeed-dashboard-stats p strong {
	font-size: 1.4rem;
}

.litespeed-dashboard-stats-wrapper .litespeed-pie {
	width: 60px;
	height: 60px;
}

.litespeed-dashboard-stats-wrapper .litespeed-flex-container + p:not(:last-child) {
	margin-bottom: 0.55em;
}

.litespeed-dashboard-stats-payg {
	color: #777;
}

.litespeed-dashboard-stats-payg strong {
	color: #444;
}

.postbox .inside > p.litespeed-dashboard-stats-payg {
	margin-top: 1.35em;
}

.postbox .inside > p.litespeed-dashboard-stats-payg:last-child {
	margin-bottom: -5px !important;
}

.litespeed-postbox p.litespeed-dashboard-stats-total {
	padding: 0.75em 20px 0 20px;
	border-top: 1px dashed #eee;
	margin-top: 0.55em;
	margin-left: -20px;
	margin-right: -20px;
	margin-bottom: -0.55em !important;
}

.litespeed-postbox.litespeed-postbox-partner .inside {
	margin: 11px 0;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox.litespeed-postbox-partner h3.litespeed-title {
	color: #777;
	font-weight: normal;
	font-size: 13px;
}

.litespeed-postbox.litespeed-postbox-partner a {
	font-size: 1.35rem;
	font-weight: bold;
	text-decoration: none;
	margin-top: 5px;
	max-width: 100%;
	display: inline-block;
}

.litespeed-postbox.litespeed-postbox-partner a:hover {
	text-decoration: underline;
}

.litespeed-postbox.litespeed-postbox-partner img {
	max-width: 12rem;
}

.litespeed-dashboard-group .litespeed-postbox {
	width: calc(25% - 20px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.litespeed-dashboard-group .litespeed-postbox-double {
	min-width: calc(50% - 20px);
	display: flex;
	justify-content: space-between;
}

.litespeed-postbox-double-content {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.litespeed-postbox-double-content .litespeed-postbox-double-col {
	width: 50%;
}

.litespeed-postbox-double-content .litespeed-postbox-double-col:nth-child(2) {
	padding-left: 10px;
}

.litespeed-dashboard-group hr {
	margin: 1.5rem 0 0.75rem 0;
}

.litespeed-postbox .litespeed-postbox-refresh {
	text-decoration: none;
	color: #36b0b0;
	line-height: 1;
	vertical-align: top;
	margin-left: 0.5rem;
	margin-bottom: 0;
}

.litespeed-postbox .litespeed-postbox-refresh.button .dashicons {
	font-size: 22px;
	top: 0.05em;
}

.litespeed-postbox p:last-child {
	margin-bottom: 0;
}

.litespeed-label-dashboard {
	font-size: 0.92em;
	padding: 0.3em 0.6em 0.35em 0.6em;
	font-weight: normal;
	display: inline-block;
	margin-left: 8px;
	min-width: 2em;
}

.litespeed-label-dashboard:first-child {
	margin-left: 0;
	margin-right: 0.35em;
}

.litespeed-postbox .inside {
	padding: 0 20px 5px;
}

.litespeed-postbox .inside .litespeed-title {
	margin: 0 -20px 12px -20px;
	padding: 0px 20px 7px 20px;
	border-bottom: 1px solid #eee;
	font-size: 1.2em;
}

.litespeed-postbox .inside.litespeed-postbox-footer {
	border-top: 1px solid #efefef;
	background: #f9f9f9;
	padding: 20px;
	margin-bottom: 0px;
	margin-top: 0;
}

.litespeed-postbox-footer a,
a.litespeed-redetect {
	text-decoration: none;
}

.litespeed-postbox .inside.litespeed-postbox-footer--compact {
	padding: 7px 15px 8px 15px;
	font-size: 12px;
}

.litespeed-postbox-imgopt .litespeed-pie {
	width: 55px;
	height: 55px;
}

.litespeed-postbox-imgopt .litespeed-flex-container {
	align-items: center;
	margin-bottom: 10px;
}

.litespeed-postbox-imgopt .litespeed-flex-container .litespeed-icon-vertical-middle + div h3 {
	margin-top: 0;
}

.litespeed-postbox-imgopt .litespeed-flex-container .litespeed-icon-vertical-middle + div p {
	line-height: 1.2;
}

.litespeed-postbox-imgopt .litespeed-postbox-double-col:last-child > *:first-child {
	margin-top: 7px;
}

.litespeed-postbox-pagespeed p:first-child {
	margin-top: 0;
	margin-bottom: 0;
}

.litespeed-postbox-score-improve {
	line-height: 45px;
	margin-top: 7px;
	font-size: 42px;
}

.litespeed-postbox-pagespeed .litespeed-padding-space:first-child {
	padding-left: 5px;
	padding-right: 5px;
}

.litespeed-link-with-icon {
	text-decoration: underline;
	margin-right: 0.25em;
}

.litespeed-link-with-icon .dashicons {
	vertical-align: baseline;
	position: relative;
	top: 0.1em;
	font-size: 1em;
	text-decoration: none;
	width: auto;
	margin-right: 0.5em;
}

.litespeed-link-with-icon.litespeed-icon-right .dashicons {
	margin-left: 0.5em;
	margin-right: 0;
}

.litespeed-warning-bg {
	background-color: #b58a09 !important;
	color: white;
}

.litespeed-links-group:not(:last-child) {
	margin-bottom: 1em;
}

.litespeed-links-group > span:not(:last-child):after {
	content: '|';
	margin: 0 10px;
	color: #ddd;
	font-size: 13px;
}

.litespeed-wrap p.litespeed-qc-dashboard-link {
	margin-left: 1rem;
}

.litespeed-right.litespeed-qc-dashboard-link .dashicons {
	margin-left: 0.5em;
	margin-right: 0;
}

.litespeed-score-col {
	flex-grow: 1;
	padding-right: 15px;
}

.litespeed-score-col .litespeed-text-md {
	font-size: 1.35rem;
}

.litespeed-score-col.litespeed-score-col--imp {
	text-align: right;
	padding-right: 0;
}

.litespeed-score-col--imp .litespeed-text-jumbo {
	line-height: 1;
}

.litespeed-wrap span[data-balloon-pos] {
	border-bottom: 1px dashed;
}

.litespeed-wrap span[aria-label][data-balloon-pos] {
	cursor: default;
}

.litespeed-postbox--quiccloud {
	border-color: #253545;
}

.litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title {
	background: #253545;
	color: #e2e4e5;
	margin-top: -11px;
	padding: 10px 15px;
	margin-left: -15px;
	margin-right: -15px;
}

.litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title a {
	color: #8abff8;
}

.litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title a:hover {
	color: #a5caf2;
}

@media screen and (min-width: 1401px) {
	.litespeed-postbox--quiccloud.litespeed-postbox .inside .litespeed-title {
		padding-left: 20px;
		padding-right: 20px;
		margin-left: -20px;
		margin-right: -20px;
	}

	.litespeed-postbox .inside.litespeed-postbox-footer--compact {
		padding-left: 20px;
		padding-right: 20px;
	}
}

@media screen and (max-width: 1400px) and (min-width: 1024px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		flex-grow: 1;
	}

	.litespeed-postbox .inside {
		padding: 0 15px 5px;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: calc(33.3333% - 20px);
	}

	.litespeed-dashboard-group .litespeed-postbox-double {
		min-width: calc(66.6666% - 20px);
	}
}

@media screen and (max-width: 1023px) {
	.litespeed-dashboard-stats-wrapper {
		flex-wrap: wrap;
	}

	.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:first-child) {
		border-left-color: #ccd0d4;
	}

	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		margin-top: -1px;
		min-width: calc(33.3333% - 1px);
	}

	.litespeed-postbox .inside {
		padding: 0 15px 5px;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: calc(50% - 20px);
	}

	.litespeed-dashboard-group .litespeed-postbox-double {
		min-width: calc(100% - 20px);
	}
}

@media screen and (max-width: 719px) and (min-width: 480px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		margin-top: -1px;
		min-width: calc(50% - 2px);
	}
}

@media screen and (max-width: 569px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		min-width: 100%;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: 100%;
	}

	.litespeed-postbox-double-content .litespeed-postbox-double-col {
		width: 100%;
	}

	.litespeed-postbox-double-content .litespeed-postbox-double-col:nth-child(2) {
		padding-left: 0;
		margin-top: 7px;
	}

	.litespeed-postbox-double-content {
		flex-wrap: wrap;
	}
}

/* =======================================
			VIEW - dashboard QC services
======================================= */

.litespeed-dashboard-qc {
	position: relative;
}

.litespeed-dashboard-unlock {
	text-align: center;
	background-color: #fff;
	box-shadow:
		0 0.125rem 0.4rem -0.0625rem rgba(0, 0, 0, 0.03),
		0px 3px 0px 0px rgba(0, 0, 0, 0.07);
	border-radius: 0.5rem;
	padding: 2rem;
	position: absolute;
	z-index: 5;
	left: 50%;
	transform: translate(-50%, 25%);
	top: 0;
	max-width: 96%;
	width: 540px;
}

.litespeed-dashboard-unlock.litespeed-dashboard-unlock--inline {
	position: relative;
	left: 50%;
	transform: translate(-50%, 0);
	border: 1px solid #e5e5e5;
	background: #fafafa;
	margin-top: 2rem;
	margin-bottom: 1rem;
	max-width: calc(100% - 4rem);
}

.litespeed-dashboard-unlock-title {
	font-size: 28px;
}

.litespeed-dashboard-unlock-desc {
	font-size: 17px;
	color: #000;
}

.litespeed-dashboard-unlock-desc span {
	font-size: 14px;
	color: #666;
}

p.litespeed-dashboard-unlock-footer {
	margin: 3em auto 0 auto;
	max-width: 500px;
}

.litespeed-qc-text-gradient {
	background: -webkit-linear-gradient(130deg, #ff2a91, #2295d8 60%, #161f29);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	font-weight: 800;
}

.litespeed-dashboard-unlock a.button.button-primary,
.litespeed-wrap .button.litespeed-button-cta {
	font-size: 1.2em;
	padding: 0.35em 1em 0.35em 0.85em;
	min-width: 210px;
	text-align: center;
}

.litespeed-dashboard-unlock a.button.button-primary {
	margin-top: 10px;
}

.litespeed-dashboard-unlock a.button.button-primary .dashicons,
.litespeed-wrap .button.litespeed-button-cta .dashicons {
	vertical-align: baseline;
	top: 0.25em;
	margin-right: 0.5em;
}

.litespeed-dashboard-unlock + .litespeed-dashboard-qc-enable {
	opacity: 0.75;
	filter: blur(2px);
}

.litespeed-dashboard-unlock + .litespeed-dashboard-qc-enable:before {
	content: '';
	position: absolute;
	left: -10px;
	top: -5px;
	width: calc(100% + 20px);
	height: calc(100% + 10px);
	background: #161e29;
	z-index: 2;
	opacity: 0.55;
	filter: blur(2px);
}

@media screen and (min-width: 1400px) {
	.litespeed-dashboard-unlock {
		width: 800px;
	}
}

@media screen and (max-width: 640px) {
	.litespeed-dashboard-unlock {
		max-width: 80%;
		padding: 1rem 1.5rem 2rem 1.5rem;
		transform: translate(-50%, 10%);
	}

	.litespeed-dashboard-unlock-title {
		font-size: 22px;
		line-height: 1.2;
	}
}

@media screen and (max-width: 340px) {
	.litespeed-dashboard-unlock a.button.button-primary,
	.litespeed-wrap .button.litespeed-button-cta {
		padding: 0.35em 1em 0.35em 1em;
	}

	.litespeed-dashboard-unlock a.button.button-primary .dashicons,
	.litespeed-wrap .button.litespeed-button-cta .dashicons {
		display: none;
	}

	p.litespeed-dashboard-unlock-footer {
		margin-top: 2em;
	}
}

/********************************* todo *******************************/

/* image optimize page */

.litespeed-column-java {
	background: #5cadad !important;
}

.litespeed-text-shipgrey {
	color: #535342 !important;
}

.litespeed-text-dimgray {
	color: #666666 !important;
}

.litespeed-text-grey {
	color: #999999 !important;
}

.litespeed-text-whisper {
	color: #e6e6e6 !important;
}

.litespeed-text-malibu {
	color: #5cbdde !important;
}

.litespeed-text-morningglory {
	color: #99cccc !important;
}

.litespeed-text-fern {
	color: #66cc66 !important;
}

.litespeed-text-persiangreen {
	color: #009999 !important;
}

.litespeed-text-lead {
	font-size: 16px;
}

.litespeed-text-small {
	font-size: 12px;
	line-height: 14px;
}

.litespeed-text-thin {
	font-weight: 100;
}

.litespeed-contrast {
	color: white;
}

.litespeed-hr-dotted {
	border: 1px dotted #eeeeee;
}

.litespeed-hr {
	padding-bottom: 1.5em;
	border-bottom: 0.5px solid #97caca;
}

.litespeed-hr-with-space {
	border-top: 1px solid #eeeeee;
	margin: 2em 0;
	border-bottom: none;
}

.litespeed-icon-vertical-middle {
	vertical-align: middle;
	display: inline-block;
	margin: 0px 10px 0px 10px;
}

.litespeed-column-java .litespeed-danger {
	color: #c1c53a !important;
}

.litespeed-column-java .litespeed-desc {
	color: #bfbfbf;
}

.litespeed-column-java code {
	color: #c2f5bf;
	background-color: #238888;
}

.litespeed-column-java .litespeed-title {
	color: white;
}

.litespeed-width-7-10 .litespeed-progress {
	margin: 1em;
}

.litespeed-refresh:after {
	content: '⟳';
	width: 20px;
	height: 20px;
	color: #40ad3a;
}

.litespeed-column-java .litespeed-refresh:after {
	color: #23ec17;
}

.litespeed-refresh:hover:after,
.litespeed-refresh:focus:after,
.litespeed-refresh:focus:active:after {
	color: #7ffbfb;
}

.litespeed-width-3-10 .litespeed-title {
	margin: 18px 0;
}

.litespeed-silence {
	color: #b1b1b1;
}

.litespeed-column-java .litespeed-congratulate {
	color: #c2f5bf;
	font-size: 20px;
}

.litespeed-light-code .litespeed-silence code {
	background-color: #f0f5fb;
}

.litespeed-column-java .litespeed-btn-danger {
	color: #f194a8;
	border-color: #f194a8;
}

.litespeed-column-java .litespeed-btn-danger:hover {
	background: #f194a8;
}

.litespeed-column-java svg.litespeed-pie circle.litespeed-pie_bg {
	stroke: #e8efe7;
}

.litespeed-column-java svg.litespeed-pie circle.litespeed-pie_circle {
	stroke: #97caca;
}

.litespeed-column-java svg .litespeed-pie_info text {
	fill: #f5ffeb;
}

.litespeed-column-java svg g.litespeed-pie_info .litespeed-pie-done {
	fill: #a5ffa0;
}

.litespeed-column-java a {
	color: #eaf8ff;
}

.litespeed-column-java a:hover {
	color: #ffffff;
}

.litespeed-progress-bar-blue {
	background-color: #33adff;
}

.litespeed-status-current {
	font-size: 3.5em;
	margin: 1.25em 0em 0.75em 0em;
}

/* .litespeed-title, .litespeed-title-short {
	margin: 18px 0;
	border-bottom: 1px solid #C1D5EA;
	margin: 2.5em 0px 1.5em 0 !important;
} */

.litespeed-column-java .litespeed-desc {
	color: #cae4e4;
}

.litespeed-column-java .litespeed-warning {
	color: #ffd597 !important;
}

.litespeed-column-java .litespeed-btn-success {
	color: #ddf1e4;
	border: 1px solid #33ad5c;
	background: #33ad5c;
}

.litespeed-column-java .litespeed-btn-success:hover {
	color: #ffffff;
	border: 1px solid #7dca97;
	background: #009933;
}

.litespeed-column-java .litespeed-btn-warning {
	color: #fff1dd;
	border: 1px solid #ff9933;
	background-color: #ff9933;
}

.litespeed-column-java .litespeed-btn-warning:hover {
	color: #ffffff;
	border-color: #ffca7d;
	background: #ff9900;
}

.litespeed-column-java .litespeed-btn-danger {
	color: #ffeadd !important;
	border: 1px solid #ff6600 !important;
	background: #ff5c5c;
}

.litespeed-column-java .litespeed-btn-danger:hover {
	color: #ffffff;
	border: 1px solid #ff9797 !important;
	background: #ff0000;
}

.litespeed-column-java .litepseed-dash-icon-success,
.litepseed-dash-icon-success {
	color: #5cdede;
	font-size: 2em;
	margin-top: -0.25em;
}

.litespeed-column-java .litepseed-dash-icon-success:hover,
.litepseed-dash-icon-success:hover {
	color: #7de5e5;
}

.litespeed-dashicons-large {
	font-size: 2em;
}

.litespeed-column-java p {
	color: #ffffff;
}

.litespeed-body tbody > tr > th.litespeed-padding-left {
	padding-left: 3em;
}

@media screen and (max-width: 680px) {
	.litespeed-body tbody > tr > th.litespeed-padding-left {
		padding-left: 10px;
	}

	.litespeed-body tbody > tr > th.litespeed-padding-left:before {
		content: '\2014\2014';
		color: #ccc;
		margin-right: 5px;
	}
}

.litespeed-txt-small {
	font-size: 12px;
}

.litespeed-txt-disabled .litespeed-text-dimgray {
	color: #aaaaaa;
}

.litespeed-txt-disabled svg {
	fill: #aaaaaa;
}

.litespeed-txt-disabled circle.litespeed-pie_circle {
	stroke: #cccccc;
}

.litespeed-txt-disabled g.litespeed-pie_info text {
	color: #cccccc;
}

a.litespeed-media-href svg:hover {
	border-radius: 50%;
	background: #f1fcff;
	fill: #5ccad7;
	box-shadow: 0 0 5px 1px #7dd5df;
	transition: all 0.2s ease-out;
	transform: scale(1.05);
}

.litespeed-media-p a .dashicons-trash {
	font-size: 2.25em;
	vertical-align: middle;
	display: inline;
	border-radius: 50%;
	line-height: 1.5em;
}

.litespeed-media-p a .dashicons-trash:hover {
	transition: all 0.2s ease-out;
	color: #ffa500 !important;
	background: #fff5e6;
	box-shadow: 0 0 10px 1px #ff8c00;
}

.litespeed-media-p div > svg circle.litespeed-pie_bg {
	stroke: #ecf2f9;
}

.litespeed-media-p div > svg circle.litespeed-pie_circle {
	stroke: #9fbfdf;
}

.litespeed-media-p div > svg {
	fill: #538cc6;
	background: rgba(236, 242, 249, 0.1);
	border-radius: 50%;
}

.litespeed-banner-description-padding-right-15 {
	padding-right: 15px;
}

.litespeed-banner-description {
	display: inline-flex;
	flex-wrap: wrap;
}

.litespeed-banner-description-content {
	margin: 0px;
	line-height: 1.25em;
}

.litespeed-banner-button-link {
	white-space: nowrap;
	margin: 0px;
	line-height: 1.5em;
	padding-bottom: 5px;
}

.litespeed-notice-dismiss {
	position: absolute;
	right: 25px;
	border: none;
	margin: 0;
	padding: 10px;
	background: none;
	cursor: pointer;
	color: #888888;
	display: block;
	height: 20px;
	text-align: center;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-weight: 600;
	text-decoration: none;
}

.litespeed-notice-dismiss:hover,
.litespeed-notice-dismiss:active,
.litespeed-notice-dismiss:focus {
	color: #cc2929;
}

.litespeed-dot {
	display: inline-block;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	color: white;
	text-align: center;
}

.litespeed-badge {
	display: inline-block;
	border-radius: 20%;
	min-width: 50px;
	height: 20px;
	color: white;
	text-align: center;
}

/* =======================================
	Comparison Cards - Presets
======================================= */

.litespeed-comparison-card {
	box-sizing: border-box;
}

.litespeed-comparison-card-rec .litespeed-card-content > div.litespeed-card-body {
	font-size: 14px;
}

.litespeed-comparison-card-rec .litespeed-card-action {
	margin-bottom: 0.25rem;
}

.litespeed-comparison-card-rec h3 {
	font-size: 20px;
}

.litespeed-card-content > div,
.litespeed-card-action {
	padding: 0.85rem 1.25rem;
}

.litespeed-card-header {
	border-bottom: 1px solid #eee;
	background: #f9fafc;
}

.litespeed-card-content > div.litespeed-card-body {
	align-self: stretch;
	justify-content: flex-end;
	font-size: 15px;
	padding-bottom: 0.5rem;
	padding-top: 1rem;
}

.litespeed-card-content > div.litespeed-card-footer {
	align-self: stretch;
	justify-content: flex-end;
	padding-bottom: 0;
	padding-top: 0.25rem;
}

.litespeed-card-action {
	justify-content: flex-end;
}

.litespeed-comparison-card ul {
	padding-left: 20px;
	list-style: none;
	list-style-position: outside;
	margin: 0;
}

.litespeed-comparison-card li {
	margin-bottom: 0.5em;
	line-height: 1.4;
}

.litespeed-comparison-card li:last-child {
	margin-bottom: 0;
}

.litespeed-comparison-card ul li:before {
	content: '✓';
	margin-left: -1em;
	margin-right: 0.35em;
	color: #329c74;
}

@media screen and (max-width: 1279px) {
	.litespeed-comparison-card {
		margin: 0 0 -1px 0;
	}
}

@media screen and (min-width: 640px) and (max-width: 1279px) {
	.litespeed-comparison-cards {
		max-width: 740px;
	}

	.litespeed-card-content {
		display: flex;
		flex-wrap: wrap;
	}

	.litespeed-card-content .litespeed-card-header {
		width: 100%;
	}

	.litespeed-card-content > div.litespeed-card-body {
		align-self: initial;
		width: 50%;
		box-sizing: border-box;
	}

	.litespeed-card-content > div.litespeed-card-footer {
		width: 50%;
		align-self: initial;
		box-sizing: border-box;
	}

	.litespeed-card-content > div.litespeed-card-footer h4 {
		margin-top: 1rem;
	}
}

@media screen and (min-width: 1280px) {
	.litespeed-comparison-cards {
		display: flex;
		margin: 3rem 0 2rem 0;
		max-width: 1720px;
	}

	.litespeed-comparison-card {
		width: 19%;
		min-width: 0;
		display: flex;
		flex-direction: column;
		margin-right: -1px;
		justify-content: space-between;
	}

	.litespeed-comparison-card:first-child {
		border-top-left-radius: 5px;
		border-bottom-left-radius: 5px;
		overflow: hidden;
	}

	.litespeed-comparison-card:last-child {
		border-top-right-radius: 5px;
		border-bottom-right-radius: 5px;
		overflow: hidden;
	}

	.litespeed-comparison-card-rec {
		width: 23%;
		padding-top: 1rem;
		padding-bottom: 0.75rem;
		margin-top: -1rem;
		margin-bottom: 0.25rem;
		border-radius: 5px;
		overflow: hidden;
	}

	.litespeed-comparison-card-rec .litespeed-card-header {
		margin-top: -1rem;
		padding-top: 1.75rem;
		padding-bottom: 0.95rem;
	}
}

/* =======================================
		BALLOON PURE CSS TOOLTIPS
======================================= */

.litespeed-wrap {
	--balloon-color: rgba(16, 16, 16, 0.95);
	--balloon-font-size: 12px;
	--balloon-move: 4px;
}

.litespeed-wrap button[aria-label][data-balloon-pos] {
	overflow: visible;
}

.litespeed-wrap [aria-label][data-balloon-pos] {
	position: relative;
	cursor: pointer;
}

.litespeed-wrap [aria-label][data-balloon-pos]:after {
	opacity: 0;
	pointer-events: none;
	transition: all 0.2s ease 0.05s;
	text-indent: 0;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
	font-weight: normal;
	font-style: normal;
	text-shadow: none;
	font-size: var(--balloon-font-size);
	background: var(--balloon-color);
	border-radius: 2px;
	color: #fff;
	content: attr(aria-label);
	padding: 0.5em 1em;
	position: absolute;
	white-space: nowrap;
	z-index: 10;
	line-height: 1.4;
}

.litespeed-wrap [aria-label][data-balloon-pos]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-top-color: var(--balloon-color);
	opacity: 0;
	pointer-events: none;
	transition: all 0.2s ease 0.05s;
	content: '';
	position: absolute;
	z-index: 10;
}

.litespeed-wrap [aria-label][data-balloon-pos]:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos]:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-visible]:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-visible]:after,
.litespeed-wrap [aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,
.litespeed-wrap [aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after {
	opacity: 1;
	pointer-events: none;
}

.litespeed-wrap [aria-label][data-balloon-pos].font-awesome:after {
	font-family:
		FontAwesome,
		-apple-system,
		BlinkMacSystemFont,
		'Segoe UI',
		Roboto,
		Oxygen,
		Ubuntu,
		Cantarell,
		'Open Sans',
		'Helvetica Neue',
		sans-serif;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-break]:after {
	white-space: pre;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after {
	white-space: pre-line;
	word-break: break-word;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-blunt]:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-blunt]:after {
	transition: none;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up']:after {
	bottom: 100%;
	left: 50%;
	margin-bottom: 10px;
	transform: translate(-50%, var(--balloon-move));
	transform-origin: top;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up']:before {
	bottom: 100%;
	left: 50%;
	transform: translate(-50%, var(--balloon-move));
	transform-origin: top;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up']:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up'][data-balloon-visible]:after {
	transform: translate(-50%, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up']:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up'][data-balloon-visible]:before {
	transform: translate(-50%, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-left']:after {
	bottom: 100%;
	left: 0;
	margin-bottom: 10px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-left']:before {
	bottom: 100%;
	left: 5px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-left']:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-left'][data-balloon-visible]:after {
	transform: translate(0, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-left']:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-left'][data-balloon-visible]:before {
	transform: translate(0, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-right']:after {
	bottom: 100%;
	right: 0;
	margin-bottom: 10px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-right']:before {
	bottom: 100%;
	right: 5px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-right']:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-right'][data-balloon-visible]:after {
	transform: translate(0, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-right']:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='up-right'][data-balloon-visible]:before {
	transform: translate(0, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down']:after {
	left: 50%;
	margin-top: 10px;
	top: 100%;
	transform: translate(-50%, calc(var(--balloon-move) * -1));
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down']:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	left: 50%;
	top: 100%;
	transform: translate(-50%, calc(var(--balloon-move) * -1));
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down']:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down'][data-balloon-visible]:after {
	transform: translate(-50%, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down']:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down'][data-balloon-visible]:before {
	transform: translate(-50%, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-left']:after {
	left: 0;
	margin-top: 10px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-left']:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	left: 5px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-left']:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-left'][data-balloon-visible]:after {
	transform: translate(0, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-left']:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-left'][data-balloon-visible]:before {
	transform: translate(0, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-right']:after {
	right: 0;
	margin-top: 10px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-right']:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	right: 5px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-right']:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-right'][data-balloon-visible]:after {
	transform: translate(0, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-right']:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='down-right'][data-balloon-visible]:before {
	transform: translate(0, 0);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='left']:after {
	margin-right: 10px;
	right: 100%;
	top: 50%;
	transform: translate(var(--balloon-move), -50%);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='left']:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-left-color: var(--balloon-color);
	right: 100%;
	top: 50%;
	transform: translate(var(--balloon-move), -50%);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='left']:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='left'][data-balloon-visible]:after {
	transform: translate(0, -50%);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='left']:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='left'][data-balloon-visible]:before {
	transform: translate(0, -50%);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='right']:after {
	left: 100%;
	margin-left: 10px;
	top: 50%;
	transform: translate(calc(var(--balloon-move) * -1), -50%);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='right']:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-right-color: var(--balloon-color);
	left: 100%;
	top: 50%;
	transform: translate(calc(var(--balloon-move) * -1), -50%);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='right']:hover:after,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='right'][data-balloon-visible]:after {
	transform: translate(0, -50%);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='right']:hover:before,
.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-pos='right'][data-balloon-visible]:before {
	transform: translate(0, -50%);
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-length='small']:after {
	white-space: normal;
	width: 80px;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-length='medium']:after {
	white-space: normal;
	width: 150px;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-length='large']:after {
	white-space: normal;
	width: 260px;
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-length='xlarge']:after {
	white-space: normal;
	width: 380px;
}

@media screen and (max-width: 768px) {
	.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-length='xlarge']:after {
		white-space: normal;
		width: 90vw;
	}
}

.litespeed-wrap [aria-label][data-balloon-pos][data-balloon-length='fit']:after {
	white-space: normal;
	width: 100%;
}

/* =======================================
		Misc Mobile TWEAKS
======================================= */

@media screen and (max-width: 680px) {
	.litespeed-wrap .litespeed-body .field-col {
		margin-left: 0;
	}

	.litespeed-width-auto.litespeed-table-compact td {
		font-size: 12px;
		word-break: break-word;
	}

	input#input_api_key + .button {
		margin-top: 10px;
		margin-left: 0;
	}

	input#input_api_key + .button + .litespeed-desc {
		display: block;
	}

	input#input_api_key + .button + .litespeed-desc + .button {
		margin-left: 0;
	}

	.litespeed-body .litespeed-table td .litespeed-right {
		float: none !important;
	}

	.litespeed-title a.litespeed-learn-more,
	.litespeed-title-short a.litespeed-learn-more {
		display: block;
		margin-left: 0;
		margin-top: 5px;
	}
}

.litespeed-wrap .litespeed-redetect[aria-label][data-balloon-pos][data-balloon-pos='up']:after {
	left: auto;
	right: 0;
	transform: translate(0%, var(--balloon-move));
}

.litespeed-wrap .litespeed-redetect[aria-label][data-balloon-pos][data-balloon-pos='up']:hover:after,
.litespeed-wrap .litespeed-redetect[aria-label][data-balloon-pos][data-balloon-pos='up'][data-balloon-visible]:after {
	transform: translate(0, 0);
}

/* =======================================
					QC
======================================= */

.litespeed-col-status-data h3,
.litespeed-col-status-data h4 {
	margin-bottom: 0;
	margin-top: 20px;
}

.litespeed-col-status-data h3 .dashicons {
	vertical-align: bottom;
}

.litespeed-col-status-data h4 .dashicons {
	vertical-align: sub;
}

/* To use on dark bg */
.litespeed-wrap .litespeed-qc-button {
	background-color: #5efffc;
	border: 1px solid #00d0cb;
	box-shadow: 0px 2px 0px 0px #00d0cb;
	color: #161f29;
	font-weight: 600;
	font-size: 15px;
	padding: 12px 24px;
	border-radius: 3px;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	transition: 0.25s;
}

.litespeed-wrap .litespeed-qc-button:hover {
	background: #21a29f21;
	color: #5efffc;
	border-color: #00d0cb;
}

.litespeed-wrap .litespeed-qc-button .dashicons {
	top: auto;
}

.litespeed-postbox.litespeed-qc-promo-box {
	background: #161e29 linear-gradient(110deg, #171c2fbd, #252766ab);
	border-radius: 5px;
	box-shadow: 0px 4px 0px 0px #161d2e;
	border: none;
}

.litespeed-postbox.litespeed-qc-promo-box .inside {
	padding: 25px;
	margin: 0;
}

.litespeed-dashboard-group .litespeed-postbox.litespeed-qc-promo-box {
	box-shadow: none;
}

.litespeed-dashboard-group .litespeed-postbox.litespeed-qc-promo-box .inside {
	padding: 20px 25px;
}

.litespeed-postbox.litespeed-qc-promo-box h3 {
	margin-top: 0;
	color: #fff;
	font-size: 24px;
	font-weight: 800;
	line-height: 1.4em;
}

.litespeed-postbox.litespeed-qc-promo-box h3 .litespeed-quic-icon {
	width: 24px;
	height: 28px;
	background-size: contain;
	margin-right: 10px;
}

.litespeed-postbox.litespeed-qc-promo-box p {
	color: #dbdbdb;
	font-size: 1rem;
}

/* =======================================
	   Deactivate modal
======================================= */
#litespeed-modal-deactivate {
	padding: 20px;
}

#litespeed-modal-deactivate h2 {
	margin: 0px;
}

#litespeed-modal-deactivate .litespeed-wrap {
	margin: 10px 0px;
}

#litespeed-modal-deactivate .deactivate-clear-settings-wrapper,
#litespeed-modal-deactivate .deactivate-actions {
	margin-top: 30px;
}

#litespeed-modal-deactivate .deactivate-reason-wrapper label,
#litespeed-modal-deactivate .deactivate-clear-settings-wrapper label {
	width: 100%;
	display: block;
	margin-bottom: 5px;
}

#litespeed-modal-deactivate .deactivate-actions {
	display: flex;
	justify-content: space-between;
}/*
* iziModal | v1.5.1
* http://izimodal.marcelodolce.com
* by Marcelo Dolce.
*/
.iziModal{display:none;position:fixed;top:0;bottom:0;left:0;right:0;margin:auto;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.3);transition:margin-top .3s ease,height .3s ease;transform:translateZ(0)}.iziModal *{-webkit-font-smoothing:antialiased}.iziModal::after{content:'';width:100%;height:0;opacity:0;position:absolute;left:0;bottom:0;z-index:1;background:-moz-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,transparent),color-stop(100%,rgba(0,0,0,.35)));background:-webkit-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-o-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-ms-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.35) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#59000000',GradientType=0 );transition:height .3s ease-in-out,opacity .3s ease-in-out;pointer-events:none}.iziModal.hasShadow::after{height:30px;opacity:1}.iziModal .iziModal-progressbar{position:absolute;left:0;top:0;width:100%;z-index:1}.iziModal .iziModal-progressbar>div{height:2px;width:100%}.iziModal .iziModal-header{background:#88a0b9;padding:14px 18px 15px;box-shadow:inset 0 -10px 15px -12px rgba(0,0,0,.3),0 0 0 #555;overflow:hidden;position:relative;z-index:10}.iziModal .iziModal-header-icon{font-size:40px;color:rgba(255,255,255,.5);padding:0 15px 0 0;margin:0;float:left}.iziModal .iziModal-header-title{color:#fff;font-size:18px;font-weight:600;line-height:1.3}.iziModal .iziModal-header-subtitle{color:rgba(255,255,255,.6);font-size:12px;line-height:1.45}.iziModal .iziModal-header-subtitle,.iziModal .iziModal-header-title{display:block;margin:0;padding:0;font-family:'Lato',Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.iziModal .iziModal-header-buttons{position:absolute;top:50%;right:10px;margin:-17px 0 0}.iziModal .iziModal-button{display:block;float:right;z-index:2;outline:0;height:34px;width:34px;border:0;padding:0;margin:0;opacity:.3;border-radius:50%;transition:transform .5s cubic-bezier(.16,.81,.32,1),opacity .5s ease;background-size:67%!important;-webkit-tap-highlight-color:transparent}.iziModal .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODZCQkIzQ0I0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZCQkIzQ0M0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NkJCQjNDOTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NkJCQjNDQTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsgTJLcAAALJSURBVHja3JnLS1VBHMfvQ7g9dBXRRrwEFRciAhMi1JRW1aIHVEIYEkW0iVpUhOD/ICK6cFMgSbUpC6VFkQa9NtpjkauriRY9Noa3pHT8/mIODMM5Or85o87pC5/NPf5mvmc8M7+Z36SFEKkY2gj2gUawF2wHW8A6+fwv+A6KYAQMg+dg2rbDtKXhGnAaHJIms4zYz9J4HxgAf1g9k2EGteAhWBBuNApaQNrUg6nRTaAbzIuV0RCocWW4DoyJlVcJXI5ruFk2tJqi/2TWxvA5sXbqA2Ucw01i7dVjargazAo/dE33p6/DlAheg50pP0SJpwG8CH7IaH/Q5pFZUhnoArkwwwVwJeWfdoMLYYZvqG+yTGo9CerAoIWBT+A4qAdPDWOugwo1NVcxJtpFZRLkwH3GJCqCghJfxVjnz1JMMMKnwAbGRAg0B5rAA4O4CblZ+qj8tkBjZthvSzDCtFIMM0ZpQhslk5Eej4jpZ/T7G+ygwG1ghrk+jjNMFy1eMPJzpOAzlou6iWmXZkm91EBHjEwUZXoQTDk2SxqhRh7HTJ9hpstB3rFZ0ldq6J2DnB9m2rXZfxOPlrX1DrJRXiaBXSHPaMHvB0cd9JPLpBImMvzLQTuUFA6A9yHPfoIjhsllOc1l5N4grtmDWgYrl5+JTUZcSjNkeMyxWdpA3ZN72IJj01OJTByJS82J2/wQVxmB5y1HK8x0JWMf/kzdD98FJcY5S51gdwyTQl6eUAraspo27PeWXgy8afim0+CELAwOWHyH9EkdkyWwJ4Yxk6BCP+bTm48anutWW5dAp34IpbW03UOzb0FPVEHbx0LKfvAyqpAyKw97JU8Mt6pml6rAJ6oY6Eu5NfvfF7QTeWWQyEsZr6694lwsNoPD8mKRo29gCNwGj7gXi7aGA1EBcY+8vq0GW8FmJb3Pgx9gEnwAr8Ab8MW2w0UBBgAVyyyaohV7ewAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBBOUI4RUM0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBBOUI4RUQ0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEE5QjhFQTRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMEE5QjhFQjRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrQO6gAAAANmSURBVHjazJlbSBRRGMd3x92i0ForRRMiKiUoX4ouiFlJkRVBDxW9GJERwUasvdRT9FD00osRQtAFqegGBUHRBY0uaCVKEkSRpVR0tSwrQtp1+p/4Bk7D7M45M/Ot/uGHu+Psmf+c+eY753wnbJpmyIfGgvmgiv6WgkKQBwzwE3wBr0AnuAta6ZgnhT0aFuY2ghoyGdH4bS+4Dc6CZjCkdWVhWIPF4JoZnB6CDToeVE8sBidNPt0E5UEZrgG9Jr8GwHa/huMgaWZXDSDsxfBuc/jUBAwdw3Fz+NWoang5SJkjQwm7P3seLqQEX2LLfgfBdZcMORMcBqNDwekPqASP0uXhpjR3Ok0x/fUw9HIHGGVdw5DuRtzJpgxDsJui2qOWmuaAOuuLbHivz4YLwLgQj/aAXNmwuItlHhtbA7pAG5jEZHgKWCcbrhUTIY+NPQVjqFFObbYMi/hc6aOhl2AJ9TKnFoIyYXgemKEzJQXVVkyR3oFVzKZFuqw2qHdyFPKhrHPgMoWC3fRjRtNVVg+7SR5IiqmXxUt60cG0CK/vTIZniZVCmcKJF0C3ZNjKBqvJ9Hrwm46tsN1EkCoRQ/M3fBjvs6GrYAvdwHEfGcd1qBaGkwoxrKI+xjz83yJ0iLFHApd46X4xX+M+WECh4lepCNUIcpnMijrEWtAvTRHrbOd8FZNG8uA2Nf0hpmwtjBPwpQ5T0GPS/+tBAZhIq+b3Lu09EyHRwRgO+0C+7dhWcII+PwCf6Sk/Aa9d2vtn+A7nyASugJiD6YSDQcOlvVbxiCaAN8xrs3sgprBiac/QhlhnzjUo6JuZM0UlDS5FPtoQIdNlPYJTWUihFaDex+9Pg6T1KHJAJ2NI7ASllA28hEQ/KJIXoSlwgKlnh+jFe+GjLtwIPtjfyktUt+UaUZWqvw7H3oJD1peI7eQdoF1xWa+zQikHH13OmwqmOxxP0EiZtgK/DRwNuIcHwSeXc2K01WAPhbhKBb5hBNTVbskVH7fqpZGhbJUNtYF83fqwQSXPbOsGjb6etwx2gcEsmT3iFAZeNmUqaMeHSz2qu0k6W15Rqsx3B2i0D+xXGAHTFrRVlEeFuVoqH+ku6VNUbDkPzlAtg30nVK66i8rRIjAbTKaSQVQyN0DD6nOqcLZQld9TLfmvAAMAeMcvp3eCFqQAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkFFRTU5NDA0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFFRTU5NDE0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQUVFNTkzRTRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQUVFNTkzRjRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuDFfX8AAANASURBVHjazJlZSBVRGMfHcWlB0xZM68GKukQLYaGkmEUR2EsvRfQS+BSJPUQE+lTR8hqIZY8hFS0ERVCRoW3gpUApghYpszLTVnCB3O70/+K7MAwzc78Z58z4hx8XzpzvzJ+Zc+d85ztphmFoU9BsUAoq+XcFyAc5QAfD4BfoBp3gCWjnNl9K82mYzO0FVWwyw0NsD3gIroBWkPB0ZzLsgc3grhGcnoE9XjxIOxaCC4Y6tYC1QRmuAj2Geg2CA1M1XAsmjHDVANL8GK4zolMz0L0YrjWiV5PU8HYw6TBIf8imD6UynA96HYKPg3mgMUTDY6DUzXCzQ+AxSz+r6QEQZz4HbLoDZNkZrnAIoOlRZjN1Gk3XS0zty/gTFaRq7Ay3uAR8BcU2ps/z9QJTWw74HrDhTyDbbHg9SKQI+sb9rKa3mV8ZmAt+KJjP1TS+zinFPkqEUqQdBeAOKLa0UwIzpqlXtcYpIKWIO4RBZPoRKNfC10YQI8MlYLkwaAB8ABsiMDwDbKU8dgtIFwRMgJ3guRadKpNPWBMa7tOi1WoyHJPuTsC4oN+IQsOLM3gPJlEWqOE/neMGBqwDeYoMz6G8c0I4h6eFyHBC8A2eVoaH8JutaPwuUA/+uvSht1sHKgTjTWZwjUCVYdrK3xT0iwkND+lc5FClUQ9fINHCRYY7FBrWPSz5Er2lAR9H9P+hpfYGl64OCmPadQ7ojcDwOJetysBMQX/6mrWS4d+cIoYtMnAEnBT2fwVeJufYxZBMFoKFlrajQtOX/uczvEtIB50Kdgn1lt3JGdANltjsXE64jPMnuQ1LPuFJcFrBE11gzQXAUnAPFNk86esO4zSBfmu5lVa9toCf8DC4Ba6C22DEdO01KDLdP5fLr1Z94X2ibV1ilWVQ1XrDpvPAU4c+u1KVqvaHXI7q43ltp3PSYmDDNCgGPrCUD1wN6y5lqzAUN89baX1Y55Jn2LrPRUffRwaHwWhIZs/aTQM/hzLlDp+coPRReprk5cgrkyvz7wM0+hOcAvOlPvwcLNIp526ux1H5aJbHeFpVX4Br4LLXWoffk9CkVnLlaBNYAxaBXJBpMjfIy+o7EAdtfIyb8HPDfwIMAM1WPs8F9tcxAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-button-close:hover{transform:rotate(180deg)}.iziModal .iziModal-button:hover{opacity:.8}.iziModal .iziModal-header.iziModal-noSubtitle{height:auto;padding:10px 15px 12px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{font-size:23px;padding-right:13px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-title{font-size:15px;margin:3px 0 0;font-weight:400}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-buttons{right:6px;margin:-16px 0 0}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-button{height:30px;width:30px}.iziModal-rtl{direction:rtl}.iziModal-rtl .iziModal-header{padding:14px 18px 15px 40px}.iziModal-rtl .iziModal-header-icon{float:right;padding:0 0 0 15px}.iziModal-rtl .iziModal-header-buttons{right:initial;left:10px}.iziModal-rtl .iziModal-button{float:left}.iziModal-rtl .iziModal-header-subtitle,.iziModal-rtl .iziModal-header-title{text-align:right;font-family:Tahoma,'Lato',Arial;font-weight:500}.iziModal-rtl .iziModal-header.iziModal-noSubtitle{padding:10px 15px 12px 40px}.iziModal-rtl .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{padding:0 0 0 13px}.iziModal.iziModal-light .iziModal-header-icon{color:rgba(0,0,0,.5)}.iziModal.iziModal-light .iziModal-header-title{color:#000}.iziModal.iziModal-light .iziModal-header-subtitle{color:rgba(0,0,0,.6)}.iziModal.iziModal-light .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQTU1RUZDNzRFODQxMUU2ODAxOEUwQzg0QjBDQjI3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NEM4MTU1MEI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENDMkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZjYzMwMmE1LWFlMjEtNDI3ZS1hMmE4LTJlYjhlMmZlY2E3NSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdmYmU3NGE3LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po24QssAAANtSURBVHja3JlJaBRBFIa7ZxyTSXADHUkikuAawZNLEOOGGrwJQYko8R4RBQ+OICoqghJQUVwPYjzFY0QUBQU1kogoKO6CG0pcIwbiNibj/8JraNvu6Xo9NTOtP3xzSKe6/65+Ve9VlWlkp2IwGUwFE0E5GA4G8/U+0APegWfgHrgPuq0bpNNp0QPNgEYngHlgGpuMCNp2s+kr4BYM/8ql4WqwHEzP4mXteg7awOW0YlerPnQIaARLNBl1ikLlBDw/1WF4ClgHKozc6idogekz2RheANbaBlE+dB4chfF+qeHF3LOF0FWwF6b7nBe8RvecApolzQVr3C64GR4H1huFV51pmvV+hikRbABFRji0GqarMxluAGON8CgKmmA65mZ4DFhqhE9VPP//ZXgZiCmm1t1gI6XWAAY+gF0gCe4qtqlHL8fthkeBWsXGreA6eMgPviEw+x5sBZ3gAdjPCcNPI8Fsu+FawUCzz40psEfRNJndBl7b/pZmVLTQMkzJo0bQSys43iWm3cxS+DUJOmoSwqKCRmEZWKkYv6RSMBPc5lqXRGm0A1Q6XiaT2aSwo8jrK/qZwZlFIlXTusxa6iXDddTdARpnMj2ek9AWjWYH7h/lubcs4A28THdyAdOl0ezAmKNBNyLLiT0Btjti9zuHg06zpJKIprohwXNypcu1OIdGjYbnxCLGPyYy/EPDfejzbwYvXK59AzuFGdFLKTL8WYNZ59RVzGESJCNm0teI40E6zNIA2wSaA2REP32iaW0omKXRbJKTUVyYEVV0J8oxvEiQmiUZrFSz6XNkuJe3nBKCelaSbjOZrhLsd1BInYxweSeJq9YA6dYtuZCBI4JZ6jGW/W+sebhd0DAaMIO5mTYFW1+X6GeQ7TO3W0WyQj3cw0ulBg4nSUbcAY7zPVYp7ip95FXOH29Hb35AOPjypWMIh7PORSjFZVsIzdKW7AWvfYnTVNWHyCytHw+jd1Nehqks3KepvtChUzD7yGvE2/cduqxldQF1EWZb/PbWLF3jAVgo0WrlkN+c6hSd+rzlaSuaR7O0oX0wyIa2pVAdGaj0HCUVOqIq4dVwrg5lmmG2w+8f/9tjL6foYHE+Gy8Xtv3CPUpf7WauDxadKuIwoeNbOmoYDYbZ0ns/1wxUC7ykigs8sS/LpEe3vwUYALiKDDDSgEiSAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpEQTg1NTA2NTRFODQxMUU2OTQ0N0VERjY2Q0M5ODYwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCQkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCQUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFlNTQwYzczLTVhZmEtNDJlYi04YzJlLWMwMzFlYmFiYmIyNiIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVkYmRiMzM1LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvIicdUAAAOvSURBVHjaxJlZbA1hFMe/qaItUUsspakg1laJ7UUisQuRvvTFA15sQSRCLBFrQryhHqxNHxEPtaQ8CCUkIrVVRbVBJdZYSrXVonr9/3pGxnTunZk78/X+k1+aO+1899/vnnvO+c4YKpi6ghEgW34OBD1BKjBAM6gH78Fz8BhUyrW/ikQivt7QiNMozU0DE8RkJx/3fgCPwA1QHvHp2K/hHJAPJqpwVA2K4flW2IZ7gyVgptKjh6AQxl+GYZi7uRr0U3rVBIpg+nIQwwvACpCkOk4XwYlosR3LMGN1qUqMroGDTqaNGDu7SiVWl+D3iP2i00c9HqxUidd8wzDy3HY4HRwCfWzXz4L7Lm+QKfHeOUTTLWAzdro6muH1YIbDjculWrmpUEM2YYXcCNMt9pAYE8WsWYLdlAxaNYTGMDDHKYYXBVy4B0jTFM/5iOcUc1fM/2JcnItNAYtBNzGtQ33BVHDV3OHpARqhV6CLLKpTs8yQYHxOCrDQO7AV1Gg2PBJhMYiGh4MMnx1eLkixXKsFuzSbZrrMpeGxHnqFFtvrTWCbhILd9AuNpnPMHXaTtZD0kl1mRdwSxXSjJsNZfONjcmqIJR5p3lp6Y+sXrAzsBz/lNXvmtZYMFKbqafi0pKQgKpOSPhmsC5BxXEs1Fz4fUr/7TWMe/q9bC2s3tJs1Df/Q/B5PwAZwJYS1WpPlo0zRZJZziL2gQU7I1GyHL7QSD26taVOytI26DpinxKypApvpk+C6dHlMnXskbUbT1yTpN3WJHWB327UCS3hUoc+tA/VyxP/ost5rGq7QWZnAdoe0eZgnYweDbgmgkoafgk8aTfNgsMNmmqfhC+Czj3V4T3mSBH255kxB0ztd4tNNDJkas2CUdkAKHQ3yAtxfijj/bdb7Cumyhmoyexzcs6Qwv2qUbPKvJDOtnNFklrF3R5qneA2XYHe/2A+ht1Xb3FZXRY1XTAjFTgtxJ45qKtWDpZK1g6dhIQuvBzjcy8FgQ6y8Nw+sCdnwL1Dn8jdMe6m2a+3ma9ESNUdOC1VixSH3bnPiYyraswnO0fqDIQkyW8WmCWab7b+I9TCF3+x0j2e+MPUA7LPGrVfD1F3VNsrPVR0zhS8BB5x21muzYa1Sy1Tb4y4d4qOwIi9Pk/wcj1gV50p5zQjJKAsJH8KcY4vpdYrjV0w9HMxxHjfKNpfwdMyRNuAmyy2M1vq5OegBNFMmR9lSHDizSLPMJGjuO2BZfSOtLKvpMylUvh/d/hFgAOH4+ibxGTZuAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCRkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCRUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzM2MwOWZiLWJjOTEtNGVlZS05MDM1LTRkMmU2ZmE1ZjBmMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv1Q9Z8AAAOXSURBVHjaxJlLbA1RGMfPjIs+EvoIRYt4FVUl2EkkRTxKUqQbG0SEho2FjUQ8YtEICbEgTdFYeK1KaGvVeoUltyStt0UlNE17aWhV2+v/9X5XJpMzc8/0zpn5kl+aO3Nm7r/fnPu9xhDp2URQDJbw3xkgB2QCAwyAPvANfARvQDsfG7V4PO7pC40xCiVxa8AKFjnOw7VdoA08BtG4R8VeBZeCKrBS+GPvQAM0P/NbcB7YBdYJPfYKXIXwL34IJm8eBFOFXusH9RDdnI7gLWA/MEVwdh/UOe1tN8G0V3eLcKwFXJCJNl08G5ZYsrWgWnZCJng5OOBwo1iAoisMw6hMJXgyOOywVW7xj+9BgKL3QHSxm+C9IF9y4U2GMlStRPQP8Jbp9lFwhJwE0RHrgaSV8N6xG238l7Zjtfx3K58/Bd7zsWngIqdnP2we2ACa7B7e6RL6joK5EtHNfL7b5u1Bn7dGFbycYRVM/8WyFJnuJK+z2iVwzFrMcF1h+Cx4ClhtFVyu8CW54ITE01EwFMAPcH1SMJWIqxQvItE1YHEIsXkhtkUhCV4ApiteFOPadn4IgseDMooSSxVrhWFwmkvCsKw06WGhKLhHhGuzSHChh9pZ5cc1oFFwfoTTsWrWqQCvXdZQEpkDsjUJziSv3Qu43k3LTA1BXqvRY/4DMjTd/yu4niJVm9wslCjcb4QE/9Qo+Al44baAmgpKCIqC+01OBLrsr8/de8zkiYwuUxWSq7iuM8JhantIqfYItkOepKBysnbycIfPXYKqURL6DhaBCQrrKcZHTa5loyEIJgHXwG3F9TQV+pxMGK0BiaTHn2OLEjcURbdi7XBSMO3jTxoEjtg+7wDnhG3spSD6F3hk7Tjoxnc0CJ5k+5wFCrhplYl2mmI24nyvvWumAE9z2zIfBW8WifnxIHc2yb6xiHtEoms0/hlGtpAPHCkgNDjFyZngPN88COvkPpEe+XGHbFcD7z53C+ybwKEAo0UPZ8QCybkmiL3sNvkheygSI08RYOSQiaUhd52sUpIZLWwJsYqkkdcZeHfIS66nc9XcZQRpNBY7C7F9Yy1OtonErDgSgNhGcEXmWa/VFA1O9onE6y4dRqGtXuVtkpf2iDy8EVR6GLykMnrsNFC867QF0hH8v3MVicFcuYdKy56uqQx4SukWQj3NOtJtQIt4ckSvbmdziMqy7HcS9xv0cn/Xwdn0A1drnl/d/hNgAGQa6Lgarp6BAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-loader{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;position:absolute;left:0;right:0;top:0;bottom:0;z-index:9}.iziModal .iziModal-content-loader{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%}.iziModal .iziModal-content:after,.iziModal .iziModal-content:before{content:'';display:table}.iziModal .iziModal-content:after{clear:both}.iziModal .iziModal-content{zoom:1;width:100%;-webkit-overflow-scrolling:touch}.iziModal .iziModal-wrap{width:100%;position:relative;-webkit-overflow-scrolling:touch;overflow-scrolling:touch}.iziModal .iziModal-iframe{border:0;margin:0 0 -6px;width:100%;transition:height .3s ease}.iziModal-overlay{display:block;position:fixed;top:0;left:0;height:100%;width:100%}.iziModal-navigate{position:fixed;left:0;right:0;top:0;bottom:0;pointer-events:none}.iziModal-navigate-caption{position:absolute;left:10px;top:10px;color:#fff;line-height:16px;font-size:9px;font-family:'Lato',Arial;letter-spacing:.1em;text-indent:0;text-align:center;width:70px;padding:5px 0;text-transform:uppercase;display:none}.iziModal-navigate-caption::after,.iziModal-navigate-caption::before{position:absolute;top:2px;width:20px;height:20px;text-align:center;line-height:14px;font-size:12px;content:'';background-size:100%!important}.iziModal-navigate-caption:before{left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNmFjNjAyMy04OWU0LWE0NDAtYmMxMy1kOTA5MTQ3MmYzYjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDREQ0YwRjA1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDREQ0YwRUY1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNmM0Nzk3Ni1mNzE3LTk5NDAtYTgyYS1mNTdjNmNiYmU0NWMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowZGVmYTEyZC01MzM0LTExZTYtYWRkYi04Y2NmYjI5ZTAxNjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oo0ptAAACWklEQVR42uyZTWsTYRSFZybxo4kWk5g2NC5qTAU3Kq30A9udi1oXolV/hWuhv6R/Q6utioi4LbbVFHemamlRU0OCEk0wZjwXzwtDoBDopHMHcuFJMplZnLm5ue+589qu61qeOApyYAjEgG0FEyLqN/gKiqBuTtgewWlwCZw056xgwwirgU3wxSv4NJgCUV5YBRXQDEhsBJwCSSauBVZFdJRlIJk9Av7wbj577jDIOENtRmPVwcsw6KfAAvikRKzEDlhnhuU/lRPBWaa9wsxqC6ndPX7OiOA4D8qW3vjO9z7H0w3+KhZstNmOFbLoCQ6DYGmL+bAInmGfLFC4asFXwRJIgB+goVmw+I7HXO+/gevGnGgUPEGxktkSmAMbWmt4HDwBKS6XN1jDKrvEFYoVK7oLroE3h93Woh1eNwqWafJ/gQV65vM+ail34mc6EZwBK2CAx8fAIjjeBYMzDT4cVHCEXtRbRvEu/Nr9HCIOnGGp15vgEec9KYn74B0nAT/CZnv86FcNvwK3wENwAjwAs2Bbs5d4CW5zir0AXvv8p+tKH34B5lkW4h2egRHtbu05uMMHHWfB0zC4NRF5l09kzvE4rd2tyUJyjy4tz7akZqXbL8QETbJ/FsMgWOJtb6brCQ5YsBsC8Uab63DVkkgqFpzie93h8OhScFah2LTHi5ccWroaLd5l6//+hpYQoWP05LKqFs2WQYbTsNxAi+5fxpWmdfh7HS7XhwSzG+H3a2JnvZsyktmLbdOFhpDMvrf4sN1u2/aK0cwMcmYLcturweceW+CnOfFPgAEA8uWFFylBJYoAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal-navigate-caption:after{right:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADhmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjI2YWM2MDIzLTg5ZTQtYTQ0MC1iYzEzLWQ5MDkxNDcyZjNiMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NERDRjBGMDUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NERDRjBFRjUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2YzQ3OTc2LWY3MTctOTk0MC1hODJhLWY1N2M2Y2JiZTQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBkZWZhMTJkLTUzMzQtMTFlNi1hZGRiLThjY2ZiMjllMDE2NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuijSm0AAAKbSURBVFhH7ZnJj0xRGEerzFoIMTaCZmOIedhaiJj55yz8DaYdNhIJEUMQbCTG3rQ02hDSiEY553XdTpHS3nv96taV9ElO6lVt6peb7933fffVG41GrYW5uBaX4EysYzcw1Fd8hc/wM2a0Bl6Nm3BW9i0dDPsQX/olBF6FO72AH/gG3+N3jL3KBpqGC3ERTsGfeAsHDTyHi71oCXzBe/gaU2A5bscZOIxXTb8OLQNX9i6mElYsg/voqruwfQb2BhODWgqpMYDv0NLsNXC4yd42P1PEwNJj4HBTWdipErLVDfxfMRm408QMvBu3jV6WJ1Zg9/rbeBOP+UNZYgX+iE/Rp+lpPIKliBXYB9IhtPNy3z/T/F6YmDXsChvyBc7Gs3gACxEzsDzBg9iPPXgO92NuYgeWx2h3+AhtaM7jPsyF7aV37XR8gNZYO/pwKY51+xPkG27Fk2joT3gCr2A7NuJ6HMkTeAPadlp3VeMChF7G0P6X3dmfjAXOUxIj6LZkv1ylNuStDZejkL+PS96ScFzRqnDAtI5PoTefvbg7iNNOOwqVRCfYghdxBbpHH8Y7+DcKlUTV7MLLaNghPIrjhf2N2IF34AVcjE44hrXHyE3MwE6/loEzpEcIlqKjeyFiBe7FS+he/gENewMLEyuwXdo8dGWP43UsRazA9g7uDNbwNX8oS8watlsz+ISIGbgSJgN3GgOHlnFq8zNFQraGgT1iFc9iUyU0XsMGHhy9zh6XbvCp4ZuBBWglDBj4OdqLeu0+uRJTwMZ+Dbp/e21P3m97yWe2snsw1LTHmz5C/9lQdwhfGbiq89GwvrrwUT4UAouhN6MzloTRpVuEYI5O9urZYXtrYPGQw2OlZegM163QhrJMfWVgyTq0Qq32C/N7uPz9OknWAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal-navigate>button{position:fixed;bottom:0;top:0;border:0;height:100%;width:84px;background-size:100%!important;cursor:pointer;padding:0;opacity:.2;transition:opacity .3s ease;pointer-events:all;margin:0;outline:0}.iziModal-navigate>button:hover{opacity:1}.iziModal-navigate-prev{left:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5sGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2NDkyYzcxMy05ZDM0LTZlNGQtYmUwNi1hMDMyY2Q4NDVjNGU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QjIzMUMxODU3RjcxMUU2ODUzRkRBRjE5RDhDQjZBRDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpjZmMwNzVmNC1kODA3LWI0NDMtYWIwYS02YWVhZjRjMDgxZWE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmNmYzA3NWY0LWQ4MDctYjQ0My1hYjBhLTZhZWFmNGMwODFlYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDo1Ni0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjA0LTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvAvv7QAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAmdJREFUeNrs1LsJQkEQhtH/mtmBgQ8QA7tQK1e7MBBBMbADwzUZEyuQveeDCXbD4TBDay3SWJpYgYCXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXv/WJskpyQJ4jQH7Mcmu0C+BV+/Y5/VeF/oV8Ood+7dpDfDqHvsrySHJBXjBDrxgB16wAy/YgRfswAt24AU78IIdeMEOPOywAw+7gIcdeMEOvGAHXrADL9iBF+zAC3bgBTvwsMMOPOwCHnYBD7uAhx14wQ68YAdesAMv2IEX7MDDDjvwsAt42AU87AIedgEPu4CHXcDDDrxgB16wAw877MDDDjvwsAt42AU87AIedgEPu4CHXcDDLuBhB16wAw877MDDLuBhF/CwC3jYBTzsAh52AQ+7gIddwEtjB3+tS/78+Z/V5d9iATz0Ah56AQ+9gIdewEMv4KEX8NALeOgFPPQCHnoBDz3wgh54QQ889NADDz30wEMv4KEX8NALeOgFPPQCHnoBD72Ahx54QQ+8oAde0AMv6IEX9MBDDz3w0EMPPPQCHnoBD72Ah17AQw+8FUAPvKAHXtADL+iBF/TAC3rgBT3wgh546KEHHnrogYdewEMv4KEHXtADL+iBF/TAC3rgBT3wgh54QQ+8oAde0AMv6IGHHnrgoU/yrgFe3aO/JdknuQOv3tGfC/tjjEsYWmsoyIWXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXvqnPgAAAP//AwCEcoCBRabYzAAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal-navigate-next{right:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAB3SAAAd0gEUasEwAAA7pGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjEyLTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDphZjljN2Q2MC00MTg2LWE3NGQtYTBiMS1mMGU5ODUwYzg2ZGY8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjAxNjJjMmE3LWZmMjYtYzE0ZC05Yjg4LTc2MGM2NzAxYjYzNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1MTowNy0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFmOWM3ZDYwLTQxODYtYTc0ZC1hMGIxLWYwZTk4NTBjODZkZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTg4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+nbt1mgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACQklEQVR42uzSsQ3CQAAEQTdiOyGg/wrciJ0QUMYSECEKAP3PSdvAaZZqkWbJCQJeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXsBLwEvAS8BLwEvAS8BLwEvAS8BLwEvAC3gJeAl4CXgJ+D9vrY7qBgLwo7dVZ+89oAd+5Pbq6nPQAz9s9+rZ96AHHnoBD72Ah17AQy/goRfw0At46AU89AIeegEPvYCHHnhBD7ygBx566IGHHnrgoRfw0At46AU89AIeegEPvYCHXsBDL+ChB17QAy/ogRf0wAt64KGHHnjooQceegEPvYCHXsBDL+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADDz30wEPvI+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADL+iBF/TAC3rgoZ8ePRDAAy/YgRfswAt24AU78IIdeMEOvGAHXrADL9iBhx124GEX8LADL9iBF+zAC3bgBTvwgh14wQ68YAcedtiBh13Awy7gYRfwsAMv2IEX7MALduAFO/CCHXjYYQcedgEPu4CHXcDDLuBhF/CwA+8E2IEX7MALduAFO/Cwww487AIedgEPu4CHXcDDLuBhF/CwC3jYgRfswMMOO/CwC3jYBTzsAh52AQ+7gIddwMMu4GEX8LBravB7dcEO/Ext1Qk78DO1VgfswEvAS8BLwEvAS8BLwEvAS8BLwEvAS8ALeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXgBLwEvAS8BLwEvAS/9shcAAAD//wMAtAygvJrkwJUAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isAttachedTop .iziModal-header{border-top-left-radius:0;border-top-right-radius:0}.iziModal.isAttachedTop{margin-top:0!important;margin-bottom:auto!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.iziModal.isAttachedBottom{margin-top:auto!important;margin-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.iziModal.isFullscreen{max-width:100%!important;margin:0!important;height:100%!important}.iziModal.isAttached,.iziModal.isFullscreen{border-radius:0!important}.iziModal.hasScroll .iziModal-wrap{overflow-y:auto;overflow-x:hidden}html.iziModal-isAttached,html.iziModal-isOverflow{overflow:hidden}html.iziModal-isAttached body,html.iziModal-isOverflow body{overflow-y:scroll;position:relative}.iziModal ::-webkit-scrollbar{overflow:visible;height:7px;width:7px}.iziModal ::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);background-clip:padding-box;border:solid transparent;border-width:0;min-height:28px;padding:100px 0 0;box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)}.iziModal ::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0,.4)}.iziModal ::-webkit-scrollbar-button{height:0;width:0}.iziModal ::-webkit-scrollbar-track{background-clip:padding-box;border:solid transparent;border-width:0 0 0 2px}.iziModal.transitionIn .iziModal-header{-webkit-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-header .iziModal-header-icon{-webkit-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-button{-webkit-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-iframe,.iziModal.transitionIn .iziModal-wrap{-webkit-animation:iziM-fadeIn 1.3s;-moz-animation:iziM-fadeIn 1.3s;animation:iziM-fadeIn 1.3s}.iziModal.transitionIn .iziModal-header{-webkit-animation-delay:0s;-moz-animation:0s;animation-delay:0s}.iziModal.transitionIn .iziModal-header .iziModal-header-icon,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation-delay:.4s;-moz-animation:.4s;animation-delay:.4s}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle{-webkit-animation-delay:.5s;-moz-animation:.5s;animation-delay:.5s}.iziModal.transitionOut .iziModal-header,.iziModal.transitionOut .iziModal-header *{transition:none!important}.iziModal .fadeOut,.iziModal-navigate.fadeOut,.iziModal-overlay.fadeOut,.iziModal.fadeOut{-webkit-animation:iziM-fadeOut .5s;-moz-animation:iziM-fadeOut .5s;animation:iziM-fadeOut .5s;animation-fill-mode:forwards}.iziModal .fadeIn,.iziModal-navigate.fadeIn,.iziModal-overlay.fadeIn,.iziModal.fadeIn{-webkit-animation:iziM-fadeIn .5s;-moz-animation:iziM-fadeIn .5s;animation:iziM-fadeIn .5s}.iziModal-overlay.comingIn,.iziModal.comingIn{-webkit-animation:iziM-comingIn .5s ease;-moz-animation:iziM-comingIn .5s ease;animation:iziM-comingIn .5s ease}.iziModal-overlay.comingOut,.iziModal.comingOut{-webkit-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);-moz-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation-fill-mode:forwards}.iziModal-overlay.bounceInDown,.iziModal.bounceInDown{-webkit-animation:iziM-bounceInDown .7s ease;animation:iziM-bounceInDown .7s ease}.iziModal-overlay.bounceOutDown,.iziModal.bounceOutDown{-webkit-animation:iziM-bounceOutDown .7s ease;animation:iziM-bounceOutDown .7s ease}.iziModal-overlay.bounceInUp,.iziModal.bounceInUp{-webkit-animation:iziM-bounceInUp .7s ease;animation:iziM-bounceInUp .7s ease}.iziModal-overlay.bounceOutUp,.iziModal.bounceOutUp{-webkit-animation:iziM-bounceOutUp .7s ease;animation:iziM-bounceOutUp .7s ease}.iziModal-overlay.fadeInDown,.iziModal.fadeInDown{-webkit-animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutDown,.iziModal.fadeOutDown{-webkit-animation:iziM-fadeOutDown .5s ease;animation:iziM-fadeOutDown .5s ease}.iziModal-overlay.fadeInUp,.iziModal.fadeInUp{-webkit-animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutUp,.iziModal.fadeOutUp{-webkit-animation:iziM-fadeOutUp .5s ease;animation:iziM-fadeOutUp .5s ease}.iziModal-overlay.fadeInLeft,.iziModal.fadeInLeft{-webkit-animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutLeft,.iziModal.fadeOutLeft{-webkit-animation:iziM-fadeOutLeft .5s ease;animation:iziM-fadeOutLeft .5s ease}.iziModal-overlay.fadeInRight,.iziModal.fadeInRight{-webkit-animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutRight,.iziModal.fadeOutRight{-webkit-animation:iziM-fadeOutRight .5s ease;animation:iziM-fadeOutRight .5s ease}.iziModal-overlay.flipInX,.iziModal.flipInX{-webkit-animation:iziM-flipInX .7s ease;animation:iziM-flipInX .7s ease}.iziModal-overlay.flipOutX,.iziModal.flipOutX{-webkit-animation:iziM-flipOutX .7s ease;animation:iziM-flipOutX .7s ease}@-webkit-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-moz-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-webkit-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@-moz-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@-webkit-keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@-moz-keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@-moz-keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes iziM-slideIn{0%{opacity:0;-webkit-transform:translateX(50px)}to{opacity:1;-webkit-transform:translateX(0)}}@-moz-keyframes iziM-slideIn{0%{opacity:0;-moz-transform:translateX(50px)}to{opacity:1;-moz-transform:translateX(0)}}@keyframes iziM-slideIn{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes iziM-slideDown{0%{opacity:0;-webkit-transform:scale(1,0) translateY(-40px);-webkit-transform-origin:center top}}@-moz-keyframes iziM-slideDown{0%{opacity:0;-moz-transform:scale(1,0) translateY(-40px);-moz-transform-origin:center top}}@keyframes iziM-slideDown{0%{opacity:0;transform:scale(1,0) translateY(-40px);transform-origin:center top}}@-webkit-keyframes iziM-revealIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,1)}}@-moz-keyframes iziM-revealIn{0%{opacity:0;-moz-transform:scale3d(.3,.3,1)}}@keyframes iziM-revealIn{0%{opacity:0;transform:scale3d(.3,.3,1)}}@-webkit-keyframes iziM-bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes iziM-bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@-webkit-keyframes iziM-bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes iziM-bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}}@-webkit-keyframes iziM-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@keyframes iziM-fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@-webkit-keyframes iziM-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@keyframes iziM-fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@-webkit-keyframes iziM-fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@keyframes iziM-fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@-webkit-keyframes iziM-fadeInRight{0%{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInRight{0%{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@keyframes iziM-fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@-webkit-keyframes iziM-flipInX{0%{-webkit-transform:perspective(400px) rotateX(60deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}to{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes iziM-flipInX{0%{transform:perspective(400px) rotateX(60deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}to{transform:perspective(400px) rotateX(0deg);opacity:1}}@-webkit-keyframes iziM-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}@keyframes iziM-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}/* To be replaced in `head` to control optm data location */.litespeed-wrap h2.nav-tab-wrapper,
.litespeed-wrap h3.nav-tab-wrapper {
	margin-bottom: 0;
}

.litespeed-wrap h2 .nav-tab {
	font-size: 14px;
}

.litespeed-wrap .striped > tbody > :nth-child(odd),
.litespeed-wrap ul.striped > :nth-child(odd),
.litespeed-wrap .alternate {
	background-color: #f9f9f9;
}

.litespeed-wrap .notice,
.litespeed-wrap div.updated,
.litespeed-wrap div.error {
	border-left: 4px solid #fff;
	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
	padding: 1px 12px;
}

.litespeed-wrap .notice-success,
.litespeed-wrap div.updated {
	border-left-color: #46b450;
}

.litespeed-wrap .notice-success.notice-alt {
	background-color: #ecf7ed;
}

.litespeed-wrap .notice-warning {
	border-left-color: #ffb900;
}

.litespeed-wrap .notice-warning.notice-alt {
	background-color: #fff8e5;
}

.litespeed-wrap .notice-error,
.litespeed-wrap div.error {
	border-left-color: #dc3232;
}

.litespeed-wrap .notice-error.notice-alt {
	background-color: #fbeaea;
}

.litespeed-wrap .notice-info {
	border-left-color: #00a0d2;
}

.litespeed-wrap .notice-info.notice-alt {
	background-color: #e5f5fa;
}
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
	<!ENTITY ns_flows "http://ns.adobe.com/Flows/1.0/">
	<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
	<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
	<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
	 x="0px" y="0px" width="600px" height="400px" viewBox="0 -125 600 400" enable-background="new 0 -125 600 400"
	 xml:space="preserve">
<g>
	<g>
		<path fill="#5C6B73" d="M461.045-49.469c-13.746-18.064-33.701-29.694-56.178-32.739c-17.676-2.396-35.33,0.73-51.08,9.056
			c-2.104,1.107-4.16,2.307-6.145,3.575l-7.078,5.321l18.271,24.019l5.572-4.232c1.121-0.701,2.289-1.375,3.479-2.007
			c10.148-5.354,21.523-7.373,32.912-5.834c14.51,1.972,27.369,9.47,36.232,21.117c8.871,11.647,12.662,26.047,10.693,40.55
			c-4.064,29.937-31.746,50.981-61.664,46.925c-11.383-1.543-21.818-6.526-30.17-14.401c-0.998-0.947-1.939-1.905-2.813-2.851
			l-68.845-90.48l-0.023,0.283l-7.256-9.53l-0.784-0.954c-1.647-1.833-3.396-3.62-5.175-5.291
			c-13.519-12.753-30.406-20.811-48.829-23.319c-48.422-6.575-93.197,27.483-99.769,75.922
			c-6.575,48.428,27.48,93.187,75.916,99.754c18.43,2.507,36.847-0.757,53.292-9.446c0.671-0.351,1.313-0.729,1.969-1.09
			l-18.559-24.393c-10.197,4.793-21.403,6.56-32.642,5.034c-31.951-4.343-54.41-33.854-50.075-65.801
			c4.338-31.951,33.827-54.404,65.807-50.077c12.145,1.649,23.276,6.962,32.2,15.379c1.041,0.979,2.059,2.011,3.035,3.067
			l54.112,71.125l0.025-0.288l21.975,28.879l0.756,0.92c1.545,1.725,3.219,3.448,4.982,5.112
			C348.148,76.053,364.338,83.777,382,86.177c3.865,0.533,7.695,0.78,11.494,0.78c41.813-0.009,78.352-30.991,84.137-73.548
			C480.678-9.075,474.787-31.406,461.045-49.469z"/>
		<path fill="#66CCCA" d="M313.695,70.07c-0.279-0.289-0.586-0.577-0.854-0.866l-34.862-45.783
			c-1.517-1.696-3.168-3.388-4.907-5.031C260.115,6.169,243.928-1.554,226.262-3.957c-1.688-0.225-3.364-0.39-5.052-0.513h-2.586
			l12.864,16.837c0.274,0.28,0.587,0.575,0.851,0.86l34.866,45.787c1.521,1.694,3.168,3.387,4.909,5.023
			c12.959,12.22,29.142,19.95,46.806,22.342c1.689,0.236,3.369,0.395,5.055,0.521h2.58L313.695,70.07z"/>
	</g>
	<g>
		<path fill="#66CCCA" d="M305.638,230.569c-1.197-1.176-2.656-1.771-4.332-1.771c-1.672,0-3.13,0.598-4.329,1.774
			c-1.213,1.192-1.827,2.652-1.827,4.346c0,1.718,0.614,3.191,1.827,4.384c1.199,1.177,2.657,1.772,4.329,1.772
			c1.681,0,3.14-0.596,4.338-1.775c1.209-1.194,1.822-2.668,1.822-4.381C307.465,233.219,306.851,231.756,305.638,230.569z"/>
		<g>
			<path fill="#5C6B73" d="M385.161,157.189v-0.129v-0.412h-0.106c-0.146-0.635-0.459-1.222-0.913-1.715
				c-0.102-0.122-0.262-0.309-0.476-0.477c-0.064-0.049-0.136-0.089-0.206-0.126l-0.007-0.003l-0.141-0.077
				c-0.18-0.104-0.325-0.181-0.475-0.238c-0.255-0.11-0.54-0.192-0.833-0.239c-0.059-0.019-0.106-0.03-0.156-0.035
				c-0.147-0.02-0.262-0.022-0.381-0.022h-0.001h-0.078c-0.01,0-0.021,0-0.032,0c-0.171,0-0.281,0.003-0.393,0.018
				c-0.074,0.01-0.123,0.021-0.173,0.034c-0.298,0.053-0.581,0.135-0.854,0.248c-0.138,0.053-0.282,0.132-0.426,0.211l-0.131,0.076
				c-0.125,0.064-0.194,0.103-0.259,0.154c-0.215,0.164-0.377,0.352-0.491,0.493c-0.443,0.477-0.751,1.062-0.898,1.695h-0.068
				l-0.037,0.412v0.129v0.206c-0.007,0.026-0.01,0.06-0.01,0.097v0.031l0.008,0.08l0.002,0.859v27.892v0.127h0.001l-0.001,0.309
				v0.119l0.008,9.874l-0.008,9.864v0.129l0.001,0.31h-0.001v0.129v27.841v0.923c-0.007,0.024-0.01,0.06-0.01,0.099v0.028
				l0.008,0.081l0.002,0.193v0.129v0.412h0.105c0.147,0.634,0.458,1.222,0.914,1.715c0.151,0.187,0.303,0.342,0.476,0.474
				c0.064,0.052,0.135,0.09,0.206,0.126l0.149,0.087c0.2,0.109,0.334,0.184,0.476,0.236c0.257,0.11,0.543,0.192,0.833,0.24
				c0.04,0.015,0.101,0.031,0.161,0.036c0.137,0.016,0.253,0.019,0.374,0.019h0.148c0.119,0,0.235-0.003,0.355-0.018
				c0.078-0.008,0.138-0.024,0.197-0.04c0.269-0.044,0.556-0.126,0.833-0.242c0.122-0.045,0.256-0.119,0.388-0.193l0.165-0.093
				c0.124-0.066,0.194-0.104,0.259-0.155c0.171-0.134,0.324-0.286,0.493-0.496c0.441-0.477,0.75-1.062,0.896-1.693h0.069
				l0.037-0.412v-0.129v-0.207c0.006-0.023,0.01-0.06,0.01-0.098v-0.029l-0.009-0.08l-0.001-0.861v-27.89v-0.129h-0.002l0.002-0.309
				v-0.119l-0.009-9.874l0.009-9.864v-0.129l-0.002-0.31h0.002v-0.129v-27.841v-0.921c0.006-0.026,0.01-0.06,0.01-0.097v-0.031
				l-0.009-0.08L385.161,157.189z"/>
			<path fill="#5C6B73" d="M363.642,223.593c-1.639,0-2.675,1.138-3.592,2.145c-0.222,0.245-0.444,0.488-0.67,0.714
				c-4.262,4.264-9.473,6.425-15.491,6.425c-5.988,0-11.18-2.161-15.434-6.422c-4.259-4.25-6.418-9.46-6.418-15.484
				c0-6.016,2.159-11.215,6.417-15.456c4.265-4.241,9.456-6.394,15.435-6.394c6.017,0,11.23,2.147,15.498,6.377
				c0.248,0.249,0.483,0.513,0.715,0.773c0.901,1.009,1.831,2.057,3.505,2.057c2.104,0,3.817-1.711,3.817-3.815
				c0-1.115-0.523-2.211-1.4-2.933l-0.148-0.173c-0.374-0.419-0.747-0.84-1.138-1.229c-5.729-5.727-12.744-8.63-20.849-8.63
				c-8.073,0-15.071,2.903-20.799,8.63c-5.726,5.726-8.629,12.722-8.629,20.796c0,8.108,2.905,15.124,8.629,20.853
				c5.723,5.725,12.721,8.627,20.799,8.627c8.108,0,15.124-2.903,20.851-8.627l0.327-0.326c1.121-1.104,2.391-2.357,2.391-4.088
				C367.457,225.304,365.746,223.593,363.642,223.593z"/>
			<path fill="#5C6B73" d="M576.27,235.708l0.005-77.972l0.01-0.044c0.016-0.117,0.03-0.235,0.03-0.354
				c0-2.021-1.642-3.662-3.661-3.662c-1.51,0-2.883,0.955-3.417,2.376c-0.148,0.326-0.23,0.693-0.23,1.067v0.106
				c-0.007,0.03-0.012,0.07-0.012,0.109v0.029l0.01,0.092l-0.024,33.375c-0.196-0.216-0.397-0.429-0.603-0.638
				c-5.741-5.738-12.758-8.644-20.866-8.644c-8.074,0-15.071,2.903-20.796,8.629c-5.525,5.519-8.324,12.534-8.324,20.846
				c0,8.285,2.799,15.281,8.322,20.801c5.722,5.725,12.72,8.627,20.796,8.627c8.111,0,15.127-2.903,20.853-8.627
				c0.214-0.221,0.427-0.446,0.643-0.681v4.9c-0.007,0.032-0.011,0.072-0.011,0.113v0.028l0.009,0.094l0.002,0.099
				c0,0.375,0.082,0.744,0.243,1.099c0.535,1.41,1.876,2.34,3.405,2.34c2.019,0,3.66-1.641,3.66-3.658
				c0-0.122-0.014-0.24-0.03-0.359L576.27,235.708z M547.511,232.874c-6.016,0-11.228-2.153-15.486-6.393
				c-4.258-4.239-6.417-9.44-6.417-15.46c0-6.014,2.159-11.224,6.418-15.483c4.262-4.259,9.472-6.418,15.485-6.418
				c6.017,0,11.229,2.159,15.488,6.418c3.182,3.182,5.206,6.927,6.018,11.134l-0.016,8.857c-0.798,4.045-2.821,7.747-6.006,10.925
				C558.741,230.715,553.528,232.874,547.511,232.874z"/>
			<path fill="#5C6B73" d="M424.079,181.547c-8.077,0-15.075,2.903-20.804,8.629c-5.724,5.723-8.625,12.737-8.625,20.846
				c0,8.082,2.901,15.082,8.625,20.799c5.729,5.729,12.729,8.632,20.804,8.632c8.107,0,15.113-2.903,20.825-8.627
				c5.707-5.735,8.602-12.734,8.602-20.804c0-8.103-2.895-15.114-8.602-20.843C439.195,184.45,432.188,181.547,424.079,181.547z
				 M424.079,232.874c-6.021,0-11.235-2.153-15.492-6.393c-4.256-4.242-6.415-9.443-6.415-15.46c0-6.014,2.161-11.224,6.42-15.483
				c4.257-4.259,9.468-6.418,15.487-6.418c6.016,0,11.225,2.159,15.485,6.418c4.257,4.262,6.415,9.47,6.415,15.483
				c0,6.017-2.158,11.218-6.412,15.46C435.309,230.721,430.098,232.874,424.079,232.874z"/>
			<path fill="#5C6B73" d="M505.793,185.807c-2.018,0-3.659,1.644-3.659,3.661c0,0.059,0.007,0.113,0.015,0.168l0.005,29.258
				c0,3.874-1.421,7.229-4.227,9.972c-2.92,2.854-8.329,4.393-11.938,4.393c-4.44,0-9.219-1.772-11.887-4.412
				c-2.829-2.736-4.262-6.083-4.262-9.952v-29.282c0.011-0.052,0.016-0.099,0.016-0.144v-0.032l-0.013-0.106v-0.064l-0.013-0.056
				c-0.15-1.925-1.735-3.402-3.637-3.402c-2.018,0-3.659,1.641-3.659,3.661c0,0.109,0.013,0.22,0.027,0.325l0.015,0.091
				l-0.004,29.413c0.106,6.019,2.166,11.069,6.12,15.02c3.827,3.83,10.474,6.208,17.346,6.208c6.608,0,13.547-2.494,17.264-6.207
				c3.954-3.954,6.014-8.996,6.122-14.988v-29.542l0.01-0.045c0.011-0.091,0.023-0.179,0.023-0.274
				C509.454,187.45,507.813,185.807,505.793,185.807z"/>
		</g>
		<path fill="#3E5059" d="M115.191,239.357c-0.092-0.095-0.187-0.206-0.283-0.318c-0.152-0.178-0.31-0.358-0.465-0.506
			c-2.794-2.598-6.042-4.749-9.574-6.449c-4.631-2.231-9.765-3.672-15.143-4.138c-0.95-0.082-1.949-0.122-2.963-0.122
			c-3.878,0-7.742,0.603-11.48,1.185c-3.692,0.575-7.51,1.169-11.292,1.169c-1.788,0-3.438-0.129-5.043-0.393
			c-8.268-1.365-15.592-5.88-20.096-12.395c-4.826-6.981-6.526-16.369-4.662-25.756c0.082-0.409,0.211-0.807,0.309-1.213
			c1.856-7.615,6.706-14.472,13.219-18.495c4.822-3.003,10.729-4.591,17.084-4.591c2.812,0,5.616,0.314,8.339,0.939
			c6.824,1.563,13.078,5.532,17.159,10.885l0.264,0.371l0.187,0.263l0.011-0.009c0.871,1.217,1.636,2.493,2.275,3.807
			c2.363,4.676,3.521,10.303,3.422,15.948c-0.062,3.489-0.596,6.985-1.633,10.272c-0.406,1.286-0.928,2.533-1.505,3.753
			c-0.891,1.88-1.947,3.669-3.18,5.268c-0.273,0.353-0.589,0.715-0.896,1.076c0.507,0.022,1.028,0.022,1.513,0.064
			c3.187,0.273,6.28,0.909,9.245,1.822c0.109-0.169,0.224-0.342,0.322-0.501c3.759-6.126,5.757-13.316,6.038-20.6
			c0.346-8.969-1.918-18.08-6.795-25.52c-7.132-10.883-20.513-17.642-34.919-17.642c-2.055,0-4.119,0.139-6.136,0.413
			c-16.93,2.294-30.066,14.405-33.725,30.625c-0.271,1.198-0.5,2.413-0.663,3.654c-1.302,9.836,0.305,19.577,4.524,27.428
			c4.163,7.747,11.03,13.889,19.333,17.288c5.054,2.065,10.708,3.115,16.811,3.115c1.157,0,2.345-0.037,3.525-0.115l0.008-0.207
			c0.005-0.002,0.009-0.002,0.014-0.002l0.033,0.206l0.264-0.03l0.265-0.027c0.653-0.066,1.303-0.138,1.953-0.211
			c1.326-0.155,2.584-0.408,4.077-0.824c0.109-0.03,0.22-0.058,0.33-0.085l0.256-0.063c3.198-0.934,6.821-1.425,10.492-1.425
			c4.505,0,8.798,0.714,12.416,2.061l0.248,0.081l1.345,0.435l0.549,0.186l0.064,0.024h0.069h14.189h0.974L115.191,239.357z"/>
		<path fill="#3E5059" d="M170.995,157.525h-0.413v0.412v41.64c0,7.277-0.683,13.11-4.088,19.699
			c-3.266,6.63-11.279,10.91-20.414,10.91c-12.482,0-18.392-7.86-20.354-11.237c-1.823-3.121-3.919-8.141-3.919-19.375v-41.637
			v-0.412h-0.413h-9.037h-0.413v0.412v40.507c0,9.531,0,16.418,5.929,26.577c6.166,10.83,18.849,14.688,28.66,14.688
			c16.931,0,25.332-10.377,28.155-14.84c4.892-7.563,5.754-14.546,5.754-26.426v-40.508v-0.412h-0.413h-9.034V157.525z"/>
		<path fill="#3E5059" d="M253.379,167.907c0.047,0,0.095-0.002,0.144-0.005l0.098-0.004c10.505,0,18.071,4.435,24.683,9.224
			l3.85,2.93l0.662,0.504v-0.831l0.005-9.931v-0.173l-0.121-0.121c-6.664-6.632-15.13-10.422-25.164-11.263
			c-1.29-0.108-2.65-0.164-4.157-0.171h-0.001h-0.002c-1.505,0.007-2.865,0.063-4.159,0.171
			c-10.033,0.841-18.499,4.631-25.164,11.263l-0.003,0.004l-0.066,0.061l0.11,0.186l-0.047,0.047l-0.156-0.136
			c-7.635,7.635-11.505,17.603-11.505,29.63c0,12.029,3.87,21.997,11.505,29.635l0.102,0.104l0.063,0.058
			c6.666,6.636,15.132,10.423,25.164,11.264c1.281,0.109,2.643,0.166,4.159,0.171c1.52-0.007,2.879-0.062,4.16-0.171
			c10.03-0.841,18.496-4.631,25.162-11.264l0.121-0.12v-0.173l-0.005-9.931v-0.831l-0.662,0.504l-3.857,2.935
			c-6.604,4.785-14.17,9.218-24.675,9.218l-0.098-0.004c-0.049-0.002-0.097-0.005-0.146-0.005c-9.03-0.052-16.544-2.994-22.34-8.743
			c-5.848-5.857-8.813-13.476-8.813-22.646c0-9.172,2.967-16.79,8.817-22.649C236.834,170.899,244.349,167.96,253.379,167.907z"/>
		<polygon fill="#3E5059" points="201.011,157.506 194.607,157.506 194.607,157.509 193.18,157.506 192.768,157.506 
			192.768,157.918 192.768,238.304 192.768,238.717 193.18,238.717 194.568,238.717 194.604,238.717 194.675,238.705 
			200.865,238.694 200.867,238.694 200.985,238.712 202.441,238.717 202.854,238.717 202.854,238.304 202.854,157.918 
			202.854,157.506 202.441,157.506 		"/>
	</g>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="22px" height="22px" viewBox="0 0 22 22" enable-background="new 0 0 22 22" xml:space="preserve">
<rect x="4" y="4" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -4.5563 11)" fill="#777777" width="14" height="14"/>
<path fill="#FFFFFF" d="M13.039,7.954c-0.063-0.128-0.193-0.21-0.336-0.21c-0.119,0-0.207,0.054-0.268,0.102L9.84,9.838
	c-0.208,0.158-0.254,0.461-0.104,0.675l0.813,1.17l-1.521,1.93c-0.141,0.18-0.113,0.336-0.065,0.434
	c0.06,0.125,0.194,0.209,0.334,0.209c0.123,0,0.208-0.055,0.271-0.102l2.593-1.992c0.157-0.121,0.211-0.33,0.146-0.578
	c-0.012-0.041-0.027-0.076-0.052-0.114l-0.803-1.154l1.521-1.93C13.111,8.207,13.086,8.052,13.039,7.954z"/>
<path fill="#AAAAAA" d="M21.771,10.677L11.323,0.229c-0.088-0.086-0.202-0.135-0.324-0.135c-0.123,0-0.236,0.048-0.324,0.134
	L0.228,10.677c-0.086,0.088-0.134,0.201-0.134,0.324c0,0.122,0.048,0.236,0.134,0.324l10.448,10.446
	c0.087,0.088,0.202,0.135,0.324,0.135s0.237-0.047,0.324-0.135L21.77,11.324c0.088-0.085,0.138-0.201,0.138-0.323
	C21.904,10.879,21.855,10.765,21.771,10.677z M11.424,1.625l8.956,8.956h-2.989c-0.017,0-0.035,0.001-0.052,0.003l-5.915-5.913
	V1.625z M10.584,1.617v3.045l-5.92,5.919H1.62L10.584,1.617z M10.584,20.387L1.62,11.421h3.044l5.92,5.918V20.387z M10.999,16.504
	l-5.501-5.502L10.999,5.5l5.503,5.502L10.999,16.504z M11.424,20.377v-3.045l5.913-5.914c0.019,0.001,0.037,0.003,0.054,0.003h2.989
	L11.424,20.377z"/>
</svg>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>LiteSpeed Technologies</metadata>
<defs>
<font id="iconlscwp" horiz-adv-x="1000" >
<font-face font-family="iconlscwp" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="848" descent="-152" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="lscwp_font-icon" unicode="&#xe800;" d="M590 467l-69-88 36-52c1-2 2-4 3-6 3-11 0-20-7-26l-118-91c-3-2-7-4-13-4-6 0-12 3-15 9-2 5-3 12 3 20l69 88-37 53c-6 10-4 24 5 31l118 91c3 2 7 4 13 4 6 0 12-3 15-9 2-5 3-12-3-20z m407-119c0-6-2-11-6-15l-476-476c-4-4-9-6-15-6-6 0-11 2-15 6l-476 476c-4 4-6 9-6 15s2 11 6 15l476 476c4 4 9 6 15 6 6 0 11-2 15-6l476-476c4-4 6-9 6-15z m-478 427v-138l270-270c1 0 2 0 2 0h137l-409 408z m-19-176l-251-251 251-251 251 251-251 251z m-427-232h138l270 270v139l-408-409z m408-447v139l-270 270h-138l408-409z m447 409h-137c0 0-1 0-2 0l-270-269v-139l409 408z" horiz-adv-x="1000" />
</font>
</defs>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<path fill="#CED1D9" d="M17.181,20.485H2.421l12.867-8.158l3.352,3.626l0.637,0.018c0.034-0.048,0.069-0.097,0.105-0.144
	l-0.293-0.826c-0.12-0.34-0.023-0.713,0.248-0.951c0.308-0.27,0.642-0.512,0.99-0.72c0.137-0.081,0.291-0.123,0.448-0.123
	c0.191,0,0.381,0.064,0.532,0.18l0.694,0.534c0.058-0.02,0.115-0.039,0.173-0.057l0.248-0.84c0.102-0.346,0.399-0.591,0.759-0.624
	c0.146-0.014,0.298-0.017,0.448-0.021V6.147H1.62V21.29h15.78c-0.071-0.215-0.155-0.416-0.207-0.647
	C17.181,20.59,17.183,20.538,17.181,20.485z M10.705,8.189c0.956,0,1.731,0.775,1.731,1.731c0,0.956-0.775,1.73-1.731,1.73
	c-0.956,0-1.731-0.774-1.731-1.73C8.974,8.964,9.75,8.189,10.705,8.189z M2.368,9.563l7.593,5.435l-7.593,4.729V9.563z
	 M23.63,17.247v3.792c-0.466-0.04-0.886-0.239-1.196-0.554h0.395l-0.911-0.986c-0.021-0.115-0.036-0.233-0.036-0.355
	C21.881,18.145,22.653,17.332,23.63,17.247z M24.298,20.979v-3.673c0.335,0.092,0.634,0.268,0.869,0.511v2.652
	C24.932,20.712,24.633,20.888,24.298,20.979z M19.383,22.458l-0.163,0.458H0.083V4.582h25.084v8.451l-0.003-0.008
	c-0.102-0.346-0.399-0.591-0.759-0.625c-0.035-0.003-0.071-0.002-0.107-0.005V5.451H0.952v16.596h16.776
	c0.163,0.176,0.397,0.286,0.666,0.291l0.883-0.024C19.311,22.362,19.346,22.41,19.383,22.458z M23.794,25.418
	c-0.191,0-0.378-0.012-0.563-0.027c-0.154-0.014-0.284-0.119-0.328-0.268l-0.326-1.106c-0.224-0.058-0.444-0.13-0.659-0.217
	l-0.913,0.702c-0.122,0.094-0.29,0.104-0.422,0.024c-0.326-0.195-0.634-0.419-0.916-0.666c-0.115-0.102-0.157-0.263-0.106-0.408
	l0.387-1.088c-0.149-0.179-0.286-0.365-0.408-0.559l-1.158,0.032c-0.149-0.003-0.294-0.086-0.354-0.227
	c-0.143-0.331-0.259-0.694-0.346-1.078c-0.033-0.149,0.027-0.305,0.154-0.392l0.95-0.65c-0.009-0.115-0.014-0.231-0.014-0.349
	s0.005-0.232,0.014-0.348l-0.95-0.65c-0.127-0.087-0.188-0.242-0.154-0.393c0.087-0.382,0.203-0.745,0.346-1.078
	c0.061-0.143,0.19-0.232,0.354-0.228l1.158,0.032c0.122-0.193,0.259-0.38,0.408-0.557l-0.387-1.088
	c-0.051-0.145-0.009-0.306,0.106-0.408c0.285-0.25,0.594-0.474,0.917-0.666c0.133-0.078,0.299-0.068,0.421,0.025l0.913,0.702
	c0.219-0.088,0.439-0.161,0.659-0.216l0.326-1.105c0.043-0.147,0.172-0.253,0.325-0.268c0.371-0.035,0.758-0.035,1.132,0
	c0.153,0.014,0.282,0.12,0.325,0.268l0.326,1.104c0.22,0.056,0.44,0.128,0.659,0.217l0.914-0.702
	c0.121-0.094,0.288-0.104,0.421-0.024c0.325,0.194,0.633,0.418,0.916,0.666c0.116,0.101,0.158,0.263,0.106,0.408l-0.387,1.088
	c0.149,0.177,0.286,0.363,0.408,0.557l1.158-0.032c0.137-0.004,0.294,0.085,0.354,0.228c0.144,0.334,0.26,0.696,0.347,1.078
	c0.034,0.149-0.027,0.306-0.154,0.393l-0.95,0.65c0.009,0.115,0.013,0.23,0.013,0.348s-0.004,0.233-0.013,0.349l0.95,0.65
	c0.127,0.087,0.188,0.242,0.154,0.393c-0.087,0.383-0.203,0.745-0.347,1.077c-0.062,0.141-0.214,0.228-0.354,0.227l-1.158-0.032
	c-0.121,0.193-0.258,0.38-0.408,0.559l0.387,1.088c0.052,0.146,0.01,0.307-0.106,0.408c-0.283,0.248-0.592,0.472-0.916,0.666
	c-0.132,0.08-0.299,0.07-0.421-0.024L25.67,23.8c-0.215,0.087-0.436,0.159-0.659,0.217l-0.326,1.106
	c-0.044,0.148-0.174,0.254-0.328,0.268C24.171,25.406,23.983,25.418,23.794,25.418z M23.548,24.661c0.162,0.008,0.328,0.008,0.491,0
	l0.314-1.067c0.039-0.133,0.148-0.232,0.284-0.261c0.317-0.065,0.631-0.169,0.93-0.306c0.125-0.061,0.273-0.043,0.385,0.044
	l0.882,0.677c0.137-0.091,0.271-0.188,0.399-0.29l-0.374-1.05c-0.046-0.132-0.017-0.277,0.078-0.38
	c0.225-0.245,0.419-0.51,0.576-0.788c0.068-0.121,0.191-0.206,0.337-0.19l1.115,0.031c0.056-0.15,0.105-0.306,0.149-0.468
	l-0.919-0.629c-0.115-0.079-0.177-0.216-0.16-0.355c0.02-0.159,0.03-0.321,0.03-0.486s-0.011-0.326-0.03-0.485
	c-0.017-0.139,0.045-0.276,0.16-0.355l0.919-0.629c-0.044-0.162-0.094-0.318-0.149-0.47l-1.115,0.031
	c-0.143-0.006-0.268-0.069-0.337-0.189c-0.158-0.279-0.352-0.544-0.576-0.787c-0.095-0.102-0.124-0.248-0.078-0.38l0.374-1.049
	c-0.129-0.103-0.262-0.199-0.399-0.29l-0.882,0.677c-0.11,0.084-0.258,0.101-0.383,0.044c-0.309-0.14-0.622-0.242-0.931-0.305
	c-0.136-0.028-0.246-0.128-0.285-0.262l-0.314-1.067c-0.164-0.009-0.328-0.008-0.491,0l-0.314,1.067
	c-0.039,0.133-0.149,0.234-0.285,0.262c-0.309,0.063-0.622,0.165-0.931,0.305c-0.128,0.055-0.274,0.04-0.384-0.044l-0.881-0.677
	c-0.137,0.09-0.271,0.188-0.398,0.29l0.373,1.05c0.046,0.132,0.017,0.277-0.078,0.38c-0.224,0.243-0.418,0.508-0.577,0.787
	c-0.067,0.12-0.204,0.18-0.336,0.189l-1.115-0.031c-0.056,0.15-0.105,0.308-0.148,0.47l0.918,0.629
	c0.115,0.079,0.178,0.216,0.16,0.354c-0.019,0.159-0.03,0.321-0.03,0.486s0.012,0.327,0.031,0.487
	c0.017,0.139-0.046,0.275-0.161,0.354l-0.919,0.629c0.044,0.162,0.094,0.318,0.149,0.468l1.115-0.031
	c0.135-0.012,0.269,0.069,0.337,0.189c0.158,0.279,0.352,0.544,0.577,0.789c0.094,0.103,0.123,0.249,0.077,0.38l-0.373,1.05
	c0.128,0.102,0.262,0.199,0.399,0.29l0.88-0.677c0.11-0.085,0.259-0.103,0.385-0.044c0.3,0.137,0.613,0.24,0.932,0.306
	c0.135,0.028,0.244,0.128,0.283,0.261L23.548,24.661z M23.794,22.306c-1.744,0-3.163-1.419-3.163-3.162
	c0-1.744,1.419-3.163,3.163-3.163c1.743,0,3.162,1.419,3.162,3.163C26.956,20.887,25.537,22.306,23.794,22.306z M23.794,16.73
	c-1.33,0-2.413,1.082-2.413,2.413c0,1.33,1.083,2.412,2.413,2.412s2.412-1.082,2.412-2.412C26.206,17.813,25.124,16.73,23.794,16.73
	z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M24.2,29.932c-0.686,0-1.381,0.061-2.071,0.18l0.333-3.945h5.769c0.138,0,0.25-0.112,0.25-0.25v-1.569
		c0-0.138-0.112-0.25-0.25-0.25h-7.455c-0.13,0-0.239,0.1-0.249,0.23l-0.564,7.014c-0.008,0.092,0.037,0.181,0.114,0.23l0.882,0.563
		c0.053,0.034,0.118,0.047,0.179,0.036c1.071-0.194,1.932-0.293,2.56-0.293c2.419,0,3.595,0.944,3.595,2.888
		c0,1.005-0.298,1.748-0.912,2.271c-0.617,0.525-1.506,0.791-2.643,0.791c-0.667,0-1.354-0.085-2.042-0.253
		c-0.683-0.168-1.258-0.4-1.708-0.691c-0.078-0.051-0.174-0.053-0.255-0.01c-0.081,0.044-0.13,0.128-0.13,0.22v1.641
		c0,0.087,0.045,0.168,0.12,0.214c0.923,0.562,2.268,0.847,3.996,0.847c1.791,0,3.221-0.466,4.252-1.386
		c1.039-0.928,1.565-2.219,1.565-3.837c0-1.43-0.486-2.576-1.445-3.404C27.143,30.347,25.834,29.932,24.2,29.932z"/>
	<path fill="#6699CC" d="M40.443,37.76c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.793,39.58,39.109,40.443,37.76z M36.484,37.826
		c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648c0-2.131,0.25-3.691,0.741-4.638
		c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365c0.489,0.961,0.737,2.515,0.737,4.619
		c0,2.103-0.248,3.661-0.738,4.629C38.259,37.376,37.526,37.826,36.484,37.826z"/>
	<path fill="#6699CC" d="M48.491,23.861c-1.752,0-3.074,0.677-3.932,2.011c-0.837,1.299-1.261,3.3-1.261,5.95
		c0,2.567,0.438,4.55,1.302,5.892c0.884,1.38,2.193,2.079,3.891,2.079c1.765,0,3.097-0.685,3.959-2.033
		c0.839-1.313,1.265-3.311,1.265-5.938c0-2.538-0.439-4.512-1.306-5.867C51.52,24.566,50.201,23.861,48.491,23.861z M48.491,37.826
		c-1.029,0-1.759-0.443-2.229-1.356c-0.491-0.953-0.741-2.517-0.741-4.648c0-2.132,0.249-3.692,0.741-4.638
		c0.47-0.906,1.198-1.346,2.229-1.346c1.042,0,1.775,0.447,2.243,1.365c0.488,0.96,0.736,2.514,0.736,4.619
		c0,2.104-0.248,3.662-0.736,4.629C50.266,37.376,49.532,37.826,48.491,37.826z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M62.324,17.893l2.085-2.085c0.366-0.367,0.569-0.855,0.569-1.374s-0.203-1.007-0.568-1.374L53.094,1.743
		c-0.365-0.367-0.854-0.57-1.373-0.57c-0.519,0-1.007,0.202-1.373,0.569l-7.883,7.882c-0.064-0.08-0.141-0.154-0.234-0.21
		l-7.519-4.431c-0.447-0.264-0.969-0.338-1.472-0.208c-0.503,0.13-0.924,0.448-1.188,0.896l-3.12,5.293l-1.2-2.208
		c-0.249-0.457-0.66-0.789-1.159-0.936c-0.497-0.146-1.023-0.09-1.476,0.157L11.034,15.62c-0.938,0.511-1.287,1.692-0.778,2.634
		l4.606,8.477c-1.289,0.254-2.264,1.391-2.264,2.753c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753H49.25c1.529,0,2.777-1.229,2.809-2.753l4.832-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		c0-1.549-1.26-2.809-2.81-2.809h-0.544l2.629-2.629l8.118-2.356c0.297-0.086,0.526-0.323,0.604-0.623
		c0.076-0.3-0.011-0.618-0.229-0.836L62.324,17.893z M33.561,6.558c0.034-0.057,0.083-0.08,0.118-0.089
		c0.033-0.01,0.087-0.013,0.145,0.021l7.408,4.367l-9.371,9.371c-0.757,0.757-0.756,1.99,0,2.747l3.7,3.701h-3.046l0.714-1.211
		c0.245-0.417,0.106-0.953-0.31-1.198c-0.417-0.245-0.953-0.106-1.198,0.31l-1.163,1.973c-0.024,0.041-0.027,0.085-0.044,0.127
		h-3.032L35.366,13.3c0.245-0.417,0.107-0.953-0.31-1.198s-0.953-0.107-1.198,0.31l-8.307,14.094
		c-0.032,0.054-0.04,0.113-0.059,0.17h-3.789L33.561,6.558z M11.871,17.157l14.066-7.644c0.056-0.031,0.109-0.026,0.144-0.015
		c0.035,0.011,0.083,0.035,0.115,0.093l1.266,2.328c0.138,0.254,0.386,0.397,0.653,0.434l-2.13,3.613l-0.291-0.535
		c-0.23-0.424-0.763-0.582-1.187-0.351c-0.424,0.231-0.582,0.762-0.351,1.187l0.388,0.713c0.127,0.234,0.346,0.381,0.588,0.433
		l-1.715,2.908L21.884,17.5c-0.23-0.424-0.762-0.582-1.187-0.351c-0.424,0.23-0.582,0.762-0.351,1.187l1.535,2.824
		c0.158,0.292,0.459,0.457,0.77,0.457c0.001,0,0.002,0,0.003,0l-1.833,3.109c-0.017-0.077-0.03-0.155-0.07-0.228l-2.677-4.926
		c-0.231-0.424-0.763-0.582-1.187-0.351c-0.424,0.231-0.582,0.762-0.351,1.187l2.677,4.926c0.159,0.292,0.459,0.457,0.77,0.457
		c0.084,0,0.165-0.038,0.248-0.063l-0.269,0.457c-0.091,0.155-0.113,0.325-0.104,0.492h-3.034l-5.03-9.255
		C11.743,17.326,11.778,17.208,11.871,17.157z M55.145,29.44l-4.83,40.981c-0.004,0.034-0.006,0.068-0.006,0.103
		c0,0.584-0.475,1.06-1.059,1.06H20.243c-0.583,0-1.059-0.476-1.059-1.06c0-0.033-0.002-0.067-0.006-0.103l-4.83-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h38.681C54.656,28.425,55.121,28.876,55.145,29.44z M55.468,22.428
		c-0.142,0.041-0.271,0.117-0.375,0.222l-4.024,4.025h-3.877l10.588-10.586c0.341-0.342,0.341-0.896,0-1.237
		c-0.342-0.342-0.896-0.342-1.238,0l-11.57,11.569c-0.076,0.075-0.128,0.163-0.17,0.254h-6.765l-4.937-4.938
		c-0.075-0.075-0.075-0.197,0-0.272L51.585,2.979c0.047-0.046,0.101-0.056,0.136-0.056c0.036,0,0.088,0.01,0.135,0.057
		l11.317,11.318c0.048,0.046,0.058,0.1,0.058,0.136c0,0.036-0.01,0.089-0.059,0.136l-2.704,2.705
		c-0.163,0.164-0.256,0.387-0.256,0.619s0.093,0.455,0.257,0.619l1.911,1.911L55.468,22.428z"/>
	<path fill="#6699CC" d="M51.648,8.721c-0.342-0.342-0.896-0.342-1.238,0L38.84,20.289c-0.341,0.341-0.341,0.896,0,1.237
		c0.172,0.171,0.396,0.256,0.619,0.256s0.448-0.085,0.619-0.256l11.57-11.568C51.988,9.617,51.99,9.063,51.648,8.721z"/>
	<path fill="#6699CC" d="M53.475,11.787L41.906,23.356c-0.342,0.342-0.342,0.896,0,1.237c0.171,0.171,0.396,0.256,0.619,0.256
		c0.223,0,0.447-0.085,0.619-0.256l11.566-11.569c0.342-0.342,0.341-0.896,0-1.237C54.37,11.445,53.814,11.445,53.475,11.787z"/>
	<path fill="#6699CC" d="M26.256,54.037l1.131,0.652l0.001-4.361l-3.779,2.18l1.131,0.653l-0.326,0.565
		c-0.896,1.549-1.013,3.057-0.329,4.242s2.047,1.84,3.838,1.84h4.415c0.483,0,0.875-0.393,0.875-0.875
		c0-0.483-0.392-0.875-0.875-0.875h-4.415c-1.123,0-1.969-0.353-2.323-0.965c-0.354-0.611-0.234-1.521,0.328-2.492L26.256,54.037z"
		/>
	<path fill="#6699CC" d="M29.08,47.398c0.138,0.08,0.289,0.117,0.437,0.117c0.302,0,0.596-0.156,0.758-0.438l2.221-3.844
		c0.371-0.641,0.817-1.09,1.325-1.336c0.454-0.221,0.896-0.222,1.35,0.002c0.506,0.244,0.95,0.692,1.322,1.336l0.366,0.632
		l-1.131,0.653l3.779,2.18l-0.003-4.362l-1.13,0.653l-0.366-0.633c-0.55-0.95-1.248-1.635-2.073-2.034
		c-0.926-0.449-1.946-0.45-2.875-0.003c-0.83,0.402-1.529,1.088-2.078,2.037l-2.221,3.844C28.519,46.622,28.662,47.157,29.08,47.398
		z"/>
	<path fill="#6699CC" d="M36.654,58.934l3.778,2.183v-1.308h0.637c1.791,0,3.154-0.652,3.84-1.84
		c0.684-1.187,0.566-2.693-0.33-4.242l-2.25-3.895c-0.241-0.419-0.776-0.561-1.195-0.32c-0.419,0.242-0.563,0.777-0.32,1.195
		l2.252,3.896c0.562,0.971,0.682,1.879,0.328,2.492c-0.354,0.611-1.199,0.963-2.322,0.963h-0.637v-1.307L36.654,58.934z"/>
	<path fill="#6699CC" d="M26.13,63.1c-0.48,0.053-0.826,0.485-0.772,0.967l0.327,2.906c0.05,0.447,0.429,0.777,0.869,0.777
		c0.033,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-0.327-2.907C27.043,63.391,26.613,63.048,26.13,63.1z"/>
	<path fill="#6699CC" d="M24.216,46.914c0.032,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-1.294-11.54
		c-0.054-0.479-0.481-0.822-0.967-0.772c-0.48,0.054-0.826,0.487-0.772,0.967l1.294,11.539
		C23.397,46.584,23.776,46.914,24.216,46.914z"/>
	<path fill="#6699CC" d="M43.361,63.1c-0.489-0.06-0.912,0.291-0.967,0.771l-0.326,2.906c-0.055,0.479,0.291,0.912,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.777l0.326-2.906C44.188,63.586,43.843,63.152,43.361,63.1z"/>
	<path fill="#6699CC" d="M45.176,46.932c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.776l1.297-11.563
		c0.056-0.48-0.291-0.914-0.771-0.967c-0.487-0.049-0.913,0.292-0.967,0.772l-1.298,11.563
		C44.35,46.445,44.695,46.878,45.176,46.932z"/>
	<path fill="#6699CC" d="M34.552,63.125c-0.483,0-0.875,0.393-0.875,0.875v2.875c0,0.482,0.392,0.875,0.875,0.875
		c0.483,0,0.875-0.393,0.875-0.875V64C35.427,63.518,35.036,63.125,34.552,63.125z"/>
	<path fill="#6699CC" d="M34.552,37.187c0.483,0,0.875-0.392,0.875-0.875V34.5c0-0.483-0.392-0.875-0.875-0.875
		c-0.483,0-0.875,0.392-0.875,0.875v1.812C33.677,36.795,34.069,37.187,34.552,37.187z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M61.821,13.089c-0.041-0.114-0.104-0.222-0.197-0.311L51.641,3.19c-0.032-0.03-0.071-0.042-0.104-0.066
		c-0.054-0.039-0.103-0.08-0.166-0.104c-0.07-0.029-0.145-0.036-0.219-0.044c-0.032-0.004-0.063-0.02-0.097-0.02h-0.015
		c-0.002,0-0.004,0-0.004,0H15.826c-1.506,0-2.731,1.224-2.731,2.729v63.631c0,1.505,1.225,2.729,2.731,2.729h43.351
		c1.506,0,2.729-1.225,2.729-2.729V13.441C61.906,13.314,61.872,13.196,61.821,13.089z M51.899,5.776l7.105,6.823h-7.004
		c-0.058,0-0.102-0.044-0.102-0.101V5.776L51.899,5.776z M60.222,69.315c0,0.576-0.47,1.045-1.045,1.045H15.826
		c-0.578,0-1.046-0.469-1.046-1.045V5.684c0-0.576,0.469-1.043,1.046-1.043h34.388v7.857c0,0.985,0.801,1.786,1.785,1.786h8.221
		v55.031H60.222z"/>
	<path fill="#6699CC" d="M42.681,38.698l-7.151-4.129c-0.261-0.15-0.582-0.15-0.843,0c-0.26,0.15-0.421,0.428-0.421,0.73v8.257
		c0,0.302,0.161,0.579,0.421,0.73c0.13,0.074,0.277,0.112,0.422,0.112c0.146,0,0.291-0.038,0.422-0.112l7.152-4.13
		c0.261-0.149,0.424-0.428,0.424-0.729C43.105,39.126,42.94,38.847,42.681,38.698z M35.951,42.096v-5.338l4.624,2.669L35.951,42.096
		z"/>
	<path fill="#6699CC" d="M48.729,29.417l1.035-2.911c0.116-0.326,0.021-0.691-0.239-0.918c-0.797-0.69-1.664-1.32-2.581-1.872
		c-0.297-0.179-0.672-0.157-0.947,0.054l-2.448,1.885c-0.924-0.406-1.877-0.717-2.846-0.928l-0.873-2.968
		c-0.099-0.333-0.39-0.572-0.736-0.601c-0.861-0.074-2.321-0.074-3.185,0c-0.346,0.029-0.637,0.269-0.736,0.601l-0.874,2.968
		c-0.969,0.21-1.923,0.521-2.846,0.928l-2.447-1.885c-0.276-0.212-0.651-0.234-0.948-0.055c-0.92,0.552-1.789,1.183-2.582,1.873
		c-0.261,0.228-0.358,0.592-0.241,0.918l1.036,2.911c-0.678,0.757-1.271,1.568-1.771,2.421l-3.096-0.084
		c-0.34-0.009-0.663,0.193-0.799,0.512c-0.39,0.918-0.716,1.937-0.969,3.03c-0.078,0.338,0.059,0.688,0.345,0.885l2.552,1.747
		c-0.058,0.539-0.085,1.024-0.085,1.499c0,0.474,0.028,0.958,0.085,1.497l-2.552,1.748c-0.287,0.196-0.423,0.546-0.345,0.884
		c0.25,1.089,0.577,2.106,0.968,3.03c0.136,0.32,0.436,0.505,0.8,0.513l3.096-0.085c0.5,0.853,1.093,1.664,1.771,2.422l-1.035,2.912
		c-0.117,0.326-0.02,0.689,0.241,0.918c0.785,0.683,1.653,1.313,2.58,1.872c0.297,0.18,0.675,0.157,0.95-0.055l2.448-1.886
		c0.922,0.405,1.874,0.716,2.844,0.929l0.875,2.968c0.098,0.332,0.39,0.571,0.735,0.602c0.428,0.037,0.996,0.078,1.592,0.078
		c0.596,0,1.163-0.041,1.592-0.078c0.347-0.03,0.638-0.27,0.737-0.602l0.873-2.968c0.969-0.213,1.921-0.521,2.843-0.929l2.45,1.885
		c0.275,0.213,0.653,0.233,0.949,0.056c0.928-0.561,1.798-1.191,2.583-1.876c0.261-0.227,0.356-0.592,0.239-0.916l-1.035-2.91
		c0.677-0.758,1.271-1.569,1.771-2.422l3.098,0.085c0.394-0.011,0.663-0.192,0.798-0.513c0.393-0.926,0.719-1.945,0.969-3.03
		c0.078-0.338-0.06-0.688-0.345-0.884l-2.553-1.749c0.06-0.536,0.087-1.028,0.087-1.496c0-0.476-0.027-0.962-0.086-1.499
		l2.552-1.747c0.286-0.197,0.423-0.547,0.345-0.884c-0.251-1.09-0.577-2.11-0.971-3.031c-0.132-0.311-0.437-0.512-0.775-0.512
		c-0.008,0-0.015,0-0.022,0l-3.098,0.084C49.998,30.983,49.404,30.172,48.729,29.417z M53.587,35.12l-2.494,1.708
		c-0.263,0.18-0.4,0.493-0.358,0.809c0.092,0.676,0.135,1.243,0.135,1.791c0,0.545-0.043,1.114-0.135,1.787
		c-0.042,0.316,0.096,0.629,0.358,0.81l2.494,1.708c-0.152,0.583-0.33,1.141-0.528,1.667l-3.019-0.084
		c-0.352-0.007-0.612,0.163-0.765,0.443c-0.559,1.035-1.271,2.011-2.118,2.896c-0.221,0.229-0.292,0.564-0.184,0.864l1.01,2.841
		c-0.448,0.361-0.926,0.708-1.425,1.03l-2.39-1.839c-0.25-0.193-0.591-0.229-0.878-0.091c-1.092,0.525-2.236,0.899-3.402,1.106
		c-0.314,0.059-0.57,0.287-0.66,0.593l-0.852,2.899c-0.55,0.034-1.203,0.034-1.752,0l-0.854-2.899
		c-0.091-0.306-0.345-0.535-0.66-0.593c-1.167-0.207-2.312-0.581-3.403-1.106c-0.287-0.14-0.626-0.103-0.879,0.091l-2.388,1.84
		c-0.497-0.322-0.974-0.668-1.424-1.03l1.01-2.842c0.107-0.301,0.036-0.635-0.185-0.864c-0.849-0.887-1.562-1.862-2.119-2.896
		c-0.152-0.281-0.438-0.45-0.766-0.444l-3.018,0.084c-0.199-0.526-0.375-1.083-0.528-1.667l2.493-1.706
		c0.263-0.18,0.402-0.492,0.359-0.809c-0.092-0.68-0.135-1.25-0.135-1.79c0-0.544,0.042-1.111,0.135-1.791
		c0.042-0.316-0.097-0.628-0.359-0.808l-2.493-1.707c0.154-0.586,0.33-1.145,0.528-1.667l3.019,0.083
		c0.316,0.025,0.613-0.161,0.765-0.442c0.558-1.035,1.271-2.009,2.12-2.896c0.22-0.229,0.292-0.564,0.185-0.865l-1.011-2.84
		c0.452-0.364,0.928-0.709,1.423-1.03l2.388,1.838c0.253,0.194,0.593,0.229,0.879,0.091c1.093-0.526,2.239-0.9,3.404-1.108
		c0.314-0.057,0.569-0.285,0.66-0.591l0.854-2.898c0.551-0.035,1.199-0.035,1.752,0l0.852,2.898c0.092,0.306,0.345,0.535,0.66,0.591
		c1.165,0.208,2.311,0.582,3.405,1.108c0.285,0.138,0.625,0.102,0.879-0.091l2.387-1.838c0.494,0.321,0.971,0.666,1.423,1.031
		l-1.01,2.84c-0.108,0.301-0.036,0.636,0.184,0.864c0.845,0.882,1.558,1.857,2.12,2.896c0.146,0.274,0.43,0.442,0.741,0.442
		c0.007,0,0.014,0,0.021,0l3.02-0.083C53.257,33.978,53.435,34.536,53.587,35.12z"/>
	<path fill="#6699CC" d="M37.5,29.626c-5.404,0-9.801,4.396-9.801,9.799c0,5.402,4.397,9.803,9.801,9.803s9.8-4.398,9.8-9.803
		C47.3,34.022,42.904,29.626,37.5,29.626z M37.5,47.543c-4.475,0-8.116-3.641-8.116-8.117c0-4.475,3.642-8.114,8.116-8.114
		c4.474,0,8.114,3.639,8.114,8.114S41.974,47.543,37.5,47.543z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M47.423,47.475c-6.108,0-11.078,4.971-11.078,11.08c0,6.107,4.969,11.077,11.078,11.077
		c6.109,0,11.079-4.97,11.079-11.077C58.502,52.443,53.532,47.475,47.423,47.475z M47.423,67.882c-5.144,0-9.327-4.185-9.327-9.327
		c0-5.146,4.184-9.33,9.327-9.33c5.146,0,9.329,4.186,9.329,9.33C56.752,63.697,52.566,67.882,47.423,67.882z"/>
	<path fill="#6699CC" d="M52.827,53.148c-0.343-0.342-0.896-0.342-1.238,0l-4.165,4.166l-4.165-4.166
		c-0.342-0.342-0.896-0.342-1.237,0c-0.342,0.343-0.342,0.896,0,1.238l4.164,4.165l-4.164,4.165c-0.342,0.342-0.342,0.896,0,1.238
		c0.17,0.171,0.396,0.256,0.619,0.256c0.223,0,0.447-0.085,0.618-0.256l4.165-4.165l4.165,4.165
		c0.171,0.171,0.396,0.256,0.619,0.256s0.448-0.085,0.619-0.256c0.341-0.342,0.341-0.896,0-1.238l-4.165-4.165l4.165-4.165
		C53.168,54.046,53.168,53.491,52.827,53.148z"/>
	<path fill="#6699CC" d="M64.166,21.332c-0.045-0.116-0.109-0.225-0.205-0.316l-8.912-8.56c-0.029-0.028-0.066-0.04-0.1-0.063
		c-0.059-0.042-0.113-0.087-0.182-0.115c-0.072-0.029-0.147-0.036-0.225-0.045c-0.035-0.004-0.064-0.021-0.102-0.021h-0.018
		c-0.001,0-0.002,0-0.003,0h-2.938c-0.023-0.032-0.037-0.07-0.067-0.099l-5.149-4.946c-0.031-0.031-0.072-0.044-0.107-0.069
		c-0.057-0.04-0.107-0.083-0.172-0.109c-0.071-0.029-0.146-0.036-0.223-0.045c-0.035-0.004-0.066-0.021-0.104-0.021h-0.018
		c0,0,0,0-0.002,0h-2.832c-0.045-0.119-0.108-0.232-0.207-0.326L36.901,1.12c0,0-0.001,0-0.001-0.001l-0.012-0.012
		c-0.027-0.026-0.061-0.036-0.09-0.057c-0.061-0.046-0.12-0.093-0.191-0.122c-0.064-0.026-0.132-0.03-0.2-0.04
		c-0.042-0.006-0.081-0.025-0.125-0.025H10.139c-1.364,0-2.474,1.11-2.474,2.474V57.23c0,1.362,1.11,2.473,2.474,2.473h3.38
		c0.139,0,0.266-0.039,0.383-0.098v4.953c0,1.385,1.126,2.51,2.51,2.51h4.018v4.509c0,1.411,1.148,2.56,2.56,2.56h38.701
		c1.41,0,2.559-1.147,2.559-2.56V21.695C64.25,21.564,64.217,21.443,64.166,21.332z M55.316,15.14l5.924,5.689l-5.924,0.023V15.14z
		 M46.536,9.852l2.457,2.36h-2.457V9.852z M37.157,3.792l3.26,3.131h-3.26V3.792z M13.902,9.432v48.619
		c-0.117-0.059-0.244-0.098-0.383-0.098h-3.38c-0.399,0-0.724-0.324-0.724-0.723V3.337c0-0.399,0.325-0.724,0.724-0.724h25.268v4.31
		H16.413C15.028,6.923,13.902,8.048,13.902,9.432z M16.413,65.318c-0.419,0-0.76-0.34-0.76-0.76V9.432
		c0-0.418,0.341-0.759,0.76-0.759h28.374v3.539H22.99c-1.411,0-2.56,1.148-2.56,2.56V65.32h-4.017V65.318z M62.5,71.577
		c0,0.446-0.361,0.81-0.809,0.81H22.99c-0.446,0-0.81-0.363-0.81-0.81V14.771c0-0.446,0.363-0.81,0.81-0.81h30.576v6.891
		c0,0.947,0.771,1.718,1.718,1.718H62.5V71.577z"/>
	<path fill="#6699CC" d="M27.498,28.501h26.625c0.482,0,0.875-0.392,0.875-0.875s-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.392-0.875,0.875S27.015,28.501,27.498,28.501z"/>
	<path fill="#6699CC" d="M27.498,36.757h26.625c0.482,0,0.875-0.392,0.875-0.875c0-0.483-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.392-0.875,0.875C26.623,36.365,27.015,36.757,27.498,36.757z"/>
	<path fill="#6699CC" d="M27.498,45.014h26.625c0.482,0,0.875-0.393,0.875-0.875c0-0.484-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.391-0.875,0.875C26.623,44.621,27.015,45.014,27.498,45.014z"/>
	<path fill="#6699CC" d="M32.999,51.52h-5.501c-0.483,0-0.875,0.393-0.875,0.875c0,0.483,0.392,0.875,0.875,0.875h5.501
		c0.483,0,0.875-0.392,0.875-0.875C33.874,51.912,33.482,51.52,32.999,51.52z"/>
	<path fill="#6699CC" d="M31.124,59.775h-3.626c-0.483,0-0.875,0.392-0.875,0.875c0,0.482,0.392,0.875,0.875,0.875h3.626
		c0.483,0,0.875-0.393,0.875-0.875C31.999,60.167,31.607,59.775,31.124,59.775z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<g id="Layer_1_1_" display="none">
	<path display="inline" fill="#E8AE4A" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.509,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.322,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.358,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy_3" display="none">
	<path display="inline" fill="#4675B8" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.509,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.322,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.358,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy" display="none">
	<path display="inline" fill="#A32430" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M15.159,13.764c0.187,0.188,0.288,0.437,0.288,0.697c0,0.262-0.102,0.51-0.288,0.695
		c-0.185,0.184-0.438,0.289-0.698,0.289c-0.262,0-0.518-0.105-0.697-0.291L10,11.393l-3.764,3.765c-0.361,0.36-1.033,0.36-1.393,0
		c-0.187-0.185-0.29-0.433-0.29-0.695s0.103-0.512,0.289-0.696l3.764-3.767L4.842,6.234c-0.385-0.384-0.385-1.01,0-1.394
		c0.359-0.361,1.032-0.361,1.394,0L10,8.604l3.766-3.765c0.356-0.359,1.033-0.361,1.395,0c0.188,0.185,0.288,0.433,0.288,0.697
		c0.001,0.264-0.103,0.511-0.288,0.697l-3.766,3.764L15.159,13.764z"/>
</g>
<g id="Layer_1_copy_2">
	<path fill="#3ABFBF" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10C20,4.478,15.521,0,10,0z
		 M15.458,6.018l-5.944,9.089c-0.031,0.048-0.07,0.088-0.115,0.121l-0.088,0.063c-0.03,0.021-0.063,0.04-0.097,0.053l-0.189,0.075
		c-0.048,0.019-0.1,0.03-0.152,0.032l-0.146,0.004c-0.005,0-0.009,0-0.014,0c-0.026,0-0.052-0.003-0.078-0.008l-0.309-0.096
		c-0.058-0.022-0.11-0.058-0.154-0.101c-0.025-0.017-0.077-0.056-0.099-0.074l-3.381-3.133c-0.185-0.171-0.295-0.405-0.307-0.661
		c-0.01-0.256,0.079-0.497,0.251-0.683c0.357-0.378,0.974-0.398,1.349-0.054l2.597,2.399l5.277-8.069
		c0.277-0.426,0.895-0.558,1.322-0.276c0.211,0.137,0.357,0.352,0.41,0.602C15.645,5.554,15.596,5.807,15.458,6.018z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<polygon fill="#6699CC" points="33.496,19.622 41.335,23.493 48.044,17.635 49.146,18.897 50.775,14.133 45.835,15.104 
		46.937,16.367 41.075,21.487 33.354,17.676 22.786,24.961 23.741,26.347 	"/>
	<path fill="#6699CC" d="M64.08,13.12c-0.041-0.11-0.104-0.216-0.195-0.303L53.709,3.043c-0.027-0.027-0.063-0.039-0.095-0.061
		c-0.057-0.042-0.11-0.084-0.175-0.112c-0.067-0.027-0.138-0.033-0.209-0.042c-0.036-0.004-0.068-0.021-0.104-0.021h-0.017
		c-0.002,0-0.002,0-0.002,0h-39.51c-1.524,0-2.765,1.241-2.765,2.765v64.853c0,1.525,1.24,2.765,2.765,2.765h47.807
		c1.522,0,2.765-1.239,2.765-2.765V13.478C64.167,13.349,64.133,13.229,64.08,13.12z M53.968,5.625l7.3,7.011h-7.18
		c-0.065,0-0.12-0.054-0.12-0.12V5.625z M62.483,70.427c0,0.597-0.484,1.082-1.081,1.082H13.598c-0.597,0-1.082-0.485-1.082-1.082
		V5.574c0-0.596,0.485-1.082,1.082-1.082h38.688v8.025c0,0.995,0.809,1.803,1.803,1.803h8.396V70.427z"/>
	<path fill="#6699CC" d="M17.724,28.494c-0.464,0-0.842,0.377-0.842,0.842v28.058c0,0.465,0.377,0.841,0.842,0.841h39.185
		c0.065,0,0.122-0.023,0.184-0.036c0.061,0.013,0.118,0.036,0.183,0.036c0.464,0,0.842-0.376,0.842-0.841V29.336
		c0-0.465-0.378-0.842-0.842-0.842c-0.064,0-0.122,0.023-0.183,0.037c-0.062-0.014-0.118-0.037-0.184-0.037H17.724z M56.435,37.847
		H41.649v-2.992h14.785V37.847z M18.565,34.854h4.931v2.992h-4.931V34.854z M18.565,39.529h4.931v2.993h-4.931V39.529z
		 M39.966,47.199H25.18v-2.994h14.786V47.199z M41.649,44.205h14.785v2.994H41.649V44.205z M25.18,42.522v-2.993h14.786v2.993H25.18
		z M23.497,44.205v2.994h-4.931v-2.994H23.497z M23.497,48.882v2.992h-4.931v-2.992H23.497z M25.18,48.882h14.786v2.992H25.18
		V48.882z M41.649,48.882h14.785v2.992H41.649V48.882z M56.435,42.522H41.649v-2.993h14.785V42.522z M39.966,37.847H25.18v-2.992
		h14.786V37.847z M25.18,33.171v-2.994h14.786v2.994H25.18z M23.497,33.171h-4.931v-2.994h4.931V33.171z M18.565,53.559h4.931v2.993
		h-4.931V53.559z M25.18,53.559h14.786v2.993H25.18V53.559z M41.649,53.559h14.785v2.993H41.649V53.559z M56.435,33.171H41.649
		v-2.994h14.785V33.171z"/>
	<path fill="#6699CC" d="M28.019,37.043h9.289c0.398,0,0.721-0.323,0.721-0.721s-0.323-0.721-0.721-0.721h-9.289
		c-0.398,0-0.721,0.323-0.721,0.721S27.62,37.043,28.019,37.043z"/>
	<path fill="#6699CC" d="M44.5,37.043h9.29c0.397,0,0.721-0.323,0.721-0.721s-0.323-0.721-0.721-0.721H44.5
		c-0.398,0-0.721,0.323-0.721,0.721S44.102,37.043,44.5,37.043z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M56.841,27.021h-2.944l3.079-8.461c0.108-0.299,0.047-0.634-0.162-0.874l-7.001-8.046
		c-0.019-0.021-0.042-0.036-0.063-0.055c-0.033-0.032-0.065-0.065-0.104-0.091c-0.017-0.011-0.035-0.018-0.053-0.029
		c-0.049-0.028-0.098-0.056-0.15-0.075c-0.01-0.003-0.02-0.004-0.029-0.007c-0.062-0.02-0.124-0.035-0.189-0.04
		c-0.02-0.002-0.04,0.002-0.06,0.001c-0.05,0-0.1-0.003-0.149,0.005L38.48,11.014c-0.314,0.05-0.577,0.266-0.686,0.565
		l-3.846,10.563c-0.027,0.075-0.043,0.152-0.049,0.229c0,0.003,0,0.006,0,0.01c-0.005,0.073-0.001,0.146,0.012,0.217
		c0.003,0.017,0.011,0.032,0.015,0.048c0.014,0.058,0.03,0.114,0.056,0.168c0.01,0.021,0.025,0.038,0.036,0.058
		c0.024,0.042,0.045,0.084,0.076,0.123c0.003,0.003,0.008,0.005,0.011,0.008c0.003,0.004,0.005,0.01,0.009,0.014l3.515,4.003h-0.583
		l-3.372-3.876c-0.021-0.025-0.049-0.042-0.073-0.064c-0.03-0.027-0.057-0.057-0.09-0.08c-0.028-0.02-0.06-0.032-0.089-0.048
		c-0.037-0.02-0.072-0.041-0.11-0.055c-0.027-0.01-0.056-0.013-0.084-0.02c-0.045-0.012-0.089-0.024-0.136-0.029
		c-0.029-0.002-0.06,0.002-0.089,0.002c-0.042,0.001-0.083-0.003-0.125,0.004L22.34,24.521c-0.314,0.05-0.577,0.266-0.686,0.565
		l-0.705,1.936h-2.79c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753h29.007c1.53,0,2.778-1.229,2.808-2.753l4.833-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		C59.649,28.281,58.39,27.021,56.841,27.021z M52.035,27.021h-0.145l-5.603-6.378l2.925-8.036l0.254-0.698l5.688,6.537
		L52.035,27.021z M39.262,12.662l8.561-1.351l-0.254,0.698l-2.925,8.036l-8.545,1.309L39.262,12.662z M36.483,23.064l8.464-1.296
		l1.982,2.257l2.631,2.996h-9.604L36.483,23.064z M33.264,25.588l0.063-0.174l1.398,1.607h-1.983L33.264,25.588z M23.123,26.168
		l8.56-1.353l-0.544,1.494l-0.259,0.712h-8.067L23.123,26.168z M53.067,70.768c-0.004,0.034-0.006,0.068-0.006,0.103
		c0,0.584-0.475,1.059-1.059,1.059H22.996c-0.583,0-1.059-0.475-1.059-1.059c0-0.034-0.002-0.068-0.006-0.103l-4.829-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h3.402h9.93h5.154h2.914h11.934h1.153h4.193c0.569,0,1.034,0.451,1.058,1.015L53.067,70.768z"
		/>
	<path fill="#6699CC" d="M28.884,63.444c-0.48,0.054-0.826,0.486-0.772,0.967l0.326,2.908c0.05,0.447,0.429,0.777,0.869,0.777
		c0.032,0,0.065-0.002,0.099-0.006c0.48-0.054,0.826-0.486,0.772-0.967l-0.326-2.908C29.797,63.735,29.364,63.382,28.884,63.444z"/>
	<path fill="#6699CC" d="M26.532,42.486c0.48-0.054,0.826-0.486,0.772-0.967l-0.759-6.771c-0.054-0.479-0.479-0.819-0.967-0.772
		c-0.48,0.054-0.826,0.487-0.772,0.967l0.759,6.771c0.05,0.447,0.429,0.777,0.869,0.777C26.466,42.492,26.499,42.49,26.532,42.486z"
		/>
	<path fill="#6699CC" d="M46.116,63.446c-0.485-0.057-0.914,0.291-0.967,0.771l-0.326,2.906c-0.055,0.48,0.291,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.326-2.906C46.942,63.933,46.597,63.5,46.116,63.446z"/>
	<path fill="#6699CC" d="M49.421,33.976c-0.488-0.052-0.913,0.292-0.967,0.772l-0.732,6.525c-0.055,0.48,0.291,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.732-6.525C50.247,34.463,49.901,34.03,49.421,33.976z"/>
	<path fill="#6699CC" d="M37.306,64.894c-0.483,0-0.875,0.392-0.875,0.875v1.453c0,0.483,0.392,0.875,0.875,0.875
		s0.875-0.392,0.875-0.875v-1.453C38.181,65.285,37.789,64.894,37.306,64.894z"/>
	<path fill="#6699CC" d="M37.306,37.75c0.483,0,0.875-0.392,0.875-0.875v-2.029c0-0.483-0.392-0.875-0.875-0.875
		s-0.875,0.392-0.875,0.875v2.029C36.431,37.358,36.822,37.75,37.306,37.75z"/>
	<path fill="#6699CC" d="M37.5,40.496c-6.108,0-11.078,4.97-11.078,11.079c0,6.108,4.97,11.078,11.078,11.078
		c6.109,0,11.079-4.97,11.079-11.078C48.578,45.466,43.608,40.496,37.5,40.496z M37.5,60.903c-5.144,0-9.328-4.185-9.328-9.328
		c0-5.145,4.185-9.329,9.328-9.329c5.144,0,9.329,4.185,9.329,9.329C46.828,56.719,42.644,60.903,37.5,60.903z"/>
	<path fill="#6699CC" d="M42.904,46.171c-0.342-0.342-0.896-0.342-1.238,0L37.5,50.336l-4.166-4.165
		c-0.342-0.342-0.896-0.342-1.237,0s-0.342,0.896,0,1.238l4.165,4.165l-4.165,4.165c-0.342,0.342-0.342,0.896,0,1.238
		c0.171,0.171,0.395,0.256,0.619,0.256s0.448-0.085,0.619-0.256l4.166-4.165l4.166,4.165c0.171,0.171,0.396,0.256,0.619,0.256
		s0.448-0.085,0.619-0.256c0.341-0.342,0.341-0.896,0-1.238l-4.165-4.165l4.165-4.165C43.245,47.067,43.245,46.513,42.904,46.171z"
		/>
	<path fill="#6699CC" d="M21.312,23.8c0.167,0.191,0.408,0.298,0.658,0.298c0.044,0,0.088-0.003,0.132-0.01l10.519-1.611
		c0.004,0,0.007-0.002,0.011-0.003c0.006-0.001,0.012-0.001,0.019-0.002c0.041-0.007,0.077-0.025,0.115-0.038
		c0.03-0.01,0.062-0.017,0.091-0.03c0.042-0.02,0.08-0.047,0.118-0.073c0.024-0.017,0.052-0.029,0.074-0.048
		c0.038-0.032,0.069-0.071,0.102-0.109c0.017-0.02,0.038-0.037,0.053-0.059c0.044-0.063,0.081-0.131,0.107-0.205l3.845-10.564
		c0.109-0.299,0.047-0.634-0.162-0.874L29.99,2.426c-0.023-0.026-0.052-0.045-0.077-0.068c-0.028-0.025-0.054-0.054-0.085-0.075
		c-0.034-0.023-0.071-0.039-0.108-0.058c-0.031-0.015-0.059-0.034-0.091-0.045c-0.036-0.013-0.073-0.018-0.11-0.026
		c-0.037-0.008-0.072-0.02-0.11-0.023c-0.035-0.003-0.071,0.001-0.106,0.003c-0.036,0.001-0.072-0.003-0.108,0.003L18.66,3.799
		c-0.314,0.05-0.577,0.266-0.686,0.565l-3.845,10.563c-0.027,0.075-0.043,0.153-0.049,0.23c0,0.005,0,0.009,0,0.014
		c-0.005,0.071-0.001,0.143,0.011,0.213c0.004,0.021,0.014,0.041,0.019,0.062c0.014,0.052,0.027,0.104,0.05,0.153
		c0.013,0.027,0.031,0.05,0.047,0.075c0.021,0.036,0.039,0.074,0.066,0.107c0.002,0.003,0.007,0.004,0.009,0.007
		c0.004,0.005,0.006,0.011,0.011,0.016L21.312,23.8z M22.311,22.285l-5.648-6.435l8.462-1.297l5.651,6.435L22.311,22.285z
		 M32.171,19.924l-2.026-2.306l-3.679-4.189l3.178-8.734l5.69,6.538L32.171,19.924z M19.442,5.447L28,4.096l-3.178,8.734
		l-8.543,1.309L19.442,5.447z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M47.673,48.495c-5.733,0-10.4,4.666-10.4,10.401c0,5.733,4.667,10.398,10.4,10.398
		c5.735,0,10.401-4.665,10.401-10.398C58.074,53.161,53.408,48.495,47.673,48.495z M47.673,67.546c-4.771,0-8.649-3.88-8.649-8.649
		c0-4.771,3.881-8.65,8.649-8.65c4.771,0,8.651,3.881,8.651,8.65S52.443,67.546,47.673,67.546z"/>
	<path fill="#6699CC" d="M52.758,53.811c-0.34-0.343-0.896-0.341-1.236,0l-3.848,3.848l-3.847-3.848
		c-0.343-0.343-0.897-0.343-1.237,0c-0.342,0.342-0.343,0.896-0.001,1.236l3.849,3.85l-3.849,3.849
		c-0.342,0.341-0.341,0.896,0.001,1.237c0.17,0.17,0.395,0.256,0.618,0.256s0.448-0.086,0.619-0.256l3.847-3.849l3.848,3.849
		c0.17,0.17,0.396,0.256,0.619,0.256c0.223,0,0.447-0.086,0.617-0.256c0.342-0.342,0.344-0.896,0.001-1.237l-3.848-3.849l3.848-3.85
		C53.102,54.706,53.1,54.15,52.758,53.811z"/>
	<path fill="#6699CC" d="M64.165,17.493c-0.044-0.117-0.108-0.228-0.205-0.32l-9.576-9.197c-0.03-0.029-0.067-0.041-0.102-0.064
		c-0.058-0.042-0.111-0.087-0.179-0.114c-0.076-0.031-0.156-0.04-0.236-0.048c-0.031-0.003-0.059-0.018-0.09-0.018h-0.015
		c-0.003,0-0.005,0-0.007,0h-3.189c-0.029-0.041-0.047-0.088-0.086-0.124l-5.531-5.314c-0.03-0.029-0.067-0.04-0.102-0.064
		c-0.058-0.042-0.111-0.087-0.18-0.114c-0.072-0.03-0.148-0.037-0.227-0.046c-0.034-0.004-0.064-0.02-0.101-0.02h-0.016
		c-0.001,0-0.002,0-0.004,0H12.917c-1.451,0-2.632,1.18-2.632,2.631v59.231c0,1.449,1.181,2.631,2.632,2.631h4.382v4.909
		c0,1.479,1.205,2.685,2.685,2.685h41.583c1.479,0,2.684-1.203,2.684-2.685V17.857C64.25,17.726,64.217,17.604,64.165,17.493z
		 M54.652,10.661l6.574,6.314l-6.574-0.023V10.661z M45.218,4.979l2.866,2.753h-2.866V4.979z M12.917,64.793
		c-0.486,0-0.882-0.396-0.882-0.881V4.681c0-0.486,0.396-0.881,0.882-0.881h30.551v3.932H19.984c-1.48,0-2.685,1.205-2.685,2.686
		v54.375H12.917z M62.5,71.452c0,0.516-0.419,0.935-0.934,0.935H19.984c-0.516,0-0.935-0.419-0.935-0.935V10.417
		c0-0.516,0.419-0.936,0.935-0.936h32.918v7.469c0,0.982,0.798,1.781,1.779,1.781H62.5V71.452z"/>
	<path fill="#6699CC" d="M28.199,23.273c-0.715,0.622-1.073,1.868-1.073,3.739v3.275c0,1.27-0.229,2.15-0.686,2.641
		c-0.457,0.491-1.287,0.736-2.488,0.736h-0.774v1.333h0.774c1.202,0,2.031,0.246,2.488,0.736c0.457,0.49,0.686,1.371,0.686,2.641
		v3.274c0,1.871,0.357,3.119,1.073,3.746c0.716,0.625,2.126,0.938,4.234,0.938h0.787V45h-0.863c-1.193,0-1.972-0.188-2.336-0.559
		c-0.364-0.373-0.546-1.155-0.546-2.35V38.45c0-1.329-0.208-2.277-0.622-2.844s-1.181-0.995-2.298-1.282
		c1.1-0.254,1.862-0.668,2.285-1.244s0.635-1.532,0.635-2.869v-3.644c0-1.193,0.182-1.976,0.546-2.349s1.143-0.559,2.336-0.559
		h0.863v-1.32h-0.787C30.326,22.34,28.915,22.651,28.199,23.273z"/>
	<path fill="#6699CC" d="M38.425,43.136c0.091,0,0.181-0.024,0.263-0.073c1.3-0.803,2.289-1.768,2.94-2.869
		c0.653-1.102,1.021-2.433,1.092-3.958c0.007-0.136-0.043-0.27-0.138-0.369c-0.094-0.099-0.225-0.155-0.361-0.155H39.72
		c-0.276,0-0.5,0.224-0.5,0.5v0.47c0,1.045-0.172,1.941-0.511,2.662c-0.335,0.713-0.873,1.342-1.596,1.873
		c-0.118,0.088-0.191,0.221-0.203,0.365c-0.012,0.145,0.042,0.288,0.145,0.393l1.016,1.016
		C38.168,43.086,38.296,43.136,38.425,43.136z M39.614,39.77c0.398-0.848,0.603-1.875,0.605-3.058h1.464
		c-0.113,1.14-0.422,2.138-0.916,2.972c-0.513,0.867-1.276,1.646-2.273,2.313l-0.336-0.335
		C38.794,41.109,39.282,40.475,39.614,39.77z"/>
	<path fill="#6699CC" d="M40.914,31.685c0.609,0,1.132-0.214,1.553-0.635c0.422-0.421,0.637-0.944,0.637-1.554
		c0-0.6-0.213-1.119-0.634-1.544c-0.842-0.853-2.264-0.854-3.108-0.009c-0.422,0.422-0.635,0.944-0.635,1.553
		s0.213,1.131,0.635,1.554C39.782,31.471,40.307,31.685,40.914,31.685z M40.066,28.65c0.233-0.234,0.504-0.343,0.848-0.343
		c0.338,0,0.613,0.113,0.844,0.347c0.231,0.235,0.346,0.51,0.346,0.842c0,0.344-0.108,0.612-0.344,0.846
		c-0.464,0.464-1.229,0.464-1.691,0c-0.229-0.23-0.342-0.507-0.342-0.846S39.838,28.88,40.066,28.65z"/>
	<path fill="#6699CC" d="M54.563,27.012c0-1.871-0.354-3.117-1.062-3.739c-0.706-0.622-2.113-0.933-4.221-0.933h-0.8v1.32h0.889
		c1.185,0,1.957,0.184,2.316,0.552s0.539,1.153,0.539,2.355v3.644c0,1.337,0.209,2.293,0.629,2.869
		c0.418,0.576,1.179,0.99,2.278,1.244c-1.108,0.288-1.871,0.715-2.284,1.282c-0.416,0.567-0.623,1.515-0.623,2.844v3.644
		c0,1.202-0.18,1.986-0.539,2.355c-0.359,0.367-1.133,0.552-2.316,0.552H48.48v1.333h0.8c2.106,0,3.515-0.313,4.221-0.939
		c0.707-0.625,1.062-1.875,1.062-3.744v-3.275c0-1.27,0.229-2.15,0.686-2.641c0.457-0.491,1.286-0.736,2.488-0.736h0.787v-1.333
		h-0.787c-1.202,0-2.031-0.246-2.488-0.736c-0.457-0.49-0.686-1.371-0.686-2.641V27.012z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M61.125,33.733h-1.583V11.637c0-0.003-0.002-0.007-0.002-0.01c-0.001-0.077-0.024-0.151-0.046-0.227
		c-0.01-0.035-0.01-0.074-0.023-0.107c-0.01-0.023-0.029-0.04-0.041-0.062c-0.043-0.079-0.089-0.156-0.152-0.219
		c-0.002-0.002-0.004-0.005-0.006-0.007L50.12,2.247h-0.001l-0.014-0.013c-0.028-0.027-0.065-0.039-0.098-0.061
		c-0.059-0.043-0.113-0.089-0.183-0.116s-0.14-0.033-0.212-0.042C49.575,2.008,49.541,1.99,49.5,1.99H18.478
		c-1.585,0-2.875,1.29-2.875,2.875v28.868h-1.478c-1.585,0-2.875,1.29-2.875,2.875v6.028c0,1.585,1.29,2.875,2.875,2.875h1.876
		c0.037,0,0.067-0.017,0.103-0.021c0.081,3.687-0.345,7.248-0.771,10.725c-0.626,5.098-1.273,10.367-0.339,16.061
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.894-5.446-0.262-10.59,0.349-15.563c0.621-5.06,1.259-10.289,0.356-15.933h1.765c-0.001,0.053-0.014,0.103-0.005,0.155
		c0.893,5.445,0.261,10.588-0.35,15.562c-0.626,5.097-1.274,10.367-0.338,16.062c0.07,0.43,0.441,0.733,0.862,0.733
		c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005c-0.895-5.446-0.262-10.592,0.349-15.565
		c0.621-5.058,1.26-10.286,0.356-15.93h1.767c-0.001,0.053-0.015,0.103-0.006,0.155c0.893,5.447,0.261,10.591-0.35,15.563
		c-0.626,5.097-1.273,10.366-0.34,16.06c0.07,0.429,0.441,0.732,0.862,0.732c0.047,0,0.095-0.004,0.143-0.012
		c0.477-0.078,0.8-0.528,0.722-1.005c-0.893-5.445-0.261-10.589,0.351-15.562c0.621-5.06,1.26-10.289,0.356-15.935h1.764
		c-0.001,0.053-0.015,0.103-0.006,0.155c0.893,5.445,0.261,10.589-0.35,15.563c-0.626,5.098-1.273,10.367-0.339,16.061
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.894-5.446-0.262-10.59,0.349-15.563c0.621-5.059,1.259-10.288,0.356-15.932H29.7c-0.001,0.053-0.015,0.103-0.006,0.155
		c0.891,5.443,0.259,10.586-0.351,15.559c-0.626,5.1-1.274,10.37-0.339,16.064c0.07,0.429,0.441,0.732,0.862,0.732
		c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005c-0.894-5.447-0.262-10.593,0.35-15.567
		c0.621-5.057,1.259-10.285,0.357-15.928h1.764c-0.001,0.053-0.015,0.104-0.006,0.156c0.894,5.445,0.262,10.59-0.349,15.563
		c-0.626,5.098-1.274,10.366-0.339,16.059c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012
		c0.477-0.078,0.8-0.528,0.722-1.005c-0.894-5.445-0.262-10.588,0.35-15.563c0.622-5.059,1.26-10.289,0.355-15.934h1.766
		c-0.001,0.053-0.015,0.104-0.006,0.156c0.893,5.444,0.261,10.59-0.35,15.563c-0.626,5.097-1.273,10.365-0.34,16.058
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.892-5.444-0.261-10.588,0.35-15.563c0.621-5.059,1.259-10.289,0.356-15.934h1.767c-0.001,0.053-0.015,0.103-0.006,0.156
		c0.892,5.443,0.26,10.588-0.351,15.562c-0.625,5.099-1.271,10.368-0.34,16.062c0.07,0.429,0.441,0.732,0.862,0.732
		c0.047,0,0.095-0.004,0.144-0.012c0.477-0.078,0.799-0.527,0.722-1.006c-0.892-5.444-0.261-10.588,0.35-15.563
		c0.62-5.058,1.259-10.288,0.356-15.931h1.765c-0.001,0.053-0.015,0.103-0.006,0.156c0.894,5.444,0.262,10.59-0.349,15.564
		c-0.625,5.096-1.271,10.365-0.34,16.057c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.144-0.012
		c0.477-0.078,0.799-0.527,0.722-1.005c-0.892-5.443-0.261-10.588,0.351-15.562c0.619-5.06,1.258-10.29,0.354-15.935h1.765
		c-0.001,0.053-0.015,0.103-0.006,0.156c0.894,5.445,0.263,10.592-0.349,15.567c-0.625,5.097-1.271,10.363-0.342,16.054
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.144-0.013c0.477-0.077,0.799-0.526,0.722-1.004
		c-0.89-5.442-0.259-10.584,0.351-15.558c0.621-5.061,1.26-10.293,0.355-15.938h1.768c-0.001,0.054-0.015,0.104-0.006,0.156
		c0.891,5.445,0.26,10.59-0.352,15.565c-0.625,5.097-1.271,10.365-0.34,16.058c0.069,0.428,0.44,0.732,0.861,0.732
		c0.047,0,0.096-0.004,0.143-0.012c0.478-0.078,0.801-0.527,0.723-1.006c-0.891-5.442-0.26-10.586,0.352-15.561
		c0.621-5.061,1.258-10.29,0.356-15.936h1.769c-0.002,0.053-0.016,0.103-0.007,0.156c0.89,5.442,0.259,10.586-0.352,15.56
		c-0.626,5.099-1.272,10.37-0.341,16.063c0.07,0.428,0.441,0.732,0.863,0.732c0.047,0,0.094-0.004,0.143-0.012
		c0.477-0.078,0.8-0.527,0.722-1.006c-0.892-5.444-0.261-10.59,0.351-15.566c0.619-5.057,1.258-10.287,0.357-15.928h1.764
		c0,0.052-0.015,0.102-0.006,0.154c0.889,5.443,0.258,10.586-0.352,15.561c-0.626,5.099-1.271,10.369-0.34,16.063
		c0.07,0.43,0.44,0.733,0.861,0.733c0.047,0,0.096-0.004,0.144-0.013c0.477-0.078,0.8-0.526,0.722-1.004
		c-0.893-5.445-0.261-10.592,0.35-15.567c0.434-3.524,0.863-7.14,0.787-10.914h1.236c1.585,0,2.875-1.29,2.875-2.875v-6.028
		C64,35.023,62.71,33.733,61.125,33.733z M50.375,4.913l6.111,5.849H51.5c-0.62,0-1.125-0.505-1.125-1.125V4.913z M17.353,4.865
		c0-0.62,0.505-1.125,1.125-1.125h30.147v5.896c0,1.585,1.29,2.875,2.875,2.875h6.292v21.222H17.353V4.865z M62.25,42.637
		c0,0.62-0.505,1.125-1.125,1.125h-1.313c-0.07-1.085-0.179-2.181-0.356-3.296c0.403-0.077,0.715-0.416,0.715-0.843
		c0-0.482-0.392-0.875-0.875-0.875H15.139c-0.483,0-0.875,0.393-0.875,0.875s0.392,0.875,0.875,0.875h0.548
		c-0.001,0.053-0.015,0.104-0.006,0.156c0.172,1.05,0.273,2.084,0.343,3.111c-0.008,0-0.015-0.005-0.023-0.005h-1.876
		c-0.62,0-1.125-0.505-1.125-1.125v-6.028c0-0.62,0.505-1.125,1.125-1.125h47c0.62,0,1.125,0.505,1.125,1.125V42.637z"/>
	<path fill="#6699CC" d="M21.625,17.888H52.25c0.482,0,0.875-0.392,0.875-0.875s-0.393-0.875-0.875-0.875H21.625
		c-0.483,0-0.875,0.392-0.875,0.875S21.142,17.888,21.625,17.888z"/>
	<path fill="#6699CC" d="M52.25,29.148H21.625c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875H52.25
		c0.482,0,0.875-0.392,0.875-0.875S52.732,29.148,52.25,29.148z"/>
	<path fill="#6699CC" d="M52.25,22.644H21.625c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875H52.25
		c0.482,0,0.875-0.392,0.875-0.875S52.732,22.644,52.25,22.644z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M65.485,21.85c-0.045-0.113-0.106-0.219-0.2-0.308l-8.679-8.336c-0.027-0.026-0.063-0.038-0.096-0.059
		c-0.057-0.043-0.112-0.088-0.18-0.115c-0.068-0.028-0.138-0.033-0.21-0.042c-0.036-0.005-0.068-0.021-0.106-0.021h-0.017h-0.002
		h-2.861c-0.022-0.031-0.037-0.068-0.066-0.096l-5.014-4.817c-0.03-0.029-0.069-0.041-0.103-0.065
		c-0.056-0.04-0.106-0.082-0.171-0.108c-0.069-0.028-0.142-0.034-0.214-0.043c-0.035-0.004-0.066-0.021-0.104-0.021h-0.017
		c-0.001,0-0.001,0-0.002,0h-2.758c-0.045-0.116-0.107-0.226-0.202-0.317l-5.566-5.346c-0.027-0.028-0.063-0.039-0.095-0.062
		c-0.059-0.042-0.112-0.086-0.178-0.113c-0.071-0.029-0.146-0.036-0.222-0.045c-0.032-0.004-0.063-0.02-0.097-0.02h-0.016
		c0,0-0.002,0-0.004,0H12.87c-1.328,0-2.409,1.081-2.409,2.409v52.485c0,1.327,1.081,2.407,2.409,2.407h3.292
		c0.135,0,0.258-0.037,0.373-0.095v4.823c0,1.349,1.097,2.445,2.444,2.445h3.913v4.391c0,1.374,1.118,2.492,2.493,2.492h37.689
		c1.374,0,2.492-1.117,2.492-2.492V22.204C65.566,22.077,65.532,21.959,65.485,21.85z M56.867,15.82l5.768,5.541l-5.768,0.022V15.82
		z M48.315,10.67l2.393,2.298h-2.393V10.67z M39.182,4.769l3.175,3.049h-3.175V4.769z M16.535,10.262v47.348
		c-0.114-0.058-0.238-0.096-0.373-0.096H12.87c-0.389,0-0.705-0.315-0.705-0.703V4.326c0-0.388,0.316-0.705,0.705-0.705h24.607
		v4.197H18.979C17.631,7.818,16.535,8.914,16.535,10.262z M18.979,64.688c-0.408,0-0.74-0.332-0.74-0.741V10.262
		c0-0.407,0.332-0.739,0.74-0.739h27.632v3.446H25.385c-1.375,0-2.493,1.118-2.493,2.493v49.226L18.979,64.688L18.979,64.688z
		 M63.862,70.782c0,0.435-0.354,0.788-0.788,0.788H25.385c-0.435,0-0.789-0.353-0.789-0.788V15.461c0-0.435,0.354-0.789,0.789-0.789
		h29.777v6.71c0,0.922,0.752,1.673,1.673,1.673h7.027V70.782z"/>
	<path fill="#6699CC" d="M44.111,31.051c-5.154,0-9.888,2.696-12.542,7.079l-2.011-0.76l0.963,5.869l4.603-3.769l-1.931-0.729
		c2.222-3.477,5.952-5.688,10.066-5.958v0.826c0,0.47,0.382,0.852,0.852,0.852c0.471,0,0.853-0.382,0.853-0.852v-0.811
		c6.473,0.423,11.653,5.604,12.077,12.078H56.3c-0.47,0-0.852,0.381-0.852,0.852c0,0.47,0.382,0.853,0.852,0.853h0.741
		c-0.422,6.433-5.542,11.593-11.959,12.071v-0.85c0-0.472-0.382-0.852-0.853-0.852c-0.47,0-0.852,0.38-0.852,0.852v0.868
		c-5.945-0.335-10.939-4.687-12.017-10.604c-0.084-0.464-0.529-0.767-0.992-0.687c-0.463,0.084-0.77,0.528-0.686,0.991
		c1.27,6.975,7.338,12.036,14.428,12.036c0.031,0,0.063-0.006,0.095-0.006c0.009,0,0.016,0.006,0.023,0.006
		c0.015,0,0.024-0.009,0.04-0.009c8.019-0.086,14.519-6.631,14.519-14.67C58.788,37.636,52.204,31.051,44.111,31.051z"/>
	<path fill="#6699CC" d="M43.238,53.289c0,0.471,0.383,0.852,0.853,0.852s0.853-0.381,0.853-0.852v-7.206l4.024-4.023
		c0.331-0.333,0.333-0.872,0-1.204c-0.334-0.334-0.875-0.334-1.206-0.002l-4.272,4.273c-0.079,0.079-0.142,0.173-0.184,0.277
		c-0.044,0.104-0.066,0.215-0.066,0.325l0,0L43.238,53.289L43.238,53.289z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M30.075,34.093H28.1v-9.829c0-0.138-0.112-0.25-0.25-0.25h-1.805c-0.082,0-0.158,0.04-0.205,0.106
		l-7.116,10.142c-0.03,0.042-0.045,0.092-0.045,0.144v1.486c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25
		h1.63c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975c0.138,0,0.25-0.112,0.25-0.25v-1.549C30.325,34.205,30.213,34.093,30.075,34.093z
		 M21.113,34.093l4.413-6.275c0.16-0.241,0.328-0.517,0.5-0.826c-0.037,0.857-0.056,1.651-0.056,2.369v4.732H21.113z"/>
	<path fill="#6699CC" d="M40.443,37.759c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.792,39.58,39.108,40.443,37.759z M36.484,37.825
		c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648c0-2.131,0.25-3.691,0.741-4.638
		c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365c0.489,0.961,0.737,2.515,0.737,4.619
		c0,2.103-0.248,3.661-0.738,4.629C38.259,37.375,37.526,37.825,36.484,37.825z"/>
	<path fill="#6699CC" d="M50.061,24.014c-0.081,0-0.158,0.04-0.205,0.106l-7.117,10.142c-0.029,0.042-0.045,0.092-0.045,0.144v1.486
		c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25h1.631c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975
		c0.138,0,0.25-0.112,0.25-0.25v-1.549c0-0.138-0.112-0.25-0.25-0.25h-1.975v-9.829c0-0.138-0.112-0.25-0.25-0.25H50.061z
		 M45.128,34.093l4.412-6.275c0.16-0.241,0.327-0.517,0.5-0.826c-0.037,0.857-0.056,1.651-0.056,2.369v4.732H45.128z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<path fill="#21A0DF" d="M66.478,27.294c0,0,0-0.001,0-0.001V11.727c0-0.054-0.006-0.107-0.017-0.159
	c0-0.001-0.001-0.002-0.001-0.004c0.006-0.089,0.018-0.178,0.018-0.268c0-0.163-0.049-0.313-0.132-0.439
	c-0.628-2.732-3.608-5.213-8.528-7.054c-5.19-1.943-12.039-3.013-19.281-3.013c-7.244,0-14.091,1.07-19.283,3.013
	c-4.92,1.841-7.9,4.322-8.527,7.055c-0.083,0.126-0.132,0.276-0.132,0.438c0,0.089,0.012,0.178,0.017,0.267c0,0.001,0,0.003,0,0.004
	c-0.011,0.052-0.017,0.105-0.017,0.161v50.829c0,0.057,0.006,0.111,0.017,0.164c0.505,6.453,12.718,11.491,27.925,11.491
	c15.204,0,27.415-5.037,27.923-11.489c0.013-0.053,0.019-0.109,0.019-0.166v-17.66c0-0.002,0-0.002,0-0.003v-0.001V27.296
	C66.478,27.296,66.478,27.295,66.478,27.294z M19.813,5.299c5.017-1.878,11.665-2.911,18.723-2.911
	c7.057,0,13.706,1.033,18.722,2.911c4.615,1.727,7.365,4.025,7.598,6.326c-0.5,4.419-10.945,9.024-26.319,9.024
	c-15.375,0-25.821-4.604-26.319-9.024C12.449,9.324,15.199,7.026,19.813,5.299z M38.536,22.248c12.32,0,22.537-2.975,26.343-7.232
	v12.281c-0.004,5.589-12.066,10.311-26.343,10.311c-14.279,0-26.343-4.723-26.343-10.313V15.015
	C15.999,19.272,26.216,22.248,38.536,22.248z M64.879,62.442c-0.004,0.023-0.006,0.047-0.008,0.068
	c-0.142,2.551-2.929,5.097-7.648,6.987c-5.01,2.008-11.646,3.114-18.687,3.114c-7.041,0-13.678-1.106-18.687-3.114
	c-4.72-1.891-7.507-4.437-7.65-6.987c-0.001-0.021-0.003-0.045-0.006-0.067V48.938c3.806,4.631,14.023,7.867,26.343,7.867
	c12.32,0,22.537-3.236,26.343-7.866V62.442z M64.879,44.895c-0.004,5.59-12.066,10.313-26.343,10.313
	c-14.279,0-26.343-4.724-26.343-10.314V31.34c3.806,4.63,14.023,7.865,26.343,7.865c12.32,0,22.537-3.235,26.343-7.865V44.895z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M65.631,35.152c-0.053-0.112-0.125-0.216-0.227-0.3l-3.545-2.941l2.103-1.267
		c0.263-0.157,0.422-0.438,0.425-0.743c0.002-0.304-0.154-0.588-0.412-0.749l-3.882-2.417l1.966-3.417
		c0.799-1.297,0.395-3.003-0.92-3.815L36.428,5.109c-1.296-0.803-3.003-0.4-3.815,0.913L21.069,25.613
		c-0.146,0.025-0.288,0.074-0.41,0.175l-11.062,9.19c-0.031,0.026-0.046,0.062-0.073,0.09c-0.958,0.463-1.625,1.436-1.625,2.569
		v33.007c0,1.578,1.284,2.862,2.862,2.862h53.477c1.578,0,2.861-1.284,2.861-2.862V37.637
		C67.102,36.567,66.504,35.643,65.631,35.152z M33.131,55.07L9.671,70.753c-0.004-0.037-0.022-0.069-0.022-0.106V37.637
		c0-0.21,0.075-0.396,0.177-0.565c-0.004,0.271,0.101,0.539,0.333,0.714L33.131,55.07z M35.793,55.396
		c0.047-0.032,0.092-0.068,0.132-0.109c0.876-0.875,2.404-0.875,3.277,0c0.041,0.041,0.086,0.078,0.134,0.109L63.87,71.758H11.317
		L35.793,55.396z M65.331,70.63L41.773,54.92l23.502-17.647c0.041,0.115,0.074,0.235,0.074,0.365v33.008v0.002
		C65.343,70.645,65.339,70.635,65.331,70.63z M60.342,32.925l3.71,3.079l-17.312,13l7.267-12.359l6.281-3.786
		C60.309,32.879,60.318,32.906,60.342,32.925z M34.111,6.927c0.295-0.476,0.922-0.623,1.416-0.318l24.709,14.395
		c0.477,0.294,0.625,0.921,0.318,1.42l-2.4,4.171c-0.234,0.409-0.104,0.93,0.296,1.179l3.386,2.108l-8.922,5.377
		c-0.125,0.075-0.229,0.181-0.303,0.306L43.25,51.488c-0.034,0.059-0.044,0.121-0.063,0.185l-2.944,2.21
		c-1.532-1.338-4.009-1.313-5.489,0.104l-0.081,0.055L15.049,39.275L34.111,6.927z M13.642,38.217l-2.431-1.829
		c-0.118-0.089-0.252-0.132-0.389-0.153l7.812-6.489L13.642,38.217z"/>
	<path fill="#6699CC" d="M28.153,46.658c1.823,1.126,3.914,1.721,6.046,1.721c4.031,0,7.701-2.045,9.814-5.47
		c1.617-2.619,2.119-5.711,1.411-8.707s-2.54-5.537-5.159-7.154c-1.822-1.126-3.914-1.721-6.045-1.721
		c-4.03,0-7.699,2.045-9.814,5.47C21.066,36.201,22.747,43.316,28.153,46.658z M42.523,41.989c-1.793,2.905-4.905,4.64-8.325,4.64
		c-1.808,0-3.58-0.505-5.126-1.459c-2.025-1.252-3.431-3.129-4.129-5.229l18.938-4.476C44.21,37.732,43.742,40.02,42.523,41.989z
		 M25.894,31.716c1.794-2.905,4.907-4.64,8.326-4.64c1.807,0,3.58,0.505,5.125,1.46c1.973,1.217,3.413,3.053,4.135,5.227
		l-18.938,4.473C24.226,36.048,24.643,33.741,25.894,31.716z"/>
	<path fill="#6699CC" d="M32.743,20.526c0.139,0.082,0.292,0.121,0.442,0.121c0.3,0,0.592-0.154,0.755-0.432l3.168-5.388
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.417-0.247-0.954-0.105-1.198,0.311l-3.168,5.388
		C32.188,19.745,32.327,20.281,32.743,20.526z"/>
	<path fill="#6699CC" d="M42.586,23.268c0.141,0.082,0.292,0.121,0.441,0.121c0.301,0,0.593-0.154,0.756-0.432l1.838-3.125
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.416-0.244-0.953-0.106-1.197,0.311l-1.838,3.125
		C42.029,22.487,42.169,23.023,42.586,23.268z"/>
	<path fill="#6699CC" d="M49.389,31.182c0.139,0.082,0.291,0.121,0.441,0.121c0.3,0,0.592-0.154,0.755-0.432l3.548-6.034
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.418-0.246-0.953-0.105-1.197,0.311l-3.548,6.034
		C48.832,30.401,48.971,30.937,49.389,31.182z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M13.333,10.792c-0.483,0-0.875,0.392-0.875,0.875v2.167c0,0.483,0.392,0.875,0.875,0.875
		s0.875-0.392,0.875-0.875v-2.167C14.208,11.183,13.817,10.792,13.333,10.792z"/>
	<path fill="#6699CC" d="M34.926,34.313V11.001c0-0.167-0.059-0.314-0.141-0.447c-0.044-0.108-0.109-0.21-0.198-0.297l-6.291-6.118
		C28.267,4.111,28.23,4.1,28.199,4.077c-0.161-0.181-0.388-0.301-0.649-0.301H11.926c-1.034,0-1.875,0.841-1.875,1.875v28.662
		c0,1.034,0.841,1.875,1.875,1.875h21.125C34.084,36.188,34.926,35.346,34.926,34.313z M28.425,6.706l3.517,3.42H28.55
		c-0.069,0-0.125-0.056-0.125-0.125V6.706z M11.801,34.313V5.65c0-0.069,0.056-0.125,0.125-0.125h14.749v4.476
		c0,1.034,0.841,1.875,1.875,1.875h4.626v22.437c0,0.069-0.056,0.125-0.125,0.125H11.926C11.857,34.438,11.801,34.381,11.801,34.313
		z"/>
	<path fill="#6699CC" d="M64.809,45.588c-0.045-0.105-0.109-0.207-0.197-0.293l-6.291-6.119c-0.028-0.027-0.064-0.039-0.096-0.062
		c-0.16-0.183-0.389-0.302-0.649-0.302H41.949c-1.034,0-1.875,0.84-1.875,1.875V69.35c0,1.034,0.841,1.875,1.875,1.875h21.125
		c1.033,0,1.875-0.841,1.875-1.875V46.037C64.949,45.869,64.891,45.723,64.809,45.588z M58.449,41.743l3.515,3.419h-3.39
		c-0.069,0-0.125-0.057-0.125-0.125V41.743z M63.199,69.35c0,0.069-0.057,0.125-0.125,0.125H41.949
		c-0.069,0-0.125-0.056-0.125-0.125V40.688c0-0.068,0.056-0.125,0.125-0.125h14.75v4.476c0,1.034,0.841,1.875,1.875,1.875h4.625
		V69.35z"/>
	<path fill="#6699CC" d="M44.533,44.016c-0.483,0-0.875,0.393-0.875,0.875v2.168c0,0.482,0.392,0.875,0.875,0.875
		c0.482,0,0.875-0.393,0.875-0.875v-2.168C45.408,44.407,45.018,44.016,44.533,44.016z"/>
	<path fill="#6699CC" d="M47.535,44.016c-0.483,0-0.875,0.393-0.875,0.875v2.168c0,0.482,0.392,0.875,0.875,0.875
		c0.482,0,0.875-0.393,0.875-0.875v-2.168C48.41,44.407,48.02,44.016,47.535,44.016z"/>
	<polygon fill="#6699CC" points="31.548,44.113 25.648,42.532 27.229,48.432 28.769,46.893 34.5,52.622 35.737,51.384 
		30.007,45.652 	"/>
	<polygon fill="#6699CC" points="43.452,30.886 49.352,32.467 47.771,26.567 46.23,28.108 40.501,22.378 39.264,23.616 
		44.992,29.346 	"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<circle fill="none" cx="15" cy="15.894" r="5.317"/>
<path fill="#D3D9CE" d="M8.71,5.417H4.312V5.124c0-0.608,0.492-1.101,1.1-1.101h2.198c0.607,0,1.101,0.492,1.101,1.101V5.417z
	 M29.481,8.01v15.766c0,1.217-0.984,2.201-2.199,2.201H2.719c-1.215,0-2.2-0.984-2.2-2.201V8.01c0-1.215,0.985-2.2,2.2-2.2h17.311
	l0.06,0.041l-0.596,0.408c-0.273,0.188-0.392,0.539-0.288,0.85c0.096,0.296,0.368,0.5,0.733,0.519l0.722-0.021l-0.241,0.679
	c-0.111,0.312-0.001,0.665,0.266,0.858c0.128,0.093,0.28,0.143,0.439,0.143c0.162,0,0.323-0.053,0.458-0.155l0.57-0.439l0.205,0.695
	c0.097,0.319,0.386,0.534,0.719,0.534s0.622-0.215,0.72-0.538L24,8.691l0.574,0.442c0.13,0.098,0.291,0.152,0.454,0.152
	c0.158,0,0.31-0.048,0.442-0.143c0.266-0.194,0.374-0.547,0.264-0.857l-0.241-0.68l0.752,0.021c0.336-0.012,0.605-0.212,0.701-0.514
	c0.104-0.314-0.014-0.665-0.288-0.854L26.063,5.85l0.06-0.041h1.159C28.497,5.81,29.481,6.795,29.481,8.01z M20.317,15.894
	c0-2.937-2.38-5.317-5.317-5.317c-2.936,0-5.316,2.381-5.316,5.317s2.381,5.317,5.316,5.317
	C17.938,21.211,20.317,18.83,20.317,15.894z M26.376,6.67c0.091,0.063,0.131,0.178,0.096,0.283
	c-0.033,0.105-0.121,0.168-0.244,0.173l-1.45-0.041l0.486,1.367c0.037,0.104,0.001,0.221-0.088,0.286
	c-0.09,0.064-0.212,0.063-0.3-0.004L23.727,7.85l-0.41,1.392c-0.032,0.106-0.13,0.179-0.24,0.179s-0.208-0.073-0.24-0.179
	l-0.41-1.392l-1.148,0.885c-0.089,0.066-0.211,0.068-0.299,0.004c-0.09-0.065-0.126-0.182-0.089-0.286l0.486-1.367l-1.451,0.041
	c-0.114-0.006-0.21-0.067-0.244-0.173c-0.035-0.105,0.005-0.221,0.096-0.283l1.197-0.82l-0.06-0.041l-1.138-0.78
	c-0.091-0.063-0.131-0.178-0.096-0.283c0.034-0.105,0.132-0.163,0.244-0.173l1.451,0.041L20.89,3.248
	c-0.037-0.104-0.001-0.221,0.089-0.286c0.088-0.065,0.21-0.063,0.299,0.004l1.148,0.884l0.41-1.392c0.064-0.213,0.416-0.213,0.48,0
	l0.41,1.392l1.149-0.885c0.088-0.068,0.21-0.069,0.3-0.004c0.089,0.065,0.125,0.182,0.088,0.286l-0.486,1.366l1.45-0.04
	c0.121,0.008,0.211,0.067,0.244,0.173c0.035,0.105-0.005,0.221-0.096,0.283l-1.138,0.78l-0.06,0.041L26.376,6.67z M25.393,6.603
	l-0.798-0.547c-0.067-0.046-0.108-0.124-0.108-0.206c0-0.014,0.008-0.027,0.01-0.041c0.012-0.066,0.043-0.127,0.099-0.166
	l0.798-0.547l-0.967,0.027c-0.069,0.017-0.16-0.036-0.209-0.103s-0.061-0.153-0.033-0.231l0.324-0.911l-0.766,0.589
	c-0.064,0.051-0.15,0.066-0.229,0.04c-0.078-0.025-0.14-0.088-0.163-0.167l-0.273-0.929l-0.273,0.929
	c-0.023,0.079-0.085,0.142-0.163,0.167c-0.078,0.026-0.164,0.012-0.229-0.04L21.646,3.88l0.324,0.91
	c0.027,0.078,0.016,0.164-0.033,0.231c-0.048,0.066-0.142,0.101-0.209,0.103L20.76,5.097l0.798,0.547
	c0.056,0.039,0.087,0.1,0.099,0.166c0.002,0.014,0.01,0.026,0.01,0.041c0,0.083-0.041,0.16-0.108,0.206L20.76,6.603l0.968-0.027
	c0.086,0,0.161,0.037,0.209,0.103c0.049,0.067,0.061,0.153,0.033,0.231l-0.324,0.91l0.765-0.589
	c0.044-0.034,0.098-0.052,0.152-0.052c0.026,0,0.052,0.004,0.077,0.012c0.078,0.025,0.14,0.088,0.163,0.167l0.273,0.929l0.273-0.929
	c0.023-0.079,0.085-0.142,0.163-0.167c0.079-0.024,0.165-0.011,0.229,0.04l0.766,0.589l-0.324-0.91
	c-0.027-0.078-0.016-0.164,0.033-0.231c0.048-0.067,0.121-0.122,0.209-0.103L25.393,6.603z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M56.164,37.484c-0.059-0.082-0.122-0.162-0.212-0.215c-0.005-0.002-0.01-0.001-0.015-0.004
		c-0.004-0.002-0.005-0.006-0.009-0.008l-2.159-1.183c-0.606-4.582-3.073-8.809-6.781-11.605c-0.079-0.059-0.167-0.093-0.256-0.123
		v-2.987c0-0.135-0.037-0.264-0.104-0.376c-0.021-0.037-0.061-0.057-0.088-0.09c-0.055-0.064-0.102-0.135-0.177-0.179
		c-0.004-0.002-0.009-0.001-0.013-0.003c-0.004-0.002-0.005-0.007-0.009-0.009l-8.482-4.647c-0.225-0.123-0.496-0.123-0.721,0
		l-8.483,4.647c-0.004,0.002-0.005,0.006-0.009,0.008c-0.004,0.002-0.009,0.001-0.013,0.004c-0.075,0.044-0.124,0.115-0.178,0.181
		c-0.026,0.032-0.066,0.053-0.087,0.088c-0.065,0.113-0.103,0.242-0.103,0.376v3.111c-0.087,0.03-0.174,0.063-0.251,0.121
		c-3.66,2.766-6.112,6.938-6.745,11.458l-2.203,1.207c-0.004,0.002-0.005,0.007-0.009,0.009c-0.004,0.002-0.009,0.001-0.013,0.003
		c-0.075,0.044-0.122,0.114-0.176,0.179c-0.027,0.033-0.067,0.053-0.089,0.09c-0.065,0.113-0.103,0.242-0.103,0.376v10.221
		c0,0.272,0.148,0.524,0.387,0.656l8.483,4.695c0.113,0.063,0.238,0.094,0.363,0.094s0.25-0.031,0.363-0.094l2.121-1.174
		c0.097,0.127,0.215,0.239,0.376,0.3c2.006,0.758,4.12,1.143,6.283,1.143c2.454,0,4.83-0.491,7.061-1.459
		c0.079-0.034,0.14-0.089,0.202-0.142l2.406,1.332c0.113,0.063,0.238,0.094,0.363,0.094s0.25-0.031,0.363-0.094l8.482-4.696
		c0.238-0.132,0.387-0.384,0.387-0.656v-10.22c0-0.136-0.039-0.266-0.105-0.379C56.202,37.515,56.179,37.503,56.164,37.484z
		 M39.354,47.691v-8.511l6.984,3.824v8.553L39.354,47.691z M47.775,41.328l-0.688,0.376l-6.923-3.79l6.923-3.792l6.92,3.792
		L47.775,41.328z M29.767,22.625l6.983,3.825v8.554l-6.983-3.867V22.625z M38.251,26.449l6.981-3.825v8.512l-6.981,3.867V26.449z
		 M37.5,17.566l6.921,3.792L37.5,25.15l-6.922-3.792L37.5,17.566z M28.927,41.148l-1.015,0.556l-6.922-3.79l6.922-3.792l6.921,3.792
		L28.927,41.148z M20.179,39.181l6.983,3.823v8.554l-6.983-3.865V39.181z M28.662,43.004l6.983-3.824v8.513l-6.983,3.865V43.004z
		 M32.29,51.265l4.469-2.474c0.239-0.132,0.387-0.384,0.387-0.656V37.914c0-0.136-0.038-0.265-0.104-0.377
		c-0.017-0.028-0.048-0.043-0.068-0.069c-0.057-0.073-0.113-0.149-0.195-0.198c-0.004-0.002-0.01-0.001-0.014-0.004
		c-0.003-0.002-0.005-0.007-0.009-0.009l-8.482-4.647c-0.225-0.123-0.496-0.123-0.721,0l-4.299,2.355
		c0.743-3.207,2.516-6.133,5.015-8.303v4.917c0,0.273,0.148,0.524,0.387,0.656l8.483,4.697c0.113,0.063,0.238,0.094,0.363,0.094
		s0.25-0.031,0.363-0.094l8.482-4.697c0.238-0.132,0.387-0.383,0.387-0.656v-5.045c2.547,2.205,4.339,5.188,5.065,8.46l-4.35-2.384
		c-0.225-0.123-0.496-0.123-0.721,0l-8.484,4.647c-0.004,0.002-0.006,0.007-0.009,0.009c-0.005,0.002-0.01,0.001-0.014,0.004
		c-0.075,0.044-0.123,0.115-0.177,0.18c-0.027,0.032-0.066,0.053-0.087,0.088c-0.065,0.113-0.103,0.242-0.103,0.376v10.22
		c0,0.272,0.148,0.524,0.387,0.656l4.14,2.291C39.143,52.218,35.566,52.28,32.29,51.265z M54.82,47.691l-6.982,3.866v-8.554
		l4.363-2.39l2.619-1.435V47.691z"/>
	<path fill="#6699CC" d="M66.554,43.38l-4.544-3.116c0.121-1.014,0.178-1.903,0.178-2.765c0-0.859-0.057-1.75-0.178-2.769
		l4.543-3.11c0.297-0.203,0.439-0.567,0.358-0.918c-0.412-1.793-0.948-3.472-1.594-4.992c-0.141-0.331-0.435-0.543-0.83-0.532
		l-5.511,0.151c-0.905-1.59-2.004-3.092-3.274-4.478l1.841-5.181c0.121-0.339,0.021-0.717-0.25-0.953
		c-1.303-1.134-2.73-2.171-4.244-3.083c-0.307-0.186-0.699-0.165-0.984,0.056l-4.357,3.352c-1.702-0.773-3.47-1.349-5.269-1.714
		l-1.552-5.281c-0.103-0.346-0.405-0.594-0.765-0.625c-1.425-0.122-3.825-0.122-5.243,0c-0.359,0.031-0.663,0.279-0.764,0.625
		l-1.555,5.281c-1.798,0.365-3.565,0.94-5.266,1.714l-4.355-3.352c-0.286-0.22-0.676-0.243-0.983-0.057
		c-1.515,0.908-2.946,1.945-4.253,3.084c-0.271,0.236-0.37,0.614-0.25,0.953l1.844,5.18c-1.275,1.391-2.375,2.893-3.277,4.478
		l-5.509-0.151c-0.358-0.016-0.689,0.202-0.829,0.533c-0.652,1.535-1.173,3.167-1.593,4.991c-0.081,0.351,0.061,0.715,0.358,0.918
		l4.543,3.11c-0.119,0.998-0.177,1.909-0.177,2.769c0,0.858,0.058,1.768,0.177,2.767L8.446,43.38
		c-0.296,0.203-0.438,0.566-0.358,0.917c0.41,1.786,0.945,3.464,1.593,4.987c0.14,0.332,0.474,0.531,0.829,0.533l5.51-0.151
		c0.902,1.586,2.001,3.09,3.276,4.481l-1.843,5.181c-0.121,0.339-0.021,0.717,0.25,0.953c1.297,1.129,2.727,2.166,4.251,3.084
		c0.309,0.188,0.7,0.164,0.985-0.056l4.356-3.355c1.701,0.775,3.467,1.351,5.265,1.715l1.553,5.28
		c0.102,0.345,0.403,0.593,0.761,0.624c1.039,0.094,1.849,0.135,2.625,0.135c0.776,0,1.585-0.041,2.625-0.135
		c0.357-0.031,0.66-0.279,0.762-0.624l1.552-5.28c1.8-0.365,3.565-0.94,5.263-1.715l4.363,3.355c0.285,0.22,0.677,0.241,0.985,0.056
		c1.521-0.917,2.949-1.955,4.249-3.085c0.271-0.236,0.371-0.614,0.25-0.954l-1.845-5.18c1.272-1.391,2.372-2.895,3.277-4.48
		l5.506,0.151c0.401-0.007,0.688-0.202,0.829-0.532c0.646-1.516,1.182-3.193,1.595-4.987C66.992,43.947,66.85,43.583,66.554,43.38z
		 M63.932,48.051l-5.433-0.149c-0.369-0.005-0.637,0.169-0.794,0.459c-0.961,1.778-2.185,3.451-3.637,4.975
		c-0.229,0.238-0.303,0.586-0.191,0.897l1.82,5.112c-0.951,0.792-1.972,1.532-3.045,2.21l-4.307-3.313
		c-0.261-0.202-0.617-0.238-0.913-0.095c-1.871,0.902-3.835,1.542-5.837,1.901c-0.326,0.059-0.592,0.297-0.686,0.614l-1.533,5.217
		c-1.425,0.108-2.333,0.106-3.754,0l-1.535-5.217c-0.093-0.318-0.359-0.556-0.685-0.614c-2-0.358-3.964-0.998-5.839-1.901
		c-0.298-0.145-0.651-0.107-0.914,0.095l-4.3,3.313c-1.076-0.678-2.096-1.418-3.046-2.209l1.819-5.114
		c0.111-0.312,0.037-0.658-0.191-0.897c-1.456-1.523-2.678-3.196-3.634-4.973c-0.157-0.29-0.467-0.472-0.794-0.46l-5.438,0.149
		c-0.44-1.112-0.821-2.308-1.134-3.567l4.489-3.076c0.273-0.187,0.417-0.512,0.373-0.84c-0.155-1.135-0.23-2.139-0.23-3.068
		c0-0.932,0.075-1.937,0.23-3.07c0.044-0.328-0.1-0.653-0.373-0.84l-4.488-3.072c0.318-1.28,0.692-2.458,1.135-3.573l5.437,0.149
		c0.326,0.02,0.637-0.169,0.794-0.459c0.957-1.774,2.18-3.446,3.635-4.969c0.229-0.239,0.303-0.586,0.192-0.898l-1.82-5.114
		c0.956-0.796,1.976-1.536,3.045-2.207l4.299,3.309c0.262,0.202,0.616,0.239,0.913,0.095c1.875-0.902,3.841-1.542,5.842-1.901
		c0.326-0.059,0.591-0.296,0.685-0.614l1.536-5.216c1.131-0.084,2.618-0.084,3.753,0l1.533,5.215
		c0.094,0.318,0.358,0.556,0.685,0.615c2.002,0.36,3.968,1,5.845,1.901c0.297,0.143,0.651,0.106,0.912-0.095l4.301-3.309
		c1.068,0.673,2.087,1.413,3.04,2.207l-1.817,5.114c-0.111,0.312-0.037,0.659,0.191,0.897c1.449,1.516,2.672,3.188,3.632,4.969
		c0.157,0.291,0.414,0.481,0.795,0.459l5.438-0.149c0.44,1.111,0.82,2.308,1.136,3.573l-4.487,3.072
		c-0.272,0.187-0.417,0.511-0.373,0.839c0.157,1.169,0.23,2.146,0.23,3.072c0,0.929-0.073,1.903-0.23,3.067
		c-0.044,0.327,0.1,0.652,0.372,0.839l4.488,3.077C64.752,45.747,64.371,46.943,63.932,48.051z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<path fill="#5968B3" d="M17.181,20.485H2.421l12.867-8.158l3.352,3.626l0.637,0.018c0.034-0.048,0.069-0.097,0.105-0.144
	l-0.293-0.826c-0.12-0.34-0.023-0.713,0.248-0.951c0.308-0.27,0.642-0.512,0.99-0.72c0.137-0.081,0.291-0.123,0.448-0.123
	c0.191,0,0.381,0.064,0.532,0.18l0.694,0.534c0.058-0.02,0.115-0.039,0.173-0.057l0.248-0.84c0.102-0.346,0.399-0.591,0.759-0.624
	c0.146-0.014,0.298-0.017,0.448-0.021V6.147H1.62V21.29h15.78c-0.071-0.215-0.155-0.416-0.207-0.647
	C17.181,20.59,17.183,20.538,17.181,20.485z M10.705,8.189c0.956,0,1.731,0.775,1.731,1.731c0,0.956-0.775,1.73-1.731,1.73
	c-0.956,0-1.731-0.774-1.731-1.73C8.974,8.964,9.75,8.189,10.705,8.189z M2.368,9.563l7.593,5.435l-7.593,4.729V9.563z
	 M23.63,17.247v3.792c-0.466-0.04-0.886-0.239-1.196-0.554h0.395l-0.911-0.986c-0.021-0.115-0.036-0.233-0.036-0.355
	C21.881,18.145,22.653,17.332,23.63,17.247z M24.298,20.979v-3.673c0.335,0.092,0.634,0.268,0.869,0.511v2.652
	C24.932,20.712,24.633,20.888,24.298,20.979z M19.383,22.458l-0.163,0.458H0.083V4.582h25.084v8.451l-0.003-0.008
	c-0.102-0.346-0.399-0.591-0.759-0.625c-0.035-0.003-0.071-0.002-0.107-0.005V5.451H0.952v16.596h16.776
	c0.163,0.176,0.397,0.286,0.666,0.291l0.883-0.024C19.311,22.362,19.346,22.41,19.383,22.458z M23.794,25.418
	c-0.191,0-0.378-0.012-0.563-0.027c-0.154-0.014-0.284-0.119-0.328-0.268l-0.326-1.106c-0.224-0.058-0.444-0.13-0.659-0.217
	l-0.913,0.702c-0.122,0.094-0.29,0.104-0.422,0.024c-0.326-0.195-0.634-0.419-0.916-0.666c-0.115-0.102-0.157-0.263-0.106-0.408
	l0.387-1.088c-0.149-0.179-0.286-0.365-0.408-0.559l-1.158,0.032c-0.149-0.003-0.294-0.086-0.354-0.227
	c-0.143-0.331-0.259-0.694-0.346-1.078c-0.033-0.149,0.027-0.305,0.154-0.392l0.95-0.65c-0.009-0.115-0.014-0.231-0.014-0.349
	s0.005-0.232,0.014-0.348l-0.95-0.65c-0.127-0.087-0.188-0.242-0.154-0.393c0.087-0.382,0.203-0.745,0.346-1.078
	c0.061-0.143,0.19-0.232,0.354-0.228l1.158,0.032c0.122-0.193,0.259-0.38,0.408-0.557l-0.387-1.088
	c-0.051-0.145-0.009-0.306,0.106-0.408c0.285-0.25,0.594-0.474,0.917-0.666c0.133-0.078,0.299-0.068,0.421,0.025l0.913,0.702
	c0.219-0.088,0.439-0.161,0.659-0.216l0.326-1.105c0.043-0.147,0.172-0.253,0.325-0.268c0.371-0.035,0.758-0.035,1.132,0
	c0.153,0.014,0.282,0.12,0.325,0.268l0.326,1.104c0.22,0.056,0.44,0.128,0.659,0.217l0.914-0.702
	c0.121-0.094,0.288-0.104,0.421-0.024c0.325,0.194,0.633,0.418,0.916,0.666c0.116,0.101,0.158,0.263,0.106,0.408l-0.387,1.088
	c0.149,0.177,0.286,0.363,0.408,0.557l1.158-0.032c0.137-0.004,0.294,0.085,0.354,0.228c0.144,0.334,0.26,0.696,0.347,1.078
	c0.034,0.149-0.027,0.306-0.154,0.393l-0.95,0.65c0.009,0.115,0.013,0.23,0.013,0.348s-0.004,0.233-0.013,0.349l0.95,0.65
	c0.127,0.087,0.188,0.242,0.154,0.393c-0.087,0.383-0.203,0.745-0.347,1.077c-0.062,0.141-0.214,0.228-0.354,0.227l-1.158-0.032
	c-0.121,0.193-0.258,0.38-0.408,0.559l0.387,1.088c0.052,0.146,0.01,0.307-0.106,0.408c-0.283,0.248-0.592,0.472-0.916,0.666
	c-0.132,0.08-0.299,0.07-0.421-0.024L25.67,23.8c-0.215,0.087-0.436,0.159-0.659,0.217l-0.326,1.106
	c-0.044,0.148-0.174,0.254-0.328,0.268C24.171,25.406,23.983,25.418,23.794,25.418z M23.548,24.661c0.162,0.008,0.328,0.008,0.491,0
	l0.314-1.067c0.039-0.133,0.148-0.232,0.284-0.261c0.317-0.065,0.631-0.169,0.93-0.306c0.125-0.061,0.273-0.043,0.385,0.044
	l0.882,0.677c0.137-0.091,0.271-0.188,0.399-0.29l-0.374-1.05c-0.046-0.132-0.017-0.277,0.078-0.38
	c0.225-0.245,0.419-0.51,0.576-0.788c0.068-0.121,0.191-0.206,0.337-0.19l1.115,0.031c0.056-0.15,0.105-0.306,0.149-0.468
	l-0.919-0.629c-0.115-0.079-0.177-0.216-0.16-0.355c0.02-0.159,0.03-0.321,0.03-0.486s-0.011-0.326-0.03-0.485
	c-0.017-0.139,0.045-0.276,0.16-0.355l0.919-0.629c-0.044-0.162-0.094-0.318-0.149-0.47l-1.115,0.031
	c-0.143-0.006-0.268-0.069-0.337-0.189c-0.158-0.279-0.352-0.544-0.576-0.787c-0.095-0.102-0.124-0.248-0.078-0.38l0.374-1.049
	c-0.129-0.103-0.262-0.199-0.399-0.29l-0.882,0.677c-0.11,0.084-0.258,0.101-0.383,0.044c-0.309-0.14-0.622-0.242-0.931-0.305
	c-0.136-0.028-0.246-0.128-0.285-0.262l-0.314-1.067c-0.164-0.009-0.328-0.008-0.491,0l-0.314,1.067
	c-0.039,0.133-0.149,0.234-0.285,0.262c-0.309,0.063-0.622,0.165-0.931,0.305c-0.128,0.055-0.274,0.04-0.384-0.044l-0.881-0.677
	c-0.137,0.09-0.271,0.188-0.398,0.29l0.373,1.05c0.046,0.132,0.017,0.277-0.078,0.38c-0.224,0.243-0.418,0.508-0.577,0.787
	c-0.067,0.12-0.204,0.18-0.336,0.189l-1.115-0.031c-0.056,0.15-0.105,0.308-0.148,0.47l0.918,0.629
	c0.115,0.079,0.178,0.216,0.16,0.354c-0.019,0.159-0.03,0.321-0.03,0.486s0.012,0.327,0.031,0.487
	c0.017,0.139-0.046,0.275-0.161,0.354l-0.919,0.629c0.044,0.162,0.094,0.318,0.149,0.468l1.115-0.031
	c0.135-0.012,0.269,0.069,0.337,0.189c0.158,0.279,0.352,0.544,0.577,0.789c0.094,0.103,0.123,0.249,0.077,0.38l-0.373,1.05
	c0.128,0.102,0.262,0.199,0.399,0.29l0.88-0.677c0.11-0.085,0.259-0.103,0.385-0.044c0.3,0.137,0.613,0.24,0.932,0.306
	c0.135,0.028,0.244,0.128,0.283,0.261L23.548,24.661z M23.794,22.306c-1.744,0-3.163-1.419-3.163-3.162
	c0-1.744,1.419-3.163,3.163-3.163c1.743,0,3.162,1.419,3.162,3.163C26.956,20.887,25.537,22.306,23.794,22.306z M23.794,16.73
	c-1.33,0-2.413,1.082-2.413,2.413c0,1.33,1.083,2.412,2.413,2.412s2.412-1.082,2.412-2.412C26.206,17.813,25.124,16.73,23.794,16.73
	z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<circle fill="none" cx="15" cy="15.894" r="5.317"/>
<path fill="#83B04A" d="M8.71,5.417H4.312V5.124c0-0.608,0.492-1.101,1.1-1.101h2.198c0.607,0,1.101,0.492,1.101,1.101V5.417z
	 M29.481,8.01v15.766c0,1.217-0.984,2.201-2.199,2.201H2.719c-1.215,0-2.2-0.984-2.2-2.201V8.01c0-1.215,0.985-2.2,2.2-2.2h17.311
	l0.06,0.041l-0.596,0.408c-0.273,0.188-0.392,0.539-0.288,0.85c0.096,0.296,0.368,0.5,0.733,0.519l0.722-0.021l-0.241,0.679
	c-0.111,0.312-0.001,0.665,0.266,0.858c0.128,0.093,0.28,0.143,0.439,0.143c0.162,0,0.323-0.053,0.458-0.155l0.57-0.439l0.205,0.695
	c0.097,0.319,0.386,0.534,0.719,0.534s0.622-0.215,0.72-0.538L24,8.691l0.574,0.442c0.13,0.098,0.291,0.152,0.454,0.152
	c0.158,0,0.31-0.048,0.442-0.143c0.266-0.194,0.374-0.547,0.264-0.857l-0.241-0.68l0.752,0.021c0.336-0.012,0.605-0.212,0.701-0.514
	c0.104-0.314-0.014-0.665-0.288-0.854L26.063,5.85l0.06-0.041h1.159C28.497,5.81,29.481,6.795,29.481,8.01z M20.317,15.894
	c0-2.937-2.38-5.317-5.317-5.317c-2.936,0-5.316,2.381-5.316,5.317s2.381,5.317,5.316,5.317
	C17.938,21.211,20.317,18.83,20.317,15.894z M26.376,6.67c0.091,0.063,0.131,0.178,0.096,0.283
	c-0.033,0.105-0.121,0.168-0.244,0.173l-1.45-0.041l0.486,1.367c0.037,0.104,0.001,0.221-0.088,0.286
	c-0.09,0.064-0.212,0.063-0.3-0.004L23.727,7.85l-0.41,1.392c-0.032,0.106-0.13,0.179-0.24,0.179s-0.208-0.073-0.24-0.179
	l-0.41-1.392l-1.148,0.885c-0.089,0.066-0.211,0.068-0.299,0.004c-0.09-0.065-0.126-0.182-0.089-0.286l0.486-1.367l-1.451,0.041
	c-0.114-0.006-0.21-0.067-0.244-0.173c-0.035-0.105,0.005-0.221,0.096-0.283l1.197-0.82l-0.06-0.041l-1.138-0.78
	c-0.091-0.063-0.131-0.178-0.096-0.283c0.034-0.105,0.132-0.163,0.244-0.173l1.451,0.041L20.89,3.248
	c-0.037-0.104-0.001-0.221,0.089-0.286c0.088-0.065,0.21-0.063,0.299,0.004l1.148,0.884l0.41-1.392c0.064-0.213,0.416-0.213,0.48,0
	l0.41,1.392l1.149-0.885c0.088-0.068,0.21-0.069,0.3-0.004c0.089,0.065,0.125,0.182,0.088,0.286l-0.486,1.366l1.45-0.04
	c0.121,0.008,0.211,0.067,0.244,0.173c0.035,0.105-0.005,0.221-0.096,0.283l-1.138,0.78l-0.06,0.041L26.376,6.67z M25.393,6.603
	l-0.798-0.547c-0.067-0.046-0.108-0.124-0.108-0.206c0-0.014,0.008-0.027,0.01-0.041c0.012-0.066,0.043-0.127,0.099-0.166
	l0.798-0.547l-0.967,0.027c-0.069,0.017-0.16-0.036-0.209-0.103s-0.061-0.153-0.033-0.231l0.324-0.911l-0.766,0.589
	c-0.064,0.051-0.15,0.066-0.229,0.04c-0.078-0.025-0.14-0.088-0.163-0.167l-0.273-0.929l-0.273,0.929
	c-0.023,0.079-0.085,0.142-0.163,0.167c-0.078,0.026-0.164,0.012-0.229-0.04L21.646,3.88l0.324,0.91
	c0.027,0.078,0.016,0.164-0.033,0.231c-0.048,0.066-0.142,0.101-0.209,0.103L20.76,5.097l0.798,0.547
	c0.056,0.039,0.087,0.1,0.099,0.166c0.002,0.014,0.01,0.026,0.01,0.041c0,0.083-0.041,0.16-0.108,0.206L20.76,6.603l0.968-0.027
	c0.086,0,0.161,0.037,0.209,0.103c0.049,0.067,0.061,0.153,0.033,0.231l-0.324,0.91l0.765-0.589
	c0.044-0.034,0.098-0.052,0.152-0.052c0.026,0,0.052,0.004,0.077,0.012c0.078,0.025,0.14,0.088,0.163,0.167l0.273,0.929l0.273-0.929
	c0.023-0.079,0.085-0.142,0.163-0.167c0.079-0.024,0.165-0.011,0.229,0.04l0.766,0.589l-0.324-0.91
	c-0.027-0.078-0.016-0.164,0.033-0.231c0.048-0.067,0.121-0.122,0.209-0.103L25.393,6.603z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M52.641,66.489"/>
</g>
<g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M57.921,65.491"/>
</g>
<g>
	<g>
		
			<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
			M53.936,70.87c0,1.066-0.863,1.934-1.934,1.934H22.996c-1.067,0-1.934-0.867-1.934-1.934l-4.836-41.04
			c0-1.068,0.865-1.934,1.934-1.934h38.68c1.066,0,1.934,0.865,1.934,1.934L53.936,70.87z"/>
		<g>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="28.981" y1="64.313" x2="29.308" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="25.676" y1="34.846" x2="26.435" y2="41.617"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="46.018" y1="64.315" x2="45.691" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="49.322" y1="34.846" x2="48.59" y2="41.371"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="37.306" y1="65.769" x2="37.306" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="37.306" y1="34.846" x2="37.306" y2="36.875"/>
		</g>
	</g>
</g>
<g>
	
		<circle fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="37.5" cy="51.575" r="10.203"/>
	<g>
		
			<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="32.717" y1="46.79" x2="42.285" y2="56.358"/>
		
			<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="32.717" y1="56.358" x2="42.285" y2="46.79"/>
	</g>
</g>
<g>
	<g>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M30.396,27.369
			l-3.276-7.024l2.402-1.121c2.317-1.08,3.895-0.719,4.733,1.081c0.438,0.939,0.455,1.809,0.05,2.612
			c-0.405,0.803-1.203,1.481-2.396,2.039l-1.089,0.508l0.857,1.838 M30.39,24.54l0.97-0.453c0.955-0.445,1.573-0.922,1.857-1.429
			c0.282-0.508,0.265-1.101-0.052-1.781c-0.286-0.613-0.699-0.976-1.24-1.089c-0.543-0.112-1.237,0.029-2.086,0.425l-1.204,0.562
			L30.39,24.54z"/>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M46.293,22.687
			l-1.076,0.502l-2.033-4.36l-4.883,2.276l2.034,4.361l-1.078,0.501L34.936,16.7l1.078-0.502l1.839,3.943l4.88-2.276l-1.838-3.943
			l1.076-0.501L46.293,22.687z"/>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M51.648,12.196
			c0.436,0.938,0.454,1.808,0.049,2.611c-0.406,0.804-1.203,1.483-2.395,2.039l-1.09,0.509L49.911,21l-1.076,0.502l-4.322-9.266
			l2.401-1.121C49.23,10.036,50.809,10.396,51.648,12.196z M47.781,16.43l0.969-0.453c0.954-0.445,1.574-0.921,1.857-1.429
			c0.281-0.506,0.266-1.101-0.053-1.781c-0.285-0.612-0.698-0.976-1.239-1.088c-0.542-0.112-1.237,0.029-2.087,0.425l-1.203,0.56
			L47.781,16.43z"/>
	</g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M20.102,27.406c-0.618-4.872,5.762-11.804,15.299-16.251c10.491-4.893,20.834-4.923,23.098-0.07
		c2.069,4.442-3.342,11.436-12.312,16.34"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M30.075,34.094H28.1v-9.829c0-0.138-0.112-0.25-0.25-0.25h-1.805c-0.082,0-0.158,0.04-0.205,0.106
		l-7.116,10.142c-0.03,0.042-0.045,0.092-0.045,0.144v1.486c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25
		h1.63c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975c0.138,0,0.25-0.112,0.25-0.25v-1.549C30.325,34.206,30.213,34.094,30.075,34.094z
		 M25.97,29.361v4.732h-4.857l4.413-6.275c0.16-0.241,0.328-0.517,0.5-0.826C25.988,27.85,25.97,28.644,25.97,29.361z"/>
	<path fill="#6699CC" d="M40.443,37.76c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.793,39.58,39.109,40.443,37.76z M38.726,36.452
		c-0.467,0.925-1.2,1.375-2.242,1.375c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648
		c0-2.131,0.25-3.691,0.741-4.638c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365
		c0.489,0.961,0.737,2.515,0.737,4.619C39.464,33.925,39.216,35.483,38.726,36.452z"/>
	<path fill="#6699CC" d="M53.068,27.874c0-1.234-0.438-2.222-1.301-2.936c-0.85-0.702-2.045-1.057-3.553-1.057
		c-0.913,0-1.794,0.145-2.619,0.43c-0.824,0.283-1.564,0.681-2.201,1.183c-0.107,0.084-0.127,0.238-0.046,0.346l0.861,1.148
		c0.078,0.105,0.224,0.131,0.335,0.061c0.723-0.463,1.371-0.785,1.928-0.956c0.556-0.169,1.155-0.255,1.783-0.255
		c0.798,0,1.432,0.191,1.886,0.567c0.446,0.37,0.663,0.871,0.663,1.53c0,0.84-0.303,1.478-0.926,1.949
		c-0.636,0.48-1.521,0.723-2.629,0.723h-1.496c-0.138,0-0.25,0.112-0.25,0.25v1.467c0,0.138,0.112,0.25,0.25,0.25h1.477
		c2.715,0,4.035,0.811,4.035,2.478c0,1.881-1.189,2.796-3.636,2.796c-0.635,0-1.318-0.083-2.031-0.246
		c-0.713-0.162-1.393-0.402-2.021-0.713c-0.077-0.038-0.17-0.034-0.243,0.012s-0.118,0.126-0.118,0.212v1.619
		c0,0.096,0.055,0.184,0.141,0.225c0.639,0.311,1.308,0.529,1.987,0.652c0.669,0.122,1.417,0.184,2.224,0.184
		c1.873,0,3.346-0.405,4.378-1.206c1.051-0.815,1.583-1.991,1.583-3.494c0-1.06-0.316-1.932-0.939-2.592
		c-0.466-0.493-1.12-0.849-1.951-1.062c0.637-0.243,1.16-0.595,1.563-1.051C52.776,29.735,53.068,28.889,53.068,27.874z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M63.657,12.237c-0.046-0.116-0.109-0.227-0.205-0.318L52.954,1.835c-0.028-0.027-0.065-0.039-0.097-0.062
		c-0.061-0.043-0.115-0.089-0.187-0.117c-0.067-0.027-0.144-0.034-0.215-0.043c-0.037-0.005-0.069-0.022-0.108-0.022H52.33h-0.001
		H14.114c-1.577,0-2.86,1.283-2.86,2.859v66.923c0,1.577,1.283,2.859,2.86,2.859h46.773c1.575,0,2.858-1.282,2.858-2.859V12.608
		C63.746,12.474,63.711,12.351,63.657,12.237z M53.223,4.52l7.51,7.213h-7.395c-0.064,0-0.115-0.052-0.115-0.118V4.52z
		 M61.996,71.373c0,0.611-0.498,1.109-1.109,1.109H14.114c-0.612,0-1.11-0.498-1.11-1.109V4.45c0-0.612,0.498-1.109,1.11-1.109
		h37.359v8.274c0,1.03,0.836,1.868,1.864,1.868h8.658L61.996,71.373L61.996,71.373z"/>
	<path fill="#6699CC" d="M45.43,44.486c-6.656,0-12.072,5.416-12.072,12.072c0,6.655,5.416,12.071,12.072,12.071
		c6.655,0,12.071-5.415,12.071-12.071S52.085,44.486,45.43,44.486z M45.43,66.881c-5.691,0-10.322-4.63-10.322-10.32
		s4.63-10.321,10.322-10.321c5.69,0,10.321,4.631,10.321,10.321S51.12,66.881,45.43,66.881z"/>
	<path fill="#6699CC" d="M51.299,50.689c-0.342-0.342-0.896-0.342-1.238,0L45.43,55.32l-4.631-4.631
		c-0.342-0.342-0.896-0.342-1.238,0c-0.34,0.342-0.34,0.896,0,1.236l4.631,4.633l-4.631,4.631c-0.34,0.342-0.34,0.896,0,1.236
		c0.172,0.172,0.396,0.258,0.619,0.258s0.448-0.086,0.619-0.258l4.631-4.631l4.631,4.631c0.172,0.172,0.396,0.258,0.619,0.258
		s0.448-0.086,0.619-0.258c0.342-0.342,0.342-0.896,0-1.236l-4.631-4.631l4.631-4.633C51.641,51.586,51.641,51.031,51.299,50.689z"
		/>
	<path fill="#6699CC" d="M19.826,18.879c0,0.483,0.392,0.875,0.875,0.875h33.598c0.483,0,0.875-0.392,0.875-0.875
		s-0.392-0.875-0.875-0.875H20.701C20.218,18.004,19.826,18.396,19.826,18.879z"/>
	<path fill="#6699CC" d="M20.701,29.511h33.598c0.483,0,0.875-0.392,0.875-0.875c0-0.483-0.392-0.875-0.875-0.875H20.701
		c-0.483,0-0.875,0.392-0.875,0.875C19.826,29.119,20.218,29.511,20.701,29.511z"/>
	<path fill="#6699CC" d="M20.701,39.27h33.598c0.483,0,0.875-0.393,0.875-0.875s-0.392-0.875-0.875-0.875H20.701
		c-0.483,0-0.875,0.392-0.875,0.875S20.218,39.27,20.701,39.27z"/>
	<path fill="#6699CC" d="M30.125,47.275h-9.423c-0.483,0-0.875,0.393-0.875,0.875s0.392,0.875,0.875,0.875h9.423
		c0.483,0,0.875-0.393,0.875-0.875S30.608,47.275,30.125,47.275z"/>
	<path fill="#6699CC" d="M27.75,57.034h-7.049c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875h7.049
		c0.483,0,0.875-0.392,0.875-0.875S28.233,57.034,27.75,57.034z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M48.201,23.882l-17.297-7.355c-0.446-0.188-0.959,0.018-1.147,0.463c-0.189,0.445,0.018,0.958,0.463,1.147
		l17.295,7.355c0.112,0.047,0.229,0.07,0.344,0.07c0.34,0,0.664-0.2,0.806-0.533C48.854,24.585,48.646,24.071,48.201,23.882z"/>
	<path fill="#6699CC" d="M34.828,23.886l-5.931-2.612c-0.445-0.195-0.959,0.006-1.153,0.448c-0.195,0.442,0.006,0.958,0.448,1.153
		l5.931,2.612c0.115,0.05,0.234,0.074,0.352,0.074c0.336,0,0.657-0.195,0.801-0.522C35.471,24.597,35.271,24.081,34.828,23.886z"/>
	<path fill="#6699CC" d="M54.087,26.923h-0.974l2.484-5.843c0.545-1.285-0.057-2.775-1.341-3.322l-2.211-0.94l1.563-5.534
		c0.379-1.344-0.405-2.746-1.75-3.125l-24.201-6.84c-1.35-0.379-2.748,0.405-3.127,1.75l-3.207,11.346
		c-0.021,0.075-0.016,0.149-0.017,0.224l-0.816-0.103c-1.38-0.168-2.655,0.812-2.83,2.198l-1.28,10.189h-0.976
		c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993c0.03,1.523,1.278,2.753,2.808,2.753H49.25
		c1.529,0,2.777-1.229,2.809-2.753l4.832-40.993c0.004-0.034,0.006-0.068,0.006-0.103C56.896,28.183,55.637,26.923,54.087,26.923z
		 M53.986,20.396l-2.555,6.01c-0.072,0.171-0.07,0.348-0.035,0.517H22.179L29.4,9.941c0.169-0.397,0.63-0.584,1.028-0.415
		l20.28,8.623c0.017,0.006,0.028,0.019,0.046,0.024c0.005,0.001,0.01,0,0.016,0.002l2.804,1.192
		C53.971,19.537,54.156,19.999,53.986,20.396z M26.216,3.543c0.118-0.416,0.549-0.661,0.968-0.541l24.201,6.839
		c0.416,0.118,0.659,0.552,0.543,0.967l-1.504,5.318l-19.311-8.21c-1.285-0.547-2.776,0.055-3.323,1.34l-2.517,5.918
		c-0.063-0.023-0.12-0.054-0.188-0.063l-2.065-0.259L26.216,3.543z M19.399,16.952c0.054-0.429,0.439-0.733,0.875-0.68l4.303,0.54
		l-4.037,9.495c-0.087,0.205-0.082,0.421-0.017,0.617h-2.377L19.399,16.952z M50.314,70.669c-0.004,0.034-0.006,0.067-0.006,0.103
		c0,0.584-0.476,1.06-1.06,1.06H20.243c-0.583,0-1.059-0.476-1.059-1.06c0-0.033-0.002-0.067-0.006-0.103l-4.83-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h38.68c0.568,0,1.034,0.451,1.059,1.015L50.314,70.669z"/>
	<path fill="#6699CC" d="M32.34,58.307h-4.416c-1.123,0-1.969-0.352-2.322-0.964s-0.234-1.521,0.328-2.491l0.327-0.565l1.131,0.653
		l0.001-4.362l-3.779,2.18l1.131,0.653l-0.326,0.564c-0.896,1.551-1.013,3.058-0.329,4.242c0.685,1.188,2.048,1.84,3.838,1.84h4.416
		c0.483,0,0.875-0.392,0.875-0.875C33.215,58.699,32.824,58.307,32.34,58.307z"/>
	<path fill="#6699CC" d="M39.508,46.949l-0.003-4.362l-1.13,0.653l-0.365-0.631c-0.549-0.951-1.248-1.637-2.074-2.035
		c-0.927-0.45-1.947-0.451-2.874-0.004c-0.831,0.402-1.53,1.088-2.079,2.037l-2.222,3.843c-0.242,0.419-0.099,0.954,0.319,1.196
		c0.138,0.078,0.289,0.117,0.437,0.117c0.302,0,0.596-0.156,0.758-0.438l2.222-3.844c0.371-0.642,0.816-1.092,1.325-1.336
		c0.448-0.217,0.902-0.217,1.35,0.002c0.506,0.244,0.951,0.692,1.322,1.336l0.365,0.631l-1.131,0.654L39.508,46.949z"/>
	<path fill="#6699CC" d="M42.328,50.08c-0.241-0.419-0.776-0.561-1.195-0.32c-0.419,0.242-0.563,0.777-0.32,1.195l2.252,3.896
		c0.562,0.971,0.682,1.879,0.328,2.49c-0.354,0.613-1.199,0.965-2.322,0.965h-0.637V57l-3.779,2.182l3.779,2.183v-1.308h0.637
		c1.791,0,3.154-0.652,3.839-1.841c0.684-1.187,0.565-2.692-0.33-4.241L42.328,50.08z"/>
	<path fill="#6699CC" d="M26.13,63.346c-0.48,0.055-0.826,0.486-0.772,0.967l0.327,2.908c0.05,0.447,0.429,0.777,0.869,0.777
		c0.033,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-0.327-2.908C27.043,63.637,26.613,63.294,26.13,63.346z"/>
	<path fill="#6699CC" d="M24.216,47.162c0.032,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-1.294-11.541
		c-0.054-0.48-0.482-0.826-0.967-0.772c-0.48,0.054-0.826,0.487-0.772,0.967l1.294,11.54C23.398,46.832,23.777,47.162,24.216,47.162
		z"/>
	<path fill="#6699CC" d="M43.361,63.348c-0.489-0.058-0.912,0.291-0.967,0.771l-0.326,2.906c-0.055,0.479,0.291,0.912,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.777l0.326-2.906C44.188,63.834,43.843,63.4,43.361,63.348z"/>
	<path fill="#6699CC" d="M46.668,33.877c-0.486-0.053-0.913,0.292-0.967,0.772l-1.297,11.563c-0.055,0.479,0.291,0.913,0.771,0.968
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.869-0.777l1.297-11.563C47.494,34.364,47.148,33.931,46.668,33.877z"/>
	<path fill="#6699CC" d="M34.553,63.373c-0.483,0-0.875,0.393-0.875,0.875v2.875c0,0.482,0.392,0.875,0.875,0.875
		c0.483,0,0.875-0.393,0.875-0.875v-2.875C35.428,63.766,35.037,63.373,34.553,63.373z"/>
	<path fill="#6699CC" d="M34.553,37.435c0.483,0,0.875-0.392,0.875-0.875v-1.813c0-0.483-0.392-0.875-0.875-0.875
		c-0.483,0-0.875,0.392-0.875,0.875v1.813C33.678,37.043,34.07,37.435,34.553,37.435z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<g id="Layer_1_1_" display="none">
	<path display="inline" fill="#E8AE4A" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.51,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.321,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.357,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy_3" display="none">
	<path display="inline" fill="#4675B8" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.51,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.321,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.357,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy" display="none">
	<path display="inline" fill="#A32430" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M15.159,13.764c0.187,0.188,0.288,0.438,0.288,0.697c0,0.262-0.102,0.51-0.288,0.695
		c-0.185,0.184-0.438,0.289-0.698,0.289c-0.262,0-0.518-0.105-0.697-0.291L10,11.393l-3.764,3.766c-0.361,0.359-1.033,0.359-1.393,0
		c-0.187-0.186-0.29-0.434-0.29-0.695s0.103-0.512,0.289-0.695L8.606,10L4.842,6.234c-0.385-0.384-0.385-1.01,0-1.394
		c0.359-0.361,1.032-0.361,1.394,0L10,8.604l3.766-3.765c0.356-0.359,1.033-0.361,1.396,0c0.188,0.185,0.288,0.433,0.288,0.697
		c0.001,0.264-0.104,0.511-0.288,0.697l-3.767,3.764L15.159,13.764z"/>
</g>
<g>
	<circle fill="#CC3D6A" cx="10" cy="10" r="9.967"/>
</g>
<path fill="#FFFFFF" d="M11.414,10l3.503-3.503c0.392-0.391,0.392-1.024,0-1.414c-0.392-0.391-1.022-0.391-1.414,0L10,8.586
	L6.497,5.082c-0.391-0.391-1.023-0.391-1.414,0c-0.391,0.39-0.391,1.023,0,1.414L8.586,10l-3.503,3.504
	c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293L10,11.414l3.502,3.503
	c0.195,0.194,0.451,0.293,0.707,0.293s0.512-0.099,0.707-0.293c0.391-0.392,0.391-1.022,0-1.414L11.414,10z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M50.955,23.981l-17.298-7.355c-0.446-0.19-0.959,0.018-1.147,0.463c-0.189,0.445,0.018,0.958,0.463,1.147
		l17.296,7.355c0.112,0.047,0.229,0.07,0.344,0.07c0.34,0,0.664-0.2,0.806-0.533C51.605,24.684,51.398,24.17,50.955,23.981z"/>
	<path fill="#6699CC" d="M37.581,23.984l-5.931-2.612c-0.443-0.195-0.959,0.006-1.153,0.448c-0.195,0.442,0.006,0.958,0.448,1.153
		l5.931,2.612c0.115,0.05,0.234,0.074,0.352,0.074c0.336,0,0.657-0.195,0.801-0.522C38.225,24.695,38.023,24.179,37.581,23.984z"/>
	<path fill="#6699CC" d="M56.841,27.021h-0.973l2.483-5.843c0.545-1.285-0.057-2.775-1.34-3.322l-2.213-0.94l1.564-5.533
		c0.379-1.344-0.406-2.746-1.75-3.125l-24.202-6.84c-1.341-0.379-2.748,0.405-3.127,1.75l-3.206,11.346
		c-0.021,0.075-0.016,0.149-0.017,0.224l-0.817-0.103c-0.67-0.085-1.336,0.098-1.87,0.513c-0.535,0.416-0.875,1.014-0.958,1.685
		l-1.28,10.189H18.16c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753h29.007c1.53,0,2.778-1.229,2.808-2.753l4.834-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		C59.648,28.281,58.391,27.021,56.841,27.021z M56.328,19.466c0.396,0.169,0.581,0.631,0.412,1.028l-2.555,6.01
		c-0.072,0.171-0.07,0.348-0.035,0.517H24.933l7.222-16.982c0.082-0.192,0.233-0.341,0.427-0.419c0.195-0.079,0.408-0.077,0.6,0.005
		l20.276,8.621c0.019,0.006,0.03,0.021,0.05,0.026c0.006,0.001,0.012,0.001,0.016,0.002L56.328,19.466z M28.969,3.642
		c0.118-0.416,0.549-0.659,0.968-0.541L54.139,9.94c0.416,0.118,0.658,0.552,0.543,0.967l-1.505,5.318l-19.311-8.21
		c-0.624-0.265-1.312-0.271-1.939-0.018c-0.628,0.253-1.119,0.736-1.383,1.358l-2.517,5.918c-0.062-0.023-0.12-0.054-0.188-0.063
		l-2.065-0.259L28.969,3.642z M22.152,17.049c0.026-0.208,0.131-0.393,0.296-0.521c0.166-0.128,0.374-0.185,0.579-0.159l4.304,0.54
		l-4.037,9.495c-0.087,0.205-0.082,0.421-0.017,0.617H20.9L22.152,17.049z M53.066,70.768c-0.004,0.034-0.006,0.068-0.006,0.104
		c0,0.584-0.475,1.059-1.059,1.059H22.996c-0.583,0-1.059-0.475-1.059-1.059c0-0.034-0.002-0.068-0.006-0.104l-4.829-40.98
		c0.023-0.563,0.489-1.015,1.058-1.015h38.681c0.569,0,1.034,0.451,1.058,1.015L53.066,70.768z"/>
	<path fill="#6699CC" d="M28.884,63.443c-0.48,0.055-0.826,0.486-0.772,0.968l0.326,2.907c0.05,0.447,0.429,0.777,0.869,0.777
		c0.032,0,0.065-0.002,0.099-0.006c0.48-0.054,0.826-0.486,0.772-0.967l-0.326-2.908C29.797,63.734,29.364,63.382,28.884,63.443z"/>
	<path fill="#6699CC" d="M26.532,42.486c0.48-0.055,0.826-0.486,0.772-0.967l-0.759-6.771c-0.054-0.479-0.479-0.819-0.967-0.772
		c-0.48,0.054-0.826,0.487-0.772,0.967l0.759,6.771c0.05,0.447,0.429,0.777,0.869,0.777C26.466,42.492,26.499,42.49,26.532,42.486z"
		/>
	<path fill="#6699CC" d="M46.116,63.445c-0.485-0.057-0.914,0.291-0.968,0.771l-0.325,2.906c-0.056,0.48,0.29,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.818-0.33,0.867-0.777l0.326-2.905C46.941,63.934,46.598,63.5,46.116,63.445z"/>
	<path fill="#6699CC" d="M49.421,33.976c-0.487-0.052-0.913,0.292-0.967,0.772l-0.731,6.525c-0.056,0.479,0.291,0.912,0.771,0.967
		c0.032,0.004,0.065,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.731-6.525C50.247,34.463,49.9,34.03,49.421,33.976z"/>
	<path fill="#6699CC" d="M37.306,64.895c-0.483,0-0.875,0.392-0.875,0.875v1.453c0,0.482,0.392,0.875,0.875,0.875
		s0.875-0.393,0.875-0.875V65.77C38.182,65.285,37.789,64.895,37.306,64.895z"/>
	<path fill="#6699CC" d="M37.306,37.75c0.483,0,0.875-0.392,0.875-0.875v-2.029c0-0.483-0.393-0.875-0.875-0.875
		s-0.875,0.392-0.875,0.875v2.029C36.431,37.358,36.822,37.75,37.306,37.75z"/>
	<path fill="#6699CC" d="M37.5,40.496c-6.108,0-11.078,4.97-11.078,11.079c0,6.108,4.97,11.077,11.078,11.077
		c6.109,0,11.079-4.969,11.079-11.077C48.578,45.466,43.607,40.496,37.5,40.496z M37.5,60.902c-5.144,0-9.328-4.185-9.328-9.327
		c0-5.146,4.185-9.329,9.328-9.329c5.145,0,9.329,4.186,9.329,9.329C46.828,56.719,42.645,60.902,37.5,60.902z"/>
	<path fill="#6699CC" d="M38.74,51.574l4.164-4.165c0.341-0.343,0.341-0.896,0-1.238c-0.342-0.342-0.896-0.342-1.238,0L37.5,50.336
		l-4.166-4.165c-0.342-0.342-0.896-0.342-1.237,0c-0.341,0.343-0.342,0.896,0,1.238l4.165,4.165l-4.165,4.165
		c-0.342,0.342-0.342,0.896,0,1.237c0.171,0.172,0.395,0.256,0.619,0.256c0.224,0,0.448-0.084,0.619-0.256l4.166-4.164l4.166,4.164
		c0.171,0.172,0.396,0.256,0.619,0.256c0.223,0,0.448-0.084,0.618-0.256c0.342-0.342,0.342-0.896,0-1.237L38.74,51.574z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M60.912,72.441H14.087c-1.493,0-2.708-1.214-2.708-2.708V5.266c0-1.493,1.215-2.708,2.708-2.708h46.827
		c1.492,0,2.708,1.215,2.708,2.708v64.468C63.62,71.228,62.406,72.441,60.912,72.441z M14.087,4.206c-0.584,0-1.06,0.476-1.06,1.06
		v64.468c0,0.584,0.476,1.061,1.06,1.061h46.827c0.583,0,1.06-0.477,1.06-1.061V5.266c0-0.583-0.477-1.06-1.06-1.06H14.087z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,16.858h-32.25c-0.483,0-0.875-0.392-0.875-0.875s0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875S54.107,16.858,53.625,16.858z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,27.617h-32.25c-0.483,0-0.875-0.392-0.875-0.875c0-0.483,0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875C54.5,27.225,54.107,27.617,53.625,27.617z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,38.375h-32.25c-0.483,0-0.875-0.392-0.875-0.875s0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875S54.107,38.375,53.625,38.375z"/>
</g>
<g>
	<path fill="#6699CC" d="M29.373,49.133h-7.998c-0.483,0-0.875-0.392-0.875-0.875c0-0.482,0.392-0.875,0.875-0.875h7.998
		c0.483,0,0.875,0.393,0.875,0.875C30.248,48.741,29.856,49.133,29.373,49.133z"/>
</g>
<g>
	<path fill="#6699CC" d="M27.763,59.893h-6.388c-0.483,0-0.875-0.392-0.875-0.875c0-0.482,0.392-0.875,0.875-0.875h6.388
		c0.483,0,0.875,0.393,0.875,0.875C28.638,59.501,28.247,59.893,27.763,59.893z"/>
</g>
<g>
	<path fill="#6699CC" d="M35.727,49.516"/>
</g>
<g>
	<path fill="#6699CC" d="M50.613,64.8"/>
</g>
<g>
	<g>
		<path fill="#6699CC" d="M44.561,67.521c-6.457,0-11.709-5.254-11.709-11.711c0-0.719,0.066-1.438,0.195-2.141l1.721,0.318
			c-0.11,0.597-0.166,1.21-0.166,1.822c0,5.491,4.467,9.959,9.959,9.959c1.992,0,3.916-0.586,5.563-1.696l0.979,1.45
			C49.165,66.831,46.902,67.521,44.561,67.521z"/>
	</g>
	<g>
		<g>
			<polygon fill="#6699CC" points="30.879,53.666 35.572,49.759 36.61,55.777 			"/>
		</g>
	</g>
</g>
<g>
	<g>
		<path fill="#6699CC" d="M56.075,57.952l-1.722-0.316c0.11-0.6,0.166-1.214,0.166-1.823c0-5.492-4.468-9.961-9.959-9.961
			c-1.994,0-3.918,0.588-5.564,1.698l-0.979-1.45c1.937-1.308,4.198-1.998,6.543-1.998c6.457,0,11.709,5.254,11.709,11.711
			C56.271,56.527,56.205,57.248,56.075,57.952z"/>
	</g>
	<g>
		<g>
			<polygon fill="#6699CC" points="58.242,57.958 53.548,61.865 52.512,55.848 			"/>
		</g>
	</g>
</g>
<g>
	<path fill="#6699CC" d="M38.507,46.824"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M62.406,13.464c-0.043-0.11-0.104-0.216-0.195-0.303L52.215,3.56c-0.026-0.026-0.062-0.038-0.092-0.059
		c-0.057-0.041-0.109-0.085-0.177-0.111c-0.064-0.026-0.136-0.032-0.204-0.042c-0.035-0.004-0.067-0.021-0.104-0.021h-0.017H51.62
		H15.233c-1.502,0-2.724,1.222-2.724,2.723v63.723c0,1.501,1.222,2.723,2.724,2.723h44.535c1.501,0,2.723-1.222,2.723-2.723V13.818
		C62.491,13.69,62.458,13.573,62.406,13.464z M52.471,6.117l7.151,6.868h-7.041c-0.062,0-0.11-0.049-0.11-0.112V6.117z
		 M60.825,69.773c0,0.582-0.475,1.056-1.057,1.056H15.233c-0.583,0-1.057-0.474-1.057-1.056V6.05c0-0.583,0.474-1.057,1.057-1.057
		h35.571v7.879c0,0.98,0.798,1.778,1.776,1.778h8.244V69.773z"/>
	<path fill="#6699CC" d="M48.729,51.256c0-0.625-0.237-1.467-1.205-2.305c-1.33-2.633-2.331-4.074-4.078-6.423
		c-0.821-1.105-1.484-1.938-2.035-2.611c0.551-0.672,1.21-1.505,2.035-2.613c2.146-2.881,3.215-4.476,5.181-8.708
		c0.103-0.222,0.098-0.472,0.002-0.686c0-0.006,0.002-0.012,0.002-0.018c0-3.198-9.991-3.292-11.13-3.292
		s-11.129,0.092-11.129,3.292c0,0.004,0.001,0.008,0.001,0.011c-0.097,0.217-0.103,0.468,0,0.691
		c1.964,4.232,3.034,5.828,5.178,8.709c0.819,1.102,1.481,1.935,2.037,2.611c-0.553,0.675-1.215,1.51-2.037,2.612
		c-1.747,2.35-2.747,3.791-4.079,6.427c-0.961,0.834-1.202,1.675-1.202,2.301c0,0.1,0.022,0.193,0.034,0.291
		c-0.004,0.089,0.006,0.177,0.03,0.261c0.628,2.83,6.047,4.35,11.167,4.35c5.116,0,10.532-1.518,11.165-4.345
		c0.026-0.091,0.039-0.184,0.033-0.279C48.709,51.44,48.729,51.351,48.729,51.256z M41.804,49.128
		c-1.129,1.13-2.541,1.291-4.304,1.291s-3.12-0.108-4.303-1.291c0.818-1.763,1.247-2.388,2.112-3.55
		c0.865-1.164,1.309-1.616,2.19-2.693c0.88,1.077,1.325,1.529,2.189,2.693C40.555,46.742,40.983,47.366,41.804,49.128z
		 M32.099,50.228c1.612,1.611,3.474,1.746,5.401,1.746c1.769,0,3.79-0.135,5.4-1.746c0.395-0.395,0.524-0.96,0.387-1.486
		c0.854,0.238,1.614,0.524,2.225,0.852c0.263,0.142,0.489,0.289,0.69,0.438c0.21,0.421,0.428,0.87,0.66,1.365
		c-2.329,2.055-5.235,2.472-9.362,2.472c-3.839,0-6.8-0.185-9.363-2.47c0.233-0.497,0.452-0.946,0.663-1.37
		c0.21-0.155,0.453-0.31,0.732-0.456c0,0,0-0.001,0.001-0.001s0,0,0,0c0.6-0.316,1.345-0.594,2.18-0.827
		C31.576,49.268,31.706,49.833,32.099,50.228z M46.795,27.78c-3.325,1.332-5.402,1.703-9.295,1.703c-3.892,0-5.968-0.37-9.293-1.702
		c0.833-0.623,4.14-1.513,9.294-1.513C42.653,26.267,45.96,27.156,46.795,27.78z M32.887,43.522c1.029-1.38,1.801-2.328,2.421-3.073
		c0.257-0.31,0.257-0.758,0-1.066c-0.622-0.747-1.396-1.698-2.421-3.074c-1.672-2.246-2.638-3.645-3.91-6.153
		c3.044,0.983,7.762,1.026,8.523,1.026s5.476-0.043,8.52-1.025c-1.271,2.509-2.238,3.907-3.911,6.153
		c-1.033,1.388-1.803,2.333-2.42,3.073c-0.257,0.309-0.257,0.757,0,1.066c0.619,0.741,1.391,1.688,2.42,3.073
		c1.122,1.507,1.924,2.636,2.714,3.963c-0.712-0.258-1.497-0.481-2.347-0.656l0,0h-0.004c-0.002,0-0.002-0.001-0.004-0.001
		c0,0,0,0-0.001,0l-0.093-0.02c-0.437-0.782-0.845-1.358-1.438-2.157c-0.606-0.814-1.013-1.292-1.482-1.849
		c-0.225-0.266-0.465-0.548-0.753-0.901c-0.589-0.72-1.814-0.72-2.405,0c-0.289,0.354-0.53,0.64-0.754,0.903
		c-0.469,0.557-0.874,1.034-1.479,1.847c-0.595,0.801-1.002,1.375-1.438,2.157c-0.89,0.179-1.711,0.409-2.452,0.679
		C30.963,46.158,31.766,45.031,32.887,43.522z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="22px" height="22px" viewBox="0 0 22 22" enable-background="new 0 0 22 22" xml:space="preserve">
<path fill="#00749C" d="M13.039,7.954c-0.063-0.128-0.193-0.21-0.336-0.21c-0.119,0-0.207,0.054-0.268,0.102L9.84,9.838
	c-0.208,0.158-0.254,0.461-0.104,0.675l0.813,1.17l-1.521,1.93c-0.141,0.18-0.113,0.336-0.065,0.434
	c0.06,0.125,0.194,0.209,0.334,0.209c0.123,0,0.208-0.055,0.271-0.102l2.593-1.992c0.158-0.121,0.211-0.33,0.145-0.578
	c-0.011-0.041-0.027-0.076-0.051-0.114l-0.803-1.154l1.52-1.93C13.111,8.207,13.086,8.052,13.039,7.954z"/>
<path fill="#00749C" d="M21.771,10.677L11.323,0.229c-0.088-0.086-0.202-0.135-0.324-0.135c-0.123,0-0.236,0.048-0.324,0.134
	L0.228,10.677c-0.086,0.088-0.134,0.201-0.134,0.324c0,0.122,0.048,0.236,0.134,0.324l10.448,10.446
	c0.087,0.088,0.202,0.135,0.324,0.135s0.237-0.047,0.324-0.135l10.446-10.447c0.088-0.085,0.136-0.201,0.136-0.323
	C21.905,10.879,21.856,10.765,21.771,10.677z M11.424,1.625l8.956,8.956h-2.99c-0.016,0-0.035,0.001-0.051,0.003l-5.915-5.913V1.625
	z M10.584,1.617v3.045l-5.92,5.919H1.62L10.584,1.617z M10.584,20.387L1.62,11.421h3.044l5.92,5.918V20.387z M10.999,16.504
	l-5.501-5.502L10.999,5.5l5.503,5.502L10.999,16.504z M11.424,20.377v-3.045l5.913-5.914c0.018,0.001,0.037,0.003,0.053,0.003h2.99
	L11.424,20.377z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="22px" height="22px" viewBox="0 0 22 22" enable-background="new 0 0 22 22" xml:space="preserve">
<path fill="#777777" d="M13.039,7.954c-0.063-0.128-0.193-0.21-0.336-0.21c-0.119,0-0.207,0.054-0.268,0.102L9.84,9.838
	c-0.208,0.158-0.254,0.461-0.104,0.675l0.813,1.17l-1.521,1.93c-0.141,0.18-0.113,0.336-0.065,0.434
	c0.06,0.125,0.194,0.209,0.334,0.209c0.123,0,0.208-0.055,0.271-0.102l2.593-1.992c0.158-0.121,0.211-0.33,0.145-0.578
	c-0.011-0.041-0.027-0.076-0.051-0.114l-0.803-1.154l1.52-1.93C13.111,8.207,13.086,8.052,13.039,7.954z"/>
<path fill="#777777" d="M21.771,10.677L11.323,0.229c-0.088-0.086-0.202-0.135-0.324-0.135c-0.123,0-0.236,0.048-0.324,0.134
	L0.228,10.677c-0.086,0.088-0.134,0.201-0.134,0.324c0,0.122,0.048,0.236,0.134,0.324l10.448,10.446
	c0.087,0.088,0.202,0.135,0.324,0.135s0.237-0.047,0.324-0.135l10.446-10.447c0.088-0.085,0.136-0.201,0.136-0.323
	C21.905,10.879,21.856,10.765,21.771,10.677z M11.424,1.625l8.956,8.956h-2.99c-0.016,0-0.035,0.001-0.051,0.003l-5.915-5.913V1.625
	z M10.584,1.617v3.045l-5.92,5.919H1.62L10.584,1.617z M10.584,20.387L1.62,11.421h3.044l5.92,5.918V20.387z M10.999,16.504
	l-5.501-5.502L10.999,5.5l5.503,5.502L10.999,16.504z M11.424,20.377v-3.045l5.913-5.914c0.018,0.001,0.037,0.003,0.053,0.003h2.99
	L11.424,20.377z"/>
</svg>
�PNG


IHDRZZv�0�PLTEGpL�����������u������������������ռ�������а�������˝��������������z}jknsvy���Kdrs�3��hikc�5������������M����efi��Sy�_�J��1Ds��AԤ_ad�������ج��;r�{����ss/:GQ7im����,��X'\]_bJ#Do[]`uI��tRNS`���(��MlIDATx���!EQ,��_�w���r��yj��m��EF����f@�1"�!���2�I[d��e���fӁCL)��I>��a���n��w��g/�i�p��I)�E�<B] ���mh.��Kپ�W���Bb��sǭ�c��#O����'8��Z�6P��o9�,C���ma�6�mk�:�i]�Æl��hz�m4� u	\��\L�i؞�4t4���K����X�E4�~л_��??��Ū��<��A�L�w�jv������	��p�Q�����i�ӏu�|hO���-ڸ��^
t��p<yj}%����{[w��9����I�sؕܠmՅtsy��<������������lz:���ZZv�LH���9mJt�܀�̦؍;��h�AM����^��sАn���GI�6�r��}�!kh�e�Z�yp�R�M�l��,���Bȋ�p�1��r0/��z�l?T�٫��8�<����52����f���feyq!�c�h{ui���=�3�Zؐ2�w\S�|<�&mD�$MrKE71�Z��acE�tb�\����Ey�M2�$����ֹ<����k�ln^3�/�5�$m8~�u.� Os�:���$�䒝$�����n6aS�Tʳɕ�u��.֔7,����DV�6l�!o����F���xټ��ުf��F6hFT4�g��h4�8�	�����l~,`�W��g��	�-��it����$�ɀ}X����u��r���ē$i<%�{��&EOG,�?���S#> d�ٛח�����2�Y���I�i�=ˆ8N�m���-dDʉ��,���F�;P���fR�tN�!��8��Q�������k�6mbDL��|<9��{;�8@>bB����Hʒ�i
��(2"m
�GȘ]�=�m�l�oK��[6:�벌�T���+e�ە���bJrLr\Ƞ������\�%�X�b��I��E&��!��(-�?w� {�T�o�r��>.��O'��O�����p!��5EE�lG�/#m��<�:��]L!B6AW�6`��s\�|���͠wE�vN9�ʷi�fT��
��2��D;Jڦe���;�3�^�A�ֶCt�U��Yv��7����hӁ�ֿ>�C�o�$���Վ^@�t4p��H��Ӭ�-����u�s�e������Y�܋"�|��?Xt�f��2l��t�{�FB���>�@%�,t���x��9C�+Y�Wuf�ŏ��n[�2ֻH�>'�Մ���O:j��ky^;
���9��.Q��,�����w�RL��S�N�vu4d��rK##�a�h��k:k�S'

��ɚX8��?}�y�mY���O���r����܎�����yr��O��?��:�E�VIEND�B`�<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="32px" height="32px" viewBox="0 0 32 32" enable-background="new 0 0 32 32" xml:space="preserve">
<path fill="#FFCE00" d="M18.955,11.586c-0.09-0.185-0.281-0.305-0.486-0.305c-0.174,0-0.301,0.079-0.389,0.147l-3.761,2.888
	c-0.301,0.229-0.368,0.669-0.151,0.979l1.179,1.696l-2.204,2.796c-0.204,0.262-0.165,0.486-0.096,0.629
	c0.086,0.181,0.281,0.303,0.484,0.303c0.178,0,0.302-0.081,0.391-0.149l3.76-2.887c0.229-0.173,0.305-0.478,0.209-0.836
	c-0.016-0.059-0.039-0.111-0.074-0.166l-1.164-1.672l2.205-2.797C19.061,11.952,19.023,11.729,18.955,11.586z"/>
<path fill="#00CCFF" d="M31.611,15.531L16.469,0.389C16.344,0.264,16.177,0.194,16,0.194c-0.178,0-0.344,0.069-0.47,0.194
	L0.389,15.531C0.264,15.656,0.195,15.822,0.195,16c0,0.177,0.069,0.344,0.194,0.469L15.531,31.61
	c0.126,0.126,0.292,0.194,0.47,0.194c0.177,0,0.344-0.068,0.469-0.194l15.142-15.142c0.125-0.124,0.195-0.291,0.195-0.469
	C31.807,15.823,31.736,15.656,31.611,15.531z M16.616,2.412l12.98,12.979h-4.334c-0.023,0-0.051,0.002-0.074,0.005l-8.572-8.57
	V2.412z M15.398,2.399v4.413l-8.579,8.578H2.406L15.398,2.399z M15.398,29.601L2.406,16.609h4.413l8.579,8.578V29.601z M16,23.974
	L8.027,16L16,8.026L23.975,16L16,23.974z M16.616,29.587v-4.413l8.57-8.569c0.025,0.003,0.053,0.005,0.076,0.005h4.334
	L16.616,29.587z"/>
<path fill="#3399CC" d="M16,8.026L8.027,16L16,23.974L23.975,16L16,8.026z M17.816,16.681c0.035,0.055,0.059,0.107,0.074,0.166
	c0.096,0.358,0.02,0.663-0.209,0.836l-3.76,2.887c-0.089,0.068-0.213,0.149-0.391,0.149c-0.203,0-0.398-0.122-0.484-0.303
	c-0.069-0.143-0.108-0.367,0.096-0.629l2.204-2.796l-1.179-1.696c-0.217-0.31-0.149-0.749,0.151-0.979l3.761-2.888
	c0.088-0.068,0.215-0.147,0.389-0.147c0.205,0,0.396,0.12,0.486,0.305c0.068,0.143,0.105,0.366-0.098,0.626l-2.205,2.797
	L17.816,16.681z M25.188,15.396l-8.572-8.57V2.412l12.98,12.979h-4.334C25.238,15.391,25.211,15.393,25.188,15.396z M6.819,15.391
	H2.406L15.398,2.399v4.413L6.819,15.391z M6.819,16.609l8.579,8.578v4.413L2.406,16.609H6.819z M25.262,16.609h4.334l-12.98,12.978
	v-4.413l8.57-8.569C25.211,16.607,25.238,16.609,25.262,16.609z"/>
</svg>
�PNG


IHDR,,N�~G�PLTE>PY>PY>PY>PY>PY>PY>PY>PY>PY>PY>PY>PY>PY>PY>PY\ks\ks\ks\ks\ks\ks\ks\ks\ks\ks\ks\ks\ks\ks\ksp��p��p��p��p��p��p��p��p��p��p��p��p��p��p��f��f��f��f��f��f��f��f��f��f��f��f��f��f��f��>PY\ksp��f��^ۧ_=tRNS 0@P`p���������������p`P@0  0@P`p���������������p`P@0 ���,
IDATx��k[�8�(2�"���P�@���x��UmmK�$4I�0�{�e�ҡ7o����`�0����!��>6-���Y�����������'�Ge1F���t=&�`y�s���cjё���a�S��p2�
ך���qU�q8#9={z\6��\,r����,4���9�N7��3AG�n{�сL�����AM���IX�O&/��6�ra"��wu��a�n�\\"����
�U7��\1l�=.Tm�����tٽ쮟U�~0�]��U��;��T���,���Z0�3j{�"2s��lM)�u�-tQ̎�ǖ�X�8tI�m������ǖ��x�T*3����E��mYA^�u��	�z�揭Yj!jD�G�����	�m��"|�������	y�P�%.�3V�9�Ѱ�q>D��
��sE
X�[6��G��Ä�ɖI�-F�g^&�,�;Ĕf�۹c�"�%0z��!����S��9�l�Y�v�H���jj������5C"���X��U��h*��2��ٱ%V�Aߎ#�bKw�����4+`9UpA~,�"l�	
G�;��)%G�.��sL��DKB+�bl�SKlHS6V�S~l͕-�AV�%=���ޛ,�}z���Rm2=�W���f��}+����^>�������y�"uJ7��SK#we=ov<>�.�����Y�2�~�����?�Xʍ����>6O��V�7W,F�u��M��^S�%�+i���g=o�<�n`��b���i)��Af"����ñ������m�
�md�����ų���I��w%�PM�z֟M���60\�V�&|�O�qlI��i��m�,��m���Ji�Rq�V�>(�fR�]MY.s���ǦD[2b��|cE2�]~�m-e�Z
���є:�1�-�
C���7�������j�6�Bsg���M���y�����p_�o<�>�l`��ʲ8L��͌ؒ��;�o�`t��>i�5�-ݖ5������
�k<�㴥�BqW,�˿-�26�m�_n�^��W���MɈ-��Գ��S��G�濇���gⰄ}^}��[=,#�mN�f|��ؚy�Xa���Og	���x��w�J���U嫒�bQ,�Gƙ�GQ
Nnz��&�xl��45w=���~̟�֖�����5�bl��#��/�-=��#p?.�A�_e��e�o`�|$�Ԃ(1)��Bb1�[:��9V���mوb�-
v�akN��"Ŗ�����	�ֻ[��wwD٦~Xƶ8�����5����lJ-x#��$��#����SzJ-��U��]�4_q�]�[��^���w���/�Ʀ��/6a����[F}>�M���-�}�>�]�*�ϗ�7��+6�7y47�#clʭ�ߞ�)uȘ�1̏"�Ҍ�KL��uE�a�04)�eO�ZQMv=�Ɂ������yZ+��9�����������_���d{N;�o-���P�w�
G���z�C3�\��	[�
L����?�JrD���ZçV-�4��(���R�=*g����S=A(#�t�s��VN	Y�@��O��G���zss^-!N�U�5Wi�e)�����.5d�6W4��eU�g>E<(!�NJ@�$(��$���8PAV}/����gIHV5q�F��h���9���"W�i9�~\ĶdE��_��D����_V53vO�
��/�䫈�X�d�����ٲ�ޖ[�qd����Cd���fQ[���*gnVQ�]V��Zѹ��\_�CZ��1�G�j(�]g���)�Aܓ�bK����+��,kp�ޣ�'�Һؑ1�u����f��]�.�s�=W�U^�T��uu���5�u�������!�0��;��� �Q&gAm�ɪ��	T�-����tWZ��^XN��푽N�_���v�|o�����>�Yez��|�GV�X�
�7���Z�LV誋�1e%]�n#����Y�Y��Q�����3�=���M˺�/��wdǿ�e]�k{�~��>-�ɓ�� w8d�9
��^m���A�t�� Y�u��6UVJ��P�CV�cRs����ZJ�Ut$f�58@� ��h-��
�ƍ��!�����3H|\��gW�du	��>E�I�H9��++ߔ�6"�t����_o���
��ɲ�,Y�WVx8�B/�!��]	j���)�6,@�,�����0Fز�G�Ou���Q+���,�m�e�]���K��+� bp���M�t��Ҟ�J����=b�
��(g�ˢ����w��#�Q$�d!�e�r�*�f�q;=��TFqY��TYmqY��d��*#?���eE��Q�#�,t�m����.R�j��%GVG4�Z<����N}��T�g)Y��A�ް��
qJM�5U�8?|��|����.ˬl��"u�E82z�%�<�–h�
%��d��:�Ӵ�ڊ�Z�s,�Ѹ\`��౲��`#x<����䮝7|?q�\����������O2/�w�,�%�4��R�_S����4Y��j1��8�d���O8kb+m-�ઃ֎,�iYk@��MhŴ���[����f�M�0���-�`�a?B�iI��?V�H� ��d���|�H�'��p�ޟ��+�E��
<�t��u=�
5X-g�FT��M��3^\ɍ87����Oy�YO�w=ț?X>����6�����Y��Л�ٷ�F{���CB㦈�dV�/��R�Y�fY�iQ�&����w+�Nk��	�4�S�^�)o�~�ſ�ԣ,�4�2&3S�V�2���lw�6��;x��B��f#Zu�ծ!B���$sQ�q�W����fe�˝��(�L�[&����
IS����Y-a$���� �BX��.�p��w�㙣���~z�[@Xb椇�g��MP��z��s��㠧^5�nd�S��R��H�u��8��"YR�f�W���Lq����b��?�S��d��n�T�A-ÂC����<���~�Q���94'̝腸7�,{V�hr��XԈ��e�d�����}���X>�i����?��Э�7\�ύ��|F��	M��$���Y�kԃ9ކv��d��15]�V��KVb�S���n��-F�+K�o���E�of�O��\�ԏ�rw|Џ�w��ꁎF"""""""""""""""""""""""""""""""""""""�z�Θ����cIEND�B`�<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="22px" height="22px" viewBox="0 0 22 22" enable-background="new 0 0 22 22" xml:space="preserve">
<path fill="#FFCC00" d="M13.039,7.954c-0.063-0.128-0.193-0.21-0.336-0.21c-0.119,0-0.207,0.054-0.268,0.102L9.84,9.838
	c-0.208,0.158-0.254,0.461-0.104,0.675l0.813,1.17l-1.521,1.93c-0.141,0.18-0.113,0.336-0.065,0.434
	c0.06,0.125,0.194,0.209,0.334,0.209c0.123,0,0.208-0.055,0.271-0.102l2.593-1.992c0.157-0.121,0.211-0.33,0.146-0.578
	c-0.012-0.041-0.027-0.076-0.052-0.114l-0.803-1.154l1.521-1.93C13.111,8.207,13.086,8.052,13.039,7.954z"/>
<path fill="#777777" d="M21.771,10.677L11.323,0.229c-0.088-0.086-0.202-0.135-0.324-0.135c-0.123,0-0.236,0.048-0.324,0.134
	L0.228,10.677c-0.086,0.088-0.134,0.201-0.134,0.324c0,0.122,0.048,0.236,0.134,0.324l10.448,10.446
	c0.087,0.088,0.202,0.135,0.324,0.135s0.237-0.047,0.324-0.135L21.77,11.324c0.088-0.085,0.137-0.201,0.137-0.323
	C21.904,10.879,21.855,10.765,21.771,10.677z M11.424,1.625l8.956,8.956h-2.989c-0.017,0-0.035,0.001-0.052,0.003l-5.915-5.913
	V1.625z M10.584,1.617v3.045l-5.92,5.919H1.62L10.584,1.617z M10.584,20.387L1.62,11.421h3.044l5.92,5.918V20.387z M10.999,16.504
	l-5.501-5.502L10.999,5.5l5.503,5.502L10.999,16.504z M11.424,20.377v-3.045l5.913-5.914c0.019,0.001,0.037,0.003,0.054,0.003h2.989
	L11.424,20.377z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
<g>
	<path fill="#889EAA" d="M15.222,5.874c-0.616-0.81-1.511-1.331-2.52-1.468c-0.793-0.108-1.584,0.033-2.29,0.406
		c-0.095,0.05-0.188,0.103-0.276,0.161L9.819,5.211l0.819,1.077l0.25-0.189c0.05-0.032,0.103-0.062,0.155-0.09
		c0.455-0.24,0.965-0.331,1.476-0.262c0.65,0.088,1.228,0.425,1.625,0.947c0.397,0.522,0.567,1.168,0.479,1.818
		c-0.183,1.343-1.424,2.286-2.765,2.104c-0.511-0.069-0.979-0.294-1.354-0.646c-0.044-0.042-0.087-0.086-0.126-0.128L7.292,5.785
		L7.292,5.798L6.967,5.371L6.931,5.328C6.857,5.246,6.779,5.165,6.699,5.09C6.093,4.518,5.335,4.157,4.51,4.045
		C2.338,3.75,0.331,5.277,0.036,7.449c-0.295,2.171,1.232,4.178,3.404,4.473c0.827,0.113,1.652-0.034,2.39-0.423
		c0.03-0.017,0.058-0.033,0.088-0.05l-0.833-1.093c-0.457,0.214-0.959,0.294-1.463,0.225c-1.432-0.194-2.439-1.518-2.245-2.95
		c0.195-1.433,1.517-2.439,2.95-2.245c0.545,0.074,1.044,0.312,1.444,0.69c0.047,0.043,0.092,0.09,0.136,0.137l2.426,3.189
		l0.001-0.014l0.985,1.295l0.034,0.042c0.069,0.077,0.145,0.154,0.224,0.229c0.581,0.549,1.307,0.895,2.099,1.002
		c0.173,0.023,0.345,0.035,0.515,0.035c1.876,0,3.514-1.39,3.773-3.298C16.103,7.685,15.838,6.684,15.222,5.874z"/>
	<path fill="#00CCCC" d="M8.614,11.234c-0.013-0.014-0.026-0.026-0.038-0.039L7.012,9.143C6.944,9.066,6.87,8.99,6.792,8.916
		C6.211,8.368,5.485,8.023,4.693,7.915c-0.076-0.01-0.151-0.017-0.227-0.023H4.351l0.577,0.755C4.94,8.659,4.954,8.673,4.966,8.686
		l1.563,2.053c0.068,0.076,0.142,0.152,0.22,0.225c0.581,0.549,1.306,0.896,2.099,1.003c0.075,0.01,0.15,0.018,0.227,0.023H9.19
		L8.614,11.234z"/>
</g>
</svg>
�PNG


IHDRKK����PLTEGpL��8��;��9��:��:��9��:�����;O��O��O��O��P��O��O�詟8O����������Ԫ8v�6f��t�M��]����,��k�zO��U������������{��2���9��:�V��T��T��T��T��R��U�/���4�e)�9�GU��.�E-�P{�T��S�Gsw]=U,��UYg�Jpu@\�Ny�p��Eh�mG�De�����HtRNS'@[���a�8����P[��������� ���9������'��Ga�����������������p "�HIDATx՗���8EV�A��a~4���ʶǾՕ^e�Yx�p �n_�R��$���~L�tƐN�C�	H�V%3!���F�\\WP{t��JӯT�X,���i�m�E�\�P-~ݕGWNj�O�__��W+@Ñh�\�m7�EqP?<<���-a��Ḃ������Hĩݥ<7���'ѵ���++�H?R�,#<'�S�<�.������a$��)�������V�8Wؾ�t�F��Ŏ#�BW�DBx�e���P4����?�8ځi�aZA���A&��hR$b�"h���!�<�D̘�"Y��T��>d?�d?�T�<��X��Bn�}�����Z.�1i�/T`Hh��s�	�*!cdDb["���%�ۧH*���%k�"EH�B_n����bC���܉�_��Zk����E"���?�u�9랂Q$<ݤ�M�� YT��#�yu}��5_����2��ۻk�F��kmD�b��B�&��hH�G�}�D�Y]'�@B��5r�g�t�����7���s�����6��`��ۧH��k��>E"`Hhߧ���G�>�\9�����o?x��_������O��n��~�R�?��l��r���G��g>$E2&�ܦZ�|^5�D���x��oS��(��H��~�O�q"���4�*h�q�d�S�}_����?�o��BS:�'o�"��.x[X�&��Ϩ�WP=�ȧnZY\���x�`����F�%9���5�si�����̗M�+^�)��H؃=���`�;�z^���k�Ψ���Lm��x|�ѥb�h���c2.M�*�����*�
����{-��IEND�B`�<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
<g>
	<path fill="#5E8CDA" d="M254.859,146.258l-68.508-68.516l-29.203,37.055l31.461,31.461c2.922,2.922,2.922,7.68,0,10.57
		l-9.086,9.086c0,0,6.148,9.195,6.414,9.75c1.422,2.836,1.742,9.492-2.273,12.547l-71.57,54.969c0,18.422-0.016,56.336,0,56.344
		c0.031,0,142.766-142.695,142.766-142.695C257.75,153.898,257.75,149.18,254.859,146.258z"/>
	<path fill="#093071" d="M95.703,154.891c-2.898-2.875-2.898-7.641,0-10.531l9.109-9.125l-6.219-8.938
		c-2.977-4.219-2.039-10.203,2.055-13.344l71.602-54.938l0.023-56.328l-0.023-0.031l-0.039-0.047L29.477,144.359
		c-2.922,2.891-2.922,7.656,0,10.539l68.5,68.508l29.219-37.055L95.703,154.891z"/>
</g>
<path fill="#5E8CDA" d="M208.297,35.727c1.092,0,2.147,0.654,2.624,1.624c0.804,1.658-0.217,3.189-1.236,4.495l-0.04,0.051
	l-62.727,79.64c-0.829,1.05-0.891,3.144-0.132,4.218c0.339,0.491,33.879,49.111,35.027,50.794c1.342,1.918,1.425,7.623-1.657,9.978
	L79.348,263.915c-1.305,0.993-2.252,1.535-3.492,1.546c-0.99-0.082-2.015-0.756-2.44-1.601c-0.783-1.612,0.143-3.176,1.253-4.616
	l62.727-79.607c0.83-1.114,0.908-3.081,0.152-4.231l-35.019-50.348c-2.308-3.283-1.585-7.943,1.611-10.39l100.851-77.445
	C206.396,36.146,207.321,35.727,208.297,35.727 M208.297,34.727c-1.211,0-2.336,0.492-3.914,1.703l-100.852,77.445
	c-3.625,2.773-4.445,8.023-1.82,11.758l35.016,50.344c0.508,0.773,0.438,2.297-0.133,3.063l-62.711,79.586
	c-0.813,1.055-2.523,3.289-1.367,5.672c0.594,1.18,1.945,2.07,3.305,2.164c1.555,0,2.695-0.656,4.133-1.75l100.813-77.391
	c3.508-2.68,3.523-8.977,1.867-11.344c-1.156-1.695-35.023-50.789-35.023-50.789c-0.508-0.719-0.461-2.328,0.094-3.031
	l62.727-79.641c0.805-1.031,2.555-3.203,1.391-5.602C211.172,35.594,209.766,34.727,208.297,34.727L208.297,34.727z"/>
<path fill="#F5CD21" d="M178.992,176.898c0.82,1.25,1.563,5.867-0.477,7.422L77.641,261.75c-0.836,0.664-1.391,0.984-1.617,0.961
	c-0.359,0.023-0.102-0.586,0.82-1.797l62.688-79.555c1.586-2.039,1.688-5.414,0.227-7.516l-34.977-50.367
	C104.781,123.477,178.188,175.664,178.992,176.898z"/>
<path fill="#FDDD75" d="M178.992,176.898l-34.461-49.555c-1.438-2.125-1.336-5.492,0.242-7.508l62.695-79.578
	c0.945-1.203,1.164-1.781,0.828-1.781c-0.227,0-0.805,0.281-1.625,0.945l-100.875,77.422c-2.016,1.555-2.477,4.547-1.016,6.633
	L178.992,176.898z"/>
</svg>

<?php
/**
 * Auto registration for LiteSpeed classes
 *
 * @package LiteSpeed
 * @since       1.1.0
 */

defined('WPINC') || exit();

// Force define for object cache usage before plugin init
!defined('LSCWP_DIR') && define('LSCWP_DIR', __DIR__ . '/'); // Full absolute path '/var/www/html/***/wp-content/plugins/litespeed-cache/' or MU

// Load all classes instead of autoload for direct conf update purpose when upgrade to new version.
// NOTE: These files need to load exactly in order
$litespeed_php_files = array(
	// core file priority
	'src/root.cls.php',
	'src/base.cls.php',

	// main src files
	'src/activation.cls.php',
	'src/admin-display.cls.php',
	'src/admin-settings.cls.php',
	'src/admin.cls.php',
	'src/api.cls.php',
	'src/avatar.cls.php',
	'src/cdn.cls.php',
	'src/cloud.cls.php',
	'src/conf.cls.php',
	'src/control.cls.php',
	'src/core.cls.php',
	'src/crawler-map.cls.php',
	'src/crawler.cls.php',
	'src/css.cls.php',
	'src/data.cls.php',
	'src/db-optm.cls.php',
	'src/debug2.cls.php',
	'src/doc.cls.php',
	'src/error.cls.php',
	'src/esi.cls.php',
	'src/file.cls.php',
	'src/gui.cls.php',
	'src/health.cls.php',
	'src/htaccess.cls.php',
	'src/img-optm.cls.php',
	'src/import.cls.php',
	'src/import.preset.cls.php',
	'src/lang.cls.php',
	'src/localization.cls.php',
	'src/media.cls.php',
	'src/metabox.cls.php',
	'src/object-cache.cls.php',
	'src/optimize.cls.php',
	'src/optimizer.cls.php',
	'src/placeholder.cls.php',
	'src/purge.cls.php',
	'src/report.cls.php',
	'src/rest.cls.php',
	'src/router.cls.php',
	'src/str.cls.php',
	'src/tag.cls.php',
	'src/task.cls.php',
	'src/tool.cls.php',
	'src/ucss.cls.php',
	'src/utility.cls.php',
	'src/vary.cls.php',
	'src/vpi.cls.php',

	// Extra CDN cls files
	'src/cdn/cloudflare.cls.php',
	'src/cdn/quic.cls.php',

	// CLI classes
	'cli/crawler.cls.php',
	'cli/debug.cls.php',
	'cli/image.cls.php',
	'cli/online.cls.php',
	'cli/option.cls.php',
	'cli/presets.cls.php',
	'cli/purge.cls.php',
	'cli/database.cls.php',

	// 3rd party libraries
	'lib/css_js_min/pathconverter/converter.cls.php',
	'lib/css_js_min/minify/exception.cls.php',
	'lib/css_js_min/minify/minify.cls.php',
	'lib/css_js_min/minify/css.cls.php',
	'lib/css_js_min/minify/js.cls.php',
	'lib/urirewriter.cls.php',
	'lib/guest.cls.php',
	'lib/html-min.cls.php',
	// phpcs:disable
	// 'lib/object-cache.php',
	// 'lib/php-compatibility.func.php',

	// upgrade purpose delay loaded funcs
	// 'src/data.upgrade.func.php',
	// phpcs:enable
);
foreach ($litespeed_php_files as $class) {
	$file = LSCWP_DIR . $class;
	require_once $file;
}

if (!function_exists('litespeed_autoload')) {
	/**
	 * Autoload function for LiteSpeed classes
	 *
	 * @since 1.1.0
	 * @param string $cls The class name to autoload.
	 */
	function litespeed_autoload( $cls ) {
		if (strpos($cls, '.') !== false) {
			return;
		}

		if (strpos($cls, 'LiteSpeed') !== 0) {
			return;
		}

		$file = explode('\\', $cls);
		array_shift($file);
		$file = implode('/', $file);
		$file = str_replace('_', '-', strtolower($file));

		// phpcs:disable
		// if (strpos($file, 'lib/') === 0 || strpos($file, 'cli/') === 0 || strpos($file, 'thirdparty/') === 0) {
		// $file = LSCWP_DIR . $file . '.cls.php';
		// } else {
		// $file = LSCWP_DIR . 'src/' . $file . '.cls.php';
		// }
		// phpcs:enable

		if (strpos($file, 'thirdparty/') !== 0) {
			return;
		}

		$file = LSCWP_DIR . $file . '.cls.php';

		if (file_exists($file)) {
			require_once $file;
		}
	}
}

spl_autoload_register('litespeed_autoload');
For QUIC.cloud connectivity ping test, please do not delete, generated by LSCWP
# Security Policy

## Reporting Security Bugs

We take security seriously. Please report potential vulnerabilities found in the LiteSpeed Cache plugin's source code via email to `support@litespeedtech.com` or open a ticket from your LiteSpeed Client Area.

Please see [Reporting Vulnerabilities](https://www.litespeedtech.com/report-security-bugs) for more information.
<?php
/**
 * The Third Party integration with the WPLister plugin.
 *
 * @since        1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class WPLister {

	/**
	 * Detects if WooCommerce and WPLister are installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect() {
		if (defined('WOOCOMMERCE_VERSION') && defined('WPLISTER_VERSION')) {
			// User reported this will sync correctly.
			add_action('wplister_revise_inventory_status', array( WooCommerce::cls(), 'backend_purge' ));
			// Added as a safety measure for WPLister Pro only.
			add_action('wplister_inventory_status_changed', array( WooCommerce::cls(), 'backend_purge' ));
		}
	}
}
<?php
/**
 * The Third Party integration with FacetWP.
 *
 * @since       2.9.9
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Facetwp {

	public static function detect() {
		if (!defined('FACETWP_VERSION')) {
			return;
		}
		/**
		 * For Facetwp, if the template is "wp", return the buffered HTML
		 * So marked as rest call to put is_json to ESI
		 */
		if (!empty($_POST['action']) && !empty($_POST['data']) && !empty($_POST['data']['template']) && $_POST['data']['template'] === 'wp') {
			add_filter('litespeed_esi_params', __CLASS__ . '::set_is_json');
		}
	}

	public static function set_is_json( $params ) {
		$params['is_json'] = 1;
		return $params;
	}
}
<?php
/**
 * The Third Party integration with the WP-Polls plugin.
 *
 * @since       1.0.7
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

// todo: need test

class Wp_Polls {

	public static function detect() {
		add_filter('wp_polls_display_pollvote', __CLASS__ . '::set_control');
		add_filter('wp_polls_display_pollresult', __CLASS__ . '::set_control');
	}

	public static function set_control() {
		do_action('litespeed_control_set_nocache', 'wp polls');
	}
}
<?php
/**
 * The Third Party integration with Caldera Forms.
 *
 * @since       3.2.2
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Caldera_Forms {

	public static function detect() {
		if (!defined('CFCORE_VER')) {
			return;
		}

		// plugins/caldera-forms/classes/render/nonce.php -> class Caldera_Forms_Render_Nonce
		do_action('litespeed_nonce', 'caldera_forms_front_*');
	}
}
<?php
/**
 * The Third Party integration with the WP-PostRatings plugin.
 *
 * @since       1.1.1
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class WP_PostRatings {

	/**
	 * Detects if plugin is installed.
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function detect() {
		if (defined('WP_POSTRATINGS_VERSION')) {
			add_action('rate_post', __CLASS__ . '::flush', 10, 3);
		}
	}

	/**
	 * Purges the cache
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function flush( $uid, $post_id, $post_ratings_score ) {
		do_action('litespeed_purge_post', $post_id);
	}
}
<?php
/**
 * The Third Party integration with WPML.
 *
 * @since       2.9.4
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class WPML {

	public static function detect() {
		if (!defined('WPML_PLUGIN_BASENAME')) {
			return;
		}

		add_filter('litespeed_internal_domains', __CLASS__ . '::append_domains');
	}

	/**
	 * Take language domains as internal domains
	 */
	public static function append_domains( $domains ) {
		$wpml_domains = apply_filters('wpml_setting', false, 'language_domains');
		if ($wpml_domains) {
			$domains = array_merge($domains, array_values($wpml_domains));
		}

		return $domains;
	}
}
<?php
/**
 * The Third Party integration with Wpdiscuz.
 *
 * @since       2.9.5
 * @package     LiteSpeed_Cache
 * @subpackage  LiteSpeed_Cache/thirdparty
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

use LiteSpeed\API;

class Wpdiscuz {

	public static function detect() {
		if (!defined('WPDISCUZ_DS')) {
			return;
		}

		self::check_commenter();
		add_action('wpdiscuz_add_comment', __CLASS__ . '::add_comment');
	}

	public static function add_comment() {
		API::vary_append_commenter();
	}

	public static function check_commenter() {
		$commentor = wp_get_current_commenter();

		if (strlen($commentor['comment_author']) > 0) {
			add_filter('litespeed_vary_check_commenter_pending', '__return_false');
		}
	}
}
<?php

namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use LiteSpeed\API;
use LiteSpeed\Doc;
use LiteSpeed\Admin_Display;
use LiteSpeed\Lang;
use LiteSpeed\Base;
?>

<div data-litespeed-layout='woocommerce'>

	<h3 class="litespeed-title-short">
		<?php echo __( 'WooCommerce Settings', 'litespeed-cache' ); ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#woocommerce-tab' ); ?>
	</h3>

	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
		<p><?php echo __( 'After verifying that the cache works in general, please test the cart.', 'litespeed-cache' ); ?></p>
		<p><?php printf( __( 'To test the cart, visit the <a %s>FAQ</a>.', 'litespeed-cache' ), 'href="https://docs.litespeedtech.com/lscache/lscwp/installation/#non-cacheable-pages" target="_blank"' ); ?></p>
		<p><?php echo __( 'By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.', 'litespeed-cache' ); ?></p>
	</div>

	<table class="wp-list-table striped litespeed-table">
		<tbody>
			<tr>
				<th>
					<?php $id = self::O_UPDATE_INTERVAL; ?>
					<?php echo __( 'Product Update Interval', 'litespeed-cache' ); ?>
				</th>
				<td>
					<?php
					$options = array(
						self::O_PQS_CS  => __( 'Purge product on changes to the quantity or stock status.', 'litespeed-cache' ) . ' ' . __( 'Purge categories only when stock status changes.', 'litespeed-cache' ),
						self::O_PS_CS   => __( 'Purge product and categories only when the stock status changes.', 'litespeed-cache' ),
						self::O_PS_CN   => __( 'Purge product only when the stock status changes.', 'litespeed-cache' ) . ' ' . __( 'Do not purge categories on changes to the quantity or stock status.', 'litespeed-cache' ),
						self::O_PQS_CQS => __( 'Always purge both product and categories on changes to the quantity or stock status.', 'litespeed-cache' ),
					);
					$conf    = (int) apply_filters( 'litespeed_conf', $id );
					foreach ( $options as $k => $v ) :
						$checked = (int) $k === $conf ? ' checked ' : '';
						?>
						<?php do_action( 'litespeed_setting_enroll', $id ); ?>
						<div class='litespeed-radio-row'>
							<input type='radio' autocomplete='off' name='<?php echo $id; ?>' id='conf_<?php echo $id; ?>_<?php echo $k; ?>' value='<?php echo $k; ?>' <?php echo $checked; ?> />
							<label for='conf_<?php echo $id; ?>_<?php echo $k; ?>'><?php echo $v; ?></label>
						</div>
					<?php endforeach; ?>
					<div class="litespeed-desc">
						<?php echo __( 'Determines how changes in product quantity and product stock status affect product pages and their associated category pages.', 'litespeed-cache' ); ?>
					</div>
				</td>
			</tr>

			<tr>
				<th>
					<?php $id = self::O_CART_VARY; ?>
					<?php echo __( 'Vary for Mini Cart', 'litespeed-cache' ); ?>
				</th>
				<td>
					<?php
					$conf = (int) apply_filters( 'litespeed_conf', $id );
					$this->cls( 'Admin_Display' )->build_switch( $id );
					?>
					<div class="litespeed-desc">
						<?php echo __( 'Generate a separate vary cache copy for the mini cart when the cart is not empty.', 'litespeed-cache' ); ?>
						<?php echo __( 'If your theme does not use JS to update the mini cart, you must enable this option to display the correct cart contents.', 'litespeed-cache' ); ?>
						<br /><?php Doc::notice_htaccess(); ?>
					</div>
				</td>
			</tr>

		</tbody>
	</table>
</div><?php

/**
 * Check if any plugins that could conflict with LiteSpeed Cache are active.
 *
 * @since       4.7
 */

namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class LiteSpeed_Check {

	public static $_incompatible_plugins = array(
		// 'autoptimize/autoptimize.php',
		'breeze/breeze.php',
		'cache-enabler/cache-enabler.php',
		'cachify/cachify.php',
		'cloudflare/cloudflare.php',
		'comet-cache/comet-cache.php',
		'docket-cache/docket-cache.php',
		'fast-velocity-minify/fvm.php',
		'hummingbird-performance/wp-hummingbird.php',
		'nginx-cache/nginx-cache.php',
		'nitropack/main.php',
		'pantheon-advanced-page-cache/pantheon-advanced-page-cache.php',
		'powered-cache/powered-cache.php',
		'psn-pagespeed-ninja/pagespeedninja.php',
		'sg-cachepress/sg-cachepress.php',
		'simple-cache/simple-cache.php',
		// 'redis-cache/redis-cache.php',
		'w3-total-cache/w3-total-cache.php',
		'wp-cloudflare-page-cache/wp-cloudflare-page-cache.php',
		'wp-fastest-cache/wpFastestCache.php',
		'wp-meteor/wp-meteor.php',
		'wp-optimize/wp-optimize.php',
		'wp-performance-score-booster/wp-performance-score-booster.php',
		'wp-rocket/wp-rocket.php',
		'wp-super-cache/wp-cache.php',
	);

	private static $_option = 'thirdparty_litespeed_check';
	private static $_msg_id = 'id="lscwp-incompatible-plugin-notice"';

	public static function detect() {
		if (!is_admin()) {
			return;
		}

		/**
		 * Check for incompatible plugins when `litespeed-cache` is first activated.
		 */
		$plugin = basename(LSCWP_DIR) . '/litespeed-cache.php';
		register_deactivation_hook($plugin, function ( $_network_wide ) {
			\LiteSpeed\Admin_Display::delete_option(self::$_option);
		});
		if (!\LiteSpeed\Admin_Display::get_option(self::$_option)) {
			self::activated_plugin($plugin, null);
			\LiteSpeed\Admin_Display::add_option(self::$_option, true);
		}

		/**
		 * Check for incompatible plugins when any plugin is (de)activated.
		 */
		add_action('activated_plugin', __CLASS__ . '::activated_plugin', 10, 2);
		add_action('deactivated_plugin', __CLASS__ . '::deactivated_plugin', 10, 2);

		if (class_exists('PagespeedNinja')) {
			\LiteSpeed\Admin_Display::error(
				'<div ' .
					self::$_msg_id .
					'>' .
					__('Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:', 'litespeed-cache') .
					'<p style="color: red; font-weight: 700;">' .
					'PageSpeed Ninja' .
					'</p>' .
					'</div>'
			);
		}
	}

	public static function activated_plugin( $plugin, $network_wide ) {
		self::incompatible_plugin_notice($plugin, $network_wide, 'activated');
	}

	public static function deactivated_plugin( $plugin, $network_wide ) {
		self::incompatible_plugin_notice($plugin, $network_wide, 'deactivated');
	}

	/**
	 * Detect any incompatible plugins that are currently `active` and `valid`.
	 * Show a notification if there are any.
	 */
	public static function incompatible_plugin_notice( $plugin, $_network_wide, $action ) {
		self::update_messages();

		/**
		 * The 'deactivated_plugin' action fires before
		 * `wp_get_active_and_valid_plugins` can see the change, so we'll need to
		 * remove `$plugin` from the list.
		 */
		$deactivated = 'deactivated' === $action ? array( $plugin ) : array();

		$incompatible_plugins = array_map(function ( $plugin ) {
			return WP_PLUGIN_DIR . '/' . $plugin;
		}, array_diff(self::$_incompatible_plugins, $deactivated));

		$active_incompatible_plugins = array_map(function ( $plugin ) {
			$plugin = get_plugin_data($plugin, false, true);
			return $plugin['Name'];
		}, array_intersect($incompatible_plugins, wp_get_active_and_valid_plugins()));

		if (empty($active_incompatible_plugins)) {
			return;
		}

		\LiteSpeed\Admin_Display::error(
			'<div ' .
				self::$_msg_id .
				'>' .
				__('Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:', 'litespeed-cache') .
				'<p style="color: red; font-weight: 700;">' .
				implode(', ', $active_incompatible_plugins) .
				'</p>' .
				'</div>',
			false,
			true
		);
	}

	/**
	 * Prevent multiple incompatible plugin notices, in case an admin (de)activates
	 * a number of incompatible plugins in succession without dismissing the
	 * notice(s).
	 */
	private static function update_messages() {
		$messages = \LiteSpeed\Admin_Display::get_option(\LiteSpeed\Admin_Display::DB_MSG_PIN, array());
		if (is_array($messages)) {
			foreach ($messages as $index => $message) {
				if (strpos($message, self::$_msg_id) !== false) {
					unset($messages[$index]);
					if (!$messages) {
						$messages = -1;
					}
					\LiteSpeed\Admin_Display::update_option(\LiteSpeed\Admin_Display::DB_MSG_PIN, $messages);
					break;
				}
			}
		}
	}
}
<?php
/**
 * The Third Party integration with Gravity Forms.
 *
 * @since       4.1.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Gravity_Forms {

	/**
	 * Check if GF is enabled and disable LSCWP on gf-download and gf-signature URI
	 *
	 * @since 4.1.0 #900899 #827184
	 */
	public static function preload() {
		if (class_exists('GFCommon')) {
			if (isset($_GET['gf-download']) || isset($_GET['gf-signature'])) {
				do_action('litespeed_disable_all', 'Stopped for Gravity Form');
			}
		}
	}
}
<?php
/**
 * The Third Party integration with WooCommerce PayPal Checkout Gateway
 *
 * @ref https://wordpress.org/plugins/woocommerce-gateway-paypal-express-checkout/
 *
 * @since       3.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Woo_Paypal {

	public static function detect() {
		if (!defined('WC_GATEWAY_PPEC_VERSION')) {
			return;
		}

		do_action('litespeed_nonce', '_wc_ppec_update_shipping_costs_nonce private');
		do_action('litespeed_nonce', '_wc_ppec_start_checkout_nonce private');
		do_action('litespeed_nonce', '_wc_ppec_generate_cart_nonce private');
	}
}
<?php
/**
 * The Third Party integration with the bbPress plugin.
 *
 * @since       2.9.8.8
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

use LiteSpeed\Debug2;

class Elementor {

	public static function preload() {
		if (!defined('ELEMENTOR_VERSION')) {
			return;
		}

		if (!is_admin()) {
			// add_action( 'init', __CLASS__ . '::disable_litespeed_esi', 4 ); // temporarily comment out this line for backward compatibility
		}

		if (isset($_GET['action']) && $_GET['action'] === 'elementor') {
			do_action('litespeed_disable_all', 'elementor edit mode');
		}

		if (!empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'action=elementor')) {
			if (!empty($_REQUEST['actions'])) {
				$json = json_decode(stripslashes($_REQUEST['actions']), true);
				// Debug2::debug( '3rd Elementor', $json );
				if (
					!empty($json['save_builder']['action']) &&
					$json['save_builder']['action'] == 'save_builder' &&
					!empty($json['save_builder']['data']['status']) &&
					$json['save_builder']['data']['status'] == 'publish'
				) {
					return; // Save post, don't disable all in case we will allow fire crawler right away after purged
				}
			}
			do_action('litespeed_disable_all', 'elementor edit mode in HTTP_REFERER');
		}

		// Clear LSC cache on Elementor Regenerate CSS & Data
		add_action('elementor/core/files/clear_cache', __CLASS__ . '::regenerate_litespeed_cache');
	}

	public static function disable_litespeed_esi() {
		define('LITESPEED_ESI_OFF', true);
	}

	public static function regenerate_litespeed_cache() {
		do_action('litespeed_purge_all', 'Elementor - Regenerate CSS & Data');
	}
}
<?php
/**
 * The Third Party integration with the Avada plugin.
 *
 * @since       1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Avada {

	/**
	 * Detects if Avada is installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect() {
		if (!defined('AVADA_VERSION')) {
			return;
		}

		add_action('update_option_avada_dynamic_css_posts', __CLASS__ . '::flush');
		add_action('update_option_fusion_options', __CLASS__ . '::flush');
	}

	/**
	 * Purges the cache
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function flush() {
		do_action('litespeed_purge_all', '3rd avada');
	}
}
<?php
/**
 * The Third Party integration with AMP plugin.
 *
 * @since       2.9.8.6
 * @package     LiteSpeed_Cache
 * @subpackage  LiteSpeed_Cache/thirdparty
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

use LiteSpeed\API;

class AMP {

	/**
	 * @since 4.2
	 */
	private static function _maybe_amp( $amp_function ) {
		if (is_admin()) {
			return;
		}
		if (!isset($_GET['amp']) && (!function_exists($amp_function) || !$amp_function())) {
			return;
		}

		do_action('litespeed_debug', '[3rd] ❌ AMP disabled page optm/lazy');

		!defined('LITESPEED_NO_PAGEOPTM') && define('LITESPEED_NO_PAGEOPTM', true);
		!defined('LITESPEED_NO_LAZY') && define('LITESPEED_NO_LAZY', true);
		!defined('LITESPEED_NO_OPTM') && define('LITESPEED_NO_OPTM', true);
		// ! defined( 'LITESPEED_GUEST' ) && define( 'LITESPEED_GUEST', false );
	}

	/**
	 * ampforwp_is_amp_endpoint() from Accelerated Mobile Pages
	 *
	 * @since 4.2
	 */
	public static function maybe_acc_mob_pages() {
		self::_maybe_amp('ampforwp_is_amp_endpoint');
	}

	/**
	 * Google AMP fix
	 *
	 * @since 4.2.0.1
	 */
	public static function maybe_google_amp() {
		self::_maybe_amp('amp_is_request');
	}

	/**
	 * CSS async will affect AMP result and
	 * Lazyload will inject JS library which AMP not allowed
	 * need to force set false before load
	 *
	 * @since 2.9.8.6
	 * @access public
	 */
	public static function preload() {
		add_action('wp', __CLASS__ . '::maybe_acc_mob_pages');
		add_action('wp', __CLASS__ . '::maybe_google_amp');

		// amp_is_request() from AMP
		// self::maybe_amp( 'amp_is_request' );
		// add_filter( 'litespeed_can_optm', '__return_false' );
		// do_action( 'litespeed_conf_force', API::O_OPTM_CSS_ASYNC, false );
		// do_action( 'litespeed_conf_force', API::O_MEDIA_LAZY, false );
		// do_action( 'litespeed_conf_force', API::O_MEDIA_IFRAME_LAZY, false );
	}
}
<?php
/**
 * The Third Party integration with the YITH WooCommerce Wishlist plugin.
 *
 * @since       1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

use LiteSpeed\Tag;
use LiteSpeed\Conf;
use LiteSpeed\Base;

class Yith_Wishlist {

	const ESI_PARAM_POSTID = 'yith_pid';
	private static $_post_id;

	/**
	 * Detects if YITH WooCommerce Wishlist and WooCommerce are installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect() {
		if (!defined('WOOCOMMERCE_VERSION') || !defined('YITH_WCWL')) {
			return;
		}
		if (apply_filters('litespeed_esi_status', false)) {
			add_action('litespeed_tpl_normal', __CLASS__ . '::is_not_esi');
			add_action('litespeed_esi_load-yith_wcwl_add', __CLASS__ . '::load_add_to_wishlist');
			add_filter('litespeed_esi_inline-yith_wcwl_add', __CLASS__ . '::inline_add_to_wishlist', 20, 2);

			// hook to add/delete wishlist
			add_action('yith_wcwl_added_to_wishlist', __CLASS__ . '::purge');
			add_action('yith_wcwl_removed_from_wishlist', __CLASS__ . '::purge');
		}
	}

	/**
	 * Purge ESI yith cache when add/remove items
	 *
	 * @since 1.2.0
	 * @access public
	 */
	public static function purge() {
		do_action('litespeed_purge_esi', 'yith_wcwl_add');
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 *
	 * If the request is not an ESI request, hook to the add to wishlist button
	 * filter to replace it as an esi block.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function is_not_esi() {
		add_filter('yith_wcwl_add_to_wishlist_params', __CLASS__ . '::add_to_wishlist_params', 999, 2);

		add_filter('yith_wcwl_add_to_wishlisth_button_html', __CLASS__ . '::sub_add_to_wishlist', 999);
	}

	/**
	 * Store the post id for later shortcode usage
	 *
	 * @since  3.4.1
	 */
	public static function add_to_wishlist_params( $defaults, $atts ) {
		self::$_post_id = !empty($atts['product_id']) ? $atts['product_id'] : $defaults['product_id'];

		return $defaults;
	}

	/**
	 * Hooked to the yith_wcwl_add_to_wishlisth_button_html filter.
	 *
	 * The add to wishlist button displays a different output when the item is already in the wishlist/cart.
	 * For this reason, the button must be an ESI block. This function replaces the normal html with the ESI block.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function sub_add_to_wishlist( $template ) {
		$params = array(
			self::ESI_PARAM_POSTID => self::$_post_id,
		);

		$inline_tags  = array( '', rtrim(Tag::TYPE_ESI, '.'), Tag::TYPE_ESI . 'yith_wcwl_add' );
		$inline_tags  = implode(
			',',
			array_map(function ( $val ) {
				return 'public:' . LSWCP_TAG_PREFIX . '_' . $val;
			}, $inline_tags)
		);
		$inline_tags .= ',' . LSWCP_TAG_PREFIX . '_tag_priv';

		do_action('litespeed_esi_combine', 'yith_wcwl_add');

		$inline_params = array(
			'val' => $template,
			'tag' => $inline_tags,
			'control' => 'private,no-vary,max-age=' . Conf::cls()->conf(Base::O_CACHE_TTL_PRIV),
		);

		return apply_filters('litespeed_esi_url', 'yith_wcwl_add', 'YITH ADD TO WISHLIST', $params, 'private,no-vary', false, false, false, $inline_params);
	}

	/**
	 * Hooked to the litespeed_esi_load-yith_wcwl_add action.
	 *
	 * This will load the add to wishlist button html for output.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function load_add_to_wishlist( $params ) {
		// global $post, $wp_query;
		// $post = get_post( $params[ self::ESI_PARAM_POSTID ] );
		// $wp_query->setup_postdata( $post );
		echo \YITH_WCWL_Shortcode::add_to_wishlist(array( 'product_id' => $params[self::ESI_PARAM_POSTID] ));
		do_action('litespeed_control_set_private', 'yith wishlist');
		do_action('litespeed_vary_no');
	}

	/**
	 * Generate ESI inline value
	 *
	 * @since  3.4.2
	 */
	public static function inline_add_to_wishlist( $res, $params ) {
		if (!is_array($res)) {
			$res = array();
		}

		$pid = $params[self::ESI_PARAM_POSTID];

		$res['val'] = \YITH_WCWL_Shortcode::add_to_wishlist(array( 'product_id' => $pid ));

		$res['control'] = 'private,no-vary,max-age=' . Conf::cls()->conf(Base::O_CACHE_TTL_PRIV);

		$inline_tags  = array( '', rtrim(Tag::TYPE_ESI, '.'), Tag::TYPE_ESI . 'yith_wcwl_add' );
		$inline_tags  = implode(
			',',
			array_map(function ( $val ) {
				return 'public:' . LSWCP_TAG_PREFIX . '_' . $val;
			}, $inline_tags)
		);
		$inline_tags .= ',' . LSWCP_TAG_PREFIX . '_tag_priv';

		$res['tag'] = $inline_tags;

		return $res;
	}
}
<?php

/**
 * The Third Party integration with the Perfmatters plugin.
 *
 * @since       4.4.5
 */

namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Perfmatters {

	public static function preload() {
		if (!defined('PERFMATTERS_VERSION')) {
			return;
		}

		if (is_admin()) {
			return;
		}

		if (has_action('shutdown', 'perfmatters_script_manager') !== false) {
			add_action('init', __CLASS__ . '::disable_litespeed_esi', 4);
		}
	}

	public static function disable_litespeed_esi() {
		defined('LITESPEED_ESI_OFF') || define('LITESPEED_ESI_OFF', true);
		do_action('litespeed_debug', 'Disable ESI due to Perfmatters script manager');
	}
}
<?php
/**
 * The Third Party integration with the Beaver Builder plugin.
 *
 * @since       3.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Beaver_Builder {

	/**
	 * Detects if Beaver_Builder is active.
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function detect() {
		if (!defined('FL_BUILDER_VERSION')) {
			return;
		}

		/**
		 * Purge All hooks
		 *
		 * @see  beaver-builder/extensions/fi-builder-cache-helper/classes/class-fi-builder-cache-helper.php
		 */
		$actions = array( 'fl_builder_cache_cleared', 'fl_builder_after_save_layout', 'fl_builder_after_save_user_template', 'upgrader_process_complete' );

		foreach ($actions as $val) {
			add_action($val, __CLASS__ . '::purge');
		}
	}

	/**
	 * Purges the cache when Beaver_Builder's cache is purged.
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge() {
		do_action('litespeed_purge_all', '3rd Beaver_Builder');
	}
}
<?php
/**
 * The Third Party integration with the Autoptimize plugin.
 *
 * @since       1.0.12
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Autoptimize {

	/**
	 * Detects if Autoptimize is active.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public static function detect() {
		if (defined('AUTOPTIMIZE_PLUGIN_DIR')) {
			add_action('litespeed_purge_finalize', __CLASS__ . '::purge');
		}
	}

	/**
	 * Purges the cache when Autoptimize's cache is purged.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public static function purge() {
		if (defined('AUTOPTIMIZE_PURGE') || has_action('shutdown', 'autoptimize_do_cachepurged_action', 11)) {
			do_action('litespeed_purge_all', '3rd Autoptimize');
		}
	}
}
<?php
/**
 * The Third Party integration with the WPTouch Mobile plugin.
 *
 * @since       1.0.7
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class WpTouch {

	/**
	 * Detects if WPTouch is installed.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function detect() {
		global $wptouch_pro;
		if (isset($wptouch_pro)) {
			add_action('litespeed_control_finalize', __CLASS__ . '::set_control');
		}
	}

	/**
	 * Check if the device is mobile. If so, set mobile.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function set_control() {
		global $wptouch_pro;
		if ($wptouch_pro->is_mobile_device) {
			add_filter('litespeed_is_mobile', '__return_true');
		}
	}
}
<?php

/**
 * The Third Party integration with the WooCommerce plugin.
 *
 * @since         1.0.5
 * @since  1.6.6 Added function_exists check for compatibility
 * @package       LiteSpeed_Cache
 * @subpackage    LiteSpeed_Cache/thirdparty
 * @author        LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

use LiteSpeed\API;
use LiteSpeed\Base;
use LiteSpeed\ESI;

class WooCommerce extends Base {

	const O_CACHE_TTL_FRONTPAGE = Base::O_CACHE_TTL_FRONTPAGE;

	const CACHETAG_SHOP     = 'WC_S';
	const CACHETAG_TERM     = 'WC_T.';
	const O_UPDATE_INTERVAL = 'wc_update_interval';
	const O_CART_VARY       = 'wc_cart_vary';
	const O_PQS_CS          = 0; // flush product on quantity + stock change, categories on stock change
	const O_PS_CS           = 1; // flush product and categories on stock change
	const O_PS_CN           = 2; // flush product on stock change, categories no flush
	const O_PQS_CQS         = 3; // flush product and categories on quantity + stock change

	const ESI_PARAM_ARGS    = 'wc_args';
	const ESI_PARAM_POSTID  = 'wc_post_id';
	const ESI_PARAM_NAME    = 'wc_name';
	const ESI_PARAM_PATH    = 'wc_path';
	const ESI_PARAM_LOCATED = 'wc_located';

	private $esi_enabled;

	/**
	 * Detects if WooCommerce is installed.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public static function detect() {
		if (!defined('WOOCOMMERCE_VERSION')) {
			return;
		}

		self::cls()->add_hooks();
	}

	/**
	 * Add hooks to woo actions
	 *
	 * @since  1.6.3
	 * @access public
	 */
	public function add_hooks() {
		$this->_option_append();

		$this->esi_enabled = apply_filters('litespeed_esi_status', false);

		add_action('litespeed_control_finalize', array( $this, 'set_control' ));
		add_action('litespeed_tag_finalize', array( $this, 'set_tag' ));

		// Purging a product on stock change should only occur during product purchase. This function will add the purging callback when an order is complete.
		add_action('woocommerce_product_set_stock', array( $this, 'purge_product' ));
		add_action('woocommerce_variation_set_stock', array( $this, 'purge_product' )); // #984479 Update variations stock

		add_action('comment_post', array( $this, 'add_review' ), 10, 3);

		if ($this->esi_enabled) {
			if (function_exists('is_shop') && !is_shop()) {
				add_action('litespeed_tpl_normal', array( $this, 'set_block_template' ));
				// No need for add-to-cart button
				// add_action( 'litespeed_esi_load-wc-add-to-cart-form', array( $this, 'load_add_to_cart_form_block' ) ) ;

				add_action('litespeed_esi_load-storefront-cart-header', array( $this, 'load_cart_header' ));
				add_action('litespeed_esi_load-widget', array( $this, 'register_post_view' ));
			}

			if (function_exists('is_product') && is_product()) {
				add_filter('litespeed_esi_params', array( $this, 'add_post_id' ), 10, 2);
			}

			// #612331 - remove Woocommerce geolocation redirect on ESI page (PR#708)
			if (!empty($_GET[ESI::QS_ACTION]) && !empty($_GET[ESI::QS_PARAMS])) {
				remove_action( 'template_redirect', array( 'WC_Cache_Helper', 'geolocation_ajax_redirect' ), 10 );
			}
		}

		if (is_admin()) {
			add_action('litespeed_api_purge_post', array( $this, 'backend_purge' )); // todo
			add_action('delete_term_relationships', array( $this, 'delete_rel' ), 10, 2);
			add_action('litespeed_settings_tab', array( $this, 'settings_add_tab' ));
			add_action('litespeed_settings_content', array( $this, 'settings_add_content' ));
			add_filter('litespeed_widget_default_options', array( $this, 'wc_widget_default' ), 10, 2);
		}

		if (apply_filters('litespeed_conf', self::O_CART_VARY)) {
			add_filter('litespeed_vary_cookies', function ( $list ) {
				$list[] = 'woocommerce_cart_hash';
				return array_unique($list);
			});
		}
	}

	/**
	 * Purge esi private tag
	 *
	 * @since  1.6.3
	 * @access public
	 */
	public function purge_esi() {
		do_action('litespeed_debug', '3rd woo purge ESI in action: ' . current_filter());
		do_action('litespeed_purge_private_esi', 'storefront-cart-header');
	}

	/**
	 * Purge private all
	 *
	 * @since  3.0
	 * @access public
	 */
	public function purge_private_all() {
		do_action('litespeed_purge_private_all');
	}

	/**
	 * Check if need to give an ESI block for cart
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public function check_if_need_esi( $template ) {
		if ($this->vary_needed()) {
			do_action('litespeed_debug', 'API: 3rd woo added ESI');
			add_action('litespeed_tpl_normal', array( $this, 'set_swap_header_cart' ));
		}

		return $template;
	}

	/**
	 * Keep vary on if cart is not empty
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public function vary_maintain( $vary ) {
		if ($this->vary_needed()) {
			do_action('litespeed_debug', 'API: 3rd woo added vary due to cart not empty');
			$vary['woo_cart'] = 1;
		}

		return $vary;
	}

	/**
	 * Check if vary need to be on based on cart
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function vary_needed() {
		if (!function_exists('WC')) {
			return false;
		}

		$woocom = WC();
		if (!$woocom) {
			return false;
		}

		if (is_null($woocom->cart)) {
			return false;
		}
		return $woocom->cart->get_cart_contents_count() > 0;
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 * If the request is not an esi request, I want to set my own hook in woocommerce_before_template_part to see if it's something I can ESI.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function set_block_template() {
		add_action('woocommerce_before_template_part', array( $this, 'block_template' ), 999, 4);
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 * If the request is not an esi request, I want to set my own hook
	 * in storefront_header to see if it's something I can ESI.
	 *
	 * Will remove storefront_header_cart in storefront_header.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function set_swap_header_cart() {
		$priority = has_action('storefront_header', 'storefront_header_cart');
		if ($priority !== false) {
			remove_action('storefront_header', 'storefront_header_cart', $priority);
			add_action('storefront_header', array( $this, 'esi_cart_header' ), $priority);
		}
	}

	/**
	 * Hooked to the woocommerce_before_template_part action.
	 * Checks if the template contains 'add-to-cart'. If so, and if I want to ESI the request, block it and build my esi code block.
	 *
	 * The function parameters will be passed to the esi request.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function block_template( $template_name, $template_path, $located, $args ) {
		if (strpos($template_name, 'add-to-cart') === false) {
			if (strpos($template_name, 'related.php') !== false) {
				remove_action('woocommerce_before_template_part', array( $this, 'block_template' ), 999);
				add_filter('woocommerce_related_products_args', array( $this, 'add_related_tags' ));
				add_action('woocommerce_after_template_part', array( $this, 'end_template' ), 999);
			}
			return;
		}
		return;

		// todo: wny not use?

		global $post;
		$params = array(
			self::ESI_PARAM_ARGS => $args,
			self::ESI_PARAM_NAME => $template_name,
			self::ESI_PARAM_POSTID => $post->ID,
			self::ESI_PARAM_PATH => $template_path,
			self::ESI_PARAM_LOCATED => $located,
		);
		add_action('woocommerce_after_add_to_cart_form', array( $this, 'end_form' ));
		add_action('woocommerce_after_template_part', array( $this, 'end_form' ), 999);
		echo apply_filters('litespeed_esi_url', 'wc-add-to-cart-form', 'WC_CART_FORM', $params);
		echo apply_filters('litespeed_clean_wrapper_begin', '');
	}

	/**
	 * Hooked to the woocommerce_after_add_to_cart_form action.
	 * If this is hit first, clean the buffer and remove this function and
	 * end_template.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function end_form( $template_name = '' ) {
		if (!empty($template_name) && strpos($template_name, 'add-to-cart') === false) {
			return;
		}
		echo apply_filters('litespeed_clean_wrapper_end', '');
		remove_action('woocommerce_after_add_to_cart_form', array( $this, 'end_form' ));
		remove_action('woocommerce_after_template_part', array( $this, 'end_form' ), 999);
	}

	/**
	 * If related products are loaded, need to add the extra product ids.
	 *
	 * The page will be purged if any of the products are changed.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param array $args The arguments used to build the related products section.
	 * @return array The unchanged arguments.
	 */
	public function add_related_tags( $args ) {
		if (empty($args) || !isset($args['post__in'])) {
			return $args;
		}
		$related_posts = $args['post__in'];
		foreach ($related_posts as $related) {
			do_action('litespeed_tag_add_post', $related);
		}
		return $args;
	}

	/**
	 * Hooked to the woocommerce_after_template_part action.
	 * If the template contains 'add-to-cart', clean the buffer.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param type $template_name
	 */
	public function end_template( $template_name ) {
		if (strpos($template_name, 'related.php') !== false) {
			remove_action('woocommerce_after_template_part', array( $this, 'end_template' ), 999);
			$this->set_block_template();
		}
	}

	/**
	 * Hooked to the storefront_header header.
	 * If I want to ESI the request, block it and build my esi code block.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function esi_cart_header() {
		echo apply_filters('litespeed_esi_url', 'storefront-cart-header', 'STOREFRONT_CART_HEADER');
	}

	/**
	 * Hooked to the litespeed_esi_load-storefront-cart-header action.
	 * Generates the cart header for esi display.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function load_cart_header() {
		storefront_header_cart();
	}

	/**
	 * Hooked to the litespeed_esi_load-wc-add-to-cart-form action.
	 * Parses the esi input parameters and generates the add to cart form
	 * for esi display.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @global type $post
	 * @global type $wp_query
	 * @param type $params
	 */
	public function load_add_to_cart_form_block( $params ) {
		global $post, $wp_query;
		$post = get_post($params[self::ESI_PARAM_POSTID]);
		$wp_query->setup_postdata($post);
		function_exists('wc_get_template') && wc_get_template($params[self::ESI_PARAM_NAME], $params[self::ESI_PARAM_ARGS], $params[self::ESI_PARAM_PATH]);
	}

	/**
	 * Update woocommerce when someone visits a product and has the
	 * recently viewed products widget.
	 *
	 * Currently, this widget should not be cached.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param array $params Widget parameter array
	 */
	public function register_post_view( $params ) {
		if ($params[API::PARAM_NAME] !== 'WC_Widget_Recently_Viewed') {
			return;
		}
		if (!isset($params[self::ESI_PARAM_POSTID])) {
			return;
		}
		$id       = $params[self::ESI_PARAM_POSTID];
		$esi_post = get_post($id);
		$product  = function_exists('wc_get_product') ? wc_get_product($esi_post) : false;

		if (empty($product)) {
			return;
		}

		global $post;
		$post = $esi_post;
		function_exists('wc_track_product_view') && wc_track_product_view();
	}

	/**
	 * Adds the post id to the widget ESI parameters for the Recently Viewed widget.
	 *
	 * This is needed in the ESI request to update the cookie properly.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function add_post_id( $params, $block_id ) {
		if ($block_id == 'widget') {
			if ($params[API::PARAM_NAME] == 'WC_Widget_Recently_Viewed') {
				$params[self::ESI_PARAM_POSTID] = get_the_ID();
			}
		}

		return $params;
	}

	/**
	 * Hooked to the litespeed_widget_default_options filter.
	 *
	 * The recently viewed widget must be esi to function properly.
	 * This function will set it to enable and no cache by default.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function wc_widget_default( $options, $widget ) {
		if (!is_array($options)) {
			return $options;
		}
		$widget_name = get_class($widget);
		if ($widget_name === 'WC_Widget_Recently_Viewed') {
			$options[API::WIDGET_O_ESIENABLE] = API::VAL_ON2;
			$options[API::WIDGET_O_TTL]       = 0;
		} elseif ($widget_name === 'WC_Widget_Recent_Reviews') {
			$options[API::WIDGET_O_ESIENABLE] = API::VAL_ON;
			$options[API::WIDGET_O_TTL]       = 86400;
		}
		return $options;
	}

	/**
	 * Set WooCommerce cache tags based on page type.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function set_tag() {
		$id = get_the_ID();
		if ($id === false) {
			return;
		}

		// Check if product has a cache ttl limit or not
		$sale_from = (int) get_post_meta($id, '_sale_price_dates_from', true);
		$sale_to   = (int) get_post_meta($id, '_sale_price_dates_to', true);
		$now       = current_time('timestamp');
		$ttl       = false;
		if ($sale_from && $now < $sale_from) {
			$ttl = $sale_from - $now;
		} elseif ($sale_to && $now < $sale_to) {
			$ttl = $sale_to - $now;
		}
		if ($ttl && $ttl < apply_filters('litespeed_control_ttl', 0)) {
			do_action('litespeed_control_set_ttl', $ttl, "WooCommerce set scheduled TTL to $ttl");
		}

		if (function_exists('is_shop') && is_shop()) {
			do_action('litespeed_tag_add', self::CACHETAG_SHOP);
		}
		if (function_exists('is_product_taxonomy') && !is_product_taxonomy()) {
			return;
		}
		if (isset($GLOBALS['product_cat']) && is_string($GLOBALS['product_cat'])) {
			// todo: need to check previous woo version to find if its from old woo versions or not!
			$term = get_term_by('slug', $GLOBALS['product_cat'], 'product_cat');
		} elseif (isset($GLOBALS['product_tag']) && is_string($GLOBALS['product_tag'])) {
			$term = get_term_by('slug', $GLOBALS['product_tag'], 'product_tag');
		} else {
			$term = false;
		}

		if ($term === false) {
			return;
		}
		while (isset($term)) {
			do_action('litespeed_tag_add', self::CACHETAG_TERM . $term->term_id);
			if ($term->parent == 0) {
				break;
			}
			$term = get_term($term->parent);
		}
	}

	/**
	 * Check if the page is cacheable according to WooCommerce.
	 *
	 * @since 1.0.5
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param string $esi_id        The ESI block id if a request is an ESI request.
	 * @return boolean              True if cacheable, false if not.
	 */
	public function set_control( $esi_id ) {
		if (!apply_filters('litespeed_control_cacheable', false)) {
			return;
		}

		/**
		 * Avoid possible 500 issue
		 *
		 * @since 1.6.2.1
		 */
		if (!function_exists('WC')) {
			return;
		}

		$woocom = WC();
		if (!$woocom || empty($woocom->session)) {
			return;
		}

		// For later versions, DONOTCACHEPAGE should be set.
		// No need to check uri/qs.
		if (version_compare($woocom->version, '1.4.2', '>=')) {
			if (version_compare($woocom->version, '3.2.0', '<') && defined('DONOTCACHEPAGE') && DONOTCACHEPAGE) {
				do_action('litespeed_control_set_nocache', '3rd party woocommerce not cache by constant');
				return;
			} elseif (version_compare($woocom->version, '2.1.0', '>=')) {
				$err = false;

				if (!function_exists('wc_get_page_id')) {
					return;
				}
				/**
				 * From woo/inc/class-wc-cache-helper.php:prevent_caching()
				 *
				 * @since  1.4
				 */
				$page_ids = array_filter(array( wc_get_page_id('cart'), wc_get_page_id('checkout'), wc_get_page_id('myaccount') ));
				if (isset($_GET['download_file']) || isset($_GET['add-to-cart']) || is_page($page_ids)) {
					$err = 'woo non cacheable pages';
				} elseif (function_exists('wc_notice_count') && wc_notice_count() > 0) {
					$err = 'has wc notice';
				}

				if ($err) {
					do_action('litespeed_control_set_nocache', '3rd party woocommerce not cache due to ' . $err);
					return;
				}
			}
			return;
		}

		$uri     = esc_url($_SERVER['REQUEST_URI']);
		$uri_len = strlen($uri);
		if ($uri_len < 5) {
			return;
		}

		if (in_array($uri, array( 'cart/', 'checkout/', 'my-account/', 'addons/', 'logout/', 'lost-password/', 'product/' ))) {
			// why contains `product`?
			do_action('litespeed_control_set_nocache', 'uri in cart/account/user pages');
			return;
		}

		$qs     = sanitize_text_field($_SERVER['QUERY_STRING']);
		$qs_len = strlen($qs);
		if (!empty($qs) && $qs_len >= 12 && strpos($qs, 'add-to-cart=') === 0) {
			do_action('litespeed_control_set_nocache', 'qs contains add-to-cart');
			return;
		}
	}

	/**
	 * Purge a product page and related pages (based on settings) on checkout.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param WC_Product $product
	 */
	public function purge_product( $product ) {
		do_action('litespeed_debug', '[3rd] Woo Purge [pid] ' . $product->get_id());

		$do_purge = function ( $action, $debug = '' ) use ( $product ) {
			$config = apply_filters('litespeed_conf', self::O_UPDATE_INTERVAL);
			if (is_null($config)) {
				$config = self::O_PQS_CS;
			}

			if ($config === self::O_PQS_CQS) {
				$action();
				if ($debug) {
					do_action('litespeed_debug', $debug);
				}
			} elseif ($config !== self::O_PQS_CS && $product->is_in_stock()) {
				do_action('litespeed_debug', '[3rd] Woo No purge needed [option] ' . $config);
				return false;
			} elseif ($config !== self::O_PS_CN && !$product->is_in_stock()) {
				$action();
				if ($debug) {
					do_action('litespeed_debug', $debug);
				}
			}
			return true;
		};

		if (
			!$do_purge(function () use ( $product ) {
				$this->backend_purge($product->get_id());
			})
		) {
			return;
		}

		do_action('litespeed_purge_post', $product->get_id());

		// Check if is variation, purge stock too #984479
		if ($product->is_type('variation')) {
			do_action('litespeed_purge_post', $product->get_parent_id());
		}

		// Check if WPML is enabled ##972971
		if (defined('WPML_PLUGIN_BASENAME')) {
			// Check if it is a variable product and get post/parent ID
			$wpml_purge_id = $product->is_type('variation') ? $product->get_parent_id() : $product->get_id();
			$type          = apply_filters('wpml_element_type', get_post_type($wpml_purge_id));
			$trid          = apply_filters('wpml_element_trid', false, $wpml_purge_id, $type);
			$translations  = apply_filters('wpml_get_element_translations', array(), $trid, $type);
			foreach ($translations as $lang => $translation) {
				do_action('litespeed_debug', '[3rd] Woo WPML purge language: ' . $translation->language_code . ' , post ID: ' . $translation->element_id);
				do_action('litespeed_purge_post', $translation->element_id);
				// use the $translation->element_id as it is post ID of other languages
			}

			// Check other languages category and purge if configured.
			// wp_get_post_terms() only returns default language category ID
			$default_cats = wp_get_post_terms($wpml_purge_id, 'product_cat');
			$languages    = apply_filters('wpml_active_languages', null);

			foreach ($default_cats as $default_cat) {
				foreach ($languages as $language) {
					$tr_cat_id = icl_object_id($default_cat->term_id, 'product_cat', false, $language['code']);
					$do_purge(function () use ( $tr_cat_id ) {
						do_action('litespeed_purge', self::CACHETAG_TERM . $tr_cat_id);
					}, '[3rd] Woo Purge WPML category [language] ' . $language['code'] . ' [cat] ' . $tr_cat_id);
				}
			}
		}
	}

	/**
	 * Delete object-term relationship. If the post is a product and
	 * the term ids array is not empty, will add purge tags to the deleted
	 * terms.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param int   $post_id Object ID.
	 * @param array $term_ids An array of term taxonomy IDs.
	 */
	public function delete_rel( $post_id, $term_ids ) {
		if (!function_exists('wc_get_product')) {
			return;
		}

		if (empty($term_ids) || wc_get_product($post_id) === false) {
			return;
		}
		foreach ($term_ids as $term_id) {
			do_action('litespeed_purge', self::CACHETAG_TERM . $term_id);
		}
	}

	/**
	 * Purge a product's categories and tags pages in case they are affected.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param int $post_id Post id that is about to be purged
	 */
	public function backend_purge( $post_id ) {
		if (!function_exists('wc_get_product')) {
			return;
		}

		if (!isset($post_id) || wc_get_product($post_id) === false) {
			return;
		}

		$cats = $this->get_cats($post_id);
		if (!empty($cats)) {
			foreach ($cats as $cat) {
				do_action('litespeed_purge', self::CACHETAG_TERM . $cat);
			}
		}

		if (!function_exists('wc_get_product_terms')) {
			return;
		}

		$tags = wc_get_product_terms($post_id, 'product_tag', array( 'fields' => 'ids' ));
		if (!empty($tags)) {
			foreach ($tags as $tag) {
				do_action('litespeed_purge', self::CACHETAG_TERM . $tag);
			}
		}
	}

	/**
	 * When a product has a new review added, purge the recent reviews widget.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param $unused
	 * @param integer $comment_approved Whether the comment is approved or not.
	 * @param array   $commentdata Information about the comment.
	 */
	public function add_review( $unused, $comment_approved, $commentdata ) {
		if (!function_exists('wc_get_product')) {
			return;
		}

		$post_id = $commentdata['comment_post_ID'];
		if ($comment_approved !== 1 || !isset($post_id) || wc_get_product($post_id) === false) {
			return;
		}

		global $wp_widget_factory;
		if (!isset($wp_widget_factory->widgets['WC_Widget_Recent_Reviews'])) {
			return;
		}

		$recent_reviews = $wp_widget_factory->widgets['WC_Widget_Recent_Reviews'];
		if (!is_null($recent_reviews)) {
			do_action('litespeed_tag_add_widget', $recent_reviews->id);
		}
	}

	/**
	 * Append new options
	 *
	 * @since 1.6.3 Removed static
	 * @since  3.0 new API
	 */
	private function _option_append() {
		// Append option save value filter
		do_action('litespeed_conf_multi_switch', self::O_UPDATE_INTERVAL, 3); // This need to be before conf_append

		do_action('litespeed_conf_append', self::O_UPDATE_INTERVAL, false);
		do_action('litespeed_conf_append', self::O_CART_VARY, false);
	}

	/**
	 * Hooked to `litespeed_settings_tab` action.
	 * Adds the integration configuration options (currently, to determine purge rules)
	 *
	 * @since 1.6.3 Removed static
	 */
	public function settings_add_tab( $setting_page ) {
		if ($setting_page != 'cache') {
			return;
		}

		require 'woocommerce.tab.tpl.php';
	}

	/**
	 * Hook to show config content
	 *
	 * @since  3.0
	 */
	public function settings_add_content( $setting_page ) {
		if ($setting_page != 'cache') {
			return;
		}

		require 'woocommerce.content.tpl.php';
	}

	/**
	 * Helper function to select the function(s) to use to get the product
	 * category ids.
	 *
	 * @since 1.0.10
	 * @since 1.6.3 Removed static
	 * @access private
	 * @param int $product_id The product id
	 * @return array An array of category ids.
	 */
	private function get_cats( $product_id ) {
		if (!function_exists('WC')) {
			return;
		}

		$woocom = WC();
		if (isset($woocom) && version_compare($woocom->version, '2.5.0', '>=') && function_exists('wc_get_product_cat_ids')) {
			return wc_get_product_cat_ids($product_id);
		}
		$product_cats = wp_get_post_terms($product_id, 'product_cat', array( 'fields' => 'ids' ));
		foreach ($product_cats as $product_cat) {
			$product_cats = array_merge($product_cats, get_ancestors($product_cat, 'product_cat'));
		}

		return $product_cats;
	}

	/**
	 * 3rd party prepload
	 *
	 * @since  2.9.8.4
	 */
	public static function preload() {
		/**
		 * Auto puge for WooCommerce Advanced Bulk Edit plugin,
		 * Bulk edit hook need to add to preload as it will die before detect.
		 */
		add_action('wp_ajax_wpmelon_adv_bulk_edit', __CLASS__ . '::bulk_edit_purge', 1);
	}

	/**
	 * Auto puge for WooCommerce Advanced Bulk Edit plugin,
	 *
	 * @since  2.9.8.4
	 */
	public static function bulk_edit_purge() {
		if (empty($_POST['type']) || $_POST['type'] != 'saveproducts' || empty($_POST['data'])) {
			return;
		}

		/*
		 * admin-ajax form-data structure
		 * array(
		 *      "type" => "saveproducts",
		 *      "data" => array(
		 *          "column1" => "464$###0$###2#^#463$###0$###4#^#462$###0$###6#^#",
		 *          "column2" => "464$###0$###2#^#463$###0$###4#^#462$###0$###6#^#"
		 *      )
		 *  )
		 */
		$stock_string_arr = array();
		foreach ($_POST['data'] as $stock_value) {
			$stock_string_arr = array_merge($stock_string_arr, explode('#^#', $stock_value));
		}

		$lscwp_3rd_woocommerce = new self();

		if (count($stock_string_arr) < 1) {
			return;
		}

		foreach ($stock_string_arr as $edited_stock) {
			$product_id = strtok($edited_stock, '$');
			$product    = wc_get_product($product_id);

			if (empty($product)) {
				do_action('litespeed_debug', '3rd woo purge: ' . $product_id . ' not found.');
				continue;
			}

			$lscwp_3rd_woocommerce->purge_product($product);
		}
	}
}
<?php
/**
 * The Third Party integration with WooCommerce PDF Product Vouchers.
 *
 * @since       5.1.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class WC_PDF_Product_Vouchers {

	/**
	 * Do not cache generated vouchers
	 *
	 * @since 5.1.0
	 */
	public static function detect() {
		if (!class_exists('\WC_PDF_Product_Vouchers_Loader')) {
			return;
		}

		$is_voucher = !empty($_GET['post_type']) && 'wc_voucher' === $_GET['post_type'];
		$has_key    = !empty($_GET['voucher_key']) || !empty($_GET['key']);

		if ($is_voucher && $has_key) {
			do_action('litespeed_control_set_nocache', '3rd WC PDF Product Voucher');
		}
	}
}
<?php
/**
 * The Third Party integration with the NextGen Gallery plugin.
 *
 * @since       1.0.5
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

// Try preload instead
// todo: need test
// add_action('load_nextgen_gallery_modules', 'NextGenGallery::detect') ;

class NextGenGallery {

	const CACHETAG_ALBUMS    = 'NGG_A.';
	const CACHETAG_GALLERIES = 'NGG_G.';
	const CACHETAG_TAGS      = 'NGG_T.';

	/**
	 * Detect is triggered at the load_nextgen_gallery_modules action.
	 *
	 * If this action is triggered, assume NextGen Gallery is used.
	 *
	 * @since   1.0.5
	 * @access  public
	 */
	public static function preload() {
		add_action('ngg_added_new_image', __CLASS__ . '::add_image');
		add_action('ngg_ajax_image_save', __CLASS__ . '::update_image');
		add_action('ngg_delete_picture', __CLASS__ . '::delete_image');
		add_action('ngg_moved_images', __CLASS__ . '::move_image', 10, 3);
		add_action('ngg_copied_images', __CLASS__ . '::copy_image', 10, 3);
		add_action('ngg_generated_image', __CLASS__ . '::gen_image');
		add_action('ngg_recovered_image', __CLASS__ . '::gen_image');

		add_action('ngg_gallery_sort', __CLASS__ . '::update_gallery');
		add_action('ngg_delete_gallery', __CLASS__ . '::update_gallery');

		add_action('ngg_update_album', __CLASS__ . '::update_album');
		add_action('ngg_delete_album', __CLASS__ . '::update_album');

		add_filter('ngg_displayed_gallery_cache_params', __CLASS__ . '::add_container');
	}

	/**
	 * When an image is added, need to purge all pages that displays its gallery.
	 *
	 * @since   1.0.5
	 * @access  public
	 * @param   string $image  The image object added.
	 */
	public static function add_image( $image ) {
		if (!$image || !method_exists($image, 'get_gallery')) {
			return;
		}
		$gallery = $image->get_gallery();
		if ($gallery && $gallery->pageid) {
			do_action('litespeed_purge', self::CACHETAG_GALLERIES . $gallery->pageid);
		}
	}

	/**
	 * When an image is updated, need to purge all pages that displays its gallery.
	 *
	 * @since 1.0.5
	 * @access  public
	 */
	public static function update_image() {
		if (isset($_REQUEST['gallery_id'])) {
			do_action('litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key($_REQUEST['gallery_id']));
			return;
		}

		if (isset($_POST['task_list'])) {
			$task_list = str_replace('\\', '', $_POST['task_list']);
			$task_list = json_decode($task_list, true);

			if (!empty($task_list[0]['query']['id'])) {
				do_action('litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key($task_list[0]['query']['id']));
				return;
			}
		}

		if (isset($_POST['id'])) {
			$id = (int) $_POST['id'];
		} elseif (isset($_POST['image'])) {
			$id = (int) $_POST['image'];
		} elseif (isset($_GET['pid'])) {
			$id = (int) $_GET['pid'];
		} else {
			error_log('LiteSpeed_Cache hit ngg_ajax_image_save with no post image id.');
			return;
		}
		$image = \C_Image_Mapper::get_instance()->find($id);
		if ($image) {
			do_action('litespeed_purge', self::CACHETAG_GALLERIES . $image->galleryid);
		}
	}

	/**
	 * When an image is deleted, need to purge all pages that displays its gallery.
	 *
	 * @since 1.0.5
	 * @access  public
	 */
	public static function delete_image() {
		if (isset($_GET['gid'])) {
			do_action('litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key($_GET['gid']));
		}
	}

	/**
	 * When an image is moved, need to purge all old galleries and the new gallery.
	 *
	 * @since 1.0.8
	 * @access  public
	 * @param array   $images unused
	 * @param array   $old_gallery_ids Source gallery ids for the images.
	 * @param integer $new_gallery_id Destination gallery id.
	 */
	public static function move_image( $images, $old_gallery_ids, $new_gallery_id ) {
		foreach ($old_gallery_ids as $gid) {
			do_action('litespeed_purge', self::CACHETAG_GALLERIES . $gid);
		}
		do_action('litespeed_purge', self::CACHETAG_GALLERIES . $new_gallery_id);
	}

	/**
	 * When an image is copied, need to purge the destination gallery.
	 *
	 * @param array   $image_pid_map unused
	 * @param array   $old_gallery_ids unused
	 * @param integer $new_gallery_id Destination gallery id.
	 */
	public static function copy_image( $image_pid_map, $old_gallery_ids, $new_gallery_id ) {
		do_action('litespeed_purge', self::CACHETAG_GALLERIES . $new_gallery_id);
	}

	/**
	 * When an image is re-generated, need to purge the gallery it belongs to.
	 * Also applies to recovered images.
	 *
	 * @param Image $image The re-generated image.
	 */
	public static function gen_image( $image ) {
		do_action('litespeed_purge', self::CACHETAG_GALLERIES . $image->galleryid);
	}

	/**
	 * When a gallery is updated, need to purge all pages that display the gallery.
	 *
	 * @since 1.0.5
	 * @access  public
	 * @param   integer $gid    The gallery id of the gallery updated.
	 */
	public static function update_gallery( $gid ) {
		// New version input will be an object with gid value
		if (is_object($gid) && !empty($gid->gid)) {
			$gid = $gid->gid;
		}

		do_action('litespeed_purge', self::CACHETAG_GALLERIES . $gid);
	}

	/**
	 * When an album is updated, need to purge all pages that display the album.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param   integer $aid    The album id of the album updated.
	 */
	public static function update_album( $aid ) {
		do_action('litespeed_purge', self::CACHETAG_ALBUMS . $aid);
	}

	/**
	 * When rendering a page, if the page has a gallery, album or tag cloud,
	 * it needs to be tagged appropriately.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param object $render_parms Parameters used to render the associated part of the page.
	 * @return mixed Null if passed in null, $render_parms otherwise.
	 */
	public static function add_container( $render_parms ) {
		// Check if null. If it is null, can't continue.
		if (is_null($render_parms)) {
			return null;
		}
		$src           = $render_parms[0]->source;
		$container_ids = $render_parms[0]->container_ids;
		// Can switch on first char if we end up with more sources.
		switch ($src) {
			case 'albums':
            $tag = self::CACHETAG_ALBUMS;
				break;
			case 'galleries':
            $tag = self::CACHETAG_GALLERIES;
				break;
			case 'tags':
            $tag = self::CACHETAG_TAGS;
				break;
			default:
				return $render_parms;
		}

		foreach ($container_ids as $id) {
			do_action('litespeed_tag_add', $tag . $id);
		}

		return $render_parms;
	}
}
<?php defined( 'WPINC' ) || exit; ?>

<a class='litespeed-tab nav-tab' href='#woocommerce' data-litespeed-tab='woocommerce'><?php echo __( 'WooCommerce', 'litespeed-cache' ); ?></a>
<?php
/**
 * The Third Party integration with the bbPress plugin.
 *
 * @since       1.0.5
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

use LiteSpeed\Router;

class BBPress {

	/**
	 * Detect if bbPress is installed and if the page is a bbPress page.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public static function detect() {
		if (function_exists('is_bbpress')) {
			add_action('litespeed_api_purge_post', __CLASS__ . '::on_purge'); // todo
			if (apply_filters('litespeed_esi_status', false)) {
				// don't consider private cache yet (will do if any feedback)
				add_action('litespeed_control_finalize', __CLASS__ . '::set_control');
			}
		}
	}

	/**
	 * This filter is used to let the cache know if a page is cacheable.
	 *
	 * @access public
	 * @since 1.2.0
	 */
	public static function set_control() {
		if (!apply_filters('litespeed_control_cacheable', false)) {
			return;
		}

		// set non ESI public
		if (is_bbpress() && Router::is_logged_in()) {
			do_action('litespeed_control_set_nocache', 'bbpress nocache due to loggedin');
		}
	}

	/**
	 * When a bbPress page is purged, need to purge the forums list and
	 * any/all ancestor pages.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param integer $post_id The post id of the page being purged.
	 */
	public static function on_purge( $post_id ) {
		if (!is_bbpress()) {
			if (!function_exists('bbp_is_forum') || !function_exists('bbp_is_topic') || !function_exists('bbp_is_reply')) {
				return;
			}
			if (!bbp_is_forum($post_id) && !bbp_is_topic($post_id) && !bbp_is_reply($post_id)) {
				return;
			}
		}

		// Need to purge base forums page, bbPress page was updated.
		do_action('litespeed_purge_posttype', bbp_get_forum_post_type());
		$ancestors = get_post_ancestors($post_id);

		// If there are ancestors, need to purge them as well.
		if (!empty($ancestors)) {
			foreach ($ancestors as $ancestor) {
				do_action('litespeed_purge_post', $ancestor);
			}
		}

		global $wp_widget_factory;
		$replies_widget = $wp_widget_factory->get_widget_object('BBP_Replies_Widget');
		if (bbp_is_reply($post_id) && $replies_widget) {
			do_action('litespeed_purge_widget', $replies_widget->id);
		}

		$topic_widget = $wp_widget_factory->get_widget_object('BBP_Topics_Widget');
		if (bbp_is_topic($post_id) && $topic_widget) {
			do_action('litespeed_purge_widget', $topic_widget->id);
		}
	}
}
<?php
/**
 * The Third Party integration with User Switching.
 *
 * @since       3.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class User_Switching {

	public static function detect() {
		if (!class_exists('user_switching')) {
			return;
		}

		/**
		 * Register switch back URL nonce
		 *
		 * @since  3.0 @Robert Staddon
		 */
		if (function_exists('current_user_switched') && ($old_user = current_user_switched())) {
			do_action('litespeed_nonce', 'switch_to_olduser_' . $old_user->ID);
		}
	}
}
<?php
/**
 * The Third Party integration with the Theme My Login plugin.
 *
 * @since       1.0.15
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Theme_My_Login {

	/**
	 * Detects if Better Theme My Login is active.
	 *
	 * @since 1.0.15
	 * @access public
	 */
	public static function detect() {
		if (defined('THEME_MY_LOGIN_PATH')) {
			add_action('litespeed_control_finalize', __CLASS__ . '::set_control');
		}
	}

	/**
	 * This filter is used to let the cache know if a page is cacheable.
	 *
	 * @access public
	 * @since 1.0.15
	 */
	public static function set_control() {
		if (!apply_filters('litespeed_control_cacheable', false)) {
			return;
		}

		// check if this page is TML page or not
		if (class_exists('Theme_My_Login') && \Theme_My_Login::is_tml_page()) {
			do_action('litespeed_control_set_nocache', 'Theme My Login');
		}
	}
}
<?php
/**
 * The Third Party integration with DIVI Theme.
 *
 * @since       2.9.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class Divi_Theme_Builder {

	// private static $js_comment_box = false;

	/**
	 * Check if is Edit mode in frontend, disable all LSCWP features to avoid breaking page builder
	 *
	 * @since 2.9.7.2 #435538 #581740 #977284
	 * @since  2.9.9.1 Added 'et_pb_preview' for loading image from library in divi page edit
	 */
	public static function preload() {
		if (!function_exists('et_setup_theme')) {
			return;
		}
		if (!empty($_GET['et_fb']) || !empty($_GET['et_pb_preview']) || (!empty($_GET['p']) && !empty($_GET['preview']) && $_GET['preview'] === 'true')) {
			do_action('litespeed_disable_all', 'divi edit mode');
		}
	}

	public static function detect() {
		if (!defined('ET_CORE')) {
			return;
		}

		// As DIVI will set page to non-cacheable for the 1st visit to generate CCSS, will need to ignore that no-cache for crawler
		defined('LITESPEED_CRAWLER_IGNORE_NONCACHEABLE') || define('LITESPEED_CRAWLER_IGNORE_NONCACHEABLE', true);

		/**
		 * Add contact form to nonce
		 *
		 * @since  2.9.7.1 #475461
		 */
		do_action('litespeed_nonce', 'et-pb-contact-form-submit');

		/**
		 * Subscribe module and A/B logging
		 *
		 * @since  3.0 @Robert Staddon
		 */
		do_action('litespeed_nonce', 'et_frontend_nonce');
		do_action('litespeed_nonce', 'et_ab_log_nonce');

		/*
		// the comment box fix is for user using theme builder, ESI will load the wrong json string
		// As we disabled all for edit mode, this is no more needed
		add_action( 'et_fb_before_comments_template', 'Divi_Theme_Builder::js_comment_box_on' );
		add_action( 'et_fb_after_comments_template', 'Divi_Theme_Builder::js_comment_box_off' );
		add_filter( 'litespeed_esi_params-comment-form', 'Divi_Theme_Builder::esi_comment_add_slash' );// Note: this is changed in v2.9.8.1
		*/
	}

	/*
	public static function js_comment_box_on() {
		self::$js_comment_box = true;
	}

	public static function js_comment_box_off() {
		self::$js_comment_box = false;
	}

	public static function esi_comment_add_slash( $params )
	{
		if ( self::$js_comment_box ) {
			$params[ 'is_json' ] = 1;
			$params[ '_ls_silence' ] = 1;
		}

		return $params;
	}
	*/
}
<?php
/**
 * The Third Party integration with the Aelia CurrencySwitcher plugin.
 *
 * @since       1.0.13
 * @since       2.6     Removed hook_vary as OLS supports vary header already
 * @package     LiteSpeed_Cache
 * @subpackage  LiteSpeed_Cache/thirdparty
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

use LiteSpeed\API;

class Aelia_CurrencySwitcher {

	private static $_cookies = array( 'aelia_cs_selected_currency', 'aelia_customer_country', 'aelia_customer_state', 'aelia_tax_exempt' );

	/**
	 * Detects if WooCommerce is installed.
	 *
	 * @since 1.0.13
	 * @access public
	 */
	public static function detect() {
		if (defined('WOOCOMMERCE_VERSION') && isset($GLOBALS['woocommerce-aelia-currencyswitcher']) && is_object($GLOBALS['woocommerce-aelia-currencyswitcher'])) {
			// Not all pages need to add vary, so need to use this API to set conditions
			self::$_cookies = apply_filters('litespeed_3rd_aelia_cookies', self::$_cookies);
			add_filter('litespeed_vary_curr_cookies', __CLASS__ . '::check_cookies'); // this is for vary response headers, only add when needed
			add_filter('litespeed_vary_cookies', __CLASS__ . '::register_cookies'); // this is for rewrite rules, so always add
		}
	}

	public static function register_cookies( $list ) {
		return array_merge($list, self::$_cookies);
	}

	/**
	 * If the page is not a woocommerce page, ignore the logic.
	 * Else check cookies. If cookies are set, set the vary headers, else do not cache the page.
	 *
	 * @since 1.0.13
	 * @access public
	 */
	public static function check_cookies( $list ) {
		// NOTE: is_cart and is_checkout should also be checked, but will be checked by woocommerce anyway.
		if (!is_woocommerce()) {
			return $list;
		}

		return array_merge($list, self::$_cookies);
	}
}
<?php
/**
 * The Third Party integration with WCML.
 *
 * @since       3.0
 */
namespace LiteSpeed\Thirdparty;

defined('WPINC') || exit();

class WCML {

	private static $_currency = '';

	public static function detect() {
		if (!defined('WCML_VERSION')) {
			return;
		}

		add_filter('wcml_client_currency', __CLASS__ . '::apply_client_currency');
		add_action('wcml_set_client_currency', __CLASS__ . '::set_client_currency');
	}

	public static function set_client_currency( $currency ) {
		self::apply_client_currency($currency);

		do_action('litespeed_vary_ajax_force');
	}

	public static function apply_client_currency( $currency ) {
		if ($currency !== wcml_get_woocommerce_currency_option()) {
			self::$_currency = $currency;
			add_filter('litespeed_vary', __CLASS__ . '::apply_vary');
		}

		return $currency;
	}

	public static function apply_vary( $list ) {
		$list['wcml_currency'] = self::$_currency;
		return $list;
	}
}
<?php
/**
 * The registry for Third Party Plugins Integration files.
 *
 * This file is only used to include the integration files/classes.
 * This works as an entry point for the initial add_action for the
 * detect function.
 *
 * It is not required to add all integration files here, this just provides
 * a common place for plugin authors to append their file to.
 */
defined('WPINC') || exit();

use LiteSpeed\API;

$third_cls = array(
	'Aelia_CurrencySwitcher',
	'Autoptimize',
	'Avada',
	'BBPress',
	'Beaver_Builder',
	'Caldera_Forms',
	'Divi_Theme_Builder',
	'Facetwp',
	'LiteSpeed_Check',
	'Theme_My_Login',
	'User_Switching',
	'WCML',
	'WooCommerce',
	'WC_PDF_Product_Vouchers',
	'Woo_Paypal',
	'Wp_Polls',
	'WP_PostRatings',
	'Wpdiscuz',
	'WPLister',
	'WPML',
	'WpTouch',
	'Yith_Wishlist',
);

foreach ($third_cls as $cls) {
	add_action('litespeed_load_thirdparty', 'LiteSpeed\Thirdparty\\' . $cls . '::detect');
}

// Preload needed for certain thirdparty
add_action('litespeed_init', 'LiteSpeed\Thirdparty\Divi_Theme_Builder::preload');
add_action('litespeed_init', 'LiteSpeed\Thirdparty\WooCommerce::preload');
add_action('litespeed_init', 'LiteSpeed\Thirdparty\NextGenGallery::preload');
add_action('litespeed_init', 'LiteSpeed\Thirdparty\AMP::preload');
add_action('litespeed_init', 'LiteSpeed\Thirdparty\Elementor::preload');
add_action('litespeed_init', 'LiteSpeed\Thirdparty\Gravity_Forms::preload');
add_action('litespeed_init', 'LiteSpeed\Thirdparty\Perfmatters::preload');
<?php

/**
 * The abstract instance
 *
 * @since       3.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

abstract class Root {

	const CONF_FILE = '.litespeed_conf.dat';
	// Instance set
	private static $_instances;

	private static $_options         = array();
	private static $_const_options   = array();
	private static $_primary_options = array();
	private static $_network_options = array();

	/**
	 * Check if need to separate ccss for mobile
	 *
	 * @since  4.7
	 * @access protected
	 */
	protected function _separate_mobile() {
		return (wp_is_mobile() || apply_filters('litespeed_is_mobile', false)) && $this->conf(Base::O_CACHE_MOBILE);
	}

	/**
	 * Log an error message
	 *
	 * @since 7.0
	 */
	public static function debugErr( $msg, $backtrace_limit = false ) {
		$msg = '❌ ' . $msg;
		self::debug($msg, $backtrace_limit);
	}

	/**
	 * Log a debug message.
	 *
	 * @since  4.4
	 * @access public
	 */
	public static function debug( $msg, $backtrace_limit = false ) {
		if (!defined('LSCWP_LOG')) {
			return;
		}

		if (defined('static::LOG_TAG')) {
			$msg = static::LOG_TAG . '  ' . $msg;
		}

		Debug2::debug($msg, $backtrace_limit);
	}

	/**
	 * Log an advanced debug message.
	 *
	 * @since  4.4
	 * @access public
	 */
	public static function debug2( $msg, $backtrace_limit = false ) {
		if (!defined('LSCWP_LOG_MORE')) {
			return;
		}

		if (defined('static::LOG_TAG')) {
			$msg = static::LOG_TAG . '  ' . $msg;
		}
		Debug2::debug2($msg, $backtrace_limit);
	}

	/**
	 * Check if there is cache folder for that type
	 *
	 * @since  3.0
	 */
	public function has_cache_folder( $type ) {
		$subsite_id = is_multisite() && !is_network_admin() ? get_current_blog_id() : '';

		if (file_exists(LITESPEED_STATIC_DIR . '/' . $type . '/' . $subsite_id)) {
			return true;
		}
		return false;
	}

	/**
	 * Maybe make the cache folder if not existed
	 *
	 * @since 4.4.2
	 */
	protected function _maybe_mk_cache_folder( $type ) {
		if (!$this->has_cache_folder($type)) {
			$subsite_id = is_multisite() && !is_network_admin() ? get_current_blog_id() : '';
			$path       = LITESPEED_STATIC_DIR . '/' . $type . '/' . $subsite_id;
			mkdir($path, 0755, true);
		}
	}

	/**
	 * Delete file-based cache folder for that type
	 *
	 * @since  3.0
	 */
	public function rm_cache_folder( $type ) {
		if (!$this->has_cache_folder($type)) {
			return;
		}

		$subsite_id = is_multisite() && !is_network_admin() ? get_current_blog_id() : '';

		File::rrmdir(LITESPEED_STATIC_DIR . '/' . $type . '/' . $subsite_id);

		// Clear All summary data
		self::save_summary(false, false, true);

		if ($type == 'ccss' || $type == 'ucss') {
			Debug2::debug('[CSS] Cleared ' . $type . ' queue');
		} elseif ($type == 'avatar') {
			Debug2::debug('[Avatar] Cleared ' . $type . ' queue');
		} elseif ($type == 'css' || $type == 'js') {
			return;
		} else {
			Debug2::debug('[' . strtoupper($type) . '] Cleared ' . $type . ' queue');
		}
	}

	/**
	 * Build the static filepath
	 *
	 * @since  4.0
	 */
	protected function _build_filepath_prefix( $type ) {
		$filepath_prefix = '/' . $type . '/';
		if (is_multisite()) {
			$filepath_prefix .= get_current_blog_id() . '/';
		}

		return $filepath_prefix;
	}

	/**
	 * Load current queues from data file
	 *
	 * @since  4.1
	 * @since  4.3 Elevated to root.cls
	 */
	public function load_queue( $type ) {
		$filepath_prefix = $this->_build_filepath_prefix($type);
		$static_path     = LITESPEED_STATIC_DIR . $filepath_prefix . '.litespeed_conf.dat';

		$queue = array();
		if (file_exists($static_path)) {
			$queue = \json_decode(file_get_contents($static_path), true) ?: array();
		}

		return $queue;
	}

	/**
	 * Save current queues to data file
	 *
	 * @since  4.1
	 * @since  4.3 Elevated to root.cls
	 */
	public function save_queue( $type, $list ) {
		$filepath_prefix = $this->_build_filepath_prefix($type);
		$static_path     = LITESPEED_STATIC_DIR . $filepath_prefix . '.litespeed_conf.dat';

		$data = \json_encode($list);

		File::save($static_path, $data, true);
	}

	/**
	 * Clear all waiting queues
	 *
	 * @since  3.4
	 * @since  4.3 Elevated to root.cls
	 */
	public function clear_q( $type, $silent = false ) {
		$filepath_prefix = $this->_build_filepath_prefix($type);
		$static_path     = LITESPEED_STATIC_DIR . $filepath_prefix . '.litespeed_conf.dat';

		if (file_exists($static_path)) {
			$silent = false;
			unlink($static_path);
		}

		if (!$silent) {
			$msg = __('All QUIC.cloud service queues have been cleared.', 'litespeed-cache');
			Admin_Display::success($msg);
		}
	}

	/**
	 * Load an instance or create it if not existed
	 *
	 * @since  4.0
	 */
	public static function cls( $cls = false, $unset = false, $data = false ) {
		if (!$cls) {
			$cls = self::ori_cls();
		}
		$cls = __NAMESPACE__ . '\\' . $cls;

		$cls_tag = strtolower($cls);

		if (!isset(self::$_instances[$cls_tag])) {
			if ($unset) {
				return;
			}

			self::$_instances[$cls_tag] = new $cls($data);
		} elseif ($unset) {
			unset(self::$_instances[$cls_tag]);
			return;
		}

		return self::$_instances[$cls_tag];
	}

	/**
	 * Set one conf or confs
	 */
	public function set_conf( $id, $val = null ) {
		if (is_array($id)) {
			foreach ($id as $k => $v) {
				$this->set_conf($k, $v);
			}
			return;
		}
		self::$_options[$id] = $val;
	}

	/**
	 * Set one primary conf or confs
	 */
	public function set_primary_conf( $id, $val = null ) {
		if (is_array($id)) {
			foreach ($id as $k => $v) {
				$this->set_primary_conf($k, $v);
			}
			return;
		}
		self::$_primary_options[$id] = $val;
	}

	/**
	 * Set one network conf
	 */
	public function set_network_conf( $id, $val = null ) {
		if (is_array($id)) {
			foreach ($id as $k => $v) {
				$this->set_network_conf($k, $v);
			}
			return;
		}
		self::$_network_options[$id] = $val;
	}

	/**
	 * Set one const conf
	 */
	public function set_const_conf( $id, $val ) {
		self::$_const_options[$id] = $val;
	}

	/**
	 * Check if is overwritten by const
	 *
	 * @since  3.0
	 */
	public function const_overwritten( $id ) {
		if (!isset(self::$_const_options[$id]) || self::$_const_options[$id] == self::$_options[$id]) {
			return null;
		}
		return self::$_const_options[$id];
	}

	/**
	 * Check if is overwritten by primary site
	 *
	 * @since  3.2.2
	 */
	public function primary_overwritten( $id ) {
		if (!isset(self::$_primary_options[$id]) || self::$_primary_options[$id] == self::$_options[$id]) {
			return null;
		}

		// Network admin settings is impossible to be overwritten by primary
		if (is_network_admin()) {
			return null;
		}

		return self::$_primary_options[$id];
	}

	/**
	 * Get the list of configured options for the blog.
	 *
	 * @since 1.0
	 */
	public function get_options( $ori = false ) {
		if (!$ori) {
			return array_merge(self::$_options, self::$_primary_options, self::$_network_options, self::$_const_options);
		}

		return self::$_options;
	}

	/**
	 * If has a conf or not
	 */
	public function has_conf( $id ) {
		return array_key_exists($id, self::$_options);
	}

	/**
	 * If has a primary conf or not
	 */
	public function has_primary_conf( $id ) {
		return array_key_exists($id, self::$_primary_options);
	}

	/**
	 * If has a network conf or not
	 */
	public function has_network_conf( $id ) {
		return array_key_exists($id, self::$_network_options);
	}

	/**
	 * Get conf
	 */
	public function conf( $id, $ori = false ) {
		if (isset(self::$_options[$id])) {
			if (!$ori) {
				$val = $this->const_overwritten($id);
				if ($val !== null) {
					defined('LSCWP_LOG') && Debug2::debug('[Conf] 🏛️ const option ' . $id . '=' . var_export($val, true));
					return $val;
				}

				$val = $this->primary_overwritten($id); // Network Use primary site settings
				if ($val !== null) {
					return $val;
				}
			}

			// Network original value will be in _network_options
			if (!is_network_admin() || !$this->has_network_conf($id)) {
				return self::$_options[$id];
			}
		}

		if ($this->has_network_conf($id)) {
			if (!$ori) {
				$val = $this->const_overwritten($id);
				if ($val !== null) {
					defined('LSCWP_LOG') && Debug2::debug('[Conf] 🏛️ const option ' . $id . '=' . var_export($val, true));
					return $val;
				}
			}

			return $this->network_conf($id);
		}

		defined('LSCWP_LOG') && Debug2::debug('[Conf] Invalid option ID ' . $id);

		return null;
	}

	/**
	 * Get primary conf
	 */
	public function primary_conf( $id ) {
		return self::$_primary_options[$id];
	}

	/**
	 * Get network conf
	 */
	public function network_conf( $id ) {
		if (!$this->has_network_conf($id)) {
			return null;
		}

		return self::$_network_options[$id];
	}

	/**
	 * Get called class short name
	 */
	public static function ori_cls() {
		$cls       = new \ReflectionClass(get_called_class());
		$shortname = $cls->getShortName();
		$namespace = str_replace(__NAMESPACE__ . '\\', '', $cls->getNamespaceName() . '\\');
		if ($namespace) {
			// the left namespace after dropped LiteSpeed
			$shortname = $namespace . $shortname;
		}

		return $shortname;
	}

	/**
	 * Generate conf name for wp_options record
	 *
	 * @since 3.0
	 */
	public static function name( $id ) {
		$name = strtolower(self::ori_cls());
		return 'litespeed.' . $name . '.' . $id;
	}

	/**
	 * Dropin with prefix for WP's get_option
	 *
	 * @since 3.0
	 */
	public static function get_option( $id, $default_v = false ) {
		$v = get_option(self::name($id), $default_v);

		// Maybe decode array
		if (is_array($default_v)) {
			$v = self::_maybe_decode($v);
		}

		return $v;
	}

	/**
	 * Dropin with prefix for WP's get_site_option
	 *
	 * @since 3.0
	 */
	public static function get_site_option( $id, $default_v = false ) {
		$v = get_site_option(self::name($id), $default_v);

		// Maybe decode array
		if (is_array($default_v)) {
			$v = self::_maybe_decode($v);
		}

		return $v;
	}

	/**
	 * Dropin with prefix for WP's get_blog_option
	 *
	 * @since 3.0
	 */
	public static function get_blog_option( $blog_id, $id, $default_v = false ) {
		$v = get_blog_option($blog_id, self::name($id), $default_v);

		// Maybe decode array
		if (is_array($default_v)) {
			$v = self::_maybe_decode($v);
		}

		return $v;
	}

	/**
	 * Dropin with prefix for WP's add_option
	 *
	 * @since 3.0
	 */
	public static function add_option( $id, $v ) {
		add_option(self::name($id), self::_maybe_encode($v));
	}

	/**
	 * Dropin with prefix for WP's add_site_option
	 *
	 * @since 3.0
	 */
	public static function add_site_option( $id, $v ) {
		add_site_option(self::name($id), self::_maybe_encode($v));
	}

	/**
	 * Dropin with prefix for WP's update_option
	 *
	 * @since 3.0
	 */
	public static function update_option( $id, $v ) {
		update_option(self::name($id), self::_maybe_encode($v));
	}

	/**
	 * Dropin with prefix for WP's update_site_option
	 *
	 * @since 3.0
	 */
	public static function update_site_option( $id, $v ) {
		update_site_option(self::name($id), self::_maybe_encode($v));
	}

	/**
	 * Decode an array
	 *
	 * @since  4.0
	 */
	private static function _maybe_decode( $v ) {
		if (!is_array($v)) {
			$v2 = \json_decode($v, true);
			if ($v2 !== null) {
				$v = $v2;
			}
		}
		return $v;
	}

	/**
	 * Encode an array
	 *
	 * @since  4.0
	 */
	private static function _maybe_encode( $v ) {
		if (is_array($v)) {
			$v = \json_encode($v) ?: $v; // Non utf-8 encoded value will get failed, then used ori value
		}
		return $v;
	}

	/**
	 * Dropin with prefix for WP's delete_option
	 *
	 * @since 3.0
	 */
	public static function delete_option( $id ) {
		delete_option(self::name($id));
	}

	/**
	 * Dropin with prefix for WP's delete_site_option
	 *
	 * @since 3.0
	 */
	public static function delete_site_option( $id ) {
		delete_site_option(self::name($id));
	}

	/**
	 * Read summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get_summary( $field = false ) {
		$summary = self::get_option('_summary', array());

		if (!is_array($summary)) {
			$summary = array();
		}

		if (!$field) {
			return $summary;
		}

		if (array_key_exists($field, $summary)) {
			return $summary[$field];
		}

		return null;
	}

	/**
	 * Save summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function save_summary( $data = false, $reload = false, $overwrite = false ) {
		if ($reload || empty(static::cls()->_summary)) {
			self::reload_summary();
		}

		$existing_summary = static::cls()->_summary;
		if ($overwrite || !is_array($existing_summary)) {
			$existing_summary = array();
		}
		$new_summary = array_merge($existing_summary, $data ?: array());
		// self::debug2('Save after Reloaded summary', $new_summary);
		static::cls()->_summary = $new_summary;

		self::update_option('_summary', $new_summary);
	}

	/**
	 * Reload summary
	 *
	 * @since 5.0
	 */
	public static function reload_summary() {
		static::cls()->_summary = self::get_summary();
		// self::debug2( 'Reloaded summary', static::cls()->_summary );
	}

	/**
	 * Get the current instance object. To be inherited.
	 *
	 * @since 3.0
	 */
	public static function get_instance() {
		return static::cls();
	}
}
<?php

/**
 * The error class.
 *
 * @since       3.0
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/src
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Error {

	private static $CODE_SET = array(
		'HTA_LOGIN_COOKIE_INVALID' => 4300, // .htaccess did not find.
		'HTA_DNF' => 4500, // .htaccess did not find.
		'HTA_BK' => 9010, // backup
		'HTA_R' => 9041, // read htaccess
		'HTA_W' => 9042, // write
		'HTA_GET' => 9030, // failed to get
	);

	/**
	 * Throw an error with msg
	 *
	 * @since  3.0
	 */
	public static function t( $code, $args = null ) {
		throw new \Exception(self::msg($code, $args));
	}

	/**
	 * Translate an error to description
	 *
	 * @since  3.0
	 */
	public static function msg( $code, $args = null ) {
		switch ($code) {
			case 'qc_setup_required':
            $msg =
            sprintf(__('You will need to finish %s setup to use the online services.', 'litespeed-cache'), '<strong>QUIC.cloud</strong>') .
            Doc::learn_more(admin_url('admin.php?page=litespeed-general'), __('Click here to set.', 'litespeed-cache'), true, false, true);
				break;

			case 'out_of_daily_quota':
            $msg  = __('You have used all of your daily quota for today.', 'litespeed-cache');
            $msg .=
            ' ' .
            Doc::learn_more(
            'https://docs.quic.cloud/billing/services/#daily-limits-on-free-quota-usage',
            __('Learn more or purchase additional quota.', 'litespeed-cache'),
            false,
            false,
            true
        );
				break;

			case 'out_of_quota':
            $msg  = __('You have used all of your quota left for current service this month.', 'litespeed-cache');
            $msg .=
            ' ' .
            Doc::learn_more(
            'https://docs.quic.cloud/billing/services/#daily-limits-on-free-quota-usage',
            __('Learn more or purchase additional quota.', 'litespeed-cache'),
            false,
            false,
            true
        );
				break;

			case 'too_many_requested':
            $msg = __('You have too many requested images, please try again in a few minutes.', 'litespeed-cache');
				break;

			case 'too_many_notified':
            $msg = __('You have images waiting to be pulled. Please wait for the automatic pull to complete, or pull them down manually now.', 'litespeed-cache');
				break;

			case 'empty_list':
            $msg = __('The image list is empty.', 'litespeed-cache');
				break;

			case 'lack_of_param':
            $msg = __('Not enough parameters. Please check if the domain key is set correctly', 'litespeed-cache');
				break;

			case 'unfinished_queue':
            $msg = __('There is proceeding queue not pulled yet.', 'litespeed-cache');
				break;

			case strpos($code, 'unfinished_queue ') === 0:
            $msg = sprintf(
            __('There is proceeding queue not pulled yet. Queue info: %s.', 'litespeed-cache'),
            '<code>' . substr($code, strlen('unfinished_queue ')) . '</code>'
        );
				break;

			case 'err_alias':
            $msg = __('The site is not a valid alias on QUIC.cloud.', 'litespeed-cache');
				break;

			case 'site_not_registered':
            $msg = __('The site is not registered on QUIC.cloud.', 'litespeed-cache');
				break;

			case 'err_key':
            $msg = __('The domain key is not correct. Please try to sync your domain key again.', 'litespeed-cache');
				break;

			case 'heavy_load':
            $msg = __('The current server is under heavy load.', 'litespeed-cache');
				break;

			case 'redetect_node':
            $msg = __('Online node needs to be redetected.', 'litespeed-cache');
				break;

			case 'err_overdraw':
            $msg = __('Credits are not enough to proceed the current request.', 'litespeed-cache');
				break;

			case 'W':
            $msg = __('%s file not writable.', 'litespeed-cache');
				break;

			case 'HTA_DNF':
            if (!is_array($args)) {
					$args = array( '<code>' . $args . '</code>' );
				}
            $args[] = '.htaccess';
            $msg    = __('Could not find %1$s in %2$s.', 'litespeed-cache');
				break;

			case 'HTA_LOGIN_COOKIE_INVALID':
            $msg = sprintf(__('Invalid login cookie. Please check the %s file.', 'litespeed-cache'), '.htaccess');
				break;

			case 'HTA_BK':
            $msg = sprintf(__('Failed to back up %s file, aborted changes.', 'litespeed-cache'), '.htaccess');
				break;

			case 'HTA_R':
            $msg = sprintf(__('%s file not readable.', 'litespeed-cache'), '.htaccess');
				break;

			case 'HTA_W':
            $msg = sprintf(__('%s file not writable.', 'litespeed-cache'), '.htaccess');
				break;

			case 'HTA_GET':
            $msg = sprintf(__('Failed to get %s file contents.', 'litespeed-cache'), '.htaccess');
				break;

			case 'failed_tb_creation':
            $msg = __('Failed to create table %1$s! SQL: %2$s.', 'litespeed-cache');
				break;

			case 'crawler_disabled':
            $msg = __('Crawler disabled by the server admin.', 'litespeed-cache');
				break;

			case 'try_later': // QC error code
            $msg = __('Previous request too recent. Please try again later.', 'litespeed-cache');
				break;

			case strpos($code, 'try_later ') === 0:
            $msg = sprintf(
            __('Previous request too recent. Please try again after %s.', 'litespeed-cache'),
            '<code>' . Utility::readable_time(substr($code, strlen('try_later ')), 3600, true) . '</code>'
        );
				break;

			case 'waiting_for_approval':
            $msg = __('Your application is waiting for approval.', 'litespeed-cache');
				break;

			case 'callback_fail_hash':
            $msg = __('The callback validation to your domain failed due to hash mismatch.', 'litespeed-cache');
				break;

			case 'callback_fail':
            $msg = __('The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.', 'litespeed-cache');
				break;

			case substr($code, 0, 14) === 'callback_fail ':
            $msg =
            __('The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: ', 'litespeed-cache') .
            substr($code, 14);
				break;

			case 'forbidden':
            $msg = __('Your domain has been forbidden from using our services due to a previous policy violation.', 'litespeed-cache');
				break;

			case 'err_dns_active':
            $msg = __(
            'You cannot remove this DNS zone, because it is still in use. Please update the domain\'s nameservers, then try to delete this zone again, otherwise your site will become inaccessible.',
            'litespeed-cache'
        );
				break;

			default:
            $msg = __('Unknown error', 'litespeed-cache') . ': ' . $code;
				break;
		}

		if ($args !== null) {
			$msg = is_array($args) ? vsprintf($msg, $args) : sprintf($msg, $args);
		}

		if (isset(self::$CODE_SET[$code])) {
			$msg = 'ERROR ' . self::$CODE_SET[$code] . ': ' . $msg;
		}

		return $msg;
	}
}
<?php

/**
 * The admin settings handler of the plugin.
 *
 * @since      1.1.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Admin_Settings extends Base {

	const ENROLL = '_settings-enroll';

	/**
	 * Save settings
	 *
	 * Both $_POST and CLI can use this way
	 *
	 * Import will directly call conf.cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function save( $raw_data ) {
		Debug2::debug('[Settings] saving');

		if (empty($raw_data[self::ENROLL])) {
			exit('No fields');
		}

		$raw_data = Admin::cleanup_text($raw_data);

		// Convert data to config format
		$the_matrix = array();
		foreach (array_unique($raw_data[self::ENROLL]) as $id) {
			$child = false;
			// Drop array format
			if (strpos($id, '[') !== false) {
				if (strpos($id, self::O_CDN_MAPPING) === 0 || strpos($id, self::O_CRAWLER_COOKIES) === 0) {
					// CDN child | Cookie Crawler settings
					$child = substr($id, strpos($id, '[') + 1, strpos($id, ']') - strpos($id, '[') - 1);
					$id    = substr($id, 0, strpos($id, '[')); // Drop ending []; Compatible with xx[0] way from CLI
				} else {
					$id = substr($id, 0, strpos($id, '[')); // Drop ending []
				}
			}

			if (!array_key_exists($id, self::$_default_options)) {
				continue;
			}

			// Validate $child
			if ($id == self::O_CDN_MAPPING) {
				if (!in_array($child, array( self::CDN_MAPPING_URL, self::CDN_MAPPING_INC_IMG, self::CDN_MAPPING_INC_CSS, self::CDN_MAPPING_INC_JS, self::CDN_MAPPING_FILETYPE ))) {
					continue;
				}
			}
			if ($id == self::O_CRAWLER_COOKIES) {
				if (!in_array($child, array( self::CRWL_COOKIE_NAME, self::CRWL_COOKIE_VALS ))) {
					continue;
				}
			}

			$data = false;

			if ($child) {
				$data = !empty($raw_data[$id][$child]) ? $raw_data[$id][$child] : false; // []=xxx or [0]=xxx
			} else {
				$data = !empty($raw_data[$id]) ? $raw_data[$id] : false;
			}

			/**
			 * Sanitize the value
			 */
			if ($id == self::O_CDN_MAPPING || $id == self::O_CRAWLER_COOKIES) {
				// Use existing in queue data if existed (Only available when $child != false)
				$data2 = array_key_exists($id, $the_matrix) ? $the_matrix[$id] : (defined('WP_CLI') && WP_CLI ? $this->conf($id) : array());
			}
			switch ($id) {
				case self::O_CRAWLER_ROLES: // Don't allow Editor/admin to be used in crawler role simulator
                $data = Utility::sanitize_lines($data);
                if ($data) {
						foreach ($data as $k => $v) {
                        if (user_can($v, 'edit_posts')) {
								$msg = sprintf(
								__('The user with id %s has editor access, which is not allowed for the role simulator.', 'litespeed-cache'),
								'<code>' . $v . '</code>'
									);
									Admin_Display::error($msg);
									unset($data[$k]);
                        }
							}
					}
					break;
				case self::O_CDN_MAPPING:
                /**
                 * CDN setting
                 *
                 * Raw data format:
                 *      cdn-mapping[url][] = 'xxx'
                 *      cdn-mapping[url][2] = 'xxx2'
                 *      cdn-mapping[inc_js][] = 1
                 *
                 * Final format:
                 *      cdn-mapping[ 0 ][ url ] = 'xxx'
                 *      cdn-mapping[ 2 ][ url ] = 'xxx2'
                 */
                if ($data) {
						foreach ($data as $k => $v) {
                        if ($child == self::CDN_MAPPING_FILETYPE) {
								$v = Utility::sanitize_lines($v);
                            }
                        if ($child == self::CDN_MAPPING_URL) {
								// If not a valid URL, turn off CDN
								if (strpos($v, 'https://') !== 0) {
                                self::debug('❌ CDN mapping set to OFF due to invalid URL');
                                $the_matrix[self::O_CDN] = false;
									}
								$v = trailingslashit($v);
                            }
                        if (in_array($child, array( self::CDN_MAPPING_INC_IMG, self::CDN_MAPPING_INC_CSS, self::CDN_MAPPING_INC_JS ))) {
								// Because these can't be auto detected in `config->update()`, need to format here
								$v = $v === 'false' ? 0 : (bool) $v;
                            }

                        if (empty($data2[$k])) {
								$data2[$k] = array();
                            }

                        $data2[$k][$child] = $v;
							}
					}

                $data = $data2;
					break;

				case self::O_CRAWLER_COOKIES:
                /**
                 * Cookie Crawler setting
                 * Raw Format:
                 *      crawler-cookies[name][] = xxx
                 *      crawler-cookies[name][2] = xxx2
                 *      crawler-cookies[vals][] = xxx
                 *
                 * todo: need to allow null for values
                 *
                 * Final format:
                 *      crawler-cookie[ 0 ][ name ] = 'xxx'
                 *      crawler-cookie[ 0 ][ vals ] = 'xxx'
                 *      crawler-cookie[ 2 ][ name ] = 'xxx2'
                 *
                 * empty line for `vals` use literal `_null`
                 */
                if ($data) {
						foreach ($data as $k => $v) {
                        if ($child == self::CRWL_COOKIE_VALS) {
								$v = Utility::sanitize_lines($v);
                            }

                        if (empty($data2[$k])) {
								$data2[$k] = array();
                            }

                        $data2[$k][$child] = $v;
							}
					}

                $data = $data2;
					break;

				case self::O_CACHE_EXC_CAT: // Cache exclude cat
                $data2 = array();
                $data  = Utility::sanitize_lines($data);
                foreach ($data as $v) {
						$cat_id = get_cat_ID($v);
						if (!$cat_id) {
                        continue;
							}

						$data2[] = $cat_id;
					}
                $data = $data2;
					break;

				case self::O_CACHE_EXC_TAG: // Cache exclude tag
                $data2 = array();
                $data  = Utility::sanitize_lines($data);
                foreach ($data as $v) {
						$term = get_term_by('name', $v, 'post_tag');
						if (!$term) {
                        // todo: can show the error in admin error msg
                        continue;
							}

						$data2[] = $term->term_id;
					}
                $data = $data2;
					break;

				default:
					break;
			}

			$the_matrix[$id] = $data;
		}

		// Special handler for CDN/Crawler 2d list to drop empty rows
		foreach ($the_matrix as $id => $data) {
			/**
			 *      cdn-mapping[ 0 ][ url ] = 'xxx'
			 *      cdn-mapping[ 2 ][ url ] = 'xxx2'
			 *
			 *      crawler-cookie[ 0 ][ name ] = 'xxx'
			 *      crawler-cookie[ 0 ][ vals ] = 'xxx'
			 *      crawler-cookie[ 2 ][ name ] = 'xxx2'
			 */
			if ($id == self::O_CDN_MAPPING || $id == self::O_CRAWLER_COOKIES) {
				// Drop this line if all children elements are empty
				foreach ($data as $k => $v) {
					foreach ($v as $v2) {
						if ($v2) {
							continue 2;
						}
					}
					// If hit here, means all empty
					unset($the_matrix[$id][$k]);
				}
			}

			// Don't allow repeated cookie name
			if ($id == self::O_CRAWLER_COOKIES) {
				$existed = array();
				foreach ($the_matrix[$id] as $k => $v) {
					if (!$v[self::CRWL_COOKIE_NAME] || in_array($v[self::CRWL_COOKIE_NAME], $existed)) {
						// Filter repeated or empty name
						unset($the_matrix[$id][$k]);
						continue;
					}

					$existed[] = $v[self::CRWL_COOKIE_NAME];
				}
			}

			// CDN mapping allow URL values repeated
			// if ( $id == self::O_CDN_MAPPING ) {}

			// tmp fix the 3rd part woo update hook issue when enabling vary cookie
			if ($id == 'wc_cart_vary') {
				if ($data) {
					add_filter('litespeed_vary_cookies', function ( $list ) {
						$list[] = 'woocommerce_cart_hash';
						return array_unique($list);
					});
				} else {
					add_filter('litespeed_vary_cookies', function ( $list ) {
						if (in_array('woocommerce_cart_hash', $list)) {
							unset($list[array_search('woocommerce_cart_hash', $list)]);
						}
						return array_unique($list);
					});
				}
			}
		}

		// id validation will be inside
		$this->cls('Conf')->update_confs($the_matrix);

		$msg = __('Options saved.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Parses any changes made by the network admin on the network settings.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function network_save( $raw_data ) {
		Debug2::debug('[Settings] network saving');

		if (empty($raw_data[self::ENROLL])) {
			exit('No fields');
		}

		$raw_data = Admin::cleanup_text($raw_data);

		foreach (array_unique($raw_data[self::ENROLL]) as $id) {
			// Append current field to setting save
			if (!array_key_exists($id, self::$_default_site_options)) {
				continue;
			}

			$data = !empty($raw_data[$id]) ? $raw_data[$id] : false;

			// id validation will be inside
			$this->cls('Conf')->network_update($id, $data);
		}

		// Update related files
		Activation::cls()->update_files();

		$msg = __('Options saved.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Hooked to the wp_redirect filter.
	 * This will only hook if there was a problem when saving the widget.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param string $location The location string.
	 * @return string the updated location string.
	 */
	public static function widget_save_err( $location ) {
		return str_replace('?message=0', '?error=0', $location);
	}

	/**
	 * Hooked to the widget_update_callback filter.
	 * Validate the LiteSpeed Cache settings on edit widget save.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param array      $instance The new settings.
	 * @param array      $new_instance
	 * @param array      $old_instance The original settings.
	 * @param \WP_Widget $widget The widget
	 * @return mixed Updated settings on success, false on error.
	 */
	public static function validate_widget_save( $instance, $new_instance, $old_instance, $widget ) {
		if (empty($new_instance)) {
			return $instance;
		}

		if (!isset($new_instance[ESI::WIDGET_O_ESIENABLE]) || !isset($new_instance[ESI::WIDGET_O_TTL])) {
			return $instance;
		}

		$esi = intval($new_instance[ESI::WIDGET_O_ESIENABLE]) % 3;
		$ttl = (int) $new_instance[ESI::WIDGET_O_TTL];

		if ($ttl != 0 && $ttl < 30) {
			add_filter('wp_redirect', __CLASS__ . '::widget_save_err');
			return false; // invalid ttl.
		}

		if (empty($instance[Conf::OPTION_NAME])) {
			// todo: to be removed
			$instance[Conf::OPTION_NAME] = array();
		}
		$instance[Conf::OPTION_NAME][ESI::WIDGET_O_ESIENABLE] = $esi;
		$instance[Conf::OPTION_NAME][ESI::WIDGET_O_TTL]       = $ttl;

		$current = !empty($old_instance[Conf::OPTION_NAME]) ? $old_instance[Conf::OPTION_NAME] : false;
		if (!strpos($_SERVER['HTTP_REFERER'], '/wp-admin/customize.php')) {
			if (!$current || $esi != $current[ESI::WIDGET_O_ESIENABLE]) {
				Purge::purge_all('Widget ESI_enable changed');
			} elseif ($ttl != 0 && $ttl != $current[ESI::WIDGET_O_TTL]) {
				Purge::add(Tag::TYPE_WIDGET . $widget->id);
			}

			Purge::purge_all('Widget saved');
		}
		return $instance;
	}
}
<?php

/**
 * The htaccess rewrite rule operation class
 *
 * @since      1.0.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/inc
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Htaccess extends Root {

	private $frontend_htaccess          = null;
	private $_default_frontend_htaccess = null;
	private $backend_htaccess           = null;
	private $_default_backend_htaccess  = null;
	private $theme_htaccess             = null; // Not used yet
	private $frontend_htaccess_readable = false;
	private $frontend_htaccess_writable = false;
	private $backend_htaccess_readable  = false;
	private $backend_htaccess_writable  = false;
	private $theme_htaccess_readable    = false;
	private $theme_htaccess_writable    = false;
	private $__rewrite_on;

	const LS_MODULE_START            = '<IfModule LiteSpeed>';
	const EXPIRES_MODULE_START       = '<IfModule mod_expires.c>';
	const LS_MODULE_END              = '</IfModule>';
	const LS_MODULE_REWRITE_START    = '<IfModule mod_rewrite.c>';
	const REWRITE_ON                 = 'RewriteEngine on';
	const LS_MODULE_DONOTEDIT        = '## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##';
	const MARKER                     = 'LSCACHE';
	const MARKER_NONLS               = 'NON_LSCACHE';
	const MARKER_LOGIN_COOKIE        = '### marker LOGIN COOKIE';
	const MARKER_ASYNC               = '### marker ASYNC';
	const MARKER_CRAWLER             = '### marker CRAWLER';
	const MARKER_MOBILE              = '### marker MOBILE';
	const MARKER_NOCACHE_COOKIES     = '### marker NOCACHE COOKIES';
	const MARKER_NOCACHE_USER_AGENTS = '### marker NOCACHE USER AGENTS';
	const MARKER_CACHE_RESOURCE      = '### marker CACHE RESOURCE';
	const MARKER_BROWSER_CACHE       = '### marker BROWSER CACHE';
	const MARKER_MINIFY              = '### marker MINIFY';
	const MARKER_CORS                = '### marker CORS';
	const MARKER_WEBP                = '### marker WEBP';
	const MARKER_DROPQS              = '### marker DROPQS';
	const MARKER_START               = ' start ###';
	const MARKER_END                 = ' end ###';

	const RW_PATTERN_RES = '/.*/[^/]*(responsive|css|js|dynamic|loader|fonts)\.php';

	/**
	 * Initialize the class and set its properties.
	 *
	 * @since    1.0.7
	 */
	public function __construct() {
		$this->_path_set();
		$this->_default_frontend_htaccess = $this->frontend_htaccess;
		$this->_default_backend_htaccess  = $this->backend_htaccess;

		$frontend_htaccess = defined('LITESPEED_CFG_HTACCESS') ? LITESPEED_CFG_HTACCESS : false;
		if ($frontend_htaccess && substr($frontend_htaccess, -10) === '/.htaccess') {
			$this->frontend_htaccess = $frontend_htaccess;
		}
		$backend_htaccess = defined('LITESPEED_CFG_HTACCESS_BACKEND') ? LITESPEED_CFG_HTACCESS_BACKEND : false;
		if ($backend_htaccess && substr($backend_htaccess, -10) === '/.htaccess') {
			$this->backend_htaccess = $backend_htaccess;
		}

		// Filter for frontend&backend htaccess path
		$this->frontend_htaccess = apply_filters('litespeed_frontend_htaccess', $this->frontend_htaccess);
		$this->backend_htaccess  = apply_filters('litespeed_backend_htaccess', $this->backend_htaccess);

		clearstatcache();

		// frontend .htaccess privilege
		$test_permissions = file_exists($this->frontend_htaccess) ? $this->frontend_htaccess : dirname($this->frontend_htaccess);
		if (is_readable($test_permissions)) {
			$this->frontend_htaccess_readable = true;
		}
		if (is_writable($test_permissions)) {
			$this->frontend_htaccess_writable = true;
		}

		$this->__rewrite_on = array(
			self::REWRITE_ON,
			'CacheLookup on',
			'RewriteRule .* - [E=Cache-Control:no-autoflush]',
			'RewriteRule ' . preg_quote(LITESPEED_DATA_FOLDER) . '/debug/.*\.log$ - [F,L]',
			'RewriteRule ' . preg_quote(self::CONF_FILE) . ' - [F,L]',
		);

		// backend .htaccess privilege
		if ($this->frontend_htaccess === $this->backend_htaccess) {
			$this->backend_htaccess_readable = $this->frontend_htaccess_readable;
			$this->backend_htaccess_writable = $this->frontend_htaccess_writable;
		} else {
			$test_permissions = file_exists($this->backend_htaccess) ? $this->backend_htaccess : dirname($this->backend_htaccess);
			if (is_readable($test_permissions)) {
				$this->backend_htaccess_readable = true;
			}
			if (is_writable($test_permissions)) {
				$this->backend_htaccess_writable = true;
			}
		}
	}

	/**
	 * Get if htaccess file is readable
	 *
	 * @since 1.1.0
	 * @return string
	 */
	private function _readable( $kind = 'frontend' ) {
		if ($kind === 'frontend') {
			return $this->frontend_htaccess_readable;
		}
		if ($kind === 'backend') {
			return $this->backend_htaccess_readable;
		}
	}

	/**
	 * Get if htaccess file is writable
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public function writable( $kind = 'frontend' ) {
		if ($kind === 'frontend') {
			return $this->frontend_htaccess_writable;
		}
		if ($kind === 'backend') {
			return $this->backend_htaccess_writable;
		}
	}

	/**
	 * Get frontend htaccess path
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public static function get_frontend_htaccess( $show_default = false ) {
		if ($show_default) {
			return self::cls()->_default_frontend_htaccess;
		}
		return self::cls()->frontend_htaccess;
	}

	/**
	 * Get backend htaccess path
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public static function get_backend_htaccess( $show_default = false ) {
		if ($show_default) {
			return self::cls()->_default_backend_htaccess;
		}
		return self::cls()->backend_htaccess;
	}

	/**
	 * Check to see if .htaccess exists starting at $start_path and going up directories until it hits DOCUMENT_ROOT.
	 *
	 * As dirname() strips the ending '/', paths passed in must exclude the final '/'
	 *
	 * @since 1.0.11
	 * @access private
	 */
	private function _htaccess_search( $start_path ) {
		while (!file_exists($start_path . '/.htaccess')) {
			if ($start_path === '/' || !$start_path) {
				return false;
			}

			if (!empty($_SERVER['DOCUMENT_ROOT']) && wp_normalize_path($start_path) === wp_normalize_path($_SERVER['DOCUMENT_ROOT'])) {
				return false;
			}

			if (dirname($start_path) === $start_path) {
				return false;
			}

			$start_path = dirname($start_path);
		}

		return $start_path;
	}

	/**
	 * Set the path class variables.
	 *
	 * @since 1.0.11
	 * @access private
	 */
	private function _path_set() {
		$frontend                 = Router::frontend_path();
		$frontend_htaccess_search = $this->_htaccess_search($frontend); // The existing .htaccess path to be used for frontend .htaccess
		$this->frontend_htaccess  = ($frontend_htaccess_search ?: $frontend) . '/.htaccess';

		$backend = realpath(ABSPATH); // /home/user/public_html/backend/
		if ($frontend == $backend) {
			$this->backend_htaccess = $this->frontend_htaccess;
			return;
		}

		// Backend is a different path
		$backend_htaccess_search = $this->_htaccess_search($backend);
		// Found affected .htaccess
		if ($backend_htaccess_search) {
			$this->backend_htaccess = $backend_htaccess_search . '/.htaccess';
			return;
		}

		// Frontend path is the parent of backend path
		if (stripos($backend, $frontend . '/') === 0) {
			// backend use frontend htaccess
			$this->backend_htaccess = $this->frontend_htaccess;
			return;
		}

		$this->backend_htaccess = $backend . '/.htaccess';
	}

	/**
	 * Get corresponding htaccess path
	 *
	 * @since 1.1.0
	 * @param  string $kind Frontend or backend
	 * @return string       Path
	 */
	public function htaccess_path( $kind = 'frontend' ) {
		switch ($kind) {
			case 'backend':
            $path = $this->backend_htaccess;
				break;

			case 'frontend':
			default:
            $path = $this->frontend_htaccess;
				break;
		}
		return $path;
	}

	/**
	 * Get the content of the rules file.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.0.4
	 * @since  2.9 Used exception for failed reading
	 * @access public
	 */
	public function htaccess_read( $kind = 'frontend' ) {
		$path = $this->htaccess_path($kind);

		if (!$path || !file_exists($path)) {
			return "\n";
		}

		if (!$this->_readable($kind)) {
			Error::t('HTA_R');
		}

		$content = File::read($path);
		if ($content === false) {
			Error::t('HTA_GET');
		}

		// Remove ^M characters.
		$content = str_ireplace("\x0D", '', $content);
		return $content;
	}

	/**
	 * Try to backup the .htaccess file if we didn't save one before.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.0.10
	 * @access private
	 */
	private function _htaccess_backup( $kind = 'frontend' ) {
		$path = $this->htaccess_path($kind);

		if (!file_exists($path)) {
			return;
		}

		if (file_exists($path . '.bk')) {
			return;
		}

		$res = copy($path, $path . '.bk');

		// Failed to backup, abort
		if (!$res) {
			Error::t('HTA_BK');
		}
	}

	/**
	 * Get mobile view rule from htaccess file
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.1.0
	 */
	public function current_mobile_agents() {
		$rules = $this->_get_rule_by(self::MARKER_MOBILE);
		if (!isset($rules[0])) {
			Error::t('HTA_DNF', self::MARKER_MOBILE);
		}

		$rule = trim($rules[0]);
		// 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex( $cfg[ $id ], true ) . ' [NC]';
		$match = substr($rule, strlen('RewriteCond %{HTTP_USER_AGENT} '), -strlen(' [NC]'));

		if (!$match) {
			Error::t('HTA_DNF', __('Mobile Agent Rules', 'litespeed-cache'));
		}

		return $match;
	}

	/**
	 * Parse rewrites rule from the .htaccess file.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function current_login_cookie( $kind = 'frontend' ) {
		$rule = $this->_get_rule_by(self::MARKER_LOGIN_COOKIE, $kind);

		if (!$rule) {
			Error::t('HTA_DNF', self::MARKER_LOGIN_COOKIE);
		}

		if (strpos($rule, 'RewriteRule .? - [E=') !== 0) {
			Error::t('HTA_LOGIN_COOKIE_INVALID');
		}

		$rule_cookie = substr($rule, strlen('RewriteRule .? - [E='), -1);

		if (LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS') {
			$rule_cookie = trim($rule_cookie, '"');
		}

		// Drop `Cache-Vary:`
		$rule_cookie = substr($rule_cookie, strlen('Cache-Vary:'));

		return $rule_cookie;
	}

	/**
	 * Get rewrite rules based on the marker
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _get_rule_by( $cond, $kind = 'frontend' ) {
		clearstatcache();
		$path = $this->htaccess_path($kind);
		if (!$this->_readable($kind)) {
			return false;
		}

		$rules = File::extract_from_markers($path, self::MARKER);
		if (!in_array($cond . self::MARKER_START, $rules) || !in_array($cond . self::MARKER_END, $rules)) {
			return false;
		}

		$key_start = array_search($cond . self::MARKER_START, $rules);
		$key_end   = array_search($cond . self::MARKER_END, $rules);
		if ($key_start === false || $key_end === false) {
			return false;
		}

		$results = array_slice($rules, $key_start + 1, $key_end - $key_start - 1);
		if (!$results) {
			return false;
		}

		if (count($results) == 1) {
			return trim($results[0]);
		}

		return array_filter($results);
	}

	/**
	 * Generate browser cache rules
	 *
	 * @since  1.3
	 * @access private
	 * @return array Rules set
	 */
	private function _browser_cache_rules( $cfg ) {
		/**
		 * Add ttl setting
		 *
		 * @since 1.6.3
		 */
		$id    = Base::O_CACHE_TTL_BROWSER;
		$ttl   = $cfg[$id];
		$rules = array(
			self::EXPIRES_MODULE_START,
			// '<FilesMatch "\.(pdf|ico|svg|xml|jpg|jpeg|png|gif|webp|ogg|mp4|webm|js|css|woff|woff2|ttf|eot)(\.gz)?$">',
			'ExpiresActive on',
			'ExpiresByType application/pdf A' . $ttl,
			'ExpiresByType image/x-icon A' . $ttl,
			'ExpiresByType image/vnd.microsoft.icon A' . $ttl,
			'ExpiresByType image/svg+xml A' . $ttl,
			'',
			'ExpiresByType image/jpg A' . $ttl,
			'ExpiresByType image/jpeg A' . $ttl,
			'ExpiresByType image/png A' . $ttl,
			'ExpiresByType image/gif A' . $ttl,
			'ExpiresByType image/webp A' . $ttl,
			'ExpiresByType image/avif A' . $ttl,
			'',
			'ExpiresByType video/ogg A' . $ttl,
			'ExpiresByType audio/ogg A' . $ttl,
			'ExpiresByType video/mp4 A' . $ttl,
			'ExpiresByType video/webm A' . $ttl,
			'',
			'ExpiresByType text/css A' . $ttl,
			'ExpiresByType text/javascript A' . $ttl,
			'ExpiresByType application/javascript A' . $ttl,
			'ExpiresByType application/x-javascript A' . $ttl,
			'',
			'ExpiresByType application/x-font-ttf A' . $ttl,
			'ExpiresByType application/x-font-woff A' . $ttl,
			'ExpiresByType application/font-woff A' . $ttl,
			'ExpiresByType application/font-woff2 A' . $ttl,
			'ExpiresByType application/vnd.ms-fontobject A' . $ttl,
			'ExpiresByType font/ttf A' . $ttl,
			'ExpiresByType font/otf A' . $ttl,
			'ExpiresByType font/woff A' . $ttl,
			'ExpiresByType font/woff2 A' . $ttl,
			'',
			// '</FilesMatch>',
			self::LS_MODULE_END,
		);
		return $rules;
	}

	/**
	 * Generate CORS rules for fonts
	 *
	 * @since  1.5
	 * @access private
	 * @return array Rules set
	 */
	private function _cors_rules() {
		return array(
			'<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font\.css)$">',
			'<IfModule mod_headers.c>',
			'Header set Access-Control-Allow-Origin "*"',
			'</IfModule>',
			'</FilesMatch>',
		);
	}

	/**
	 * Generate rewrite rules based on settings
	 *
	 * @since  1.3
	 * @access private
	 * @param  array $cfg  The settings to be used for rewrite rule
	 * @return array      Rules array
	 */
	private function _generate_rules( $cfg ) {
		$new_rules               = array();
		$new_rules_nonls         = array();
		$new_rules_backend       = array();
		$new_rules_backend_nonls = array();

		// continual crawler
		// $id = Base::O_CRAWLER;
		// if (!empty($cfg[$id])) {
		$new_rules[] = self::MARKER_ASYNC . self::MARKER_START;
		$new_rules[] = 'RewriteCond %{REQUEST_URI} /wp-admin/admin-ajax\.php';
		$new_rules[] = 'RewriteCond %{QUERY_STRING} action=async_litespeed';
		$new_rules[] = 'RewriteRule .* - [E=noabort:1]';
		$new_rules[] = self::MARKER_ASYNC . self::MARKER_END;
		$new_rules[] = '';
		// }

		// mobile agents
		$id = Base::O_CACHE_MOBILE_RULES;
		if ((!empty($cfg[Base::O_CACHE_MOBILE]) || !empty($cfg[Base::O_GUEST])) && !empty($cfg[$id])) {
			$new_rules[] = self::MARKER_MOBILE . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex($cfg[$id], true) . ' [NC]';
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+ismobile]';
			$new_rules[] = self::MARKER_MOBILE . self::MARKER_END;
			$new_rules[] = '';
		}

		// nocache cookie
		$id = Base::O_CACHE_EXC_COOKIES;
		if (!empty($cfg[$id])) {
			$new_rules[] = self::MARKER_NOCACHE_COOKIES . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_COOKIE} ' . Utility::arr2regex($cfg[$id], true);
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:no-cache]';
			$new_rules[] = self::MARKER_NOCACHE_COOKIES . self::MARKER_END;
			$new_rules[] = '';
		}

		// nocache user agents
		$id = Base::O_CACHE_EXC_USERAGENTS;
		if (!empty($cfg[$id])) {
			$new_rules[] = self::MARKER_NOCACHE_USER_AGENTS . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex($cfg[$id], true) . ' [NC]';
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:no-cache]';
			$new_rules[] = self::MARKER_NOCACHE_USER_AGENTS . self::MARKER_END;
			$new_rules[] = '';
		}

		// check login cookie
		$vary_cookies = $cfg[Base::O_CACHE_VARY_COOKIES];
		$id           = Base::O_CACHE_LOGIN_COOKIE;
		if (!empty($cfg[$id])) {
			$vary_cookies[] = $cfg[$id];
		}
		if (LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS') {
			// Need to keep this due to different behavior of OLS when handling response vary header @Sep/22/2018
			if (defined('COOKIEHASH')) {
				$vary_cookies[] = ',wp-postpass_' . COOKIEHASH;
			}
		}
		$vary_cookies = apply_filters('litespeed_vary_cookies', $vary_cookies); // todo: test if response vary header can work in latest OLS, drop the above two lines
		// frontend and backend
		if ($vary_cookies) {
			$env = 'Cache-Vary:' . implode(',', $vary_cookies);
			// if (LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS') {
			// }
			$env         = '"' . $env . '"';
			$new_rules[] = $new_rules_backend[] = self::MARKER_LOGIN_COOKIE . self::MARKER_START;
			$new_rules[] = $new_rules_backend[] = 'RewriteRule .? - [E=' . $env . ']';
			$new_rules[] = $new_rules_backend[] = self::MARKER_LOGIN_COOKIE . self::MARKER_END;
			$new_rules[] = '';
		}

		// CORS font rules
		$id = Base::O_CDN;
		if (!empty($cfg[$id])) {
			$new_rules[] = self::MARKER_CORS . self::MARKER_START;
			$new_rules   = array_merge($new_rules, $this->_cors_rules()); // todo: network
			$new_rules[] = self::MARKER_CORS . self::MARKER_END;
			$new_rules[] = '';
		}

		// webp support
		$id = Base::O_IMG_OPTM_WEBP;
		if (!empty($cfg[$id])) {
			$next_gen_format = 'webp';
			if ($cfg[$id] == 2) {
				$next_gen_format = 'avif';
			}
			$new_rules[] = self::MARKER_WEBP . self::MARKER_START;
			// Check for WebP support via HTTP_ACCEPT
			$new_rules[] = 'RewriteCond %{HTTP_ACCEPT} image/' . $next_gen_format . ' [OR]';

			// Check for iPhone Safari (version > 13)
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} iPhone.*Version/(1[4-9]|[2-9][0-9]|[1-9][0-9]{2,}).*Safari [OR]';

			// Check for Firefox (version >= 65)
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} Firefox/([6-9][0-9]|[1-9][0-9]{2,})';

			// Add vary
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]';
			$new_rules[] = self::MARKER_WEBP . self::MARKER_END;
			$new_rules[] = '';
		}

		// drop qs support
		$id = Base::O_CACHE_DROP_QS;
		if (!empty($cfg[$id])) {
			$new_rules[] = self::MARKER_DROPQS . self::MARKER_START;
			foreach ($cfg[$id] as $v) {
				$new_rules[] = 'CacheKeyModify -qs:' . $v;
			}
			$new_rules[] = self::MARKER_DROPQS . self::MARKER_END;
			$new_rules[] = '';
		}

		// Browser cache
		$id = Base::O_CACHE_BROWSER;
		if (!empty($cfg[$id])) {
			$new_rules_nonls[]       = $new_rules_backend_nonls[] = self::MARKER_BROWSER_CACHE . self::MARKER_START;
			$new_rules_nonls         = array_merge($new_rules_nonls, $this->_browser_cache_rules($cfg));
			$new_rules_backend_nonls = array_merge($new_rules_backend_nonls, $this->_browser_cache_rules($cfg));
			$new_rules_nonls[]       = $new_rules_backend_nonls[] = self::MARKER_BROWSER_CACHE . self::MARKER_END;
			$new_rules_nonls[]       = '';
		}

		// Add module wrapper for LiteSpeed rules
		if ($new_rules) {
			$new_rules = $this->_wrap_ls_module($new_rules);
		}

		if ($new_rules_backend) {
			$new_rules_backend = $this->_wrap_ls_module($new_rules_backend);
		}

		return array( $new_rules, $new_rules_backend, $new_rules_nonls, $new_rules_backend_nonls );
	}

	/**
	 * Add LitSpeed module wrapper with rewrite on
	 *
	 * @since  2.1.1
	 * @access private
	 */
	private function _wrap_ls_module( $rules = array() ) {
		return array_merge(array( self::LS_MODULE_START ), $this->__rewrite_on, array( '' ), $rules, array( self::LS_MODULE_END ));
	}

	/**
	 * Insert LitSpeed module wrapper with rewrite on
	 *
	 * @since  2.1.1
	 * @access public
	 */
	public function insert_ls_wrapper() {
		$rules = $this->_wrap_ls_module();
		$this->_insert_wrapper($rules);
	}

	/**
	 * wrap rules with module on info
	 *
	 * @since  1.1.5
	 * @param  array $rules
	 * @return array        wrapped rules with module info
	 */
	private function _wrap_do_no_edit( $rules ) {
		// When to clear rules, don't need DONOTEDIT msg
		if ($rules === false || !is_array($rules)) {
			return $rules;
		}

		$rules = array_merge(array( self::LS_MODULE_DONOTEDIT ), $rules, array( self::LS_MODULE_DONOTEDIT ));

		return $rules;
	}

	/**
	 * Write to htaccess with rules
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _insert_wrapper( $rules = array(), $kind = false, $marker = false ) {
		if ($kind != 'backend') {
			$kind = 'frontend';
		}

		// Default marker is LiteSpeed marker `LSCACHE`
		if ($marker === false) {
			$marker = self::MARKER;
		}

		$this->_htaccess_backup($kind);

		File::insert_with_markers($this->htaccess_path($kind), $this->_wrap_do_no_edit($rules), $marker, true);
	}

	/**
	 * Update rewrite rules based on setting
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.3
	 * @access public
	 */
	public function update( $cfg ) {
		list($frontend_rules, $backend_rules, $frontend_rules_nonls, $backend_rules_nonls) = $this->_generate_rules($cfg);

		// Check frontend content
		list($rules, $rules_nonls) = $this->_extract_rules();

		// Check Non-LiteSpeed rules
		if ($this->_wrap_do_no_edit($frontend_rules_nonls) != $rules_nonls) {
			Debug2::debug('[Rules] Update non-ls frontend rules');
			// Need to update frontend htaccess
			try {
				$this->_insert_wrapper($frontend_rules_nonls, false, self::MARKER_NONLS);
			} catch (\Exception $e) {
				$manual_guide_codes = $this->_rewrite_codes_msg($this->frontend_htaccess, $frontend_rules_nonls, self::MARKER_NONLS);
				Debug2::debug('[Rules] Update Failed');
				throw new \Exception($manual_guide_codes);
			}
		}

		// Check LiteSpeed rules
		if ($this->_wrap_do_no_edit($frontend_rules) != $rules) {
			Debug2::debug('[Rules] Update frontend rules');
			// Need to update frontend htaccess
			try {
				$this->_insert_wrapper($frontend_rules);
			} catch (\Exception $e) {
				Debug2::debug('[Rules] Update Failed');
				$manual_guide_codes = $this->_rewrite_codes_msg($this->frontend_htaccess, $frontend_rules);
				throw new \Exception($manual_guide_codes);
			}
		}

		if ($this->frontend_htaccess !== $this->backend_htaccess) {
			list($rules, $rules_nonls) = $this->_extract_rules('backend');

			// Check Non-LiteSpeed rules for backend
			if ($this->_wrap_do_no_edit($backend_rules_nonls) != $rules_nonls) {
				Debug2::debug('[Rules] Update non-ls backend rules');
				// Need to update frontend htaccess
				try {
					$this->_insert_wrapper($backend_rules_nonls, 'backend', self::MARKER_NONLS);
				} catch (\Exception $e) {
					Debug2::debug('[Rules] Update Failed');
					$manual_guide_codes = $this->_rewrite_codes_msg($this->backend_htaccess, $backend_rules_nonls, self::MARKER_NONLS);
					throw new \Exception($manual_guide_codes);
				}
			}

			// Check backend content
			if ($this->_wrap_do_no_edit($backend_rules) != $rules) {
				Debug2::debug('[Rules] Update backend rules');
				// Need to update backend htaccess
				try {
					$this->_insert_wrapper($backend_rules, 'backend');
				} catch (\Exception $e) {
					Debug2::debug('[Rules] Update Failed');
					$manual_guide_codes = $this->_rewrite_codes_msg($this->backend_htaccess, $backend_rules);
					throw new \Exception($manual_guide_codes);
				}
			}
		}

		return true;
	}

	/**
	 * Get existing rewrite rules
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since  1.3
	 * @access private
	 * @param  string $kind Frontend or backend .htaccess file
	 */
	private function _extract_rules( $kind = 'frontend' ) {
		clearstatcache();
		$path = $this->htaccess_path($kind);
		if (!$this->_readable($kind)) {
			Error::t('E_HTA_R');
		}

		$rules       = File::extract_from_markers($path, self::MARKER);
		$rules_nonls = File::extract_from_markers($path, self::MARKER_NONLS);

		return array( $rules, $rules_nonls );
	}

	/**
	 * Output the msg with rules plain data for manual insert
	 *
	 * @since  1.1.5
	 * @param  string $file
	 * @param  array  $rules
	 * @return string        final msg to output
	 */
	private function _rewrite_codes_msg( $file, $rules, $marker = false ) {
		return sprintf(
			__('<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s', 'litespeed-cache'),
			$file,
			'<textarea style="width:100%;" rows="10" readonly>' . htmlspecialchars($this->_wrap_rules_with_marker($rules, $marker)) . '</textarea>'
		);
	}

	/**
	 * Generate rules plain data for manual insert
	 *
	 * @since  1.1.5
	 */
	private function _wrap_rules_with_marker( $rules, $marker = false ) {
		// Default marker is LiteSpeed marker `LSCACHE`
		if ($marker === false) {
			$marker = self::MARKER;
		}

		$start_marker  = "# BEGIN {$marker}";
		$end_marker    = "# END {$marker}";
		$new_file_data = implode("\n", array_merge(array( $start_marker ), $this->_wrap_do_no_edit($rules), array( $end_marker )));

		return $new_file_data;
	}

	/**
	 * Clear the rules file of any changes added by the plugin specifically.
	 *
	 * @since 1.0.4
	 * @access public
	 */
	public function clear_rules() {
		$this->_insert_wrapper(false); // Use false to avoid do-not-edit msg
		// Clear non ls rules
		$this->_insert_wrapper(false, false, self::MARKER_NONLS);

		if ($this->frontend_htaccess !== $this->backend_htaccess) {
			$this->_insert_wrapper(false, 'backend');
			$this->_insert_wrapper(false, 'backend', self::MARKER_NONLS);
		}
	}
}
<?php

/**
 * The Crawler Sitemap Class
 *
 * @since       1.1.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Crawler_Map extends Root {

	const LOG_TAG = '🐞🗺️';

	const BM_MISS      = 1;
	const BM_HIT       = 2;
	const BM_BLACKLIST = 4;

	private $_site_url; // Used to simplify urls
	private $_tb;
	private $_tb_blacklist;
	private $__data;
	private $_conf_map_timeout;
	private $_urls = array();

	/**
	 * Instantiate the class
	 *
	 * @since 1.1.0
	 */
	public function __construct() {
		$this->_site_url         = get_site_url();
		$this->__data            = Data::cls();
		$this->_tb               = $this->__data->tb('crawler');
		$this->_tb_blacklist     = $this->__data->tb('crawler_blacklist');
		$this->_conf_map_timeout = defined('LITESPEED_CRAWLER_MAP_TIMEOUT') ? LITESPEED_CRAWLER_MAP_TIMEOUT : 180; // Specify the timeout while parsing the sitemap
	}

	/**
	 * Save URLs crawl status into DB
	 *
	 * @since  3.0
	 * @access public
	 */
	public function save_map_status( $list, $curr_crawler ) {
		global $wpdb;
		Utility::compatibility();

		$total_crawler     = count(Crawler::cls()->list_crawlers());
		$total_crawler_pos = $total_crawler - 1;

		// Replace current crawler's position
		$curr_crawler = (int) $curr_crawler;
		foreach ($list as $bit => $ids) {
			// $ids = [ id => [ url, code ], ... ]
			if (!$ids) {
				continue;
			}
			self::debug("Update map [crawler] $curr_crawler [bit] $bit [count] " . count($ids));

			// Update res first, then reason
			$right_pos = $total_crawler_pos - $curr_crawler;
			$sql_res   = "CONCAT( LEFT( res, $curr_crawler ), '$bit', RIGHT( res, $right_pos ) )";

			$id_all = implode(',', array_map('intval', array_keys($ids)));

			$wpdb->query("UPDATE `$this->_tb` SET res = $sql_res WHERE id IN ( $id_all )");

			// Add blacklist
			if ($bit == Crawler::STATUS_BLACKLIST || $bit == Crawler::STATUS_NOCACHE) {
				$q        = "SELECT a.id, a.url FROM `$this->_tb_blacklist` a LEFT JOIN `$this->_tb` b ON b.url=a.url WHERE b.id IN ( $id_all )";
				$existing = $wpdb->get_results($q, ARRAY_A);
				// Update current crawler status tag in existing blacklist
				if ($existing) {
					$count = $wpdb->query("UPDATE `$this->_tb_blacklist` SET res = $sql_res WHERE id IN ( " . implode(',', array_column($existing, 'id')) . ' )');
					self::debug('Update blacklist [count] ' . $count);
				}

				// Append new blacklist
				if (count($ids) > count($existing)) {
					$new_urls = array_diff(array_column($ids, 'url'), array_column($existing, 'url'));

					self::debug('Insert into blacklist [count] ' . count($new_urls));

					$q                  = "INSERT INTO `$this->_tb_blacklist` ( url, res, reason ) VALUES " . implode(',', array_fill(0, count($new_urls), '( %s, %s, %s )'));
					$data               = array();
					$res                = array_fill(0, $total_crawler, '-');
					$res[$curr_crawler] = $bit;
					$res                = implode('', $res);
					$default_reason     = $total_crawler > 1 ? str_repeat(',', $total_crawler - 1) : ''; // Pre-populate default reason value first, update later
					foreach ($new_urls as $url) {
						$data[] = $url;
						$data[] = $res;
						$data[] = $default_reason;
					}
					$wpdb->query($wpdb->prepare($q, $data));
				}
			}

			// Update sitemap reason w/ HTTP code
			$reason_array = array();
			foreach ($ids as $id => $v2) {
				$code = (int) $v2['code'];
				if (empty($reason_array[$code])) {
					$reason_array[$code] = array();
				}
				$reason_array[$code][] = (int) $id;
			}

			foreach ($reason_array as $code => $v2) {
				// Complement comma
				if ($curr_crawler) {
					$code = ',' . $code;
				}
				if ($curr_crawler < $total_crawler_pos) {
					$code .= ',';
				}

				$count = $wpdb->query(
					"UPDATE `$this->_tb` SET reason=CONCAT(SUBSTRING_INDEX(reason, ',', $curr_crawler), '$code', SUBSTRING_INDEX(reason, ',', -$right_pos)) WHERE id IN (" .
						implode(',', $v2) .
						')'
				);

				self::debug("Update map reason [code] $code [pos] left $curr_crawler right -$right_pos [count] $count");

				// Update blacklist reason
				if ($bit == Crawler::STATUS_BLACKLIST || $bit == Crawler::STATUS_NOCACHE) {
					$count = $wpdb->query(
						"UPDATE `$this->_tb_blacklist` a LEFT JOIN `$this->_tb` b ON b.url = a.url SET a.reason=CONCAT(SUBSTRING_INDEX(a.reason, ',', $curr_crawler), '$code', SUBSTRING_INDEX(a.reason, ',', -$right_pos)) WHERE b.id IN (" .
							implode(',', $v2) .
							')'
					);

					self::debug("Update blacklist [code] $code [pos] left $curr_crawler right -$right_pos [count] $count");
				}
			}
			// Reset list
			$list[$bit] = array();
		}

		return $list;
	}

	/**
	 * Add one record to blacklist
	 * NOTE: $id is sitemap table ID
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_add( $id ) {
		global $wpdb;

		$id = (int) $id;

		// Build res&reason
		$total_crawler = count(Crawler::cls()->list_crawlers());
		$res           = str_repeat(Crawler::STATUS_BLACKLIST, $total_crawler);
		$reason        = implode(',', array_fill(0, $total_crawler, 'Man'));

		$row = $wpdb->get_row("SELECT a.url, b.id FROM `$this->_tb` a LEFT JOIN `$this->_tb_blacklist` b ON b.url = a.url WHERE a.id = '$id'", ARRAY_A);
		if (!$row) {
			self::debug('blacklist failed to add [id] ' . $id);
			return;
		}

		self::debug('Add to blacklist [url] ' . $row['url']);

		$q = "UPDATE `$this->_tb` SET res = %s, reason = %s WHERE id = %d";
		$wpdb->query($wpdb->prepare($q, array( $res, $reason, $id )));

		if ($row['id']) {
			$q = "UPDATE `$this->_tb_blacklist` SET res = %s, reason = %s WHERE id = %d";
			$wpdb->query($wpdb->prepare($q, array( $res, $reason, $row['id'] )));
		} else {
			$q = "INSERT INTO `$this->_tb_blacklist` (url, res, reason) VALUES (%s, %s, %s)";
			$wpdb->query($wpdb->prepare($q, array( $row['url'], $res, $reason )));
		}
	}

	/**
	 * Delete one record from blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_del( $id ) {
		global $wpdb;
		if (!$this->__data->tb_exist('crawler_blacklist')) {
			return;
		}

		$id = (int) $id;
		self::debug('blacklist delete [id] ' . $id);

		$sql = sprintf(
			"UPDATE `%s` SET res=REPLACE(REPLACE(res, '%s', '-'), '%s', '-') WHERE url=(SELECT url FROM `%s` WHERE id=%d)",
			$this->_tb,
			Crawler::STATUS_NOCACHE,
			Crawler::STATUS_BLACKLIST,
			$this->_tb_blacklist,
			$id
		);
		$wpdb->query($sql);
		$wpdb->query("DELETE FROM `$this->_tb_blacklist` WHERE id='$id'");
	}

	/**
	 * Empty blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_empty() {
		global $wpdb;

		if (!$this->__data->tb_exist('crawler_blacklist')) {
			return;
		}

		self::debug('Truncate blacklist');
		$sql = sprintf("UPDATE `%s` SET res=REPLACE(REPLACE(res, '%s', '-'), '%s', '-')", $this->_tb, Crawler::STATUS_NOCACHE, Crawler::STATUS_BLACKLIST);
		$wpdb->query($sql);
		$wpdb->query("TRUNCATE `$this->_tb_blacklist`");
	}

	/**
	 * List blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function list_blacklist( $limit = false, $offset = false ) {
		global $wpdb;

		if (!$this->__data->tb_exist('crawler_blacklist')) {
			return array();
		}

		$q = "SELECT * FROM `$this->_tb_blacklist` ORDER BY id DESC";

		if ($limit !== false) {
			if ($offset === false) {
				$total  = $this->count_blacklist();
				$offset = Utility::pagination($total, $limit, true);
			}
			$q .= ' LIMIT %d, %d';
			$q  = $wpdb->prepare($q, $offset, $limit);
		}
		return $wpdb->get_results($q, ARRAY_A);
	}

	/**
	 * Count blacklist
	 */
	public function count_blacklist() {
		global $wpdb;

		if (!$this->__data->tb_exist('crawler_blacklist')) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb_blacklist`";
		return $wpdb->get_var($q);
	}

	/**
	 * Empty sitemap
	 *
	 * @since  3.0
	 * @access public
	 */
	public function empty_map() {
		Data::cls()->tb_del('crawler');

		$msg = __('Sitemap cleaned successfully', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * List generated sitemap
	 *
	 * @since  3.0
	 * @access public
	 */
	public function list_map( $limit, $offset = false ) {
		global $wpdb;

		if (!$this->__data->tb_exist('crawler')) {
			return array();
		}

		if ($offset === false) {
			$total  = $this->count_map();
			$offset = Utility::pagination($total, $limit, true);
		}

		$type = Router::verify_type();

		$where = '';
		if (!empty($_POST['kw'])) {
			$q = "SELECT * FROM `$this->_tb` WHERE url LIKE %s";
			if ($type == 'hit') {
				$q .= " AND res LIKE '%" . Crawler::STATUS_HIT . "%'";
			}
			if ($type == 'miss') {
				$q .= " AND res LIKE '%" . Crawler::STATUS_MISS . "%'";
			}
			if ($type == 'blacklisted') {
				$q .= " AND res LIKE '%" . Crawler::STATUS_BLACKLIST . "%'";
			}
			$q    .= ' ORDER BY id LIMIT %d, %d';
			$where = '%' . $wpdb->esc_like($_POST['kw']) . '%';
			return $wpdb->get_results($wpdb->prepare($q, $where, $offset, $limit), ARRAY_A);
		}

		$q = "SELECT * FROM `$this->_tb`";
		if ($type == 'hit') {
			$q .= " WHERE res LIKE '%" . Crawler::STATUS_HIT . "%'";
		}
		if ($type == 'miss') {
			$q .= " WHERE res LIKE '%" . Crawler::STATUS_MISS . "%'";
		}
		if ($type == 'blacklisted') {
			$q .= " WHERE res LIKE '%" . Crawler::STATUS_BLACKLIST . "%'";
		}
		$q .= ' ORDER BY id LIMIT %d, %d';
		// self::debug("q=$q offset=$offset, limit=$limit");
		return $wpdb->get_results($wpdb->prepare($q, $offset, $limit), ARRAY_A);
	}

	/**
	 * Count sitemap
	 */
	public function count_map() {
		global $wpdb;

		if (!$this->__data->tb_exist('crawler')) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb`";

		$type = Router::verify_type();
		if ($type == 'hit') {
			$q .= " WHERE res LIKE '%" . Crawler::STATUS_HIT . "%'";
		}
		if ($type == 'miss') {
			$q .= " WHERE res LIKE '%" . Crawler::STATUS_MISS . "%'";
		}
		if ($type == 'blacklisted') {
			$q .= " WHERE res LIKE '%" . Crawler::STATUS_BLACKLIST . "%'";
		}

		return $wpdb->get_var($q);
	}

	/**
	 * Generate sitemap
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function gen( $manual = false ) {
		$count = $this->_gen();

		if (!$count) {
			Admin_Display::error(__('No valid sitemap parsed for crawler.', 'litespeed-cache'));
			return;
		}

		if (!wp_doing_cron() && $manual) {
			$msg = sprintf(__('Sitemap created successfully: %d items', 'litespeed-cache'), $count);
			Admin_Display::success($msg);
		}
	}

	/**
	 * Generate the sitemap
	 *
	 * @since    1.1.0
	 * @access private
	 */
	private function _gen() {
		global $wpdb;

		if (!$this->__data->tb_exist('crawler')) {
			$this->__data->tb_create('crawler');
		}

		if (!$this->__data->tb_exist('crawler_blacklist')) {
			$this->__data->tb_create('crawler_blacklist');
		}

		// use custom sitemap
		if (!($sitemap = $this->conf(Base::O_CRAWLER_SITEMAP))) {
			return false;
		}

		$offset  = strlen($this->_site_url);
		$sitemap = Utility::sanitize_lines($sitemap);

		try {
			foreach ($sitemap as $this_map) {
				$this->_parse($this_map);
			}
		} catch (\Exception $e) {
			self::debug('❌ failed to parse custom sitemap: ' . $e->getMessage());
		}

		if (is_array($this->_urls) && !empty($this->_urls)) {
			if (defined('LITESPEED_CRAWLER_DROP_DOMAIN') && LITESPEED_CRAWLER_DROP_DOMAIN) {
				foreach ($this->_urls as $k => $v) {
					if (stripos($v, $this->_site_url) !== 0) {
						unset($this->_urls[$k]);
						continue;
					}
					$this->_urls[$k] = substr($v, $offset);
				}
			}

			$this->_urls = array_unique($this->_urls);
		}

		self::debug('Truncate sitemap');
		$wpdb->query("TRUNCATE `$this->_tb`");

		self::debug('Generate sitemap');

		// Filter URLs in blacklist
		$blacklist = $this->list_blacklist();

		$full_blacklisted    = array();
		$partial_blacklisted = array();
		foreach ($blacklist as $v) {
			if (strpos($v['res'], '-') === false) {
				// Full blacklisted
				$full_blacklisted[] = $v['url'];
			} else {
				// Replace existing reason
				$v['reason']                    = explode(',', $v['reason']);
				$v['reason']                    = array_map(function ( $element ) {
					return $element ? 'Existed' : '';
				}, $v['reason']);
				$v['reason']                    = implode(',', $v['reason']);
				$partial_blacklisted[$v['url']] = array(
					'res' => $v['res'],
					'reason' => $v['reason'],
				);
			}
		}

		// Drop all blacklisted URLs
		$this->_urls = array_diff($this->_urls, $full_blacklisted);

		// Default res & reason
		$crawler_count  = count(Crawler::cls()->list_crawlers());
		$default_res    = str_repeat('-', $crawler_count);
		$default_reason = $crawler_count > 1 ? str_repeat(',', $crawler_count - 1) : '';

		$data = array();
		foreach ($this->_urls as $url) {
			$data[] = $url;
			$data[] = array_key_exists($url, $partial_blacklisted) ? $partial_blacklisted[$url]['res'] : $default_res;
			$data[] = array_key_exists($url, $partial_blacklisted) ? $partial_blacklisted[$url]['reason'] : $default_reason;
		}

		foreach (array_chunk($data, 300) as $data2) {
			$this->_save($data2);
		}

		// Reset crawler
		Crawler::cls()->reset_pos();

		return count($this->_urls);
	}

	/**
	 * Save data to table
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _save( $data, $fields = 'url,res,reason' ) {
		global $wpdb;

		if (empty($data)) {
			return;
		}

		$q = "INSERT INTO `$this->_tb` ( $fields ) VALUES ";

		// Add placeholder
		$q .= Utility::chunk_placeholder($data, $fields);

		// Store data
		$wpdb->query($wpdb->prepare($q, $data));
	}

	/**
	 * Parse custom sitemap and return urls
	 *
	 * @since    1.1.1
	 * @access private
	 */
	private function _parse( $sitemap ) {
		/**
		 * Read via wp func to avoid allow_url_fopen = off
		 *
		 * @since  2.2.7
		 */
		$response = wp_safe_remote_get($sitemap, array(
			'timeout' => $this->_conf_map_timeout,
			'sslverify' => false,
		));
		if (is_wp_error($response)) {
			$error_message = $response->get_error_message();
			self::debug('failed to read sitemap: ' . $error_message);
			throw new \Exception('Failed to remote read ' . $sitemap);
		}

		$xml_object = simplexml_load_string($response['body'], null, LIBXML_NOCDATA);
		if (!$xml_object) {
			if ($this->_urls) {
				return;
			}
			throw new \Exception('Failed to parse xml ' . $sitemap);
		}

		// start parsing
		$xml_array = (array) $xml_object;
		if (!empty($xml_array['sitemap'])) {
			// parse sitemap set
			if (is_object($xml_array['sitemap'])) {
				$xml_array['sitemap'] = (array) $xml_array['sitemap'];
			}

			if (!empty($xml_array['sitemap']['loc'])) {
				// is single sitemap
				$this->_parse($xml_array['sitemap']['loc']);
			} else {
				// parse multiple sitemaps
				foreach ($xml_array['sitemap'] as $val) {
					$val = (array) $val;
					if (!empty($val['loc'])) {
						$this->_parse($val['loc']); // recursive parse sitemap
					}
				}
			}
		} elseif (!empty($xml_array['url'])) {
			// parse url set
			if (is_object($xml_array['url'])) {
				$xml_array['url'] = (array) $xml_array['url'];
			}
			// if only 1 element
			if (!empty($xml_array['url']['loc'])) {
				$this->_urls[] = $xml_array['url']['loc'];
			} else {
				foreach ($xml_array['url'] as $val) {
					$val = (array) $val;
					if (!empty($val['loc'])) {
						$this->_urls[] = $val['loc'];
					}
				}
			}
		}
	}
}
<?php

/**
 * LiteSpeed String Operator Library Class
 *
 * @since 1.3
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Str {

	/**
	 * Translate QC HTML links from html. Convert `<a href="{#xxx#}">xxxx</a>` to `<a href="xxx">xxxx</a>`
	 *
	 * @since 7.0
	 */
	public static function translate_qc_apis( $html ) {
		preg_match_all('/<a href="{#(\w+)#}"/U', $html, $matches);
		if (!$matches) {
			return $html;
		}

		foreach ($matches[0] as $k => $html_to_be_replaced) {
			$link = '<a href="' . Utility::build_url(Router::ACTION_CLOUD, Cloud::TYPE_API, false, null, array( 'action2' => $matches[1][$k] )) . '"';
			$html = str_replace($html_to_be_replaced, $link, $html);
		}
		return $html;
	}

	/**
	 * Return safe HTML
	 *
	 * @since 7.0
	 */
	public static function safe_html( $html ) {
		$common_attrs = array(
			'style' => array(),
			'class' => array(),
			'target' => array(),
			'src' => array(),
			'color' => array(),
			'href' => array(),
		);
		$tags         = array( 'hr', 'h3', 'h4', 'h5', 'ul', 'li', 'br', 'strong', 'p', 'span', 'img', 'a', 'div', 'font' );
		$allowed_tags = array();
		foreach ($tags as $tag) {
			$allowed_tags[$tag] = $common_attrs;
		}

		return wp_kses($html, $allowed_tags);
	}

	/**
	 * Generate random string
	 *
	 * @since  1.3
	 * @access public
	 * @param  int $len     Length of string
	 * @param  int $type    1-Number 2-LowerChar 4-UpperChar
	 * @return string
	 */
	public static function rrand( $len, $type = 7 ) {
		switch ($type) {
			case 0:
            $charlist = '012';
				break;

			case 1:
            $charlist = '0123456789';
				break;

			case 2:
            $charlist = 'abcdefghijklmnopqrstuvwxyz';
				break;

			case 3:
            $charlist = '0123456789abcdefghijklmnopqrstuvwxyz';
				break;

			case 4:
            $charlist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 5:
            $charlist = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 6:
            $charlist = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 7:
            $charlist = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;
		}

		$str = '';

		$max = strlen($charlist) - 1;
		for ($i = 0; $i < $len; $i++) {
			$str .= $charlist[random_int(0, $max)];
		}

		return $str;
	}

	/**
	 * Trim double quotes from a string to be used as a preformatted src in HTML.
	 *
	 * @since 6.5.3
	 */
	public static function trim_quotes( $string ) {
		return str_replace('"', '', $string);
	}
}
<?php

/**
 * The language class.
 *
 * @since       3.0
 * @package     LiteSpeed_Cache
 * @subpackage  LiteSpeed_Cache/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Lang extends Base {

	/**
	 * Get image status per status bit
	 *
	 * @since  3.0
	 */
	public static function img_status( $status = null ) {
		$list = array(
			Img_Optm::STATUS_NEW => __('Images not requested', 'litespeed-cache'),
			Img_Optm::STATUS_RAW => __('Images ready to request', 'litespeed-cache'),
			Img_Optm::STATUS_REQUESTED => __('Images requested', 'litespeed-cache'),
			Img_Optm::STATUS_NOTIFIED => __('Images notified to pull', 'litespeed-cache'),
			Img_Optm::STATUS_PULLED => __('Images optimized and pulled', 'litespeed-cache'),
		);

		if ($status !== null) {
			return !empty($list[$status]) ? $list[$status] : 'N/A';
		}

		return $list;
	}

	/**
	 * Try translating a string
	 *
	 * @since  4.7
	 */
	public static function maybe_translate( $raw_string ) {
		$map = array(
			'auto_alias_failed_cdn' =>
				__('Unable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict.', 'litespeed-cache') .
				' ' .
				Doc::learn_more('https://quic.cloud/docs/cdn/dns/how-to-setup-domain-alias/', false, false, false, true),

			'auto_alias_failed_uid' =>
				__('Unable to automatically add %1$s as a Domain Alias for main %2$s domain.', 'litespeed-cache') .
				' ' .
				__('Alias is in use by another QUIC.cloud account.', 'litespeed-cache') .
				' ' .
				Doc::learn_more('https://quic.cloud/docs/cdn/dns/how-to-setup-domain-alias/', false, false, false, true),
		);

		// Maybe has placeholder
		if (strpos($raw_string, '::')) {
			$replacements = explode('::', $raw_string);
			if (empty($map[$replacements[0]])) {
				return $raw_string;
			}
			$tpl = $map[$replacements[0]];
			unset($replacements[0]);
			return vsprintf($tpl, array_values($replacements));
		}

		// Direct translation only
		if (empty($map[$raw_string])) {
			return $raw_string;
		}

		return $map[$raw_string];
	}

	/**
	 * Get the title of id
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function title( $id ) {
		$_lang_list = array(
			self::O_SERVER_IP => __('Server IP', 'litespeed-cache'),
			self::O_GUEST_UAS => __('Guest Mode User Agents', 'litespeed-cache'),
			self::O_GUEST_IPS => __('Guest Mode IPs', 'litespeed-cache'),

			self::O_CACHE => __('Enable Cache', 'litespeed-cache'),
			self::O_CACHE_BROWSER => __('Browser Cache', 'litespeed-cache'),
			self::O_CACHE_TTL_PUB => __('Default Public Cache TTL', 'litespeed-cache'),
			self::O_CACHE_TTL_PRIV => __('Default Private Cache TTL', 'litespeed-cache'),
			self::O_CACHE_TTL_FRONTPAGE => __('Default Front Page TTL', 'litespeed-cache'),
			self::O_CACHE_TTL_FEED => __('Default Feed TTL', 'litespeed-cache'),
			self::O_CACHE_TTL_REST => __('Default REST TTL', 'litespeed-cache'),
			self::O_CACHE_TTL_STATUS => __('Default HTTP Status Code Page TTL', 'litespeed-cache'),
			self::O_CACHE_TTL_BROWSER => __('Browser Cache TTL', 'litespeed-cache'),
			self::O_CACHE_AJAX_TTL => __('AJAX Cache TTL', 'litespeed-cache'),
			self::O_AUTO_UPGRADE => __('Automatically Upgrade', 'litespeed-cache'),
			self::O_GUEST => __('Guest Mode', 'litespeed-cache'),
			self::O_GUEST_OPTM => __('Guest Optimization', 'litespeed-cache'),
			self::O_NEWS => __('Notifications', 'litespeed-cache'),
			self::O_CACHE_PRIV => __('Cache Logged-in Users', 'litespeed-cache'),
			self::O_CACHE_COMMENTER => __('Cache Commenters', 'litespeed-cache'),
			self::O_CACHE_REST => __('Cache REST API', 'litespeed-cache'),
			self::O_CACHE_PAGE_LOGIN => __('Cache Login Page', 'litespeed-cache'),
			self::O_CACHE_MOBILE => __('Cache Mobile', 'litespeed-cache'),
			self::O_CACHE_MOBILE_RULES => __('List of Mobile User Agents', 'litespeed-cache'),
			self::O_CACHE_PRIV_URI => __('Private Cached URIs', 'litespeed-cache'),
			self::O_CACHE_DROP_QS => __('Drop Query String', 'litespeed-cache'),

			self::O_OBJECT => __('Object Cache', 'litespeed-cache'),
			self::O_OBJECT_KIND => __('Method', 'litespeed-cache'),
			self::O_OBJECT_HOST => __('Host', 'litespeed-cache'),
			self::O_OBJECT_PORT => __('Port', 'litespeed-cache'),
			self::O_OBJECT_LIFE => __('Default Object Lifetime', 'litespeed-cache'),
			self::O_OBJECT_USER => __('Username', 'litespeed-cache'),
			self::O_OBJECT_PSWD => __('Password', 'litespeed-cache'),
			self::O_OBJECT_DB_ID => __('Redis Database ID', 'litespeed-cache'),
			self::O_OBJECT_GLOBAL_GROUPS => __('Global Groups', 'litespeed-cache'),
			self::O_OBJECT_NON_PERSISTENT_GROUPS => __('Do Not Cache Groups', 'litespeed-cache'),
			self::O_OBJECT_PERSISTENT => __('Persistent Connection', 'litespeed-cache'),
			self::O_OBJECT_ADMIN => __('Cache WP-Admin', 'litespeed-cache'),
			self::O_OBJECT_TRANSIENTS => __('Store Transients', 'litespeed-cache'),

			self::O_PURGE_ON_UPGRADE => __('Purge All On Upgrade', 'litespeed-cache'),
			self::O_PURGE_STALE => __('Serve Stale', 'litespeed-cache'),
			self::O_PURGE_TIMED_URLS => __('Scheduled Purge URLs', 'litespeed-cache'),
			self::O_PURGE_TIMED_URLS_TIME => __('Scheduled Purge Time', 'litespeed-cache'),
			self::O_CACHE_FORCE_URI => __('Force Cache URIs', 'litespeed-cache'),
			self::O_CACHE_FORCE_PUB_URI => __('Force Public Cache URIs', 'litespeed-cache'),
			self::O_CACHE_EXC => __('Do Not Cache URIs', 'litespeed-cache'),
			self::O_CACHE_EXC_QS => __('Do Not Cache Query Strings', 'litespeed-cache'),
			self::O_CACHE_EXC_CAT => __('Do Not Cache Categories', 'litespeed-cache'),
			self::O_CACHE_EXC_TAG => __('Do Not Cache Tags', 'litespeed-cache'),
			self::O_CACHE_EXC_ROLES => __('Do Not Cache Roles', 'litespeed-cache'),
			self::O_OPTM_CSS_MIN => __('CSS Minify', 'litespeed-cache'),
			self::O_OPTM_CSS_COMB => __('CSS Combine', 'litespeed-cache'),
			self::O_OPTM_CSS_COMB_EXT_INL => __('CSS Combine External and Inline', 'litespeed-cache'),
			self::O_OPTM_UCSS => __('Generate UCSS', 'litespeed-cache'),
			self::O_OPTM_UCSS_INLINE => __('UCSS Inline', 'litespeed-cache'),
			self::O_OPTM_UCSS_SELECTOR_WHITELIST => __('UCSS Selector Allowlist', 'litespeed-cache'),
			self::O_OPTM_UCSS_FILE_EXC_INLINE => __('UCSS File Excludes and Inline', 'litespeed-cache'),
			self::O_OPTM_UCSS_EXC => __('UCSS URI Excludes', 'litespeed-cache'),
			self::O_OPTM_JS_MIN => __('JS Minify', 'litespeed-cache'),
			self::O_OPTM_JS_COMB => __('JS Combine', 'litespeed-cache'),
			self::O_OPTM_JS_COMB_EXT_INL => __('JS Combine External and Inline', 'litespeed-cache'),
			self::O_OPTM_HTML_MIN => __('HTML Minify', 'litespeed-cache'),
			self::O_OPTM_HTML_LAZY => __('HTML Lazy Load Selectors', 'litespeed-cache'),
			self::O_OPTM_HTML_SKIP_COMMENTS => __('HTML Keep Comments', 'litespeed-cache'),
			self::O_OPTM_CSS_ASYNC => __('Load CSS Asynchronously', 'litespeed-cache'),
			self::O_OPTM_CCSS_PER_URL => __('CCSS Per URL', 'litespeed-cache'),
			self::O_OPTM_CSS_ASYNC_INLINE => __('Inline CSS Async Lib', 'litespeed-cache'),
			self::O_OPTM_CSS_FONT_DISPLAY => __('Font Display Optimization', 'litespeed-cache'),
			self::O_OPTM_JS_DEFER => __('Load JS Deferred', 'litespeed-cache'),
			self::O_OPTM_LOCALIZE => __('Localize Resources', 'litespeed-cache'),
			self::O_OPTM_LOCALIZE_DOMAINS => __('Localization Files', 'litespeed-cache'),
			self::O_OPTM_DNS_PREFETCH => __('DNS Prefetch', 'litespeed-cache'),
			self::O_OPTM_DNS_PREFETCH_CTRL => __('DNS Prefetch Control', 'litespeed-cache'),
			self::O_OPTM_DNS_PRECONNECT => __('DNS Preconnect', 'litespeed-cache'),
			self::O_OPTM_CSS_EXC => __('CSS Excludes', 'litespeed-cache'),
			self::O_OPTM_JS_DELAY_INC => __('JS Delayed Includes', 'litespeed-cache'),
			self::O_OPTM_JS_EXC => __('JS Excludes', 'litespeed-cache'),
			self::O_OPTM_QS_RM => __('Remove Query Strings', 'litespeed-cache'),
			self::O_OPTM_GGFONTS_ASYNC => __('Load Google Fonts Asynchronously', 'litespeed-cache'),
			self::O_OPTM_GGFONTS_RM => __('Remove Google Fonts', 'litespeed-cache'),
			self::O_OPTM_CCSS_CON => __('Critical CSS Rules', 'litespeed-cache'),
			self::O_OPTM_CCSS_SEP_POSTTYPE => __('Separate CCSS Cache Post Types', 'litespeed-cache'),
			self::O_OPTM_CCSS_SEP_URI => __('Separate CCSS Cache URIs', 'litespeed-cache'),
			self::O_OPTM_CCSS_SELECTOR_WHITELIST => __('CCSS Selector Allowlist', 'litespeed-cache'),
			self::O_OPTM_JS_DEFER_EXC => __('JS Deferred / Delayed Excludes', 'litespeed-cache'),
			self::O_OPTM_GM_JS_EXC => __('Guest Mode JS Excludes', 'litespeed-cache'),
			self::O_OPTM_EMOJI_RM => __('Remove WordPress Emoji', 'litespeed-cache'),
			self::O_OPTM_NOSCRIPT_RM => __('Remove Noscript Tags', 'litespeed-cache'),
			self::O_OPTM_EXC => __('URI Excludes', 'litespeed-cache'),
			self::O_OPTM_GUEST_ONLY => __('Optimize for Guests Only', 'litespeed-cache'),
			self::O_OPTM_EXC_ROLES => __('Role Excludes', 'litespeed-cache'),

			self::O_DISCUSS_AVATAR_CACHE => __('Gravatar Cache', 'litespeed-cache'),
			self::O_DISCUSS_AVATAR_CRON => __('Gravatar Cache Cron', 'litespeed-cache'),
			self::O_DISCUSS_AVATAR_CACHE_TTL => __('Gravatar Cache TTL', 'litespeed-cache'),

			self::O_MEDIA_LAZY => __('Lazy Load Images', 'litespeed-cache'),
			self::O_MEDIA_LAZY_EXC => __('Lazy Load Image Excludes', 'litespeed-cache'),
			self::O_MEDIA_LAZY_CLS_EXC => __('Lazy Load Image Class Name Excludes', 'litespeed-cache'),
			self::O_MEDIA_LAZY_PARENT_CLS_EXC => __('Lazy Load Image Parent Class Name Excludes', 'litespeed-cache'),
			self::O_MEDIA_IFRAME_LAZY_CLS_EXC => __('Lazy Load Iframe Class Name Excludes', 'litespeed-cache'),
			self::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC => __('Lazy Load Iframe Parent Class Name Excludes', 'litespeed-cache'),
			self::O_MEDIA_LAZY_URI_EXC => __('Lazy Load URI Excludes', 'litespeed-cache'),
			self::O_MEDIA_LQIP_EXC => __('LQIP Excludes', 'litespeed-cache'),
			self::O_MEDIA_LAZY_PLACEHOLDER => __('Basic Image Placeholder', 'litespeed-cache'),
			self::O_MEDIA_PLACEHOLDER_RESP => __('Responsive Placeholder', 'litespeed-cache'),
			self::O_MEDIA_PLACEHOLDER_RESP_COLOR => __('Responsive Placeholder Color', 'litespeed-cache'),
			self::O_MEDIA_PLACEHOLDER_RESP_SVG => __('Responsive Placeholder SVG', 'litespeed-cache'),
			self::O_MEDIA_LQIP => __('LQIP Cloud Generator', 'litespeed-cache'),
			self::O_MEDIA_LQIP_QUAL => __('LQIP Quality', 'litespeed-cache'),
			self::O_MEDIA_LQIP_MIN_W => __('LQIP Minimum Dimensions', 'litespeed-cache'),
			// self::O_MEDIA_LQIP_MIN_H         => __( 'LQIP Minimum Height', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP_ASYNC => __('Generate LQIP In Background', 'litespeed-cache'),
			self::O_MEDIA_IFRAME_LAZY => __('Lazy Load Iframes', 'litespeed-cache'),
			self::O_MEDIA_ADD_MISSING_SIZES => __('Add Missing Sizes', 'litespeed-cache'),
			self::O_MEDIA_VPI => __('Viewport Images', 'litespeed-cache'),
			self::O_MEDIA_VPI_CRON => __('Viewport Images Cron', 'litespeed-cache'),

			self::O_IMG_OPTM_AUTO => __('Auto Request Cron', 'litespeed-cache'),
			self::O_IMG_OPTM_ORI => __('Optimize Original Images', 'litespeed-cache'),
			self::O_IMG_OPTM_RM_BKUP => __('Remove Original Backups', 'litespeed-cache'),
			self::O_IMG_OPTM_WEBP => __('Next-Gen Image Format', 'litespeed-cache'),
			self::O_IMG_OPTM_LOSSLESS => __('Optimize Losslessly', 'litespeed-cache'),
			self::O_IMG_OPTM_EXIF => __('Preserve EXIF/XMP data', 'litespeed-cache'),
			self::O_IMG_OPTM_WEBP_ATTR => __('WebP/AVIF Attribute To Replace', 'litespeed-cache'),
			self::O_IMG_OPTM_WEBP_REPLACE_SRCSET => __('WebP/AVIF For Extra srcset', 'litespeed-cache'),
			self::O_IMG_OPTM_JPG_QUALITY => __('WordPress Image Quality Control', 'litespeed-cache'),
			self::O_ESI => __('Enable ESI', 'litespeed-cache'),
			self::O_ESI_CACHE_ADMBAR => __('Cache Admin Bar', 'litespeed-cache'),
			self::O_ESI_CACHE_COMMFORM => __('Cache Comment Form', 'litespeed-cache'),
			self::O_ESI_NONCE => __('ESI Nonces', 'litespeed-cache'),
			self::O_CACHE_VARY_GROUP => __('Vary Group', 'litespeed-cache'),
			self::O_PURGE_HOOK_ALL => __('Purge All Hooks', 'litespeed-cache'),
			self::O_UTIL_NO_HTTPS_VARY => __('Improve HTTP/HTTPS Compatibility', 'litespeed-cache'),
			self::O_UTIL_INSTANT_CLICK => __('Instant Click', 'litespeed-cache'),
			self::O_CACHE_EXC_COOKIES => __('Do Not Cache Cookies', 'litespeed-cache'),
			self::O_CACHE_EXC_USERAGENTS => __('Do Not Cache User Agents', 'litespeed-cache'),
			self::O_CACHE_LOGIN_COOKIE => __('Login Cookie', 'litespeed-cache'),
			self::O_CACHE_VARY_COOKIES => __('Vary Cookies', 'litespeed-cache'),

			self::O_MISC_HEARTBEAT_FRONT => __('Frontend Heartbeat Control', 'litespeed-cache'),
			self::O_MISC_HEARTBEAT_FRONT_TTL => __('Frontend Heartbeat TTL', 'litespeed-cache'),
			self::O_MISC_HEARTBEAT_BACK => __('Backend Heartbeat Control', 'litespeed-cache'),
			self::O_MISC_HEARTBEAT_BACK_TTL => __('Backend Heartbeat TTL', 'litespeed-cache'),
			self::O_MISC_HEARTBEAT_EDITOR => __('Editor Heartbeat', 'litespeed-cache'),
			self::O_MISC_HEARTBEAT_EDITOR_TTL => __('Editor Heartbeat TTL', 'litespeed-cache'),

			self::O_CDN => __('Use CDN Mapping', 'litespeed-cache'),
			self::CDN_MAPPING_URL => __('CDN URL', 'litespeed-cache'),
			self::CDN_MAPPING_INC_IMG => __('Include Images', 'litespeed-cache'),
			self::CDN_MAPPING_INC_CSS => __('Include CSS', 'litespeed-cache'),
			self::CDN_MAPPING_INC_JS => __('Include JS', 'litespeed-cache'),
			self::CDN_MAPPING_FILETYPE => __('Include File Types', 'litespeed-cache'),
			self::O_CDN_ATTR => __('HTML Attribute To Replace', 'litespeed-cache'),
			self::O_CDN_ORI => __('Original URLs', 'litespeed-cache'),
			self::O_CDN_ORI_DIR => __('Included Directories', 'litespeed-cache'),
			self::O_CDN_EXC => __('Exclude Path', 'litespeed-cache'),
			self::O_CDN_CLOUDFLARE => __('Cloudflare API', 'litespeed-cache'),
			self::O_CDN_CLOUDFLARE_CLEAR => __('Clear Cloudflare cache', 'litespeed-cache'),

			self::O_CRAWLER => __('Crawler', 'litespeed-cache'),
			self::O_CRAWLER_CRAWL_INTERVAL => __('Crawl Interval', 'litespeed-cache'),
			self::O_CRAWLER_LOAD_LIMIT => __('Server Load Limit', 'litespeed-cache'),
			self::O_CRAWLER_ROLES => __('Role Simulation', 'litespeed-cache'),
			self::O_CRAWLER_COOKIES => __('Cookie Simulation', 'litespeed-cache'),
			self::O_CRAWLER_SITEMAP => __('Custom Sitemap', 'litespeed-cache'),

			self::O_DEBUG_DISABLE_ALL => __('Disable All Features', 'litespeed-cache'),
			self::O_DEBUG => __('Debug Log', 'litespeed-cache'),
			self::O_DEBUG_IPS => __('Admin IPs', 'litespeed-cache'),
			self::O_DEBUG_LEVEL => __('Debug Level', 'litespeed-cache'),
			self::O_DEBUG_FILESIZE => __('Log File Size Limit', 'litespeed-cache'),
			self::O_DEBUG_COLLAPSE_QS => __('Collapse Query Strings', 'litespeed-cache'),
			self::O_DEBUG_INC => __('Debug URI Includes', 'litespeed-cache'),
			self::O_DEBUG_EXC => __('Debug URI Excludes', 'litespeed-cache'),
			self::O_DEBUG_EXC_STRINGS => __('Debug String Excludes', 'litespeed-cache'),

			self::O_DB_OPTM_REVISIONS_MAX => __('Revisions Max Number', 'litespeed-cache'),
			self::O_DB_OPTM_REVISIONS_AGE => __('Revisions Max Age', 'litespeed-cache'),
		);

		if (array_key_exists($id, $_lang_list)) {
			return $_lang_list[$id];
		}

		return 'N/A';
	}
}
<?php

/**
 * The optimize class.
 *
 * @since       1.2.2
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Optimize extends Base {
	const LOG_TAG           = '🎢';

	const LIB_FILE_CSS_ASYNC     = 'assets/js/css_async.min.js';
	const LIB_FILE_WEBFONTLOADER = 'assets/js/webfontloader.min.js';
	const LIB_FILE_JS_DELAY      = 'assets/js/js_delay.min.js';

	const ITEM_TIMESTAMP_PURGE_CSS = 'timestamp_purge_css';

	const DUMMY_CSS_REGEX = "#<link rel='stylesheet' id='litespeed-cache-dummy-css' href='.+assets/css/litespeed-dummy\.css[?\w.=-]*'[ \w='/]*>#isU";

	private $content;
	private $content_ori;

	private $cfg_css_min;
	private $cfg_css_comb;
	private $cfg_js_min;
	private $cfg_js_comb;
	private $cfg_css_async;
	private $cfg_js_delay_inc = array();
	private $cfg_js_defer;
	private $cfg_js_defer_exc = false;
	private $cfg_ggfonts_async;
	private $_conf_css_font_display;
	private $cfg_ggfonts_rm;

	private $dns_prefetch;
	private $dns_preconnect;
	private $_ggfonts_urls = array();
	private $_ccss;
	private $_ucss = false;

	private $__optimizer;

	private $html_foot = ''; // The html info append to <body>
	private $html_head = ''; // The html info append to <head>
	private $html_head_early = ''; // The html info prepend to top of head

	private static $_var_i    = 0;
	private $_var_preserve_js = array();
	private $_request_url;

	/**
	 * Constructor
	 *
	 * @since  4.0
	 */
	public function __construct() {
		self::debug('init');
		$this->__optimizer = $this->cls('Optimizer');
	}

	/**
	 * Init optimizer
	 *
	 * @since  3.0
	 * @access protected
	 */
	public function init() {
		$this->cfg_css_async = defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_CSS_ASYNC);
		if ($this->cfg_css_async) {
			if (!$this->cls('Cloud')->activated()) {
				self::debug('❌ CCSS set to OFF due to QC not activated');
				$this->cfg_css_async = false;
			}
			if ((defined('LITESPEED_GUEST_OPTM') || ($this->conf(self::O_OPTM_UCSS) && $this->conf(self::O_OPTM_CSS_COMB))) && $this->conf(self::O_OPTM_UCSS_INLINE)) {
				self::debug('⚠️ CCSS set to OFF due to UCSS Inline');
				$this->cfg_css_async = false;
			}
		}
		$this->cfg_js_defer = $this->conf(self::O_OPTM_JS_DEFER);
		if (defined('LITESPEED_GUEST_OPTM')) {
			$this->cfg_js_defer = 2;
		}
		if ($this->cfg_js_defer == 2) {
			add_filter(
				'litespeed_optm_cssjs',
				function ( $con, $file_type ) {
					if ($file_type == 'js') {
						$con = str_replace('DOMContentLoaded', 'DOMContentLiteSpeedLoaded', $con);
						// $con = str_replace( 'addEventListener("load"', 'addEventListener("litespeedLoad"', $con );
					}
					return $con;
				},
				20,
				2
			);
		}

		// To remove emoji from WP
		if ($this->conf(self::O_OPTM_EMOJI_RM)) {
			$this->_emoji_rm();
		}

		if ($this->conf(self::O_OPTM_QS_RM)) {
			add_filter('style_loader_src', array( $this, 'remove_query_strings' ), 999);
			add_filter('script_loader_src', array( $this, 'remove_query_strings' ), 999);
		}

		// GM JS exclude @since 4.1
		if (defined('LITESPEED_GUEST_OPTM')) {
			$this->cfg_js_defer_exc = apply_filters('litespeed_optm_gm_js_exc', $this->conf(self::O_OPTM_GM_JS_EXC));
		} else {
			/**
			 * Exclude js from deferred setting
			 *
			 * @since 1.5
			 */
			if ($this->cfg_js_defer) {
				add_filter('litespeed_optm_js_defer_exc', array( $this->cls('Data'), 'load_js_defer_exc' ));
				$this->cfg_js_defer_exc = apply_filters('litespeed_optm_js_defer_exc', $this->conf(self::O_OPTM_JS_DEFER_EXC));

				$this->cfg_js_delay_inc = apply_filters('litespeed_optm_js_delay_inc', $this->conf(self::O_OPTM_JS_DELAY_INC));
			}
		}

		// Add vary filter for Role Excludes @since  1.6
		add_filter('litespeed_vary', array( $this, 'vary_add_role_exclude' ));

		// DNS optm (Prefetch/Preconnect) @since 7.3
		$this->_dns_optm_init();

		add_filter('litespeed_buffer_finalize', array( $this, 'finalize' ), 20);

		// Inject a dummy CSS file to control final optimized data location in <head>
		wp_enqueue_style(Core::PLUGIN_NAME . '-dummy', LSWCP_PLUGIN_URL . 'assets/css/litespeed-dummy.css');
	}

	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6
	 * @access public
	 */
	public function vary_add_role_exclude( $vary ) {
		if ($this->cls('Conf')->in_optm_exc_roles()) {
			$vary['role_exclude_optm'] = 1;
		}

		return $vary;
	}

	/**
	 * Remove emoji from WP
	 *
	 * @since  1.4
	 * @since  2.9.8 Changed to private
	 * @access private
	 */
	private function _emoji_rm() {
		remove_action('wp_head', 'print_emoji_detection_script', 7);
		remove_action('admin_print_scripts', 'print_emoji_detection_script');
		remove_filter('the_content_feed', 'wp_staticize_emoji');
		remove_filter('comment_text_rss', 'wp_staticize_emoji');
		/**
		 * Added for better result
		 *
		 * @since  1.6.2.1
		 */
		remove_action('wp_print_styles', 'print_emoji_styles');
		remove_action('admin_print_styles', 'print_emoji_styles');
		remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
	}

	/**
	 * Delete file-based cache folder
	 *
	 * @since  2.1
	 * @access public
	 */
	public function rm_cache_folder( $subsite_id = false ) {
		if ($subsite_id) {
			file_exists(LITESPEED_STATIC_DIR . '/css/' . $subsite_id) && File::rrmdir(LITESPEED_STATIC_DIR . '/css/' . $subsite_id);
			file_exists(LITESPEED_STATIC_DIR . '/js/' . $subsite_id) && File::rrmdir(LITESPEED_STATIC_DIR . '/js/' . $subsite_id);
			return;
		}

		file_exists(LITESPEED_STATIC_DIR . '/css') && File::rrmdir(LITESPEED_STATIC_DIR . '/css');
		file_exists(LITESPEED_STATIC_DIR . '/js') && File::rrmdir(LITESPEED_STATIC_DIR . '/js');
	}

	/**
	 * Remove QS
	 *
	 * @since  1.3
	 * @access public
	 */
	public function remove_query_strings( $src ) {
		if (strpos($src, '_litespeed_rm_qs=0') || strpos($src, '/recaptcha')) {
			return $src;
		}

		if (!Utility::is_internal_file($src)) {
			return $src;
		}

		if (strpos($src, '.js?') !== false || strpos($src, '.css?') !== false) {
			$src = preg_replace('/\?.*/', '', $src);
		}

		return $src;
	}

	/**
	 * Run optimize process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * @since  1.2.2
	 * @access public
	 * @return  string The content that is after optimization
	 */
	public function finalize( $content ) {
		$content = $this->_finalize($content);
		// Fallback to replace dummy css placeholder
		if (false !== preg_match(self::DUMMY_CSS_REGEX, $content)) {
			self::debug('Fallback to drop dummy CSS');
			$content = preg_replace( self::DUMMY_CSS_REGEX, '', $content );
		}
		return $content;
	}
	private function _finalize( $content ) {
		if (defined('LITESPEED_NO_PAGEOPTM')) {
			self::debug2('bypass: NO_PAGEOPTM const');
			return $content;
		}

		if (!defined('LITESPEED_IS_HTML')) {
			self::debug('bypass: Not frontend HTML type');
			return $content;
		}

		if (!defined('LITESPEED_GUEST_OPTM')) {
			if (!Control::is_cacheable()) {
				self::debug('bypass: Not cacheable');
				return $content;
			}

			// Check if hit URI excludes
			add_filter('litespeed_optm_uri_exc', array( $this->cls('Data'), 'load_optm_uri_exc' ));
			$excludes = apply_filters('litespeed_optm_uri_exc', $this->conf(self::O_OPTM_EXC));
			$result   = Utility::str_hit_array($_SERVER['REQUEST_URI'], $excludes);
			if ($result) {
				self::debug('bypass: hit URI Excludes setting: ' . $result);
				return $content;
			}
		}

		self::debug('start');

		$this->content_ori = $this->content = $content;

		$this->_optimize();
		return $this->content;
	}

	/**
	 * Optimize css src
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _optimize() {
		global $wp;
		$this->_request_url = get_permalink();
		// Backup, in case get_permalink() fails.
		if (!$this->_request_url) {
			$this->_request_url = home_url($wp->request);
		}

		$this->cfg_css_min            = defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_CSS_MIN);
		$this->cfg_css_comb           = defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_CSS_COMB);
		$this->cfg_js_min             = defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_JS_MIN);
		$this->cfg_js_comb            = defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_JS_COMB);
		$this->cfg_ggfonts_rm         = defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_GGFONTS_RM);
		$this->cfg_ggfonts_async      = !defined('LITESPEED_GUEST_OPTM') && $this->conf(self::O_OPTM_GGFONTS_ASYNC); // forced rm already
		$this->_conf_css_font_display = !defined('LITESPEED_GUEST_OPTM') && $this->conf(self::O_OPTM_CSS_FONT_DISPLAY);

		if (!$this->cls('Router')->can_optm()) {
			self::debug('bypass: admin/feed/preview');
			return;
		}

		if ($this->cfg_css_async) {
			$this->_ccss = $this->cls('CSS')->prepare_ccss();
			if (!$this->_ccss) {
				self::debug('❌ CCSS set to OFF due to CCSS not generated yet');
				$this->cfg_css_async = false;
			} elseif (strpos($this->_ccss, '<style id="litespeed-ccss" data-error') === 0) {
				self::debug('❌ CCSS set to OFF due to CCSS failed to generate');
				$this->cfg_css_async = false;
			}
		}

		do_action('litespeed_optm');

		// Parse css from content
		$src_list = false;
		if ($this->cfg_css_min || $this->cfg_css_comb || $this->cfg_ggfonts_rm || $this->cfg_css_async || $this->cfg_ggfonts_async || $this->_conf_css_font_display) {
			add_filter('litespeed_optimize_css_excludes', array( $this->cls('Data'), 'load_css_exc' ));
			list($src_list, $html_list) = $this->_parse_css();
		}

		// css optimizer
		if ($this->cfg_css_min || $this->cfg_css_comb) {
			if ($src_list) {
				// IF combine
				if ($this->cfg_css_comb) {
					// Check if has inline UCSS enabled or not
					if ((defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_UCSS)) && $this->conf(self::O_OPTM_UCSS_INLINE)) {
						$filename = $this->cls('UCSS')->load($this->_request_url, true);
						if ($filename) {
							$filepath_prefix = $this->_build_filepath_prefix('ucss');
							$this->_ucss     = File::read(LITESPEED_STATIC_DIR . $filepath_prefix . $filename);

							// Drop all css
							$this->content = str_replace($html_list, '', $this->content);
						}
					}

					if (!$this->_ucss) {
						$url = $this->_build_hash_url($src_list);

						if ($url) {
							// Handle css async load
							if ($this->cfg_css_async) {
								$this->html_head .=
									'<link rel="preload" data-asynced="1" data-optimized="2" as="style" onload="this.onload=null;this.rel=\'stylesheet\'" href="' .
									Str::trim_quotes($url) .
									'" />'; // todo: How to use " in attr wrapper "
							} else {
								$this->html_head .= '<link data-optimized="2" rel="stylesheet" href="' . Str::trim_quotes($url) . '" />'; // use 2 as combined
							}

							// Move all css to top
							$this->content = str_replace($html_list, '', $this->content);
						}
					}
				}
				// Only minify
				elseif ($this->cfg_css_min) {
					// will handle async css load inside
					$this->_src_queue_handler($src_list, $html_list);
				}
				// Only HTTP2 push
				else {
					foreach ($src_list as $src_info) {
						if (!empty($src_info['inl'])) {
							continue;
						}
					}
				}
			}
		}

		// Handle css lazy load if not handled async loaded yet
		if ($this->cfg_css_async && !$this->cfg_css_min && !$this->cfg_css_comb) {
			// async html
			$html_list_async = $this->_async_css_list($html_list, $src_list);

			// Replace async css
			$this->content = str_replace($html_list, $html_list_async, $this->content);
		}

		// Parse js from buffer as needed
		$src_list = false;
		if ($this->cfg_js_min || $this->cfg_js_comb || $this->cfg_js_defer || $this->cfg_js_delay_inc) {
			add_filter('litespeed_optimize_js_excludes', array( $this->cls('Data'), 'load_js_exc' ));
			list($src_list, $html_list) = $this->_parse_js();
		}

		// js optimizer
		if ($src_list) {
			// IF combine
			if ($this->cfg_js_comb) {
				$url = $this->_build_hash_url($src_list, 'js');
				if ($url) {
					$this->html_foot .= $this->_build_js_tag($url);

					// Will move all JS to bottom combined one
					$this->content = str_replace($html_list, '', $this->content);
				}
			}
			// Only minify
			elseif ($this->cfg_js_min) {
				// Will handle js defer inside
				$this->_src_queue_handler($src_list, $html_list, 'js');
			}
			// Only HTTP2 push and Defer
			else {
				foreach ($src_list as $k => $src_info) {
					// Inline JS
					if (!empty($src_info['inl'])) {
						if ($this->cfg_js_defer) {
							$attrs    = !empty($src_info['attrs']) ? $src_info['attrs'] : '';
							$deferred = $this->_js_inline_defer($src_info['src'], $attrs);
							if ($deferred) {
								$this->content = str_replace($html_list[$k], $deferred, $this->content);
							}
						}
					}
					// JS files
					elseif ($this->cfg_js_defer) {
						$deferred = $this->_js_defer($html_list[$k], $src_info['src']);
						if ($deferred) {
							$this->content = str_replace($html_list[$k], $deferred, $this->content);
						}
					} elseif ($this->cfg_js_delay_inc) {
						$deferred = $this->_js_delay($html_list[$k], $src_info['src']);
						if ($deferred) {
							$this->content = str_replace($html_list[$k], $deferred, $this->content);
						}
					}
				}
			}
		}

		// Append JS inline var for preserved ESI
		// Shouldn't give any optm (defer/delay) @since 4.4
		if ($this->_var_preserve_js) {
			$this->html_head .= '<script>var ' . implode(',', $this->_var_preserve_js) . ';</script>';
			self::debug2('Inline JS defer vars', $this->_var_preserve_js);
		}

		// Append async compatibility lib to head
		if ($this->cfg_css_async) {
			// Inline css async lib
			if ($this->conf(self::O_OPTM_CSS_ASYNC_INLINE)) {
				$this->html_head .= $this->_build_js_inline(File::read(LSCWP_DIR . self::LIB_FILE_CSS_ASYNC), true);
			} else {
				$css_async_lib_url = LSWCP_PLUGIN_URL . self::LIB_FILE_CSS_ASYNC;
				$this->html_head  .= $this->_build_js_tag($css_async_lib_url); // Don't exclude it from defer for now
			}
		}

		/**
		 * Handle google fonts async
		 * This will result in a JS snippet in head, so need to put it in the end to avoid being replaced by JS parser
		 */
		$this->_async_ggfonts();

		/**
		 * Font display optm
		 *
		 * @since  3.0
		 */
		$this->_font_optm();

		// Inject JS Delay lib
		$this->_maybe_js_delay();

		/**
		 * HTML Lazyload
		 */
		if ($this->conf(self::O_OPTM_HTML_LAZY)) {
			$this->html_head = $this->cls('CSS')->prepare_html_lazy() . $this->html_head;
		}

		// Maybe prepend inline UCSS
		if ($this->_ucss) {
			$this->html_head = '<style id="litespeed-ucss">' . $this->_ucss . '</style>' . $this->html_head;
		}

		// Check if there is any critical css rules setting
		if ($this->cfg_css_async && $this->_ccss) {
			$this->html_head = $this->_ccss . $this->html_head;
		}

		// Replace html head part
		$this->html_head_early = apply_filters('litespeed_optm_html_head_early', $this->html_head_early);
		if ($this->html_head_early) {
			// Put header content to be after charset
			if (false !== strpos($this->content, '<meta charset')) {
				self::debug('Put early optm data to be after <meta charset>');
				$this->content = preg_replace('#<meta charset([^>]*)>#isU', '<meta charset$1>' . $this->html_head_early, $this->content, 1);
			} else {
				self::debug('Put early optm data to be right after <head>');
				$this->content = preg_replace('#<head([^>]*)>#isU', '<head$1>' . $this->html_head_early, $this->content, 1);
			}
		}
		$this->html_head = apply_filters('litespeed_optm_html_head', $this->html_head);
		if ($this->html_head) {
			if (apply_filters('litespeed_optm_html_after_head', false)) {
				$this->content = str_replace('</head>', $this->html_head . '</head>', $this->content);
			} else {
				// Put header content to dummy css position
				if (false !== preg_match(self::DUMMY_CSS_REGEX, $this->content)) {
					self::debug('Put optm data to dummy css location');
					$this->content = preg_replace( self::DUMMY_CSS_REGEX, $this->html_head, $this->content );
				}
				// Fallback: try to be after charset
				elseif (strpos($this->content, '<meta charset') !== false) {
					self::debug('Put optm data to be after <meta charset>');
					$this->content = preg_replace('#<meta charset([^>]*)>#isU', '<meta charset$1>' . $this->html_head, $this->content, 1);
				} else {
					self::debug('Put optm data to be after <head>');
					$this->content = preg_replace('#<head([^>]*)>#isU', '<head$1>' . $this->html_head, $this->content, 1);
				}
			}
		}

		// Replace html foot part
		$this->html_foot = apply_filters('litespeed_optm_html_foot', $this->html_foot);
		if ($this->html_foot) {
			$this->content = str_replace('</body>', $this->html_foot . '</body>', $this->content);
		}

		// Drop noscript if enabled
		if ($this->conf(self::O_OPTM_NOSCRIPT_RM)) {
			// $this->content = preg_replace( '#<noscript>.*</noscript>#isU', '', $this->content );
		}

		// HTML minify
		if (defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_HTML_MIN)) {
			$this->content = $this->__optimizer->html_min($this->content);
		}
	}

	/**
	 * Build a full JS tag
	 *
	 * @since  4.0
	 */
	private function _build_js_tag( $src ) {
		if ($this->cfg_js_defer === 2 || Utility::str_hit_array($src, $this->cfg_js_delay_inc)) {
			return '<script data-optimized="1" type="litespeed/javascript" data-src="' . Str::trim_quotes($src) . '"></script>';
		}

		if ($this->cfg_js_defer) {
			return '<script data-optimized="1" src="' . Str::trim_quotes($src) . '" defer></script>';
		}

		return '<script data-optimized="1" src="' . Str::trim_quotes($src) . '"></script>';
	}

	/**
	 * Build a full inline JS snippet
	 *
	 * @since  4.0
	 */
	private function _build_js_inline( $script, $minified = false ) {
		if ($this->cfg_js_defer) {
			$deferred = $this->_js_inline_defer($script, false, $minified);
			if ($deferred) {
				return $deferred;
			}
		}

		return '<script>' . $script . '</script>';
	}

	/**
	 * Load JS delay lib
	 *
	 * @since 4.0
	 */
	private function _maybe_js_delay() {
		if ($this->cfg_js_defer !== 2 && !$this->cfg_js_delay_inc) {
			return;
		}

		if (!defined('LITESPEED_JS_DELAY_LIB_LOADED')) {
			define('LITESPEED_JS_DELAY_LIB_LOADED', true);
			$this->html_foot .= '<script>' . File::read(LSCWP_DIR . self::LIB_FILE_JS_DELAY) . '</script>';
		}
	}

	/**
	 * Google font async
	 *
	 * @since 2.7.3
	 * @access private
	 */
	private function _async_ggfonts() {
		if (!$this->cfg_ggfonts_async || !$this->_ggfonts_urls) {
			return;
		}

		self::debug2('google fonts async found: ', $this->_ggfonts_urls);

		$this->html_head_early .= '<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin />';

		/**
		 * Append fonts
		 *
		 * Could be multiple fonts
		 *
		 *  <link rel='stylesheet' href='//fonts.googleapis.com/css?family=Open+Sans%3A400%2C600%2C700%2C800%2C300&#038;ver=4.9.8' type='text/css' media='all' />
		 *  <link rel='stylesheet' href='//fonts.googleapis.com/css?family=PT+Sans%3A400%2C700%7CPT+Sans+Narrow%3A400%7CMontserrat%3A600&#038;subset=latin&#038;ver=4.9.8' type='text/css' media='all' />
		 *      -> family: PT Sans:400,700|PT Sans Narrow:400|Montserrat:600
		 *  <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300,300italic,400italic,600,700,900&#038;subset=latin%2Clatin-ext' />
		 */
		$script = 'WebFontConfig={google:{families:[';

		$families = array();
		foreach ($this->_ggfonts_urls as $v) {
			$qs = wp_specialchars_decode($v);
			$qs = urldecode($qs);
			$qs = parse_url($qs, PHP_URL_QUERY);
			parse_str($qs, $qs);

			if (empty($qs['family'])) {
				self::debug('ERR ggfonts failed to find family: ' . $v);
				continue;
			}

			$subset = empty($qs['subset']) ? '' : ':' . $qs['subset'];

			foreach (array_filter(explode('|', $qs['family'])) as $v2) {
				$families[] = Str::trim_quotes($v2 . $subset);
			}
		}

		$script .= '"' . implode('","', $families) . ($this->_conf_css_font_display ? '&display=swap' : '') . '"';

		$script .= ']}};';

		// if webfontloader lib was loaded before WebFontConfig variable, call WebFont.load
		$script .= 'if ( typeof WebFont === "object" && typeof WebFont.load === "function" ) { WebFont.load( WebFontConfig ); }';

		$html = $this->_build_js_inline($script);

		// https://cdnjs.cloudflare.com/ajax/libs/webfont/1.6.28/webfontloader.js
		$webfont_lib_url = LSWCP_PLUGIN_URL . self::LIB_FILE_WEBFONTLOADER;

		// default async, if js defer set use defer
		$html .= $this->_build_js_tag($webfont_lib_url);

		// Put this in the very beginning for preconnect
		$this->html_head = $html . $this->html_head;
	}

	/**
	 * Font optm
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _font_optm() {
		if (!$this->_conf_css_font_display || !$this->_ggfonts_urls) {
			return;
		}

		self::debug2('google fonts optm ', $this->_ggfonts_urls);

		foreach ($this->_ggfonts_urls as $v) {
			if (strpos($v, 'display=')) {
				continue;
			}
			$this->html_head = str_replace($v, $v . '&#038;display=swap', $this->html_head);
			$this->html_foot = str_replace($v, $v . '&#038;display=swap', $this->html_foot);
			$this->content   = str_replace($v, $v . '&#038;display=swap', $this->content);
		}
	}

	/**
	 * Prefetch DNS
	 *
	 * @since 1.7.1 DNS prefetch
	 * @since 5.6.1 DNS preconnect
	 * @access private
	 */
	private function _dns_optm_init() {
		// Widely enable link DNS prefetch
		if (defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_DNS_PREFETCH_CTRL)) {
			@header('X-DNS-Prefetch-Control: on');
		}

		$this->dns_prefetch = $this->conf(self::O_OPTM_DNS_PREFETCH);
		$this->dns_preconnect = $this->conf(self::O_OPTM_DNS_PRECONNECT);
		if (!$this->dns_prefetch && !$this->dns_preconnect) {
			return;
		}

		if (function_exists('wp_resource_hints')) {
			add_filter('wp_resource_hints', array( $this, 'dns_optm_filter' ), 10, 2);
		} else {
			add_action('litespeed_optm', array( $this, 'dns_optm_output' ));
		}
	}

	/**
	 * DNS optm hook for WP
	 *
	 * @since 1.7.1
	 * @access public
	 */
	public function dns_optm_filter( $urls, $relation_type ) {
		if ('dns-prefetch' === $relation_type) {
			foreach ($this->dns_prefetch as $v) {
				if ($v) {
					$urls[] = $v;
				}
			}
		}
		if ('preconnect' === $relation_type) {
			foreach ($this->dns_prefetch as $v) {
				if ($v) {
					$urls[] = $v;
				}
			}
		}

		return $urls;
	}

	/**
	 * DNS optm output directly
	 *
	 * @since 1.7.1 DNS prefetch
	 * @since 5.6.1 DNS preconnect
	 * @access public
	 */
	public function dns_optm_output() {
		foreach ($this->dns_prefetch as $v) {
			if ($v) {
				$this->html_head_early .= '<link rel="dns-prefetch" href="' . Str::trim_quotes($v) . '" />';
			}
		}
		foreach ($this->dns_preconnect as $v) {
			if ($v) {
				$this->html_head_early .= '<link rel="preconnect" href="' . Str::trim_quotes($v) . '" crossorigin />';
			}
		}
	}

	/**
	 * Run minify with src queue list
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _src_queue_handler( $src_list, $html_list, $file_type = 'css' ) {
		$html_list_ori = $html_list;

		$can_webp = $this->cls('Media')->webp_support();

		$tag = $file_type == 'css' ? 'link' : 'script';
		foreach ($src_list as $key => $src_info) {
			// Minify inline CSS/JS
			if (!empty($src_info['inl'])) {
				if ($file_type == 'css') {
					$code = Optimizer::minify_css($src_info['src']);
					$can_webp && ($code = $this->cls('Media')->replace_background_webp($code));
					$snippet = str_replace($src_info['src'], $code, $html_list[$key]);
				} else {
					// Inline defer JS
					if ($this->cfg_js_defer) {
						$attrs   = !empty($src_info['attrs']) ? $src_info['attrs'] : '';
						$snippet = $this->_js_inline_defer($src_info['src'], $attrs) ?: $html_list[$key];
					} else {
						$code    = Optimizer::minify_js($src_info['src']);
						$snippet = str_replace($src_info['src'], $code, $html_list[$key]);
					}
				}
			}
			// CSS/JS files
			else {
				$url = $this->_build_single_hash_url($src_info['src'], $file_type);
				if ($url) {
					$snippet = str_replace($src_info['src'], $url, $html_list[$key]);
				}

				// Handle css async load
				if ($file_type == 'css' && $this->cfg_css_async) {
					$snippet = $this->_async_css($snippet);
				}

				// Handle js defer
				if ($file_type === 'js' && $this->cfg_js_defer) {
					$snippet = $this->_js_defer($snippet, $src_info['src']) ?: $snippet;
				}
			}

			$snippet         = str_replace("<$tag ", '<' . $tag . ' data-optimized="1" ', $snippet);
			$html_list[$key] = $snippet;
		}

		$this->content = str_replace($html_list_ori, $html_list, $this->content);
	}

	/**
	 * Build a single URL mapped filename (This will not save in DB)
	 *
	 * @since  4.0
	 */
	private function _build_single_hash_url( $src, $file_type = 'css' ) {
		$content = $this->__optimizer->load_file($src, $file_type);

		$is_min = $this->__optimizer->is_min($src);

		$content = $this->__optimizer->optm_snippet($content, $file_type, !$is_min, $src);

		$filepath_prefix = $this->_build_filepath_prefix($file_type);

		// Save to file
		$filename    = $filepath_prefix . md5($this->remove_query_strings($src)) . '.' . $file_type;
		$static_file = LITESPEED_STATIC_DIR . $filename;
		File::save($static_file, $content, true);

		// QS is required as $src may contains version info
		$qs_hash = substr(md5($src), -5);
		return LITESPEED_STATIC_URL . "$filename?ver=$qs_hash";
	}

	/**
	 * Generate full URL path with hash for a list of src
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _build_hash_url( $src_list, $file_type = 'css' ) {
		// $url_sensitive = $this->conf( self::O_OPTM_CSS_UNIQUE ) && $file_type == 'css'; // If need to keep unique CSS per URI

		// Replace preserved ESI (before generating hash)
		if ($file_type == 'js') {
			foreach ($src_list as $k => $v) {
				if (empty($v['inl'])) {
					continue;
				}
				$src_list[$k]['src'] = $this->_preserve_esi($v['src']);
			}
		}

		$minify        = $file_type === 'css' ? $this->cfg_css_min : $this->cfg_js_min;
		$filename_info = $this->__optimizer->serve($this->_request_url, $file_type, $minify, $src_list);

		if (!$filename_info) {
			return false; // Failed to generate
		}

		list($filename, $type) = $filename_info;

		// Add cache tag in case later file deleted to avoid lscache served stale non-existed files @since 4.4.1
		Tag::add(Tag::TYPE_MIN . '.' . $filename);

		$qs_hash = substr(md5(self::get_option(self::ITEM_TIMESTAMP_PURGE_CSS)), -5);
		// As filename is already related to filecon md5, no need QS anymore
		$filepath_prefix = $this->_build_filepath_prefix($type);
		return LITESPEED_STATIC_URL . $filepath_prefix . $filename . '?ver=' . $qs_hash;
	}

	/**
	 * Parse js src
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _parse_js() {
		$excludes = apply_filters('litespeed_optimize_js_excludes', $this->conf(self::O_OPTM_JS_EXC));

		$combine_ext_inl = $this->conf(self::O_OPTM_JS_COMB_EXT_INL);
		if (!apply_filters('litespeed_optm_js_comb_ext_inl', true)) {
			self::debug2('js_comb_ext_inl bypassed via litespeed_optm_js_comb_ext_inl filter');
			$combine_ext_inl = false;
		}

		$src_list  = array();
		$html_list = array();

		// V7 added: (?:\r\n?|\n?) to fix replacement leaving empty new line
		$content = preg_replace('#<!--.*-->(?:\r\n?|\n?)#sU', '', $this->content);
		preg_match_all('#<script([^>]*)>(.*)</script>(?:\r\n?|\n?)#isU', $content, $matches, PREG_SET_ORDER);
		foreach ($matches as $match) {
			$attrs = empty($match[1]) ? array() : Utility::parse_attr($match[1]);

			if (isset($attrs['data-optimized'])) {
				continue;
			}
			if (!empty($attrs['data-no-optimize'])) {
				continue;
			}
			if (!empty($attrs['data-cfasync']) && $attrs['data-cfasync'] === 'false') {
				continue;
			}
			if (!empty($attrs['type']) && $attrs['type'] != 'text/javascript') {
				continue;
			}

			// to avoid multiple replacement
			if (in_array($match[0], $html_list)) {
				continue;
			}

			$this_src_arr = array();
			// JS files
			if (!empty($attrs['src'])) {
				// Exclude check
				$js_excluded  = Utility::str_hit_array($attrs['src'], $excludes);
				$is_internal  = Utility::is_internal_file($attrs['src']);
				$is_file      = substr($attrs['src'], 0, 5) != 'data:';
				$ext_excluded = !$combine_ext_inl && !$is_internal;
				if ($js_excluded || $ext_excluded || !$is_file) {
					// Maybe defer
					if ($this->cfg_js_defer) {
						$deferred = $this->_js_defer($match[0], $attrs['src']);
						if ($deferred) {
							$this->content = str_replace($match[0], $deferred, $this->content);
						}
					}

					self::debug2('_parse_js bypassed due to ' . ($js_excluded ? 'js files excluded [hit] ' . $js_excluded : 'external js'));
					continue;
				}

				if (strpos($attrs['src'], '/localres/') !== false) {
					continue;
				}

				if (strpos($attrs['src'], 'instant_click') !== false) {
					continue;
				}

				$this_src_arr['src'] = $attrs['src'];
			}
			// Inline JS
			elseif (!empty($match[2])) {
				// self::debug( '🌹🌹🌹 ' . $match[2] . '🌹' );
				// Exclude check
				$js_excluded = Utility::str_hit_array($match[2], $excludes);
				if ($js_excluded || !$combine_ext_inl) {
					// Maybe defer
					if ($this->cfg_js_defer) {
						$deferred = $this->_js_inline_defer($match[2], $match[1]);
						if ($deferred) {
							$this->content = str_replace($match[0], $deferred, $this->content);
						}
					}
					self::debug2('_parse_js bypassed due to ' . ($js_excluded ? 'js excluded [hit] ' . $js_excluded : 'inline js'));
					continue;
				}

				$this_src_arr['inl'] = true;
				$this_src_arr['src'] = $match[2];
				if ($match[1]) {
					$this_src_arr['attrs'] = $match[1];
				}
			} else {
				// Compatibility to those who changed src to data-src already
				self::debug2('No JS src or inline JS content');
				continue;
			}

			$src_list[]  = $this_src_arr;
			$html_list[] = $match[0];
		}

		return array( $src_list, $html_list );
	}

	/**
	 * Inline JS defer
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _js_inline_defer( $con, $attrs = false, $minified = false ) {
		if (strpos($attrs, 'data-no-defer') !== false) {
			self::debug2('bypass: attr api data-no-defer');
			return false;
		}

		$hit = Utility::str_hit_array($con, $this->cfg_js_defer_exc);
		if ($hit) {
			self::debug2('inline js defer excluded [setting] ' . $hit);
			return false;
		}

		$con = trim($con);
		// Minify JS first
		if (!$minified) {
			// && $this->cfg_js_defer !== 2
			$con = Optimizer::minify_js($con);
		}

		if (!$con) {
			return false;
		}

		// Check if the content contains ESI nonce or not
		$con = $this->_preserve_esi($con);

		if ($this->cfg_js_defer === 2) {
			// Drop type attribute from $attrs
			if (strpos($attrs, ' type=') !== false) {
				$attrs = preg_replace('# type=([\'"])([^\1]+)\1#isU', '', $attrs);
			}
			// Replace DOMContentLoaded
			$con = str_replace('DOMContentLoaded', 'DOMContentLiteSpeedLoaded', $con);
			return '<script' . $attrs . ' type="litespeed/javascript">' . $con . '</script>';
			// return '<script' . $attrs . ' type="litespeed/javascript" src="data:text/javascript;base64,' . base64_encode( $con ) . '"></script>';
			// return '<script' . $attrs . ' type="litespeed/javascript">' . $con . '</script>';
		}

		return '<script' . $attrs . ' src="data:text/javascript;base64,' . base64_encode($con) . '" defer></script>';
	}

	/**
	 * Replace ESI to JS inline var (mainly used to avoid nonce timeout)
	 *
	 * @since  3.5.1
	 */
	private function _preserve_esi( $con ) {
		$esi_placeholder_list = $this->cls('ESI')->contain_preserve_esi($con);
		if (!$esi_placeholder_list) {
			return $con;
		}

		foreach ($esi_placeholder_list as $esi_placeholder) {
			$js_var                   = '__litespeed_var_' . self::$_var_i++ . '__';
			$con                      = str_replace($esi_placeholder, $js_var, $con);
			$this->_var_preserve_js[] = $js_var . '=' . $esi_placeholder;
		}

		return $con;
	}

	/**
	 * Parse css src and remove to-be-removed css
	 *
	 * @since  1.2.2
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_css() {
		$excludes             = apply_filters('litespeed_optimize_css_excludes', $this->conf(self::O_OPTM_CSS_EXC));
		$ucss_file_exc_inline = apply_filters('litespeed_optimize_ucss_file_exc_inline', $this->conf(self::O_OPTM_UCSS_FILE_EXC_INLINE));

		// Append dummy css to exclude list
		$excludes[] = 'litespeed-dummy.css';

		$combine_ext_inl = $this->conf(self::O_OPTM_CSS_COMB_EXT_INL);
		if (!apply_filters('litespeed_optm_css_comb_ext_inl', true)) {
			self::debug2('css_comb_ext_inl bypassed via litespeed_optm_css_comb_ext_inl filter');
			$combine_ext_inl = false;
		}

		$css_to_be_removed = apply_filters('litespeed_optm_css_to_be_removed', array());

		$src_list  = array();
		$html_list = array();

		// $dom = new \PHPHtmlParser\Dom;
		// $dom->load( $content );return $val;
		// $items = $dom->find( 'link' );

		// V7 added: (?:\r\n?|\n?) to fix replacement leaving empty new line
		$content = preg_replace(
			array( '#<!--.*-->(?:\r\n?|\n?)#sU', '#<script([^>]*)>.*</script>(?:\r\n?|\n?)#isU', '#<noscript([^>]*)>.*</noscript>(?:\r\n?|\n?)#isU' ),
			'',
			$this->content
		);
		preg_match_all('#<link ([^>]+)/?>|<style([^>]*)>([^<]+)</style>(?:\r\n?|\n?)#isU', $content, $matches, PREG_SET_ORDER);

		foreach ($matches as $match) {
			// to avoid multiple replacement
			if (in_array($match[0], $html_list)) {
				continue;
			}

			if ($exclude = Utility::str_hit_array($match[0], $excludes)) {
				self::debug2('_parse_css bypassed exclude ' . $exclude);
				continue;
			}

			$this_src_arr = array();
			if (strpos($match[0], '<link') === 0) {
				$attrs = Utility::parse_attr($match[1]);
				if (empty($attrs['rel']) || $attrs['rel'] !== 'stylesheet') {
					continue;
				}
				if (empty($attrs['href'])) {
					continue;
				}

				// Check if need to remove this css
				if (Utility::str_hit_array($attrs['href'], $css_to_be_removed)) {
					self::debug('rm css snippet ' . $attrs['href']);
					// Delete this css snippet from orig html
					$this->content = str_replace($match[0], '', $this->content);

					continue;
				}

				// Check if need to inline this css file
				if ($this->conf(self::O_OPTM_UCSS) && Utility::str_hit_array($attrs['href'], $ucss_file_exc_inline)) {
					self::debug('ucss_file_exc_inline hit ' . $attrs['href']);
					// Replace this css to inline from orig html
					$inline_script = '<style>' . $this->__optimizer->load_file($attrs['href']) . '</style>';
					$this->content = str_replace($match[0], $inline_script, $this->content);

					continue;
				}

				// Check Google fonts hit
				if (strpos($attrs['href'], 'fonts.googleapis.com') !== false) {
					/**
					 * For async gg fonts, will add webfont into head, hence remove it from buffer and store the matches to use later
					 *
					 * @since  2.7.3
					 * @since  3.0 For font display optm, need to parse google fonts URL too
					 */
					if (!in_array($attrs['href'], $this->_ggfonts_urls)) {
						$this->_ggfonts_urls[] = $attrs['href'];
					}

					if ($this->cfg_ggfonts_rm || $this->cfg_ggfonts_async) {
						self::debug('rm css snippet [Google fonts] ' . $attrs['href']);
						$this->content = str_replace($match[0], '', $this->content);

						continue;
					}
				}

				if (isset($attrs['data-optimized'])) {
					// $this_src_arr[ 'exc' ] = true;
					continue;
				} elseif (!empty($attrs['data-no-optimize'])) {
					// $this_src_arr[ 'exc' ] = true;
					continue;
				}

				$is_internal  = Utility::is_internal_file($attrs['href']);
				$ext_excluded = !$combine_ext_inl && !$is_internal;
				if ($ext_excluded) {
					self::debug2('Bypassed due to external link');
					// Maybe defer
					if ($this->cfg_css_async) {
						$snippet = $this->_async_css($match[0]);
						if ($snippet != $match[0]) {
							$this->content = str_replace($match[0], $snippet, $this->content);
						}
					}

					continue;
				}

				if (!empty($attrs['media']) && $attrs['media'] !== 'all') {
					$this_src_arr['media'] = $attrs['media'];
				}

				$this_src_arr['src'] = $attrs['href'];
			} else {
				// Inline style
				if (!$combine_ext_inl) {
					self::debug2('Bypassed due to inline');
					continue;
				}

				$attrs = Utility::parse_attr($match[2]);

				if (!empty($attrs['data-no-optimize'])) {
					continue;
				}

				if (!empty($attrs['media']) && $attrs['media'] !== 'all') {
					$this_src_arr['media'] = $attrs['media'];
				}

				$this_src_arr['inl'] = true;
				$this_src_arr['src'] = $match[3];
			}

			$src_list[] = $this_src_arr;

			$html_list[] = $match[0];
		}

		return array( $src_list, $html_list );
	}

	/**
	 * Replace css to async loaded css
	 *
	 * @since  1.3
	 * @access private
	 */
	private function _async_css_list( $html_list, $src_list ) {
		foreach ($html_list as $k => $ori) {
			if (!empty($src_list[$k]['inl'])) {
				continue;
			}

			$html_list[$k] = $this->_async_css($ori);
		}
		return $html_list;
	}

	/**
	 * Async CSS snippet
	 *
	 * @since 3.5
	 */
	private function _async_css( $ori ) {
		if (strpos($ori, 'data-asynced') !== false) {
			self::debug2('bypass: attr data-asynced exist');
			return $ori;
		}

		if (strpos($ori, 'data-no-async') !== false) {
			self::debug2('bypass: attr api data-no-async');
			return $ori;
		}

		// async replacement
		$v = str_replace('stylesheet', 'preload', $ori);
		$v = str_replace('<link', '<link data-asynced="1" as="style" onload="this.onload=null;this.rel=\'stylesheet\'" ', $v);
		// Append to noscript content
		if (!defined('LITESPEED_GUEST_OPTM') && !$this->conf(self::O_OPTM_NOSCRIPT_RM)) {
			$v .= '<noscript>' . preg_replace('/ id=\'[\w-]+\' /U', ' ', $ori) . '</noscript>';
		}

		return $v;
	}

	/**
	 * Defer JS snippet
	 *
	 * @since  3.5
	 */
	private function _js_defer( $ori, $src ) {
		if (strpos($ori, ' async') !== false) {
			$ori = preg_replace('# async(?:=([\'"])(?:[^\1]*?)\1)?#is', '', $ori);
		}

		if (strpos($ori, 'defer') !== false) {
			return false;
		}
		if (strpos($ori, 'data-deferred') !== false) {
			self::debug2('bypass: attr data-deferred exist');
			return false;
		}
		if (strpos($ori, 'data-no-defer') !== false) {
			self::debug2('bypass: attr api data-no-defer');
			return false;
		}

		/**
		 * Exclude JS from setting
		 *
		 * @since 1.5
		 */
		if (Utility::str_hit_array($src, $this->cfg_js_defer_exc)) {
			self::debug('js defer exclude ' . $src);
			return false;
		}

		if ($this->cfg_js_defer === 2 || Utility::str_hit_array($src, $this->cfg_js_delay_inc)) {
			if (strpos($ori, ' type=') !== false) {
				$ori = preg_replace('# type=([\'"])([^\1]+)\1#isU', '', $ori);
			}
			return str_replace(' src=', ' type="litespeed/javascript" data-src=', $ori);
		}

		return str_replace('></script>', ' defer data-deferred="1"></script>', $ori);
	}

	/**
	 * Delay JS for included setting
	 *
	 * @since 5.6
	 */
	private function _js_delay( $ori, $src ) {
		if (strpos($ori, ' async') !== false) {
			$ori = str_replace(' async', '', $ori);
		}

		if (strpos($ori, 'defer') !== false) {
			return false;
		}
		if (strpos($ori, 'data-deferred') !== false) {
			self::debug2('bypass: attr data-deferred exist');
			return false;
		}
		if (strpos($ori, 'data-no-defer') !== false) {
			self::debug2('bypass: attr api data-no-defer');
			return false;
		}

		if (!Utility::str_hit_array($src, $this->cfg_js_delay_inc)) {
			return;
		}

		if (strpos($ori, ' type=') !== false) {
			$ori = preg_replace('# type=([\'"])([^\1]+)\1#isU', '', $ori);
		}
		return str_replace(' src=', ' type="litespeed/javascript" data-src=', $ori);
	}
}
<?php

/**
 * The viewport image class.
 *
 * @since       4.7
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class VPI extends Base {

	const LOG_TAG = '[VPI]';

	const TYPE_GEN     = 'gen';
	const TYPE_CLEAR_Q = 'clear_q';

	protected $_summary;
	private $_queue;

	/**
	 * Init
	 *
	 * @since  4.7
	 */
	public function __construct() {
		$this->_summary = self::get_summary();
	}

	/**
	 * The VPI content of the current page
	 *
	 * @since  4.7
	 */
	public function add_to_queue() {
		$is_mobile = $this->_separate_mobile();

		global $wp;
		$request_url = home_url($wp->request);

		if (!apply_filters('litespeed_vpi_should_queue', true, $request_url)) {
			return;
		}

		$ua = !empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';

		// Store it to prepare for cron
		$this->_queue = $this->load_queue('vpi');

		if (count($this->_queue) > 500) {
			self::debug('Queue is full - 500');
			return;
		}

		$home_id = get_option('page_for_posts');

		if (!is_singular() && !($home_id > 0 && is_home())) {
			self::debug('not single post ID');
			return;
		}

		$post_id = is_home() ? $home_id : get_the_ID();

		$queue_k = ($is_mobile ? 'mobile' : '') . ' ' . $request_url;
		if (!empty($this->_queue[$queue_k])) {
			self::debug('queue k existed ' . $queue_k);
			return;
		}

		$this->_queue[$queue_k] = array(
			'url' => apply_filters('litespeed_vpi_url', $request_url),
			'post_id' => $post_id,
			'user_agent' => substr($ua, 0, 200),
			'is_mobile' => $this->_separate_mobile(),
		); // Current UA will be used to request
		$this->save_queue('vpi', $this->_queue);
		self::debug('Added queue_vpi [url] ' . $queue_k . ' [UA] ' . $ua);

		// Prepare cache tag for later purge
		Tag::add('VPI.' . md5($queue_k));

		return null;
	}

	/**
	 * Notify finished from server
	 *
	 * @since 4.7
	 */
	public function notify() {
		$post_data = \json_decode(file_get_contents('php://input'), true);
		if (is_null($post_data)) {
			$post_data = $_POST;
		}
		self::debug('notify() data', $post_data);

		$this->_queue = $this->load_queue('vpi');

		list($post_data) = $this->cls('Cloud')->extract_msg($post_data, 'vpi');

		$notified_data = $post_data['data'];
		if (empty($notified_data) || !is_array($notified_data)) {
			self::debug('❌ notify exit: no notified data');
			return Cloud::err('no notified data');
		}

		// Check if its in queue or not
		$valid_i = 0;
		foreach ($notified_data as $v) {
			if (empty($v['request_url'])) {
				self::debug('❌ notify bypass: no request_url', $v);
				continue;
			}
			if (empty($v['queue_k'])) {
				self::debug('❌ notify bypass: no queue_k', $v);
				continue;
			}
			// $queue_k = ( $is_mobile ? 'mobile' : '' ) . ' ' . $v[ 'request_url' ];
			$queue_k = $v['queue_k'];

			if (empty($this->_queue[$queue_k])) {
				self::debug('❌ notify bypass: no this queue [q_k]' . $queue_k);
				continue;
			}

			// Save data
			if (!empty($v['data_vpi'])) {
				$post_id   = $this->_queue[$queue_k]['post_id'];
				$name      = !empty($v['is_mobile']) ? 'litespeed_vpi_list_mobile' : 'litespeed_vpi_list';
				$urldecode = is_array($v['data_vpi']) ? array_map('urldecode', $v['data_vpi']) : urldecode($v['data_vpi']);
				self::debug('save data_vpi', $urldecode);
				$this->cls('Metabox')->save($post_id, $name, $urldecode);

				++$valid_i;
			}

			unset($this->_queue[$queue_k]);
			self::debug('notify data handled, unset queue [q_k] ' . $queue_k);
		}
		$this->save_queue('vpi', $this->_queue);

		self::debug('notified');

		return Cloud::ok(array( 'count' => $valid_i ));
	}

	/**
	 * Cron
	 *
	 * @since  4.7
	 */
	public static function cron( $continue = false ) {
		$_instance = self::cls();
		return $_instance->_cron_handler($continue);
	}

	/**
	 * Cron generation
	 *
	 * @since  4.7
	 */
	private function _cron_handler( $continue = false ) {
		self::debug('cron start');
		$this->_queue = $this->load_queue('vpi');

		if (empty($this->_queue)) {
			return;
		}

		// For cron, need to check request interval too
		if (!$continue) {
			if (!empty($this->_summary['curr_request_vpi']) && time() - $this->_summary['curr_request_vpi'] < 300 && !$this->conf(self::O_DEBUG)) {
				self::debug('Last request not done');
				return;
			}
		}

		$i = 0;
		foreach ($this->_queue as $k => $v) {
			if (!empty($v['_status'])) {
				continue;
			}

			self::debug('cron job [tag] ' . $k . ' [url] ' . $v['url'] . ($v['is_mobile'] ? ' 📱 ' : '') . ' [UA] ' . $v['user_agent']);

			++$i;
			$res = $this->_send_req($v['url'], $k, $v['user_agent'], $v['is_mobile']);
			if (!$res) {
				// Status is wrong, drop this this->_queue
				$this->_queue = $this->load_queue('vpi');
				unset($this->_queue[$k]);
				$this->save_queue('vpi', $this->_queue);

				if (!$continue) {
					return;
				}

				// if ( $i > 3 ) {
				GUI::print_loading(count($this->_queue), 'VPI');
				return Router::self_redirect(Router::ACTION_VPI, self::TYPE_GEN);
				// }

				continue;
			}

			// Exit queue if out of quota or service is hot
			if ($res === 'out_of_quota' || $res === 'svc_hot') {
				return;
			}

			$this->_queue                = $this->load_queue('vpi');
			$this->_queue[$k]['_status'] = 'requested';
			$this->save_queue('vpi', $this->_queue);
			self::debug('Saved to queue [k] ' . $k);

			// only request first one
			if (!$continue) {
				return;
			}

			// if ( $i > 3 ) {
			GUI::print_loading(count($this->_queue), 'VPI');
			return Router::self_redirect(Router::ACTION_VPI, self::TYPE_GEN);
			// }
		}
	}

	/**
	 * Send to QC API to generate VPI
	 *
	 * @since  4.7
	 * @access private
	 */
	private function _send_req( $request_url, $queue_k, $user_agent, $is_mobile ) {
		$svc = Cloud::SVC_VPI;
		// Check if has credit to push or not
		$err       = false;
		$allowance = $this->cls('Cloud')->allowance($svc, $err);
		if (!$allowance) {
			self::debug('❌ No credit: ' . $err);
			$err && Admin_Display::error(Error::msg($err));
			return 'out_of_quota';
		}

		set_time_limit(120);

		// Update css request status
		self::save_summary(array( 'curr_request_vpi' => time() ), true);

		// Gather guest HTML to send
		$html = $this->cls('CSS')->prepare_html($request_url, $user_agent);

		if (!$html) {
			return false;
		}

		// Parse HTML to gather all CSS content before requesting
		$css              = false;
		list($css, $html) = $this->cls('CSS')->prepare_css($html);

		if (!$css) {
			self::debug('❌ No css');
			return false;
		}

		$data = array(
			'url' => $request_url,
			'queue_k' => $queue_k,
			'user_agent' => $user_agent,
			'is_mobile' => $is_mobile ? 1 : 0, // todo:compatible w/ tablet
			'html' => $html,
			'css' => $css,
		);
		self::debug('Generating: ', $data);

		$json = Cloud::post($svc, $data, 30);
		if (!is_array($json)) {
			return $json;
		}

		// Unknown status, remove this line
		if ($json['status'] != 'queued') {
			return false;
		}

		// Save summary data
		self::reload_summary();
		$this->_summary['last_spent_vpi']   = time() - $this->_summary['curr_request_vpi'];
		$this->_summary['last_request_vpi'] = $this->_summary['curr_request_vpi'];
		$this->_summary['curr_request_vpi'] = 0;
		self::save_summary();

		return true;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  4.7
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_GEN:
            self::cron(true);
				break;

			case self::TYPE_CLEAR_Q:
            $this->clear_q('vpi');
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The plugin cache-control class for X-Litespeed-Cache-Control
 *
 * @since       1.1.3
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Control extends Root {

	const LOG_TAG = '💵';

	const BM_CACHEABLE        = 1;
	const BM_PRIVATE          = 2;
	const BM_SHARED           = 4;
	const BM_NO_VARY          = 8;
	const BM_FORCED_CACHEABLE = 32;
	const BM_PUBLIC_FORCED    = 64;
	const BM_STALE            = 128;
	const BM_NOTCACHEABLE     = 256;

	const X_HEADER = 'X-LiteSpeed-Cache-Control';

	protected static $_control    = 0;
	protected static $_custom_ttl = 0;

	private $_response_header_ttls = array();

	/**
	 * Init cache control
	 *
	 * @since  1.6.2
	 */
	public function init() {
		/**
		 * Add vary filter for Role Excludes
		 *
		 * @since  1.6.2
		 */
		add_filter('litespeed_vary', array( $this, 'vary_add_role_exclude' ));

		// 301 redirect hook
		add_filter('wp_redirect', array( $this, 'check_redirect' ), 10, 2);

		// Load response header conf
		$this->_response_header_ttls = $this->conf(Base::O_CACHE_TTL_STATUS);
		foreach ($this->_response_header_ttls as $k => $v) {
			$v = explode(' ', $v);
			if (empty($v[0]) || empty($v[1])) {
				continue;
			}
			$this->_response_header_ttls[$v[0]] = $v[1];
		}

		if ($this->conf(Base::O_PURGE_STALE)) {
			$this->set_stale();
		}
	}

	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function vary_add_role_exclude( $vary ) {
		if ($this->in_cache_exc_roles()) {
			$vary['role_exclude_cache'] = 1;
		}

		return $vary;
	}

	/**
	 * Check if one user role is in exclude cache group settings
	 *
	 * @since 1.6.2
	 * @since 3.0 Moved here from conf.cls
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_cache_exc_roles( $role = null ) {
		// Get user role
		if ($role === null) {
			$role = Router::get_role();
		}

		if (!$role) {
			return false;
		}

		$roles = explode(',', $role);
		$found = array_intersect($roles, $this->conf(Base::O_CACHE_EXC_ROLES));

		return $found ? implode(',', $found) : false;
	}

	/**
	 * 1. Initialize cacheable status for `wp` hook
	 * 2. Hook error page tags for cacheable pages
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function init_cacheable() {
		// Hook `wp` to mark default cacheable status
		// NOTE: Any process that does NOT run into `wp` hook will not get cacheable by default
		add_action('wp', array( $this, 'set_cacheable' ), 5);

		// Hook WP REST to be cacheable
		if ($this->conf(Base::O_CACHE_REST)) {
			add_action('rest_api_init', array( $this, 'set_cacheable' ), 5);
		}

		// AJAX cache
		$ajax_cache = $this->conf(Base::O_CACHE_AJAX_TTL);
		foreach ($ajax_cache as $v) {
			$v = explode(' ', $v);
			if (empty($v[0]) || empty($v[1])) {
				continue;
			}
			// self::debug("Initializing cacheable status for wp_ajax_nopriv_" . $v[0]);
			add_action(
				'wp_ajax_nopriv_' . $v[0],
				function () use ( $v ) {
					self::set_custom_ttl($v[1]);
					self::force_cacheable('ajax Cache setting for action ' . $v[0]);
				},
				4
			);
		}

		// Check error page
		add_filter('status_header', array( $this, 'check_error_codes' ), 10, 2);
	}

	/**
	 * Check if the page returns any error code.
	 *
	 * @since 1.0.13.1
	 * @access public
	 * @param $status_header
	 * @param $code
	 * @return $error_status
	 */
	public function check_error_codes( $status_header, $code ) {
		if (array_key_exists($code, $this->_response_header_ttls)) {
			if (self::is_cacheable() && !$this->_response_header_ttls[$code]) {
				self::set_nocache('[Ctrl] TTL is set to no cache [status_header] ' . $code);
			}

			// Set TTL
			self::set_custom_ttl($this->_response_header_ttls[$code]);
		} elseif (self::is_cacheable()) {
			if (substr($code, 0, 1) == 4 || substr($code, 0, 1) == 5) {
				self::set_nocache('[Ctrl] 4xx/5xx default to no cache [status_header] ' . $code);
			}
		}

		// Set cache tag
		if (in_array($code, Tag::$error_code_tags)) {
			Tag::add(Tag::TYPE_HTTP . $code);
		}

		// Give the default status_header back
		return $status_header;
	}

	/**
	 * Set no vary setting
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function set_no_vary() {
		if (self::is_no_vary()) {
			return;
		}
		self::$_control |= self::BM_NO_VARY;
		self::debug('X Cache_control -> no-vary', 3);
	}

	/**
	 * Get no vary setting
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_no_vary() {
		return self::$_control & self::BM_NO_VARY;
	}

	/**
	 * Set stale
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function set_stale() {
		if (self::is_stale()) {
			return;
		}
		self::$_control |= self::BM_STALE;
		self::debug('X Cache_control -> stale');
	}

	/**
	 * Get stale
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_stale() {
		return self::$_control & self::BM_STALE;
	}

	/**
	 * Set cache control to shared private
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_shared( $reason = false ) {
		if (self::is_shared()) {
			return;
		}
		self::$_control |= self::BM_SHARED;
		self::set_private();

		if (!is_string($reason)) {
			$reason = false;
		}

		if ($reason) {
			$reason = "( $reason )";
		}
		self::debug('X Cache_control -> shared ' . $reason);
	}

	/**
	 * Check if is shared private
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_shared() {
		return self::$_control & self::BM_SHARED && self::is_private();
	}

	/**
	 * Set cache control to forced public
	 *
	 * @access public
	 * @since 1.7.1
	 */
	public static function set_public_forced( $reason = false ) {
		if (self::is_public_forced()) {
			return;
		}
		self::$_control |= self::BM_PUBLIC_FORCED;

		if (!is_string($reason)) {
			$reason = false;
		}

		if ($reason) {
			$reason = "( $reason )";
		}
		self::debug('X Cache_control -> public forced ' . $reason);
	}

	/**
	 * Check if is public forced
	 *
	 * @access public
	 * @since 1.7.1
	 */
	public static function is_public_forced() {
		return self::$_control & self::BM_PUBLIC_FORCED;
	}

	/**
	 * Set cache control to private
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_private( $reason = false ) {
		if (self::is_private()) {
			return;
		}
		self::$_control |= self::BM_PRIVATE;

		if (!is_string($reason)) {
			$reason = false;
		}

		if ($reason) {
			$reason = "( $reason )";
		}
		self::debug('X Cache_control -> private ' . $reason);
	}

	/**
	 * Check if is private
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_private() {
		if (defined('LITESPEED_GUEST') && LITESPEED_GUEST) {
			// return false;
		}

		return self::$_control & self::BM_PRIVATE && !self::is_public_forced();
	}

	/**
	 * Initialize cacheable status in `wp` hook, if not call this, by default it will be non-cacheable
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function set_cacheable( $reason = false ) {
		self::$_control |= self::BM_CACHEABLE;

		if (!is_string($reason)) {
			$reason = false;
		}

		if ($reason) {
			$reason = ' [reason] ' . $reason;
		}
		self::debug('Cache_control init on' . $reason);
	}

	/**
	 * This will disable non-cacheable BM
	 *
	 * @access public
	 * @since 2.2
	 */
	public static function force_cacheable( $reason = false ) {
		self::$_control |= self::BM_FORCED_CACHEABLE;

		if (!is_string($reason)) {
			$reason = false;
		}

		if ($reason) {
			$reason = ' [reason] ' . $reason;
		}
		self::debug('Forced cacheable' . $reason);
	}

	/**
	 * Switch to nocacheable status
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_nocache( $reason = false ) {
		self::$_control |= self::BM_NOTCACHEABLE;

		if (!is_string($reason)) {
			$reason = false;
		}

		if ($reason) {
			$reason = "( $reason )";
		}
		self::debug('X Cache_control -> no Cache ' . $reason, 5);
	}

	/**
	 * Check current notcacheable bit set
	 *
	 * @access public
	 * @since 1.1.3
	 * @return bool True if notcacheable bit is set, otherwise false.
	 */
	public static function isset_notcacheable() {
		return self::$_control & self::BM_NOTCACHEABLE;
	}

	/**
	 * Check current force cacheable bit set
	 *
	 * @access public
	 * @since   2.2
	 */
	public static function is_forced_cacheable() {
		return self::$_control & self::BM_FORCED_CACHEABLE;
	}

	/**
	 * Check current cacheable status
	 *
	 * @access public
	 * @since 1.1.3
	 * @return bool True if is still cacheable, otherwise false.
	 */
	public static function is_cacheable() {
		if (defined('LSCACHE_NO_CACHE') && LSCACHE_NO_CACHE) {
			self::debug('LSCACHE_NO_CACHE constant defined');
			return false;
		}

		// Guest mode always cacheable
		if (defined('LITESPEED_GUEST') && LITESPEED_GUEST) {
			// return true;
		}

		// If its forced public cacheable
		if (self::is_public_forced()) {
			return true;
		}

		// If its forced cacheable
		if (self::is_forced_cacheable()) {
			return true;
		}

		return !self::isset_notcacheable() && self::$_control & self::BM_CACHEABLE;
	}

	/**
	 * Set a custom TTL to use with the request if needed.
	 *
	 * @access public
	 * @since 1.1.3
	 * @param mixed $ttl An integer or string to use as the TTL. Must be numeric.
	 */
	public static function set_custom_ttl( $ttl, $reason = false ) {
		if (is_numeric($ttl)) {
			self::$_custom_ttl = $ttl;
			self::debug('X Cache_control TTL -> ' . $ttl . ($reason ? ' [reason] ' . $ttl : ''));
		}
	}

	/**
	 * Generate final TTL.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function get_ttl() {
		if (self::$_custom_ttl != 0) {
			return self::$_custom_ttl;
		}

		// Check if is in timed url list or not
		$timed_urls      = Utility::wildcard2regex($this->conf(Base::O_PURGE_TIMED_URLS));
		$timed_urls_time = $this->conf(Base::O_PURGE_TIMED_URLS_TIME);
		if ($timed_urls && $timed_urls_time) {
			$current_url = Tag::build_uri_tag(true);
			// Use time limit ttl
			$scheduled_time = strtotime($timed_urls_time);
			$ttl            = $scheduled_time - time();
			if ($ttl < 0) {
				$ttl += 86400; // add one day
			}
			foreach ($timed_urls as $v) {
				if (strpos($v, '*') !== false) {
					if (preg_match('#' . $v . '#iU', $current_url)) {
						self::debug('X Cache_control TTL is limited to ' . $ttl . ' due to scheduled purge regex ' . $v);
						return $ttl;
					}
				} elseif ($v == $current_url) {
					self::debug('X Cache_control TTL is limited to ' . $ttl . ' due to scheduled purge rule ' . $v);
					return $ttl;
				}
			}
		}

		// Private cache uses private ttl setting
		if (self::is_private()) {
			return $this->conf(Base::O_CACHE_TTL_PRIV);
		}

		if (is_front_page()) {
			return $this->conf(Base::O_CACHE_TTL_FRONTPAGE);
		}

		$feed_ttl = $this->conf(Base::O_CACHE_TTL_FEED);
		if (is_feed() && $feed_ttl > 0) {
			return $feed_ttl;
		}

		if ($this->cls('REST')->is_rest() || $this->cls('REST')->is_internal_rest()) {
			return $this->conf(Base::O_CACHE_TTL_REST);
		}

		return $this->conf(Base::O_CACHE_TTL_PUB);
	}

	/**
	 * Check if need to set no cache status for redirection or not
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function check_redirect( $location, $status ) {
		// TODO: some env don't have SCRIPT_URI but only REQUEST_URI, need to be compatible
		if (!empty($_SERVER['SCRIPT_URI'])) {
			// dont check $status == '301' anymore
			self::debug('301 from ' . $_SERVER['SCRIPT_URI']);
			self::debug("301 to $location");

			$to_check = array( PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PATH, PHP_URL_QUERY );

			$is_same_redirect = true;

			foreach ($to_check as $v) {
				$url_parsed = $v == PHP_URL_QUERY ? $_SERVER['QUERY_STRING'] : parse_url($_SERVER['SCRIPT_URI'], $v);
				$target     = parse_url($location, $v);

				self::debug("Compare [from] $url_parsed [to] $target");

				if ($v == PHP_URL_QUERY) {
					$url_parsed = $url_parsed ? urldecode($url_parsed) : '';
					$target     = $target ? urldecode($target) : '';
					if (substr($url_parsed, -1) == '&') {
						$url_parsed = substr($url_parsed, 0, -1);
					}
				}

				if ($url_parsed != $target) {
					$is_same_redirect = false;
					self::debug('301 different redirection');
					break;
				}
			}

			if ($is_same_redirect) {
				self::set_nocache('301 to same url');
			}
		}

		return $location;
	}

	/**
	 * Sets up the Cache Control header.
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string empty string if empty, otherwise the cache control header.
	 */
	public function output() {
		$esi_hdr = '';
		if (ESI::has_esi()) {
			$esi_hdr = ',esi=on';
		}

		$hdr = self::X_HEADER . ': ';

		if (defined('DONOTCACHEPAGE') && apply_filters('litespeed_const_DONOTCACHEPAGE', DONOTCACHEPAGE)) {
			self::debug('❌ forced no cache [reason] DONOTCACHEPAGE const');
			$hdr .= 'no-cache' . $esi_hdr;
			return $hdr;
		}

		// Guest mode directly return cacheable result
		// if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST ) {
		// If is POST, no cache
		// if ( defined( 'LSCACHE_NO_CACHE' ) && LSCACHE_NO_CACHE ) {
		// self::debug( "[Ctrl] ❌ forced no cache [reason] LSCACHE_NO_CACHE const" );
		// $hdr .= 'no-cache';
		// }
		// else if( $_SERVER[ 'REQUEST_METHOD' ] !== 'GET' ) {
		// self::debug( "[Ctrl] ❌ forced no cache [reason] req not GET" );
		// $hdr .= 'no-cache';
		// }
		// else {
		// $hdr .= 'public';
		// $hdr .= ',max-age=' . $this->get_ttl();
		// }

		// $hdr .= $esi_hdr;

		// return $hdr;
		// }

		// Fix cli `uninstall --deactivate` fatal err

		if (!self::is_cacheable()) {
			$hdr .= 'no-cache' . $esi_hdr;
			return $hdr;
		}

		if (self::is_shared()) {
			$hdr .= 'shared,private';
		} elseif (self::is_private()) {
			$hdr .= 'private';
		} else {
			$hdr .= 'public';
		}

		if (self::is_no_vary()) {
			$hdr .= ',no-vary';
		}

		$hdr .= ',max-age=' . $this->get_ttl() . $esi_hdr;
		return $hdr;
	}

	/**
	 * Generate all `control` tags before output
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function finalize() {
		if (defined('LITESPEED_GUEST') && LITESPEED_GUEST) {
			// return;
		}

		if (is_preview()) {
			self::set_nocache('preview page');
			return;
		}

		// Check if has metabox non-cacheable setting or not
		if (file_exists(LSCWP_DIR . 'src/metabox.cls.php') && $this->cls('Metabox')->setting('litespeed_no_cache')) {
			self::set_nocache('per post metabox setting');
			return;
		}

		// Check if URI is forced public cache
		$excludes = $this->conf(Base::O_CACHE_FORCE_PUB_URI);
		$hit      = Utility::str_hit_array($_SERVER['REQUEST_URI'], $excludes, true);
		if ($hit) {
			list($result, $this_ttl) = $hit;
			self::set_public_forced('Setting: ' . $result);
			self::debug('Forced public cacheable due to setting: ' . $result);
			if ($this_ttl) {
				self::set_custom_ttl($this_ttl);
			}
		}

		if (self::is_public_forced()) {
			return;
		}

		// Check if URI is forced cache
		$excludes = $this->conf(Base::O_CACHE_FORCE_URI);
		$hit      = Utility::str_hit_array($_SERVER['REQUEST_URI'], $excludes, true);
		if ($hit) {
			list($result, $this_ttl) = $hit;
			self::force_cacheable();
			self::debug('Forced cacheable due to setting: ' . $result);
			if ($this_ttl) {
				self::set_custom_ttl($this_ttl);
			}
		}

		// if is not cacheable, terminate check
		// Even no need to run 3rd party hook
		if (!self::is_cacheable()) {
			self::debug('not cacheable before ctrl finalize');
			return;
		}

		// Apply 3rd party filter
		// NOTE: Hook always needs to run asap because some 3rd party set is_mobile in this hook
		do_action('litespeed_control_finalize', defined('LSCACHE_IS_ESI') ? LSCACHE_IS_ESI : false); // Pass ESI block id

		// if is not cacheable, terminate check
		if (!self::is_cacheable()) {
			self::debug('not cacheable after api_control');
			return;
		}

		// Check litespeed setting to set cacheable status
		if (!$this->_setting_cacheable()) {
			self::set_nocache();
			return;
		}

		// If user has password cookie, do not cache (moved from vary)
		global $post;
		if (!empty($post->post_password) && isset($_COOKIE['wp-postpass_' . COOKIEHASH])) {
			// If user has password cookie, do not cache
			self::set_nocache('pswd cookie');
			return;
		}

		// The following check to the end is ONLY for mobile
		$is_mobile = apply_filters('litespeed_is_mobile', false);
		if (!$this->conf(Base::O_CACHE_MOBILE)) {
			if ($is_mobile) {
				self::set_nocache('mobile');
			}
			return;
		}

		$env_vary = isset($_SERVER['LSCACHE_VARY_VALUE']) ? $_SERVER['LSCACHE_VARY_VALUE'] : false;
		if (!$env_vary) {
			$env_vary = isset($_SERVER['HTTP_X_LSCACHE_VARY_VALUE']) ? $_SERVER['HTTP_X_LSCACHE_VARY_VALUE'] : false;
		}
		if ($env_vary && strpos($env_vary, 'ismobile') !== false) {
			if (!wp_is_mobile() && !$is_mobile) {
				self::set_nocache('is not mobile'); // todo: no need to uncache, it will correct vary value in vary finalize anyways
				return;
			}
		} elseif (wp_is_mobile() || $is_mobile) {
			self::set_nocache('is mobile');
			return;
		}
	}

	/**
	 * Check if is mobile for filter `litespeed_is_mobile` in API
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function is_mobile() {
		return wp_is_mobile();
	}

	/**
	 * Get request method w/ compatibility to X-Http-Method-Override
	 *
	 * @since 6.2
	 */
	private function _get_req_method() {
		if (isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'])) {
			self::debug('X-Http-Method-Override -> ' . $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']);
			defined('LITESPEED_X_HTTP_METHOD_OVERRIDE') || define('LITESPEED_X_HTTP_METHOD_OVERRIDE', true);
			return $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'];
		}
		if (isset($_SERVER['REQUEST_METHOD'])) {
			return $_SERVER['REQUEST_METHOD'];
		}
		return 'unknown';
	}

	/**
	 * Check if a page is cacheable based on litespeed setting.
	 *
	 * @since 1.0.0
	 * @access private
	 * @return boolean True if cacheable, false otherwise.
	 */
	private function _setting_cacheable() {
		// logged_in users already excluded, no hook added

		if (!empty($_REQUEST[Router::ACTION])) {
			return $this->_no_cache_for('Query String Action');
		}

		$method = $this->_get_req_method();
		if (defined('LITESPEED_X_HTTP_METHOD_OVERRIDE') && LITESPEED_X_HTTP_METHOD_OVERRIDE && $method == 'HEAD') {
			return $this->_no_cache_for('HEAD method from override');
		}
		if ('GET' !== $method && 'HEAD' !== $method) {
			return $this->_no_cache_for('Not GET method: ' . $method);
		}

		if (is_feed() && $this->conf(Base::O_CACHE_TTL_FEED) == 0) {
			return $this->_no_cache_for('feed');
		}

		if (is_trackback()) {
			return $this->_no_cache_for('trackback');
		}

		if (is_search()) {
			return $this->_no_cache_for('search');
		}

		// if ( !defined('WP_USE_THEMES') || !WP_USE_THEMES ) {
		// return $this->_no_cache_for('no theme used');
		// }

		// Check private cache URI setting
		$excludes = $this->conf(Base::O_CACHE_PRIV_URI);
		$result   = Utility::str_hit_array($_SERVER['REQUEST_URI'], $excludes);
		if ($result) {
			self::set_private('Admin cfg Private Cached URI: ' . $result);
		}

		if (!self::is_forced_cacheable()) {
			// Check if URI is excluded from cache
			$excludes = $this->cls('Data')->load_cache_nocacheable($this->conf(Base::O_CACHE_EXC));
			$result   = Utility::str_hit_array($_SERVER['REQUEST_URI'], $excludes);
			if ($result) {
				return $this->_no_cache_for('Admin configured URI Do not cache: ' . $result);
			}

			// Check QS excluded setting
			$excludes = $this->conf(Base::O_CACHE_EXC_QS);
			if (!empty($excludes) && ($qs = $this->_is_qs_excluded($excludes))) {
				return $this->_no_cache_for('Admin configured QS Do not cache: ' . $qs);
			}

			$excludes = $this->conf(Base::O_CACHE_EXC_CAT);
			if (!empty($excludes) && has_category($excludes)) {
				return $this->_no_cache_for('Admin configured Category Do not cache.');
			}

			$excludes = $this->conf(Base::O_CACHE_EXC_TAG);
			if (!empty($excludes) && has_tag($excludes)) {
				return $this->_no_cache_for('Admin configured Tag Do not cache.');
			}

			$excludes = $this->conf(Base::O_CACHE_EXC_COOKIES);
			if (!empty($excludes) && !empty($_COOKIE)) {
				$cookie_hit = array_intersect(array_keys($_COOKIE), $excludes);
				if ($cookie_hit) {
					return $this->_no_cache_for('Admin configured Cookie Do not cache.');
				}
			}

			$excludes = $this->conf(Base::O_CACHE_EXC_USERAGENTS);
			if (!empty($excludes) && isset($_SERVER['HTTP_USER_AGENT'])) {
				$nummatches = preg_match(Utility::arr2regex($excludes), $_SERVER['HTTP_USER_AGENT']);
				if ($nummatches) {
					return $this->_no_cache_for('Admin configured User Agent Do not cache.');
				}
			}

			// Check if is exclude roles ( Need to set Vary too )
			if ($result = $this->in_cache_exc_roles()) {
				return $this->_no_cache_for('Role Excludes setting ' . $result);
			}
		}

		return true;
	}

	/**
	 * Write a debug message for if a page is not cacheable.
	 *
	 * @since 1.0.0
	 * @access private
	 * @param string $reason An explanation for why the page is not cacheable.
	 * @return boolean Return false.
	 */
	private function _no_cache_for( $reason ) {
		self::debug('X Cache_control off - ' . $reason);
		return false;
	}

	/**
	 * Check if current request has qs excluded setting
	 *
	 * @since  1.3
	 * @access private
	 * @param  array $excludes QS excludes setting
	 * @return boolean|string False if not excluded, otherwise the hit qs list
	 */
	private function _is_qs_excluded( $excludes ) {
		if (!empty($_GET) && ($intersect = array_intersect(array_keys($_GET), $excludes))) {
			return implode(',', $intersect);
		}
		return false;
	}
}
<?php

/**
 * The REST related class.
 *
 * @since       2.9.4
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class REST extends Root {

	const LOG_TAG                  = '☎️';
	private $_internal_rest_status = false;

	/**
	 * Confructor of ESI
	 *
	 * @since    2.9.4
	 */
	public function __construct() {
		// Hook to internal REST call
		add_filter('rest_request_before_callbacks', array( $this, 'set_internal_rest_on' ));
		add_filter('rest_request_after_callbacks', array( $this, 'set_internal_rest_off' ));

		add_action('rest_api_init', array( $this, 'rest_api_init' ));
	}

	/**
	 * Register REST hooks
	 *
	 * @since  3.0
	 * @access public
	 */
	public function rest_api_init() {
		// Activate or deactivate a specific crawler callback
		register_rest_route('litespeed/v1', '/toggle_crawler_state', array(
			'methods' => 'POST',
			'callback' => array( $this, 'toggle_crawler_state' ),
			'permission_callback' => function () {
				return current_user_can('manage_network_options') || current_user_can('manage_options');
			},
		));

		register_rest_route('litespeed/v1', '/tool/check_ip', array(
			'methods' => 'GET',
			'callback' => array( $this, 'check_ip' ),
			'permission_callback' => function () {
				return current_user_can('manage_network_options') || current_user_can('manage_options');
			},
		));

		// IP callback validate
		register_rest_route('litespeed/v3', '/ip_validate', array(
			'methods' => 'POST',
			'callback' => array( $this, 'ip_validate' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));

		// 1.2. WP REST Dryrun Callback
		register_rest_route('litespeed/v3', '/wp_rest_echo', array(
			'methods' => 'POST',
			'callback' => array( $this, 'wp_rest_echo' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));
		register_rest_route('litespeed/v3', '/ping', array(
			'methods' => 'POST',
			'callback' => array( $this, 'ping' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));

		// CDN setup callback notification
		register_rest_route('litespeed/v3', '/cdn_status', array(
			'methods' => 'POST',
			'callback' => array( $this, 'cdn_status' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));

		// Image optm notify_img
		// Need validation
		register_rest_route('litespeed/v1', '/notify_img', array(
			'methods' => 'POST',
			'callback' => array( $this, 'notify_img' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));

		register_rest_route('litespeed/v1', '/notify_ccss', array(
			'methods' => 'POST',
			'callback' => array( $this, 'notify_ccss' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));

		register_rest_route('litespeed/v1', '/notify_ucss', array(
			'methods' => 'POST',
			'callback' => array( $this, 'notify_ucss' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));

		register_rest_route('litespeed/v1', '/notify_vpi', array(
			'methods' => 'POST',
			'callback' => array( $this, 'notify_vpi' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));

		register_rest_route('litespeed/v3', '/err_domains', array(
			'methods' => 'POST',
			'callback' => array( $this, 'err_domains' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));

		// Image optm check_img
		// Need validation
		register_rest_route('litespeed/v1', '/check_img', array(
			'methods' => 'POST',
			'callback' => array( $this, 'check_img' ),
			'permission_callback' => array( $this, 'is_from_cloud' ),
		));
	}

	/**
	 * Call to freeze or melt the crawler clicked
	 *
	 * @since  4.3
	 */
	public function toggle_crawler_state() {
		if (isset($_POST['crawler_id'])) {
			return $this->cls('Crawler')->toggle_activeness($_POST['crawler_id']) ? 1 : 0;
		}
	}

	/**
	 * Check if the request is from cloud nodes
	 *
	 * @since 4.2
	 * @since 4.4.7 As there is always token/api key validation, ip validation is redundant
	 */
	public function is_from_cloud() {
		// return true;
		return $this->cls('Cloud')->is_from_cloud();
	}

	/**
	 * Ping pong
	 *
	 * @since  3.0.4
	 */
	public function ping() {
		return $this->cls('Cloud')->ping();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function check_ip() {
		return Tool::cls()->check_ip();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function ip_validate() {
		return $this->cls('Cloud')->ip_validate();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function wp_rest_echo() {
		return $this->cls('Cloud')->wp_rest_echo();
	}

	/**
	 * Endpoint for QC to notify plugin of CDN status update.
	 *
	 * @since  7.0
	 */
	public function cdn_status() {
		return $this->cls('Cloud')->update_cdn_status();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function notify_img() {
		return Img_Optm::cls()->notify_img();
	}

	/**
	 * @since  7.1
	 */
	public function notify_ccss() {
		self::debug('notify_ccss');
		return CSS::cls()->notify();
	}

	/**
	 * @since  5.2
	 */
	public function notify_ucss() {
		self::debug('notify_ucss');
		return UCSS::cls()->notify();
	}

	/**
	 * @since  4.7
	 */
	public function notify_vpi() {
		self::debug('notify_vpi');
		return VPI::cls()->notify();
	}

	/**
	 * @since  4.7
	 */
	public function err_domains() {
		self::debug('err_domains');
		return $this->cls('Cloud')->rest_err_domains();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function check_img() {
		return Img_Optm::cls()->check_img();
	}

	/**
	 * Return error
	 *
	 * @since  5.7.0.1
	 */
	public static function err( $code ) {
		return array(
			'_res' => 'err',
			'_msg' => $code,
		);
	}

	/**
	 * Set internal REST tag to ON
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function set_internal_rest_on( $not_used = null ) {
		$this->_internal_rest_status = true;
		Debug2::debug2('[REST] ✅ Internal REST ON [filter] rest_request_before_callbacks');

		return $not_used;
	}

	/**
	 * Set internal REST tag to OFF
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function set_internal_rest_off( $not_used = null ) {
		$this->_internal_rest_status = false;
		Debug2::debug2('[REST] ❎ Internal REST OFF [filter] rest_request_after_callbacks');

		return $not_used;
	}

	/**
	 * Get internal REST tag
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function is_internal_rest() {
		return $this->_internal_rest_status;
	}

	/**
	 * Check if an URL or current page is REST req or not
	 *
	 * @since  2.9.3
	 * @since  2.9.4 Moved here from Utility, dropped static
	 * @access public
	 */
	public function is_rest( $url = false ) {
		// For WP 4.4.0- compatibility
		if (!function_exists('rest_get_url_prefix')) {
			return defined('REST_REQUEST') && REST_REQUEST;
		}

		$prefix = rest_get_url_prefix();

		// Case #1: After WP_REST_Request initialisation
		if (defined('REST_REQUEST') && REST_REQUEST) {
			return true;
		}

		// Case #2: Support "plain" permalink settings
		if (isset($_GET['rest_route']) && strpos(trim($_GET['rest_route'], '\\/'), $prefix, 0) === 0) {
			return true;
		}

		if (!$url) {
			return false;
		}

		// Case #3: URL Path begins with wp-json/ (REST prefix) Safe for subfolder installation
		$rest_url    = wp_parse_url(site_url($prefix));
		$current_url = wp_parse_url($url);
		// Debug2::debug( '[Util] is_rest check [base] ', $rest_url );
		// Debug2::debug( '[Util] is_rest check [curr] ', $current_url );
		// Debug2::debug( '[Util] is_rest check [curr2] ', wp_parse_url( add_query_arg( array( ) ) ) );
		if ($current_url !== false && !empty($current_url['path']) && $rest_url !== false && !empty($rest_url['path'])) {
			return strpos($current_url['path'], $rest_url['path']) === 0;
		}

		return false;
	}
}
<?php

/**
 * The utility class.
 *
 * @since       1.1.5
 * @since       1.5 Moved into /inc
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Utility extends Root {

	private static $_internal_domains;

	/**
	 * Validate regex
	 *
	 * @since 1.0.9
	 * @since  3.0 Moved here from admin-settings.cls
	 * @access public
	 * @return bool True for valid rules, false otherwise.
	 */
	public static function syntax_checker( $rules ) {
		return preg_match(self::arr2regex($rules), '') !== false;
	}

	/**
	 * Combine regex array to regex rule
	 *
	 * @since  3.0
	 */
	public static function arr2regex( $arr, $drop_delimiter = false ) {
		$arr = self::sanitize_lines($arr);

		$new_arr = array();
		foreach ($arr as $v) {
			$new_arr[] = preg_quote($v, '#');
		}

		$regex = implode('|', $new_arr);
		$regex = str_replace(' ', '\\ ', $regex);

		if ($drop_delimiter) {
			return $regex;
		}

		return '#' . $regex . '#';
	}

	/**
	 * Replace wildcard to regex
	 *
	 * @since  3.2.2
	 */
	public static function wildcard2regex( $string ) {
		if (is_array($string)) {
			return array_map(__CLASS__ . '::wildcard2regex', $string);
		}

		if (strpos($string, '*') !== false) {
			$string = preg_quote($string, '#');
			$string = str_replace('\*', '.*', $string);
		}

		return $string;
	}

	/**
	 * Check if an URL or current page is REST req or not
	 *
	 * @since  2.9.3
	 * @deprecated 2.9.4 Moved to REST class
	 * @access public
	 */
	public static function is_rest( $url = false ) {
		return false;
	}

	/**
	 * Get current page type
	 *
	 * @since  2.9
	 */
	public static function page_type() {
		global $wp_query;
		$page_type = 'default';

		if ($wp_query->is_page) {
			$page_type = is_front_page() ? 'front' : 'page';
		} elseif ($wp_query->is_home) {
			$page_type = 'home';
		} elseif ($wp_query->is_single) {
			// $page_type = $wp_query->is_attachment ? 'attachment' : 'single';
			$page_type = get_post_type();
		} elseif ($wp_query->is_category) {
			$page_type = 'category';
		} elseif ($wp_query->is_tag) {
			$page_type = 'tag';
		} elseif ($wp_query->is_tax) {
			$page_type = 'tax';
			// $page_type = get_queried_object()->taxonomy;
		} elseif ($wp_query->is_archive) {
			if ($wp_query->is_day) {
				$page_type = 'day';
			} elseif ($wp_query->is_month) {
				$page_type = 'month';
			} elseif ($wp_query->is_year) {
				$page_type = 'year';
			} elseif ($wp_query->is_author) {
				$page_type = 'author';
			} else {
				$page_type = 'archive';
			}
		} elseif ($wp_query->is_search) {
			$page_type = 'search';
		} elseif ($wp_query->is_404) {
			$page_type = '404';
		}

		return $page_type;

		// if ( is_404() ) {
		// $page_type = '404';
		// }
		// elseif ( is_singular() ) {
		// $page_type = get_post_type();
		// }
		// elseif ( is_home() && get_option( 'show_on_front' ) == 'page' ) {
		// $page_type = 'home';
		// }
		// elseif ( is_front_page() ) {
		// $page_type = 'front';
		// }
		// elseif ( is_tax() ) {
		// $page_type = get_queried_object()->taxonomy;
		// }
		// elseif ( is_category() ) {
		// $page_type = 'category';
		// }
		// elseif ( is_tag() ) {
		// $page_type = 'tag';
		// }

		// return $page_type;
	}

	/**
	 * Get ping speed
	 *
	 * @since  2.9
	 */
	public static function ping( $domain ) {
		if (strpos($domain, ':')) {
			$domain = parse_url($domain, PHP_URL_HOST);
		}
		$starttime = microtime(true);
		$file      = fsockopen($domain, 443, $errno, $errstr, 10);
		$stoptime  = microtime(true);
		$status    = 0;

		if (!$file) {
			$status = 99999;
		}
		// Site is down
		else {
			fclose($file);
			$status = ($stoptime - $starttime) * 1000;
			$status = floor($status);
		}

		Debug2::debug("[Util] ping [Domain] $domain \t[Speed] $status");

		return $status;
	}

	/**
	 * Set seconds/timestamp to readable format
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public static function readable_time( $seconds_or_timestamp, $timeout = 3600, $forward = false ) {
		if (strlen($seconds_or_timestamp) == 10) {
			$seconds = time() - $seconds_or_timestamp;
			if ($seconds > $timeout) {
				return date('m/d/Y H:i:s', $seconds_or_timestamp + LITESPEED_TIME_OFFSET);
			}
		} else {
			$seconds = $seconds_or_timestamp;
		}

		$res = '';
		if ($seconds > 86400) {
			$num      = floor($seconds / 86400);
			$res     .= $num . 'd';
			$seconds %= 86400;
		}

		if ($seconds > 3600) {
			if ($res) {
				$res .= ', ';
			}
			$num      = floor($seconds / 3600);
			$res     .= $num . 'h';
			$seconds %= 3600;
		}

		if ($seconds > 60) {
			if ($res) {
				$res .= ', ';
			}
			$num      = floor($seconds / 60);
			$res     .= $num . 'm';
			$seconds %= 60;
		}

		if ($seconds > 0) {
			if ($res) {
				$res .= ' ';
			}
			$res .= $seconds . 's';
		}

		if (!$res) {
			return $forward ? __('right now', 'litespeed-cache') : __('just now', 'litespeed-cache');
		}

		$res = $forward ? $res : sprintf(__(' %s ago', 'litespeed-cache'), $res);

		return $res;
	}

	/**
	 * Convert array to string
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function arr2str( $arr ) {
		if (!is_array($arr)) {
			return $arr;
		}

		return base64_encode(\json_encode($arr));
	}

	/**
	 * Get human readable size
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function real_size( $filesize, $is_1000 = false ) {
		$unit = $is_1000 ? 1000 : 1024;

		if ($filesize >= pow($unit, 3)) {
			$filesize = round(($filesize / pow($unit, 3)) * 100) / 100 . 'G';
		} elseif ($filesize >= pow($unit, 2)) {
			$filesize = round(($filesize / pow($unit, 2)) * 100) / 100 . 'M';
		} elseif ($filesize >= $unit) {
			$filesize = round(($filesize / $unit) * 100) / 100 . 'K';
		} else {
			$filesize = $filesize . 'B';
		}
		return $filesize;
	}

	/**
	 * Parse attributes from string
	 *
	 * @since  1.2.2
	 * @since  1.4 Moved from optimize to utility
	 * @access private
	 * @param  string $str
	 * @return array  All the attributes
	 */
	public static function parse_attr( $str ) {
		$attrs = array();
		preg_match_all('#([\w-]+)=(["\'])([^\2]*)\2#isU', $str, $matches, PREG_SET_ORDER);
		foreach ($matches as $match) {
			$attrs[$match[1]] = trim($match[3]);
		}
		return $attrs;
	}

	/**
	 * Check if an array has a string
	 *
	 * Support $ exact match
	 *
	 * @since 1.3
	 * @access private
	 * @param string $needle The string to search with
	 * @param array  $haystack
	 * @return bool|string False if not found, otherwise return the matched string in haystack.
	 */
	public static function str_hit_array( $needle, $haystack, $has_ttl = false ) {
		if (!$haystack) {
			return false;
		}
		/**
		 * Safety check to avoid PHP warning
		 *
		 * @see  https://github.com/litespeedtech/lscache_wp/pull/131/commits/45fc03af308c7d6b5583d1664fad68f75fb6d017
		 */
		if (!is_array($haystack)) {
			Debug2::debug('[Util] ❌ bad param in str_hit_array()!');

			return false;
		}

		$hit      = false;
		$this_ttl = 0;
		foreach ($haystack as $item) {
			if (!$item) {
				continue;
			}

			if ($has_ttl) {
				$this_ttl = 0;
				$item     = explode(' ', $item);
				if (!empty($item[1])) {
					$this_ttl = $item[1];
				}
				$item = $item[0];
			}

			if (substr($item, 0, 1) === '^' && substr($item, -1) === '$') {
				// do exact match
				if (substr($item, 1, -1) === $needle) {
					$hit = $item;
					break;
				}
			} elseif (substr($item, -1) === '$') {
				// match end
				if (substr($item, 0, -1) === substr($needle, -strlen($item) + 1)) {
					$hit = $item;
					break;
				}
			} elseif (substr($item, 0, 1) === '^') {
				// match beginning
				if (substr($item, 1) === substr($needle, 0, strlen($item) - 1)) {
					$hit = $item;
					break;
				}
			} elseif (strpos($needle, $item) !== false) {
				$hit = $item;
				break;
			}
		}

		if ($hit) {
			if ($has_ttl) {
				return array( $hit, $this_ttl );
			}

			return $hit;
		}

		return false;
	}

	/**
	 * Improve compatibility to PHP old versions
	 *
	 * @since  1.2.2
	 */
	public static function compatibility() {
		require_once LSCWP_DIR . 'lib/php-compatibility.func.php';
	}

	/**
	 * Convert URI to URL
	 *
	 * @since  1.3
	 * @access public
	 * @param  string $uri `xx/xx.html` or `/subfolder/xx/xx.html`
	 * @return  string http://www.example.com/subfolder/xx/xx.html
	 */
	public static function uri2url( $uri ) {
		if (substr($uri, 0, 1) === '/') {
			self::domain_const();
			$url = LSCWP_DOMAIN . $uri;
		} else {
			$url = home_url('/') . $uri;
		}

		return $url;
	}

	/**
	 * Convert URL to basename (filename)
	 *
	 * @since  4.7
	 */
	public static function basename( $url ) {
		$url      = trim($url);
		$uri      = @parse_url($url, PHP_URL_PATH);
		$basename = pathinfo($uri, PATHINFO_BASENAME);

		return $basename;
	}

	/**
	 * Drop .webp and .avif if existed in filename
	 *
	 * @since  4.7
	 */
	public static function drop_webp( $filename ) {
		if (in_array(substr($filename, -5), array( '.webp', '.avif' ))) {
			$filename = substr($filename, 0, -5);
		}

		return $filename;
	}

	/**
	 * Convert URL to URI
	 *
	 * @since  1.2.2
	 * @since  1.6.2.1 Added 2nd param keep_qs
	 * @access public
	 */
	public static function url2uri( $url, $keep_qs = false ) {
		$url = trim($url);
		$uri = @parse_url($url, PHP_URL_PATH);
		$qs  = @parse_url($url, PHP_URL_QUERY);

		if (!$keep_qs || !$qs) {
			return $uri;
		}

		return $uri . '?' . $qs;
	}

	/**
	 * Get attachment relative path to upload folder
	 *
	 * @since 3.0
	 * @access public
	 * @param  string $url `https://aa.com/bbb/wp-content/upload/2018/08/test.jpg` or `/bbb/wp-content/upload/2018/08/test.jpg`
	 * @return string   `2018/08/test.jpg`
	 */
	public static function att_short_path( $url ) {
		if (!defined('LITESPEED_UPLOAD_PATH')) {
			$_wp_upload_dir = wp_upload_dir();

			$upload_path = self::url2uri($_wp_upload_dir['baseurl']);

			define('LITESPEED_UPLOAD_PATH', $upload_path);
		}

		$local_file = self::url2uri($url);

		$short_path = substr($local_file, strlen(LITESPEED_UPLOAD_PATH) + 1);

		return $short_path;
	}

	/**
	 * Make URL to be relative
	 *
	 * NOTE: for subfolder home_url, will keep subfolder part (strip nothing but scheme and host)
	 *
	 * @param  string $url
	 * @return string      Relative URL, start with /
	 */
	public static function make_relative( $url ) {
		// replace home_url if the url is full url
		self::domain_const();
		if (strpos($url, LSCWP_DOMAIN) === 0) {
			$url = substr($url, strlen(LSCWP_DOMAIN));
		}
		return trim($url);
	}

	/**
	 * Convert URL to domain only
	 *
	 * @since  1.7.1
	 */
	public static function parse_domain( $url ) {
		$url = @parse_url($url);
		if (empty($url['host'])) {
			return '';
		}

		if (!empty($url['scheme'])) {
			return $url['scheme'] . '://' . $url['host'];
		}

		return '//' . $url['host'];
	}

	/**
	 * Drop protocol `https:` from https://example.com
	 *
	 * @since  3.3
	 */
	public static function noprotocol( $url ) {
		$tmp = parse_url(trim($url));
		if (!empty($tmp['scheme'])) {
			$url = str_replace($tmp['scheme'] . ':', '', $url);
		}

		return $url;
	}

	/**
	 * Validate ip v4
	 *
	 * @since 5.5
	 */
	public static function valid_ipv4( $ip ) {
		return filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE);
	}

	/**
	 * Generate domain const
	 *
	 * This will generate http://www.example.com even there is a subfolder in home_url setting
	 *
	 * Conf LSCWP_DOMAIN has NO trailing /
	 *
	 * @since  1.3
	 * @access public
	 */
	public static function domain_const() {
		if (defined('LSCWP_DOMAIN')) {
			return;
		}

		self::compatibility();
		$domain = http_build_url(get_home_url(), array(), HTTP_URL_STRIP_ALL);

		define('LSCWP_DOMAIN', $domain);
	}

	/**
	 * Array map one textarea to sanitize the url
	 *
	 * @since  1.3
	 * @access public
	 * @param  array|string $arr
	 * @param  string|null  $type String handler type
	 * @return string|array
	 */
	public static function sanitize_lines( $arr, $type = null ) {
		$types = $type ? explode(',', $type) : array();

		if (!$arr) {
			if ($type === 'string') {
				return '';
			}
			return array();
		}

		if (!is_array($arr)) {
			$arr = explode("\n", $arr);
		}

		$arr     = array_map('trim', $arr);
		$changed = false;
		if (in_array('uri', $types)) {
			$arr     = array_map(__CLASS__ . '::url2uri', $arr);
			$changed = true;
		}
		if (in_array('basename', $types)) {
			$arr     = array_map(__CLASS__ . '::basename', $arr);
			$changed = true;
		}
		if (in_array('drop_webp', $types)) {
			$arr     = array_map(__CLASS__ . '::drop_webp', $arr);
			$changed = true;
		}
		if (in_array('relative', $types)) {
			$arr     = array_map(__CLASS__ . '::make_relative', $arr); // Remove domain
			$changed = true;
		}
		if (in_array('domain', $types)) {
			$arr     = array_map(__CLASS__ . '::parse_domain', $arr); // Only keep domain
			$changed = true;
		}

		if (in_array('noprotocol', $types)) {
			$arr     = array_map(__CLASS__ . '::noprotocol', $arr); // Drop protocol, `https://example.com` -> `//example.com`
			$changed = true;
		}

		if (in_array('trailingslash', $types)) {
			$arr     = array_map('trailingslashit', $arr); // Append trailing slash, `https://example.com` -> `https://example.com/`
			$changed = true;
		}

		if ($changed) {
			$arr = array_map('trim', $arr);
		}
		$arr = array_unique($arr);
		$arr = array_filter($arr);

		if (in_array('string', $types)) {
			return implode("\n", $arr);
		}

		return $arr;
	}

	/**
	 * Builds an url with an action and a nonce.
	 *
	 * Assumes user capabilities are already checked.
	 *
	 * @since  1.6 Changed order of 2nd&3rd param, changed 3rd param `append_str` to 2nd `type`
	 * @access public
	 * @return string The built url.
	 */
	public static function build_url( $action, $type = false, $is_ajax = false, $page = null, $append_arr = array(), $unescape = false ) {
		$prefix = '?';

		if ($page === '_ori') {
			$page                         = true;
			$append_arr['_litespeed_ori'] = 1;
		}

		if (!$is_ajax) {
			if ($page) {
				// If use admin url
				if ($page === true) {
					$page = 'admin.php';
				} elseif (strpos($page, '?') !== false) {
					$prefix = '&';
				}
				$combined = $page . $prefix . Router::ACTION . '=' . $action;
			} else {
				// Current page rebuild URL
				$params = $_GET;

				if (!empty($params)) {
					if (isset($params[Router::ACTION])) {
						unset($params[Router::ACTION]);
					}
					if (isset($params['_wpnonce'])) {
						unset($params['_wpnonce']);
					}
					if (!empty($params)) {
						$prefix .= http_build_query($params) . '&';
					}
				}
				global $pagenow;
				$combined = $pagenow . $prefix . Router::ACTION . '=' . $action;
			}
		} else {
			$combined = 'admin-ajax.php?action=litespeed_ajax&' . Router::ACTION . '=' . $action;
		}

		if (is_network_admin()) {
			$prenonce = network_admin_url($combined);
		} else {
			$prenonce = admin_url($combined);
		}
		$url = wp_nonce_url($prenonce, $action, Router::NONCE);

		if ($type) {
			// Remove potential param `type` from url
			$url = parse_url(htmlspecialchars_decode($url));
			parse_str($url['query'], $query);

			$built_arr = array_merge($query, array( Router::TYPE => $type ));
			if ($append_arr) {
				$built_arr = array_merge($built_arr, $append_arr);
			}
			$url['query'] = http_build_query($built_arr);
			self::compatibility();
			$url = http_build_url($url);
			$url = htmlspecialchars($url, ENT_QUOTES, 'UTF-8');
		}

		if ($unescape) {
			$url = wp_specialchars_decode($url);
		}

		return $url;
	}

	/**
	 * Check if the host is the internal host
	 *
	 * @since  1.2.3
	 */
	public static function internal( $host ) {
		if (!defined('LITESPEED_FRONTEND_HOST')) {
			if (defined('WP_HOME')) {
				$home_host = WP_HOME; // Also think of `WP_SITEURL`
			} else {
				$home_host = get_option('home');
			}
			define('LITESPEED_FRONTEND_HOST', parse_url($home_host, PHP_URL_HOST));
		}

		if ($host === LITESPEED_FRONTEND_HOST) {
			return true;
		}

		/**
		 * Filter for multiple domains
		 *
		 * @since 2.9.4
		 */
		if (!isset(self::$_internal_domains)) {
			self::$_internal_domains = apply_filters('litespeed_internal_domains', array());
		}

		if (self::$_internal_domains) {
			return in_array($host, self::$_internal_domains);
		}

		return false;
	}

	/**
	 * Check if an URL is a internal existing file
	 *
	 * @since  1.2.2
	 * @since  1.6.2 Moved here from optm.cls due to usage of media.cls
	 * @access public
	 * @return string|bool The real path of file OR false
	 */
	public static function is_internal_file( $url, $addition_postfix = false ) {
		if (substr($url, 0, 5) == 'data:') {
			Debug2::debug2('[Util] data: content not file');
			return false;
		}
		$url_parsed = parse_url($url);
		if (isset($url_parsed['host']) && !self::internal($url_parsed['host'])) {
			// Check if is cdn path
			// Do this to avoid user hardcoded src in tpl
			if (!CDN::internal($url_parsed['host'])) {
				Debug2::debug2('[Util] external');
				return false;
			}
		}

		if (empty($url_parsed['path'])) {
			return false;
		}

		// Need to replace child blog path for assets, ref: .htaccess
		if (is_multisite() && defined('PATH_CURRENT_SITE')) {
			$pattern            = '#^' . PATH_CURRENT_SITE . '([_0-9a-zA-Z-]+/)(wp-(content|admin|includes))#U';
			$replacement        = PATH_CURRENT_SITE . '$2';
			$url_parsed['path'] = preg_replace($pattern, $replacement, $url_parsed['path']);
			// $current_blog = (int) get_current_blog_id();
			// $main_blog_id = (int) get_network()->site_id;
			// if ( $current_blog === $main_blog_id ) {
			// define( 'LITESPEED_IS_MAIN_BLOG', true );
			// }
			// else {
			// define( 'LITESPEED_IS_MAIN_BLOG', false );
			// }
		}

		// Parse file path
		/**
		 * Trying to fix pure /.htaccess rewrite to /wordpress case
		 *
		 * Add `define( 'LITESPEED_WP_REALPATH', '/wordpress' );` in wp-config.php in this case
		 *
		 * @internal #611001 - Combine & Minify not working?
		 * @since  1.6.3
		 */
		if (substr($url_parsed['path'], 0, 1) === '/') {
			if (defined('LITESPEED_WP_REALPATH')) {
				$file_path_ori = $_SERVER['DOCUMENT_ROOT'] . LITESPEED_WP_REALPATH . $url_parsed['path'];
			} else {
				$file_path_ori = $_SERVER['DOCUMENT_ROOT'] . $url_parsed['path'];
			}
		} else {
			$file_path_ori = Router::frontend_path() . '/' . $url_parsed['path'];
		}

		/**
		 * Added new file postfix to be check if passed in
		 *
		 * @since 2.2.4
		 */
		if ($addition_postfix) {
			$file_path_ori .= '.' . $addition_postfix;
		}

		/**
		 * Added this filter for those plugins which overwrite the filepath
		 *
		 * @see #101091 plugin `Hide My WordPress`
		 * @since 2.2.3
		 */
		$file_path_ori = apply_filters('litespeed_realpath', $file_path_ori);

		$file_path = realpath($file_path_ori);
		if (!is_file($file_path)) {
			Debug2::debug2('[Util] file not exist: ' . $file_path_ori);
			return false;
		}

		return array( $file_path, filesize($file_path) );
	}

	/**
	 * Safely parse URL for v5.3 compatibility
	 *
	 * @since  3.4.3
	 */
	public static function parse_url_safe( $url, $component = -1 ) {
		if (substr($url, 0, 2) == '//') {
			$url = 'https:' . $url;
		}

		return parse_url($url, $component);
	}

	/**
	 * Replace url in srcset to new value
	 *
	 * @since  2.2.3
	 */
	public static function srcset_replace( $content, $callback ) {
		preg_match_all('# srcset=([\'"])(.+)\g{1}#iU', $content, $matches);
		$srcset_ori   = array();
		$srcset_final = array();
		foreach ($matches[2] as $k => $urls_ori) {
			$urls_final = explode(',', $urls_ori);

			$changed = false;

			foreach ($urls_final as $k2 => $url_info) {
				$url_info_arr = explode(' ', trim($url_info));

				if (!($url2 = call_user_func($callback, $url_info_arr[0]))) {
					continue;
				}

				$changed = true;

				$urls_final[$k2] = str_replace($url_info_arr[0], $url2, $url_info);

				Debug2::debug2('[Util] - srcset replaced to ' . $url2 . (!empty($url_info_arr[1]) ? ' ' . $url_info_arr[1] : ''));
			}

			if (!$changed) {
				continue;
			}

			$urls_final = implode(',', $urls_final);

			$srcset_ori[] = $matches[0][$k];

			$srcset_final[] = str_replace($urls_ori, $urls_final, $matches[0][$k]);
		}

		if ($srcset_ori) {
			$content = str_replace($srcset_ori, $srcset_final, $content);
			Debug2::debug2('[Util] - srcset replaced');
		}

		return $content;
	}

	/**
	 * Generate pagination
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function pagination( $total, $limit, $return_offset = false ) {
		$pagenum = isset($_GET['pagenum']) ? absint($_GET['pagenum']) : 1;

		$offset       = ($pagenum - 1) * $limit;
		$num_of_pages = ceil($total / $limit);

		if ($offset > $total) {
			$offset = $total - $limit;
		}

		if ($offset < 0) {
			$offset = 0;
		}

		if ($return_offset) {
			return $offset;
		}

		$page_links = paginate_links(array(
			'base' => add_query_arg('pagenum', '%#%'),
			'format' => '',
			'prev_text' => '&laquo;',
			'next_text' => '&raquo;',
			'total' => $num_of_pages,
			'current' => $pagenum,
		));

		return '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>';
	}

	/**
	 * Generate placeholder for an array to query
	 *
	 * @since 2.0
	 * @access public
	 */
	public static function chunk_placeholder( $data, $fields ) {
		$division = substr_count($fields, ',') + 1;

		$q = implode(
			',',
			array_map(function ( $el ) {
				return '(' . implode(',', $el) . ')';
			}, array_chunk(array_fill(0, count($data), '%s'), $division))
		);

		return $q;
	}
}
<?php

/**
 * LiteSpeed File Operator Library Class
 * Append/Replace content to a file
 *
 * @since 1.1.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class File {

	const MARKER = 'LiteSpeed Operator';

	/**
	 * Detect if an URL is 404
	 *
	 * @since  3.3
	 */
	public static function is_404( $url ) {
		$response = wp_safe_remote_get($url);
		$code     = wp_remote_retrieve_response_code($response);
		if ($code == 404) {
			return true;
		}

		return false;
	}

	/**
	 *  Delete folder
	 *
	 * @since 2.1
	 */
	public static function rrmdir( $dir ) {
		$files = array_diff(scandir($dir), array( '.', '..' ));

		foreach ($files as $file) {
			is_dir("$dir/$file") ? self::rrmdir("$dir/$file") : unlink("$dir/$file");
		}

		return rmdir($dir);
	}

	public static function count_lines( $filename ) {
		if (!file_exists($filename)) {
			return 0;
		}

		$file = new \SplFileObject($filename);
		$file->seek(PHP_INT_MAX);
		return $file->key() + 1;
	}

	/**
	 * Read data from file
	 *
	 * @since 1.1.0
	 * @param string $filename
	 * @param int    $start_line
	 * @param int    $lines
	 */
	public static function read( $filename, $start_line = null, $lines = null ) {
		if (!file_exists($filename)) {
			return '';
		}

		if (!is_readable($filename)) {
			return false;
		}

		if ($start_line !== null) {
			$res  = array();
			$file = new \SplFileObject($filename);
			$file->seek($start_line);

			if ($lines === null) {
				while (!$file->eof()) {
					$res[] = rtrim($file->current(), "\n");
					$file->next();
				}
			} else {
				for ($i = 0; $i < $lines; $i++) {
					if ($file->eof()) {
						break;
					}
					$res[] = rtrim($file->current(), "\n");
					$file->next();
				}
			}

			unset($file);
			return $res;
		}

		$content = file_get_contents($filename);

		$content = self::remove_zero_space($content);

		return $content;
	}

	/**
	 * Append data to file
	 *
	 * @since 1.1.5
	 * @access public
	 * @param string  $filename
	 * @param string  $data
	 * @param boolean $mkdir
	 * @param boolean $silence Used to avoid WP's functions are used
	 */
	public static function append( $filename, $data, $mkdir = false, $silence = true ) {
		return self::save($filename, $data, $mkdir, true, $silence);
	}

	/**
	 * Save data to file
	 *
	 * @since 1.1.0
	 * @param string  $filename
	 * @param string  $data
	 * @param boolean $mkdir
	 * @param boolean $append If the content needs to be appended
	 * @param boolean $silence Used to avoid WP's functions are used
	 */
	public static function save( $filename, $data, $mkdir = false, $append = false, $silence = true ) {
		if (is_null($filename)) {
			return $silence ? false : __('Filename is empty!', 'litespeed-cache');
		}

		$error  = false;
		$folder = dirname($filename);

		// mkdir if folder does not exist
		if (!file_exists($folder)) {
			if (!$mkdir) {
				return $silence ? false : sprintf(__('Folder does not exist: %s', 'litespeed-cache'), $folder);
			}

			set_error_handler('litespeed_exception_handler');

			try {
				mkdir($folder, 0755, true);
				// Create robots.txt file to forbid search engine indexes
				if (!file_exists(LITESPEED_STATIC_DIR . '/robots.txt')) {
					file_put_contents(LITESPEED_STATIC_DIR . '/robots.txt', "User-agent: *\nDisallow: /\n");
				}
			} catch (\ErrorException $ex) {
				return $silence ? false : sprintf(__('Can not create folder: %1$s. Error: %2$s', 'litespeed-cache'), $folder, $ex->getMessage());
			}

			restore_error_handler();
		}

		if (!file_exists($filename)) {
			if (!is_writable($folder)) {
				return $silence ? false : sprintf(__('Folder is not writable: %s.', 'litespeed-cache'), $folder);
			}
			set_error_handler('litespeed_exception_handler');
			try {
				touch($filename);
			} catch (\ErrorException $ex) {
				return $silence ? false : sprintf(__('File %s is not writable.', 'litespeed-cache'), $filename);
			}
			restore_error_handler();
		} elseif (!is_writable($filename)) {
			return $silence ? false : sprintf(__('File %s is not writable.', 'litespeed-cache'), $filename);
		}

		$data = self::remove_zero_space($data);

		$ret = file_put_contents($filename, $data, $append ? FILE_APPEND : LOCK_EX);
		if ($ret === false) {
			return $silence ? false : sprintf(__('Failed to write to %s.', 'litespeed-cache'), $filename);
		}

		return true;
	}

	/**
	 * Remove Unicode zero-width space <200b><200c>
	 *
	 * @since 2.1.2
	 * @since 2.9 changed to public
	 */
	public static function remove_zero_space( $content ) {
		if (is_array($content)) {
			$content = array_map(__CLASS__ . '::remove_zero_space', $content);
			return $content;
		}

		// Remove UTF-8 BOM if present
		if (substr($content, 0, 3) === "\xEF\xBB\xBF") {
			$content = substr($content, 3);
		}

		$content = str_replace("\xe2\x80\x8b", '', $content);
		$content = str_replace("\xe2\x80\x8c", '', $content);
		$content = str_replace("\xe2\x80\x8d", '', $content);

		return $content;
	}

	/**
	 * Appends an array of strings into a file (.htaccess ), placing it between
	 * BEGIN and END markers.
	 *
	 * Replaces existing marked info. Retains surrounding
	 * data. Creates file if none exists.
	 *
	 * @param string             $filename  Filename to alter.
	 * @param string             $marker    The marker to alter.
	 * @param array|string|false $insertion The new content to insert.
	 * @param bool               $prepend Prepend insertion if not exist.
	 * @return bool True on write success, false on failure.
	 */
	public static function insert_with_markers( $filename, $insertion = false, $marker = false, $prepend = false ) {
		if (!$marker) {
			$marker = self::MARKER;
		}

		if (!$insertion) {
			$insertion = array();
		}

		return self::_insert_with_markers($filename, $marker, $insertion, $prepend); // todo: capture exceptions
	}

	/**
	 * Return wrapped block data with marker
	 *
	 * @param string $insertion
	 * @param string $marker
	 * @return string The block data
	 */
	public static function wrap_marker_data( $insertion, $marker = false ) {
		if (!$marker) {
			$marker = self::MARKER;
		}
		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";

		$new_data = implode("\n", array_merge(array( $start_marker ), $insertion, array( $end_marker )));
		return $new_data;
	}

	/**
	 * Touch block data from file, return with marker
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return string The current block data
	 */
	public static function touch_marker_data( $filename, $marker = false ) {
		if (!$marker) {
			$marker = self::MARKER;
		}

		$result = self::_extract_from_markers($filename, $marker);

		if (!$result) {
			return false;
		}

		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";
		$new_data     = implode("\n", array_merge(array( $start_marker ), $result, array( $end_marker )));
		return $new_data;
	}

	/**
	 * Extracts strings from between the BEGIN and END markers in the .htaccess file.
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return array An array of strings from a file (.htaccess ) from between BEGIN and END markers.
	 */
	public static function extract_from_markers( $filename, $marker = false ) {
		if (!$marker) {
			$marker = self::MARKER;
		}
		return self::_extract_from_markers($filename, $marker);
	}

	/**
	 * Extracts strings from between the BEGIN and END markers in the .htaccess file.
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return array An array of strings from a file (.htaccess ) from between BEGIN and END markers.
	 */
	private static function _extract_from_markers( $filename, $marker ) {
		$result = array();

		if (!file_exists($filename)) {
			return $result;
		}

		if ($markerdata = explode("\n", implode('', file($filename)))) {
			$state = false;
			foreach ($markerdata as $markerline) {
				if (strpos($markerline, '# END ' . $marker) !== false) {
					$state = false;
				}
				if ($state) {
					$result[] = $markerline;
				}
				if (strpos($markerline, '# BEGIN ' . $marker) !== false) {
					$state = true;
				}
			}
		}

		return array_map('trim', $result);
	}

	/**
	 * Inserts an array of strings into a file (.htaccess ), placing it between BEGIN and END markers.
	 *
	 * Replaces existing marked info. Retains surrounding data. Creates file if none exists.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 3.0-
	 * @since  3.0 Throw errors if failed
	 * @access private
	 */
	private static function _insert_with_markers( $filename, $marker, $insertion, $prepend = false ) {
		if (!file_exists($filename)) {
			if (!is_writable(dirname($filename))) {
				Error::t('W', dirname($filename));
			}

			set_error_handler('litespeed_exception_handler');
			try {
				touch($filename);
			} catch (\ErrorException $ex) {
				Error::t('W', $filename);
			}
			restore_error_handler();
		} elseif (!is_writable($filename)) {
			Error::t('W', $filename);
		}

		if (!is_array($insertion)) {
			$insertion = explode("\n", $insertion);
		}

		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";

		$fp = fopen($filename, 'r+');
		if (!$fp) {
			Error::t('W', $filename);
		}

		// Attempt to get a lock. If the filesystem supports locking, this will block until the lock is acquired.
		flock($fp, LOCK_EX);

		$lines = array();
		while (!feof($fp)) {
			$lines[] = rtrim(fgets($fp), "\r\n");
		}

		// Split out the existing file into the preceding lines, and those that appear after the marker
		$pre_lines    = $post_lines = $existing_lines = array();
		$found_marker = $found_end_marker = false;
		foreach ($lines as $line) {
			if (!$found_marker && false !== strpos($line, $start_marker)) {
				$found_marker = true;
				continue;
			} elseif (!$found_end_marker && false !== strpos($line, $end_marker)) {
				$found_end_marker = true;
				continue;
			}

			if (!$found_marker) {
				$pre_lines[] = $line;
			} elseif ($found_marker && $found_end_marker) {
				$post_lines[] = $line;
			} else {
				$existing_lines[] = $line;
			}
		}

		// Check to see if there was a change
		if ($existing_lines === $insertion) {
			flock($fp, LOCK_UN);
			fclose($fp);

			return true;
		}

		// Check if need to prepend data if not exist
		if ($prepend && !$post_lines) {
			// Generate the new file data
			$new_file_data = implode("\n", array_merge(array( $start_marker ), $insertion, array( $end_marker ), $pre_lines));
		} else {
			// Generate the new file data
			$new_file_data = implode("\n", array_merge($pre_lines, array( $start_marker ), $insertion, array( $end_marker ), $post_lines));
		}

		// Write to the start of the file, and truncate it to that length
		fseek($fp, 0);
		$bytes = fwrite($fp, $new_file_data);
		if ($bytes) {
			ftruncate($fp, ftell($fp));
		}
		fflush($fp);
		flock($fp, LOCK_UN);
		fclose($fp);

		return (bool) $bytes;
	}
}
<?php

/**
 * The CDN class.
 *
 * @since       1.2.3
 * @since       1.5 Moved into /inc
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class CDN extends Root {

	const BYPASS = 'LITESPEED_BYPASS_CDN';

	private $content;

	private $_cfg_cdn;
	private $_cfg_url_ori;
	private $_cfg_ori_dir;
	private $_cfg_cdn_mapping = array();
	private $_cfg_cdn_exclude;

	private $cdn_mapping_hosts = array();

	/**
	 * Init
	 *
	 * @since  1.2.3
	 */
	public function init() {
		Debug2::debug2('[CDN] init');

		if (defined(self::BYPASS)) {
			Debug2::debug2('CDN bypass');
			return;
		}

		if (!Router::can_cdn()) {
			if (!defined(self::BYPASS)) {
				define(self::BYPASS, true);
			}
			return;
		}

		$this->_cfg_cdn = $this->conf(Base::O_CDN);
		if (!$this->_cfg_cdn) {
			if (!defined(self::BYPASS)) {
				define(self::BYPASS, true);
			}
			return;
		}

		$this->_cfg_url_ori = $this->conf(Base::O_CDN_ORI);
		// Parse cdn mapping data to array( 'filetype' => 'url' )
		$mapping_to_check = array( Base::CDN_MAPPING_INC_IMG, Base::CDN_MAPPING_INC_CSS, Base::CDN_MAPPING_INC_JS );
		foreach ($this->conf(Base::O_CDN_MAPPING) as $v) {
			if (!$v[Base::CDN_MAPPING_URL]) {
				continue;
			}
			$this_url  = $v[Base::CDN_MAPPING_URL];
			$this_host = parse_url($this_url, PHP_URL_HOST);
			// Check img/css/js
			foreach ($mapping_to_check as $to_check) {
				if ($v[$to_check]) {
					Debug2::debug2('[CDN] mapping ' . $to_check . ' -> ' . $this_url);

					// If filetype to url is one to many, make url be an array
					$this->_append_cdn_mapping($to_check, $this_url);

					if (!in_array($this_host, $this->cdn_mapping_hosts)) {
						$this->cdn_mapping_hosts[] = $this_host;
					}
				}
			}
			// Check file types
			if ($v[Base::CDN_MAPPING_FILETYPE]) {
				foreach ($v[Base::CDN_MAPPING_FILETYPE] as $v2) {
					$this->_cfg_cdn_mapping[Base::CDN_MAPPING_FILETYPE] = true;

					// If filetype to url is one to many, make url be an array
					$this->_append_cdn_mapping($v2, $this_url);

					if (!in_array($this_host, $this->cdn_mapping_hosts)) {
						$this->cdn_mapping_hosts[] = $this_host;
					}
				}
				Debug2::debug2('[CDN] mapping ' . implode(',', $v[Base::CDN_MAPPING_FILETYPE]) . ' -> ' . $this_url);
			}
		}

		if (!$this->_cfg_url_ori || !$this->_cfg_cdn_mapping) {
			if (!defined(self::BYPASS)) {
				define(self::BYPASS, true);
			}
			return;
		}

		$this->_cfg_ori_dir = $this->conf(Base::O_CDN_ORI_DIR);
		// In case user customized upload path
		if (defined('UPLOADS')) {
			$this->_cfg_ori_dir[] = UPLOADS;
		}

		// Check if need preg_replace
		$this->_cfg_url_ori = Utility::wildcard2regex($this->_cfg_url_ori);

		$this->_cfg_cdn_exclude = $this->conf(Base::O_CDN_EXC);

		if (!empty($this->_cfg_cdn_mapping[Base::CDN_MAPPING_INC_IMG])) {
			// Hook to srcset
			if (function_exists('wp_calculate_image_srcset')) {
				add_filter('wp_calculate_image_srcset', array( $this, 'srcset' ), 999);
			}
			// Hook to mime icon
			add_filter('wp_get_attachment_image_src', array( $this, 'attach_img_src' ), 999);
			add_filter('wp_get_attachment_url', array( $this, 'url_img' ), 999);
		}

		if (!empty($this->_cfg_cdn_mapping[Base::CDN_MAPPING_INC_CSS])) {
			add_filter('style_loader_src', array( $this, 'url_css' ), 999);
		}

		if (!empty($this->_cfg_cdn_mapping[Base::CDN_MAPPING_INC_JS])) {
			add_filter('script_loader_src', array( $this, 'url_js' ), 999);
		}

		add_filter('litespeed_buffer_finalize', array( $this, 'finalize' ), 30);
	}

	/**
	 * Associate all filetypes with url
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _append_cdn_mapping( $filetype, $url ) {
		// If filetype to url is one to many, make url be an array
		if (empty($this->_cfg_cdn_mapping[$filetype])) {
			$this->_cfg_cdn_mapping[$filetype] = $url;
		} elseif (is_array($this->_cfg_cdn_mapping[$filetype])) {
			// Append url to filetype
			$this->_cfg_cdn_mapping[$filetype][] = $url;
		} else {
			// Convert _cfg_cdn_mapping from string to array
			$this->_cfg_cdn_mapping[$filetype] = array( $this->_cfg_cdn_mapping[$filetype], $url );
		}
	}

	/**
	 * If include css/js in CDN
	 *
	 * @since  1.6.2.1
	 * @return bool true if included in CDN
	 */
	public function inc_type( $type ) {
		if ($type == 'css' && !empty($this->_cfg_cdn_mapping[Base::CDN_MAPPING_INC_CSS])) {
			return true;
		}

		if ($type == 'js' && !empty($this->_cfg_cdn_mapping[Base::CDN_MAPPING_INC_JS])) {
			return true;
		}

		return false;
	}

	/**
	 * Run CDN process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * @since  1.2.3
	 * @access public
	 * @return  string The content that is after optimization
	 */
	public function finalize( $content ) {
		$this->content = $content;

		$this->_finalize();
		return $this->content;
	}

	/**
	 * Replace CDN url
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _finalize() {
		if (defined(self::BYPASS)) {
			return;
		}

		Debug2::debug('CDN _finalize');

		// Start replacing img src
		if (!empty($this->_cfg_cdn_mapping[Base::CDN_MAPPING_INC_IMG])) {
			$this->_replace_img();
			$this->_replace_inline_css();
		}

		if (!empty($this->_cfg_cdn_mapping[Base::CDN_MAPPING_FILETYPE])) {
			$this->_replace_file_types();
		}
	}

	/**
	 * Parse all file types
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_file_types() {
		$ele_to_check = $this->conf(Base::O_CDN_ATTR);

		foreach ($ele_to_check as $v) {
			if (!$v || strpos($v, '.') === false) {
				Debug2::debug2('[CDN] replace setting bypassed: no . attribute ' . $v);
				continue;
			}

			Debug2::debug2('[CDN] replace attribute ' . $v);

			$v    = explode('.', $v);
			$attr = preg_quote($v[1], '#');
			if ($v[0]) {
				$pattern = '#<' . preg_quote($v[0], '#') . '([^>]+)' . $attr . '=([\'"])(.+)\g{2}#iU';
			} else {
				$pattern = '# ' . $attr . '=([\'"])(.+)\g{1}#iU';
			}

			preg_match_all($pattern, $this->content, $matches);

			if (empty($matches[$v[0] ? 3 : 2])) {
				continue;
			}

			foreach ($matches[$v[0] ? 3 : 2] as $k2 => $url) {
				// Debug2::debug2( '[CDN] check ' . $url );
				$postfix = '.' . pathinfo((string) parse_url($url, PHP_URL_PATH), PATHINFO_EXTENSION);
				if (!array_key_exists($postfix, $this->_cfg_cdn_mapping)) {
					// Debug2::debug2( '[CDN] non-existed postfix ' . $postfix );
					continue;
				}

				Debug2::debug2('[CDN] matched file_type ' . $postfix . ' : ' . $url);

				if (!($url2 = $this->rewrite($url, Base::CDN_MAPPING_FILETYPE, $postfix))) {
					continue;
				}

				$attr          = str_replace($url, $url2, $matches[0][$k2]);
				$this->content = str_replace($matches[0][$k2], $attr, $this->content);
			}
		}
	}

	/**
	 * Parse all images
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_img() {
		preg_match_all('#<img([^>]+?)src=([\'"\\\]*)([^\'"\s\\\>]+)([\'"\\\]*)([^>]*)>#i', $this->content, $matches);
		foreach ($matches[3] as $k => $url) {
			// Check if is a DATA-URI
			if (strpos($url, 'data:image') !== false) {
				continue;
			}

			if (!($url2 = $this->rewrite($url, Base::CDN_MAPPING_INC_IMG))) {
				continue;
			}

			$html_snippet  = sprintf('<img %1$s src=%2$s %3$s>', $matches[1][$k], $matches[2][$k] . $url2 . $matches[4][$k], $matches[5][$k]);
			$this->content = str_replace($matches[0][$k], $html_snippet, $this->content);
		}
	}

	/**
	 * Parse and replace all inline styles containing url()
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_inline_css() {
		Debug2::debug2('[CDN] _replace_inline_css', $this->_cfg_cdn_mapping);

		/**
		 * Excludes `\` from URL matching
		 *
		 * @see  #959152 - WordPress LSCache CDN Mapping causing malformed URLS
		 * @see  #685485
		 * @since 3.0
		 */
		preg_match_all('/url\((?![\'"]?data)[\'"]?(.+?)[\'"]?\)/i', $this->content, $matches);
		foreach ($matches[1] as $k => $url) {
			$url = str_replace(array( ' ', '\t', '\n', '\r', '\0', '\x0B', '"', "'", '&quot;', '&#039;' ), '', $url);

			// Parse file postfix
			$parsed_url = parse_url($url, PHP_URL_PATH);
			if (!$parsed_url) {
				continue;
			}

			$postfix = '.' . pathinfo($parsed_url, PATHINFO_EXTENSION);
			if (array_key_exists($postfix, $this->_cfg_cdn_mapping)) {
				Debug2::debug2('[CDN] matched file_type ' . $postfix . ' : ' . $url);
				if (!($url2 = $this->rewrite($url, Base::CDN_MAPPING_FILETYPE, $postfix))) {
					continue;
				}
			} elseif (in_array($postfix, array( 'jpg', 'jpeg', 'png', 'gif', 'svg', 'webp', 'avif' ))) {
				if (!($url2 = $this->rewrite($url, Base::CDN_MAPPING_INC_IMG))) {
					continue;
				}
			} else {
				continue;
			}

			$attr          = str_replace($matches[1][$k], $url2, $matches[0][$k]);
			$this->content = str_replace($matches[0][$k], $attr, $this->content);
		}

		Debug2::debug2('[CDN] _replace_inline_css done');
	}

	/**
	 * Hook to wp_get_attachment_image_src
	 *
	 * @since  1.2.3
	 * @since  1.7 Removed static from function
	 * @access public
	 * @param  array $img The URL of the attachment image src, the width, the height
	 * @return array
	 */
	public function attach_img_src( $img ) {
		if ($img && ($url = $this->rewrite($img[0], Base::CDN_MAPPING_INC_IMG))) {
			$img[0] = $url;
		}
		return $img;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_img( $url ) {
		if ($url && ($url2 = $this->rewrite($url, Base::CDN_MAPPING_INC_IMG))) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_css( $url ) {
		if ($url && ($url2 = $this->rewrite($url, Base::CDN_MAPPING_INC_CSS))) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_js( $url ) {
		if ($url && ($url2 = $this->rewrite($url, Base::CDN_MAPPING_INC_JS))) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Hook to replace WP responsive images
	 *
	 * @since  1.2.3
	 * @since  1.7 Removed static from function
	 * @access public
	 * @param  array $srcs
	 * @return array
	 */
	public function srcset( $srcs ) {
		if ($srcs) {
			foreach ($srcs as $w => $data) {
				if (!($url = $this->rewrite($data['url'], Base::CDN_MAPPING_INC_IMG))) {
					continue;
				}
				$srcs[$w]['url'] = $url;
			}
		}
		return $srcs;
	}

	/**
	 * Replace URL to CDN URL
	 *
	 * @since  1.2.3
	 * @access public
	 * @param  string $url
	 * @return string        Replaced URL
	 */
	public function rewrite( $url, $mapping_kind, $postfix = false ) {
		Debug2::debug2('[CDN] rewrite ' . $url);
		$url_parsed = parse_url($url);

		if (empty($url_parsed['path'])) {
			Debug2::debug2('[CDN] -rewrite bypassed: no path');
			return false;
		}

		// Only images under wp-cotnent/wp-includes can be replaced
		$is_internal_folder = Utility::str_hit_array($url_parsed['path'], $this->_cfg_ori_dir);
		if (!$is_internal_folder) {
			Debug2::debug2('[CDN] -rewrite failed: path not match: ' . LSCWP_CONTENT_FOLDER);
			return false;
		}

		// Check if is external url
		if (!empty($url_parsed['host'])) {
			if (!Utility::internal($url_parsed['host']) && !$this->_is_ori_url($url)) {
				Debug2::debug2('[CDN] -rewrite failed: host not internal');
				return false;
			}
		}

		$exclude = Utility::str_hit_array($url, $this->_cfg_cdn_exclude);
		if ($exclude) {
			Debug2::debug2('[CDN] -abort excludes ' . $exclude);
			return false;
		}

		// Fill full url before replacement
		if (empty($url_parsed['host'])) {
			$url = Utility::uri2url($url);
			Debug2::debug2('[CDN] -fill before rewritten: ' . $url);

			$url_parsed = parse_url($url);
		}

		$scheme = !empty($url_parsed['scheme']) ? $url_parsed['scheme'] . ':' : '';
		if ($scheme) {
			// Debug2::debug2( '[CDN] -scheme from url: ' . $scheme );
		}

		// Find the mapping url to be replaced to
		if (empty($this->_cfg_cdn_mapping[$mapping_kind])) {
			return false;
		}
		if ($mapping_kind !== Base::CDN_MAPPING_FILETYPE) {
			$final_url = $this->_cfg_cdn_mapping[$mapping_kind];
		} else {
			// select from file type
			$final_url = $this->_cfg_cdn_mapping[$postfix];
		}

		// If filetype to url is one to many, need to random one
		if (is_array($final_url)) {
			$final_url = $final_url[array_rand($final_url)];
		}

		// Now lets replace CDN url
		foreach ($this->_cfg_url_ori as $v) {
			if (strpos($v, '*') !== false) {
				$url = preg_replace('#' . $scheme . $v . '#iU', $final_url, $url);
			} else {
				$url = str_replace($scheme . $v, $final_url, $url);
			}
		}
		Debug2::debug2('[CDN] -rewritten: ' . $url);

		return $url;
	}

	/**
	 * Check if is original URL of CDN or not
	 *
	 * @since  2.1
	 * @access private
	 */
	private function _is_ori_url( $url ) {
		$url_parsed = parse_url($url);

		$scheme = !empty($url_parsed['scheme']) ? $url_parsed['scheme'] . ':' : '';

		foreach ($this->_cfg_url_ori as $v) {
			$needle = $scheme . $v;
			if (strpos($v, '*') !== false) {
				if (preg_match('#' . $needle . '#iU', $url)) {
					return true;
				}
			} elseif (strpos($url, $needle) === 0) {
				return true;
			}
		}

		return false;
	}

	/**
	 * Check if the host is the CDN internal host
	 *
	 * @since  1.2.3
	 */
	public static function internal( $host ) {
		if (defined(self::BYPASS)) {
			return false;
		}

		$instance = self::cls();

		return in_array($host, $instance->cdn_mapping_hosts); // todo: can add $this->_is_ori_url() check in future
	}
}
<?php
/**
 * LiteSpeed Object Cache Library
 *
 * @since  1.8
 */
defined('WPINC') || exit();

/**
 * Handle exception
 */
if (!function_exists('litespeed_exception_handler')) {
	function litespeed_exception_handler( $errno, $errstr, $errfile, $errline ) {
		throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
	}
}

require_once __DIR__ . '/object-cache.cls.php';

/**
 * Sets up Object Cache Global and assigns it.
 *
 * @since 1.8
 *
 * @global WP_Object_Cache $wp_object_cache
 */
function wp_cache_init() {
	$GLOBALS['wp_object_cache'] = WP_Object_Cache::get_instance();
}

/**
 * Adds data to the cache, if the cache key doesn't already exist.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::add()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int|string $key    The cache key to use for retrieval later.
 * @param mixed      $data   The data to add to the cache.
 * @param string     $group  Optional. The group to add the cache to. Enables the same key
 *                           to be used across groups. Default empty.
 * @param int        $expire Optional. When the cache data should expire, in seconds.
 *                           Default 0 (no expiration).
 * @return bool True on success, false if cache key and group already exist.
 */
function wp_cache_add( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->add($key, $data, $group, (int) $expire);
}

/**
 * Adds multiple values to the cache in one call.
 *
 * @since 5.4
 *
 * @see WP_Object_Cache::add_multiple()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param array  $data   Array of keys and values to be set.
 * @param string $group  Optional. Where the cache contents are grouped. Default empty.
 * @param int    $expire Optional. When to expire the cache contents, in seconds.
 *                       Default 0 (no expiration).
 * @return bool[] Array of return values, grouped by key. Each value is either
 *                true on success, or false if cache key and group already exist.
 */
function wp_cache_add_multiple( array $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->add_multiple($data, $group, $expire);
}

/**
 * Replaces the contents of the cache with new data.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::replace()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int|string $key    The key for the cache data that should be replaced.
 * @param mixed      $data   The new data to store in the cache.
 * @param string     $group  Optional. The group for the cache data that should be replaced.
 *                           Default empty.
 * @param int        $expire Optional. When to expire the cache contents, in seconds.
 *                           Default 0 (no expiration).
 * @return bool True if contents were replaced, false if original value does not exist.
 */
function wp_cache_replace( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->replace($key, $data, $group, (int) $expire);
}

/**
 * Saves the data to the cache.
 *
 * Differs from wp_cache_add() and wp_cache_replace() in that it will always write data.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::set()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int|string $key    The cache key to use for retrieval later.
 * @param mixed      $data   The contents to store in the cache.
 * @param string     $group  Optional. Where to group the cache contents. Enables the same key
 *                           to be used across groups. Default empty.
 * @param int        $expire Optional. When to expire the cache contents, in seconds.
 *                           Default 0 (no expiration).
 * @return bool True on success, false on failure.
 */
function wp_cache_set( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->set($key, $data, $group, (int) $expire);
}

/**
 * Sets multiple values to the cache in one call.
 *
 * @since 5.4
 *
 * @see WP_Object_Cache::set_multiple()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param array  $data   Array of keys and values to be set.
 * @param string $group  Optional. Where the cache contents are grouped. Default empty.
 * @param int    $expire Optional. When to expire the cache contents, in seconds.
 *                       Default 0 (no expiration).
 * @return bool[] Array of return values, grouped by key. Each value is either
 *                true on success, or false on failure.
 */
function wp_cache_set_multiple( array $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->set_multiple($data, $group, $expire);
}

/**
 * Retrieves the cache contents from the cache by key and group.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::get()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int|string $key   The key under which the cache contents are stored.
 * @param string     $group Optional. Where the cache contents are grouped. Default empty.
 * @param bool       $force Optional. Whether to force an update of the local cache
 *                          from the persistent cache. Default false.
 * @param bool       $found Optional. Whether the key was found in the cache (passed by reference).
 *                          Disambiguates a return of false, a storable value. Default null.
 * @return mixed|false The cache contents on success, false on failure to retrieve contents.
 */
function wp_cache_get( $key, $group = '', $force = false, &$found = null ) {
	global $wp_object_cache;

	return $wp_object_cache->get($key, $group, $force, $found);
}

/**
 * Retrieves multiple values from the cache in one call.
 *
 * @since 5.4
 *
 * @see WP_Object_Cache::get_multiple()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param array  $keys  Array of keys under which the cache contents are stored.
 * @param string $group Optional. Where the cache contents are grouped. Default empty.
 * @param bool   $force Optional. Whether to force an update of the local cache
 *                      from the persistent cache. Default false.
 * @return array Array of return values, grouped by key. Each value is either
 *               the cache contents on success, or false on failure.
 */
function wp_cache_get_multiple( $keys, $group = '', $force = false ) {
	global $wp_object_cache;

	return $wp_object_cache->get_multiple($keys, $group, $force);
}

/**
 * Removes the cache contents matching key and group.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::delete()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int|string $key   What the contents in the cache are called.
 * @param string     $group Optional. Where the cache contents are grouped. Default empty.
 * @return bool True on successful removal, false on failure.
 */
function wp_cache_delete( $key, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->delete($key, $group);
}

/**
 * Deletes multiple values from the cache in one call.
 *
 * @since 5.4
 *
 * @see WP_Object_Cache::delete_multiple()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param array  $keys  Array of keys under which the cache to deleted.
 * @param string $group Optional. Where the cache contents are grouped. Default empty.
 * @return bool[] Array of return values, grouped by key. Each value is either
 *                true on success, or false if the contents were not deleted.
 */
function wp_cache_delete_multiple( array $keys, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->delete_multiple($keys, $group);
}

/**
 * Increments numeric cache item's value.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::incr()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int|string $key    The key for the cache contents that should be incremented.
 * @param int        $offset Optional. The amount by which to increment the item's value.
 *                           Default 1.
 * @param string     $group  Optional. The group the key is in. Default empty.
 * @return int|false The item's new value on success, false on failure.
 */
function wp_cache_incr( $key, $offset = 1, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->incr($key, $offset, $group);
}

/**
 * Decrements numeric cache item's value.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::decr()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int|string $key    The cache key to decrement.
 * @param int        $offset Optional. The amount by which to decrement the item's value.
 *                           Default 1.
 * @param string     $group  Optional. The group the key is in. Default empty.
 * @return int|false The item's new value on success, false on failure.
 */
function wp_cache_decr( $key, $offset = 1, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->decr($key, $offset, $group);
}

/**
 * Removes all cache items.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::flush()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @return bool True on success, false on failure.
 */
function wp_cache_flush() {
	global $wp_object_cache;

	return $wp_object_cache->flush();
}

/**
 * Removes all cache items from the in-memory runtime cache.
 *
 * @since 5.4
 *
 * @see WP_Object_Cache::flush_runtime()
 *
 * @return bool True on success, false on failure.
 */
function wp_cache_flush_runtime() {
	global $wp_object_cache;

	return $wp_object_cache->flush_runtime();
}

/**
 * Removes all cache items in a group, if the object cache implementation supports it.
 *
 * Before calling this function, always check for group flushing support using the
 * `wp_cache_supports( 'flush_group' )` function.
 *
 * @since 5.4
 *
 * @see WP_Object_Cache::flush_group()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param string $group Name of group to remove from cache.
 * @return bool True if group was flushed, false otherwise.
 */
function wp_cache_flush_group( $group ) {
	global $wp_object_cache;

	return $wp_object_cache->flush_group($group);
}

/**
 * Determines whether the object cache implementation supports a particular feature.
 *
 * @since 5.4
 *
 * @param string $feature Name of the feature to check for. Possible values include:
 *                        'add_multiple', 'set_multiple', 'get_multiple', 'delete_multiple',
 *                        'flush_runtime', 'flush_group'.
 * @return bool True if the feature is supported, false otherwise.
 */
function wp_cache_supports( $feature ) {
	switch ($feature) {
		case 'add_multiple':
		case 'set_multiple':
		case 'get_multiple':
		case 'delete_multiple':
		case 'flush_runtime':
			return true;

		case 'flush_group':
		default:
			return false;
	}
}

/**
 * Closes the cache.
 *
 * This function has ceased to do anything since WordPress 2.5. The
 * functionality was removed along with the rest of the persistent cache.
 *
 * This does not mean that plugins can't implement this function when they need
 * to make sure that the cache is cleaned up after WordPress no longer needs it.
 *
 * @since 1.8
 *
 * @return true Always returns true.
 */
function wp_cache_close() {
	return true;
}

/**
 * Adds a group or set of groups to the list of global groups.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::add_global_groups()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param string|string[] $groups A group or an array of groups to add.
 */
function wp_cache_add_global_groups( $groups ) {
	global $wp_object_cache;

	$wp_object_cache->add_global_groups($groups);
}

/**
 * Adds a group or set of groups to the list of non-persistent groups.
 *
 * @since 1.8
 *
 * @param string|string[] $groups A group or an array of groups to add.
 */
function wp_cache_add_non_persistent_groups( $groups ) {
	global $wp_object_cache;

	$wp_object_cache->add_non_persistent_groups($groups);
}

/**
 * Switches the internal blog ID.
 *
 * This changes the blog id used to create keys in blog specific groups.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::switch_to_blog()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int $blog_id Site ID.
 */
function wp_cache_switch_to_blog( $blog_id ) {
	global $wp_object_cache;

	$wp_object_cache->switch_to_blog($blog_id);
}

class WP_Object_Cache {

	protected static $_instance;

	private $_object_cache;

	private $_cache     = array();
	private $_cache_404 = array();

	private $cache_total       = 0;
	private $count_hit_incall  = 0;
	private $count_hit         = 0;
	private $count_miss_incall = 0;
	private $count_miss        = 0;
	private $count_set         = 0;

	protected $global_groups = array();
	private $blog_prefix;
	private $multisite;

	/**
	 * Init.
	 *
	 * @since  1.8
	 */
	public function __construct() {
		$this->_object_cache = \LiteSpeed\Object_Cache::cls();

		$this->multisite   = is_multisite();
		$this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : '';

		/**
		 * Fix multiple instance using same oc issue
		 *
		 * @since  1.8.2
		 */
		!defined('LSOC_PREFIX') && define('LSOC_PREFIX', substr(md5(__FILE__), -5));
	}

	/**
	 * Makes private properties readable for backward compatibility.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param string $name Property to get.
	 * @return mixed Property.
	 */
	public function __get( $name ) {
		return $this->$name;
	}

	/**
	 * Makes private properties settable for backward compatibility.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param string $name  Property to set.
	 * @param mixed  $value Property value.
	 * @return mixed Newly-set property.
	 */
	public function __set( $name, $value ) {
		return $this->$name = $value;
	}

	/**
	 * Makes private properties checkable for backward compatibility.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param string $name Property to check if set.
	 * @return bool Whether the property is set.
	 */
	public function __isset( $name ) {
		return isset($this->$name);
	}

	/**
	 * Makes private properties un-settable for backward compatibility.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param string $name Property to unset.
	 */
	public function __unset( $name ) {
		unset($this->$name);
	}

	/**
	 * Serves as a utility function to determine whether a key is valid.
	 *
	 * @since 5.4
	 * @access protected
	 *
	 * @param int|string $key Cache key to check for validity.
	 * @return bool Whether the key is valid.
	 */
	protected function is_valid_key( $key ) {
		if (is_int($key)) {
			return true;
		}

		if (is_string($key) && trim($key) !== '') {
			return true;
		}

		$type = gettype($key);

		if (!function_exists('__')) {
			wp_load_translations_early();
		}

		$message = is_string($key)
			? __('Cache key must not be an empty string.')
			: /* translators: %s: The type of the given cache key. */
			sprintf(__('Cache key must be integer or non-empty string, %s given.'), $type);

		_doing_it_wrong(sprintf('%s::%s', __CLASS__, debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2)[1]['function']), $message, '6.1.0');

		return false;
	}

	/**
	 * Get the final key.
	 *
	 * @since 1.8
	 * @access private
	 */
	private function _key( $key, $group = 'default' ) {
		if (empty($group)) {
			$group = 'default';
		}

		$prefix = $this->_object_cache->is_global($group) ? '' : $this->blog_prefix;

		return LSOC_PREFIX . $prefix . $group . '.' . $key;
	}

	/**
	 * Output debug info.
	 *
	 * @since  1.8
	 * @access public
	 */
	public function debug() {
		return ' [total] ' .
			$this->cache_total .
			' [hit_incall] ' .
			$this->count_hit_incall .
			' [hit] ' .
			$this->count_hit .
			' [miss_incall] ' .
			$this->count_miss_incall .
			' [miss] ' .
			$this->count_miss .
			' [set] ' .
			$this->count_set;
	}

	/**
	 * Adds data to the cache if it doesn't already exist.
	 *
	 * @since 1.8
	 * @access public
	 *
	 * @uses WP_Object_Cache::_exists() Checks to see if the cache already has data.
	 * @uses WP_Object_Cache::set()     Sets the data after the checking the cache
	 *                                  contents existence.
	 *
	 * @param int|string $key    What to call the contents in the cache.
	 * @param mixed      $data   The contents to store in the cache.
	 * @param string     $group  Optional. Where to group the cache contents. Default 'default'.
	 * @param int        $expire Optional. When to expire the cache contents, in seconds.
	 *                           Default 0 (no expiration).
	 * @return bool True on success, false if cache key and group already exist.
	 */
	public function add( $key, $data, $group = 'default', $expire = 0 ) {
		if (wp_suspend_cache_addition()) {
			return false;
		}

		if (!$this->is_valid_key($key)) {
			return false;
		}

		if (empty($group)) {
			$group = 'default';
		}

		$id = $this->_key($key, $group);

		if (array_key_exists($id, $this->_cache)) {
			return false;
		}

		return $this->set($key, $data, $group, (int) $expire);
	}

	/**
	 * Adds multiple values to the cache in one call.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param array  $data   Array of keys and values to be added.
	 * @param string $group  Optional. Where the cache contents are grouped. Default empty.
	 * @param int    $expire Optional. When to expire the cache contents, in seconds.
	 *                       Default 0 (no expiration).
	 * @return bool[] Array of return values, grouped by key. Each value is either
	 *                true on success, or false if cache key and group already exist.
	 */
	public function add_multiple( array $data, $group = '', $expire = 0 ) {
		$values = array();

		foreach ($data as $key => $value) {
			$values[$key] = $this->add($key, $value, $group, $expire);
		}

		return $values;
	}

	/**
	 * Replaces the contents in the cache, if contents already exist.
	 *
	 * @since 1.8
	 * @access public
	 *
	 * @see WP_Object_Cache::set()
	 *
	 * @param int|string $key    What to call the contents in the cache.
	 * @param mixed      $data   The contents to store in the cache.
	 * @param string     $group  Optional. Where to group the cache contents. Default 'default'.
	 * @param int        $expire Optional. When to expire the cache contents, in seconds.
	 *                           Default 0 (no expiration).
	 * @return bool True if contents were replaced, false if original value does not exist.
	 */
	public function replace( $key, $data, $group = 'default', $expire = 0 ) {
		if (!$this->is_valid_key($key)) {
			return false;
		}

		if (empty($group)) {
			$group = 'default';
		}

		$id = $this->_key($key, $group);

		if (!array_key_exists($id, $this->_cache)) {
			return false;
		}

		return $this->set($key, $data, $group, (int) $expire);
	}

	/**
	 * Sets the data contents into the cache.
	 *
	 * The cache contents are grouped by the $group parameter followed by the
	 * $key. This allows for duplicate IDs in unique groups. Therefore, naming of
	 * the group should be used with care and should follow normal function
	 * naming guidelines outside of core WordPress usage.
	 *
	 * The $expire parameter is not used, because the cache will automatically
	 * expire for each time a page is accessed and PHP finishes. The method is
	 * more for cache plugins which use files.
	 *
	 * @since 1.8
	 * @since 5.4 Returns false if cache key is invalid.
	 * @access public
	 *
	 * @param int|string $key    What to call the contents in the cache.
	 * @param mixed      $data   The contents to store in the cache.
	 * @param string     $group  Optional. Where to group the cache contents. Default 'default'.
	 * @param int        $expire Optional. When to expire the cache contents, in seconds.
	 *                           Default 0 (no expiration).
	 * @return bool True if contents were set, false if key is invalid.
	 */
	public function set( $key, $data, $group = 'default', $expire = 0 ) {
		if (!$this->is_valid_key($key)) {
			return false;
		}

		if (empty($group)) {
			$group = 'default';
		}

		$id = $this->_key($key, $group);

		if (is_object($data)) {
			$data = clone $data;
		}
		// error_log("oc: set \t\t\t[key] " . $id );
		$this->_cache[$id] = $data;

		if (array_key_exists($id, $this->_cache_404)) {
			// error_log("oc: unset404\t\t\t[key] " . $id );
			unset($this->_cache_404[$id]);
		}

		if (!$this->_object_cache->is_non_persistent($group)) {
			$this->_object_cache->set($id, serialize(array( 'data' => $data )), (int) $expire);
			++$this->count_set;
		}

		if ($this->_object_cache->store_transients($group)) {
			$this->_transient_set($key, $data, $group, (int) $expire);
		}

		return true;
	}

	/**
	 * Sets multiple values to the cache in one call.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param array  $data   Array of key and value to be set.
	 * @param string $group  Optional. Where the cache contents are grouped. Default empty.
	 * @param int    $expire Optional. When to expire the cache contents, in seconds.
	 *                       Default 0 (no expiration).
	 * @return bool[] Array of return values, grouped by key. Each value is always true.
	 */
	public function set_multiple( array $data, $group = '', $expire = 0 ) {
		$values = array();

		foreach ($data as $key => $value) {
			$values[$key] = $this->set($key, $value, $group, $expire);
		}

		return $values;
	}

	/**
	 * Retrieves the cache contents, if it exists.
	 *
	 * The contents will be first attempted to be retrieved by searching by the
	 * key in the cache group. If the cache is hit (success) then the contents
	 * are returned.
	 *
	 * On failure, the number of cache misses will be incremented.
	 *
	 * @since 1.8
	 * @access public
	 *
	 * @param int|string $key   The key under which the cache contents are stored.
	 * @param string     $group Optional. Where the cache contents are grouped. Default 'default'.
	 * @param bool       $force Optional. Unused. Whether to force an update of the local cache
	 *                          from the persistent cache. Default false.
	 * @param bool       $found Optional. Whether the key was found in the cache (passed by reference).
	 *                          Disambiguates a return of false, a storable value. Default null.
	 * @return mixed|false The cache contents on success, false on failure to retrieve contents.
	 */
	public function get( $key, $group = 'default', $force = false, &$found = null ) {
		if (!$this->is_valid_key($key)) {
			return false;
		}

		if (empty($group)) {
			$group = 'default';
		}

		$id = $this->_key($key, $group);

		// error_log('');
		// error_log("oc: get \t\t\t[key] " . $id . ( $force ? "\t\t\t [forced] " : '' ) );
		$found       = false;
		$found_in_oc = false;
		$cache_val   = false;
		if (array_key_exists($id, $this->_cache) && !$force) {
			$found     = true;
			$cache_val = $this->_cache[$id];
			++$this->count_hit_incall;
		} elseif (!array_key_exists($id, $this->_cache_404) && !$this->_object_cache->is_non_persistent($group)) {
			$v = $this->_object_cache->get($id);

			if ($v !== null) {
				$v = @maybe_unserialize($v);
			}

			// To be compatible with false val
			if (is_array($v) && array_key_exists('data', $v)) {
				++$this->count_hit;
				$found       = true;
				$found_in_oc = true;
				$cache_val   = $v['data'];
			} else {
				// Can't find key, cache it to 404
				// error_log("oc: add404\t\t\t[key] " . $id );
				$this->_cache_404[$id] = 1;
				++$this->count_miss;
			}
		} else {
			++$this->count_miss_incall;
		}

		if (is_object($cache_val)) {
			$cache_val = clone $cache_val;
		}

		// If not found but has `Store Transients` cfg on, still need to follow WP's get_transient() logic
		if (!$found && $this->_object_cache->store_transients($group)) {
			$cache_val = $this->_transient_get($key, $group);
			if ($cache_val) {
				$found = true; // $found not used for now (v1.8.3)
			}
		}

		if ($found_in_oc) {
			$this->_cache[$id] = $cache_val;
		}

		++$this->cache_total;

		return $cache_val;
	}

	/**
	 * Retrieves multiple values from the cache in one call.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param array  $keys  Array of keys under which the cache contents are stored.
	 * @param string $group Optional. Where the cache contents are grouped. Default 'default'.
	 * @param bool   $force Optional. Whether to force an update of the local cache
	 *                      from the persistent cache. Default false.
	 * @return array Array of return values, grouped by key. Each value is either
	 *               the cache contents on success, or false on failure.
	 */
	public function get_multiple( $keys, $group = 'default', $force = false ) {
		$values = array();

		foreach ($keys as $key) {
			$values[$key] = $this->get($key, $group, $force);
		}

		return $values;
	}

	/**
	 * Removes the contents of the cache key in the group.
	 *
	 * If the cache key does not exist in the group, then nothing will happen.
	 *
	 * @since 1.8
	 * @access public
	 *
	 * @param int|string $key        What the contents in the cache are called.
	 * @param string     $group      Optional. Where the cache contents are grouped. Default 'default'.
	 * @param bool       $deprecated Optional. Unused. Default false.
	 * @return bool True on success, false if the contents were not deleted.
	 */
	public function delete( $key, $group = 'default', $deprecated = false ) {
		if (!$this->is_valid_key($key)) {
			return false;
		}

		if (empty($group)) {
			$group = 'default';
		}

		$id = $this->_key($key, $group);

		if ($this->_object_cache->store_transients($group)) {
			$this->_transient_del($key, $group);
		}

		if (array_key_exists($id, $this->_cache)) {
			unset($this->_cache[$id]);
		}
		// error_log("oc: delete \t\t\t[key] " . $id );

		if ($this->_object_cache->is_non_persistent($group)) {
			return false;
		}

		return $this->_object_cache->delete($id);
	}

	/**
	 * Deletes multiple values from the cache in one call.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param array  $keys  Array of keys to be deleted.
	 * @param string $group Optional. Where the cache contents are grouped. Default empty.
	 * @return bool[] Array of return values, grouped by key. Each value is either
	 *                true on success, or false if the contents were not deleted.
	 */
	public function delete_multiple( array $keys, $group = '' ) {
		$values = array();

		foreach ($keys as $key) {
			$values[$key] = $this->delete($key, $group);
		}

		return $values;
	}

	/**
	 * Increments numeric cache item's value.
	 *
	 * @since 5.4
	 *
	 * @param int|string $key    The cache key to increment.
	 * @param int        $offset Optional. The amount by which to increment the item's value.
	 *                           Default 1.
	 * @param string     $group  Optional. The group the key is in. Default 'default'.
	 * @return int|false The item's new value on success, false on failure.
	 */
	public function incr( $key, $offset = 1, $group = 'default' ) {
		return $this->incr_desr($key, $offset, $group, true);
	}

	/**
	 * Decrements numeric cache item's value.
	 *
	 * @since 5.4
	 *
	 * @param int|string $key    The cache key to decrement.
	 * @param int        $offset Optional. The amount by which to decrement the item's value.
	 *                           Default 1.
	 * @param string     $group  Optional. The group the key is in. Default 'default'.
	 * @return int|false The item's new value on success, false on failure.
	 */
	public function decr( $key, $offset = 1, $group = 'default' ) {
		return $this->incr_desr($key, $offset, $group, false);
	}

	/**
	 * Increments or decrements numeric cache item's value.
	 *
	 * @since 1.8
	 * @access public
	 */
	public function incr_desr( $key, $offset = 1, $group = 'default', $incr = true ) {
		if (!$this->is_valid_key($key)) {
			return false;
		}

		if (empty($group)) {
			$group = 'default';
		}

		$cache_val = $this->get($key, $group);

		if (false === $cache_val) {
			return false;
		}

		if (!is_numeric($cache_val)) {
			$cache_val = 0;
		}

		$offset = (int) $offset;

		if ($incr) {
			$cache_val += $offset;
		} else {
			$cache_val -= $offset;
		}

		if ($cache_val < 0) {
			$cache_val = 0;
		}

		$this->set($key, $cache_val, $group);

		return $cache_val;
	}

	/**
	 * Clears the object cache of all data.
	 *
	 * @since 1.8
	 * @access public
	 *
	 * @return true Always returns true.
	 */
	public function flush() {
		$this->flush_runtime();

		$this->_object_cache->flush();

		return true;
	}

	/**
	 * Removes all cache items from the in-memory runtime cache.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @return true Always returns true.
	 */
	public function flush_runtime() {
		$this->_cache     = array();
		$this->_cache_404 = array();

		return true;
	}

	/**
	 * Removes all cache items in a group.
	 *
	 * @since 5.4
	 * @access public
	 *
	 * @param string $group Name of group to remove from cache.
	 * @return true Always returns true.
	 */
	public function flush_group( $group ) {
		// unset( $this->cache[ $group ] );

		return true;
	}

	/**
	 * Sets the list of global cache groups.
	 *
	 * @since 1.8
	 * @access public
	 *
	 * @param string|string[] $groups List of groups that are global.
	 */
	public function add_global_groups( $groups ) {
		$groups = (array) $groups;

		$this->_object_cache->add_global_groups($groups);
	}

	/**
	 * Sets the list of non-persistent cache groups.
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_non_persistent_groups( $groups ) {
		$groups = (array) $groups;

		$this->_object_cache->add_non_persistent_groups($groups);
	}

	/**
	 * Switches the internal blog ID.
	 *
	 * This changes the blog ID used to create keys in blog specific groups.
	 *
	 * @since 1.8
	 * @access public
	 *
	 * @param int $blog_id Blog ID.
	 */
	public function switch_to_blog( $blog_id ) {
		$blog_id           = (int) $blog_id;
		$this->blog_prefix = $this->multisite ? $blog_id . ':' : '';
	}

	/**
	 * Get transient from wp table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `get_transient`/`set_site_transient`
	 */
	private function _transient_get( $transient, $group ) {
		if ($group == 'transient') {
			/**** Ori WP func start */
			$transient_option = '_transient_' . $transient;
			if (!wp_installing()) {
				// If option is not in alloptions, it is not autoloaded and thus has a timeout
				$alloptions = wp_load_alloptions();
				if (!isset($alloptions[$transient_option])) {
					$transient_timeout = '_transient_timeout_' . $transient;
					$timeout           = get_option($transient_timeout);
					if (false !== $timeout && $timeout < time()) {
						delete_option($transient_option);
						delete_option($transient_timeout);
						$value = false;
					}
				}
			}

			if (!isset($value)) {
				$value = get_option($transient_option);
			}
			/**** Ori WP func end */
		} elseif ($group == 'site-transient') {
			/**** Ori WP func start */
			$no_timeout       = array( 'update_core', 'update_plugins', 'update_themes' );
			$transient_option = '_site_transient_' . $transient;
			if (!in_array($transient, $no_timeout)) {
				$transient_timeout = '_site_transient_timeout_' . $transient;
				$timeout           = get_site_option($transient_timeout);
				if (false !== $timeout && $timeout < time()) {
					delete_site_option($transient_option);
					delete_site_option($transient_timeout);
					$value = false;
				}
			}

			if (!isset($value)) {
				$value = get_site_option($transient_option);
			}
			/**** Ori WP func end */
		} else {
			$value = false;
		}

		return $value;
	}

	/**
	 * Set transient to WP table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `set_transient`/`set_site_transient`
	 */
	private function _transient_set( $transient, $value, $group, $expiration ) {
		if ($group == 'transient') {
			/**** Ori WP func start */
			$transient_timeout = '_transient_timeout_' . $transient;
			$transient_option  = '_transient_' . $transient;
			if (false === get_option($transient_option)) {
				$autoload = 'yes';
				if ((int) $expiration) {
					$autoload = 'no';
					add_option($transient_timeout, time() + (int) $expiration, '', 'no');
				}
				$result = add_option($transient_option, $value, '', $autoload);
			} else {
				// If expiration is requested, but the transient has no timeout option,
				// delete, then re-create transient rather than update.
				$update = true;
				if ((int) $expiration) {
					if (false === get_option($transient_timeout)) {
						delete_option($transient_option);
						add_option($transient_timeout, time() + (int) $expiration, '', 'no');
						$result = add_option($transient_option, $value, '', 'no');
						$update = false;
					} else {
						update_option($transient_timeout, time() + (int) $expiration);
					}
				}
				if ($update) {
					$result = update_option($transient_option, $value);
				}
			}
			/**** Ori WP func end */
		} elseif ($group == 'site-transient') {
			/**** Ori WP func start */
			$transient_timeout = '_site_transient_timeout_' . $transient;
			$option            = '_site_transient_' . $transient;
			if (false === get_site_option($option)) {
				if ((int) $expiration) {
					add_site_option($transient_timeout, time() + (int) $expiration);
				}
				$result = add_site_option($option, $value);
			} else {
				if ((int) $expiration) {
					update_site_option($transient_timeout, time() + (int) $expiration);
				}
				$result = update_site_option($option, $value);
			}
			/**** Ori WP func end */
		} else {
			$result = null;
		}

		return $result;
	}

	/**
	 * Delete transient from WP table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `delete_transient`/`delete_site_transient`
	 */
	private function _transient_del( $transient, $group ) {
		if ($group == 'transient') {
			/**** Ori WP func start */
			$option_timeout = '_transient_timeout_' . $transient;
			$option         = '_transient_' . $transient;
			$result         = delete_option($option);
			if ($result) {
				delete_option($option_timeout);
			}
			/**** Ori WP func end */
		} elseif ($group == 'site-transient') {
			/**** Ori WP func start */
			$option_timeout = '_site_transient_timeout_' . $transient;
			$option         = '_site_transient_' . $transient;
			$result         = delete_site_option($option);
			if ($result) {
				delete_site_option($option_timeout);
			}
			/**** Ori WP func end */
		}
	}

	/**
	 * Get the current instance object.
	 *
	 * @since 1.8
	 * @access public
	 */
	public static function get_instance() {
		if (!isset(self::$_instance)) {
			self::$_instance = new self();
		}

		return self::$_instance;
	}
}
<?php

/**
 * The cron task class.
 *
 * @since       1.1.3
 * @since       1.5 Moved into /inc
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Task extends Root {

	const LOG_TAG             = '⏰';
	private static $_triggers = array(
		Base::O_IMG_OPTM_CRON => array(
			'name' => 'litespeed_task_imgoptm_pull',
			'hook' => 'LiteSpeed\Img_Optm::start_async_cron',
		), // always fetch immediately
		Base::O_OPTM_CSS_ASYNC => array(
			'name' => 'litespeed_task_ccss',
			'hook' => 'LiteSpeed\CSS::cron_ccss',
		),
		Base::O_OPTM_UCSS => array(
			'name' => 'litespeed_task_ucss',
			'hook' => 'LiteSpeed\UCSS::cron',
		),
		Base::O_MEDIA_VPI_CRON => array(
			'name' => 'litespeed_task_vpi',
			'hook' => 'LiteSpeed\VPI::cron',
		),
		Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC => array(
			'name' => 'litespeed_task_lqip',
			'hook' => 'LiteSpeed\Placeholder::cron',
		),
		Base::O_DISCUSS_AVATAR_CRON => array(
			'name' => 'litespeed_task_avatar',
			'hook' => 'LiteSpeed\Avatar::cron',
		),
		Base::O_IMG_OPTM_AUTO => array(
			'name' => 'litespeed_task_imgoptm_req',
			'hook' => 'LiteSpeed\Img_Optm::cron_auto_request',
		),
		Base::O_CRAWLER => array(
			'name' => 'litespeed_task_crawler',
			'hook' => 'LiteSpeed\Crawler::start_async_cron',
		), // Set crawler to last one to use above results
	);

	private static $_guest_options = array( Base::O_OPTM_CSS_ASYNC, Base::O_OPTM_UCSS, Base::O_MEDIA_VPI );

	const FILTER_CRAWLER = 'litespeed_crawl_filter';
	const FILTER         = 'litespeed_filter';

	/**
	 * Keep all tasks in cron
	 *
	 * @since 3.0
	 * @access public
	 */
	public function init() {
		self::debug2('Init');
		add_filter('cron_schedules', array( $this, 'lscache_cron_filter' ));

		$guest_optm = $this->conf(Base::O_GUEST) && $this->conf(Base::O_GUEST_OPTM);

		foreach (self::$_triggers as $id => $trigger) {
			if ($id == Base::O_IMG_OPTM_CRON) {
				if (!Img_Optm::need_pull()) {
					continue;
				}
			} elseif (!$this->conf($id)) {
				if (!$guest_optm || !in_array($id, self::$_guest_options)) {
					continue;
				}
			}

			// Special check for crawler
			if ($id == Base::O_CRAWLER) {
				if (!Router::can_crawl()) {
					continue;
				}

				add_filter('cron_schedules', array( $this, 'lscache_cron_filter_crawler' ));
			}

			if (!wp_next_scheduled($trigger['name'])) {
				self::debug('Cron hook register [name] ' . $trigger['name']);

				wp_schedule_event(time(), $id == Base::O_CRAWLER ? self::FILTER_CRAWLER : self::FILTER, $trigger['name']);
			}

			add_action($trigger['name'], $trigger['hook']);
		}
	}

	/**
	 * Handle all async noabort requests
	 *
	 * @since 5.5
	 */
	public static function async_litespeed_handler() {
		$hash_data = self::get_option('async_call-hash', array());
		if (!$hash_data || !is_array($hash_data) || empty($hash_data['hash']) || empty($hash_data['ts'])) {
			self::debug('async_litespeed_handler no hash data', $hash_data);
			return;
		}
		if (time() - $hash_data['ts'] > 120 || empty($_GET['nonce']) || $_GET['nonce'] != $hash_data['hash']) {
			self::debug('async_litespeed_handler nonce mismatch');
			return;
		}
		self::delete_option('async_call-hash');

		$type = Router::verify_type();
		self::debug('type=' . $type);

		// Don't lock up other requests while processing
		session_write_close();
		switch ($type) {
			case 'crawler':
            Crawler::async_handler();
				break;
			case 'crawler_force':
            Crawler::async_handler(true);
				break;
			case 'imgoptm':
            Img_Optm::async_handler();
				break;
			case 'imgoptm_force':
            Img_Optm::async_handler(true);
				break;
			default:
		}
	}

	/**
	 * Async caller wrapper func
	 *
	 * @since 5.5
	 */
	public static function async_call( $type ) {
		$hash = Str::rrand(32);
		self::update_option('async_call-hash', array(
			'hash' => $hash,
			'ts' => time(),
		));
		$args = array(
			'timeout' => 0.01,
			'blocking' => false,
			'sslverify' => false,
			// 'cookies'   => $_COOKIE,
		);
		$qs  = array(
			'action' => 'async_litespeed',
			'nonce' => $hash,
			Router::TYPE => $type,
		);
		$url = add_query_arg($qs, admin_url('admin-ajax.php'));
		self::debug('async call to ' . $url);
		wp_safe_remote_post(esc_url_raw($url), $args);
	}

	/**
	 * Clean all potential existing crons
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function destroy() {
		Utility::compatibility();
		array_map('wp_clear_scheduled_hook', array_column(self::$_triggers, 'name'));
	}

	/**
	 * Try to clean the crons if disabled
	 *
	 * @since 3.0
	 * @access public
	 */
	public function try_clean( $id ) {
		// Clean v2's leftover cron ( will remove in v3.1 )
		// foreach ( wp_get_ready_cron_jobs() as $hooks ) {
		// foreach ( $hooks as $hook => $v ) {
		// if ( strpos( $hook, 'litespeed_' ) === 0 && ( substr( $hook, -8 ) === '_trigger' || strpos( $hook, 'litespeed_task_' ) !== 0 ) ) {
		// self::debug( 'Cron clear legacy [hook] ' . $hook );
		// wp_clear_scheduled_hook( $hook );
		// }
		// }
		// }

		if ($id && !empty(self::$_triggers[$id])) {
			if (!$this->conf($id) || ($id == Base::O_CRAWLER && !Router::can_crawl())) {
				self::debug('Cron clear [id] ' . $id . ' [hook] ' . self::$_triggers[$id]['name']);
				wp_clear_scheduled_hook(self::$_triggers[$id]['name']);
			}
			return;
		}

		self::debug('❌ Unknown cron [id] ' . $id);
	}

	/**
	 * Register cron interval imgoptm
	 *
	 * @since 1.6.1
	 * @access public
	 */
	public function lscache_cron_filter( $schedules ) {
		if (!array_key_exists(self::FILTER, $schedules)) {
			$schedules[self::FILTER] = array(
				'interval' => 60,
				'display' => __('Every Minute', 'litespeed-cache'),
			);
		}
		return $schedules;
	}

	/**
	 * Register cron interval
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function lscache_cron_filter_crawler( $schedules ) {
		$CRAWLER_RUN_INTERVAL = defined('LITESPEED_CRAWLER_RUN_INTERVAL') ? LITESPEED_CRAWLER_RUN_INTERVAL : 600;
		// $wp_schedules = wp_get_schedules();
		if (!array_key_exists(self::FILTER_CRAWLER, $schedules)) {
			// self::debug('Crawler cron log: cron filter '.$interval.' added');
			$schedules[self::FILTER_CRAWLER] = array(
				'interval' => $CRAWLER_RUN_INTERVAL,
				'display' => __('LiteSpeed Crawler Cron', 'litespeed-cache'),
			);
		}
		return $schedules;
	}
}
<?php

/**
 * The frontend GUI class.
 *
 * @since       1.3
 * @subpackage  LiteSpeed/src
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class GUI extends Base {

	private static $_clean_counter = 0;

	private $_promo_true;

	// [ file_tag => [ days, litespeed_only ], ... ]
	private $_promo_list = array(
		'new_version' => array( 7, false ),
		'score' => array( 14, false ),
		// 'slack'      => array( 3, false ),
	);

	const LIB_GUEST_JS        = 'assets/js/guest.min.js';
	const LIB_GUEST_DOCREF_JS = 'assets/js/guest.docref.min.js';
	const PHP_GUEST           = 'guest.vary.php';

	const TYPE_DISMISS_WHM            = 'whm';
	const TYPE_DISMISS_EXPIRESDEFAULT = 'ExpiresDefault';
	const TYPE_DISMISS_PROMO          = 'promo';
	const TYPE_DISMISS_PIN            = 'pin';

	const WHM_MSG     = 'lscwp_whm_install';
	const WHM_MSG_VAL = 'whm_install';

	protected $_summary;

	/**
	 * Instance
	 *
	 * @since  1.3
	 */
	public function __construct() {
		$this->_summary = self::get_summary();
	}

	/**
	 * Frontend Init
	 *
	 * @since  3.0
	 */
	public function init() {
		Debug2::debug2('[GUI] init');
		if (is_admin_bar_showing() && current_user_can('manage_options')) {
			add_action('wp_enqueue_scripts', array( $this, 'frontend_enqueue_style' ));
			add_action('admin_bar_menu', array( $this, 'frontend_shortcut' ), 95);
		}

		/**
		 * Turn on instant click
		 *
		 * @since  1.8.2
		 */
		if ($this->conf(self::O_UTIL_INSTANT_CLICK)) {
			add_action('wp_enqueue_scripts', array( $this, 'frontend_enqueue_style_public' ));
		}

		// NOTE: this needs to be before optimizer to avoid wrapper being removed
		add_filter('litespeed_buffer_finalize', array( $this, 'finalize' ), 8);
	}

	/**
	 * Print a loading message when redirecting CCSS/UCSS page to avoid whiteboard confusion
	 */
	public static function print_loading( $counter, $type ) {
		echo '<div style="font-size: 25px; text-align: center; padding-top: 150px; width: 100%; position: absolute;">';
		echo "<img width='35' src='" . LSWCP_PLUGIN_URL . "assets/img/Litespeed.icon.svg' />   ";
		printf(__('%1$s %2$s files left in queue', 'litespeed-cache'), $counter, $type);
		echo '<p><a href="' . admin_url('admin.php?page=litespeed-page_optm') . '">' . __('Cancel', 'litespeed-cache') . '</a></p>';
		echo '</div>';
	}

	/**
	 * Display the tab list
	 *
	 * @since 7.3
	 */
	public static function display_tab_list( $tabs ) {
		$i = 1;
		foreach ( $tabs as $k => $val ) {
			$accesskey = $i <= 9 ? $i : '';
			printf(
				'<a class="litespeed-tab nav-tab" href="#%1$s" data-litespeed-tab="%1$s" litespeed-accesskey="%2$s">%3$s</a>',
				esc_attr( $k ),
				esc_attr( $accesskey ),
				esc_html( $val )
			);
			++$i;
		}
	}

	/**
	 * Display a pie
	 *
	 * @since 1.6.6
	 */
	public static function pie( $percent, $width = 50, $finished_tick = false, $without_percentage = false, $append_cls = false ) {
		$percentage = '<text x="50%" y="50%">' . $percent . ($without_percentage ? '' : '%') . '</text>';

		if ($percent == 100 && $finished_tick) {
			$percentage = '<text x="50%" y="50%" class="litespeed-pie-done">✓</text>';
		}

		return "
		<svg class='litespeed-pie $append_cls' viewbox='0 0 33.83098862 33.83098862' width='$width' height='$width' xmlns='http://www.w3.org/2000/svg'>
			<circle class='litespeed-pie_bg' cx='16.91549431' cy='16.91549431' r='15.91549431' />
			<circle class='litespeed-pie_circle' cx='16.91549431' cy='16.91549431' r='15.91549431' stroke-dasharray='$percent,100' />
			<g class='litespeed-pie_info'>$percentage</g>
		</svg>
		";
	}

	/**
	 * Allow svg html filters
	 *
	 * @since 7.3
	 */
	public static function allowed_svg_tags() {
		return array(
			'svg'   => array(
				'width'   => true,
				'height'  => true,
				'viewbox' => true, // Note: SVG standard uses 'viewBox', but wp_kses normalizes to lowercase.
				'xmlns'   => true,
				'class'   => true,
				'id'      => true,
			),
			'circle' => array(
				'cx'               => true,
				'cy'               => true,
				'r'                => true,
				'fill'             => true,
				'stroke'           => true,
				'class'            => true,
				'stroke-width'     => true,
				'stroke-dasharray' => true,
			),
			'path'  => array(
				'd'      => true,
				'fill'   => true,
				'stroke' => true,
			),
			'text'  => array(
				'x'            => true,
				'y'            => true,
				'dx'           => true,
				'dy'           => true,
				'font-size'    => true,
				'font-family'  => true,
				'font-weight'  => true,
				'fill'         => true,
				'stroke'       => true,
				'stroke-width' => true,
				'text-anchor'  => true,
				'class'        => true,
				'id'           => true,
			),
			'g'     => array(
				'transform'    => true,
				'fill'         => true,
				'stroke'       => true,
				'stroke-width' => true,
				'class'        => true,
				'id'           => true,
			),
			'button' => array(
				'type'               => true,
				'data-balloon-break' => true,
				'data-balloon-pos'   => true,
				'aria-label'         => true,
				'class'              => true,
			),
		);
	}

	/**
	 * Display a tiny pie with a tooltip
	 *
	 * @since 3.0
	 */
	public static function pie_tiny( $percent, $width = 50, $tooltip = '', $tooltip_pos = 'up', $append_cls = false ) {
		// formula C = 2πR
		$dasharray = 2 * 3.1416 * 9 * ($percent / 100);

		return "
		<button type='button' data-balloon-break data-balloon-pos='$tooltip_pos' aria-label='$tooltip' class='litespeed-btn-pie'>
		<svg class='litespeed-pie litespeed-pie-tiny $append_cls' viewbox='0 0 30 30' width='$width' height='$width' xmlns='http://www.w3.org/2000/svg'>
			<circle class='litespeed-pie_bg' cx='15' cy='15' r='9' />
			<circle class='litespeed-pie_circle' cx='15' cy='15' r='9' stroke-dasharray='$dasharray,100' />
			<g class='litespeed-pie_info'><text x='50%' y='50%'>i</text></g>
		</svg>
		</button>
		";
	}

	/**
	 * Get classname of PageSpeed Score
	 *
	 * Scale:
	 *  90-100 (fast)
	 *  50-89 (average)
	 *  0-49 (slow)
	 *
	 * @since  2.9
	 * @access public
	 */
	public function get_cls_of_pagescore( $score ) {
		if ($score >= 90) {
			return 'success';
		}

		if ($score >= 50) {
			return 'warning';
		}

		return 'danger';
	}

	/**
	 * Dismiss banner
	 *
	 * @since 1.0
	 * @access public
	 */
	public static function dismiss() {
		$_instance = self::cls();
		switch (Router::verify_type()) {
			case self::TYPE_DISMISS_WHM:
            self::dismiss_whm();
				break;

			case self::TYPE_DISMISS_EXPIRESDEFAULT:
            self::update_option(Admin_Display::DB_DISMISS_MSG, Admin_Display::RULECONFLICT_DISMISSED);
				break;

			case self::TYPE_DISMISS_PIN:
            Admin_display::dismiss_pin();
				break;

			case self::TYPE_DISMISS_PROMO:
            if (empty($_GET['promo_tag'])) {
					break;
				}

            $promo_tag = sanitize_key($_GET['promo_tag']);

            if (empty($_instance->_promo_list[$promo_tag])) {
					break;
				}

            defined('LSCWP_LOG') && Debug2::debug('[GUI] Dismiss promo ' . $promo_tag);

            // Forever dismiss
            if (!empty($_GET['done'])) {
					$_instance->_summary[$promo_tag] = 'done';
				} elseif (!empty($_GET['later'])) {
                // Delay the banner to half year later
                $_instance->_summary[$promo_tag] = time() + 86400 * 180;
				} else {
                // Update welcome banner to 30 days after
                $_instance->_summary[$promo_tag] = time() + 86400 * 30;
				}

            self::save_summary();

				break;

			default:
				break;
		}

		if (Router::is_ajax()) {
			// All dismiss actions are considered as ajax call, so just exit
			exit(\json_encode(array( 'success' => 1 )));
		}

		// Plain click link, redirect to referral url
		Admin::redirect();
	}

	/**
	 * Check if has rule conflict notice
	 *
	 * @since 1.1.5
	 * @access public
	 * @return boolean
	 */
	public static function has_msg_ruleconflict() {
		$db_dismiss_msg = self::get_option(Admin_Display::DB_DISMISS_MSG);
		if (!$db_dismiss_msg) {
			self::update_option(Admin_Display::DB_DISMISS_MSG, -1);
		}
		return $db_dismiss_msg == Admin_Display::RULECONFLICT_ON;
	}

	/**
	 * Check if has whm notice
	 *
	 * @since 1.1.1
	 * @access public
	 * @return boolean
	 */
	public static function has_whm_msg() {
		$val = self::get_option(self::WHM_MSG);
		if (!$val) {
			self::dismiss_whm();
			return false;
		}
		return $val == self::WHM_MSG_VAL;
	}

	/**
	 * Delete whm msg tag
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function dismiss_whm() {
		self::update_option(self::WHM_MSG, -1);
	}

	/**
	 * Set current page a litespeed page
	 *
	 * @since  2.9
	 */
	private function _is_litespeed_page() {
		if (
			!empty($_GET['page']) &&
			in_array($_GET['page'], array(
				'litespeed-settings',
				'litespeed-dash',
				Admin::PAGE_EDIT_HTACCESS,
				'litespeed-optimization',
				'litespeed-crawler',
				'litespeed-import',
				'litespeed-report',
			))
		) {
			return true;
		}

		return false;
	}

	/**
	 * Display promo banner
	 *
	 * @since 2.1
	 * @access public
	 */
	public function show_promo( $check_only = false ) {
		$is_litespeed_page = $this->_is_litespeed_page();

		// Bypass showing info banner if disabled all in debug
		if (defined('LITESPEED_DISABLE_ALL') && LITESPEED_DISABLE_ALL) {
			return false;
		}

		if (file_exists(ABSPATH . '.litespeed_no_banner')) {
			defined('LSCWP_LOG') && Debug2::debug('[GUI] Bypass banners due to silence file');
			return false;
		}

		foreach ($this->_promo_list as $promo_tag => $v) {
			list($delay_days, $litespeed_page_only) = $v;

			if ($litespeed_page_only && !$is_litespeed_page) {
				continue;
			}

			// first time check
			if (empty($this->_summary[$promo_tag])) {
				$this->_summary[$promo_tag] = time() + 86400 * $delay_days;
				self::save_summary();

				continue;
			}

			$promo_timestamp = $this->_summary[$promo_tag];

			// was ticked as done
			if ($promo_timestamp == 'done') {
				continue;
			}

			// Not reach the dateline yet
			if (time() < $promo_timestamp) {
				continue;
			}

			// try to load, if can pass, will set $this->_promo_true = true
			$this->_promo_true = false;
			include LSCWP_DIR . "tpl/banner/$promo_tag.php";

			// If not defined, means it didn't pass the display workflow in tpl.
			if (!$this->_promo_true) {
				continue;
			}

			if ($check_only) {
				return $promo_tag;
			}

			defined('LSCWP_LOG') && Debug2::debug('[GUI] Show promo ' . $promo_tag);

			// Only contain one
			break;
		}

		return false;
	}

	/**
	 * Load frontend public script
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function frontend_enqueue_style_public() {
		wp_enqueue_script(Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/js/instant_click.min.js', array(), Core::VER, true);
	}

	/**
	 * Load frontend menu shortcut
	 *
	 * @since  1.3
	 * @access public
	 */
	public function frontend_enqueue_style() {
		wp_enqueue_style(Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/css/litespeed.css', array(), Core::VER, 'all');
	}

	/**
	 * Load frontend menu shortcut
	 *
	 * @since  1.3
	 * @access public
	 */
	public function frontend_shortcut() {
		global $wp_admin_bar;

		$wp_admin_bar->add_menu(array(
			'id' => 'litespeed-menu',
			'title' => '<span class="ab-icon"></span>',
			'href' => get_admin_url(null, 'admin.php?page=litespeed'),
			'meta' => array(
				'tabindex' => 0,
				'class' => 'litespeed-top-toolbar',
			),
		));

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-purge-single',
			'title' => __('Purge this page', 'litespeed-cache') . ' - LSCache',
			'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_FRONT, false, true),
			'meta' => array( 'tabindex' => '0' ),
		));

		if ($this->has_cache_folder('ucss')) {
			$possible_url_tag = UCSS::get_url_tag();
			$append_arr       = array();
			if ($possible_url_tag) {
				$append_arr['url_tag'] = $possible_url_tag;
			}

			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-single-ucss',
				'title' => __('Purge this page', 'litespeed-cache') . ' - UCSS',
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_UCSS, false, true, $append_arr),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-single-action',
			'title' => __('Mark this page as ', 'litespeed-cache'),
			'meta' => array( 'tabindex' => '0' ),
		));

		if (!empty($_SERVER['REQUEST_URI'])) {
			$append_arr = array(
				Conf::TYPE_SET . '[' . self::O_CACHE_FORCE_URI . '][]' => $_SERVER['REQUEST_URI'] . '$',
				'redirect' => $_SERVER['REQUEST_URI'],
			);
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-single-action',
				'id' => 'litespeed-single-forced_cache',
				'title' => __('Forced cacheable', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr),
			));

			$append_arr = array(
				Conf::TYPE_SET . '[' . self::O_CACHE_EXC . '][]' => $_SERVER['REQUEST_URI'] . '$',
				'redirect' => $_SERVER['REQUEST_URI'],
			);
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-single-action',
				'id' => 'litespeed-single-noncache',
				'title' => __('Non cacheable', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr),
			));

			$append_arr = array(
				Conf::TYPE_SET . '[' . self::O_CACHE_PRIV_URI . '][]' => $_SERVER['REQUEST_URI'] . '$',
				'redirect' => $_SERVER['REQUEST_URI'],
			);
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-single-action',
				'id' => 'litespeed-single-private',
				'title' => __('Private cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr),
			));

			$append_arr = array(
				Conf::TYPE_SET . '[' . self::O_OPTM_EXC . '][]' => $_SERVER['REQUEST_URI'] . '$',
				'redirect' => $_SERVER['REQUEST_URI'],
			);
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-single-action',
				'id' => 'litespeed-single-nonoptimize',
				'title' => __('No optimization', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr),
			));
		}

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-single-action',
			'id' => 'litespeed-single-more',
			'title' => __('More settings', 'litespeed-cache'),
			'href' => get_admin_url(null, 'admin.php?page=litespeed-cache'),
		));

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-purge-all',
			'title' => __('Purge All', 'litespeed-cache'),
			'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL, false, '_ori'),
			'meta' => array( 'tabindex' => '0' ),
		));

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-purge-all-lscache',
			'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('LSCache', 'litespeed-cache'),
			'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE, false, '_ori'),
			'meta' => array( 'tabindex' => '0' ),
		));

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-purge-cssjs',
			'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('CSS/JS Cache', 'litespeed-cache'),
			'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CSSJS, false, '_ori'),
			'meta' => array( 'tabindex' => '0' ),
		));

		if ($this->conf(self::O_CDN_CLOUDFLARE)) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-cloudflare',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Cloudflare', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_PURGE_ALL),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if (defined('LSCWP_OBJECT_CACHE')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-object',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Object Cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OBJECT, false, '_ori'),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if (Router::opcache_enabled()) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-opcache',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Opcode Cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OPCACHE, false, '_ori'),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if ($this->has_cache_folder('ccss')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-ccss',
				'title' => __('Purge All', 'litespeed-cache') . ' - CCSS',
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CCSS, false, '_ori'),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if ($this->has_cache_folder('ucss')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-ucss',
				'title' => __('Purge All', 'litespeed-cache') . ' - UCSS',
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_UCSS, false, '_ori'),
			));
		}

		if ($this->has_cache_folder('localres')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-localres',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Localized Resources', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LOCALRES, false, '_ori'),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if ($this->has_cache_folder('lqip')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-placeholder',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('LQIP Cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LQIP, false, '_ori'),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if ($this->has_cache_folder('avatar')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-avatar',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Gravatar Cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_AVATAR, false, '_ori'),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		do_action('litespeed_frontend_shortcut');
	}

	/**
	 * Hooked to wp_before_admin_bar_render.
	 * Adds a link to the admin bar so users can quickly purge all.
	 *
	 * @access public
	 * @global WP_Admin_Bar $wp_admin_bar
	 * @since 1.7.2 Moved from admin_display.cls to gui.cls; Renamed from `add_quick_purge` to `backend_shortcut`
	 */
	public function backend_shortcut() {
		global $wp_admin_bar;

		if (defined('LITESPEED_DISABLE_ALL') && LITESPEED_DISABLE_ALL) {
			$wp_admin_bar->add_menu(array(
				'id' => 'litespeed-menu',
				'title' => '<span class="ab-icon icon_disabled" title="LiteSpeed Cache"></span>',
				'href' => 'admin.php?page=litespeed-toolbox#settings-debug',
				'meta' => array(
					'tabindex' => 0,
					'class' => 'litespeed-top-toolbar',
				),
			));
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-enable_all',
				'title' => __('Enable All Features', 'litespeed-cache'),
				'href' => 'admin.php?page=litespeed-toolbox#settings-debug',
				'meta' => array( 'tabindex' => '0' ),
			));
			return;
		}

		// if ( defined( 'LITESPEED_ON' ) ) {
		$wp_admin_bar->add_menu(array(
			'id' => 'litespeed-menu',
			'title' => '<span class="ab-icon" title="' . __('LiteSpeed Cache Purge All', 'litespeed-cache') . ' - ' . __('LSCache', 'litespeed-cache') . '"></span>',
			'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE),
			'meta' => array(
				'tabindex' => 0,
				'class' => 'litespeed-top-toolbar',
			),
		));
		// }
		// else {
		// $wp_admin_bar->add_menu( array(
		// 'id'    => 'litespeed-menu',
		// 'title' => '<span class="ab-icon" title="' . __( 'LiteSpeed Cache', 'litespeed-cache' ) . '"></span>',
		// 'meta'  => array( 'tabindex' => 0, 'class' => 'litespeed-top-toolbar' ),
		// ) );
		// }

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-bar-manage',
			'title' => __('Manage', 'litespeed-cache'),
			'href' => 'admin.php?page=litespeed',
			'meta' => array( 'tabindex' => '0' ),
		));

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-bar-setting',
			'title' => __('Settings', 'litespeed-cache'),
			'href' => 'admin.php?page=litespeed-cache',
			'meta' => array( 'tabindex' => '0' ),
		));

		if (!is_network_admin()) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-bar-imgoptm',
				'title' => __('Image Optimization', 'litespeed-cache'),
				'href' => 'admin.php?page=litespeed-img_optm',
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-purge-all',
			'title' => __('Purge All', 'litespeed-cache'),
			'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL),
			'meta' => array( 'tabindex' => '0' ),
		));

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-purge-all-lscache',
			'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('LSCache', 'litespeed-cache'),
			'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE),
			'meta' => array( 'tabindex' => '0' ),
		));

		$wp_admin_bar->add_menu(array(
			'parent' => 'litespeed-menu',
			'id' => 'litespeed-purge-cssjs',
			'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('CSS/JS Cache', 'litespeed-cache'),
			'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CSSJS),
			'meta' => array( 'tabindex' => '0' ),
		));

		if ($this->conf(self::O_CDN_CLOUDFLARE)) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-cloudflare',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Cloudflare', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_PURGE_ALL),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if (defined('LSCWP_OBJECT_CACHE')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-object',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Object Cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OBJECT),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if (Router::opcache_enabled()) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-opcache',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Opcode Cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OPCACHE),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if ($this->has_cache_folder('ccss')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-ccss',
				'title' => __('Purge All', 'litespeed-cache') . ' - CCSS',
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CCSS),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if ($this->has_cache_folder('ucss')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-ucss',
				'title' => __('Purge All', 'litespeed-cache') . ' - UCSS',
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_UCSS),
			));
		}

		if ($this->has_cache_folder('localres')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-localres',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Localized Resources', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LOCALRES),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if ($this->has_cache_folder('lqip')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-placeholder',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('LQIP Cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LQIP),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		if ($this->has_cache_folder('avatar')) {
			$wp_admin_bar->add_menu(array(
				'parent' => 'litespeed-menu',
				'id' => 'litespeed-purge-avatar',
				'title' => __('Purge All', 'litespeed-cache') . ' - ' . __('Gravatar Cache', 'litespeed-cache'),
				'href' => Utility::build_url(Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_AVATAR),
				'meta' => array( 'tabindex' => '0' ),
			));
		}

		do_action('litespeed_backend_shortcut');
	}

	/**
	 * Clear unfinished data
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function img_optm_clean_up( $unfinished_num ) {
		return sprintf(
			'<a href="%1$s" class="button litespeed-btn-warning" data-balloon-pos="up" aria-label="%2$s"><span class="dashicons dashicons-editor-removeformatting"></span>&nbsp;%3$s</a>',
			Utility::build_url(Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CLEAN),
			__('Remove all previous unfinished image optimization requests.', 'litespeed-cache'),
			__('Clean Up Unfinished Data', 'litespeed-cache') . ($unfinished_num ? ': ' . Admin_Display::print_plural($unfinished_num, 'image') : '')
		);
	}

	/**
	 * Generate install link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function plugin_install_link( $title, $name, $v ) {
		$url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $name), 'install-plugin_' . $name);

		$action = sprintf(
			'<a href="%1$s" class="install-now" data-slug="%2$s" data-name="%3$s" aria-label="%4$s">%5$s</a>',
			esc_url($url),
			esc_attr($name),
			esc_attr($title),
			esc_attr(sprintf(__('Install %s', 'litespeed-cache'), $title)),
			__('Install Now', 'litespeed-cache')
		);

		return $action;

		// $msg .= " <a href='$upgrade_link' class='litespeed-btn-success' target='_blank'>" . __( 'Click here to upgrade', 'litespeed-cache' ) . '</a>';
	}

	/**
	 * Generate upgrade link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function plugin_upgrade_link( $title, $name, $v ) {
		$details_url = self_admin_url('plugin-install.php?tab=plugin-information&plugin=' . $name . '&section=changelog&TB_iframe=true&width=600&height=800');
		$file        = $name . '/' . $name . '.php';

		$msg = sprintf(
			__('<a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.', 'litespeed-cache'),
			esc_url($details_url),
			sprintf('class="thickbox open-plugin-details-modal" aria-label="%s"', esc_attr(sprintf(__('View %1$s version %2$s details', 'litespeed-cache'), $title, $v))),
			$v,
			wp_nonce_url(self_admin_url('update.php?action=upgrade-plugin&plugin=') . $file, 'upgrade-plugin_' . $file),
			sprintf('class="update-link" aria-label="%s"', esc_attr(sprintf(__('Update %s now', 'litespeed-cache'), $title)))
		);

		return $msg;
	}

	/**
	 * Finalize buffer by GUI class
	 *
	 * @since  1.6
	 * @access public
	 */
	public function finalize( $buffer ) {
		$buffer = $this->_clean_wrapper($buffer);

		// Maybe restore doc.ref
		if ($this->conf(Base::O_GUEST) && strpos($buffer, '<head>') !== false && defined('LITESPEED_IS_HTML')) {
			$buffer = $this->_enqueue_guest_docref_js($buffer);
		}

		if (defined('LITESPEED_GUEST') && LITESPEED_GUEST && strpos($buffer, '</body>') !== false && defined('LITESPEED_IS_HTML')) {
			$buffer = $this->_enqueue_guest_js($buffer);
		}

		return $buffer;
	}

	/**
	 * Append guest restore doc.ref JS for organic traffic count
	 *
	 * @since  4.4.6
	 */
	private function _enqueue_guest_docref_js( $buffer ) {
		$js_con = File::read(LSCWP_DIR . self::LIB_GUEST_DOCREF_JS);
		$buffer = preg_replace('/<head>/', '<head><script data-no-optimize="1">' . $js_con . '</script>', $buffer, 1);
		return $buffer;
	}

	/**
	 * Append guest JS to update vary
	 *
	 * @since  4.0
	 */
	private function _enqueue_guest_js( $buffer ) {
		$js_con = File::read(LSCWP_DIR . self::LIB_GUEST_JS);
		// $guest_update_url = add_query_arg( 'litespeed_guest', 1, home_url( '/' ) );
		$guest_update_url = parse_url(LSWCP_PLUGIN_URL . self::PHP_GUEST, PHP_URL_PATH);
		$js_con           = str_replace('litespeed_url', esc_url($guest_update_url), $js_con);
		$buffer           = preg_replace('/<\/body>/', '<script data-no-optimize="1">' . $js_con . '</script></body>', $buffer, 1);
		return $buffer;
	}

	/**
	 * Clean wrapper from buffer
	 *
	 * @since  1.4
	 * @since  1.6 converted to private with adding prefix _
	 * @access private
	 */
	private function _clean_wrapper( $buffer ) {
		if (self::$_clean_counter < 1) {
			Debug2::debug2('GUI bypassed by no counter');
			return $buffer;
		}

		Debug2::debug2('GUI start cleaning counter ' . self::$_clean_counter);

		for ($i = 1; $i <= self::$_clean_counter; $i++) {
			// If miss beginning
			$start = strpos($buffer, self::clean_wrapper_begin($i));
			if ($start === false) {
				$buffer = str_replace(self::clean_wrapper_end($i), '', $buffer);
				Debug2::debug2("GUI lost beginning wrapper $i");
				continue;
			}

			// If miss end
			$end_wrapper = self::clean_wrapper_end($i);
			$end         = strpos($buffer, $end_wrapper);
			if ($end === false) {
				$buffer = str_replace(self::clean_wrapper_begin($i), '', $buffer);
				Debug2::debug2("GUI lost ending wrapper $i");
				continue;
			}

			// Now replace wrapped content
			$buffer = substr_replace($buffer, '', $start, $end - $start + strlen($end_wrapper));
			Debug2::debug2("GUI cleaned wrapper $i");
		}

		return $buffer;
	}

	/**
	 * Display a to-be-removed html wrapper
	 *
	 * @since  1.4
	 * @access public
	 */
	public static function clean_wrapper_begin( $counter = false ) {
		if ($counter === false) {
			++self::$_clean_counter;
			$counter = self::$_clean_counter;
			Debug2::debug("GUI clean wrapper $counter begin");
		}
		return '<!-- LiteSpeed To Be Removed begin ' . $counter . ' -->';
	}

	/**
	 * Display a to-be-removed html wrapper
	 *
	 * @since  1.4
	 * @access public
	 */
	public static function clean_wrapper_end( $counter = false ) {
		if ($counter === false) {
			$counter = self::$_clean_counter;
			Debug2::debug("GUI clean wrapper $counter end");
		}
		return '<!-- LiteSpeed To Be Removed end ' . $counter . ' -->';
	}
}
<?php

/**
 * The plugin vary class to manage X-LiteSpeed-Vary
 *
 * @since       1.1.3
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Vary extends Root {

	const LOG_TAG  = '🔱';
	const X_HEADER = 'X-LiteSpeed-Vary';

	private static $_vary_name       = '_lscache_vary'; // this default vary cookie is used for logged in status check
	private static $_can_change_vary = false; // Currently only AJAX used this

	/**
	 * Adds the actions used for setting up cookies on log in/out.
	 *
	 * Also checks if the database matches the rewrite rule.
	 *
	 * @since 1.0.4
	 */
	// public function init()
	// {
	// $this->_update_vary_name();
	// }

	/**
	 * Update the default vary name if changed
	 *
	 * @since  4.0
	 * @since 7.0 Moved to after_user_init to allow ESI no-vary no conflict w/ LSCACHE_VARY_COOKIE/O_CACHE_LOGIN_COOKIE
	 */
	private function _update_vary_name() {
		$db_cookie = $this->conf(Base::O_CACHE_LOGIN_COOKIE); // [3.0] todo: check if works in network's sites
		// If no vary set in rewrite rule
		if (!isset($_SERVER['LSCACHE_VARY_COOKIE'])) {
			if ($db_cookie) {
				// Check if is from ESI req or not. If from ESI no-vary, no need to set no-cache
				$something_wrong = true;
				if (!empty($_GET[ESI::QS_ACTION]) && !empty($_GET['_control'])) {
					// Have to manually build this checker bcoz ESI is not init yet.
					$control = explode(',', $_GET['_control']);
					if (in_array('no-vary', $control)) {
						self::debug('no-vary control existed, bypass vary_name update');
						$something_wrong  = false;
						self::$_vary_name = $db_cookie;
					}
				}

				if (defined('LITESPEED_CLI') || wp_doing_cron()) {
					$something_wrong = false;
				}

				if ($something_wrong) {
					// Display cookie error msg to admin
					if (is_multisite() ? is_network_admin() : is_admin()) {
						Admin_Display::show_error_cookie();
					}
					Control::set_nocache('❌❌ vary cookie setting error');
				}
			}
			return;
		}
		// If db setting does not exist, skip checking db value
		if (!$db_cookie) {
			return;
		}

		// beyond this point, need to make sure db vary setting is in $_SERVER env.
		$vary_arr = explode(',', $_SERVER['LSCACHE_VARY_COOKIE']);

		if (in_array($db_cookie, $vary_arr)) {
			self::$_vary_name = $db_cookie;
			return;
		}

		if (is_multisite() ? is_network_admin() : is_admin()) {
			Admin_Display::show_error_cookie();
		}
		Control::set_nocache('vary cookie setting lost error');
	}

	/**
	 * Hooks after user init
	 *
	 * @since  4.0
	 */
	public function after_user_init() {
		$this->_update_vary_name();

		// logged in user
		if (Router::is_logged_in()) {
			// If not esi, check cache logged-in user setting
			if (!$this->cls('Router')->esi_enabled()) {
				// If cache logged-in, then init cacheable to private
				if ($this->conf(Base::O_CACHE_PRIV) && !is_admin()) {
					add_action('wp_logout', __NAMESPACE__ . '\Purge::purge_on_logout');

					$this->cls('Control')->init_cacheable();
					Control::set_private('logged in user');
				}
				// No cache for logged-in user
				else {
					Control::set_nocache('logged in user');
				}
			}
			// ESI is on, can be public cache
			elseif (!is_admin()) {
				// Need to make sure vary is using group id
				$this->cls('Control')->init_cacheable();
			}

			// register logout hook to clear login status
			add_action('clear_auth_cookie', array( $this, 'remove_logged_in' ));
		} else {
			// Only after vary init, can detect if is Guest mode or not
			// Here need `self::$_vary_name` to be set first.
			$this->_maybe_guest_mode();

			// Set vary cookie for logging in user, otherwise the user will hit public with vary=0 (guest version)
			add_action('set_logged_in_cookie', array( $this, 'add_logged_in' ), 10, 4);
			add_action('wp_login', __NAMESPACE__ . '\Purge::purge_on_logout');

			$this->cls('Control')->init_cacheable();

			// Check `login page` cacheable setting because they don't go through main WP logic
			add_action('login_init', array( $this->cls('Tag'), 'check_login_cacheable' ), 5);

			if (!empty($_GET['litespeed_guest'])) {
				add_action('wp_loaded', array( $this, 'update_guest_vary' ), 20);
			}
		}

		// Add comment list ESI
		add_filter('comments_array', array( $this, 'check_commenter' ));

		// Set vary cookie for commenter.
		add_action('set_comment_cookies', array( $this, 'append_commenter' ));

		/**
		 * Don't change for REST call because they don't carry on user info usually
		 *
		 * @since 1.6.7
		 */
		add_action('rest_api_init', function () {
			// this hook is fired in `init` hook
			self::debug('Rest API init disabled vary change');
			add_filter('litespeed_can_change_vary', '__return_false');
		});
	}

	/**
	 * Check if is Guest mode or not
	 *
	 * @since  4.0
	 */
	private function _maybe_guest_mode() {
		if (defined('LITESPEED_GUEST')) {
			self::debug('👒👒 Guest mode ' . (LITESPEED_GUEST ? 'predefined' : 'turned off'));
			return;
		}

		if (!$this->conf(Base::O_GUEST)) {
			return;
		}

		// If vary is set, then not a guest
		if (self::has_vary()) {
			return;
		}

		// If has admin QS, then no guest
		if (!empty($_GET[Router::ACTION])) {
			return;
		}

		if (wp_doing_ajax()) {
			return;
		}

		if (wp_doing_cron()) {
			return;
		}

		// If is the request to update vary, then no guest
		// Don't need anymore as it is always ajax call
		// Still keep it in case some WP blocked the lightweight guest vary update script, WP can still update the vary
		if (!empty($_GET['litespeed_guest'])) {
			return;
		}

		/* @ref https://wordpress.org/support/topic/checkout-add-to-cart-executed-twice/ */
		if (!empty($_GET['litespeed_guest_off'])) {
			return;
		}

		self::debug('👒👒 Guest mode');

		!defined('LITESPEED_GUEST') && define('LITESPEED_GUEST', true);

		if ($this->conf(Base::O_GUEST_OPTM)) {
			!defined('LITESPEED_GUEST_OPTM') && define('LITESPEED_GUEST_OPTM', true);
		}
	}

	/**
	 * Update Guest vary
	 *
	 * @since  4.0
	 * @deprecated 4.1 Use independent lightweight guest.vary.php as a replacement
	 */
	public function update_guest_vary() {
		// This process must not be cached
		!defined('LSCACHE_NO_CACHE') && define('LSCACHE_NO_CACHE', true);

		$_guest = new Lib\Guest();
		if ($_guest->always_guest() || self::has_vary()) {
			// If contains vary already, don't reload to avoid infinite loop when parent page having browser cache
			!defined('LITESPEED_GUEST') && define('LITESPEED_GUEST', true); // Reuse this const to bypass set vary in vary finalize
			self::debug('🤠🤠 Guest');
			echo '[]';
			exit();
		}

		self::debug('Will update guest vary in finalize');

		// return json
		echo \json_encode(array( 'reload' => 'yes' ));
		exit();
	}

	/**
	 * Hooked to the comments_array filter.
	 *
	 * Check if the user accessing the page has the commenter cookie.
	 *
	 * If the user does not want to cache commenters, just check if user is commenter.
	 * Otherwise if the vary cookie is set, unset it. This is so that when the page is cached, the page will appear as if the user was a normal user.
	 * Normal user is defined as not a logged in user and not a commenter.
	 *
	 * @since 1.0.4
	 * @access public
	 * @global type $post
	 * @param array $comments The current comments to output
	 * @return array The comments to output.
	 */
	public function check_commenter( $comments ) {
		/**
		 * Hook to bypass pending comment check for comment related plugins compatibility
		 *
		 * @since 2.9.5
		 */
		if (apply_filters('litespeed_vary_check_commenter_pending', true)) {
			$pending = false;
			foreach ($comments as $comment) {
				if (!$comment->comment_approved) {
					// current user has pending comment
					$pending = true;
					break;
				}
			}

			// No pending comments, don't need to add private cache
			if (!$pending) {
				self::debug('No pending comment');
				$this->remove_commenter();

				// Remove commenter prefilled info if exists, for public cache
				foreach ($_COOKIE as $cookie_name => $cookie_value) {
					if (strlen($cookie_name) >= 15 && strpos($cookie_name, 'comment_author_') === 0) {
						unset($_COOKIE[$cookie_name]);
					}
				}

				return $comments;
			}
		}

		// Current user/visitor has pending comments
		// set vary=2 for next time vary lookup
		$this->add_commenter();

		if ($this->conf(Base::O_CACHE_COMMENTER)) {
			Control::set_private('existing commenter');
		} else {
			Control::set_nocache('existing commenter');
		}

		return $comments;
	}

	/**
	 * Check if default vary has a value
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function has_vary() {
		if (empty($_COOKIE[self::$_vary_name])) {
			return false;
		}
		return $_COOKIE[self::$_vary_name];
	}

	/**
	 * Append user status with logged in
	 *
	 * @since 1.1.3
	 * @since 1.6.2 Removed static referral
	 * @access public
	 */
	public function add_logged_in( $logged_in_cookie = false, $expire = false, $expiration = false, $uid = false ) {
		self::debug('add_logged_in');

		/**
		 * NOTE: Run before `$this->_update_default_vary()` to make vary changeable
		 *
		 * @since  2.2.2
		 */
		self::can_ajax_vary();

		// If the cookie is lost somehow, set it
		$this->_update_default_vary($uid, $expire);
	}

	/**
	 * Remove user logged in status
	 *
	 * @since 1.1.3
	 * @since 1.6.2 Removed static referral
	 * @access public
	 */
	public function remove_logged_in() {
		self::debug('remove_logged_in');

		/**
		 * NOTE: Run before `$this->_update_default_vary()` to make vary changeable
		 *
		 * @since  2.2.2
		 */
		self::can_ajax_vary();

		// Force update vary to remove login status
		$this->_update_default_vary(-1);
	}

	/**
	 * Allow vary can be changed for ajax calls
	 *
	 * @since 2.2.2
	 * @since 2.6 Changed to static
	 * @access public
	 */
	public static function can_ajax_vary() {
		self::debug('_can_change_vary -> true');
		self::$_can_change_vary = true;
	}

	/**
	 * Check if can change default vary
	 *
	 * @since 1.6.2
	 * @access private
	 */
	private function can_change_vary() {
		// Don't change for ajax due to ajax not sending webp header
		if (Router::is_ajax()) {
			if (!self::$_can_change_vary) {
				self::debug('can_change_vary bypassed due to ajax call');
				return false;
			}
		}

		/**
		 * POST request can set vary to fix #820789 login "loop" guest cache issue
		 *
		 * @since 1.6.5
		 */
		if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] !== 'GET' && $_SERVER['REQUEST_METHOD'] !== 'POST') {
			self::debug('can_change_vary bypassed due to method not get/post');
			return false;
		}

		/**
		 * Disable vary change if is from crawler
		 *
		 * @since  2.9.8 To enable woocommerce cart not empty warm up (@Taba)
		 */
		if (!empty($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], Crawler::FAST_USER_AGENT) === 0) {
			self::debug('can_change_vary bypassed due to crawler');
			return false;
		}

		if (!apply_filters('litespeed_can_change_vary', true)) {
			self::debug('can_change_vary bypassed due to litespeed_can_change_vary hook');
			return false;
		}

		return true;
	}

	/**
	 * Update default vary
	 *
	 * @since 1.6.2
	 * @since  1.6.6.1 Add ran check to make it only run once ( No run multiple times due to login process doesn't have valid uid )
	 * @access private
	 */
	private function _update_default_vary( $uid = false, $expire = false ) {
		// Make sure header output only run once
		if (!defined('LITESPEED_DID_' . __FUNCTION__)) {
			define('LITESPEED_DID_' . __FUNCTION__, true);
		} else {
			self::debug2('_update_default_vary bypassed due to run already');
			return;
		}

		// ESI shouldn't change vary (Let main page do only)
		if (defined('LSCACHE_IS_ESI') && LSCACHE_IS_ESI) {
			self::debug2('_update_default_vary bypassed due to ESI');
			return;
		}

		// If the cookie is lost somehow, set it
		$vary         = $this->finalize_default_vary($uid);
		$current_vary = self::has_vary();
		if ($current_vary !== $vary && $current_vary !== 'commenter' && $this->can_change_vary()) {
			// $_COOKIE[ self::$_vary_name ] = $vary; // not needed

			// save it
			if (!$expire) {
				$expire = time() + 2 * DAY_IN_SECONDS;
			}
			$this->_cookie($vary, $expire);
			// Control::set_nocache( 'changing default vary' . " $current_vary => $vary" );
		}
	}

	/**
	 * Get vary name
	 *
	 * @since 1.9.1
	 * @access public
	 */
	public function get_vary_name() {
		return self::$_vary_name;
	}

	/**
	 * Check if one user role is in vary group settings
	 *
	 * @since 1.2.0
	 * @since  3.0 Moved here from conf.cls
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_vary_group( $role ) {
		$group       = 0;
		$vary_groups = $this->conf(Base::O_CACHE_VARY_GROUP);

		$roles = explode(',', $role);
		if ($found = array_intersect($roles, array_keys($vary_groups))) {
			$groups = array();
			foreach ($found as $curr_role) {
				$groups[] = $vary_groups[$curr_role];
			}
			$group = implode(',', array_unique($groups));
		} elseif (in_array('administrator', $roles)) {
			$group = 99;
		}

		if ($group) {
			self::debug2('role in vary_group [group] ' . $group);
		}

		return $group;
	}

	/**
	 * Finalize default Vary Cookie
	 *
	 *  Get user vary tag based on admin_bar & role
	 *
	 * NOTE: Login process will also call this because it does not call wp hook as normal page loading
	 *
	 * @since 1.6.2
	 * @access public
	 */
	public function finalize_default_vary( $uid = false ) {
		// Must check this to bypass vary generation for guests
		// Must check this to avoid Guest page's CSS/JS/CCSS/UCSS get non-guest vary filename
		if (defined('LITESPEED_GUEST') && LITESPEED_GUEST) {
			return false;
		}

		$vary = array();

		if ($this->conf(Base::O_GUEST)) {
			$vary['guest_mode'] = 1;
		}

		if (!$uid) {
			$uid = get_current_user_id();
		} else {
			self::debug('uid: ' . $uid);
		}

		// get user's group id
		$role = Router::get_role($uid);

		if ($uid > 0 && $role) {
			$vary['logged-in'] = 1;

			// parse role group from settings
			if ($role_group = $this->in_vary_group($role)) {
				$vary['role'] = $role_group;
			}

			// Get admin bar set
			// see @_get_admin_bar_pref()
			$pref = get_user_option('show_admin_bar_front', $uid);
			self::debug2('show_admin_bar_front: ' . $pref);
			$admin_bar = $pref === false || $pref === 'true';

			if ($admin_bar) {
				$vary['admin_bar'] = 1;
				self::debug2('admin bar : true');
			}
		} else {
			// Guest user
			self::debug('role id: failed, guest');
		}

		/**
		 * Add filter
		 *
		 * @since 1.6 Added for Role Excludes for optimization cls
		 * @since 1.6.2 Hooked to webp (checked in v4, no webp anymore)
		 * @since 3.0 Used by 3rd hooks too
		 */
		$vary = apply_filters('litespeed_vary', $vary);

		if (!$vary) {
			return false;
		}

		ksort($vary);
		$res = array();
		foreach ($vary as $key => $val) {
			$res[] = $key . ':' . $val;
		}

		$res = implode(';', $res);
		if (defined('LSCWP_LOG')) {
			return $res;
		}
		// Encrypt in production
		return md5($this->conf(Base::HASH) . $res);
	}

	/**
	 * Get the hash of all vary related values
	 *
	 * @since  4.0
	 */
	public function finalize_full_varies() {
		$vary  = $this->_finalize_curr_vary_cookies(true);
		$vary .= $this->finalize_default_vary(get_current_user_id());
		$vary .= $this->get_env_vary();
		return $vary;
	}

	/**
	 * Get request environment Vary
	 *
	 * @since  4.0
	 */
	public function get_env_vary() {
		$env_vary = isset($_SERVER['LSCACHE_VARY_VALUE']) ? $_SERVER['LSCACHE_VARY_VALUE'] : false;
		if (!$env_vary) {
			$env_vary = isset($_SERVER['HTTP_X_LSCACHE_VARY_VALUE']) ? $_SERVER['HTTP_X_LSCACHE_VARY_VALUE'] : false;
		}
		return $env_vary;
	}

	/**
	 * Append user status with commenter
	 *
	 * This is ONLY used when submit a comment
	 *
	 * @since 1.1.6
	 * @access public
	 */
	public function append_commenter() {
		$this->add_commenter(true);
	}

	/**
	 * Correct user status with commenter
	 *
	 * @since 1.1.3
	 * @access private
	 * @param  boolean $from_redirect If the request is from redirect page or not
	 */
	private function add_commenter( $from_redirect = false ) {
		// If the cookie is lost somehow, set it
		if (self::has_vary() !== 'commenter') {
			self::debug('Add commenter');
			// $_COOKIE[ self::$_vary_name ] = 'commenter'; // not needed

			// save it
			// only set commenter status for current domain path
			$this->_cookie('commenter', time() + apply_filters('comment_cookie_lifetime', 30000000), self::_relative_path($from_redirect));
			// Control::set_nocache( 'adding commenter status' );
		}
	}

	/**
	 * Remove user commenter status
	 *
	 * @since 1.1.3
	 * @access private
	 */
	private function remove_commenter() {
		if (self::has_vary() === 'commenter') {
			self::debug('Remove commenter');
			// remove logged in status from global var
			// unset( $_COOKIE[ self::$_vary_name ] ); // not needed

			// save it
			$this->_cookie(false, false, self::_relative_path());
			// Control::set_nocache( 'removing commenter status' );
		}
	}

	/**
	 * Generate relative path for cookie
	 *
	 * @since 1.1.3
	 * @access private
	 * @param  boolean $from_redirect If the request is from redirect page or not
	 */
	private static function _relative_path( $from_redirect = false ) {
		$path = false;
		$tag  = $from_redirect ? 'HTTP_REFERER' : 'SCRIPT_URL';
		if (!empty($_SERVER[$tag])) {
			$path = parse_url($_SERVER[$tag]);
			$path = !empty($path['path']) ? $path['path'] : false;
			self::debug('Cookie Vary path: ' . $path);
		}
		return $path;
	}

	/**
	 * Builds the vary header.
	 *
	 * NOTE: Non caccheable page can still set vary ( for logged in process )
	 *
	 * Currently, this only checks post passwords and 3rd party.
	 *
	 * @since 1.0.13
	 * @access public
	 * @global $post
	 * @return mixed false if the user has the postpass cookie. Empty string if the post is not password protected. Vary header otherwise.
	 */
	public function finalize() {
		// Finalize default vary
		if (!defined('LITESPEED_GUEST') || !LITESPEED_GUEST) {
			$this->_update_default_vary();
		}

		$tp_cookies = $this->_finalize_curr_vary_cookies();

		if (!$tp_cookies) {
			self::debug2('no custimzed vary');
			return;
		}

		self::debug('finalized 3rd party cookies', $tp_cookies);

		return self::X_HEADER . ': ' . implode(',', $tp_cookies);
	}

	/**
	 * Gets vary cookies or their values unique hash that are already added for the current page.
	 *
	 * @since 1.0.13
	 * @access private
	 * @return array List of all vary cookies currently added.
	 */
	private function _finalize_curr_vary_cookies( $values_json = false ) {
		global $post;

		$cookies = array(); // No need to append default vary cookie name

		if (!empty($post->post_password)) {
			$postpass_key = 'wp-postpass_' . COOKIEHASH;
			if ($this->_get_cookie_val($postpass_key)) {
				self::debug('finalize bypassed due to password protected vary ');
				// If user has password cookie, do not cache & ignore existing vary cookies
				Control::set_nocache('password protected vary');
				return false;
			}

			$cookies[] = $values_json ? $this->_get_cookie_val($postpass_key) : $postpass_key;
		}

		$cookies = apply_filters('litespeed_vary_curr_cookies', $cookies);
		if ($cookies) {
			$cookies = array_filter(array_unique($cookies));
			self::debug('vary cookies changed by filter litespeed_vary_curr_cookies', $cookies);
		}

		if (!$cookies) {
			return false;
		}
		// Format cookie name data or value data
		sort($cookies); // This is to maintain the cookie val orders for $values_json=true case.
		foreach ($cookies as $k => $v) {
			$cookies[$k] = $values_json ? $this->_get_cookie_val($v) : 'cookie=' . $v;
		}

		return $values_json ? \json_encode($cookies) : $cookies;
	}

	/**
	 * Get one vary cookie value
	 *
	 * @since  4.0
	 */
	private function _get_cookie_val( $key ) {
		if (!empty($_COOKIE[$key])) {
			return $_COOKIE[$key];
		}

		return false;
	}

	/**
	 * Set the vary cookie.
	 *
	 * If vary cookie changed, must set non cacheable.
	 *
	 * @since 1.0.4
	 * @access private
	 * @param int|false $val    The value to update.
	 * @param int       $expire Expire time.
	 * @param bool      $path   False if use wp root path as cookie path
	 */
	private function _cookie( $val = false, $expire = 0, $path = false ) {
		if (!$val) {
			$expire = 1;
		}

		/**
		 * Add HTTPS bypass in case clients use both HTTP and HTTPS version of site
		 *
		 * @since 1.7
		 */
		$is_ssl = $this->conf(Base::O_UTIL_NO_HTTPS_VARY) ? false : is_ssl();

		setcookie(self::$_vary_name, $val, $expire, $path ?: COOKIEPATH, COOKIE_DOMAIN, $is_ssl, true);
		self::debug('set_cookie ---> [k] ' . self::$_vary_name . " [v] $val [ttl] " . ($expire - time()));
	}
}
<?php

/**
 * The class to store and manage litespeed db data.
 *
 * @since       1.3.1
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/src
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Data extends Root {

	const LOG_TAG = '🚀';

	private $_db_updater = array(
		'3.5.0.3' => array( 'litespeed_update_3_5' ),
		'4.0' => array( 'litespeed_update_4' ),
		'4.1' => array( 'litespeed_update_4_1' ),
		'4.3' => array( 'litespeed_update_4_3' ),
		'4.4.4-b1' => array( 'litespeed_update_4_4_4' ),
		'5.3-a5' => array( 'litespeed_update_5_3' ),
		'7.0-b26' => array( 'litespeed_update_7' ),
		'7.0.1-b1' => array( 'litespeed_update_7_0_1' ),
	);

	private $_db_site_updater = array(
		// Example
		// '2.0'    => array(
		// 'litespeed_update_site_2_0',
		// ),
	);

	private $_url_file_types = array(
		'css' => 1,
		'js' => 2,
		'ccss' => 3,
		'ucss' => 4,
	);

	const TB_IMG_OPTM          = 'litespeed_img_optm';
	const TB_IMG_OPTMING       = 'litespeed_img_optming'; // working table
	const TB_AVATAR            = 'litespeed_avatar';
	const TB_CRAWLER           = 'litespeed_crawler';
	const TB_CRAWLER_BLACKLIST = 'litespeed_crawler_blacklist';
	const TB_URL               = 'litespeed_url';
	const TB_URL_FILE          = 'litespeed_url_file';

	/**
	 * Init
	 *
	 * @since  1.3.1
	 */
	public function __construct() {
	}

	/**
	 * Correct table existence
	 *
	 * Call when activate -> update_confs()
	 * Call when update_confs()
	 *
	 * @since  3.0
	 * @access public
	 */
	public function correct_tb_existence() {
		// Gravatar
		if ($this->conf(Base::O_DISCUSS_AVATAR_CACHE)) {
			$this->tb_create('avatar');
		}

		// Crawler
		if ($this->conf(Base::O_CRAWLER)) {
			$this->tb_create('crawler');
			$this->tb_create('crawler_blacklist');
		}

		// URL mapping
		$this->tb_create('url');
		$this->tb_create('url_file');

		// Image optm is a bit different. Only trigger creation when sending requests. Drop when destroying.
	}

	/**
	 * Upgrade conf to latest format version from previous versions
	 *
	 * NOTE: Only for v3.0+
	 *
	 * @since 3.0
	 * @access public
	 */
	public function conf_upgrade( $ver ) {
		// Skip count check if `Use Primary Site Configurations` is on
		// Deprecated since v3.0 as network primary site didn't override the subsites conf yet
		// if ( ! is_main_site() && ! empty ( $this->_site_options[ self::NETWORK_O_USE_PRIMARY ] ) ) {
		// return;
		// }

		if ($this->_get_upgrade_lock()) {
			return;
		}

		$this->_set_upgrade_lock(true);

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		// Init log manually
		if ($this->conf(Base::O_DEBUG)) {
			$this->cls('Debug2')->init();
		}

		foreach ($this->_db_updater as $k => $v) {
			if (version_compare($ver, $k, '<')) {
				// run each callback
				foreach ($v as $v2) {
					self::debug("Updating [ori_v] $ver \t[to] $k \t[func] $v2");
					call_user_func($v2);
				}
			}
		}

		// Reload options
		$this->cls('Conf')->load_options();

		$this->correct_tb_existence();

		// Update related files
		$this->cls('Activation')->update_files();

		// Update version to latest
		Conf::delete_option(Base::_VER);
		Conf::add_option(Base::_VER, Core::VER);

		self::debug('Updated version to ' . Core::VER);

		$this->_set_upgrade_lock(false);

		!defined('LSWCP_EMPTYCACHE') && define('LSWCP_EMPTYCACHE', true); // clear all sites caches
		Purge::purge_all();

		return 'upgrade';
	}

	/**
	 * Upgrade site conf to latest format version from previous versions
	 *
	 * NOTE: Only for v3.0+
	 *
	 * @since 3.0
	 * @access public
	 */
	public function conf_site_upgrade( $ver ) {
		if ($this->_get_upgrade_lock()) {
			return;
		}

		$this->_set_upgrade_lock(true);

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		foreach ($this->_db_site_updater as $k => $v) {
			if (version_compare($ver, $k, '<')) {
				// run each callback
				foreach ($v as $v2) {
					self::debug("Updating site [ori_v] $ver \t[to] $k \t[func] $v2");
					call_user_func($v2);
				}
			}
		}

		// Reload options
		$this->cls('Conf')->load_site_options();

		Conf::delete_site_option(Base::_VER);
		Conf::add_site_option(Base::_VER, Core::VER);

		self::debug('Updated site_version to ' . Core::VER);

		$this->_set_upgrade_lock(false);

		!defined('LSWCP_EMPTYCACHE') && define('LSWCP_EMPTYCACHE', true); // clear all sites caches
		Purge::purge_all();
	}

	/**
	 * Check if upgrade script is running or not
	 *
	 * @since 3.0.1
	 */
	private function _get_upgrade_lock() {
		$is_upgrading = get_option('litespeed.data.upgrading');
		if (!$is_upgrading) {
			$this->_set_upgrade_lock(false); // set option value to existed to avoid repeated db query next time
		}
		if ($is_upgrading && time() - $is_upgrading < 3600) {
			return $is_upgrading;
		}

		return false;
	}

	/**
	 * Show the upgrading banner if upgrade script is running
	 *
	 * @since 3.0.1
	 */
	public function check_upgrading_msg() {
		$is_upgrading = $this->_get_upgrade_lock();
		if (!$is_upgrading) {
			return;
		}

		Admin_Display::info(
			sprintf(
				__('The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.', 'litespeed-cache'),
				'<code>' . Utility::readable_time($is_upgrading) . '</code>'
			) . ' [LiteSpeed]',
			true
		);
	}

	/**
	 * Set lock for upgrade process
	 *
	 * @since 3.0.1
	 */
	private function _set_upgrade_lock( $lock ) {
		if (!$lock) {
			update_option('litespeed.data.upgrading', -1);
		} else {
			update_option('litespeed.data.upgrading', time());
		}
	}

	/**
	 * Upgrade the conf to v3.0 from previous v3.0- data
	 *
	 * NOTE: Only for v3.0-
	 *
	 * @since 3.0
	 * @access public
	 */
	public function try_upgrade_conf_3_0() {
		$previous_options = get_option('litespeed-cache-conf');
		if (!$previous_options) {
			return 'new';
		}

		$ver = $previous_options['version'];

		!defined('LSCWP_CUR_V') && define('LSCWP_CUR_V', $ver);

		// Init log manually
		if ($this->conf(Base::O_DEBUG)) {
			$this->cls('Debug2')->init();
		}
		self::debug('Upgrading previous settings [from] ' . $ver . ' [to] v3.0');

		if ($this->_get_upgrade_lock()) {
			return;
		}

		$this->_set_upgrade_lock(true);

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		// Here inside will update the version to v3.0
		litespeed_update_3_0($ver);

		$this->_set_upgrade_lock(false);

		self::debug('Upgraded to v3.0');

		// Upgrade from 3.0 to latest version
		$ver = '3.0';
		if (Core::VER != $ver) {
			return $this->conf_upgrade($ver);
		} else {
			// Reload options
			$this->cls('Conf')->load_options();

			$this->correct_tb_existence();

			!defined('LSWCP_EMPTYCACHE') && define('LSWCP_EMPTYCACHE', true); // clear all sites caches
			Purge::purge_all();

			return 'upgrade';
		}
	}

	/**
	 * Get the table name
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb( $tb ) {
		global $wpdb;

		switch ($tb) {
			case 'img_optm':
				return $wpdb->prefix . self::TB_IMG_OPTM;
				break;

			case 'img_optming':
				return $wpdb->prefix . self::TB_IMG_OPTMING;
				break;

			case 'avatar':
				return $wpdb->prefix . self::TB_AVATAR;
				break;

			case 'crawler':
				return $wpdb->prefix . self::TB_CRAWLER;
				break;

			case 'crawler_blacklist':
				return $wpdb->prefix . self::TB_CRAWLER_BLACKLIST;
				break;

			case 'url':
				return $wpdb->prefix . self::TB_URL;
				break;

			case 'url_file':
				return $wpdb->prefix . self::TB_URL_FILE;
				break;

			default:
				break;
		}
	}

	/**
	 * Check if one table exists or not
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_exist( $tb ) {
		global $wpdb;

		$save_state = $wpdb->suppress_errors;
		$wpdb->suppress_errors(true);
		$describe = $wpdb->get_var('DESCRIBE `' . $this->tb($tb) . '`');
		$wpdb->suppress_errors($save_state);

		return $describe !== null;
	}

	/**
	 * Get data structure of one table
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _tb_structure( $tb ) {
		return File::read(LSCWP_DIR . 'src/data_structure/' . $tb . '.sql');
	}

	/**
	 * Create img optm table and sync data from wp_postmeta
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_create( $tb ) {
		global $wpdb;

		self::debug2('[Data] Checking table ' . $tb);

		// Check if table exists first
		if ($this->tb_exist($tb)) {
			self::debug2('[Data] Existed');
			return;
		}

		self::debug('Creating ' . $tb);

		$sql = sprintf(
			'CREATE TABLE IF NOT EXISTS `%1$s` (' . $this->_tb_structure($tb) . ') %2$s;',
			$this->tb($tb),
			$wpdb->get_charset_collate() // 'DEFAULT CHARSET=utf8'
		);

		$res = $wpdb->query($sql);
		if ($res !== true) {
			self::debug('Warning! Creating table failed!', $sql);
			Admin_Display::error(Error::msg('failed_tb_creation', array( '<code>' . $tb . '</code>', '<code>' . $sql . '</code>' )));
		}
	}

	/**
	 * Drop table
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_del( $tb ) {
		global $wpdb;

		if (!$this->tb_exist($tb)) {
			return;
		}

		self::debug('Deleting table ' . $tb);

		$q = 'DROP TABLE IF EXISTS ' . $this->tb($tb);
		$wpdb->query($q);
	}

	/**
	 * Drop generated tables
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tables_del() {
		$this->tb_del('avatar');
		$this->tb_del('crawler');
		$this->tb_del('crawler_blacklist');
		$this->tb_del('url');
		$this->tb_del('url_file');

		// Deleting img_optm only can be done when destroy all optm images
	}

	/**
	 * Keep table but clear all data
	 *
	 * @since  4.0
	 */
	public function table_truncate( $tb ) {
		global $wpdb;
		$q = 'TRUNCATE TABLE ' . $this->tb($tb);
		$wpdb->query($q);
	}

	/**
	 * Clean certain type of url_file
	 *
	 * @since  4.0
	 */
	public function url_file_clean( $file_type ) {
		global $wpdb;

		if (!$this->tb_exist('url_file')) {
			return;
		}

		$type = $this->_url_file_types[$file_type];
		$q    = 'DELETE FROM ' . $this->tb('url_file') . ' WHERE `type` = %d';
		$wpdb->query($wpdb->prepare($q, $type));

		// Added to cleanup url table. See issue: https://wordpress.org/support/topic/wp_litespeed_url-1-1-gb-in-db-huge-big/
		$wpdb->query(
			'DELETE d
			FROM `' .
				$this->tb('url') .
				'` AS d
			LEFT JOIN `' .
				$this->tb('url_file') .
				'` AS f ON d.`id` = f.`url_id`
			WHERE f.`url_id` IS NULL'
		);
	}

	/**
	 * Generate filename based on URL, if content md5 existed, reuse existing file.
	 *
	 * @since  4.0
	 */
	public function save_url( $request_url, $vary, $file_type, $filecon_md5, $path, $mobile = false, $webp = false ) {
		global $wpdb;

		if (strlen($vary) > 32) {
			$vary = md5($vary);
		}

		$type = $this->_url_file_types[$file_type];

		$tb_url      = $this->tb('url');
		$tb_url_file = $this->tb('url_file');
		$q           = "SELECT * FROM `$tb_url` WHERE url=%s";
		$url_row     = $wpdb->get_row($wpdb->prepare($q, $request_url), ARRAY_A);
		if (!$url_row) {
			$q = "INSERT INTO `$tb_url` SET url=%s";
			$wpdb->query($wpdb->prepare($q, $request_url));
			$url_id = $wpdb->insert_id;
		} else {
			$url_id = $url_row['id'];
		}

		$q        = "SELECT * FROM `$tb_url_file` WHERE url_id=%d AND vary=%s AND type=%d AND expired=0";
		$file_row = $wpdb->get_row($wpdb->prepare($q, array( $url_id, $vary, $type )), ARRAY_A);

		// Check if has previous file or not
		if ($file_row && $file_row['filename'] == $filecon_md5) {
			return;
		}

		// If the new $filecon_md5 is marked as expired by previous records, clear those records
		$q = "DELETE FROM `$tb_url_file` WHERE filename = %s AND expired > 0";
		$wpdb->query($wpdb->prepare($q, $filecon_md5));

		// Check if there is any other record used the same filename or not
		$q = "SELECT id FROM `$tb_url_file` WHERE filename = %s AND expired = 0 AND id != %d LIMIT 1";
		if ($file_row && $wpdb->get_var($wpdb->prepare($q, array( $file_row['filename'], $file_row['id'] )))) {
			$q = "UPDATE `$tb_url_file` SET filename=%s WHERE id=%d";
			$wpdb->query($wpdb->prepare($q, array( $filecon_md5, $file_row['id'] )));
			return;
		}

		// New record needed
		$q = "INSERT INTO `$tb_url_file` SET url_id=%d, vary=%s, filename=%s, type=%d, mobile=%d, webp=%d, expired=0";
		$wpdb->query($wpdb->prepare($q, array( $url_id, $vary, $filecon_md5, $type, $mobile ? 1 : 0, $webp ? 1 : 0 )));

		// Mark existing rows as expired
		if ($file_row) {
			$q       = "UPDATE `$tb_url_file` SET expired=%d WHERE id=%d";
			$expired = time() + 86400 * apply_filters('litespeed_url_file_expired_days', 20);
			$wpdb->query($wpdb->prepare($q, array( $expired, $file_row['id'] )));

			// Also check if has other files expired already to be deleted
			$q    = "SELECT * FROM `$tb_url_file` WHERE url_id = %d AND expired BETWEEN 1 AND %d";
			$q    = $wpdb->prepare($q, array( $url_id, time() ));
			$list = $wpdb->get_results($q, ARRAY_A);
			if ($list) {
				foreach ($list as $v) {
					$file_to_del = $path . '/' . $v['filename'] . '.' . ($file_type == 'js' ? 'js' : 'css');
					if (file_exists($file_to_del)) {
						// Safe to delete
						self::debug('Delete expired unused file: ' . $file_to_del);

						// Clear related lscache first to avoid cache copy of same URL w/ diff QS
						// Purge::add( Tag::TYPE_MIN . '.' . $file_row[ 'filename' ] . '.' . $file_type );

						unlink($file_to_del);
					}
				}
				$q = "DELETE FROM `$tb_url_file` WHERE url_id = %d AND expired BETWEEN 1 AND %d";
				$wpdb->query($wpdb->prepare($q, array( $url_id, time() )));
			}
		}

		// Purge this URL to avoid cache copy of same URL w/ diff QS
		// $this->cls( 'Purge' )->purge_url( Utility::make_relative( $request_url ) ?: '/', true, true );
	}

	/**
	 * Load CCSS related file
	 *
	 * @since  4.0
	 */
	public function load_url_file( $request_url, $vary, $file_type ) {
		global $wpdb;

		if (strlen($vary) > 32) {
			$vary = md5($vary);
		}

		$type = $this->_url_file_types[$file_type];

		self::debug2('load url file: ' . $request_url);

		$tb_url  = $this->tb('url');
		$q       = "SELECT * FROM `$tb_url` WHERE url=%s";
		$url_row = $wpdb->get_row($wpdb->prepare($q, $request_url), ARRAY_A);
		if (!$url_row) {
			return false;
		}

		$url_id = $url_row['id'];

		$tb_url_file = $this->tb('url_file');
		$q           = "SELECT * FROM `$tb_url_file` WHERE url_id=%d AND vary=%s AND type=%d AND expired=0";
		$file_row    = $wpdb->get_row($wpdb->prepare($q, array( $url_id, $vary, $type )), ARRAY_A);
		if (!$file_row) {
			return false;
		}

		return $file_row['filename'];
	}

	/**
	 * Mark all entries of one URL to expired
	 *
	 * @since 4.5
	 */
	public function mark_as_expired( $request_url, $auto_q = false ) {
		global $wpdb;
		$tb_url = $this->tb('url');

		self::debug('Try to mark as expired: ' . $request_url);
		$q       = "SELECT * FROM `$tb_url` WHERE url=%s";
		$url_row = $wpdb->get_row($wpdb->prepare($q, $request_url), ARRAY_A);
		if (!$url_row) {
			return;
		}

		self::debug('Mark url_id=' . $url_row['id'] . ' as expired');

		$tb_url_file = $this->tb('url_file');

		$existing_url_files = array();
		if ($auto_q) {
			$q                  = "SELECT a.*, b.url FROM `$tb_url_file` a LEFT JOIN `$tb_url` b ON b.id=a.url_id WHERE a.url_id=%d AND a.type=4 AND a.expired=0";
			$q                  = $wpdb->prepare($q, $url_row['id']);
			$existing_url_files = $wpdb->get_results($q, ARRAY_A);
		}
		$q       = "UPDATE `$tb_url_file` SET expired=%d WHERE url_id=%d AND type=4 AND expired=0";
		$expired = time() + 86400 * apply_filters('litespeed_url_file_expired_days', 20);
		$wpdb->query($wpdb->prepare($q, array( $expired, $url_row['id'] )));

		return $existing_url_files;
	}

	/**
	 * Get list from `data/css_excludes.txt`
	 *
	 * @since  3.6
	 */
	public function load_css_exc( $list ) {
		$data = $this->_load_per_line('css_excludes.txt');
		if ($data) {
			$list = array_unique(array_filter(array_merge($list, $data)));
		}

		return $list;
	}

	/**
	 * Get list from `data/ccss_whitelist.txt`
	 *
	 * @since  7.1
	 */
	public function load_ccss_whitelist( $list ) {
		$data = $this->_load_per_line('ccss_whitelist.txt');
		if ($data) {
			$list = array_unique(array_filter(array_merge($list, $data)));
		}

		return $list;
	}

	/**
	 * Get list from `data/ucss_whitelist.txt`
	 *
	 * @since  4.0
	 */
	public function load_ucss_whitelist( $list ) {
		$data = $this->_load_per_line('ucss_whitelist.txt');
		if ($data) {
			$list = array_unique(array_filter(array_merge($list, $data)));
		}

		return $list;
	}

	/**
	 * Get list from `data/js_excludes.txt`
	 *
	 * @since  3.5
	 */
	public function load_js_exc( $list ) {
		$data = $this->_load_per_line('js_excludes.txt');
		if ($data) {
			$list = array_unique(array_filter(array_merge($list, $data)));
		}

		return $list;
	}

	/**
	 * Get list from `data/js_defer_excludes.txt`
	 *
	 * @since  3.6
	 */
	public function load_js_defer_exc( $list ) {
		$data = $this->_load_per_line('js_defer_excludes.txt');
		if ($data) {
			$list = array_unique(array_filter(array_merge($list, $data)));
		}

		return $list;
	}

	/**
	 * Get list from `data/optm_uri_exc.txt`
	 *
	 * @since  5.4
	 */
	public function load_optm_uri_exc( $list ) {
		$data = $this->_load_per_line('optm_uri_exc.txt');
		if ($data) {
			$list = array_unique(array_filter(array_merge($list, $data)));
		}

		return $list;
	}

	/**
	 * Get list from `data/esi.nonces.txt`
	 *
	 * @since  3.5
	 */
	public function load_esi_nonces( $list ) {
		$data = $this->_load_per_line('esi.nonces.txt');
		if ($data) {
			$list = array_unique(array_filter(array_merge($list, $data)));
		}

		return $list;
	}

	/**
	 * Get list from `data/cache_nocacheable.txt`
	 *
	 * @since  6.3.0.1
	 */
	public function load_cache_nocacheable( $list ) {
		$data = $this->_load_per_line('cache_nocacheable.txt');
		if ($data) {
			$list = array_unique(array_filter(array_merge($list, $data)));
		}

		return $list;
	}

	/**
	 * Load file per line
	 *
	 * Support two kinds of comments:
	 *      1. `# this is comment`
	 *      2. `##this is comment`
	 *
	 * @since  3.5
	 */
	private function _load_per_line( $file ) {
		$data = File::read(LSCWP_DIR . 'data/' . $file);
		$data = explode(PHP_EOL, $data);
		$list = array();
		foreach ($data as $v) {
			// Drop two kinds of comments
			if (strpos($v, '##') !== false) {
				$v = trim(substr($v, 0, strpos($v, '##')));
			}
			if (strpos($v, '# ') !== false) {
				$v = trim(substr($v, 0, strpos($v, '# ')));
			}

			if (!$v) {
				continue;
			}

			$list[] = $v;
		}

		return $list;
	}
}
<?php

/**
 * The admin-panel specific functionality of the plugin.
 *
 * @since      1.0.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/admin
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Admin_Display extends Base {

	const LOG_TAG = '👮‍♀️';

	const NOTICE_BLUE   = 'notice notice-info';
	const NOTICE_GREEN  = 'notice notice-success';
	const NOTICE_RED    = 'notice notice-error';
	const NOTICE_YELLOW = 'notice notice-warning';
	const DB_MSG        = 'messages';
	const DB_MSG_PIN    = 'msg_pin';

	const PURGEBY_CAT = '0';
	const PURGEBY_PID = '1';
	const PURGEBY_TAG = '2';
	const PURGEBY_URL = '3';

	const PURGEBYOPT_SELECT = 'purgeby';
	const PURGEBYOPT_LIST   = 'purgebylist';

	const DB_DISMISS_MSG         = 'dismiss';
	const RULECONFLICT_ON        = 'ExpiresDefault_1';
	const RULECONFLICT_DISMISSED = 'ExpiresDefault_0';

	const TYPE_QC_HIDE_BANNER   = 'qc_hide_banner';
	const COOKIE_QC_HIDE_BANNER = 'litespeed_qc_hide_banner';

	protected $messages          = array();
	protected $default_settings  = array();
	protected $_is_network_admin = false;
	protected $_is_multisite     = false;

	private $_btn_i = 0;

	/**
	 * Initialize the class and set its properties.
	 *
	 * @since    1.0.7
	 */
	public function __construct() {
		// main css
		add_action('admin_enqueue_scripts', array( $this, 'enqueue_style' ));
		// Main js
		add_action('admin_enqueue_scripts', array( $this, 'enqueue_scripts' ));

		$this->_is_network_admin = is_network_admin();
		$this->_is_multisite     = is_multisite();

		// Quick access menu
		if (is_multisite() && $this->_is_network_admin) {
			$manage = 'manage_network_options';
		} else {
			$manage = 'manage_options';
		}
		if (current_user_can($manage)) {
			add_action('wp_before_admin_bar_render', array( GUI::cls(), 'backend_shortcut' ));

			// `admin_notices` is after `admin_enqueue_scripts`
			// @see wp-admin/admin-header.php
			add_action($this->_is_network_admin ? 'network_admin_notices' : 'admin_notices', array( $this, 'display_messages' ));
		}

		/**
		 * In case this is called outside the admin page
		 *
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if (!function_exists('is_plugin_active_for_network')) {
			require_once ABSPATH . '/wp-admin/includes/plugin.php';
		}

		// add menus ( Also check for mu-plugins)
		if ($this->_is_network_admin && (is_plugin_active_for_network(LSCWP_BASENAME) || defined('LSCWP_MU_PLUGIN'))) {
			add_action('network_admin_menu', array( $this, 'register_admin_menu' ));
		} else {
			add_action('admin_menu', array( $this, 'register_admin_menu' ));
		}

		$this->cls('Metabox')->register_settings();
	}

	/**
	 * Show the title of one line
	 *
	 * @since  3.0
	 * @access public
	 */
	public function title( $id ) {
		echo Lang::title($id);
	}

	/**
	 * Register the admin menu display.
	 *
	 * @since    1.0.0
	 * @access public
	 */
	public function register_admin_menu() {
		$capability = $this->_is_network_admin ? 'manage_network_options' : 'manage_options';
		if (current_user_can($capability)) {
			// root menu
			add_menu_page('LiteSpeed Cache', 'LiteSpeed Cache', 'manage_options', 'litespeed');

			// sub menus
			$this->_add_submenu(__('Dashboard', 'litespeed-cache'), 'litespeed', 'show_menu_dash');

			!$this->_is_network_admin && $this->_add_submenu(__('Presets', 'litespeed-cache'), 'litespeed-presets', 'show_menu_presets');

			$this->_add_submenu(__('General', 'litespeed-cache'), 'litespeed-general', 'show_menu_general');

			$this->_add_submenu(__('Cache', 'litespeed-cache'), 'litespeed-cache', 'show_menu_cache');

			!$this->_is_network_admin && $this->_add_submenu(__('CDN', 'litespeed-cache'), 'litespeed-cdn', 'show_menu_cdn');

			$this->_add_submenu(__('Image Optimization', 'litespeed-cache'), 'litespeed-img_optm', 'show_img_optm');

			!$this->_is_network_admin && $this->_add_submenu(__('Page Optimization', 'litespeed-cache'), 'litespeed-page_optm', 'show_page_optm');

			$this->_add_submenu(__('Database', 'litespeed-cache'), 'litespeed-db_optm', 'show_db_optm');

			!$this->_is_network_admin && $this->_add_submenu(__('Crawler', 'litespeed-cache'), 'litespeed-crawler', 'show_crawler');

			$this->_add_submenu(__('Toolbox', 'litespeed-cache'), 'litespeed-toolbox', 'show_toolbox');

			// sub menus under options
			add_options_page('LiteSpeed Cache', 'LiteSpeed Cache', $capability, 'litespeed-cache-options', array( $this, 'show_menu_cache' ));
		}
	}

	/**
	 * Helper function to set up a submenu page.
	 *
	 * @since 1.0.4
	 * @access private
	 * @param string $menu_title The title that appears on the menu.
	 * @param string $menu_slug The slug of the page.
	 * @param string $callback The callback to call if selected.
	 */
	private function _add_submenu( $menu_title, $menu_slug, $callback ) {
		add_submenu_page('litespeed', $menu_title, $menu_title, 'manage_options', $menu_slug, array( $this, $callback ));
	}

	/**
	 * Register the stylesheets for the admin area.
	 *
	 * @since    1.0.14
	 * @access public
	 */
	public function enqueue_style() {
		wp_enqueue_style(Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/css/litespeed.css', array(), Core::VER, 'all');
	}

	/**
	 * Register the JavaScript for the admin area.
	 *
	 * @since 1.0.0
	 * @since 7.3 - added deactivation modal code
	 * @access public
	 */
	public function enqueue_scripts() {
		wp_register_script(Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/js/litespeed-cache-admin.js', array(), Core::VER, false);

		$localize_data = array();
		if (GUI::has_whm_msg()) {
			$ajax_url_dismiss_whm                  = Utility::build_url(Core::ACTION_DISMISS, GUI::TYPE_DISMISS_WHM, true);
			$localize_data['ajax_url_dismiss_whm'] = $ajax_url_dismiss_whm;
		}

		if (GUI::has_msg_ruleconflict()) {
			$ajax_url                                       = Utility::build_url(Core::ACTION_DISMISS, GUI::TYPE_DISMISS_EXPIRESDEFAULT, true);
			$localize_data['ajax_url_dismiss_ruleconflict'] = $ajax_url;
		}

		// Injection to LiteSpeed pages
		global $pagenow;
		if ($pagenow == 'admin.php' && !empty($_GET['page']) && (strpos($_GET['page'], 'litespeed-') === 0 || $_GET['page'] == 'litespeed')) {
			// Admin footer
			add_filter('admin_footer_text', array( $this, 'admin_footer_text' ), 1);

			if ($_GET['page'] == 'litespeed-crawler' || $_GET['page'] == 'litespeed-cdn') {
				// Babel JS type correction
				add_filter('script_loader_tag', array( $this, 'babel_type' ), 10, 3);

				wp_enqueue_script(Core::PLUGIN_NAME . '-lib-react', LSWCP_PLUGIN_URL . 'assets/js/react.min.js', array(), Core::VER, false);
				wp_enqueue_script(Core::PLUGIN_NAME . '-lib-babel', LSWCP_PLUGIN_URL . 'assets/js/babel.min.js', array(), Core::VER, false);
			}

			// Crawler Cookie Simulation
			if ($_GET['page'] == 'litespeed-crawler') {
				wp_enqueue_script(Core::PLUGIN_NAME . '-crawler', LSWCP_PLUGIN_URL . 'assets/js/component.crawler.js', array(), Core::VER, false);
				$localize_data['lang']                              = array();
				$localize_data['lang']['cookie_name']               = __('Cookie Name', 'litespeed-cache');
				$localize_data['lang']['cookie_value']              = __('Cookie Values', 'litespeed-cache');
				$localize_data['lang']['one_per_line']              = Doc::one_per_line(true);
				$localize_data['lang']['remove_cookie_simulation']  = __('Remove cookie simulation', 'litespeed-cache');
				$localize_data['lang']['add_cookie_simulation_row'] = __('Add new cookie to simulate', 'litespeed-cache');
				empty($localize_data['ids']) && ($localize_data['ids'] = array());
				$localize_data['ids']['crawler_cookies'] = self::O_CRAWLER_COOKIES;
			}

			// CDN mapping
			if ($_GET['page'] == 'litespeed-cdn') {
				$home_url = home_url('/');
				$parsed   = parse_url($home_url);
				$home_url = str_replace($parsed['scheme'] . ':', '', $home_url);
				$cdn_url  = 'https://cdn.' . substr($home_url, 2);

				wp_enqueue_script(Core::PLUGIN_NAME . '-cdn', LSWCP_PLUGIN_URL . 'assets/js/component.cdn.js', array(), Core::VER, false);
				$localize_data['lang']                         = array();
				$localize_data['lang']['cdn_mapping_url']      = Lang::title(self::CDN_MAPPING_URL);
				$localize_data['lang']['cdn_mapping_inc_img']  = Lang::title(self::CDN_MAPPING_INC_IMG);
				$localize_data['lang']['cdn_mapping_inc_css']  = Lang::title(self::CDN_MAPPING_INC_CSS);
				$localize_data['lang']['cdn_mapping_inc_js']   = Lang::title(self::CDN_MAPPING_INC_JS);
				$localize_data['lang']['cdn_mapping_filetype'] = Lang::title(self::CDN_MAPPING_FILETYPE);
				$localize_data['lang']['cdn_mapping_url_desc'] = sprintf(__('CDN URL to be used. For example, %s', 'litespeed-cache'), '<code>' . $cdn_url . '</code>');
				$localize_data['lang']['one_per_line']         = Doc::one_per_line(true);
				$localize_data['lang']['cdn_mapping_remove']   = __('Remove CDN URL', 'litespeed-cache');
				$localize_data['lang']['add_cdn_mapping_row']  = __('Add new CDN URL', 'litespeed-cache');
				$localize_data['lang']['on']                   = __('ON', 'litespeed-cache');
				$localize_data['lang']['off']                  = __('OFF', 'litespeed-cache');
				empty($localize_data['ids']) && ($localize_data['ids'] = array());
				$localize_data['ids']['cdn_mapping'] = self::O_CDN_MAPPING;
			}
		}

		// Load iziModal JS and CSS
		$show_deactivation_modal = is_multisite() && !is_network_admin() ? false : true;
		if ($show_deactivation_modal && $pagenow == 'plugins.php') {
			wp_enqueue_script(Core::PLUGIN_NAME . '-iziModal', LSWCP_PLUGIN_URL . 'assets/js/iziModal.min.js', array(), Core::VER, 'all');
			wp_enqueue_style(Core::PLUGIN_NAME . '-iziModal', LSWCP_PLUGIN_URL . 'assets/css/iziModal.min.css', array(), Core::VER, 'all');
			add_action('admin_footer', array($this, 'add_deactivation_html'));
		}

		if ($localize_data) {
			wp_localize_script(Core::PLUGIN_NAME, 'litespeed_data', $localize_data);
		}

		wp_enqueue_script(Core::PLUGIN_NAME);
	}

	/**
	 * Add modal html.
	 *
	 * @since 7.3
	 * @access public
	 * @return void
	 */
	public function add_deactivation_html()
	{
		require LSCWP_DIR . 'tpl/inc/modal.deactivation.php';
	}

	/**
	 * Babel type for crawler
	 *
	 * @since  3.6
	 */
	public function babel_type( $tag, $handle, $src ) {
		if ($handle != Core::PLUGIN_NAME . '-crawler' && $handle != Core::PLUGIN_NAME . '-cdn') {
			return $tag;
		}

		return '<script src="' . Str::trim_quotes($src) . '" type="text/babel"></script>';
	}

	/**
	 * Callback that adds LiteSpeed Cache's action links.
	 *
	 * @since 1.0.0
	 * @access public
	 * @param array $links Previously added links from other plugins.
	 * @return array Links array with the litespeed cache one appended.
	 */
	public function add_plugin_links( $links ) {
		// $links[] = '<a href="' . admin_url('options-general.php?page=litespeed-cache') . '">' . __('Settings', 'litespeed-cache') . '</a>';
		$links[] = '<a href="' . admin_url('admin.php?page=litespeed-cache') . '">' . __('Settings', 'litespeed-cache') . '</a>';

		return $links;
	}

	/**
	 * Change the admin footer text on LiteSpeed Cache admin pages.
	 *
	 * @since  1.0.13
	 * @param  string $footer_text
	 * @return string
	 */
	public function admin_footer_text( $footer_text ) {
		require_once LSCWP_DIR . 'tpl/inc/admin_footer.php';

		return $footer_text;
	}

	/**
	 * Builds the html for a single notice.
	 *
	 * @since 1.0.7
	 * @access public
	 * @param string $color The color to use for the notice.
	 * @param string $str The notice message.
	 * @return string The built notice html.
	 */
	public static function build_notice( $color, $str, $irremovable = false, $additional_classes = '' ) {
		$cls = $color;
		if ($irremovable) {
			$cls .= ' litespeed-irremovable';
		} else {
			$cls .= ' is-dismissible';
		}
		if ($additional_classes) {
			$cls .= ' ' . $additional_classes;
		}

		// possible translation
		$str = Lang::maybe_translate($str);

		return '<div class="litespeed_icon ' . $cls . '"><p>' . wp_kses_post($str) . '</p></div>';
	}

	/**
	 * Display info notice
	 *
	 * @since 1.6.5
	 * @access public
	 */
	public static function info( $msg, $echo = false, $irremovable = false, $additional_classes = '' ) {
		self::add_notice(self::NOTICE_BLUE, $msg, $echo, $irremovable, $additional_classes);
	}

	/**
	 * Display note notice
	 *
	 * @since 1.6.5
	 * @access public
	 */
	public static function note( $msg, $echo = false, $irremovable = false, $additional_classes = '' ) {
		self::add_notice(self::NOTICE_YELLOW, $msg, $echo, $irremovable, $additional_classes);
	}

	/**
	 * Display success notice
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function success( $msg, $echo = false, $irremovable = false, $additional_classes = '' ) {
		self::add_notice(self::NOTICE_GREEN, $msg, $echo, $irremovable, $additional_classes);
	}
	/** @deprecated 4.7 */
	/** will drop in v7.5 */
	public static function succeed( $msg, $echo = false, $irremovable = false, $additional_classes = '' ) {
		self::success($msg, $echo, $irremovable, $additional_classes);
	}

	/**
	 * Display error notice
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function error( $msg, $echo = false, $irremovable = false, $additional_classes = '' ) {
		self::add_notice(self::NOTICE_RED, $msg, $echo, $irremovable, $additional_classes);
	}

	/**
	 * Add irremovable msg
	 *
	 * @since 4.7
	 */
	public static function add_unique_notice( $color_mode, $msgs, $irremovable = false ) {
		if (!is_array($msgs)) {
			$msgs = array( $msgs );
		}

		$color_map = array(
			'info' => self::NOTICE_BLUE,
			'note' => self::NOTICE_YELLOW,
			'success' => self::NOTICE_GREEN,
			'error' => self::NOTICE_RED,
		);
		if (empty($color_map[$color_mode])) {
			self::debug('Wrong admin display color mode!');
			return;
		}
		$color = $color_map[$color_mode];

		// Go through to make sure unique
		$filtered_msgs = array();
		foreach ($msgs as $k => $str) {
			if (is_numeric($k)) {
				$k = md5($str);
			} // Use key to make it overwritable to previous same msg
			$filtered_msgs[$k] = $str;
		}

		self::add_notice($color, $filtered_msgs, false, $irremovable);
	}

	/**
	 * Adds a notice to display on the admin page
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function add_notice( $color, $msg, $echo = false, $irremovable = false, $additional_classes = '' ) {
		// self::debug("add_notice msg", $msg);
		// Bypass adding for CLI or cron
		if (defined('LITESPEED_CLI') || wp_doing_cron()) {
			// WP CLI will show the info directly
			if (defined('WP_CLI') && WP_CLI) {
				if (!is_array($msg)) {
					$msg = array( $msg );
				}
				foreach ($msg as $v) {
					$v = strip_tags($v);
					if ($color == self::NOTICE_RED) {
						\WP_CLI::error($v, false);
					} else {
						\WP_CLI::success($v);
					}
				}
			}
			return;
		}

		if ($echo) {
			echo self::build_notice($color, $msg, $irremovable, $additional_classes);
			return;
		}

		$msg_name = $irremovable ? self::DB_MSG_PIN : self::DB_MSG;

		$messages = self::get_option($msg_name, array());
		if (!is_array($messages)) {
			$messages = array();
		}

		if (is_array($msg)) {
			foreach ($msg as $k => $str) {
				$messages[$k] = self::build_notice($color, $str, $irremovable, $additional_classes);
			}
		} else {
			$messages[] = self::build_notice($color, $msg, $irremovable, $additional_classes);
		}
		$messages = array_unique($messages);
		self::update_option($msg_name, $messages);
	}

	/**
	 * Display notices and errors in dashboard
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function display_messages() {
		if (!defined('LITESPEED_CONF_LOADED')) {
			$this->_in_upgrading();
		}

		if (GUI::has_whm_msg()) {
			$this->show_display_installed();
		}

		Data::cls()->check_upgrading_msg();

		// If is in dev version, always check latest update
		Cloud::cls()->check_dev_version();

		// One time msg
		$messages       = self::get_option(self::DB_MSG, array());
		$added_thickbox = false;
		if (is_array($messages)) {
			foreach ($messages as $msg) {
				// Added for popup links
				if (strpos($msg, 'TB_iframe') && !$added_thickbox) {
					add_thickbox();
					$added_thickbox = true;
				}
				echo wp_kses_post($msg);
			}
		}
		if ($messages != -1) {
			self::update_option(self::DB_MSG, -1);
		}

		// Pinned msg
		$messages = self::get_option(self::DB_MSG_PIN, array());
		if (is_array($messages)) {
			foreach ($messages as $k => $msg) {
				// Added for popup links
				if (strpos($msg, 'TB_iframe') && !$added_thickbox) {
					add_thickbox();
					$added_thickbox = true;
				}

				// Append close btn
				if (substr($msg, -6) == '</div>') {
					$link = Utility::build_url(Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PIN, false, null, array( 'msgid' => $k ));
					$msg  =
						substr($msg, 0, -6) .
						'<p><a href="' .
						$link .
						'" class="button litespeed-btn-primary litespeed-btn-mini">' .
						__('Dismiss', 'litespeed-cache') .
						'</a>' .
						'</p></div>';
				}
				echo wp_kses_post($msg);
			}
		}
		// if ( $messages != -1 ) {
		// self::update_option( self::DB_MSG_PIN, -1 );
		// }

		if (empty($_GET['page']) || strpos($_GET['page'], 'litespeed') !== 0) {
			global $pagenow;
			if ($pagenow != 'plugins.php') {
				// && $pagenow != 'index.php'
				return;
			}
		}

		if (!$this->conf(self::O_NEWS)) {
			return;
		}

		// Show promo from cloud
		Cloud::cls()->show_promo();

		/**
		 * Check promo msg first
		 *
		 * @since 2.9
		 */
		GUI::cls()->show_promo();

		// Show version news
		Cloud::cls()->news();
	}

	/**
	 * Dismiss pinned msg
	 *
	 * @since 3.5.2
	 * @access public
	 */
	public static function dismiss_pin() {
		if (!isset($_GET['msgid'])) {
			return;
		}

		$messages = self::get_option(self::DB_MSG_PIN, array());
		if (!is_array($messages) || empty($messages[$_GET['msgid']])) {
			return;
		}

		unset($messages[$_GET['msgid']]);
		if (!$messages) {
			$messages = -1;
		}
		self::update_option(self::DB_MSG_PIN, $messages);
	}

	/**
	 * Dismiss pinned msg by msg content
	 *
	 * @since 7.0
	 * @access public
	 */
	public static function dismiss_pin_by_content( $content, $color, $irremovable ) {
		$content  = self::build_notice($color, $content, $irremovable);
		$messages = self::get_option(self::DB_MSG_PIN, array());
		$hit      = false;
		if ($messages != -1) {
			foreach ($messages as $k => $v) {
				if ($v == $content) {
					unset($messages[$k]);
					$hit = true;
					self::debug('✅ pinned msg content hit. Removed');
					break;
				}
			}
		}
		if ($hit) {
			if (!$messages) {
				$messages = -1;
			}
			self::update_option(self::DB_MSG_PIN, $messages);
		} else {
			self::debug('❌ No pinned msg content hit');
		}
	}

	/**
	 * Hooked to the in_widget_form action.
	 * Appends LiteSpeed Cache settings to the widget edit settings screen.
	 * This will append the esi on/off selector and ttl text.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function show_widget_edit( $widget, $return, $instance ) {
		require LSCWP_DIR . 'tpl/esi_widget_edit.php';
	}

	/**
	 * Displays the dashboard page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_dash() {
		$this->cls('Cloud')->maybe_preview_banner();
		require_once LSCWP_DIR . 'tpl/dash/entry.tpl.php';
	}

	/**
	 * Displays the General page.
	 *
	 * @since 5.3
	 * @access public
	 */
	public function show_menu_presets() {
		require_once LSCWP_DIR . 'tpl/presets/entry.tpl.php';
	}

	/**
	 * Displays the General page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_general() {
		$this->cls('Cloud')->maybe_preview_banner();
		require_once LSCWP_DIR . 'tpl/general/entry.tpl.php';
	}

	/**
	 * Displays the CDN page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_cdn() {
		$this->cls('Cloud')->maybe_preview_banner();
		require_once LSCWP_DIR . 'tpl/cdn/entry.tpl.php';
	}

	/**
	 * Outputs the LiteSpeed Cache settings page.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function show_menu_cache() {
		if ($this->_is_network_admin) {
			require_once LSCWP_DIR . 'tpl/cache/entry_network.tpl.php';
		} else {
			require_once LSCWP_DIR . 'tpl/cache/entry.tpl.php';
		}
	}

	/**
	 * Tools page
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_toolbox() {
		$this->cls('Cloud')->maybe_preview_banner();
		require_once LSCWP_DIR . 'tpl/toolbox/entry.tpl.php';
	}

	/**
	 * Outputs the crawler operation page.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function show_crawler() {
		$this->cls('Cloud')->maybe_preview_banner();
		require_once LSCWP_DIR . 'tpl/crawler/entry.tpl.php';
	}

	/**
	 * Outputs the optimization operation page.
	 *
	 * @since 1.6
	 * @access public
	 */
	public function show_img_optm() {
		$this->cls('Cloud')->maybe_preview_banner();
		require_once LSCWP_DIR . 'tpl/img_optm/entry.tpl.php';
	}

	/**
	 * Page optm page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_page_optm() {
		$this->cls('Cloud')->maybe_preview_banner();
		require_once LSCWP_DIR . 'tpl/page_optm/entry.tpl.php';
	}

	/**
	 * DB optm page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_db_optm() {
		require_once LSCWP_DIR . 'tpl/db_optm/entry.tpl.php';
	}

	/**
	 * Outputs a notice to the admin panel when the plugin is installed
	 * via the WHM plugin.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public function show_display_installed() {
		require_once LSCWP_DIR . 'tpl/inc/show_display_installed.php';
	}

	/**
	 * Display error cookie msg.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public static function show_error_cookie() {
		require_once LSCWP_DIR . 'tpl/inc/show_error_cookie.php';
	}

	/**
	 * Display warning if lscache is disabled
	 *
	 * @since 2.1
	 * @access public
	 */
	public function cache_disabled_warning() {
		include LSCWP_DIR . 'tpl/inc/check_cache_disabled.php';
	}

	/**
	 * Display conf data upgrading banner
	 *
	 * @since 2.1
	 * @access private
	 */
	private function _in_upgrading() {
		include LSCWP_DIR . 'tpl/inc/in_upgrading.php';
	}

	/**
	 * Output litespeed form info
	 *
	 * @since    3.0
	 * @access public
	 */
	public function form_action( $action = false, $type = false, $has_upload = false ) {
		if (!$action) {
			$action = Router::ACTION_SAVE_SETTINGS;
		}

		$has_upload = $has_upload ? 'enctype="multipart/form-data"' : '';

		if (!defined('LITESPEED_CONF_LOADED')) {
			echo '<div class="litespeed-relative"';
		} else {
			echo '<form method="post" action="' . wp_unslash($_SERVER['REQUEST_URI']) . '" class="litespeed-relative" ' . $has_upload . '>';
		}

		echo '<input type="hidden" name="' . Router::ACTION . '" value="' . $action . '" />';
		if ($type) {
			echo '<input type="hidden" name="' . Router::TYPE . '" value="' . $type . '" />';
		}
		wp_nonce_field($action, Router::NONCE);
	}

	/**
	 * Output litespeed form info END
	 *
	 * @since    3.0
	 * @access public
	 */
	public function form_end( $disable_reset = false ) {
		echo "<div class='litespeed-top20'></div>";

		if (!defined('LITESPEED_CONF_LOADED')) {
			submit_button(__('Save Changes', 'litespeed-cache'), 'secondary litespeed-duplicate-float', 'litespeed-submit', true, array( 'disabled' => 'disabled' ));

			echo '</div>';
		} else {
			submit_button(__('Save Changes', 'litespeed-cache'), 'primary litespeed-duplicate-float', 'litespeed-submit', true, array(
				'id' => 'litespeed-submit-' . $this->_btn_i++,
			));

			echo '</form>';
		}
	}

	/**
	 * Register this setting to save
	 *
	 * @since  3.0
	 * @access public
	 */
	public function enroll( $id ) {
		echo '<input type="hidden" name="' . Admin_Settings::ENROLL . '[]" value="' . $id . '" />';
	}

	/**
	 * Build a textarea
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function build_textarea( $id, $cols = false, $val = null ) {
		if ($val === null) {
			$val = $this->conf($id, true);

			if (is_array($val)) {
				$val = implode("\n", $val);
			}
		}

		if (!$cols) {
			$cols = 80;
		}

		$rows  = 5;
		$lines = substr_count($val, "\n") + 2;
		if ($lines > $rows) {
			$rows = $lines;
		}
		if ($rows > 40) {
			$rows = 40;
		}

		$this->enroll($id);

		echo "<textarea name='$id' rows='$rows' cols='$cols'>" . esc_textarea($val) . '</textarea>';

		$this->_check_overwritten($id);
	}

	/**
	 * Build a text input field
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function build_input( $id, $cls = null, $val = null, $type = 'text', $disabled = false ) {
		if ($val === null) {
			$val = $this->conf($id, true);

			// Mask pswds
			if ($this->_conf_pswd($id) && $val) {
				$val = str_repeat('*', strlen($val));
			}
		}

		$label_id = preg_replace('/\W/', '', $id);

		if ($type == 'text') {
			$cls = "regular-text $cls";
		}

		if ($disabled) {
			echo "<input type='$type' class='$cls' value='" . esc_textarea($val) . "' id='input_$label_id' disabled /> ";
		} else {
			$this->enroll($id);
			echo "<input type='$type' class='$cls' name='$id' value='" . esc_textarea($val) . "' id='input_$label_id' /> ";
		}

		$this->_check_overwritten($id);
	}

	/**
	 * Build a checkbox html snippet
	 *
	 * @since 1.1.0
	 * @access public
	 * @param  string $id
	 * @param  string $title
	 * @param  bool   $checked
	 */
	public function build_checkbox( $id, $title, $checked = null, $value = 1 ) {
		if ($checked === null && $this->conf($id, true)) {
			$checked = true;
		}
		$checked = $checked ? ' checked ' : '';

		$label_id = preg_replace('/\W/', '', $id);

		if ($value !== 1) {
			$label_id .= '_' . $value;
		}

		$this->enroll($id);

		echo "<div class='litespeed-tick'>
			<input type='checkbox' name='$id' id='input_checkbox_$label_id' value='$value' $checked />
			<label for='input_checkbox_$label_id'>$title</label>
		</div>";

		$this->_check_overwritten($id);
	}

	/**
	 * Build a toggle checkbox html snippet
	 *
	 * @since 1.7
	 */
	public function build_toggle( $id, $checked = null, $title_on = null, $title_off = null ) {
		if ($checked === null && $this->conf($id, true)) {
			$checked = true;
		}
		if ($title_on === null) {
			$title_on  = __('ON', 'litespeed-cache');
			$title_off = __('OFF', 'litespeed-cache');
		}
		$cls = $checked ? 'primary' : 'default litespeed-toggleoff';
		echo "<div class='litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-$cls' data-litespeed-toggle-on='primary' data-litespeed-toggle-off='default' data-litespeed_toggle_id='$id' >
				<input name='$id' type='hidden' value='$checked' />
				<div class='litespeed-toggle-group'>
					<label class='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>$title_on</label>
					<label class='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>$title_off</label>
					<span class='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
				</div>
			</div>";
	}

	/**
	 * Build a switch div html snippet
	 *
	 * @since 1.1.0
	 * @since 1.7 removed param $disable
	 * @access public
	 */
	public function build_switch( $id, $title_list = false ) {
		$this->enroll($id);

		echo '<div class="litespeed-switch">';

		if (!$title_list) {
			$title_list = array( __('OFF', 'litespeed-cache'), __('ON', 'litespeed-cache') );
		}

		foreach ($title_list as $k => $v) {
			$this->_build_radio($id, $k, $v);
		}

		echo '</div>';

		$this->_check_overwritten($id);
	}

	/**
	 * Build a radio input html codes and output
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function _build_radio( $id, $val, $txt ) {
		$id_attr = 'input_radio_' . preg_replace('/\W/', '', $id) . '_' . $val;

		$default = isset(self::$_default_options[$id]) ? self::$_default_options[$id] : self::$_default_site_options[$id];

		if (!is_string($default)) {
			$checked = (int) $this->conf($id, true) === (int) $val ? ' checked ' : '';
		} else {
			$checked = $this->conf($id, true) === $val ? ' checked ' : '';
		}

		echo "<input type='radio' autocomplete='off' name='$id' id='$id_attr' value='$val' $checked /> <label for='$id_attr'>$txt</label>";
	}

	/**
	 * Show overwritten msg if there is a const defined
	 *
	 * @since  3.0
	 */
	protected function _check_overwritten( $id ) {
		$const_val   = $this->const_overwritten($id);
		$primary_val = $this->primary_overwritten($id);
		if ($const_val === null && $primary_val === null) {
			return;
		}

		$val = $const_val !== null ? $const_val : $primary_val;

		$default = isset(self::$_default_options[$id]) ? self::$_default_options[$id] : self::$_default_site_options[$id];

		if (is_bool($default)) {
			$val = $val ? __('ON', 'litespeed-cache') : __('OFF', 'litespeed-cache');
		} else {
			if (is_array($default)) {
				$val = implode("\n", $val);
			}
			$val = esc_textarea($val);
		}

		echo '<div class="litespeed-desc litespeed-warning">⚠️ ';

		if ($const_val !== null) {
			printf(__('This setting is overwritten by the PHP constant %s', 'litespeed-cache'), '<code>' . Base::conf_const($id) . '</code>');
		} elseif (get_current_blog_id() != BLOG_ID_CURRENT_SITE && $this->conf(self::NETWORK_O_USE_PRIMARY)) {
			echo __('This setting is overwritten by the primary site setting', 'litespeed-cache');
		} else {
			echo __('This setting is overwritten by the Network setting', 'litespeed-cache');
		}

		echo ', ' . sprintf(__('currently set to %s', 'litespeed-cache'), "<code>$val</code>") . '</div>';
	}

	/**
	 * Display seconds text and readable layout
	 *
	 * @since 3.0
	 * @access public
	 */
	public function readable_seconds() {
		echo __('seconds', 'litespeed-cache');
		echo ' <span data-litespeed-readable=""></span>';
	}

	/**
	 * Display default value
	 *
	 * @since  1.1.1
	 * @access public
	 */
	public function recommended( $id ) {
		if (!$this->default_settings) {
			$this->default_settings = $this->load_default_vals();
		}

		$val = $this->default_settings[$id];

		if ($val) {
			if (is_array($val)) {
				$rows = 5;
				$cols = 30;
				// Flexible rows/cols
				$lines = count($val) + 1;
				$rows  = min(max($lines, $rows), 40);
				foreach ($val as $v) {
					$cols = max(strlen($v), $cols);
				}
				$cols = min($cols, 150);

				$val = implode("\n", $val);
				$val = esc_textarea($val);
				$val = '<div class="litespeed-desc">' . __('Default value', 'litespeed-cache') . ':</div>' . "<textarea readonly rows='$rows' cols='$cols'>$val</textarea>";
			} else {
				$val = esc_textarea($val);
				$val = "<code>$val</code>";
				$val = __('Default value', 'litespeed-cache') . ': ' . $val;
			}
			echo $val;
		}
	}

	/**
	 * Validate rewrite rules regex syntax
	 *
	 * @since  3.0
	 */
	protected function _validate_syntax( $id ) {
		$val = $this->conf($id, true);

		if (!$val) {
			return;
		}

		if (!is_array($val)) {
			$val = array( $val );
		}

		foreach ($val as $v) {
			if (!Utility::syntax_checker($v)) {
				echo '<br /><font class="litespeed-warning"> ❌ ' . __('Invalid rewrite rule', 'litespeed-cache') . ': <code>' . $v . '</code></font>';
			}
		}
	}

	/**
	 * Validate if the htaccess path is valid
	 *
	 * @since  3.0
	 */
	protected function _validate_htaccess_path( $id ) {
		$val = $this->conf($id, true);
		if (!$val) {
			return;
		}

		if (substr($val, -10) !== '/.htaccess') {
			echo '<br /><font class="litespeed-warning"> ❌ ' . sprintf(__('Path must end with %s', 'litespeed-cache'), '<code>/.htaccess</code>') . '</font>';
		}
	}

	/**
	 * Check ttl instead of error when saving
	 *
	 * @since  3.0
	 */
	protected function _validate_ttl( $id, $min = false, $max = false, $allow_zero = false ) {
		$val = $this->conf($id, true);

		if ($allow_zero && !$val) {
			// return;
		}

		$tip = array();
		if ($min && $val < $min && (!$allow_zero || $val != 0)) {
			$tip[] = __('Minimum value', 'litespeed-cache') . ': <code>' . $min . '</code>.';
		}
		if ($max && $val > $max) {
			$tip[] = __('Maximum value', 'litespeed-cache') . ': <code>' . $max . '</code>.';
		}

		echo '<br />';

		if ($tip) {
			echo '<font class="litespeed-warning"> ❌ ' . implode(' ', $tip) . '</font>';
		}

		$range = '';

		if ($allow_zero) {
			$range .= __('Zero, or', 'litespeed-cache') . ' ';
		}

		if ($min && $max) {
			$range .= $min . ' - ' . $max;
		} elseif ($min) {
			$range .= __('Larger than', 'litespeed-cache') . ' ' . $min;
		} elseif ($max) {
			$range .= __('Smaller than', 'litespeed-cache') . ' ' . $max;
		}

		echo __('Value range', 'litespeed-cache') . ': <code>' . $range . '</code>';
	}

	/**
	 * Check if ip is valid
	 *
	 * @since  3.0
	 */
	protected function _validate_ip( $id ) {
		$val = $this->conf($id, true);
		if (!$val) {
			return;
		}

		if (!is_array($val)) {
			$val = array( $val );
		}

		$tip = array();
		foreach ($val as $v) {
			if (!$v) {
				continue;
			}

			if (!\WP_Http::is_ip_address($v)) {
				$tip[] = __('Invalid IP', 'litespeed-cache') . ': <code>' . esc_textarea($v) . '</code>.';
			}
		}

		if ($tip) {
			echo '<br /><font class="litespeed-warning"> ❌ ' . implode(' ', $tip) . '</font>';
		}
	}

	/**
	 * Display API environment variable support
	 *
	 * @since  1.8.3
	 * @access protected
	 */
	protected function _api_env_var() {
		$args = func_get_args();
		$s    = '<code>' . implode('</code>, <code>', $args) . '</code>';

		echo '<font class="litespeed-success"> ' .
			__('API', 'litespeed-cache') .
			': ' .
			sprintf(__('Server variable(s) %s available to override this setting.', 'litespeed-cache'), $s);

		Doc::learn_more('https://docs.litespeedtech.com/lscache/lscwp/admin/#limiting-the-crawler');
	}

	/**
	 * Display URI setting example
	 *
	 * @since  2.6.1
	 * @access protected
	 */
	protected function _uri_usage_example() {
		echo __('The URLs will be compared to the REQUEST_URI server variable.', 'litespeed-cache');
		echo ' ' . sprintf(__('For example, for %1$s, %2$s can be used here.', 'litespeed-cache'), '<code>/mypath/mypage?aa=bb</code>', '<code>mypage?aa=</code>');
		echo '<br /><i>';
		printf(__('To match the beginning, add %s to the beginning of the item.', 'litespeed-cache'), '<code>^</code>');
		echo ' ' . sprintf(__('To do an exact match, add %s to the end of the URL.', 'litespeed-cache'), '<code>$</code>');
		echo ' ' . __('One per line.', 'litespeed-cache');
		echo '</i>';
	}

	/**
	 * Return groups string
	 *
	 * @since  2.0
	 * @access public
	 */
	public static function print_plural( $num, $kind = 'group' ) {
		if ($num > 1) {
			switch ($kind) {
				case 'group':
					return sprintf(__('%s groups', 'litespeed-cache'), $num);

				case 'image':
					return sprintf(__('%s images', 'litespeed-cache'), $num);

				default:
					return $num;
			}
		}

		switch ($kind) {
			case 'group':
				return sprintf(__('%s group', 'litespeed-cache'), $num);

			case 'image':
				return sprintf(__('%s image', 'litespeed-cache'), $num);

			default:
				return $num;
		}
	}

	/**
	 * Return guidance html
	 *
	 * @since  2.0
	 * @access public
	 */
	public static function guidance( $title, $steps, $current_step ) {
		if ($current_step === 'done') {
			$current_step = count($steps) + 1;
		}

		$percentage = ' (' . floor((($current_step - 1) * 100) / count($steps)) . '%)';

		$html = '<div class="litespeed-guide">' . '<h2>' . $title . $percentage . '</h2>' . '<ol>';
		foreach ($steps as $k => $v) {
			$step = $k + 1;
			if ($current_step > $step) {
				$html .= '<li class="litespeed-guide-done">';
			} else {
				$html .= '<li>';
			}
			$html .= $v . '</li>';
		}

		$html .= '</ol></div>';

		return $html;
	}

	/**
	 * Check if has qc hide banner cookie or not
	 *
	 * @since 7.1
	 */
	public static function has_qc_hide_banner() {
		return isset($_COOKIE[self::COOKIE_QC_HIDE_BANNER]) && time() - $_COOKIE[self::COOKIE_QC_HIDE_BANNER] < 86400 * 90;
	}

	/**
	 * Set qc hide banner cookie
	 *
	 * @since 7.1
	 */
	public static function set_qc_hide_banner() {
		$expire = time() + 86400 * 365;
		self::debug('Set qc hide banner cookie');
		setcookie(self::COOKIE_QC_HIDE_BANNER, time(), $expire, COOKIEPATH, COOKIE_DOMAIN);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  7.1
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_QC_HIDE_BANNER:
            self::set_qc_hide_banner();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * Database upgrade funcs
 *
 * NOTE: whenever called this file, always call Data::get_upgrade_lock and Data::_set_upgrade_lock first.
 *
 * @since  3.0
 */
defined('WPINC') || exit();

use LiteSpeed\Debug2;
use LiteSpeed\Conf;
use LiteSpeed\Admin_Display;
use LiteSpeed\File;
use LiteSpeed\Cloud;

/**
 * Table existance check function
 *
 * @since 7.2
 */
function litespeed_table_exists( $table_name ) {
	global $wpdb;
	$save_state = $wpdb->suppress_errors;
	$wpdb->suppress_errors(true);
	$tb_exists = $wpdb->get_var('DESCRIBE `' . $table_name . '`');
	$wpdb->suppress_errors($save_state);

	return $tb_exists !== null;
}

/**
 * Migrate v7.0- url_files URL from no trailing slash to trailing slash
 *
 * @since 7.0.1
 */
function litespeed_update_7_0_1() {
	global $wpdb;
	Debug2::debug('[Data] v7.0.1 upgrade started');

	$tb_url = $wpdb->prefix . 'litespeed_url';
	if (!litespeed_table_exists($tb_url)) {
		Debug2::debug('[Data] Table `litespeed_url` not found, bypassed migration');
		return;
	}

	$q             = "SELECT * FROM `$tb_url` WHERE url LIKE 'https://%/'";
	$q             = $wpdb->prepare($q);
	$list          = $wpdb->get_results($q, ARRAY_A);
	$existing_urls = array();
	if ($list) {
		foreach ($list as $v) {
			$existing_urls[] = $v['url'];
		}
	}

	$q    = "SELECT * FROM `$tb_url` WHERE url LIKE 'https://%'";
	$q    = $wpdb->prepare($q);
	$list = $wpdb->get_results($q, ARRAY_A);
	if (!$list) {
		return;
	}
	foreach ($list as $v) {
		if (substr($v['url'], -1) == '/') {
			continue;
		}
		$new_url = $v['url'] . '/';
		if (in_array($new_url, $existing_urls)) {
			continue;
		}
		$q = "UPDATE `$tb_url` SET url = %s WHERE id = %d";
		$q = $wpdb->prepare($q, $new_url, $v['id']);
		$wpdb->query($q);
	}
}

/**
 * Migrate from domain key to pk/sk for QC
 *
 * @since 7.0
 */
function litespeed_update_7() {
	Debug2::debug('[Data] v7 upgrade started');

	$__cloud = Cloud::cls();

	$domain_key = $__cloud->conf('api_key');
	if (!$domain_key) {
		Debug2::debug('[Data] No domain key, bypassed migration');
		return;
	}

	$new_prepared = $__cloud->init_qc_prepare();
	if (!$new_prepared && $__cloud->activated()) {
		Debug2::debug('[Data] QC previously activated in v7, bypassed migration');
		return;
	}
	$data = array(
		'domain_key' => $domain_key,
	);
	$resp = $__cloud->post(Cloud::SVC_D_V3UPGRADE, $data);
	if (!empty($resp['qc_activated'])) {
		if ($resp['qc_activated'] != 'deleted') {
			$cloud_summary_updates = array( 'qc_activated' => $resp['qc_activated'] );
			if (!empty($resp['main_domain'])) {
				$cloud_summary_updates['main_domain'] = $resp['main_domain'];
			}
			Cloud::save_summary($cloud_summary_updates);
			Debug2::debug('[Data] Updated QC activated status to ' . $resp['qc_activated']);
		}
	}
}

/**
 * Append webp/mobile to url_file
 *
 * @since 5.3
 */
function litespeed_update_5_3() {
	global $wpdb;
	Debug2::debug('[Data] Upgrade url_file table');

	$tb = $wpdb->prefix . 'litespeed_url_file';
	if (litespeed_table_exists($tb)) {
		$q =
			'ALTER TABLE `' .
			$tb .
			'`
				ADD COLUMN `mobile` tinyint(4) NOT NULL COMMENT "mobile=1",
				ADD COLUMN `webp` tinyint(4) NOT NULL COMMENT "webp=1"
			';
		$wpdb->query($q);
	}
}

/**
 * Add expired to url_file table
 *
 * @since 4.4.4
 */
function litespeed_update_4_4_4() {
	global $wpdb;
	Debug2::debug('[Data] Upgrade url_file table');

	$tb = $wpdb->prefix . 'litespeed_url_file';
	if (litespeed_table_exists($tb)) {
		$q =
			'ALTER TABLE `' .
			$tb .
			'`
				ADD COLUMN `expired` int(11) NOT NULL DEFAULT 0,
				ADD KEY `filename_2` (`filename`,`expired`),
				ADD KEY `url_id` (`url_id`,`expired`)
			';
		$wpdb->query($q);
	}
}

/**
 * Drop cssjs table and rm cssjs folder
 *
 * @since 4.3
 */
function litespeed_update_4_3() {
	if (file_exists(LITESPEED_STATIC_DIR . '/ccsjs')) {
		File::rrmdir(LITESPEED_STATIC_DIR . '/ccsjs');
	}
}

/**
 * Drop object cache data file
 *
 * @since 4.1
 */
function litespeed_update_4_1() {
	if (file_exists(WP_CONTENT_DIR . '/.object-cache.ini')) {
		unlink(WP_CONTENT_DIR . '/.object-cache.ini');
	}
}

/**
 * Drop cssjs table and rm cssjs folder
 *
 * @since 4.0
 */
function litespeed_update_4() {
	global $wpdb;
	$tb = $wpdb->prefix . 'litespeed_cssjs';

	if (!litespeed_table_exists($tb)) {
		return;
	}

	$q = 'DROP TABLE IF EXISTS ' . $tb;
	$wpdb->query($q);

	if (file_exists(LITESPEED_STATIC_DIR . '/ccsjs')) {
		File::rrmdir(LITESPEED_STATIC_DIR . '/ccsjs');
	}
}

/**
 * Append jQuery to JS optm exclude list for max compatibility
 * Turn off JS Combine and Defer
 *
 * @since  3.5.1
 */
function litespeed_update_3_5() {
	$__conf = Conf::cls();
	// Excludes jQuery
	foreach (array( 'optm-js_exc', 'optm-js_defer_exc' ) as $v) {
		$curr_setting   = $__conf->conf($v);
		$curr_setting[] = 'jquery.js';
		$curr_setting[] = 'jquery.min.js';
		$__conf->update($v, $curr_setting);
	}
	// Turn off JS Combine and defer
	$show_msg = false;
	foreach (array( 'optm-js_comb', 'optm-js_defer', 'optm-js_inline_defer' ) as $v) {
		$curr_setting = $__conf->conf($v);
		if (!$curr_setting) {
			continue;
		}
		$show_msg = true;
		$__conf->update($v, false);
	}

	if ($show_msg) {
		$msg  = sprintf(
			__(
				'LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.',
				'litespeed-cache'
			),
			'<code>' . __('JS Combine', 'litespeed-cache') . '</code>',
			'<code>' . __('JS Defer', 'litespeed-cache') . '</code>'
		);
		$msg .= sprintf(' <a href="admin.php?page=litespeed-page_optm#settings_js">%s</a>.', __('Click here to settings', 'litespeed-cache'));
		Admin_Display::info($msg, false, true);
	}
}

/**
 * For version under v2.0 to v2.0+
 *
 * @since  3.0
 */
function litespeed_update_2_0( $ver ) {
	global $wpdb;

	// Table version only exists after all old data migrated
	// Last modified is v2.4.2
	if (version_compare($ver, '2.4.2', '<')) {
		/**
		 * Convert old data from postmeta to img_optm table
		 *
		 * @since  2.0
		 */

		// Migrate data from `wp_postmeta` to `wp_litespeed_img_optm`
		$mids_to_del     = array();
		$q               = "SELECT * FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_id";
		$meta_value_list = $wpdb->get_results($wpdb->prepare($q, 'litespeed-optimize-data'));
		if ($meta_value_list) {
			$max_k = count($meta_value_list) - 1;
			foreach ($meta_value_list as $k => $v) {
				$mids_to_del[] = $v->meta_id;

				// Delete from postmeta
				if (count($mids_to_del) > 100 || $k == $max_k) {
					$q = "DELETE FROM $wpdb->postmeta WHERE meta_id IN ( " . implode(',', array_fill(0, count($mids_to_del), '%s')) . ' ) ';
					$wpdb->query($wpdb->prepare($q, $mids_to_del));

					$mids_to_del = array();
				}
			}

			Debug2::debug('[Data] img_optm inserted records: ' . $k);
		}

		$q    = "DELETE FROM $wpdb->postmeta WHERE meta_key = %s";
		$rows = $wpdb->query($wpdb->prepare($q, 'litespeed-optimize-status'));
		Debug2::debug('[Data] img_optm delete optm_status records: ' . $rows);
	}

	/**
	 * Add target_md5 field to table
	 *
	 * @since  2.4.2
	 */
	if (version_compare($ver, '2.4.2', '<') && version_compare($ver, '2.0', '>=')) {
		// NOTE: For new users, need to bypass this section
		$sql = sprintf('ALTER TABLE `%1$s` ADD `server_info` text NOT NULL, DROP COLUMN `server`', $wpdb->prefix . 'litespeed_img_optm');

		$res = $wpdb->query($sql);
		if ($res !== true) {
			Debug2::debug('[Data] Warning: Alter table img_optm failed!', $sql);
		} else {
			Debug2::debug('[Data] Successfully upgraded table img_optm.');
		}
	}

	// Delete img optm tb version
	delete_option($wpdb->prefix . 'litespeed_img_optm');

	// Delete possible HTML optm data from wp_options
	delete_option('litespeed-cache-optimized');

	// Delete HTML optm tb version
	delete_option($wpdb->prefix . 'litespeed_optimizer');
}

/**
 * Move all options in litespeed-cache-conf from v3.0- to separate records
 *
 * @since  3.0
 */
function litespeed_update_3_0( $ver ) {
	global $wpdb;
	// Upgrade v2.0- to v2.0 first
	if (version_compare($ver, '2.0', '<')) {
		litespeed_update_2_0($ver);
	}

	set_time_limit(86400);

	// conv items to litespeed.conf.*
	Debug2::debug('[Data] Conv items to litespeed.conf.*');
	$data = array(
		'litespeed-cache-exclude-cache-roles' => 'cache-exc_roles',
		'litespeed-cache-drop_qs' => 'cache-drop_qs',
		'litespeed-forced_cache_uri' => 'cache-force_uri',
		'litespeed-cache_uri_priv' => 'cache-priv_uri',
		'litespeed-excludes_uri' => 'cache-exc',
		'litespeed-cache-vary-group' => 'cache-vary_group',
		'litespeed-adv-purge_all_hooks' => 'purge-hook_all',
		'litespeed-object_global_groups' => 'object-global_groups',
		'litespeed-object_non_persistent_groups' => 'object-non_persistent_groups',
		'litespeed-media-lazy-img-excludes' => 'media-lazy_exc',
		'litespeed-media-lazy-img-cls-excludes' => 'media-lazy_cls_exc',
		'litespeed-media-webp_attribute' => 'img_optm-webp_attr',
		'litespeed-optm-css' => 'optm-ccss_con',
		'litespeed-optm_excludes' => 'optm-exc',
		'litespeed-optm-ccss-separate_posttype' => 'optm-ccss_sep_posttype',
		'litespeed-optm-css-separate_uri' => 'optm-ccss_sep_uri',
		'litespeed-optm-js-defer-excludes' => 'optm-js_defer_exc',
		'litespeed-cache-dns_prefetch' => 'optm-dns_prefetch',
		'litespeed-cache-exclude-optimization-roles' => 'optm-exc_roles',
		'litespeed-log_ignore_filters' => 'debug-log_no_filters', // depreciated
		'litespeed-log_ignore_part_filters' => 'debug-log_no_part_filters', // depreciated
		'litespeed-cdn-ori_dir' => 'cdn-ori_dir',
		'litespeed-cache-cdn_mapping' => 'cdn-mapping',
		'litespeed-crawler-as-uids' => 'crawler-roles',
		'litespeed-crawler-cookies' => 'crawler-cookies',
	);
	foreach ($data as $k => $v) {
		$old_data = get_option($k);
		if ($old_data) {
			Debug2::debug("[Data] Convert $k");
			// They must be an array
			if (!is_array($old_data) && $v != 'optm-ccss_con') {
				$old_data = explode("\n", $old_data);
			}

			if ($v == 'crawler-cookies') {
				$tmp = array();
				$i   = 0;
				foreach ($old_data as $k2 => $v2) {
					$tmp[$i]['name'] = $k2;
					$tmp[$i]['vals'] = explode("\n", $v2);
					++$i;
				}
				$old_data = $tmp;
			}

			add_option('litespeed.conf.' . $v, $old_data);
		}
		Debug2::debug("[Data] Delete $k");
		delete_option($k);
	}

	// conv other items
	$data = array(
		'litespeed-setting-mode' => 'litespeed.setting.mode',
		'litespeed-media-need-pull' => 'litespeed.img_optm.need_pull',
		'litespeed-env-ref' => 'litespeed.env.ref',
		'litespeed-cache-cloudflare_status' => 'litespeed.cdn.cloudflare.status',
	);
	foreach ($data as $k => $v) {
		$old_data = get_option($k);
		if ($old_data) {
			add_option($v, $old_data);
		}
		delete_option($k);
	}

	// Conv conf from litespeed-cache-conf child to litespeed.conf.*
	Debug2::debug('[Data] Conv conf from litespeed-cache-conf child to litespeed.conf.*');
	$previous_options = get_option('litespeed-cache-conf');

	$data = array(
		'radio_select' => 'cache',
		'hash' => 'hash',
		'auto_upgrade' => 'auto_upgrade',
		'news' => 'news',
		'crawler_domain_ip' => 'server_ip',

		'esi_enabled' => 'esi',
		'esi_cached_admbar' => 'esi-cache_admbar',
		'esi_cached_commform' => 'esi-cache_commform',

		'heartbeat' => 'misc-heartbeat_front',

		'cache_browser' => 'cache-browser',
		'cache_browser_ttl' => 'cache-ttl_browser',
		'instant_click' => 'util-instant_click',
		'use_http_for_https_vary' => 'util-no_https_vary',

		'purge_upgrade' => 'purge-upgrade',
		'timed_urls' => 'purge-timed_urls',
		'timed_urls_time' => 'purge-timed_urls_time',

		'cache_priv' => 'cache-priv',
		'cache_commenter' => 'cache-commenter',
		'cache_rest' => 'cache-rest',
		'cache_page_login' => 'cache-page_login',
		'cache_favicon' => 'cache-favicon',
		'cache_resources' => 'cache-resources',
		'mobileview_enabled' => 'cache-mobile',
		'mobileview_rules' => 'cache-mobile_rules',
		'nocache_useragents' => 'cache-exc_useragents',
		'nocache_cookies' => 'cache-exc_cookies',
		'excludes_qs' => 'cache-exc_qs',
		'excludes_cat' => 'cache-exc_cat',
		'excludes_tag' => 'cache-exc_tag',
		'public_ttl' => 'cache-ttl_pub',
		'private_ttl' => 'cache-ttl_priv',
		'front_page_ttl' => 'cache-ttl_frontpage',
		'feed_ttl' => 'cache-ttl_feed',
		'login_cookie' => 'cache-login_cookie',

		'debug_disable_all' => 'debug-disable_all',
		'debug' => 'debug',
		'admin_ips' => 'debug-ips',
		'debug_level' => 'debug-level',
		'log_file_size' => 'debug-filesize',
		'debug_cookie' => 'debug-cookie',
		'collapse_qs' => 'debug-collapse_qs',
		// 'log_filters'                => 'debug-log_filters',

		'crawler_cron_active' => 'crawler',
		// 'crawler_include_posts'  => 'crawler-inc_posts',
		// 'crawler_include_pages'  => 'crawler-inc_pages',
		// 'crawler_include_cats'       => 'crawler-inc_cats',
		// 'crawler_include_tags'       => 'crawler-inc_tags',
		// 'crawler_excludes_cpt'       => 'crawler-exc_cpt',
		// 'crawler_order_links'        => 'crawler-order_links',
		'crawler_usleep' => 'crawler-usleep',
		'crawler_run_duration' => 'crawler-run_duration',
		'crawler_run_interval' => 'crawler-run_interval',
		'crawler_crawl_interval' => 'crawler-crawl_interval',
		'crawler_threads' => 'crawler-threads',
		'crawler_load_limit' => 'crawler-load_limit',
		'crawler_custom_sitemap' => 'crawler-sitemap',

		'cache_object' => 'object',
		'cache_object_kind' => 'object-kind',
		'cache_object_host' => 'object-host',
		'cache_object_port' => 'object-port',
		'cache_object_life' => 'object-life',
		'cache_object_persistent' => 'object-persistent',
		'cache_object_admin' => 'object-admin',
		'cache_object_transients' => 'object-transients',
		'cache_object_db_id' => 'object-db_id',
		'cache_object_user' => 'object-user',
		'cache_object_pswd' => 'object-psw',

		'cdn' => 'cdn',
		'cdn_ori' => 'cdn-ori',
		'cdn_exclude' => 'cdn-exc',
		// 'cdn_remote_jquery'          => 'cdn-remote_jq',
		'cdn_quic' => 'cdn-quic',
		'cdn_cloudflare' => 'cdn-cloudflare',
		'cdn_cloudflare_email' => 'cdn-cloudflare_email',
		'cdn_cloudflare_key' => 'cdn-cloudflare_key',
		'cdn_cloudflare_name' => 'cdn-cloudflare_name',
		'cdn_cloudflare_zone' => 'cdn-cloudflare_zone',

		'media_img_lazy' => 'media-lazy',
		'media_img_lazy_placeholder' => 'media-lazy_placeholder',
		'media_placeholder_resp' => 'media-placeholder_resp',
		'media_placeholder_resp_color' => 'media-placeholder_resp_color',
		'media_placeholder_resp_async' => 'media-placeholder_resp_async',
		'media_iframe_lazy' => 'media-iframe_lazy',
		// 'media_img_lazyjs_inline'        => 'media-lazyjs_inline',

		'media_optm_auto' => 'img_optm-auto',
		'media_optm_cron' => 'img_optm-cron',
		'media_optm_ori' => 'img_optm-ori',
		'media_rm_ori_bkup' => 'img_optm-rm_bkup',
		// 'media_optm_webp'            => 'img_optm-webp',
		'media_webp_replace' => 'img_optm-webp',
		'media_optm_lossless' => 'img_optm-lossless',
		'media_optm_exif' => 'img_optm-exif',
		'media_webp_replace_srcset' => 'img_optm-webp_replace_srcset',

		'css_minify' => 'optm-css_min',
		// 'css_inline_minify'      => 'optm-css_inline_min',
		'css_combine' => 'optm-css_comb',
		// 'css_combined_priority'  => 'optm-css_comb_priority',
		// 'css_http2'              => 'optm-css_http2',
		'css_exclude' => 'optm-css_exc',
		'js_minify' => 'optm-js_min',
		// 'js_inline_minify'       => 'optm-js_inline_min',
		'js_combine' => 'optm-js_comb',
		// 'js_combined_priority'   => 'optm-js_comb_priority',
		// 'js_http2'               => 'optm-js_http2',
		'js_exclude' => 'optm-js_exc',
		// 'optimize_ttl'           => 'optm-ttl',
		'html_minify' => 'optm-html_min',
		'optm_qs_rm' => 'optm-qs_rm',
		'optm_ggfonts_rm' => 'optm-ggfonts_rm',
		'optm_css_async' => 'optm-css_async',
		// 'optm_ccss_gen'          => 'optm-ccss_gen',
		// 'optm_ccss_async'        => 'optm-ccss_async',
		'optm_css_async_inline' => 'optm-css_async_inline',
		'optm_js_defer' => 'optm-js_defer',
		'optm_emoji_rm' => 'optm-emoji_rm',
		// 'optm_exclude_jquery'    => 'optm-exc_jq',
		'optm_ggfonts_async' => 'optm-ggfonts_async',
		// 'optm_max_size'          => 'optm-max_size',
		// 'optm_rm_comment'        => 'optm-rm_comment',
	);
	foreach ($data as $k => $v) {
		if (!isset($previous_options[$k])) {
			continue;
		}
		// The following values must be array
		if (!is_array($previous_options[$k])) {
			if (in_array($v, array( 'cdn-ori', 'cache-exc_cat', 'cache-exc_tag' ))) {
				$previous_options[$k] = explode(',', $previous_options[$k]);
				$previous_options[$k] = array_filter($previous_options[$k]);
			} elseif (in_array($v, array( 'cache-mobile_rules', 'cache-exc_useragents', 'cache-exc_cookies' ))) {
				$previous_options[$k] = explode('|', str_replace('\\ ', ' ', $previous_options[$k]));
				$previous_options[$k] = array_filter($previous_options[$k]);
			} elseif (
				in_array($v, array(
					'purge-timed_urls',
					'cache-exc_qs',
					'debug-ips',
					// 'crawler-exc_cpt',
					'cdn-exc',
					'optm-css_exc',
					'optm-js_exc',
				))
			) {
				$previous_options[$k] = explode("\n", $previous_options[$k]);
				$previous_options[$k] = array_filter($previous_options[$k]);
			}
		}

		// Special handler for heartbeat
		if ($v == 'misc-heartbeat_front') {
			if (!$previous_options[$k]) {
				add_option('litespeed.conf.misc-heartbeat_front', true);
				add_option('litespeed.conf.misc-heartbeat_back', true);
				add_option('litespeed.conf.misc-heartbeat_editor', true);
				add_option('litespeed.conf.misc-heartbeat_front_ttl', 0);
				add_option('litespeed.conf.misc-heartbeat_back_ttl', 0);
				add_option('litespeed.conf.misc-heartbeat_editor_ttl', 0);
			}
			continue;
		}

		add_option('litespeed.conf.' . $v, $previous_options[$k]);
	}
	// Conv purge_by_post
	$data = array(
		'-' => 'purge-post_all',
		'F' => 'purge-post_f',
		'H' => 'purge-post_h',
		'PGS' => 'purge-post_p',
		'PGSRP' => 'purge-post_pwrp',
		'A' => 'purge-post_a',
		'Y' => 'purge-post_y',
		'M' => 'purge-post_m',
		'D' => 'purge-post_d',
		'T' => 'purge-post_t',
		'PT' => 'purge-post_pt',
	);
	if (isset($previous_options['purge_by_post'])) {
		$purge_by_post = explode('.', $previous_options['purge_by_post']);
		foreach ($data as $k => $v) {
			add_option('litespeed.conf.' . $v, in_array($k, $purge_by_post));
		}
	}
	// Conv 404/403/500 TTL
	$ttl_status = array();
	if (isset($previous_options['403_ttl'])) {
		$ttl_status[] = '403 ' . $previous_options['403_ttl'];
	}
	if (isset($previous_options['404_ttl'])) {
		$ttl_status[] = '404 ' . $previous_options['404_ttl'];
	}
	if (isset($previous_options['500_ttl'])) {
		$ttl_status[] = '500 ' . $previous_options['500_ttl'];
	}
	add_option('litespeed.conf.cache-ttl_status', $ttl_status);

	/**
	 * Resave cdn cfg from lscfg to separate cfg when upgrade to v1.7
	 *
	 * NOTE: this can be left here as `add_option` bcos it is after the item `litespeed-cache-cdn_mapping` is converted
	 *
	 * @since 1.7
	 */
	if (isset($previous_options['cdn_url'])) {
		$cdn_mapping = array(
			'url' => $previous_options['cdn_url'],
			'inc_img' => $previous_options['cdn_inc_img'],
			'inc_css' => $previous_options['cdn_inc_css'],
			'inc_js' => $previous_options['cdn_inc_js'],
			'filetype' => $previous_options['cdn_filetype'],
		);
		add_option('litespeed.conf.cdn-mapping', array( $cdn_mapping ));
		Debug2::debug('[Data] plugin_upgrade option adding CDN map');
	}

	/**
	 * Move Exclude settings to separate item
	 *
	 * NOTE: this can be left here as `add_option` bcos it is after the relevant items are converted
	 *
	 * @since  2.3
	 */
	if (isset($previous_options['forced_cache_uri'])) {
		add_option('litespeed.conf.cache-force_uri', $previous_options['forced_cache_uri']);
	}
	if (isset($previous_options['cache_uri_priv'])) {
		add_option('litespeed.conf.cache-priv_uri', $previous_options['cache_uri_priv']);
	}
	if (isset($previous_options['optm_excludes'])) {
		add_option('litespeed.conf.optm-exc', $previous_options['optm_excludes']);
	}
	if (isset($previous_options['excludes_uri'])) {
		add_option('litespeed.conf.cache-exc', $previous_options['excludes_uri']);
	}

	// Backup stale conf
	Debug2::debug('[Data] Backup stale conf');
	delete_option('litespeed-cache-conf');
	add_option('litespeed-cache-conf.bk', $previous_options);

	// Upgrade site_options if is network
	if (is_multisite()) {
		$ver = get_site_option('litespeed.conf._version');
		if (!$ver) {
			Debug2::debug('[Data] Conv multisite');
			$previous_site_options = get_site_option('litespeed-cache-conf');

			$data = array(
				'network_enabled' => 'cache',
				'use_primary_settings' => 'use_primary_settings',
				'auto_upgrade' => 'auto_upgrade',
				'purge_upgrade' => 'purge-upgrade',

				'cache_favicon' => 'cache-favicon',
				'cache_resources' => 'cache-resources',
				'mobileview_enabled' => 'cache-mobile',
				'mobileview_rules' => 'cache-mobile_rules',
				'login_cookie' => 'cache-login_cookie',
				'nocache_cookies' => 'cache-exc_cookies',
				'nocache_useragents' => 'cache-exc_useragents',

				'cache_object' => 'object',
				'cache_object_kind' => 'object-kind',
				'cache_object_host' => 'object-host',
				'cache_object_port' => 'object-port',
				'cache_object_life' => 'object-life',
				'cache_object_persistent' => 'object-persistent',
				'cache_object_admin' => 'object-admin',
				'cache_object_transients' => 'object-transients',
				'cache_object_db_id' => 'object-db_id',
				'cache_object_user' => 'object-user',
				'cache_object_pswd' => 'object-psw',

				'cache_browser' => 'cache-browser',
				'cache_browser_ttl' => 'cache-ttl_browser',

				'media_webp_replace' => 'img_optm-webp',
			);
			foreach ($data as $k => $v) {
				if (!isset($previous_site_options[$k])) {
					continue;
				}
				// The following values must be array
				if (!is_array($previous_site_options[$k])) {
					if (in_array($v, array( 'cache-mobile_rules', 'cache-exc_useragents', 'cache-exc_cookies' ))) {
						$previous_site_options[$k] = explode('|', str_replace('\\ ', ' ', $previous_site_options[$k]));
						$previous_site_options[$k] = array_filter($previous_site_options[$k]);
					}
				}

				add_site_option('litespeed.conf.' . $v, $previous_site_options[$k]);
			}

			// These are already converted to single record in single site
			$data = array( 'object-global_groups', 'object-non_persistent_groups' );
			foreach ($data as $v) {
				$old_data = get_option($v);
				if ($old_data) {
					add_site_option('litespeed.conf.' . $v, $old_data);
				}
			}

			delete_site_option('litespeed-cache-conf');

			add_site_option('litespeed.conf._version', '3.0');
		}
	}

	// delete tables
	Debug2::debug('[Data] Drop litespeed_optimizer');
	$q = 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'litespeed_optimizer';
	$wpdb->query($q);

	// Update image optm table
	Debug2::debug('[Data] Upgrade img_optm table');

	$tb = $wpdb->prefix . 'litespeed_img_optm';
	if (litespeed_table_exists($tb)) {
		$status_mapping = array(
			'requested' => 3,
			'notified' => 6,
			'pulled' => 9,
			'failed' => -1,
			'miss' => -3,
			'err' => -9,
			'err_fetch' => -5,
			'err_optm' => -7,
			'xmeta' => -8,
		);
		foreach ($status_mapping as $k => $v) {
			$q = 'UPDATE `' . $tb . "` SET optm_status='$v' WHERE optm_status='$k'";
			$wpdb->query($q);
		}

		$q =
			'ALTER TABLE `' .
			$tb .
			'`
				DROP INDEX `post_id_2`,
				DROP INDEX `root_id`,
				DROP INDEX `src_md5`,
				DROP INDEX `srcpath_md5`,
				DROP COLUMN `srcpath_md5`,
				DROP COLUMN `src_md5`,
				DROP COLUMN `root_id`,
				DROP COLUMN `target_saved`,
				DROP COLUMN `webp_saved`,
				DROP COLUMN `server_info`,
				MODIFY COLUMN `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
				MODIFY COLUMN `optm_status` tinyint(4) NOT NULL DEFAULT 0,
				MODIFY COLUMN `src` text COLLATE utf8mb4_unicode_ci NOT NULL
			';
		$wpdb->query($q);
	}

	delete_option('litespeed-recommended');

	Debug2::debug('[Data] litespeed_update_3_0 done!');

	add_option('litespeed.conf._version', '3.0');
}
<?php

/**
 * Cloud service cls
 *
 * @since      3.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Cloud extends Base {

	const LOG_TAG           = '❄️';
	const CLOUD_SERVER      = 'https://api.quic.cloud';
	const CLOUD_IPS         = 'https://quic.cloud/ips';
	const CLOUD_SERVER_DASH = 'https://my.quic.cloud';
	const CLOUD_SERVER_WP   = 'https://wpapi.quic.cloud';

	const SVC_D_ACTIVATE       = 'd/activate';
	const SVC_U_ACTIVATE       = 'u/wp3/activate';
	const SVC_D_ENABLE_CDN     = 'd/enable_cdn';
	const SVC_D_LINK           = 'd/link';
	const SVC_D_API            = 'd/api';
	const SVC_D_DASH           = 'd/dash';
	const SVC_D_V3UPGRADE      = 'd/v3upgrade';
	const SVC_U_LINK           = 'u/wp3/link';
	const SVC_U_ENABLE_CDN     = 'u/wp3/enablecdn';
	const SVC_D_STATUS_CDN_CLI = 'd/status/cdn_cli';
	const SVC_D_NODES          = 'd/nodes';
	const SVC_D_SYNC_CONF      = 'd/sync_conf';
	const SVC_D_USAGE          = 'd/usage';
	const SVC_D_SETUP_TOKEN    = 'd/get_token';
	const SVC_D_DEL_CDN_DNS    = 'd/del_cdn_dns';
	const SVC_PAGE_OPTM        = 'page_optm';
	const SVC_CCSS             = 'ccss';
	const SVC_UCSS             = 'ucss';
	const SVC_VPI              = 'vpi';
	const SVC_LQIP             = 'lqip';
	const SVC_QUEUE            = 'queue';
	const SVC_IMG_OPTM         = 'img_optm';
	const SVC_HEALTH           = 'health';
	const SVC_CDN              = 'cdn';

	const IMG_OPTM_DEFAULT_GROUP = 200;

	const IMGOPTM_TAKEN = 'img_optm-taken';

	const TTL_NODE       = 3; // Days before node expired
	const EXPIRATION_REQ = 300; // Seconds of min interval between two unfinished requests
	const TTL_IPS        = 3; // Days for node ip list cache

	const API_REPORT          = 'wp/report';
	const API_NEWS            = 'news';
	const API_VER             = 'ver_check';
	const API_BETA_TEST       = 'beta_test';
	const API_REST_ECHO       = 'tool/wp_rest_echo';
	const API_SERVER_KEY_SIGN = 'key_sign';

	private static $CENTER_SVC_SET = array(
		self::SVC_D_ACTIVATE,
		self::SVC_U_ACTIVATE,
		self::SVC_D_ENABLE_CDN,
		self::SVC_D_LINK,
		self::SVC_D_NODES,
		self::SVC_D_SYNC_CONF,
		self::SVC_D_USAGE,
		self::SVC_D_API,
		self::SVC_D_V3UPGRADE,
		self::SVC_D_DASH,
		self::SVC_D_STATUS_CDN_CLI,
		// self::API_NEWS,
		self::API_REPORT,
		// self::API_VER,
		// self::API_BETA_TEST,
		self::SVC_D_SETUP_TOKEN,
		self::SVC_D_DEL_CDN_DNS,
	);

	private static $WP_SVC_SET = array( self::API_NEWS, self::API_VER, self::API_BETA_TEST, self::API_REST_ECHO );

	// No api key needed for these services
	private static $_PUB_SVC_SET = array( self::API_NEWS, self::API_REPORT, self::API_VER, self::API_BETA_TEST, self::API_REST_ECHO, self::SVC_D_V3UPGRADE, self::SVC_D_DASH );

	private static $_QUEUE_SVC_SET = array( self::SVC_CCSS, self::SVC_UCSS, self::SVC_VPI );

	public static $SERVICES_LOAD_CHECK = array(
		// self::SVC_CCSS,
		// self::SVC_UCSS,
		// self::SVC_VPI,
		self::SVC_LQIP,
		self::SVC_HEALTH,
	);

	public static $SERVICES = array(
		self::SVC_IMG_OPTM,
		self::SVC_PAGE_OPTM,
		self::SVC_CCSS,
		self::SVC_UCSS,
		self::SVC_VPI,
		self::SVC_LQIP,
		self::SVC_CDN,
		self::SVC_HEALTH,
		// self::SVC_QUEUE,
	);

	const TYPE_CLEAR_PROMO    = 'clear_promo';
	const TYPE_REDETECT_CLOUD = 'redetect_cloud';
	const TYPE_CLEAR_CLOUD    = 'clear_cloud';
	const TYPE_ACTIVATE       = 'activate';
	const TYPE_LINK           = 'link';
	const TYPE_ENABLE_CDN     = 'enablecdn';
	const TYPE_API            = 'api';
	const TYPE_SYNC_USAGE     = 'sync_usage';
	const TYPE_RESET          = 'reset';
	const TYPE_SYNC_STATUS    = 'sync_status';

	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_summary = self::get_summary();
	}

	/**
	 * Init QC setup preparation
	 *
	 * @since 7.0
	 */
	public function init_qc_prepare() {
		if (empty($this->_summary['sk_b64'])) {
			$keypair                  = sodium_crypto_sign_keypair();
			$pk                       = base64_encode(sodium_crypto_sign_publickey($keypair));
			$sk                       = base64_encode(sodium_crypto_sign_secretkey($keypair));
			$this->_summary['pk_b64'] = $pk;
			$this->_summary['sk_b64'] = $sk;
			$this->save_summary();
			// ATM `qc_activated` = null
			return true;
		}

		return false;
	}

	/**
	 * Init QC setup
	 *
	 * @since 7.0
	 */
	public function init_qc() {
		$this->init_qc_prepare();

		$ref = $this->_get_ref_url();

		// WPAPI REST echo dryrun
		$echobox  = self::post(self::API_REST_ECHO);
		if ($echobox === false) {
			self::debugErr('REST Echo Failed!');
			$msg = __("QUIC.cloud's access to your WP REST API seems to be blocked.", 'litespeed-cache');
			Admin_Display::error($msg);
			wp_redirect($ref);
			return;
		}

		self::debug('echo succeeded');

		// Load separate thread echoed data from storage
		if (empty($echobox['wpapi_ts']) || empty($echobox['wpapi_signature_b64'])) {
			Admin_Display::error(__('Failed to get echo data from WPAPI', 'litespeed-cache'));
			wp_redirect($ref);
			return;
		}

		$data      = array(
			'wp_pk_b64' => $this->_summary['pk_b64'],
			'wpapi_ts' => $echobox['wpapi_ts'],
			'wpapi_signature_b64' => $echobox['wpapi_signature_b64'],
		);
		$server_ip = $this->conf(self::O_SERVER_IP);
		if ($server_ip) {
			$data['server_ip'] = $server_ip;
		}

		// Activation redirect
		$param = array(
			'site_url' => site_url(),
			'ver' => Core::VER,
			'data' => $data,
			'ref' => $ref,
		);
		wp_redirect(self::CLOUD_SERVER_DASH . '/' . self::SVC_U_ACTIVATE . '?data=' . urlencode(Utility::arr2str($param)));
		exit();
	}

	/**
	 * Decide the ref
	 */
	private function _get_ref_url( $ref = false ) {
		$link = 'admin.php?page=litespeed';
		if ($ref == 'cdn') {
			$link = 'admin.php?page=litespeed-cdn';
		}
		if ($ref == 'online') {
			$link = 'admin.php?page=litespeed-general';
		}
		if (!empty($_GET['ref']) && $_GET['ref'] == 'cdn') {
			$link = 'admin.php?page=litespeed-cdn';
		}
		if (!empty($_GET['ref']) && $_GET['ref'] == 'online') {
			$link = 'admin.php?page=litespeed-general';
		}
		return get_admin_url(null, $link);
	}

	/**
	 * Init QC setup (CLI)
	 *
	 * @since 7.0
	 */
	public function init_qc_cli() {
		$this->init_qc_prepare();

		$server_ip = $this->conf(self::O_SERVER_IP);
		if (!$server_ip) {
			self::debugErr('Server IP needs to be set first!');
			$msg = sprintf(
				__('You need to set the %1$s first. Please use the command %2$s to set.', 'litespeed-cache'),
				'`' . __('Server IP', 'litespeed-cache') . '`',
				'`wp litespeed-option set server_ip __your_ip_value__`'
			);
			Admin_Display::error($msg);
			return;
		}

		// WPAPI REST echo dryrun
		$echobox  = self::post(self::API_REST_ECHO);
		if ($echobox === false) {
			self::debugErr('REST Echo Failed!');
			$msg = __("QUIC.cloud's access to your WP REST API seems to be blocked.", 'litespeed-cache');
			Admin_Display::error($msg);
			return;
		}

		self::debug('echo succeeded');

		// Load separate thread echoed data from storage
		if (empty($echobox['wpapi_ts']) || empty($echobox['wpapi_signature_b64'])) {
			self::debug('Resp: ', $echobox);
			Admin_Display::error(__('Failed to get echo data from WPAPI', 'litespeed-cache'));
			return;
		}

		$data = array(
			'wp_pk_b64' => $this->_summary['pk_b64'],
			'wpapi_ts' => $echobox['wpapi_ts'],
			'wpapi_signature_b64' => $echobox['wpapi_signature_b64'],
			'server_ip' => $server_ip,
		);

		$res = $this->post(self::SVC_D_ACTIVATE, $data);
		return $res;
	}

	/**
	 * Init QC CDN setup (CLI)
	 *
	 * @since 7.0
	 */
	public function init_qc_cdn_cli( $method, $cert = false, $key = false, $cf_token = false ) {
		if (!$this->activated()) {
			Admin_Display::error(__('You need to activate QC first.', 'litespeed-cache'));
			return;
		}

		$server_ip = $this->conf(self::O_SERVER_IP);
		if (!$server_ip) {
			self::debugErr('Server IP needs to be set first!');
			$msg = sprintf(
				__('You need to set the %1$s first. Please use the command %2$s to set.', 'litespeed-cache'),
				'`' . __('Server IP', 'litespeed-cache') . '`',
				'`wp litespeed-option set server_ip __your_ip_value__`'
			);
			Admin_Display::error($msg);
			return;
		}

		if ($cert) {
			if (!file_exists($cert) || !file_exists($key)) {
				Admin_Display::error(__('Cert or key file does not exist.', 'litespeed-cache'));
				return;
			}
		}

		$data = array(
			'method' => $method,
			'server_ip' => $server_ip,
		);
		if ($cert) {
			$data['cert'] = File::read($cert);
			$data['key']  = File::read($key);
		}
		if ($cf_token) {
			$data['cf_token'] = $cf_token;
		}

		$res = $this->post(self::SVC_D_ENABLE_CDN, $data);
		return $res;
	}

	/**
	 * Link to QC setup
	 *
	 * @since 7.0
	 */
	public function link_qc() {
		if (!$this->activated()) {
			Admin_Display::error(__('You need to activate QC first.', 'litespeed-cache'));
			return;
		}

		$data                     = array(
			'wp_ts' => time(),
		);
		$data['wp_signature_b64'] = $this->_sign_b64($data['wp_ts']);

		// Activation redirect
		$param = array(
			'site_url' => site_url(),
			'ver' => Core::VER,
			'data' => $data,
			'ref' => $this->_get_ref_url(),
		);
		wp_redirect(self::CLOUD_SERVER_DASH . '/' . self::SVC_U_LINK . '?data=' . urlencode(Utility::arr2str($param)));
		exit();
	}

	/**
	 * Show QC Account CDN status
	 *
	 * @since 7.0
	 */
	public function cdn_status_cli() {
		if (!$this->activated()) {
			Admin_Display::error(__('You need to activate QC first.', 'litespeed-cache'));
			return;
		}

		$data = array();
		$res  = $this->post(self::SVC_D_STATUS_CDN_CLI, $data);
		return $res;
	}

	/**
	 * Link to QC Account for CLI
	 *
	 * @since 7.0
	 */
	public function link_qc_cli( $email, $key ) {
		if (!$this->activated()) {
			Admin_Display::error(__('You need to activate QC first.', 'litespeed-cache'));
			return;
		}

		$data = array(
			'qc_acct_email' => $email,
			'qc_acct_apikey' => $key,
		);
		$res  = $this->post(self::SVC_D_LINK, $data);
		return $res;
	}

	/**
	 * API link parsed call to QC
	 *
	 * @since 7.0
	 */
	public function api_link_call( $action2 ) {
		if (!$this->activated()) {
			Admin_Display::error(__('You need to activate QC first.', 'litespeed-cache'));
			return;
		}

		$data = array(
			'action2' => $action2,
		);
		$res  = $this->post(self::SVC_D_API, $data);
		self::debug('API link call result: ', $res);
	}

	/**
	 * Enable QC CDN
	 *
	 * @since 7.0
	 */
	public function enable_cdn() {
		if (!$this->activated()) {
			Admin_Display::error(__('You need to activate QC first.', 'litespeed-cache'));
			return;
		}

		$data                     = array(
			'wp_ts' => time(),
		);
		$data['wp_signature_b64'] = $this->_sign_b64($data['wp_ts']);

		// Activation redirect
		$param = array(
			'site_url' => site_url(),
			'ver' => Core::VER,
			'data' => $data,
			'ref' => $this->_get_ref_url(),
		);
		wp_redirect(self::CLOUD_SERVER_DASH . '/' . self::SVC_U_ENABLE_CDN . '?data=' . urlencode(Utility::arr2str($param)));
		exit();
	}

	/**
	 * Encrypt data for cloud req
	 *
	 * @since 7.0
	 */
	private function _sign_b64( $data ) {
		if (empty($this->_summary['sk_b64'])) {
			self::debugErr('No sk to sign.');
			return false;
		}
		$sk = base64_decode($this->_summary['sk_b64']);
		if (strlen($sk) !== SODIUM_CRYPTO_SIGN_SECRETKEYBYTES) {
			self::debugErr('Invalid local sign sk length.');
			// Reset local pk/sk
			unset($this->_summary['pk_b64']);
			unset($this->_summary['sk_b64']);
			$this->save_summary();
			self::debug('Clear local sign pk/sk pair.');

			return false;
		}
		$signature = sodium_crypto_sign_detached((string) $data, $sk);
		return base64_encode($signature);
	}

	/**
	 * Load server pk from cloud
	 *
	 * @since 7.0
	 */
	private function _load_server_pk( $from_wpapi = false ) {
		// Load cloud pk
		$server_key_url = self::CLOUD_SERVER . '/' . self::API_SERVER_KEY_SIGN;
		if ($from_wpapi) {
			$server_key_url = self::CLOUD_SERVER_WP . '/' . self::API_SERVER_KEY_SIGN;
		}
		$resp = wp_safe_remote_get($server_key_url);
		if (is_wp_error($resp)) {
			self::debugErr('Failed to load key: ' . $resp->get_error_message());
			return false;
		}
		$pk = trim($resp['body']);
		self::debug('Loaded key from ' . $server_key_url . ': ' . $pk);
		$cloud_pk = base64_decode($pk);
		if (strlen($cloud_pk) !== SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES) {
			self::debugErr('Invalid cloud public key length.');
			return false;
		}

		$sk = base64_decode($this->_summary['sk_b64']);
		if (strlen($sk) !== SODIUM_CRYPTO_SIGN_SECRETKEYBYTES) {
			self::debugErr('Invalid local secret key length.');
			// Reset local pk/sk
			unset($this->_summary['pk_b64']);
			unset($this->_summary['sk_b64']);
			$this->save_summary();
			self::debug('Unset local pk/sk pair.');

			return false;
		}

		return $cloud_pk;
	}

	/**
	 * WPAPI echo back to notify the sealed databox
	 *
	 * @since 7.0
	 */
	public function wp_rest_echo() {
		self::debug('Parsing echo', $_POST);

		if (empty($_POST['wpapi_ts']) || empty($_POST['wpapi_signature_b64'])) {
			return self::err('No echo data');
		}

		$is_valid = $this->_validate_signature($_POST['wpapi_signature_b64'], $_POST['wpapi_ts'], true);
		if (!$is_valid) {
			return self::err('Data validation from WPAPI REST Echo failed');
		}

		$diff = time() - $_POST['wpapi_ts'];
		if (abs($diff) > 86400) {
			self::debugErr('WPAPI echo data timeout [diff] ' . $diff);
			return self::err('Echo data expired');
		}

		$signature_b64 = $this->_sign_b64($_POST['wpapi_ts']);
		self::debug('Response to echo [signature_b64] ' . $signature_b64);
		return self::ok(array( 'signature_b64' => $signature_b64 ));
	}

	/**
	 * Validate cloud data
	 *
	 * @since 7.0
	 */
	private function _validate_signature( $signature_b64, $data, $from_wpapi = false ) {
		// Try validation
		try {
			$cloud_pk = $this->_load_server_pk($from_wpapi);
			if (!$cloud_pk) {
				return false;
			}
			$signature = base64_decode($signature_b64);
			$is_valid  = sodium_crypto_sign_verify_detached($signature, $data, $cloud_pk);
		} catch (\SodiumException $e) {
			self::debugErr('Decryption failed: ' . $e->getMessage());
			return false;
		}
		self::debug('Signature validation result: ' . ($is_valid ? 'true' : 'false'));
		return $is_valid;
	}

	/**
	 * Finish qc activation after redirection back from QC
	 *
	 * @since 7.0
	 */
	public function finish_qc_activation( $ref = false ) {
		if (empty($_GET['qc_activated']) || empty($_GET['qc_ts']) || empty($_GET['qc_signature_b64'])) {
			return;
		}

		$data_to_validate_signature = array(
			'wp_pk_b64' => $this->_summary['pk_b64'],
			'qc_ts' => $_GET['qc_ts'],
		);
		$is_valid                   = $this->_validate_signature($_GET['qc_signature_b64'], implode('', $data_to_validate_signature));
		if (!$is_valid) {
			self::debugErr('Failed to validate qc activation data');
			Admin_Display::error(sprintf(__('Failed to validate %s activation data.', 'litespeed-cache'), 'QUIC.cloud'));
			return;
		}

		self::debug('QC activation status: ' . $_GET['qc_activated']);
		if (!in_array($_GET['qc_activated'], array( 'anonymous', 'linked', 'cdn' ))) {
			self::debugErr('Failed to parse qc activation status');
			Admin_Display::error(sprintf(__('Failed to parse %s activation status.', 'litespeed-cache'), 'QUIC.cloud'));
			return;
		}

		$diff = time() - $_GET['qc_ts'];
		if (abs($diff) > 86400) {
			self::debugErr('QC activation data timeout [diff] ' . $diff);
			Admin_Display::error(sprintf(__('%s activation data expired.', 'litespeed-cache'), 'QUIC.cloud'));
			return;
		}

		$main_domain = !empty($_GET['main_domain']) ? $_GET['main_domain'] : false;
		$this->update_qc_activation($_GET['qc_activated'], $main_domain);

		wp_redirect($this->_get_ref_url($ref));
	}

	/**
	 * Finish qc activation process
	 *
	 * @since 7.0
	 */
	public function update_qc_activation( $qc_activated, $main_domain = false, $quite = false ) {
		$this->_summary['qc_activated'] = $qc_activated;
		if ($main_domain) {
			$this->_summary['main_domain'] = $main_domain;
		}
		$this->save_summary();

		$msg = sprintf(__('Congratulations, %s successfully set this domain up for the anonymous online services.', 'litespeed-cache'), 'QUIC.cloud');
		if ($qc_activated == 'linked') {
			$msg = sprintf(__('Congratulations, %s successfully set this domain up for the online services.', 'litespeed-cache'), 'QUIC.cloud');
			// Sync possible partner info
			$this->sync_usage();
		}
		if ($qc_activated == 'cdn') {
			$msg = sprintf(__('Congratulations, %s successfully set this domain up for the online services with CDN service.', 'litespeed-cache'), 'QUIC.cloud');
			// Turn on CDN option
			$this->cls('Conf')->update_confs(array( self::O_CDN_QUIC => true ));
		}
		if (!$quite) {
			Admin_Display::success('🎊 ' . $msg);
		}

		$this->_clear_reset_qc_reg_msg();

		$this->clear_cloud();
	}

	/**
	 * Load QC status for dash usage
	 * Format to translate: `<a href="{#xxx#}" class="button button-primary">xxxx</a><a href="{#xxx#}">xxxx2</a>`
	 *
	 * @since 7.0
	 */
	public function load_qc_status_for_dash( $type, $force = false ) {
		return Str::translate_qc_apis($this->_load_qc_status_for_dash($type, $force));
	}
	private function _load_qc_status_for_dash( $type, $force = false ) {
		if (
			!$force &&
			!empty($this->_summary['mini_html']) &&
			isset($this->_summary['mini_html'][$type]) &&
			!empty($this->_summary['mini_html']['ttl.' . $type]) &&
			$this->_summary['mini_html']['ttl.' . $type] > time()
		) {
			return Str::safe_html($this->_summary['mini_html'][$type]);
		}

		// Try to update dash content
		$data = self::post(self::SVC_D_DASH, array( 'action2' => $type == 'cdn_dash_mini' ? 'cdn_dash' : $type ));
		if (!empty($data['qc_activated'])) {
			// Sync conf as changed
			if (empty($this->_summary['qc_activated']) || $this->_summary['qc_activated'] != $data['qc_activated']) {
				$msg = sprintf(__('Congratulations, %s successfully set this domain up for the online services with CDN service.', 'litespeed-cache'), 'QUIC.cloud');
				Admin_Display::success('🎊 ' . $msg);
				$this->_clear_reset_qc_reg_msg();
				// Turn on CDN option
				$this->cls('Conf')->update_confs(array( self::O_CDN_QUIC => true ));
				$this->cls('CDN\Quic')->try_sync_conf(true);
			}

			$this->_summary['qc_activated'] = $data['qc_activated'];
			$this->save_summary();
		}

		// Show the info
		if (isset($this->_summary['mini_html'][$type])) {
			return Str::safe_html($this->_summary['mini_html'][$type]);
		}

		return '';
	}

	/**
	 * Update QC status
	 *
	 * @since 7.0
	 */
	public function update_cdn_status() {
		if (empty($_POST['qc_activated']) || !in_array($_POST['qc_activated'], array( 'anonymous', 'linked', 'cdn', 'deleted' ))) {
			return self::err('lack_of_params');
		}

		self::debug('update_cdn_status request hash: ' . $_POST['qc_activated']);

		if ($_POST['qc_activated'] == 'deleted') {
			$this->_reset_qc_reg();
		} else {
			$this->_summary['qc_activated'] = $_POST['qc_activated'];
			$this->save_summary();
		}

		if ($_POST['qc_activated'] == 'cdn') {
			$msg = sprintf(__('Congratulations, %s successfully set this domain up for the online services with CDN service.', 'litespeed-cache'), 'QUIC.cloud');
			Admin_Display::success('🎊 ' . $msg);
			$this->_clear_reset_qc_reg_msg();
			// Turn on CDN option
			$this->cls('Conf')->update_confs(array( self::O_CDN_QUIC => true ));
			$this->cls('CDN\Quic')->try_sync_conf(true);
		}

		return self::ok(array( 'qc_activated' => $_POST['qc_activated'] ));
	}

	/**
	 * Reset QC setup
	 *
	 * @since 7.0
	 */
	public function reset_qc() {
		unset($this->_summary['pk_b64']);
		unset($this->_summary['sk_b64']);
		unset($this->_summary['qc_activated']);
		if (!empty($this->_summary['partner'])) {
			unset($this->_summary['partner']);
		}
		$this->save_summary();
		self::debug('Clear local QC activation.');

		$this->clear_cloud();

		Admin_Display::success(sprintf(__('Reset %s activation successfully.', 'litespeed-cache'), 'QUIC.cloud'));
		wp_redirect($this->_get_ref_url());
		exit();
	}

	/**
	 * Show latest commit version always if is on dev
	 *
	 * @since 3.0
	 */
	public function check_dev_version() {
		if (!preg_match('/[^\d\.]/', Core::VER)) {
			return;
		}

		$last_check = empty($this->_summary['last_request.' . self::API_VER]) ? 0 : $this->_summary['last_request.' . self::API_VER];

		if (time() - $last_check > 86400) {
			$auto_v = self::version_check('dev');
			if (!empty($auto_v['dev'])) {
				self::save_summary(array( 'version.dev' => $auto_v['dev'] ));
			}
		}

		if (empty($this->_summary['version.dev'])) {
			return;
		}

		self::debug('Latest dev version ' . $this->_summary['version.dev']);

		if (version_compare($this->_summary['version.dev'], Core::VER, '<=')) {
			return;
		}

		// Show the dev banner
		require_once LSCWP_DIR . 'tpl/banner/new_version_dev.tpl.php';
	}

	/**
	 * Check latest version
	 *
	 * @since  2.9
	 * @access public
	 */
	public static function version_check( $src = false ) {
		$req_data = array(
			'v' => defined('LSCWP_CUR_V') ? LSCWP_CUR_V : '',
			'src' => $src,
			'php' => phpversion(),
		);
		if (defined('LITESPEED_ERR')) {
			$req_data['err'] = base64_encode(!is_string(LITESPEED_ERR) ? \json_encode(LITESPEED_ERR) : LITESPEED_ERR);
		}
		$data = self::post(self::API_VER, $req_data);

		return $data;
	}

	/**
	 * Show latest news
	 *
	 * @since 3.0
	 */
	public function news() {
		$this->_update_news();

		if (empty($this->_summary['news.new'])) {
			return;
		}

		if (!empty($this->_summary['news.plugin']) && Activation::cls()->dash_notifier_is_plugin_active($this->_summary['news.plugin'])) {
			return;
		}

		require_once LSCWP_DIR . 'tpl/banner/cloud_news.tpl.php';
	}

	/**
	 * Update latest news
	 *
	 * @since 2.9.9.1
	 */
	private function _update_news() {
		if (!empty($this->_summary['news.utime']) && time() - $this->_summary['news.utime'] < 86400 * 7) {
			return;
		}

		self::save_summary(array( 'news.utime' => time() ));

		$data = self::get(self::API_NEWS);
		if (empty($data['id'])) {
			return;
		}

		// Save news
		if (!empty($this->_summary['news.id']) && $this->_summary['news.id'] == $data['id']) {
			return;
		}

		$this->_summary['news.id']      = $data['id'];
		$this->_summary['news.plugin']  = !empty($data['plugin']) ? $data['plugin'] : '';
		$this->_summary['news.title']   = !empty($data['title']) ? $data['title'] : '';
		$this->_summary['news.content'] = !empty($data['content']) ? $data['content'] : '';
		$this->_summary['news.zip']     = !empty($data['zip']) ? $data['zip'] : '';
		$this->_summary['news.new']     = 1;

		if ($this->_summary['news.plugin']) {
			$plugin_info = Activation::cls()->dash_notifier_get_plugin_info($this->_summary['news.plugin']);
			if ($plugin_info && !empty($plugin_info->name)) {
				$this->_summary['news.plugin_name'] = $plugin_info->name;
			}
		}

		self::save_summary();
	}

	/**
	 * Check if contains a package in a service or not
	 *
	 * @since  4.0
	 */
	public function has_pkg( $service, $pkg ) {
		if (!empty($this->_summary['usage.' . $service]['pkgs']) && $this->_summary['usage.' . $service]['pkgs'] & $pkg) {
			return true;
		}

		return false;
	}

	/**
	 * Get allowance of current service
	 *
	 * @since  3.0
	 * @access private
	 */
	public function allowance( $service, &$err = false ) {
		// Only auto sync usage at most one time per day
		if (empty($this->_summary['last_request.' . self::SVC_D_USAGE]) || time() - $this->_summary['last_request.' . self::SVC_D_USAGE] > 86400) {
			$this->sync_usage();
		}

		if (in_array($service, array( self::SVC_CCSS, self::SVC_UCSS, self::SVC_VPI ))) {
			// @since 4.2
			$service = self::SVC_PAGE_OPTM;
		}

		if (empty($this->_summary['usage.' . $service])) {
			return 0;
		}
		$usage = $this->_summary['usage.' . $service];

		// Image optm is always free
		$allowance_max = 0;
		if ($service == self::SVC_IMG_OPTM) {
			$allowance_max = self::IMG_OPTM_DEFAULT_GROUP;
		}

		$allowance = $usage['quota'] - $usage['used'];

		$err = 'out_of_quota';

		if ($allowance > 0) {
			if ($allowance_max && $allowance_max < $allowance) {
				$allowance = $allowance_max;
			}

			// Daily limit @since 4.2
			if (isset($usage['remaining_daily_quota']) && $usage['remaining_daily_quota'] >= 0 && $usage['remaining_daily_quota'] < $allowance) {
				$allowance = $usage['remaining_daily_quota'];
				if (!$allowance) {
					$err = 'out_of_daily_quota';
				}
			}

			return $allowance;
		}

		// Check Pay As You Go balance
		if (empty($usage['pag_bal'])) {
			return $allowance_max;
		}

		if ($allowance_max && $allowance_max < $usage['pag_bal']) {
			return $allowance_max;
		}

		return $usage['pag_bal'];
	}

	/**
	 * Sync Cloud usage summary data
	 *
	 * @since  3.0
	 * @access public
	 */
	public function sync_usage() {
		$usage = $this->_post(self::SVC_D_USAGE);
		if (!$usage) {
			return;
		}

		self::debug('sync_usage ' . \json_encode($usage));

		foreach (self::$SERVICES as $v) {
			$this->_summary['usage.' . $v] = !empty($usage[$v]) ? $usage[$v] : false;
		}

		self::save_summary();

		return $this->_summary;
	}

	/**
	 * Clear all existing cloud nodes for future reconnect
	 *
	 * @since  3.0
	 * @access public
	 */
	public function clear_cloud() {
		foreach (self::$SERVICES as $service) {
			if (isset($this->_summary['server.' . $service])) {
				unset($this->_summary['server.' . $service]);
			}
			if (isset($this->_summary['server_date.' . $service])) {
				unset($this->_summary['server_date.' . $service]);
			}
		}
		self::save_summary();

		self::debug('Cleared all local service node caches');
	}

	/**
	 * ping clouds to find the fastest node
	 *
	 * @since  3.0
	 * @access public
	 */
	public function detect_cloud( $service, $force = false ) {
		if (in_array($service, self::$CENTER_SVC_SET)) {
			return self::CLOUD_SERVER;
		}

		if (in_array($service, self::$WP_SVC_SET)) {
			return self::CLOUD_SERVER_WP;
		}

		// Check if the stored server needs to be refreshed
		if (!$force) {
			if (
				!empty($this->_summary['server.' . $service]) &&
				!empty($this->_summary['server_date.' . $service]) &&
				$this->_summary['server_date.' . $service] > time() - 86400 * self::TTL_NODE
			) {
				$server = $this->_summary['server.' . $service];
				if (!strpos(self::CLOUD_SERVER, 'preview.') && !strpos($server, 'preview.')) {
					return $server;
				}
				if (strpos(self::CLOUD_SERVER, 'preview.') && strpos($server, 'preview.')) {
					return $server;
				}
			}
		}

		if (!$service || !in_array($service, self::$SERVICES)) {
			$msg = __('Cloud Error', 'litespeed-cache') . ': ' . $service;
			Admin_Display::error($msg);
			return false;
		}

		// Send request to Quic Online Service
		$json = $this->_post(self::SVC_D_NODES, array( 'svc' => $this->_maybe_queue($service) ));

		// Check if get list correctly
		if (empty($json['list']) || !is_array($json['list'])) {
			self::debug('request cloud list failed: ', $json);

			if ($json) {
				$msg = __('Cloud Error', 'litespeed-cache') . ": [Service] $service [Info] " . \json_encode($json);
				Admin_Display::error($msg);
			}

			return false;
		}

		// Ping closest cloud
		$valid_clouds = false;
		if (!empty($json['list_preferred'])) {
			$valid_clouds = $this->_get_closest_nodes($json['list_preferred'], $service);
		}
		if (!$valid_clouds) {
			$valid_clouds = $this->_get_closest_nodes($json['list'], $service);
		}
		if (!$valid_clouds) {
			return false;
		}

		// Check server load
		if (in_array($service, self::$SERVICES_LOAD_CHECK)) {
			// TODO
			$valid_cloud_loads = array();
			foreach ($valid_clouds as $k => $v) {
				$response = wp_safe_remote_get($v, array( 'timeout' => 5 ));
				if (is_wp_error($response)) {
					$error_message = $response->get_error_message();
					self::debug('failed to do load checker: ' . $error_message);
					continue;
				}

				$curr_load = \json_decode($response['body'], true);
				if (!empty($curr_load['_res']) && $curr_load['_res'] == 'ok' && isset($curr_load['load'])) {
					$valid_cloud_loads[$v] = $curr_load['load'];
				}
			}

			if (!$valid_cloud_loads) {
				$msg = __('Cloud Error', 'litespeed-cache') . ": [Service] $service [Info] " . __('No available Cloud Node after checked server load.', 'litespeed-cache');
				Admin_Display::error($msg);
				return false;
			}

			self::debug('Closest nodes list after load check', $valid_cloud_loads);

			$qualified_list = array_keys($valid_cloud_loads, min($valid_cloud_loads));
		} else {
			$qualified_list = $valid_clouds;
		}

		$closest = $qualified_list[array_rand($qualified_list)];

		self::debug('Chose node: ' . $closest);

		// store data into option locally
		$this->_summary['server.' . $service]      = $closest;
		$this->_summary['server_date.' . $service] = time();
		self::save_summary();

		return $this->_summary['server.' . $service];
	}

	/**
	 * Ping to choose the closest nodes
	 *
	 * @since 7.0
	 */
	private function _get_closest_nodes( $list, $service ) {
		$speed_list = array();
		foreach ($list as $v) {
			// Exclude possible failed 503 nodes
			if (!empty($this->_summary['disabled_node']) && !empty($this->_summary['disabled_node'][$v]) && time() - $this->_summary['disabled_node'][$v] < 86400) {
				continue;
			}
			$speed_list[$v] = Utility::ping($v);
		}

		if (!$speed_list) {
			self::debug('nodes are in 503 failed nodes');
			return false;
		}

		$min = min($speed_list);

		if ($min == 99999) {
			self::debug('failed to ping all clouds');
			return false;
		}

		// Random pick same time range ip (230ms 250ms)
		$range_len    = strlen($min);
		$range_num    = substr($min, 0, 1);
		$valid_clouds = array();
		foreach ($speed_list as $node => $speed) {
			if (strlen($speed) == $range_len && substr($speed, 0, 1) == $range_num) {
				$valid_clouds[] = $node;
			}
			// Append the lower speed ones
			elseif ($speed < $min * 4) {
				$valid_clouds[] = $node;
			}
		}

		if (!$valid_clouds) {
			$msg = __('Cloud Error', 'litespeed-cache') . ": [Service] $service [Info] " . __('No available Cloud Node.', 'litespeed-cache');
			Admin_Display::error($msg);
			return false;
		}

		self::debug('Closest nodes list', $valid_clouds);
		return $valid_clouds;
	}

	/**
	 * May need to convert to queue service
	 */
	private function _maybe_queue( $service ) {
		if (in_array($service, self::$_QUEUE_SVC_SET)) {
			return self::SVC_QUEUE;
		}
		return $service;
	}

	/**
	 * Get data from QUIC cloud server
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get( $service, $data = array() ) {
		$instance = self::cls();
		return $instance->_get($service, $data);
	}

	/**
	 * Get data from QUIC cloud server
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _get( $service, $data = false ) {
		$service_tag = $service;
		if (!empty($data['action'])) {
			$service_tag .= '-' . $data['action'];
		}

		$maybe_cloud = $this->_maybe_cloud($service_tag);
		if (!$maybe_cloud || $maybe_cloud === 'svc_hot') {
			return $maybe_cloud;
		}

		$server = $this->detect_cloud($service);
		if (!$server) {
			return;
		}

		$url = $server . '/' . $service;

		$param = array(
			'site_url' => site_url(),
			'main_domain' => !empty($this->_summary['main_domain']) ? $this->_summary['main_domain'] : '',
			'ver' => Core::VER,
		);

		if ($data) {
			$param['data'] = $data;
		}

		$url .= '?' . http_build_query($param);

		self::debug('getting from : ' . $url);

		self::save_summary(array( 'curr_request.' . $service_tag => time() ));
		File::save(LITESPEED_STATIC_DIR . '/qc_curr_request' . md5($service_tag), time(), true);

		$response = wp_safe_remote_get($url, array(
			'timeout' => 15,
			'headers' => array( 'Accept' => 'application/json' ),
		));

		return $this->_parse_response($response, $service, $service_tag, $server);
	}

	/**
	 * Check if is able to do cloud request or not
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _maybe_cloud( $service_tag ) {
		$site_url = site_url();
		if (!wp_http_validate_url($site_url)) {
			self::debug('wp_http_validate_url failed: ' . $site_url);
			return false;
		}

		// Deny if is IP
		if (preg_match('#^(([1-9]?\d|1\d\d|25[0-5]|2[0-4]\d)\.){3}([1-9]?\d|1\d\d|25[0-5]|2[0-4]\d)$#', Utility::parse_url_safe($site_url, PHP_URL_HOST))) {
			self::debug('IP home url is not allowed for cloud service.');
			$msg = __('In order to use QC services, need a real domain name, cannot use an IP.', 'litespeed-cache');
			Admin_Display::error($msg);
			return false;
		}

		/** @since 5.0 If in valid err_domains, bypass request */
		if ($this->_is_err_domain($site_url)) {
			self::debug('home url is in err_domains, bypass request: ' . $site_url);
			return false;
		}

		// we don't want the `img_optm-taken` to fail at any given time
		if ($service_tag == self::IMGOPTM_TAKEN) {
			return true;
		}

		if ($service_tag == self::SVC_D_SYNC_CONF && !$this->activated()) {
			self::debug('Skip sync conf as QC not activated yet.');
			return false;
		}

		// Check TTL
		if (!empty($this->_summary['ttl.' . $service_tag])) {
			$ttl = $this->_summary['ttl.' . $service_tag] - time();
			if ($ttl > 0) {
				self::debug('❌ TTL limit. [srv] ' . $service_tag . ' [TTL cool down] ' . $ttl . ' seconds');
				return 'svc_hot';
			}
		}

		$expiration_req = self::EXPIRATION_REQ;
		// Limit frequent unfinished request to 5min
		$timestamp_tag = 'curr_request.';
		if ($service_tag == self::SVC_IMG_OPTM . '-' . Img_Optm::TYPE_NEW_REQ) {
			$timestamp_tag = 'last_request.';
		}

		// For all other requests, if is under debug mode, will always allow
		if (!$this->conf(self::O_DEBUG)) {
			if (!empty($this->_summary[$timestamp_tag . $service_tag])) {
				$expired = $this->_summary[$timestamp_tag . $service_tag] + $expiration_req - time();
				if ($expired > 0) {
					self::debug("❌ try [$service_tag] after $expired seconds");

					if ($service_tag !== self::API_VER) {
						$msg =
							__('Cloud Error', 'litespeed-cache') .
							': ' .
							sprintf(
								__('Please try after %1$s for service %2$s.', 'litespeed-cache'),
								Utility::readable_time($expired, 0, true),
								'<code>' . $service_tag . '</code>'
							);
						Admin_Display::error(array( 'cloud_trylater' => $msg ));
					}

					return false;
				}
			} else {
				// May fail to store to db if db died. Need to store to file to prevent from duplicate calls
				$file_path = LITESPEED_STATIC_DIR . '/qc_' . $timestamp_tag . md5($service_tag);
				if (file_exists($file_path)) {
					$last_request = file_get_contents($file_path);
					$expired      = $last_request + $expiration_req * 10 - time();
					if ($expired > 0) {
						self::debug("❌ try [$service_tag] after $expired seconds");
						return false;
					}
				}
			}
		}

		if (in_array($service_tag, self::$_PUB_SVC_SET)) {
			return true;
		}

		if (!$this->activated() && $service_tag != self::SVC_D_ACTIVATE) {
			Admin_Display::error(Error::msg('qc_setup_required'));
			return false;
		}

		return true;
	}

	/**
	 * Check if a service tag ttl is valid or not
	 *
	 * @since 7.1
	 */
	public function service_hot( $service_tag ) {
		if (empty($this->_summary['ttl.' . $service_tag])) {
			return false;
		}

		$ttl = $this->_summary['ttl.' . $service_tag] - time();
		if ($ttl <= 0) {
			return false;
		}

		return $ttl;
	}

	/**
	 * Check if activated QUIC.cloud service or not
	 *
	 * @since  7.0
	 * @access public
	 */
	public function activated() {
		return !empty($this->_summary['sk_b64']) && !empty($this->_summary['qc_activated']);
	}

	/**
	 * Show my.qc quick link to the domain page
	 */
	public function qc_link() {
		$data = array(
			'site_url' => site_url(),
			'ver' => LSCWP_V,
			'ref' => $this->_get_ref_url(),
		);
		return self::CLOUD_SERVER_DASH . '/u/wp3/manage?data=' . urlencode(Utility::arr2str($data)); // . (!empty($this->_summary['is_linked']) ? '?wplogin=1' : '');
	}

	/**
	 * Post data to QUIC.cloud server
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function post( $service, $data = false, $time_out = false ) {
		$instance = self::cls();
		return $instance->_post($service, $data, $time_out);
	}

	/**
	 * Post data to cloud server
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _post( $service, $data = false, $time_out = false ) {
		$service_tag = $service;
		if (!empty($data['action'])) {
			$service_tag .= '-' . $data['action'];
		}

		$maybe_cloud = $this->_maybe_cloud($service_tag);
		if (!$maybe_cloud || $maybe_cloud === 'svc_hot') {
			self::debug('Maybe cloud failed: ' . var_export($maybe_cloud, true));
			return $maybe_cloud;
		}

		$server = $this->detect_cloud($service);
		if (!$server) {
			return;
		}

		$url = $server . '/' . $this->_maybe_queue($service);

		self::debug('posting to : ' . $url);

		if ($data) {
			$data['service_type'] = $service; // For queue distribution usage
		}

		// Encrypt service as signature
		// $signature_ts = time();
		// $sign_data = array(
		// 'service_tag' => $service_tag,
		// 'ts' => $signature_ts,
		// );
		// $data['signature_b64'] = $this->_sign_b64(implode('', $sign_data));
		// $data['signature_ts'] = $signature_ts;

		self::debug('data', $data);
		$param = array(
			'site_url' => site_url(), // Need to use site_url() as WPML case may change home_url() for diff langs (no need to treat as alias for multi langs)
			'main_domain' => !empty($this->_summary['main_domain']) ? $this->_summary['main_domain'] : '',
			'wp_pk_b64' => !empty($this->_summary['pk_b64']) ? $this->_summary['pk_b64'] : '',
			'ver' => Core::VER,
			'data' => $data,
		);

		self::save_summary(array( 'curr_request.' . $service_tag => time() ));
		File::save(LITESPEED_STATIC_DIR . '/qc_curr_request' . md5($service_tag), time(), true);

		$response = wp_safe_remote_post($url, array(
			'body' => $param,
			'timeout' => $time_out ?: 15,
			'headers' => array(
				'Accept' => 'application/json',
				'Expect' => '',
			),
		));

		return $this->_parse_response($response, $service, $service_tag, $server);
	}

	/**
	 * Parse response JSON
	 * Mark the request successful if the response status is ok
	 *
	 * @since  3.0
	 */
	private function _parse_response( $response, $service, $service_tag, $server ) {
		// If show the error or not if failed
		$visible_err = $service !== self::API_VER && $service !== self::API_NEWS && $service !== self::SVC_D_DASH;

		if (is_wp_error($response)) {
			$error_message = $response->get_error_message();
			self::debug('failed to request: ' . $error_message);

			if ($visible_err) {
				$msg = __('Failed to request via WordPress', 'litespeed-cache') . ': ' . $error_message . " [server] $server [service] $service";
				Admin_Display::error($msg);

				// Tmp disabled this node from reusing in 1 day
				if (empty($this->_summary['disabled_node'])) {
					$this->_summary['disabled_node'] = array();
				}
				$this->_summary['disabled_node'][$server] = time();
				self::save_summary();

				// Force redetect node
				self::debug('Node error, redetecting node [svc] ' . $service);
				$this->detect_cloud($service, true);
			}
			return false;
		}

		$json = \json_decode($response['body'], true);

		if (!is_array($json)) {
			self::debugErr('failed to decode response json: ' . $response['body']);

			if ($visible_err) {
				$msg = __('Failed to request via WordPress', 'litespeed-cache') . ': ' . $response['body'] . " [server] $server [service] $service";
				Admin_Display::error($msg);

				// Tmp disabled this node from reusing in 1 day
				if (empty($this->_summary['disabled_node'])) {
					$this->_summary['disabled_node'] = array();
				}
				$this->_summary['disabled_node'][$server] = time();
				self::save_summary();

				// Force redetect node
				self::debugErr('Node error, redetecting node [svc] ' . $service);
				$this->detect_cloud($service, true);
			}

			return false;
		}

		// Check and save TTL data
		if (!empty($json['_ttl'])) {
			$ttl = intval($json['_ttl']);
			self::debug('Service TTL to save: ' . $ttl);
			if ($ttl > 0 && $ttl < 86400) {
				self::save_summary(array(
					'ttl.' . $service_tag => $ttl + time(),
				));
			}
		}

		if (!empty($json['_code'])) {
			self::debugErr('Hit err _code: ' . $json['_code']);
			if ($json['_code'] == 'unpulled_images') {
				$msg = __('Cloud server refused the current request due to unpulled images. Please pull the images first.', 'litespeed-cache');
				Admin_Display::error($msg);
				return false;
			}
			if ($json['_code'] == 'blocklisted') {
				$msg = __('Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more.', 'litespeed-cache');
				Admin_Display::error($msg);
				return false;
			}

			if ($json['_code'] == 'rate_limit') {
				self::debugErr('Cloud server rate limit exceeded.');
				$msg = __('Cloud server refused the current request due to rate limiting. Please try again later.', 'litespeed-cache');
				Admin_Display::error($msg);
				return false;
			}

			if ($json['_code'] == 'heavy_load' || $json['_code'] == 'redetect_node') {
				// Force redetect node
				self::debugErr('Node redetecting node [svc] ' . $service);
				Admin_Display::info(__('Redetected node', 'litespeed-cache') . ': ' . Error::msg($json['_code']));
				$this->detect_cloud($service, true);
			}
		}

		if (!empty($json['_503'])) {
			self::debugErr('service 503 unavailable temporarily. ' . $json['_503']);

			$msg  = __(
				'We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.',
				'litespeed-cache'
			);
			$msg .= ' ' . $json['_503'] . " [server] $server [service] $service";
			Admin_Display::error($msg);

			// Force redetect node
			self::debugErr('Node error, redetecting node [svc] ' . $service);
			$this->detect_cloud($service, true);

			return false;
		}

		list($json, $return) = $this->extract_msg($json, $service, $server);
		if ($return) {
			return false;
		}

		$curr_request = $this->_summary['curr_request.' . $service_tag];
		self::save_summary(array(
			'last_request.' . $service_tag => $curr_request,
			'curr_request.' . $service_tag => 0,
		));
		File::save(LITESPEED_STATIC_DIR . '/qc_last_request' . md5($service_tag), $curr_request, true);
		File::save(LITESPEED_STATIC_DIR . '/qc_curr_request' . md5($service_tag), 0, true);

		if ($json) {
			self::debug2('response ok', $json);
		} else {
			self::debug2('response ok');
		}

		// Only successful request return Array
		return $json;
	}

	/**
	 * Extract msg from json
	 *
	 * @since 5.0
	 */
	public function extract_msg( $json, $service, $server = false, $is_callback = false ) {
		if (!empty($json['_info'])) {
			self::debug('_info: ' . $json['_info']);
			$msg  = __('Message from QUIC.cloud server', 'litespeed-cache') . ': ' . $json['_info'];
			$msg .= $this->_parse_link($json);
			Admin_Display::info($msg);
			unset($json['_info']);
		}

		if (!empty($json['_note'])) {
			self::debug('_note: ' . $json['_note']);
			$msg  = __('Message from QUIC.cloud server', 'litespeed-cache') . ': ' . $json['_note'];
			$msg .= $this->_parse_link($json);
			Admin_Display::note($msg);
			unset($json['_note']);
		}

		if (!empty($json['_success'])) {
			self::debug('_success: ' . $json['_success']);
			$msg  = __('Good news from QUIC.cloud server', 'litespeed-cache') . ': ' . $json['_success'];
			$msg .= $this->_parse_link($json);
			Admin_Display::success($msg);
			unset($json['_success']);
		}

		// Upgrade is required
		if (!empty($json['_err_req_v'])) {
			self::debug('_err_req_v: ' . $json['_err_req_v']);
			$msg =
				sprintf(__('%1$s plugin version %2$s required for this action.', 'litespeed-cache'), Core::NAME, 'v' . $json['_err_req_v'] . '+') .
				" [server] $server [service] $service";

			// Append upgrade link
			$msg2 = ' ' . GUI::plugin_upgrade_link(Core::NAME, Core::PLUGIN_NAME, $json['_err_req_v']);

			$msg2 .= $this->_parse_link($json);
			Admin_Display::error($msg . $msg2);
			return array( $json, true );
		}

		// Parse _carry_on info
		if (!empty($json['_carry_on'])) {
			self::debug('Carry_on usage', $json['_carry_on']);
			// Store generic info
			foreach (array( 'usage', 'promo', 'mini_html', 'partner', '_error', '_info', '_note', '_success' ) as $v) {
				if (isset($json['_carry_on'][$v])) {
					switch ($v) {
						case 'usage':
                        $usage_svc_tag                             = in_array($service, array( self::SVC_CCSS, self::SVC_UCSS, self::SVC_VPI )) ? self::SVC_PAGE_OPTM : $service;
                        $this->_summary['usage.' . $usage_svc_tag] = $json['_carry_on'][$v];
							break;

						case 'promo':
                        if (empty($this->_summary[$v]) || !is_array($this->_summary[$v])) {
								$this->_summary[$v] = array();
							}
                        $this->_summary[$v][] = $json['_carry_on'][$v];
							break;

						case 'mini_html':
                        foreach ($json['_carry_on'][$v] as $k2 => $v2) {
								if (strpos($k2, 'ttl.') === 0) {
                                $v2 += time();
									}
								$this->_summary[$v][$k2] = $v2;
							}
							break;

						case 'partner':
                        $this->_summary[$v] = $json['_carry_on'][$v];
							break;

						case '_error':
						case '_info':
						case '_note':
						case '_success':
                        $color_mode = substr($v, 1);
                        $msgs       = $json['_carry_on'][$v];
                        Admin_Display::add_unique_notice($color_mode, $msgs, true);
							break;

						default:
							break;
					}
				}
			}
			self::save_summary();
			unset($json['_carry_on']);
		}

		// Parse general error msg
		if (!$is_callback && (empty($json['_res']) || $json['_res'] !== 'ok')) {
			$json_msg = !empty($json['_msg']) ? $json['_msg'] : 'unknown';
			self::debug('❌ _err: ' . $json_msg, $json);

			$str_translated = Error::msg($json_msg);
			$msg            = __('Failed to communicate with QUIC.cloud server', 'litespeed-cache') . ': ' . $str_translated . " [server] $server [service] $service";
			$msg           .= $this->_parse_link($json);
			$visible_err    = $service !== self::API_VER && $service !== self::API_NEWS && $service !== self::SVC_D_DASH;
			if ($visible_err) {
				Admin_Display::error($msg);
			}

			// QC may try auto alias
			/** @since 5.0 Store the domain as `err_domains` only for QC auto alias feature */
			if ($json_msg == 'err_alias') {
				if (empty($this->_summary['err_domains'])) {
					$this->_summary['err_domains'] = array();
				}
				$site_url = site_url();
				if (!array_key_exists($site_url, $this->_summary['err_domains'])) {
					$this->_summary['err_domains'][$site_url] = time();
				}
				self::save_summary();
			}

			// Site not on QC, delete invalid domain key
			if ($json_msg == 'site_not_registered' || $json_msg == 'err_key') {
				$this->_reset_qc_reg();
			}

			return array( $json, true );
		}

		unset($json['_res']);
		if (!empty($json['_msg'])) {
			unset($json['_msg']);
		}

		return array( $json, false );
	}

	/**
	 * Clear QC linked status
	 *
	 * @since 5.0
	 */
	private function _reset_qc_reg() {
		unset($this->_summary['qc_activated']);
		if (!empty($this->_summary['partner'])) {
			unset($this->_summary['partner']);
		}
		self::save_summary();

		$msg = $this->_reset_qc_reg_content();
		Admin_Display::error($msg, false, true);
	}

	private function _reset_qc_reg_content() {
		$msg  = __('Site not recognized. QUIC.cloud deactivated automatically. Please reactivate your QUIC.cloud account.', 'litespeed-cache');
		$msg .= Doc::learn_more(admin_url('admin.php?page=litespeed'), __('Click here to proceed.', 'litespeed-cache'), true, false, true);
		$msg .= Doc::learn_more('https://docs.litespeedtech.com/lscache/lscwp/general/', false, false, false, true);
		return $msg;
	}

	private function _clear_reset_qc_reg_msg() {
		self::debug('Removed pinned reset QC reg content msg');
		$msg = $this->_reset_qc_reg_content();
		Admin_Display::dismiss_pin_by_content($msg, Admin_Display::NOTICE_RED, true);
	}

	/**
	 * REST call: check if the error domain is valid call for auto alias purpose
	 *
	 * @since 5.0
	 */
	public function rest_err_domains() {
		if (empty($_POST['main_domain']) || empty($_POST['alias'])) {
			return self::err('lack_of_param');
		}

		$this->extract_msg($_POST, 'Quic.cloud', false, true);

		if ($this->_is_err_domain($_POST['alias'])) {
			if ($_POST['alias'] == site_url()) {
				$this->_remove_domain_from_err_list($_POST['alias']);
			}
			return self::ok();
		}

		return self::err('Not an alias req from here');
	}

	/**
	 * Remove a domain from err domain
	 *
	 * @since 5.0
	 */
	private function _remove_domain_from_err_list( $url ) {
		unset($this->_summary['err_domains'][$url]);
		self::save_summary();
	}

	/**
	 * Check if is err domain
	 *
	 * @since 5.0
	 */
	private function _is_err_domain( $site_url ) {
		if (empty($this->_summary['err_domains'])) {
			return false;
		}
		if (!array_key_exists($site_url, $this->_summary['err_domains'])) {
			return false;
		}
		// Auto delete if too long ago
		if (time() - $this->_summary['err_domains'][$site_url] > 86400 * 10) {
			$this->_remove_domain_from_err_list($site_url);

			return false;
		}
		if (time() - $this->_summary['err_domains'][$site_url] > 86400) {
			return false;
		}
		return true;
	}

	/**
	 * Show promo from cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function show_promo() {
		if (empty($this->_summary['promo'])) {
			return;
		}

		require_once LSCWP_DIR . 'tpl/banner/cloud_promo.tpl.php';
	}

	/**
	 * Clear promo from cloud
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _clear_promo() {
		if (count($this->_summary['promo']) > 1) {
			array_shift($this->_summary['promo']);
		} else {
			$this->_summary['promo'] = array();
		}
		self::save_summary();
	}

	/**
	 * Parse _links from json
	 *
	 * @since  1.6.5
	 * @since  1.6.7 Self clean the parameter
	 * @access private
	 */
	private function _parse_link( &$json ) {
		$msg = '';

		if (!empty($json['_links'])) {
			foreach ($json['_links'] as $v) {
				$msg .= ' ' . sprintf('<a href="%s" class="%s" target="_blank">%s</a>', $v['link'], !empty($v['cls']) ? $v['cls'] : '', $v['title']);
			}

			unset($json['_links']);
		}

		return $msg;
	}

	/**
	 * Request callback validation from Cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function ip_validate() {
		if (empty($_POST['hash'])) {
			return self::err('lack_of_params');
		}

		if ($_POST['hash'] != md5(substr($this->_summary['pk_b64'], 0, 4))) {
			self::debug('__callback IP request decryption failed');
			return self::err('err_hash');
		}

		Control::set_nocache('Cloud IP hash validation');

		$resp_hash = md5(substr($this->_summary['pk_b64'], 2, 4));

		self::debug('__callback IP request hash: ' . $resp_hash);

		return self::ok(array( 'hash' => $resp_hash ));
	}

	/**
	 * Check if this visit is from cloud or not
	 *
	 * @since  3.0
	 */
	public function is_from_cloud() {
		// return true;
		$check_point = time() - 86400 * self::TTL_IPS;
		if (empty($this->_summary['ips']) || empty($this->_summary['ips_ts']) || $this->_summary['ips_ts'] < $check_point) {
			self::debug('Force updating ip as ips_ts is older than ' . self::TTL_IPS . ' days');
			$this->_update_ips();
		}

		$res = $this->cls('Router')->ip_access($this->_summary['ips']);
		if (!$res) {
			self::debug('❌ Not our cloud IP');

			// Auto check ip list again but need an interval limit safety.
			if (empty($this->_summary['ips_ts_runner']) || time() - $this->_summary['ips_ts_runner'] > 600) {
				self::debug('Force updating ip as ips_ts_runner is older than 10mins');
				// Refresh IP list for future detection
				$this->_update_ips();
				$res = $this->cls('Router')->ip_access($this->_summary['ips']);
				if (!$res) {
					self::debug('❌ 2nd time: Not our cloud IP');
				} else {
					self::debug('✅ Passed Cloud IP verification');
				}
				return $res;
			}
		} else {
			self::debug('✅ Passed Cloud IP verification');
		}

		return $res;
	}

	/**
	 * Update Cloud IP list
	 *
	 * @since 4.2
	 */
	private function _update_ips() {
		self::debug('Load remote Cloud IP list from ' . self::CLOUD_IPS);
		// Prevent multiple call in a short period
		self::save_summary(array(
			'ips_ts' => time(),
			'ips_ts_runner' => time(),
		));

		$response = wp_safe_remote_get(self::CLOUD_IPS . '?json');
		if (is_wp_error($response)) {
			$error_message = $response->get_error_message();
			self::debug('failed to get ip whitelist: ' . $error_message);
			throw new \Exception('Failed to fetch QUIC.cloud whitelist ' . $error_message);
		}

		$json = \json_decode($response['body'], true);

		self::debug('Load ips', $json);
		self::save_summary(array( 'ips' => $json ));
	}

	/**
	 * Return succeeded response
	 *
	 * @since  3.0
	 */
	public static function ok( $data = array() ) {
		$data['_res'] = 'ok';
		return $data;
	}

	/**
	 * Return error
	 *
	 * @since  3.0
	 */
	public static function err( $code ) {
		self::debug("❌ Error response code: $code");
		return array(
			'_res' => 'err',
			'_msg' => $code,
		);
	}

	/**
	 * Return pong for ping to check PHP function availability
	 *
	 * @since 6.5
	 */
	public function ping() {
		$resp = array(
			'v_lscwp' => Core::VER,
			'v_lscwp_db' => $this->conf(self::_VER),
			'v_php' => PHP_VERSION,
			'v_wp' => $GLOBALS['wp_version'],
			'home_url' => home_url(),
			'site_url' => site_url(),
		);
		if (!empty($_POST['funcs'])) {
			foreach ($_POST['funcs'] as $v) {
				$resp[$v] = function_exists($v) ? 'y' : 'n';
			}
		}
		if (!empty($_POST['classes'])) {
			foreach ($_POST['classes'] as $v) {
				$resp[$v] = class_exists($v) ? 'y' : 'n';
			}
		}
		if (!empty($_POST['consts'])) {
			foreach ($_POST['consts'] as $v) {
				$resp[$v] = defined($v) ? 'y' : 'n';
			}
		}
		return self::ok($resp);
	}

	/**
	 * Display a banner for dev env if using preview QC node.
	 *
	 * @since 7.0
	 */
	public function maybe_preview_banner() {
		if (strpos(self::CLOUD_SERVER, 'preview.')) {
			Admin_Display::note(__('Linked to QUIC.cloud preview environment, for testing purpose only.', 'litespeed-cache'), true, true, 'litespeed-warning-bg');
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_CLEAR_CLOUD:
            $this->clear_cloud();
				break;

			case self::TYPE_REDETECT_CLOUD:
            if (!empty($_GET['svc'])) {
					$this->detect_cloud($_GET['svc'], true);
				}
				break;

			case self::TYPE_CLEAR_PROMO:
            $this->_clear_promo();
				break;

			case self::TYPE_RESET:
            $this->reset_qc();
				break;

			case self::TYPE_ACTIVATE:
            $this->init_qc();
				break;

			case self::TYPE_LINK:
            $this->link_qc();
				break;

			case self::TYPE_ENABLE_CDN:
            $this->enable_cdn();
				break;

			case self::TYPE_API:
            if (!empty($_GET['action2'])) {
					$this->api_link_call($_GET['action2']);
				}
				break;

			case self::TYPE_SYNC_STATUS:
            $this->load_qc_status_for_dash('cdn_dash', true);
            $msg = __('Sync QUIC.cloud status successfully.', 'litespeed-cache');
            Admin_Display::success($msg);
				break;

			case self::TYPE_SYNC_USAGE:
            $this->sync_usage();

            $msg = __('Sync credit allowance with Cloud Server successfully.', 'litespeed-cache');
            Admin_Display::success($msg);
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The tools
 *
 * @since       3.0
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Tool extends Root {

	const LOG_TAG = '[Tool]';

	/**
	 * Get public IP
	 *
	 * @since  3.0
	 * @access public
	 */
	public function check_ip() {
		self::debug('✅ check_ip');

		$response = wp_safe_remote_get('https://cyberpanel.sh/?ip', array(
			'headers' => array(
				'User-Agent' => 'curl/8.7.1',
			),
		));

		if (is_wp_error($response)) {
			return __('Failed to detect IP', 'litespeed-cache');
		}

		$ip = trim($response['body']);

		self::debug('result [ip] ' . $ip);

		if (Utility::valid_ipv4($ip)) {
			return $ip;
		}

		return __('Failed to detect IP', 'litespeed-cache');
	}

	/**
	 * Heartbeat Control
	 *
	 * NOTE: since WP4.9, there could be a core bug that sometimes the hook is not working.
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat() {
		add_action('wp_enqueue_scripts', array( $this, 'heartbeat_frontend' ));
		add_action('admin_enqueue_scripts', array( $this, 'heartbeat_backend' ));
		add_filter('heartbeat_settings', array( $this, 'heartbeat_settings' ));
	}

	/**
	 * Heartbeat Control frontend control
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_frontend() {
		if (!$this->conf(Base::O_MISC_HEARTBEAT_FRONT)) {
			return;
		}

		if (!$this->conf(Base::O_MISC_HEARTBEAT_FRONT_TTL)) {
			wp_deregister_script('heartbeat');
			Debug2::debug('[Tool] Deregistered frontend heartbeat');
		}
	}

	/**
	 * Heartbeat Control backend control
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_backend() {
		if ($this->_is_editor()) {
			if (!$this->conf(Base::O_MISC_HEARTBEAT_EDITOR)) {
				return;
			}

			if (!$this->conf(Base::O_MISC_HEARTBEAT_EDITOR_TTL)) {
				wp_deregister_script('heartbeat');
				Debug2::debug('[Tool] Deregistered editor heartbeat');
			}
		} else {
			if (!$this->conf(Base::O_MISC_HEARTBEAT_BACK)) {
				return;
			}

			if (!$this->conf(Base::O_MISC_HEARTBEAT_BACK_TTL)) {
				wp_deregister_script('heartbeat');
				Debug2::debug('[Tool] Deregistered backend heartbeat');
			}
		}
	}

	/**
	 * Heartbeat Control settings
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_settings( $settings ) {
		// Check editor first to make frontend editor valid too
		if ($this->_is_editor()) {
			if ($this->conf(Base::O_MISC_HEARTBEAT_EDITOR)) {
				$settings['interval'] = $this->conf(Base::O_MISC_HEARTBEAT_EDITOR_TTL);
				Debug2::debug('[Tool] Heartbeat interval set to ' . $this->conf(Base::O_MISC_HEARTBEAT_EDITOR_TTL));
			}
		} elseif (!is_admin()) {
			if ($this->conf(Base::O_MISC_HEARTBEAT_FRONT)) {
				$settings['interval'] = $this->conf(Base::O_MISC_HEARTBEAT_FRONT_TTL);
				Debug2::debug('[Tool] Heartbeat interval set to ' . $this->conf(Base::O_MISC_HEARTBEAT_FRONT_TTL));
			}
		} elseif ($this->conf(Base::O_MISC_HEARTBEAT_BACK)) {
			$settings['interval'] = $this->conf(Base::O_MISC_HEARTBEAT_BACK_TTL);
			Debug2::debug('[Tool] Heartbeat interval set to ' . $this->conf(Base::O_MISC_HEARTBEAT_BACK_TTL));
		}
		return $settings;
	}

	/**
	 * If is in editor
	 *
	 * @since  3.0
	 * @access public
	 */
	private function _is_editor() {
		$res = is_admin() && Utility::str_hit_array($_SERVER['REQUEST_URI'], array( 'post.php', 'post-new.php' ));

		return apply_filters('litespeed_is_editor', $res);
	}
}
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`url_id` bigint(20) NOT NULL,
`vary` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'md5 of final vary',
`filename` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'md5 of file content',
`type` tinyint(4) NOT NULL COMMENT 'css=1,js=2,ccss=3,ucss=4',
`mobile` tinyint(4) NOT NULL COMMENT 'mobile=1',
`webp` tinyint(4) NOT NULL COMMENT 'webp=1',
`expired` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `filename` (`filename`),
KEY `type` (`type`),
KEY `url_id_2` (`url_id`,`vary`,`type`),
KEY `filename_2` (`filename`,`expired`),
KEY `url_id` (`url_id`,`expired`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `optm_status` tinyint(4) NOT NULL DEFAULT '0',
  `src` varchar(1000) NOT NULL DEFAULT '',
  `server_info` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `post_id` (`post_id`),
  KEY `optm_status` (`optm_status`),
  KEY `src` (`src`(191))
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`url` varchar(500) NOT NULL,
`cache_tags` varchar(1000) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`(191)),
KEY `cache_tags` (`cache_tags`(191))  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `res` varchar(255) NOT NULL DEFAULT '' COMMENT '-=not crawl, H=hit, M=miss, B=blacklist',
  `reason` text NOT NULL COMMENT 'response code, comma separated',
  `mtime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `url` (`url`(191)),
  KEY `res` (`res`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `optm_status` tinyint(4) NOT NULL DEFAULT '0',
  `src` text NOT NULL,
  `src_filesize` int(11) NOT NULL DEFAULT '0',
  `target_filesize` int(11) NOT NULL DEFAULT '0',
  `webp_filesize` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `post_id` (`post_id`),
  KEY `optm_status` (`optm_status`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `md5` varchar(128) NOT NULL DEFAULT '',
  `dateline` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `md5` (`md5`),
  KEY `dateline` (`dateline`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `res` varchar(255) NOT NULL DEFAULT '' COMMENT '-=Not Blacklist, B=blacklist',
  `reason` text NOT NULL COMMENT 'Reason for blacklist, comma separated',
  `mtime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `url` (`url`(191)),
  KEY `res` (`res`)
<?php

/**
 * The admin optimize tool
 *
 * @since      1.2.1
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class DB_Optm extends Root {

	private static $_hide_more = false;

	private static $TYPES = array(
		'revision',
		'orphaned_post_meta',
		'auto_draft',
		'trash_post',
		'spam_comment',
		'trash_comment',
		'trackback-pingback',
		'expired_transient',
		'all_transients',
		'optimize_tables',
	);
	const TYPE_CONV_TB    = 'conv_innodb';

	/**
	 * Show if there are more sites in hidden
	 *
	 * @since  3.0
	 */
	public static function hide_more() {
		return self::$_hide_more;
	}

	/**
	 * Clean/Optimize WP tables
	 *
	 * @since  1.2.1
	 * @access public
	 * @param  string $type The type to clean
	 * @param  bool   $ignore_multisite If ignore multisite check
	 * @return  int The rows that will be affected
	 */
	public function db_count( $type, $ignore_multisite = false ) {
		if ($type === 'all') {
			$num = 0;
			foreach (self::$TYPES as $v) {
				$num += $this->db_count($v);
			}
			return $num;
		}

		if (!$ignore_multisite) {
			if (is_multisite() && is_network_admin()) {
				$num   = 0;
				$blogs = Activation::get_network_ids();
				foreach ($blogs as $k => $blog_id) {
					if ($k > 3) {
						self::$_hide_more = true;
						break;
					}

					switch_to_blog($blog_id);
					$num += $this->db_count($type, true);
					restore_current_blog();
				}
				return $num;
			}
		}

		global $wpdb;

		switch ($type) {
			case 'revision':
            $rev_max = (int) $this->conf(Base::O_DB_OPTM_REVISIONS_MAX);
            $rev_age = (int) $this->conf(Base::O_DB_OPTM_REVISIONS_AGE);
            $sql_add = '';
            if ($rev_age) {
					$sql_add = " and post_modified < DATE_SUB( NOW(), INTERVAL $rev_age DAY ) ";
				}
            $sql = "SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add";
            if (!$rev_max) {
					return $wpdb->get_var($sql);
				}
            // Has count limit
            $sql = "SELECT COUNT(*)-$rev_max FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add GROUP BY post_parent HAVING count(*)>$rev_max";
            $res = $wpdb->get_results($sql, ARRAY_N);

            Utility::compatibility();
				return array_sum(array_column($res, 0));

			case 'orphaned_post_meta':
				return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->postmeta` a LEFT JOIN `$wpdb->posts` b ON b.ID=a.post_id WHERE b.ID IS NULL");

			case 'auto_draft':
				return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_status = 'auto-draft'");

			case 'trash_post':
				return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_status = 'trash'");

			case 'spam_comment':
				return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_approved = 'spam'");

			case 'trash_comment':
				return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_approved = 'trash'");

			case 'trackback-pingback':
				return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_type = 'trackback' OR comment_type = 'pingback'");

			case 'expired_transient':
				return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->options` WHERE option_name LIKE '_transient_timeout%' AND option_value < " . time());

			case 'all_transients':
				return $wpdb->get_var("SELECT COUNT(*) FROM `$wpdb->options` WHERE option_name LIKE '%_transient_%'");

			case 'optimize_tables':
				return $wpdb->get_var("SELECT COUNT(*) FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE <> 'InnoDB' and DATA_FREE > 0");
		}

		return '-';
	}

	/**
	 * Clean/Optimize WP tables
	 *
	 * @since  1.2.1
	 * @since 3.0 changed to private
	 * @access private
	 */
	private function _db_clean( $type ) {
		if ($type === 'all') {
			foreach (self::$TYPES as $v) {
				$this->_db_clean($v);
			}
			return __('Clean all successfully.', 'litespeed-cache');
		}

		global $wpdb;
		switch ($type) {
			case 'revision':
            $rev_max = (int) $this->conf(Base::O_DB_OPTM_REVISIONS_MAX);
            $rev_age = (int) $this->conf(Base::O_DB_OPTM_REVISIONS_AGE);

            $postmeta = "`$wpdb->postmeta`";
            $posts    = "`$wpdb->posts`";

            $sql_postmeta_join = function ( $table ) use ( $postmeta, $posts ) {
					return "
						$postmeta
						CROSS JOIN $table
						ON $posts.ID = $postmeta.post_id
					";
				};

				$sql_where = "WHERE $posts.post_type = 'revision'";

				$sql_add = $rev_age ? "AND $posts.post_modified < DATE_SUB( NOW(), INTERVAL $rev_age DAY )" : '';

				if (!$rev_max) {
					$sql_where    = "$sql_where $sql_add";
					$sql_postmeta = $sql_postmeta_join($posts);
					$wpdb->query("DELETE $postmeta FROM $sql_postmeta $sql_where");
					$wpdb->query("DELETE FROM $posts $sql_where");
				} else {
					// Has count limit
					$sql          = "
						SELECT COUNT(*) - $rev_max
						AS del_max, post_parent
						FROM $posts
						WHERE post_type = 'revision'
						$sql_add
						GROUP BY post_parent
						HAVING COUNT(*) > $rev_max
					";
					$res          = $wpdb->get_results($sql);
					$sql_where    = "
						$sql_where
						AND post_parent = %d
						ORDER BY ID
						LIMIT %d
					";
					$sql_postmeta = $sql_postmeta_join("(SELECT ID FROM $posts $sql_where) AS $posts");
					foreach ($res as $v) {
						$args = array( $v->post_parent, $v->del_max );
						$sql  = $wpdb->prepare("DELETE $postmeta FROM $sql_postmeta", $args);
						$wpdb->query($sql);
						$sql = $wpdb->prepare("DELETE FROM $posts $sql_where", $args);
						$wpdb->query($sql);
					}
				}

				return __('Clean post revisions successfully.', 'litespeed-cache');

			case 'orphaned_post_meta':
            $wpdb->query("DELETE a FROM `$wpdb->postmeta` a LEFT JOIN `$wpdb->posts` b ON b.ID=a.post_id WHERE b.ID IS NULL");
				return __('Clean orphaned post meta successfully.', 'litespeed-cache');

			case 'auto_draft':
            $wpdb->query("DELETE FROM `$wpdb->posts` WHERE post_status = 'auto-draft'");
				return __('Clean auto drafts successfully.', 'litespeed-cache');

			case 'trash_post':
            $wpdb->query("DELETE FROM `$wpdb->posts` WHERE post_status = 'trash'");
				return __('Clean trashed posts and pages successfully.', 'litespeed-cache');

			case 'spam_comment':
            $wpdb->query("DELETE FROM `$wpdb->comments` WHERE comment_approved = 'spam'");
				return __('Clean spam comments successfully.', 'litespeed-cache');

			case 'trash_comment':
            $wpdb->query("DELETE FROM `$wpdb->comments` WHERE comment_approved = 'trash'");
				return __('Clean trashed comments successfully.', 'litespeed-cache');

			case 'trackback-pingback':
            $wpdb->query("DELETE FROM `$wpdb->comments` WHERE comment_type = 'trackback' OR comment_type = 'pingback'");
				return __('Clean trackbacks and pingbacks successfully.', 'litespeed-cache');

			case 'expired_transient':
            $wpdb->query("DELETE FROM `$wpdb->options` WHERE option_name LIKE '_transient_timeout%' AND option_value < " . time());
				return __('Clean expired transients successfully.', 'litespeed-cache');

			case 'all_transients':
            $wpdb->query("DELETE FROM `$wpdb->options` WHERE option_name LIKE '%\\_transient\\_%'");
				return __('Clean all transients successfully.', 'litespeed-cache');

			case 'optimize_tables':
            $sql    = "SELECT table_name, DATA_FREE FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE <> 'InnoDB' and DATA_FREE > 0";
            $result = $wpdb->get_results($sql);
            if ($result) {
					foreach ($result as $row) {
                    $wpdb->query('OPTIMIZE TABLE ' . $row->table_name);
						}
				}
				return __('Optimized all tables.', 'litespeed-cache');
		}
	}

	/**
	 * Get all myisam tables
	 *
	 * @since 3.0
	 * @access public
	 */
	public function list_myisam() {
		global $wpdb;
		$q = "SELECT * FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE = 'myisam' AND TABLE_NAME LIKE '{$wpdb->prefix}%'";
		return $wpdb->get_results($q);
	}

	/**
	 * Convert tables to InnoDB
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _conv_innodb() {
		global $wpdb;

		if (empty($_GET['tb'])) {
			Admin_Display::error('No table to convert');
			return;
		}

		$tb = false;

		$list = $this->list_myisam();
		foreach ($list as $v) {
			if ($v->TABLE_NAME == $_GET['tb']) {
				$tb = $v->TABLE_NAME;
				break;
			}
		}

		if (!$tb) {
			Admin_Display::error('No existing table');
			return;
		}

		$q = 'ALTER TABLE ' . DB_NAME . '.' . $tb . ' ENGINE = InnoDB';
		$wpdb->query($q);

		Debug2::debug("[DB] Converted $tb to InnoDB");

		$msg = __('Converted to InnoDB successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Count all autoload size
	 *
	 * @since  3.0
	 * @access public
	 */
	public function autoload_summary() {
		global $wpdb;

		$autoloads = function_exists('wp_autoload_values_to_autoload') ? wp_autoload_values_to_autoload() : array( 'yes', 'on', 'auto-on', 'auto' );
		$autoloads = '("' . implode('","', $autoloads) . '")';

		$summary = $wpdb->get_row("SELECT SUM(LENGTH(option_value)) AS autoload_size,COUNT(*) AS autload_entries FROM `$wpdb->options` WHERE autoload IN " . $autoloads);

		$summary->autoload_toplist = $wpdb->get_results(
			"SELECT option_name, LENGTH(option_value) AS option_value_length, autoload FROM `$wpdb->options` WHERE autoload IN " .
				$autoloads .
				' ORDER BY option_value_length DESC LIMIT 20'
		);

		return $summary;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case 'all':
			case in_array($type, self::$TYPES):
            if (is_multisite() && is_network_admin()) {
					$blogs = Activation::get_network_ids();
					foreach ($blogs as $blog_id) {
                    switch_to_blog($blog_id);
                    $msg = $this->_db_clean($type);
                    restore_current_blog();
						}
				} else {
                $msg = $this->_db_clean($type);
				}
            Admin_Display::success($msg);
				break;

			case self::TYPE_CONV_TB:
            $this->_conv_innodb();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

	/**
	 * Clean DB
	 *
	 * @since  7.0
	 * @access public
	 */
	public function handler_clean_db_cli($args)
	{
		if (defined('WP_CLI') && WP_CLI) {
			return $this->_db_clean($args);
		}

		return false;
	}
}
<?php

/**
 * The import/export class.
 *
 * @since       1.8.2
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Import extends Base {

	protected $_summary;

	const TYPE_IMPORT = 'import';
	const TYPE_EXPORT = 'export';
	const TYPE_RESET  = 'reset';

	/**
	 * Init
	 *
	 * @since  1.8.2
	 */
	public function __construct() {
		Debug2::debug('Import init');

		$this->_summary = self::get_summary();
	}

	/**
	 * Export settings to file
	 *
	 * @since 1.8.2
	 * @since 7.3 added download content type
	 * @access public
	 */
	public function export( $only_data_return = false ) {
		$raw_data = $this->get_options(true);

		$data = array();
		foreach ($raw_data as $k => $v) {
			$data[] = \json_encode(array( $k, $v ));
		}

		$data = implode("\n\n", $data);

		if ($only_data_return) {
			return $data;
		}

		$filename = $this->_generate_filename();

		// Update log
		$this->_summary['export_file'] = $filename;
		$this->_summary['export_time'] = time();
		self::save_summary();

		Debug2::debug('Import: Saved to ' . $filename);

		@header('Content-Type: application/octet-stream');
		@header('Content-Disposition: attachment; filename=' . $filename);
		echo $data;

		exit();
	}

	/**
	 * Import settings from file
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function import( $file = false ) {
		if (!$file) {
			if (empty($_FILES['ls_file']['name']) || substr($_FILES['ls_file']['name'], -5) != '.data' || empty($_FILES['ls_file']['tmp_name'])) {
				Debug2::debug('Import: Failed to import, wrong ls_file');

				$msg = __('Import failed due to file error.', 'litespeed-cache');
				Admin_Display::error($msg);

				return false;
			}

			$this->_summary['import_file'] = $_FILES['ls_file']['name'];

			$data = file_get_contents($_FILES['ls_file']['tmp_name']);
		} else {
			$this->_summary['import_file'] = $file;

			$data = file_get_contents($file);
		}

		// Update log
		$this->_summary['import_time'] = time();
		self::save_summary();

		$ori_data = array();
		try {
			// Check if the data is v4+ or not
			if (strpos($data, '["_version",') === 0) {
				Debug2::debug('[Import] Data version: v4+');
				$data = explode("\n", $data);
				foreach ($data as $v) {
					$v = trim($v);
					if (!$v) {
						continue;
					}
					list($k, $v)  = \json_decode($v, true);
					$ori_data[$k] = $v;
				}
			} else {
				$ori_data = \json_decode(base64_decode($data), true);
			}
		} catch (\Exception $ex) {
			Debug2::debug('[Import] ❌ Failed to parse serialized data');
			return false;
		}

		if (!$ori_data) {
			Debug2::debug('[Import] ❌ Failed to import, no data');
			return false;
		} else {
			Debug2::debug('[Import] Importing data', $ori_data);
		}

		$this->cls('Conf')->update_confs($ori_data);

		if (!$file) {
			Debug2::debug('Import: Imported ' . $_FILES['ls_file']['name']);

			$msg = sprintf(__('Imported setting file %s successfully.', 'litespeed-cache'), $_FILES['ls_file']['name']);
			Admin_Display::success($msg);
		} else {
			Debug2::debug('Import: Imported ' . $file);
		}

		return true;
	}

	/**
	 * Reset all configs to default values.
	 *
	 * @since  2.6.3
	 * @access public
	 */
	public function reset() {
		$options = $this->cls('Conf')->load_default_vals();

		$this->cls('Conf')->update_confs($options);

		Debug2::debug('[Import] Reset successfully.');

		$msg = __('Reset successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Generate the filename to export
	 *
	 * @since  1.8.2
	 * @access private
	 */
	private function _generate_filename() {
		// Generate filename
		$parsed_home = parse_url(get_home_url());
		$filename    = 'LSCWP_cfg-';
		if (!empty($parsed_home['host'])) {
			$filename .= $parsed_home['host'] . '_';
		}

		if (!empty($parsed_home['path'])) {
			$filename .= $parsed_home['path'] . '_';
		}

		$filename = str_replace('/', '_', $filename);

		$filename .= '-' . date('Ymd_His') . '.data';

		return $filename;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_IMPORT:
            $this->import();
				break;

			case self::TYPE_EXPORT:
            $this->export();
				break;

			case self::TYPE_RESET:
            $this->reset();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php
/**
 * The class to operate post editor metabox settings
 *
 * @since       4.7
 * @package     Core
 * @subpackage  Core/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined('WPINC') || exit();

class Metabox extends Root {

	const LOG_TAG = '📦';

	const POST_NONCE_ACTION = 'post_nonce_action';

	private $_postmeta_settings;

	/**
	 * Get the setting list
	 *
	 * @since 4.7
	 */
	public function __construct() {
		// Append meta box
		$this->_postmeta_settings = array(
			'litespeed_no_cache' => __('Disable Cache', 'litespeed-cache'),
			'litespeed_no_image_lazy' => __('Disable Image Lazyload', 'litespeed-cache'),
			'litespeed_no_vpi' => __('Disable VPI', 'litespeed-cache'),
			'litespeed_vpi_list' => __('Viewport Images', 'litespeed-cache'),
			'litespeed_vpi_list_mobile' => __('Viewport Images', 'litespeed-cache') . ' - ' . __('Mobile', 'litespeed-cache'),
		);
	}

	/**
	 * Register post edit settings
	 *
	 * @since 4.7
	 */
	public function register_settings() {
		add_action('add_meta_boxes', array( $this, 'add_meta_boxes' ));
		add_action('save_post', array( $this, 'save_meta_box_settings' ), 15, 2);
		add_action('attachment_updated', array( $this, 'save_meta_box_settings' ), 15, 2);
	}

	/**
	 * Register meta box
	 *
	 * @since 4.7
	 */
	public function add_meta_boxes( $post_type ) {
		if (apply_filters('litespeed_bypass_metabox', false, $post_type)) {
			return;
		}
		$post_type_obj = get_post_type_object($post_type);
		if (!empty($post_type_obj) && !$post_type_obj->public) {
			self::debug('post type public=false, bypass add_meta_boxes');
			return;
		}
		add_meta_box('litespeed_meta_boxes', 'LiteSpeed', array( $this, 'meta_box_options' ), $post_type, 'side', 'core');
	}

	/**
	 * Show meta box content
	 *
	 * @since 4.7
	 */
	public function meta_box_options() {
		require_once LSCWP_DIR . 'tpl/inc/metabox.php';
	}

	/**
	 * Save settings
	 *
	 * @since 4.7
	 */
	public function save_meta_box_settings( $post_id, $post ) {
		global $pagenow;

		self::debug('Maybe save post2 [post_id] ' . $post_id);

		if ($pagenow != 'post.php' || !$post || !is_object($post)) {
			return;
		}

		if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
			return;
		}

		if (!$this->cls('Router')->verify_nonce(self::POST_NONCE_ACTION)) {
			return;
		}

		self::debug('Saving post [post_id] ' . $post_id);

		foreach ($this->_postmeta_settings as $k => $v) {
			$val = isset($_POST[$k]) ? $_POST[$k] : false;
			$this->save($post_id, $k, $val);
		}
	}

	/**
	 * Load setting per post
	 *
	 * @since 4.7
	 */
	public function setting( $conf, $post_id = false ) {
		// Check if has metabox non-cacheable setting or not
		if (!$post_id) {
			$home_id = get_option('page_for_posts');
			if (is_singular()) {
				$post_id = get_the_ID();
			} elseif ($home_id > 0 && is_home()) {
				$post_id = $home_id;
			}
		}

		if ($post_id && ($val = get_post_meta($post_id, $conf, true))) {
			return $val;
		}

		return null;
	}

	/**
	 * Save a metabox value
	 *
	 * @since 4.7
	 */
	public function save( $post_id, $name, $val, $is_append = false ) {
		if (strpos($name, 'litespeed_vpi_list') !== false) {
			$val = Utility::sanitize_lines($val, 'basename,drop_webp');
		}

		// Load existing data if has set
		if ($is_append) {
			$existing_data = $this->setting($name, $post_id);
			if ($existing_data) {
				$existing_data = Utility::sanitize_lines($existing_data, 'basename');
				$val           = array_unique(array_merge($val, $existing_data));
			}
		}

		if ($val) {
			update_post_meta($post_id, $name, $val);
		} else {
			delete_post_meta($post_id, $name);
		}
	}

	/**
	 * Load exclude images per post
	 *
	 * @since 4.7
	 */
	public function lazy_img_excludes( $list ) {
		$is_mobile = $this->_separate_mobile();
		$excludes  = $this->setting($is_mobile ? 'litespeed_vpi_list_mobile' : 'litespeed_vpi_list');
		if ($excludes !== null) {
			$excludes = Utility::sanitize_lines($excludes, 'basename');
			if ($excludes) {
				// Check if contains `data:` (invalid result, need to clear existing result) or not
				if (Utility::str_hit_array('data:', $excludes)) {
					$this->cls('VPI')->add_to_queue();
				} else {
					return array_merge($list, $excludes);
				}
			}

			return $list;
		}

		$this->cls('VPI')->add_to_queue();

		return $list;
	}
}
<?php

/**
 * The plugin activation class.
 *
 * @since       1.1.0
 * @since       1.5 Moved into /inc
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Activation extends Base {

	const TYPE_UPGRADE             = 'upgrade';
	const TYPE_INSTALL_3RD         = 'install_3rd';
	const TYPE_INSTALL_ZIP         = 'install_zip';
	const TYPE_DISMISS_RECOMMENDED = 'dismiss_recommended';

	const NETWORK_TRANSIENT_COUNT = 'lscwp_network_count';

	private static $_data_file;

	/**
	 * Construct
	 *
	 * @since 4.1
	 */
	public function __construct() {
		self::$_data_file = LSCWP_CONTENT_DIR . '/' . self::CONF_FILE;
	}

	/**
	 * The activation hook callback.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function register_activation() {
		global $wp_version;
		$advanced_cache = LSCWP_CONTENT_DIR . '/advanced-cache.php';
		if (version_compare($wp_version, '5.3', '<') && !file_exists($advanced_cache)) {
			$file_pointer = fopen($advanced_cache, 'w');
			fwrite($file_pointer, "<?php\n\n// A compatibility placeholder for WordPress < v5.3\n// Created by LSCWP v6.1+");
			fclose($file_pointer);
		}

		$count = 0;
		!defined('LSCWP_LOG_TAG') && define('LSCWP_LOG_TAG', 'Activate_' . get_current_blog_id());

		/* Network file handler */
		if (is_multisite()) {
			$count = self::get_network_count();
			if ($count !== false) {
				$count = intval($count) + 1;
				set_site_transient(self::NETWORK_TRANSIENT_COUNT, $count, DAY_IN_SECONDS);
			}

			if (!is_network_admin()) {
				if ($count === 1) {
					// Only itself is activated, set .htaccess with only CacheLookUp
					try {
						Htaccess::cls()->insert_ls_wrapper();
					} catch (\Exception $ex) {
						Admin_Display::error($ex->getMessage());
					}
				}
			}
		}
		self::cls()->update_files();

		if (defined('LSCWP_REF') && LSCWP_REF == 'whm') {
			GUI::update_option(GUI::WHM_MSG, GUI::WHM_MSG_VAL);
		}
	}

	/**
	 * Uninstall plugin
	 *
	 * @since 1.1.0
	 * @since 7.3 fix uninstall to remove all settings.
	 */
	public static function uninstall_litespeed_cache() {
		Task::destroy();

		if (is_multisite() ) {
			// Save main site id
			$current_blog = get_current_blog_id();

			// get all sites
			$sub_sites = get_sites();

			// clear foreach site
			foreach ($sub_sites as $sub_site) {
				$sub_blog_id = (int) $sub_site->blog_id;
				if ($sub_blog_id != $current_blog) {
					// Switch to blog
					switch_to_blog($sub_blog_id);

					// Delete site options
					self::delete_settings();

					// Delete site tables
					Data::cls()->tables_del();
				}
			}

			// Return to main site
			switch_to_blog($current_blog);
		}

		// Delete current blog/site
		// Delete options
		self::delete_settings();

		// Delete site tables
		Data::cls()->tables_del();


		if (file_exists(LITESPEED_STATIC_DIR)) {
			File::rrmdir(LITESPEED_STATIC_DIR);
		}

		Cloud::version_check('uninstall');
	}

	/**
	 * Remove all litespeed settings.
	 *
	 * @since 7.3
	 */
	private static function delete_settings() {
		global $wpdb;

		$wpdb->query($wpdb->prepare("DELETE FROM `$wpdb->options` WHERE option_name LIKE '%s'", array( 'litespeed.%' )));
	}

	/**
	 * Get the blog ids for the network. Accepts function arguments.
	 *
	 * Will use wp_get_sites for WP versions less than 4.6
	 *
	 * @since 1.0.12
	 * @access public
	 * @return array The array of blog ids.
	 */
	public static function get_network_ids($args = array())
	{
		$args['fields'] = 'ids';
		$blogs = get_sites($args);
		
		return $blogs;
	}

	/**
	 * Gets the count of active litespeed cache plugins on multisite.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private static function get_network_count() {
		$count = get_site_transient(self::NETWORK_TRANSIENT_COUNT);
		if ($count !== false) {
			return intval($count);
		}
		// need to update
		$default = array();
		$count   = 0;

		$sites = self::get_network_ids(array( 'deleted' => 0 ));
		if (empty($sites)) {
			return false;
		}

		foreach ($sites as $site) {
			$bid     = is_object($site) && property_exists($site, 'blog_id') ? $site->blog_id : $site;
			$plugins = get_blog_option($bid, 'active_plugins', $default);
			if (!empty($plugins) && in_array(LSCWP_BASENAME, $plugins, true)) {
				++$count;
			}
		}

		/**
		 * In case this is called outside the admin page
		 *
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if (!function_exists('is_plugin_active_for_network')) {
			require_once ABSPATH . '/wp-admin/includes/plugin.php';
		}

		if (is_plugin_active_for_network(LSCWP_BASENAME)) {
			++$count;
		}
		return $count;
	}

	/**
	 * Is this deactivate call the last active installation on the multisite network?
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private static function is_deactivate_last() {
		$count = self::get_network_count();
		if ($count === false) {
			return false;
		}
		if ($count !== 1) {
			// Not deactivating the last one.
			--$count;
			set_site_transient(self::NETWORK_TRANSIENT_COUNT, $count, DAY_IN_SECONDS);
			return false;
		}

		delete_site_transient(self::NETWORK_TRANSIENT_COUNT);
		return true;
	}

	/**
	 * The deactivation hook callback.
	 *
	 * Initializes all clean up functionalities.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function register_deactivation() {
		Task::destroy();

		!defined('LSCWP_LOG_TAG') && define('LSCWP_LOG_TAG', 'Deactivate_' . get_current_blog_id());

		Purge::purge_all();

		if (is_multisite()) {
			if (!self::is_deactivate_last()) {
				if (is_network_admin()) {
					// Still other activated subsite left, set .htaccess with only CacheLookUp
					try {
						Htaccess::cls()->insert_ls_wrapper();
					} catch (\Exception $ex) {
						Admin_Display::error($ex->getMessage());
					}
				}
				return;
			}
		}

		/* 1) wp-config.php; */

		try {
			self::cls()->_manage_wp_cache_const(false);
		} catch (\Exception $ex) {
			error_log('In wp-config.php: WP_CACHE could not be set to false during deactivation!');

			Admin_Display::error($ex->getMessage());
		}

		/* 2) adv-cache.php; Dropped in v3.0.4 */

		/* 3) object-cache.php; */

		Object_Cache::cls()->del_file();

		/* 4) .htaccess; */

		try {
			Htaccess::cls()->clear_rules();
		} catch (\Exception $ex) {
			Admin_Display::error($ex->getMessage());
		}

		/* 5) .litespeed_conf.dat; */

		self::_del_conf_data_file();

		/* 6) delete option lscwp_whm_install */

		// delete in case it's not deleted prior to deactivation.
		GUI::dismiss_whm();
	}

	/**
	 * Manage related files based on plugin latest conf
	 *
	 * NOTE: Only trigger this in backend admin access for efficiency concern
	 *
	 * Handle files:
	 *      1) wp-config.php;
	 *      2) adv-cache.php;
	 *      3) object-cache.php;
	 *      4) .htaccess;
	 *      5) .litespeed_conf.dat;
	 *
	 * @since 3.0
	 * @access public
	 */
	public function update_files() {
		Debug2::debug('🗂️ [Activation] update_files');

		// Update cache setting `_CACHE`
		$this->cls('Conf')->define_cache();

		// Site options applied already
		$options = $this->get_options();

		/* 1) wp-config.php; */

		try {
			$this->_manage_wp_cache_const($options[self::_CACHE]);
		} catch (\Exception $ex) {
			// Add msg to admin page or CLI
			Admin_Display::error($ex->getMessage());
		}

		/* 2) adv-cache.php; Dropped in v3.0.4 */

		/* 3) object-cache.php; */

		if ($options[self::O_OBJECT] && (!$options[self::O_DEBUG_DISABLE_ALL] || is_multisite())) {
			$this->cls('Object_Cache')->update_file($options);
		} else {
			$this->cls('Object_Cache')->del_file(); // Note: because it doesn't reconnect, which caused setting page OC option changes delayed, thus may meet Connect Test Failed issue (Next refresh will correct it). Not a big deal, will keep as is.
		}

		/* 4) .htaccess; */

		try {
			$this->cls('Htaccess')->update($options);
		} catch (\Exception $ex) {
			Admin_Display::error($ex->getMessage());
		}

		/* 5) .litespeed_conf.dat; */

		if (($options[self::O_GUEST] || $options[self::O_OBJECT]) && (!$options[self::O_DEBUG_DISABLE_ALL] || is_multisite())) {
			$this->_update_conf_data_file($options);
		}
	}

	/**
	 * Delete data conf file
	 *
	 * @since  4.1
	 */
	private static function _del_conf_data_file() {
		if (file_exists(self::$_data_file)) {
			unlink(self::$_data_file);
		}
	}

	/**
	 * Update data conf file for guest mode & object cache
	 *
	 * @since  4.1
	 */
	private function _update_conf_data_file( $options ) {
		$ids = array();
		if ($options[self::O_OBJECT]) {
			$this_ids = array(
				self::O_DEBUG,
				self::O_OBJECT_KIND,
				self::O_OBJECT_HOST,
				self::O_OBJECT_PORT,
				self::O_OBJECT_LIFE,
				self::O_OBJECT_USER,
				self::O_OBJECT_PSWD,
				self::O_OBJECT_DB_ID,
				self::O_OBJECT_PERSISTENT,
				self::O_OBJECT_ADMIN,
				self::O_OBJECT_TRANSIENTS,
				self::O_OBJECT_GLOBAL_GROUPS,
				self::O_OBJECT_NON_PERSISTENT_GROUPS,
			);
			$ids      = array_merge($ids, $this_ids);
		}

		if ($options[self::O_GUEST]) {
			$this_ids = array( self::HASH, self::O_CACHE_LOGIN_COOKIE, self::O_DEBUG_IPS, self::O_UTIL_NO_HTTPS_VARY, self::O_GUEST_UAS, self::O_GUEST_IPS );
			$ids      = array_merge($ids, $this_ids);
		}

		$data = array();
		foreach ($ids as $v) {
			$data[$v] = $options[$v];
		}
		$data = \json_encode($data);

		$old_data = File::read(self::$_data_file);
		if ($old_data != $data) {
			defined('LSCWP_LOG') && Debug2::debug('[Activation] Updating .litespeed_conf.dat');
			File::save(self::$_data_file, $data);
		}
	}

	/**
	 * Update the WP_CACHE variable in the wp-config.php file.
	 *
	 * If enabling, check if the variable is defined, and if not, define it.
	 * Vice versa for disabling.
	 *
	 * @since 1.0.0
	 * @since  3.0 Refactored
	 * @access private
	 */
	private function _manage_wp_cache_const( $enable ) {
		if ($enable) {
			if (defined('WP_CACHE') && WP_CACHE) {
				return false;
			}
		} elseif (!defined('WP_CACHE') || (defined('WP_CACHE') && !WP_CACHE)) {
			return false;
		}

		if (apply_filters('litespeed_wpconfig_readonly', false)) {
			throw new \Exception('wp-config file is forbidden to modify due to API hook: litespeed_wpconfig_readonly');
		}

		/**
		 * Follow WP's logic to locate wp-config file
		 *
		 * @see wp-load.php
		 */
		$conf_file = ABSPATH . 'wp-config.php';
		if (!file_exists($conf_file)) {
			$conf_file = dirname(ABSPATH) . '/wp-config.php';
		}

		$content = File::read($conf_file);
		if (!$content) {
			throw new \Exception('wp-config file content is empty: ' . $conf_file);
		}

		// Remove the line `define('WP_CACHE', true/false);` first
		if (defined('WP_CACHE')) {
			$content = preg_replace('/define\(\s*([\'"])WP_CACHE\1\s*,\s*\w+\s*\)\s*;/sU', '', $content);
		}

		// Insert const
		if ($enable) {
			$content = preg_replace('/^<\?php/', "<?php\ndefine( 'WP_CACHE', true );", $content);
		}

		$res = File::save($conf_file, $content, false, false, false);

		if ($res !== true) {
			throw new \Exception('wp-config.php operation failed when changing `WP_CACHE` const: ' . $res);
		}

		return true;
	}

	/**
	 * Handle auto update
	 *
	 * @since 2.7.2
	 * @access public
	 */
	public function auto_update() {
		if (!$this->conf(Base::O_AUTO_UPGRADE)) {
			return;
		}

		add_filter('auto_update_plugin', array( $this, 'auto_update_hook' ), 10, 2);
	}

	/**
	 * Auto upgrade hook
	 *
	 * @since  3.0
	 * @access public
	 */
	public function auto_update_hook( $update, $item ) {
		if (!empty($item->slug) && 'litespeed-cache' === $item->slug) {
			$auto_v = Cloud::version_check('auto_update_plugin');

			if (!empty($auto_v['latest']) && !empty($item->new_version) && $auto_v['latest'] === $item->new_version) {
				return true;
			}
		}

		return $update; // Else, use the normal API response to decide whether to update or not
	}

	/**
	 * Upgrade LSCWP
	 *
	 * @since 2.9
	 * @access public
	 */
	public function upgrade() {
		$plugin = Core::PLUGIN_FILE;

		/**
		 * @see wp-admin/update.php
		 */
		include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
		include_once ABSPATH . 'wp-admin/includes/file.php';
		include_once ABSPATH . 'wp-admin/includes/misc.php';

		try {
			ob_start();
			$skin     = new \WP_Ajax_Upgrader_Skin();
			$upgrader = new \Plugin_Upgrader($skin);
			$result   = $upgrader->upgrade($plugin);
			if (!is_plugin_active($plugin)) {
				// todo: upgrade should reactivate the plugin again by WP. Need to check why disabled after upgraded.
				activate_plugin($plugin, '', is_multisite());
			}
			ob_end_clean();
		} catch (\Exception $e) {
			Admin_Display::error(__('Failed to upgrade.', 'litespeed-cache'));
			return;
		}

		if (is_wp_error($result)) {
			Admin_Display::error(__('Failed to upgrade.', 'litespeed-cache'));
			return;
		}

		Admin_Display::success(__('Upgraded successfully.', 'litespeed-cache'));
	}

	/**
	 * Detect if the plugin is active or not
	 *
	 * @since  1.0
	 */
	public function dash_notifier_is_plugin_active( $plugin ) {
		include_once ABSPATH . 'wp-admin/includes/plugin.php';

		$plugin_path = $plugin . '/' . $plugin . '.php';

		return is_plugin_active($plugin_path);
	}

	/**
	 * Detect if the plugin is installed or not
	 *
	 * @since  1.0
	 */
	public function dash_notifier_is_plugin_installed( $plugin ) {
		include_once ABSPATH . 'wp-admin/includes/plugin.php';

		$plugin_path = $plugin . '/' . $plugin . '.php';

		$valid = validate_plugin($plugin_path);

		return !is_wp_error($valid);
	}

	/**
	 * Grab a plugin info from WordPress
	 *
	 * @since  1.0
	 */
	public function dash_notifier_get_plugin_info( $slug ) {
		include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
		$result = plugins_api('plugin_information', array( 'slug' => $slug ));

		if (is_wp_error($result)) {
			return false;
		}

		return $result;
	}

	/**
	 * Install the 3rd party plugin
	 *
	 * @since  1.0
	 */
	public function dash_notifier_install_3rd() {
		!defined('SILENCE_INSTALL') && define('SILENCE_INSTALL', true);

		$slug = !empty($_GET['plugin']) ? $_GET['plugin'] : false;

		// Check if plugin is installed already
		if (!$slug || $this->dash_notifier_is_plugin_active($slug)) {
			return;
		}

		/**
		 * @see wp-admin/update.php
		 */
		include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
		include_once ABSPATH . 'wp-admin/includes/file.php';
		include_once ABSPATH . 'wp-admin/includes/misc.php';

		$plugin_path = $slug . '/' . $slug . '.php';

		if (!$this->dash_notifier_is_plugin_installed($slug)) {
			$plugin_info = $this->dash_notifier_get_plugin_info($slug);
			if (!$plugin_info) {
				return;
			}
			// Try to install plugin
			try {
				ob_start();
				$skin     = new \Automatic_Upgrader_Skin();
				$upgrader = new \Plugin_Upgrader($skin);
				$result   = $upgrader->install($plugin_info->download_link);
				ob_end_clean();
			} catch (\Exception $e) {
				return;
			}
		}

		if (!is_plugin_active($plugin_path)) {
			activate_plugin($plugin_path);
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.9
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_UPGRADE:
            $this->upgrade();
				break;

			case self::TYPE_INSTALL_3RD:
            $this->dash_notifier_install_3rd();
				break;

			case self::TYPE_DISMISS_RECOMMENDED:
            Cloud::reload_summary();
            Cloud::save_summary(array( 'news.new' => 0 ));
				break;

			case self::TYPE_INSTALL_ZIP:
            Cloud::reload_summary();
            $summary = Cloud::get_summary();
            if (!empty($summary['news.zip'])) {
					Cloud::save_summary(array( 'news.new' => 0 ));

					$this->cls('Debug2')->beta_test($summary['zip']);
				}
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The quic.cloud class.
 *
 * @since       2.4.1
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/src/cdn
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed\CDN;

use LiteSpeed\Cloud;
use LiteSpeed\Base;

defined('WPINC') || exit();

class Quic extends Base {

	const LOG_TAG = '☁️';

	const TYPE_REG = 'reg';

	protected $_summary;
	private $_force = false;
	public function __construct() {
		$this->_summary = self::get_summary();
	}

	/**
	 * Notify CDN new config updated
	 *
	 * @access public
	 */
	public function try_sync_conf( $force = false ) {
		if ($force) {
			$this->_force = $force;
		}

		if (!$this->conf(self::O_CDN_QUIC)) {
			if (!empty($this->_summary['conf_md5'])) {
				self::debug('❌ No QC CDN, clear conf md5!');
				self::save_summary(array( 'conf_md5' => '' ));
			}
			return false;
		}

		// Notice: Sync conf must be after `wp_loaded` hook, to get 3rd party vary injected (e.g. `woocommerce_cart_hash`).
		if (!did_action('wp_loaded')) {
			add_action('wp_loaded', array( $this, 'try_sync_conf' ), 999);
			self::debug('WP not loaded yet, delay sync to wp_loaded:999');
			return;
		}

		$options                = $this->get_options();
		$options['_tp_cookies'] = apply_filters('litespeed_vary_cookies', array());

		// Build necessary options only
		$options_needed  = array(
			self::O_CACHE_DROP_QS,
			self::O_CACHE_EXC_COOKIES,
			self::O_CACHE_EXC_USERAGENTS,
			self::O_CACHE_LOGIN_COOKIE,
			self::O_CACHE_VARY_COOKIES,
			self::O_CACHE_MOBILE_RULES,
			self::O_CACHE_MOBILE,
			self::O_CACHE_BROWSER,
			self::O_CACHE_TTL_BROWSER,
			self::O_IMG_OPTM_WEBP,
			self::O_GUEST,
			'_tp_cookies',
		);
		$consts_needed   = array( 'LSWCP_TAG_PREFIX' );
		$options_for_md5 = array();
		foreach ($options_needed as $v) {
			if (isset($options[$v])) {
				$options_for_md5[$v] = $options[$v];
				// Remove overflow multi lines fields
				if (is_array($options_for_md5[$v]) && count($options_for_md5[$v]) > 30) {
					$options_for_md5[$v] = array_slice($options_for_md5[$v], 0, 30);
				}
			}
		}

		$server_vars = $this->server_vars();
		foreach ($consts_needed as $v) {
			if (isset($server_vars[$v])) {
				if (empty($options_for_md5['_server'])) {
					$options_for_md5['_server'] = array();
				}
				$options_for_md5['_server'][$v] = $server_vars[$v];
			}
		}

		$conf_md5 = md5(\json_encode($options_for_md5));
		if (!empty($this->_summary['conf_md5'])) {
			if ($conf_md5 == $this->_summary['conf_md5']) {
				if (!$this->_force) {
					self::debug('Bypass sync conf to QC due to same md5', $conf_md5);
					return;
				}
				self::debug('!!!Force sync conf even same md5');
			} else {
				self::debug('[conf_md5] ' . $conf_md5 . ' [existing_conf_md5] ' . $this->_summary['conf_md5']);
			}
		}

		self::save_summary(array( 'conf_md5' => $conf_md5 ));
		self::debug('sync conf to QC');

		Cloud::post(Cloud::SVC_D_SYNC_CONF, $options_for_md5);
	}
}
<?php
/**
 * The cloudflare CDN class.
 *
 * @since       2.1
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/src/cdn
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\CDN;

use LiteSpeed\Core;
use LiteSpeed\Base;
use LiteSpeed\Debug2;
use LiteSpeed\Router;
use LiteSpeed\Admin;
use LiteSpeed\Admin_Display;

defined('WPINC') || exit();

class Cloudflare extends Base {

	const TYPE_PURGE_ALL       = 'purge_all';
	const TYPE_GET_DEVMODE     = 'get_devmode';
	const TYPE_SET_DEVMODE_ON  = 'set_devmode_on';
	const TYPE_SET_DEVMODE_OFF = 'set_devmode_off';

	const ITEM_STATUS = 'status';

	/**
	 * Update zone&name based on latest settings
	 *
	 * @since  3.0
	 * @access public
	 */
	public function try_refresh_zone() {
		if (!$this->conf(self::O_CDN_CLOUDFLARE)) {
			return;
		}

		$zone = $this->_fetch_zone();
		if ($zone) {
			$this->cls('Conf')->update(self::O_CDN_CLOUDFLARE_NAME, $zone['name']);

			$this->cls('Conf')->update(self::O_CDN_CLOUDFLARE_ZONE, $zone['id']);

			Debug2::debug("[Cloudflare] Get zone successfully \t\t[ID] $zone[id]");
		} else {
			$this->cls('Conf')->update(self::O_CDN_CLOUDFLARE_ZONE, '');
			Debug2::debug('[Cloudflare] ❌ Get zone failed, clean zone');
		}
	}

	/**
	 * Get Cloudflare development mode
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _get_devmode( $show_msg = true ) {
		Debug2::debug('[Cloudflare] _get_devmode');

		$zone = $this->_zone();
		if (!$zone) {
			return;
		}

		$url = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/settings/development_mode';
		$res = $this->_cloudflare_call($url, 'GET', false, $show_msg);

		if (!$res) {
			return;
		}
		Debug2::debug('[Cloudflare] _get_devmode result ', $res);

		// Make sure is array: #992174
		$curr_status                    = self::get_option(self::ITEM_STATUS, array()) ?: array();
		$curr_status['devmode']         = $res['value'];
		$curr_status['devmode_expired'] = $res['time_remaining'] + time();

		// update status
		self::update_option(self::ITEM_STATUS, $curr_status);
	}

	/**
	 * Set Cloudflare development mode
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _set_devmode( $type ) {
		Debug2::debug('[Cloudflare] _set_devmode');

		$zone = $this->_zone();
		if (!$zone) {
			return;
		}

		$url     = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/settings/development_mode';
		$new_val = $type == self::TYPE_SET_DEVMODE_ON ? 'on' : 'off';
		$data    = array( 'value' => $new_val );
		$res     = $this->_cloudflare_call($url, 'PATCH', $data);

		if (!$res) {
			return;
		}

		$res = $this->_get_devmode(false);

		if ($res) {
			$msg = sprintf(__('Notified Cloudflare to set development mode to %s successfully.', 'litespeed-cache'), strtoupper($new_val));
			Admin_Display::success($msg);
		}
	}

	/**
	 * Shortcut to purge Cloudflare
	 *
	 * @since  7.1
	 */
	public static function purge_all( $reason = false ) {
		if ($reason) {
			Debug2::debug('[Cloudflare] purge call because: ' . $reason);
		}
		self::cls()->_purge_all();
	}

	/**
	 * Purge Cloudflare cache
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _purge_all() {
		Debug2::debug('[Cloudflare] _purge_all');

		$cf_on = $this->conf(self::O_CDN_CLOUDFLARE);
		if (!$cf_on) {
			$msg = __('Cloudflare API is set to off.', 'litespeed-cache');
			Admin_Display::error($msg);
			return;
		}

		$zone = $this->_zone();
		if (!$zone) {
			return;
		}

		$url  = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/purge_cache';
		$data = array( 'purge_everything' => true );

		$res = $this->_cloudflare_call($url, 'DELETE', $data);

		if ($res) {
			$msg = __('Notified Cloudflare to purge all successfully.', 'litespeed-cache');
			Admin_Display::success($msg);
		}
	}

	/**
	 * Get current Cloudflare zone from cfg
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _zone() {
		$zone = $this->conf(self::O_CDN_CLOUDFLARE_ZONE);
		if (!$zone) {
			$msg = __('No available Cloudflare zone', 'litespeed-cache');
			Admin_Display::error($msg);
			return false;
		}

		return $zone;
	}

	/**
	 * Get Cloudflare zone settings
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _fetch_zone() {
		$kw = $this->conf(self::O_CDN_CLOUDFLARE_NAME);

		$url = 'https://api.cloudflare.com/client/v4/zones?status=active&match=all';

		// Try exact match first
		if ($kw && strpos($kw, '.')) {
			$zones = $this->_cloudflare_call($url . '&name=' . $kw, 'GET', false, false);
			if ($zones) {
				Debug2::debug('[Cloudflare] fetch_zone exact matched');
				return $zones[0];
			}
		}

		// Can't find, try to get default one
		$zones = $this->_cloudflare_call($url, 'GET', false, false);

		if (!$zones) {
			Debug2::debug('[Cloudflare] fetch_zone no zone');
			return false;
		}

		if (!$kw) {
			Debug2::debug('[Cloudflare] fetch_zone no set name, use first one by default');
			return $zones[0];
		}

		foreach ($zones as $v) {
			if (strpos($v['name'], $kw) !== false) {
				Debug2::debug('[Cloudflare] fetch_zone matched ' . $kw . ' [name] ' . $v['name']);
				return $v;
			}
		}

		// Can't match current name, return default one
		Debug2::debug('[Cloudflare] fetch_zone failed match name, use first one by default');
		return $zones[0];
	}

	/**
	 * Cloudflare API
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _cloudflare_call( $url, $method = 'GET', $data = false, $show_msg = true ) {
		Debug2::debug("[Cloudflare] _cloudflare_call \t\t[URL] $url");

		if (40 == strlen($this->conf(self::O_CDN_CLOUDFLARE_KEY))) {
			$headers = array(
				'Content-Type' => 'application/json',
				'Authorization' => 'Bearer ' . $this->conf(self::O_CDN_CLOUDFLARE_KEY),
			);
		} else {
			$headers = array(
				'Content-Type' => 'application/json',
				'X-Auth-Email' => $this->conf(self::O_CDN_CLOUDFLARE_EMAIL),
				'X-Auth-Key' => $this->conf(self::O_CDN_CLOUDFLARE_KEY),
			);
		}

		$wp_args = array(
			'method' => $method,
			'headers' => $headers,
		);

		if ($data) {
			if (is_array($data)) {
				$data = \json_encode($data);
			}
			$wp_args['body'] = $data;
		}
		$resp = wp_remote_request($url, $wp_args);
		if (is_wp_error($resp)) {
			Debug2::debug('[Cloudflare] error in response');
			if ($show_msg) {
				$msg = __('Failed to communicate with Cloudflare', 'litespeed-cache');
				Admin_Display::error($msg);
			}
			return false;
		}

		$result = wp_remote_retrieve_body($resp);

		$json = \json_decode($result, true);

		if ($json && $json['success'] && $json['result']) {
			Debug2::debug('[Cloudflare] _cloudflare_call called successfully');
			if ($show_msg) {
				$msg = __('Communicated with Cloudflare successfully.', 'litespeed-cache');
				Admin_Display::success($msg);
			}

			return $json['result'];
		}

		Debug2::debug("[Cloudflare] _cloudflare_call called failed: $result");
		if ($show_msg) {
			$msg = __('Failed to communicate with Cloudflare', 'litespeed-cache');
			Admin_Display::error($msg);
		}

		return false;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_PURGE_ALL:
            $this->_purge_all();
				break;

			case self::TYPE_GET_DEVMODE:
            $this->_get_devmode();
				break;

			case self::TYPE_SET_DEVMODE_ON:
			case self::TYPE_SET_DEVMODE_OFF:
            $this->_set_devmode($type);
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The ucss class.
 *
 * @since       5.1
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class UCSS extends Base {

	const LOG_TAG = '[UCSS]';

	const TYPE_GEN     = 'gen';
	const TYPE_CLEAR_Q = 'clear_q';

	protected $_summary;
	private $_ucss_whitelist;
	private $_queue;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_summary = self::get_summary();

		add_filter('litespeed_ucss_whitelist', array( $this->cls('Data'), 'load_ucss_whitelist' ));
	}

	/**
	 * Uniform url tag for ucss usage
	 *
	 * @since 4.7
	 */
	public static function get_url_tag( $request_url = false ) {
		$url_tag = $request_url;
		if (is_404()) {
			$url_tag = '404';
		} elseif (apply_filters('litespeed_ucss_per_pagetype', false)) {
			$url_tag = Utility::page_type();
			self::debug('litespeed_ucss_per_pagetype filter altered url to ' . $url_tag);
		}

		return $url_tag;
	}

	/**
	 * Get UCSS path
	 *
	 * @since  4.0
	 */
	public function load( $request_url, $dry_run = false ) {
		// Check UCSS URI excludes
		$ucss_exc = apply_filters('litespeed_ucss_exc', $this->conf(self::O_OPTM_UCSS_EXC));
		if ($ucss_exc && ($hit = Utility::str_hit_array($request_url, $ucss_exc))) {
			self::debug('UCSS bypassed due to UCSS URI Exclude setting: ' . $hit);
			Core::comment('QUIC.cloud UCSS bypassed by setting');
			return false;
		}

		$filepath_prefix = $this->_build_filepath_prefix('ucss');

		$url_tag = self::get_url_tag($request_url);

		$vary     = $this->cls('Vary')->finalize_full_varies();
		$filename = $this->cls('Data')->load_url_file($url_tag, $vary, 'ucss');
		if ($filename) {
			$static_file = LITESPEED_STATIC_DIR . $filepath_prefix . $filename . '.css';

			if (file_exists($static_file)) {
				self::debug2('existing ucss ' . $static_file);
				// Check if is error comment inside only
				$tmp = File::read($static_file);
				if (substr($tmp, 0, 2) == '/*' && substr(trim($tmp), -2) == '*/') {
					self::debug2('existing ucss is error only: ' . $tmp);
					Core::comment('QUIC.cloud UCSS bypassed due to generation error ❌ ' . $filepath_prefix . $filename . '.css');
					return false;
				}

				Core::comment('QUIC.cloud UCSS loaded ✅');

				return $filename . '.css';
			}
		}

		if ($dry_run) {
			return false;
		}

		Core::comment('QUIC.cloud UCSS in queue');

		$uid = get_current_user_id();

		$ua = $this->_get_ua();

		// Store it for cron
		$this->_queue = $this->load_queue('ucss');

		if (count($this->_queue) > 500) {
			self::debug('UCSS Queue is full - 500');
			return false;
		}

		$queue_k                = (strlen($vary) > 32 ? md5($vary) : $vary) . ' ' . $url_tag;
		$this->_queue[$queue_k] = array(
			'url' => apply_filters('litespeed_ucss_url', $request_url),
			'user_agent' => substr($ua, 0, 200),
			'is_mobile' => $this->_separate_mobile(),
			'is_webp' => $this->cls('Media')->webp_support() ? 1 : 0,
			'uid' => $uid,
			'vary' => $vary,
			'url_tag' => $url_tag,
		); // Current UA will be used to request
		$this->save_queue('ucss', $this->_queue);
		self::debug('Added queue_ucss [url_tag] ' . $url_tag . ' [UA] ' . $ua . ' [vary] ' . $vary . ' [uid] ' . $uid);

		// Prepare cache tag for later purge
		Tag::add('UCSS.' . md5($queue_k));

		return false;
	}

	/**
	 * Get User Agent
	 *
	 * @since  5.3
	 */
	private function _get_ua() {
		return !empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
	}

	/**
	 * Add rows to q
	 *
	 * @since  5.3
	 */
	public function add_to_q( $url_files ) {
		// Store it for cron
		$this->_queue = $this->load_queue('ucss');

		if (count($this->_queue) > 500) {
			self::debug('UCSS Queue is full - 500');
			return false;
		}

		$ua = $this->_get_ua();
		foreach ($url_files as $url_file) {
			$vary        = $url_file['vary'];
			$request_url = $url_file['url'];
			$is_mobile   = $url_file['mobile'];
			$is_webp     = $url_file['webp'];
			$url_tag     = self::get_url_tag($request_url);

			$queue_k = (strlen($vary) > 32 ? md5($vary) : $vary) . ' ' . $url_tag;
			$q       = array(
				'url' => apply_filters('litespeed_ucss_url', $request_url),
				'user_agent' => substr($ua, 0, 200),
				'is_mobile' => $is_mobile,
				'is_webp' => $is_webp,
				'uid' => false,
				'vary' => $vary,
				'url_tag' => $url_tag,
			); // Current UA will be used to request

			self::debug('Added queue_ucss [url_tag] ' . $url_tag . ' [UA] ' . $ua . ' [vary] ' . $vary . ' [uid] false');
			$this->_queue[$queue_k] = $q;
		}
		$this->save_queue('ucss', $this->_queue);
	}

	/**
	 * Generate UCSS
	 *
	 * @since  4.0
	 */
	public static function cron( $continue = false ) {
		$_instance = self::cls();
		return $_instance->_cron_handler($continue);
	}

	/**
	 * Handle UCSS cron
	 *
	 * @since 4.2
	 */
	private function _cron_handler( $continue ) {
		$this->_queue = $this->load_queue('ucss');

		if (empty($this->_queue)) {
			return;
		}

		// For cron, need to check request interval too
		if (!$continue) {
			if (!empty($this->_summary['curr_request']) && time() - $this->_summary['curr_request'] < 300 && !$this->conf(self::O_DEBUG)) {
				self::debug('Last request not done');
				return;
			}
		}

		$i = 0;
		foreach ($this->_queue as $k => $v) {
			if (!empty($v['_status'])) {
				continue;
			}

			self::debug('cron job [tag] ' . $k . ' [url] ' . $v['url'] . ($v['is_mobile'] ? ' 📱 ' : '') . ' [UA] ' . $v['user_agent']);

			if (!isset($v['is_webp'])) {
				$v['is_webp'] = false;
			}

			++$i;
			$res = $this->_send_req($v['url'], $k, $v['uid'], $v['user_agent'], $v['vary'], $v['url_tag'], $v['is_mobile'], $v['is_webp']);
			if (!$res) {
				// Status is wrong, drop this this->_queue
				$this->_queue = $this->load_queue('ucss');
				unset($this->_queue[$k]);
				$this->save_queue('ucss', $this->_queue);

				if (!$continue) {
					return;
				}

				if ($i > 3) {
					GUI::print_loading(count($this->_queue), 'UCSS');
					return Router::self_redirect(Router::ACTION_UCSS, self::TYPE_GEN);
				}

				continue;
			}

			// Exit queue if out of quota or service is hot
			if ($res === 'out_of_quota' || $res === 'svc_hot') {
				return;
			}

			$this->_queue                = $this->load_queue('ucss');
			$this->_queue[$k]['_status'] = 'requested';
			$this->save_queue('ucss', $this->_queue);
			self::debug('Saved to queue [k] ' . $k);

			// only request first one
			if (!$continue) {
				return;
			}

			if ($i > 3) {
				GUI::print_loading(count($this->_queue), 'UCSS');
				return Router::self_redirect(Router::ACTION_UCSS, self::TYPE_GEN);
			}
		}
	}

	/**
	 * Send to QC API to generate UCSS
	 *
	 * @since  2.3
	 * @access private
	 */
	private function _send_req( $request_url, $queue_k, $uid, $user_agent, $vary, $url_tag, $is_mobile, $is_webp ) {
		// Check if has credit to push or not
		$err       = false;
		$allowance = $this->cls('Cloud')->allowance(Cloud::SVC_UCSS, $err);
		if (!$allowance) {
			self::debug('❌ No credit: ' . $err);
			$err && Admin_Display::error(Error::msg($err));
			return 'out_of_quota';
		}

		set_time_limit(120);

		// Update css request status
		$this->_summary['curr_request'] = time();
		self::save_summary();

		// Gather guest HTML to send
		$html = $this->cls('CSS')->prepare_html($request_url, $user_agent, $uid);

		if (!$html) {
			return false;
		}

		// Parse HTML to gather all CSS content before requesting
		$css             = false;
		list(, $html)    = $this->prepare_css($html, $is_webp, true); // Use this to drop CSS from HTML as we don't need those CSS to generate UCSS
		$filename        = $this->cls('Data')->load_url_file($url_tag, $vary, 'css');
		$filepath_prefix = $this->_build_filepath_prefix('css');
		$static_file     = LITESPEED_STATIC_DIR . $filepath_prefix . $filename . '.css';
		self::debug('Checking combined file ' . $static_file);
		if (file_exists($static_file)) {
			$css = File::read($static_file);
		}

		if (!$css) {
			self::debug('❌ No combined css');
			return false;
		}

		$data = array(
			'url' => $request_url,
			'queue_k' => $queue_k,
			'user_agent' => $user_agent,
			'is_mobile' => $is_mobile ? 1 : 0, // todo:compatible w/ tablet
			'is_webp' => $is_webp ? 1 : 0,
			'html' => $html,
			'css' => $css,
		);
		if (!isset($this->_ucss_whitelist)) {
			$this->_ucss_whitelist = $this->_filter_whitelist();
		}
		$data['whitelist'] = $this->_ucss_whitelist;

		self::debug('Generating: ', $data);

		$json = Cloud::post(Cloud::SVC_UCSS, $data, 30);
		if (!is_array($json)) {
			return $json;
		}

		// Old version compatibility
		if (empty($json['status'])) {
			if (!empty($json['ucss'])) {
				$this->_save_con('ucss', $json['ucss'], $queue_k, $is_mobile, $is_webp);
			}

			// Delete the row
			return false;
		}

		// Unknown status, remove this line
		if ($json['status'] != 'queued') {
			return false;
		}

		// Save summary data
		$this->_summary['last_spent']   = time() - $this->_summary['curr_request'];
		$this->_summary['last_request'] = $this->_summary['curr_request'];
		$this->_summary['curr_request'] = 0;
		self::save_summary();

		return true;
	}

	/**
	 * Save UCSS content
	 *
	 * @since 4.2
	 */
	private function _save_con( $type, $css, $queue_k, $is_mobile, $is_webp ) {
		// Add filters
		$css = apply_filters('litespeed_' . $type, $css, $queue_k);
		self::debug2('con: ', $css);

		if (substr($css, 0, 2) == '/*' && substr($css, -2) == '*/') {
			self::debug('❌ empty ' . $type . ' [content] ' . $css);
			// continue; // Save the error info too
		}

		// Write to file
		$filecon_md5 = md5($css);

		$filepath_prefix = $this->_build_filepath_prefix($type);
		$static_file     = LITESPEED_STATIC_DIR . $filepath_prefix . $filecon_md5 . '.css';

		File::save($static_file, $css, true);

		$url_tag = $this->_queue[$queue_k]['url_tag'];
		$vary    = $this->_queue[$queue_k]['vary'];
		self::debug2("Save URL to file [file] $static_file [vary] $vary");

		$this->cls('Data')->save_url($url_tag, $vary, $type, $filecon_md5, dirname($static_file), $is_mobile, $is_webp);

		Purge::add(strtoupper($type) . '.' . md5($queue_k));
	}

	/**
	 * Prepare CSS from HTML for CCSS generation only. UCSS will used combined CSS directly.
	 * Prepare refined HTML for both CCSS and UCSS.
	 *
	 * @since  3.4.3
	 */
	public function prepare_css( $html, $is_webp = false, $dryrun = false ) {
		$css = '';
		preg_match_all('#<link ([^>]+)/?>|<style([^>]*)>([^<]+)</style>#isU', $html, $matches, PREG_SET_ORDER);
		foreach ($matches as $match) {
			$debug_info = '';
			if (strpos($match[0], '<link') === 0) {
				$attrs = Utility::parse_attr($match[1]);

				if (empty($attrs['rel'])) {
					continue;
				}

				if ($attrs['rel'] != 'stylesheet') {
					if ($attrs['rel'] != 'preload' || empty($attrs['as']) || $attrs['as'] != 'style') {
						continue;
					}
				}

				if (!empty($attrs['media']) && strpos($attrs['media'], 'print') !== false) {
					continue;
				}

				if (empty($attrs['href'])) {
					continue;
				}

				// Check Google fonts hit
				if (strpos($attrs['href'], 'fonts.googleapis.com') !== false) {
					$html = str_replace($match[0], '', $html);
					continue;
				}

				$debug_info = $attrs['href'];

				// Load CSS content
				if (!$dryrun) {
					// Dryrun will not load CSS but just drop them
					$con = $this->cls('Optimizer')->load_file($attrs['href']);
					if (!$con) {
						continue;
					}
				} else {
					$con = '';
				}
			} else {
				// Inline style
				$attrs = Utility::parse_attr($match[2]);

				if (!empty($attrs['media']) && strpos($attrs['media'], 'print') !== false) {
					continue;
				}

				Debug2::debug2('[CSS] Load inline CSS ' . substr($match[3], 0, 100) . '...', $attrs);
				$con = $match[3];

				$debug_info = '__INLINE__';
			}

			$con = Optimizer::minify_css($con);
			if ($is_webp && $this->cls('Media')->webp_support()) {
				$con = $this->cls('Media')->replace_background_webp($con);
			}

			if (!empty($attrs['media']) && $attrs['media'] !== 'all') {
				$con = '@media ' . $attrs['media'] . '{' . $con . "}\n";
			} else {
				$con = $con . "\n";
			}

			$con  = '/* ' . $debug_info . ' */' . $con;
			$css .= $con;

			$html = str_replace($match[0], '', $html);
		}

		return array( $css, $html );
	}

	/**
	 * Filter the comment content, add quotes to selector from whitelist. Return the json
	 *
	 * @since 3.3
	 */
	private function _filter_whitelist() {
		$whitelist = array();
		$list      = apply_filters('litespeed_ucss_whitelist', $this->conf(self::O_OPTM_UCSS_SELECTOR_WHITELIST));
		foreach ($list as $k => $v) {
			if (substr($v, 0, 2) === '//') {
				continue;
			}
			// Wrap in quotes for selectors
			if (substr($v, 0, 1) !== '/' && strpos($v, '"') === false && strpos($v, "'") === false) {
				// $v = "'$v'";
			}
			$whitelist[] = $v;
		}

		return $whitelist;
	}

	/**
	 * Notify finished from server
	 *
	 * @since 5.1
	 */
	public function notify() {
		$post_data = \json_decode(file_get_contents('php://input'), true);
		if (is_null($post_data)) {
			$post_data = $_POST;
		}
		self::debug('notify() data', $post_data);

		$this->_queue = $this->load_queue('ucss');

		list($post_data) = $this->cls('Cloud')->extract_msg($post_data, 'ucss');

		$notified_data = $post_data['data'];
		if (empty($notified_data) || !is_array($notified_data)) {
			self::debug('❌ notify exit: no notified data');
			return Cloud::err('no notified data');
		}

		// Check if its in queue or not
		$valid_i = 0;
		foreach ($notified_data as $v) {
			if (empty($v['request_url'])) {
				self::debug('❌ notify bypass: no request_url', $v);
				continue;
			}
			if (empty($v['queue_k'])) {
				self::debug('❌ notify bypass: no queue_k', $v);
				continue;
			}

			if (empty($this->_queue[$v['queue_k']])) {
				self::debug('❌ notify bypass: no this queue [q_k]' . $v['queue_k']);
				continue;
			}

			// Save data
			if (!empty($v['data_ucss'])) {
				$is_mobile = $this->_queue[$v['queue_k']]['is_mobile'];
				$is_webp   = $this->_queue[$v['queue_k']]['is_webp'];
				$this->_save_con('ucss', $v['data_ucss'], $v['queue_k'], $is_mobile, $is_webp);

				++$valid_i;
			}

			unset($this->_queue[$v['queue_k']]);
			self::debug('notify data handled, unset queue [q_k] ' . $v['queue_k']);
		}
		$this->save_queue('ucss', $this->_queue);

		self::debug('notified');

		return Cloud::ok(array( 'count' => $valid_i ));
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.3
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_GEN:
            self::cron(true);
				break;

			case self::TYPE_CLEAR_Q:
            $this->clear_q('ucss');
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The core plugin router class.
 *
 * This generate the valid action.
 *
 * @since       1.1.0
 * @since       1.5 Moved into /inc
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Router extends Base {

	const LOG_TAG = '[Router]';

	const NONCE  = 'LSCWP_NONCE';
	const ACTION = 'LSCWP_CTRL';

	const ACTION_SAVE_SETTINGS_NETWORK = 'save-settings-network';
	const ACTION_DB_OPTM               = 'db_optm';
	const ACTION_PLACEHOLDER           = 'placeholder';
	const ACTION_AVATAR                = 'avatar';
	const ACTION_SAVE_SETTINGS         = 'save-settings';
	const ACTION_CLOUD                 = 'cloud';
	const ACTION_IMG_OPTM              = 'img_optm';
	const ACTION_HEALTH                = 'health';
	const ACTION_CRAWLER               = 'crawler';
	const ACTION_PURGE                 = 'purge';
	const ACTION_CONF                  = 'conf';
	const ACTION_ACTIVATION            = 'activation';
	const ACTION_CSS                   = 'css';
	const ACTION_UCSS                  = 'ucss';
	const ACTION_VPI                   = 'vpi';
	const ACTION_PRESET                = 'preset';
	const ACTION_IMPORT                = 'import';
	const ACTION_REPORT                = 'report';
	const ACTION_DEBUG2                = 'debug2';
	const ACTION_CDN_CLOUDFLARE        = 'CDN\Cloudflare';
	const ACTION_ADMIN_DISPLAY         = 'admin_display';

	// List all handlers here
	private static $_HANDLERS = array(
		self::ACTION_ADMIN_DISPLAY,
		self::ACTION_ACTIVATION,
		self::ACTION_AVATAR,
		self::ACTION_CDN_CLOUDFLARE,
		self::ACTION_CLOUD,
		self::ACTION_CONF,
		self::ACTION_CRAWLER,
		self::ACTION_CSS,
		self::ACTION_UCSS,
		self::ACTION_VPI,
		self::ACTION_DB_OPTM,
		self::ACTION_DEBUG2,
		self::ACTION_HEALTH,
		self::ACTION_IMG_OPTM,
		self::ACTION_PRESET,
		self::ACTION_IMPORT,
		self::ACTION_PLACEHOLDER,
		self::ACTION_PURGE,
		self::ACTION_REPORT,
	);

	const TYPE = 'litespeed_type';

	const ITEM_HASH       = 'hash';
	const ITEM_FLASH_HASH = 'flash_hash';

	private static $_esi_enabled;
	private static $_is_ajax;
	private static $_is_logged_in;
	private static $_ip;
	private static $_action;
	private static $_is_admin_ip;
	private static $_frontend_path;

	/**
	 * Redirect to self to continue operation
	 *
	 * Note: must return when use this func. CLI/Cron call won't die in this func.
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function self_redirect( $action, $type ) {
		if (defined('LITESPEED_CLI') || wp_doing_cron()) {
			Admin_Display::success('To be continued'); // Show for CLI
			return;
		}

		// Add i to avoid browser too many redirected warning
		$i = !empty($_GET['litespeed_i']) ? $_GET['litespeed_i'] : 0;
		++$i;

		$link = Utility::build_url($action, $type, false, null, array( 'litespeed_i' => $i ));

		$url = html_entity_decode($link);
		exit("<meta http-equiv='refresh' content='0;url=$url'>");
	}

	/**
	 * Check if can run optimize
	 *
	 * @since  1.3
	 * @since  2.3.1 Relocated from cdn.cls
	 * @access public
	 */
	public function can_optm() {
		$can = true;

		if (is_user_logged_in() && $this->conf(self::O_OPTM_GUEST_ONLY)) {
			$can = false;
		} elseif (is_admin()) {
			$can = false;
		} elseif (is_feed()) {
			$can = false;
		} elseif (is_preview()) {
			$can = false;
		} elseif (self::is_ajax()) {
			$can = false;
		}

		if (self::_is_login_page()) {
			Debug2::debug('[Router] Optm bypassed: login/reg page');
			$can = false;
		}

		$can_final = apply_filters('litespeed_can_optm', $can);

		if ($can_final != $can) {
			Debug2::debug('[Router] Optm bypassed: filter');
		}

		return $can_final;
	}

	/**
	 * Check referer page to see if its from admin
	 *
	 * @since 2.4.2.1
	 * @access public
	 */
	public static function from_admin() {
		return !empty($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], get_admin_url()) === 0;
	}

	/**
	 * Check if it can use CDN replacement
	 *
	 * @since  1.2.3
	 * @since  2.3.1 Relocated from cdn.cls
	 * @access public
	 */
	public static function can_cdn() {
		$can = true;

		if (is_admin()) {
			if (!self::is_ajax()) {
				Debug2::debug2('[Router] CDN bypassed: is not ajax call');
				$can = false;
			}

			if (self::from_admin()) {
				Debug2::debug2('[Router] CDN bypassed: ajax call from admin');
				$can = false;
			}
		} elseif (is_feed()) {
			$can = false;
		} elseif (is_preview()) {
			$can = false;
		}

		/**
		 * Bypass cron to avoid deregister jq notice `Do not deregister the <code>jquery-core</code> script in the administration area.`
		 *
		 * @since  2.7.2
		 */
		if (wp_doing_cron()) {
			$can = false;
		}

		/**
		 * Bypass login/reg page
		 *
		 * @since  1.6
		 */
		if (self::_is_login_page()) {
			Debug2::debug('[Router] CDN bypassed: login/reg page');
			$can = false;
		}

		/**
		 * Bypass post/page link setting
		 *
		 * @since 2.9.8.5
		 */
		$rest_prefix = function_exists('rest_get_url_prefix') ? rest_get_url_prefix() : apply_filters('rest_url_prefix', 'wp-json');
		if (
			!empty($_SERVER['REQUEST_URI']) &&
			strpos($_SERVER['REQUEST_URI'], $rest_prefix . '/wp/v2/media') !== false &&
			isset($_SERVER['HTTP_REFERER']) &&
			strpos($_SERVER['HTTP_REFERER'], 'wp-admin') !== false
		) {
			Debug2::debug('[Router] CDN bypassed: wp-json on admin page');
			$can = false;
		}

		$can_final = apply_filters('litespeed_can_cdn', $can);

		if ($can_final != $can) {
			Debug2::debug('[Router] CDN bypassed: filter');
		}

		return $can_final;
	}

	/**
	 * Check if is login page or not
	 *
	 * @since  2.3.1
	 * @access protected
	 */
	protected static function _is_login_page() {
		if (in_array($GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ), true)) {
			return true;
		}

		return false;
	}

	/**
	 * UCSS/Crawler role simulator
	 *
	 * @since  1.9.1
	 * @since  3.3 Renamed from `is_crawler_role_simulation`
	 */
	public function is_role_simulation() {
		if (is_admin()) {
			return;
		}

		if (empty($_COOKIE['litespeed_hash']) && empty($_COOKIE['litespeed_flash_hash'])) {
			return;
		}

		self::debug('🪪 starting role validation');

		// Check if is from crawler
		// if ( empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], Crawler::FAST_USER_AGENT ) !== 0 ) {
		// Debug2::debug( '[Router] user agent not match' );
		// return;
		// }
		$server_ip = $this->conf(self::O_SERVER_IP);
		if (!$server_ip || self::get_ip() !== $server_ip) {
			self::debug('❌❌ Role simulate uid denied! Not localhost visit!');
			Control::set_nocache('Role simulate uid denied');
			return;
		}

		// Flash hash validation
		if (!empty($_COOKIE['litespeed_flash_hash'])) {
			$hash_data = self::get_option(self::ITEM_FLASH_HASH, array());
			if ($hash_data && is_array($hash_data) && !empty($hash_data['hash']) && !empty($hash_data['ts']) && !empty($hash_data['uid'])) {
				if (time() - $hash_data['ts'] < 120 && $_COOKIE['litespeed_flash_hash'] == $hash_data['hash']) {
					self::debug('🪪 Role simulator flash hash matched, escalating user to be uid=' . $hash_data['uid']);
					self::delete_option(self::ITEM_FLASH_HASH);
					wp_set_current_user($hash_data['uid']);
					return;
				}
			}
		}
		// Hash validation
		if (!empty($_COOKIE['litespeed_hash'])) {
			$hash_data = self::get_option(self::ITEM_HASH, array());
			if ($hash_data && is_array($hash_data) && !empty($hash_data['hash']) && !empty($hash_data['ts']) && !empty($hash_data['uid'])) {
				$RUN_DURATION = $this->cls('Crawler')->get_crawler_duration();
				if (time() - $hash_data['ts'] < $RUN_DURATION && $_COOKIE['litespeed_hash'] == $hash_data['hash']) {
					self::debug('🪪 Role simulator hash matched, escalating user to be uid=' . $hash_data['uid']);
					wp_set_current_user($hash_data['uid']);
					return;
				}
			}
		}

		self::debug('❌ WARNING: role simulator hash not match');
	}

	/**
	 * Get a short ttl hash (2mins)
	 *
	 * @since  6.4
	 */
	public function get_flash_hash( $uid ) {
		$hash_data = self::get_option(self::ITEM_FLASH_HASH, array());
		if ($hash_data && is_array($hash_data) && !empty($hash_data['hash']) && !empty($hash_data['ts'])) {
			if (time() - $hash_data['ts'] < 60) {
				return $hash_data['hash'];
			}
		}

		// Check if this user has editor access or not
		if (user_can($uid, 'edit_posts')) {
			self::debug('🛑 The user with id ' . $uid . ' has editor access, which is not allowed for the role simulator.');
			return '';
		}

		$hash = Str::rrand(32);
		self::update_option(self::ITEM_FLASH_HASH, array(
			'hash' => $hash,
			'ts' => time(),
			'uid' => $uid,
		));
		return $hash;
	}

	/**
	 * Get a security hash
	 *
	 * @since  3.3
	 */
	public function get_hash( $uid ) {
		// Check if this user has editor access or not
		if (user_can($uid, 'edit_posts')) {
			self::debug('🛑 The user with id ' . $uid . ' has editor access, which is not allowed for the role simulator.');
			return '';
		}

		// As this is called only when starting crawling, not per page, no need to reuse
		$hash = Str::rrand(32);
		self::update_option(self::ITEM_HASH, array(
			'hash' => $hash,
			'ts' => time(),
			'uid' => $uid,
		));
		return $hash;
	}

	/**
	 * Get user role
	 *
	 * @since  1.6.2
	 */
	public static function get_role( $uid = null ) {
		if (defined('LITESPEED_WP_ROLE')) {
			return LITESPEED_WP_ROLE;
		}

		if ($uid === null) {
			$uid = get_current_user_id();
		}

		$role = false;
		if ($uid) {
			$user = get_userdata($uid);
			if (isset($user->roles) && is_array($user->roles)) {
				$tmp  = array_values($user->roles);
				$role = implode(',', $tmp); // Combine for PHP5.3 const comaptibility
			}
		}
		Debug2::debug('[Router] get_role: ' . $role);

		if (!$role) {
			return $role;
			// Guest user
			Debug2::debug('[Router] role: guest');

			/**
			 * Fix double login issue
			 * The previous user init refactoring didn't fix this bcos this is in login process and the user role could change
			 *
			 * @see  https://github.com/litespeedtech/lscache_wp/commit/69e7bc71d0de5cd58961bae953380b581abdc088
			 * @since  2.9.8 Won't assign const if in login process
			 */
			if (substr_compare(wp_login_url(), $GLOBALS['pagenow'], -strlen($GLOBALS['pagenow'])) === 0) {
				return $role;
			}
		}

		define('LITESPEED_WP_ROLE', $role);

		return LITESPEED_WP_ROLE;
	}

	/**
	 * Get frontend path
	 *
	 * @since 1.2.2
	 * @access public
	 * @return boolean
	 */
	public static function frontend_path() {
		// todo: move to htaccess.cls ?
		if (!isset(self::$_frontend_path)) {
			$frontend = rtrim(ABSPATH, '/'); // /home/user/public_html/frontend
			// get home path failed. Trac ticket #37668 (e.g. frontend:/blog backend:/wordpress)
			if (!$frontend) {
				Debug2::debug('[Router] No ABSPATH, generating from home option');
				$frontend = parse_url(get_option('home'));
				$frontend = !empty($frontend['path']) ? $frontend['path'] : '';
				$frontend = $_SERVER['DOCUMENT_ROOT'] . $frontend;
			}
			$frontend = realpath($frontend);

			self::$_frontend_path = $frontend;
		}
		return self::$_frontend_path;
	}

	/**
	 * Check if ESI is enabled or not
	 *
	 * @since 1.2.0
	 * @access public
	 * @return boolean
	 */
	public function esi_enabled() {
		if (!isset(self::$_esi_enabled)) {
			self::$_esi_enabled = defined('LITESPEED_ON') && $this->conf(self::O_ESI);
			if (!empty($_REQUEST[self::ACTION])) {
				self::$_esi_enabled = false;
			}
		}
		return self::$_esi_enabled;
	}

	/**
	 * Check if crawler is enabled on server level
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function can_crawl() {
		if (isset($_SERVER['X-LSCACHE']) && strpos($_SERVER['X-LSCACHE'], 'crawler') === false) {
			return false;
		}

		// CLI will bypass this check as crawler library can always do the 428 check
		if (defined('LITESPEED_CLI')) {
			return true;
		}

		return true;
	}

	/**
	 * Check action
	 *
	 * @since 1.1.0
	 * @access public
	 * @return string
	 */
	public static function get_action() {
		if (!isset(self::$_action)) {
			self::$_action = false;
			self::cls()->verify_action();
			if (self::$_action) {
				defined('LSCWP_LOG') && Debug2::debug('[Router] LSCWP_CTRL verified: ' . var_export(self::$_action, true));
			}
		}
		return self::$_action;
	}

	/**
	 * Check if is logged in
	 *
	 * @since 1.1.3
	 * @access public
	 * @return boolean
	 */
	public static function is_logged_in() {
		if (!isset(self::$_is_logged_in)) {
			self::$_is_logged_in = is_user_logged_in();
		}
		return self::$_is_logged_in;
	}

	/**
	 * Check if is ajax call
	 *
	 * @since 1.1.0
	 * @access public
	 * @return boolean
	 */
	public static function is_ajax() {
		if (!isset(self::$_is_ajax)) {
			self::$_is_ajax = wp_doing_ajax();
		}
		return self::$_is_ajax;
	}

	/**
	 * Check if is admin ip
	 *
	 * @since 1.1.0
	 * @access public
	 * @return boolean
	 */
	public function is_admin_ip() {
		if (!isset(self::$_is_admin_ip)) {
			$ips = $this->conf(self::O_DEBUG_IPS);

			self::$_is_admin_ip = $this->ip_access($ips);
		}
		return self::$_is_admin_ip;
	}

	/**
	 * Get type value
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function verify_type() {
		if (empty($_REQUEST[self::TYPE])) {
			Debug2::debug('[Router] no type', 2);
			return false;
		}

		Debug2::debug('[Router] parsed type: ' . $_REQUEST[self::TYPE], 2);

		return $_REQUEST[self::TYPE];
	}

	/**
	 * Check privilege and nonce for the action
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function verify_action() {
		if (empty($_REQUEST[self::ACTION])) {
			Debug2::debug2('[Router] LSCWP_CTRL bypassed empty');
			return;
		}

		$action = stripslashes($_REQUEST[self::ACTION]);

		if (!$action) {
			return;
		}

		$_is_public_action = false;

		// Each action must have a valid nonce unless its from admin ip and is public action
		// Validate requests nonce (from admin logged in page or cli)
		if (!$this->verify_nonce($action)) {
			// check if it is from admin ip
			if (!$this->is_admin_ip()) {
				Debug2::debug('[Router] LSCWP_CTRL query string - did not match admin IP: ' . $action);
				return;
			}

			// check if it is public action
			if (
				!in_array($action, array(
					Core::ACTION_QS_NOCACHE,
					Core::ACTION_QS_PURGE,
					Core::ACTION_QS_PURGE_SINGLE,
					Core::ACTION_QS_SHOW_HEADERS,
					Core::ACTION_QS_PURGE_ALL,
					Core::ACTION_QS_PURGE_EMPTYCACHE,
				))
			) {
				Debug2::debug('[Router] LSCWP_CTRL query string - did not match admin IP Actions: ' . $action);
				return;
			}

			if (apply_filters('litespeed_qs_forbidden', false)) {
				Debug2::debug('[Router] LSCWP_CTRL forbidden by hook litespeed_qs_forbidden');
				return;
			}

			$_is_public_action = true;
		}

		/* Now it is a valid action, lets log and check the permission */
		Debug2::debug('[Router] LSCWP_CTRL: ' . $action);

		// OK, as we want to do something magic, lets check if its allowed
		$_is_multisite       = is_multisite();
		$_is_network_admin   = $_is_multisite && is_network_admin();
		$_can_network_option = $_is_network_admin && current_user_can('manage_network_options');
		$_can_option         = current_user_can('manage_options');

		switch ($action) {
			case self::ACTION_SAVE_SETTINGS_NETWORK: // Save network settings
            if ($_can_network_option) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_PURGE_BY:
            if (defined('LITESPEED_ON') && ($_can_network_option || $_can_option || self::is_ajax())) {
					// here may need more security
					self::$_action = $action;
				}
				return;

			case self::ACTION_DB_OPTM:
            if ($_can_network_option || $_can_option) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_PURGE_EMPTYCACHE: // todo: moved to purge.cls type action
            if ((defined('LITESPEED_ON') || $_is_network_admin) && ($_can_network_option || (!$_is_multisite && $_can_option))) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_QS_NOCACHE:
			case Core::ACTION_QS_PURGE:
			case Core::ACTION_QS_PURGE_SINGLE:
			case Core::ACTION_QS_SHOW_HEADERS:
			case Core::ACTION_QS_PURGE_ALL:
			case Core::ACTION_QS_PURGE_EMPTYCACHE:
            if (defined('LITESPEED_ON') && ($_is_public_action || self::is_ajax())) {
					self::$_action = $action;
				}
				return;

			case self::ACTION_ADMIN_DISPLAY:
			case self::ACTION_PLACEHOLDER:
			case self::ACTION_AVATAR:
			case self::ACTION_IMG_OPTM:
			case self::ACTION_CLOUD:
			case self::ACTION_CDN_CLOUDFLARE:
			case self::ACTION_CRAWLER:
			case self::ACTION_PRESET:
			case self::ACTION_IMPORT:
			case self::ACTION_REPORT:
			case self::ACTION_CSS:
			case self::ACTION_UCSS:
			case self::ACTION_VPI:
			case self::ACTION_CONF:
			case self::ACTION_ACTIVATION:
			case self::ACTION_HEALTH:
			case self::ACTION_SAVE_SETTINGS: // Save settings
            if ($_can_option && !$_is_network_admin) {
					self::$_action = $action;
				}
				return;

			case self::ACTION_PURGE:
			case self::ACTION_DEBUG2:
            if ($_can_network_option || $_can_option) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_DISMISS:
            /**
             * Non ajax call can dismiss too
             *
             * @since  2.9
             */
            // if ( self::is_ajax() ) {
            self::$_action = $action;
            // }
				return;

			default:
            Debug2::debug('[Router] LSCWP_CTRL match failed: ' . $action);
				return;
		}
	}

	/**
	 * Verify nonce
	 *
	 * @since 1.1.0
	 * @access public
	 * @param  string $action
	 * @return bool
	 */
	public function verify_nonce( $action ) {
		if (!isset($_REQUEST[self::NONCE]) || !wp_verify_nonce($_REQUEST[self::NONCE], $action)) {
			return false;
		} else {
			return true;
		}
	}

	/**
	 * Check if the ip is in the range
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function ip_access( $ip_list ) {
		if (!$ip_list) {
			return false;
		}
		if (!isset(self::$_ip)) {
			self::$_ip = self::get_ip();
		}

		if (!self::$_ip) {
			return false;
		}
		// $uip = explode('.', $_ip);
		// if(empty($uip) || count($uip) != 4) Return false;
		// foreach($ip_list as $key => $ip) $ip_list[$key] = explode('.', trim($ip));
		// foreach($ip_list as $key => $ip) {
		// if(count($ip) != 4) continue;
		// for($i = 0; $i <= 3; $i++) if($ip[$i] == '*') $ip_list[$key][$i] = $uip[$i];
		// }
		return in_array(self::$_ip, $ip_list);
	}

	/**
	 * Get client ip
	 *
	 * @since 1.1.0
	 * @since  1.6.5 changed to public
	 * @access public
	 * @return string
	 */
	public static function get_ip() {
		$_ip = '';
		// if ( function_exists( 'apache_request_headers' ) ) {
		// $apache_headers = apache_request_headers();
		// $_ip = ! empty( $apache_headers['True-Client-IP'] ) ? $apache_headers['True-Client-IP'] : false;
		// if ( ! $_ip ) {
		// $_ip = ! empty( $apache_headers['X-Forwarded-For'] ) ? $apache_headers['X-Forwarded-For'] : false;
		// $_ip = explode( ',', $_ip );
		// $_ip = $_ip[ 0 ];
		// }

		// }

		if (!$_ip) {
			$_ip = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : false;
		}
		return $_ip;
	}

	/**
	 * Check if opcode cache is enabled
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public static function opcache_enabled() {
		return function_exists('opcache_reset') && ini_get('opcache.enable');
	}

	/**
	 * Check if opcode cache is restricted and file that is requesting.
	 * https://www.php.net/manual/en/opcache.configuration.php#ini.opcache.restrict-api
	 *
	 * @since  7.3
	 * @access public
	 */
	public static function opcache_restricted($file)
	{
		$restrict_value = ini_get('opcache.restrict_api');
		if ($restrict_value) {
			if ( !$file || false === strpos($restrict_value, $file) ) {
				return true;
			}
		}

		return false;
	}

	/**
	 * Handle static files
	 *
	 * @since  3.0
	 */
	public function serve_static() {
		if (!empty($_SERVER['SCRIPT_URI'])) {
			if (strpos($_SERVER['SCRIPT_URI'], LITESPEED_STATIC_URL . '/') !== 0) {
				return;
			}
			$path = substr($_SERVER['SCRIPT_URI'], strlen(LITESPEED_STATIC_URL . '/'));
		} elseif (!empty($_SERVER['REQUEST_URI'])) {
			$static_path = parse_url(LITESPEED_STATIC_URL, PHP_URL_PATH) . '/';
			if (strpos($_SERVER['REQUEST_URI'], $static_path) !== 0) {
				return;
			}
			$path = substr(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), strlen($static_path));
		} else {
			return;
		}

		$path = explode('/', $path, 2);

		if (empty($path[0]) || empty($path[1])) {
			return;
		}

		switch ($path[0]) {
			case 'avatar':
            $this->cls('Avatar')->serve_static($path[1]);
				break;

			case 'localres':
            $this->cls('Localization')->serve_static($path[1]);
				break;

			default:
				break;
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * This is different than other handlers
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler( $cls ) {
		if (!in_array($cls, self::$_HANDLERS)) {
			return;
		}

		return $this->cls($cls)->handler();
	}
}
<?php
/**
 * The page health
 *
 * @since      3.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined('WPINC') || exit();

class Health extends Base {

	const TYPE_SPEED = 'speed';
	const TYPE_SCORE = 'score';

	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_summary = self::get_summary();
	}

	/**
	 * Test latest speed
	 *
	 * @since 3.0
	 */
	private function _ping( $type ) {
		$data = array( 'action' => $type );

		$json = Cloud::post(Cloud::SVC_HEALTH, $data, 600);

		if (empty($json['data']['before']) || empty($json['data']['after'])) {
			Debug2::debug('[Health] ❌ no data');
			return false;
		}

		$this->_summary[$type . '.before'] = $json['data']['before'];
		$this->_summary[$type . '.after']  = $json['data']['after'];

		self::save_summary();

		Debug2::debug('[Health] saved result');
	}

	/**
	 * Generate scores
	 *
	 * @since 3.0
	 */
	public function scores() {
		$speed_before = $speed_after = $speed_improved = 0;
		if (!empty($this->_summary['speed.before']) && !empty($this->_summary['speed.after'])) {
			// Format loading time
			$speed_before = $this->_summary['speed.before'] / 1000;
			if ($speed_before < 0.01) {
				$speed_before = 0.01;
			}
			$speed_before = number_format($speed_before, 2);

			$speed_after = $this->_summary['speed.after'] / 1000;
			if ($speed_after < 0.01) {
				$speed_after = number_format($speed_after, 3);
			} else {
				$speed_after = number_format($speed_after, 2);
			}

			$speed_improved = (($this->_summary['speed.before'] - $this->_summary['speed.after']) * 100) / $this->_summary['speed.before'];
			if ($speed_improved > 99) {
				$speed_improved = number_format($speed_improved, 2);
			} else {
				$speed_improved = number_format($speed_improved);
			}
		}

		$score_before = $score_after = $score_improved = 0;
		if (!empty($this->_summary['score.before']) && !empty($this->_summary['score.after'])) {
			$score_before = $this->_summary['score.before'];
			$score_after  = $this->_summary['score.after'];

			// Format Score
			$score_improved = (($score_after - $score_before) * 100) / $score_after;
			if ($score_improved > 99) {
				$score_improved = number_format($score_improved, 2);
			} else {
				$score_improved = number_format($score_improved);
			}
		}

		return array(
			'speed_before' => $speed_before,
			'speed_after' => $speed_after,
			'speed_improved' => $speed_improved,
			'score_before' => $score_before,
			'score_after' => $score_after,
			'score_improved' => $score_improved,
		);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_SPEED:
			case self::TYPE_SCORE:
            $this->_ping($type);
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The core plugin config class.
 *
 * This maintains all the options and settings for this plugin.
 *
 * @since       1.0.0
 * @since       1.5 Moved into /inc
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Conf extends Base {

	const TYPE_SET = 'set';

	private $_updated_ids = array();
	private $_is_primary  = false;

	/**
	 * Specify init logic to avoid infinite loop when calling conf.cls instance
	 *
	 * @since  3.0
	 * @access public
	 */
	public function init() {
		// Check if conf exists or not. If not, create them in DB (won't change version if is converting v2.9- data)
		// Conf may be stale, upgrade later
		$this->_conf_db_init();

		/**
		 * Detect if has quic.cloud set
		 *
		 * @since  2.9.7
		 */
		if ($this->conf(self::O_CDN_QUIC)) {
			!defined('LITESPEED_ALLOWED') && define('LITESPEED_ALLOWED', true);
		}

		add_action('litespeed_conf_append', array( $this, 'option_append' ), 10, 2);
		add_action('litespeed_conf_force', array( $this, 'force_option' ), 10, 2);

		$this->define_cache();
	}

	/**
	 * Init conf related data
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _conf_db_init() {
		/**
		 * Try to load options first, network sites can override this later
		 *
		 * NOTE: Load before run `conf_upgrade()` to avoid infinite loop when getting conf in `conf_upgrade()`
		 */
		$this->load_options();

		// Check if debug is on
		// Init debug as early as possible
		if ($this->conf(Base::O_DEBUG)) {
			$this->cls('Debug2')->init();
		}

		$ver = $this->conf(self::_VER);

		/**
		 * Version is less than v3.0, or, is a new installation
		 */
		$ver_check_tag = '';
		if (!$ver) {
			// Try upgrade first (network will upgrade inside too)
			$ver_check_tag = Data::cls()->try_upgrade_conf_3_0();
		} else {
			defined('LSCWP_CUR_V') || define('LSCWP_CUR_V', $ver);

			/**
			 * Upgrade conf
			 */
			if ($ver != Core::VER) {
				// Plugin version will be set inside
				// Site plugin upgrade & version change will do in load_site_conf
				$ver_check_tag = Data::cls()->conf_upgrade($ver);
			}
		}

		/**
		 * Sync latest new options
		 */
		if (!$ver || $ver != Core::VER) {
			// Load default values
			$this->load_default_vals();
			if (!$ver) {
				// New install
				$this->set_conf(self::$_default_options);

				$ver_check_tag .= ' activate' . (defined('LSCWP_REF') ? '_' . LSCWP_REF : '');
			}

			// Init new default/missing options
			foreach (self::$_default_options as $k => $v) {
				// If the option existed, bypass updating
				// Bcos we may ask clients to deactivate for debug temporarily, we need to keep the current cfg in deactivation, hence we need to only try adding default cfg when activating.
				self::add_option($k, $v);
			}

			// Force correct version in case a rare unexpected case that `_ver` exists but empty
			self::update_option(Base::_VER, Core::VER);

			if ($ver_check_tag) {
				Cloud::version_check($ver_check_tag);
			}
		}

		/**
		 * Network sites only
		 *
		 * Override conf if is network subsites and chose `Use Primary Config`
		 */
		$this->_try_load_site_options();

		// Check if debug is on
		// Init debug as early as possible
		if ($this->conf(Base::O_DEBUG)) {
			$this->cls('Debug2')->init();
		}

		// Mark as conf loaded
		defined('LITESPEED_CONF_LOADED') || define('LITESPEED_CONF_LOADED', true);

		if (!$ver || $ver != Core::VER) {
			// Only trigger once in upgrade progress, don't run always
			$this->update_confs(); // Files only get corrected in activation or saving settings actions.
		}
	}

	/**
	 * Load all latest options from DB
	 *
	 * @since  3.0
	 * @access public
	 */
	public function load_options( $blog_id = null, $dry_run = false ) {
		$options = array();
		foreach (self::$_default_options as $k => $v) {
			if (!is_null($blog_id)) {
				$options[$k] = self::get_blog_option($blog_id, $k, $v);
			} else {
				$options[$k] = self::get_option($k, $v);
			}

			// Correct value type
			$options[$k] = $this->type_casting($options[$k], $k);
		}

		if ($dry_run) {
			return $options;
		}

		// Bypass site special settings
		if ($blog_id !== null) {
			// This is to load the primary settings ONLY
			// These options are the ones that can be overwritten by primary
			$options = array_diff_key($options, array_flip(self::$SINGLE_SITE_OPTIONS));

			$this->set_primary_conf($options);
		} else {
			$this->set_conf($options);
		}

		// Append const options
		if (defined('LITESPEED_CONF') && LITESPEED_CONF) {
			foreach (self::$_default_options as $k => $v) {
				$const = Base::conf_const($k);
				if (defined($const)) {
					$this->set_const_conf($k, $this->type_casting(constant($const), $k));
				}
			}
		}
	}

	/**
	 * For multisite installations, the single site options need to be updated with the network wide options.
	 *
	 * @since 1.0.13
	 * @access private
	 */
	private function _try_load_site_options() {
		if (!$this->_if_need_site_options()) {
			return;
		}

		$this->_conf_site_db_init();

		$this->_is_primary = get_current_blog_id() == BLOG_ID_CURRENT_SITE;

		// If network set to use primary setting
		if ($this->network_conf(self::NETWORK_O_USE_PRIMARY) && !$this->_is_primary) {
			// subsites or network admin
			// Get the primary site settings
			// If it's just upgraded, 2nd blog is being visited before primary blog, can just load default config (won't hurt as this could only happen shortly)
			$this->load_options(BLOG_ID_CURRENT_SITE);
		}

		// Overwrite single blog options with site options
		foreach (self::$_default_options as $k => $v) {
			if (!$this->has_network_conf($k)) {
				continue;
			}
			// $this->_options[ $k ] = $this->_network_options[ $k ];

			// Special handler to `Enable Cache` option if the value is set to OFF
			if ($k == self::O_CACHE) {
				if ($this->_is_primary) {
					if ($this->conf($k) != $this->network_conf($k)) {
						if ($this->conf($k) != self::VAL_ON2) {
							continue;
						}
					}
				} elseif ($this->network_conf(self::NETWORK_O_USE_PRIMARY)) {
					if ($this->has_primary_conf($k) && $this->primary_conf($k) != self::VAL_ON2) {
						// This case will use primary_options override always
						continue;
					}
				} elseif ($this->conf($k) != self::VAL_ON2) {
					continue;
				}
			}

			// primary_options will store primary settings + network settings, OR, store the network settings for subsites
			$this->set_primary_conf($k, $this->network_conf($k));
		}
		// var_dump($this->_options);
	}

	/**
	 * Check if needs to load site_options for network sites
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _if_need_site_options() {
		if (!is_multisite()) {
			return false;
		}

		// Check if needs to use site_options or not
		// todo: check if site settings are separate bcos it will affect .htaccess

		/**
		 * In case this is called outside the admin page
		 *
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if (!function_exists('is_plugin_active_for_network')) {
			require_once ABSPATH . '/wp-admin/includes/plugin.php';
		}
		// If is not activated on network, it will not have site options
		if (!is_plugin_active_for_network(Core::PLUGIN_FILE)) {
			if ((int) $this->conf(self::O_CACHE) == self::VAL_ON2) {
				// Default to cache on
				$this->set_conf(self::_CACHE, true);
			}
			return false;
		}

		return true;
	}

	/**
	 * Init site conf and upgrade if necessary
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _conf_site_db_init() {
		$this->load_site_options();

		$ver = $this->network_conf(self::_VER);

		/**
		 * Don't upgrade or run new installations other than from backend visit
		 * In this case, just use default conf
		 */
		if (!$ver || $ver != Core::VER) {
			if (!is_admin() && !defined('LITESPEED_CLI')) {
				$this->set_network_conf($this->load_default_site_vals());
				return;
			}
		}

		/**
		 * Upgrade conf
		 */
		if ($ver && $ver != Core::VER) {
			// Site plugin version will change inside
			Data::cls()->conf_site_upgrade($ver);
		}

		/**
		 * Is a new installation
		 */
		if (!$ver || $ver != Core::VER) {
			// Load default values
			$this->load_default_site_vals();

			// Init new default/missing options
			foreach (self::$_default_site_options as $k => $v) {
				// If the option existed, bypass updating
				self::add_site_option($k, $v);
			}
		}
	}

	/**
	 * Get the plugin's site wide options.
	 *
	 * If the site wide options are not set yet, set it to default.
	 *
	 * @since 1.0.2
	 * @access public
	 */
	public function load_site_options() {
		if (!is_multisite()) {
			return null;
		}

		// Load all site options
		foreach (self::$_default_site_options as $k => $v) {
			$val = self::get_site_option($k, $v);
			$val = $this->type_casting($val, $k, true);
			$this->set_network_conf($k, $val);
		}
	}

	/**
	 * Append a 3rd party option to default options
	 *
	 * This will not be affected by network use primary site setting.
	 *
	 * NOTE: If it is a multi switch option, need to call `_conf_multi_switch()` first
	 *
	 * @since  3.0
	 * @access public
	 */
	public function option_append( $name, $default ) {
		self::$_default_options[$name] = $default;
		$this->set_conf($name, self::get_option($name, $default));
		$this->set_conf($name, $this->type_casting($this->conf($name), $name));
	}

	/**
	 * Force an option to a certain value
	 *
	 * @since  2.6
	 * @access public
	 */
	public function force_option( $k, $v ) {
		if (!$this->has_conf($k)) {
			return;
		}

		$v = $this->type_casting($v, $k);

		if ($this->conf($k) === $v) {
			return;
		}

		Debug2::debug("[Conf] ** $k forced from " . var_export($this->conf($k), true) . ' to ' . var_export($v, true));

		$this->set_conf($k, $v);
	}

	/**
	 * Define `_CACHE` const in options ( for both single and network )
	 *
	 * @since  3.0
	 * @access public
	 */
	public function define_cache() {
		// Init global const cache on setting
		$this->set_conf(self::_CACHE, false);
		if ((int) $this->conf(self::O_CACHE) == self::VAL_ON || $this->conf(self::O_CDN_QUIC)) {
			$this->set_conf(self::_CACHE, true);
		}

		// Check network
		if (!$this->_if_need_site_options()) {
			// Set cache on
			$this->_define_cache_on();
			return;
		}

		// If use network setting
		if ((int) $this->conf(self::O_CACHE) == self::VAL_ON2 && $this->network_conf(self::O_CACHE)) {
			$this->set_conf(self::_CACHE, true);
		}

		$this->_define_cache_on();
	}

	/**
	 * Define `LITESPEED_ON`
	 *
	 * @since 2.1
	 * @access private
	 */
	private function _define_cache_on() {
		if (!$this->conf(self::_CACHE)) {
			return;
		}

		defined('LITESPEED_ALLOWED') && !defined('LITESPEED_ON') && define('LITESPEED_ON', true);
	}

	/**
	 * Get an option value
	 *
	 * @since  3.0
	 * @access public
	 * @deprecated 4.0 Use $this->conf() instead
	 */
	public static function val( $id, $ori = false ) {
		error_log('Called deprecated function \LiteSpeed\Conf::val(). Please use API call instead.');
		return self::cls()->conf($id, $ori);
	}

	/**
	 * Save option
	 *
	 * @since  3.0
	 * @access public
	 */
	public function update_confs( $the_matrix = false ) {
		if ($the_matrix) {
			foreach ($the_matrix as $id => $val) {
				$this->update($id, $val);
			}
		}

		if ($this->_updated_ids) {
			foreach ($this->_updated_ids as $id) {
				// Check if need to do a purge all or not
				if ($this->_conf_purge_all($id)) {
					Purge::purge_all('conf changed [id] ' . $id);
				}

				// Check if need to purge a tag
				if ($tag = $this->_conf_purge_tag($id)) {
					Purge::add($tag);
				}

				// Update cron
				if ($this->_conf_cron($id)) {
					$this->cls('Task')->try_clean($id);
				}

				// Reset crawler bypassed list when any of the options WebP replace, guest mode, or cache mobile got changed
				if ($id == self::O_IMG_OPTM_WEBP || $id == self::O_GUEST || $id == self::O_CACHE_MOBILE) {
					$this->cls('Crawler')->clear_disabled_list();
				}
			}
		}

		do_action('litespeed_update_confs', $the_matrix);

		// Update related tables
		$this->cls('Data')->correct_tb_existence();

		// Update related files
		$this->cls('Activation')->update_files();

		/**
		 * CDN related actions - Cloudflare
		 */
		$this->cls('CDN\Cloudflare')->try_refresh_zone();

		/**
		 * CDN related actions - QUIC.cloud
		 *
		 * @since 2.3
		 */
		$this->cls('CDN\Quic')->try_sync_conf();
	}

	/**
	 * Save option
	 *
	 * Note: this is direct save, won't trigger corresponding file update or data sync. To save settings normally, always use `Conf->update_confs()`
	 *
	 * @since  3.0
	 * @access public
	 */
	public function update( $id, $val ) {
		// Bypassed this bcos $this->_options could be changed by force_option()
		// if ( $this->_options[ $id ] === $val ) {
		// return;
		// }

		if ($id == self::_VER) {
			return;
		}

		if ($id == self::O_SERVER_IP) {
			if ($val && !Utility::valid_ipv4($val)) {
				$msg = sprintf(__('Saving option failed. IPv4 only for %s.', 'litespeed-cache'), Lang::title(Base::O_SERVER_IP));
				Admin_Display::error($msg);
				return;
			}
		}

		if (!array_key_exists($id, self::$_default_options)) {
			defined('LSCWP_LOG') && Debug2::debug('[Conf] Invalid option ID ' . $id);
			return;
		}

		if ($val && $this->_conf_pswd($id) && !preg_match('/[^\*]/', $val)) {
			return;
		}

		// Special handler for CDN Original URLs
		if ($id == self::O_CDN_ORI && !$val) {
			$site_url = site_url('/');
			$parsed   = parse_url($site_url);
			$site_url = str_replace($parsed['scheme'] . ':', '', $site_url);

			$val = $site_url;
		}

		// Validate type
		$val = $this->type_casting($val, $id);

		// Save data
		self::update_option($id, $val);

		// Handle purge if setting changed
		if ($this->conf($id) != $val) {
			$this->_updated_ids[] = $id;

			// Check if need to fire a purge or not (Here has to stay inside `update()` bcos need comparing old value)
			if ($this->_conf_purge($id)) {
				$diff  = array_diff($val, $this->conf($id));
				$diff2 = array_diff($this->conf($id), $val);
				$diff  = array_merge($diff, $diff2);
				// If has difference
				foreach ($diff as $v) {
					$v = ltrim($v, '^');
					$v = rtrim($v, '$');
					$this->cls('Purge')->purge_url($v);
				}
			}
		}

		// Update in-memory data
		$this->set_conf($id, $val);
	}

	/**
	 * Save network option
	 *
	 * @since  3.0
	 * @access public
	 */
	public function network_update( $id, $val ) {
		if (!array_key_exists($id, self::$_default_site_options)) {
			defined('LSCWP_LOG') && Debug2::debug('[Conf] Invalid network option ID ' . $id);
			return;
		}

		if ($val && $this->_conf_pswd($id) && !preg_match('/[^\*]/', $val)) {
			return;
		}

		// Validate type
		if (is_bool(self::$_default_site_options[$id])) {
			$max = $this->_conf_multi_switch($id);
			if ($max && $val > 1) {
				$val %= $max + 1;
			} else {
				$val = (bool) $val;
			}
		} elseif (is_array(self::$_default_site_options[$id])) {
			// from textarea input
			if (!is_array($val)) {
				$val = Utility::sanitize_lines($val, $this->_conf_filter($id));
			}
		} elseif (!is_string(self::$_default_site_options[$id])) {
			$val = (int) $val;
		} else {
			// Check if the string has a limit set
			$val = $this->_conf_string_val($id, $val);
		}

		// Save data
		self::update_site_option($id, $val);

		// Handle purge if setting changed
		if ($this->network_conf($id) != $val) {
			// Check if need to do a purge all or not
			if ($this->_conf_purge_all($id)) {
				Purge::purge_all('[Conf] Network conf changed [id] ' . $id);
			}

			// Update in-memory data
			$this->set_network_conf($id, $val);
		}

		// No need to update cron here, Cron will register in each init

		if ($this->has_conf($id)) {
			$this->set_conf($id, $val);
		}
	}

	/**
	 * Check if one user role is in exclude optimization group settings
	 *
	 * @since 1.6
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_optm_exc_roles( $role = null ) {
		// Get user role
		if ($role === null) {
			$role = Router::get_role();
		}

		if (!$role) {
			return false;
		}

		$roles = explode(',', $role);
		$found = array_intersect($roles, $this->conf(self::O_OPTM_EXC_ROLES));

		return $found ? implode(',', $found) : false;
	}

	/**
	 * Set one config value directly
	 *
	 * @since  2.9
	 * @access private
	 */
	private function _set_conf() {
		/**
		 * NOTE: For URL Query String setting,
		 *      1. If append lines to an array setting e.g. `cache-force_uri`, use `set[cache-force_uri][]=the_url`.
		 *      2. If replace the array setting with one line, use `set[cache-force_uri]=the_url`.
		 *      3. If replace the array setting with multi lines value, use 2 then 1.
		 */
		if (empty($_GET[self::TYPE_SET]) || !is_array($_GET[self::TYPE_SET])) {
			return;
		}

		$the_matrix = array();
		foreach ($_GET[self::TYPE_SET] as $id => $v) {
			if (!$this->has_conf($id)) {
				continue;
			}

			// Append new item to array type settings
			if (is_array($v) && is_array($this->conf($id))) {
				$v = array_merge($this->conf($id), $v);

				Debug2::debug('[Conf] Appended to settings [' . $id . ']: ' . var_export($v, true));
			} else {
				Debug2::debug('[Conf] Set setting [' . $id . ']: ' . var_export($v, true));
			}

			$the_matrix[$id] = $v;
		}

		if (!$the_matrix) {
			return;
		}

		$this->update_confs($the_matrix);

		$msg = __('Changed setting successfully.', 'litespeed-cache');
		Admin_Display::success($msg);

		// Redirect if changed frontend URL
		if (!empty($_GET['redirect'])) {
			wp_redirect($_GET['redirect']);
			exit();
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.9
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_SET:
            $this->_set_conf();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The avatar cache class
 *
 * @since       3.0
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Avatar extends Base {

	const TYPE_GENERATE = 'generate';

	private $_conf_cache_ttl;
	private $_tb;

	private $_avatar_realtime_gen_dict = array();
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  1.4
	 */
	public function __construct() {
		if (!$this->conf(self::O_DISCUSS_AVATAR_CACHE)) {
			return;
		}

		Debug2::debug2('[Avatar] init');

		$this->_tb = $this->cls('Data')->tb('avatar');

		$this->_conf_cache_ttl = $this->conf(self::O_DISCUSS_AVATAR_CACHE_TTL);

		add_filter('get_avatar_url', array( $this, 'crawl_avatar' ));

		$this->_summary = self::get_summary();
	}

	/**
	 * Check if need db table or not
	 *
	 * @since 3.0
	 * @access public
	 */
	public function need_db() {
		if ($this->conf(self::O_DISCUSS_AVATAR_CACHE)) {
			return true;
		}

		return false;
	}
	/**
	 * Get gravatar URL from DB and regenerate
	 *
	 * @since  3.0
	 * @access public
	 */
	public function serve_static( $md5 ) {
		global $wpdb;

		Debug2::debug('[Avatar] is avatar request');

		if (strlen($md5) !== 32) {
			Debug2::debug('[Avatar] wrong md5 ' . $md5);
			return;
		}

		$q   = "SELECT url FROM `$this->_tb` WHERE md5=%s";
		$url = $wpdb->get_var($wpdb->prepare($q, $md5));

		if (!$url) {
			Debug2::debug('[Avatar] no matched url for md5 ' . $md5);
			return;
		}

		$url = $this->_generate($url);

		wp_redirect($url);
		exit();
	}

	/**
	 * Localize gravatar
	 *
	 * @since  3.0
	 * @access public
	 */
	public function crawl_avatar( $url ) {
		if (!$url) {
			return $url;
		}

		// Check if its already in dict or not
		if (!empty($this->_avatar_realtime_gen_dict[$url])) {
			Debug2::debug2('[Avatar] already in dict [url] ' . $url);

			return $this->_avatar_realtime_gen_dict[$url];
		}

		$realpath = $this->_realpath($url);
		if (file_exists($realpath) && time() - filemtime($realpath) <= $this->_conf_cache_ttl) {
			Debug2::debug2('[Avatar] cache file exists [url] ' . $url);
			return $this->_rewrite($url, filemtime($realpath));
		}

		if (!strpos($url, 'gravatar.com')) {
			return $url;
		}

		// Send request
		if (!empty($this->_summary['curr_request']) && time() - $this->_summary['curr_request'] < 300) {
			Debug2::debug2('[Avatar] Bypass generating due to interval limit [url] ' . $url);
			return $url;
		}

		// Generate immediately
		$this->_avatar_realtime_gen_dict[$url] = $this->_generate($url);

		return $this->_avatar_realtime_gen_dict[$url];
	}

	/**
	 * Read last time generated info
	 *
	 * @since  3.0
	 * @access public
	 */
	public function queue_count() {
		global $wpdb;

		// If var not exists, mean table not exists // todo: not true
		if (!$this->_tb) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb` WHERE dateline<" . (time() - $this->_conf_cache_ttl);
		return $wpdb->get_var($q);
	}

	/**
	 * Get the final URL of local avatar
	 *
	 * Check from db also
	 *
	 * @since  3.0
	 */
	private function _rewrite( $url, $time = null ) {
		return LITESPEED_STATIC_URL . '/avatar/' . $this->_filepath($url) . ($time ? '?ver=' . $time : '');
	}

	/**
	 * Generate realpath of the cache file
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _realpath( $url ) {
		return LITESPEED_STATIC_DIR . '/avatar/' . $this->_filepath($url);
	}

	/**
	 * Get filepath
	 *
	 * @since  4.0
	 */
	private function _filepath( $url ) {
		$filename = md5($url) . '.jpg';
		if (is_multisite()) {
			$filename = get_current_blog_id() . '/' . $filename;
		}
		return $filename;
	}

	/**
	 * Cron generation
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function cron( $force = false ) {
		global $wpdb;

		$_instance = self::cls();
		if (!$_instance->queue_count()) {
			Debug2::debug('[Avatar] no queue');
			return;
		}

		// For cron, need to check request interval too
		if (!$force) {
			if (!empty($_instance->_summary['curr_request']) && time() - $_instance->_summary['curr_request'] < 300) {
				Debug2::debug('[Avatar] curr_request too close');
				return;
			}
		}

		$q = "SELECT url FROM `$_instance->_tb` WHERE dateline < %d ORDER BY id DESC LIMIT %d";
		$q = $wpdb->prepare($q, array( time() - $_instance->_conf_cache_ttl, apply_filters('litespeed_avatar_limit', 30) ));

		$list = $wpdb->get_results($q);
		Debug2::debug('[Avatar] cron job [count] ' . count($list));

		foreach ($list as $v) {
			Debug2::debug('[Avatar] cron job [url] ' . $v->url);

			$_instance->_generate($v->url);
		}
	}

	/**
	 * Remote generator
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _generate( $url ) {
		global $wpdb;

		// Record the data

		$file = $this->_realpath($url);

		// Update request status
		self::save_summary(array( 'curr_request' => time() ));

		// Generate
		$this->_maybe_mk_cache_folder('avatar');

		$response = wp_safe_remote_get($url, array(
			'timeout' => 180,
			'stream' => true,
			'filename' => $file,
		));

		Debug2::debug('[Avatar] _generate [url] ' . $url);

		// Parse response data
		if (is_wp_error($response)) {
			$error_message = $response->get_error_message();
			file_exists($file) && unlink($file);
			Debug2::debug('[Avatar] failed to get: ' . $error_message);
			return $url;
		}

		// Save summary data
		self::save_summary(array(
			'last_spent' => time() - $this->_summary['curr_request'],
			'last_request' => $this->_summary['curr_request'],
			'curr_request' => 0,
		));

		// Update DB
		$md5     = md5($url);
		$q       = "UPDATE `$this->_tb` SET dateline=%d WHERE md5=%s";
		$existed = $wpdb->query($wpdb->prepare($q, array( time(), $md5 )));
		if (!$existed) {
			$q = "INSERT INTO `$this->_tb` SET url=%s, md5=%s, dateline=%d";
			$wpdb->query($wpdb->prepare($q, array( $url, $md5, time() )));
		}

		Debug2::debug('[Avatar] saved avatar ' . $file);

		return $this->_rewrite($url);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_GENERATE:
            self::cron(true);
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The PlaceHolder class
 *
 * @since       3.0
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Placeholder extends Base {

	const TYPE_GENERATE = 'generate';
	const TYPE_CLEAR_Q  = 'clear_q';

	private $_conf_placeholder_resp;
	private $_conf_placeholder_resp_svg;
	private $_conf_lqip;
	private $_conf_lqip_qual;
	private $_conf_lqip_min_w;
	private $_conf_lqip_min_h;
	private $_conf_placeholder_resp_color;
	private $_conf_placeholder_resp_async;
	private $_conf_ph_default;
	private $_placeholder_resp_dict = array();
	private $_ph_queue              = array();

	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_conf_placeholder_resp       = defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_MEDIA_PLACEHOLDER_RESP);
		$this->_conf_placeholder_resp_svg   = $this->conf(self::O_MEDIA_PLACEHOLDER_RESP_SVG);
		$this->_conf_lqip                   = !defined('LITESPEED_GUEST_OPTM') && $this->conf(self::O_MEDIA_LQIP);
		$this->_conf_lqip_qual              = $this->conf(self::O_MEDIA_LQIP_QUAL);
		$this->_conf_lqip_min_w             = $this->conf(self::O_MEDIA_LQIP_MIN_W);
		$this->_conf_lqip_min_h             = $this->conf(self::O_MEDIA_LQIP_MIN_H);
		$this->_conf_placeholder_resp_async = $this->conf(self::O_MEDIA_PLACEHOLDER_RESP_ASYNC);
		$this->_conf_placeholder_resp_color = $this->conf(self::O_MEDIA_PLACEHOLDER_RESP_COLOR);
		$this->_conf_ph_default             = $this->conf(self::O_MEDIA_LAZY_PLACEHOLDER) ?: LITESPEED_PLACEHOLDER;

		$this->_summary = self::get_summary();
	}

	/**
	 * Init Placeholder
	 */
	public function init() {
		Debug2::debug2('[LQIP] init');

		add_action('litspeed_after_admin_init', array( $this, 'after_admin_init' ));
	}

	/**
	 * Display column in Media
	 *
	 * @since  3.0
	 * @access public
	 */
	public function after_admin_init() {
		if ($this->_conf_lqip) {
			add_filter('manage_media_columns', array( $this, 'media_row_title' ));
			add_filter('manage_media_custom_column', array( $this, 'media_row_actions' ), 10, 2);
			add_action('litespeed_media_row_lqip', array( $this, 'media_row_con' ));
		}
	}

	/**
	 * Media Admin Menu -> LQIP col
	 *
	 * @since 3.0
	 * @access public
	 */
	public function media_row_title( $posts_columns ) {
		$posts_columns['lqip'] = __('LQIP', 'litespeed-cache');

		return $posts_columns;
	}

	/**
	 * Media Admin Menu -> LQIP Column
	 *
	 * @since 3.0
	 * @access public
	 */
	public function media_row_actions( $column_name, $post_id ) {
		if ($column_name !== 'lqip') {
			return;
		}

		do_action('litespeed_media_row_lqip', $post_id);
	}

	/**
	 * Display LQIP column
	 *
	 * @since  3.0
	 * @access public
	 */
	public function media_row_con( $post_id ) {
		$meta_value = wp_get_attachment_metadata($post_id);

		if (empty($meta_value['file'])) {
			return;
		}

		$total_files = 0;

		// List all sizes
		$all_sizes = array( $meta_value['file'] );
		$size_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
		foreach ($meta_value['sizes'] as $v) {
			$all_sizes[] = $size_path . $v['file'];
		}

		foreach ($all_sizes as $short_path) {
			$lqip_folder = LITESPEED_STATIC_DIR . '/lqip/' . $short_path;

			if (is_dir($lqip_folder)) {
				Debug2::debug('[LQIP] Found folder: ' . $short_path);

				// List all files
				foreach (scandir($lqip_folder) as $v) {
					if ($v == '.' || $v == '..') {
						continue;
					}

					if ($total_files == 0) {
						echo '<div class="litespeed-media-lqip"><img src="' .
							Str::trim_quotes(File::read($lqip_folder . '/' . $v)) .
							'" alt="' .
							sprintf(__('LQIP image preview for size %s', 'litespeed-cache'), $v) .
							'"></div>';
					}

					echo '<div class="litespeed-media-size"><a href="' . Str::trim_quotes(File::read($lqip_folder . '/' . $v)) . '" target="_blank">' . $v . '</a></div>';

					++$total_files;
				}
			}
		}

		if ($total_files == 0) {
			echo '—';
		}
	}

	/**
	 * Replace image with placeholder
	 *
	 * @since  3.0
	 * @access public
	 */
	public function replace( $html, $src, $size ) {
		// Check if need to enable responsive placeholder or not
		$this_placeholder = $this->_placeholder($src, $size) ?: $this->_conf_ph_default;

		$additional_attr = '';
		if ($this->_conf_lqip && $this_placeholder != $this->_conf_ph_default) {
			Debug2::debug2('[LQIP] Use resp LQIP [size] ' . $size);
			$additional_attr = ' data-placeholder-resp="' . Str::trim_quotes($size) . '"';
		}

		$snippet = defined('LITESPEED_GUEST_OPTM') || $this->conf(self::O_OPTM_NOSCRIPT_RM) ? '' : '<noscript>' . $html . '</noscript>';
		$html    = str_replace(array( ' src=', ' srcset=', ' sizes=' ), array( ' data-src=', ' data-srcset=', ' data-sizes=' ), $html);
		$html    = str_replace('<img ', '<img data-lazyloaded="1"' . $additional_attr . ' src="' . Str::trim_quotes($this_placeholder) . '" ', $html);
		$snippet = $html . $snippet;

		return $snippet;
	}

	/**
	 * Generate responsive placeholder
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _placeholder( $src, $size ) {
		// Low Quality Image Placeholders
		if (!$size) {
			Debug2::debug2('[LQIP] no size ' . $src);
			return false;
		}

		if (!$this->_conf_placeholder_resp) {
			return false;
		}

		// If use local generator
		if (!$this->_conf_lqip || !$this->_lqip_size_check($size)) {
			return $this->_generate_placeholder_locally($size);
		}

		Debug2::debug2('[LQIP] Resp LQIP process [src] ' . $src . ' [size] ' . $size);

		$arr_key = $size . ' ' . $src;

		// Check if its already in dict or not
		if (!empty($this->_placeholder_resp_dict[$arr_key])) {
			Debug2::debug2('[LQIP] already in dict');

			return $this->_placeholder_resp_dict[$arr_key];
		}

		// Need to generate the responsive placeholder
		$placeholder_realpath = $this->_placeholder_realpath($src, $size); // todo: give offload API
		if (file_exists($placeholder_realpath)) {
			Debug2::debug2('[LQIP] file exists');
			$this->_placeholder_resp_dict[$arr_key] = File::read($placeholder_realpath);

			return $this->_placeholder_resp_dict[$arr_key];
		}

		// Add to cron queue

		// Prevent repeated requests
		if (in_array($arr_key, $this->_ph_queue)) {
			Debug2::debug2('[LQIP] file bypass generating due to in queue');
			return $this->_generate_placeholder_locally($size);
		}

		if ($hit = Utility::str_hit_array($src, $this->conf(self::O_MEDIA_LQIP_EXC))) {
			Debug2::debug2('[LQIP] file bypass generating due to exclude setting [hit] ' . $hit);
			return $this->_generate_placeholder_locally($size);
		}

		$this->_ph_queue[] = $arr_key;

		// Send request to generate placeholder
		if (!$this->_conf_placeholder_resp_async) {
			// If requested recently, bypass
			if ($this->_summary && !empty($this->_summary['curr_request']) && time() - $this->_summary['curr_request'] < 300) {
				Debug2::debug2('[LQIP] file bypass generating due to interval limit');
				return false;
			}
			// Generate immediately
			$this->_placeholder_resp_dict[$arr_key] = $this->_generate_placeholder($arr_key);

			return $this->_placeholder_resp_dict[$arr_key];
		}

		// Prepare default svg placeholder as tmp placeholder
		$tmp_placeholder = $this->_generate_placeholder_locally($size);

		// Store it to prepare for cron
		$queue = $this->load_queue('lqip');
		if (in_array($arr_key, $queue)) {
			Debug2::debug2('[LQIP] already in queue');

			return $tmp_placeholder;
		}

		if (count($queue) > 500) {
			Debug2::debug2('[LQIP] queue is full');

			return $tmp_placeholder;
		}

		$queue[] = $arr_key;
		$this->save_queue('lqip', $queue);
		Debug2::debug('[LQIP] Added placeholder queue');

		return $tmp_placeholder;
	}

	/**
	 * Generate realpath of placeholder file
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _placeholder_realpath( $src, $size ) {
		// Use LQIP Cloud generator, each image placeholder will be separately stored

		// Compatibility with WebP and AVIF
		$src = Utility::drop_webp($src);

		$filepath_prefix = $this->_build_filepath_prefix('lqip');

		// External images will use cache folder directly
		$domain = parse_url($src, PHP_URL_HOST);
		if ($domain && !Utility::internal($domain)) {
			// todo: need to improve `util:internal()` to include `CDN::internal()`
			$md5 = md5($src);

			return LITESPEED_STATIC_DIR . $filepath_prefix . 'remote/' . substr($md5, 0, 1) . '/' . substr($md5, 1, 1) . '/' . $md5 . '.' . $size;
		}

		// Drop domain
		$short_path = Utility::att_short_path($src);

		return LITESPEED_STATIC_DIR . $filepath_prefix . $short_path . '/' . $size;
	}

	/**
	 * Cron placeholder generation
	 *
	 * @since  2.5.1
	 * @access public
	 */
	public static function cron( $continue = false ) {
		$_instance = self::cls();

		$queue = $_instance->load_queue('lqip');

		if (empty($queue)) {
			return;
		}

		// For cron, need to check request interval too
		if (!$continue) {
			if (!empty($_instance->_summary['curr_request']) && time() - $_instance->_summary['curr_request'] < 300) {
				Debug2::debug('[LQIP] Last request not done');
				return;
			}
		}

		foreach ($queue as $v) {
			Debug2::debug('[LQIP] cron job [size] ' . $v);

			$res = $_instance->_generate_placeholder($v, true);

			// Exit queue if out of quota
			if ($res === 'out_of_quota') {
				return;
			}

			// only request first one
			if (!$continue) {
				return;
			}
		}
	}

	/**
	 * Generate placeholder locally
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _generate_placeholder_locally( $size ) {
		Debug2::debug2('[LQIP] _generate_placeholder local [size] ' . $size);

		$size = explode('x', $size);

		$svg = str_replace(array( '{width}', '{height}', '{color}' ), array( $size[0], $size[1], $this->_conf_placeholder_resp_color ), $this->_conf_placeholder_resp_svg);

		return 'data:image/svg+xml;base64,' . base64_encode($svg);
	}

	/**
	 * Send to LiteSpeed API to generate placeholder
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _generate_placeholder( $raw_size_and_src, $from_cron = false ) {
		// Parse containing size and src info
		$size_and_src = explode(' ', $raw_size_and_src, 2);
		$size         = $size_and_src[0];

		if (empty($size_and_src[1])) {
			$this->_popup_and_save($raw_size_and_src);
			Debug2::debug('[LQIP] ❌ No src [raw] ' . $raw_size_and_src);
			return $this->_generate_placeholder_locally($size);
		}

		$src = $size_and_src[1];

		$file = $this->_placeholder_realpath($src, $size);

		// Local generate SVG to serve ( Repeatedly doing this here to remove stored cron queue in case the setting _conf_lqip is changed )
		if (!$this->_conf_lqip || !$this->_lqip_size_check($size)) {
			$data = $this->_generate_placeholder_locally($size);
		} else {
			$err       = false;
			$allowance = Cloud::cls()->allowance(Cloud::SVC_LQIP, $err);
			if (!$allowance) {
				Debug2::debug('[LQIP] ❌ No credit: ' . $err);
				$err && Admin_Display::error(Error::msg($err));

				if ($from_cron) {
					return 'out_of_quota';
				}

				return $this->_generate_placeholder_locally($size);
			}

			// Generate LQIP
			list($width, $height) = explode('x', $size);
			$req_data             = array(
				'width' => $width,
				'height' => $height,
				'url' => Utility::drop_webp($src),
				'quality' => $this->_conf_lqip_qual,
			);

			// CHeck if the image is 404 first
			if (File::is_404($req_data['url'])) {
				$this->_popup_and_save($raw_size_and_src, true);
				$this->_append_exc($src);
				Debug2::debug('[LQIP] 404 before request [src] ' . $req_data['url']);
				return $this->_generate_placeholder_locally($size);
			}

			// Update request status
			$this->_summary['curr_request'] = time();
			self::save_summary();

			$json = Cloud::post(Cloud::SVC_LQIP, $req_data, 120);
			if (!is_array($json)) {
				return $this->_generate_placeholder_locally($size);
			}

			if (empty($json['lqip']) || strpos($json['lqip'], 'data:image/svg+xml') !== 0) {
				// image error, pop up the current queue
				$this->_popup_and_save($raw_size_and_src, true);
				$this->_append_exc($src);
				Debug2::debug('[LQIP] wrong response format', $json);

				return $this->_generate_placeholder_locally($size);
			}

			$data = $json['lqip'];

			Debug2::debug('[LQIP] _generate_placeholder LQIP');
		}

		// Write to file
		File::save($file, $data, true);

		// Save summary data
		$this->_summary['last_spent']   = time() - $this->_summary['curr_request'];
		$this->_summary['last_request'] = $this->_summary['curr_request'];
		$this->_summary['curr_request'] = 0;
		self::save_summary();
		$this->_popup_and_save($raw_size_and_src);

		Debug2::debug('[LQIP] saved LQIP ' . $file);

		return $data;
	}

	/**
	 * Check if the size is valid to send LQIP request or not
	 *
	 * @since  3.0
	 */
	private function _lqip_size_check( $size ) {
		$size = explode('x', $size);
		if ($size[0] >= $this->_conf_lqip_min_w || $size[1] >= $this->_conf_lqip_min_h) {
			return true;
		}

		Debug2::debug2('[LQIP] Size too small');

		return false;
	}

	/**
	 * Add to LQIP exclude list
	 *
	 * @since  3.4
	 */
	private function _append_exc( $src ) {
		$val   = $this->conf(self::O_MEDIA_LQIP_EXC);
		$val[] = $src;
		$this->cls('Conf')->update(self::O_MEDIA_LQIP_EXC, $val);
		Debug2::debug('[LQIP] Appended to LQIP Excludes [URL] ' . $src);
	}

	/**
	 * Pop up the current request and save
	 *
	 * @since  3.0
	 */
	private function _popup_and_save( $raw_size_and_src, $append_to_exc = false ) {
		$queue = $this->load_queue('lqip');
		if (!empty($queue) && in_array($raw_size_and_src, $queue)) {
			unset($queue[array_search($raw_size_and_src, $queue)]);
		}

		if ($append_to_exc) {
			$size_and_src = explode(' ', $raw_size_and_src, 2);
			$this_src     = $size_and_src[1];

			// Append to lqip exc setting first
			$this->_append_exc($this_src);

			// Check if other queues contain this src or not
			if ($queue) {
				foreach ($queue as $k => $raw_size_and_src) {
					$size_and_src = explode(' ', $raw_size_and_src, 2);
					if (empty($size_and_src[1])) {
						continue;
					}

					if ($size_and_src[1] == $this_src) {
						unset($queue[$k]);
					}
				}
			}
		}

		$this->save_queue('lqip', $queue);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.5.1
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_GENERATE:
            self::cron(true);
				break;

			case self::TYPE_CLEAR_Q:
            $this->clear_q('lqip');
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php
/**
 * The preset class.
 *
 * @since  5.3.0
 */
namespace LiteSpeed;

defined('WPINC') || exit();

class Preset extends Import {

	protected $_summary;

	const MAX_BACKUPS = 10;

	const TYPE_APPLY   = 'apply';
	const TYPE_RESTORE = 'restore';

	const STANDARD_DIR = LSCWP_DIR . 'data/preset';
	const BACKUP_DIR   = LITESPEED_STATIC_DIR . '/auto-backup';

	/**
	 * Returns sorted backup names
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public static function get_backups() {
		self::init_filesystem();
		global $wp_filesystem;

		$backups = array_map(
			function ( $path ) {
				return self::basename($path['name']);
			},
			$wp_filesystem->dirlist(self::BACKUP_DIR) ?: array()
		);
		rsort($backups);

		return $backups;
	}

	/**
	 * Removes extra backup files
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public static function prune_backups() {
		$backups = self::get_backups();
		global $wp_filesystem;

		foreach (array_slice($backups, self::MAX_BACKUPS) as $backup) {
			$path = self::get_backup($backup);
			$wp_filesystem->delete($path);
			Debug2::debug('[Preset] Deleted old backup from ' . $backup);
		}
	}

	/**
	 * Returns a settings file's extensionless basename given its filesystem path
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public static function basename( $path ) {
		return basename($path, '.data');
	}

	/**
	 * Returns a standard preset's path given its extensionless basename
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public static function get_standard( $name ) {
		return path_join(self::STANDARD_DIR, $name . '.data');
	}

	/**
	 * Returns a backup's path given its extensionless basename
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public static function get_backup( $name ) {
		return path_join(self::BACKUP_DIR, $name . '.data');
	}

	/**
	 * Initializes the global $wp_filesystem object and clears stat cache
	 *
	 * @since  5.3.0
	 */
	static function init_filesystem() {
		require_once ABSPATH . '/wp-admin/includes/file.php';
		\WP_Filesystem();
		clearstatcache();
	}

	/**
	 * Init
	 *
	 * @since  5.3.0
	 */
	public function __construct() {
		Debug2::debug('[Preset] Init');
		$this->_summary = self::get_summary();
	}

	/**
	 * Applies a standard preset's settings given its extensionless basename
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public function apply( $preset ) {
		$this->make_backup($preset);

		$path   = self::get_standard($preset);
		$result = $this->import_file($path) ? $preset : 'error';

		$this->log($result);
	}

	/**
	 * Restores settings from the backup file with the given timestamp, then deletes the file
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public function restore( $timestamp ) {
		$backups = array();
		foreach (self::get_backups() as $backup) {
			if (preg_match('/^backup-' . $timestamp . '(-|$)/', $backup) === 1) {
				$backups[] = $backup;
			}
		}

		if (empty($backups)) {
			$this->log('error');
			return;
		}

		$backup = $backups[0];
		$path   = self::get_backup($backup);

		if (!$this->import_file($path)) {
			$this->log('error');
			return;
		}

		self::init_filesystem();
		global $wp_filesystem;

		$wp_filesystem->delete($path);
		Debug2::debug('[Preset] Deleted most recent backup from ' . $backup);

		$this->log('backup');
	}

	/**
	 * Saves current settings as a backup file, then prunes extra backup files
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public function make_backup( $preset ) {
		$backup = 'backup-' . time() . '-before-' . $preset;
		$data   = $this->export(true);

		$path = self::get_backup($backup);
		File::save($path, $data, true);
		Debug2::debug('[Preset] Backup saved to ' . $backup);

		self::prune_backups();
	}

	/**
	 * Tries to import from a given settings file
	 *
	 * @since  5.3.0
	 */
	function import_file( $path ) {
		$debug = function ( $result, $name ) {
			$action = $result ? 'Applied' : 'Failed to apply';
			Debug2::debug('[Preset] ' . $action . ' settings from ' . $name);
			return $result;
		};

		$name     = self::basename($path);
		$contents = file_get_contents($path);

		if (false === $contents) {
			Debug2::debug('[Preset] ❌ Failed to get file contents');
			return $debug(false, $name);
		}

		$parsed = array();
		try {
			// Check if the data is v4+
			if (strpos($contents, '["_version",') === 0) {
				$contents = explode("\n", $contents);
				foreach ($contents as $line) {
					$line = trim($line);
					if (empty($line)) {
						continue;
					}
					list($key, $value) = \json_decode($line, true);
					$parsed[$key]      = $value;
				}
			} else {
				$parsed = \json_decode(base64_decode($contents), true);
			}
		} catch (\Exception $ex) {
			Debug2::debug('[Preset] ❌ Failed to parse serialized data');
			return $debug(false, $name);
		}

		if (empty($parsed)) {
			Debug2::debug('[Preset] ❌ Nothing to apply');
			return $debug(false, $name);
		}

		$this->cls('Conf')->update_confs($parsed);

		return $debug(true, $name);
	}

	/**
	 * Updates the log
	 *
	 * @since  5.3.0
	 */
	function log( $preset ) {
		$this->_summary['preset']           = $preset;
		$this->_summary['preset_timestamp'] = time();
		self::save_summary();
	}

	/**
	 * Handles all request actions from main cls
	 *
	 * @since  5.3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_APPLY:
            $this->apply(!empty($_GET['preset']) ? $_GET['preset'] : false);
				break;

			case self::TYPE_RESTORE:
            $this->restore(!empty($_GET['timestamp']) ? $_GET['timestamp'] : false);
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The localization class.
 *
 * @since       3.3
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Localization extends Base {

	const LOG_TAG = '🛍️';

	/**
	 * Init optimizer
	 *
	 * @since  3.0
	 * @access protected
	 */
	public function init() {
		add_filter('litespeed_buffer_finalize', array( $this, 'finalize' ), 23); // After page optm
	}

	/**
	 * Localize Resources
	 *
	 * @since  3.3
	 */
	public function serve_static( $uri ) {
		$url = base64_decode($uri);

		if (!$this->conf(self::O_OPTM_LOCALIZE)) {
			// wp_redirect( $url );
			exit('Not supported');
		}

		if (substr($url, -3) !== '.js') {
			// wp_redirect( $url );
			// exit( 'Not supported ' . $uri );
		}

		$match   = false;
		$domains = $this->conf(self::O_OPTM_LOCALIZE_DOMAINS);
		foreach ($domains as $v) {
			if (!$v || strpos($v, '#') === 0) {
				continue;
			}

			$type   = 'js';
			$domain = $v;
			// Try to parse space split value
			if (strpos($v, ' ')) {
				$v = explode(' ', $v);
				if (!empty($v[1])) {
					$type   = strtolower($v[0]);
					$domain = $v[1];
				}
			}

			if (strpos($domain, 'https://') !== 0) {
				continue;
			}

			if ($type != 'js') {
				continue;
			}

			// if ( strpos( $url, $domain ) !== 0 ) {
			if ($url != $domain) {
				continue;
			}

			$match = true;
			break;
		}

		if (!$match) {
			// wp_redirect( $url );
			exit('Not supported2');
		}

		header('Content-Type: application/javascript');

		// Generate
		$this->_maybe_mk_cache_folder('localres');

		$file = $this->_realpath($url);

		self::debug('localize [url] ' . $url);
		$response = wp_safe_remote_get($url, array(
			'timeout' => 180,
			'stream' => true,
			'filename' => $file,
		));

		// Parse response data
		if (is_wp_error($response)) {
			$error_message = $response->get_error_message();
			file_exists($file) && unlink($file);
			self::debug('failed to get: ' . $error_message);
			wp_redirect($url);
			exit();
		}

		$url = $this->_rewrite($url);

		wp_redirect($url);
		exit();
	}

	/**
	 * Get the final URL of local avatar
	 *
	 * @since  4.5
	 */
	private function _rewrite( $url ) {
		return LITESPEED_STATIC_URL . '/localres/' . $this->_filepath($url);
	}

	/**
	 * Generate realpath of the cache file
	 *
	 * @since  4.5
	 * @access private
	 */
	private function _realpath( $url ) {
		return LITESPEED_STATIC_DIR . '/localres/' . $this->_filepath($url);
	}

	/**
	 * Get filepath
	 *
	 * @since  4.5
	 */
	private function _filepath( $url ) {
		$filename = md5($url) . '.js';
		if (is_multisite()) {
			$filename = get_current_blog_id() . '/' . $filename;
		}
		return $filename;
	}

	/**
	 * Localize JS/Fonts
	 *
	 * @since 3.3
	 * @access public
	 */
	public function finalize( $content ) {
		if (is_admin()) {
			return $content;
		}

		if (!$this->conf(self::O_OPTM_LOCALIZE)) {
			return $content;
		}

		$domains = $this->conf(self::O_OPTM_LOCALIZE_DOMAINS);
		if (!$domains) {
			return $content;
		}

		foreach ($domains as $v) {
			if (!$v || strpos($v, '#') === 0) {
				continue;
			}

			$type   = 'js';
			$domain = $v;
			// Try to parse space split value
			if (strpos($v, ' ')) {
				$v = explode(' ', $v);
				if (!empty($v[1])) {
					$type   = strtolower($v[0]);
					$domain = $v[1];
				}
			}

			if (strpos($domain, 'https://') !== 0) {
				continue;
			}

			if ($type != 'js') {
				continue;
			}

			$content = str_replace($domain, LITESPEED_STATIC_URL . '/localres/' . base64_encode($domain), $content);
		}

		return $content;
	}
}
<?php
/**
 * The plugin API class.
 *
 * @since       1.1.3
 * @since       1.4 Moved into /inc
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined('WPINC') || exit();

class API extends Base {

	const VERSION = Core::VER;

	const TYPE_FEED                    = Tag::TYPE_FEED;
	const TYPE_FRONTPAGE               = Tag::TYPE_FRONTPAGE;
	const TYPE_HOME                    = Tag::TYPE_HOME;
	const TYPE_PAGES                   = Tag::TYPE_PAGES;
	const TYPE_PAGES_WITH_RECENT_POSTS = Tag::TYPE_PAGES_WITH_RECENT_POSTS;
	const TYPE_HTTP                    = Tag::TYPE_HTTP;
	const TYPE_ARCHIVE_POSTTYPE        = Tag::TYPE_ARCHIVE_POSTTYPE;
	const TYPE_ARCHIVE_TERM            = Tag::TYPE_ARCHIVE_TERM;
	const TYPE_AUTHOR                  = Tag::TYPE_AUTHOR;
	const TYPE_ARCHIVE_DATE            = Tag::TYPE_ARCHIVE_DATE;
	const TYPE_BLOG                    = Tag::TYPE_BLOG;
	const TYPE_LOGIN                   = Tag::TYPE_LOGIN;
	const TYPE_URL                     = Tag::TYPE_URL;

	const TYPE_ESI = Tag::TYPE_ESI;

	const PARAM_NAME         = ESI::PARAM_NAME;
	const WIDGET_O_ESIENABLE = ESI::WIDGET_O_ESIENABLE;
	const WIDGET_O_TTL       = ESI::WIDGET_O_TTL;

	/**
	 * Instance
	 *
	 * @since  3.0
	 */
	public function __construct() {
	}

	/**
	 * Define hooks to be used in other plugins.
	 *
	 * The benefit to use hooks other than functions is no need to detach if LSCWP enabled and function existed or not anymore
	 *
	 * @since  3.0
	 */
	public function init() {
		/**
		 * Init
		 */
		// Action `litespeed_init` // @previous API::hook_init( $hook )

		/**
		 * Conf
		 */
		add_filter('litespeed_conf', array( $this, 'conf' )); // @previous API::config($id)
		// Action `litespeed_conf_append` // @previous API::conf_append( $name, $default )
		add_action('litespeed_conf_multi_switch', __NAMESPACE__ . '\Base::set_multi_switch', 10, 2);
		// Action ``litespeed_conf_force` // @previous API::force_option( $k, $v )
		add_action( 'litespeed_save_conf',  array( $this, 'save_conf'));

		/**
		 * Cache Control Hooks
		 */
		// Action `litespeed_control_finalize` // @previous API::hook_control($tags) && action `litespeed_api_control`
		add_action('litespeed_control_set_private', __NAMESPACE__ . '\Control::set_private'); // @previous  API::set_cache_private()
		add_action('litespeed_control_set_nocache', __NAMESPACE__ . '\Control::set_nocache'); // @previous  API::set_nocache( $reason = false )
		add_action('litespeed_control_set_cacheable', array( $this, 'set_cacheable' )); // Might needed if not call hook `wp` // @previous API::set_cacheable( $reason )
		add_action('litespeed_control_force_cacheable', __NAMESPACE__ . '\Control::force_cacheable'); // Set cache status to force cacheable ( Will ignore most kinds of non-cacheable conditions ) // @previous API::set_force_cacheable( $reason )
		add_action('litespeed_control_force_public', __NAMESPACE__ . '\Control::set_public_forced'); // Set cache to force public cache if cacheable ( Will ignore most kinds of non-cacheable conditions ) // @previous API::set_force_public( $reason )
		add_filter('litespeed_control_cacheable', __NAMESPACE__ . '\Control::is_cacheable', 3); // Note: Read-Only. Directly append to this filter won't work. Call actions above to set cacheable or not // @previous API::not_cacheable()
		add_action('litespeed_control_set_ttl', __NAMESPACE__ . '\Control::set_custom_ttl', 10, 2); // @previous API::set_ttl( $val )
		add_filter('litespeed_control_ttl', array( $this, 'get_ttl' ), 3); // @previous API::get_ttl()

		/**
		 * Tag Hooks
		 */
		// Action `litespeed_tag_finalize` // @previous API::hook_tag( $hook )
		add_action('litespeed_tag', __NAMESPACE__ . '\Tag::add'); // Shorter alias of `litespeed_tag_add`
		add_action('litespeed_tag_post', __NAMESPACE__ . '\Tag::add_post'); // Shorter alias of `litespeed_tag_add_post`
		add_action('litespeed_tag_widget', __NAMESPACE__ . '\Tag::add_widget'); // Shorter alias of `litespeed_tag_add_widget`
		add_action('litespeed_tag_private', __NAMESPACE__ . '\Tag::add_private'); // Shorter alias of `litespeed_tag_add_private`
		add_action('litespeed_tag_private_esi', __NAMESPACE__ . '\Tag::add_private_esi'); // Shorter alias of `litespeed_tag_add_private_esi`

		add_action('litespeed_tag_add', __NAMESPACE__ . '\Tag::add'); // @previous API::tag_add( $tag )
		add_action('litespeed_tag_add_post', __NAMESPACE__ . '\Tag::add_post');
		add_action('litespeed_tag_add_widget', __NAMESPACE__ . '\Tag::add_widget');
		add_action('litespeed_tag_add_private', __NAMESPACE__ . '\Tag::add_private'); // @previous API::tag_add_private( $tags )
		add_action('litespeed_tag_add_private_esi', __NAMESPACE__ . '\Tag::add_private_esi');

		/**
		 * Purge Hooks
		 */
		// Action `litespeed_purge_finalize` // @previous API::hook_purge($tags)
		add_action('litespeed_purge', __NAMESPACE__ . '\Purge::add'); // @previous API::purge($tags)
		add_action('litespeed_purge_all', __NAMESPACE__ . '\Purge::purge_all');
		add_action('litespeed_purge_post', array( $this, 'purge_post' )); // @previous API::purge_post( $pid )
		add_action('litespeed_purge_posttype', __NAMESPACE__ . '\Purge::purge_posttype');
		add_action('litespeed_purge_url', array( $this, 'purge_url' ));
		add_action('litespeed_purge_widget', __NAMESPACE__ . '\Purge::purge_widget');
		add_action('litespeed_purge_esi', __NAMESPACE__ . '\Purge::purge_esi');
		add_action('litespeed_purge_private', __NAMESPACE__ . '\Purge::add_private'); // @previous API::purge_private( $tags )
		add_action('litespeed_purge_private_esi', __NAMESPACE__ . '\Purge::add_private_esi');
		add_action('litespeed_purge_private_all', __NAMESPACE__ . '\Purge::add_private_all'); // @previous API::purge_private_all()
		// Action `litespeed_api_purge_post` // Triggered when purge a post // @previous API::hook_purge_post($hook)
		// Action `litespeed_purged_all` // Triggered after purged all.
		add_action('litespeed_purge_all_object', __NAMESPACE__ . '\Purge::purge_all_object');
		add_action('litespeed_purge_ucss', __NAMESPACE__ . '\Purge::purge_ucss');

		/**
		 * ESI
		 */
		// Action `litespeed_nonce` // @previous API::nonce_action( $action ) & API::nonce( $action = -1, $defence_for_html_filter = true ) // NOTE: only available after `init` hook
		add_filter('litespeed_esi_status', array( $this, 'esi_enabled' )); // Get ESI enable status // @previous API::esi_enabled()
		add_filter('litespeed_esi_url', array( $this, 'sub_esi_block' ), 10, 8); // Generate ESI block url // @previous API::esi_url( $block_id, $wrapper, $params = array(), $control = 'private,no-vary', $silence = false, $preserved = false, $svar = false, $inline_val = false )
		// Filter `litespeed_widget_default_options` // Hook widget default settings value. Currently used in Woo 3rd // @previous API::hook_widget_default_options( $hook )
		// Filter `litespeed_esi_params` // @previous API::hook_esi_param( $hook )
		// Action `litespeed_tpl_normal` // @previous API::hook_tpl_not_esi($hook) && Action `litespeed_is_not_esi_template`
		// Action `litespeed_esi_load-$block` // @usage add_action( 'litespeed_esi_load-' . $block, $hook ) // @previous API::hook_tpl_esi($block, $hook)
		add_action('litespeed_esi_combine', __NAMESPACE__ . '\ESI::combine');

		/**
		 * Vary
		 *
		 * To modify default vary, There are two ways: Action `litespeed_vary_append` or Filter `litespeed_vary`
		 */
		add_action('litespeed_vary_ajax_force', __NAMESPACE__ . '\Vary::can_ajax_vary'); // API::force_vary() -> Action `litespeed_vary_ajax_force` // Force finalize vary even if its in an AJAX call
		// Filter `litespeed_vary_curr_cookies` to generate current in use vary, which will be used for response vary header.
		// Filter `litespeed_vary_cookies` to register the final vary cookies, which will be written to rewrite rule. (litespeed_vary_curr_cookies are always equal to or less than litespeed_vary_cookies)
		// Filter `litespeed_vary` // Previous API::hook_vary_finalize( $hook )
		add_action('litespeed_vary_no', __NAMESPACE__ . '\Control::set_no_vary'); // API::set_cache_no_vary() -> Action `litespeed_vary_no` // Set cache status to no vary

		// add_filter( 'litespeed_is_mobile', __NAMESPACE__ . '\Control::is_mobile' ); // API::set_mobile() -> Filter `litespeed_is_mobile`

		/**
		 * Cloud
		 */
		add_filter('litespeed_is_from_cloud', array( $this, 'is_from_cloud' )); // Check if current request is from QC (usually its to check REST access) // @see https://wordpress.org/support/topic/image-optimization-not-working-3/

		/**
		 * Media
		 */
		add_action('litespeed_media_reset', __NAMESPACE__ . '\Media::delete_attachment'); // Reset one media row

		/**
		 * GUI
		 */
		// API::clean_wrapper_begin( $counter = false ) -> Filter `litespeed_clean_wrapper_begin` // Start a to-be-removed html wrapper
		add_filter('litespeed_clean_wrapper_begin', __NAMESPACE__ . '\GUI::clean_wrapper_begin');
		// API::clean_wrapper_end( $counter = false ) -> Filter `litespeed_clean_wrapper_end` // End a to-be-removed html wrapper
		add_filter('litespeed_clean_wrapper_end', __NAMESPACE__ . '\GUI::clean_wrapper_end');

		/**
		 * Mist
		 */
		add_action('litespeed_debug', __NAMESPACE__ . '\Debug2::debug', 10, 2); // API::debug()-> Action `litespeed_debug`
		add_action('litespeed_debug2', __NAMESPACE__ . '\Debug2::debug2', 10, 2); // API::debug2()-> Action `litespeed_debug2`
		add_action('litespeed_disable_all', array( $this, '_disable_all' )); // API::disable_all( $reason ) -> Action `litespeed_disable_all`

		add_action('litspeed_after_admin_init', array( $this, '_after_admin_init' ));
	}

	/**
	 * API for admin related
	 *
	 * @since  3.0
	 * @access public
	 */
	public function _after_admin_init() {
		/**
		 * GUI
		 */
		add_action('litespeed_setting_enroll', array( $this->cls('Admin_Display'), 'enroll' ), 10, 4); // API::enroll( $id ) // Register a field in setting form to save
		add_action('litespeed_build_switch', array( $this->cls('Admin_Display'), 'build_switch' )); // API::build_switch( $id ) // Build a switch div html snippet
		// API::hook_setting_content( $hook, $priority = 10, $args = 1 ) -> Action `litespeed_settings_content`
		// API::hook_setting_tab( $hook, $priority = 10, $args = 1 ) -> Action `litespeed_settings_tab`
	}

	/**
	 * Disable All (Note: Not for direct call, always use Hooks)
	 *
	 * @since 2.9.7.2
	 * @access public
	 */
	public function _disable_all( $reason ) {
		do_action('litespeed_debug', '[API] Disabled_all due to ' . $reason);

		!defined('LITESPEED_DISABLE_ALL') && define('LITESPEED_DISABLE_ALL', true);
	}

	/**
	 * @since 3.0
	 */
	public static function vary_append_commenter() {
		Vary::cls()->append_commenter();
	}

	/**
	 * Check if is from Cloud
	 *
	 * @since 4.2
	 */
	public function is_from_cloud() {
		return $this->cls('Cloud')->is_from_cloud();
	}

	public function purge_post( $pid ) {
		$this->cls('Purge')->purge_post($pid);
	}

	public function purge_url( $url ) {
		$this->cls('Purge')->purge_url($url);
	}

	public function set_cacheable( $reason = false ) {
		$this->cls('Control')->set_cacheable($reason);
	}

	public function esi_enabled() {
		return $this->cls('Router')->esi_enabled();
	}

	public function get_ttl() {
		return $this->cls('Control')->get_ttl();
	}

	public function sub_esi_block(
		$block_id,
		$wrapper,
		$params = array(),
		$control = 'private,no-vary',
		$silence = false,
		$preserved = false,
		$svar = false,
		$inline_param = array()
	) {
		return $this->cls('ESI')->sub_esi_block($block_id, $wrapper, $params, $control, $silence, $preserved, $svar, $inline_param);
	}

	/**
	 * Set and sync conf
	 *
	 * @since 7.2
	 */
	public function save_conf( $the_matrix = false ) {
		$this->cls('Conf')->update_confs( $the_matrix );
	}
}
<?php
/**
 * The admin-panel specific functionality of the plugin.
 *
 * @since      1.0.0
 * @package    LiteSpeed_Cache
 * @subpackage LiteSpeed_Cache/admin
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined('WPINC') || exit();

class Admin extends Root {

	const LOG_TAG = '👮';

	const PAGE_EDIT_HTACCESS = 'litespeed-edit-htaccess';

	/**
	 * Initialize the class and set its properties.
	 * Run in hook `after_setup_theme` when is_admin()
	 *
	 * @since    1.0.0
	 */
	public function __construct() {
		// Define LSCWP_MU_PLUGIN if is mu-plugins
		if (defined('WPMU_PLUGIN_DIR') && dirname(LSCWP_DIR) == WPMU_PLUGIN_DIR) {
			define('LSCWP_MU_PLUGIN', true);
		}

		self::debug('No cache due to Admin page');
		defined('DONOTCACHEPAGE') || define('DONOTCACHEPAGE', true);

		// Additional litespeed assets on admin display
		// Also register menu
		$this->cls('Admin_Display');

		// initialize admin actions
		add_action('admin_init', array( $this, 'admin_init' ));
		// add link to plugin list page
		add_filter('plugin_action_links_' . LSCWP_BASENAME, array( $this->cls('Admin_Display'), 'add_plugin_links' ));
	}

	/**
	 * Callback that initializes the admin options for LiteSpeed Cache.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function admin_init() {
		// Hook attachment upload
		if ($this->conf(Base::O_IMG_OPTM_AUTO)) {
			add_filter('wp_update_attachment_metadata', array( $this, 'wp_update_attachment_metadata' ), 9999, 2);
		}

		$this->_proceed_admin_action();

		// Terminate if user doesn't have the access to settings
		if (is_network_admin()) {
			$capability = 'manage_network_options';
		} else {
			$capability = 'manage_options';
		}
		if (!current_user_can($capability)) {
			return;
		}

		// Save setting from admin settings page
		// NOTE: cli will call `validate_plugin_settings` manually. Cron activation doesn't need to validate

		// Add privacy policy
		// @since 2.2.6
		if (function_exists('wp_add_privacy_policy_content')) {
			wp_add_privacy_policy_content(Core::NAME, Doc::privacy_policy());
		}

		$this->cls('Media')->after_admin_init();

		do_action('litspeed_after_admin_init');

		if ($this->cls('Router')->esi_enabled()) {
			add_action('in_widget_form', array( $this->cls('Admin_Display'), 'show_widget_edit' ), 100, 3);
			add_filter('widget_update_callback', __NAMESPACE__ . '\Admin_Settings::validate_widget_save', 10, 4);
		}
	}

	/**
	 * Handle attachment update
	 *
	 * @since  4.0
	 */
	public function wp_update_attachment_metadata( $data, $post_id ) {
		$this->cls('Img_Optm')->wp_update_attachment_metadata($data, $post_id);
		return $data;
	}

	/**
	 * Run litespeed admin actions
	 *
	 * @since 1.1.0
	 */
	private function _proceed_admin_action() {
		// handle actions
		switch (Router::get_action()) {
			case Router::ACTION_SAVE_SETTINGS:
            $this->cls('Admin_Settings')->save($_POST);
				break;

			// Save network settings
			case Router::ACTION_SAVE_SETTINGS_NETWORK:
            $this->cls('Admin_Settings')->network_save($_POST);
				break;

			default:
				break;
		}
	}

	/**
	 * Clean up the input string of any extra slashes/spaces.
	 *
	 * @since 1.0.4
	 * @access public
	 * @param string $input The input string to clean.
	 * @return string The cleaned up input.
	 */
	public static function cleanup_text( $input ) {
		if (is_array($input)) {
			return array_map(__CLASS__ . '::cleanup_text', $input);
		}

		return stripslashes(trim($input));
	}

	/**
	 * After a LSCWP_CTRL action, need to redirect back to the same page
	 * without the nonce and action in the query string.
	 *
	 * If the redirect url cannot be determined, redirects to the homepage.
	 *
	 * @since 1.0.12
	 * @access public
	 * @global string $pagenow
	 */
	public static function redirect( $url = false ) {
		global $pagenow;

		if (!empty($_GET['_litespeed_ori'])) {
			wp_safe_redirect(wp_get_referer() ?: get_home_url());
			exit();
		}

		$qs = '';
		if (!$url) {
			if (!empty($_GET)) {
				if (isset($_GET[Router::ACTION])) {
					unset($_GET[Router::ACTION]);
				}
				if (isset($_GET[Router::NONCE])) {
					unset($_GET[Router::NONCE]);
				}
				if (isset($_GET[Router::TYPE])) {
					unset($_GET[Router::TYPE]);
				}
				if (isset($_GET['litespeed_i'])) {
					unset($_GET['litespeed_i']);
				}
				if (!empty($_GET)) {
					$qs = '?' . http_build_query($_GET);
				}
			}
			if (is_network_admin()) {
				$url = network_admin_url($pagenow . $qs);
			} else {
				$url = admin_url($pagenow . $qs);
			}
		}

		wp_redirect($url);
		exit();
	}
}
<?php

/**
 * The plugin cache-tag class for X-LiteSpeed-Tag
 *
 * @since       1.1.3
 * @since       1.5 Moved into /inc
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Tag extends Root {

	const TYPE_FEED                    = 'FD';
	const TYPE_FRONTPAGE               = 'F';
	const TYPE_HOME                    = 'H';
	const TYPE_PAGES                   = 'PGS';
	const TYPE_PAGES_WITH_RECENT_POSTS = 'PGSRP';
	const TYPE_HTTP                    = 'HTTP.';
	const TYPE_POST                    = 'Po.'; // Post. Cannot use P, reserved for litemage.
	const TYPE_ARCHIVE_POSTTYPE        = 'PT.';
	const TYPE_ARCHIVE_TERM            = 'T.'; // for is_category|is_tag|is_tax
	const TYPE_AUTHOR                  = 'A.';
	const TYPE_ARCHIVE_DATE            = 'D.';
	const TYPE_BLOG                    = 'B.';
	const TYPE_LOGIN                   = 'L';
	const TYPE_URL                     = 'URL.';
	const TYPE_WIDGET                  = 'W.';
	const TYPE_ESI                     = 'ESI.';
	const TYPE_REST                    = 'REST';
	const TYPE_AJAX                    = 'AJAX.';
	const TYPE_LIST                    = 'LIST';
	const TYPE_MIN                     = 'MIN';
	const TYPE_LOCALRES                = 'LOCALRES';

	const X_HEADER = 'X-LiteSpeed-Tag';

	private static $_tags          = array();
	private static $_tags_priv     = array( 'tag_priv' );
	public static $error_code_tags = array( 403, 404, 500 );

	/**
	 * Initialize
	 *
	 * @since 4.0
	 */
	public function init() {
		// register recent posts widget tag before theme renders it to make it work
		add_filter('widget_posts_args', array( $this, 'add_widget_recent_posts' ));
	}

	/**
	 * Check if the login page is cacheable.
	 * If not, unset the cacheable member variable.
	 *
	 * NOTE: This is checked separately because login page doesn't go through WP logic.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function check_login_cacheable() {
		if (!$this->conf(Base::O_CACHE_PAGE_LOGIN)) {
			return;
		}
		if (Control::isset_notcacheable()) {
			return;
		}

		if (!empty($_GET)) {
			Control::set_nocache('has GET request');
			return;
		}

		$this->cls('Control')->set_cacheable();

		self::add(self::TYPE_LOGIN);

		// we need to send lsc-cookie manually to make it be sent to all other users when is cacheable
		$list = headers_list();
		if (empty($list)) {
			return;
		}
		foreach ($list as $hdr) {
			if (strncasecmp($hdr, 'set-cookie:', 11) == 0) {
				$cookie = substr($hdr, 12);
				@header('lsc-cookie: ' . $cookie, false);
			}
		}
	}

	/**
	 * Register purge tag for pages with recent posts widget
	 * of the plugin.
	 *
	 * @since    1.0.15
	 * @access   public
	 * @param array $params [WordPress params for widget_posts_args]
	 */
	public function add_widget_recent_posts( $params ) {
		self::add(self::TYPE_PAGES_WITH_RECENT_POSTS);
		return $params;
	}

	/**
	 * Adds cache tags to the list of cache tags for the current page.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param mixed $tags A string or array of cache tags to add to the current list.
	 */
	public static function add( $tags ) {
		if (!is_array($tags)) {
			$tags = array( $tags );
		}

		Debug2::debug('💰 [Tag] Add ', $tags);

		self::$_tags = array_merge(self::$_tags, $tags);

		// Send purge header immediately
		$tag_header = self::cls()->output(true);
		@header($tag_header);
	}

	/**
	 * Add a post id to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_post( $pid ) {
		self::add(self::TYPE_POST . $pid);
	}

	/**
	 * Add a widget id to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_widget( $id ) {
		self::add(self::TYPE_WIDGET . $id);
	}

	/**
	 * Add a private ESI to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_esi( $tag ) {
		self::add_private(self::TYPE_ESI . $tag);
	}

	/**
	 * Adds private cache tags to the list of cache tags for the current page.
	 *
	 * @since 1.6.3
	 * @access public
	 * @param mixed $tags A string or array of cache tags to add to the current list.
	 */
	public static function add_private( $tags ) {
		if (!is_array($tags)) {
			$tags = array( $tags );
		}

		self::$_tags_priv = array_merge(self::$_tags_priv, $tags);
	}

	/**
	 * Return tags for Admin QS
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function output_tags() {
		return self::$_tags;
	}

	/**
	 * Will get a hash of the URI. Removes query string and appends a '/' if it is missing.
	 *
	 * @since 1.0.12
	 * @access public
	 * @param string  $uri The uri to get the hash of.
	 * @param boolean $ori Return the original url or not
	 * @return bool|string False on input error, hash otherwise.
	 */
	public static function get_uri_tag( $uri, $ori = false ) {
		$no_qs = strtok($uri, '?');
		if (empty($no_qs)) {
			return false;
		}
		$slashed = trailingslashit($no_qs);

		// If only needs uri tag
		if ($ori) {
			return $slashed;
		}

		if (defined('LSCWP_LOG')) {
			return self::TYPE_URL . $slashed;
		}
		return self::TYPE_URL . md5($slashed);
	}

	/**
	 * Get the unique tag based on self url.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param boolean $ori Return the original url or not
	 */
	public static function build_uri_tag( $ori = false ) {
		return self::get_uri_tag(urldecode($_SERVER['REQUEST_URI']), $ori);
	}

	/**
	 * Gets the cache tags to set for the page.
	 *
	 * This includes site wide post types (e.g. front page) as well as
	 * any third party plugin specific cache tags.
	 *
	 * @since 1.0.0
	 * @access private
	 * @return array The list of cache tags to set.
	 */
	private static function _build_type_tags() {
		$tags = array();

		$tags[] = Utility::page_type();

		$tags[] = self::build_uri_tag();

		if (is_front_page()) {
			$tags[] = self::TYPE_FRONTPAGE;
		} elseif (is_home()) {
			$tags[] = self::TYPE_HOME;
		}

		global $wp_query;
		if (isset($wp_query)) {
			$queried_obj_id = get_queried_object_id();
			if (is_archive()) {
				// An Archive is a Category, Tag, Author, Date, Custom Post Type or Custom Taxonomy based pages.
				if (is_category() || is_tag() || is_tax()) {
					$tags[] = self::TYPE_ARCHIVE_TERM . $queried_obj_id;
				} elseif (is_post_type_archive() && ($post_type = get_post_type())) {
					$tags[] = self::TYPE_ARCHIVE_POSTTYPE . $post_type;
				} elseif (is_author()) {
					$tags[] = self::TYPE_AUTHOR . $queried_obj_id;
				} elseif (is_date()) {
					global $post;

					if ($post && isset($post->post_date)) {
						$date = $post->post_date;
						$date = strtotime($date);
						if (is_day()) {
							$tags[] = self::TYPE_ARCHIVE_DATE . date('Ymd', $date);
						} elseif (is_month()) {
							$tags[] = self::TYPE_ARCHIVE_DATE . date('Ym', $date);
						} elseif (is_year()) {
							$tags[] = self::TYPE_ARCHIVE_DATE . date('Y', $date);
						}
					}
				}
			} elseif (is_singular()) {
				// $this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
				$tags[] = self::TYPE_POST . $queried_obj_id;

				if (is_page()) {
					$tags[] = self::TYPE_PAGES;
				}
			} elseif (is_feed()) {
				$tags[] = self::TYPE_FEED;
			}
		}

		// Check REST API
		if (REST::cls()->is_rest()) {
			$tags[] = self::TYPE_REST;

			$path = !empty($_SERVER['SCRIPT_URL']) ? $_SERVER['SCRIPT_URL'] : false;
			if ($path) {
				// posts collections tag
				if (substr($path, -6) == '/posts') {
					$tags[] = self::TYPE_LIST; // Not used for purge yet
				}

				// single post tag
				global $post;
				if (!empty($post->ID) && substr($path, -strlen($post->ID) - 1) === '/' . $post->ID) {
					$tags[] = self::TYPE_POST . $post->ID;
				}

				// pages collections & single page tag
				if (stripos($path, '/pages') !== false) {
					$tags[] = self::TYPE_PAGES;
				}
			}
		}

		// Append AJAX action tag
		if (Router::is_ajax() && !empty($_REQUEST['action'])) {
			$tags[] = self::TYPE_AJAX . $_REQUEST['action'];
		}

		return $tags;
	}

	/**
	 * Generate all cache tags before output
	 *
	 * @access private
	 * @since 1.1.3
	 */
	private static function _finalize() {
		// run 3rdparty hooks to tag
		do_action('litespeed_tag_finalize');
		// generate wp tags
		if (!defined('LSCACHE_IS_ESI')) {
			$type_tags   = self::_build_type_tags();
			self::$_tags = array_merge(self::$_tags, $type_tags);
		}

		if (defined('LITESPEED_GUEST') && LITESPEED_GUEST) {
			self::$_tags[] = 'guest';
		}

		// append blog main tag
		self::$_tags[] = '';
		// removed duplicates
		self::$_tags = array_unique(self::$_tags);
	}

	/**
	 * Sets up the Cache Tags header.
	 * ONLY need to run this if is cacheable
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string empty string if empty, otherwise the cache tags header.
	 */
	public function output( $no_finalize = false ) {
		if (defined('LSCACHE_NO_CACHE') && LSCACHE_NO_CACHE) {
			return;
		}

		if (!$no_finalize) {
			self::_finalize();
		}

		$prefix_tags = array();
		/**
		 * Only append blog_id when is multisite
		 *
		 * @since 2.9.3
		 */
		$prefix = LSWCP_TAG_PREFIX . (is_multisite() ? get_current_blog_id() : '') . '_';

		// If is_private and has private tags, append them first, then specify prefix to `public` for public tags
		if (Control::is_private()) {
			foreach (self::$_tags_priv as $priv_tag) {
				$prefix_tags[] = $prefix . $priv_tag;
			}
			$prefix = 'public:' . $prefix;
		}

		foreach (self::$_tags as $tag) {
			$prefix_tags[] = $prefix . $tag;
		}

		$hdr = self::X_HEADER . ': ' . implode(',', $prefix_tags);

		return $hdr;
	}
}
<?php

/**
 * The object cache class
 *
 * @since       1.8
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

require_once dirname(__DIR__) . '/autoload.php';

class Object_Cache extends Root {

	const O_DEBUG                        = 'debug';
	const O_OBJECT                       = 'object';
	const O_OBJECT_KIND                  = 'object-kind';
	const O_OBJECT_HOST                  = 'object-host';
	const O_OBJECT_PORT                  = 'object-port';
	const O_OBJECT_LIFE                  = 'object-life';
	const O_OBJECT_PERSISTENT            = 'object-persistent';
	const O_OBJECT_ADMIN                 = 'object-admin';
	const O_OBJECT_TRANSIENTS            = 'object-transients';
	const O_OBJECT_DB_ID                 = 'object-db_id';
	const O_OBJECT_USER                  = 'object-user';
	const O_OBJECT_PSWD                  = 'object-pswd';
	const O_OBJECT_GLOBAL_GROUPS         = 'object-global_groups';
	const O_OBJECT_NON_PERSISTENT_GROUPS = 'object-non_persistent_groups';

	private $_conn;
	private $_cfg_debug;
	private $_cfg_enabled;
	private $_cfg_method;
	private $_cfg_host;
	private $_cfg_port;
	private $_cfg_life;
	private $_cfg_persistent;
	private $_cfg_admin;
	private $_cfg_transients;
	private $_cfg_db;
	private $_cfg_user;
	private $_cfg_pswd;
	private $_default_life = 360;

	private $_oc_driver = 'Memcached'; // Redis or Memcached

	private $_global_groups         = array();
	private $_non_persistent_groups = array();

	/**
	 * Init
	 *
	 * NOTE: this class may be included without initialized  core
	 *
	 * @since  1.8
	 */
	public function __construct( $cfg = false ) {
		if ($cfg) {
			if (!is_array($cfg[Base::O_OBJECT_GLOBAL_GROUPS])) {
				$cfg[Base::O_OBJECT_GLOBAL_GROUPS] = explode("\n", $cfg[Base::O_OBJECT_GLOBAL_GROUPS]);
			}
			if (!is_array($cfg[Base::O_OBJECT_NON_PERSISTENT_GROUPS])) {
				$cfg[Base::O_OBJECT_NON_PERSISTENT_GROUPS] = explode("\n", $cfg[Base::O_OBJECT_NON_PERSISTENT_GROUPS]);
			}
			$this->_cfg_debug             = $cfg[Base::O_DEBUG] ? $cfg[Base::O_DEBUG] : false;
			$this->_cfg_method            = $cfg[Base::O_OBJECT_KIND] ? true : false;
			$this->_cfg_host              = $cfg[Base::O_OBJECT_HOST];
			$this->_cfg_port              = $cfg[Base::O_OBJECT_PORT];
			$this->_cfg_life              = $cfg[Base::O_OBJECT_LIFE];
			$this->_cfg_persistent        = $cfg[Base::O_OBJECT_PERSISTENT];
			$this->_cfg_admin             = $cfg[Base::O_OBJECT_ADMIN];
			$this->_cfg_transients        = $cfg[Base::O_OBJECT_TRANSIENTS];
			$this->_cfg_db                = $cfg[Base::O_OBJECT_DB_ID];
			$this->_cfg_user              = $cfg[Base::O_OBJECT_USER];
			$this->_cfg_pswd              = $cfg[Base::O_OBJECT_PSWD];
			$this->_global_groups         = $cfg[Base::O_OBJECT_GLOBAL_GROUPS];
			$this->_non_persistent_groups = $cfg[Base::O_OBJECT_NON_PERSISTENT_GROUPS];

			if ($this->_cfg_method) {
				$this->_oc_driver = 'Redis';
			}
			$this->_cfg_enabled = $cfg[Base::O_OBJECT] && class_exists($this->_oc_driver) && $this->_cfg_host;
		}
		// If OC is OFF, will hit here to init OC after conf initialized
		elseif (defined('LITESPEED_CONF_LOADED')) {
			$this->_cfg_debug             = $this->conf(Base::O_DEBUG) ? $this->conf(Base::O_DEBUG) : false;
			$this->_cfg_method            = $this->conf(Base::O_OBJECT_KIND) ? true : false;
			$this->_cfg_host              = $this->conf(Base::O_OBJECT_HOST);
			$this->_cfg_port              = $this->conf(Base::O_OBJECT_PORT);
			$this->_cfg_life              = $this->conf(Base::O_OBJECT_LIFE);
			$this->_cfg_persistent        = $this->conf(Base::O_OBJECT_PERSISTENT);
			$this->_cfg_admin             = $this->conf(Base::O_OBJECT_ADMIN);
			$this->_cfg_transients        = $this->conf(Base::O_OBJECT_TRANSIENTS);
			$this->_cfg_db                = $this->conf(Base::O_OBJECT_DB_ID);
			$this->_cfg_user              = $this->conf(Base::O_OBJECT_USER);
			$this->_cfg_pswd              = $this->conf(Base::O_OBJECT_PSWD);
			$this->_global_groups         = $this->conf(Base::O_OBJECT_GLOBAL_GROUPS);
			$this->_non_persistent_groups = $this->conf(Base::O_OBJECT_NON_PERSISTENT_GROUPS);

			if ($this->_cfg_method) {
				$this->_oc_driver = 'Redis';
			}
			$this->_cfg_enabled = $this->conf(Base::O_OBJECT) && class_exists($this->_oc_driver) && $this->_cfg_host;
		} elseif (defined('self::CONF_FILE') && file_exists(WP_CONTENT_DIR . '/' . self::CONF_FILE)) {
			// Get cfg from _data_file
			// Use self::const to avoid loading more classes
			$cfg = \json_decode(file_get_contents(WP_CONTENT_DIR . '/' . self::CONF_FILE), true);
			if (!empty($cfg[self::O_OBJECT_HOST])) {
				$this->_cfg_debug             = !empty($cfg[Base::O_DEBUG]) ? $cfg[Base::O_DEBUG] : false;
				$this->_cfg_method            = !empty($cfg[self::O_OBJECT_KIND]) ? $cfg[self::O_OBJECT_KIND] : false;
				$this->_cfg_host              = $cfg[self::O_OBJECT_HOST];
				$this->_cfg_port              = $cfg[self::O_OBJECT_PORT];
				$this->_cfg_life              = !empty($cfg[self::O_OBJECT_LIFE]) ? $cfg[self::O_OBJECT_LIFE] : $this->_default_life;
				$this->_cfg_persistent        = !empty($cfg[self::O_OBJECT_PERSISTENT]) ? $cfg[self::O_OBJECT_PERSISTENT] : false;
				$this->_cfg_admin             = !empty($cfg[self::O_OBJECT_ADMIN]) ? $cfg[self::O_OBJECT_ADMIN] : false;
				$this->_cfg_transients        = !empty($cfg[self::O_OBJECT_TRANSIENTS]) ? $cfg[self::O_OBJECT_TRANSIENTS] : false;
				$this->_cfg_db                = !empty($cfg[self::O_OBJECT_DB_ID]) ? $cfg[self::O_OBJECT_DB_ID] : 0;
				$this->_cfg_user              = !empty($cfg[self::O_OBJECT_USER]) ? $cfg[self::O_OBJECT_USER] : '';
				$this->_cfg_pswd              = !empty($cfg[self::O_OBJECT_PSWD]) ? $cfg[self::O_OBJECT_PSWD] : '';
				$this->_global_groups         = !empty($cfg[self::O_OBJECT_GLOBAL_GROUPS]) ? $cfg[self::O_OBJECT_GLOBAL_GROUPS] : array();
				$this->_non_persistent_groups = !empty($cfg[self::O_OBJECT_NON_PERSISTENT_GROUPS]) ? $cfg[self::O_OBJECT_NON_PERSISTENT_GROUPS] : array();

				if ($this->_cfg_method) {
					$this->_oc_driver = 'Redis';
				}
				$this->_cfg_enabled = class_exists($this->_oc_driver) && $this->_cfg_host;
			} else {
				$this->_cfg_enabled = false;
			}
		} else {
			$this->_cfg_enabled = false;
		}
	}

	/**
	 * Add debug.
	 *
	 * @since  6.3
	 * @access private
	 */
	private function debug_oc($text)
	{
		if (defined('LSCWP_LOG')) {
			Debug2::debug($text);

			return;
		}

		if ( $this->_cfg_debug != Base::VAL_ON2 ) {
			return;
		}

		$LITESPEED_DATA_FOLDER = defined('LITESPEED_DATA_FOLDER') ? LITESPEED_DATA_FOLDER : 'litespeed';
		$LSCWP_CONTENT_DIR     = defined('LSCWP_CONTENT_DIR') ? LSCWP_CONTENT_DIR : WP_CONTENT_DIR;
		$LITESPEED_STATIC_DIR  = $LSCWP_CONTENT_DIR . '/' . $LITESPEED_DATA_FOLDER;
		$log_path_prefix       = $LITESPEED_STATIC_DIR . '/debug/';
		$log_file              = $log_path_prefix . Debug2::FilePath('debug');

		if (file_exists($log_path_prefix . 'index.php') && file_exists($log_file)) {
			error_log(gmdate('m/d/y H:i:s') . ' - OC - ' . $text . PHP_EOL, 3, $log_file);
		}
	}

	/**
	 * Get `Store Transients` setting value
	 *
	 * @since  1.8.3
	 * @access public
	 */
	public function store_transients( $group ) {
		return $this->_cfg_transients && $this->_is_transients_group($group);
	}

	/**
	 * Check if the group belongs to transients or not
	 *
	 * @since  1.8.3
	 * @access private
	 */
	private function _is_transients_group( $group ) {
		return in_array($group, array( 'transient', 'site-transient' ));
	}

	/**
	 * Update WP object cache file config
	 *
	 * @since  1.8
	 * @access public
	 */
	public function update_file( $options ) {
		$changed = false;

		// NOTE: When included in oc.php, `LSCWP_DIR` will show undefined, so this must be assigned/generated when used
		$_oc_ori_file = LSCWP_DIR . 'lib/object-cache.php';
		$_oc_wp_file  = WP_CONTENT_DIR . '/object-cache.php';

		// Update cls file
		if (!file_exists($_oc_wp_file) || md5_file($_oc_wp_file) !== md5_file($_oc_ori_file)) {
			$this->debug_oc('copying object-cache.php file to ' . $_oc_wp_file);
			copy($_oc_ori_file, $_oc_wp_file);

			$changed = true;
		}

		/**
		 * Clear object cache
		 */
		if ($changed) {
			$this->_reconnect($options);
		}
	}

	/**
	 * Remove object cache file
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function del_file() {
		// NOTE: When included in oc.php, `LSCWP_DIR` will show undefined, so this must be assigned/generated when used
		$_oc_ori_file = LSCWP_DIR . 'lib/object-cache.php';
		$_oc_wp_file  = WP_CONTENT_DIR . '/object-cache.php';

		if (file_exists($_oc_wp_file) && md5_file($_oc_wp_file) === md5_file($_oc_ori_file)) {
			$this->debug_oc('removing ' . $_oc_wp_file);
			unlink($_oc_wp_file);
		}
	}

	/**
	 * Try to build connection
	 *
	 * @since  1.8
	 * @access public
	 */
	public function test_connection() {
		return $this->_connect();
	}

	/**
	 * Force to connect with this setting
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _reconnect( $cfg ) {
		$this->debug_oc('Reconnecting');
		if (isset($this->_conn)) {
			// error_log( 'Object: Quitting existing connection!' );
			$this->debug_oc('Quitting existing connection');
			$this->flush();
			$this->_conn = null;
			$this->cls(false, true);
		}

		$cls = $this->cls(false, false, $cfg);
		$cls->_connect();
		if (isset($cls->_conn)) {
			$cls->flush();
		}
	}

	/**
	 * Connect to Memcached/Redis server
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _connect() {
		if (isset($this->_conn)) {
			// error_log( 'Object: _connected' );
			return true;
		}

		if (!class_exists($this->_oc_driver) || !$this->_cfg_host) {
			return null;
		}

		if (defined('LITESPEED_OC_FAILURE')) {
			return false;
		}

		$this->debug_oc('Init ' . $this->_oc_driver . ' connection to ' . $this->_cfg_host . ':' . $this->_cfg_port);

		$failed = false;
		/**
		 * Connect to Redis
		 *
		 * @since  1.8.1
		 * @see https://github.com/phpredis/phpredis/#example-1
		 */
		if ($this->_oc_driver == 'Redis') {
			set_error_handler('litespeed_exception_handler');
			try {
				$this->_conn = new \Redis();
				// error_log( 'Object: _connect Redis' );

				if ($this->_cfg_persistent) {
					if ($this->_cfg_port) {
						$this->_conn->pconnect($this->_cfg_host, $this->_cfg_port);
					} else {
						$this->_conn->pconnect($this->_cfg_host);
					}
				} elseif ($this->_cfg_port) {
					$this->_conn->connect($this->_cfg_host, $this->_cfg_port);
				} else {
					$this->_conn->connect($this->_cfg_host);
				}

				if ($this->_cfg_pswd) {
					if ($this->_cfg_user) {
						$this->_conn->auth(array( $this->_cfg_user, $this->_cfg_pswd ));
					} else {
						$this->_conn->auth($this->_cfg_pswd);
					}
				}

				if ($this->_cfg_db) {
					$this->_conn->select($this->_cfg_db);
				}

				$res = $this->_conn->ping();

				if ($res != '+PONG') {
					$failed = true;
				}
			} catch (\Exception $e) {
				$this->debug_oc('Redis connect exception: ' . $e->getMessage());
				$failed = true;
			} catch (\ErrorException $e) {
				$this->debug_oc('Redis connect error: ' . $e->getMessage());
				$failed = true;
			}
			restore_error_handler();
		} else {
			// Connect to Memcached
			if ($this->_cfg_persistent) {
				$this->_conn = new \Memcached($this->_get_mem_id());

				// Check memcached persistent connection
				if ($this->_validate_mem_server()) {
					// error_log( 'Object: _validate_mem_server' );
					$this->debug_oc('Got persistent ' . $this->_oc_driver . ' connection');
					return true;
				}

				$this->debug_oc('No persistent ' . $this->_oc_driver . ' server list!');
			} else {
				// error_log( 'Object: new memcached!' );
				$this->_conn = new \Memcached();
			}

			$this->_conn->addServer($this->_cfg_host, (int) $this->_cfg_port);

			/**
			 * Add SASL auth
			 *
			 * @since  1.8.1
			 * @since  2.9.6 Fixed SASL connection @see https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:lsmcd:new_sasl
			 */
			if ($this->_cfg_user && $this->_cfg_pswd && method_exists($this->_conn, 'setSaslAuthData')) {
				$this->_conn->setOption(\Memcached::OPT_BINARY_PROTOCOL, true);
				$this->_conn->setOption(\Memcached::OPT_COMPRESSION, false);
				$this->_conn->setSaslAuthData($this->_cfg_user, $this->_cfg_pswd);
			}

			// Check connection
			if (!$this->_validate_mem_server()) {
				$failed = true;
			}
		}

		// If failed to connect
		if ($failed) {
			$this->debug_oc('❌ Failed to connect ' . $this->_oc_driver . ' server!');
			$this->_conn        = null;
			$this->_cfg_enabled = false;
			!defined('LITESPEED_OC_FAILURE') && define('LITESPEED_OC_FAILURE', true);
			// error_log( 'Object: false!' );
			return false;
		}

		$this->debug_oc('✅ Connected to ' . $this->_oc_driver . ' server.');

		return true;
	}

	/**
	 * Check if the connected memcached host is the one in cfg
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _validate_mem_server() {
		$mem_list = $this->_conn->getStats();
		if (empty($mem_list)) {
			return false;
		}

		foreach ($mem_list as $k => $v) {
			if (substr($k, 0, strlen($this->_cfg_host)) != $this->_cfg_host) {
				continue;
			}
			if (!empty($v['pid']) || !empty($v['curr_connections'])) {
				return true;
			}
		}

		return false;
	}

	/**
	 * Get memcached unique id to be used for connecting
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _get_mem_id() {
		$mem_id = 'litespeed';
		if (is_multisite()) {
			$mem_id .= '_' . get_current_blog_id();
		}

		return $mem_id;
	}

	/**
	 * Get cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function get( $key ) {
		if (!$this->_cfg_enabled) {
			return null;
		}

		if (!$this->_can_cache()) {
			return null;
		}

		if (!$this->_connect()) {
			return null;
		}

		$res = $this->_conn->get($key);

		return $res;
	}

	/**
	 * Set cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function set( $key, $data, $expire ) {
		if (!$this->_cfg_enabled) {
			return null;
		}

		/**
		 * To fix the Cloud callback cached as its frontend call but the hash is generated in backend
		 * Bug found by Stan at Jan/10/2020
		 */
		// if ( ! $this->_can_cache() ) {
		// return null;
		// }

		if (!$this->_connect()) {
			return null;
		}
		$ttl = $expire ?: $this->_cfg_life;

		if ($this->_oc_driver == 'Redis') {
			try {
				$res = $this->_conn->setEx($key, $ttl, $data);
			} catch (\RedisException $ex) {
				$res = false;
				$msg = sprintf(__('Redis encountered a fatal error: %1$s (code: %2$d)', 'litespeed-cache'), $ex->getMessage(), $ex->getCode());
				$this->debug_oc($msg);
				Admin_Display::error($msg);
			}
		} else {
			$res = $this->_conn->set($key, $data, $ttl);
		}

		return $res;
	}

	/**
	 * Check if can cache or not
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _can_cache() {
		if (!$this->_cfg_admin && defined('WP_ADMIN')) {
			return false;
		}
		return true;
	}

	/**
	 * Delete cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function delete( $key ) {
		if (!$this->_cfg_enabled) {
			return null;
		}

		if (!$this->_connect()) {
			return null;
		}

		if ($this->_oc_driver == 'Redis') {
			$res = $this->_conn->del($key);
		} else {
			$res = $this->_conn->delete($key);
		}

		return (bool) $res;
	}

	/**
	 * Clear all cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function flush() {
		if (!$this->_cfg_enabled) {
			$this->debug_oc('bypass flushing');
			return null;
		}

		if (!$this->_connect()) {
			return null;
		}

		$this->debug_oc('flush!');

		if ($this->_oc_driver == 'Redis') {
			$res = $this->_conn->flushDb();
		} else {
			$res = $this->_conn->flush();
			$this->_conn->resetServerList();
		}

		return $res;
	}

	/**
	 * Add global groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_global_groups( $groups ) {
		if (!is_array($groups)) {
			$groups = array( $groups );
		}

		$this->_global_groups = array_merge($this->_global_groups, $groups);
		$this->_global_groups = array_unique($this->_global_groups);
	}

	/**
	 * Check if is in global groups or not
	 *
	 * @since 1.8
	 * @access public
	 */
	public function is_global( $group ) {
		return in_array($group, $this->_global_groups);
	}

	/**
	 * Add non persistent groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_non_persistent_groups( $groups ) {
		if (!is_array($groups)) {
			$groups = array( $groups );
		}

		$this->_non_persistent_groups = array_merge($this->_non_persistent_groups, $groups);
		$this->_non_persistent_groups = array_unique($this->_non_persistent_groups);
	}

	/**
	 * Check if is in non persistent groups or not
	 *
	 * @since 1.8
	 * @access public
	 */
	public function is_non_persistent( $group ) {
		return in_array($group, $this->_non_persistent_groups);
	}
}
<?php

/**
 * The class to operate media data.
 *
 * @since       1.4
 * @since       1.5 Moved into /inc
 * @package     Core
 * @subpackage  Core/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Media extends Root {

	const LOG_TAG = '📺';

	const LIB_FILE_IMG_LAZYLOAD = 'assets/js/lazyload.min.js';

	private $content;
	private $_wp_upload_dir;
	private $_vpi_preload_list = array();
	private $_format           = '';
	private $_sys_format       = '';

	/**
	 * Init
	 *
	 * @since  1.4
	 */
	public function __construct() {
		Debug2::debug2('[Media] init');

		$this->_wp_upload_dir = wp_upload_dir();
		if ($this->conf(Base::O_IMG_OPTM_WEBP)) {
			$this->_sys_format = 'webp';
			$this->_format     = 'webp';
			if ($this->conf(Base::O_IMG_OPTM_WEBP) == 2) {
				$this->_sys_format = 'avif';
				$this->_format     = 'avif';
			}
			if (!$this->_browser_support_next_gen()) {
				$this->_format = '';
			}
			$this->_format = apply_filters('litespeed_next_gen_format', $this->_format);
		}
	}

	/**
	 * Hooks after user init
	 *
	 * @since  7.2
	 */
	public function after_user_init() {
		// Hook to attachment delete action (PR#844, Issue#841) for AJAX del compatibility
		add_action('delete_attachment', array( $this, 'delete_attachment' ), 11, 2);
	}

	/**
	 * Init optm features
	 *
	 * @since  3.0
	 * @access public
	 */
	public function init() {
		if (is_admin()) {
			return;
		}

		// Due to ajax call doesn't send correct accept header, have to limit webp to HTML only
		if ($this->webp_support()) {
			// Hook to srcset
			if (function_exists('wp_calculate_image_srcset')) {
				add_filter('wp_calculate_image_srcset', array( $this, 'webp_srcset' ), 988);
			}
			// Hook to mime icon
			// add_filter( 'wp_get_attachment_image_src', array( $this, 'webp_attach_img_src' ), 988 );// todo: need to check why not
			// add_filter( 'wp_get_attachment_url', array( $this, 'webp_url' ), 988 ); // disabled to avoid wp-admin display
		}

		if ($this->conf(Base::O_MEDIA_LAZY) && !$this->cls('Metabox')->setting('litespeed_no_image_lazy')) {
			self::debug('Suppress default WP lazyload');
			add_filter('wp_lazy_loading_enabled', '__return_false');
		}

		/**
		 * Replace gravatar
		 *
		 * @since  3.0
		 */
		$this->cls('Avatar');

		add_filter('litespeed_buffer_finalize', array( $this, 'finalize' ), 4);

		add_filter('litespeed_optm_html_head', array( $this, 'finalize_head' ));
	}

	/**
	 * Add featured image to head
	 */
	public function finalize_head( $content ) {
		global $wp_query;

		// <link rel="preload" as="image" href="xx">
		if ($this->_vpi_preload_list) {
			foreach ($this->_vpi_preload_list as $v) {
				$content .= '<link rel="preload" as="image" href="' . Str::trim_quotes($v) . '">';
			}
		}
		// $featured_image_url = get_the_post_thumbnail_url();
		// if ($featured_image_url) {
		// self::debug('Append featured image to head: ' . $featured_image_url);
		// if ($this->webp_support()) {
		// $featured_image_url = $this->replace_webp($featured_image_url) ?: $featured_image_url;
		// }
		// }
		// }

		return $content;
	}

	/**
	 * Adjust WP default JPG quality
	 *
	 * @since  3.0
	 * @access public
	 */
	public function adjust_jpg_quality( $quality ) {
		$v = $this->conf(Base::O_IMG_OPTM_JPG_QUALITY);

		if ($v) {
			return $v;
		}

		return $quality;
	}

	/**
	 * Register admin menu
	 *
	 * @since 1.6.3
	 * @access public
	 */
	public function after_admin_init() {
		/**
		 * JPG quality control
		 *
		 * @since  3.0
		 */
		add_filter('jpeg_quality', array( $this, 'adjust_jpg_quality' ));

		add_filter('manage_media_columns', array( $this, 'media_row_title' ));
		add_filter('manage_media_custom_column', array( $this, 'media_row_actions' ), 10, 2);

		add_action('litespeed_media_row', array( $this, 'media_row_con' ));
	}

	/**
	 * Media delete action hook
	 *
	 * @since 2.4.3
	 * @access public
	 */
	public static function delete_attachment( $post_id ) {
		// if (!Data::cls()->tb_exist('img_optm')) {
		// return;
		// }

		self::debug('delete_attachment [pid] ' . $post_id);
		Img_Optm::cls()->reset_row($post_id);
	}

	/**
	 * Return media file info if exists
	 *
	 * This is for remote attachment plugins
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function info( $short_file_path, $post_id ) {
		$short_file_path = wp_normalize_path($short_file_path);
		$basedir         = $this->_wp_upload_dir['basedir'] . '/';
		if (strpos($short_file_path, $basedir) === 0) {
			$short_file_path = substr($short_file_path, strlen($basedir));
		}

		$real_file = $basedir . $short_file_path;

		if (file_exists($real_file)) {
			return array(
				'url' => $this->_wp_upload_dir['baseurl'] . '/' . $short_file_path,
				'md5' => md5_file($real_file),
				'size' => filesize($real_file),
			);
		}

		/**
		 * WP Stateless compatibility #143 https://github.com/litespeedtech/lscache_wp/issues/143
		 *
		 * @since 2.9.8
		 * Should return array( 'url', 'md5', 'size' )
		 */
		$info = apply_filters('litespeed_media_info', array(), $short_file_path, $post_id);
		if (!empty($info['url']) && !empty($info['md5']) && !empty($info['size'])) {
			return $info;
		}

		return false;
	}

	/**
	 * Delete media file
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function del( $short_file_path, $post_id ) {
		$real_file = $this->_wp_upload_dir['basedir'] . '/' . $short_file_path;

		if (file_exists($real_file)) {
			unlink($real_file);
			self::debug('deleted ' . $real_file);
		}

		do_action('litespeed_media_del', $short_file_path, $post_id);
	}

	/**
	 * Rename media file
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function rename( $short_file_path, $short_file_path_new, $post_id ) {
		// self::debug('renaming ' . $short_file_path . ' -> ' . $short_file_path_new);
		$real_file     = $this->_wp_upload_dir['basedir'] . '/' . $short_file_path;
		$real_file_new = $this->_wp_upload_dir['basedir'] . '/' . $short_file_path_new;

		if (file_exists($real_file)) {
			rename($real_file, $real_file_new);
			self::debug('renamed ' . $real_file . ' to ' . $real_file_new);
		}

		do_action('litespeed_media_rename', $short_file_path, $short_file_path_new, $post_id);
	}

	/**
	 * Media Admin Menu -> Image Optimization Column Title
	 *
	 * @since 1.6.3
	 * @access public
	 */
	public function media_row_title( $posts_columns ) {
		$posts_columns['imgoptm'] = __('LiteSpeed Optimization', 'litespeed-cache');

		return $posts_columns;
	}

	/**
	 * Media Admin Menu -> Image Optimization Column
	 *
	 * @since 1.6.2
	 * @access public
	 */
	public function media_row_actions( $column_name, $post_id ) {
		if ($column_name !== 'imgoptm') {
			return;
		}

		do_action('litespeed_media_row', $post_id);
	}

	/**
	 * Display image optm info
	 *
	 * @since  3.0
	 */
	public function media_row_con( $post_id ) {
		$att_info = wp_get_attachment_metadata($post_id);
		if (empty($att_info['file'])) {
			return;
		}

		$short_path = $att_info['file'];

		$size_meta = get_post_meta($post_id, Img_Optm::DB_SIZE, true);

		echo '<p>';
		// Original image info
		if ($size_meta && !empty($size_meta['ori_saved'])) {
			$percent = ceil(($size_meta['ori_saved'] * 100) / $size_meta['ori_total']);

			$extension    = pathinfo($short_path, PATHINFO_EXTENSION);
			$bk_file      = substr($short_path, 0, -strlen($extension)) . 'bk.' . $extension;
			$bk_optm_file = substr($short_path, 0, -strlen($extension)) . 'bk.optm.' . $extension;

			$link = Utility::build_url(Router::ACTION_IMG_OPTM, 'orig' . $post_id);
			$desc = false;

			$cls = '';

			if ($this->info($bk_file, $post_id)) {
				$curr_status = __('(optm)', 'litespeed-cache');
				$desc        = __('Currently using optimized version of file.', 'litespeed-cache') . '&#10;' . __('Click to switch to original (unoptimized) version.', 'litespeed-cache');
			} elseif ($this->info($bk_optm_file, $post_id)) {
				$cls        .= ' litespeed-warning';
				$curr_status = __('(non-optm)', 'litespeed-cache');
				$desc        = __('Currently using original (unoptimized) version of file.', 'litespeed-cache') . '&#10;' . __('Click to switch to optimized version.', 'litespeed-cache');
			}

			echo GUI::pie_tiny(
				$percent,
				24,
				sprintf(__('Original file reduced by %1$s (%2$s)', 'litespeed-cache'), $percent . '%', Utility::real_size($size_meta['ori_saved'])),
				'left'
			);

			printf(__('Orig saved %s', 'litespeed-cache'), $percent . '%');

			if ($desc) {
				printf(' <a href="%1$s" class="litespeed-media-href %2$s" data-balloon-pos="left" data-balloon-break aria-label="%3$s">%4$s</a>', $link, $cls, $desc, $curr_status);
			} else {
				printf(
					' <span class="litespeed-desc" data-balloon-pos="left" data-balloon-break aria-label="%1$s">%2$s</span>',
					__('Using optimized version of file. ', 'litespeed-cache') . '&#10;' . __('No backup of original file exists.', 'litespeed-cache'),
					__('(optm)', 'litespeed-cache')
				);
			}
		} elseif ($size_meta && $size_meta['ori_saved'] === 0) {
			echo GUI::pie_tiny(0, 24, __('Congratulation! Your file was already optimized', 'litespeed-cache'), 'left');
			printf(__('Orig %s', 'litespeed-cache'), '<span class="litespeed-desc">' . __('(no savings)', 'litespeed-cache') . '</span>');
		} else {
			echo __('Orig', 'litespeed-cache') . '<span class="litespeed-left10">—</span>';
		}
		echo '</p>';

		echo '<p>';
		// WebP/AVIF info
		if ($size_meta && $this->webp_support(true) && !empty($size_meta[$this->_sys_format . '_saved'])) {
			$is_avif         = 'avif' === $this->_sys_format;
			$size_meta_saved = $size_meta[$this->_sys_format . '_saved'];
			$size_meta_total = $size_meta[$this->_sys_format . '_total'];

			$percent = ceil(($size_meta_saved * 100) / $size_meta_total);

			$link = Utility::build_url(Router::ACTION_IMG_OPTM, $this->_sys_format . $post_id);
			$desc = false;

			$cls = '';

			if ($this->info($short_path . '.' . $this->_sys_format, $post_id)) {
				$curr_status = __('(optm)', 'litespeed-cache');
				$desc        = $is_avif
					? __('Currently using optimized version of AVIF file.', 'litespeed-cache')
					: __('Currently using optimized version of WebP file.', 'litespeed-cache');
				$desc       .= '&#10;' . __('Click to switch to original (unoptimized) version.', 'litespeed-cache');
			} elseif ($this->info($short_path . '.optm.' . $this->_sys_format, $post_id)) {
				$cls        .= ' litespeed-warning';
				$curr_status = __('(non-optm)', 'litespeed-cache');
				$desc        = $is_avif
					? __('Currently using original (unoptimized) version of AVIF file.', 'litespeed-cache')
					: __('Currently using original (unoptimized) version of WebP file.', 'litespeed-cache');
				$desc       .= '&#10;' . __('Click to switch to optimized version.', 'litespeed-cache');
			}

			echo GUI::pie_tiny(
				$percent,
				24,
				sprintf(
					$is_avif ? __('AVIF file reduced by %1$s (%2$s)', 'litespeed-cache') : __('WebP file reduced by %1$s (%2$s)', 'litespeed-cache'),
					$percent . '%',
					Utility::real_size($size_meta_saved)
				),
				'left'
			);
			printf($is_avif ? __('AVIF saved %s', 'litespeed-cache') : __('WebP saved %s', 'litespeed-cache'), $percent . '%');

			if ($desc) {
				printf(' <a href="%1$s" class="litespeed-media-href %2$s" data-balloon-pos="left" data-balloon-break aria-label="%3$s">%4$s</a>', $link, $cls, $desc, $curr_status);
			} else {
				printf(
					' <span class="litespeed-desc" data-balloon-pos="left" data-balloon-break aria-label="%1$s&#10;%2$s">%3$s</span>',
					__('Using optimized version of file. ', 'litespeed-cache'),
					$is_avif ? __('No backup of unoptimized AVIF file exists.', 'litespeed-cache') : __('No backup of unoptimized WebP file exists.', 'litespeed-cache'),
					__('(optm)', 'litespeed-cache')
				);
			}
		} else {
			echo $this->next_gen_image_title() . '<span class="litespeed-left10">—</span>';
		}

		echo '</p>';

		// Delete row btn
		if ($size_meta) {
			printf(
				'<div class="row-actions"><span class="delete"><a href="%1$s" class="">%2$s</a></span></div>',
				Utility::build_url(Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RESET_ROW, false, null, array( 'id' => $post_id )),
				__('Restore from backup', 'litespeed-cache')
			);
			echo '</div>';
		}
	}

	/**
	 * Get wp size info
	 *
	 * NOTE: this is not used because it has to be after admin_init
	 *
	 * @since 1.6.2
	 * @return array $sizes Data for all currently-registered image sizes.
	 */
	public function get_image_sizes() {
		global $_wp_additional_image_sizes;
		$sizes = array();

		foreach (get_intermediate_image_sizes() as $_size) {
			if (in_array($_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ))) {
				$sizes[$_size]['width']  = get_option($_size . '_size_w');
				$sizes[$_size]['height'] = get_option($_size . '_size_h');
				$sizes[$_size]['crop']   = (bool) get_option($_size . '_crop');
			} elseif (isset($_wp_additional_image_sizes[$_size])) {
				$sizes[$_size] = array(
					'width' => $_wp_additional_image_sizes[$_size]['width'],
					'height' => $_wp_additional_image_sizes[$_size]['height'],
					'crop' => $_wp_additional_image_sizes[$_size]['crop'],
				);
			}
		}

		return $sizes;
	}

	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function webp_support( $sys_level = false ) {
		if ($sys_level) {
			return $this->_sys_format;
		}
		return $this->_format; // User level next gen support
	}
	private function _browser_support_next_gen() {
		if (!empty($_SERVER['HTTP_ACCEPT'])) {
			if (strpos($_SERVER['HTTP_ACCEPT'], 'image/' . $this->_sys_format) !== false) {
				return true;
			}
		}

		if (!empty($_SERVER['HTTP_USER_AGENT'])) {
			$user_agents = array( 'chrome-lighthouse', 'googlebot', 'page speed' );
			foreach ($user_agents as $user_agent) {
				if (stripos($_SERVER['HTTP_USER_AGENT'], $user_agent) !== false) {
					return true;
				}
			}

			if (preg_match('/iPhone OS (\d+)_/i', $_SERVER['HTTP_USER_AGENT'], $matches)) {
				if ($matches[1] >= 14) {
					return true;
				}
			}

			if (preg_match('/Firefox\/(\d+)/i', $_SERVER['HTTP_USER_AGENT'], $matches)) {
				if ($matches[1] >= 65) {
					return true;
				}
			}
		}

		return false;
	}

	/**
	 * Get next gen image title
	 *
	 * @since 7.0
	 */
	public function next_gen_image_title() {
		$next_gen_img = 'WebP';
		if ($this->conf(Base::O_IMG_OPTM_WEBP) == 2) {
			$next_gen_img = 'AVIF';
		}
		return $next_gen_img;
	}

	/**
	 * Run lazy load process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * Only do for main page. Do NOT do for esi or dynamic content.
	 *
	 * @since  1.4
	 * @access public
	 * @return  string The buffer
	 */
	public function finalize( $content ) {
		if (defined('LITESPEED_NO_LAZY')) {
			Debug2::debug2('[Media] bypass: NO_LAZY const');
			return $content;
		}

		if (!defined('LITESPEED_IS_HTML')) {
			Debug2::debug2('[Media] bypass: Not frontend HTML type');
			return $content;
		}

		if (!Control::is_cacheable()) {
			self::debug('bypass: Not cacheable');
			return $content;
		}

		self::debug('finalize');

		$this->content = $content;
		$this->_finalize();
		return $this->content;
	}

	/**
	 * Run lazyload replacement for images in buffer
	 *
	 * @since  1.4
	 * @access private
	 */
	private function _finalize() {
		/**
		 * Use webp for optimized images
		 *
		 * @since 1.6.2
		 */
		if ($this->webp_support()) {
			$this->content = $this->_replace_buffer_img_webp($this->content);
		}

		/**
		 * Check if URI is excluded
		 *
		 * @since  3.0
		 */
		$excludes = $this->conf(Base::O_MEDIA_LAZY_URI_EXC);
		if (!defined('LITESPEED_GUEST_OPTM')) {
			$result = Utility::str_hit_array($_SERVER['REQUEST_URI'], $excludes);
			if ($result) {
				self::debug('bypass lazyload: hit URI Excludes setting: ' . $result);
				return;
			}
		}

		$cfg_lazy          = (defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_MEDIA_LAZY)) && !$this->cls('Metabox')->setting('litespeed_no_image_lazy');
		$cfg_iframe_lazy   = defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_MEDIA_IFRAME_LAZY);
		$cfg_js_delay      = defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_OPTM_JS_DEFER) == 2;
		$cfg_trim_noscript = defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_OPTM_NOSCRIPT_RM);
		$cfg_vpi           = defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_MEDIA_VPI);

		// Preload VPI
		if ($cfg_vpi) {
			$this->_parse_img_for_preload();
		}

		if ($cfg_lazy) {
			if ($cfg_vpi) {
				add_filter('litespeed_media_lazy_img_excludes', array( $this->cls('Metabox'), 'lazy_img_excludes' ));
			}
			list($src_list, $html_list, $placeholder_list) = $this->_parse_img();
			$html_list_ori                                 = $html_list;
		} else {
			self::debug('lazyload disabled');
		}

		// image lazy load
		if ($cfg_lazy) {
			$__placeholder = Placeholder::cls();

			foreach ($html_list as $k => $v) {
				$size = $placeholder_list[$k];
				$src  = $src_list[$k];

				$html_list[$k] = $__placeholder->replace($v, $src, $size);
			}
		}

		if ($cfg_lazy) {
			$this->content = str_replace($html_list_ori, $html_list, $this->content);
		}

		// iframe lazy load
		if ($cfg_iframe_lazy) {
			$html_list     = $this->_parse_iframe();
			$html_list_ori = $html_list;

			foreach ($html_list as $k => $v) {
				$snippet = $cfg_trim_noscript ? '' : '<noscript>' . $v . '</noscript>';
				if ($cfg_js_delay) {
					$v = str_replace(' src=', ' data-litespeed-src=', $v);
				} else {
					$v = str_replace(' src=', ' data-src=', $v);
				}
				$v       = str_replace('<iframe ', '<iframe data-lazyloaded="1" src="about:blank" ', $v);
				$snippet = $v . $snippet;

				$html_list[$k] = $snippet;
			}

			$this->content = str_replace($html_list_ori, $html_list, $this->content);
		}

		// Include lazyload lib js and init lazyload
		if ($cfg_lazy || $cfg_iframe_lazy) {
			$lazy_lib      = '<script data-no-optimize="1">window.lazyLoadOptions=Object.assign({},{threshold:' . apply_filters('litespeed_lazyload_threshold', 300) . '},window.lazyLoadOptions||{});' . File::read(LSCWP_DIR . self::LIB_FILE_IMG_LAZYLOAD) . '</script>';
			if ($cfg_js_delay) {
				// Load JS delay lib
				if (!defined('LITESPEED_JS_DELAY_LIB_LOADED')) {
					define('LITESPEED_JS_DELAY_LIB_LOADED', true);
					$lazy_lib .= '<script data-no-optimize="1">' . File::read(LSCWP_DIR . Optimize::LIB_FILE_JS_DELAY) . '</script>';
				}
			}

			$this->content = str_replace('</body>', $lazy_lib . '</body>', $this->content);
		}
	}

	/**
	 * Parse img src for VPI preload only
	 * Note: Didn't reuse the _parse_img() bcoz it contains parent cls replacement and other logic which is not needed for preload
	 *
	 * @since 6.2
	 */
	private function _parse_img_for_preload() {
		// Load VPI setting
		$is_mobile = $this->_separate_mobile();
		$vpi_files = $this->cls('Metabox')->setting($is_mobile ? 'litespeed_vpi_list_mobile' : 'litespeed_vpi_list');
		if ($vpi_files) {
			$vpi_files = Utility::sanitize_lines($vpi_files, 'basename');
		}
		if (!$vpi_files) {
			return;
		}
		if (!$this->content) {
			return;
		}

		$content = preg_replace(array( '#<!--.*-->#sU', '#<noscript([^>]*)>.*</noscript>#isU' ), '', $this->content);
		if (!$content) {
			return;
		}

		preg_match_all('#<img\s+([^>]+)/?>#isU', $content, $matches, PREG_SET_ORDER);
		foreach ($matches as $match) {
			$attrs = Utility::parse_attr($match[1]);

			if (empty($attrs['src'])) {
				continue;
			}

			if (strpos($attrs['src'], 'base64') !== false || substr($attrs['src'], 0, 5) === 'data:') {
				Debug2::debug2('[Media] lazyload bypassed base64 img');
				continue;
			}

			if (strpos($attrs['src'], '{') !== false) {
				Debug2::debug2('[Media] image src has {} ' . $attrs['src']);
				continue;
			}

			// If the src contains VPI filename, then preload it
			if (!Utility::str_hit_array($attrs['src'], $vpi_files)) {
				continue;
			}

			Debug2::debug2('[Media] VPI preload found and matched: ' . $attrs['src']);

			$this->_vpi_preload_list[] = $attrs['src'];
		}
	}

	/**
	 * Parse img src
	 *
	 * @since  1.4
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_img() {
		/**
		 * Exclude list
		 *
		 * @since 1.5
		 * @since  2.7.1 Changed to array
		 */
		$excludes = apply_filters('litespeed_media_lazy_img_excludes', $this->conf(Base::O_MEDIA_LAZY_EXC));

		$cls_excludes   = apply_filters('litespeed_media_lazy_img_cls_excludes', $this->conf(Base::O_MEDIA_LAZY_CLS_EXC));
		$cls_excludes[] = 'skip-lazy'; // https://core.trac.wordpress.org/ticket/44427

		$src_list         = array();
		$html_list        = array();
		$placeholder_list = array();

		$content = preg_replace(
			array(
				'#<!--.*-->#sU',
				'#<noscript([^>]*)>.*</noscript>#isU',
				'#<script([^>]*)>.*</script>#isU', // Added to remove warning of file not found when image size detection is turned ON.
			),
			'',
			$this->content
		);
		/**
		 * Exclude parent classes
		 *
		 * @since  3.0
		 */
		$parent_cls_exc = apply_filters('litespeed_media_lazy_img_parent_cls_excludes', $this->conf(Base::O_MEDIA_LAZY_PARENT_CLS_EXC));
		if ($parent_cls_exc) {
			Debug2::debug2('[Media] Lazyload Class excludes', $parent_cls_exc);
			foreach ($parent_cls_exc as $v) {
				$content = preg_replace('#<(\w+) [^>]*class=(\'|")[^\'"]*' . preg_quote($v, '#') . '[^\'"]*\2[^>]*>.*</\1>#sU', '', $content);
			}
		}

		preg_match_all('#<img\s+([^>]+)/?>#isU', $content, $matches, PREG_SET_ORDER);
		foreach ($matches as $match) {
			$attrs = Utility::parse_attr($match[1]);

			if (empty($attrs['src'])) {
				continue;
			}

			/**
			 * Add src validation to bypass base64 img src
			 *
			 * @since  1.6
			 */
			if (strpos($attrs['src'], 'base64') !== false || substr($attrs['src'], 0, 5) === 'data:') {
				Debug2::debug2('[Media] lazyload bypassed base64 img');
				continue;
			}

			Debug2::debug2('[Media] lazyload found: ' . $attrs['src']);

			if (
				!empty($attrs['data-no-lazy']) ||
				!empty($attrs['data-skip-lazy']) ||
				!empty($attrs['data-lazyloaded']) ||
				!empty($attrs['data-src']) ||
				!empty($attrs['data-srcset'])
			) {
				Debug2::debug2('[Media] bypassed');
				continue;
			}

			if (!empty($attrs['class']) && ($hit = Utility::str_hit_array($attrs['class'], $cls_excludes))) {
				Debug2::debug2('[Media] lazyload image cls excludes [hit] ' . $hit);
				continue;
			}

			/**
			 * Exclude from lazyload by setting
			 *
			 * @since  1.5
			 */
			if ($excludes && Utility::str_hit_array($attrs['src'], $excludes)) {
				Debug2::debug2('[Media] lazyload image exclude ' . $attrs['src']);
				continue;
			}

			/**
			 * Excldues invalid image src from buddypress avatar crop
			 *
			 * @see  https://wordpress.org/support/topic/lazy-load-breaking-buddypress-upload-avatar-feature
			 * @since  3.0
			 */
			if (strpos($attrs['src'], '{') !== false) {
				Debug2::debug2('[Media] image src has {} ' . $attrs['src']);
				continue;
			}

			// to avoid multiple replacement
			if (in_array($match[0], $html_list)) {
				continue;
			}

			// Add missing dimensions
			if (defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_MEDIA_ADD_MISSING_SIZES)) {
				if (!apply_filters('litespeed_media_add_missing_sizes', true)) {
					Debug2::debug2('[Media] add_missing_sizes bypassed via litespeed_media_add_missing_sizes filter');
				} elseif (empty($attrs['width']) || $attrs['width'] == 'auto' || empty($attrs['height']) || $attrs['height'] == 'auto') {
					self::debug('⚠️ Missing sizes for image [src] ' . $attrs['src']);
					$dimensions = $this->_detect_dimensions($attrs['src']);
					if ($dimensions) {
						$ori_width  = $dimensions[0];
						$ori_height = $dimensions[1];
						// Calculate height based on width
						if (!empty($attrs['width']) && $attrs['width'] != 'auto') {
							$ori_height = intval(($ori_height * $attrs['width']) / $ori_width);
						} elseif (!empty($attrs['height']) && $attrs['height'] != 'auto') {
							$ori_width = intval(($ori_width * $attrs['height']) / $ori_height);
						}

						$attrs['width']  = $ori_width;
						$attrs['height'] = $ori_height;
						$new_html        = preg_replace('#\s+(width|height)=(["\'])[^\2]*?\2#', '', $match[0]);
						$new_html        = preg_replace(
							'#<img\s+#i',
							'<img width="' . Str::trim_quotes($attrs['width']) . '" height="' . Str::trim_quotes($attrs['height']) . '" ',
							$new_html
						);
						self::debug('Add missing sizes ' . $attrs['width'] . 'x' . $attrs['height'] . ' to ' . $attrs['src']);
						$this->content = str_replace($match[0], $new_html, $this->content);
						$match[0]      = $new_html;
					}
				}
			}

			$placeholder = false;
			if (!empty($attrs['width']) && $attrs['width'] != 'auto' && !empty($attrs['height']) && $attrs['height'] != 'auto') {
				$placeholder = intval($attrs['width']) . 'x' . intval($attrs['height']);
			}

			$src_list[]         = $attrs['src'];
			$html_list[]        = $match[0];
			$placeholder_list[] = $placeholder;
		}

		return array( $src_list, $html_list, $placeholder_list );
	}

	/**
	 * Detect the original sizes
	 *
	 * @since  4.0
	 */
	private function _detect_dimensions( $src ) {
		if ($pathinfo = Utility::is_internal_file($src)) {
			$src = $pathinfo[0];
		} elseif (apply_filters('litespeed_media_ignore_remote_missing_sizes', false)) {
			return false;
		}

		if (substr($src, 0, 2) == '//') {
			$src = 'https:' . $src;
		}

		try {
			$sizes = getimagesize($src);
		} catch (\Exception $e) {
			return false;
		}

		if (!empty($sizes[0]) && !empty($sizes[1])) {
			return $sizes;
		}

		return false;
	}

	/**
	 * Parse iframe src
	 *
	 * @since  1.4
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_iframe() {
		$cls_excludes   = apply_filters('litespeed_media_iframe_lazy_cls_excludes', $this->conf(Base::O_MEDIA_IFRAME_LAZY_CLS_EXC));
		$cls_excludes[] = 'skip-lazy'; // https://core.trac.wordpress.org/ticket/44427

		$html_list = array();

		$content = preg_replace('#<!--.*-->#sU', '', $this->content);

		/**
		 * Exclude parent classes
		 *
		 * @since  3.0
		 */
		$parent_cls_exc = apply_filters('litespeed_media_iframe_lazy_parent_cls_excludes', $this->conf(Base::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC));
		if ($parent_cls_exc) {
			Debug2::debug2('[Media] Iframe Lazyload Class excludes', $parent_cls_exc);
			foreach ($parent_cls_exc as $v) {
				$content = preg_replace('#<(\w+) [^>]*class=(\'|")[^\'"]*' . preg_quote($v, '#') . '[^\'"]*\2[^>]*>.*</\1>#sU', '', $content);
			}
		}

		preg_match_all('#<iframe \s*([^>]+)></iframe>#isU', $content, $matches, PREG_SET_ORDER);
		foreach ($matches as $match) {
			$attrs = Utility::parse_attr($match[1]);

			if (empty($attrs['src'])) {
				continue;
			}

			Debug2::debug2('[Media] found iframe: ' . $attrs['src']);

			if (!empty($attrs['data-no-lazy']) || !empty($attrs['data-skip-lazy']) || !empty($attrs['data-lazyloaded']) || !empty($attrs['data-src'])) {
				Debug2::debug2('[Media] bypassed');
				continue;
			}

			if (!empty($attrs['class']) && ($hit = Utility::str_hit_array($attrs['class'], $cls_excludes))) {
				Debug2::debug2('[Media] iframe lazyload cls excludes [hit] ' . $hit);
				continue;
			}

			if (apply_filters('litespeed_iframe_lazyload_exc', false, $attrs['src'])) {
				Debug2::debug2('[Media] bypassed by filter');
				continue;
			}

			// to avoid multiple replacement
			if (in_array($match[0], $html_list)) {
				continue;
			}

			$html_list[] = $match[0];
		}

		return $html_list;
	}

	/**
	 * Replace image src to webp
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function _replace_buffer_img_webp( $content ) {
		/**
		 * Added custom element & attribute support
		 *
		 * @since 2.2.2
		 */
		$webp_ele_to_check = $this->conf(Base::O_IMG_OPTM_WEBP_ATTR);

		foreach ($webp_ele_to_check as $v) {
			if (!$v || strpos($v, '.') === false) {
				Debug2::debug2('[Media] buffer_webp no . attribute ' . $v);
				continue;
			}

			Debug2::debug2('[Media] buffer_webp attribute ' . $v);

			$v    = explode('.', $v);
			$attr = preg_quote($v[1], '#');
			if ($v[0]) {
				$pattern = '#<' . preg_quote($v[0], '#') . '([^>]+)' . $attr . '=([\'"])(.+)\2#iU';
			} else {
				$pattern = '# ' . $attr . '=([\'"])(.+)\1#iU';
			}

			preg_match_all($pattern, $content, $matches);

			foreach ($matches[$v[0] ? 3 : 2] as $k2 => $url) {
				// Check if is a DATA-URI
				if (strpos($url, 'data:image') !== false) {
					continue;
				}

				if (!($url2 = $this->replace_webp($url))) {
					continue;
				}

				if ($v[0]) {
					$html_snippet = sprintf('<' . $v[0] . '%1$s' . $v[1] . '=%2$s', $matches[1][$k2], $matches[2][$k2] . $url2 . $matches[2][$k2]);
				} else {
					$html_snippet = sprintf(' ' . $v[1] . '=%1$s', $matches[1][$k2] . $url2 . $matches[1][$k2]);
				}

				$content = str_replace($matches[0][$k2], $html_snippet, $content);
			}
		}

		// parse srcset
		// todo: should apply this to cdn too
		if ((defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_IMG_OPTM_WEBP_REPLACE_SRCSET)) && $this->webp_support()) {
			$content = Utility::srcset_replace($content, array( $this, 'replace_webp' ));
		}

		// Replace background-image
		if ((defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_IMG_OPTM_WEBP)) && $this->webp_support()) {
			$content = $this->replace_background_webp($content);
		}

		return $content;
	}

	/**
	 * Replace background image
	 *
	 * @since  4.0
	 */
	public function replace_background_webp( $content ) {
		Debug2::debug2('[Media] Start replacing background WebP/AVIF.');

		// Handle Elementors data-settings json encode background-images
		$content = $this->replace_urls_in_json($content);

		// preg_match_all( '#background-image:(\s*)url\((.*)\)#iU', $content, $matches );
		preg_match_all('#url\(([^)]+)\)#iU', $content, $matches);
		foreach ($matches[1] as $k => $url) {
			// Check if is a DATA-URI
			if (strpos($url, 'data:image') !== false) {
				continue;
			}

			/**
			 * Support quotes in src `background-image: url('src')`
			 *
			 * @since 2.9.3
			 */
			$url = trim($url, '\'"');

			// Fix Elementors Slideshow unusual background images like  style="background-image: url(&quot;https://xxxx.png&quot;);"
			if (strpos($url, '&quot;') === 0 && substr($url, -6) == '&quot;') {
				$url = substr($url, 6, -6);
			}

			if (!($url2 = $this->replace_webp($url))) {
				continue;
			}

			// $html_snippet = sprintf( 'background-image:%1$surl(%2$s)', $matches[ 1 ][ $k ], $url2 );
			$html_snippet = str_replace($url, $url2, $matches[0][$k]);
			$content      = str_replace($matches[0][$k], $html_snippet, $content);
		}

		return $content;
	}

	/**
	 * Replace images in json data settings attributes
	 *
	 * @since  6.2
	 */
	public function replace_urls_in_json( $content ) {
		$pattern      = '/data-settings="(.*?)"/i';
		$parent_class = $this;

		preg_match_all($pattern, $content, $matches, PREG_SET_ORDER);

		foreach ($matches as $match) {
			// Check if the string contains HTML entities
			$isEncoded = preg_match('/&quot;|&lt;|&gt;|&amp;|&apos;/', $match[1]);

			// Decode HTML entities in the JSON string
			$jsonString = html_entity_decode($match[1]);

			$jsonData = \json_decode($jsonString, true);

			if (json_last_error() === JSON_ERROR_NONE) {
				$did_webp_replace = false;

				array_walk_recursive($jsonData, function ( &$item, $key ) use ( &$did_webp_replace, $parent_class ) {
					if ($key == 'url') {
						$item_image = $parent_class->replace_webp($item);
						if ($item_image) {
							$item = $item_image;

							$did_webp_replace = true;
						}
					}
				});

				if ($did_webp_replace) {
					// Re-encode the modified array back to a JSON string
					$newJsonString = \json_encode($jsonData);

					// Re-encode the JSON string to HTML entities only if it was originally encoded
					if ($isEncoded) {
						$newJsonString = htmlspecialchars($newJsonString, ENT_QUOTES | 0); // ENT_HTML401 is for PHPv5.4+
					}

					// Replace the old JSON string in the content with the new, modified JSON string
					$content = str_replace($match[1], $newJsonString, $content);
				}
			}
		}

		return $content;
	}

	/**
	 * Replace internal image src to webp or avif
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function replace_webp( $url ) {
		if (!$this->webp_support()) {
			self::debug2('No next generation format chosen in setting, bypassed');
			return false;
		}
		Debug2::debug2('[Media] ' . $this->_sys_format . ' replacing: ' . substr($url, 0, 200));

		if (substr($url, -5) === '.' . $this->_sys_format) {
			Debug2::debug2('[Media] already ' . $this->_sys_format);
			return false;
		}

		/**
		 * WebP API hook
		 * NOTE: As $url may contain query strings, WebP check will need to parse_url before appending .webp
		 *
		 * @since  2.9.5
		 * @see  #751737 - API docs for WebP generation
		 */
		if (apply_filters('litespeed_media_check_ori', Utility::is_internal_file($url), $url)) {
			// check if has webp file
			if (apply_filters('litespeed_media_check_webp', Utility::is_internal_file($url, $this->_sys_format), $url)) {
				$url .= '.' . $this->_sys_format;
			} else {
				Debug2::debug2('[Media] -no WebP or AVIF file, bypassed');
				return false;
			}
		} else {
			Debug2::debug2('[Media] -no file, bypassed');
			return false;
		}

		Debug2::debug2('[Media] - replaced to: ' . $url);

		return $url;
	}

	/**
	 * Hook to wp_get_attachment_image_src
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  array $img The URL of the attachment image src, the width, the height
	 * @return array
	 */
	public function webp_attach_img_src( $img ) {
		Debug2::debug2('[Media] changing attach src: ' . $img[0]);
		if ($img && ($url = $this->replace_webp($img[0]))) {
			$img[0] = $url;
		}
		return $img;
	}

	/**
	 * Try to replace img url
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  string $url
	 * @return string
	 */
	public function webp_url( $url ) {
		if ($url && ($url2 = $this->replace_webp($url))) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Hook to replace WP responsive images
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  array $srcs
	 * @return array
	 */
	public function webp_srcset( $srcs ) {
		if ($srcs) {
			foreach ($srcs as $w => $data) {
				if (!($url = $this->replace_webp($data['url']))) {
					continue;
				}
				$srcs[$w]['url'] = $url;
			}
		}
		return $srcs;
	}
}
<?php

/**
 * The class to optimize image.
 *
 * @since       2.0
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/src
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

use WpOrg\Requests\Autoload;
use WpOrg\Requests\Requests;

defined('WPINC') || exit();

class Img_Optm extends Base {

	const LOG_TAG = '🗜️';

	const CLOUD_ACTION_NEW_REQ         = 'new_req';
	const CLOUD_ACTION_TAKEN           = 'taken';
	const CLOUD_ACTION_REQUEST_DESTROY = 'imgoptm_destroy';
	const CLOUD_ACTION_CLEAN           = 'clean';

	const TYPE_NEW_REQ           = 'new_req';
	const TYPE_RESCAN            = 'rescan';
	const TYPE_DESTROY           = 'destroy';
	const TYPE_RESET_COUNTER     = 'reset_counter';
	const TYPE_CLEAN             = 'clean';
	const TYPE_PULL              = 'pull';
	const TYPE_BATCH_SWITCH_ORI  = 'batch_switch_ori';
	const TYPE_BATCH_SWITCH_OPTM = 'batch_switch_optm';
	const TYPE_CALC_BKUP         = 'calc_bkup';
	const TYPE_RESET_ROW         = 'reset_row';
	const TYPE_RM_BKUP           = 'rm_bkup';

	const STATUS_NEW        = 0; // 'new';
	const STATUS_RAW        = 1; // 'raw';
	const STATUS_REQUESTED  = 3; // 'requested';
	const STATUS_NOTIFIED   = 6; // 'notified';
	const STATUS_DUPLICATED = 8; // 'duplicated';
	const STATUS_PULLED     = 9; // 'pulled';
	const STATUS_FAILED     = -1; // 'failed';
	const STATUS_MISS       = -3; // 'miss';
	const STATUS_ERR_FETCH  = -5; // 'err_fetch';
	const STATUS_ERR_404    = -6; // 'err_404';
	const STATUS_ERR_OPTM   = -7; // 'err_optm';
	const STATUS_XMETA      = -8; // 'xmeta';
	const STATUS_ERR        = -9; // 'err';
	const DB_SIZE           = 'litespeed-optimize-size';
	const DB_SET            = 'litespeed-optimize-set';

	const DB_NEED_PULL = 'need_pull';

	private $wp_upload_dir;
	private $tmp_pid;
	private $tmp_type;
	private $tmp_path;
	private $_img_in_queue     = array();
	private $_existed_src_list = array();
	private $_pids_set         = array();
	private $_thumbnail_set    = '';
	private $_table_img_optm;
	private $_table_img_optming;
	private $_cron_ran = false;

	private $__media;
	private $__data;
	protected $_summary;
	private $_format = '';

	/**
	 * Init
	 *
	 * @since  2.0
	 */
	public function __construct() {
		Debug2::debug2('[ImgOptm] init');

		$this->wp_upload_dir      = wp_upload_dir();
		$this->__media            = $this->cls('Media');
		$this->__data             = $this->cls('Data');
		$this->_table_img_optm    = $this->__data->tb('img_optm');
		$this->_table_img_optming = $this->__data->tb('img_optming');

		$this->_summary = self::get_summary();
		if (empty($this->_summary['next_post_id'])) {
			$this->_summary['next_post_id'] = 0;
		}
		if ($this->conf(Base::O_IMG_OPTM_WEBP)) {
			$this->_format = 'webp';
			if ($this->conf(Base::O_IMG_OPTM_WEBP) == 2) {
				$this->_format = 'avif';
			}
		}
	}

	/**
	 * Gather images auto when update attachment meta
	 * This is to optimize new uploaded images first. Stored in img_optm table.
	 * Later normal process will auto remove these records when trying to optimize these images again
	 *
	 * @since  4.0
	 */
	public function wp_update_attachment_metadata( $meta_value, $post_id ) {
		global $wpdb;

		self::debug2('🖌️ Auto update attachment meta [id] ' . $post_id);
		if (empty($meta_value['file'])) {
			return;
		}

		// Load gathered images
		if (!$this->_existed_src_list) {
			// To aavoid extra query when recalling this function
			self::debug('SELECT src from img_optm table');
			if ($this->__data->tb_exist('img_optm')) {
				$q    = "SELECT src FROM `$this->_table_img_optm` WHERE post_id = %d";
				$list = $wpdb->get_results($wpdb->prepare($q, $post_id));
				foreach ($list as $v) {
					$this->_existed_src_list[] = $post_id . '.' . $v->src;
				}
			}
			if ($this->__data->tb_exist('img_optming')) {
				$q    = "SELECT src FROM `$this->_table_img_optming` WHERE post_id = %d";
				$list = $wpdb->get_results($wpdb->prepare($q, $post_id));
				foreach ($list as $v) {
					$this->_existed_src_list[] = $post_id . '.' . $v->src;
				}
			} else {
				$this->__data->tb_create('img_optming');
			}
		}

		// Prepare images
		$this->tmp_pid  = $post_id;
		$this->tmp_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
		$this->_append_img_queue($meta_value, true);
		if (!empty($meta_value['sizes'])) {
			array_map(array( $this, '_append_img_queue' ), $meta_value['sizes']);
		}

		if (!$this->_img_in_queue) {
			self::debug('auto update attachment meta 2 bypass: empty _img_in_queue');
			return;
		}

		// Save to DB
		$this->_save_raw();

		// $this->_send_request();
	}

	/**
	 * Auto send optm request
	 *
	 * @since  2.4.1
	 * @access public
	 */
	public static function cron_auto_request() {
		if (!wp_doing_cron()) {
			return false;
		}

		$instance = self::cls();
		$instance->new_req();
	}

	/**
	 * Calculate wet run allowance
	 *
	 * @since 3.0
	 */
	public function wet_limit() {
		$wet_limit = 1;
		if (!empty($this->_summary['img_taken'])) {
			$wet_limit = pow($this->_summary['img_taken'], 2);
		}

		if ($wet_limit == 1 && !empty($this->_summary['img_status.' . self::STATUS_ERR_OPTM])) {
			$wet_limit = pow($this->_summary['img_status.' . self::STATUS_ERR_OPTM], 2);
		}

		if ($wet_limit < Cloud::IMG_OPTM_DEFAULT_GROUP) {
			return $wet_limit;
		}

		// No limit
		return false;
	}

	/**
	 * Push raw img to image optm server
	 *
	 * @since 1.6
	 * @access public
	 */
	public function new_req() {
		global $wpdb;

		// check if is running
		if (!empty($this->_summary['is_running']) && time() - $this->_summary['is_running'] < apply_filters('litespeed_imgoptm_new_req_interval', 3600)) {
			self::debug('The previous req was in 3600s.');
			return;
		}
		$this->_summary['is_running'] = time();
		self::save_summary();

		// Check if has credit to push
		$err       = false;
		$allowance = Cloud::cls()->allowance(Cloud::SVC_IMG_OPTM, $err);

		$wet_limit = $this->wet_limit();

		self::debug("allowance_max $allowance wet_limit $wet_limit");
		if ($wet_limit && $wet_limit < $allowance) {
			$allowance = $wet_limit;
		}

		if (!$allowance) {
			self::debug('❌ No credit');
			Admin_Display::error(Error::msg($err));
			$this->_finished_running();
			return;
		}

		self::debug('preparing images to push');

		$this->__data->tb_create('img_optming');

		$q               = "SELECT COUNT(1) FROM `$this->_table_img_optming` WHERE optm_status = %d";
		$q               = $wpdb->prepare($q, array( self::STATUS_REQUESTED ));
		$total_requested = $wpdb->get_var($q);
		$max_requested   = $allowance * 1;

		if ($total_requested > $max_requested) {
			self::debug('❌ Too many queued images (' . $total_requested . ' > ' . $max_requested . ')');
			Admin_Display::error(Error::msg('too_many_requested'));
			$this->_finished_running();
			return;
		}

		$allowance -= $total_requested;

		if ($allowance < 1) {
			self::debug('❌ Too many requested images ' . $total_requested);
			Admin_Display::error(Error::msg('too_many_requested'));
			$this->_finished_running();
			return;
		}

		// Limit maximum number of items waiting to be pulled
		$q              = "SELECT COUNT(1) FROM `$this->_table_img_optming` WHERE optm_status = %d";
		$q              = $wpdb->prepare($q, array( self::STATUS_NOTIFIED ));
		$total_notified = $wpdb->get_var($q);
		if ($total_notified > 0) {
			self::debug('❌ Too many notified images (' . $total_notified . ')');
			Admin_Display::error(Error::msg('too_many_notified'));
			$this->_finished_running();
			return;
		}

		$q         = "SELECT COUNT(1) FROM `$this->_table_img_optming` WHERE optm_status IN (%d, %d)";
		$q         = $wpdb->prepare($q, array( self::STATUS_NEW, self::STATUS_RAW ));
		$total_new = $wpdb->get_var($q);
		// $allowance -= $total_new;

		// May need to get more images
		$list = array();
		$more = $allowance - $total_new;
		if ($more > 0) {
			$q    = "SELECT b.post_id, b.meta_value
				FROM `$wpdb->posts` a
				LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
				WHERE b.meta_key = '_wp_attachment_metadata'
					AND a.post_type = 'attachment'
					AND a.post_status = 'inherit'
					AND a.ID>%d
					AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
				ORDER BY a.ID
				LIMIT %d
				";
			$q    = $wpdb->prepare($q, array( $this->_summary['next_post_id'], $more ));
			$list = $wpdb->get_results($q);
			foreach ($list as $v) {
				if (!$v->post_id) {
					continue;
				}

				$this->_summary['next_post_id'] = $v->post_id;

				$meta_value = $this->_parse_wp_meta_value($v);
				if (!$meta_value) {
					continue;
				}
				$meta_value['file'] = wp_normalize_path($meta_value['file']);
				$basedir            = $this->wp_upload_dir['basedir'] . '/';
				if (strpos($meta_value['file'], $basedir) === 0) {
					$meta_value['file'] = substr($meta_value['file'], strlen($basedir));
				}

				$this->tmp_pid  = $v->post_id;
				$this->tmp_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
				$this->_append_img_queue($meta_value, true);
				if (!empty($meta_value['sizes'])) {
					array_map(array( $this, '_append_img_queue' ), $meta_value['sizes']);
				}
			}

			self::save_summary();

			$num_a = count($this->_img_in_queue);
			self::debug('Images found: ' . $num_a);
			$this->_filter_duplicated_src();
			self::debug('Images after duplicated: ' . count($this->_img_in_queue));
			$this->_filter_invalid_src();
			self::debug('Images after invalid: ' . count($this->_img_in_queue));
			// Check w/ legacy imgoptm table, bypass finished images
			$this->_filter_legacy_src();

			$num_b = count($this->_img_in_queue);
			if ($num_b != $num_a) {
				self::debug('Images after filtered duplicated/invalid/legacy src: ' . $num_b);
			}

			// Save to DB
			$this->_save_raw();
		}

		// Push to Cloud server
		$accepted_imgs = $this->_send_request($allowance);

		$this->_finished_running();
		if (!$accepted_imgs) {
			return;
		}

		$placeholder1 = Admin_Display::print_plural($accepted_imgs[0], 'image');
		$placeholder2 = Admin_Display::print_plural($accepted_imgs[1], 'image');
		$msg          = sprintf(__('Pushed %1$s to Cloud server, accepted %2$s.', 'litespeed-cache'), $placeholder1, $placeholder2);
		Admin_Display::success($msg);
	}

	/**
	 * Set running to done
	 */
	private function _finished_running() {
		$this->_summary['is_running'] = 0;
		self::save_summary();
	}

	/**
	 * Add a new img to queue which will be pushed to request
	 *
	 * @since 1.6
	 * @access private
	 */
	private function _append_img_queue( $meta_value, $is_ori_file = false ) {
		if (empty($meta_value['file']) || empty($meta_value['width']) || empty($meta_value['height'])) {
			self::debug2('bypass image due to lack of file/w/h: pid ' . $this->tmp_pid, $meta_value);
			return;
		}

		$short_file_path = $meta_value['file'];

		if (!$is_ori_file) {
			$short_file_path = $this->tmp_path . $short_file_path;
		}

		// Check if src is gathered already or not
		if (in_array($this->tmp_pid . '.' . $short_file_path, $this->_existed_src_list)) {
			// Debug2::debug2( '[Img_Optm] bypass image due to gathered: pid ' . $this->tmp_pid . ' ' . $short_file_path );
			return;
		} else {
			// Append handled images
			$this->_existed_src_list[] = $this->tmp_pid . '.' . $short_file_path;
		}

		// check file exists or not
		$_img_info = $this->__media->info($short_file_path, $this->tmp_pid);

		$extension = pathinfo($short_file_path, PATHINFO_EXTENSION);
		if (!$_img_info || !in_array($extension, array( 'jpg', 'jpeg', 'png', 'gif' ))) {
			self::debug2('bypass image due to file not exist: pid ' . $this->tmp_pid . ' ' . $short_file_path);
			return;
		}

		// Check if optimized file exists or not
		$target_needed = false;
		if ($this->_format) {
			$target_file_path = $short_file_path . '.' . $this->_format;
			if (!$this->__media->info($target_file_path, $this->tmp_pid)) {
				$target_needed = true;
			}
		}
		if ($this->conf(self::O_IMG_OPTM_ORI)) {
			$target_file_path = substr($short_file_path, 0, -strlen($extension)) . 'bk.' . $extension;
			if (!$this->__media->info($target_file_path, $this->tmp_pid)) {
				$target_needed = true;
			}
		}
		if (!$target_needed) {
			self::debug2('bypass image due to optimized file exists: pid ' . $this->tmp_pid . ' ' . $short_file_path);
			return;
		}

		// Debug2::debug2( '[Img_Optm] adding image: pid ' . $this->tmp_pid );

		$this->_img_in_queue[] = array(
			'pid' => $this->tmp_pid,
			'md5' => $_img_info['md5'],
			'url' => $_img_info['url'],
			'src' => $short_file_path, // not needed in LiteSpeed IAPI, just leave for local storage after post
			'mime_type' => !empty($meta_value['mime-type']) ? $meta_value['mime-type'] : '',
		);
	}

	/**
	 * Save gathered image raw data
	 *
	 * @since  3.0
	 */
	private function _save_raw() {
		if (empty($this->_img_in_queue)) {
			return;
		}
		$data     = array();
		$pid_list = array();
		foreach ($this->_img_in_queue as $k => $v) {
			$_img_info = $this->__media->info($v['src'], $v['pid']);

			// attachment doesn't exist, delete the record
			if (empty($_img_info['url']) || empty($_img_info['md5'])) {
				unset($this->_img_in_queue[$k]);
				continue;
			}
			$pid_list[] = (int) $v['pid'];

			$data[] = $v['pid'];
			$data[] = self::STATUS_RAW;
			$data[] = $v['src'];
		}

		global $wpdb;
		$fields = 'post_id, optm_status, src';
		$q      = "INSERT INTO `$this->_table_img_optming` ( $fields ) VALUES ";

		// Add placeholder
		$q .= Utility::chunk_placeholder($data, $fields);

		// Store data
		$wpdb->query($wpdb->prepare($q, $data));

		$count = count($this->_img_in_queue);
		self::debug('Added raw images [total] ' . $count);

		$this->_img_in_queue = array();

		// Save thumbnail groups for future rescan index
		$this->_gen_thumbnail_set();

		$pid_list = array_unique($pid_list);
		self::debug('pid list to append to postmeta', $pid_list);
		$pid_list        = array_diff($pid_list, $this->_pids_set);
		$this->_pids_set = array_merge($this->_pids_set, $pid_list);

		$existed_meta = $wpdb->get_results("SELECT * FROM `$wpdb->postmeta` WHERE post_id IN ('" . implode("','", $pid_list) . "') AND meta_key='" . self::DB_SET . "'");
		$existed_pid  = array();
		if ($existed_meta) {
			foreach ($existed_meta as $v) {
				$existed_pid[] = $v->post_id;
			}
			self::debug('pid list to update postmeta', $existed_pid);
			$wpdb->query(
				$wpdb->prepare("UPDATE `$wpdb->postmeta` SET meta_value=%s WHERE post_id IN ('" . implode("','", $existed_pid) . "') AND meta_key=%s", array(
					$this->_thumbnail_set,
					self::DB_SET,
				))
			);
		}

		// Add new meta
		$new_pids = $existed_pid ? array_diff($pid_list, $existed_pid) : $pid_list;
		if ($new_pids) {
			self::debug('pid list to update postmeta', $new_pids);
			foreach ($new_pids as $v) {
				self::debug('New group set info [pid] ' . $v);
				$q = "INSERT INTO `$wpdb->postmeta` (post_id, meta_key, meta_value) VALUES (%d, %s, %s)";
				$wpdb->query($wpdb->prepare($q, array( $v, self::DB_SET, $this->_thumbnail_set )));
			}
		}
	}

	/**
	 * Generate thumbnail sets of current image group
	 *
	 * @since 5.4
	 */
	private function _gen_thumbnail_set() {
		if ($this->_thumbnail_set) {
			return;
		}
		$set = array();
		foreach (Media::cls()->get_image_sizes() as $size) {
			$curr_size = $size['width'] . 'x' . $size['height'];
			if (in_array($curr_size, $set)) {
				continue;
			}
			$set[] = $curr_size;
		}
		$this->_thumbnail_set = implode(PHP_EOL, $set);
	}

	/**
	 * Filter duplicated src in work table and $this->_img_in_queue, then mark them as duplicated
	 *
	 * @since 2.0
	 * @access private
	 */
	private function _filter_duplicated_src() {
		global $wpdb;

		$srcpath_list = array();

		$list = $wpdb->get_results("SELECT src FROM `$this->_table_img_optming`");
		foreach ($list as $v) {
			$srcpath_list[] = $v->src;
		}

		foreach ($this->_img_in_queue as $k => $v) {
			if (in_array($v['src'], $srcpath_list)) {
				unset($this->_img_in_queue[$k]);
				continue;
			}

			$srcpath_list[] = $v['src'];
		}
	}

	/**
	 * Filter legacy finished ones
	 *
	 * @since 5.4
	 */
	private function _filter_legacy_src() {
		global $wpdb;

		if (!$this->__data->tb_exist('img_optm')) {
			return;
		}

		if (!$this->_img_in_queue) {
			return;
		}

		$finished_ids = array();

		Utility::compatibility();
		$post_ids = array_unique(array_column($this->_img_in_queue, 'pid'));
		$list     = $wpdb->get_results("SELECT post_id FROM `$this->_table_img_optm` WHERE post_id in (" . implode(',', $post_ids) . ') GROUP BY post_id');
		foreach ($list as $v) {
			$finished_ids[] = $v->post_id;
		}

		foreach ($this->_img_in_queue as $k => $v) {
			if (in_array($v['pid'], $finished_ids)) {
				self::debug('Legacy image optimized [pid] ' . $v['pid']);
				unset($this->_img_in_queue[$k]);
				continue;
			}
		}

		// Drop all existing legacy records
		$wpdb->query("DELETE FROM `$this->_table_img_optm` WHERE post_id in (" . implode(',', $post_ids) . ')');
	}

	/**
	 * Filter the invalid src before sending
	 *
	 * @since 3.0.8.3
	 * @access private
	 */
	private function _filter_invalid_src() {
		$img_in_queue_invalid = array();
		foreach ($this->_img_in_queue as $k => $v) {
			if ($v['src']) {
				$extension = pathinfo($v['src'], PATHINFO_EXTENSION);
			}
			if (!$v['src'] || empty($extension) || !in_array($extension, array( 'jpg', 'jpeg', 'png', 'gif' ))) {
				$img_in_queue_invalid[] = $v['id'];
				unset($this->_img_in_queue[$k]);
				continue;
			}
		}

		if (!$img_in_queue_invalid) {
			return;
		}

		$count = count($img_in_queue_invalid);
		$msg   = sprintf(__('Cleared %1$s invalid images.', 'litespeed-cache'), $count);
		Admin_Display::success($msg);

		self::debug('Found invalid src [total] ' . $count);
	}

	/**
	 * Push img request to Cloud server
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _send_request( $allowance ) {
		global $wpdb;

		$q             = "SELECT id, src, post_id FROM `$this->_table_img_optming` WHERE optm_status=%d LIMIT %d";
		$q             = $wpdb->prepare($q, array( self::STATUS_RAW, $allowance ));
		$_img_in_queue = $wpdb->get_results($q);
		if (!$_img_in_queue) {
			return;
		}

		self::debug('Load img in queue [total] ' . count($_img_in_queue));

		$list = array();
		foreach ($_img_in_queue as $v) {
			$_img_info = $this->__media->info($v->src, $v->post_id);
			// If record is invalid, remove from img_optming table
			if (empty($_img_info['url']) || empty($_img_info['md5'])) {
				$wpdb->query($wpdb->prepare("DELETE FROM `$this->_table_img_optming` WHERE id=%d", $v->id));
				continue;
			}

			$img = array(
				'id' => $v->id,
				'url' => $_img_info['url'],
				'md5' => $_img_info['md5'],
			);
			// Build the needed image types for request as we now support soft reset counter
			if ($this->_format) {
				$target_file_path = $v->src . '.' . $this->_format;
				if ($this->__media->info($target_file_path, $v->post_id)) {
					$img['optm_' . $this->_format] = 0;
				}
			}
			if ($this->conf(self::O_IMG_OPTM_ORI)) {
				$extension        = pathinfo($v->src, PATHINFO_EXTENSION);
				$target_file_path = substr($v->src, 0, -strlen($extension)) . 'bk.' . $extension;
				if ($this->__media->info($target_file_path, $v->post_id)) {
					$img['optm_ori'] = 0;
				}
			}

			$list[] = $img;
		}

		if (!$list) {
			$msg = __('No valid image found in the current request.', 'litespeed-cache');
			Admin_Display::error($msg);
			return;
		}

		$data = array(
			'action' => self::CLOUD_ACTION_NEW_REQ,
			'list' => \json_encode($list),
			'optm_ori' => $this->conf(self::O_IMG_OPTM_ORI) ? 1 : 0,
			'optm_lossless' => $this->conf(self::O_IMG_OPTM_LOSSLESS) ? 1 : 0,
			'keep_exif' => $this->conf(self::O_IMG_OPTM_EXIF) ? 1 : 0,
		);
		if ($this->_format) {
			$data['optm_' . $this->_format] = 1;
		}

		// Push to Cloud server
		$json = Cloud::post(Cloud::SVC_IMG_OPTM, $data);
		if (!$json) {
			return;
		}

		// Check data format
		if (empty($json['ids'])) {
			self::debug('Failed to parse response data from Cloud server ', $json);
			$msg = __('No valid image found by Cloud server in the current request.', 'litespeed-cache');
			Admin_Display::error($msg);
			return;
		}

		self::debug('Returned data from Cloud server count: ' . count($json['ids']));

		$ids = implode(',', array_map('intval', $json['ids']));
		// Update img table
		$q = "UPDATE `$this->_table_img_optming` SET optm_status = '" . self::STATUS_REQUESTED . "' WHERE id IN ( $ids )";
		$wpdb->query($q);

		$this->_summary['last_requested'] = time();
		self::save_summary();

		return array( count($list), count($json['ids']) );
	}

	/**
	 * Cloud server notify Client img status changed
	 *
	 * @access public
	 */
	public function notify_img() {
		// Interval validation to avoid hacking domain_key
		if (!empty($this->_summary['notify_ts_err']) && time() - $this->_summary['notify_ts_err'] < 3) {
			return Cloud::err('too_often');
		}

		$post_data = \json_decode(file_get_contents('php://input'), true);
		if (is_null($post_data)) {
			$post_data = $_POST;
		}

		global $wpdb;

		$notified_data = $post_data['data'];
		if (empty($notified_data) || !is_array($notified_data)) {
			self::debug('❌ notify exit: no notified data');
			return Cloud::err('no notified data');
		}

		if (empty($post_data['server']) || (substr($post_data['server'], -11) !== '.quic.cloud' && substr($post_data['server'], -15) !== '.quicserver.com')) {
			self::debug('notify exit: no/wrong server');
			return Cloud::err('no/wrong server');
		}

		if (empty($post_data['status'])) {
			self::debug('notify missing status');
			return Cloud::err('no status');
		}

		$status = $post_data['status'];
		self::debug('notified status=' . $status);

		$last_log_pid = 0;

		if (empty($this->_summary['reduced'])) {
			$this->_summary['reduced'] = 0;
		}

		if ($status == self::STATUS_NOTIFIED) {
			// Notified data format: [ img_optm_id => [ id=>, src_size=>, ori=>, ori_md5=>, ori_reduced=>, webp=>, webp_md5=>, webp_reduced=> ] ]
			$q                               =
				"SELECT a.*, b.meta_id as b_meta_id, b.meta_value AS b_optm_info
					FROM `$this->_table_img_optming` a
					LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.post_id AND b.meta_key = %s
					WHERE a.id IN ( " .
				implode(',', array_fill(0, count($notified_data), '%d')) .
				' )';
			$list                            = $wpdb->get_results($wpdb->prepare($q, array_merge(array( self::DB_SIZE ), array_keys($notified_data))));
			$ls_optm_size_row_exists_postids = array();
			foreach ($list as $v) {
				$json = $notified_data[$v->id];
				// self::debug('Notified data for [id] ' . $v->id, $json);

				$server = !empty($json['server']) ? $json['server'] : $post_data['server'];

				$server_info = array(
					'server' => $server,
				);

				// Save server side ID to send taken notification after pulled
				$server_info['id'] = $json['id'];
				if (!empty($json['file_id'])) {
					$server_info['file_id'] = $json['file_id'];
				}

				// Optm info array
				$postmeta_info = array(
					'ori_total' => 0,
					'ori_saved' => 0,
					'webp_total' => 0,
					'webp_saved' => 0,
					'avif_total' => 0,
					'avif_saved' => 0,
				);
				// Init postmeta_info for the first one
				if (!empty($v->b_meta_id)) {
					foreach (maybe_unserialize($v->b_optm_info) as $k2 => $v2) {
						$postmeta_info[$k2] += $v2;
					}
				}

				if (!empty($json['ori'])) {
					$server_info['ori_md5'] = $json['ori_md5'];
					$server_info['ori']     = $json['ori'];

					// Append meta info
					$postmeta_info['ori_total'] += $json['src_size'];
					$postmeta_info['ori_saved'] += $json['ori_reduced']; // optimized image size info in img_optm tb will be updated when pull

					$this->_summary['reduced'] += $json['ori_reduced'];
				}

				if (!empty($json['webp'])) {
					$server_info['webp_md5'] = $json['webp_md5'];
					$server_info['webp']     = $json['webp'];

					// Append meta info
					$postmeta_info['webp_total'] += $json['src_size'];
					$postmeta_info['webp_saved'] += $json['webp_reduced'];

					$this->_summary['reduced'] += $json['webp_reduced'];
				}

				if (!empty($json['avif'])) {
					$server_info['avif_md5'] = $json['avif_md5'];
					$server_info['avif']     = $json['avif'];

					// Append meta info
					$postmeta_info['avif_total'] += $json['src_size'];
					$postmeta_info['avif_saved'] += $json['avif_reduced'];

					$this->_summary['reduced'] += $json['avif_reduced'];
				}

				// Update status and data in working table
				$q = "UPDATE `$this->_table_img_optming` SET optm_status = %d, server_info = %s WHERE id = %d ";
				$wpdb->query($wpdb->prepare($q, array( $status, \json_encode($server_info), $v->id )));

				// Update postmeta for optm summary
				$postmeta_info = serialize($postmeta_info);
				if (empty($v->b_meta_id) && !in_array($v->post_id, $ls_optm_size_row_exists_postids)) {
					self::debug('New size info [pid] ' . $v->post_id);
					$q = "INSERT INTO `$wpdb->postmeta` ( post_id, meta_key, meta_value ) VALUES ( %d, %s, %s )";
					$wpdb->query($wpdb->prepare($q, array( $v->post_id, self::DB_SIZE, $postmeta_info )));
					$ls_optm_size_row_exists_postids[] = $v->post_id;
				} else {
					$q = "UPDATE `$wpdb->postmeta` SET meta_value = %s WHERE meta_id = %d ";
					$wpdb->query($wpdb->prepare($q, array( $postmeta_info, $v->b_meta_id )));
				}

				// write log
				$pid_log = $last_log_pid == $v->post_id ? '.' : $v->post_id;
				self::debug('notify_img [status] ' . $status . " \t\t[pid] " . $pid_log . " \t\t[id] " . $v->id);
				$last_log_pid = $v->post_id;
			}

			self::save_summary();

			// Mark need_pull tag for cron
			self::update_option(self::DB_NEED_PULL, self::STATUS_NOTIFIED);
		} else {
			// Other errors will directly remove the working records
			// Delete from working table
			$q = "DELETE FROM `$this->_table_img_optming` WHERE id IN ( " . implode(',', array_fill(0, count($notified_data), '%d')) . ' ) ';
			$wpdb->query($wpdb->prepare($q, $notified_data));
		}

		return Cloud::ok(array( 'count' => count($notified_data) ));
	}

	/**
	 * Cron start async req
	 *
	 * @since 5.5
	 */
	public static function start_async_cron() {
		Task::async_call('imgoptm');
	}

	/**
	 * Manually start async req
	 *
	 * @since 5.5
	 */
	public static function start_async() {
		Task::async_call('imgoptm_force');

		$msg = __('Started async image optimization request', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Check if need to pull or not
	 *
	 * @since 7.2
	 */
	public static function need_pull() {
		$tag = self::get_option(self::DB_NEED_PULL);
		if (!$tag || $tag != self::STATUS_NOTIFIED) {
			return false;
		}
		return true;
	}

	/**
	 * Ajax req handler
	 *
	 * @since 5.5
	 */
	public static function async_handler( $force = false ) {
		self::debug('------------async-------------start_async_handler');

		if (!self::need_pull()) {
			self::debug('❌ no need pull');
			return;
		}

		if (defined('LITESPEED_IMG_OPTM_PULL_CRON') && !LITESPEED_IMG_OPTM_PULL_CRON) {
			self::debug('Cron disabled [define] LITESPEED_IMG_OPTM_PULL_CRON');
			return;
		}

		self::cls()->pull($force);
	}

	/**
	 * Calculate pull threads
	 *
	 * @since  5.8
	 * @access private
	 */
	private function _calc_pull_threads() {
		global $wpdb;

		if (defined('LITESPEED_IMG_OPTM_PULL_THREADS')) {
			return LITESPEED_IMG_OPTM_PULL_THREADS;
		}

		// Tune number of images per request based on number of images waiting and cloud packages
		$imgs_per_req = 1; // base 1, ramp up to ~50 max

		// Ramp up the request rate based on how many images are waiting
		$c              = "SELECT count(id) FROM `$this->_table_img_optming` WHERE optm_status = %d";
		$_c             = $wpdb->prepare($c, array( self::STATUS_NOTIFIED ));
		$images_waiting = $wpdb->get_var($_c);
		if ($images_waiting && $images_waiting > 0) {
			$imgs_per_req = ceil($images_waiting / 1000); // ie. download 5/request if 5000 images are waiting
		}

		// Cap the request rate at 50 images per request
		$imgs_per_req = min(50, $imgs_per_req);

		self::debug('Pulling images at rate: ' . $imgs_per_req . ' Images per request.');

		return $imgs_per_req;
	}

	/**
	 * Pull optimized img
	 *
	 * @since  1.6
	 * @access public
	 */
	public function pull( $manual = false ) {
		global $wpdb;
		$timeoutLimit = ini_get('max_execution_time');
		$endts        = time() + $timeoutLimit;

		self::debug('' . ($manual ? 'Manually' : 'Cron') . ' pull started [timeout: ' . $timeoutLimit . 's]');

		if ($this->cron_running()) {
			self::debug('Pull cron is running');

			$msg = __('Pull Cron is running', 'litespeed-cache');
			Admin_Display::note($msg);
			return;
		}

		$this->_summary['last_pulled']         = time();
		$this->_summary['last_pulled_by_cron'] = !$manual;
		self::save_summary();

		$imgs_per_req = $this->_calc_pull_threads();
		$q            = "SELECT * FROM `$this->_table_img_optming` WHERE optm_status = %d ORDER BY id LIMIT %d";
		$_q           = $wpdb->prepare($q, array( self::STATUS_NOTIFIED, $imgs_per_req ));

		$rm_ori_bkup = $this->conf(self::O_IMG_OPTM_RM_BKUP);

		$total_pulled_ori  = 0;
		$total_pulled_webp = 0;
		$total_pulled_avif = 0;

		$server_list = array();

		try {
			while ($img_rows = $wpdb->get_results($_q)) {
				self::debug('timeout left: ' . ($endts - time()) . 's');
				if (function_exists('set_time_limit')) {
					$endts += 600;
					self::debug('Endtime extended to ' . date('Ymd H:i:s', $endts));
					set_time_limit(600); // This will be no more important as we use noabort now
				}
				// Disabled as we use noabort
				// if ($endts - time() < 10) {
				// self::debug("🚨 End loop due to timeout limit reached " . $timeoutLimit . "s");
				// break;
				// }

				/**
				 * Update cron timestamp to avoid duplicated running
				 *
				 * @since  1.6.2
				 */
				$this->_update_cron_running();

				// Run requests in parallel
				$requests    = array(); // store each request URL for Requests::request_multiple()
				$imgs_by_req = array(); // store original request data so that we can reference it in the response
				$req_counter = 0;
				foreach ($img_rows as $row_img) {
					// request original image
					$server_info = \json_decode($row_img->server_info, true);
					if (!empty($server_info['ori'])) {
						$image_url = $server_info['server'] . '/' . $server_info['ori'];
						self::debug('Queueing pull: ' . $image_url);
						$requests[$req_counter]      = array(
							'url' => $image_url,
							'type' => 'GET',
						);
						$imgs_by_req[$req_counter++] = array(
							'type' => 'ori',
							'data' => $row_img,
						);
					}

					// request webp image
					$webp_size = 0;
					if (!empty($server_info['webp'])) {
						$image_url = $server_info['server'] . '/' . $server_info['webp'];
						self::debug('Queueing pull WebP: ' . $image_url);
						$requests[$req_counter]      = array(
							'url' => $image_url,
							'type' => 'GET',
						);
						$imgs_by_req[$req_counter++] = array(
							'type' => 'webp',
							'data' => $row_img,
						);
					}

					// request avif image
					$avif_size = 0;
					if (!empty($server_info['avif'])) {
						$image_url = $server_info['server'] . '/' . $server_info['avif'];
						self::debug('Queueing pull AVIF: ' . $image_url);
						$requests[$req_counter]      = array(
							'url' => $image_url,
							'type' => 'GET',
						);
						$imgs_by_req[$req_counter++] = array(
							'type' => 'avif',
							'data' => $row_img,
						);
					}
				}
				self::debug('Loaded images count: ' . $req_counter);

				$complete_action = function ( $response, $req_count ) use ( $imgs_by_req, $rm_ori_bkup, &$total_pulled_ori, &$total_pulled_webp, &$total_pulled_avif, &$server_list ) {
					global $wpdb;
					$row_data = isset($imgs_by_req[$req_count]) ? $imgs_by_req[$req_count] : false;
					if (false === $row_data) {
						self::debug('❌ failed to pull image: Request not found in lookup variable.');
						return;
					}
					$row_type    = isset($row_data['type']) ? $row_data['type'] : 'ori';
					$row_img     = $row_data['data'];
					$local_file  = $this->wp_upload_dir['basedir'] . '/' . $row_img->src;
					$server_info = \json_decode($row_img->server_info, true);

					// Handle status_code 404/5xx too as its success=true
					if ( empty( $response->success ) || empty( $response->status_code ) || 200 !== $response->status_code ) {
						$this->_step_back_image($row_img->id);

						$msg = __('Some optimized image file(s) has expired and was cleared.', 'litespeed-cache');
						Admin_Display::error($msg);
						return;
					}

					if ('webp' === $row_type) {
						file_put_contents($local_file . '.webp', $response->body);

						if (!file_exists($local_file . '.webp') || !filesize($local_file . '.webp') || md5_file($local_file . '.webp') !== $server_info['webp_md5']) {
							self::debug('❌ Failed to pull optimized webp img: file md5 mismatch, server md5: ' . $server_info['webp_md5']);

							// Delete working table
							$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
							$wpdb->query($wpdb->prepare($q, $row_img->id));

							$msg = __('Pulled WebP image md5 does not match the notified WebP image md5.', 'litespeed-cache');
							Admin_Display::error($msg);
							return;
						}

						self::debug('Pulled optimized img WebP: ' . $local_file . '.webp');

						$webp_size = filesize($local_file . '.webp');

						/**
						 * API for WebP
						 *
						 * @since 2.9.5
						 * @since  3.0 $row_img less elements (see above one)
						 * @see #751737  - API docs for WEBP generation
						 */
						do_action('litespeed_img_pull_webp', $row_img, $local_file . '.webp');

						++$total_pulled_webp;
					} elseif ('avif' === $row_type) {
						file_put_contents($local_file . '.avif', $response->body);

						if (!file_exists($local_file . '.avif') || !filesize($local_file . '.avif') || md5_file($local_file . '.avif') !== $server_info['avif_md5']) {
							self::debug('❌ Failed to pull optimized avif img: file md5 mismatch, server md5: ' . $server_info['avif_md5']);

							// Delete working table
							$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
							$wpdb->query($wpdb->prepare($q, $row_img->id));

							$msg = __('Pulled AVIF image md5 does not match the notified AVIF image md5.', 'litespeed-cache');
							Admin_Display::error($msg);
							return;
						}

						self::debug('Pulled optimized img AVIF: ' . $local_file . '.avif');

						$avif_size = filesize($local_file . '.avif');

						/**
						 * API for AVIF
						 *
						 * @since 7.0
						 */
						do_action('litespeed_img_pull_avif', $row_img, $local_file . '.avif');

						++$total_pulled_avif;
					} else {
						// "ori" image type
						file_put_contents($local_file . '.tmp', $response->body);

						if (!file_exists($local_file . '.tmp') || !filesize($local_file . '.tmp') || md5_file($local_file . '.tmp') !== $server_info['ori_md5']) {
							self::debug(
								'❌ Failed to pull optimized img: file md5 mismatch [url] ' .
									$server_info['server'] .
									'/' .
									$server_info['ori'] .
									' [server_md5] ' .
									$server_info['ori_md5']
							);

							// Delete working table
							$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
							$wpdb->query($wpdb->prepare($q, $row_img->id));

							$msg = __('One or more pulled images does not match with the notified image md5', 'litespeed-cache');
							Admin_Display::error($msg);
							return;
						}

						// Backup ori img
						if (!$rm_ori_bkup) {
							$extension = pathinfo($local_file, PATHINFO_EXTENSION);
							$bk_file   = substr($local_file, 0, -strlen($extension)) . 'bk.' . $extension;
							file_exists($local_file) && rename($local_file, $bk_file);
						}

						// Replace ori img
						rename($local_file . '.tmp', $local_file);

						self::debug('Pulled optimized img: ' . $local_file);

						/**
						 * API Hook
						 *
						 * @since  2.9.5
						 * @since  3.0 $row_img has less elements now. Most useful ones are `post_id`/`src`
						 */
						do_action('litespeed_img_pull_ori', $row_img, $local_file);

						self::debug2('Remove _table_img_optming record [id] ' . $row_img->id);
					}

					// Delete working table
					$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
					$wpdb->query($wpdb->prepare($q, $row_img->id));

					// Save server_list to notify taken
					if (empty($server_list[$server_info['server']])) {
						$server_list[$server_info['server']] = array();
					}

					$server_info_id                        = !empty($server_info['file_id']) ? $server_info['file_id'] : $server_info['id'];
					$server_list[$server_info['server']][] = $server_info_id;

					++$total_pulled_ori;
				};

				$force_wp_remote_get = defined('LITESPEED_FORCE_WP_REMOTE_GET') && LITESPEED_FORCE_WP_REMOTE_GET;
				if (!$force_wp_remote_get && class_exists('\WpOrg\Requests\Requests') && class_exists('\WpOrg\Requests\Autoload') && version_compare(PHP_VERSION, '5.6.0', '>=')) {
					// Make sure Requests can load internal classes.
					Autoload::register();

					// Run pull requests in parallel
					Requests::request_multiple($requests, array(
						'timeout' => 60,
						'connect_timeout' => 60,
						'complete' => $complete_action,
					));
				} else {
					foreach ($requests as $cnt => $req) {
						$wp_response      = wp_safe_remote_get($req['url'], array( 'timeout' => 60 ));
						$request_response = array(
							'success' => false,
							'status_code' => 0,
							'body' => null,
						);
						if (is_wp_error($wp_response)) {
							$error_message = $wp_response->get_error_message();
							self::debug('❌ failed to pull image: ' . $error_message);
						} else {
							$request_response['success']     = true;
							$request_response['status_code'] = $wp_response['response']['code'];
							$request_response['body']        = $wp_response['body'];
						}
						self::debug('response code [code] ' . $wp_response['response']['code'] . ' [url] ' . $req['url']);

						$request_response = (object) $request_response;

						$complete_action($request_response, $cnt);
					}
				}
				self::debug('Current batch pull finished');
			}
		} catch (\Exception $e) {
			Admin_Display::error('Image pull process failure: ' . $e->getMessage());
		}

		// Notify IAPI images taken
		foreach ($server_list as $server => $img_list) {
			$data = array(
				'action' => self::CLOUD_ACTION_TAKEN,
				'list' => $img_list,
				'server' => $server,
			);
			// TODO: improve this so we do not call once per server, but just once and then filter on the server side
			Cloud::post(Cloud::SVC_IMG_OPTM, $data);
		}

		if (empty($this->_summary['img_taken'])) {
			$this->_summary['img_taken'] = 0;
		}
		$this->_summary['img_taken'] += $total_pulled_ori + $total_pulled_webp + $total_pulled_avif;
		self::save_summary();

		// Manually running needs to roll back timestamp for next running
		if ($manual) {
			$this->_update_cron_running(true);
		}

		// $msg = sprintf(__('Pulled %d image(s)', 'litespeed-cache'), $total_pulled_ori + $total_pulled_webp);
		// Admin_Display::success($msg);

		// Check if there is still task in queue
		$q               = "SELECT * FROM `$this->_table_img_optming` WHERE optm_status = %d LIMIT 1";
		$to_be_continued = $wpdb->get_row($wpdb->prepare($q, self::STATUS_NOTIFIED));
		if ($to_be_continued) {
			self::debug('Task in queue, to be continued...');
			return;
			// return Router::self_redirect(Router::ACTION_IMG_OPTM, self::TYPE_PULL);
		}

		// If all pulled, update tag to done
		self::debug('Marked pull status to all pulled');
		self::update_option(self::DB_NEED_PULL, self::STATUS_PULLED);
	}

	/**
	 * Push image back to previous status
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _step_back_image( $id ) {
		global $wpdb;

		self::debug('Push image back to new status [id] ' . $id);

		// Reset the image to gathered status
		$q = "UPDATE `$this->_table_img_optming` SET optm_status = %d WHERE id = %d ";
		$wpdb->query($wpdb->prepare($q, array( self::STATUS_RAW, $id )));
	}

	/**
	 * Parse wp's meta value
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _parse_wp_meta_value( $v ) {
		if (empty($v)) {
			self::debug('bypassed parsing meta due to null value');
			return false;
		}

		if (!$v->meta_value) {
			self::debug('bypassed parsing meta due to no meta_value: pid ' . $v->post_id);
			return false;
		}

		$meta_value = @maybe_unserialize($v->meta_value);
		if (!is_array($meta_value)) {
			self::debug('bypassed parsing meta due to meta_value not json: pid ' . $v->post_id);
			return false;
		}

		if (empty($meta_value['file'])) {
			self::debug('bypassed parsing meta due to no ori file: pid ' . $v->post_id);
			return false;
		}

		return $meta_value;
	}

	/**
	 * Clean up all unfinished queue locally and to Cloud server
	 *
	 * @since 2.1.2
	 * @access public
	 */
	public function clean() {
		global $wpdb;

		// Reset img_optm table's queue
		if ($this->__data->tb_exist('img_optming')) {
			// Get min post id to mark
			$q       = "SELECT MIN(post_id) FROM `$this->_table_img_optming`";
			$min_pid = $wpdb->get_var($q) - 1;
			if ($this->_summary['next_post_id'] > $min_pid) {
				$this->_summary['next_post_id'] = $min_pid;
				self::save_summary();
			}

			$q = "DELETE FROM `$this->_table_img_optming`";
			$wpdb->query($q);
		}

		$msg = __('Cleaned up unfinished data successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Reset image counter
	 *
	 * @since 7.0
	 * @access private
	 */
	private function _reset_counter() {
		self::debug('reset image optm counter');
		$this->_summary['next_post_id'] = 0;
		self::save_summary();

		$this->clean();

		$msg = __('Reset image optimization counter successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Destroy all optimized images
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _destroy() {
		global $wpdb;

		self::debug('executing DESTROY process');

		$offset = !empty($_GET['litespeed_i']) ? $_GET['litespeed_i'] : 0;
		/**
		 * Limit images each time before redirection to fix Out of memory issue. #665465
		 *
		 * @since  2.9.8
		 */
		// Start deleting files
		$limit = apply_filters('litespeed_imgoptm_destroy_max_rows', 500);

		$img_q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			WHERE b.meta_key = '_wp_attachment_metadata'
				AND a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
			ORDER BY a.ID
			LIMIT %d,%d
			";
		$q     = $wpdb->prepare($img_q, array( $offset * $limit, $limit ));
		$list  = $wpdb->get_results($q);
		$i     = 0;
		foreach ($list as $v) {
			if (!$v->post_id) {
				continue;
			}

			$meta_value = $this->_parse_wp_meta_value($v);
			if (!$meta_value) {
				continue;
			}

			++$i;

			$this->tmp_pid  = $v->post_id;
			$this->tmp_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
			$this->_destroy_optm_file($meta_value, true);
			if (!empty($meta_value['sizes'])) {
				array_map(array( $this, '_destroy_optm_file' ), $meta_value['sizes']);
			}
		}

		self::debug('batch switched images total: ' . $i);

		++$offset;
		$to_be_continued = $wpdb->get_row($wpdb->prepare($img_q, array( $offset * $limit, 1 )));
		if ($to_be_continued) {
			// Check if post_id is beyond next_post_id
			self::debug('[next_post_id] ' . $this->_summary['next_post_id'] . ' [cursor post id] ' . $to_be_continued->post_id);
			if ($to_be_continued->post_id <= $this->_summary['next_post_id']) {
				self::debug('redirecting to next');
				return Router::self_redirect(Router::ACTION_IMG_OPTM, self::TYPE_DESTROY);
			}
			self::debug('🎊 Finished destroying');
		}

		// Delete postmeta info
		$q = "DELETE FROM `$wpdb->postmeta` WHERE meta_key = %s";
		$wpdb->query($wpdb->prepare($q, self::DB_SIZE));
		$wpdb->query($wpdb->prepare($q, self::DB_SET));

		// Delete img_optm table
		$this->__data->tb_del('img_optm');
		$this->__data->tb_del('img_optming');

		// Clear options table summary info
		self::delete_option('_summary');
		self::delete_option(self::DB_NEED_PULL);

		$msg = __('Destroy all optimization data successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Destroy optm file
	 */
	private function _destroy_optm_file( $meta_value, $is_ori_file = false ) {
		$short_file_path = $meta_value['file'];
		if (!$is_ori_file) {
			$short_file_path = $this->tmp_path . $short_file_path;
		}
		self::debug('deleting ' . $short_file_path);

		// del webp
		$this->__media->info($short_file_path . '.webp', $this->tmp_pid) && $this->__media->del($short_file_path . '.webp', $this->tmp_pid);
		$this->__media->info($short_file_path . '.optm.webp', $this->tmp_pid) && $this->__media->del($short_file_path . '.optm.webp', $this->tmp_pid);

		// del avif
		$this->__media->info($short_file_path . '.avif', $this->tmp_pid) && $this->__media->del($short_file_path . '.avif', $this->tmp_pid);
		$this->__media->info($short_file_path . '.optm.avif', $this->tmp_pid) && $this->__media->del($short_file_path . '.optm.avif', $this->tmp_pid);

		$extension      = pathinfo($short_file_path, PATHINFO_EXTENSION);
		$local_filename = substr($short_file_path, 0, -strlen($extension) - 1);
		$bk_file        = $local_filename . '.bk.' . $extension;
		$bk_optm_file   = $local_filename . '.bk.optm.' . $extension;

		// del optimized ori
		if ($this->__media->info($bk_file, $this->tmp_pid)) {
			self::debug('deleting optim ori');
			$this->__media->del($short_file_path, $this->tmp_pid);
			$this->__media->rename($bk_file, $short_file_path, $this->tmp_pid);
		}
		$this->__media->info($bk_optm_file, $this->tmp_pid) && $this->__media->del($bk_optm_file, $this->tmp_pid);
	}

	/**
	 * Rescan to find new generated images
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _rescan() {
		global $wpdb;
		exit('tobedone');

		$offset = !empty($_GET['litespeed_i']) ? $_GET['litespeed_i'] : 0;
		$limit  = 500;

		self::debug('rescan images');

		// Get images
		$q    = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a, `$wpdb->postmeta` b
			WHERE a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
				AND a.ID = b.post_id
				AND b.meta_key = '_wp_attachment_metadata'
			ORDER BY a.ID
			LIMIT %d, %d
			";
		$list = $wpdb->get_results($wpdb->prepare($q, $offset * $limit, $limit + 1)); // last one is the seed for next batch

		if (!$list) {
			$msg = __('Rescanned successfully.', 'litespeed-cache');
			Admin_Display::success($msg);

			self::debug('rescan bypass: no gathered image found');
			return;
		}

		if (count($list) == $limit + 1) {
			$to_be_continued = true;
			array_pop($list); // last one is the seed for next round, discard here.
		} else {
			$to_be_continued = false;
		}

		// Prepare post_ids to inquery gathered images
		$pid_set      = array();
		$scanned_list = array();
		foreach ($list as $v) {
			$meta_value = $this->_parse_wp_meta_value($v);
			if (!$meta_value) {
				continue;
			}

			$scanned_list[] = array(
				'pid' => $v->post_id,
				'meta' => $meta_value,
			);

			$pid_set[] = $v->post_id;
		}

		// Build gathered images
		$q    = "SELECT src, post_id FROM `$this->_table_img_optm` WHERE post_id IN (" . implode(',', array_fill(0, count($pid_set), '%d')) . ')';
		$list = $wpdb->get_results($wpdb->prepare($q, $pid_set));
		foreach ($list as $v) {
			$this->_existed_src_list[] = $v->post_id . '.' . $v->src;
		}

		// Find new images
		foreach ($scanned_list as $v) {
			$meta_value = $v['meta'];
			// Parse all child src and put them into $this->_img_in_queue, missing ones to $this->_img_in_queue_missed
			$this->tmp_pid  = $v['pid'];
			$this->tmp_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
			$this->_append_img_queue($meta_value, true);
			if (!empty($meta_value['sizes'])) {
				array_map(array( $this, '_append_img_queue' ), $meta_value['sizes']);
			}
		}

		self::debug('rescanned [img] ' . count($this->_img_in_queue));

		$count = count($this->_img_in_queue);
		if ($count > 0) {
			// Save to DB
			$this->_save_raw();
		}

		if ($to_be_continued) {
			return Router::self_redirect(Router::ACTION_IMG_OPTM, self::TYPE_RESCAN);
		}

		$msg = $count ? sprintf(__('Rescanned %d images successfully.', 'litespeed-cache'), $count) : __('Rescanned successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Calculate bkup original images storage
	 *
	 * @since 2.2.6
	 * @access private
	 */
	private function _calc_bkup() {
		global $wpdb;

		$offset = !empty($_GET['litespeed_i']) ? $_GET['litespeed_i'] : 0;
		$limit  = 500;

		if (!$offset) {
			$this->_summary['bk_summary'] = array(
				'date' => time(),
				'count' => 0,
				'sum' => 0,
			);
		}

		$img_q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			WHERE b.meta_key = '_wp_attachment_metadata'
				AND a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
			ORDER BY a.ID
			LIMIT %d,%d
			";
		$q     = $wpdb->prepare($img_q, array( $offset * $limit, $limit ));
		$list  = $wpdb->get_results($q);
		foreach ($list as $v) {
			if (!$v->post_id) {
				continue;
			}

			$meta_value = $this->_parse_wp_meta_value($v);
			if (!$meta_value) {
				continue;
			}

			$this->tmp_pid  = $v->post_id;
			$this->tmp_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
			$this->_get_bk_size($meta_value, true);
			if (!empty($meta_value['sizes'])) {
				array_map(array( $this, '_get_bk_size' ), $meta_value['sizes']);
			}
		}

		$this->_summary['bk_summary']['date'] = time();
		self::save_summary();

		self::debug('_calc_bkup total: ' . $this->_summary['bk_summary']['count'] . ' [size] ' . $this->_summary['bk_summary']['sum']);

		++$offset;
		$to_be_continued = $wpdb->get_row($wpdb->prepare($img_q, array( $offset * $limit, 1 )));

		if ($to_be_continued) {
			return Router::self_redirect(Router::ACTION_IMG_OPTM, self::TYPE_CALC_BKUP);
		}

		$msg = __('Calculated backups successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Calculate single size
	 */
	private function _get_bk_size( $meta_value, $is_ori_file = false ) {
		$short_file_path = $meta_value['file'];
		if (!$is_ori_file) {
			$short_file_path = $this->tmp_path . $short_file_path;
		}

		$extension      = pathinfo($short_file_path, PATHINFO_EXTENSION);
		$local_filename = substr($short_file_path, 0, -strlen($extension) - 1);
		$bk_file        = $local_filename . '.bk.' . $extension;

		$img_info = $this->__media->info($bk_file, $this->tmp_pid);
		if (!$img_info) {
			return;
		}

		++$this->_summary['bk_summary']['count'];
		$this->_summary['bk_summary']['sum'] += $img_info['size'];
	}

	/**
	 * Delete bkup original images storage
	 *
	 * @since  2.5
	 * @access public
	 */
	public function rm_bkup() {
		global $wpdb;

		if (!$this->__data->tb_exist('img_optming')) {
			return;
		}

		$offset = !empty($_GET['litespeed_i']) ? $_GET['litespeed_i'] : 0;
		$limit  = 500;

		if (empty($this->_summary['rmbk_summary'])) {
			$this->_summary['rmbk_summary'] = array(
				'date' => time(),
				'count' => 0,
				'sum' => 0,
			);
		}

		$img_q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			WHERE b.meta_key = '_wp_attachment_metadata'
				AND a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
			ORDER BY a.ID
			LIMIT %d,%d
			";
		$q     = $wpdb->prepare($img_q, array( $offset * $limit, $limit ));
		$list  = $wpdb->get_results($q);
		foreach ($list as $v) {
			if (!$v->post_id) {
				continue;
			}

			$meta_value = $this->_parse_wp_meta_value($v);
			if (!$meta_value) {
				continue;
			}

			$this->tmp_pid  = $v->post_id;
			$this->tmp_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
			$this->_del_bk_file($meta_value, true);
			if (!empty($meta_value['sizes'])) {
				array_map(array( $this, '_del_bk_file' ), $meta_value['sizes']);
			}
		}

		$this->_summary['rmbk_summary']['date'] = time();
		self::save_summary();

		self::debug('rm_bkup total: ' . $this->_summary['rmbk_summary']['count'] . ' [size] ' . $this->_summary['rmbk_summary']['sum']);

		++$offset;
		$to_be_continued = $wpdb->get_row($wpdb->prepare($img_q, array( $offset * $limit, 1 )));

		if ($to_be_continued) {
			return Router::self_redirect(Router::ACTION_IMG_OPTM, self::TYPE_RM_BKUP);
		}

		$msg = __('Removed backups successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Delete single file
	 */
	private function _del_bk_file( $meta_value, $is_ori_file = false ) {
		$short_file_path = $meta_value['file'];
		if (!$is_ori_file) {
			$short_file_path = $this->tmp_path . $short_file_path;
		}

		$extension      = pathinfo($short_file_path, PATHINFO_EXTENSION);
		$local_filename = substr($short_file_path, 0, -strlen($extension) - 1);
		$bk_file        = $local_filename . '.bk.' . $extension;

		$img_info = $this->__media->info($bk_file, $this->tmp_pid);
		if (!$img_info) {
			return;
		}

		++$this->_summary['rmbk_summary']['count'];
		$this->_summary['rmbk_summary']['sum'] += $img_info['size'];

		$this->__media->del($bk_file, $this->tmp_pid);
	}

	/**
	 * Count images
	 *
	 * @since 1.6
	 * @access public
	 */
	public function img_count() {
		global $wpdb;

		$q           = "SELECT count(*)
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			WHERE b.meta_key = '_wp_attachment_metadata'
				AND a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
			";
		$groups_all  = $wpdb->get_var($q);
		$groups_new  = $wpdb->get_var($q . ' AND ID>' . (int) $this->_summary['next_post_id'] . ' ORDER BY ID');
		$groups_done = $wpdb->get_var($q . ' AND ID<=' . (int) $this->_summary['next_post_id'] . ' ORDER BY ID');

		$q      = "SELECT b.post_id
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			WHERE b.meta_key = '_wp_attachment_metadata'
				AND a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
			ORDER BY a.ID DESC
			LIMIT 1
			";
		$max_id = $wpdb->get_var($q);

		$count_list = array(
			'max_id' => $max_id,
			'groups_all' => $groups_all,
			'groups_new' => $groups_new,
			'groups_done' => $groups_done,
		);

		// images count from work table
		if ($this->__data->tb_exist('img_optming')) {
			$q               = "SELECT COUNT(DISTINCT post_id),COUNT(*) FROM `$this->_table_img_optming` WHERE optm_status = %d";
			$groups_to_check = array( self::STATUS_RAW, self::STATUS_REQUESTED, self::STATUS_NOTIFIED, self::STATUS_ERR_FETCH );
			foreach ($groups_to_check as $v) {
				$count_list['img.' . $v]                                   = $count_list['group.' . $v] = 0;
				list($count_list['group.' . $v], $count_list['img.' . $v]) = $wpdb->get_row($wpdb->prepare($q, $v), ARRAY_N);
			}
		}

		return $count_list;
	}

	/**
	 * Check if fetch cron is running
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function cron_running( $bool_res = true ) {
		$last_run = !empty($this->_summary['last_pull']) ? $this->_summary['last_pull'] : 0;

		$is_running = $last_run && time() - $last_run < 120;

		if ($bool_res) {
			return $is_running;
		}

		return array( $last_run, $is_running );
	}

	/**
	 * Update fetch cron timestamp tag
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function _update_cron_running( $done = false ) {
		$this->_summary['last_pull'] = time();

		if ($done) {
			// Only update cron tag when its from the active running cron
			if ($this->_cron_ran) {
				// Rollback for next running
				$this->_summary['last_pull'] -= 120;
			} else {
				return;
			}
		}

		self::save_summary();

		$this->_cron_ran = true;
	}

	/**
	 * Batch switch images to ori/optm version
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function batch_switch( $type ) {
		global $wpdb;

		if (defined('LITESPEED_CLI') || wp_doing_cron()) {
			$offset = 0;
			while ($offset !== 'done') {
				Admin_Display::info("Starting switch to $type [offset] $offset");
				$offset = $this->_batch_switch($type, $offset);
			}
		} else {
			$offset = !empty($_GET['litespeed_i']) ? $_GET['litespeed_i'] : 0;

			$newOffset = $this->_batch_switch($type, $offset);
			if ($newOffset !== 'done') {
				return Router::self_redirect(Router::ACTION_IMG_OPTM, $type);
			}
		}

		$msg = __('Switched images successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Switch images per offset
	 */
	private function _batch_switch( $type, $offset ) {
		global $wpdb;
		$limit          = 500;
		$this->tmp_type = $type;

		$img_q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			WHERE b.meta_key = '_wp_attachment_metadata'
				AND a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
			ORDER BY a.ID
			LIMIT %d,%d
			";
		$q     = $wpdb->prepare($img_q, array( $offset * $limit, $limit ));
		$list  = $wpdb->get_results($q);
		$i     = 0;
		foreach ($list as $v) {
			if (!$v->post_id) {
				continue;
			}

			$meta_value = $this->_parse_wp_meta_value($v);
			if (!$meta_value) {
				continue;
			}

			++$i;

			$this->tmp_pid  = $v->post_id;
			$this->tmp_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
			$this->_switch_bk_file($meta_value, true);
			if (!empty($meta_value['sizes'])) {
				array_map(array( $this, '_switch_bk_file' ), $meta_value['sizes']);
			}
		}

		self::debug('batch switched images total: ' . $i . ' [type] ' . $type);

		++$offset;
		$to_be_continued = $wpdb->get_row($wpdb->prepare($img_q, array( $offset * $limit, 1 )));
		if ($to_be_continued) {
			return $offset;
		}
		return 'done';
	}

	/**
	 * Delete single file
	 */
	private function _switch_bk_file( $meta_value, $is_ori_file = false ) {
		$short_file_path = $meta_value['file'];
		if (!$is_ori_file) {
			$short_file_path = $this->tmp_path . $short_file_path;
		}

		$extension      = pathinfo($short_file_path, PATHINFO_EXTENSION);
		$local_filename = substr($short_file_path, 0, -strlen($extension) - 1);
		$bk_file        = $local_filename . '.bk.' . $extension;
		$bk_optm_file   = $local_filename . '.bk.optm.' . $extension;

		// self::debug('_switch_bk_file ' . $bk_file . ' [type] ' . $this->tmp_type);
		// switch to ori
		if ($this->tmp_type === self::TYPE_BATCH_SWITCH_ORI || $this->tmp_type == 'orig') {
			// self::debug('switch to orig ' . $bk_file);
			if (!$this->__media->info($bk_file, $this->tmp_pid)) {
				return;
			}
			$this->__media->rename($local_filename . '.' . $extension, $bk_optm_file, $this->tmp_pid);
			$this->__media->rename($bk_file, $local_filename . '.' . $extension, $this->tmp_pid);
		}
		// switch to optm
		elseif ($this->tmp_type === self::TYPE_BATCH_SWITCH_OPTM || $this->tmp_type == 'optm') {
			// self::debug('switch to optm ' . $bk_file);
			if (!$this->__media->info($bk_optm_file, $this->tmp_pid)) {
				return;
			}
			$this->__media->rename($local_filename . '.' . $extension, $bk_file, $this->tmp_pid);
			$this->__media->rename($bk_optm_file, $local_filename . '.' . $extension, $this->tmp_pid);
		}
	}

	/**
	 * Switch image between original one and optimized one
	 *
	 * @since 1.6.2
	 * @access private
	 */
	private function _switch_optm_file( $type ) {
		Admin_Display::success(__('Switched to optimized file successfully.', 'litespeed-cache'));
		return;
		global $wpdb;

		$pid         = substr($type, 4);
		$switch_type = substr($type, 0, 4);

		$q    = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE post_id = %d AND optm_status = %d";
		$list = $wpdb->get_results($wpdb->prepare($q, array( $pid, self::STATUS_PULLED )));

		$msg = 'Unknown Msg';

		foreach ($list as $v) {
			// to switch webp file
			if ($switch_type === 'webp') {
				if ($this->__media->info($v->src . '.webp', $v->post_id)) {
					$this->__media->rename($v->src . '.webp', $v->src . '.optm.webp', $v->post_id);
					self::debug('Disabled WebP: ' . $v->src);

					$msg = __('Disabled WebP file successfully.', 'litespeed-cache');
				} elseif ($this->__media->info($v->src . '.optm.webp', $v->post_id)) {
					$this->__media->rename($v->src . '.optm.webp', $v->src . '.webp', $v->post_id);
					self::debug('Enable WebP: ' . $v->src);

					$msg = __('Enabled WebP file successfully.', 'litespeed-cache');
				}
			}
			// to switch avif file
			elseif ($switch_type === 'avif') {
				if ($this->__media->info($v->src . '.avif', $v->post_id)) {
					$this->__media->rename($v->src . '.avif', $v->src . '.optm.avif', $v->post_id);
					self::debug('Disabled AVIF: ' . $v->src);

					$msg = __('Disabled AVIF file successfully.', 'litespeed-cache');
				} elseif ($this->__media->info($v->src . '.optm.avif', $v->post_id)) {
					$this->__media->rename($v->src . '.optm.avif', $v->src . '.avif', $v->post_id);
					self::debug('Enable AVIF: ' . $v->src);

					$msg = __('Enabled AVIF file successfully.', 'litespeed-cache');
				}
			}
			// to switch original file
			else {
				$extension      = pathinfo($v->src, PATHINFO_EXTENSION);
				$local_filename = substr($v->src, 0, -strlen($extension) - 1);
				$bk_file        = $local_filename . '.bk.' . $extension;
				$bk_optm_file   = $local_filename . '.bk.optm.' . $extension;

				// revert ori back
				if ($this->__media->info($bk_file, $v->post_id)) {
					$this->__media->rename($v->src, $bk_optm_file, $v->post_id);
					$this->__media->rename($bk_file, $v->src, $v->post_id);
					self::debug('Restore original img: ' . $bk_file);

					$msg = __('Restored original file successfully.', 'litespeed-cache');
				} elseif ($this->__media->info($bk_optm_file, $v->post_id)) {
					$this->__media->rename($v->src, $bk_file, $v->post_id);
					$this->__media->rename($bk_optm_file, $v->src, $v->post_id);
					self::debug('Switch to optm img: ' . $v->src);

					$msg = __('Switched to optimized file successfully.', 'litespeed-cache');
				}
			}
		}

		Admin_Display::success($msg);
	}

	/**
	 * Delete one optm data and recover original file
	 *
	 * @since 2.4.2
	 * @access public
	 */
	public function reset_row( $post_id ) {
		global $wpdb;

		if (!$post_id) {
			return;
		}

		// Gathered image don't have DB_SIZE info yet
		// $size_meta = get_post_meta( $post_id, self::DB_SIZE, true );

		// if ( ! $size_meta ) {
		// return;
		// }

		self::debug('_reset_row [pid] ' . $post_id);

		// TODO: Load image sub files
		$img_q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->postmeta` b
			WHERE b.post_id =%d  AND b.meta_key = '_wp_attachment_metadata'";
		$q     = $wpdb->prepare($img_q, array( $post_id ));
		$v     = $wpdb->get_row($q);

		$meta_value = $this->_parse_wp_meta_value($v);
		if ($meta_value) {
			$this->tmp_pid  = $v->post_id;
			$this->tmp_path = pathinfo($meta_value['file'], PATHINFO_DIRNAME) . '/';
			$this->_destroy_optm_file($meta_value, true);
			if (!empty($meta_value['sizes'])) {
				array_map(array( $this, '_destroy_optm_file' ), $meta_value['sizes']);
			}
		}

		delete_post_meta($post_id, self::DB_SIZE);
		delete_post_meta($post_id, self::DB_SET);

		$msg = __('Reset the optimized data successfully.', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Show an image's optm status
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public function check_img() {
		global $wpdb;

		$pid = $_POST['data'];

		self::debug('Check image [ID] ' . $pid);

		$data = array();

		$data['img_count']    = $this->img_count();
		$data['optm_summary'] = self::get_summary();

		$data['_wp_attached_file']       = get_post_meta($pid, '_wp_attached_file', true);
		$data['_wp_attachment_metadata'] = get_post_meta($pid, '_wp_attachment_metadata', true);

		// Get img_optm data
		$q        = "SELECT * FROM `$this->_table_img_optm` WHERE post_id = %d";
		$list     = $wpdb->get_results($wpdb->prepare($q, $pid));
		$img_data = array();
		if ($list) {
			foreach ($list as $v) {
				$img_data[] = array(
					'id' => $v->id,
					'optm_status' => $v->optm_status,
					'src' => $v->src,
					'srcpath_md5' => $v->srcpath_md5,
					'src_md5' => $v->src_md5,
					'server_info' => $v->server_info,
				);
			}
		}
		$data['img_data'] = $img_data;

		return array(
			'_res' => 'ok',
			'data' => $data,
		);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_RESET_ROW:
            $this->reset_row(!empty($_GET['id']) ? $_GET['id'] : false);
				break;

			case self::TYPE_CALC_BKUP:
            $this->_calc_bkup();
				break;

			case self::TYPE_RM_BKUP:
            $this->rm_bkup();
				break;

			case self::TYPE_NEW_REQ:
            $this->new_req();
				break;

			case self::TYPE_RESCAN:
            $this->_rescan();
				break;

			case self::TYPE_RESET_COUNTER:
            $this->_reset_counter();
				break;

			case self::TYPE_DESTROY:
            $this->_destroy();
				break;

			case self::TYPE_CLEAN:
            $this->clean();
				break;

			case self::TYPE_PULL:
            self::start_async();
				break;

			case self::TYPE_BATCH_SWITCH_ORI:
			case self::TYPE_BATCH_SWITCH_OPTM:
            $this->batch_switch($type);
				break;

			case substr($type, 0, 4) === 'avif':
			case substr($type, 0, 4) === 'webp':
			case substr($type, 0, 4) === 'orig':
            $this->_switch_optm_file($type);
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The optimize css class.
 *
 * @since       2.3
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class CSS extends Base {

	const LOG_TAG = '[CSS]';

	const TYPE_GEN_CCSS     = 'gen_ccss';
	const TYPE_CLEAR_Q_CCSS = 'clear_q_ccss';

	protected $_summary;
	private $_ccss_whitelist;
	private $_queue;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_summary = self::get_summary();

		add_filter('litespeed_ccss_whitelist', array( $this->cls('Data'), 'load_ccss_whitelist' ));
	}

	/**
	 * HTML lazyload CSS
	 *
	 * @since 4.0
	 */
	public function prepare_html_lazy() {
		return '<style>' . implode(',', $this->conf(self::O_OPTM_HTML_LAZY)) . '{content-visibility:auto;contain-intrinsic-size:1px 1000px;}</style>';
	}

	/**
	 * Output critical css
	 *
	 * @since  1.3
	 * @access public
	 */
	public function prepare_ccss() {
		// Get critical css for current page
		// Note: need to consider mobile
		$rules = $this->_ccss();
		if (!$rules) {
			return null;
		}

		$error_tag = '';
		if (substr($rules, 0, 2) == '/*' && substr($rules, -2) == '*/') {
			Core::comment('QUIC.cloud CCSS bypassed due to generation error ❌');
			$error_tag = ' data-error="failed to generate"';
		}

		// Append default critical css
		$rules .= $this->conf(self::O_OPTM_CCSS_CON);

		return '<style id="litespeed-ccss"' . $error_tag . '>' . $rules . '</style>';
	}

	/**
	 * Generate CCSS url tag
	 *
	 * @since 4.0
	 */
	private function _gen_ccss_file_tag( $request_url ) {
		if (is_404()) {
			return '404';
		}

		if ($this->conf(self::O_OPTM_CCSS_PER_URL)) {
			return $request_url;
		}

		$sep_uri = $this->conf(self::O_OPTM_CCSS_SEP_URI);
		if ($sep_uri && ($hit = Utility::str_hit_array($request_url, $sep_uri))) {
			Debug2::debug('[CCSS] Separate CCSS due to separate URI setting: ' . $hit);
			return $request_url;
		}

		$pt = Utility::page_type();

		$sep_pt = $this->conf(self::O_OPTM_CCSS_SEP_POSTTYPE);
		if (in_array($pt, $sep_pt)) {
			Debug2::debug('[CCSS] Separate CCSS due to posttype setting: ' . $pt);
			return $request_url;
		}

		// Per posttype
		return $pt;
	}

	/**
	 * The critical css content of the current page
	 *
	 * @since  2.3
	 */
	private function _ccss() {
		global $wp;
		$request_url = get_permalink();
		// Backup, in case get_permalink() fails.
		if (!$request_url) {
			$request_url = home_url($wp->request);
		}

		$filepath_prefix = $this->_build_filepath_prefix('ccss');
		$url_tag         = $this->_gen_ccss_file_tag($request_url);
		$vary            = $this->cls('Vary')->finalize_full_varies();
		$filename        = $this->cls('Data')->load_url_file($url_tag, $vary, 'ccss');
		if ($filename) {
			$static_file = LITESPEED_STATIC_DIR . $filepath_prefix . $filename . '.css';

			if (file_exists($static_file)) {
				Debug2::debug2('[CSS] existing ccss ' . $static_file);
				Core::comment('QUIC.cloud CCSS loaded ✅ ' . $filepath_prefix . $filename . '.css');
				return File::read($static_file);
			}
		}

		$uid = get_current_user_id();

		$ua = !empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';

		// Store it to prepare for cron
		Core::comment('QUIC.cloud CCSS in queue');
		$this->_queue = $this->load_queue('ccss');

		if (count($this->_queue) > 500) {
			self::debug('CCSS Queue is full - 500');
			return null;
		}

		$queue_k                = (strlen($vary) > 32 ? md5($vary) : $vary) . ' ' . $url_tag;
		$this->_queue[$queue_k] = array(
			'url' => apply_filters('litespeed_ccss_url', $request_url),
			'user_agent' => substr($ua, 0, 200),
			'is_mobile' => $this->_separate_mobile(),
			'is_webp' => $this->cls('Media')->webp_support() ? 1 : 0,
			'uid' => $uid,
			'vary' => $vary,
			'url_tag' => $url_tag,
		); // Current UA will be used to request
		$this->save_queue('ccss', $this->_queue);
		self::debug('Added queue_ccss [url_tag] ' . $url_tag . ' [UA] ' . $ua . ' [vary] ' . $vary . ' [uid] ' . $uid);

		// Prepare cache tag for later purge
		Tag::add('CCSS.' . md5($queue_k));

		// For v4.1- clean up
		if (isset($this->_summary['ccss_type_history']) || isset($this->_summary['ccss_history']) || isset($this->_summary['queue_ccss'])) {
			if (isset($this->_summary['ccss_type_history'])) {
				unset($this->_summary['ccss_type_history']);
			}
			if (isset($this->_summary['ccss_history'])) {
				unset($this->_summary['ccss_history']);
			}
			if (isset($this->_summary['queue_ccss'])) {
				unset($this->_summary['queue_ccss']);
			}
			self::save_summary();
		}

		return null;
	}

	/**
	 * Cron ccss generation
	 *
	 * @since  2.3
	 * @access private
	 */
	public static function cron_ccss( $continue = false ) {
		$_instance = self::cls();
		return $_instance->_cron_handler('ccss', $continue);
	}

	/**
	 * Handle UCSS/CCSS cron
	 *
	 * @since 4.2
	 */
	private function _cron_handler( $type, $continue ) {
		$this->_queue = $this->load_queue($type);

		if (empty($this->_queue)) {
			return;
		}

		$type_tag = strtoupper($type);

		// For cron, need to check request interval too
		if (!$continue) {
			if (!empty($this->_summary['curr_request_' . $type]) && time() - $this->_summary['curr_request_' . $type] < 300 && !$this->conf(self::O_DEBUG)) {
				Debug2::debug('[' . $type_tag . '] Last request not done');
				return;
			}
		}

		$i = 0;
		foreach ($this->_queue as $k => $v) {
			if (!empty($v['_status'])) {
				continue;
			}

			Debug2::debug('[' . $type_tag . '] cron job [tag] ' . $k . ' [url] ' . $v['url'] . ($v['is_mobile'] ? ' 📱 ' : '') . ' [UA] ' . $v['user_agent']);

			if ($type == 'ccss' && empty($v['url_tag'])) {
				unset($this->_queue[$k]);
				$this->save_queue($type, $this->_queue);
				Debug2::debug('[CCSS] wrong queue_ccss format');
				continue;
			}

			if (!isset($v['is_webp'])) {
				$v['is_webp'] = false;
			}

			++$i;
			$res = $this->_send_req($v['url'], $k, $v['uid'], $v['user_agent'], $v['vary'], $v['url_tag'], $type, $v['is_mobile'], $v['is_webp']);
			if (!$res) {
				// Status is wrong, drop this this->_queue
				unset($this->_queue[$k]);
				$this->save_queue($type, $this->_queue);

				if (!$continue) {
					return;
				}

				if ($i > 3) {
					GUI::print_loading(count($this->_queue), $type_tag);
					return Router::self_redirect(Router::ACTION_CSS, self::TYPE_GEN_CCSS);
				}

				continue;
			}

			// Exit queue if out of quota or service is hot
			if ($res === 'out_of_quota' || $res === 'svc_hot') {
				return;
			}

			$this->_queue[$k]['_status'] = 'requested';
			$this->save_queue($type, $this->_queue);

			// only request first one
			if (!$continue) {
				return;
			}

			if ($i > 3) {
				GUI::print_loading(count($this->_queue), $type_tag);
				return Router::self_redirect(Router::ACTION_CSS, self::TYPE_GEN_CCSS);
			}
		}
	}

	/**
	 * Send to QC API to generate CCSS/UCSS
	 *
	 * @since  2.3
	 * @access private
	 */
	private function _send_req( $request_url, $queue_k, $uid, $user_agent, $vary, $url_tag, $type, $is_mobile, $is_webp ) {
		// Check if has credit to push or not
		$err       = false;
		$allowance = $this->cls('Cloud')->allowance(Cloud::SVC_CCSS, $err);
		if (!$allowance) {
			Debug2::debug('[CCSS] ❌ No credit: ' . $err);
			$err && Admin_Display::error(Error::msg($err));
			return 'out_of_quota';
		}

		set_time_limit(120);

		// Update css request status
		$this->_summary['curr_request_' . $type] = time();
		self::save_summary();

		// Gather guest HTML to send
		$html = $this->prepare_html($request_url, $user_agent, $uid);

		if (!$html) {
			return false;
		}

		// Parse HTML to gather all CSS content before requesting
		list($css, $html) = $this->prepare_css($html, $is_webp);

		if (!$css) {
			$type_tag = strtoupper($type);
			Debug2::debug('[' . $type_tag . '] ❌ No combined css');
			return false;
		}

		// Generate critical css
		$data = array(
			'url' => $request_url,
			'queue_k' => $queue_k,
			'user_agent' => $user_agent,
			'is_mobile' => $is_mobile ? 1 : 0, // todo:compatible w/ tablet
			'is_webp' => $is_webp ? 1 : 0,
			'html' => $html,
			'css' => $css,
		);
		if (!isset($this->_ccss_whitelist)) {
			$this->_ccss_whitelist = $this->_filter_whitelist();
		}
		$data['whitelist'] = $this->_ccss_whitelist;

		self::debug('Generating: ', $data);

		$json = Cloud::post(Cloud::SVC_CCSS, $data, 30);
		if (!is_array($json)) {
			return $json;
		}

		// Old version compatibility
		if (empty($json['status'])) {
			if (!empty($json[$type])) {
				$this->_save_con($type, $json[$type], $queue_k, $is_mobile, $is_webp);
			}

			// Delete the row
			return false;
		}

		// Unknown status, remove this line
		if ($json['status'] != 'queued') {
			return false;
		}

		// Save summary data
		$this->_summary['last_spent_' . $type]   = time() - $this->_summary['curr_request_' . $type];
		$this->_summary['last_request_' . $type] = $this->_summary['curr_request_' . $type];
		$this->_summary['curr_request_' . $type] = 0;
		self::save_summary();

		return true;
	}

	/**
	 * Save CCSS/UCSS content
	 *
	 * @since 4.2
	 */
	private function _save_con( $type, $css, $queue_k, $mobile, $webp ) {
		// Add filters
		$css = apply_filters('litespeed_' . $type, $css, $queue_k);
		Debug2::debug2('[CSS] con: ' . $css);

		if (substr($css, 0, 2) == '/*' && substr($css, -2) == '*/') {
			self::debug('❌ empty ' . $type . ' [content] ' . $css);
			// continue; // Save the error info too
		}

		// Write to file
		$filecon_md5 = md5($css);

		$filepath_prefix = $this->_build_filepath_prefix($type);
		$static_file     = LITESPEED_STATIC_DIR . $filepath_prefix . $filecon_md5 . '.css';

		File::save($static_file, $css, true);

		$url_tag = $this->_queue[$queue_k]['url_tag'];
		$vary    = $this->_queue[$queue_k]['vary'];
		Debug2::debug2("[CSS] Save URL to file [file] $static_file [vary] $vary");

		$this->cls('Data')->save_url($url_tag, $vary, $type, $filecon_md5, dirname($static_file), $mobile, $webp);

		Purge::add(strtoupper($type) . '.' . md5($queue_k));
	}

	/**
	 * Play for fun
	 *
	 * @since  3.4.3
	 */
	public function test_url( $request_url ) {
		$user_agent       = $_SERVER['HTTP_USER_AGENT'];
		$html             = $this->prepare_html($request_url, $user_agent);
		list($css, $html) = $this->prepare_css($html, true, true);
		// var_dump( $css );
		// $html = <<<EOT

		// EOT;

		// $css = <<<EOT

		// EOT;
		$data = array(
			'url' => $request_url,
			'ccss_type' => 'test',
			'user_agent' => $user_agent,
			'is_mobile' => 0,
			'html' => $html,
			'css' => $css,
			'type' => 'CCSS',
		);

		// self::debug( 'Generating: ', $data );

		$json = Cloud::post(Cloud::SVC_CCSS, $data, 180);

		var_dump($json);
	}

	/**
	 * Prepare HTML from URL
	 *
	 * @since  3.4.3
	 */
	public function prepare_html( $request_url, $user_agent, $uid = false ) {
		$html = $this->cls('Crawler')->self_curl(add_query_arg('LSCWP_CTRL', 'before_optm', $request_url), $user_agent, $uid);
		Debug2::debug2('[CSS] self_curl result....', $html);

		if (!$html) {
			return false;
		}

		$html = $this->cls('Optimizer')->html_min($html, true);
		// Drop <noscript>xxx</noscript>
		$html = preg_replace('#<noscript>.*</noscript>#isU', '', $html);

		return $html;
	}

	/**
	 * Prepare CSS from HTML for CCSS generation only. UCSS will used combined CSS directly.
	 * Prepare refined HTML for both CCSS and UCSS.
	 *
	 * @since  3.4.3
	 */
	public function prepare_css( $html, $is_webp = false, $dryrun = false ) {
		$css = '';
		preg_match_all('#<link ([^>]+)/?>|<style([^>]*)>([^<]+)</style>#isU', $html, $matches, PREG_SET_ORDER);
		foreach ($matches as $match) {
			$debug_info = '';
			if (strpos($match[0], '<link') === 0) {
				$attrs = Utility::parse_attr($match[1]);

				if (empty($attrs['rel'])) {
					continue;
				}

				if ($attrs['rel'] != 'stylesheet') {
					if ($attrs['rel'] != 'preload' || empty($attrs['as']) || $attrs['as'] != 'style') {
						continue;
					}
				}

				if (!empty($attrs['media']) && strpos($attrs['media'], 'print') !== false) {
					continue;
				}

				if (empty($attrs['href'])) {
					continue;
				}

				// Check Google fonts hit
				if (strpos($attrs['href'], 'fonts.googleapis.com') !== false) {
					$html = str_replace($match[0], '', $html);
					continue;
				}

				$debug_info = $attrs['href'];

				// Load CSS content
				if (!$dryrun) {
					// Dryrun will not load CSS but just drop them
					$con = $this->cls('Optimizer')->load_file($attrs['href']);
					if (!$con) {
						continue;
					}
				} else {
					$con = '';
				}
			} else {
				// Inline style
				$attrs = Utility::parse_attr($match[2]);

				if (!empty($attrs['media']) && strpos($attrs['media'], 'print') !== false) {
					continue;
				}

				Debug2::debug2('[CSS] Load inline CSS ' . substr($match[3], 0, 100) . '...', $attrs);
				$con = $match[3];

				$debug_info = '__INLINE__';
			}

			$con = Optimizer::minify_css($con);
			if ($is_webp && $this->cls('Media')->webp_support()) {
				$con = $this->cls('Media')->replace_background_webp($con);
			}

			if (!empty($attrs['media']) && $attrs['media'] !== 'all') {
				$con = '@media ' . $attrs['media'] . '{' . $con . "}\n";
			} else {
				$con = $con . "\n";
			}

			$con  = '/* ' . $debug_info . ' */' . $con;
			$css .= $con;

			$html = str_replace($match[0], '', $html);
		}

		return array( $css, $html );
	}

	/**
	 * Filter the comment content, add quotes to selector from whitelist. Return the json
	 *
	 * @since 7.1
	 */
	private function _filter_whitelist() {
		$whitelist = array();
		$list      = apply_filters('litespeed_ccss_whitelist', $this->conf(self::O_OPTM_CCSS_SELECTOR_WHITELIST));
		foreach ($list as $v) {
			if (substr($v, 0, 2) === '//') {
				continue;
			}
			$whitelist[] = $v;
		}

		return $whitelist;
	}

	/**
	 * Notify finished from server
	 *
	 * @since 7.1
	 */
	public function notify() {
		$post_data = \json_decode(file_get_contents('php://input'), true);
		if (is_null($post_data)) {
			$post_data = $_POST;
		}
		self::debug('notify() data', $post_data);

		$this->_queue = $this->load_queue('ccss');

		list($post_data) = $this->cls('Cloud')->extract_msg($post_data, 'ccss');

		$notified_data = $post_data['data'];
		if (empty($notified_data) || !is_array($notified_data)) {
			self::debug('❌ notify exit: no notified data');
			return Cloud::err('no notified data');
		}

		// Check if its in queue or not
		$valid_i = 0;
		foreach ($notified_data as $v) {
			if (empty($v['request_url'])) {
				self::debug('❌ notify bypass: no request_url', $v);
				continue;
			}
			if (empty($v['queue_k'])) {
				self::debug('❌ notify bypass: no queue_k', $v);
				continue;
			}

			if (empty($this->_queue[$v['queue_k']])) {
				self::debug('❌ notify bypass: no this queue [q_k]' . $v['queue_k']);
				continue;
			}

			// Save data
			if (!empty($v['data_ccss'])) {
				$is_mobile = $this->_queue[$v['queue_k']]['is_mobile'];
				$is_webp   = $this->_queue[$v['queue_k']]['is_webp'];
				$this->_save_con('ccss', $v['data_ccss'], $v['queue_k'], $is_mobile, $is_webp);

				++$valid_i;
			}

			unset($this->_queue[$v['queue_k']]);
			self::debug('notify data handled, unset queue [q_k] ' . $v['queue_k']);
		}
		$this->save_queue('ccss', $this->_queue);

		self::debug('notified');

		return Cloud::ok(array( 'count' => $valid_i ));
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.3
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_GEN_CCSS:
            self::cron_ccss(true);
				break;

			case self::TYPE_CLEAR_Q_CCSS:
            $this->clear_q('ccss');
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The crawler class
 *
 * @since       1.1.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Crawler extends Root {

	const LOG_TAG = '🕸️';

	const TYPE_REFRESH_MAP     = 'refresh_map';
	const TYPE_EMPTY           = 'empty';
	const TYPE_BLACKLIST_EMPTY = 'blacklist_empty';
	const TYPE_BLACKLIST_DEL   = 'blacklist_del';
	const TYPE_BLACKLIST_ADD   = 'blacklist_add';
	const TYPE_START           = 'start';
	const TYPE_RESET           = 'reset';

	const USER_AGENT      = 'lscache_walker';
	const FAST_USER_AGENT = 'lscache_runner';
	const CHUNKS          = 10000;

	const STATUS_WAIT      = 'W';
	const STATUS_HIT       = 'H';
	const STATUS_MISS      = 'M';
	const STATUS_BLACKLIST = 'B';
	const STATUS_NOCACHE   = 'N';

	private $_sitemeta = 'meta.data';
	private $_resetfile;
	private $_end_reason;
	private $_ncpu = 1;
	private $_server_ip;

	private $_crawler_conf = array(
		'cookies' => array(),
		'headers' => array(),
		'ua' => '',
	);
	private $_crawlers     = array();
	private $_cur_threads  = -1;
	private $_max_run_time;
	private $_cur_thread_time;
	private $_map_status_list = array(
		'H' => array(),
		'M' => array(),
		'B' => array(),
		'N' => array(),
	);
	protected $_summary;

	/**
	 * Initialize crawler, assign sitemap path
	 *
	 * @since    1.1.0
	 */
	public function __construct() {
		if (is_multisite()) {
			$this->_sitemeta = 'meta' . get_current_blog_id() . '.data';
		}

		$this->_resetfile = LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta . '.reset';

		$this->_summary = self::get_summary();

		$this->_ncpu      = $this->_get_server_cpu();
		$this->_server_ip = $this->conf(Base::O_SERVER_IP);

		self::debug('Init w/ CPU cores=' . $this->_ncpu);
	}

	/**
	 * Try get server CPUs
	 *
	 * @since 5.2
	 */
	private function _get_server_cpu() {
		$cpuinfo_file     = '/proc/cpuinfo';
		$setting_open_dir = ini_get('open_basedir');
		if ($setting_open_dir) {
			return 1;
		} // Server has limit

		try {
			if (!@is_file($cpuinfo_file)) {
				return 1;
			}
		} catch (\Exception $e) {
			return 1;
		}

		$cpuinfo = file_get_contents($cpuinfo_file);
		preg_match_all('/^processor/m', $cpuinfo, $matches);
		return count($matches[0]) ?: 1;
	}

	/**
	 * Check whether the current crawler is active/runable/useable/enabled/want it to work or not
	 *
	 * @since  4.3
	 */
	public function is_active( $curr ) {
		$bypass_list = self::get_option('bypass_list', array());
		return !in_array($curr, $bypass_list);
	}

	/**
	 * Toggle the current crawler's activeness state, i.e., runable/useable/enabled/want it to work or not, and return the updated state
	 *
	 * @since  4.3
	 */
	public function toggle_activeness( $curr ) {
		// param type: int
		$bypass_list = self::get_option('bypass_list', array());
		if (in_array($curr, $bypass_list)) {
			// when the ith opt was off / in the bypassed list, turn it on / remove it from the list
			unset($bypass_list[array_search($curr, $bypass_list)]);
			$bypass_list = array_values($bypass_list);
			self::update_option('bypass_list', $bypass_list);
			return true;
		} else {
			// when the ith opt was on / not in the bypassed list, turn it off / add it to the list
			$bypass_list[] = (int) $curr;
			self::update_option('bypass_list', $bypass_list);
			return false;
		}
	}

	/**
	 * Clear bypassed list
	 *
	 * @since  4.3
	 * @access public
	 */
	public function clear_disabled_list() {
		self::update_option('bypass_list', array());

		$msg = __('Crawler disabled list is cleared! All crawlers are set to active! ', 'litespeed-cache');
		Admin_Display::note($msg);

		self::debug('All crawlers are set to active...... ');
	}

	/**
	 * Overwrite get_summary to init elements
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get_summary( $field = false ) {
		$_default = array(
			'list_size' => 0,
			'last_update_time' => 0,
			'curr_crawler' => 0,
			'curr_crawler_beginning_time' => 0,
			'last_pos' => 0,
			'last_count' => 0,
			'last_crawled' => 0,
			'last_start_time' => 0,
			'last_status' => '',
			'is_running' => 0,
			'end_reason' => '',
			'meta_save_time' => 0,
			'pos_reset_check' => 0,
			'done' => 0,
			'this_full_beginning_time' => 0,
			'last_full_time_cost' => 0,
			'last_crawler_total_cost' => 0,
			'crawler_stats' => array(), // this will store all crawlers hit/miss crawl status
		);

		wp_cache_delete('alloptions', 'options'); // ensure the summary is current
		$summary = parent::get_summary();
		$summary = array_merge($_default, $summary);

		if (!$field) {
			return $summary;
		}

		if (array_key_exists($field, $summary)) {
			return $summary[$field];
		}

		return null;
	}

	/**
	 * Overwrite save_summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function save_summary( $data = false, $reload = false, $overwrite = false ) {
		$instance                             = self::cls();
		$instance->_summary['meta_save_time'] = time();

		if (!$data) {
			$data = $instance->_summary;
		}

		parent::save_summary($data, $reload, $overwrite);

		File::save(LITESPEED_STATIC_DIR . '/crawler/' . $instance->_sitemeta, \json_encode($data), true);
	}

	/**
	 * Cron start async crawling
	 *
	 * @since 5.5
	 */
	public static function start_async_cron() {
		Task::async_call('crawler');
	}

	/**
	 * Manually start async crawling
	 *
	 * @since 5.5
	 */
	public static function start_async() {
		Task::async_call('crawler_force');

		$msg = __('Started async crawling', 'litespeed-cache');
		Admin_Display::success($msg);
	}

	/**
	 * Ajax crawl handler
	 *
	 * @since 5.5
	 */
	public static function async_handler( $manually_run = false ) {
		self::debug('------------async-------------start_async_handler');
		// check_ajax_referer('async_crawler', 'nonce');
		self::start($manually_run);
	}

	/**
	 * Proceed crawling
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public static function start( $manually_run = false ) {
		if (!Router::can_crawl()) {
			self::debug('......crawler is NOT allowed by the server admin......');
			return false;
		}

		if ($manually_run) {
			self::debug('......crawler manually ran......');
		}

		self::cls()->_crawl_data($manually_run);
	}

	/**
	 * Crawling start
	 *
	 * @since    1.1.0
	 * @access   private
	 */
	private function _crawl_data( $manually_run ) {
		if (!defined('LITESPEED_LANE_HASH')) {
			define('LITESPEED_LANE_HASH', Str::rrand(8));
		}
		if ($this->_check_valid_lane()) {
			$this->_take_over_lane();
		} else {
			self::debug('⚠️ lane in use');
			return;
			// if ($manually_run) {
			// self::debug('......crawler started (manually_rund)......');
			// Log pid to prevent from multi running
			// if (defined('LITESPEED_CLI')) {
			// Take over lane
			// self::debug('⚠️⚠️⚠️ Forced take over lane (CLI)');
			// $this->_take_over_lane();
			// }
			// }
		}
		self::debug('......crawler started......');

		// for the first time running
		if (!$this->_summary || !Data::cls()->tb_exist('crawler') || !Data::cls()->tb_exist('crawler_blacklist')) {
			$this->cls('Crawler_Map')->gen();
		}

		// if finished last time, regenerate sitemap
		if ($this->_summary['done'] === 'touchedEnd') {
			// check whole crawling interval
			$last_finished_at = $this->_summary['last_full_time_cost'] + $this->_summary['this_full_beginning_time'];
			if (!$manually_run && time() - $last_finished_at < $this->conf(Base::O_CRAWLER_CRAWL_INTERVAL)) {
				self::debug('Cron abort: cache warmed already.');
				// if not reach whole crawling interval, exit
				$this->Release_lane();
				return;
			}
			self::debug('TouchedEnd. regenerate sitemap....');
			$this->cls('Crawler_Map')->gen();
		}

		$this->list_crawlers();

		// Skip the crawlers that in bypassed list
		while (!$this->is_active($this->_summary['curr_crawler']) && $this->_summary['curr_crawler'] < count($this->_crawlers)) {
			self::debug('Skipped the Crawler #' . $this->_summary['curr_crawler'] . ' ......');
			++$this->_summary['curr_crawler'];
		}
		if ($this->_summary['curr_crawler'] >= count($this->_crawlers)) {
			$this->_end_reason = 'end';
			$this->_terminate_running();
			$this->Release_lane();
			return;
		}

		// In case crawlers are all done but not reload, reload it
		if (empty($this->_summary['curr_crawler']) || empty($this->_crawlers[$this->_summary['curr_crawler']])) {
			$this->_summary['curr_crawler']                                   = 0;
			$this->_summary['crawler_stats'][$this->_summary['curr_crawler']] = array();
		}

		$res = $this->load_conf();
		if (!$res) {
			self::debug('Load conf failed');
			$this->_terminate_running();
			$this->Release_lane();
			return;
		}

		try {
			$this->_engine_start();
			$this->Release_lane();
		} catch (\Exception $e) {
			self::debug('🛑 ' . $e->getMessage());
		}
	}

	/**
	 * Load conf before running crawler
	 *
	 * @since  3.0
	 * @access private
	 */
	private function load_conf() {
		$this->_crawler_conf['base'] = site_url();

		$current_crawler = $this->_crawlers[$this->_summary['curr_crawler']];

		/**
		 * Check cookie crawler
		 *
		 * @since  2.8
		 */
		foreach ($current_crawler as $k => $v) {
			if (strpos($k, 'cookie:') !== 0) {
				continue;
			}

			if ($v == '_null') {
				continue;
			}

			$this->_crawler_conf['cookies'][substr($k, 7)] = $v;
		}

		/**
		 * Set WebP simulation
		 *
		 * @since  1.9.1
		 */
		if (!empty($current_crawler['webp'])) {
			$this->_crawler_conf['headers'][] = 'Accept: image/' . ($this->conf(Base::O_IMG_OPTM_WEBP) == 2 ? 'avif' : 'webp') . ',*/*';
		}

		/**
		 * Set mobile crawler
		 *
		 * @since  2.8
		 */
		if (!empty($current_crawler['mobile'])) {
			$this->_crawler_conf['ua'] = 'Mobile iPhone';
		}

		/**
		 * Limit delay to use server setting
		 *
		 * @since 1.8.3
		 */
		$this->_crawler_conf['run_delay'] = 500; // microseconds
		if (defined('LITESPEED_CRAWLER_USLEEP') && LITESPEED_CRAWLER_USLEEP > $this->_crawler_conf['run_delay']) {
			$this->_crawler_conf['run_delay'] = LITESPEED_CRAWLER_USLEEP;
		}
		if (!empty($_SERVER[Base::ENV_CRAWLER_USLEEP]) && $_SERVER[Base::ENV_CRAWLER_USLEEP] > $this->_crawler_conf['run_delay']) {
			$this->_crawler_conf['run_delay'] = $_SERVER[Base::ENV_CRAWLER_USLEEP];
		}

		$this->_crawler_conf['run_duration'] = $this->get_crawler_duration();

		$this->_crawler_conf['load_limit'] = $this->conf(Base::O_CRAWLER_LOAD_LIMIT);
		if (!empty($_SERVER[Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE])) {
			$this->_crawler_conf['load_limit'] = $_SERVER[Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE];
		} elseif (!empty($_SERVER[Base::ENV_CRAWLER_LOAD_LIMIT]) && $_SERVER[Base::ENV_CRAWLER_LOAD_LIMIT] < $this->_crawler_conf['load_limit']) {
			$this->_crawler_conf['load_limit'] = $_SERVER[Base::ENV_CRAWLER_LOAD_LIMIT];
		}
		if ($this->_crawler_conf['load_limit'] == 0) {
			self::debug('🛑 Terminated crawler due to load limit set to 0');
			return false;
		}

		/**
		 * Set role simulation
		 *
		 * @since 1.9.1
		 */
		if (!empty($current_crawler['uid'])) {
			if (!$this->_server_ip) {
				self::debug('🛑 Terminated crawler due to Server IP not set');
				return false;
			}
			// Get role simulation vary name
			$vary_name                                  = $this->cls('Vary')->get_vary_name();
			$vary_val                                   = $this->cls('Vary')->finalize_default_vary($current_crawler['uid']);
			$this->_crawler_conf['cookies'][$vary_name] = $vary_val;
			$this->_crawler_conf['cookies']['litespeed_hash'] = Router::cls()->get_hash($current_crawler['uid']);
		}

		return true;
	}

	/**
	 * Get crawler duration allowance
	 *
	 * @since 7.0
	 */
	public function get_crawler_duration() {
		$RUN_DURATION = defined('LITESPEED_CRAWLER_DURATION') ? LITESPEED_CRAWLER_DURATION : 900;
		if ($RUN_DURATION > 900) {
			$RUN_DURATION = 900; // reset to default value if defined in conf file is higher than 900 seconds for security enhancement
		}
		return $RUN_DURATION;
	}

	/**
	 * Start crawler
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _engine_start() {
		// check if is running
		// if ($this->_summary['is_running'] && time() - $this->_summary['is_running'] < $this->_crawler_conf['run_duration']) {
		// $this->_end_reason = 'stopped';
		// self::debug('The crawler is running.');
		// return;
		// }

		// check current load
		$this->_adjust_current_threads();
		if ($this->_cur_threads == 0) {
			$this->_end_reason = 'stopped_highload';
			self::debug('Stopped due to heavy load.');
			return;
		}

		// log started time
		self::save_summary(array( 'last_start_time' => time() ));

		// set time limit
		$maxTime = (int) ini_get('max_execution_time');
		self::debug('ini_get max_execution_time=' . $maxTime);
		if ($maxTime == 0) {
			$maxTime = 300; // hardlimit
		} else {
			$maxTime -= 5;
		}
		if ($maxTime >= $this->_crawler_conf['run_duration']) {
			$maxTime = $this->_crawler_conf['run_duration'];
			self::debug('Use run_duration setting as max_execution_time=' . $maxTime);
		} elseif (ini_set('max_execution_time', $this->_crawler_conf['run_duration'] + 15) !== false) {
			$maxTime = $this->_crawler_conf['run_duration'];
			self::debug('ini_set max_execution_time=' . $maxTime);
		}
		self::debug('final max_execution_time=' . $maxTime);
		$this->_max_run_time = $maxTime + time();

		// mark running
		$this->_prepare_running();
		// run crawler
		$this->_do_running();
		$this->_terminate_running();
	}

	/**
	 * Get server load
	 *
	 * @since 5.5
	 */
	public function get_server_load() {
		/**
		 * If server is windows, exit
		 *
		 * @see  https://wordpress.org/support/topic/crawler-keeps-causing-crashes/
		 */
		if (!function_exists('sys_getloadavg')) {
			return -1;
		}

		$curload = sys_getloadavg();
		$curload = $curload[0];
		self::debug('Server load: ' . $curload);
		return $curload;
	}

	/**
	 * Adjust threads dynamically
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _adjust_current_threads() {
		$curload = $this->get_server_load();
		if ($curload == -1) {
			self::debug('set threads=0 due to func sys_getloadavg not exist!');
			$this->_cur_threads = 0;
			return;
		}

		$curload /= $this->_ncpu;
		// $curload = 1;
		$CRAWLER_THREADS = defined('LITESPEED_CRAWLER_THREADS') ? LITESPEED_CRAWLER_THREADS : 3;

		if ($this->_cur_threads == -1) {
			// init
			if ($curload > $this->_crawler_conf['load_limit']) {
				$curthreads = 0;
			} elseif ($curload >= $this->_crawler_conf['load_limit'] - 1) {
				$curthreads = 1;
			} else {
				$curthreads = intval($this->_crawler_conf['load_limit'] - $curload);
				if ($curthreads > $CRAWLER_THREADS) {
					$curthreads = $CRAWLER_THREADS;
				}
			}
		} else {
			// adjust
			$curthreads = $this->_cur_threads;
			if ($curload >= $this->_crawler_conf['load_limit'] + 1) {
				sleep(5); // sleep 5 secs
				if ($curthreads >= 1) {
					--$curthreads;
				}
			} elseif ($curload >= $this->_crawler_conf['load_limit']) {
				// if ( $curthreads > 1 ) {// if already 1, keep
				--$curthreads;
				// }
			} elseif ($curload + 1 < $this->_crawler_conf['load_limit']) {
				if ($curthreads < $CRAWLER_THREADS) {
					++$curthreads;
				}
			}
		}

		// $log = 'set current threads = ' . $curthreads . ' previous=' . $this->_cur_threads
		// . ' max_allowed=' . $CRAWLER_THREADS . ' load_limit=' . $this->_crawler_conf[ 'load_limit' ] . ' current_load=' . $curload;

		$this->_cur_threads     = $curthreads;
		$this->_cur_thread_time = time();
	}

	/**
	 * Mark running status
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _prepare_running() {
		$this->_summary['is_running']   = time();
		$this->_summary['done']         = 0; // reset done status
		$this->_summary['last_status']  = 'prepare running';
		$this->_summary['last_crawled'] = 0;

		// Current crawler starttime mark
		if ($this->_summary['last_pos'] == 0) {
			$this->_summary['curr_crawler_beginning_time'] = time();
		}

		if ($this->_summary['curr_crawler'] == 0 && $this->_summary['last_pos'] == 0) {
			$this->_summary['this_full_beginning_time'] = time();
			$this->_summary['list_size']                = $this->cls('Crawler_Map')->count_map();
		}

		if ($this->_summary['end_reason'] == 'end' && $this->_summary['last_pos'] == 0) {
			$this->_summary['crawler_stats'][$this->_summary['curr_crawler']] = array();
		}

		self::save_summary();
	}

	/**
	 * Take over lane
	 *
	 * @since 6.1
	 */
	private function _take_over_lane() {
		self::debug('Take over lane as lane is free: ' . $this->json_local_path() . '.pid');
		File::save($this->json_local_path() . '.pid', LITESPEED_LANE_HASH);
	}

	/**
	 * Update lane file
	 *
	 * @since 6.1
	 */
	private function _touch_lane() {
		touch($this->json_local_path() . '.pid');
	}

	/**
	 * Release lane file
	 *
	 * @since 6.1
	 */
	public function Release_lane() {
		$lane_file = $this->json_local_path() . '.pid';
		if (!file_exists($lane_file)) {
			return;
		}

		self::debug('Release lane');
		unlink($lane_file);
	}

	/**
	 * Check if lane is used by other crawlers
	 *
	 * @since 6.1
	 */
	private function _check_valid_lane( $strict_mode = false ) {
		// Check lane hash
		$lane_file = $this->json_local_path() . '.pid';
		if ($strict_mode) {
			if (!file_exists($lane_file)) {
				self::debug("lane file not existed, strict mode is false [file] $lane_file");
				return false;
			}
		}
		$pid = File::read($lane_file);
		if ($pid && LITESPEED_LANE_HASH != $pid) {
			// If lane file is older than 1h, ignore
			if (time() - filemtime($lane_file) > 3600) {
				self::debug('Lane file is older than 1h, releasing lane');
				$this->Release_lane();
				return true;
			}
			return false;
		}
		return true;
	}

	/**
	 * Test port for simulator
	 *
	 * @since  7.0
	 * @access private
	 * @return bool true if success and can continue crawling, false if failed and need to stop
	 */
	private function _test_port() {
		if (!$this->_server_ip) {
			if (empty($this->_crawlers[$this->_summary['curr_crawler']]['uid'])) {
				self::debug('Bypass test port as Server IP is not set');
				return true;
			}
			self::debug('❌ Server IP not set');
			return false;
		}
		if (defined('LITESPEED_CRAWLER_LOCAL_PORT')) {
			self::debug('✅ LITESPEED_CRAWLER_LOCAL_PORT already defined');
			return true;
		}
		// Don't repeat testing in 120s
		if (!empty($this->_summary['test_port_tts']) && time() - $this->_summary['test_port_tts'] < 120) {
			if (!empty($this->_summary['test_port'])) {
				self::debug('✅ Use tested local port: ' . $this->_summary['test_port']);
				define('LITESPEED_CRAWLER_LOCAL_PORT', $this->_summary['test_port']);
				return true;
			}
			return false;
		}
		$this->_summary['test_port_tts'] = time();
		self::save_summary();

		$options = $this->_get_curl_options();
		$home    = home_url();
		File::save(LITESPEED_STATIC_DIR . '/crawler/test_port.txt', $home, true);
		$url        = LITESPEED_STATIC_URL . '/crawler/test_port.txt';
		$parsed_url = parse_url($url);
		if (empty($parsed_url['host'])) {
			self::debug('❌ Test port failed, invalid URL: ' . $url);
			return false;
		}
		$resolved                              = $parsed_url['host'] . ':443:' . $this->_server_ip;
		$options[CURLOPT_RESOLVE]              = array( $resolved );
		$options[CURLOPT_DNS_USE_GLOBAL_CACHE] = false;
		$options[CURLOPT_HEADER]               = false;
		self::debug('Test local 443 port for ' . $resolved);

		$ch = curl_init();
		curl_setopt_array($ch, $options);
		curl_setopt($ch, CURLOPT_URL, $url);
		$result      = curl_exec($ch);
		$test_result = false;
		if (curl_errno($ch) || $result !== $home) {
			if (curl_errno($ch)) {
				self::debug('❌ Test port curl error: [errNo] ' . curl_errno($ch) . ' [err] ' . curl_error($ch));
			} elseif ($result !== $home) {
				self::debug('❌ Test port response is wrong: ' . $result);
			}
			self::debug('❌ Test local 443 port failed, try port 80');

			// Try port 80
			$resolved                 = $parsed_url['host'] . ':80:' . $this->_server_ip;
			$options[CURLOPT_RESOLVE] = array( $resolved );
			$url                      = str_replace('https://', 'http://', $url);
			if (!in_array('X-Forwarded-Proto: https', $options[CURLOPT_HTTPHEADER])) {
				$options[CURLOPT_HTTPHEADER][] = 'X-Forwarded-Proto: https';
			}
			// $options[CURLOPT_HTTPHEADER][] = 'X-Forwarded-SSL: on';
			$ch = curl_init();
			curl_setopt_array($ch, $options);
			curl_setopt($ch, CURLOPT_URL, $url);
			$result = curl_exec($ch);
			if (curl_errno($ch)) {
				self::debug('❌ Test port curl error: [errNo] ' . curl_errno($ch) . ' [err] ' . curl_error($ch));
			} elseif ($result !== $home) {
				self::debug('❌ Test port response is wrong: ' . $result);
			} else {
				self::debug('✅ Test local 80 port successfully');
				define('LITESPEED_CRAWLER_LOCAL_PORT', 80);
				$this->_summary['test_port'] = 80;
				$test_result                 = true;
			}
			// self::debug('Response data: ' . $result);
			// $this->Release_lane();
			// exit($result);
		} else {
			self::debug('✅ Tested local 443 port successfully');
			define('LITESPEED_CRAWLER_LOCAL_PORT', 443);
			$this->_summary['test_port'] = 443;
			$test_result                 = true;
		}
		self::save_summary();
		curl_close($ch);
		return $test_result;
	}

	/**
	 * Run crawler
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _do_running() {
		$options = $this->_get_curl_options(true);

		// If is role simulator and not defined local port, check port once
		$test_result = $this->_test_port();
		if (!$test_result) {
			$this->_end_reason = 'port_test_failed';
			self::debug('❌ Test port failed, crawler stopped.');
			return;
		}

		while ($urlChunks = $this->cls('Crawler_Map')->list_map(self::CHUNKS, $this->_summary['last_pos'])) {
			// self::debug('$urlChunks=' . count($urlChunks) . ' $this->_cur_threads=' . $this->_cur_threads);
			// start crawling
			$urlChunks = array_chunk($urlChunks, $this->_cur_threads);
			// self::debug('$urlChunks after array_chunk: ' . count($urlChunks));
			foreach ($urlChunks as $rows) {
				if (!$this->_check_valid_lane(true)) {
					$this->_end_reason = 'lane_invalid';
					self::debug('🛑 The crawler lane is used by newer crawler.');
					throw new \Exception('invalid crawler lane');
				}
				// Update time
				$this->_touch_lane();

				// self::debug('chunk fetching count($rows)= ' . count($rows));
				// multi curl
				$rets = $this->_multi_request($rows, $options);

				// check result headers
				foreach ($rows as $row) {
					// self::debug('chunk fetching 553');
					if (empty($rets[$row['id']])) {
						// If already in blacklist, no curl happened, no corresponding record
						continue;
					}
					// self::debug('chunk fetching 557');
					// check response
					if ($rets[$row['id']]['code'] == 428) {
						// HTTP/1.1 428 Precondition Required (need to test)
						$this->_end_reason = 'crawler_disabled';
						self::debug('crawler_disabled');
						return;
					}

					$status = $this->_status_parse($rets[$row['id']]['header'], $rets[$row['id']]['code'], $row['url']); // B or H or M or N(nocache)
					self::debug('[status] ' . $this->_status2title($status) . "\t\t [url] " . $row['url']);
					$this->_map_status_list[$status][$row['id']] = array(
						'url' => $row['url'],
						'code' => $rets[$row['id']]['code'], // 201 or 200 or 404
					);
					if (empty($this->_summary['crawler_stats'][$this->_summary['curr_crawler']][$status])) {
						$this->_summary['crawler_stats'][$this->_summary['curr_crawler']][$status] = 0;
					}
					++$this->_summary['crawler_stats'][$this->_summary['curr_crawler']][$status];
				}

				// update offset position
				$_time                              = time();
				$this->_summary['last_count']       = count($rows);
				$this->_summary['last_pos']        += $this->_summary['last_count'];
				$this->_summary['last_crawled']    += $this->_summary['last_count'];
				$this->_summary['last_update_time'] = $_time;
				$this->_summary['last_status']      = 'updated position';
				// self::debug("chunk fetching 604 last_pos:{$this->_summary['last_pos']} last_count:{$this->_summary['last_count']} last_crawled:{$this->_summary['last_crawled']}");
				// check duration
				if ($this->_summary['last_update_time'] > $this->_max_run_time) {
					$this->_end_reason = 'stopped_maxtime';
					self::debug('Terminated due to maxtime');
					return;
					// return __('Stopped due to exceeding defined Maximum Run Time', 'litespeed-cache');
				}

				// make sure at least each 10s save meta & map status once
				if ($_time - $this->_summary['meta_save_time'] > 10) {
					$this->_map_status_list = $this->cls('Crawler_Map')->save_map_status($this->_map_status_list, $this->_summary['curr_crawler']);
					self::save_summary();
				}
				// self::debug('chunk fetching 597');
				// check if need to reset pos each 5s
				if ($_time > $this->_summary['pos_reset_check']) {
					$this->_summary['pos_reset_check'] = $_time + 5;
					if (file_exists($this->_resetfile) && unlink($this->_resetfile)) {
						self::debug('Terminated due to reset file');

						$this->_summary['last_pos']                                       = 0;
						$this->_summary['curr_crawler']                                   = 0;
						$this->_summary['crawler_stats'][$this->_summary['curr_crawler']] = array();
						// reset done status
						$this->_summary['done']                     = 0;
						$this->_summary['this_full_beginning_time'] = 0;
						$this->_end_reason                          = 'stopped_reset';
						return;
						// return __('Stopped due to reset meta position', 'litespeed-cache');
					}
				}
				// self::debug('chunk fetching 615');
				// check loads
				if ($this->_summary['last_update_time'] - $this->_cur_thread_time > 60) {
					$this->_adjust_current_threads();
					if ($this->_cur_threads == 0) {
						$this->_end_reason = 'stopped_highload';
						self::debug('🛑 Terminated due to highload');
						return;
						// return __('Stopped due to load over limit', 'litespeed-cache');
					}
				}

				$this->_summary['last_status'] = 'sleeping ' . $this->_crawler_conf['run_delay'] . 'ms';

				usleep($this->_crawler_conf['run_delay']);
			}
			// self::debug('chunk fetching done');
		}

		// All URLs are done for current crawler
		$this->_end_reason = 'end';
		$this->_summary['crawler_stats'][$this->_summary['curr_crawler']]['W'] = 0;
		self::debug('Crawler #' . $this->_summary['curr_crawler'] . ' touched end');
	}

	/**
	 * If need to resolve DNS or not
	 *
	 * @since 7.3.0.1
	 */
	private function _should_force_resolve_dns() {
		if ($this->_server_ip) {
			return true;
		}
		if (!empty($this->_crawler_conf['cookies']) && !empty($this->_crawler_conf['cookies']['litespeed_hash'])) {
			return true;
		}
		return false;
	}

	/**
	 * Send multi curl requests
	 * If res=B, bypass request and won't return
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _multi_request( $rows, $options ) {
		if (!function_exists('curl_multi_init')) {
			exit('curl_multi_init disabled');
		}
		$mh                  = curl_multi_init();
		$CRAWLER_DROP_DOMAIN = defined('LITESPEED_CRAWLER_DROP_DOMAIN') ? LITESPEED_CRAWLER_DROP_DOMAIN : false;
		$curls               = array();
		foreach ($rows as $row) {
			if (substr($row['res'], $this->_summary['curr_crawler'], 1) == self::STATUS_BLACKLIST) {
				continue;
			}
			if (substr($row['res'], $this->_summary['curr_crawler'], 1) == self::STATUS_NOCACHE) {
				continue;
			}

			if (!function_exists('curl_init')) {
				exit('curl_init disabled');
			}

			$curls[$row['id']] = curl_init();

			// Append URL
			$url = $row['url'];
			if ($CRAWLER_DROP_DOMAIN) {
				$url = $this->_crawler_conf['base'] . $row['url'];
			}

			// IP resolve
			if ($this->_should_force_resolve_dns()) {
				$parsed_url = parse_url($url);
				// self::debug('Crawl role simulator, required to use localhost for resolve');

				if (!empty($parsed_url['host'])) {
					$dom                                   = $parsed_url['host'];
					$port                                  = defined('LITESPEED_CRAWLER_LOCAL_PORT') ? LITESPEED_CRAWLER_LOCAL_PORT : '443';
					$resolved                              = $dom . ':' . $port . ':' . $this->_server_ip;
					$options[CURLOPT_RESOLVE]              = array( $resolved );
					$options[CURLOPT_DNS_USE_GLOBAL_CACHE] = false;
					// $options[CURLOPT_PORT] = $port;
					if ($port == 80) {
						$url = str_replace('https://', 'http://', $url);
						if (!in_array('X-Forwarded-Proto: https', $options[CURLOPT_HTTPHEADER])) {
							$options[CURLOPT_HTTPHEADER][] = 'X-Forwarded-Proto: https';
						}
					}
					self::debug('Resolved DNS for ' . $resolved);
				}
			}

			curl_setopt($curls[$row['id']], CURLOPT_URL, $url);
			self::debug('Crawling [url] ' . $url . ($url == $row['url'] ? '' : ' [ori] ' . $row['url']));

			curl_setopt_array($curls[$row['id']], $options);

			curl_multi_add_handle($mh, $curls[$row['id']]);
		}

		// execute curl
		if ($curls) {
			do {
				$status = curl_multi_exec($mh, $active);
				if ($active) {
					curl_multi_select($mh);
				}
			} while ($active && $status == CURLM_OK);
		}

		// curl done
		$ret = array();
		foreach ($rows as $row) {
			if (substr($row['res'], $this->_summary['curr_crawler'], 1) == self::STATUS_BLACKLIST) {
				continue;
			}
			if (substr($row['res'], $this->_summary['curr_crawler'], 1) == self::STATUS_NOCACHE) {
				continue;
			}
			// self::debug('-----debug3');
			$ch = $curls[$row['id']];

			// Parse header
			$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
			$content     = curl_multi_getcontent($ch);
			$header      = substr($content, 0, $header_size);

			$ret[$row['id']] = array(
				'header' => $header,
				'code' => curl_getinfo($ch, CURLINFO_HTTP_CODE),
			);
			// self::debug('-----debug4');
			curl_multi_remove_handle($mh, $ch);
			curl_close($ch);
		}
		// self::debug('-----debug5');
		curl_multi_close($mh);
		// self::debug('-----debug6');
		return $ret;
	}

	/**
	 * Translate the status to title
	 *
	 * @since 6.0
	 */
	private function _status2title( $status ) {
		if ($status == self::STATUS_HIT) {
			return '✅ Hit';
		}
		if ($status == self::STATUS_MISS) {
			return '😊 Miss';
		}
		if ($status == self::STATUS_BLACKLIST) {
			return '😅 Blacklisted';
		}
		if ($status == self::STATUS_NOCACHE) {
			return '😅 Blacklisted';
		}
		return '🛸 Unknown';
	}

	/**
	 * Check returned curl header to find if cached or not
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _status_parse( $header, $code, $url ) {
		// self::debug('http status code: ' . $code . ' [headers]', $header);
		if ($code == 201) {
			return self::STATUS_HIT;
		}

		if (stripos($header, 'X-Litespeed-Cache-Control: no-cache') !== false) {
			// If is from DIVI, taken as miss
			if (defined('LITESPEED_CRAWLER_IGNORE_NONCACHEABLE') && LITESPEED_CRAWLER_IGNORE_NONCACHEABLE) {
				return self::STATUS_MISS;
			}

			// If blacklist is disabled
			if ((defined('LITESPEED_CRAWLER_DISABLE_BLOCKLIST') && LITESPEED_CRAWLER_DISABLE_BLOCKLIST) || apply_filters('litespeed_crawler_disable_blocklist', false, $url)) {
				return self::STATUS_MISS;
			}

			return self::STATUS_NOCACHE; // Blacklist
		}

		$_cache_headers = array( 'x-litespeed-cache', 'x-qc-cache', 'x-lsadc-cache' );

		foreach ($_cache_headers as $_header) {
			if (stripos($header, $_header) !== false) {
				if (stripos($header, $_header . ': bkn') !== false) {
					return self::STATUS_HIT; // Hit
				}
				if (stripos($header, $_header . ': miss') !== false) {
					return self::STATUS_MISS; // Miss
				}
				return self::STATUS_HIT; // Hit
			}
		}

		// If blacklist is disabled
		if ((defined('LITESPEED_CRAWLER_DISABLE_BLOCKLIST') && LITESPEED_CRAWLER_DISABLE_BLOCKLIST) || apply_filters('litespeed_crawler_disable_blocklist', false, $url)) {
			return self::STATUS_MISS;
		}

		return self::STATUS_BLACKLIST; // Blacklist
	}

	/**
	 * Get curl_options
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _get_curl_options( $crawler_only = false ) {
		$CRAWLER_TIMEOUT               = defined('LITESPEED_CRAWLER_TIMEOUT') ? LITESPEED_CRAWLER_TIMEOUT : 30;
		$options                       = array(
			CURLOPT_RETURNTRANSFER => true,
			CURLOPT_HEADER => true,
			CURLOPT_CUSTOMREQUEST => 'GET',
			CURLOPT_FOLLOWLOCATION => false,
			CURLOPT_ENCODING => 'gzip',
			CURLOPT_CONNECTTIMEOUT => 10,
			CURLOPT_TIMEOUT => $CRAWLER_TIMEOUT, // Larger timeout to avoid incorrect blacklist addition #900171
			CURLOPT_SSL_VERIFYHOST => 0,
			CURLOPT_SSL_VERIFYPEER => false,
			CURLOPT_NOBODY => false,
			CURLOPT_HTTPHEADER => $this->_crawler_conf['headers'],
		);
		$options[CURLOPT_HTTPHEADER][] = 'Cache-Control: max-age=0';

		/**
		 * Try to enable http2 connection (only available since PHP7+)
		 *
		 * @since  1.9.1
		 * @since  2.2.7 Commented due to cause no-cache issue
		 * @since  2.9.1+ Fixed wrongly usage of CURL_HTTP_VERSION_1_1 const
		 */
		$options[CURLOPT_HTTP_VERSION] = CURL_HTTP_VERSION_1_1;
		// $options[ CURL_HTTP_VERSION_2 ] = 1;

		// if is walker
		// $options[ CURLOPT_FRESH_CONNECT ] = true;

		// Referer
		if (isset($_SERVER['HTTP_HOST']) && isset($_SERVER['REQUEST_URI'])) {
			$options[CURLOPT_REFERER] = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
		}

		// User Agent
		if ($crawler_only) {
			if (strpos($this->_crawler_conf['ua'], self::FAST_USER_AGENT) !== 0) {
				$this->_crawler_conf['ua'] = self::FAST_USER_AGENT . ' ' . $this->_crawler_conf['ua'];
			}
		}
		$options[CURLOPT_USERAGENT] = $this->_crawler_conf['ua'];

		// Cookies
		$cookies = array();
		foreach ($this->_crawler_conf['cookies'] as $k => $v) {
			if (!$v) {
				continue;
			}
			$cookies[] = $k . '=' . urlencode($v);
		}
		if ($cookies) {
			$options[CURLOPT_COOKIE] = implode('; ', $cookies);
		}

		return $options;
	}

	/**
	 * Self curl to get HTML content
	 *
	 * @since  3.3
	 */
	public function self_curl( $url, $ua, $uid = false, $accept = false ) {
		// $accept not in use yet
		$this->_crawler_conf['base'] = site_url();
		$this->_crawler_conf['ua']   = $ua;
		if ($accept) {
			$this->_crawler_conf['headers'] = array( 'Accept: ' . $accept );
		}
		$options = $this->_get_curl_options();

		if ($uid) {
			$this->_crawler_conf['cookies']['litespeed_flash_hash'] = Router::cls()->get_flash_hash($uid);
			$parsed_url = parse_url($url);

			if (!empty($parsed_url['host'])) {
				$dom                                   = $parsed_url['host'];
				$port                                  = defined('LITESPEED_CRAWLER_LOCAL_PORT') ? LITESPEED_CRAWLER_LOCAL_PORT : '443'; // TODO: need to test port?
				$resolved                              = $dom . ':' . $port . ':' . $this->_server_ip;
				$options[CURLOPT_RESOLVE]              = array( $resolved );
				$options[CURLOPT_DNS_USE_GLOBAL_CACHE] = false;
				$options[CURLOPT_PORT]                 = $port;
				self::debug('Resolved DNS for ' . $resolved);
			}
		}

		$options[CURLOPT_HEADER]         = false;
		$options[CURLOPT_FOLLOWLOCATION] = true;

		$ch = curl_init();
		curl_setopt_array($ch, $options);
		curl_setopt($ch, CURLOPT_URL, $url);
		$result = curl_exec($ch);
		$code   = curl_getinfo($ch, CURLINFO_HTTP_CODE);
		curl_close($ch);

		if ($code != 200) {
			self::debug('❌ Response code is not 200 in self_curl() [code] ' . var_export($code, true));
			return false;
		}

		return $result;
	}

	/**
	 * Terminate crawling
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _terminate_running() {
		$this->_map_status_list = $this->cls('Crawler_Map')->save_map_status($this->_map_status_list, $this->_summary['curr_crawler']);

		if ($this->_end_reason == 'end') {
			// Current crawler is fully done
			// $end_reason = sprintf( __( 'Crawler %s reached end of sitemap file.', 'litespeed-cache' ), '#' . ( $this->_summary['curr_crawler'] + 1 ) );
			++$this->_summary['curr_crawler']; // Jump to next crawler
			// $this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array(); // reset this at next crawl time
			$this->_summary['last_pos']                = 0; // reset last position
			$this->_summary['last_crawler_total_cost'] = time() - $this->_summary['curr_crawler_beginning_time'];
			$count_crawlers                            = count($this->list_crawlers());
			if ($this->_summary['curr_crawler'] >= $count_crawlers) {
				self::debug('_terminate_running Touched end, whole crawled. Reload crawler!');
				$this->_summary['curr_crawler'] = 0;
				// $this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
				$this->_summary['done']                = 'touchedEnd'; // log done status
				$this->_summary['last_full_time_cost'] = time() - $this->_summary['this_full_beginning_time'];
			}
		}
		$this->_summary['last_status'] = 'stopped';
		$this->_summary['is_running']  = 0;
		$this->_summary['end_reason']  = $this->_end_reason;
		self::save_summary();
	}

	/**
	 * List all crawlers ( tagA => [ valueA => titleA, ... ] ...)
	 *
	 * @since    1.9.1
	 * @access   public
	 */
	public function list_crawlers() {
		if ($this->_crawlers) {
			return $this->_crawlers;
		}

		$crawler_factors = array();

		// Add default Guest crawler
		$crawler_factors['uid'] = array( 0 => __('Guest', 'litespeed-cache') );

		// WebP on/off
		if ($this->conf(Base::O_IMG_OPTM_WEBP)) {
			$crawler_factors['webp'] = array( 1 => $this->cls('Media')->next_gen_image_title() );
			if (apply_filters('litespeed_crawler_webp', false)) {
				$crawler_factors['webp'][0] = '';
			}
		}

		// Guest Mode on/off
		if ($this->conf(Base::O_GUEST)) {
			$vary_name = $this->cls('Vary')->get_vary_name();
			$vary_val  = 'guest_mode:1';
			if (!defined('LSCWP_LOG')) {
				$vary_val = md5($this->conf(Base::HASH) . $vary_val);
			}
			$crawler_factors['cookie:' . $vary_name] = array(
				$vary_val => '',
				'_null' => '<font data-balloon-pos="up" aria-label="Guest Mode">👒</font>',
			);
		}

		// Mobile crawler
		if ($this->conf(Base::O_CACHE_MOBILE)) {
			$crawler_factors['mobile'] = array(
				1 => '<font data-balloon-pos="up" aria-label="Mobile">📱</font>',
				0 => '',
			);
		}

		// Get roles set
		// List all roles
		foreach ($this->conf(Base::O_CRAWLER_ROLES) as $v) {
			$role_title = '';
			$udata      = get_userdata($v);
			if (isset($udata->roles) && is_array($udata->roles)) {
				$tmp        = array_values($udata->roles);
				$role_title = array_shift($tmp);
			}
			if (!$role_title) {
				continue;
			}

			$crawler_factors['uid'][$v] = ucfirst($role_title);
		}

		// Cookie crawler
		foreach ($this->conf(Base::O_CRAWLER_COOKIES) as $v) {
			if (empty($v['name'])) {
				continue;
			}

			$this_cookie_key = 'cookie:' . $v['name'];

			$crawler_factors[$this_cookie_key] = array();

			foreach ($v['vals'] as $v2) {
				$crawler_factors[$this_cookie_key][$v2] =
					$v2 == '_null' ? '' : '<font data-balloon-pos="up" aria-label="Cookie">🍪</font>' . esc_html($v['name']) . '=' . esc_html($v2);
			}
		}

		// Crossing generate the crawler list
		$this->_crawlers = $this->_recursive_build_crawler($crawler_factors);

		return $this->_crawlers;
	}

	/**
	 * Build a crawler list recursively
	 *
	 * @since 2.8
	 * @access private
	 */
	private function _recursive_build_crawler( $crawler_factors, $group = array(), $i = 0 ) {
		$current_factor = array_keys($crawler_factors);
		$current_factor = $current_factor[$i];

		$if_touch_end = $i + 1 >= count($crawler_factors);

		$final_list = array();

		foreach ($crawler_factors[$current_factor] as $k => $v) {
			// Don't alter $group bcos of loop usage
			$item          = $group;
			$item['title'] = !empty($group['title']) ? $group['title'] : '';
			if ($v) {
				if ($item['title']) {
					$item['title'] .= ' - ';
				}
				$item['title'] .= $v;
			}
			$item[$current_factor] = $k;

			if ($if_touch_end) {
				$final_list[] = $item;
			} else {
				// Inception: next layer
				$final_list = array_merge($final_list, $this->_recursive_build_crawler($crawler_factors, $item, $i + 1));
			}
		}

		return $final_list;
	}

	/**
	 * Return crawler meta file local path
	 *
	 * @since    6.1
	 * @access public
	 */
	public function json_local_path() {
		// if (!file_exists(LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta)) {
		// return false;
		// }

		return LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta;
	}

	/**
	 * Return crawler meta file
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function json_path() {
		if (!file_exists(LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta)) {
			return false;
		}

		return LITESPEED_STATIC_URL . '/crawler/' . $this->_sitemeta;
	}

	/**
	 * Create reset pos file
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function reset_pos() {
		File::save($this->_resetfile, time(), true);

		self::save_summary(array( 'is_running' => 0 ));
	}

	/**
	 * Display status based by matching crawlers order
	 *
	 * @since  3.0
	 * @access public
	 */
	public function display_status( $status_row, $reason_set ) {
		if (!$status_row) {
			return '';
		}

		$_status_list = array(
			'-' => 'default',
			self::STATUS_MISS => 'primary',
			self::STATUS_HIT => 'success',
			self::STATUS_BLACKLIST => 'danger',
			self::STATUS_NOCACHE => 'warning',
		);

		$reason_set = explode(',', $reason_set);

		$status = '';
		foreach (str_split($status_row) as $k => $v) {
			$reason = $reason_set[$k];
			if ($reason == 'Man') {
				$reason = __('Manually added to blocklist', 'litespeed-cache');
			}
			if ($reason == 'Existed') {
				$reason = __('Previously existed in blocklist', 'litespeed-cache');
			}
			if ($reason) {
				$reason = 'data-balloon-pos="up" aria-label="' . $reason . '"';
			}
			$status .= '<i class="litespeed-dot litespeed-bg-' . $_status_list[$v] . '" ' . $reason . '>' . ($k + 1) . '</i>';
		}

		return $status;
	}

	/**
	 * Output info and exit
	 *
	 * @since    1.1.0
	 * @access protected
	 * @param  string $msg Error info
	 */
	protected function output( $msg ) {
		if (wp_doing_cron()) {
			echo $msg;
			// exit();
		} else {
			echo "<script>alert('" . htmlspecialchars($msg) . "');</script>";
			// exit;
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_REFRESH_MAP:
            $this->cls('Crawler_Map')->gen(true);
				break;

			case self::TYPE_EMPTY:
            $this->cls('Crawler_Map')->empty_map();
				break;

			case self::TYPE_BLACKLIST_EMPTY:
            $this->cls('Crawler_Map')->blacklist_empty();
				break;

			case self::TYPE_BLACKLIST_DEL:
            if (!empty($_GET['id'])) {
					$this->cls('Crawler_Map')->blacklist_del($_GET['id']);
				}
				break;

			case self::TYPE_BLACKLIST_ADD:
            if (!empty($_GET['id'])) {
					$this->cls('Crawler_Map')->blacklist_add($_GET['id']);
				}
				break;

			case self::TYPE_START: // Handle the ajax request to proceed crawler manually by admin
            self::start_async();
				break;

			case self::TYPE_RESET:
            $this->reset_pos();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The base consts
 *
 * @since       3.7
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Base extends Root {

	// This is redundant since v3.0
	// New conf items are `litespeed.key`
	const OPTION_NAME = 'litespeed-cache-conf';

	const _CACHE = '_cache'; // final cache status from setting

	// -------------------------------------------------- ##
	// --------------       General     ----------------- ##
	// -------------------------------------------------- ##
	const _VER           = '_version'; // Not set-able
	const HASH           = 'hash'; // Not set-able
	const O_AUTO_UPGRADE = 'auto_upgrade';
	const O_API_KEY      = 'api_key'; // Deprecated since v6.4. TODO: Will drop after v6.5
	const O_SERVER_IP    = 'server_ip';
	const O_GUEST        = 'guest';
	const O_GUEST_OPTM   = 'guest_optm';
	const O_NEWS         = 'news';
	const O_GUEST_UAS    = 'guest_uas';
	const O_GUEST_IPS    = 'guest_ips';

	// -------------------------------------------------- ##
	// --------------       Cache       ----------------- ##
	// -------------------------------------------------- ##
	const O_CACHE                = 'cache';
	const O_CACHE_PRIV           = 'cache-priv';
	const O_CACHE_COMMENTER      = 'cache-commenter';
	const O_CACHE_REST           = 'cache-rest';
	const O_CACHE_PAGE_LOGIN     = 'cache-page_login';
	const O_CACHE_FAVICON        = 'cache-favicon'; // Deprecated since v6.2. TODO: Will drop after v6.5
	const O_CACHE_RES            = 'cache-resources'; // Deprecated since v7.2. TODO: Drop after v7.5
	const O_CACHE_MOBILE         = 'cache-mobile';
	const O_CACHE_MOBILE_RULES   = 'cache-mobile_rules';
	const O_CACHE_BROWSER        = 'cache-browser';
	const O_CACHE_EXC_USERAGENTS = 'cache-exc_useragents';
	const O_CACHE_EXC_COOKIES    = 'cache-exc_cookies';
	const O_CACHE_EXC_QS         = 'cache-exc_qs';
	const O_CACHE_EXC_CAT        = 'cache-exc_cat';
	const O_CACHE_EXC_TAG        = 'cache-exc_tag';
	const O_CACHE_FORCE_URI      = 'cache-force_uri';
	const O_CACHE_FORCE_PUB_URI  = 'cache-force_pub_uri';
	const O_CACHE_PRIV_URI       = 'cache-priv_uri';
	const O_CACHE_EXC            = 'cache-exc';
	const O_CACHE_EXC_ROLES      = 'cache-exc_roles';
	const O_CACHE_DROP_QS        = 'cache-drop_qs';
	const O_CACHE_TTL_PUB        = 'cache-ttl_pub';
	const O_CACHE_TTL_PRIV       = 'cache-ttl_priv';
	const O_CACHE_TTL_FRONTPAGE  = 'cache-ttl_frontpage';
	const O_CACHE_TTL_FEED       = 'cache-ttl_feed';
	const O_CACHE_TTL_REST       = 'cache-ttl_rest';
	const O_CACHE_TTL_STATUS     = 'cache-ttl_status';
	const O_CACHE_TTL_BROWSER    = 'cache-ttl_browser';
	const O_CACHE_AJAX_TTL       = 'cache-ajax_ttl';
	const O_CACHE_LOGIN_COOKIE   = 'cache-login_cookie';
	const O_CACHE_VARY_COOKIES   = 'cache-vary_cookies';
	const O_CACHE_VARY_GROUP     = 'cache-vary_group';

	// -------------------------------------------------- ##
	// --------------       Purge       ----------------- ##
	// -------------------------------------------------- ##
	const O_PURGE_ON_UPGRADE                   = 'purge-upgrade';
	const O_PURGE_STALE                        = 'purge-stale';
	const O_PURGE_POST_ALL                     = 'purge-post_all';
	const O_PURGE_POST_FRONTPAGE               = 'purge-post_f';
	const O_PURGE_POST_HOMEPAGE                = 'purge-post_h';
	const O_PURGE_POST_PAGES                   = 'purge-post_p';
	const O_PURGE_POST_PAGES_WITH_RECENT_POSTS = 'purge-post_pwrp';
	const O_PURGE_POST_AUTHOR                  = 'purge-post_a';
	const O_PURGE_POST_YEAR                    = 'purge-post_y';
	const O_PURGE_POST_MONTH                   = 'purge-post_m';
	const O_PURGE_POST_DATE                    = 'purge-post_d';
	const O_PURGE_POST_TERM                    = 'purge-post_t'; // include category|tag|tax
	const O_PURGE_POST_POSTTYPE                = 'purge-post_pt';
	const O_PURGE_TIMED_URLS                   = 'purge-timed_urls';
	const O_PURGE_TIMED_URLS_TIME              = 'purge-timed_urls_time';
	const O_PURGE_HOOK_ALL                     = 'purge-hook_all';

	// -------------------------------------------------- ##
	// --------------        ESI        ----------------- ##
	// -------------------------------------------------- ##
	const O_ESI                = 'esi';
	const O_ESI_CACHE_ADMBAR   = 'esi-cache_admbar';
	const O_ESI_CACHE_COMMFORM = 'esi-cache_commform';
	const O_ESI_NONCE          = 'esi-nonce';

	// -------------------------------------------------- ##
	// --------------     Utilities     ----------------- ##
	// -------------------------------------------------- ##
	const O_UTIL_INSTANT_CLICK = 'util-instant_click';
	const O_UTIL_NO_HTTPS_VARY = 'util-no_https_vary';

	// -------------------------------------------------- ##
	// --------------       Debug       ----------------- ##
	// -------------------------------------------------- ##
	const O_DEBUG_DISABLE_ALL = 'debug-disable_all';
	const O_DEBUG             = 'debug';
	const O_DEBUG_IPS         = 'debug-ips';
	const O_DEBUG_LEVEL       = 'debug-level';
	const O_DEBUG_FILESIZE    = 'debug-filesize';
	const O_DEBUG_COOKIE      = 'debug-cookie'; // For backwards compatibility, will drop after v7.0
	const O_DEBUG_COLLAPSE_QS = 'debug-collapse_qs';
	const O_DEBUG_COLLAPS_QS  = 'debug-collapse_qs'; // For backwards compatibility, will drop after v6.5
	const O_DEBUG_INC         = 'debug-inc';
	const O_DEBUG_EXC         = 'debug-exc';
	const O_DEBUG_EXC_STRINGS = 'debug-exc_strings';

	// -------------------------------------------------- ##
	// --------------      DB Optm      ----------------- ##
	// -------------------------------------------------- ##
	const O_DB_OPTM_REVISIONS_MAX = 'db_optm-revisions_max';
	const O_DB_OPTM_REVISIONS_AGE = 'db_optm-revisions_age';

	// -------------------------------------------------- ##
	// --------------     HTML Optm     ----------------- ##
	// -------------------------------------------------- ##
	const O_OPTM_CSS_MIN                 = 'optm-css_min';
	const O_OPTM_CSS_COMB                = 'optm-css_comb';
	const O_OPTM_CSS_COMB_EXT_INL        = 'optm-css_comb_ext_inl';
	const O_OPTM_UCSS                    = 'optm-ucss';
	const O_OPTM_UCSS_INLINE             = 'optm-ucss_inline';
	const O_OPTM_UCSS_SELECTOR_WHITELIST = 'optm-ucss_whitelist';
	const O_OPTM_UCSS_FILE_EXC_INLINE    = 'optm-ucss_file_exc_inline';
	const O_OPTM_UCSS_EXC                = 'optm-ucss_exc';
	const O_OPTM_CSS_EXC                 = 'optm-css_exc';
	const O_OPTM_JS_MIN                  = 'optm-js_min';
	const O_OPTM_JS_COMB                 = 'optm-js_comb';
	const O_OPTM_JS_COMB_EXT_INL         = 'optm-js_comb_ext_inl';
	const O_OPTM_JS_DELAY_INC            = 'optm-js_delay_inc';
	const O_OPTM_JS_EXC                  = 'optm-js_exc';
	const O_OPTM_HTML_MIN                = 'optm-html_min';
	const O_OPTM_HTML_LAZY               = 'optm-html_lazy';
	const O_OPTM_HTML_SKIP_COMMENTS      = 'optm-html_skip_comment';
	const O_OPTM_QS_RM                   = 'optm-qs_rm';
	const O_OPTM_GGFONTS_RM              = 'optm-ggfonts_rm';
	const O_OPTM_CSS_ASYNC               = 'optm-css_async';
	const O_OPTM_CCSS_PER_URL            = 'optm-ccss_per_url';
	const O_OPTM_CCSS_SEP_POSTTYPE       = 'optm-ccss_sep_posttype';
	const O_OPTM_CCSS_SEP_URI            = 'optm-ccss_sep_uri';
	const O_OPTM_CCSS_SELECTOR_WHITELIST = 'optm-ccss_whitelist';
	const O_OPTM_CSS_ASYNC_INLINE        = 'optm-css_async_inline';
	const O_OPTM_CSS_FONT_DISPLAY        = 'optm-css_font_display';
	const O_OPTM_JS_DEFER                = 'optm-js_defer';
	const O_OPTM_LOCALIZE                = 'optm-localize';
	const O_OPTM_LOCALIZE_DOMAINS        = 'optm-localize_domains';
	const O_OPTM_EMOJI_RM                = 'optm-emoji_rm';
	const O_OPTM_NOSCRIPT_RM             = 'optm-noscript_rm';
	const O_OPTM_GGFONTS_ASYNC           = 'optm-ggfonts_async';
	const O_OPTM_EXC_ROLES               = 'optm-exc_roles';
	const O_OPTM_CCSS_CON                = 'optm-ccss_con';
	const O_OPTM_JS_DEFER_EXC            = 'optm-js_defer_exc';
	const O_OPTM_GM_JS_EXC               = 'optm-gm_js_exc';
	const O_OPTM_DNS_PREFETCH            = 'optm-dns_prefetch';
	const O_OPTM_DNS_PREFETCH_CTRL       = 'optm-dns_prefetch_ctrl';
	const O_OPTM_DNS_PRECONNECT          = 'optm-dns_preconnect';
	const O_OPTM_EXC                     = 'optm-exc';
	const O_OPTM_GUEST_ONLY              = 'optm-guest_only';

	// -------------------------------------------------- ##
	// --------------   Object Cache    ----------------- ##
	// -------------------------------------------------- ##
	const O_OBJECT                       = 'object';
	const O_OBJECT_KIND                  = 'object-kind';
	const O_OBJECT_HOST                  = 'object-host';
	const O_OBJECT_PORT                  = 'object-port';
	const O_OBJECT_LIFE                  = 'object-life';
	const O_OBJECT_PERSISTENT            = 'object-persistent';
	const O_OBJECT_ADMIN                 = 'object-admin';
	const O_OBJECT_TRANSIENTS            = 'object-transients';
	const O_OBJECT_DB_ID                 = 'object-db_id';
	const O_OBJECT_USER                  = 'object-user';
	const O_OBJECT_PSWD                  = 'object-pswd';
	const O_OBJECT_GLOBAL_GROUPS         = 'object-global_groups';
	const O_OBJECT_NON_PERSISTENT_GROUPS = 'object-non_persistent_groups';

	// -------------------------------------------------- ##
	// --------------   Discussion      ----------------- ##
	// -------------------------------------------------- ##
	const O_DISCUSS_AVATAR_CACHE     = 'discuss-avatar_cache';
	const O_DISCUSS_AVATAR_CRON      = 'discuss-avatar_cron';
	const O_DISCUSS_AVATAR_CACHE_TTL = 'discuss-avatar_cache_ttl';

	// -------------------------------------------------- ##
	// --------------        Media      ----------------- ##
	// -------------------------------------------------- ##
	const O_MEDIA_PRELOAD_FEATURED           = 'media-preload_featured'; // Deprecated since v6.2. TODO: Will drop after v6.5
	const O_MEDIA_LAZY                       = 'media-lazy';
	const O_MEDIA_LAZY_PLACEHOLDER           = 'media-lazy_placeholder';
	const O_MEDIA_PLACEHOLDER_RESP           = 'media-placeholder_resp';
	const O_MEDIA_PLACEHOLDER_RESP_COLOR     = 'media-placeholder_resp_color';
	const O_MEDIA_PLACEHOLDER_RESP_SVG       = 'media-placeholder_resp_svg';
	const O_MEDIA_LQIP                       = 'media-lqip';
	const O_MEDIA_LQIP_QUAL                  = 'media-lqip_qual';
	const O_MEDIA_LQIP_MIN_W                 = 'media-lqip_min_w';
	const O_MEDIA_LQIP_MIN_H                 = 'media-lqip_min_h';
	const O_MEDIA_PLACEHOLDER_RESP_ASYNC     = 'media-placeholder_resp_async';
	const O_MEDIA_IFRAME_LAZY                = 'media-iframe_lazy';
	const O_MEDIA_ADD_MISSING_SIZES          = 'media-add_missing_sizes';
	const O_MEDIA_LAZY_EXC                   = 'media-lazy_exc';
	const O_MEDIA_LAZY_CLS_EXC               = 'media-lazy_cls_exc';
	const O_MEDIA_LAZY_PARENT_CLS_EXC        = 'media-lazy_parent_cls_exc';
	const O_MEDIA_IFRAME_LAZY_CLS_EXC        = 'media-iframe_lazy_cls_exc';
	const O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC = 'media-iframe_lazy_parent_cls_exc';
	const O_MEDIA_LAZY_URI_EXC               = 'media-lazy_uri_exc';
	const O_MEDIA_LQIP_EXC                   = 'media-lqip_exc';
	const O_MEDIA_VPI                        = 'media-vpi';
	const O_MEDIA_VPI_CRON                   = 'media-vpi_cron';
	const O_IMG_OPTM_JPG_QUALITY             = 'img_optm-jpg_quality';

	// -------------------------------------------------- ##
	// --------------     Image Optm    ----------------- ##
	// -------------------------------------------------- ##
	const O_IMG_OPTM_AUTO                = 'img_optm-auto';
	const O_IMG_OPTM_CRON                = 'img_optm-cron'; // @Deprecated since v7.0 TODO: remove after v7.5
	const O_IMG_OPTM_ORI                 = 'img_optm-ori';
	const O_IMG_OPTM_RM_BKUP             = 'img_optm-rm_bkup';
	const O_IMG_OPTM_WEBP                = 'img_optm-webp';
	const O_IMG_OPTM_LOSSLESS            = 'img_optm-lossless';
	const O_IMG_OPTM_EXIF                = 'img_optm-exif';
	const O_IMG_OPTM_WEBP_ATTR           = 'img_optm-webp_attr';
	const O_IMG_OPTM_WEBP_REPLACE_SRCSET = 'img_optm-webp_replace_srcset';

	// -------------------------------------------------- ##
	// --------------       Crawler     ----------------- ##
	// -------------------------------------------------- ##
	const O_CRAWLER                = 'crawler';
	const O_CRAWLER_USLEEP         = 'crawler-usleep'; // @Deprecated since v7.0 TODO: remove after v7.5
	const O_CRAWLER_RUN_DURATION   = 'crawler-run_duration'; // @Deprecated since v7.0 TODO: remove after v7.5
	const O_CRAWLER_RUN_INTERVAL   = 'crawler-run_interval'; // @Deprecated since v7.0 TODO: remove after v7.5
	const O_CRAWLER_CRAWL_INTERVAL = 'crawler-crawl_interval';
	const O_CRAWLER_THREADS        = 'crawler-threads'; // @Deprecated since v7.0 TODO: remove after v7.5
	const O_CRAWLER_TIMEOUT        = 'crawler-timeout'; // @Deprecated since v7.0 TODO: remove after v7.5
	const O_CRAWLER_LOAD_LIMIT     = 'crawler-load_limit';
	const O_CRAWLER_SITEMAP        = 'crawler-sitemap';
	const O_CRAWLER_DROP_DOMAIN    = 'crawler-drop_domain'; // @Deprecated since v7.0 TODO: remove after v7.5
	const O_CRAWLER_MAP_TIMEOUT    = 'crawler-map_timeout'; // @Deprecated since v7.0 TODO: remove after v7.5
	const O_CRAWLER_ROLES          = 'crawler-roles';
	const O_CRAWLER_COOKIES        = 'crawler-cookies';

	// -------------------------------------------------- ##
	// --------------        Misc       ----------------- ##
	// -------------------------------------------------- ##
	const O_MISC_HEARTBEAT_FRONT      = 'misc-heartbeat_front';
	const O_MISC_HEARTBEAT_FRONT_TTL  = 'misc-heartbeat_front_ttl';
	const O_MISC_HEARTBEAT_BACK       = 'misc-heartbeat_back';
	const O_MISC_HEARTBEAT_BACK_TTL   = 'misc-heartbeat_back_ttl';
	const O_MISC_HEARTBEAT_EDITOR     = 'misc-heartbeat_editor';
	const O_MISC_HEARTBEAT_EDITOR_TTL = 'misc-heartbeat_editor_ttl';

	// -------------------------------------------------- ##
	// --------------        CDN        ----------------- ##
	// -------------------------------------------------- ##
	const O_CDN                  = 'cdn';
	const O_CDN_ORI              = 'cdn-ori';
	const O_CDN_ORI_DIR          = 'cdn-ori_dir';
	const O_CDN_EXC              = 'cdn-exc';
	const O_CDN_QUIC             = 'cdn-quic'; // No more a visible setting since v7
	const O_CDN_CLOUDFLARE       = 'cdn-cloudflare';
	const O_CDN_CLOUDFLARE_EMAIL = 'cdn-cloudflare_email';
	const O_CDN_CLOUDFLARE_KEY   = 'cdn-cloudflare_key';
	const O_CDN_CLOUDFLARE_NAME  = 'cdn-cloudflare_name';
	const O_CDN_CLOUDFLARE_ZONE  = 'cdn-cloudflare_zone';
	const O_CDN_CLOUDFLARE_CLEAR = 'cdn-cloudflare_clear';
	const O_CDN_MAPPING          = 'cdn-mapping';
	const O_CDN_ATTR             = 'cdn-attr';
	const O_QC_NAMESERVERS       = 'qc-nameservers';
	const O_QC_CNAME             = 'qc-cname';

	const NETWORK_O_USE_PRIMARY = 'use_primary_settings';

	/*** Other consts ***/
	const O_GUIDE = 'litespeed-guide'; // Array of each guidance tag as key, step as val //xx todo: may need to remove

	// Server variables
	const ENV_CRAWLER_USLEEP             = 'CRAWLER_USLEEP';
	const ENV_CRAWLER_LOAD_LIMIT         = 'CRAWLER_LOAD_LIMIT';
	const ENV_CRAWLER_LOAD_LIMIT_ENFORCE = 'CRAWLER_LOAD_LIMIT_ENFORCE';

	const CRWL_COOKIE_NAME = 'name';
	const CRWL_COOKIE_VALS = 'vals';

	const CDN_MAPPING_URL      = 'url';
	const CDN_MAPPING_INC_IMG  = 'inc_img';
	const CDN_MAPPING_INC_CSS  = 'inc_css';
	const CDN_MAPPING_INC_JS   = 'inc_js';
	const CDN_MAPPING_FILETYPE = 'filetype';

	const VAL_OFF = 0;
	const VAL_ON  = 1;
	const VAL_ON2 = 2;

	/* This is for API hook usage */
	const IMG_OPTM_BM_ORI      = 1; // @Deprecated since v7.0
	const IMG_OPTM_BM_WEBP     = 2; // @Deprecated since v7.0
	const IMG_OPTM_BM_LOSSLESS = 4; // @Deprecated since v7.0
	const IMG_OPTM_BM_EXIF     = 8; // @Deprecated since v7.0
	const IMG_OPTM_BM_AVIF     = 16; // @Deprecated since v7.0

	/* Site related options (Will not overwrite other sites' config) */
	protected static $SINGLE_SITE_OPTIONS = array(
		self::O_CRAWLER,
		self::O_CRAWLER_SITEMAP,
		self::O_CDN,
		self::O_CDN_ORI,
		self::O_CDN_ORI_DIR,
		self::O_CDN_EXC,
		self::O_CDN_CLOUDFLARE,
		self::O_CDN_CLOUDFLARE_EMAIL,
		self::O_CDN_CLOUDFLARE_KEY,
		self::O_CDN_CLOUDFLARE_NAME,
		self::O_CDN_CLOUDFLARE_ZONE,
		self::O_CDN_CLOUDFLARE_CLEAR,
		self::O_CDN_MAPPING,
		self::O_CDN_ATTR,
		self::O_QC_NAMESERVERS,
		self::O_QC_CNAME,
	);

	protected static $_default_options = array(
		self::_VER => '',
		self::HASH => '',
		self::O_API_KEY => '',
		self::O_AUTO_UPGRADE => false,
		self::O_SERVER_IP => '',
		self::O_GUEST => false,
		self::O_GUEST_OPTM => false,
		self::O_NEWS => false,
		self::O_GUEST_UAS => array(),
		self::O_GUEST_IPS => array(),

		// Cache
		self::O_CACHE => false,
		self::O_CACHE_PRIV => false,
		self::O_CACHE_COMMENTER => false,
		self::O_CACHE_REST => false,
		self::O_CACHE_PAGE_LOGIN => false,
		self::O_CACHE_MOBILE => false,
		self::O_CACHE_MOBILE_RULES => array(),
		self::O_CACHE_BROWSER => false,
		self::O_CACHE_EXC_USERAGENTS => array(),
		self::O_CACHE_EXC_COOKIES => array(),
		self::O_CACHE_EXC_QS => array(),
		self::O_CACHE_EXC_CAT => array(),
		self::O_CACHE_EXC_TAG => array(),
		self::O_CACHE_FORCE_URI => array(),
		self::O_CACHE_FORCE_PUB_URI => array(),
		self::O_CACHE_PRIV_URI => array(),
		self::O_CACHE_EXC => array(),
		self::O_CACHE_EXC_ROLES => array(),
		self::O_CACHE_DROP_QS => array(),
		self::O_CACHE_TTL_PUB => 0,
		self::O_CACHE_TTL_PRIV => 0,
		self::O_CACHE_TTL_FRONTPAGE => 0,
		self::O_CACHE_TTL_FEED => 0,
		self::O_CACHE_TTL_REST => 0,
		self::O_CACHE_TTL_BROWSER => 0,
		self::O_CACHE_TTL_STATUS => array(),
		self::O_CACHE_LOGIN_COOKIE => '',
		self::O_CACHE_AJAX_TTL => array(),
		self::O_CACHE_VARY_COOKIES => array(),
		self::O_CACHE_VARY_GROUP => array(),

		// Purge
		self::O_PURGE_ON_UPGRADE => false,
		self::O_PURGE_STALE => false,
		self::O_PURGE_POST_ALL => false,
		self::O_PURGE_POST_FRONTPAGE => false,
		self::O_PURGE_POST_HOMEPAGE => false,
		self::O_PURGE_POST_PAGES => false,
		self::O_PURGE_POST_PAGES_WITH_RECENT_POSTS => false,
		self::O_PURGE_POST_AUTHOR => false,
		self::O_PURGE_POST_YEAR => false,
		self::O_PURGE_POST_MONTH => false,
		self::O_PURGE_POST_DATE => false,
		self::O_PURGE_POST_TERM => false,
		self::O_PURGE_POST_POSTTYPE => false,
		self::O_PURGE_TIMED_URLS => array(),
		self::O_PURGE_TIMED_URLS_TIME => '',
		self::O_PURGE_HOOK_ALL => array(),

		// ESI
		self::O_ESI => false,
		self::O_ESI_CACHE_ADMBAR => false,
		self::O_ESI_CACHE_COMMFORM => false,
		self::O_ESI_NONCE => array(),

		// Util
		self::O_UTIL_INSTANT_CLICK => false,
		self::O_UTIL_NO_HTTPS_VARY => false,

		// Debug
		self::O_DEBUG_DISABLE_ALL => false,
		self::O_DEBUG => false,
		self::O_DEBUG_IPS => array(),
		self::O_DEBUG_LEVEL => false,
		self::O_DEBUG_FILESIZE => 0,
		self::O_DEBUG_COLLAPSE_QS => false,
		self::O_DEBUG_INC => array(),
		self::O_DEBUG_EXC => array(),
		self::O_DEBUG_EXC_STRINGS => array(),

		// DB Optm
		self::O_DB_OPTM_REVISIONS_MAX => 0,
		self::O_DB_OPTM_REVISIONS_AGE => 0,

		// HTML Optm
		self::O_OPTM_CSS_MIN => false,
		self::O_OPTM_CSS_COMB => false,
		self::O_OPTM_CSS_COMB_EXT_INL => false,
		self::O_OPTM_UCSS => false,
		self::O_OPTM_UCSS_INLINE => false,
		self::O_OPTM_UCSS_SELECTOR_WHITELIST => array(),
		self::O_OPTM_UCSS_FILE_EXC_INLINE => array(),
		self::O_OPTM_UCSS_EXC => array(),
		self::O_OPTM_CSS_EXC => array(),
		self::O_OPTM_JS_MIN => false,
		self::O_OPTM_JS_COMB => false,
		self::O_OPTM_JS_COMB_EXT_INL => false,
		self::O_OPTM_JS_DELAY_INC => array(),
		self::O_OPTM_JS_EXC => array(),
		self::O_OPTM_HTML_MIN => false,
		self::O_OPTM_HTML_LAZY => array(),
		self::O_OPTM_HTML_SKIP_COMMENTS => array(),
		self::O_OPTM_QS_RM => false,
		self::O_OPTM_GGFONTS_RM => false,
		self::O_OPTM_CSS_ASYNC => false,
		self::O_OPTM_CCSS_PER_URL => false,
		self::O_OPTM_CCSS_SEP_POSTTYPE => array(),
		self::O_OPTM_CCSS_SEP_URI => array(),
		self::O_OPTM_CCSS_SELECTOR_WHITELIST => array(),
		self::O_OPTM_CSS_ASYNC_INLINE => false,
		self::O_OPTM_CSS_FONT_DISPLAY => false,
		self::O_OPTM_JS_DEFER => false,
		self::O_OPTM_EMOJI_RM => false,
		self::O_OPTM_NOSCRIPT_RM => false,
		self::O_OPTM_GGFONTS_ASYNC => false,
		self::O_OPTM_EXC_ROLES => array(),
		self::O_OPTM_CCSS_CON => '',
		self::O_OPTM_JS_DEFER_EXC => array(),
		self::O_OPTM_GM_JS_EXC => array(),
		self::O_OPTM_DNS_PREFETCH => array(),
		self::O_OPTM_DNS_PREFETCH_CTRL => false,
		self::O_OPTM_DNS_PRECONNECT => array(),
		self::O_OPTM_EXC => array(),
		self::O_OPTM_GUEST_ONLY => false,

		// Object
		self::O_OBJECT => false,
		self::O_OBJECT_KIND => false,
		self::O_OBJECT_HOST => '',
		self::O_OBJECT_PORT => 0,
		self::O_OBJECT_LIFE => 0,
		self::O_OBJECT_PERSISTENT => false,
		self::O_OBJECT_ADMIN => false,
		self::O_OBJECT_TRANSIENTS => false,
		self::O_OBJECT_DB_ID => 0,
		self::O_OBJECT_USER => '',
		self::O_OBJECT_PSWD => '',
		self::O_OBJECT_GLOBAL_GROUPS => array(),
		self::O_OBJECT_NON_PERSISTENT_GROUPS => array(),

		// Discuss
		self::O_DISCUSS_AVATAR_CACHE => false,
		self::O_DISCUSS_AVATAR_CRON => false,
		self::O_DISCUSS_AVATAR_CACHE_TTL => 0,
		self::O_OPTM_LOCALIZE => false,
		self::O_OPTM_LOCALIZE_DOMAINS => array(),

		// Media
		self::O_MEDIA_LAZY => false,
		self::O_MEDIA_LAZY_PLACEHOLDER => '',
		self::O_MEDIA_PLACEHOLDER_RESP => false,
		self::O_MEDIA_PLACEHOLDER_RESP_COLOR => '',
		self::O_MEDIA_PLACEHOLDER_RESP_SVG => '',
		self::O_MEDIA_LQIP => false,
		self::O_MEDIA_LQIP_QUAL => 0,
		self::O_MEDIA_LQIP_MIN_W => 0,
		self::O_MEDIA_LQIP_MIN_H => 0,
		self::O_MEDIA_PLACEHOLDER_RESP_ASYNC => false,
		self::O_MEDIA_IFRAME_LAZY => false,
		self::O_MEDIA_ADD_MISSING_SIZES => false,
		self::O_MEDIA_LAZY_EXC => array(),
		self::O_MEDIA_LAZY_CLS_EXC => array(),
		self::O_MEDIA_LAZY_PARENT_CLS_EXC => array(),
		self::O_MEDIA_IFRAME_LAZY_CLS_EXC => array(),
		self::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC => array(),
		self::O_MEDIA_LAZY_URI_EXC => array(),
		self::O_MEDIA_LQIP_EXC => array(),
		self::O_MEDIA_VPI => false,
		self::O_MEDIA_VPI_CRON => false,

		// Image Optm
		self::O_IMG_OPTM_AUTO => false,
		self::O_IMG_OPTM_ORI => false,
		self::O_IMG_OPTM_RM_BKUP => false,
		self::O_IMG_OPTM_WEBP => false,
		self::O_IMG_OPTM_LOSSLESS => false,
		self::O_IMG_OPTM_EXIF => false,
		self::O_IMG_OPTM_WEBP_ATTR => array(),
		self::O_IMG_OPTM_WEBP_REPLACE_SRCSET => false,
		self::O_IMG_OPTM_JPG_QUALITY => 0,

		// Crawler
		self::O_CRAWLER => false,
		self::O_CRAWLER_CRAWL_INTERVAL => 0,
		self::O_CRAWLER_LOAD_LIMIT => 0,
		self::O_CRAWLER_SITEMAP => '',
		self::O_CRAWLER_ROLES => array(),
		self::O_CRAWLER_COOKIES => array(),

		// Misc
		self::O_MISC_HEARTBEAT_FRONT => false,
		self::O_MISC_HEARTBEAT_FRONT_TTL => 0,
		self::O_MISC_HEARTBEAT_BACK => false,
		self::O_MISC_HEARTBEAT_BACK_TTL => 0,
		self::O_MISC_HEARTBEAT_EDITOR => false,
		self::O_MISC_HEARTBEAT_EDITOR_TTL => 0,

		// CDN
		self::O_CDN => false,
		self::O_CDN_ORI => array(),
		self::O_CDN_ORI_DIR => array(),
		self::O_CDN_EXC => array(),
		self::O_CDN_QUIC => false,
		self::O_CDN_CLOUDFLARE => false,
		self::O_CDN_CLOUDFLARE_EMAIL => '',
		self::O_CDN_CLOUDFLARE_KEY => '',
		self::O_CDN_CLOUDFLARE_NAME => '',
		self::O_CDN_CLOUDFLARE_ZONE => '',
		self::O_CDN_CLOUDFLARE_CLEAR => false,
		self::O_CDN_MAPPING => array(),
		self::O_CDN_ATTR => array(),

		self::O_QC_NAMESERVERS => '',
		self::O_QC_CNAME => '',
	);

	protected static $_default_site_options = array(
		self::_VER => '',
		self::O_CACHE => false,
		self::NETWORK_O_USE_PRIMARY => false,
		self::O_AUTO_UPGRADE => false,
		self::O_GUEST => false,

		self::O_CACHE_BROWSER => false,
		self::O_CACHE_MOBILE => false,
		self::O_CACHE_MOBILE_RULES => array(),
		self::O_CACHE_LOGIN_COOKIE => '',
		self::O_CACHE_VARY_COOKIES => array(),
		self::O_CACHE_EXC_COOKIES => array(),
		self::O_CACHE_EXC_USERAGENTS => array(),
		self::O_CACHE_TTL_BROWSER => 0,

		self::O_PURGE_ON_UPGRADE => false,

		self::O_OBJECT => false,
		self::O_OBJECT_KIND => false,
		self::O_OBJECT_HOST => '',
		self::O_OBJECT_PORT => 0,
		self::O_OBJECT_LIFE => 0,
		self::O_OBJECT_PERSISTENT => false,
		self::O_OBJECT_ADMIN => false,
		self::O_OBJECT_TRANSIENTS => false,
		self::O_OBJECT_DB_ID => 0,
		self::O_OBJECT_USER => '',
		self::O_OBJECT_PSWD => '',
		self::O_OBJECT_GLOBAL_GROUPS => array(),
		self::O_OBJECT_NON_PERSISTENT_GROUPS => array(),

		// Debug
		self::O_DEBUG_DISABLE_ALL => false,
		self::O_DEBUG => false,
		self::O_DEBUG_IPS => array(),
		self::O_DEBUG_LEVEL => false,
		self::O_DEBUG_FILESIZE => 0,
		self::O_DEBUG_COLLAPSE_QS => false,
		self::O_DEBUG_INC => array(),
		self::O_DEBUG_EXC => array(),
		self::O_DEBUG_EXC_STRINGS => array(),

		self::O_IMG_OPTM_WEBP => false,
	);

	// NOTE: all the val of following items will be int while not bool
	protected static $_multi_switch_list = array(
		self::O_DEBUG => 2,
		self::O_OPTM_JS_DEFER => 2,
		self::O_IMG_OPTM_WEBP => 2,
	);

	/**
	 * Correct the option type
	 *
	 * TODO: add similar network func
	 *
	 * @since  3.0.3
	 */
	protected function type_casting( $val, $id, $is_site_conf = false ) {
		$default_v = !$is_site_conf ? self::$_default_options[$id] : self::$_default_site_options[$id];
		if (is_bool($default_v)) {
			if ($val === 'true') {
				$val = true;
			}
			if ($val === 'false') {
				$val = false;
			}

			$max = $this->_conf_multi_switch($id);
			if ($max) {
				$val  = (int) $val;
				$val %= $max + 1;
			} else {
				$val = (bool) $val;
			}
		} elseif (is_array($default_v)) {
			// from textarea input
			if (!is_array($val)) {
				$val = Utility::sanitize_lines($val, $this->_conf_filter($id));
			}
		} elseif (!is_string($default_v)) {
			$val = (int) $val;
		} else {
			// Check if the string has a limit set
			$val = $this->_conf_string_val($id, $val);
		}

		return $val;
	}

	/**
	 * Load default network settings from data.ini
	 *
	 * @since  3.0
	 */
	public function load_default_site_vals() {
		// Load network_default.json
		if (file_exists(LSCWP_DIR . 'data/const.network_default.json')) {
			$default_ini_cfg = json_decode(File::read(LSCWP_DIR . 'data/const.network_default.json'), true);
			foreach (self::$_default_site_options as $k => $v) {
				if (!array_key_exists($k, $default_ini_cfg)) {
					continue;
				}

				// Parse value in ini file
				$ini_v = $this->type_casting($default_ini_cfg[$k], $k, true);

				if ($ini_v == $v) {
					continue;
				}

				self::$_default_site_options[$k] = $ini_v;
			}
		}

		self::$_default_site_options[self::_VER] = Core::VER;

		return self::$_default_site_options;
	}

	/**
	 * Load default values from default.json
	 *
	 * @since 3.0
	 * @access public
	 */
	public function load_default_vals() {
		// Load default.json
		if (file_exists(LSCWP_DIR . 'data/const.default.json')) {
			$default_ini_cfg = json_decode(File::read(LSCWP_DIR . 'data/const.default.json'), true);
			foreach (self::$_default_options as $k => $v) {
				if (!array_key_exists($k, $default_ini_cfg)) {
					continue;
				}

				// Parse value in ini file
				$ini_v = $this->type_casting($default_ini_cfg[$k], $k);

				// NOTE: Multiple lines value must be stored as array
				/**
				 * Special handler for CDN_mapping
				 *
				 * format in .ini:
				 *      [cdn-mapping]
				 *      url[0] = 'https://example.com/'
				 *      inc_js[0] = true
				 *      filetype[0] = '.css
				 *                     .js
				 *                     .jpg'
				 *
				 * format out:
				 *      [0] = [ 'url' => 'https://example.com', 'inc_js' => true, 'filetype' => [ '.css', '.js', '.jpg' ] ]
				 */
				if ($k == self::O_CDN_MAPPING) {
					$mapping_fields = array(
						self::CDN_MAPPING_URL,
						self::CDN_MAPPING_INC_IMG,
						self::CDN_MAPPING_INC_CSS,
						self::CDN_MAPPING_INC_JS,
						self::CDN_MAPPING_FILETYPE, // Array
					);
					$ini_v2         = array();
					foreach ($ini_v[self::CDN_MAPPING_URL] as $k2 => $v2) {
						// $k2 is numeric
						$this_row = array();
						foreach ($mapping_fields as $v3) {
							$this_v = !empty($ini_v[$v3][$k2]) ? $ini_v[$v3][$k2] : false;
							if ($v3 == self::CDN_MAPPING_URL) {
								$this_v = $this_v ?: '';
							}
							if ($v3 == self::CDN_MAPPING_FILETYPE) {
								$this_v = $this_v ? Utility::sanitize_lines($this_v) : array(); // Note: Since v3.0 its already an array
							}
							$this_row[$v3] = $this_v;
						}
						$ini_v2[$k2] = $this_row;
					}
					$ini_v = $ini_v2;
				}

				if ($ini_v == $v) {
					continue;
				}

				self::$_default_options[$k] = $ini_v;
			}
		}

		// Load internal default vals
		// Setting the default bool to int is also to avoid type casting override it back to bool
		self::$_default_options[self::O_CACHE] = is_multisite() ? self::VAL_ON2 : self::VAL_ON; // For multi site, default is 2 (Use Network Admin Settings). For single site, default is 1 (Enabled).

		// Load default vals containing variables
		if (!self::$_default_options[self::O_CDN_ORI_DIR]) {
			self::$_default_options[self::O_CDN_ORI_DIR] = LSCWP_CONTENT_FOLDER . "\nwp-includes";
			self::$_default_options[self::O_CDN_ORI_DIR] = explode("\n", self::$_default_options[self::O_CDN_ORI_DIR]);
			self::$_default_options[self::O_CDN_ORI_DIR] = array_map('trim', self::$_default_options[self::O_CDN_ORI_DIR]);
		}

		// Set security key if not initialized yet
		if (!self::$_default_options[self::HASH]) {
			self::$_default_options[self::HASH] = Str::rrand(32);
		}

		self::$_default_options[self::_VER] = Core::VER;

		return self::$_default_options;
	}

	/**
	 * Format the string value
	 *
	 * @since  3.0
	 */
	protected function _conf_string_val( $id, $val ) {
		return $val;
	}

	/**
	 * If the switch setting is a triple value or not
	 *
	 * @since  3.0
	 */
	protected function _conf_multi_switch( $id ) {
		if (!empty(self::$_multi_switch_list[$id])) {
			return self::$_multi_switch_list[$id];
		}

		if ($id == self::O_CACHE && is_multisite()) {
			return self::VAL_ON2;
		}

		return false;
	}

	/**
	 * Append a new multi switch max limit for the bool option
	 *
	 * @since  3.0
	 */
	public static function set_multi_switch( $id, $v ) {
		self::$_multi_switch_list[$id] = $v;
	}

	/**
	 * Generate const name based on $id
	 *
	 * @since  3.0
	 */
	public static function conf_const( $id ) {
		return 'LITESPEED_CONF__' . strtoupper(str_replace('-', '__', $id));
	}

	/**
	 * Filter to be used when saving setting
	 *
	 * @since  3.0
	 */
	protected function _conf_filter( $id ) {
		$filters = array(
			self::O_MEDIA_LAZY_EXC => 'uri',
			self::O_DEBUG_INC => 'relative',
			self::O_DEBUG_EXC => 'relative',
			self::O_MEDIA_LAZY_URI_EXC => 'relative',
			self::O_CACHE_PRIV_URI => 'relative',
			self::O_PURGE_TIMED_URLS => 'relative',
			self::O_CACHE_FORCE_URI => 'relative',
			self::O_CACHE_FORCE_PUB_URI => 'relative',
			self::O_CACHE_EXC => 'relative',
			// self::O_OPTM_CSS_EXC     => 'uri', // Need to comment out for inline & external CSS
			// self::O_OPTM_JS_EXC          => 'uri',
			self::O_OPTM_EXC => 'relative',
			self::O_OPTM_CCSS_SEP_URI => 'uri',
			// self::O_OPTM_JS_DEFER_EXC    => 'uri',
			self::O_OPTM_DNS_PREFETCH => 'domain',
			self::O_CDN_ORI => 'noprotocol,trailingslash', // `Original URLs`
			// self::O_OPTM_LOCALIZE_DOMAINS    => 'noprotocol', // `Localize Resources`
			// self::   => '',
			// self::   => '',
		);

		if (!empty($filters[$id])) {
			return $filters[$id];
		}

		return false;
	}

	/**
	 * If the setting changes worth a purge or not
	 *
	 * @since  3.0
	 */
	protected function _conf_purge( $id ) {
		$check_ids = array(
			self::O_MEDIA_LAZY_URI_EXC,
			self::O_OPTM_EXC,
			self::O_CACHE_PRIV_URI,
			self::O_PURGE_TIMED_URLS,
			self::O_CACHE_FORCE_URI,
			self::O_CACHE_FORCE_PUB_URI,
			self::O_CACHE_EXC,
		);

		return in_array($id, $check_ids);
	}

	/**
	 * If the setting changes worth a purge ALL or not
	 *
	 * @since  3.0
	 */
	protected function _conf_purge_all( $id ) {
		$check_ids = array( self::O_CACHE, self::O_ESI, self::O_DEBUG_DISABLE_ALL, self::NETWORK_O_USE_PRIMARY );

		return in_array($id, $check_ids);
	}

	/**
	 * If the setting is a pswd or not
	 *
	 * @since  3.0
	 */
	protected function _conf_pswd( $id ) {
		$check_ids = array( self::O_CDN_CLOUDFLARE_KEY, self::O_OBJECT_PSWD );

		return in_array($id, $check_ids);
	}

	/**
	 * If the setting is cron related or not
	 *
	 * @since  3.0
	 */
	protected function _conf_cron( $id ) {
		$check_ids = array( self::O_OPTM_CSS_ASYNC, self::O_MEDIA_PLACEHOLDER_RESP_ASYNC, self::O_DISCUSS_AVATAR_CRON, self::O_IMG_OPTM_AUTO, self::O_CRAWLER );

		return in_array($id, $check_ids);
	}

	/**
	 * If the setting changes worth a purge, return the tag
	 *
	 * @since  3.0
	 */
	protected function _conf_purge_tag( $id ) {
		$check_ids = array(
			self::O_CACHE_PAGE_LOGIN => Tag::TYPE_LOGIN,
		);

		if (!empty($check_ids[$id])) {
			return $check_ids[$id];
		}

		return false;
	}

	/**
	 * Generate server vars
	 *
	 * @since 2.4.1
	 */
	public function server_vars() {
		$consts      = array(
			'WP_SITEURL',
			'WP_HOME',
			'WP_CONTENT_DIR',
			'SHORTINIT',
			'LSCWP_CONTENT_DIR',
			'LSCWP_CONTENT_FOLDER',
			'LSCWP_DIR',
			'LITESPEED_TIME_OFFSET',
			'LITESPEED_SERVER_TYPE',
			'LITESPEED_CLI',
			'LITESPEED_ALLOWED',
			'LITESPEED_ON',
			'LSWCP_TAG_PREFIX',
			'COOKIEHASH',
		);
		$server_vars = array();
		foreach ($consts as $v) {
			$server_vars[$v] = defined($v) ? constant($v) : null;
		}

		return $server_vars;
	}
}
<?php

/**
 * The core plugin class.
 *
 * Note: Core doesn't allow $this->cls( 'Core' )
 *
 * @since       1.0.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Core extends Root {

	const NAME        = 'LiteSpeed Cache';
	const PLUGIN_NAME = 'litespeed-cache';
	const PLUGIN_FILE = 'litespeed-cache/litespeed-cache.php';
	const VER         = LSCWP_V;

	const ACTION_DISMISS             = 'dismiss';
	const ACTION_PURGE_BY            = 'PURGE_BY';
	const ACTION_PURGE_EMPTYCACHE    = 'PURGE_EMPTYCACHE';
	const ACTION_QS_PURGE            = 'PURGE';
	const ACTION_QS_PURGE_SINGLE     = 'PURGESINGLE'; // This will be same as `ACTION_QS_PURGE` (purge single url only)
	const ACTION_QS_SHOW_HEADERS     = 'SHOWHEADERS';
	const ACTION_QS_PURGE_ALL        = 'purge_all';
	const ACTION_QS_PURGE_EMPTYCACHE = 'empty_all';
	const ACTION_QS_NOCACHE          = 'NOCACHE';

	const HEADER_DEBUG = 'X-LiteSpeed-Debug';

	protected static $_debug_show_header = false;

	private $_footer_comment = '';

	/**
	 * Define the core functionality of the plugin.
	 *
	 * Set the plugin name and the plugin version that can be used throughout the plugin.
	 * Load the dependencies, define the locale, and set the hooks for the admin area and
	 * the public-facing side of the site.
	 *
	 * @since    1.0.0
	 */
	public function __construct() {
		!defined('LSCWP_TS_0') && define('LSCWP_TS_0', microtime(true));
		$this->cls('Conf')->init();

		/**
		 * Load API hooks
		 *
		 * @since  3.0
		 */
		$this->cls('API')->init();

		if (defined('LITESPEED_ON')) {
			// Load third party detection if lscache enabled.
			include_once LSCWP_DIR . 'thirdparty/entry.inc.php';
		}

		if ($this->conf(Base::O_DEBUG_DISABLE_ALL)) {
			!defined('LITESPEED_DISABLE_ALL') && define('LITESPEED_DISABLE_ALL', true);
		}

		/**
		 * Register plugin activate/deactivate/uninstall hooks
		 * NOTE: this can't be moved under after_setup_theme, otherwise activation will be bypassed somehow
		 *
		 * @since  2.7.1    Disabled admin&CLI check to make frontend able to enable cache too
		 */
		// if( is_admin() || defined( 'LITESPEED_CLI' ) ) {
		$plugin_file = LSCWP_DIR . 'litespeed-cache.php';
		register_activation_hook($plugin_file, array( __NAMESPACE__ . '\Activation', 'register_activation' ));
		register_deactivation_hook($plugin_file, array( __NAMESPACE__ . '\Activation', 'register_deactivation' ));
		register_uninstall_hook($plugin_file, __NAMESPACE__ . '\Activation::uninstall_litespeed_cache');
		// }

		if (defined('LITESPEED_ON')) {
			// register purge_all actions
			$purge_all_events = $this->conf(Base::O_PURGE_HOOK_ALL);

			// purge all on upgrade
			if ($this->conf(Base::O_PURGE_ON_UPGRADE)) {
				$purge_all_events[] = 'automatic_updates_complete';
				$purge_all_events[] = 'upgrader_process_complete';
				$purge_all_events[] = 'admin_action_do-plugin-upgrade';
			}
			foreach ($purge_all_events as $event) {
				// Don't allow hook to update_option bcos purge_all will cause infinite loop of update_option
				if (in_array($event, array( 'update_option' ))) {
					continue;
				}
				add_action($event, __NAMESPACE__ . '\Purge::purge_all');
			}
			// add_filter( 'upgrader_pre_download', 'Purge::filter_with_purge_all' );

			// Add headers to site health check for full page cache
			// @since 5.4
			add_filter('site_status_page_cache_supported_cache_headers', function ( $cache_headers ) {
				$is_cache_hit                       = function ( $header_value ) {
					return false !== strpos(strtolower($header_value), 'hit');
				};
				$cache_headers['x-litespeed-cache'] = $is_cache_hit;
				$cache_headers['x-lsadc-cache']     = $is_cache_hit;
				$cache_headers['x-qc-cache']        = $is_cache_hit;
				return $cache_headers;
			});
		}

		add_action('after_setup_theme', array( $this, 'init' ));

		// Check if there is a purge request in queue
		if (!defined('LITESPEED_CLI')) {
			$purge_queue = Purge::get_option(Purge::DB_QUEUE);
			if ($purge_queue && $purge_queue != -1) {
				$this->_http_header($purge_queue);
				Debug2::debug('[Core] Purge Queue found&sent: ' . $purge_queue);
			}
			if ($purge_queue != -1) {
				Purge::update_option(Purge::DB_QUEUE, -1); // Use 0 to bypass purge while still enable db update as WP's update_option will check value===false to bypass update
			}

			$purge_queue = Purge::get_option(Purge::DB_QUEUE2);
			if ($purge_queue && $purge_queue != -1) {
				$this->_http_header($purge_queue);
				Debug2::debug('[Core] Purge2 Queue found&sent: ' . $purge_queue);
			}
			if ($purge_queue != -1) {
				Purge::update_option(Purge::DB_QUEUE2, -1);
			}
		}

		/**
		 * Hook internal REST
		 *
		 * @since  2.9.4
		 */
		$this->cls('REST');

		/**
		 * Hook wpnonce function
		 *
		 * Note: ESI nonce won't be available until hook after_setup_theme ESI init due to Guest Mode concern
		 *
		 * @since v4.1
		 */
		if ($this->cls('Router')->esi_enabled() && !function_exists('wp_create_nonce')) {
			Debug2::debug('[ESI] Overwrite wp_create_nonce()');
			litespeed_define_nonce_func();
		}
	}

	/**
	 * The plugin initializer.
	 *
	 * This function checks if the cache is enabled and ready to use, then determines what actions need to be set up based on the type of user and page accessed. Output is buffered if the cache is enabled.
	 *
	 * NOTE: WP user doesn't init yet
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function init() {
		/**
		 * Added hook before init
		 * 3rd party preload hooks will be fired here too (e.g. Divi disable all in edit mode)
		 *
		 * @since  1.6.6
		 * @since  2.6  Added filter to all config values in Conf
		 */
		do_action('litespeed_init');
		add_action('wp_ajax_async_litespeed', 'LiteSpeed\Task::async_litespeed_handler');
		add_action('wp_ajax_nopriv_async_litespeed', 'LiteSpeed\Task::async_litespeed_handler');

		// in `after_setup_theme`, before `init` hook
		$this->cls('Activation')->auto_update();

		if (is_admin() && !wp_doing_ajax()) {
			$this->cls('Admin');
		}

		if (defined('LITESPEED_DISABLE_ALL') && LITESPEED_DISABLE_ALL) {
			Debug2::debug('[Core] Bypassed due to debug disable all setting');
			return;
		}

		do_action('litespeed_initing');

		ob_start(array( $this, 'send_headers_force' ));
		add_action('shutdown', array( $this, 'send_headers' ), 0);
		add_action('wp_footer', array( $this, 'footer_hook' ));

		/**
		 * Check if is non optm simulator
		 *
		 * @since  2.9
		 */
		if (!empty($_GET[Router::ACTION]) && $_GET[Router::ACTION] == 'before_optm' && !apply_filters('litespeed_qs_forbidden', false)) {
			Debug2::debug('[Core] ⛑️ bypass_optm due to QS CTRL');
			!defined('LITESPEED_NO_OPTM') && define('LITESPEED_NO_OPTM', true);
		}

		/**
		 * Register vary filter
		 *
		 * @since  1.6.2
		 */
		$this->cls('Control')->init();

		// 1. Init vary
		// 2. Init cacheable status
		// $this->cls('Vary')->init();

		// Init Purge hooks
		$this->cls('Purge')->init();

		$this->cls('Tag')->init();

		// Load hooks that may be related to users
		add_action('init', array( $this, 'after_user_init' ), 5);

		// Load 3rd party hooks
		add_action('wp_loaded', array( $this, 'load_thirdparty' ), 2);

		// test: Simulate a purge all
		// if (defined( 'LITESPEED_CLI' )) Purge::add('test'.date('Ymd.His'));
	}

	/**
	 * Run hooks after user init
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function after_user_init() {
		$this->cls('Router')->is_role_simulation();

		// Detect if is Guest mode or not also
		$this->cls('Vary')->after_user_init();

		// Register attachment delete hook
		$this->cls('Media')->after_user_init();

		/**
		 * Preload ESI functionality for ESI request uri recovery
		 *
		 * @since 1.8.1
		 * @since  4.0 ESI init needs to be after Guest mode detection to bypass ESI if is under Guest mode
		 */
		$this->cls('ESI')->init();

		if (!is_admin() && !defined('LITESPEED_GUEST_OPTM') && ($result = $this->cls('Conf')->in_optm_exc_roles())) {
			Debug2::debug('[Core] ⛑️ bypass_optm: hit Role Excludes setting: ' . $result);
			!defined('LITESPEED_NO_OPTM') && define('LITESPEED_NO_OPTM', true);
		}

		// Heartbeat control
		$this->cls('Tool')->heartbeat();

		/**
		 * Backward compatibility for v4.2- @Ruikai
		 * TODO: Will change to hook in future versions to make it revertable
		 */
		if (defined('LITESPEED_BYPASS_OPTM') && !defined('LITESPEED_NO_OPTM')) {
			define('LITESPEED_NO_OPTM', LITESPEED_BYPASS_OPTM);
		}

		if (!defined('LITESPEED_NO_OPTM') || !LITESPEED_NO_OPTM) {
			// Check missing static files
			$this->cls('Router')->serve_static();

			$this->cls('Media')->init();

			$this->cls('Placeholder')->init();

			$this->cls('Router')->can_optm() && $this->cls('Optimize')->init();

			$this->cls('Localization')->init();

			// Hook cdn for attachments
			$this->cls('CDN')->init();

			// load cron tasks
			$this->cls('Task')->init();
		}

		// load litespeed actions
		if ($action = Router::get_action()) {
			$this->proceed_action($action);
		}

		// Load frontend GUI
		if (!is_admin()) {
			$this->cls('GUI')->init();
		}
	}

	/**
	 * Run frontend actions
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function proceed_action( $action ) {
		$msg = false;
		// handle actions
		switch ($action) {
			case self::ACTION_QS_SHOW_HEADERS:
            self::$_debug_show_header = true;
				break;

			case self::ACTION_QS_PURGE:
			case self::ACTION_QS_PURGE_SINGLE:
            Purge::set_purge_single();
				break;

			case self::ACTION_QS_PURGE_ALL:
            Purge::purge_all();
				break;

			case self::ACTION_PURGE_EMPTYCACHE:
			case self::ACTION_QS_PURGE_EMPTYCACHE:
            define('LSWCP_EMPTYCACHE', true); // clear all sites caches
            Purge::purge_all();
            $msg = __('Notified LiteSpeed Web Server to purge everything.', 'litespeed-cache');
				break;

			case self::ACTION_PURGE_BY:
            $this->cls('Purge')->purge_list();
            $msg = __('Notified LiteSpeed Web Server to purge the list.', 'litespeed-cache');
				break;

			case self::ACTION_DISMISS: // Even its from ajax, we don't need to register wp ajax callback function but directly use our action
            GUI::dismiss();
				break;

			default:
            $msg = $this->cls('Router')->handler($action);
				break;
		}
		if ($msg && !Router::is_ajax()) {
			Admin_Display::add_notice(Admin_Display::NOTICE_GREEN, $msg);
			Admin::redirect();
			return;
		}

		if (Router::is_ajax()) {
			exit();
		}
	}

	/**
	 * Callback used to call the detect third party action.
	 *
	 * The detect action is used by third party plugin integration classes to determine if they should add the rest of their hooks.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public function load_thirdparty() {
		do_action('litespeed_load_thirdparty');
	}

	/**
	 * Mark wp_footer called
	 *
	 * @since 1.3
	 * @access public
	 */
	public function footer_hook() {
		Debug2::debug('[Core] Footer hook called');
		if (!defined('LITESPEED_FOOTER_CALLED')) {
			define('LITESPEED_FOOTER_CALLED', true);
		}
	}

	/**
	 * Trigger comment info display hook
	 *
	 * @since 1.3
	 * @access private
	 */
	private function _check_is_html( $buffer = null ) {
		if (!defined('LITESPEED_FOOTER_CALLED')) {
			Debug2::debug2('[Core] CHK html bypass: miss footer const');
			return;
		}

		if (wp_doing_ajax()) {
			Debug2::debug2('[Core] CHK html bypass: doing ajax');
			return;
		}

		if (wp_doing_cron()) {
			Debug2::debug2('[Core] CHK html bypass: doing cron');
			return;
		}

		if ($_SERVER['REQUEST_METHOD'] !== 'GET') {
			Debug2::debug2('[Core] CHK html bypass: not get method ' . $_SERVER['REQUEST_METHOD']);
			return;
		}

		if ($buffer === null) {
			$buffer = ob_get_contents();
		}

		// double check to make sure it is a html file
		if (strlen($buffer) > 300) {
			$buffer = substr($buffer, 0, 300);
		}
		if (strstr($buffer, '<!--') !== false) {
			$buffer = preg_replace('/<!--.*?-->/s', '', $buffer);
		}
		$buffer = trim($buffer);

		$buffer = File::remove_zero_space($buffer);

		$is_html = stripos($buffer, '<html') === 0 || stripos($buffer, '<!DOCTYPE') === 0;

		if (!$is_html) {
			Debug2::debug('[Core] Footer check failed: ' . ob_get_level() . '-' . substr($buffer, 0, 100));
			return;
		}

		Debug2::debug('[Core] Footer check passed');

		if (!defined('LITESPEED_IS_HTML')) {
			define('LITESPEED_IS_HTML', true);
		}
	}

	/**
	 * For compatibility with those plugins have 'Bad' logic that forced all buffer output even it is NOT their buffer :(
	 *
	 * Usually this is called after send_headers() if following original WP process
	 *
	 * @since 1.1.5
	 * @access public
	 * @param  string $buffer
	 * @return string
	 */
	public function send_headers_force( $buffer ) {
		$this->_check_is_html($buffer);

		// Hook to modify buffer before
		$buffer = apply_filters('litespeed_buffer_before', $buffer);

		/**
		 * Media: Image lazyload && WebP
		 * GUI: Clean wrapper mainly for esi block NOTE: this needs to be before optimizer to avoid wrapper being removed
		 * Optimize
		 * CDN
		 */
		if (!defined('LITESPEED_NO_OPTM') || !LITESPEED_NO_OPTM) {
			Debug2::debug('[Core] run hook litespeed_buffer_finalize');
			$buffer = apply_filters('litespeed_buffer_finalize', $buffer);
		}

		/**
		 * Replace ESI preserved list
		 *
		 * @since  3.3 Replace this in the end to avoid `Inline JS Defer` or other Page Optm features encoded ESI tags wrongly, which caused LSWS can't recognize ESI
		 */
		$buffer = $this->cls('ESI')->finalize($buffer);

		$this->send_headers(true);

		// Log ESI nonce buffer empty issue
		if (defined('LSCACHE_IS_ESI') && strlen($buffer) == 0) {
			// log ref for debug purpose
			error_log('ESI buffer empty ' . $_SERVER['REQUEST_URI']);
		}

		// Init comment info
		$running_info_showing = defined('LITESPEED_IS_HTML') || defined('LSCACHE_IS_ESI');
		if (defined('LSCACHE_ESI_SILENCE')) {
			$running_info_showing = false;
			Debug2::debug('[Core] ESI silence');
		}
		/**
		 * Silence comment for json req
		 *
		 * @since 2.9.3
		 */
		if (REST::cls()->is_rest() || Router::is_ajax()) {
			$running_info_showing = false;
			Debug2::debug('[Core] Silence Comment due to REST/AJAX');
		}
		$running_info_showing = apply_filters('litespeed_comment', $running_info_showing);
		if ($running_info_showing) {
			if ($this->_footer_comment) {
				$buffer .= $this->_footer_comment;
			}
		}

		/**
		 * If ESI req is JSON, give the content JSON format
		 *
		 * @since  2.9.3
		 * @since  2.9.4 ESI req could be from internal REST call, so moved json_encode out of this cond
		 */
		if (defined('LSCACHE_IS_ESI')) {
			Debug2::debug('[Core] ESI Start 👇');
			if (strlen($buffer) > 500) {
				Debug2::debug(trim(substr($buffer, 0, 500)) . '.....');
			} else {
				Debug2::debug($buffer);
			}
			Debug2::debug('[Core] ESI End 👆');
		}

		if (apply_filters('litespeed_is_json', false)) {
			if (\json_decode($buffer, true) == null) {
				Debug2::debug('[Core] Buffer converting to JSON');
				$buffer = \json_encode($buffer);
				$buffer = trim($buffer, '"');
			} else {
				Debug2::debug('[Core] JSON Buffer');
			}
		}

		// Hook to modify buffer after
		$buffer = apply_filters('litespeed_buffer_after', $buffer);

		Debug2::ended();

		return $buffer;
	}

	/**
	 * Sends the headers out at the end of processing the request.
	 *
	 * This will send out all LiteSpeed Cache related response headers needed for the post.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param boolean $is_forced If the header is sent following our normal finalizing logic
	 */
	public function send_headers( $is_forced = false ) {
		// Make sure header output only run once
		if (!defined('LITESPEED_DID_' . __FUNCTION__)) {
			define('LITESPEED_DID_' . __FUNCTION__, true);
		} else {
			return;
		}

		// Avoid PHP warning for header sent out already
		if (headers_sent()) {
			self::debug('❌ !!! Err: Header sent out already');
			return;
		}

		$this->_check_is_html();

		// NOTE: cache ctrl output needs to be done first, as currently some varies are added in 3rd party hook `litespeed_api_control`.
		$this->cls('Control')->finalize();

		$vary_header = $this->cls('Vary')->finalize();

		// If is not cacheable but Admin QS is `purge` or `purgesingle`, `tag` still needs to be generated
		$tag_header = $this->cls('Tag')->output();
		if (!$tag_header && Control::is_cacheable()) {
			Control::set_nocache('empty tag header');
		}

		// NOTE: `purge` output needs to be after `tag` output as Admin QS may need to send `tag` header
		$purge_header = Purge::output();

		// generate `control` header in the end in case control status is changed by other headers.
		$control_header = $this->cls('Control')->output();

		// Give one more break to avoid ff crash
		if (!defined('LSCACHE_IS_ESI')) {
			$this->_footer_comment .= "\n";
		}

		$cache_support = 'supported';
		if (defined('LITESPEED_ON')) {
			$cache_support = Control::is_cacheable() ? 'cached' : 'uncached';
		}

		$this->_comment(
			sprintf(
				'%1$s %2$s by LiteSpeed Cache %4$s on %3$s',
				defined('LSCACHE_IS_ESI') ? 'Block' : 'Page',
				$cache_support,
				date('Y-m-d H:i:s', time() + LITESPEED_TIME_OFFSET),
				self::VER
			)
		);

		// send Control header
		if (defined('LITESPEED_ON') && $control_header) {
			$this->_http_header($control_header);
			if (!Control::is_cacheable()) {
				$this->_http_header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0'); // @ref: https://wordpress.org/support/topic/apply_filterslitespeed_control_cacheable-returns-false-for-cacheable/
			}
			if (defined('LSCWP_LOG')) {
				$this->_comment($control_header);
			}
		}
		// send PURGE header (Always send regardless of cache setting disabled/enabled)
		if (defined('LITESPEED_ON') && $purge_header) {
			$this->_http_header($purge_header);
			Debug2::log_purge($purge_header);

			if (defined('LSCWP_LOG')) {
				$this->_comment($purge_header);
			}
		}
		// send Vary header
		if (defined('LITESPEED_ON') && $vary_header) {
			$this->_http_header($vary_header);
			if (defined('LSCWP_LOG')) {
				$this->_comment($vary_header);
			}
		}

		if (defined('LITESPEED_ON') && defined('LSCWP_LOG')) {
			$vary = $this->cls('Vary')->finalize_full_varies();
			if ($vary) {
				$this->_comment('Full varies: ' . $vary);
			}
		}

		// Admin QS show header action
		if (self::$_debug_show_header) {
			$debug_header = self::HEADER_DEBUG . ': ';
			if ($control_header) {
				$debug_header .= $control_header . '; ';
			}
			if ($purge_header) {
				$debug_header .= $purge_header . '; ';
			}
			if ($tag_header) {
				$debug_header .= $tag_header . '; ';
			}
			if ($vary_header) {
				$debug_header .= $vary_header . '; ';
			}
			$this->_http_header($debug_header);
		} else {
			// Control header
			if (defined('LITESPEED_ON') && Control::is_cacheable() && $tag_header) {
				$this->_http_header($tag_header);
				if (defined('LSCWP_LOG')) {
					$this->_comment($tag_header);
				}
			}
		}

		// Object cache _comment
		if (defined('LSCWP_LOG') && defined('LSCWP_OBJECT_CACHE') && method_exists('WP_Object_Cache', 'debug')) {
			$this->_comment('Object Cache ' . \WP_Object_Cache::get_instance()->debug());
		}

		if (defined('LITESPEED_GUEST') && LITESPEED_GUEST) {
			$this->_comment('Guest Mode');
		}

		if (!empty($this->_footer_comment)) {
			self::debug("[footer comment]\n". trim($this->_footer_comment));
		}

		if ($is_forced) {
			Debug2::debug('--forced--');
		}

		/**
		 * If is CLI and contains Purge Header, then issue a HTTP req to Purge
		 *
		 * @since v5.3
		 */
		if (defined('LITESPEED_CLI')) {
			$purge_queue = Purge::get_option(Purge::DB_QUEUE);
			if (!$purge_queue || $purge_queue == -1) {
				$purge_queue = Purge::get_option(Purge::DB_QUEUE2);
			}
			if ($purge_queue && $purge_queue != -1) {
				self::debug('[Core] Purge Queue found, issue a HTTP req to purge: ' . $purge_queue);
				// Kick off HTTP req
				$url  = admin_url('admin-ajax.php');
				$resp = wp_safe_remote_get($url);
				if (is_wp_error($resp)) {
					$error_message = $resp->get_error_message();
					self::debug('[URL]' . $url);
					self::debug('failed to request: ' . $error_message);
				} else {
					self::debug('HTTP req res: ' . $resp['body']);
				}
			}
		}
	}

	/**
	 * Append one HTML comment
	 *
	 * @since 5.5
	 */
	public static function comment( $data ) {
		self::cls()->_comment($data);
	}

	private function _comment( $data ) {
		$this->_footer_comment .= "\n<!-- " . $data . ' -->';
	}

	/**
	 * Send HTTP header
	 *
	 * @since 5.3
	 */
	private function _http_header( $header ) {
		if (defined('LITESPEED_CLI')) {
			return;
		}

		@header($header);

		if (!defined('LSCWP_LOG')) {
			return;
		}
		Debug2::debug('💰 ' . $header);
	}
}
<?php

/**
 * The ESI class.
 *
 * This is used to define all esi related functions.
 *
 * @since       1.1.3
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/src
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class ESI extends Root {

	const LOG_TAG = '⏺';

	private static $has_esi      = false;
	private static $_combine_ids = array();
	private $esi_args            = null;
	private $_esi_preserve_list  = array();
	private $_nonce_actions      = array( -1 => '' ); // val is cache control

	const QS_ACTION = 'lsesi';
	const QS_PARAMS = 'esi';
	const COMBO     = '__combo'; // ESI include combine='main' handler

	const PARAM_ARGS     = 'args';
	const PARAM_ID       = 'id';
	const PARAM_INSTANCE = 'instance';
	const PARAM_NAME     = 'name';

	const WIDGET_O_ESIENABLE = 'widget_esi_enable';
	const WIDGET_O_TTL       = 'widget_ttl';

	/**
	 * Confructor of ESI
	 *
	 * @since  1.2.0
	 * @since  4.0 Change to be after Vary init in hook 'after_setup_theme'
	 */
	public function init() {
		/**
		 * Bypass ESI related funcs if disabled ESI to fix potential DIVI compatibility issue
		 *
		 * @since  2.9.7.2
		 */
		if (Router::is_ajax() || !$this->cls('Router')->esi_enabled()) {
			return;
		}

		// Guest mode, don't need to use ESI
		if (defined('LITESPEED_GUEST') && LITESPEED_GUEST) {
			return;
		}

		if (defined('LITESPEED_ESI_OFF')) {
			return;
		}

		// If page is not cacheable
		if (defined('DONOTCACHEPAGE') && apply_filters('litespeed_const_DONOTCACHEPAGE', DONOTCACHEPAGE)) {
			return;
		}

		// Init ESI in `after_setup_theme` hook after detected if LITESPEED_DISABLE_ALL is ON or not
		$this->_hooks();

		/**
		 * Overwrite wp_create_nonce func
		 *
		 * @since  2.9.5
		 */
		$this->_transform_nonce();

		!defined('LITESPEED_ESI_INITED') && define('LITESPEED_ESI_INITED', true);
	}

	/**
	 * Init ESI related hooks
	 *
	 * Load delayed by hook to give the ability to bypass by LITESPEED_DISABLE_ALL const
	 *
	 * @since 2.9.7.2
	 * @since  4.0 Changed to private from public
	 * @access private
	 */
	private function _hooks() {
		add_filter('template_include', array( $this, 'esi_template' ), 99999);

		add_action('load-widgets.php', __NAMESPACE__ . '\Purge::purge_widget');
		add_action('wp_update_comment_count', __NAMESPACE__ . '\Purge::purge_comment_widget');

		/**
		 * Recover REQUEST_URI
		 *
		 * @since  1.8.1
		 */
		if (!empty($_GET[self::QS_ACTION])) {
			self::debug('ESI req');
			$this->_register_esi_actions();
		}

		/**
		 * Shortcode ESI
		 *
		 * To use it, just change the original shortcode as below:
		 *      old: [someshortcode aa='bb']
		 *      new: [esi someshortcode aa='bb' cache='private,no-vary' ttl='600']
		 *
		 *  1. `cache` attribute is optional, default to 'public,no-vary'.
		 *  2. `ttl` attribute is optional, default is your public TTL setting.
		 *  3. `_ls_silence` attribute is optional, default is false.
		 *
		 * @since  2.8
		 * @since  2.8.1 Check is_admin for Elementor compatibility #726013
		 */
		if (!is_admin()) {
			add_shortcode('esi', array( $this, 'shortcode' ));
		}
	}

	/**
	 * Take over all nonce calls and transform to ESI
	 *
	 * @since  2.9.5
	 */
	private function _transform_nonce() {
		if (is_admin()) {
			return;
		}

		// Load ESI nonces in conf
		$nonces = $this->conf(Base::O_ESI_NONCE);
		add_filter('litespeed_esi_nonces', array( $this->cls('Data'), 'load_esi_nonces' ));
		if ($nonces = apply_filters('litespeed_esi_nonces', $nonces)) {
			foreach ($nonces as $action) {
				$this->nonce_action($action);
			}
		}

		add_action('litespeed_nonce', array( $this, 'nonce_action' ));
	}

	/**
	 * Register a new nonce action to convert it to ESI
	 *
	 * @since  2.9.5
	 */
	public function nonce_action( $action ) {
		// Split the Cache Control
		$action  = explode(' ', $action);
		$control = !empty($action[1]) ? $action[1] : '';
		$action  = $action[0];

		// Wildcard supported
		$action = Utility::wildcard2regex($action);

		if (array_key_exists($action, $this->_nonce_actions)) {
			return;
		}

		$this->_nonce_actions[$action] = $control;

		// Debug2::debug('[ESI] Appended nonce action to nonce list [action] ' . $action);
	}

	/**
	 * Check if an action is registered to replace ESI
	 *
	 * @since 2.9.5
	 */
	public function is_nonce_action( $action ) {
		// If GM not run yet, then ESI not init yet, then ESI nonce will not be allowed even nonce func replaced.
		if (!defined('LITESPEED_ESI_INITED')) {
			return null;
		}

		if (is_admin()) {
			return null;
		}

		if (defined('LITESPEED_ESI_OFF')) {
			return null;
		}

		foreach ($this->_nonce_actions as $k => $v) {
			if (strpos($k, '*') !== false) {
				if (preg_match('#' . $k . '#iU', $action)) {
					return $v;
				}
			} elseif ($k == $action) {
				return $v;
			}
		}

		return null;
	}

	/**
	 * Shortcode ESI
	 *
	 * @since 2.8
	 * @access public
	 */
	public function shortcode( $atts ) {
		if (empty($atts[0])) {
			Debug2::debug('[ESI] ===shortcode wrong format', $atts);
			return 'Wrong shortcode esi format';
		}

		$cache = 'public,no-vary';
		if (!empty($atts['cache'])) {
			$cache = $atts['cache'];
			unset($atts['cache']);
		}

		$silence = false;
		if (!empty($atts['_ls_silence'])) {
			$silence = true;
		}

		do_action('litespeed_esi_shortcode-' . $atts[0]);

		// Show ESI link
		return $this->sub_esi_block('esi', 'esi-shortcode', $atts, $cache, $silence);
	}

	/**
	 * Check if the requested page has esi elements. If so, return esi on
	 * header.
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string Esi On header if request has esi, empty string otherwise.
	 */
	public static function has_esi() {
		return self::$has_esi;
	}

	/**
	 * Sets that the requested page has esi elements.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function set_has_esi() {
		self::$has_esi = true;
	}

	/**
	 * Register all of the hooks related to the esi logic of the plugin.
	 * Specifically when the page IS an esi page.
	 *
	 * @since    1.1.3
	 * @access   private
	 */
	private function _register_esi_actions() {
		/**
		 * This hook is in `init`
		 * For any plugin need to check if page is ESI, use `LSCACHE_IS_ESI` check after `init` hook
		 */
		!defined('LSCACHE_IS_ESI') && define('LSCACHE_IS_ESI', $_GET[self::QS_ACTION]); // Reused this to ESI block ID

		!empty($_SERVER['ESI_REFERER']) && defined('LSCWP_LOG') && Debug2::debug('[ESI] ESI_REFERER: ' . $_SERVER['ESI_REFERER']);

		/**
		 * Only when ESI's parent is not REST, replace REQUEST_URI to avoid breaking WP5 editor REST call
		 *
		 * @since 2.9.3
		 */
		if (!empty($_SERVER['ESI_REFERER']) && !$this->cls('REST')->is_rest($_SERVER['ESI_REFERER'])) {
			self::debug('overwrite REQUEST_URI to ESI_REFERER [from] ' . $_SERVER['REQUEST_URI'] . ' [to] ' . $_SERVER['ESI_REFERER']);
			if (!empty($_SERVER['ESI_REFERER'])) {
				$_SERVER['REQUEST_URI'] = $_SERVER['ESI_REFERER'];
				if (substr(get_option('permalink_structure'), -1) === '/' && strpos($_SERVER['ESI_REFERER'], '?') === false) {
					$_SERVER['REQUEST_URI'] = trailingslashit($_SERVER['ESI_REFERER']);
				}
			}
			// Prevent from 301 redirecting
			if (!empty($_SERVER['SCRIPT_URI'])) {
				$SCRIPT_URI         = parse_url($_SERVER['SCRIPT_URI']);
				$SCRIPT_URI['path'] = $_SERVER['REQUEST_URI'];
				Utility::compatibility();
				$_SERVER['SCRIPT_URI'] = http_build_url($SCRIPT_URI);
			}
		}

		if (!empty($_SERVER['ESI_CONTENT_TYPE']) && strpos($_SERVER['ESI_CONTENT_TYPE'], 'application/json') === 0) {
			add_filter('litespeed_is_json', '__return_true');
		}

		/**
		 * Make REST call be able to parse ESI
		 * NOTE: Not effective due to ESI req are all to `/` yet
		 *
		 * @since 2.9.4
		 */
		add_action('rest_api_init', array( $this, 'load_esi_block' ), 101);

		// Register ESI blocks
		add_action('litespeed_esi_load-widget', array( $this, 'load_widget_block' ));
		add_action('litespeed_esi_load-admin-bar', array( $this, 'load_admin_bar_block' ));
		add_action('litespeed_esi_load-comment-form', array( $this, 'load_comment_form_block' ));

		add_action('litespeed_esi_load-nonce', array( $this, 'load_nonce_block' ));
		add_action('litespeed_esi_load-esi', array( $this, 'load_esi_shortcode' ));

		add_action('litespeed_esi_load-' . self::COMBO, array( $this, 'load_combo' ));
	}

	/**
	 * Hooked to the template_include action.
	 * Selects the esi template file when the post type is a LiteSpeed ESI page.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param string $template The template path filtered.
	 * @return string The new template path.
	 */
	public function esi_template( $template ) {
		// Check if is an ESI request
		if (defined('LSCACHE_IS_ESI')) {
			self::debug('calling ESI template');

			return LSCWP_DIR . 'tpl/esi.tpl.php';
		}
		self::debug('calling default template');
		$this->_register_not_esi_actions();
		return $template;
	}

	/**
	 * Register all of the hooks related to the esi logic of the plugin.
	 * Specifically when the page is NOT an esi page.
	 *
	 * @since    1.1.3
	 * @access   private
	 */
	private function _register_not_esi_actions() {
		do_action('litespeed_tpl_normal');

		if (!Control::is_cacheable()) {
			return;
		}

		if (Router::is_ajax()) {
			return;
		}

		add_filter('widget_display_callback', array( $this, 'sub_widget_block' ), 0, 3);

		// Add admin_bar esi
		if (Router::is_logged_in()) {
			remove_action('wp_body_open', 'wp_admin_bar_render', 0); // Remove default Admin bar. Fix https://github.com/elementor/elementor/issues/25198
			remove_action('wp_footer', 'wp_admin_bar_render', 1000);
			add_action('wp_footer', array( $this, 'sub_admin_bar_block' ), 1000);
		}

		// Add comment forum esi for logged-in user or commenter
		if (!Router::is_ajax() && Vary::has_vary()) {
			add_filter('comment_form_defaults', array( $this, 'register_comment_form_actions' ));
		}
	}

	/**
	 * Set an ESI to be combine='sub'
	 *
	 * @since  3.4.2
	 */
	public static function combine( $block_id ) {
		if (!isset($_SERVER['X-LSCACHE']) || strpos($_SERVER['X-LSCACHE'], 'combine') === false) {
			return;
		}

		if (in_array($block_id, self::$_combine_ids)) {
			return;
		}

		self::$_combine_ids[] = $block_id;
	}

	/**
	 * Load combined ESI
	 *
	 * @since  3.4.2
	 */
	public function load_combo() {
		Control::set_nocache('ESI combine request');

		if (empty($_POST['esi_include'])) {
			return;
		}

		self::set_has_esi();

		Debug2::debug('[ESI] 🍔 Load combo', $_POST['esi_include']);

		$output = '';
		foreach ($_POST['esi_include'] as $url) {
			$qs = parse_url(htmlspecialchars_decode($url), PHP_URL_QUERY);
			parse_str($qs, $qs);
			if (empty($qs[self::QS_ACTION])) {
				continue;
			}
			$esi_id       = $qs[self::QS_ACTION];
			$esi_param    = !empty($qs[self::QS_PARAMS]) ? $this->_parse_esi_param($qs[self::QS_PARAMS]) : false;
			$inline_param = apply_filters('litespeed_esi_inline-' . $esi_id, array(), $esi_param); // Returned array need to be [ val, control, tag ]
			if ($inline_param) {
				$output .= self::_build_inline($url, $inline_param);
			}
		}

		echo $output;
	}

	/**
	 * Build a whole inline segment
	 *
	 * @since  3.4.2
	 */
	private static function _build_inline( $url, $inline_param ) {
		if (!$url || empty($inline_param['val']) || empty($inline_param['control']) || empty($inline_param['tag'])) {
			return '';
		}

		$url     = esc_attr($url);
		$control = esc_attr($inline_param['control']);
		$tag     = esc_attr($inline_param['tag']);

		return "<esi:inline name='$url' cache-control='" . $control . "' cache-tag='" . $tag . "'>" . $inline_param['val'] . '</esi:inline>';
	}

	/**
	 * Build the esi url. This method will build the html comment wrapper as well as serialize and encode the parameter array.
	 *
	 * The block_id parameter should contain alphanumeric and '-_' only.
	 *
	 * @since 1.1.3
	 * @access private
	 * @param string $block_id     The id to use to display the correct esi block.
	 * @param string $wrapper      The wrapper for the esi comments.
	 * @param array  $params       The esi parameters.
	 * @param string $control      The cache control attribute if any.
	 * @param bool   $silence      If generate wrapper comment or not
	 * @param bool   $preserved    If this ESI block is used in any filter, need to temporarily convert it to a string to avoid the HTML tag being removed/filtered.
	 * @param bool   $svar         If store the value in memory or not, in memory will be faster
	 * @param array  $inline_param If show the current value for current request( this can avoid multiple esi requests in first time cache generating process )
	 */
	public function sub_esi_block(
		$block_id,
		$wrapper,
		$params = array(),
		$control = 'private,no-vary',
		$silence = false,
		$preserved = false,
		$svar = false,
		$inline_param = array()
	) {
		if (empty($block_id) || !is_array($params) || preg_match('/[^\w-]/', $block_id)) {
			return false;
		}

		if (defined('LITESPEED_ESI_OFF')) {
			Debug2::debug('[ESI] ESI OFF so force loading [block_id] ' . $block_id);
			do_action('litespeed_esi_load-' . $block_id, $params);
			return;
		}

		if ($silence) {
			// Don't add comment to esi block ( original for nonce used in tag property data-nonce='esi_block' )
			$params['_ls_silence'] = true;
		}

		if ($this->cls('REST')->is_rest() || $this->cls('REST')->is_internal_rest()) {
			$params['is_json'] = 1;
		}

		$params  = apply_filters('litespeed_esi_params', $params, $block_id);
		$control = apply_filters('litespeed_esi_control', $control, $block_id);

		if (!is_array($params) || !is_string($control)) {
			defined('LSCWP_LOG') && Debug2::debug("[ESI] 🛑 Sub hooks returned Params: \n" . var_export($params, true) . "\ncache control: \n" . var_export($control, true));

			return false;
		}

		// Build params for URL
		$appended_params = array(
			self::QS_ACTION => $block_id,
		);
		if (!empty($control)) {
			$appended_params['_control'] = $control;
		}
		if ($params) {
			$appended_params[self::QS_PARAMS] = base64_encode(\json_encode($params));
			Debug2::debug2('[ESI] param ', $params);
		}

		// Append hash
		$appended_params['_hash'] = $this->_gen_esi_md5($appended_params);

		/**
		 * Escape potential chars
		 *
		 * @since 2.9.4
		 */
		$appended_params = array_map('urlencode', $appended_params);

		// Generate ESI URL
		$url = add_query_arg($appended_params, trailingslashit(wp_make_link_relative(home_url())));

		$output = '';
		if ($inline_param) {
			$output .= self::_build_inline($url, $inline_param);
		}

		$output .= "<esi:include src='$url'";
		if (!empty($control)) {
			$control = esc_attr($control);
			$output .= " cache-control='$control'";
		}
		if ($svar) {
			$output .= " as-var='1'";
		}
		if (in_array($block_id, self::$_combine_ids)) {
			$output .= " combine='sub'";
		}
		if ($block_id == self::COMBO && isset($_SERVER['X-LSCACHE']) && strpos($_SERVER['X-LSCACHE'], 'combine') !== false) {
			$output .= " combine='main'";
		}
		$output .= ' />';

		if (!$silence) {
			$output = "<!-- lscwp $wrapper -->$output<!-- lscwp $wrapper esi end -->";
		}

		self::debug("💕  [BLock_ID] $block_id \t[wrapper] $wrapper \t\t[Control] $control");
		self::debug2($output);

		self::set_has_esi();

		// Convert to string to avoid html chars filter when using
		// Will reverse the buffer when output in self::finalize()
		if ($preserved) {
			$hash                            = md5($output);
			$this->_esi_preserve_list[$hash] = $output;
			self::debug("Preserved to $hash");

			return $hash;
		}

		return $output;
	}

	/**
	 * Generate ESI hash md5
	 *
	 * @since  2.9.6
	 * @access private
	 */
	private function _gen_esi_md5( $params ) {
		$keys = array( self::QS_ACTION, '_control', self::QS_PARAMS );

		$str = '';
		foreach ($keys as $v) {
			if (isset($params[$v]) && is_string($params[$v])) {
				$str .= $params[$v];
			}
		}
		Debug2::debug2('[ESI] md5_string=' . $str);

		return md5($this->conf(Base::HASH) . $str);
	}

	/**
	 * Parses the request parameters on an ESI request
	 *
	 * @since 1.1.3
	 * @access private
	 */
	private function _parse_esi_param( $qs_params = false ) {
		$req_params = false;
		if ($qs_params) {
			$req_params = $qs_params;
		} elseif (isset($_REQUEST[self::QS_PARAMS])) {
			$req_params = $_REQUEST[self::QS_PARAMS];
		}

		if (!$req_params) {
			return false;
		}

		$unencrypted = base64_decode($req_params);
		if ($unencrypted === false) {
			return false;
		}

		Debug2::debug2('[ESI] params', $unencrypted);
		// $unencoded = urldecode($unencrypted); no need to do this as $_GET is already parsed
		$params = \json_decode($unencrypted, true);

		return $params;
	}

	/**
	 * Select the correct esi output based on the parameters in an ESI request.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function load_esi_block() {
		/**
		 * Validate if is a legal ESI req
		 *
		 * @since 2.9.6
		 */
		if (empty($_GET['_hash']) || $this->_gen_esi_md5($_GET) != $_GET['_hash']) {
			Debug2::debug('[ESI] ❌ Failed to validate _hash');
			return;
		}

		$params = $this->_parse_esi_param();

		if (defined('LSCWP_LOG')) {
			$logInfo = '[ESI] ⭕ ';
			if (!empty($params[self::PARAM_NAME])) {
				$logInfo .= ' Name: ' . $params[self::PARAM_NAME] . ' ----- ';
			}
			$logInfo .= ' [ID] ' . LSCACHE_IS_ESI;
			Debug2::debug($logInfo);
		}

		if (!empty($params['_ls_silence'])) {
			!defined('LSCACHE_ESI_SILENCE') && define('LSCACHE_ESI_SILENCE', true);
		}

		/**
		 * Buffer needs to be JSON format
		 *
		 * @since  2.9.4
		 */
		if (!empty($params['is_json'])) {
			add_filter('litespeed_is_json', '__return_true');
		}

		Tag::add(rtrim(Tag::TYPE_ESI, '.'));
		Tag::add(Tag::TYPE_ESI . LSCACHE_IS_ESI);

		// Debug2::debug(var_export($params, true ));

		/**
		 * Handle default cache control 'private,no-vary' for sub_esi_block()   @ticket #923505
		 *
		 * @since  2.2.3
		 */
		if (!empty($_GET['_control'])) {
			$control = explode(',', $_GET['_control']);
			if (in_array('private', $control)) {
				Control::set_private();
			}

			if (in_array('no-vary', $control)) {
				Control::set_no_vary();
			}
		}

		do_action('litespeed_esi_load-' . LSCACHE_IS_ESI, $params);
	}

	// The *_sub_* functions are helpers for the sub_* functions.
	// The *_load_* functions are helpers for the load_* functions.

	/**
	 * Loads the default options for default WordPress widgets.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function widget_default_options( $options, $widget ) {
		if (!is_array($options)) {
			return $options;
		}

		$widget_name = get_class($widget);
		switch ($widget_name) {
			case 'WP_Widget_Recent_Posts':
			case 'WP_Widget_Recent_Comments':
            $options[self::WIDGET_O_ESIENABLE] = Base::VAL_OFF;
            $options[self::WIDGET_O_TTL]       = 86400;
				break;
			default:
				break;
		}
		return $options;
	}

	/**
	 * Hooked to the widget_display_callback filter.
	 * If the admin configured the widget to display via esi, this function
	 * will set up the esi request and cancel the widget display.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param array      $instance Parameter used to build the widget.
	 * @param \WP_Widget $widget The widget to build.
	 * @param array      $args Parameter used to build the widget.
	 * @return mixed Return false if display through esi, instance otherwise.
	 */
	public function sub_widget_block( $instance, $widget, $args ) {
		// #210407
		if (!is_array($instance)) {
			return $instance;
		}

		$name = get_class($widget);
		if (!isset($instance[Base::OPTION_NAME])) {
			return $instance;
		}
		$options = $instance[Base::OPTION_NAME];
		if (!isset($options) || !$options[self::WIDGET_O_ESIENABLE]) {
			defined('LSCWP_LOG') && Debug2::debug('ESI 0 ' . $name . ': ' . (!isset($options) ? 'not set' : 'set off'));

			return $instance;
		}

		$esi_private = $options[self::WIDGET_O_ESIENABLE] == Base::VAL_ON2 ? 'private,' : '';

		$params = array(
			self::PARAM_NAME => $name,
			self::PARAM_ID => $widget->id,
			self::PARAM_INSTANCE => $instance,
			self::PARAM_ARGS => $args,
		);

		echo $this->sub_esi_block('widget', 'widget ' . $name, $params, $esi_private . 'no-vary');

		return false;
	}

	/**
	 * Hooked to the wp_footer action.
	 * Sets up the ESI request for the admin bar.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global type $wp_admin_bar
	 */
	public function sub_admin_bar_block() {
		global $wp_admin_bar;

		if (!is_admin_bar_showing() || !is_object($wp_admin_bar)) {
			return;
		}

		// To make each admin bar ESI request different for `Edit` button different link
		$params = array(
			'ref' => $_SERVER['REQUEST_URI'],
		);

		echo $this->sub_esi_block('admin-bar', 'adminbar', $params);
	}

	/**
	 * Parses the esi input parameters and generates the widget for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global $wp_widget_factory
	 * @param array $params Input parameters needed to correctly display widget
	 */
	public function load_widget_block( $params ) {
		// global $wp_widget_factory;
		// $widget = $wp_widget_factory->widgets[ $params[ self::PARAM_NAME ] ];
		$option = $params[self::PARAM_INSTANCE];
		$option = $option[Base::OPTION_NAME];

		// Since we only reach here via esi, safe to assume setting exists.
		$ttl = $option[self::WIDGET_O_TTL];
		defined('LSCWP_LOG') && Debug2::debug('ESI widget render: name ' . $params[self::PARAM_NAME] . ', id ' . $params[self::PARAM_ID] . ', ttl ' . $ttl);
		if ($ttl == 0) {
			Control::set_nocache('ESI Widget time to live set to 0');
		} else {
			Control::set_custom_ttl($ttl);

			if ($option[self::WIDGET_O_ESIENABLE] == Base::VAL_ON2) {
				Control::set_private();
			}
			Control::set_no_vary();
			Tag::add(Tag::TYPE_WIDGET . $params[self::PARAM_ID]);
		}
		the_widget($params[self::PARAM_NAME], $params[self::PARAM_INSTANCE], $params[self::PARAM_ARGS]);
	}

	/**
	 * Generates the admin bar for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function load_admin_bar_block( $params ) {
		global $wp_the_query;

		if (!empty($params['ref'])) {
			$ref_qs = parse_url($params['ref'], PHP_URL_QUERY);
			if (!empty($ref_qs)) {
				parse_str($ref_qs, $ref_qs_arr);

				if (!empty($ref_qs_arr)) {
					foreach ($ref_qs_arr as $k => $v) {
						$_GET[$k] = $v;
					}
				}
			}
		}

		// Needed when permalink structure is "Plain"
		if (!isset($wp_the_query)) {
			wp();
		}

		wp_admin_bar_render();
		if (!$this->conf(Base::O_ESI_CACHE_ADMBAR)) {
			Control::set_nocache('build-in set to not cacheable');
		} else {
			Control::set_private();
			Control::set_no_vary();
		}

		defined('LSCWP_LOG') && Debug2::debug('ESI: adminbar ref: ' . $_SERVER['REQUEST_URI']);
	}

	/**
	 * Parses the esi input parameters and generates the comment form for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 * @param array $params Input parameters needed to correctly display comment form
	 */
	public function load_comment_form_block( $params ) {
		comment_form($params[self::PARAM_ARGS], $params[self::PARAM_ID]);

		if (!$this->conf(Base::O_ESI_CACHE_COMMFORM)) {
			Control::set_nocache('build-in set to not cacheable');
		} else {
			// by default comment form is public
			if (Vary::has_vary()) {
				Control::set_private();
				Control::set_no_vary();
			}
		}
	}

	/**
	 * Generate nonce for certain action
	 *
	 * @access public
	 * @since 2.6
	 */
	public function load_nonce_block( $params ) {
		$action = $params['action'];

		Debug2::debug('[ESI] load_nonce_block [action] ' . $action);

		// set nonce TTL to half day
		Control::set_custom_ttl(43200);

		if (Router::is_logged_in()) {
			Control::set_private();
		}

		if (function_exists('wp_create_nonce_litespeed_esi')) {
			echo wp_create_nonce_litespeed_esi($action);
		} else {
			echo wp_create_nonce($action);
		}
	}

	/**
	 * Show original shortcode
	 *
	 * @access public
	 * @since 2.8
	 */
	public function load_esi_shortcode( $params ) {
		if (isset($params['ttl'])) {
			if (!$params['ttl']) {
				Control::set_nocache('ESI shortcode att ttl=0');
			} else {
				Control::set_custom_ttl($params['ttl']);
			}
			unset($params['ttl']);
		}

		// Replace to original shortcode
		$shortcode = $params[0];
		$atts_ori  = array();
		foreach ($params as $k => $v) {
			if ($k === 0) {
				continue;
			}

			$atts_ori[] = is_string($k) ? "$k='" . addslashes($v) . "'" : $v;
		}

		Tag::add(Tag::TYPE_ESI . "esi.$shortcode");

		// Output original shortcode final content
		echo do_shortcode("[$shortcode " . implode(' ', $atts_ori) . ' ]');
	}

	/**
	 * Hooked to the comment_form_defaults filter.
	 * Stores the default comment form settings.
	 * If sub_comment_form_block is triggered, the output buffer is cleared and an esi block is added. The remaining comment form is also buffered and cleared.
	 * Else there is no need to make the comment form ESI.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function register_comment_form_actions( $defaults ) {
		$this->esi_args = $defaults;
		echo GUI::clean_wrapper_begin();
		add_filter('comment_form_submit_button', array( $this, 'sub_comment_form_btn' ), 1000, 2); // To save the params passed in
		add_action('comment_form', array( $this, 'sub_comment_form_block' ), 1000);
		return $defaults;
	}

	/**
	 * Store the args passed in comment_form for the ESI comment param usage in `$this->sub_comment_form_block()`
	 *
	 * @since  3.4
	 * @access public
	 */
	public function sub_comment_form_btn( $unused, $args ) {
		if (empty($args) || empty($this->esi_args)) {
			Debug2::debug('comment form args empty?');
			return $unused;
		}
		$esi_args = array();

		// compare current args with default ones
		foreach ($args as $k => $v) {
			if (!isset($this->esi_args[$k])) {
				$esi_args[$k] = $v;
			} elseif (is_array($v)) {
				$diff = array_diff_assoc($v, $this->esi_args[$k]);
				if (!empty($diff)) {
					$esi_args[$k] = $diff;
				}
			} elseif ($v !== $this->esi_args[$k]) {
				$esi_args[$k] = $v;
			}
		}

		$this->esi_args = $esi_args;

		return $unused;
	}

	/**
	 * Hooked to the comment_form_submit_button filter.
	 *
	 * This method will compare the used comment form args against the default args. The difference will be passed to the esi request.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function sub_comment_form_block( $post_id ) {
		echo GUI::clean_wrapper_end();
		$params = array(
			self::PARAM_ID => $post_id,
			self::PARAM_ARGS => $this->esi_args,
		);

		echo $this->sub_esi_block('comment-form', 'comment form', $params);
		echo GUI::clean_wrapper_begin();
		add_action('comment_form_after', array( $this, 'comment_form_sub_clean' ));
	}

	/**
	 * Hooked to the comment_form_after action.
	 * Cleans up the remaining comment form output.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function comment_form_sub_clean() {
		echo GUI::clean_wrapper_end();
	}

	/**
	 * Replace preserved blocks
	 *
	 * @since  2.6
	 * @access public
	 */
	public function finalize( $buffer ) {
		// Prepend combo esi block
		if (self::$_combine_ids) {
			Debug2::debug('[ESI] 🍔 Enabled combo');
			$esi_block = $this->sub_esi_block(self::COMBO, '__COMBINE_MAIN__', array(), 'no-cache', true);
			$buffer    = $esi_block . $buffer;
		}

		// Bypass if no preserved list to be replaced
		if (!$this->_esi_preserve_list) {
			return $buffer;
		}

		$keys = array_keys($this->_esi_preserve_list);

		Debug2::debug('[ESI] replacing preserved blocks', $keys);

		$buffer = str_replace($keys, $this->_esi_preserve_list, $buffer);

		return $buffer;
	}

	/**
	 * Check if the content contains preserved list or not
	 *
	 * @since  3.3
	 */
	public function contain_preserve_esi( $content ) {
		$hit_list = array();
		foreach ($this->_esi_preserve_list as $k => $v) {
			if (strpos($content, '"' . $k . '"') !== false) {
				$hit_list[] = '"' . $k . '"';
			}
			if (strpos($content, "'" . $k . "'") !== false) {
				$hit_list[] = "'" . $k . "'";
			}
		}
		return $hit_list;
	}
}
<?php

/**
 * The optimize4 class.
 *
 * @since       1.9
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/inc
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Optimizer extends Root {

	private $_conf_css_font_display;

	/**
	 * Init optimizer
	 *
	 * @since  1.9
	 */
	public function __construct() {
		$this->_conf_css_font_display = $this->conf(Base::O_OPTM_CSS_FONT_DISPLAY);
	}

	/**
	 * Run HTML minify process and return final content
	 *
	 * @since  1.9
	 * @access public
	 */
	public function html_min( $content, $force_inline_minify = false ) {
		if (!apply_filters('litespeed_html_min', true)) {
			Debug2::debug2('[Optmer] html_min bypassed via litespeed_html_min filter');
			return $content;
		}

		$options = array();

		if ($force_inline_minify) {
			$options['jsMinifier'] = __CLASS__ . '::minify_js';
		}

		$skip_comments = $this->conf(Base::O_OPTM_HTML_SKIP_COMMENTS);
		if ($skip_comments) {
			$options['skipComments'] = $skip_comments;
		}

		/**
		 * Added exception capture when minify
		 *
		 * @since  2.2.3
		 */
		try {
			$obj           = new Lib\HTML_MIN($content, $options);
			$content_final = $obj->process();
			// check if content from minification is empty
			if ($content_final == '') {
				Debug2::debug('Failed to minify HTML: HTML minification resulted in empty HTML');
				return $content;
			}
			if (!defined('LSCACHE_ESI_SILENCE')) {
				$content_final .= "\n" . '<!-- Page optimized by LiteSpeed Cache @' . date('Y-m-d H:i:s', time() + LITESPEED_TIME_OFFSET) . ' -->';
			}
			return $content_final;
		} catch (\Exception $e) {
			Debug2::debug('******[Optmer] html_min failed: ' . $e->getMessage());
			error_log('****** LiteSpeed Optimizer html_min failed: ' . $e->getMessage());
			return $content;
		}
	}

	/**
	 * Run minify process and save content
	 *
	 * @since  1.9
	 * @access public
	 */
	public function serve( $request_url, $file_type, $minify, $src_list ) {
		// Try Unique CSS
		if ($file_type == 'css') {
			$content = false;
			if (defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_OPTM_UCSS)) {
				$filename = $this->cls('UCSS')->load($request_url);

				if ($filename) {
					return array( $filename, 'ucss' );
				}
			}
		}

		// Before generated, don't know the contented hash filename yet, so used url hash as tmp filename
		$file_path_prefix = $this->_build_filepath_prefix($file_type);

		$url_tag          = $request_url;
		$url_tag_for_file = md5($request_url);
		if (is_404()) {
			$url_tag_for_file = $url_tag = '404';
		} elseif ($file_type == 'css' && apply_filters('litespeed_ucss_per_pagetype', false)) {
			$url_tag_for_file = $url_tag = Utility::page_type();
		}

		$static_file = LITESPEED_STATIC_DIR . $file_path_prefix . $url_tag_for_file . '.' . $file_type;

		// Create tmp file to avoid conflict
		$tmp_static_file = $static_file . '.tmp';
		if (file_exists($tmp_static_file) && time() - filemtime($tmp_static_file) <= 600) {
			// some other request is generating
			return false;
		}
		// File::save( $tmp_static_file, '/* ' . ( is_404() ? '404' : $request_url ) . ' */', true ); // Can't use this bcos this will get filecon md5 changed
		File::save($tmp_static_file, '', true);

		// Load content
		$real_files = array();
		foreach ($src_list as $src_info) {
			$is_min = false;
			if (!empty($src_info['inl'])) {
				// Load inline
				$content = $src_info['src'];
			} else {
				// Load file
				$content = $this->load_file($src_info['src'], $file_type);

				if (!$content) {
					continue;
				}

				$is_min = $this->is_min($src_info['src']);
			}
			$content = $this->optm_snippet($content, $file_type, $minify && !$is_min, $src_info['src'], !empty($src_info['media']) ? $src_info['media'] : false);
			// Write to file
			File::save($tmp_static_file, $content, true, true);
		}

		// if CSS - run the minification on the saved file.
		// Will move imports to the top of file and remove extra spaces.
		if ($file_type == 'css') {
			$obj                   = new Lib\CSS_JS_MIN\Minify\CSS();
			$file_content_combined = $obj->moveImportsToTop(File::read($tmp_static_file));

			File::save($tmp_static_file, $file_content_combined);
		}

		// validate md5
		$filecon_md5 = md5_file($tmp_static_file);

		$final_file_path = $file_path_prefix . $filecon_md5 . '.' . $file_type;
		$realfile        = LITESPEED_STATIC_DIR . $final_file_path;
		if (!file_exists($realfile)) {
			rename($tmp_static_file, $realfile);
			Debug2::debug2('[Optmer] Saved static file [path] ' . $realfile);
		} else {
			unlink($tmp_static_file);
		}

		$vary = $this->cls('Vary')->finalize_full_varies();
		Debug2::debug2("[Optmer] Save URL to file for [file_type] $file_type [file] $filecon_md5 [vary] $vary ");
		$this->cls('Data')->save_url($url_tag, $vary, $file_type, $filecon_md5, dirname($realfile));

		return array( $filecon_md5 . '.' . $file_type, $file_type );
	}

	/**
	 * Load a single file
	 *
	 * @since  4.0
	 */
	public function optm_snippet( $content, $file_type, $minify, $src, $media = false ) {
		// CSS related features
		if ($file_type == 'css') {
			// Font optimize
			if ($this->_conf_css_font_display) {
				$content = preg_replace('#(@font\-face\s*\{)#isU', '${1}font-display:swap;', $content);
			}

			$content = preg_replace('/@charset[^;]+;\\s*/', '', $content);

			if ($media) {
				$content = '@media ' . $media . '{' . $content . "\n}";
			}

			if ($minify) {
				$content = self::minify_css($content);
			}

			$content = $this->cls('CDN')->finalize($content);

			if ((defined('LITESPEED_GUEST_OPTM') || $this->conf(Base::O_IMG_OPTM_WEBP)) && $this->cls('Media')->webp_support()) {
				$content = $this->cls('Media')->replace_background_webp($content);
			}
		} else {
			if ($minify) {
				$content = self::minify_js($content);
			} else {
				$content = $this->_null_minifier($content);
			}

			$content .= "\n;";
		}

		// Add filter
		$content = apply_filters('litespeed_optm_cssjs', $content, $file_type, $src);

		return $content;
	}

	/**
	 * Load remote resource from cache if existed
	 *
	 * @since  4.7
	 */
	private function load_cached_file( $url, $file_type ) {
		$file_path_prefix     = $this->_build_filepath_prefix($file_type);
		$folder_name          = LITESPEED_STATIC_DIR . $file_path_prefix;
		$to_be_deleted_folder = $folder_name . date('Ymd', strtotime('-2 days'));
		if (file_exists($to_be_deleted_folder)) {
			Debug2::debug('[Optimizer] ❌ Clearing folder [name] ' . $to_be_deleted_folder);
			File::rrmdir($to_be_deleted_folder);
		}

		$today_file = $folder_name . date('Ymd') . '/' . md5($url);
		if (file_exists($today_file)) {
			return File::read($today_file);
		}

		// Write file
		$res      = wp_safe_remote_get($url);
		$res_code = wp_remote_retrieve_response_code($res);
		if (is_wp_error($res) || $res_code != 200) {
			Debug2::debug2('[Optimizer] ❌ Load Remote error [code] ' . $res_code);
			return false;
		}
		$con = wp_remote_retrieve_body($res);
		if (!$con) {
			return false;
		}

		Debug2::debug('[Optimizer] ✅ Save remote file to cache [name] ' . $today_file);
		File::save($today_file, $con, true);

		return $con;
	}

	/**
	 * Load remote/local resource
	 *
	 * @since  3.5
	 */
	public function load_file( $src, $file_type = 'css' ) {
		$real_file = Utility::is_internal_file($src);
		$postfix   = pathinfo(parse_url($src, PHP_URL_PATH), PATHINFO_EXTENSION);
		if (!$real_file || $postfix != $file_type) {
			Debug2::debug2('[CSS] Load Remote [' . $file_type . '] ' . $src);
			$this_url = substr($src, 0, 2) == '//' ? set_url_scheme($src) : $src;
			$con      = $this->load_cached_file($this_url, $file_type);

			if ($file_type == 'css') {
				$dirname = dirname($this_url) . '/';

				$con = Lib\UriRewriter::prepend($con, $dirname);
			}
		} else {
			Debug2::debug2('[CSS] Load local [' . $file_type . '] ' . $real_file[0]);
			$con = File::read($real_file[0]);

			if ($file_type == 'css') {
				$dirname = dirname($real_file[0]);

				$con = Lib\UriRewriter::rewrite($con, $dirname);
			}
		}

		return $con;
	}

	/**
	 * Minify CSS
	 *
	 * @since  2.2.3
	 * @access private
	 */
	public static function minify_css( $data ) {
		try {
			$obj = new Lib\CSS_JS_MIN\Minify\CSS();
			$obj->add($data);

			return $obj->minify();
		} catch (\Exception $e) {
			Debug2::debug('******[Optmer] minify_css failed: ' . $e->getMessage());
			error_log('****** LiteSpeed Optimizer minify_css failed: ' . $e->getMessage());
			return $data;
		}
	}

	/**
	 * Minify JS
	 *
	 * Added exception capture when minify
	 *
	 * @since  2.2.3
	 * @access private
	 */
	public static function minify_js( $data, $js_type = '' ) {
		// For inline JS optimize, need to check if it's js type
		if ($js_type) {
			preg_match('#type=([\'"])(.+)\g{1}#isU', $js_type, $matches);
			if ($matches && $matches[2] != 'text/javascript') {
				Debug2::debug('******[Optmer] minify_js bypass due to type: ' . $matches[2]);
				return $data;
			}
		}

		try {
			$obj = new Lib\CSS_JS_MIN\Minify\JS();
			$obj->add($data);

			return $obj->minify();
		} catch (\Exception $e) {
			Debug2::debug('******[Optmer] minify_js failed: ' . $e->getMessage());
			// error_log( '****** LiteSpeed Optimizer minify_js failed: ' . $e->getMessage() );
			return $data;
		}
	}

	/**
	 * Basic minifier
	 *
	 * @access private
	 */
	private function _null_minifier( $content ) {
		$content = str_replace("\r\n", "\n", $content);

		return trim($content);
	}

	/**
	 * Check if the file is already min file
	 *
	 * @since  1.9
	 */
	public function is_min( $filename ) {
		$basename = basename($filename);
		if (preg_match('/[-\.]min\.(?:[a-zA-Z]+)$/i', $basename)) {
			return true;
		}

		return false;
	}
}
<?php

/**
 * The plugin logging class.
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Debug2 extends Root {

	private static $log_path;
	private static $log_path_prefix;
	private static $_prefix;

	const TYPE_CLEAR_LOG = 'clear_log';
	const TYPE_BETA_TEST = 'beta_test';

	const BETA_TEST_URL = 'beta_test_url';

	const BETA_TEST_URL_WP = 'https://downloads.wordpress.org/plugin/litespeed-cache.zip';

	/**
	 * Log class Confructor
	 *
	 * NOTE: in this process, until last step ( define const LSCWP_LOG = true ), any usage to WP filter will not be logged to prevent infinite loop with log_filters()
	 *
	 * @since 1.1.2
	 * @access public
	 */
	public function __construct() {
		self::$log_path_prefix = LITESPEED_STATIC_DIR . '/debug/';
		// Maybe move legacy log files
		$this->_maybe_init_folder();

		self::$log_path = $this->path('debug');
		if (!empty($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'lscache_') === 0) {
			self::$log_path = $this->path('crawler');
		}

		!defined('LSCWP_LOG_TAG') && define('LSCWP_LOG_TAG', get_current_blog_id());

		if ($this->conf(Base::O_DEBUG_LEVEL)) {
			!defined('LSCWP_LOG_MORE') && define('LSCWP_LOG_MORE', true);
		}

		defined('LSCWP_DEBUG_EXC_STRINGS') || define('LSCWP_DEBUG_EXC_STRINGS', $this->conf(Base::O_DEBUG_EXC_STRINGS));
	}

	/**
	 * Try moving legacy logs into /litespeed/debug/ folder
	 *
	 * @since 6.5
	 */
	private function _maybe_init_folder() {
		if (file_exists(self::$log_path_prefix . 'index.php')) {
			return;
		}
		File::save(self::$log_path_prefix . 'index.php', '<?php // Silence is golden.', true);

		$logs = array( 'debug', 'debug.purge', 'crawler' );
		foreach ($logs as $log) {
			if (file_exists(LSCWP_CONTENT_DIR . '/' . $log . '.log') && !file_exists($this->path($log))) {
				rename(LSCWP_CONTENT_DIR . '/' . $log . '.log', $this->path($log));
			}
		}
	}

	/**
	 * Generate log file path
	 *
	 * @since 6.5
	 */
	public function path( $type ) {
		return self::$log_path_prefix . self::FilePath($type);
	}

	/**
	 * Generate the fixed log filename
	 *
	 * @since 6.5
	 */
	public static function FilePath( $type ) {
		if ($type == 'debug.purge') {
			$type = 'purge';
		}
		$key  = defined('AUTH_KEY') ? AUTH_KEY : md5(__FILE__);
		$rand = substr(md5(substr($key, -16)), -16);
		return $type . $rand . '.log';
	}

	/**
	 * End call of one request process
	 *
	 * @since 4.7
	 * @access public
	 */
	public static function ended() {
		$headers = headers_list();
		foreach ($headers as $key => $header) {
			if (stripos($header, 'Set-Cookie') === 0) {
				unset($headers[$key]);
			}
		}
		self::debug('Response headers', $headers);

		$elapsed_time = number_format((microtime(true) - LSCWP_TS_0) * 1000, 2);
		self::debug("End response\n--------------------------------------------------Duration: " . $elapsed_time . " ms------------------------------\n");
	}

	/**
	 * Beta test upgrade
	 *
	 * @since 2.9.5
	 * @access public
	 */
	public function beta_test( $zip = false ) {
		if (!$zip) {
			if (empty($_REQUEST[self::BETA_TEST_URL])) {
				return;
			}

			$zip = $_REQUEST[self::BETA_TEST_URL];
			if ($zip !== self::BETA_TEST_URL_WP) {
				if ($zip === 'latest') {
					$zip = self::BETA_TEST_URL_WP;
				} else {
					// Generate zip url
					$zip = $this->_package_zip($zip);
				}
			}
		}

		if (!$zip) {
			self::debug('[Debug2] ❌  No ZIP file');
			return;
		}

		self::debug('[Debug2] ZIP file ' . $zip);

		$update_plugins = get_site_transient('update_plugins');
		if (!is_object($update_plugins)) {
			$update_plugins = new \stdClass();
		}

		$plugin_info              = new \stdClass();
		$plugin_info->new_version = Core::VER;
		$plugin_info->slug        = Core::PLUGIN_NAME;
		$plugin_info->plugin      = Core::PLUGIN_FILE;
		$plugin_info->package     = $zip;
		$plugin_info->url         = 'https://wordpress.org/plugins/litespeed-cache/';

		$update_plugins->response[Core::PLUGIN_FILE] = $plugin_info;

		set_site_transient('update_plugins', $update_plugins);

		// Run upgrade
		Activation::cls()->upgrade();
	}

	/**
	 * Git package refresh
	 *
	 * @since  2.9.5
	 * @access private
	 */
	private function _package_zip( $commit ) {
		$data = array(
			'commit' => $commit,
		);
		$res  = Cloud::get(Cloud::API_BETA_TEST, $data);

		if (empty($res['zip'])) {
			return false;
		}

		return $res['zip'];
	}

	/**
	 * Log Purge headers separately
	 *
	 * @since 2.7
	 * @access public
	 */
	public static function log_purge( $purge_header ) {
		// Check if debug is ON
		if (!defined('LSCWP_LOG') && !defined('LSCWP_LOG_BYPASS_NOTADMIN')) {
			return;
		}

		$purge_file = self::cls()->path('purge');

		self::cls()->_init_request($purge_file);

		$msg = $purge_header . self::_backtrace_info(6);

		File::append($purge_file, self::format_message($msg));
	}

	/**
	 * Enable debug log
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function init() {
		if (defined('LSCWP_LOG')) return;

		$debug = $this->conf(Base::O_DEBUG);
		if ($debug == Base::VAL_ON2) {
			if (!$this->cls('Router')->is_admin_ip()) {
				defined('LSCWP_LOG_BYPASS_NOTADMIN') || define('LSCWP_LOG_BYPASS_NOTADMIN', true);
				return;
			}
		}

		/**
		 * Check if hit URI includes/excludes
		 * This is after LSCWP_LOG_BYPASS_NOTADMIN to make `log_purge()` still work
		 *
		 * @since  3.0
		 */
		$list = $this->conf(Base::O_DEBUG_INC);
		if ($list) {
			$result = Utility::str_hit_array($_SERVER['REQUEST_URI'], $list);
			if (!$result) {
				return;
			}
		}

		$list = $this->conf(Base::O_DEBUG_EXC);
		if ($list) {
			$result = Utility::str_hit_array($_SERVER['REQUEST_URI'], $list);
			if ($result) {
				return;
			}
		}

		if (!defined('LSCWP_LOG')) {
			// If not initialized, do it now
			$this->_init_request();
			define('LSCWP_LOG', true);
		}
	}

	/**
	 * Create the initial log messages with the request parameters.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private function _init_request( $log_file = null ) {
		if (!$log_file) {
			$log_file = self::$log_path;
		}

		// Check log file size
		$log_file_size = $this->conf(Base::O_DEBUG_FILESIZE);
		if (file_exists($log_file) && filesize($log_file) > $log_file_size * 1000000) {
			File::save($log_file, '');
		}

		// For more than 2s's requests, add more break
		if (file_exists($log_file) && time() - filemtime($log_file) > 2) {
			File::append($log_file, "\n\n\n\n");
		}

		if (PHP_SAPI == 'cli') {
			return;
		}

		$servervars = array(
			'Query String' => '',
			'HTTP_ACCEPT' => '',
			'HTTP_USER_AGENT' => '',
			'HTTP_ACCEPT_ENCODING' => '',
			'HTTP_COOKIE' => '',
			'REQUEST_METHOD' => '',
			'SERVER_PROTOCOL' => '',
			'X-LSCACHE' => '',
			'LSCACHE_VARY_COOKIE' => '',
			'LSCACHE_VARY_VALUE' => '',
			'ESI_CONTENT_TYPE' => '',
		);
		$server     = array_merge($servervars, $_SERVER);
		$params     = array();

		if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
			$server['SERVER_PROTOCOL'] .= ' (HTTPS) ';
		}

		$param = sprintf('💓 ------%s %s %s', $server['REQUEST_METHOD'], $server['SERVER_PROTOCOL'], strtok($server['REQUEST_URI'], '?'));

		$qs = !empty($server['QUERY_STRING']) ? $server['QUERY_STRING'] : '';
		if ($this->conf(Base::O_DEBUG_COLLAPSE_QS)) {
			$qs = $this->_omit_long_message($qs);
			if ($qs) {
				$param .= ' ? ' . $qs;
			}
			$params[] = $param;
		} else {
			$params[] = $param;
			$params[] = 'Query String: ' . $qs;
		}

		if (!empty($_SERVER['HTTP_REFERER'])) {
			$params[] = 'HTTP_REFERER: ' . $this->_omit_long_message($server['HTTP_REFERER']);
		}

		if (defined('LSCWP_LOG_MORE')) {
			$params[] = 'User Agent: ' . $this->_omit_long_message($server['HTTP_USER_AGENT']);
			$params[] = 'Accept: ' . $server['HTTP_ACCEPT'];
			$params[] = 'Accept Encoding: ' . $server['HTTP_ACCEPT_ENCODING'];
		}
		// $params[] = 'Cookie: ' . $server['HTTP_COOKIE'];
		if (isset($_COOKIE['_lscache_vary'])) {
			$params[] = 'Cookie _lscache_vary: ' . $_COOKIE['_lscache_vary'];
		}
		if (defined('LSCWP_LOG_MORE')) {
			$params[] = 'X-LSCACHE: ' . (!empty($server['X-LSCACHE']) ? 'true' : 'false');
		}
		if ($server['LSCACHE_VARY_COOKIE']) {
			$params[] = 'LSCACHE_VARY_COOKIE: ' . $server['LSCACHE_VARY_COOKIE'];
		}
		if ($server['LSCACHE_VARY_VALUE']) {
			$params[] = 'LSCACHE_VARY_VALUE: ' . $server['LSCACHE_VARY_VALUE'];
		}
		if ($server['ESI_CONTENT_TYPE']) {
			$params[] = 'ESI_CONTENT_TYPE: ' . $server['ESI_CONTENT_TYPE'];
		}

		$request = array_map(__CLASS__ . '::format_message', $params);

		File::append($log_file, $request);
	}

	/**
	 * Trim long msg to keep log neat
	 *
	 * @since 6.3
	 */
	private function _omit_long_message( $msg ) {
		if (strlen($msg) > 53) {
			$msg = substr($msg, 0, 53) . '...';
		}
		return $msg;
	}

	/**
	 * Formats the log message with a consistent prefix.
	 *
	 * @since 1.0.12
	 * @access private
	 * @param string $msg The log message to write.
	 * @return string The formatted log message.
	 */
	private static function format_message( $msg ) {
		// If call here without calling get_enabled() first, improve compatibility
		if (!defined('LSCWP_LOG_TAG')) {
			return $msg . "\n";
		}

		if (!isset(self::$_prefix)) {
			// address
			if (PHP_SAPI == 'cli') {
				$addr = '=CLI=';
				if (isset($_SERVER['USER'])) {
					$addr .= $_SERVER['USER'];
				} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
					$addr .= $_SERVER['HTTP_X_FORWARDED_FOR'];
				}
			} else {
				$addr = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
				$port = isset($_SERVER['REMOTE_PORT']) ? $_SERVER['REMOTE_PORT'] : '';
				$addr = "$addr:$port";
			}

			// Generate a unique string per request
			self::$_prefix = sprintf(' [%s %s %s] ', $addr, LSCWP_LOG_TAG, Str::rrand(3));
		}
		list($usec, $sec) = explode(' ', microtime());
		return date('m/d/y H:i:s', $sec + LITESPEED_TIME_OFFSET) . substr($usec, 1, 4) . self::$_prefix . $msg . "\n";
	}

	/**
	 * Direct call to log a debug message.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function debug( $msg, $backtrace_limit = false ) {
		if (!defined('LSCWP_LOG')) {
			return;
		}

		if (defined('LSCWP_DEBUG_EXC_STRINGS') && Utility::str_hit_array($msg, LSCWP_DEBUG_EXC_STRINGS)) {
			return;
		}

		if ($backtrace_limit !== false) {
			if (!is_numeric($backtrace_limit)) {
				$backtrace_limit = self::trim_longtext($backtrace_limit);
				if (is_array($backtrace_limit) && count($backtrace_limit) == 1 && !empty($backtrace_limit[0])) {
					$msg .= ' --- ' . $backtrace_limit[0];
				} else {
					$msg .= ' --- ' . var_export($backtrace_limit, true);
				}
				self::push($msg);
				return;
			}

			self::push($msg, $backtrace_limit + 1);
			return;
		}

		self::push($msg);
	}

	/**
	 * Trim long string before array dump
	 *
	 * @since  3.3
	 */
	public static function trim_longtext( $backtrace_limit ) {
		if (is_array($backtrace_limit)) {
			$backtrace_limit = array_map(__CLASS__ . '::trim_longtext', $backtrace_limit);
		}
		if (is_string($backtrace_limit) && strlen($backtrace_limit) > 500) {
			$backtrace_limit = substr($backtrace_limit, 0, 1000) . '...';
		}
		return $backtrace_limit;
	}

	/**
	 * Direct call to log an advanced debug message.
	 *
	 * @since 1.2.0
	 * @access public
	 */
	public static function debug2( $msg, $backtrace_limit = false ) {
		if (!defined('LSCWP_LOG_MORE')) {
			return;
		}
		self::debug($msg, $backtrace_limit);
	}

	/**
	 * Logs a debug message.
	 *
	 * @since 1.1.0
	 * @access private
	 * @param string $msg The debug message.
	 * @param int    $backtrace_limit Backtrace depth.
	 */
	private static function push( $msg, $backtrace_limit = false ) {
		// backtrace handler
		if (defined('LSCWP_LOG_MORE') && $backtrace_limit !== false) {
			$msg .= self::_backtrace_info($backtrace_limit);
		}

		File::append(self::$log_path, self::format_message($msg));
	}

	/**
	 * Backtrace info
	 *
	 * @since 2.7
	 */
	private static function _backtrace_info( $backtrace_limit ) {
		$msg = '';

		$trace = version_compare(PHP_VERSION, '5.4.0', '<') ? debug_backtrace() : debug_backtrace(false, $backtrace_limit + 3);
		for ($i = 2; $i <= $backtrace_limit + 2; $i++) {
			// 0st => _backtrace_info(), 1st => push()
			if (empty($trace[$i]['class'])) {
				if (empty($trace[$i]['file'])) {
					break;
				}
				$log = "\n" . $trace[$i]['file'];
			} else {
				if ($trace[$i]['class'] == __CLASS__) {
					continue;
				}

				$args = '';
				if (!empty($trace[$i]['args'])) {
					foreach ($trace[$i]['args'] as $v) {
						if (is_array($v)) {
							$v = 'ARRAY';
						}
						if (is_string($v) || is_numeric($v)) {
							$args .= $v . ',';
						}
					}

					$args = substr($args, 0, strlen($args) > 100 ? 100 : -1);
				}

				$log = str_replace('Core', 'LSC', $trace[$i]['class']) . $trace[$i]['type'] . $trace[$i]['function'] . '(' . $args . ')';
			}
			if (!empty($trace[$i - 1]['line'])) {
				$log .= '@' . $trace[$i - 1]['line'];
			}
			$msg .= " => $log";
		}

		return $msg;
	}

	/**
	 * Clear log file
	 *
	 * @since 1.6.6
	 * @access private
	 */
	private function _clear_log() {
		$logs = array( 'debug', 'purge', 'crawler' );
		foreach ($logs as $log) {
			File::save($this->path($log), '');
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.6.6
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_CLEAR_LOG:
            $this->_clear_log();
				break;

			case self::TYPE_BETA_TEST:
            $this->beta_test();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php

/**
 * The report class
 *
 * @since      1.1.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Report extends Base {

	const TYPE_SEND_REPORT = 'send_report';

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_SEND_REPORT:
            $this->post_env();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

	/**
	 * post env report number to ls center server
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public function post_env() {
		$report_con = $this->generate_environment_report();

		// Generate link
		$link = !empty($_POST['link']) ? esc_url($_POST['link']) : '';

		$notes = !empty($_POST['notes']) ? esc_html($_POST['notes']) : '';

		$php_info   = !empty($_POST['attach_php']) ? esc_html($_POST['attach_php']) : '';
		$report_php = $php_info === '1' ? $this->generate_php_report() : '';

		if ($report_php) {
			$report_con .= "\nPHPINFO\n" . $report_php;
		}

		$data = array(
			'env' => $report_con,
			'link' => $link,
			'notes' => $notes,
		);

		$json = Cloud::post(Cloud::API_REPORT, $data);
		if (!is_array($json)) {
			return;
		}

		$num     = !empty($json['num']) ? $json['num'] : '--';
		$summary = array(
			'num' => $num,
			'dateline' => time(),
		);

		self::save_summary($summary);

		return $num;
	}

	/**
	 * Gathers the PHP information.
	 *
	 * @since 7.0
	 * @access public
	 */
	public function generate_php_report( $flags = INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES ) {
		// INFO_ENVIRONMENT
		$report = '';

		ob_start();
		phpinfo($flags);
		$report = ob_get_contents();
		ob_end_clean();

		preg_match('%<style type="text/css">(.*?)</style>.*?<body>(.*?)</body>%s', $report, $report);

		return $report[2];
	}

	/**
	 * Gathers the environment details and creates the report.
	 * Will write to the environment report file.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public function generate_environment_report( $options = null ) {
		global $wp_version, $_SERVER;
		$frontend_htaccess = Htaccess::get_frontend_htaccess();
		$backend_htaccess  = Htaccess::get_backend_htaccess();
		$paths             = array( $frontend_htaccess );
		if ($frontend_htaccess != $backend_htaccess) {
			$paths[] = $backend_htaccess;
		}

		if (is_multisite()) {
			$active_plugins = get_site_option('active_sitewide_plugins');
			if (!empty($active_plugins)) {
				$active_plugins = array_keys($active_plugins);
			}
		} else {
			$active_plugins = get_option('active_plugins');
		}

		if (function_exists('wp_get_theme')) {
			$theme_obj    = wp_get_theme();
			$active_theme = $theme_obj->get('Name');
		} else {
			$active_theme = get_current_theme();
		}

		$extras = array(
			'wordpress version' => $wp_version,
			'siteurl' => get_option('siteurl'),
			'home' => get_option('home'),
			'home_url' => home_url(),
			'locale' => get_locale(),
			'active theme' => $active_theme,
		);

		$extras['active plugins'] = $active_plugins;
		$extras['cloud']          = Cloud::get_summary();
		foreach (array( 'mini_html', 'pk_b64', 'sk_b64', 'cdn_dash', 'ips' ) as $v) {
			if (!empty($extras['cloud'][$v])) {
				unset($extras['cloud'][$v]);
			}
		}

		if (is_null($options)) {
			$options = $this->get_options(true);

			if (is_multisite()) {
				$options2 = $this->get_options();
				foreach ($options2 as $k => $v) {
					if (isset($options[$k]) && $options[$k] !== $v) {
						$options['[Overwritten] ' . $k] = $v;
					}
				}
			}
		}

		if (!is_null($options) && is_multisite()) {
			$blogs = Activation::get_network_ids();
			if (!empty($blogs)) {
				$i = 0;
				foreach ($blogs as $blog_id) {
					if (++$i > 3) {
						// Only log 3 subsites
						break;
					}
					$opts = $this->cls('Conf')->load_options($blog_id, true);
					if (isset($opts[self::O_CACHE])) {
						$options['blog ' . $blog_id . ' radio select'] = $opts[self::O_CACHE];
					}
				}
			}
		}

		// Security: Remove cf key in report
		$secure_fields = array( self::O_CDN_CLOUDFLARE_KEY, self::O_OBJECT_PSWD );
		foreach ($secure_fields as $v) {
			if (!empty($options[$v])) {
				$options[$v] = str_repeat('*', strlen($options[$v]));
			}
		}

		$report = $this->build_environment_report($_SERVER, $options, $extras, $paths);
		return $report;
	}

	/**
	 * Builds the environment report buffer with the given parameters
	 *
	 * @access private
	 */
	private function build_environment_report( $server, $options, $extras = array(), $htaccess_paths = array() ) {
		$server_keys   = array(
			'DOCUMENT_ROOT' => '',
			'SERVER_SOFTWARE' => '',
			'X-LSCACHE' => '',
			'HTTP_X_LSCACHE' => '',
		);
		$server_vars   = array_intersect_key($server, $server_keys);
		$server_vars[] = 'LSWCP_TAG_PREFIX = ' . LSWCP_TAG_PREFIX;

		$server_vars = array_merge($server_vars, $this->cls('Base')->server_vars());

		$buf = $this->_format_report_section('Server Variables', $server_vars);

		$buf .= $this->_format_report_section('WordPress Specific Extras', $extras);

		$buf .= $this->_format_report_section('LSCache Plugin Options', $options);

		if (empty($htaccess_paths)) {
			return $buf;
		}

		foreach ($htaccess_paths as $path) {
			if (!file_exists($path) || !is_readable($path)) {
				$buf .= $path . " does not exist or is not readable.\n";
				continue;
			}

			$content = file_get_contents($path);
			if ($content === false) {
				$buf .= $path . " returned false for file_get_contents.\n";
				continue;
			}
			$buf .= $path . " contents:\n" . $content . "\n\n";
		}
		return $buf;
	}

	/**
	 * Creates a part of the environment report based on a section header and an array for the section parameters.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private function _format_report_section( $section_header, $section ) {
		$tab = '    '; // four spaces

		if (empty($section)) {
			return 'No matching ' . $section_header . "\n\n";
		}
		$buf = $section_header;

		foreach ($section as $k => $v) {
			$buf .= "\n" . $tab;

			if (!is_numeric($k)) {
				$buf .= $k . ' = ';
			}

			if (!is_string($v)) {
				$v = var_export($v, true);
			} else {
				$v = esc_html($v);
			}

			$buf .= $v;
		}
		return $buf . "\n\n";
	}
}
<?php

/**
 * The Doc class.
 *
 * @since       2.2.7
 * @package     LiteSpeed
 * @subpackage  LiteSpeed/src
 * @author      LiteSpeed Technologies <info@litespeedtech.com>
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Doc {

	// protected static $_instance;

	/**
	 * Show option is actually ON by GM
	 *
	 * @since  5.5
	 * @access public
	 */
	public static function maybe_on_by_gm( $id ) {
		if (apply_filters('litespeed_conf', $id)) {
			return;
		}
		if (!apply_filters('litespeed_conf', Base::O_GUEST)) {
			return;
		}
		if (!apply_filters('litespeed_conf', Base::O_GUEST_OPTM)) {
			return;
		}
		echo '<font class="litespeed-warning">';
		echo '⚠️ ' .
			sprintf(
				__('This setting is %1$s for certain qualifying requests due to %2$s!', 'litespeed-cache'),
				'<code>' . __('ON', 'litespeed-cache') . '</code>',
				Lang::title(Base::O_GUEST_OPTM)
			);
		self::learn_more('https://docs.litespeedtech.com/lscache/lscwp/general/#guest-optimization');
		echo '</font>';
	}

	/**
	 * Changes affect crawler list warning
	 *
	 * @since  4.3
	 * @access public
	 */
	public static function crawler_affected() {
		echo '<font class="litespeed-primary">';
		echo '⚠️ ' . __('This setting will regenerate crawler list and clear the disabled list!', 'litespeed-cache');
		echo '</font>';
	}

	/**
	 * Privacy policy
	 *
	 * @since 2.2.7
	 * @access public
	 */
	public static function privacy_policy() {
		return __(
			'This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.',
			'litespeed-cache'
		) .
			sprintf(
				__('Please see %s for more details.', 'litespeed-cache'),
				'<a href="https://quic.cloud/privacy-policy/" target="_blank">https://quic.cloud/privacy-policy/</a>'
			);
	}

	/**
	 * Learn more link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function learn_more( $url, $title = false, $self = false, $class = false, $return = false ) {
		if (!$class) {
			$class = 'litespeed-learn-more';
		}

		if (!$title) {
			$title = __('Learn More', 'litespeed-cache');
		}

		$self = $self ? '' : "target='_blank'";

		$txt = " <a href='$url' $self class='$class'>$title</a>";

		if ($return) {
			return $txt;
		}

		echo $txt;
	}

	/**
	 * One per line
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function one_per_line( $return = false ) {
		$str = __('One per line.', 'litespeed-cache');
		if ($return) {
			return $str;
		}
		echo $str;
	}

	/**
	 * One per line
	 *
	 * @since  3.4
	 * @access public
	 */
	public static function full_or_partial_url( $string_only = false ) {
		if ($string_only) {
			echo __('Both full and partial strings can be used.', 'litespeed-cache');
		} else {
			echo __('Both full URLs and partial strings can be used.', 'litespeed-cache');
		}
	}

	/**
	 * Notice to edit .htaccess
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function notice_htaccess() {
		echo '<font class="litespeed-primary">';
		echo '⚠️ ' . __('This setting will edit the .htaccess file.', 'litespeed-cache');
		echo ' <a href="https://docs.litespeedtech.com/lscache/lscwp/toolbox/#edit-htaccess-tab" target="_blank" class="litespeed-learn-more">' .
			__('Learn More', 'litespeed-cache') .
			'</a>';
		echo '</font>';
	}

	/**
	 * Notice for whitelist IPs
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function notice_ips() {
		echo '<div class="litespeed-primary">';
		echo '⚠️ ' . sprintf(__('For online services to work correctly, you must allowlist all %s server IPs.', 'litespeed-cache'), 'QUIC.cloud') . '<br/>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . __('Before generating key, please verify all IPs on this list are allowlisted', 'litespeed-cache') . ': ';
		echo '<a href="' . Cloud::CLOUD_IPS . '" target="_blank">' . __('Current Online Server IPs', 'litespeed-cache') . '</a>';
		echo '</div>';
	}

	/**
	 * Gentle reminder that web services run asynchronously
	 *
	 * @since  5.3.1
	 * @access public
	 */
	public static function queue_issues( $return = false ) {
		$str =
			'<div class="litespeed-desc">' .
			__('The queue is processed asynchronously. It may take time.', 'litespeed-cache') .
			self::learn_more('https://docs.litespeedtech.com/lscache/lscwp/troubleshoot/#quiccloud-queue-issues', false, false, false, true) .
			'</div>';
		if ($return) {
			return $str;
		}
		echo $str;
	}
}
<?php

/**
 * The plugin purge class for X-LiteSpeed-Purge
 *
 * @since       1.1.3
 * @since       2.2 Refactored. Changed access from public to private for most func and class variables.
 */

namespace LiteSpeed;

defined('WPINC') || exit();

class Purge extends Base {

	const LOG_TAG = '🧹';

	protected $_pub_purge    = array();
	protected $_pub_purge2   = array();
	protected $_priv_purge   = array();
	protected $_purge_single = false;

	const X_HEADER  = 'X-LiteSpeed-Purge';
	const X_HEADER2 = 'X-LiteSpeed-Purge2';
	const DB_QUEUE  = 'queue';
	const DB_QUEUE2 = 'queue2';

	const TYPE_PURGE_ALL          = 'purge_all';
	const TYPE_PURGE_ALL_LSCACHE  = 'purge_all_lscache';
	const TYPE_PURGE_ALL_CSSJS    = 'purge_all_cssjs';
	const TYPE_PURGE_ALL_LOCALRES = 'purge_all_localres';
	const TYPE_PURGE_ALL_CCSS     = 'purge_all_ccss';
	const TYPE_PURGE_ALL_UCSS     = 'purge_all_ucss';
	const TYPE_PURGE_ALL_LQIP     = 'purge_all_lqip';
	const TYPE_PURGE_ALL_AVATAR   = 'purge_all_avatar';
	const TYPE_PURGE_ALL_OBJECT   = 'purge_all_object';
	const TYPE_PURGE_ALL_OPCACHE  = 'purge_all_opcache';

	const TYPE_PURGE_FRONT     = 'purge_front';
	const TYPE_PURGE_UCSS      = 'purge_ucss';
	const TYPE_PURGE_FRONTPAGE = 'purge_frontpage';
	const TYPE_PURGE_PAGES     = 'purge_pages';
	const TYPE_PURGE_ERROR     = 'purge_error';

	/**
	 * Init hooks
	 *
	 * @since  3.0
	 */
	public function init() {
		// Register purge actions.
		// Most used values: edit_post, save_post, delete_post, wp_trash_post, clean_post_cache, wp_update_comment_count
		$purge_post_events = apply_filters('litespeed_purge_post_events', array(
			'delete_post',
			'wp_trash_post',
			// 'clean_post_cache', // This will disable wc's not purge product when stock status not change setting
			'wp_update_comment_count', // TODO: check if needed for non ESI
		));

		foreach ($purge_post_events as $event) {
			// this will purge all related tags
			add_action($event, array( $this, 'purge_post' ));
		}

		// Purge post only when status is/was publish
		add_action('transition_post_status', array( $this, 'purge_publish' ), 10, 3);

		add_action('wp_update_comment_count', array( $this, 'purge_feeds' ));

		if ($this->conf(self::O_OPTM_UCSS)) {
			add_action('edit_post', __NAMESPACE__ . '\Purge::purge_ucss');
		}
	}

	/**
	 * Only purge publish related status post
	 *
	 * @since 3.0
	 * @access public
	 */
	public function purge_publish( $new_status, $old_status, $post ) {
		if ($new_status != 'publish' && $old_status != 'publish') {
			return;
		}

		$this->purge_post($post->ID);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.8
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ($type) {
			case self::TYPE_PURGE_ALL:
            $this->_purge_all();
				break;

			case self::TYPE_PURGE_ALL_LSCACHE:
            $this->_purge_all_lscache();
				break;

			case self::TYPE_PURGE_ALL_CSSJS:
            $this->_purge_all_cssjs();
				break;

			case self::TYPE_PURGE_ALL_LOCALRES:
            $this->_purge_all_localres();
				break;

			case self::TYPE_PURGE_ALL_CCSS:
            $this->_purge_all_ccss();
				break;

			case self::TYPE_PURGE_ALL_UCSS:
            $this->_purge_all_ucss();
				break;

			case self::TYPE_PURGE_ALL_LQIP:
            $this->_purge_all_lqip();
				break;

			case self::TYPE_PURGE_ALL_AVATAR:
            $this->_purge_all_avatar();
				break;

			case self::TYPE_PURGE_ALL_OBJECT:
            $this->_purge_all_object();
				break;

			case self::TYPE_PURGE_ALL_OPCACHE:
            $this->purge_all_opcache();
				break;

			case self::TYPE_PURGE_FRONT:
            $this->_purge_front();
				break;

			case self::TYPE_PURGE_UCSS:
            $this->_purge_ucss();
				break;

			case self::TYPE_PURGE_FRONTPAGE:
            $this->_purge_frontpage();
				break;

			case self::TYPE_PURGE_PAGES:
            $this->_purge_pages();
				break;

			case strpos($type, self::TYPE_PURGE_ERROR) === 0:
            $this->_purge_error(substr($type, strlen(self::TYPE_PURGE_ERROR)));
				break;

			default:
				break;
		}

		Admin::redirect();
	}

	/**
	 * Shortcut to purge all lscache
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function purge_all( $reason = false ) {
		self::cls()->_purge_all($reason);
	}

	/**
	 * Purge all caches (lscache/op/oc)
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _purge_all( $reason = false ) {
		// if ( defined( 'LITESPEED_CLI' ) ) {
		// Can't send, already has output, need to save and wait for next run
		// self::update_option( self::DB_QUEUE, $curr_built );
		// self::debug( 'CLI request, queue stored: ' . $curr_built );
		// }
		// else {
		$this->_purge_all_lscache(true);
		$this->_purge_all_cssjs(true);
		$this->_purge_all_localres(true);
		// $this->_purge_all_ccss( true );
		// $this->_purge_all_lqip( true );
		$this->_purge_all_object(true);
		$this->purge_all_opcache(true);
		// }

		if ($this->conf(self::O_CDN_CLOUDFLARE_CLEAR)) {
			CDN\Cloudflare::purge_all('Purge All');
		}

		if (!is_string($reason)) {
			$reason = false;
		}

		if ($reason) {
			$reason = "( $reason )";
		}

		self::debug('Purge all ' . $reason, 3);

		$msg = __('Purged all caches successfully.', 'litespeed-cache');
		!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);

		do_action('litespeed_purged_all');
	}

	/**
	 * Alerts LiteSpeed Web Server to purge all pages.
	 *
	 * For multisite installs, if this is called by a site admin (not network admin),
	 * it will only purge all posts associated with that site.
	 *
	 * @since 2.2
	 * @access public
	 */
	private function _purge_all_lscache( $silence = false ) {
		$this->_add('*');

		// Action to run after server was notified to delete LSCache entries.
		do_action('litespeed_purged_all_lscache');

		if (!$silence) {
			$msg = __('Notified LiteSpeed Web Server to purge all LSCache entries.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}
	}

	/**
	 * Delete all critical css
	 *
	 * @since    2.3
	 * @access   private
	 */
	private function _purge_all_ccss( $silence = false ) {
		do_action('litespeed_purged_all_ccss');

		$this->cls('CSS')->rm_cache_folder('ccss');

		$this->cls('Data')->url_file_clean('ccss');

		if (!$silence) {
			$msg = __('Cleaned all Critical CSS files.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}
	}

	/**
	 * Delete all unique css
	 *
	 * @since    2.3
	 * @access   private
	 */
	private function _purge_all_ucss( $silence = false ) {
		do_action('litespeed_purged_all_ucss');

		$this->cls('CSS')->rm_cache_folder('ucss');

		$this->cls('Data')->url_file_clean('ucss');

		if (!$silence) {
			$msg = __('Cleaned all Unique CSS files.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}
	}

	/**
	 * Purge one UCSS by URL
	 *
	 * @since 4.5
	 * @access public
	 */
	public static function purge_ucss( $post_id_or_url ) {
		self::debug('Purge a single UCSS: ' . $post_id_or_url);
		// If is post_id, generate URL
		if (!preg_match('/\D/', $post_id_or_url)) {
			$post_id_or_url = get_permalink($post_id_or_url);
		}
		$post_id_or_url = untrailingslashit($post_id_or_url);

		$existing_url_files = Data::cls()->mark_as_expired($post_id_or_url, true);
		if ($existing_url_files) {
			// Add to UCSS Q
			self::cls('UCSS')->add_to_q($existing_url_files);
		}
	}

	/**
	 * Delete all LQIP images
	 *
	 * @since    3.0
	 * @access   private
	 */
	private function _purge_all_lqip( $silence = false ) {
		do_action('litespeed_purged_all_lqip');

		$this->cls('Placeholder')->rm_cache_folder('lqip');

		if (!$silence) {
			$msg = __('Cleaned all LQIP files.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}
	}

	/**
	 * Delete all avatar images
	 *
	 * @since    3.0
	 * @access   private
	 */
	private function _purge_all_avatar( $silence = false ) {
		do_action('litespeed_purged_all_avatar');

		$this->cls('Avatar')->rm_cache_folder('avatar');

		if (!$silence) {
			$msg = __('Cleaned all Gravatar files.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}
	}

	/**
	 * Delete all localized JS
	 *
	 * @since    3.3
	 * @access   private
	 */
	private function _purge_all_localres( $silence = false ) {
		do_action('litespeed_purged_all_localres');

		$this->_add(Tag::TYPE_LOCALRES);

		if (!$silence) {
			$msg = __('Cleaned all localized resource entries.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}
	}

	/**
	 * Alerts LiteSpeed Web Server to purge pages.
	 *
	 * @since    1.2.2
	 * @access   private
	 */
	private function _purge_all_cssjs( $silence = false ) {
		if (wp_doing_cron() || defined('LITESPEED_DID_send_headers')) {
			self::debug('❌ Bypassed cssjs delete as header sent (lscache purge after this point will fail) or doing cron');
			return;
		}
		$this->_purge_all_lscache($silence); // Purge CSSJS must purge lscache too to avoid 404

		do_action('litespeed_purged_all_cssjs');

		Optimize::update_option(Optimize::ITEM_TIMESTAMP_PURGE_CSS, time());

		$this->_add(Tag::TYPE_MIN);

		$this->cls('CSS')->rm_cache_folder('css');
		$this->cls('CSS')->rm_cache_folder('js');

		$this->cls('Data')->url_file_clean('css');
		$this->cls('Data')->url_file_clean('js');

		// Clear UCSS queue as it used combined CSS to generate
		$this->clear_q('ucss', true);

		if (!$silence) {
			$msg = __('Notified LiteSpeed Web Server to purge CSS/JS entries.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}
	}

	/**
	 * Purge opcode cache
	 *
	 * @since  1.8.2
	 * @since  7.3 added test for opcode cache restriction
	 * @access public
	 */
	public function purge_all_opcache( $silence = false ) {
		if (!Router::opcache_enabled()) {
			self::debug('❌ Failed to reset OPcache due to OPcache not enabled');

			if (!$silence) {
				$msg = __('OPcache is not enabled.', 'litespeed-cache');
				!defined('LITESPEED_PURGE_SILENT') && Admin_Display::error($msg);
			}

			return false;
		}

		if (Router::opcache_restricted(__FILE__)) {
			self::debug('❌ Failed to reset OPcache due to OPcache is restricted. File requesting the clear is not allowed.');

			if (!$silence) {
				$msg = sprintf(__('OPcache is restricted by %s setting.', 'litespeed-cache'), '<code>restrict_api</code>');
				!defined('LITESPEED_PURGE_SILENT') && Admin_Display::error($msg);
			}

			return false;
		}

		// Purge opcode cache
		if (!opcache_reset()) {
			self::debug('❌ Reset OPcache not worked');

			if (!$silence) {
				$msg = __('Reset the OPcache failed.', 'litespeed-cache');
				!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
			}

			return false;
		}

		// Action to run after opcache purge.
		do_action('litespeed_purged_all_opcache');

		self::debug('Reset OPcache');

		if (!$silence) {
			$msg = __('Reset the entire OPcache successfully.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}

		return true;
	}

	/**
	 * Purge object cache
	 *
	 * @since  3.4
	 * @access public
	 */
	public static function purge_all_object( $silence = true ) {
		self::cls()->_purge_all_object($silence);
	}

	/**
	 * Purge object cache
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _purge_all_object( $silence = false ) {
		if (!defined('LSCWP_OBJECT_CACHE')) {
			self::debug('Failed to flush object cache due to object cache not enabled');

			if (!$silence) {
				$msg = __('Object cache is not enabled.', 'litespeed-cache');
				Admin_Display::error($msg);
			}

			return false;
		}

		do_action('litespeed_purged_all_object');

		$this->cls('Object_Cache')->flush();
		self::debug('Flushed object cache');

		if (!$silence) {
			$msg = __('Purge all object caches successfully.', 'litespeed-cache');
			!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		}

		return true;
	}

	/**
	 * Adds new public purge tags to the array of purge tags for the request.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param mixed $tags Tags to add to the list.
	 */
	public static function add( $tags, $purge2 = false ) {
		self::cls()->_add($tags, $purge2);
	}

	/**
	 * Add tags to purge
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _add( $tags, $purge2 = false ) {
		if (!is_array($tags)) {
			$tags = array( $tags );
		}

		$tags = $this->_prepend_bid($tags);

		if (!array_diff($tags, $purge2 ? $this->_pub_purge2 : $this->_pub_purge)) {
			return;
		}

		if ($purge2) {
			$this->_pub_purge2 = array_merge($this->_pub_purge2, $tags);
			$this->_pub_purge2 = array_unique($this->_pub_purge2);
		} else {
			$this->_pub_purge = array_merge($this->_pub_purge, $tags);
			$this->_pub_purge = array_unique($this->_pub_purge);
		}
		self::debug('added ' . implode(',', $tags) . ($purge2 ? ' [Purge2]' : ''), 8);

		// Send purge header immediately
		$curr_built = $this->_build($purge2);
		if (defined('LITESPEED_CLI')) {
			// Can't send, already has output, need to save and wait for next run
			self::update_option($purge2 ? self::DB_QUEUE2 : self::DB_QUEUE, $curr_built);
			self::debug('CLI request, queue stored: ' . $curr_built);
		} else {
			@header($curr_built);
			if (wp_doing_cron() || defined('LITESPEED_DID_send_headers') || apply_filters('litespeed_delay_purge', false)) {
				self::update_option($purge2 ? self::DB_QUEUE2 : self::DB_QUEUE, $curr_built);
				self::debug('Output existed, queue stored: ' . $curr_built);
			}
			self::debug($curr_built);
		}
	}

	/**
	 * Adds new private purge tags to the array of purge tags for the request.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param mixed $tags Tags to add to the list.
	 */
	public static function add_private( $tags ) {
		self::cls()->_add_private($tags);
	}

	/**
	 * Add private ESI tag to purge list
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_esi( $tag ) {
		self::add_private(Tag::TYPE_ESI . $tag);
	}

	/**
	 * Add private all tag to purge list
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_all() {
		self::add_private('*');
	}

	/**
	 * Add tags to private purge
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _add_private( $tags ) {
		if (!is_array($tags)) {
			$tags = array( $tags );
		}

		$tags = $this->_prepend_bid($tags);

		if (!array_diff($tags, $this->_priv_purge)) {
			return;
		}

		self::debug('added [private] ' . implode(',', $tags), 3);

		$this->_priv_purge = array_merge($this->_priv_purge, $tags);
		$this->_priv_purge = array_unique($this->_priv_purge);

		// Send purge header immediately
		@header($this->_build());
	}

	/**
	 * Incorporate blog_id into purge tags for multisite
	 *
	 * @since 4.0
	 * @access private
	 * @param mixed $tags Tags to add to the list.
	 */
	private function _prepend_bid( $tags ) {
		if (in_array('*', $tags)) {
			return array( '*' );
		}

		$curr_bid = is_multisite() ? get_current_blog_id() : '';

		foreach ($tags as $k => $v) {
			$tags[$k] = $curr_bid . '_' . $v;
		}
		return $tags;
	}

	/**
	 * Activate `purge related tags` for Admin QS.
	 *
	 * @since    1.1.3
	 * @access   public
	 * @deprecated @7.0 Drop @v7.5
	 */
	public static function set_purge_related() {
	}

	/**
	 * Activate `purge single url tag` for Admin QS.
	 *
	 * @since    1.1.3
	 * @access   public
	 */
	public static function set_purge_single() {
		self::cls()->_purge_single = true;
		do_action('litespeed_purged_single');
	}

	/**
	 * Purge frontend url
	 *
	 * @since 1.3
	 * @since 2.2 Renamed from `frontend_purge`; Access changed from public
	 * @access private
	 */
	private function _purge_front() {
		if (empty($_SERVER['HTTP_REFERER'])) {
			exit('no referer');
		}

		$this->purge_url($_SERVER['HTTP_REFERER']);

		do_action('litespeed_purged_front', $_SERVER['HTTP_REFERER']);
		wp_redirect($_SERVER['HTTP_REFERER']);
		exit();
	}

	/**
	 * Purge single UCSS
	 *
	 * @since 4.7
	 */
	private function _purge_ucss() {
		if (empty($_SERVER['HTTP_REFERER'])) {
			exit('no referer');
		}

		$url_tag = empty($_GET['url_tag']) ? $_SERVER['HTTP_REFERER'] : $_GET['url_tag'];

		self::debug('Purge ucss [url_tag] ' . $url_tag);

		do_action('litespeed_purge_ucss', $url_tag);
		$this->purge_url($_SERVER['HTTP_REFERER']);

		wp_redirect($_SERVER['HTTP_REFERER']);
		exit();
	}

	/**
	 * Alerts LiteSpeed Web Server to purge the front page.
	 *
	 * @since    1.0.3
	 * @since    2.2    Access changed from public to private, renamed from `_purge_front`
	 * @access   private
	 */
	private function _purge_frontpage() {
		$this->_add(Tag::TYPE_FRONTPAGE);
		if (LITESPEED_SERVER_TYPE !== 'LITESPEED_SERVER_OLS') {
			$this->_add_private(Tag::TYPE_FRONTPAGE);
		}

		$msg = __('Notified LiteSpeed Web Server to purge the front page.', 'litespeed-cache');
		!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		do_action('litespeed_purged_frontpage');
	}

	/**
	 * Alerts LiteSpeed Web Server to purge pages.
	 *
	 * @since    1.0.15
	 * @access   private
	 */
	private function _purge_pages() {
		$this->_add(Tag::TYPE_PAGES);

		$msg = __('Notified LiteSpeed Web Server to purge all pages.', 'litespeed-cache');
		!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
		do_action('litespeed_purged_pages');
	}

	/**
	 * Alerts LiteSpeed Web Server to purge error pages.
	 *
	 * @since    1.0.14
	 * @access   private
	 */
	private function _purge_error( $type = false ) {
		$this->_add(Tag::TYPE_HTTP);

		if (!$type || !in_array($type, array( '403', '404', '500' ))) {
			return;
		}

		$this->_add(Tag::TYPE_HTTP . $type);

		$msg = __('Notified LiteSpeed Web Server to purge error pages.', 'litespeed-cache');
		!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success($msg);
	}

	/**
	 * Callback to add purge tags if admin selects to purge selected category pages.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_cat( $value ) {
		$val = trim($value);
		if (empty($val)) {
			return;
		}
		if (preg_match('/^[a-zA-Z0-9-]+$/', $val) == 0) {
			self::debug("$val cat invalid");
			return;
		}
		$cat = get_category_by_slug($val);
		if ($cat == false) {
			self::debug("$val cat not existed/published");
			return;
		}

		self::add(Tag::TYPE_ARCHIVE_TERM . $cat->term_id);

		!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success(sprintf(__('Purge category %s', 'litespeed-cache'), $val));

		// Action to run after category purge.
		do_action('litespeed_purged_cat', $value);
	}

	/**
	 * Callback to add purge tags if admin selects to purge selected tag pages.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_tag( $val ) {
		$val = trim($val);
		if (empty($val)) {
			return;
		}
		if (preg_match('/^[a-zA-Z0-9-]+$/', $val) == 0) {
			self::debug("$val tag invalid");
			return;
		}
		$term = get_term_by('slug', $val, 'post_tag');
		if ($term === false) {
			self::debug("$val tag not exist");
			return;
		}

		self::add(Tag::TYPE_ARCHIVE_TERM . $term->term_id);

		!defined('LITESPEED_PURGE_SILENT') && Admin_Display::success(sprintf(__('Purge tag %s', 'litespeed-cache'), $val));

		// Action to run after tag purge.
		do_action('litespeed_purged_tag', $val);
	}

	/**
	 * Callback to add purge tags if admin selects to purge selected urls.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_url( $url, $purge2 = false, $quite = false ) {
		$val = trim($url);
		if (empty($val)) {
			return;
		}

		if (strpos($val, '<') !== false) {
			self::debug("$val url contains <");
			return;
		}

		$val = Utility::make_relative($val);

		$hash = Tag::get_uri_tag($val);

		if ($hash === false) {
			self::debug("$val url invalid");
			return;
		}

		self::add($hash, $purge2);

		!$quite && !defined('LITESPEED_PURGE_SILENT') && Admin_Display::success(sprintf(__('Purge url %s', 'litespeed-cache'), $val));

		// Action to run after url purge.
		do_action('litespeed_purged_link', $url);
	}

	/**
	 * Purge a list of pages when selected by admin. This method will look at the post arguments to determine how and what to purge.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_list() {
		if (!isset($_REQUEST[Admin_Display::PURGEBYOPT_SELECT]) || !isset($_REQUEST[Admin_Display::PURGEBYOPT_LIST])) {
			return;
		}
		$sel      = $_REQUEST[Admin_Display::PURGEBYOPT_SELECT];
		$list_buf = $_REQUEST[Admin_Display::PURGEBYOPT_LIST];
		if (empty($list_buf)) {
			return;
		}
		$list_buf = str_replace(',', "\n", $list_buf); // for cli
		$list     = explode("\n", $list_buf);
		switch ($sel) {
			case Admin_Display::PURGEBY_CAT:
            $cb = 'purge_cat';
				break;
			case Admin_Display::PURGEBY_PID:
            $cb = 'purge_post';
				break;
			case Admin_Display::PURGEBY_TAG:
            $cb = 'purge_tag';
				break;
			case Admin_Display::PURGEBY_URL:
            $cb = 'purge_url';
				break;

			default:
				return;
		}
		array_map(array( $this, $cb ), $list);

		// for redirection
		$_GET[Admin_Display::PURGEBYOPT_SELECT] = $sel;
	}

	/**
	 * Purge ESI
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge_esi( $tag ) {
		self::add(Tag::TYPE_ESI . $tag);
		do_action('litespeed_purged_esi', $tag);
	}

	/**
	 * Purge a certain post type
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge_posttype( $post_type ) {
		self::add(Tag::TYPE_ARCHIVE_POSTTYPE . $post_type);
		self::add($post_type);

		do_action('litespeed_purged_posttype', $post_type);
	}

	/**
	 * Purge all related tags to a post.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function purge_post( $pid ) {
		$pid = intval($pid);
		// ignore the status we don't care
		if (!$pid || !in_array(get_post_status($pid), array( 'publish', 'trash', 'private', 'draft' ))) {
			return;
		}

		$purge_tags = $this->_get_purge_tags_by_post($pid);
		if (!$purge_tags) {
			return;
		}

		self::add($purge_tags);
		if ($this->conf(self::O_CACHE_REST)) {
			self::add(Tag::TYPE_REST);
		}

		// $this->cls( 'Control' )->set_stale();
		do_action('litespeed_purged_post', $pid);
	}

	/**
	 * Hooked to the load-widgets.php action.
	 * Attempts to purge a single widget from cache.
	 * If no widget id is passed in, the method will attempt to find the widget id.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function purge_widget( $widget_id = null ) {
		if (is_null($widget_id)) {
			$widget_id = $_POST['widget-id'];
			if (is_null($widget_id)) {
				return;
			}
		}

		self::add(Tag::TYPE_WIDGET . $widget_id);
		self::add_private(Tag::TYPE_WIDGET . $widget_id);

		do_action('litespeed_purged_widget', $widget_id);
	}

	/**
	 * Hooked to the wp_update_comment_count action.
	 * Purges the comment widget when the count is updated.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global type $wp_widget_factory
	 */
	public static function purge_comment_widget() {
		global $wp_widget_factory;
		if (!isset($wp_widget_factory->widgets['WP_Widget_Recent_Comments'])) {
			return;
		}

		$recent_comments = $wp_widget_factory->widgets['WP_Widget_Recent_Comments'];
		if (!is_null($recent_comments)) {
			self::add(Tag::TYPE_WIDGET . $recent_comments->id);
			self::add_private(Tag::TYPE_WIDGET . $recent_comments->id);

			do_action('litespeed_purged_comment_widget', $recent_comments->id);
		}
	}

	/**
	 * Purges feeds on comment count update.
	 *
	 * @since 1.0.9
	 * @access public
	 */
	public function purge_feeds() {
		if ($this->conf(self::O_CACHE_TTL_FEED) > 0) {
			self::add(Tag::TYPE_FEED);
		}
		do_action('litespeed_purged_feeds');
	}

	/**
	 * Purges all private cache entries when the user logs out.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function purge_on_logout() {
		self::add_private_all();
		do_action('litespeed_purged_on_logout');
	}

	/**
	 * Generate all purge tags before output
	 *
	 * @access private
	 * @since 1.1.3
	 */
	private function _finalize() {
		// Make sure header output only run once
		if (!defined('LITESPEED_DID_' . __FUNCTION__)) {
			define('LITESPEED_DID_' . __FUNCTION__, true);
		} else {
			return;
		}

		do_action('litespeed_purge_finalize');

		// Append unique uri purge tags if Admin QS is `PURGESINGLE` or `PURGE`
		if ($this->_purge_single) {
			$tags             = array( Tag::build_uri_tag() );
			$this->_pub_purge = array_merge($this->_pub_purge, $this->_prepend_bid($tags));
		}

		if (!empty($this->_pub_purge)) {
			$this->_pub_purge = array_unique($this->_pub_purge);
		}

		if (!empty($this->_priv_purge)) {
			$this->_priv_purge = array_unique($this->_priv_purge);
		}
	}

	/**
	 * Gathers all the purge headers.
	 *
	 * This will collect all site wide purge tags as well as third party plugin defined purge tags.
	 *
	 * @since 1.1.0
	 * @access public
	 * @return string the built purge header
	 */
	public static function output() {
		$instance = self::cls();

		$instance->_finalize();

		return $instance->_build();
	}

	/**
	 * Build the current purge headers.
	 *
	 * @since 1.1.5
	 * @access private
	 * @return string the built purge header
	 */
	private function _build( $purge2 = false ) {
		if ($purge2) {
			if (empty($this->_pub_purge2)) {
				return;
			}
		} elseif (empty($this->_pub_purge) && empty($this->_priv_purge)) {
			return;
		}

		$purge_header = '';

		// Handle purge2 @since 4.4.1
		if ($purge2) {
			$public_tags = $this->_append_prefix($this->_pub_purge2);
			if (empty($public_tags)) {
				return;
			}
			$purge_header = self::X_HEADER2 . ': public,';
			if (Control::is_stale()) {
				$purge_header .= 'stale,';
			}
			$purge_header .= implode(',', $public_tags);
			return $purge_header;
		}

		$private_prefix = self::X_HEADER . ': private,';

		if (!empty($this->_pub_purge)) {
			$public_tags = $this->_append_prefix($this->_pub_purge);
			if (empty($public_tags)) {
				// If this ends up empty, private will also end up empty
				return;
			}
			$purge_header = self::X_HEADER . ': public,';
			if (Control::is_stale()) {
				$purge_header .= 'stale,';
			}
			$purge_header  .= implode(',', $public_tags);
			$private_prefix = ';private,';
		}

		// Handle priv purge tags
		if (!empty($this->_priv_purge)) {
			$private_tags  = $this->_append_prefix($this->_priv_purge, true);
			$purge_header .= $private_prefix . implode(',', $private_tags);
		}

		return $purge_header;
	}

	/**
	 * Append prefix to an array of purge headers
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function _append_prefix( $purge_tags, $is_private = false ) {
		$curr_bid = is_multisite() ? get_current_blog_id() : '';

		$purge_tags = apply_filters('litespeed_purge_tags', $purge_tags, $is_private);
		if (!in_array('*', $purge_tags)) {
			$tags = array();
			foreach ($purge_tags as $val) {
				$tags[] = LSWCP_TAG_PREFIX . $val;
			}
			return $tags;
		}

		// Purge All need to check if need to reset crawler or not
		if (!$is_private && $this->conf(self::O_CRAWLER)) {
			Crawler::cls()->reset_pos();
		}

		if ((defined('LSWCP_EMPTYCACHE') && LSWCP_EMPTYCACHE) || $is_private) {
			return array( '*' );
		}

		if (is_multisite() && !$this->_is_subsite_purge()) {
			$blogs = Activation::get_network_ids();
			if (empty($blogs)) {
				self::debug('build_purge_headers: blog list is empty');
				return '';
			}
			$tags = array();
			foreach ($blogs as $blog_id) {
				$tags[] = LSWCP_TAG_PREFIX . $blog_id . '_';
			}
			return $tags;
		} else {
			return array( LSWCP_TAG_PREFIX . $curr_bid . '_' );
		}
	}

	/**
	 * Check if this purge belongs to a subsite purge
	 *
	 * @since  4.0
	 */
	private function _is_subsite_purge() {
		if (!is_multisite()) {
			return false;
		}

		if (is_network_admin()) {
			return false;
		}

		if (defined('LSWCP_EMPTYCACHE') && LSWCP_EMPTYCACHE) {
			return false;
		}

		// Would only use multisite and network admin except is_network_admin is false for ajax calls, which is used by WordPress updates v4.6+
		if (Router::is_ajax() && (check_ajax_referer('updates', false, false) || check_ajax_referer('litespeed-purgeall-network', false, false))) {
			return false;
		}

		return true;
	}

	/**
	 * Gets all the purge tags correlated with the post about to be purged.
	 *
	 * If the purge all pages configuration is set, all pages will be purged.
	 *
	 * This includes site wide post types (e.g. front page) as well as any third party plugin specific post tags.
	 *
	 * @since 1.0.0
	 * @access private
	 */
	private function _get_purge_tags_by_post( $post_id ) {
		// If this is a valid post we want to purge the post, the home page and any associated tags & cats
		// If not, purge everything on the site.

		$purge_tags = array();

		if ($this->conf(self::O_PURGE_POST_ALL)) {
			// ignore the rest if purge all
			return array( '*' );
		}

		// now do API hook action for post purge
		do_action('litespeed_api_purge_post', $post_id);

		// post
		$purge_tags[] = Tag::TYPE_POST . $post_id;
		$post_status  = get_post_status($post_id);
		if (function_exists('is_post_status_viewable')) {
			$viewable = is_post_status_viewable($post_status);
			if ($viewable) {
				$purge_tags[] = Tag::get_uri_tag(wp_make_link_relative(get_permalink($post_id)));
			}
		}

		// for archive of categories|tags|custom tax
		global $post;
		$original_post = $post;
		$post          = get_post($post_id);
		$post_type     = $post->post_type;

		global $wp_widget_factory;
		// recent_posts
		$recent_posts = isset($wp_widget_factory->widgets['WP_Widget_Recent_Posts']) ? $wp_widget_factory->widgets['WP_Widget_Recent_Posts'] : null;
		if (!is_null($recent_posts)) {
			$purge_tags[] = Tag::TYPE_WIDGET . $recent_posts->id;
		}

		// get adjacent posts id as related post tag
		if ($post_type == 'post') {
			$prev_post = get_previous_post();
			$next_post = get_next_post();
			if (!empty($prev_post->ID)) {
				$purge_tags[] = Tag::TYPE_POST . $prev_post->ID;
				self::debug('--------purge_tags prev is: ' . $prev_post->ID);
			}
			if (!empty($next_post->ID)) {
				$purge_tags[] = Tag::TYPE_POST . $next_post->ID;
				self::debug('--------purge_tags next is: ' . $next_post->ID);
			}
		}

		if ($this->conf(self::O_PURGE_POST_TERM)) {
			$taxonomies = get_object_taxonomies($post_type);
			// self::debug('purge by post, check tax = ' . var_export($taxonomies, true));
			foreach ($taxonomies as $tax) {
				$terms = get_the_terms($post_id, $tax);
				if (!empty($terms)) {
					foreach ($terms as $term) {
						$purge_tags[] = Tag::TYPE_ARCHIVE_TERM . $term->term_id;
					}
				}
			}
		}

		if ($this->conf(self::O_CACHE_TTL_FEED)) {
			$purge_tags[] = Tag::TYPE_FEED;
		}

		// author, for author posts and feed list
		if ($this->conf(self::O_PURGE_POST_AUTHOR)) {
			$purge_tags[] = Tag::TYPE_AUTHOR . get_post_field('post_author', $post_id);
		}

		// archive and feed of post type
		// todo: check if type contains space
		if ($this->conf(self::O_PURGE_POST_POSTTYPE)) {
			if (get_post_type_archive_link($post_type)) {
				$purge_tags[] = Tag::TYPE_ARCHIVE_POSTTYPE . $post_type;
				$purge_tags[] = $post_type;
			}
		}

		if ($this->conf(self::O_PURGE_POST_FRONTPAGE)) {
			$purge_tags[] = Tag::TYPE_FRONTPAGE;
		}

		if ($this->conf(self::O_PURGE_POST_HOMEPAGE)) {
			$purge_tags[] = Tag::TYPE_HOME;
		}

		if ($this->conf(self::O_PURGE_POST_PAGES)) {
			$purge_tags[] = Tag::TYPE_PAGES;
		}

		if ($this->conf(self::O_PURGE_POST_PAGES_WITH_RECENT_POSTS)) {
			$purge_tags[] = Tag::TYPE_PAGES_WITH_RECENT_POSTS;
		}

		// if configured to have archived by date
		$date = $post->post_date;
		$date = strtotime($date);

		if ($this->conf(self::O_PURGE_POST_DATE)) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Ymd', $date);
		}

		if ($this->conf(self::O_PURGE_POST_MONTH)) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Ym', $date);
		}

		if ($this->conf(self::O_PURGE_POST_YEAR)) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Y', $date);
		}

		// Set back to original post as $post_id might affecting the global $post value
		$post = $original_post;

		return array_unique($purge_tags);
	}

	/**
	 * The dummy filter for purge all
	 *
	 * @since 1.1.5
	 * @access public
	 * @param string $val The filter value
	 * @return string     The filter value
	 */
	public static function filter_with_purge_all( $val ) {
		self::purge_all();
		return $val;
	}
}
<?php
/**
 * LiteSpeed Cache Mobile View Settings
 *
 * Displays the mobile view cache settings for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<tr>
	<th scope="row">
		<?php $cid = Base::O_CACHE_MOBILE; ?>
		<?php $this->title( $cid ); ?>
	</th>
	<td>
		<?php $this->build_switch( $cid ); ?>
		<div class="litespeed-desc">
			<?php esc_html_e( 'Serve a separate cache copy for mobile visitors.', 'litespeed-cache' ); ?>
			<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#cache-mobile', esc_html__( 'Learn more about when this is needed', 'litespeed-cache' ) ); ?>
			<br /><?php Doc::notice_htaccess(); ?>
			<br /><?php Doc::crawler_affected(); ?>
		</div>
	</td>
</tr>

<tr>
	<th scope="row" class="litespeed-padding-left">
		<?php $cid = Base::O_CACHE_MOBILE_RULES; ?>
		<?php $this->title( $cid ); ?>
	</th>
	<td>
		<?php
		if ( $this->conf( Base::O_CACHE_MOBILE ) ) {
			if ( defined( 'LITESPEED_ON' ) ) {
				try {
					$mobile_agents = Htaccess::cls()->current_mobile_agents();
					if ( Utility::arr2regex( $this->conf( $cid ), true ) !== $mobile_agents ) {
						?>
						<div class="litespeed-callout notice notice-error inline">
							<p>
								<?php esc_html_e( 'Htaccess did not match configuration option.', 'litespeed-cache' ); ?>
								<?php
								printf(
									/* translators: %s: Current mobile agents in htaccess */
									esc_html__( 'Htaccess rule is: %s', 'litespeed-cache' ),
									'<code>' . esc_html( $mobile_agents ) . '</code>'
								);
								?>
							</p>
						</div>
						<?php
					}
				} catch ( \Exception $e ) {
					?>
					<div class="litespeed-callout notice notice-error inline">
						<p><?php echo wp_kses_post( $e->getMessage() ); ?></p>
					</div>
					<?php
				}
			}
		}
		?>

		<div class="litespeed-textarea-recommended">
			<div>
				<?php $this->build_textarea( $cid, 40 ); ?>
			</div>
			<div>
				<?php $this->recommended( $cid ); ?>
			</div>
		</div>

		<div class="litespeed-desc">
			<?php Doc::one_per_line(); ?>
			<?php $this->_validate_syntax( $cid ); ?>

			<?php if ( $this->conf( Base::O_CACHE_MOBILE ) && ! $this->conf( $cid ) ) : ?>
				<span class="litespeed-warning">
					❌
					<?php
					printf(
						/* translators: %1$s: Cache Mobile label, %2$s: ON status, %3$s: List of Mobile User Agents label */
						esc_html__( 'If %1$s is %2$s, then %3$s must be populated!', 'litespeed-cache' ),
						'<code>' . esc_html__( 'Cache Mobile', 'litespeed-cache' ) . '</code>',
						'<code>' . esc_html__( 'ON', 'litespeed-cache' ) . '</code>',
						'<code>' . esc_html__( 'List of Mobile User Agents', 'litespeed-cache' ) . '</code>'
					);
					?>
				</span>
			<?php endif; ?>
		</div>
	</td>
</tr><?php
/**
 * LiteSpeed Cache Browser Cache Setting
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.browser.tpl.php';
<?php
/**
 * LiteSpeed Cache Exclude Cookies Setting
 *
 * Displays the exclude cookies setting for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<tr>
	<th scope="row">
		<?php $option_id = Base::O_CACHE_EXC_COOKIES; ?>
		<?php $this->title( $option_id ); ?>
	</th>
	<td>
		<?php $this->build_textarea( $option_id ); ?>
		<div class="litespeed-desc">
			<?php
			printf(
				/* translators: %s: "cookies" */
				esc_html__( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ),
				esc_html__( 'cookies', 'litespeed-cache' )
			);
			?>
			<?php Doc::one_per_line(); ?>
			<?php $this->_validate_syntax( $option_id ); ?>
			<br /><?php Doc::notice_htaccess(); ?>
		</div>
	</td>
</tr><?php
/**
 * LiteSpeed Cache Network Exclude Settings
 *
 * Displays the network exclude settings section for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Exclude Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<?php
		// Cookie
		require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_cookies.tpl.php';

		// User Agent
		require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_useragent.tpl.php';
		?>
	</tbody>
</table><?php
/**
 * LiteSpeed Cache Purge on Upgrade Setting
 *
 * Displays the purge on upgrade setting for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<!-- build_setting_purge_on_upgrade -->
<tr>
	<th scope="row">
		<?php $option_id = Base::O_PURGE_ON_UPGRADE; ?>
		<?php $this->title( $option_id ); ?>
	</th>
	<td>
		<?php $this->build_switch( $option_id ); ?>
		<div class="litespeed-desc">
			<?php esc_html_e( 'When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.', 'litespeed-cache' ); ?>
		</div>
	</td>
</tr><?php
/**
 * LiteSpeed Cache Setting Tip
 *
 * Displays a notice to inform users about additional LiteSpeed Cache settings.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

global $pagenow;
if ( 'options-general.php' !== $pagenow ) {
	return;
}
?>

<div class="litespeed-callout notice notice-success inline">
	<h4><?php esc_html_e( 'NOTE', 'litespeed-cache' ); ?></h4>
	<p>
		<?php
		printf(
			/* translators: %s: LiteSpeed Cache menu label */
			esc_html__( 'More settings available under %s menu', 'litespeed-cache' ),
			'<code>' . esc_html__( 'LiteSpeed Cache', 'litespeed-cache' ) . '</code>'
		);
		?>
	</p>
</div><?php
/**
 * LiteSpeed Cache Network Cache Settings
 *
 * Displays the network cache control settings section for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Cache Control Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th><?php esc_html_e( 'Network Enable Cache', 'litespeed-cache' ); ?></th>
			<td>
				<?php $this->build_switch( Base::O_CACHE ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Enabling LiteSpeed Cache for WordPress here enables the cache for the network.', 'litespeed-cache' ); ?><br />
					<?php esc_html_e( 'It is STRONGLY recommended that the compatibility with other plugins on a single/few sites is tested first.', 'litespeed-cache' ); ?><br />
					<?php esc_html_e( 'This is to ensure compatibility prior to enabling the cache for all sites.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<?php
		require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php';
		require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php';
		?>
	</tbody>
</table><?php
/**
 * LiteSpeed Cache Browser Cache Settings
 *
 * Displays the browser cache settings section for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Browser Cache Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#browser-tab' ); ?>
</h3>

<?php if ( 'LITESPEED_SERVER_OLS' === LITESPEED_SERVER_TYPE ) : ?>
	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php esc_html_e( 'NOTICE:', 'litespeed-cache' ); ?></h4>
		<p>
			<?php esc_html_e( 'OpenLiteSpeed users please check this', 'litespeed-cache' ); ?>:
			<?php Doc::learn_more( 'https://openlitespeed.org/kb/how-to-set-up-custom-headers/', esc_html__( 'Setting Up Custom Headers', 'litespeed-cache' ) ); ?>
		</p>
	</div>
<?php endif; ?>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th scope="row">
				<?php $option_id = Base::O_CACHE_BROWSER; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.", 'litespeed-cache' ); ?><br>
					<?php Doc::notice_htaccess(); ?><br>
					<?php
					printf(
						/* translators: %s: Link tags */
						esc_html__( 'You can turn on browser caching in server admin too. %sLearn more about LiteSpeed browser cache settings%s.', 'litespeed-cache' ),
						'<a href="https://docs.litespeedtech.com/lscache/lscwp/cache/#how-to-set-it-up" target="_blank" rel="noopener">',
						'</a>'
					);
					?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_CACHE_TTL_BROWSER; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id ); ?> <?php $this->readable_seconds(); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'The amount of time, in seconds, that files will be stored in browser cache before expiring.', 'litespeed-cache' ); ?>
					<?php $this->recommended( $option_id ); ?>
					<?php $this->_validate_ttl( $option_id, 30 ); ?>
				</div>
			</td>
		</tr>
	</tbody>
</table>
<?php
/**
 * LiteSpeed Cache Network Purge Settings
 *
 * Displays the network purge settings section for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Purge Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<?php require LSCWP_DIR . 'tpl/cache/settings_inc.purge_on_upgrade.tpl.php'; ?>
	</tbody>
</table><?php
/**
 * LiteSpeed Cache Object Cache Settings
 *
 * Displays the object cache settings section for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$lang_enabled  = '<span class="litespeed-success">' . esc_html__( 'Enabled', 'litespeed-cache' ) . '</span>';
$lang_disabled = '<span class="litespeed-warning">' . esc_html__( 'Disabled', 'litespeed-cache' ) . '</span>';

$mem_enabled   = class_exists( 'Memcached' ) ? $lang_enabled : $lang_disabled;
$redis_enabled = class_exists( 'Redis' ) ? $lang_enabled : $lang_disabled;

$mem_conn = $this->cls( 'Object_Cache' )->test_connection();
if ( null === $mem_conn ) {
	$mem_conn_desc = '<span class="litespeed-desc">' . esc_html__( 'Not Available', 'litespeed-cache' ) . '</span>';
} elseif ( $mem_conn ) {
	$mem_conn_desc = '<span class="litespeed-success">' . esc_html__( 'Passed', 'litespeed-cache' ) . '</span>';
} else {
	$severity      = $this->conf( Base::O_OBJECT, true ) ? 'danger' : 'warning';
	$mem_conn_desc = '<span class="litespeed-' . esc_attr( $severity ) . '">' . esc_html__( 'Failed', 'litespeed-cache' ) . '</span>';
}
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Object Cache Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#object-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Use external object cache functionality.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#memcached-lsmcd-and-redis-object-cache-support-in-lscwp' ); ?>
				</div>
				<div class="litespeed-block">
					<div class="litespeed-col-auto">
						<h4><?php esc_html_e( 'Status', 'litespeed-cache' ); ?></h4>
					</div>
					<div class="litespeed-col-auto">
						<?php
						printf(
							/* translators: %s: Object cache name */
							esc_html__( '%s Extension', 'litespeed-cache' ),
							'Memcached'
						);
						?>
						: <?php echo wp_kses_post( $mem_enabled ); ?><br>
						<?php
						printf(
							/* translators: %s: Object cache name */
							esc_html__( '%s Extension', 'litespeed-cache' ),
							'Redis'
						);
						?>
						: <?php echo wp_kses_post( $redis_enabled ); ?><br>
						<?php esc_html_e( 'Connection Test', 'litespeed-cache' ); ?>: <?php echo wp_kses_post( $mem_conn_desc ); ?>
						<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#how-to-debug' ); ?>
					</div>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_KIND; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id, array( 'Memcached', 'Redis' ) ); ?>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_HOST; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id ); ?>
				<div class="litespeed-desc">
					<?php
					printf(
						/* translators: %s: Object cache name */
						esc_html__( 'Your %s Hostname or IP address.', 'litespeed-cache' ),
						'Memcached/<a href="https://docs.litespeedtech.com/products/lsmcd/" target="_blank" rel="noopener">LSMCD</a>/Redis'
					);
					?>
					<br>
					<?php
					printf(
						/* translators: %1$s: Socket name, %2$s: Host field title, %3$s: Example socket path */
						esc_html__( 'If you are using a %1$s socket, %2$s should be set to %3$s', 'litespeed-cache' ),
						'UNIX',
						esc_html( Lang::title( $option_id ) ),
						'<code>/path/to/memcached.sock</code>'
					);
					?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_PORT; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short2' ); ?>
				<div class="litespeed-desc">
					<?php
					printf(
						/* translators: %1$s: Object cache name, %2$s: Port number */
						esc_html__( 'Default port for %1$s is %2$s.', 'litespeed-cache' ),
						'Memcached',
						'<code>11211</code>'
					);
					?>
					<br>
					<?php
					printf(
						/* translators: %1$s: Object cache name, %2$s: Port number */
						esc_html__( 'Default port for %1$s is %2$s.', 'litespeed-cache' ),
						'Redis',
						'<code>6379</code>'
					);
					?>
					<br>
					<?php
					printf(
						/* translators: %1$s: Socket name, %2$s: Port field title, %3$s: Port value */
						esc_html__( 'If you are using a %1$s socket, %2$s should be set to %3$s', 'litespeed-cache' ),
						'UNIX',
						esc_html( Lang::title( $option_id ) ),
						'<code>0</code>'
					);
					?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_LIFE; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short2' ); ?> <?php esc_html_e( 'seconds', 'litespeed-cache' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Default TTL for cached objects.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_USER; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id ); ?>
				<div class="litespeed-desc">
					<?php
					printf(
						/* translators: %s: SASL */
						esc_html__( 'Only available when %s is installed.', 'litespeed-cache' ),
						'SASL'
					);
					?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_PSWD; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify the password used when connecting.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_DB_ID; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Database to be used', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_GLOBAL_GROUPS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id, 30 ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Groups cached at the network level.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_NON_PERSISTENT_GROUPS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id, 30 ); ?>
				<div class="litespeed-desc">
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_PERSISTENT; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Use keep-alive connections to speed up cache operations.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_ADMIN; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Improve wp-admin speed through caching. (May encounter expired data)', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_OBJECT_TRANSIENTS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php
					printf(
						/* translators: %1$s: Object Cache Admin title, %2$s: OFF status */
						esc_html__( 'Save transients in database when %1$s is %2$s.', 'litespeed-cache' ),
						'<code>' . esc_html( Lang::title( Base::O_OBJECT_ADMIN ) ) . '</code>',
						'<code>' . esc_html__( 'OFF', 'litespeed-cache' ) . '</code>'
					);
					?>
					<br>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#store-transients' ); ?>
				</div>
			</td>
		</tr>
	</tbody>
</table>
<?php
/**
 * LiteSpeed Cache Network Object Settings
 *
 * Includes the network object cache settings template for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.object.tpl.php';
<?php
/**
 * LiteSpeed Cache TTL Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo esc_html__( 'TTL', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#ttl-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $option_id = Base::O_CACHE_TTL_PUB; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Specify how long, in seconds, public pages are cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $option_id ); ?>
				<?php $this->_validate_ttl( $option_id, 30 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_CACHE_TTL_PRIV; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Specify how long, in seconds, private pages are cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $option_id ); ?>
				<?php $this->_validate_ttl( $option_id, 60, 3600 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_CACHE_TTL_FRONTPAGE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Specify how long, in seconds, the front page is cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $option_id ); ?>
				<?php $this->_validate_ttl( $option_id, 30 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_CACHE_TTL_FEED; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Specify how long, in seconds, feeds are cached.', 'litespeed-cache' ); ?>
				<?php echo esc_html__( 'If this is set to a number less than 30, feeds will not be cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $option_id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_CACHE_TTL_REST; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Specify how long, in seconds, REST calls are cached.', 'litespeed-cache' ); ?>
				<?php echo esc_html__( 'If this is set to a number less than 30, feeds will not be cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $option_id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_CACHE_TTL_STATUS; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $option_id, 30 ); ?>
				</div>
				<div>
					<?php $this->recommended( $option_id ); ?>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Specify an HTTP status code and the number of seconds to cache that page, separated by a space.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

</tbody></table>
<?php
/**
 * LiteSpeed Cache Network Cache Settings
 *
 * Displays the network cache settings page with tabbed navigation for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
	'cache'    => __( 'Cache', 'litespeed-cache' ),
	'purge'    => __( 'Purge', 'litespeed-cache' ),
	'excludes' => __( 'Excludes', 'litespeed-cache' ),
	'object'   => __( 'Object', 'litespeed-cache' ),
	'browser'  => __( 'Browser', 'litespeed-cache' ),
	'advanced' => __( 'Advanced', 'litespeed-cache' ),
);
?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php esc_html_e( 'LiteSpeed Cache Network Cache Settings', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		<?php echo esc_html( 'v' . Core::VER ); ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
		<?php GUI::display_tab_list( $menu_list ); ?>
	</h2>
	<div class="litespeed-body">
		<?php $this->cache_disabled_warning(); ?>

		<?php
		$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );

		foreach ( $menu_list as $k => $val ) {
			$k_escaped = esc_attr( $k );
			?>
			<div data-litespeed-layout="<?php echo esc_html( $k_escaped ); ?>">
			<?php
			require LSCWP_DIR . "tpl/cache/network_settings-$k.tpl.php";
			?>
			</div>
			<?php
		}

		$this->form_end( true );
		?>
	</div>
</div><?php
/**
 * LiteSpeed Cache Exclude User Agents Setting
 *
 * Displays the exclude user agents setting for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<tr>
	<th scope="row">
		<?php $option_id = Base::O_CACHE_EXC_USERAGENTS; ?>
		<?php $this->title( $option_id ); ?>
	</th>
	<td>
		<?php $this->build_textarea( $option_id ); ?>
		<div class="litespeed-desc">
			<?php
			printf(
				/* translators: %s: "user agents" */
				esc_html__( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ),
				esc_html__( 'user agents', 'litespeed-cache' )
			);
			?>
			<?php Doc::one_per_line(); ?>
			<?php $this->_validate_syntax( $option_id ); ?>
			<br /><?php Doc::notice_htaccess(); ?>
		</div>
	</td>
</tr><?php
/**
 * Advanced Settings Template
 *
 * @package     LiteSpeed
 * @since       1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Advanced Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( esc_url( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#advanced-tab' ) ); ?>
</h3>

<div class="litespeed-callout notice notice-warning inline">
	<h4><?php esc_html_e( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php esc_html_e( 'These settings are meant for ADVANCED USERS ONLY.', 'litespeed-cache' ); ?></p>
</div>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th scope="row">
				<?php $option_id = Base::O_CACHE_AJAX_TTL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<div class="litespeed-textarea-recommended">
					<div>
						<?php $this->build_textarea( $option_id, 60 ); ?>
					</div>
				</div>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify an AJAX action in POST/GET and the number of seconds to cache that request, separated by a space.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<?php if ( ! $this->_is_multisite ) : ?>
			<?php require LSCWP_DIR . 'tpl/cache/settings_inc.login_cookie.tpl.php'; ?>
		<?php endif; ?>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_UTIL_NO_HTTPS_VARY; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( esc_url( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#improve-httphttps-compatibility' ) ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th scope="row">
				<?php $option_id = Base::O_UTIL_INSTANT_CLICK; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( esc_url( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#instant-click' ) ); ?>
					<br />
					<span class="litespeed-danger">
					⚠️
						<?php esc_html_e( 'This will generate extra requests to the server, which will increase server load.', 'litespeed-cache' ); ?>
					</span>
				</div>
			</td>
		</tr>
	</tbody>
</table><?php
/**
 * LiteSpeed Cache ESI Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo esc_html__( 'ESI Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#esi-tab' ); ?>
</h3>

<div class="litespeed-description">
	<p><?php echo esc_html__( 'With ESI (Edge Side Includes), pages may be served from cache for logged-in users.', 'litespeed-cache' ); ?></p>
	<p><?php echo esc_html__( 'ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.', 'litespeed-cache' ); ?>
		<?php Doc::learn_more( 'https://blog.litespeedtech.com/2017/08/30/wpw-private-cache-vs-public-cache/', esc_html__( 'WpW: Private Cache vs. Public Cache', 'litespeed-cache' ) ); ?>
	</p>
	<p>
		💡:
		<?php echo esc_html__( 'You can turn shortcodes into ESI blocks.', 'litespeed-cache' ); ?>
		<?php
		printf(
			esc_html__( 'Replace %1$s with %2$s.', 'litespeed-cache' ),
			'<code>[shortcodeA att1="val1" att2="val2"]</code>',
			'<code>[esi shortcodeA att1="val1" att2="val2"]</code>'
		);
		?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#turning-wordpress-shortcodes-into-esi-blocks' ); ?>
	</p>
	<p>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/api/#generate-esi-block-url', esc_html__( 'ESI sample for developers', 'litespeed-cache' ) ); ?>
	</p>
</div>

<div class="litespeed-relative">

<?php if ( ! LSWCP_ESI_SUPPORT && ! $this->conf( Base::O_CDN_QUIC ) ) : ?>
	<div class="litespeed-callout-danger">
		<h4><?php echo esc_html__( 'WARNING', 'litespeed-cache' ); ?></h4>
		<h4><?php echo esc_html__( 'These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.', 'litespeed-cache' ); ?></h4>
	</div>
<?php endif; ?>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $option_id = Base::O_ESI; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_ESI_CACHE_ADMBAR; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Cache the built-in Admin Bar ESI block.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_ESI_CACHE_COMMFORM; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'Cache the built-in Comment Form ESI block.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_ESI_NONCE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<div class="litespeed-row-flex">
				<div>
					<?php $this->build_textarea( $option_id ); ?>
				</div>
				<div class="litespeed-width-3-10">
					<p class="litespeed-desc">
						<?php echo esc_html__( 'The list will be merged with the predefined nonces in your local data file.', 'litespeed-cache' ); ?>
						<?php echo esc_html__( 'The latest data file is', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/master/data/esi.nonces.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/master/data/esi.nonces.txt</a>
						<br><span class="litespeed-success">
							<?php echo esc_html__( 'API', 'litespeed-cache' ); ?>:
							<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_esi_nonces</code>' ); ?>
						</span>
					</p>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'The above nonces will be converted to ESI automatically.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
				<br><?php echo esc_html__( 'An optional second parameter may be used to specify cache control. Use a space to separate', 'litespeed-cache' ); ?>: <code>my_nonce_action private</code>
			</div>
			<div class="litespeed-desc">
				<?php printf( esc_html__( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ), '<code>*</code>', '<code>nonce_formid_1</code>', '<code>nonce_formid_3</code>', '<code>nonce_formid_*</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_CACHE_VARY_GROUP; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<table class="litespeed-vary-table wp-list-table striped litespeed-table form-table"><tbody>
			<?php foreach ( $roles as $curr_role => $curr_title ) : ?>
				<tr>
					<td class="litespeed-vary-title"><?php echo esc_html( $curr_title ); ?></td>
					<td class="litespeed-vary-val">
					<?php
						$this->build_input(
							$option_id . '[' . $curr_role . ']',
							'litespeed-input-short',
							$this->cls( 'Vary' )->in_vary_group( $curr_role )
						);
					?>
					</td>
				</tr>
			<?php endforeach; ?>
			</tbody></table>
			<div class="litespeed-desc">
				<?php echo esc_html__( 'If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

</div>
<?php
/**
 * LiteSpeed Cache Purge Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Purge Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-tab' ); ?>
</h3>

<?php
$option_list = array(
	Base::O_PURGE_POST_ALL                     => esc_html__( 'All pages', 'litespeed-cache' ),
	Base::O_PURGE_POST_FRONTPAGE               => esc_html__( 'Front page', 'litespeed-cache' ),
	Base::O_PURGE_POST_HOMEPAGE                => esc_html__( 'Home page', 'litespeed-cache' ),
	Base::O_PURGE_POST_PAGES                   => esc_html__( 'Pages', 'litespeed-cache' ),
	Base::O_PURGE_POST_PAGES_WITH_RECENT_POSTS => esc_html__( 'All pages with Recent Posts Widget', 'litespeed-cache' ),
	Base::O_PURGE_POST_AUTHOR                  => esc_html__( 'Author archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_POSTTYPE                => esc_html__( 'Post type archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_YEAR                    => esc_html__( 'Yearly archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_MONTH                   => esc_html__( 'Monthly archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_DATE                    => esc_html__( 'Daily archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_TERM                    => esc_html__( 'Term archive (include category, tag, and tax)', 'litespeed-cache' ),
);

// break line at these ids
$break_arr = array(
	Base::O_PURGE_POST_PAGES,
	Base::O_PURGE_POST_PAGES_WITH_RECENT_POSTS,
	Base::O_PURGE_POST_POSTTYPE,
	Base::O_PURGE_POST_DATE,
);
?>

<table class="wp-list-table striped litespeed-table"><tbody>

	<?php if ( ! $this->_is_multisite ) : ?>
		<?php require LSCWP_DIR . 'tpl/cache/settings_inc.purge_on_upgrade.tpl.php'; ?>
	<?php endif; ?>

	<tr>
		<th><?php esc_html_e( 'Auto Purge Rules For Publish/Update', 'litespeed-cache' ); ?></th>
		<td>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php esc_html_e( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php esc_html_e( 'Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.', 'litespeed-cache' ); ?><br>
					<?php esc_html_e( 'Other checkboxes will be ignored.', 'litespeed-cache' ); ?><br>
					<?php esc_html_e( 'Select only the archive types that are currently used, the others can be left unchecked.', 'litespeed-cache' ); ?>
				</p>
			</div>
			<div class="litespeed-top20">
				<div class="litespeed-tick-wrapper">
					<?php
					foreach ( $option_list as $option_id => $cur_title ) {
						$this->build_checkbox( $option_id, $cur_title );
						if ( in_array( $option_id, $break_arr, true ) ) {
							echo '</div><div class="litespeed-tick-wrapper litespeed-top10">';
						}
					}
					?>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Select which pages will be automatically purged when posts are published/updated.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_PURGE_STALE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#serve-stale' ); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php esc_html_e( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php esc_html_e( 'By design, this option may serve stale content. Do not enable this option, if that is not OK with you.', 'litespeed-cache' ); ?><br>
				</p>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_PURGE_TIMED_URLS; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id, 80 ); ?>
			<div class="litespeed-desc">
				<?php printf( esc_html__( 'The URLs here (one per line) will be purged automatically at the time set in the option "%s".', 'litespeed-cache' ), esc_html__( 'Scheduled Purge Time', 'litespeed-cache' ) ); ?><br>
				<?php printf( esc_html__( 'Both %1$s and %2$s are acceptable.', 'litespeed-cache' ), '<code>http://www.example.com/path/url.php</code>', '<code>/path/url.php</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
			<div class="litespeed-desc">
				<?php printf( esc_html__( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ), '<code>*</code>', '<code>/path/u-1.html</code>', '<code>/path/u-2.html</code>', '<code>/path/u-*.html</code>' ); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php esc_html_e( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php esc_html_e( 'For URLs with wildcards, there may be a delay in initiating scheduled purge.', 'litespeed-cache' ); ?><br>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#scheduled-purge-urls' ); ?>
				</p>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_PURGE_TIMED_URLS_TIME; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id, null, null, 'time' ); ?>
			<div class="litespeed-desc">
				<?php printf( esc_html__( 'Specify the time to purge the "%s" list.', 'litespeed-cache' ), esc_html__( 'Scheduled Purge URLs', 'litespeed-cache' ) ); ?>
				<?php printf( esc_html__( 'Current server time is %s.', 'litespeed-cache' ), '<code>' . esc_html( gmdate( 'H:i:s', time() + LITESPEED_TIME_OFFSET ) ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_PURGE_HOOK_ALL; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $option_id, 50 ); ?>
				</div>
				<div>
					<?php $this->recommended( $option_id ); ?>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php esc_html_e( 'A Purge All will be executed when WordPress runs these hooks.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-all-hooks' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>
<?php
/**
 * LiteSpeed Cache Settings
 *
 * Displays the cache settings page with tabbed navigation for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
	'cache'    => __( 'Cache', 'litespeed-cache' ),
	'ttl'      => __( 'TTL', 'litespeed-cache' ),
	'purge'    => __( 'Purge', 'litespeed-cache' ),
	'excludes' => __( 'Excludes', 'litespeed-cache' ),
	'esi'      => __( 'ESI', 'litespeed-cache' ),
);

if ( ! $this->_is_multisite ) {
	$menu_list['object']  = __( 'Object', 'litespeed-cache' );
	$menu_list['browser'] = __( 'Browser', 'litespeed-cache' );
}

$menu_list['advanced'] = __( 'Advanced', 'litespeed-cache' );

/**
 * Generate roles for setting usage
 *
 * @since 1.6.2
 */
global $wp_roles;
$wp_orig_roles = $wp_roles;
if ( ! isset( $wp_roles ) ) {
	$wp_orig_roles = new \WP_Roles();
}

$roles = array();
foreach ( $wp_orig_roles->roles as $k => $v ) {
	$roles[ $k ] = $v['name'];
}
ksort( $roles );
?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php esc_html_e( 'LiteSpeed Cache Settings', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		<?php echo esc_html( 'v' . Core::VER ); ?>
	</span>
	<hr class="wp-header-end">
</div>
<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
		<?php
		$i             = 1;
		$accesskey_set = array();
		foreach ( $menu_list as $k => $val ) {
			$accesskey = '';
			if ( $i <= 9 ) {
				$accesskey = $i;
			} else {
				$tmp = strtoupper( substr( $k, 0, 1 ) );
				if ( ! in_array( $tmp, $accesskey_set, true ) ) {
					$accesskey_set[] = $tmp;
					$accesskey       = esc_attr( $tmp );
				}
			}
			printf('<a class="litespeed-tab nav-tab" href="#%1$s" data-litespeed-tab="%1$s" litespeed-accesskey="%2$s">%3$s</a>', esc_attr( $k ), esc_attr($accesskey), esc_html( $val ));
			++$i;
		}
		do_action( 'litespeed_settings_tab', 'cache' );
		?>
	</h2>

	<div class="litespeed-body">
		<?php $this->cache_disabled_warning(); ?>

		<?php
		$this->form_action();

		require LSCWP_DIR . 'tpl/inc/check_if_network_disable_all.php';
		require LSCWP_DIR . 'tpl/cache/more_settings_tip.tpl.php';

		foreach ( $menu_list as $k => $val ) {
			echo '<div data-litespeed-layout="' . esc_attr( $k ) . '">';
			require LSCWP_DIR . "tpl/cache/settings-$k.tpl.php";
			echo '</div>';
		}

		do_action( 'litespeed_settings_content', 'cache' );

		$this->form_end();
		?>
	</div>
</div><?php
/**
 * LiteSpeed Cache Control Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Cache Control Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_CACHE; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php if ( $this->_is_multisite ) : ?>
					<?php $this->build_switch( $option_id, array( esc_html__( 'OFF', 'litespeed-cache' ), esc_html__( 'ON', 'litespeed-cache' ), esc_html__( 'Use Network Admin Setting', 'litespeed-cache' ) ) ); ?>
				<?php else : ?>
					<?php $this->build_switch( $option_id ); ?>
				<?php endif; ?>
				<div class="litespeed-desc">
					<?php
					printf(
						/* translators: %s: Link tags */
						esc_html__( 'Please visit the %sInformation%s page on how to test the cache.', 'litespeed-cache' ),
						'<a href="https://docs.litespeedtech.com/lscache/lscwp/installation/#testing" target="_blank" rel="noopener">',
						'</a>'
					);
					?>
					<br>
					<strong><?php esc_html_e( 'NOTICE', 'litespeed-cache' ); ?>: </strong><?php esc_html_e( 'When disabling the cache, all cached entries for this site will be purged.', 'litespeed-cache' ); ?>
					<br>
					<?php if ( $this->_is_multisite ) : ?>
						<?php esc_html_e( 'The network admin setting can be overridden here.', 'litespeed-cache' ); ?>
						<br>
					<?php endif; ?>
					<?php if ( ! $this->conf( Base::O_CACHE ) && $this->conf( Base::O_CDN_QUIC ) ) : ?>
						<span class="litespeed-success"><?php esc_html_e( 'With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.', 'litespeed-cache' ); ?></span>
					<?php endif; ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_PRIV; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Privately cache frontend pages for logged-in users. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.1+' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_COMMENTER; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.1+' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_REST; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Cache requests made by WordPress REST API calls.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_PAGE_LOGIN; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Disabling this option may negatively affect performance.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<?php if ( ! $this->_is_multisite ) : ?>
			<?php require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php'; ?>
		<?php endif; ?>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_PRIV_URI; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'URI Paths containing these strings will NOT be cached as public.', 'litespeed-cache' ); ?>
					<?php $this->_uri_usage_example(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_FORCE_URI; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Paths containing these strings will be cached regardless of no-cacheable settings.', 'litespeed-cache' ); ?>
					<?php $this->_uri_usage_example(); ?>
					<br>
					<?php esc_html_e( 'To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache' ); ?>
					<?php
					printf(
						esc_html__( 'For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache' ),
						'<code>/mypath/mypage 300</code>',
						300,
						'<code>/mypath/mypage</code>'
					);
					?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_FORCE_PUB_URI; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Paths containing these strings will be forced to public cached regardless of no-cacheable settings.', 'litespeed-cache' ); ?>
					<?php $this->_uri_usage_example(); ?>
					<br>
					<?php esc_html_e( 'To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache' ); ?>
					<?php
					printf(
						esc_html__( 'For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache' ),
						'<code>/mypath/mypage 300</code>',
						300,
						'<code>/mypath/mypage</code>'
					);
					?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<?php if ( ! $this->_is_multisite ) : ?>
			<?php require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php'; ?>
		<?php endif; ?>

	</tbody>
</table>
<?php
/**
 * LiteSpeed Cache Advanced Settings
 *
 * Displays the advanced settings section for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Advanced Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#advanced-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<?php require LSCWP_DIR . 'tpl/cache/settings_inc.login_cookie.tpl.php'; ?>
	</tbody>
</table><?php
/**
 * LiteSpeed Cache Object Cache Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.object.tpl.php';
<?php
/**
 * LiteSpeed Cache Drop Query Strings Setting
 *
 * Displays the drop query strings setting for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<tr>
	<th scope="row">
		<?php $option_id = Base::O_CACHE_DROP_QS; ?>
		<?php $this->title( $option_id ); ?>
	</th>
	<td>
		<?php $this->build_textarea( $option_id, 40 ); ?>
		<div class="litespeed-desc">
			<?php
			printf(
				/* translators: %s: LiteSpeed Web Server version */
				esc_html__( 'Ignore certain query strings when caching. (LSWS %s required)', 'litespeed-cache' ),
				'v5.2.3+'
			);
			?>
			<?php
			printf(
				/* translators: %1$s: Example query string, %2$s: Example wildcard */
				esc_html__( 'For example, to drop parameters beginning with %1$s, %2$s can be used here.', 'litespeed-cache' ),
				'<code>utm</code>',
				'<code>utm*</code>'
			);
			?>
			<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#drop-query-string' ); ?>
			<br />
			<?php Doc::one_per_line(); ?>
			<br />
			<?php Doc::notice_htaccess(); ?>
		</div>
	</td>
</tr><?php
/**
 * LiteSpeed Cache Login Cookie and Vary Cookies Settings
 *
 * Displays the login cookie and vary cookies settings for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<tr>
	<th scope="row">
		<?php $option_id = Base::O_CACHE_LOGIN_COOKIE; ?>
		<?php $this->title( $option_id ); ?>
	</th>
	<td>
		<?php $this->build_input( $option_id ); ?>
		<?php $this->_validate_syntax( $option_id ); ?>
		<div class="litespeed-desc">
			<?php
			esc_html_e( 'SYNTAX: alphanumeric and "_". No spaces and case sensitive. MUST BE UNIQUE FROM OTHER WEB APPLICATIONS.', 'litespeed-cache' );
			?>
			<br />
			<?php
			printf(
				/* translators: %s: Default login cookie name */
				esc_html__( 'The default login cookie is %s.', 'litespeed-cache' ),
				'<code>_lscache_vary</code>'
			);
			?>
			<?php esc_html_e( 'The server will determine if the user is logged in based on the existence of this cookie.', 'litespeed-cache' ); ?>
			<?php esc_html_e( 'This setting is useful for those that have multiple web applications for the same domain.', 'litespeed-cache' ); ?>
			<?php esc_html_e( 'If every web application uses the same cookie, the server may confuse whether a user is logged in or not.', 'litespeed-cache' ); ?>
			<?php esc_html_e( 'The cookie set here will be used for this WordPress installation.', 'litespeed-cache' ); ?>
			<br />
			<?php esc_html_e( 'Example use case:', 'litespeed-cache' ); ?><br />
			<?php
			printf(
				/* translators: %s: Example domain */
				esc_html__( 'There is a WordPress installed for %s.', 'litespeed-cache' ),
				'<u>www.example.com</u>'
			);
			?>
			<br />
			<?php
			printf(
				/* translators: %s: Example subdomain */
				esc_html__( 'Then another WordPress is installed (NOT MULTISITE) at %s', 'litespeed-cache' ),
				'<u>www.example.com/blog/</u>'
			);
			?>
			<?php esc_html_e( 'The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.', 'litespeed-cache' ); ?><br />
			<?php Doc::notice_htaccess(); ?>
		</div>

		<?php if ( preg_match( '#[^\w\-]#', $this->conf( $option_id ) ) ) : ?>
			<div class="litespeed-callout notice notice-error inline">
				<p>❌ <?php esc_html_e( 'Invalid login cookie. Invalid characters found.', 'litespeed-cache' ); ?></p>
			</div>
		<?php endif; ?>

		<?php
		if ( defined( 'LITESPEED_ON' ) && $this->conf( $option_id ) ) {
			$cookie_rule = '';
			try {
				$cookie_rule = Htaccess::cls()->current_login_cookie();
			} catch ( \Exception $e ) {
				?>
				<div class="litespeed-callout notice notice-error inline">
					<p><?php echo esc_html( $e->getMessage() ); ?></p>
				</div>
				<?php
			}

			$cookie_arr = explode( ',', $cookie_rule );
			if ( ! in_array( $this->conf( $option_id ), $cookie_arr, true ) ) {
				?>
				<div class="litespeed-callout notice notice-warning inline">
					<p><?php esc_html_e( 'WARNING: The .htaccess login cookie and Database login cookie do not match.', 'litespeed-cache' ); ?></p>
				</div>
				<?php
			}
		}
		?>
	</td>
</tr>

<tr>
	<th scope="row">
		<?php $option_id = Base::O_CACHE_VARY_COOKIES; ?>
		<?php $this->title( $option_id ); ?>
	</th>
	<td>
		<?php $this->build_textarea( $option_id, 50 ); ?>
		<?php $this->_validate_syntax( $option_id ); ?>
		<div class="litespeed-desc">
			<?php esc_html_e( 'SYNTAX: alphanumeric and "_". No spaces and case sensitive.', 'litespeed-cache' ); ?>
			<br />
			<?php esc_html_e( 'You can list the 3rd party vary cookies here.', 'litespeed-cache' ); ?>
			<br />
			<?php Doc::notice_htaccess(); ?>
		</div>
	</td>
</tr><?php
/**
 * LiteSpeed Cache Browser Settings
 *
 * Includes the browser cache settings template for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.browser.tpl.php';
<?php
/**
 * LiteSpeed Cache Exclude Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo esc_html__( 'Exclude Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_EXC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php echo esc_html__( 'Paths containing these strings will not be cached.', 'litespeed-cache' ); ?>
					<?php $this->_uri_usage_example(); ?>
					<br><?php echo esc_html__( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/cache_nocacheable.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/cache_nocacheable.txt</a>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_EXC_QS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php echo esc_html__( 'Query strings containing these parameters will not be cached.', 'litespeed-cache' ); ?>
					<?php printf( esc_html__( 'For example, for %1$s, %2$s and %3$s can be used here.', 'litespeed-cache' ), '<code>?aa=bb&cc=dd</code>', '<code>aa</code>', '<code>cc</code>' ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_EXC_CAT; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php
				$excludes_buf = '';
				if ( $this->conf( $option_id ) ) {
					$excludes_buf = implode( "\n", array_map( 'get_cat_name', $this->conf( $option_id ) ) );
				}
				$this->build_textarea( $option_id, false, $excludes_buf );
				?>
				<div class="litespeed-desc">
					<b><?php echo esc_html__( 'All categories are cached by default.', 'litespeed-cache' ); ?></b>
					<?php printf( esc_html__( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), esc_html__( 'categories', 'litespeed-cache' ) ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php echo esc_html__( 'NOTE', 'litespeed-cache' ); ?>:</h4>
					<ol>
						<li><?php echo esc_html__( 'If the category name is not found, the category will be removed from the list on save.', 'litespeed-cache' ); ?></li>
					</ol>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_EXC_TAG; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php
				$excludes_buf = '';
				if ( $this->conf( $option_id ) ) {
					$tag_names = array();
					foreach ( array_map( 'get_tag', $this->conf( $option_id ) ) as $curr_tag ) {
						$tag_names[] = $curr_tag->name;
					}
					if ( ! empty( $tag_names ) ) {
						$excludes_buf = implode( "\n", $tag_names );
					}
				}
				$this->build_textarea( $option_id, false, $excludes_buf );
				?>
				<div class="litespeed-desc">
					<b><?php echo esc_html__( 'All tags are cached by default.', 'litespeed-cache' ); ?></b>
					<?php printf( esc_html__( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), esc_html__( 'tags', 'litespeed-cache' ) ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php echo esc_html__( 'NOTE', 'litespeed-cache' ); ?>:</h4>
					<ol>
						<li><?php echo esc_html__( 'If the tag slug is not found, the tag will be removed from the list on save.', 'litespeed-cache' ); ?></li>
						<li>
						<?php
						printf(
							esc_html__( 'To exclude %1$s, insert %2$s.', 'litespeed-cache' ),
							'<code>http://www.example.com/tag/category/tag-slug/</code>',
							'<code>tag-slug</code>'
						);
						?>
						</li>
					</ol>
				</div>
			</td>
		</tr>

		<?php
		if ( ! $this->_is_multisite ) :
			require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_cookies.tpl.php';
			require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_useragent.tpl.php';
		endif;
		?>

		<tr>
			<th>
				<?php $option_id = Base::O_CACHE_EXC_ROLES; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<div class="litespeed-desc">
					<?php echo esc_html__( 'Selected roles will be excluded from cache.', 'litespeed-cache' ); ?>
				</div>
				<div class="litespeed-tick-list">
					<?php foreach ( $roles as $curr_role => $curr_title ) : ?>
						<?php $this->build_checkbox( $option_id . '[]', esc_html( $curr_title ), Control::cls()->in_cache_exc_roles( $curr_role ), $curr_role ); ?>
					<?php endforeach; ?>
				</div>
			</td>
		</tr>

	</tbody>
</table>
<?php
/**
 * LiteSpeed Cache Image Optimization Network Settings
 *
 * Manages network-wide image optimization settings for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Image Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<?php require LSCWP_DIR . 'tpl/img_optm/settings.media_webp.tpl.php'; ?>

</tbody></table>

<?php
$this->form_end( true );<?php
/**
 * LiteSpeed Cache Image Optimization
 *
 * Manages the image optimization interface for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
    'summary'  => esc_html__( 'Image Optimization Summary', 'litespeed-cache' ),
    'settings' => esc_html__( 'Image Optimization Settings', 'litespeed-cache' ),
);

if ( is_network_admin() ) {
    $menu_list = array(
        'network_settings' => esc_html__( 'Image Optimization Settings', 'litespeed-cache' ),
    );
}

?>

<div class="wrap">
    <h1 class="litespeed-h1">
        <?php esc_html_e( 'LiteSpeed Cache Image Optimization', 'litespeed-cache' ); ?>
    </h1>
    <span class="litespeed-desc">
        v<?php echo esc_html( Core::VER ); ?>
    </span>
    <hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
    <h2 class="litespeed-header nav-tab-wrapper">
        <?php GUI::display_tab_list( $menu_list ); ?>
    </h2>

    <div class="litespeed-body">
        <?php
        foreach ( $menu_list as $menu_key => $val ) {
            echo '<div data-litespeed-layout="' . esc_attr( $menu_key ) . '">';
            require LSCWP_DIR . 'tpl/img_optm/' . sanitize_file_name( $menu_key ) . '.tpl.php';
            echo '</div>';
        }
        ?>
    </div>

</div><?php
/**
 * LiteSpeed Cache Image Optimization Summary
 *
 * Manages the image optimization summary interface for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_IMG_OPTM );
$usage_cloud    = Cloud::get_summary( 'usage.' . Cloud::SVC_IMG_OPTM );
$allowance      = Cloud::cls()->allowance( Cloud::SVC_IMG_OPTM );

$img_optm = Img_Optm::cls();

$wet_limit = $img_optm->wet_limit();
$img_count = $img_optm->img_count();

$optm_summary = Img_Optm::get_summary();

list($last_run, $is_running) = $img_optm->cron_running( false );
$finished_percentage         = 0;
if ( $img_count['groups_all'] ) {
	$finished_percentage = 100 - floor( $img_count['groups_new'] * 100 / $img_count['groups_all'] );
}
if ( 100 === $finished_percentage && $img_count['groups_new'] ) {
	$finished_percentage = 99;
}

$unfinished_num = 0;
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ];
}
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ];
}
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_ERR_FETCH ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_ERR_FETCH ];
}

$imgoptm_service_hot = $this->cls( 'Cloud' )->service_hot( Cloud::SVC_IMG_OPTM . '-' . Img_Optm::CLOUD_ACTION_NEW_REQ );
?>
<div class="litespeed-flex-container litespeed-column-with-boxes">
	<div class="litespeed-width-7-10 litespeed-column-left litespeed-image-optim-summary-wrapper">
		<div class="litespeed-image-optim-summary">

			<h3>
				<?php if ( $closest_server ) : ?>
					<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_IMG_OPTM ) ) ); ?>" class="litespeed-info-button litespeed-redetect" data-balloon-pos="right" data-balloon-break aria-label="<?php printf( esc_html__( 'Current closest Cloud server is %s. Click to redetect.', 'litespeed-cache' ), esc_html( $closest_server ) ); ?>" data-litespeed-cfm="<?php esc_html_e( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ); ?>"><span class="litespeed-quic-icon"></span> <?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?></a>
				<?php else : ?>
					<span class="litespeed-quic-icon"></span> <?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?>
				<?php endif; ?>
				<?php esc_html_e( 'Optimize images with our QUIC.cloud server', 'litespeed-cache' ); ?>
				<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-summary-tab" target="_blank" class="litespeed-right litespeed-learn-more"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a>
			</h3>

			<p>
				<?php printf( esc_html__( 'You can request a maximum of %s images at once.', 'litespeed-cache' ), '<strong>' . intval( $allowance ) . '</strong>' ); ?>
			</p>

			<?php if ( $wet_limit ) : ?>
				<p class="litespeed-desc">
					<?php esc_html_e( 'To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited.', 'litespeed-cache' ); ?>
					<?php echo esc_html__( 'Current limit is', 'litespeed-cache' ) . ': <strong>' . esc_html( $wet_limit ) . '</strong>'; ?>
				</p>
			<?php endif; ?>

			<div class="litespeed-img-optim-actions">
				<?php if ( $imgoptm_service_hot ) : ?>
					<button class="button button-secondary" disabled>
						<span class="dashicons dashicons-images-alt2"></span> <?php esc_html_e( 'Send Optimization Request', 'litespeed-cache' ); ?>
						- <?php printf( esc_html__( 'Available after %d second(s)', 'litespeed-cache' ), esc_html( $imgoptm_service_hot ) ); ?>
					</button>
				<?php else : ?>
					<a data-litespeed-onlyonce class="button button-primary"
					<?php
					if ( ! empty( $img_count['groups_new'] ) || ! empty( $img_count[ 'group.' . Img_Optm::STATUS_RAW ] ) ) :
						?>
						href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_NEW_REQ ) ); ?>"
						<?php
					else :
						?>
						href="javascript:;" disabled <?php endif; ?>>
						<span class="dashicons dashicons-images-alt2"></span> <?php esc_html_e( 'Send Optimization Request', 'litespeed-cache' ); ?>
					</a>
				<?php endif; ?>

				<a data-litespeed-onlyonce class="button button-secondary" data-balloon-length="large" data-balloon-pos="right" aria-label="<?php esc_html_e( 'Only press the button if the pull cron job is disabled.', 'litespeed-cache' ); ?> <?php esc_html_e( 'Images will be pulled automatically if the cron job is running.', 'litespeed-cache' ); ?>"
					<?php
					if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ] ) && ! $is_running ) :
						?>
						href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_PULL ) ); ?>"
						<?php
					else :
						?>
						href="javascript:;" disabled <?php endif; ?>>
					<?php esc_html_e( 'Pull Images', 'litespeed-cache' ); ?>
				</a>
			</div>

			<div>
				<h3 class="litespeed-title-section">
					<?php esc_html_e( 'Optimization Status', 'litespeed-cache' ); ?>
				</h3>

				<div class="litespeed-light-code">

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_NEW ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo esc_html( Lang::img_status( Img_Optm::STATUS_NEW ) ); ?>:
							<code>
								<?php echo esc_html( Admin_Display::print_plural( $img_count['group_new'] ) ); ?>
							</code>
						</p>
					<?php endif; ?>

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_RAW ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo esc_html( Lang::img_status( Img_Optm::STATUS_RAW ) ); ?>:
							<code>
								<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_RAW ] ) ); ?>
								(<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_RAW ], 'image' ) ); ?>)
							</code>
						</p>
					<?php endif; ?>

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo esc_html( Lang::img_status( Img_Optm::STATUS_REQUESTED ) ); ?>:
							<code>
								<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ); ?>
								(<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ], 'image' ) ); ?>)
							</code>
						</p>
						<p class="litespeed-desc">
							<?php esc_html_e( 'After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.', 'litespeed-cache' ); ?>
							<?php esc_html_e( 'This process is automatic.', 'litespeed-cache' ); ?>
						</p>
					<?php endif; ?>

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo esc_html( Lang::img_status( Img_Optm::STATUS_NOTIFIED ) ); ?>:
							<code>
								<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ); ?>
								(<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ], 'image' ) ); ?>)
							</code>
						</p>
						<?php if ( $last_run ) : ?>
							<p class="litespeed-desc">
								<?php printf( esc_html__( 'Last pull initiated by cron at %s.', 'litespeed-cache' ), '<code>' . esc_html( Utility::readable_time( $last_run ) ) . '</code>' ); ?>
							</p>
						<?php endif; ?>
					<?php endif; ?>

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_PULLED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo esc_html( Lang::img_status( Img_Optm::STATUS_PULLED ) ); ?>:
							<code>
								<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_PULLED ] ) ); ?>
								(<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_PULLED ], 'image' ) ); ?>)
							</code>
						</p>
					<?php endif; ?>

					<p>
					<?php
					printf(
						'<a href="%1$s" class="button button-secondary litespeed-btn-warning" data-balloon-pos="right" aria-label="%2$s" %3$s><span class="dashicons dashicons-editor-removeformatting"></span> %4$s</a>',
						( $unfinished_num ? esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CLEAN ) ) : 'javascript:;' ),
						esc_html__( 'Remove all previous unfinished image optimization requests.', 'litespeed-cache' ),
						( $unfinished_num ? '' : ' disabled' ),
						esc_html__( 'Clean Up Unfinished Data', 'litespeed-cache' ) . ( $unfinished_num ? ': ' . esc_html( Admin_Display::print_plural( $unfinished_num, 'image' ) ) : '' )
					);
					?>
					</p>

					<h3 class="litespeed-title-section">
						<?php esc_html_e( 'Storage Optimization', 'litespeed-cache' ); ?>
					</h3>

					<p>
						<?php esc_html_e( 'A backup of each image is saved before it is optimized.', 'litespeed-cache' ); ?>
					</p>

					<?php if ( ! empty( $optm_summary['bk_summary'] ) ) : ?>
						<div>
							<p>
								<?php echo esc_html__( 'Last calculated', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::readable_time( $optm_summary['bk_summary']['date'] ) ) . '</code>'; ?>
							</p>
							<?php if ( $optm_summary['bk_summary']['count'] ) : ?>
								<p>
									<?php echo esc_html__( 'Files', 'litespeed-cache' ) . ': <code>' . intval( $optm_summary['bk_summary']['count'] ) . '</code>'; ?>
								</p>
								<p>
									<?php echo esc_html__( 'Total', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::real_size( $optm_summary['bk_summary']['sum'] ) ) . '</code>'; ?>
								</p>
							<?php endif; ?>
						</div>
					<?php endif; ?>

					<div>
						<a class="button button-secondary" data-balloon-pos="up" aria-label="<?php esc_html_e( 'Calculate Original Image Storage', 'litespeed-cache' ); ?>"
							<?php
							if ( $finished_percentage > 0 ) :
								?>
							href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CALC_BKUP ) ); ?>"
							<?php
							else :
								?>
							href="javascript:;" disabled <?php endif; ?>>
							<span class="dashicons dashicons-update"></span> <?php esc_html_e( 'Calculate Backups Disk Space', 'litespeed-cache' ); ?>
						</a>
					</div>

				</div>

				<div>
					<h4><?php esc_html_e( 'Image Thumbnail Group Sizes', 'litespeed-cache' ); ?></h4>
					<div class="litespeed-desc litespeed-left20">
						<?php
						foreach ( Media::cls()->get_image_sizes() as $size_title => $size ) {
							printf(
								'<div>%1$s ( %2$s x %3$s )</div>',
								esc_html( $size_title ),
								$size['width'] ? esc_html( $size['width'] ) . 'px' : '*',
								$size['height'] ? esc_html( $size['height'] ) . 'px' : '*'
							);
						}
						?>
					</div>
				</div>

				<hr class="litespeed-hr-with-space">
				<div>
					<h4><?php esc_html_e( 'Delete all backups of the original images', 'litespeed-cache' ); ?></h4>
					<div class="notice notice-error litespeed-callout-bg inline">
						<p>
							🚨 <?php esc_html_e( 'This is irreversible.', 'litespeed-cache' ); ?>
							<?php esc_html_e( 'You will be unable to Revert Optimization once the backups are deleted!', 'litespeed-cache' ); ?>
						</p>
					</div>
				</div>

				<?php if ( ! empty( $optm_summary['rmbk_summary'] ) ) : ?>
					<div>
						<p>
							<?php echo esc_html__( 'Last ran', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::readable_time( $optm_summary['rmbk_summary']['date'] ) ) . '</code>'; ?>
						</p>
						<p>
							<?php echo esc_html__( 'Files', 'litespeed-cache' ) . ': <code>' . esc_html( $optm_summary['rmbk_summary']['count'] ) . '</code>'; ?>
						</p>
						<p>
							<?php echo esc_html__( 'Saved', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::real_size( $optm_summary['rmbk_summary']['sum'] ) ) . '</code>'; ?>
						</p>
					</div>
				<?php endif; ?>
				<div class="litespeed-image-optim-summary-footer">
					<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RM_BKUP ) ); ?>" data-litespeed-cfm="<?php esc_html_e( 'Are you sure you want to remove all image backups?', 'litespeed-cache' ); ?>" class="litespeed-link-with-icon litespeed-danger">
						<span class="dashicons dashicons-trash"></span><?php esc_html_e( 'Remove Original Image Backups', 'litespeed-cache' ); ?>
					</a>
				</div>
			</div>
		</div>
	</div>

	<div class="litespeed-width-3-10 litespeed-column-right">
		<div class="postbox litespeed-postbox litespeed-postbox-imgopt-info">
			<div class="inside">
				<h3 class="litespeed-title">
					<?php esc_html_e( 'Image Information', 'litespeed-cache' ); ?>
				</h3>

				<div class="litespeed-flex-container">
					<div class="litespeed-icon-vertical-middle">
						<?php echo wp_kses( GUI::pie( $finished_percentage, 70, true ), GUI::allowed_svg_tags() ); ?>
					</div>
					<div>
						<p>
							<?php esc_html_e( 'Image groups total', 'litespeed-cache' ); ?>:
							<?php if ( $img_count['groups_new'] ) : ?>
								<code><?php echo esc_html( Admin_Display::print_plural( $img_count['groups_new'], 'group' ) ); ?></code>
							<?php else : ?>
								<font class="litespeed-congratulate"><?php esc_html_e( 'Congratulations, all gathered!', 'litespeed-cache' ); ?></font>
							<?php endif; ?>
							<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#what-is-an-image-group" target="_blank" class="litespeed-desc litespeed-help-btn-icon" data-balloon-pos="up" aria-label="<?php esc_html_e( 'What is a group?', 'litespeed-cache' ); ?>">
								<span class="dashicons dashicons-editor-help"></span>
								<span class="screen-reader-text"><?php esc_html_e( 'What is an image group?', 'litespeed-cache' ); ?></span>
							</a>
						</p>
						<p>
							<?php esc_html_e( 'Current image post id position', 'litespeed-cache' ); ?>: <?php echo ! empty( $optm_summary['next_post_id'] ) ? esc_html( $optm_summary['next_post_id'] ) : '-'; ?><br>
							<?php esc_html_e( 'Maximum image post id', 'litespeed-cache' ); ?>: <?php echo esc_html( $img_count['max_id'] ); ?>
						</p>
					</div>
				</div>
			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact" style="display: none;">
				<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RESCAN ) ); ?>" class="" data-balloon-pos="up" data-balloon-length="large" aria-label="<?php esc_html_e( 'Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.', 'litespeed-cache' ); ?>">
					<?php esc_html_e( 'Rescan New Thumbnails', 'litespeed-cache' ); ?>
				</a>
			</div>
		</div>

		<div class="postbox litespeed-postbox">
			<div class="inside">
				<h3 class="litespeed-title">
					<?php esc_html_e( 'Optimization Summary', 'litespeed-cache' ); ?>
				</h3>
				<p>
					<?php esc_html_e( 'Total Reduction', 'litespeed-cache' ); ?>: <code><?php echo isset( $optm_summary['reduced'] ) ? esc_html( Utility::real_size( $optm_summary['reduced'] ) ) : '-'; ?></code>
				</p>
				<p>
					<?php esc_html_e( 'Images Pulled', 'litespeed-cache' ); ?>: <code><?php echo isset( $optm_summary['img_taken'] ) ? esc_html( $optm_summary['img_taken'] ) : '-'; ?></code>
				</p>
				<p>
					<?php esc_html_e( 'Last Request', 'litespeed-cache' ); ?>: <code><?php echo isset( $optm_summary['last_requested'] ) ? esc_html( Utility::readable_time( $optm_summary['last_requested'] ) ) : '-'; ?></code>
				</p>
				<p>
					<?php esc_html_e( 'Last Pulled', 'litespeed-cache' ); ?>: <code><?php echo isset( $optm_summary['last_pulled'] ) ? esc_html( Utility::readable_time( $optm_summary['last_pulled'] ) ) : '-'; ?></code>
					<?php
					if ( isset( $optm_summary['last_pulled_by_cron'] ) && $optm_summary['last_pulled_by_cron'] ) {
						echo '(Cron)';
					}
					?>
				</p>
			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact litespeed-desc">
				<?php
				printf(
					/* translators: %s: Link tags */
					esc_html__( 'Results can be checked in %sMedia Library%s.', 'litespeed-cache' ),
					'<a href="upload.php?mode=list">',
					'</a>'
				);
				?>
			</div>
		</div>

		<div class="postbox litespeed-postbox">
			<div class="inside">
				<h3 class="litespeed-title"><?php esc_html_e( 'Optimization Tools', 'litespeed-cache' ); ?></h3>

				<p>
					<?php esc_html_e( 'You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.', 'litespeed-cache' ); ?>
				</p>

				<div class="litespeed-links-group">
					<span>
						<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_BATCH_SWITCH_ORI ) ); ?>" class="litespeed-link-with-icon" data-balloon-pos="up" aria-label="<?php esc_html_e( 'Use original images (unoptimized) on your site', 'litespeed-cache' ); ?>">
							<span class="dashicons dashicons-undo"></span><?php esc_html_e( 'Use Original Files', 'litespeed-cache' ); ?>
						</a>
					</span><span>
						<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_BATCH_SWITCH_OPTM ) ); ?>" class="litespeed-link-with-icon litespeed-icon-right" data-balloon-pos="up" aria-label="<?php esc_html_e( 'Switch back to using optimized images on your site', 'litespeed-cache' ); ?>">
							<?php esc_html_e( 'Use Optimized Files', 'litespeed-cache' ); ?><span class="dashicons dashicons-redo"></span>
						</a>
					</span>
				</div>
			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
				<p>
					<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RESET_COUNTER ) ); ?>" class="litespeed-link-with-icon litespeed-warning">
						<span class="dashicons dashicons-dismiss"></span><?php esc_html_e( 'Soft Reset Optimization Counter', 'litespeed-cache' ); ?>
					</a>
				</p>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'This will reset the %1$s. If you changed WebP/AVIF settings and want to generate %2$s for the previously optimized images, use this action.', 'litespeed-cache' ), '<code>' . esc_html__( 'Current image post id position', 'litespeed-cache' ) . '</code>', 'WebP/AVIF' ); ?>
				</div>
			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
				<p>
					<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_DESTROY ) ); ?>" class="litespeed-link-with-icon litespeed-danger" data-litespeed-cfm="<?php esc_html_e( 'Are you sure to destroy all optimized images?', 'litespeed-cache' ); ?>" id="litespeed-imageopt-destroy">
						<span class="dashicons dashicons-dismiss"></span><?php esc_html_e( 'Destroy All Optimization Data', 'litespeed-cache' ); ?>
					</a>
				</p>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.', 'litespeed-cache' ); ?>
				</div>
			</div>
		</div>
	</div>
</div><?php
/**
 * LiteSpeed Cache Image Optimization Settings
 *
 * Manages image optimization settings for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Image Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>

		<tr>
			<th>
				<?php $option_id = Base::O_IMG_OPTM_AUTO; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Automatically request optimization via cron job.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_IMG_OPTM_ORI; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Optimize images and save backups of the originals in the same folder.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_IMG_OPTM_RM_BKUP; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Automatically remove the original image backups after fetching optimized images.', 'litespeed-cache' ); ?>

					<br />
					<font class="litespeed-danger">
						🚨
						<?php esc_html_e( 'This is irreversible.', 'litespeed-cache' ); ?>
						<?php esc_html_e( 'You will be unable to Revert Optimization once the backups are deleted!', 'litespeed-cache' ); ?>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_IMG_OPTM_LOSSLESS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Optimize images using lossless compression.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This can improve quality but may result in larger images than lossy compression will.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_IMG_OPTM_EXIF; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This will increase the size of optimized files.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<?php
		if ( ! is_multisite() ) :
			// webp
			require LSCWP_DIR . 'tpl/img_optm/settings.media_webp.tpl.php';
		endif;
		?>

		<tr>
			<th>
				<?php $option_id = Base::O_IMG_OPTM_WEBP_ATTR; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<div class="litespeed-textarea-recommended">
					<div>
						<?php $this->build_textarea( $option_id, 40 ); ?>
					</div>
					<div>
						<?php $this->recommended( $option_id ); ?>
					</div>
				</div>

				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify which element attributes will be replaced with WebP/AVIF.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'Only attributes listed here will be replaced.', 'litespeed-cache' ); ?>
					<br /><?php printf( esc_html__( 'Use the format %1$s or %2$s (element is optional).', 'litespeed-cache' ), '<code>element.attribute</code>', '<code>.attribute</code>' ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_IMG_OPTM_WEBP_REPLACE_SRCSET; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Enable replacement of WebP/AVIF in %s elements that were generated outside of WordPress logic.', 'litespeed-cache' ), '<code>srcset</code>' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#webp-for-extra-srcset' ); ?>
				</div>
			</td>
		</tr>

	</tbody>
</table>

<?php
$this->form_end();
<?php
/**
 * LiteSpeed Cache Image Optimization WebP/AVIF Setting
 *
 * Manages the WebP and AVIF optimization settings for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<tr>
	<th>
		<?php $option_id = Base::O_IMG_OPTM_WEBP; ?>
		<?php $this->title( $option_id ); ?>
	</th>
	<td>
		<?php $this->build_switch( $option_id, array( esc_html__( 'OFF', 'litespeed-cache' ), 'WebP', 'AVIF' ) ); ?>
		<?php Doc::maybe_on_by_gm( $option_id ); ?>
		<div class="litespeed-desc">
			<?php esc_html_e( 'Request WebP/AVIF versions of original images when doing optimization.', 'litespeed-cache' ); ?>
			<?php printf( esc_html__( 'Significantly improve load time by replacing images with their optimized %s versions.', 'litespeed-cache' ), '.webp/.avif' ); ?>
			<br /><?php Doc::notice_htaccess(); ?>
			<br /><?php Doc::crawler_affected(); ?>
			<br />
			<font class="litespeed-warning">
				⚠️ <?php printf( esc_html__( '%1$s is a %2$s paid feature.', 'litespeed-cache' ), 'AVIF', 'QUIC.cloud' ); ?></font>
			<br />
			<font class="litespeed-warning">
				⚠️ <?php printf( esc_html__( 'When switching formats, please %1$s or %2$s to apply this new choice to previously optimized images.', 'litespeed-cache' ), esc_html__( 'Destroy All Optimization Data', 'litespeed-cache' ), esc_html__( 'Soft Reset Optimization Counter', 'litespeed-cache' ) ); ?></font>
			<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#soft-reset-optimization-counter' ); ?>
		</div>
	</td>
</tr><?php
/**
 * LiteSpeed Cache Database Optimization
 *
 * Manages database optimization options and displays table engine conversion tools.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$_panels = array(
    'all' => array(
        'title' => esc_html__( 'Clean All', 'litespeed-cache' ),
        'desc'  => '',
    ),
    'revision' => array(
        'title' => esc_html__( 'Post Revisions', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean all post revisions', 'litespeed-cache' ),
    ),
    'orphaned_post_meta' => array(
        'title' => esc_html__( 'Orphaned Post Meta', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean all orphaned post meta records', 'litespeed-cache' ),
    ),
    'auto_draft' => array(
        'title' => esc_html__( 'Auto Drafts', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean all auto saved drafts', 'litespeed-cache' ),
    ),
    'trash_post' => array(
        'title' => esc_html__( 'Trashed Posts', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean all trashed posts and pages', 'litespeed-cache' ),
    ),
    'spam_comment' => array(
        'title' => esc_html__( 'Spam Comments', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean all spam comments', 'litespeed-cache' ),
    ),
    'trash_comment' => array(
        'title' => esc_html__( 'Trashed Comments', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean all trashed comments', 'litespeed-cache' ),
    ),
    'trackback-pingback' => array(
        'title' => esc_html__( 'Trackbacks/Pingbacks', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean all trackbacks and pingbacks', 'litespeed-cache' ),
    ),
    'expired_transient' => array(
        'title' => esc_html__( 'Expired Transients', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean expired transient options', 'litespeed-cache' ),
    ),
    'all_transients' => array(
        'title' => esc_html__( 'All Transients', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Clean all transient options', 'litespeed-cache' ),
    ),
    'optimize_tables' => array(
        'title' => esc_html__( 'Optimize Tables', 'litespeed-cache' ),
        'desc'  => esc_html__( 'Optimize all tables in your database', 'litespeed-cache' ),
    ),
);

$rev_max = $this->conf( Base::O_DB_OPTM_REVISIONS_MAX );
$rev_age = $this->conf( Base::O_DB_OPTM_REVISIONS_AGE );
if ( $rev_max || $rev_age ) {
    $_panels['revision']['desc'] = sprintf(
		esc_html__( 'Clean revisions older than %1$s day(s), excluding %2$s latest revisions', 'litespeed-cache' ),
		'<strong>' . esc_html( $rev_age ) . '</strong>',
		'<strong>' . esc_html( $rev_max ) . '</strong>'
	);
}

$total = 0;
foreach ( $_panels as $key => $v ) {
    if ( 'all' !== $key ) {
        $_panels[ $key ]['count'] = $this->cls( 'DB_Optm' )->db_count( $key );
        if ( ! in_array( $key, array( 'optimize_tables' ), true ) ) {
            $total += $_panels[ $key ]['count'];
        }
    }
    $_panels[ $key ]['link'] = Utility::build_url( Router::ACTION_DB_OPTM, $key );
}

$_panels['all']['count'] = $total;

$autoload_summary = DB_Optm::cls()->autoload_summary();

?>

<h3 class="litespeed-title">
    <?php esc_html_e( 'Database Optimizer', 'litespeed-cache' ); ?>
    <?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/database/' ); ?>
</h3>

<div class="litespeed-panel-wrapper litespeed-cards-wrapper">

    <?php foreach ( $_panels as $key => $v ) : ?>
        <a href="<?php echo esc_url( $v['link'] ); ?>" class="litespeed-panel postbox">
            <section class="litespeed-panel-wrapper-icon">
                <span class="litespeed-panel-icon-<?php echo esc_attr( $key ); ?>"></span>
            </section>
            <section class="litespeed-panel-content">
                <div class="litespeed-h3">
                    <?php echo esc_html( $v['title'] ); ?>
                    <span class="litespeed-panel-counter<?php echo $v['count'] > 0 ? '-red' : ''; ?>">(<?php echo esc_html( $v['count'] ); ?><?php echo DB_Optm::hide_more() ? '+' : ''; ?>)</span>
                </div>
                <span class="litespeed-panel-para"><?php echo wp_kses_post( $v['desc'] ); ?></span>
            </section>
            <section class="litespeed-panel-wrapper-top-right">
                <span class="litespeed-panel-top-right-icon<?php echo $v['count'] > 0 ? '-cross' : '-tick'; ?>"></span>
            </section>
        </a>
    <?php endforeach; ?>

</div>

<h3 class="litespeed-title"><?php esc_html_e( 'Database Table Engine Converter', 'litespeed-cache' ); ?></h3>

<div class="litespeed-panel-wrapper">

    <table class="wp-list-table widefat striped">
        <thead>
            <tr>
                <th scope="col">#</th>
                <th scope="col"><?php esc_html_e( 'Table', 'litespeed-cache' ); ?></th>
                <th scope="col"><?php esc_html_e( 'Engine', 'litespeed-cache' ); ?></th>
                <th scope="col"><?php esc_html_e( 'Tool', 'litespeed-cache' ); ?></th>
            </tr>
        </thead>
        <tbody>
            <?php
            $list = DB_Optm::cls()->list_myisam();
            if ( ! empty( $list ) ) :
                foreach ( $list as $k => $v ) :
                    ?>
                    <tr>
                        <td><?php echo esc_html( $k + 1 ); ?></td>
                        <td><?php echo esc_html( $v->TABLE_NAME ); ?></td>
                        <td><?php echo esc_html( $v->ENGINE ); ?></td>
                        <td>
                            <a href="<?php echo esc_url( Utility::build_url( Router::ACTION_DB_OPTM, DB_Optm::TYPE_CONV_TB, false, false, array( 'tb' => $v->TABLE_NAME ) ) ); ?>">
                                <?php esc_html_e( 'Convert to InnoDB', 'litespeed-cache' ); ?>
                            </a>
                        </td>
                    </tr>
                <?php endforeach; ?>
            <?php else : ?>
                <tr>
                    <td colspan="4" class="litespeed-success litespeed-text-center">
                        <?php esc_html_e( 'We are good. No table uses MyISAM engine.', 'litespeed-cache' ); ?>
                    </td>
                </tr>
            <?php endif; ?>
        </tbody>
    </table>

</div>

<style type="text/css">
    .litespeed-body .field-col {
        display: inline-block;
        vertical-align: top;
        margin-left: 20px;
        margin-right: 20px;
    }

    .litespeed-body .field-col:first-child {
        margin-left: 0;
    }
</style>

<h3 class="litespeed-title"><?php esc_html_e( 'Database Summary', 'litespeed-cache' ); ?></h3>
<div>
    <div class="field-col">
        <p>
        	<?php esc_html_e( 'Autoload size', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( Utility::real_size( $autoload_summary->autoload_size ) ); ?></strong></p>
        <p><?php esc_html_e( 'Autoload entries', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $autoload_summary->autload_entries ); ?></strong></p>
    </div>

    <div class="field-col">
        <p><?php esc_html_e( 'Autoload top list', 'litespeed-cache' ); ?>:</p>
        <table class="wp-list-table widefat striped litespeed-width-auto litespeed-table-compact">
            <thead>
                <tr>
                    <th scope="col">#</th>
                    <th scope="col"><?php esc_html_e( 'Option Name', 'litespeed-cache' ); ?></th>
                    <th scope="col"><?php esc_html_e( 'Autoload', 'litespeed-cache' ); ?></th>
                    <th scope="col"><?php esc_html_e( 'Size', 'litespeed-cache' ); ?></th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ( $autoload_summary->autoload_toplist as $k => $v ) : ?>
                    <tr>
                        <td><?php echo esc_html( $k + 1 ); ?></td>
                        <td><?php echo esc_html( $v->option_name ); ?></td>
                        <td><?php echo esc_html( $v->autoload ); ?></td>
                        <td><?php echo esc_html( $v->option_value_length ); ?></td>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
</div><?php
/**
 * LiteSpeed Cache Database Optimization
 *
 * @package LiteSpeed
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
    'manage'   => esc_html__( 'Manage', 'litespeed-cache' ),
);

if ( ! is_network_admin() ) {
    $menu_list['settings'] = esc_html__( 'DB Optimization Settings', 'litespeed-cache' );
}

?>

<div class="wrap">
    <h1 class="litespeed-h1">
        <?php esc_html_e( 'LiteSpeed Cache Database Optimization', 'litespeed-cache' ); ?>
    </h1>
    <span class="litespeed-desc">
        <?php echo esc_html( 'v' . Core::VER ); ?>
    </span>
    <hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
    <h2 class="litespeed-header nav-tab-wrapper">
        <?php GUI::display_tab_list( $menu_list ); ?>
    </h2>

    <div class="litespeed-body">
    <?php
        foreach ( $menu_list as $tab_key => $tab_val ) {
			echo '<div data-litespeed-layout="' . esc_attr( $tab_key ) . '">';
			require LSCWP_DIR . 'tpl/db_optm/' . sanitize_file_name( $tab_key ) . '.tpl.php';
			echo '</div>';
        }
    ?>
    </div>

</div><?php
/**
 * LiteSpeed Cache Database Optimization Settings
 *
 * Manages settings for database optimization in LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'DB Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/database/#db-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $option_id = Base::O_DB_OPTM_REVISIONS_MAX; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Specify the number of most recent revisions to keep when cleaning revisions.', 'litespeed-cache' ); ?>
				<?php $this->_validate_ttl( $option_id, 1, 100, true ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_DB_OPTM_REVISIONS_AGE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?> <?php esc_html_e( 'Day(s)', 'litespeed-cache' ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Revisions newer than this many days will be kept when cleaning revisions.', 'litespeed-cache' ); ?>
				<?php $this->_validate_ttl( $option_id, 1, 600, true ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
$this->form_end();
?><?php
/**
 * LiteSpeed Cache Database Login Cookie Notice
 *
 * Displays a notice about mismatched login cookies for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

$err =
	esc_html__('NOTICE: Database login cookie did not match your login cookie.', 'litespeed-cache') .
	' ' .
	esc_html__('If the login cookie was recently changed in the settings, please log out and back in.', 'litespeed-cache') .
	' ' .
	sprintf(
		esc_html__('If not, please verify the setting in the %sAdvanced tab%s.', 'litespeed-cache'),
		"<a href='" . esc_url(admin_url('admin.php?page=litespeed-cache#advanced')) . '">',
		'</a>'
	);

if (LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS') {
	$err .= ' ' . esc_html__('If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.', 'litespeed-cache');
}

self::add_notice(self::NOTICE_YELLOW, $err);
<?php
/**
 * LiteSpeed Cache Unexpected Cache Rule Notice
 *
 * Displays a warning notice about conflicting cache rules in .htaccess that may cause stale content.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined('WPINC') || exit();

$err = sprintf(
	esc_html__(
		'Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (%3$sLearn More%4$s)',
		'litespeed-cache'
	),
	'.htaccess',
	'<code>ExpiresDefault</code>',
	'<a href="https://docs.litespeedtech.com/lscache/lscwp/troubleshoot/#browser-displays-stale-content" target="_blank">',
	'</a>'
);

// Other plugin left cache expired rules in .htaccess which will cause conflicts
echo wp_kses_post( self::build_notice(self::NOTICE_YELLOW . ' lscwp-notice-ruleconflict', $err) );
<?php
/**
 * LiteSpeed Cache Deactivation Modal
 *
 * Renders the deactivation modal interface for LiteSpeed Cache, allowing users to send reason of deactivation.
 *
 * @package LiteSpeed
 * @since 7.3
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

// Modal data
$_title = esc_html__('Deactivate LiteSpeed Cache', 'litespeed');
$_id    = 'litespeed-modal-deactivate';

$reasons = array(
	array(
		'value' => 'Temporary',
		'text' => esc_html__('The deactivation is temporary', 'litespeed-cache'),
		'id' => 'temp',
		'selected' => true,
	),
	array(
		'value' => 'Performance worse',
		'text' => esc_html__('Site performance is worse', 'litespeed-cache'),
		'id' => 'performance',
	),
	array(
		'value' => 'Plugin complicated',
		'text' => esc_html__('Plugin is too complicated', 'litespeed-cache'),
		'id' => 'complicated',
	),
	array(
		'value' => 'Other',
		'text' => esc_html__('Other', 'litespeed-cache'),
		'id' => 'other',
	),
);
?>
<div style="display: none">
    <div id="litespeed-deactivation" class="iziModal">
        <div id="litespeed-modal-deactivate">
            <form id="litespeed-deactivation-form" method="post">
                <p><?php esc_attr_e('Why are you deactivating the plugin?', 'litespeed-cache'); ?></p>
                <div class="deactivate-reason-wrapper">
                    <?php foreach ($reasons as $reason) : ?>
                    <label for="litespeed-deactivate-reason-<?php esc_attr_e( $reason['id'] ); ?>">
                        <input type="radio" id="litespeed-deactivate-reason-<?php esc_attr_e( $reason['id'] ); ?>" value="<?php esc_attr_e( $reason['value'] ); ?>"
                            <?php isset($reason['selected']) && $reason['selected'] ? ' checked="checked"' : ''; ?> name="litespeed-reason" />
                        <?php esc_html_e( $reason['text'] ); ?>
                    </label>
                    <?php endforeach; ?>
                </div>
                <div class="deactivate-clear-settings-wrapper">
                    <i style="font-size: 0.9em;">
                        <?php
                            esc_html_e('On uninstall, all plugin settings will be deleted.', 'litespeed-cache');
                        ?>
                    </i>
                    <br />
                    <i style="font-size: 0.9em;">

                        <?php
                            printf(
                                esc_html__('If you have used Image Optimization, please %sDestroy All Optimization Data%s first. NOTE: this does not remove your optimized images.', 'litespeed-cache'),
                                '<a href="admin.php?page=litespeed-img_optm#litespeed-imageopt-destroy" target="_blank">',
                                '</a>'
                            );
                        ?>
                    </i>
                </div>
                <div class="deactivate-actions">
                    <input type="submit" id="litespeed-deactivation-form-submit" class="button button-primary" value="<?php esc_attr_e('Deactivate', 'litespeed-cache'); ?>" title="<?php esc_attr_e('Deactivate plugin', 'litespeed-cache'); ?>" />
                    <input type="button" id="litespeed-deactivation-form-cancel" class="button litespeed-btn-warning" value="<?php esc_attr_e('Cancel', 'litespeed-cache'); ?>" title="<?php esc_attr_e('Close popup', 'litespeed-cache'); ?>" />
                </div>
            </form>
        </div>
    </div>
</div>
<script>
    (function ($) {
    'use strict';
        jQuery(document).ready(function () {
            var lscId = '<?php echo home_url(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>';
            var modalesc_attr_element = $('#litespeed-deactivation');
            var deactivateesc_attr_element = $('#deactivate-litespeed-cache');

            if (deactivateesc_attr_element.length > 0 && modalesc_attr_element.length > 0) {
                // Variables
                var modal_formElement = $('#litespeed-deactivation-form');

                deactivateesc_attr_element.on('click', function (e) {
                    e.preventDefault();
                    e.stopImmediatePropagation();
                    modal_formElement.attr('action', decodeURI($(this).attr('href')));
                    modalesc_attr_element.iziModal({
                        radius: '.5rem',
                        width: 550,
                        autoOpen: true,
                    });
                });

                $(document).on('submit', '#litespeed-deactivation-form', function (e) {
                    e.preventDefault();
                    $('#litespeed-deactivation-form-submit').attr('disabled', true);
                    var container = $('#litespeed-deactivation-form');

                    // Save selected data
                    var data = {
                        id: lscId,
                        siteLink: window.location.hostname,
                        reason: $(container).find('[name=litespeed-reason]:checked').val()
                    };

                    $.ajax({
                        url: 'https://wpapi.quic.cloud/survey',
                        dataType: 'json',
                        method: 'POST',
                        cache: false,
                        data: data,
                        success: function (data) {
                            console.log('QC data sent.');
                        },
                        error: function (xhr, error) {
                            console.log('Error sending data to QC.');
                        },
                    });

                    $('#litespeed-deactivation-form')[0].submit();
                });
                $(document).on('click', '#litespeed-deactivation-form-cancel', function (e) {
                    modalesc_attr_element.iziModal('close');
                });
            }
        });
    })(jQuery);
</script>
<?php
/**
 * LiteSpeed Cache Admin Footer
 *
 * Customizes the admin footer text for LiteSpeed Cache with links to rate, documentation, support forum, and community.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$stars = '<span class="wporg-ratings rating-stars"><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span></span>';

$rate_us = '<a href="https://wordpress.org/support/plugin/litespeed-cache/reviews/?filter=5#new-post" rel="noopener noreferrer" target="_blank">' . sprintf( esc_html__( 'Rate %1$s on %2$s', 'litespeed-cache' ), '<strong>' . esc_html__( 'LiteSpeed Cache', 'litespeed-cache' ) . $stars . '</strong>', 'WordPress.org' ) . '</a>';

$wiki = '<a href="https://docs.litespeedtech.com/lscache/lscwp/" target="_blank">' . esc_html__( 'Read LiteSpeed Documentation', 'litespeed-cache' ) . '</a>';

$forum = '<a href="https://wordpress.org/support/plugin/litespeed-cache" target="_blank">' . esc_html__( 'Visit LSCWP support forum', 'litespeed-cache' ) . '</a>';

$community = '<a href="https://litespeedtech.com/slack" target="_blank">' . esc_html__( 'Join LiteSpeed Slack community', 'litespeed-cache' ) . '</a>';

// Change the footer text
if ( ! is_multisite() || is_network_admin() ) {
	$footer_text = $rate_us . ' | ' . $wiki . ' | ' . $forum . ' | ' . $community;
} else {
	$footer_text = $wiki . ' | ' . $forum . ' | ' . $community;
}
<?php
/**
 * LiteSpeed Cache Network Primary Site Configuration Warning
 *
 * Displays a warning notice on subsite admin pages when the network admin has enforced primary site configurations.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

if ( ! is_multisite() ) {
    return;
}

if ( get_current_blog_id() === BLOG_ID_CURRENT_SITE ) {
    return;
}

if ( ! $this->network_conf( Base::NETWORK_O_USE_PRIMARY ) ) {
    return;
}
?>
<div class="litespeed-callout notice notice-error inline">
    <h4><?php esc_html_e( 'WARNING', 'litespeed-cache' ); ?></h4>
    <p>
        <?php esc_html_e( 'The network admin selected use primary site configs for all subsites.', 'litespeed-cache' ); ?>
        <?php esc_html_e( 'The following options are selected, but are not editable in this settings page.', 'litespeed-cache' ); ?>
    </p>
</div><?php
/**
 * LiteSpeed Cache Installation Notice
 *
 * Displays a notice informing users that the LiteSpeed Cache plugin was installed by the server admin.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$buf  = sprintf(
	'<h3>%s</h3>
	<p>%s</p>
	<p>%s</p>
	<p>%s</p>
	<p>%s</p>
	<p>%s</p>
	<ul>
		<li>%s</li>
		<li>%s</li>
	</ul>',
	esc_html__( 'LiteSpeed Cache plugin is installed!', 'litespeed-cache' ),
	esc_html__( 'This message indicates that the plugin was installed by the server admin.', 'litespeed-cache' ),
	esc_html__( 'The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.', 'litespeed-cache' ),
	esc_html__( 'However, there is no way of knowing all the possible customizations that were implemented.', 'litespeed-cache' ),
	esc_html__( 'For that reason, please test the site to make sure everything still functions properly.', 'litespeed-cache' ),
	esc_html__( 'Examples of test cases include:', 'litespeed-cache' ),
	esc_html__( 'Visit the site while logged out.', 'litespeed-cache' ),
	esc_html__( 'Create a post, make sure the front page is accurate.', 'litespeed-cache' )
);
$buf .= sprintf(
	/* translators: %s: Link tags */
	esc_html__( 'If there are any questions, the team is always happy to answer any questions on the %ssupport forum%s.', 'litespeed-cache' ),
	'<a href="https://wordpress.org/support/plugin/litespeed-cache" rel="noopener noreferrer" target="_blank">',
	'</a>'
);
$buf .= '<p>' . esc_html__( 'If you would rather not move at litespeed, you can deactivate this plugin.', 'litespeed-cache' ) . '</p>';

self::add_notice( self::NOTICE_BLUE . ' lscwp-whm-notice', $buf );
<?php
/**
 * LiteSpeed Cache Warning Notice
 *
 * Displays warnings if LiteSpeed Cache functionality is unavailable due to server or plugin configuration issues.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$reasons = array();

if ( ! defined( 'LITESPEED_ALLOWED' ) ) {
    if ( defined( 'LITESPEED_SERVER_TYPE' ) && LITESPEED_SERVER_TYPE === 'NONE' ) {
        $reasons[] = array(
            'title' => esc_html__( 'To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.', 'litespeed-cache' ),
            'link'  => 'https://docs.litespeedtech.com/lscache/lscwp/faq/#why-do-the-cache-features-require-a-litespeed-server',
        );
    } else {
        $reasons[] = array(
            'title' => esc_html__( 'Please enable the LSCache Module at the server level, or ask your hosting provider.', 'litespeed-cache' ),
            'link'  => 'https://docs.litespeedtech.com/lscache/lscwp/#server-level-prerequisites',
        );
    }
} elseif ( ! defined( 'LITESPEED_ON' ) ) {
    $reasons[] = array(
        'title' => esc_html__( 'Please enable LiteSpeed Cache in the plugin settings.', 'litespeed-cache' ),
        'link'  => 'https://docs.litespeedtech.com/lscache/lscwp/cache/#enable-cache',
    );
}

if ( $reasons ) : ?>
    <div class="litespeed-callout notice notice-error inline">
        <h4><?php esc_html_e( 'WARNING', 'litespeed-cache' ); ?></h4>
        <p>
            <?php esc_html_e( 'LSCache caching functions on this page are currently unavailable!', 'litespeed-cache' ); ?>
        </p>
        <ul class="litespeed-list">
            <?php foreach ( $reasons as $reason ) : ?>
                <li>
                    <?php echo esc_html( $reason['title'] ); ?>
                    <a href="<?php echo esc_url( $reason['link'] ); ?>" target="_blank" class="litespeed-learn-more"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a>
                </li>
            <?php endforeach; ?>
        </ul>
    </div>
<?php endif; ?>
<?php
/**
 * LiteSpeed Cache Upgrade Notice
 *
 * Displays a notice informing the user that the LiteSpeed Cache plugin has been upgraded and a page refresh is needed to complete the configuration data upgrade.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$message = esc_html__( 'LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.', 'litespeed-cache' );

echo wp_kses_post( self::build_notice( self::NOTICE_BLUE, $message ) );
<?php
/**
 * LiteSpeed Cache Post Meta Settings
 *
 * Renders the post meta settings interface for LiteSpeed Cache, allowing configuration of post-specific options.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

wp_nonce_field( self::POST_NONCE_ACTION, Router::NONCE );

$pid = get_the_ID();

foreach ( $this->_postmeta_settings as $key => $label ) {
	$existing_val = get_post_meta( $pid, $key, true );

	if ( in_array( $key, array( 'litespeed_vpi_list', 'litespeed_vpi_list_mobile' ), true ) ) {
		if ( is_array( $existing_val ) ) {
			$existing_val = implode( PHP_EOL, $existing_val );
		}
		?>
		<div style="margin-bottom:10px;">
			<label for="<?php echo esc_attr( Str::trim_quotes( $key ) ); ?>"><?php echo esc_html( $label ); ?></label>
			<textarea style="width:100%" rows="5" id="<?php echo esc_attr( Str::trim_quotes( $key ) ); ?>" name="<?php echo esc_attr( Str::trim_quotes( $key ) ); ?>"><?php echo esc_textarea( $existing_val ); ?></textarea>
		</div>
		<?php
	} else {
		?>
		<div style="display:flex;margin-bottom:10px;align-items: center;gap: 2ch;justify-content: space-between;">
			<label for="<?php echo esc_attr( $key ); ?>"><?php echo esc_html( $label ); ?></label>
			<input class="litespeed-tiny-toggle" id="<?php echo esc_attr( Str::trim_quotes( $key ) ); ?>" name="<?php echo esc_attr( Str::trim_quotes( $key ) ); ?>" type="checkbox" value="1" <?php echo $existing_val ? 'checked' : ''; ?> />
		</div>
		<?php
	}
}
?>

<div style="text-align:right;">
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/metabox/' ); ?>
</div><?php
/**
 * LiteSpeed Cache Tuning Settings
 *
 * Manages tuning settings for LiteSpeed Cache, including Guest Mode configurations.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Tuning Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/#tuning-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $option_id = Base::O_GUEST_UAS; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $option_id, 30 ); ?>
				</div>
				<div>
					<?php $this->recommended( $option_id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php esc_html_e( 'Listed User Agents will be considered as Guest Mode visitors.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_GUEST_IPS; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $option_id, 50 ); ?>
				</div>
				<div>
					<?php $this->recommended( $option_id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php esc_html_e( 'Listed IPs will be considered as Guest Mode visitors.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>
</tbody></table>

<?php $this->form_end(); ?><?php
/**
 * LiteSpeed Cache Guest Mode Setting
 *
 * Manages the Guest Mode setting for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$guest_update_url = wp_parse_url( LSWCP_PLUGIN_URL . GUI::PHP_GUEST, PHP_URL_PATH );

?>
	<tr>
		<th>
			<?php $option_id = Base::O_GUEST; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.", 'litespeed-cache' ); ?>
				<?php esc_html_e( 'This option can help to correct the cache vary for certain advanced mobile or tablet visitors.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/#guest-mode' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
				<br /><?php Doc::crawler_affected(); ?>
			</div>
			<?php if ( $this->conf( $option_id ) ) : ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Guest Mode testing result', 'litespeed-cache' ); ?>:
					<font id='litespeed_gm_status'><?php esc_html_e( 'Testing', 'litespeed-cache' ); ?>...</font>
				</div>
				<script>
					(function ($) {
						jQuery(document).ready(function () {
							$.post( '<?php echo $guest_update_url; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>', function(data){
								if ( data === '[]' || data === '{"reload":"yes"}' ) {
									$('#litespeed_gm_status').html('<font class="litespeed-success"><?php esc_html_e( 'Guest Mode passed testing.', 'litespeed-cache' ); ?></font>');
								}
								else {
									$('#litespeed_gm_status').html('<font class="litespeed-danger"><?php esc_html_e( 'Guest Mode failed to test.', 'litespeed-cache' ); ?></font>');
								}
							}).fail( function(){
								$('#litespeed_gm_status').html('<font class="litespeed-danger"><?php esc_html_e( 'Guest Mode failed to test.', 'litespeed-cache' ); ?></font>');
							});
						});
					})(jQuery);
				</script>
			<?php endif; ?>
		</td>
	</tr><?php
/**
 * LiteSpeed Cache Network General Settings
 *
 * Manages network-wide general settings for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'General Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/' ); ?>
</h3>

<?php
$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );
?>

<table class="wp-list-table striped litespeed-table"><tbody>
	<?php require LSCWP_DIR . 'tpl/general/settings_inc.auto_upgrade.tpl.php'; ?>

	<tr>
		<th><?php esc_html_e( 'Use Primary Site Configuration', 'litespeed-cache' ); ?></th>
		<td>
			<?php $this->build_switch( Base::NETWORK_O_USE_PRIMARY ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( "Check this option to use the primary site's configuration for all subsites.", 'litespeed-cache' ); ?>
				<?php esc_html_e( 'This will disable the settings page on all subsites.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<?php require LSCWP_DIR . 'tpl/general/settings_inc.guest.tpl.php'; ?>

</tbody></table>

<?php
$this->form_end( true );
?><?php
/**
 * LiteSpeed Cache QUIC.cloud Online Services
 *
 * Manages QUIC.cloud online services integration for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$cloud_summary = Cloud::get_summary();

$cloud_instance = Cloud::cls();
$cloud_instance->finish_qc_activation( 'online' );
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'QUIC.cloud Online Services', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://www.quic.cloud/quic-cloud-services-and-features/' ); ?>
</h3>

<div class="litespeed-desc"><?php esc_html_e( 'QUIC.cloud provides CDN and online optimization services, and is not required. You may use many features of this plugin without QUIC.cloud.', 'litespeed-cache' ); ?></div>

<?php if ( $cloud_instance->activated() ) : ?>
	<div class="litespeed-callout notice notice-success inline">
		<h4><?php esc_html_e( 'Current Cloud Nodes in Service', 'litespeed-cache' ); ?>
			<a class="litespeed-right litespeed-redetect" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_CLEAR_CLOUD, false, null, array( 'ref' => 'online' ) ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php esc_html_e( 'Click to clear all nodes for further redetection.', 'litespeed-cache' ); ?>' data-litespeed-cfm="<?php esc_html_e( 'Are you sure you want to clear all cloud nodes?', 'litespeed-cache' ); ?>"><i class='litespeed-quic-icon'></i> <?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?></a>
		</h4>
		<p>
			<?php
			$has_service = false;
			foreach ( Cloud::$SERVICES as $svc ) {
				if ( isset( $cloud_summary[ 'server.' . $svc ] ) ) {
					$has_service = true;
					printf(
						'<p><strong>%1$s</strong> <code>%2$s</code> <strong>%3$s</strong> <code>%4$s</code> <strong>%5$s</strong> <code>%6$s</code></p>',
						esc_html__( 'Service:', 'litespeed-cache' ),
						esc_html( $svc ),
						esc_html__( 'Node:', 'litespeed-cache' ),
						esc_html( $cloud_summary[ 'server.' . $svc ] ),
						esc_html__( 'Connected Date:', 'litespeed-cache' ),
						esc_html( Utility::readable_time( $cloud_summary[ 'server_date.' . $svc ] ) )
					);
				}
			}
			if ( ! $has_service ) {
				esc_html_e( 'No cloud services currently in use', 'litespeed-cache' );
			}
			?>
		</p>
	</div>
<?php endif; ?>

<?php if ( ! $cloud_instance->activated() ) : ?>
	<h4 class="litespeed-text-md litespeed-top30"><span class="dashicons dashicons-no-alt litespeed-danger"></span> <?php esc_html_e( 'QUIC.cloud Integration Disabled', 'litespeed-cache' ); ?></h4>
	<p><?php esc_html_e( 'Speed up your WordPress site even further with QUIC.cloud Online Services and CDN.', 'litespeed-cache' ); ?></p>
	<div class="litespeed-desc"><?php esc_html_e( 'Free monthly quota available.', 'litespeed-cache' ); ?></div>
	<p><a class="button button-primary" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ACTIVATE, false, null, array( 'ref' => 'online' ) ) ); ?>">
			<span class="dashicons dashicons-yes"></span>
			<?php esc_html_e( 'Enable QUIC.cloud services', 'litespeed-cache' ); ?>
		</a></p>

	<div>
		<h3 class="litespeed-title-section"><?php esc_html_e( 'Online Services', 'litespeed-cache' ); ?></h3>
		<p><?php esc_html_e( "QUIC.cloud's Online Services improve your site in the following ways:", 'litespeed-cache' ); ?></p>
		<ul>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( '<strong>Image Optimization</strong> gives you smaller image file sizes that transmit faster.', 'litespeed-cache' ) ); ?></li>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( '<strong>Page Optimization</strong> streamlines page styles and visual elements for faster loading.', 'litespeed-cache' ) ); ?></li>
		</ul>

		<h4 class="litespeed-text-md litespeed-margin-bottom-remove"><?php esc_html_e( 'Image Optimization', 'litespeed-cache' ); ?></h4>
		<p><?php esc_html_e( "QUIC.cloud's Image Optimization service does the following:", 'litespeed-cache' ); ?></p>
		<ul>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php esc_html_e( "Processes your uploaded PNG and JPG images to produce smaller versions that don't sacrifice quality.", 'litespeed-cache' ); ?></li>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php esc_html_e( 'Optionally creates next-generation WebP or AVIF image files.', 'litespeed-cache' ); ?></li>
		</ul>
		<p><?php esc_html_e( 'Processing for PNG, JPG, and WebP image formats is free. AVIF is available for a fee.', 'litespeed-cache' ); ?> <a href="https://www.quic.cloud/quic-cloud-services-and-features/image-optimization-service/" target="_blank"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a></p>

		<h4 class="litespeed-text-md litespeed-margin-bottom-remove"><?php esc_html_e( 'Page Optimization', 'litespeed-cache' ); ?></h4>
		<p><?php esc_html_e( "QUIC.cloud's Page Optimization services address CSS bloat, and improve the user experience during page load, which can lead to improved page speed scores.", 'litespeed-cache' ); ?></p>
		<ul>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( '<strong>Critical CSS (CCSS)</strong> loads visible above-the-fold content faster and with full styling.', 'litespeed-cache' ) ); ?></li>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( '<strong>Unique CSS (UCSS)</strong> removes unused style definitions for a speedier page load overall.', 'litespeed-cache' ) ); ?></li>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( '<strong>Low Quality Image Placeholder (LQIP)</strong> gives your imagery a more pleasing look as it lazy loads.', 'litespeed-cache' ) ); ?></li>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( '<strong>Viewport Images (VPI)</strong> provides a well-polished fully-loaded view above the fold.', 'litespeed-cache' ) ); ?></li>
		</ul>

		<div>
			<a href="https://www.quic.cloud/quic-cloud-services-and-features/page-optimization/"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a>
		</div>
	</div>

	<div>
		<h3 class="litespeed-title-section"><?php esc_html_e( 'Content Delivery Network', 'litespeed-cache' ); ?></h3>

		<h4 class="litespeed-text-md litespeed-margin-bottom-remove"><?php esc_html_e( 'QUIC.cloud CDN:', 'litespeed-cache' ); ?></h4>
		<ul>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( 'Caches your entire site, including dynamic content and <strong>ESI blocks</strong>.', 'litespeed-cache' ) ); ?></li>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( 'Delivers global coverage with a growing <strong>network of 80+ PoPs</strong>.', 'litespeed-cache' ) ); ?></li>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( 'Provides <strong>security at the CDN level</strong>, protecting your server from attack.', 'litespeed-cache' ) ); ?></li>
			<li><span class="dashicons dashicons-saved litespeed-primary"></span> <?php echo wp_kses_post( __( 'Offers optional <strong>built-in DNS service</strong> to simplify CDN onboarding.', 'litespeed-cache' ) ); ?></li>
		</ul>

		<div>
			<a href="https://www.quic.cloud/quic-cloud-services-and-features/quic-cloud-cdn-service/"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a>
		</div>

		<hr class="litespeed-hr-with-space">

		<p class="litespeed-desc"><?php esc_html_e( 'In order to use most QUIC.cloud services, you need quota. QUIC.cloud gives you free quota every month, but if you need more, you can purchase it.', 'litespeed-cache' ); ?> <a href="https://docs.quic.cloud/billing/services/" target="_blank"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a></p>

		<div class="litespeed-flex litespeed-flex-align-center">
			<a class="button button-secondary litespeed-right20" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ACTIVATE, false, null, array( 'ref' => 'online' ) ) ); ?>">
				<span class="dashicons dashicons-yes"></span>
				<?php esc_html_e( 'Enable QUIC.cloud services', 'litespeed-cache' ); ?>
			</a>
		</div>
	</div>

<?php elseif ( ! empty( $cloud_summary['qc_activated'] ) && ( 'linked' === $cloud_summary['qc_activated'] || 'cdn' === $cloud_summary['qc_activated'] ) ) : ?>
	<h4 class="litespeed-text-md litespeed-top30"><span class="dashicons dashicons-saved litespeed-success"></span> <?php esc_html_e( 'QUIC.cloud Integration Enabled', 'litespeed-cache' ); ?></h4>
	<p><?php esc_html_e( 'Your site is connected and ready to use QUIC.cloud Online Services.', 'litespeed-cache' ); ?>
		<?php if ( empty( $cloud_summary['partner'] ) ) : ?>
			<a href="<?php echo esc_url( $cloud_instance->qc_link() ); ?>" class="litespeed-link-with-icon" target="_blank"><?php esc_html_e( 'Go to QUIC.cloud dashboard', 'litespeed-cache' ); ?> <span class="dashicons dashicons-external"></span></a>
		<?php endif; ?>
	</p>

	<ul>
		<li><span class="dashicons dashicons-yes litespeed-success"></span> <?php esc_html_e( 'Page Optimization', 'litespeed-cache' ); ?></li>
		<li><span class="dashicons dashicons-yes litespeed-success"></span> <?php esc_html_e( 'Image Optimization', 'litespeed-cache' ); ?></li>
		<?php if ( 'cdn' === $cloud_summary['qc_activated'] ) : ?>
			<li><span class="dashicons dashicons-yes litespeed-success"></span> <?php esc_html_e( 'CDN - Enabled', 'litespeed-cache' ); ?></li>
		<?php else : ?>
			<li><span class="dashicons dashicons-no-alt litespeed-default"></span> <span class="litespeed-default"><?php esc_html_e( 'CDN - Disabled', 'litespeed-cache' ); ?></span></li>
		<?php endif; ?>
	</ul>

<?php else : ?>
	<h4 class="litespeed-text-md litespeed-top30"><span class="dashicons dashicons-saved litespeed-success"></span> <?php esc_html_e( 'QUIC.cloud Integration Enabled with limitations', 'litespeed-cache' ); ?></h4>
	<p><?php echo wp_kses_post( __( 'Your site is connected and using QUIC.cloud Online Services as an <strong>anonymous user</strong>. The CDN function and certain features of optimization services are not available for anonymous users. Link to QUIC.cloud to use the CDN and all available Online Services features.', 'litespeed-cache' ) ); ?></p>
	<div class="litespeed-desc"><?php esc_html_e( 'Free monthly quota available.', 'litespeed-cache' ); ?></div>

	<ul>
		<li><span class="dashicons dashicons-yes litespeed-success"></span> <?php esc_html_e( 'Page Optimization', 'litespeed-cache' ); ?></li>
		<li><span class="dashicons dashicons-yes litespeed-success"></span> <?php esc_html_e( 'Image Optimization', 'litespeed-cache' ); ?></li>
		<li><span class="dashicons dashicons-no-alt litespeed-danger"></span> <?php esc_html_e( 'CDN - not available for anonymous users', 'litespeed-cache' ); ?></li>
	</ul>

	<p><a class="button button-primary" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ACTIVATE, false, null, array( 'ref' => 'online' ) ) ); ?>"><span class="dashicons dashicons-yes"></span><?php esc_html_e( 'Link to QUIC.cloud', 'litespeed-cache' ); ?></a></p>
<?php endif; ?>

<?php if ( $cloud_instance->activated() ) : ?>
	<div class="litespeed-empty-space-medium"></div>
	<div class="litespeed-column-with-boxes-footer">
		<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_RESET, false, null, array( 'ref' => 'online' ) ) ); ?>" class="litespeed-link-with-icon litespeed-danger" data-litespeed-cfm="<?php esc_html_e( 'Are you sure you want to disconnect from QUIC.cloud? This will not remove any data from the QUIC.cloud dashboard.', 'litespeed-cache' ); ?>"><span class="dashicons dashicons-dismiss"></span><?php esc_html_e( 'Disconnect from QUIC.cloud', 'litespeed-cache' ); ?></a>
		<div class="litespeed-desc litespeed-margin-bottom-remove"><?php esc_html_e( 'Remove QUIC.cloud integration from this site. Note: QUIC.cloud data will be preserved so you can re-enable services at any time. If you want to fully remove your site from QUIC.cloud, delete the domain through the QUIC.cloud Dashboard first.', 'litespeed-cache' ); ?></div>
	</div>
<?php endif; ?><?php
/**
 * LiteSpeed Cache General Settings
 *
 * Manages general settings interface for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
    'online'          => esc_html__( 'Online Services', 'litespeed-cache' ),
    'settings'        => esc_html__( 'General Settings', 'litespeed-cache' ),
    'settings_tuning' => esc_html__( 'Tuning', 'litespeed-cache' ),
);

if ( is_network_admin() ) {
    $menu_list = array(
        'network_settings' => esc_html__( 'General Settings', 'litespeed-cache' ),
    );
}

?>

<div class="wrap">
    <h1 class="litespeed-h1">
        <?php esc_html_e( 'LiteSpeed Cache General Settings', 'litespeed-cache' ); ?>
    </h1>
    <span class="litespeed-desc">
        v<?php echo esc_html( Core::VER ); ?>
    </span>
    <hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
    <h2 class="litespeed-header nav-tab-wrapper">
        <?php GUI::display_tab_list( $menu_list ); ?>
    </h2>

    <div class="litespeed-body">
        <?php
        foreach ( $menu_list as $menu_key => $val ) {
            echo '<div data-litespeed-layout="' . esc_attr( $menu_key ) . '">';
            require LSCWP_DIR . 'tpl/general/' . sanitize_file_name( $menu_key ) . '.tpl.php';
            echo '</div>';
        }
        ?>
    </div>

</div><?php
/**
 * LiteSpeed Cache Auto Upgrade Setting
 *
 * Manages the auto-upgrade setting for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

	<!-- build_setting_auto_upgrade -->
	<tr>
		<th>
			<?php $option_id = Base::O_AUTO_UPGRADE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr><?php
/**
 * LiteSpeed Cache General Settings
 *
 * Manages general settings for LiteSpeed Cache, including Guest Mode optimization, server IP, and news settings.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$cloud_instance = Cloud::cls();
$cloud_summary  = Cloud::get_summary();

$ajax_url_getIP = function_exists('get_rest_url') ? get_rest_url(null, 'litespeed/v1/tool/check_ip') : '/';

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'General Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<?php if ( ! $this->_is_multisite ) : ?>
			<?php require LSCWP_DIR . 'tpl/general/settings_inc.auto_upgrade.tpl.php'; ?>
		<?php endif; ?>

		<?php if ( ! $this->_is_multisite ) : ?>
			<?php require LSCWP_DIR . 'tpl/general/settings_inc.guest.tpl.php'; ?>
		<?php endif; ?>

		<tr>
			<th>
				<?php $option_id = Base::O_GUEST_OPTM; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<span class="litespeed-danger litespeed-text-bold">
						🚨
						<?php esc_html_e( 'This option enables maximum optimization for Guest Mode visitors.', 'litespeed-cache' ); ?>
						<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/#guest-optimization', esc_html__( 'Please read all warnings before enabling this option.', 'litespeed-cache' ), false, 'litespeed-danger' ); ?>
					</span>

					<?php
					$type_list = array();
					if ( $this->conf( Base::O_GUEST ) && ! $this->conf( Base::O_OPTM_UCSS ) ) {
						$type_list[] = 'UCSS';
					}
					if ( $this->conf( Base::O_GUEST ) && ! $this->conf( Base::O_OPTM_CSS_ASYNC ) ) {
						$type_list[] = 'CCSS';
					}
					if ( ! empty( $type_list ) ) {
						$the_type = implode( '/', $type_list );
						echo '<br />';
						echo '<font class="litespeed-info">';
						echo '⚠️ ' . sprintf( esc_html__( 'Your %1$s quota on %2$s will still be in use.', 'litespeed-cache' ), esc_html( $the_type ), 'QUIC.cloud' );
						echo '</font>';
					}
					?>

					<?php if ( ! $this->conf( Base::O_GUEST ) ) : ?>
						<br />
						<font class="litespeed-warning litespeed-left10">
							⚠️ <?php esc_html_e( 'Notice', 'litespeed-cache' ); ?>: <?php printf( esc_html__( '%s must be turned ON for this setting to work.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_GUEST ) ) . '</code>' ); ?>
						</font>
					<?php endif; ?>

					<?php if ( ! $this->conf( Base::O_CACHE_MOBILE ) ) : ?>
						<br />
						<font class="litespeed-primary litespeed-left10">
							⚠️ <?php esc_html_e( 'Notice', 'litespeed-cache' ); ?>: <?php printf( esc_html__( 'You need to turn %s on to get maximum result.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_CACHE_MOBILE ) ) . '</code>' ); ?>
						</font>
					<?php endif; ?>

					<?php if ( ! $this->conf( Base::O_IMG_OPTM_WEBP ) ) : ?>
						<br />
						<font class="litespeed-primary litespeed-left10">
							⚠️ <?php esc_html_e( 'Notice', 'litespeed-cache' ); ?>: <?php printf( esc_html__( 'You need to turn %s on and finish all WebP generation to get maximum result.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_IMG_OPTM_WEBP ) ) . '</code>' ); ?>
						</font>
					<?php endif; ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_SERVER_IP; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.", 'litespeed-cache' ); ?>
					<br /><?php esc_html_e( 'Your server IP', 'litespeed-cache' ); ?>: <code id='litespeed_server_ip'>-</code> <a href="javascript:;" class="button button-link" id="litespeed_get_ip"><?php esc_html_e( 'Check my public IP from', 'litespeed-cache' ); ?> CyberPanel.sh</a>
					⚠️ <?php esc_html_e( 'Notice', 'litespeed-cache' ); ?>: <?php esc_html_e( 'the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.', 'litespeed-cache' ); ?>
					<br /><?php esc_html_e( 'Please make sure this IP is the correct one for visiting your site.', 'litespeed-cache' ); ?>

					<?php $this->_validate_ip( $option_id ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_NEWS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

	</tbody>
</table>

<?php $this->form_end(); ?>

<script>
(function ($) {
	jQuery(document).ready(function () {
		/**
		 * Get server IP
		 * @since  3.0
		 */
		$('#litespeed_get_ip').on('click', function (e) {
			console.log('[litespeed] get server IP');
			$.ajax({
				url: '<?php echo $ajax_url_getIP; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>',
				dataType: 'json',
				beforeSend: function (xhr) {
					xhr.setRequestHeader('X-WP-Nonce', '<?php echo esc_js(wp_create_nonce('wp_rest')); ?>');
					$('#litespeed_server_ip').html('Detecting...');
				},
				success: function (data) {
					$('#litespeed_server_ip').html('Done');
					console.log('[litespeed] get server IP response: ' + data);
					$('#litespeed_server_ip').html(data);
				},
				error: function (xhr, error) {
					console.log('[litespeed] get server IP error', error);
					$('#litespeed_server_ip').html('Failed to detect IP');
				},
				complete: function (xhr, status) {
					console.log('[litespeed] AJAX complete', status, xhr);
				},
			});
		});
	});
})(jQuery);
</script><?php
/**
 * LiteSpeed Cache View .htaccess
 *
 * Renders the .htaccess view interface for LiteSpeed Cache, displaying the contents and paths of frontend and backend .htaccess files.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$content = null;
try {
	$content = Htaccess::cls()->htaccess_read();
} catch ( \Exception $e ) {
	?>
	<div class="notice notice-error is-dismissible">
		<p><?php echo wp_kses_post( $e->getMessage() ); ?></p>
	</div>
	<?php
}

$htaccess_path = Htaccess::get_frontend_htaccess();

// Check for `ExpiresDefault` in .htaccess when LiteSpeed is enabled
if ( defined( 'LITESPEED_ON' ) && $content && stripos( $content, "\nExpiresDefault" ) !== false ) {
	$is_dismissed = GUI::get_option( self::DB_DISMISS_MSG );
	if ( self::RULECONFLICT_DISMISSED !== $is_dismissed ) {
		if ( self::RULECONFLICT_ON !== $is_dismissed ) {
			GUI::update_option( self::DB_DISMISS_MSG, self::RULECONFLICT_ON );
		}
		require_once LSCWP_DIR . 'tpl/inc/show_rule_conflict.php';
	}
}
?>

<h3 class="litespeed-title">
	<?php esc_html_e( 'LiteSpeed Cache View .htaccess', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#view-htaccess-tab' ); ?>
</h3>

<h3 class="litespeed-title-short">
	<?php esc_html_e( '.htaccess Path', 'litespeed-cache' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php esc_html_e( 'Frontend .htaccess Path', 'litespeed-cache' ); ?>
			</th>
			<td>
				<code><?php echo esc_html( $htaccess_path ); ?></code>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Default path is', 'litespeed-cache' ); ?>: <code><?php echo esc_html( Htaccess::get_frontend_htaccess( true ) ); ?></code>
					<br />
					<font class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'PHP Constant %s is supported.', 'litespeed-cache' ), '<code>LITESPEED_CFG_HTACCESS</code>' ); ?>
						<?php printf( esc_html__( 'You can use this code %1$s in %2$s to specify the htaccess file path.', 'litespeed-cache' ), '<code>defined("LITESPEED_CFG_HTACCESS") || define("LITESPEED_CFG_HTACCESS", "your path on server");</code>', '<code>wp-config.php</code>' ); ?>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php esc_html_e( 'Backend .htaccess Path', 'litespeed-cache' ); ?>
			</th>
			<td>
				<code><?php echo esc_html( Htaccess::get_backend_htaccess() ); ?></code>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Default path is', 'litespeed-cache' ); ?>: <code><?php echo esc_html( Htaccess::get_backend_htaccess( true ) ); ?></code>
					<br />
					<font class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'PHP Constant %s is supported.', 'litespeed-cache' ), '<code>LITESPEED_CFG_HTACCESS_BACKEND</code>' ); ?>
						<?php printf( esc_html__( 'You can use this code %1$s in %2$s to specify the htaccess file path.', 'litespeed-cache' ), '<code>defined("LITESPEED_CFG_HTACCESS_BACKEND") || define("LITESPEED_CFG_HTACCESS_BACKEND", "your path on server");</code>', '<code>wp-config.php</code>' ); ?>
					</font>
				</div>
			</td>
		</tr>
	</tbody>
</table>

<?php if ( null !== $content ) : ?>
	<h3 class="litespeed-title">
		<?php printf( esc_html__( 'Current %s Contents', 'litespeed-cache' ), '.htaccess' ); ?>
	</h3>

	<h4><?php echo esc_html( $htaccess_path ); ?></h4>

	<textarea readonly wrap="off" rows="50" class="large-text"><?php echo esc_textarea( $content ); ?></textarea>
<?php endif; ?><?php
/**
 * LiteSpeed Cache Beta Test
 *
 * Renders the beta test interface for LiteSpeed Cache, allowing users to switch plugin versions or test GitHub commits.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

// List of available public versions
$v_list = array(
	'7.3.0.1',
	'7.3',
	'7.2',
	'7.1',
	'7.0.1',
	'6.5.4',
	'5.7.0.1',
	'4.6',
	'3.6.4',
);
?>

<?php $this->form_action( Router::ACTION_DEBUG2, Debug2::TYPE_BETA_TEST ); ?>

	<h3 class="litespeed-title">
		<?php esc_html_e( 'Try GitHub Version', 'litespeed-cache' ); ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#beta-test-tab' ); ?>
	</h3>

	<div class="litespeed-desc">
		<?php esc_html_e( 'Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.', 'litespeed-cache' ); ?>
	</div>
	<div class="litespeed-desc">
		<?php esc_html_e( 'Example', 'litespeed-cache' ); ?>: <code>https://github.com/litespeedtech/lscache_wp/commit/example_comment_hash_d3ebec0535aaed5c932c0</code>
	</div>

	<input type="text" name="<?php echo esc_attr( Debug2::BETA_TEST_URL ); ?>" class="litespeed-input-long" id="litespeed-beta-test" value="">

	<p>
		<a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='dev';"><?php esc_html_e( 'Use latest GitHub Dev commit', 'litespeed-cache' ); ?></a> <code>dev</code>
	</p>

	<p>
		<a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='master';"><?php esc_html_e( 'Use latest GitHub Master commit', 'litespeed-cache' ); ?></a> <code>master</code>
	</p>

	<p>
		<a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='latest';"><?php esc_html_e( 'Use latest WordPress release version', 'litespeed-cache' ); ?></a> <code><?php echo esc_attr( Debug2::BETA_TEST_URL_WP ); ?></code> <?php esc_html_e( 'OR', 'litespeed-cache' ); ?> <code>latest</code>
	</p>

	<p>
		<?php foreach ( $v_list as $v ) : ?>
			<a href="javascript:;" class="button <?php echo '3.6.4' === $v ? 'litespeed-btn-danger' : 'litespeed-btn-success'; ?>" onclick="document.getElementById('litespeed-beta-test').value='<?php echo esc_attr( $v ); ?>';"><?php echo esc_html( $v ); ?></a>
		<?php endforeach; ?>
		<span class="litespeed-danger">
			🚨 <?php esc_html_e( 'Downgrade not recommended. May cause fatal error due to refactored code.', 'litespeed-cache' ); ?>
		</span>
	</p>

	<div class="litespeed-desc">
		<?php printf( esc_html__( 'Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.', 'litespeed-cache' ), '<code>' . esc_html__( 'Use latest GitHub Dev/Master commit', 'litespeed-cache' ) . '</code>' ); ?>
	</div>
	<div class="litespeed-desc">
		<?php printf( esc_html__( 'Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.', 'litespeed-cache' ), '<code>' . esc_html__( 'Use latest WordPress release version', 'litespeed-cache' ) . '</code>' ); ?>
	</div>

	<p class="litespeed-danger">
		🚨 <?php printf( esc_html__( 'In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.', 'litespeed-cache' ), '<code>v3.6.4</code>', '<code>dev/master/v4+</code>' ); ?>
	</p>

	<button type="submit" class="button button-primary"><?php esc_html_e( 'Upgrade', 'litespeed-cache' ); ?></button>
</form><?php
/**
 * LiteSpeed Cache Import/Export Settings
 *
 * Renders the import/export settings interface for LiteSpeed Cache, allowing users to export, import, or reset plugin settings.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$summary = Import::get_summary();
?>

<h3 class="litespeed-title">
	<?php esc_html_e( 'Export Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#importexport-tab' ); ?>
</h3>

<div>
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMPORT, Import::TYPE_EXPORT ) ); ?>" class="button button-primary">
		<?php esc_html_e( 'Export', 'litespeed-cache' ); ?>
	</a>
</div>

<?php if ( ! empty( $summary['export_file'] ) ) : ?>
	<div class="litespeed-desc">
		<?php esc_html_e( 'Last exported', 'litespeed-cache' ); ?>: <code><?php echo esc_html( $summary['export_file'] ); ?></code> <?php echo esc_html( Utility::readable_time( $summary['export_time'] ) ); ?>
	</div>
<?php endif; ?>

<div class="litespeed-desc">
	<?php esc_html_e( 'This will export all current LiteSpeed Cache settings and save them as a file.', 'litespeed-cache' ); ?>
</div>

<h3 class="litespeed-title">
	<?php esc_html_e( 'Import Settings', 'litespeed-cache' ); ?>
</h3>

<?php $this->form_action( Router::ACTION_IMPORT, Import::TYPE_IMPORT, true ); ?>
	<div class="litespeed-div">
		<input type="file" name="ls_file" class="litespeed-input" />
	</div>
	<div class="litespeed-div">
		<?php submit_button( esc_html__( 'Import', 'litespeed-cache' ), 'button button-primary', 'litespeed-submit' ); ?>
	</div>
</form>

<?php if ( ! empty( $summary['import_file'] ) ) : ?>
	<div class="litespeed-desc">
		<?php esc_html_e( 'Last imported', 'litespeed-cache' ); ?>: <code><?php echo esc_html( $summary['import_file'] ); ?></code> <?php echo esc_html( Utility::readable_time( $summary['import_time'] ) ); ?>
	</div>
<?php endif; ?>

<div class="litespeed-desc">
	<?php esc_html_e( 'This will import settings from a file and override all current LiteSpeed Cache settings.', 'litespeed-cache' ); ?>
</div>

<h3 class="litespeed-title">
	<?php esc_html_e( 'Reset All Settings', 'litespeed-cache' ); ?>
</h3>

<div>
	<p class="litespeed-danger">🚨 <?php esc_html_e( 'This will reset all settings to default settings.', 'litespeed-cache' ); ?></p>
</div>
<div>
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMPORT, Import::TYPE_RESET ) ); ?>" data-litespeed-cfm="<?php echo esc_attr( __( 'Are you sure you want to reset all settings back to the default settings?', 'litespeed-cache' ) ); ?>" class="button litespeed-btn-danger-bg">
		<?php esc_html_e( 'Reset Settings', 'litespeed-cache' ); ?>
	</a>
</div><?php
/**
 * LiteSpeed Cache Debug Settings Interface
 *
 * Renders the debug settings interface for LiteSpeed Cache, allowing users to configure debugging options and view the site with specific settings bypassed.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action( $this->_is_network_admin ? Router::ACTION_SAVE_SETTINGS_NETWORK : false );
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Debug Helpers', 'litespeed-cache' ); ?>
</h3>

<a href="<?php echo esc_url( home_url( '/' ) . '?' . Router::ACTION . '=before_optm' ); ?>" class="button button-success" target="_blank">
	<?php esc_html_e( 'View Site Before Optimization', 'litespeed-cache' ); ?>
</a>

<a href="<?php echo esc_url( home_url( '/' ) . '?' . Router::ACTION . '=' . Core::ACTION_QS_NOCACHE ); ?>" class="button button-success" target="_blank">
	<?php esc_html_e( 'View Site Before Cache', 'litespeed-cache' ); ?>
</a>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Debug Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#debug-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG_DISABLE_ALL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'This will disable LSCache and all optimization features for debug purpose.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id, array( esc_html__( 'OFF', 'litespeed-cache' ), esc_html__( 'ON', 'litespeed-cache' ), esc_html__( 'Admin IP Only', 'litespeed-cache' ) ) ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Outputs to a series of files in the %s directory.', 'litespeed-cache' ), '<code>wp-content/litespeed/debug</code>' ); ?>
					<?php esc_html_e( 'To prevent filling up the disk, this setting should be OFF when everything is working.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'The Admin IP option will only output log messages on requests from admin IPs listed below.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG_IPS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id, 50 ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Allows listed IPs (one per line) to perform certain actions from their browsers.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'Your IP', 'litespeed-cache' ); ?>: <code><?php echo esc_html( Router::get_ip() ); ?></code>
					<?php $this->_validate_ip( $option_id ); ?>
					<br />
					<?php
					Doc::learn_more(
						'https://docs.litespeedtech.com/lscache/lscwp/admin/#admin-ip-commands',
						esc_html__( 'More information about the available commands can be found here.', 'litespeed-cache' )
					);
					?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG_LEVEL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id, array( esc_html__( 'Basic', 'litespeed-cache' ), esc_html__( 'Advanced', 'litespeed-cache' ) ) ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Advanced level will log more details.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG_FILESIZE; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?> <?php esc_html_e( 'MB', 'litespeed-cache' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify the maximum size of the log file.', 'litespeed-cache' ); ?>
					<?php $this->recommended( $option_id ); ?>
					<?php $this->_validate_ttl( $option_id, 3, 3000 ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG_COLLAPSE_QS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Shorten query strings in the debug log to improve readability.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG_INC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Only log listed pages.', 'litespeed-cache' ); ?>
					<?php $this->_uri_usage_example(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG_EXC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Prevent any debug log of listed pages.', 'litespeed-cache' ); ?>
					<?php $this->_uri_usage_example(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_DEBUG_EXC_STRINGS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Prevent writing log entries that include listed strings.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>
	</tbody>
</table>

<?php $this->form_end(); ?><?php
/**
 * LiteSpeed Cache Purge Interface
 *
 * Renders the purge interface for LiteSpeed Cache, allowing users to clear various cache types and purge specific content.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$_panels = array(
	array(
		'title'      => esc_html__( 'Purge Front Page', 'litespeed-cache' ),
		'desc'       => esc_html__( 'This will Purge Front Page only', 'litespeed-cache' ),
		'icon'       => 'purge-front',
		'append_url' => Purge::TYPE_PURGE_FRONTPAGE,
	),
	array(
		'title'      => esc_html__( 'Purge Pages', 'litespeed-cache' ),
		'desc'       => esc_html__( 'This will Purge Pages only', 'litespeed-cache' ),
		'icon'       => 'purge-pages',
		'append_url' => Purge::TYPE_PURGE_PAGES,
	),
);

foreach ( Tag::$error_code_tags as $code ) {
	$_panels[] = array(
		'title'      => sprintf( esc_html__( 'Purge %s Error', 'litespeed-cache' ), esc_html( $code ) ),
		'desc'       => sprintf( esc_html__( 'Purge %s error pages', 'litespeed-cache' ), esc_html( $code ) ),
		'icon'       => 'purge-' . esc_attr( $code ),
		'append_url' => Purge::TYPE_PURGE_ERROR . esc_attr( $code ),
	);
}

$_panels[] = array(
	'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - LSCache',
	'desc'       => esc_html__( 'Purge the LiteSpeed cache entries created by this plugin', 'litespeed-cache' ),
	'icon'       => 'purge-all',
	'append_url' => Purge::TYPE_PURGE_ALL_LSCACHE,
);

$_panels[] = array(
	'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'CSS/JS Cache', 'litespeed-cache' ),
	'desc'       => esc_html__( 'This will purge all minified/combined CSS/JS entries only', 'litespeed-cache' ),
	'icon'       => 'purge-cssjs',
	'append_url' => Purge::TYPE_PURGE_ALL_CSSJS,
);

if ( defined( 'LSCWP_OBJECT_CACHE' ) ) {
	$_panels[] = array(
		'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'Object Cache', 'litespeed-cache' ),
		'desc'       => esc_html__( 'Purge all the object caches', 'litespeed-cache' ),
		'icon'       => 'purge-object',
		'append_url' => Purge::TYPE_PURGE_ALL_OBJECT,
	);
}

if ( Router::opcache_enabled() ) {
	$_panels[] = array(
		'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'Opcode Cache', 'litespeed-cache' ),
		'desc'       => esc_html__( 'Reset the entire opcode cache', 'litespeed-cache' ),
		'icon'       => 'purge-opcache',
		'append_url' => Purge::TYPE_PURGE_ALL_OPCACHE,
	);
}

if ( $this->has_cache_folder( 'ccss' ) ) {
	$_panels[] = array(
		'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'Critical CSS', 'litespeed-cache' ),
		'desc'       => esc_html__( 'This will delete all generated critical CSS files', 'litespeed-cache' ),
		'icon'       => 'purge-cssjs',
		'append_url' => Purge::TYPE_PURGE_ALL_CCSS,
	);
}

if ( $this->has_cache_folder( 'ucss' ) ) {
	$_panels[] = array(
		'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'Unique CSS', 'litespeed-cache' ),
		'desc'       => esc_html__( 'This will delete all generated unique CSS files', 'litespeed-cache' ),
		'icon'       => 'purge-cssjs',
		'append_url' => Purge::TYPE_PURGE_ALL_UCSS,
	);
}

if ( $this->has_cache_folder( 'localres' ) ) {
	$_panels[] = array(
		'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'Localized Resources', 'litespeed-cache' ),
		'desc'       => esc_html__( 'This will delete all localized resources', 'litespeed-cache' ),
		'icon'       => 'purge-cssjs',
		'append_url' => Purge::TYPE_PURGE_ALL_LOCALRES,
	);
}

if ( $this->has_cache_folder( 'lqip' ) ) {
	$_panels[] = array(
		'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'LQIP Cache', 'litespeed-cache' ),
		'desc'       => esc_html__( 'This will delete all generated image LQIP placeholder files', 'litespeed-cache' ),
		'icon'       => 'purge-front',
		'append_url' => Purge::TYPE_PURGE_ALL_LQIP,
	);
}

if ( $this->has_cache_folder( 'avatar' ) ) {
	$_panels[] = array(
		'title'      => esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'Gravatar Cache', 'litespeed-cache' ),
		'desc'       => esc_html__( 'This will delete all cached Gravatar files', 'litespeed-cache' ),
		'icon'       => 'purge-cssjs',
		'append_url' => Purge::TYPE_PURGE_ALL_AVATAR,
	);
}

$_panels[] = array(
	'title'      => esc_html__( 'Purge All', 'litespeed-cache' ),
	'desc'       => esc_html__( 'Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches', 'litespeed-cache' ),
	'icon'       => 'purge-all',
	'title_cls'  => 'litespeed-warning',
	'newline'    => true,
	'append_url' => Purge::TYPE_PURGE_ALL,
);

if ( ! is_multisite() || is_network_admin() ) {
	$_panels[] = array(
		'title'     => esc_html__( 'Empty Entire Cache', 'litespeed-cache' ),
		'desc'      => esc_html__( 'Clears all cache entries related to this site, including other web applications.', 'litespeed-cache' ) . ' <b>' . esc_html__( 'This action should only be used if things are cached incorrectly.', 'litespeed-cache' ) . '</b>',
		'tag'       => Core::ACTION_PURGE_EMPTYCACHE,
		'icon'      => 'empty-cache',
		'title_cls' => 'litespeed-danger',
		'cfm'       => esc_html__( 'This will clear EVERYTHING inside the cache.', 'litespeed-cache' ) . ' ' . esc_html__( 'This may cause heavy load on the server.', 'litespeed-cache' ) . ' ' . esc_html__( 'If only the WordPress site should be purged, use Purge All.', 'litespeed-cache' ),
	);
}

?>

<?php require_once LSCWP_DIR . 'tpl/inc/check_cache_disabled.php'; ?>

<h3 class="litespeed-title">
	<?php esc_html_e( 'Purge', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#purge-tab' ); ?>
</h3>

<div class="litespeed-panel-wrapper litespeed-cards-wrapper">
	<?php foreach ( $_panels as $panel ) : ?>
		<?php
		$action_tag = ! empty( $panel['tag'] ) ? $panel['tag'] : Router::ACTION_PURGE;
		$append_url = ! empty( $panel['append_url'] ) ? $panel['append_url'] : false;
		$cfm        = ! empty( $panel['cfm'] ) ? Str::trim_quotes( $panel['cfm'] ) : false;
		?>
		<?php if ( ! empty( $panel['newline'] ) ) : ?>
			<div class="litespeed-col-br"></div>
		<?php endif; ?>
		<a class="litespeed-panel postbox" href="<?php echo esc_url( Utility::build_url( $action_tag, $append_url ) ); ?>" data-litespeed-cfm="<?php echo esc_attr( $cfm ); ?>">
			<section class="litespeed-panel-wrapper-icon">
				<span class="litespeed-panel-icon-<?php echo esc_attr( $panel['icon'] ); ?>"></span>
			</section>
			<section class="litespeed-panel-content">
				<div class="litespeed-h3 <?php echo ! empty( $panel['title_cls'] ) ? esc_attr( $panel['title_cls'] ) : ''; ?>">
					<?php echo esc_html( $panel['title'] ); ?>
				</div>
				<span class="litespeed-panel-para"><?php echo wp_kses_post( $panel['desc'] ); ?></span>
			</section>
		</a>
	<?php endforeach; ?>
</div>

<?php
if ( is_multisite() && is_network_admin() ) {
	return;
}
?>

<h3 class="litespeed-title">
	<?php esc_html_e( 'Purge By...', 'litespeed-cache' ); ?>
</h3>
<p class="litespeed-description">
	<?php esc_html_e( 'Select below for "Purge by" options.', 'litespeed-cache' ); ?>
	<?php Doc::one_per_line(); ?>
</p>

<?php $this->form_action( Core::ACTION_PURGE_BY ); ?>
	<div class="litespeed-row">
		<div class="litespeed-switch litespeed-mini litespeed-right20 litespeed-margin-bottom10">
			<?php $val = Admin_Display::PURGEBY_CAT; ?>
			<input type="radio" autocomplete="off" name="<?php echo esc_attr( Admin_Display::PURGEBYOPT_SELECT ); ?>" id="purgeby_option_category" value="<?php echo esc_attr( $val ); ?>" checked />
			<label for="purgeby_option_category"><?php esc_html_e( 'Category', 'litespeed-cache' ); ?></label>

			<?php $val = Admin_Display::PURGEBY_PID; ?>
			<input type="radio" autocomplete="off" name="<?php echo esc_attr( Admin_Display::PURGEBYOPT_SELECT ); ?>" id="purgeby_option_postid" value="<?php echo esc_attr( $val ); ?>" />
			<label for="purgeby_option_postid"><?php esc_html_e( 'Post ID', 'litespeed-cache' ); ?></label>

			<?php $val = Admin_Display::PURGEBY_TAG; ?>
			<input type="radio" autocomplete="off" name="<?php echo esc_attr( Admin_Display::PURGEBYOPT_SELECT ); ?>" id="purgeby_option_tag" value="<?php echo esc_attr( $val ); ?>" />
			<label for="purgeby_option_tag"><?php esc_html_e( 'Tag', 'litespeed-cache' ); ?></label>

			<?php $val = Admin_Display::PURGEBY_URL; ?>
			<input type="radio" autocomplete="off" name="<?php echo esc_attr( Admin_Display::PURGEBYOPT_SELECT ); ?>" id="purgeby_option_url" value="<?php echo esc_attr( $val ); ?>" />
			<label for="purgeby_option_url"><?php esc_html_e( 'URL', 'litespeed-cache' ); ?></label>
		</div>

		<div class="litespeed-cache-purgeby-text litespeed-desc">
			<div class="" data-purgeby="<?php echo esc_attr( Admin_Display::PURGEBY_CAT ); ?>">
				<?php printf( esc_html__( 'Purge pages by category name - e.g. %2$s should be used for the URL %1$s.', 'litespeed-cache' ), '<code>http://example.com/category/category-name/</code>', '<code>category-name</code>' ); ?>
			</div>
			<div class="litespeed-hide" data-purgeby="<?php echo esc_attr( Admin_Display::PURGEBY_PID ); ?>">
				<?php esc_html_e( 'Purge pages by post ID.', 'litespeed-cache' ); ?>
			</div>
			<div class="litespeed-hide" data-purgeby="<?php echo esc_attr( Admin_Display::PURGEBY_TAG ); ?>">
				<?php printf( esc_html__( 'Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.', 'litespeed-cache' ), '<code>http://example.com/tag/tag-name/</code>', '<code>tag-name</code>' ); ?>
			</div>
			<div class="litespeed-hide" data-purgeby="<?php echo esc_attr( Admin_Display::PURGEBY_URL ); ?>">
				<?php esc_html_e( 'Purge pages by relative or full URL.', 'litespeed-cache' ); ?>
				<?php printf( esc_html__( 'e.g. Use %1$s or %2$s.', 'litespeed-cache' ), '<code>/2016/02/24/hello-world/</code>', '<code>http://example.com/2016/02/24/hello-world/</code>' ); ?>
			</div>
		</div>
	</div>

	<p>
		<textarea name="<?php echo esc_attr( Admin_Display::PURGEBYOPT_LIST ); ?>" rows="5" class="litespeed-textarea"></textarea>
	</p>

	<p>
		<button type="submit" class="button button-primary"><?php esc_html_e( 'Purge List', 'litespeed-cache' ); ?></button>
	</p>
</form>
<script>
(function ($) {
	function setCookie(name, value, days) {
		var expires = "";
		if (days) {
			var date = new Date();
			date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
			expires = "; expires=" + date.toUTCString();
		}
		document.cookie = name + "=" + (value || "") + expires + "; path=/; SameSite=Strict";
	}

	function getCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for (var i = 0; i < ca.length; i++) {
			var c = ca[i];
			while (c.charAt(0) == ' ') {
				c = c.substring(1, c.length);
			}
			if (c.indexOf(nameEQ) == 0) {
				return c.substring(nameEQ.length, c.length);
			}
		}
		return null;
	}

	jQuery(document).ready(function () {
		var savedPurgeBy = getCookie('litespeed_purgeby_option');
		if (savedPurgeBy) {
			$('input[name="<?php echo esc_attr( Admin_Display::PURGEBYOPT_SELECT ); ?>"][value="' + savedPurgeBy + '"]').prop('checked', true);
			$('[data-purgeby]').addClass('litespeed-hide');
			$('[data-purgeby="' + savedPurgeBy + '"]').removeClass('litespeed-hide');
		}
		// Manage page -> purge by
		$('[name=purgeby]').on('change', function (event) {
			$('[data-purgeby]').addClass('litespeed-hide');
			$('[data-purgeby=' + this.value + ']').removeClass('litespeed-hide');
			setCookie('litespeed_purgeby_option', this.value, 30);
		});
	});
})(jQuery);
</script><?php
/**
 * LiteSpeed Cache Log Viewer
 *
 * Renders the log viewer interface for LiteSpeed Cache, displaying debug, purge, and crawler logs with options to copy or clear logs.
 *
 * @package LiteSpeed
 * @since 4.7
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$logs = array(
	array(
		'name'      => 'debug',
		'label'     => esc_html__( 'Debug Log', 'litespeed-cache' ),
		'accesskey' => 'A',
	),
	array(
		'name'      => 'purge',
		'label'     => esc_html__( 'Purge Log', 'litespeed-cache' ),
		'accesskey' => 'B',
	),
	array(
		'name'      => 'crawler',
		'label'     => esc_html__( 'Crawler Log', 'litespeed-cache' ),
		'accesskey' => 'C',
	),
);
?>

<h3 class="litespeed-title">
	<?php esc_html_e( 'LiteSpeed Logs', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#log-view-tab' ); ?>
</h3>

<div class="litespeed-log-subnav-wrapper">
	<?php foreach ( $logs as $log ) : ?>
		<a href="#<?php echo esc_attr( $log['name'] ); ?>_log" class="button button-secondary" data-litespeed-subtab="<?php echo esc_attr( $log['name'] ); ?>_log" litespeed-accesskey="<?php echo esc_attr( $log['accesskey'] ); ?>">
			<?php echo esc_html( $log['label'] ); ?>
		</a>
	<?php endforeach; ?>
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_CLEAR_LOG ) ); ?>" class="button button-primary" litespeed-accesskey="D">
		<?php esc_html_e( 'Clear Logs', 'litespeed-cache' ); ?>
	</a>
</div>

<?php
foreach ( $logs as $log ) :
	$file      = $this->cls( 'Debug2' )->path( $log['name'] );
	$lines     = File::count_lines( $file );
	$max_lines = apply_filters( 'litespeed_debug_show_max_lines', 1000 );
	$start     = $lines > $max_lines ? $lines - $max_lines : 0;
	$lines     = File::read( $file, $start );
	$lines     = $lines ? trim( implode( "\n", $lines ) ) : '';

	$log_body_id = 'litespeed-log-' . esc_attr( $log['name'] );
?>
	<div class="litespeed-log-view-wrapper" data-litespeed-sublayout="<?php echo esc_attr( $log['name'] ); ?>_log">
		<h3 class="litespeed-title">
			<?php echo esc_html( $log['label'] ); ?>
			<a href="#<?php echo esc_attr( $log['name'] ); ?>_log" class="button litespeed-info-button litespeed-wrap" onClick="litespeed_copy_to_clipboard('<?php echo esc_js( $log_body_id ); ?>', this)" aria-label="<?php esc_attr_e( 'Click to copy', 'litespeed-cache' ); ?>" data-balloon-pos="down">
				<?php esc_html_e( 'Copy Log', 'litespeed-cache' ); ?>
			</a>
		</h3>
		<div class="litespeed-log-body" id="<?php echo esc_attr( $log_body_id ); ?>">
			<?php echo nl2br( esc_html( $lines ) ); ?>
		</div>
	</div>
<?php endforeach; ?>

<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_CLEAR_LOG ) ); ?>" class="button button-primary">
	<?php esc_html_e( 'Clear Logs', 'litespeed-cache' ); ?>
</a><?php
/**
 * LiteSpeed Cache Report Interface
 *
 * Renders the report interface for LiteSpeed Cache, allowing users to generate and send environment reports to LiteSpeed Support.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$_report = Report::cls();
$report  = $_report->generate_environment_report();

$env_ref = Report::get_summary();

// Detect passwordless plugin
$dologin_link        = '';
$has_pswdless_plugin = false;
if ( function_exists( 'dologin_gen_link' ) ) {
	$has_pswdless_plugin = true;
	if ( ! empty( $_GET['dologin_gen_link'] ) && ! empty( $_GET['litespeed_purge_nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_GET['litespeed_purge_nonce'] ) ), 'litespeed_purge_action' ) ) {
		unset( $_GET['dologin_gen_link'] );
		$dologin_link = dologin_gen_link( 'Litespeed Report' );
		?>
		<script>
			window.history.pushState('remove_gen_link', document.title, window.location.href.replace('&dologin_gen_link=1', ''));
		</script>
		<?php
	}
}

$install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_3RD, false, null, array( 'plugin' => 'dologin' ) );

$btn_title = esc_html__( 'Send to LiteSpeed', 'litespeed-cache' );
if ( ! empty( $env_ref['num'] ) ) {
	$btn_title = esc_html__( 'Regenerate and Send a New Report', 'litespeed-cache' );
}
?>

<?php if ( ! $has_pswdless_plugin ) : ?>
	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php esc_html_e( 'NOTICE:', 'litespeed-cache' ); ?></h4>
		<p>
			<?php printf( esc_html__( 'To generate a passwordless link for LiteSpeed Support Team access, you must install %s.', 'litespeed-cache' ), '<a href="https://wordpress.org/plugins/dologin/" target="_blank">DoLogin Security</a>' ); ?>
		</p>
		<p>
			<a href="<?php echo esc_url( $install_link ); ?>" class="button litespeed-btn litespeed-right20"><?php esc_html_e( 'Install DoLogin Security', 'litespeed-cache' ); ?></a>
			<a href="<?php echo esc_url( admin_url( 'plugin-install.php?s=dologin+security&tab=search&type=term' ) ); ?>" target="_blank"><?php esc_html_e( 'Go to plugins list', 'litespeed-cache' ); ?></a>
		</p>
	</div>
<?php endif; ?>

<h3 class="litespeed-title">
	<?php esc_html_e( 'LiteSpeed Report', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#report-tab' ); ?>
</h3>

<p><?php esc_html_e( 'Last Report Number', 'litespeed-cache' ); ?>: <b><?php echo ! empty( $env_ref['num'] ) ? '<span id="report_span" style="cursor: pointer;" onClick="litespeed_copy_to_clipboard(\'report_span\', this)" aria-label="' . esc_attr__( 'Click to copy', 'litespeed-cache' ) . '" data-balloon-pos="down" class="litespeed-wrap">' . esc_html( $env_ref['num'] ) . '</span>' : '-'; ?></b></p>
<p><?php esc_html_e( 'Last Report Date', 'litespeed-cache' ); ?>: <b><?php echo ! empty( $env_ref['dateline'] ) ? esc_html( gmdate( 'm/d/Y H:i:s', $env_ref['dateline'] ) ) : '-'; ?></b></p>

<p class="litespeed-desc">
	<?php esc_html_e( 'The environment report contains detailed information about the WordPress configuration.', 'litespeed-cache' ); ?>
	<br />
	<?php esc_html_e( 'If you run into any issues, please refer to the report number in your support message.', 'litespeed-cache' ); ?>
</p>

<?php $this->form_action( Router::ACTION_REPORT, Report::TYPE_SEND_REPORT ); ?>
	<table class="wp-list-table striped litespeed-table">
		<tbody>
			<tr>
				<th><?php esc_html_e( 'System Information', 'litespeed-cache' ); ?></th>
				<td>
					<textarea id="litespeed-report" rows="20" cols="100" readonly><?php echo esc_textarea( $report ); ?></textarea>
				</td>
			</tr>
			<tr>
				<th></th>
				<td>
					<?php
					$this->build_checkbox(
						'attach_php',
						sprintf(
							esc_html__( 'Attach PHP info to report. Check this box to insert relevant data from %s.', 'litespeed-cache' ),
							'<a href="https://www.php.net/manual/en/function.phpinfo.php" target="_blank">phpinfo()</a>'
						),
						false
					);
					?>
				</td>
			</tr>
			<tr>
				<th><?php esc_html_e( 'Passwordless Link', 'litespeed-cache' ); ?></th>
				<td>
					<input type="text" class="litespeed-regular-text" id="litespeed-report-link" name="link" value="<?php echo esc_attr( $dologin_link ); ?>" style="width:500px;" />
					<?php if ( $has_pswdless_plugin ) : ?>
						<a href="<?php echo esc_url( wp_nonce_url( admin_url( 'admin.php?page=litespeed-toolbox&dologin_gen_link=1' ), 'litespeed_purge_action', 'litespeed_purge_nonce' ) ); ?>" class="button button-secondary"><?php esc_html_e( 'Generate Link for Current User', 'litespeed-cache' ); ?></a>
					<?php else : ?>
						<button type="button" class="button button-secondary" disabled><?php esc_html_e( 'Generate Link for Current User', 'litespeed-cache' ); ?></button>
					<?php endif; ?>
					<div class="litespeed-desc">
						<?php esc_html_e( 'To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.', 'litespeed-cache' ); ?>
						<?php if ( $dologin_link ) : ?>
							<br /><strong>🚨 <?php esc_html_e( 'Please do NOT share the above passwordless link with anyone.', 'litespeed-cache' ); ?></strong>
							<strong>
								<?php
								printf(
									/* translators: %s: Link tags */
									esc_html__( 'Generated links may be managed under %sSettings%s.', 'litespeed-cache' ),
									'<a href="' . esc_url( menu_page_url( 'dologin', false ) ) . '#pswdless">',
									'</a>' );
								?>
							</strong>
						<?php endif; ?>
					</div>
				</td>
			</tr>
			<tr>
				<th><?php esc_html_e( 'Notes', 'litespeed-cache' ); ?></th>
				<td>
					<textarea name="notes" rows="10" cols="100"></textarea>
					<div class="litespeed-desc">
						<?php esc_html_e( 'Optional', 'litespeed-cache' ); ?>:
						<?php esc_html_e( 'provide more information here to assist the LiteSpeed team with debugging.', 'litespeed-cache' ); ?>
					</div>
				</td>
			</tr>
		</tbody>
	</table>

	<div class="litespeed-top20"></div>
	<button class="button button-primary" type="submit"><?php echo esc_html( $btn_title ); ?></button>
	<button class="button button-primary litespeed-float-submit" type="submit"><?php echo esc_html( $btn_title ); ?></button>

	<p class="litespeed-top30 litespeed-left10 litespeed-desc">
		<?php esc_html_e( 'Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.', 'litespeed-cache' ); ?>
	</p>
</form><?php
/**
 * LiteSpeed Cache Toolbox
 *
 * Renders the toolbox interface for LiteSpeed Cache, providing access to various administrative tools and settings.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
	'purge' => esc_html__( 'Purge', 'litespeed-cache' ),
);

if ( ! $this->_is_network_admin ) {
	$menu_list['import_export'] = esc_html__( 'Import / Export', 'litespeed-cache' );
}

if ( ! $this->_is_multisite || $this->_is_network_admin ) {
	$menu_list['edit_htaccess'] = esc_html__( 'View .htaccess', 'litespeed-cache' );
}

if ( ! $this->_is_network_admin ) {
	$menu_list['heartbeat'] = esc_html__( 'Heartbeat', 'litespeed-cache' );
	$menu_list['report']    = esc_html__( 'Report', 'litespeed-cache' );
}

if ( ! $this->_is_multisite || $this->_is_network_admin ) {
	$menu_list['settings-debug'] = esc_html__( 'Debug Settings', 'litespeed-cache' );
	$menu_list['log_viewer']     = esc_html__( 'Log View', 'litespeed-cache' );
	$menu_list['beta_test']      = esc_html__( 'Beta Test', 'litespeed-cache' );
}
?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php esc_html_e( 'LiteSpeed Cache Toolbox', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo esc_html( Core::VER ); ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
		<?php GUI::display_tab_list( $menu_list ); ?>
	</h2>

	<div class="litespeed-body">
		<?php foreach ( $menu_list as $curr_tab => $val ) : ?>
			<div data-litespeed-layout="<?php echo esc_attr( $curr_tab ); ?>">
				<?php require LSCWP_DIR . "tpl/toolbox/$curr_tab.tpl.php"; ?>
			</div>
		<?php endforeach; ?>
	</div>
</div><?php
/**
 * LiteSpeed Cache Heartbeat Control
 *
 * Renders the heartbeat control settings interface for LiteSpeed Cache, allowing configuration of WordPress heartbeat intervals.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Heartbeat Control', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#heartbeat-tab' ); ?>
</h3>

<div class="litespeed-callout notice notice-warning inline">
	<h4><?php esc_html_e( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p>
		<?php esc_html_e( 'Disable WordPress interval heartbeat to reduce server load.', 'litespeed-cache' ); ?>
		<span class="litespeed-warning">
			🚨 <?php esc_html_e( 'Disabling this may cause WordPress tasks triggered by AJAX to stop working.', 'litespeed-cache' ); ?>
		</span>
	</p>
</div>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_MISC_HEARTBEAT_FRONT; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Turn ON to control heartbeat on frontend.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MISC_HEARTBEAT_FRONT_TTL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?> <?php $this->readable_seconds(); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'frontend' ); ?>
					<?php printf( esc_html__( 'WordPress valid interval is %s seconds.', 'litespeed-cache' ), '<code>15</code> - <code>120</code>' ); ?><br />
					<?php printf( esc_html__( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'frontend' ); ?><br />
					<?php $this->recommended( $option_id ); ?>
					<?php $this->_validate_ttl( $option_id, 15, 120, true ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MISC_HEARTBEAT_BACK; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Turn ON to control heartbeat on backend.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MISC_HEARTBEAT_BACK_TTL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?> <?php $this->readable_seconds(); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'backend' ); ?>
					<?php printf( esc_html__( 'WordPress valid interval is %s seconds.', 'litespeed-cache' ), '<code>15</code> - <code>120</code>' ); ?><br />
					<?php printf( esc_html__( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'backend' ); ?><br />
					<?php $this->recommended( $option_id ); ?>
					<?php $this->_validate_ttl( $option_id, 15, 120, true ); ?>
</div>
</td>
</tr>

<tr>
		<th>
			<?php $option_id = Base::O_MISC_HEARTBEAT_EDITOR; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Turn ON to control heartbeat in backend editor.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_MISC_HEARTBEAT_EDITOR_TTL; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
		<?php printf( esc_html__( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'backend editor' ); ?>
		<?php printf( esc_html__( 'WordPress valid interval is %s seconds.', 'litespeed-cache' ), '<code>15</code> - <code>120</code>' ); ?><br />
		<?php printf( esc_html__( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'backend editor' ); ?><br />
		<?php $this->recommended( $option_id ); ?>
		<?php $this->_validate_ttl( $option_id, 15, 120, true ); ?>
	</div>
</td>
</tr>

</tbody>
</table>

<?php $this->form_end(); ?><?php
/**
 * LiteSpeed Cache Crawler Blocklist
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$crawler_summary = Crawler::get_summary();
$__map           = Crawler_Map::cls();
$list            = $__map->list_blacklist( 30 );
$count           = $__map->count_blacklist();
$pagination      = Utility::pagination( $count, 30 );
?>

<p class="litespeed-right">
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_EMPTY ) ); ?>" class="button litespeed-btn-warning" data-litespeed-cfm="<?php esc_attr_e( 'Are you sure to delete all existing blocklist items?', 'litespeed-cache' ); ?>">
		<?php esc_html_e( 'Empty blocklist', 'litespeed-cache' ); ?>
	</a>
</p>

<h3 class="litespeed-title">
	<?php esc_html_e( 'Blocklist', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#blocklist-tab' ); ?>
</h3>

<?php echo esc_html__( 'Total', 'litespeed-cache' ) . ': ' . esc_html( $count ); ?>

<?php echo wp_kses_post( $pagination ); ?>

<div class="litespeed-table-responsive">
	<table class="wp-list-table widefat striped">
		<thead>
			<tr>
				<th scope="col">#</th>
				<th scope="col"><?php esc_html_e( 'URL', 'litespeed-cache' ); ?></th>
				<th scope="col"><?php esc_html_e( 'Status', 'litespeed-cache' ); ?></th>
				<th scope="col"><?php esc_html_e( 'Operation', 'litespeed-cache' ); ?></th>
			</tr>
		</thead>
		<tbody>
			<?php foreach ( $list as $i => $v ) : ?>
			<tr>
				<td><?php echo esc_html( $i + 1 ); ?></td>
				<td><?php echo esc_html( $v['url'] ); ?></td>
				<td><?php echo wp_kses_post( Crawler::cls()->display_status( $v['res'], $v['reason'] ) ); ?></td>
				<td>
					<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_DEL, false, null, array( 'id' => $v['id'] ) ) ); ?>" class="button button-secondary">
						<?php esc_html_e( 'Remove from Blocklist', 'litespeed-cache' ); ?>
					</a>
				</td>
			</tr>
			<?php endforeach; ?>
		</tbody>
	</table>
</div>

<?php echo wp_kses_post( $pagination ); ?>

<p>
	<span class="litespeed-success">
		<?php
		printf(
			esc_html__( 'API: PHP Constant %s available to disable blocklist.', 'litespeed-cache' ),
			'<code>LITESPEED_CRAWLER_DISABLE_BLOCKLIST</code>'
		);
		?>
	</span>
</p>
<p>
	<span class="litespeed-success">
		<?php
		printf(
			esc_html__( 'API: Filter %s available to disable blocklist.', 'litespeed-cache' ),
			'<code>add_filter( \'litespeed_crawler_disable_blocklist\', \'__return_true\' );</code>'
		);
		?>
	</span>
</p>
<p>
	<i class="litespeed-dot litespeed-bg-default"></i> = <?php esc_html_e( 'Not blocklisted', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-warning"></i> = <?php esc_html_e( 'Blocklisted due to not cacheable', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-danger"></i> = <?php esc_html_e( 'Blocklisted', 'litespeed-cache' ); ?><br>
</p>
<?php
/**
 * LiteSpeed Cache Crawler Sitemap List
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$crawler_summary = Crawler::get_summary();
$__map           = Crawler_Map::cls();
$list            = $__map->list_map( 30 );
$count           = $__map->count_map();
$pagination      = Utility::pagination( $count, 30 );
$kw              = '';
if (! empty( $_POST['kw'] ) && ! empty( $_POST['_wpnonce'] )) {
	$nonce = sanitize_text_field(wp_unslash($_POST['_wpnonce']));
	if (wp_verify_nonce($nonce)) {
		$kw = sanitize_text_field(wp_unslash($_POST['kw']));
	}
}
?>

<p class="litespeed-right">
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_EMPTY ) ); ?>" class="button litespeed-btn-warning">
		<?php esc_html_e( 'Clean Crawler Map', 'litespeed-cache' ); ?>
	</a>
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_REFRESH_MAP ) ); ?>" class="button button-secondary">
		<?php esc_html_e( 'Refresh Crawler Map', 'litespeed-cache' ); ?>
	</a>
</p>

<p>
	<?php
	if ( ! empty( $crawler_summary['sitemap_time'] ) ) {
		printf(
			esc_html__( 'Generated at %s', 'litespeed-cache' ),
			esc_html( Utility::readable_time( $crawler_summary['sitemap_time'] ) )
		);
	}
	?>
</p>

<h3 class="litespeed-title">
	<?php esc_html_e( 'Sitemap List', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#map-tab' ); ?>
</h3>

<?php echo esc_html__( 'Sitemap Total', 'litespeed-cache' ) . ': ' . esc_html( $count ); ?>

<div style="display: flex; justify-content: space-between;">
	<div style="margin-top:10px;">
		<form action="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-crawler' ) ); ?>" method="post">
		<?php wp_nonce_field(); ?>
			<input type="text" name="kw" value="<?php echo esc_attr( $kw ); ?>" placeholder="<?php esc_attr_e( 'URL Search', 'litespeed-cache' ); ?>" style="width: 600px;" />
		</form>
	</div>
	<div>
		<a style="padding-right:10px;" href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-crawler&' . Router::TYPE . '=hit' ) ); ?>"><?php esc_html_e( 'Cache Hit', 'litespeed-cache' ); ?></a>
		<a style="padding-right:10px;" href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-crawler&' . Router::TYPE . '=miss' ) ); ?>"><?php esc_html_e( 'Cache Miss', 'litespeed-cache' ); ?></a>
		<a style="padding-right:10px;" href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-crawler&' . Router::TYPE . '=blacklisted' ) ); ?>"><?php esc_html_e( 'Blocklisted', 'litespeed-cache' ); ?></a>
	</div>
	<div>
		<?php echo wp_kses_post( $pagination ); ?>
	</div>
</div>

<div class="litespeed-table-responsive">
	<table class="wp-list-table widefat striped">
		<thead>
			<tr>
				<th scope="col">#</th>
				<th scope="col"><?php esc_html_e( 'URL', 'litespeed-cache' ); ?></th>
				<th scope="col"><?php esc_html_e( 'Crawler Status', 'litespeed-cache' ); ?></th>
				<th scope="col"><?php esc_html_e( 'Operation', 'litespeed-cache' ); ?></th>
			</tr>
		</thead>
		<tbody>
			<?php foreach ( $list as $i => $v ) : ?>
				<tr>
					<td><?php echo esc_html( $i + 1 ); ?></td>
					<td><?php echo esc_html( $v['url'] ); ?></td>
					<td><?php echo wp_kses_post( Crawler::cls()->display_status( $v['res'], $v['reason'] ) ); ?></td>
					<td>
						<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_ADD, false, null, array( 'id' => $v['id'] ) ) ); ?>" class="button button-secondary">
							<?php esc_html_e( 'Add to Blocklist', 'litespeed-cache' ); ?>
						</a>
					</td>
				</tr>
			<?php endforeach; ?>
		</tbody>
	</table>
</div>

<?php echo wp_kses_post( $pagination ); ?>

<p>
	<i class="litespeed-dot litespeed-bg-success"></i> = <?php esc_html_e( 'Cache Hit', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-primary"></i> = <?php esc_html_e( 'Cache Miss', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-warning"></i> = <?php esc_html_e( 'Blocklisted due to not cacheable', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-danger"></i> = <?php esc_html_e( 'Blocklisted', 'litespeed-cache' ); ?><br>
</p>
<?php
/**
 * LiteSpeed Cache Crawler Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
	'summary'   => esc_html__( 'Summary', 'litespeed-cache' ),
	'map'       => esc_html__( 'Map', 'litespeed-cache' ),
	'blacklist' => esc_html__( 'Blocklist', 'litespeed-cache' ),
	'settings'  => esc_html__( 'Settings', 'litespeed-cache' ),
);
?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php esc_html_e( 'LiteSpeed Cache Crawler', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		<?php echo esc_html( 'v' . Core::VER ); ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
		<?php GUI::display_tab_list( $menu_list ); ?>
	</h2>

	<div class="litespeed-body">
		<?php
		foreach ( $menu_list as $menu_key => $menu_value ) {
			printf(
				'<div data-litespeed-layout="%s">',
				esc_attr( $menu_key )
			);
			require LSCWP_DIR . "tpl/crawler/$menu_key.tpl.php";
			echo '</div>';
		}
		?>
	</div>
</div>

<iframe name="litespeedHiddenIframe" src="" width="0" height="0" frameborder="0"></iframe>
<?php
/**
 * LiteSpeed Cache Crawler Summary
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$__crawler    = Crawler::cls();
$crawler_list = $__crawler->list_crawlers();
$summary      = Crawler::get_summary();

if ( $summary['curr_crawler'] >= count( $crawler_list ) ) {
	$summary['curr_crawler'] = 0;
}

$is_running = time() - $summary['is_running'] <= 900;

$disabled     = Router::can_crawl() ? '' : 'disabled';
$disabled_tip = '';
if ( ! $this->conf( Base::O_CRAWLER_SITEMAP ) ) {
	$disabled     = 'disabled';
	$disabled_tip = '<span class="litespeed-callout notice notice-error inline litespeed-left20">' . sprintf(
		esc_html__( 'You need to set the %s in Settings first before using the crawler', 'litespeed-cache' ),
		'<code>' . esc_html( Lang::title( Base::O_CRAWLER_SITEMAP ) ) . '</code>'
	) . '</span>';
}

$CRAWLER_RUN_INTERVAL = defined( 'LITESPEED_CRAWLER_RUN_INTERVAL' ) ? LITESPEED_CRAWLER_RUN_INTERVAL : 600;
if ( $CRAWLER_RUN_INTERVAL > 0 ) :
	$recurrence = '';
	$hours      = (int) floor( $CRAWLER_RUN_INTERVAL / 3600 );
	if ( $hours ) {
		$recurrence .= sprintf(
			$hours > 1 ? esc_html__( '%d hours', 'litespeed-cache' ) : esc_html__( '%d hour', 'litespeed-cache' ),
			$hours
		);
	}
	$minutes = (int) floor( ( $CRAWLER_RUN_INTERVAL % 3600 ) / 60 );
	if ( $minutes ) {
		$recurrence .= ' ';
		$recurrence .= sprintf(
			$minutes > 1 ? esc_html__( '%d minutes', 'litespeed-cache' ) : esc_html__( '%d minute', 'litespeed-cache' ),
			$minutes
		);
	}
?>

	<h3 class="litespeed-title litespeed-relative">
		<?php esc_html_e( 'Crawler Cron', 'litespeed-cache' ); ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/' ); ?>
	</h3>

	<?php if ( ! Router::can_crawl() ) : ?>
		<div class="litespeed-callout notice notice-error inline">
			<h4><?php esc_html_e( 'WARNING', 'litespeed-cache' ); ?></h4>
			<p><?php esc_html_e( 'The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.', 'litespeed-cache' ); ?></p>
			<p>
				<?php
				printf(
					/* translators: %s: Link tags */
					esc_html__( 'See %sIntroduction for Enabling the Crawler%s for detailed information.', 'litespeed-cache' ),
					'<a href="https://docs.litespeedtech.com/lscache/lscwp/admin/#enabling-and-limiting-the-crawler" target="_blank" rel="noopener">',
					'</a>'
				);
				?>
			</p>
		</div>
	<?php endif; ?>

	<?php if ( $summary['this_full_beginning_time'] ) : ?>
		<p>
			<b><?php esc_html_e( 'Current sitemap crawl started at', 'litespeed-cache' ); ?>:</b>
			<?php echo esc_html( Utility::readable_time( $summary['this_full_beginning_time'] ) ); ?>
		</p>
		<?php if ( ! $is_running ) : ?>
			<p>
				<b><?php esc_html_e( 'The next complete sitemap crawl will start at', 'litespeed-cache' ); ?>:</b>
				<?php echo esc_html( gmdate( 'm/d/Y H:i:s', $summary['this_full_beginning_time'] + LITESPEED_TIME_OFFSET + (int) $summary['last_full_time_cost'] + $this->conf( Base::O_CRAWLER_CRAWL_INTERVAL ) ) ); ?>
			</p>
		<?php endif; ?>
	<?php endif; ?>

	<?php if ( $summary['last_full_time_cost'] ) : ?>
		<p>
			<b><?php esc_html_e( 'Last complete run time for all crawlers', 'litespeed-cache' ); ?>:</b>
			<?php printf( esc_html__( '%d seconds', 'litespeed-cache' ), (int) $summary['last_full_time_cost'] ); ?>
		</p>
	<?php endif; ?>

	<?php if ( $summary['last_crawler_total_cost'] ) : ?>
		<p>
			<b><?php esc_html_e( 'Run time for previous crawler', 'litespeed-cache' ); ?>:</b>
			<?php printf( esc_html__( '%d seconds', 'litespeed-cache' ), (int) $summary['last_crawler_total_cost'] ); ?>
		</p>
	<?php endif; ?>

	<?php if ( $summary['curr_crawler_beginning_time'] ) : ?>
		<p>
			<b><?php esc_html_e( 'Current crawler started at', 'litespeed-cache' ); ?>:</b>
			<?php echo esc_html( Utility::readable_time( $summary['curr_crawler_beginning_time'] ) ); ?>
		</p>
	<?php endif; ?>

	<p>
		<b><?php esc_html_e( 'Current server load', 'litespeed-cache' ); ?>:</b>
		<?php echo esc_html( $__crawler->get_server_load() ); ?>
	</p>

	<?php if ( $summary['last_start_time'] ) : ?>
		<p class="litespeed-desc">
			<b><?php esc_html_e( 'Last interval', 'litespeed-cache' ); ?>:</b>
			<?php echo esc_html( Utility::readable_time( $summary['last_start_time'] ) ); ?>
		</p>
	<?php endif; ?>

	<?php if ( $summary['end_reason'] ) : ?>
		<p class="litespeed-desc">
			<b><?php esc_html_e( 'Ended reason', 'litespeed-cache' ); ?>:</b>
			<?php echo esc_html( $summary['end_reason'] ); ?>
		</p>
	<?php endif; ?>

	<?php if ( $summary['last_crawled'] ) : ?>
		<p class="litespeed-desc">
			<b><?php esc_html_e( 'Last crawled', 'litespeed-cache' ); ?>:</b>
			<?php
			printf(
				esc_html__( '%d item(s)', 'litespeed-cache' ),
				esc_html( $summary['last_crawled'] )
			);
			?>
		</p>
	<?php endif; ?>

	<p>
		<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_RESET ) ); ?>" class="button litespeed-btn-warning"><?php esc_html_e( 'Reset position', 'litespeed-cache' ); ?></a>
		<a href="<?php echo Router::can_crawl() ? esc_url( Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_START ) ) : 'javascript:;'; ?>" id="litespeed_manual_trigger" class="button litespeed-btn-success" litespeed-accesskey="R" <?php echo wp_kses_post( $disabled ); ?>><?php esc_html_e( 'Manually run', 'litespeed-cache' ); ?></a>
		<?php echo wp_kses_post( $disabled_tip ); ?>
	</p>

	<div class="litespeed-table-responsive">
		<table class="wp-list-table widefat striped" data-crawler-list>
			<thead>
				<tr>
					<th scope="col">#</th>
					<th scope="col"><?php esc_html_e( 'Cron Name', 'litespeed-cache' ); ?></th>
					<th scope="col"><?php esc_html_e( 'Run Frequency', 'litespeed-cache' ); ?></th>
					<th scope="col"><?php esc_html_e( 'Status', 'litespeed-cache' ); ?></th>
					<th scope="col"><?php esc_html_e( 'Activate', 'litespeed-cache' ); ?></th>
					<th scope="col"><?php esc_html_e( 'Running', 'litespeed-cache' ); ?></th>
				</tr>
			</thead>
			<tbody>
				<?php
				foreach ( $crawler_list as $i => $v ) :
					$hit          = ! empty( $summary['crawler_stats'][ $i ][ Crawler::STATUS_HIT ] ) ? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_HIT ] : 0;
					$miss         = ! empty( $summary['crawler_stats'][ $i ][ Crawler::STATUS_MISS ] ) ? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_MISS ] : 0;
					$blacklisted  = ! empty( $summary['crawler_stats'][ $i ][ Crawler::STATUS_BLACKLIST ] ) ? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_BLACKLIST ] : 0;
					$blacklisted += ! empty( $summary['crawler_stats'][ $i ][ Crawler::STATUS_NOCACHE ] ) ? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_NOCACHE ] : 0;
					$waiting      = isset( $summary['crawler_stats'][ $i ][ Crawler::STATUS_WAIT ] )
						? (int) $summary['crawler_stats'][ $i ][ Crawler::STATUS_WAIT ]
						: (int) ( $summary['list_size'] - $hit - $miss - $blacklisted );
				?>
					<tr>
						<td>
							<?php
							echo esc_html( $i + 1 );
							if ( $i === $summary['curr_crawler'] ) {
								echo '<img class="litespeed-crawler-curr" src="' . esc_url( LSWCP_PLUGIN_URL . 'assets/img/Litespeed.icon.svg' ) . '" alt="Current Crawler">';
							}
							?>
						</td>
						<td><?php echo wp_kses_post( $v['title'] ); ?></td>
						<td><?php echo esc_html( $recurrence ); ?></td>
						<td>
							<?php
							printf(
								'<i class="litespeed-badge litespeed-bg-default" data-balloon-pos="up" aria-label="%s">%s</i> ',
								esc_attr__( 'Waiting', 'litespeed-cache' ),
								esc_html( $waiting > 0 ? $waiting : '-' )
							);
							printf(
								'<i class="litespeed-badge litespeed-bg-success" data-balloon-pos="up" aria-label="%s">%s</i> ',
								esc_attr__( 'Hit', 'litespeed-cache' ),
								esc_html( $hit > 0 ? $hit : '-' )
							);
							printf(
								'<i class="litespeed-badge litespeed-bg-primary" data-balloon-pos="up" aria-label="%s">%s</i> ',
								esc_attr__( 'Miss', 'litespeed-cache' ),
								esc_html( $miss > 0 ? $miss : '-' )
							);
							printf(
								'<i class="litespeed-badge litespeed-bg-danger" data-balloon-pos="up" aria-label="%s">%s</i> ',
								esc_attr__( 'Blocklisted', 'litespeed-cache' ),
								esc_html( $blacklisted > 0 ? $blacklisted : '-' )
							);
							?>
						</td>
						<td>
							<?php $this->build_toggle( 'litespeed-crawler-' . $i, $__crawler->is_active( $i ) ); ?>
							<?php if ( ! empty( $v['uid'] ) && empty( $this->conf( Base::O_SERVER_IP ) ) ) : ?>
								<div class="litespeed-danger litespeed-text-bold">
									🚨 <?php esc_html_e( 'NOTICE', 'litespeed-cache' ); ?>:
									<?php
									printf(
										esc_html__( 'You must set %s before using this feature.', 'litespeed-cache' ),
										esc_html( Lang::title( Base::O_SERVER_IP ) )
									);
									?>
									<?php
									Doc::learn_more(
										esc_url( admin_url( 'admin.php?page=litespeed-general#settings' ) ),
										esc_html__( 'Click here to set.', 'litespeed-cache' ),
										true,
										false,
										true
									);
									?>
								</div>
							<?php endif; ?>
						</td>
						<td>
							<?php
							if ( $i === $summary['curr_crawler'] ) {
								echo esc_html__( 'Position: ', 'litespeed-cache' ) . esc_html( $summary['last_pos'] + 1 );
								if ( $is_running ) {
									echo ' <span class="litespeed-label-success">' . esc_html__( 'running', 'litespeed-cache' ) . '</span>';
								}
							}
							?>
						</td>
					</tr>
				<?php endforeach; ?>
			</tbody>
		</table>
	</div>

	<p>
		<i class="litespeed-badge litespeed-bg-default"></i> = <?php esc_html_e( 'Waiting to be Crawled', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-success"></i> = <?php esc_html_e( 'Already Cached', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-primary"></i> = <?php esc_html_e( 'Successfully Crawled', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-danger"></i> = <?php esc_html_e( 'Blocklisted', 'litespeed-cache' ); ?><br>
	</p>

	<div class="litespeed-desc">
		<div><?php esc_html_e( 'Run frequency is set by the Interval Between Runs setting.', 'litespeed-cache' ); ?></div>
		<div>
			<?php
			esc_html_e( 'Crawlers cannot run concurrently. If both the cron and a manual run start at similar times, the first to be started will take precedence.', 'litespeed-cache' );
			?>
		</div>
		<div>
			<?php
			printf(
				/* translators: %s: Link tags */
				esc_html__( 'Please see %sHooking WP-Cron Into the System Task Scheduler%s to learn how to create the system cron task.', 'litespeed-cache' ),
				'<a href="https://developer.wordpress.org/plugins/cron/hooking-wp-cron-into-the-system-task-scheduler/" target="_blank" rel="noopener">',
				'</a>'
			);
			?>
		</div>
	</div>
<?php
endif;
?>

<h3 class="litespeed-title"><?php esc_html_e( 'Watch Crawler Status', 'litespeed-cache' ); ?></h3>

<?php
$ajaxUrl = $__crawler->json_path();
if ( $ajaxUrl ) :
?>
	<input type="button" id="litespeed-crawl-url-btn" value="<?php esc_attr_e( 'Show crawler status', 'litespeed-cache' ); ?>" class="button button-secondary" data-url="<?php echo esc_url( $ajaxUrl ); ?>" />
	<div class="litespeed-shell litespeed-hide">
		<div class="litespeed-shell-header-bar"></div>
		<div class="litespeed-shell-header">
			<div class="litespeed-shell-header-bg"></div>
			<div class="litespeed-shell-header-icon-container">
				<img id="litespeed-shell-icon" src="<?php echo esc_url( LSWCP_PLUGIN_URL . 'assets/img/Litespeed.icon.svg' ); ?>" alt="LiteSpeed Icon" />
			</div>
		</div>
		<ul class="litespeed-shell-body">
			<li><?php esc_html_e( 'Start watching...', 'litespeed-cache' ); ?></li>
			<li id="litespeed-loading-dot"></li>
		</ul>
	</div>
<?php else : ?>
	<p><?php esc_html_e( 'No crawler meta file generated yet', 'litespeed-cache' ); ?></p>
<?php endif; ?>

<script>
var _litespeed_meta;
var _litespeed_shell_interval = 3; // seconds
var _litespeed_shell_interval_range = [3, 60];
var _litespeed_shell_handle;
var _litespeed_shell_display_handle;
var _litespeed_crawler_url;
var _litespeed_dots;


(function ($) {
	'use strict';
	jQuery(document).ready(function () {
		$('#litespeed-crawl-url-btn').on('click', function () {
			if (!$(this).data('url')) {
				return false;
			}
			$('.litespeed-shell').removeClass('litespeed-hide');
			_litespeed_dots = window.setInterval(_litespeed_loading_dots, 300);
			_litespeed_crawler_url = $(this).data('url');
			litespeed_fetch_meta();
			$(this).hide();
		});

		$('#litespeed_manual_trigger').on('click', function (event) {
			$('#litespeed-loading-dot').before('<li>Manually Started</li>');
			_litespeed_shell_interval = _litespeed_shell_interval_range[0];
			litespeed_fetch_meta();
		});

		/**
		 * Freeze or melt a specific crawler
		 * @since  4.3
		 */
		if ($('[data-crawler-list] [data-litespeed_toggle_id]').length > 0) {
			$('[data-crawler-list] [data-litespeed_toggle_id]').on('click', function (e) {
				var crawler_id = $(this).attr('data-litespeed_toggle_id');
				var crawler_id = Number(crawler_id.split('-').pop());
				var that = this;
				$.ajax({
					url: '<?php echo function_exists('get_rest_url') ? get_rest_url(null, 'litespeed/v1/toggle_crawler_state') : '/'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>',
					dataType: 'json',
					method: 'POST',
					cache: false,
					data: { crawler_id: crawler_id },
					beforeSend: function (xhr) {
						xhr.setRequestHeader('X-WP-Nonce', '<?php echo esc_js( wp_create_nonce('wp_rest') ); ?>');
					},
					success: function (data) {
						$(that)
							.toggleClass('litespeed-toggle-btn-default litespeed-toggleoff', data == 0)
							.toggleClass('litespeed-toggle-btn-primary', data == 1);
						console.log('litespeed-crawler-ajax: change Activate option');
					},
					error: function (xhr, error) {
						console.log(xhr);
						console.log(error);
						console.log('litespeed-crawler-ajax: option failed to save due to some error');
					},
				});
			});
		}

	});
})(jQuery);


function litespeed_fetch_meta() {
	window.clearTimeout(_litespeed_shell_handle);
	jQuery('#litespeed-loading-dot').text('');
	jQuery.ajaxSetup({ cache: false });
	jQuery.getJSON(_litespeed_crawler_url, function (meta) {
		litespeed_pulse();
		var changed = false;
		if (meta && 'list_size' in meta) {
			new_meta =
				meta.list_size + ' ' + meta.file_time + ' ' + meta.curr_crawler + ' ' + meta.last_pos + ' ' + meta.last_count + ' ' + meta.last_start_time + ' ' + meta.is_running;
			if (new_meta != _litespeed_meta) {
				_litespeed_meta = new_meta;
				changed = true;
				string = _litespeed_build_meta(meta);
				jQuery('#litespeed-loading-dot').before(string);
				// remove first log elements
				log_length = jQuery('.litespeed-shell-body li').length;
				if (log_length > 50) {
					jQuery('.litespeed-shell-body li:lt(' + (log_length - 50) + ')').remove();
				}
				// scroll to end
				jQuery('.litespeed-shell-body')
					.stop()
					.animate(
						{
							scrollTop: jQuery('.litespeed-shell-body')[0].scrollHeight,
						},
						800,
					);
			}

			// dynamic adjust the interval length
			_litespeed_adjust_interval(changed);
		}
		// display interval counting
		litespeed_display_interval_reset();
		_litespeed_shell_handle = window.setTimeout(_litespeed_dynamic_timeout, _litespeed_shell_interval * 1000);
	});
}

function _litespeed_loading_dots() {
	jQuery('#litespeed-loading-dot').append('.');
}

/**
 * Dynamic adjust interval
 */
function _litespeed_adjust_interval(changed) {
	if (changed) {
		_litespeed_shell_interval -= Math.ceil(_litespeed_shell_interval / 2);
	} else {
		_litespeed_shell_interval++;
	}

	if (_litespeed_shell_interval < _litespeed_shell_interval_range[0]) {
		_litespeed_shell_interval = _litespeed_shell_interval_range[0];
	}
	if (_litespeed_shell_interval > _litespeed_shell_interval_range[1]) {
		_litespeed_shell_interval = _litespeed_shell_interval_range[1];
	}
}

function _litespeed_build_meta(meta) {
	var string =
		'<li>' +
		litespeed_date(meta.last_update_time) +
		'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size: ' +
		meta.list_size +
		'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Crawler: #' +
		(meta.curr_crawler * 1 + 1) +
		'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position: ' +
		(meta.last_pos * 1 + 1) +
		'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Threads: ' +
		meta.last_count +
		'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status: ';
	if (meta.is_running) {
		string += 'crawling, ' + meta.last_status;
	} else {
		string += meta.end_reason ? meta.end_reason : '-';
	}
	string += '</li>';
	return string;
}

function _litespeed_dynamic_timeout() {
	litespeed_fetch_meta();
}

function litespeed_display_interval_reset() {
	window.clearInterval(_litespeed_shell_display_handle);
	jQuery('.litespeed-shell-header-bar').data('num', _litespeed_shell_interval);
	_litespeed_shell_display_handle = window.setInterval(_litespeed_display_interval, 1000);

	jQuery('.litespeed-shell-header-bar')
		.stop()
		.animate({ width: '100%' }, 500, function () {
			jQuery('.litespeed-shell-header-bar').css('width', '0%');
		});
}

function _litespeed_display_interval() {
	var num = jQuery('.litespeed-shell-header-bar').data('num');
	jQuery('.litespeed-shell-header-bar')
		.stop()
		.animate({ width: litespeed_get_percent(num, _litespeed_shell_interval) + '%' }, 1000);
	if (num > 0) num--;
	if (num < 0) num = 0;
	jQuery('.litespeed-shell-header-bar').data('num', num);
}

function litespeed_get_percent(num1, num2) {
	num1 = num1 * 1;
	num2 = num2 * 1;
	num = (num2 - num1) / num2;
	return num * 100;
}

function litespeed_date(timestamp) {
	var a = new Date(timestamp * 1000);
	var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
	var year = a.getFullYear();
	var month = months[a.getMonth()];
	var date = litespeed_add_zero(a.getDate());
	var hour = litespeed_add_zero(a.getHours());
	var min = litespeed_add_zero(a.getMinutes());
	var sec = litespeed_add_zero(a.getSeconds());
	var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec;
	return time;
}

function litespeed_add_zero(i) {
	if (i < 10) {
		i = '0' + i;
	}
	return i;
}

function litespeed_pulse() {
	jQuery('#litespeed-shell-icon').animate(
		{
			width: 27,
			height: 34,
			opacity: 1,
		},
		700,
		function () {
			jQuery('#litespeed-shell-icon').animate(
				{
					width: 23,
					height: 29,
					opacity: 0.5,
				},
				700,
			);
		},
	);
}

</script><?php
/**
 * LiteSpeed Cache Crawler General Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Crawler General Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#general-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_CRAWLER; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'This will enable crawler cron.', 'litespeed-cache' ); ?>
					<br><?php Doc::notice_htaccess(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CRAWLER_CRAWL_INTERVAL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id ); ?> <?php esc_html_e( 'seconds', 'litespeed-cache' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.', 'litespeed-cache' ); ?>
					<?php $this->recommended( $option_id ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CRAWLER_SITEMAP; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CRAWLER_LOAD_LIMIT; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.', 'litespeed-cache' ); ?>
					<?php if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ] ) ) : ?>
						<span class="litespeed-warning">
							<?php esc_html_e( 'NOTE', 'litespeed-cache' ); ?>:
							<?php
							printf(
								esc_html__( 'Server enforced value: %s', 'litespeed-cache' ),
								'<code>' . esc_html( sanitize_text_field( wp_unslash( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ] ) ) ) . '</code>'
							);
							?>
						</span>
					<?php elseif ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ] ) ) : ?>
						<span class="litespeed-warning">
							<?php esc_html_e( 'NOTE', 'litespeed-cache' ); ?>:
							<?php
							printf(
								esc_html__( 'Server allowed max value: %s', 'litespeed-cache' ),
								'<code>' . esc_html( sanitize_text_field( wp_unslash( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ] ) ) ) . '</code>'
							);
							?>
						</span>
					<?php endif; ?>
					<br>
					<?php $this->_api_env_var( Base::ENV_CRAWLER_LOAD_LIMIT, Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CRAWLER_ROLES; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id, 20 ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'To crawl the site as a logged-in user, enter the user ids to be simulated.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
					<?php if ( empty( $this->conf( Base::O_SERVER_IP ) ) ) : ?>
						<div class="litespeed-danger litespeed-text-bold">
							🚨 <?php esc_html_e( 'NOTICE', 'litespeed-cache' ); ?>:
							<?php
							printf(
								esc_html__( 'You must set %s before using this feature.', 'litespeed-cache' ),
								esc_html( Lang::title( Base::O_SERVER_IP ) )
							);
							?>
							<?php
							Doc::learn_more(
								esc_url( admin_url( 'admin.php?page=litespeed-general#settings' ) ),
								esc_html__( 'Click here to set.', 'litespeed-cache' ),
								true,
								false,
								true
							);
							?>
						</div>
					<?php endif; ?>
					<?php if ( empty( $this->conf( Base::O_ESI ) ) ) : ?>
						<div class="litespeed-danger litespeed-text-bold">
							🚨 <?php esc_html_e( 'NOTICE', 'litespeed-cache' ); ?>:
							<?php
							printf(
								esc_html__( 'You must set %1$s to %2$s before using this feature.', 'litespeed-cache' ),
								esc_html( Lang::title( Base::O_ESI ) ),
								esc_html__( 'ON', 'litespeed-cache' )
							);
							?>
							<?php
							Doc::learn_more(
								esc_url( admin_url( 'admin.php?page=litespeed-cache#esi' ) ),
								esc_html__( 'Click here to set.', 'litespeed-cache' ),
								true,
								false,
								true
							);
							?>
						</div>
					<?php endif; ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CRAWLER_COOKIES; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->enroll( $option_id . '[name][]' ); ?>
				<?php $this->enroll( $option_id . '[vals][]' ); ?>
				<div id="litespeed_crawler_simulation_div"></div>
				<script type="text/babel">
					ReactDOM.render(
						<CrawlerSimulate list={ <?php echo wp_json_encode( $this->conf( $option_id ) ); ?> } />,
						document.getElementById( 'litespeed_crawler_simulation_div' )
					);
				</script>
				<div class="litespeed-desc">
					<?php esc_html_e( 'To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#cookie-simulation' ); ?>
					<p>
						<?php
						printf(
							esc_html__( 'Use %1$s in %2$s to indicate this cookie has not been set.', 'litespeed-cache' ),
							'<code>_null</code>',
							esc_html__( 'Cookie Values', 'litespeed-cache' )
						);
						?>
					</p>
				</div>
			</td>
		</tr>
	</tbody>
</table>

<?php $this->form_end(); ?><?php
/**
 * LiteSpeed Cache Cloudflare Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Cloudflare Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_CDN_CLOUDFLARE; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Use %s API functionality.', 'litespeed-cache' ), 'Cloudflare' ); ?>
				</div>
				<div class="litespeed-block">
					<div class='litespeed-col'>
						<label class="litespeed-form-label"><?php esc_html_e( 'Global API Key / API Token', 'litespeed-cache' ); ?></label>
						<?php $this->build_input( Base::O_CDN_CLOUDFLARE_KEY ); ?>
						<div class="litespeed-desc">
							<?php printf( esc_html__( 'Your API key / token is used to access %s APIs.', 'litespeed-cache' ), 'Cloudflare' ); ?>
							<?php printf( esc_html__( 'Get it from %s.', 'litespeed-cache' ), '<a href="https://dash.cloudflare.com/profile/api-tokens" target="_blank" rel="noopener">Cloudflare</a>' ); ?>
							<?php esc_html_e( 'Recommended to generate the token from Cloudflare API token template "WordPress".', 'litespeed-cache' ); ?>
						</div>
					</div>
					<div class='litespeed-col'>
						<label class="litespeed-form-label"><?php esc_html_e( 'Email Address', 'litespeed-cache' ); ?></label>
						<?php $this->build_input( Base::O_CDN_CLOUDFLARE_EMAIL ); ?>
						<div class="litespeed-desc">
							<?php printf( esc_html__( 'Your Email address on %s.', 'litespeed-cache' ), 'Cloudflare' ); ?>
							<?php esc_html_e( 'Optional when API token used.', 'litespeed-cache' ); ?>
						</div>
					</div>
					<div class='litespeed-col'>
						<label class="litespeed-form-label"><?php esc_html_e( 'Domain', 'litespeed-cache' ); ?></label>
						<?php
						$cf_zone = $this->conf( Base::O_CDN_CLOUDFLARE_ZONE );
						$cls     = $cf_zone ? ' litespeed-input-success' : ' litespeed-input-warning';
						$this->build_input( Base::O_CDN_CLOUDFLARE_NAME, $cls );
						?>
						<div class="litespeed-desc">
							<?php esc_html_e( 'You can just type part of the domain.', 'litespeed-cache' ); ?>
							<?php esc_html_e( 'Once saved, it will be matched with the current list and completed automatically.', 'litespeed-cache' ); ?>
						</div>
					</div>
				</div>
			</td>
		</tr>
		<tr>
			<th>
				<?php $option_id = Base::O_CDN_CLOUDFLARE_CLEAR; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Clear %s cache when "Purge All" is run.', 'litespeed-cache' ), 'Cloudflare' ); ?>
				</div>
			</td>
		</tr>
	</tbody>
</table>

<?php
$this->form_end();
$cf_on     = $this->conf( Base::O_CDN_CLOUDFLARE );
$cf_domain = $this->conf( Base::O_CDN_CLOUDFLARE_NAME );
$cf_zone   = $this->conf( Base::O_CDN_CLOUDFLARE_ZONE );
if ( ! $cf_domain ) {
	$cf_domain = '-';
}
if ( ! $cf_zone ) {
	$cf_zone = '-';
}

$curr_status = CDN\Cloudflare::get_option( CDN\Cloudflare::ITEM_STATUS, array() );
?>

<h3 class="litespeed-title"><?php esc_html_e( 'Cloudflare', 'litespeed-cache' ); ?></h3>

<?php if ( ! $cf_on ) : ?>
	<div class="litespeed-callout notice notice-error inline">
		<h4><?php esc_html_e( 'WARNING', 'litespeed-cache' ); ?></h4>
		<p>
			<?php esc_html_e( 'To enable the following functionality, turn ON Cloudflare API in CDN Settings.', 'litespeed-cache' ); ?>
		</p>
	</div>
<?php endif; ?>

<p><?php esc_html_e( 'Cloudflare Domain', 'litespeed-cache' ); ?>: <code><?php echo esc_textarea( $cf_domain ); ?></code></p>
<p><?php esc_html_e( 'Cloudflare Zone', 'litespeed-cache' ); ?>: <code><?php echo esc_textarea( $cf_zone ); ?></code></p>

<p>
	<b><?php esc_html_e( 'Development Mode', 'litespeed-cache' ); ?>:</b>
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_SET_DEVMODE_ON ) ); ?>" class="button litespeed-btn-warning">
		<?php esc_html_e( 'Turn ON', 'litespeed-cache' ); ?>
	</a>
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_SET_DEVMODE_OFF ) ); ?>" class="button litespeed-btn-warning">
		<?php esc_html_e( 'Turn OFF', 'litespeed-cache' ); ?>
	</a>
	<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_GET_DEVMODE ) ); ?>" class="button litespeed-btn-success">
		<?php esc_html_e( 'Check Status', 'litespeed-cache' ); ?>
	</a>

	<?php if ( $curr_status ) : ?>
		<span class="litespeed-desc">
			<?php
			if ( time() >= $curr_status['devmode_expired'] ) {
				$expired_at             = gmdate( 'm/d/Y H:i:s', $curr_status['devmode_expired'] + LITESPEED_TIME_OFFSET );
				$curr_status['devmode'] = 'OFF';
				printf(
					esc_html__( 'Current status is %1$s since %2$s.', 'litespeed-cache' ),
					'<code>' . esc_html( strtoupper( $curr_status['devmode'] ) ) . '</code>',
					'<code>' . esc_html( $expired_at ) . '</code>'
				);
			} else {
				$expired_at = $curr_status['devmode_expired'] - time();
				$expired_at = Utility::readable_time( $expired_at, 3600 * 3, true );
				printf(
					esc_html__( 'Current status is %s.', 'litespeed-cache' ),
					'<code>' . esc_html( strtoupper( $curr_status['devmode'] ) ) . '</code>'
				);
				printf(
					esc_html__( 'Development mode will be automatically turned off in %s.', 'litespeed-cache' ),
					'<code>' . esc_html( $expired_at ) . '</code>'
				);
			}
			?>
		</span>
	<?php endif; ?>
	<br>
	<?php esc_html_e( 'Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.', 'litespeed-cache' ); ?>
	<br>
	<?php esc_html_e( 'Development Mode will be turned off automatically after three hours.', 'litespeed-cache' ); ?>
	<?php printf( esc_html__( '%1$sLearn More%2$s', 'litespeed-cache' ), '<a href="https://support.cloudflare.com/hc/en-us/articles/200168246" target="_blank" rel="noopener">', '</a>' ); ?>
</p>

<p>
	<b><?php esc_html_e( 'Cloudflare Cache', 'litespeed-cache' ); ?>:</b>
	<?php if ( ! $cf_on ) : ?>
		<a href="#" class="button button-secondary disabled">
	<?php else : ?>
		<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_PURGE_ALL ) ); ?>" class="button litespeed-btn-danger">
	<?php endif; ?>
		<?php esc_html_e( 'Purge Everything', 'litespeed-cache' ); ?>
	</a>
</p><?php
/**
 * LiteSpeed Cache QUIC.cloud CDN Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$__cloud = Cloud::cls();
$__cloud->finish_qc_activation( 'cdn' );
$cloud_summary = Cloud::get_summary();
?>

<div class="litespeed-flex-container litespeed-column-with-boxes">
	<div class="litespeed-width-7-10 litespeed-column-left litespeed-cdn-summary-wrapper">
		<div class="litespeed-column-left-inside">
			<h3>
				<?php if ( $__cloud->activated() ) : ?>
					<a class="button button-small litespeed-right litespeed-learn-more" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_SYNC_STATUS ) ); ?>">
						<span class="dashicons dashicons-update"></span> <?php esc_html_e( 'Refresh Status', 'litespeed-cache' ); ?>
					</a>
				<?php endif; ?>
				<span class="litespeed-quic-icon"></span> <?php esc_html_e( 'QUIC.cloud CDN Status Overview', 'litespeed-cache' ); ?>
			</h3>
			<p class="litespeed-desc"><?php esc_html_e( 'Check the status of your most important settings and the health of your CDN setup here.', 'litespeed-cache' ); ?></p>

			<?php if ( ! $__cloud->activated() ) : ?>
				<div class="litespeed-dashboard-unlock litespeed-dashboard-unlock--inline">
					<div>
						<h3 class="litespeed-dashboard-unlock-title"><strong class="litespeed-qc-text-gradient"><?php esc_html_e( 'Accelerate, Optimize, Protect', 'litespeed-cache' ); ?></strong></h3>
						<p class="litespeed-dashboard-unlock-desc">
							<?php echo wp_kses_post( __( 'Speed up your WordPress site even further with <strong>QUIC.cloud Online Services and CDN</strong>.', 'litespeed-cache' ) ); ?>
						</p>
						<p><?php esc_html_e( 'Free monthly quota available.', 'litespeed-cache' ); ?></p>
						<p>
							<a class="button button-primary" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ACTIVATE, false, null, array( 'ref' => 'cdn' ) ) ); ?>">
								<span class="dashicons dashicons-yes"></span><?php esc_html_e( 'Enable QUIC.cloud services', 'litespeed-cache' ); ?>
							</a>
						</p>
						<p class="litespeed-dashboard-unlock-footer">
							<?php esc_html_e( 'QUIC.cloud provides CDN and online optimization services, and is not required. You may use many features of this plugin without QUIC.cloud.', 'litespeed-cache' ); ?><br>
							<a href="https://www.quic.cloud/" target="_blank" rel="noopener"><?php esc_html_e( 'Learn More about QUIC.cloud', 'litespeed-cache' ); ?></a>
						</p>
					</div>
				</div>
			<?php elseif ( empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ) : ?>
				<div class="litespeed-top20">
					<?php if ( ! empty( $cloud_summary['qc_activated'] ) && 'linked' === $cloud_summary['qc_activated'] ) : ?>
						<p><?php echo wp_kses_post( __( 'QUIC.cloud CDN is currently <strong>fully disabled</strong>.', 'litespeed-cache' ) ); ?></p>
					<?php else : ?>
						<p><?php echo wp_kses_post( __( 'QUIC.cloud CDN is <strong>not available</strong> for anonymous (unlinked) users.', 'litespeed-cache' ) ); ?></p>
					<?php endif; ?>
					<p>
						<?php
						$btn_title = esc_html__( 'Link & Enable QUIC.cloud CDN', 'litespeed-cache' );
						if ( ! empty( $cloud_summary['qc_activated'] ) && 'linked' === $cloud_summary['qc_activated'] ) {
							$btn_title = esc_html__( 'Enable QUIC.cloud CDN', 'litespeed-cache' );
						}
						Doc::learn_more(
							esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ENABLE_CDN, false, null, array( 'ref' => 'cdn' ) ) ),
							'<span class="dashicons dashicons-yes"></span>' . $btn_title,
							true,
							'button button-primary litespeed-button-cta'
						);
						?>
					</p>
					<h3 class="litespeed-title-section"><?php esc_html_e( 'Content Delivery Network Service', 'litespeed-cache' ); ?></h3>
					<p class="litespeed-text-md">
						<?php esc_html_e( 'Serve your visitors fast', 'litespeed-cache' ); ?> <strong class="litespeed-qc-text-gradient"><?php esc_html_e( 'no matter where they live.', 'litespeed-cache' ); ?></strong>
					</p>
					<p>
						<?php
						printf(
							/* translators: %s: Link tags */
							esc_html__( 'Best available WordPress performance, globally fast TTFB, easy setup, and %smore%s!', 'litespeed-cache' ),
							'<a href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/" target="_blank" rel="noopener">',
							'</a>'
						);
						?>
					</p>
				</div>
			<?php else : ?>
				<?php echo wp_kses_post( $__cloud->load_qc_status_for_dash( 'cdn_dash' ) ); ?>
			<?php endif; ?>
		</div>
	</div>

	<div class="litespeed-width-3-10 litespeed-column-right">
		<div class="postbox litespeed-postbox">
			<div class="inside">
				<h3 class="litespeed-title">
					<?php esc_html_e( 'QUIC.cloud CDN Options', 'litespeed-cache' ); ?>
				</h3>
				<?php if ( ! empty( $cloud_summary['partner'] ) && ! empty( $cloud_summary['partner']['disable_qc_login'] ) ) : ?>
					<?php if ( ! empty( $cloud_summary['partner']['logo'] ) ) : ?>
						<?php if ( ! empty( $cloud_summary['partner']['url'] ) ) : ?>
							<a href="<?php echo esc_url( $cloud_summary['partner']['url'] ); ?>" target="_blank" rel="noopener">
								<img src="<?php echo esc_url( $cloud_summary['partner']['logo'] ); ?>" alt="<?php echo esc_attr( $cloud_summary['partner']['name'] ); ?>">
							</a>
						<?php else : ?>
							<img src="<?php echo esc_url( $cloud_summary['partner']['logo'] ); ?>" alt="<?php echo esc_attr( $cloud_summary['partner']['name'] ); ?>">
						<?php endif; ?>
					<?php elseif ( ! empty( $cloud_summary['partner']['name'] ) ) : ?>
						<?php if ( ! empty( $cloud_summary['partner']['url'] ) ) : ?>
							<a href="<?php echo esc_url( $cloud_summary['partner']['url'] ); ?>" target="_blank" rel="noopener">
								<span class="postbox-partner-name"><?php echo esc_html( $cloud_summary['partner']['name'] ); ?></span>
							</a>
						<?php else : ?>
							<span class="postbox-partner-name"><?php echo esc_html( $cloud_summary['partner']['name'] ); ?></span>
						<?php endif; ?>
					<?php endif; ?>
					<?php if ( ! $__cloud->activated() ) : ?>
						<p><?php esc_html_e( 'To manage your QUIC.cloud options, go to your hosting provider\'s portal.', 'litespeed-cache' ); ?></p>
					<?php else : ?>
						<p><?php esc_html_e( 'To manage your QUIC.cloud options, please contact your hosting provider.', 'litespeed-cache' ); ?></p>
					<?php endif; ?>
				<?php else : ?>
					<?php if ( ! $__cloud->activated() ) : ?>
						<p><?php esc_html_e( 'To manage your QUIC.cloud options, go to QUIC.cloud Dashboard.', 'litespeed-cache' ); ?></p>
						<p class="litespeed-top20">
							<button type="button" class="button button-primary disabled">
								<?php esc_html_e( 'Link to QUIC.cloud', 'litespeed-cache' ); ?>
							</button>
						</p>
					<?php elseif ( 'anonymous' === $cloud_summary['qc_activated'] ) : ?>
						<p><?php esc_html_e( 'You are currently using services as an anonymous user. To manage your QUIC.cloud options, use the button below to create an account and link to the QUIC.cloud Dashboard.', 'litespeed-cache' ); ?></p>
						<p class="litespeed-top20">
							<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_LINK, false, null, array( 'ref' => 'cdn' ) ) ); ?>" class="button button-<?php echo ( empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ) ? 'secondary' : 'primary'; ?>">
								<?php esc_html_e( 'Link to QUIC.cloud', 'litespeed-cache' ); ?>
							</a>
						</p>
					<?php elseif ( 'linked' === $cloud_summary['qc_activated'] ) : ?>
						<p class="litespeed-top20">
							<a href="<?php echo esc_url( $__cloud->qc_link() ); ?>" target="qc" rel="noopener" class="button button-<?php echo ( empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ) ? 'secondary' : 'primary'; ?>">
								<?php esc_html_e( 'My QUIC.cloud Dashboard', 'litespeed-cache' ); ?> <span class="dashicons dashicons-external"></span>
							</a>
						</p>
					<?php else : ?>
						<p><?php esc_html_e( 'To manage your QUIC.cloud options, go to QUIC.cloud Dashboard.', 'litespeed-cache' ); ?></p>
						<p class="litespeed-top20">
							<a href="<?php echo esc_url( $__cloud->qc_link() ); ?>" target="qc" rel="noopener" class="button button-<?php echo ( empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ) ? 'secondary' : 'primary'; ?>">
								<?php esc_html_e( 'My QUIC.cloud Dashboard', 'litespeed-cache' ); ?> <span class="dashicons dashicons-external"></span>
							</a>
						</p>
					<?php endif; ?>
				<?php endif; ?>
			</div>
		</div>

		<?php $promo_mini = $__cloud->load_qc_status_for_dash( 'promo_mini' ); ?>
		<?php if ( $promo_mini ) : ?>
			<?php echo wp_kses_post( $promo_mini ); ?>
		<?php endif; ?>
	</div>
</div>
<?php
/**
 * LiteSpeed Cache CDN Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$home_url = home_url( '/' );
$parsed   = wp_parse_url( $home_url );
$home_url = str_replace( $parsed['scheme'] . ':', '', $home_url );

$cdn_mapping = $this->conf( Base::O_CDN_MAPPING );
// Special handler: Append one row if somehow the DB default preset value got deleted
if ( ! $cdn_mapping ) {
	$this->load_default_vals();
	$cdn_mapping = self::$_default_options[ Base::O_CDN_MAPPING ];
}

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'CDN Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_CDN; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php
					printf(
						esc_html__( 'Turn this setting %s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.', 'litespeed-cache' ),
						'<code>' . esc_html__( 'ON', 'litespeed-cache' ) . '</code>'
					);
					?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/#use-cdn-mapping' ); ?>
					<br>
					<?php
					printf(
						esc_html__( 'NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are only using QUIC.cloud or Cloudflare, leave this setting %s.', 'litespeed-cache' ),
						'<code>' . esc_html__( 'OFF', 'litespeed-cache' ) . '</code>'
					);
					?>
				</div>
			</td>
		</tr>

		<tr>
			<th class="litespeed-padding-left"></th>
			<td>
				<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_URL . '][]' ); ?>
				<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_IMG . '][]' ); ?>
				<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_CSS . '][]' ); ?>
				<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_JS . '][]' ); ?>
				<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_FILETYPE . '][]' ); ?>

				<div id="litespeed_cdn_mapping_div"></div>

				<script type="text/babel">
					ReactDOM.render(
						<CDNMapping list={ <?php echo wp_json_encode( $cdn_mapping ); ?> } />,
						document.getElementById( 'litespeed_cdn_mapping_div' )
					);
				</script>

				<div class="litespeed-warning">
					<?php esc_html_e( 'NOTE', 'litespeed-cache' ); ?>:
					<?php esc_html_e( 'To randomize CDN hostname, define multiple hostnames for the same resources.', 'litespeed-cache' ); ?>
				</div>

				<div class="litespeed-desc">
					<b><?php $this->title( Base::CDN_MAPPING_INC_IMG ); ?></b>:
					<?php
					printf(
						esc_html__( 'Serve all image files through the CDN. This will affect all attachments, HTML %1$s tags, and CSS %2$s attributes.', 'litespeed-cache' ),
						'<code>&lt;img</code>',
						'<code>url()</code>'
					);
					?>
					<br>
					<b><?php $this->title( Base::CDN_MAPPING_INC_CSS ); ?></b>:
					<?php esc_html_e( 'Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.', 'litespeed-cache' ); ?>
					<br>
					<b><?php $this->title( Base::CDN_MAPPING_INC_JS ); ?></b>:
					<?php esc_html_e( 'Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.', 'litespeed-cache' ); ?>
					<br>
					<b><?php $this->title( Base::CDN_MAPPING_FILETYPE ); ?></b>:
					<?php esc_html_e( 'Static file type links to be replaced by CDN links.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
					<?php
					printf(
						esc_html__( 'This will affect all tags containing attributes: %s.', 'litespeed-cache' ),
						'<code>src=""</code> <code>data-src=""</code> <code>href=""</code>'
					);
					?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/#include-file-types', esc_html__( 'Default value', 'litespeed-cache' ) ); ?>
					<br>
					<?php
					printf(
						esc_html__( 'If you turn any of the above settings OFF, please remove the related file types from the %s box.', 'litespeed-cache' ),
						'<b>' . esc_html__( 'Include File Types', 'litespeed-cache' ) . '</b>'
					);
					?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/#include-file-types' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_CDN_ATTR; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<div class="litespeed-textarea-recommended">
					<div>
						<?php $this->build_textarea( $option_id, 40 ); ?>
					</div>
					<div>
						<?php $this->recommended( $option_id ); ?>
					</div>
				</div>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify which HTML element attributes will be replaced with CDN Mapping.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'Only attributes listed here will be replaced.', 'litespeed-cache' ); ?>
					<br>
					<?php
					printf(
						esc_html__( 'Use the format %1$s or %2$s (element is optional).', 'litespeed-cache' ),
						'<code>element.attribute</code>',
						'<code>.attribute</code>'
					);
					?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th class="litespeed-padding-left">
				<?php $option_id = Base::O_CDN_ORI; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php
					printf(
						esc_html__( 'Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.', 'litespeed-cache' ),
						'<code>//</code>',
						'<code>' . esc_html( $home_url ) . '</code>'
					);
					?>
					<br>
					<?php
					printf(
						esc_html__( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ),
						'<code>*</code>',
						'<code>//www.aa.com</code>',
						'<code>//aa.com</code>',
						'<code>//*aa.com</code>'
					);
					?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th class="litespeed-padding-left">
				<?php $option_id = Base::O_CDN_ORI_DIR; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<div class="litespeed-textarea-recommended">
					<div>
						<?php $this->build_textarea( $option_id, 40 ); ?>
					</div>
					<div>
						<?php $this->recommended( $option_id ); ?>
					</div>
				</div>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Only files within these directories will be pointed to the CDN.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th class="litespeed-padding-left">
				<?php $option_id = Base::O_CDN_EXC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Paths containing these strings will not be served from the CDN.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>
	</tbody>
</table>

<?php $this->form_end(); ?><?php
/**
 * LiteSpeed Cache CDN Settings
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
	'qc'    => esc_html__( 'QUIC.cloud', 'litespeed-cache' ),
	'cf'    => esc_html__( 'Cloudflare', 'litespeed-cache' ),
	'other' => esc_html__( 'Other Static CDN', 'litespeed-cache' ),
);
?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php esc_html_e( 'LiteSpeed Cache CDN', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		<?php echo esc_html( 'v' . Core::VER ); ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
		<?php GUI::display_tab_list( $menu_list ); ?>
	</h2>

	<div class="litespeed-body">
		<?php
		foreach ( $menu_list as $menu_key => $menu_value ) {
			printf(
				'<div data-litespeed-layout="%s">',
				esc_attr( $menu_key )
			);
			require LSCWP_DIR . "tpl/cdn/$menu_key.tpl.php";
			echo '</div>';
		}
		?>
	</div>
</div>
<?php
/**
 * LiteSpeed Cache Tuning Settings
 *
 * Renders the tuning settings interface for LiteSpeed Cache, allowing configuration of optimization exclusions and role-based settings.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

global $wp_roles;
$wp_orig_roles = $wp_roles;
if ( ! isset( $wp_roles ) ) {
	$wp_orig_roles = new \WP_Roles();
}

$roles = array();
foreach ( $wp_orig_roles->roles as $k => $v ) {
	$roles[ $k ] = $v['name'];
}
ksort( $roles );

?>
<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Tuning Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#tuning-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_JS_DELAY_INC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Listed JS files or inline JS code will be delayed.', 'litespeed-cache' ); ?>
					<?php Doc::full_or_partial_url(); ?>
					<?php Doc::one_per_line(); ?>
					<br />
					<font class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_js_delay_inc</code>' ); ?>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_JS_EXC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Listed JS files or inline JS code will not be minified or combined.', 'litespeed-cache' ); ?>
					<?php Doc::full_or_partial_url(); ?>
					<?php Doc::one_per_line(); ?>
					<br />
					<font class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optimize_js_excludes</code>' ); ?>
						<?php printf( esc_html__( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ); ?>
						<br /><?php esc_html_e( 'Predefined list will also be combined with the above settings.', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_excludes.txt</a>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_JS_DEFER_EXC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Listed JS files or inline JS code will not be deferred or delayed.', 'litespeed-cache' ); ?>
					<?php Doc::full_or_partial_url(); ?>
					<?php Doc::one_per_line(); ?>
					<br /><span class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_js_defer_exc</code>' ); ?>
						<?php printf( esc_html__( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-defer="1"</code>' ); ?>
						<br /><?php esc_html_e( 'Predefined list will also be combined with the above settings.', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_defer_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_defer_excludes.txt</a>
					</span>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_GM_JS_EXC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Listed JS files or inline JS code will not be optimized by %s.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_GUEST ) ) . '</code>' ); ?>
					<?php Doc::full_or_partial_url(); ?>
					<?php Doc::one_per_line(); ?>
					<br /><span class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_gm_js_exc</code>' ); ?>
						<?php printf( esc_html__( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-defer="1"</code>' ); ?>
					</span>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_EXC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Prevent any optimization of listed pages.', 'litespeed-cache' ); ?>
					<?php $this->_uri_usage_example(); ?>
					<br /><span class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_uri_exc</code>' ); ?>
					</span>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_GUEST_ONLY; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_EXC_ROLES; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Selected roles will be excluded from all optimizations.', 'litespeed-cache' ); ?>
				</div>
				<div class="litespeed-tick-list">
					<?php
					foreach ( $roles as $role_id => $role_title ) {
						$this->build_checkbox( $option_id . '[]', $role_title, $this->cls( 'Conf' )->in_optm_exc_roles( $role_id ), $role_id );
					}
					?>
				</div>
			</td>
		</tr>

	</tbody>
</table><?php
/**
 * LiteSpeed Cache CSS Settings
 *
 * Renders the CSS optimization settings interface for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$css_summary         = CSS::get_summary();
$ucss_summary        = UCSS::get_summary();
$closest_server_ucss = Cloud::get_summary( 'server.' . Cloud::SVC_UCSS );
$closest_server      = Cloud::get_summary( 'server.' . Cloud::SVC_CCSS );

$ccss_queue = $this->load_queue( 'ccss' );
$ucss_queue = $this->load_queue( 'ucss' );

$next_gen = '<code class="litespeed-success">' . $this->cls( 'Media' )->next_gen_image_title() . '</code>';

$ucss_service_hot = $this->cls( 'Cloud' )->service_hot( Cloud::SVC_UCSS );
$ccss_service_hot = $this->cls( 'Cloud' )->service_hot( Cloud::SVC_CCSS );
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'CSS Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_CSS_MIN; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Minify CSS files and inline CSS code.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_CSS_COMB; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Combine CSS files and inline CSS code.', 'litespeed-cache' ); ?>
					<a href="https://docs.litespeedtech.com/lscache/lscwp/ts-optimize/" target="_blank"><?php esc_html_e( 'How to Fix Problems Caused by CSS/JS Optimization.', 'litespeed-cache' ); ?></a>
				</div>
			</td>
		</tr>

		<tr>
			<th class="litespeed-padding-left">
				<?php $option_id = Base::O_OPTM_UCSS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php if ( ! $this->cls( 'Cloud' )->activated() ) : ?>
						<div class="litespeed-callout notice notice-error inline">
							<h4><?php esc_html_e( 'WARNING', 'litespeed-cache' ); ?></h4>
							<?php echo wp_kses_post( Error::msg( 'qc_setup_required' ) ); ?>
						</div>
					<?php endif; ?>

					<?php esc_html_e( 'Use QUIC.cloud online service to generate unique CSS.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This will drop the unused CSS on each page from the combined file.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#generate-ucss' ); ?>
					<br /><?php esc_html_e( 'Automatic generation of unique CSS is in the background via a cron-based queue.', 'litespeed-cache' ); ?>
					<br />
					<font class="litespeed-success"><?php esc_html_e( 'API', 'litespeed-cache' ); ?>: <?php printf( esc_html__( 'Filter %s available for UCSS per page type generation.', 'litespeed-cache' ), '<code>add_filter( "litespeed_ucss_per_pagetype", "__return_true" );</code>' ); ?></font>

					<?php if ( $this->conf( Base::O_OPTM_UCSS ) && ! $this->conf( Base::O_OPTM_CSS_COMB ) ) : ?>
						<br />
						<font class="litespeed-warning">
							<?php printf( esc_html__( 'This option is bypassed because %1$s option is %2$s.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_OPTM_CSS_COMB ) ) . '</code>', '<code>' . esc_html__( 'OFF', 'litespeed-cache' ) . '</code>' ); ?>
						</font>
					<?php endif; ?>
				</div>

				<div class="litespeed-desc litespeed-left20">
					<?php if ( $ucss_summary ) : ?>
						<?php if ( ! empty( $ucss_summary['last_request'] ) ) : ?>
							<p>
								<?php echo esc_html__( 'Last generated', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::readable_time( $ucss_summary['last_request'] ) ) . '</code>'; ?>
							</p>
							<p>
								<?php echo esc_html__( 'Last requested cost', 'litespeed-cache' ) . ': <code>' . esc_html( $ucss_summary['last_spent'] ) . 's</code>'; ?>
							</p>
						<?php endif; ?>
					<?php endif; ?>

					<?php if ( $closest_server_ucss ) : ?>
						<a class="litespeed-redetect" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_UCSS ) ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label="<?php printf( esc_html__( 'Current closest Cloud server is %s. Click to redetect.', 'litespeed-cache' ), esc_html( $closest_server_ucss ) ); ?>" data-litespeed-cfm="<?php esc_html_e( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ); ?>"><i class="litespeed-quic-icon"></i> <?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?></a>
					<?php endif; ?>

					<?php if ( ! empty( $ucss_queue ) ) : ?>
						<div class="litespeed-callout notice notice-warning inline">
							<h4>
								<?php printf( esc_html__( 'URL list in %s queue waiting for cron', 'litespeed-cache' ), 'UCSS' ); ?> ( <?php echo esc_html( count( $ucss_queue ) ); ?> )
								<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_UCSS, UCSS::TYPE_CLEAR_Q ) ); ?>" class="button litespeed-btn-warning litespeed-right"><?php esc_html_e( 'Clear', 'litespeed-cache' ); ?></a>
							</h4>
							<p>
								<?php
								$i = 0;
								foreach ( $ucss_queue as $queue_key => $queue_val ) :
									if ( $i++ > 20 ) :
										echo '...';
										break;
									endif;
									if ( ! is_array( $queue_val ) ) {
										continue;
									}
									if ( ! empty( $queue_val['_status'] ) ) {
										echo '<span class="litespeed-success">';
									}
									echo esc_html( $queue_val['url'] );
									if ( ! empty( $queue_val['_status'] ) ) {
										echo '</span>';
									}
									$pos = strpos( $queue_key, ' ' );
									if ( $pos ) {
										echo ' (' . esc_html__( 'Vary Group', 'litespeed-cache' ) . ':' . esc_html( substr( $queue_key, 0, $pos ) ) . ')';
									}
									if ( $queue_val['is_mobile'] ) {
										echo ' <span data-balloon-pos="up" aria-label="mobile">📱</span>';
									}
									if ( ! empty( $queue_val['is_webp'] ) ) {
										echo ' ' . wp_kses_post( $next_gen );
									}
									echo '<br />';
								endforeach;
								?>
							</p>
						</div>
						<?php if ( $ucss_service_hot ) : ?>
							<button class="button button-secondary" disabled>
								<?php printf( esc_html__( 'Run %s Queue Manually', 'litespeed-cache' ), 'UCSS' ); ?>
								- <?php printf( esc_html__( 'Available after %d second(s)', 'litespeed-cache' ), esc_html( $ucss_service_hot ) ); ?>
							</button>
						<?php else : ?>
							<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_UCSS, UCSS::TYPE_GEN ) ); ?>" class="button litespeed-btn-success">
								<?php printf( esc_html__( 'Run %s Queue Manually', 'litespeed-cache' ), 'UCSS' ); ?>
							</a>
						<?php endif; ?>
						<?php Doc::queue_issues(); ?>
					<?php endif; ?>
				</div>
			</td>
		</tr>

		<tr>
			<th class="litespeed-padding-left">
				<?php $option_id = Base::O_OPTM_UCSS_INLINE; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_GUEST ) ) . '</code>' ); ?>
					<br />
					<font class="litespeed-info">
						<?php printf( esc_html__( 'This option will automatically bypass %s option.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_OPTM_CSS_ASYNC ) ) . '</code>' ); ?>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_CSS_COMB_EXT_INL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_OPTM_CSS_COMB ) ) . '</code>' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_CSS_ASYNC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php if ( ! $this->cls( 'Cloud' )->activated() ) : ?>
						<div class="litespeed-callout notice notice-error inline">
							<h4><?php esc_html_e( 'WARNING', 'litespeed-cache' ); ?></h4>
							<?php echo wp_kses_post( Error::msg( 'qc_setup_required' ) ); ?>
						</div>
					<?php endif; ?>
					<?php esc_html_e( 'Optimize CSS delivery.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?><br />
					<?php esc_html_e( 'Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#load-css-asynchronously' ); ?><br />
					<?php esc_html_e( 'Automatic generation of critical CSS is in the background via a cron-based queue.', 'litespeed-cache' ); ?><br />
					<?php printf( esc_html__( 'When this option is turned %s, it will also load Google Fonts asynchronously.', 'litespeed-cache' ), '<code>' . esc_html__( 'ON', 'litespeed-cache' ) . '</code>' ); ?>
					<br />
					<font class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'Elements with attribute %s in HTML code will be excluded.', 'litespeed-cache' ), '<code>data-no-async="1"</code>' ); ?>
					</font>

					<?php if ( $this->conf( Base::O_OPTM_CSS_ASYNC ) && $this->conf( Base::O_OPTM_CSS_COMB ) && $this->conf( Base::O_OPTM_UCSS ) && $this->conf( Base::O_OPTM_UCSS_INLINE ) ) : ?>
						<br />
						<font class="litespeed-warning">
							<?php printf( esc_html__( 'This option is bypassed due to %s option.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_OPTM_UCSS_INLINE ) ) . '</code>' ); ?>
						</font>
					<?php endif; ?>
				</div>

				<div class="litespeed-desc litespeed-left20">
					<?php if ( $css_summary ) : ?>
						<?php if ( ! empty( $css_summary['last_request_ccss'] ) ) : ?>
							<p>
								<?php echo esc_html__( 'Last generated', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::readable_time( $css_summary['last_request_ccss'] ) ) . '</code>'; ?>
							</p>
							<p>
								<?php echo esc_html__( 'Last requested cost', 'litespeed-cache' ) . ': <code>' . esc_html( $css_summary['last_spent_ccss'] ) . 's</code>'; ?>
							</p>
						<?php endif; ?>
					<?php endif; ?>

					<?php if ( $closest_server ) : ?>
						<a class="litespeed-redetect" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_CCSS ) ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label="<?php printf( esc_html__( 'Current closest Cloud server is %s. Click to redetect.', 'litespeed-cache' ), esc_html( $closest_server ) ); ?>" data-litespeed-cfm="<?php esc_html_e( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ); ?>"><i class="litespeed-quic-icon"></i> <?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?></a>
					<?php endif; ?>

					<?php if ( ! empty( $ccss_queue ) ) : ?>
						<div class="litespeed-callout notice notice-warning inline">
							<h4>
								<?php printf( esc_html__( 'URL list in %s queue waiting for cron', 'litespeed-cache' ), 'CCSS' ); ?> ( <?php echo esc_html( count( $ccss_queue ) ); ?> )
								<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CSS, CSS::TYPE_CLEAR_Q_CCSS ) ); ?>" class="button litespeed-btn-warning litespeed-right"><?php esc_html_e( 'Clear', 'litespeed-cache' ); ?></a>
							</h4>
							<p>
								<?php
								$i = 0;
								foreach ( $ccss_queue as $queue_key => $queue_val ) :
									if ( $i++ > 20 ) :
										echo '...';
										break;
									endif;
									if ( ! is_array( $queue_val ) ) {
										continue;
									}
									if ( ! empty( $queue_val['_status'] ) ) {
										echo '<span class="litespeed-success">';
									}
									echo esc_html( $queue_val['url'] );
									if ( ! empty( $queue_val['_status'] ) ) {
										echo '</span>';
									}
									$pos = strpos( $queue_key, ' ' );
									if ( $pos ) {
										echo ' (' . esc_html__( 'Vary Group', 'litespeed-cache' ) . ':' . esc_html( substr( $queue_key, 0, $pos ) ) . ')';
									}
									if ( $queue_val['is_mobile'] ) {
										echo ' <span data-balloon-pos="up" aria-label="mobile">📱</span>';
									}
									if ( ! empty( $queue_val['is_webp'] ) ) {
										echo ' ' . wp_kses_post( $next_gen );
									}
									echo '<br />';
								endforeach;
								?>
							</p>
						</div>
						<?php if ( $ccss_service_hot ) : ?>
							<button class="button button-secondary" disabled>
								<?php printf( esc_html__( 'Run %s Queue Manually', 'litespeed-cache' ), 'CCSS' ); ?>
								- <?php printf( esc_html__( 'Available after %d second(s)', 'litespeed-cache' ), esc_html( $ccss_service_hot ) ); ?>
							</button>
						<?php else : ?>
							<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GEN_CCSS ) ); ?>" class="button litespeed-btn-success">
								<?php printf( esc_html__( 'Run %s Queue Manually', 'litespeed-cache' ), 'CCSS' ); ?>
							</a>
						<?php endif; ?>
						<?php Doc::queue_issues(); ?>
					<?php endif; ?>
				</div>
			</td>
		</tr>

		<tr>
			<th class="litespeed-padding-left">
				<?php $option_id = Base::O_OPTM_CCSS_PER_URL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th class="litespeed-padding-left">
				<?php $option_id = Base::O_OPTM_CSS_ASYNC_INLINE; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'This will inline the asynchronous CSS library to avoid render blocking.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_CSS_FONT_DISPLAY; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id, array( esc_html__( 'Default', 'litespeed-cache' ), 'Swap' ) ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.', 'litespeed-cache' ), '<code>font-display</code>', '<code>@font-face</code>' ); ?>
					<br /><?php printf( esc_html__( '%s is recommended.', 'litespeed-cache' ), '<code>' . esc_html__( 'Swap', 'litespeed-cache' ) . '</code>' ); ?>
				</div>
			</td>
		</tr>
	</tbody>
</table><?php
/**
 * LiteSpeed Cache Localization Settings
 *
 * Renders the localization settings interface for LiteSpeed Cache, including Gravatar caching and resource localization.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$last_generated = Avatar::get_summary();
$avatar_queue   = Avatar::cls()->queue_count();
?>

<?php if ( $this->cls( 'Avatar' )->need_db() && ! $this->cls( 'Data' )->tb_exist( 'avatar' ) ) : ?>
<div class="litespeed-callout notice notice-error inline">
	<h4><?php esc_html_e( 'WARNING', 'litespeed-cache' ); ?></h4>
	<p><?php printf( esc_html__( 'Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.', 'litespeed-cache' ), 'href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:installation" target="_blank"' ); ?></p>
</div>
<?php endif; ?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Localization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $option_id = Base::O_DISCUSS_AVATAR_CACHE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Store Gravatar locally.', 'litespeed-cache' ); ?>
				<?php esc_html_e( 'Accelerates the speed by caching Gravatar (Globally Recognized Avatars).', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $option_id = Base::O_DISCUSS_AVATAR_CRON; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Refresh Gravatar cache by cron.', 'litespeed-cache' ); ?>
			</div>

			<?php if ( $last_generated ) : ?>
			<div class="litespeed-desc">
				<?php if ( ! empty( $last_generated['last_request'] ) ) : ?>
					<p>
						<?php echo esc_html__( 'Last ran', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::readable_time( $last_generated['last_request'] ) ) . '</code>'; ?>
					</p>
				<?php endif; ?>
				<?php if ( $avatar_queue ) : ?>
					<div class="litespeed-callout notice notice-warning inline">
						<h4>
							<?php echo esc_html__( 'Avatar list in queue waiting for update', 'litespeed-cache' ); ?>:
							<?php echo esc_html( $avatar_queue ); ?>
						</h4>
					</div>
					<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_AVATAR, Avatar::TYPE_GENERATE ) ); ?>" class="button litespeed-btn-success">
						<?php esc_html_e( 'Run Queue Manually', 'litespeed-cache' ); ?>
					</a>
				<?php endif; ?>
			</div>
			<?php endif; ?>

		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $option_id = Base::O_DISCUSS_AVATAR_CACHE_TTL; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_input( $option_id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Specify how long, in seconds, Gravatar files are cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $option_id ); ?>
				<?php $this->_validate_ttl( $option_id, 3600 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_LOCALIZE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Localize external resources.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localize' ); ?>

				<br /><font class="litespeed-danger">
					🚨 <?php printf( esc_html__( 'Please thoroughly test all items in %s to ensure they function as expected.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_OPTM_LOCALIZE_DOMAINS ) ) . '</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $option_id = Base::O_OPTM_LOCALIZE_DOMAINS; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $option_id ); ?>
				</div>
				<div>
					<?php $this->recommended( $option_id, true ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php esc_html_e( 'Resources listed here will be copied and replaced with local URLs.', 'litespeed-cache' ); ?>
				<?php esc_html_e( 'HTTPS sources only.', 'litespeed-cache' ); ?>

				<?php Doc::one_per_line(); ?>

				<br /><?php printf( esc_html__( 'Comments are supported. Start a line with a %s to turn it into a comment line.', 'litespeed-cache' ), '<code>#</code>' ); ?>

				<br /><?php esc_html_e( 'Example', 'litespeed-cache' ); ?>: <code>https://www.example.com/one.js</code>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localization-files' ); ?>

				<br /><font class="litespeed-danger">
					🚨 <?php esc_html_e( 'Please thoroughly test each JS file you add to ensure it functions as expected.', 'litespeed-cache' ); ?>
				</font>
			</div>
		</td>
	</tr>

</tbody></table><?php
/**
 * LiteSpeed Cache HTML Settings
 *
 * Renders the HTML optimization settings interface for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'HTML Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#html-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_HTML_MIN; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Minify HTML content.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_DNS_PREFETCH; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Prefetching DNS can reduce latency for visitors.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'For example', 'litespeed-cache' ); ?>: <code>//www.example.com</code>
					<?php Doc::one_per_line(); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#dns-prefetch' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_DNS_PREFETCH_CTRL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This can improve the page loading speed.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_DNS_PRECONNECT; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Preconnecting speeds up future loads from a given origin.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'For example', 'litespeed-cache' ); ?>: <code>https://example.com</code>
					<?php Doc::one_per_line(); ?>
					<?php Doc::learn_more( 'https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/preconnect' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_HTML_LAZY; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Delay rendering off-screen HTML elements by its selector.', 'litespeed-cache' ); ?>
					<?php Doc::one_per_line(); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#html-lazyload-selectors' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_HTML_SKIP_COMMENTS; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_textarea( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'When minifying HTML do not discard comments that match a specified pattern.', 'litespeed-cache' ); ?>
					<br />
					<?php printf( esc_html__( 'If comment to be kept is like: %1$s write: %2$s', 'litespeed-cache' ), '<code>&lt;!-- A comment that needs to be here --&gt;</code>', '<code>A comment that needs to be here</code>' ); ?>
					<br />
					<?php Doc::one_per_line(); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_QS_RM; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Remove query strings from internal static resources.', 'litespeed-cache' ); ?>
					<br />
					<font class="litespeed-warning">
						⚠️
						<?php esc_html_e( 'Google reCAPTCHA will be bypassed automatically.', 'litespeed-cache' ); ?>
					</font>
					<br />
					<font class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'Append query string %s to the resources to bypass this action.', 'litespeed-cache' ), '<code>&amp;_litespeed_rm_qs=0</code>' ); ?>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_GGFONTS_ASYNC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This will also add a preconnect to Google Fonts to establish a connection earlier.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#load-google-fonts-asynchronously' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_GGFONTS_RM; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Prevent Google Fonts from loading on all pages.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_EMOJI_RM; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Stop loading WordPress.org emoji. Browser default emoji will be displayed instead.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_NOSCRIPT_RM; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'This option will remove all %s tags from HTML.', 'litespeed-cache' ), '<code>&lt;noscript&gt;</code>' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#remove-noscript-tags' ); ?>
				</div>
			</td>
		</tr>

	</tbody>
</table><?php
/**
 * LiteSpeed Cache Page Optimization Interface
 *
 * Renders the page optimization settings interface for LiteSpeed Cache with tabbed navigation.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
	'settings_css'          => esc_html__( 'CSS Settings', 'litespeed-cache' ),
	'settings_js'           => esc_html__( 'JS Settings', 'litespeed-cache' ),
	'settings_html'         => esc_html__( 'HTML Settings', 'litespeed-cache' ),
	'settings_media'        => esc_html__( 'Media Settings', 'litespeed-cache' ),
	'settings_vpi'          => esc_html__( 'VPI', 'litespeed-cache' ),
	'settings_media_exc'    => esc_html__( 'Media Excludes', 'litespeed-cache' ),
	'settings_localization' => esc_html__( 'Localization', 'litespeed-cache' ),
	'settings_tuning'       => esc_html__( 'Tuning', 'litespeed-cache' ),
	'settings_tuning_css'   => esc_html__( 'Tuning', 'litespeed-cache' ) . ' - CSS',
);

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php esc_html_e( 'LiteSpeed Cache Page Optimization', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo esc_html( Core::VER ); ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">

	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php esc_html_e( 'NOTICE', 'litespeed-cache' ); ?></h4>
		<p><?php esc_html_e( 'Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.', 'litespeed-cache' ); ?></p>
	</div>

	<h2 class="litespeed-header nav-tab-wrapper">
		<?php GUI::display_tab_list( $menu_list ); ?>
	</h2>

	<div class="litespeed-body">
	<?php
		$this->form_action();

		// Include all tpl for faster UE
		foreach ( $menu_list as $tab_key => $tab_val ) {
			?>
			<div data-litespeed-layout='<?php echo esc_attr( $tab_key ); ?>'>
				<?php require LSCWP_DIR . 'tpl/page_optm/' . sanitize_file_name( $tab_key ) . '.tpl.php'; ?>
			</div>
			<?php
		}

		$this->form_end();
	?>
	</div>

</div><?php
/**
 * LiteSpeed Cache Viewport Images Settings
 *
 * Renders the Viewport Images settings interface for LiteSpeed Cache, allowing configuration of viewport image detection and exclusions.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$summary        = VPI::get_summary();
$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_VPI );

$queue           = $this->load_queue( 'vpi' );
$vpi_service_hot = $this->cls( 'Cloud' )->service_hot( Cloud::SVC_VPI );
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Viewport Images', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#vpi-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_VPI; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'When you use Lazy Load, it will delay the loading of all images on a page.', 'litespeed-cache' ); ?>
					<br /><?php esc_html_e( 'The Viewport Images service detects which images appear above the fold, and excludes them from lazy load.', 'litespeed-cache' ); ?>
					<br /><?php esc_html_e( "This enables the page's initial screenful of imagery to be fully displayed without delay.", 'litespeed-cache' ); ?>

					<?php if ( ! $this->conf( Base::O_MEDIA_LAZY ) ) : ?>
						<br />
						<font class="litespeed-warning litespeed-left10">
							⚠️ <?php esc_html_e( 'Notice', 'litespeed-cache' ); ?>: <?php printf( esc_html__( '%s must be turned ON for this setting to work.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_MEDIA_LAZY ) ) . '</code>' ); ?>
						</font>
					<?php endif; ?>
				</div>

				<div class="litespeed-desc litespeed-left20">
					<?php if ( $summary ) : ?>
						<?php if ( ! empty( $summary['last_request'] ) ) : ?>
							<p>
								<?php echo esc_html__( 'Last generated', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::readable_time( $summary['last_request'] ) ) . '</code>'; ?>
							</p>
						<?php endif; ?>
					<?php endif; ?>

					<?php if ( $closest_server ) : ?>
						<a class='litespeed-redetect' href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_VPI ) ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php printf( esc_html__( 'Current closest Cloud server is %s. Click to redetect.', 'litespeed-cache' ), esc_html( $closest_server ) ); ?>' data-litespeed-cfm="<?php esc_html_e( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ); ?>"><i class='litespeed-quic-icon'></i> <?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?></a>
					<?php endif; ?>

					<?php if ( ! empty( $queue ) ) : ?>
						<div class="litespeed-callout notice notice-warning inline">
							<h4>
								<?php printf( esc_html__( 'URL list in %s queue waiting for cron', 'litespeed-cache' ), 'VPI' ); ?> ( <?php echo esc_html( count( $queue ) ); ?> )
								<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_VPI, VPI::TYPE_CLEAR_Q ) ); ?>" class="button litespeed-btn-warning litespeed-right"><?php esc_html_e( 'Clear', 'litespeed-cache' ); ?></a>
							</h4>
							<p>
								<?php
								$i = 0;
								foreach ( $queue as $k => $v ) {
									if ( $i++ > 20 ) {
										echo '...';
										break;
									}
									if ( ! is_array( $v ) ) {
										continue;
									}
									if ( ! empty( $v['_status'] ) ) {
										echo '<span class="litespeed-success">';
									}
									echo esc_html( $v['url'] );
									if ( ! empty( $v['_status'] ) ) {
										echo '</span>';
									}
									$pos = strpos( $k, ' ' );
									if ( $pos ) {
										echo ' (' . esc_html__( 'Vary Group', 'litespeed-cache' ) . ':' . esc_html( substr( $k, 0, $pos ) ) . ')';
									}
									if ( $v['is_mobile'] ) {
										echo ' <span data-balloon-pos="up" aria-label="mobile">📱</span>';
									}
									echo '<br />';
								}
								?>
							</p>
						</div>
						<?php if ( $vpi_service_hot ) : ?>
							<button class="button button-secondary" disabled>
								<?php printf( esc_html__( 'Run %s Queue Manually', 'litespeed-cache' ), 'VPI' ); ?>
								- <?php printf( esc_html__( 'Available after %d second(s)', 'litespeed-cache' ), esc_html( $vpi_service_hot ) ); ?>
							</button>
						<?php else : ?>
							<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_VPI, VPI::TYPE_GEN ) ); ?>" class="button litespeed-btn-success">
								<?php printf( esc_html__( 'Run %s Queue Manually', 'litespeed-cache' ), 'VPI' ); ?>
							</a>
						<?php endif; ?>
						<?php Doc::queue_issues(); ?>
					<?php endif; ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_VPI_CRON; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Enable Viewport Images auto generation cron.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>
	</tbody>
</table><?php
/**
 * LiteSpeed Cache Tuning CSS Settings
 *
 * Renders the Tuning CSS settings interface for LiteSpeed Cache, allowing configuration of CSS exclusions and optimizations.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>
<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Tuning CSS Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#tuning-css-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
<tbody>
	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_CSS_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Listed CSS files or inline CSS code will not be minified or combined.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><font class="litespeed-success">
					<?php echo esc_html_e( 'API', 'litespeed-cache' ); ?>:
					<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optimize_css_excludes</code>' ); ?>
					<?php printf( esc_html__( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ); ?>
					<br /><?php echo esc_html_e( 'Predefined list will also be combined with the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/css_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/css_excludes.txt</a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_UCSS_FILE_EXC_INLINE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Listed CSS files will be excluded from UCSS and saved to inline.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_UCSS_SELECTOR_WHITELIST; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'List the CSS selectors whose styles should always be included in UCSS.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#ucss-selector-allowlist', esc_html__( 'Learn more', 'litespeed-cache' ) ); ?>.
				<br /><?php printf( esc_html__( 'Wildcard %s supported.', 'litespeed-cache' ), '<code>*</code>' ); ?>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php esc_html_e( 'Note', 'litespeed-cache' ); ?></h4>
					<p>
						<?php esc_html_e( 'The selector must exist in the CSS. Parent classes in the HTML will not work.', 'litespeed-cache' ); ?>
					</p>
				</div>
				<font class="litespeed-success">
					<?php esc_html_e( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/ucss_whitelist.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/ucss_whitelist.txt</a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_UCSS_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Listed URI will not generate UCSS.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><span class="litespeed-success">
					<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
					<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_ucss_exc</code>' ); ?>
				</span>
				<br /><font class="litespeed-success"><?php esc_html_e( 'API', 'litespeed-cache' ); ?>: <?php printf( esc_html__( 'Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.', 'litespeed-cache' ), "<code>add_filter( 'litespeed_ucss_per_pagetype', function(){return get_post_type() == 'page';} );</code>", '<code>page</code>' ); ?></font>
				<br /><font class="litespeed-success"><?php esc_html_e( 'API', 'litespeed-cache' ); ?>: <?php printf( esc_html__( 'Use %1$s to bypass UCSS for the pages which page type is %2$s.', 'litespeed-cache' ), "<code>add_action( 'litespeed_optm', function(){get_post_type() == 'page' && do_action( 'litespeed_conf_force', 'optm-ucss', false );});</code>", '<code>page</code>' ); ?></font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_CCSS_SEP_POSTTYPE; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'List post types where each item of that type should have its own CCSS generated.', 'litespeed-cache' ); ?>
				<?php printf( esc_html__( 'For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.', 'litespeed-cache' ), '<code>page</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#separate-ccss-cache-post-types_1' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_CCSS_SEP_URI; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Separate critical CSS files will be generated for paths containing these strings.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_CCSS_SELECTOR_WHITELIST; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'List the CSS selectors whose styles should always be included in CCSS.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#ccss-selector-allowlist', esc_html__( 'Learn more', 'litespeed-cache' ) ); ?>.
				<br /><?php printf( esc_html__( 'Wildcard %s supported.', 'litespeed-cache' ), '<code>*</code>' ); ?>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php esc_html_e( 'Note', 'litespeed-cache' ); ?></h4>
					<p>
						<?php esc_html_e( 'Selectors must exist in the CSS. Parent classes in the HTML will not work.', 'litespeed-cache' ); ?>
					</p>
				</div>
				<font class="litespeed-success">
					<?php esc_html_e( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/ccss_whitelist.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/ccss_whitelist.txt</a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_OPTM_CCSS_CON; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php printf( esc_html__( 'Specify critical CSS rules for above-the-fold content when enabling %s.', 'litespeed-cache' ), esc_html__( 'Load CSS Asynchronously', 'litespeed-cache' ) ); ?>
			</div>
		</td>
	</tr>

</tbody></table><?php
/**
 * LiteSpeed Cache Media Excludes Settings
 *
 * Renders the media excludes settings interface for LiteSpeed Cache, allowing configuration of exclusions for lazy loading and LQIP.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Media Excludes', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#media-excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $option_id = Base::O_MEDIA_LAZY_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Listed images will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><?php esc_html_e( 'Useful for above-the-fold images causing CLS (a Core Web Vitals metric).', 'litespeed-cache' ); ?>
				<br /><font class="litespeed-success">
					<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
					<?php printf( esc_html__( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_media_lazy_img_excludes</code>' ); ?>
					<?php printf( esc_html__( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-lazy="1"</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_MEDIA_LAZY_CLS_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $option_id ); ?>
				</div>
				<div>
					<?php $this->recommended( $option_id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php esc_html_e( 'Images containing these class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url( true ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_MEDIA_LAZY_PARENT_CLS_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Images having these parent class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_MEDIA_IFRAME_LAZY_CLS_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Iframes containing these class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url( true ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Iframes having these parent class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_MEDIA_LAZY_URI_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'Prevent any lazy load of listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $option_id = Base::O_MEDIA_LQIP_EXC; ?>
			<?php $this->title( $option_id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $option_id ); ?>
			<div class="litespeed-desc">
				<?php esc_html_e( 'These images will not generate LQIP.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
			</div>
		</td>
	</tr>

</tbody></table><?php
/**
 * LiteSpeed Cache Media Settings
 *
 * Renders the media settings interface for LiteSpeed Cache, including lazy loading, placeholders, and image optimization options.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$placeholder_summary = Placeholder::get_summary();

$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_LQIP );

$lqip_queue = $this->load_queue( 'lqip' );

?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'Media Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#media-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>
		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_LAZY; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Load images only when they enter the viewport.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This can improve page loading time by reducing initial HTTP requests.', 'litespeed-cache' ); ?>
					<br />
					<font class="litespeed-success">
						💡
						<a href="https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lazy-load-images" target="_blank"><?php esc_html_e( 'Adding Style to Your Lazy-Loaded Images', 'litespeed-cache' ); ?></a>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_LAZY_PLACEHOLDER; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-long' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify a base64 image to be used as a simple placeholder while images finish loading.', 'litespeed-cache' ); ?>
					<br /><?php printf( esc_html__( 'This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.', 'litespeed-cache' ), '<code>LITESPEED_PLACEHOLDER</code>', '<code>wp-config.php</code>' ); ?>
					<br /><?php printf( esc_html__( 'By default a gray image placeholder %s will be used.', 'litespeed-cache' ), '<code>data:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=</code>' ); ?>
					<br /><?php printf( esc_html__( 'For example, %s can be used for a transparent placeholder.', 'litespeed-cache' ), '<code>data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7</code>' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_PLACEHOLDER_RESP; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Responsive image placeholders can help to reduce layout reshuffle when images are loaded.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This will generate the placeholder with same dimensions as the image if it has the width and height attributes.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_PLACEHOLDER_RESP_SVG; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-long' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify an SVG to be used as a placeholder when generating locally.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'It will be converted to a base64 SVG placeholder on-the-fly.', 'litespeed-cache' ); ?>
					<br /><?php printf( esc_html__( 'Variables %s will be replaced with the corresponding image properties.', 'litespeed-cache' ), '<code>{width} {height}</code>' ); ?>
					<br /><?php printf( esc_html__( 'Variables %s will be replaced with the configured background color.', 'litespeed-cache' ), '<code>{color}</code>' ); ?>
					<br /><?php $this->recommended( $option_id ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_PLACEHOLDER_RESP_COLOR; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, null, null, 'color' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify the responsive placeholder SVG color.', 'litespeed-cache' ); ?>
					<?php $this->recommended( $option_id ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_LQIP; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.', 'litespeed-cache' ); ?>
					<br /><?php esc_html_e( 'Keep this off to use plain color placeholders.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lqip-cloud-generator' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_LQIP_QUAL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Specify the quality when generating LQIP.', 'litespeed-cache' ); ?>
					<br /><?php esc_html_e( 'Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.', 'litespeed-cache' ); ?>
					<?php $this->recommended( $option_id ); ?>
					<?php $this->_validate_ttl( $option_id, 1, 20 ); ?>
					<br />💡 <?php printf( esc_html__( 'Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.', 'litespeed-cache' ), '<code>' . esc_html__( 'Purge All', 'litespeed-cache' ) . ' - ' . esc_html__( 'LQIP Cache', 'litespeed-cache' ) . '</code>' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_LQIP_MIN_W; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?> x
				<?php $this->build_input( Base::O_MEDIA_LQIP_MIN_H, 'litespeed-input-short' ); ?>
				<?php esc_html_e( 'pixels', 'litespeed-cache' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'LQIP requests will not be sent for images where both width and height are smaller than these dimensions.', 'litespeed-cache' ); ?>
					<?php $this->recommended( $option_id ); ?>
					<?php $this->_validate_ttl( $option_id, 10, 800 ); ?>
					<?php $this->_validate_ttl( Base::O_MEDIA_LQIP_MIN_H, 10, 800 ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Automatically generate LQIP in the background via a cron-based queue.', 'litespeed-cache' ); ?>
					<?php
					printf(
						esc_html__( 'If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.', 'litespeed-cache' ),
						'<code>' . esc_html__( 'ON', 'litespeed-cache' ) . '</code>',
						'<code>' . esc_html( Lang::title( Base::O_MEDIA_PLACEHOLDER_RESP_SVG ) ) . '</code>'
					);
					?>
					<?php printf( esc_html__( 'If set to %s this is done in the foreground, which may slow down page load.', 'litespeed-cache' ), '<code>' . esc_html__( 'OFF', 'litespeed-cache' ) . '</code>' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#generate-lqip-in-background' ); ?>
				</div>

				<div class="litespeed-desc">
					<?php if ( $placeholder_summary ) : ?>
						<?php if ( ! empty( $placeholder_summary['last_request'] ) ) : ?>
							<p>
								<?php echo esc_html__( 'Last generated', 'litespeed-cache' ) . ': <code>' . esc_html( Utility::readable_time( $placeholder_summary['last_request'] ) ) . '</code>'; ?>
							</p>
						<?php endif; ?>
					<?php endif; ?>

					<?php if ( $closest_server ) : ?>
						<a class="litespeed-redetect" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_LQIP ) ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php printf( esc_html__( 'Current closest Cloud server is %s. Click to redetect.', 'litespeed-cache' ), esc_html( $closest_server ) ); ?>' data-litespeed-cfm="<?php esc_html_e( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ); ?>"><i class='litespeed-quic-icon'></i> <?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?></a>
					<?php endif; ?>

					<?php if ( ! empty( $lqip_queue ) ) : ?>
						<div class="litespeed-callout notice notice-warning inline">
							<h4>
								<?php esc_html_e( 'Size list in queue waiting for cron', 'litespeed-cache' ); ?> ( <?php echo esc_html( count( $lqip_queue ) ); ?> )
								<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_CLEAR_Q ) ); ?>" class="button litespeed-btn-warning litespeed-right"><?php esc_html_e( 'Clear', 'litespeed-cache' ); ?></a>
							</h4>
							<p>
								<?php
								$i = 0;
								foreach ( $lqip_queue as $k => $v ) {
									if ( $i++ > 20 ) {
										echo '...';
										break;
									}
									echo esc_html( $v );
									echo '<br />';
								}
								?>
							</p>
						</div>
						<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_GENERATE ) ); ?>" class="button litespeed-btn-success">
							<?php esc_html_e( 'Run Queue Manually', 'litespeed-cache' ); ?>
						</a>
						<?php Doc::queue_issues(); ?>
					<?php endif; ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_IFRAME_LAZY; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Load iframes only when they enter the viewport.', 'litespeed-cache' ); ?>
					<?php esc_html_e( 'This can improve page loading time by reducing initial HTTP requests.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_MEDIA_ADD_MISSING_SIZES; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://web.dev/optimize-cls/#images-without-dimensions' ); ?>

					<br />
					<font class="litespeed-warning litespeed-left10">
						⚠️ <?php esc_html_e( 'Notice', 'litespeed-cache' ); ?>: <?php printf( esc_html__( '%s must be turned ON for this setting to work.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_MEDIA_LAZY ) ) . '</code>' ); ?>
					</font>

					<br />
					<font class="litespeed-success">
						<?php esc_html_e( 'API', 'litespeed-cache' ); ?>:
						<?php printf( esc_html__( 'Use %1$s to bypass remote image dimension check when %2$s is ON.', 'litespeed-cache' ), '<code>add_filter( "litespeed_media_ignore_remote_missing_sizes", "__return_true" );</code>', '<code>' . esc_html( Lang::title( Base::O_MEDIA_ADD_MISSING_SIZES ) ) . '</code>' ); ?>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_IMG_OPTM_JPG_QUALITY; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_input( $option_id, 'litespeed-input-short' ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'The image compression quality setting of WordPress out of 100.', 'litespeed-cache' ); ?>
					<?php $this->recommended( $option_id ); ?>
					<?php $this->_validate_ttl( $option_id, 0, 100 ); ?>
				</div>
			</td>
		</tr>
	</tbody>
</table><?php
/**
 * LiteSpeed Cache JS Settings
 *
 * Renders the JS optimization settings interface for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'JS Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#js-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table">
	<tbody>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_JS_MIN; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Minify JS files and inline JS codes.', 'litespeed-cache' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_JS_COMB; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<?php Doc::maybe_on_by_gm( $option_id ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Combine all local JS files into a single file.', 'litespeed-cache' ); ?>
					<a href="https://docs.litespeedtech.com/lscache/lscwp/ts-optimize/" target="_blank"><?php esc_html_e( 'How to Fix Problems Caused by CSS/JS Optimization.', 'litespeed-cache' ); ?></a>
					<br />
					<font class="litespeed-danger">
						🚨 <?php esc_html_e( 'This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.', 'litespeed-cache' ); ?>
						<?php esc_html_e( 'JS error can be found from the developer console of browser by right clicking and choosing Inspect.', 'litespeed-cache' ); ?>
					</font>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_JS_COMB_EXT_INL; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id ); ?>
				<div class="litespeed-desc">
					<?php printf( esc_html__( 'Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.', 'litespeed-cache' ), '<code>' . esc_html( Lang::title( Base::O_OPTM_JS_COMB ) ) . '</code>' ); ?>
				</div>
			</td>
		</tr>

		<tr>
			<th>
				<?php $option_id = Base::O_OPTM_JS_DEFER; ?>
				<?php $this->title( $option_id ); ?>
			</th>
			<td>
				<?php $this->build_switch( $option_id, array( esc_html__( 'OFF', 'litespeed-cache' ), esc_html__( 'Deferred', 'litespeed-cache' ), esc_html__( 'Delayed', 'litespeed-cache' ) ) ); ?>
				<div class="litespeed-desc">
					<?php esc_html_e( 'Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#load-js-deferred' ); ?><br />
					<?php esc_html_e( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?>
					<?php Doc::learn_more( 'https://web.dev/fid/#what-is-fid' ); ?>
					<br />
					<font class="litespeed-danger">
						🚨 <?php esc_html_e( 'This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.', 'litespeed-cache' ); ?>
					</font>
				</div>
			</td>
		</tr>

	</tbody>
</table><?php
/**
 * LiteSpeed Cache ESI Block Loader
 *
 * Loads the ESI block for LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

defined( 'WPINC' ) || exit;

\LiteSpeed\ESI::cls()->load_esi_block();
<?php
/**
 * LiteSpeed Cache Dashboard
 *
 * Displays the dashboard for LiteSpeed Cache plugin, including cache status,
 * crawler status, QUIC.cloud service usage, and optimization statistics.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$health_scores   = Health::cls()->scores();
$crawler_summary = Crawler::get_summary();

// Image related info
$img_optm_summary        = Img_Optm::get_summary();
$img_count               = Img_Optm::cls()->img_count();
$img_finished_percentage = 0;
if ( ! empty( $img_count['groups_all'] ) ) {
	$img_finished_percentage = 100 - floor( $img_count['groups_new'] * 100 / $img_count['groups_all'] );
}
if ( 100 === $img_finished_percentage && ! empty( $img_count['groups_new'] ) ) {
	$img_finished_percentage = 99;
}

$cloud_instance = Cloud::cls();
$cloud_instance->finish_qc_activation();

$cloud_summary           = Cloud::get_summary();
$css_summary             = CSS::get_summary();
$ucss_summary            = UCSS::get_summary();
$placeholder_summary     = Placeholder::get_summary();
$vpi_summary             = VPI::get_summary();
$ccss_count              = count( $this->load_queue( 'ccss' ) );
$ucss_count              = count( $this->load_queue( 'ucss' ) );
$placeholder_queue_count = count( $this->load_queue( 'lqip' ) );
$vpi_queue_count         = count( $this->load_queue( 'vpi' ) );
$can_page_load_time      = defined( 'LITESPEED_SERVER_TYPE' ) && 'NONE' !== LITESPEED_SERVER_TYPE;

?>

<div class="litespeed-dashboard">
	<?php if ( ! $cloud_instance->activated() && ! Admin_Display::has_qc_hide_banner() ) : ?>
		<div class="litespeed-dashboard-group">
			<div class="litespeed-flex-container">
				<div class="postbox litespeed-postbox litespeed-postbox-cache">
					<div class="inside">
						<h3 class="litespeed-title">
							<?php esc_html_e( 'Cache Status', 'litespeed-cache' ); ?>
							<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-cache' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
						</h3>
						<?php
						$cache_list = array(
							Base::O_CACHE         => esc_html__( 'Public Cache', 'litespeed-cache' ),
							Base::O_CACHE_PRIV    => esc_html__( 'Private Cache', 'litespeed-cache' ),
							Base::O_OBJECT        => esc_html__( 'Object Cache', 'litespeed-cache' ),
							Base::O_CACHE_BROWSER => esc_html__( 'Browser Cache', 'litespeed-cache' ),
						);
						foreach ( $cache_list as $cache_option => $cache_title ) :
							?>
							<p>
								<?php if ( $this->conf( $cache_option ) ) : ?>
									<span class="litespeed-label-success litespeed-label-dashboard"><?php esc_html_e( 'ON', 'litespeed-cache' ); ?></span>
								<?php else : ?>
									<span class="litespeed-label-danger litespeed-label-dashboard"><?php esc_html_e( 'OFF', 'litespeed-cache' ); ?></span>
								<?php endif; ?>
								<?php echo esc_html( $cache_title ); ?>
							</p>
						<?php endforeach; ?>
					</div>
				</div>

				<div class="postbox litespeed-postbox litespeed-postbox-crawler">
					<div class="inside">
						<h3 class="litespeed-title">
							<?php esc_html_e( 'Crawler Status', 'litespeed-cache' ); ?>
							<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-crawler' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
						</h3>
						<p>
							<code><?php echo esc_html( count( Crawler::cls()->list_crawlers() ) ); ?></code> <?php esc_html_e( 'Crawler(s)', 'litespeed-cache' ); ?>
						</p>
						<p>
							<?php esc_html_e( 'Currently active crawler', 'litespeed-cache' ); ?>: <code><?php echo esc_html( $crawler_summary['curr_crawler'] ); ?></code>
						</p>
						<?php if ( ! empty( $crawler_summary['curr_crawler_beginning_time'] ) ) : ?>
							<p>
								<span class="litespeed-bold"><?php esc_html_e( 'Current crawler started at', 'litespeed-cache' ); ?>:</span>
								<?php echo esc_html( Utility::readable_time( $crawler_summary['curr_crawler_beginning_time'] ) ); ?>
							</p>
						<?php endif; ?>
						<?php if ( ! empty( $crawler_summary['last_start_time'] ) ) : ?>
							<p class="litespeed-desc">
								<span class="litespeed-bold"><?php esc_html_e( 'Last interval', 'litespeed-cache' ); ?>:</span>
								<?php echo esc_html( Utility::readable_time( $crawler_summary['last_start_time'] ) ); ?>
							</p>
						<?php endif; ?>
						<?php if ( ! empty( $crawler_summary['end_reason'] ) ) : ?>
							<p class="litespeed-desc">
								<span class="litespeed-bold"><?php esc_html_e( 'Ended reason', 'litespeed-cache' ); ?>:</span>
								<?php echo esc_html( $crawler_summary['end_reason'] ); ?>
							</p>
						<?php endif; ?>
						<?php if ( ! empty( $crawler_summary['last_crawled'] ) ) : ?>
							<p class="litespeed-desc">
								<?php
								printf(
									esc_html__( '%1$s %2$d item(s)', 'litespeed-cache' ),
									'<span class="litespeed-bold">' . esc_html__( 'Last crawled:', 'litespeed-cache' ) . '</span>',
									esc_html( $crawler_summary['last_crawled'] )
								);
								?>
							</p>
						<?php endif; ?>
					</div>
				</div>

				<?php
				$news = $cloud_instance->load_qc_status_for_dash( 'news_dash_guest' );
				if ( ! empty( $news ) ) :
					?>
					<div class="postbox litespeed-postbox">
						<div class="inside litespeed-text-center">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'News', 'litespeed-cache' ); ?>
							</h3>
							<div class="litespeed-top20">
								<?php echo wp_kses_post( $news ); ?>
							</div>
						</div>
					</div>
				<?php endif; ?>
			</div>
		</div>
	<?php endif; ?>

	<div class="litespeed-dashboard-qc">
		<?php if ( ! $cloud_instance->activated() && ! Admin_Display::has_qc_hide_banner() ) : ?>
			<div class="litespeed-dashboard-unlock">
				<div>
					<h3 class="litespeed-dashboard-unlock-title">
						<strong class="litespeed-qc-text-gradient">
							<?php esc_html_e( 'Accelerate, Optimize, Protect', 'litespeed-cache' ); ?>
						</strong>
					</h3>
					<p class="litespeed-dashboard-unlock-desc">
						<?php echo wp_kses_post( __( 'Speed up your WordPress site even further with <strong>QUIC.cloud Online Services and CDN</strong>.', 'litespeed-cache' ) ); ?>
					</p>
					<p>
						<?php esc_html_e( 'Free monthly quota available. Can also be used anonymously (no email required).', 'litespeed-cache' ); ?>
					</p>
					<p>
						<a class="button button-primary" href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ACTIVATE ) ); ?>">
							<span class="dashicons dashicons-yes"></span>
							<?php esc_html_e( 'Enable QUIC.cloud services', 'litespeed-cache' ); ?>
						</a>
						<br>
						<a class="button button-link litespeed-top10" href="<?php echo esc_url( Utility::build_url( Router::ACTION_ADMIN_DISPLAY, Admin_Display::TYPE_QC_HIDE_BANNER ) ); ?>">
							<?php esc_html_e( 'Do not show this again', 'litespeed-cache' ); ?>
						</a>
					</p>
					<p class="litespeed-dashboard-unlock-footer">
						<?php esc_html_e( 'QUIC.cloud provides CDN and online optimization services, and is not required. You may use many features of this plugin without QUIC.cloud.', 'litespeed-cache' ); ?><br>
						<a href="https://www.quic.cloud/" target="_blank">
							<?php esc_html_e( 'Learn More about QUIC.cloud', 'litespeed-cache' ); ?>
						</a>
						<br>
					</p>
				</div>
			</div>
		<?php endif; ?>

		<div class="litespeed-dashboard-qc-enable">
			<div class="litespeed-dashboard-header">
				<h3 class="litespeed-dashboard-title litespeed-dashboard-title--w-btn">
					<span class="litespeed-right10"><?php esc_html_e( 'QUIC.cloud Service Usage Statistics', 'litespeed-cache' ); ?></span>
					<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_SYNC_USAGE ) ); ?>" class="button button-secondary button-small">
						<span class="dashicons dashicons-update"></span> <?php esc_html_e( 'Refresh Usage', 'litespeed-cache' ); ?>
						<span class="screen-reader-text"><?php esc_html_e( 'Sync data from Cloud', 'litespeed-cache' ); ?></span>
					</a>
				</h3>
				<hr>
				<a href="https://docs.litespeedtech.com/lscache/lscwp/dashboard/#usage-statistics" target="_blank" class="litespeed-learn-more"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a>
			</div>

			<?php if ( ! $cloud_instance->activated() && Admin_Display::has_qc_hide_banner() ) : ?>
				<p class="litespeed-desc litespeed-margin-top-remove">
					<?php
					printf(
						esc_html__( 'The features below are provided by %s', 'litespeed-cache' ),
						'<a href="https://quic.cloud" target="_blank">QUIC.cloud</a>'
					);
					?>
				</p>
			<?php endif; ?>

			<div class="litespeed-dashboard-stats-wrapper">
				<?php
				$cat_list = array(
					'img_optm'  => esc_html__( 'Image Optimization', 'litespeed-cache' ),
					'page_optm' => esc_html__( 'Page Optimization', 'litespeed-cache' ),
					'cdn'       => esc_html__( 'CDN Bandwidth', 'litespeed-cache' ),
					'lqip'      => esc_html__( 'Low Quality Image Placeholder', 'litespeed-cache' ),
				);

				foreach ( $cat_list as $svc => $svc_title ) :
					$finished_percentage = 0;
					$total_used          = '-';
					$used                = '-';
					$quota               = '-';
					$pag_used            = '-';
					$pag_total           = '-';
					$pag_width           = 0;
					$percentage_bg       = 'success';
					$pag_txt_color       = '';
					$usage               = false;

					if ( ! empty( $cloud_summary[ 'usage.' . $svc ] ) ) {
						$usage               = $cloud_summary[ 'usage.' . $svc ];
						$finished_percentage = floor( $usage['used'] * 100 / $usage['quota'] );
						$used                = (int) $usage['used'];
						$quota               = (int) $usage['quota'];
						$pag_used            = ! empty( $usage['pag_used'] ) ? (int) $usage['pag_used'] : 0;
						$pag_bal             = ! empty( $usage['pag_bal'] ) ? (int) $usage['pag_bal'] : 0;
						$pag_total           = $pag_used + $pag_bal;
						if ( ! empty( $usage['total_used'] ) ) {
							$total_used = (int) $usage['total_used'];
						}

						if ( $pag_total ) {
							$pag_width = round( $pag_used / $pag_total * 100 ) . '%';
						}

						if ( $finished_percentage > 85 ) {
							$percentage_bg = 'warning';
							if ( $finished_percentage > 95 ) {
								$percentage_bg = 'danger';
								if ( $pag_bal ) {
									$percentage_bg = 'warning';
									$pag_txt_color = 'litespeed-success';
								}
							}
						}
					}
					?>
					<div class="postbox litespeed-postbox">
						<div class="inside">
							<h3 class="litespeed-title"><?php echo esc_html( $svc_title ); ?></h3>
							<div class="litespeed-flex-container">
								<div class="litespeed-icon-vertical-middle litespeed-pie-<?php echo esc_attr( $percentage_bg ); ?>">
									<?php echo wp_kses( GUI::pie( $finished_percentage, 60, false ), GUI::allowed_svg_tags() ); ?>
								</div>
								<div>
									<div class="litespeed-dashboard-stats">
										<h3><?php echo 'img_optm' === $svc ? esc_html__( 'Fast Queue Usage', 'litespeed-cache' ) : esc_html__( 'Usage', 'litespeed-cache' ); ?></h3>
										<p>
											<strong><?php echo esc_html( $used ); ?></strong>
											<?php if ( $used !== $quota ) : ?>
												<span class="litespeed-desc"> / <?php echo esc_html( $quota ); ?></span>
											<?php endif; ?>
										</p>
									</div>
								</div>
							</div>
							<?php if ( $pag_total > 0 ) : ?>
								<p class="litespeed-dashboard-stats-payg <?php echo esc_attr( $pag_txt_color ); ?>">
									<?php esc_html_e( 'PAYG Balance', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $pag_bal ); ?></strong>
									<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo esc_attr( sprintf( esc_html__( 'PAYG used this month: %s. PAYG balance and usage not included in above quota calculation.', 'litespeed-cache' ), $pag_used ) ); ?>">
										<span class="dashicons dashicons-info"></span>
										<span class="screen-reader-text"><?php esc_html_e( 'Pay as You Go Usage Statistics', 'litespeed-cache' ); ?></span>
									</button>
								</p>
							<?php endif; ?>
							<?php if ( 'page_optm' === $svc && ! empty( $usage['sub_svc'] ) ) : ?>
								<p class="litespeed-dashboard-stats-total">
									<?php
									$i = 0;
									foreach ( $usage['sub_svc'] as $sub_svc => $sub_usage ) :
										?>
										<span class="<?php echo $i++ > 0 ? 'litespeed-left10' : ''; ?>">
											<?php echo esc_html( strtoupper( $sub_svc ) ); ?>: <strong><?php echo (int) $sub_usage; ?></strong>
										</span>
									<?php endforeach; ?>
								</p>
							<?php endif; ?>
							<?php if ( 'img_optm' === $svc ) : ?>
								<p class="litespeed-dashboard-stats-total">
									<?php esc_html_e( 'Total Usage', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $total_used ); ?> / ∞</strong>
									<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php esc_attr_e( 'Total images optimized in this month', 'litespeed-cache' ); ?>">
										<span class="dashicons dashicons-info"></span>
									</button>
								</p>
								<div class="clear"></div>
							<?php endif; ?>
							<?php if ( isset( $usage['remaining_daily_quota'] ) && $usage['remaining_daily_quota'] >= 0 && isset( $usage['daily_quota'] ) && $usage['daily_quota'] >= 0 ) : ?>
								<p class="litespeed-dashboard-stats-total">
									<?php esc_html_e( 'Remaining Daily Quota', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $usage['remaining_daily_quota'] ); ?> / <?php echo esc_html( $usage['daily_quota'] ); ?></strong>
								</p>
								<div class="clear"></div>
							<?php endif; ?>
						</div>
					</div>
				<?php endforeach; ?>
				<?php if ( ! empty( $cloud_summary['partner'] ) ) : ?>
					<div class="litespeed-postbox litespeed-postbox-partner">
						<div class="inside">
							<h3 class="litespeed-title"><?php esc_html_e( 'Partner Benefits Provided by', 'litespeed-cache' ); ?></h3>
							<div>
								<?php if ( ! empty( $cloud_summary['partner']['logo'] ) ) : ?>
									<?php if ( ! empty( $cloud_summary['partner']['url'] ) ) : ?>
										<a href="<?php echo esc_url( $cloud_summary['partner']['url'] ); ?>" target="_blank">
											<img src="<?php echo esc_url( $cloud_summary['partner']['logo'] ); ?>" alt="<?php echo esc_attr( $cloud_summary['partner']['name'] ); ?>">
										</a>
									<?php else : ?>
										<img src="<?php echo esc_url( $cloud_summary['partner']['logo'] ); ?>" alt="<?php echo esc_attr( $cloud_summary['partner']['name'] ); ?>">
									<?php endif; ?>
								<?php elseif ( ! empty( $cloud_summary['partner']['name'] ) ) : ?>
									<?php if ( ! empty( $cloud_summary['partner']['url'] ) ) : ?>
										<a href="<?php echo esc_url( $cloud_summary['partner']['url'] ); ?>" target="_blank">
											<span class="postbox-partner-name"><?php echo esc_html( $cloud_summary['partner']['name'] ); ?></span>
										</a>
									<?php else : ?>
										<span class="postbox-partner-name"><?php echo esc_html( $cloud_summary['partner']['name'] ); ?></span>
									<?php endif; ?>
								<?php endif; ?>
							</div>
						</div>
					</div>
				<?php endif; ?>
			</div>

			<p class="litespeed-right litespeed-qc-dashboard-link">
				<?php
				if ( ! empty( $cloud_summary['partner'] ) && ! empty( $cloud_summary['partner']['login_title'] ) && ! empty( $cloud_summary['partner']['login_link'] ) ) :
					Doc::learn_more( $cloud_summary['partner']['login_link'], $cloud_summary['partner']['login_title'], true, 'button litespeed-btn-warning' );
				elseif ( ! empty( $cloud_summary['partner'] ) && ! empty( $cloud_summary['partner']['disable_qc_login'] ) ) :
					// Skip rendering any link or button.
					echo '';
				else :
					if ( ! $cloud_instance->activated() ) :
						Doc::learn_more(
							Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_ACTIVATE ),
							esc_html__( 'Enable QUIC.cloud Services', 'litespeed-cache' ),
							true,
							'button litespeed-btn-warning'
						);
					elseif ( ! empty( $cloud_summary['qc_activated'] ) && 'anonymous' !== $cloud_summary['qc_activated'] ) :
						?>
						<a href="<?php echo esc_url( $cloud_instance->qc_link() ); ?>" class="litespeed-link-with-icon" target="qc">
							<?php esc_html_e( 'Go to QUIC.cloud dashboard', 'litespeed-cache' ); ?> <span class="dashicons dashicons-external"></span>
						</a>
					<?php else : ?>
						<?php
						Doc::learn_more(
							Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_LINK ),
							esc_html__( 'Link to QUIC.cloud', 'litespeed-cache' ),
							true,
							'button litespeed-btn-warning'
						);
						?>
					<?php endif; ?>
				<?php endif; ?>
			</p>

			<div class="litespeed-dashboard-group">
				<hr>
				<div class="litespeed-flex-container">
					<div class="postbox litespeed-postbox litespeed-postbox-pagetime">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'Page Load Time', 'litespeed-cache' ); ?>
								<?php if ( $can_page_load_time ) : ?>
									<?php $closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_HEALTH ); ?>
									<?php if ( $closest_server ) : ?>
										<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_HEALTH ) ) ); ?>"
											data-balloon-pos="up"
											data-balloon-break
											aria-label="<?php echo esc_attr( sprintf( esc_html__( 'Current closest Cloud server is %s. Click to redetect.', 'litespeed-cache' ), esc_html( $closest_server ) ) ); ?>"
											data-litespeed-cfm="<?php esc_attr_e( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ); ?>"
											class="litespeed-title-right-icon">
											<i class='litespeed-quic-icon'></i> <small><?php esc_html_e( 'Redetect', 'litespeed-cache' ); ?></small>
										</a>
									<?php endif; ?>
								<?php endif; ?>
							</h3>
							<div>
								<div class="litespeed-flex-container">
									<?php if ( $can_page_load_time && ! empty( $health_scores['speed_before'] ) ) : ?>
										<div class="litespeed-score-col">
											<p class="litespeed-text-grey">
												<?php esc_html_e( 'Before', 'litespeed-cache' ); ?>
											</p>
											<div class="litespeed-text-md litespeed-text-grey">
												<?php echo esc_html( $health_scores['speed_before'] ); ?><span class="litespeed-text-large">s</span>
											</div>
										</div>
										<div class="litespeed-score-col">
											<p class="litespeed-text-grey">
												<?php esc_html_e( 'After', 'litespeed-cache' ); ?>
											</p>
											<div class="litespeed-text-md litespeed-text-success">
												<?php echo esc_html( $health_scores['speed_after'] ); ?><span class="litespeed-text-large">s</span>
											</div>
										</div>
										<div class="litespeed-score-col litespeed-score-col--imp">
											<p class="litespeed-text-grey" style="white-space: nowrap;">
												<?php esc_html_e( 'Improved by', 'litespeed-cache' ); ?>
											</p>
											<div class="litespeed-text-jumbo litespeed-text-success">
												<?php echo esc_html( $health_scores['speed_improved'] ); ?><span class="litespeed-text-large">%</span>
											</div>
										</div>
									<?php else : ?>
										<div>
											<p><?php esc_html_e( 'You must be using one of the following products in order to measure Page Load Time:', 'litespeed-cache' ); ?></p>
											<a href="https://www.litespeedtech.com/products/litespeed-web-server" target="_blank"><?php esc_html_e( 'LiteSpeed Web Server', 'litespeed-cache' ); ?></a>
											<br />
											<a href="https://openlitespeed.org/" target="_blank"><?php esc_html_e( 'OpenLiteSpeed Web Server', 'litespeed-cache' ); ?></a>
											<br />
											<a href="https://www.litespeedtech.com/products/litespeed-web-adc" target="_blank"><?php esc_html_e( 'LiteSpeed Web ADC', 'litespeed-cache' ); ?></a>
											<br />
											<a href="https://quic.cloud" target="_blank"><?php esc_html_e( 'QUIC.cloud CDN', 'litespeed-cache' ); ?></a>
										</div>
									<?php endif; ?>
								</div>
							</div>
						</div>
						<?php if ( $can_page_load_time ) : ?>
							<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
								<?php if ( ! empty( $cloud_summary['last_request.health-speed'] ) ) : ?>
									<span class="litespeed-right10">
										<?php
										printf(
											esc_html__( 'Requested: %s ago', 'litespeed-cache' ),
											'<span data-balloon-pos="up" aria-label="' . esc_attr( Utility::readable_time( $cloud_summary['last_request.health-speed'] ) ) . '">' . esc_html( human_time_diff( $cloud_summary['last_request.health-speed'] ) ) . '</span>'
										);
										?>
									</span>
								<?php endif; ?>
								<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SPEED ) ); ?>" class="button button-secondary button-small">
									<span class="dashicons dashicons-update"></span>
									<?php esc_html_e( 'Refresh', 'litespeed-cache' ); ?>
									<span class="screen-reader-text"><?php esc_html_e( 'Refresh page load time', 'litespeed-cache' ); ?></span>
								</a>
							</div>
						<?php endif; ?>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-pagespeed">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'PageSpeed Score', 'litespeed-cache' ); ?>
								<?php $guest_option = Base::O_GUEST; ?>
								<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-general#settings' ) ); ?>" class="litespeed-title-right-icon"><?php echo esc_html( Lang::title( $guest_option ) ); ?></a>
								<?php if ( $this->conf( $guest_option ) ) : ?>
									<span class="litespeed-label-success litespeed-label-dashboard"><?php esc_html_e( 'ON', 'litespeed-cache' ); ?></span>
								<?php else : ?>
									<span class="litespeed-label-danger litespeed-label-dashboard"><?php esc_html_e( 'OFF', 'litespeed-cache' ); ?></span>
								<?php endif; ?>
							</h3>
							<div>
								<div class="litespeed-margin-bottom20">
									<div class="litespeed-row-flex" style="margin-left: -10px;">
										<?php if ( ! empty( $health_scores['score_before'] ) ) : ?>
											<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
												<p class="litespeed-text-grey litespeed-text-center">
													<?php esc_html_e( 'Before', 'litespeed-cache' ); ?>
												</p>
												<div class="litespeed-promo-score">
													<?php echo wp_kses( GUI::pie( $health_scores['score_before'], 45, false, true, 'litespeed-pie-' . esc_attr( GUI::cls()->get_cls_of_pagescore( $health_scores['score_before'] ) ) ), GUI::allowed_svg_tags() ); ?>
												</div>
											</div>
											<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
												<p class="litespeed-text-grey litespeed-text-center">
													<?php esc_html_e( 'After', 'litespeed-cache' ); ?>
												</p>
												<div class="litespeed-promo-score">
													<?php echo wp_kses( GUI::pie( $health_scores['score_after'], 45, false, true, 'litespeed-pie-' . esc_attr( GUI::cls()->get_cls_of_pagescore( $health_scores['score_after'] ) ) ), GUI::allowed_svg_tags() ); ?>
												</div>
											</div>
											<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
												<p class="litespeed-text-grey" style="white-space: nowrap;">
													<?php esc_html_e( 'Improved by', 'litespeed-cache' ); ?>
												</p>
												<div class="litespeed-postbox-score-improve litespeed-text-fern">
													<?php echo esc_html( $health_scores['score_improved'] ); ?><span class="litespeed-text-large">%</span>
												</div>
											</div>
										<?php endif; ?>
									</div>
								</div>
							</div>
						</div>
						<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
							<?php if ( ! empty( $cloud_summary['last_request.health-score'] ) ) : ?>
								<span class="litespeed-right10">
									<?php
									printf(
										esc_html__( 'Requested: %s ago', 'litespeed-cache' ),
										'<span data-balloon-pos="up" aria-label="' . esc_attr( Utility::readable_time( $cloud_summary['last_request.health-score'] ) ) . '">' . esc_html( human_time_diff( $cloud_summary['last_request.health-score'] ) ) . '</span>'
									);
									?>
								</span>
							<?php endif; ?>
							<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SCORE ) ); ?>" class="button button-secondary button-small">
								<span class="dashicons dashicons-update"></span>
								<?php esc_html_e( 'Refresh', 'litespeed-cache' ); ?>
								<span class="screen-reader-text"><?php esc_html_e( 'Refresh page score', 'litespeed-cache' ); ?></span>
							</a>
						</div>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-double litespeed-postbox-imgopt">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'Image Optimization Summary', 'litespeed-cache' ); ?>
								<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-img_optm' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
							</h3>
							<div class="litespeed-postbox-double-content">
								<div class="litespeed-postbox-double-col">
									<div class="litespeed-flex-container">
										<div class="litespeed-icon-vertical-middle">
											<?php echo wp_kses( GUI::pie( $img_finished_percentage, 70, true ), GUI::allowed_svg_tags() ); ?>
										</div>
										<div>
											<div class="litespeed-dashboard-stats">
												<a data-litespeed-onlyonce class="button button-primary"
													<?php if ( ! empty( $img_count['groups_new'] ) || ! empty( $img_count[ 'groups.' . Img_Optm::STATUS_RAW ] ) ) : ?>
														href="<?php echo esc_url( Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_NEW_REQ ) ); ?>"
													<?php else : ?>
														href="javascript:;" disabled
													<?php endif; ?>>
													<span class="dashicons dashicons-images-alt2"></span><?php esc_html_e( 'Send Optimization Request', 'litespeed-cache' ); ?>
												</a>
											</div>
										</div>
									</div>
									<p>
										<?php esc_html_e( 'Total Reduction', 'litespeed-cache' ); ?>: <code><?php echo isset( $img_optm_summary['reduced'] ) ? esc_html( Utility::real_size( $img_optm_summary['reduced'] ) ) : '-'; ?></code>
									</p>
									<p>
										<?php esc_html_e( 'Images Pulled', 'litespeed-cache' ); ?>: <code><?php echo isset( $img_optm_summary['img_taken'] ) ? esc_html( $img_optm_summary['img_taken'] ) : '-'; ?></code>
									</p>
								</div>
								<div class="litespeed-postbox-double-col">
									<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ) : ?>
										<p class="litespeed-success">
											<?php esc_html_e( 'Images requested', 'litespeed-cache' ); ?>:
											<code>
												<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ); ?>
												(<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ], 'image' ) ); ?>)
											</code>
										</p>
									<?php endif; ?>
									<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ) : ?>
										<p class="litespeed-success">
											<?php esc_html_e( 'Images notified to pull', 'litespeed-cache' ); ?>:
											<code>
												<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ); ?>
												(<?php echo esc_html( Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ], 'image' ) ); ?>)
											</code>
										</p>
									<?php endif; ?>
									<p>
										<?php esc_html_e( 'Last Request', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $img_optm_summary['last_requested'] ) ? esc_html( Utility::readable_time( $img_optm_summary['last_requested'] ) ) : '-'; ?></code>
									</p>
									<p>
										<?php esc_html_e( 'Last Pull', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $img_optm_summary['last_pull'] ) ? esc_html( Utility::readable_time( $img_optm_summary['last_pull'] ) ) : '-'; ?></code>
									</p>
									<?php
									$opt_list = array(
										Base::O_IMG_OPTM_AUTO => Lang::title( Base::O_IMG_OPTM_AUTO ),
									);
									foreach ( $opt_list as $opt_id => $opt_title ) :
										?>
										<p>
											<?php if ( $this->conf( $opt_id ) ) : ?>
												<span class="litespeed-label-success litespeed-label-dashboard"><?php esc_html_e( 'ON', 'litespeed-cache' ); ?></span>
											<?php else : ?>
												<span class="litespeed-label-danger litespeed-label-dashboard"><?php esc_html_e( 'OFF', 'litespeed-cache' ); ?></span>
											<?php endif; ?>
											<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-img_optm#settings' ) ); ?>"><?php echo esc_html( $opt_title ); ?></a>
										</p>
									<?php endforeach; ?>
								</div>
							</div>
						</div>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-cache">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'Cache Status', 'litespeed-cache' ); ?>
								<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-cache' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
							</h3>
							<?php
							$cache_list = array(
								Base::O_CACHE         => esc_html__( 'Public Cache', 'litespeed-cache' ),
								Base::O_CACHE_PRIV    => esc_html__( 'Private Cache', 'litespeed-cache' ),
								Base::O_OBJECT        => esc_html__( 'Object Cache', 'litespeed-cache' ),
								Base::O_CACHE_BROWSER => esc_html__( 'Browser Cache', 'litespeed-cache' ),
							);
							foreach ( $cache_list as $cache_option => $cache_title ) :
								?>
								<p>
									<?php if ( $this->conf( $cache_option ) ) : ?>
										<span class="litespeed-label-success litespeed-label-dashboard"><?php esc_html_e( 'ON', 'litespeed-cache' ); ?></span>
									<?php else : ?>
										<span class="litespeed-label-danger litespeed-label-dashboard"><?php esc_html_e( 'OFF', 'litespeed-cache' ); ?></span>
									<?php endif; ?>
									<?php echo esc_html( $cache_title ); ?>
								</p>
							<?php endforeach; ?>
						</div>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-ccss">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'Critical CSS', 'litespeed-cache' ); ?>
								<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-page_optm#settings_css' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
							</h3>
							<?php if ( ! empty( $css_summary['last_request_ccss'] ) ) : ?>
								<p>
									<?php
									printf(
										esc_html__( 'Last generated: %s', 'litespeed-cache' ),
										'<code>' . esc_html( Utility::readable_time( $css_summary['last_request_ccss'] ) ) . '</code>'
									);
									?>
								</p>
								<p>
									<?php
									printf(
										esc_html__( 'Time to execute previous request: %s', 'litespeed-cache' ),
										'<code>' . esc_html( $css_summary['last_spent_ccss'] ) . 's</code>'
									);
									?>
								</p>
							<?php endif; ?>
							<p>
								<?php esc_html_e( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $ccss_count ) ? esc_html( $ccss_count ) : '-'; ?></code>
								<a href="<?php echo ! empty( $ccss_count ) ? esc_url( Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GEN_CCSS ) ) : 'javascript:;'; ?>"
									class="button button-secondary button-small <?php echo empty( $ccss_count ) ? 'disabled' : ''; ?>">
									<?php esc_html_e( 'Force cron', 'litespeed-cache' ); ?>
								</a>
							</p>
						</div>
						<?php if ( ! empty( $cloud_summary['last_request.ccss'] ) ) : ?>
							<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
								<?php
								printf(
									esc_html__( 'Last requested: %s', 'litespeed-cache' ),
									esc_html( Utility::readable_time( $cloud_summary['last_request.ccss'] ) )
								);
								?>
							</div>
						<?php endif; ?>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-ucss">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'Unique CSS', 'litespeed-cache' ); ?>
								<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-page_optm#settings_css' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
							</h3>
							<?php if ( ! empty( $ucss_summary['last_request'] ) ) : ?>
								<p>
									<?php
									printf(
										esc_html__( 'Last generated: %s', 'litespeed-cache' ),
										'<code>' . esc_html( Utility::readable_time( $ucss_summary['last_request'] ) ) . '</code>'
									);
									?>
								</p>
								<p>
									<?php
									printf(
										esc_html__( 'Time to execute previous request: %s', 'litespeed-cache' ),
										'<code>' . esc_html( $ucss_summary['last_spent'] ) . 's</code>'
									);
									?>
								</p>
							<?php endif; ?>
							<p>
								<?php esc_html_e( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $ucss_count ) ? esc_html( $ucss_count ) : '-'; ?></code>
								<a href="<?php echo ! empty( $ucss_count ) ? esc_url( Utility::build_url( Router::ACTION_UCSS, UCSS::TYPE_GEN ) ) : 'javascript:;'; ?>"
									class="button button-secondary button-small <?php echo empty( $ucss_count ) ? 'disabled' : ''; ?>">
									<?php esc_html_e( 'Force cron', 'litespeed-cache' ); ?>
								</a>
							</p>
						</div>
						<?php if ( ! empty( $cloud_summary['last_request.ucss'] ) ) : ?>
							<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
								<?php
								printf(
									esc_html__( 'Last requested: %s', 'litespeed-cache' ),
									esc_html( Utility::readable_time( $cloud_summary['last_request.ucss'] ) )
								);
								?>
							</div>
						<?php endif; ?>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-lqip">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'Low Quality Image Placeholder', 'litespeed-cache' ); ?>
								<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-page_optm#settings_media' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
							</h3>
							<?php if ( ! empty( $placeholder_summary['last_request'] ) ) : ?>
								<p>
									<?php
									printf(
										esc_html__( 'Last generated: %s', 'litespeed-cache' ),
										'<code>' . esc_html( Utility::readable_time( $placeholder_summary['last_request'] ) ) . '</code>'
									);
									?>
								</p>
								<p>
									<?php
									printf(
										esc_html__( 'Time to execute previous request: %s', 'litespeed-cache' ),
										'<code>' . esc_html( $placeholder_summary['last_spent'] ) . 's</code>'
									);
									?>
								</p>
							<?php endif; ?>
							<p>
								<?php esc_html_e( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $placeholder_queue_count ) ? esc_html( $placeholder_queue_count ) : '-'; ?></code>
								<a href="<?php echo ! empty( $placeholder_queue_count ) ? esc_url( Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_GENERATE ) ) : 'javascript:;'; ?>"
									class="button button-secondary button-small <?php echo empty( $placeholder_queue_count ) ? 'disabled' : ''; ?>">
									<?php esc_html_e( 'Force cron', 'litespeed-cache' ); ?>
								</a>
							</p>
						</div>
						<?php if ( ! empty( $cloud_summary['last_request.lqip'] ) ) : ?>
							<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
								<?php
								printf(
									esc_html__( 'Last requested: %s', 'litespeed-cache' ),
									esc_html( Utility::readable_time( $cloud_summary['last_request.lqip'] ) )
								);
								?>
							</div>
						<?php endif; ?>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-vpi">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'Viewport Image', 'litespeed-cache' ); ?> (VPI)
								<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-page_optm#settings_vpi' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
							</h3>
							<?php if ( ! empty( $vpi_summary['last_request'] ) ) : ?>
								<p>
									<?php
									printf(
										esc_html__( 'Last generated: %s', 'litespeed-cache' ),
										'<code>' . esc_html( Utility::readable_time( $vpi_summary['last_request'] ) ) . '</code>'
									);
									?>
								</p>
								<p>
									<?php
									printf(
										esc_html__( 'Time to execute previous request: %s', 'litespeed-cache' ),
										'<code>' . esc_html( $vpi_summary['last_spent'] ) . 's</code>'
									);
									?>
								</p>
							<?php endif; ?>
							<p>
								<?php esc_html_e( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $vpi_queue_count ) ? esc_html( $vpi_queue_count ) : '-'; ?></code>
								<a href="<?php echo ! empty( $vpi_queue_count ) ? esc_url( Utility::build_url( Router::ACTION_VPI, VPI::TYPE_GEN ) ) : 'javascript:;'; ?>"
									class="button button-secondary button-small <?php echo empty( $vpi_queue_count ) ? 'disabled' : ''; ?>">
									<?php esc_html_e( 'Force cron', 'litespeed-cache' ); ?>
								</a>
							</p>
						</div>
						<?php if ( ! empty( $cloud_summary['last_request.vpi'] ) ) : ?>
							<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
								<?php
								printf(
									esc_html__( 'Last requested: %s', 'litespeed-cache' ),
									esc_html( Utility::readable_time( $cloud_summary['last_request.vpi'] ) )
								);
								?>
							</div>
						<?php endif; ?>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-crawler">
						<div class="inside">
							<h3 class="litespeed-title">
								<?php esc_html_e( 'Crawler Status', 'litespeed-cache' ); ?>
								<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-crawler' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
							</h3>
							<p>
								<code><?php echo esc_html( count( Crawler::cls()->list_crawlers() ) ); ?></code> <?php esc_html_e( 'Crawler(s)', 'litespeed-cache' ); ?>
							</p>
							<p>
								<?php esc_html_e( 'Currently active crawler', 'litespeed-cache' ); ?>: <code><?php echo esc_html( $crawler_summary['curr_crawler'] ); ?></code>
							</p>
							<?php if ( ! empty( $crawler_summary['curr_crawler_beginning_time'] ) ) : ?>
								<p>
									<span class="litespeed-bold"><?php esc_html_e( 'Current crawler started at', 'litespeed-cache' ); ?>:</span>
									<?php echo esc_html( Utility::readable_time( $crawler_summary['curr_crawler_beginning_time'] ) ); ?>
								</p>
							<?php endif; ?>
							<?php if ( ! empty( $crawler_summary['last_start_time'] ) ) : ?>
								<p class="litespeed-desc">
									<span class="litespeed-bold"><?php esc_html_e( 'Last interval', 'litespeed-cache' ); ?>:</span>
									<?php echo esc_html( Utility::readable_time( $crawler_summary['last_start_time'] ) ); ?>
								</p>
							<?php endif; ?>
							<?php if ( ! empty( $crawler_summary['end_reason'] ) ) : ?>
								<p class="litespeed-desc">
									<span class="litespeed-bold"><?php esc_html_e( 'Ended reason', 'litespeed-cache' ); ?>:</span>
									<?php echo esc_html( $crawler_summary['end_reason'] ); ?>
								</p>
							<?php endif; ?>
							<?php if ( ! empty( $crawler_summary['last_crawled'] ) ) : ?>
								<p class="litespeed-desc">
									<?php
									printf(
										esc_html__( '%1$s %2$d item(s)', 'litespeed-cache' ),
										'<span class="litespeed-bold">' . esc_html__( 'Last crawled:', 'litespeed-cache' ) . '</span>',
										esc_html( $crawler_summary['last_crawled'] )
									);
									?>
								</p>
							<?php endif; ?>
						</div>
					</div>

					<div class="postbox litespeed-postbox litespeed-postbox-quiccloud <?php echo empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ? 'litespeed-postbox--quiccloud' : ''; ?>">
						<div class="inside">
							<h3 class="litespeed-title litespeed-dashboard-title--w-btn">
								<span class="litespeed-quic-icon"></span><?php esc_html_e( 'QUIC.cloud CDN', 'litespeed-cache' ); ?>
								<?php if ( empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ) : ?>
									<a href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/" class="litespeed-title-right-icon" target="_blank"><?php esc_html_e( 'Learn More', 'litespeed-cache' ); ?></a>
								<?php else : ?>
									<a href="<?php echo esc_url( admin_url( 'admin.php?page=litespeed-cdn' ) ); ?>" class="litespeed-title-right-icon"><?php esc_html_e( 'More', 'litespeed-cache' ); ?></a>
								<?php endif; ?>
							</h3>
							<?php if ( empty( $cloud_summary['qc_activated'] ) || 'cdn' !== $cloud_summary['qc_activated'] ) : ?>
								<div class="litespeed-text-center litespeed-empty-space-medium">
									<p class="litespeed-margin-bottom20">
										<?php
										Doc::learn_more(
											esc_url( Utility::build_url( Router::ACTION_CLOUD, $cloud_instance->activated() ? Cloud::TYPE_ENABLE_CDN : Cloud::TYPE_ACTIVATE ) ),
											'<span class="dashicons dashicons-saved"></span>' . esc_html__( 'Enable QUIC.cloud CDN', 'litespeed-cache' ),
											true,
											'button button-primary litespeed-button-cta'
										);
										?>
									</p>
									<p class="litespeed-margin-bottom10 litespeed-top20 litespeed-text-md">
										<strong class="litespeed-qc-text-gradient"><?php esc_html_e( 'Best available WordPress performance', 'litespeed-cache' ); ?></strong>
									</p>
									<p class="litespeed-margin-bottom20 litespeed-margin-top-remove">
										<?php
										printf(
											esc_html__( 'Globally fast TTFB, easy setup, and %s!', 'litespeed-cache' ),
											'<a href="https://www.quic.cloud/quic-cloud-services-and-features/litespeed-cache-service/" target="_blank">' . esc_html__( 'more', 'litespeed-cache' ) . '</a>'
										);
										?>
									</p>
								</div>
							<?php else : ?>
								<?php echo wp_kses_post( $cloud_instance->load_qc_status_for_dash( 'cdn_dash_mini' ) ); ?>
							<?php endif; ?>
						</div>
						<?php if ( $cloud_instance->activated() ) : ?>
							<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
								<a href="<?php echo esc_url( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_SYNC_STATUS ) ); ?>"
									class="button button-<?php echo 'cdn' !== $cloud_summary['qc_activated'] ? 'link' : 'secondary'; ?> button-small">
									<?php if ( 'cdn' === $cloud_summary['qc_activated'] ) : ?>
										<span class="dashicons dashicons-update"></span>
									<?php endif; ?>
									<?php esc_html_e( 'Refresh Status', 'litespeed-cache' ); ?>
									<span class="screen-reader-text"><?php esc_html_e( 'Refresh QUIC.cloud status', 'litespeed-cache' ); ?></span>
								</a>
							</div>
						<?php endif; ?>
					</div>

					<?php
					$promo_mini = $cloud_instance->load_qc_status_for_dash( 'promo_mini' );
					if ( $promo_mini ) :
						echo wp_kses_post( $promo_mini );
					endif;
					?>

					<?php if ( $cloud_instance->activated() ) : ?>
						<?php
						$news = $cloud_instance->load_qc_status_for_dash( 'news_dash' );
						if ( $news ) :
							?>
							<div class="postbox litespeed-postbox">
								<div class="inside litespeed-text-center">
									<h3 class="litespeed-title">
										<?php esc_html_e( 'News', 'litespeed-cache' ); ?>
									</h3>
									<div class="litespeed-top20">
										<?php echo wp_kses_post( $news ); ?>
									</div>
								</div>
							</div>
						<?php endif; ?>
					<?php endif; ?>
				</div>
			</div>
		</div>
	</div>
</div><?php
/**
 * LiteSpeed Cache Dashboard Wrapper
 *
 * Renders the main dashboard page for the LiteSpeed Cache plugin in the WordPress admin area.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
	'dashboard' => esc_html__( 'Dashboard', 'litespeed-cache' ),
);

if ( $this->_is_network_admin ) {
	$menu_list = array(
		'network_dash' => esc_html__( 'Network Dashboard', 'litespeed-cache' ),
	);
}

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo esc_html__( 'LiteSpeed Cache Dashboard', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		<?php echo esc_html( 'v' . Core::VER ); ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<?php
	foreach ( $menu_list as $tab_key => $tab_val ) {
		echo '<div data-litespeed-layout="' . esc_attr( $tab_key ) . '">';
		require LSCWP_DIR . 'tpl/dash/' . sanitize_file_name( $tab_key ) . '.tpl.php';
		echo '</div>';
	}
	?>
</div><?php
/**
 * LiteSpeed Cache Network Dashboard
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$cloud_summaries = array();
$blogs           = Activation::get_network_ids();
foreach ( $blogs as $network_blog_id ) {
	switch_to_blog( $network_blog_id );
	$cloud_summaries[ home_url() ] = Cloud::get_summary();
	// May need restore_current_blog();
}

?>

<div class="litespeed-dashboard">
<?php foreach ( $cloud_summaries as $home_url => $cloud_summary ) : ?>

	<div class="litespeed-dashboard-header">
		<h3 class="litespeed-dashboard-title">
			<?php echo esc_html( sprintf( __( 'Usage Statistics: %s', 'litespeed-cache' ), $home_url ) ); ?>
		</h3>
		<hr>
	</div>

	<div class="litespeed-dashboard-stats-wrapper">
		<?php
		$cat_list = array(
			'img_optm'  => esc_html__( 'Image Optimization', 'litespeed-cache' ),
			'page_optm' => esc_html__( 'Page Optimization', 'litespeed-cache' ),
			'cdn'       => esc_html__( 'CDN Bandwidth', 'litespeed-cache' ),
			'lqip'      => esc_html__( 'Low Quality Image Placeholder', 'litespeed-cache' ),
		);

		foreach ( $cat_list as $svc => $svc_title ) :
			$finished_percentage = 0;
			$total_used          = '-';
			$used                = '-';
			$quota               = '-';
			$pag_used            = '-';
			$pag_total           = '-';
			$pag_width           = 0;
			$pag_bal             = 0;

			if ( ! empty( $cloud_summary[ 'usage.' . $svc ] ) ) {
				$usage               = $cloud_summary[ 'usage.' . $svc ];
				$finished_percentage = floor( $usage['used'] * 100 / $usage['quota'] );
				$used                = $usage['used'];
				$quota               = $usage['quota'];
				$pag_used            = ! empty( $usage['pag_used'] ) ? $usage['pag_used'] : 0;
				$pag_bal             = ! empty( $usage['pag_bal'] ) ? $usage['pag_bal'] : 0;
				$pag_total           = $pag_used + $pag_bal;

				if ( $pag_total ) {
					$pag_width = round( $pag_used / $pag_total * 100 ) . '%';
				}

				if ( 'cdn' === $svc ) {
					$used      = Utility::real_size( $used * 1024 * 1024 );
					$quota     = Utility::real_size( $quota * 1024 * 1024 );
					$pag_used  = Utility::real_size( $pag_used * 1024 * 1024 );
					$pag_total = Utility::real_size( $pag_total * 1024 * 1024 );
				}

				if ( ! empty( $usage['total_used'] ) ) {
					$total_used = $usage['total_used'];
				}
			}

			$percentage_bg = 'success';
			if ( 95 < $finished_percentage ) {
				$percentage_bg = 'danger';
			} elseif ( 85 < $finished_percentage ) {
				$percentage_bg = 'warning';
			}
			?>

			<div class="postbox litespeed-postbox">
				<div class="inside">
					<h3 class="litespeed-title"><?php echo esc_html( $svc_title ); ?></h3>

					<div class="litespeed-flex-container">
						<div class="litespeed-icon-vertical-middle litespeed-pie-<?php echo esc_attr( $percentage_bg ); ?>">
							<?php echo wp_kses( GUI::pie( $finished_percentage, 60, false ), GUI::allowed_svg_tags() ); ?>
						</div>
						<div>
							<div class="litespeed-dashboard-stats">
								<h3><?php echo esc_html( 'img_optm' === $svc ? __( 'Fast Queue Usage', 'litespeed-cache' ) : __( 'Usage', 'litespeed-cache' ) ); ?></h3>
								<p>
									<strong><?php echo esc_html( $used ); ?></strong>
									<?php if ( $quota !== $used ) : ?>
										<span class="litespeed-desc"> / <?php echo esc_html( $quota ); ?></span>
									<?php endif; ?>
								</p>
							</div>
						</div>
					</div>

					<?php if ( 0 < $pag_total ) : ?>
						<p class="litespeed-dashboard-stats-payg" data-balloon-pos="up" aria-label="<?php echo esc_attr__( 'Pay as You Go', 'litespeed-cache' ); ?>">
							<?php esc_html_e( 'PAYG Balance', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $pag_bal ); ?></strong>
							<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo esc_attr( sprintf( __( 'This Month Usage: %s', 'litespeed-cache' ), esc_html( $pag_used ) ) ); ?>">
								<span class="dashicons dashicons-info"></span>
								<span class="screen-reader-text"><?php esc_html_e( 'Pay as You Go Usage Statistics', 'litespeed-cache' ); ?></span>
							</button>
						</p>
					<?php endif; ?>

					<?php if ( 'img_optm' === $svc ) : ?>
						<p class="litespeed-dashboard-stats-total">
							<?php esc_html_e( 'Total Usage', 'litespeed-cache' ); ?>: <strong><?php echo esc_html( $total_used ); ?> / ∞</strong>
							<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo esc_attr__( 'Total images optimized in this month', 'litespeed-cache' ); ?>">
								<span class="dashicons dashicons-info"></span>
							</button>
						</p>
						<div class="clear"></div>
					<?php endif; ?>
				</div>
			</div>

		<?php endforeach; ?>
	</div>

<?php endforeach; ?>
</div><?php
/**
 * LiteSpeed Cache Widget Settings
 *
 * Configures ESI settings for widgets in LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$options = ! empty( $instance[ Base::OPTION_NAME ] ) ? $instance[ Base::OPTION_NAME ] : array();

if ( empty( $options ) ) {
	$options = array(
		ESI::WIDGET_O_ESIENABLE => Base::VAL_OFF,
		ESI::WIDGET_O_TTL       => '28800',
	);

	add_filter( 'litespeed_widget_default_options', 'LiteSpeed\ESI::widget_default_options', 10, 2 );

	$options = apply_filters( 'litespeed_widget_default_options', $options, $widget );
}

if ( empty( $options ) ) {
	$esi = Base::VAL_OFF;
	$ttl = '28800';
} else {
	$esi = $options[ ESI::WIDGET_O_ESIENABLE ];
	$ttl = $options[ ESI::WIDGET_O_TTL ];
}

$display = Admin_Display::cls();

?>
<div class="litespeed-widget-setting">

	<h4><?php esc_html_e( 'LiteSpeed Cache', 'litespeed-cache' ); ?>:</h4>

	<b><?php esc_html_e( 'Enable ESI', 'litespeed-cache' ); ?>:</b>
	&nbsp;
	<div class="litespeed-inline">
		<div class="litespeed-switch litespeed-mini">
		<?php
			$esi_option = ESI::WIDGET_O_ESIENABLE;
			$name       = $widget->get_field_name( $esi_option );

			$cache_status_list = array(
				array( Base::VAL_ON, esc_html__( 'Public', 'litespeed-cache' ) ),
				array( Base::VAL_ON2, esc_html__( 'Private', 'litespeed-cache' ) ),
				array( Base::VAL_OFF, esc_html__( 'Disable', 'litespeed-cache' ) ),
			);

			foreach ( $cache_status_list as $v ) {
				list( $value, $label ) = $v;
				$id_attr               = $widget->get_field_id( $esi_option ) . '_' . $value;
				$checked               = $esi === $value ? 'checked' : '';
				?>
				<input type="radio" autocomplete="off" name="<?php echo esc_attr($name); ?>" id="<?php echo esc_attr($id_attr); ?>" value="<?php echo esc_attr( $value ); ?>" <?php echo esc_attr($checked); ?> />
				<label for="<?php echo esc_attr($id_attr); ?>"><?php echo esc_html( $label ); ?></label>
				<?php
			}
		?>
		</div>
	</div>
	<br /><br />

	<b><?php esc_html_e( 'Widget Cache TTL', 'litespeed-cache' ); ?>:</b>
	&nbsp;
	<?php
		$ttl_option = ESI::WIDGET_O_TTL;
		$name       = $widget->get_field_name( $ttl_option );
		?>
		<input type="text" class="regular-text litespeed-reset" name="<?php echo esc_attr($name); ?>" value="<?php echo esc_attr($ttl); ?>" size="7" />
	<?php esc_html_e( 'seconds', 'litespeed-cache' ); ?>

	<p class="install-help">
		<?php esc_html_e( 'Recommended value: 28800 seconds (8 hours).', 'litespeed-cache' ); ?>
		<?php esc_html_e( 'A TTL of 0 indicates do not cache.', 'litespeed-cache' ); ?>
	</p>
</div>

<br /><?php
/**
 * LiteSpeed Cache Slack Community Banner
 *
 * Displays a promotional banner inviting users to join the LiteSpeed Slack community.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<div class="litespeed-wrap notice notice-info litespeed-banner-promo-full" id="litespeed-banner-promo-slack">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title"><?php esc_html_e( 'Welcome to LiteSpeed', 'litespeed-cache' ); ?></h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-description-content">
					<?php esc_html_e( 'Want to connect with other LiteSpeed users?', 'litespeed-cache' ); ?>
					<?php
					printf(
						/* translators: %s: Link to LiteSpeed Slack community */
						esc_html__( 'Join the %s community.', 'litespeed-cache' ),
						'<a href="https://join.slack.com/t/golitespeed/shared_invite/enQtMzE5ODgxMTUyNTgzLTNiNWQ1MWZlYmI4YjEzNTM4NjdiODY2YTQ0OWVlMzBlNGZkY2E3Y2E4MjIzNmNmZmU0ZjIyNWM1ZmNmMWRlOTk" target="_blank" class="litespeed-banner-promo-slack-textlink" rel="noopener">LiteSpeed Slack</a>'
					);
					?>
				</p>
				<p class="litespeed-banner-promo-slack-line2">
					golitespeed.slack.com
				</p>
			</div>
			<div>
				<h3 class="litespeed-banner-button-link">
					<a href="https://join.slack.com/t/golitespeed/shared_invite/enQtMzE5ODgxMTUyNTgzLTNiNWQ1MWZlYmI4YjEzNTM4NjdiODY2YTQ0OWVlMzBlNGZkY2E3Y2E4MjIzNmNmZmU0ZjIyNWM1ZmNmMWRlOTk" target="_blank" rel="noopener">
						<?php esc_html_e( 'Join Us on Slack', 'litespeed-cache' ); ?>
					</a>
				</h3>
			</div>
		</div>
	</div>
	<div>
		<?php $dismiss_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'slack' ) ); ?>
		<span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice.', 'litespeed-cache' ); ?></span>
		<a href="<?php echo esc_url( $dismiss_url ); ?>" class="litespeed-notice-dismiss"><?php esc_html_e( 'Dismiss', 'litespeed-cache' ); ?></a>
	</div>
</div><?php
/**
 * LiteSpeed Cache Performance Review Banner
 *
 * Displays a promotional banner showing page load time and PageSpeed score improvements.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$health_scores = Health::cls()->scores();

// Exit if speed is not significantly improved or score is reduced.
if ( $health_scores['speed_before'] <= $health_scores['speed_after'] * 2 || $health_scores['score_before'] >= $health_scores['score_after'] ) {
	return;
}

// Banner can be shown now.
$this->_promo_true = true;

if ( $check_only ) {
	return;
}

$ajax_url_promo = Utility::build_url(Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, true, null, array( 'promo_tag' => $promo_tag ), true);
?>

<div class="litespeed-wrap notice notice-info litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-banner-promo-content"><?php esc_html_e( 'Thank You for Using the LiteSpeed Cache Plugin!', 'litespeed-cache' ); ?></h3>

		<div class="litespeed-row-flex litespeed-banner-promo-content litespeed-margin-left-remove litespeed-flex-wrap">
			<div class="litespeed-right50 litespeed-margin-bottom20">
				<h2 class="litespeed-text-grey litespeed-margin-bottom-remove litespeed-top10"><?php esc_html_e( 'Page Load Time', 'litespeed-cache' ); ?></h2>
				<hr class="litespeed-margin-bottom-remove" />
				<div class="litespeed-row-flex" style="margin-left: -10px;">
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove"><?php esc_html_e( 'Before', 'litespeed-cache' ); ?></p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-grey">
							<?php echo esc_html( $health_scores['speed_before'] ); ?><span class="litespeed-text-large">s</span>
						</div>
					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove"><?php esc_html_e( 'After', 'litespeed-cache' ); ?></p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-success">
							<?php echo esc_html( $health_scores['speed_after'] ); ?><span class="litespeed-text-large">s</span>
						</div>
					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove" style="white-space: nowrap;">
								<?php esc_html_e( 'Improved by', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-fern">
							<?php echo esc_html( $health_scores['speed_improved'] ); ?><span class="litespeed-text-large">%</span>
						</div>
					</div>
				</div>
			</div>

			<?php if ( $health_scores['score_before'] < $health_scores['score_after'] ) : ?>
				<div class="litespeed-margin-bottom20">
					<h2 class="litespeed-text-grey litespeed-margin-bottom-remove litespeed-top10"><?php esc_html_e( 'PageSpeed Score', 'litespeed-cache' ); ?></h2>
					<hr class="litespeed-margin-bottom-remove" />
					<div class="litespeed-row-flex" style="margin-left: -10px;">
						<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
							<div>
								<p class="litespeed-text-grey litespeed-text-center litespeed-margin-y-remove"><?php esc_html_e( 'Before', 'litespeed-cache' ); ?></p>
							</div>
							<div class="litespeed-promo-score" style="margin-top: -5px;">
								<?php echo wp_kses( GUI::pie( esc_html( $health_scores['score_before'] ), 45, false, true, 'litespeed-pie-' . esc_attr( $this->get_cls_of_pagescore( $health_scores['score_before'] ) ) ), GUI::allowed_svg_tags() ); ?>
							</div>
						</div>
						<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
							<div>
								<p class="litespeed-text-grey litespeed-text-center litespeed-margin-y-remove"><?php esc_html_e( 'After', 'litespeed-cache' ); ?></p>
							</div>
							<div class="litespeed-promo-score" style="margin-top: -5px;">
								<?php echo wp_kses( GUI::pie( esc_html( $health_scores['score_after'] ), 45, false, true, 'litespeed-pie-' . esc_attr( $this->get_cls_of_pagescore( $health_scores['score_after'] ) ) ), GUI::allowed_svg_tags() ); ?>
							</div>
						</div>
						<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
							<div>
								<p class="litespeed-text-grey litespeed-margin-y-remove" style="white-space: nowrap;">
									<?php esc_html_e( 'Improved by', 'litespeed-cache' ); ?>
								</p>
							</div>
							<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-fern">
								<?php echo esc_html( $health_scores['score_improved'] ); ?><span class="litespeed-text-large">%</span>
							</div>
						</div>
					</div>
				</div>
			<?php endif; ?>
		</div>

		<div class="litespeed-row-flex litespeed-flex-wrap litespeed-margin-y5">
			<div class="litespeed-banner-description-padding-right-15">
				<a href="https://wordpress.org/support/plugin/litespeed-cache/reviews/?filter=5#new-post" target="_blank" rel="noopener" style="text-decoration: none;">
					<button class="button litespeed-btn-success litespeed-btn-mini">
						<?php esc_html_e( "Sure I'd love to review!", 'litespeed-cache' ); ?>
						⭐⭐⭐⭐⭐
					</button>
				</a>
				<button type="button" class="button litespeed-btn-primary litespeed-btn-mini" id="litespeed-promo-done"><?php esc_html_e( "I've already left a review", 'litespeed-cache' ); ?></button>
				<button type="button" class="button litespeed-btn-warning litespeed-btn-mini" id="litespeed-promo-later"><?php esc_html_e( 'Maybe later', 'litespeed-cache' ); ?></button>
			</div>
			<div>
				<p class="litespeed-text-small">
					<?php esc_html_e( 'Created with ❤️ by LiteSpeed team.', 'litespeed-cache' ); ?>
					<a href="https://wordpress.org/support/plugin/litespeed-cache" target="_blank" rel="noopener"><?php esc_html_e( 'Support forum', 'litespeed-cache' ); ?></a> | <a href="https://www.litespeedtech.com/support" target="_blank" rel="noopener"><?php esc_html_e( 'Submit a ticket', 'litespeed-cache' ); ?></a>
				</p>
			</div>
		</div>
	</div>

	<div>
		<?php
		$dismiss_url = Utility::build_url(
			Core::ACTION_DISMISS,
			GUI::TYPE_DISMISS_PROMO,
			false,
			null,
			array(
				'promo_tag' => 'score',
				'later'     => 1,
			)
		);
		?>
		<span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice.', 'litespeed-cache' ); ?></span>
		<a href="<?php echo esc_url( $dismiss_url ); ?>" class="litespeed-notice-dismiss"><?php esc_html_e( 'Dismiss', 'litespeed-cache' ); ?></a>
	</div>
</div>

<script>
(function ($) {
	jQuery(document).ready(function () {
		/** Promo banner **/
		$('#litespeed-promo-done').on('click', function (event) {
			$('.litespeed-banner-promo-full').slideUp();
			$.get('<?php echo $ajax_url_promo;// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>&done=1');
		});
		$('#litespeed-promo-later').on('click', function (event) {
			$('.litespeed-banner-promo-full').slideUp();
			$.get('<?php echo $ajax_url_promo;// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>');
		});
	});
})(jQuery);
</script><?php
/**
 * LiteSpeed Cache Promotion Banner
 *
 * Displays a promotional banner with news and installation options.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<div class="litespeed-wrap notice notice-success litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15"><?php echo wp_kses_post( $this->_summary['news.title'] ); ?></h3>
		<div class="litespeed-banner-description" style="flex-direction: column;">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-description-content">
					<?php echo wp_kses_post( $this->_summary['news.content'] ); ?>
				</p>
			</div>
			<div class="litespeed-inline">
				<div class="litespeed-banner-description-padding-right-15 litespeed-margin-bottom10">
					<?php if ( ! empty( $this->_summary['news.plugin'] ) ) : ?>
						<?php $install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_3RD, false, null, array( 'plugin' => $this->_summary['news.plugin'] ) ); ?>
						<a href="<?php echo esc_url( $install_link ); ?>" class="button litespeed-btn-success">
							<?php esc_html_e( 'Install', 'litespeed-cache' ); ?>
							<?php
							if ( ! empty( $this->_summary['news.plugin_name'] ) ) {
								echo esc_html( $this->_summary['news.plugin_name'] );
							}
							?>
						</a>
					<?php endif; ?>
					<?php if ( ! empty( $this->_summary['news.zip'] ) ) : ?>
						<?php $install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_ZIP ); ?>
						<a href="<?php echo esc_url( $install_link ); ?>" class="button litespeed-btn-success">
							<?php esc_html_e( 'Install', 'litespeed-cache' ); ?>
						</a>
					<?php endif; ?>
				</div>
			</div>
		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_DISMISS_RECOMMENDED ); ?>
		<span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice', 'litespeed-cache' ); ?></span>
		<a href="<?php echo esc_url( $dismiss_url ); ?>" class="litespeed-notice-dismiss">X</a>
	</div>
</div><?php
/**
 * Health Check Script
 *
 * Triggers a health check request for speed when the document is loaded.
 *
 * @package LiteSpeed
 * @since 1.0.0
 * @deprecated 3.3 Will only show banner after user manually checked score
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$url = Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SPEED, true, null, array(), true );
?>
<script>
document.addEventListener('DOMContentLoaded', function() {
	jQuery(document).ready( function() {
			jQuery.get( '<?php echo $url; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>' ) ;
		} ) ;
});
</script><?php
/**
 * QUIC.cloud Promotion Banner
 *
 * Displays a promotional banner for QUIC.cloud services with a tweet option to earn credits.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>

<div class="litespeed-wrap notice notice-success litespeed-banner-promo-qc">

	<div class="litespeed-banner-promo-qc-content">

		<div class="litespeed-banner-promo-qc-description">
			<h2><?php esc_html_e( 'You just unlocked a promotion from QUIC.cloud!', 'litespeed-cache' ); ?></h2>
			<p>
				<?php
				printf(
					esc_html__( 'Spread the love and earn %s credits to use in our QUIC.cloud online services.', 'litespeed-cache' ),
					'<strong>' . absint($this->_summary['promo'][0]['quota']) . '</strong>'
				);
				?>
				</p>
			<p>
				<a class="button button-primary" href="<?php echo esc_url($this->_summary['promo'][0]['url']); ?>" target="_blank">
					<?php
					printf(
						esc_html__( 'Send to twitter to get %s bonus', 'litespeed-cache' ),
						absint($this->_summary['promo'][0]['quota'])
					);
					?>
				</a>
				<a href="https://www.quic.cloud/faq/#credit" target="_blank"><?php esc_html_e( 'Learn more', 'litespeed-cache' ); ?></a>
			</p>
		</div>

		<div class="litespeed-banner-promo-qc-preview">
			<h4 class="litespeed-tweet-preview-title"><?php esc_html_e( 'Tweet preview', 'litespeed-cache' ); ?></h4>
			<div class="litespeed-tweet-preview">

				<div class="litespeed-tweet-img"><img src="<?php echo esc_url($this->_summary['promo'][0]['image']); ?>"></div>

				<div class="litespeed-tweet-preview-content">
					<p class="litespeed-tweet-text"><?php echo esc_html($this->_summary['promo'][0]['content']); ?></p>

					<div class="litespeed-tweet-cta">
						<a href="<?php echo esc_url($this->_summary['promo'][0]['url']); ?>" class="litespeed-tweet-btn" target="_blank"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 250 250" xml:space="preserve">
								<path class="st0" d="M78.6,226.6c94.3,0,145.9-78.2,145.9-145.9c0-2.2,0-4.4-0.1-6.6c10-7.3,18.7-16.3,25.6-26.5
								c-9.4,4.1-19.3,6.9-29.5,8.1c10.7-6.4,18.7-16.5,22.5-28.4c-10.1,6-21.1,10.2-32.6,12.4c-19.4-20.7-51.9-21.7-72.6-2.2
								c-13.3,12.5-19,31.2-14.8,49C81.9,84.3,43.4,64.8,17.4,32.8c-13.6,23.4-6.7,53.4,15.9,68.5c-8.2-0.2-16.1-2.4-23.3-6.4
								c0,0.2,0,0.4,0,0.6c0,24.4,17.2,45.4,41.2,50.3c-7.6,2.1-15.5,2.4-23.2,0.9c6.7,20.9,26,35.2,47.9,35.6c-18.2,14.3-40.6,22-63.7,22
								c-4.1,0-8.2-0.3-12.2-0.7C23.5,218.6,50.7,226.6,78.6,226.6" />
							</svg>
							<?php esc_html_e( 'Tweet this', 'litespeed-cache' ); ?>
						</a>
					</div>
				</div>

			</div>

		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_CLEAR_PROMO ); ?>
		<span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice', 'litespeed-cache' ); ?>.</span>
		<a href="<?php echo esc_url($dismiss_url); ?>" class="litespeed-notice-dismiss">X</a>
	</div>
</div><?php
/**
 * LiteSpeed Cache New Version Banner
 *
 * Displays a promotional banner for a new version of LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 * @note Only shown for single site installations.
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

// Exit if multisite or auto-upgrade is enabled.
if ( is_multisite() || $this->conf( Base::O_AUTO_UPGRADE ) ) {
	return;
}

$current = get_site_transient( 'update_plugins' );
if ( ! isset( $current->response[ Core::PLUGIN_FILE ] ) ) {
	return;
}

// Check for new version every 12 hours.
$last_check = empty( $this->_summary['new_version.last_check'] ) ? 0 : $this->_summary['new_version.last_check'];
if ( time() - $last_check > 43200 ) {
	GUI::save_summary( array( 'new_version.last_check' => time() ) );

	// Detect version
	$auto_v = Cloud::version_check( 'new_version_banner' );
	if ( ! empty( $auto_v['latest'] ) ) {
		GUI::save_summary( array( 'new_version.v' => $auto_v['latest'] ) );
	}
	// After detect, don't show, just return and show next time
	return;
}

if ( ! isset( $this->_summary['new_version.v'] ) || version_compare( Core::VER, $this->_summary['new_version.v'], '>=' ) ) {
	return;
}

// Banner can be shown now.
$this->_promo_true = true;

if ( $check_only ) {
	return;
}
?>

<div class="litespeed-wrap notice notice-success litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15">
			<?php esc_html_e( 'LiteSpeed Cache', 'litespeed-cache' ); ?>:
			<?php esc_html_e( 'New Version Available!', 'litespeed-cache' ); ?>
		</h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-description-content">
					<?php
					/* translators: %s: New version number */
					printf(
						esc_html__( 'New release %s is available now.', 'litespeed-cache' ),
						'v' . esc_html( $this->_summary['new_version.v'] )
					);
					?>
				</p>
			</div>
			<div class="litespeed-row-flex litespeed-banner-description">
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_UPGRADE ); ?>
					<a href="<?php echo esc_url( $url ); ?>" class="button litespeed-btn-success litespeed-btn-mini">
						<span class="dashicons dashicons-image-rotate"></span>
						<?php esc_html_e( 'Upgrade', 'litespeed-cache' ); ?>
					</a>
				</div>
				<div class="litespeed-banner-description-padding-right-15">
					<?php
					$cfg = array( Conf::TYPE_SET . '[' . Base::O_AUTO_UPGRADE . ']' => 1 );
					$url = Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, null, $cfg );
					?>
					<a href="<?php echo esc_url( $url ); ?>" class="button litespeed-btn-primary litespeed-btn-mini">
						<span class="dashicons dashicons-update"></span>
						<?php esc_html_e( 'Turn On Auto Upgrade', 'litespeed-cache' ); ?>
					</a>
				</div>
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'new_version' ) ); ?>
					<a href="<?php echo esc_url( $url ); ?>" class="button litespeed-btn-warning litespeed-btn-mini">
						<?php esc_html_e( 'Maybe Later', 'litespeed-cache' ); ?>
					</a>
				</div>
			</div>
		</div>
	</div>

	<div>
		<?php
		$dismiss_url = Utility::build_url(
			Core::ACTION_DISMISS,
			GUI::TYPE_DISMISS_PROMO,
			false,
			null,
			array(
				'promo_tag' => 'new_version',
				'later'     => 1,
			)
		);
		?>
		<span class="screen-reader-text"><?php esc_html_e( 'Dismiss this notice.', 'litespeed-cache' ); ?></span>
		<a href="<?php echo esc_url( $dismiss_url ); ?>" class="litespeed-notice-dismiss"><?php esc_html_e( 'Dismiss', 'litespeed-cache' ); ?></a>
	</div>
</div><?php
/**
 * LiteSpeed Cache Developer Version Banner
 *
 * Displays a promotional banner for a new developer version of LiteSpeed Cache.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;
?>

<div class="litespeed-wrap notice notice-warning litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15">
			<?php esc_html_e( 'LiteSpeed Cache', 'litespeed-cache' ); ?>:
			<?php esc_html_e( 'New Developer Version Available!', 'litespeed-cache' ); ?>
		</h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-description-content">
					<?php
					/* translators: %s: Developer version number */
					printf(
						esc_html__( 'New developer version %s is available now.', 'litespeed-cache' ),
						'v' . esc_html( $this->_summary['version.dev'] )
					);
					?>
				</p>
			</div>
			<div class="litespeed-row-flex litespeed-banner-description">
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_BETA_TEST, false, null, array( Debug2::BETA_TEST_URL => 'dev' ) ); ?>
					<a href="<?php echo esc_url( $url ); ?>" class="button litespeed-btn-success litespeed-btn-mini">
						<span class="dashicons dashicons-image-rotate"></span>
						<?php esc_html_e( 'Upgrade', 'litespeed-cache' ); ?>
					</a>
				</div>
			</div>
		</div>
	</div>
</div><?php
/**
 * LiteSpeed Cache Standard Presets
 *
 * Renders the standard presets interface for LiteSpeed Cache, allowing users to apply predefined configuration presets.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$presets = array(
	'essentials' => array(
		'title'  => esc_html__( 'Essentials', 'litespeed-cache' ),
		'body'   => array(
			esc_html__( 'Default Cache', 'litespeed-cache' ),
			esc_html__( 'Higher TTL', 'litespeed-cache' ),
			esc_html__( 'Browser Cache', 'litespeed-cache' ),
		),
		'footer' => array(
			esc_html__( 'This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development.', 'litespeed-cache' ),
			esc_html__( 'A Domain Key is not required to use this preset. Only basic caching features are enabled.', 'litespeed-cache' ),
		),
	),
	'basic' => array(
		'title'  => esc_html__( 'Basic', 'litespeed-cache' ),
		'body'   => array(
			esc_html__( 'Everything in Essentials, Plus', 'litespeed-cache' ),
			esc_html__( 'Image Optimization', 'litespeed-cache' ),
			esc_html__( 'Mobile Cache', 'litespeed-cache' ),
		),
		'footer' => array(
			esc_html__( 'This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners.', 'litespeed-cache' ),
			esc_html__( 'A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools.', 'litespeed-cache' ),
		),
	),
	'advanced' => array(
		'title'  => esc_html__( 'Advanced (Recommended)', 'litespeed-cache' ),
		'body'   => array(
			esc_html__( 'Everything in Basic, Plus', 'litespeed-cache' ),
			esc_html__( 'Guest Mode and Guest Optimization', 'litespeed-cache' ),
			esc_html__( 'CSS, JS and HTML Minification', 'litespeed-cache' ),
			esc_html__( 'Font Display Optimization', 'litespeed-cache' ),
			esc_html__( 'JS Defer for both external and inline JS', 'litespeed-cache' ),
			esc_html__( 'DNS Prefetch for static files', 'litespeed-cache' ),
			esc_html__( 'Gravatar Cache', 'litespeed-cache' ),
			esc_html__( 'Remove Query Strings from Static Files', 'litespeed-cache' ),
			esc_html__( 'Remove WordPress Emoji', 'litespeed-cache' ),
			esc_html__( 'Remove Noscript Tags', 'litespeed-cache' ),
		),
		'footer' => array(
			esc_html__( 'This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools.', 'litespeed-cache' ),
			esc_html__( 'A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores.', 'litespeed-cache' ),
		),
	),
	'aggressive' => array(
		'title'  => esc_html__( 'Aggressive', 'litespeed-cache' ),
		'body'   => array(
			esc_html__( 'Everything in Advanced, Plus', 'litespeed-cache' ),
			esc_html__( 'CSS & JS Combine', 'litespeed-cache' ),
			esc_html__( 'Asynchronous CSS Loading with Critical CSS', 'litespeed-cache' ),
			esc_html__( 'Removed Unused CSS for Users', 'litespeed-cache' ),
			esc_html__( 'Lazy Load for Iframes', 'litespeed-cache' ),
		),
		'footer' => array(
			esc_html__( 'This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning.', 'litespeed-cache' ),
			esc_html__( 'A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores.', 'litespeed-cache' ),
		),
	),
	'extreme' => array(
		'title'  => esc_html__( 'Extreme', 'litespeed-cache' ),
		'body'   => array(
			esc_html__( 'Everything in Aggressive, Plus', 'litespeed-cache' ),
			esc_html__( 'Lazy Load for Images', 'litespeed-cache' ),
			esc_html__( 'Viewport Image Generation', 'litespeed-cache' ),
			esc_html__( 'JS Delayed', 'litespeed-cache' ),
			esc_html__( 'Inline JS added to Combine', 'litespeed-cache' ),
			esc_html__( 'Inline CSS added to Combine', 'litespeed-cache' ),
		),
		'footer' => array(
			esc_html__( 'This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images.', 'litespeed-cache' ),
			esc_html__( 'A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores.', 'litespeed-cache' ),
		),
	),
);
?>

<h3 class="litespeed-title-short">
	<?php esc_html_e( 'LiteSpeed Cache Standard Presets', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/presets/#standard-tab' ); ?>
</h3>

<p><?php esc_html_e( 'Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between.', 'litespeed-cache' ); ?></p>

<div class="litespeed-comparison-cards">
	<?php
	foreach ( array_keys( $presets ) as $name ) :
		$curr_title   = $presets[ $name ]['title'];
		$recommend    = 'advanced' === $name;
		$card_class   = $recommend ? 'litespeed-comparison-card-rec' : '';
		$button_class = $recommend ? 'button-primary' : 'button-secondary';
		?>
		<div class="litespeed-comparison-card postbox <?php echo esc_attr( $card_class ); ?>">
			<div class="litespeed-card-content">
				<div class="litespeed-card-header">
					<h3 class="litespeed-h3">
						<?php echo esc_html( $curr_title ); ?>
					</h3>
				</div>
				<div class="litespeed-card-body">
					<ul>
						<?php foreach ( $presets[ $name ]['body'] as $line ) : ?>
							<li><?php echo esc_html( $line ); ?></li>
						<?php endforeach; ?>
					</ul>
				</div>
				<div class="litespeed-card-footer">
					<h4><?php esc_html_e( 'Who should use this preset?', 'litespeed-cache' ); ?></h4>
					<?php foreach ( $presets[ $name ]['footer'] as $line ) : ?>
						<p><?php echo esc_html( $line ); ?></p>
					<?php endforeach; ?>
				</div>
			</div>
			<div class="litespeed-card-action">
				<a
					href="<?php echo esc_url( Utility::build_url( Router::ACTION_PRESET, Preset::TYPE_APPLY, false, null, array( 'preset' => $name ) ) ); ?>"
					class="button <?php echo esc_attr( $button_class ); ?>"
					data-litespeed-cfm="<?php echo esc_attr( sprintf( __( 'This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?', 'litespeed-cache' ), $curr_title ) ); ?>"
				>
					<?php esc_html_e( 'Apply Preset', 'litespeed-cache' ); ?>
				</a>
			</div>
		</div>
	<?php endforeach; ?>
</div>

<?php
$summary = Preset::get_summary();
$backups = array();
foreach ( Preset::get_backups() as $backup ) {
	$backup = explode( '-', $backup );
	if ( empty( $backup[1] ) ) {
		continue;
	}
	$timestamp  = $backup[1];
	$time       = trim( Utility::readable_time( $timestamp ) );
	$name       = empty( $backup[3] ) ? null : $backup[3];
	$curr_title = empty( $presets[ $name ]['title'] ) ? $name : $presets[ $name ]['title'];
	$curr_title = null === $curr_title ? esc_html__( 'unknown', 'litespeed-cache' ) : $curr_title;
	$backups[]  = array(
		'timestamp' => $timestamp,
		'time'      => $time,
		'title'     => $curr_title,
	);
}

if ( ! empty( $summary['preset'] ) || ! empty( $backups ) ) :
	?>
	<h3 class="litespeed-title-short">
		<?php esc_html_e( 'History', 'litespeed-cache' ); ?>
	</h3>
<?php endif; ?>

<?php if ( ! empty( $summary['preset'] ) ) : ?>
	<p>
		<?php
		$name = strtolower( $summary['preset'] );
		$time = trim( Utility::readable_time( $summary['preset_timestamp'] ) );
		if ( 'error' === $name ) {
			printf( esc_html__( 'Error: Failed to apply the settings %1$s', 'litespeed-cache' ), esc_html( $time ) );
		} elseif ( 'backup' === $name ) {
			printf( esc_html__( 'Restored backup settings %1$s', 'litespeed-cache' ), esc_html( $time ) );
		} else {
			printf(
				esc_html__( 'Applied the %1$s preset %2$s', 'litespeed-cache' ),
				'<strong>' . esc_html( $presets[ $name ]['title'] ) . '</strong>',
				esc_html( $time )
			);
		}
		?>
	</p>
<?php endif; ?>

<?php foreach ( $backups as $backup ) : ?>
	<p>
		<?php printf( esc_html__( 'Backup created %1$s before applying the %2$s preset', 'litespeed-cache' ), esc_html( $backup['time'] ), esc_html( $backup['title'] ) ); ?>
		<a
			href="<?php echo esc_url( Utility::build_url( Router::ACTION_PRESET, Preset::TYPE_RESTORE, false, null, array( 'timestamp' => $backup['timestamp'] ) ) ); ?>"
			class="litespeed-left10"
			data-litespeed-cfm="<?php echo esc_attr( sprintf( __( 'This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?', 'litespeed-cache' ), $backup['time'], $backup['title'] ) ); ?>"
		>
			<?php esc_html_e( 'Restore Settings', 'litespeed-cache' ); ?>
		</a>
	</p>
<?php endforeach; ?><?php
/**
 * LiteSpeed Cache Configuration Presets
 *
 * Renders the configuration presets interface for LiteSpeed Cache, including standard presets and import/export functionality.
 *
 * @package LiteSpeed
 * @since 1.0.0
 */

namespace LiteSpeed;

defined( 'WPINC' ) || exit;

$menu_list = array(
	'standard'      => esc_html__( 'Standard Presets', 'litespeed-cache' ),
	'import_export' => esc_html__( 'Import / Export', 'litespeed-cache' ),
);
?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php esc_html_e( 'LiteSpeed Cache Configuration Presets', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo esc_html( Core::VER ); ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
		<?php GUI::display_tab_list( $menu_list ); ?>
	</h2>

	<div class="litespeed-body">
		<?php
		foreach ( $menu_list as $curr_tab => $val ) :
			?>
			<div data-litespeed-layout="<?php echo esc_attr( $curr_tab ); ?>">
				<?php
				if ( 'import_export' === $curr_tab ) {
					require LSCWP_DIR . "tpl/toolbox/$curr_tab.tpl.php";
				} else {
					require LSCWP_DIR . "tpl/presets/$curr_tab.tpl.php";
				}
				?>
			</div>
			<?php
		endforeach;
		?>
	</div>
</div># Copyright (C) 2025 LiteSpeed Technologies
# This file is distributed under the GPLv3.
msgid ""
msgstr ""
"Project-Id-Version: LiteSpeed Cache 7.3\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/litespeed-cache\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"POT-Creation-Date: 2025-07-24T18:00:33+00:00\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"X-Generator: WP-CLI 2.11.0\n"
"X-Domain: litespeed-cache\n"

#. Plugin Name of the plugin
#: litespeed-cache.php
#: tpl/banner/new_version.php:57
#: tpl/banner/new_version_dev.tpl.php:21
#: tpl/cache/more_settings_tip.tpl.php:28
#: tpl/esi_widget_edit.php:41
#: tpl/inc/admin_footer.php:17
msgid "LiteSpeed Cache"
msgstr ""

#. Plugin URI of the plugin
#: litespeed-cache.php
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr ""

#. Description of the plugin
#: litespeed-cache.php
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr ""

#. Author of the plugin
#: litespeed-cache.php
msgid "LiteSpeed Technologies"
msgstr ""

#. Author URI of the plugin
#: litespeed-cache.php
msgid "https://www.litespeedtech.com"
msgstr ""

#: cli/crawler.cls.php:89
#: tpl/crawler/summary.tpl.php:39
msgid "%d hours"
msgstr ""

#: cli/crawler.cls.php:91
#: tpl/crawler/summary.tpl.php:39
msgid "%d hour"
msgstr ""

#: cli/crawler.cls.php:98
#: tpl/crawler/summary.tpl.php:47
msgid "%d minutes"
msgstr ""

#: cli/crawler.cls.php:100
#: tpl/crawler/summary.tpl.php:47
msgid "%d minute"
msgstr ""

#: cli/purge.cls.php:86
msgid "Purged All!"
msgstr ""

#: cli/purge.cls.php:133
msgid "Purged the blog!"
msgstr ""

#: cli/purge.cls.php:182
msgid "Purged the URL!"
msgstr ""

#: cli/purge.cls.php:234
msgid "Purged!"
msgstr ""

#: src/activation.cls.php:517
#: src/activation.cls.php:522
msgid "Failed to upgrade."
msgstr ""

#: src/activation.cls.php:526
msgid "Upgraded successfully."
msgstr ""

#: src/admin-display.cls.php:120
#: tpl/dash/entry.tpl.php:16
msgid "Dashboard"
msgstr ""

#: src/admin-display.cls.php:122
msgid "Presets"
msgstr ""

#: src/admin-display.cls.php:124
msgid "General"
msgstr ""

#: src/admin-display.cls.php:126
#: tpl/cache/entry.tpl.php:16
#: tpl/cache/entry_network.tpl.php:16
msgid "Cache"
msgstr ""

#: src/admin-display.cls.php:128
msgid "CDN"
msgstr ""

#: src/admin-display.cls.php:130
#: src/gui.cls.php:727
#: tpl/dash/dashboard.tpl.php:203
#: tpl/dash/network_dash.tpl.php:36
#: tpl/general/online.tpl.php:75
#: tpl/general/online.tpl.php:134
#: tpl/general/online.tpl.php:149
#: tpl/presets/standard.tpl.php:32
msgid "Image Optimization"
msgstr ""

#: src/admin-display.cls.php:132
#: tpl/dash/dashboard.tpl.php:204
#: tpl/dash/network_dash.tpl.php:37
#: tpl/general/online.tpl.php:83
#: tpl/general/online.tpl.php:133
#: tpl/general/online.tpl.php:148
msgid "Page Optimization"
msgstr ""

#: src/admin-display.cls.php:134
msgid "Database"
msgstr ""

#: src/admin-display.cls.php:136
#: src/lang.cls.php:248
msgid "Crawler"
msgstr ""

#: src/admin-display.cls.php:138
msgid "Toolbox"
msgstr ""

#: src/admin-display.cls.php:207
msgid "Cookie Name"
msgstr ""

#: src/admin-display.cls.php:208
#: tpl/crawler/settings.tpl.php:179
msgid "Cookie Values"
msgstr ""

#: src/admin-display.cls.php:210
msgid "Remove cookie simulation"
msgstr ""

#: src/admin-display.cls.php:211
msgid "Add new cookie to simulate"
msgstr ""

#: src/admin-display.cls.php:230
msgid "CDN URL to be used. For example, %s"
msgstr ""

#: src/admin-display.cls.php:232
msgid "Remove CDN URL"
msgstr ""

#: src/admin-display.cls.php:233
msgid "Add new CDN URL"
msgstr ""

#: src/admin-display.cls.php:234
#: src/admin-display.cls.php:939
#: src/admin-display.cls.php:966
#: src/admin-display.cls.php:1015
#: src/doc.cls.php:40
#: tpl/cache/settings-cache.tpl.php:28
#: tpl/cache/settings_inc.cache_mobile.tpl.php:91
#: tpl/cdn/other.tpl.php:45
#: tpl/crawler/settings.tpl.php:138
#: tpl/dash/dashboard.tpl.php:67
#: tpl/dash/dashboard.tpl.php:459
#: tpl/dash/dashboard.tpl.php:581
#: tpl/dash/dashboard.tpl.php:610
#: tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:174
#: tpl/toolbox/settings-debug.tpl.php:56
msgid "ON"
msgstr ""

#: src/admin-display.cls.php:235
#: src/admin-display.cls.php:940
#: src/admin-display.cls.php:966
#: src/admin-display.cls.php:1015
#: tpl/cache/settings-cache.tpl.php:28
#: tpl/cache/settings_inc.object.tpl.php:280
#: tpl/cdn/other.tpl.php:53
#: tpl/dash/dashboard.tpl.php:69
#: tpl/dash/dashboard.tpl.php:461
#: tpl/dash/dashboard.tpl.php:583
#: tpl/dash/dashboard.tpl.php:612
#: tpl/img_optm/settings.media_webp.tpl.php:22
#: tpl/page_optm/settings_css.tpl.php:91
#: tpl/page_optm/settings_js.tpl.php:77
#: tpl/page_optm/settings_media.tpl.php:178
#: tpl/toolbox/settings-debug.tpl.php:56
msgid "OFF"
msgstr ""

#: src/admin-display.cls.php:291
#: src/gui.cls.php:718
#: tpl/crawler/entry.tpl.php:17
msgid "Settings"
msgstr ""

#: src/admin-display.cls.php:519
#: tpl/banner/new_version.php:114
#: tpl/banner/score.php:142
#: tpl/banner/slack.php:49
msgid "Dismiss"
msgstr ""

#: src/admin-display.cls.php:809
#: src/admin-display.cls.php:813
msgid "Save Changes"
msgstr ""

#: src/admin-display.cls.php:1026
msgid "This setting is overwritten by the PHP constant %s"
msgstr ""

#: src/admin-display.cls.php:1028
msgid "This setting is overwritten by the primary site setting"
msgstr ""

#: src/admin-display.cls.php:1030
msgid "This setting is overwritten by the Network setting"
msgstr ""

#: src/admin-display.cls.php:1033
msgid "currently set to %s"
msgstr ""

#: src/admin-display.cls.php:1043
#: tpl/cache/settings_inc.object.tpl.php:162
#: tpl/crawler/settings.tpl.php:43
#: tpl/esi_widget_edit.php:78
msgid "seconds"
msgstr ""

#: src/admin-display.cls.php:1074
#: src/admin-display.cls.php:1078
#: tpl/cdn/other.tpl.php:108
msgid "Default value"
msgstr ""

#: src/admin-display.cls.php:1102
msgid "Invalid rewrite rule"
msgstr ""

#: src/admin-display.cls.php:1119
msgid "Path must end with %s"
msgstr ""

#: src/admin-display.cls.php:1137
msgid "Minimum value"
msgstr ""

#: src/admin-display.cls.php:1140
msgid "Maximum value"
msgstr ""

#: src/admin-display.cls.php:1152
msgid "Zero, or"
msgstr ""

#: src/admin-display.cls.php:1158
msgid "Larger than"
msgstr ""

#: src/admin-display.cls.php:1160
msgid "Smaller than"
msgstr ""

#: src/admin-display.cls.php:1163
msgid "Value range"
msgstr ""

#: src/admin-display.cls.php:1188
msgid "Invalid IP"
msgstr ""

#: src/admin-display.cls.php:1208
#: tpl/cache/settings-esi.tpl.php:105
#: tpl/page_optm/settings_css.tpl.php:86
#: tpl/page_optm/settings_css.tpl.php:221
#: tpl/page_optm/settings_html.tpl.php:131
#: tpl/page_optm/settings_media.tpl.php:256
#: tpl/page_optm/settings_media_exc.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:48
#: tpl/page_optm/settings_tuning.tpl.php:68
#: tpl/page_optm/settings_tuning.tpl.php:89
#: tpl/page_optm/settings_tuning.tpl.php:110
#: tpl/page_optm/settings_tuning.tpl.php:129
#: tpl/page_optm/settings_tuning_css.tpl.php:35
#: tpl/page_optm/settings_tuning_css.tpl.php:96
#: tpl/page_optm/settings_tuning_css.tpl.php:99
#: tpl/page_optm/settings_tuning_css.tpl.php:100
#: tpl/toolbox/edit_htaccess.tpl.php:61
#: tpl/toolbox/edit_htaccess.tpl.php:79
msgid "API"
msgstr ""

#: src/admin-display.cls.php:1210
msgid "Server variable(s) %s available to override this setting."
msgstr ""

#: src/admin-display.cls.php:1222
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr ""

#: src/admin-display.cls.php:1223
msgid "For example, for %1$s, %2$s can be used here."
msgstr ""

#: src/admin-display.cls.php:1225
msgid "To match the beginning, add %s to the beginning of the item."
msgstr ""

#: src/admin-display.cls.php:1226
msgid "To do an exact match, add %s to the end of the URL."
msgstr ""

#: src/admin-display.cls.php:1227
#: src/doc.cls.php:109
msgid "One per line."
msgstr ""

#: src/admin-display.cls.php:1241
msgid "%s groups"
msgstr ""

#: src/admin-display.cls.php:1244
msgid "%s images"
msgstr ""

#: src/admin-display.cls.php:1253
msgid "%s group"
msgstr ""

#: src/admin-display.cls.php:1256
msgid "%s image"
msgstr ""

#: src/admin-settings.cls.php:92
msgid "The user with id %s has editor access, which is not allowed for the role simulator."
msgstr ""

#: src/admin-settings.cls.php:274
#: src/admin-settings.cls.php:308
msgid "Options saved."
msgstr ""

#: src/cdn/cloudflare.cls.php:111
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr ""

#: src/cdn/cloudflare.cls.php:139
msgid "Cloudflare API is set to off."
msgstr ""

#: src/cdn/cloudflare.cls.php:155
msgid "Notified Cloudflare to purge all successfully."
msgstr ""

#: src/cdn/cloudflare.cls.php:169
msgid "No available Cloudflare zone"
msgstr ""

#: src/cdn/cloudflare.cls.php:259
#: src/cdn/cloudflare.cls.php:281
msgid "Failed to communicate with Cloudflare"
msgstr ""

#: src/cdn/cloudflare.cls.php:272
msgid "Communicated with Cloudflare successfully."
msgstr ""

#: src/cloud.cls.php:164
#: src/cloud.cls.php:244
msgid "QUIC.cloud's access to your WP REST API seems to be blocked."
msgstr ""

#: src/cloud.cls.php:174
#: src/cloud.cls.php:254
msgid "Failed to get echo data from WPAPI"
msgstr ""

#: src/cloud.cls.php:232
#: src/cloud.cls.php:284
msgid "You need to set the %1$s first. Please use the command %2$s to set."
msgstr ""

#: src/cloud.cls.php:233
#: src/cloud.cls.php:285
#: src/lang.cls.php:86
msgid "Server IP"
msgstr ""

#: src/cloud.cls.php:276
#: src/cloud.cls.php:322
#: src/cloud.cls.php:349
#: src/cloud.cls.php:365
#: src/cloud.cls.php:384
#: src/cloud.cls.php:402
msgid "You need to activate QC first."
msgstr ""

#: src/cloud.cls.php:294
msgid "Cert or key file does not exist."
msgstr ""

#: src/cloud.cls.php:553
msgid "Failed to validate %s activation data."
msgstr ""

#: src/cloud.cls.php:560
msgid "Failed to parse %s activation status."
msgstr ""

#: src/cloud.cls.php:567
msgid "%s activation data expired."
msgstr ""

#: src/cloud.cls.php:589
msgid "Congratulations, %s successfully set this domain up for the anonymous online services."
msgstr ""

#: src/cloud.cls.php:591
msgid "Congratulations, %s successfully set this domain up for the online services."
msgstr ""

#: src/cloud.cls.php:596
#: src/cloud.cls.php:634
#: src/cloud.cls.php:674
msgid "Congratulations, %s successfully set this domain up for the online services with CDN service."
msgstr ""

#: src/cloud.cls.php:702
msgid "Reset %s activation successfully."
msgstr ""

#: src/cloud.cls.php:967
#: src/cloud.cls.php:980
#: src/cloud.cls.php:1018
#: src/cloud.cls.php:1084
#: src/cloud.cls.php:1225
msgid "Cloud Error"
msgstr ""

#: src/cloud.cls.php:1018
msgid "No available Cloud Node after checked server load."
msgstr ""

#: src/cloud.cls.php:1084
msgid "No available Cloud Node."
msgstr ""

#: src/cloud.cls.php:1179
msgid "In order to use QC services, need a real domain name, cannot use an IP."
msgstr ""

#: src/cloud.cls.php:1228
msgid "Please try after %1$s for service %2$s."
msgstr ""

#: src/cloud.cls.php:1393
#: src/cloud.cls.php:1416
msgid "Failed to request via WordPress"
msgstr ""

#: src/cloud.cls.php:1448
msgid "Cloud server refused the current request due to unpulled images. Please pull the images first."
msgstr ""

#: src/cloud.cls.php:1453
msgid "Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more."
msgstr ""

#: src/cloud.cls.php:1460
msgid "Cloud server refused the current request due to rate limiting. Please try again later."
msgstr ""

#: src/cloud.cls.php:1468
msgid "Redetected node"
msgstr ""

#: src/cloud.cls.php:1476
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr ""

#: src/cloud.cls.php:1521
#: src/cloud.cls.php:1529
msgid "Message from QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:1537
msgid "Good news from QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:1547
msgid "%1$s plugin version %2$s required for this action."
msgstr ""

#: src/cloud.cls.php:1614
msgid "Failed to communicate with QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:1667
msgid "Site not recognized. QUIC.cloud deactivated automatically. Please reactivate your QUIC.cloud account."
msgstr ""

#: src/cloud.cls.php:1668
msgid "Click here to proceed."
msgstr ""

#: src/cloud.cls.php:1935
msgid "Linked to QUIC.cloud preview environment, for testing purpose only."
msgstr ""

#: src/cloud.cls.php:1987
msgid "Sync QUIC.cloud status successfully."
msgstr ""

#: src/cloud.cls.php:1994
msgid "Sync credit allowance with Cloud Server successfully."
msgstr ""

#: src/conf.cls.php:514
msgid "Saving option failed. IPv4 only for %s."
msgstr ""

#: src/conf.cls.php:688
msgid "Changed setting successfully."
msgstr ""

#: src/core.cls.php:327
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr ""

#: src/core.cls.php:332
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr ""

#: src/crawler-map.cls.php:279
msgid "Sitemap cleaned successfully"
msgstr ""

#: src/crawler-map.cls.php:371
msgid "No valid sitemap parsed for crawler."
msgstr ""

#: src/crawler-map.cls.php:376
msgid "Sitemap created successfully: %d items"
msgstr ""

#: src/crawler.cls.php:144
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr ""

#: src/crawler.cls.php:229
msgid "Started async crawling"
msgstr ""

#: src/crawler.cls.php:1216
msgid "Guest"
msgstr ""

#: src/crawler.cls.php:1387
msgid "Manually added to blocklist"
msgstr ""

#: src/crawler.cls.php:1390
msgid "Previously existed in blocklist"
msgstr ""

#: src/data.cls.php:220
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr ""

#: src/data.upgrade.func.php:231
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr ""

#: src/data.upgrade.func.php:235
#: src/lang.cls.php:147
msgid "JS Combine"
msgstr ""

#: src/data.upgrade.func.php:236
msgid "JS Defer"
msgstr ""

#: src/data.upgrade.func.php:238
msgid "Click here to settings"
msgstr ""

#: src/db-optm.cls.php:143
msgid "Clean all successfully."
msgstr ""

#: src/db-optm.cls.php:200
msgid "Clean post revisions successfully."
msgstr ""

#: src/db-optm.cls.php:204
msgid "Clean orphaned post meta successfully."
msgstr ""

#: src/db-optm.cls.php:208
msgid "Clean auto drafts successfully."
msgstr ""

#: src/db-optm.cls.php:212
msgid "Clean trashed posts and pages successfully."
msgstr ""

#: src/db-optm.cls.php:216
msgid "Clean spam comments successfully."
msgstr ""

#: src/db-optm.cls.php:220
msgid "Clean trashed comments successfully."
msgstr ""

#: src/db-optm.cls.php:224
msgid "Clean trackbacks and pingbacks successfully."
msgstr ""

#: src/db-optm.cls.php:228
msgid "Clean expired transients successfully."
msgstr ""

#: src/db-optm.cls.php:232
msgid "Clean all transients successfully."
msgstr ""

#: src/db-optm.cls.php:242
msgid "Optimized all tables."
msgstr ""

#: src/db-optm.cls.php:292
msgid "Converted to InnoDB successfully."
msgstr ""

#: src/doc.cls.php:39
msgid "This setting is %1$s for certain qualifying requests due to %2$s!"
msgstr ""

#: src/doc.cls.php:55
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr ""

#: src/doc.cls.php:66
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr ""

#: src/doc.cls.php:71
msgid "Please see %s for more details."
msgstr ""

#: src/doc.cls.php:88
#: src/doc.cls.php:140
#: tpl/dash/dashboard.tpl.php:186
#: tpl/dash/dashboard.tpl.php:845
#: tpl/general/online.tpl.php:81
#: tpl/general/online.tpl.php:93
#: tpl/general/online.tpl.php:109
#: tpl/general/online.tpl.php:114
#: tpl/img_optm/summary.tpl.php:59
#: tpl/inc/check_cache_disabled.php:46
msgid "Learn More"
msgstr ""

#: src/doc.cls.php:124
msgid "Both full and partial strings can be used."
msgstr ""

#: src/doc.cls.php:126
msgid "Both full URLs and partial strings can be used."
msgstr ""

#: src/doc.cls.php:138
msgid "This setting will edit the .htaccess file."
msgstr ""

#: src/doc.cls.php:153
msgid "For online services to work correctly, you must allowlist all %s server IPs."
msgstr ""

#: src/doc.cls.php:154
msgid "Before generating key, please verify all IPs on this list are allowlisted"
msgstr ""

#: src/doc.cls.php:155
msgid "Current Online Server IPs"
msgstr ""

#: src/doc.cls.php:168
msgid "The queue is processed asynchronously. It may take time."
msgstr ""

#: src/error.cls.php:45
msgid "You will need to finish %s setup to use the online services."
msgstr ""

#: src/error.cls.php:46
#: tpl/crawler/settings.tpl.php:123
#: tpl/crawler/settings.tpl.php:144
#: tpl/crawler/summary.tpl.php:218
msgid "Click here to set."
msgstr ""

#: src/error.cls.php:50
msgid "You have used all of your daily quota for today."
msgstr ""

#: src/error.cls.php:55
#: src/error.cls.php:68
msgid "Learn more or purchase additional quota."
msgstr ""

#: src/error.cls.php:63
msgid "You have used all of your quota left for current service this month."
msgstr ""

#: src/error.cls.php:76
msgid "You have too many requested images, please try again in a few minutes."
msgstr ""

#: src/error.cls.php:80
msgid "You have images waiting to be pulled. Please wait for the automatic pull to complete, or pull them down manually now."
msgstr ""

#: src/error.cls.php:84
msgid "The image list is empty."
msgstr ""

#: src/error.cls.php:88
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr ""

#: src/error.cls.php:92
msgid "There is proceeding queue not pulled yet."
msgstr ""

#: src/error.cls.php:97
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr ""

#: src/error.cls.php:103
msgid "The site is not a valid alias on QUIC.cloud."
msgstr ""

#: src/error.cls.php:107
msgid "The site is not registered on QUIC.cloud."
msgstr ""

#: src/error.cls.php:111
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr ""

#: src/error.cls.php:115
msgid "The current server is under heavy load."
msgstr ""

#: src/error.cls.php:119
msgid "Online node needs to be redetected."
msgstr ""

#: src/error.cls.php:123
msgid "Credits are not enough to proceed the current request."
msgstr ""

#: src/error.cls.php:127
#: src/error.cls.php:151
msgid "%s file not writable."
msgstr ""

#: src/error.cls.php:135
msgid "Could not find %1$s in %2$s."
msgstr ""

#: src/error.cls.php:139
msgid "Invalid login cookie. Please check the %s file."
msgstr ""

#: src/error.cls.php:143
msgid "Failed to back up %s file, aborted changes."
msgstr ""

#: src/error.cls.php:147
msgid "%s file not readable."
msgstr ""

#: src/error.cls.php:155
msgid "Failed to get %s file contents."
msgstr ""

#: src/error.cls.php:159
msgid "Failed to create table %1$s! SQL: %2$s."
msgstr ""

#: src/error.cls.php:163
msgid "Crawler disabled by the server admin."
msgstr ""

#: src/error.cls.php:167
msgid "Previous request too recent. Please try again later."
msgstr ""

#: src/error.cls.php:172
msgid "Previous request too recent. Please try again after %s."
msgstr ""

#: src/error.cls.php:178
msgid "Your application is waiting for approval."
msgstr ""

#: src/error.cls.php:182
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr ""

#: src/error.cls.php:186
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr ""

#: src/error.cls.php:191
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr ""

#: src/error.cls.php:196
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr ""

#: src/error.cls.php:200
msgid "You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible."
msgstr ""

#: src/error.cls.php:207
msgid "Unknown error"
msgstr ""

#: src/file.cls.php:132
msgid "Filename is empty!"
msgstr ""

#: src/file.cls.php:141
msgid "Folder does not exist: %s"
msgstr ""

#: src/file.cls.php:153
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr ""

#: src/file.cls.php:161
msgid "Folder is not writable: %s."
msgstr ""

#: src/file.cls.php:167
#: src/file.cls.php:171
msgid "File %s is not writable."
msgstr ""

#: src/file.cls.php:178
msgid "Failed to write to %s."
msgstr ""

#: src/gui.cls.php:82
msgid "%1$s %2$s files left in queue"
msgstr ""

#: src/gui.cls.php:83
#: tpl/inc/modal.deactivation.php:77
msgid "Cancel"
msgstr ""

#: src/gui.cls.php:470
#: src/gui.cls.php:485
msgid "Purge this page"
msgstr ""

#: src/gui.cls.php:494
msgid "Mark this page as "
msgstr ""

#: src/gui.cls.php:506
msgid "Forced cacheable"
msgstr ""

#: src/gui.cls.php:517
msgid "Non cacheable"
msgstr ""

#: src/gui.cls.php:528
msgid "Private cache"
msgstr ""

#: src/gui.cls.php:539
msgid "No optimization"
msgstr ""

#: src/gui.cls.php:547
msgid "More settings"
msgstr ""

#: src/gui.cls.php:554
#: src/gui.cls.php:562
#: src/gui.cls.php:570
#: src/gui.cls.php:579
#: src/gui.cls.php:589
#: src/gui.cls.php:599
#: src/gui.cls.php:609
#: src/gui.cls.php:619
#: src/gui.cls.php:628
#: src/gui.cls.php:638
#: src/gui.cls.php:648
#: src/gui.cls.php:736
#: src/gui.cls.php:744
#: src/gui.cls.php:752
#: src/gui.cls.php:761
#: src/gui.cls.php:771
#: src/gui.cls.php:781
#: src/gui.cls.php:791
#: src/gui.cls.php:801
#: src/gui.cls.php:810
#: src/gui.cls.php:820
#: src/gui.cls.php:830
#: tpl/page_optm/settings_media.tpl.php:139
#: tpl/toolbox/purge.tpl.php:40
#: tpl/toolbox/purge.tpl.php:47
#: tpl/toolbox/purge.tpl.php:55
#: tpl/toolbox/purge.tpl.php:64
#: tpl/toolbox/purge.tpl.php:73
#: tpl/toolbox/purge.tpl.php:82
#: tpl/toolbox/purge.tpl.php:91
#: tpl/toolbox/purge.tpl.php:100
#: tpl/toolbox/purge.tpl.php:109
#: tpl/toolbox/purge.tpl.php:117
msgid "Purge All"
msgstr ""

#: src/gui.cls.php:562
#: src/gui.cls.php:691
#: src/gui.cls.php:744
msgid "LSCache"
msgstr ""

#: src/gui.cls.php:570
#: src/gui.cls.php:752
#: tpl/toolbox/purge.tpl.php:47
msgid "CSS/JS Cache"
msgstr ""

#: src/gui.cls.php:579
#: src/gui.cls.php:761
#: tpl/cdn/cf.tpl.php:96
#: tpl/cdn/entry.tpl.php:15
msgid "Cloudflare"
msgstr ""

#: src/gui.cls.php:589
#: src/gui.cls.php:771
#: src/lang.cls.php:113
#: tpl/dash/dashboard.tpl.php:60
#: tpl/dash/dashboard.tpl.php:603
#: tpl/toolbox/purge.tpl.php:55
msgid "Object Cache"
msgstr ""

#: src/gui.cls.php:599
#: src/gui.cls.php:781
#: tpl/toolbox/purge.tpl.php:64
msgid "Opcode Cache"
msgstr ""

#: src/gui.cls.php:628
#: src/gui.cls.php:810
#: tpl/toolbox/purge.tpl.php:91
msgid "Localized Resources"
msgstr ""

#: src/gui.cls.php:638
#: src/gui.cls.php:820
#: tpl/page_optm/settings_media.tpl.php:139
#: tpl/toolbox/purge.tpl.php:100
msgid "LQIP Cache"
msgstr ""

#: src/gui.cls.php:648
#: src/gui.cls.php:830
#: src/lang.cls.php:180
#: tpl/presets/standard.tpl.php:49
#: tpl/toolbox/purge.tpl.php:109
msgid "Gravatar Cache"
msgstr ""

#: src/gui.cls.php:681
msgid "Enable All Features"
msgstr ""

#: src/gui.cls.php:691
msgid "LiteSpeed Cache Purge All"
msgstr ""

#: src/gui.cls.php:710
#: tpl/db_optm/entry.tpl.php:13
msgid "Manage"
msgstr ""

#: src/gui.cls.php:849
#: tpl/img_optm/summary.tpl.php:176
msgid "Remove all previous unfinished image optimization requests."
msgstr ""

#: src/gui.cls.php:850
#: tpl/img_optm/summary.tpl.php:178
msgid "Clean Up Unfinished Data"
msgstr ""

#: src/gui.cls.php:868
msgid "Install %s"
msgstr ""

#: src/gui.cls.php:869
msgid "Install Now"
msgstr ""

#: src/gui.cls.php:888
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr ""

#: src/gui.cls.php:890
msgid "View %1$s version %2$s details"
msgstr ""

#: src/gui.cls.php:893
msgid "Update %s now"
msgstr ""

#: src/htaccess.cls.php:328
msgid "Mobile Agent Rules"
msgstr ""

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr ""

#: src/img-optm.cls.php:343
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr ""

#: src/img-optm.cls.php:604
msgid "Cleared %1$s invalid images."
msgstr ""

#: src/img-optm.cls.php:661
msgid "No valid image found in the current request."
msgstr ""

#: src/img-optm.cls.php:686
msgid "No valid image found by Cloud server in the current request."
msgstr ""

#: src/img-optm.cls.php:876
msgid "Started async image optimization request"
msgstr ""

#: src/img-optm.cls.php:962
msgid "Pull Cron is running"
msgstr ""

#: src/img-optm.cls.php:1072
msgid "Some optimized image file(s) has expired and was cleared."
msgstr ""

#: src/img-optm.cls.php:1087
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr ""

#: src/img-optm.cls.php:1116
msgid "Pulled AVIF image md5 does not match the notified AVIF image md5."
msgstr ""

#: src/img-optm.cls.php:1151
msgid "One or more pulled images does not match with the notified image md5"
msgstr ""

#: src/img-optm.cls.php:1343
msgid "Cleaned up unfinished data successfully."
msgstr ""

#: src/img-optm.cls.php:1360
msgid "Reset image optimization counter successfully."
msgstr ""

#: src/img-optm.cls.php:1444
msgid "Destroy all optimization data successfully."
msgstr ""

#: src/img-optm.cls.php:1509
#: src/img-optm.cls.php:1571
msgid "Rescanned successfully."
msgstr ""

#: src/img-optm.cls.php:1571
msgid "Rescanned %d images successfully."
msgstr ""

#: src/img-optm.cls.php:1637
msgid "Calculated backups successfully."
msgstr ""

#: src/img-optm.cls.php:1729
msgid "Removed backups successfully."
msgstr ""

#: src/img-optm.cls.php:1876
msgid "Switched images successfully."
msgstr ""

#: src/img-optm.cls.php:1973
#: src/img-optm.cls.php:2033
msgid "Switched to optimized file successfully."
msgstr ""

#: src/img-optm.cls.php:1992
msgid "Disabled WebP file successfully."
msgstr ""

#: src/img-optm.cls.php:1997
msgid "Enabled WebP file successfully."
msgstr ""

#: src/img-optm.cls.php:2006
msgid "Disabled AVIF file successfully."
msgstr ""

#: src/img-optm.cls.php:2011
msgid "Enabled AVIF file successfully."
msgstr ""

#: src/img-optm.cls.php:2027
msgid "Restored original file successfully."
msgstr ""

#: src/img-optm.cls.php:2083
msgid "Reset the optimized data successfully."
msgstr ""

#: src/import.cls.php:80
msgid "Import failed due to file error."
msgstr ""

#: src/import.cls.php:133
msgid "Imported setting file %s successfully."
msgstr ""

#: src/import.cls.php:155
msgid "Reset successfully."
msgstr ""

#: src/lang.cls.php:25
msgid "Images not requested"
msgstr ""

#: src/lang.cls.php:26
msgid "Images ready to request"
msgstr ""

#: src/lang.cls.php:27
#: tpl/dash/dashboard.tpl.php:551
msgid "Images requested"
msgstr ""

#: src/lang.cls.php:28
#: tpl/dash/dashboard.tpl.php:560
msgid "Images notified to pull"
msgstr ""

#: src/lang.cls.php:29
msgid "Images optimized and pulled"
msgstr ""

#: src/lang.cls.php:47
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict."
msgstr ""

#: src/lang.cls.php:52
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain."
msgstr ""

#: src/lang.cls.php:54
msgid "Alias is in use by another QUIC.cloud account."
msgstr ""

#: src/lang.cls.php:87
msgid "Guest Mode User Agents"
msgstr ""

#: src/lang.cls.php:88
msgid "Guest Mode IPs"
msgstr ""

#: src/lang.cls.php:90
msgid "Enable Cache"
msgstr ""

#: src/lang.cls.php:91
#: tpl/dash/dashboard.tpl.php:61
#: tpl/dash/dashboard.tpl.php:604
#: tpl/presets/standard.tpl.php:21
msgid "Browser Cache"
msgstr ""

#: src/lang.cls.php:92
msgid "Default Public Cache TTL"
msgstr ""

#: src/lang.cls.php:93
msgid "Default Private Cache TTL"
msgstr ""

#: src/lang.cls.php:94
msgid "Default Front Page TTL"
msgstr ""

#: src/lang.cls.php:95
msgid "Default Feed TTL"
msgstr ""

#: src/lang.cls.php:96
msgid "Default REST TTL"
msgstr ""

#: src/lang.cls.php:97
msgid "Default HTTP Status Code Page TTL"
msgstr ""

#: src/lang.cls.php:98
msgid "Browser Cache TTL"
msgstr ""

#: src/lang.cls.php:99
msgid "AJAX Cache TTL"
msgstr ""

#: src/lang.cls.php:100
msgid "Automatically Upgrade"
msgstr ""

#: src/lang.cls.php:101
msgid "Guest Mode"
msgstr ""

#: src/lang.cls.php:102
msgid "Guest Optimization"
msgstr ""

#: src/lang.cls.php:103
msgid "Notifications"
msgstr ""

#: src/lang.cls.php:104
msgid "Cache Logged-in Users"
msgstr ""

#: src/lang.cls.php:105
msgid "Cache Commenters"
msgstr ""

#: src/lang.cls.php:106
msgid "Cache REST API"
msgstr ""

#: src/lang.cls.php:107
msgid "Cache Login Page"
msgstr ""

#: src/lang.cls.php:108
#: tpl/cache/settings_inc.cache_mobile.tpl.php:90
msgid "Cache Mobile"
msgstr ""

#: src/lang.cls.php:109
#: tpl/cache/settings_inc.cache_mobile.tpl.php:92
msgid "List of Mobile User Agents"
msgstr ""

#: src/lang.cls.php:110
msgid "Private Cached URIs"
msgstr ""

#: src/lang.cls.php:111
msgid "Drop Query String"
msgstr ""

#: src/lang.cls.php:114
msgid "Method"
msgstr ""

#: src/lang.cls.php:115
msgid "Host"
msgstr ""

#: src/lang.cls.php:116
msgid "Port"
msgstr ""

#: src/lang.cls.php:117
msgid "Default Object Lifetime"
msgstr ""

#: src/lang.cls.php:118
msgid "Username"
msgstr ""

#: src/lang.cls.php:119
msgid "Password"
msgstr ""

#: src/lang.cls.php:120
msgid "Redis Database ID"
msgstr ""

#: src/lang.cls.php:121
msgid "Global Groups"
msgstr ""

#: src/lang.cls.php:122
msgid "Do Not Cache Groups"
msgstr ""

#: src/lang.cls.php:123
msgid "Persistent Connection"
msgstr ""

#: src/lang.cls.php:124
msgid "Cache WP-Admin"
msgstr ""

#: src/lang.cls.php:125
msgid "Store Transients"
msgstr ""

#: src/lang.cls.php:127
msgid "Purge All On Upgrade"
msgstr ""

#: src/lang.cls.php:128
msgid "Serve Stale"
msgstr ""

#: src/lang.cls.php:129
#: tpl/cache/settings-purge.tpl.php:131
msgid "Scheduled Purge URLs"
msgstr ""

#: src/lang.cls.php:130
#: tpl/cache/settings-purge.tpl.php:106
msgid "Scheduled Purge Time"
msgstr ""

#: src/lang.cls.php:131
msgid "Force Cache URIs"
msgstr ""

#: src/lang.cls.php:132
msgid "Force Public Cache URIs"
msgstr ""

#: src/lang.cls.php:133
msgid "Do Not Cache URIs"
msgstr ""

#: src/lang.cls.php:134
msgid "Do Not Cache Query Strings"
msgstr ""

#: src/lang.cls.php:135
msgid "Do Not Cache Categories"
msgstr ""

#: src/lang.cls.php:136
msgid "Do Not Cache Tags"
msgstr ""

#: src/lang.cls.php:137
msgid "Do Not Cache Roles"
msgstr ""

#: src/lang.cls.php:138
msgid "CSS Minify"
msgstr ""

#: src/lang.cls.php:139
msgid "CSS Combine"
msgstr ""

#: src/lang.cls.php:140
msgid "CSS Combine External and Inline"
msgstr ""

#: src/lang.cls.php:141
msgid "Generate UCSS"
msgstr ""

#: src/lang.cls.php:142
msgid "UCSS Inline"
msgstr ""

#: src/lang.cls.php:143
msgid "UCSS Selector Allowlist"
msgstr ""

#: src/lang.cls.php:144
msgid "UCSS File Excludes and Inline"
msgstr ""

#: src/lang.cls.php:145
msgid "UCSS URI Excludes"
msgstr ""

#: src/lang.cls.php:146
msgid "JS Minify"
msgstr ""

#: src/lang.cls.php:148
msgid "JS Combine External and Inline"
msgstr ""

#: src/lang.cls.php:149
msgid "HTML Minify"
msgstr ""

#: src/lang.cls.php:150
msgid "HTML Lazy Load Selectors"
msgstr ""

#: src/lang.cls.php:151
msgid "HTML Keep Comments"
msgstr ""

#: src/lang.cls.php:152
#: tpl/page_optm/settings_tuning_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr ""

#: src/lang.cls.php:153
msgid "CCSS Per URL"
msgstr ""

#: src/lang.cls.php:154
msgid "Inline CSS Async Lib"
msgstr ""

#: src/lang.cls.php:155
#: tpl/presets/standard.tpl.php:46
msgid "Font Display Optimization"
msgstr ""

#: src/lang.cls.php:156
msgid "Load JS Deferred"
msgstr ""

#: src/lang.cls.php:157
msgid "Localize Resources"
msgstr ""

#: src/lang.cls.php:158
msgid "Localization Files"
msgstr ""

#: src/lang.cls.php:159
msgid "DNS Prefetch"
msgstr ""

#: src/lang.cls.php:160
msgid "DNS Prefetch Control"
msgstr ""

#: src/lang.cls.php:161
msgid "DNS Preconnect"
msgstr ""

#: src/lang.cls.php:162
msgid "CSS Excludes"
msgstr ""

#: src/lang.cls.php:163
msgid "JS Delayed Includes"
msgstr ""

#: src/lang.cls.php:164
msgid "JS Excludes"
msgstr ""

#: src/lang.cls.php:165
msgid "Remove Query Strings"
msgstr ""

#: src/lang.cls.php:166
msgid "Load Google Fonts Asynchronously"
msgstr ""

#: src/lang.cls.php:167
msgid "Remove Google Fonts"
msgstr ""

#: src/lang.cls.php:168
msgid "Critical CSS Rules"
msgstr ""

#: src/lang.cls.php:169
msgid "Separate CCSS Cache Post Types"
msgstr ""

#: src/lang.cls.php:170
msgid "Separate CCSS Cache URIs"
msgstr ""

#: src/lang.cls.php:171
msgid "CCSS Selector Allowlist"
msgstr ""

#: src/lang.cls.php:172
msgid "JS Deferred / Delayed Excludes"
msgstr ""

#: src/lang.cls.php:173
msgid "Guest Mode JS Excludes"
msgstr ""

#: src/lang.cls.php:174
#: tpl/presets/standard.tpl.php:51
msgid "Remove WordPress Emoji"
msgstr ""

#: src/lang.cls.php:175
#: tpl/presets/standard.tpl.php:52
msgid "Remove Noscript Tags"
msgstr ""

#: src/lang.cls.php:176
msgid "URI Excludes"
msgstr ""

#: src/lang.cls.php:177
msgid "Optimize for Guests Only"
msgstr ""

#: src/lang.cls.php:178
msgid "Role Excludes"
msgstr ""

#: src/lang.cls.php:181
msgid "Gravatar Cache Cron"
msgstr ""

#: src/lang.cls.php:182
msgid "Gravatar Cache TTL"
msgstr ""

#: src/lang.cls.php:184
msgid "Lazy Load Images"
msgstr ""

#: src/lang.cls.php:185
msgid "Lazy Load Image Excludes"
msgstr ""

#: src/lang.cls.php:186
msgid "Lazy Load Image Class Name Excludes"
msgstr ""

#: src/lang.cls.php:187
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr ""

#: src/lang.cls.php:188
msgid "Lazy Load Iframe Class Name Excludes"
msgstr ""

#: src/lang.cls.php:189
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr ""

#: src/lang.cls.php:190
msgid "Lazy Load URI Excludes"
msgstr ""

#: src/lang.cls.php:191
msgid "LQIP Excludes"
msgstr ""

#: src/lang.cls.php:192
msgid "Basic Image Placeholder"
msgstr ""

#: src/lang.cls.php:193
msgid "Responsive Placeholder"
msgstr ""

#: src/lang.cls.php:194
msgid "Responsive Placeholder Color"
msgstr ""

#: src/lang.cls.php:195
msgid "Responsive Placeholder SVG"
msgstr ""

#: src/lang.cls.php:196
msgid "LQIP Cloud Generator"
msgstr ""

#: src/lang.cls.php:197
msgid "LQIP Quality"
msgstr ""

#: src/lang.cls.php:198
msgid "LQIP Minimum Dimensions"
msgstr ""

#: src/lang.cls.php:200
msgid "Generate LQIP In Background"
msgstr ""

#: src/lang.cls.php:201
msgid "Lazy Load Iframes"
msgstr ""

#: src/lang.cls.php:202
msgid "Add Missing Sizes"
msgstr ""

#: src/lang.cls.php:203
#: src/metabox.cls.php:33
#: src/metabox.cls.php:34
#: tpl/page_optm/settings_vpi.tpl.php:23
msgid "Viewport Images"
msgstr ""

#: src/lang.cls.php:204
msgid "Viewport Images Cron"
msgstr ""

#: src/lang.cls.php:206
msgid "Auto Request Cron"
msgstr ""

#: src/lang.cls.php:207
msgid "Optimize Original Images"
msgstr ""

#: src/lang.cls.php:208
msgid "Remove Original Backups"
msgstr ""

#: src/lang.cls.php:209
msgid "Next-Gen Image Format"
msgstr ""

#: src/lang.cls.php:210
msgid "Optimize Losslessly"
msgstr ""

#: src/lang.cls.php:211
msgid "Preserve EXIF/XMP data"
msgstr ""

#: src/lang.cls.php:212
msgid "WebP/AVIF Attribute To Replace"
msgstr ""

#: src/lang.cls.php:213
msgid "WebP/AVIF For Extra srcset"
msgstr ""

#: src/lang.cls.php:214
msgid "WordPress Image Quality Control"
msgstr ""

#: src/lang.cls.php:215
#: tpl/esi_widget_edit.php:43
msgid "Enable ESI"
msgstr ""

#: src/lang.cls.php:216
msgid "Cache Admin Bar"
msgstr ""

#: src/lang.cls.php:217
msgid "Cache Comment Form"
msgstr ""

#: src/lang.cls.php:218
msgid "ESI Nonces"
msgstr ""

#: src/lang.cls.php:219
#: tpl/page_optm/settings_css.tpl.php:138
#: tpl/page_optm/settings_css.tpl.php:275
#: tpl/page_optm/settings_vpi.tpl.php:88
msgid "Vary Group"
msgstr ""

#: src/lang.cls.php:220
msgid "Purge All Hooks"
msgstr ""

#: src/lang.cls.php:221
msgid "Improve HTTP/HTTPS Compatibility"
msgstr ""

#: src/lang.cls.php:222
msgid "Instant Click"
msgstr ""

#: src/lang.cls.php:223
msgid "Do Not Cache Cookies"
msgstr ""

#: src/lang.cls.php:224
msgid "Do Not Cache User Agents"
msgstr ""

#: src/lang.cls.php:225
msgid "Login Cookie"
msgstr ""

#: src/lang.cls.php:226
msgid "Vary Cookies"
msgstr ""

#: src/lang.cls.php:228
msgid "Frontend Heartbeat Control"
msgstr ""

#: src/lang.cls.php:229
msgid "Frontend Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:230
msgid "Backend Heartbeat Control"
msgstr ""

#: src/lang.cls.php:231
msgid "Backend Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:232
msgid "Editor Heartbeat"
msgstr ""

#: src/lang.cls.php:233
msgid "Editor Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:235
msgid "Use CDN Mapping"
msgstr ""

#: src/lang.cls.php:236
msgid "CDN URL"
msgstr ""

#: src/lang.cls.php:237
msgid "Include Images"
msgstr ""

#: src/lang.cls.php:238
msgid "Include CSS"
msgstr ""

#: src/lang.cls.php:239
msgid "Include JS"
msgstr ""

#: src/lang.cls.php:240
#: tpl/cdn/other.tpl.php:113
msgid "Include File Types"
msgstr ""

#: src/lang.cls.php:241
msgid "HTML Attribute To Replace"
msgstr ""

#: src/lang.cls.php:242
msgid "Original URLs"
msgstr ""

#: src/lang.cls.php:243
msgid "Included Directories"
msgstr ""

#: src/lang.cls.php:244
msgid "Exclude Path"
msgstr ""

#: src/lang.cls.php:245
msgid "Cloudflare API"
msgstr ""

#: src/lang.cls.php:246
msgid "Clear Cloudflare cache"
msgstr ""

#: src/lang.cls.php:249
msgid "Crawl Interval"
msgstr ""

#: src/lang.cls.php:250
msgid "Server Load Limit"
msgstr ""

#: src/lang.cls.php:251
msgid "Role Simulation"
msgstr ""

#: src/lang.cls.php:252
msgid "Cookie Simulation"
msgstr ""

#: src/lang.cls.php:253
msgid "Custom Sitemap"
msgstr ""

#: src/lang.cls.php:255
msgid "Disable All Features"
msgstr ""

#: src/lang.cls.php:256
#: tpl/toolbox/log_viewer.tpl.php:18
msgid "Debug Log"
msgstr ""

#: src/lang.cls.php:257
msgid "Admin IPs"
msgstr ""

#: src/lang.cls.php:258
msgid "Debug Level"
msgstr ""

#: src/lang.cls.php:259
msgid "Log File Size Limit"
msgstr ""

#: src/lang.cls.php:260
msgid "Collapse Query Strings"
msgstr ""

#: src/lang.cls.php:261
msgid "Debug URI Includes"
msgstr ""

#: src/lang.cls.php:262
msgid "Debug URI Excludes"
msgstr ""

#: src/lang.cls.php:263
msgid "Debug String Excludes"
msgstr ""

#: src/lang.cls.php:265
msgid "Revisions Max Number"
msgstr ""

#: src/lang.cls.php:266
msgid "Revisions Max Age"
msgstr ""

#: src/media.cls.php:258
msgid "LiteSpeed Optimization"
msgstr ""

#: src/media.cls.php:307
#: src/media.cls.php:330
#: src/media.cls.php:356
#: src/media.cls.php:389
msgid "(optm)"
msgstr ""

#: src/media.cls.php:308
msgid "Currently using optimized version of file."
msgstr ""

#: src/media.cls.php:308
#: src/media.cls.php:360
msgid "Click to switch to original (unoptimized) version."
msgstr ""

#: src/media.cls.php:311
#: src/media.cls.php:363
msgid "(non-optm)"
msgstr ""

#: src/media.cls.php:312
msgid "Currently using original (unoptimized) version of file."
msgstr ""

#: src/media.cls.php:312
#: src/media.cls.php:367
msgid "Click to switch to optimized version."
msgstr ""

#: src/media.cls.php:318
msgid "Original file reduced by %1$s (%2$s)"
msgstr ""

#: src/media.cls.php:322
msgid "Orig saved %s"
msgstr ""

#: src/media.cls.php:329
#: src/media.cls.php:387
msgid "Using optimized version of file. "
msgstr ""

#: src/media.cls.php:329
msgid "No backup of original file exists."
msgstr ""

#: src/media.cls.php:334
msgid "Congratulation! Your file was already optimized"
msgstr ""

#: src/media.cls.php:335
msgid "Orig %s"
msgstr ""

#: src/media.cls.php:335
msgid "(no savings)"
msgstr ""

#: src/media.cls.php:337
msgid "Orig"
msgstr ""

#: src/media.cls.php:358
msgid "Currently using optimized version of AVIF file."
msgstr ""

#: src/media.cls.php:359
msgid "Currently using optimized version of WebP file."
msgstr ""

#: src/media.cls.php:365
msgid "Currently using original (unoptimized) version of AVIF file."
msgstr ""

#: src/media.cls.php:366
msgid "Currently using original (unoptimized) version of WebP file."
msgstr ""

#: src/media.cls.php:374
msgid "AVIF file reduced by %1$s (%2$s)"
msgstr ""

#: src/media.cls.php:374
msgid "WebP file reduced by %1$s (%2$s)"
msgstr ""

#: src/media.cls.php:380
msgid "AVIF saved %s"
msgstr ""

#: src/media.cls.php:380
msgid "WebP saved %s"
msgstr ""

#: src/media.cls.php:388
msgid "No backup of unoptimized AVIF file exists."
msgstr ""

#: src/media.cls.php:388
msgid "No backup of unoptimized WebP file exists."
msgstr ""

#: src/media.cls.php:403
msgid "Restore from backup"
msgstr ""

#: src/metabox.cls.php:30
msgid "Disable Cache"
msgstr ""

#: src/metabox.cls.php:31
msgid "Disable Image Lazyload"
msgstr ""

#: src/metabox.cls.php:32
msgid "Disable VPI"
msgstr ""

#: src/metabox.cls.php:34
msgid "Mobile"
msgstr ""

#: src/object-cache.cls.php:485
msgid "Redis encountered a fatal error: %1$s (code: %2$d)"
msgstr ""

#: src/placeholder.cls.php:84
msgid "LQIP"
msgstr ""

#: src/placeholder.cls.php:141
msgid "LQIP image preview for size %s"
msgstr ""

#: src/purge.cls.php:212
msgid "Purged all caches successfully."
msgstr ""

#: src/purge.cls.php:234
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr ""

#: src/purge.cls.php:253
msgid "Cleaned all Critical CSS files."
msgstr ""

#: src/purge.cls.php:272
msgid "Cleaned all Unique CSS files."
msgstr ""

#: src/purge.cls.php:310
msgid "Cleaned all LQIP files."
msgstr ""

#: src/purge.cls.php:327
msgid "Cleaned all Gravatar files."
msgstr ""

#: src/purge.cls.php:344
msgid "Cleaned all localized resource entries."
msgstr ""

#: src/purge.cls.php:378
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr ""

#: src/purge.cls.php:395
msgid "OPcache is not enabled."
msgstr ""

#: src/purge.cls.php:406
msgid "OPcache is restricted by %s setting."
msgstr ""

#: src/purge.cls.php:418
msgid "Reset the OPcache failed."
msgstr ""

#: src/purge.cls.php:431
msgid "Reset the entire OPcache successfully."
msgstr ""

#: src/purge.cls.php:459
msgid "Object cache is not enabled."
msgstr ""

#: src/purge.cls.php:472
msgid "Purge all object caches successfully."
msgstr ""

#: src/purge.cls.php:683
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr ""

#: src/purge.cls.php:697
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr ""

#: src/purge.cls.php:717
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr ""

#: src/purge.cls.php:744
msgid "Purge category %s"
msgstr ""

#: src/purge.cls.php:773
msgid "Purge tag %s"
msgstr ""

#: src/purge.cls.php:807
msgid "Purge url %s"
msgstr ""

#: src/root.cls.php:197
msgid "All QUIC.cloud service queues have been cleared."
msgstr ""

#: src/task.cls.php:214
msgid "Every Minute"
msgstr ""

#: src/task.cls.php:233
msgid "LiteSpeed Crawler Cron"
msgstr ""

#: src/tool.cls.php:36
#: src/tool.cls.php:47
msgid "Failed to detect IP"
msgstr ""

#: src/utility.cls.php:228
msgid "right now"
msgstr ""

#: src/utility.cls.php:228
msgid "just now"
msgstr ""

#: src/utility.cls.php:231
msgid " %s ago"
msgstr ""

#: thirdparty/litespeed-check.cls.php:74
#: thirdparty/litespeed-check.cls.php:122
msgid "Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:17
msgid "WooCommerce Settings"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:22
#: tpl/cache/settings-advanced.tpl.php:21
#: tpl/cache/settings_inc.browser.tpl.php:23
#: tpl/toolbox/heartbeat.tpl.php:24
#: tpl/toolbox/report.tpl.php:46
msgid "NOTICE:"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:23
msgid "After verifying that the cache works in general, please test the cart."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:24
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:25
msgid "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Product Update Interval"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Purge product on changes to the quantity or stock status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Purge categories only when stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:39
msgid "Purge product and categories only when the stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:40
msgid "Purge product only when the stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:40
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:41
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:54
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Vary for Mini Cart"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:70
msgid "Generate a separate vary cache copy for the mini cart when the cart is not empty."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:71
msgid "If your theme does not use JS to update the mini cart, you must enable this option to display the correct cart contents."
msgstr ""

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr ""

#: tpl/banner/cloud_news.tpl.php:30
#: tpl/banner/cloud_news.tpl.php:41
msgid "Install"
msgstr ""

#: tpl/banner/cloud_news.tpl.php:51
#: tpl/banner/cloud_promo.tpl.php:73
msgid "Dismiss this notice"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:22
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:26
msgid "Spread the love and earn %s credits to use in our QUIC.cloud online services."
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:35
msgid "Send to twitter to get %s bonus"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:40
#: tpl/page_optm/settings_tuning_css.tpl.php:69
#: tpl/page_optm/settings_tuning_css.tpl.php:144
msgid "Learn more"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:45
msgid "Tweet preview"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:61
msgid "Tweet this"
msgstr ""

#: tpl/banner/new_version.php:58
msgid "New Version Available!"
msgstr ""

#: tpl/banner/new_version.php:66
msgid "New release %s is available now."
msgstr ""

#: tpl/banner/new_version.php:77
#: tpl/banner/new_version_dev.tpl.php:41
#: tpl/toolbox/beta_test.tpl.php:76
msgid "Upgrade"
msgstr ""

#: tpl/banner/new_version.php:87
msgid "Turn On Auto Upgrade"
msgstr ""

#: tpl/banner/new_version.php:93
msgid "Maybe Later"
msgstr ""

#: tpl/banner/new_version.php:113
#: tpl/banner/score.php:141
#: tpl/banner/slack.php:48
msgid "Dismiss this notice."
msgstr ""

#: tpl/banner/new_version_dev.tpl.php:22
msgid "New Developer Version Available!"
msgstr ""

#: tpl/banner/new_version_dev.tpl.php:30
msgid "New developer version %s is available now."
msgstr ""

#: tpl/banner/score.php:36
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr ""

#: tpl/banner/score.php:40
#: tpl/dash/dashboard.tpl.php:374
msgid "Page Load Time"
msgstr ""

#: tpl/banner/score.php:45
#: tpl/banner/score.php:79
#: tpl/dash/dashboard.tpl.php:394
#: tpl/dash/dashboard.tpl.php:470
msgid "Before"
msgstr ""

#: tpl/banner/score.php:53
#: tpl/banner/score.php:87
#: tpl/dash/dashboard.tpl.php:402
#: tpl/dash/dashboard.tpl.php:478
msgid "After"
msgstr ""

#: tpl/banner/score.php:62
#: tpl/banner/score.php:96
#: tpl/dash/dashboard.tpl.php:410
#: tpl/dash/dashboard.tpl.php:486
msgid "Improved by"
msgstr ""

#: tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:455
msgid "PageSpeed Score"
msgstr ""

#: tpl/banner/score.php:112
msgid "Sure I'd love to review!"
msgstr ""

#: tpl/banner/score.php:116
msgid "I've already left a review"
msgstr ""

#: tpl/banner/score.php:117
msgid "Maybe later"
msgstr ""

#: tpl/banner/score.php:121
msgid "Created with ❤️ by LiteSpeed team."
msgstr ""

#: tpl/banner/score.php:122
msgid "Support forum"
msgstr ""

#: tpl/banner/score.php:122
msgid "Submit a ticket"
msgstr ""

#: tpl/banner/slack.php:20
msgid "Welcome to LiteSpeed"
msgstr ""

#: tpl/banner/slack.php:24
msgid "Want to connect with other LiteSpeed users?"
msgstr ""

#. translators: %s: Link to LiteSpeed Slack community
#: tpl/banner/slack.php:28
msgid "Join the %s community."
msgstr ""

#: tpl/banner/slack.php:40
msgid "Join Us on Slack"
msgstr ""

#: tpl/cache/entry.tpl.php:17
#: tpl/cache/settings-ttl.tpl.php:15
msgid "TTL"
msgstr ""

#: tpl/cache/entry.tpl.php:18
#: tpl/cache/entry_network.tpl.php:17
#: tpl/toolbox/entry.tpl.php:16
#: tpl/toolbox/purge.tpl.php:141
msgid "Purge"
msgstr ""

#: tpl/cache/entry.tpl.php:19
#: tpl/cache/entry_network.tpl.php:18
msgid "Excludes"
msgstr ""

#: tpl/cache/entry.tpl.php:20
msgid "ESI"
msgstr ""

#: tpl/cache/entry.tpl.php:24
#: tpl/cache/entry_network.tpl.php:19
msgid "Object"
msgstr ""

#: tpl/cache/entry.tpl.php:25
#: tpl/cache/entry_network.tpl.php:20
msgid "Browser"
msgstr ""

#: tpl/cache/entry.tpl.php:28
#: tpl/cache/entry_network.tpl.php:21
#: tpl/toolbox/settings-debug.tpl.php:93
msgid "Advanced"
msgstr ""

#: tpl/cache/entry.tpl.php:50
msgid "LiteSpeed Cache Settings"
msgstr ""

#: tpl/cache/entry_network.tpl.php:27
msgid "LiteSpeed Cache Network Cache Settings"
msgstr ""

#: tpl/cache/more_settings_tip.tpl.php:22
#: tpl/cache/settings-excludes.tpl.php:71
#: tpl/cache/settings-excludes.tpl.php:104
#: tpl/cdn/other.tpl.php:79
#: tpl/crawler/settings.tpl.php:76
#: tpl/crawler/settings.tpl.php:86
msgid "NOTE"
msgstr ""

#. translators: %s: LiteSpeed Cache menu label
#: tpl/cache/more_settings_tip.tpl.php:27
msgid "More settings available under %s menu"
msgstr ""

#: tpl/cache/network_settings-advanced.tpl.php:17
#: tpl/cache/settings-advanced.tpl.php:16
msgid "Advanced Settings"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:17
#: tpl/cache/settings-cache.tpl.php:15
msgid "Cache Control Settings"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:24
msgid "Network Enable Cache"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:28
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:29
msgid "It is STRONGLY recommended that the compatibility with other plugins on a single/few sites is tested first."
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:30
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr ""

#: tpl/cache/network_settings-excludes.tpl.php:17
#: tpl/cache/settings-excludes.tpl.php:15
msgid "Exclude Settings"
msgstr ""

#: tpl/cache/network_settings-purge.tpl.php:17
#: tpl/cache/settings-purge.tpl.php:15
msgid "Purge Settings"
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:22
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:39
msgid "Specify an AJAX action in POST/GET and the number of seconds to cache that request, separated by a space."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:57
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:71
msgid "When a visitor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:76
msgid "This will generate extra requests to the server, which will increase server load."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:28
msgid "Use Network Admin Setting"
msgstr ""

#. translators: %s: Link tags
#: tpl/cache/settings-cache.tpl.php:36
msgid "Please visit the %sInformation%s page on how to test the cache."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:42
#: tpl/crawler/settings.tpl.php:113
#: tpl/crawler/settings.tpl.php:133
#: tpl/crawler/summary.tpl.php:208
#: tpl/page_optm/entry.tpl.php:42
msgid "NOTICE"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:42
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:45
msgid "The network admin setting can be overridden here."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:49
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:63
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:76
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:89
msgid "Cache requests made by WordPress REST API calls."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:102
msgid "Disabling this option may negatively affect performance."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:119
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:133
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:136
#: tpl/cache/settings-cache.tpl.php:161
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:139
#: tpl/cache/settings-cache.tpl.php:164
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:158
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:15
msgid "ESI Settings"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:20
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:21
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:22
msgid "WpW: Private Cache vs. Public Cache"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:26
msgid "You can turn shortcodes into ESI blocks."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:29
msgid "Replace %1$s with %2$s."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:37
msgid "ESI sample for developers"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:45
#: tpl/cdn/cf.tpl.php:100
#: tpl/crawler/summary.tpl.php:60
#: tpl/inc/check_cache_disabled.php:38
#: tpl/inc/check_if_network_disable_all.php:28
#: tpl/page_optm/settings_css.tpl.php:76
#: tpl/page_optm/settings_css.tpl.php:209
#: tpl/page_optm/settings_localization.tpl.php:21
msgid "WARNING"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:46
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:59
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:72
msgid "Cache the built-in Admin Bar ESI block."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:85
msgid "Cache the built-in Comment Form ESI block."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:102
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:103
msgid "The latest data file is"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:106
#: tpl/page_optm/settings_media_exc.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:49
#: tpl/page_optm/settings_tuning.tpl.php:69
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_tuning.tpl.php:111
#: tpl/page_optm/settings_tuning.tpl.php:130
#: tpl/page_optm/settings_tuning_css.tpl.php:36
#: tpl/page_optm/settings_tuning_css.tpl.php:97
msgid "Filter %s is supported."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:112
msgid "The above nonces will be converted to ESI automatically."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:114
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:117
#: tpl/cache/settings-purge.tpl.php:111
#: tpl/cdn/other.tpl.php:169
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:145
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:30
msgid "Paths containing these strings will not be cached."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:32
#: tpl/page_optm/settings_tuning_css.tpl.php:78
#: tpl/page_optm/settings_tuning_css.tpl.php:153
msgid "Predefined list will also be combined w/ the above settings"
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:45
msgid "Query strings containing these parameters will not be cached."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:46
msgid "For example, for %1$s, %2$s and %3$s can be used here."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:66
msgid "All categories are cached by default."
msgstr ""

#. translators: %s: "cookies"
#. translators: %s: "user agents"
#: tpl/cache/settings-excludes.tpl.php:67
#: tpl/cache/settings-excludes.tpl.php:100
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:27
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:27
msgid "To prevent %s from being cached, enter them here."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:67
msgid "categories"
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:73
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:99
msgid "All tags are cached by default."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:100
msgid "tags"
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:106
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:110
msgid "To exclude %1$s, insert %2$s."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:135
msgid "Selected roles will be excluded from cache."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:21
msgid "All pages"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:22
msgid "Front page"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:23
msgid "Home page"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:24
msgid "Pages"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:25
msgid "All pages with Recent Posts Widget"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:26
msgid "Author archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:27
msgid "Post type archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:28
msgid "Yearly archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:29
msgid "Monthly archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:30
msgid "Daily archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:31
msgid "Term archive (include category, tag, and tax)"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:50
msgid "Auto Purge Rules For Publish/Update"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:53
#: tpl/cache/settings-purge.tpl.php:90
#: tpl/cache/settings-purge.tpl.php:114
#: tpl/page_optm/settings_tuning_css.tpl.php:72
#: tpl/page_optm/settings_tuning_css.tpl.php:147
msgid "Note"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:55
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:56
msgid "Other checkboxes will be ignored."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:57
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:73
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:86
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:92
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:106
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:107
msgid "Both %1$s and %2$s are acceptable."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:116
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:131
msgid "Specify the time to purge the \"%s\" list."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:132
msgid "Current server time is %s."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:152
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:29
msgid "Specify how long, in seconds, public pages are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:44
msgid "Specify how long, in seconds, private pages are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:59
msgid "Specify how long, in seconds, the front page is cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:74
msgid "Specify how long, in seconds, feeds are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:75
#: tpl/cache/settings-ttl.tpl.php:90
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:89
msgid "Specify how long, in seconds, REST calls are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:111
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:17
msgid "Browser Cache Settings"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:25
msgid "OpenLiteSpeed users please check this"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:26
msgid "Setting Up Custom Headers"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:41
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr ""

#. translators: %s: Link tags
#: tpl/cache/settings_inc.browser.tpl.php:46
msgid "You can turn on browser caching in server admin too. %sLearn more about LiteSpeed browser cache settings%s."
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:63
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr ""

#. translators: %s: LiteSpeed Web Server version
#: tpl/cache/settings_inc.cache_dropquery.tpl.php:27
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr ""

#. translators: %1$s: Example query string, %2$s: Example wildcard
#: tpl/cache/settings_inc.cache_dropquery.tpl.php:34
msgid "For example, to drop parameters beginning with %1$s, %2$s can be used here."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:24
msgid "Serve a separate cache copy for mobile visitors."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:25
msgid "Learn more about when this is needed"
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:47
msgid "Htaccess did not match configuration option."
msgstr ""

#. translators: %s: Current mobile agents in htaccess
#: tpl/cache/settings_inc.cache_mobile.tpl.php:51
msgid "Htaccess rule is: %s"
msgstr ""

#. translators: %1$s: Cache Mobile label, %2$s: ON status, %3$s: List of Mobile User Agents label
#: tpl/cache/settings_inc.cache_mobile.tpl.php:89
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr ""

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:28
msgid "cookies"
msgstr ""

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:28
msgid "user agents"
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "SYNTAX: alphanumeric and \"_\". No spaces and case sensitive. MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr ""

#. translators: %s: Default login cookie name
#: tpl/cache/settings_inc.login_cookie.tpl.php:32
msgid "The default login cookie is %s."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:36
msgid "The server will determine if the user is logged in based on the existence of this cookie."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:37
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:38
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:39
msgid "The cookie set here will be used for this WordPress installation."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:41
msgid "Example use case:"
msgstr ""

#. translators: %s: Example domain
#: tpl/cache/settings_inc.login_cookie.tpl.php:45
msgid "There is a WordPress installed for %s."
msgstr ""

#. translators: %s: Example subdomain
#: tpl/cache/settings_inc.login_cookie.tpl.php:53
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:57
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:63
msgid "Invalid login cookie. Invalid characters found."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:84
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:102
msgid "SYNTAX: alphanumeric and \"_\". No spaces and case sensitive."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:104
msgid "You can list the 3rd party vary cookies here."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:15
msgid "Enabled"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:16
msgid "Disabled"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:23
msgid "Not Available"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:25
msgid "Passed"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:28
msgid "Failed"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:33
msgid "Object Cache Settings"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:47
msgid "Use external object cache functionality."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:52
#: tpl/crawler/blacklist.tpl.php:41
#: tpl/crawler/summary.tpl.php:153
msgid "Status"
msgstr ""

#. translators: %s: Object cache name
#: tpl/cache/settings_inc.object.tpl.php:58
#: tpl/cache/settings_inc.object.tpl.php:66
msgid "%s Extension"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:71
msgid "Connection Test"
msgstr ""

#. translators: %s: Object cache name
#: tpl/cache/settings_inc.object.tpl.php:99
msgid "Your %s Hostname or IP address."
msgstr ""

#. translators: %1$s: Socket name, %2$s: Host field title, %3$s: Example socket path
#. translators: %1$s: Socket name, %2$s: Port field title, %3$s: Port value
#: tpl/cache/settings_inc.object.tpl.php:107
#: tpl/cache/settings_inc.object.tpl.php:146
msgid "If you are using a %1$s socket, %2$s should be set to %3$s"
msgstr ""

#. translators: %1$s: Object cache name, %2$s: Port number
#: tpl/cache/settings_inc.object.tpl.php:128
#: tpl/cache/settings_inc.object.tpl.php:137
msgid "Default port for %1$s is %2$s."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:164
msgid "Default TTL for cached objects."
msgstr ""

#. translators: %s: SASL
#: tpl/cache/settings_inc.object.tpl.php:180
msgid "Only available when %s is installed."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:196
msgid "Specify the password used when connecting."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:209
msgid "Database to be used"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:222
msgid "Groups cached at the network level."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:249
msgid "Use keep-alive connections to speed up cache operations."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:262
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr ""

#. translators: %1$s: Object Cache Admin title, %2$s: OFF status
#: tpl/cache/settings_inc.object.tpl.php:278
msgid "Save transients in database when %1$s is %2$s."
msgstr ""

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:25
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr ""

#: tpl/cdn/cf.tpl.php:17
msgid "Cloudflare Settings"
msgstr ""

#: tpl/cdn/cf.tpl.php:31
msgid "Use %s API functionality."
msgstr ""

#: tpl/cdn/cf.tpl.php:35
msgid "Global API Key / API Token"
msgstr ""

#: tpl/cdn/cf.tpl.php:38
msgid "Your API key / token is used to access %s APIs."
msgstr ""

#: tpl/cdn/cf.tpl.php:39
msgid "Get it from %s."
msgstr ""

#: tpl/cdn/cf.tpl.php:40
msgid "Recommended to generate the token from Cloudflare API token template \"WordPress\"."
msgstr ""

#: tpl/cdn/cf.tpl.php:44
msgid "Email Address"
msgstr ""

#: tpl/cdn/cf.tpl.php:47
msgid "Your Email address on %s."
msgstr ""

#: tpl/cdn/cf.tpl.php:48
msgid "Optional when API token used."
msgstr ""

#: tpl/cdn/cf.tpl.php:52
msgid "Domain"
msgstr ""

#: tpl/cdn/cf.tpl.php:59
msgid "You can just type part of the domain."
msgstr ""

#: tpl/cdn/cf.tpl.php:60
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr ""

#: tpl/cdn/cf.tpl.php:74
msgid "Clear %s cache when \"Purge All\" is run."
msgstr ""

#: tpl/cdn/cf.tpl.php:102
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr ""

#: tpl/cdn/cf.tpl.php:107
msgid "Cloudflare Domain"
msgstr ""

#: tpl/cdn/cf.tpl.php:108
msgid "Cloudflare Zone"
msgstr ""

#: tpl/cdn/cf.tpl.php:111
msgid "Development Mode"
msgstr ""

#: tpl/cdn/cf.tpl.php:113
msgid "Turn ON"
msgstr ""

#: tpl/cdn/cf.tpl.php:116
msgid "Turn OFF"
msgstr ""

#: tpl/cdn/cf.tpl.php:119
msgid "Check Status"
msgstr ""

#: tpl/cdn/cf.tpl.php:129
msgid "Current status is %1$s since %2$s."
msgstr ""

#: tpl/cdn/cf.tpl.php:137
msgid "Current status is %s."
msgstr ""

#: tpl/cdn/cf.tpl.php:141
msgid "Development mode will be automatically turned off in %s."
msgstr ""

#: tpl/cdn/cf.tpl.php:149
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr ""

#: tpl/cdn/cf.tpl.php:151
msgid "Development Mode will be turned off automatically after three hours."
msgstr ""

#: tpl/cdn/cf.tpl.php:152
msgid "%1$sLearn More%2$s"
msgstr ""

#: tpl/cdn/cf.tpl.php:156
msgid "Cloudflare Cache"
msgstr ""

#: tpl/cdn/cf.tpl.php:162
msgid "Purge Everything"
msgstr ""

#: tpl/cdn/entry.tpl.php:14
msgid "QUIC.cloud"
msgstr ""

#: tpl/cdn/entry.tpl.php:16
msgid "Other Static CDN"
msgstr ""

#: tpl/cdn/entry.tpl.php:22
msgid "LiteSpeed Cache CDN"
msgstr ""

#: tpl/cdn/other.tpl.php:28
msgid "CDN Settings"
msgstr ""

#: tpl/cdn/other.tpl.php:44
msgid "Turn this setting %s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN."
msgstr ""

#: tpl/cdn/other.tpl.php:52
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are only using QUIC.cloud or Cloudflare, leave this setting %s."
msgstr ""

#: tpl/cdn/other.tpl.php:80
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr ""

#: tpl/cdn/other.tpl.php:87
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %1$s tags, and CSS %2$s attributes."
msgstr ""

#: tpl/cdn/other.tpl.php:94
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr ""

#: tpl/cdn/other.tpl.php:97
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr ""

#: tpl/cdn/other.tpl.php:100
msgid "Static file type links to be replaced by CDN links."
msgstr ""

#: tpl/cdn/other.tpl.php:104
msgid "This will affect all tags containing attributes: %s."
msgstr ""

#: tpl/cdn/other.tpl.php:112
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr ""

#: tpl/cdn/other.tpl.php:136
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr ""

#: tpl/cdn/other.tpl.php:137
#: tpl/img_optm/settings.tpl.php:124
msgid "Only attributes listed here will be replaced."
msgstr ""

#: tpl/cdn/other.tpl.php:141
#: tpl/img_optm/settings.tpl.php:125
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr ""

#: tpl/cdn/other.tpl.php:161
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr ""

#: tpl/cdn/other.tpl.php:196
msgid "Only files within these directories will be pointed to the CDN."
msgstr ""

#: tpl/cdn/other.tpl.php:210
msgid "Paths containing these strings will not be served from the CDN."
msgstr ""

#: tpl/cdn/qc.tpl.php:24
#: tpl/dash/dashboard.tpl.php:885
msgid "Refresh Status"
msgstr ""

#: tpl/cdn/qc.tpl.php:27
msgid "QUIC.cloud CDN Status Overview"
msgstr ""

#: tpl/cdn/qc.tpl.php:29
msgid "Check the status of your most important settings and the health of your CDN setup here."
msgstr ""

#: tpl/cdn/qc.tpl.php:34
#: tpl/dash/dashboard.tpl.php:146
msgid "Accelerate, Optimize, Protect"
msgstr ""

#: tpl/cdn/qc.tpl.php:36
#: tpl/dash/dashboard.tpl.php:150
msgid "Speed up your WordPress site even further with <strong>QUIC.cloud Online Services and CDN</strong>."
msgstr ""

#: tpl/cdn/qc.tpl.php:38
#: tpl/general/online.tpl.php:61
#: tpl/general/online.tpl.php:145
msgid "Free monthly quota available."
msgstr ""

#: tpl/cdn/qc.tpl.php:41
#: tpl/dash/dashboard.tpl.php:158
#: tpl/general/online.tpl.php:64
#: tpl/general/online.tpl.php:119
msgid "Enable QUIC.cloud services"
msgstr ""

#: tpl/cdn/qc.tpl.php:45
#: tpl/dash/dashboard.tpl.php:166
#: tpl/general/online.tpl.php:26
msgid "QUIC.cloud provides CDN and online optimization services, and is not required. You may use many features of this plugin without QUIC.cloud."
msgstr ""

#: tpl/cdn/qc.tpl.php:46
#: tpl/dash/dashboard.tpl.php:168
msgid "Learn More about QUIC.cloud"
msgstr ""

#: tpl/cdn/qc.tpl.php:53
msgid "QUIC.cloud CDN is currently <strong>fully disabled</strong>."
msgstr ""

#: tpl/cdn/qc.tpl.php:55
msgid "QUIC.cloud CDN is <strong>not available</strong> for anonymous (unlinked) users."
msgstr ""

#: tpl/cdn/qc.tpl.php:59
msgid "Link & Enable QUIC.cloud CDN"
msgstr ""

#: tpl/cdn/qc.tpl.php:61
#: tpl/dash/dashboard.tpl.php:856
msgid "Enable QUIC.cloud CDN"
msgstr ""

#: tpl/cdn/qc.tpl.php:71
msgid "Content Delivery Network Service"
msgstr ""

#: tpl/cdn/qc.tpl.php:73
msgid "Serve your visitors fast"
msgstr ""

#: tpl/cdn/qc.tpl.php:73
msgid "no matter where they live."
msgstr ""

#. translators: %s: Link tags
#: tpl/cdn/qc.tpl.php:79
msgid "Best available WordPress performance, globally fast TTFB, easy setup, and %smore%s!"
msgstr ""

#: tpl/cdn/qc.tpl.php:96
msgid "QUIC.cloud CDN Options"
msgstr ""

#: tpl/cdn/qc.tpl.php:117
msgid "To manage your QUIC.cloud options, go to your hosting provider's portal."
msgstr ""

#: tpl/cdn/qc.tpl.php:119
msgid "To manage your QUIC.cloud options, please contact your hosting provider."
msgstr ""

#: tpl/cdn/qc.tpl.php:123
#: tpl/cdn/qc.tpl.php:143
msgid "To manage your QUIC.cloud options, go to QUIC.cloud Dashboard."
msgstr ""

#: tpl/cdn/qc.tpl.php:126
#: tpl/cdn/qc.tpl.php:133
#: tpl/dash/dashboard.tpl.php:359
#: tpl/general/online.tpl.php:153
msgid "Link to QUIC.cloud"
msgstr ""

#: tpl/cdn/qc.tpl.php:130
msgid "You are currently using services as an anonymous user. To manage your QUIC.cloud options, use the button below to create an account and link to the QUIC.cloud Dashboard."
msgstr ""

#: tpl/cdn/qc.tpl.php:139
#: tpl/cdn/qc.tpl.php:146
msgid "My QUIC.cloud Dashboard"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:21
msgid "Are you sure to delete all existing blocklist items?"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:22
msgid "Empty blocklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:27
#: tpl/crawler/entry.tpl.php:16
msgid "Blocklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:31
#: tpl/img_optm/summary.tpl.php:201
msgid "Total"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:40
#: tpl/crawler/map.tpl.php:76
#: tpl/toolbox/purge.tpl.php:200
msgid "URL"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:42
#: tpl/crawler/map.tpl.php:78
msgid "Operation"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:53
msgid "Remove from Blocklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:68
msgid "API: PHP Constant %s available to disable blocklist."
msgstr ""

#: tpl/crawler/blacklist.tpl.php:78
msgid "API: Filter %s available to disable blocklist."
msgstr ""

#: tpl/crawler/blacklist.tpl.php:85
msgid "Not blocklisted"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:86
#: tpl/crawler/map.tpl.php:103
msgid "Blocklisted due to not cacheable"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:87
#: tpl/crawler/map.tpl.php:64
#: tpl/crawler/map.tpl.php:104
#: tpl/crawler/summary.tpl.php:199
#: tpl/crawler/summary.tpl.php:247
msgid "Blocklisted"
msgstr ""

#: tpl/crawler/entry.tpl.php:14
msgid "Summary"
msgstr ""

#: tpl/crawler/entry.tpl.php:15
msgid "Map"
msgstr ""

#: tpl/crawler/entry.tpl.php:23
msgid "LiteSpeed Cache Crawler"
msgstr ""

#: tpl/crawler/map.tpl.php:29
msgid "Clean Crawler Map"
msgstr ""

#: tpl/crawler/map.tpl.php:32
msgid "Refresh Crawler Map"
msgstr ""

#: tpl/crawler/map.tpl.php:40
msgid "Generated at %s"
msgstr ""

#: tpl/crawler/map.tpl.php:48
msgid "Sitemap List"
msgstr ""

#: tpl/crawler/map.tpl.php:52
msgid "Sitemap Total"
msgstr ""

#: tpl/crawler/map.tpl.php:58
msgid "URL Search"
msgstr ""

#: tpl/crawler/map.tpl.php:62
#: tpl/crawler/map.tpl.php:101
msgid "Cache Hit"
msgstr ""

#: tpl/crawler/map.tpl.php:63
#: tpl/crawler/map.tpl.php:102
msgid "Cache Miss"
msgstr ""

#: tpl/crawler/map.tpl.php:77
#: tpl/dash/dashboard.tpl.php:80
#: tpl/dash/dashboard.tpl.php:799
msgid "Crawler Status"
msgstr ""

#: tpl/crawler/map.tpl.php:89
msgid "Add to Blocklist"
msgstr ""

#: tpl/crawler/settings.tpl.php:17
msgid "Crawler General Settings"
msgstr ""

#: tpl/crawler/settings.tpl.php:31
msgid "This will enable crawler cron."
msgstr ""

#: tpl/crawler/settings.tpl.php:45
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr ""

#: tpl/crawler/settings.tpl.php:59
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr ""

#: tpl/crawler/settings.tpl.php:73
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr ""

#: tpl/crawler/settings.tpl.php:79
msgid "Server enforced value: %s"
msgstr ""

#: tpl/crawler/settings.tpl.php:89
msgid "Server allowed max value: %s"
msgstr ""

#: tpl/crawler/settings.tpl.php:109
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr ""

#: tpl/crawler/settings.tpl.php:116
#: tpl/crawler/summary.tpl.php:211
msgid "You must set %s before using this feature."
msgstr ""

#: tpl/crawler/settings.tpl.php:136
msgid "You must set %1$s to %2$s before using this feature."
msgstr ""

#: tpl/crawler/settings.tpl.php:172
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr ""

#: tpl/crawler/settings.tpl.php:177
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr ""

#: tpl/crawler/summary.tpl.php:28
msgid "You need to set the %s in Settings first before using the crawler"
msgstr ""

#: tpl/crawler/summary.tpl.php:54
msgid "Crawler Cron"
msgstr ""

#: tpl/crawler/summary.tpl.php:61
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr ""

#. translators: %s: Link tags
#: tpl/crawler/summary.tpl.php:66
msgid "See %sIntroduction for Enabling the Crawler%s for detailed information."
msgstr ""

#: tpl/crawler/summary.tpl.php:77
msgid "Current sitemap crawl started at"
msgstr ""

#: tpl/crawler/summary.tpl.php:82
msgid "The next complete sitemap crawl will start at"
msgstr ""

#: tpl/crawler/summary.tpl.php:90
msgid "Last complete run time for all crawlers"
msgstr ""

#: tpl/crawler/summary.tpl.php:91
#: tpl/crawler/summary.tpl.php:98
msgid "%d seconds"
msgstr ""

#: tpl/crawler/summary.tpl.php:97
msgid "Run time for previous crawler"
msgstr ""

#: tpl/crawler/summary.tpl.php:104
#: tpl/dash/dashboard.tpl.php:91
#: tpl/dash/dashboard.tpl.php:810
msgid "Current crawler started at"
msgstr ""

#: tpl/crawler/summary.tpl.php:110
msgid "Current server load"
msgstr ""

#: tpl/crawler/summary.tpl.php:116
#: tpl/dash/dashboard.tpl.php:97
#: tpl/dash/dashboard.tpl.php:816
msgid "Last interval"
msgstr ""

#: tpl/crawler/summary.tpl.php:123
#: tpl/dash/dashboard.tpl.php:103
#: tpl/dash/dashboard.tpl.php:822
msgid "Ended reason"
msgstr ""

#: tpl/crawler/summary.tpl.php:130
msgid "Last crawled"
msgstr ""

#: tpl/crawler/summary.tpl.php:133
msgid "%d item(s)"
msgstr ""

#: tpl/crawler/summary.tpl.php:141
msgid "Reset position"
msgstr ""

#: tpl/crawler/summary.tpl.php:142
msgid "Manually run"
msgstr ""

#: tpl/crawler/summary.tpl.php:151
msgid "Cron Name"
msgstr ""

#: tpl/crawler/summary.tpl.php:152
msgid "Run Frequency"
msgstr ""

#: tpl/crawler/summary.tpl.php:154
msgid "Activate"
msgstr ""

#: tpl/crawler/summary.tpl.php:155
msgid "Running"
msgstr ""

#: tpl/crawler/summary.tpl.php:184
msgid "Waiting"
msgstr ""

#: tpl/crawler/summary.tpl.php:189
msgid "Hit"
msgstr ""

#: tpl/crawler/summary.tpl.php:194
msgid "Miss"
msgstr ""

#: tpl/crawler/summary.tpl.php:230
msgid "Position: "
msgstr ""

#: tpl/crawler/summary.tpl.php:232
msgid "running"
msgstr ""

#: tpl/crawler/summary.tpl.php:244
msgid "Waiting to be Crawled"
msgstr ""

#: tpl/crawler/summary.tpl.php:245
msgid "Already Cached"
msgstr ""

#: tpl/crawler/summary.tpl.php:246
msgid "Successfully Crawled"
msgstr ""

#: tpl/crawler/summary.tpl.php:251
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr ""

#: tpl/crawler/summary.tpl.php:254
msgid "Crawlers cannot run concurrently. If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr ""

#. translators: %s: Link tags
#: tpl/crawler/summary.tpl.php:261
msgid "Please see %sHooking WP-Cron Into the System Task Scheduler%s to learn how to create the system cron task."
msgstr ""

#: tpl/crawler/summary.tpl.php:272
msgid "Watch Crawler Status"
msgstr ""

#: tpl/crawler/summary.tpl.php:278
msgid "Show crawler status"
msgstr ""

#: tpl/crawler/summary.tpl.php:288
msgid "Start watching..."
msgstr ""

#: tpl/crawler/summary.tpl.php:293
msgid "No crawler meta file generated yet"
msgstr ""

#: tpl/dash/dashboard.tpl.php:53
#: tpl/dash/dashboard.tpl.php:596
msgid "Cache Status"
msgstr ""

#: tpl/dash/dashboard.tpl.php:54
#: tpl/dash/dashboard.tpl.php:81
#: tpl/dash/dashboard.tpl.php:520
#: tpl/dash/dashboard.tpl.php:597
#: tpl/dash/dashboard.tpl.php:624
#: tpl/dash/dashboard.tpl.php:668
#: tpl/dash/dashboard.tpl.php:712
#: tpl/dash/dashboard.tpl.php:756
#: tpl/dash/dashboard.tpl.php:800
#: tpl/dash/dashboard.tpl.php:847
msgid "More"
msgstr ""

#: tpl/dash/dashboard.tpl.php:58
#: tpl/dash/dashboard.tpl.php:601
msgid "Public Cache"
msgstr ""

#: tpl/dash/dashboard.tpl.php:59
#: tpl/dash/dashboard.tpl.php:602
msgid "Private Cache"
msgstr ""

#: tpl/dash/dashboard.tpl.php:84
#: tpl/dash/dashboard.tpl.php:803
msgid "Crawler(s)"
msgstr ""

#: tpl/dash/dashboard.tpl.php:87
#: tpl/dash/dashboard.tpl.php:806
msgid "Currently active crawler"
msgstr ""

#: tpl/dash/dashboard.tpl.php:111
#: tpl/dash/dashboard.tpl.php:830
msgid "%1$s %2$d item(s)"
msgstr ""

#: tpl/dash/dashboard.tpl.php:112
#: tpl/dash/dashboard.tpl.php:831
msgid "Last crawled:"
msgstr ""

#: tpl/dash/dashboard.tpl.php:128
#: tpl/dash/dashboard.tpl.php:907
msgid "News"
msgstr ""

#: tpl/dash/dashboard.tpl.php:153
msgid "Free monthly quota available. Can also be used anonymously (no email required)."
msgstr ""

#: tpl/dash/dashboard.tpl.php:162
msgid "Do not show this again"
msgstr ""

#: tpl/dash/dashboard.tpl.php:179
msgid "QUIC.cloud Service Usage Statistics"
msgstr ""

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:182
msgid "Sync data from Cloud"
msgstr ""

#: tpl/dash/dashboard.tpl.php:193
msgid "The features below are provided by %s"
msgstr ""

#: tpl/dash/dashboard.tpl.php:205
#: tpl/dash/network_dash.tpl.php:38
msgid "CDN Bandwidth"
msgstr ""

#: tpl/dash/dashboard.tpl.php:206
#: tpl/dash/dashboard.tpl.php:711
#: tpl/dash/network_dash.tpl.php:39
msgid "Low Quality Image Placeholder"
msgstr ""

#: tpl/dash/dashboard.tpl.php:258
#: tpl/dash/network_dash.tpl.php:95
msgid "Fast Queue Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:258
#: tpl/dash/network_dash.tpl.php:95
msgid "Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:270
#: tpl/dash/network_dash.tpl.php:108
msgid "PAYG Balance"
msgstr ""

#: tpl/dash/dashboard.tpl.php:271
msgid "PAYG used this month: %s. PAYG balance and usage not included in above quota calculation."
msgstr ""

#: tpl/dash/dashboard.tpl.php:273
#: tpl/dash/network_dash.tpl.php:111
msgid "Pay as You Go Usage Statistics"
msgstr ""

#: tpl/dash/dashboard.tpl.php:291
#: tpl/dash/network_dash.tpl.php:118
msgid "Total Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:292
#: tpl/dash/network_dash.tpl.php:119
msgid "Total images optimized in this month"
msgstr ""

#: tpl/dash/dashboard.tpl.php:300
msgid "Remaining Daily Quota"
msgstr ""

#: tpl/dash/dashboard.tpl.php:310
msgid "Partner Benefits Provided by"
msgstr ""

#: tpl/dash/dashboard.tpl.php:346
msgid "Enable QUIC.cloud Services"
msgstr ""

#: tpl/dash/dashboard.tpl.php:353
#: tpl/general/online.tpl.php:128
msgid "Go to QUIC.cloud dashboard"
msgstr ""

#: tpl/dash/dashboard.tpl.php:381
#: tpl/img_optm/summary.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:246
#: tpl/page_optm/settings_media.tpl.php:192
#: tpl/page_optm/settings_vpi.tpl.php:59
msgid "Current closest Cloud server is %s. Click to redetect."
msgstr ""

#: tpl/dash/dashboard.tpl.php:382
#: tpl/img_optm/summary.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:246
#: tpl/page_optm/settings_media.tpl.php:192
#: tpl/page_optm/settings_vpi.tpl.php:59
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr ""

#: tpl/dash/dashboard.tpl.php:384
#: tpl/general/online.tpl.php:31
#: tpl/img_optm/summary.tpl.php:54
#: tpl/img_optm/summary.tpl.php:56
#: tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:246
#: tpl/page_optm/settings_media.tpl.php:192
#: tpl/page_optm/settings_vpi.tpl.php:59
msgid "Redetect"
msgstr ""

#: tpl/dash/dashboard.tpl.php:418
msgid "You must be using one of the following products in order to measure Page Load Time:"
msgstr ""

#: tpl/dash/dashboard.tpl.php:419
msgid "LiteSpeed Web Server"
msgstr ""

#: tpl/dash/dashboard.tpl.php:421
msgid "OpenLiteSpeed Web Server"
msgstr ""

#: tpl/dash/dashboard.tpl.php:423
msgid "LiteSpeed Web ADC"
msgstr ""

#: tpl/dash/dashboard.tpl.php:425
#: tpl/dash/dashboard.tpl.php:843
msgid "QUIC.cloud CDN"
msgstr ""

#: tpl/dash/dashboard.tpl.php:437
#: tpl/dash/dashboard.tpl.php:502
msgid "Requested: %s ago"
msgstr ""

#: tpl/dash/dashboard.tpl.php:445
#: tpl/dash/dashboard.tpl.php:510
msgid "Refresh"
msgstr ""

#: tpl/dash/dashboard.tpl.php:446
msgid "Refresh page load time"
msgstr ""

#: tpl/dash/dashboard.tpl.php:511
msgid "Refresh page score"
msgstr ""

#: tpl/dash/dashboard.tpl.php:519
#: tpl/img_optm/entry.tpl.php:16
msgid "Image Optimization Summary"
msgstr ""

#: tpl/dash/dashboard.tpl.php:536
#: tpl/img_optm/summary.tpl.php:76
#: tpl/img_optm/summary.tpl.php:89
msgid "Send Optimization Request"
msgstr ""

#: tpl/dash/dashboard.tpl.php:542
#: tpl/img_optm/summary.tpl.php:316
msgid "Total Reduction"
msgstr ""

#: tpl/dash/dashboard.tpl.php:545
#: tpl/img_optm/summary.tpl.php:319
msgid "Images Pulled"
msgstr ""

#: tpl/dash/dashboard.tpl.php:568
#: tpl/img_optm/summary.tpl.php:322
msgid "Last Request"
msgstr ""

#: tpl/dash/dashboard.tpl.php:571
msgid "Last Pull"
msgstr ""

#: tpl/dash/dashboard.tpl.php:623
#: tpl/toolbox/purge.tpl.php:73
msgid "Critical CSS"
msgstr ""

#: tpl/dash/dashboard.tpl.php:630
#: tpl/dash/dashboard.tpl.php:674
#: tpl/dash/dashboard.tpl.php:718
#: tpl/dash/dashboard.tpl.php:762
msgid "Last generated: %s"
msgstr ""

#: tpl/dash/dashboard.tpl.php:638
#: tpl/dash/dashboard.tpl.php:682
#: tpl/dash/dashboard.tpl.php:726
#: tpl/dash/dashboard.tpl.php:770
msgid "Time to execute previous request: %s"
msgstr ""

#: tpl/dash/dashboard.tpl.php:645
#: tpl/dash/dashboard.tpl.php:689
#: tpl/dash/dashboard.tpl.php:733
#: tpl/dash/dashboard.tpl.php:777
msgid "Requests in queue"
msgstr ""

#: tpl/dash/dashboard.tpl.php:648
#: tpl/dash/dashboard.tpl.php:692
#: tpl/dash/dashboard.tpl.php:736
#: tpl/dash/dashboard.tpl.php:780
msgid "Force cron"
msgstr ""

#: tpl/dash/dashboard.tpl.php:656
#: tpl/dash/dashboard.tpl.php:700
#: tpl/dash/dashboard.tpl.php:744
#: tpl/dash/dashboard.tpl.php:788
msgid "Last requested: %s"
msgstr ""

#: tpl/dash/dashboard.tpl.php:667
#: tpl/toolbox/purge.tpl.php:82
msgid "Unique CSS"
msgstr ""

#: tpl/dash/dashboard.tpl.php:755
msgid "Viewport Image"
msgstr ""

#: tpl/dash/dashboard.tpl.php:863
msgid "Best available WordPress performance"
msgstr ""

#: tpl/dash/dashboard.tpl.php:868
msgid "Globally fast TTFB, easy setup, and %s!"
msgstr ""

#: tpl/dash/dashboard.tpl.php:869
msgid "more"
msgstr ""

#: tpl/dash/dashboard.tpl.php:886
msgid "Refresh QUIC.cloud status"
msgstr ""

#: tpl/dash/entry.tpl.php:21
msgid "Network Dashboard"
msgstr ""

#: tpl/dash/entry.tpl.php:29
msgid "LiteSpeed Cache Dashboard"
msgstr ""

#: tpl/dash/network_dash.tpl.php:28
msgid "Usage Statistics: %s"
msgstr ""

#: tpl/dash/network_dash.tpl.php:107
msgid "Pay as You Go"
msgstr ""

#: tpl/dash/network_dash.tpl.php:109
msgid "This Month Usage: %s"
msgstr ""

#: tpl/db_optm/entry.tpl.php:17
#: tpl/db_optm/settings.tpl.php:19
msgid "DB Optimization Settings"
msgstr ""

#: tpl/db_optm/entry.tpl.php:24
msgid "LiteSpeed Cache Database Optimization"
msgstr ""

#: tpl/db_optm/manage.tpl.php:17
msgid "Clean All"
msgstr ""

#: tpl/db_optm/manage.tpl.php:21
msgid "Post Revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:22
msgid "Clean all post revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:25
msgid "Orphaned Post Meta"
msgstr ""

#: tpl/db_optm/manage.tpl.php:26
msgid "Clean all orphaned post meta records"
msgstr ""

#: tpl/db_optm/manage.tpl.php:29
msgid "Auto Drafts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:30
msgid "Clean all auto saved drafts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:33
msgid "Trashed Posts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:34
msgid "Clean all trashed posts and pages"
msgstr ""

#: tpl/db_optm/manage.tpl.php:37
msgid "Spam Comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:38
msgid "Clean all spam comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:41
msgid "Trashed Comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:42
msgid "Clean all trashed comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:45
msgid "Trackbacks/Pingbacks"
msgstr ""

#: tpl/db_optm/manage.tpl.php:46
msgid "Clean all trackbacks and pingbacks"
msgstr ""

#: tpl/db_optm/manage.tpl.php:49
msgid "Expired Transients"
msgstr ""

#: tpl/db_optm/manage.tpl.php:50
msgid "Clean expired transient options"
msgstr ""

#: tpl/db_optm/manage.tpl.php:53
msgid "All Transients"
msgstr ""

#: tpl/db_optm/manage.tpl.php:54
msgid "Clean all transient options"
msgstr ""

#: tpl/db_optm/manage.tpl.php:57
msgid "Optimize Tables"
msgstr ""

#: tpl/db_optm/manage.tpl.php:58
msgid "Optimize all tables in your database"
msgstr ""

#: tpl/db_optm/manage.tpl.php:66
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:90
msgid "Database Optimizer"
msgstr ""

#: tpl/db_optm/manage.tpl.php:116
msgid "Database Table Engine Converter"
msgstr ""

#: tpl/db_optm/manage.tpl.php:124
msgid "Table"
msgstr ""

#: tpl/db_optm/manage.tpl.php:125
msgid "Engine"
msgstr ""

#: tpl/db_optm/manage.tpl.php:126
msgid "Tool"
msgstr ""

#: tpl/db_optm/manage.tpl.php:141
msgid "Convert to InnoDB"
msgstr ""

#: tpl/db_optm/manage.tpl.php:149
msgid "We are good. No table uses MyISAM engine."
msgstr ""

#: tpl/db_optm/manage.tpl.php:171
msgid "Database Summary"
msgstr ""

#: tpl/db_optm/manage.tpl.php:175
msgid "Autoload size"
msgstr ""

#: tpl/db_optm/manage.tpl.php:176
msgid "Autoload entries"
msgstr ""

#: tpl/db_optm/manage.tpl.php:180
msgid "Autoload top list"
msgstr ""

#: tpl/db_optm/manage.tpl.php:185
msgid "Option Name"
msgstr ""

#: tpl/db_optm/manage.tpl.php:186
msgid "Autoload"
msgstr ""

#: tpl/db_optm/manage.tpl.php:187
msgid "Size"
msgstr ""

#: tpl/db_optm/settings.tpl.php:32
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr ""

#: tpl/db_optm/settings.tpl.php:44
msgid "Day(s)"
msgstr ""

#: tpl/db_optm/settings.tpl.php:46
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr ""

#: tpl/esi_widget_edit.php:52
msgid "Public"
msgstr ""

#: tpl/esi_widget_edit.php:53
msgid "Private"
msgstr ""

#: tpl/esi_widget_edit.php:54
msgid "Disable"
msgstr ""

#: tpl/esi_widget_edit.php:71
msgid "Widget Cache TTL"
msgstr ""

#: tpl/esi_widget_edit.php:81
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr ""

#: tpl/esi_widget_edit.php:82
msgid "A TTL of 0 indicates do not cache."
msgstr ""

#: tpl/general/entry.tpl.php:16
#: tpl/general/online.tpl.php:68
msgid "Online Services"
msgstr ""

#: tpl/general/entry.tpl.php:17
#: tpl/general/entry.tpl.php:23
#: tpl/general/network_settings.tpl.php:19
#: tpl/general/settings.tpl.php:24
msgid "General Settings"
msgstr ""

#: tpl/general/entry.tpl.php:18
#: tpl/page_optm/entry.tpl.php:23
#: tpl/page_optm/entry.tpl.php:24
msgid "Tuning"
msgstr ""

#: tpl/general/entry.tpl.php:31
msgid "LiteSpeed Cache General Settings"
msgstr ""

#: tpl/general/network_settings.tpl.php:31
msgid "Use Primary Site Configuration"
msgstr ""

#: tpl/general/network_settings.tpl.php:35
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr ""

#: tpl/general/network_settings.tpl.php:36
msgid "This will disable the settings page on all subsites."
msgstr ""

#: tpl/general/online.tpl.php:22
msgid "QUIC.cloud Online Services"
msgstr ""

#: tpl/general/online.tpl.php:30
msgid "Current Cloud Nodes in Service"
msgstr ""

#: tpl/general/online.tpl.php:31
msgid "Click to clear all nodes for further redetection."
msgstr ""

#: tpl/general/online.tpl.php:31
msgid "Are you sure you want to clear all cloud nodes?"
msgstr ""

#: tpl/general/online.tpl.php:41
msgid "Service:"
msgstr ""

#: tpl/general/online.tpl.php:43
msgid "Node:"
msgstr ""

#: tpl/general/online.tpl.php:45
msgid "Connected Date:"
msgstr ""

#: tpl/general/online.tpl.php:51
msgid "No cloud services currently in use"
msgstr ""

#: tpl/general/online.tpl.php:59
msgid "QUIC.cloud Integration Disabled"
msgstr ""

#: tpl/general/online.tpl.php:60
msgid "Speed up your WordPress site even further with QUIC.cloud Online Services and CDN."
msgstr ""

#: tpl/general/online.tpl.php:69
msgid "QUIC.cloud's Online Services improve your site in the following ways:"
msgstr ""

#: tpl/general/online.tpl.php:71
msgid "<strong>Image Optimization</strong> gives you smaller image file sizes that transmit faster."
msgstr ""

#: tpl/general/online.tpl.php:72
msgid "<strong>Page Optimization</strong> streamlines page styles and visual elements for faster loading."
msgstr ""

#: tpl/general/online.tpl.php:76
msgid "QUIC.cloud's Image Optimization service does the following:"
msgstr ""

#: tpl/general/online.tpl.php:78
msgid "Processes your uploaded PNG and JPG images to produce smaller versions that don't sacrifice quality."
msgstr ""

#: tpl/general/online.tpl.php:79
msgid "Optionally creates next-generation WebP or AVIF image files."
msgstr ""

#: tpl/general/online.tpl.php:81
msgid "Processing for PNG, JPG, and WebP image formats is free. AVIF is available for a fee."
msgstr ""

#: tpl/general/online.tpl.php:84
msgid "QUIC.cloud's Page Optimization services address CSS bloat, and improve the user experience during page load, which can lead to improved page speed scores."
msgstr ""

#: tpl/general/online.tpl.php:86
msgid "<strong>Critical CSS (CCSS)</strong> loads visible above-the-fold content faster and with full styling."
msgstr ""

#: tpl/general/online.tpl.php:87
msgid "<strong>Unique CSS (UCSS)</strong> removes unused style definitions for a speedier page load overall."
msgstr ""

#: tpl/general/online.tpl.php:88
msgid "<strong>Low Quality Image Placeholder (LQIP)</strong> gives your imagery a more pleasing look as it lazy loads."
msgstr ""

#: tpl/general/online.tpl.php:89
msgid "<strong>Viewport Images (VPI)</strong> provides a well-polished fully-loaded view above the fold."
msgstr ""

#: tpl/general/online.tpl.php:98
msgid "Content Delivery Network"
msgstr ""

#: tpl/general/online.tpl.php:100
msgid "QUIC.cloud CDN:"
msgstr ""

#: tpl/general/online.tpl.php:102
msgid "Caches your entire site, including dynamic content and <strong>ESI blocks</strong>."
msgstr ""

#: tpl/general/online.tpl.php:103
msgid "Delivers global coverage with a growing <strong>network of 80+ PoPs</strong>."
msgstr ""

#: tpl/general/online.tpl.php:104
msgid "Provides <strong>security at the CDN level</strong>, protecting your server from attack."
msgstr ""

#: tpl/general/online.tpl.php:105
msgid "Offers optional <strong>built-in DNS service</strong> to simplify CDN onboarding."
msgstr ""

#: tpl/general/online.tpl.php:114
msgid "In order to use most QUIC.cloud services, you need quota. QUIC.cloud gives you free quota every month, but if you need more, you can purchase it."
msgstr ""

#: tpl/general/online.tpl.php:125
msgid "QUIC.cloud Integration Enabled"
msgstr ""

#: tpl/general/online.tpl.php:126
msgid "Your site is connected and ready to use QUIC.cloud Online Services."
msgstr ""

#: tpl/general/online.tpl.php:136
msgid "CDN - Enabled"
msgstr ""

#: tpl/general/online.tpl.php:138
msgid "CDN - Disabled"
msgstr ""

#: tpl/general/online.tpl.php:143
msgid "QUIC.cloud Integration Enabled with limitations"
msgstr ""

#: tpl/general/online.tpl.php:144
msgid "Your site is connected and using QUIC.cloud Online Services as an <strong>anonymous user</strong>. The CDN function and certain features of optimization services are not available for anonymous users. Link to QUIC.cloud to use the CDN and all available Online Services features."
msgstr ""

#: tpl/general/online.tpl.php:150
msgid "CDN - not available for anonymous users"
msgstr ""

#: tpl/general/online.tpl.php:159
msgid "Are you sure you want to disconnect from QUIC.cloud? This will not remove any data from the QUIC.cloud dashboard."
msgstr ""

#: tpl/general/online.tpl.php:159
msgid "Disconnect from QUIC.cloud"
msgstr ""

#: tpl/general/online.tpl.php:160
msgid "Remove QUIC.cloud integration from this site. Note: QUIC.cloud data will be preserved so you can re-enable services at any time. If you want to fully remove your site from QUIC.cloud, delete the domain through the QUIC.cloud Dashboard first."
msgstr ""

#: tpl/general/settings.tpl.php:48
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr ""

#: tpl/general/settings.tpl.php:49
msgid "Please read all warnings before enabling this option."
msgstr ""

#: tpl/general/settings.tpl.php:64
msgid "Your %1$s quota on %2$s will still be in use."
msgstr ""

#: tpl/general/settings.tpl.php:72
#: tpl/general/settings.tpl.php:79
#: tpl/general/settings.tpl.php:86
#: tpl/general/settings.tpl.php:103
#: tpl/page_optm/settings_media.tpl.php:251
#: tpl/page_optm/settings_vpi.tpl.php:44
msgid "Notice"
msgstr ""

#: tpl/general/settings.tpl.php:72
#: tpl/page_optm/settings_media.tpl.php:251
#: tpl/page_optm/settings_vpi.tpl.php:44
msgid "%s must be turned ON for this setting to work."
msgstr ""

#: tpl/general/settings.tpl.php:79
msgid "You need to turn %s on to get maximum result."
msgstr ""

#: tpl/general/settings.tpl.php:86
msgid "You need to turn %s on and finish all WebP generation to get maximum result."
msgstr ""

#: tpl/general/settings.tpl.php:101
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr ""

#: tpl/general/settings.tpl.php:102
msgid "Your server IP"
msgstr ""

#: tpl/general/settings.tpl.php:102
msgid "Check my public IP from"
msgstr ""

#: tpl/general/settings.tpl.php:103
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server."
msgstr ""

#: tpl/general/settings.tpl.php:104
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr ""

#: tpl/general/settings.tpl.php:119
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr ""

#: tpl/general/settings_inc.auto_upgrade.tpl.php:25
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:26
msgid "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:27
msgid "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:34
msgid "Guest Mode testing result"
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:35
msgid "Testing"
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:42
msgid "Guest Mode passed testing."
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:45
#: tpl/general/settings_inc.guest.tpl.php:48
msgid "Guest Mode failed to test."
msgstr ""

#: tpl/general/settings_tuning.tpl.php:19
#: tpl/page_optm/settings_tuning.tpl.php:29
msgid "Tuning Settings"
msgstr ""

#: tpl/general/settings_tuning.tpl.php:40
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr ""

#: tpl/general/settings_tuning.tpl.php:62
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr ""

#: tpl/img_optm/entry.tpl.php:17
#: tpl/img_optm/entry.tpl.php:22
#: tpl/img_optm/network_settings.tpl.php:19
#: tpl/img_optm/settings.tpl.php:19
msgid "Image Optimization Settings"
msgstr ""

#: tpl/img_optm/entry.tpl.php:30
msgid "LiteSpeed Cache Image Optimization"
msgstr ""

#: tpl/img_optm/settings.media_webp.tpl.php:25
msgid "Request WebP/AVIF versions of original images when doing optimization."
msgstr ""

#: tpl/img_optm/settings.media_webp.tpl.php:26
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr ""

#: tpl/img_optm/settings.media_webp.tpl.php:31
msgid "%1$s is a %2$s paid feature."
msgstr ""

#: tpl/img_optm/settings.media_webp.tpl.php:34
msgid "When switching formats, please %1$s or %2$s to apply this new choice to previously optimized images."
msgstr ""

#: tpl/img_optm/settings.media_webp.tpl.php:34
#: tpl/img_optm/summary.tpl.php:378
msgid "Destroy All Optimization Data"
msgstr ""

#: tpl/img_optm/settings.media_webp.tpl.php:34
#: tpl/img_optm/summary.tpl.php:368
msgid "Soft Reset Optimization Counter"
msgstr ""

#: tpl/img_optm/settings.tpl.php:34
msgid "Automatically request optimization via cron job."
msgstr ""

#: tpl/img_optm/settings.tpl.php:47
msgid "Optimize images and save backups of the originals in the same folder."
msgstr ""

#: tpl/img_optm/settings.tpl.php:60
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr ""

#: tpl/img_optm/settings.tpl.php:65
#: tpl/img_optm/summary.tpl.php:244
msgid "This is irreversible."
msgstr ""

#: tpl/img_optm/settings.tpl.php:66
#: tpl/img_optm/summary.tpl.php:245
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr ""

#: tpl/img_optm/settings.tpl.php:80
msgid "Optimize images using lossless compression."
msgstr ""

#: tpl/img_optm/settings.tpl.php:81
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr ""

#: tpl/img_optm/settings.tpl.php:94
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr ""

#: tpl/img_optm/settings.tpl.php:95
msgid "This will increase the size of optimized files."
msgstr ""

#: tpl/img_optm/settings.tpl.php:123
msgid "Specify which element attributes will be replaced with WebP/AVIF."
msgstr ""

#: tpl/img_optm/settings.tpl.php:139
msgid "Enable replacement of WebP/AVIF in %s elements that were generated outside of WordPress logic."
msgstr ""

#: tpl/img_optm/summary.tpl.php:58
msgid "Optimize images with our QUIC.cloud server"
msgstr ""

#: tpl/img_optm/summary.tpl.php:63
msgid "You can request a maximum of %s images at once."
msgstr ""

#: tpl/img_optm/summary.tpl.php:68
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited."
msgstr ""

#: tpl/img_optm/summary.tpl.php:69
msgid "Current limit is"
msgstr ""

#: tpl/img_optm/summary.tpl.php:77
#: tpl/page_optm/settings_css.tpl.php:154
#: tpl/page_optm/settings_css.tpl.php:291
#: tpl/page_optm/settings_vpi.tpl.php:101
msgid "Available after %d second(s)"
msgstr ""

#: tpl/img_optm/summary.tpl.php:93
msgid "Only press the button if the pull cron job is disabled."
msgstr ""

#: tpl/img_optm/summary.tpl.php:93
msgid "Images will be pulled automatically if the cron job is running."
msgstr ""

#: tpl/img_optm/summary.tpl.php:102
msgid "Pull Images"
msgstr ""

#: tpl/img_optm/summary.tpl.php:108
msgid "Optimization Status"
msgstr ""

#: tpl/img_optm/summary.tpl.php:141
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr ""

#: tpl/img_optm/summary.tpl.php:142
msgid "This process is automatic."
msgstr ""

#: tpl/img_optm/summary.tpl.php:156
msgid "Last pull initiated by cron at %s."
msgstr ""

#: tpl/img_optm/summary.tpl.php:184
msgid "Storage Optimization"
msgstr ""

#: tpl/img_optm/summary.tpl.php:188
msgid "A backup of each image is saved before it is optimized."
msgstr ""

#: tpl/img_optm/summary.tpl.php:194
msgid "Last calculated"
msgstr ""

#: tpl/img_optm/summary.tpl.php:198
#: tpl/img_optm/summary.tpl.php:256
msgid "Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr ""

#: tpl/img_optm/summary.tpl.php:217
msgid "Calculate Backups Disk Space"
msgstr ""

#: tpl/img_optm/summary.tpl.php:224
msgid "Image Thumbnail Group Sizes"
msgstr ""

#: tpl/img_optm/summary.tpl.php:241
msgid "Delete all backups of the original images"
msgstr ""

#: tpl/img_optm/summary.tpl.php:253
#: tpl/page_optm/settings_localization.tpl.php:61
msgid "Last ran"
msgstr ""

#: tpl/img_optm/summary.tpl.php:259
msgid "Saved"
msgstr ""

#: tpl/img_optm/summary.tpl.php:264
msgid "Are you sure you want to remove all image backups?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:265
msgid "Remove Original Image Backups"
msgstr ""

#: tpl/img_optm/summary.tpl.php:276
msgid "Image Information"
msgstr ""

#: tpl/img_optm/summary.tpl.php:285
msgid "Image groups total"
msgstr ""

#: tpl/img_optm/summary.tpl.php:289
msgid "Congratulations, all gathered!"
msgstr ""

#: tpl/img_optm/summary.tpl.php:291
msgid "What is a group?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:293
msgid "What is an image group?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:297
#: tpl/img_optm/summary.tpl.php:372
msgid "Current image post id position"
msgstr ""

#: tpl/img_optm/summary.tpl.php:298
msgid "Maximum image post id"
msgstr ""

#: tpl/img_optm/summary.tpl.php:304
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr ""

#: tpl/img_optm/summary.tpl.php:305
msgid "Rescan New Thumbnails"
msgstr ""

#: tpl/img_optm/summary.tpl.php:313
msgid "Optimization Summary"
msgstr ""

#: tpl/img_optm/summary.tpl.php:325
msgid "Last Pulled"
msgstr ""

#. translators: %s: Link tags
#: tpl/img_optm/summary.tpl.php:337
msgid "Results can be checked in %sMedia Library%s."
msgstr ""

#: tpl/img_optm/summary.tpl.php:347
msgid "Optimization Tools"
msgstr ""

#: tpl/img_optm/summary.tpl.php:350
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr ""

#: tpl/img_optm/summary.tpl.php:355
msgid "Use original images (unoptimized) on your site"
msgstr ""

#: tpl/img_optm/summary.tpl.php:356
msgid "Use Original Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:359
msgid "Switch back to using optimized images on your site"
msgstr ""

#: tpl/img_optm/summary.tpl.php:360
msgid "Use Optimized Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:372
msgid "This will reset the %1$s. If you changed WebP/AVIF settings and want to generate %2$s for the previously optimized images, use this action."
msgstr ""

#: tpl/img_optm/summary.tpl.php:377
msgid "Are you sure to destroy all optimized images?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:382
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr ""

#: tpl/inc/admin_footer.php:17
msgid "Rate %1$s on %2$s"
msgstr ""

#: tpl/inc/admin_footer.php:19
msgid "Read LiteSpeed Documentation"
msgstr ""

#: tpl/inc/admin_footer.php:21
msgid "Visit LSCWP support forum"
msgstr ""

#: tpl/inc/admin_footer.php:23
msgid "Join LiteSpeed Slack community"
msgstr ""

#: tpl/inc/check_cache_disabled.php:20
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr ""

#: tpl/inc/check_cache_disabled.php:25
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr ""

#: tpl/inc/check_cache_disabled.php:31
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr ""

#: tpl/inc/check_cache_disabled.php:40
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr ""

#: tpl/inc/check_if_network_disable_all.php:30
msgid "The network admin selected use primary site configs for all subsites."
msgstr ""

#: tpl/inc/check_if_network_disable_all.php:31
msgid "The following options are selected, but are not editable in this settings page."
msgstr ""

#: tpl/inc/in_upgrading.php:15
msgid "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."
msgstr ""

#: tpl/inc/modal.deactivation.php:22
msgid "The deactivation is temporary"
msgstr ""

#: tpl/inc/modal.deactivation.php:28
msgid "Site performance is worse"
msgstr ""

#: tpl/inc/modal.deactivation.php:33
msgid "Plugin is too complicated"
msgstr ""

#: tpl/inc/modal.deactivation.php:38
msgid "Other"
msgstr ""

#: tpl/inc/modal.deactivation.php:47
msgid "Why are you deactivating the plugin?"
msgstr ""

#: tpl/inc/modal.deactivation.php:60
msgid "On uninstall, all plugin settings will be deleted."
msgstr ""

#: tpl/inc/modal.deactivation.php:68
msgid "If you have used Image Optimization, please %sDestroy All Optimization Data%s first. NOTE: this does not remove your optimized images."
msgstr ""

#: tpl/inc/modal.deactivation.php:76
msgid "Deactivate"
msgstr ""

#: tpl/inc/modal.deactivation.php:76
msgid "Deactivate plugin"
msgstr ""

#: tpl/inc/modal.deactivation.php:77
msgid "Close popup"
msgstr ""

#: tpl/inc/show_display_installed.php:26
msgid "LiteSpeed Cache plugin is installed!"
msgstr ""

#: tpl/inc/show_display_installed.php:27
msgid "This message indicates that the plugin was installed by the server admin."
msgstr ""

#: tpl/inc/show_display_installed.php:28
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr ""

#: tpl/inc/show_display_installed.php:29
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr ""

#: tpl/inc/show_display_installed.php:30
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr ""

#: tpl/inc/show_display_installed.php:31
msgid "Examples of test cases include:"
msgstr ""

#: tpl/inc/show_display_installed.php:32
msgid "Visit the site while logged out."
msgstr ""

#: tpl/inc/show_display_installed.php:33
msgid "Create a post, make sure the front page is accurate."
msgstr ""

#. translators: %s: Link tags
#: tpl/inc/show_display_installed.php:37
msgid "If there are any questions, the team is always happy to answer any questions on the %ssupport forum%s."
msgstr ""

#: tpl/inc/show_display_installed.php:41
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr ""

#: tpl/inc/show_error_cookie.php:16
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr ""

#: tpl/inc/show_error_cookie.php:18
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr ""

#: tpl/inc/show_error_cookie.php:21
msgid "If not, please verify the setting in the %sAdvanced tab%s."
msgstr ""

#: tpl/inc/show_error_cookie.php:27
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr ""

#: tpl/inc/show_rule_conflict.php:16
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (%3$sLearn More%4$s)"
msgstr ""

#: tpl/page_optm/entry.tpl.php:16
#: tpl/page_optm/settings_css.tpl.php:30
msgid "CSS Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:17
#: tpl/page_optm/settings_js.tpl.php:17
msgid "JS Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:18
#: tpl/page_optm/settings_html.tpl.php:17
msgid "HTML Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:19
#: tpl/page_optm/settings_media.tpl.php:24
msgid "Media Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:20
msgid "VPI"
msgstr ""

#: tpl/page_optm/entry.tpl.php:21
#: tpl/page_optm/settings_media_exc.tpl.php:17
msgid "Media Excludes"
msgstr ""

#: tpl/page_optm/entry.tpl.php:22
msgid "Localization"
msgstr ""

#: tpl/page_optm/entry.tpl.php:31
msgid "LiteSpeed Cache Page Optimization"
msgstr ""

#: tpl/page_optm/entry.tpl.php:43
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:45
msgid "Minify CSS files and inline CSS code."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:59
msgid "Combine CSS files and inline CSS code."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:60
#: tpl/page_optm/settings_js.tpl.php:48
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:81
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:82
msgid "This will drop the unused CSS on each page from the combined file."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:84
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:86
msgid "Filter %s available for UCSS per page type generation."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:91
msgid "This option is bypassed because %1$s option is %2$s."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:100
#: tpl/page_optm/settings_css.tpl.php:237
#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_vpi.tpl.php:53
msgid "Last generated"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:103
#: tpl/page_optm/settings_css.tpl.php:240
msgid "Last requested cost"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:115
#: tpl/page_optm/settings_css.tpl.php:252
#: tpl/page_optm/settings_vpi.tpl.php:65
msgid "URL list in %s queue waiting for cron"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:116
#: tpl/page_optm/settings_css.tpl.php:253
#: tpl/page_optm/settings_media.tpl.php:199
#: tpl/page_optm/settings_vpi.tpl.php:66
msgid "Clear"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:153
#: tpl/page_optm/settings_css.tpl.php:158
#: tpl/page_optm/settings_css.tpl.php:290
#: tpl/page_optm/settings_css.tpl.php:295
#: tpl/page_optm/settings_vpi.tpl.php:100
#: tpl/page_optm/settings_vpi.tpl.php:105
msgid "Run %s Queue Manually"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:176
msgid "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:179
msgid "This option will automatically bypass %s option."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:193
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:213
msgid "Optimize CSS delivery."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:214
#: tpl/page_optm/settings_html.tpl.php:175
#: tpl/page_optm/settings_js.tpl.php:81
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:215
msgid "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:217
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:218
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:222
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:228
msgid "This option is bypassed due to %s option."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:312
msgid "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:325
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:336
msgid "Default"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:338
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:339
msgid "%s is recommended."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:339
msgid "Swap"
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:31
msgid "Minify HTML content."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:44
msgid "Prefetching DNS can reduce latency for visitors."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:45
#: tpl/page_optm/settings_html.tpl.php:76
msgid "For example"
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:60
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:61
msgid "This can improve the page loading speed."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:75
msgid "Preconnecting speeds up future loads from a given origin."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:91
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:106
msgid "When minifying HTML do not discard comments that match a specified pattern."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:108
msgid "If comment to be kept is like: %1$s write: %2$s"
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:123
msgid "Remove query strings from internal static resources."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:127
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:132
msgid "Append query string %s to the resources to bypass this action."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:146
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:147
msgid "This will also add a preconnect to Google Fonts to establish a connection earlier."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:161
msgid "Prevent Google Fonts from loading on all pages."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:174
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:188
msgid "This option will remove all %s tags from HTML."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:33
msgid "Minify JS files and inline JS codes."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:47
msgid "Combine all local JS files into a single file."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:51
#: tpl/page_optm/settings_js.tpl.php:85
msgid "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:52
msgid "JS error can be found from the developer console of browser by right clicking and choosing Inspect."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:66
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:77
msgid "Deferred"
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:77
msgid "Delayed"
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:79
msgid "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:22
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:27
msgid "Localization Settings"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:40
msgid "Store Gravatar locally."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:41
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:54
msgid "Refresh Gravatar cache by cron."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:67
msgid "Avatar list in queue waiting for update"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:72
#: tpl/page_optm/settings_media.tpl.php:216
msgid "Run Queue Manually"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:89
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:104
msgid "Localize external resources."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:108
msgid "Please thoroughly test all items in %s to ensure they function as expected."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:130
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:131
msgid "HTTPS sources only."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:135
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:137
#: tpl/toolbox/beta_test.tpl.php:39
msgid "Example"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:141
msgid "Please thoroughly test each JS file you add to ensure it functions as expected."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:38
msgid "Load images only when they enter the viewport."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:39
#: tpl/page_optm/settings_media.tpl.php:233
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:43
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:57
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:58
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:59
msgid "By default a gray image placeholder %s will be used."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:60
msgid "For example, %s can be used for a transparent placeholder."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:74
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:75
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:88
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:89
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:91
msgid "Variables %s will be replaced with the configured background color."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Specify the responsive placeholder SVG color."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:120
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Keep this off to use plain color placeholders."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:135
msgid "Specify the quality when generating LQIP."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:136
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:139
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:152
msgid "pixels"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:154
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:170
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:173
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:178
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:198
msgid "Size list in queue waiting for cron"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:232
msgid "Load iframes only when they enter the viewport."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:246
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:257
msgid "Use %1$s to bypass remote image dimension check when %2$s is ON."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:271
msgid "The image compression quality setting of WordPress out of 100."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:31
msgid "Listed images will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:34
msgid "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:70
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_tuning.tpl.php:112
#: tpl/page_optm/settings_tuning_css.tpl.php:37
msgid "Elements with attribute %s in html code will be excluded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:60
msgid "Images containing these class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:75
msgid "Images having these parent class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:89
msgid "Iframes containing these class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:104
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:118
msgid "Prevent any lazy load of listed pages."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:132
msgid "These images will not generate LQIP."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:43
msgid "Listed JS files or inline JS code will be delayed."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:63
msgid "Listed JS files or inline JS code will not be minified or combined."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:71
#: tpl/page_optm/settings_tuning.tpl.php:92
msgid "Predefined list will also be combined with the above settings."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:85
msgid "Listed JS files or inline JS code will not be deferred or delayed."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:106
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:126
msgid "Prevent any optimization of listed pages."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:144
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:156
msgid "Selected roles will be excluded from all optimizations."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:17
msgid "Tuning CSS Settings"
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified or combined."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:38
msgid "Predefined list will also be combined with the above settings"
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:52
msgid "Listed CSS files will be excluded from UCSS and saved to inline."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:67
msgid "List the CSS selectors whose styles should always be included in UCSS."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:70
#: tpl/page_optm/settings_tuning_css.tpl.php:145
msgid "Wildcard %s supported."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:74
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:92
msgid "Listed URI will not generate UCSS."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:99
msgid "Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:100
msgid "Use %1$s to bypass UCSS for the pages which page type is %2$s."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:113
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:114
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:128
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:142
msgid "List the CSS selectors whose styles should always be included in CCSS."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:149
msgid "Selectors must exist in the CSS. Parent classes in the HTML will not work."
msgstr ""

#: tpl/page_optm/settings_tuning_css.tpl.php:167
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr ""

#: tpl/page_optm/settings_vpi.tpl.php:37
msgid "When you use Lazy Load, it will delay the loading of all images on a page."
msgstr ""

#: tpl/page_optm/settings_vpi.tpl.php:38
msgid "The Viewport Images service detects which images appear above the fold, and excludes them from lazy load."
msgstr ""

#: tpl/page_optm/settings_vpi.tpl.php:39
msgid "This enables the page's initial screenful of imagery to be fully displayed without delay."
msgstr ""

#: tpl/page_optm/settings_vpi.tpl.php:122
msgid "Enable Viewport Images auto generation cron."
msgstr ""

#: tpl/presets/entry.tpl.php:16
msgid "Standard Presets"
msgstr ""

#: tpl/presets/entry.tpl.php:17
#: tpl/toolbox/entry.tpl.php:20
msgid "Import / Export"
msgstr ""

#: tpl/presets/entry.tpl.php:23
msgid "LiteSpeed Cache Configuration Presets"
msgstr ""

#: tpl/presets/standard.tpl.php:17
msgid "Essentials"
msgstr ""

#: tpl/presets/standard.tpl.php:19
msgid "Default Cache"
msgstr ""

#: tpl/presets/standard.tpl.php:20
msgid "Higher TTL"
msgstr ""

#: tpl/presets/standard.tpl.php:24
msgid "This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development."
msgstr ""

#: tpl/presets/standard.tpl.php:25
msgid "A Domain Key is not required to use this preset. Only basic caching features are enabled."
msgstr ""

#: tpl/presets/standard.tpl.php:29
#: tpl/toolbox/settings-debug.tpl.php:93
msgid "Basic"
msgstr ""

#: tpl/presets/standard.tpl.php:31
msgid "Everything in Essentials, Plus"
msgstr ""

#: tpl/presets/standard.tpl.php:33
msgid "Mobile Cache"
msgstr ""

#: tpl/presets/standard.tpl.php:36
msgid "This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners."
msgstr ""

#: tpl/presets/standard.tpl.php:37
msgid "A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools."
msgstr ""

#: tpl/presets/standard.tpl.php:41
msgid "Advanced (Recommended)"
msgstr ""

#: tpl/presets/standard.tpl.php:43
msgid "Everything in Basic, Plus"
msgstr ""

#: tpl/presets/standard.tpl.php:44
msgid "Guest Mode and Guest Optimization"
msgstr ""

#: tpl/presets/standard.tpl.php:45
msgid "CSS, JS and HTML Minification"
msgstr ""

#: tpl/presets/standard.tpl.php:47
msgid "JS Defer for both external and inline JS"
msgstr ""

#: tpl/presets/standard.tpl.php:48
msgid "DNS Prefetch for static files"
msgstr ""

#: tpl/presets/standard.tpl.php:50
msgid "Remove Query Strings from Static Files"
msgstr ""

#: tpl/presets/standard.tpl.php:55
msgid "This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools."
msgstr ""

#: tpl/presets/standard.tpl.php:56
#: tpl/presets/standard.tpl.php:70
msgid "A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores."
msgstr ""

#: tpl/presets/standard.tpl.php:60
msgid "Aggressive"
msgstr ""

#: tpl/presets/standard.tpl.php:62
msgid "Everything in Advanced, Plus"
msgstr ""

#: tpl/presets/standard.tpl.php:63
msgid "CSS & JS Combine"
msgstr ""

#: tpl/presets/standard.tpl.php:64
msgid "Asynchronous CSS Loading with Critical CSS"
msgstr ""

#: tpl/presets/standard.tpl.php:65
msgid "Removed Unused CSS for Users"
msgstr ""

#: tpl/presets/standard.tpl.php:66
msgid "Lazy Load for Iframes"
msgstr ""

#: tpl/presets/standard.tpl.php:69
msgid "This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning."
msgstr ""

#: tpl/presets/standard.tpl.php:74
msgid "Extreme"
msgstr ""

#: tpl/presets/standard.tpl.php:76
msgid "Everything in Aggressive, Plus"
msgstr ""

#: tpl/presets/standard.tpl.php:77
msgid "Lazy Load for Images"
msgstr ""

#: tpl/presets/standard.tpl.php:78
msgid "Viewport Image Generation"
msgstr ""

#: tpl/presets/standard.tpl.php:79
msgid "JS Delayed"
msgstr ""

#: tpl/presets/standard.tpl.php:80
msgid "Inline JS added to Combine"
msgstr ""

#: tpl/presets/standard.tpl.php:81
msgid "Inline CSS added to Combine"
msgstr ""

#: tpl/presets/standard.tpl.php:84
msgid "This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images."
msgstr ""

#: tpl/presets/standard.tpl.php:85
msgid "A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores."
msgstr ""

#: tpl/presets/standard.tpl.php:92
msgid "LiteSpeed Cache Standard Presets"
msgstr ""

#: tpl/presets/standard.tpl.php:96
msgid "Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between."
msgstr ""

#: tpl/presets/standard.tpl.php:121
msgid "Who should use this preset?"
msgstr ""

#: tpl/presets/standard.tpl.php:131
msgid "This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?"
msgstr ""

#: tpl/presets/standard.tpl.php:133
msgid "Apply Preset"
msgstr ""

#: tpl/presets/standard.tpl.php:152
msgid "unknown"
msgstr ""

#: tpl/presets/standard.tpl.php:163
msgid "History"
msgstr ""

#: tpl/presets/standard.tpl.php:173
msgid "Error: Failed to apply the settings %1$s"
msgstr ""

#: tpl/presets/standard.tpl.php:175
msgid "Restored backup settings %1$s"
msgstr ""

#: tpl/presets/standard.tpl.php:178
msgid "Applied the %1$s preset %2$s"
msgstr ""

#: tpl/presets/standard.tpl.php:189
msgid "Backup created %1$s before applying the %2$s preset"
msgstr ""

#: tpl/presets/standard.tpl.php:193
msgid "This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?"
msgstr ""

#: tpl/presets/standard.tpl.php:195
msgid "Restore Settings"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:31
msgid "Try GitHub Version"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:36
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Use latest GitHub Dev commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:49
msgid "Use latest GitHub Master commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:53
#: tpl/toolbox/beta_test.tpl.php:69
msgid "Use latest WordPress release version"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:53
msgid "OR"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:61
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:66
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:66
msgid "Use latest GitHub Dev/Master commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:69
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:73
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid "LiteSpeed Cache View .htaccess"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid ".htaccess Path"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:53
msgid "Frontend .htaccess Path"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:58
#: tpl/toolbox/edit_htaccess.tpl.php:76
msgid "Default path is"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:62
#: tpl/toolbox/edit_htaccess.tpl.php:80
msgid "PHP Constant %s is supported."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:63
#: tpl/toolbox/edit_htaccess.tpl.php:81
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:71
msgid "Backend .htaccess Path"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:91
msgid "Current %s Contents"
msgstr ""

#: tpl/toolbox/entry.tpl.php:24
msgid "View .htaccess"
msgstr ""

#: tpl/toolbox/entry.tpl.php:28
msgid "Heartbeat"
msgstr ""

#: tpl/toolbox/entry.tpl.php:29
msgid "Report"
msgstr ""

#: tpl/toolbox/entry.tpl.php:33
#: tpl/toolbox/settings-debug.tpl.php:31
msgid "Debug Settings"
msgstr ""

#: tpl/toolbox/entry.tpl.php:34
msgid "Log View"
msgstr ""

#: tpl/toolbox/entry.tpl.php:35
msgid "Beta Test"
msgstr ""

#: tpl/toolbox/entry.tpl.php:41
msgid "LiteSpeed Cache Toolbox"
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:19
msgid "Heartbeat Control"
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:26
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:28
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:43
msgid "Turn ON to control heartbeat on frontend."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:56
#: tpl/toolbox/heartbeat.tpl.php:86
#: tpl/toolbox/heartbeat.tpl.php:116
msgid "Specify the %s heartbeat interval in seconds."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:57
#: tpl/toolbox/heartbeat.tpl.php:87
#: tpl/toolbox/heartbeat.tpl.php:117
msgid "WordPress valid interval is %s seconds."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:58
#: tpl/toolbox/heartbeat.tpl.php:88
#: tpl/toolbox/heartbeat.tpl.php:118
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:73
msgid "Turn ON to control heartbeat on backend."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:103
msgid "Turn ON to control heartbeat in backend editor."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:19
msgid "Export Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:25
msgid "Export"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:31
msgid "Last exported"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:36
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:40
msgid "Import Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:48
msgid "Import"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:54
msgid "Last imported"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:59
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:63
msgid "Reset All Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:67
msgid "This will reset all settings to default settings."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:70
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:71
msgid "Reset Settings"
msgstr ""

#: tpl/toolbox/log_viewer.tpl.php:23
msgid "Purge Log"
msgstr ""

#: tpl/toolbox/log_viewer.tpl.php:28
msgid "Crawler Log"
msgstr ""

#: tpl/toolbox/log_viewer.tpl.php:35
msgid "LiteSpeed Logs"
msgstr ""

#: tpl/toolbox/log_viewer.tpl.php:46
#: tpl/toolbox/log_viewer.tpl.php:75
msgid "Clear Logs"
msgstr ""

#: tpl/toolbox/log_viewer.tpl.php:64
#: tpl/toolbox/report.tpl.php:62
msgid "Click to copy"
msgstr ""

#: tpl/toolbox/log_viewer.tpl.php:65
msgid "Copy Log"
msgstr ""

#: tpl/toolbox/purge.tpl.php:17
msgid "Purge Front Page"
msgstr ""

#: tpl/toolbox/purge.tpl.php:18
msgid "This will Purge Front Page only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:23
msgid "Purge Pages"
msgstr ""

#: tpl/toolbox/purge.tpl.php:24
msgid "This will Purge Pages only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s Error"
msgstr ""

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge %s error pages"
msgstr ""

#: tpl/toolbox/purge.tpl.php:41
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr ""

#: tpl/toolbox/purge.tpl.php:48
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:56
msgid "Purge all the object caches"
msgstr ""

#: tpl/toolbox/purge.tpl.php:65
msgid "Reset the entire opcode cache"
msgstr ""

#: tpl/toolbox/purge.tpl.php:74
msgid "This will delete all generated critical CSS files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:83
msgid "This will delete all generated unique CSS files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:92
msgid "This will delete all localized resources"
msgstr ""

#: tpl/toolbox/purge.tpl.php:101
msgid "This will delete all generated image LQIP placeholder files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:110
msgid "This will delete all cached Gravatar files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:118
msgid "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"
msgstr ""

#: tpl/toolbox/purge.tpl.php:127
msgid "Empty Entire Cache"
msgstr ""

#: tpl/toolbox/purge.tpl.php:128
msgid "Clears all cache entries related to this site, including other web applications."
msgstr ""

#: tpl/toolbox/purge.tpl.php:128
msgid "This action should only be used if things are cached incorrectly."
msgstr ""

#: tpl/toolbox/purge.tpl.php:132
msgid "This will clear EVERYTHING inside the cache."
msgstr ""

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr ""

#: tpl/toolbox/purge.tpl.php:132
msgid "If only the WordPress site should be purged, use Purge All."
msgstr ""

#: tpl/toolbox/purge.tpl.php:176
msgid "Purge By..."
msgstr ""

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr ""

#: tpl/toolbox/purge.tpl.php:188
msgid "Category"
msgstr ""

#: tpl/toolbox/purge.tpl.php:192
msgid "Post ID"
msgstr ""

#: tpl/toolbox/purge.tpl.php:196
msgid "Tag"
msgstr ""

#: tpl/toolbox/purge.tpl.php:205
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:208
msgid "Purge pages by post ID."
msgstr ""

#: tpl/toolbox/purge.tpl.php:211
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:214
msgid "Purge pages by relative or full URL."
msgstr ""

#: tpl/toolbox/purge.tpl.php:215
msgid "e.g. Use %1$s or %2$s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:225
msgid "Purge List"
msgstr ""

#: tpl/toolbox/report.tpl.php:38
msgid "Send to LiteSpeed"
msgstr ""

#: tpl/toolbox/report.tpl.php:40
msgid "Regenerate and Send a New Report"
msgstr ""

#: tpl/toolbox/report.tpl.php:48
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr ""

#: tpl/toolbox/report.tpl.php:51
msgid "Install DoLogin Security"
msgstr ""

#: tpl/toolbox/report.tpl.php:52
msgid "Go to plugins list"
msgstr ""

#: tpl/toolbox/report.tpl.php:58
msgid "LiteSpeed Report"
msgstr ""

#: tpl/toolbox/report.tpl.php:62
msgid "Last Report Number"
msgstr ""

#: tpl/toolbox/report.tpl.php:63
msgid "Last Report Date"
msgstr ""

#: tpl/toolbox/report.tpl.php:66
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr ""

#: tpl/toolbox/report.tpl.php:68
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr ""

#: tpl/toolbox/report.tpl.php:75
msgid "System Information"
msgstr ""

#: tpl/toolbox/report.tpl.php:87
msgid "Attach PHP info to report. Check this box to insert relevant data from %s."
msgstr ""

#: tpl/toolbox/report.tpl.php:96
msgid "Passwordless Link"
msgstr ""

#: tpl/toolbox/report.tpl.php:100
#: tpl/toolbox/report.tpl.php:102
msgid "Generate Link for Current User"
msgstr ""

#: tpl/toolbox/report.tpl.php:105
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr ""

#: tpl/toolbox/report.tpl.php:107
msgid "Please do NOT share the above passwordless link with anyone."
msgstr ""

#. translators: %s: Link tags
#: tpl/toolbox/report.tpl.php:112
msgid "Generated links may be managed under %sSettings%s."
msgstr ""

#: tpl/toolbox/report.tpl.php:122
msgid "Notes"
msgstr ""

#: tpl/toolbox/report.tpl.php:126
msgid "Optional"
msgstr ""

#: tpl/toolbox/report.tpl.php:127
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr ""

#: tpl/toolbox/report.tpl.php:139
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:19
msgid "Debug Helpers"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "View Site Before Optimization"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:27
msgid "View Site Before Cache"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:45
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:56
msgid "Admin IP Only"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "Outputs to a series of files in the %s directory."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:59
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:60
msgid "The Admin IP option will only output log messages on requests from admin IPs listed below."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:73
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:74
msgid "Your IP"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:80
msgid "More information about the available commands can be found here."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:95
msgid "Advanced level will log more details."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:106
msgid "MB"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:108
msgid "Specify the maximum size of the log file."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:123
msgid "Shorten query strings in the debug log to improve readability."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:136
msgid "Only log listed pages."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:150
msgid "Prevent any debug log of listed pages."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:164
msgid "Prevent writing log entries that include listed strings."
msgstr ""

= 5.6 - Aug 1 2023 =
* 🌱**Page Optimize** New JS Delay Includes option. (Mitchell Krog/Gerard Reches/Ignacy Hołoga)
* **Crawler** Sitemap can use search for URL now.
* **GUI** Restrict the scope of balloon CSS rules to avoid conflicts. (#567)
* **Object Cache** Detect Memcached in more situations. (#568)
* **API** Support `litespeed_purged_front` hook. (Umberto Fiorelli)

= 5.5.1 - Jul 19 2023 =
* 🐞**Image Optimization** Fixed a bug where WebP replacements couldn't be pulled without optimizing the original images.
* 🐞**Image Optimization** Invalid images will now be removed when sending requests to the server. (#138993)
* **Cloud** Added support for error codes `unpulled_images` and `blocklisted`. (Tynan)

= 5.5 - Jun 20 2023 =
* 🌱**Crawler** Can now use multiple sitemaps. (Tobolo/Tim Nolte)
* 🌱**Crawler** Now runs asynchronously when manually invoked.
* 🌱**Crawler** Now runs asynchronously when invoked from cron.
* 🐞**Crawler** Fixed the realtime status bug when crawling.
* **Crawler** Summary page now displays server load. (Ruikai)
* 🐞**Page Optimize** Fixed an issue where UCSS could not be generated for error pages. (james58899) #556
* 🌱**Image Optimize** Now pulls images asynchronously.
* **Image Optimize** Now prevents concurrent requests via a locking mechanism.
* **Image Optimize** The process can now bypass invalid image records and continue.
* 🐞**Image Optimize** Fixed an issue where images ready for optimization might have to wait for new images to be added before sending the request.
* **Cloud** Replaced dashboard links with login/link to my.quic.cloud actions.
* **GUI** Added indicators to show when certain options are passively enabled by Guest Mode.
* **Htaccess** Added a noabort rule to support asynchronous crawling.
* **Htaccess** The "Do Not Cache User Agents" option is now case-insensitive. (Ellen Dabo)
* **General** The "Server IP" option now allows IPv4 format only. (Ruikai)
* **Misc** Every page's closing HTML comments now displays UCSS/CCSS status.
* **Object** Fixed a warning for null get_post_type_object.
* **Object** Object_Cache::delete now always returns a boolean value.
* **Cache** Fixed advanced-cache.php file warnings for WordPress versions less than 5.3.
* **Debug** Added debug logging to record the plugin's total processing time.
* **API** HTML minification can now be bypassed via the litespeed_html_min filter.

= 5.4 - Apr 19 2023 =
* **Image Optimize** Refactored DB storage for this feature.
* **Image Optimize** Reduced DB table size.
* **Image Optimize** Existing `img_optm` DB tables will have their data gradually transitioned to the new storage format with this update. Once an `img_optm` table is empty, it won't be used anymore.
* **Page Optimize** Enabled WebP support for Googlebot User Agent.

= 5.3.3 - Feb 22 2023 =
* **Page Optimize** Excluded Jetpack stats JS.
* **DB Optimize** Fixed DB Optm SQL for revision postmeta.
* **Cache** Fixed an undefined array key warning.
* **Purge** Prevented undefined array key warning when widgets are disabled.
* **Object** Fixed dynamic property deprecation warnings.
* **Admin** Safely redirect to homepage if referer is unknown.
* **Activation** Check that item slug exists first.
* **Cache** Prevented cache header to send globally if header part already closed.
* **CSS** Improved string handling for CSS minifier.
* **Debug** Fixed undefined array key warnings.
* **Misc** Fixed implicit conversion in random string generation function `Str::rrand`.

= 5.3.2 - Jan 10 2023 =
* **Object** Fixed object cache lib incr, decr functions (thanks bdrbros/DANIEL) #516
* **Database Optimize** Database optimizer now handles postmeta when cleaning revisions #515
* **Cache** Made nocache the default for 4xx/5xx response codes.
* **Cache** Default cache TTL settings removed for 403 response code, changed to 10 mins for 500 response code.
* **GUI** Added a description for the redetect nodes function.
* **GUI** Added a description for the refresh button sync function.

= 5.3.1 - Dec 12 2022 =
* **CLI** Presets feature is now usable from the CLI. (xLukii)
* **CLI** Added 'import_remote' for litespeed-option to enable importing options from URLs. (xLukii)
* **Cache** Added LiteSpeed headers to site health check for full page cache.
* **Crawler* Fixed unauthorized crawler toggle operation. (#CVE-2022-46800)
* **UCSS** Fixed a bug where items weren't added back to the UCSS queue after purging.
* **Page Optimize** Fixed a bug where generated CSS would return 404 after upgrading via CLI.
* **3rd** Fixed a bug where a WooCommerce session doesn't exist when checking cart, notices (Jason Levy/Gilles)
* **GUI** Made LiteSpeed admin notice icon grayscale to avoid distraction. (martinsauter)
* **GUI** Fixed RTL style for notification icon.
* **API** Added a new hook `litespeed_optm_uri_exc` to exclude URI from page optimization.
* **API** Excluded `.well-known` path from page optimization.

= 5.3 - Oct 31 2022 =
* 🌱**Presets** New `Presets` feature and menu item.
* 🌱**UCSS** New option `UCSS File Excludes and Inline` to increase page score. (Ankit)
* **UCSS** When UCSS is purged, automatically append URL to UCSS generation queue. (Ankit)
* **Page Optimize** Removed a redundant `defer` attribute from Lazy Load image library usage. (#928019)
* **Image Optimize** Dropped `Create WebP Versions` setting. Will automatically enable when `Image WebP Replacement` is activated.
* **Cloud** Fixed a bug where internal updates were delayed for API keys.
* **Cloud** Improved auto alias feature by waiting for second request from alias domain validation before removing a pending alias.
* **Purge** Automatically Purge All when plugin auto update is done.
* **Purge** Fixed a potential PHP8 error that occurred when removing unused widgets. (acsnaterse)
* **Cache** Fixed an infinite 301 redirection caused by UTM-encoded link.
* **CLI** Added syntax examples for values that include line breaks (xLukii)
* **CLI** Purge requests will now be included with the original request to avoid potential CSS/JS 404 issues.
* **ESI** Check all user roles for cache vary and page optimization excludes.
* **GUI** Added a LiteSpeed icon to admin message banners to indicate the banners are from our plugin. (Michael D)
* **Crawler** Fixed a cache-miss issue that occurred when Guest Mode was ON and WebP Replacement was OFF.
* **3rd** Remove WooCommerce private cache.
* **3rd** Removed LiteSpeed metabox from ACF field group edit page. (keepmovingdk)

= 5.2.1 - Sep 7 2022 =
* 🐞**Core** Fixed a fatal error that occurred when uninstalling. (#894556 Hostinger)
* **Dash** Show partner info on the dashboard for partner-tier QC accounts.
* **UCSS** Auto-purge UCSS on post update. (Ankit)
* 🕸️**Crawler** Respect the `LITESPEED_CRAWLER_DISABLE_BLOCKLIST` constant for unexpected results too. (Abe)

= 5.2 - Aug 17 2022 =
* 🌱**UCSS** Added UCSS message queue to improve service quality and reliability
* 🐞**VPI** Fixed conflict w/ image lazyload; used HTML before image lazyload to avoid invalid `data:base64` results.
* **VPI** Changed VPI Cron default setting to OFF.
* **VPI** Automatically resend requests when VPI result contains invalid `data:` image value.
* **Conf** Fixed an issue with URI Excludes, where paths using both ^ and $ were not correctly excluded (Eric/Abe)
* **Conf** Auto corrected `WP_CONTENT_URL` protocol if it was explicitly set to `http://`.
* **Cloud** No longer sync the configuration to QUIC.cloud if configuration is unchanged.
* **Cloud** Appended home_url value into synced configuration data for wp-content folder path correction.
* 🕸️**Crawler** Improved compatibility with server `open_basedir` PHP setting limit when detecting load before crawling. (Tom Robak/mmieszalski)

= 5.1 - Aug 1 2022 =
* 🌱**Toolbox** Debug log can now show Purge/Crawler logs as well. (Tynan)
* **UCSS** Prepared for future message queue.
* **UCSS** Moved UCSS class to its own file.
* **3rd** Added 3rd-party support for WC PDF Product Vouchers. (Tynan)
* **Core** Fixed potential PHP warning when saving summary data. (Sarah Richardson)
* **Purge** Purge can now clear the summary correctly. (Kevin)
* **VPI** Added `queue_k` to API notification.

= 5.0.1 - Jul 27 2022 =
* 🐞**Cloud** Fixed a potential PHP error that could occur with the cloud service summary. (Bruno Cantuaria)
* **3rd** Added Autoptimize back to compatibility list.

= 5.0.0.1 - Jul 26 2022 =
* 🔥🐞**Cloud** Fixed an issue with the cloud request timestamp update which causes a usage sync failure. (great thanks to Kevin)

= 5.0 - Jul 25 2022 =
* 🌱**VPI** Added Viewport Images feature to LiteSpeed Options metabox on Post Edit page.
* 🌱**CDN** Added Auto CDN Setup feature for simple QUIC.cloud CDN setup. (Kevin)
* 🌱**Page Optimize** Automatically cache remote CSS/JS files when fetching for optimization (Lauren)
* 🌱**Cache** Added LiteSpeed Options for page-level cache control on Post Edit page. (denisgomesfranco)
* 🌱**Cloud** Auto Alias feature.
* 🌱**Debug** Added `Debug String Excludes` option. (Hanna)
* 🌱**UCSS** Added `Purge this page - UCSS` option to Admin Bar dropdown menu. (Ankit)
* 🌱**Guest** Added `litespeed_guest_off=1` URL query string parameter to bypass Guest Mode. (cbdfactum)
* 🐞**Page Optimize** Fixed an issue where CSS anchors could be wrongly converted to a full path when minifying. (Tynan)
* **Page Optimize** Bypass CCSS/UCSS generation when a self-crawled CSS resource returns a 404 code. (Abe)
* **Object** Allow `LSCWP_OBJECT_CACHE` predefined to turn off Object Cache. (knutsp)
* **Data** Fixed an issue where empty version tags in the database repeatedly toggled the upgrade banner and reset settings to default.
* **Purge** Fixed an issue where the site's index page could be purged upon deletion of an unviewable post. (Kevin)
* **Toolbox** Added `View site before optimization` button under `Debug` tab. (Ryan D)
* **Admin** Switch to using the `DONOTCACHEPAGE` constant to indicated WP-Admin pages are not cacheable.
* **Admin** Moved no-cache header to very beginning to avoid caching unexpected exits.
* **Cloud** Added message queue service for VPI. (Abe)
* **Cloud** Bypassed 503 error nodes from node redetection process. (Abe)
* **Cloud** Fixed a failure to detect `out_of_quota`. (Lauren)
* **Cloud** Added ability to display dismissable banners generated by QUIC.cloud.
* 🕸️**Crawler** Added realtime load detection before crawl.
* 🕸️**Crawler** Adjusted crawler behavior for Divi pages to allow for Divi's CCSS generation process. (miketemby)
* 🕸️**API** PHP constant `LITESPEED_CRAWLER_DISABLE_BLOCKLIST` and filter `litespeed_crawler_disable_blocklist` to disable blocklist. (Tobolo)
* **CDN** Automatically add a trailing slash to `CDN URL` and `Original URLs` if user didn't provide one. (Lucas)
* **Cache** When a URL redirects to a URL with a query string, consider these as different for caching purposes. (Shivam)
* **Media** Added ability to disable lazyload from the LiteSpeed Options metabox on Post Edit page.
* **Media** Added new default values to `WebP Attribute to Replace` setting for WPBakery and Slider Revolution. (JibsouX)
* **Image Optimize** Dropped redundant `Page Speed` user agent when serving WebP images. (serpentdriver)
* **GUI** Fixed an issue where manually dismissable admin messages were instead being treated as one-time messages. (Tynan Beatty)
* **GUI** Fixed an issue where subsequent admin alerts would overwrite existing alerts in the queue. (Kevin/Tynan)
* **GUI** Updated time offset in log. (Ruikai #PR444 #PR445)
* **GUI** Added `litespeed_media_ignore_remote_missing_sizes` API description.
* **CCSS** Fixed an issue where CCSS was unexpectedly bypassed if `CSS Combine` was OFF and `UCSS Inline` was ON. (Ruikai)
* **Debug** Added response headers to debug log. (Kevin)

= 4.6 - Mar 29 2022 =
* **Page Optimize** Improved compatibility for JS Delay.
* 🐞**Page Optimize** Fixed an issue for network subsites that occurred when only CSS/JS Minify are enabled.
* **Localization** Added query string compatibility for Resource URLs.
* **Vary** Fixed a potential PHP warning when server variable `REQUEST_METHOD` is not detected.
* **Cache** Guest Mode now respects Cache Excludes settings.
* **GUI** Added warning notice when enabling `Localize Resources` feature; each localized JS resource requires thorough testing!
* **GUI** Fixed a PHP Deprecated warning that occurred with the Mobile Cache User Agent setting on PHP v8.1+. (jrmora)
* **Conf** Removed Google related scripts from default `Localization Files` value.
* **Media** WordPress core Lazy Load feature is now automatically disabled when LiteSpeed Lazy Load Images option is enabled. (VR51 #Issue440)
* 🐞**API** Filter `litespeed_ucss_per_pagetype` for UCSS now also applies to CSS Combine to avoid UCSS failure. (Ankit)
* **API** Added a filter `litespeed_media_ignore_remote_missing_sizes` to disable auto detection for remote images that are missing dimensions. (Lucas)

= 4.5.0.1 - Feb 24 2022 =
* 🔥🐞**Media** Fixed an issue where lazy-loaded images would disappear when using custom CSS image loading effects.

= 4.5 - Feb 23 2022 =
* 🌱**Page Optimize** Localization is back.
* **Guest** Fixed organic traffic issue as different browsers may fail to set `document.referrer`.
* **Image Optimize** Improved wp_postmeta table compatibility when gathering images. (Thanks to Thomas Stroemme)
* 🐞**Page Optimize** Fixed a potential CSS/JS 404 issue for existing records that have been marked as expired.
* **ESI** `LITESPEED_ESI_OFF` now affects `litespeed_esi_url` API filter too.
* **Guest** Added a check to determine if Guest Mode is blocked by a third-party, and display warning if it is (Ruikai)
* **Guest** To support WP sites with multiple domains, Guest Mode detection URL no longer uses domain.
* **Report** Network now shows Toolbox page when having a large number of subsites.
* **DB Optimize** Reduced default subsites count from 10 to 3 under Network Admin -> DB Optimize page to avoid timeout.
* **Cloud** Fixed potential `lack_of_token` error when requesting domain key for cases where local summary value was not historically included in the array.
* **Cloud** Fixed a PHP fatal error that occurred when encountering a frequency issue under CLI. (Dean Taylor #Issue410)
* **Avatar** Force gravatar cache refresh in browsers and on CDN (rafaucau #PR430)
* **API** New filter `litespeed_purge_ucss` to purge a single page UCSS. (#376681)
* **API** New filter `litespeed_ucss_per_pagetype` for UCSS per page type generation. (Ankit)
* **GUI** Replaced some GUI text and settings with more inclusive language  (kebbet #PR437 #PR435)
* **3rd** Excluded `WP Statistics` from inline JS optimize. (Ryan D)
* **3rd** Added API filter `litespeed_3rd_aelia_cookies` for Aelia CurrencySwitcher.
* **Media** Updated image lazyload library to 17.5.0.

= 4.4.7 - Jan 11 2022 =
* **Page Optimize** Dropped `Inline Lazy Load Images Library` option. Now will always inline lazyload library. (Ankit)
* **3rd** Prevented JavaScript files from being appended to Rank Math SEO sitemap.
* **Purge** Dropped default stale purge when purging a post.
* **Cloud** Dropped unused API calls.
* **Cloud** Dropped redundant IP validation in API calls.

= 4.4.6 - Dec 27 2022 =
* **Guest** Restored `document.referrer` for organic traffic purposes when Guest Mode is enabled. (michelefns)
* **Image Optimize** Fixed a potential PHP notice when uploading images in WP w/ PHP7.4+. (titsmaker)
* **ESI** Fixed an issue where ESI settings were not updated on customized widgets(#422 Abe)
* **3rd** Reverted ESI Adminbar change on Elementor front pages for backward compatibility (#423 Abe)
* **3rd** Fixed an issue where disabling ESI potential caused a PHP warning when using `Perfmatters`. (Jeffrey Zhang)
* **Misc** Check whether HTTP_REFERER is set or not before using it in Router class. (#425 Abe)

= 4.4.5 - Dec 1 2021 =
* **Data** Fixed potential PHP notice when generating CSS/JS optimized files w/ PHP v7.4+. (Sarah Richardson/silencedgd/slr1979)
* **API** Added `LITESPEED_ESI_OFF` constant to disable ESI, when defined before the WP `init` hook.
* **API** Added `LSCWP_DEBUG_PATH` constant to specify debug log path. (khanh-nt)
* 🐞**GUI** Fixed an issue where admin messages were not displayed. (Daniel McD)
* **CDN** Used WP remote function to communicate w/ Cloudflare per WP guidance.
* **3rd** Added compatibility for Perfmatters plugin's script manager (#417 Abe)
* **3rd** Added compatibility for Elementor's Editor button when ESI is on (#418 Abe)

= 4.4.4 - Nov 23 2021 =
* **Page Optimize** Delay deletion of outdated CSS/JS files for a default of 20 days to avoid 404 errors with cached search engine copies.
* **Cache** When caching, no longer send a purge request for CSS/JS removal to avoid cache engine conflicts.
* 🐞**Core** Optimized SQL queries while autoloading if expected options are missing; reduced by 7 and 3 queries on backend and frontend respectively. (#396425 Jackson)
* **Page Optimize** Fixed a 404 issue that occurred when upgrading the plugin manually, with a package upload or through the plugin manager. (Tobolo/Małgorzata/Abe)
* **API** Added `litespeed_ccss_url` and `litespeed_ucss_url` API to manipulate the request URL for CCSS and UCSS.
* **REST** Fixed a potential warning when detecting cacheable status on REST call. (rafaucau)
* **OLS** Fixed an issue where the `COOKIEHASH` constant was undefined when used with OpenLiteSpeed as an MU plugin or with network activation.
* **3rd** Sanitized POST data for nextgengallery.
* **Cloud** Sanitized GET data when linking to QUIC.cloud. (#591762 WPScan)

= 4.4.3 - Oct 13 2021 =
* 🐞**Media** Fixed an issue where WebP is served erroneously under Guest Mode on older versions of Safari. (hash73)
* 🐞**Media** Reverted regex change to fix `Lazy Load Image Parent Class Name Excludes` failure. (thpstock)
* **Purge** Disabled `Purge Delay` in the optimization process by default.
* **Conf** Dropped `.htaccess Path Settings` options for security concern. (WP)
* **Conf** Dropped `CSS HTTP/2 Push`/`JS HTTP/2 Push` options. (Kevin)
* **Conf** Set `Guest Optimization` default to OFF.
* **Conf** Set `CCSS Per URL` default to OFF to avoid consuming more quota than intended after upgrade to v4. (n111)
* **Object** Fixed an issue with Object Cache warnings during upgrade, when Guest Mode is enabled.
* ☁️**Cloud** Fixed an issue with PHP notices when inquiring about quota usage for a service not currently in use.
* **GUI** Added GO detail warning. (n111)
* **GUI** Moved "quota will be still in use" warning from Guest Mode to Guest Optimization section.
* **API** Added `LITESPEED_CFG_HTACCESS` PHP Constant to specify .htaccess path.
* **API** Added `litespeed_qs_forbidden` hook to bypass `?LSCWP_CTRL=` query string. (minhduc)
* **API** Added `litespeed_delay_purge` hook to delay the following Purge header until the next request.
* **API** Added `litespeed_wpconfig_readonly` hook to disable `WP_CACHE` constant update based on the wp-config.php file. (#633545)

= 4.4.2 - Sep 23 2021 =
* **Purge** In order to clear pages containing 404 CSS/JS, the purge header will always be sent even in cases where purge must be delayed.
* 🐞**Purge** Fixed a potential PHP warning caused when generating different optimized filenames.
* **Cron** Dropped unnecessary HTML response in cron which sometimes resulted in wp-cron report email. (Gilles)
* **Page Optimize** Purge caused by CSS/JS file deletion will now be silent.
* **Page Optimize** Fixed an issue where the homepage failed to purge when addressing the 404 CSS/JS issue.
* **Avatar** Fixed potential localized Avatar folder creation warning. (mattk0220/josebab)
* **API** Added filter `litespeed_optm_html_after_head` to move all optimized code(UCSS/CCSS/Combined CSS/Combined JS) to be right before the `</head>` tag. (ducpl/Kris Regmi)
* **Debug** Under debug mode, cache/purge tags will be plaintext.

= 4.4.1 - Sep 16 2021 =
* 🐞**ESI** Fixed ESI failure on non-cached pages caused by `DONOTCACHEPAGE` constant.
* 🐞**Page Optimize** Fixed an issue where the minified CSS/JS file failed to update when the file was changed. (ceap80)
* 🐞**Page Optimize** Fixed an issue where the combined CSS/JS file randomly returned a 404 error when visiting the same URL with different query strings. (Abe)
* **API** Added `litespeed_const_DONOTCACHEPAGE` hook to control the cache-or-not result of the `DONOTCACHEPAGE` constant.

= 4.4 - Sep 8 2021 =
* 🌱**Crawler** Added the ability to enable or disable specific crawlers. (⭐ Contributed by Astrid Wang #PR390)
* 🌱**UCSS** Added `UCSS Inline` option. (Ankit).
* 🌱**UCSS** Added `UCSS URI Excludes` option. (RC Verma).
* 🐞**Page Optimize** Fixed an issue where combined CSS/JS files would potentially return 404 errors after a Purge All. (Special thanks to Abe & Ruikai)
* **Page Optimize** Minimized the potential for 404 errors by query string when Purging All.
* **Page Optimize** Dropped redundant query strings for minified CSS/JS files.
* **Conf** Ugrade configuration safely to avoid the issue of new functions not being found in old codebase.
* **Conf** Configuration upgrade process now adds a notification to admin pages and disables configuration save until upgrade is complete. (Lisa)
* **JS** Fixed an issue where JS Defer caused a `litespeed_var_1_ is not defined` error when enabled w/ ESI options. (Tobolo)
* 🐞**JS** Fixed an issue where `JS Delay` doesn't work for combined JS when `JS Combine` is enabled. (Special thanks to Joshua & Ankit)
* **JS** `JS Delay` now will continue loading JS, even if there is an error in the current JS loading process.
* 🐞**CCSS** If CCSS fails to generate, Load CSS Asynchronously will now be disabled. (Stars #54074166)
* 🐞**UCSS** If UCSS generation fails the generated error will no longer be served inside the file. (Ryan D)
* **Log** Updated the Debug log to use less code for prefix.
* **3rd** Always respect `DONOTCACHEPAGE` constant definition to fix DIVI dynamic css calculation process.

= 4.3 - Aug 16 2021 =
* **UCSS** Separated UCSS Purge from CCSS Purge. (⭐ Contributed by Alice Tang #PR388)
* 🐞**Cloud** Fixed an issue where CCSS/UCSS quota data failed to update locally.
* **Cloud** Added server load as a factor when detecting node availability.
* **Cloud** Improved the speed of checking daily quota and showing the related error message.
* **Cloud** Added ability to re-detect node availability if the current node is responding w/ a heavy load code.
* **Cloud** CCSS/UCSS/LQIP queue now exits immediately when quota is depleted.
* **Cloud** Replaced separate `d/regionnodes` with a single `d/nodes` in the node list API for image optimization.
* **LQIP** Fixed an issue with LQIP network compatibility. (⭐ Contributed by Alice Tang #PR387)
* **GUEST** JS no longer preloads for Guest Optimization. (Ankit)
* 🐞**Data** Fixed an issue where deleting the `cssjs` data folder causes a failure in the upgrade process. (Joshua #PR391)
* **GUI** Fixed a potential dashboard PHP warning when no queue existed. (jrmora)
* **GUI** Added daily quota on dashboard.
* **GUI** Added downgrade warning to Toolbox -> Beta Test.
* **GUI** Tuned `.litespeed-desc` class to full width in CSS.
* **Conf** `Preserve EXIF/XMP data` now defaults to ON due to copyright concerns. (Tobolo)
* 🐞**3rd** Fixed a PHP warning when using Google AMP w/ /amp as structure. (thanhstran98)

= 4.2 - Jul 29 2021 =
* **Cloud** Auto redirect to a new node if the current node is not available anymore.
* **Cloud** Combined CCSS/UCSS to sub services of Page Optimization.
* **Cloud** Added a daily quota rate limit to help mitigate the heavy service load at the beginning of the month.
* **Cloud** Cached the node IP list in order to speed up security check. (Lucas)
* 🐞**GUEST** Fixed an issue where Guest Mode remained enabled even when the UA setting is empty. (Stars)
* **GUEST** Guest Mode will no longer cache POST requests.
* **UCSS** Purging CSS/JS now purges the UCSS queue as well, to avoid failure when generating UCSS.
* **UCSS** Separated service entry `UCSS` from `CCSS`.
* **CCSS** Simplified `load_queue/save_queue/build_filepath_prefix` functions. (⭐ Contributed by Alice Tang #PR373)
* **CCSS** If CCSS request fails, details are now saved in the CSS file.
* **CCSS** Renamed CCSS ID in inline HTML from `litespeed-optm-css-rules` to `litespeed-ccss`. (Alice)
* **Page Optimize** CCSS/UCSS now supports Cloud queue/notify for asynchronous generation.
* **Page Optimize** Simplified CCSS/UCSS generation function.
* **Page Optimize** Added the ability to cancel CCSS/UCSS Cloud requests.
* **Page Optimize** Unnecessary quesry strings will now be dropped from CSS/JS combined files.
* **Crawler** Reset position now resets crawler running status too.
* **REST** Cloud request to REST will now detect whether an IP in in the Cloud IP list for security reasons.
* **Object** Enhanced Object Cache compatibility for `CONF_FILE` constant detection.
* **API** Added shorter alias `litespeed_tag` and other similar aliases for Cache Tag API.
* **API** Renamed `LITESPEED_BYPASS_OPTM` to `LITESPEED_NO_OPTM` for Page Optimization.
* **Toolbox** Dropped v3.6.4- versions in Beta Test as they will cause a fatal error in downgrade.
* **GUI** Added shortcut links to each section on the Dashboard.
* **GUI** Added UCSS whitelist usage description. (wyb)
* **GUI** Showed the default recommended values for Guest Mode UA/IPs.
* **3rd** Fixed AMP plugin compatibility. (⭐ Contributed by Alice Tang #PR368)
* **3rd** Bypassed all page optimization including CDN/WebP for AMP pages.
* **3rd** Improved compatibility with All in One SEO plugin sitemap. (arnaudbroes/flschaves #Issue372)
* **3rd** Added wsform nonce. (#365 cstrouse)
* **3rd** Added Easy Digital Download (EDD) & WP Menu Cart nonce. (#PR366 AkramiPro)
* **3rd** Improved compatibility w/ Restrict Content Pro. (Abe #PR370)
* **3rd** Improved compatibility w/ Gravity Forms. (Ruikai #371)

= 4.1 - Jun 25 2021 =
* 🌱**UCSS/CCSS/LQIP** Moved queue storage to file system from database wp-options table to lessen the IO load. (#633504)
* 🌱**3rd** Added an option to disable ESI for the WooCommerce Cart. (#358 Anna Feng/Astrid Wang)
* **ESI** Fixed an ESI nonce issue introduced in v4.0. (Andrew Choi)
* **Object** Used new `.litespeed_conf.dat` instead of `.object-cache.ini` for object cache configuration storage.
* **Conf** Now updating related files after plugin upgrade and not just after activation.
* 🌱**Guest** Added a Guest Mode JS Excludes option. (Ankit/Mamac/Rcverma)
* **Guest** Guest Mode now uses a lightweight script to update guest vary for reduced server load.
* **Guest** Guest Mode now adds missing image dimensions.
* **Guest** Guest vary will no longer update if there's already a vary in place to address the infinite loop caused by CloudFlare's incorrect cache control setting for PHP.
* **Guest** Guest vary update request will no longer be sent if `lscache_vary` is already set.
* **Guest** Added a Configurable Guest Mode UA/IP under the Tuning tab in the General menu.
* **Guest** Guest Mode now allows cron to be hooked, even when UCSS/CCSS options are off. (#338437 Stars)
* **Guest** Simplified the vary generation process under Guest Mode.
* **Guest** Added a Guest Mode HTML comment for easier debugging. (Ruikai)
* **Guest** Guest vary update ajax now bypasses potential POST cache.
* **CCSS** Added back the options `Separate CCSS Cache Post Types` and `Separate CCSS Cache URIs`. (Joshua/Ankit)
* **CCSS** CCSS/UCSS queue is now limited to a maximum of 500 entries.
* **Control** The cache control constant `LSCACHE_NO_CACHE` will now have a higher priority than the Forced Public Cache setting.
* **Crawler** The Crawler can now crawl Guest Mode pages.
* **Crawler** Fixed a potential XSS vulnerability in the Crawler settings. (#927355)
* **Crawler** The Crawler now supports a cookie value of `_null`. (Tobolo)
* **Media** Updated the default value for the Responsive Placeholder SVG to be transparent.
* **Media** WebP images in the background may now be served in Guest Mode.
* **Media** WebP images in CSS may now be bypassed if the requesting Guest Mode client doesn't support WebP.
* **Media** Fixed empty default image placeholder under Guest Mode.
* 🐞**Image Optimize** Changed the missing `$_POST` to `$post_data` so the database status is properly updated. (#345 Lucas)
* **Import** Export file is now readable to allow importing of partial configurations. (Ryan D/Joshua)
* **Page Optimize** Fixed W3 validator errors in Guest Mode. (#61393817)
* **3rd** A fatal WooCommerce error is no longer triggered by a custom theme reusing a previous LSCWP cache detection tag.
* **3rd** AMP may now bypass Guest Mode automatically.
* **Localize** Dropped the `Localize Resources` option as Guest Mode is a sufficient replacement. (Note: Due to user feedback during the development period, we have decided to reinstate this option in a future version.)
* **Cloud** Changed the WP API url.
* **Lang** Corrected a missing language folder.
* **GUI** Added a CCSS/UCSS loading page visualization. (⭐ Contributed by Astrid Wang & Anna Feng #PR360)
* **GUI** Added a warning to indicate when Guest Mode CCSS/UCSS quota is in use. (Contributed by Astrid Wang & Anna Feng #PR361)
* **GUI** Added a `litespeed-info` text color. (Astrid Wang)
* **GUI** Implemented various UI/UX improvements. (Joshua/Lisa)
* **GUI** Duplicate cloud service messages with the same content will only display once now. (Marc Dahl)
* **GUI** Added a WebP replacement warning for Guest Mode Optimization if WebP replacement is off.
* **Misc** Dropped `wp_assets` from distribution to reduce the package size. (lowwebtech)
* **Misc** Increased the new version and score detection intervals.
* **Misc** Optimized WP Assets images. (#352 lowwebtech)
* **Debug** Dropped the redundant error_log debug info.

= 4.0 - Apr 30 2021 =
* 🌱🌱🌱**Guest** Introduced `Guest Mode` for instantly cacheable content on the first visit.
* 🌱**UCSS** Added a new service: `Unique CSS`, to drop unused CSS from elements from combined CSS
* 🌱**CCSS** Added `HTML Lazyload` option. (Ankit)
* 🌱**CCSS** Added `CCSS Per URL` option to allow Critical CSS to be generated for each page instead of for each Post Type.
* 🌱**Media** Added `Add Missing Sizes` setting for improving Cumulative Layout Shift. (Fahim)
* 🌱**JS** Switched to new JS minification library for better compression and compatibility w/ template literals. (LuminSol)
* **Media** WebP may now be replaced in CSS.
* **Media** Can now drop image tags in noscript to avoid lazyload. (Abe #314 /mattthomas-photography)
* **Media** Bypass optimization if a page is not cacheable.
* **Image Optimize** Auto hook to `wp_update_attachment_metadata` to automate image gathering process, and to handle the new thumbnail generation after images are uploaded. (smerriman).
* **Image Optimize** Repeated image thumbnails won't be gathered anymore.
* **Image Optimize** Simplified the rescan/gather/upload_hook for existing image detection.
* **Image Optimize** Fixed the duplicated optimize size records in the postmeta table. (Abe #315)
* **Image Optimize** Allow either JSON POST request or normal form request in `notify_img`. (Lucas #313)
* **Image Optimize** Optimized SQL query for better efficiency. (lucas/Lauren)
* **Image Optimize** Fixed issue where rescan mass created duplicate images. (#954399)
* **Image Optimize** Image optimization pie will not show 100% anymore if there is still a small amount in the unfinished queue.
* **Image Optimize** WebP generation defaults to ON for Guest Mode.
* **Image Optimize** `Priority Line` package now can have smaller request interval.
* **ESI** Disable ESI when page is not cacheable. (titsmaker)
* **ESI** Fixed an issue where Divi was disabling all in edit mode, but couldn't disable ESI. (Abe)
* **ESI** ESI init moved under `init` hook from `plugin_loaded` hook.
* **CDN** Add basic support for CloudFlare API Tokens (Abe #320)
* **CSS** Simplified `Font Display Optimization` option.
* **CSS** Fixed manual cron timeout issue. (jesse Distad)
* **CSS** Inline CSS may now use `data-no-optimize` to be excluded from optimization. (popaionut)
* **JS** Combined `Load JS Defer` and `Load Inline JS Defer` options.
* **JS** Forced async to defer.
* **JS** Moved Google Analytics JS from constant default to setting default for removal.
* **JS** Fixed potential JS parsing issue caused by JS src being changed to data-src by other plugins. (ankit)
* **JS** Excluded spotlight from JS optimize. (tobolo)
* **CCSS** Fixed CCSS/UCSS manual cron timeout issue.
* **CCSS** Only 10 items will be kept for CCSS history.
* **CCSS** The appearance of CCSS Purge in the topbar menu will be determined by the existence of CCSS cache, and not the setting only.
* **CCSS** To avoid stuck queues when the current request keeps failing, the CCSS queue will always drop once requested.
* **CCSS** CCSS will no longer hide adminbar.
* **CCSS** CCSS may now be separate for network subsites. (Joshua)
* **CCSS** Gave CCSS a unique filename per URL per user role per subsite.
* **CCSS** Dropped `Separate CCSS Cache Post Types` option.
* **CCSS** Dropped `Separate CCSS Cache URIs` option.
* **CCSS** Subsites purge Avatar/CSS/JS/CCSS will not affect the whole network anymore.
* **CCSS** Implemented a better queue list for CCSS that auto collapses if there are more than 20 entries, and shows the total on top.
* **CSSJS** Now using separate CSS and JS folders instead of `cssjs`.
* **CSSJS** Automatically purge cache after CCSS is generated.
* **Network** Dropped network CSS/JS rewrite rules.
* **Cache** Send cache tag header whenever adding a tag to make it effective in the page optimization process.
* **Core** Used hook for buffer optimization; Used `init()` instead of `constructor`.
* **Object** Used `cls` instead of `get_instance` for init.
* **Cloud** Replaced one-time message with a dismissible-only message when the domain key has been automatically cleared due to domain/key dismatch.
* **API** Dropped function `hook_vary_add()`.
* **API** Dropped function `vary_add()`.
* **API** Dropped function `filter_vary_cookies()`.
* **API** Dropped function `hook_vary()`.
* **API** Dropped action `litespeed_vary_add`.
* **API** Dropped filter `litespeed_api_vary`.
* **API** Use `litespeed_vary_curr_cookies` and `litespeed_vary_cookies` for Vary cookie operations instead.
* **API** Dropped action `litespeed_vary_append`.
* **Vary** 3rd party vary cookies will not append into .htaccess anymore but only present in response vary header if in use.
* **Vary** Dropped function `append()`.
* **Vary** Commenter cookie is now considered cacheable.
* **Crawler** Minor update to crawler user agent to accommodate mobile_detect.php (Abe #304)
* **Data** Added a table truncate function.
* **Data** Added new tables url & url_file.
* **Data** Dropped cssjs table.
* **Data** Options/Summary data is now stored in JSON format to speed up backend visit. (#233250)
* **Data** Default `CSS Combine External and Inline` and `JS Combine External and Inline` to On for new installations for better compatibility.
* **Purge** Fixed potential purge warning for certain themes.
* **Purge** Purge will be stored for next valid visit to trigger if it is initially generated by CLI.
* **Page Optimize** `CSS Combine`/`JS Combine` will now share the same file if the contents are the same. Limited disk usage for better file usage and fewer issues with random string problems.
* **Page Optimize** Dropped option CSS/JS Cache TTL.
* **Page Optimize** Bypass optimization if page not cacheable.
* **Page Optimize** Purge CSS/JS will purge the `url_file` table too.
* **Page Optimize** Optionally store a vary with a shorter value.
* **Page Optimize** Removing query strings will no longer affect external assets. (ankit)
* **Page Optimize** Better regex for optimization parsing.
* **Page Optimize** Eliminated w3 validator for DNS prefetch and duplicated ID errors. (sumit Pandey)
* **Page Optimize** New Optimization for Guest Only option under Tuning.
* **Page Optimize** Now forbidding external link redirection for localization.
* **Debug** Implemented a better debug format for the 2nd parameter in the log.
* **GUI** Bypass page score banner when score is not detected (both 0). (ankit)
* **GUI** Fixed deprecated JQuery function warning in WP-Admin. (krzxsiek)

= 3.6.4 - Mar 15 2021 =
* **Toolbox** Fixed Beta Test upgrade error when upgrading to v3.7+.

= 3.6.3 - Mar 10 2021 =
* **Core** Fixed potential upgrade failure when new versions have changes in activation related functions.
* **Core** Upgrade process won't get deactivated anymore on Network setup.

= 3.6.2 - Feb 1 2021 =
* **Page Optimize** Fixed an issue where network purge CSS/JS caused 404 errors for subsites.
* **Page Optimize** Fixed an issue where purge CSS/JS only caused 404 errors.
* **Page Optimize** Added a notice for CSS/JS data detection and potential random string issue.
* **Page Optimize** Limited localization resources to specified .js only. (closte #292/ormonk)
* **JS** Data src may now be bypassed from JS Combine. (ankit)
* **CLI** Fixed a message typo in Purge. (flixwatchsupport)
* **Browser** Added font/otf to Browser Cache expire list. (ruikai)
* **Data** Updated data files to accept PR from dev branch only.
* **3rd** Add data-view-breakpoint-pointer to js_excludes.txt for the Events Calendar plugin. (therealgilles)
* **Cloud** Bypassed invalid requests.
* **Doc** CDN Mapping description improvement. (mihai A.)

= 3.6.1 - Dec 21 2020 =
* **WP** Tested up to WP v5.6.
* **WebP** Reverted WebP support on Safari Big Sur and Safari v14.0.1+ due to an inability to detect MacOS versions from UA. (@antomal)
* **CDN** Dropped the option `Load JQuery Remotely`.
* **CDN** Fixed CDN URL replacement issue in optimized CSS files. (@ankit)
* **CDN** Fixed an issue where CDN CLI wouldn't set mapping image/CSS/JS to OFF when `false` was the value.
* **CDN** Started using React for CDN Mapping settings.
* **GUI** Secured Server IP setting from potential XSS issues. (@WonTae Jang)
* **Toolbox** Supported both dev and master branches for Beta Test. Latest version updated to v3.6.1.
* **Purge** Purge Pages now can purge non-archive pages too.
* **Admin** Simplified the admin JS.
* **Admin** Limited crawler-related react JS to crawler page only.

= 3.6 - Dec 14 2020 =
* 🌱**WebP** Added WebP support on Safari Big Sur or Safari v14.0.1+. (@ruikai)
* 🐞**Config** Fixed an issue where new installations were not getting the correct default .htaccess content.
* **Crawler** Will auto bypass empty sub-sitemap instead of throwing an exception. (@nanoprobes @Tobolo)
* **Crawler** Now using React for Cookie Simulation settings instead of Vue.js. Dropped Vue.js.
* **Crawler** Dropped `Sitemap Generation` (will only use 3rd party sitemap for crawler).
* **CSS** Added `CSS Combine External and Inline` option for backward compatibility. (@lisa)
* **Object** Forbid .object-cache.ini visits. (@Tarik)
* **Page Optimize** Dropped `Remove Comments` option to avoid combine error.
* **CSS** Added a predefined CSS exclude file `data/css_excludes.txt`.
* **CSS** Excluded Flatsome theme random inline CSS from combine.
* **CSS** Excluded WoodMart theme from combine. (@moemauphie)
* **Page Optimize** Excluded tagDiv.com Newspaper theme dynamic CSS/JS from CSS/JS Combine.
* **CSS** Added predefined JS defer excludes list. (@Shivam)
* **JS** `data-no-defer` option now supports inline JS. (@rafaucau)
* **Media** Lazyload inline library is now bypassed by JS Combine.
* **Admin** Fixed WP-Admin console ID duplicate warnings.
* **Cloud** Dropped QUIC.cloud sync options that have long been unused.
* **CSS** Dropped `Unique CSS File` option (UCSS will always generate unique file, will use whitelist to group post type to one CSS).
* **GUI** Dropped Help tab.
* **Toolbox** Added 3.5.2 to version list.

= 3.5.2 - Oct 27 2020 =
* **CSS** `CSS Combine` is now compatible w/ inline noscript CSS. (@galbaras)
* **GUI** Added ability to manually dismiss the JS option reset message in v3.5.1 upgrade process. (#473917)
* 🐞**CSS** `CSS Excludes` setting will no longer lose items beginning w/ `#`. (@ankit)
* **API** New `litespeed_media_reset` API function for image editing purposes. (@Andro)

= 3.5.1 - Oct 20 2020 =
* **JS** Inline JS containing nonces can now be combined.
* **JS** Reset JS Combine/Defer to OFF when upgrading to avoid breaking sites.
* **JS** Added new option JS Combine External and Inline to allow backwards compatibility.
* **JS** Added Inline JS Defer option back. (@ankit)
* **Page Optimize** Dropped Inline JS Minify option and merged the feature into JS Minify.
* **JS** Pre-added jQuery to the default JS excludes/defer list for better layout compatibility for new users.
* **JS** Excluded Stripe/PayPal/Google Map from JS optimization. (@FPCSJames)
* **JS** Allowed excluded JS to still be HTTP2 pushed. (@joshua)
* **CCSS** Critical CSS now can avoid network pollution from other sites. (@ankit)
* **Toolbox** Beta Test now displays recent public versions so it is easier to revert to an older version
* **Vary** Server environment variable Vary can now be passed to original server from QUIC.cloud for non-LiteSpeed servers.
* **ESI** Improved backward compatibility for ESI nonce list. (@zach E)
* 🐞**Misc** Fixed failure of upgrade button on plugin news banner and made cosmetic improvements.
* **Doc** Added note that LSCWP works with ClassicPress.

= 3.5.0.2 - Sep 30 2020 =
* This is a temporary revert fix. Code is SAME as v3.4.2.

= 3.5.0.1 - Sep 29 2020 =
* 🔥🐞**CSS** Fixed print media query issue when having CSS Combine. (@paddy-duncan)

= 3.5 - Sep 29 2020 =
* **Page Optimize** Refactored CSS/JS optimization.
* **Page Optimize** CSS and JS Combine now each save to a single file without memory usage issues.
* **CSS** Inline CSS Minify is now a part of CSS Minify, and will respect the original priorities. (thanks to @galbaras)
* **JS** JS Combine now generates a single JS file in the footer. (Special thanks to @ankit)
* **JS** JS Combine now combines external JS files, too. (Thanks to @ankit)
* **JS** JS Deferred Excludes now uses the original path/filename as keywords instead of the minified path/filename, when JS Minify is enabled.
* **JS** JS Combine now combines inline JS, too.
* **JS** JS Excludes may now be used for inline JS snippet.
* **Page Optimize** Inline CSS Minify and Max Combined File Size retired due to changes listed above.
* **CSS** Combined CSS Priority retired due to changes listed above.
* **JS** Exclude JQuery, Combined JS Priority, Load Inline JS Deferred, and Inline JS Deferred Excludes retired due to changes listed above.
* **JS** Predefined data file data/js_excludes.txt now available for JS Excludes.
* **ESI** Predefined data file data/esi.nonces.txt now available for ESI Nonces.
* **ESI** Remote Fetch ESI Nonces functionality retired.
* **API** Added support for new litespeed_esi_nonces filter.
* **Object** Object Cache will not try to reconnect after failure to connect in a single process.
* **CCSS** Remote read CSS will add the scheme if it is missing from the URL.
* **CCSS** CSS will no longer be prepared for a URL if 404 result is detected.
* **CCSS** Fixed most failures caused by third party CSS syntax errors.
* **CCSS** Remote read CSS will fix the scheme if the URL doesn't have it.
* **CCSS** Excluded 404 when preparing CSS before request.
* **CCSS** Adjusted CCSS timeout from 180 seconds to 30 seconds.
* **Image Optimize** Fixed the delete attachment database error that occurred when not using the image optimization service yet.
* **Media** Added iOS 14 WebP support.
* **Data** Fixed database creation failure for MySQL v8.
* **Cloud** Error code err_key will clear the domain key in order to avoid duplicate invalid requests.
* **Network** Fixed issue with object cache password file storage that occurred when resaving the settings. (#302358)
* **Misc** Fixed IP detect compatibility w/ Apache.
* **GUI** Fixed the description for Do Not Cache Categories.
* **Preload** Upgraded Instant Click to a new stable preload library. (@stasonua0)

= 3.4.2 - Sep 8 2020 =
* **CCSS** Corrected the issue that wrongly appended non-CSS files to CSS in links before sending request.
* **3rd** YITH wishlist now sends a combined single sub request for all widgets contained in one page. (LSWS v5.4.9 build 3+ required)
* **ESI** Added support for ESI combine feature.
* **GUI** Dropped banner notification for missing domain key when domain key is not initialized.
* **Log** When QC whitelist check fails, a detailed failure log is now appended.

= 3.4.1 - Sep 2 2020 =
* 🐞**CCSS** Fixed an issue where dynamically generated CSS failed with `TypeError: Cannot read property type of undefined`.
* 🐞**Page Optimize** Fixed CSS optimization compatibility for CSS dynamically generated with PHP.
* **Page Optimize** Added the ability to defer JS even when the resource is excluded from other JS optimizations. (@slr1979)
* **ESI** Added support for ESI last parameter inline value.
* **3rd** YITH Wishlist, when cached for the first time, will no longer send sub requests.

= 3.4 - Aug 26 2020 =
* 🌱**LQIP** New setting **LQIP Excludes**.
* 🌱**LQIP** Added a Clear LQIP Queue button.
* 🌱**CCSS** Added a Clear CCSS Queue button.
* **CCSS** Fixed an issue which wrongly included preloaded images in CCSS. (@pixtweaks)
* **Network** Primary site and subsite settings now display correctly.
* **Page Optimize** Noscript tags generated by LSCWP will only be dropped when the corresponding option is enabled. (@ankit)
* **DB Optimize** Fixed database optimizer conflicts w/ object cache transient setting. (#752931)
* **3rd** Fixed an issue with WooCommerce product purge when order is placed.
* **3rd** Improved WooCommerce product comment compatibility with **WooCommerce Photo Reviews Premium** plugin when using ESI.
* **CDN** Fixed Remote jQuery compatibility with WordPress v5.5. (@pixtweaks)
* **API** New API `litespeed_purge_all_object` and `litespeed_purged_all_object` action hooks.

= 3.3.1 - Aug 12 2020 =
* 🌱**Page Optimize** New option to Remove Noscript Tags. (@phuc88bmt)
* 🐞**LQIP** Fixed a critical bug that bypassed all requests in v3.3.
* **LQIP** Requests are now bypassed if domain has no credit left.
* **Page Optimize** Inline defer will be bypassed if document listener is detected in the code. (@ssurfer)
* **CCSS** Print-only styles will no longer be included in Critical CSS.
* **API** Added hooks to Purge action to handle file deletions. (@biati)
* **Cloud** Plain permalinks are no longer required for use of cloud services.
* **Data** Added an access denial to work with OpenLiteSpeed. (@spenweb #PR228)
* **GUI** Spelling and grammar adjustments. (@blastoise186 #PR253)

= 3.3 - Aug 6 2020 =
* 🌱**Page Optimize** Added a new setting, Inline JS Deferred Excludes. (@ankit)
* **Page Optimize** CSS/JS Combine/Minify file versions will be differentiated by query string hash instead of new filename to reduce DB/file system storage.
* **Page Optimize** Added the ability to use local copies of external JS files for better control over page score impacts.
* **Page Optimize** Improved combination of CSS media queries. (@galbaras)
* **Page Optimize** Reprioritized Inline JS Defer to be optimized before encoding, for a significantly smaller result.
* **LQIP** Detect if the file exists before sending LQIP request to QUIC.cloud.
* **CCSS** Sped up CCSS process significantly by sending HTML and CSS in request.
* **CCSS** Improvements to mobile CSS support in CCSS.
* **CCSS** Minimize CCSS failures by attempting to automatically fix CSS syntax errors.
* **Cloud** Domain Key will be deleted after QUIC.cloud site_not_registered error to avoid endless repeated requests.
* **CDN** CDN Original URL will default to WP Site URL if not set. (@ruikai)
* **CLI** Global output format `--format=json/yaml/dump` and `--json` support in CLI. (@alya1992)
* **CDN** Improved handling of non-image CSS `url()` sources in CDN. (@daniel McD)
* 🐞**CDN** Fixed CDN replacement conflict w/ JS/CSS Optimize. (@ankit)
* **Crawler** Only reset Crawler waiting queues when crawling begins. (@ruikai)
* **Network** Network Enable Cache is no longer reset to ON Use Network Settings in enabled. (@RavanH)
* 🐞**Activation** Fixed a PHP warning that appeared during uninstall. (@RavanH)
* **Debug** Automatically omit long strings when dumping an array to debug log.
* **Report** Subsites report now shows overwritten values along w/ original values. (#52593959)
* **REST** Improved WP5.5 REST compatibility. (@oldrup)
* **GUI** Server IP setting moved from Crawler menu to General menu.
* **GUI** Localize resources moved to Localization tab.
* **Config** News option now defaults to ON.

= 3.2.4 - Jul 8 2020 =
* **Object** New installations no longer get custom data.ini reset, as this could cause lost configuration. (@Eric)
* **ESI** Now using `svar` to load nonces more quickly. (@Lauren)
* **ESI** Fixed the conflicts between nonces in inline JS and ESI Nonces when Inline JS Deferred is enabled. (@JesseDistad)
* 🐞**ESI** Fixed Fetch Latest Predefined Nonce button.
* 🐞**Cache** Fixed an issue where mobile visits were not being cached when Cache Mobile was disabled.
* **CDN** Bypass CDN constant `LITESPEED_BYPASS_CDN` now will apply to all CDN replacements.
* **Router** Dropped `Router::get_uid()` function.
* **Crawler** Updated role simulator function for future UCSS usage.
* **GUI** Textarea will now automatically adjust the height based on the number of rows input.
* **CLI** Fixed an issue that caused WP-Cron to exit when a task errored out. (@DovidLevine @MatthewJohnson)
* **Cloud** No longer communcate with QUIC.cloud when Domain Key is not set and Debug is enabled.
* **Cloud** Score banner no longer automatically fetches a new score. (@LucasRolff)

= 3.2.3.2 - Jun 19 2020 =
* 🔥🐞**Page Optimize** Hotfix for CSS/JS minify/combine. (@jdelgadoesteban @martin_bailey)

= 3.2.3.1 - Jun 18 2020 =
* **API** New filter `litespeed_buffer_before` and `litespeed_buffer_after`. (#PR243 @joejordanbrown)

= 3.2.3 - Jun 18 2020 =
* 🌱**Page Optimize** Added Unique CSS option for future removal of unused CSS per page. (@moongear)
* **Page Optimize** Fixed an issue where Font Optimization could fail when having Load JS Deferred and Load Inline JS Deferred. (#PR241 @joejordanbrown)
* 🐞**Page Optimize** Fixed an issue with Font Display Optimization which caused Google Fonts to load incorrectly. (#PR240 @joejordanbrown @haidan)
* 🐞**Network** Use Primary Site Configuration setting for network sites now works properly with Object Cache and Browser Cache. (#56175101)
* **API** Added filter `litespeed_is_from_cloud` to detect if the current request is from QC or not. (@lechon)
* **ESI** ESI Nonce now can fetch latest list with one click.
* **GUI** Updated remaining documentation links & some minor UI tweaks. (@Joshua Reynolds)

= 3.2.2 - Jun 10 2020 =
* 🌱**Purge** Scheduled Purge URLs now supports wildcard. (#427338)
* 🌱**ESI** ESI Nonce supports wildcard match now.
* **Network** Use Primary Site Settings now can support Domain Key, and override mechanism improved. (@alican532 #96266273)
* **Cloud** Debug mode will now have no interval limit for most cloud requests. (@ruikai)
* **Conf** Default Purge Stale to OFF.
* **GUI** Purge Stale renamed to Serve Stale.
* **Data** Predefined nonce list located in `/litespeed-cache/data/esi.nonce.txt`. Pull requests welcome.
* **Debug** Limited parameter log length.
* 🐞**CDN** Fixed an issue where upgrading lost value of CDN switch setting. (#888668)
* **3rd** Caldera Forms ESI Nonce enhancement. (@paconarud16 @marketingsweet)
* **3rd** Elementor now purges correctly after post/page updates.
* **3rd** Disabled Page Optimization features on AMP to avoid webfont JS inject. (@rahulgupta1985)

= 3.2.1 - Jun 1 2020 =
* **Cloud** LQIP/CCSS rate limit tweaks. (@ianpegg)
* **Admin** Improved frontend Admin Bar menu functionality. (#708642)
* **Crawler** Fixed an issue where cleaning up a crawler map with a leftover page number would cause a MySQL error. (@saowp)
* **Image Optimize** Added WP default thumbnails to image optimization summary list. (@johnny Nguyen)
* **REST** Improved REST compatibility w/ WP4.4-. (#767203)
* **GUI** Moved Use Primary Site Configuration to General menu. (@joshua)

= 3.2 - May 27 2020 =
* **Image Optimize** Major improvements in queue management, scalability, and speed. (@LucasRolff)
* **Cloud** Implemented a series of communication enhancements. (@Lucas Rolff)
* **Crawler** Enhanced PHP 5.3 compatibility. (@JTS-FIN #230)
* **Page Optimize** Appended image template in wpDiscuz script into default lazyload image exclude list. (@philipfaster @szmigieldesign)
* **Page Optimize** Eliminated the 404 issue for CSS/JS in server environments with missing SCRIPT_URI. (@ankit)
* **Data** ENhanced summary data storage typecasting.

= 3.1 - May 20 2020 =
* 🌱**Network** Added Debug settings to network level when on network.
* 🐞**Purge** Network now can purge all.
* 🐞**Network** Fixed issue where saving the network primary site settings failed.
* **Network** Moved Beta Test to network level when on network.
* 🐞**Cache** Fixed issue in admin where new post editor was wrongly cached for non-admin roles. (@TEKFused)
* 🐞**Data** Fixed issue with crawler & img_optm table creation failure. (@berdini @piercand)
* 🐞**Core** Improved plugin activation compatibility on Windows 10 #224 (@greenphp)
* **Core** Improved compatibility for .htaccess path search.
* **Object** Catch RedisException. (@elparts)
* Fixed Script URI issue in 3.0.9 #223 (@aonsyed)
* **Image Optimize** Show thumbnail size set list in image optimization summary. (@Johnny Nguyen)
* **Debug** Parameters will now be logged.

= 3.0.9 - May 13 2020 =
* **Purge** Comment cache can be successfully purged now.
* **Data** Better MySQL charset support for crawler/image optimize table creation. (@Roshan Jonah)
* **API** New hook to fire after Purge All. (@salvatorefresta)
* **Crawler** Resolve IP for crawler.
* **Task** PHP5.3 Cron compatibility fix.
* **3rd** Elementor edit mode compatibility.
* **Page Optimize** Fixed an issue where Purge Stale returned 404 for next visitor on CSS/JS.
* **Page Optimize** Fixed the PHP warning when srcset doesn't have size info inside. (@gvidano)
* **Cloud** Fixed the potential PHP warning when applying for the domain key.
* **Core** PHP __DIR__ const replacement. (@MathiasReker)

= 3.0.8.6 - May 4 2020 =
* **CCSS** Bypassed CCSS functionality on frontend when domain key isn't setup yet.
* **Cloud** Fixed WP node redetection bug when node expired. (@Joshua Reynolds)
* **Crawler** Fixed an issue where URL is wrongly blacklisted when using ADC.

= 3.0.8.5 - May 1 2020 =
* 🔥🐞**3rd** Hotfix for WPLister critical error due to v3.0.8.4 changes.
* **Image Optimize** Unfinished queue now will get more detailed info to indicate the proceeding status on node.
* **CLI** Options can now use true/false as value for bool. (@gavin)
* **CLI** Detect error if the ID does not exist when get/set an option value.
* **Doc** An API comment typo for `litespeed_esi_load-` is fixed.

= 3.0.8.4 - Apr 30 2020 =
* 🌱**Crawler** New setting: Sitemap timeout. (#364607)
* **Image Optimize** Images that fail to optimize are now counted to increase next request limit.
* **Cloud** Redetect fastest node every 3 days.
* **Cloud** Suppressed auto upgrade version detection error. (@marc Dahl)
* **3rd** 3rd party namespace compatibility. (#366352)

= 3.0.8.3 - Apr 28 2020 =
* **Cloud** Better compatibility for the Link to QUIC.cloud operation. (@Ronei de Sousa Almeida)
* **Image Optimize** Automatically clear invalid image sources before sending requests. (@Richard Hordern)

= 3.0.8.2 - Apr 27 2020 =
* **GUI** Corrected the Request Domain Key wording.

= 3.0.8.1 - Apr 27 2020 =
* **Object** Object cache compatibility for upgrade from v2.9.9- versions.

= 3.0.8 - Apr 27 2020 =
* Released v3 on WordPress officially.

= 3.0.4 - Apr 23 2020 =
* **Cloud** Apply Domain Key now receives error info in next apply action if failed to generate.
* **GUI** Apply Domain Key timeout now displays troubleshooting guidance.
* **REST** Added /ping and /token to REST GET for easier debug.
* **Cache** Dropped `advanced-cache.php` file detection and usage.

= 3.0.3 - Apr 21 2020 =
* **Conf** Settings from all options (data ini, defined constant, and forced) will be filtered and cast to expected type.
* **Upgrade** CDN mapping and other multiple line settings will now migrate correctly when upgrading from v2 to v3.

= 3.0.2 - Apr 17 2020 =
* **GUI** More guidance on domain key setting page.
* **Cloud** Now Apply Domain Key will append the server IP if it exists in Crawler Server IP setting.

= 3.0.1 - Apr 16 2020 =
* **Data** Increased timeout for database upgrade related to version upgrade. Display a banner while update in progress.
* **Page Optimize** All appended HTML attributes now will use double quotes to reduce the conflicts when the optimized resources are in JS snippets.

= 3.0 - Apr 15 2020 =
* 🌱**Media** LQIP (Low Quality Image Placeholder).
* 🌱**Page Optimize** Load Inline JS Deferred Compatibility Mode. (Special thanks to @joe B - AppsON)
* 🌱**Cloud** New QUIC.cloud API key setting.
* 🌱**ESI** New ESI nonce setting.
* 🌱**Media** JPG quality control. (@geckomist)
* 🌱**Media** Responsive local SVG placeholder.
* 🌱**Discussion** Gravatar warmup cron.
* 🌱**DB** Table Engine Converter tool. (@johnny Nguyen)
* 🌱**DB** Database summary: Autoload size. (@JohnnyNguyen)
* 🌱**DB** Database summary: Autoload entries list.
* 🌱**DB** Revisions older than. (@thememasterguru)
* 🌱**Cache** Forced public cache setting. (#308207)
* 🌱**Crawler** New timeout setting to avoid incorrect blacklist addition. (#900171)
* 🌱**Htaccess** Frontend & backend .htaccess path customize. (@jon81)
* 🌱**Toolbox** Detailed Heartbeat Control (@K9Heaven)
* 🌱**Purge** Purge Stale setting.
* 🌱**Page Optimize** Font display optimization. (@Joeee)
* 🌱**Page Optimize** Google font URL display optimization.
* 🌱**Page Optimize** Load Inline JS deferred.
* 🌱**Page Optimize** Store gravatar locally. (@zzTaLaNo1zz @JohnnyNguyen)
* 🌱**Page Optimize** DNS prefetch control setting.
* 🌱**Page Optimize** Lazy Load Image Parent Class Name Excludes. (@pako69)
* 🌱**Page Optimize** Lazy load iframe class excludes. (@vnnloser)
* 🌱**Page Optimize** Lazy load exclude URIs. (@wordpress_fan1 @aminaz)
* 🌱**GUI** New Dashboard and new menus.
* 🌱**Image Optimize** Supported GIF WebP optimization. (@Lucas Rolff)
* 🌱**Image Optimize** New workflow for image optimization (Gather first, request second).
* 🌱**Image Optimize** The return of Rescan.
* 🌱**CLI** Get single option cmd.
* 🌱**CLI** QUIC.cloud cmd supported.
* 🌱**CLI** CLI can send report now.
* 🌱**Health** Page speed and page score now are in dashboard.
* 🌱**Conf** Supported consts overwritten of `LITESPEED_CONF__` for all settings. (@menathor)
* 🌱**REST** New REST TTL setting.  (@thekendog)
* 🌱**CDN** New setting `HTML Attribute To Replace`. CDN can now support any HTML attribute to be replaced. (@danushkaj91)
* 🌱**Debug** Debug URI includes/excludes settings.
* 🌱**Crawler** 🐞 Support for multiple domains in custom sitemap. (@alchem)
* 🌱**Crawler** New Crawler dashboard. New sitemap w/ crawler status. New blacklist w/ reason.
* 🌱**Media** LQIP minimum dimensions setting. (@Lukasz Szmigiel)
* **Crawler** Able to add single rows to blacklist.
* **Crawler** Crawler data now saved into database instead of creating new files.
* **Crawler** Larger timeout to avoid wrongly added to blacklist.
* **Crawler** Manually changed the priority of mobile and WebP. (@rafaucau)
* **Browser** Larger Browser Cache TTL for Google Page Score improvement. (@max2348)
* **Task** Task refactored. Disabled cron will not show in cron list anymore.
* **Task** Speed up task load speed.
* **ESI** Added Bloom nonce to ESI for Elegant Themes.
* **Cloud** Able to redetect cloud nodes now.
* **Img_optm** Fixed stale data in redirected links.
* **Lazyload** CSS class `litespeed_lazyloaded` is now appended to HTML body after lazyload is finished. (@Adam Wilson)
* **Cache** Default drop qs values. (@gijo Varghese)
* **LQIP** Show all LQIP images in Media column.
* **CDN** Can now support custom REST API prefix other than wp-json. (#174 @therealgilles)
* **IAPI** Used REST for notify/destroy/check_img; Removed callback passive/aggreesive IAPI func
* **CSSJS** Saved all static files to litespeed folder; Uninstallation will remove static cache folder too; Reduced .htaccess rules by serving CSS/JS directly.
* **Object** Fixed override different ports issue. (@timofeycom #ISSUE178)
* **Conf** DB Tables will now only create when activating/upgrading/changing settings.
* **DB** Simplified table operation funcs.
* **CSSJS** Bypassed CSS/JS generation to return 404 if file is empty (@grubyy)
* **CSSJS** Inline JS defer will not conflict with JS inline optm anymore.
* **CDN** settings will not be overwritten by primary settings in network anymore. (@rudi Khoury)
* **OPcache** Purged all opcache when updating cache file. (@closte #170)
* **CLI** CLI cmd renamed.
* **CLI** Well-formatted table to show all options.
* **Purge** Only purge related posts that have a status of "published" to avoid unnecessary "draft" purges. (@Jakub Knytl)
* **GUI** Removed basic/adv mode for settings. Moved non-cache settings to its own menu.
* **Htaccess** Protected .htaccess.bk file. Only kept one backup. (@teflonmann)
* **Crawler** Crawler cookie now support `_null` as empty value.
* **Crawler** Avoid crawler PHP fatal error on Windows OS. (@technisolutions)
* **Admin** Simplified admin setting logic.
* **Conf** Multi values settings now uniformed to multi lines for easier setting.
* **Conf** New preset default data file `data/consts.default.ini`.
* **Conf** Config setting renamed and uniformed.
* **Conf** Dropped `Conf::option()`. Used `Conf::val()` instead.
* **Conf** Improved conf initialization and upgrade conversion workflow.
* **Core** Code base refactored. New namespace LiteSpeed.
* **API** New API: iframe lazyload exclude filter.
* **GUI** human readable seconds. (@MarkCanada)
* **API** API refactored. * NOTE: All 3rd party plugins that are using previous APIs, especially `LiteSpeed_Cache_API`, need to be adjusted to the latest one. Same for ESI blocks.* ESI shortcode doesn't change.
* **API** New hook `litespeed_update_confs` to settings update.
* **API** New Hooks `litespeed_frontend_shortcut` and `litespeed_backend_shortcut` for dropdown menu. (@callaloo)
* **API** Removed `litespeed_option_*` hooks. Use `litespeed_force_option` hook insteadly
* **API** Renamed `litespeed_force_option` to `litespeed_conf_force`.
* **API** Removed function `litespeed_purge_single_post`.
* **REST** New rest API to fetch public IP.
* **GUI** Hiding Cloudflare/Object Cache/Cloud API key credentials. (@menathor)
* **GUI** Renamed all backend link tag from lscache to litespeed.
* **GUI** fixed duplicated form tag.
* **GUI** Fix cron doc link. (@arnab Mohapatra)
* **GUI** Frontend adminbar menu added `Purge All` actions. (@Monarobase)
* **GUI** Localized vue.js to avoid CloudFlare cookie. (@politicske)
* **GUI** Always show optm column in Media Library for future single row optm operation. (@mikeyhash)
* **GUI** Displayed TTL range below the corresponding setting.
* **GUI** GUI refactored.
* **Debug** Report can now append notes.
* **3rd** Default added parallax-image to webp replacement for BB.
* **3rd** User Switching plugin compatibility. (@robert Staddon)
* **3rd** Beaver Builder plugin compatibility with v3.0.
* **3rd** Avada plugin compatibility w/ BBPress. (@pimg)
* **3rd** WooCommerce PayPal Checkout Gateway compatibility. (#960642 @Glen Cabusas)
* **Network** Fixed potential timeout issue when containing a large volume of sites. (@alican532)
* **Debug** `Disable All Features` now will see the warning banner if ON.
* **Debug** Dropped `log filters` section.
* **Debug** Debug and Tools sections combined into new `Toolbox` section.
* 🐞**Crawler** Multi sites will now use separate sitemap even when `Use Primary Site` is ON. (@mrhuynhanh)
* 🐞**Img_optm** Fixed large volume image table storage issue. (#328956)
* 🐞 **Cloud** Cloud callback hash validation fixed OC conflict. (@pbpiotr)
* 🎊 Any user that had the contribution to our WP community or changelog (even just bug report/feedback/suggestion) can apply for extra credits in QUIC.cloud.

= 2.9.9.2 - Nov 24 2019 =
* 🌱**GUI** New settings to limit News Feed to plugin page only.

= 2.9.9.1 - Nov 18 2019 =
* 🌱**Env** Environment Report can now append a passwordless link for support access without wp-admin password.
* **Admin** The latest v3.0 beta test link may now be shown on the admin page when it's available.
* **3rd** Compatibility with [DoLogin Security](https://wordpress.org/plugins/dologin/).
* 🐞**ESI** Fixed a failure issue with Vary Group save. (@rafasshop)
* 🐞**3rd** In browsers where WebP is not supported, Divi image picker will no longer serve WebP. (@Austin Tinius)

= 2.9.9 - Oct 28 2019 =
* <strong>Core</strong>: Preload all classes to avoid getting error for upcoming v3.0 upgrade.
* <strong>Object</strong>: Improved compatibility with upcoming v3.0 release.
* <strong>ESI</strong>: Unlocked ESI for OLS in case OLS is using QUIC.cloud CDN which supports ESI.
* <strong>3rd</strong>: Elementor Edit button will now show when ESI enabled. (#PR149 #335322 @maxgorky)
* 🐞<strong>Media</strong>: Fixed missing Media optimization column when Admin role is excluded from optimization in settings. (@mikeyhash @pako69 @dgilfillan)

= 2.9.8.7 - Oct 11 2019 =
* <strong>3rd</strong>: Enhanced WP stateless compatibility. (#PR143)
* <strong>3rd</strong>: Fixed a PHP warning caused by previous PR for AMP. (#PR176)

= 2.9.8.6 - Sep 24 2019 =
* <strong>3rd</strong>: Bypassed page optimizations for AMP. (#359748 #PR169)
* <strong>GUI</strong>: Firefox compatibility with radio button state when reloading pages. (#288940 #PR162)
* <strong>GUI</strong>: Updated Slack invitation link. (#PR173)

= 2.9.8.5 - Aug 21 2019 =
* <strong>CCSS</strong>: Removed potential PHP notice when getting post_type. (@amcgiffert)
* <strong>CDN</strong>: Bypassed CDN replacement on admin page when adding media to page/post. (@martin_bailey)
* 🐞<strong>Media</strong>: Fixed inability to update or destroy postmeta data for child images. (#167713)

= 2.9.8.4 - Jul 25 2019 =
* <strong>Object</strong>: Increased compatibility with phpredis 5.0.
* <strong>Object</strong>: Appended `wc_session_id` to default Do Not Cache Groups setting to avoid issue where WooCommerce cart items were missing when Object Cache is used. NOTE: Existing users must add `wc_session_id` manually! (#895333)
* <strong>CSS</strong>: Added null onload handler for CSS async loading. (@joejordanbrown)
* 🕷️: Increased crawler timeout to avoid wrongly adding a URL to the blacklist.
* <strong>3rd</strong>: WooCommerce Advanced Bulk Edit can now purge cache automatically.

= 2.9.8.3 - Jul 9 2019 =
* <strong>CSS</strong>: Enhanced the CSS Minify compatibility for CSS with missing closing bracket syntax errors. (@fa508210020)
* 🕷️: Crawler now supports both cookie and no-cookie cases. (@tabare)
* <strong>CCSS</strong>: Enhanced compatibility with requested pages where meta info size exceeds 8k. (@Joe B)
* <strong>CCSS</strong>: No longer processing "font" or "import" directives as they are not considered critical. (@Ankit @Joe B)
* <strong>IAPI</strong>: Removed IPv6 from all servers to avoid invalid firewall whitelist.

= 2.9.8.2 - Jun 17 2019 =
* 🔥🐞 <strong>3rd</strong>: Fixed PHP 5.3 compatibility issue with Facetwp.

= 2.9.8.1 - Jun 17 2019 =
* <strong>3rd</strong>: Set ESI template hook priority to highest number to prevent ESI conflict with Enfold theme. (#289354)
* <strong>3rd</strong>: Improved Facetwp reset button compatibility with ESI. (@emilyel)
* <strong>3rd</strong>: Enabled user role change to fix duplicate login issue for plugins that use alternative login processes. (#114165 #717223 @sergiom87)
* <strong>GUI</strong>: Wrapped static text with translate function. (@halilemreozen)

= 2.9.8 - May 22 2019 =
* <strong>Core</strong>: Refactored loading priority so user related functions & optimization features are set after user initialization. (#717223 #114165 #413338)
* <strong>Media</strong>: Improved backup file calculation query to prevent out-of-memory issue.
* <strong>Conf</strong>: Feed cache now defaults to ON.
* <strong>API</strong>: Fully remote attachment compatibility API of image optimization now supported.
* 🕷️: Bypassed vary change for crawler; crawler can now simulate default vary cookie.
* <strong>ESI</strong>: Refactored ESI widget. Removed `widget_load_get_options()` function.
* <strong>ESI</strong>: Changed the input name of widget fields in form.
* <strong>3rd</strong>: Elementor can now save ESI widget settings in frontend builder.
* <strong>3rd</strong>: WP-Stateless compatibility.
* <strong>IAPI</strong>: Image optimization can now successfully finish the destroy process with large volume images with automatic continual mode.
* 🐞<strong>CDN</strong>: Fixed issue with Load JQuery Remotely setting where WP 5.2.1 provided an unexpected jQuery version.
* 🐞<strong>3rd</strong>: Login process now gets the correct role; fixed double login issue.

= 2.9.7.2 - May 2 2019 =
* <strong>Conf</strong>: Enhanced compatibility when an option is not properly initialized.
* <strong>Conf</strong>: Prevent non-array instance in widget from causing 500 error. (#210407)
* <strong>CCSS</strong>: Increase CCSS generation timeout to 60s.
* <strong>Media</strong>: Renamed lazyload CSS class to avoid conflicts with other plugins. (@DynamoProd)
* <strong>JS</strong>: Improved W3 validator. (@istanbulantik)
* <strong>QUIC</strong>: Synced cache tag prefix for static files cache.
* <strong>ESI</strong>: Restored query strings to ESI admin bar for accurate rendering. (#977284)
* <strong>ESI</strong>: Tweaked ESI init priority to honor LITESPEED_DISABLE_ALL const. ESI will now init after plugin loaded.
* 🐞<strong>ESI</strong>: No longer initialize ESI if ESI option is OFF.
* <strong>API</strong>: New "Disable All" API function.
* <strong>API</strong>: New "Force public cache" API function.
* 🐞<strong>Vary</strong>: Fixed an issue with saving vary groups.
* 🐞<strong>IAPI</strong>: Fixed an issue where image md5 validation failed due to whitespace in the image path.
* 🐞<strong>3rd</strong>: Bypass all optimization/ESI/Cache features when entering Divi Theme Builder frontend editor.
* 🐞<strong>3rd</strong>: Fixed an issue where DIVI admin bar exit button didn't work when ESI was ON.

= 2.9.7.1 - Apr 9 2019 =
* <strong>Purge</script>: Purge All no longer includes Purge CCSS/Placeholder.
* <strong>3rd</strong>: Divi Theme Builder no longer experiences nonce expiration issues in the contact form widget. (#475461)

= 2.9.7 - Apr 1 2019 =
* 🌱🌱🌱 QUIC.cloud CDN feature. Now Apache/Nginx can use LiteSpeed cache freely.

= 2.9.6 - Mar 27 2019 =
* 🌱<strong>IAPI</strong>: Appended XMP to `Preserve EXIF data` setting. WebP will now honor this setting. (#902219)
* <strong>Object</script>: Fixed SASL connection with LSMCD.
* <strong>ESI</strong>: Converted ESI URI parameters to JSON; Added ESI validation.
* <strong>Import</strong>: Import/Export will now use JSON format. <strong>Please re-export any backed up settings. Previous backup format is no longer recognized.</strong>
* <strong>Media</strong>: WebP replacement will honor `Role Excludes` setting now. (@mfazio26)
* <strong>Data</strong>: Forbid direct visit to const.default.ini.
* <strong>Utility</strong>: Can handle WHM passed in `LITESPEED_ERR` constant now.
* <strong>IAPI</strong>: Communicate via JSON encoding.
* <strong>IAPI</strong>: IAPI v2.9.6.

= 2.9.5 - Mar 14 2019 =
* 🌱 Auto convert default WordPress nonce to ESI to avoid expiration.
* 🌱 <strong>API</strong>: Ability to easily convert custom nonce to ESI by registering `LiteSpeed_Cache_API::nonce_action`.
* <strong>OPTM</strong>: Tweaked redundant attr `data-no-optimize` in func `_analyse_links` to `data-ignore-optimize` to offer the API to bypass optimization but still move src to top of source code.
* <strong>API</strong>: Renamed default nonce ESI ID from `lscwp_nonce_esi` to `nonce`.
* <strong>API</strong>: Added WebP generation & validation hook API. (@alim #wp-stateless)
* <strong>API</strong>: Added hook to bypass vary commenter check. (#wpdiscuz)
* <strong>Doc</strong>: Clarified Cache Mobile description. (@JohnnyNguyen)
* <strong>Doc</strong>: Replaced incorrect link in description. (@JohnnyNguyen)
* <strong>3rd</strong>: Improved wpDiscuz compatibility.
* 🐞<strong>3rd</strong>: Fixed Divi Theme Builder comment compatibility on non-builder pages. (#410919)
* <strong>3rd</strong>: Added YITH ESI adjustment.

= 2.9.4.1 - Feb 28 2019 =
* 🔥🐞<strong>Tag</strong>: Fixed issue where unnecessary warning potentially displayed after upgrade process when object cache is enabled.

= 2.9.4 - Feb 27 2019 =
* 🐞<strong>REST</strong>: New REST class with better WP5 Gutenberg and internal REST call support when ESI is embedded.
* <strong>ESI</strong>: ESI block ID is now in plain text in ESI URL parameters.
* 🐞<strong>ESI</strong>: Fixed a redundant ESI 301 redirect when comma is in ESI URL.
* <strong>ESI</strong>: REST call can now parse shortcodes in ESI.
* <strong>API</strong>: Changed ESI `parse_esi_param()` function to private and `load_esi_block` function to non-static.
* <strong>API</strong>: Added `litespeed_is_json` hook for buffer JSON conversion.
* <strong>GUI</strong>: Prepended plugin name to new version notification banner.
* <strong>3rd</strong>: WPML multi domains can now be handled in optimization without CDN tricks.

= 2.9.3 - Feb 20 2019 =
* <strong>ESI</strong>: ESI shortcodes can now be saved in Gutenberg editor.
* <strong>ESI</strong>: ESI now honors the parent page JSON data type to avoid breaking REST calls (LSWS 5.3.6+).
* <strong>ESI</strong>: Added is_json parameter support for admin_bar.
* <strong>ESI</strong>: Simplified comment form code.
* <strong>3rd</strong>: Better page builder plugin compatibility within AJAX calls.
* <strong>3rd</strong>: Compatibility with FacetWP (LSWS 5.3.6+).
* <strong>3rd</strong>: Compatibility with Beaver Builder.
* <strong>Debug</strong>: Added ESI buffer content to log.
* <strong>Tag</strong>: Only append blog ID to cache tags when site is part of a network.
* <strong>IAPI</strong>: Optimized database query for pulling images.
* <strong>GUI</strong>: Added more plugin version checking for better feature compatibility.
* <strong>GUI</strong>: Ability to bypass non-critical banners with the file .litespeed_no_banner.
* <strong>Media</strong>: Background image WebP replacement now supports quotes around src.

= 2.9.2 - Feb 5 2019 =
* <strong>API</strong>: Add a hook `litespeed_esi_shortcode-*` for ESI shortcodes.
* <strong>3rd</strong>: WooCommerce can purge products now when variation stock is changed.
* 🐞🕷️: Forced HTTP1.1 for crawler due to a CURL HTTP2 bug.

= 2.9.1 - Jan 25 2019 =
* <strong>Compatibility</strong>: Fixed fatal error for PHP 5.3.
* <strong>Compatibility</strong>: Fixed PHP warning in htmlspecialchars when building URLs. (@souljahn2)
* <strong>Media</strong>: Excluded invalid image src from lazyload. (@andrew55)
* <strong>Optm</strong>: Improved URL compatibility when detecting closest cloud server.
* <strong>ESI</strong>: Supported JSON format comment format in ESI with `is_json` parameter.
* <strong>API</strong>: Added filters to CCSS/CSS/JS content. (@lhoucine)
* <strong>3rd</strong>: Improved comment compatibility with Elegant Divi Builder.
* <strong>IAPI</strong>: New Europe Image Optimization server (EU5). <strong>Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips).</strong>
* <strong>GUI</strong>: No longer show banners when `Disable All` in `Debug` is ON. (@rabbitwordpress)
* <strong>GUI</strong>: Fixed button style for RTL languages.
* <strong>GUI</strong>: Removed unnecessary translation in report.
* <strong>GUI</strong>: Updated readme wiki links.
* <strong>GUI</strong>: Fixed pie styles in image optimization page.

= 2.9 - Dec 31 2018 =
* 🌱<strong>Media</strong>: Lazy Load Image Classname Excludes. (@thinkmedia)
* 🌱: New EU/AS cloud servers for faster image optimization handling.
* 🌱: New EU/AS cloud servers for faster CCSS generation.
* 🌱: New EU/AS cloud servers for faster responsive placeholder generation.
* 🌱<strong>Conf</strong>: Ability to set single options via link.
* 🌱<strong>Cache</strong>: Ability to add custom TTLs to Force Cache URIs.
* <strong>Purge</strong>: Added post type to Purge tags.
* <strong>Purge</strong>: Redefined CCSS page types.
* <strong>Core</strong>: Using Exception for .htaccess R/W.
* <strong>IAPI</strong>: <strong>New cloud servers added. Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips).</strong>
* <strong>Optm</strong>: Trim BOM when detecting if the page is HTML.
* <strong>GUI</strong>: Added PageSpeed Score comparison into promotion banner.
* <strong>GUI</strong>: Refactored promotion banner logic.
* <strong>GUI</strong>: Removed page optimized comment when ESI Silence is requested.
* <strong>GUI</strong>: WHM transient changed to option instead of transient when storing.
* <strong>GUI</strong>: Appending more descriptions to CDN filetype setting.
* <strong>IAPI</strong>: Removed duplicate messages.
* <strong>IAPI</strong>: Removed taken_failed/client_pull(duplicated) status.
* <strong>Debug</strong>: Environment report no longer generates hash for validation.
* <strong>3rd</strong>: Non-cacheable pages no longer punch ESI holes for Divi compatibility.
* 🐞<strong>Network</strong>: Added slashes for mobile rules when activating plugin.
* 🐞<strong>CCSS</strong>: Eliminated a PHP notice when appending CCSS.

= 2.8.1 - Dec 5 2018 =
* 🐞🕷️: Fixed an activation warning related to cookie crawler. (@kacper3355 @rastel72)
* 🐞<strong>Media</strong>: Replace safely by checking if pulled images is empty or not first. (@Monarobase)
* <strong>3rd</strong>: Shortcode ESI compatibility with Elementor.

= 2.8 - Nov 30 2018 =
* 🌱: ESI shortcodes.
* 🌱: Mobile crawler.
* 🌱: Cookie crawler.
* <strong>API</strong>: Can now add `_litespeed_rm_qs=0` to bypass Remove Query Strings.
* <strong>Optm</strong>: Removed error log when minify JS failed.
* 🐞<strong>Core</strong>: Fixed a bug that caused network activation PHP warning.
* <strong>Media</strong>: Removed canvas checking for WebP to support TOR. (@odeskumair)
* <strong>Media</strong>: Eliminated potential image placeholder PHP warning.
* <strong>3rd</strong>: Bypassed Google recaptcha from Remove Query Strings for better compatibility.
* <strong>IAPI</strong>: Showed destroy timeout details.
* <strong>Debug</strong>: Moved Google Fonts log to advanced level.
* <strong>GUI</strong>: Replaced all Learn More links for functions.
* <strong>GUI</strong>: Cosmetic updates including Emoji.
* 🕷️: Removed duplicated data in sitemap and blacklist.

= 2.7.3 - Nov 26 2018 =
* <strong>Optm</strong>: Improved page render speed with Web Font Loader JS library for Load Google Fonts Asynchronously.
* <strong>Optm</strong>: Directly used JS library files in plugin folder instead of short links `/min/`.
* <strong>Optm</strong>: Handled exceptions in JS optimization when meeting badly formatted JS.
* <strong>3rd</strong>: Added Adobe Lightroom support for NextGen Gallery.
* <strong>3rd</strong>: Improved Postman app support for POST JSON requests.
* <strong>IAPI</strong>: <strong>US3 server IP changed to 68.183.60.185</strong>.

= 2.7.2 - Nov 19 2018 =
* 🌱: Auto Upgrade feature.
* <strong>CDN</strong>: Bypass CDN for cron to avoid WP jQuery deregister warning.

= 2.7.1 - Nov 15 2018 =
* 🌱<strong>CLI</strong>: Ability to set CDN mapping by `set_option litespeed-cache-cdn_mapping[url][0] https://url`.
* 🌱<strong>CDN</strong>: Ability to customize default CDN mapping data in default.ini.
* 🌱<strong>API</strong>: Default.ini now supports both text-area items and on/off options.
* <strong>Vary</strong>: Refactored Vary and related API.
* <strong>Vary</strong>: New hook to manipulate vary cookies value.
* <strong>Core</strong>: Activation now can generate Object Cache file.
* <strong>Core</strong>: Unified Object Cache/rewrite rules generation process across activation/import/reset/CLI.
* <strong>Core</strong>: Always hook activation to make activation available through the front end.
* 🐞<strong>IAPI</strong>: Fixed a bug where environment report gave incorrect image optimization data.
* 🐞<strong>OLS</strong>: Fixed a bug where login cookie kept showing a warning on OpenLiteSpeed.
* 🐞<strong>Core</strong>: Fixed a bug where Import/Activation/CLI was missing CDN mapping settings.
* <strong>API</strong>: <strong>Filters `litespeed_cache_media_lazy_img_excludes/litespeed_optm_js_defer_exc` passed-in parameter is changed from string to array.</strong>

= 2.7 - Nov 2 2018 =
* 🌱: Separate Purge log for better debugging.
* <strong>3rd</strong>: Now fully compatible with WPML.
* <strong>IAPI</strong>: Sped up Image Optimization workflow.
* <strong>GUI</strong>: Current IP now shows in Debug settings.
* <strong>GUI</strong>: Space separated placeholder queue list for better look.
* <strong>IAPI</strong>: <strong>EU3 server IP changed to 165.227.131.98</strong>.

= 2.6.4.1 - Oct 25 2018 =
* 🔥🐞<strong>Media</strong>: Fixed a bug where the wrong table was used in the Image Optimization process.
* <strong>IAPI</strong>: IAPI v2.6.4.1.

= 2.6.4 - Oct 24 2018 =
* 🌱: Ability to create custom default config options per hosting company.
* 🌱: Ability to generate mobile Critical CSS.
* 🐞<strong>Media</strong>: Fixed a bug where Network sites could incorrectly override optimized images.
* 🐞<strong>CDN</strong>: Fixed a bug where image URLs containing backslashes were matched.
* <strong>Cache</strong>: Added default Mobile UA config setting.
* <strong>GUI</strong>: Fixed unknown shortcut characters for non-English languages Setting tabs.

= 2.6.3 - Oct 18 2018 =
* 🌱: Ability to Reset All Options.
* 🌱<strong>CLI</strong>: Added new `lscache-admin reset_options` command.
* <strong>GUI</strong>: Added shortcuts for more of the Settings tabs.
* <strong>Media</strong>: Updated Lazy Load JS library to the most recent version.
* There is no longer any need to explicitly Save Settings upon Import.
* Remove Query String now will remove *all* query strings in JS/CSS static files.
* <strong>IAPI</strong>: Added summary info to debug log.

= 2.6.2 - Oct 11 2018 =
* <strong>Setting</strong>: Automatically correct invalid numeric values in configuration settings upon submit.
* 🐞<strong>Media</strong>: Fixed the issue where iframe lazy load was broken by latest Chrome release. (@ofmarconi)
* 🐞: Fixed an issue with Multisite where subsites failed to purge when only primary site has WooCommerce . (@kierancalv)

= 2.6.1 - Oct 4 2018 =
* 🌱: Ability to generate separate Critical CSS Cache for Post Types & URIs.
* <strong>API</strong>: Filter `litespeed_frontend_htaccess` for frontend htaccess path.
* <strong>Media</strong>: Removed responsive placeholder generation history to save space.

= 2.6.0.1 - Sep 24 2018 =
* 🔥🐞: Fixed an issue in responsive placeholder generation where redundant history data was being saved and using a lot of space.

= 2.6 - Sep 22 2018 =
* <strong>Vary</strong>: Moved `litespeed_cache_api_vary` hook outside of OLS condition for .htaccess generation.
* <strong>CDN</strong>: Trim spaces in original URL of CDN setting.
* <strong>API</strong>: New filter `litespeed_option_` to change all options dynamically.
* <strong>API</strong>: New `LiteSpeed_Cache_API::force_option()` to change all options dynamically.
* <strong>API</strong>: New `LiteSpeed_Cache_API::vary()` to set default vary directly for easier compaitiblity with WPML WooCommerce Multilingual.
* <strong>API</strong>: New `LiteSpeed_Cache_API::nonce()` to safely and easily allow caching of wp-nonce.
* <strong>API</strong>: New `LiteSpeed_Cache_API::hook_vary_add()` to add new vary.
* <strong>Optm</strong>: Changed HTML/JS/CSS optimization options assignment position from constructor to `finalize()`.
* <strong>Doc</strong>: Added nonce to FAQ and mentioned nonce in 3rd Party Compatibility section.
* <strong>GUI</strong>: Moved inline minify to under html minify due to the dependency.
* <strong>3rd</strong>: Cached Aelia CurrencySwitcher by default.
* 🐞: Fixed issue where enabling remote JQuery caused missing jquery-migrate library error.

= 2.5.1 - Sep 11 2018 =
* 🌱 Responsive placeholder. (@szmigieldesign)
* Changed CSS::ccss_realpath function scope to private.
* 🐞 Detected JS filetype before optimizing to avoid PHP source conflict. (@closte #50)

= 2.5 - Sep 6 2018 =
* [IMPROVEMENT] <strong>CLI</strong> can now execute Remove Original Image Backups. (@Shon)
* [UPDATE] Fixed issue where WP-PostViews documentation contained extra slashes. (#545638)
* [UPDATE] Check LITESPEED_SERVER_TYPE for more accurate LSCache Disabled messaging.
* [IAPI] Fixed a bug where optimize/fetch error notification was not being received. (@LucasRolff)

= 2.4.4 - Aug 31 2018 =
* [NEW] <strong>CLI</strong> can now support image optimization. (@Shon)
* [IMPROVEMENT] <strong>GUI</strong> Cron/CLI will not create admin message anymore.
* [UPDATE] <strong>Media</strong> Fixed a PHP notice that appeared when pulling optimized images.
* [UPDATE] Fixed a PHP notice when detecting origin of ajax call. (@iosoft)
* [DEBUG] Debug log can now log referer URL.
* [DEBUG] Changes to options will now be logged.

= 2.4.3 - Aug 27 2018 =
* [NEW] <strong>Media</strong> Ability to inline image lazyload JS library. (@Music47ell)
* [IMPROVEMENT] <strong>Media</strong> Deleting images will now clear related optimization file & info too.
* [IMPROVEMENT] <strong>Media</strong> Non-image postfix data will now be bypassed before sending image optimization request.
* [BUGFIX] <strong>CDN</strong> CDN URL will no longer be replaced during admin ajax call. (@pankaj)
* [BUGFIX] <strong>CLI</strong> WPCLI can now save options without incorrectly clearing textarea items. (@Shon)
* [GUI] Moved Settings above Manage on the main menu.

= 2.4.2 - Aug 21 2018 =
* [IMPROVEMENT] <strong>Media</strong> Sped up Image Optimization process by replacing IAPI server pull communication.
* [IMPROVEMENT] <strong>Media</strong> Ability to delete optimized WebP/original image by item in Media Library. (@redgoodapple)
* [IMPROVEMENT] <strong>CSS Optimize</strong> Generate new optimized CSS name based on purge timestamp. Allows CSS cache to be cleared for visitors. (@bradbrownmagic)
* [IMPROVEMENT] <strong>API</strong> added litespeed_img_optm_options_per_image. (@gintsg)
* [UPDATE] Stopped showing "No Image Found" message when all images have finished optimization. (@knutsp)
* [UPDATE] Improved a PHP warning when saving settings. (@sergialarconrecio)
* [UPDATE] Changed backend adminbar icon default behavior from Purge All to Purge LSCache.
* [UPDATE] Clearing CCSS cache will clear unfinished queue too.
* [UPDATE] Added "$" exact match when adding URL by frontend adminbar dropdown menu, to avoid affecting any sub-URLs.
* [UPDATE] Fixed IAPI error message showing array bug. (@thiomas)
* [UPDATE] Debug Disable All will do a Purge All.
* [UPDATE] <strong>Critical CSS server IP changed to 142.93.3.57</strong>.
* [GUI] Showed plugin update link for IAPI version message.
* [GUI] Bypassed null IAPI response message.
* [GUI] Grouped related settings with indent.
* [IAPI] Added 503 handler for IAPI response.
* [IAPI] IAPI v2.4.2.
* [IAPI] <strong>Center Server IP Changed from 34.198.229.186 to 142.93.112.87</strong>.

= 2.4.1 - Jul 19 2018 =
* [NEW FEATURE] <strong>Media</strong> Auto Level Up. Auto refill credit.
* [NEW FEATURE] <strong>Media</strong> Auto delete original backups after pulled. (@borisov87 @JMCA2)
* [NEW FEATURE] <strong>Media</strong> Auto request image optimization. (@ericsondr)
* [IMPROVEMENT] <strong>Media</strong> Fetch 404 error will notify client as other errors.
* [IMPROVEMENT] <strong>Media</strong> Support WebP for PageSpeed Insights. (@LucasRolff)
* [BUGFIX] <strong>CLI</strong> Fixed the issue where CLI import/export caused certain textarea settings to be lost. (#767519)
* [BUGFIX] <strong>CSS Optimize</strong> Fixed the issue that duplicated optimized CSS and caused rapid expansion of CSS cache folder.
* [GUI] <strong>Media</strong> Refactored operation workflow and interface.
* [UPDATE] <strong>Media</strong> Set timeout seconds to avoid pulling timeout. (@Jose)
* [UPDATE] <strong>CDN</strong>Fixed the notice when no path is in URL. (@sabitkamera)
* [UPDATE] <strong>Media</strong> Auto correct credits when pulling.
* [UPDATE] <strong>GUI</strong> Removed redundant double quote in gui.cls. (@DaveyJake)
* [IAPI] IAPI v2.4.1.
* [IAPI] Allow new error status notification and success message from IAPI.

= 2.4 - Jul 2 2018 =
* [NEW FEATURE] <strong>Media</strong> Added lossless optimization.
* [NEW FEATURE] <strong>Media</strong> Added Request Original Images ON/OFF.
* [NEW FEATURE] <strong>Media</strong> Added Request WebP ON/OFF. (@JMCA2)
* [IMPROVEMENT] <strong>Media</strong> Improved optimization tools to archive maximum compression and score.
* [IMPROVEMENT] <strong>Media</strong> Improved speed of image pull.
* [IMPROVEMENT] <strong>Media</strong> Automatically recover credit after pulled.
* [REFACTOR] <strong>Config</strong> Separated configure const class.
* [BUGFIX] <strong>Report</strong> Report can be sent successfully with emoji now. (@music47ell)
* [IAPI] New Europe Image Optimization server (EU3/EU4).
* [IAPI] New America Image Optimization server (US3/US4/US5/US6).
* [IAPI] New Asian Image Optimization server (AS3).
* [IAPI] Refactored optimization process.
* [IAPI] Increased credit limit.
* [IAPI] Removed request interval limit.
* [IAPI] IAPI v2.4.
* <strong>We strongly recommended that you re-optimize your image library to get a better compression result</strong>.

= 2.3.1 - Jun 18 2018 =
* [IMPROVEMENT] New setting to disable Generate Critical CSS. (@cybmeta)
* [IMPROVEMENT] Added filter to can_cdn/can_optm check. (@Jacob)
* [UPDATE] *Critical CSS* Added 404 css. Limit cron interval.
* [UPDATE] AJAX will not bypass CDN anymore by default. (@Jacob)
* [GUI] Show Disable All Features warning if it is on in Debug tab.

= 2.3 - Jun 13 2018 =
* [NEW FEATURE] Automatically generate critical CSS. (@joeee @ivan_ivanov @3dseo)
* [BUGFIX] "Mark this page as..." from dropdown menu will not reset settings anymore. (@cbratschi)

= 2.2.7 - Jun 4 2018 =
* [IMPROVEMENT] Improved redirection for manual image pull to avoid too many redirections warning.
* [IAPI] Increased credit limit.
* [BUGFIX] Fixed 503 error when enabling log filters in Debug tab. (#525206)
* [UPDATE] Improve compatibility when using sitemap url on servers with allow_url_open off.
* [UPDATE] Removed Crawler HTTP2 option due to causing no-cache blacklist issue for certain environments.
* [UPDATE] Privacy policy can be now translated. (@Josemi)
* [UPDATE] IAPI Increased default img request max to 3000.

= 2.2.6 - May 24 2018 =
* [NEW FEATURE] Original image backups can be removed now. (@borisov87 @JMCA2)
* [BUGFIX] Role Excludes in Tuning tab can save now. (@pako69)
* [UPDATE] Added privacy policy support.

= 2.2.5 - May 14 2018 =
* [IAPI] <strong>Image Optimization</strong> New Asian Image Optimization server (AS2).
* [INTEGRATION] Removed wpForo 3rd party file. (@massimod)

= 2.2.4 - May 7 2018 =
* [IMPROVEMENT] Improved compatibility with themes using the same js_min library. (#129093 @Darren)
* [BUGFIX] Fixed a bug when checking image path for dynamic files. (@miladk)
* [INTEGRATION] Compatibility with Universal Star Rating. (@miladk)

= 2.2.3 - Apr 27 2018 =
* [NEW FEATURE] WebP For Extra srcset setting in Media tab. (@vengen)
* [REFACTOR] Removed redundant LS consts.
* [REFACTOR] Refactored adv_cache generation flow.
* [BUGFIX] Fixed issue where inline JS minify exception caused a blank page. (@oomskaap @kenb1978)
* [UPDATE] Changed HTTP/2 Crawl default value to OFF.
* [UPDATE] Added img.data-src to default WebP replacement value for WooCommerce WebP support.
* [UPDATE] Detached crawler from LSCache LITESPEED_ON status.
* [API] Improved ESI API to honor the cache control in ESI wrapper.
* [API] Added LITESPEED_PURGE_SILENT const to bypass the notification when purging
* [INTEGRATION] Fixed issue with nonce expiration when using ESI API. (#923505 @Dan)
* [INTEGRATION] Improved compatibility with Ninja Forms by bypassing non-javascript JS from inline JS minify.
* [INTEGRATION] Added a hook for plugins that change the CSS/JS path e.g. Hide My WordPress.

= 2.2.2 - Apr 16 2018 =
* [NEW FEATURE] WebP Attribute To Replace setting in Media tab. (@vengen)
* [IMPROVEMENT] Generate adv_cache file automatically when it is lost.
* [IMPROVEMENT] Improved compatibility with ajax login. (@veganostomy)
* [UPDATE] Added object cache lib check in case user downgrades LSCWP to non-object-cache versions.
* [UPDATE] Avoided infinite loop when users enter invalid hook values in Purge All Hooks settings.
* [UPDATE] Updated log format in media&cdn class.
* [UPDATE] Added more items to Report.

= 2.2.1 - Apr 10 2018 =
* [NEW FEATURE] Included Directories setting in CDN tab. (@Dave)
* [NEW FEATURE] Purge All Hooks setting in Advanced tab.
* [UPDATE] Added background-image WebP replacement support. (@vengen)
* [UPDATE] Show recommended values for textarea items in settings.
* [UPDATE] Moved CSS/JS optimizer log to Advanced level.
* [INTEGRATION] Added WebP support for Avada Fusion Sliders. (@vengen)

= 2.2.0.2 - Apr 3 2018 =
* [HOTFIX] <strong>Object Cache</strong> Fixed the PHP warning caused by previous improvement to Object Cache.

= 2.2.0.1 - Apr 3 2018 =
* [HOTFIX] Object parameter will no longer cause warnings to be logged for Purge and Cache classes. (@kelltech @khrifat)
* [UPDATE] Removed duplicated del_file func from Object Cache class.
* [BUGFIX] `CLI` no longer shows 400 error upon successful result.

= 2.2 - Apr 2 2018 =
* [NEW FEATURE] <strong>Debug</strong> Disable All Features setting in Debug tab. (@monarobase)
* [NEW FEATURE] <strong>Cache</strong> Force Cacheable URIs setting in Excludes tab.
* [NEW FEATURE] <strong>Purge</strong> Purge all LSCache and other caches in one link.
* [REFACTOR] <strong>Purge</strong> Refactored Purge class.
* [BUGFIX] Query strings in DoNotCacheURI setting now works.
* [BUGFIX] <strong>Cache</strong> Mobile cache compatibility with WebP vary. (@Shivam #987121)
* [UPDATE] <strong>Purge</strong> Moved purge_all to Purge class from core class.
* [API] Set cacheable/Set force cacheable. (@Jacob)

= 2.1.2 - Mar 28 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Clean Up Unfinished Data feature.
* [IAPI] IAPI v2.1.2.
* [IMPROVEMENT] <strong>CSS/JS Minify</strong> Reduced loading time significantly by improving CSS/JS minify loading process. (@kokers)
* [IMPROVEMENT] <strong>CSS/JS Minify</strong> Cache empty JS Minify content. (@kokers)
* [IMPROVEMENT] <strong>Cache</strong> Cache 301 redirect when scheme/host are same.
* [BUGFIX] <strong>Media</strong> Lazy load now can support WebP. (@relle)
* [UPDATE] <strong>CSS/JS Optimize</strong> Serve static files for CSS async & lazy load JS library.
* [UPDATE] <strong>Report</strong> Appended Basic/Advanced View setting to Report.
* [UPDATE] <strong>CSS/JS Minify</strong> Removed zero-width space from CSS/JS content.
* [GUI] Added Purge CSS/JS Cache link in Admin.

= 2.1.1.1 - Mar 21 2018 =
* [BUGFIX] Fixed issue where activation failed to add rules to .htaccess.
* [BUGFIX] Fixed issue where 304 header was blank on feed page refresh.

= 2.1.1 - Mar 20 2018 =
* [NEW FEATURE] <strong>Browser Cache</strong> Unlocked for non-LiteSpeed users.
* [IMPROVEMENT] <strong>Image Optimization</strong> Fixed issue where images with bad postmeta value continued to show in not-yet-requested queue.

= 2.1 - Mar 15 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Object Cache</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Crawler</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Database Cleaner and Optimizer</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Lazy Load Images</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>CSS/JS/HTML Minify/Combine Optimize</strong> Unlocked for non-LiteSpeed users.
* [IAPI] IAPI v2.0.
* [IAPI] Increased max rows prefetch when client has additional credit.
* [IMPROVEMENT] <strong>CDN</strong> Multiple domains may now be used.
* [IMPROVEMENT] <strong>Report</strong> Added WP environment constants for better debugging.
* [REFACTOR] Separated Cloudflare CDN class.
* [BUGFIX] <strong>Image Optimization</strong> Fixed issue where certain MySQL version failed to create img_optm table. (@philippwidmer)
* [BUGFIX] <strong>Image Optimization</strong> Fixed issue where callback validation failed when pulling and sending request simultaneously.
* [GUI] Added Slack community banner.
* [INTEGRATION] CDN compatibility with WPML multiple domains. (@egemensarica)

= 2.0 - Mar 7 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Added level up guidance.
* [REFACTOR] <strong>Image Optimization</strong> Refactored Image Optimization class.
* [IAPI] <strong>Image Optimization</strong> New European Image Optimization server (EU2).
* [IMPROVEMENT] <strong>Image Optimization</strong> Manual pull action continues pulling until complete.
* [IMPROVEMENT] <strong>CDN</strong> Multiple CDNs can now be randomized for a single resource.
* [IMPROVEMENT] <strong>Image Optimization</strong> Improved compatibility of long src images.
* [IMPROVEMENT] <strong>Image Optimization</strong> Reduced runtime load.
* [IMPROVEMENT] <strong>Image Optimization</strong> Avoid potential loss/reset of notified images status when pulling.
* [IMPROVEMENT] <strong>Image Optimization</strong> Avoid duplicated optimization for multiple records in Media that have the same image source.
* [IMPROVEMENT] <strong>Image Optimization</strong> Fixed issue where phantom images continued to show in not-yet-requested queue.
* [BUGFIX] <strong>Core</strong> Improved compatibility when upgrading outside of WP Admin. (@jikatal @TylorB)
* [BUGFIX] <strong>Crawler</strong> Improved HTTP/2 compatibility to avoid erroneous blacklisting.
* [BUGFIX] <strong>Crawler</strong> Changing Delay setting will use server variable for min value validation if set.
* [UPDATE] <strong>Crawler</strong> Added HTTP/2 protocol switch in the Crawler settings.
* [UPDATE] Removed unnecessary translation strings.
* [GUI] Display translated role group name string instead of English values. (@Richard Hordern)
* [GUI] Added Join LiteSpeed Slack link.
* [GUI] <strong>Import / Export</strong> Cosmetic changes to Import Settings file field.
* [INTEGRATION] Improved compatibility with WPML Media for Image Optimization. (@szmigieldesign)

= 1.9.1.1 - February 20 2018 =
* [Hotfix] Removed empty crawler when no role simulation is set.

= 1.9.1 - February 20 2018 =
* [NEW FEATURE] Role Simulation crawler.
* [NEW FEATURE] WebP multiple crawler.
* [NEW FEATURE] HTTP/2 support for crawler.
* [BUGFIX] Fixed a js bug with the auto complete mobile user agents field when cache mobile is turned on.
* [BUGFIX] Fixed a constant undefined warning after activation.
* [GUI] Sitemap generation settings are no longer hidden when using a custom sitemap.

= 1.9 - February 12 2018 =
* [NEW FEATURE] Inline CSS/JS Minify.
* [IMPROVEMENT] Removed Composer vendor to thin the plugin folder.
* [UPDATE] Tweaked H2 to H1 in Admin headings for accessibility. (@steverep)
* [GUI] Added Mobile User Agents to basic view.
* [GUI] Moved Object Cache & Browser Cache from Cache tab to Advanced tab.
* [GUI] Moved LSCache Purge All from Adminbar to dropdown menu.

= 1.8.3 - February 2 2018 =
* [NEW FEATURE] Crawler server variable limitation support.
* [IMPROVEMENT] Added Store Transients option to fix transients missing issue when Cache Wp-Admin setting is OFF.
* [IMPROVEMENT] Tweaked ARIA support. (@steverep)
* [IMPROVEMENT] Used strpos instead of strncmp for performance. (@Zach E)
* [BUGFIX] Transient cache can now be removed when the Cache Wp-Admin setting is ON in Object Cache.
* [BUGFIX] Network sites can now save Advanced settings.
* [BUGFIX] Media list now shows in network sites.
* [BUGFIX] Show Crawler Status button is working again.
* [UPDATE] Fixed a couple of potential PHP notices in the Network cache tab and when no vary group is set.
* [GUI] Added Learn More link to all setting pages.

= 1.8.2 - January 29 2018 =
* [NEW FEATURE] Instant Click in the Advanced tab.
* [NEW FEATURE] Import/Export settings.
* [NEW FEATURE] Opcode Cache support.
* [NEW FEATURE] Basic/Advanced setting view.
* [IMPROVEMENT] Added ARIA support in widget settings.
* [BUGFIX] Multiple WordPress instances with same Object Cache address will no longer see shared data.
* [BUGFIX] WebP Replacement may now be set at the Network level.
* [BUGFIX] Object Cache file can now be removed at the Network level uninstall.

= 1.8.1 - January 22 2018 =
* [NEW FEATURE] Object Cache now supports Redis.
* [IMPROVEMENT] Memcached Object Cache now supports authorization.
* [IMPROVEMENT] A 500 error will no longer be encountered when turning on Object Cache without the proper PHP extension installed.
* [BUGFIX] Object Cache settings can now be saved at the Network level.
* [BUGFIX] Mu-plugin now supports Network setting.
* [BUGFIX] Fixed admin bar showing inaccurate Edit Page link.
* [UPDATE] Removed warning information when no Memcached server is available.

= 1.8 - January 17 2018 =
* [NEW FEATURE] Object Cache.
* [REFACTOR] Refactored Log class.
* [REFACTOR] Refactored LSCWP basic const initialization.
* [BUGFIX] Fixed Cloudflare domain search breaking when saving more than 50 domains under a single account.
* [UPDATE] Log filter settings are now their own item in the wp-option table.

= 1.7.2 - January 5 2018 =
* [NEW FEATURE] Cloudflare API support.
* [IMPROVEMENT] IAPI key can now be reset to avoid issues when domain is changed.
* [BUGFIX] Fixed JS optimizer breaking certain plugins JS.
* [UPDATE] Added cdn settings to environment report.
* [GUI] Added more shortcuts to backend adminbar.
* [INTEGRATION] WooCommerce visitors are now served from public cache when cart is empty.

= 1.7.1.1 - December 29 2017 =
* [BUGFIX] Fixed an extra trailing underscore issue when saving multiple lines with DNS Prefetch.
* [UPDATE] Cleaned up unused dependency vendor files.

= 1.7.1 - December 28 2017 =
* [NEW FEATURE] Added DNS Prefetch setting on the Optimize page.
* [NEW FEATURE] Added Combined File Max Size setting on the Tuning page.
* [IMPROVEMENT] Improved JS/CSS minify to achieve higher page scores.
* [IMPROVEMENT] Optimized JS/CSS files will not be served from private cache for OLS or with ESI off.
* [UPDATE] Fixed a potential warning for new installations on the Settings page.
* [UPDATE] Fixed an issue with guest users occasionally receiving PHP warnings.
* [BUGFIX] Fixed a bug with the Improve HTTPS Compatibility setting failing to save.
* Thanks to all of our users for your encouragement and support! Happy New Year!
* PS: Lookout 2018, we're back!

= 1.7 - December 22 2017 =
* [NEW FEATURE] Drop Query Strings setting in the Cache tab.
* [NEW FEATURE] Multiple CDN Mapping in the CDN tab.
* [IMPROVEMENT] Improve HTTP/HTTPS Compatibility setting in the Advanced tab.
* [IMPROVEMENT] Keep JS/CSS original position in HTML when excluded in setting.
* [IAPI] Reset client level credit after Image Optimization data is destroyed.
* [REFACTOR] Refactored build_input/textarea functions in admin_display class.
* [REFACTOR] Refactored CDN class.
* [GUI] Added a notice to Image Optimization and Crawler to warn when cache is disabled.
* [GUI] Improved image optimization indicator styles in Media Library List.

= 1.6.7 - December 15 2017 =
* [IAPI] Added ability to scan for new image thumbnail sizes and auto-resend image optimization requests.
* [IAPI] Added ability to destroy all optimization data.
* [IAPI] Updated IAPI to v1.6.7.
* [INTEGRATION] Fixed certain 3rd party plugins calling REST without user nonce causing logged in users to be served as guest.

= 1.6.6.1 - December 8 2017 =
* [IAPI] Limit first-time submission to one image group for test-run purposes.
* [BUGFIX] Fixed vary group generation issue associated with custom user role plugins.
* [BUGFIX] Fixed WooCommerce issue where logged-in users were erroneously purged when ESI is off.
* [BUGFIX] Fixed WooCommerce cache miss issue when ESI is off.

= 1.6.6 - December 6 2017 =
* [NEW FEATURE] Preserve EXIF in Media setting.
* [NEW FEATURE] Clear log button in Debug Log Viewer.
* [IAPI] Fixed notified images resetting to previous status when pulling.
* [IAPI] Fixed HTTPS compatibility for image optimization initialization.
* [IAPI] An error message is now displayed when image optimization request submission is bypassed due to a lack of credit.
* [IAPI] IAPI v1.6.6.
* [IMPROVEMENT] Support JS data-no-optimize attribute to bypass optimization.
* [GUI] Added image group wiki link.
* [INTEGRATION] Improved compatibility with Login With Ajax.
* [INTEGRATION] Added function_exists check for WooCommerce to avoid 500 errors.

= 1.6.5.1 - December 1 2017 =
* [HOTFIX] Fixed warning message on Edit .htaccess page.

= 1.6.5 - November 30 2017 =
* [IAPI] Manually pull image optimization action button.
* [IAPI] Automatic credit system for image optimization to bypass unfinished image optimization error.
* [IAPI] Notify failed images from LiteSpeed's Image Server.
* [IAPI] Reset/Clear failed images feature.
* [IAPI] Redesigned report page.
* [REFACTOR] Moved pull_img logic from admin_api to media.
* [BUGFIX] Fixed a compatibility issue for clients who have allow_url_open setting off.
* [BUGFIX] Fixed logged in users sometimes being served from guest cache.
* [UPDATE] Environment report is no longer saved to a file.
* [UPDATE] Removed crawler reset notification.
* [GUI] Added more details on image optimization.
* [GUI] Removed info page from admin menu.
* [GUI] Moved environment report from network level to single site level.
* [GUI] Crawler time added in a user friendly format.
* [INTEGRATION] Improved compatibility with FacetWP json call.

= 1.6.4 - November 22 2017 =
* [NEW FEATURE] Send env reports privately with a new built-in report number referral system.
* [IAPI] Increased request timeout to fix a cUrl 28 timeout issue.
* [BUGFIX] Fixed a TTL max value validation bug.
* [INTEGRATION] Improved Contact Form 7 REST call compatibility for logged in users.
* Thanks for all your ratings. That encouraged us to be more diligent. Happy Thanksgiving.

= 1.6.3 - November 17 2017 =
* [NEW FEATURE] Only async Google Fonts setting.
* [NEW FEATURE] Only create WebP images when optimizing setting.
* [NEW FEATURE] Batch switch images to original/optimized versions in Image Optimization.
* [NEW FEATURE] Browser Cache TTL setting.
* [NEW FEATURE] Cache WooCommerce Cart setting.
* [IMPROVEMENT] Moved optimized JS/CSS snippet in header html to after meta charset.
* [IMPROVEMENT] Added a constant for better JS/CSS optimization compatibility for different dir WordPress installation.
* [IAPI] Take over failed callback check instead of bypassing it.
* [IAPI] Image optimization requests are now limited to 500 images per request.
* [BUGFIX] Fixed a parsing failure bug not using attributes in html elements with dash.
* [BUGFIX] Fixed a bug causing non-script code to move to the top of a page when not using combination.
* [UPDATE] Added detailed logs for external link detection.
* [UPDATE] Added new lines in footer comment to avoid Firefox crash when enabled HTML minify.
* [API] `Purge private` / `Purge private all` / `Add private tag` functions.
* [GUI] Redesigned image optimization operation links in Media Lib list.
* [GUI] Tweaked wp-admin form save button position.
* [GUI] Added "learn more" link for image optimization.

= 1.6.2.1 - November 6 2017 =
* [INTEGRATION] Improved compatibility with old WooCommerce versions to avoid unknown 500 errors.
* [BUGFIX] Fixed WebP images sometimes being used in non-supported browsers.
* [BUGFIX] Kept query strings for HTTP/2 push to avoid re-fetching pushed sources.
* [BUGFIX] Excluded JS/CSS from HTTP/2 push when using CDN.
* [GUI] Fixed a typo in Media list.
* [GUI] Made more image optimization strings translatable.
* [GUI] Updated Tuning description to include API documentation.

= 1.6.2 - November 3 2017 =
* [NEW FEATURE] Do Not Cache Roles.
* [NEW FEATURE] Use WebP Images for supported browsers.
* [NEW FEATURE] Disable Optimization Poll ON/OFF Switch in Media tab.
* [NEW FEATURE] Revert image optimization per image in Media list.
* [NEW FEATURE] Disable/Enable image WebP per image in Media list.
* [IAPI] Limit optimized images fetching cron to a single process.
* [IAPI] Updated IAPI to v1.6.2.
* [IAPI] Fixed repeating image request issue by adding a failure status to local images.
* [REFACTOR] Refactored login vary logic.

= 1.6.1 - October 29 2017 =
* [IAPI] Updated LiteSpeed Image Optimization Server API to v1.6.1.

= 1.6 - October 27 2017 =
* [NEW FEATURE] Image Optimization.
* [NEW FEATURE] Role Excludes for Optimization.
* [NEW FEATURE] Combined CSS/JS Priority.
* [IMPROVEMENT] Bypass CDN for login/register page.
* [UPDATE] Expanded ExpiresByType rules to include new font types. ( Thanks to JMCA2 )
* [UPDATE] Removed duplicated type param in admin action link.
* [BUGFIX] Fixed CDN wrongly replacing img base64 and "fake" src in JS.
* [BUGFIX] Fixed image lazy load replacing base64 src.
* [BUGFIX] Fixed a typo in Optimize class exception.
* [GUI] New Tuning tab in admin settings panel.
* [REFACTOR] Simplified router by reducing actions and adding types.
* [REFACTOR] Renamed `run()` to `finalize()` in buffer process.

= 1.5 - October 17 2017 =
* [NEW FEATURE] Exclude JQuery (to fix inline JS error when using JS Combine).
* [NEW FEATURE] Load JQuery Remotely.
* [NEW FEATURE] JS Deferred Excludes.
* [NEW FEATURE] Lazy Load Images Excludes.
* [NEW FEATURE] Lazy Load Image Placeholder.
* [IMPROVEMENT] Improved Lazy Load size attribute for w3c validator.
* [UPDATE] Added basic caching info and LSCWP version to HTML comment.
* [UPDATE] Added debug log to HTML detection.
* [BUGFIX] Fixed potential font CORS issue when using CDN.
* [GUI] Added API docs to setting description.
* [REFACTOR] Relocated all classes under includes with backwards compatibility.
* [REFACTOR] Relocated admin templates.

= 1.4 - October 11 2017 =
* [NEW FEATURE] Lazy load images/iframes.
* [NEW FEATURE] Clean CSS/JS optimizer data functionality in DB Optimizer panel.
* [NEW FEATURE] Exclude certain URIs from optimizer.
* [IMPROVEMENT] Improved optimizer HTML check compatibility to avoid conflicts with ESI functions.
* [IMPROVEMENT] Added support for using ^ when matching the start of a path in matching settings.
* [IMPROVEMENT] Added wildcard support in CDN original URL.
* [IMPROVEMENT] Moved optimizer table initialization to admin setting panel with failure warning.
* [UPDATE] Added a one-time welcome banner.
* [UPDATE] Partly relocated class: 'api'.
* [API] Added API wrapper for removing wrapped HTML output.
* [INTEGRATION] Fixed WooCommerce conflict with optimizer.
* [INTEGRATION] Private cache support for WooCommerce v3.2.0+.
* [GUI] Added No Optimization menu to frontend.

= 1.3.1.1 - October 6 2017 =
* [BUGFIX] Improved optimizer table creating process in certain database charset to avoid css/js minify/combination failure.

= 1.3.1 - October 5 2017 =
* [NEW FEATURE] Remove WP Emoji Option.
* [IMPROVEMENT] Separated optimizer data from wp_options to improve compatibility with backup plugins.
* [IMPROVEMENT] Enhanced crawler cron hook to prevent de-scheduling in some cases.
* [IMPROVEMENT] Enhanced Remove Query Strings to also remove Emoji query strings.
* [IMPROVEMENT] Enhanced HTML detection when extra spaces are present at the beginning.
* [UPDATE] Added private cache support for OLS.
* [BUGFIX] Self-redirects are no longer cached.
* [BUGFIX] Fixed css async lib warning when loading in HTTP/2 push.

= 1.3 - October 1 2017 =
* [NEW FEATURE] Added Browser Cache support.
* [NEW FEATURE] Added Remove Query Strings support.
* [NEW FEATURE] Added Remove Google Fonts support.
* [NEW FEATURE] Added Load CSS Asynchronously support.
* [NEW FEATURE] Added Load JS Deferred support.
* [NEW FEATURE] Added Critical CSS Rules support.
* [NEW FEATURE] Added Private Cached URIs support.
* [NEW FEATURE] Added Do Not Cache Query Strings support.
* [NEW FEATURE] Added frontend adminbar shortcuts ( Purge this page/Do Not Cache/Private cache ).
* [IMPROVEMENT] Do Not Cache URIs now supports full URLs.
* [IMPROVEMENT] Improved performance of Do Not Cache settings.
* [IMPROVEMENT] Encrypted vary cookie.
* [IMPROVEMENT] Enhanced HTML optimizer.
* [IMPROVEMENT] Limited combined file size to avoid heavy memory usage.
* [IMPROVEMENT] CDN supports custom upload folder for media files.
* [API] Added purge single post API.
* [API] Added version compare API.
* [API] Enhanced ESI API for third party plugins.
* [INTEGRATION] Compatibility with NextGEN Gallery v2.2.14.
* [INTEGRATION] Compatibility with Caldera Forms v1.5.6.2+.
* [BUGFIX] Fixed CDN&Minify compatibility with css url links.
* [BUGFIX] Fixed .htaccess being regenerated despite there being no changes.
* [BUGFIX] Fixed CDN path bug for subfolder WP instance.
* [BUGFIX] Fixed crawler path bug for subfolder WP instance with different site url and home url.
* [BUGFIX] Fixed a potential Optimizer generating redundant duplicated JS in HTML bug.
* [GUI] Added a more easily accessed submit button in admin settings.
* [GUI] Admin settings page cosmetic changes.
* [GUI] Reorganized GUI css/img folder structure.
* [REFACTOR] Refactored configuration init.
* [REFACTOR] Refactored admin setting save.
* [REFACTOR] Refactored .htaccess operator and rewrite rule generation.

= 1.2.3.1 - September 20 2017 =
* [UPDATE] Improved PHP5.3 compatibility.

= 1.2.3 - September 20 2017 =
* [NEW FEATURE] Added CDN support.
* [IMPROVEMENT] Improved compatibility when upgrading by fixing a possible fatal error.
* [IMPROVEMENT] Added support for custom wp-content paths.
* [BUGFIX] Fixed non-primary network blogs not being able to minify.
* [BUGFIX] Fixed HTML Minify preventing Facebook from being able to parse og tags.
* [BUGFIX] Preview page is no longer cacheable.
* [BUGFIX] Corrected log and crawler timezone to match set WP timezone.
* [GUI] Revamp of plugin GUI.

= 1.2.2 - September 15 2017 =
* [NEW FEATURE] Added CSS/JS minification.
* [NEW FEATURE] Added CSS/JS combining.
* [NEW FEATURE] Added CSS/JS HTTP/2 server push.
* [NEW FEATURE] Added HTML minification.
* [NEW FEATURE] Added CSS/JS cache purge button in management.
* [UPDATE] Improved debug log formatting.
* [UPDATE] Fixed some description typos.

= 1.2.1 - September 7 2017 =
* [NEW FEATURE] Added Database Optimizer.
* [NEW FEATURE] Added Tab switch shortcut.
* [IMPROVEMENT] Added cache disabled check for management pages.
* [IMPROVEMENT] Renamed .htaccess backup for security.
* [BUGFIX] Fixed woocommerce default ESI setting bug.
* [REFACTOR] Show ESI page for OLS with notice.
* [REFACTOR] Management Purge GUI updated.

= 1.2.0.1 - September 1 2017 =
* [BUGFIX] Fixed a naming bug for network constant ON2.

= 1.2.0 - September 1 2017 =
* [NEW FEATURE] Added ESI support.
* [NEW FEATURE] Added a private cache TTL setting.
* [NEW FEATURE] Debug level can now be set to either 'Basic' or 'Advanced'.
* [REFACTOR] Renamed const 'NOTSET' to 'ON2' in class config.

= 1.1.6 - August 23 2017 =
* [NEW FEATURE] Added option to privately cache logged-in users.
* [NEW FEATURE] Added option to privately cache commenters.
* [NEW FEATURE] Added option to cache requests made through WordPress REST API.
* [BUGFIX] Fixed network 3rd-party full-page cache detection bug.
* [GUI] New Cache and Purge menus in Settings.

= 1.1.5.1 - August 16 2017 =
* [IMPROVEMENT] Improved compatibility of frontend&backend .htaccess path detection when site url is different than installation path.
* [UPDATE] Removed unused format string from header tags.
* [BUGFIX] 'showheader' Admin Query String now works.
* [REFACTOR] Cache tags will no longer output if not needed.

= 1.1.5 - August 10 2017 =
* [NEW FEATURE] Scheduled Purge URLs feature.
* [NEW FEATURE] Added buffer callback to improve compatibility with some plugins that force buffer cleaning.
* [NEW FEATURE] Hide purge_all admin bar quick link if cache is disabled.
* [NEW FEATURE] Required htaccess rules are now displayed when .htaccess is not writable.
* [NEW FEATURE] Debug log features: filter log support; heartbeat control; log file size limit; log viewer.
* [IMPROVEMENT] Separate crawler access log.
* [IMPROVEMENT] Lazy PURGE requests made after output are now queued and working.
* [IMPROVEMENT] Improved readme.txt with keywords relating to our compatible plugins list.
* [UPDATE] 'ExpiresDefault' conflict msg is now closeable and only appears in the .htaccess edit screen.
* [UPDATE] Improved debug log formatting.
* [INTEGRATION] Compatibility with MainWP plugin.
* [BUGFIX] Fixed WooCommerce order not purging product stock quantity.
* [BUGFIX] Fixed WooCommerce scheduled sale price not updating issue.
* [REFACTOR] Combined cache_enable functions into a single function.

= 1.1.4 - August 1 2017 =
* [IMPROVEMENT] Unexpected rewrite rules will now show an error message.
* [IMPROVEMENT] Added Cache Tag Prefix setting info in the Env Report and Info page.
* [IMPROVEMENT] LSCWP setting link is now displayed in the plugin list.
* [IMPROVEMENT] Improved performance when setting cache control.
* [UPDATE] Added backward compatibility for v1.1.2.2 API calls. (used by 3rd-party plugins)
* [BUGFIX] Fixed WPCLI purge tag/category never succeeding.

= 1.1.3 - July 31 2017 =
* [NEW FEATURE] New LiteSpeed_Cache_API class and documentation for 3rd party integration.
* [NEW FEATURE] New API function litespeed_purge_single_post($post_id).
* [NEW FEATURE] PHP CLI support for crawler.
* [IMPROVEMENT] Set 'no cache' for same location 301 redirects.
* [IMPROVEMENT] Improved LiteSpeed footer comment compatibility.
* [UPDATE] Removed 'cache tag prefix' setting.
* [BUGFIX] Fixed a bug involving CLI purge all.
* [BUGFIX] Crawler now honors X-LiteSpeed-Cache-Control for the 'no-cache' header.
* [BUGFIX] Cache/rewrite rules are now cleared when the plugin is uninstalled.
* [BUGFIX] Prevent incorrect removal of the advanced-cache.php on deactivation if it was added by another plugin.
* [BUGFIX] Fixed subfolder WP installations being unable to Purge By URL using a full URL path.
* [REFACTOR] Reorganized existing code for an upcoming ESI release.

= 1.1.2.2 - July 13 2017 =
* [BUGFIX] Fixed blank page in Hebrew language post editor by removing unused font-awesome and jquery-ui css libraries.

= 1.1.2.1 - July 5 2017 =
* [UPDATE] Improved compatibility with WooCommerce v3.1.0.

= 1.1.2 - June 20 2017 =
* [BUGFIX] Fixed missing form close tag.
* [UPDATE] Added a wiki link for enabling the crawler.
* [UPDATE] Improved Site IP description.
* [UPDATE] Added an introduction to the crawler on the Information page.
* [REFACTOR] Added more detailed error messages for Site IP and Custom Sitemap settings.

= 1.1.1.1 - June 15 2017 =
* [BUGFIX] Hotfix for insufficient validation of site IP value in crawler settings.

= 1.1.1 - June 15 2017 =
* [NEW] As of LiteSpeed Web Server v.5.1.16, the crawler can now be enabled/disabled at the server level.
* [NEW] Added the ability to provide a custom sitemap for crawling.
* [NEW] Added ability to use site IP address directly in crawler settings.
* [NEW] Crawler performance improved with the use of new custom user agent 'lsrunner'.
* [NEW] "Purge By URLs" now supports full URL paths.
* [NEW] Added thirdparty WP-PostRatings compatibility.
* [BUGFIX] Cache is now cleared when changing post status from published to draft.
* [BUGFIX] WHM activation message no longer continues to reappear after being dismissed.
* [COSMETIC] Display recommended values for settings.

= 1.1.0.1 - June 8 2017 =
* [UPDATE] Improved default crawler interval setting.
* [UPDATE] Tested up to WP 4.8.
* [BUGFIX] Fixed compatibility with plugins that output json data.
* [BUGFIX] Fixed tab switching bug.
* [BUGFIX] Removed occasional duplicated messages on save.
* [COSMETIC] Improved crawler tooltips and descriptions.

= 1.1.0 - June 6 2017 =
* [NEW] Added a crawler - this includes configuration options and a dedicated admin page. Uses wp-cron
* [NEW] Added integration for WPLister
* [NEW] Added integration for Avada
* [UPDATE] General structure of the plugin revamped
* [UPDATE] Improved look of admin pages
* [BUGFIX] Fix any/all wp-content path retrieval issues
* [BUGFIX] Use realpath to clear symbolic link when determining .htaccess paths
* [BUGFIX] Fixed a bug where upgrading multiple plugins did not trigger a purge all
* [BUGFIX] Fixed a bug where cli import_options did not actually update the options.
* [REFACTOR] Most of the files in the code were split into more, smaller files

= 1.0.15 - April 20 2017 =
* [NEW] Added Purge Pages and Purge Recent Posts Widget pages options.
* [NEW] Added wp-cli command for setting and getting options.
* [NEW] Added an import/export options cli command.
* [NEW] Added wpForo integration.
* [NEW] Added Theme My Login integration.
* [UPDATE] Purge adjacent posts when publish a new post.
* [UPDATE] Change environment report file to .php and increase security.
* [UPDATE] Added new purgeby option to wp-cli.
* [UPDATE] Remove nag for multiple sites.
* [UPDATE] Only inject LiteSpeed javascripts in LiteSpeed pages.
* [REFACTOR] Properly check for zero in ttl settings.
* [BUGFIX] Fixed the 404 issue that can be caused by some certain plugins when save the settings.
* [BUGFIX] Fixed mu-plugin compatibility.
* [BUGFIX] Fixed problem with creating zip backup.
* [BUGFIX] Fixed conflict with jetpack.

= 1.0.14.1 - January 31 2017 =
* [UPDATE] Removed Freemius integration due to feedback.

= 1.0.14 - January 30 2017 =
* [NEW] Added error page caching. Currently supports 403, 404, 500s.
* [NEW] Added a purge errors action.
* [NEW] Added wp-cli integration.
* [UPDATE] Added support for multiple varies.
* [UPDATE] Reorganize the admin interface to be less cluttered.
* [UPDATE] Add support for LiteSpeed Web ADC.
* [UPDATE] Add Freemius integration.
* [REFACTOR] Made some changes so that the rewrite rules are a little more consistent.
* [BUGFIX] Check member type before adding purge all button.
* [BUGFIX] Fixed a bug where activating/deactivating the plugin quickly caused the WP_CACHE error to show up.
* [BUGFIX] Handle more characters in the rewrite parser.
* [BUGFIX] Correctly purge posts when they are made public/private.

= 1.0.13.1 - November 30 2016 =
* [BUGFIX] Fixed a bug where a global was being used without checking existence first, causing unnecessary log entries.

= 1.0.13 - November 28 2016 =
* [NEW] Add an Empty Entire Cache button.
* [NEW] Add stale logic to certain purge actions.
* [NEW] Add option to use primary site settings for all subsites in a multisite environment.
* [NEW] Add support for Aelia CurrencySwitcher
* [UPDATE] Add logic to allow third party vary headers
* [UPDATE] Handle password protected pages differently.
* [BUGFIX] Fixed bug caused by saving settings.
* [BUGFIX] FIxed bug when searching for advanced-cache.php

= 1.0.12 - November 14 2016 =
* [NEW] Added logic to generate environment reports.
* [NEW] Created a notice that will be triggered when the WHM Plugin installs this plugin. This will notify users when the plugin is installed by their server admin.
* [NEW] Added the option to cache 404 pages via 404 Page TTL setting.
* [NEW] Reworked log system to be based on selection of yes or no instead of log level.
* [NEW] Added support for Autoptimize.
* [NEW] Added Better WP Minify integration.
* [UPDATE] On plugin disable, clear .htaccess.
* [UPDATE] Introduced URL tag. Changed Purge by URL to use this new tag.
* [BUGFIX] Fixed a bug triggered when .htaccess files were empty.
* [BUGFIX] Correctly determine when to clear files in multisite environments (wp-config, advanced-cache, etc.).
* [BUGFIX] When disabling the cache, settings changed in the same save will now be saved.
* [BUGFIX] Various bugs from setting changes and multisite fixed.
* [BUGFIX] Fixed two bugs with the .htaccess path search.
* [BUGFIX] Do not alter $_GET in add_quick_purge. This may cause issues for functionality occurring later in the same request.
* [BUGFIX] Right to left radio settings were incorrectly displayed. The radio buttons themselves were the opposite direction of the associated text.

= 1.0.11 - October 11 2016 =
* [NEW] The plugin will now set cachelookup public on.
* [NEW] New option - check advanced-cache.php. This enables users to have two caching plugins enabled at the same time as long as the other plugin is not used for caching purposes. For example, using another cache plugin for css/js minification.
* [UPDATE] Rules added by the plugin will now be inserted into an LSCACHE START/END PLUGIN comment block.
* [UPDATE] For woocommerce pages, if a user visits a non-cached page with a non-empty cart, do not cache the page.
* [UPDATE] If woocommerce needs to display any notice, do not cache the page.
* [UPDATE] Single site settings are now in both the litespeed cache submenu and the settings submenu.
* [BUGFIX] Multisite network options were not updated on upgrade. This is now corrected.

= 1.0.10 - September 16 2016 =
* Added a check for LSCACHE_NO_CACHE definition.
* Added a Purge All button to the admin bar.
* Added logic to purge the cache when upgrading a plugin or theme. By default this is enabled on single site installations and disabled on multisite installations.
* Added support for WooCommerce Versions < 2.5.0.
* Added .htaccess backup rotation. Every 10 backups, an .htaccess archive will be created. If one already exists, it will be overwritten.
* Moved some settings to the new Specific Pages tab to reduce clutter in the General tab.
* The .htaccess editor is now disabled if DISALLOW_FILE_EDIT is set.
* After saving the Cache Tag Prefix setting, all cache will be purged.

= 1.0.9.1 - August 26 2016 =
* Fixed a bug where an error displayed on the configuration screen despite not being an error.
* Change logic to check .htaccess file less often.

= 1.0.9 - August 25 2016 =
* [NEW] Added functionality to cache and purge feeds.
* [NEW] Added cache tag prefix setting to avoid conflicts when using LiteSpeed Cache for WordPress with LiteSpeed Cache for XenForo and LiteMage.
* [NEW] Added hooks to allow third party plugins to create config options.
* [NEW] Added WooCommerce config options.
* The plugin now also checks for wp-config in the parent directory.
* Improved WooCommerce support.
* Changed .htaccess backup process. Will create a .htaccess_lscachebak_orig file if one does not exist. If it does already exist, creates a backup using the date and timestamp.
* Fixed a bug where get_home_path() sometimes returned an invalid path.
* Fixed a bug where if the .htaccess was removed from a WordPress subdirectory, it was not handled properly.

= 1.0.8.1 - July 28 2016 =
* Fixed a bug where check cacheable was sometimes not hit.
* Fixed a bug where extra slashes in clear rules were stripped.

= 1.0.8 - July 25 2016 =
* Added purge all on update check to purge by post id logic.
* Added uninstall logic.
* Added configuration for caching favicons.
* Added configuration for caching the login page.
* Added configuration for caching php resources (scripts/stylesheets accessed as .php).
* Set login cookie if user is logged in and it isn’t set.
* Improved NextGenGallery support to include new actions.
* Now displays a notice on the network admin if WP_CACHE is not set.
* Fixed a few php syntax issues.
* Fixed a bug where purge by pid didn’t work.
* Fixed a bug where the Network Admin settings were shown when the plugin was active in a subsite, but not network active.
* Fixed a bug where the Advanced Cache check would sometimes not work.

= 1.0.7.1 - May 26 2016 =
* Fixed a bug where enabling purge all in the auto purge on update settings page did not purge the correct blogs.
* Fixed a bug reported by user wpc on our forums where enabling purge all in the auto purge on update settings page caused nothing to be cached.

= 1.0.7 - May 24 2016 =
* Added login cookie configuration to the Advanced Settings page.
* Added support for WPTouch plugin.
* Added support for WP-Polls plugin.
* Added Like Dislike Counter third party integration.
* Added support for Admin IP Query String Actions.
* Added confirmation pop up for purge all.
* Refactor: LiteSpeed_Cache_Admin is now split into LiteSpeed_Cache_Admin, LiteSpeed_Cache_Admin_Display, and LiteSpeed_Cache_Admin_Rules
* Refactor: Rename functions to accurately represent their functionality
* Fixed a bug that sometimes caused a “no valid header” error message.

= 1.0.6 - May 5 2016 =
* Fixed a bug reported by Knut Sparhell that prevented dashboard widgets from being opened or closed.
* Fixed a bug reported by Knut Sparhell that caused problems with https support for admin pages.

= 1.0.5 - April 26 2016 =
* [BETA] Added NextGen Gallery plugin support.
* Added third party plugin integration.
* Improved cache tag system.
* Improved formatting for admin settings pages.
* Converted bbPress to use the new third party integration system.
* Converted WooCommerce to use the new third party integration system.
* If .htaccess is not writable, disable separate mobile view and do not cache cookies/user agents.
* Cache is now automatically purged when disabled.
* Fixed a bug where .htaccess was not checked properly when adding common rules.
* Fixed a bug where multisite setups would be completely purged when one site requested a purge all.

= 1.0.4 - April 7 2016 =
* Added logic to cache commenters.
* Added htaccess backup to the install script.
* Added an htaccess editor in the wp-admin dashboard.
* Added do not cache user agents.
* Added do not cache cookies.
* Created new LiteSpeed Cache Settings submenu entries.
* Implemented Separate Mobile View.
* Modified WP_CACHE not defined message to only show up for users who can manage options.
* Moved enabled all/disable all from network management to network settings.
* Fixed a bug where WP_CACHE was not defined on activation if it was commented out.

= 1.0.3 - March 23 2016 =
* Added a Purge Front Page button to the LiteSpeed Cache Management page.
* Added a Default Front Page TTL option to the general settings.
* Added ability to define web application specific cookie names through rewrite rules to handle logged-in cookie conflicts when using multiple web applications. <strong>[Requires LSWS 5.0.15+]</strong>
* Improved WooCommerce handling.
* Fixed a bug where activating lscwp sets the “enable cache” radio button to enabled, but the cache was not enabled by default.
* Refactored code to make it cleaner.
* Updated readme.txt.

= 1.0.2 - March 11 2016 =
* Added a "Use Network Admin Setting" option for "Enable LiteSpeed Cache". For single sites, this choice will default to enabled.
* Added enable/disable all buttons for network admin. This controls the setting of all managed sites with "Use Network Admin Setting" selected for "Enable LiteSpeed Cache".
* Exclude by Category/Tag are now text areas to avoid slow load times on the LiteSpeed Cache Settings page for sites with a large number of categories/tags.
* Added a new line to advanced-cache.php to allow identification as a LiteSpeed Cache file.
* Activation/Deactivation are now better handled in multi-site environments.
* Enable LiteSpeed Cache setting is now a radio button selection instead of a single checkbox.
* Can now add '$' to the end of a URL in Exclude URI to perform an exact match.
* The _lscache_vary cookie will now be deleted upon logout.
* Fixed a bug in multi-site setups that would cause a "function already defined" error.

= 1.0.1 - March 8 2016 =
* Added Do Not Cache by URI, by Category, and by Tag.  URI is a prefix/string equals match.
* Added a help tab for plugin compatibilities.
* Created logic for other plugins to purge a single post if updated.
* Fixed a bug where woocommerce pages that display the cart were cached.
* Fixed a bug where admin menus in multi-site setups were not correctly displayed.
* Fixed a bug where logged in users were served public cached pages.
* Fixed a compatibility bug with bbPress.  If there is a new forum/topic/reply, the parent pages will now be purged as well.
* Fixed a bug that didn't allow cron job to update scheduled posts.

= 1.0.0 - January 20 2016 =
* Initial Release.
{
	"name": "litespeed-cache",
	"lockfileVersion": 3,
	"requires": true,
	"packages": {
		"": {
			"name": "litespeed-cache",
			"license": "GPLv3",
			"devDependencies": {
				"@prettier/plugin-php": "^0.21.0",
				"prettier": "^3.0.3"
			}
		},
		"node_modules/@prettier/plugin-php": {
			"version": "0.21.0",
			"resolved": "https://registry.npmjs.org/@prettier/plugin-php/-/plugin-php-0.21.0.tgz",
			"integrity": "sha512-vWC6HIUUfhvl/7F5IxVQ0ItGB/7ZY+jDlX7KsTqvfKMODW/zvzj8r1Ab4harS22+O3xxHykVVd5jvylmxMMctg==",
			"dev": true,
			"dependencies": {
				"linguist-languages": "^7.21.0",
				"mem": "^9.0.2",
				"php-parser": "^3.1.5"
			},
			"peerDependencies": {
				"prettier": "^3.0.0"
			}
		},
		"node_modules/linguist-languages": {
			"version": "7.27.0",
			"resolved": "https://registry.npmjs.org/linguist-languages/-/linguist-languages-7.27.0.tgz",
			"integrity": "sha512-Wzx/22c5Jsv2ag+uKy+ITanGA5hzvBZngrNGDXLTC7ZjGM6FLCYGgomauTkxNJeP9of353OM0pWqngYA180xgw==",
			"dev": true
		},
		"node_modules/map-age-cleaner": {
			"version": "0.1.3",
			"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
			"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
			"dev": true,
			"dependencies": {
				"p-defer": "^1.0.0"
			},
			"engines": {
				"node": ">=6"
			}
		},
		"node_modules/mem": {
			"version": "9.0.2",
			"resolved": "https://registry.npmjs.org/mem/-/mem-9.0.2.tgz",
			"integrity": "sha512-F2t4YIv9XQUBHt6AOJ0y7lSmP1+cY7Fm1DRh9GClTGzKST7UWLMx6ly9WZdLH/G/ppM5RL4MlQfRT71ri9t19A==",
			"dev": true,
			"dependencies": {
				"map-age-cleaner": "^0.1.3",
				"mimic-fn": "^4.0.0"
			},
			"engines": {
				"node": ">=12.20"
			},
			"funding": {
				"url": "https://github.com/sindresorhus/mem?sponsor=1"
			}
		},
		"node_modules/mimic-fn": {
			"version": "4.0.0",
			"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
			"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
			"dev": true,
			"engines": {
				"node": ">=12"
			},
			"funding": {
				"url": "https://github.com/sponsors/sindresorhus"
			}
		},
		"node_modules/p-defer": {
			"version": "1.0.0",
			"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
			"integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
			"dev": true,
			"engines": {
				"node": ">=4"
			}
		},
		"node_modules/php-parser": {
			"version": "3.1.5",
			"resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.5.tgz",
			"integrity": "sha512-jEY2DcbgCm5aclzBdfW86GM6VEIWcSlhTBSHN1qhJguVePlYe28GhwS0yoeLYXpM2K8y6wzLwrbq814n2PHSoQ==",
			"dev": true
		},
		"node_modules/prettier": {
			"version": "3.0.3",
			"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
			"integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
			"dev": true,
			"bin": {
				"prettier": "bin/prettier.cjs"
			},
			"engines": {
				"node": ">=14"
			},
			"funding": {
				"url": "https://github.com/prettier/prettier?sponsor=1"
			}
		}
	}
}
<?xml version="1.0"?>
<ruleset name="CustomWordPress">
    <description>WordPress with no whitespace changes and relaxed rules</description>
    <rule ref="WordPress" />
    <rule ref="WordPress.WhiteSpace">
        <severity>0</severity>
    </rule>
    <rule ref="Generic.WhiteSpace">
        <severity>0</severity>
    </rule>
    <rule ref="Squiz.WhiteSpace">
        <severity>0</severity>
    </rule>
    <rule ref="PEAR.WhiteSpace">
        <severity>0</severity>
    </rule>
    <rule ref="WordPress.Arrays">
        <severity>0</severity>
    </rule>
    <rule ref="Generic.Functions.FunctionCallArgumentSpacing">
        <severity>0</severity>
    </rule>
    <rule ref="Squiz.Arrays.ArrayDeclaration">
        <severity>0</severity>
    </rule>
    <rule ref="Squiz.Functions.MultiLineFunctionDeclaration">
        <severity>0</severity>
    </rule>
    <rule ref="PEAR.Functions.FunctionCallSignature">
        <severity>0</severity>
    </rule>
    <rule ref="Generic.WhiteSpace.LanguageConstructSpacing">
        <severity>0</severity>
    </rule>
    <rule ref="Generic.Functions.CallTimePassByReference">
        <severity>0</severity>
        <exclude name="Generic.Functions.CallTimePassByReference" />
    </rule>
    <rule ref="Squiz.WhiteSpace.LanguageConstructSpacing">
        <severity>0</severity>
        <exclude name="Squiz.WhiteSpace.LanguageConstructSpacing" />
    </rule>
    <rule ref="Squiz.WhiteSpace.PropertyLabelSpacing">
        <severity>0</severity>
        <exclude name="Squiz.WhiteSpace.PropertyLabelSpacing" />
    </rule>
    <rule ref="WordPress.Files.FileName">
        <severity>0</severity>
    </rule>
    <rule ref="WordPress-Docs">
        <severity>0</severity>
    </rule>
    <rule ref="WordPress.NamingConventions.ValidVariableName">
        <severity>0</severity>
    </rule>
    <rule ref="Squiz.Commenting.InlineComment">
        <severity>0</severity>
    </rule>
    <rule ref="WordPress.WP.I18n">
        <severity>0</severity>
    </rule>
    <rule ref="WordPress.Security" />
    <rule ref="WordPress.NamingConventions" />
    <rule ref="WordPress.PHP" />
    <file>cli/</file>
    <!-- <file>lib/</file> -->
    <!-- <file>src/</file> -->
    <file>tpl/</file>
    <!-- <file>thirdparty/</file> -->
    <file>autoload.php</file>
    <!-- <file>litespeed-cache.php</file> -->
</ruleset>7d2c5ed4936c021da67db3e37bd2d762PKp��T�uQ�e��litespeed-cache-es_ES.poUT	�\b�\bux�����\�r7�}���ڣ])�l�ԍ��3��$�^]h���P���ݐ�庐�yӣc�~�6B�c{N�
�j�Ħ�[��B��D���:-u^e��.Wn���fj�Jm�'�6'�1�:����Z�3��c��jU�����P6W'��m5S���7��:��JM,����Ҏ��5yjJUc�Jύ�lb��(]�o��~��7zjF�WS���>�,�O�?�~a�l����j������ۻ�������o�sz����M�����z������y[��B%3]V��������X
vb��Gy�R�O����e�,u��ؕ����Z}�������|�v����oerS�ڕ�W���KSU;�F7[��|�@����{m�z�(�Y��r�?}~�l����\Q�w�m
n�W�Ktf�!�3˜Q1+�����Xf����5�Y�P2������(���v
ZДЖZM�<��¼-��IG���RM�+�TQ6f��V��N%:ŗ2��3�5~j�X���
ZR�Ye�p)O��ѹJ��)�j��]���p����y��r����/�W�v��T���is�?�
�u��߼ӱ�3\��03^�������盓U�|f��j��k{�"�^V��#$���m�g�2n����f�m�Tj�_�F7�U������?jF�
/@I7g�����e��RUm����z���9�k���j�[n�)B�Rs5(1�{N�pu�?9��^��s���)\G�Gd�TU�ݠ�mV�5�>�6[Bqy�cIt������V��-_3��
�urI��ל�i�C	D��7��p�'�i��ȿu�*��_�w��a�	x5b�x�����g���`j�cJRm~fk��+Һ�fy�7.�������?d��p�O�j�bn�a��6��5�����TMV�+�����mh
�:�z"�R�g��g���־xy�j5�5��&�W|�\��w4�X����ʹ��t�C�Ws7�Z�f�~����$���kj�
�_&���8��(
���/�ᠺ1�J��;�|��?�Jb*]Z�<YU��M	 �d�כ�{��pK9ԅ~��`�Y��Lp�`1����;/�8N��I$v�_@Xi����x?4�	ɀI��A���d�;�X��(dlW����ƚ3�c�t��{y�V7�_�}��J~����U]K��^�n�a��Ym�a#�Ҹ0��2�[�v.��;�}�ok��[s�F�Z'؍�_��֬#�Ƽ�}�쩭_u"�6t/����޽��Jx�Ŀt�y����B�Y7�c��g�i��f�K��A���v���Q����Cqb�{�?��hc��l�}Ь㯏�7�(��=�?L ��J=�X�`U�
�M����;�ٜ½
�
࡙h�2�3ȋ���Zj&@<�Rq; � eu�%"���˵q�t��~g՗F{cr�Ʊjl&�m&���
|���f�D�E�g[��/��

T|�Ȱ�f{���ݿ�i8'��{L�;��P�#	���b-!�u%��@�[V�iU;!�\$llj���}ߝ�G�K�����O<��7eI1>�7�kc��H���s<f�\����o�ƌr8�|��c9��4e�Vҍ�q��~w��D&"���CSa�z�~�
G^�4�(�ڒp�DD�bd��_��f��������#T��4@6��]��-��B�LW#DBn1��㦮�A����K;	�8��P��H��2i��57+6�F�'��3�+-���:dg(Kaq�jُ�{+�u6=�i
L ���:lmG�V���W5 �l���{���s���Q�N��$-�6E9��U�FԸ�̈́9,qZ��F�&v3�7�ܱ~�e�;�FJ\�Lk�_
n��tpk�)J�C||y(��{�c�y���Fo|�Ɗ�X���:y��t
nl~C1-ު�:���)	��l>�x�&f盓��`��%�%H]3f�1^�l
d�%J��|�{*��
�G�VYܟ�?W���_o�ԉ����%ޒoM����^0��b�2I�L�ƇiM��^1L�����.u$F��p5�?	��PƐQ�	"�kd��Wߓy'��<�u�aN�-����x�x�j�ܿ����G=�!�@�S�=�@O)��]�BhjGoNŽ���4�,#�(��1o��"�'�(iג�g�=���铞�sW��AV��JG�g�%Q#d,Ӓ)�I3S"~��
G��`��W�ɫ�b��l�BSS��uh𰅂��:ML�Q�.ɯ���BT�;��Jf�1�����=A:�Iy���_��A3�b�"�Ahq��}��9��~e�&kbn8�I��YB zf������&��`�^j>9Q�5@5�wf��#�Ujn+&7").�	�뭊���jVm�>�a��r�Cʊ�K�s��j��|�3�� pe���y�ݻ���xT9�i�l�p#]HL�E�`�=�1�!9sm@�Ir��`NLM5���i�?�)�̮f�Ng5H���E����i�P�&���ԕ�����n�����a2(�l�t�@$-M>�<L5���r�B��=[?*��Y�����k�,���}��p�sj2ss��
%��.
���3�1��>$x���1��)e̱�^x_�n�ƒ�k��K��I��bu:�y�;ȧY�9�4hN��
�'�$ѥ���u�B���Xah*�QB���@j>�
�Jf4-k�4�"q!��9�\���(�����UO�{;0��x��X���CC%&���[-�/w��ɊN�CB*�U4)�D�3�5���`�(�s��G��5���4Ó�湦	-AKl��L��R�=���Z�E�J��_���uH��;���|�C<�d	2�ppɑ�w@[���A���V�oؕ8����Q?>W�Z�ؚ:f�����s��3��B��&԰�<.�9�+�Y)&.�x#;�w�u��Q��R=D~1���+�C֎�ɲ���DVD��e`M�Q��L��L32b����IL����?���"K�ֽ
��)Z�4G8�s�ZZ�J�/��VU�
L-K�����HLYk���)|�w�����󲋓X���$��\ǖ\��(�OFA�%=D��b*>"�Y=Ϣ����,4�I��Q)"���

�WαR�ص�ш;cG�P�a���e�F+����y�s�kŖ):&�,��k�i��i�2>L{|f��J�FL��L���4,����U����cL�&y��[�N[&�4�;�<͘>�	Ȫ�'ݰ�w�7+��
`�����aW<f��T��9\`"�BW.���
�UUv�K�����Sp��f0�g̯�+�+K�GW�B��v�\��5R��ոA�0Ќ�]�;��J��j)�[}�x<��OHpDW�T�q���d�򐟞MY8���b!Z�9|�~b��e�YH I�y`��Z��ĭ�5�L��p�7��(&�
���.8�6{smMx`~`�Y�7}6&�^�
M��~�1��n;��&О�>[ �i�5� ,<i�!�џ�6F�~Z��G�]�+\���8��ˣ�Q��&e���\�M��%%�3�I��̜f5o�/����p����JӁ��y��:�`���.�ٖ�|]I����kh
�tK#Us)ܺ�N��ч��Z�joM.�,�FK.�/��}O�jح�}�^$&1}�蘷���� �����T���֦�ؙZ�!p��0Aj%��P�!�y�,�jo�4�0@�~�O���L(�'��V�k�2Ľ���تBZ��IX,��8b�`��/g:�W؛�M�^��/I����:o��6�d���ˣ�;	Q�jc��]j,�Ƨ�}m%<_IF����[���81��	��SɨY��9*�ِ��
�0Ag�]i4�cM�~�`Y�A'O�<��j��B�������
8[g˟jz�%�lEU�h.}��)�����!�IPc����1���I����r�DP��G��͸0��Pb؃����*���Ò��_���DZ0)���뮃Tz^�G�]�1�y����Y蛓���R��b�'�
��dR{j'�����J��]l��k,Hs!��ԮÒ�`a&�t��
ĭ&F.t8�����\I���ƥ�qf�^Ϩ�)��y���>��� �)䷨�cr��I��j	k�.��`��O �E����m��\`�}*+�����v+%���k��ct�ɧM¥i��p��	� Ю��9�7`��?d��<�(E����3].t��NϘ�J��-c"@��z���D�!=%kM���*6R|-�/n�I�G;�A�/{�@�S)̗����\K� ��DHw׵7��̲��I��\/*/��vrZ��(KB� &�����lm筆n	T���GT`��4���ę|s�0��oH"�}-@2��3�~a!�Y��22K��b�_�g�X�[2�����H��:^���/���
\g�ץ�i��jS�\���M�VL��Z;M�����-@lO_�&!
#��XWF{�%�d]��v3.��=d���$�0K֠�I�->K�fL<P�Ҕ�!���:�J�Dhx	C��-܋��{x<�倈k�bȄU��)T G�cm�:����.�*d��WL�#P��=�w���W�����)Rd�=6����FC6�J}1�Dc>Q?�r�}Vߙ�q�!%�e�歝7�6�1H�����T9fk՛�bkz�e
m`\��9���Jg�9�{��/p��%�_��36�B�L�Aį
2V˜�Uz�H�C�uΪk���i\�ۖ�@lr'���B�p|T}�)%b�Yd��tQ�.z�Kz�?�g|��͏>޿��o�}���;�Mp���з������{�|W]�����Bz�-��[��]��#K��<��f>�q��~��4�u:i��8���Q�Z:���:�/a�&+�p�k�>,��A|�9[%ަ���"���2�p�&��m��U�}B���y;R�X3OI�yφ�"8G��W�F�	���	�P���G�>��e%*Z�D���1#u���I�J��,�HA�,\�9:I��q�}��u�bc����˃���N�Ii|&����_�ts�E�G8ȏR�~V���Ҝd��'������Ͼse*�?~6��`rvv��(ڑ\�����XAy��0��E�+�I�#�s����¯27��8���ڑO��<:�pȎ���~|X�ҕn,v[ȝ�\�]Q��Ԓ�F�ǫI�P����X���b�o&���;��g�O=�Ӈ�	Ј�����Y�ӧ�($�z�a��?�e β��TlJ'�4�H
3���O�'Z�&�1U��[x��N��%��RI+i.i��q�IP���z�0"�7[�>*ž��� �S�%�]+/�t`��ɬ���.�3SM����%�[f���g���63q�6o��p�q@��/�סpu��SS�L����	�f���O��qz�e�������G�z�1/X�����yk/DȨ6���֫��!.߈8���3I�L=��&�~�kV2��.P*!�M\��m�a
{>)}�eYX=��ϗ�ȫ�t��l�b\��9wN�x��Q�9=�
���m9%ȟ?�b	��^i
�+L�й	z�lգ�#ٯ)oSN��g��^�w-��+�����3�#C"��(���]�d�	�]ؒ���z�/��"��Z���D��MwC#��,i�ns��Nq5�T�LS%��ś|�!GWZ��I��/>�vԖl�Ӆ:H��~83��>}CJ�v1�ZW��j)�੭��f60u���%V��l6�;�[b�^K��h*�vm^�tr#�ue��>�ְ�_O-�w���[�z���a���^��V�BJ�!��j[|�F�%[)��|���~�*r�'�)u&����3����i�ǜTF�DB"X�x
G���׻��b�˕�X�����X��z7X��4�F��;����}��6�8�~�����7�ϻk!�����bw%�$����m7�#��W��S)��$��]��dJT煕dJ�
Hx�;IWF�G�{��<��{c�A����A���?��_�3�fn~�,��
(%���n�m�ג!S���V�4�"��*:�E'3��/�q�hO�nV26�@ĵ\]���4��ڒ�{�ě^�?m�WN�bLQ%Q�'�>ᑎ�$�IK��Z+�w҉!5�{ �1�\�í��9�R�_�OE0����I�Vx8�A8*���a��@��M�$�i���vq�͒���<:_V3�]bME�2�
�9���ފ�y�^]��C
qA�(~��Pc1zY���V�z�%fĐ?,����a��?����g1�`I����o�2��Ǥ�[��9́d&J�YC��EzSS�H4�DI�q��G\�o2J�0��$���ؘ�� ��?��I1��S/zP��G�mi��]�#��q�"^YX#үr���]MB����A��j �g/&��"9��sqS10|5�� 0y�c����^}ߍgL*��Կ��h��m��V^�)�
'W*���ͳ��3Q{�*��^�����.p{��8#k)M��=�d���.�M���]��@AFrx��A����9����ɩ"w���f�J~gv�1��Ǎ�?�(_�����,�NʛB��U=z�Q|�i�`���xw���D�ԺT�Nt0��Y*�8�.�?�b��J҅�	���!X���n���^3�'�����/���f�j�!q����/>�6l,\ДRE�˂�Q�AXe`-�w\-b������G!X��= /hE�Q
% ���S�q	�#�R&;ۻj3m�-e����|�e�^-���:���-�%-[�W�!ͨ~N���4 <�x����	8�)��y��^d��J�x��ߵ��2�N	��,E���m<z�ޜ�E��D�o�
&�8�E���i�.'1T�E��ى��@!�ą��.�����ЂP€˸�EN�e�]�^$��(I��D+�xO韔6-�M�vd��&r��Jo�ڜ�I�u�8L
u��(F�2���=;��	Y��;0�%R>�������D0��$W�ō�cc懃	E�MU|��WX�=���N�.�1XrgT��E�?���x��G�[$��K�%��7��Ѡ��<3��|xFi���l0����0��*];�\�,X5iՏ��Ayl�cenq�CS¬
��	�s6���H&��f��gl�u�����u�A
�m���o
�]
�4��>~�%�P�ff���|"��^�]A�	�0���x6�>�g#��_��l��39��?��ZϔS�C��S9��V�mc�8���\����4�R<mL$�j�/�)��@%�&�����

�Mz	.�l\�#
�g?�2c�0���(����O��Jf����F�_ӞH���n��	���[��
k���+��Q�3J�s�aKf�������;'^}�!2K����Y5E@�%�,D�gKX�*�8��Z$�t[
G������u}�n�c`wp-:�sf��4��i�9ΰ��qu�Ag�W'��ߟ���r��:]`ȏ�EP�Lk��@*�0&˗�!d��f`��s�B����C��>� ��������+�F�ɳ�w�p:˪e&���c-�l�~�V��q��'�oY���\��O߭���+L/�VHWm���N�H�Mw_:獁����\�tژ6��po���1��kl7���1�^���z5��q����?J0�g�h~U����hL�q�1	M>��
���,M�i��X&�-����Mȁ%��툙�}#�N�헞��똍�z�^Rv�w���ʢ���65;����=��2^h�h�	}{��~��
���?�`��`�ö�!;��7h6�m�a�����i��m��h�cp�xjKڪ=|�p	���9Ӡp+\	:*�2���j�(,T��	smb���`
08���7�	�H@�jl��ѡ���~�~��:K�-��s�%TM��;���~b��qk�u�.��
���Xu����a�lG�]g�1P��O�o�[�u�)\�$Xx�{���1���a	�o
�`4�̛>�U]Ƿ�QOc�]?��;:px���*p$ȼ�
��GT�,�Y��YzI߸P�f��v.d}���h��)9j�L�C���d�j���J���jK7z��(:#�"@h���.��>��JWK��'y3�3�T1�<��2���Ņ�����E'w	4�c�Wt��M��x<_U���en��wB��)@x�)��Ut�v%�Ru����S3Qj��`/�z�`/\�r8wr87)��7����z��Dv���񤫽G�4$����h�D��Dv��X�p	�>%,Y����eg�&����D�tP��KQ�5Q�F��U��Ds�K����2��w�\�A
drY��s��g�EחW�����ʠ|���~|�34}�_��ؚU7jz�K��p�}�C��	���>�/���K�\S�ZR� �T�Q�\�C�$g��pFZ�y-��`�E$li�fu�,�D�~�i��
�lO�c�-F��A���rO��!�{@�#�I�k����$�qpxб'Y�_���il�^,l2��\u�
��e���x��G"iP�|�"4ҩ�,�g	��g"����F<�5��X�9ԉ�^�SP�;\+q^ӳ��.�m��n�m�=e�\��w�����!��!�����쥱��m��^����Yg��������
��!ڶ��QP�G���!�5��f%�srq�hKs�c���]�Sn����Wp��)Vȯ`1`��O�j�@e8s�g����(��-�[�ˊ/[�g��5��K��2)��BW�P.S�x�vFT����k��N��k�BQ��� ⯸*4̚�Ha-Q�M�c �3�	dVтI�T5s�Bj�T������{��v�=�� Cga�U�F����H�m�n$o�
���y��j���;Uv��R�ޔ1d0��72Vy�ԨG��&�,���㩛�rݓVL��~�x�8e��~�+3n0e)'�	`!o��B%�v��+�1 ��_�H	����z딝$I�������)̥����D{H}�hK\�v;�fż3(�픈���Ʉ�d�ֱ���Ov��������՗xUK?����_�$��m��6��1EJT��sd԰��,$q�zS>t�0��N��l�Ѵ�l0j
r�	"&��33�/�4��ߊ�1V%�	`ՕEۓ��m��s����oc�AxR݂�W��뷫�:�}P��ǿ�(�z9���9D��P'���^�v����:R@���yg���z�.�x-�9>lW|ۂ�˼���%�����MQ�K��3y�֜8+�k�(y������	�yFF��$���,��
��N����&U�y�!w����k1AX�����-H:wR�4��%�hl���b��u�L�u-��!��EB��>�bh5M�[$�TC�<�lp��p;`.S�*&j�PR���i��wŃ:?�[����%4ߔ�},9�*�VO��O�iH��ǟ��ԗA�W��K�P���x��d�R-ʵ�ZǺ��e�rīC�%�r�sNբ�Tv�EN0�Y�^� �i�49p4����G�W�;=E3ѥ� Lkܹ�M,���&�ĒX���������I�a$.�>��NR6�7��*\��x�
"B��E���K丒�z�}vw��\�����І3/�o��>�n�٧�t����]���'��H��!�+o��!�
�u���ӕ�j�95��hx#Ǯ����Q��1��ޣIh׼B8���������t�6�K��#�4v��f3������SM@�J'}�q)�W��˗t�j�M}�w�z�pB̏�,��kϜnd��äa��N.O�99{�!���Mj�0���m<���"x�(���~[8�Q���u���aQa��,C�Q�q��EÃ��j�`l�Ʀ�I�;���`
W���4�PJ47gX&������z4��$U�	W$� �8���}'�R��ju��W�)e��*u��\�4�?	lf-���IcC�#q
�Q��,w�*��( �H�Ȥ�3lj!�e2j�h'��B����P�;3(1wRb���=^��-����Ђ}���ց8�vq�q۹zM�'p�#�Z�	J�V��i��^�^��>��D^��$�-��*W�I佸w��/�
�C�3�"��f�૬gi\�GH��
���BZD����A��}!�&B�5�����3o�7kz��e�����L:CX�8�[�~��kɝ	i�+s����a�X�a���#�\�����o����iW�?Ki\yfY�v�タT�� �@3g�߹��@����іӞ�r�5i�7��!�<
��-��=�C�s�E�S�5u8��U�/o-��D�1�΢��j�>�mw�a�-�cg���̊a���ISg}�JY��t’������L5�4Xj�]�o��
��V�^2Ri������=��4^�c��[׾����֖^5���j/S7>�DK?q��l�߱���ؤr�-�p��q#�*�?R��/@&��Þ�C�I֤"d�7�*{�iQ�d�
���VQa6��!���=�;�FK�
u}�>%,�t�_���~�6sK�;�(�o9�o��/^��@�p��"�z�nkY��}�'�Ԇm���u�� z�C+ڙ���r�ְCe5\]�^bAXf��ʈhr��h	�#���6R�Hv�A%�Y�\�p/R_�o�{;N�%$��U������Ԉ���Dc~E�X�lOF�a��x�w����%>�EQ|\�*'US�c�NZ�etp�ߑa9#ׂ�5%0RV,�Ɋ{��V��@�T��az�rVJ!��qpA|To����o՟Ab
�ۆI$[}�<E!f�vg?�.
�zQ�>W?�F���T"��$ y*ep;m�i&X��E�t�R=t\�j����sJ7]�(f�4?�-Hb�α���h<nzYh�xX���r���M��A�7m�s*K��f�3u2|��U@�<�8��^夻3���R�!%eH5�'�\��t+����Q�$���v�-dSsѱ^�=9̅��������N�d|�f��&!D9����qa%	9��036��Hنɑ�T�����?c���[�>��/H�-mx1B�X'����4��N��~���!y��v�J� J����x堯I�P���:엇�����Z~��.�T�y��s0[���>ײV�+r��Q�Q���e�ŘE錺�G�x%̥�K��j~�2=]��F��6:�Aʠ�qW+F?��n��`o>��ʁ�Al���	���y�%���F\����5�H6^����l4�6R;F>F�2w�� wXŗN�d6@��PECV&��_K�;�a��lLZ��{J�+N

c�F��:�BeR� •m�Q����
��_�>7R�g/ �UƷ�z�v�F��tA��V]g��e�H�0���Z���(:Y�RC�Te�#X�DD!2�\9b�f�J��LO����cҷ�6�@�X�?�j�ԇ:+��F%,��IЀ�(c��m/�K-���JbHV��a�b�1�~��/��	�j�G,���e��2c,I
�r[L�e���Z1,+t�_P<�X*�g4D1ş�|�t9����u2k^����.ʩS5����Ť����REQ��C��2f6�6����[Է����j�9��I׌�BC���9Z��,k�j�A;m��t�����=}8�Į��u7ʛ[΄�L
y�E�gHSoR\X>�Āb,~��:�b0��s�Ӧ��F�@��aD�R��e��-:��E�1K�L<x9�=uM�e0Y4�RZ�<.H`1�R\/���Ƣ�i�\ 
�c�浅d �b�Q����e�Gޅ���C̯�V���‹��R�T��(n?�Jr�o��:F���"��sT�N�2�E~d�L�!�R�>|�i~�*p��0�S`�l��I��g�j�Y�CPk�4�[�%����M��l��ͅ�b
AY5�
XW�j��r2p�'��Q�
M�b\�����9#�+L}���[��xuPrA9�.�z_��s�YWp(�Ei�qא��r�|D7�:��S�Vm2��b:J��OãӚĄ��plc2��I*e3�u��5�s�k�7A�:jI��WV86 �"��p/�(U�6���Ocv:U%e��.�:Ap��c�B�̆l�h� ���Mm%�	IR6��Ŏ�4�q�����C)(����-�HB܆n^��=dl�_@�'%a�J���F"������ڳp'9ߌ��i�1�L!
�i}H_		{ֵ��{Gc��\�s&� Y$'���h��3��;��U^h�;�^��6�,U[ǶF��Y��F�G��M�=�ɻ�v7d��8�n��y�Y����L%nU����"I,��z.���Ӈ���^*�xWtۆ�Ur�[��hޢ@�p����6�_�{[<;�p3���+z�4����Y�]E��8�?��S��m�x�v|�M]ː��ʺ���D[�ŀ2q�H�X�[Y�KH�U��w�Cۇ&��w̷���͆cup�e�/
mB�־��Q�,x��U���������i�����~��A�b����x����)ͪ����;��4a�A���N��d���B+�1(y�M.nP�
=m�������Ɏ�a�;ȭT��Buj6�n�<=B�.F�(z����D
J	?� ���ˬPC��˗;�2Vמl�AF�A�H"�p�ipϺ.X_�ߠ�W@R�p�yVlO��?j�==����5y]�� Ң}ƆףFVi�zpBݮ3�U(cɝQ�>�٬*�lk��\���42s��teχS}��6�� ���@L��Cz�P�e"%ܿ�V_1Q ���/�)����t�׬�d����
}����;7Q�
�5���_�M��bU�ĽѰM�
�!�^��ݬi�%�!A��۾y
�0Z��	%HQ���l�k�A�/q�J앀2Qv�փ�6z	��p)xw���zp�MZ�67>|�3?��i�[�mk,q扺�/p��-����Y��������w��,����t`�X �K,��,9>y�2��4����?S�E�<S�9���5��m��i�Z=1m�Z���6�p�)C��
�����/��,a�8:6����k����t����� �r�C�1�ݳ�kD|��X-0ը�L2&�7��`|lc�1��%�S���k��QK�5�'�W�>>�v#�M������\)�Q?wg(y�}�\�rH]+L��W&�D�,�i�8� \�f�w5�-A��r�	$��d�1�Ue��o+�,#YHٍ*�r�0�5kw�	�� �!�KU%ފ�����H��F��a��O�B����˲x�Wj�V��&5��ẺS���U�@��$�PM�X$�ZP�u�)AA�
6��ʾ8���'�E�$���0�E�@�m�x�U���пf�
^�d���y[Cp����
 �E��������Z�d�ќ��W`�SӍ��8�����_k��\&���ֆ{D`,c���b�	�v����>y�`/op��O��ު�2��l��"� �,����%мU�����
qh�-��֠ȷ�SȺ�r���Z{�B�_��Wj�&1h]�6���(

�>�e���{���,}��T�'��\!D*��iGE&~
�v�B����l8�Ō����4�6�Ic�i�I%�Acz<-I1(bڣ��1�F��R!|R�ۅ�E��=�go;�f���)1��z�\98�%���x��,ָ/���xS �z� �ᘳ}���x��:2ݺ#%M���5Z���V�����R�̇"�����U�,4�;	Jrx�A.�"�Ju�����q<��M���E�'��!�M!t%��_6�߷���뙂�¡]�Z�=�7���l\�G!B�h4�d8��������mi�f/n����.6�p��sU]�)�Ei��ȸ4�n�j�rC6��d�$�BHQT$�`��m�d�{.l#�����uRbV��Yu%�UB���SVc����_a��0��;��P�VN��d<��^��-y���!z���Z/k+9Mkv�XZ&�?�+0@	���A▇R_�3���w�=���H���r��f�-�X�ڋ�;c�2_�j�ϱ�qP�%���py�ɮ�5�����S�f��|?~�E*��ȳ�8u��xy��f4�q�8�ġ��H�R��MZ�+
�kp�"�*�5w�;`����!^���
e.]aF|}�&�C�P+�&c�2r���1l�v_c�D�O�\�C�f�	�@uE��,��!�,O>0�ɇ$�|o�U!��
Lwz6��l7�Ci�J{�%����}���?�icٴ3Ӵ�i'�Q����=L��-�wӚ/��k��z�E�R\t��y�$
��%�n1$�){�EPj��b�*Md�ai|/�I�J����Ae~�4.st����D4����/�=a�U�& =�^��Y���1��>����!� ���9ݜכ��M�c�O��J��U%=P�	K١��4��vw]8�ᴒN .5x�6E�tW�
���@(����~�m|h�U�ӱK�--��õ���������\;��=b^7�������h���:+E�*���!�&x|ޚvx"�H�e\|��b�X��+��e���w�8�J��
4���	�Y�IC�!�
j�'~[fpd/zz�O
[�j���>]�_�tk}5�GO�Bv���n��`OSH�>����4c:��I7]��p�}��D�`�Z���5\��T�&S
�'J��!G��������l� yp�"j2uMY�-�,ʺFbt��A������F�s�@oV�	��:��a��l��O��.�?c�+�<4�c�1b6;`)���7���
��r����l�	d����SL�/��*��0�K�g�i�ߖ�EB��'�P
l;����S��Ó$����a������(r�[m��Q�sP�GS�W��2�tm”s��4�r]�*�=�o�~`��=�w�ߕsh�a
�DL7�3��L�}q�4��pr�W�f��Sۀ&��J��T�f�T��s��}l!���b�Y�n�2�?FW���l����0�=���4s@S���ԯ	�%{ض_��o� ��b�	��Cʣ��w@=S+��E��R�ʿ���E��'xc��Y���`���|!뜒��"�y�3�u��j���GlSP ��Q�E�џRM�ޅd�Y��5�ya��:^V�@8	�ڌq�Ġ�1V<_�i)�ft<Գ�2�5�D�� .�ɂ�6F}�{�_s�A���K�+FAS�b?+f�a�.<���"Mʽ�b�L�����jX��#o�Pr�u.��#%6���O����}�BVU-(XO"
IK����&��Ƽ::�Z�9�=N7������
-�Е��U�+��S1D�8��mo�?D�`I�w��מ>�M����yZ�EQ&�e/q%�b*�I)Jf-7H���.`%أy�`3YER	�����G��"' ��M�ԯ�y2���Ae:��a�ڔ�\�J�0�������A��ԃ��i%4�����e��C�m���:A�z��|"�B����o�)o(��R�4�	��
���9 �m�3�k00d� �D��6�vϊ��}�9T�^�5�Vx,��fLL��u�`1MJ�0���
/�����m���9��X�)��n�"AѬ��5����\\��V�˭��	f�Z�$��QC
��ׄ]Y��F�ͱ��S
��Wr�����L�z�o��
�1i��o}
�Z�=
�M�n(���k�
��߀���j (5'⁑�(��b�N�Fi8h��bW#qٽ��	���j����3�yO��%���R[Xe��ڙ�x��`�LX/�������TSQ�b�fyߚ W�G��x9��!c|�ʳ&H�u�YѸ�l�v�	瓷�u�|��76h�ri�.�ǐ�Z�{�2�yz�ۖ=Om�2��*�H^T&v�Ͷ��v�l��ebs�E@�
�J���0*R���EA~K������y|&�z���Ke�M}^��r����Z���}�
��g���d�ZMJ�n)�3��<:j�<�.�g��V�l���-�񿐬�;��m��}�;��y��[��hk$�#�_�貄�CY�7��ūRg)�V4>>�
pv��
�!a��F���7.��QR��CR/�\�SZ�p�n<��p�;^K���ǃ�C���|i��w��d��7m��*������h���r�Y�����¶����`����Lj�z���U6������&��H-���L�WΧ��Q�k	~�Srs�_� �G�s�2O�t�R��E)�ۂ݆�U��/�Y��}���[�&�#K!a7N�G6�8�6A8��|E�f'����#�W�G8v��w�euP�R$El1��:m�
����	�xm��"��\E^�5ij�c�M-�J{���V��rX˵(h�k�oD���� ��jV���)S_11K�������9{n�5̂�s�>�㣾��J����^�H��6��rU��*�e�V6���IO}6���`~��_¡@����iez5B���-.�go���	�v�S�,q{�u*P
���� ��\4�q�z�{�1C2����*mz�<�Νc�/��ޙ�P���/���]�Վ���0Ġ��+Ǘ
�B'žCX��A���i��;�z�z^@$�:�eM��d�eN2�k�5�����t�Z:9�U2R�`�P.�KN⎈�
�f��Tl}�/�37Y]Q�N���Ic��k�zb;ė�䀊�x

{2SY���h��\����h�fĕ���$�T�3C�	�*
?���hH�R�o�%B�Ze��c
�6i��I�F��)�y��"��"�éC��b�8����<%���]�,$���R�+�	%P��� ��	9�ƾ;���N./P���C�rt8j9ꗢ��y���`�(v{1mKX�M������YG�4��aR1Ð5���00!��B�w��g�=�3�"Ԫ�ȶ燦݃Xc
���N̦�d�srqQnkД����5������xÍ|�G ��|y��T�Ê~�V�,̪��n���M@���czj�x��D�%�ԡ9�"�6���'�a�%�B�bV.7u �
���SYY�c��^{I^.AM$��?ґ}�#��Ij^��e�b���
�R�������0�.�-���,�zzݐTwH?���o��R>��h�t��t���j�.�ɫmy�X���@��X������Iu���^g�5������)����O�H���<�~�v_���ȧ��g�O����WD�X��X�.�,�Vk��D��)����f����I0)f1y��ٱ���\i����|u8*�qRZFШc3��|�
[�|v[�Y��CYcC��W�~�m^i���>��c�
�7�k�w;?�f����:��P�=K�Н�!qF,2�^�~�堢�V;��.�6B�F��Q~#��V�ǿ�r�6s����`E`6�e�J!0�^.��1��ݫ0M:%��r�s��b�#Ho� i�e��ľ+��K�P8�S�$:ݬ�r.UyIYWO��6-�M��
�u]��Q��E�;�($u\�c�@FV�>=h�U�ՙ���͆��m�?#�/���r�kh�0/�&�5�Y\��A���Zh)�8D.Lw[�3(v�%��u5���L�	Qo�=�^�ʌ'����Eq�Ou#�ăv�'�ܬ������u�����2���\>K���_�4n�ݪT�-NPz|L7v��^ER��"�WX�)��ƽ�sifFM���=�{�I�Kj=�M��G��A[ߦꡚ��f\:�DC�r€)s��
����A��k
�rE��!f��B�;����:�s}K�!�����]U����`��tw�G���u�jE,��f���ޓ���T
!�pq�R���V~�*]L�R�8���8��(u/Tj�qZ��?�V`�ǃq��S�Y�:��7bvU@ȡp
ar#�ud�ۯ`�����p�=���S�Q��f�2��{X�6�lL���zߢ
MZ�g�>�����`�ͦ�U�OLflK�����)���jQ�[�<�N�iSKK����4��w�| 2�9���mK����l��>8��b����H��Ő��D�MO;�t�
�rH�_�;зk®�2�J�K������hjK�l��Hg���K*/�m��� Bಡ,t*-�fs�Y�%�jI��]�=�h4�lt
zn@O��F�_�Ts0���`��^�M݃������n��0Ĩ�����JT�����}�q�*�?��1���k6�b]�th�y�^�
�h�;���
���-���t����Z\��X�88�;��
�,���]7kq�^Zr�v�TL\Y95�kMg���YQ�2�n��u�LCz�N,�@��f��|px��p�o0�Gt�SqD�܀…>�l}���F-�׊��Yb��t�vd���5K�ȃ�#7��FV��}���J��0�z��·Fo��l�nV������w�?�ߴz=�9�N�H]�ߑ{GX��!gMl�4eK�{�G��Bx�<�
r�$���ʚ�P����|=�֢��%�s�:��Yב/�ޙ_a&R|��胶�e
���A�`x[���κ���mVsJIN��VL����W�D�Ŷ�Za �y����f�n���WQ��w�h������3H�	�w������ٞ(��[W=l��A	�SoP�J�W(X�
T��1+M.EN���*A��:MY����,�@c�y��
I�-�
<�V�������"'�&5+lY���r�N��i)Z�]J>p
5��_��HA��"��}d�L*��T�Ekc�5�Z�hH�?3����+�s�^��=�x^4{�^�Ÿ�dv~���!`$���,{"Bu���ҥ���[��[+:������M
�_����KC���:~��ǟ���:9���6�+���-A�V���r�hwf�m�e�Y��}��d������M:fd�en\�;1�6g�ڜ_�Z�hM�=�m80��Hΐ�3d*5~ZK����Z{�v�ݓ��{ojÁ���m�pro�u����%��v��C䭭�ZiP�;���P�u�м�K\�Ug� ���od��m����7�t���1�S���	0����2#j=I�7�$I5�	sVV�" �(h�W>sq���n6��+ᡖ��Aio�Q�ķڊ��
�2N�H�f)�4D�dL�	A�!��֫���`���t8�ȶ�7�!���l΀o!��Vv������
��TD�,�y	��bR!2Lʐ���UJ�V�����R��f?�y����zN-����F�Mߵ@1�@�.Zf�2V��4!�t�2}Z8���Zvǭ�{0�f�V3���HR۟I����%P48����W��ئ�^��&�T�j�3V&����*x����=���J�Ӕ�3Eo�u�1���%wԞ1�/h��#LLaj�4w�Q�W-����IR
�U�*QI1�1�GR�5䎁Us�*<Z��Ah�C2s>������o�i�_K�O�Ϯ�o��L�Oݨ���ё��B�[�yxt��qp�l��g�G{Z�Z]���m[5�뚗l]n������Q�X�]]
b�1N�oB	�-�$��s�A��io�6�d�H�g=�l&��7i��7�۟��:�4-��qxhCSk�G]:/Kyq�6�Yݢ�O�v(���#6U�9��ş�"�J��E����%��3P��K���bH��"���w)�(��l�����Hj�9%F�ū*���v&�#�MlK���b�_n�x"���N��%6�s"�C�P����[��g�&O�.�k�/��N��&��,C�YU{����T�&{|�^LX�'w�ޮ��^�r2Fe�~
��
���3�z��
w��G$�_�	���M��d:��g�Xa[�C(�ec�ڇ�ޔ-���?���]Û5��NWC�q���H�1�P�HN�S %e��/��/���c��V9ʵ.���d���PFm�P�0=+�smNm���@{Sv�_�Y9����u4�{�x߾�p�EN<p���Z�s��.�˜9>���SU�:��Ţo�YO�[gl��7fF��sƓq�N��q�|�.�#ݚ�����u4���_�h�^p�&b��!7���j)�`ڳ�&�sX����1u�x����8:s�F�S��f�'�S������x�|�Y�O��6<Y!!�j���N�<@B-8�-�wBRžu�X��dMw�e<��D
�YNy��vA�@z���,�K{�ޖqG����u���I'	ݞC5bN�9feŭՙ��}��.f��܂O���`y��.(��6��_�E�_o�-۪AH�e�]��sĄ��+䒀|�i�ǿ|���1iO��[G�iJe3\�2LϏm��p�۵X�������Um:���/�"����Tƹ��S��밪�p�@mZ
�+!</�5���
_���"=�v�D5T�
��kZ��/|b�B�^��Y��a��Nc�Qt�3;�������o�$�� ��SݼK��@5���80|̳�
ѫ�LJ�(ג�q�Ә�o�B���2�TiM��X�H�H��ۛ���ä�� �NQ�V
1pbB����� ������̕��
]�9�޼��TQ�#��'��g�'��٨��$����|O
�䮒:ik'b�m-��[��mja�������	�R{�H��sD�����6t1�����"@��	#�ʖ��j`	y��~�����v���u�M]�$g�@n�{e�1/�(
;'+�1��j�Z�=J�h�-�wRY��L1��esy]�����R� ̱��?�' �hAx�G3�!Weq��`v�)\Uȹ"ٚf4��j���.��@�����ۡC=bXGpk�d��q`&%��7L�P�u�TX�t5�x�E�C�`H�>��-9L8�H����Iz_,�/̀�1t"G g�7D�i5r��1���o��-p�[�w�Q6u��|	1��G탺�?P�?���5�~�h���	o1�~ۯj�o�a.�\�)G�XeG���#^� ���v3��L?[z�G��p�,�f��
6;�ң=WCV���Yo7����虫% B����+̭ъ)βq�j����:������Sۑ�XtI���]_=bR����!�% ���X+dW��j�)��F�	�\3����^=wg��?S�:^��h>�Ѕ�|K�{b�^$n��r��R3��aM�ҪH�n�42�হq����],QZ��[��e�ݙl��b0-�����{$��,0�psv%�t6��6c���}L7����vs�4x
�#�>x׺���5�IfSf�Ս�z��#6�<Dd��)�ҿ��6�p(��[Q��&�dZLa
Vm�׊B3:����5�����-��^0s˴F�C~ݥ��nX�^����B�.�]�?���A�/
[���p�VH'����~i���QS��T�����y��f�2U|ϻq�pD&E�[�N���j���A���P���~�uF�
f՛P��:��&���Α?"m%�����|>�H ��k<B
y��yR�>�OO��"4�]��S�޶��5}�=AI�J�:NN���.�1��']���'��\��?J��-�MA<�T�	(�5k�D^�\	���!�彄?�tC�#���x�S��x�H~r@h;����]Q�d�v	�e��>Ped�,�c#����jZ���xV�ta�1Z J�Umf#��qW�8�Z�/����Z@[I��$�<#l�Pn�6�޹/@�Q�e�L�: �z]D�%x�V_('z��oĮ���
ʈ��xiXunub�U�CQ&x�T�T����m�|E�%��S�o�vz5s��i�mc��Kü�KT��:�}PZ�,_�������
 @�G�>����?�j�DE���6\Ɨ�7.0?�*����
��B%���߁����k�ݳ�k�p�^hz7�HI���RUĐ�~�˜���k��S����c��F�HϚK�H��M��p˾y��e\�1˒�I�
�<3p����snt�_�2��nx��!��2p�"�ҨAFqv}��B����K�KTg\Z#�=���z`O�m=�p�uG�t�.AWx~�g�VY�lSrU�9��W��Fl��&� ��4�ʬ�lK
Mw���&�������=���j��x��2Fl}u� M������t���:*�L�?>�ӷ��n�T�a�]]Q%&�GLc�]��y-�;�o^���Xd��8Z��`��Q��O��w���(�#�9�0��I���سqr�]`Bݵ��s=L�G���n�����i�^[c��$�������7�>��|����߭*n�@�\��>[�.g�R�ڈ�{�[�����K�2!Z�&�z �[�����_.^>��ח�=vb*�#Σm�1`�}+T�3���&��]�t�$.f:y�7z�����/���6A"����~1z���Jb%%S�H��VoV)�h���L�k���uNu�X�ȸ,��Q�B{���K��:c�;
�F �g"ċ�]ߒ�D�*//
u|@8��ue9d��S��i�oDž�\��Rm���<N0B���r2�5[�m��Os�8��s!S}�2�5�sL��!��o�ħ���Y��j��:�C���6�� ��@���jZj���^:m�W1�mK������F���5Aϖ�6h�:K���SS����MC�#| ��T�j0�y���I��)v$�"�"0��ʅ���NI[��j��@��`��V+�0���:��Qt�`1x�P/��4ք��
�s�4+�`��P*o�O;��C�6�5U杌���A����x���W�s�_�Nj������x��e���� [�������m����$����LjE*���t��9����^'k��Ń�3$�ks8G�p��w�2�Rk,A��Nt�_Ș��V[�6՞�z���k�Y/�f��꼞-!VD�i
�������ۗ�yNgX���]A����������jM�Z�-G.���q���м�uYٳr�WH��m�Κ��d-��L�~��j�[�n�N�3)��7G�d���H�.����P��G�2�/Q>�i�7�Ӊ+k#iJR�Y���/h?aDV'��1�Ϩ�f�|U*s�Y�����f荓�F~F��&ͦ#�y��+r>��� %�Fn����vu��:oA[@�T�Ɋ�6�tQ�� �폙҉F�b�e���p�U*�aM�0ݸ�;M3G�@�D���K�,F��+���s�SS}A��c&�I�"���o�Z��w���l�~x�,�W
�s�î�7�$�iv,ٻz�P���V`(�N�+�=��CU�K&!�m�F�ؗt;!�a��m�Q䘾
ҽ�L�keh�x�=r��=�K�à>ȼ�[L�9=��>��Ĥ�S��&C�Ս7���N�,�Q>j���)��%�	eZa��l��ȝ!�\|̔	ų����O�Ѯ��6S�(��~U"�3�X	��fQ'��~��<�*�-��v�/�%����S�~�Q�!]|9�E�0�\��:]��%>��5��o���W��(>�^��m��H9%�+⢫����+�Y���c��7�����1��	��H�^6a��zLS�A�����L�R��&#���n�=�J�2}�.���%�Ld�=�b�n��Fg��@��V�	��F�&�ߕEN�+w��P�-j{�^���,�ؑ_gp��̔U�u:'$^U9���B��X��S�
�ړM����'��5Q��Vt�x}��v��:���=APt��!#q�w�^��8���6l�$��↼7T��,PNB`�!�P�`�&UZ9�� �|�CW�wFM`x�m@}Ι��hT��=�QX���K&ݨ�5|m��L�R�t��i��^����\��L��^G2�+[b+���.\C+o�F�0�Fmm��l/U�!��DϬ����(�z�~w#.}����?�6�@*�l
�7;��l�+Ҋ�������ct�	b��FC:w�z
�=!�mi�R�`ٕ. ��EJ���&�{�B��]�c��Lǁ����C��Q�����0�&�:�+y>[��6�e���A�3_��F�t0���w�x�M�"�c"Q���,`���&Ex��c,ZNO*�R|s�^�Z�&%\i���ʄ�
�c*�m����Y�W�&k=����'�e�s-撘��ާ�?u{�걠���p��JΚch6�j�1��\�1��mM<�P�!��c���2!,̈́h�r�|��p��S"��.�W��+��W��2Ve�R=�ۗ�A�Ҿ��^CGeȭ�B��~��H�@�?�6��'
��0)�s�u�9Č_'i����(1J|��o���S���tSw�����X�A]��\xF��t'�2�V����c2�۠-8��*#��%�(HC�%��H�$M�7�0���a��a@n�A�w�����%4�#��i�ْ#lUn(8HR�doȺY({di4�c��ݦ����Yn���0:^*%��,�ڀO��ո����>j#HQ8��C����m�&�uE��m_
m�=���	.�$cu[("r̝�Q�0&3�
6ޥ�9Uq/W7�b
���n}she}k��4~EeF���×(f]������Z��"�[P�h�I����
�	ȵ�ݬ�}�Kt�H�QsI�
,�Q�OL4Ī V)������gc��b䒴e�9�iK����~�ɱ\�+�m�]�kYf_�u�/��J�מ��P0�$�Vt�_Q%��}�Z��,����q��r�
�,�e�����	|�U���!ATe+���2���<�����}\�r�	'ϼN,��\�n��� �5GO`�a�5]�9�Jsb�TԮ�8���:؉'Fz�:u���!@�Mzgat�N�z��<�MC����0��)D4�zwND�v�~ݲ��Z)��%��l�}O�'zx^˟��%��|l.8��4]�uS�
鎃�P��'g#���VᾈOޕ���jR��7����ӂ}�>��կ�k���mZ�?~�͏����Q#�a���wuK5��\��D�X��a�9�D�:��5�H��e�	��YeKDTа���*��AoXMМ֕�/�y�١L�`����s���ވC|�˃X������=v�|IDpJG�������p8��.��"W�|����gb�Pk��m��h����Kܬ3ªұ���ʠ��T�#&k���;H.0��:~�
FԶRF�-\�0*�oPp1�W?,҅/�VƳ���ɺ,8!q�%Z�=�G�S��٣�\�7�pt������j	�fW�oԯ���)4-u�Rj7w��=�����a#�Kk�R�0r��<ad����ܘy@��a�2��@�pe\Y��n���솫��) �n0
B��!��L�����`|�%2����{2�c��cU\y�Xdp=���������
�H��M�%y�7 äC3�.֒�6�i$ɽ�m�;�[���կ�H/�Sa�G"Z��'�Ƚ;��OoGfQ*u���)�0#���}� v{E�S0��Ŀ!��l'V�
�����결����@�$y%��̵����/ebq�=�狼�~:��4�o�&�N)�Ȁn�,H����Ǎ����eҮ�R�:��{�"�@,���dA�O�G��I!�E��EϞt������s�$�/~М�h�?gx�����ʢ�6>t��MashE�7��o���ct�B��&Vi�>߇�n�]����uf��tͅ^ޞ�z�&Va�ddw`/DC�Y�Zb��3�DR+
��(F�?���M�R4A�9�"�[)��Nɴ��:m�G�����T�(�h��\��ȪÄ1rX�@���a��f��7Q`:�-��X��01|�h�(.���
|�qO�h�^l��P�	R7��f��Lb4F�kݘ�s�_܁�(cn���z��);�q�ܜb�H�4�T<���Ak��
����B�T��W���C1d)� c2z� �-G�A���UW8!ރ0۾����5�J'b�[����?Ow{
�����x�Vx��
��:�c��́ў�m�4��@��A��	���;��4��ɔ)�Y�(�c9]�a�n�L0)�U3�<m�lvTh]�EV�3F��~�6[#Wo��ԼA��d��Ϊ_3>%���T޽�����c��"�X|������z/���{�M���F���Z/��l�-Ѩ�Ϡ�w�Z�4���"��gp�N���F���VC��7�[NQ����4�hB�Ԍb~gZ:�S.qU�PFQ5��b�����/肠w�)A2t�1��x�����%@�,���E&(�᭐r�����))uP=�~�����ؾ(f��Qe��r�Jg��dI��x�r�����I
G���l�k*S`��\`0�΢�Ї�A�q�-�
ׁI�"����(�!η��pk@��
���LH��d�2�r#�����3��(����5sLW䜥@š���Nø�=hP����K��\��l8�Ϊ>��-�
���3�y9Љ�Q�-?���]m�<,�,�7@5�akJF�qЎV�(�r��^�� ���|�^S
�Q�شT7<JI�������L"
	"�D �y"�ǿ�sإI��Fʚ�3��i��|�$��j@�IU�NJc"��ξy�Y�:�*���5X�qUkj�y}#�J�q����HRp���g�[�6xrc1RpR���)�s)p�=�@^��З��<��Ϫ��8v��۴��仓A���Xi��a>�9U1�"(7.ٿS1$�;�$Q�X��$�)k�b��=�/�s{t���pBo���bP��)��W9�(�+�H
S�ɠB&�޲��1X���,�P�sbV䄟�4r��jFqԃ�;$!9T�$}��@t�#���͹��	BPS9Y��dt�Rr�k�c���Š���5R�e���l�H��}�y��9l�P���1�V�ݠƘ��I��.��bbOLb���	�^��s��xlV�$�%�c�����	Ӂ�7��f���:D�{��+�F�Xp
�?��}�Ɓ�l_�&���T˾�M��~N9N�[������e״�T��/�+e�ŷMނr�<s�8��4
!2���R�
�,���KJ��(ȑW�A���*�W�b]W��n��a����_r(�x�!�50�XYW��2����/�z��;.���&�� `��?�M�UC�&���~Q�k]�}�.��1Ė�=3���p,�g�������ŗ#GI
�.�F�wͫq�j~-z�����ƛ��-r�\(��R���D^<�8)<|g���/��N��P�^^�HG�,C��J�7v���HY5�'��Ye"ծ�@{1"�I$zK�Y�'�i�qδ�N�b�6b[U�7�V�KgJ([6��$��ڛĨ�
pg':Wإ���/��1e���5���xj��U��@�OU��m�LT��#�f��	��E���D��zt��O�'��"�e��⑺+
'��}�/A�s}��4'�j����Ш$}p0!��}��۾m��OeC�=q�m�"p��2)Z���rg%D�[��R�0����&��Z�L���C��P[9|��#�,�gQ�+�2��h,Ր�s��R�!�u3!�:��+Su'�jH������<I!��Bt�mrz��s�Z��uF0�&�#���+��i	�����,E3OY�g�B�Am��/�ܿ����Y
���֏LpA�C������M���Ṿ���ު����
��.s�|H�z�*�@��(���_���5�:?�uOe�*�Cj����\�m-/�SA7E{�ß�d���}�1�?� ��y2%]�-��ѴY)G�•
����g�]�TJ?��a����|���;{4�B��*}rWG$`<9'�X�5���wZ����]�$�ֆ�ݟ�um������ϙ��H���t���i�Zq�{N��b�X#�$h�B1`���".P�N[k;�j�jԝ�6Z��+�V�uJ���<-��p�6������,o�9�������P�=��2��J��<s�L�!S?�� �A,J�X^ve�n�����$ש����h��P�)a��d1��Ǭ��[��P;�%~
� >�v20�Z	��'{*;��'�(2�L
��QD��h"_Wï�\= #ǡ�~}F/S�#]3)�@r�X����޾=���|�> D���^K�R7D���������=��A#5z���%]��7��`x������A,���`���0��r��3��ҿT���o���ǿ�j�kg��׹���F��'�.�{[*$/$n���ܼ-�hY9|y���x�2�7��@�u��eV�i�å
��#�HG�64���͞�,R�3~��U^F^:Ξo���ܷ�!�}�V�MF_%�ք�ozfN!f;#���Cb���7j5�ur�ju��6.�1�G�>�o�V?p�=�(��6^e�87W?�W���1�����gS�%P�X�
s����������8c�U����U�U�
�GV�8�e�ӽ�� %.���"	�UMjmH&1DhdI��74�W+����yS	�X�6%�|��̕�����],1M��"0X
���I�u�;�9R�4`�}*$�!\`SI���`�o��q'Bφ����q%��.����
^/��Z︳^��1���^Fht�C�2��Gݺ�����a4�d<!aU���6V[�CZ��p�[4uP��UB�}}�YA1�5��5|Ѐq��v[I4)��W�2=�&7,�>E��GP5;���*��׌�4�Yh�#�<K#�'�Ҳ��{u.��x�}K��!�Z1����ٻ+�,�WƤ+�"���%��ʧ%��F���`&��L�Zk�.)V����-Ƞ]]��	��A�4��Jm]3e}��ō�]�t�d��@��
Ip�9}�3P��h�HAa_t�x̐'G6Ջ�3��|jӫ���_+�RԂ�\�lU��W}

O�+�}���F(��pɇ���R���*[	��P'����'�:niG��e�x�I���Yc��y{}.H3�^��[�ֆ�ٺW��F�V_"ɭ�7�@�z���6�X�IN�ľ+%^� �L@�%$"y�GZ;�##>�����l%�1>�V�?��d�r�v��x�p�V@��e�Z5b�FӀ���}ry!��G8��?=n�y<`��@'�o+���Z�z�x�dk�a�VV�2�M�W�J4Bt�M����.e��z���r��Γ��ax�%�D�*k�$���9�5^�-�8���mTM����69�p��l���oqp�ԏ���4kM�
}�}�@�h�.��4^3��C o�	���]��2���bRP��֕�7��Tl;�z���N��Rj���c�"�@�F:9���8��dGnz��]&"(TC,Y��V�(�!�㔠����NZsSR��>C�/��ӥ�3�Q8��W�HE���1�T�y_�8��phԣ�v3Uu��c����	L�~K��ʹ�<$�=C�!����P�zz���2�Rd���ڑ���Z�.2��bb�)iї"d�O��ch?$YoO,�t0km(��ð�ኘv�0��w|�j20��x�p\�6�_�ʏ��64�Hk5�œ�I�ތnh����6㍺���ľ8��}o�m��В�So'�|N[���^�Ƞ9�9�j�.�!�����d�>@�̳�Yb�,�*�g0A��s�P�kh¹�[
�
k�r'���v~��%�j*$+
/宷��E~[��4?����bw����4]}C:���"�`��@�H�ľ�5��c6�D�(�c����TB��j�U�L�ϴC���`w��z��B�-�ő0}��(2�^��Q?��\�
>�U�-ACJ��Ն)��%=s��2���
�T�

o;���(U�(]�B�꘽�4}�{�i��E�+.�s�|�6�4Y�_��é�\�-|ئK�#'����@ͯ�����z�@"�z���y��w���׏�����t`I�	׉�2��$��_�@L���2�F�6��VT>�&�278�����p<�����=�f�]Y�o�tV�(z�Rj�y��p%�y嗾�1��-�����MһN�|J��P0|O�!K���\����kd8z?\~u5��=�o�,���*H��N��|�j���y�M���_gE�F�+5�/��
?�آE�;�ll�J�X�eP(Ύ�R�	5@C�$n>6�7�b�6Ж����V;��8ۡ���x�e�NgZ�fb�v�xvO��?�ě-� ��;nӈ�iOb��7>;��^��
n<�Y�3��
�����������R͛�^S����_!o�����nQ��YӺNd�*۪��̎Q������뱑+������@����.���<x�€Y{Bl��8�]��l�5�F�,���v��	�=�(�J�EE}�	��b
�k�F@(ɣ����$'*֛E\
���n�ϖ���i3
�=�yj^h_m��N�h_Ӭ��1�l3�N�^׹�a�ۈ=�q[kX����	�S�����G�P�m�w��h5Q%��
i���*��/������Cmk�M��b�^��q�CF��f�ih8��T���k�޸g`�,a��}���(@p���#T((�Ik�"{���E|5����<%�UK08"<�u�,4�B�4�hH���{N�e����ھ�$#�Nn�el�!V,�ha�;6�5W�Ճ��D�O&��Y�\�2��ҕ�t������"�?���t�Ո�*�5��(�������ݶx�2�A{�9�Az�m0K����@�Z؁
<���Z^�עW"`��]h���`)`�ץww|%U�<5�� �ë.G]�>
���Z
#-Z+���(*�h���Ȳ�Q
�	1|2��z`�ɬ�eV���C�.�
�v��?95VjB*tՈݧ�12���{<&��)]�)u�QLp��|�4�r�VNx1�& *�kB��G�0lK��(LU���
ִ�O:^��N���m 1��S`?V�Β��,�r 4�ۗ/�&t��ɻ����߈~�9=sv��mc~����,2h5��c7�kA
�w�qh�n��C�6�D�mU�M�U�d��}�;CB
1(>�E���P��������F�
��6x}渲�klc��&�]Z*z?�mj����[|<��['�&��r�P�?I��U�!�y_�?m�B��A����S�0,��`62Iu�
�x;��h���I��r|�;�(@�]�1����%�S8�0����Cq��7��16O2�2��1��H�'�%���s�/S~��x�ĭ&e�BY��J��
�,.�%(�V�C���{���X�	1�sD		H�$>��E��tB�Zj��b���ԯ'��	i2IIG<�
g��?@��Z-K��6G��O>D$�����|�7�9�$Q��
5L�^__���ʡ�'3��l�Q�q4@��@f�)��ю�X�و��QP�_���&�d9m�k	����Wm��^�V!
��d�'@�ϨZ8��g�@��*@��3D�ҵ�E�B Ż#���=�U\�����+�A$�.���.S�5�_�JT�g�SL۲R<\P�3�#�X=�qH�\����a��c̃� Q�C����c�L� 	J�
�]��a�bB����=��=����h+���im���vX���5� �v:�P�i�o)4݄B��He,P-I�5v��]�k6�x��q��aw��2��j�TD�YX��j��+W���@:(���;p����%q�>�b��܉����Ag'$g�@^7���)k�K��s�nt��5�B,=T0v?�U��g0}�	�5�k.��Eq��>K�RD��v38X^M��`��U����D�������#b���i�5���r��˸�;ʯ��~y�/
���[g���^SK����j���l�!5���o[ѻ�<b2)-���FrH2!�|G�g��k7��G^�Ve4�8pC�hJ�
YU��xE*�`��1A�o~9C0�m��K�?nS�ݞx�qq����o�����j��eʽ����L)�;���%���5<T�?�"���^_eԗ�˯�ݣb�A��RS$�����"J����b1����+�RL�����]�H���:�h�2�Q�h��Q���™ދÀ�
�O�!�8�68F�rm
@�o��'Uˉ�s�Sa=�(��3�n.
%��e��/
���lm�E6�v�� �hEl�@X��k�E-�^,�>IFV��X���٠tJ��>�7U��S{`ݵ���Й�ߎ�s�>��Ye��g\�g���Ώ���줇Nu�&��:gͫ�&3��BMW�4L��`S8'V��M[ƯY�Q�oǭ5z�Q��P�f����.��1Dh��$�z����A@i��=@,�
,G���Ѡ��wjV��a��-�9�U�r:�
FLD�gC,�|m�x$p���X�g��/@⓳v
�~��P!ie�T�Ei)��НD0�d�;��Ţ��M��h�D$�1�[d�uY�m�N���QF�}˕C�sJ0/m��
	7Q:!�\������_��4�a`cF��X~]
i�������"��]/��8�j(��8
p���yjqZ�lف�;4=yQ��A�t}�ʅ:٨S�l���I�8��7���E�����t�@x�3�_9.�	1��L��b\m4����y)f3�o�iow�
<���9����~�����)�o�.d��U�b�z��w�?����U�i�^��V�A�1���F-T�>��{MB�h��ݕ�p�ɋ-+O������>���Ҕ��Z�,#[[������a
�\���[G�h�tW~�-�Xj���Ot=�����҅Nu�Z�-����R-qW��>�B�d��mk��"�i� Y	O�R.A�Ź�������F�+����t1�6�&�ߎ5	���%�ͫ�6�,T�i��$֭����z��k����m�ƌ���*���nsL��k�ղo��Y��f��(Z��|�d��=��l度��t-0�SXm*�6�V�H,�Ҩ֕��}2L��&���{gE�S�r`k�Z�?
�=뀻JjƩb!<	�JB�01�A����UP��w�ϒ�5狩7�ˏ/�]���ڥ�¼;�n�Ͻ �u����T�?��BZ�������%V�/M#���6�m�*���?��(H�F:|mZ���<?u|U���N*�!	O��a��Yb��	�2t]�g�����B2�za�T�:S�E���<Z�#-B�ȅ΁
�,s?�|[��3ɚ�5��:=�M�~�X��/�k������2v�ɍf!l]N\�!v�]9ߟ��"�憝݈�#����c�=
�b�>Ʈ=��J�v*�)w���{�8q����g� ���pƭ�c�	�}N(s|������2��9h�<j��N�ڮ��5��^�ڷN{g���9YvA�!��LV�ϐo.�������z���M��^_��DP5j��G���sz��13��Ut~H���l��0�
����	y0�
�P?�'=���-��b�8�������O�9��<Rl΂��M�x����6�0������X�D{�QF#�r�]-<l��9��e-m�Y�^U]�E����y�WjΑ�G��vćT��`GkB&���hk�ҥ)�#�
�K~n%1���������d�hȓ Uɠ^��-�G�P=�X�����j<&>#�Dh$�!7 ��wp���n�|ѡ#oC��
�)������
|��/ԁ�?��Z�9���v������h��Lb���k!;\�F%Y���\���Bj�����X}0\t��4��ǿ&�m��w؞���p��b0���ԛl3Ȼ�m�of?|~�-j�33�r&��b����M5�o�n��mh���2����O��=�i0��]\�uO� ��I�O��Cu	񼛥`�Q5b��N�޳X{B���c��/�9'o
ǘ�����p��
�7��|�b�-2�������?��H��29�Uf��}l����x��J��{���'�=�=_E��6Rw��Q��A�X�?�=��H<Ր8�vg鏱��i7��]1i�k���+RWh���:z�v�J��w�j��X*��>�,Ɇap#.��X6MXq~�`n�"��Ѹӊ>��V%�>|��}#�S��nJT�(҂�Su��}@�a���ӯV�]�w<qs�/ú�)F�1ז
�u%��=�S=�_r)Y	uk���-F�aj�.q�Ҷ�]�.A@B�ӏ�𐼕����xqɗ�4�jCP���lm�.���8���u��k�ތ��wi4o�m���a�e�E�;��(&<��fo��
���&�ʶi �����f���̲����ѽ�nY%�D�C�H�L%�Ǩ��)&�G?V`�@*?�c5���Q����t_��ه;�����H�F��_r�nM$@4/q��X3���
`
7�V]�bP���7�j^]}��DS_[��v��&�!�63��A���S�����0W�C��U�S�ؓ�-Ԟ�y��z�TÇ�|�o�~�B�]�Z�m�V��K|of�(�GXg?�d�*�Ir�
����b�HG(K7��Q�v@[��8�%����݊ҷRs����|�녚�_�r?���αh�s�o�3{��0���1����ʍ�4�8�xP)������Rʾ ��C�o
��`�:.?���su��.�w�r����XK���)��� �lM4u
6ᅔ&0xK{��ۥ=Z��g)ps�-�^]E�z��r�L-���v��M�HX��awȡ���n�:ez��8/!X�k�v����8P��3���uZ���~z*��n�p�l�R�V��w����A�=`:x$��t�ڛ��I���7m���B�J:2T��9%�
hX�j�>�co�e6 ��b�ï����mܨa�S��xHD̫��ѿ�1�.UiI�܉���4���!��B���a�����o�S]SV�
�Y�Ʃh�HQ�%LS6WU\4(�����C��f����6ú�r;��w�����rߙ��&�P�/s��U��GQ���̋�c&�,�x��m��Q�|$
�M�'�}�H4�,0�Zň��D�Z��kI�-K�g����֩L+"<�{�d�>��a3 O�P]n�ɪT�ܔ�X��s� ���88a'(���թQ֣���J	�Q_)%/�F���Qt���
M]Q�����������/���,�esG�g��3$6�D�P2��(�	�	C'���Nhs�R�*�>��q7�4PA-B��^���M�X�6�z��NI){�r�K�)h�T\��W��ey�����8�<ȷ�-�=�̖�4�d6�VE����E������d����17K
D"�G���*<��T�zr�CL
��a�G�6O1�[�d� ��N�sj'�3�՘��s�Ag9A�S�	0'���Ѐy���@���ocJ�CIB�!=��Da�Z�h��
���}����e\�L�d�h�k�7�#�dž(h����q%g<޿�p�9mF�u��'�l}+�쌅���"7��Z��I�H���{2�1`?��4�.�,�m���~R�,�ԕ*m'j�� �ֽy$caC&���k;��9����4'8�
�꛷��&���7L8l�~k�k��)�*0���f
Z��V�0|ݣ�)�D�� �Gv�G�}
d+���!���)��9��(t�B�dhG�Q�����l�ۧ�WT��x�"#�
b�\��i"ƅ�>��0��-����3jw�����%�u�7+y��o�4��Ζ_�`��I���j^f��Mh�z��F�4Wð����F4F���+���3��������E��
�xcP�#�������9|�'��q3�0�H}���
ٞ?d������9h�U�f��w�6H&����+��������{71_��u��[m��V;bg@����2��}�w�����z�(��	-RT�s�"��x�����^��I��̲r������4��r�|�z>���ʧ�_~'�������ղ���ҵ���vG�C�{l��ou�#`H��T&'��7��q��]��r�;��f� �{�c��(c��;���h������I��t�Ey���{�@L�ŧ�!��ؐ=�E�w=�F�����Mոs��}Su��=U-"���up<8�q0|.&��1=����M|aoߴ�![�/�W`��?�3N쵒���ˬy��)��T5���W�Dm�j�a�<���ke��l�`�T"�Qjm)"��h�ۢ�D*=T���=�&��j�q\ǣ��V�T:�Y�e�:�6ND��r�I�j�C��p 
h�b{�J��ꡱ��
���^t1�E��ñ4�c�rI<wLX�ɠ�s&4�A�EN��й��
����V=�Ћa�C$��#4�{�՗��Q�+�n
0*D�\�M�!	�E2�)��\H�T#
�ٜ��!	���pP���9!��&D"���G}ByY+��)KnB�x�
��+7n4`aW�2��mo�ѽ�?����J���2F ��x��XN�=�A�&ru�%Ic2���l�z��'�Qo
G����Ύ.�=!3�nivDŽ�oV*Şॸb��-���h�56!X#��_�$%��āS��dQ���,��yK=L���v]�ـ.Yw+|�׺�J�̿��N�K����_T8x��0R�Xy��g�P���?/	����
M%��xe#_�ݲ���]6��/��5]���)~;�$�z9ڲ�W���_�Tt�;m�w�o<�[Us��`�������r�@�V�n��e�Nq�/�MĜL�ӳ�tY�F=]�P�̻�:h��m'j��S`�d�ᤌo:'kF�����^M*�V����>�J���l/����!��9�3,����_��
�5m����
��}9�ܦ�������K�̣��^����͜���Y'�wƏ:*8w���w��kZ�Euv�$f�Ղ�Q��8�]G�Vx�_۱5hD��נV�6Z�0Cj��������Z��ۺs�-T��	8���m�CZa���з��ܯQ26�!-����A5{���T���=�l��
u�d�|��t�W)r�MZR77T�d��*k�s>�q�X#����k�G�a�_���R$ ���N�=/����gu��ˁ��4��*%zQ~��Y���t�%�� 4@�A@� C#ľ,6_1@�+TOH��.Yn=Ř���g�d������H<b��$��;,FF�8y&yW
)�r�A�k�
'#,X
\���k*$�i7a*���,MM�C	��͎xn!��+e�p�^�g@��7�Wx�����7�|1�+�0p���w�"�?�?��)T��R���70Gq�������
��Mln���*;t{�G�ND�7ȵ��;�	?����H���r�}з>������`@���R�2_1�[F�W�lQ�?JnO��`8�X0��NB��K��*��x���E�0�P��I[�VѠ���i�D��P��F"6��,.���2�h'�V��4�9�J:�b,�KY��8V(�,��/��[b����$�S�(A.'u��Y��Y�C���K9���|I�)S��R���h��@^#o��N��<akVZ��j/�b�h	�2MԹ�1���
:Ox
���
��lє�x�*^�@t�Ñ�D��$J�'�qo����e���5&����
6�M/y�М�7e|KF/�х���匤#nS<1�#���;���c0���d�'h����M��]��p�����oҺ��n2$,��YH�y�*�x#�+͇�c��&��A�r��v �@�L�X	�S�
�7BV�&�ҵ9O�,�y	
�'��zv6��A����`6�d������6-�L���N�\�D8��u�
(3���:Uf��~�L�;�\�X�7��=��k�@-A߮r����s��/&��'CCl����M�2�t}5c�ɧ�	�7g"Q��o\<��Iۛ�Ѿ�;���d�(��X���p�U��N;{�z��C��D��/2Ui����oR	�3���[=\��u� �5�a�B��ʉu!sL��
L|�����3g�5D���m�N��W�mx�?{�G�ǿ�g�� v;a�Q�ޫ�Q�OʆKR��x	Xy��5�id;F1M
^Z��+}�1v狸���*O]E�2)��肘29t�x�2��-�K�ZL���HD�G��8ݧ�d�_+A��k��,*6C��:����A����nT����,
��j�T�
����T�]�¾A�t m~����&ft�<Н�mb���˳��x4x�&N�%R|��*�����%�RL�~t��ݡ�2�iu�n�S�I�����┘��0��~�
u���x�ΔQt��e,V�d��Z"Z�CL$��R;�Z�����~?.H��^j�l��`^�E�z`҅_�I�\=�l#,ޝ_]�:d]V�'Q����4�
�҆����nu3���bv��]ψ�yȸB���Wi��(�?G�����l�kB^�_>��B?�������0���20�R0�i�;�8��+Đh�����	�L��Ί�0�B���P���m��[��n@�IV2p�,��?o���-i\�ɳ���A�(b"��p����g�M~_���^�������BR�|<燒��B�e�nî��9����_>p�mR���D�u�p�[ô[���d�h6�h����ֆz�h�ki�9ߝ:lu<�XsK)�S~@���?J���x�7�'Y��ۨ�9�Ϣ�}��,�}��rB�889��{�<�	��
�4��<GK���E{E�N
��G=��Rbl�.��}�F'�:�Z؞s�4��JK�jf.5�ˬ�\������O�X��B�K����p�mi�+�Q����/�UNJ�+-�D�
�p$лtå�ά&�d��ߧ�h%k��J��2��-�����v�"}����Jo�d���=�uה0��X�]ǒK^`B�mNď`�4��dԒj<��픭f6ˑ�2����|�Bl#:�h�q��Ի�SJ�J�L-(���<��`��Qn�w۴���'���n��C�V�h�,YK2[WcpN���>
>�X?�j7i��X�Ot
�<��_gK��}[�cT��
V1���S�0h��9�_
�����v&U=���
O�NwE.�DO�NV���K]
�7��k�2��Jے�*h��v�՛�@�T��\������]���(��0<Tp	�g$/]�R�q��W'ᓪ��H�w�y���R�AI�wb�٤Be9Z�È�;�q� �ޱㄶy K������5�G��1��U�V=Kc!*#�4�?Gf�^��/����G���@}�W�����O���+D*5�$h�l=w5^�+k�[*�߭�欃8I����7�w覈GL�
�-���-�6�5�}"	}f��p�d^>1�Q����B交;	�Վ�2�Рy(3o~�ld;�ռTK�t��5���*�/���h��U�.
�����WU;/I?�}����X.�S�QLbe��-�ƫe���n�܊B.p��9����]�D�f!Q�P��ہ�
va�C@�e*���[?ͻ�< �����h|t���fR�I==R�����ug�+��}�V��U�VWC�1�b�D��t���ykpz�Z��Ni�\_O��^c�3�Ӡ�؃P�S����H�
��9��8�V)�H~sZ�-9��q��q-�b�e��?{�`��s��%[,#H�^�+	�?���m��t�B�E��b�:Y`�Hܱ!,���Z�Kp�jZ��!��>�u���5�t$� ��fh�`��\H�D�<���wEU�tQ�����Ց��
l6t�pc�H��ƾ��fpF"_�3-<T��8h3�oU���Q�,����#�c��#PF�~�6)�H��A��IGy��Z"T�'��\��F�gߟ��>szqҿ��M�w��_ŕ�$�ȟ}��4��zZ	��z��,Խ����終��W��^1`�~��w�"�>k|W�+0�&���0Nt$)R2�BR���n�Ƌ��6@es�ɒ6H�0��1Y<",��ɾeXGE-���=��+]]�3�����"�p���V��x.SĞ`�ϵ��ܳ��o�.n|7�
����M
�SO?����!��-<�>wXC���
LJ[f�k��!y�Rt�7a���m�Sާ�����9`��TmU��]�~DJEN&��m��&�-�W�q9���YY�$����d,R
�G���OKh�?S�se��ԗ�M��8��b�F���HL�k�;�<s��xP�6.�vG��2��A����j��d�@�nC��	�_s��.(X�F��>�4Ҷl<m��-|�������d��қ�@m6��l�E�2:��>�6הּ�u|��H����,H\ǚ��iчnZ�@��:�/���Ư�̹����dT��������2��PFE�,�w�
������6��5�Z�۩�l���V'3�Ddުmr�f�s{�"Dh�%Z�e��Yl����,�yY4���n�����j&>P���C�H���^�����_��N�:)��`��@�׈2�	9j�Y�jl�wJ��@�����닫���/�M,O�?T��/�pf�7͋o�D��*
m�
��ϗ3~CO�:���)�m����~�X�+e��k�P�J�_g�?�F��;�q�yXp&���}���P���hw���A��@_�l��X��
{	3:�h��پI�xŽ3|P��ǿ����%ŀ�JO��=4ju
��4����PZ����Xc�Te҇ƕW	�5>��B�2��o���˯NK��^h7��F��etW#� W�z`��[6�~��*z	�E"e�|[���M O����^|!PKM톩���II.q����@�C!B�V���0��;�o"����6x�j^ץqHVPF[�T8�țq���	R���A�I<�BR.��i+�Bn�\۩K��'�m-v�:Da80�����Ok��E[���z�m�/[rH����M�t���3���WV(�`��g�-P�!�:��h�
�ILAk�����3֔S
�셲E��v����2��2�F!��(K9@��=K����<��kez��,jk>�m��E8�L"dw���r埱I,�j�I{���%�<de����E�� ���x8Y
�}�5��Z0;D]��6�x�o��.^�6���Wp�7���i�f���` �6#z��-޵K0@�ɀv\�[����vV��I�=�Ÿժ�S�p���̠&���P()D^�XF�C#���
�傫|
�g`o��
��߾��U��ٳ����B-?Ԋ���h^,��(~R�5��Z=�,���_A�h܅��r<o�i��zÚ�a�����#Ɋ�bI�.z�ΰ�&j�9LY~K戔���35'�:�(�=�=6��e��z�
z;�-\^������N���2O��k����^j�L;>
*�f���=��⍜i��l�ǻbEM�&�Oyb82]��<g&b�Cm+���&5�r��k`��A5��H>	�\4&Bz���
����
Ɩ��g��n��x��Fϗq��N���=�9~ssP͋�L�U�R���=b�CH?`�ޏJ@��v&j��KeN-��cћ�Az��I�N#k������!�P��\|aK���[�[�ai_�i��D��Eq�Q&�߶z<��T�WGq@a�E�m#5�mb��q{pZ~}��m,|E{���2N֐��]��)��|j�R]��/�Z�1�=��R�R*K
��)R���He��z�<�k����Q�7����������d�$����T�YY��U�Q�b�.\f�,e���?�6�?��k����iM{+/$�*�>}��X�Q�
����	g3zRy�]�l�݇�@'��\!%g)�=k���4�|T��½��5Ie�T��&J�$6�ѹ�y���@���M��&�_�L���_ģ���)2�����Y5
�?��C3�������y��z����Ď$�H�5���孚��`���d������t��+�maW��@�H
��T�����u��th�|�Y�P-�@��P�����0p��\�_���IG�MD���c��6�U���I��5�M���?�!�ϙ�3����ݲ��Z�$�Υ�G��7�&�/��nH2��н�ֵ�=�E�vD�g�e�kcC�L�>t�b�~�ن�vd�gGj��CxB��g:�?���C����OO&���\��9�n�����o�y�G�ɔ�H;FMy�+��&��A�� �=s�����.��Ѿ�J��N��6���ɻ�Ӌ����o�ϱ"�o��b�R(���Gҋ"*�8	��5或ě{�����r�]��@�.��\om�G�t���hSӬ��YO�Ü�;�y�%v\�q%,J�)c�.�glv�~<���A5.LDq�Z�<y�|�{�<j�ھ�<Y�}�g�$a�:��U��_8�-��o#PXW�C:�q>
X�Ș���D�R�*ӊLϣ�H�E�L�,+d��\�x�2���f�cC�W8ME������b��M�j�ݖ�a��ͯ0<�v��>쵏��l�p�V��g���.�5�M�!g�7؎Pv��d���w���g2�mI��|a�B�U��l[�0/7����r��.j�N�I�jXy�j�f<�:-���~_�f
�&��)e���a��@W�\)���Agx�B��!#@��CX��P0�TNVT[��E ��e`Lڽ<����Vv�Ⱦ�#�c�Aw��
@�}�OϷ��݅>��Y����U��]�~�ٻ�wi��ы��p�k'É����+���U'B#K%,��b�|r�W�䨁_��^�H��k�0��VL����`r�kk�m�;o�Q\Nr)�W]K�|�g��=�����Rb�XKK$��YJ����ϗ+e����c0��!|�0{�_���67�7<�Q��i\��L��
���0f�k
<�#+&�3�[��}zݘE=�'��t0bvY��6)f��
�z�p�˾F�K��a�?u&�+̮¯�w�2�Vj� �,ԥ?���r��Un0�h�b��גj��w������
��!v�"�C�gDz�$����nFʀ��5O�9LFt����?^{����w]y�
J��
EΣ�goՐ朗�;������c�4���^�W_X��%���CR��]J��K��+�	SZ��$�9�!/J�3�po
�
�!nic�P�LHZ�Ԗ9�C����;D�ɴL�C��"s8�儞"�i�|���D1�E�'�)�w��f��-Zn���M:n��f��b-��6�m���u���׊=Kh�a>�1�����N���	Bt�܊�d�f�Ο��X��	��"7.e��Pq捝QkGGU
�.(���i��V\,�:���$Lz�q��"��a$-��V���Cw�c��Ck�@� }�%&w��<�ݽ�Ѝp��.�K�Y���oCr�z�5i�Ŭ#ټ�D��]��E��~њ:q�w��|���ul42�ϐ��Uq�ȩ�Ig�X�Mbn����:Ώ+vw����r$
GS��CHm+e&#�%--�<f���G#$��޺@�hYnLZf��8@����tH��K���������g��
� T�0� L-���Ƥ� d���HD(�:�gNs���ҽЫ)�H�2/��Z�q[�9,t�l�(n�m0v2:yˢ�~J$������F47:+��L8)�$"n�E��90	�[��'�=���ܢ$!�S�F����364����xi�K͹^,��oS�~r`�u��dž�H��"ڔ���C ���6�;i������54��E�Q^[Z�|V%�Y]t�D�E�AK�6��~0����}�X��2#��e6|P�;K$�J
sՉ���������R�o%Av8��O�@.@9~�R8��*4�hk����3���<zO�]:��,�\n�$Kϣe�v>_D�e�E�#Ӈ
o���ym�<+5zIL5	�"z2��h�-�1��v�3u<�A�W5H�d�t�(.60\�Dt3z���L��ˆ��NZD�d����ၵ�@���H ���h�=C��E�.���z�?rnP#\��b�8�t��*�YL���S��"-AB��k��y�
�$��L����,�@�ys����'HQ
.�Am�A�:�'�=l�xzl`T�&Sv�Ww�m��� 7�B������`Sg[�m����qQo��ν),/a��(�X7�߱3���B�!�����u��sB�W�T��_����&7V�=h[Q�~}���}o��6�5�;��.���ݥn`��&5l�o�
a��o�/JԿ�
�9�n0��E�״zH-V��D8:I+���g�5����(�J'+B���_@-&eH���Nt��	��Y'�qm��ꄇE�^u�C�\U��DeZ=$�	3�}8�E��ݴ��w��lj_n�ު��:�GQ����je���@���-H�S�j��M�$D!�
�Zz%���,�5j|Y���봄ZΔqt_dZ�� e��K��|��O;��^���}�h��j2���>w,�C�L�Ų��>��$2�&Z�u��˹t��j�꺄���̭����6t`�n�J�	uO�撑kҜD��6�;Mc���7��_}`�z��of� �U�2�����;�,��j��@�RZ�><�FQ~@Q�80l�[ú0�yz������	w�$Ae
�Q�O��4ͦ���g��l*�E�n��?$���ʞ b@��wd�<<�:���(h�iZ��p�h=R|�oqr��=G���1��>��:�q����K����G�	���6��-]Y�V8\�&y;��H�
N�&yd0R�O��S�pC,��m��&�9p�+�[��P�m'C��uV݁z���N��L�x��*B�i�&�����g��#Ќ�Q���X�5�Qg��xNr
� !�p�o�H�y�e΂��[�o(c/D���Ϛ#�/�1^�Ax��%Y��g�r�Z�`��R�:U��?�a�B❗��$|E�\�z�~�P�T�Ƙ����Tt��-��f��E]>���D=�@��2�[�W
���@�:O�ĬZƦRy�3T�U��k`U���e�.�9��&;��7��Y/�0�սZ*#>�"�d��a �b7c�:
����t�W��b�WV]|�ķ(�����:=��\+�;�K@��qH�K�G{S,������y���ޟG/߽}�����]�������������7W��8Wo\�g�.^�������\����J�o��7ί���iݑ�V�4N�!$F�a�wU+�.<,��z��a}����j�^ğ5`����7�'��\YQ+u/_�{u6���7ы�x��
��'�R���1O���O�;�CK���ᬛfX_c�)1����6&9���6�J'��̑��v�;�e��	�$��D�9fL�n1��0�ȳ٢+�s�k����
���T]�pCP�ɛ���Z�W��7����*�&��

���F�'�N���O�]�U�Z���'go�B2IV0"
M(�V�QF�){�[�T"�D���H����Y�b�91�7��1Oӡ:mH��s�i��ޜ���st�R6^�s	����~����hp?+�|���)��#2[��<�`��[��|�I�;"v_�����߷�b�v'"�2î?eM8�(�&���	>$� ���8=�vis<�Hq�܏�:����w���!+�sQC{�^w1j#u���Y�r�pgY4<fEU���^�R���̵�Ҧ�`�c�R�K>��i��H�w��W;�����ѭr0l;!��'�fQ���V
&�zw[��O+�[�vz�b.t��4�N8����rX�n$.���G����!��g�-�cδU����3��ln���n�C���y쀹�d"�h�K��i΋A���q|��1Q�9�$E�n�MD�M��`�=��Hj޴�y,[��[���=<?��Yl�k��.�D���W�K��I����P�^�9�A&i���H~&Ұ.Ss������-ɰť�"J�R1A�7��w\[�_<�|�wZ�L�ܻQ��Ç�J�8��|�.tB����l֨~���o1[�$��fK*����W��#c����7#ef�d��Ku�#8P
�?�ֱB�"�x�Ma@��Pg�6i�,����Ӂ���-��$�V5#\���`�!@G��(k�]sN��It��8�*�n���v$�k| ���B���U]�z��hU�8�
���(����N>G���Н��f����﮺�Ŀ�j��:��PuO����W��BM?��
���l=9,ݿ��;ˮ(9,?�5��p����f:\i�b���M%��ϣ���]��,�F�֣�4nwϔ9���ː=�
�{��KH�`�T'�u����Q�:S�H��#L�4H��b�r'h�������&u	��x�y#��,�6� ��GsU�"o��B�cvj�TT��#� ��
���n�J���&�6�{��&R��~���ޟ_]�Z(���B�;��?X�I�]��%��a2l�Y|�ņ��6k��oV:�
g��f�!��PhO`�\�7u��ѢpqP��M�<@ي�h|6T�V����i�7��:�X����A
'����N�)�u$�>��M�z3�&7@�MJI]|y��n6�n�J$�B�lkQOuJ��WC�ؠg�sQy׆�2!��
��tB�E�=��	��@���b�#pL6Y00V��ܡ=���aR��w�w�w��]w�"/-o�u6�N��Q~��@�j��`-v���;y~��13ÿ~nP
�
�џ�y��j�>|P�ag��Zl��!I�[�_Kue�`����s�%~}n
��.Vã��pu�4�s:�r��HJ��&�%�ʸG <
��Y��$>~x�֤�Vr�q�����'=L��������B�w����<u*s�Z�|��Ks�>�|���o�r^�O_6z ���/��R���r�c]�@���ȋ���C�ibqP7jg����jUT��~�U.�$�%Uw��"�G�{v���,CK�s�*`uD�f��)n8����l�E9��~bip���'u�z�]��ŗ�*,5۪��l@�:��R�����iZ����@�hB"�d��W+u�y��\�$�N����8DkR��COT���B��T����gޭ�`b�K��3J�t����t�d��q��L��L�94v}��%Q��>��6����6v|p<Ф���.ø;����G��[�}�o�������g��������$̇���}K{��4IM��i��഍(����=[����:��]���+���U��HL�;n��h|������
�m�0�
ݟ4�v0	�>i>z8���8�����f�'����v~����n�o{]�"��x~��σ��'����\��=���.���]����㽽I�ΠAy�ľ]k|XxB��-Z�PKp��Tz���_��,litespeed-cache-es_ES.moUT	�\b�\bux�����}|TU�&`����I
���R�B���fw�,�솽�$QT�.
�A�X� ��һ�(U�	v���f�?���$��}�=~�e���̙33gΜ�WU�G+;�	6��p8����E��{�G���M_!ؘ��~�����`e��q1��V%x)�[	^K��m}(���r5\��R�W�G���X��rO�[� u�Q���klB�1�|���-?Rx� ��������8�5	~J�n���D�v��ю�~��)�U$x��o$�&�+	�&H(t�$x�?��Ņ(M!��D�6�F�#؉`��L&���%�|�ԓ@?`<�� 8=��'	f�:�v&؂���?я�"� ��_%؈�����L!�\/Կ��%�i�8�Z�q�r8:L �N���yA��`���=���</��;�lG�*�a�/
O�	^OpL�>'���C�����m�;#�o�N��#�_A�F�6�+"��#���"����u]oZ����B��\��Q��%D��)��_:j_�z�4�{	���J��1%������6
�Qx��8U:����R�a�R�a)�ЦxL�tO)ꍔ����&�b)�uz)�3_��������R��7��_�'��	&�Bp��'��^�<	�I�'1}�=�{|����|�6�~��C�����q���M��W>E}!X�)���B���~
�?L�-��֧��$X��%Oc*L%X�`���?�`[��>��g	&���8��3�G�����[�������3��*}��{�b\9}�?_�sH_�ߡ���_�b~/~�x)��,�DֳX���b�f?�y^�,�o��hwdz�����]���ی`"A�s�/=����9����97s�~�����]�P��~���Яj�_�?�Ž�1޶��OO��?���������^��?��I����;m�}��5\��ߗ�k	6%���O��;��u�6����,��N$،�9�s� �� �[�?<t�� ���A�ۃ��-���?	6g����&
F�Y���5�1�탁�c�u=�z�{0�q����!��C0���`�������!h����p����o��ɦ!��!��J�?՞G�z�ӞG�=�]<�<�9�y����_�yy��`(��ǡh�������χb��!������6�9����E�����W0�{�w���4���0�_E��3�#�1�!�Q�t�_<�i8��p�o
/~	��N�5��%�G�K�۾�>�%��j���P���
# _��@�f#@I��9�#0�G/o�D?��^?Rx�(�C�Q�o�Q�'�(�#<
���v^!�0��Q������Ѫ����>�~��Ep$�oc?nʽ:�=�Wh��1�c0?�A����n�~ޢ�FcAMǂ�_<�Ǣ�����)_WX8��8t=m�}w�a���8���0�7�~��_�а<�㱾><1������	��'�G��t�2���Q�o/C$MD�&OD�s'b>�i�v
���'�ϛ�q9'�wO¼�L�{NB��$���$�ϩ�@+&�[&a=���v2�o2Y�
w�|OF;�O�xgM�?��[�wv2��)�s�)G�)��v
��Ya���_��)��eS��ԩ�7o*�OL�<�����3�]:�X?�o�T��˩�#�N�j6
�-�A�k7
r6u��4��3���Λ�u�x:��v:����X����#��;^?�>���;3?���ӫ��Y�L�����P�M��Y�^%�8�-��y^� �_x�
�{�x��x�����ނ|���p�-���[��fb<�f"�b&��L��L�u�L�Ө��g�j�C3Q�o3��.�E��of_�Y��~�0_5��,��E�W�P�����F=5g�����Og�n�*|i6�q�l�7j��ِ�}��~�ix���9��cs@�?\��$�x?<�8p"�����a�e�G���1>�|��g>�6x>�3V�͞��]��������Y�������/�_V^���-D;5��5|�B�6Q�ͅ������N,��6ک�6�M|[��ۘ��oc>|o���oc>�m��o�-Y~��pL�u��q���wP��w0_�-��v�"�s�"�!
wS���U�E���"��E���.�|�f������[���z�w1���b�a�bգ�^���-]�Z�uq��؟�xr;�.��{������%Xw�%؟�Y���D��R�g�R�!���x�|m�RȹMKA�?.E=U����ˠ�=���Z�q�[�z�/�<mX��'x���aܧ^�>�Q�}����}�3�}��^�}�>��A?��c^�.���A�%������堋>��zR��nX9T�`<��
�o�
���
�����?e�}}�ʁ��~����VOi��W�Vb���[�����z��]�y|K㗮���g���>@z��y}~��>��g����?�^�!گ�!���C�O�A����!��2��:p�>�]��
�J5����P�7�0���{���?�VC�WV�ޠp�j�ۻ��oVc�w��4]����A9c
���5����@��q
�eݵ�����7f-Ʒq-�zG�u�w�:�I�‚uh/��Y�|n�2~�Y��A>\���|��z���cܳף���_U6Pߙ�l�����ހ�Ol��_����F�{�׌��^6��M��7c#�F��E��;�ś�26a^�l�<��	�ܹ	��&��_6a^�n�ߴ��w�fݯ+l��v�>��f��I�!ߗl�xwoF�_nF����~�ڂ�ߺ���G�-�OK��~�۝`&��-�[k�`��o޻oE�&m�z���6n�~�|��6�#�`�6�^߆�o���Ώ _$؏��G���v�g?�\�N�E�s߃�_[�_;�c�{�c_oݞ���{�x�����;��������O�ϿUx�N��]�w®1q'���N���N�㷝���?�T��j�)қ
zk�)�ǧW�O�^��|���0?�>ü�|�q
��������j�ghw�g��{>�<Wۅ�k�B��w���v��5��.����W�]���9Z��]XOv��<_���o7����ϸ���X�;w�/W݃�Z�=�/��`��`��	A�۽�o`/ҟދ�݋y�W���o�^���X��b��C����Rg�0�����W��o,����>�Sc?�Oݏq>��ܯ�'�џ����4~�~�����/Z�ρ���O��c�&k��s�SJ�I֓>]_z�����:�,>����M@G�__��~>�~U��r�X�]�}��[�����΁/P�� ��p�i���A�+� ���A��ɃXOo������C�s�C��a��!Գ����NB��~�9�tvX��a��k���E�A/�5}�a��a�~?�~�y�y�nGt��\p��#�ǖA����(�K�Q�S�;�~�M�+�/_���|	>��K��c��cyw�{���c��/�����0�DZ޺��"��x~���0���B}��B=��
���+��+�&����5�{|
;y�oп�o '��z���`~6~����n�-�Qm��<��V�R�b}��-����07��O����z�wX���P~�w���߁/��U��~�}xW�=��|ys���d�>2�������'��N`^&��>�/�zG�!�~�]��!�k�U?!_󟀷�?A���	��O�k'~����$�'�y�$�f�SЯZ�º����s
t��)������?5��Ӡߚ�1���[�ƺiwt��i�o�i��U�Q���X����3�V
�F���g�s��ho��ߦ�A���}h�_���s���6��/$����/��|����'x?�;��K������G�{�g@?���{�A����?��=�ٟ�'F�	�=�'�T�/��_��̿����p,��ƪ�!�.<��7;���Y��X�W:��"��ڃ �;� �ך~eқ��a���2�8E���'�4A���xԳ� ���r��T��u8� ��)��ϫ� x�d���H�N����QO��P���.�<���8�-2��I���'��+_�$A��4������w�|�q���"x/m��:y1��8��
	2��dy�A^O�^�zn��I���d:\~)����u�a<.�,w���C���o����<��y����
ԗC����+0_{�@��\'�L��}id�T�h��*��`����WA�ծ���ؓ ��`�c���s��1Φ��	_p]�v�d>�1A�Cu�E�0A^gS	��Z�'��8Y�d�{%A���@o	y�w�t�K��j1A�2��d90�:Կ���o�_���׃~�_����}��y�6�8�P��UE{��~6� ������d������d��A�Kuo�=�A"YG�QO�j�7GaQ5�i��w��L��qϨ�{� �y�X=N�������ȿ�:�W��}�&��M��	��܄��A����7lj�ʽ�ZG���	���'�/���-ho�-Xwso�:����3N�]?'�gA��>u��d�Z��_��Ӱ��������C
�k�2�l��⚘�gjb��k�߼I������w�&��Zq���z]]�n���k���ja��ފ�uo��d��J��V���Y~\W;�1��A��W�=F����:���u�gN�s�Vu���u��[u��u�wdys^=�O�z�[�z���	���U�E�8�K������/�
�6�6�����a~nj�y�4@�Fd��X���D����%��|��Wo�~�k�~�7~�7�|,l�yX��m�q<��IK�u���9��ߞ�������cKA��|�FX�	��?�m��=H��ҡ�P����^#(~)�0�o':�u��v����g�h1A֣܁znn�|u��F�1�{��6�AO����c��r�h�Y
5�8V6�l!�4���<��
�`��&XO}�`�&6����N��wB>���N�߻�B���:�v�ܱ��/���l�4N���M�?��7� �5�4������裂�jwc��ߍ��{7��C_Bp"���1�7݃�{P�{0���z�t��o��y=�>�����/d=��_�Y���3��^�}��i�A���|m+A�#�p���k:�9�}�9�����c���8�~���?ķ��[@�o��t�O������x�5�A�WɃ������xr���-��|-A7Z��^o����%�aK���-!o���<tmz�
�5��؇[a��	����V��Z�9HUtl#���=7K�zz,	�p'����@�$���$��II�oh��I߁$�d�U�(��p�d��ɘ�6����d��ɠ���1o�&�N7&��H�\��Vm�q�i>�B���k�+i~4�-�bj[��q��?o��;���?ہ_ޙ���yx)t�:xؒ:�Ep&��)hwJ{�o^{���h��C�K��&?����+:@��z���z���ݖ��w���-t�X*�
ME��R��T���i�g�!~����A��]��A���џ~��ҡ�|�z?/�r{���Uo��qʟ����z���A��M�����~�t�[G�3A�f�^�21��L�S����	��&���y����Yȿ,��C0���,�[�*����Fd#��l��!�8��y9��uR����T���N��T��z�w�>�N�חu�z)����v�v�k[g��.���.��a]@��`������]@Gq]��S�+�®H��+�9��+�Øό�Q�a�Nj�S��{���[��k�w��w~��x7��X7��l7��叨��C�G���<�|����G��W4<��k�#��v=|�����G�wG�ͻc�:u�|z�;�enw�s���zoy��~��x��(�����	��ȢGѿ���� o�}�'���	�c��z��8�{��z�8��q�k��ط�A�'���*�O�9��?���z7�1Í~�q+��n7�{7��A���n�A�T��`�K<�*M��A���c��`��{1�O{�ϗ��/����u^��N��"G���y�_�<�/̃����%�_���J��%�c~���^��^&�v��	����o���A��C}g|��W��sl`��z�ĸ��KO����ޭ���׶t�^�����4���c
Џ}��`���}�C?��W~��Յ�Q_Z!�+��{��M/�>5�x<���5�����D���:?�^U+��+��Ap.��R�/�`���3�%�v�
���[C�S����x��>��N�0ν!Е�@����ej��}�<�2t�j�n����0�A��.y�5�.�/�!w�����0�C��A}wE�����GQ�A}�#�g"�gnc>��ި��b�뻋A��G���W�y��5
�+�~oM1�J	�S��]���K0�J��R9�g	�i)��Y
:�-�cz)��
O�Nyϓؗ&���������1}@�?>'�R۞l�4�}tt�i���L���^���9�s���}���<9��9赵�a�z�������x^�tq���e�1�f�1��A���!�1���~�?�t��3c��4~���I
_9��‡�����F
�=o�@�󙁠�����:j6�.s�q� ��� ����8�3�c}-���:80��G��p{O�<�~�{|�'��?w�P�g�P�wh(�����_@�7�|6z���@g+|��}�^P=��[�Q����ѿ�/�'4|�0��a���0�Q�aX7�����?9�^:t�:����t
~����ᘏy�A�+�c��p����@�%�~Ѯ���^�rsG+F`�<�����[G"�ޑ���=F�{��2�\0�H�;������Q�o�(�/g�?c��Q�ӿG��n�~�
�u
���h��h�y�h�o�h�K�1���A;��@�<3��z,��ıh�;
W�&g�2y�3�q�����\�<^���/�x�������G�u|��}�	�����D0��_&�>?x�z���e�G���՛���.7O>NLT��$�7m'o#&!}�$��ۓP�I��C�{��ɐ_�'c^�'���L����t���~2ƿi2���o��[o
�)��VS��s
�yf
���)�ǛS��M�:9��T��p�����T�;�S�wS1�����S��'N�z<6U�?�^m�M�4�3{����ްt�Uk:�k:�[�t����N��y�>�������+�S^~�Y�
�߾:�9xu���_�?�y�z�=7��uy�גW1��_>.y
tR� ���9�5���a��5��k���0�^�>_�u�U�u�G�_�:��
�Y�X�ހ���
��	=�뛠���o��v\ob\�ob��xS�k�|�t՛�^���-��ɷ���o�G��z�|&�c{�/���	�\<K����f�n�~g���fa}욅u��,ȅ�gc��6���l���g��^�1o�fc�W��n��$}�=d�]9t��ȧ�s0�3s����E|۹�/sя�s������E��1x93�k<�h=����*�:�,�����<��q��<���<�#\8?�1���|��_�C_k�t�������X=d���e��k���̅X�,��{;�1����x�6��{'N��X�}e/�q�"��3�AO�,�<�]������b�k�wat�=�w��ۻ��]'�i�/��ݰ�a�R�����K�/�����e���e��e��_/>~[<^���{H�=�W������|�n�>��+�c�6�����}�w�}������|��r����q���r�g�r�_��m�r���A�k��V�	+��l�K^�y�Y�z�+��3+T<ڸ��XWw��<NY�u2c%�㺕�ǧV�Z|~����@G�}>�@����~�!���w�*��Z�0��Uh?�y�U�
���U��_���_���1ޜ��ӫ1�a�a__��oX|%)�x-U8a
���5�ב5j]��޽�R5���Zz���n-��Z��u�����1���uX�
׃�2�c���\���س�yr=��z��K6������%��e����eڿh#�Wg��y�򗍘���ߗ7��.؈y߽Q��F�C�M��n�0�W7_k6�?l�~�͐�#7K6�o�~\{�o����-�-�[P��-��-�[��y+�v�V��I[��6oE�;��NmVچ�d�|?}�T�۠O^���AO��?�s�~�c�˃CN���н�����nW������]v����|�܁�ʟ`�����O��N��S��U��Nإ.�|�ݧ89�)���e�g����a����G�]������t��v�v#�l��5��n���n�Wk����uۃ����Ô=��=��:{�7�ދ�O)A�w�m/�}d�C��A�I؏}��q�qx?�>G���C��t�������`��}z�����/ ��z�����=��ʛA'�:�z�:����[�yt3�0�#X������=�ޞ9�u:��G��EG������(���'��|�<
�m�Q�돂��9�gGA/�D��/Q��_�~�|	;H�c���c�G�0���C�=��+�CO��+��W�/��
��q_CN$�y�
�+����߂߹��sgy���-�c����~�{���?@�x~]��0/'5��	�3)�y'`�y�G�ן~ļ6�	z��'��?����O=	�(=	�8�򷓨�S�����:��Ϟ]�:
���i�O���N��&�<����~�>s�/8|����/�3-���+�5�W��/~�~�7�5K�\��;��w�=�;���H���T�?0�#��|����<U9�v��@�v�|L�'� ��Ƴ��Vg�����.�����ů� ���u�A^������:?�o���y�JP����u��+ŋ�ч ��	2{T��yW�|K��P���e}�A^S	`�L�������;�}�x��'2�� �����Y~���(^�U���"/�\���!�[O��s�%�2�}2�!(�b\/�\�K�ϻ2��� ��;\�~w&x��/c	�<,%�zʞK1�S>C��ҵ����N�
Z'�/C?�<^���ˁ�����#�~qWċ|�� �gͿ2^�ƅU��[��?
��L��Ez��'A���̧6W]|Dp ��w���]/rc��(7�j��"�r��(�� �y�-A�w\��tF���ע�&YOL���铮~>���%(v���|\�y^A���m���y��z��q��_���x��^��	2?_}��
��UU�e���
<>Ut{Ӎ�� �̇&܈y_K��a������ܻ�J�����WC�OW~�W�$d�yfu��R��_VW�<�<�H����7�\����&Љ� �{F�{�7c��!�dA�sy7��
gh�2�,���#~��"?���[	���C�x�'�(߱F��_�_�<@���j���U�=V�O�?���ݴ�W�1��kU-� �s�E����Ƌ�^�6�cA����e��L���� ˻{�b~��E�eu���/�,����z(�� ˕������ѿ���� �{��?��6�׍�a>Sn=̿
�}�m��V
�
��z:K����
���.h�r�6^V7��N��W�5�I��	�#�@OY��k�}E��GۈH.��9Ɍ	��w� x����W�M��*#���]��e?l��0�a�{��z�� ېv�w��s��{'I>c��}|�,��R}�|�2�l"�`�J��.������My��{!�ٶz��8b��g3�����Tv���f|[�%���J<����7�H���{`<����=��@�oJߥeS)������JE�G�wL�^�um����7��P	�/��ֆ��S�:�kli��ཫx���'�W��.��
GO�`�8b׎��+��<�)�`e܋��eh��x]�?��H�vl6�������X��Σ�a�s1�mO�DNJ���c��w̦�K����E��רR�ޡp���Mӳ^����&��J�)�>�r|���n�+��3Z�m�w�Fc~M���Ol}"V��R9{@�<�&6��u6R�e�w#}�D�y���-��'��)m��)܄��� Ⱥ��x��;�c��!�pG���E�������A��"H�B�;�}-��k���z�ˤ�����gLe
�ݨcz��iJ��(>��8�O���_��=~3��W�D�^�x��_&i]�U�H�Ǽ�=
_�k��I�8�OqO����r+����;Q���o�-���[����~K)�K���?u.Z|T��2��!��8U)��2i�ڥ_D���H�b�y����x� �cǸJ��h��i�a���a�2�9K���w9�+Q=�	��6.��m(\��'�8�
 M�S�K�p]��Juԡ��-�}��D�>�5L�¼��64פ��'��^�����
�P���;��t��	��ik�).^�#��]�ŗ��U���β.���k\U���8�P����kA��)��m���}����{0}OԴ/Y>R�K6~[/������\m�;���7���5����6�/��ɺ0����ݠ��T"����ߝ�ֳ�����H^Q|�22.���o��O�/�zW��\��v�ߏ�M�zS=��p���v��8����N�C��
m��}��8}Ϡ�
(���uq��o��H߫(-��7(<@p�.��蘗q;T�[���R���YN���=�ꫬm�#x\󷳍u8ŕ��ޕp�{[��/+�n���J�����i�~��� �+��Tד�{������~��U�\F���w5��+�E*���0��~H��:�t\xmP���29����F96Q��f0-�w��OQ�"�;��B���=�&��~P�j�'x��{���{���b�G�=(<AۮB�'�>N���<
y�|�a�_k͓�{�ۼ�X	w��j\�J��xT˗\M���2�0HV��� ��{��2k;���я�2�g�<��Iy��Z����~�(�mw5�y�����S��
��ޓ���_'(�ͲC˔h}[)�Q�Q�O��������!ſ��@qa�5x��o���Ai.��O���_%�~��(n��ά�{�0����W�~���!�!8��\�j��5�F*f��x6e}���/xި\W���b���@<�?���+/�x��uJ��tFy
u�vQ��.���Q|��,�u�;5���iݹ_d��і�1��v�����8��\w��P��uB�?�_0�uP��l�,(�u��5���{!�{������$~��o�]���8���Ŷ�Jl�ÿ�\N�������'��f�g��x#m��[L�v��O��K�$*S�q�}]�v=�U,�X7�ѡ��hk�{�ʵ��}�l��{-S��Z��iK�Bi?��Gq{�>�u�&V�˴��2:����T�r�5�}�mg�B}y�‹x���Tx���)�YC���XM�n���qQ|_
��������{�1��¦��Nj[��p����-�r�(��|��W�[#u�9qxc9B�j����1��������.|�}W	�{��!�y���h�G�����M�E���o>��Tv+����{���2şб-t�]�yf�����;�|��d��~�i��–��w�U�2���0ͱ�A�
�g�>�ޝu7�U
��3�!��h\K�� �Y�u?�����J�5�dj>~[q3�I�nf]��C5�n��(�S�?�|�����0M���NR��lm�c�E����g;�?&��|G��M���7�f�l���>���i�z���M�uu5#�!�,�[���l�����V����T���(�{�׼���[O3bD�!8�ַ�y?G�D�]X����]ږ�y3�*��E��>��<a:%���ΗYdݚ�Y4�幓�؆���{ō�t�1��7��D��Y2/��f;
�Qw��_N��Yߥ��}�r[����î�G��}��8B��e��lۡ8>��A�w�M�m�ρ����x$D���z<�3b�f��(<���y�R�ɧ�\�#�+���*�;��]��m ��xO�׉��i�s1ߥt~C���/Sz[�ule�)<��V��_�J���Jx;e1�Sm�m�?8����lﰍ�>^�^ź�m�.��>T�:�G�϶"�� ��!�O�5.Hp
���o7�]���a�ͼ�꽙�d:�_;�W�c�L�k�LK�����I�ٶG����߰�̺��~���7x�7�����p&��gv���=۲ʤ��h�a��v�+�M9C�����N�:�S�h��ޏ�^�q���F�E�1��+(m��vC�C2���om{���Bi�i���޶�0心e;�U�;IeJ�۩�XvQ�k����[�	qx�L��g*�E�8�nd�_:�*㭗&���Û[�2�b{c��O�.��SʷT�X�0�2��]R	�l��~%�=W	��ʛ��9�_��Ө��g�m�|��g�4�]�i�����\�*���6B�V����+���hn ��C�lgb�Ѵ)�/9o��u��`-W���y��~���<oT'��S��P����L����x����c�����
��)ڟ�(~4�?��{���ڸ�qB�n��/�(�&��}y<����:=��Q�ζ�j�����\���k�)����7�$�-��Pڷ��x�� �_�6i�1���Wd϶

w��U��gg����}��N�7�dO�p_e�y
�i��w�Dg��`4�_��8�O�j��|�����ls�1ŧ)>�+�r�x��9������8��)v6޻S ��|C���P8�FkSپ�{
�=I���>gm���:��]�|�3L����n�8[z
�V��3)+ř�����p�nL��^��憝��W��"��ɣ��ސ��9���gn0D���Uw�R�B�3?	���j7�F�$��}Τ��7��s����Ԇ����{cb�C���
F����W���Z�����ހ��It�	�E���:s��|��;Ds<N�������P$�4®P��
;
_��Ox�
�F������3t�x��pQ��aW��YD�y=ހ��Y/t�޾@�Q�����p!}$�]n��0��p������EV��(Hmv#���Z8�8͔�Bu���.�9��䇼�����)Ԣ��[��&4eo���RMZ�НR�.�B�����#��
�l)�Œ�b.��h�Ӣ�������^O��rZ8i*}aoa=]��F4��E���2�N���(�-�� �ܠ�,&9�A��/@���8!����Q�E-d����6�B��C�RL��(;vJi��#g0�h����>�t"̈�H�-i�d�h�%^wDf1�pv	�<!�"�{B���tvv����M��M("��:ݼ�8K��])�\^�1r���/u��a�": �z�)�eF��%Q���ZF��K�J݌��!WoM��^[0��:3���\������2Z��:Zz<�T�ap�,�dHL��u�4g��V�M#�y����#~�0�[1��0GHE�R��|�V����҆�.Z_�,<���gz�_j�8�����pfy�a^����W���s2��~i\�ao��l3-M;ӁP3$�uʘ���Eے��3 ���rK��<�ȕV��L
X�<E��ˋ
12��%���-�
���y�ͤ?�x��=ͩ�/�j��쐋X�76$�Ԕ������'����"~-T�_4bdDT�3#h�
g����d	��`1q}�X���Y/HK��F�k���"j-t���0�6pzbɡ`!�r愨b6\!��R��c���D�,7a�E��'���
�fʝ�
�`t��a_����&�c>�p��`��4��!�*���Jy9G��-�7�,&��CA��� J�C��\S{Q		�~�Rj/ē[��1"7��SZ�2�X�G�>e@6�dD���A�&:��|��V�{�)�"a�$V/���饖�J-%�����4ɔH�dXb$D�T��M1�&�\�•�*(D��J���_&7��)7�*$����!?�i�[��?h��@Qsɚ��2���� ��ӂ��s��7,%e?RȜj]!V"�	�S�\!�½�:ۄ\��p�;��EkR$� �|f���d*��!��7�$2y2I`�R2��5�{��p����l����HD#u�����>3�0
s\L���%���H�G9�/�j�T�"~_&�`���&-���\o2��qM��j�tGH%���* ��[��=ɹ,~eava��p~ٞ���I���Q����*CLN�p}kL��2bv�G�"�f�`� �rT�[��3h`�V��Ke�E3�-�p��dPk0�
RHg�X���**3X��=$Q[�R��"�H��Ԓ`�y2�,-�,Q���)���0"�#iR �2HSa��4��0�
��ل.GTӰ�����Fe�[Lq�V,\d�¤"����H7���0�����VoP}Sz����&���
E՜�h��1U<�wğD��T��,�R��vCu
S�&:�#��5ʵ��F�,���
yJ����������.U�/�	CS8�ȭB���:[bNi�{���.�ּ���"3�7J���d�B��j+��\_^$ʾ�
'�ޠ��&�c�=ؚwx$���u���I��Ыmc��
�"�#��m���$�P3�J�0?�b\,��
��يO˅VHQ�%�!(i$��Vh�B��)
n����&�'�93笡���?ھ<�>-~Y$e*�
u�2C"}�%�BZ�	4��p�C���[v�!�z<Y)�g��$�SI��-��h�YY��g)���Z4,3D�zTE��!�V�D��C0/��a�F'#Z�b)&�����
���!�@F�����i\fRV���^�PiU����P���\��)$�c-�B���hG��fN�w���;z�6��������ԗTO�7���L�^�.Riy��V�:#�O�e��l�r���(pf��mKL7e,Qq<L�f�Xb7F{�p��36[j&+)љD��lh���=��l/<o,S�}�a㠺�w�b_*�����������fVki"��-���C�̽��%K$������X�Eu(,��)�n�LsA��s(��9��(D\�w/�ߓ��e��fDr8��-:���S^����"�][;ԓ���CaT!
5���j-Ơ�3�U�1�����!�8ې
�	�3j%�@����֖����V-{m�Hh`����αm1}�@�Pl��'��Ԃ���N�IE�Q�j��y����+��[R$6�s��\z��Ģ��,�T�~g�X��zF���Gf}��m39�t��8W��c�28�(/�r��Ͷ�R�ȞnY�*H�}G��
RE�����}i<l
�����
�\!��_�N��m
'؞��і�i0[��WHp6�����H��/��dM�'�y#_��G��҅5��S6�8CQ*�%:�| �aT���4m�
��b�0H�r��Wt#��s��^$`��o/�� ��>m��b�NH
�>77ў�zP4�{L� kXA��UD<��؜���p�J�E;B�>X�9���V6�����bB'r��^���X3ܼ�CV�p�!6?�.����
�S�6]t��E��J1����i0@;�0�v�v
X��P��e�R5:�e��湘��'��Ua���l�|j5��
0M��3;��:D���>5��A=b�Ja"#!��@ ئ�����rS{���k~g����`��台dF��C�X+\�.U��� �ּCŭ	a[2ma��)ךm������UTA�j)����Y�����$��������7r)�be�q����Ӭ�O�Z��h.g��k:�H(D�)��~�ś���5n��.�	��x���ЈI��J�׬I	���WO,��1v �d��L��*�|��-�
��<a=Dan�ǦNt�$V.<1<�J&Z�Vfk�@
+�+M�h��dj%��qdaJ��L1M���Wm#�N�;n��i�R�
'��TT�<;u��$��PƬ��O_��h�ҦTWQe83�b�j���ՅS>K4��}Н�S[BĈ5��Ǭ�\������Y�QT��v�ca���M��n1��s3k��)7CM�1�����ct�a�
i^9AW��`͞
�և�aӊʊ�v%�-���@�H:壶Q�ű�h�͉�N���o҇��;e�D�Ѩ��%�,:�yٲ�Ί&���+�]vv��C�3���H��ɧ|�;"d+>#$��6c���M_�1%�#x��
���)�e3���&/(+��*I]fro�:�ey�;���oq�"�(���3�p�F�"����4��/��!U�U�O�.L�����;��Ԓ`1���6�z��6M�������Iar���S�?��
�r�K�v٩�^�
�o��E������Zgf�"�[��ce,�b���h۔?FCjJ|>�$)I�;?Xl�7OK��P��h��T����e�2�����	�i/�Z����í��	�^�J�[.²��2�3��[�z���xB4�~bk-�W[�V%k4\
�	��$�ILVdԮ�SŇ��<�Z�Ur��.�UqY��e�{+�|�	�3����<@��#Vg���IO��V
'[�}�4�\C�H0�J��8�M
��<F�@AZW4G������+��|@��`%E�">�}[�XQ!P��$�eӉZ��X��^����c���C�-�ʎ),�攩�fxI'�/�ڋ.�re��j�ߪg0��RD�����\Tt���Y���s��R#-��W!�e�҃�I7
+/mm�����Ld[x����n�b�2���5d��f"�S6�OZ�J��
�]$t���8b�>�NB�B�“��]�QΙjQN.1-�����7�\�:��{�6!�]mFf�R-8��3G��CO�tǚ��IY)�#��Fϟ��N+|�*�u�	�pkYI�Ҁ���Y>�7W��и���Ezea��y^�<P��G`d���*H	�VZQ���^��@���T	�~���}'��jN09r����EA�+�><*�3ueQ�^E�_�`ň��/EQ9h-�2��a��>�8K�r$��͇(I�s�븸\��I�� L��	�Yۧ�mg�у�.�.�$ѓ����a�E�""�$�z�Ă(˭ő��8�$�I#M.�܅h�$��4Br�T�D\��-�)�<��{���,�"a�G#�"���|n�E;�⃖#�Q�F2��G�y�KS�����IL�[�%��H������,�ѢDŽ��.��fV϶�6#��p�i���C��Y`pu1g��`��t5.�5�Å�ĉ��uk�.�N��%��T����aIb��nS{y��<&I��kfް��3т��;�r�fo�E��JN�Ѩ	�|�M�ff@qOr��	mr�|��D9���HR���ӏ�HW-�L�N� �z�"�:@����)my�Qc\Y[�?岉ShK��0���
�(L�5x�W2�lb(a�΋�<�‹��V_�O���n���)J,�fXq
gV��D1��!�l���1��
;�XDlK��u�^���E��%*�Q�q:|*��G���:'����T���f:�%��X��zb%ڊ�ڰ���d��x�^4'���3�L7=�1%ݧ�w@������E&�X����%�TS̸����Jl�?��_�M�m�6oG�g��yse�2}��`H]���lr��X�d�3
�(q~E�ٰ��LQ�ѐ*��'�&޹���ġ��'d+TV�T��a��t^霨�����ɠBM���%���U�p�;b��E�{Wq��;�)��B�Жɉ�>8�&�P�W�ܞ�q�i�sH)�����_H�Y��^		��~X�a	X1�Q�1�.�6̍��Ke"q!W�;S��Qs��0��Tr��*��dZ�,���|ۦ�#"��b��=>=6��d�h��
���nz$���V�9t{#ք�z�!�-
+8�T˾����m�sdJ@�2�iK�
��L�(�G���Ǭ�Ű�ٷ�0i��.v���	Ƽ����-��^�=�l�t��L~�*wDo�J#��xf����y�m��c��{K�M���\q0�m"U�Q�<�Z���nݮ��4sLg��u�<�"ıK�8�Z�M1��O��@5���0�D?�to���g٢��I[t�%��r�`K�1r���I�`o�G�I�<şߢ���./3��C�PF�R�tz>��m� b�^��
�e�o岷Kv�,��4�%�ZU4%F��f�����fgk#H�*N��B@	��&���6n��c��n��/�v����vS�`�t�WffY1f�XU��n�L�E�28X�HJ��83BAB~!mq\�usJ��gGB�Yĝ�}&�ް�r[���d�i��a8i�Y�p5˥�a��,6n9B����"K��#u���
=>b�ݡ�c�E��!R:������~��
E�x�x�)�1F��\xɒ��-�GY
Ν���P=9�d�.kO�3eI�|�P�h�F���e)�RR$��,�/�(������-��i�.�I�F������NŴ��w��ƺ��!vO�qAm(�K�����{��8H3����|X=\�\5�}-Y��AAZ"X�<l;:W�'�Rb�ji�`�T�$��i�� ��7�+��ٔYw���C��t�B���*B�d�Q�:Ky��̶�Ղ���}�9.n�3��Y��y/�aj�)��9%W��jo����碆�t�'���:	�Z
��lU��W���N!���{f�t4��ƬI�+u��`����ְ�T&���.��7��Nُ�C��
e�@���»2`�IOL	S�*a����a�L�g R���Nl���v����}��iM��&����p�BQnBT���A���m�̲����k�)$��c;��1}���$�����E7��"k2�ޢ�1�)3;ٙ��\�19X�z�p�	0?3"�(��o(z	N&@1L�¹��K!;�y�j����C4W<��C_8�Պu��J�>�
y]��l�XXE�H�	�n�%`9oR<^�މƠ!�U����tc�5�@
���VN��|PV��/��lܼ��rvf�\Q�|X8Gk,㱯�9����
�2����i�.v���lަ���]��}Z�v���5�����w���	[t|���T�ɦ؆
Ƅ���"�Hi�w����O���W)�h_�~V�r�8Z:_.�[����o*��k�<
\������%�IͼS^߁ݘ��$��e�Ʀ``ͳ��
���eEi����|Zi6��dp�ib�͌�5��B\�F�!�����h�8'(�X�M�\4�땉
�ȹ�a�����8�*3<�,%�`������/�W��ѓI9��Aj+��S�dԴr
�����S���2g�j�M}�*A@�iVy��Q�<��pQ��h�g
ۈ�3�{�teJ5���D�ZBc�)��F�-��r||�be(.j�x� ����#Go@�1a��}&ꛕ�v�'p!���Ha�v]t�f^�1��l�o�t	�Z�ɠ�Ҭ����S
��3��$�N�������^�j�l�byE�/^�w‰�M��O�'/=�P9�n5lu�ɺ5�~q��V��BEU��Y<%m���<�5p�k�#�a���>���?���Ɠr��F���8�ȩN�S�3��(
�i�cF�.9�E#�\��VX�lv�[3ʘ*�r	D���|Æ	��Dy�&XJ�cu&=�G��V�	eo��m���E8ɒӄ�`1��K��.p����V�p1�FeF\��dX��-z#�T]v�b{��ϑ_��zY�k�D�8v὾#E�������LOk��ay=��G���a�,v1b�اL����F]n:q�aa��F%r�&�u�ݵ]N�3lz�3�sۘ�d0А�i��/J_��
�PR�x�Y��,��݀�޺^��v����]��]pU��C|��.
�x�V0/��//������
6q�ȢHv)�4o�s�,?�
���HI�;	b%	:�V�D�CѽHn�yW�0(D�g��(6���EZ�S*>�(���`��$�H*��r.ijQ�1"'���e��pٙYFm�k�Դ/ZC�sL{�(�r2/wn�;�
F�A���y3
�����/K�h���}m���,�pv�
X���0S��sI�-��|�\���n�nA�4l�N���z��Q��D	�-�'��US�MȆz)��5�"�>t՞1����R�u�S�A�����0l^M4� ��
B�A_�=��DH^�уL}?I�
�a�d	�}��f�A��ߴcB$��(����l�����11B�����9g¿k�J4"�3���E�T~������gzbYo�^�9�|�s0CQ����v��$�]D����dV�[��������$.�Y$�B�L�\��m�����jUԾh�g`��KT��0�Q-����W1����/42�!�
~'�&h�K�E��p�N4L��U�}�v�WЬG%�[����D�A��jG��td�˳� F�D	�@�϶c�hXƓ�l�=�������ѻ�Sb�4`�_6W��ز*0�͒���e)�-�?Vd��˥����`П,)/�Z����Hy\H�P>{)�I�[�2�c��g'5s���.����gm�b��e^}� w�T�NON��Q1GR�B�ŕ��{�ó�:� v��]������0��Q���f�П�
^4���)vU[D�ם�N��mG��Dk�!o.	���i|� k�=�?�2��%�����< ���9�f�鷈�N�yTVxK�I��ªZ[֕���˩���p�!+&*J�zd{�Ê�v��oV+27�y��8��Mr�>��ǫC>슄����9O��H
��k�2��r�v��v�JrvJK��)ə����L�n�������2#�CJ��)�i�bS���R�ǣ������F���_eHu�
�z�ᤨQ�q(�UJ\�M�ۏo���j
Z�N�Q��.R��ǁ��笹����+(��@&�H����!"��e*ՙo��&�O���5��#���o\���=��T`�u�	�j��LmC^q0�s�	�p�����_�/���Si"��"a;q⟬&X��O��lU%8�w��>|"�pGRZ')hf¨�9��=��cp��,*V͘��4.m�m�^�e/Ts;���[��1��m�d
y�GY*�P�ř��Si�lδ����6�7��#-h+��������^I:G��0�O�iA��֭4�m�U�H��b�js�e-�|݄�K��,c�2�G]J�a��>�u�Fv�����ayt��?��E�_$�ܶg+t)�M2�~q��{������z�QnQb��)`����:�I(�>]Z��w�_��
L��^�G��g�Dr5R7��L"Q^�����k���?�tJ�s}�CC��!�
�!�ٹ������"q��6�oo�y��jX}���N�e1yjEm)�KY��/K��_���N�u�ؗ��bLz�Ro�i��L�+P^jDE��������t�k����#�cgX����j_T����r����=��#�p��g��CfXu[�oX̅����]b�R�<?#��]?��%��h�r,&��#�Xɬ���:3b61��t�扶�~��B�,�Md��:"��<��h_��$�d�zw�Y��O:�1�,W���-1�z���o
,�F��;�{��}��ȱ�xh�p'Gޤ�qKI6��E��G<�\�X��8Y�]k�m�<�p[�q.lM�G�xj��c�HޱZ��Az�~���ht��a�o��4� ����b�$�B��/�+�^[X��s+A	_�@e�Z�%s#��W��}([�:��F O�xR�͋��H�U<�B�G��Q�.�gZm���@��NI�>�m}`1�#w������$>i�����8
���-�hH��3:X�X*�c�Xߑ.'BBX9��"�K��^���@���k9-\�Or�5�#�E�:Ltd�|������.�~��uPO��]���lo��ه�f��c7�:2��2�[�1�>d�����8���1��!�8sX^.��
n@!o�K��cgèc��QI��U��j�H(8N�?n����QD��vf&�8�U�[݇i��6­/a:�����ʛ	C����?9T���m��F�^%V'�"�����^~
�Y�ia};��u�<��dž��R��ԈR�|O˼R`n3Xk��.��*?�yu�Yu�_C��-M�^��
�K������2�Yu����bW(�G��d�
�F�*�Nc�!�b�ԃ-��x'I�t�h(�"��'$����lf��Y�w
�rp����z����B"�E�A�Z��e
A�����DgK���k��62���z��9��H�?"`�!ڼtG��'��6r�=+�ǫJ�CE�b�ݪ��.�j7���C+��9�e����7?����*v��%�(�n�Sc�͗�d#��}$7�vSA(ͺ&-K�mjm���(����(��0��|�m^{B)Ez�N	��:䏺d�yV�Ii�i�t�aaY��Ds�LI �H�a�C]f�U��Ȱ�����������-�.��C�9��������$è[�/&����mFV��^f�<��v�q��);���uM͐�v�.�P�Br�,`��a�!/���p�=l��x��3}tJ�ՠ�m!�0�?z��nɑ1��p���?�����|WIn�a������c{~�ºE�����fo����ItWi�g�`i
x�ޮ�۳Y�V��-�P�9��0j�
+�S^�y�|�ڬ��rb��G�8.`3-�cV��G�bC����5˘�h�m��_j��
�"�.�b)�,;~"�|&��q�%9����>�E���<c#����WT��ޖ�V_�q���7@��>����l��Q
�y�_����˫�֘�b��!��%6�RD�N����S~rM��8��E/������f�ia���yhxw�
ڌ/��eTV�`K�=���H٪41Qq&YV��>��x�3�֦e/ɰlHA�夬�+�Kvr���󚏩W�<�e=�S�TT{��ȟ�_+j��&�%�u{˽��O���Ԫ_��"ȴr�r��@��x�g3�e�[A�s���l�������i��%�m[<PkD�.s$k>���B�T떉����/�x���(h���up�;�Ƭ�<
GB~��^,5�o�5�
	ϕoϫa����0Cy�Z�@B��N��z��Q���{�e껥�7`c.k����(�h���<ԄQf��.�C$GE�L�Dg����"l�3��cż'W�IJ!
B�7��·��ԴT���15�	e3g�{�v�Ɍz��A����4m�ٓ�4��Q)��z�orߌ�=fFY��A��"�h�[W��+6�[E��P�o�v��8��Y�o�hЮH�qiAC���H�H˾�?�\<�ˤƾɦ�Q�2�0��gF��f�?�I1J������(�:
�,���Alm-�f7�~��m����
�����w�5A�.���46����I��y��?6o�L��Y���KFX�06ɪV�����L�A��7�b�Q���,b�2���R*l�v�C�j�����xE�0lI���.���zTf��_F���fz
ރ�u���?���Q.���R1U&H�٧���*	C��{hA����S�YS�gJ-/�
ORh��S{�y�B���l��*��ޱN.G;[����:��'��SUF����Uu�b�����<�M>䵼�f~��KŒ�9s/�$f�;�y�O���d:�rB�P).0[fb�%�R&&�\Ifd�[�:�>y�Ɏ��d��+���$�V������#!����/Af��B�F��$�,�)�FR�s��1��_��ߏɴ;�[��|�;S�'Y�e��ڌ�i��dt���^�$V�xO��۟C���N�9�Ǒ��LJų��DZ[3�E�P�7x3��H��ֳ�ǵ���	A�H9���F�Va����I�ZV-GV1g��0��ܘ�]�v�$TS��[�|4�X�|,��jԗ����C�y�AO��!y��4Mh39^~�{S#�)�i��+�������z��v1�0o�K��&�𻛲ଊq��(�e��,�1Rп��,�韀0k�#���X5�Oו�ƿ,�F�,&��M�E.A��K�b)���uG?�ż0b�>���
��
�{��39SVgb�d��d1��Ϣ^D����[����Dq]OyF�b�֖�g*TUv�$m�AQ,������(��6�7e*��#��s��E�o&\!��y��
��˕6)��93=ej#�H$2W��o}����1�
��SP���.���p$��3���T�dž�	��|>��2�1�mH
X�/O|1��a�T�7�;��w�Ir߯�b��!�^BM"bP\����e�a#�ip��_�dP��B�0�e8�N9��Vr�l$*��
f'8��;)g"��\�k~��1:x	ભ��ұZ9�I����_W���������|+��)�E�rih�u)����J�J�KS�$�T9^��bU�Y0U�Q���\o�M�:�i�����;����0�5���Tu�2��ȡ2}��5��C���k������
N���7�f������E�^d�X��>U�T�>�z�
��]YK	�v�gvB*	�2M�t�;%����s�6�D�`�g#�٠(���rȟ8���?�2����_R�˫��8����d~ 2��N�sKIa�1<u���)��vi�
����X����X`o�p�ҹ�2`��<EM8�F��ۄ]X�g���z
������T$UW42+
��%r������rO���V��c�
31�#�P�LX�Gj��\4p�K1�b-4�z(�[O
�'�#�x8�t�a���R�7����,�H]E$�ӔCGF^���9u��nY/�7rtZ��YniB�}oa*��BF�'��#f�zz�㉷�)FL������޿����r��y_������姆�I4
�{�I[/%���w[��|�2.iR���:%������LQ/���A�-&>zN��u��Ӗ]��W�����t�$Hُ�	\vؐ�X�xat�:�7^\���{ל*U5A
�֓�a[S*۾����t\솆1�kԍ��m�V���-��7���l?��9R;��
��Gt��}�9n��^�\�����"~w\�{�����z�v�m>0��A_�媢�#Z��3�G�T�8����Y��#}?ug���)p7���+)��t�{��b���X*�bXP��""Kn)�8&�jR>su
j��l�j>�F~y�O�E���干��K����Y�|�`��a�]Ja��!;��-g��DW,	�ԉK~��-���@�-�:��$��w;��A���oH��GI����ά���I GGK�R�B�G_τ{���&��lIҚ�g�è�����$�7�����A'O���v_9��:Qɓ��A�0�;�ĊËi��u;DjӘ�9�9��=���D��_�����_�dާ�$��@��
�L��P�4=�n\�r�&#�px:�i�v�_D�HMЎP�I��Y�ײ\|����6�YI:��#j����!9C��^��Thq+F�KM���+)�}�	��4��WA|C��z�����%>P�
�8�GK-��$~�
�o_`��?�uz�t�W\�l��|�q��pb2xT�)�b;��O��R��W<b2A�pXsp�_BM��%���ˌ�W��|+s���|�M�&�͟����j;��j�w�2�Mb�\[r��Cƪ��'4�kI�<�o�J��\���x��?{9GD��[ �e�BjbvU:�����<Qԅ$�U�������W�NI��q�OgdV]U�(X�6N>Z#'�r��|�|�7rP�^��������k����W��v�'��k2qR	c?����ZXP{� ��Y� ����
O�������9���[94I��֛<�u)r,K�3gD�-@����V��9Au��I�e-
���Pą���<a�x�+�yy���,�����Uy��b5�y���Ã�oe�%�<�\yan�h�{u�Wc�
K�7&�~sN�kӽ�ʐ�}e�D@�l#�HK�J=A*[�θt���pN�w�.���"�hi�O2l2�U��b�-ϩ�pcztH ���5݊'���)�Z�(w�기���u����� W�X�;�\�b��)O�����H�3����"�U���|�
�Q׵$��Q�('�K���'������T��<���+R��r�-%�1��=�
{ԸN��W���ĕ��G3�"�q'ˤ��]�+���v�X��D�Ű����݀�A;����TBX���b�x�`?~z��4z|�g�揘-���N:�
N�Z�ֻ�oY�RV5+�j�2V�l�pH8-�fN K�zx;ߔ�70�Zs��_$���X߰JD��~V6X�j\�X�A��PI(�tc�}ԋ�Z8�Қ�”'����H��N=���^
~��#�ۉ����x��#������{n;n�qF!��H�B���`��t�_c�OJ�I�W� ��#Y��<)(�1�U%�X�*�$8�H�)�+�i��>w�
�I�D��Ѭ�8VbC��0|ZtBb���[����^+꩟�4�w�K�{��X/��Ib�a��1�m7�uv?�ȝ
���UY�sKU��,�Af�����#	פ�rM �\Ϋ�p8ꜘ���2~!�4 ��Y��(��$�$��咕�Ii�,⚲t�OFZ��-�KEԿ�-�ֳ�Q��3�1��l��0(�������i
��v�Ԙ��æA{�Ju�H؀8�{ZS��I7T�:h��n�ȶ�D�*. A�wЩ9�S���0�	��"�k�hNn,����\_�_'��*k��X��D�Hn3���*��])2�"Lk�0^�b!U��͓(Ẇ��݂

���G����7=��6���F�������n��UiLX�b�}y�}��4��N���T|v��M�a�:��.o�K6W0�v8��m�A��>!��Z�O��?�[�Mje
-�a�
	���|�&�,$ (�
���R�%��P�J�<a�IκG|p��p]]���MT0�L��d�?�V�<��;����?�}yx�;F�XZil��{�A��A5�Y�u�ޔC��j�u�&������/E<�o�b�r�iS����f���JX� R�]%̐��;�F�N
�oR��2���V�]'����w!��*[9��]���M��:�J�n<"�$f�4[��Goq�i���sB<6��x)|�5�6�M!՚�nT}Đ��e�y��_�C���{�)K:�e��A�4�5hOB$2�%����ٱ�DW��E�̾��/5��]
�\G�{Z�:TϞ݋��u��I\��"�-� S`љVz�R�8�*�owV.�j��)|V�Qx*��D��u8�_��e�a �9�:����%f����3�E�Z';�oOBl�4=ֿ
�e�
������g����<v8�#�p:��'*��8u�A���Y���o�B
�p����{��G�]�I���>=攁=t�ؠeܝT g3:4�Xk�`�$�G�/z����f䊩TV{���7[]�F奧�4�;ǔЌ%��»x��~�INÊ�"e��8��2w_P�7kW���+'̆���F�\�4�����%���X��@��Ε�ʾ���s%�f+Gf�M5�ڪ3�^,�,+�Tz�Jx� f*knk-�+��\����R�M�(I��8��a.Y����_�L��5�`,�dۚŤW���c;K�;��l���9��,�I�k3؂'��pk6Ho~:+.4rصm�)�6c<��>(���✣��a�)��,���κ��ij�Gp�_��R
O�?��]+?���fgJ��D��	��?�?���\��m�� W�>B� am�ϊ�a�<@`r��
E0��T
��	w4���hÛ����Y)�d�����&(9��A��fR�������:X�e06����1ո+�x�q��1�CRLR_ʌ���1VF[�� )���c�vr�3�b$ז��E��<��1X����;%j"m.>�����E1ܼ���l%&���CLkcH�ZTB�'��}��3�΃��v��
J���N�Z
�
�>ڕoJ$VJ�`�1Rѧ]%�J	�;)�1����!��
�09ϐ%�h����4ނ�~�(�lH*�LNu#�eJ&�&�gk��%0a���{{��p�`(d&�ٴ`3�ވ
"��+	Vf!Dž:�%\.��~q���ˑ@n�d�!���
�A3�C���ٛLw���J���su�j��)q`�h>�n%�3��V('����G�xb-#�!�����jĥaIWx��$&-l[z�O�b	?���ٯ�P&j'_q(N�7�5�Q�z?8ߎj�D�:�'<��#�'�5t%I2i?�����q�R�ƞG3�e��ɏ��V:��X�X�Q�Db:��"0xd�F�v�?\⍁D�0Ig�	�sRF�Cz����C��(m�L1�`�Q���%���EÕ	���[}Ok3�j�X@b;�Z/�P8�Wro�L����(M�\��5}�P|mm��z�O+/�H?j4� x��~wR���^m7�o��$��s�S��w�r���y��k^bI�Be@cU']�p���TZ��*kS���0� 7D����;r�P��w�|�>V�$�|�d� �Jd��g��v��˒�����}t���q5$��5Q�Ǻ���/fe�لx2ԷyA����˓4[V�<��%
R��40�JR���9�^�>;><�B����C1���� E��^h#�V���/#��"�Q(]�76����=k��Ew�DΟ��%��bV��d��eۆS��� ,������>	��h���X�������T�!%E�T��xRo*Q���G��
;��LvCxᆻ̐�@���?[S�P�
r�!�wA�"��zbj`��/��e�^̺~)��)�?�?h�����uA[ǒ&?*�U.9i9M%'gj���6�̅vz�9JMq����p�x���|�B���E��¥+��f.P6Nf���9]���q�:}�c3dU��Qg���z䤱ClF�}��{��k��k�b��ŚR �s��+��C�侴�yq<B�~��l�q����I���:;z~��34c�����mٵF�˸��d��Tb���
�"�~M5>'�~	�7~p��R
7���wf��.)�)�d�P�!�!w9(�cK�\4ŵ����a�+�DC�pP���l[rHt��������H�*���K�Kɣ�J�޳Y����<�ʼB	��g�'c��?K��7J?_�z�?����T� �.�D��%�D��x��ԑ��L��\�¶���7%��f\K�+/)A���*��ի�T�㎉��yE�Iq��	���6�17�}�붝�KpT�2pi���ev &O�bOU��5��fC.�ff��
`cp/���G�IJ��Q�}�5&A!o��ϳ�(���p׽���V���PZ�#:��h��-���X/m�W$�%�9��rh���4��C��|�G�ɭ;����Ƽ��^Tf��aF�j'��wB��<vMo%n�����hY���	�d�����E�&ɲ��;�Qa[;���ӓ���J��d
��[�eR+�F`�~�ٚS�����{Y}���2���m��_���X���łr:���2	�ˌ��ľm�w���r���Y�p�����ℴ��X(#���M!5�`+b7h���uP�ZM6�s�z��s8��|�E���BjFy/�!}F|�����`��f���Ⱥ�.D�P7�^�W��G�޼y3����(�i�ۯ>j�İ2|��ae�k�Z慶.�u>Y:[Uߕ��,(�^_�3�P-�%�qKڧ��$�M'��7�R�1�TχƱ�tK��ؐ�ED�15u86.��0�>q�[S`��3vͣ J	�6.�|��r�=f�A?�կ~�����/��~����?}��/�>9x(ѝ�/��B�����8L�w�GT��w��������!Q�U�=<���oϫ�/Nj@�"d�?Λ���ï~��h�{���_��m�Q�k�y�z�q�Q�\n�k=��']���E�0�<�FŠ�dz q��"SK�\Y�[/ßMN��.謾�!/)/~2������ꂝ�𰺋�槆�բ�g$�Y�%=��F!|( {���G���@�����K�U8N%"��ŹP���I��/�����б�ƿ��>(L�"��L q�˞���-�f%Е���6��^�h���	��۬Z���T�j����q�J��r��.^t�?4��w�U��i�3U�mZ�}>�煣RM��p����V�suYـ�5�ka���
@n6���{IX�� �<��nQt;ك�}��e����l�.h�u���*�I(��
��l����4W7?9��b����uW���G��ч��d��*^e��ˉzm�x�o���l�`߮��ѿ��E��G��lC�k��U�ߟr�H]G�<�ֲ}��G矀�G|�-٭Y�ٖ���i�6]}rF��
��Ϳ+�QW=�[�k�A.7�,�w��Eu����ǧ	���W��d_n��QM8�‹2oA&H��-�3�S��z9��W�`Q&�sЈ�e����m\;X���Ok
���vr�SG�L��?&�>��f�~�����x��"р�F�,'f�p�7D�"`	�:ȋ�Sd�|��z(�]��g�.4K��KAv��l`��˰�p7>�Nx��.����ǰ���@!O|c��.ͦ�*�)�<��¾�}�K�'л "��s._�)��E��8��S�]�	��1�?;mk�<�}hwt���Ə�WE�6���B-(��~�/(�Ȕ��$/��F���g�A%����xf�d�?�p�?#K)$���q:�&�O�x���19Q��\.���Y~���E��c���*ƋSS��۔���p�U�X�|�E��t�(H�.\��HDqb-lB�n��+���ܛܰ
#�����	Z���
|Â1�wO�F�j}�SO0��-X�����,�7?6e�#���
)-=��-�;8,�&ȠK,+�6R� {��@N�.-f�:�$4��/Ԭio3���!���Da�I��˩����X7�#�ڕ�W�F���
8Y�ety���*�rc��Nw(ݱ�6�0����i�����_U�G��̳=�ߵ	�%�E�BI�*H4�s;Kf�-L60�������v�;p��|�/�ț)�d���Px��̬|N(���0$��УN�b'�>
]���О;›w��z��:�_?�~�������"�a����ۚ��lt�7���� �}\�]X}���ui���{��T�
�����G眽��7�8c"��|�*��_�����?�vE��B6��>��Zp��}� �����9�I�u�=+/k���n��҈$��M����U�D���p�D�?=�t���wX�ɻ�X<��At��L���Y������7?7�=}��Cu%��ă�)�����%Ts��ܯ��jΎ�㺤c4��d"��ϵ/Z��]��g˄*��o-��o�LBg|�$�����j��^��ܲ�k�������!�֭g����n�5½�p^|������*}��Ŭ)�)"_�~ڠP�I��b[6ۋ�G�,N7���f�	�i�$XS�5P��iN4���.(��쪾�{��w�a�ԙW	Ď�vS:9%"�L<m���+�	vSx�g��WlR��U�u������'�B���Ȏ��{�$:�A38B�R��p��E-l1*�32�ɇ@�0D�CY�R.��4�"�GJ�������,��:�>����=Z��ױ�yv�zP���%V�)G�j{Uc�k�.��$��&?���'��I�s�wo�x
�*Ԩ���s|԰��N$9�|]�,(;d�T�Q%P�ڴ�}��s�%}�	�O�M�
��˓JVٻ���?O���_�wx��=��ÿ�(I��:$]�A��d�@�l\xtA�	�y�P�&9�����&/U��:Z�E����,� ˮ-Eף�7������ބ"��qߤ�t���N	�����>������R3(yP�A�#�Y4�8/��2���H�DKV.l��yG�3��b�?�]XD�>X�
�F�K�m�=�2�
���?�`$���9�yCh3
W|Մ%-��CB���8kL�E�A��R�4.�7��jY�_�Ab
�0����5�8�%��u�h'�=���^<��˄�I[�j���j�ϑ�2�/��?]U��f�ɂ���wv�����8ݢw��%�ga���!!O�<�H��%rز*[�P>
��:�V�By/�s����|棎	{��K�\��kdZ���,*��;�Հ4o6�l�`8�rLH�')u��zD��Ϩ9�0ܩ�*C�.Z�b�Z�O��im�V	{p��]pz��U�8�ip�8[�@�8��c�l�A~�=s��a�;)�����s�́-�b~��P�k�n"��Z��`:QUa�
]l%�Rk��G�I���^)����w<�_dZw��p?,+x�V7?�Q���7��ѯ;qR�����V���2�dW8���.�=엷�_���ʚ��h8y���{]{{z�8�r�溺�0]Ŋ�j���\զ�O#�ɆEC0W?:Σ]�e\�b�6Qq�C���]h�[iɣ+���au�����k���ʲ�F�a�e‹h�\���q�[F�_�E�X��|<����6�?��i��h0���0d,�{[�����ӵ%?<�a�f�ÑW<���26�ɪ���">��d~�ݾ�>��e2�v�!��L7��w�&b�M4��dL����r_lm��tܷ7dƶ;���Z��:]�Q�����>���9�E�����$"I"-�Y�҂�Ǽ��̹����c
��%w�B��?��忯>q���"|J�^yS���Q��<��xK����vs�#Ks>���rY��-���ӕ�o���tm�;�n�q�i$>zu޳��"��ݼ3�HI��N�,��#"H:}�刕��Gq���׫}�j�X�Ǿx��_���3����Ū�®�0�g�:�-�"��P�����2����S^�����2��)�u������`�t�s�C:⫁�� �����&�g�c|�ϟ�a�g��y���K����\������υ��m�~&��+70i�{ӗc�ĵX�&���4�O.8�QܣpI�GY��	̹�F_��D�\Zb��*^@�ð�����~"�6֑��y#(L,E��Е__��?i�*�k��xLِ}Yt,�J�Y�U i9;�B&�#겯5��LV����Pes6m�x[+�XM4<��=��3��)y4�

�0ƝMX��41¨�78>�C��oX�マ�ݤI���*X�qd�~����sV61���6��E�GƑ�ý��?n�Υf�du�SB�#�[��[�ܽ�������7����M��%K�I���~~
86�2H�@ ([��
��H�5%�{…���E�?^ˮtrd��/�_-,�HQ:��1�	�a�#9�靡>�x�����ǿ���j�;w��/}}?��oo~�@=ڄ7�ȽL@���6�%���Z߼�{q�$�n��,_�,��P�6y��g$l���`I6�)'t�Gƕi��{�m���7�=z��V�V�[/"G����qS�*�D�|�MT�<^��oE��`�~�>�_-�쩝�;n�ET^��y3�5>�z�mٮ5Jx^㎒g�� �g�*;&l�Vz�BF�>��͏�EO��<j�8S5g}a�������~���ts"r�D�D�j��$�ƎR����հQ��Ñ�=9.��i��F�V�jE~���$��񽢇�+�!Q�6��
y�=���\��$o�ϰ���W=|]�pj��ßp�^�ISD���("�m�כ��bo�a��x��;=���uC[��p��;�,o~@�6�i�ʌc���^\@���q3���jSv=Y
�@���7F��}Bf��Эa�$�.R�$��q��P
��nb���0���ʿ�r���E�m�z�VN!�5ss�;�	��/Et���Ȇ�.�T���[c�ѯy_F�p=�p��5�>�����JN�ٷF�O��%�T�3�jsEh���u
5��$�K_��)^��gOx��_n��h�1�O��,$�kq�`��k��y!3n�I�ֹ�/���,y�<�lgr���:��)�*���y^|
B@R�в`�C0��?1>|��}�2�H�N$T/8�t��7	|�~���p�k>x�Zt���_��4]��KY�#�/�VW�"�ç��E�O��,�"���N�r&��2!h�'�nxbvxٰ؅����օ|�/D�x�;(�*��J�4�b&
��O*�F�7��M�������.%�z`���Z]�f���KT)X ��~��oC<.g$R��TIEr�[��q�_k2i�
LWF8�<��"�s�
m��㏠{�w8��YKw��0��ZP �+�'b�k�?%(l�p3�fXT�*lu]U��K��t���KŪB�`k�4Σ��
�zC�HΑ��yEDc@��%�۠���YN�g�G��x�	��Hk��,Gn]S�¢B��$�()!
�0}Lu?��3��h{,
7�!Z��т�7�۸r�]� #�U�����*jred_�#�f�)$�];-E1��2I�r����=(�*NYw\��û�_��u�I3;Z˗)@l�x�[��I�ߓt���g�5���`�M!ᙶ�iE�ߚDG2t����d���MX'�b}�ӥ(�1qf�3�dl����-�9�ש|	�)lm�_�M8�	��	��c�>}x~N�:�Z�X��h"ήamN�џo�Sk��'�R�$�Mĸ2(U�gĵE۷��;I�r�`1`^f0��4�u���+s**����}v���7?��”�/|͋jdz$-0PJ�K��}��͘��pzl�(Xr^��f�cB�H$mK����֋.�~�	�c��,�0���I�33.B���r!�nsp�'i��Xd��&N�}���4!�2v9��S-��G��rS�3q�I�����|Y}S%nUJJd8[D
�l��^~��#��ű0b�[C.��b1H8�ʁ���w���L�۸sO�dV�C}ޛ��� �WH?{��WU��
���$�ak��� ��P1z#CM	�Y�RK 49�`#�z�N\�u��^��Cg\�R]�k�{u�'X��
 �I�
z��
��M#�Vd.����i�«_��(I��m���/-y�<�H����BH�����m��4X]�Zo���� ��_�&A~�]�u��qv\te�Ĕ˂����X����:�qG[�R<X���aQ�@�S�N��2n
���4�[#n��06Sʧ�A�^/[L}�xq��g�[V�c"kl$\p\�i�t�a�K lN$���&u�@
��B���.{@M�v���;�k��Y���x��2�"�UC�d��%�9���o9���C�.
ǩ\%J`��hdd'�o�=q���落%od�rK�Ƞճ�km0��������k>U���|�A`�7���*L��}�>g�r�XCHv�{��l>"Ew�N�)u	7|#�ihY�i,C�4���H]�JI-ž������茘k.������=��a<��H���r^��
� d���Nׁ��u�����ޗ�؍-��>B�VQܕ%���x5�4'.�˚��
�ΐj}�|49��V��d�/���.Ik���6�Ga�Q��d;AZ�"m��lcp���T[[�$˸�HXx�\SU+��%i9A����p`��,8k0��슔@=3o�|�ͺp
m�+��#d2>/IL��pN��ZL4��L�b����Z��jGS$�0ô�!ϡ�R�cց�a�&0��HO{�Č�/�܏�B����.l�_�C��*q���Y�E�!�hP[e{7?-)�z��V-`[0M/���8x��}�߹�0K��d�KY�E�zt�f�ދ��t
��艎��~(^���"Ʋ<�;�Caq�aO��$���w����8"�;�p��.�����Xf��x,޻�O�$��:��Ks�ATC��^?�S�{E�aT�Un	Ip��D"r�\Ua ���^�����a���!֧Ys�RNG@b���h��<�̪@F]��Y����!�K@Kn��J&*`�k**z�h�x\4E�/���>��Ai��K��<�
Z>)Lz^�([�"��,�R>�OVPao��Lfb	��5��c뛲}9�0��#gF�wy���{(sK��щ�F!��P0a�p�!���%X_���%2p9��s��HÉaaA��Y�����Ln���%D�i�`��3�le�Yz���=�0�1̰��:S[�E�/�Mb��%��jS�T�GX��o��GƩ<$3��y'��zI��%��E����C�U�-�.DM�H8`�U�:����WcN��*z�W�ׂ�͛��)��jp�QE�_�f�p���6��L���U��50�Ϻ�p�I�W�[���$��:����"O`%�?�{��y/^����7	��p:q��&��~�����6� �x#��Pa�O�_"�����ύ��~).K��h��X(=!�������}G��X���XOJ�u�,|�}OE}\��͜�S�Ziˎ��o���5��xK(����*⹔�Q�A~*��l<��ר��o��Ol>�m��eU����Ӭ�x�j��\O��i���)?H5=QBS��uߣ�a:�Eʒ��mB\4�i�*�$�|��"�����!.Ut1g��,��xi�n�(%�@m5M/�S�ъs�,�R�C{��B����DT ��c�U��^�WU`�<���V�"B��
=OthAZ!r�,mJm�m���ӗ�Di^�� �wG��$��+>,�C��|�}���m0��*�'���L)� �l1&�,��zu��؆p؟�[���rhm%����KR��GO��*�O*H�f`y����Gā���mj�bY�j�CX��}M�|��ѭ�br��,+?[�Ƀ��e����F�`��ľ`�MB�y<˵�H;�m��B
�l��o�eu��)��q�C�؁�"��P�&4�mħ�3.�m"�0J`O.%`��� W���`)bV�,w�)B.�(�ơ�D���8�w�#�p���1tbeP�H�<��Nrq���!�Ɏtɩ$B-�9��R�r@k�nmM����T���Z�B5SV�“
u^����)+���a�&�_����SR��4�L�X��wQ�=���I�h�s�:���
��U(W�1l�h�b�Ș��]���L�"��R����r1���۫~���s/�w����iڷ`ed��Ϫp(��"�Y��������h��b�2
�,�0$�5G���X7�Xd���\xL�p���pwZ$x��ǫ��!�@��?�������b��h���{CՔ$r��ˉ�2h��6O\֯�a��B����Iðo�� -��#���Cו�����%ƒKD�?98��}v�w�����쀈��l�W������� ���Hd�%� t���2��ֈ��/(3�?��A.�«����՘��iv��;|��z�(�
��g�*!B�Z�}x\�/ر�<qM��E涌�H����`�fJ�
��5�5\�|!L�Pl�Ϳ6����"+�4.ߤ�lk�^��6[��C5��z(�~+=��T�C��y������~�a��-��}�^�������@C�Rң4�(\̑�]�M�,��X��k1��F�諍G=h�r}�+�"��!h_(L�)�	z�=�:
����ri'5ђlZ�*��Hc#���χpV�
�¢���1�-�k���t�~w��f��b��U錝�q��o8�Ə�:���d�&��"L-�%�zʔ@�`�o�C3eb�B�bS#jc�G!�𧯑�ho|Z�=%���4�l�eX[Y~�5S޸�� #m�B�H{���z\�Hގ��"Q͈v��RC�Y�P��[�޷���o|�YVޡ=�U���\j�᳜Y:5,I�z���^a���)�̐I4�u�^A�\�����2cʧ`��^ȸ�<;`�CB�y���E��lD#����94�R����?T* NtMMʉ��=R��{�5Kx�`N��6f�H�H�!��x���R�u�zw�p��n�0d����:b$�1���E��TI"e
��cl�hH�A=���hTl��Џ���_}���/e��p��C%t����ǁ�`c��=|4��]Ӝ�/��������7�#���;Z��(7$8��է�Ib�-�����I�a�-t��[wX�d �g8X��	1rZl�����T�����#y��R�"-z�Tx�ڻ�����fw�6�ZΠAd�b�Pt�q��n�z�}3�$�C��5c�F������������1f1O�����o��:�R&nCbj�4$�ݔ���- 4��So����y֓��E�t(���8�g�i��.<�nj�m_(��X(�B�9H@�Z�I��y��^i.�.�
��K���i���MA;�ŕ�3�o~���C!峦�;�Q)�ۆ�&;�M=	JAx|aQ�˔�N?� 7��y����"���Vmɵtݑ��P΂)��5kth/�.G~��%E���G�Qz���0�k&`I��j�dO>�>;�O���<�#l��ٳ��|���pow����i���3p�&T��,�d��J�(�k�*ZL�����`��wACgBq�̤��%R$��_
?u�|t��ů��On~ �'�b�'�Xt|D�����}��M�؂��G��*��k�e@}��M��	MV���%b˂�y<�����cdE+3+<����8b���е'�k(O<�n�\*���c�|1�)I�sݴ����JZf��jt�/O��>��0�'�(�)ef���-]��SPA�/�ׂig������ s�HRCkuٔ���/)/^M��kiΛ�i��w��	������'k�8�=���A����~�G	�LT�䀢�k)��=�3?\��&���֚�'���v��L�K�EEMi?�v%nz:��F3A�[PQ�dA\�.�!Z�y��si~009���	4�R�0�5-��\�K��	8�n~�L�o%�"�	��Ļ�ti� 	�9�����;�(��Vʀ�K"
����<r���?�
�����P?h���B[�������l�V�
[�?���������,D��z�`l=��]	�g=�e��O�4M�=��B�P�ݩ�>�ɞ����y� ���o���ՠ�i�Yq3�2��Ĺ�X�͐��L��r���s3�mw�D��Q<�����q�4{ʜ\�z���f�^?����IEMF|*��LOw
�	�_��l{׌`#l2_�9�gI�ƁY�PK#]{`�ONQ7MK}�
�$`�P��@�oI?6�Þ˶B,��0!��8h���9e�(��m�lT�,�&0Ӟ`Ej��p���	v[F�@�vf��N����+i��ѓf�6��X��~�uJGE�u�F1���i��H��'l�6�{�W�Z���۵�@�P"�n���Ze<G�%�)t#���䢱�ZtH�de�x�B�.� <1A@�ITx��+����^�r�J��穙A��,C��:�Z��-�?Or��˜��0�ʗ�|>I��a�x�D�ŲA�\k��mo���Rt+0�L��X/t����'c�'Ћ��B{�ʙ�%2j����eg��K�y>Dɢ8H�j02���AJ���N�a[]��ĥ}-�i���}�%�5��%�u�;лl#	�Pk@��ɞ�#O��e���iQ����&�|�i2�U�g�Y]����
ʛHк�Z(h�+'2^�:��� h7��p��8Ѳ�T������B�iX��g%���	�Ԑb��o����A�{+"G�ބYB�aL��4NŖ�<�@�U�jԼ5�t|;ޔ�fHh�Zz�q<�q��0F�)�-o0�yK���c\�
8th�
�J���Q+iO)�	�/Uv2gh?�E�u��"|�TqT�ea��y�z�A4
Ak�Ֆ|1����O�M8W=�#*�`�Z���d)�){'XҺ��PJ>��7?w/8E� ڗ��a�+��������-���:E'�t�K�#վ��r*՗�<5��F��C��a�N��/�&?
S���"%N��v�r�7�Tn)M*�1:/����
��f��6��1̥�Ƣ�����H�s؊��}䡚>iIꚑ�E�iGI���;U^�����`�"�MB����.�S*X��������'T7[3���So�z�[�dM�M?�#���C#%ބ~���
_/n�/C����ʜ���O:�3���-�dk����a:���M�sch�S띈̦�����s*�x��U��<&c��p�^#� xg�6�����5�E�2Ӽ�2�:���j`�`���D3>�Sh���?~�l��uP�^�g�'�3_�df܊Zɶ\_�Pʋ��25�k7��Gzrf�fEP������n��N���Z���oT��U��&-��5��K.+"r��Z�9g1�	��I�l����X6��������Wy��lo.��$���u��Iª�TF~!�)��[�-��1�k�HR�V�M���1�У��,ܜvʲ����x��"��@�����A�9�m�D"v��5v֞�^J�������H.����4Tz��a�VʔK�o�vQ�0����m&�YJ$�N}�3S�{:�'ِU#��kȽbD|IV��ؕak��3=�	�1�ɷTg��?)�3FK(�y���"j��?��Ӷќ5�uU�M!I.�4/�B�}(j�\ث(�p`���&�>��y��p|�Va����K��s1�n��9^��%��tI���_H�
�JP���o�_G~d��%d]����	�0S���R��|'�
�.Lw�-q�)�4炋W��¤Ozm|N�9q?�;�4ôG֊�q���U5gT��{PJ�f4���ރ9��r3݄���)�Ӎ�i�ɡ:��A*�eby���o�Xʙ�T�R�M�]��=�Mcq���0L�|�ǔ��Ql�"@��H�5�պM��Մ��A*o�F]�D��ޒ�h?����}O�SNo�.���/�M���\A2<G��]U��U�>�x]�
�X��@e\�{ӻ2�0�<�<��73}*��SC6#6��3J�kc�j(!ׄ�d�z�^p��j���tG^FAu��^��WP��_L�&���Ǜ�gT�R��8��o��Ǒ!��o�p�Μ��@c$�{T��Q`qr�n�n��Y��q�p����i�>�&����޷:bӧ�R�k�Gu7�j�~ c-����cK�y���߾7I���-G�u�>ƀ;���w4�^��n��u��ٯ�K�s�l��RK-^t�Bʫ�?J�ɶ�Mp����_����ה���8%p�X�/�<i�R�Y��ű̞�y�}�����5�rQ�g�4���L�K�S
'��QB�$��s0
s�J�<����ˋׅ�ʎGLA�Ƶ3�Ҡ�m�-2�iHl�D>�_v��EPoJ*��{����=�.d.�w(}1dƥ@D�5љ|W��!��G�Q�c���nUs�ib�����Ub�b�d$�_���-716UZG��$w$8�T��䫏�	��h�t���BN�=
_��BA�$�踼v왒ZC�S
���sL�ӿ��ㄕ���-�lM��m��hK���a�5U6
�&��e����Mm��I���r$�9>N�K���:8J�������^֔�Q�L�vQ�8n�A���*8�V��x٠���|(�(�u��mn(�-����[)�A�߮�'��ƽ�����K?�`qJS��~<���_m�Q\`�SP��C��V>������ F;�@�O�-;=<>����� p_�a.o~�{v��/ͳ/x�զ��r���h���I�����>ېJF��^�%,��4=l�ڟ=JN瀪wښKZ��W`��%�ji��i�ݜ�ͪ=�X\�RwQ!�ja.��E���v�M��,׽ќ
}�[a�6���<9L�o#C��ⳃ�ڋ��M��[���!�xSD~��$�Dp���+�q*�q��D���>т�J�]l�	^'Y{��L��
y���
9�A]ov`9)�����T�hG�<���K���܂�}%it��y���d��12�,5��[��!��8�:qn�Ί;����A���w�t�P���Z�K�j7�U���)���5���&k�Hn�O��f�i��ȵ��� 0o�Y���o�W������=��}�9��Ĩ4ɵ�b"�{���qH�=S���<�;�1�h�j8:�����I3���as�+��4'_�.�F�a�`�Ap��E%������S����i������i�������,�6i[R�_LJx�^g�i�gS��h�.� ���8S���q�(Ay�
���<�}D����#؏��B�jx�j��kA�9��S$��\�v/��oDܩ�-�?F�ȔÜ�
5q9O�y�E9P���2��*�>(���(A��8���K��C����P���l��|+��FIǒjIB���O�n�	�sJ�%�Hf�8&�1�>)�^㛟�ǨZ�
.�U˲ݬ'/�kA!.1���'o�>I���Y����DU������E�x58߫m81s��'�ߏKC��!,����#4�����D��9�rT����i��n���'l	W�^�s��~U,�M&[~�1����t�T��a+����w栋=��/a=S-�lͲ�B��GNѴ�o�Ev�m0A��N?Q���<^^�|��R��%��LB�T���L)xÇ�����3���8\\�"ǝ֥(�D�#�{x]�S�ݨP��=��9�y�:����(�8n�_���a���Zht$=�:!� �u�	�3iI�,#�F��gx�@sI�p�32��Md��{�.�t���0�<�}{ޒq�J_�ݩR��=�SI�C��bk�oc�V�SY�Q�(l������I
Pܵl�E�5:)��� tnχ�"�;��^���9|"y�B��}���=��6
F1�Չs�!�A�rs�U��{#��Y=�*r ��љVm$m01u�����F����P�wM��d��r��G	C�)Kz��??J�P��l,�)P���NM���
3[��}��Wn�n�'�?�E:�5B�{��X�kƎ~�8�9�-ۗ�E%&�i����%�7\>�ČUFj�}��@JB:Q�T�/ȠC�QO@)9Z�>9~c��'5{���Av��f	�
0٬��F	�(8�R*Huu{/;}S��
�5-kZ;䄺7��:��6�x���x)��=��8��H�8�#��o����F �Qa�� ��K��+uP ��P�/(��u��"{J�e���@tfE��8���'�J��P�E�tY�W�j!;��y�(���h�?�b$�j�!���y�]������q@
�}�D�`�-�S��f<�q	\�;E�c7�
�0�?���#�=�Տ:+�#bW�+�#��U�!��Rȭ��lvbS��x�]�N��Y	�O���1�x�o~�����0#�Gb����x��h�ԃ����%�ݍ�f�_�S)(�|���`�rBD�\���h��N'��)�X�p$�'�.��d��mx�?�y�����.��".T��\��*�^)��L#�hQ�b��L=J��b&ht*���*�"e�H�;]�:���P��k��[���п���`�ԑ�~�y)��(3M*n�.^���I��mQP���q�{�PF�04)�Yda��73�oz�bq�T~--0���)lZ� ���EM���q��ߎ��j��H%�����X��-�5�wk�u�tX/�D��`�W�̡�Ҫ���25��?ſ�w�S�ɂrrQ]�S*x~h��u�H1Ɯ�5R�ݷ�� �����U6�y���)do"�g
�1�`ZcP�=�+n�(�~��P�BH"��{��e�3>lF�")�X&��'�,��-���;���\�G6@[�4V���cV�
�A��#��t�%��$�u���ϩjP�x����^�L4��xp��FaH
k�%\�q�l����yL�K�Rт���Ua����Rۧ�]�P!
&	|rǔ�V��Qg��+�F�-�8�>/l��������D�S��ic5?��2�X�Ƃ�xX`�������׹��@�X�Z�U��Tۥ��+F4�d�1�q�b��'�Z)6=J �-����)��訖c�UdO
���9��,��DZ�E�ò]h�<Ngӝ��S&/�	ĒB+R�T
��u|.ik�F�n�gmG{�e�%d�7��I�#E��T�ӗ��b$:���YIbz;�.�kz0��
3�^2ZA�D��8_S> ~d��ϳ?R�邑��������óç;���T��-}uΓ�U�A٨%g�m�̬�;�}L}�U:�Pq+ΥM���"6CD��|��I�DqE��HnT�>�l�_8H�Rz�oe=s��]T�U7y0�S�u���z$�Z��>]ݲ��O�X�]݌�q��<���h��	+��p4 �H�ğ��qY���
�7���ӣ���������g�OO����L��Xn,�d���4_�"/�a>�g_�<�\�j����_j�H�[�ʡ�2.��3�9e���w�h4�X�%���	*�@U��Ӛ�]c---oY�X��3�A}k��>�(�I��=�=z�EA��.Q�F�[k�:)ReIU�]dV�~hR�n����}�I3;b7e�:i�'��
�m�q���껠��������J��k�1�!5��V����+�U@�-��0�%���
�����&~^

@�6�g�E�(h�.��Nk�^MSr��z�
w�f���:��
⃴�5G��0�{WSN��S0OX�5�I��A����R��]�a���S�ń�.��S��4o��a����(�ØP��9��#���:�"����O�������@݋4�n0f٦��c�]tZ�$b^H9��C��ε
��DY)�
Q9�j�����%'��]��k#�P;����y]�"»ֵ�$��e�i��YPhJY��G�Ҍ?�-�ef��Z$VS	��q،z�Lj^�Gp�õ�m"�a���!�۪_�rA�}�*�\k��x���H��7߯*��ObZ9L+����>u�D
&�B�#�T�R��e��/ �}O
g�>��&A�r
�S�4��4:�<�/��*ʑ@֊.,�Y����'ǺH	g�By�7?\4��-��2¬qx [��.݆�\aHxK[0�C��V��3u�}��,g�Owb'`���й�P�@Mްp<��N�]�󹢬�'�W۩�B�B����Y���Q��Kg���+��fj��N��nE��M!hG"0��E�,�0��dT�A$@Nqm��'<qE�X#@MK	��`��j(�<�j��'��1G�˚O�gO���&�`+�L@59��ry=�i�w߯�����uk����R����b����n�8	56ь�Z�:��O��3�\w��槾�@����'�SO9��	i��2X�n�p���m=�@,]�qZ2�q�Ie�t�|N��ȓ�;W��
�87u���3��L3Q����*�݊��hb��I=M5�=�%��S�h|.�H�K�F�I�R��uu���zUM��Ą�d뷋31(�7��ئ#�j*2��1=1�~$��ٯ�p"L���H�¤@�G���V��D�U�wQ�N�3eZ�l}sp¹_�r��]^�(Kq�\m]�H"�),����7u���� �����uR���n����!�#׀an�>iZ�^���qW���LƱM}�����+�G%�u|��"Ԛ]"�Œ���x�j���f�Hw”u�yvv�d�Jy��Tr�#�
�w�F���}S��P��c�	`D�g1˂��[��Vg�G���c�O[l��#[DwLE)%g��H����Q�S�l���b�V~��V�3�3Z:�`e��V]���͢ZT'����⪟�K�w�6�񊒈7�Ը�U�����/�a�J��!/�8h���i��D.�|ϧ�3�����j��E�5��u
�p�\�U��J��Oe(��=/�_=��,ѨP+C'�
+�{c��&��,^�a&�[�U��GT&���r[A*�%�s��9�w���e�|���qr��D.�]�ї�wOv��
*��^�k�7��8>�ٿn�5���}6c1S:�^��DF}T�s�/�Vô��	�ӑ?�#���
�<X=,���
���f�4���ꢻY^$�иR��
��Yi)�k��y��_�s��h����9�����K�+�7q�T��bU�%�Tb��U�l�	ϫ/�Ť��FTt%>�z��ij��x��x��X�n~$@.�rb������=��Բ@:����q�P^KB/�K�P�t���ÚO��{���ϑ�|��b?�l!:yʜa�U�Q�`0$c�z���3(��Cn�Zk�=^�]�wܶ-/a7����s^J���0��F�
(�-��
�@��fQ�i��뢃3��ؑ��sX�>D�_o��ͷ_P�S��^+��D3	�b� ��A��T
@B�űtę�L$"`��d[��>�6�e�(P���4V��� ��K����zQI�ۜ+�f��a��Q�ͥp'qR���~S���lV��J^��b�*9ݟ���I����w�))S(
_o�+�ߒ��v�tT�@��zp%��F)O$KC.)��tX������&�|1H��X%�S59_�|�|/�>��g���\�BxW�����%~"!+�KU��v	L��l=s紪���fft��"$����_��$��lr��p���?��Pr��|'�.��@b>�&�z6���q�T#�l?��SX&����p�i�Y�K�����|��؋O�n��ɼ^@�դːԘYړ3Ax>��Ng1I���#�h%wI�|�4&:0̱$��
g��?ΞKDm52D���0�h���-��9�0*Q�VGaXI�L�P�W"�]�(�g�,ql?��
��Ot�!��|��ܤ;S~z
q\Ѵ��=�O1��p�RJm�.y�{���������r;�g��L g�և��=�5�z��R.uZ�$�(ɛ����s�\��]�K���5�D��eY������5��C$��)�����U��H�p���t�<��שSXf��w�"���<w�W����5��}Y�J���a�����ޒZM�>H��v\~�,D��kQl�fG�j�����-ꝸ&J��z�)-�R'ôj;9��|�r�'�c`�ְV��
=��T�S=<T�Ξg7�j��dSߕ7�e��{���Jeb%aF�4���s�C�<{V4�� nKҮ4�F|
���"��7�u^T02��=��5�
�B��v�*�N+SI6Ͼ@�A�!S��i� ik837-,j�t�w�����B���`���t��4�O�<V�~��AI:m�1*R�F�����gg�^>��s����F��d�[�v7�L]�'�t[G��RFH��g���q����?�jFi�9I=��v���O��X.��ʘ�1�>p���c�rL���޲"������:���k�D�� 18	(a�I!�.-	3�QK/>
�UK&��:"�A���tdH��v%�Ĥ��¦��<ھ���eEJ����~t%�����g�Wl�y�2|/Q�L����o�B�i��3%a���-�I�D�"3rDD�,��q�J��'!m\ޅhUJG�vU�t��M<0>�!�(�lFz����A�q�m^����q�1�
jn~���A�J�E�=T*Qv���J2�f��0���b(=�ӊ���M<Z�OςH1��z>5�`T%b����B�8��"�-�j��
OL�J�C4v�:zN��jdsd#����y��
�X����$y4��F(4�_��m���G��#+8��ʜ8�o�%+���>����nypF�e"%��bؙ
|k��>�w���w�x��M�`�2a�5\=�ā'��ɑ�k���c���m�T,��Y��=v.Zou���1�@w$
Z`>��.p���Hj�r��q���Q	��'D���^B|ؼE�P�$��D�Ĭj2
O���5��4e�W��Gg�&_'�e��$*Q0Y��Vl�|�{�Qf�.��^�/�;W�ULr�{�5�2�'c`H���A��RA�=c�v�9��q\�@$��˥y�C��0Z�����xl�;���(]��$���ږ��%+��c�'����l�E�.�(��=��2�`��A^���Z�|��ѓu����U�Q��� �E
-T���t�Xoky{����Ww��G�lael(I���A���PP�p�����l1L�'�~��Vڢo/�`V��b����‡��gSwē0�#R��Op+�U�N��7-Q}?T.������5 ,I��q߻�))�b*ϴ�İ��B
lˍj-���|��a)�2�)$�|Da�lt�Œ��⾒� k)��"�-WN�2�G�8��\.�&qE��-�AZ�;	zD�v��.���D;�zx����$���^X��
����w�/��+r��䤜�?}��u���f�:W�����`�{Ai��m�jOelR��#�v��V�
˯��&w
���*���f���͊4_�\�k��g���U��ѣ7o��� �{H�p��������RU��<%]�ћ�  #���	�@�� �Bd	V���+��V?cJ�?�+ޜ��kDrw<��ձbm-���g��x6C5g5},XZHD�����v����A�07����;ȁ���sc�Gk���A���PKp��T�uQ�e����litespeed-cache-es_ES.poUT�\bux����PKp��Tz���_��,����litespeed-cache-es_ES.moUT�\bux����PK�h�# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in French (France)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2022-06-06 22:58:12+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: GlotPress/4.0.0-alpha.1\n"
"Language: fr\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/general/settings_inc.guest.tpl.php:35
#: tpl/general/settings_inc.guest.tpl.php:38
msgid "Guest Mode failed to test."
msgstr "Le test du mode invité a échoué."

#: tpl/general/settings_inc.guest.tpl.php:32
msgid "Guest Mode passed testing."
msgstr "Le mode invité a passé le test."

#: tpl/general/settings_inc.guest.tpl.php:25
msgid "Testing"
msgstr "Test en cours"

#: tpl/general/settings_inc.guest.tpl.php:24
msgid "Guest Mode testing result"
msgstr "Résultat du test du mode invité"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not blocklisted"
msgstr "Pas sur liste de blocage"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Learn more about when this is needed"
msgstr "En savoir plus sur les cas où cela est nécessaire"

#: src/purge.cls.php:317
msgid "Cleaned all localized resource entries."
msgstr "Nettoyé toutes les entrées de ressources localisées."

#: src/lang.cls.php:112
msgid "UCSS Allowlist"
msgstr "Liste d’autorisation UCSS"

#: tpl/dash/dashboard.tpl.php:563
msgid "<b>Last crawled:</b> %d item(s)"
msgstr "<b>Dernière exploration :</b> %d élément(s)"

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr "Voir le .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "Vous pouvez utiliser le code %1$s dans %2$s pour spécifier le chemin du fichier htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr "La constante PHP %s est prise en charge."

#: tpl/toolbox/edit_htaccess.tpl.php:52 tpl/toolbox/edit_htaccess.tpl.php:69
msgid "Default path is"
msgstr "Le chemin par défaut est"

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr "Chemin .htaccess"

#: tpl/general/settings.tpl.php:151
msgid "Please read all warnings before enabling this option."
msgstr "Veuillez lire tous les avertissements avant d’activer cette option."

#: tpl/toolbox/purge.tpl.php:80
msgid "This will delete all generated unique CSS files"
msgstr "Cela supprimera tous les fichiers CSS uniques générés"

#: tpl/toolbox/beta_test.tpl.php:59
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "Afin d’éviter une erreur de mise à niveau, vous devez utiliser la version %1$s ou ultérieure avant de pouvoir mettre à niveau vers la version %2$s."

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Use latest GitHub Dev/Master commit"
msgstr "Utiliser le dernier commit GitHub de développement/maître"

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Appuyez sur le bouton %s pour utiliser le commit GitHub le plus récent. Master est pour la version candidate et Dev est pour les tests expérimentaux."

#: tpl/toolbox/beta_test.tpl.php:49
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "La rétrogradation n’est pas recommandée. Peut provoquer une erreur fatale en raison du code remanié."

#: tpl/page_optm/settings_tuning.tpl.php:216
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Optimiser uniquement les pages pour les visiteurs invités (non connectés). Si cette option est désactivée, les fichiers CSS/JS/CCSS seront doublés par chaque groupe d’utilisateurs et utilisatrices."

#: tpl/page_optm/settings_tuning.tpl.php:182
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Les fichiers JS listés ou le code JS en ligne ne seront pas optimisés par %s."

#: tpl/page_optm/settings_tuning.tpl.php:97
msgid "Listed URI will not generate UCSS."
msgstr "Les URL listées ne généreront pas d’UCSS."

#: tpl/page_optm/settings_tuning.tpl.php:79
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "Le sélecteur doit exister dans le CSS. Les classes parentes dans le HTML ne fonctionneront pas."

#: tpl/page_optm/settings_tuning.tpl.php:75
msgid "Wildcard %s supported."
msgstr "Wildcard %s pris en charge."

#: tpl/page_optm/settings_tuning.tpl.php:74
msgid "How to choose an UCSS allowlist selector?"
msgstr "Comment choisir un sélecteur de liste d’acceptation UCSS ?"

#: tpl/page_optm/settings_media.tpl.php:227
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Définir une largeur et une hauteur explicites sur les éléments images pour réduire les changements de mise en page et améliorer le CLS (une métrique Core Web Vitals)"

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Delayed"
msgstr "Reporté"

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr "Réglages HTML"

#: tpl/dash/dashboard.tpl.php:300 tpl/dash/dashboard.tpl.php:389
#: tpl/dash/dashboard.tpl.php:432 tpl/dash/dashboard.tpl.php:465
#: tpl/dash/dashboard.tpl.php:498 tpl/dash/dashboard.tpl.php:530
msgid "More"
msgstr "Plus"

#: tpl/dash/dashboard.tpl.php:160
msgid "Remaining Daily Quota"
msgstr "Quota quotidien restant"

#: tpl/crawler/summary.tpl.php:183
msgid "Successfully Crawled"
msgstr "Bien exploré"

#: tpl/crawler/summary.tpl.php:182
msgid "Already Cached"
msgstr "Déjà mise en cache"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "Le robot explorateur utilisera votre plan de site XML ou votre index de plan de site. Saisissez l’URL complète de votre plan de site ici."

#: tpl/cdn/settings.tpl.php:214
msgid "Optional when API token used."
msgstr "Facultatif en cas d’utilisation d’un jeton d’API."

#: tpl/cdn/settings.tpl.php:198
msgid "Global API Key / API Token"
msgstr "Clé/jeton d’API global"

#: tpl/cdn/settings.tpl.php:194
msgid "This can be managed from %1$s%2$s tab."
msgstr "Cela peut être géré à partir de l’onglet %1$s%2$s."

#: tpl/cdn/settings.tpl.php:54
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s."
msgstr "Remarque : QUIC.cloud CDN et Cloudflare n’utilisent pas de CDN mapping. Si vous utilisez uniquement QUIC.cloud ou Cloudflare, laissez ce réglage %1$s."

#: src/lang.cls.php:166
msgid "Add Missing Sizes"
msgstr "Ajouter les dimensions manquantes"

#: src/lang.cls.php:141
msgid "Optimize for Guests Only"
msgstr "Optimiser pour les visiteurs uniquement"

#: src/lang.cls.php:69
msgid "Guest Optimization"
msgstr "Optimisation visiteur"

#: src/lang.cls.php:68
msgid "Guest Mode"
msgstr "Mode visiteur"

#: src/doc.cls.php:37
msgid "Please see %s for more details."
msgstr "Veuillez voir %s pour plus de détails."

#: src/lang.cls.php:125
msgid "Localization Files"
msgstr "Fichiers de localisation"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Purgé !"

#: tpl/page_optm/settings_localization.tpl.php:120
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Les ressources des domaines énumérés ici seront copiées et remplacées par des URL locales."

#: tpl/toolbox/beta_test.tpl.php:36
msgid "Use latest GitHub Master commit"
msgstr "Utiliser le dernier commit GitHub maître"

#: tpl/toolbox/beta_test.tpl.php:34
msgid "Use latest GitHub Dev commit"
msgstr "Utiliser le dernier commit GitHub de développement"

#: src/crawler-map.cls.php:317
msgid "No valid sitemap parsed for crawler."
msgstr "Aucun plan de site valide n’a été analysé par le robot explorateur."

#: src/lang.cls.php:109
msgid "CSS Combine External and Inline"
msgstr "Combiner les CSS externes et en ligne"

#: tpl/page_optm/settings_css.tpl.php:150
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Inclure les CSS externes et les CSS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par CSS Combine."

#: tpl/page_optm/settings_css.tpl.php:30
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiser les fichiers CSS et le code CSS en ligne."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:83
#: tpl/page_optm/settings_tuning.tpl.php:168
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La liste prédéfinie sera également combinée avec les réglages ci-dessus."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localisation"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Inclure les JS externes et les JS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par JS Combine."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combiner tous les fichiers JS locaux en un seul fichier."

#: tpl/page_optm/settings_tuning.tpl.php:161
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Les fichiers JS listés ou le code JS en ligne ne seront pas différés."

#: tpl/general/settings.tpl.php:94
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Demande envoyée. Veuillez patienter, puis actualisez la page pour voir la notification d’approbation."

#: src/data.upgrade.func.php:102
msgid "Click here to settings"
msgstr "Cliquez ici pour les réglages"

#: src/data.upgrade.func.php:101
msgid "JS Defer"
msgstr "Différer le JS"

#: src/data.upgrade.func.php:101
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "Mise à niveau réussie de LiteSpeed Cache. Note : en raison de modifications dans cette version, les réglages %1$s et %2$s ont été désactivés. Veuillez les réactiver manuellement, puis vérifier que la mise en page de votre site est correcte et que vous n’avez aucune erreur JS."

#: src/lang.cls.php:116
msgid "JS Combine External and Inline"
msgstr "Combiner les JS externes et en ligne"

#: src/admin-display.cls.php:460
msgid "Dismiss"
msgstr "Ignorer"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "Le dernier fichier de données est"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La liste sera fusionnée avec les nonces prédéfinis dans votre fichier de données local."

#: tpl/page_optm/settings_css.tpl.php:43
msgid "Combine CSS files and inline CSS code."
msgstr "Combinez les fichiers CSS et le code CSS en ligne."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minifier les fichiers JS et les codes JS en ligne."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Les fichiers JS listés ou le code JS en ligne ne seront pas minifiés/combinés."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Les fichiers CSS listés ou le code CSS en ligne ne seront pas minifiés/combinés."

#: src/css.cls.php:60 src/root.cls.php:176
msgid "Queue cleared successfully."
msgstr "File d’attente bien vidée."

#: src/admin-display.cls.php:935
msgid "This setting is overwritten by the Network setting"
msgstr "Ce réglage est surchargé par le réglage du réseau"

#: src/lang.cls.php:155
msgid "LQIP Excludes"
msgstr "LQIP exclut"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "Ces images ne génèrent pas de LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Confirmez-vous vouloir réinitialiser tous les réglages aux valeurs par défaut ?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "Cette option retirera toutes les balises %s du HTML."

#: tpl/general/settings.tpl.php:116
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Confirmez-vous vouloir vider tous les nœuds du cloud ?"

#: src/lang.cls.php:139
msgid "Remove Noscript Tags"
msgstr "Retirer les balises Noscript"

#: src/error.cls.php:84
msgid "The site is not registered on QUIC.cloud."
msgstr "Le site n’est pas enregistré sur QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Cliquez ici pour modifier."

#: src/cloud.cls.php:763 src/error.cls.php:48
msgid "Click here to set."
msgstr "Cliquez ici pour paramétrer."

#: src/cloud.cls.php:762
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site non reconnu. La clé de domaine a été automatiquement supprimée. Veuillez en demander une nouvelle."

#: src/lang.cls.php:124
msgid "Localize Resources"
msgstr "Localiser les ressources"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Paramétrage des en-têtes personnalisés"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all localized resources"
msgstr "Cela supprimera toutes les ressources localisées"

#: src/gui.cls.php:535 src/gui.cls.php:695 tpl/toolbox/purge.tpl.php:88
msgid "Localized Resources"
msgstr "Ressources localisées"

#: tpl/page_optm/settings_localization.tpl.php:125
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Les commentaires sont pris en charge. Commencez une ligne avec un %s pour la transformer en ligne de commentaire."

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "HTTPS sources only."
msgstr "Sources HTTPS uniquement."

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localiser les ressources externes."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Réglages de localisation"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Indiquez au sélecteur CSS que son style doit toujours être contenu dans l’UCSS."

#: tpl/page_optm/settings_css.tpl.php:64
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Utilisez le service en ligne QUIC.cloud pour générer des CSS uniques."

#: src/lang.cls.php:110
msgid "Generate UCSS"
msgstr "Générer l’UCSS"

#: tpl/dash/dashboard.tpl.php:464 tpl/toolbox/purge.tpl.php:79
msgid "Unique CSS"
msgstr "CSS unique"

#: tpl/toolbox/purge.tpl.php:116
msgid "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"
msgstr "Purger les entrées de cache créées par cette extension à l’exception des caches CSS et LQIP critiques"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "Rapport LiteSpeed"

#: tpl/img_optm/summary.tpl.php:222
msgid "Image Thumbnail Group Sizes"
msgstr "Dimensions de groupe de la miniature d’image"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorez certaines chaînes de requête lors de la mise en cache. (%s LSWS nécessaire)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "Pour les URL avec des jokers, il peut y avoir un retard dans le lancement de la purge planifiée."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Par conception, cette option peut servir du contenu périmé. N’activez pas cette option si cela ne vous convient pas."

#: src/lang.cls.php:97
msgid "Serve Stale"
msgstr "Servir le périmé"

#: src/admin-display.cls.php:932
msgid "This setting is overwritten by the primary site setting"
msgstr "Ce réglage est surchargé par le réglage du site principal"

#: src/img-optm.cls.php:964
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Une ou plusieurs images tirées ne correspondent pas à l’image md5 notifiée"

#: src/img-optm.cls.php:947
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Certains fichiers d’image optimisés ont expiré et ont été effacés."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "Vous avez trop d’images notifiées, veuillez d’abord retirer les images notifiées."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Vous avez trop de demandes d’images, veuillez réessayer dans quelques minutes."

#: src/img-optm.cls.php:1025
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "L’image WebP md5 tirée ne correspond pas à l’image WebP md5 notifiée."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Lire la documentation LiteSpeed"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "Il y a une file d’attente qui n’est pas encore tirée. Informations sur la file d’attente : %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Délai d’attente du plan du site"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Précisez le délai d’attente lors de l’analyse du plan du site."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Spécifiez combien de temps, en secondes, les fichiers Gravatar sont mis en cache."

#: tpl/general/settings.tpl.php:112
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Une clé de domaine est nécessaire pour les services en ligne QUIC.cloud."

#: src/img-optm.cls.php:547
msgid "Cleared %1$s invalid images."
msgstr "Effacé %1$s images non valides."

#: src/img-optm.cls.php:509
msgid "Bypassed %1$s duplicated images."
msgstr "Contourné %1$s images dupliquées."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Demander la clé du domaine"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "Réglages généraux de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:107
msgid "This will delete all cached Gravatar files"
msgstr "Cela supprimera tous les fichiers Gravatar mis en cache"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Empêcher tout journal de débogage des pages listées."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Journaliser uniquement les pages répertoriées."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Précisez la taille maximale du fichier journal."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Pour éviter de remplir le disque, ce réglage doit être désactivé lorsque tout fonctionne."

#: tpl/toolbox/beta_test.tpl.php:54
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Cliquez sur le bouton %s pour stopper le test bêta et revenir à la version actuelle depuis le répertoire des extensions WordPress."

#: tpl/toolbox/beta_test.tpl.php:38 tpl/toolbox/beta_test.tpl.php:54
msgid "Use latest WordPress release version"
msgstr "Utiliser la dernière version de WordPress"

#: tpl/toolbox/beta_test.tpl.php:38
msgid "OR"
msgstr "Ou"

#: tpl/toolbox/beta_test.tpl.php:29
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utilisez cette section pour permuter les versions d’extension. Pour tester la version bêta d'un commit GitHub, saisissez l’URL du commit dans le champ ci-dessous."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Réinitialiser les réglages"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "Boîte à outils LiteSpeed Cache"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Bêta test"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Vue du journal"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Réglages de débogage"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Activez pour contrôler les battements de cœur dans l'éditeur de l’interface d’administration."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "L’intervalle valide de WordPress est de %s secondes"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Activez pour contrôler les battements de cœur dans l’interface d’administration."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Réglez sur %1$s pour interdire les battements de cœur sur %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "L’intervalle valide de WordPress est de %s secondes."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Précisez l’intervalle de battement de cœur de %s en secondes."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Activez pour contrôler les battements de cœur sur l’interface publique."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Désactivez l’intervalle de battement de cœur de WordPress pour réduire la charge du serveur."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Contrôle des battements de cœur"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "fournir plus d'informations ici pour aider l’équipe LiteSpeed dans le débogage."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Facultatif"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Générer un lien pour l’utilisateur actuel"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Lien de connexion sans mot de passe"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Informations système"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Aller à la liste des extensions"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Installer DoLogin Security"

#: tpl/general/settings.tpl.php:206
msgid "Check my public IP from"
msgstr "Vérifier mon IP publique à partir de"

#: tpl/general/settings.tpl.php:206
msgid "Your server IP"
msgstr "L’adresse IP de votre serveur"

#: tpl/general/settings.tpl.php:205
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Saisissez l'adresse IP de ce site pour permettre aux services de cloud d'appeler directement l’IP au lieu du nom de domaine. Cela permet d’éviter les surcharges des consultations DNS et CDN."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Précisez le délai d’attente lors de l’exploration de chaque URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Précisez le temps en secondes pour le temps entre chaque intervalle d’exécution."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "Cela permettra le cron du robot explorateur."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Réglages généraux du robot explorateur"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blocklist"
msgstr "Retirer de la liste de blocage"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blocklist"
msgstr "Vider la liste de blocage"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blocklist items?"
msgstr "Confirmez-vous vouloir supprimer toutes les éléments de liste de blocage existants ?"

#: tpl/crawler/blacklist.tpl.php:56 tpl/crawler/map.tpl.php:69
msgid "Blocklisted due to not cacheable"
msgstr "Mis sur liste de blocage car impossible à mettre en cache"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blocklist"
msgstr "Ajouter à la liste de blocage"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr "Opération"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Total du plan de site"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Liste du plan du site"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Actualiser la carte du robot explorateur"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Vider la carte du robot explorateur"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Réglages du plan du site"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Réglages de simulation"

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blocklist"
msgstr "Liste de blocage"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Carte"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Résumé"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Si vous utilisez plusieurs domaines pour un site et que vous avez plusieurs domaines dans le plan du site, veuillez laisser cette option désactivée afin que le robot explorateur sache qu’il doit explorer chaque domaine."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "Le robot explorateur analyse le plan du site et le sauvegarde dans la base de données avant l’exploration. Lors de l’analyse du plan du site, l’abandon du domaine peut permettre d’économiser du stockage en base de données."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Réglages de plan de site du robot explorateur"

#: tpl/crawler/summary.tpl.php:190
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr " Si le cron et une exécution manuelle démarrent tous deux à des moments similaires, le premier qui démarre aura la priorité."

#: tpl/crawler/summary.tpl.php:189
msgid "Crawlers cannot run concurrently."
msgstr "Les robots explorateurs ne peuvent pas s’exécuter simultanément."

#: tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Cache manquant"

#: tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Occurrences de cache"

#: tpl/crawler/summary.tpl.php:181
msgid "Waiting to be Crawled"
msgstr "En attente d’exploration"

#: tpl/crawler/blacklist.tpl.php:57 tpl/crawler/map.tpl.php:70
#: tpl/crawler/summary.tpl.php:160 tpl/crawler/summary.tpl.php:184
msgid "Blocklisted"
msgstr "Bloqué"

#: tpl/crawler/summary.tpl.php:159
msgid "Miss"
msgstr "Manquer"

#: tpl/crawler/summary.tpl.php:158
msgid "Hit"
msgstr "Occurrences"

#: tpl/crawler/summary.tpl.php:157
msgid "Waiting"
msgstr "En attente"

#: tpl/crawler/summary.tpl.php:126
msgid "Running"
msgstr "En cours d’exécution"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Utilisez %1$s dans %2$s pour indiquer que ce cookie n’a pas été défini."

#: src/admin-display.cls.php:209
msgid "Add new cookie to simulate"
msgstr "Ajouter un nouveau cookie pour simuler"

#: src/admin-display.cls.php:208
msgid "Remove cookie simulation"
msgstr "Supprimer la simulation de cookie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Réglages de simulation du robot explorateur"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr "La règle htaccess est : %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "D’autres réglages sont disponibles dans le menu %s"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "La durée, en secondes, pendant laquelle les fichiers seront stockés dans le cache du navigateur avant d’expirer."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Utilisateurs d’OpenLiteSpeed, veuillez vérifier ceci"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Réglages du cache navigateur"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Les chemins contenant ces chaînes de caractères seront forcés à être mis en cache public, indépendamment des réglages qui ne peuvent pas être mis en cache."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Si le CDN QUIC.cloud est activé, vous pouvez toujours voir les en-têtes de cache de votre serveur local."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Un second paramètre facultatif peut être utilisé pour spécifier le contrôle du cache. Utilisez un espace pour séparer"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Les nonces ci-dessus seront automatiquement convertis en ESI."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Navigateur"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Objet"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Le port par défaut pour %1$s est %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Réglages du cache objet"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Spécifiez un code d’état HTTP et le nombre de secondes pour mettre cette page en cache, séparés par un espace."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Spécifiez combien de temps, en secondes, la page d’accueil est mise en cache."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si activé, une copie périmée de la page en cache sera affichée au visiteur jusqu’à ce qu’une nouvelle copie de cache soit disponible. Réduit la charge du serveur pour les visites suivantes. Si désactivé, la page sera générée dynamiquement pendant que le visiteur attend."

#: tpl/page_optm/settings_css.tpl.php:270
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:269
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Définissez ceci pour ajouter %1$s à toutes les règles %2$s avant de mettre en cache le CSS pour spécifier comment les polices doivent être affichées lors du téléchargement."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Liste des avatars en attente de mise à jour"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Actualiser le cache  Gravatar par cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Accélère la vitesse en mettant en cache Gravatar (avatars mondialement reconnus)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Stockez Gravatar localement."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Échec de la création de la table Avatar. Veuillez suivre les conseils <a %s>de création de tableau du wiki LiteSpeed</a> pour terminer la configuration."

#: tpl/page_optm/settings_media.tpl.php:140
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "Les requêtes LQIP ne seront pas envoyées pour les images dont la largeur et la hauteur sont inférieures à ces dimensions."

#: tpl/page_optm/settings_media.tpl.php:138
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:122
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Un plus grand nombre générera une meilleure qualité de résolution de remplacement, mais donnera lieu à des fichiers plus volumineux qui augmenteront la taille des pages et consommeront plus de points."

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Specify the quality when generating LQIP."
msgstr "Précisez la qualité lors de la génération du LQIP."

#: tpl/page_optm/settings_media.tpl.php:107
msgid "Keep this off to use plain color placeholders."
msgstr "N’utilisez pas cette option pour utiliser des textes indicatifs en couleur."

#: tpl/page_optm/settings_media.tpl.php:106
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Utilisez le service de génération de LQIP (Low Quality Image Placeholder) de QUIC.cloud pour une prévisualisation responsive des images pendant le chargement."

#: tpl/page_optm/settings_media.tpl.php:92
msgid "Specify the responsive placeholder SVG color."
msgstr "Précisez la couleur SVG du texte indicatif responsive."

#: tpl/page_optm/settings_media.tpl.php:78
msgid "Variables %s will be replaced with the configured background color."
msgstr "Les variables %s seront remplacées par la couleur d’arrière-plan configurée."

#: tpl/page_optm/settings_media.tpl.php:77
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Les variables %s seront remplacées par les propriétés de l’image correspondante."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Ce sera converti à la volée en un texte indicatif base64 SVG."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Spécifiez un SVG à utiliser comme texte indicatif lors de la génération en local."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Empêcher tout chargement différé des pages listées."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Les iframes ayant ces noms de classe parent ne seront pas chargées en différé."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Les iframes contenant ces noms de classe ne seront pas chargées en différé."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Les images ayant ces noms de classe de parent ne seront pas chargées en différé."

#: tpl/page_optm/entry.tpl.php:19
msgid "LiteSpeed Cache Page Optimization"
msgstr "Optimisation des pages de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Médias exclus"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:16
msgid "CSS Settings"
msgstr "Réglages CSS"

#: tpl/page_optm/settings_css.tpl.php:270
msgid "%s is recommended."
msgstr "%s est recommandé."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Deferred"
msgstr "Différé"

#: tpl/page_optm/settings_css.tpl.php:267
msgid "Default"
msgstr "Par défaut"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "Cela peut améliorer la vitesse de chargement des pages."

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activer automatiquement le pré-lancement des DNS pour les URL dans le document, y compris les images, CSS, JavaScript, etc…"

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "La nouvelle version développeur %s est disponible dès maintenant."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "Nouvelle version développeur disponible !"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Ignorer cette notification"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweeter ceci"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Aperçu du tweet"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Apprendre plus"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "Vous venez de débloquer une promotion de QUIC.cloud !"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "Le réglage de la qualité de compression d’image de WordPress sur 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Réglages d’optimisation des images"

#: tpl/img_optm/summary.tpl.php:373
msgid "Are you sure to destroy all optimized images?"
msgstr "Confirmez-vous vouloir détruire toutes les images optimisées ?"

#: tpl/img_optm/summary.tpl.php:365
msgid "Use Optimized Files"
msgstr "Utiliser les fichiers optimisés"

#: tpl/img_optm/summary.tpl.php:364
msgid "Switch back to using optimized images on your site"
msgstr "Revenir à l’utilisation d’images optimisées sur votre site"

#: tpl/img_optm/summary.tpl.php:361
msgid "Use Original Files"
msgstr "Utiliser les fichiers originaux"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use original images (unoptimized) on your site"
msgstr "Utiliser des images originales (non optimisées) sur votre site"

#: tpl/img_optm/summary.tpl.php:355
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Vous pouvez rapidement passer de l’utilisation de fichiers d’images originaux (versions non optimisées) à celle de fichiers d’images optimisés. Cela affectera toutes les images de votre site web, qu’il s’agisse de la version normale ou de la version webp si disponible."

#: tpl/img_optm/summary.tpl.php:352
msgid "Optimization Tools"
msgstr "Outils d’optimisation"

#: tpl/img_optm/summary.tpl.php:325
msgid "Rescan New Thumbnails"
msgstr "Scanner à nouveau les nouvelles miniatures"

#: tpl/img_optm/summary.tpl.php:317
msgid "Congratulations, all requested!"
msgstr "Félicitations, tous demandées !"

#: tpl/img_optm/summary.tpl.php:290
msgid "Congratulations, all gathered!"
msgstr "Félicitations, tous recueillies !"

#: tpl/img_optm/summary.tpl.php:287
msgid "Images not yet gathered"
msgstr "Images non encore recueillies"

#: tpl/img_optm/summary.tpl.php:282 tpl/img_optm/summary.tpl.php:309
msgid "What is an image group?"
msgstr "Qu’est-ce qu’un groupe d’images ?"

#: tpl/img_optm/summary.tpl.php:233
msgid "Delete all backups of the original images"
msgstr "Supprimer toutes les sauvegardes des images originales"

#: tpl/img_optm/summary.tpl.php:215
msgid "Calculate Backups Disk Space"
msgstr "Calculer l’espace disque de sauvegarde"

#: tpl/img_optm/summary.tpl.php:100
msgid "Optimization Status"
msgstr "État de l’optimisation"

#: tpl/img_optm/summary.tpl.php:84
msgid "Gather Image Data"
msgstr "Recueillir les données des images"

#: tpl/img_optm/summary.tpl.php:72
msgid "Current limit is"
msgstr "La limite actuelle est"

#: tpl/img_optm/summary.tpl.php:71
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "Afin de s’assurer que notre serveur peut communiquer avec le vôtre sans problème et que tout fonctionne bien, pour les quelques premières demandes, le nombre d’images autorisées dans une seule requête est limité."

#: tpl/img_optm/summary.tpl.php:66
msgid "You can request a maximum of %s images at once."
msgstr "Vous pouvez demander un maximum de %s images à la fois."

#: tpl/img_optm/summary.tpl.php:61
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiser les images avec notre serveur QUIC.cloud"

#: tpl/img_optm/summary.tpl.php:57 tpl/page_optm/settings_css.tpl.php:91
#: tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "Le serveur Cloud le plus proche est actuellement %s.&#10; Cliquez pour le détecter à nouveau."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Les révisions plus récentes que ce nombre de jours seront conservées lors du nettoyage des révisions."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Jour(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Précisez le nombre de révisions les plus récentes à conserver lors du nettoyage des révisions."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimisation de la base de données LiteSpeed Cache"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Réglages d’optimisation de la BDD"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Nom de l’option"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Résumé de la base de données"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "Nous sommes bons. Aucune table n’utilise le moteur MyISAM."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Convertir en InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Outil"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Moteur"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Tableau"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Convertisseur de moteur de table de base de données"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Révisions propres plus anciennes que %1$s jour(s), à l’exclusion des %2$s dernières révisions"

#: tpl/dash/dashboard.tpl.php:537
msgid "Currently active crawler"
msgstr "Robot explorateur actuellement actif"

#: tpl/dash/dashboard.tpl.php:534
msgid "Crawler(s)"
msgstr "Robot(s) explorateur(s)"

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:529
msgid "Crawler Status"
msgstr "État du robot explorateur"

#: tpl/dash/dashboard.tpl.php:448 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513
msgid "Force cron"
msgstr "Forcer le cron"

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:511
msgid "Requests in queue"
msgstr "Demandes en file d’attente"

#: tpl/dash/dashboard.tpl.php:440 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:506
msgid "Time to execute previous request"
msgstr "Délai d’exécution de la demande précédente"

#: tpl/dash/dashboard.tpl.php:417
msgid "Cache Stats"
msgstr "Statistiques de cache"

#: tpl/dash/dashboard.tpl.php:395
msgid "Private Cache"
msgstr "Cache privé"

#: tpl/dash/dashboard.tpl.php:394
msgid "Public Cache"
msgstr "Cache public"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Status"
msgstr "État du cache"

#: tpl/dash/dashboard.tpl.php:360
msgid "Last Pull"
msgstr "Dernier tirage"

#: tpl/dash/dashboard.tpl.php:325
msgid "Images Requested"
msgstr "Images demandées"

#: tpl/dash/dashboard.tpl.php:310
msgid "Image Groups Prepared"
msgstr "Groupes d’images préparés"

#: tpl/dash/dashboard.tpl.php:299 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Résumé d’optimisation des images"

#: tpl/dash/dashboard.tpl.php:238
msgid "Refresh page score"
msgstr "Actualiser le score de la page"

#: tpl/dash/dashboard.tpl.php:227 tpl/img_optm/summary.tpl.php:57
#: tpl/page_optm/settings_css.tpl.php:91 tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Confirmez-vous vouloir détecter à nouveau le serveur cloud le plus proche pour ce service ?"

#: tpl/dash/dashboard.tpl.php:227
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "Le serveur Cloud le plus proche est actuellement %s.&#10;Cliquez pour le redétecter."

#: tpl/dash/dashboard.tpl.php:222 tpl/dash/dashboard.tpl.php:291
#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:489
#: tpl/dash/dashboard.tpl.php:521
msgid "Last requested"
msgstr "Dernière demande"

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh page load time"
msgstr "Actualiser le temps de chargement des pages"

#: tpl/dash/dashboard.tpl.php:169
msgid "Go to QUIC.cloud dashboard"
msgstr "Aller au tableau de bord QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:497
msgid "Low Quality Image Placeholder"
msgstr "Texte indicatif d’image de faible qualité"

#: tpl/dash/dashboard.tpl.php:45
msgid "Sync data from Cloud"
msgstr "Synchroniser les données depuis le Cloud"

#: tpl/dash/dashboard.tpl.php:42
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Statistiques sur l’utilisation des services QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:151 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Total des images optimisées ce mois-ci"

#: tpl/dash/dashboard.tpl.php:150 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Utilisation totale"

#: tpl/dash/dashboard.tpl.php:131 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Statistiques sur l’utilisation du paiement au fur et à mesure"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "Utilisation de ce mois"

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "Solde du paiement au fur et à mesure"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Paiement au fur et à mesure"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Utilisation"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Utilisation de la file d’attente rapide"

#: tpl/dash/dashboard.tpl.php:57 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "Bande passante de CDN"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Statistiques d’utilisation"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "Tableau de bord LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Tableau de bord du réseau"

#: tpl/general/settings.tpl.php:128
msgid "No cloud services currently in use"
msgstr "Aucun service cloud n’est actuellement utilisé"

#: tpl/general/settings.tpl.php:116
msgid "Click to clear all nodes for further redetection."
msgstr "Cliquez pour effacer tous les nœuds pour une nouvelle détection."

#: tpl/general/settings.tpl.php:115
msgid "Current Cloud Nodes in Service"
msgstr "Nœuds cloud actuels en service"

#: tpl/general/settings.tpl.php:107
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Avantages de lier vers un compte QUIC.cloud"

#: tpl/general/settings.tpl.php:106
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Vous devez cliquer sur le bouton %s si vous souhaitez associer ce site à un compte QUIC.cloud."

#: tpl/general/settings.tpl.php:101
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Vous devez d’abord avoir %1$s avant de créer un lien vers QUIC.cloud."

#: tpl/general/settings.tpl.php:87
msgid "Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance."
msgstr "Veuillez vérifier que vos autres extensions ne bloquent pas les appels à l’API REST, mettez nos adresses IP sur une liste d’acceptation ou contactez l’administrateur/administratrice de votre serveur pour obtenir une assistance."

#: tpl/general/settings.tpl.php:86
msgid "Our %s was not allowlisted."
msgstr "Notre %s n’était pas en liste d’autorisation."

#: tpl/general/settings.tpl.php:85
msgid "The POST callback to %s failed."
msgstr "Le rappel de publication vers %s a échoué."

#: tpl/general/settings.tpl.php:84
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "Il y a deux raisons pour lesquelles nous pourrions ne pas être en mesure de communiquer avec votre domaine :"

#: tpl/general/settings.tpl.php:83
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Un problème est survenu lors de la récupération de votre clé de domaine. Veuillez cliquer sur le bouton %s pour réessayer."

#: tpl/general/settings.tpl.php:75 tpl/general/settings.tpl.php:77
#: tpl/general/settings.tpl.php:106
msgid "Link to QUIC.cloud"
msgstr "Lier à QUIC.cloud"

#: tpl/general/settings.tpl.php:73
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visitez mon tableau de bord sur QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Prochaine heure de demande disponible : <code>après %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Approuvé"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Demandé"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "En attente d’approbation"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "En attente d’actualisation"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Actualiser la clé de domaine"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:42
msgid "General Settings"
msgstr "Réglages généraux"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Spécifiez quels attributs des éléments HTML seront remplacés avec CDN Mapping."

#: src/admin-display.cls.php:231
msgid "Add new CDN URL"
msgstr "Ajouter une nouvelle URL de CDN"

#: src/admin-display.cls.php:230
msgid "Remove CDN URL"
msgstr "Supprimer l’URL du CDN"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Activez la fonctionnalité %s de l’API du CDN."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Pour activer la fonctionnalité suivante, activez l’API Cloudflare dans les réglages CDN."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "Pour gérer les options de QUIC.cloud, veuillez visiter"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "Réglages WooCommerce"

#: src/doc.cls.php:119 tpl/general/settings.tpl.php:86
msgid "Current Online Server IPs"
msgstr "IP actuelles du serveur en ligne"

#: src/doc.cls.php:118
msgid "Before generating key, please verify all IPs on this list are allowlisted"
msgstr "Avant de générer la clé, veuillez vérifier que toutes les IP de cette liste sont sur la liste d’autorisation."

#: src/doc.cls.php:117
msgid "For online services to work correctly, you must allowlist all %s server IPs."
msgstr "Pour que les services en ligne fonctionnent correctement, vous devez inscrire sur une liste d’autorisation toutes les adresses IP des serveurs %s."

#: src/gui.cls.php:545 src/gui.cls.php:705
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:97
msgid "LQIP Cache"
msgstr "Cache LQIP"

#: src/gui.cls.php:84
msgid "Private Cache Hits"
msgstr "Occurrence du cache privé"

#: src/gui.cls.php:83
msgid "Private Caches"
msgstr "Caches privés"

#: src/gui.cls.php:82
msgid "Public Cache Hits"
msgstr "Occurrences du cache public"

#: src/gui.cls.php:81
msgid "Public Caches"
msgstr "Caches publics"

#: src/admin-settings.cls.php:242 src/admin-settings.cls.php:276
msgid "Options saved."
msgstr "Options enregistrées."

#: src/img-optm.cls.php:1461
msgid "Removed backups successfully."
msgstr "Sauvegardes bien supprimées."

#: src/img-optm.cls.php:1399
msgid "Calculated backups successfully."
msgstr "Sauvegardes bien calculées."

#: src/img-optm.cls.php:1340
msgid "Rescanned %d images successfully."
msgstr "%d images ont bien été réanalysées."

#: src/img-optm.cls.php:1275 src/img-optm.cls.php:1340
msgid "Rescanned successfully."
msgstr "Bien été réanalysées."

#: src/img-optm.cls.php:1243
msgid "Destroy all optimization data successfully."
msgstr "Bien détruire toutes les données d’optimisation."

#: src/img-optm.cls.php:1172
msgid "Cleaned up unfinished data successfully."
msgstr "Bien nettoyé les données non finalisées."

#: src/img-optm.cls.php:1085
msgid "Pulled %d image(s)"
msgstr "Extrait %d image(s)"

#: src/img-optm.cls.php:1008
msgid "Optimized WebP file expired and was cleared."
msgstr "Le fichier WebP optimisé a expiré et a été effacé."

#: src/img-optm.cls.php:888
msgid "Pull Cron is running"
msgstr "Le tirage du cron est en cours d’exécution"

#: src/img-optm.cls.php:649
msgid "No valid image found by Cloud server in the current request."
msgstr "Aucune image valide trouvée par le serveur cloud dans la demande actuelle."

#: src/img-optm.cls.php:626
msgid "No valid image found in the current request."
msgstr "Aucune image valide trouvée dans la demande actuelle."

#: src/img-optm.cls.php:472
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s poussées vers le serveur Cloud, %2$s acceptées."

#: src/img-optm.cls.php:180
msgid "Gathered %d images successfully."
msgstr "%d images bien collectées."

#: src/img-optm.cls.php:147
msgid "No new image gathered."
msgstr "Aucune nouvelle image recueillie."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Âge maximal des révisions"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Nombre maximum de révisions"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "L’URL de débogage exclut"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "L’URL de débogage comprend"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Supprimer le domaine du plan de site"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Délai dépassé"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "Attribut HTML à remplacer"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Utiliser le mappage CDN"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "CDN QUIC.cloud"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "Éditeur Heartbeat TTL"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Éditeur Heartbeat"

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr "TTL du battement de cœur de l’interface d’administration"

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr "Contrôle du battement de cœur de l’interface d’administration"

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr "TTL du battement de cœur de l’interface publique"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr "Contrôle du battement de cœur de l’interface publique"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Chemin du .htaccess de l’interface d’administration"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Chemin .htaccess sur interface publique"

#: src/lang.cls.php:180
msgid "ESI Nonces"
msgstr "Nonces d’ESI"

#: src/lang.cls.php:176
msgid "WordPress Image Quality Control"
msgstr "Contrôle de la qualité des images WordPress"

#: src/lang.cls.php:171
msgid "Create WebP Versions"
msgstr "Créer les versions WebP"

#: src/lang.cls.php:168
msgid "Auto Pull Cron"
msgstr "Cron de traction automatique"

#: src/lang.cls.php:164
msgid "Generate LQIP In Background"
msgstr "Générer LQIP en arrière-plan"

#: src/lang.cls.php:162
msgid "LQIP Minimum Dimensions"
msgstr "Dimensions minimales de LQIP"

#: src/lang.cls.php:161
msgid "LQIP Quality"
msgstr "Qualité de LQIP"

#: src/lang.cls.php:160
msgid "LQIP Cloud Generator"
msgstr "Générateur de cloud de LQIP"

#: src/lang.cls.php:146
msgid "Gravatar Cache TTL"
msgstr "TTL du cache Gravatar"

#: src/lang.cls.php:145
msgid "Gravatar Cache Cron"
msgstr "Cron du cache Gravatar"

#: src/gui.cls.php:555 src/gui.cls.php:715 src/lang.cls.php:144
#: tpl/toolbox/purge.tpl.php:106
msgid "Gravatar Cache"
msgstr "Cache Gravatar"

#: src/lang.cls.php:127
msgid "DNS Prefetch Control"
msgstr "Contrôle du préfixe DNS"

#: src/lang.cls.php:122
msgid "Font Display Optimization"
msgstr "Optimisation de l’affichage des polices"

#: src/lang.cls.php:101
msgid "Force Public Cache URIs"
msgstr "Forcer les URL du cache public"

#: src/lang.cls.php:70
msgid "Notifications"
msgstr "Notifications"

#: src/lang.cls.php:58
msgid "Enable Cache"
msgstr "Activer la mise en cache"

#: src/lang.cls.php:54
msgid "Domain Key"
msgstr "Clé de domaine"

#: src/lang.cls.php:53
msgid "Server IP"
msgstr "IP du serveur"

#: src/lang.cls.php:33
msgid "Duplicate image files ignored"
msgstr "Fichiers d’image dupliqués ignorés"

#: src/lang.cls.php:23
msgid "Images not requested"
msgstr "Images non demandées"

#: src/cloud.cls.php:1184
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Synchronisation de l’allocation de crédit avec le serveur cloud bien effectuée."

#: src/cloud.cls.php:1073
msgid "Domain Key hash mismatch"
msgstr "Erreur de hachage de la clé de domaine"

#: src/cloud.cls.php:1002
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "Félicitations, votre clé de domaine a été approuvée ! Les réglages ont été définis en conséquence."

#: src/cloud.cls.php:951
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Demande de clé de domaine bien effectuée. Veuillez attendre le résultat. La clé de domaine sera automatiquement envoyée à votre WordPress."

#: src/cloud.cls.php:754 src/cloud.cls.php:932
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Échec de la communication avec le serveur QUIC.cloud"

#: src/cloud.cls.php:702
msgid "Good news from QUIC.cloud server"
msgstr "Bonnes nouvelles du serveur QUIC.cloud"

#: src/cloud.cls.php:686 src/cloud.cls.php:694 src/cloud.cls.php:943
msgid "Message from QUIC.cloud server"
msgstr "Message du serveur QUIC.cloud"

#: src/cloud.cls.php:551
msgid "Please try after %1$s for service %2$s."
msgstr "Veuillez essayer après %1$s pour le service %2$s."

#: src/cloud.cls.php:407
msgid "No available Cloud Node."
msgstr "Aucun nœud de cloud disponible."

#: src/cloud.cls.php:359 src/cloud.cls.php:372 src/cloud.cls.php:407
#: src/cloud.cls.php:432 src/cloud.cls.php:551 src/cloud.cls.php:907
msgid "Cloud Error"
msgstr "Erreur de cloud"

#: src/data.cls.php:219
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de données a été mise à niveau en arrière-plan depuis %s. Ce message disparaîtra une fois la mise à niveau terminée."

#: src/media.cls.php:339
msgid "Restore from backup"
msgstr "Restaurer depuis une sauvegarde"

#: src/media.cls.php:329
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:323
msgid "No backup of unoptimized WebP file exists."
msgstr "Aucune sauvegarde du fichier WebP non optimisé n’existe."

#: src/media.cls.php:310
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Fichier WebP réduit de %1$s (%2$s)"

#: src/media.cls.php:306
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Utilisation actuelle de la version originale (non optimisée) du fichier WebP."

#: src/media.cls.php:301
msgid "Currently using optimized version of WebP file."
msgstr "Utilisation actuelle d’une version optimisée du fichier WebP."

#: src/media.cls.php:285
msgid "Orig"
msgstr "Originale"

#: src/media.cls.php:282
msgid "(no savings)"
msgstr "(aucun enregistrement)"

#: src/media.cls.php:282
msgid "Orig %s"
msgstr "%s originaux"

#: src/media.cls.php:279
msgid "Congratulation! Your file was already optimized"
msgstr "Félicitations ! Votre fichier a déjà été optimisé"

#: src/media.cls.php:270
msgid "No backup of original file exists."
msgstr "Aucune sauvegarde du fichier original n’existe."

#: src/media.cls.php:270 src/media.cls.php:323
msgid "Using optimized version of file. "
msgstr "Utilisation de la version optimisée du fichier. "

#: src/media.cls.php:251 src/media.cls.php:305
msgid "(non-optm)"
msgstr "(non-optimisée)"

#: src/media.cls.php:247 src/media.cls.php:301
msgid "Click to switch to original (unoptimized) version."
msgstr "Cliquez pour passer à la version originale (non optimisée)."

#: src/media.cls.php:247
msgid "Currently using optimized version of file."
msgstr "Utilisation actuelle d’une version optimisée du fichier."

#: src/media.cls.php:246 src/media.cls.php:271 src/media.cls.php:300
#: src/media.cls.php:324
msgid "(optm)"
msgstr "(optimisée)"

#: src/placeholder.cls.php:138
msgid "LQIP image preview for size %s"
msgstr "Aperçu de l’image LQIP pour la taille %s"

#: src/placeholder.cls.php:80 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/admin-display.cls.php:1097
msgid "Invalid IP"
msgstr "IP non valide"

#: src/admin-display.cls.php:1069
msgid "Smaller than"
msgstr "Plus petit que"

#: src/admin-display.cls.php:1066
msgid "Larger than"
msgstr "Plus grand que"

#: src/admin-display.cls.php:1059
msgid "Zero, or"
msgstr "Zéro, ou"

#: src/admin-display.cls.php:1047
msgid "Maximum value"
msgstr "Valeur maximale"

#: src/admin-display.cls.php:1044
msgid "Minimum value"
msgstr "Valeur minimale"

#: src/admin-display.cls.php:1026
msgid "Path must end with %s"
msgstr "Le chemin doit finir par %s"

#: src/admin-display.cls.php:1009
msgid "Invalid rewrite rule"
msgstr "Règle de réécriture non valide"

#: src/admin-display.cls.php:939
msgid "currently set to %s"
msgstr "actuellement défini à %s"

#: src/admin-display.cls.php:131
msgid "Toolbox"
msgstr "Boîte à outils"

#: src/admin-display.cls.php:127
msgid "Database"
msgstr "Base de données"

#: src/admin-display.cls.php:115 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Tableau de bord"

#: src/error.cls.php:173
msgid "Unknown error"
msgstr "Erreur inconnue"

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "Le réglage %s est actuellement activé."

#: src/task.cls.php:120
msgid "Every Minute"
msgstr "Chaque minute"

#: tpl/general/settings.tpl.php:223
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activez cette option pour afficher automatiquement les dernières nouvelles, y compris les correctifs, les nouvelles versions, les versions bêta disponibles et les promotions."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Pour accorder un accès wp-admin à l’équipe de support de LiteSpeed, veuillez générer un lien sans mot de passe pour l’utilisateur actuellement connecté qui sera envoyé avec le rapport."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Les liens générés peuvent être gérés dans <a %s>Réglages</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Veuillez ne pas partager le lien sans mot de passe ci-dessus avec qui que ce soit."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Pour générer un lien sans mot de passe pour un accès à l’équipe de support de LiteSpeed, vous devez installer %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Installer"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Ces options sont uniquement disponibles avec LiteSpeed Enterprise Web Server ou QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr "Score PageSpeed"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr "Amélioré par"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr "Après"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr "Avant"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr "Temps de chargement de la page"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Pour utiliser les fonctions de mise en cache, vous devez avoir un serveur web LiteSpeed ou utiliser un CDN QUIC.cloud."

#: src/lang.cls.php:173
msgid "Preserve EXIF/XMP data"
msgstr "Conserver les données EXIF/XMP"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Try GitHub Version"
msgstr "Essayez la version GitHub"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si vous désactivez un des réglages ci-dessus, veuillez supprimer les types de fichiers correspondants de la boîte %s."

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr "Il est possible d’utiliser aussi bien des chaînes complètes que partielles."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Les images contenant ces noms de classes ne seront pas chargées en différé."

#: src/lang.cls.php:150
msgid "Lazy Load Image Class Name Excludes"
msgstr "Le nom de la classe d’image de chargement différé exclut"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Par exemple, %1$s définit un TTL de %2$s secondes pour %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Pour définir un TTL personnalisé pour une URL, ajoutez un espace suivi de la valeur TTL à la fin de l’URL."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Peut-être ultérieurement"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Activer la mise à niveau auto"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:62
msgid "Upgrade"
msgstr "Mettre à niveau"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "La nouvelle version %s est maintenant disponible."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "Nouvelle version disponible !"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Forum de support</a> | <a %s>Soumettre un ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Créé avec ❤️ par l’équipe LiteSpeed."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Bien sûr que j’adorerais évaluer !"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Merci d’utiliser l’extension LiteSpeed Cache !"

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr "Bien mis à niveau."

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr "Échec de mise à niveau."

#: src/conf.cls.php:704
msgid "Changed setting successfully."
msgstr "Réglage bien modifié."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "Exemple d’ESI pour les développeurs"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Remplacer %1$s avec %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Vous pouvez transformer les codes courts en blocs ESI."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW : cache privé vs. cache public"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Ajoutez des chaînes de requête %s aux ressources pour contourner cette action."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA sera automatiquement contourné."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "Pour explorer un cookie particulier, saisissez son nom et les valeurs que vous souhaitez explorer. Les valeurs doivent être uniques par ligne, et peuvent inclure une ligne vierge. Il y aura un robot explorateur créé par valeur de cookie, par rôle simulé."

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Valeurs de cookie"

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr "Nom de cookie"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Simulation de cookie"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utilisez la bibliothèque Web Font Loader pour charger les polices Google de manière asynchrone tout en laissant les autres CSS intacts."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activez cette option pour que LiteSpeed Cache soit mis à jour automatiquement, chaque fois qu’une nouvelle version est diffusée. Si inactif, mettre à jour manuellement comme d’habitude."

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr "Mettre à jour automatiquement"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Votre IP"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Réinitialisation effectuée."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Cela va réinitialiser tous les réglages à ceux par défaut."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Réinitialiser tous les réglages"

#: tpl/page_optm/settings_tuning.tpl.php:134
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Des fichiers CSS critiques distincts seront générés pour les chemins contenant ces chaînes."

#: src/lang.cls.php:135
msgid "Separate CCSS Cache URIs"
msgstr "Séparer les URL de ca CCSS"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Par exemple, si chaque page du site a un formatage différent, saisissez %s dans la case. Des fichiers CSS critiques distincts seront stockés pour chaque page du site."

#: tpl/page_optm/settings_tuning.tpl.php:119
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Énumérer les types de publication où chaque élément de ce type devrait avoir son propre CCSS généré."

#: src/lang.cls.php:134
msgid "Separate CCSS Cache Post Types"
msgstr "Séparer le cache du CCSS par type de publication."

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr "Liste des tailles dans la file d’attente en attente de cron"

#: tpl/page_optm/settings_media.tpl.php:158
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si défini à %1$s, avant que le texte indicatif ne soit localisé, la configuration %2$s sera utilisée."

#: tpl/page_optm/settings_media.tpl.php:156
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Générer automatiquement LQIP en arrière-plan via une file d’attente basée sur cron."

#: tpl/page_optm/settings_media.tpl.php:62
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Ceci générera le texte indicatif avec les mêmes tailles que l’image si elle a des attributs largeur et hauteur."

#: tpl/page_optm/settings_media.tpl.php:61
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Les textes indicatif d’image responsive peuvent aider à réduire le remaniement de la mise en page lorsque les images sont chargées."

#: src/lang.cls.php:157
msgid "Responsive Placeholder"
msgstr "Texte indicatif responsive"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Ceci supprimera tous les fichiers indicatif LQIP d’image générés"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Veuillez activer LiteSpeed Cache dans les réglages de l’extension."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Veuillez activer le module LSCache au niveau du serveur ou demandez à votre hébergeur."

#: src/cloud.cls.php:634 src/cloud.cls.php:650
msgid "Failed to request via WordPress"
msgstr "Échec de la requête via WordPress"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Mise en cache des pages haute performance et optimisation du site à partir de LiteSpeed"

#: src/img-optm.cls.php:1776
msgid "Reset the optimized data successfully."
msgstr "Bien réinitialiser les données optimisées."

#: src/gui.cls.php:781
msgid "Update %s now"
msgstr "Lettre à jour %s maintenant"

#: src/gui.cls.php:776
msgid "View %1$s version %2$s details"
msgstr "Voir les détails de la %1$s version %2$s"

#: src/gui.cls.php:773
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>Voir les détails de la version %3$s</a> ou <a href=\"%4$s\" %5$s target=\"_blank\">mettre à jour maintenant</a>."

#: src/gui.cls.php:753
msgid "Install %s"
msgstr "Installer %s"

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr "Images précédemment optimisées"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "Les fonctions de mise en cache de LSCache sur cette page sont actuellement indisponibles !"

#: src/cloud.cls.php:711
msgid "%1$s plugin version %2$s required for this action."
msgstr "Extension %1$s version %2$s nécessaire pour cette action."

#: src/cloud.cls.php:673
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Nous travaillons dur pour améliorer votre expérience de service en ligne. Le service sera indisponible pendant que nous travaillons. Nous nous excusons pour tout inconvénient."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Supprimer automatiquement les sauvegarde d’image après récupération des images optimisées."

#: src/lang.cls.php:170
msgid "Remove Original Backups"
msgstr "Supprimer les sauvegardes d’originales"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Demander automatiquement l’optimisation via tâche cron."

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr "Une sauvegarde de chaque image est enregistrée avant d’être optimisée."

#: src/img-optm.cls.php:1656
msgid "Switched images successfully."
msgstr "Commutation d’image réussie."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Cela peut améliorer la qualité, mais peut entraîner des images plus grandes que la compression avec perte."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimiser les images en utilisant la compression sans perte."

#: src/lang.cls.php:172
msgid "Optimize Losslessly"
msgstr "Optimiser sans perte"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Demander les versions WebP des images originales lors de l’optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiser les images et enregistrer les sauvegardes des originaux dans le même dossier."

#: src/lang.cls.php:169
msgid "Optimize Original Images"
msgstr "Optimiser les images originales"

#: tpl/page_optm/settings_css.tpl.php:174
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Lorsque cette option est définie à %s, elle chargera également les polices Google de manière asynchrone."

#: src/purge.cls.php:230
msgid "Cleaned all Critical CSS files."
msgstr "Nettoyé tous les fichiers CSS critiques."

#: tpl/page_optm/settings_css.tpl.php:256
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Ceci mettra en ligne la bibliothèque CSS asynchrone pour éviter le blocage du rendu."

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr "Librairie CSS Async en ligne"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr "Exécuter la file d’attente manuellement"

#: tpl/page_optm/settings_css.tpl.php:97 tpl/page_optm/settings_css.tpl.php:207
msgid "URL list in %s queue waiting for cron"
msgstr "Liste d’URL dans la file d’attente de cron"

#: tpl/page_optm/settings_css.tpl.php:85 tpl/page_optm/settings_css.tpl.php:195
msgid "Last requested cost"
msgstr "Dernier coût demandé"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:82
#: tpl/page_optm/settings_css.tpl.php:192
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr "Dernier généré"

#: tpl/page_optm/settings_media.tpl.php:162
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si défini sur %s, cela se fait au premier plan, ce qui peut ralentir le chargement de la page."

#: tpl/page_optm/settings_css.tpl.php:173
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Générer automatiquement des CSS critiques en arrière-plan via une file d’attente à base de cron."

#: tpl/page_optm/settings_css.tpl.php:169
msgid "Optimize CSS delivery."
msgstr "Optimiser la livraison CSS."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "Cela supprimera tous les fichiers CSS critiques générés"

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "CSS critique"

#: src/doc.cls.php:36
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "Ce site utilise la mise en cache afin de faciliter un temps de réponse plus rapide et une meilleure expérience utilisateur. La mise en cache stocke potentiellement une copie de chaque page web affichée sur ce site. Tous les fichiers de cache sont temporaires et ne sont jamais accessibles à un tiers, sauf si cela est nécessaire pour obtenir le support technique du fournisseur de l’extension de cache. Les fichiers cache expirent selon une planification fixée par l’administrateur du site, mais peuvent facilement être purgés par l’administrateur avant leur expiration naturelle, si nécessaire."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Désactiver cela peut entraîner l’arrêt des tâches WordPress déclenchées par AJAX."

#: src/utility.cls.php:236
msgid "right now"
msgstr "tout de suite"

#: src/utility.cls.php:236
msgid "just now"
msgstr "juste maintenant"

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr "Enregistré"

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Dernière exécution"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "Vous ne pourrez pas annuler l’optimisation une fois les sauvegardes supprimées !"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr "C’est irréversible."

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr "Supprimer les sauvegardes de l’image originale"

#: tpl/img_optm/summary.tpl.php:255
msgid "Are you sure you want to remove all image backups?"
msgstr "Confirmez-vous vouloir la suppression de toutes les sauvegardes d’image ?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr "Fichiers"

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr "Dernier calculé"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calculer le stockage des images originales"

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr "Optimisation du stockage"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Activer le remplacement de WebP dans les éléments %s qui ont été générés en dehors de la logique WordPress."

#: src/lang.cls.php:175
msgid "WebP For Extra srcset"
msgstr "WebP pour srcset extra"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Utilisez le format %1$s ou %2$s (élément est facultatif)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Ne seront remplacés uniquement les attributs listés ici."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Spécifiez quels attributs d’élément seront remplacés avec WebP."

#: src/lang.cls.php:174
msgid "WebP Attribute To Replace"
msgstr "Attribut WebP à remplacer"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Uniquement les fichiers de ces répertoires seront dirigés vers le CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Répertoires inclus"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Une purge de tout sera exécutée lorsque WordPress exécute ces crochets."

#: src/lang.cls.php:182
msgid "Purge All Hooks"
msgstr "Purger tous les crochets"

#: src/purge.cls.php:192
msgid "Purged all caches successfully."
msgstr "Tous les caches ont bien été purgés."

#: src/gui.cls.php:479 src/gui.cls.php:579 src/gui.cls.php:629
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:423
msgid "Forced cacheable"
msgstr "Mise en cache forcée"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Les chemins contenant ces chaînes de caractères seront mis en cache sans tenir compte des réglages de non mise en cache."

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr "Forcer la mise en cache des URL"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Réglages d’exclusion"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Ceci désactivera LSCache et toutes les fonctionnalités d’optimisation à des fins de débogage."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Désactiver toutes les fonctionnalités"

#: src/gui.cls.php:506 src/gui.cls.php:666 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Cache Opcode"

#: src/gui.cls.php:487 src/gui.cls.php:637 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "Cache CSS/JS"

#: src/gui.cls.php:734 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr "Supprimer toutes les requêtes d’optimisation d’images inachevées."

#: src/gui.cls.php:735 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr "Nettoyage des données inachevées"

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr "Images qui ont échoué avec d’autres erreurs"

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr "Images avec fausse méta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Rejoignez-nous sur Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Rejoignez la communauté %s."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Souhaitez-vous vous connecter avec les autres utilisateurs LitePeed ?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Obtenez-le à partir de <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:202
msgid "Your API key / token is used to access %s APIs."
msgstr "Votre clé/jeton d’API est utilisé pour accéder aux APIS %s."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Votre adresse de messagerie sur %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Utiliser la fonctionnalité d’API %s."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Pour rendre le nom d’hôte CDN aléatoire, définissez plusieurs noms d’hôte pour les mêmes ressources."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Rejoindre la communauté Slack LieteSpeed"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visiter le forum de support LSCWP"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Évaluer %s sur %s"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr "Images notifiées à tirer"

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr "Fichiers image manquants"

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr "Qu’est-ce qu’un groupe ?"

#: src/admin-display.cls.php:1165
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1162
msgid "%s group"
msgstr "%s groupe"

#: src/admin-display.cls.php:1152
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1149
msgid "%s groups"
msgstr "%s groupes"

#: src/crawler.cls.php:826
msgid "Guest"
msgstr "Hôte"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Pour crawler le site comme utilisateur connecté, saisissez les ID utilisateur à simuler."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Simulation de rôle"

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr "exécution"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Taille"

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr "Raison pour laquelle c’est terminé"

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr "Dernier intervalle"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr "Le crawler actuel a démarré le"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Durée d’exécution du précédent robot explorateur"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d secondes"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Durée de dernière exécution complète pour tous les robots explorateurs"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Le crawl de plan de site actuel a commencé le"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Enregistrer les transients dans la base de données lorsque %1$s est %2$s."

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr "Stocker les transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "Si %1$s est %2$s, alors %3$s doit être renseigné !"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Valeur max. de serveur autorisée"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Valeur imposée par le serveur"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Valeur min. de serveur autorisée"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTE"

#: src/admin-display.cls.php:1118
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable·s de serveur %s disponible·s pour surpasser ce réglage."

#: src/admin-display.cls.php:1117 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:176
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:165
#: tpl/page_optm/settings_tuning.tpl.php:186
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:379
msgid "Reset the entire opcode cache successfully."
msgstr "Bien réinitialiser l’ensemble du cache opcode."

#: src/purge.cls.php:367
msgid "Opcode cache is not enabled."
msgstr "Le cache opcode n’est pas activé."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Fichier de réglages %s bien importé."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Échec de l’import du à une erreur fichier."

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Comment corriger les problèmes dus à l’optimisation du CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Cela va générer des requêtes supplémentaires au serveur, ce qui augmentera la charge du serveur."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a visitor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Lorsqu’un visiteur survole un lien de page, précharger cette page. Cela accélérera la visite de ce lien."

#: src/lang.cls.php:184
msgid "Instant Click"
msgstr "Clic instantané"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Réinitialiser l’intégralité du cache opcode"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Cela va importer les réglages via un fichier et remplacer tous les réglages LiteSpeed Cache actuels."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Dernier importé"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importer"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Importer des réglages"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Cela exportera tous les réglages actuels de LiteSpeed Cache et les enregistrera en tant que fichier."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Dernier exporté"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exporter"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Exporter les réglages"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Importer/exporter"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilisez des connexions persistantes pour accélérer les opérations de cache."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Base de données à utiliser"

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr "ID de base de données Redis"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Précisez le mot de passe utilisé pour la connexion."

#: src/lang.cls.php:88
msgid "Password"
msgstr "Mot de passe"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Uniquement disponible lorsque %s est installé."

#: src/lang.cls.php:87
msgid "Username"
msgstr "Nom d’utilisateur"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Votre nom d’hébergeur ou adresse IP de %s."

#: src/lang.cls.php:83
msgid "Method"
msgstr "Méthode"

#: src/purge.cls.php:420
msgid "Purge all object caches successfully."
msgstr "Bien purger tous les caches d’objets."

#: src/purge.cls.php:407
msgid "Object cache is not enabled."
msgstr "Cache d’objet non activé."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Améliorez la vitesse de wp-admin grâce à la mise en cache. (peut rencontrer des données expirées)"

#: src/lang.cls.php:93
msgid "Cache WP-Admin"
msgstr "Mettre en cache wp-admin"

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr "Connexion persistante"

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr "Ne pas mettre en cache les groupes"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groupes mis en cache au niveau du réseau."

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr "Groupes globaux"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Test de connexion"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "Extension %s"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr "État"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "TTL par défaut pour les objets mis en cache."

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr "Durée de vie de l'objet par défaut"

#: src/lang.cls.php:85
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:84
msgid "Host"
msgstr "Hébergeur"

#: src/gui.cls.php:496 src/gui.cls.php:656 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Mise en cache d’objet"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Échouée"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Réussie"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Non disponible"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Purger tous les caches d'objets"

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr "Échec de communication avec Cloudflare"

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr "Bien communiqué avec Cloudflare."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "Aucune zone Cloudflare disponible"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Bien notifié Cloudflare de tout purger."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "L’API Cloudflare est définie à inactif."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Bien notifié Cloudflare de définir le mode développement à %s."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Une fois enregistré, il sera harmonisé avec la liste actuelle et complété automatiquement."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "Vous pouvez saisir juste une partie du domaine."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Domaine"

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "API Cloudflare"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Tout purger"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cache Cloudflare"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Le mode développement sera automatiquement désactivé après trois heures."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Ignorer temporairement le cache Cloudflare. Cela permet de voir en temps réel les modifications apportées au serveur d'origine."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Le mode développement sera automatiquement désactivé dans %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "L’état actuel est %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "L’état actuel est %1$s depuis %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Vérifier l’état"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Désactiver"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Activer"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Mode développement"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Zone Cloudflare"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Domaine Cloudflare"

#: src/gui.cls.php:646 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "Par exemple"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Le pré-chargement des DNS peut réduire la latence pour les visiteurs."

#: src/lang.cls.php:126
msgid "DNS Prefetch"
msgstr "Pré-chargement des DNS"

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Ajout de style à vos images chargées en différé"

#: src/admin-display.cls.php:980 src/admin-display.cls.php:985
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Valeur par défaut"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Liens de type de fichier statique à remplacer par des liens CDN."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Par exemple, pour supprimer les paramètres commençant par %s, %s peut être utilisé ici."

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr "Supprimer la chaîne de requête"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activez cette option si vous utilisez HTTP et HTTPS sur le même domaine et que vous remarquez des irrégularités de cache."

#: src/lang.cls.php:183
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Améliorer la compatibilité HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:378
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Supprimer toutes les requêtes/résultats d'optimisation d'image précédentes, annulez les optimisations terminées et supprimer tous les fichiers d'optimisation."

#: tpl/img_optm/summary.tpl.php:374
msgid "Destroy All Optimization Data"
msgstr "Détruire toutes les données d’optimisation"

#: tpl/img_optm/summary.tpl.php:324
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Rechercher toute nouvelle taille de miniature d'image non optimisée et renvoyez les requêtes d'optimisation d'image nécessaires."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Cela augmentera la taille des fichiers optimisés."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Conserver les données EXIF (copyright, GPS, commentaires, mots clés, etc.) lors de l'optimisation."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Effacer le journal"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Pour tester le panier, visitez la <a %s>FAQ</a>."

#: src/utility.cls.php:239
msgid " %s ago"
msgstr "il y a %s"

#: src/media.cls.php:315
msgid "WebP saved %s"
msgstr "WebP économisé %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si vous rencontrez des problèmes, veuillez vous reporter au numéro de rapport dans votre message de support."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Cela générera également une clé d’API à partir du serveur LiteSpeed."

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr "Dernier tirage initié par cron à %s."

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Les images seront tirées automatiquement si la tâche cron est en cours d’exécution."

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr "N'appuyez sur le bouton que si la tâche cron de tirage est désactivée."

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr "Tirer les images"

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr "Ce processus est automatique."

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr "Dernière requête"

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr "Tirage des images échoué"

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr "Les images n'ont pas pu être récupérées"

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr "Images tirées"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Rapport"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Envoyez ce rapport à LiteSpeed. Référez-vous à ce numéro de rapport lorsque vous publiez sur le forum de support WordPress."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Envoyer à LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Date de rapport"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Numéro de rapport"

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr "Mettre en cache privé le panier lorsqu'il n'est pas vide."

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr "Mettre en cache privé le panier"

#: src/media.cls.php:196
msgid "LiteSpeed Optimization"
msgstr "Optimisation de LiteSpeed"

#: src/lang.cls.php:131
msgid "Load Google Fonts Asynchronously"
msgstr "Charger les Google Fonts de manière asynchrone"

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr "TTL du cache navigateur"

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Les résultats peuvent être vérifiés dans la <a %s> bibliothèque des médias</a>."

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Apprendre plus"

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr "Images optimisées et tirées"

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr "Images demandées"

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr "Images pas encore demandées"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr "Images totales"

#: src/img-optm.cls.php:1713
msgid "Switched to optimized file successfully."
msgstr "Commuté pour bien optimiser le fichier."

#: src/img-optm.cls.php:1706
msgid "Restored original file successfully."
msgstr "Fichier original bien restauré."

#: src/img-optm.cls.php:1690
msgid "Enabled WebP file successfully."
msgstr "Fichier WebP bien activé."

#: src/img-optm.cls.php:1684
msgid "Disabled WebP file successfully."
msgstr "Fichier WebP bien désactivé."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Désactiver cela stoppera la tâche cron responsable de la récupération des images optimisées à partir du serveur d’images QUIC.cloud."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Améliorez significativement le temps de chargement en remplaçant les images par leurs versions %s optimisées."

#: src/lang.cls.php:188
msgid "Image WebP Replacement"
msgstr "Remplacement de l'image WebP"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Les rôles sélectionnés seront exclus du cache."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Personnalisation"

#: tpl/page_optm/settings_tuning.tpl.php:228
msgid "Selected roles will be excluded from all optimizations."
msgstr "Les rôles sélectionnés seront exclus de toutes les optimisations."

#: src/lang.cls.php:142
msgid "Role Excludes"
msgstr "Rôle exclu"

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Réglages de personnalisation"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si l’identifiant d’étiquette n’est pas trouvé, l’étiquette sera retirée de la liste à l’enregistrement."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si le nom de la catégorie n’est pas trouvé, la catégorie sera retirée de la liste lors de l’enregistrement."

#: tpl/img_optm/summary.tpl.php:117
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Une fois que le serveur d’optimisation d’images QUIC.cloud a terminé l’optimisation, il demandera à votre site de tirer les images optimisées."

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr "Envoyer une requête d’optimisation"

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr "Information d’image"

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr "Réduction totale"

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr "Résumé d’optimisation"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimisation d’image LiteSpeed Cache"

#: src/admin-display.cls.php:123 src/gui.cls.php:612
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr "Optimisation d’image"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "JS différé exclut"

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Par exemple, %s peut être utilisé pour un texte indicatif transparent."

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr "Par défaut une image indicative grise %s sera utilisée."

#: tpl/page_optm/settings_media.tpl.php:46
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Cela peut être défini dans %2$s comme utilisant la constante %1$s, en prenant ce réglage en priorité."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Précisez une image base64 à utiliser comme indicative pendant que les autres images terminent de charger."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:167
#: tpl/page_optm/settings_tuning.tpl.php:188
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Les éléments avec l’attribut %s dans le code html seront exclus."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:166
#: tpl/page_optm/settings_tuning.tpl.php:187
msgid "Filter %s is supported."
msgstr "Le filtre %s est supporté."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Les images listées ne seront pas chargées lentement."

#: src/lang.cls.php:149
msgid "Lazy Load Image Excludes"
msgstr "Exclut l’image du chargement lent"

#: src/gui.cls.php:456
msgid "No optimization"
msgstr "Aucune optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:202
msgid "Prevent any optimization of listed pages."
msgstr "Empêche toute optimisation des pages listées."

#: src/lang.cls.php:140
msgid "URI Excludes"
msgstr "URI exclut"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Stopper le chargement d’emoji WordPress.org. Les emojis par défaut du navigateur seront affichés à la place."

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr "À la fois les URL complètes et les chaînes partielles peuvent être utilisées."

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr "Chargez les iframes uniquement lorsqu'elles entrent dans la fenêtre d'affichage."

#: src/lang.cls.php:165
msgid "Lazy Load Iframes"
msgstr "Chargement différé des iframes"

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Cela peut améliorer le temps de chargement de la page en réduisant les requêtes HTTP initiales."

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr "Charger les images uniquement lorsqu’elles entrent dans la fenêtre d’affichage."

#: src/lang.cls.php:148
msgid "Lazy Load Images"
msgstr "Chargement différé des images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr "Réglages des médias"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "Par exemple, pour %s, %s et %s peuvent être utilisés ici."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s pris en charge (correspond à zéro ou plusieurs caractères). Par exemple, pour faire correspondre %2$s et %3$s, utilisez %4$s."

#: src/admin-display.cls.php:1133
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Pour correspondre au début, ajoutez %s au début de l'élément."

#: src/admin-display.cls.php:1131
msgid "For example, for %s, %s can be used here."
msgstr "Par exemple, pour %s, %s peut être utilisé ici."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Peut-être plus tard"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "J’ai déjà laissé une évaluation"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Bienvenue chez LiteSpeed"

#: src/lang.cls.php:138
msgid "Remove WordPress Emoji"
msgstr "Retirer les emoji WordPress"

#: src/gui.cls.php:464
msgid "More settings"
msgstr "Plus de réglages"

#: src/gui.cls.php:445
msgid "Private cache"
msgstr "Cache privé"

#: src/gui.cls.php:434
msgid "Non cacheable"
msgstr "Impossible à mettre en cache"

#: src/gui.cls.php:411
msgid "Mark this page as "
msgstr "Marquer cette page comme"

#: src/gui.cls.php:403
msgid "Purge this page"
msgstr "Purger cette page"

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr "Charger le JS en diféré"

#: tpl/page_optm/settings_tuning.tpl.php:148
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Spécifiez les règles CSS critiques pour le contenu au-dessus du pli lorsque vous activez %s."

#: src/lang.cls.php:133
msgid "Critical CSS Rules"
msgstr "Règles CSS critiques"

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:148
msgid "Load CSS Asynchronously"
msgstr "Charger le CSS de manière asynchrone"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Empêcher les polices Google de charger sur toutes vos pages."

#: src/lang.cls.php:132
msgid "Remove Google Fonts"
msgstr "Retirer les polices Google"

#: tpl/page_optm/settings_css.tpl.php:170
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Cela peut améliorer votre score de vitesse dans des services tels que Pingdom, GTmetrix et PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:79
msgid "Remove query strings from internal static resources."
msgstr "Retirer les chaines de requête des ressources statiques internes."

#: src/lang.cls.php:130
msgid "Remove Query Strings"
msgstr "Retirer les chaînes de requête"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "agents utilisateur"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "Vous pouvez aussi activer la mise en cache du navigateur dans l’admin serveur. <a %s>En apprendre plus sur les réglages du cache navigateur LiteSpeed</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "La mise en cache du navigateur stocke les fichiers statiques localement dans le navigateur de l'utilisateur. Activez ce réglage pour réduire les requêtes répétées de fichiers statiques."

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr "Cache navigateur"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "étiquettes"

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr "Ne pas mettre en cache les étiquettes"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "Pour exclure %1$s, insérez %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "catégories"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "Pour éviter que les %s soient mises en cache, saisissez-les ici."

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr "Ne pas mettre en cache les catégories"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "Les chaînes de requête contenant ces paramètres ne seront pas mises en cache."

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr "Ne pas mettre en cache les chaînes de requête"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Les chemins contenant ces chaînes de requête ne seront pas mis en cache."

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr "Ne pas mettre en cache les URI"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "Les journaux seront sortis en %s."

#: src/admin-display.cls.php:1135 src/doc.cls.php:74
msgid "One per line."
msgstr "Une par ligne."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Les chemins d’URI contenant ces chaînes ne seront pas mis en cache comme publics."

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr "URI mises en cache privées"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Les chemins contenant ces chaînes ne seront pas servis par le CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Exclure le chemin"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Cela va affecter toutes les balises contenant les attributs : %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Inclure les types de fichier"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir tous les fichiers JavaScript via le CDN. Cela affectera tous les fichiers JavaScript WP en file d’attente."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Inclure le JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir tous les fichiers CSS via le CDN. Cela affectera tous les fichiers CSS WP en file d’attente."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Inclure le CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Servir tous les fichiers d’image via le CDN. Cela affectera toutes les pièces jointes, les balises HTML %s et les attributs CSS %s."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Inclure les images"

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr "URL de CDN à utiliser. Par exemple : %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "L’URL du site à servir via le CDN. À partir de %1$s. Par exemple : %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "URL originales"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "Réglage du CDN"

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:233 src/admin-display.cls.php:838
#: src/admin-display.cls.php:865 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:72 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "Inactif"

#: src/admin-display.cls.php:232 src/admin-display.cls.php:837
#: src/admin-display.cls.php:866 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:174
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "Actif"

#: src/purge.cls.php:351
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Serveur web LiteSpeed notifié de purger les entrées CSS/JS."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minifier le contenu HTML."

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr "Minifier  le HTML"

#: src/lang.cls.php:129
msgid "JS Excludes"
msgstr "JS exclu"

#: src/data.upgrade.func.php:101 src/lang.cls.php:115
msgid "JS Combine"
msgstr "Combiner JS"

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr "Minifier JS"

#: src/lang.cls.php:128
msgid "CSS Excludes"
msgstr "CSS exclu"

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr "Combiner CSS"

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr "Minifier CSS"

#: tpl/page_optm/entry.tpl.php:31
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Veuillez effectuer un test approfondi lorsque vous activez une option dans cette liste. Après avoir modifié les réglages Minifier/Combiner, veuillez faire une purge totale."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Cela purgera uniquement toutes les entrées CSS/JS minifiées/combinées."

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purger les erreurs %s"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Optimiseur de base de données"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimiser toutes les tables dans votre base de données"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimiser les tables"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Nettoyer toutes les options de transient"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Tous les transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Nettoyer les options de transient expirées"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Transients expirés"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Nettoyer tous les rétroliens et pings"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Rétroliens/pings"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Nettoyer tous les commentaires mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Commentaires mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Nettoyer tous les commentaires indésirables"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Commentaires indésirables"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Nettoyer tous les articles et pages mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Articles mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Nettoyer tous les brouillons auto-enregistrés"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Brouillons auto"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Nettoyer toutes les révisions d’article"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Révisions d’article"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Tout nettoyer"

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr "Optimisé toutes les tables."

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr "Tous les transients ont bien été nettoyés."

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr "Les transients expirés ont bien été nettoyés."

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Les rétroliens et pings ont bien été nettoyés."

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr "Les commentaires mis à la corbeille ont bien été nettoyés."

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr "Les commentaires indésirables ont bien été nettoyés."

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr "Articles et pages mis à la corbeille bien nettoyés."

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr "Les brouillons auto ont bien été nettoyés."

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr "Les révisions d’article ont bien été nettoyées."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Tout a bien été nettoyé."

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr "TTL cache privé par défaut"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si votre site contient du contenu public que certains rôles utilisateur peuvent voir, mais que d’autres rôles ne peuvent pas, vous pouvez spécifier un groupe variable pour ces rôles utilisateur. Par exemple, la spécification d’un groupe variable par l’administrateur permet d’avoir une page distincte en cache publique adaptée aux administrateurs (avec des liens \"modifier\", etc.), tandis que tous les autres rôles utilisateur voient la page publique par défaut."

#: src/lang.cls.php:181 tpl/page_optm/settings_css.tpl.php:110
#: tpl/page_optm/settings_css.tpl.php:220
msgid "Vary Group"
msgstr "Varier le groupe"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Mettre en cache le bloc ESI de formulaire de commentaires intégré."

#: src/lang.cls.php:179
msgid "Cache Comment Form"
msgstr "Mettre en cache le formulaire de commentaire"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr "Mettre en cache le bloc ESI de barre d’administration intégré."

#: src/lang.cls.php:178
msgid "Cache Admin Bar"
msgstr "Mettre en cache la barre d’administration"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Activer la mise en cache des pages publiques pour les utilisateurs connectés et servir la barre d’administration et le formulaire de commentaire via des blocs ESI. Ces deux blocs ne seront pas mis en cache, sauf s’ils sont activés ci-dessous."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI vous permet de désigner des parties de votre page dynamique comme des fragments séparés qui sont ensuite assemblés pour créer la page entière. En d’autres termes, ESI vous permet de « percer des trous » dans une page, puis de remplir ces trous avec un contenu qui peut être mis en cache en privé, mis en cache publiquement avec son propre TTL ou non mis en cache du tout."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Avec ESI (Edge Side Includes), les pages peuvent être envoyées à partir du cache pour les utilisateurs connectés."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privé"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Publique"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purger les réglages"

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr "Ressources PHP de cache"

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Le niveau avancé enregistrera plus de détails."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basique"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La charge moyenne maximale du serveur est autorisée lors de l’exploration. Le nombre de threads de robot explorateur en cours d’utilisation sera activement réduit jusqu'à ce que la charge moyenne du serveur tombe sous cette limite. Si cela ne peut pas être réalisé avec un seul thread, l’exécution du robot explorateur actuel sera terminée."

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr "Mettre en cache la page de connexion"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Mettre en cache les requêtes effectuées par les appels de l’API REST WordPress."

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr "Mettre en cache l’API REST."

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Mettre en cache privé les commentateurs qui ont des commentaires en attente. La désactivation de cette option servira les pages ne pouvant pas être mises en cache aux commentateurs. (LSWS %s nécessaire)"

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr "Mettre en cache les commentateurs"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Mettre en cache privé les pages interface utilisateur pour les utilisateurs connectés. (LSWS %s nécessaire)"

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr "Mettre en cache les utilisateurs connectés"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Mettre en cache les réglages de contrôle"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Exclure"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:142
msgid "Purge"
msgstr "Purger"

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Règle de cache inattendue %2$s trouvée dans le fichier %1$s. Cette règle peut amener les visiteurs à voir d’anciennes versions de pages en raison de la mise en cache des pages HTML par le navigateur. Si vous êtes sûr que des pages HTML ne sont pas mises en cache par le navigateur, ce message peut être ignoré.(<a %3$s>En apprendre plus</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "L’heure actuelle du serveur est %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Précisez l’heure pour purger la liste \"%s\"."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "À la fois %1$s et %2$s sont acceptables."

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Heure de purge planifiée"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "Les URLs ci-dessus (une par ligne) seront automatiquement purgées à l’heure fixée dans l’option \"%s\"."

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Purge planifiée d’URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Raccourcir les chaînes de requêtes dans le journal de débogage pour améliorer la lisibilité."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Valeurs de cookie de demande de journal."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Battement de cœur"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "Mo"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Limite de taille de fichier journal"

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Veuillez ajouter/remplacer les codes suivants dansle début de %1$s:</p> %2$s"

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr "Le fichier %s n’est pas inscriptible."

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr "Le fichier %s n’est pas lisible."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Réduire les chaînes de requêtes"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Activer les cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "Réglages ESI"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 indique de ne pas mettre en cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valeur recommandée : 28800 secondes (8 heures)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget de cache TTL :"

#: src/lang.cls.php:177 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Activer ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Voyez <a %s>Introduction pour l’activation du robot explorateur</a> pour les informations détaillées."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Plan de site personnalisé"

#: tpl/toolbox/purge.tpl.php:244
msgid "Purge pages by relative or full URL."
msgstr "Purger les pages par URL relative ou complète."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La fonctionnalité de robot explorateur n’est pas activée sur le serveur LiteSpeed. Veuillez consulter votre administrateur serveur ou votre hébergeur."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:165
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "Attention"

#: tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Dernier crawlé :</b> %s élément(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "Le prochain crawl complet de plan de site débutera le"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Impossible d'écrire sur %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "Le dossier n’est pas inscriptible : %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Impossible de créer un dossier : %1$s. Erreur : %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "Le dossier n’existe pas : %s"

#: src/core.cls.php:296
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Serveur LiteSpeed notifié pour tout purger."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Veuillez visiter la page <a %s>d’informations</a> sur la façon de tester le cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Autorise les IPs listées (une par ligne) à réaliser certaines actions depuis leurs navigateurs."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Limite de chargement du serveur"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Spécifiez le nombre de threads à utiliser lors du crawl."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Spécifiez combien de temps en secondes avant que le crawler initie un nouveau crawl entier du plan de site."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Intervalle de crawl"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Intervalle entre chaque exécution"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Spécifiez le temps en secondes pour la durée de l’intervalle de crawl."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Spécifiez le temps en microsecondes pour le délai entre requêtes durant une exploration."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microsecondes"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Ensuite, un autre WordPress est installé (non multisite) sur %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Réglages de cache de réseau LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Sélectionnez ci-dessous pour les options « purger par »."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "CDN LiteSpeed Cache"

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr "Encore aucun fichier méta de crawler généré"

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr "Afficher l’état du crawler"

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr "Voir l’état de crawler"

#: tpl/crawler/summary.tpl.php:191
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Veuillez voir <a %s>Connexion de WP-Cron au planificateur de tâches du système</a> pour apprendre comment créer le système de tâche cron."

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La fréquence d’exécution est définie par le réglage d’intervalle entre exécutions."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Exécution manuelle"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Réinitialiser la position"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Fréquence d’exécution"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Nom du cron"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Cron du crawler"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d heure"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d heures"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Généré dans %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "Crawler LiteSpeed Cache"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Fils de discussion"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Durée d’exécution"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Délai"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "S’il y a des questions, l’équipe est toujours heureuse d’y répondre sur le<a %s>forum de support</a>."

#: src/admin-display.cls.php:129 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:626
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Notifié le serveur web LiteSpeed de purger toutes les pages."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Toutes les pages avec le widget des articles récents"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Cela purgera uniquement les pages"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purger les pages"

#: thirdparty/woocommerce.content.tpl.php:78
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "Par exemple, si la page d’accueil du site est située %1$s, la page de la boutique peut être située %2$s."

#: src/css.cls.php:533
msgid "Cancel"
msgstr "Effacer"

#: tpl/crawler/summary.tpl.php:125
msgid "Activate"
msgstr "Activer"

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Adresse de messagerie"

#: tpl/general/settings.tpl.php:100
msgid "Warning"
msgstr "Avertissement"

#: src/gui.cls.php:754
msgid "Install Now"
msgstr "Installer maintenant"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purgé l’url !"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purgé le blog !"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Tout purgé !"

#: src/purge.cls.php:645
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notifié LiteSpeed ​​Web Server de purger les pages d'erreur."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si vous utilisez OpenLiteSpeed, le serveur doit être redémarré une fois pour que les modifications prennent effet."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Si non, veuillez vérifier le réglage dans l’<a href=\"%1$s\">onglet Avancé</a> ."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si le cookie de connexion a été modifié récemment dans les réglages, veuillez vous déconnecter et vous reconnecter."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Cependant, il n’y a aucun moyen de connaître toutes les personnalisations possibles qui ont été mises en œuvre."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "L’extension LiteSpeed ​​Cache est utilisée pour mettre les pages en cache - un moyen simple d’améliorer les performances du site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "Le réglage administrateur réseau peut être remplacé ici."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Spécifiez combien de temps, en secondes, les pages publiques sont mises en cache."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Spécifiez combien de temps, en secondes, les pages privées sont mises en cache."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Il est <b>fortement</b> recommandé que la compatibilité avec d’autres extensions de d’abord tester sur un seul/quelques sites."

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by post ID."
msgstr "Purger les pages par ID d’article."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purger les entrées LiteSpeed Cache créées par cette extension"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s error pages"
msgstr "Purger les pages d’erreur %s."

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Cela purgera uniquement la page d’accueil"

#: tpl/toolbox/purge.tpl.php:239
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purger les pages par nom d’étiquette - par ex.,%2$s devrait être utilisé pour l’URL %1$s."

#: tpl/toolbox/purge.tpl.php:245
msgid "e.g. Use %s or %s."
msgstr "par ex. utilisez %s ou %s."

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purger les pages par nom de catégorie - par exemple,%2$s devrait être utilisé pour l’URL%1$s."

#: tpl/toolbox/purge.tpl.php:133
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si seul le site WordPress doit être purgé, utilisez « Tout purger »."

#: src/core.cls.php:291
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Serveur LiteSpeed notifié pour tout purger."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Utiliser les configurations du site principal"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "Cela désactivera la page des réglages sur tous les sous-sites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Cochez cette option pour utiliser les configurations du site principal sur tous les sous-sites."

#: src/admin-display.cls.php:706 src/admin-display.cls.php:711
msgid "Save Changes"
msgstr "Enregistrer les modifications"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Les options suivantes sont sélectionnées, mais ne sont pas modifiables dans la page des réglages."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "L’administrateur réseau sélectionné utilise les configurations du site principal pour tous les sous-sites."

#: tpl/toolbox/purge.tpl.php:125
msgid "Empty Entire Cache"
msgstr "Vider tout le cache"

#: tpl/toolbox/purge.tpl.php:127
msgid "This action should only be used if things are cached incorrectly."
msgstr "Cette action doit être utilisée uniquement si les éléments sont incorrectement mis en cache."

#: tpl/toolbox/purge.tpl.php:126
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Efface toutes les entrées du cache liées à ce site, <i> y compris les autres applications web </i>."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "Cela peut entraîner une charge importante sur le serveur."

#: tpl/toolbox/purge.tpl.php:131
msgid "This will clear EVERYTHING inside the cache."
msgstr "Cela effacera tout dans le cache."

#: src/gui.cls.php:579
msgid "LiteSpeed Cache Purge All"
msgstr "Cache LiteSpeed Tout purger"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si vous préférez ne pas avoir des affichages à la vitesse de la lumière, vous pouvez désactiver cette extension."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Créez un article, assurez-vous que la page d’accueil est exacte."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visitez le site en déconnecté."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Les exemples de cas d’essai incluent :"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Pour cette raison, veuillez tester le site pour vous assurer que tout fonctionne encore correctement."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Ce message indique que l’extension a été installée par l’administrateur du serveur."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "L’extension LiteSpeed Cache est installée !"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Journal de débogage"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Uniquement l’IP de l’admin"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "L’option IP d’admin ne génère que des messages de journalisation sur les requêtes provenant des IPs d'admin."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Précisez combien de temps, en secondes, les appels REST sont mis en cache."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "Le rapport d’environnement contient des informations détaillées sur la configuration WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existence of this cookie."
msgstr "Le serveur déterminera si l’internaute est connecté grâce à l’existence de ce cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr "Note"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Après vérification que le cache fonctionne en général, veuillez tester le panier."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Lorsque activé, le cache sera vidé automatiquement lors d’une mise à jour de tout extension, thème ou du cœur WordPress."

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr "Tout purger lors d'une mise à niveau"

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr "Utilisez la page d’accueil TTL pour la page boutique"

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr "Intervalle de mise à jour de produit"

#: thirdparty/woocommerce.content.tpl.php:77
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Cocher cette option forcera la page boutique à utiliser les réglages de page d’accueil TTL."

#: thirdparty/woocommerce.content.tpl.php:64
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Détermine comment les modifications dans les quantités de produit et états de stock de produit affecte les pages de produit et leurs pages de catégorie associés."

#: thirdparty/woocommerce.content.tpl.php:51
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Toujours vider les produits et les catégories lors d’un changement de quantité disponible ou de statut de stock."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Ne pas purger les catégories lors de modification de quantité ou d’état de stock."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr "Purger le produit uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr "Purger les produits et catégories uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr "Purger les catégories uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purger le produit au changement de la quantité ou de l’état du stock."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr "Le htaccess ne correspondait pas à l’option de configuration."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si vous configurez une valeur de moins de 30, les flux RSS ne seront pas mis en cache."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Spécifiez une durée en secondes, pour la mise en cache des flux RSS."

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr "Flux TTL par défaut"

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr "Échec de récupération du contenu du fichier %s."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "La mise en cache de ces pages peut améliorer les performances du serveur en évitant les appels PHP inutiles."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Certains thèmes et extensions ajoutent des ressources par requête PHP."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Mettre en cache cette ressource peut améliorer les performances du serveur en évitant les appels PHP inutiles."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico est appelé sur la majorité des pages."

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr "Mettre en cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Désactiver cette option aura un effet négatif sur la performance."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de connexion non valide. Caractères non valides trouvés."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "Avertissement : Les cookies de connexion du fichier .htaccess et de la base de données ne correspondent pas."

#: src/error.cls.php:116
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de connexion non valide. Veuillez vérifier le fichier %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "Le cache doit faire la distinction de qui est connecté dans quel site WordPress afin de mettre en cache correctement."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Il y a une installation de WordPress pour %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Exemple d’utilisation :"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "Le cookie réglé ici sera utilisé pour cette installation WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si chaque application web utilise le même cookie, le serveur pourrait ne pas savoir si l’utilisateur est connecté."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Ce réglage est utile pour ceux qui ont plusieurs applications web avec le même nom de domaine."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "Le cookie de connexion par défaut est %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "Doit être unique d’autres applications web."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Aucun espace et sensible à la casse."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "Syntaxe : alphanumérique et \"_\"."

#: src/lang.cls.php:187
msgid "Login Cookie"
msgstr "Cookie de connexion"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "Plus d’informations sur les commandes disponibles peuvent être trouvées ici."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Ces réglages sont uniquement destinés à des utilisateurs avancés."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Contenus actuel de %s"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Avancé"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Réglages avancés"

#: tpl/toolbox/purge.tpl.php:258
msgid "Purge List"
msgstr "Purger la liste"

#: tpl/toolbox/purge.tpl.php:177
msgid "Purge By..."
msgstr "Purger par…"

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:224
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:218
msgid "Tag"
msgstr "Étiquette"

#: tpl/toolbox/purge.tpl.php:212
msgid "Post ID"
msgstr "ID de l’article"

#: tpl/toolbox/purge.tpl.php:206
msgid "Category"
msgstr "Catégorie"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "Remarque : le cookie de connection de base de données ne correspond pas à votre cookie de connexion."

#: src/purge.cls.php:730
msgid "Purge url %s"
msgstr "Purger l’URL %s"

#: src/purge.cls.php:699
msgid "Purge tag %s"
msgstr "Purger l'étiquette %s"

#: src/purge.cls.php:672
msgid "Purge category %s"
msgstr "Purger la catégorie %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Lorsque vous désactivez le cache, toutes les entrées mises en cache pour ce site seront purgées."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr "Notification"

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr "Ce réglage modifiera le fichier .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr "Modifier le .htaccess LiteSpeed Cache"

#: src/error.cls.php:120
msgid "Failed to back up %s file, aborted changes."
msgstr "Échec de sauvegarde du fichier %s, modifications interrompues."

#: src/lang.cls.php:185
msgid "Do Not Cache Cookies"
msgstr "Ne pas mettre en cache les cookies"

#: src/lang.cls.php:186
msgid "Do Not Cache User Agents"
msgstr "Ne pas mettre en cache les agents utilisateur"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "C’est pour tester la compatibilité avant d’activer le cache pour tous les sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Activer le cache sur le réseau"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "Remarque :"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Les autres cases à cocher seront ignorées."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Sélectionnez \"Tous\" s'il y a des widgets dynamiques liés aux articles sur les pages autres que la page d’accueil."

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "Liste des agents utilisateurs mobile"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "Le fichier %s n’est pas inscriptible."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr "Réglages JS"

#: src/gui.cls.php:595 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Gérer"

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr "TTL de page d’accueil par défaut"

#: src/purge.cls.php:613
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "LiteSpeed Web Server a été notifié de purger la page d’accueil."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purger la page d’accueil"

#: tpl/page_optm/settings_localization.tpl.php:127
#: tpl/toolbox/beta_test.tpl.php:30
msgid "Example"
msgstr "Exemple"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "Toutes les étiquettes sont mises en cache par défaut."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "Toutes les catégories sont mises en cache par défaut."

#: src/admin-display.cls.php:1134
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Pour avoir une correspondance exacte, ajoutez %s  à la fin de l’URL."

#: src/admin-display.cls.php:1130
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Ces URLs seront comparées à la variable serveur REQUEST_URI."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Sélectionnez uniquement les types d'archives qui sont actuellement utilisées, les autres peuvent être laissées décochées."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Remarques"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Utiliser le réglage admin du réseau"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Désactiver"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activer ici LiteSpeed Cache pour WordPress active le cache pour le réseau."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "D&eacute;sactiv&eacute;"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Activé(e)"

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr "Ne pas mettre les rôles en cache"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "Technologies LiteSpeed"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Sorties du journal de débogage WordPress."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Niveau de débogage"

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr "Notification"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Archive de terme (inclure catégorie, étiquette et taxinomie)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Archive quotidienne"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Archive mensuelle"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Archive annuelle"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Archive de type de contenu"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Archive d’auteur"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Page d’accueil"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Page de garde"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Toutes les pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Sélectionnez quelles pages seront purgées automatiquement lorsque des articles sont publiés/mis à jour."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Règles de purge automatique pour les publication/mise à jour"

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr "Durée de vie par défaut du cache publique"

#: src/admin-display.cls.php:949 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "secondes"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "IP d’admin"

#: src/admin-display.cls.php:117
msgid "General"
msgstr "Général"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "Réglages LiteSpeed Cache"

#: src/purge.cls.php:211
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Serveur web LiteSpeed notifié de purger toutes les entrées LSCache."

#: src/gui.cls.php:471 src/gui.cls.php:479 src/gui.cls.php:487
#: src/gui.cls.php:496 src/gui.cls.php:506 src/gui.cls.php:516
#: src/gui.cls.php:526 src/gui.cls.php:535 src/gui.cls.php:545
#: src/gui.cls.php:555 src/gui.cls.php:621 src/gui.cls.php:629
#: src/gui.cls.php:637 src/gui.cls.php:646 src/gui.cls.php:656
#: src/gui.cls.php:666 src/gui.cls.php:676 src/gui.cls.php:686
#: src/gui.cls.php:695 src/gui.cls.php:705 src/gui.cls.php:715
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:37
#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
#: tpl/toolbox/purge.tpl.php:79 tpl/toolbox/purge.tpl.php:88
#: tpl/toolbox/purge.tpl.php:97 tpl/toolbox/purge.tpl.php:106
#: tpl/toolbox/purge.tpl.php:115
msgid "Purge All"
msgstr "Tout purger"

#: src/admin-display.cls.php:281 src/gui.cls.php:603
msgid "Settings"
msgstr "Réglages"PK���T���a�>�litespeed-cache-fr_FR.poUT	���b���bux�����\�rG���)j�ՄK��I�=�!E�J�Eʞ��E�����nuu��N�{ڛ���W3�E�I�ˬ�@�z/�%�Q�������O�+qY'�ΓF��(�<o���bU��F^TRf�0IGO.���K���nD-s�h�D�BײHG��1����_�ˑ�b�0�fJ7��
��E&kр�N�R�*���"��s毒�d({_��Pe��/�LH?}y�z���R�[=‹bs}ssu}������濯�(0�����?Ț����yzX�,���I��جUy���E:Jj-�o�^��uǒ`�^}^�e����뫆�`�u����X����ͯ���B|+6��Y}!Y'MY�yٜ�R���zo}5ɫQ���gI1l!�1��,u�^���IV��%Z_|�eW�ڐY�װ�K��T���-���u�U[;��6�=/�L�A��DS
���L���bLUq�����ۛtT��7����9g�*њf��֝}jV�r�}�ܛ;n�K3S��Y��lk�0��sdW���mބi���Ѓ��9O�a�N�sY��s�\E3�e�*��K���<�8ں�? O���yR��ѻqه*��6��dg2�0[�p�˶�#�!��?�:��y[sU����eFj����E*�D���V�j˜�ӵ��a[�\��x�x8��(�)I�ZQ�>���mK%6&O�H�^a��
Ӏc�O<Ш���й�w����^`%�	��llx�}{xq!��yyM2�4�H�_�����Pژy��%z��ˤ����n9��{�@<F��?����22~����0�Hօ���"?VyY��߹��oo�X5��xh�2��H���^�P�Z�FM���	�=�񋾚!���:Z���z	��l�-�h�X�R:&�6�M��{��a�t%S5��sČ��fԋنVe{%?��Q�4��T3�C�jP�f����Fr�iqZ*�C����Yf�^�ο;�k�I�F<�3�۪*k��B&X�O�w0��UՓl��-q���rs�A��(�A�����meV%��no0�!Ζed{���5M�c�0š�?G��vP�O��=-@b��5��}9 'xf��|eE�*�'٪<�2�\d]�mI�d�(x3:o�v��A�(|��`�<�iY����[����ƌ0Z�b�,�<����l)��dhIqj5���c�/����� �:�9�}�$���x58��c���>D��[
��K�uY��	�j�%5I��]��5�N�w��۠ȇ���ظ?Б�poo�<A�-x6��7�tn��+⊖�ɮHa�M+����O�� �7��U~�C�����to���/T�]�G�j�%�?�K9�ȿ��lWF�ߏq/�[�+��U�j�6Nn����a\1�e�
��0����,c��@�Ol��	�9�"�\iiO3�a��>�5\�$�,�$��UU;��� w������X�w�/���Fz5ڲ��l��0G�x��&)��~\j����,���E�B�!YFlM0?	u�����Ͱ��0�)@8�����ʚ�$�a8�8�����sْ?(�J���!�9�Kԉ�%�7v���۪��+��w�[���,f@��nů�|�Fn�&�U����cC^�X�*�
�L�'Ѵ5!<�����W�>��^�z�f� �HV�}�Z�!�]I71E]�U$��̅慓��-�5\�}f& �&>)"(
Dt���'.Tǀ��@Ț�;��2cZ=��$[B<qr���d��e�F'����\#d�ڍ�=%�f����
�6I�x�Y��+}鷍�Hw��hmx��/-F�!)<�6�j�cM:i�j��G[�өż}s�v��a��oߜYF%E)���H��y�<3-3�tP��1�T��D��&�Ks�s���˗ga
�e�S7򅬈,{�RY��c��%MKtt+�Fj?�g��e���~�[�8Ty�"d!<����@���G!ߕ�d	�QYR��R~L��%���um�i:�IJ3(KeՄ�ן����1�j�ݦW�U0G�J�U�*�#���F`5A~
4d���)��	��z������]��	�@�e_��`�5�؃'�܏��U��q�I�X*�|x�G˜Ѹ���ΚC���%X����ف*Y����1�(0�N��I��&�2�d���G1�V�1 �8��F���ɒ@����5Ѩ�Aݼ��y��c:Y�a�����[����ۿ�����¯ww�#���0ϰ�㊗%�B�6d�wy���7�	�N�8J<��m�$�����q�l�K�@+qb�o�E˱ݠ�A��dC�"�&�1/w6K��g9E~���:'�=нSsΉ�!lud�0�8�"��;�yy:^������Ǟx^46WOkf�S�/��#Yˮ���~�􏌠1`nIK��>�
�N�|��r�
�"�@.9H�LY巿����0.��O�b6����׌�y9����Ir�'�(�I�	S50ۡ;0�7.�{���u�!	��}pA�YN��tI�D.fr�3��k�N��	�)���N��r�a��f%��T�^r��;Iz�a9���2����0�vT�[��g������'��4/�L�b�sH�p"����ҷ/��"7M0��tB����MHуjR��+�ɳ\1ӽج��e���_Xa�V�5@:g;��9ڷ�>��?f����O���w<�O��Y���x��u�y�g�)�lnF$�1H	>����wQ��.������ �yQΜ�&,���B>��0�||�f�0��Q���"S��5�Y
Y����өD���� 	p
"C��r=/%Ǚ�#�4�ɉ��;T��Le�,�O;v��?S1�b"�i�����a!�E������ͯ?�n!&�#n�eٌ���`�Ј܃��ӲRT0)�Ls��õ8e��^�#��$��%�x�E;6�A2�.��	8�������Ӿ.����ry��ݻ�b��{@lk{a^�H�
�a� Ĝr׫R\a�3�+�|g|�q��M�;.��6�
�\B�ϝP	�6(��< ��JP�0�O)���%��I�N8�Љ�h�1H���F[\�`���:�ޯ��s���[v�sXH��Il�GE��?3%!F���8+ץI�S�2$�q~��*`0L��X��U�(y2 �+ K���l�p��������i���TJ$�h�x!6Ԛ��2*.�w5(�<*�c*
�xq��p_��4��M��a��JH/��2e���u�'�#?�ޤ�AY�8Ū�?����u
7��v�MVQ;!��T|[�
BWKn{�`��$�9�w|*K���]���5)�X��Rl�-?vg��~���G{^�LX�95����݀=�k��I��z&�=Klz��$��*p/�U��Hd�ҭ}���U�}���1M��7�܈�{�`g�N#qڱ���&���9;�a+N�3�����8]�ND��sM�K$����R$�p:�'���l���ݠ�~$SFQ����ai�ݍ�K��l�ز�*���������Ⱦ����C�_a�56z��ez��#s0(��V
x�gu	PB�R`=���Q݉NlqE];�'<��0�����Z:�i�&&��H�&a���O�L����'Q�c��Iz����Ej��fh9R�OS�"�-&��@>1$������O��[uD{I�l�����5�hh�HF鴞09�#Sm4�^[�P��b�F�� #�9���}I}`�l�����=��Ǣ�@��l.�,�0�7�;I�[.�>P�E�)��%�4̎��k�$��8g��d�U�ꈃ���]�^[l�����N����H����Q-PG�k�u= $�ydu�6_Qu����:C};yv�oc����<������ސP$ૼ�w���F�pD���lIÿ�)��d���#����8�*&�ը�*�
Fi+N��P�Άk���H]p�|"�eeQ��5�KZ4c'�`%�$E�&�6x�ñ�,Rs�XύK�|��/\��4��,��Ym5�1om<��h{{kڍ.��O��~���"��9Y������2��G>ȕ�|f�}l����\�!��k�=�λ5
M�·����%��s�ԉr�]'P��>�Ώ�l��{�-����L��iG��r[n�¹Q��Jq'�}vmk���wyn�`��k�K�{2�dC57*N���AZ5�У���:cW�����Y��s�v�b�H�%=n�}��([C�+[C�mˠ9:�
_ov
��Q*���թ1�}��3�>�݃��?\S���5U����1�H�È�5���/;��@�c�i�,��	^B��J
�8���B�)�('4���`�)Kolov��d,�Z�)��5=�����$*Pw$Er�lTm{@]/|����tɾ}m�
w
�3hj-��E��K������T��f}k?�J�l^�:�UՈˤS�7R��

�`z�{۝n.vj��7�XH8���:y荸AO�E*�Q3F��<D~����[�l+�Į�ʑ~��5o½;C�E�A��X8����m��w�G\s�z�(�&���c����!��mT��O^c+b��)
��(ڞ�����t�
���vW-����XTR����)�^A�˻kK�Sy.)|�f&�e�3�a�����5^�s��6����8luC�A"�u|O�n��2H1W�ۿ�u�0�2Wb��;�g��,nQw�i��� �a���w�vf����,bzozW�y��f���D��^���7��u������	��Ӫq	��6���!w���F èn'�0��\�tq�ц�jlI÷)K��:�,�x���Ha#�[]�_'[�"�O�}l��gL�?{�|J��c�s���Y�ӹ��E�fs+�K6Pn�H�5��>UN�(�n&��63ݧ�z�LH�8����M�'EfL~�ƍ�D�2�P1T�i��=ݩ�m,)��mm�z���88��g�N�`ϮT�nʃ�p7�7S��Xտ�u<��g�������ܝW�	�qkr���'�po���[���F&��|�!���+���q�+EZK�t�q,K��)��@[T�>�BHj����#|�x�	�n'��
D�3ͼ)>�€���A�>��\���9�˥"�RfFb��lV���s����4:�	��[T�xhx��p3�K'�
|9j�"Q�xA����B�P���`���7��J-q�7�ˊn�̻�i�n�n�-&�P��E1���U��.~� ?A�> {2��������퇖�W��R�FK]��~rgjnZu�=�Rk��׶+]s.���	;�(�6��%M
�-�+1�#-u�}�ia�I���	PiE`�_o"̽�#.j�wո�~Q�m�v��
�ሽ�…�{
�ӄX��Z��)�Ȫ���cu֌�MM3~��W0���?�!��u�"�gm�{�W�ƴ6���7�����߃��QP�m�̥��&����
3vv?j���^�j#ax��`���38���`M蜨F�o�8L�TU�����9Y%sX>�5d���6'��i���fʤ���6E17N����%���唹eh!\vwg�꠫����X�����¢%����r�82t(�X?��O~���p���t���:9�5Q����a&��&����Z��w�_]
���8�)��
T&��.\�#�e�|1��6
�s�]Q��=97�/�̥s� ͼq�b��^�
�gW�@ɓa�vVs������.F�6$^	k�N&�F��r }�m��X��h����z�t��;4�^qx�1��U�Y��D�gژ�w��D1��n��qT�-�WS�0|+�z��\E7���\��o�Y��)q��5	'a���'997�yrj��f�R2KF|=qRP i˫�ė�4��ѝ�>�O���l���<Q���vD�����E�K&3'���/�����h�ޒn�(#���� z�m�3�~F��t��Qy����
_MI0�B/��*>q�����ض^�_��ɴq�K`�HG��u���Is�al����.��~�
Trr�qg��,y��\���	m�y��"s���
5Ġ�E%�}�ؾ������Q�x�_w���	m��Sܻ�Ƒli���~o�J)��A���ΆDI��MI�"�Y�����Az*�=�������
��Em��DaЕY
Ԫ��A풨?R`���y��1s�G(o��z��v�c�|��1q�Ԑ����	�f�"^d^�����I����P����40<�����z�u�p@j�,t�^u�K����&�޻7��`ҧ�}4��l�7���l�َɬ���=��A�^ƿzR�s���֛�TuaT����/B���+�|x�*�;�ic7�Z�Ҕ?P���j��(s./���p4	���c���j#�1���A�<ԅئ���`�Ыpu�?<r�[esX.s��ഩʑVF]�1���vܴ(�{��%]�ի�]u�W�4x3�,(�ߠ�l�IH��$5�g�r�d���Nl�0:��␲RF!�g����ʝP�.0�IC0�	?|�,^*����i��̻@,*L
���B351e�� �,:�
�B���D���pu�K������r4x4E�=<��P2JLx'��]Z�q�L�a�i`��w�Dz��qA�bP7Re����P�D��]"��t�e��Щ��`~�_+��U~r�A���I�6�y�	�f�yݍ�Âָ\A�v���ى�F�,�B���_�����u9�/����
������s���N�Kz^�]�T!�2�˲���z�_?��L$��3�*��#;W0։�h��7oڽ%�:�,nޞ�9_��_++��%qR]B���k�+���W�y�;l���;�7-w��o
-�z��+uP�aq����՚H��/��pc��>3e���n�U�[(˚]��<0�3;����T��!�"(�o+���Y�7��)Ob���f���n�7�_b����⸿��D&��6"zEu͚����f�x>t�5��Bs���������z��fX��}c?2�Ӑ��"�y��,�Aa��]�W=�b�a���>������e�~���y���|�z��ݠ��0���@��j3��͖�C&�ώ.�N��CG�V����@�TW��d>ЯM�Oh��K>�,����
}���餘Q�+��w��Fس�J�5�ܼr/)K8�5!��a*]�>#�o���?��F��'s��h�󍄨Ez�9�v�z܈����
��FY�E(�_��)a�t�2����u��QM��.V��
ҁL�;��7�uN���H�hb��;e��[WD��W=x��l���*��a�t�^��
6��irky�Ɔ��5w�����xL��n�iu';�O�
���:��{�c:�N�w}G��<:=Nj��UM��Z͋�Y�w��v��	T�����a���)��lj�F�*1S�Ɋ�v�>Ӈ%/�ȉ���ƹ����
�/���4Wɗ�(��x�p�m�J�U7`�l {�?M��@�����F�������9#r�5�H]�qh�p���&�E@�f��E�j
_o
�y�����h��
w8jWĿF�Ql�3�D��@�����ݎh�N��=\�����2�����g�h,���-���������Sw���Ʀuf��>`�B:��o~A@�]�N>�6=��.d�Zh&�y�今E��~�
�C�F�1�!������}��2�����G��3�P���C���*�x��TwVA�)G!>��I0�A�i"(����=�ڑ�@��	H���c�4���T[�~u�H:t"�dl�Z,Ϭ|���x0F'`�:)�AM	�l����a�Wm��y�-�#I����͡�����~k���
�+�&\�m���7�鼒�&�ӆw��p�S�_�YHk�/���
�(J��[īx�����x��S=6Y��FQ�#\��J����ED�S�c�o������� �vi��4ǣ��jc�;��,�D�	8�q�{՞Մj�$m�A��6d���D���ƭJ7+mG�
�g�b��q��2ȥI�q��R+9����C�ߢ���X��dy��(g(҈�>�4}�������F+��H!�+��G�кA&/u��5x-V�D~N���W���I+�)�ɉ�+a�0q#�q�`nX�A��ѷ�HxЀ��D]����4���� �W�W���d�8秗q}�\��B����S&ӓ �g�Fg�H��q��,<�FAج���]AY�9���U�jkp��-�f�f���cy�A7�w��6�W٬�G��B��C�x�Z(13��}_R.T�i�R6\�M J�dg	=��jV��^�'�p�ן��
l���E��>/�r��T$�bew�b��uF-��\KE�&�Լ���`�ǖ)iw?�?E���j�8@�dJ!i#LI)��jm�h�ni�5IAG��&����>�-��_9��7�g�S��-�kI��fNݛ��!�f��o��qZ
��j�iX��2������6�p���\�DW9����qg��O2�S�y��)d�MJh�c�Eo�,��A�>��޹!j����H�|y�4[ �N+���a��{�΅*�7)���8G?�DG�)�B����61�Q;�8A�3��iҼB��+ǵ~��1�BR�Wz�]�i���\rg��~k��
_��}��@Y��P��Ɋ9���	��\sF�,)+B:��B����L7g�[e��s.ݤ��!�ZĮH��p�)��gpa�V(�hWg���È��ZX;5�.���\��č�@�rƟ�`�t
O4VX�Ҏ?�$�-30j�w��L'�vRj ���&�b�H�Q�I��]���p&d6v�D����1 {��u��
�;�K��
�'�t�ƙ��7�=�e%;D�Yj��#ql�RյI*f3(�u~!/5�s��@	�n��1��VV�?6�)�)�9�(
XrL���E�Dž�D<�,�V�2�)���$X����氯��0
µ��e�A��b�>'>���d�U��Jdj�5q>�+V�QhȽஈF_T�8<�l��kh��n�[t�#L�\jp�uP���L�f|��f�)��Յ	���HQ�V���a���B�h?7�9L�y<�˜��F:5+>!��i|�P��uN�;+B���@o�u���������,�{�4/.N]���w
[��
|.���*�1{��l��>#���G��!!�ۺ�2�����������]un�9�!�m�?;n(�B�8x�4����:K�)����P�����T�m���ktW��8�5@�q�tp%�jV�{=f���F���{�q�:�2���a"���|$�/��$��jr�d�z� m/��>�mإ�����Q�әouw�`X��+t^0�����+�e)�:IW�`ܜ��/i��3��py&��g��-�t�y�t�������{c��kH�U�D�C�9Q;)S<�}�ya�ލ�"��d�Z��Op��F,�'Qd�mɻ,^3ٔ�٥0�i0�'�9+댵7L�&op�1}�K0Uџ[]��D׭�G��ŕdS\�9lKp�Z�^��Ϊ �̗���^z�r4��#��v�a[�D�#}Ph��Ѧx�_�xOm��V*�_CK9t1�p@��i�ȟt���g��@�aR����g2t�~l��-/H��E�,�}�0d�n|-�����Wxqd�Q"�b�,ٰEAn}+´�)Z�dƘEW2���*�@�b�D�%�yJ�n+ä\�[���Xo�	vf�\�)��q�Y=g�;�o���4y|���2
��2���Bdh[,����E�T�eqvg֠��3*S��[Ô����F�a&�)`�J:
`�2+���{��T�0[�u�'W|[>��|��\}�#���l��Ku"�%L|E<V ��#�҉}4k_^��O�U�.����N�*�m�!��I�%�ዾ�k�#:|��p��
����S�j� �
Xkn�Y�@Z
�k��e`1��nU[lӰUJY*�D�
\q�2��Y��"�9���t�Q�
>g��a��4TP��nM�Je�e���h
)*"*���%�B�ٰ��'H
��iTt��R���;w�ٶ$�%�I?&+a^�/�"��bd�b��0�]��L
��[Q��ا������dfu��b^��Je/����Qo	��/ӆ��5��7y��>'����W<�&��J#��u��S�DJ�+[7]g��s��_�)N!t�Е}3�<��FK���N���Zc~ �=�������%���X�tk�Y���z0a��
vp����66�"�4O{�=6��ٌ��b��%lW�䨆eoT�r�ș}mLM�rЙ�0��K-I���R6��[���~?��?;S[�y��C��v��0�~�/iK��0A5fb��m�&j��9D�H��I��iѤ�����\vG�̅�ʌ_;���e��CkUT&�@t��W�0��+�)>�"̻�vQ�6M��
�HcI<�^-W����@K)�j<ܬ܆�r#��)�‹tQ`��cD=�\F��.M��&�^�9���I�)�B��|L
$Ӕ�"[\����nUa�#�fp��Օg�UW/���ͨ����0Il�_f���ZrWA	-�d���N���<`�:.)(O���x
kt�m�ڙ~����Q�d�xGΏ�� v��Q�� �h��O��G� 78��WqYb�kb�~4t%R.-��1e�p�d4�]ˑi����ts�>Y�%ݧF���;���N�{��p␓��&�
k���o�"/2p�Fbp�ec�ڻX�Z���b��>���x��H��~)�+?��z(e\��+�p�݃����安Ҡc��Y��Y
���&R�����qYN93\�c�אzOאF�X�2����	���*E����,gc�twx�,��SGG�ӓ �L��ˤ"����E]�Vk�Ah�B5�J�C���o��� �v���u#�hWd?���	����&�4�NX䷷��@sT������,���,�}ϔ.��M�y�܂�%h7�fk�Z�}�9�3g����#]#L)��^��s�6c��k�X��i�7\�S�F!;���q�U�09��1�ղ^���ѕ�0�ICٍ�R�qP-Mry��G_ģ�o
HLGq"W��K�X�j��l�xX
*U��'q���D�j��Kq���%]�u	�e����xh���^4�Ѳ*��c)u�������{�3�м�x,1	�j��G�kI��f6Sf�eFsS�a���
KY�Hnٖ���[�5*��P����~�m��oJ���ұ�.-��`�&��
`�߷�FUS~��G�< sqr1Hf!BUl�����Qlo�5;���ƴ�K�hyͤв;��
���&���#$���Ȓ��UK'����H��9��&�M�^�}6&�t�qPE{��\Wĝ���̠<j�w�
�;��@@j*��'��U��-��t�A/�"�3�yu/d�
��#�LB����%�f����m2�\�o�U
�)�M��6�EN��-$�ۋ@Wět���,C��,�$�j.&9��T�i�j0KM��0Yu�S`�!G�VuvǤ�A^I|���*H�2`Y!����U�J� �0�\.fr�R�"!��{���ҽMJXh`S�Q��Olf,=���aUZ��A;��Ԟ{U�	��,��7L�.N��pM���~�S��J���(�ؤ�`�W1�e�֫ns�=Z��+>�z�p$�)3LW)�Fˎ̜⢺Au�{���Q|�xw��UWę�ǚ(�[@�Qf1_ְ�o�/QΤzSj�ZoK�V�o�&0��xH�l��I��cI�[�����d�<ŜMo%�Y�ߙ&
�[�m�/��2�p?�.���m��W��8f�<�by��
���dne�M��<s@�M��R������:��텏���Ѻ�?�I�2����y�68x���]����{L�Lx���(�Ҡ\t�����r; �'�-��u�C�̰b�8)�7�(�9rt�p�������?�s�!P���
H�t�Gh���;ֵ`�'0��r�vŎ����x蕨�Y���t��8�Z���зs���f�V�:U�oo�f_�J�:q���hY�i9�u#��r�ja厈)/����U+��s��1�I�������>���hx�چ��ǭZ]�d�� R�ݿ������*�
��~^y�<�|(�q��4�!�d��"��6��Zq�8󻘵�R-���lR&����$�}@���o$�i�u˃o,{ael�:�b�)�����*n����W��&��%�e���>+����2������9��	F�����(���ᱲ�"�û�0��Oc���G��L��(�5àXJ�E�5��Җ������~����f{�ʏ�X�ݫ�V2z��a]K�D&m%
'��V���a���2�M�w����uΘ�İ_ݝ^<}���+W[�5.��*��ڟ�s8����b�0�4G����4�=!$|.�Y�?渤$�z��Ǿ�mln��Eq��SKvx�&&:���J�%��r�2j]�������� �*�(�a��)u+'FZ��%��-׏]���d�6K�I��ﰵ�P�#Ebg!󞳴�������\�j�X���M��O �a)�c���+�:�g�٠��r#�$���3��Pし��HX�j�*�fv�Y㸙E�]u�ɷI�u�|4��x	����[�Y\4g���9#O�4�
�#�*��fڸ����6��x2ն�|L��bZ����+|q����Űn�<bXU�_��x�.-��[��"��k,.�̦�D��Y�J0�����vt��r�C�Y�?��.	��r��-
�شp���
�x��ڋ�p�Y�a���"�	*��yy��l���~�E��������s�]!�v�iH@��A�G~�A��n����E�_-�iߕw�e�x��x�u���qVɛ-AZ�B,=�FJ��ްx���l8v�2)
��m�m��.7z�B���#�;���Ϫ�>`������8�����m��⣦�[�����
L3m_ 1=�������I/<\�i��^�N��yP�"��j�n�
^w��+��<vP��Ga��[�]6G"G��P��a�~�V�q�	��R;4�]H��d�+�ڲ��Y�'��w~C����k��Y#B��'<�
�������Yu���)`+[�i�X��Z�����=��8�M&"�j#I��J����XhT�����-�X��8�V-)���d�o��#�
f�k�H[fj@�G}�[�ϧ�*z#8R�|�[B������H<�o�Ѥ�~���>��j^�D*�ݓ�f�F�F>�i���?�f7[`���|�[X\�1'�������K�m,�ݱ?;��q.�ӫc�����z���~�fE��:9��z���k�C��:�ENQ+�u)-𚚼BzM+�;��$�-���(�����g��.*J&�5u�(�陀D5�(ܐ���ՋҦ0�3ۧnryGS'��M�kl%�����3�LCEC���`�֋�L=�L��r���K�.�ρ�P��oh �*e(8q�7U�!:Z�z�5ޒp��ܔ��o�a�$��yj�H	���P��0���Z0j�P�-�ݼ���X�#זF-���4��(2Fwt����WĔ8u:��2~�1��aa�'����v�� �s#�K���"$E��V���
&D>����e����S��"��ͤ~�IO�m������rk��oRB�<�
W�8C��;gX�'��F�v�CK��;H��͠ RNBa���|�� ֩dC`0��qX(O�Y�k��ς3�]r@�Y�Y��Z���t�t٘�X�2O�vo��V�eL �jZ	�?�y�C7�#������{�4V�-���C��<`.�i<q�>��T���kE�ނт��|������]t\:���{B=�\�x�?n�U�lH�^�)��4ľ�PH�c����D.�����К`r�_�|H���>�R/���#,���h�N='
����*��������/R߲��
犤^���@���(xkD��ܺ1k�H��w��u8���ߧۜP�d��Ǝ� ��:�lb�7@�����C�j�@���-����쮏�H��x+�(}}�_>]";W�����h��kp�Nx-�ȉL���ěr�DA��4�H�o�
�R�2�M�m�G�!��<�p2QۤґG��3�f�!.���~�u��oh-��7�n�*H��ۧ�s��_x
�.c���̣��~Z��v
p�s�,t�ih���ח�΢D�+����&�����]„
?����!��I��|���e���>6f҇�߽=�狛椊{yW{o~����V4]�W��\�1N��ԡe�5��	�n� 3�?�YvS@-�u��B,�2�Ĉ6d�N3v����ڷ\��u���}�d�>�	^��Á6k�ʝH�4C��
��dݽ]8(k�M^��U�)���}E2��D+P�n��$v�C��nQ�!.��c�:-�{��6�1�P�4�K�����~�s��ٕ���f��F�C�u�x���4�0�"aq��H)IL�V��Z�`���r)�\>$wv��^Gj���l�����% h��!���0tN��B��
M�
��C�/4�9��zF�R�z���dw�0��B�D�����������{��G�naDr�0�.��</ k4p�}�c$��:`��J1Wuj�br0i�m�7ق�m�hG�L�"��_A��n���9PP@*C";��[�[��K�ՙJ.�l)e�Ŵ6MЅK�L��Q��@����?B͖a�Ѓq��S�[�<��k�'Y�\�+BpA���1��m��s{aR���\���%������^{�ڷ0O�y�}ms|����=7�1Su=0��-�=���G�E�N��w����m��Ґg�T��ȸk���Ub�]���m|ۃu�g$2�O*1�7�,��5��@)��KH�K��d�z�o&��D}�*�A��Q��\۔�o��9��HXgAy�@��
�)�)��G1���+��5kc�?lӑE�AG���"_U�,a�nr(XV�g٢5���R��#uANM�9���<\��p�H�"v���f��TK�	�0���*��/�m��q:�W�`�[3?�ESq:�w������h����7�!(�UW:k�Iֱ�ޏ�h��!�n�mZ]�����L�l�Ŕ��減�)=hs�E5�X]���t��z������~�P!�T|\}�܃p��1M�I���&��8�l!�2���E�4@�v����{�_���z�j-x�,�4T0��d���-0�y�o��	�S����SX;�Y����u�
8ܲ�6�[��^B�S�ȉ�5�-�p���_�s���s.Z�I��	�����A���f�J�pb���5]��r�3e���d�fI\E����.H����ԃ�R�Jl-�X1��j-�T��53G)#����]m�F�n�Xb¾�sN6��q{�'���@z��_��kzY�;�/1x��NZ+���ޭ^^D�-�z�$�����]�2	�{�)���O����SʌKOK��%*��{����h�QB�S��s[S��Ҵa�Հڮ��I�^��Z�M�#E
4m��O^�	��bcNx��\��܎�1oe�,��p���������	�O3�!�m��a�`�(�H"��ZƎO�Z|`<7R��S�
�u�H0��].^�#�x�_��b��:�q�0��J��7F!ֹ�l�w~`֣�@!�Khs�[Z���Z�:��I��6��*?�w
׏&��n�|gZ_/m�0��3i�FYH��#r��lUd���9C�aEm%�v�Km�Yp�<:>8e���H�Cms�9Xf�ׂt��6�?���f�f�
�8�smř�%x=	�Z�eX�vB6P�R�``�7+½B�(E�R�ɽlШ�J6p`A�w|���"�yU�f�e����<(��k"�q�$e�8�ɳ��Ei5��1	�Mֆ��W@Io��PRW�v�u8��6A��*&Z�gA v�AX�V�:��2�_��^��j
ȇ*��Ҝy` �vG]��!��.��̰����mY@��3�>KZ�c�W��r�nt�(a�qd�YZ%S�7�����ئ�?ݨE���謳4
ڴnJ��v�:���ʒ�2<p,���H����XD�� b�Q�w7:k�;K(z��Z
.�4��e��NB���r�G��y�0�3
�P�6��U�#X���-x�#���'1�*�C=������U��8��Vm�����*�xi��B�s�%Ƙ�Hc��QXH�!��l��t�Y ���:B��Ч�lV�?9�u:niP�����(����:�6`i��؛"�W?�C���%bU[1�ȓOYh��)]���ּDp�QCxٸ@�3.��t��].����w��d�bN�e�Ɋ�մf,.��X�Ԍ�c�#>��h�5?0�D�D�V(�'��*F><nr�yĊ��-�n��<�.鿴/V4�2%$��䤥#	�Nh�8���H�CSKy/PH�(��d7��E~1��_�g�>jjTe�:���}�����&L��#Ck�溅��2�����N�0��?~��do�f�,�۵�e�ͻ�q��6�AF �W'��7�i�F���Y���	���h@qP���e�;;��q-��A�$�*�|U$���}�m�7h�葌��^�#�I��no�^�5���T���S�߽��k_��������U��4�6���Քa�M�%����Z?��|�:�	��uom9xLΒh���nG����b�BG��k)<m{m����~��ep�����9�=G#��H ;�[����z�2Y�F}�A�]�Q_����wf��NC�G{6*v�Q$���}aBO](�
� ��$U����;�nő���&�y�9d�ٲ���S�_��P^q<Z��$��&F�H�h�����٧�_�Eh@h���r�{�\�g�{B��.�)$�R�A�_�eE׋�HnH-jIb�U�9l��\=Rc"�Хul�`�4]&%�ي��h�����ן�f$9 g�Gy7V�<�9*�%��|��9�!JŎ�$kA�Uں�%����8�C8����P
^��m�ޓ��l�t��
��3�/Z�|X�x�ඪ�� ��F����C�T9�����?�'�\HB idbp}�O��V�T�k�quI�뼂0B����"A/$�/�,�̩]�$��[*�M�e
#���K������.��\z�l��8��U��Wu�YKֶ܏��&/��e�{x�nS23G}�PÕ�:�E�]&����y���:+x��
#�����d��
VuEߤQ��v62K��K���d�˩��lM7�h�
���o�t�9Rҫ���̓��$�M�>>G����9:8١i\��4L�雍��]������,T�a��է��N���I��G�
�2�b��$5J�Rv���~T����|�y�ͥ�61���!���$�
!�˳`�<g!CBL|Eآ�����Ԛ��`���T'i�yӿ��_*"]#�ʊ5v�YF�V�]�W���Q���m���MS���<`��S*[���2�E��?N�4��{���:�
VL���ٖq��!��0��cd�#g@�bV���ra�寳h��9q��VT7+�i$���Qi��j}�r	*�����$���>½�VN3)�آ�L�eT��m⢣�-
<�o`'�P���oy�8AG�����5it<�l���P&����Ѥq�d�,)�#���C�x�PlR�*��	Ĺ>����=���t�/Ao�vqxN���v�Cr�X|<��)ͧ�r��j�7��b�(��`C�g�#*&hJH�M�C5ДZS�j�T&��YZ	���ӗO���9F��Vp�)���F�{0W�b1c�L����z�Qf����׏ұD���~��)�a:/(��f����˗ƞ+(��L1�oB�duT����G	M`v"u�+u�o�i:��͙-��R�K�F��};��V*��1���e(.-_�3P��9�ʮH�U���=	\�Ν�t���M^�$�ku��W��8tN}r���%ٺ�Y��`Mh�o+�>��@(	�z[R�d}���{�fl�
ܥ�y������SZ��%���t#���Ձ�ld�v?t0�����;,����D%�O��R&j8�~�A�<���"���Hd!	�����:�-i�R?T7�jW�
A�*������I��(|WΑ�b�Z�,�M�����-tw7�K&2)~�wo�T�Hۀ�k�Y@���z�BX
+5�'�z��G�*�S�Y��I]=�kQ�� �b`���<r<o����(�ݎ��h��V3
Q�;��h�+�~
Ѵ�V�KUs��|��:����zXr����Vl���)�n����`��`�˩�p]��7}#�g�GU:��T�m=�^79���^�<�oA��Ѹ�Xg��������^kU�ƺ�bص����Eq�4�v�xFV��ʧ��I��B4��rb�!���1�$��hcp�)��c,��bu;�B��(��z��{���������N*5���`�^b��)s�`tl2X�Y�봴_�ng�Ǔ�Z���7��솠m��#�Ly��5+x��Nڛ��'�;"�h��s:u��:��S�"%��8�`�r87d�3�:yĪC�����İzE";��蘦���E{�s�4{�M9���h�H4��k��ϙNU�tI)��Ȫ��R
�6��]Hx��B��K(f`�,Q����#���܍��+�a�K����<��0w���*@0�TM��}��s8��P���'3���WFq�ا�}ʶ�c�/��'�5'�Z�\$�P(�W���T+�zu�${�"1���z������K-D�X��7��fu[�O�	��d�隁/B�@؂�[xW��N�<�?��h�6���_�A�#nԥC}k
܍��_��W�yn]X�Ȩ��<*����x���\/ִ��.�ߋ�?��I"Xt��wu�R�=/�Zk?�C/6!�d^V�`W����o��"O�3�<�%�����k�;�𩄹xԁ�6QtֈPl�x!���k�^$fv௔-�c�\�Z����!G�H���Kۢ��'^�A1F�0/i��+��4]�!���|�Bv���1�n��|gE�6(��Qք�WxDm+%'g�%�B�=�]$�cⓋ��cG��Ө��3S�h�����_=�T��X٤%ݎƉH�Ŵ����
J}�SO�MD>l[TvЖ�W�x���ڼ�J=�Z�����p� �� �2�k�� t�X��fI�**�[c�C\Fu��sP��o��a�=��mwF^D,1�'�\f�QQ��+q���E�A�l�;Vm�����x�V���B�����+]�?M7��@� ��&p*Rœ�5�جW�P����Â�Hj�A�J��T�{�]ʀ��@! ϗk���qvV���e��	��|��E�a�2A��a/w��M=8v��骅���
���Pȿ�$4����@�zp�|:}*_�84�����!ً���s�b�@Z��h��Q���!OX(�Q�-�V磍�����F0?��d�&�9"Wyc�x���0L�Q�@��6��U;C�P0�c,Z[J�e�T;ǀYŒ��p�m>�2���F���3n�Q��w?k>=(
G�\mʻ�6��Z<�`�<Іݭ&��g)y�+!ܢ���s�*c�U[�x8���mF�,{���6a�G($|~�����[��
�mɹ(t(I�r��Kh_�]��}	�
.s��Q,�7J�a@�B\j�m����O�UW1=Q�B��gD(	���[��>�`���d��gS��������5,�p_02 �v0��p�{<#�U�$���E��:r5�qA��Q�)�elnP�%Бbڡ���p=`��d��'�k&\9Lʹ��4���ǀ�\М�X$��i�U�,�U�D/kZ%���p�<�M��E�N	ᧅ���K|��LjJ�
�g�j<�M�:A	K��
��bz��43�����kW��q��
��K��;�����H���j�'&��KP�fܼ
�^'�
Kd�s���(����8�.�D�#��2(cX��kq�.(i��8�r�S	_�V�,JMq����H1����40��mӛ���<{�\��R����LE�voy��xl�?s��FbYv��]5�ac�c�p��ěi鄌g��/���7���}w(\en4.��W���/��n
hC]�P�'.?PB�u^�P'X�]]�3*V��:�'ң�Z(�h�ۯ��%�U�f�R�'W��€
VSڍ��{��h�)����ѥ)6sj|�I
4!�?G

�1�o؆��"f�ťT�z��+mq��D�{�tm4�ЯW8 �.���Ի�BmRU/��wtP?B���zj����i�F���>����RDC[ʴ=�R�00a"�c�,�i#}v`xr���x���}�.���i;��=��%�Ô�o���A��zm�p�U��gj����dώ!��RoK�dS�	��&45z68�1@�Orj0������R��Lp#ob I��*���!�����q�Fj�zCk��4�>~�`،�:���N4~�\��#��<�P�3�]'�nX5Ib��c�*`L��9Aza��͏J}�I�`��|y#Vؼ��-�$UM�;yJ [�s� &�)��0�
���E2�F��-U�Am�|�_�
#=��),M\���``T��I�ro1�}AQ�1�$��d�gZ�j,1����}�n�y��F��s�q^[�2tbSەy�&�t��-�5��$P�&헬'M�N<%�V����"�
���mc�1�IC�,$,ݎX��jt�>���>��je��
]g+�C���g�CJ�c������&�P`�<rv,���{ܖ�K�ma�^�R�I��E�=���Dz��.���v����D{y� ��BZ� 4���I!}ho�����qU��Kͪ��u��S�A�Ƒ{����ވ~`�M��$♂���O�8�V����6�P�'�}���WɭD0t�	[��`���B~�i��ϱS!޴�>Y
�ȧ��dz��?���� M�&��P�,c�y��#���Ǎ&�q+Vw��m�Cz<���]�$J6
�^���b�4�q�����b���}�A��
�\�y�5F�l��ZR��|�/;�o&��D�k�ѣ����u��1[7Yu=mm���\��l�޷0�2R��0I@�_�f�����0�t�{�	�b4�|�hOC���06�<]�+{\
i��%'L@�M�u�ȴ�GP��:�.'��;x�Ǔæ/(%��/�bWH���J��nG���Vީ��B-( �ȁ�r�j�[W���?��C�O�`u�I���@�LB�+��2l�sw�'�h��n��u��� �zTai:�-�'�x:h)X�65�8Ƀrh�D���I��Fd��&�vK���Uk�+��v�j�Ke�PmcZR����?O�z
�����x��x�Œ��9cc<��a1��m7��@��)z��'�W
�참'k�*�U���y��*�ٴ�vl���|�J�_N�)�������h�j�Ϊ����\��-��=ˆ��'�	|��_6X�H�X��ȕ:�4ca���t��F,�8���F	�
ސ�7<����$�=��&��3�;�腢��������
Ն�������h��Xvn��ҵ �e<W�V���TuR��O�J�ha��)��BzeN��M�#%�]f@��°V��
�_PRV��DPB�.6FMo�!D^3�~ �B�"e2"���9�,R�x{P]�����#H'A�3KЏE&G>T�*s~��pk�����n�P��=m"�0h�Z3p{������c.��y�c�I\�+$��u`2Έ�Æ�ծ���NU
��p�@���
���LH_��l���"��_q���!=��{�N�*�yzsB/" W:#[}���
[���J*�W֠����ң&G�J٭
�3�^k�I
ũ�J./XgDQcb��._�BO5zay<҂nC���o�҈EA퇘����P�D|l ���{MՂK2:D�R���b:@���
����F�d�,al7�C�%+�,�
��9_=��H��R*X���?c�8�4��ԁu��p)�Bȶ]��va�|%�$��_k��@�s��/%~�y��
�A�Uӫ+>S��?<�k�N��v?�:�S�p΍�F�b��E��O���	=�)��6�eF#U��.�J�m�]�@��Cw/f�9*Z�|�N�J�t�-��R��x���s0��ck&�[�=�4R�/k���4s*��DH#� $�VD�j�����S��h^,~��.�ݳ�L�\Ͳzū���Z�f��"�Y����>��ٵ�T�{5s�JN`߁�Zbw�����3O���%T(w�x{a�pO<�`�����I
�� `:����],�b���Sc�Ya��mCvp.�U?��e���nf+�V�B��f�tkOДT� #��������پtmb�-2��}�{������̪Um5��P�U|�(����A�A��t�;�+�I
�ܩM̓��v�MAY��fjlr�$t6�dI�&���EY�����
"���@~~bt���|��d��%ypR��!���r�]�1և�<u/
0qx�X����$���)�E�>^&�wK��
N�p ��8�g���kr�zLi�ޯ�}���
VX��.�va���A�AR1�$9{@u��C^W�!���`N�ʅi�BQYh��b�,���&���;v��1
�IPV�q7g��:�bR5ܪ�+�6�C��nv
�f-�� �9Pe�m������ę3��,܌SM)�d��J�&�n���]v�w�9w B�,��
���#E�^�[�����u�#��"zn��$�؊0�=A��`�����9�����c.�����V�YɃv��N>9D��}`3m%�p1�[[�H�6W���j����n���
��R���}�2�b:B������F��Ֆ�ٝY=z��� ���Me����x����^�!X��P�X܂�	�\PR��MS�%�t{�YL�>ĝ�l�з:1���iX�{֛�E�uP�$\���,�E�8]�!1s�q�@T�AZ��ޞ���%�7@i�揱&}�4
Lbe=�m|��QC��s�t����EP�%[S�'[�/��,`9�o��&�(�|���g���ď>Z�7�w�21Nan����aF� T���e�����ٮʨ��U'��t�#������m���;l�|�;���:���[�Fq4m�ɱ�p�V������.�u�o-8V&�l�L'��֒ƪ*C	%���]eH��Ĝh�z`�e�����M�z�כ����m�w���G�
�ۓ���f�A{G�wI(~�������^2��y��0E�	�÷V|�U�5ު]�
Pq�>,~	��f����LLpg���?(K,z�A��Y��|�
��Ljv4?�Z����b�m�E�*'m\nU�b�c��Ǣ��eGsy���+�.�Mb\"�."0:��G��K,�\��:CB&�xo�R�W�h���Q<�
x�U�V^�D���N�����Cr=Q�!A��?"X����쨇\�"-����
���gdt�����G.��7q�r�X��	��bER�Fcb��E$p
���:��嵘�k���l�~	k�-f��J�@>�-~�ӕ���	��1���4��x3�I>gNa�;���'��Zb5{1�[v��)��!���j&�P�I��tG˱��ta��2����r�/��ᛵ����S��/��8K��g�׼o�hJ��)s��s�>����-=?z��2U�, \�2c����'Z�m�Ф+��or��18�����|3�w��#i�c;e�U]��
�0�
���j����dť��-��[��B6�Y�Ɠ��1�W�������.��x�}pT�/���E)X�S
�g����oL�l��Օ���Hkr�[Ve+k��q��a؎�L�T4y��
���b!��!��"����4�؊�%���aD<$������s�Z�Q�c�}����S!�W`����u�9�Y(���gC�!��6��
R�P��8>�D�٘׋l�����}K�%V_����b�B�Z1�l�]�u�`q#�D:���Iw�cO�Ϭ��RV8�*W��47R�\Ct��hHs���I�ѣo`���s��)�P�B2&w��>݀������B�e��fa����ǵ�0�:��[�
(��O����[�v�f�P�R�ǀfN|	G�v�����l,$i�{�^�kesu8�&dh�g߫�LX�{�@�)F���Ş�}��Rv�O_x��HnH7k2	�'����2��D���k"��o@�HP��:��Hfs�.�#�'-���6t��΁�:��QK�|���.�R3_&�^z���Yh�L�'BW6��
b&a_��Ewuf�,o&�mU�ȫ8ɖ��
�f�R�ڷ��F��Y��bWq-��Rzo9�ҍ�����>y|�q�;<"��[����S����™����U��t)�X?+!��I>$�z��p;�W�I�&��?J9�JI�?8�W݀X[wn%
w�x��}|<�Q?L�;�J�c|8��l2����F[<|�E+ �W��Ԉ��H�N�����Sm��C����&�&.�;}�{ڂ��'���Q�����|�}kt����x��qʂIܻ$A���϶)/��n���S��3b�#P��"��U�����o/H/���Q�4�O�}ҵ�	L��_�����=�})?)�m��B_��se�u��5C�9��&��z����U�z��J��`��H��L6Tp;U{���E'��a<C�h<��� NB���r!��A���J.�X8�MB����<���Z�M=F�&		b�-�l�!�XU-�[tM�ȉ*������\�0a�`����*ə�!�r��@�G��F&+������k���w�Ť̖�d7�D�JS�qf��rڑ��Zf(Y���I�Q͆swn	G�퉭�fj�*�3���߆�c��7$���tGW�/y|�jP8��R�����2��&AlY
Q����N��^c�QD��q�����KZ�x���M��.��i��9��Ƞ����j���Q�ğs*�I\������Eǀ	M��y֕f�i�G���)nV`���Sn��/>�S���vS~��q]b����u�ў���D~S�Rz�4����[$D�>$��qy�ګ�l��w~�[q�i�����z�#�4)�Z*Dl�8�!�	T�[���W�g�6�!��h)q���9v��)E����b��H�_:��U?,�A#[�K���)j��&=?����Q�vT�݀11�����GB2�j�:Q�VݳW�7�Z1z�(��i�a$���2n2�'���V�N-�"k�g�Z���lz�D�U���82 �O�ud�S�Ac�k	oiRRO���	�J��\N�/��Zu`��	f�h6�T0ov�J� �H�[��m�񍨮�>Ǵ��dD2������x�)2G�j��Y�ު�"���u~�n��+H���y�q3J�$��GM)g��U�!�$L�W���_tQ��g�
�d��/����z��h5�o�?�:��[�V�ŽҾ
݉9
��&�A��V��֞��k5��د��kR�_{-��VN��%PE��d��J%6[Ix@U�[��RT\�7����j���U����+����M�l ��It��/�1(�[�V��m��H�
�c�r��;��d��{#�c��ځ�Tq��:��K�Y�D����掂�V��{hwt�V��~�W��Y�L*G��F�n(}��6Kц�Z,	�cWҿ¯X׏�`�gX�8���*��_�w���7��!x=e}�l�Ȥ]��L�3���ؒŽe:��a�P[�Qr�Ǝ�n��z�k) 5��:�S�4�)�1��h^���d��Ο-͟��fx�� �ļ���
�|���V���ֻ�+�?8�}o��#!ٛ#Z�c�ɬ�z�`��|�_]U��F‰���FW�5J�i'R�M9��6iH��P��am���H����}V=VP�h�3��^��:�v����Ȁk~"�Z�O�!h߱�x{	03X����21ְ	��c�#�ڛ�4��sU��(E�:.�j��z�#'SiP+t�3�<���.N}�X�@��rkF�E|-��`+"�@������K�����օ7�)M%��C����klT�!V��dЦ�(� ��I��_]wY�@��Y1�w(*����խ�#�i���]nL*��j	`���ͦ~"A	X��K�����5�	�_��끵�GZVW���M����ˮa"�Lb0fC��W`��^eH�k��8=��q�D�\�q?�P6+ѼJ`/�j�b�sv���:�)8���I��LC���N����K9�ԹDPՃ����e���3���)<�P��K=�[e�t@?�)l�P,\�U 6��uUly�@� �>�C�2M�B�{j�g�mP���˗�L��2�2^7H#�_�m��X'�e퇿q,��qM���B�v���3���a[=�i��l6�qc�F�/��(����p�?}�G��Ǫ�l~�whI{�>��;��%B�2�xsQ"uF���3�-J��t�聺�` �n����#|������"�V�����WP�����.$H!iI�jt�u�:�4h��}7D[�p5��x(}3�b�h��@�$�@�<M��U��f�i%F����b$�)L�5�Kщ]�F�$=K��f)H�g��X���)�
Ȩ����q)�Qi�e�$�²�ƜHB4�U�g\:~,��C>�V��h1�sh���j���(��bMK�('������V�K$ւ͓$f���//���q�ГAn�;�i�q<A��W��Se��}��eJI���ab��p�j˺���'�ջݽB����Hwƕc�~�ù`�8:4�>��OԝH-�����J��9��H���t��'�j��^A4w��(�/�cU躼	�|w:��#�:�T�C�g�I	�
�y?r��>_����,e�>���^��ƨژ��"�CN��͍W&UU�&�mBA~��&/8�;Z�������QV��e�\"�/L���g�n��M�j/��+V�<I�*K�^�LD���A������N��]0�������"��L������V	���L��1�ذ�0�����ӗD��� #��N�����~H� R
�Eչ�겖�XcXI[�8�;�+(1/�j�}d%Iھ�W^�W�o��6)$��	i^'�;����b���]�7��e��H�����m�c�y�K;U8���4:�j.T��xM��/��ѣ�Ix���Ղ_�`��f;	�1�0#�*�����.��Lf26-3�KyG�L2+���~Q��q:�8=��ܒ���L�����(@�,kX��.
*(��n�Y������9����3�c�t�Z�R-!�2�
���+��=B����W&��<�M�^}4���*����B5��+���(������PiA���2l��bJ�ص�eB�zD�ӊLh��+׿��s�jT��%��Fû�Z�Ѵ���s5`y<�OJ�X-k�N������^U��h����r4�XUL�\@��fmn��)m�{�"[qY5�K�NUHk{��e
g�3u ��h7�fh*8@��Z�Xsm*�9�̿Z^��#�4dY�\MfM���I��L�DM�,1S�����Z�}�'���u�B,����l��ل��4��U���|��qkm��A���a�Q�ʦ�Y�Z���&m�}��s���a��Q�E������T���+����㩩5'�}��4k6,8�7B˶�0�8��dJ��I�v7Y�/�OѤD�G�h�|ѰC|jS�V����&>am���w�z�\���>N�z�=8tg�L�-�)ۢ8��8�5�#6�t+��b�΋�F5nu�W~��hq �p�q8�|����`B8n<����=�	c�e��U�,j�6��c��b���f�����G��]7�u[�5D�:�ub�缝�U��ºs-U�N=+�[ȕ�1��<sAU&a&�o�+��qpH�r�Xh?j:�8cc��vtFrr��F�}�}���9�Pp�=��O%z�r�w�E�Rz�)�3�o�i�7i�G��w�Ջk7��J��Vw�,z���S��Gʩ���m��ޙe/��؄O0���D��@kVq�i��Ɓ�nkT��چǣ�&�Tt�T�&�"�lQ�xz�G��5�r��_�H6�w���H��q�t����L�ͅ`��-�Ҁ=�y��J�vU�sv��X�:���݂��K���v�ĺBɍ�,��Y?�*q�䄲*�`傂�s�c�/L�@6բ��7Jd�ZL���n��@��i7'��
�0H<|������F���l�a^�W$��Up�e?����쎃]h�
�Q����j�J]����%-��e�1
!	e\�#�{��#~0LMݦ�d��{kU'��ՈX��h
'5XCF�}w���;t�J8���6�q��F�5����gqG�C,���G���w{�b��A�Dp���"�o� �ї�SĉP8!���a-�vc�n����W���8��~�
��;����	f��'����P�Na��⫨\�W:�iIz��'�Q���
D�%���xS�$������%�
�@TSr^TE^�s�>�H�"!KIˬ  �	l��������諼��0!�9�O	Ρ#���A>�e�G�G@���C����O��p�q�9�@�0iv�|����;��	��I��!`.�?,�T'1�hol�
"��.X�>&�
\�4EC��H�#�z8c��i��׵��S¦�C��f$��ܮ��
r�:�[�%\{�uo�D�]d*w�ƥ�]�sN�%�`��{�YM?翹���F��+���j��ˍ��&�wR�P�?�d
�v�Սb&��spd…�y�_
���j���X�@$b�!�S��[hx]竅cg;أ ��P��c��ڙKY��60C��h�[4ı���B���b��Ԋ<;���]�<eh_)Q�ㆯ��l�V)�#�Q����?B].u��&��a��L<8�m�[b7u�@��B��.����YЊ�o��*^��cS_����К2�v���5:W��Q���D^yx�!$�s�hE��3���pi�Ӏ�;�	�1��e���:%4ψP����;
�K;w������h&���^�Q��:��J/d�x���뛃wE~��C��$\�@�?*Ku���d<�nZ���-�&ی��x�9܆g��_������ĺ|���z�0��РO�S ٿT��������~��U���_�B���$�H� ��i�:
 U�&�n����J���ݺ=V&7���l�W^��ȣ�L��V��T�ݹ`�|�57��b���G��Q���跑��>��k���i`�l�?>p�~.��yq�;��n�<���?�-��><Q�08�z�íE��ᎆe8Ց�9�P:��jA�ؑ^�Z߽d�<�ZB3�!� ���
�g�D_b�2�p��č&e�kVo[�Rh8�A\!�	9S����/�)���Nr��`�T]'�V�;�F���ߗ��J�6�'��b�$c��!
{�f�P��>U跆遴A��M�fp��ǃ�Q�}�Ĩȟ���Ka��@�����b�;r�m�a��2cJ�ҵ�Y����r�L�������h���{VX���ފ��b�r�`Qm���a#g����&*<��f/���|�[ҶI'�jR�=0��Z�v�ho:@�u�׭eE��MW����s&�6���0�=�Q��@���� )V>ڍ�tz�.m0J�pa��x��e��{1�+�g@\����?"�%��“��T�h��`Ց-���P~j�NI�v��w�KL3u��:i��`j�kӔ8A�20�}@�t��2�UQ��m+�_)�c.	C�<�[ǟ���s�����}��nF������c*fX]ߋEgqֻ��j
e�({9Y��l�[���A�G+$-��`q�9w����;�0�2'���M�o�F�ˏPA~v��ڽ�J�����3�Z�n�HHCQ*F��Mef������xOʪ��}������k���� ����P�*�����	4f�I�c�m���Q�R4<���lX�.��	�S�H=x��g�v�!;o�,������W����2{�����|�`ad��!A �V�](����W�X�L,�"���j�z� �2��R�s�`;���jOdG��+7�hL[����G�
J����c]ȼA׽�Ŀ�:�?��i�� ���6˙��*�[���!��c͐��i����S�f��)����(6�r|<�N߆�w	
�a�����B�ݫ�C����z'��RmJE�-�sU���YpȎAf��2��.5�U��H�Be����T���dks{ƕ�:cީ1[<$�)�T-����m��4�%޵����$鲵F��/K��ٲ�|jIJ�*�ᏢV�w4��V�3���DҘZ�[��CG�3r�64��V�Oj���R�Sj���%)��1�̈��,�
XW�:�siYS��q	��l1�e�n֋8r�����=R������G��C�c�?]�c��LJ����g�
C嚙�H6	f�)8�e���=�%���y���v�-�r�!��nd�m Ot��x<ԟ7�$F�a�m��丛zr����f��2{M˽ŢvZ��Q*v/�r:�uUj�T\5�W�<��_\�Gx��� &�4�z�侌rw-��)�*r�D}�&��N5�����8K��BȻ��dxu�D�e��x�"E���-!�r}�>�v���Apݝ�c�}�tYŎ?:F��� �rR&��E��hԼ�U���E�]7��c���ǬŰ��-�����y\]�M�AK�IYz��ƀ
�qp�޽=6J�fҚ�E2�����1��eQ'���yz�'���Z��� �ݤc��!o2���Q�A���^e�Z�id�/�H��L��7�vڣ��-|�Pr�Bh�|FrP�'��-h'�	��]��Sd�����̢���Z��J�R[| ��uK��QU�1tjug��V{�p4��}�\G��X���9vwW )?���ǝ������g��Xr@����S`K�;������K�]�m䉄���$b�P���#���&���bS\J�E�5�ԁ\CN�y���e�&��O㱏��S5'��Da�
�mI��7F��Q�?w��Qs�E���g�2p��V#/l;T#�T!��¿w�As���p��-�	���|u�� �iI��A)��!#iQ���?�Mz��Δ(�䞠۔��5�}�������{����Yd�!5,�ы)>p��3�K��Wt��ǵ�<�t��
�w�ٔ�������X/�<�BuA����Ԅ�W}-i��up�g�b�p��8tț��������; :��?�ݸ�am��H=*���B��:&�r9`Q��/w������Q��G��.&��t�y��P�h�} &������`L���]�!.ُOI.��Ɲ�5훮����u>HK��>gǃC$��cr<�4>�~�<��e�ڴ�=3���m2�e�x��ưѤ��<���%[�Qy�����u�T6T��"(V�敲ʗwt|jV)z�1��
�£��n�]���@yP <�_>�0�$��ชw��U/��e�)K��9����Y*Y����C�Z����.B݃�z��N�]0�a���,�����m�P�s��cV�M��3Ax�_�3�7��@ލ(���9j��	��E�a�$5�{:��h���:�D$��l�|�g����FlL���@��j&)?�(�@JH�#�9zu��GH�-
! f��I*|��Κ*\<�S�o�A��Ž$��Jao{���:<q�ՌM�8�t�,v$�@ξ�X���r}��T.f�^}q�qC��s�$p��8����Vb�K���^%��r�
hV�>�-AS�}{���RCU�:��ݓ\����>��W�8]�
3n=6��5o��kݮ�_�JG��GO��W����9�Gm]�����O�*4V��.z@���4�?�
�!����-#�]9�X ]y�*�4���'�����Ÿ+�e�5�*�ë9���#y�ѻL��%�]�7`*��՞4�=�͕4{Yn�]L�
�L�a߶ K��zz�e�{�3D�:7�*��8	�+ʀ�t�O`�R�g�� n��O*���U`9e��E/��p�,)U�-���������S��W�3���	�B��;��2q�3���Zk�H�ڨ��<u���arQƝ���Ƕe=�o,�9�w'����nG�G�3�U"0p�E0Bf/̣�Y��`�ӣ�3��gn���Vx{`���Ֆ��i��k4�9r��w�|R��-�9���?���x;z[���ͩQ��3�̓Ew`�o�����x���#{Vi`#kkD��1�,���2LU��{G�̓co2�:��a񧎬0k��qtY��!f^��id�3���	�Gyu-����
�3���P1AvD6V�y���x�G�¨�QW \%�.��v�h�X��B�F5��3��;@%�*AQA�[F�a����%����?�WR�"M�&�@7�
	�8��A��I�0^l��~A~\)<�N@2Mn 8Ov�u�S�Ήw�_B=��A�A*���
���p&0�)29"�s���������[��P�qaѽ4��ʄ_�D�W����d�0@��xob��-Q�#�cXͱ�~O��������A��v�3zr�o��3~M;��N�8��
t��o?*)W���f`о0�œ8Ф�������
|�����i4[���p��G������z�X\�@,ڷG�b��hLgZk4 ��#������p��B�UۅK���8rô����AaI@XGu���8g6�U~uE�L�92��d�*�Z<�Uak3�% (�U���A��f^g+ȄL�x�����6�90��#.�����#�%s�K*_�NN��;�$T]*���7����o�@=��˨��
��Y�9�UKSL�ˇr�X"
s>D���..[<>��TBr29Y�xͳ!Z�O�e_������C�".�d=#����"M2uZ}��p{��h�ߍN3>SYDZ�J*j�:�7j֯#x��c��MZ`X�2E:F0*���U������r�Uv�_�\�WS�m��$��P�1�#��T{�l5��x�ʒ�0��$�Y�x���i�(LT.3��.��5���&\f5�<����-E�I��ыLZ@Õ��z����?��\��,�_��|�@މPQ���O�@�g�ĭ3c�@�E�9%4�u���G��@�iе�hC~?H�9/-j�\�c�f������N�D�R|m�#a�T����Nn=��Wvr8Pr�I��cӳC�����MU��{�c=�?�\H�7������oDƎh��ל�-�m
�)'r���U O݅0�'��@��y�2���*����1w�n	�p��
���ׁ`�{ʲ�j<n���j�R*�"���'���#2�շ��*Lø[ĔbG�~sh��y�,.�b��k��oW@��b���u����t]�as@u(-�y�x����5
K��m�$�~�:ʸF��%�dS�X�^1eZ�{ַT�޸��0��V�K��˩�	S��i;���
�j�B�����u�@�O���c�l.�L(�.Q��M�J$��V+H��aW��Q�$�����gd�衁}>��y�G�D��"&R�y�p���*��B*�t��F�E{+�5�p�h��Su���3�Ѕ��##�ň>�ʤ^��]9tPW�O1�V�#Lۚ
q�~�g��ZC�D�߰"���loC�Wg�C����,'���(�i�e�uD�k2�J}(��T�L,���jξ�Zݤ����f��Q��
�h���c�&%NXr��F���TH]/+��xlhH���[�)~7����[l�H�'���)�)�������k1��p�ԧnD���+��W�XXZ7q&?/5<'NsD������jp�W�S�����/48�K�5�>u��D�)�[��g�m7��ƞ�=xW��gKz
2o���S�A$(`��)򀂳�f���Iw쉋�s��~���=���tx\e#{������ݚ��]�/�A�&�o�6�6�0ЫF�]cٳP;e��xf+涕�'���w����u~�H�ޫU�T׍�m�;u�nHp�V<K�m�m����9�����}n���R�`
~ Q�jaUw���a:�Đ�y�%R��u���Q��PG�} S�t84�KK���tkj>א�P��_���غ���Osd�*؊�%�<&,‘��⌐<I��I3Ԁ��,Ij�΂
)IW��B
��P*Z�c�0㴤S����S��h�
('�Pڼ�"������2w���,|�U���Ռp�a�z�]Up靰1Ϸd!M�MH�N`���ٴ�t��|~/T�I׉���_������P8D��2���M��8�>�UV�z�D�Gd~Ğϓ
�6���FB\���h5A���4����GX���|��ZlQ_�`� 'f���1p��HV����r�]�HhvW
�ө��2l��I��o�����[���I�����
�k��]
���<X�D����햭7n�ٹ7���~V�H��P�5Жf��)��>��h0�H�3ed92o�ZGQ��<e	���`��Y~e8t$�0~g)��p�u��_*��JZFă�����&&�94�������R�ku6U�$�����Q�_�N���t��L֫g¤���G���o~��3p�}	��cs�u�m
�U��k�[%�/6_r�F�X<!A�`�98�貹��C����Ͽx��w6�@U�I� ~��I��}�ʰԲN�fG�k��W�dݛ��;&�W;��tB��H�-�L�����f%浧��t���*��l`E���ڳ���r��$ޔ��q��*��.�c��N|�6��y��rs#�24��\�\�B^{�;zJ�e��5[����i9'��z��/�(4y^z���6�{?�!��y4>:��Sg�2��:�������Q���wI�7r�K�E8��ͮ�
*k���>����1�a(>o��O[+�)�Q9�W�6�{�v�{�b{L��
����[+����Ef<Z�^N%���?���F:�!�S;N�`�r��/|O*Vd\"��RGV]��rR��&� m~o$q�
DN	�H�jI��)DlG�.��W�]�FHkI�cK��
)�ڊG���Cq�=�Kuj����ΐ�Ab�W�2����S�4#�drT���ˊԭ�ԕ;�:#}�
���_n�3H�p��RL�v#snq����ү���߯�ٕ����a�V)��w��u�G�A���FŽ�}�6��a�&ǃ0`���򐸑�j��o��}}��+�ˠٍ5����}1��,.u(j�̉ٗ�z�>��J�wP>O�Ng|���_2Oz|��z�5c�.�Xї�T�ɫ������܌��y��	h�A~/or� c	u�ET=Ev_7޷��o*+젤AB&���5�H�	�ҥ��O�-�>*��-��}�3uR�:����R��U��et�	"w�����Y��{6��`�q&u���5��G��vLO�)R8����>�]�s����G�B��Sm�oN���-���m�C ���@N�?24je�^��ѷ���ל�t��%Q��-z!)<ilf�%g��Q�H$�d,wru��@�:(�9
<���6�R������y�{9`��Zb�o^
7u�f����6��P��6�=�?�0R�c%Ii�Y$�`���[&���
R��^,�<���mw�k=�6ЅK�˫aDȂ�sh�����#!j*fw������2]�Z���Y��	h�RY��+"U��W����+5}�a�|�Kę��^	�+Ei*�?���F�PgR��='�W�
�����W������L�TkaV��_��)K#Q�y[ge�L�i����І-��B���]�v�(A\҅Q�3�H!ћxպ�3B��
Ԓ߸-5Fj�5�?i��:�y�3�n<��R�&a�����O�l!m�̊U�������q%�f�N�%";e[�4���|H&G��݌p�U���Q�$-�π��ջ��Ӌ����5-�O݁�!��8�� u�~�8NuQ�#��L��k#6iݎ��kz��խ�eRp`��u�;b�61�"Y�B�q�}�w���w��lre�Œ��2޶wh̀����'èS�ן~���.�5�9�C����F�C��U�I��.�w��
��1(xo���W���%�tmZ۱'}���`��EZ��P�.!�W��.)܈��-jy�S%�������d�:|ҟ�xx����<���c9ծ�;e_��˸��	y`�+���V>�T�Ks(�Ro�G�U~�Qj�݂��1���
��^5M���ub�A6�ʘ�SO�Ӷl�7��U~K
7�l~��xv��U�y�*,�"K.������@X�'m���rH_�Ra���+�LBQL[���!Jh/udݮ0$�
����j'dMJ2c�Lo��&फ़[�˶R�����{�x�kuK��xHQc�R"�B���͖`/���TK��So9��r�@A倽P���N1�PȾWH�,%�e��[�2��g|�wx
�>��]l�ez��L�ϴ��-��x%+7%��"-� ]��Y�����ׅ'Y��-��&r���*JA�2�b��{c�y)�B�-���]ؖp^%�v�xuߕѵګ�0#:+o��,���h:X��z�I�\`vZ��`�:��N7	�U^�8r\^p����C��$g3Չu�Ռ*R>]T�ǡ���v��2�r��^�(��路�jS~�������
��`�U�zWvO6D)ɐ}L��O �m��c�.��E
m��u��T�^ko��|��fS�O�~|ȑ�&�fP�M�`L �PD;��A�Fi+H��Ȟ�;��h��"��2*����m��&� ]΍�s?���Xou�T��d/��	�Ԭ�&F}ԍM�C���	: ���))O�5����|C�JN��Oy*F�w�Lm^�(�u��͈
����k��D$�uB�h�wi��2ғ�l%�>/�b��-�V�Fh��b|�g.�/ֱ��ł�^M9�o�-c�T�f)8��{O�'��UJ\�a�ԩel9��)z��JG�W�V��4_��V%�G�C]�b�;w�6�H��ן~�Z��X��V�U�4�����W�ڢ~���؊m`f�V�@���ؾ�o�?��"\�c�7?$��݀}�5ig�gT�E
)lћM��*�c���u��oj	B���s� ;-��T�N)H>SJ]Z	n�*q�,�T�E��j�K+X�A�x��[D2gl�N3��T�W�Fa*yn�FWuZ�n��_j�&ed.��w��]��i�4�x�O)d	��e1�h{��P�F�9$V�S��ě��nyfc��B
��!s�IȺ��[��5��;�H�"&��u�Ă�A�&N�Ėd���h^K�B�A"�։�w�|QC�T�G�
��v[�Ҙ�&7@9Lf4�h�P܁5�!#�2�ar6�H�_�=����pfaz�+
�ijTG�
c�`9���#���T!���m,F�fn��*�������H��T��;�0,(
o)Apgy�Y�(2C&��8\��@��r���:���֨p�kyy�28��p&)�qd��ۅ6��Ҙ�v�ڎݵ�CB0�#Z�Ҏ��j�"],T[<��3�{���
CC�[��@;�Jp֏ۢv;"�����
��>��ۑ���� �?(��Ӂ��0��_��f6�=w�zsZ�w���ˋ˷o^u�'�1I�HE�����B�� j~sz��er�+C8!—i�NW�������
Jԍ�K��-���ւZ�|��>�f�^�qp����'�����@~>ޟ�����yf��d�o�ȭ΅�i�'��|�`l�<���5����O�$_SZ��ޱ��񰧣�1��/;}Zh9�IJ�j��n�/1	�P.�����^��9nY<U|e���d�j�����2S�^�'��zVZ�i����*}�����`���1X��e����>X��*���J���p�c\�5��zȴ	�7r,�{��3|�Ф5�GW��#8hG�"��^X��V�F/���f� ���e��-O���a7�����Œ�o׶�Bدwյ��$d�v�gZ��V�y���qܐ%�L��w�Dr��c|�y���M�ڦ%��ð]��b�u��:ӧ�����Lf/k�1Q�����d�)���J�h���	pT���ޘ���֓\�3?��8�6S���v?�t�KLkj��qB�	 0�D�;�{��k[å�����`��!�J�nCb.!���,#/�RljZ�^,-�|fnuR��oB�$��v��u�݄z��L.0^e��:k���{��W�І�3�
u|Q-[���_�7�B~ApB���t�Q	w�/y�l*�'է��C8.{�P�Fm�ʨ��hʼ��)ao��ww"p���L��T@׻�W�yQ�<�.&����=⻾H�L��?bnTP�٬�œT���9�F2w�Tg�[Qt�w�"u(zeUX7��w菝y���I|sG�^y&\�����oh:&
Y1�Y�kM��%�h֨yf�aJ�߼x��˯O_�t�!�ش����jR�}�w鬟X�+1&��Ngv�����>���6XC�Ѯ�K��&�i��	�%�po��Z�R�C���YcÓ��o��R��V��3]�la�W��4�F`�n��De�f4�]w�9l��d�g�#b,�J�|��c���ވ��M?�������1�
�]���~����ď�NJ��:��}��,GF��� �q���H��{��u�A�|]&z^}�����F�H'zb����8:}�Y�p��i
��QE{�7I��D��l,Ƞ"��6=��)Ɂwg��4��G�< ����Q2}��6N)���(<��� ����)ڎ���ꈀ
�2��T��ݛ�m|ֱm^�]�cں�ms�ȟ��:qN���I�[u�4���#%�Y.°�I�ױڬ��}z�q�/��E���\��qԇ�s$�NS���C�I��
Xb�SJkݘ���A1���\�Q7v|D�M�0��-���dĵ��c���*�-�<�E}4�ǎ܈H��O[Z��i&l�2�o��,�UZR���&U��x�V$�J����'����8bB���Lue��&FW��^s/�>9�6Yc'��w-�$��hp�~ �ES݃���)I�D�R��	^�^Q�E���g�̥�Ĝ��Uq���D��؊�
�V3�4����x(j�%�]�!���T��`o�l�@��,��<��"O�? �{a��\U&�
I��C�,i�sɘ�[�:uJכ���$��<{�����s��_���ޥ��g��wK�<w|��;k�:�?S
ns��0��r���dʽI!:�sHQB!
��(���s��m���&LP�=��#��b���uK6�M��� 8&��l1_ozK��^G��u_��e~���!����q��ƥm�4+K{NQ5�b�e'�3�Ӵ�n\���2H����)�,�Ox6ŝ����.��uab��-k}N��O<��ݭ�{x`m3޽K<�5�)�"��}C��E�6�cY�����Q�ӿq��T-ԕU��<����.>��9EL�M�d@4�$Ў���_�?Rů�H��p_���M�3j�(6Ɠ��"@�v�	ꡂA�1!mnWv���g�]�6��#O
���UR�JљR�n\�f83�
��M�!6��*�̸n9�w���h ~k�_�[D@��L��vz&S�~S�8��ӊ�<�p���
�3G4�Q�L��7����r�k�q���U�)�wW�����x(�`�7�F�����p����չ�.�$Гn�.�b믙dP�r~b��{���ν?hv�(c�l9�#�O��s�4�bn��G���}4��:����Jt)�<���v�e�,ػ��MT�pu��щ��q������[���ۋ��]�-�^�a�jT��0綮��&/��H�P�/���R�%��6���a��A��fe�P~6��FΚ����hZ8-���Ӳ6�>
-��f��
��,�Ɠ�]]BJgw����T
�gp�(�	�||i���D����g��>���l�כ�?�#�B6g�J>u,,�E�N��"�����ȼ�"s1��>4��ʢ�t���F ��t��/�UB�Ť�cP�,�t.y�&�)MK�����S���1���0w���?QZ
�^H��˪a��P�Z�N(v���$���&�5e'<�OQr�`:
�F[�ܰ�
�|�\Ŭ��/DvBܫ���B������P�R�[ض�A�H~���H��̏�B�+ā!�V��sm�<
���8�7�g]���O�iN=b��Q
k��N��'��*�q���ib�4�m��>��,ͭ�Mqغmaa}�`P�kѰpq;��HxN�f�dXU�϶-��`2��.L�s�0��w��U���z|U��5hd:�f�!�V5�0E��$T�QBj�M��
`M�(I
7�Y6���s<�����r���2�(���p���#QZ䞌%#��2.}��)垃��O���}-�O�7��it`A,�sIّ�!��ĜWx�,Z�`c�I\�UC��@�KB�叐Oׅ����o
�H�y���!�IIg��nb!v�Հ�HT6�dH�սW0e���شh}���Z�dÁ�c����'ል�r��O$7I�$b�ղ^�<�e"ΐH��<����\��؏Û|#�Ne���EB'��J�.��Jg���1��*���v<�~���<j(��
��ON��9�����e��E���߽�^�}�*zs����ѷ/�EO���NO�^��y}!���ˈH�f�C�)�;�\�&���`NTR0��$�&�&�(iZg��HP�9�
J;��O�/����Q�ڨK�N�t�M���������?"s�~�W�4���a�ukP��"��'�p:S3��02�r�7꾌h`N�*un�Oyi}稤�Ѱ�f����Z©�N��9�8�Az��ދu��!�>����ϣw/�^Do^����%�{�9N�P�dMPkh��ѱ�l���Ff����*J�b;aG��b�5�Z��/�)�~Ŷ�hk�[��-
c�ro6`c��Cgu���:�SЛ�3�g�.l:LY���o~v����]���ߚ��U<�����(le�:���=T߽�2�Gϫv�����Lgx��`��(_Q���
������~�1F�@���>�!)��z����ɋ��n�g���T�^��ߟr������פ
8�w۸4�~�Z]��1�~u�]���q�Ez S0T�C���Q�t���ˌe��PyT���8��p��o�B��o���u4�8ʹ��
d'�e�Ȫ�:�ӳ��`
��3rwx�hM�)s�k�ϥ&R���Q��
��:0|'���)jJ
M���в
�0�o���(��?a[�J��2�5���Qo��dl �simd����r��
�x���zS��(GG�VӨ)}���Ay���R���`
��=�r͎�Zb|TZ?��;0Eg�����O��i^Я�wn���@-��UOd�#�U+�A?+�K��Cc�j�f�F����us:
�m�
����%;_�ֿ��nȭ�%��<I;\F>�ӌ�t���SU��f[G�Sw_��T�N�W���R�S�Y1������=�g��rq��ku/$F>Ps�>�~�AJ?��#;��c�C}�u҈�������Nˇ��R�H-@
H:+Qݰ�c�h�Z�jZc+G[a�8X݀~����3BYw�}��m
,�{�?�]���&ͧ��u��6��e���K�.Z2܎'-T��vr�ѱ�x�P�i���
�Ί�����w0��F�{
�b0�b��~c�r�C��C ��Z����wI�2���?�e��쳤��Á0#�����+������Su�p҂gw�Ź$0�� �\���d�O�N`�_[�L⽆��K�^��r�7���ֹ����HL�)�!�<z�kJ}�a�2��ۓ�X|5�޽���>fѠ*t�t�}��w/..��0�0n�"������/�b��c�H�r���lHO�B��@�v�љ}�����a�H6��U�g �.�9�=�Z�f�%�:�&-t|Ԥ��':�]��*N˒��!�t~�+-�ב�R��m{
�z[���]K�n|`)O<�7��t��]Q�$0E�Flk�O�R�Q�wN�W��"�r��Rz���RL�6Mz�462.s��A�&�w��wx"�}L��,J�x��WI<W��1�ڦtO�u�u���ϒGm�ν��m�j��R.�?��FK\�O��:/>��| ��SS�����r���ȿ�Eభ�ڃW8��,V;I���{��0�^�j6}�HnZ�vkuzoS�ҍ@��)~��y���YãҴ�Z��re�bx�ٰx�	)�J/7X���U���Q��~�qr#٬_c�TK�q+{�Ѹ���ԓ���B�����A!�{���d:c:O�<����I��9�?c��8�;r�r��B��)��y��Z�ZȄ�aTB�U��f�:M
m�u��)����f+~��,R�XZ��Q�uW�kp�yj8�E�[џ���*Y�$[<r�;`ڴ�� �#�Z��7��^�Ƕ�݉e<f���k�qu�i&�X��&������Ђh�|X��wV�NM�=ȭ]Pr��bd�S6S��MOj̺l7����=K^$�K��s�^����	d9p���k��T����~��P6P��Sg�P��|Ť*,b[ku�8w�'2���%��DΉy��!�)��HGޤ��Hi�����@o��?\Vso�Ӄ����,
��
�
B�C�D��
:��˰'��jH>ūn`�~+	U�ǯ5��Ä��r7g'�-@����a��(���u0�v���4���a�����0�)ݟ4�v0	�>i>z8�vz�p��A�E��`��N;
�~�l�t/�Ѥ��Vf,������~у��'��G]׽��q��Q����.H�^!�h4ip;	�6��Q`�	��m�?PK���T|�T9��(�litespeed-cache-fr_FR.moUT	���b���bux�����w�\u�?��M@((v�HH�I�B�@�&ٸI6��lpw���ٙa��n6�M��J3"%�I��� ��(�(� RD)*`��s��U������x�yͽ�u_�U��N?O~d����k����r� ��=A�y��7�@��r��ܑʝ����&���,*�G�TnJ�j-���T�A�G�|@���{���כ��ނʏP�*����B�{9����F*?D��T�L�Tp{�A�5-O�r!�k�ܝ�R�7�'�,S�y*O�r,��S�S�p��*�2C�fT�D�'��I��T~��	T��� �g�1���x�*}�&*�Sy�S�
��R��s��F�-�����D��?#��S}A�I�}��
*{�<��/R�W*�S��� �SyR?�����r2�ө�Be��*������v*?]@�}T��ʺ^I��<���T^_���� ��=*��A��cTN�r�r��~T~��#����Z���Y�y�g9�����/�܁��1��)�__�2C�AE��׋�UTnO�E���>��ĺ�F�T��<L%Ma0���R��[|�ZB;g����J���J��oKX�?i�Mʀ�-˸�Z��2ƽG�O���-��q�>���:S�_��ަ��M�T>Z�z�����]����f������
�+�r	��˨|��0�`��2-W�𝃱^k��G�g������_�܊�S�*?Z\�U���*��C*?��O姸�z=6���r����^Y��c_^E�6܏���vT�PC�.*�2\�P�v*[�|�JB��ꀻ�x�+u��au���:��p��:��:�g��17���rGƛC�g?º�:������}Ø��c}w��|�?��
��Tf��tx�a����T~��8�K�W��+��gF���g����+#��������Q#X�SF����.������TnI�'Vb�eWb>s+���Wb����z�J��
+��V_<O�LJL2;�>r��L����靇`��e�C��O���P�W�ʽ�<�P����Cѿ�E���0/=���a��ɇ����~�����a��ðON>�|��������[�|�0�����a��<�`��1G?g��}�p��!�c޾~8�{����͇��p����|�p�ݛ���5��5|��T��}�5��[��;����w�e�|g���k��������Ap0�?��$���Gb\�������8
�9�(��̣�K��?
��r��Ga�;
�>�(��-G�z��x?w4�]?�����޷�V�N�^-�ߏ�|�t��=Ǣ�[Q���c1�}Ǣ��c���y�ֱh��c�O�ܟʟ���8��y�a/:�������c\*O�8�o=^��x�����y�	��N��l}�7����	��L��:�	�C�=x��p�����q"��h�'>�{"�w㉘�{N�=}�������p��I�C���q�I��KO�>��I8�>�u��*ϣr�����>_�
�s�7��?�M�'�&�?�M��z�;z}�>�ᛀ�����<�M����u��ɘ�N��N�8�p2�[�ɀ��NƼ�y2��gO�����z;�۞�y��|���7>��S���z��z�7�`~�s
Ʊѩho3-�?��v*�;@���b��q*���S�%�/�z*�}�3y?������3��.�pγ�Ӱ.�:���7<
��ç�?۝�s���Me�Ϸ3@�]s���g`|�L�Ө\��w&�]��:�D%�x��g�����{�S�=�������
�y����p�mZ+���}��_���8���98/.?���s0����~��g̹��̹��=��<v��y͟8�����h�w�h��s��^�r���0_�<���}�R��8߻\�{�C�8�����N��Ό�;�x����g_;t�*���|���|L�������õ.r��T���'*�x�G�
��U�7��R��
�pڽm��U��_j�W����}�-���t�0�����B��m/��u!�w\��~�zX�}!���1o�]���o^�t������>֥������G{��~��}���T�`x��;L7\���~�s�Ex�ы�>O_���;���Ÿ�U�Y��Y|1�[�z�]8��ŀ�U_\{1��1�W.Ƹ�KP��п���%�󅗀n/\�s��K���^
�y�?�_
��G��_����j�k�j�k�՘��j�cV㼹`5���x���x��k@GNY����`�נ�c�`��[���F�x�`=��}�2\��2�����֗���_��?�r��՗c>n��S�~�r�o^�q}�
��W�z�+�.�@��+�^�
��Q9�ϻ+p�^p��Z�gW�>y���X�7�;c�D�ٕX�Oi�����=��%�+��^�y:�J���+�]�u��^?s%�OZo�Uhg����T����*|煫��
p��U�����������������~����՘�)W+�w5��-o��=}5����1��\�0��G��`ܧ\��\���k��O��������`\/j�W�\��N�r7�ϵ8�.�|�3�B.��uϼ�P��p�_{��a������{/_���:�[�������e�끧���z�z���������K��#�݀���h������7}�F��nĺ]~#����ޣ����N����M����p��&ȃ��ߗ߄�{�&�ǘ�1�)7��n�~Y|3��7�W܌u9�f��7nV9��ތ��q�>}3�܂v>x����s�-X��`�;o�w��x=��Je�'�:�`=���[����V�;o�{O�
�{��]�^���>��n�oC?_�
��G~Hk���C�Mn�5�y��w����;0��ށ�l~������|
R����X���w�r�ڏ��#��w��w'���w���w'�wb��މ�?�ϟ�p�ڝX������c�7o�1�혵��O��l��ϮE;��E;�rk���Z��G�źݵ߿_�z��K�b}���߻�|f�$-���y�}�t��]�}p�:�ӷ�a>�[�~�q�Կ��x�����.�����\{���?>�'o�'������~���n<�p7���݀�}�F����r���O'ލq�p7���8��t�kwc;ރ�]p����+�.��z�=�������o��彀�	��{{ߋ�:��|x/�~/��7���*�K�!����vߧr����� ��>���}h��n&ݏ��z?Ƴ����_���^���h��/�?�v�>�|�OU�#��N}�������O��蟏>�q� ���x�O<|1�!�cׇ0s}�!�㒇���?8�K��!�漢����3�a���u��x��q>�0�ɕT�~�w?��ɏ?�|��SA�A�~�g��L��8/�)�ߟ����gtV0���u�π�~�3��?���֫���P�U�ϡ��Q�S�(�9�Q�-W?�u���O�S9���ȧN���%�5�����K��i��x�^��K�W6{���T>���O�z<���ǀ_��M����ѯ�Ǿ�?���?�q���?G�,o��Tg�
��<������k��W~���7����'��ݿ�~�7�?�[�����g���-��/�Ź���'��:�γi��߁���	�c'<z�'O`�����I�S���OOb����=	8��I��UOb�y��'��}���S8�<��}
��S��.z
p�Z���2��)���O�{s��-|p~����|xm��C�����7*�����^y���Z�@}�s��'L�#�G�;�Yȝ>G�"���>�,�g��0���~)Q�Q���pΟ�'���Ƴ�����N�{���籾��7��^��O�����>�ޫ������W_�zm�"ƹ�x�E��^D���"�Ϭ�T����ڗ�??�2�*�/���o�^���2��O���_�A�����T�A��`>��7�w�߀���7����x�W��ޯb<��9�b�{U��k�ߔװ�V�����k��|���	�3����hg�7�_��^������O��˶�u��!Y�w|w�`>���������}�	��*�g�9L�������>��[�n�-�K�¾��[�7�m�u�m�G�F~���a�^{�m��
��/�	�<�/������aߗ�����=�_h�d*���_��i�Ƽ�o���F������
~�K��w����{����~����>�_��>[F�ƴo�/�;:h�vN��<*�_�Q�1a�Zd��Q��{�J�����s�S--2�]��hk�������*E?E%���TV�N�����cZ��T2y�J��>0�E΋IT2</����}q:��~<�N%�k?!�S*T�^�J�������я�T�|���]J%�aE��6�<\K%�[��=�i����{0��Q���T�9��=�7����R�*��I%�W�&��M���o�uX�	޿q�T2����_��������3���6_��_���������ϝW�d9��M[����Y�)�*�=I%�S��0�����T2H�M�W�d������%*~�����>�~.� ��b�~�A�c�����J�~�x�Chw��0O�6ü�l�~|y3���Ͱ�5}��Ͱ.�o�;w3��**_<���u}��[d��S�t����W�d�j��
Z޺9�o�昿{��@��Q����[���#�'�>���<���g�^��s�GЏ��d��]A����7��?���vܟ��y*�b�v���[n���]��n�~m�%�/���-�c>�"�f�G1�iy�G�n[|�7�J�+'S�����<�1쿿|�V���[a�-���^_��w�Vx����nOR�t�߶º��xK�-�T�y��c�[}�E��>���>�R��Q��r�O��>��x�P��#��x���T���y�t��+����S>
��3*�<��3-r~>����{��~�c��d:f>��/��Y���T��u���'S�t��[c}�3-rN��8�����J��&o��Z�
�sL%�G�zy��q��mǡ�������+�/\H%�Ao��{m��{��þ	?��5*Y_�-*�<_�mK�������Ȏ|�<^��x�˂�h�+�'�c�O�r�x�]z�����?��x�>��x����wK���|x;���ۡ�M���v�����qm;��k���	�W����Q��oO�z_O%�-�;�%(�d9�'b\�'�K'���u�`��$�Ó��?O<�l�����q.��y�c��������/��������_�^���Tk��dz[q~V[ѯ�������Onz�󓱟
T2]����c�x�,ໜE�����?f���9S�?�Sp�;��*�N��T�ĩ�s��FS﫧~���y��T�Oˎh��{��,����T��=cG��q^�wG��;�;a~�	�J混���;c����q�΀���w;c���3��ϝ1/����.X�v��O�p�f�ՏwܽgW�w��v��+��]q~\��w�
��خ���
��j7����p���pN�e7컍?����y��?���y�s�dz�GT2���"t�^���_��.��x`w�������1���X�@S��{`�\��o�x��=0�O�~����7�aڦ���iXǾi��I����^�����4�s�=q��'�g`O�C��s�8w��'蕳��|=�'��6���9����^8^�������αT���ʽ1_�M�|L���`�t��**���i:���}0�#�`���pz��O��e_�����^��h��w�d>�}��gg`}�����F%�|u������g���~�u&��3��Qy4�CKg��ofa>[fcݶ�
��a6�2�u�l��9�q�_?��l��f��ߴ�E���Ն��x���sq��t*��x�_����\��ž<y.���s��k�g�/���g.Ʊ�<��g�d���y���y���Ry.�y�;��dz�1�[�����m�����̜���|������G�k�~~7�3����d��	_�>����?���f�T���T��f邖�Lno����+^Z��}i!��텘�/B�^:`�"�uG.ްHϟE���a_�g�ߢp�s'�#���:�ub�tb���|n��b��ŀ��b������c�\�~�a1���Š���8��B{�wa�|Y�û�ު.�ɍ]��Ϻ��ЯW��t㽭�d�njn��9�w�t^o�ƹ�����=-bo>�x�����=��/<M��H̠F%�qO_
:�}˔_Y���z�G�=X�r����ށ�c������yT>��}	�̫_]~�C��ί�O9�E�>��v~z���1omb��t �Q=x��o�~ �ҁ���1��B��!�3+�>=�:���:���{_���^�{Z/�_��������/��}*���>�~��;/�z�0��r��9�ۿs��m�c:�h�:*�Ne�^9B�G��"�ݹT���=��`�l��y��u?��C�8���x�؏}��~�Ֆ�o���_Y��0��Pyӏ�WG�?.`]*`�Z@?��y��A���A��a_�~� � ��A���;��A���k;[.G��r���X߅T�^b�r��.~
�-�C<�E��z�b>�
��/
b���A�߽z���� ��?����%ԛV�:w��WrT����ÏK�[ϖ��(�,�}�����1�Q�_����Ҳ��|Q���
��}|�r0�;�z�q0�c�*ΥOTя�����U���*��/����í1�ռ�덱/�����PI�g�k��f
�E�2���{�Q���z��1�+�d���'�C���PoD���^1�v���<�5�y���Q�x�tt�AT��Ƿ�1_�㜿O�t�����ØDZ+��X�uϮ�wf���Z8X�?n��8ǟX��6�fF0OG��F O�G�:�}�>��爝?�i�J�cW������J='��������Cpޭ=���C����|�x>|(�5z��X��C���a�
�a};t��r�u��1?��1o�<�{���
�_�z8�u��G?;���8��5�)_��'�#_���X�EG�8T�|�/G(���_z��#�?6>��̑�3�	yM���g����9
r����8
�<�(П?��A����Yw4��c��?y��}��>pr������x�����^8�_��X��˱���cq�y,�����?��r�u�q��k���������J��~O<��x������ǃ.��x��#�c��8���{��y^p�G�	h��'`�N�8�y�jk�d�����;p��I�~'�ީ���w�I�C=x�b�c����c~6�FKp2�3*�|�70���l	^d~���sO:p��ɘ�gOƼ��d����j�)�;S��������o�}*��
8�=
�J�_���t�}OǼ�=��9�R>�u}~��د��8��ʇO����g`=f��z�3�^�L�wؙh�;g߯>��cgb?��L�o��~�;��,�/:K��Y�/����]v��O���ga/�8�l|�g~�;���h7w6���g��>��'�ƾ��-�W߷ �<�[���-�9��<��m�cp�,��{�z���E�<���'z�e-����|��s�_��{_9r��9������98Ϸ<�p.���s�+��>9�\Կ�\|�w�_ot����0���<����<�<�s�yh������\|�|����c-:p����{^���r��Џ]���������0�;�v�}�r:���?񻀳W����w1���¸f�B��U��q�Po�*��'��Wa�Y��f������=��J�gnz!�1��.��Ņ����w�|�M�ˇ�8����/�{��g.�8�"��Ea~{��.B?v1�a����רd{¯_��6��K�Y�������.m	����Kqn-X����.*��}��f��#�`�׭��<��4�2��3/����X_~9��/Ǽ]s9��gZ�v9��W��B���T^�x�J�����᧮�h�
�EWa^��
��G�¼��~�q^�����L��:�j��_
���j�ӑWc���j���y��k�5���^��o�z��]x���8�r-���Ἰ�:�+����=��z<�z��0�o|��ȳ�w#�'߿x�77����Mhw�MX�n\=t�f�͠{k7�{�݌��ӷ�{���ܼ�ț/�x�ӷ�w�x��V�k�V���[����[����[�7>t���߆���m��n�|�ۀ�
x�q*�~�� �P�釠w��!��Y*���y;�goǼ����;��w܁u���/�#���?��kʝ-���wB�yÏ���\�}z�Z�ëkq�.]��m�i�0��|C%��%T�����4r7��ƻq��L%�s,��t�=8w~y�q�{q�ι��{A��^��a����_�úvޏ�:�~|��q~|��༻��Y�|Ϗz�� ���z����<}��A�<�a��/>�\�0�y���?w<B�#Bx�#����0O���Ť�c�sܿ���~��n�(��(���G��~�(�e�/0_������/����X�U��>��ڡ�A.�ǰ��yp�8��)�c^�8�G�K���1�
�;���uT~�ϥ_c��򩕿�|�5*�d��[����a�=���Ot=�u��	|�'��Ob���$��^?�$�?>�~��I��=�r��T��s�)��#�B;�>�u��)�/�?��?*���?�y|�i��^��z��{�񧨼��S*�f��ڭ�����q���/���
����c���߽��z�?�`����Ϣ�_>������[��=���9���΅o?�}w�s�/z��?Oe�����J�+<�OX��>���t�����<�Ͼ�Z�3�����͟��n���Qy)���wҋ�۽_�/��v/b\[���&��u�z	p�	���}�K8���w/a�濌sj�˘��^�e��/���2��/c�n��vy	z�<��+x��Lx���W0��Wp>��9��+_A{�r�_��V�xy�߀��������*蕥��N�W���
�g����5��_�z���_�}�u���$��_������x�
���w�ߣ���'�����ؗ'�������Z�'�q�?�o^������p񛀧/���Y�&�q̛�O�����71�׿	xz�M��ط���y�|�u�[�S����3��º�������m�R��t�X�yyL��o?��j�����>���LK���������_��G���l��_�S���P9�����?���0O��鏆���	to#�C�~_�m՛�}޶%9���>�]����w��7�:���~��h�/��=�y���
Χ�͠g��Oг�y\zݯ}k��T��ץ��^߿F��ۙ�Ƶ|��n�{Kz��l�b��~/��;S���1�YJ����m��X���_�s��=�k��Sk��?��M�z��������o_�����������7���X�/��7��g�S�*�.�;��t~��8E��f�4�C�=�-�T����Sǰ�&l�w��U-�R�~����������J�|�����m�{tM��=[�u�H7���S�U��Kz}1�K���
.�>f,���7���J���H��6�F�L��s@�״<�uR^�n��8p{��8���7�����Uگ-��<v���[�'�����*ץ�L�&(�������snW��A��'=ߏ��Iu�E�Zs*���������G�|�����]�=T�n*�����ߛ{�Jl���~���D���G�i���<���A��H���{O���to*?A�pjߛ�fi��z��v6��-?Nu�<�����X�
����Zo۱��q>ݛ�}Ҷڵ|�ʽ�S�>�xbS@�mp!��O�]*Y>�<��s�5|>k_�/��D���}5�6�8>��r
�C���|�2��3��,�G�W0���X�4)��G��b*��r��,�s�~�X��fp��w��{�~_K�5��5�;��&�u��$���wN�~	�K�>��r���D�k�a�W����?�h���������^m��}yŃ�v�˿?0�v���c��r��Z��:��D

s&�۵ ���<�;��>g��{Y뿭eF��1��zĆ]����l���]j������������M��1���C<���"�\z���?��2�=u�d{��7������:W���et�a��T.i�?���|�{,�_��=���6ò~/3����`��J����}�G�����u��o����LO�M��@z6��}���ӵ:���+��<���@�T��^��ߡ��i�[l_��T�վ�<��a�����B���c�/�x'��#�!o���=љj_�n����iy�ύ�/˿�|�oR��>�E��m0o�U��Ս�#�����k|�����to���ߏ�7�\tS�?�?�~�uG���h[gѽ�����9�wJ|?���*���ѽ#��'-jQ�����<��}�T��|;��R�!�;�%�3��]�4�]���~O�?b��>�s�X��Et}��up
�ϡw��M�ޜ�J�v'�}��٧[��N��H����1�m9X�f��ߋ���Oh�߭�N���-�w�^�<�K���:��{����޿̞Ⳛ�;���L���[�&�-�~H�~TavG>��B��+o,әn��l#���Q>;��:j�=���I�ѽ��<�_�߫>�w��u�7O�jy*���q��A�nj3��_��@��َ|n1�e�B�����n��]����u~Ou�ߛ�_���o���P_�{_�%����1��ZDω�>��������'x�����ʹ�����|��{����������O�%�Ry/�=�V�T�bh�^�s���=>{[����Z�ߌ���3���������`���+,j�Y�����^��'j���{�/x��D��H��yLƫ|�1_����_��ݿ�9n���?�%�Ծ���Q�Ϙog�K�?N�b*����I��l���c�_Ȳ�/��0I��H��Ҷ���ӘF�~�W�>e��JGh�v���z�y�3��x����{�v�O�{�Ë����-g��z7R�-��=��7�1]oE�90�&�����s|,b�x��>�Tw5��/��7E��fj�P�
y��f��=-�S����ݛʎ1�;����ׯN���|�S�/i�}�.^���1T^�g�X�8_���I��	��6��K�ݗx/1
�|$�6��1�\EuYֺ����*���-�G}�v?V��=�yD��zm�Hד
o��'��F���|��ؿ��Fן�y�6����v�n��+˗��wg�~�ڿ�כifn�i*o��o���/���
�@�{7���K��t�
m�Kp�Bj�t�-*kx�=��*�w���wޚ����~ϲ�YX�d`Ɯ�l��.=��M���Z�C��9�X>@m~��홦�:��v��w6݈�4u�R2�iT�
�k�s���}�;��[tgҽC�b*_c]��?8>�,�;����[���A��t�F��$���<��۩|B�x������X���2+��5Q9��lp5��u��}��=bh#��J�}wm�*��P���YT��̋i���߱^�e��?��J�1���s�m<�1�.�]?�vN�����ӳ1Tw	�}���X�D��s�s��v���Ry����J�sy�j�� �>��ܜgT�7�/�_�������u����{���3tܱ�3��,��=�M̡������C�"F��Ld�������4qm�Ǵ�׷i��M�^|����q�f����t���y���U�l���e|fR;'ҽK[;�Y���q��3mA�3�ͼ������@��Py�ޓT~����v��?�{��f�}�G�9�g�ݝ�˨|>@�
��-Z��}�T��OX�r�Ծݍ�μ�3>���:2Fc�0,2_@�ؓ�|���1��=�+�a�-��9^���;m�H��=ֻ�};�~m��Ϡ��-�9�m�㱈��D���o�������e�?�g?�u����݈}���I�=,wa�H��U,'�g����@�w��z��>�<��a#�J��{�ה����YnO�
i�R��O�nL�����ڼ�e�T��؅~��ʌ�3a9��
sQ�F��B�6�P���ҿ3�j���=�[,�g��;ng*�z?=��q�\ʌ߉�U���j����N�����)�����US��Z��"�Kn�Q�\���8Ӷ���q��+�L�\�o����ew������_-�+���U�#�������`T�G�l�]�7���ޗ�-�drUXX�g��`X���L�^�ĵ�Z˄�L\,ifj��(n�7�
ո���3���\��L-\e*�(�r�͉�r&�
��x_�&�+�A��";Ps�(�3�am �+�E��]�T��m���^S��C3�I�`�:E}�-�j����F}{���'4}i!vK�3-Y>���b,�Ѣ��v��v�*4������z�ai���J>���[�`���!
;W
��Q~�^Sz�gh)�hp"�����=�L�,Fae�|~J5�����\,��i�2�r>�7J4���^���2<>j�2]����.��_�F��P.^�>+�+��L�T,�h���P�f:K/v�i���^�h��ъ(W�U�J�e�j��ʫB�sO����ry�����3���/�h�hv��9�X\�7�-�W�VD���G��FoD]���"8 �Zɐ9��=�A�P���*�@\���i�'bn5
i�2�˽a�8��"��/q��,�D�ю��(���g�_�J��)�̚�0����^�h�����@�^4/�LF�B\��Pm�(5��]��W�L�(���2��x@(흙E�∽�C!m�����j5��N1�ti��� O��/���U�L������"Lh�IV�*�J��V�̶<l������F2#<����V��v��R��]��E/�d�K"�:\�.g��G%Z�b+�P{ZSS�Z�f�=ՐP_T��r���_���aUۓ��G}a��/U0����5��,ǵ8�����,Uja��+�^X^��83�L[�B��=3I�!��frQ�ƻ
��Pr�<ȃ)T3�Uj��
7�h{'�qq8�#D����J����j�m���J��Fw����T+�FY�5�>Ƴ�:�$KR.��)B�P
#^��p��s=�ni��xe�0T�V-��%�����q�
��:B߫�⎷]"�@�C{G*a'?z�XP�ᦸ.��j$�Q8�s���)���$T/�<��/�Z%_���x�i��!}�*��"!X��	���hz�F����%wyD�JC~�6�ѩ��*/a+����>�i�[N�C����f��B�z�	�������qT�7bE?�Yj�!�!�T�
P��*aᡈ/˙�հ�7.��dt1�	s� �U/�̡�:�4�S�ș*udeG���"G�
/wfVw7rRט�!�*��L�L�
�	X�|�$`eI��J�8u7*1错���I�����g�g����|9W'��F8��+��Z�o���t
uSw+T�7s\�vj��L�b:����
:��&SK�	'�15Aک�;r�y }Z�r/��c���~ɶ5s�(�I=`��"���y�1j����~�<!���ƅ\0SH-,p��G#���#k�8�\�F��2���SK���@GA���r^�iʽs��MkQ���0�C�������L�.��R=Y�LF��50H� ��i�(�.U�B`�Z��� ܘ�+���8�L�C(y刍�mY�c-:uKȱC��9��2�Gᘾ[���/��WKv9w(�����j��)��F�h�x�5�M<�p.��@�������#��B���(��`S�F��i>kd�x��v�9C��ʢ/�� �ɟ�3��/K���i���=6�PC@T%�3Y����N�!:�T&J�!�2Z���(Ƃ�ʃ�D����c�2`�h�^���`\��D��O����)�2���׳�_�q����α7d?{���y����(��Gyf����5�Kw:�O�
&���r/��^t��$�Ni����ݓa>A��`'�~��Ų��2$��#�V?K����tN0Q�x��:�j����_b0K�8&P���B���]iJ�����P� 'L�T���D~���Ua�0#�'�s��df�)2�/�t3]�=\dN�݄�xZ!o��GJ��U�����&�'�i�V�|���,�p�
��	d��[�jv "BŬ�\��MF�.&���h��c,c�J�)\�	}`���J�j ����X?h�_�Du����Yo�;����<���c����%�jfAX�;K*�%%e���t�����I�A��gbD�
,���O<�6q?9��~�Jk��gu\��U���4}��2�&�2�*����c�Ok�1�G+*"�
ϛ7��ʦU�SLtr��pG&ƓZ�[�zj��K�J,N�/���UN��z+��Y]�
u��z\�υ8���(�:�^�B��6яa�V���/s�JCԶw�����g�}(I�Bh�f�*Lwt<QT�V�Qo&����kJa:�[ �A�e#�'Oߥ}���r;�
+(h��^�O�O�f�FL�Fn�Yb�d	�IF�ɯ0�*���4S�O����(2i��/�?U:��+��b�)�r�V�-�@7h�%*�
�:�M�ifm5)�����;	��b$��:`�?C �$R7��"�i�,SDk
�R��KJ��k��RX.�Y㣍f{H�D?2�A�c�%U��Ca�+�i�X����E��IC諽QTbhA�6�>q�p�������2��`J�406tM`$`�^*�gϤ;"�\F�w7�����;K�b��/T�"��=�L	��\̅�ϣ��k�ٳZ4V�<���,Mן����^�<W�Vi�e�;�E�����;��
�k%"jy����-b��iI��/z��S2L`uPw�E@]��A��0d����'Hg�dН�$�����&��B�?��"�n�|,S6O�i�/G������}nǩ{f,�1(����U]#�
k�Q�0(R~{CfU�����Ks��T^�#���0|�f�Uqw�_e	�Pdz�=��Ii����7��6��(U׋��CL�����Ia��,��T	V���Xf��J�f�Q�[���II�3��4+�Vw}��cw�G��R��t�����=&|��Qo�?���t�rÐ�%]�qu��K���L��������N%���E�����@3C�f�wVE/�I>����z�\Uei��<��g(�ת�T�%V(5����UD�BSF$��ŕ�Z����D��_����	8~av� O�]�Yw@�2!���UE�1�
��BQo�z�L����m�����Б�q\����cu��%劜��5ܰ�>�y���R��P�a�(��=���H�M�I.c
�E���L��tH����4$ZЈ3��K�]��m�y��m��zH�r2����t���1Q�D���3���ь�3�B�F�(+��L���JQ)�d��xN~��L�4mM*�2�_�s�����j�fh�Di֠��Q&_dY���.�&��]���{s�՜�����9��{I
6�\L���+�J�a��~9�U�����S�сA�$���P.��C�F��Gf���>��L�<��]әA�b�*�"�賫���Y){�΂�F���Y%�K�\����4=%��O��"�ޕRP�ы����	
�)�����c������`DT�z+1��ec����ZԼ�x<�����Z�N�Ҏ"��{Ex}z��*����B���3j��V��J<dV���4�h��*cF�T��FOq��ޑ�8�WEK1\�Ӧ����
�9����"�͖�c�j[�@K�t*
7�@k+F�8pN5Z��:��xA������g"�0!�6��bfF>�؇�*�m���-�_
� \gw�B�@�hN��&�Ϛ
�6.p�S�c*I0t&2��9����y�h��E��r!g�������5�����锅��F�AϊA�b-U����pG�@��~�n���
_̛rT�/Ϲ�Q����!n��"�.�*��D5F��\^�0aL�6*pD�LdB̲��)1ޓ�
�m�2yZ��9(�h*�k
��43A{��S�1�_��;īV�2�<gE�҄���C�Q�<�
zS�5G��4st����v��Yy.?�v4�ҲM�~��	�"JM��uZ4B���U�d���@��#:�zusNҐ4���w(�h�+�gU�,�Ǝ�cj:]�U�z!/�A������چ,��	��?Ÿf��%�iȬ3��=�C�¶�r���ŢS^�:aN�Bo�Б�o
�?`+
�@�/GxO,=���L��ڛ��3�@d�����
N4��*��PN����qI(zP��Z:�qu�(���rCO�$u{"#�����E����0������ԛ	�/��d��ȸ�S��^�ciB��ɖxx���5	�F���++���f�T�@�tN�K�e��%��#ʵ�,�A=�s
�f{(ŠY�w�?��9~2P���0�R�W�R�Y�֔BG�ܯ�Sò�FB�PK�س�PZ�D�l4e�&��W�`f�לu��v�c�d�wj��X�o4�3�}N�%sXS��h���#��9���_�Hp��}f�3�G̱�5�lb5b�7��4y�$�\��*'!��\���m�`���&��܄�N{I�0��J���ЉI�x	��Zz��%���%60E�VȊNj?�g�l��Fl���	>�3��S���ق)򫧼<*�G��-�{gL�J��V�[e1���5=��B��h�ft�̚7�n�^c!�`����h�^�r��=YZ�G{D�d�e>��/��'�<��a�����|_�d��S�D}�8#�,��̰�sO9�bO��B~[�%i(i�Ӭ8b����&��|�E�6G,�x''$;�c>`C�y����c���SX�鬖iOy
2�ɨu�?֬y%7PfN�uӌ���g.r�ɸ��r�f�	��h[^�}{�Fŕr�AND��5��/0b�:��$�/��8�7��I�U��YL�j�}�XHByS��X��j�h8h�K��Z�މ׀ �^�n��p�E��P���1�\��=����	d�/MSL���,��s�˭�?m�B�]�ȏ��	��F���fL�,�i�t*�ue���l�ϴ����ey\8MS�Q>�b��F���h%�b��mNW6�C,�|�ʴ5_��i)E���n�㉐���x'Ie�%�Ơy��vL��[������Cq�S�L�gk���1j�Ғ���F�ZVV�=$�|�q�p���Z ����y�YB����S�)s[���C��'0�[+uG�C@8�f�b��n�ݬ�=�{j�cX_Ecv��/�XmAD�J��ZH��'M�ɏ�U�z��J#�7�"���pP6
l�dG��-�����8�	�݋�cX(]:ڟ��^�v��a��S�$&�[�	'ܑ& AXT�J	'7�b�R�n��;Szԗ
2u�PVZN�(�\*0����xMh��<V�b.��JB*BȄ
�!�r�xf��s@h��U�о����+��Γ@@g�z�]�A�T�l����&UB��I`>�k'mA����T"����
�aAU�r��9=�/��2r=���Q��E�1N�)u�a�Y&\��BA�H"�*�Cn8�ؾ��bI{_0���q�3K�~M�#>�]�)SR}�C&d�H�k4`�4�-���֌U�0�V�j����c�����U�ۍ3�-?�(_��UH_�j�I�z�rJ��τ�XQ�`+6S�-sE�G)�CÕ#�L�I�x$Z3MՀoH"�k�{���S-���ѽ��A�8�M
��(YK�9�w�K`���lt�jr�і͞�
�zh��X�����H��	[�6X�A���^,N��1��F,���&x��Pk7�f�R�@�G4�y���/އ"%5<�9B����I�o�B����{�mjbR+L���q�71�g
���5�\E{)5��@�ڮ ��%�}�,�
t�D�F��p�*,�k�p�bET�$HW�$�<s�>��%��v5efFi
��Y�
����
[a�2Y0�������}�J��$.*�e��$��;뀪y�Jb*��Q��'u�5���
�7�t��� h�6�~L&��GLÃ�Z,��oy���do������*G��_د���qb^��`"�ԄE:ˡ5ȫ�^���XaaDA����.C{�ǭ�:�DU��Q<%�D|��R1�����U!�������a�m�5�gǻ��Q�3�E#�s�[��H)G�w/�d��hJ�=���2|��OUi}��<��b�U�-��]ffTf뾮z��l{������]"%�D��R���(�U��Sk�Ȉ�]�j�=��A�����;���k�¹�����8{����Ѵ�3q�5���G����s�5Ap0����S�#��;�m�L�ҹ	v�\�Lߙ��ŭ�����=k���U��N�V��|ϭf~����W�������Y/�A�#���ղ���g	ht�`E6�p#%��BJ�G�j�)r:�7���i�/W<��� �� �N��u���B�� "��o��Z׺�'i�"~#uBR4���$*�@i��y��y�'_���~9��q5���e��d�)�١j�
����Mv\.
�`�[o�[�4�!d�UD����"5
%Vة��Mܽ��u��ŝ�B�
5��@ �#���/%�p���6z]f�^�e	֔�oE���8|qeE@�,��!��_u[�A���D&U��ώ.I^R/��D_qp��R���YB��]���:�=�QH��v���O�y�P1L~��)w�E�	�8݊���h	�y$^!`'�pA5��O�9#|�1�`�@�Y4�h��9���׆Ęp�,�t(�
�c��XU�~b���DŽ�s��&�7�0�IyE����;ҙ R ��Ũ����bl��G&7#�S��k6]h�������I���]�V�f*]�	����P%)��t��wl�
M���hO�\�-�h�/qy�ʯ��Z���X��4v>Wbᢞ�i��u�qG^K��&��)Om٪�I�6���̱�Ƞ��AH;ł�#%akeشu���0�)�F��3�RYHT�;}�e5�Dj���r�2St�%ZR����p���
;6{��V��(��D��;�U��,2]���j}em7����ut�E��[�T�y�[���J�Wd����D��Ų��5��*?�SL��b�--��0ߤ�aC7��tTC�`f�`IwOff[f���K�2s�-�,��֕Y�633����}֌��E	Q-u0�,:��	]V���N��[+���)9q���:�#��E�������S�r�є���@9��}'�.�%:O�fon�o��������j`�s_��}���rB2=�E l(=!�C��Q3a~��B��z�+���.':�0R	�Y�	b#61fs.d�	v~J�Va�'��?��#���^S��8CQ2���LsG�g�i1͔�HI�s��RAJ	�/0�;�̝�e�B�س����b[4C\s�Qn[�T�-N(:9�ZV�V# �Q*��y���ӽ�2{1 MGL���^S�2XX�^pU�&��+��qa�]f�- �bò8����x��^Ք=��O��*�aa��w�ڑ��UXU����q_����)��R��ct�0jρV��j�^`J��f�Gy�+�JX5�j:T�T��؊�B�\�zQW�Zn[_��"WU�]���Q�L�4���R��~���T�����SF���~Xm)����5����l�px��Xs�
~%�Z��^c�D����8ui�ʿp���U����B�g�]%���'�X5Qm��ʇn��	����iQ�����^I"k�
Ll۶����҈	>�M�ȟl�:�:�]�yS�b6�P�-���5%/��X���#���x�˱���_���#�
&T�/���'���$kx"����rډ&gʬF��|�.F􄶄���h.�زK��Z
�"��\ĩ>��E�U��T@��( ��۱�:�l���� ����rS]�&3N��|T,�˺��8f��∻����!F�޵�`���h���+�V�՛	�����M��>�q�i�O͑ӭ�*�hds��W�.��jJuQ�3j�([��M"�Uv���7{�FW�?��ض�ƶ�j惧Ӕ.i���H�b�)y�HD�%�{��R�rQ�B�����*���^8����Ҧ��3�����6*��>�ʪJh0�^_ص���K�X������H)�9��%b�Y���Њ��_���n�U�9>��Q�m��l�%,U���&�`h,�-����2�y��z6N�E;�f�'�`n9yg��2G�ʔs,�#.�C�b	b;������1���B��J#e>X�e
���Ud1�D%��*�PYPf�c�k���?�0^43P�e-�`�:��N��8VKF	�jTj�]�o���x4���sX|�c��ZY�9YB0�����#1Kn{����Q5�1E!��+|pd�xIvõT#��(���A,���̋X�̀u���<��L��r�M�UӇ���(n�}��Bg���H���9�m!νJEk��E�e]d�ek�(Ϡ�-E�
'c�&	<=�FV���^ a	8��r1���i����FX�4{+N��}"A��~5��U=<���Y���
e���D�_o��r#2DK��Aض_���Od{�*k�Z3s;�[m��V�r��l%R�J�DkS�[�)-���a�6�>����Jc�Χa9��1p�PfP�;l:�
��{$;�M�A���s�y�^c���q
f���u� �ַca�yL�8�)�
��V�>>$-�BM�6�����3C�>o@{n"�O�լb`���Mj"y"�D�%��[y��$�˜�Fq��3�ۛjU΁����e��lc%��@������L� 	 �ȁ���ZQ�$����p����BmI!�Gi1'\��'�wR�;)%.t��;|�q�=)�T�6pַ����-�(f.�%X�dUZF����^��c���qGo���mdܜ9���G2m��.|��`}����i9�N+m({<vZN�j	_���g���L��F�ڔ;����O�D���SZ��u����Z�JUS-Up�4�{b"$�����۷��=-4��QY���M����-�]�-��Ǘ��Y<9�^�{qC�s��ےDX��2KJ���^�iJƬ�D��բ�w�7�6�
%���+6�ƿA͙k.%���]4�h�Uc@Gy��<���b����_�<���q#�9�6c_�u�qj�]!�A��>�b�ܭ�l
�G�4�ʹ�N��>u��`��;b�L�f�<��UT���
1��}j�yAO�-�pQs��}n]fD)��s�
�$!6��z�(�.8���z�S���r,��
FoZ>_�6܇N0�4}Fo:r�m�|P��:Fm���HP�k
쒈rd��Z�$�~�*h/5B҃Q=�}�۹�n�wU�P��@5_]�&
饎�#I����]�:�<��c#B:!{N��(2���wD	��*	�%���M(���[��|/�O�bI]$1,��lXUx�|���4�c�ZT�aی��Wl#�ӝ��֩Y��X����j4܏jBVX�R�tnt���Y#5 z�S�D��:jKN��$��U�7��VP٠�P���v҄D�J���
��wf�d/�Z�����h��Q��5@��9���m��S�Ȇ���7Jo4�<�4���jX�Û�	�`�ԝ�fG���h�YjJL2���L�r>���~�B���9���D�+/�hW��K����9�P���+�X�.Bn��
�g�n�M
�]��.�\��6�K�����o!�

�μ*���q����#!Fy�/�t�d��I;v� ���y�DR宯GTլ���
�13G.��zq��F�GD��"�ܥR�DBos8k�&������3ˠ�!cf��q��Q��kX�3A2�r[	B].)%
Y�1V�a�*!<w����m�{3#�g�}�J�IXE@j�i��yfñ�ٔ>�=%�L��mV����M����
�]U_:>K�h�^�"K�˾��D�VH����r�n����w�|_�ȑH�b	?vG�ޛ��1�6C�<�=gl��V{�؈/��S�C����H6$R�3���^�=��%��ԯ�%�m�x9>�Q =D�DI5U�s�x�N?P�k�e���M7�7���۰��Z��U%�b��~�a�Ҋ<d�5��_�S����0�v��v�pRM�ATR=N��PX-�Lib<Iza�Ȝ*T9؛o+Žc&����BN��)߃��^$��i�4,�ɱ1��;31���#���j��$F�N�I��t��S�HͰ��$�C%!�*7�?O���m@���<BU��
������b�^��[�{1I5u�T������p���c�K�u��0��j2cY	*}��
��د[bȺ�Ь��.���f6X��r����D���z�}��f��9f��XGp
;af*:�$%IF��tj.�&�Lf�Ggo�����d
a?Dgb����!��6���O6Z�֓�Kb0u{.6A7�iB�1o.ȨJsy�͟��j�|�K�\f����`ݜ����+�8�Kf�ztb�<t�`+[�w��R��ƛf�);�I�@�-)$i�;Ux͖��ȸ�����t+�Yy˳5PX�h��;^$V�R1�>;�����gT��i�-�F�x�ʑ�R�u��l���ʑ$�=�R,�6#�b��
�c<�Z�왱��%�C���'Z��Fm��N��E�(��w��slx}��j�Uo�{.&��y�1�@�=թ9�m�K�v���\��6���q�5H�
:�Ć�TB������5^Q����~�)Xgqm�f�1�&�M$���rr$�Ǎ�ǩ�`�"|�|�+2�^��W
�+�{�%�A�hB�~�F�E��6�:L��V5D7�jh���cڍj����񪽐k���`e��S�ȷ=L�jhS��=�����5z�%��q�9�l��d��a҂��F���–���,I��^3��"rۙZ�J��r˒�,��-������^T�nO8�<3�9j���!�'�#��F�fטm���B�H ��Og��N6��H_�F��٧���NR7����$��sl�un��D�&l��Ԩ�h������z"v<%ž�G�{���U��hD��:�0�KD�H�j��(2�g�+�A��O�h�VQ���F�WL
z`]�Ч��1o�%v�78�	�M�c�'�w&��"s(���x��FV����$�Jk�;ř�ΠBp�Lv����hrA�^A����\����&�
�K\ޤ�b�H#М%S1��a���
:5���֝@vPb��j[����ح3N2�xf9%�/�<D�ęO�hˋ�D&�z�>��Z�X�T��K�Y�4&���XUfIH���u&=�ʉ`x�U�d*l]��Ib,44�~C�*4�	���Z���)�[es=�ׇ�)Cg*�A!��Ŋ`7�b3ۮr3?���Wq�SgK\0fyV�j8e�d�����Ln��sWc�K�,ny�LYI�>h�32����3�*W��B)��fڬ/�Q��l�&�z�x��"Ó�yI�5�Q�XOQzǶ�
'��`q&�L!�>��n	'0M��#��P�(�A�|"��aʚ	r=�:M���h�E�T�+B;�T��5!�."�)$s������L�-�h������tcǩS�fXę$,`���ҏ�<"e�+F�Y*J1��P���e�XQ��5��r<�"���F��bt%��#�
x֔;����0�4mdVyR�����S�����	x��ӤсB4df�f�CZ���{LH��<�@��/L��j2Bj�h�_U����]m�
@e�*��G%o��U�F�H��6�@� ��]�5�
�hL�y^�Ȋ��H��H���,��mMJ%�����ʷ#{N�������N]a�Sz�x�V�s{U|�ٔHM���wNx~B��lT�`IGO{w{O�$
b�c9�(`��2�X ��XRmC�x�r���1��x^�a�[
��P�с��i��H呈�jB�aӼ7�!sA�ct��2�HBĥ�-�c�����&N�8j�(��7�|�XN�hq_�A+m�8����Ք�i�9/s^�(��;3f/��pV��̒�̢���4�V��@]Cϧ"霡$hm��OA��O��v��1r�E�"�&T������,������\������\��r���z�!�T��e“8z�K�~NU�Њ9r���ؼ
At�EE�K#��!�I�ֺ��O"�5���W~�·�XXN�;�N��53�G+���=�&�_{ 	����8��D�OFꒉ�SO����6�9��l 
���t��1��!ZJ�A�b�)���m��ߗDп���XUg��*+� #h�.H��r��F���(�8g���Ogx��!�$��ޣ�"�ы���m��tnb��¥ J
B�C�w��*�E�d�D)�A��>�G_�c8@��>X�HN9:��L�4[a���V6c��ېz��O��6a�����I�	{��KXV1ARH���JFZ]F�H FF�b���V�_l��X����5�`�H/�rT��[ݵq���PTʗ�Y��I��F�SS�:E� '���:v
���W�;�}���P͔�s㐅���
	c�����%�3S��&����騬#��ԂE�\ikq90�w�00ASe�lRO��|f����c�n�ˣ�T��	��"��Em]���k_8�����s�U�L"��Kj.�Wu�f��8�Y����nݙ=��~cF�DE�ei�d5X�j�K5�a�/�g�W�IS��J�i+M֛�ԓ�p0�#+�,�2iј#��AB4	��!�d�?b������i7����٤�t��[��m8C�TͲ��Y5�
Hb†������ACx.�_��2e���@���FJJ�S�%�� '/��@cV�.�n5��8��
q�R�3��*V�Xf6$�$D ���zTS�p����S0�����Gb->0
x�j_��V*ca�R�D!�<�j^�Yͣ�v��U�x"=~�6�"����U��e�(ܙ�["�K��i�(\l{�hv�X�^�dC��UlT�� wvqU��fl��hz͗a����*�&��M��w<'d'J�lEȶE}���k�Bkh��4i �:%؀�=���ı�'‹��C'�
�Ő.ؐ�h�ʬ�
g���y��	����^�Xw�0�	$��-�̓�2wҜ��B�f�5/��l	/�S�b����d�8�,����qBf̤�
.l�5�1B-�V��Z�|�x�ƨj�l��4�$n
�,P��T�t�"b�d�t�֠�M�78q,׭#�2���[�l����6n"	����,AQ��h!�,�F�mk�
�$�Mxn=	��j���/{ΌŰ�qξ�ay-�Wz���~l�6�z���\.&�$,��_�E�FQ�U�!���F�<�r���斳�=��̳����b-��
�@�㿬΂��X��p�Z=�l���M��|��ٚ1��8B�M[�JřaF�� [�
�����L�˃X(�;N)TRR�^�`t<b4�M�i�v'��`�I*�w�_��߹���55��'��:�� ئ��F�hj���1�ʞ#(w&��/Ȼ�Yh���Lz�m#F�H,�=P4H���ǡkf�(�
+8
N�Ÿ㥶2@q�7�����j��3�o�f*Õ�,l3L���ֻ�/6$F	Ky]D�Ф���
�-c\H8n��%%��h`.9�D�g��!��PoI'9�y�����|O+옼�!|M,wF���
��-�&RW�ŵl����	Q�
-�HF�3�������]�iƆ��J?9SR	>ہz��g��p`�{I���Y���X]ٌ̔u�*F�5�N`l��J�x5n�|{I2P�\{��!�$F
gB�DלX�I�<q���U��%w�S�dbX;��'�c�(�x�z#�N2���q%�NZ�A�*ެ%h��<�ȃ�������%�0۾o�bC��0r�t"B��b�ǃæ�}�ěr�/kW�6z��W6!�b���I�-�����Nр�����٘(�k�R�?r���4)i��$6�<��m����Ǝ���8)���Ol��tN��9=���B�A"I���;��7y�
Q��	�ɧ`I�(˜-���䂥j�"��Vo� �_Y�@�7��*`=o
�5k/л<a��ޖɵ�Xw���� �{�P~ݳ�u&}x�ɂ86�b�
��4;N�b���]��5�4�~;�u‚��Qܖ]t
j'�)�
S���Mu
���
3�e̒�l)���K]�
��Օ`UT2�Gv�J\Mi�L��2�!�悑���%̣�T���x5�q!8S/�Rw�x.�<c��RR��"+3\��	�Vө��$S�i��V���D�H��j�����3V	���m"��$T�`y�L^see�/�2��븏�a<v�}Vbҁ�,i�	C��Q6��cb,�}(�G�\�����v_�{�o�Vj���FBem��	9mJ��VO�w�� �>^�Vx_d�L�-r�7Q�S>��>D���?��;�TԚ�j�����N1�c �ŵ�3�N���e	��!����j`v�ڙ�/L�߅%/�;���xG2�3�-τ<5;S<�U�<ͯ�G�sJ�tH!4���m�J�YN�Z3&�����o��g1d����eaݪ�o�o�8��qcH��=��� F�w�]�jԟʲi�d�!:#!��'�֋����6;�n��T��C�2��:�^�-gşZ2��Z2����Q=	R�&�IL��TI)k���O%�P5����2E��R��D˶��A˘o���VU�;W_���R3��!ի��Y�4��q'JҸ4N��O|1f�<��kIO`+�c��Y��suHh��?��M=��2P���IX]IX��a�w56�*�ڒ���N�i���f��%)���GNg/�F���	O�/!�㸜+XFJQ�ؿy��&�����i��U�(�Y>6���M���/ڣY����%�-&��8�#��ۼ(�02	;O%y�f�E
�y�x�s����j=�q]lp��~� �6�G��w����/n����O�4��3J�ɯ���L�Zs��C�(K�@c�S��W����j�xڔ)���Y���U�Y"�t������v��ΊSXH.&:�y"�&P����OP)���*VCf�Z�:���E0˔�^rS�ƴ_XͪZ�
&�����͇�4չh���1��_��4u��&Oݍ���Ӵ]w���N;L��6]о�m�
'�ev�N�t\'���4�ʊ��!���ƴ8{/�3ywW�=W����6�����ٽ�P۴��6�Y�O˔*r�Ӟ�ܻ����q�M��l��M��-�krM�%;5;u�D���iGX����~ݴ�Z�hp�����Q:�A�7�Ij�3��TvsҦ.{]��\&D���HQhQ�u�?�y;Uy#=s�w<�Db��[�_]�&pb���&��n��V$u���ث�YsK����/ 0�Knb��9�aF��
pe����l	_ӭѫдI,ԣ�B$G�W����[�L͙�S�vUw!S�4�#\�5h�H��Ҩ��׭�[��5�Wd֭��4X�K}LX��sF����D�׉�%��{>��İ��3�֪p����`�A�nMD7��YDӹ�W�V0��˯�.9TO��r}@#!a�\���@5��{C�8Y��K�I�=n�-�F�t��	ѻ�w��wKH"�k{�;��������;��IR��Y���߫w��x�u��bR,Z׮�&	7	�֭)�$��p�IS?���ؚq�fe�ҨNGQ�2ҷ�H�BS,|F�"��ȫ�'܀g3%%'���t����9�n
?)	X5l$�V�#ڦ�B)J���xɼ�A���u&Һ�����rs�2m}��\R	&�3UD��R�M�d�&q���!	.5	S�;%B�+<r?B��&�.�U�K=�b6��5������1��$�����ES��h"JQV��
�xs�Ju��7Cl������Y��֔ ���M
޼��
Ɏe�V9��s<�F�R�Hn��`�j�4��%���B$�X��d)�ZCeK-�A�O�!+�/�[C�brY�&�H�F)|m/f��,]��� �qG�e� ��[���w�`$�Wi�*�u��}��22E���>�K�C�o�H|*P}�{���U���Q�LFM��i`�JJ�۽�M���f�h�V�KE4��	:�[	�f���UA�!#֡�4H��SF"1��!FccSw�^ƻ��3���*���(���{�ˈI���j!��5��R���aX��6���x~��1��&�K�+�d�<}�8`a���f�d�**u6�U�L�C�~�(�,��n�A�2��v����[�u�����4��42zة���y��d���|R�Y!�'���D̍�.��n5R_��Y%ԗ�DTxGly	�t�Vh��
0���w׍K��O��,v��5�}i��JY>���x��0��O
�QϸWc~����YĔ&�fcOJM����	7_g̙q�T������<��ڐ�H�j�JC�F�v:��@D�u�j��������C�S�"��L*p��AZ���…����r�}Fk��Q��U��6b��� ��m]���|,����>�*Z���{��M��a0?`�\sf���b�IS߇|b��X�Z]Oc���Q���V�1P��R��=,�m�Pgo9E꼳����Ub�IpHd�D��ȃ:kV��j��:*Jr��S_(�^f6.�<zɕ�6���2�!
X(<�OÒ�t02I��wAMZ�G>R�I�1�-C(4�Ah�uk&K��+�a`G&D\7��~[3��R�AV�4�zq�$a�3G\��Iu�͛8���n�3�'�7g�'+@�
�8�G9�Y5i?M p�k�.�l�[���R����HX|�Ér+�s��K	!�1bn�U�Y>J�����#\Pݠ6�,��ߞƲQ�8��_~�߮y8�#L���/�@��F:���ћ��|��DZ|!��f������s�L:�����c�י�2ik8�(>��鹰*ױ�߼v)�!XwwTJD5
���@�oM.��4�L<T�l�%a�[�9f�=�^,��=7�^��O���tl�$�>*�~(,��P����<ܐ�S����t\'�)����E�b���=�ET��./��Vnd3@z+��2'�]��ԕCD���@C�&=�$M�l���0��S�_HRQ�bo�X�[oWe��or�Ve�DW�0v*�[��,d���0��x��5٦-#�&�m���YAL����& d�+�v���
�)������Yk�_{|��ɻ���H�]�� a�@3�I��(��d̀{#� W�#gpA_v�'M!׉8�Q��*�k&"dqn]�T��`cɗM*���Mk8*%�Q���9}м��tlL��m2LQr��6h����e��V�mv�7z'h�X����4(S�[Ҿ��D�m�|Cƞ��'�o>yvw:�$�x�U*Qў���>i�"�Q�:����X�%p��y�'[S,�
G��i�jjaݚ���{���4>5�>c�[�����b��;2��O�2GDy�3�9�IU���r���]=��*,��S��Fյ��i��6�!u\�`����>���p�|d��'D�k�Ԓ<(��Լ{�e	�$T;�p�||�v�Y_���|nس߳RĜĉ�P�*�(�*�t�duv����%ʭʽe4D��%>��&��r6��Q��Nf8HF�<Bs�b�P���W˽vEE�|,/��f1�=d��RRO���V��$5ٓ�&��ʐɤ���&-��!�q����2��-g������*��e�Kr�Tĸ�Y�L<������,�d\����w!�����ވ��&�X�XT3F+M��h��
��h�ǰ�rGr��`}��uaG{Iru�7�0�'H���腒ҢB�0w4��xx?1E�M�U/�wEz6:$�� �^y��^��36d��n��RK|,ɚ�+$k�g5C�z�;x+C1�"�7�$1L��U��G/�ʕ[)���k$�N�^�X�k��d筙�
�S�U�n.<��5�0�� ���B�D�c��
� _]�Z�&O�>�G��?-����]T�&�k�	���r�Z�3�Sf�<��$�?9!He��y5���sr:�>�%"�2D�1�ؾV���ڽ<[%�ޭ/���]>K�LJl9����*�.��R���!|~��j}W��x��g�i��(���KT�&�cSH��Ⱦ#U>�΢.�-X���+�G����nu�d�

��s�`��(+^�j��RD~ȫ����Щ[1�HN|�P�T�:P>A��Xb��<�χF&qO;��%j)�`V��uk$��ڌk)V�2��Ry��`ay�X��Gnw7��X��1�\�5�VQn�%o��6
2���4P�OX�^Oޱ��,�F�׬�厚��w8Ժw���2�,��Ģ�Vb9��V5-��K�e��Z:��<��֭l�T�ɻ(�F�R����q�Ϝ�+7��L��녊g��
�������2�!�EKW��bd@5�R�?�S}+�q��A�����)8��S[�#ov���8u�LQ;$�Пd�����W#�iո��t��\F�efP��lψ���B,��mRb��m����r�-�N���Ύ�ZE*\�W��O�-��9��%*�e��hQ#w2ڣ��e�(BG��
��n�a�rcW:�9%>��"%�|4�`n ߛ9{v��
Y��&)�g-;����:�^��BP#�r(���r5�R�x]��X����.ֹ�(���
v�M�e#���^�Fӝ��`>�`!�:`��[�gI�|P�ɛ	��n3$���ބ\������7�S����ڞz1P{�4�י]�<{��&p��ZCCj�P-��~��'�H6�� �CG��7�W8���z'�A,*��ۂV#6�0p:'�kM{f�4�"]w7S�'��MEI��i�-Ȥw(���zGL=LhN%��
0
��P�C�L7p����X�x�5���G!��c���[�ڣ˷�H%F�\�@��{��vs3f�E� ��A��-�j�������ܤ���.�S�\��N�h	��jIg�R�J�{G�j�(diO|�\s<L��17��`�b�+�����S�2�e��H��QW�܀�[Ϙ?c�t˞ P�_�0���~1�Q
�'�m�;��JE���&�8>4LO7H��KE�	ø;�l��_ba�)uP~��`aSK˴��z��[�z���҄=M��}ѳ>[_�����-�j_�c���S[O��ؖE	,��,cs2K�9s2e�YI�ϓ'P�T�Tl0�bz2v/�g}�s�|���N�3�2Q��a0�w�BN�ǓP
�2neYz[���(:�����+�fu�;�H
����3�2j�A�o�ȗ���+�	D�lP,_0kQ�M�,
�k���y*9[�f_5�W�x1�㎰�*8+t��`o����J�9��8�&�=9�1�`a�dl�Ӥ�k/狜v�V����
�f���J�x��RU�]�k�#FE�]��}���iM�7�
�}n��r`!�j��N�Dk^?�6�*�
9
�Y��]wb� �<c��-��pڞ-�Vas$n�,
2���A�唕it6�!�R0�A�VN-5�y5k���1�����G�t�)9�����B�F�<`���t9Ck�S�5��,:9�
O�~d@1OQ�����^$����T�-G5)�q��䭻l�s��$b/�w�G�ӊY_q�d�Ҵ3pxO�&59���nf�%�
�U���#��][��+L�����S|h�Ét��M��I�e�*��'eE,;�&�0+�����f�D�������l�Y��b\�Nh63TЁ�쉠��*H'��Ci_�	d�o��Yp�PW&ݐ��Yw,��U�d��5�.0�8� 2u�kJ�"X��3I��V�cj=��*z&��U�#%�_wbn�̦�{>��Q���ZSL��UbE���w��KJ�zŰYU���3VK��F�ll�1-���K���9D3;&��IU��	�#�ro�ג���D8X�i>\��Ĥ3`JLd69k>�v�v�yu�y$�:�F���9IӾ��7؎V�
��
v�34^(�VT�8uː��,�%�����B��ɗP3k�/n�>���W�EFA�o�+��O*/��q,~�yDB��YE5�q�s��ƾBK�Y3STb;��j�_�߭*�П-�GlՋQ;ogSoǣ;*��[�Yc�>�]*�l#�>K�QM�mb3~_ϻ�z����U��Q�3|�6�b[$oi���	�UM���r��B�;⯱�m&�7�-�	�5�L�X�glN�i��wjXMx�x�y�9��ۺK��H�8����9:o'N���lч��b�K��z�L�}i��j{4iF�s���Ի���hR�ms�SKb�� T#�?
d�t�����?!�˹�P�,H���E|�u�:�!W�7V��Yy[q⻶.O"��;]F�YM��"�l�I���\,�9$��s�\S������{^g��E�3N[���
x��r�0�{`C��ITկw��Ӷ�p�]�K�W�rr1i�&�iO等���O9(���"�
��r/M�\HEpIs1C�?��_K�|�u����X�½4�YKcאиy�h$�j4kFgϬy3�s�L� 7X��M�Nؘۻf�	��Ρ��5t��u��*"U	�$�B�Q=��JC€�Z4����gl�!�1y9eIQu���K����&��S�ߢq�v&�~��\v�ة����3����y+�
����A4=�k��t'5Wz�$�Յ���)����dM/�a�.\_�w����u��bc��<������2Ͱ�kZ&I:�xȝp͐x3�7ZT�J�/kBT1��q%�`�<��}C��ZR���m0�k���.�4�CU�d,V.�����Go��P"A��p����@%H��X�ҤHg.���	�źf�-$�<ی9~��-�e$��ı�ᷔ�n�s�
�ԉ�P*��Q��+N�u�8��ufQ��K~&̨мa�31w�y�f30I�5�8�>g�pT�pT���"rO�'@��b|��0บ��Q
γR#5��8��*�1���*C��+�A�3ŗ:�xͬ��|�� [��U���JM%#]L/sT�ZF�1�6��ʐ>���s	F޳���|�쵫��&M);�p
��t�LAIW��)�6�I:�x_���҄�X?W��H�hЩt��
Is����7�!�C�-B�[���`U՚�"�%>�Pu;����5�|ӄ�􌭬�1������<�	D|�b�*���fp���D\����`C_XE�(�N�}���7=`�&��a$�5�ov$r7�/�M�~��N^eq$��$W_��02H�P���0��1/H���yj+T�l%�E\���j��Ժw�%��w�2���֙��MЊ��4%�Tl� ̒h�|��
0��t�ڪ*��	_á�/��1u�ϵ�$�KZ���V…�!�Vo0�#,ǘ]P?�<xYv�H6��`�FŎbH9�[�.�iK�,ҬqmehP���>����M�3��&Ӎ��;�1s�Ĥ��w��̚�!ɀ���9���L�� ��Fnd��M��b�A�{�u����Y0K��Wm��`��-R�\��aU���d��k+9�����җ���ɮzQ-hΡ�M��f�O8&
6M�\��fM�a��=Y)=:��6#�QYNԨ�ʄ��R��"�l1�?*��8�ت�o��$�QO�al�	�&N�Հ1��`*̨����='�ݠ�X��k�C�$�GFi
��
lf+��-MC��^*!J�f&��3�˺� T�,��5�>6h�B��)A���^[>+�pft�4ۅp�GͨJdh���R�'@�-��V��{����J��G/��8QC7�$�w�2�T����ft��B5�Yh�o�O�D����Ab�Bb���se��˻�R>�F�<�f�i�Wk��ږ�P�o�Ñ4���0K�y^	<�r�u5�q�ˬC��D4/��E�F�Q����hgI���0{���"G�s�ǔhE�N��G�8��b.ꙓ^���G�Y<^E�x[t��m��yK��b�)"Kq�V��R����J��Y�F<` URM�XZ׻I�3��f0e�h��6h�Bp�/�#��	�L�Xc�F�&T��|z��*-�0~+�����Ѳ��]6�3���ݼ��'�NG���Ӎ��F��Ā,y� �Vj�vs�E9�3�vv��x �b�ȗ4�d���w[��&Z�qFǃ�7Wq��u�(糱�<uj�&�>�q��i��q�ȩ(���
������Fo�ym�k�Ų,w1��!I �	�r
p��ɾv9��+����H�6�6£={�8��`VN�=欿A
�������{�-,m*����Q�&jp!�^j��z���`W�~zfy�'��Q+��h�P�����[���)l�"ZL���}N�#R�곗���n�d���\��…�%Z���c��%�g�lc�?�!��|?�_DO��zv!��t��<�Q��[j��bFҜ�\H� ���B��I$�d��k��H=��E1kfE�jK�р�|�P��S��0�)[9T���t0��3h�����`���H�⢬:/�C*%�*�/vBX��F��
@a��i��g�/�	�#�Ҍ m��¨]c{^�<L���jx!�E�&�#���H�őrI	>]��3ϴdo�w��e����`o2��(�Fp���)/̄�Xp���O���*�:����9��)��-�S�D"�%DŽ,�FB��sX�N7����5!�r��ڨ����O�{��bL�I�
����h�A�m�
+v�w�nXl�DF��S�Э,j��n��nj�V7���j��f+8+��&�8_	I���j8�$9��ļ��m7���,�^O@iq\K��EO_���A@"�s"���x*j3�P	{�]/�]��zlB
�;�����������j)	F顚g2�ѫ�0]��3%Q����kq�&��@�
���Z�5�Y"��:�f;�6+4u3�0l��)�r�Sm�o��Q[�����}�,����3�#>�ØvH���3��)k�;A�)C^�h�i�����)�Ȇ��3��
�4w>�ޡmw��ڜUz��;u�s-k������~k&D҄�l��Xa�
.b��Q�V�p&�A�;r	��v	�C��s\èɸ8�Z���y�%Q3�>���㶦�,%�8&%F�Q����8�ū"��C<O�U.,�ꘒ���<��<���^t�b���r%I�毯+U��e�B=m"�ȫ'���c}E�8���g��u/*����T
�fu������`��D��44�p�M���]�q����(��*�4�D�7��6�Ψ,���C�yz<��ׁ@b߭���M`��u�'�e:�h9�[�5�^	��L\����^�����N���S=�3�G���b�ߐp��V���+$AË�qM��]!2G��d�������Hh!6��[�/0�".���Y���F5��􍚨
�a)���lX�ˣU–^�'�c�D��t���d(�G�V�Y����¬2?�@Vҩ@<b�,�(eר"�Ș`+��d��}���Z�F��k�G�@����C�m���j~����
��X���p,�>I���'��u��V�k'#�J��`��������d#g�uI��3�_��q3f�g��;��,����jXe���C��(|
7�M<���V��ԓ�K|�g_t'��6mC_s�|����c������H��޴�^�A�����x�)r��>	��	O��i�2�ʫbj4�%����Hv�o��Z"�H�6�+�k�n"c�A�F����PJ	f[{g���l��/
$q�
�
G�ؽ�&!��XC#����ڬ��;���%����Ba�PX�f#���٩$|��_�� Ag�<�8#��"�8�K��X�0��r�=�ފj��&ATJҭk����Ķm���d�>c���o7�2:�Vab7m�iC�6о�?s���N�ލD��a(�4��E����sW�k�S�yk��y�_lG�>A�}��z�����m���@�7�ݎ���X�Y�)��*��"�'�{��;6Zk��"R�T�M�T.��r�32+$�'�9��LPm�::2��$@ӈT���	�)�|�0����Ch/C�w`Y�[��R��F����/�S�@g�~��H��TW���j0&��(�SF�2��G���E�$�QB9��"��^k-K~��̨�u
^Z{=c͒�Z�\W��V�]��#b2'8���4	V�)j��l~?�?ɢ
�� /�	;U�~׸�)�&�Թ(W�0n�&�_��0�
�\��4޷�*�jH�"+s�b>�"���!��ϑ�»�P<�!{G�Vm`�w*���ښF��~���p%@<k��4\2��z!���Q^V�$����\��Bs�Yh:x\�G�k?���k�h(L��̱������q���.&���E��L��'$��d�t8�B�]��
��u�k�=c�!]�x3��5mKwY��XID2�Q��\e\	j�@T2T�Bp��%���I�
q���R5!�=t�i
�����Hf�$�:�鞈9�CF�d�F��T�p
&��0k�q��8"��ô��o��t�n�MXshʛ|:V�FT����oéT�I�(uZo[�bm�B�%V^���6���}��볻߀���ge�M�H�\�%Rc�)�Q��Y/ϲ@�d�V��v��U�(U�T ����\�0[�g��I#�N�}D��3
oh�D���	�K�J%ɡ�b+�8c���y
5��9��&R�q;iI�kE�&�sc&�d=8����89���5��(	9kbaB���F�h\=���ո���&�Sdk�F4m��f<�483������Z����yY8͆��lF3�B}j���kl$�S�ɍG��I���M�R��qr�#Xa͉	�c�5�y"0N�hyT��Jk�k��D����U8o�(�_�h��gN�xe+�)�%�����w&,���w��Q��X�&r�eI	Yx4�__��R%mm��e�tv�m�ͥ��<ņ́hU�F�����C(�p���y��F5�h5M�\�y��<\���ya9q{)5!%iU�9�m��9���re����Zkfn'�&z��9ZO-��u�:L8��	ɘ��Ȕ�t��I���
�h��3��X.b�rH!��$��f}F0�Z�JNڄ	2��r��<y1�P�Wﵑ�5�n6� B��z�:8�%�Z��ѐWIl�b��'/�t}E6h���L����Mc4�����48L��V��{[M�?��6F
��F���=t%Sn�w�;%p�r��b�y�{!8�hIW{C�by‘�C9 p'�L�z��6c�;V0�QvP�`�XN
���T�2�K�O'Mp�*%Ѯe�]��D�7�_z�L��4y%B3�Hv'��(~:�J��:����$����Fm��%���:���A�
��dI�vKk1� Wb#�b�|�>�
��I�Aۊ��D��(�9�
Ą9e��:�6U&�[!���tz^��&ޥ�A`�݅-K�}C�N+���H_�[I�`�	b@���0���d�4�D��=�#����
���y%�],�����i��N4�m�$s쉕w�Ʉ����H��๊7�xfQ��Ы9Y�oGM�#�f!���Ef�O0��ȊQ*���Sh+��̮��I�p���w:��k/)���{Q��,�6�p�Q�����c�7GI0p*�#�/��[o��m���qE{��P�1�v�=�[�L�~ݬ��P�'��R	�PQW�"1
�����w����/×��N1�DގV�{�KE��؂��|g�ߏh��#�"�HJ'��j
�ȗp�iȗͳE���u'r��=D��Ciq���u�`j6�t�L���S��pw���ʒ4�1tE���+�C뚶�|������S�6�5�Φ�՚��I������.����i���f���&�R�vE5{V'i�ģ^�f�YXF@�D��$��/���}'
�F�M#�����A/*g��
��cJ�Ļ��/A[�/��P�;���T�{I�~l��B5��Me˧ع����õ�]f����f)��L�K<5~j��ݝOZ���B���_C�T�͞h��A�",9+j���%
f,l�o���V�;�=Kg�j��#�&�XC�.�׏g,˞g⺢���ك+]�U,H/�d�r,�M|H�A�8-*5�
���-%�6!W��ag�X����-|�&�fIl��k��=Q���%Ub3Uc�C�"V0:D���#7|W�-r:c�TO(A1�j�[�k���_�6��xN�RӁ<\�5�̺5�
Q}�9�8��AVe��H޸HFx�4RF���(P�4My�yF���UE����﹤����'���F��Ŗ�)�
o-�o�'�׺5�'M�FP�0m��R%�6�$uFj�X�rm`�j$t�ƫr��(	!F�FEcR�.�o�<E|�T~U/�/l����xǩq�WDop��Q�<�F��Zfp�H���L�D*u〖d��TM6��6�0�Y�h�h�ţ}���̠i��lD�d"8����Y�M2/=,�Gm��G�~[!�a�B���*���-4�qYz5�iO8C4<��j ���q�9}3Gu��Vf�Y:u/��ɴj@|�'w�7'8<a�g�1MǺ�݀RWG,��a���ۖs^�E�v=K��	V�-�U���л�&�Wf�1�3.O��
�ˆ�%/n�B&{���o���QR9���B|
��L͑�*V���o�̍ԿoB���٤�Y*S�^�$b���F�C&��֜�?�	��&�L�����b9���ˌ���J��,O"�1��r�[��]4R7�\��;4J�xL���ȹ�e�q�y��`"NR{"�f��g	��L��:���

�M���<R��И1b��I����?��+�_���w5��l y�jX[�ք+5�����j���ݭ��²�f�hv��'v�[x�w�1�w�MG���ּ��nuNR��,��0o��8�J��s�uk�-���{�y��*�Q�"�����j��x�hdN��m�M��x�ͅ�i���@$'�{D����	d�G'b�0��{DŽ!Kf����1��t	�zьh�:�3E��y����2
�H^Z���x��z����Ae!��D�0T3�i{!3уS��c�\�>?��������0��&���8���vY��0B+of�I<k�7I��ݐ�Qir
�D";���E|u�i�\at���Uj����&"N�WL�l0CU�b`���A��Ɣh2'nS�0�7!�Ǚ�����6J6l�0����/�2��ɼw13MW��P��вu�2���<��JD<�Bd"��iHͬ	SPO�*MZ�'� wi�1HW�a��dt=B�za@�:���pjV8�`^rFG��8��L@�&���a�O���Z�JXm���A��uv��V�1�1���ic���I��UaG�m6�J���`m���D�_��г��8�~xƝG��o!��a�u��o[JҸ �����]B��$��G�{&9Yb�7��<�S�[��~<s�*���s��+�ji���,A�Mθ��IBɘb_Ұnl�G1) ׼Ej��8G���$wg2�ݘ�!۸
����z?��-�~`�q�8և�
hQM�؞�Y[�d�P�xV�c]Ә�ń�~��Te�Z��nE�tl�[T�&��Oͤ��[�
M�;>a�l�#���{NZ�u�+{�+����Jݭq�;ʧ�H��tա瀞��5�f��B5��FD"�FF����0�MZIdƍ�ǥƔo<a�U�a�$��!2��5�y�9�Bo��L�d���<�^e�$�2\wGm;�lh6���Ȃn�ᵞ��/��\*���?r��T>�8����L��f��z���_�1�e��!�-J��3��D�+�GTk������Q��OCR	�-W��B4��8����g8T�׸��a(Lt�J:D��Z����Y�g	��z@�%�Ѓ�X֩�]���
���Q1��
�V8�6A�pX	�<��&n=M2sǢ3�b�����Ll��>7hHy�s{r�s�5\K:a�g��ofK��ĕpҖ�}e�k3j��eLa���[�x��d�0Ȩ��M4�۩̱C-3���:���FP(F%݉���M(���Q�I��a�3�=�YUsۙ�����Z������*:�
Ѥ�Ƿ�D�]z^]F7Zh$	����0�X���Z�%���|�$�⹘E6B�,9[��Wz��r��Q�5���Em�����HKM��tJ�g��	iF�益ݹ��eTL���"�Y�D�虫C@b}�'Y���4�Y�'�ξ�
\�-N�Y�cV�5(��K�`2��j[��H��t���%$"w��w&��Li[w�D�i�"��ds'�t�I���Ho=��<o���w[S\�BcX��Y����LP��pҩ�$3H�R2ub���"28$�L�1� jB��6�ēaw4���7KH��Y��Q����\Bs)Gk��Hx�Q��P�:bh�T�eY�h"�i)���w&Ȑl'�
Ky�FT#..s5�	z�w��r�{4�H
:uj�:�[��&���H��%ʌ�q[�W."�u�I�*^����K���K��4��t��1�f+��B���0��9k�w��ԧ|D�[d(���rc�P�lvł�댪�4~G�lZ�6�6axDŽNK�p��)i@]1V���s'w�g=��*ѣs�4�֍;j�aŎS�";��n�s)\��ܟ�$�x��I����oְJe:D5�G-R��4�
������,%yY����j1F㼘4n"lk���>��t|9+Z�j=��7�d⋼�z��^�|��u�;�A����ZTa�B�n�肇hPqD��7�h�E���;�1k����Y/_����`L)W���T$c�d�{�C�(�R [�Jq����͠J�U�jM�(V,�EW�r?�%�d��˜�*Bx'��	O<�����D���X�e�_��>4�a�(�A����Æ�*��2g0[r��c?a&`�rt��S؋l ߙW�f���W�$��H�lA�A:��q�1�n7��s�锍�AɘLT���kR�g�b�A�IT�@ zxr�8����}B%��4y֯ݠR��,�E3�������~�j	��~I��PC
�:AB��K�l��_
Q���Q�ܫQ(eq&)m�9�ƅ�Tl�2�K	�
?��L��Z�r‹�DE2� �O�)�iK*hȧ��B$ό]X�>���9B���
�.��-�sI���	��Z��z2�t2C��0��;h��/��Hp�j`�,R�VL��d%u�X]��.�5���"���P����bE����Q<�'y�4��`��x��ų���|�D�K�ʌ�5/P3O�Q^Ta��K����8�^Rc�w��P�}ך��C�x���yӄ>��%E,1�m�p�v�$QH:��SG��b��M���`�3InJ��������.V�h)���
yq���O�[��B ��,����
i��<ud�&���.4�{+I�4��{�&A�,&�"����ZI�*�#�ͬ��d#��46�7Ҿp�,5�V���/�1,���ɑ�56��a�c1���K����BJ$�;v��&�f��%��a�O
������A���i4�r��9k��C�R�p>��T0?8�$kY�����U�c��,�B2�D�Y��8p7b'׉`#��z�!F��#�?�dr:ވ��X.!���o�o��k=[I�+�6ŖGVHz����ZQ9�F��(�5p��t��xsbp�(�„�i�Q�Z�/�1�ܚmg5��dc	�k��$0^�����{�X%޹[o"6B[b�a�QR�5�sT3;@���)�
x/i3�l)�U���U�w�Oǝ'Zِ`��wx�x5
�.��چ6(QT�_O	��x��<<�8aԥ�FS��	���.z���*�֛E�\h�İ�;��MͲ<;L/�^(:c�au@fGX`Vc CV�"(�	l�#6M��Jz����K��m�&�ޭFN%gGeN�a�e�Nދ��l/��ҍ�`�L&'�-ؼ���﨩�V����g�3�ee����t:lV��&|wxk��
8LvȢ�?�J��訲Y�]���`"����P���j2-"$"�#�_xN@I�X�.��o`�v"?R��5j_`�*�:�jL+��p��Tpk�^,�gal�����4aH�X�'ږa�c@�6qh��IcU������
�C�(t�s���|b��k��z4�b��^Zui�1�VX�/�Xd2�$s`L��6=�Ǔ�Y#��'�g�}v��srӌ�鼳g���t$-dM�x��hU���Md�]S7��*���4�~t#���s��б��v[Ҩ�1��Vk�fb�����!�`���N�aW�b��pg�4Z�>�<&
9\�
��׬P�s�'�y"�k�ˆi�M��WӰ�R��_0B�
E1�7)�s�@�¹#���P�EV��Rǘ��c��
��*�d�8����^�IxW'���\�5O�)�
��E�&�$n~��p����f��֝E�ʫU<:�z���a�^��v���<hFbE#v'?�0B��.�B"��8�#�]�;�2"��9+��,ǁ@v��埇$&m���l	auj�5!���X^0fkc�Zm^�%#f�V);BK(��Z
V,��Zd��/ٕU�����5T��Zu�W:��93�K�3lm}�%{� �Q��sJf�*UJF�" tC�-X����qID,Ƅ|Qo������rr���ժe�Κ�fbq��[��DT�N<�a\�=l��J?����i�2��~:�Q�&��Ke���6m�N����_���O�Ok�:±/D���u��z�p
D��b���%C"Z�F�Mk��Z������q�gfV�R�;�P�Ɂ�^/8�&���'p����~�YIǵj�4�Ny�8�~�1�.�4��!q3��g�ĦՈ�D_/��IQ|#�M_���mgyZ������\�5�[ao�V�G� 4~B
N�l��ԋh�J�ȨK	j�B�Z�����5��-}%�R�t�)h�!���
GQ-��MX����3��QB'j�S?@3ܰ�7,Ps"�4�S�e9���}�]��x߸�h���k��_��,���W'���a��I_�"�K�c���M��jto�󑳔s�׃�D���bg��R\)�nlRS/&,5R�,�m�Io��vH�g'������j>L'N��!Z k�J�'e��ʄ�tQ��Vw.n%tl��\)[�Ȅ�:��:�AZje-�H�&
$"��#���"IB�3��lg�yR�v��ե2}~sI�_��$A�4�F������8������R��?|bGy8�|�#�v��t��e��W'%)c�oV�~QwF�^_agL}e[�i��%����Of��հ6��af:�a�d��yi)�6I�	2�{�A��mܓ����{� �j(�q���+d��� fQ�F#	�y��ڏ/ܐ/�ygʠ��E�nc���7n��y��j�U�1F�Ii�zL`0\AD�`���U��>��c�� 8��ȋ���z-^+����L*`��4� �.o~�礫u��` �$(ʅ�hy�q�L�����9[e3�dU��7��I�sYB Q�j� �|�A�T8���t�"�$
fU3j"Q���.�&�X�٦��65��3Xj�7����=kY��XILV	y^�̌Ic%[����(�B�)�^�O����.dM��z�p.sT-}u�[lDe������k
�4�[Ӈ��b�m��N"�蠝\Ǣ��d|'Q�kW퓜]*�Go�Q9o%�W�,�e�5��eu�|���ǐ�`��{Ƃ,^��^�8\}��~�_C�o<c�V����6����\J}��Z����溳I��B)�MK9��U�!G�"��{e�s��P�����6�<66��ʟ���a^���D指3ۆI���^8��u��L�Ra��ԓ�q����^���أ����Q*��
���K�4q�`����AV��~M�Nɷ��a[�*R��s�Y�#�o(���eg�w��4~�&|jM���#���/����Y���f���L�@�Bɦ���no01C�(Q�_�t�4�[��Bˆ�QU^:É^�r��J	Z�H�'��3��]��$��rx����,�������{םtg��fr,��Ll��gECigU���ՉV&�e��{��AwAk���Z�h�������������ؙoHa�&���e�Us~l��,#�i�ͷ4���:����\5�6ą���T��ޢ�W���j"=�!�D�}��h%�Ro���{M3��bE��K6QJ�zVƑ�%�?7	��g��hI��T���$�qS��x}q���[tFE�ь�L9�'���K������D6w�
+����xaX����moTyW.��C������#�fE��y�y�J���ձ1�ת=� ��{'���XfW�ZL᤿�גiZ�I��9x���.c��᜕�4�?�6uC쩑�"���&nx��]�@�:�ag��D�B=��l��
"D9%����$�Ϯ�K�eTS�V��,琌ӆ'��)�|Ŋ׾��j4��F�҄]���҆���*A�c�n]m���9}�bv{�1zަNf�yj^+�D�����OI�L��z�^��+2T��k�4���=�!���w�C�߇�I|���V�i�e]�?	�acM�n��UD=j��@�M_��Ih>K�d4ZTT�F�A�#��j�J<mʔ���,[�Ƽ��r2K�S*��O�@�i�pu<e��D��'�N�%���T&"S�Š���4	�&$��
6������^�ke�=�3����g^0X�q�~N��/���PK���T���a�>���litespeed-cache-fr_FR.poUT���bux����PK���T|�T9��(�����litespeed-cache-fr_FR.moUT���bux����PK��g# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in English (South Africa)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-12-24 12:45:36+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: en_ZA\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/dash/dashboard.tpl.php:563
msgid "<b>Last crawled:</b> %d item(s)"
msgstr "<b>Last crawled:</b> %d item(s)"

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr "View .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "You can use this code %1$s in %2$s to specify the htaccess file path."

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr "PHP Constant %s is supported."

#: tpl/toolbox/edit_htaccess.tpl.php:52 tpl/toolbox/edit_htaccess.tpl.php:69
msgid "Default path is"
msgstr "Default path is"

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr ".htaccess Path"

#: tpl/general/settings.tpl.php:151
msgid "Please read all warnings before enabling this option."
msgstr "Please read all warnings before enabling this option."

#: tpl/toolbox/purge.tpl.php:80
msgid "This will delete all generated unique CSS files"
msgstr "This will delete all generated unique CSS files"

#: tpl/toolbox/beta_test.tpl.php:59
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Use latest GitHub Dev/Master commit"
msgstr "Use latest GitHub Dev/Master commit"

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."

#: tpl/toolbox/beta_test.tpl.php:49
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "Downgrade not recommended. May cause fatal error due to refactored code."

#: tpl/page_optm/settings_tuning.tpl.php:216
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Only optimise pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."

#: tpl/page_optm/settings_tuning.tpl.php:182
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Listed JS files or inline JS code will not be optimised by %s."

#: tpl/page_optm/settings_tuning.tpl.php:97
msgid "Listed URI will not generate UCSS."
msgstr "Listed URI will not generate UCSS."

#: tpl/page_optm/settings_tuning.tpl.php:79
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "The selector must exist in the CSS. Parent classes in the HTML will not work."

#: tpl/page_optm/settings_tuning.tpl.php:75
msgid "Wildcard %s supported."
msgstr "Wildcard %s supported."

#: tpl/page_optm/settings_media_exc.tpl.php:24
msgid "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."

#: tpl/page_optm/settings_media.tpl.php:229
msgid "Note: this option only works when %1$s is %2$s."
msgstr "Note: this option only works when %1$s is %2$s."

#: tpl/page_optm/settings_media.tpl.php:227
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."

#: tpl/page_optm/settings_media.tpl.php:125
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."

#: tpl/page_optm/settings_js.tpl.php:65
msgid "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."
msgstr "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Delayed"
msgstr "Delayed"

#: tpl/page_optm/settings_js.tpl.php:38
msgid "JS error can be found from the developer console of browser by right clicking and choosing Inspect."
msgstr "JS error can be found from the developer console of browser by right clicking and choosing Inspect."

#: tpl/page_optm/settings_js.tpl.php:37 tpl/page_optm/settings_js.tpl.php:70
msgid "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."
msgstr "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "This will also add a preconnect to Google Fonts to establish a connection earlier."
msgstr "This will also add a preconnect to Google Fonts to establish a connection earlier."

#: tpl/page_optm/settings_html.tpl.php:64
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr "Delay rendering off-screen HTML elements by its selector."

#: tpl/page_optm/settings_css.tpl.php:243
msgid "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."
msgstr "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."

#: tpl/page_optm/settings_css.tpl.php:182
msgid "This option is bypassed due to %s option."
msgstr "This option is bypassed due to %s option."

#: tpl/page_optm/settings_css.tpl.php:177
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr "Elements with attribute %s in HTML code will be excluded."

#: tpl/page_optm/settings_css.tpl.php:171
msgid "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."
msgstr "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."

#: tpl/page_optm/settings_css.tpl.php:136
msgid "This option will automatically bypass %s option."
msgstr "This option will automatically bypass %s option."

#: tpl/page_optm/settings_css.tpl.php:134
msgid "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."
msgstr "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."

#: tpl/page_optm/settings_css.tpl.php:118
#: tpl/page_optm/settings_css.tpl.php:228
msgid "Run %s Queue Manually"
msgstr "Run %s Queue Manually"

#: tpl/page_optm/settings_css.tpl.php:72
msgid "This option is bypassed because %1$s option is %2$s."
msgstr "This option is bypassed because %1$s option is %2$s."

#: tpl/page_optm/settings_css.tpl.php:67
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr "Automatic generation of unique CSS is in the background via a cron-based queue."

#: tpl/page_optm/settings_css.tpl.php:65
msgid "This will drop the unused CSS on each page from the combined file."
msgstr "This will drop the unused CSS on each page from the combined file."

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr "HTML Settings"

#: tpl/inc/in_upgrading.php:5
msgid "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."
msgstr "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."

#: tpl/general/settings_tuning.tpl.php:50
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr "Listed IPs will be considered as Guest Mode visitors."

#: tpl/general/settings_tuning.tpl.php:28
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr "Listed User Agents will be considered as Guest Mode visitors."

#: tpl/general/settings.tpl.php:165
msgid "Your %1s quota on %2s will still be in use."
msgstr "Your %1s quota on %2s will still be in use."

#: tpl/general/settings_inc.guest.tpl.php:17
msgid "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."
msgstr "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."

#: tpl/general/settings_inc.guest.tpl.php:16
msgid "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."

#: tpl/general/settings.tpl.php:208
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr "Please make sure this IP is the correct one for visiting your site."

#: tpl/general/settings.tpl.php:207
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server."
msgstr "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site."

#: tpl/general/settings.tpl.php:184
msgid "You need to turn %s on and finish all WebP generation to get maximum result."
msgstr "You need to turn %s on and finish all WebP generation to get maximum result."

#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:190
msgid "You need to turn %s on to get maximum result."
msgstr "You need to turn %s on to get maximum result."

#: tpl/general/settings.tpl.php:172
msgid "This option only works when turning %s on."
msgstr "This option only works when turning %s on."

#: tpl/general/settings.tpl.php:150
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr "This option enables maximum optimisation for Guest Mode visitors."

#: tpl/dash/dashboard.tpl.php:300 tpl/dash/dashboard.tpl.php:389
#: tpl/dash/dashboard.tpl.php:432 tpl/dash/dashboard.tpl.php:465
#: tpl/dash/dashboard.tpl.php:498 tpl/dash/dashboard.tpl.php:530
msgid "More"
msgstr "More"

#: tpl/dash/dashboard.tpl.php:160
msgid "Remaining Daily Quota"
msgstr "Remaining Daily Quota"

#: tpl/crawler/summary.tpl.php:183
msgid "Successfully Crawled"
msgstr "Successfully Crawled"

#: tpl/crawler/summary.tpl.php:182
msgid "Already Cached"
msgstr "Already Cached"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."

#: tpl/cdn/settings.tpl.php:214
msgid "Optional when API token used."
msgstr "Optional when API token used."

#: tpl/cdn/settings.tpl.php:204
msgid "Recommended to generate the token from Cloudflare API token template \"WordPress\"."
msgstr "Recommended to generate the token from Cloudflare API token template \"WordPress\"."

#: tpl/cdn/settings.tpl.php:198
msgid "Global API Key / API Token"
msgstr "Global API Key / API Token"

#: tpl/cdn/settings.tpl.php:194
msgid "This can be managed from %1$s%2$s tab."
msgstr "This can be managed from %1$s%2$s tab."

#: tpl/cdn/settings.tpl.php:54
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s."
msgstr "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s."

#: tpl/cdn/settings.tpl.php:49
msgid "Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN."
msgstr "Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN."

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use external object cache functionality."
msgstr "Use external object cache functionality."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Serve a separate cache copy for mobile visitors."
msgstr "Serve a separate cache copy for mobile visitors."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings."
msgstr "When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings."

#: thirdparty/woocommerce.content.tpl.php:31
msgid "Use ESI for Cart"
msgstr "Use ESI for Cart"

#: thirdparty/woocommerce.content.tpl.php:24
msgid "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."
msgstr "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."

#: src/purge.cls.php:249
msgid "Cleaned all Unique CSS files."
msgstr "Cleaned all Unique CSS files."

#: src/lang.cls.php:166
msgid "Add Missing Sizes"
msgstr "Add Missing Sizes"

#: src/lang.cls.php:141
msgid "Optimize for Guests Only"
msgstr "Optimise for Guests Only"

#: src/lang.cls.php:137
msgid "Guest Mode JS Excludes"
msgstr "Guest Mode JS Excludes"

#: src/lang.cls.php:120
msgid "CCSS Per URL"
msgstr "CCSS Per URL"

#: src/lang.cls.php:118
msgid "HTML Lazy Load Selectors"
msgstr "HTML Lazy Load Selectors"

#: src/lang.cls.php:113
msgid "UCSS URI Excludes"
msgstr "UCSS URI Excludes"

#: src/lang.cls.php:111
msgid "UCSS Inline"
msgstr "UCSS Inline"

#: src/lang.cls.php:69
msgid "Guest Optimization"
msgstr "Guest Optimisation"

#: src/lang.cls.php:68
msgid "Guest Mode"
msgstr "Guest Mode"

#: src/lang.cls.php:56
msgid "Guest Mode IPs"
msgstr "Guest Mode IPs"

#: src/lang.cls.php:55
msgid "Guest Mode User Agents"
msgstr "Guest Mode User Agents"

#: src/error.cls.php:96
msgid "Online node needs to be redetected."
msgstr "Online node needs to be redetected."

#: src/error.cls.php:92
msgid "The current server is under heavy load."
msgstr "The current server is under heavy load."

#: src/error.cls.php:52
msgid "You don't have enough daily quota left for current service today."
msgstr "You don't have enough daily quota left for current service today."

#: src/doc.cls.php:37
msgid "Please see %s for more details."
msgstr "Please see %s for more details."

#: src/doc.cls.php:25
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr "This setting will regenerate crawler list and clear the disabled list!"

#: src/css.cls.php:532
msgid "%1$s %2$s files left in queue"
msgstr "%1$s %2$s files left in queue"

#: src/crawler.cls.php:99
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr "Crawler disabled list is cleared! All crawlers are set to active! "

#: src/cloud.cls.php:665
msgid "Redetected node"
msgstr "Redetected node"

#: src/cloud.cls.php:432
msgid "No available Cloud Node after checked server load."
msgstr "No available Cloud Node after checked server load."

#: src/lang.cls.php:125
msgid "Localization Files"
msgstr "Localisation Files"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Purged!"

#: tpl/page_optm/settings_localization.tpl.php:120
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Resources listed here will be copied and replaced with local URLs."

#: tpl/toolbox/beta_test.tpl.php:36
msgid "Use latest GitHub Master commit"
msgstr "Use latest GitHub Master commit"

#: tpl/toolbox/beta_test.tpl.php:34
msgid "Use latest GitHub Dev commit"
msgstr "Use latest GitHub Dev commit"

#: src/crawler-map.cls.php:317
msgid "No valid sitemap parsed for crawler."
msgstr "No valid sitemap parsed for crawler."

#: src/lang.cls.php:109
msgid "CSS Combine External and Inline"
msgstr "CSS Combine External and Inline"

#: tpl/page_optm/settings_css.tpl.php:150
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimise potential errors caused by CSS Combine."

#: tpl/page_optm/settings_css.tpl.php:30
msgid "Minify CSS files and inline CSS code."
msgstr "Minify CSS files and inline CSS code."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:83
#: tpl/page_optm/settings_tuning.tpl.php:168
msgid "Predefined list will also be combined w/ the above settings"
msgstr "Predefined list will also be combined w/ the above settings"

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localisation"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combine all local JS files into a single file."

#: tpl/page_optm/settings_tuning.tpl.php:161
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Listed JS files or inline JS code will not be deferred."

#: tpl/general/settings.tpl.php:94
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Request submitted. Please wait, then refresh the page to see approval notification."

#: src/data.upgrade.func.php:102
msgid "Click here to settings"
msgstr "Click here to settings"

#: src/data.upgrade.func.php:101
msgid "JS Defer"
msgstr "JS Defer"

#: src/data.upgrade.func.php:101
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."

#: src/lang.cls.php:116
msgid "JS Combine External and Inline"
msgstr "JS Combine External and Inline"

#: src/admin-display.cls.php:460
msgid "Dismiss"
msgstr "Dismiss"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "The latest data file is"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "The list will be merged with the predefined nonces in your local data file."

#: tpl/page_optm/settings_css.tpl.php:43
msgid "Combine CSS files and inline CSS code."
msgstr "Combine CSS files and inline CSS code."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minify JS files and inline JS codes."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Listed JS files or inline JS code will not be minified/combined."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Listed CSS files or inline CSS code will not be minified/combined."

#: src/css.cls.php:60 src/root.cls.php:176
msgid "Queue cleared successfully."
msgstr "Queue cleared successfully."

#: src/admin-display.cls.php:935
msgid "This setting is overwritten by the Network setting"
msgstr "This setting is overwritten by the Network setting"

#: src/lang.cls.php:155
msgid "LQIP Excludes"
msgstr "LQIP Excludes"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "These images will not generate LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Are you sure you want to reset all settings back to the default settings?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "This option will remove all %s tags from HTML."

#: tpl/general/settings.tpl.php:116
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Are you sure you want to clear all cloud nodes?"

#: src/lang.cls.php:139
msgid "Remove Noscript Tags"
msgstr "Remove Noscript Tags"

#: src/error.cls.php:84
msgid "The site is not registered on QUIC.cloud."
msgstr "The site is not registered on QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Click here to change."

#: src/cloud.cls.php:763 src/error.cls.php:48
msgid "Click here to set."
msgstr "Click here to set."

#: src/cloud.cls.php:762
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site not recognised. Domain Key has been automatically removed. Please request a new one."

#: src/lang.cls.php:124
msgid "Localize Resources"
msgstr "Localise Resources"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Setting Up Custom Headers"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all localized resources"
msgstr "This will delete all localised resources"

#: src/gui.cls.php:535 src/gui.cls.php:695 tpl/toolbox/purge.tpl.php:88
msgid "Localized Resources"
msgstr "Localised Resources"

#: tpl/page_optm/settings_localization.tpl.php:125
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Comments are supported. Start a line with a %s to turn it into a comment line."

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "HTTPS sources only."
msgstr "HTTPS sources only."

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localise external resources."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Localisation Settings"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "List the CSS selector that its style should be always contained in UCSS."

#: tpl/page_optm/settings_css.tpl.php:64
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Use QUIC.cloud online service to generate unique CSS."

#: src/lang.cls.php:110
msgid "Generate UCSS"
msgstr "Generate UCSS"

#: tpl/dash/dashboard.tpl.php:464 tpl/toolbox/purge.tpl.php:79
msgid "Unique CSS"
msgstr "Unique CSS"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "LiteSpeed Report"

#: tpl/img_optm/summary.tpl.php:222
msgid "Image Thumbnail Group Sizes"
msgstr "Image Thumbnail Group Sizes"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignore certain query strings when caching. (LSWS %s required)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "For URLs with wildcards, there may be a delay in initiating scheduled purge."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."

#: src/lang.cls.php:97
msgid "Serve Stale"
msgstr "Serve Stale"

#: src/admin-display.cls.php:932
msgid "This setting is overwritten by the primary site setting"
msgstr "This setting is overwritten by the primary site setting"

#: src/img-optm.cls.php:964
msgid "One or more pulled images does not match with the notified image md5"
msgstr "One or more pulled images does not match with the notified image md5"

#: src/img-optm.cls.php:947
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Some optimised image file(s) has expired and was cleared."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "You have too many notified images, please pull down notified images first."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "You have too many requested images, please try again in a few minutes."

#: src/img-optm.cls.php:1025
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "Pulled WebP image md5 does not match the notified WebP image md5."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Read LiteSpeed Documentation"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "There is proceeding queue not pulled yet. Queue info: %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Sitemap Timeout"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Specify the timeout while parsing the sitemap."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Specify how long, in seconds, Gravatar files are cached."

#: tpl/general/settings.tpl.php:112
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "A Domain Key is required for QUIC.cloud online services."

#: src/img-optm.cls.php:547
msgid "Cleared %1$s invalid images."
msgstr "Cleared %1$s invalid images."

#: src/img-optm.cls.php:509
msgid "Bypassed %1$s duplicated images."
msgstr "Bypassed %1$s duplicated images."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Request Domain Key"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "LiteSpeed Cache General Settings"

#: tpl/toolbox/purge.tpl.php:107
msgid "This will delete all cached Gravatar files"
msgstr "This will delete all cached Gravatar files"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Prevent any debug log of listed pages."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Only log listed pages."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Specify the maximum size of the log file."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "To prevent filling up the disk, this setting should be OFF when everything is working."

#: tpl/toolbox/beta_test.tpl.php:54
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."

#: tpl/toolbox/beta_test.tpl.php:38 tpl/toolbox/beta_test.tpl.php:54
msgid "Use latest WordPress release version"
msgstr "Use latest WordPress release version"

#: tpl/toolbox/beta_test.tpl.php:38
msgid "OR"
msgstr "OR"

#: tpl/toolbox/beta_test.tpl.php:29
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Reset Settings"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "LiteSpeed Cache Toolbox"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Beta Test"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Log View"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Debug Settings"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Turn ON to control heartbeat in backend editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "WordPress valid interval is %s seconds"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Turn ON to control heartbeat on backend."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Set to %1$s to forbid heartbeat on %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "WordPress valid interval is %s seconds."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Specify the %s heartbeat interval in seconds."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Turn ON to control heartbeat on frontend."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Disable WordPress interval heartbeat to reduce server load."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Heartbeat Control"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "provide more information here to assist the LiteSpeed team with debugging."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Optional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generate Link for Current User"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Passwordless Link"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "System Information"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Go to plugins list"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Install DoLogin Security"

#: tpl/general/settings.tpl.php:206
msgid "Check my public IP from"
msgstr "Check my public IP from"

#: tpl/general/settings.tpl.php:206
msgid "Your server IP"
msgstr "Your server IP"

#: tpl/general/settings.tpl.php:205
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Specify the timeout while crawling each URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Specify time in seconds for the time between each run interval."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "This will enable crawler cron."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Crawler General Settings"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr "Operation"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Sitemap Total"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Sitemap List"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Refresh Crawler Map"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Clean Crawler Map"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Sitemap Settings"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Simulation Settings"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Map"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Summary"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Crawler Sitemap Settings"

#: tpl/crawler/summary.tpl.php:190
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."

#: tpl/crawler/summary.tpl.php:189
msgid "Crawlers cannot run concurrently."
msgstr "Crawlers cannot run concurrently."

#: tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Cache Miss"

#: tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Cache Hit"

#: tpl/crawler/summary.tpl.php:181
msgid "Waiting to be Crawled"
msgstr "Waiting to be Crawled"

#: tpl/crawler/summary.tpl.php:159
msgid "Miss"
msgstr "Miss"

#: tpl/crawler/summary.tpl.php:158
msgid "Hit"
msgstr "Hit"

#: tpl/crawler/summary.tpl.php:157
msgid "Waiting"
msgstr "Waiting"

#: tpl/crawler/summary.tpl.php:126
msgid "Running"
msgstr "Running"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Use %1$s in %2$s to indicate this cookie has not been set."

#: src/admin-display.cls.php:209
msgid "Add new cookie to simulate"
msgstr "Add new cookie to simulate"

#: src/admin-display.cls.php:208
msgid "Remove cookie simulation"
msgstr "Remove cookie simulation"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Crawler Simulation Settings"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr "Htaccess rule is: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "More settings available under %s menu"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "The amount of time, in seconds, that files will be stored in browser cache before expiring."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "OpenLiteSpeed users please check this"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Browser Cache Settings"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "An optional second parameter may be used to specify cache control. Use a space to separate"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "The above nonces will be converted to ESI automatically."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Browser"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Object"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Default port for %1$s is %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Object Cache Settings"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Specify how long, in seconds, the front page is cached."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."

#: tpl/page_optm/settings_css.tpl.php:270
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:269
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Avatar list in queue waiting for update"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refresh Gravatar cache by cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Accelerates the speed by caching Gravatar (Globally Recognised Avatars)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Store Gravatar locally."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."

#: tpl/page_optm/settings_media.tpl.php:140
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."

#: tpl/page_optm/settings_media.tpl.php:138
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:122
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Specify the quality when generating LQIP."
msgstr "Specify the quality when generating LQIP."

#: tpl/page_optm/settings_media.tpl.php:107
msgid "Keep this off to use plain color placeholders."
msgstr "Keep this off to use plain colour placeholders."

#: tpl/page_optm/settings_media.tpl.php:106
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."

#: tpl/page_optm/settings_media.tpl.php:92
msgid "Specify the responsive placeholder SVG color."
msgstr "Specify the responsive placeholder SVG colour."

#: tpl/page_optm/settings_media.tpl.php:78
msgid "Variables %s will be replaced with the configured background color."
msgstr "Variables %s will be replaced with the configured background colour."

#: tpl/page_optm/settings_media.tpl.php:77
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Variables %s will be replaced with the corresponding image properties."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "It will be converted to a base64 SVG placeholder on-the-fly."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Specify an SVG to be used as a placeholder when generating locally."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Prevent any lazy load of listed pages."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Iframes having these parent class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Iframes containing these class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Images having these parent class names will not be lazy loaded."

#: tpl/page_optm/entry.tpl.php:19
msgid "LiteSpeed Cache Page Optimization"
msgstr "LiteSpeed Cache Page Optimisation"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Media Excludes"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:16
msgid "CSS Settings"
msgstr "CSS Settings"

#: tpl/page_optm/settings_css.tpl.php:270
msgid "%s is recommended."
msgstr "%s is recommended."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Deferred"
msgstr "Deferred"

#: tpl/page_optm/settings_css.tpl.php:267
msgid "Default"
msgstr "Default"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "This can improve the page loading speed."

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "New developer version %s is available now."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "New Developer Version Available!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Dismiss this notice"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweet this"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Tweet preview"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Learn More"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "You just unlocked a promotion from QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "The image compression quality setting of WordPress out of 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Image Optimisation Settings"

#: tpl/img_optm/summary.tpl.php:373
msgid "Are you sure to destroy all optimized images?"
msgstr "Are you sure to destroy all optimised images?"

#: tpl/img_optm/summary.tpl.php:365
msgid "Use Optimized Files"
msgstr "Use Optimised Files"

#: tpl/img_optm/summary.tpl.php:364
msgid "Switch back to using optimized images on your site"
msgstr "Switch back to using optimised images on your site"

#: tpl/img_optm/summary.tpl.php:361
msgid "Use Original Files"
msgstr "Use Original Files"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use original images (unoptimized) on your site"
msgstr "Use original images (unoptimised) on your site"

#: tpl/img_optm/summary.tpl.php:355
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available."

#: tpl/img_optm/summary.tpl.php:352
msgid "Optimization Tools"
msgstr "Optimisation Tools"

#: tpl/img_optm/summary.tpl.php:325
msgid "Rescan New Thumbnails"
msgstr "Rescan New Thumbnails"

#: tpl/img_optm/summary.tpl.php:317
msgid "Congratulations, all requested!"
msgstr "Congratulations, all requested!"

#: tpl/img_optm/summary.tpl.php:290
msgid "Congratulations, all gathered!"
msgstr "Congratulations, all gathered!"

#: tpl/img_optm/summary.tpl.php:287
msgid "Images not yet gathered"
msgstr "Images not yet gathered"

#: tpl/img_optm/summary.tpl.php:282 tpl/img_optm/summary.tpl.php:309
msgid "What is an image group?"
msgstr "What is an image group?"

#: tpl/img_optm/summary.tpl.php:233
msgid "Delete all backups of the original images"
msgstr "Delete all backups of the original images"

#: tpl/img_optm/summary.tpl.php:215
msgid "Calculate Backups Disk Space"
msgstr "Calculate Backups Disk Space"

#: tpl/img_optm/summary.tpl.php:100
msgid "Optimization Status"
msgstr "Optimisation Status"

#: tpl/img_optm/summary.tpl.php:84
msgid "Gather Image Data"
msgstr "Gather Image Data"

#: tpl/img_optm/summary.tpl.php:72
msgid "Current limit is"
msgstr "Current limit is"

#: tpl/img_optm/summary.tpl.php:71
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."

#: tpl/img_optm/summary.tpl.php:66
msgid "You can request a maximum of %s images at once."
msgstr "You can request a maximum of %s images at once."

#: tpl/img_optm/summary.tpl.php:61
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimise images with our QUIC.cloud server"

#: tpl/img_optm/summary.tpl.php:57 tpl/page_optm/settings_css.tpl.php:91
#: tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr ""
"Current closest Cloud server is %s.\n"
" Click to redetect."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Revisions newer than this many days will be kept when cleaning revisions."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Day(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Specify the number of most recent revisions to keep when cleaning revisions."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "LiteSpeed Cache Database Optimisation"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "DB Optimisation Settings"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Option Name"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Database Summary"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "We are good. No table uses MyISAM engine."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Convert to InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Tool"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Engine"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Table"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Database Table Engine Converter"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"

#: tpl/dash/dashboard.tpl.php:537
msgid "Currently active crawler"
msgstr "Currently active crawler"

#: tpl/dash/dashboard.tpl.php:534
msgid "Crawler(s)"
msgstr "Crawler(s)"

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:529
msgid "Crawler Status"
msgstr "Crawler Status"

#: tpl/dash/dashboard.tpl.php:448 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513
msgid "Force cron"
msgstr "Force cron"

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:511
msgid "Requests in queue"
msgstr "Requests in queue"

#: tpl/dash/dashboard.tpl.php:440 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:506
msgid "Time to execute previous request"
msgstr "Time to execute previous request"

#: tpl/dash/dashboard.tpl.php:417
msgid "Cache Stats"
msgstr "Cache Stats"

#: tpl/dash/dashboard.tpl.php:395
msgid "Private Cache"
msgstr "Private Cache"

#: tpl/dash/dashboard.tpl.php:394
msgid "Public Cache"
msgstr "Public Cache"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Status"
msgstr "Cache Status"

#: tpl/dash/dashboard.tpl.php:360
msgid "Last Pull"
msgstr "Last Pull"

#: tpl/dash/dashboard.tpl.php:325
msgid "Images Requested"
msgstr "Images Requested"

#: tpl/dash/dashboard.tpl.php:310
msgid "Image Groups Prepared"
msgstr "Image Groups Prepared"

#: tpl/dash/dashboard.tpl.php:299 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Image Optimisation Summary"

#: tpl/dash/dashboard.tpl.php:238
msgid "Refresh page score"
msgstr "Refresh page score"

#: tpl/dash/dashboard.tpl.php:227 tpl/img_optm/summary.tpl.php:57
#: tpl/page_optm/settings_css.tpl.php:91 tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Are you sure you want to redetect the closest cloud server for this service?"

#: tpl/dash/dashboard.tpl.php:227
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr ""
"Current closest Cloud server is %s.\n"
"Click to redetect."

#: tpl/dash/dashboard.tpl.php:222 tpl/dash/dashboard.tpl.php:291
#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:489
#: tpl/dash/dashboard.tpl.php:521
msgid "Last requested"
msgstr "Last requested"

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh page load time"
msgstr "Refresh page load time"

#: tpl/dash/dashboard.tpl.php:169
msgid "Go to QUIC.cloud dashboard"
msgstr "Go to QUIC.cloud dashboard"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:497
msgid "Low Quality Image Placeholder"
msgstr "Low Quality Image Placeholder"

#: tpl/dash/dashboard.tpl.php:45
msgid "Sync data from Cloud"
msgstr "Sync data from Cloud"

#: tpl/dash/dashboard.tpl.php:42
msgid "QUIC.cloud Service Usage Statistics"
msgstr "QUIC.cloud Service Usage Statistics"

#: tpl/dash/dashboard.tpl.php:151 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Total images optimised in this month"

#: tpl/dash/dashboard.tpl.php:150 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Total Usage"

#: tpl/dash/dashboard.tpl.php:131 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Pay as You Go Usage Statistics"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "This Month Usage"

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "PAYG Balance"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pay as You Go"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Usage"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Fast Queue Usage"

#: tpl/dash/dashboard.tpl.php:57 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "CDN Bandwidth"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Usage Statistics"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "LiteSpeed Cache Dashboard"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Network Dashboard"

#: tpl/general/settings.tpl.php:128
msgid "No cloud services currently in use"
msgstr "No cloud services currently in use"

#: tpl/general/settings.tpl.php:116
msgid "Click to clear all nodes for further redetection."
msgstr "Click to clear all nodes for further redetection."

#: tpl/general/settings.tpl.php:115
msgid "Current Cloud Nodes in Service"
msgstr "Current Cloud Nodes in Service"

#: tpl/general/settings.tpl.php:107
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Benefits of linking to a QUIC.cloud account"

#: tpl/general/settings.tpl.php:106
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "You must click the %s button if you wish to associate this site with a QUIC.cloud account."

#: tpl/general/settings.tpl.php:101
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "You must have %1$s first before linking to QUIC.cloud."

#: tpl/general/settings.tpl.php:85
msgid "The POST callback to %s failed."
msgstr "The POST callback to %s failed."

#: tpl/general/settings.tpl.php:84
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "There are two reasons why we might not be able to communicate with your domain:"

#: tpl/general/settings.tpl.php:83
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "There was a problem with retrieving your Domain Key. Please click the %s button to retry."

#: tpl/general/settings.tpl.php:75 tpl/general/settings.tpl.php:77
#: tpl/general/settings.tpl.php:106
msgid "Link to QUIC.cloud"
msgstr "Link to QUIC.cloud"

#: tpl/general/settings.tpl.php:73
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visit My Dashboard on QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Next available request time: <code>After %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Approved"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Requested"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Waiting for Approval"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Waiting for Refresh"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Refresh Domain Key"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:42
msgid "General Settings"
msgstr "General Settings"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Specify which HTML element attributes will be replaced with CDN Mapping."

#: src/admin-display.cls.php:231
msgid "Add new CDN URL"
msgstr "Add new CDN URL"

#: src/admin-display.cls.php:230
msgid "Remove CDN URL"
msgstr "Remove CDN URL"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Enable %s CDN API functionality."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "To enable the following functionality, turn ON Cloudflare API in CDN Settings."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "To manage QUIC.cloud options, please visit"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "WooCommerce Settings"

#: src/doc.cls.php:119 tpl/general/settings.tpl.php:86
msgid "Current Online Server IPs"
msgstr "Current Online Server IPs"

#: src/gui.cls.php:545 src/gui.cls.php:705
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:97
msgid "LQIP Cache"
msgstr "LQIP Cache"

#: src/gui.cls.php:84
msgid "Private Cache Hits"
msgstr "Private Cache Hits"

#: src/gui.cls.php:83
msgid "Private Caches"
msgstr "Private Caches"

#: src/gui.cls.php:82
msgid "Public Cache Hits"
msgstr "Public Cache Hits"

#: src/gui.cls.php:81
msgid "Public Caches"
msgstr "Public Caches"

#: src/admin-settings.cls.php:242 src/admin-settings.cls.php:276
msgid "Options saved."
msgstr "Options saved."

#: src/img-optm.cls.php:1461
msgid "Removed backups successfully."
msgstr "Removed backups successfully."

#: src/img-optm.cls.php:1399
msgid "Calculated backups successfully."
msgstr "Calculated backups successfully."

#: src/img-optm.cls.php:1243
msgid "Destroy all optimization data successfully."
msgstr "Destroy all optimisation data successfully."

#: src/img-optm.cls.php:1172
msgid "Cleaned up unfinished data successfully."
msgstr "Cleaned up unfinished data successfully."

#: src/img-optm.cls.php:1085
msgid "Pulled %d image(s)"
msgstr "Pulled %d image(s)"

#: src/img-optm.cls.php:1008
msgid "Optimized WebP file expired and was cleared."
msgstr "Optimised WebP file expired and was cleared."

#: src/img-optm.cls.php:888
msgid "Pull Cron is running"
msgstr "Pull Cron is running"

#: src/img-optm.cls.php:649
msgid "No valid image found by Cloud server in the current request."
msgstr "No valid image found by Cloud server in the current request."

#: src/img-optm.cls.php:626
msgid "No valid image found in the current request."
msgstr "No valid image found in the current request."

#: src/img-optm.cls.php:472
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "Pushed %1$s to Cloud server, accepted %2$s."

#: src/img-optm.cls.php:180
msgid "Gathered %d images successfully."
msgstr "Gathered %d images successfully."

#: src/img-optm.cls.php:147
msgid "No new image gathered."
msgstr "No new image gathered."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Revisions Max Age"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Revisions Max Number"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "Debug URI Excludes"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "Debug URI Includes"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Drop Domain from Sitemap"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "HTML Attribute To Replace"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Use CDN Mapping"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "QUIC.cloud CDN"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "Editor Heartbeat TTL"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Editor Heartbeat"

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr "Backend Heartbeat TTL"

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr "Backend Heartbeat Control"

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr "Frontend Heartbeat TTL"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr "Frontend Heartbeat Control"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Backend .htaccess Path"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Frontend .htaccess Path"

#: src/lang.cls.php:180
msgid "ESI Nonces"
msgstr "ESI Nonces"

#: src/lang.cls.php:176
msgid "WordPress Image Quality Control"
msgstr "WordPress Image Quality Control"

#: src/lang.cls.php:171
msgid "Create WebP Versions"
msgstr "Create WebP Versions"

#: src/lang.cls.php:168
msgid "Auto Pull Cron"
msgstr "Auto Pull Cron"

#: src/lang.cls.php:167
msgid "Auto Request Cron"
msgstr "Auto Request Cron"

#: src/lang.cls.php:164
msgid "Generate LQIP In Background"
msgstr "Generate LQIP In Background"

#: src/lang.cls.php:162
msgid "LQIP Minimum Dimensions"
msgstr "LQIP Minimum Dimensions"

#: src/lang.cls.php:161
msgid "LQIP Quality"
msgstr "LQIP Quality"

#: src/lang.cls.php:160
msgid "LQIP Cloud Generator"
msgstr "LQIP Cloud Generator"

#: src/lang.cls.php:159
msgid "Responsive Placeholder SVG"
msgstr "Responsive Placeholder SVG"

#: src/lang.cls.php:158
msgid "Responsive Placeholder Color"
msgstr "Responsive Placeholder Colour"

#: src/lang.cls.php:156
msgid "Basic Image Placeholder"
msgstr "Basic Image Placeholder"

#: src/lang.cls.php:154
msgid "Lazy Load URI Excludes"
msgstr "Lazy Load URI Excludes"

#: src/lang.cls.php:153
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Lazy Load Iframe Parent Class Name Excludes"

#: src/lang.cls.php:152
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Lazy Load Iframe Class Name Excludes"

#: src/lang.cls.php:151
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Lazy Load Image Parent Class Name Excludes"

#: src/lang.cls.php:146
msgid "Gravatar Cache TTL"
msgstr "Gravatar Cache TTL"

#: src/lang.cls.php:145
msgid "Gravatar Cache Cron"
msgstr "Gravatar Cache Cron"

#: src/gui.cls.php:555 src/gui.cls.php:715 src/lang.cls.php:144
#: tpl/toolbox/purge.tpl.php:106
msgid "Gravatar Cache"
msgstr "Gravatar Cache"

#: src/lang.cls.php:127
msgid "DNS Prefetch Control"
msgstr "DNS Prefetch Control"

#: src/lang.cls.php:122
msgid "Font Display Optimization"
msgstr "Font Display Optimisation"

#: src/lang.cls.php:101
msgid "Force Public Cache URIs"
msgstr "Force Public Cache URIs"

#: src/lang.cls.php:70
msgid "Notifications"
msgstr "Notifications"

#: src/lang.cls.php:65
msgid "Default HTTP Status Code Page TTL"
msgstr "Default HTTP Status Code Page TTL"

#: src/lang.cls.php:64
msgid "Default REST TTL"
msgstr "Default REST TTL"

#: src/lang.cls.php:58
msgid "Enable Cache"
msgstr "Enable Cache"

#: src/lang.cls.php:54
msgid "Domain Key"
msgstr "Domain Key"

#: src/lang.cls.php:53
msgid "Server IP"
msgstr "Server IP"

#: src/lang.cls.php:33
msgid "Duplicate image files ignored"
msgstr "Duplicate image files ignored"

#: src/lang.cls.php:23
msgid "Images not requested"
msgstr "Images not requested"

#: src/cloud.cls.php:1184
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Sync credit allowance with Cloud Server successfully."

#: src/cloud.cls.php:1073
msgid "Domain Key hash mismatch"
msgstr "Domain Key hash mismatch"

#: src/cloud.cls.php:1002
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."

#: src/cloud.cls.php:951
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."

#: src/cloud.cls.php:754 src/cloud.cls.php:932
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Failed to communicate with QUIC.cloud server"

#: src/cloud.cls.php:702
msgid "Good news from QUIC.cloud server"
msgstr "Good news from QUIC.cloud server"

#: src/cloud.cls.php:686 src/cloud.cls.php:694 src/cloud.cls.php:943
msgid "Message from QUIC.cloud server"
msgstr "Message from QUIC.cloud server"

#: src/cloud.cls.php:551
msgid "Please try after %1$s for service %2$s."
msgstr "Please try after %1$s for service %2$s."

#: src/cloud.cls.php:407
msgid "No available Cloud Node."
msgstr "No available Cloud Node."

#: src/cloud.cls.php:359 src/cloud.cls.php:372 src/cloud.cls.php:407
#: src/cloud.cls.php:432 src/cloud.cls.php:551 src/cloud.cls.php:907
msgid "Cloud Error"
msgstr "Cloud Error"

#: src/data.cls.php:219
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."

#: src/media.cls.php:339
msgid "Restore from backup"
msgstr "Restore from backup"

#: src/media.cls.php:329
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:323
msgid "No backup of unoptimized WebP file exists."
msgstr "No backup of unoptimised WebP file exists."

#: src/media.cls.php:310
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "WebP file reduced by %1$s (%2$s)"

#: src/media.cls.php:306
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Currently using original (unoptimised) version of WebP file."

#: src/media.cls.php:301
msgid "Currently using optimized version of WebP file."
msgstr "Currently using optimised version of WebP file."

#: src/media.cls.php:285
msgid "Orig"
msgstr "Orig"

#: src/media.cls.php:282
msgid "(no savings)"
msgstr "(no savings)"

#: src/media.cls.php:282
msgid "Orig %s"
msgstr "Orig %s"

#: src/media.cls.php:270
msgid "No backup of original file exists."
msgstr "No backup of original file exists."

#: src/media.cls.php:270 src/media.cls.php:323
msgid "Using optimized version of file. "
msgstr "Using optimised version of file. "

#: src/media.cls.php:262
msgid "Orig saved %s"
msgstr "Orig saved %s"

#: src/media.cls.php:256
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Original file reduced by %1$s (%2$s)"

#: src/media.cls.php:252 src/media.cls.php:306
msgid "Click to switch to optimized version."
msgstr "Click to switch to optimised version."

#: src/media.cls.php:252
msgid "Currently using original (unoptimized) version of file."
msgstr "Currently using original (unoptimised) version of file."

#: src/media.cls.php:251 src/media.cls.php:305
msgid "(non-optm)"
msgstr "(non-optm)"

#: src/media.cls.php:247 src/media.cls.php:301
msgid "Click to switch to original (unoptimized) version."
msgstr "Click to switch to original (unoptimised) version."

#: src/media.cls.php:247
msgid "Currently using optimized version of file."
msgstr "Currently using optimised version of file."

#: src/media.cls.php:246 src/media.cls.php:271 src/media.cls.php:300
#: src/media.cls.php:324
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:138
msgid "LQIP image preview for size %s"
msgstr "LQIP image preview for size %s"

#: src/placeholder.cls.php:80 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/htaccess.cls.php:326
msgid "Mobile Agent Rules"
msgstr "Mobile Agent Rules"

#: src/crawler-map.cls.php:321
msgid "Sitemap created successfully: %d items"
msgstr "Sitemap created successfully: %d items"

#: src/crawler-map.cls.php:265
msgid "Sitemap cleaned successfully"
msgstr "Sitemap cleaned successfully"

#: src/admin-display.cls.php:1097
msgid "Invalid IP"
msgstr "Invalid IP"

#: src/admin-display.cls.php:1072
msgid "Value range"
msgstr "Value range"

#: src/admin-display.cls.php:1069
msgid "Smaller than"
msgstr "Smaller than"

#: src/admin-display.cls.php:1066
msgid "Larger than"
msgstr "Larger than"

#: src/admin-display.cls.php:1059
msgid "Zero, or"
msgstr "Zero, or"

#: src/admin-display.cls.php:1047
msgid "Maximum value"
msgstr "Maximum Value"

#: src/admin-display.cls.php:1044
msgid "Minimum value"
msgstr "Minimum Value"

#: src/admin-display.cls.php:1026
msgid "Path must end with %s"
msgstr "Path must end with %s"

#: src/admin-display.cls.php:1009
msgid "Invalid rewrite rule"
msgstr "Invalid rewrite rule"

#: src/admin-display.cls.php:939
msgid "currently set to %s"
msgstr "currently set to %s"

#: src/admin-display.cls.php:929
msgid "This setting is overwritten by the PHP constant %s"
msgstr "This setting is overwritten by the PHP constant %s"

#: src/admin-display.cls.php:131
msgid "Toolbox"
msgstr "Toolbox"

#: src/admin-display.cls.php:127
msgid "Database"
msgstr "Database"

#: src/admin-display.cls.php:125 tpl/dash/dashboard.tpl.php:56
msgid "Page Optimization"
msgstr "Page Optimisation"

#: src/admin-display.cls.php:115 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Dashboard"

#: src/db-optm.cls.php:243
msgid "Converted to InnoDB successfully."
msgstr "Converted to InnoDB successfully."

#: src/purge.cls.php:300
msgid "Cleaned all Gravatar files."
msgstr "Cleaned all Gravatar files."

#: src/purge.cls.php:283
msgid "Cleaned all LQIP files."
msgstr "Cleaned all LQIP files."

#: src/error.cls.php:173
msgid "Unknown error"
msgstr "Unknown error"

#: src/error.cls.php:169
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "Your domain has been forbidden from using our services due to a previous policy violation."

#: src/error.cls.php:165
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "

#: src/error.cls.php:161
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."

#: src/error.cls.php:157
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "The callback validation to your domain failed due to hash mismatch."

#: src/error.cls.php:153
msgid "Your application is waiting for approval."
msgstr "Your application is waiting for approval."

#: src/error.cls.php:149
msgid "Previous request too recent. Please try again after %s."
msgstr "Previous request too recent. Please try again after %s."

#: src/error.cls.php:145
msgid "Previous request too recent. Please try again later."
msgstr "Previous request too recent. Please try again later."

#: src/error.cls.php:140
msgid "Crawler disabled by the server admin."
msgstr "Crawler disabled by the server admin."

#: src/error.cls.php:136
msgid "Failed to create table %s! SQL: %s."
msgstr "Failed to create table %s! SQL: %s."

#: src/error.cls.php:112
msgid "Could not find %1$s in %2$s."
msgstr "Could not find %1$s in %2$s."

#: src/error.cls.php:100
msgid "Credits are not enough to proceed the current request."
msgstr "Credits are not enough to proceed the current request."

#: src/error.cls.php:88
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "The domain key is not correct. Please try to sync your domain key again."

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet."
msgstr "There is proceeding queue not pulled yet."

#: src/error.cls.php:72
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "Not enough parameters. Please check if the domain key is set correctly"

#: src/error.cls.php:68
msgid "The image list is empty."
msgstr "The image list is empty."

#: src/error.cls.php:56
msgid "You don't have enough quota left for current service this month."
msgstr "You don't have enough quota left for current service this month."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "You will need to set %s to use the online services."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "The setting %s is currently enabled."

#: src/task.cls.php:139
msgid "LiteSpeed Crawler Cron"
msgstr "LiteSpeed Crawler Cron"

#: src/task.cls.php:120
msgid "Every Minute"
msgstr "Every Minute"

#: tpl/general/settings.tpl.php:223
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Generated links may be managed under <a %s>Settings</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Please do NOT share the above passwordless link with anyone."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Install"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr "PageSpeed Score"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr "Improved by"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr "After"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr "Before"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr "Page Load Time"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."

#: src/lang.cls.php:173
msgid "Preserve EXIF/XMP data"
msgstr "Preserve EXIF/XMP data"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Try GitHub Version"
msgstr "Try GitHub Version"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "If you turn any of the above settings OFF, please remove the related file types from the %s box."

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr "Both full and partial strings can be used."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Images containing these class names will not be lazy loaded."

#: src/lang.cls.php:150
msgid "Lazy Load Image Class Name Excludes"
msgstr "Lazy Load Image Class Name Excludes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "For example, %1$s defines a TTL of %2$s seconds for %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Maybe later"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Turn On Auto Upgrade"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:62
msgid "Upgrade"
msgstr "Upgrade"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "New release %s is available now."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "New Version Available!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Created with ❤️  by LiteSpeed team."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Sure I'd love to review!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Thank You for Using the LiteSpeed Cache Plugin!"

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr "Upgraded successfully."

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr "Failed to upgrade."

#: src/conf.cls.php:704
msgid "Changed setting successfully."
msgstr "Changed setting successfully."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "ESI sample for developers"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Replace %1$s with %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "You can turn shortcodes into ESI blocks."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Private Cache vs. Public Cache"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Append query string %s to the resources to bypass this action."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA will be bypassed automatically."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Cookie Values"

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr "Cookie Name"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Cookie Simulation"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr "Automatically Upgrade"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Your IP"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Reset successfully."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "This will reset all settings to default settings."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Reset All Settings"

#: tpl/page_optm/settings_tuning.tpl.php:134
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separate critical CSS files will be generated for paths containing these strings."

#: src/lang.cls.php:135
msgid "Separate CCSS Cache URIs"
msgstr "Separate CCSS Cache URIs"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."

#: tpl/page_optm/settings_tuning.tpl.php:119
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "List post types where each item of that type should have its own CCSS generated."

#: src/lang.cls.php:134
msgid "Separate CCSS Cache Post Types"
msgstr "Separate CCSS Cache Post Types"

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr "Size list in queue waiting for cron"

#: tpl/page_optm/settings_media.tpl.php:158
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "If set to %1$s, before the placeholder is localised, the %2$s configuration will be used."

#: tpl/page_optm/settings_media.tpl.php:156
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Automatically generate LQIP in the background via a cron-based queue."

#: tpl/page_optm/settings_media.tpl.php:62
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."

#: tpl/page_optm/settings_media.tpl.php:61
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."

#: src/lang.cls.php:157
msgid "Responsive Placeholder"
msgstr "Responsive Placeholder"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all generated image LQIP placeholder files"
msgstr "This will delete all generated image LQIP placeholder files"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Please enable LiteSpeed Cache in the plugin settings."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Please enable the LSCache Module at the server level, or ask your hosting provider."

#: src/cloud.cls.php:634 src/cloud.cls.php:650
msgid "Failed to request via WordPress"
msgstr "Failed to request via WordPress"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "High-performance page caching and site optimisation from LiteSpeed"

#: src/img-optm.cls.php:1776
msgid "Reset the optimized data successfully."
msgstr "Reset the optimised data successfully."

#: src/gui.cls.php:781
msgid "Update %s now"
msgstr "Update %s now"

#: src/gui.cls.php:776
msgid "View %1$s version %2$s details"
msgstr "View %1$s version %2$s details"

#: src/gui.cls.php:773
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."

#: src/gui.cls.php:753
msgid "Install %s"
msgstr "Install %s"

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr "Images previously optimised"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "LSCache caching functions on this page are currently unavailable!"

#: src/cloud.cls.php:711
msgid "%1$s plugin version %2$s required for this action."
msgstr "%1$s plugin version %2$s required for this action."

#: src/cloud.cls.php:673
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Automatically remove the original image backups after fetching optimised images."

#: src/lang.cls.php:170
msgid "Remove Original Backups"
msgstr "Remove Original Backups"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Automatically request optimisation via cron job."

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr "A backup of each image is saved before it is optimised."

#: src/img-optm.cls.php:1656
msgid "Switched images successfully."
msgstr "Switched images successfully."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "This can improve quality but may result in larger images than lossy compression will."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimise images using lossless compression."

#: src/lang.cls.php:172
msgid "Optimize Losslessly"
msgstr "Optimise Losslessly"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Request WebP versions of original images when doing optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimise images and save backups of the originals in the same folder."

#: src/lang.cls.php:169
msgid "Optimize Original Images"
msgstr "Optimise Original Images"

#: tpl/page_optm/settings_css.tpl.php:174
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "When this option is turned %s, it will also load Google Fonts asynchronously."

#: src/purge.cls.php:230
msgid "Cleaned all Critical CSS files."
msgstr "Cleaned all critical CSS files."

#: tpl/page_optm/settings_css.tpl.php:256
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "This will inline the asynchronous CSS library to avoid render blocking."

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr "Inline CSS Async Lib"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr "Run Queue Manually"

#: tpl/page_optm/settings_css.tpl.php:97 tpl/page_optm/settings_css.tpl.php:207
msgid "URL list in %s queue waiting for cron"
msgstr "URL list in %s queue waiting for cron"

#: tpl/page_optm/settings_css.tpl.php:85 tpl/page_optm/settings_css.tpl.php:195
msgid "Last requested cost"
msgstr "Last requested cost"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:82
#: tpl/page_optm/settings_css.tpl.php:192
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr "Last generated"

#: tpl/page_optm/settings_media.tpl.php:162
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "If set to %s this is done in the foreground, which may slow down page load."

#: tpl/page_optm/settings_css.tpl.php:173
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Automatic generation of critical CSS is in the background via a cron-based queue."

#: tpl/page_optm/settings_css.tpl.php:169
msgid "Optimize CSS delivery."
msgstr "Optimise CSS delivery."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "This will delete all generated critical CSS files"

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "Critical CSS"

#: src/doc.cls.php:36
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Disabling this may cause WordPress tasks triggered by AJAX to stop working."

#: src/utility.cls.php:236
msgid "right now"
msgstr "right now"

#: src/utility.cls.php:236
msgid "just now"
msgstr "just now"

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr "Saved"

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Last ran"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "You will be unable to Revert Optimisation once the backups are deleted!"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr "This is irreversible."

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr "Remove Original Image Backups"

#: tpl/img_optm/summary.tpl.php:255
msgid "Are you sure you want to remove all image backups?"
msgstr "Are you sure you want to remove all image backups?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr "Files"

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr "Last calculated"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calculate Original Image Storage"

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr "Storage Optimisation"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."

#: src/lang.cls.php:175
msgid "WebP For Extra srcset"
msgstr "WebP For Extra srcset"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Use the format %1$s or %2$s (element is optional)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Only attributes listed here will be replaced."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Specify which element attributes will be replaced with WebP."

#: src/lang.cls.php:174
msgid "WebP Attribute To Replace"
msgstr "WebP Attribute To Replace"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Only files within these directories will be pointed to the CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Included Directories"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "A Purge All will be executed when WordPress runs these hooks."

#: src/lang.cls.php:182
msgid "Purge All Hooks"
msgstr "Purge All Hooks"

#: src/purge.cls.php:192
msgid "Purged all caches successfully."
msgstr "Purged all caches successfully."

#: src/gui.cls.php:479 src/gui.cls.php:579 src/gui.cls.php:629
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:423
msgid "Forced cacheable"
msgstr "Forced cacheable"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be cached regardless of no-cacheable settings."

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr "Force Cache URIs"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Exclude Settings"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "This will disable LSCache and all optimisation features for debug purpose."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Disable All Features"

#: src/gui.cls.php:506 src/gui.cls.php:666 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Opcode Cache"

#: src/gui.cls.php:487 src/gui.cls.php:637 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "CSS/JS Cache"

#: src/gui.cls.php:734 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr "Remove all previous unfinished image optimisation requests."

#: src/gui.cls.php:735 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr "Clean Up Unfinished Data"

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr "Images failed with other errors"

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr "Images with wrong meta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Join Us on Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Join the %s community."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Want to connect with other LiteSpeed users?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Get it from <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:202
msgid "Your API key / token is used to access %s APIs."
msgstr "Your API key / token is used to access %s APIs."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Your Email address on %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Use %s API functionality."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "To randomise CDN hostname, define multiple hostnames for the same resources."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Join LiteSpeed Slack community"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visit LSCWP support forum"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Rate %s on %s"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr "Images notified to pull"

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr "Image files missing"

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr "What is a group?"

#: src/admin-display.cls.php:1165
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1162
msgid "%s group"
msgstr "%s group"

#: src/admin-display.cls.php:1152
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1149
msgid "%s groups"
msgstr "%s groups"

#: src/crawler.cls.php:826
msgid "Guest"
msgstr "Guest"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "To crawl the site as a logged-in user, enter the user ids to be simulated."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Role Simulation"

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr "running"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Size"

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr "Ended reason"

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr "Last interval"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr "Current crawler started at"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Run time for previous crawler"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d seconds"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Last complete run time for all crawlers"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Current sitemap crawl started at"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Save transients in database when %1$s is %2$s."

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr "Store Transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "If %1$s is %2$s, then %3$s must be populated!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Server allowed max value"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Server enforced value"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Server allowed min value"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTE"

#: src/admin-display.cls.php:1118
msgid "Server variable(s) %s available to override this setting."
msgstr "Server variable(s) %s available to override this setting."

#: src/admin-display.cls.php:1117 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:176
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:165
#: tpl/page_optm/settings_tuning.tpl.php:186
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:379
msgid "Reset the entire opcode cache successfully."
msgstr "Reset the entire opcode cache successfully."

#: src/purge.cls.php:367
msgid "Opcode cache is not enabled."
msgstr "Opcode cache is not enabled."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Imported setting file %s successfully."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Import failed due to file error."

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "How to Fix Problems Caused by CSS/JS Optimisation."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "This will generate extra requests to the server, which will increase server load."

#: src/lang.cls.php:184
msgid "Instant Click"
msgstr "Instant Click"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Reset the entire opcode cache"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "This will import settings from a file and override all current LiteSpeed Cache settings."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Last imported"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Import"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Import Settings"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "This will export all current LiteSpeed Cache settings and save them as a file."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Last exported"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Export"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Export Settings"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Import / Export"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Use keep-alive connections to speed up cache operations."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Database to be used"

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr "Redis Database ID"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Specify the password used when connecting."

#: src/lang.cls.php:88
msgid "Password"
msgstr "Password"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Only available when %s is installed."

#: src/lang.cls.php:87
msgid "Username"
msgstr "Username"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Your %s Hostname or IP address."

#: src/lang.cls.php:83
msgid "Method"
msgstr "Method"

#: src/purge.cls.php:420
msgid "Purge all object caches successfully."
msgstr "Purge all object caches successfully."

#: src/purge.cls.php:407
msgid "Object cache is not enabled."
msgstr "Object cache is not enabled."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Improve wp-admin speed through caching. (May encounter expired data)"

#: src/lang.cls.php:93
msgid "Cache WP-Admin"
msgstr "Cache WP-Admin"

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr "Persistent Connection"

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr "Do Not Cache Groups"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groups cached at the network level."

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr "Global Groups"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Connection Test"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "%s Extension"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr "Status"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "Default TTL for cached objects."

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr "Default Object Lifetime"

#: src/lang.cls.php:85
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:84
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:496 src/gui.cls.php:656 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Object Cache"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Failed"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Passed"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Not Available"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Purge all the object caches"

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr "Failed to communicate with Cloudflare"

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr "Communicated with Cloudflare successfully."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "No available Cloudflare zone"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Notified Cloudflare to purge all successfully."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "Cloudflare API is set to off."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Notified Cloudflare to set development mode to %s successfully."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Once saved, it will be matched with the current list and completed automatically."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "You can just type part of the domain."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Domain"

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "Cloudflare API"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Purge Everything"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cloudflare Cache"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Development Mode will be turned off automatically after three hours."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in real time."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Development mode will be automatically turned off in %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "Current status is %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "Current status is %1$s since %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Check Status"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Turn OFF"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Turn ON"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Development Mode"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Cloudflare Zone"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Cloudflare Domain"

#: src/gui.cls.php:646 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "For example"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Prefetching DNS can reduce latency for visitors."

#: src/lang.cls.php:126
msgid "DNS Prefetch"
msgstr "DNS Prefetch"

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Adding Style to Your Lazy-Loaded Images"

#: src/admin-display.cls.php:980 src/admin-display.cls.php:985
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Default value"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Static file type links to be replaced by CDN links."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "For example, to drop parameters beginning with %s, %s can be used here."

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr "Drop Query String"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."

#: src/lang.cls.php:183
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Improve HTTP/HTTPS Compatibility"

#: tpl/img_optm/summary.tpl.php:378
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Remove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files."

#: tpl/img_optm/summary.tpl.php:374
msgid "Destroy All Optimization Data"
msgstr "Destroy All Optimisation Data"

#: tpl/img_optm/summary.tpl.php:324
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Scan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "This will increase the size of optimised files."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Clear Log"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "To test the cart, visit the <a %s>FAQ</a>."

#: src/utility.cls.php:239
msgid " %s ago"
msgstr " %s ago"

#: src/media.cls.php:315
msgid "WebP saved %s"
msgstr "WebP saved %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "If you run into any issues, please refer to the report number in your support message."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "This will also generate an API key from LiteSpeed's Server."

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr "Last pull initiated by cron at %s."

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Images will be pulled automatically if the cron job is running."

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr "Only press the button if the pull cron job is disabled."

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr "Pull Images"

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr "This process is automatic."

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr "Last Request"

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr "Images failed to pull"

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr "Images failed to fetch"

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr "Images Pulled"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Report"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Send To LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Report date"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Report number"

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr "Privately cache cart when not empty."

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr "Privately Cache Cart"

#: src/media.cls.php:196
msgid "LiteSpeed Optimization"
msgstr "LiteSpeed Optimisation"

#: src/lang.cls.php:131
msgid "Load Google Fonts Asynchronously"
msgstr "Load Google Fonts Asynchronously"

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr "Browser Cache TTL"

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Results can be checked in <a %s>Media Library</a>."

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Learn More"

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr "Images optimised and pulled"

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr "Images requested"

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr "Images not yet requested"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr "Images total"

#: src/img-optm.cls.php:1713
msgid "Switched to optimized file successfully."
msgstr "Switched to optimised file successfully."

#: src/img-optm.cls.php:1706
msgid "Restored original file successfully."
msgstr "Restored original file successfully."

#: src/img-optm.cls.php:1690
msgid "Enabled WebP file successfully."
msgstr "Enabled WebP file successfully."

#: src/img-optm.cls.php:1684
msgid "Disabled WebP file successfully."
msgstr "Disabled WebP file successfully."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Significantly improve load time by replacing images with their optimised %s versions."

#: src/lang.cls.php:188
msgid "Image WebP Replacement"
msgstr "Image WebP Replacement"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Selected roles will be excluded from cache."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Tuning"

#: tpl/page_optm/settings_tuning.tpl.php:228
msgid "Selected roles will be excluded from all optimizations."
msgstr "Selected roles will be excluded from all optimisations."

#: src/lang.cls.php:142
msgid "Role Excludes"
msgstr "Role Excludes"

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Tuning Settings"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "If the tag slug is not found, the tag will be removed from the list on save."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "If the category name is not found, the category will be removed from the list on save."

#: tpl/img_optm/summary.tpl.php:117
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "After the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images."

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr "Send Optimisation Request"

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr "Image Information"

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr "Total Reduction"

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr "Optimisation Summary"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "LiteSpeed Cache Image Optimisation"

#: src/admin-display.cls.php:123 src/gui.cls.php:612
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr "Image Optimisation"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "JS Deferred Excludes"

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr "For example, %s can be used for a transparent placeholder."

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr "By default a grey image placeholder %s will be used."

#: tpl/page_optm/settings_media.tpl.php:46
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Specify a base64 image to be used as a simple placeholder while images finish loading."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:167
#: tpl/page_optm/settings_tuning.tpl.php:188
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Elements with attribute %s in html code will be excluded."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:166
#: tpl/page_optm/settings_tuning.tpl.php:187
msgid "Filter %s is supported."
msgstr "Filter %s is supported."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Listed images will not be lazy loaded."

#: src/lang.cls.php:149
msgid "Lazy Load Image Excludes"
msgstr "Lazy Load Image Excludes"

#: src/gui.cls.php:456
msgid "No optimization"
msgstr "No optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:202
msgid "Prevent any optimization of listed pages."
msgstr "Prevent any optimisation of listed pages."

#: src/lang.cls.php:140
msgid "URI Excludes"
msgstr "URI Excludes"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr "Both full URLs and partial strings can be used."

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr "Load iframes only when they enter the viewport."

#: src/lang.cls.php:165
msgid "Lazy Load Iframes"
msgstr "Lazy Load Iframes"

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "This can improve page loading time by reducing initial HTTP requests."

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr "Load images only when they enter the viewport."

#: src/lang.cls.php:148
msgid "Lazy Load Images"
msgstr "Lazy Load Images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr "Media Settings"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "For example, for %s, %s and %s can be used here."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."

#: src/admin-display.cls.php:1133
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "To match the beginning, add %s to the beginning of the item."

#: src/admin-display.cls.php:1131
msgid "For example, for %s, %s can be used here."
msgstr "For example, for %s, %s can be used here."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Maybe later"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "I've already left a review"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Welcome to LiteSpeed"

#: src/lang.cls.php:138
msgid "Remove WordPress Emoji"
msgstr "Remove WordPress Emoji"

#: src/gui.cls.php:464
msgid "More settings"
msgstr "More settings"

#: src/gui.cls.php:445
msgid "Private cache"
msgstr "Private cache"

#: src/gui.cls.php:434
msgid "Non cacheable"
msgstr "Non cacheable"

#: src/gui.cls.php:411
msgid "Mark this page as "
msgstr "Mark this page as "

#: src/gui.cls.php:403
msgid "Purge this page"
msgstr "Purge this page"

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr "Load JS Deferred"

#: tpl/page_optm/settings_tuning.tpl.php:148
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Specify critical CSS rules for above-the-fold content when enabling %s."

#: src/lang.cls.php:133
msgid "Critical CSS Rules"
msgstr "Critical CSS Rules"

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:148
msgid "Load CSS Asynchronously"
msgstr "Load CSS Asynchronously"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Prevent Google Fonts from loading on all pages."

#: src/lang.cls.php:132
msgid "Remove Google Fonts"
msgstr "Remove Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:170
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:79
msgid "Remove query strings from internal static resources."
msgstr "Remove query strings from internal static resources."

#: src/lang.cls.php:130
msgid "Remove Query Strings"
msgstr "Remove Query Strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr "Browser Cache"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "tags"

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr "Do Not Cache Tags"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "To exclude %1$s, insert %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "categories"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "To prevent %s from being cached, enter them here."

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr "Do Not Cache Categories"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "Query strings containing these parameters will not be cached."

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr "Do Not Cache Query Strings"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Paths containing these strings will not be cached."

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr "Do Not Cache URIs"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "The logs will be output to %s."

#: src/admin-display.cls.php:1135 src/doc.cls.php:74
msgid "One per line."
msgstr "One per line."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "URI Paths containing these strings will NOT be cached as public."

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr "Private Cached URIs"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Paths containing these strings will not be served from the CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Exclude Path"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "This will affect all tags containing attributes: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Include File Types"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Include JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Include CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Include Images"

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr "CDN URL to be used. For example, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "CDN URL"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "Original URLs"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "CDN Settings"

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:233 src/admin-display.cls.php:838
#: src/admin-display.cls.php:865 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:72 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:232 src/admin-display.cls.php:837
#: src/admin-display.cls.php:866 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:174
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:351
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Notified LiteSpeed Web Server to purge CSS/JS entries."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minify HTML content."

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr "HTML Minify"

#: src/lang.cls.php:129
msgid "JS Excludes"
msgstr "JS Excludes"

#: src/data.upgrade.func.php:101 src/lang.cls.php:115
msgid "JS Combine"
msgstr "JS Combine"

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr "JS Minify"

#: src/lang.cls.php:128
msgid "CSS Excludes"
msgstr "CSS Excludes"

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr "CSS Combine"

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr "CSS Minify"

#: tpl/page_optm/entry.tpl.php:31
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "This will purge all minified/combined CSS/JS entries only"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purge %s Error"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Database Optimiser"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimise all tables in your database"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimise Tables"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Clean all transient options"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "All Transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Clean expired transient options"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Expired Transients"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Clean all trackbacks and pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/Pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Clean all trashed comments"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Trashed Comments"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Clean all spam comments"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Spam Comments"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Clean all trashed posts and pages"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Trashed Posts"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Clean all auto saved drafts"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Auto Drafts"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Clean all post revisions"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Post Revisions"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Clean All"

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr "Optimised all tables."

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr "Clean all transients successfully."

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr "Clean expired transients successfully."

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Clean trackbacks and pingbacks successfully."

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr "Clean trashed comments successfully."

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr "Clean spam comments successfully."

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr "Clean trashed posts and pages successfully."

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr "Clean auto drafts successfully."

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr "Clean post revisions successfully."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Clean all successfully."

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr "Default Private Cache TTL"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."

#: src/lang.cls.php:181 tpl/page_optm/settings_css.tpl.php:110
#: tpl/page_optm/settings_css.tpl.php:220
msgid "Vary Group"
msgstr "Vary Group"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Cache the built-in Comment Form ESI block."

#: src/lang.cls.php:179
msgid "Cache Comment Form"
msgstr "Cache Comment Form"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Cache the built-in Admin Bar ESI block."

#: src/lang.cls.php:178
msgid "Cache Admin Bar"
msgstr "Cache Admin Bar"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Private"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Public"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purge Settings"

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr "Cache PHP Resources"

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache Mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Advanced level will log more details."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basic"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr "Cache Login Page"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cache requests made by WordPress REST API calls."

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr "Cache REST API"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr "Cache Commenters"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Privately cache frontend pages for logged-in users. (LSWS %s required)"

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr "Cache Logged-in Users"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Cache Control Settings"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excludes"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:142
msgid "Purge"
msgstr "Purge"

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "Current server time is %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Specify the time to purge the \"%s\" list."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Both %1$s and %2$s are acceptable."

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Scheduled Purge Time"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Scheduled Purge URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Shorten query strings in the debug log to improve readability."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Log requested cookie values."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Log File Size Limit"

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr "%s file not writable."

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr "%s file not readable."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Collapse Query Strings"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Log Cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "ESI Settings"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "A TTL of 0 indicates do not cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Recommended value: 28800 seconds (8 hours)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget Cache TTL:"

#: src/lang.cls.php:177 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Enable ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Custom Sitemap"

#: tpl/toolbox/purge.tpl.php:244
msgid "Purge pages by relative or full URL."
msgstr "Purge pages by relative or full URL."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:165
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "WARNING"

#: tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Last crawled:</b> %s item(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "The next complete sitemap crawl will start at"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Failed to write to %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "Folder is not writable: %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Can not create folder: %1$s. Error: %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "Folder does not exist: %s"

#: src/core.cls.php:296
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Notified LiteSpeed Web Server to purge the list."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Please visit the <a %s>Information</a> page on how to test the cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Allows listed IPs (one per line) to perform certain actions from their browsers."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Server Load Limit"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Specify Number of Threads to use while crawling."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Crawl Interval"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Interval Between Runs"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Specify time in seconds for the duration of the crawl interval."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Specify time in microseconds for the delay between requests during a crawl."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microseconds"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Then another WordPress is installed (NOT MULTISITE) at %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "LiteSpeed Cache Network Cache Settings"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Select below for \"Purge by\" options."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "LiteSpeed Cache CDN"

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr "No crawler meta file generated yet"

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr "Show crawler status"

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr "Watch Crawler Status"

#: tpl/crawler/summary.tpl.php:191
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "Run frequency is set by the Interval Between Runs setting."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Manually run"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reset position"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Run Frequency"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Cron Name"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Crawler Cron"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hour"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d hours"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generated at %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "LiteSpeed Cache Crawler"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Threads"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Run Duration"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Delay"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."

#: src/admin-display.cls.php:129 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:626
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Notified LiteSpeed Web Server to purge all pages."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "All pages with Recent Posts Widget"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "This will Purge Pages only"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purge Pages"

#: thirdparty/woocommerce.content.tpl.php:78
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."

#: src/css.cls.php:533
msgid "Cancel"
msgstr "Cancel"

#: tpl/crawler/summary.tpl.php:125
msgid "Activate"
msgstr "Activate"

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Email Address"

#: tpl/general/settings.tpl.php:100
msgid "Warning"
msgstr "Warning"

#: src/gui.cls.php:754
msgid "Install Now"
msgstr "Install Now"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purged the url!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purged the blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Purged All!"

#: src/purge.cls.php:645
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notified LiteSpeed Web Server to purge error pages."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "If the login cookie was recently changed in the settings, please log out and back in."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "However, there is no way of knowing all the possible customisations that were implemented."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "The network admin setting can be overridden here."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Specify how long, in seconds, public pages are cached."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Specify how long, in seconds, private pages are cached."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by post ID."
msgstr "Purge pages by post ID."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purge the LiteSpeed cache entries created by this plugin"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s error pages"
msgstr "Purge %s error pages"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "This will Purge Front Page only"

#: tpl/toolbox/purge.tpl.php:239
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:245
msgid "e.g. Use %s or %s."
msgstr "e.g. Use %s or %s."

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:133
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "If only the WordPress site should be purged, use Purge All."

#: src/core.cls.php:291
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Notified LiteSpeed Web Server to purge everything."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Use Primary Site Configuration"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "This will disable the settings page on all subsites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Check this option to use the primary site's configuration for all subsites."

#: src/admin-display.cls.php:706 src/admin-display.cls.php:711
msgid "Save Changes"
msgstr "Save Changes"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "The following options are selected, but are not editable in this settings page."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "The network admin selected use primary site configs for all subsites."

#: tpl/toolbox/purge.tpl.php:125
msgid "Empty Entire Cache"
msgstr "Empty Entire Cache"

#: tpl/toolbox/purge.tpl.php:127
msgid "This action should only be used if things are cached incorrectly."
msgstr "This action should only be used if things are cached incorrectly."

#: tpl/toolbox/purge.tpl.php:126
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Clears all cache entries related to this site, <i>including other web applications</i>."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "This may cause heavy load on the server."

#: tpl/toolbox/purge.tpl.php:131
msgid "This will clear EVERYTHING inside the cache."
msgstr "This will clear EVERYTHING inside the cache."

#: src/gui.cls.php:579
msgid "LiteSpeed Cache Purge All"
msgstr "LiteSpeed Cache Purge All"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "If you would rather not move at litespeed, you can deactivate this plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Create a post, make sure the front page is accurate."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visit the site while logged out."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Examples of test cases include:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "For that reason, please test the site to make sure everything still functions properly."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "This message indicates that the plugin was installed by the server admin."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "LiteSpeed Cache plugin is installed!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Debug Log"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Admin IP Only"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "The Admin IP option will only output log messages on requests from admin IPs."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Specify how long, in seconds, REST calls are cached."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "The environment report contains detailed information about the WordPress configuration."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr "Note"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "After verifying that the cache works in general, please test the cart."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr "Purge All On Upgrade"

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr "Use Front Page TTL for the Shop Page"

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr "Product Update Interval"

#: thirdparty/woocommerce.content.tpl.php:77
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Checking this option will force the shop page to use the front page TTL setting."

#: thirdparty/woocommerce.content.tpl.php:64
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."

#: thirdparty/woocommerce.content.tpl.php:51
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Always purge both product and categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Do not purge categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr "Purge product only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr "Purge product and categories only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr "Purge categories only when stock status changes."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purge product on changes to the quantity or stock status."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr "Htaccess did not match configuration option."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "If this is set to a number less than 30, feeds will not be cached."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Specify how long, in seconds, feeds are cached."

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr "Default Feed TTL"

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr "Failed to get %s file contents."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching these pages may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Some themes and plugins add resources via a PHP request."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching this resource may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico is requested on most pages."

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr "Cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Disabling this option may negatively affect performance."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Invalid login cookie. Invalid characters found."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "WARNING: The .htaccess login cookie and Database login cookie do not match."

#: src/error.cls.php:116
msgid "Invalid login cookie. Please check the %s file."
msgstr "Invalid login cookie. Please check the %s file."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "There is a WordPress installed for %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Example use case:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "The cookie set here will be used for this WordPress installation."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "This setting is useful for those that have multiple web applications for the same domain."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "The default login cookie is %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "No spaces and case sensitive."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SYNTAX: alphanumeric and \"_\"."

#: src/lang.cls.php:187
msgid "Login Cookie"
msgstr "Login Cookie"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "More information about the available commands can be found here."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "These settings are meant for ADVANCED USERS ONLY."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Current %s Contents"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Advanced"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Advanced Settings"

#: tpl/toolbox/purge.tpl.php:258
msgid "Purge List"
msgstr "Purge List"

#: tpl/toolbox/purge.tpl.php:177
msgid "Purge By..."
msgstr "Purge By..."

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:224
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:218
msgid "Tag"
msgstr "Tag"

#: tpl/toolbox/purge.tpl.php:212
msgid "Post ID"
msgstr "Post ID"

#: tpl/toolbox/purge.tpl.php:206
msgid "Category"
msgstr "Category"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "NOTICE: Database login cookie did not match your login cookie."

#: src/purge.cls.php:730
msgid "Purge url %s"
msgstr "Purge url %s"

#: src/purge.cls.php:699
msgid "Purge tag %s"
msgstr "Purge tag %s"

#: src/purge.cls.php:672
msgid "Purge category %s"
msgstr "Purge category %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "When disabling the cache, all cached entries for this site will be purged."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr "NOTICE"

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr "This setting will edit the .htaccess file."

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr "LiteSpeed Cache View .htaccess"

#: src/error.cls.php:120
msgid "Failed to back up %s file, aborted changes."
msgstr "Failed to back up %s file, aborted changes."

#: src/lang.cls.php:185
msgid "Do Not Cache Cookies"
msgstr "Do Not Cache Cookies"

#: src/lang.cls.php:186
msgid "Do Not Cache User Agents"
msgstr "Do Not Cache User Agents"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "This is to ensure compatibility prior to enabling the cache for all sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Network Enable Cache"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "NOTICE:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Other checkboxes will be ignored."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "List of Mobile User Agents"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "File %s is not writable."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr "JS Settings"

#: src/gui.cls.php:595 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Manage"

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr "Default Front Page TTL"

#: src/purge.cls.php:613
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Notified LiteSpeed Web Server to purge the front page."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purge Front Page"

#: tpl/page_optm/settings_localization.tpl.php:127
#: tpl/toolbox/beta_test.tpl.php:30
msgid "Example"
msgstr "Example"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "All tags are cached by default."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "All categories are cached by default."

#: src/admin-display.cls.php:1134
msgid "To do an exact match, add %s to the end of the URL."
msgstr "To do an exact match, add %s to the end of the URL."

#: src/admin-display.cls.php:1130
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "The URLs will be compared to the REQUEST_URI server variable."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Select only the archive types that are currently used, the others can be left unchecked."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notes"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Use Network Admin Setting"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Disable"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Disabled"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Enabled"

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr "Do Not Cache Roles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Outputs to WordPress debug log."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Debug Level"

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr "Notice"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Term archive (include category, tag, and tax)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Daily archive"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Monthly archive"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Yearly archive"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Post type archive"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Author archive"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Home page"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Front page"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "All pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Select which pages will be automatically purged when posts are published/updated."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Auto Purge Rules For Publish/Update"

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr "Default Public Cache TTL"

#: src/admin-display.cls.php:949 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "seconds"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "Admin IPs"

#: src/admin-display.cls.php:117
msgid "General"
msgstr "General"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "LiteSpeed Cache Settings"

#: src/purge.cls.php:211
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Notified LiteSpeed Web Server to purge all LSCache entries."

#: src/gui.cls.php:471 src/gui.cls.php:479 src/gui.cls.php:487
#: src/gui.cls.php:496 src/gui.cls.php:506 src/gui.cls.php:516
#: src/gui.cls.php:526 src/gui.cls.php:535 src/gui.cls.php:545
#: src/gui.cls.php:555 src/gui.cls.php:621 src/gui.cls.php:629
#: src/gui.cls.php:637 src/gui.cls.php:646 src/gui.cls.php:656
#: src/gui.cls.php:666 src/gui.cls.php:676 src/gui.cls.php:686
#: src/gui.cls.php:695 src/gui.cls.php:705 src/gui.cls.php:715
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:37
#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
#: tpl/toolbox/purge.tpl.php:79 tpl/toolbox/purge.tpl.php:88
#: tpl/toolbox/purge.tpl.php:97 tpl/toolbox/purge.tpl.php:106
#: tpl/toolbox/purge.tpl.php:115
msgid "Purge All"
msgstr "Purge All"

#: src/admin-display.cls.php:281 src/gui.cls.php:603
msgid "Settings"
msgstr "Settings"��$H(`)`(1`2Z`�`�`	�`
�`
�`�`�`�`�`	a
a	aam0a�a
�a�a�a3�ahbib�bN�b8�b=1c"oc7�c�cH�cd d2dBd]d'nd
�d	�d�d�d%�d�d|�dFre�e%�e	�e"�efP;f�fT�fZ�f>Kgu�gh4	h->h/lhL�h2�hIifiui�i#�iQ�ijsjE�jP�j0'k'Xk�k�k�k�k�kI�k+l	Jl	Tl^l jl"�l/�l*�l	m
mm6m�Hm4�mfn jn�n�n
�n�n�n#�n�n�no
oo,o9o?oOoboso	�o�o�o
�o�o�o�o�oppp00p*apU�pW�p:q Wq xq(�q�q�q�q�q�qKrPar	�r�r�r�rss4s"Lsos"�s�s!�s�st&+t"RtGut!�t,�t$u+1u]u'}u(�u	�u�uW�uMvcvvv1�v2�v�v
�v	ww6wGwYwiw&�w.�wN�w*%x/Px�x�x]�xy-y?yKy
]ykyzy�y�y�y�y�y
�y!�yz4.z'cz�z�z	�z�z�z�z;{:>{y{�{�{ �{"�{||/3|*c|<�|�|�|�|}
}	#}-}6}I}Z}z}�}�}	�}�}�}�}�}�}�}~(~B~[~{~�~
�~�~�~�~)�~�~+}C�D�8�P�X�;m��� ��KӀ8�qX�ʁҁ����'�B�U�g�y�C��ւ
݂�H�J�c�u���
����<�����9,�
f�t��� ����
ŅYЅq*�����NĆ� ��'���LJχ����(�;�B�R�+Y�%��,��s؈L�l�������lj�����4�LN���9��:�0�)M��w�c�Gx�L��W
�e�v�
����
����͍��� �2�:�K�g�
����8��ݎ��
�$�?� R�0s�����Ǐ#ڏ��
��*�E�_�r���
����	��ĐB֐�	�'�2,�)_�Z��,��&�-A��o�iG�I��;��Y7�K��VݔU4�L��lוBD�Y����V��`ڗJ;�g��=�@,�=m�����Ӛ���9�P�
d�r�<����כ�?
�M�b�z�����ǜ��?�A�X�_�o� �&�� ǝD�-�l9�����Ş
Ԟ�ߞ���e�z���
������
Ǡՠ
�/��/&�V�pk�<ܡ
�$�C�L�a�	m�w�������.ʢ��
��	�
�,�D�Q�hp�٣A��#���	ɤӤ�'�
�&�
5�
C�"Q�t�}�����#��֥�
�
�$�;�N�Pi�H��B�7F�@~�>��"��&!�H�X�l���%�� Ĩ"�&�!/�Q�k�����$����Ȫߪ�� �@�/Q�.������Ы����*�6�J�S�p�}���+��ʬѬެ�
�����*�9�X�%_���$��
��ͭҭ�@�
(�%6�\��a���>��8�J� _���*�� ¯2��/�"L�*o�"��"������<%�,b�$��
��
±б���
�.�?/�6o�;��1�3�2H�6{�0���������Q4�D��
˴-ٴ$�?,�l����7�=�J�%g�	��������Ӷ����$'�L�Ee�+��*׷,�/�E�Q�Z�x�����
��!��ĸ��
�+�:�J�P�W�`�r�R��c۹2?�?r�
����ߺ<��52�Sh�5���p����'��/�E������;1�0m�M���p�|t�/�&!�&H�)o���
������
��$��-�F����!�.�
@�N�c�o�A��������	������)�:�
K�V�b�%q���0����I��@�$X�D}�@��9�1=�o�8|�a���'�4�@�`�q���+��
����#��=��1�
M�[�+x������������'�=�L�`�u�������{��;S�����4�����)�0�
<�J�A]�S��	�����!%�G�_�r�������+��&��B�X�Yo���$��2�5�G�I\�
������
����:��-�K�S�q�.~���d���-�MB�f��$��X�Qu�7��+��+�gE�������Q��I�PU�^��m�	s�}�������9��v�}��(�/�I�>R���U����N�Y^�������
����#���9*�8d�
��0��V��_3�C��G��a�8��4��/��7�6W�7��-��)��L�*k�)��-��(��,�.D�Ks�?��?��H?�<��3����R�S�h�����������2����(�5F�|���������e��-�F�/N�M~�h��5�]U�=��8��[*�c��A��q,����`0�q���W#�O{�>��
�K"�n���E��1��-
�M8�Y��$��)�9/�Oi�&��9��Y�$t�X��1��$�A5�&w�^��E��UC�(��S���J,�(w�I��.���24�7g�Y��*��9$�^�~�:��;��,�*=�1h�;��/��(�J/�4z���N��Q�oo�X��/8�Gh�9��1�� $�E��M�J�^^�3��N�@�W^�����M�*�<7�1t�V��L��*J�]u�������$�'�<�
M�[�n�u��������/:�(j�)�������[�
�
����@�S�%W�}�
�
�
�����:�5$Ej���r�5=_s8�#)M$m.�2�r�g!pC�F�
(GV p ��K�#7+My�)���RWq �
����e�JZj�M	^	gp	�	R�	ZB
�
�
�
&�
'#-Q%`��/>qn(�E	
JO
F�
.�
Z6kG��/
:T\k
t��'��K�@IVJ]	�����'�	�B:H�	�	�
���"�'�	
$	-7�K���:�O/�)P,J}J�.KB�S��!�&0W3v����0�"�)U�7+c5t7�b�EtZ{�PK��	-W7A�8�^
LiS�
->Jf��~Y�`�:I ,� 7� C� =-!k!s!sy!+�!
"$"5":=")x"R�"O�"
E#P#a##��#9W$x�$#
%.%3%7%M%
]%(h%�%%�%	�%�%
�%�%�%+�%,(&!U&*w&�&+�&$�&''$'<'Z'p''�'S�'D(nM(p�((-)*V)�)7�)�)
�)�)*&*_<*_�*
�*#
+".+.Q+*�+,�+�+&�+(,-D,2r,7�,-�,+-17-5i-c�-8.2<.>o.5�.)�.7/+F/r/ �/f�/
0(0F0Be0=�0�0
�01+1<1M1`1"p12�18�1q�1!q28�2#�2"�2m3�3�3
�3�3�3�3�3�3)4,24._4�4�4D�45C5-c5�5�5�5�5�5 �5_6Uw6 �6�6%7.+7&Z7�7$�7@�7;8N<8�8$�8�8�8�89!929Q94q9�9�9�9�9�9:':E:Q:#f:$�:�:+�:-�:&;'@;h;	{;�;�;6�;.�;4�;�0<�<L�<@8=y='�=a�=>'>YF>C�>��>q?y?&�?"�?"�?/@!1@&S@z@-�@V�@A&A'6Ai^A$�A �A&B5B9B
HB�VB&�CDDD+DpD�D�D0�D�D�Dr
E|}E
�EFK F%lF�F��F
]GkGsG)�G�G�G�G�G�GH	H?(H'hH5�H��H2bI#�I�I�I)�I'JBJKJgJ*�J)�Ja�J>K=JKH�K;�K1
L�?Lm�L[VM��MeGN�N�N�N�N
O'O9GO3�O"�O�O	�O�OP-3PaPtPD�P)�P�PQ#Q CQ&dQ1�Q�Q�Q�Q*�Q$R
*R#8R!\R!~R�R�R�R�R�RS!SXAS�S�S
�SB�S>TuDT@�T�T%U5>UtUv�VS	WJ]Wi�W_XsrXy�Xv`Ym�YVEZu�Z�[n�[xa\u�\�P]N/_Q~_V�_'`E`[`%r`$�`.�`�`	a"a1aNCa+�a�a/�aS	b]bsb�b�b�b!�b	ccX*c�c�c�c�c.�c&�c'$dfLd�d��d\eke�e
�e��e��f�g�g	�g�g�g�gh"%h
HhAVhA�h!�h��h?�i�i$�i�ijjj+j)8jbj{jM�j�j
�j�jk k=k+Nk}zk�k[l�\l*m9mHm[mJlm�m�m�m�m&�m%n:nLn cn<�n#�n�noo3#oWo$jol�oS�oSPpH�pQ�pO?q.�q6�q�qrr1r3Qr'�r&�r-�r)s,sHs bs%�s/�s�s�tu%u%<u/bu�uQ�uT�uSv`vyv�v"�v�v�v#�vw(-wVw,jw�w.�w�w�w�w�wxx.xCxRxhx�x3�x�x2�xy y(y:yP?y�y5�y�y��yxz�zf�z�z{+3{_{C~{1�{?�{ 4|!U|1w|;�|1�|/}!G}i}%}}K�}6�}H&~o~�~�~�~	�~�~
�~(�~B=KE�=�A
�,O�D|�,�����������6�^S�O���:�/L�H|�0ł���IÃ
�$�7?�
w�������΄����74�'l�X��<�2*�7]�����
Ć7φ�	�(�5�,D�2q�*��%χ(���=�M�S�\�#i���{���%�JɉC�X�@u���R̊E�Xe�E��'��,����2k����U�������M)�Gw�d��$��D��ʐ=b�7��7ؑ/�@�G�T�o����� ��:Ȓ��nғ%A�g�p�}���-��֔�L��H�O�e�����%��
Еޕ���&�';�c�B��Ɩbޖ$A�/f�`��N��IF�=��Θ@�k&�������'ř���	�6�
R�]�8l�P�����'�0G�x�(����'ܛ+�0�O�g�����(��0� �3��O�G�!;�]�B|���ݞ�����"�J>�h�����+�'D�l�!����Š�0��1/�-a�_����
��� ��UԢ*�F�ic�ͣ٣��*�[H�6��ۤ"��J4������)�iC�u��=#�a�k�DM�1��%Ĩ��k�2����_ϩ/�eB�s����
����!ѫ!��C4��x��$�A٭)�	E�aO���pϮ@�LX�k���'�"A�d�z�=����IΰH�a�:|�k��t#�U��^�lM�R��K
�FY�Q��R�PE�A��0صc	�5m�6��7ڶ.�FA�D��[ͷJ)�Tt�RɸE�Ab���q���5�R�
i�w�'����@���(�S7�)����˻ϻ
׻��>d�
��3��s��Y�,�l�>�=��t��vq�F��/�������B�*��c��dV�I��"�[(�!��b��o	�<y�6��`��]N�(��/��@�nF�-��f��J�%��_��EP���`��8�iG�b��m�8��f��"�U9�:��Z��4%�Z�5x�<��`��+L�bx�+��!�G)�Kq�!��7��:�ER�8��1��c�@g�,��e��d;�t��f�2|�V��I�>P���0������Z��oC�G��\��!X�xz�������7��A��A�^R�m��0�vP�����������'	�1� C�d��������������d��V<�K����������p�����
��T��
�.�_=�
�������������L#�'p���6��%�� 
�.�-N��|�G��f�O��3@�;t�)��*��?�;E����)�1=�Qo�U���)(�R�!d�*�� ��	��m��
J�U�p���F��
����<��T���'�#>�b�v���(��m��cD���l(������:�uV�j��7�C�-Y�5��6��$���/*�Z�8u����6L�Z��W�Q6�7��_��H �Ti�-��@�#-�Q�Z�	z���������3��K!�m�
~���S��
�
���	����X+�n���>m�H%MdjD������_?'i�)-$�����k�h\;t��_AqgEz�Rl�lB��6~�eN3M�V=!�z�)h�d���(L2��@zF7`AZ��N��8pL2+�u:�����5}6Ta�p,���X��Z^Q�[�����[�������t�PS�*"K��������o'�~��
;X��m.R���]Y5��$����2!�����r_�J9wC����*�$��C�I�<������T��*#�U�
�Z5/��,k�>.�Gn<l�Q�@	�h�����t�-u�r��@�&�������p���bu�I�a6�a�k�����&������� �Cy�R��W���n�i���z�W0	S3��~�W��
U;�'�U}��T �<0��fmB5�� �>`G��{.	H����x���2JwdO���E�'��$jU#c�c:��=4"�^^�z�t���^)��SY��y��hj��Vr m��bv(7��&.v��$���/�f�e�qF��jP:+���qw�Q6,,��f[F�����oeE�j�1wN�>?��g5�P�7�f�O��4
�;]��1��]{��-��
u�@�����XO��wK!M�&���'�x�������CO<%b%�=�3�"��7|�W�L�v��iH����xR�h�G`��L�I�`M��s��Dq.s\�������90�����8����
��S��ok�����s�)�0Dy���!M/�|��� �=L��fP��T[?4����D9��V��N�1y����Z�?�E9e�-l�����%{�Yt�A3�)�����s�J�34b���[�a���Hp_��n��~=��(co
A�*��
��:�}�c�{Q��m*/|K��Kb������I^il�J���g��Q�8�u�C�����Y��B���,�#H�U�e#/�d�`�@�G�
~��+
A��O�Ki��s0X�VF���|d�(o>Jn�	Y:��-]c�EaWg��xR�������G����I��}(�1#p}��D8��_�	���Z]6��!{S�Bv;\��F�V���%�2y\P&��\9�����?�����|g���<��r�����k7+B�1�rvNx�""qT���84 %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdd to BlocklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blocklist items?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAutomatic generation of critical CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBeforeBefore generating key, please verify all IPs on this list are allowlistedBenefits of linking to a QUIC.cloud accountBeta TestBlocklistBlocklistedBlocklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache WP-AdminCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all localized resource entries.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optimizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBCookie NameCookie SimulationCookie ValuesCrawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDelayDelayedDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDowngrade not recommended. May cause fatal error due to refactored code.Drop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blocklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must allowlist all %s server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode failed to test.Guest Mode passed testing.Guest Mode testing resultGuest OptimizationHTML Attribute To ReplaceHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.How to choose an UCSS allowlist selector?However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load ImagesLearn MoreLearn moreLearn more about when this is neededLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot blocklistedNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOriginal URLsOther checkboxes will be ignored.Our %s was not allowlisted.Outputs to WordPress debug log.PAYG BalancePHP Constant %s is supported.Page Load TimePageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please read all warnings before enabling this option.Please see %s for more details.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePredefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.PrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlocklistRemove query strings from internal static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescanned %d images successfully.Rescanned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)TestingThank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe selector must exist in the CSS. Parent classes in the HTML will not work.The server will determine if the user is logged in based on the existence of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from %1$s%2$s tab.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisUCSS AllowlistURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in %s queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unique CSSUnknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimized version of file. Variables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsView .htaccessVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour server IPZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsuser agentsPO-Revision-Date: 2022-06-06 22:58:12+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n > 1;
X-Generator: GlotPress/4.0.0-alpha.1
Language: fr
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
il y a %sMettre en cache le bloc ESI de barre d’administration intégré.Extension %1$s version %2$s nécessaire pour cette action.%d heure%d heures%d minute%d minutes%d secondesExtension %sLe fichier %s n’est pas lisible.Le fichier %s n’est pas inscriptible.%s groupe%s groupes%s image%s images%s est recommandé. Si le cron et une exécution manuelle démarrent tous deux à des moments similaires, le premier qui démarre aura la priorité.(aucun enregistrement)(non-optimisée)(optimisée)Chemin .htaccess<a %s>Forum de support</a> | <a %s>Soumettre un ticket</a><a href="%1$s" %2$s>Voir les détails de la version %3$s</a> ou <a href="%4$s" %5$s target="_blank">mettre à jour maintenant</a>.<b>Dernière exploration :</b> %d élément(s)<b>Dernier crawlé :</b> %s élément(s)<p>Veuillez ajouter/remplacer les codes suivants dansle début de %1$s:</p> %2$sUne clé de domaine est nécessaire pour les services en ligne QUIC.cloud.Une purge de tout sera exécutée lorsque WordPress exécute ces crochets.Un TTL de 0 indique de ne pas mettre en cache.Une sauvegarde de chaque image est enregistrée avant d’être optimisée.APIAccélère la vitesse en mettant en cache Gravatar (avatars mondialement reconnus).ActiverAjouter les dimensions manquantesAjouter une nouvelle URL de CDNAjouter un nouveau cookie pour simulerAjouter à la liste de blocageAjout de style à vos images chargées en différéUniquement l’IP de l’adminIP d’adminAvancéRéglages avancésLe niveau avancé enregistrera plus de détails.AprèsUne fois que le serveur d’optimisation d’images QUIC.cloud a terminé l’optimisation, il demandera à votre site de tirer les images optimisées.Après vérification que le cache fonctionne en général, veuillez tester le panier.Tous les transientsToutes les catégories sont mises en cache par défaut.Toutes les pagesToutes les pages avec le widget des articles récentsToutes les étiquettes sont mises en cache par défaut.Autorise les IPs listées (une par ligne) à réaliser certaines actions depuis leurs navigateurs.Déjà mise en cacheToujours vider les produits et les catégories lors d’un changement de quantité disponible ou de statut de stock.Un second paramètre facultatif peut être utilisé pour spécifier le contrôle du cache. Utilisez un espace pour séparerAjoutez des chaînes de requête %s aux ressources pour contourner cette action.Demande de clé de domaine bien effectuée. Veuillez attendre le résultat. La clé de domaine sera automatiquement envoyée à votre WordPress.ApprouvéConfirmez-vous vouloir supprimer toutes les éléments de liste de blocage existants ?Confirmez-vous vouloir détruire toutes les images optimisées ?Confirmez-vous vouloir vider tous les nœuds du cloud ?Confirmez-vous vouloir détecter à nouveau le serveur cloud le plus proche pour ce service ?Confirmez-vous vouloir la suppression de toutes les sauvegardes d’image ?Confirmez-vous vouloir réinitialiser tous les réglages aux valeurs par défaut ?Archive d’auteurBrouillons autoCron de traction automatiqueRègles de purge automatique pour les publication/mise à jourGénérer automatiquement des CSS critiques en arrière-plan via une file d’attente à base de cron.Mettre à jour automatiquementActiver automatiquement le pré-lancement des DNS pour les URL dans le document, y compris les images, CSS, JavaScript, etc…Générer automatiquement LQIP en arrière-plan via une file d’attente basée sur cron.Supprimer automatiquement les sauvegarde d’image après récupération des images optimisées.Demander automatiquement l’optimisation via tâche cron.Liste des avatars en attente de mise à jourChemin du .htaccess de l’interface d’administrationContrôle du battement de cœur de l’interface d’administrationTTL du battement de cœur de l’interface d’administrationBasiqueAvantAvant de générer la clé, veuillez vérifier que toutes les IP de cette liste sont sur la liste d’autorisation.Avantages de lier vers un compte QUIC.cloudBêta testListe de blocageBloquéMis sur liste de blocage car impossible à mettre en cacheÀ la fois %1$s et %2$s sont acceptables.À la fois les URL complètes et les chaînes partielles peuvent être utilisées.Il est possible d’utiliser aussi bien des chaînes complètes que partielles.NavigateurCache navigateurRéglages du cache navigateurTTL du cache navigateurLa mise en cache du navigateur stocke les fichiers statiques localement dans le navigateur de l'utilisateur. Activez ce réglage pour réduire les requêtes répétées de fichiers statiques.Par défaut une image indicative grise %s sera utilisée.Par conception, cette option peut servir du contenu périmé. N’activez pas cette option si cela ne vous convient pas.Contourné %1$s images dupliquées.CCSSCDNBande passante de CDNRéglage du CDNURL de CDNURL de CDN à utiliser. Par exemple : %sCombiner CSSCombiner les CSS externes et en ligneCSS excluMinifier CSSRéglages CSSCache CSS/JSCacheMettre en cache la barre d’administrationMettre en cache le formulaire de commentaireMettre en cache les commentateursMettre en cache les réglages de contrôleOccurrences de cacheMettre en cache les utilisateurs connectésMettre en cache la page de connexionCache manquantCache mobileRessources PHP de cacheMettre en cache l’API REST.Statistiques de cacheÉtat du cacheMettre en cache wp-adminMettre en cache favicon.icoMettre en cache les requêtes effectuées par les appels de l’API REST WordPress.Mettre en cache le bloc ESI de formulaire de commentaires intégré.La mise en cache de ces pages peut améliorer les performances du serveur en évitant les appels PHP inutiles.Mettre en cache cette ressource peut améliorer les performances du serveur en évitant les appels PHP inutiles.Calculer l’espace disque de sauvegardeCalculer le stockage des images originalesSauvegardes bien calculées.Impossible de créer un dossier : %1$s. Erreur : %2$sEffacerCatégorieRéglage bien modifié.Vérifier l’étatVérifier mon IP publique à partir deCochez cette option pour utiliser les configurations du site principal sur tous les sous-sites.Cocher cette option forcera la page boutique à utiliser les réglages de page d’accueil TTL.Tout nettoyerVider la carte du robot explorateurNettoyage des données inachevéesNettoyer tous les brouillons auto-enregistrésNettoyer toutes les révisions d’articleNettoyer tous les commentaires indésirablesTout a bien été nettoyé.Nettoyer tous les rétroliens et pingsNettoyer toutes les options de transientTous les transients ont bien été nettoyés.Nettoyer tous les commentaires mis à la corbeilleNettoyer tous les articles et pages mis à la corbeilleLes brouillons auto ont bien été nettoyés.Nettoyer les options de transient expiréesLes transients expirés ont bien été nettoyés.Les révisions d’article ont bien été nettoyées.Révisions propres plus anciennes que %1$s jour(s), à l’exclusion des %2$s dernières révisionsLes commentaires indésirables ont bien été nettoyés.Les rétroliens et pings ont bien été nettoyés.Les commentaires mis à la corbeille ont bien été nettoyés.Articles et pages mis à la corbeille bien nettoyés.Nettoyé tous les fichiers CSS critiques.Nettoyé toutes les entrées de ressources localisées.Bien nettoyé les données non finalisées.Effacer le journalEffacé %1$s images non valides.Efface toutes les entrées du cache liées à ce site, <i> y compris les autres applications web </i>.Cliquez ici pour modifier.Cliquez ici pour paramétrer.Cliquez ici pour les réglagesCliquez pour effacer tous les nœuds pour une nouvelle détection.Cliquez pour passer à la version originale (non optimisée).Erreur de cloudCloudflareAPI CloudflareL’API Cloudflare est définie à inactif.Cache CloudflareDomaine CloudflareZone CloudflareRéduire les chaînes de requêtesCombinez les fichiers CSS et le code CSS en ligne.Combiner tous les fichiers JS locaux en un seul fichier.Les commentaires sont pris en charge. Commencez une ligne avec un %s pour la transformer en ligne de commentaire.Bien communiqué avec Cloudflare.Félicitations ! Votre fichier a déjà été optimiséFélicitations, tous recueillies !Félicitations, tous demandées !Félicitations, votre clé de domaine a été approuvée ! Les réglages ont été définis en conséquence.Test de connexionConvertir en InnoDBNom de cookieSimulation de cookieValeurs de cookieIntervalle de crawlCrawlerCron du crawlerRéglages généraux du robot explorateurRéglages de simulation du robot explorateurRéglages de plan de site du robot explorateurÉtat du robot explorateurRobot(s) explorateur(s)Les robots explorateurs ne peuvent pas s’exécuter simultanément.Créer les versions WebPCréez un article, assurez-vous que la page d’accueil est exacte.Créé avec ❤️ par l’équipe LiteSpeed.CSS critiqueRègles CSS critiquesNom du cronContenus actuel de %sNœuds cloud actuels en serviceIP actuelles du serveur en ligneLe serveur Cloud le plus proche est actuellement %s.&#10; Cliquez pour le détecter à nouveau.Le serveur Cloud le plus proche est actuellement %s.&#10;Cliquez pour le redétecter.Le crawler actuel a démarré leLa limite actuelle estL’heure actuelle du serveur est %s.Le crawl de plan de site actuel a commencé leL’état actuel est %1$s depuis %2$s.L’état actuel est %s.Robot explorateur actuellement actifUtilisation actuelle d’une version optimisée du fichier WebP.Utilisation actuelle d’une version optimisée du fichier.Utilisation actuelle de la version originale (non optimisée) du fichier WebP.Plan de site personnaliséRéglages d’optimisation de la BDDPré-chargement des DNSContrôle du préfixe DNSArchive quotidienneTableau de bordBase de donnéesOptimiseur de base de donnéesRésumé de la base de donnéesConvertisseur de moteur de table de base de donnéesBase de données à utiliserJour(s)Niveau de débogageJournal de débogageRéglages de débogageL’URL de débogage exclutL’URL de débogage comprendPar défautFlux TTL par défautTTL de page d’accueil par défautDurée de vie de l'objet par défautTTL cache privé par défautDurée de vie par défaut du cache publiqueTTL par défaut pour les objets mis en cache.Le chemin par défaut estLe port par défaut pour %1$s est %2$s.Valeur par défautDifféréDélaiReportéSupprimer toutes les sauvegardes des images originalesDétruire toutes les données d’optimisationBien détruire toutes les données d’optimisation.Détermine comment les modifications dans les quantités de produit et états de stock de produit affecte les pages de produit et leurs pages de catégorie associés.Mode développementLe mode développement sera automatiquement désactivé après trois heures.Le mode développement sera automatiquement désactivé dans %s.DésactiverDésactiver toutes les fonctionnalitésDésactivez l’intervalle de battement de cœur de WordPress pour réduire la charge du serveur.D&eacute;sactiv&eacute;Fichier WebP bien désactivé.Désactiver cela peut entraîner l’arrêt des tâches WordPress déclenchées par AJAX.Désactiver cette option aura un effet négatif sur la performance.Désactiver cela stoppera la tâche cron responsable de la récupération des images optimisées à partir du serveur d’images QUIC.cloud.IgnorerIgnorer cette notificationNe pas mettre en cache les catégoriesNe pas mettre en cache les cookiesNe pas mettre en cache les groupesNe pas mettre en cache les chaînes de requêteNe pas mettre les rôles en cacheNe pas mettre en cache les étiquettesNe pas mettre en cache les URINe pas mettre en cache les agents utilisateurNe pas purger les catégories lors de modification de quantité ou d’état de stock.DomaineClé de domaineErreur de hachage de la clé de domaineLa rétrogradation n’est pas recommandée. Peut provoquer une erreur fatale en raison du code remanié.Supprimer le domaine du plan de siteSupprimer la chaîne de requêteFichiers d’image dupliqués ignorésESINonces d’ESIRéglages ESIESI vous permet de désigner des parties de votre page dynamique comme des fragments séparés qui sont ensuite assemblés pour créer la page entière. En d’autres termes, ESI vous permet de « percer des trous » dans une page, puis de remplir ces trous avec un contenu qui peut être mis en cache en privé, mis en cache publiquement avec son propre TTL ou non mis en cache du tout.Exemple d’ESI pour les développeursÉditeur HeartbeatÉditeur Heartbeat TTLLes éléments avec l’attribut %s dans le code html seront exclus.Adresse de messagerieVider tout le cacheVider la liste de blocageActivez la fonctionnalité %s de l’API du CDN.Activer la mise en cacheActiver ESIActiver le remplacement de WebP dans les éléments %s qui ont été générés en dehors de la logique WordPress.Activez cette option si vous utilisez HTTP et HTTPS sur le même domaine et que vous remarquez des irrégularités de cache.Activé(e)Fichier WebP bien activé.Activer ici LiteSpeed Cache pour WordPress active le cache pour le réseau.Raison pour laquelle c’est terminéMoteurSaisissez l'adresse IP de ce site pour permettre aux services de cloud d'appeler directement l’IP au lieu du nom de domaine. Cela permet d’éviter les surcharges des consultations DNS et CDN.Chaque minuteExempleExemple d’utilisation :Les exemples de cas d’essai incluent :Exclure le cheminRéglages d’exclusionExclureTransients expirésExporterExporter les réglagesÉchouéeÉchec de sauvegarde du fichier %s, modifications interrompues.Échec de communication avec CloudflareÉchec de la communication avec le serveur QUIC.cloudÉchec de la création de la table Avatar. Veuillez suivre les conseils <a %s>de création de tableau du wiki LiteSpeed</a> pour terminer la configuration.Échec de récupération du contenu du fichier %s.Échec de la requête via WordPressÉchec de mise à niveau.Impossible d'écrire sur %s.Utilisation de la file d’attente rapideLe fichier %s n’est pas inscriptible.FichiersLe filtre %s est supporté.Le dossier n’existe pas : %sLe dossier n’est pas inscriptible : %s.Optimisation de l’affichage des policesPour les URL avec des jokers, il peut y avoir un retard dans le lancement de la purge planifiée.Par exemplePar exemple, %1$s définit un TTL de %2$s secondes pour %3$s.Par exemple, %s peut être utilisé pour un texte indicatif transparent.Par exemple, pour %s, %s et %s peuvent être utilisés ici.Par exemple, pour %s, %s peut être utilisé ici.Par exemple, si chaque page du site a un formatage différent, saisissez %s dans la case. Des fichiers CSS critiques distincts seront stockés pour chaque page du site.Par exemple, si la page d’accueil du site est située %1$s, la page de la boutique peut être située %2$s.Par exemple, pour supprimer les paramètres commençant par %s, %s peut être utilisé ici.Pour que les services en ligne fonctionnent correctement, vous devez inscrire sur une liste d’autorisation toutes les adresses IP des serveurs %s.Pour cette raison, veuillez tester le site pour vous assurer que tout fonctionne encore correctement.Forcer la mise en cache des URLForcer les URL du cache publicForcer le cronMise en cache forcéePage de gardeChemin .htaccess sur interface publiqueContrôle du battement de cœur de l’interface publiqueTTL du battement de cœur de l’interface publiqueRecueillir les données des images%d images bien collectées.GénéralRéglages générauxGénérer LQIP en arrière-planGénérer un lien pour l’utilisateur actuelGénérer l’UCSSGénéré dans %sLes liens générés peuvent être gérés dans <a %s>Réglages</a>.Obtenez-le à partir de <a %1$s>%2$s</a>.Clé/jeton d’API globalGroupes globauxAller au tableau de bord QUIC.cloudAller à la liste des extensionsBonnes nouvelles du serveur QUIC.cloudGoogle reCAPTCHA sera automatiquement contourné.Cache GravatarCron du cache GravatarTTL du cache GravatarGroupes mis en cache au niveau du réseau.HôteMode visiteurLe test du mode invité a échoué.Le mode invité a passé le test.Résultat du test du mode invitéOptimisation visiteurAttribut HTML à remplacerMinifier  le HTMLRéglages HTMLSources HTTPS uniquement.Battement de cœurContrôle des battements de cœurMise en cache des pages haute performance et optimisation du site à partir de LiteSpeedOccurrencesPage d’accueilHébergeurComment corriger les problèmes dus à l’optimisation du CSS/JS.Comment choisir un sélecteur de liste d’acceptation UCSS ?Cependant, il n’y a aucun moyen de connaître toutes les personnalisations possibles qui ont été mises en œuvre.Le htaccess ne correspondait pas à l’option de configuration.La règle htaccess est : %sJ’ai déjà laissé une évaluationSi %1$s est %2$s, alors %3$s doit être renseigné !Si activé, une copie périmée de la page en cache sera affichée au visiteur jusqu’à ce qu’une nouvelle copie de cache soit disponible. Réduit la charge du serveur pour les visites suivantes. Si désactivé, la page sera générée dynamiquement pendant que le visiteur attend.Si chaque application web utilise le même cookie, le serveur pourrait ne pas savoir si l’utilisateur est connecté.Si non, veuillez vérifier le réglage dans l’<a href="%1$s">onglet Avancé</a> .Si seul le site WordPress doit être purgé, utilisez « Tout purger ».Si défini à %1$s, avant que le texte indicatif ne soit localisé, la configuration %2$s sera utilisée.Si défini sur %s, cela se fait au premier plan, ce qui peut ralentir le chargement de la page.Si le nom de la catégorie n’est pas trouvé, la catégorie sera retirée de la liste lors de l’enregistrement.Si le cookie de connexion a été modifié récemment dans les réglages, veuillez vous déconnecter et vous reconnecter.Si l’identifiant d’étiquette n’est pas trouvé, l’étiquette sera retirée de la liste à l’enregistrement.S’il y a des questions, l’équipe est toujours heureuse d’y répondre sur le<a %s>forum de support</a>.Si vous configurez une valeur de moins de 30, les flux RSS ne seront pas mis en cache.Si vous utilisez OpenLiteSpeed, le serveur doit être redémarré une fois pour que les modifications prennent effet.Si vous utilisez plusieurs domaines pour un site et que vous avez plusieurs domaines dans le plan du site, veuillez laisser cette option désactivée afin que le robot explorateur sache qu’il doit explorer chaque domaine.Si vous rencontrez des problèmes, veuillez vous reporter au numéro de rapport dans votre message de support.Si vous désactivez un des réglages ci-dessus, veuillez supprimer les types de fichiers correspondants de la boîte %s.Si vous préférez ne pas avoir des affichages à la vitesse de la lumière, vous pouvez désactiver cette extension.Si votre site contient du contenu public que certains rôles utilisateur peuvent voir, mais que d’autres rôles ne peuvent pas, vous pouvez spécifier un groupe variable pour ces rôles utilisateur. Par exemple, la spécification d’un groupe variable par l’administrateur permet d’avoir une page distincte en cache publique adaptée aux administrateurs (avec des liens "modifier", etc.), tandis que tous les autres rôles utilisateur voient la page publique par défaut.Les iframes contenant ces noms de classe ne seront pas chargées en différé.Les iframes ayant ces noms de classe parent ne seront pas chargées en différé.Ignorez certaines chaînes de requête lors de la mise en cache. (%s LSWS nécessaire)Groupes d’images préparésInformation d’imageOptimisation d’imageRéglages d’optimisation des imagesRésumé d’optimisation des imagesDimensions de groupe de la miniature d’imageRemplacement de l'image WebPFichiers image manquantsImages tiréesImages demandéesLes images contenant ces noms de classes ne seront pas chargées en différé.Les images n'ont pas pu être récupéréesTirage des images échouéImages qui ont échoué avec d’autres erreursLes images ayant ces noms de classe de parent ne seront pas chargées en différé.Images non demandéesImages non encore recueilliesImages pas encore demandéesImages notifiées à tirerImages optimisées et tiréesImages précédemment optimiséesImages demandéesImages totalesLes images seront tirées automatiquement si la tâche cron est en cours d’exécution.Images avec fausse métaImporterImporter/exporterImporter des réglagesÉchec de l’import du à une erreur fichier.Fichier de réglages %s bien importé.Améliorer la compatibilité HTTP/HTTPSAméliorez la vitesse de wp-admin grâce à la mise en cache. (peut rencontrer des données expirées)Amélioré parAfin d’éviter une erreur de mise à niveau, vous devez utiliser la version %1$s ou ultérieure avant de pouvoir mettre à niveau vers la version %2$s.Inclure le CSSInclure les types de fichierInclure les imagesInclure le JSInclure les CSS externes et les CSS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par CSS Combine.Inclure les JS externes et les JS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par JS Combine.Répertoires inclusLibrairie CSS Async en ligneInstallerInstaller %sInstaller DoLogin SecurityInstaller maintenantClic instantanéIntervalle entre chaque exécutionIP non valideCookie de connexion non valide. Caractères non valides trouvés.Cookie de connexion non valide. Veuillez vérifier le fichier %s.Règle de réécriture non valideIl est <b>fortement</b> recommandé que la compatibilité avec d’autres extensions de d’abord tester sur un seul/quelques sites.Ce sera converti à la volée en un texte indicatif base64 SVG.Combiner JSCombiner les JS externes et en ligneDifférer le JSJS différé exclutJS excluMinifier JSRéglages JSRejoindre la communauté Slack LieteSpeedRejoignez-nous sur SlackRejoignez la communauté %s.N’utilisez pas cette option pour utiliser des textes indicatifs en couleur.LQIPCache LQIPGénérateur de cloud de LQIPLQIP exclutDimensions minimales de LQIPQualité de LQIPAperçu de l’image LQIP pour la taille %sLes requêtes LQIP ne seront pas envoyées pour les images dont la largeur et la hauteur sont inférieures à ces dimensions.LSCacheLes fonctions de mise en cache de LSCache sur cette page sont actuellement indisponibles !Un plus grand nombre générera une meilleure qualité de résolution de remplacement, mais donnera lieu à des fichiers plus volumineux qui augmenteront la taille des pages et consommeront plus de points.Plus grand queDernier tirageDernière requêteDernier calculéDurée de dernière exécution complète pour tous les robots explorateursDernier exportéDernier généréDernier importéDernier intervalleDernier tirage initié par cron à %s.Dernière exécutionDernière demandeDernier coût demandéChargement différé des iframesLe nom de la classe d’image de chargement différé exclutExclut l’image du chargement lentChargement différé des imagesApprendre plusApprendre plusEn savoir plus sur les cas où cela est nécessaireLier à QUIC.cloudListe des agents utilisateurs mobileÉnumérer les types de publication où chaque élément de ce type devrait avoir son propre CCSS généré.Indiquez au sélecteur CSS que son style doit toujours être contenu dans l’UCSS.Les fichiers CSS listés ou le code CSS en ligne ne seront pas minifiés/combinés.Les fichiers JS listés ou le code JS en ligne ne seront pas différés.Les fichiers JS listés ou le code JS en ligne ne seront pas minifiés/combinés.Les fichiers JS listés ou le code JS en ligne ne seront pas optimisés par %s.Les URL listées ne généreront pas d’UCSS.Les images listées ne seront pas chargées lentement.LiteSpeed CacheCDN LiteSpeed CacheCrawler LiteSpeed CacheTableau de bord LiteSpeed CacheOptimisation de la base de données LiteSpeed CacheRéglages généraux de LiteSpeed CacheOptimisation d’image LiteSpeed CacheRéglages de cache de réseau LiteSpeed CacheOptimisation des pages de LiteSpeed CacheCache LiteSpeed Tout purgerRéglages LiteSpeed CacheBoîte à outils LiteSpeed CacheModifier le .htaccess LiteSpeed CacheL’extension LiteSpeed Cache est installée !Mise à niveau réussie de LiteSpeed Cache. Note : en raison de modifications dans cette version, les réglages %1$s et %2$s ont été désactivés. Veuillez les réactiver manuellement, puis vérifier que la mise en page de votre site est correcte et que vous n’avez aucune erreur JS.Optimisation de LiteSpeedRapport LiteSpeedTechnologies LiteSpeedCharger le CSS de manière asynchroneCharger les Google Fonts de manière asynchroneCharger le JS en diféréChargez les iframes uniquement lorsqu'elles entrent dans la fenêtre d'affichage.Charger les images uniquement lorsqu’elles entrent dans la fenêtre d’affichage.LocalisationFichiers de localisationRéglages de localisationLocaliser les ressourcesLocaliser les ressources externes.Ressources localiséesActiver les cookiesLimite de taille de fichier journalVue du journalValeurs de cookie de demande de journal.Cookie de connexionTexte indicatif d’image de faible qualitéMoDoit être unique d’autres applications web.GérerExécution manuelleCarteMarquer cette page commeValeur maximalePeut-être ultérieurementPeut-être plus tardMédias exclusRéglages des médiasMessage du serveur QUIC.cloudMéthodeMinimiser les fichiers CSS et le code CSS en ligne.Minifier le contenu HTML.Minifier les fichiers JS et les codes JS en ligne.Valeur minimaleManquerArchive mensuellePlusPlus d’informations sur les commandes disponibles peuvent être trouvées ici.Plus de réglagesD’autres réglages sont disponibles dans le menu %sNOTERemarque : QUIC.cloud CDN et Cloudflare n’utilisent pas de CDN mapping. Si vous utilisez uniquement QUIC.cloud ou Cloudflare, laissez ce réglage %1$s.NotificationRemarque :Remarque : le cookie de connection de base de données ne correspond pas à votre cookie de connexion.Tableau de bord du réseauActiver le cache sur le réseauNouvelle version développeur disponible !Nouvelle version disponible !La nouvelle version développeur %s est disponible dès maintenant.La nouvelle version %s est maintenant disponible.Prochaine heure de demande disponible : <code>après %s</code>Aucun nœud de cloud disponible.Aucune zone Cloudflare disponibleAucune sauvegarde du fichier original n’existe.Aucune sauvegarde du fichier WebP non optimisé n’existe.Aucun service cloud n’est actuellement utiliséEncore aucun fichier méta de crawler généréAucune nouvelle image recueillie.Aucune optimisationAucun espace et sensible à la casse.Aucune image valide trouvée par le serveur cloud dans la demande actuelle.Aucune image valide trouvée dans la demande actuelle.Aucun plan de site valide n’a été analysé par le robot explorateur.Impossible à mettre en cacheNon disponiblePas sur liste de blocageNoteRemarquesNotificationNotificationsBien notifié Cloudflare de tout purger.Bien notifié Cloudflare de définir le mode développement à %s.Serveur web LiteSpeed notifié de purger les entrées CSS/JS.Serveur web LiteSpeed notifié de purger toutes les entrées LSCache.Notifié le serveur web LiteSpeed de purger toutes les pages.Notifié LiteSpeed ​​Web Server de purger les pages d'erreur.Serveur LiteSpeed notifié pour tout purger.LiteSpeed Web Server a été notifié de purger la page d’accueil.Serveur LiteSpeed notifié pour tout purger.InactifActifOuObjetMise en cache d’objetRéglages du cache objetCache d’objet non activé.Une fois enregistré, il sera harmonisé avec la liste actuelle et complété automatiquement.Une ou plusieurs images tirées ne correspondent pas à l’image md5 notifiéeUne par ligne.Ne seront remplacés uniquement les attributs listés ici.Uniquement disponible lorsque %s est installé.Uniquement les fichiers de ces répertoires seront dirigés vers le CDN.Journaliser uniquement les pages répertoriées.Optimiser uniquement les pages pour les visiteurs invités (non connectés). Si cette option est désactivée, les fichiers CSS/JS/CCSS seront doublés par chaque groupe d’utilisateurs et utilisatrices.N'appuyez sur le bouton que si la tâche cron de tirage est désactivée.Cache OpcodeLe cache opcode n’est pas activé.Utilisateurs d’OpenLiteSpeed, veuillez vérifier ceciOpérationÉtat de l’optimisationRésumé d’optimisationOutils d’optimisationOptimiser la livraison CSS.Optimiser sans perteOptimiser les images originalesOptimiser les tablesOptimiser toutes les tables dans votre base de donnéesOptimiser pour les visiteurs uniquementOptimiser les images et enregistrer les sauvegardes des originaux dans le même dossier.Optimiser les images en utilisant la compression sans perte.Optimiser les images avec notre serveur QUIC.cloudLe fichier WebP optimisé a expiré et a été effacé.Optimisé toutes les tables.Nom de l’optionFacultatifFacultatif en cas d’utilisation d’un jeton d’API.Options enregistrées.Originale%s originauxURL originalesLes autres cases à cocher seront ignorées.Notre %s n’était pas en liste d’autorisation.Sorties du journal de débogage WordPress.Solde du paiement au fur et à mesureLa constante PHP %s est prise en charge.Temps de chargement de la pageScore PageSpeedPagesRéussieMot de passeLien de connexion sans mot de passeLe chemin doit finir par %sLes chemins contenant ces chaînes de caractères seront mis en cache sans tenir compte des réglages de non mise en cache.Les chemins contenant ces chaînes de caractères seront forcés à être mis en cache public, indépendamment des réglages qui ne peuvent pas être mis en cache.Les chemins contenant ces chaînes de requête ne seront pas mis en cache.Les chemins contenant ces chaînes ne seront pas servis par le CDN.Paiement au fur et à mesureStatistiques sur l’utilisation du paiement au fur et à mesureConnexion persistanteVeuillez ne pas partager le lien sans mot de passe ci-dessus avec qui que ce soit.Veuillez activer LiteSpeed Cache dans les réglages de l’extension.Veuillez activer le module LSCache au niveau du serveur ou demandez à votre hébergeur.Veuillez lire tous les avertissements avant d’activer cette option.Veuillez voir %s pour plus de détails.Veuillez voir <a %s>Connexion de WP-Cron au planificateur de tâches du système</a> pour apprendre comment créer le système de tâche cron.Veuillez effectuer un test approfondi lorsque vous activez une option dans cette liste. Après avoir modifié les réglages Minifier/Combiner, veuillez faire une purge totale.Veuillez essayer après %1$s pour le service %2$s.Veuillez vérifier que vos autres extensions ne bloquent pas les appels à l’API REST, mettez nos adresses IP sur une liste d’acceptation ou contactez l’administrateur/administratrice de votre serveur pour obtenir une assistance.Veuillez visiter la page <a %s>d’informations</a> sur la façon de tester le cache.PortID de l’articleRévisions d’articleArchive de type de contenuLa liste prédéfinie sera également combinée avec les réglages ci-dessus.Le pré-chargement des DNS peut réduire la latence pour les visiteurs.Conserver les données EXIF (copyright, GPS, commentaires, mots clés, etc.) lors de l'optimisation.Conserver les données EXIF/XMPCliquez sur le bouton %s pour stopper le test bêta et revenir à la version actuelle depuis le répertoire des extensions WordPress.Appuyez sur le bouton %s pour utiliser le commit GitHub le plus récent. Master est pour la version candidate et Dev est pour les tests expérimentaux.Empêcher les polices Google de charger sur toutes vos pages.Empêcher tout journal de débogage des pages listées.Empêcher tout chargement différé des pages listées.Empêche toute optimisation des pages listées.PrivéCache privéOccurrence du cache privéURI mises en cache privéesCaches privésCache privéMettre en cache privé le panierMettre en cache privé le panier lorsqu'il n'est pas vide.Mettre en cache privé les commentateurs qui ont des commentaires en attente. La désactivation de cette option servira les pages ne pouvant pas être mises en cache aux commentateurs. (LSWS %s nécessaire)Mettre en cache privé les pages interface utilisateur pour les utilisateurs connectés. (LSWS %s nécessaire)Intervalle de mise à jour de produitPubliqueCache publicOccurrences du cache publicCaches publicsLe tirage du cron est en cours d’exécutionTirer les imagesExtrait %d image(s)L’image WebP md5 tirée ne correspond pas à l’image WebP md5 notifiée.PurgerPurger les erreurs %sPurger les pages d’erreur %s.Tout purgerPurger tous les crochetsTout purger lors d'une mise à niveauPurger par…Tout purgerPurger la page d’accueilPurger la listePurger les pagesPurger les réglagesBien purger tous les caches d’objets.Purger tous les caches d'objetsPurger les catégories uniquement quand l’état du stock change.Purger la catégorie %sPurger les pages par nom de catégorie - par exemple,%2$s devrait être utilisé pour l’URL%1$s.Purger les pages par ID d’article.Purger les pages par URL relative ou complète.Purger les pages par nom d’étiquette - par ex.,%2$s devrait être utilisé pour l’URL %1$s.Purger les produits et catégories uniquement quand l’état du stock change.Purger le produit au changement de la quantité ou de l’état du stock.Purger le produit uniquement quand l’état du stock change.Purger l'étiquette %sPurger les entrées LiteSpeed Cache créées par cette extensionPurger les entrées de cache créées par cette extension à l’exception des caches CSS et LQIP critiquesPurger cette pagePurger l’URL %sTout purgé !Tous les caches ont bien été purgés.Purgé le blog !Purgé l’url !Purgé !%1$s poussées vers le serveur Cloud, %2$s acceptées.QUIC.cloudCDN QUIC.cloudStatistiques sur l’utilisation des services QUIC.cloudLes chaînes de requête contenant ces paramètres ne seront pas mises en cache.File d’attente bien vidée.Évaluer %s sur %sLire la documentation LiteSpeedValeur recommandée : 28800 secondes (8 heures).ID de base de données RedisActualiser la carte du robot explorateurActualiser la clé de domaineActualiser le cache  Gravatar par cron.Actualiser le temps de chargement des pagesActualiser le score de la pageQuota quotidien restantSupprimer l’URL du CDNRetirer les polices GoogleRetirer les balises NoscriptSupprimer les sauvegardes d’originalesSupprimer les sauvegardes de l’image originaleRetirer les chaînes de requêteRetirer les emoji WordPressSupprimer toutes les requêtes/résultats d'optimisation d'image précédentes, annulez les optimisations terminées et supprimer tous les fichiers d'optimisation.Supprimer toutes les requêtes d’optimisation d’images inachevées.Supprimer la simulation de cookieRetirer de la liste de blocageRetirer les chaines de requête des ressources statiques internes.Sauvegardes bien supprimées.Remplacer %1$s avec %2$s.RapportDate de rapportNuméro de rapportDemander la clé du domaineDemander les versions WebP des images originales lors de l’optimisation.Demande envoyée. Veuillez patienter, puis actualisez la page pour voir la notification d’approbation.DemandéDemandes en file d’attenteScanner à nouveau les nouvelles miniatures%d images ont bien été réanalysées.Bien été réanalysées.Réinitialiser tous les réglagesRéinitialiser les réglagesRéinitialiser la positionRéinitialisation effectuée.Réinitialiser l’intégralité du cache opcodeBien réinitialiser l’ensemble du cache opcode.Bien réinitialiser les données optimisées.Les ressources des domaines énumérés ici seront copiées et remplacées par des URL locales.Texte indicatif responsiveLes textes indicatif d’image responsive peuvent aider à réduire le remaniement de la mise en page lorsque les images sont chargées.Restaurer depuis une sauvegardeFichier original bien restauré.Les résultats peuvent être vérifiés dans la <a %s> bibliothèque des médias</a>.Âge maximal des révisionsNombre maximum de révisionsLes révisions plus récentes que ce nombre de jours seront conservées lors du nettoyage des révisions.Rôle excluSimulation de rôleDurée d’exécutionFréquence d’exécutionExécuter la file d’attente manuellementLa fréquence d’exécution est définie par le réglage d’intervalle entre exécutions.Durée d’exécution du précédent robot explorateurEn cours d’exécutionSyntaxe : alphanumérique et "_".Enregistrer les modificationsEnregistrer les transients dans la base de données lorsque %1$s est %2$s.EnregistréRechercher toute nouvelle taille de miniature d'image non optimisée et renvoyez les requêtes d'optimisation d'image nécessaires.Heure de purge planifiéePurge planifiée d’URLsVoyez <a %s>Introduction pour l’activation du robot explorateur</a> pour les informations détaillées.Sélectionnez "Tous" s'il y a des widgets dynamiques liés aux articles sur les pages autres que la page d’accueil.Sélectionnez ci-dessous pour les options « purger par ».Sélectionnez uniquement les types d'archives qui sont actuellement utilisées, les autres peuvent être laissées décochées.Sélectionnez quelles pages seront purgées automatiquement lorsque des articles sont publiés/mis à jour.Les rôles sélectionnés seront exclus de toutes les optimisations.Les rôles sélectionnés seront exclus du cache.Envoyer une requête d’optimisationEnvoyez ce rapport à LiteSpeed. Référez-vous à ce numéro de rapport lorsque vous publiez sur le forum de support WordPress.Envoyer à LiteSpeedSéparer le cache du CCSS par type de publication.Séparer les URL de ca CCSSDes fichiers CSS critiques distincts seront générés pour les chemins contenant ces chaînes.Servir le périméServir tous les fichiers CSS via le CDN. Cela affectera tous les fichiers CSS WP en file d’attente.Servir tous les fichiers JavaScript via le CDN. Cela affectera tous les fichiers JavaScript WP en file d’attente.Servir tous les fichiers d’image via le CDN. Cela affectera toutes les pièces jointes, les balises HTML %s et les attributs CSS %s.IP du serveurLimite de chargement du serveurValeur max. de serveur autoriséeValeur min. de serveur autoriséeValeur imposée par le serveurVariable·s de serveur %s disponible·s pour surpasser ce réglage.Définir une largeur et une hauteur explicites sur les éléments images pour réduire les changements de mise en page et améliorer le CLS (une métrique Core Web Vitals)Définissez ceci pour ajouter %1$s à toutes les règles %2$s avant de mettre en cache le CSS pour spécifier comment les polices doivent être affichées lors du téléchargement.Réglez sur %1$s pour interdire les battements de cœur sur %2$s.Paramétrage des en-têtes personnalisésRéglagesRaccourcir les chaînes de requêtes dans le journal de débogage pour améliorer la lisibilité.Afficher l’état du crawlerAméliorez significativement le temps de chargement en remplaçant les images par leurs versions %s optimisées.Réglages de simulationL’URL du site à servir via le CDN. À partir de %1$s. Par exemple : %2$s.Site non reconnu. La clé de domaine a été automatiquement supprimée. Veuillez en demander une nouvelle.Liste du plan du siteRéglages du plan du siteDélai d’attente du plan du siteTotal du plan de siteTailleListe des tailles dans la file d’attente en attente de cronPlus petit queCertains fichiers d’image optimisés ont expiré et ont été effacés.Certains thèmes et extensions ajoutent des ressources par requête PHP.Commentaires indésirablesSpécifiez le nombre de threads à utiliser lors du crawl.Précisez une image base64 à utiliser comme indicative pendant que les autres images terminent de charger.Spécifiez un code d’état HTTP et le nombre de secondes pour mettre cette page en cache, séparés par un espace.Spécifiez un SVG à utiliser comme texte indicatif lors de la génération en local.Spécifiez les règles CSS critiques pour le contenu au-dessus du pli lorsque vous activez %s.Spécifiez combien de temps en secondes avant que le crawler initie un nouveau crawl entier du plan de site.Spécifiez combien de temps, en secondes, les fichiers Gravatar sont mis en cache.Précisez combien de temps, en secondes, les appels REST sont mis en cache.Spécifiez une durée en secondes, pour la mise en cache des flux RSS.Spécifiez combien de temps, en secondes, les pages privées sont mises en cache.Spécifiez combien de temps, en secondes, les pages publiques sont mises en cache.Spécifiez combien de temps, en secondes, la page d’accueil est mise en cache.Précisez l’intervalle de battement de cœur de %s en secondes.Précisez la taille maximale du fichier journal.Précisez le nombre de révisions les plus récentes à conserver lors du nettoyage des révisions.Précisez le mot de passe utilisé pour la connexion.Précisez la qualité lors de la génération du LQIP.Précisez la couleur SVG du texte indicatif responsive.Précisez l’heure pour purger la liste "%s".Précisez le délai d’attente lors de l’exploration de chaque URL.Précisez le délai d’attente lors de l’analyse du plan du site.Spécifiez le temps en microsecondes pour le délai entre requêtes durant une exploration.Spécifiez le temps en secondes pour la durée de l’intervalle de crawl.Précisez le temps en secondes pour le temps entre chaque intervalle d’exécution.Spécifiez quels attributs des éléments HTML seront remplacés avec CDN Mapping.Spécifiez quels attributs d’élément seront remplacés avec WebP.Liens de type de fichier statique à remplacer par des liens CDN.ÉtatStopper le chargement d’emoji WordPress.org. Les emojis par défaut du navigateur seront affichés à la place.Optimisation du stockageStockez Gravatar localement.Stocker les transientsBien exploréRésuméBien sûr que j’adorerais évaluer !SwapRevenir à l’utilisation d’images optimisées sur votre siteCommutation d’image réussie.Commuté pour bien optimiser le fichier.Synchronisation de l’allocation de crédit avec le serveur cloud bien effectuée.Synchroniser les données depuis le CloudInformations systèmeTTLTableauÉtiquetteIgnorer temporairement le cache Cloudflare. Cela permet de voir en temps réel les modifications apportées au serveur d'origine.Archive de terme (inclure catégorie, étiquette et taxinomie)Test en coursMerci d’utiliser l’extension LiteSpeed Cache !L’option IP d’admin ne génère que des messages de journalisation sur les requêtes provenant des IPs d'admin.L’extension LiteSpeed ​​Cache est utilisée pour mettre les pages en cache - un moyen simple d’améliorer les performances du site.Le rappel de publication vers %s a échoué.Les URLs ci-dessus (une par ligne) seront automatiquement purgées à l’heure fixée dans l’option "%s".Ces URLs seront comparées à la variable serveur REQUEST_URI.Les nonces ci-dessus seront automatiquement convertis en ESI.La durée, en secondes, pendant laquelle les fichiers seront stockés dans le cache du navigateur avant d’expirer.Le cache doit faire la distinction de qui est connecté dans quel site WordPress afin de mettre en cache correctement.Le cookie réglé ici sera utilisé pour cette installation WordPress.La fonctionnalité de robot explorateur n’est pas activée sur le serveur LiteSpeed. Veuillez consulter votre administrateur serveur ou votre hébergeur.Le robot explorateur analyse le plan du site et le sauvegarde dans la base de données avant l’exploration. Lors de l’analyse du plan du site, l’abandon du domaine peut permettre d’économiser du stockage en base de données.Le robot explorateur utilisera votre plan de site XML ou votre index de plan de site. Saisissez l’URL complète de votre plan de site ici.La base de données a été mise à niveau en arrière-plan depuis %s. Ce message disparaîtra une fois la mise à niveau terminée.Le cookie de connexion par défaut est %s.Le rapport d’environnement contient des informations détaillées sur la configuration WordPress.Les options suivantes sont sélectionnées, mais ne sont pas modifiables dans la page des réglages.Le réglage de la qualité de compression d’image de WordPress sur 100.Le dernier fichier de données estLa liste sera fusionnée avec les nonces prédéfinis dans votre fichier de données local.Les journaux seront sortis en %s.La charge moyenne maximale du serveur est autorisée lors de l’exploration. Le nombre de threads de robot explorateur en cours d’utilisation sera activement réduit jusqu'à ce que la charge moyenne du serveur tombe sous cette limite. Si cela ne peut pas être réalisé avec un seul thread, l’exécution du robot explorateur actuel sera terminée.L’administrateur réseau sélectionné utilise les configurations du site principal pour tous les sous-sites.Le réglage administrateur réseau peut être remplacé ici.Le prochain crawl complet de plan de site débutera leLe sélecteur doit exister dans le CSS. Les classes parentes dans le HTML ne fonctionneront pas.Le serveur déterminera si l’internaute est connecté grâce à l’existence de ce cookie.Le réglage %s est actuellement activé.Le site n’est pas enregistré sur QUIC.cloud.Ensuite, un autre WordPress est installé (non multisite) sur %sIl y a deux raisons pour lesquelles nous pourrions ne pas être en mesure de communiquer avec votre domaine :Il y a une installation de WordPress pour %s.Il y a une file d’attente qui n’est pas encore tirée. Informations sur la file d’attente : %s.Un problème est survenu lors de la récupération de votre clé de domaine. Veuillez cliquer sur le bouton %s pour réessayer.Ces images ne génèrent pas de LQIP.Ces options sont uniquement disponibles avec LiteSpeed Enterprise Web Server ou QUIC.cloud CDN.Ces réglages sont uniquement destinés à des utilisateurs avancés.Utilisation de ce moisCette action doit être utilisée uniquement si les éléments sont incorrectement mis en cache.Cela peut être géré à partir de l’onglet %1$s%2$s.Cela peut être défini dans %2$s comme utilisant la constante %1$s, en prenant ce réglage en priorité.Cela peut améliorer le temps de chargement de la page en réduisant les requêtes HTTP initiales.Cela peut améliorer la qualité, mais peut entraîner des images plus grandes que la compression avec perte.Cela peut améliorer la vitesse de chargement des pages.Cela peut améliorer votre score de vitesse dans des services tels que Pingdom, GTmetrix et PageSpeed.C’est irréversible.C’est pour tester la compatibilité avant d’activer le cache pour tous les sites.Cela peut entraîner une charge importante sur le serveur.Ce message indique que l’extension a été installée par l’administrateur du serveur.Cette option retirera toutes les balises %s du HTML.Ce processus est automatique.Ce réglage est surchargé par le réglage du réseauCe réglage est surchargé par le réglage du site principalCe réglage est utile pour ceux qui ont plusieurs applications web avec le même nom de domaine.Ce réglage modifiera le fichier .htaccess.Ce site utilise la mise en cache afin de faciliter un temps de réponse plus rapide et une meilleure expérience utilisateur. La mise en cache stocke potentiellement une copie de chaque page web affichée sur ce site. Tous les fichiers de cache sont temporaires et ne sont jamais accessibles à un tiers, sauf si cela est nécessaire pour obtenir le support technique du fournisseur de l’extension de cache. Les fichiers cache expirent selon une planification fixée par l’administrateur du site, mais peuvent facilement être purgés par l’administrateur avant leur expiration naturelle, si nécessaire.Cela purgera uniquement la page d’accueilCela purgera uniquement les pagesCela va affecter toutes les balises contenant les attributs : %s %s %s.Cela générera également une clé d’API à partir du serveur LiteSpeed.Cela effacera tout dans le cache.Cela supprimera tous les fichiers Gravatar mis en cacheCela supprimera tous les fichiers CSS critiques générésCeci supprimera tous les fichiers indicatif LQIP d’image générésCela supprimera tous les fichiers CSS uniques générésCela supprimera toutes les ressources localiséesCeci désactivera LSCache et toutes les fonctionnalités d’optimisation à des fins de débogage.Cela désactivera la page des réglages sur tous les sous-sites.Cela permettra le cron du robot explorateur.Cela exportera tous les réglages actuels de LiteSpeed Cache et les enregistrera en tant que fichier.Cela va générer des requêtes supplémentaires au serveur, ce qui augmentera la charge du serveur.Ceci générera le texte indicatif avec les mêmes tailles que l’image si elle a des attributs largeur et hauteur.Cela va importer les réglages via un fichier et remplacer tous les réglages LiteSpeed Cache actuels.Cela augmentera la taille des fichiers optimisés.Ceci mettra en ligne la bibliothèque CSS asynchrone pour éviter le blocage du rendu.Cela purgera uniquement toutes les entrées CSS/JS minifiées/combinées.Cela va réinitialiser tous les réglages à ceux par défaut.Fils de discussionDélai d’exécution de la demande précédenteDélai dépasséPour explorer un cookie particulier, saisissez son nom et les valeurs que vous souhaitez explorer. Les valeurs doivent être uniques par ligne, et peuvent inclure une ligne vierge. Il y aura un robot explorateur créé par valeur de cookie, par rôle simulé.Pour crawler le site comme utilisateur connecté, saisissez les ID utilisateur à simuler.Pour définir un TTL personnalisé pour une URL, ajoutez un espace suivi de la valeur TTL à la fin de l’URL.Pour avoir une correspondance exacte, ajoutez %s  à la fin de l’URL.Pour activer la fonctionnalité suivante, activez l’API Cloudflare dans les réglages CDN.Pour exclure %1$s, insérez %2$s.Pour générer un lien sans mot de passe pour un accès à l’équipe de support de LiteSpeed, vous devez installer %s.Pour accorder un accès wp-admin à l’équipe de support de LiteSpeed, veuillez générer un lien sans mot de passe pour l’utilisateur actuellement connecté qui sera envoyé avec le rapport.Afin de s’assurer que notre serveur peut communiquer avec le vôtre sans problème et que tout fonctionne bien, pour les quelques premières demandes, le nombre d’images autorisées dans une seule requête est limité.Pour gérer les options de QUIC.cloud, veuillez visiterPour correspondre au début, ajoutez %s au début de l'élément.Pour éviter que les %s soient mises en cache, saisissez-les ici.Pour éviter de remplir le disque, ce réglage doit être désactivé lorsque tout fonctionne.Pour rendre le nom d’hôte CDN aléatoire, définissez plusieurs noms d’hôte pour les mêmes ressources.Pour tester le panier, visitez la <a %s>FAQ</a>.Pour utiliser les fonctions de mise en cache, vous devez avoir un serveur web LiteSpeed ou utiliser un CDN QUIC.cloud.OutilBoîte à outilsTotalRéduction totaleUtilisation totaleTotal des images optimisées ce mois-ciRétroliens/pingsCommentaires mis à la corbeilleArticles mis à la corbeilleEssayez la version GitHubPersonnalisationRéglages de personnalisationDésactiverActiverActiver la mise en cache des pages publiques pour les utilisateurs connectés et servir la barre d’administration et le formulaire de commentaire via des blocs ESI. Ces deux blocs ne seront pas mis en cache, sauf s’ils sont activés ci-dessous.Activez pour contrôler les battements de cœur dans l'éditeur de l’interface d’administration.Activez pour contrôler les battements de cœur dans l’interface d’administration.Activez pour contrôler les battements de cœur sur l’interface publique.Activer la mise à niveau autoActivez cette option pour que LiteSpeed Cache soit mis à jour automatiquement, chaque fois qu’une nouvelle version est diffusée. Si inactif, mettre à jour manuellement comme d’habitude.Activez cette option pour afficher automatiquement les dernières nouvelles, y compris les correctifs, les nouvelles versions, les versions bêta disponibles et les promotions.Aperçu du tweetTweeter ceciListe d’autorisation UCSSURI exclutLes chemins d’URI contenant ces chaînes ne seront pas mis en cache comme publics.URLListe d’URL dans la file d’attente de cronRègle de cache inattendue %2$s trouvée dans le fichier %1$s. Cette règle peut amener les visiteurs à voir d’anciennes versions de pages en raison de la mise en cache des pages HTML par le navigateur. Si vous êtes sûr que des pages HTML ne sont pas mises en cache par le navigateur, ce message peut être ignoré.(<a %3$s>En apprendre plus</a>)CSS uniqueErreur inconnueLettre à jour %s maintenantMettre à niveauBien mis à niveau.UtilisationStatistiques d’utilisationUtilisez %1$s dans %2$s pour indiquer que ce cookie n’a pas été défini.Utiliser la fonctionnalité d’API %s.Utiliser le mappage CDNUtilisez la page d’accueil TTL pour la page boutiqueUtiliser le réglage admin du réseauUtiliser les fichiers optimisésUtiliser les fichiers originauxUtiliser les configurations du site principalUtilisez le service de génération de LQIP (Low Quality Image Placeholder) de QUIC.cloud pour une prévisualisation responsive des images pendant le chargement.Utilisez le service en ligne QUIC.cloud pour générer des CSS uniques.Utilisez la bibliothèque Web Font Loader pour charger les polices Google de manière asynchrone tout en laissant les autres CSS intacts.Utilisez des connexions persistantes pour accélérer les opérations de cache.Utiliser le dernier commit GitHub de développementUtiliser le dernier commit GitHub de développement/maîtreUtiliser le dernier commit GitHub maîtreUtiliser la dernière version de WordPressUtiliser des images originales (non optimisées) sur votre siteUtilisez le format %1$s ou %2$s (élément est facultatif).Utilisez cette section pour permuter les versions d’extension. Pour tester la version bêta d'un commit GitHub, saisissez l’URL du commit dans le champ ci-dessous.Nom d’utilisateurUtilisation de la version optimisée du fichier. Les variables %s seront remplacées par la couleur d’arrière-plan configurée.Les variables %s seront remplacées par les propriétés de l’image correspondante.Varier le groupeVoir les détails de la %1$s version %2$sVoir le .htaccessVisiter le forum de support LSCWPVisitez mon tableau de bord sur QUIC.cloudVisitez le site en déconnecté.AttentionAvertissement : Les cookies de connexion du fichier .htaccess et de la base de données ne correspondent pas.En attenteEn attente d’approbationEn attente d’actualisationEn attente d’explorationSouhaitez-vous vous connecter avec les autres utilisateurs LitePeed ?AvertissementVoir l’état de crawlerNous sommes bons. Aucune table n’utilise le moteur MyISAM.Nous travaillons dur pour améliorer votre expérience de service en ligne. Le service sera indisponible pendant que nous travaillons. Nous nous excusons pour tout inconvénient.WebPAttribut WebP à remplacerWebP pour srcset extraFichier WebP réduit de %1$s (%2$s)WebP économisé %sBienvenue chez LiteSpeedQu’est-ce qu’un groupe ?Qu’est-ce qu’un groupe d’images ?Lorsqu’un visiteur survole un lien de page, précharger cette page. Cela accélérera la visite de ce lien.Lorsque vous désactivez le cache, toutes les entrées mises en cache pour ce site seront purgées.Lorsque activé, le cache sera vidé automatiquement lors d’une mise à jour de tout extension, thème ou du cœur WordPress.Lorsque cette option est définie à %s, elle chargera également les polices Google de manière asynchrone.Widget de cache TTL :Wildcard %1$s pris en charge (correspond à zéro ou plusieurs caractères). Par exemple, pour faire correspondre %2$s et %3$s, utilisez %4$s.Wildcard %s pris en charge.Avec ESI (Edge Side Includes), les pages peuvent être envoyées à partir du cache pour les utilisateurs connectés.Si le CDN QUIC.cloud est activé, vous pouvez toujours voir les en-têtes de cache de votre serveur local.WooCommerceRéglages WooCommerceContrôle de la qualité des images WordPressL’intervalle valide de WordPress est de %s secondesL’intervalle valide de WordPress est de %s secondes.WpW : cache privé vs. cache publicArchive annuelleVous pouvez saisir juste une partie du domaine.Vous pouvez rapidement passer de l’utilisation de fichiers d’images originaux (versions non optimisées) à celle de fichiers d’images optimisés. Cela affectera toutes les images de votre site web, qu’il s’agisse de la version normale ou de la version webp si disponible.Vous pouvez demander un maximum de %s images à la fois.Vous pouvez aussi activer la mise en cache du navigateur dans l’admin serveur. <a %s>En apprendre plus sur les réglages du cache navigateur LiteSpeed</a>.Vous pouvez transformer les codes courts en blocs ESI.Vous pouvez utiliser le code %1$s dans %2$s pour spécifier le chemin du fichier htaccess.Vous avez trop d’images notifiées, veuillez d’abord retirer les images notifiées.Vous avez trop de demandes d’images, veuillez réessayer dans quelques minutes.Vous venez de débloquer une promotion de QUIC.cloud !Vous devez cliquer sur le bouton %s si vous souhaitez associer ce site à un compte QUIC.cloud.Vous devez d’abord avoir %1$s avant de créer un lien vers QUIC.cloud.Vous ne pourrez pas annuler l’optimisation une fois les sauvegardes supprimées !Votre nom d’hébergeur ou adresse IP de %s.Votre clé/jeton d’API est utilisé pour accéder aux APIS %s.Votre adresse de messagerie sur %s.Votre IPL’adresse IP de votre serveurZéro, oucatégoriescookiesactuellement défini à %spar ex. utilisez %s ou %s.favicon.ico est appelé sur la majorité des pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjuste maintenantmicrosecondespixelsfournir plus d'informations ici pour aider l’équipe LiteSpeed dans le débogage.tout de suiteexécutionsecondesétiquettesagents utilisateur# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in Spanish (Spain)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2022-04-17 22:22:22+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0\n"
"Language: es\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/page_optm/settings_localization.tpl.php:131
msgid "Please thoroughly test each JS file you add to ensure it functions as expected."
msgstr "Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera."

#: tpl/page_optm/settings_localization.tpl.php:98
msgid "Please thoroughly test all items in %s to ensure they function as expected."
msgstr "Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera."

#: tpl/page_optm/settings_tuning.tpl.php:105
msgid "Use %1$s to bypass UCSS for the pages which page type is %2$s."
msgstr "Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s."

#: tpl/page_optm/settings_tuning.tpl.php:104
msgid "Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL."
msgstr "Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL."

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Filter %s available for UCSS per page type generation."
msgstr "Disponible el filtro %s para la generación de UCSS por tipo de página."

#: tpl/general/settings_inc.guest.tpl.php:35
#: tpl/general/settings_inc.guest.tpl.php:38
msgid "Guest Mode failed to test."
msgstr "Prueba fallida del modo de invitado."

#: tpl/general/settings_inc.guest.tpl.php:32
msgid "Guest Mode passed testing."
msgstr "Prueba superada del modo de invitado."

#: tpl/general/settings_inc.guest.tpl.php:25
msgid "Testing"
msgstr "Probando"

#: tpl/general/settings_inc.guest.tpl.php:24
msgid "Guest Mode testing result"
msgstr "Resultado de la prueba del modo de invitado"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not blocklisted"
msgstr "No está en la lista negra"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Learn more about when this is needed"
msgstr "Aprende más sobre cuándo esto es necesario "

#: src/purge.cls.php:317
msgid "Cleaned all localized resource entries."
msgstr "Limpiadas todas las entradas de recursos localizados."

#: src/lang.cls.php:112
msgid "UCSS Allowlist"
msgstr "Lista blanca de UCSS"

#: tpl/dash/dashboard.tpl.php:563
msgid "<b>Last crawled:</b> %d item(s)"
msgstr "<b>Último rastreo:</b> %d elemento(s)"

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr "Ver el archivo «.htaccess»"

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess»."

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr "Es compatible la contante %s de PHP."

#: tpl/toolbox/edit_htaccess.tpl.php:52 tpl/toolbox/edit_htaccess.tpl.php:69
msgid "Default path is"
msgstr "La ruta por defecto es"

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr "Ruta del archivo «.htaccess»"

#: tpl/general/settings.tpl.php:151
msgid "Please read all warnings before enabling this option."
msgstr "Por favor, lee todas las advertencias antes de activar esta opción."

#: tpl/toolbox/purge.tpl.php:80
msgid "This will delete all generated unique CSS files"
msgstr "Esto borrará todos los archivos CSS únicos generados"

#: tpl/toolbox/beta_test.tpl.php:59
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "Para evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s."

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Use latest GitHub Dev/Master commit"
msgstr "Utiliza el último commit Dev/Master de GitHub"

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales."

#: tpl/toolbox/beta_test.tpl.php:49
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "No se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado."

#: tpl/page_optm/settings_tuning.tpl.php:216
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios."

#: tpl/page_optm/settings_tuning.tpl.php:182
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Los archivos JS listados o el código JS integrado no serán optimizados por %s."

#: tpl/page_optm/settings_tuning.tpl.php:97
msgid "Listed URI will not generate UCSS."
msgstr "Las URI listadas no generarán UCSS."

#: tpl/page_optm/settings_tuning.tpl.php:79
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "El selector debe existir en el CSS. Las clases principales en HTML no funcionarán."

#: tpl/page_optm/settings_tuning.tpl.php:75
msgid "Wildcard %s supported."
msgstr "Compatibilidad con el comodín %s."

#: tpl/page_optm/settings_tuning.tpl.php:74
msgid "How to choose an UCSS allowlist selector?"
msgstr "¿Cómo elegir un selector de lista blanca UCSS?"

#: tpl/page_optm/settings_media_exc.tpl.php:24
msgid "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr "Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:229
msgid "Note: this option only works when %1$s is %2$s."
msgstr "Nota: esta opción solo funciona cuando %1$s es %2$s."

#: tpl/page_optm/settings_media.tpl.php:227
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:125
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr "Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración."

#: tpl/page_optm/settings_js.tpl.php:65
msgid "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."
msgstr "Aplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals)."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Delayed"
msgstr "Retrasado"

#: tpl/page_optm/settings_js.tpl.php:38
msgid "JS error can be found from the developer console of browser by right clicking and choosing Inspect."
msgstr "El error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar."

#: tpl/page_optm/settings_js.tpl.php:37 tpl/page_optm/settings_js.tpl.php:70
msgid "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."
msgstr "Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "This will also add a preconnect to Google Fonts to establish a connection earlier."
msgstr "Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes."

#: tpl/page_optm/settings_html.tpl.php:64
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr "Retraso al mostrar los elementos HTML fuera de la pantalla por su selector."

#: tpl/page_optm/settings_css.tpl.php:243
msgid "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."
msgstr "Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas."

#: tpl/page_optm/settings_css.tpl.php:182
msgid "This option is bypassed due to %s option."
msgstr "Esta opción se omite debido a la opción %s."

#: tpl/page_optm/settings_css.tpl.php:177
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en el código HTML."

#: tpl/page_optm/settings_css.tpl.php:171
msgid "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."
msgstr "Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante."

#: tpl/page_optm/settings_css.tpl.php:136
msgid "This option will automatically bypass %s option."
msgstr "Esta opción omitirá automáticamente la opción %s."

#: tpl/page_optm/settings_css.tpl.php:134
msgid "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."
msgstr "UCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala."

#: tpl/page_optm/settings_css.tpl.php:118
#: tpl/page_optm/settings_css.tpl.php:228
msgid "Run %s Queue Manually"
msgstr "Ejecutar manualmente la cola %s"

#: tpl/page_optm/settings_css.tpl.php:72
msgid "This option is bypassed because %1$s option is %2$s."
msgstr "Esta opción se omite porque la opción %1$s es %2$s."

#: tpl/page_optm/settings_css.tpl.php:67
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr "La generación automática de CSS único está en segundo plano a través de una cola basada en cron."

#: tpl/page_optm/settings_css.tpl.php:65
msgid "This will drop the unused CSS on each page from the combined file."
msgstr "Esto eliminará el CSS no utilizado en cada página del archivo combinado."

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr "Ajustes HTML"

#: tpl/inc/in_upgrading.php:5
msgid "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."
msgstr "Actualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración."

#: tpl/general/settings_tuning.tpl.php:50
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr "Las IP listadas serán consideradas visitantes en modo invitado."

#: tpl/general/settings_tuning.tpl.php:28
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr "Los agentes de usuario listados serán considerados visitantes en modo invitado."

#: tpl/general/settings.tpl.php:165
msgid "Your %1s quota on %2s will still be in use."
msgstr "Tu cuota de %1s en %2s seguirá en uso."

#: tpl/general/settings_inc.guest.tpl.php:17
msgid "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."
msgstr "Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas."

#: tpl/general/settings_inc.guest.tpl.php:16
msgid "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr "El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX."

#: tpl/general/settings.tpl.php:208
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr "Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio."

#: tpl/general/settings.tpl.php:207
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server."
msgstr "la IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor."

#: tpl/general/settings.tpl.php:184
msgid "You need to turn %s on and finish all WebP generation to get maximum result."
msgstr "Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:190
msgid "You need to turn %s on to get maximum result."
msgstr "Necesitas activar %s para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:172
msgid "This option only works when turning %s on."
msgstr "Esta opción solo funciona cuando se activa %s."

#: tpl/general/settings.tpl.php:150
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr "Esta opción permite la máxima optimización para los visitantes del modo de invitado."

#: tpl/dash/dashboard.tpl.php:300 tpl/dash/dashboard.tpl.php:389
#: tpl/dash/dashboard.tpl.php:432 tpl/dash/dashboard.tpl.php:465
#: tpl/dash/dashboard.tpl.php:498 tpl/dash/dashboard.tpl.php:530
msgid "More"
msgstr "Más"

#: tpl/dash/dashboard.tpl.php:160
msgid "Remaining Daily Quota"
msgstr "Cuota diaria restante"

#: tpl/crawler/summary.tpl.php:183
msgid "Successfully Crawled"
msgstr "Rastreado correctamente"

#: tpl/crawler/summary.tpl.php:182
msgid "Already Cached"
msgstr "Ya en la caché"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio."

#: tpl/cdn/settings.tpl.php:214
msgid "Optional when API token used."
msgstr "Opcional cuando se usa el token de la API."

#: tpl/cdn/settings.tpl.php:204
msgid "Recommended to generate the token from Cloudflare API token template \"WordPress\"."
msgstr "Recomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare."

#: tpl/cdn/settings.tpl.php:198
msgid "Global API Key / API Token"
msgstr "Clave/Token global de la API"

#: tpl/cdn/settings.tpl.php:194
msgid "This can be managed from %1$s%2$s tab."
msgstr "Esto se puede gestionar desde la pestaña %1$s%2$s."

#: tpl/cdn/settings.tpl.php:54
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s."
msgstr "NOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %1$s."

#: tpl/cdn/settings.tpl.php:49
msgid "Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN."
msgstr "Pon este ajuste como %1$s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud."

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use external object cache functionality."
msgstr "Usa la funcionalidad de la caché de objetos externos."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Serve a separate cache copy for mobile visitors."
msgstr "Ofrece una copia de la caché separada para los visitantes móviles."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings."
msgstr "Cuando la opción está activada, la información del carrito se implementará como bloques ESI. NOTA: Para que funcione, debes activar %1$s en los ajustes de ESI."

#: thirdparty/woocommerce.content.tpl.php:31
msgid "Use ESI for Cart"
msgstr "Utiliza ESI para el carrito"

#: thirdparty/woocommerce.content.tpl.php:24
msgid "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."
msgstr "Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente."

#: src/purge.cls.php:249
msgid "Cleaned all Unique CSS files."
msgstr "Limpiados todos los archivos CSS únicos."

#: src/lang.cls.php:166
msgid "Add Missing Sizes"
msgstr "Añadir tamaños que faltan"

#: src/lang.cls.php:141
msgid "Optimize for Guests Only"
msgstr "Optimizar solamente para invitados"

#: src/lang.cls.php:137
msgid "Guest Mode JS Excludes"
msgstr "Exclusiones JS del modo de invitado"

#: src/lang.cls.php:120
msgid "CCSS Per URL"
msgstr "CCSS por URL"

#: src/lang.cls.php:118
msgid "HTML Lazy Load Selectors"
msgstr "Selectores HTML de carga diferida"

#: src/lang.cls.php:113
msgid "UCSS URI Excludes"
msgstr "Exclusiones UCSS de la URI"

#: src/lang.cls.php:111
msgid "UCSS Inline"
msgstr "UCCS integrado"

#: src/lang.cls.php:69
msgid "Guest Optimization"
msgstr "Optimización para invitados"

#: src/lang.cls.php:68
msgid "Guest Mode"
msgstr "Modo de invitado"

#: src/lang.cls.php:56
msgid "Guest Mode IPs"
msgstr "IP del modo de invitado"

#: src/lang.cls.php:55
msgid "Guest Mode User Agents"
msgstr "Agentes de usuario del modo de invitado"

#: src/error.cls.php:96
msgid "Online node needs to be redetected."
msgstr "El nodo online tiene que volver a ser detectado."

#: src/error.cls.php:92
msgid "The current server is under heavy load."
msgstr "El servidor actual está bajo una gran carga."

#: src/error.cls.php:52
msgid "You don't have enough daily quota left for current service today."
msgstr "No tienes suficiente cuota diaria disponible hoy para el servicio actual."

#: src/doc.cls.php:37
msgid "Please see %s for more details."
msgstr "Por favor, consulta %s para más detalles."

#: src/doc.cls.php:25
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr "¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!"

#: src/css.cls.php:532
msgid "%1$s %2$s files left in queue"
msgstr "%1$s %2$s archivos restantes en la cola"

#: src/crawler.cls.php:99
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr "¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos!"

#: src/cloud.cls.php:665
msgid "Redetected node"
msgstr "Nodo detectado nuevamente"

#: src/cloud.cls.php:432
msgid "No available Cloud Node after checked server load."
msgstr "No hay ningún nodo de la nube disponible después de comprobar la carga del servidor."

#: src/lang.cls.php:125
msgid "Localization Files"
msgstr "Archivos de idiomas"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "¡Purgado!"

#: tpl/page_optm/settings_localization.tpl.php:120
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Los recursos listados aquí se copiarán y reemplazarán con URL locales."

#: tpl/toolbox/beta_test.tpl.php:36
msgid "Use latest GitHub Master commit"
msgstr "Usar el último commit maestro de GitHub"

#: tpl/toolbox/beta_test.tpl.php:34
msgid "Use latest GitHub Dev commit"
msgstr "Usar el último commit de desarrollo de GitHub"

#: src/crawler-map.cls.php:317
msgid "No valid sitemap parsed for crawler."
msgstr "No se ha analizado ningún mapa del sitio válido para el rastreador."

#: src/lang.cls.php:109
msgid "CSS Combine External and Inline"
msgstr "Combinación de CSS externo e integrado"

#: tpl/page_optm/settings_css.tpl.php:150
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS."

#: tpl/page_optm/settings_css.tpl.php:30
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:83
#: tpl/page_optm/settings_tuning.tpl.php:168
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La lista predefinida también se combinará con los ajustes anteriores"

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localización"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combina todos los archivos JS locales en un único archivo."

#: tpl/page_optm/settings_tuning.tpl.php:161
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Los archivos JS listados o el código JS integrado no serán diferidos."

#: tpl/general/settings.tpl.php:94
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación."

#: src/data.upgrade.func.php:102
msgid "Click here to settings"
msgstr "Haz clic aquí para los ajustes"

#: src/data.upgrade.func.php:101
msgid "JS Defer"
msgstr "Diferir JS"

#: src/data.upgrade.func.php:101
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS."

#: src/lang.cls.php:116
msgid "JS Combine External and Inline"
msgstr "Combinación de JS externo e integrado"

#: src/admin-display.cls.php:460
msgid "Dismiss"
msgstr "Descartar"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "El último archivo de datos es"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La lista se fusionará con los nonces predefinidos en tu archivo de datos local."

#: tpl/page_optm/settings_css.tpl.php:43
msgid "Combine CSS files and inline CSS code."
msgstr "Combina archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minimiza archivos JS y códigos JS integrados."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán."

#: src/css.cls.php:60 src/root.cls.php:176
msgid "Queue cleared successfully."
msgstr "Cola vaciada correctamente."

#: src/admin-display.cls.php:935
msgid "This setting is overwritten by the Network setting"
msgstr "Los ajustes de red sobreescriben este ajuste"

#: src/lang.cls.php:155
msgid "LQIP Excludes"
msgstr "Exclusiones de LQIP"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "Estas imágenes no generarán LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "¿Seguro que quieres restablecer los ajustes a los valores por defecto?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "Esta opción eliminará todas las etiquetas %s del HTML."

#: tpl/general/settings.tpl.php:116
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "¿Seguro que quieres vaciar todos los nodos cloud?"

#: src/lang.cls.php:139
msgid "Remove Noscript Tags"
msgstr "Eliminar las etiquetas Noscript"

#: src/error.cls.php:84
msgid "The site is not registered on QUIC.cloud."
msgstr "El sitio no está registrado en QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Haz clic aquí para cambiarlo."

#: src/cloud.cls.php:763 src/error.cls.php:48
msgid "Click here to set."
msgstr "Haz clic aquí para configurarlo."

#: src/cloud.cls.php:762
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva."

#: src/lang.cls.php:124
msgid "Localize Resources"
msgstr "Recursos localizados"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Configurar cabeceras personalizadas"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all localized resources"
msgstr "Esto borrará todos los recursos localizados"

#: src/gui.cls.php:535 src/gui.cls.php:695 tpl/toolbox/purge.tpl.php:88
msgid "Localized Resources"
msgstr "Recursos localizados"

#: tpl/page_optm/settings_localization.tpl.php:125
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. "

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "HTTPS sources only."
msgstr "Solo orígenes HTTPS"

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localizar recursos externos."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Ajustes de localización"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Lista el selector CSS cuyo estilo debería siempre contenerse en UCSS."

#: tpl/page_optm/settings_css.tpl.php:64
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Usar el servicio en línea QUIC.cloud para generar CSS único."

#: src/lang.cls.php:110
msgid "Generate UCSS"
msgstr "Generar UCSS"

#: tpl/dash/dashboard.tpl.php:464 tpl/toolbox/purge.tpl.php:79
msgid "Unique CSS"
msgstr "CSS único"

#: tpl/toolbox/purge.tpl.php:116
msgid "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"
msgstr "Vacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS, únicas de CSS y de LQIP"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "Informe de LiteSpeed"

#: tpl/img_optm/summary.tpl.php:222
msgid "Image Thumbnail Group Sizes"
msgstr "Tamaños del grupo de imágenes en miniatura"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "En el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien."

#: src/lang.cls.php:97
msgid "Serve Stale"
msgstr "Servir contenido rancio"

#: src/admin-display.cls.php:932
msgid "This setting is overwritten by the primary site setting"
msgstr "Esta ajuste es sobrescrito por los ajuste del sitio primario"

#: src/img-optm.cls.php:964
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificado"

#: src/img-optm.cls.php:947
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Una o más imágenes optimizadas han caducado y han sido borradas."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos."

#: src/img-optm.cls.php:1025
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Leer la documentación de LiteSpeed"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "La cola aún no ha sido recuperada. Información de la cola: %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Timeout del mapa del sitio"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Especifica el tiempo límite de procesamiento del mapa del sitio."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar."

#: tpl/general/settings.tpl.php:112
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Hace falta una clave de dominio para usar los servicios online de QUIC.cloud."

#: src/img-optm.cls.php:547
msgid "Cleared %1$s invalid images."
msgstr "Purgadas %1$s imágenes no válidas."

#: src/img-optm.cls.php:509
msgid "Bypassed %1$s duplicated images."
msgstr "Saltadas %1$s imágenes duplicadas."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Solicitar clave de dominio"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "Ajustes generales de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:107
msgid "This will delete all cached Gravatar files"
msgstr "Esto borrará todos los archivos Gravatar almacenados en caché"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Evita cualquier registro de depuración de las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Solo registra las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Especifica el tamaño máximo del archivo de registro."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione."

#: tpl/toolbox/beta_test.tpl.php:54
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress."

#: tpl/toolbox/beta_test.tpl.php:38 tpl/toolbox/beta_test.tpl.php:54
msgid "Use latest WordPress release version"
msgstr "Usar la última versión de WordPress"

#: tpl/toolbox/beta_test.tpl.php:38
msgid "OR"
msgstr "O"

#: tpl/toolbox/beta_test.tpl.php:29
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Restablecer ajustes"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "Caja de herramientas de LiteSpeed"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Pruebas beta"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Vista de registros"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Ajustes de depuración"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Actívalo para controlar heartbeat en el editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "El intervalo válido de WordPress es %s segundos"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Actívalo para controlar heartbeat en el escritorio."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Ponlo en %1$s para bloquear heartbeat en %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "El intervalo válido de WordPress es de %s segundos."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Especifica el intervalo de heartbeat para %s en segundos."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Enciéndelo para controlar heartbeat en las páginas públicas."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Desactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Control de Heartbeat"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "proporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Opcional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generar el enlace para el usuario actual"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Enlace sin contraseña"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Información del sistema"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Ir a la lista de plugins"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Instalar la seguridad de DoLogin"

#: tpl/general/settings.tpl.php:206
msgid "Check my public IP from"
msgstr "Comprobar mi IP pública desde"

#: tpl/general/settings.tpl.php:206
msgid "Your server IP"
msgstr "La IP de tu servidor"

#: tpl/general/settings.tpl.php:205
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Introduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Especifica el tiempo de espera mientras se rastrea cada URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "Esto activará el cron rastreador."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Ajustes generales del rastreador"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blocklist"
msgstr "Eliminar de la lista negra"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blocklist"
msgstr "Vaciar la lista negra"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blocklist items?"
msgstr "¿Seguro que quieres borrar todos los elementos de la lista negra?"

#: tpl/crawler/blacklist.tpl.php:56 tpl/crawler/map.tpl.php:69
msgid "Blocklisted due to not cacheable"
msgstr "En la lista negra debido a que no se puede cachear"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blocklist"
msgstr "Añadir a la lista negra"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr "Operación"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Total del mapa del sitio"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Lista del mapa del sitio"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Recargar el mapa del rastreador"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Vaciar el mapa del rastreador"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Ajustes del mapa del sitio"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Ajustes de simulación"

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blocklist"
msgstr "Lista negra"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Mapa"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Sumario"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Si utilizas varios dominios para un sitio y tienes varios dominios en el mapa del sitio, mantén esta opción APAGADA para que el rastreador sepa cómo rastrear cada dominio."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, si se deja caer el dominio se puede ahorrar almacenamiento en la base de datos."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Ajustes de mapa del sitio del rastreador"

#: tpl/crawler/summary.tpl.php:190
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;Si tanto el cron como la ejecución manual se inician en momentos similares, el primero que se inicie tendrá prioridad."

#: tpl/crawler/summary.tpl.php:189
msgid "Crawlers cannot run concurrently."
msgstr "Los rastreadores no se pueden ejecutar de forma concurrente."

#: tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Fallo de caché"

#: tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Acierto de caché"

#: tpl/crawler/summary.tpl.php:181
msgid "Waiting to be Crawled"
msgstr "Esperando a ser rastreado"

#: tpl/crawler/blacklist.tpl.php:57 tpl/crawler/map.tpl.php:70
#: tpl/crawler/summary.tpl.php:160 tpl/crawler/summary.tpl.php:184
msgid "Blocklisted"
msgstr "En lista negra"

#: tpl/crawler/summary.tpl.php:159
msgid "Miss"
msgstr "Fallo"

#: tpl/crawler/summary.tpl.php:158
msgid "Hit"
msgstr "Acierto"

#: tpl/crawler/summary.tpl.php:157
msgid "Waiting"
msgstr "En espera"

#: tpl/crawler/summary.tpl.php:126
msgid "Running"
msgstr "En curso"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida."

#: src/admin-display.cls.php:209
msgid "Add new cookie to simulate"
msgstr "Añadir una cookie nueva para simular"

#: src/admin-display.cls.php:208
msgid "Remove cookie simulation"
msgstr "Eliminar la simulación de la cookie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Ajustes de simulación del rastreador"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr "La regla de Htaccess es: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "Más ajustes disponibles en el menú %s"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Marca esto si eres un usuario de OpenLiteSpeed"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Ajustes de la caché del navegador"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Los nonces anteriores se convertirán en ESI automáticamente."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Navegador"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Objeto"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Puerto por defecto de %1$s es %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Ajustes de la caché de objetos"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Especifica cuánto tiempo, en segundos, se almacena la página de inicio."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan."

#: tpl/page_optm/settings_css.tpl.php:270
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:269
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "La lista de avatares está en la cola esperando ser actualizada"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refrescar la caché de Gravatar por cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Acelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Almacenar los gravatares localmente."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:140
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "No se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones."

#: tpl/page_optm/settings_media.tpl.php:138
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:122
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos."

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Specify the quality when generating LQIP."
msgstr "Especifica la calidad al generar el LQIP."

#: tpl/page_optm/settings_media.tpl.php:107
msgid "Keep this off to use plain color placeholders."
msgstr "Mantén esto apagado para usar marcadores de posición de color."

#: tpl/page_optm/settings_media.tpl.php:106
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Usa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga."

#: tpl/page_optm/settings_media.tpl.php:92
msgid "Specify the responsive placeholder SVG color."
msgstr "Especifica el color del marcador de posición SVG adaptable."

#: tpl/page_optm/settings_media.tpl.php:78
msgid "Variables %s will be replaced with the configured background color."
msgstr "Las variables %s serán reemplazadas por el color de fondo configurado."

#: tpl/page_optm/settings_media.tpl.php:77
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Se convertirá en un marcador de posición SVG base64 sobre la marcha."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Especifica un SVG que se utilizará como marcador de posición al generar localmente."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Evita cualquier carga diferida de las páginas de la lista."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Los iframes con estos nombres de clase padres no se cargarán de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Los marcos que contengan estos nombres de clase no serán cargados de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida."

#: tpl/page_optm/entry.tpl.php:19
msgid "LiteSpeed Cache Page Optimization"
msgstr "Optimización de página de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Exclusiones de medios"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:16
msgid "CSS Settings"
msgstr "Ajustes de CSS"

#: tpl/page_optm/settings_css.tpl.php:270
msgid "%s is recommended."
msgstr "Se recomienda %s."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Deferred"
msgstr "Diferido"

#: tpl/page_optm/settings_css.tpl.php:267
msgid "Default"
msgstr "Por defecto"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "Esto puede mejorar la velocidad de carga de la página."

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "La nueva versión de desarrollo %s está disponible."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "¡Nueva versión para desarrolladores disponible!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Ignorar ese aviso"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tuitea esto"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Vista previa del tweet"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Aprender más"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "¡Acabas de desbloquear una promoción de QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Ajustes de optimización de imágenes"

#: tpl/img_optm/summary.tpl.php:373
msgid "Are you sure to destroy all optimized images?"
msgstr "¿Está seguro de destruir todas las imágenes optimizadas?"

#: tpl/img_optm/summary.tpl.php:365
msgid "Use Optimized Files"
msgstr "Usar archivos optimizados"

#: tpl/img_optm/summary.tpl.php:364
msgid "Switch back to using optimized images on your site"
msgstr "Volver a utilizar imágenes optimizadas en tu web"

#: tpl/img_optm/summary.tpl.php:361
msgid "Use Original Files"
msgstr "Usar archivos originales"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use original images (unoptimized) on your site"
msgstr "Usar imágenes originales (no optimizadas) en tu web"

#: tpl/img_optm/summary.tpl.php:355
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles."

#: tpl/img_optm/summary.tpl.php:352
msgid "Optimization Tools"
msgstr "Herramientas de optimización"

#: tpl/img_optm/summary.tpl.php:325
msgid "Rescan New Thumbnails"
msgstr "Reexaminar nuevas miniaturas"

#: tpl/img_optm/summary.tpl.php:317
msgid "Congratulations, all requested!"
msgstr "¡Felicidades, todas solicitadas!"

#: tpl/img_optm/summary.tpl.php:290
msgid "Congratulations, all gathered!"
msgstr "¡Felicidades, todas reunidos!"

#: tpl/img_optm/summary.tpl.php:287
msgid "Images not yet gathered"
msgstr "Imágenes que aún no se han reunido"

#: tpl/img_optm/summary.tpl.php:282 tpl/img_optm/summary.tpl.php:309
msgid "What is an image group?"
msgstr "¿Qué es un grupo de imágenes?"

#: tpl/img_optm/summary.tpl.php:233
msgid "Delete all backups of the original images"
msgstr "Borrar todas las copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:215
msgid "Calculate Backups Disk Space"
msgstr "Calcular el espacio en disco de las copias de seguridad"

#: tpl/img_optm/summary.tpl.php:100
msgid "Optimization Status"
msgstr "Estado de optimización"

#: tpl/img_optm/summary.tpl.php:84
msgid "Gather Image Data"
msgstr "Recopilar datos de las imágenes"

#: tpl/img_optm/summary.tpl.php:72
msgid "Current limit is"
msgstr "El límite actual es"

#: tpl/img_optm/summary.tpl.php:71
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de imágenes permitidas en una sola petición es limitada."

#: tpl/img_optm/summary.tpl.php:66
msgid "You can request a maximum of %s images at once."
msgstr "Puede solicitar un máximo de imágenes de %s de una vez."

#: tpl/img_optm/summary.tpl.php:61
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiza las imágenes con nuestro servidor en QUIC.cloud"

#: tpl/img_optm/summary.tpl.php:57 tpl/page_optm/settings_css.tpl.php:91
#: tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectar."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Las revisiones más recientes se guardarán cuando se limpien las revisiones."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Día(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimización de la base de datos de la caché de LiteSpeed"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Ajustes de optimización de la BD"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Nombre de la opción"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Resumen de la base de datos"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "Estamos bien. Ninguna tabla usa el motor MyISAM."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Convertir a InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Herramienta"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Motor"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Tabla"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Conversor de motor de tabla de base de datos"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones"

#: tpl/dash/dashboard.tpl.php:537
msgid "Currently active crawler"
msgstr "Rastreador activo"

#: tpl/dash/dashboard.tpl.php:534
msgid "Crawler(s)"
msgstr "Rastreador(es)"

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:529
msgid "Crawler Status"
msgstr "Estado del rastreador"

#: tpl/dash/dashboard.tpl.php:448 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513
msgid "Force cron"
msgstr "Forzar cron"

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:511
msgid "Requests in queue"
msgstr "Peticiones en cola"

#: tpl/dash/dashboard.tpl.php:440 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:506
msgid "Time to execute previous request"
msgstr "Tiempo para ejecutar la solicitud anterior"

#: tpl/dash/dashboard.tpl.php:417
msgid "Cache Stats"
msgstr "Estadísticas de caché"

#: tpl/dash/dashboard.tpl.php:395
msgid "Private Cache"
msgstr "Caché privada"

#: tpl/dash/dashboard.tpl.php:394
msgid "Public Cache"
msgstr "Caché pública"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Status"
msgstr "Estado de caché"

#: tpl/dash/dashboard.tpl.php:360
msgid "Last Pull"
msgstr "Última lectura"

#: tpl/dash/dashboard.tpl.php:325
msgid "Images Requested"
msgstr "Imágenes solicitadas"

#: tpl/dash/dashboard.tpl.php:310
msgid "Image Groups Prepared"
msgstr "Grupos de imágenes preparados"

#: tpl/dash/dashboard.tpl.php:299 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Resumen de la optimización de imágenes"

#: tpl/dash/dashboard.tpl.php:238
msgid "Refresh page score"
msgstr "Actualizar la puntuación de la página"

#: tpl/dash/dashboard.tpl.php:227 tpl/img_optm/summary.tpl.php:57
#: tpl/page_optm/settings_css.tpl.php:91 tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?"

#: tpl/dash/dashboard.tpl.php:227
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectarlo."

#: tpl/dash/dashboard.tpl.php:222 tpl/dash/dashboard.tpl.php:291
#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:489
#: tpl/dash/dashboard.tpl.php:521
msgid "Last requested"
msgstr "Último pedido"

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh page load time"
msgstr "Actualizar el tiempo de carga de la página"

#: tpl/dash/dashboard.tpl.php:169
msgid "Go to QUIC.cloud dashboard"
msgstr "Ir al escritorio de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:497
msgid "Low Quality Image Placeholder"
msgstr "Marcador de imagen de baja calidad"

#: tpl/dash/dashboard.tpl.php:45
msgid "Sync data from Cloud"
msgstr "Sincronizar los datos de la nube"

#: tpl/dash/dashboard.tpl.php:42
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Estadísticas de uso del servicio QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:151 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Total de imágenes optimizadas en este mes"

#: tpl/dash/dashboard.tpl.php:150 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Uso total"

#: tpl/dash/dashboard.tpl.php:131 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Estadísticas pago por uso"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "El uso de este mes"

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "Balance de pagos"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pago por uso"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Uso"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Uso de la cola rápida"

#: tpl/dash/dashboard.tpl.php:57 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "Ancho de banda de la CDN"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Uso de las estadísticas"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "Escritorio de LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Escritorio de red"

#: tpl/general/settings.tpl.php:128
msgid "No cloud services currently in use"
msgstr "No hay servicios de la nube en uso"

#: tpl/general/settings.tpl.php:116
msgid "Click to clear all nodes for further redetection."
msgstr "Haz clic para borrar todos los nodos para volver a detectar."

#: tpl/general/settings.tpl.php:115
msgid "Current Cloud Nodes in Service"
msgstr "Nodos de la nube actual en servicio"

#: tpl/general/settings.tpl.php:107
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Beneficios de enlazar con una cuenta QUIC.cloud"

#: tpl/general/settings.tpl.php:106
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud."

#: tpl/general/settings.tpl.php:101
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Debes tener %1$s antes de enlazarte a QUIC.cloud."

#: tpl/general/settings.tpl.php:87
msgid "Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance."
msgstr "Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la API REST, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda."

#: tpl/general/settings.tpl.php:86
msgid "Our %s was not allowlisted."
msgstr "Nuestro %s no estaba en la lista blanca."

#: tpl/general/settings.tpl.php:85
msgid "The POST callback to %s failed."
msgstr "La llamada POST a %s falló."

#: tpl/general/settings.tpl.php:84
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "Hay dos razones por las que no podemos comunicarnos con tu dominio:"

#: tpl/general/settings.tpl.php:83
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Hay un problema al recibir tu clave de dominio. Por favor, haz clic en el botón %s para volver a intentarlo."

#: tpl/general/settings.tpl.php:75 tpl/general/settings.tpl.php:77
#: tpl/general/settings.tpl.php:106
msgid "Link to QUIC.cloud"
msgstr "Enlace a QUIC.cloud"

#: tpl/general/settings.tpl.php:73
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visitar «Mi Escritorio» en QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Próximo tiempo de solicitud disponible: <code>Después de %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Aprobado"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Solicitado"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Esperando aprobación"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Esperando a la recarga"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Actualizar la clave del dominio"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:42
msgid "General Settings"
msgstr "Ajustes generales"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN."

#: src/admin-display.cls.php:231
msgid "Add new CDN URL"
msgstr "Añadir una nueva URL de la CDN"

#: src/admin-display.cls.php:230
msgid "Remove CDN URL"
msgstr "Eliminar la URL de la CDN"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Activar la funcionalidad %s de la API de la CDN."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "Para gestionar las opciones de QUIC.cloud, visita"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "Ajustes de WooCommerce"

#: src/doc.cls.php:119 tpl/general/settings.tpl.php:86
msgid "Current Online Server IPs"
msgstr "IPs del servidor en línea"

#: src/doc.cls.php:118
msgid "Before generating key, please verify all IPs on this list are allowlisted"
msgstr "Antes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blanca"

#: src/doc.cls.php:117
msgid "For online services to work correctly, you must allowlist all %s server IPs."
msgstr "Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor."

#: src/gui.cls.php:545 src/gui.cls.php:705
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:97
msgid "LQIP Cache"
msgstr "Caché de LQIP"

#: src/gui.cls.php:84
msgid "Private Cache Hits"
msgstr "Aciertos de caché privada"

#: src/gui.cls.php:83
msgid "Private Caches"
msgstr "Cachés privadas"

#: src/gui.cls.php:82
msgid "Public Cache Hits"
msgstr "Aciertos de caché pública"

#: src/gui.cls.php:81
msgid "Public Caches"
msgstr "Cachés públicas"

#: src/admin-settings.cls.php:242 src/admin-settings.cls.php:276
msgid "Options saved."
msgstr "Las opciones han sido guardadas."

#: src/img-optm.cls.php:1461
msgid "Removed backups successfully."
msgstr "Copias de seguridad eliminadas correctamente."

#: src/img-optm.cls.php:1399
msgid "Calculated backups successfully."
msgstr "Copias de seguridad calculadas correctamente."

#: src/img-optm.cls.php:1340
msgid "Rescanned %d images successfully."
msgstr "%d imágenes reexploradas correctamente."

#: src/img-optm.cls.php:1275 src/img-optm.cls.php:1340
msgid "Rescanned successfully."
msgstr "Reexploración correcta."

#: src/img-optm.cls.php:1243
msgid "Destroy all optimization data successfully."
msgstr "Todos los datos de optimización destruidos correctamente."

#: src/img-optm.cls.php:1172
msgid "Cleaned up unfinished data successfully."
msgstr "Datos incompletos limpiados correctamente."

#: src/img-optm.cls.php:1085
msgid "Pulled %d image(s)"
msgstr "%d imagen(es) obtenida(s)"

#: src/img-optm.cls.php:1008
msgid "Optimized WebP file expired and was cleared."
msgstr "El archivo WebP optimizado caducado ha sido limpiado."

#: src/img-optm.cls.php:888
msgid "Pull Cron is running"
msgstr "Pull Cron se está ejecutando"

#: src/img-optm.cls.php:649
msgid "No valid image found by Cloud server in the current request."
msgstr "El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual."

#: src/img-optm.cls.php:626
msgid "No valid image found in the current request."
msgstr "No se ha encontrado ninguna imagen válida en la petición actual."

#: src/img-optm.cls.php:472
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s enviado al servidor en la nube, %2$s aceptado."

#: src/img-optm.cls.php:180
msgid "Gathered %d images successfully."
msgstr "%d recopiladas correctamente."

#: src/img-optm.cls.php:147
msgid "No new image gathered."
msgstr "No se ha reunido ninguna imagen nueva."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Edad máxima de las revisiones"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Número máximo de revisiones"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "URIs excluidas de la depuración"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "URIs incluidas en la depuración"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Quitar dominio del mapa del sitio"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "Atributo HTML a reemplazar"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Usar mapeo de CDN"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "CDN de QUIC.cloud"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "TTL de heartbeat del editor"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Heartbeat del editor"

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr "TTL de heartbeat de la administración"

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr "Control de heartbeat de la administración"

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr "TTL de heartbeat de la parte pública"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr "Control de heartbeat de la parte pública"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Ruta del .htaccess de la administración"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Ruta del .htaccess de la parte pública"

#: src/lang.cls.php:180
msgid "ESI Nonces"
msgstr "Nonces de ESI"

#: src/lang.cls.php:176
msgid "WordPress Image Quality Control"
msgstr "Control de la calidad de imagen de WordPress"

#: src/lang.cls.php:171
msgid "Create WebP Versions"
msgstr "Crear versiones WebP"

#: src/lang.cls.php:168
msgid "Auto Pull Cron"
msgstr "Cron de obtención automática"

#: src/lang.cls.php:167
msgid "Auto Request Cron"
msgstr "Cron de petición automática"

#: src/lang.cls.php:164
msgid "Generate LQIP In Background"
msgstr "Generar LQIP en segundo plano"

#: src/lang.cls.php:162
msgid "LQIP Minimum Dimensions"
msgstr "Dimensiones mínimas de LQIP"

#: src/lang.cls.php:161
msgid "LQIP Quality"
msgstr "Calidad de LQIP"

#: src/lang.cls.php:160
msgid "LQIP Cloud Generator"
msgstr "Generador de LQIP en la nube"

#: src/lang.cls.php:159
msgid "Responsive Placeholder SVG"
msgstr "Marcador de posición SVG adaptable"

#: src/lang.cls.php:158
msgid "Responsive Placeholder Color"
msgstr "Color del marcador de posición adaptable"

#: src/lang.cls.php:156
msgid "Basic Image Placeholder"
msgstr "Marcador de posición de imagen básica"

#: src/lang.cls.php:154
msgid "Lazy Load URI Excludes"
msgstr "Exclusión de URIs de carga diferida"

#: src/lang.cls.php:153
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padre de iframes"

#: src/lang.cls.php:152
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases de iframes"

#: src/lang.cls.php:151
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padres"

#: src/lang.cls.php:146
msgid "Gravatar Cache TTL"
msgstr "TTL de la caché de Gravatar"

#: src/lang.cls.php:145
msgid "Gravatar Cache Cron"
msgstr "Cron de la caché de Gravatar"

#: src/gui.cls.php:555 src/gui.cls.php:715 src/lang.cls.php:144
#: tpl/toolbox/purge.tpl.php:106
msgid "Gravatar Cache"
msgstr "Caché de Gravatar"

#: src/lang.cls.php:127
msgid "DNS Prefetch Control"
msgstr "Control del prefetch DNS"

#: src/lang.cls.php:122
msgid "Font Display Optimization"
msgstr "Optimización de visualización de fuentes"

#: src/lang.cls.php:101
msgid "Force Public Cache URIs"
msgstr "Forzar URIs de caché púbica"

#: src/lang.cls.php:70
msgid "Notifications"
msgstr "Avisos"

#: src/lang.cls.php:65
msgid "Default HTTP Status Code Page TTL"
msgstr "TTL del código de estado de página por defecto"

#: src/lang.cls.php:64
msgid "Default REST TTL"
msgstr "TTL por defecto de REST"

#: src/lang.cls.php:58
msgid "Enable Cache"
msgstr "Activa cache"

#: src/lang.cls.php:54
msgid "Domain Key"
msgstr "Clave del dominio"

#: src/lang.cls.php:53
msgid "Server IP"
msgstr "IP del servidor"

#: src/lang.cls.php:33
msgid "Duplicate image files ignored"
msgstr "Archivos de imagen duplicados ignorados"

#: src/lang.cls.php:23
msgid "Images not requested"
msgstr "Imágenes no solicitadas"

#: src/cloud.cls.php:1184
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube."

#: src/cloud.cls.php:1073
msgid "Domain Key hash mismatch"
msgstr "Discordancia de clave de dominio"

#: src/cloud.cls.php:1002
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia."

#: src/cloud.cls.php:951
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Clave del dominio solicitada correctamente. Por favor, espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress."

#: src/cloud.cls.php:754 src/cloud.cls.php:932
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Fallo de comunicación con el servidor QUIC.cloud"

#: src/cloud.cls.php:702
msgid "Good news from QUIC.cloud server"
msgstr "Buenas noticias del servidor QUIC.cloud"

#: src/cloud.cls.php:686 src/cloud.cls.php:694 src/cloud.cls.php:943
msgid "Message from QUIC.cloud server"
msgstr "Mensaje del servidor QUIC.cloud"

#: src/cloud.cls.php:551
msgid "Please try after %1$s for service %2$s."
msgstr "Por favor, inténtalo después de %1$s para el servicio %2$s."

#: src/cloud.cls.php:407
msgid "No available Cloud Node."
msgstr "No hay ningún nodo de la nube disponible."

#: src/cloud.cls.php:359 src/cloud.cls.php:372 src/cloud.cls.php:407
#: src/cloud.cls.php:432 src/cloud.cls.php:551 src/cloud.cls.php:907
msgid "Cloud Error"
msgstr "Error de la nube"

#: src/data.cls.php:219
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado."

#: src/media.cls.php:339
msgid "Restore from backup"
msgstr "Restaurar desde la copia de seguridad"

#: src/media.cls.php:329
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:323
msgid "No backup of unoptimized WebP file exists."
msgstr "No existe una copia de seguridad del archivo WebP no optimizado."

#: src/media.cls.php:310
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Archivo WebP reducido en %1$s (%2$s)"

#: src/media.cls.php:306
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo WebP."

#: src/media.cls.php:301
msgid "Currently using optimized version of WebP file."
msgstr "Actualmente usando la versión optimizada del archivo WebP."

#: src/media.cls.php:285
msgid "Orig"
msgstr "Original"

#: src/media.cls.php:282
msgid "(no savings)"
msgstr "(sin guardar)"

#: src/media.cls.php:282
msgid "Orig %s"
msgstr "Original %s"

#: src/media.cls.php:279
msgid "Congratulation! Your file was already optimized"
msgstr "¡Felicidades! Tu archivo ya ha sido optimizado"

#: src/media.cls.php:270
msgid "No backup of original file exists."
msgstr "No existe una copia de seguridad del archivo original."

#: src/media.cls.php:270 src/media.cls.php:323
msgid "Using optimized version of file. "
msgstr "Usando la versión optimizada del archivo. "

#: src/media.cls.php:262
msgid "Orig saved %s"
msgstr "Ahorrado un %s del original"

#: src/media.cls.php:256
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Archivo original reducido en %1$s (%2$s)"

#: src/media.cls.php:252 src/media.cls.php:306
msgid "Click to switch to optimized version."
msgstr "Haz clic para cambiar a la versión optimizada."

#: src/media.cls.php:252
msgid "Currently using original (unoptimized) version of file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo."

#: src/media.cls.php:251 src/media.cls.php:305
msgid "(non-optm)"
msgstr "(no-optm)"

#: src/media.cls.php:247 src/media.cls.php:301
msgid "Click to switch to original (unoptimized) version."
msgstr "Haz clic para cambiar a la versión original (no optimizada)."

#: src/media.cls.php:247
msgid "Currently using optimized version of file."
msgstr "Actualmente usando la versión optimizada del archivo."

#: src/media.cls.php:246 src/media.cls.php:271 src/media.cls.php:300
#: src/media.cls.php:324
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:138
msgid "LQIP image preview for size %s"
msgstr "Vista previa de la imagen LQIP para el tamaño %s"

#: src/placeholder.cls.php:80 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:981
msgid "Previously existed in blocklist"
msgstr "Anteriormente existía en la lista negra"

#: src/crawler.cls.php:978
msgid "Manually added to blocklist"
msgstr "Añadido manualmente a la lista negra"

#: src/htaccess.cls.php:326
msgid "Mobile Agent Rules"
msgstr "Reglas de agente móvil"

#: src/crawler-map.cls.php:321
msgid "Sitemap created successfully: %d items"
msgstr "Mapa del sitio creado con éxito: %d elementos"

#: src/crawler-map.cls.php:265
msgid "Sitemap cleaned successfully"
msgstr "El mapa del sitio se limpió con éxito"

#: src/admin-display.cls.php:1097
msgid "Invalid IP"
msgstr "IP no válida"

#: src/admin-display.cls.php:1072
msgid "Value range"
msgstr "Rango de valores"

#: src/admin-display.cls.php:1069
msgid "Smaller than"
msgstr "Más pequeño que"

#: src/admin-display.cls.php:1066
msgid "Larger than"
msgstr "Mayor que"

#: src/admin-display.cls.php:1059
msgid "Zero, or"
msgstr "Cero, o"

#: src/admin-display.cls.php:1047
msgid "Maximum value"
msgstr "Valor máximo"

#: src/admin-display.cls.php:1044
msgid "Minimum value"
msgstr "Valor mínimo"

#: src/admin-display.cls.php:1026
msgid "Path must end with %s"
msgstr "La ruta debe terminar en %s"

#: src/admin-display.cls.php:1009
msgid "Invalid rewrite rule"
msgstr "Regla de reescritura no válida"

#: src/admin-display.cls.php:939
msgid "currently set to %s"
msgstr "actualmente establecido en %s"

#: src/admin-display.cls.php:929
msgid "This setting is overwritten by the PHP constant %s"
msgstr "Este ajuste es sobrescrita por la constante %s de PHP"

#: src/admin-display.cls.php:131
msgid "Toolbox"
msgstr "Herrramientas"

#: src/admin-display.cls.php:127
msgid "Database"
msgstr "Base de datos"

#: src/admin-display.cls.php:125 tpl/dash/dashboard.tpl.php:56
msgid "Page Optimization"
msgstr "Optimización de página"

#: src/admin-display.cls.php:115 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Escritorio"

#: src/db-optm.cls.php:243
msgid "Converted to InnoDB successfully."
msgstr "Convertido a InnoDB correctamente."

#: src/purge.cls.php:300
msgid "Cleaned all Gravatar files."
msgstr "Vaciados todos los archivos de Gravatar."

#: src/purge.cls.php:283
msgid "Cleaned all LQIP files."
msgstr "Vaciados todos los archivos LQIP."

#: src/error.cls.php:173
msgid "Unknown error"
msgstr "Error desconocido"

#: src/error.cls.php:169
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior."

#: src/error.cls.php:165
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: "

#: src/error.cls.php:161
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores."

#: src/error.cls.php:157
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash."

#: src/error.cls.php:153
msgid "Your application is waiting for approval."
msgstr "Tu solicitud está a la espera de aprobación."

#: src/error.cls.php:149
msgid "Previous request too recent. Please try again after %s."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s."

#: src/error.cls.php:145
msgid "Previous request too recent. Please try again later."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde."

#: src/error.cls.php:140
msgid "Crawler disabled by the server admin."
msgstr "Rastreador desactivado por el administrador del servidor."

#: src/error.cls.php:136
msgid "Failed to create table %s! SQL: %s."
msgstr "¡Fallo al crear la tabla %s! SQL: %s."

#: src/error.cls.php:112
msgid "Could not find %1$s in %2$s."
msgstr "No se ha podido encontrar %1$s en %2$s."

#: src/error.cls.php:100
msgid "Credits are not enough to proceed the current request."
msgstr "Los créditos no son suficientes para proceder con la solicitud actual."

#: src/error.cls.php:88
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio."

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet."
msgstr "Hay una cola de procedimiento que no se ha retirado todavía."

#: src/error.cls.php:72
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "No hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamente"

#: src/error.cls.php:68
msgid "The image list is empty."
msgstr "La lista de imágenes está vacía."

#: src/error.cls.php:56
msgid "You don't have enough quota left for current service this month."
msgstr "No tienes suficiente cuota disponible este mes para el servicio actual."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "Tendrás que establecer %s para usar los servicios en línea."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "En este momento, el ajuste %s está activado."

#: src/task.cls.php:139
msgid "LiteSpeed Crawler Cron"
msgstr "Cron del rastreador de LiteSpeed"

#: src/task.cls.php:120
msgid "Every Minute"
msgstr "Cada minuto"

#: tpl/general/settings.tpl.php:223
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Los enlaces generados pueden gestionarse en los <a %s>Ajustes</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Instalar"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr "Puntuación de PageSpeed"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr "Mejorado por"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr "Después"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr "Antes"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr "Tiempo de carga de la página"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud."

#: src/lang.cls.php:173
msgid "Preserve EXIF/XMP data"
msgstr "Conservar los datos EXIF/XMP"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Try GitHub Version"
msgstr "Probar versión de GitHub"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s."

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr "Se pueden usa cadenas parciales y completas."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Las imágenes que contengan estos nombres de clases no tendrán carga diferida."

#: src/lang.cls.php:150
msgid "Lazy Load Image Class Name Excludes"
msgstr "Exclusión de nombres de clases para carga diferida de imágenes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Puede que más tarde"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Activar la actualización automática"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:62
msgid "Upgrade"
msgstr "Actualizar"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "La nueva versión %s está disponible ahora."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "¡Nueva versión disponible!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Creado con ❤️ por el equipo de LiteSpeed."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "¡Por supuesto, me encantará valorarlo!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "¡Gracias por usar el plugin de caché LiteSpeed!"

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr "Actualizado con éxito."

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr "Fallo al actualizar."

#: src/conf.cls.php:704
msgid "Changed setting successfully."
msgstr "Ajuste cambiado con éxito."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "Muestra de ESI para desarrolaldores"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Reemplaza %1$s con %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Puedes convertir shortcodes en bloques ESI."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Caché privada o caché pública"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Añade la cadena de consulta %s a los recursos para evitar esta acción."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA se omitirá automáticamente."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado."

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Valores de la cookie"

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr "Nombre de la cookie"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Simulación de cookie"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre."

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr "Actualizar automáticamente"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Tu IP"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Restablecimiento realizado con éxito."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Esto restablecerá todos los ajustes a su valores predeterminados."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Restablecer todos los ajustes"

#: tpl/page_optm/settings_tuning.tpl.php:134
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separa archivos CSS críticos al generar las rutas que contengan estas cadenas."

#: src/lang.cls.php:135
msgid "Separate CCSS Cache URIs"
msgstr "Distintas URIs de caché CCSS"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán."

#: tpl/page_optm/settings_tuning.tpl.php:119
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS."

#: src/lang.cls.php:134
msgid "Separate CCSS Cache Post Types"
msgstr "Tipos de contenido de caché de CCSS distintos"

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr "Tamaño de la lista en la cola de espera del cron"

#: tpl/page_optm/settings_media.tpl.php:158
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s."

#: tpl/page_optm/settings_media.tpl.php:156
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas."

#: tpl/page_optm/settings_media.tpl.php:62
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto."

#: tpl/page_optm/settings_media.tpl.php:61
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes."

#: src/lang.cls.php:157
msgid "Responsive Placeholder"
msgstr "Marcador de posición adaptable"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Por favor, activa LiteSpeed Cache en los ajustes del plugin."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento."

#: src/cloud.cls.php:634 src/cloud.cls.php:650
msgid "Failed to request via WordPress"
msgstr "Fallo en la solicitud desde WordPress"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed"

#: src/img-optm.cls.php:1776
msgid "Reset the optimized data successfully."
msgstr "Datos de optimización restablecidos correctamente."

#: src/gui.cls.php:781
msgid "Update %s now"
msgstr "Actualizar %s"

#: src/gui.cls.php:776
msgid "View %1$s version %2$s details"
msgstr "Ver detalles de la versión %2$s de %1$s"

#: src/gui.cls.php:773
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>ver detalles de la versión %3$s</a> o <a href=\"%4$s\" %5$s target=\"_blank\">actualiza ya</a>."

#: src/gui.cls.php:753
msgid "Install %s"
msgstr "Instalar %s"

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr "Imágenes optimizadas anteriormente"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!"

#: src/cloud.cls.php:711
msgid "%1$s plugin version %2$s required for this action."
msgstr "Para esta acción se necesita la versión %2$s del plugin %1$s."

#: src/cloud.cls.php:673
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas."

#: src/lang.cls.php:170
msgid "Remove Original Backups"
msgstr "Eliminar copias de seguridad del orginal"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Solicitar automáticamente la optimización mediante un trabajo cron."

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr "Se guarda una copia de seguridad de cada imagen antes de optimizarla."

#: src/img-optm.cls.php:1656
msgid "Switched images successfully."
msgstr "Imágenes cambiadas correctamente."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimizar imágenes usando compresión sin pérdida."

#: src/lang.cls.php:172
msgid "Optimize Losslessly"
msgstr "Optimizar sin pérdida"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Solicita versiones WebP de las imágenes originales al hacer la optimización."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta."

#: src/lang.cls.php:169
msgid "Optimize Original Images"
msgstr "Optimizar imágenes originales"

#: tpl/page_optm/settings_css.tpl.php:174
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google."

#: src/purge.cls.php:230
msgid "Cleaned all Critical CSS files."
msgstr "Limpiados todos los archivos CSS críticos."

#: tpl/page_optm/settings_css.tpl.php:256
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado."

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr "Biblioteca de CSS integrado asíncrono"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr "Ejecutar la cola manualmente"

#: tpl/page_optm/settings_css.tpl.php:97 tpl/page_optm/settings_css.tpl.php:207
msgid "URL list in %s queue waiting for cron"
msgstr "Lista de URL en cola %s esperando el cron"

#: tpl/page_optm/settings_css.tpl.php:85 tpl/page_optm/settings_css.tpl.php:195
msgid "Last requested cost"
msgstr "Último coste solicitado"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:82
#: tpl/page_optm/settings_css.tpl.php:192
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr "Último generado"

#: tpl/page_optm/settings_media.tpl.php:162
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página."

#: tpl/page_optm/settings_css.tpl.php:173
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron."

#: tpl/page_optm/settings_css.tpl.php:169
msgid "Optimize CSS delivery."
msgstr "Optimiza la entrega de CSS."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "Esto borrará todos los archivos generados de CSS crítico"

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "CSS crítico"

#: src/doc.cls.php:36
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar."

#: src/utility.cls.php:236
msgid "right now"
msgstr "ahora mismo"

#: src/utility.cls.php:236
msgid "just now"
msgstr "ahora mismo"

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr "Guardado"

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Última ejecución"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr "Esto es irreversible."

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr "Eliminar copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:255
msgid "Are you sure you want to remove all image backups?"
msgstr "¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr "Archivos"

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr "Último cálculo"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calcular almacenamiento original de imágenes"

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr "Optimización de almacenamiento"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Activar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress."

#: src/lang.cls.php:175
msgid "WebP For Extra srcset"
msgstr "WebP para src extra"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Usa el formato %1$s o %2$s (el elemento es opcional)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Solo los atributos aquí listados serán reemplazados."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Especificar que atributos de elementos serán reemplazados con WebP."

#: src/lang.cls.php:174
msgid "WebP Attribute To Replace"
msgstr "Atributo WebP a reemplazar"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Solo los archivos en estos directorios apuntarán a la CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Directorios incluidos"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Un vaciado completo se iniciará cuando WordPress ejecute estos ganchos."

#: src/lang.cls.php:182
msgid "Purge All Hooks"
msgstr "Vaciar todos los ganchos"

#: src/purge.cls.php:192
msgid "Purged all caches successfully."
msgstr "Vaciado de todas las cachés correctamente."

#: src/gui.cls.php:479 src/gui.cls.php:579 src/gui.cls.php:629
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:423
msgid "Forced cacheable"
msgstr "Forzar cacheables"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables."

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr "Forzar URLs en caché"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Ajustes de exclusión"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Esto desactivará LSCache y todas las características de optimización con propósitos de depuración."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Desactivar todas las características"

#: src/gui.cls.php:506 src/gui.cls.php:666 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Caché opcode"

#: src/gui.cls.php:487 src/gui.cls.php:637 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "Caché CSS/JS"

#: src/gui.cls.php:734 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr "Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar."

#: src/gui.cls.php:735 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr "Limpiar datos no finalizados"

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr "Imágenes fallidas con otros errores"

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr "Imágenes con metadatos erróneos"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Únete a nuestro Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Únete a la comunidad %s."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "¿Quieres conectar con otros usuarios de LiteSpeed?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Obténla desde <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:202
msgid "Your API key / token is used to access %s APIs."
msgstr "Tu clave de la API/token se usa para acceder a las API de %s."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Tu dirección de email en %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Usar la funcionalidad de la API %s."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Únete a la comunidad de Slack de LiteSpeed"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visita el foro de soporte de LSCWP"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Valora %s en %s"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr "Imágenes notificadas para descargar"

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr "Faltan archivos de imágenes"

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr "¿Qué es un grupo?"

#: src/admin-display.cls.php:1165
msgid "%s image"
msgstr "%s imagen"

#: src/admin-display.cls.php:1162
msgid "%s group"
msgstr "%s grupo"

#: src/admin-display.cls.php:1152
msgid "%s images"
msgstr "%s imágenes"

#: src/admin-display.cls.php:1149
msgid "%s groups"
msgstr "%s grupos"

#: src/crawler.cls.php:826
msgid "Guest"
msgstr "Invitado"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Simulación de rol"

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr "ejecutando"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Tamaño"

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr "Razón de finalización"

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr "Último intervalo"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr "El rastreador actual comenzó a las"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Hora de ejecución para el rastreador anterior"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d segundos"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Hora de la última ejecución completa para todos los rastreadores"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "El rastreo del mapa del sitio actual comenzó a las"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Guarda datos transitorios en la base de datos cuando %1$s es %2$s."

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr "Almacenar datos transitorios"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "¡Si %1$s es %2$s entonces debe completarse %3$s!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Valor máximo permitido por el servidor"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Valor forzado por el servidor"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Valor mínimo permitido por el servidor"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTA"

#: src/admin-display.cls.php:1118
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable(s) del servidor %s disponible para omitir este ajuste."

#: src/admin-display.cls.php:1117 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:176
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:165
#: tpl/page_optm/settings_tuning.tpl.php:186
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:379
msgid "Reset the entire opcode cache successfully."
msgstr "Reestablecida la caché opcache con éxito"

#: src/purge.cls.php:367
msgid "Opcode cache is not enabled."
msgstr "La caché opcache no está habilitada."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Importado con éxito el archivo de ajustes %s."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Importación fallida debido a un error en el archivo."

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Cómo solucionar problemas causados por la optimización CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a visitor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace."

#: src/lang.cls.php:184
msgid "Instant Click"
msgstr "Clic instantáneo"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Reestablecer toda la caché opcode"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Última importación"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importar"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Ajustes de importación"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Última exportación"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exportar"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Ajustes de exportación"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Importar / Exportar"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilizar conexiones keep-alive para acelerar operaciones de la caché."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Base de datos a usar"

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr "ID de base de datos Redis"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Especifica la contraseña utilizada al conectar."

#: src/lang.cls.php:88
msgid "Password"
msgstr "Contraseña"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Solo disponible cuando está instalado %s."

#: src/lang.cls.php:87
msgid "Username"
msgstr "Nombre de usuario"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "El hostname o dirección IP de tu %s."

#: src/lang.cls.php:83
msgid "Method"
msgstr "Método"

#: src/purge.cls.php:420
msgid "Purge all object caches successfully."
msgstr "Vació de todas las cachés de objetos correctamente."

#: src/purge.cls.php:407
msgid "Object cache is not enabled."
msgstr "La caché de objetos no está activada."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)"

#: src/lang.cls.php:93
msgid "Cache WP-Admin"
msgstr "Caché de WP-Admin"

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr "Conexión persistente"

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr "Grupos a no cachear"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Grupos cacheados a nivel de red."

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr "Grupos globales"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Prueba de conexión"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "Extensión %s"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr "Estado"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "TTL por defecto para objetos cacheados."

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr "Tiempo de vida por defecto del objeto"

#: src/lang.cls.php:85
msgid "Port"
msgstr "Puerto"

#: src/lang.cls.php:84
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:496 src/gui.cls.php:656 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Caché de objetos"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Fallido"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Exitoso"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "No disponible"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Vaciar todas las cachés de objetos"

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr "Fallo al comunicar con Cloudflare"

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr "Comunicado con éxito con Cloudflare."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "No hay disponible una zona Cloudflare"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Avisado a Cloudflare el vaciado completo con éxito."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "La API de Cloudflare está configurada en off."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Una vez guardado, coincidirá con la lista actual y se completará automáticamente."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "Puedes simplemente teclear parte de dominio."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Dominio"

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "API de Cloudflare"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Vaciar todo"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Caché de Cloudflare"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "El modo de desarrollo se desactivará automáticamente después de tres horas."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "El modo de desarrollo se desactivará automáticamente en %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "El estado actual es %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "El estado actual es %1$s desde %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Comprobar estado"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "APAGAR"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "ENCENDER"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Modo de desarrollo"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Zona de Cloudflare"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Dominio de Cloudflare"

#: src/gui.cls.php:646 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "Por ejemplo"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "La precarga DNS puede reducir la latencia para los visitantes."

#: src/lang.cls.php:126
msgid "DNS Prefetch"
msgstr "Prefetch DNS"

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Añade estilos a tus imágenes de carga diferida"

#: src/admin-display.cls.php:980 src/admin-display.cls.php:985
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Valor por defecto"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s."

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr "Ignorar cadenas de consulta"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché."

#: src/lang.cls.php:183
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Mejorar compatibilidad HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:378
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización."

#: tpl/img_optm/summary.tpl.php:374
msgid "Destroy All Optimization Data"
msgstr "Destruir todos los datos de optimización"

#: tpl/img_optm/summary.tpl.php:324
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Esto aumentará el tamaño de los archivos optimizados."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Vaciar registro"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Para probar el carrito, visita la <a %s>FAQ</a>."

#: src/utility.cls.php:239
msgid " %s ago"
msgstr " hace %s"

#: src/media.cls.php:315
msgid "WebP saved %s"
msgstr "WebP ha ahorrado un %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Esto también generará una clave de API del servidor de LiteSpeed."

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr "Última descarga iniciada por cron a las %s."

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando."

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr "Solo pulsar el botón si la tarea cron de descarga está desactivada."

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr "Descargar imágenes"

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr "Este proceso es automático."

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr "Última petición"

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr "Errores al descargar imágenes"

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr "Errores al obtener imágenes"

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr "Imágenes recuperadas"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Informe"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Enviar a LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Fecha de informe"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Número de informe"

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr "Cachear carrito privadamente cuando no esté vacío."

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr "Cachear carrito privadamente"

#: src/media.cls.php:196
msgid "LiteSpeed Optimization"
msgstr "Optimización de LiteSpeed"

#: src/lang.cls.php:131
msgid "Load Google Fonts Asynchronously"
msgstr "Cargar Google Fonts asíncronamente"

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr "TTL caché de navegador"

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>."

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Leer más"

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr "Imágenes optimizadas y descargadas"

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr "Imágenes solicitadas"

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr "Imágenes aún no solicitadas"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr "Total imágenes"

#: src/img-optm.cls.php:1713
msgid "Switched to optimized file successfully."
msgstr "Cambio correcto a archivo optimizado."

#: src/img-optm.cls.php:1706
msgid "Restored original file successfully."
msgstr "Archivo original restaurado con éxito."

#: src/img-optm.cls.php:1690
msgid "Enabled WebP file successfully."
msgstr "Archivo WebP activado con éxito."

#: src/img-optm.cls.php:1684
msgid "Disabled WebP file successfully."
msgstr "Archivo WebP desactivado con éxito."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes en QUIC.cloud"

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas."

#: src/lang.cls.php:188
msgid "Image WebP Replacement"
msgstr "Reemplazo de imágenes WebP"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Los perfiles seleccionados serán excluidos de la caché."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Ajustar"

#: tpl/page_optm/settings_tuning.tpl.php:228
msgid "Selected roles will be excluded from all optimizations."
msgstr "Los perfiles seleccionados serán excluidos de todas las optimizaciones."

#: src/lang.cls.php:142
msgid "Role Excludes"
msgstr "Excluir perfiles"

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Configuración de ajustes"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar."

#: tpl/img_optm/summary.tpl.php:117
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas."

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr "Enviar solicitud de optimización"

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr "Información de imágenes"

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr "Reducción total"

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr "Resumen de optimización"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimización de imágenes de LiteSpeed Cache"

#: src/admin-display.cls.php:123 src/gui.cls.php:612
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr "Optimización de imágenes"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "Exclusiones de diferido de JS"

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Por ejemplo, los %s pueden usarse para un marcador de posición transparente."

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr "Por defecto, se utilizará un marcador de posición de imagen gris %s."

#: tpl/page_optm/settings_media.tpl.php:46
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:167
#: tpl/page_optm/settings_tuning.tpl.php:188
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en código html."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:166
#: tpl/page_optm/settings_tuning.tpl.php:187
msgid "Filter %s is supported."
msgstr "El filtro %s es compatible."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Las imágenes listadas no se cargarán de forma retrasada."

#: src/lang.cls.php:149
msgid "Lazy Load Image Excludes"
msgstr "Exclusiones de carga retrasada de imágenes"

#: src/gui.cls.php:456
msgid "No optimization"
msgstr "Sin optimización"

#: tpl/page_optm/settings_tuning.tpl.php:202
msgid "Prevent any optimization of listed pages."
msgstr "Evitar cualquier optimización de las páginas listadas."

#: src/lang.cls.php:140
msgid "URI Excludes"
msgstr "URL excluidas"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Deja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador."

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr "Pueden utilizarse tanto URLs completas como cadenas parciales."

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr "Cargar iframes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:165
msgid "Lazy Load Iframes"
msgstr "Retrasar la carga de iframes"

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales."

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr "Cargar las imágenes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:148
msgid "Lazy Load Images"
msgstr "Retrasar la carga de imágenes"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr "Ajustes de medios"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "Por ejemplo, para %s, %s y %s puede utilizarse aquí."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s."

#: src/admin-display.cls.php:1133
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Para que coincida con el principio, añade %s al comienzo del artículo."

#: src/admin-display.cls.php:1131
msgid "For example, for %s, %s can be used here."
msgstr "Por ejemplo, para %s, %s puede utilizarse aquí."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Quizás más tarde"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "Ya he dejado una valoración"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Bienvenido a LiteSpeed"

#: src/lang.cls.php:138
msgid "Remove WordPress Emoji"
msgstr "Eliminar emojis de WordPress"

#: src/gui.cls.php:464
msgid "More settings"
msgstr "Más ajustes"

#: src/gui.cls.php:445
msgid "Private cache"
msgstr "Caché privada"

#: src/gui.cls.php:434
msgid "Non cacheable"
msgstr "No cacheable"

#: src/gui.cls.php:411
msgid "Mark this page as "
msgstr "Marcar esta página como "

#: src/gui.cls.php:403
msgid "Purge this page"
msgstr "Vaciar esta página"

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr "Deferir carga de JS"

#: tpl/page_optm/settings_tuning.tpl.php:148
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s."

#: src/lang.cls.php:133
msgid "Critical CSS Rules"
msgstr "Reglas de CSS críticas"

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:148
msgid "Load CSS Asynchronously"
msgstr "Cargar CSS asíncronamente"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Evita que cargue Google Fonts en todas las páginas."

#: src/lang.cls.php:132
msgid "Remove Google Fonts"
msgstr "Eliminar Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:170
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:79
msgid "Remove query strings from internal static resources."
msgstr "Eliminar cadenas de consulta de recursos estáticos internos."

#: src/lang.cls.php:130
msgid "Remove Query Strings"
msgstr "Eliminar query strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "También puedes activar la caché del navegador en la administración del servidor. <a %s>Aprende más acerca del ajuste de la caché de navegador de LiteSpeed</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos."

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr "Caché del navegador"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "etiquetas"

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr "Etiquetas a no cachear"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "Para excluir %1$s, insertar %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "categorías"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "Para evitar que los %s sean almacenados en la caché, introdúcelos aquí."

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr "Categorías a no cachear"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché."

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr "Cadenas de consulta a no cachear"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Las rutas que contengan estas cadenas no serán cacheadas."

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr "URIs a no cachear"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "Los registros serán enviados a %s."

#: src/admin-display.cls.php:1135 src/doc.cls.php:74
msgid "One per line."
msgstr "Una por línea."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas."

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr "URIs cacheadas privadamente"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Las rutas que contengan las siguientes cadenas no se servirán desde el CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Excluir ruta"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Esto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Incluir tipos de archivo"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Incluir JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Incluir CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Incluir imágenes"

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr "URL de la CDN a utilizar. Por ejemplo, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "URLs originales"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "Ajustes de CDN"

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:233 src/admin-display.cls.php:838
#: src/admin-display.cls.php:865 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:72 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:232 src/admin-display.cls.php:837
#: src/admin-display.cls.php:866 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:174
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:351
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minificar contenido HTML."

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr "Minificar HTML"

#: src/lang.cls.php:129
msgid "JS Excludes"
msgstr "Excluir JS"

#: src/data.upgrade.func.php:101 src/lang.cls.php:115
msgid "JS Combine"
msgstr "Combinar JS"

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr "Minificar JS"

#: src/lang.cls.php:128
msgid "CSS Excludes"
msgstr "Excluir CSS"

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr "Combinar CSS"

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr "Minificar CSS"

#: tpl/page_optm/entry.tpl.php:31
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Vaciar todo»."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Esto vaciará solo las entradas CSS/JS minimizadas o combinadas"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Vaciar error %s"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Optimizador de base de datos"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimizar todas las tablas en tu base de datos"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimizar tablas"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Borrar todas las opciones de datos transitorios"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Todos los datos transitorios"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Borrar opciones de datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Borrar todos los trackbacks y pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Borrar todos los comentarios en la papelera"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Comentarios enviados a la papelera"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Borrar todos los comentarios spam"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Comentarios spam"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Borrar todas las entradas y páginas en la papelera"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Entradas enviadas a la papelera"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Borrar todos los borradores guardados automáticamente"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Borradores automáticos"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Borrar todas las revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Limpiar todo"

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr "Optimizadas todas las tablas."

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr "Limpieza de todos los datos transitorios exitosa."

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr "Limpieza de datos transitorios expirados exitosa."

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Limpieza de trackbacks y pingbacks exitosa."

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr "Limpieza de comentarios en papelera exitosa."

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr "Limpieza de comentarios no deseados exitosa."

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr "Limpieza de páginas y entradas en papelera exitosa."

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr "Limpieza de borradores automáticos exitosa."

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr "Limpieza de revisiones de entradas exitosa."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Limpieza completa exitosa."

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr "TTL por defecto de la caché privada"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de \"editar\", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto."

#: src/lang.cls.php:181 tpl/page_optm/settings_css.tpl.php:110
#: tpl/page_optm/settings_css.tpl.php:220
msgid "Vary Group"
msgstr "Grupos de variación"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Almacena en la caché el bloque ESI del formulario de comentarios incluido."

#: src/lang.cls.php:179
msgid "Cache Comment Form"
msgstr "Cachear formulario de comentario"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Almacena en la caché el bloque ESI de la barra de administración incluida."

#: src/lang.cls.php:178
msgid "Cache Admin Bar"
msgstr "Cachear barra de administrador"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite \"hacer huecos\" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privada"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Pública"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Ajustes del vaciado"

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr "Cachear recursos de PHP"

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache móvil"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "El nivel avanzado registrará más detalles."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Básico"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado."

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr "Cachear página de acceso"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cachear peticiones realizadas por llamadas de la API REST de WordPress."

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr "Cachear API REST"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)"

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr "Cachear comentaristas"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)"

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr "Cachear usuarios con sesión iniciada"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Ajustes de control de caché"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excluir"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:142
msgid "Purge"
msgstr "Vaciar"

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Caché"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Se ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (<a %3$s>Más Información</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "La hora actual del servidor es %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Especifica la hora para vaciar la lista «%s»."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Tanto %1$s como %2$s son aceptables."

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Hora de vaciado programado"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción «%s»."

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "URLs de vaciado programado"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Registra los valores solicitados de las cookies."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Límite de tamaño de archivo de registro"

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s"

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr "No se puede escribir el archivo %s."

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr "No se puede leer el archivo %s."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Colapsar cadenas de peticiones"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Registrar cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "Ajustes de ESI"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 implica no cachear."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valor recomendado: 28800 segundos (8 horas)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "TTL caché de Widgets:"

#: src/lang.cls.php:177 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Activar ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Ver <a %s>Introducción para activar el Crawler</a> para información detallada."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Sitemap personalizado"

#: tpl/toolbox/purge.tpl.php:244
msgid "Purge pages by relative or full URL."
msgstr "Vaciar páginas por URL completa o relativa."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La característica de crawler no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:165
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "ADVERTENCIA"

#: tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Última indexación:</b> %s elemento(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "La siguiente indexación de sitemap completa empezará a las"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Error al escribir a %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "El directorio no es escribible: %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "No se puede crear el directorio: %1$s. Error: %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "El directorio no existe: %s"

#: src/core.cls.php:296
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Solicitado el vaciado de la lista al servidor web LiteSpeed."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Por favor, visita la página de <a %s>Información</a> sobre como probar la caché."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Límite de carga del servidor"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Especifica el número de hilos a utilizar durante la indexación."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Intervalo de indexación"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Intervalo entre ejecuciones"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Especifica un tiempo en segundos para la duración del intervalo de indexación."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microsegundos"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Y otro WordPress instalado (NO MULTISITIO) en %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Ajustes de la caché de la red de caché de LiteSpeed"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Selecciona debajo las opciones de «Vaciar por»."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "CDN de la caché de LiteSpeed"

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr "Archivo meta del crawler aún no generado"

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr "Mostrar estado del Crawler"

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr "Ver estado del Crawler"

#: tpl/crawler/summary.tpl.php:191
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema."

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Ejecutar manualmente"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reestablecer posición"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Frecuencia de ejecución"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Nombre del Cron"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Cron del Crawler"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minuto"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutos"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hora"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d horas"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generado en %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "Crawler de LiteSpeed Cache"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Hilos"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Duración de la ejecución"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Retraso"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>."

#: src/admin-display.cls.php:129 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:626
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Solicitado el vaciado de todas las páginas al servidor web LiteSpeed."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Todas las páginas con widget de Entradas recientes"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Páginas"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Esto solo vaciará las páginas"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Vaciar páginas"

#: thirdparty/woocommerce.content.tpl.php:78
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "Por ejemplo, si la página de inicio de esta web se encuentra al %1$s, la página de la tienda puede encontrarse al %2$s."

#: src/css.cls.php:533
msgid "Cancel"
msgstr "Cancelar"

#: tpl/crawler/summary.tpl.php:125
msgid "Activate"
msgstr "Activar"

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Dirección de correo electrónico"

#: tpl/general/settings.tpl.php:100
msgid "Warning"
msgstr "Advertencia"

#: src/gui.cls.php:754
msgid "Install Now"
msgstr "Instalar ahora"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "¡Se ha vaciado la URL!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "¡Se ha vaciado el blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "¡Se ha vaciado todo!"

#: src/purge.cls.php:645
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Solicitado el vaciado de las páginas de error al servidor web LiteSpeed."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Si no, por favor verifica el ajuste en la <a href=\"%1$s\">pestaña Avanzado</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "El ajuste de administrador de red puede ser modificado aquí."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Recomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero."

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by post ID."
msgstr "Vaciar páginas por ID de entrada."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Vacía las entradas de caché de LiteSpeed creadas por este plugin"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s error pages"
msgstr "Purgar las páginas de error %s"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Esto vaciará solo la página principal"

#: tpl/toolbox/purge.tpl.php:239
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s."

#: tpl/toolbox/purge.tpl.php:245
msgid "e.g. Use %s or %s."
msgstr "ej: Usa %s o %s."

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s."

#: tpl/toolbox/purge.tpl.php:133
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo»."

#: src/core.cls.php:291
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Solicitado el vaciado de todo al servidor web LiteSpeed."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Usar configuración del sitio principal"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "Esto desactivará la página de ajustes en todos los subsitios."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Marca esta opción para usar la configuración del sitio principal para todos los subsitios."

#: src/admin-display.cls.php:706 src/admin-display.cls.php:711
msgid "Save Changes"
msgstr "Guardar cambios"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios."

#: tpl/toolbox/purge.tpl.php:125
msgid "Empty Entire Cache"
msgstr "Vaciar la caché entera"

#: tpl/toolbox/purge.tpl.php:127
msgid "This action should only be used if things are cached incorrectly."
msgstr "Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente."

#: tpl/toolbox/purge.tpl.php:126
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "Esto puede causar una alta carga en el servidor."

#: tpl/toolbox/purge.tpl.php:131
msgid "This will clear EVERYTHING inside the cache."
msgstr "Esto eliminará TODO dentro de la caché."

#: src/gui.cls.php:579
msgid "LiteSpeed Cache Purge All"
msgstr "Vaciar toda la caché de LiteSpeed"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si no quieres la aceleración de litespeed, puedes desactivar este plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Crear una entrada, asegurarse que la página principal está actualizada."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visitar el sitio sin la sesión iniciada."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Ejemplos de pruebas incluyen:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Este mensaje indica que el plugin fue instalado por el administrador del servidor."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "¡El plugin LiteSpeed Cache está instalado!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Registro de depuración"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Solo la IP del administrador"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "El informe de entorno contiene información detallada sobre la configuración de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existence of this cookie."
msgstr "El servidor determinará si el usuario está conectado en base a la existencia de esta cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr "Nota"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Después de que la caché funcione en general, por favor prueba el carrito."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado."

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr "Vaciar todo al actualizar"

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr "Usar TTL de la página principal para la página de tienda"

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr "Intervalo de actualización de producto"

#: thirdparty/woocommerce.content.tpl.php:77
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Marcar esta opción forzará a la página de tienda a usar el ajuste de TTL de la página principal."

#: thirdparty/woocommerce.content.tpl.php:64
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas."

#: thirdparty/woocommerce.content.tpl.php:51
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Vaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "No vaciar las categorías al cambiar la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr "Vaciar los productos solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr "Vaciar productos y categorías solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr "Vaciar las categorías solo cuando el estado del inventario cambie."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr "Vaciar los productos con los cambios de cantidad o estado del inventario."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr "El htaccess no coincide con la opción de configuración."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si esto se fija en un número inferior a 30, los feeds no serán cacheados."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Especifica por cuanto tiempo, en segundos, se cachean los feeds."

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr "TTL por defecto del Feed"

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr "Error al obtener contenido del archivo %s."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Algunos temas y plugins añaden recursos mediante una petición PHP."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "El favicon.ico es solicitado en la mayoría de las páginas."

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr "Cachear favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Desactivar esta opción puede afectar negativamente al rendimiento."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de acceso no válida. Encontrados caracteres no válidos."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden."

#: src/error.cls.php:116
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de acceso no válida. Por favor, comprueba el archivo %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Hay un WordPress instalado para %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Ejemplo de uso:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "La cookie aquí establecida será usada por esta instalación de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "La cookie de acceso por defecto es %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "DEBE SER DIFERENTE DE OTRAS APLICACIONES WEB."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Espacios no permitidos y sensible a mayúsculas."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SINTAXIS: alfanumérico y \"_\"."

#: src/lang.cls.php:187
msgid "Login Cookie"
msgstr "Cookie de acceso"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "Aquí se puede encontrar más información sobre los comandos disponibles."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Contenidos actuales de %s"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Avanzado"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Ajustes avanzados"

#: tpl/toolbox/purge.tpl.php:258
msgid "Purge List"
msgstr "Vaciar lista"

#: tpl/toolbox/purge.tpl.php:177
msgid "Purge By..."
msgstr "Vaciar por..."

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:224
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:218
msgid "Tag"
msgstr "Etiqueta"

#: tpl/toolbox/purge.tpl.php:212
msgid "Post ID"
msgstr "ID de entrada"

#: tpl/toolbox/purge.tpl.php:206
msgid "Category"
msgstr "Categoría"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión."

#: src/purge.cls.php:730
msgid "Purge url %s"
msgstr "Vaciar la URL %s"

#: src/purge.cls.php:699
msgid "Purge tag %s"
msgstr "Vaciar la etiqueta %s"

#: src/purge.cls.php:672
msgid "Purge category %s"
msgstr "Vaciar la categoría %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr "AVISO"

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr "Este ajuste editará el archivo .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr "Ver el archivo «.htaccess» de LiteSpeed Cache"

#: src/error.cls.php:120
msgid "Failed to back up %s file, aborted changes."
msgstr "Fallo al hacer copia de seguridad del archivo %s, cambios cancelados."

#: src/lang.cls.php:185
msgid "Do Not Cache Cookies"
msgstr "Cookies a no cachear"

#: src/lang.cls.php:186
msgid "Do Not Cache User Agents"
msgstr "User Agents a no cachear"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Habilitar caché de red"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "AVISO:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Otras opciones serán ignoradas."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio."

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "Lista de User Agents móviles"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "No se puede escribir el archivo %s."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr "Ajustes de JS"

#: src/gui.cls.php:595 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Gestionar"

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr "TTL por defecto de la Página Principal"

#: src/purge.cls.php:613
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Solicitado al servidor web LiteSpeed el vaciado de la página de inicio."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Vaciar la página de inicio"

#: tpl/page_optm/settings_localization.tpl.php:127
#: tpl/toolbox/beta_test.tpl.php:30
msgid "Example"
msgstr "Ejemplo"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "Todas las etiquetas son cacheadas por defecto."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "Todas las categorías son cacheadas por defecto."

#: src/admin-display.cls.php:1134
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Para coincidencias exactas, añadir %s al final de la URL."

#: src/admin-display.cls.php:1130
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Las URLs serán comparadas con la variable REQUEST_URI del servidor."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notas"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Usar ajuste de administrador de red"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Desactivar"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activar LiteSpeed Cache para WordPress aquí activa la caché para la red."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Desactivado"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Activado"

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr "No cachear perfiles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Se muestra en el registro de depuración de WordPress."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Nivel de depuración"

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr "Nota"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Archivo de término (incluye categoría, etiqueta y taxonomía)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Archivo diario"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Archivo mensual"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Archivo anual"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Archivo de tipo de contenido"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Archivo del Autor"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Página de Inicio"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Página de inicio"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Todas las páginas"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Selecciona que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadas"

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Reglas de vaciado automático para publicación y actualización"

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr "TTL por defecto de la caché pública"

#: src/admin-display.cls.php:949 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "segundos"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "IPs de administrador"

#: src/admin-display.cls.php:117
msgid "General"
msgstr "Opciones generales"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "Configuración de Caché de LiteSpeed"

#: src/purge.cls.php:211
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Solicitado al servidor web LiteSpeed el vaciado de todas las entradas de LSCache."

#: src/gui.cls.php:471 src/gui.cls.php:479 src/gui.cls.php:487
#: src/gui.cls.php:496 src/gui.cls.php:506 src/gui.cls.php:516
#: src/gui.cls.php:526 src/gui.cls.php:535 src/gui.cls.php:545
#: src/gui.cls.php:555 src/gui.cls.php:621 src/gui.cls.php:629
#: src/gui.cls.php:637 src/gui.cls.php:646 src/gui.cls.php:656
#: src/gui.cls.php:666 src/gui.cls.php:676 src/gui.cls.php:686
#: src/gui.cls.php:695 src/gui.cls.php:705 src/gui.cls.php:715
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:37
#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
#: tpl/toolbox/purge.tpl.php:79 tpl/toolbox/purge.tpl.php:88
#: tpl/toolbox/purge.tpl.php:97 tpl/toolbox/purge.tpl.php:106
#: tpl/toolbox/purge.tpl.php:115
msgid "Purge All"
msgstr "Purgar todo"

#: src/admin-display.cls.php:281 src/gui.cls.php:603
msgid "Settings"
msgstr "Ajustes"PKB�}TD�A��~��litespeed-cache-en_ZA.poUT	�VCb�VCbux�����=ks�F���+&�֮)��^�f��r�-Ŕ���V�����5�A�����<�(ˎw�*kt�<��=��ݤ<�"�K35e�Q1�q�z���8"dg<�x2�$�1�Y�R	��'L��Y<�d6g�Ǫ���t�ʀ?��{v3��J��e��rR���C��g|!X$g��݇���L�Yd3��ÿB��w�W�7�Vf0��9|��
����`���`�tt�t������a���W�z���?e��~z��\�y�f��\|�w����y���Ƿ7���X\ߩH{��@�2�=e����eʣޅJ�S'�����L��ǘ}�#�@��=�Hy�ҧ�y���Td��~����Q2�!
|��Y����jL�����e�fu�5FX�|SO�ݐgs����i؇G�d�<=8�7����^r�:H�]$§ݝ��=
`[<Ξ��ihp�JE�q6]Z������w�?�y��8��+�B��7���ttd��U��Ǭ�c�㱇����2�GC�3W,KD �K:��f������u��A���T��fp����9{�!ogE��8ۛB˰��
;:<1���)/���1+/��
d{~�5�p���
��k�r!�w �5���"v��Dz���T�}T�b�_�}^�yR� 7
y�{�:�w� rA8�������t⼵��:E��(z�1�;|	�*%��U��$���C��Jw��gQ�H�` \b�2�h�Y����k�H�u�ed�-����a=��y'����e�s1a��v�T@��B�n�o����`pP�9�0!-�[(R��-B���J�h�
�*&�!P�I3���D�r`xĐX]��T*��k�䓺���NJh:�B!���H�#:U,,脤 ���>���?D3���� -Vv��,v>����U-I�,��ufB�լ�C�i��lXd���	8�>����HcxN����b%���Z�;���$d�%`����T��)ٟDJ�%[u��b��`�er[�#R����f���G����̃ӝ����o�\:�Fҳ��z��m۝��������Ӭ����NB�G���S� �Y&2���W/-w*���؃��bfff�d`^�Xk��ֽ߀kv/>��G�*����[у��*�Y7�0A�v�r�s0�@����񒱅�.xү���6%7��=�zz������繈K{:#쑽��[PgYg,r4"@���+��LS�<l.�l�N�J!*�L��P����l.��?��$��7��k5ZF8��W+�ڕ���b<I`{�4��^������k��7H�6��=����#�R`�i���<\OO8��}5mX�yҁ� ����8��I<�	F0B�`��%y
(�d�
�h��E��CV�*R�K��8�?
`-�/x�CJF砃�@c^\�����߄܎���v��?��A7H���vm��lA�OUS��%�"R	Y�q�"�Q�I���jş� >�t��`��2��B���A�q�::����,_�Yg��K��Y��FrMfX�0�g%,��;	"2iε�_�l7с�~����6,�<_DN��
Vz8� �B�bY�.C�ڣ�z����B��,g�!d�X9g%xI���|����u���
_�zctO��N{Y�
��d�YM�Q晵�5N��
�^Li8rr@fi�M
X��@��F�p����!��@\}gG��8�L�b9��������(�Eo7�K*Mq�pt�/)j$��H\�
8�\��Ivge�����q�<���q��!A 4���p��t���Z��̱$���2�Bq���:p�Gaś����a�_�^���H!��訂������� �9����uF��ؤbb�\|�-�`�SY��: �M�y�6�-.�\-8��Q�������ԍ\p���q��G�.>�)�1[Z�Y�
Uex�J\_Az��'�qdc�J���^X(Ɨ@���J<�+'�����j�����1��/�������f��x�ZE�D蠢�n�5�~_w$��ʽS�}���L��d�603��w�J�f�ro‘��q�<�pש4�_R��".$"'K)�kMfM�@-&O0�F��V'PM�w2��ΑB�c���)�v��N� CS…!M
;��6�M�%�3�*���0���d�]a�	e��㩜�v�<�H%��%��K$�Å{�`�嵋V�#&�Ɓ�<c�)�
��
��g���+�N~�@0������7��Ӟ�u���
2m���ز��))Y_M�w�h�*��Só��$��v�!�V0�1:��<]�J3�$o1�������WT�7���Ƴ��%��*�o`�1	��_f��I"L���F�c��,��g��<#;d��KX,�	��d% E����7o��F�Z�p�V�����)�ұ��F����xk��,��u�V�>
X�-[P�V���
�L#Oј|AP�ͯ=C6GgW>%�qpT��ť�Ѳ�sk�.�ݔ �IT��FM2���+!�}������%���&�DG]��Va���;1���,r�з�(Ţ��k�Q�}>G�-N�Z&|�}ɍV|=����N����m�t�wj��RqH(3�2���
�f��*k�Rʸ�����I��p�k0/Z�o��ܷ�J�­��W���
r�s	���+�?���e��nV,ܯ�<�a�qAr�]�3]��%"߶��G�T'�t����|dyT{(�<�|m����-7t]I�nJ��b�W��c�=�<�T�{��%2��8r�i����b������h��R���^_��U?\�2l3���;|�b���i�䐞a�nqPZ�>X����;��T�����7�lpb��瑚�� Ŀ�%ۥ�� l�P�0�Ϩ"Uˌ܂�+�hZbѕ�|R��o�`ѿ��y������&]�j��#�o_�$��ܥ�wp�G�F'^��m��a`�܊j�	��7��6.��
�A�������1�Q�]�c��E$��[��"GE�� ���I�P|��r
h��o�.�L�&��B�(���j��

��A:��L�J�hZā�W�lA�/6�C��kw��V��'E�5����hǹ�L��$*�2
�|�{���4�r��9c��wd�ͅ��z��ṞQ���cZ�8��g�K6�T�!�3͈7J{R���B銵k"�+!Xf�ݾ2��Y�ʙD8�_g�]��U�l����d�nuء�z�d�A���}6�p$u����$�*y��ӊI�W2��,1{���e*����:+��kF��gja*ta�'��>�VkJM�g�
76K���"��r�>8���wtc�ֺ%�"������$
���e��0ĩ��?���W�М��25�������ԕ)�^�{��!�b̞���m���p��񡢂k`m���e�<m���9�+^�?��%&��e9H=��8b
l�ہ�`���^��6�@Ӊ���k���|�9�-��<�u�Ww�i'�|~����n>��A/����ހ�j.��o��u��R12!&Xm]h�c�W-R�H�?ԑZw�D]R2��rv���Џz�*�K�Ñ"V�l�B���G$���x�t	Fȗ�H�'�2Ԇ*��:Yrm�����&�D8�հ���Mx��쭱��&��}��aC�A2�Ň��*�w�ּ��g�Ɯ���}��d���Hh�A�Q�Q�2�"�t���T\Iq�<<~D��e�0��{�˱�K����2O`?,K1:NX��ˊĦ~�����ȭ�k�!�CD) r$�k�|>�6<�gXɑ5��ϷkԠ˞+0�L��˩�e�w/���x_���6AD^�����m�)��e|��P�5[I�1�H�$�EU�U�B�����T�}��4�n��ml
��Z��qräV��L4�[ؽ���}�ӥ������!`�����J�7�n��Z��2�1Y].Z`�ˎ;*��%4��!*�֙��Z���ut+dl*�Y�J�����7E�;Ls��U�l!�SQg�i��
V���[�J!�W8�l��t�;/W(�K�)�g[��8�{{�q��'���o�}��k�1����6]
��+����G��g]�J����Օ9�WT�*�k���]W�E����{A>����`����+�N�}:����3�C!ZK�6h�Wa�>����"��nܯ�;����{xo��/�;y�Y1ş{e�w\�[�XшO�̉	ԱQ�]�,����s�7u��/
�����6�d]z�{߆`�5�Q�b�S�|�H�&SN
����&v}�{F��
U����$�J�m䰑_=e)�����ۑ뤏XPI3�6]@N��n��^O��c3D:k˓be�޲�2��	�	�zǧ�����x�I��0�.K瀺��s��4�*�[�As^�'2�Dƾp*=�]./z��tAS�k9����I�i5d��XŁ>�[Z�[ܵ�׃�h���?��]�Ю㻩��f�h�Zj�l�n��u{�+PК����k�{��&H[X�u
�ǡ5���>	VS��p��J�NY!�ۅʈYU;�6�,~N��C�h`���K�.��D�3U�5aЎ�6�_��KR,��[]�2���a�آ��_|�X�r���zH.����h����1*�ſ�aO-5�a$�_�<Iҽ�$]���R��s+�h���2�*�#,`�����ۦ&ʖ�ګ[�_�":�(tI��;-���KO��N��k��Lrv�}s��ms��xT�e	�X@}��UYf�
v�7(u����0+&����,x��9t�߄�x�����*l�b����6���>;�PX�7癶O��
�h��dډ�,wX����Pd�bM�`T�f��+��ʻ
�S�]!
W��
��m�Ί,G�+�i�
CZn�<�x�e����@��˨�u����Bzy���g�'�h=�/{�i�æ��{9��U}5���McxQp����}m�Ѳ~J�&���psX�k�S�:���13i!���%
/�Ev��26JgJ��yGm=գ�t�jn%�7��]{ݾo����]z�L��)���2D�mPe{��#���t���@�ڎ=��
�"~��(*���XW����W�R}��hr8� s�M���̛���.gSQ�GG
��74�)(d���ŬܧZ'���ڗt_�ͼXLb.#����m�Z؋��0���/g1����W���{4�)�nk���LC�+�$�.D�D0k�+�M�p�PT�V�rW�)�QL-T߈��oZ�����"A�f�YS`ͅ�&�P;��dP����v*W!R*�����^��O:������Z�h���zB`���S��FiprT�-#�z�x���Gn�'�D>�&�}�f�D��W[�Z�b�$������.s��^80r����܁��_}�����
c�X!�n��_c��q��lt��eZ֞�q[��[�D�%�f'�ҭK�k��_���.��U�Ź��#t�z���`��o=��?��,�c�g���)x;�E^1�
�ړ1�s&��>xԵlOU�V�^u�_���kWHV��*Vh-!�ops*�\]�^M�o�&��5
���;?S��(O�̐&S��<���#�yZ��@4J\���L7r!T�W=�ʋ�ݧ�`�G��`^�~�#��/;SD�ˈ-��֗8Z�p���g;x�3��U���rp�L� -{��Z���!6��~0D:s�J�֚��?�����YR/�EW�iSk�X?j=W3�����@��̝<��4m#;\�S/.pK�Z࿫��
���̵�5y��#7�{G�D�T��kK�h�7uB��Ť�
LF{^
�-FAPE� ��,�)�[���vߕ�a�� ����w�t|�$ͽ�TԔ�!�Z�w�O:��
n&�iQ];Z$����N����'�..�C���.�yi+c���'�~��z���K����w�'Q��J���j�_X�������عL)��l�}�ψ�C��q��*�RCOY��X��at-S���M�o�o(��lg{`���������-†Z�`W~jg�	{Q�~BWU���`�ҁ��]-d��qw̬�{]	"o�7���n�N��������s4~�e��e�t�{��a����76OZ`�w�)�X���
ןױ�V�'��
x���굾��S����B�/b��������T��{ٜ@(m?<�X)����l�z�;�o����)�]��E;����<i�5��u#��'�Vɫ]l����rg��nm7*����˚5�f@�� �ƸaF��ޛ&Ǒ$k������WL�=��9�d&���0��%E �������(�}����9Ĝ�]`�0�j���f��Y�R"� lQ[�5]>�X-ޥa򚕑:,ZR%ar�6�|jt��F��;ދH�9�t�����u�"ڟ�H��\�J�;�]{xJ=���E��X�)�L�!i�2���\P�(�ɴ5w��ޔ�g"Z�F�(��b���D���b	�
�6�͊��3ᖽ�Vٱ�2d�{�"��1�/5|]��dR<y1��6��e�8�T��)Qno��M�DZ�DǶ*�keu��w�rp��F������W��X �$=���z	=:�RB(�|��5~�xja�&�a�
��%`����QD�BU�J�)�媬�5ġX7�E��g�w-��nM/�ƾ%�b�}^�aQ.R�G/B��M��W+�_�ZX5��ZƃG6
��9æ6�J�R��ޕPr�W�'�>P�����r�M;�a9e����Œ��p��kh0t
������RIv#���v)�F������Jkh�zc��fj%
��������=��l�������ɲi�|Y��%��Dh�â\�!�.of;e���A'S��V�����du�FQ8���5?�����@��d��ز������sQ�
��6B�(>�窾��`UХn���]M�� .�6��@0xh��:��	E�?�7�~��~��)Y�Tq�`/_��w�_����]K�`�z�
�Q�d
R�o�E��/l�^�ž.4��\�?�-�p+�-��\������I��X}�ؼoR�����O􍛍H�󎨸hD��J�K�m���]��۷�&Mk�25��J�\HR|
�u�)�H�|j��@v���L�ґ���V�0{t�i�ӏO�{g8	D�j�î�"*�e��+W��
(P���~�ln�j�Zv~���ˡ,Ш�����r�-"0Hp�@	��U����2��,�%ACO���)��x�����PW�/����{�� �
�Fd�{s��@�u���˵G����F� O#mFH(��gd�q�+�lE�;;�MS�z�f>�'�Rn�/�s�cq]����'�F�x.
�{���]w����
���K)ޡ+�{!��/w������x�%��k�s!8%R��b����9ֲ�k	s�Mq�#��U�L�K�B�ƒf@K?��R��L�]���/�k�ƭڀR�1�H@g����x� 	�g�8�p��1~�R��\���}Q��:��JpN��Gl#i��)�V���c���} o���>��D��%�Y�����	�Nw�~��Q�	u�G�|r����8��~��m,���A��C���Ic���L�1��@v`�m�4��c��C@���k8(�
�U����<��T`�x���ݞ���%6�G.�h
%�[��	��Ա6�l�Z�h����y���IMZ��^��%•h}3�˛{�x�k�`_C�`��_7�Q.o?����F�))�1n��4&p� �C���zO�u���U��ҫq!��C�e
��`jx穖��Pi+��Jeb���]�5%I����"<.%��>���ݐsY���6+o85��.�wf��xl7�z6h��!���P���)�녇�$<Jj��}�l
��/�[[s-ص�落K����6‡�ŭ�p�ͧ<��#�E�g���zVܝbcR�<*�������,�r@�ݲc�3{�M�������X�~���8�79�ծ\@t]���g��s���g�O�1Y�v�E�i<���m@&�w��W
Z�:�@KBS.ߔ���JQ^]o9�Ċ}24
�+�L\�������7i1}>�1���Z,	[)��Ҋ�79�66��Ñ*�k6
��K�te'F����^�G�X�K %N
'ߒSR����y�pOO�K��C��ح��ֺ.�O?�?o;�x�g�!;�2P-;�,D�U�{��5��V$^^bi��Z���u2���D�휊:7	`n��|���H��NtK?�i�7
\v,��k
�E���;MY�4�w��%�m'��l�[Q�!2���o��oXU�j�M��M�I�[�)y`�'Z�aT�*^5�_m�n9���&�q�Σ��iD�b���u�x�$B/}(�~b�5�(�'#��t��3֗g�'t?*���<�4WA��/g�;�)�\��qA�d�秹��`��L��l+ߩ?��D���%�����˼i���d�T7�W�)u��?�
;
�����d:u^�:�\�L�}	EC0�B�i'p0�Cµ
k�M�:,
��,���k|�fB��x��Fjwa��
�8��������K,����d����;r�t��q�	k]�����b8�/qA�/�u�Fjo4ǡH����7��.�-T��� ��po!�N@�+O]�����K~�H���A���5�����9��+v>���s�n{�(�x6���&c9��際�E�M	*�ŷK��
h�^*�	⇒�wf7�KZ����U�1�p��y ;���73�k��M!��d퓴b�+��MO%'�$�E���L.L{�i)Ć��o�f��*���Z�e�'�J��o�Rυt�LfT�yrv�����J$cԴ��`��~�g��C��OA����B�{�L��`����N���8�A�ǡ�5��+Ϯ���c�BY�m{�5�Z�G����{ղKQg6:3��FA��ނ[���T��ꑂu�P݄���7�U	6��[y	�{�v-닞>�Uj�?��Z�q���������w�3��0�tU�+��U�?��壌�vy	f�6�otS\p�@o��K#�_q�V���V�����|�$|����2��8�ȍ�8�����dM_v�}����&�
�SƳ�(���Q�H�8��v����5�()o�`j=��qz�I�y�ZD&\�:ȫ�����5�:����7����x�n$�uX�wTr�xO�y�Q����v�BPe����lt�GA[�h{�U�n�S4)
�G���#T��kB��_�ۜ8��YQ�S?Nx҃���p����	f�
�V�
!n�pj��~Wq;~���
@�� d/���D0����Ԋ�ғ0I����m�F\�tF�hn��ʸeÇj>��>��'�L�K_�ɐ@r�]x���!d�l�+�;շ6�����h���;{-�N�+�i��Ht��I�~��Pk7�^d�o`��� 8(����~�d<��G����;}��R�^�r^:
h�"�R�N�
0��*n��@�p��.�����z+�����FV7�~�d| �&�}��z�;Jb0�)1�F^ո���O�M8:�Ƨ�a��ñ^�Ӑ���t2M��[�mIy��^�L4��׹*|��fآ�)D�>'9N�._66�H��"�49!�/����
�>h�sU׋��]��@�doo�O�fEue��P%�-~;�*TX�UU�|a��vV��V5�{�^��)X{��]��ȣ�w��Zh,F:�F��f�G�Fg��L��Ȣ#M�uƱ��x�rd<��⫔����T�lp� ��2�wʑtC���9�;�ñzJD[Yn�ơO��\�G��F�o��J��c�mF���ظ�(�58����D�E�2n͞D�ҷ�ei��iӬh�z��:F�=��G��N����/9�%c��[n�$oz��5��@��<W�:��0���4l2w8���1j�Hwޡ&l	"X}����EP�K��3�->H��#�!91��W��u��d'�#rH����٬M+2i�d��O��"�nl�~ns:7�f���4�\K|����\k��_S�N<��TH�,Ӣ�ށj|��>>����uvо-b�h<i�Ig�[B�A�!�qO;=B����?��H~��ĉ`�D>�Jۀ��2��i�Sf$|c�	2��n-������`��3�I�;}�1��Cf�TLl��p��Ͷ��K.�p�{��:[���y��V�
��N�T�j{M�XN��-�_/ڿ��?��"1��063�{&� �d�<��b�b]�b]�boa^�Ipr��Ě��V��K�"_����j4�w0��l`"��#
j�|k�g�C��硴��ܜر8��J^�/߱P-����fr��4�mD:=rC��w�̘h�.���xG/�+��HK�e���Gړ��g�]m��*�48%w
Y')e�M̘���!�P�ZՋ��0^�6[�Hƙ���CՄ��mΑ�z�2bI�]Uc�\�M-�{��\B�dt%�>d��r.�|0J4HH�J	�1�j���8�F���iހ)Gq��B7�ȡ">��
K��Xm$����>Q�u���L�n�7����}<0@>Oޟ�!�4c�u�Ö�bk�x�#3�#�����&HLo�o��"[�C�p\�s�f�r�h�~|@��A
�A�pǢM��`�b�)t�@�:��S|�m7�Nd�Gi":��8�?�r
`�c��;�͋wO}���#{{�/.0A�5/mvH��n��T�û���'@���r��z?=ǟ��^7�5s�d�:%`fI�)��/Lhd��•�{Bq��	�
|� �O]e�W�#��Ƕt�ڑ�g-q/'�a1�#3h�}�~����[���tbp��_�޾�
vn��㖝Z69����=���S�`�x
�?~x�"���ɞ�P��[�yH�s���v�yxr̘�j�A���+#V�6i)P��Y��N� ��mE`%dd/�p5C�l{@�.��C�mLd�A��w-,]"'b=Y�p�u�:����`��u�Y�����M]�+�f^��1:������D)϶���5���:xya�Ӭ�<6�7㱤���_�J:y�M{���`�D�
��ꎦ��v0���	�E����K-D)De�SG�]r����>Z:�}�e�N�Ѡ5{jY5�O"vz0v4雧�B�S7;\�ܙx�bᦆژE�OG[��78s��k'QRhۭԄ+���'v�`(��lWq(�b�ڇ����S���\x�+���ڲJ�w}*.N�ۅ�D��!����؜j�w
n�j;r�-`�DP'p�ޟ�;ў����g�- �\�Z���
��\��!���p?5�m�n��ޏє��H%�!�H��5lg�S��<��dAϘxɖ�sJf�\�#H���͗��9�5<v����_�ë�gݬ��F~j��8DP�h�x�?{ &|yz}��q����n��^�'*eE�B5X�O�oXw�;ˈ�55J8>��c�u��0� \�K�?;���!gz�JS�F���*�1=@G��0t�ä����Q�f�^��b^�@Ձ�Ta�N�ؖ"�je�!wC���Z�:�n+��;g_�ZD��DЖS�/�d��";?�}F�>�
�Ϙ�m���ד5H���7�57M��*δGZ�V���.��a�r�4u�&�c��e´����AGL}�̬��)ާ�:kr<_�`O�@�1��q��R�Z/c_��AY|[��J
�0�b9#���a��v����2≉�h�y��D��a��#D56���
D
��(���?n�7`L�g�B��C�.fc���}�8�6�P)ЃA�ݚ��f��&����o�։�� �j�����Λ��=������Ⱦ M�Q6���z�6�����^^��M
q(^r5A�g�S��	�Ե�W1$}lo6�C������{Wo�KК�W���%��sdX9����-v��"��ٍ}xuz槭s���9.4(�j2S�$to<�C[m�V��nh�S3��S�R��Kn�@\��Md��b����c��r%InƢe�ZĎ��
����!�fO�
�YC�X=Я��9Пb/^gl��rv�>�]"D�7B�X6�c=�B��]vv�b��l��[3m���>n3�q��x�f���YH��ǐ�,iC�m���O+HͯP���36���M�ѼZ��o���p�SD�Z���K]��������%��M&�ԙwv�J�-�[<�"݊��wj�׬X��m�s4�#��(8����Q��d�ɐ�5���~���̗::���p�2�ӣ��{��Ч����Ҍe#�J�Q��&g;�8*������I����J,��c��`BA��Wk�g�l#�q�r6��[_��1�Alpis����t3$�N(@��I�Ґ,S�XS\<�+#��N��@�G{��l0*�p�=����9�����z�%��}X���}��~._�J���`'m���~��i]h�-�D�)�
UR��Ӫ�?��g�F�@[Ff��J?dy�o���e�
�﬏ᏇӟQ�H�sɢ�NL�	C�w�tr���O�7� �%�J�D6��`��/g6}�!v��(���ψ{��Q��<��~�P5l�6� ;�F�!�|�NE�[���~K7;��w9ۧ4��~�G�.\�F~j)�+��'�~����8w
�sOl�K���bn�CC�o6�I+e������pb^�����(��)f��i?MVG��sFoa�D�O�J-��@K�9a9E�y��j�P�v����3�д%m5�[�ܱ�;������EB��0{d�Fj���
�g3c�����z/����O��*�LY�"�7���������Dzzg�Θ{��.eO�pov��F�+lS�l��ź���m�>ӯ"�W�[�i{3#�3�?]�� P���[��ఄ'��`t�-��Ж�R72��>������p�!A4�q�"�ʼn��`�ɲ
�
�ji�z�<ϖ�3
.L�8bv{DáqȾ��k���.Q�E�{˼v�⊃����B�&����뽍�Q@�.@TC3�[��\A���X�2��v��r�v\��E!����ho�Ů���
ul]3�6c?���t�}�6B4�q��-�t�*[J�E��ӭGk@f���0��
7�!!Qh�!Dg&� ɢ�13�YTB���GLHpt��N����P9�ud!b�.�]���:��F�4Tz.�<�M�V%м6q?���j	�>��`�B*of��P��w���l��/Y;ԩ���	r�%�`�v��+w߅�4����[�]v��7?��$�p��>Q���B_����g3e�l�K!7�D%"EU�Pb����[�}�Z��1�Q�J��?��x��H�ss���4��H�*��l5ȃP�][���UL�~�-����m�u���Z���9X�m�2�@�;L�K��N<+�t��C��{r��1���@�X����ev	?�벨�?	�1����m�-�K�-��T�:5T�zr?J����_��}
~��<>idXs���S%wgu�s�@�������ߢ�چb���mn��3uT�K�ܴ���j��W��w48��Gs �����C�sH���pگ�������
�y]o/˯|�6n+`�t�[[2��������qS������ή6 +�Y?�;86��ðH��=ݭ�FvV�+�~%M�ك&o��z�XBm�R�Y�.\�WW����ڈ0�h�"��~���M�ض�_`�t��r��E���j����П�k�O��]��b�Y�)�:{���-Ԝ?G��@&ܙ��W�mm�B��Hg��*�Y��B�4Y���$e�~baK<N��p�H��8攩�S$(	�1U�波)=�Dg\R ���[r��W��}U1�c��0A��i
YA��^�3�Gj��O���L;����g41���`[�?}6��/��{9%H�ܐ����q,I�n��A�w���$�7bN�K#Ć��p�O��zԟ�[{�5,/���^��A��kS�1�kř�$m���X�9r������
�s��B(G�l}� ����röG���E!������VI�d�W�~�����=Ak8CP�ͷo`~΁�"�^�$c)���.���'��J۰s8H���Y"�"��d���׊��p�&�5p��N�ޮa�*a���#=~K>��<�⮂��s��f[�ˌu
ۅxu���F�:18�����<ˆ=m��9z5U�9,��r���������z!g�N^ZA�,�U�?ܢ�B#�L�Ɋ�9�C�S�ȳ�7}�5��7;~24�]� �8�Qʐ(O�;�ڟ�C�-y�ʀ�U�=�콁�.L� �(��t�b߱��	���X7c�Υe�R���e��Mn\�<q��.`�T�x9��2t/��͈�Ǭ�!>�r��
�=ٵa�ӳ��L���~M��fB����cFKF����Mv(�|g6��2+}m�%^}��V�nO����Ġͳm9�\l!O7|��-���ª�?����?�g[@s[�Vڷ=�*�[��NA�v�'�Z�K�θ���p�0�H@�s��lzn1k
"���rwUV��gPNJ�xb�qհ�j�!��P~��ln��*b��W���Z]]/!@�L�Jd2�h/���*�N��%�߄�MŲ^��hX��4Ep<�‘ߕ���T$4�qgeHa��k����}�O�x���h���3��(+�qϒ
�����҃0y�^���Ȕ93*D�Un��l2@�wb.��m����I�9��㑩�OΎ~=Tނ�>��P���Aױ�
=�>lS���'�8D.� Xd��p�x�sɸ��8���)�]sQ5$"����>77l`=�R�DFEƶ�
�B�s14��W�PV��-�a���Ԇ}��"É�
�&�_��@���!Pu��kyl�3�����E�TuڡC�R7Q��GDT�~��M�U�(L�3(�v:h��7uU�%"N�,�<"�~��@�NO�H͍�n��PH�v^V�}8��cMEj(�y��mj� nv���Ȓ�>�y��~v|�e�h5v�	�7ٮ��>�<=�HNڧ�y���ǐڞ�#1w
�)ju�4X#�P<�?
PH�m=�v�8��⫡���4V�3m��@��W[|G#�F���^5�w��9�å�ޗ�r�lw H"��4��54ߔ��qwr�y�_)�\=�|{�O	IŨxx�~�֕�&!�&&\���i��2��Y��(j���4����EyyY��
��- -��'�򬮿�g)3�n�|���Da�t��0�}b��l�u
��(B�A��`����*繒��S#A�T����O�E�r`Վ�V�	t�:оvi�ty�Ɵ��7�a�
�T3hxR��^h"v�IG��ܓQ�`��;��K/_�'�W�����n��k�ҳ�]�hқ�0���2�
]��/e�\6��Ue�'?t_ߙ\�H&�U��s��������V��3���i��-�F��P�7�7j8}r��D�`�{ǕN��r-"�� g�3�}m�w��`x��A	w
v	����蒦�(�1�G���X�KkQX2Y�c���%N?:^@�er"I:r-U�E"���}�Fᩏ��c�4E���I���֋Kʷ��}	�D�d�37s�fw��`�Q.LC�� T���&c��Wz����|��@����E����0�)R8;1���
�Mw�!��C�P9�Œk��o��	�xZ��V
:��Xh� �]��H��R��>�w������#�KD��7��GY�|#�U�(��a���x�����zS\��߿���F���P�C�T�֎�ڈWC���޲��v�~������
ز����z�A�䏕��c�g8�P��m�t)dL�Zp��S��a�Z�9�T�sǵ"����\x��|W����
���Ÿ>��n,S8�J�����R7p��e��-8$�OȒ����t��0Ŧ,�y�/�y�b�+bP�r��~���e}/pW0y��'Iѭ�麦���d
=�ɫ�(��™I���!����y��+�J9`/g�S�F/8e'�[ >c�q�����nlx�d�/Zf��l�5�~�V����$�;����Q!Bz�7f��G���u'�DB�M����X`�H���:0���{��"�{C�SG�Љ�ID�P�Ms�Ѐ�vɇ���{x�	#��Q�$eng
���P��J��r�oD}ꀧZ����{vl\~'�w�71|6.jr$�w'��^:�u-/�?
�� ��ǝ`�e�J���K��hw$��Z���t�)�"����*}�E�	f���_`V��w{p���F����a��=�^�#G�����
&N!������h�L���4�R#�:AI�� ��}��#y�v�N�o���r[�G�bM�<cs���Z��aWeAy�[��$��'/�ͦI�Vc�~��Fɷ�+4&O,��ۃq�fֱ���
A�g�H���۞̈��h8m͞�"ƽa�H�'׬�r����Q2>kNHz:����FT�Ĉ�86.g����3i��
+vS�"�~���&�
.-'G���lx8ҩ��ܱ�آX����]�V~��z�OT�O�x�W5���m�&h�4�s��>7��y� r�-A)�(	���f�=�/�9��rW�K��6�����Z]�o�2Э��֏�u
q�K����DZP�=������pK���DA�0�R2�>�	ʑ�����`�-��C�n��#�,R�a��x�h����z�*�����0f`4��Nl#�٥�o^�o����>�x���<k��t8/$>
|�jcwF�S/�"o�%:c�:P~�Q]+A�MV�ec��p����
�B�&8�Y!Ja\��$�I�obT�rR����%�k	�k	%.!�p��.=6�/QF�-�JO0ϡ:N#�����'�Ff�<���#*ƶ^Ki#
<��D�I��`K�R�q�A���0!I	���F}�{
���)Ȧ�����S���&h�9`gMh[�� |�F�6t!u�T՘�`/
TO�B2-(Ne�����<0;a�M��aNb�4�n�g�)P4sa���V�$$�.�Q�U,�E�:��i��
��=硊�$X+C��>�um���%˂� �\��=�_�͗��ƥѳ���S��z��l�M�]����[��fĿ[O��HֳW�)��r
�/� �׶o�R���m,[�Y�^�"�ކ�M���R����!��L�
j޿�m�rQ`u��j����{�&���LK_}e,esaŠq����E��j��'��r
?�p���v�D���˭�k�Hϧў����e�mʐ
0:#.6�R)A�j	KUc����yyy+�rHcvܸ>2U%݋J`���w(�egp�"k���>
\��,��gW	+�E	�5{T�a��`ذ�L(�{�{�/Lj��j���<ח�"�j������#;[|-�;t���>86��c��kÅ�dqݵ�"�+� �hv�_�rFJJ(`��j�hA�A�h:s#{�&�_X�8�(���#�.x��b�9��:!쩡>1�U�U.���MS��T�^3�G�/�3���
�E�\ɨ/��X �h�[�+�-(����qs]�
��8r�)e���
�n�(�/�[�h�`]7�W��N�I��?��
I��sF�o ���kц�^�s���{wG�Ǖ_�:!�n����ލ{0u���$�����?��m��^�>tf�5��A��T\�]u	#e;b��|2��4�ƱL
�q�q�}�-�4н�%�֍}˺Q��#O�]]&�q,��
�����ͦf�㪠#�ۨ!�R�΅?3$��r�S��Dݜ 9�������k4��ä�i�x��+�b�
�Fm4R`���T��W�9u�
(�D����<jk�HkÙ���A����|.��ܐ�.��β	e�;A���=�Vl5�ro`{��/�Αφ���Lo���z����2�hvY�\O��:"p���-�%��ȜF��ɏB�0A���Rh���_�5�B0=<pk�W�Bz�Y[��\{sCm�߰��.�O'Z3PM�?X��m "�p��L���a��L]��U�-/K�1L�9\��C{`/A����"jgƥg"�`��P�|
�<����NN,�~&�3����(���MTDJ42��K�v&^��W�m7nw�Ȇ�RG��xr��]�k�.�Y�~���NA_P�Y.�
.�W|2@3����l��#�8�8<�z�mvUel���".�����D�3�.ϦOs��Y�ٓ�z���(�:d35�ؠ�1�^Q�����;��c��ǵ��~�O��1\�u��z��:25�Q���� Ꙧ�-Ţ�
ڳ����(��` iцL5&�{��φ����"��V�$T��al��#�‰�1�%��
��/��r4�أ��l���D�;w"#��D��?׵����������=S�c洌�{��0��_�BLṇP�(�]�S�;�"�K��#`��B����Vv��#��Kth�o�WT�\��o��NnI�W�n�ML��t	�C��:8�h$��BS�z�~j�٨�r�<�Y����PV�~�ޟ�"�+�ei�@L��|S�<�i����,�X�
(&�$����B"��iAr6N���$�*�;a�&�9�qz�q��^�C�I�^���%Ն�q�*J��M
���h��G V�t�ǃ� X�qA.7M�:�'T
tA���ie�΍��^*�Fߨ�C@k��IP��Z>в8�F`N$�C��M��Lܗ�Q����m$�C}-�.�f'����Ɏ�0�R��~�u�7��_
bъc��p
4���s�W�҅@��g�!9LτG P���u-K*����m󵄡u3&��d�>��_�
��9_��S���ᶱ_Z��ı�o�R��+T%�QZ炽�S����R��D�#��"I��H�Z[q�|)�}�i��R��|O��Hu�u������L2^�x�s�٣2���@�gv����.9�@3�(��rp+��'�+p�vZ��`�s;V��)t��Hu��|Rs�߮�����=�Ÿ�L�<~IO]'�C���Uڝ!*��ǵ[(�Sf�!:�񏐄��թ
�L�0�DzoE�÷?7��;��Xi��d�n*�Z���az`�Y/~j-0�<>�:@[A�V��q%'[l�k2�򷟱i�Vn��)8�{�x�@�Z��n��[KuXT���O�)�G�z�q����~��-8�T�z�j�:�a�~pb�ݓ�_D�
[p��N�B��L����j�Ѐ�Wv�NO�e��~���yYg�w�Km����մ��W��n>O�q�<jh�R�?.�-~Y������>�1	R/'7;3�dNF�e�D���#��>��Nw4���Q׀�����F��V�e�R���`be�
�����!qn�)/��~2X�OX�U<ىb��*#�`���W�|���<f~㉇� �s=��� o�T*ԥ�h�i�L)3SX�LGZ�K��������׶�F�z��iO!��_T��r�o�̸ך�A�4d���Ab�);R}���c��a�4��M'��C�HO�$v\MXOB�ue|�R�ֈ�A��h�#?z`�]��z���	A�>�T@\^@D��b��j"��ܬ@x��D�MI:�v#�y���g���08<G�S��U�{@�q�T{�CI=�Ȩ�v3t��X��/A��fYyb�E�G/g���
���.C��Z�f?,KmP͏�W��MW�!Ls��=��mٝ�����\!��m>sHL��)�"s�1y�����q-[�P2`���u،�ǘ�J�A��]o`�&��X/*r|��2�^����G[�i6�Lzi�ߝB[ǎ
r�h�a`��[Hk�.O]�iJ8�,s���m�j$ @S��w���BHc'�@��_ۡy!����$�ή���� ���[����r��?�d������=Y&�I����m�G?=ޜ�.$��7�P����
y��S�U�
�
���C�����9ܽfQ9���J�����҇���t{�mRP�	A՟a$����\�݊ev�k������������vb*�(�\-�в�>K�b�Z��x޾)�\9j����k��-h�̂�n�,�l��������n<tO�p�=�d�+�A��P���K?�i������,�pnV���>d_���!S�����5��gg'�l��:.�w54{�̡�w�{�
"������+m�:4����k�Z/����KF�>��B��I���#c�5��C�D�7��@����n�M�N4��h�N$̖�i��7�-��N���[����-).l\-�x�*��-���Ǹ�a�L��Oÿ���[k�ޚ��Pd�EIV@����6���^SIR1�Wc�s�%{��ǯ9��S��C��엓�=�Ё�xK����8��^Ut�T%?0Y[���ο��M�!��X	�u9�"�+��Y$acB���o�{�������M��;�ܰ1"����������_,'�.u�`v�7A�߫Z�W	�2�ʴ��	\�,PgB+�
��0��R���7#�c|��a�f/[�xX�Dnt4v�+��~窊#J��lū�~����<g�R�-w#r��d���&6�N��ɸi�wC߁H�kh���C&3��Q��8B��O�I)m�`��4��\X҆���d��̝�=��w%ԡ�h6��8�:��n9C�1;�.�M�0K���]D;��tN���L2�K�oF�� ͒k��@��p�jg:\�"B��.U�_�;��N�ܕ�l?�O�,ؐ�P������	�x��L���3ӖO����X�#|h�㔍J�P���W'.^�k�P<=4���n��|�cS0l��T��b�Ym#l!;��x��z"1Fjl������m�s�)���,oų���Nk�6�)�Jw�6�Ф���QnXKxs��Q_����؏�i�SlLO�km(�D~94"���%�mM�^l�p]��>;{�i{���]������D��J0�oaV!v
�[,�]� ��C'���J�XĀY��uL���ă3�ˏ=?��mM%�4�GM��B?"�1�����H��^�C��U�U�FIN|m�G.Iv[l[�{J�!C��d������$6S[��jl[,�74���j�t�G�+8s/ṯ���J���f�\V��P�mmF�4�m��]B{�q����@�����E�jq��Z�ŲDpm�$�ij��|���nM�g����k��iyU����ae�B��h�B���p�Q�,=Q1�
��C�o���	k��胆�����Tw���7��bo�M�$�cQe�?7S�lh�J�S���zX�qĬg���3�i��t�gb7��[F�t�[���FE�X�>:ٞ�А�]<�͙���9��"Ѓ#d�_e�rw%�/.y�-����A	��X�Ȍ�> J4�xH5}bh�
�?���m��6n'T�����;�1;���U�n�}����l��-	��V�O,K�P��SK�X/��^4�{�ln��oxcb�)�XE���䘳����IOV��hb��`�Z�,�'#��Њ�G|��9��\��yKh�lۇ�]����[�~w MC׌��hP0	q
?����u��/����%H��w/n�q��B�1,KT�r��u�Fvȿ\�1��C#��j�_�j(��dc.��0�BEjq�U�H���͉4�;!�)�90�F��(X�^c^\0^ܓ|���a��g޶)٣l{��H�}l;"�84OFR�����g~S’1f��^b�;�W��~�処�
}��P�n|�P�ۨv�+��L���U��ٜZKf�>��N"ĵQt�I�o�a�Н�]��7���`Lim��r��T�t�g	�6�ZZͣ�D#��������~j���o��(痧{�Kx��e����t
����*���O���T���R})c�-V٭҄�歧cw{��LM�R�W8H��A��j���*c�����T(�������Kl<��c���'���9_���n�����*����C׊ɗ'���5]^n��Ԓ���-�$C'T�Y��.��i2�lBNջ�dV�X:L��᧤hOE�F�E���K�k�K�.h�1| r�#���W�e:��z��� pĆ�V�5�u���#�WJ>Wpe��Jx���x���Cؐ�f�`��T3���	����0:�ͧr���7�ps�7|��=���c���6�����l�{^��`�Cx@��'#��5�$R�KN
������ڕ@��~�i�y*��c�+�e	�H1s�l������
" Fb-�Z�o�
����`�^�P�me�1mf�$u9�WE��Ɵ���.��0�����e"�k*h���T3�Kd4��VlF+�KdH�%*_t;+�KD۸��7�� �A�|�����Y���M2>i&3D�]�uh�txQ�[P����a�NO��n)"��lu<c���e�\d��_��D'�aT�`+[�_�>쌨ƾ<?��������V�%_��Gl��C(T�Hf
����&�J���u�Pz�9bf&Cd���d��^�rp�\�AAY:���X/�K�s��0j�z���r�*ث�+^�'�An���C?�ԙ���8��è�a��1�G��3����[�Z�Y}�n��b�r[<5�{�hؼT>�!�R���%#1��y].���"/r4i��B����=N�
�`#��2/�@
Xo[��@���!��N����T�El �Mw���m�)��VY�\�<Xֲ���T�F�e?;C4e��t���>�5\Q��}�d��w�g�dS�Il�������ۜ�o�+nw��N<3x���4%�$�+�=eՀé��)�ڮk�
�aA�:PL�w:��wಉ[㉸2.
�E� �V��U�i�]MG�O,�,cQ+�/�e��&��T��Ff�d32��H�&n+�:/Z[��;4w����ẅޞ�� ��[��j��݈�ݖ�|b{��,e��W������PV��g$��v�a�1I�"�ޟ�0��m�ޱ'���?%�W����g�f��	��%�1_;z��nk�O(���Ċ���8�<�����{y	��������w7?������i�:l�bz�W|į����vM�_^���`U8�?�_���\o�'���ʼc/*�����!aG�z�vs�LߟO�i����:8p�d w�띠�����=%��;'��>)#wRJ�7��l���K G�z��
��~� )0�Ө
坱o�l`:{�t�*7;��J$������b�di^(�CRa?S���j�^і�`���!�|盼���������>�b��K�(� ���Lg�ԚN�PN�t�zR35f��o�0?"-
DW�pؒ{0<h�~0���i<۬S���D�G��Z07"�&[�gi���L/��TȒm�j����O5y�O �^�Y�t}��-Ƴt�����w#;�`�C
��𩵠�Sq!|�4x���Nj	w��Rx����q��������D���
��[��yUʀ&�3bFﵞw��j����b�rǖ�������?�W%�E�i��H}{|$)0:}����g�d
gFb�”R�A�b�C�T�9	���mi褔��J�����l�Hr?�G��x���0�D^�E-�,ϸB�����3�Q!F�0|�m���|�[]X���|���$�{)T����2Y�+O�Nm���|z.�b���N�7�C�c�����C��xqH2��񣊔�5>t?CR�vdF�d�b�qU��;/}c��E��"EX��`�vz������K�X�c�i���ˋx��3��#dv�����5�!���'nS��q�Q��)�D���*khJF�U��nN����}��W�]�
Ě�~�P��#��7�fIkvC*�P4Ҭ#�s|ܩ�1rwM'+���?��B���~>��/-�Fb��g�D�id:F��F�EY#|�C�N�]�f�)�IR��ˢ���5D���݋��>�\L�H?)e�MN"�I��x�p��Q:��;�Z+܍��
��6�Z:��������fk�p��8��/m��J�N���q�P�p�D�w�`�1k���N{{�e�M���3�m�M컾��P��x-ER;H��KL!4|R�,|��6��D�(H�hM���Y����U��C�c,����rA��Q�m���%���c�[���&�Bp�t��DH#���Y��c[��,o�	�4Z���,'�)�&{������W�(���?�'�F�����6b���l�L`,0�m�$�}`���G���U?I���%Jh�9�S��6MKؘӱ8��2���3��_l��:=�.����T9��v���0�"��v̼����)��Ag/�wh�5;0��ڣ"	C�N�"�FEBd1r[�e}u�-`	=,�:��
s�,�n_�\��/X�loj��?*��v���D�q����럻�I���[�ũg p��U��Q�a,E-���m���X�TI[�����[x�b4M��B����ž*�B���|*n�4
Ϝ����Z[�'v��٘�3��9Ql�&�^l�D`(8���;�{a��k����S)��UK�M��8;���/��c�k�1�)v�}aU��W�,���R4���;Q�ڕ��3�E
�ׇ�-�Fs~S2��s��-|#��:6|��
'���osj%�U�#9�ѵK�y�L�N��2N�{��W���6��be�	N;j���b�ݰLM�j5á�"�ߗbɏn�6�ɢ���K+��
�Y���*�O��7���r%�W�{�9�*�Z�v�,�����a�V����u"ep$�[L���#P��qa�E#�I�t�-�h;�
�n[.��]���@j��[�]�!c){N�,�ȘȀU]a(5�ž$YvΨ�ņ]��r���l�����Xoj��{bx�9I�$6i�1���ܡ�?�:=� ;��8�~���Qͮ�ZvC:=i��p��*�_���9��Ղ#�q��~f!C-5�F&���g�E\�h��*���7����f	$�?�t�c��6�[�	��0'�hwh{"<��y
h^���ޕ�F�Ξ�>6�iq�#\��K������^���f+,u�<o.�����9cզ͖�A�8D�vmb��g�ft��m�	�x����,��gPN�M����q^���VA+V���D£�Dȭ��o�s�=W.��5��*��9*8�bP�C� H3�g�
X��p,�<��Y�U��	dh� a��B�{u�+���>�flz ;��[��������G��4Ƌ�uOD��1�{��
���������Q^���t�t$=y��
=/�)K�����S&���
U�(���曐�O�߿��g.IJ����"������	���b�Z\9/R�{_�f)}�г�v "�O�36f!֗�8n��(�ZO�H��͕�0���ڑn��_�zZ<jC�?�*�95}!�����>	�s
�c��!�����V��"�GL΃J�pO:�=�?����2�΃��8[KE�)N�Wv�m/��@ד�ľ��o_�!��*z����xw�#t2%��m��]ͦj�۟�?S�|�x.�����m͟������O��?㱣;��t�X
0C���T=iO����ͦ��@v�1m�F��%$K��_Xo�#63��	�Ӈ�+gFWΑ
0c$�(��"�}=��m�T-\8a5|�[�P,��V�k*�K(���P���.���3��lpp�뱣��&{z�]�;@Y��B*��cB�&!G�E�H��NV@i8
6��ty��|��4GJiŬ�ۨ�q���(�^�U����)燙\���:���"}P���ٮa�y���|M�I3��t~0��y�=#��2�"ha$��-����}���!%���*�^�đ
˚��K�3��8�!p�'p����:u-��…].���߼鄓jS9�G�� crا�a^��<W!Lx�sP�	"�Pc<K2���[�!D��D��~:����/䤑	��!/��.~�Ҽ���?#&>�7O���5�K��_� �\/�m��Il�r�22D���Y�j���>d��絊>
�B�@���t�C
b��3�֑�ȏ�B�F�X�G�o
ԁ#��w6���h1p�5�mS�h�QE���E���:�RDRG�\7|�чSF���Ij&	\5�(�8�� yɩ�
�2�P`��u}���W8,��K|���k�-D����~,�T腲�.v�B�)7R�dhc�����O
��
�_��P��t�m�	��Niτ֑
����ҕ&��L�+.�ձ�%#�a/�˚[è[�aL�r!���q,���F���>��<bS�ϭ՗x����
3l����d��]�EQev��/��N�<��PIQ���[��b�Q�K��q,U־O4yWBɝ�C�_��M�4�]�����ì?h��;�2�{M���=�+3�ya	�w���~��g�&Ӻ�p+9DϞx�ۏoΎO��^��GzwރD��I˿�8��xI��	����7k�_l��_�]<�.n�^��:�i���2�$�c��x3c��`@p(�)�boZ.<�K.��bk�Q���6ݣ��}o��1�nf�y�OB<۳S��?7N�4h���W�f�����>����[�a������I�9�#�KTU	vI��P��0���tY�o�rtZ4@�|wg`5��80H������	T�uѮ�@5y�C��fWј45N��E{��u��#���%�݃a"^ˉ0�$�	jS���r�8#IQ��`mTyCGj�ƨ�7ړ�Q�a,I��:t���=�=��A�'Di-�C���Vz��Q�u�:6��ɹ+x���D0�Ds�����@�]�/Ch�q��A\F��c7"La�oby��ߠ����Y9��E�"_�y�/o��&����[�ت��R�ȏh\	���������f���Y���@Ī;0�\\�ٯ1E־�n�͏ϟ����/�J�x�b~�?�W��\��p����<7�5p��@��,��D��]�AW��/j����/P���Ϲ��>s0PA����uLؕXٴ�{�	1qb�H���\�#�'��px> #�L�+���W��b�&Δb�n���^(�OE�j-y0y|#0?f^�k.@�'��	��MS�O��� E�˰4d��;Ύh�
�}7btJ+�蠧�e�Vy����D�h&Kj��CZ����[A$�bcM���1�V�w5��F��|YZ�}Up����Y~g-P� ���H��e}�%r��fc�;3\2<1ppj%@��Vw=:�����Rb���è�_�jDl��jנo[P��A��\�6ă��[p�+lؼ����H�d��
/��X�҆Pm)�8�����ph�����{i�_�������2sI˪�,��2+{���l���0������2�G"�Ȗjӯ��`S�'�D��~������L~�V�4%W�ў@(c���
V�K�!���}�h"m$�wJխ�;��m�/���=��x�.N�(����a�֙dK�j�L	�M�IJ<m��U�\r�
��Ϭ�ͦ\,�ʉCӽj�s�-��t9{Dпgz�û�	�r�	�N;)�a���0�N�4��?�Š����ӳ����h���`|�m�K֚�;n��Yx.�/��(���_7�Q0�冨���PH��#&N�q��	���_���t��Ք|�K4T. ]p1$�8���O�S�LC�-s�AX%,�g��m�}z���6|JEoN�؂��6�ʪ|U�S�ؿ��>B�+c*K
b�Ip�ܑZ�`O�f$�����Ϥ+��ج��"��>��܇d�y>$L,��5���խp�d\a+���݉�~�"�Cu��6uw�k?^��ă
k�dS��mJ���rĬ�r�M���@#����ox9x�+u���Mm������0tANL	��vғ�c=�{��D�%��^[�~ڞ���:��H�dS�U�g�G��is�>�~��,6����MK3Phc��=8�nl�y��U�߳i[D.r��j�f,�+n�dy��b�����N��x���E�8��)f߆����(�@*�mht��t����W_>l����ʟK��E�1��Y���K��5����g��Q�ݞ��h���"�r��Cꊈ���T#։�{�aB�W����׳_��fA���31�V�'�ks�9����I��L����/;��S������I)�4�ȅ���(̇��: b��!9>��8�����.��;�[�~ʻ�N�bS��xdrU��W���6^2��Ɔ@������<oУ"~�����MϨ�	��l���R�Fem��=̚-l1��o��^�L~�G:1O3��]�,B�@(��
/n�L�Y�{�����$-bT�O����qP��~��,nH,��6���7�5�PI��`q�����S�PFLѠ�B�+��È�ƿ,J�t�y0��Eu�!{@�	�ɃD*BJ!8�]����o
�	��՗�Ո]�j@f��c�_���|r�k���$��q/^�`�f��o��݁�X�)�!�T��dw���<W�q�����H�gDAOc�,��ƨ[��k1K�	<��s��
��I��*R�|)"~h@.0�����:+�k��Wo����m��9&�(Lt�W�G^͖�ٹ]�VTND���.ew�`!b"��������i��,�st�f���{jH�Hul@+B��!a^a�����S�0��H_�đ]YhG/L��q��w9{�ooy��l�gam/�%�<��� ��0��y�sl)!�
7��nt�:���Y�=~�F�ihT��#�&����c���cP�2P%�z�,xW�;�!v�a%��E���dƝF�臫��R���6�w��w��](u�� �6���.5��A�%ﰂ�A�k�c}�*����tL2����:�j%<K&ч�а�*����#0��ʆ���=^�DO�;Ϙ���2�D���\���(FC;��kx�{��$�Ѓ
�=J�?HD�`t%o$B�/r�@|�bP
�/m�����G]���K]�|WU�jЁ����e���^����L�Xd�F�ȱQ!<�����̿�s��2v�~�V�[=p��xb����
�c��
l�l�5���يVD���FV�����n�LW�U.��%�'��nw���\{W����Ƶۄ���w��paj�ѵb�>�'`я�/�M{`ر*���#���f�w@��h�b m�ْ�W�Z��At�[*v�!b�
*�E!�N��[�����7܋E�\���q;�]�v-��������Ac��ZTpYQN����6K-ߵG�Qh�PL�+W�E�:�31V_�	�T,,mSƆ��'[�'���#Qfk�冿�x��7�?@�8x��Ã@�<�]�"���D�&;ϋ�ާ�AЪ�r�$Qud��~K4���!�k�gQ�rW��8Mt���k��8�m<�h��}��	o?��e/^e������o��g����}z�";<9ys|txv���)�O�J��v@�G�u>��#[T��0�&[�un_?��������嚽5w�bSα�߿?7 ��5�	CNBG(\�������-��:��{�U�Or�,���r�?��/�/.�~����*�
=ֳ×��;z�2�x���i��ݛ��ۥkUk{Qn�>�������9/d���l
W
��w��%��(cQ�LS?��	��0y�"��cK����e�t���@���u/n��9�H���/���3".j�,�1F�������D���,'��#VU�}pO2v��:!2�S�OV�w����ώ�^�z�bL��5��'������m�⊙pv�Y�~�$q�����+s��P2���A���}A��Y���W�zU���x�Oa+��f�p,������{�0����{yV�"\80�r��]�]H(�6	��,n4հ�].b��ʓ�my���=�
�3���t�`��D7���(�N�n���K��e�W�.�͟sf����[CI�}r�)�
ϵw������<�n�R|�DSH��k�?��uS?���p���6v۵��BE��rZ,"�!�bJ5@SS��(Qc
:xyU1����	E�X������$�D%cX���\}��{� A�U0�q5uڎ�W�#R�v-�e�w��'p�X��ӣ���|��%�C��<il�uz�K�F���8
�,��q��?�z8|#��1�M�ah��Lm�Ņ����hX���~��Q��l�����ȡ��m��	o�og孷���MҜ�AN<ˋb���Q���cG���!�nR�\�y�Xj�=��VJ�L�����mk�!��ʲ%�	�c�;���;���\�z�Pq�DY�v�� 1C�ܩr�o='�����I�H8�����N��-P�����:��I&�>Y��r�7�k���]K�j\��
�:�K��NRr�eq��v�զɣ�a]��:��Ϥ�fl�X�y܃B���p�H[�*m��҅��.���S#0�	�b�B���7����V@�������/׍G	r&kх��ka��Z�Y=�#�C�>�D���l���j��mE�3V��ArTx_�f>A>e��������
[�7�"x.
���/�/�WΊq���Ǥ\%��#���f�{c"�X�4(7H��R_�=�L�׽
�I�2���6�o��B1(��(��=6L��G
Lq"�U.p0����z�����G�<5\.A(6+u�=��J*���7�Ͽ��\��uJ����8y�2��4�*����>�NFa�f�k�o|t��4�}C�,�Kٓ�F\����P�������P<�)*�JJ#�>�k�@"oe����V��''��BnW$!�9s��2[p[y.����jx�CW(w����7���Q$�;�s�����}�}��/����	GTaK��[��53�٦~o�n��\t:J.z0�US�2by.ۉ��ݸ�M�Qh4Xځ���a�#��P��C�<���#��r7�w��O�6��=i37�`�>��b��'�?�J���ñ�6{��ݢ�Aߓ6�U��n����d��d�):�������O{��~[L�ۇ9�fj�k����FÖ����&$�E���6$ȃ�ʳi��F/�a���h�+t�x��D�$*�PKB�}T�NmV����litespeed-cache-en_ZA.moUT	�VCb�VCbux�����}|TU��v�mAP��(�!��$T�&�I�lv���	�KP@zU�
��^���4i""
X?;�73��e7���m���Ϝ93s��9��%U&���*.׵��r�{��վ�K���\��� X������`�g�#�.�gL%x���%�U���^F�L�8���[���}�Kn%XL�Ӿ� H�uy	^@���m�,���@�B�F;�F�1�����`u��)
��	V&؇`:��~�k��	n#x!�#�&�_�7<���u>��z��-{!�=��/�`M��� ���'lC��"�k��PΣEh��"�c9�L��5}��M�1���lN�����ю'��~�Kp7A�*A�gg��Q�6���@�O��� �sm��L!؉���uA��[�F{�"X��7a�zo��r��^�t����~��������o%�jo��ho����υ���-"��^�G$�zG���|�`C�u���0$sՏ�\n��Va�����FA[�(w��E}�E��o����1�W�ҵ��n;�{O�1�7]����G���-��/��ߛb��v��D�Q�K*q�.%xA	ƭz	�S���4�]	�ѣ�RT��"؅���x^��?�J��	
_._�]��tV���!xk�r��z��0��]�(C�beh� �W����|}�\��*���a_�k���b^�&X��Y_��"���s}��/��r����L&�4���~���!��?껻?�q_�7�����Y�x��x<���d�7s�5�`}���/�|�5�v�@���1n�D}��g�z����ωS��wr ƹ� ��z��5����A(�5�^4x�>�I���������`�o�`̇Y�1���-����j�?��<Ls�����o�èw��\�Ø�+����<φ��C�מC���!��C��G����'x���p?��^�
|v�����!CA'��m��
���P��0��)�e�Șa�ߦaH�{��0��a�߅����c��<��7�I�����D�c������gG}�i�e
��x��}|7�=w�8y�6�}`җ�@�#G�.�|.����vB�9��g�h��Ip�#�7�ڌ�G@�g�ļ�Ap�m$��F0��H������Q��oƯ/��,F���h����/�G#��{s9���)��O>�~��(�}[�?|�ݣ����ޫ)��1�5�T��c��ݾ������_>��A�[��<yp��}	6M"98�|,�k,��X���0�qho�q�Øq(o�8���`��q���q�c�����?�|���~]Np��x�/�|kƣ?��#�>��i<�[e��	h�P^�	����>t�i�@�	�s&@��6r��Dԓ�p�D�;w"�y�DԻc"��D��/1ήI�畓T^�{�IЃ
'a>�2	x�0	���I��wL����`�?S ?&L�?0�h0��N��|}/�!SAo3���L^ߙ�q<<��S�5
�r�a�i��i��g�4��i(�MM���3
���t�s�t�����#��c>��t��c�M^�NG?vj�C���V���j�8�^7����h�3P�f���g�̄\h:�e���	�l�L��	3��n�	�q��|�0�͝�w�}�s9O@��	�FOb�O���K�+�c6��l��f��b�.}
���Apϗ9ȷ��C<��&��ǝ`��ן��g	�L��g!g�?����,�w�s��ϡ?���s�w�9���ϧ��,zri����9��\̣�[�1�5t��\�ӫ��}.�;���<��<�z�PN�y�g�<��I�@�3.�z[5��!}��<�~��A��ߘ�}x��y�[�����#x
�M��~̙�*��L��1�� �����O]�=��Y��,��ߥ�ҋ(�AZʸھ�.�x�ҵ�H_k!�i�����G\�|o,T9�P��B�o�.�߹�4_�r3��,�8a<�-By�a=�d��b�=,�Ng���}1�u��t	�˽�V�%����?_�c
�.��4~	��LӭY�|g	��#K���X
���|%u)ƣ`)�K��K���K��^
z8��ᷥXO\��n�K��K	���K��ny�-�e���y�>�2���@����^���ˀ߱���.��Z���2�s�+��+Я:����+�ߘWP��W0>k_^> x���U�3�I�W�����̧_C9Ͻ���h�ï�N�~
ts�r�g��׽�A�A}�������堇7�}�r��	M���w�
ȗkVb�\�qm��p҅V�o�_����L\�z�(\��B�+��}Zޏ+���W��o\	�5^���_��Q���Wb��j�ĕ�i����(�Ɵ��t\���B}3Wa�<�
t2��*��*�����A��n��\��p�j��/���K׀^�A�l}�p���q
�qp
��s�BεY<kѯi
箅]i�Z��׵�f�,��C?�X���ց^�Y>�w�W+�A.~���:�ag{p=�5q=�m^���
��
o߀�o]��:l����{Ҡ
�;7�]���P�u�����ߒ��Ι�O	>�����7Pϋo��o`���>����37b<������ڈ�1n�1#6��)�j#�\�7���ބ�l�	��{���&��M�O�7a<��z?�	���&�ݯ��ʛ/ތzo����Y������(o�f��t3�u�f�{�f������ю�5ݩ�h�[\�,�[ ��-�}[��s�D{ڽ���M�+}t9�M�۷	f3���uR�[����aނ���-Y��|r�㷁����]��_lE{���.mݭ"؁�[1~M�A��߁���w@�-�)��.�5�n��;�
�Po�6�m��^�@��=�5��m��E�0No�xކyX��z�v��v�ۡ��W���_���sv�^�߁zo���l�q��?|�O��~a�e
C�ٿ���v@�����Dy���<I�	=/k'�܉v��	}y�N��ם�糧0o���먵��7N�Boy�F�>�=�c�{���+4����=̳���F���
>Qk7�x��h����w�,�
>�s7ʹq���{pƷ��}��g���r
߾tt�?�����_�����2]��~��e/�}�'���!ߴ}(��}��m���=�Я���=_�}Tڏy���0m?���~�w�~�{?���/�����G����y����y��}��п~z�K��������@;�>;:����q��� �Ypt1� �GD��ĺ|�A��Ӄ��*��CJg� ��|�?�)p��T��!�_����ڽ�`w����q�a�a�e�a�u��0���!�b�1�S?D�%b�*�|���� ���s}}�v�G(��#�S�p�G�ς��NA����h���C��(�w����}=����~c=;N�?����?�8��>�y���g�1�ǎc���@����	��͟ �=����?����	�o�xx�������/>����)�*g�R��u�q�_|���q���N`\:��2\�W����	��'�no�y�I�o<�t_�ޮ�r��g���g����K�u>�:��sȽW?�^��瘧79�����/0��|��r
_���G�P����_`���Ηh�=_B�F�D��_b^��z׮/A�{��A���D?�|�E��?�և�~>w����5��_�W����N�_�/��t�7$YN���|�ɷ�3�'8��-� ������;ğ�=��=�9�{�ю}�}Ŧ?�n����x���o?`���HxK���#�O�;/��~�	����C�0��O�>�B}'O��������?c^l�����!��3��_����ʩ�+�w��h׼_1���u�7���N��7�W�|���(g��(���1n����e���S`~�'�8�O�����T��O̗*�$�_S��
A�[6������d�ZUN�=� ���Ηd9v
ϟ�UPN� �gv��$��w�Iҿf����?K	���� �k�3��/�d>:�`�lj ��Y(�%��/����l��%(v��.{R��d{і�Q��s���	�<nt.�-"��o%A����\?/I����~��O��A�_d��>?I�N�H�� ϯ�	�<�pړE��mO��g"��"L��?A�kd:{� ��-y��!(z�� �?���/Lr=��B�kم��1�L?�_���up{����C�Q�����	����h�oYN�}I��	��w3A�?�Y��!uM���]��Q��R��_l��8|)�{�R��Y�ի�~�����U������ ˵�U���UAO;	FX>V�8�]�$�tA�??]�t�<I��`��~$�rm���\����"I�W�<��W��9��U��p?A^��_	��$�sҕ�g��^n�
� �eW�?ݯ�FN�
�ZF���j}?�j��EW��5	2_����\�t�4�Ы1��2�~�j�e�5���5�o\�zG]��
�/��� ����`>�H��B�k�\cY^d�{�u��QYo�yƻ��#Wd;~�ӛף����'	2_=�$�%o��t�����Q��1]�z���D�Lwc|ϫ�$��!A�}��nWWC���qI���W�ZK����nļ�$�������qi
�m
�ۨ�vL���Q��A
�(�š�G��������!5�~LM��䚠�j�k�O�	z�t�w�	��M�ޛп"��g�z�]��͛0�;��ƞ�0��L�����&����z7�����+j��j��Z�я
��F��k���(,�|k��>Iߟ��~�#��J-��-(��[�ϻo�ނ��J���ѷ`<�Sx���݊�>� �=���g�,�M?�IƼv�I=�O?Z���N2��x2�˅u��� ��u��^�k�:�w��^������ �Z������w
�1� �'�� �u��/�j]Е� �Q	�_X�zJ_�@�C�>��]���S?I����A+�}S}̿�џS�!��m�$��}
0�/���`��q�۟ �)��|�q��M
1O�5D�n
����3FC��
1�&4^�6^�l��|�r���A�mn�xt���w;�md���C9�$��� ��o�m��1��nF#�żF(w���h��67~�5޾m��C�]�t{kc�ߡ0�1���tյ1�>�1�mYc�tc�{Nc�i��o�rwiy4��1���h�w"��;~ӝ���wb\��	��!�z�3wB��N���M����qM��4����tv�	���&�+g݅z�݅�u�ֲ�@��������a	�]g��?��W)|�)�sMwA3����C3���f��
�7�\y[����js���9�ځ�!�4��h���5G}׶@;�@3[�����ۜ�������&ߍqmq7�Ȯwcޏ��q������~y7���ݨﬖ��-��;Z�~�[���-��PKȵ)-��6��8Wm��E+��VГ�B9�Z��/Z/�B{ܩON�<h��~�OE����}R1�S1~cR�������?��~����Ei�ov�} 
z��4���i�o�A>��zj�^�h
�g��<�n�~���|���ȿ�5���6��-m�~W�y�6���6�m�%m�w�j|���mQ��-�7�-�?�������V��h�7m1~m�~TIG{�H��JG��1��K�x�#(���#�H�3�1���W�U�N~���]�ϕho���'�ߗ��|>��|0�^A���^�P���`;�|;�?Kځ~�ü:E��Y5�A}Od���@N������l��e�X��n��3:`��:���]胧:��^��HG�{DG������㿥#�w�#��gu~����A'�GI'����	��}���W�D�/˄<�-�e�>Zd��N���:/s;���u^�Qxf���,��c���ByC�P��,��gd�g���`6���l�#���gٿ�
��|�sП�9ȿ �[s��9��9h׷9(�.���t���]@7v���7�z��] W/�z�(����
z��>��~�+�p[W����]�����ݠ5�4��:�֡ۻA>���{A��d;L���=���@;��z��	����&�~��w�	z�D?F�^��q|�'��?��'���b�o�x��^�}�{Ag�E��4�k���^��Ƚ��{�Ϫ������!�>�+����>�u�}��s�~�}h�:�{��|���|O���~�{�h׮�Qߑ��Ͼ�x��~�`�d?��n@?�<y������~��ڃ��B��L���d��nA���ڵ<�'m=�#s<��|�^��z�A�����}9y�7� ��}��|�Ib�̋��=�$�����|�G��}@�̪�g�q����B��)�3
���
��h!�eH!��DM���/�<��`9|��]F�������R�Ϗ��c�W�r.�z:��.��)�K��^�O��^�z�.��Ex�xx���w� ��}];���+M���fc�"_� ��D�EA�4��t3���s�
��3CI��|M�},��o�0/w����!�o!�sqXׇa���-�|S�*��*�è�p�~Ao�sio�{}o�������1=z����X��v�	�_X�ڱ+�v� �����3�S����v
�Г�
�{���`�.�Ч_1����3��+WF1M�Ч�D���Q�a|�~^��Q��E1vF���"
��,�y9"��[1�e�0��`�ܧ�~���@	���R�E)�ߩ��+�W
y5���*E�?K�_������}PN�>��}����_ؾ>�G˔��_�y�(�o_�?�/ҽ��/��b<o�|���N�������������a<�h��P�� _�K��~.�q��?�}��H��|�s�ץ?襰?�)Q8�?�e��'�?/jy[�߻���O��������{�i=��]�`܋5��(o��{���/<�t �d�@��ځ��@���3�n����A�K~��a��O��1�j
�{�’�(w�`�c�`�{�`�Ã!�yxH�*V��aؕF=�v��A{��>c�y���d��=|�����
�\�<��JCagk8�*�t3�B�5�]y��,��C}�]T:�6�h4���a�s��]��y�u���{�����Ӓ����2�<c�yx�;�`�����#0�_��u�#(�G��ƭ�#�{�
�ع^x�#j���i3R��#U���4y$��ɑ���#1N[G��v�D��+�t$�~$��U� ���~�;
��By#F�^'�B��¸�6
�fڱQӽ;
�p��?��\J�q~q4��h��G1?�<�|�]�>
~;� �w�y�ڏ!��1���� ?� �~a
�@�,||�4��u,�u�X���X�e�X���c��a,���q(��q��N���8�s�¢ǡ�Oxt��q��������h1t�5����x�g�q�Fp����<�g���	���	����L@9;&���@/�M@�N�ܾd"�1g"��9�A�'b�Gj���(g�Dȇ
ߞ9zP�?�򾝈y�4	z�͓���Ihgt���П����0oϟ>�5먉��7ޝ���9�LA;[OAx�)hG�]�NA;�j��S0��`��6�x
���ߧ@�W���?8U��T�QS�g�NU��T�_c��pƷ�4��4��x��35��i��צ��w5ߡi���?gLǼ�n:�r2	�_X�t����On��k<��g��Gg�n��<͟�~�:��8�o��U3A�3ѯҙh神H?{&���
3�3ui&�Si�I�,�S]f���f!��Yпޝ��ωY(�����O��{�X��	�ў'��<�q��$���I�E����I�;�$��?��W?	�8��G5�k6���1_�Ά��j6꟧p�l�a���)�{�S�;X����s���s�׭�����sп�O�/v|Z��O#���1n���|:�4��˞�?B�3������gQ^�gQN'���??��5� ���|v���`����s���̅s�\�O�X��}�\����8^?x�3�p�<�ϔy���0���}�~}j��C�_�y�3�y��������N>�<���y1��Ud���#��k烟7�r��!�.�����^�~j���_�|���/�N6��}�"���v�>!�6*��댴E�{cA/z{��� G�X:��x��Sç,�.X��}y1��b̛��A�U��}՗@�޳�^�y1e	������K@ׯ->�_
��_
���÷������_]��5A���2�a/c�N�����eI�6u�ʩW`g�y��_������+^E�G����׀O�5��V��}Ū�A����3ˁ���1.��c��W$�_X���VB�^�~�^��~���*����@���B}V��/^��ƫ���b�j�q5��5kPOt��iנ���A9?���v�E��ż۴�y�:��u����N�h�^>Y}=�	�G�[�c���l����ޱ���
������}tU���1_���U}��o@o���Ž��q�z3�i�|��f��U�m��a�i��)݂����>ق�]�&��M�gԛ�3k�ĸ&���~|4���6����~�b���J[Qoӭ�_��X���ԭ��ފ�}��K�<��]ԛ�.�߄wA�Kޅ_��۰�0{���v�Q�Q����k����tځt�v`~mفy^s'�s�N��;�gH�	z�ى�^�S���ࣳwb�/�	��^�o�	��O�?�~a'v_���W�R��](������S߃_X�ݨo�n�s�F�v:��������
�s��i{��k�^�p�^���/f�>^݋���z{w/�������`�� ׆�S�����>�m���p�~���!��^���}ȹ��C�-z�`����1��8�����/;~������nk~x{� ��A̳���S��ʇ��U?���?��Ga�	����8�<���q|�����r>@��>����|z���:�Qo�ú�;�zsc��F���_~�0��ÐW�����V=z�=�)z�}���wG`�o��4�#Գ�#���W�~9r�Q�K���W���7�Q���>
zo�1�M�c������c���@�����{�a\�}��-����;�y]�Sȗ�O�����O�o�q���q�#px�u���q��q��8��zt�utq�	ݯ;�q
�]9<L>>�����$�e��j�;������9�$ʝ�p�I���2���8�,ɕ�+�\��M2�+�}�a�+Zڹz�/�~�i�_I�{� �W~��>�>���o2=7��ڮ'�w��z��`���wq��uS%��7������v:N�~k�_��න,���(����k�����CP�F��I™����v��K�G��U
��R�d��k��\��*��*�z���l��=���c�rF鯧�.��?^74�2�����s\%w��uœ���R	�L�x_%���n7��L�Z�ϫ�s��w#=ϡ�����rJ[�2��#���q3�m7Tw{J߬2�J�����yl�\3�:��~r�w	�M��B�[O+�Ap�>O�����P�K�K����*�gz�%8�Q�w�':��J���ku]��K�+]���i+�3��i�3�V��������J?�ºQ\�~��9�e<�{��?I��u,�47�o���]g6�R���+W�
�I�w�/��_Q��"��-c�������|��睚~6�=7�2�?+)O
�����<J3�����)m�ŕqN�yo&=�N�iI�z\��um���7�O��4�G
Y;?	�S&$����+�R�<�=�F�_h��<�(ܗ�3�r[�Y
oCa�R��l�к�<N�y4��o�yG0�x�A!�v�~=���[*o.��O��5�?�W]۲����m�l�����Ϻ�:�j��S�Y7����G��R�8z�C�5L��|o9���s��аB
�By�2���_��3$�\�4E<w��u��;�tGi�'��Ke,Ӵ�������{;�6K�8��7=�LqML�O�/���r���^��a��"dže}�(����w��k�ך����u�9v7Q��*�_�*8��]4�u��!��E�K��^����q����Q��ꠟ�5�
}��ͨ�@�+c���q��6=����?�WF��څ��8/'W�0��߳��Cp)�K�?�>��mv���w
{�㾡�Q�"����j�?�y�;��aEx�Q�}<��mM�OS���o��3HŌg
��*8s�w+
{���k�Q��sS	�N�틞��i����z��F��i8�^G\z5A>��YJ�#u�5�ʝA�C�<��;U	�x�P��nA��~m��<_�_P\_��y.U�&��
� �C�������aWP�RzO�tg9p5��֮�祈oѯ��iHp�����f�E�9T�~M�����Jύ)�*�{�~=_TE��q��i��p�¡�F��:�5����7�ǜ~�k��,��>Z�^�t�����E��)�L�;���$�]�٧u��_��[Wg�o��k�p�MpMϳ(MMJ���Y�4�0��}ť��Jׂ~�U�sg��ø��Z��O����8�/:�wq����/�4�k�2zn���9��(ͻ�/Rx_z�����Oh�}~�֑A�M�=H��ޖ~h9>zN���C��~�p^�n���!�܍Ґ��O0%	g!��{z�̺p��˧_/z��<�ʼ�~}z��>q��1��4�4G+ἥ���H�\�'UߵX�Ϣ�w1��X�K��ZG
z>G�;R����ǭ�I|6���'Xo��s���}*=ߓ��XVj9�*�qƲ�Ρ.?b��T
��R<�� !��m���=�Jy*�rG��(��J8���
oӺ?�2��3�l�&����t�&��4��z�I�,��n�-��]8o*��’��3�ߓ�X�1e�{�qt;�{�?ѯ=�{��=��ZJ�5���?�Z��g�s�k�,W(�ynhZ���D�/"8�Ѯ�5/��3ָ�NCe��~�/K��9��z��҆(�|z~��!���v�X�ߓ<��wP��W™��k�jZ^�_Ug����P��,���}�_#^;QܛZ�<z�h_ή���.s��-�\Ji�H��ni��]�r78·R�ۘ�P�����miNiV�ܫ�{�6�X��f�;=����e���U1y0���2P�=M�p��n^f��u}����D�����Zvg�5�0�G�>�9Bau�wWӵ��(}^��/��˅����m`����Zj>��Ù�CJw6�\�W��?��3��բ��)���[G�4
��~�5�Б���uP9e��xB�n�%�v�[y]F�;)�'G�����ѷ�*�/Up/�~z�J�~g��
�p?��)bY�'����5<�����m�r@�H�O�r�>~�z����b��8�-5�YT��T~'�ͣ��������&�
�p~}4��z�e7şd��e����	�W���v=���z��n��0��ƴ�e\���:'ۄ�w��0׳nM�g<��ڜuhͳI��Aa�4��ʸo`$�V�#�1O�vNd���Ww&�IJ�2�g8�oS
��u�{��)�x]H�*�^�g���Uo��ϴ�ڦ�Z�6M��'����G�-L�o5�K-�=}Fӌp��]I���[Hi�S�3�׊�*�u*�^e�L�,N��]@ᣙ��V�B�ɬkP\U���>C�k�W���RX�ʸ��v��)����>2:Nm)O
J�_
_�al3}Y�r)��f����‡�v��;�%(�}��4!��M�)��eFyN1ϣ4�)��i��2��B�QU�/c[&=%8��g���}1X�cz����WZI�2��z����*�Όs�Tְ̋��qWPڕ�#����D�t�u+��>�tȑx|5ݫ.��r3����4�S:�C4�G�d��c��=��
D˿�іKَ��y�geܥ�'蹹�#�ʼH�V��{Q�/�ke^�j��Y��<y��o���m�sO���N�:a^k0nY��LԴ�\���~�3��:�6P=�Q�wy߈ל	|~�wv́˻�y�3J�f�}�V���_�u,M�c��k��(nEB���{W
���o�؎B�%���J�H�wG�[���M��v�sK��Bp�w=�y�ї4Js
��2	w�Fi�x�H�X�ѯ*�-�K���|�Ԥ�B^7�=����~NSJ�b��$�_�ܚҏ�
�27T �_b{de�ۘ�4	���"x'�}�4��o\x)��̼�
�~+	�Ȉ��(�����G��Fa�S��v�_]�2'�����Z�J���~Js�횬+P�6<�<~�9���ecl3w�C&Ӹ������s)ݣl_g>Lp-˺ʸ{�!.�]�p{
B.w�'����/7�D���b���q���p�ByE)���k�
�_�?�3�_~�M�z�|1bÁX���"�?D∯w��y����Z�Kz݅�XĄ?P����~�@×
z��p����p~�v���(���zr����҈?j�DB��� e��=>�A�޼Pq�/�yS\7s��]���P�Pp���y�^��]�	�<w$tQO$�D݆�� �E��>#Yr�#F�
�s}HG�(���S}>�/�Gͬ�
O�?X`��`�P8ZL�)�QO^��0ܙ�h������yv,Q݄�XqӺ���n3&��O�������y
#��f�y���5���Cv
������F�fgj(�n�$ԏ_�Y�s�`Q�汰�e��r�W����=���4��6iZ7������ע�Uo�������=^o݈/��H�C�@��p��y��AB�P��h/��|7��

7�>�Z��B�"�{|edQv��ż�P0��0�"%~�t
ěQO�-i�d�h}}|y1�B_��-�fFxT�n	5�0*��99�9���^������i�Ir=yE�0��Q���H�@u���� ����L�-33\-�����0�>�Q&e3"�F<%*w���P�'(sgy�wK�3jSa4#���j�;�
�3gS"CB�D �i�]��[�y�C��ɚH>�̒/Z��4���=}��yh:�30�]22ݝ��2��K<4�փ;���l�C���D T�.f�(�R7��>+U�;�?2Ȕ0��4h&r%2�.��P����e����;���
��P�M��D��Bb
�7�˖�"EL��_�.�L,S����L�R1TAN�C������S�������'���{b���'��-s*Ɲ2�����K3W�D=UX�����`J��q�
��S�x��<�"D���<_$ʓ��8p$T̝�Gܹ*�x�\���8P�)#�!�K�k8����\����+��3:�{�<��?ZƼɈ�lb��qA�P��2��!�)��{�x����mؗ�#�����H(����,�"��P*���L`a)��"<�5�&�'�Cs��È�u�=�W~�`EFLz>TY�[9^��/��K�pf0y�'�@��2�
^�Y��bHRk$T�ئA�H�/"�"�I�-sS�rD�">5?�zP~50"�0��́�"=qXB}�Rv d0�#�9�L�@Y�_VL}��#�8��~���r�d���I%Ţ��"O��g��_C'�� ?g��O%�|e�͊�:Ԇ�e�ri���"�i�H�p��\2l����#U��ҝ��͌�F[D5��"���蒵�:�&aQ�RN[b,���	au	D�u'����V��:f����B��X2�ILX5zCy1R���P�y���Y2�-�ݎ$T6u?LIx�!.'Z����ݾ3I���?JC»#~�<	����T�O(����{�r)D0sRK]�9n������YL��g��ԋ�H���WUC���<�W��ɺSa(�%��J�	A_���Q
��"U!B�CdR#�QJ��s���V̦E��힥�6���$av*�G�̐�i�p�&v����%&� ����`�����Ib":S��	aT�����͆)�R�9�H��2,�J�\,��@��HE��uV@��D,!��V��_�#+&�מ[����P�n���IT��+
�t���2�_F&~���B���!��=�~�����=�7	�P����gM7��K#�s6?e���v��-�i�X�"4|���[;c���#��#2��@&���O�e�9�,�R�_Q'�t��\
a�Ы7F�7Oǜǩ�~�;�pΪ-����uo�[����7��L
X�vRFH��������d?K��%M�,��3�YlH|k�;�F�_&�v���u�e+�;��Ku}�"�G-*�"-�
�(]��Q}j*(�y���Q(�d��R0C�D���IbO5"
�j����E�NT���9f�tˬ#]��|Z)��?
�&W1	&VY��Y��靇��eÉ�q#U��o��b���A��j���=%!���X0�c��!�{�hJ�5'0��@���ܭTl���"w6k���N����&����^K��顔 �%j�����-5����nM��_xY��
m�HVu���u���b��e"��R�c�|��|�:�Y�����D�k����s���%LC�v˴�N^��h%B�[/K9��;9������u-I@ijOS
2b�oh�hq��)��5��Pl�Q�$~.�EH]
�MB�RŊqw�5�K��%�K[�;�4��XP�ʭ�E"a���� g-�Hh`�ąǏ��m1}�@
���$X�*N*�3���]�2�²�j�cM��G�+,��',ơӵ�\|��ģ��$v,D?���J,OY-�v�
NYm���Ӷ���
k:�p�.qf�2Q�+JK�<�pr�rT!r�[�
�D� ����I����}ZS�TlOM��TÓ�+��%��ߡ(p��U�ˆX&">0Q���lOv7�7��:��Ҩ��r���ƒִ��9��'C�2�a�H�_A�
m	�[��z\P~,"U�+p1BX9ғ�
��^ߨ��T� �Z9j;��A$���O�#$ܫ@���Oqƪ~c���b�)x��+;�U&���lY4!��i��p�b%�-�ɲ��^l�D.T\�'a�s��7`ug�/���A��!^.����d��(����I%��w	t
�J!�"��'YZ\���y�U�ZR��b%rؔ
=���L�b.���)�T|;�T,#L�ڸ �kDz'��a�Ci��L���ؒ;z�}�s6�ʼѣ!]=�s�P,�}���5c�9RA,��ui�T,�&�-,�%X#�+����=�
"T��W���劘TE�C�M$�|*��dƿ|�J	3�͉%�jn��*I5��jY6�bA�H�b����z\7_n��+�az�'�RZ�S�`��!F�<Vn|fIJ�G�x���������l�}��<Œ��׹��[(V ��(,OұEM4����"�66���f������a��u��!+�,Zѝ��1$��`Ƙ�T����_�H�����r[��d�)�8�_eUr07=Q+*�/��+@��E-ݎRڔ�**Vr�Ƴ���:q�'�CI+ݙ-uDČx+�����)�'�O��/E�����|F�:�]Ġ�v�����L�xƽX6�4��ѥ��4ҐrC����8�%��¦�+�e��#6���\�Gl����J���hEĻd�3�7x��!�]�2l�������dBw��lI��Id���
N���T~Hm�5z��r{�@{?��
ό�.��hg�`qV>B���^'��[Z!��hٌ���	e���JC'�]�R��|DY^}��<�X2L"�F<��B���Ϣ{@b�,�¶�P�j��c�ip���ƅ��*���&#�]+�7?���]�QO���-)@y������Z�����x~���$��s:�w�>(4Ŀ�W�
E4��6�BA2
��
��M�'�܊�:��L+�ۄ�
��4ޫ#)I��0Tjm�7���?Yrh�s����g�2���Ꞥi��Y��eHõ��	�EO�@�[.��̲r�#���`e��3!n-�;���(�5�����6$�ILV�m���Cdf���i����k�h߰l+b�^�3v甅�ʃ�Nz�bf�!,��D?��lMp�UןO�a!�%􎅢�dH��èؾ���}$	�yEcĩ�hY@�������VRd�&��U��|��`�Dr���ŶV�X�zZ��)(`���C�v-��
(
˞�X]�r��>Rlj�����[.���m9�
�2Z¤��y\�!��AE[P���V9(5Rc1g�^ve =(-D�QTyi��ў.JwB`[�NŅ�/�⢲B��r<��H�$��.M�Q��/���)@������)t�h�H�e�S��lO0w�r�ids��}̇)��a�)&^[�Eht�)K��'�\i�ք��
� �ŹZgg��d[:?Zb�_<p��Mol�SF.�w҄[�L�=�$?u[��j��y
 d#��?�,�W,+*�%���5#����VY@FдrЌ��%����tt�p,H�g0�~�g=fs�ɑ��e��	��T��ZQ�����J�0�@Y�"
B�Yeg�4��@2��o�0�,E�gȆ�L6/X4ov����X���D�hmJO,��4�������*`����뜅��is=�-�^�[�&roMTo�LZc��Ei�ȒO؇C͍3A\j!1<���*S�Qd+2�l����X��S�9��V��U��c���A��Q�$�!�܂�!b'�H�u��?O�_�I�Њ���,�Q�ׄ�
/���U��B'�ݰ�h8<��B��EY@pq^����*;�j�����;�q�%#���~���2��q���%y4�M���%b�r$�1R��y�"��D��Ļ��%�{:�Ͷ5�,M(�y��hb�@���!j��"��\��3�ˊ�j)w��Q��
�,m��i�da�R.v�G/��\����?ő6�6�%��*�C|B;r&�yD�7��`:h�U�l�F�wA���]ؾMZ�E~q���a�f�N,�R�ΨN�j���훈"h�!nl���q�C
��XD숏��Ǚ���E��&��Y|T��[������S5G�?
�&r�,�j�

oȇ|�[ǝ1c��~򊒔�0/]�	ﰋK���Fo�G䍘AM���%��!���"&"ldwl׻��e�ŗ/���+;/ꄎ��m5����q�*���Z����R�!E�_M|Iܽ�g����j}2�e
R����V]���Ui��2���*��H��C}Rh��ƐWn�T4 n]ŕ�o���}���,U��7LX2.�	��:��T
�
�l�Iu5~�BJ�H�v���]uMw`�t*ݎ�{���5x1J�˝6����~g�p���^�Y���x��q�
/�9VA�4meOA��ro���_\���Z�]��m�2��_=G�?X$�n�Y��������f��wv\3L2����]bl�0O@hcp$�-qN��p<�Ts��yљx]PW�rBE������!s���ZF>D�\�)($��F��JJP �Wj�̜���l�5���Ps�J\�+�8�dh��%ء����Jf���0~؏b&w��s�,9��K7G0۳�^����#~�%���x�X,@7�e����M�1{��wԱz ��#U؀t�c(P�J<�VdI�z�`�XE����簿�pj���7�^ †u�@��hɳE��\MO�P���^F�����:N3��tPoXf1q&�x���>[��=�Zʨh���Ό��Ŵ�c�-s�#�	)��Y�)LE4�i�X�q�ƣg�!6�<1�k΅��Y�x���n�$��v��Np����8BҚ�!�B����r��#��RWF~��6!g���u<�¡0|��q�NU���aX��V��K���0)G#�6_ο豁��'���@G�s���c�v孳KR�A�gjS�6hT\�d��}�G��Y
b/���m��lg�*
'v��
s���X�{���Y
�Zj"hIBs��Y�:C�9����R��n�$���^k	��y��ǎ�5o�,K�cX�W�C��)A�ÍV5����k���)/���Q���|^+�3��A�%�X!��*��L-2�0�f��jQ-̼f3��|�o�.�^�}M6�C0�Z��Sa�z��"v����\@+s���Mт]؋��xGZK�zHq!�UA;9�_5�ݏ�,sˊ�R��S,����H~A��6�r��#��x�Q+�@�{��`�8�����٣�z�4�4�3]�1I���S��Xk�DQnBT���!Y���E�2�#��o�(��~^ic!���|�xL
ْ^.��֢�=ak0�|�p�m��	��a���
,/yc��Z-d�����1�M0���:�(��U�����j��*V<`�H�6�%|��w\8�U�u2��5n�,�O���YA����V�.rD�7�IM�0r:��>�sƠ��E�v/���g�4Ϲ	����R�>|�5U3�.�Ҭ�<m�qwe�QQǔ|��i���K������u��pIr��4GM'1Y
[V^�8Z�)�̤��xԝ��Zp�<��8�h+�6��y��U�^�t؁
Ƅ�`�"1�4�K0�D��m���rA�t��+_9:j�.��і���^��Ģn��� ����։�Z�e3��DŽk��&R-�����Ќ �ϬO�?gZA��1V�N��)��d�/H�r'��,�d��X��/�9�f6�0Ϥ��� s�eI�cD�`��J
��N�a���ظI���t0���+����o��'��qH
�R��.V23�\�i��)WQ^®�ZI�mB�4ʎ���Mb���}<,&VZʪ�U��a�ѭ,a�2$)���ϟ���x@�:,��.�@���0� ���V��p���z�0"^a���M6_PN61a��j���"��{N/����`樖M4�����T ���%bj�&�6s���j���=ؼ�'�|�(o�V�n7_�ى}�6�%���'~�*���O�d9��j�W9ώ$l��˼5%����VWBEU��Y<%-������4��i�ͳJ)���.���?����-r��_w�]�^x�i�����{Ze�<ZQ皁lur�Mp��e��#��x�CS�~A���&ln്_�g;�R����1�:rOx�0����1-��Yل��L9��*ų�E��\�w���/Z��@Y� ���L�ѹ��m^����MlH��A�i��VI���v����we��k����9Y�:�m�C.�v��(89�S��f7��R���P�38\xT0,I)\��v��7{���Нݵm�r2�C���g�gӗ���}->c�34�t�4�����s��� �j���갵m͝0xS�&��W������\�P
	;$��*�]���ީ��P7ˈ�$�� V��Cj%Kq�c�E���SL�A!�;���$��va���L<�iTM��-�#�8VLӹ7ix��q�E��L�c��2jjZ��s��b�KE���i9
�ՙO0*.��4��3;�W�V����/@ˬgo	�'������}5hY�����];s�%M��
�9r̃_�%;���p`;Y�'���
�T��[
�Eކ�C�@��
�8V�Í+a��vԖ1\r���xR/y։C}��F�~F]�М��t�>P@�f����/vF��ox�ZtP�đ{����(I"f�m�,��Z)�7-�X���2�N��LL��QO�O"d�7�$�i#�Y��U�8_�>-�;�=x,�Gޫ��� C�Dp�7�/QrxL&\p�� �A�)���a���5�)(���x
�1^���\:d��m�k`c������ھ�6(�-���K����c���8d��0w�n�އi��r�+_o�
�������N��X��ġYS�n7������Eg'�	�@�߱�h��ও��n.���Bb��_>&�?k��T�;T`HL�Qw�n�HL���Y��r1�-4'
�����}�r�z��\(#�%o�$&ҕ�7�r���rZ7q���լ�V[�q&넫F�=�A4U�;�ic�bi��Űi�_.������SA��6�<el	gf�!��KB�,r���G��dv�i)KL���_^a0��ω�<'�M$Z���Iv�Eph��b����z��Gx��ءewP��hv�1*L�P]�W[���Ȓ�P��#�ֺ��Z����\6l��7���l��mǥV��x���j���3XN�,+|���f\�J�yp��#�D���d����J+���C+W�.�9�V��]:ft����&�Sw����Y�n�[�[ff��Hm��ѩ#����TM�����w�D��j�ᦠ>�!��JOq�l����}^���x�P����y-t�EC^,w�VS�O,�u1�U�S���D���G��"e�T`*��q�J4�rk�m�彇4K��Ջ����VWp�����qo��nRӐ�%\��\`t�����a�|��^!q,
dX
�
#�Ɍ���yIe�QT���C�/�F
������ZA�.n1~{^xd܂�e�+[t�!qN�I��Y�R=m�n��j��&�^�Zבq��|�h�$����>*J�'�3]"y���ݔi�9�i�i4�+���!G����+����4Y*�����3�C�?�cT��������qp����H��=l�!�Q%IT^�q�m��2_���Kͦ�\
w���܋h��b�"�O�Hjǽ	:�ؤw 6X��
3�mb���c�*'
:��t�El�'�m���������Ʋ=NU�T��ED�܂����>�̡�N����8e�Ao��7_���V��_�r���Fo�3x4�&��Iٗk���*V�!���g�;;�����y�0ld�2�������W��E"�E*��SGW�,�*P��|�E���a�q��N� W��W֊7dTvz�>�D�{t�r����|�S�<ؐR���册�ʶ6�0y���K!�U�\��u���
�a`��<
���7�g�l`���Q�Jm1Y�3#na��Leh�Jgm�[ol�2�r����]Fۢ�%�&S�å�z�U�]�dyNն��,�u�"�B�0�ꦖw���b�b5�]v����q�D.7�Fq�F11�ٻ��-�/,�}%6������0R�a�I�Ycq*,7\�;ظ��]�@^�Z�1z}?��;�}�0ؕ'Pf���l�(CNc8��kgwLg�y�Jģ�a��ڊP�OLY}V|
ڈ;���>���@�hod���cbZ�k�"�ޝ*T�S�
eg0�G$ő�FB͋4:�}��&{?G�Y=�����+�\��I] ��7>�a�I;���K�Z,k�:��Vn��c�)H�/
���k{z���k)�̖=ں[y�e���RC��U�`��SdY��w�7�p����J"S(,S���AG�Aƒm�.v�ǎ3oX��	����r<1�d�̉�
<Zf�}-��~���#���3"����7��EHٱ�%�6�S�����i��Q$a,|�_����f�7�T���-v�F��gU���s�إIO`�B,�4�^4�h�2��a�q *.'1��!>sd�ڛK���L��(?*�C���Xe:�����A��@�C��8ȼKda���2�kZ�~�'���{�˟e�r�WMH������L��!��-��\Γa~�!��`;w3[�_E�p�V(���yꍑ�L"��X�U���	�ÈiE�� �z�T
��n�[�����1t���_[�5��ۿ��̻��6D���wɦ"V]��k:
�Ӫ�=L��SQ�}���A�L6ʵi�Y�e�憊e��d*_v8D��Y&�b{WߌҺ�_�2ww�Y�<��P��D�+��K,��v����3��X�=�e�9��63;ٺ20��Lz$��1d�6��WZ��2�DW��װ�'T�*�\^�2����P܅�RQj������3HY��*4��,�-�����hz,W���F�渭_$>�"�PnbK�M2��a�=@� ��H�N#�4[�Lğ�^���-��[��:�3�������N�T����lcJ(�X�m�<A
䤶ZW�m>�Lr&|�$�>��7��؈���\\����,#Pf]���
�C|������|�>�|"�Re�*Ȇ"_��$HqW|gn���غ>�.�Bw�������H���Y���r���<�Et9�$ƽ(�!���Fpx("Put��Z'	��*
�=��1q��ČOJ�����k���zu�\�.���Yz9bH���x��Ve))Z���e/���+
�L}�t�i��3-�Fȱ�O��ةd��L�qq���0�$�|\�2QH%t"�
r�O����gk3�:�����վ�PR2�\�����qr-)�P./��[p��8���=f��V�Ĝ��.�5
�.&l�����U�r��u\�ʨ>���R�L���g���
��0�������w�r��(=��=7Y����
�p��q�ꅌ��q>��V�3��?pi�.}:��+����b���{�~�˿,�֟�+��䒬�E<'\f�>�*7�W���)q%�NVw�ƍ�ճ���7��洦IL�e�N#mmِJ����;��0�Gf�uԥ�P)V�ubM�G�
Y�f��up�ag�ԋCY�4?���N5��2�.��I-��^`_.�	��Mi��۵.��4��$F��c�օK���E�˨3���}%^��\�=]QݎK���V^ݏ3�p5"�Ċ�8��Ǯ��w��ѫ��=5�I
S��_�Up�gi��'�\�׌�(
A"�M����-ۡ2H��q��?6K0䋅Q��p�S�9@�:�{�Km��b���O����,��k�G���09��	���FP�+�9���&"VN!����L!����cO[��X�}��C�sZ���.h�1ܸ�MtR�\<W�Pq�;�}yO�ݵ�3�ܷm�L��^�pxtc���9ߴ�F|���W���A�f�7a/��x����v.��p~h�ύx"e8Wj-����aw�����|0��R�X��%;!��QD�RO���<�{��B�޶�1��q	vVL68 �L'	MS�yi#�V��VA�|3����TWx*���D��O��l�u�Y��g��Ӳ{baB���$�������~/��'���]��]SN�ue�ኈ2ٱvn��֢�y9�\6��
^�_R�K6�m]�J�ĉ�b���&�(A��m��(��5ő+�{
�+>���Ā��^�z�����ʗa�Tî|z!T=!LtݩE�s!����:��:z�[V�ʅ��:���&�嵮
t���ii�5���P&�U0���q�������?HA?0у�,I��]�f�l�9���u�(���OMr�L>q;W�w{6Φ��}DLҠX�%�a����~�f��&8nBp�t�8�vY2�ޡ:����F�y�\�d{��t�K�>����|��>;�;�ɀ59�y���Y>b5�<h��,��]���"̽�n�ί��_���M,�Y���V�'%l�uT��	O����	������z�I���!r�Z[L2	nr��Ang�/�;Cq�|Y��j����:���/���;�q�x�͆̀?O�NɄT�;n�L�F�?_�c�{��>�]��>���٢�q�"��j�M�T�|t\>ɩ[��=�g�/(_���^\=gݴ����J���m�<"�eC�\��q�r��j��%&�^>���|���'�yO2�,���L˺K՘������3[.ȶ?������+c��V��qZ���Cլ�<[�'1�F[�w�tK��Lh�pۚ|C,��<���o���S*�HI�t�Ic)�Kzd_�f�X��}��`1Oi��m�-O�)�T+�H��8#��;�����_|T.y�v(se��N�n���ed�v�_r�+��?�H���N1���[�_]6D��
�a�@��\N!��an�`���XW\�	J�Ȭo�~.͔�F�G+Q�R�^�i����
�XӬ&ޙ����|ˤ�&t���'��
�BIlj�����gbs���Z��_��2ˈ���A���N�RA֝"񛘼[��`M���G�[��9�e�s��¹�4}$e��|
Ɏ*�>��4��e��0��	�E&������ώ��|�-$�&[���$��=C��[���ħ.V�|9V��rғ�Δ6I;7 ������?�]O:3=@�Ȣ^�)�o��N�u>7�2b����&���O-�'�#�zM���E&&d� ���	NvN����M�W�w$�O�I"f���6 �Hb�k��"��4�|Y�q|Bך�U�}~�hm��X/fJȏ���+N��DwI��q� ��\��(��Ec8#�"NӧS3��7_<�q���	��;���C`6ޒ�����+�$����3��K����pe���bg6��p�m����uZ[��b6��d��W��=�|T��+����y<� ��F֡'�+G���Ooߖ�F�e߹
(�UIڐ`>���XUYF�����$�T�~�@"H�"PP��w0�E�zz���s�ï�3��˲D ��#��~�����-t�z�Y�`���Ė��$����@�9�Ĝ���)�@Je����(�N�A�?BIS� ���T����\�JmŚH�dN�0��,��2l(˸�&��%)���f5J�xOh^�3��
#i�<�F��|x\���h�-�4��e|jYě=<
�Qϙra$gX�>d���fH5�=��9��!.��.�6̞���'%6#EM�\oN!I�5�<ݐcd����11��s,���W�dO~:K�_QܖN�-p�9�+��6�`Q��y�
�x3�vW��w�A�v�e�z#g�w�D4�oar�]7�%��9?v*��}��Zb����2�����XEA
ҥB����O���,��������9E�.�y����h^���;�Sk�+��"o��pDt��LG��Y����#�*���}@k1����(q�.23����ңhpd��Ԡ�ضx��L����[-[$-_�V}��MY�z��͟�u`�,��t>�?^}k���R� GW�e
��1Y��ni��&�8ϝ�[]?t�_������$�4v�i��Y=��	E-����귨#�j�>CT�c�8D��ݩ��܈�جsE��C�i�E���)�5��r���Wќ�V��\� u�cA��P\���*-�ƴᛯ�����b߰C���~����vG��쨖��U-2:U�+�����h|]�e���)���"��E;;A	
�fW�^��F2�S*�eu
J��s�K���(�P��U-Vvz=�?�]qQa����j���u樆'��Q�lW"=�b�k)���Pk{��z���I
�N�y�権uRkTͨ���D;X	Z�����eh,5$v�=�I�ơ="�����#g��\iT#$�x�d�R�=bK0�J�,�+�pl����g�F�����M�y>.�:Մ���i�F�۞�����f���n^_�t�Ӂ/�T8�A�"����	tK�c��
縓x�P��/s�?xiA���Ttm��i)3G[�1�\Emk���Sއk�K8��4��:V[6�Nͽu����S���ko�罣����Ӄ����W�pD��P��l$���6^��(L�z�Za㲆bN=j"t)
g�"��e�0m��5b�w5Ww�[u	�u�
��{1\H����E
�%Z��H�,�S2+2�s�k��ڂU��vTz1}��I���X�0"zzu��]�B{��"v݅>�J��4������m
^��@�H��K��O��$���y�
�4tK�A�X��Y�3�M���d6�\G5#(Yi�8��|�>&^�<M��GZʈ����|���fBi���ԯ��F��V!g�7a4[�KP��Uv�b�6K���r����K�衃ԇz���Fy�<*�N�#D���޲"���B�1�P��dJy�n�?�|u��^��g\�*\���9�PS�2�`����e%��u�k3�\�����c��V�9Y�<��9��M:Uz��	�蹲�	�;9v�;�����2��*Ifxv�&�(��r�<�l┙�,�=�n�X�lFb�,����� �;Y�R?�4ǘ�0u�����
��e���Q���%���{�B��k�UA0I�<�4���8��s��V�����󕛨ɴ9A��	uGS�#`�X�2�
Q�sy�@��<��\�P� �����f94YF^��=��UQY��GP��o�������c�
�	��r0G4��8�Xh��Z�&��@��S����}%��ʫ��N�@�떕pbY��dZU/̄�C���>�=�/��ՂH��5/��/jҰֵX
){�K�x9�����h,��p�K���Z,���v��ɻ��G/��	��K$s��V۫La�7��u���,�1�c�3�,�ϝ�Ekr�>6T�n�2�K��FW�p�H�F�"M�Þ�
�=�N�~�Ru�o�4��cMV-�1L��33x�Bk�mn�z��[�A�L�1�۳Io�6R�с�͇��x{X_�sV��ǀ[�=���U�� ��VXIS�t��e��h��+�O�n󏖄�Dap�ósˊ����))�2��iON��'�c`&���ȿ��Xp�'�����v膺�ܒ�x�M���� `���T#�:�|���:*���LG�;��MAY�t٬LW�QF����2�(
��U�p8�Y�f�YL�0J��ؗ_�	�w���-Q�0����(KA�O�/'��ؕ�����5T�=g'�[�dE�Q̼��)��^3X՚�JK����w-����Ӷ��W<&�,�i�q�%T�o��Z�e�?r�t����F���?�m���:7"p��3���XFA�b���v��a�5�?��O�(��5dO�s��+NnZ	e�rR'�B�>�DZ�6���	G�J��a(m���_$�|\Dj��C��4��;�ς�:Z%�R�$.�pk�����lw�e�X�x�<����@D��֍�N���G�ۅ9�ʰM���%��|#1	�{)�i�I#�Ii\#W%3����1ٞ��j�F�r���a�b�')�eb�uB{�t��a,�i=N�,k���U�M,L�+���N�w
���+�cّ���r|�Y�v� ~�F�9��6B�o���T���%.�'�GG�l^��G�7@"�,��0_�!X9P��x)�p�@ fo��Dʜk*�f�o"-[r�t���휳�eCY�1,�Q�Hst�|�3�����|C�X��ܦ�Vs?�fw$���-)c)[|g�=%�xDY}�Y`�57U,6E#q���((�0j�vN.����fu9�%�y&+ţ��6�La-c ��7����+����KAAj�O�J�\���ʢ���zm�uF�%����:$��[yW��Q5W��ߨ��B'�\��}yAR/�kl:|�
E�HR�:M������0+&o �dEw^Qa� �g6�AZX�S�vce��̓l�D�	.��,�	��
�H/Cn��]YH
�D��
k~ ��w�X����?��g�Lԛ�.���>Br.q�J�>�"SvW٫w�K�^�<�V�f1ZKOҤk���
OG~[�4�Pmi�v��	 E~�lG}p�`C��9J�)��˵搦L�:WsO��>qn��Ѽ�X��,Jx���^6>��iF[ ���n���a�&��9e#^�u9
�p���^����/�=�/�($�bU}wgk���i�'֢�'�X�C[�/t�8u{�@�5Bo�1典T��>Xzlc����s�.� kj���;��`�����D�l�F�:��PֺYH�Zs~3qE;���ek<��!\H.��
t�ìZ�=2��JKEAwUz��BА	#O��g9��)}�_�Y���3�^��Z�u������Xf�6l�4��0D;���Q1AY���G����x�UX��8[��8��V���svs<6�֫:�?�u���qY�{^�g&��
<`�	���
��{'G�G/��.Q29/R`�0�<��d��ԧ,�WR�J�PlT��&^�A���5�a� ���Sj�4[���l|(�4+X���I��Q#YLQD}x��:
�+�kKu�Ғ��D�._�άs2��=�ߑ��ˆr�
��(�,�9a�s�̞��, �WSI;dJ��l�ie�2�,�l�4�o��E#��\T�V3Dca�S�`�����k��H~o�P����)ñ&�+uP�B�'S*q�;�����%�فZl'p�R�S�3X�����-B��~h'Ұ�����<X�d*h%	��k�HÄ7]GA������)������t�L�|nAM����}F�vӖ����W���
���^6��e7;�+��ն�!Z�<�o*��)�v����/�8��|D�Z�8��-5~oXvS�fE��N��(k��a�a��������J��"@
}�i�k/������K,<���������ׂq	Q�#���Y������Q)��!��uOީ���K(����Ը������=��ZƢUGZ�b&I�E�Pؔ�COq*ܝ�ZF�S
sW���=�����c����JήO���s��cN.�Ԉኈ���^î���R$�j��F��Ꝣx��SVػ,���-j�)c#@�0yx��ֽ�ɺCՆ:��@F�e�̿�p�
ZL��7pt	�����~2�����5逇�Փ�7�@����u���Ǻ�UY��BF,9=@ɚ����9nv-Ym��tՌ��9#�}0F
�X:gܶ���=\]̈�
SRzN(^��4త5q�ث���+�������h�Q\˭:SlzL��F���>�:X0�b=V�����|C�]�45La�M���9��m$�-�)yn�Unu��8n
Xl�1�k�~�6�䅏'�~C�(5_(��WI����Aڇ���c�PG���8����y��DL�:P���eF�h(i���F�^���vy�.���o�W��P��n����H����_&�;-7��DH�nU��t�Z-�ݝ������L���	��;ʐ��p��V��W��n�i�LG��.�R�J�ZL?��C�2�����쩼���g�Rr|O	��bHe�x�ʘj�\@�T�p'�s����m��[�Dt��|Г�M����ґ�!��ݛzn��
u__���Ƣ�z�f��ƶ�Cɯ��f��o�����ow������:��ׇ��5q�;�f���9�n�%W;Tf�=
�t}<��]n�
��z�}�<����ߝOW_π��F6�����������'|�/���"λ���fE�g���ï��6���W�[�M?o7-=���������I��ce��^�l���$��Q��l~Q��檩����Lg+��9��K���,!b�̸�9_�(����Q&���g��	)=�o��H�O�h���W�T+]k@�(n�ҷ�)��K��Mm�S�}���y���ᥘaR��+�X�"�D������S4~�h�XF;�FB{πf�Cŧݘ7p>a-m��|;ُ7���d	*��Nc܃�i�:�=`�D�#-�
�p�����x\_�}Ϡ�?��r�������-�G�񓛹��=����^�Di�;��ߋ���,v)U�t/`������x"�;S�`�帖���K�.��o��"Mδ3(��i}/hd�3e�$"�-A(��k�f�h���|��R��^б��eҐ0�ZBSY�L)6���jϖ�Z��=�w�݁~iz9g|�D�����qu�P�"ӽ�d	I�o�����־k���b���Qf:��b��m�]R���)$d߰]p��!;���� �$X�^(oP�B��6j
��"���ij~s
Ⱥ�Z8Y��F<n�C���ҕ��8��cj�!�l�GlA�&� 00��Y�C��!�� �q�O���1
����	Q�w��Y�����>HU~.�Ф���K�qgf��UT =c�pg�)�O8�7���.���(f��h��P��g�-��‡T�	�Z�!P���y^���n���7a**���e��,��L��+Yir��$����d�V��������Tl�*[ӽ��3q�_����ڛx���Y2V�F����)���y��̑�X}�5(d�B�b"SO���h����%�A|v���K�]��{sG���ƈ��(>�蘲�6$%�mO!�p����F�a"f�����ǁe��r�"����8V�EFc�S���PE���@� �"pR�����տG�P�+�ʲ�o��;�Ӎ�����ʯ� ���N�3Eu�<����,����4����B��Q�~Fs"��ח�U+"6d�Ҥ���` �F�	��<U��o �6�[�r�'L�u�,��h��o*K���n�-�fޗNlSk��L���
/��_���
#
��e�Nי�T"gZ��R��3_b�@����c2U�$���<���689�ʏ
7$Cf�Ub������+8��<	4���!�O3 �ueuv���ׂe�s�i�W�"�ì~��.���@Vْ�bI��ɛv�-N����^���c���q��0m!�3�Y��,;�"�2X��.YgjBa����t_	��RT�;_D�����/c>��]u����&Ъ����M�H?���mޚ�A��}�7!?����>:�n#�!�}Q�[цϷ����6�~
�7��/�
�N�ɚ0;��,���F�
�
�4˻Y�[͕�C��>Tq�<�5|����Vf#���;���e���z?8��vv�B�.7xH��Xd�TuP�Zw����Q��V?���� ���~���e�ь3�:ĈKm�x
۹(k�@oB�)3�v1g>�Z����tqq��-��6����0�ɸ���=�P!4+u��P���^}3�L��t�iv�y�&	�*�\���OQ�F��-gYS��1VĀ�&b��}a�45ż�󭉶���3��+ǔ����x�V�з�����z.�v)-���[�~�彝m�C׷�����V�6�{e�'��X�
@dᤷ	{�ø�*N�z5.��'u�q_[��Z�$-��u��>��=��:��y��"�
���<�7�V5�d��t��3��͠��P�͸�4۹5�����*�[�������T��H����p�M�hK:6z���9]�.yj���#���m.�Z�:��]�C�0��`.)��겪[l�Z歹�ƽj��
�[��rjf���j^����H�/�]lD�x�ͼ��Ҟ1e/��jY+�Q��Ax�� �Ϩ��50wa����e�rFv�c�@K*��3N�y��W�.�
~�jLZ�ɓ�ݞ���ߡ)
��.z2��R��N�I����֋�"w��υ���p>o���yQd��d,�Z�9��)M�P�{!�ړ�:ba�Kt�h%c_$��`G���}j��Ҿ:�E/��Z+�S~�'�2!���n%iy��=XH�<�vʧ�|T�H<���ю# B���ms��*�*;�ޖʵ�t����������L%��d��u
�1��P�R�ʮ�<,���U�N�a���7M�o���H�C&����D�!�@�PF�F%J�b�ӢM��G��ò,_���w�h��KVI!�v
�U��t�j8� G���f�I�
�Ǜ�X=bFet,��d;|\��~r��y>{�Ǣm}��41"��4%����D���Ǝ:����n�&��
��|=��3�Ci��j�����ɮ�O�g�kQs�7�4mb��^�uE�7�E��<h2�k���-�H�ʫi�wP��%�3Q*�t���t�T��ä�l�����5i�Q�ݢ��m�%�2?�G�K�Im]=a������+%���y�P��*��Y�B,��@�O�����KA�q
�RKH6�r�M�|=/��))�9�x(�x�Z'Z��d;e8���(_z���Y&��c������lJ�h� �ߖ�ցrc!#�pZۧqP!��.38q������Y�>�چ�5*��tS�|�vN7Z�,e�7������T0u��^�_���W�##��s!q�J-�NgS�5<��x(r�.�f"�
�"��ε�fA%��-<H�O�ćN�ȵ�]ݳBB�b�fg�X^4D�H-��?�y��RS>G��][�[(2�}E��:��gz>�`p�~}zB�꫱�����/�ځ��Tn Ky�#���n���z��e�k�=��Kի����&�DV��<"�튎,6��T��t��]���l��q��B{�dg�ȧA�ź����4����l�i��\ȳM]�`��>r.�`RbDŢ&+`|!��S�IO�'�v�{V�;]T�Ko��N�t{@	͏��S@�HvK:?(�?K��	���bj:'K^.�W�6gB�F��/֪��E*S�wH�t��j���HoT�*qU3Ho���}I�h���C`�1�32�g�bx�
�`��:{^��6tUWu#��(�š�h��aL�8+�øgC޼��%���$��r6um�[=��ڳ�\���^ĩ>'�>}��f���]�	�:}[��~ �U*9��������qmP�������Be���dUB<�;ĠrX��]�v�`KG�ޅ��(��3�C�CN-��*3�"�\�6Z��L��T�8��.
�;��b<��x�Q��̵����&L�����2�
~��j0��)�'S�Cf�g@����z'���ŷ��8w��ͮ�1&�!-���4w��$��k��H��2�p��]�"�:c!�X�~a�"4����܊���)��O>�U��r���"y�P^D�V'�ah�ƺ���h��L�Uh,am���Y=Ux��h�`p_�N'4�K����)�� 6�┶^�.���\�K�dp��+a�m��>��Yg�b�Q�=�A�k�g<����^�+��Bh�e�/��B��]	VaZT4��DƤ�UdY:����O'<�}%\��D�̺J��=�2J�V/k[ƪNFےJL?�"5
�a��U��gʅ�P�:�ˌK�:z�9�@�(�C��ȎΡB_�.��){j���L˩�*Ej�tG4w2M�*/N�CV$�ꂧ,�|#���B�����_��Z�0�rK�	����Ε�Q}�շk��	>���6��Ee�S7������]��i  �J��%DXw^0��_�P�8�v��b.=�_x`V>��|�:b�gl���%�+A��f���a��y�EY���D(F/�3&>�?�ϻ����&�-��������q�|(JN_B�K�؟��1���x�L��R8|��v���)���.ӐE0?mj&��u�t��:�e�|�x�=����#���Q1�ʯ���l���#8�.�O=��3�Ї����?�R�]��Y��H�0����l,| >�]�8]�z�ʠ{�p*xiނ���LJ���OU����rY�����=�Z!�S����C�Y��c^,WC���uXe7b�5�azu��|!��Q��b��YiVT�j�`��
U��;܊ӏ�c(I�V��@o���d��e��K���x9Z�hZ�Qө��@���9i2�d�T���19Ʀ$��"�[�Xl6Vq����nɀ`�ˉA��,���Aa��[���>v/�5�ι��1*�g*q$u/Z.�`Q���E+ĉ*H��{��l3���x�z�����$�����we��Xy�ؙ{QF�.���$D�Z����q?u�y��7����%rb��P֗}�e;�ԓ�6�D%���D��ShO�>�˯xl��巢�s�Ϫ1C�L~5�r��г�̦�Ӛ�NݔN$���`�
o����¾�[�3���轔���7�*��Ƥp#!V�`�̉��kT�9�:9�CC����
�o�L���'�%-_=׉]��U
��Hs��PeLT.�i�
�o�"�Qa�,�m��QO&�r�F�K:O"�����]W�<K[�.$�fQ�}j-_�M���UY��$�!	c�f�=��/fG^�	�/��޼(z�v�y�y������(�����̱-S�1���tr���Hq.s���aS���܋�-�/�R�F�r�q�|~��0<��&�J22N$�Npǩb)v+W�!q���u�~R���Q��i��ҥ�D�Pa�E���8A.�d)�!aP�Ι�NnUf�Af9�-���\�{���A"�1[xe�0�����v\�P+٨Dm�o;�Xǿ�;����N���bsK� ������U���yIf�5RS*�
�v9��3_�F����kaA4|v��l���3�|*E��Nߞb�Yy�f%>�Z�i����n����=���طOA�kt�޴9¾2d�W�1�y�C��Y���ޕm-��[�E�~�3QV�$	0bm32Y�����������+�K����>���n�;@�w:W�sqL>7��H �m�l��	V$�>b���Ya��x����_����P�N^�!E0�Ore5����Ŵ�W��G2�����2p���?;�=�
p�i��@}u�$,�wH��sV4����@	lZ'pb�à%
����⃢�3�(V��Y�6A�Ѱ��ͼ�m�y���`�}fPi��7iQ�}�17vnVc�
TqA�Ef"sjHggʝ�(u 	bӹ)����T��,�U
jL��YK_=�k�wh5J�����?^=TMȮ���_�3~\���>�*��>�O`�jƯ�綑��7Au
�GZ��نk�s�yӋ�g���]�B�t�܇������U��7G�%�ư���~#EY��-��鎣�N>9�x_*v�LY�Nn��H���1�H���L~(��&y��3�%-r�e-����!q�8��tt����w$�|�O(�%�2ba�&�_�7���&�P;�J��<Y�O�����p'��P�b���+|�-�K�����<t�h?z�ߏ���%5>-��n{ښ�Hʧ��x� RJ�&�YH��i8�a����c��[�R��+�dYJ�}��]�A�7V��}��K�^"sy�o��v�y�a���L��ب�!�F�G���*�}׍��J2)_
�p����Sm�Ń�m5������^W����Z�#KֲJ��T����k�X	��2�u�k��O�W��NW��u�.Gt��Kי
w[d�L�T��N��/����&]��2�-�@�Q�w�"��L��6�|��RC�n��p<յj9C�K;�7��<&_�7q�����Y4�\8$lZ1��&K��l��_�U�-,.H��F�>��HE�Ӷ��a������;�+yC��G$k��G��("U�E���X�&��L�l��o$"0V�U]��0���ćҡ��g�t��z�lC9vhyql$vF:�WBe��x�ˢ�bZX�]�.��``�Bܫ�G��~�{N;������>����;_7�Ⱥ,yqO��7�+}��:8��w�\ַi�Bw{F��)���w[��;�
z�&&�ѡ��6;�lG_��`�&���a���Vb�i��~R��
��(
��m(sl]Jݭ�R`����
4��߼x��JD��� 6���U4��TE�.r��E�M�[B��=9o\�-�_,$˛xH'���
#h��׾�����u&v��K�ș"A4�2%��>����q&t�^P��5��l�j0Nļ�)�>�^���<i�:��mΌ����Eg�Mytk�'�M�&�^����\9����#ܖLcH�`�~�6B�d�Wd����R7��g���������𧳃���7�oF?��<��:|�7:|s����8��d9U��=^��fd;H�����������,��i���W���UF����zu�L*�X>Wa��+|.��Ǟ#uUj�Q�%�����UF�_�a;�]�\y�e�zr�!\p����½�;�*��[�A�&O[rJT��*��:�b��^庸-u�
��RD����񮶨T��
q!���Ϯ�}H����+���+[���i[
T�QZ@��-�2S�(͛A�6gw�yH�"�b�!��8�
>��6�D����c�{!h|�a�_��&�+G���a�zR�<pH�y�G��Q�>��J®�H�òI�\P�д�>�d��D�+D��)��WhL�ʖh���G�	���UnFF��u����	�*!�XT��+~{�lc+y��;���OE�y�ˡ���i)rvbV�(AztM1�����
�Mt��2G��"*�D�o�/jq��gP:�V&]��h�k�t+�����\�[A���T�~�a$���ǯ9V+�y��~�1��|�!eM�/:�a��7G՛�J�`��Ν�K^��DI7EfXX�z9|2W-�+�z���W��J������ͼv��H���`nY#��R�bp3�Gv�ݕ�ڃ��B�g���C�����1�jߦ)f��pTmk�;&��0�x���L@ν!�e$.��y�x�e�Ztxq�M�A��X�n�C�6����]�D?�˵�|M=in�9�Q�ٙ��+XH	Y�L���-�h9]h���}l��a�0")dI�g�B+#(S�B�ћ�.6��vb1NT�u�7�j�X��}�VR��>X���(�;�V�X-�7��{)arQ����gt[�+]*ȿۋ�q3�5|��|축�����~�kH���@c'��F�Vc�x�D�A^&��E
D�q�W������B��ji�hP���}Jn�
38X����hd:��jq+��H޵au������x�a���f��*SO�[:��zx[4]4~oӿ@c�*��%b�P��rF�J���(����e}5�>�-�3P:��=��K)�*$`���stpt��a����Ґ�yٔ�k���pZb�2�P�\� ��^kA���Ӥ%������ݨ��%<nTq�TN�EG�7���R��{�� :O����g�♲vp�f%͋�����Ơmy�M�ݿ�ր�|��ݏ�멬j%�~�/����^�o����dN�[�G���Z���
��
ׂT��7�$9����Zt�1bQ$�	�jq�in
��{��J�;��]��N���BF�~���m�BU�(�^�}pMQ�E�߿в(����J��w�p_��8�߱%T<�q��vY��wg����/��@ڍbQ��#�!���}]��b�%7�_H�qx���/�O��+p>�ք8(�L��hs���1{��ݮ��b����;j
&��*j��M0y��G��:��o�}#�
�ߡ�O[��W	-�C�
u�u���ޤ�PO��=� ,/[Q&4d��c��'���F��<���fE�IoK�my0�i������k�cd�IAT~Kq[n�H�\�-��}��/�oԪ0�q��&F��p���)KV�	hC�$���A?i�P�p�C�'/�Λ���ţv���*��;�U��F(rT����*4�E��a��&B�(�F���ꥄ���MB4`�c��,\̲iz,���_�4��!,P�,Y��z�=�w���~8ԓ<^�2�n@"S?�s�'�э(�ލ��V�1bK�W0��jXP y�|q�=
Rn�qB��X��=���T<{2�K�W�M}���NOY�ֶ��8�$�Z#ԗ��+xH1&��>y{��_B+�=�����P��ʱH�H�W�5��o�3�u����>;_m�0��4W<�Rw�ɜK�'ݖ��Rчz�&P��	��U�׍��
P��'����a-P׷�cO�°”Bu�8�}'��$��X,]�G���b+{P�J�/��rX��D������믝S`�wB������p��'�)�d�(|A�m�ɑm�b`]���~/Ycz����=�o�1��O`��V����_�cێ���.��=.��k�%a��[�M��l��4�2��4����0q�#��d�.E�5GFc�V��̉W��
�t߹��'.Ï�|\��ouGY��AH�U�D]$�O�H���_�F䥖P�_�*ȟ�hNb�We2F�H�M\�]�:f�2�r��@j����CK��U@=��U�z��CMPVm����zb��,RyR��u�G�'�N`��-�:_�:7�炯��2D���Ԅ0�>�SN�&:��7b�����-x.�[���cd��P�7����ӟ_�]k�6m��{�����^^Z<߂���!`�g����m�&�d��]�;ny~��!>��^Mϗ��T��םf؏�t��a�]F�l>P��4ާ�Rk�@N����	��v<���[f8d�3��+�_^p>I�;�������Tj�޺�,5q��>�!���F{�P�6������i<�����%('L���K����:����{��cv\���+�]nu���'��S�ۊa��F�O��Y�%h�9��(DF�mn%EW���KP���4}�����5%v��]�.4s5���險l���1O^Os^�jW��/M��y������d���U���H�
@�pޱ��E�[Y5#�2TZb���XJw���zD\����R媻^��<Ncr�>E����R�B]��顸e	6/��M�o?-'.�X�W0
}WN���"A�������c��2<���'��62N����C�q ʐp�y�����|�eXe����JB�¯������d�8�~������E�>�u>���j�G	���JmK���y\�F
{��ĕ uk���ޤ5I誻; �w�sM
[A���F�ɫ��:�9>��zR��pup�ٜM/�>��4������^O/U7Ƙ���:l��[��.�
��豚sʺ8ʍS�SsVz��}V��	��6h���s���"Mu77�4s��`�Y�O'�r�1
5����?$��-nP�^#)٭F7�L��ؽ���y��";� �~�I�gY_�<	� ����.���4���a��6(�iNo�Mx��[�zXɝ'�k�ʼ�"M=�'��8i�%����=S�`xnM��6`�O2g��}�P5�hV���;wM�g�{�>!�I���PQV�b��Z7�m��f<���«�c����$(�R*r��;�|�	ܤo򚈡�nt���ZvD��?���Bk(�"s�$tQ�I��X\)=�hTzL����΅$��j�g
�-�ͥ�TCWݿ�J�mQbPM՝��Q�ٽ��:��̡�)�XSe���ěԏ���U��b"]r��Y#v����s���[V���"���d�e�[�[� 
��)�@Y�_p�p�<���>e�G�yH~�a�
8��4i�'�����o�Ϻ��ɜ�6:��C:f �R\���yП���AƵ�����i�[j�;c��e�e��e@+~��\~
L�O�/�mӠ�_��Í���?4�j�<Di��|�����$)ίOn�"���X�k�����o���/k�^�r3u�*
yD�d0��ȡҠ�ѣ�@�/�Ō� \������4��1�O�Ƿ�v֨o��#|��_7!nθH7Д=SдDq�2P��Y���=R��E[=��\)\��ï�n�A��Q��:�/�?T�3BW��˞2.G��S���$_O<��T�;������ �=G1��S�u"�C	�L�^U����;H�GXIc�C<d�w����C���KW��X����0�fy�q�
e����$e�ܬF��Ûs�/�Zm$m�'��5���,<C
ᅜ��Ì�-x3�����<�9S�����:����f��9=P�8Ņ�ѥ���S�Q����f�h�	���+$��R�f����=֜~9f��{'ߐ����Ogi�+j��ҍ��q4�zE?�U,J:�oF���<^�sOC�7��v���io��D��~�-�λ릠�=:'�I�40Y�C�B���X�26� �0HA�T(���>�)���2��wTq��5�ۥ>����T��4�wrj�w�1X�.B�?�U��נ�(X×"����d~_�rr��-fV%r�g�3�ZY}-����C��0�i�Q�u�e���۪��� �)�^��9�s2좚���'����p
����ZJ)�(@벬��>&�ýVč�/
z�@Ԅ �S��a��N��+P��X@Ӗd���5m=C�gT;�(gT	��Z	�`�]-h�ay�C���4�C�a�܁���u�Ⱦ�~(9�÷(Ӗ~3-���U�S��B��
��Kp��פ.|,���ܦ���B�ט6|���p�"U�v��t�[��ST����E��2`u�����M@�벬���>�W�&_dX�xg',A��Lً��X���r�B���TAI�{�wIoW��j�����N����+.(,��U W��`����$�1
��J�gy�-Ezjm�}_/224m��I=S�e��9Pꍪ�5�W��+G��D|�ЗR����䎵=��8�G�u�
��s伓W,��r�D��_���Gl	VZɕ�u%Ԏ
6P?������pt���#�ȥ[���5�z;�݈x�����L�^v�?���.~:𥙊��>HQ����n��aLV��w��x��%���.�ټ���m@�#e�uM]	+H�8�5�
?\K^¹t���ֱ�Yv���\���z�D_{�?�=?�������z�#�#��*�k#�]
����Fa��{�"�6�p�	Q��K�`8�iN/��iSe��������
�H���m�X�ߋ�Bb�x�0j�/�+��@��d���]�1ל_����R���2��gV�o��҄�ӫ�|����P���.��!�Ϧ�H=N��7nk�r��G�g^�}�%`�7�[W ���[r���ސ���`�qm�-�'����8��XA�J���f�C�1��i�W[<RSFč��k%�4SJ�<6�~��6��
Y�ؽ����\�⬴�K�{��Y�伖�$l��_rD�>��\�4�Ht�Q9vN!�U
���E9 �(ꍑ�ʎ�S�st��Q��U�r$+\8�Vy��ϑ��4�)�6�/+�w��\�����M�u����z�!��)�}�!�m�ЩңO�H�F��N��ѹ�Ӡ�ݼ����]VJ2ó�4Y�@�E�+�g���g��vC��d3Nۺ��s�\�/0���d�J	��cN��fH�c��R:TCL��&��F;���V���IV�$����@��P2�D���a�Zi�~+k0R�Wn����ĩ/'�MM�@�c�ʸ+�5��]3et�Z���Cz��ФyM��T�W�eE(A�i��S2X��vkTL�+8�ئ����tc�"Nk���介
��N�6W�:��*/@��:u��[Y‰em���iU�@N������xV"=�����(K�Z�b)@�l�	$,��l�X��_��T�á.��j]�8+o��'�F?��b'���̍"[m�2���4#��aP�;Bd�Ƽף�M�@��>w.����Pջ�И/� ]u�p(I�4�{�*h��@��3�AKծ���Əi4[�p�0ek���-���UJ�nQ�3UǸn�&���G�{6�B��a}
�Y-K	n����cWu���C���Zy`%M!��c�R^c�|>��?Z����z�-+:�*�$���S�=�\8e�@�����3+��fp�b���L�FX�a�NsK��96�nP�Z���72�S�4�,��u/�0��32���26k�ҥ�2c�FQ��RtJ(�4�"W�áp�E�YL�0J��ؗ_A	�w����Q�0����(�A�O�/���ؕ�����ET�=g'�[�dG�Q̼��)��^3X՚�JK����w-Ş��Ӷ��W<&0-�i�s�%l�o��EZ�f�?r�t����F��%@�m���=7"�3���XFA�b���v�b�5�?��Og)��5|O�s��+NnZ	e�rR'�B�>�DZ�6����G�j��a(m���_d�|\Dj��C��4�;�ς�:Z%�RP%.�vk�����lw�e�X�x�<-����D��֍�N���G�ۅ9�ʰM���%�|#1	�{)�i�I#�Ii\#W%3����1ٞ����F�r��Fc�b�')�en�uN{�t��a,�i=N�,k���UFO,L�+ŠO�w
���+�cّ���r|�Y�v� ~�F��9��6D�o�F��l���E.�'HG�l^��G�7@"�,���6_��X9P��x)�p�@`fo��Dʜk*�f�o"-[r�t���휳�eCY�1,�Q�Hst�|�3C��o���`���1�Mm��~$<�A��H���ZR�R��Έ{J�Q������$�n�`l�F�@�.�%TPa��\p+���r�j.��W�G�1m���Z�@�o-P�Wi]a?�����L���bK��H̓;��$��zK�7K�uP*�����F���7R�Q-G�N��PX���(�^2#�ش��ꌑ�6u�~R��2aVL�@
�2��ԢB�OAr�l���.��e�����Vy�'ټ��\3Y*�h}2�^����������@Z9 񆱼����h��b
��7�]0_3}��\➕�}<E�쮲Wﬗ���yv�V��b����I#֚�[�����iơ��"+�6�P���َ�j��1s��SP�?�k�!M�Ju��L�'��g�N0o:�h%��Ǥ=w�����O�}o��8��2�[)+oX�Il�wNوf]E��"��)�y����ssA�Kz��9
�7�X�D_�]���|yZ���(�I:V4�V�&��iP�F
���cLy!.�j�V���ge+�\�K=���ݩ�R>=��9�k<Q:��Q�T~#�n�ҳ֜�L\Վ���x}��6�z��v��]�0�V����Y��RQ0^�0�4d���z��Y��w��b��x�L�4E`�Vgt���i.�Y���
�8�?+���~(sMP�E%z�ѝ,�E�xM�4�Vd=Β��5�Ȝ��M�������4�_�>{\փ�����D9h��tB�3�j��������K��K�LN�`*L#��7��)�)����3�eķ�[j����~d:��u8i���2ϖ�b4'�b��
X�i�2y�HSd�_���N���R}��f-'�˷�3-Ƥ��:o�x�'�:���y�� �����yr��
@{�3س� �M%�=��;`H�]^���ʌ�0���S���g�D�r]�[M��m�Oy�s��z��"��c��s ���<���C�
I��T���s��ז�fj
D���a\NEN��`b>��s
Z��H�F[4�^"�`a����$�3�$
��*�r�R/�Hk+K��6Sz3��5�F����M[f��f^���6$�z�8�w�v��Th�,`"@�~�p��E�,�� �}�W�x�`�!jU�l7���a�MA
�a];鲣��C��12��sl�()Hx��A4��ۦ�����?gW?,1���{.�nدj^�%D�l��g�vwP�~�NA��{��[�>y�z��rkL��c[�r���o�Ӌ�H k!��i!��$�qKaS�=���wVk)�N1�]}.���W\�W����>_dO+y�>����E�:�$4PC�+B�s{{
�>Z.K�8�i��g��x��S�ػ,���-ʻ)e#H�0yx���ݥɺGՆJ��@R�e�̿�x��ZL��7�t	���~2�����5逇�ٓ�7�@������&ʺ�UZ��9CF09=@I�����9nv-im
�t���9C�}8F��X>gܶ���]\]��
SRzN�^��4Ⱔ(5�٫���+�0�����h�Q\˭@S�zL��F���>�:X0
c=f����|��a�L5�a�M���I��m$�-�)yn�Vnu��8n
Yl�1�k�~��6�䆏'��~��(=_���WI����Aڇp��c�`G����x��
�y��DL�>P���e��h,i�3��F�^��+wy�.���o��W����P���n����H���_&�;-7��H�p��Jt�Z-�ݝ������L�@��	��;ʒ��p��V�2Wān�i�LK��.S�N�ZL?��C�:��������g�rr|O���bLe�����j�\��TLq'�s�	��m��[�Dt�����M����ґ�!��ݛzr2��ug��R�"�g�o,ʬ�PKB�}TD�A��~����litespeed-cache-en_ZA.poUT�VCbux����PKB�}T�NmV�������~litespeed-cache-en_ZA.moUT�VCbux����PK��1# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in English (Australia)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2019-08-02 00:56:54+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: en_AU\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr "PageSpeed Score"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr "After"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr "Before"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr "Improved by"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr "Page Load Time"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."

#: src/lang.cls.php:173
msgid "Preserve EXIF/XMP data"
msgstr "Preserve EXIF/XMP data"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Try GitHub Version"
msgstr "Try GitHub Version"

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr "Upgraded successfully."

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:62
msgid "Upgrade"
msgstr "Upgrade"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Turn On Auto Upgrade"

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Thank You for Using the LiteSpeed Cache Plugin!"

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Sure I'd love to review!"

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "New Version Available!"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "New release %s is available now."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Maybe Later"

#: src/lang.cls.php:150
msgid "Lazy Load Image Class Name Excludes"
msgstr "Lazy Load Image Class Name Excludes"

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Images containing these class names will not be lazy loaded."

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "If you turn any of the above settings OFF, please remove the related file types from the %s box."

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "For example, %1$s defines a TTL of %2$s seconds for %3$s."

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr "Failed to upgrade."

#: src/conf.cls.php:704
msgid "Changed setting successfully."
msgstr "Changed setting successfully."

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr "Both full and partial strings can be used."

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "You can turn shortcodes into ESI blocks."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Private Cache vs. Public Cache"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Replace %1$s with %2$s."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA will be bypassed automatically."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "ESI sample for developers"

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Cookie Values"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Cookie Simulation"

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr "Cookie Name"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Append query string %s to the resources to bypass this action."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr "Automatically Upgrade"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Your IP"

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Reset All Settings"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Reset successfully."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "This will reset all settings to default settings."

#: tpl/page_optm/settings_tuning.tpl.php:134
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separate critical CSS files will be generated for paths containing these strings."

#: src/lang.cls.php:135
msgid "Separate CCSS Cache URIs"
msgstr "Separate CCSS Cache URIs"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."

#: src/lang.cls.php:134
msgid "Separate CCSS Cache Post Types"
msgstr "Separate CCSS Cache Post Types"

#: tpl/page_optm/settings_tuning.tpl.php:119
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "List post types where each item of that type should have its own CCSS generated."

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr "Size list in queue waiting for cron"

#: tpl/page_optm/settings_media.tpl.php:158
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "If set to %1$s, before the placeholder is localised, the %2$s configuration will be used."

#: tpl/page_optm/settings_media.tpl.php:62
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."

#: tpl/page_optm/settings_media.tpl.php:61
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."

#: src/lang.cls.php:157
msgid "Responsive Placeholder"
msgstr "Responsive Placeholder"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Please enable LiteSpeed Cache in the plugin settings."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Please enable the LSCache Module at the server level, or ask your hosting provider."

#: src/gui.cls.php:781
msgid "Update %s now"
msgstr "Update %s now"

#: src/gui.cls.php:776
msgid "View %1$s version %2$s details"
msgstr "View %1$s version %2$s details"

#: src/gui.cls.php:773
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."

#: src/gui.cls.php:753
msgid "Install %s"
msgstr "Install %s"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "High-performance page caching and site optimisation from LiteSpeed"

#: src/img-optm.cls.php:1776
msgid "Reset the optimized data successfully."
msgstr "Reset the optimised data successfully."

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr "Images previously optimised"

#: src/lang.cls.php:170
msgid "Remove Original Backups"
msgstr "Remove Original Backups"

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Automatically remove the original image backups after fetching optimised images."

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Automatically request optimisation via cron job."

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr "A backup of each image is saved before it is optimised."

#: src/img-optm.cls.php:1656
msgid "Switched images successfully."
msgstr "Switched images successfully."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "This can improve quality but may result in larger images than lossy compression will."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimise images using lossless compression."

#: src/lang.cls.php:172
msgid "Optimize Losslessly"
msgstr "Optimise Losslessly"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Request WebP versions of original images when doing optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimise images and save backups of the originals in the same folder."

#: src/lang.cls.php:169
msgid "Optimize Original Images"
msgstr "Optimise Original Images"

#: tpl/page_optm/settings_css.tpl.php:174
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "When this option is turned %s, it will also load Google Fonts asynchronously."

#: tpl/page_optm/settings_css.tpl.php:256
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "This will inline the asynchronous CSS library to avoid render blocking."

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr "Inline CSS Async Lib"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr "Run Queue Manually"

#: tpl/page_optm/settings_css.tpl.php:85 tpl/page_optm/settings_css.tpl.php:195
msgid "Last requested cost"
msgstr "Last requested cost"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:82
#: tpl/page_optm/settings_css.tpl.php:192
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr "Last generated"

#: tpl/page_optm/settings_media.tpl.php:162
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "If set to %s this is done in the foreground, which may slow down page load."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "This will delete all generated critical CSS files"

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "Critical CSS"

#: tpl/page_optm/settings_css.tpl.php:169
msgid "Optimize CSS delivery."
msgstr "Optimise CSS delivery."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Disabling this may cause WordPress tasks triggered by AJAX to stop working."

#: src/utility.cls.php:236
msgid "right now"
msgstr "right now"

#: src/utility.cls.php:236
msgid "just now"
msgstr "just now"

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr "Saved"

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Last ran"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr "This is irreversible."

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr "Remove Original Image Backups"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr "Files"

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr "Last calculated"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calculate Original Image Storage"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "You will be unable to Revert Optimisation once the backups are deleted!"

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr "Storage Optimisation"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."

#: src/lang.cls.php:175
msgid "WebP For Extra srcset"
msgstr "WebP For Extra srcset"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Use the format %1$s or %2$s (element is optional)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Only attributes listed here will be replaced."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Specify which element attributes will be replaced with WebP."

#: src/lang.cls.php:174
msgid "WebP Attribute To Replace"
msgstr "WebP Attribute To Replace"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Only files within these directories will be pointed to the CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Included Directories"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "A Purge All will be executed when WordPress runs these hooks."

#: src/lang.cls.php:182
msgid "Purge All Hooks"
msgstr "Purge All Hooks"

#: src/gui.cls.php:479 src/gui.cls.php:579 src/gui.cls.php:629
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:506 src/gui.cls.php:666 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Opcode Cache"

#: src/purge.cls.php:192
msgid "Purged all caches successfully."
msgstr "Purged all caches successfully."

#: src/gui.cls.php:423
msgid "Forced cacheable"
msgstr "Forced cacheable"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be cached regardless of no-cacheable settings."

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr "Force Cache URIs"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Exclude Settings"

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Disable All Features"

#: src/gui.cls.php:487 src/gui.cls.php:637 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "CSS/JS Cache"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "This will disable LSCache and all optimisation features for debug purpose."

#: src/gui.cls.php:735 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr "Clean Up Unfinished Data"

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr "Images failed with other errors"

#: src/gui.cls.php:734 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr "Remove all previous unfinished image optimisation requests."

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr "Images with wrong meta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Join Us on Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Join the %s community."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Want to connect with other LiteSpeed users?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Get it from <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Your Email address on %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Use %s API functionality."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Join LiteSpeed Slack community"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visit LSCWP support forum"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Rate %s on %s"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr "Images notified to pull"

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr "Image files missing"

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr "What is a group?"

#: src/admin-display.cls.php:1165
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1162
msgid "%s group"
msgstr "%s group"

#: src/admin-display.cls.php:1152
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1149
msgid "%s groups"
msgstr "%s groups"

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "To randomise CDN hostname, define multiple hostnames for the same resources."

#: src/crawler.cls.php:826
msgid "Guest"
msgstr "Guest"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "To crawl the site as a logged-in user, enter the user ids to be simulated."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Role Simulation"

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr "running"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Size"

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr "Ended reason"

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr "Last interval"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr "Current crawler started at"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Run time for previous crawler"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d seconds"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Last complete run time for all crawlers"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Current sitemap crawl started at"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Save transients in database when %1$s is %2$s."

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr "Store Transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "If %1$s is %2$s, then %3$s must be populated!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Server allowed max value"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Server enforced value"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Server allowed min value"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTE"

#: src/admin-display.cls.php:1118
msgid "Server variable(s) %s available to override this setting."
msgstr "Server variable(s) %s available to override this setting."

#: src/admin-display.cls.php:1117 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:176
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:165
#: tpl/page_optm/settings_tuning.tpl.php:186
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:379
msgid "Reset the entire opcode cache successfully."
msgstr "Reset the entire opcode cache successfully."

#: src/purge.cls.php:367
msgid "Opcode cache is not enabled."
msgstr "Opcode cache is not enabled."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Imported setting file %s successfully."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Import failed due to file error."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "This will generate extra requests to the server, which will increase server load."

#: src/lang.cls.php:184
msgid "Instant Click"
msgstr "Instant Click"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Reset the entire opcode cache"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "This will import settings from a file and override all current LiteSpeed Cache settings."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Last imported"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Import"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Import Settings"

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Last exported"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Export"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Export Settings"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Import / Export"

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "How to Fix Problems Caused by CSS/JS Optimisation."

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Use keep-alive connections to speed up cache operations."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Database to be used"

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr "Redis Database ID"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Specify the password used when connecting."

#: src/lang.cls.php:88
msgid "Password"
msgstr "Password"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Only available when %s is installed."

#: src/lang.cls.php:87
msgid "Username"
msgstr "Username"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Your %s Hostname or IP address."

#: src/lang.cls.php:83
msgid "Method"
msgstr "Method"

#: src/purge.cls.php:420
msgid "Purge all object caches successfully."
msgstr "Purge all object caches successfully."

#: src/purge.cls.php:407
msgid "Object cache is not enabled."
msgstr "Object cache is not enabled."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Improve wp-admin speed through caching. (May encounter expired data)"

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr "Persistent Connection"

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr "Do Not Cache Groups"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groups cached at the network level."

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr "Global Groups"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Connection Test"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "%s Extension"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr "Status"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "Default TTL for cached objects."

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr "Default Object Lifetime"

#: src/lang.cls.php:85
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:84
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:496 src/gui.cls.php:656 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Object Cache"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Failed"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Passed"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Not Available"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Purge all the object caches"

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr "Failed to communicate with Cloudflare"

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr "Communicated with Cloudflare successfully."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "No available Cloudflare zone"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Notified Cloudflare to purge all successfully."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "Cloudflare API is set to off."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Notified Cloudflare to set development mode to %s successfully."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Once saved, it will be matched with the current list and completed automatically."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "You can just type part of the domain."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Domain"

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "Cloudflare API"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Purge Everything"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cloudflare Cache"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Development Mode will be turned off automatically after three hours."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Development mode will be automatically turned off in %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "Current status is %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "Current status is %1$s since %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Check Status"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Turn OFF"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Turn ON"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Development Mode"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Cloudflare Zone"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Cloudflare Domain"

#: src/gui.cls.php:646 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in real time."

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "For example"

#: src/lang.cls.php:126
msgid "DNS Prefetch"
msgstr "DNS Prefetch"

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Adding Style to Your Lazy-Loaded Images"

#: src/admin-display.cls.php:980 src/admin-display.cls.php:985
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Default value"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Static file type links to be replaced by CDN links."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "For example, to drop parameters beginning with %s, %s can be used here."

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr "Drop Query String"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."

#: src/lang.cls.php:183
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Improve HTTP/HTTPS Compatibility"

#: tpl/img_optm/summary.tpl.php:378
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Remove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files."

#: tpl/img_optm/summary.tpl.php:324
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Scan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Clear Log"

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "This will increase the size of optimised files."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising."

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "To test the cart, visit the <a %s>FAQ</a>."

#: src/utility.cls.php:239
msgid " %s ago"
msgstr " %s ago"

#: src/media.cls.php:315
msgid "WebP saved %s"
msgstr "WebP saved %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "If you run into any issues, please refer to the report number in your support message."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "This will also generate an API key from LiteSpeed's Server."

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr "Last pull initiated by cron at %s."

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Images will be pulled automatically if the cron job is running."

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr "Only press the button if the pull cron job is disabled."

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr "Pull Images"

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr "This process is automatic."

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr "Last Request"

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr "Images failed to pull"

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr "Images failed to fetch"

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr "Images Pulled"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Report"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Report date"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Report number"

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr "Privately cache cart when not empty."

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr "Privately Cache Cart"

#: src/lang.cls.php:131
msgid "Load Google Fonts Asynchronously"
msgstr "Load Google Fonts Asynchronously"

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr "Browser Cache TTL"

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Results can be checked in <a %s>Media Library</a>."

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Learn More"

#: src/media.cls.php:196
msgid "LiteSpeed Optimization"
msgstr "LiteSpeed Optimisation"

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr "Images requested"

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr "Images not yet requested"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr "Images total"

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr "Images optimised and pulled"

#: src/img-optm.cls.php:1706
msgid "Restored original file successfully."
msgstr "Restored original file successfully."

#: src/img-optm.cls.php:1690
msgid "Enabled WebP file successfully."
msgstr "Enabled WebP file successfully."

#: src/img-optm.cls.php:1684
msgid "Disabled WebP file successfully."
msgstr "Disabled WebP file successfully."

#: src/lang.cls.php:188
msgid "Image WebP Replacement"
msgstr "Image WebP Replacement"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Selected roles will be excluded from cache."

#: src/img-optm.cls.php:1713
msgid "Switched to optimized file successfully."
msgstr "Switched to optimised file successfully."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Significantly improve load time by replacing images with their optimised %s versions."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Tuning"

#: src/lang.cls.php:142
msgid "Role Excludes"
msgstr "Role Excludes"

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Tuning Settings"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "If the tag slug is not found, the tag will be removed from the list on save."

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr "Image Information"

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr "Total Reduction"

#: tpl/page_optm/settings_tuning.tpl.php:228
msgid "Selected roles will be excluded from all optimizations."
msgstr "Selected roles will be excluded from all optimisations."

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr "Send Optimisation Request"

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr "Optimisation Summary"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "LiteSpeed Cache Image Optimisation"

#: src/admin-display.cls.php:123 src/gui.cls.php:612
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr "Image Optimisation"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "JS Deferred Excludes"

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr "For example, %s can be used for a transparent placeholder."

#: tpl/page_optm/settings_media.tpl.php:46
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:167
#: tpl/page_optm/settings_tuning.tpl.php:188
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Elements with attribute %s in html code will be excluded."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:166
#: tpl/page_optm/settings_tuning.tpl.php:187
msgid "Filter %s is supported."
msgstr "Filter %s is supported."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Listed images will not be lazy loaded."

#: src/lang.cls.php:149
msgid "Lazy Load Image Excludes"
msgstr "Lazy Load Image Excludes"

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr "By default a grey image placeholder %s will be used."

#: src/lang.cls.php:140
msgid "URI Excludes"
msgstr "URI Excludes"

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr "Both full URLs and partial strings can be used."

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr "Load iframes only when they enter the viewport."

#: src/lang.cls.php:165
msgid "Lazy Load Iframes"
msgstr "Lazy Load Iframes"

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "This can improve page loading time by reducing initial HTTP requests."

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr "Load images only when they enter the viewport."

#: src/lang.cls.php:148
msgid "Lazy Load Images"
msgstr "Lazy Load Images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr "Media Settings"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "For example, for %s, %s and %s can be used here."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."

#: src/admin-display.cls.php:1133
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "To match the beginning, add %s to the beginning of the item."

#: src/admin-display.cls.php:1131
msgid "For example, for %s, %s can be used here."
msgstr "For example, for %s, %s can be used here."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Maybe later"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "I've already left a review"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Welcome to LiteSpeed"

#: src/gui.cls.php:456
msgid "No optimization"
msgstr "No optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:202
msgid "Prevent any optimization of listed pages."
msgstr "Prevent any optimisation of listed pages."

#: src/lang.cls.php:138
msgid "Remove WordPress Emoji"
msgstr "Remove WordPress Emoji"

#: src/gui.cls.php:464
msgid "More settings"
msgstr "More settings"

#: src/gui.cls.php:445
msgid "Private cache"
msgstr "Private cache"

#: src/gui.cls.php:434
msgid "Non cacheable"
msgstr "Non cacheable"

#: src/gui.cls.php:411
msgid "Mark this page as "
msgstr "Mark this page as "

#: src/gui.cls.php:403
msgid "Purge this page"
msgstr "Purge this page"

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr "Load JS Deferred"

#: tpl/page_optm/settings_tuning.tpl.php:148
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Specify critical CSS rules for above-the-fold content when enabling %s."

#: src/lang.cls.php:133
msgid "Critical CSS Rules"
msgstr "Critical CSS Rules"

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:148
msgid "Load CSS Asynchronously"
msgstr "Load CSS Asynchronously"

#: src/lang.cls.php:132
msgid "Remove Google Fonts"
msgstr "Remove Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:170
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."

#: src/lang.cls.php:130
msgid "Remove Query Strings"
msgstr "Remove Query Strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr "Browser Cache"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "tags"

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr "Do Not Cache Tags"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "To exclude %1$s, insert %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "categories"

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr "Do Not Cache Categories"

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr "Do Not Cache Query Strings"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Paths containing these strings will not be cached."

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr "Do Not Cache URIs"

#: src/admin-display.cls.php:1135 src/doc.cls.php:74
msgid "One per line."
msgstr "One per line."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "URI Paths containing these strings will NOT be cached as public."

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr "Private Cached URIs"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Paths containing these strings will not be served from the CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Exclude Path"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "This will affect all tags containing attributes: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Include File Types"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Include JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Include CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Include Images"

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr "CDN URL to be used. For example, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "CDN URL"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "Original URLs"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "CDN Settings"

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:233 src/admin-display.cls.php:838
#: src/admin-display.cls.php:865 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:72 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:232 src/admin-display.cls.php:837
#: src/admin-display.cls.php:866 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:174
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:351
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Notified LiteSpeed Web Server to purge CSS/JS entries."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minify HTML content."

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr "HTML Minify"

#: src/lang.cls.php:129
msgid "JS Excludes"
msgstr "JS Excludes"

#: src/data.upgrade.func.php:101 src/lang.cls.php:115
msgid "JS Combine"
msgstr "JS Combine"

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr "JS Minify"

#: src/lang.cls.php:128
msgid "CSS Excludes"
msgstr "CSS Excludes"

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr "CSS Combine"

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr "CSS Minify"

#: tpl/page_optm/entry.tpl.php:31
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "This will purge all minified/combined CSS/JS entries only"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purge %s Error"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Clean all transient options"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "All Transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Clean expired transient options"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Expired Transients"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Clean all trackbacks and pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/Pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Clean all trashed comments"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Database Optimiser"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimise all tables in your database"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimise Tables"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Trashed Comments"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Clean all spam comments"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Spam Comments"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Clean all trashed posts and pages"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Trashed Posts"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Clean all auto saved drafts"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Auto Drafts"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Clean all post revisions"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Post Revisions"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Clean All"

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr "Clean all transients successfully."

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr "Clean expired transients successfully."

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Clean trackbacks and pingbacks successfully."

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr "Clean trashed comments successfully."

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr "Clean spam comments successfully."

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr "Clean trashed posts and pages successfully."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Clean all successfully."

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr "Clean auto drafts successfully."

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr "Clean post revisions successfully."

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr "Optimised all tables."

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr "Default Private Cache TTL"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."

#: src/lang.cls.php:181 tpl/page_optm/settings_css.tpl.php:110
#: tpl/page_optm/settings_css.tpl.php:220
msgid "Vary Group"
msgstr "Vary Group"

#: src/lang.cls.php:179
msgid "Cache Comment Form"
msgstr "Cache Comment Form"

#: src/lang.cls.php:178
msgid "Cache Admin Bar"
msgstr "Cache Admin Bar"

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Private"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Public"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purge Settings"

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr "Cache PHP Resources"

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache Mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Advanced level will log more details."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basic"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr "Cache Login Page"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cache requests made by WordPress REST API calls."

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr "Cache REST API"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr "Cache Commenters"

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr "Cache Logged-in Users"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Cache Control Settings"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excludes"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:142
msgid "Purge"
msgstr "Purge"

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Privately cache front end pages for logged-in users. (LSWS %s required)"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "Current server time is %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Specify the time to purge the \"%s\" list."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Both %1$s and %2$s are acceptable."

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Scheduled Purge Time"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Scheduled Purge URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Shorten query strings in the debug log to improve readability."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Log File Size Limit"

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr "%s file not writable."

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr "%s file not readable."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Collapse Query Strings"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Log Cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "ESI Settings"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "A TTL of 0 indicates do not cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Recommended value: 28800 seconds (8 hours)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget Cache TTL:"

#: src/lang.cls.php:177 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Enable ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Custom Sitemap"

#: tpl/toolbox/purge.tpl.php:244
msgid "Purge pages by relative or full URL."
msgstr "Purge pages by relative or full URL."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:165
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "WARNING"

#: tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Last crawled:</b> %s item(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "The next complete sitemap crawl will start at"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Failed to write to %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "Folder is not writable: %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Can not create folder: %1$s. Error: %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "Folder does not exist: %s"

#: src/core.cls.php:296
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Notified LiteSpeed Web Server to purge the list."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Please visit the <a %s>Information</a> page on how to test the cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Allows listed IPs (one per line) to perform certain actions from their browsers."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Server Load Limit"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Specify Number of Threads to use while crawling."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Crawl Interval"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Interval Between Runs"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Specify time in seconds for the duration of the crawl interval."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Specify time in microseconds for the delay between requests during a crawl."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microseconds"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Select below for \"Purge by\" options."

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr "No crawler meta file generated yet"

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr "Show crawler status"

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr "Watch Crawler Status"

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "Run frequency is set by the Interval Between Runs setting."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Manually run"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reset position"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Then another WordPress is installed (NOT MULTISITE) at %s"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Delay"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Run Duration"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generated at %s"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Cron Name"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Run Frequency"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Crawler Cron"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "LiteSpeed Cache Crawler"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Threads"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d hours"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hour"

#: src/admin-display.cls.php:129 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "All pages with Recent Posts Widget"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "This will Purge Pages only"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purge Pages"

#: thirdparty/woocommerce.content.tpl.php:78
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "For example, if the home page for the site is located at %1$s, the shop page may be located at %2$s."

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Email Address"

#: src/gui.cls.php:754
msgid "Install Now"
msgstr "Install Now"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purged the blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Purged All!"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purged the URL!"

#: src/purge.cls.php:645
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notified LiteSpeed Web Server to purge error pages."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "If the login cookie was recently changed in the settings, please log out and back in."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "The network admin setting can be overridden here."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by post ID."
msgstr "Purge pages by post ID."

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "This will Purge Front Page only"

#: tpl/toolbox/purge.tpl.php:239
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:245
msgid "e.g. Use %s or %s."
msgstr "e.g. Use %s or %s."

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "However, there is no way of knowing all the possible customisations that were implemented."

#: src/core.cls.php:291
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Notified LiteSpeed Web Server to purge everything."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Use Primary Site Configuration"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "This will disable the settings page on all subsites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Check this option to use the primary site's configuration for all subsites."

#: src/admin-display.cls.php:706 src/admin-display.cls.php:711
msgid "Save Changes"
msgstr "Save Changes"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "The following options are selected, but are not editable in this settings page."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "The network admin selected use primary site configs for all subsites."

#: tpl/toolbox/purge.tpl.php:125
msgid "Empty Entire Cache"
msgstr "Empty Entire Cache"

#: tpl/toolbox/purge.tpl.php:127
msgid "This action should only be used if things are cached incorrectly."
msgstr "This action should only be used if things are cached incorrectly."

#: tpl/toolbox/purge.tpl.php:126
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Clears all cache entries related to this site, <i>including other web applications</i>."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "This may cause heavy load on the server."

#: tpl/toolbox/purge.tpl.php:131
msgid "This will clear EVERYTHING inside the cache."
msgstr "This will clear EVERYTHING inside the cache."

#: src/gui.cls.php:579
msgid "LiteSpeed Cache Purge All"
msgstr "LiteSpeed Cache Purge All"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "If you would rather not move at litespeed, you can deactivate this plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Create a post, make sure the front page is accurate."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visit the site while logged out."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Examples of test cases include:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "For that reason, please test the site to make sure everything still functions properly."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "This message indicates that the plugin was installed by the server admin."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "LiteSpeed Cache plugin is installed!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Debug Log"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "The Admin IP option will only output log messages on requests from admin IPs."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "The environment report contains detailed information about the WordPress configuration."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr "Note"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "After verifying that the cache works in general, please test the cart."

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr "Purge All On Upgrade"

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr "Use Front Page TTL for the Shop Page"

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr "Product Update Interval"

#: thirdparty/woocommerce.content.tpl.php:77
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Checking this option will force the shop page to use the front page TTL setting."

#: thirdparty/woocommerce.content.tpl.php:64
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."

#: thirdparty/woocommerce.content.tpl.php:51
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Always purge both product and categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Do not purge categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr "Purge product only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr "Purge product and categories only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr "Purge categories only when stock status changes."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purge product on changes to the quantity or stock status."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr "Htaccess did not match configuration option."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "If this is set to a number less than 30, feeds will not be cached."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Specify how long, in seconds, feeds are cached."

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr "Default Feed TTL"

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr "Failed to get %s file contents."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching these pages may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Some themes and plugins add resources via a PHP request."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching this resource may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico is requested on most pages."

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr "Cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Disabling this option may negatively affect performance."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "WARNING: The .htaccess login cookie and Database login cookie do not match."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "There is a WordPress installed for %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Example use case:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "The cookie set here will be used for this WordPress installation."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "This setting is useful for those that have multiple web applications for the same domain."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "The default login cookie is %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "No spaces and case sensitive."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SYNTAX: alphanumeric and \"_\"."

#: src/lang.cls.php:187
msgid "Login Cookie"
msgstr "Login Cookie"

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "These settings are meant for ADVANCED USERS ONLY."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Current %s Contents"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Advanced"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Advanced Settings"

#: tpl/toolbox/purge.tpl.php:258
msgid "Purge List"
msgstr "Purge List"

#: tpl/toolbox/purge.tpl.php:177
msgid "Purge By..."
msgstr "Purge By..."

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:224
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:218
msgid "Tag"
msgstr "Tag"

#: tpl/toolbox/purge.tpl.php:212
msgid "Post ID"
msgstr "Post ID"

#: tpl/toolbox/purge.tpl.php:206
msgid "Category"
msgstr "Category"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "More information about the available commands can be found here."

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "NOTICE: Database login cookie did not match your login cookie."

#: src/purge.cls.php:699
msgid "Purge tag %s"
msgstr "Purge tag %s"

#: src/purge.cls.php:672
msgid "Purge category %s"
msgstr "Purge category %s"

#: src/purge.cls.php:730
msgid "Purge url %s"
msgstr "Purge URL %s"

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr "NOTICE"

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr "This setting will edit the .htaccess file."

#: src/lang.cls.php:185
msgid "Do Not Cache Cookies"
msgstr "Do Not Cache Cookies"

#: src/lang.cls.php:186
msgid "Do Not Cache User Agents"
msgstr "Do Not Cache User Agents"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "This is to ensure compatibility prior to enabling the cache for all sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Network Enable Cache"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "NOTICE:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Other checkboxes will be ignored."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "List of Mobile User Agents"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "File %s is not writable."

#: src/gui.cls.php:595 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Manage"

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr "Default Front Page TTL"

#: src/purge.cls.php:613
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Notified LiteSpeed Web Server to purge the front page."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purge Front Page"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "All tags are cached by default."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "All categories are cached by default."

#: src/admin-display.cls.php:1134
msgid "To do an exact match, add %s to the end of the URL."
msgstr "To do an exact match, add %s to the end of the URL."

#: src/admin-display.cls.php:1130
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "The URLs will be compared to the REQUEST_URI server variable."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Select only the archive types that are currently used, the others can be left unchecked."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notes"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Use Network Admin Setting"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Disable"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Disabled"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Enabled"

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr "Do Not Cache Roles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Outputs to WordPress debug log."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Debug Level"

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr "Notice"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Term archive (include category, tag, and tax)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Daily archive"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Monthly archive"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Yearly archive"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Post type archive"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Author archive"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Home page"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Front page"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "All pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Select which pages will be automatically purged when posts are published/updated."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Auto Purge Rules For Publish/Update"

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr "Default Public Cache TTL"

#: src/admin-display.cls.php:949 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "seconds"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "Admin IPs"

#: src/admin-display.cls.php:117
msgid "General"
msgstr "General"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "LiteSpeed Cache Settings"

#: src/purge.cls.php:211
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Notified LiteSpeed Web Server to purge all LSCache entries."

#: src/gui.cls.php:471 src/gui.cls.php:479 src/gui.cls.php:487
#: src/gui.cls.php:496 src/gui.cls.php:506 src/gui.cls.php:516
#: src/gui.cls.php:526 src/gui.cls.php:535 src/gui.cls.php:545
#: src/gui.cls.php:555 src/gui.cls.php:621 src/gui.cls.php:629
#: src/gui.cls.php:637 src/gui.cls.php:646 src/gui.cls.php:656
#: src/gui.cls.php:666 src/gui.cls.php:676 src/gui.cls.php:686
#: src/gui.cls.php:695 src/gui.cls.php:705 src/gui.cls.php:715
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:37
#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
#: tpl/toolbox/purge.tpl.php:79 tpl/toolbox/purge.tpl.php:88
#: tpl/toolbox/purge.tpl.php:97 tpl/toolbox/purge.tpl.php:106
#: tpl/toolbox/purge.tpl.php:115
msgid "Purge All"
msgstr "Purge All"

#: src/admin-display.cls.php:281 src/gui.cls.php:603
msgid "Settings"
msgstr "Settings"PK�R�T�4RLu�rlitespeed-cache-en_GB.poUT	��b��bux�����irI�.��O���bʀ`�`g�\�$�"�dՓ�xDx^�p�r� %�ǻ�\`޿9Ĝ�/0WS�M�����53U����Emq[�t��_��"��u\�y��|��N�2z�I��b�$��$^�$,墊��$z�J'e�:���(͢��:-o��������&-�U�
��.Ӳ*��b�v�2)���+�M��E��I��v�Ʒ��S|��˦�N�����A���wO�'�Ӓ
��V�Y4�
Oz�'�qԛ=��
��[��﷌{���_��?���<�$Ϫ$��\@�|��n�q��G����2�����Փ#�,��*)����2ͮ�EG��2l�E�~�*/6�(�������̢�������$K��ʋg��u^�IY>�{O�&>�c�7qv�c�,J����yKE��dQ=9]�Q�a��ֿ�+�v�t˚�ʷ��)x�V^��E�N��K萕9��l���}�EΑ
��y��o��'����L��.��˨�Y��]�N�v����>�/[6�dy�?��:��Q`��z��K6%�G%�[�{Տn�ц�U���W��X�k�Q�߰��~�e���Mm�71+�ۛ��8�Ul���4�����t�t~��5�DI�g��a��h�HgrV�йeTV)�[����p�M�
�(K5;�`_���f�'��k��#�ږ6&G_�eGy�Zw3���;��Ug��.���^Cz�6_���%��a��7�����(�n �`a:�����@��K^]����9� :�n�r���C���&E|�N���5��O�[����U4g'*�'KM�g�:CQ��&]m�9�~z��do��ȢMΎ�x��*����m8���?��h��JCo�b�t�+DZX�|��vbg���-n��MQ�+	;�#�Ѓ�^�tW�M��5�Z���}w�^�0u�(���.���5��b���d()�8��M̾6���g?>��=Z���A7,(۬�|=Ͽ<�Q�'S��4��o�x�`<�n�N��[�Օ�&CiQh����(,�,���>�V9��p��i^��4]����8�����a��;t�k9�q����r��y�8ղ��
�pֽr����4k׵������t3vz��~ПH��2����m9q��}��]�8c�:��f�+�~��I�8��0:]Eծ�-�_�ݫW�2O�xz��4����v�D�|7��b��\&���	Ɲmɴ����SW:�KGjU��3Wr�eĺ�f딱-,	�/�
�g�˹�<�g�]蔄NC�7l����{�0�8~�=)��.����n��b�W�n�%ao�
;�p��r�N�u��#��IW,*��m�N��7��mv/|L�ѯiŞj�&a���2�߫��s��l��
�C�.4Q��(�&�v/���IE/�O$�����-�K��k�/)�0��=b���α�-�U�o�v���?��K�w��1v��P[.Z-��]�ok� L.HQ���.���f�ass��e�sG1�0���<���J�2%N�>4�>�
��ڬ�"����7х(��m%��P�*�=��—�À
4��=��y�%��6��G)�C�I�� �2D��nM�us�\Fo��s�;�8�����N�[�C�g��S�uR+�=��L�;2�67��̈����xC� �+8���X#�-֩�2Fj%�C��;�uȄ�"��ZL�]F�!�N�"QW�"ߦ�sg�io�s���M�y�d�EMW�C�jy���p�-ֻ%f왝1J���j�W)�k~3O�e@�-��d�Ⱥ���_FtO�$�-�4�bq�l�4/�*��z��D���w�e�J�Y� �LY���`{�1�;qyC�Nx��C��0���n�>�[�ĊS��5Z`���,:��}�uo��A��<+�����ߐ�N�$���ê��բ�N�~8��P=�EM-m�L:�/c����(�ֱ^��Ǥ���2Y��1��w&dSf#}��
/�r7ߤ��#!������w�.�U��7J��/�$F�q�1v!]�[��U��}W��n{]��8����*]|���y;_~����Wx��I��Dl��(�d��2��n��Fg�._>�^찯�H�D�3ׅp=���p�p�&fϯyB@�&g�q�9 	*o�����&�vlw��υ:q����J��P�ނ}P(
*l,��l�
o���#ᜐ�#ϡ���z��ǍE�XN����'˴d\�^58��{�EZ�Ә���J?I�TC����@��n���O�6��f�	�8�M|4gF�5��3/�,�|y���G�j����Cm�H���uՖ�j[�ݵ9�[�/��f)�\�t�+r|Gp+�6y*��;_�.J�?�ox�yt���t��hɓV�z9�0���JBSu�	�)�A�ą}�5j>~fñ!��0`0�){[_�#��,�n��,eI@:�u��Zi�4v�"�L�frH y�|Y�;=��=�"�R8%ӃV�s�Ei[A�n@w�z�q��ۋ�-�q��Ӗ	��P�'ރ(�DV2ޭ+��߈0��H6̬!��.��R�l@�͂�H�ZEi(��<�6��r>}�{g�6�X�;�O؂j3���rA#��V�шޘȨ��7s�k8T`ϲq�����!��ÖUܭ���`�9�v��U�:��Iu:��:�
l}C+ja]��	X�����9<{��L���+9/K96�|�gM!<q�%�` C5*V��5�q�,J)�_M�b�5)̋��L
��[Hɣ��dWV������T���6.^U��q�^&�J<�	����5J�����]�fq<��&�qS_��i_6��5��%�c�[r5���VL X-�I �;|���x,8,h�J���ZGsy~I�u�<�3���c}�(��Z(����,�y�S�R���2�u�T���V"�v�
Lf�6ȢB3>��M+0�۳����a���{x��45�h!g1�u�e�!*(��N��Ӱ����X����.�|Qk-C�;T�<������"�*3��$,j�p��VUѢHP��1;��h��"�V�i;��B(-�=������L&'XZʫ�۔=�"1�ّCT���dJ2GM7�b��6����U?E;�˛�f���:z
F'���PЪoY�[6|����u���@	;���xh��
ؾ��7/�. e\�Z�'�l�^��y���n��~v�.q�,Q$Ǻ���x^���db��*��/Y��p��
�A���L���{F�L�Q���(����5?��6�
�9�6�U�t%�;�V��O> ��~����ӌ�A[�e�Hb�?����)�C���;�M@v��'��u�����l}�Q�v���"^��<���ō�rՃ,m�cj���������� $z\��φ��v1J�n�o!���M�t����4`�i"�׿H8;�A���F�M�`����fv	n�d��>MO�{���GV���-��:ƃ�C+�c[bW\�C��~O��|�}L��z]�K�X}fQj{R����iq��s�[����Gܵ^��,
s)�4��_�*֤��>�(h<��;v��s��7�l�?3
?�A�y����x]��$�U���Ȱ��5V�QR��b�]q:��fh�U	��'mw���3���&�eo������.��E�9f�K�p(��t�;��=-A��T3L��z
t
�
�>u�����Ą�g6�򌱜2�����f�5>Hb���X�gS*���m��?Bݸ��٤M�"mNg�Cl�zjK^m�i�芯Jk��W�:vG�A�L�;b�2R�p^$�A4W;~����[�۶-߶'���yZ��l�h�:�	m	r�|�iІ�3�P�ew�zM�q�Ie$�pIJW%*L��Ӂi>��0�^��O:V��W7�[�������'U|UQ7�񈬲��ó�|WU���*�FPOy��y�j�Ů(���s[��̋%'���i�����^�q��y��8F	;
ݨ�0�1EW��m:�6�{�߷�;�Ѿ��ŝ�a��K|����.qo�5�:�~��QnFb�#����(��P\����}�[�f�Ġ;������j8�n�K^����-��s�&p�%w�N
P!r����0[�h[�)��	/����v�7�W��I\9����xw�̜�._G�x��@�O	;K�s�=J�9ܢbd�wkz(�舘�O�����Jp�/%߬�۶|���v����k;k���V�5���s&��,1xȱ�IX���ӥ�?4�}���i�~�v����t�fN�.�u�n���1����]�^��-�l�U�UZ/[-q��(���O
O��N�(B�Řv�^DZ�JW����9 ��zV@t��	`�..uqK������`oO��7^��.�������fh c�!�g����)"�ict|�f��JN�A*ZHO�PwOs�&�=�kXV@�p�ٱ>��ɷ�N��!;ߑ �
_��u�?ʄ�p�k�@�����17)���k"���_�W"(�&��9a�fmw�u��N��B�=Z����`���f�%���K��/f�S5)�b�Kx�G;X1A6��s٣YIJx�_�d�n�/��@�s#
�8�L'/��1��m�������=��V̷���/|E*�LE\��[���ªF�\�
�	���Lװ�b��K��ӻj���.rJSQ�]b6w��M��D�K�%��CáQ���+F���;F%ٍPZ>��yE�*+���Ц��8h��&J�����)|o�ڑ�DW����MՑe���֗@='@S�f����93�)�n��0�9��kH/dBk�P;]q�C��P��T��u"g~jp�*�nX�q���єһ~J��at�RH��G���xY`�
������?����K�x.�0��Á�0��D�r\��N��"��0��d�� è�L7/�L!��AV[�׶�?X�ZOp�z�
���,˶�L������%:υ
\h8?��x�[��Ƽ�&]�^���J`��e�ˡ���*���r�d�d���q��	9���3��߁[|&���Aq��M��F���ַ��%Mk�25���V6L
O���>�)�<���Q�@Ov���L{ґ��X����b��鷢�}m8-�he�]�DTB�F�W�~��k��(/͖��Xz��4A[.�ޗd�W�}h4��
�H�~��D��	Wb��ʄ:��_	z�(�+��8�����PW�Α��,���A���,��6��ԕ6�O���[�ה����J�#��]��@#�u;�们B9;�M�4U5��2����7�5Z'Z���H�!ypeZ@���d�(��}j<����������b|���/u_��b�ϴȯ�Q� �W*mv.&�M�cA�0a)��X�7�r��C%��B�o�X�Т�� &f\ 8:�0@k�J.�$�~�Uw�}߸e��2w����m��d �Ǚx� 	�h�:Ǜ�p�8�},�Є�L�u��B�g��m��y��sD�@(����٫x^^��.��u'
fO-1��κʸ�CR vzm���Pg��9�d ��pn�X��`�/;�
~�RBx|dK0+K�*׾m
����=^=ٞ�WUkW�)0eONpn�WP����BK��fζ;Ϥ8��,�`'w�6�k���̲�n�j��
��-h6�ŧ!*P+
��n��
�6�44m�w����V
�w�3m$��{��X�d�s��܀��퓱p�.��dܢ�b�����-�����Y�6�[ir(g�oV ]
�y��᪮al�BuоL��7��[u0�r�[*o��R���(���vvD��.���R���' zc�kv�*gom
*^qj��#�f0���}���AK
��5Cq�����6`��K�Gi[�k�F#[ǡ���Seo뮂��A����W��F�R��ՇSm>~���G�+���RIa��A�4)v��s�
�
ai�k��]��eUP�8-FU����X�~$��.�er�Aq�K�1�!9+�ߍ�O�O�Т�=��J`�2�����kt�r��vU�;@b	�$��A�r
��*6쓡e@��g�2�$������I���C`o�/ɚ���w�|m 3n��|�TaܰQ�D��X#�+;��j��@��k��<z��!r��[s�B̂دX�1��΄��%`�V�6��j��쌧���f��2萝E�
��/�=��*�{��+�S�W+س�C��a��Z'sI?L�ޮV�C�&�ܙ�߰�Ob"8ùn�9-�/" :`Dzo�e_1�,��&Mne�1�LY���v�9�
\+�4D&?���5���U��+��l�N�_�"�q	i!��Ͻ(�Uz�!,��`����:�b�y�Ft��9�&Ee�z(z퇢-(*��)�@
>��+ Ϟ��<Y�����K����}1{�M�碃�{b������J���㳝oeS�N�ў+�+�"*���oc4�]�!~e���R�0^y���i�g\6\Sܭ�w$ө󓱁1� �_B��3�O�9L��+
E�l��B)=!��j�����f�
/.\�c#��0�G�xH@�3?�+�쳶�!"�q��Z�4���59{{`W+V�V�8aJ'�%.(�-v[Ր���;ޟf��p��Z&��,��XN��X���p�ZO�.�]��Ѐv�"._�#�����FsI�q�w��nr����?��,�x��ق�V_�&BbH�+IkA��zcE�m��Tr��Q�Pu�UmG���]YE��aY��*��	&ԥ^���1�N�o�seN�e-q�����%�{=K�y:�N��/�L6�vm�����=	L�̄�w�㼧��`�^¡�4���;%a��=J�-�//���ZI��{41⤿S-[a�tf�3[P�P��_�-p�i{��*�boP��n�ۢo��޻"�N���5p+��������w���17�+��}�(�2���v���z/��#��_�8�BQ�g.�:P��'d�Z�J֦��n�97�G�j�\����ͷ��8��z`�(=(��Z|��P�2�P�B)ya���}R���MMD
Wv�E<Ϯ��ZU�8�
�;
6(�u���Nb�1"�%��mM�g<����TjϷz���
y?
,�X��8����wcH�
�
��ݶ��H�aE����{�m_O�m���*�N?E`B��J�c��s;^���g?�� u��5�	!r~W1�J�g	�(�ҭ�Y+#bS='L�O0�6�l^B��N
x��2n�.iUH6D^�%����pq�㙱�U��F&wQz;�@I���˭}U8?<!-�P�'����d:گ�3u0	Nx��V�4�U,\�m��NՃ�08l�a��f�ϸ#�p�:����mD �X1$+����^�E�����C�����{��@'���#�}��^/�g��~��
07Yr���i�qo��/5����3-�BV7�Y�dx \%�?.	���$1��szor���%'��&�:���T��XO�O�B�O��Z�m���^�Lh�硧�*�}��fآ�)^�>$9 Kto�E$�hI�����t='DU[2}L���:ϗ��Y�
z@�UFo���o�$�6ùt�ꇖ��p� ���,�_<7�k;+DW���1C�g
�=ո%�FM�;HA���"�?�g��G��T��H��łM�u�a
��x�r<^<� N�z�br�������{�����5��bI����X*O����(ledy�>Mk������'���htԘ}��[ˡ_�w��Q7TZ�+����Q�+}ݹT&�5pg��X��c�P�Ⱦ(vb��†'ߕ��%GB�d��}���D�Q\$h
g:*@�~��
V�FFr�����t69#5D��>ҝs�-������I��%�J
��*��R�Tڐ�Uͫ�:F*��dj�����٬I%2iRc��K�QcE<����ܘra��\y!ʃi���6�ŷZC4T���]�F��B� �h=�.����g����!���N_O�{"t�Ɠ�kt�"�q/�0E����	.��K�|�=���Z ���iH$#���{�.��f&eF�6�R`��b����#�����r\�Aҕ"��>d�.���
�XZV��p�
��縯���~��VZcHtR��g�
}`�J���������9��!C�
C�1#�{0�&[�*��`�R߰{z�Z����\�B
���y=����CFn��9�͜s�����@���ܚ��3ԡ�Wp��NV[���8
�J�/��Ȗ�bDnU39�e��6"���F��̘h�>	쌶�w^�/��"
M�����#+�H��Yn��*<08'w%Y'm�v	4�X&#�s��]Qq)�N���������f9�w����]g}��mj��sVfф�D>�$0�bʻċ�р*�荡P��Ǚ6BΤ"��#9�x�HnƱ��ݰto_��c��Ɗ0�(�zL��M&V��G��>���..�Y����Z�'�e��X0���8�uv�D�[�ۛ}t�Dt�<~k��*s��gv�$���-w�)rF_��	�F'$�ð)�b�:�_U�kQ�&�O=8��8�?�r v��b�uV�wO}�_e"z��wX��
�6;$f�_*b�.5���|��0?�*Ċ��)���l���騌[��'#�)ad��%�t">?��
�	�)�	�v�@�w�R7u�^�5��;�b=�z�~q���?02�6�G���׹}�u}��X� >w%����(aG��U�ԚC�^��'��ocDv���O1�I�=�'T��M�Se�H�,L�E;�q��$��l���秌O�.��F�PIڤ�:�������� ��AT��>�î�p+C�l{@�u�‡��0��ȰɃ<#��V�
�I�/���Z�i�C6��	"7i���E�z����V,�C��1�OD)Ƕv��5��:�v�jY�x��.�>=wP:��Ưw)��;��M{�(㆘�D�
@�Ҏ���v4r*g��hE����I�G�Ge�RD�]�g9i�]�<tJ�T�D���Ac�Բ'*?��A�t�Ѥo��KeE]�Dx�3]��M
��2��.�op0"v�5�'��D1��mQ	������#}b0
�/�ͻ�v�7J���h_�߁�~Ǟ��K�a���k ����_��d~�n.���V�Kl�#��-m���v�H[����6�;�Kw2��p�n\���-UdfE�E��А�݃�����t�p�~u��hJ�T\����DD�6��ک�Y�L�����L�d�	:%�|��~$�yv�K��qܚ
�-���_����e٬�<�Fnjgh��#(s=4f`��O�	�<�~��i槧���j�E�o�u�"
�
%��D)K�i�
ˮ|gpa������gٱ|�A��!F�U��8��gG�3�<�L�O#�Ci�PH�zN�3�{��"�t�N�֝�9������RL�sj���2�r�.�dk�K��@��jm��b}�~%cö�w��p��.�����JƦpDs���W<�c�������%=,WS�I�w��!0;Y�$�]:��^�)�Z�6���]7�D�K�z�Į\7M��x�.n�f���35�������6�G��w�i�������Q���x�e�9���P���U�C�oP��"�R=4LT�N�������u�A��;7A�7oo������p��}�FtH����~{1o呶�>zun�ȗ�;���c�T�o�����ZT��`��A�����w��?E�A���u�p�� ȸ^]yzc=�sf:%~c�į?v�<�oHS�G��f�^���
!�1��V	g�./w���F��K�Wx�E��`���A�+�ď���viqpR�lgy��@qn^	V���FϑG0lwh`��xƊlQ����n�ˋK7m��$��q�I�V���&�{�P#��O���G��Ө*�Y��Q�kn�@\��:�Mл�b����z�X��$�dђF-jG+�E�0w�G�u��S��l<"�;V��m���7ۡ������(��xZ,[f��c��.��Q�t6��
�
�B4���f�jU޳�8g�F<޲���#dp�ǐV-DBI��{H+H
�+��36���m��Ѽ{Z��k���H	�SD�Z���:�Q
^�{���%ݍM�&�ԙsv�j�-�[<��
�swj�׬XU��bn��vz�����nzԣ�Ym:�MEM٬����p<s�N���{8�����hx�^}
�J;�X6"�4@U�jr�3��s�?�@/S8����l�b�
�d<�vV� �dx�|�t&�<�7-g�+��%O���6W3o�z���6�	�H���+
�2�
�11�ţ���4"\8��:��{�׼N���P=���1l��5��4֛ԝ�Pȷ�)=t9�7��y��:�v҆*l�/"�]WZs0�Dy��|�Ե�8�
��3S�D�-#°J�T��&�����)�:w]$�r�g��a5W,)Glw���]j���U����7��:•QM�w�Ȣ�NL�o�v �/��=d���1�ӡ]i_����!=O,'��6�.G�xi�v���սO��A�	�<����PWmn|��!;�ND�|6NE�[4��aC7;�w9���4q�~�G��~�\l)�+��"Ĥ�Ȑ��8��w�lEDC���Bn�CC�`6�I+Ŝ����8��=���dW�⫹����du�,�����C�}�|�T��M���N��\���Qg�f��~O��O3n�C�MQ�f<���;�㌚��!Z$�(	fG�l��M��s&1#1DK���{R�}K�}
����azȢ5����y ��6=39DO�,P_s9Pk��������r��m��������f�3�@�^�eRq:Mۙ =���R,���}�ثt�1�>�~`�Ж�R70��>E���_L�:L� J�ή�…�4br�ɲ����ih���{��ז�5�=榑�>�A�8~���6\T]��O���e��J��a��&��B�&�
���뽉�Q@�N@jDlD�[%��A��Ĕ5Y�2���+�c;��r�{;���
�۾�%ܕZA�ms�@�#��?M�ֆo��s�r�œ���K!�4,�.�R2����4 7ผ�"�9g��@��0y��(��Yd
�~�>�&���'���x�:#W������|�|]�6�r�fʭ�i@�X8�ڛ�]O�����=dc�>��X����
���N|]߭k�Rܹ_���S=D��5�`<t���+���(�iV�t�"�W�u���Oo����UaO�}��ݭ��_��p`3ei��Ky!7��K�H"I��Qb����d��*�u�V����;��J�l���x�ׅ��@��|[?���V�<Ewߵ��<V�<�ـx��▻ 퓪�Ъ���1Ƒ�b�EZ�7���I؉���!�t��BL}�?=w�'G��j�$�m�wL�K�i��_�|�9�o�J�C�p'T�6Y�+�+{z4����*�P?�糍�.-۬��uJt�H��Ѵ����j����lw4���Fn N����#�s�wg8�7����F�æ�b�4훼Z�_������*�(R��yR�*��������w�6l,�m^T�H5�yt]�#�v�/�H���"՟�b��eo����4g/��,o�b��ڀ,��ȃ|�__'�'��Q�ѪE�������?d�B<����&���Y�ʿ�vXf����t���i��a��;�P'G�
�2���]��s>?��(Q�9p��s#��:K%@���^b�Y�� �b��#G��4�c
G�к�SN�
E���;Ruh>I��>t�q���e�^ړ����ˌ]��"}L���17���83Ԃ5�x-�f0�1�Ӊ�h"i�2�m�����(���k���scI���$�ۻ��wG��5����Ԉ/E� WF �Z�Ñ;}�Q�o�V]<Gx;
F�j����/��X�(�E��K2�NW���S�v�p3^�g�f�Rs�P��֔�,A���[�=J�=扐�w��m��ZGpI$���髧~{�o���o���\E���I�>�N��ws�G���kƢ�v����� 8���ȯ6Y1z��b=
��ĹՁf�~�V	��!�������!�*�9WU�#�5lB��
0�]ꄠw��/G�za�pE칈��x�,�s)cOL�%�����FG�G����9du���`9�r�Y�(j.4"CE�|���@�J b"�B^^���Z�L�<-�i�!E���C��	yX�v��%�@�*�#�'�⹗�T@�i�Eͱ|U��W�;V�<A�j;�
�X�+i򃻔��ly�����'�c�\#�7^��]�?pSa�1�ް�X���A�Ӿ'�j�|�����][��z��eg&ڐX���DD3�Y~K
�%�jfH��&:�D�3���U1�2+}m%^}��V�nO����naf�J��
�t�w��Ы��B/$����������#�����[���7+�-S���uz��?�3ދy�M�Ȥ�K�yD?�W H�`�skT���
�|��N���K*�Eŝ��VVT�|��]�;�La�S����fcý��CN���Svay�"�@:R�
�O-���g��\���WۂE��~v<%�|˶��S�)Ҧ)ۉփ���D�j�[�E3fVF��a{{!��ٷ�����t��h��ջ��,2�?���U���ڬ����-ܱہX��B
Ϲ�2�`���=Hz��6�a��K�uϩc�?}r|~y��r
��n���
G��5ȳ���C�>{�n��+>f�J��")���jyl�3C��@��E�Bu�F�f��`D5�A���{�^^��"��A$%�
a��7E��r���,��ƞc����؆���7�ӻ\���ϕ<�u,���
�=��|MEUNPێ��:!gɖ�{%���a��d�ݫ;���Gn|�G���]O��C��D8��0`�V�*A�����
�>=�Ցiw��f�|C����h<�'V��@x��>�j�t�?w�ڮw��9���ܕ�p�T;�?��Z�bS�Z)~nܝ<A���J)<�6�nR
!���O�-�"v�$DDr"��Kt�>�g��t%�SF	mνh1HXC.��*A�*�[@���ʹ͓r�ͿFmf=b����IP��z�a��T���m�[(y�E���}Otᒎ���	�Hx
c��ی�����CS���QӪ=�\B��.-�h\�~�uĭUDLf�ZЌ(ݪp�^h�v�I��9�1�*|�jP1v��A�ϲ.g�<���]���ҳ��]�(�7�a���{m ���?�1�>ׁ%��C�}}gr�G2��Pժ=���,AؼT�{��T�\��Ii���a<<���$I��p�ߨ��w@�	�?�;���I�[0w�y�>߁by�[�@_͸A���욖�+6�QAL�CЀuFȊspT_Z�p$���..q���r-�;i�Z��Ha�"���؇\���)�X���w��$�/xo��%��B^�
<����-No؝g>��KӰ�k�`�]�:��Cb(����S`F.���a�")��uB��?���f'ƓmR �H(�Y�cDQ�3��KՇ&��]h�nZ~����zc���r�n��`�/q`D���߭����
��d'�_�s��W�2a��uI�5�s73$z��"Y����o�cퟐ��7��P������6������K���S��o�$��l��)޷n�9
�%���jV`�S���g�ԥ���	8�+T��m�ǜf��S7>Ʌ��\x�Ty������`��ම>��n,S8�R��r��R�s��e��8Z^�'d�-��YmZ�C�Hv^
�=������\�7pAk�|�_�5���]��g�IR�ߧk��kjqn�M��1��:1�Q8�)��v�[����g��H���=fVvx86�S�ʼn�Ϙ�����/i�&�4�_�yÌК��f�_��&�
�Ƈ qT��O򍙢+��n�{�	��hR�Ƽ@��$y%P,����� �9�^����go(�%��:�!R�h#�ã,��l�|h�O��'�b�};̒���@m�	uG��V�<[nP�Q��B��hfx|��>��I��K��˜I�?��I�����w]���O�l2��q'�vٺ�f��`Łv���<��VG$���h�H,Hԍ�v��3M�S�/P�#�4x#�фu{�F~X������&}��.8��Bæ
)�1�b��i�9G����NA�=	z����G�@��Gߤs�̻r�G�bM�<csZKC���.�����B�ING^˯v4n�=tx�7qI ��\VԈ֑�#
����^���7l5�A۳`��M{��(��5'$�=��!��,�e�)��@\r} �)�]_��[V�6�/8V��m;��S��2Y���r].V~�ht�o)�k�ZD]U�����i�ϯIS�L����g/��vU
j�R=��g͋%w�\��[q��[�	B�s�W����}ä��}x"(nsV�r<t�c���R�X�[t��zM�[�%���E��HI	P߉J{�\U)z.&`��w�^���Yqn�
�N��N�h�2�B#K����9����M�[J�[靱 ���1˖yq(�̼O<(�bG%�
@t�I"T�'@;��}CWt�x�$.�5z��:P�ܣV���"�b�$�bsx��zZ��@<�,��T��!c��]��c"�HRNj��۷�^B�?��?�P�%d�72ޞ�2�J%�
K��1�A���o��_c�S6��_����U���-
�nD�q�'-n��B��@%�!�'I-�|���:%(hh������0w�_i�+`�LpK��B�7
tmX��rHT�A|=�3p�8������~�/�s�	����$4L���"Aa�|���r=��*������-(����hQ��<-8X�q�)B�
��!r�oD�w���&^�G��,rH���G�*^Sw3���BK{�N�W&��Ҫ���p�"�[��f�����B�۫��C1��
�l!0��V�����--���^�"�W��;6`�'c���טZr&�L�4��2]&XE�(��X��}�&<�ϱ�_~a,esaĨg7�]w���՞��C;7��:ep6]�c1�H	���!}׺��O�=W{��`(k&4�K�̩�:0�E�+�c�KU�=]l�E�ڋǷ�Ҙ�7炏L����Yp#c�5�o(��4t)β��e�]&잗)@���Q�����L���j21�M�.}�%��,��^h�T����qY�/���qtY�ȑ�M�$�zm��Y�.+�o��p4�'O�imꥈ�5����f�����G�WQ,�2�Mg���������5OZO��9��spIX�;�����
��
P��p�:0J���'�e���W��u�3c�����\�\ɸ�%R@8h���w�^P�
<��iR�i�D��đ��(�@�T�t�(.�7}R
XF�ۼL�J�f�e��SO�B���41�bt�2��|��m��u;�H�7��H�r�U'D%
.������ܸG�z�B_�n�@�_\<���n�Lu�	D&?���������w�
F�Z�\9B9c�9�&Rֈ�G0�`j�)���n�C�/ᶧ�[�t_y�\�x�eͦ�_����j+�9;7	�/��6���u.��X���9/ [��x�ip�$��D�P�՗�'����Ӝ]�l�4j3m��~�J���7����Q����!j8��Ś[��/7l���J`[X�x��"��lH�U���*�J4�^O�"���(x�1/�Րs�܋344����٭��dN�P;ѤCyޛ=�j�T��+ʺ�Vy��?.d
	V�hk�7�knn��K�����\����X{�46�
��7.rz��1L�Pc,�(��*�/��v���
��ȁAX���B�.����U�@_�C���P�賷��儢��G)8{nQ�N	R*شAE�#�쾔�΄��x��ޝz$1
W�#8�΀����-�m� \1 �
D_����P��鲔`���	��4=z��k7�E-�6?5�I���K<3��JP6s�!8$1�L�K����l�h��u/�%>��L
66hlL�W�q����L%�Vr����8R#;�f$��o������Y&ԑ�a�Jt�|��g�~5�7h����R�����2��2�5ȕt�Ql�	���E�P�v0N�<�"�M�_�-H@l�|�W�K�����F�����Q��Q����6&U�z�j6�ʖ$�T�LE���0N�e��ȗ�/~�2��>��3nQԺ��w�}Z�j�+F����6�ad.�&�bG2���^�j/�V\��n��nݒVf������ްup��&�-�<���M�mK�F
���1�u�:�e�w���%��_!.K3b�?�E
ү����k�*�/b
PV$|�a�݅D�����l�ڮ~�km�	�x0i�2�/;�@���w(<���d���JE%ּI�B�(>>?%���
9����N�ոؔ���[T�tA���he�`���L��Q!�Y"j�#���myO�F<����<d7�T���|��Z�m#��[h�U�%:/r6��2:�:��2�wn�uk>M�/?�����LA�$h� e�R��a�A��)�8o��\0��i��tdx�3�#�[��:��^K7c�=�����W��~C�k��-���=��`�ml�F���n��X�7M*�����QZ炽���L�󥮸�e��<�c^��j7A��6\�_�e�n�q�M�ϭ}O�ܒ�Hk���)��33�8�Ё�iF���4�{X�h��%�h&>%�IN<Rك��`s͕<[qq�sl�p�;��Q�e�q!�ەɲ���t�G��b\v�j����n-�C���SZy!ꎈ����r9e��C�I$^�Z�Ȕ��O�wVP*|�s�g����v�aJ�i���:���G�j���g��c��s���M�Wr�Iu�����݌�HcsrK,4�A���
�4��1�H�~��T�E5�Z��t�B~tT7�F^N����b�-�����q������":m���%�HE'��#�ĝ�&��y!a�����83;L�����(L�	�,lF��m
�ǥ���u>�׵Y���2&ќ��F�����сz�C�>�н�Rq�FCIGR��M��AP75 ���Rd������/>���#V�@��`A��9�Λt�TF89o7a�#h0S犃�W�6]\?+��e��a
7�8H���Y�
��b�
���Aba�P���̔r!�Ńt�5�1�U� 3�6In~�k�m}u" 
�>]����ҽ/3I�Z�����5:	o�
]��M�NTE�cc�P�tاMfi��Ƙ�P'Г>�����{�_��T�5�2�F3���ȏ�{�z�i+vB��D�w��VBLc�P{�A`��ヮ)�:qX�nSҞP�u߀�B	�=�Á�@�*f5 �B�qa���vL"�4F�v�u�hMKF3����3�|B�o��Ϛ#�j�-O��	��;�G-Ʒ/�k��9M����&ߵ�����\!5�m>s�B��H��rW�<�CPk�
jD}�L�^�P‡�g��c1%F�haRb.þ7X��k`�����4�0����6t�ͩ%s�Z��w���q��s4�0����
��%��.Xo�)�s�K��M�j�@���g���@H#𨛯^Yq�0����$pf�?k�>��v��m$������2�ȹ_��vd�^,����LZo�E�}0�]H`g��4i�l����/G:�=�{|�~���8���� ��#�Q�Tɢ1R[C�iq��r	}���ܖE�#�	F8[� [Wh�>��sǍ\�lf��-�'+��؄�5҅���x��4V^Ӡ�~q��MH��Ac�e�o1��#��m������5%k�]x��ɣZ���Â���/8�}���4t��A/б�|�zV[#}Ⱦ�1
'�����C��//ϑ׆?.�R��j)�Y@=!�f����Ui�^0�C�#��-������3{�V�ъ�nɠ�ƐX6;�
<�r�b��
ϣ�?�|�A�`��1k���:Qv�D�؉��D��ҺH�|���A�@:2�$��JZ,�"��ƕ(�_q�Y��lI�6��JD�AC�?�
�����Zy���n�Ͱ3'z����"GL=��jU�$[�jLx|�D/�|��C�=p<D;�^�_�����O�t��/�������
��ȖZKLš�
"y'��JP�3��_��"	�>D�{z����b�P�ۧ"������-����:���*J����S�X����4ս�u*AV�|�vj6~8�=u����#�'�͇K�*0�4Fn(K�o�-�Tld�c+�EH�v$�Ee	P:4n`3^'&��W�o�Ln�+�2��oc��V�{�)&�`��Cq�j疾�0����WJ6fv�����u���9Ӧl��i�}]���Z’7�\�'�@`�]�vv��s�+��F��-�s�]��*�R�-���t*�e1r�Nj��s c?����雱�$'�������S&�@��
W��]`�K���N��>Gc;�M�ȑ6�6d=�}�a�ih�q�+�FZ&�񈵘i�'um�r�>5�q�F�N�C��ԁ�����0'�p\7�Q�Q��)6��	�]q�Y�FG����_O$�H�-R|�j�drH���g֙�^<��-�6[V�.��z�]і�8�6:�
�	+�96������nI;��H:�k3�Z\�c#.i!X�|^
�y�߂�9���Mۑ>��"ŗ��`�8xje��}�
�-)�b��R�W?֒���W�4	��ϚG�#n���� :�\���Eos*��i�{jb��)	Oڭ����FZ����ڗ���Qk���VT���I�@�Q"�1��?�VG*��Lm����]T�/0w0^��Xa�F��Ёݮ<@����x��
�Ѵ-%�X.9lmS���
�i�7ע�pɰ\Ecn[��xAx�"��6GZ`-�"
"5$}�l?.��[������|밅�H��tŞp�S���0U��0�M2q�G г�HE�5d�A������LP"\E�5T��KT�o����R��d�,�^�k�DU���q[ʊv�$;%|֭����YO�pgb����=���T��ے����Rv����7����҂������<���mδË���;aB�zp�T�uT�w��yb�C9�,
����\��f��q�)�{@���#�֨��:/�z��;���8���Bƣ�㕄�����GX+	@���Aڜa�B�
PWB�bE3��
��l�Eٽ����R@�oLLM(E��V�0�919��4����kґ�Bv41bL�N-w�kO-�ա]�������V�rk��[BM����zk����n �`X7&����K�A�����Mݵ��r����KƝ��D�D�V��*T9P�6FS;�_n����Ѿ�j����-pp1�j[Bz�"��ު���ݾ��Z�f�b��0�(�X1k#amp��E.P���@�p�݊�}[��QV�]���R;�>�݈c�%��T�+_g�W_��d���1�wίd��.�M�v�Q����P'�Q�2t.��������2}�7�����/	�F��&ݾE�iv�fw��ޠˇ��5���u��T�5���-�m>���G�I�VX�9���}�{�h�my�㊀g��(�g�
�p�:j�����t
���Ń�7 66�16N�7��복X�z��W�3oJ��c��Զ��}�
��8(�f�0/�#�p�kzI���\1Y�~�����c@#}
�.}�v�6� �>��M�@�BN���0�y�Z���I��qM��1�s�0��aߓ=As'T�Y��.݋i2vlBNչ�dV��u��Q����=9�%�c/�N�)��d�ȵ���B/���9*�<G��hu~[�Y7k�|��F@�W\��m%<��d�F�!,�a�v�PoU�'��M[����8�0�r�ި��I���c��9 ��*8����8�l�{^��`�Cx@��G#���5BR�KN����`�`��̐N���ldރJ���Ђ��JlX�2�ʂ}���m��s� bb$6P��?��{�nX��%+x@��{B�7����i��"�$�w�G�b;
hk���<�l�k�N&R����^�ƑI5��DFc�r��P���D�b"sE����D���۸��x
��3](�<'��T���~�$��f2CD�e]�FN����,a./����"*vk?&�����'�|����zG
Nð��zV����
���]ynz�Y�9éʍ�K�������2�PM"�5�Xϫ�uEτ���ҫ�#ffk��^�7٬�V9��\�AAY:��p[Ow�S�3j�|s���$�U���s� ��l����+�@���m���Dha��\(>�3IKFb�y�)��}E^�h�*��윿�N�i�a���J.�8p���Cazǭϐ�c�Ԏ¤R*���L�~���L��6���B{����-������R��0�C4��t�.�m�>
��a��w�s�g͸_S����д����UL�7��	�:vB^Y��4%�+)iV�C��P(ֶ]��(��Â�u��;��h�߁�&n+n�G�Ξ'�KyI"km���zV�ȹ�N��[���B�\~q)a�*���S�:��{�����9#����L�y�z�6��}�q���8g��+��j�Y�]�PNbb�q��8���5�J)�51�������,1�ތ�v�5�"�|��w�$8{unw�qD���O��u��?�5����l����$2L�0�����ֶ��0���G+��(Gg��
P)�26(�I.�������ix�:l�bzßf|į���r���+�yNF'�/��bQ��Jp|Z~��9�$c���k$�HO_���֦��AZ�tէ�w�뜠��왒�=%�N}N0�yRF�III�v�g[��_��6@��!��Dm(�}�f=�ٳ��Vf���W"�<(����"K�A�Zv3oJ�Q
�+�&�Lcu?đ_�&�-�%�8��k��|`������w����0�鬘��I�(���L
Y���"��HKF�U86�
���M�M�g�i;�m�)*�"ƣ�rPH6 ��ֹ���f���L/�oTȍM�j����O5�ڟ�X��F��r�Q�o1����̺7��ޝy�j�������r���"�/&�]뷕�kp����]�M%w�'�9g�G٣�z,Ϋ�H4ѣ��u�]z��w��"^&��[�"�cB�$��S
;J�<#����H�gt��p
�L���!�
SJ�M��h#�s�$�r���	�R;J��<�b�D��È�� �1���?�Pyƴ̣8�^���V4���4]9��i��
����ouims��r=Z;�h�P޺3���dq`� ����:]y��b�q���g��ڝXye&�?��'��sxqH|/ü�(j|Xk�I9ڑ!�=�MǕ�*�X�V�-hJ�a񻂴��!���2U��
CM�I�B���+/Dx��O�/�{�Y��<��S6԰�S$��כr���ȇ��%H)%
�k4�ʌ"�v�dH��F�yW��z��m�i�U Ԅ���z�>[�!r=�l"��7d�I����q��ܟ��ċ��I}�&� �E�rϼ�P�)��������"�ؽ0�hpX��P�D�}I�LW#m��.I�����$)�yn��h��;
������de{	
.%o�6e�MN�wI��py��A�;ʛ;ж���Z7�s��y��n��������dcQ��0�c��hu�}���A��	,nAc��2O���z�LWgh�z��xr};���4q���q� q�W�A��VY�V7q-�2�$J���
Z�  k�W74=˫D�2ʑ�W���؞h�^�eB(ZRlQ�?S�-{�qa7��5R����;9f��*cY��4ZW���{`�)�2z�2�����G�L�������y�(�³qlp�d6`&0Ȗ�6b�.��N�W�p�T��ĵ�k)�h�TO���4��Ɯ��O��9�q����u xe�b����i4_�O��P�=;�rBY��v;f^����)r��-U�Džsh�kxvdLյGE2ZI;R�Rz	��ȭ@��5��%,4�Ͽ�
s�,�n��X�U/؞T��H�(��r�l
>6"7�b���������1%�`-�S	�@�$X��ϣ�`,E.���>�7b�`����U_svO_S	�RK��s���� �ħ����̉N3qH��ЫuR�>�n��|A��9��5��bk����@j�p4�M�'vV[	�{�R�˫�0��x�p +%������,�c�,؁�/eTad�_.�1�	nBQ�[��D�GjQ��ޢO�5\I����m��VWp][�A��Y��k�i�t*�ͩ�Q/_�.�.eH��
v�ۈqb�+�?�dɶ��D�2����f�o1�nX���jñ�����d͏n�6���2���kW�m7g�<.�?k��%��z�!�&��nv�(�����U!L�􃈾�u"ep΃[L��#P��W�e)�I�sQ��
�{��
W�kg{+�`��H
uo�+"�7L%cωޤ�glP��kR]80���A :6)ؕW�c�?g÷G��z�C��s�˶��ʊ�&�|�6��0���������ߥ�{�C�+��ݐNo5‰?~g�#o� A�l�QӸ��0�Ж�~��.#����v-n4���?������0K ���(�w���o1F��ÜV�G���������:M�]�g�_ۓ�҇�1-��a��v{�FYU�k���'�lłz���7כ�9Wb�ڨ�r;(k.����6GЙ4�[hC[d�,�,�n3�{�T��&Og}���)U<��g���(@xt�H��7���\��ʊq��٧Y�eˑ�������� d�N\��c`�1��2b1M C�	�:߫�]��Y,�Y4`��ѩ��Z����O]@F?ށ��1^Ԭ{"R��]a�s��h�����&ݖ���Ɂ����h��!`9*��0�L9|�;���L�z6�"���DnB�o�?*��۝�>��i���p] F�%�K�b�lQ�k���:�٬M�4�+���H��󒍙�^u���AL=�?Ή��$`q]W�C�v����װ�_�!��u[�֜�^�ܖ��>	KsH^Y�7�YXk�#��n������k���t�\��0JG����9�n��l,��8��ّV͓������}���>'���}�0�#:T�+���7��4GX˔o����M�8�?nF��r�T�����m͟K��t�����ǧ۟���zh�r,	�R�|W���G�Z��H�ӓ�iLۤ�z|	{ɒl�֛���L�-���|�ʙѕsbC��mT�Q=��M�T-\8a5|�[��+J��V�k*�kQ��ա�
�]��g��hpt�뱣���2z|��;@.�hB*5�cB�!G�E<���Z�Gi8�6��syD��|�����Ҋ1ַQ"�S��+Q���7��L��#�S�3�`�u*���?��d=�Ao�]�n�<7�r�fz��`42��{F��uE��H��C[j*�(#!BJW�*�^ę�
˜��?�3̇�8�!�'p����:u#��…�.�x�߼�'���q�N�Q8n�O_üX��RaAx�+P�	����x���c2n���Pg�a������kr�Ȅ�Đ�ɏ�063/�d��'ęg��qI^����F�a���K���:��Nb۔��� �,��:V�'��!�d=�TTg`��/�Mw<���BlɈ<��7r�0"�:<��HP���	�lt�yf1p�k�ۦ8���e."u&_؋���4�PDRG Z�{��{SF���Ij��j.Qq(�A2�S�^eh���ɛ��7�.��@D��Ce< �B`o!�����c�*)��"�;ו
c&-�$���>8e��ߟ�4��P�����^-�͙�>^
�#jMUe]�Ծf��pݲX�\"1rv��rn
�n��1����t�X�=��B��5�>��|Ŧ<�[�/�?��g��N���E��9��$���2Yę��h�C%QDQ��/n�D�]���Ƀ'4��MޕP��Ǿ�o�E��f�.��R�a����iȽ�����=�+3�sa
�w���~��g�&Ӻ��&1D�l��o.O/N/_��GzwރDU��ٱ��xI�.h[>�٬-~yWn~���7���^:������c�Ib�rqf���� P�Sp�޴\xė$\���2b���Q��>�+��+
yn=3�Rм�G�� ��хEݝ&oC�J|�3l3�t��^�J��Şq��2.?ERh����UU�]�.T*y%�]��uV��r��-�EC��ˇqGpf�}�Q�A���7��J��{�v����T�]F���0�>�nϺ���`��Ӄ$�k0L�+9��0Am*�,��3��O��:R35DM��-�bG
cIR�ΰF�tj���G P5�� ��E��q􄱕����`�n�Z�MϧE���|�e"x�T�9���D���.��!4׸N�� .������f7"La�ob���٠���g�Y9��EP�$�y�o�}����=���D���>�#Z,F`����m�!(��k�{�Ư�y�b�{"��췘"k�Tն|������ᚭ4��P%���E�y����s�Ox��)�9l��|��ub��%����J|\�@�P����Wي���M�>Y��
�/D\�c��ʶk^�'���&��Ϙ��p��sb�aT/hNJ
d��&6X�Ih3��t��N���7	J��S�ZSFA�ɏ�7��Є�	-ea~���|�F�#vóE�4��z�r���x��mI��f��&��.��~�ѧL�Hp��jo�S~?Dg9
*F��b�Z�}p��Q���V���w^R��Ԙ�����q��-Zl����D�	���-�14_��hV���-����]�<��m��FĚ�lv%:I���.�AH7n�^��]�x��}����tJ�>�_��*�eܕT��[���a����O�
���uV�ሆc1^ʫ���m&�p+��<��R6_���.�&��}��D�%�m��ۄM�`�P���f�S�͒���,S��X�a�Ъ
��[��?:6P����Q�h9�)՛�
΀A�0|�v�ƛ�	�*A��gb�����Xg���;β	�6-���i�*��"Hna 7�0cf-E�\&Y-�L����U�u��2Db`������[tr8m�I�r�^�	t�Ѭ�i+��O��ߝ�~��?(�%�c��ڲ}��P9/Υ�⩂����Ur�%��(]���Y��-l��c��B���'��#;�'=�v���\ҹ��D�����N���G�w�+�çG�S+���gޫ�:��M������
���+Y@�G��G�#����Z4H�C����tŕ���gVD��N�}H���C�;av��5p��ӭpW�Z���݉x�d�b�߲�nL]�]��oD��v�f�:/Rxߢ
&�"���X2T�}��y ��TY�p��9���HD]j�禮fSCñW� �$��� �I��ݽP�͒�i�)�T� /�������`�v��Ԫ�K�A耹3j�asv��{j���R��Q��p�6���}����Y6-�"8J�V|��2N�%7���[]y!�f�cn<&�S<n�"<��{�o�TƷUj��
u��,J�N�B�q���ˇ��A�c�S�8:�9F;���v
>�&|��dA@~�B��2��&�?�9�F����Z�u�_�0!��__����ϧg����\&��j�D�cm�b�����
�"m5m3W3��ˎt��p0a�l�>Q�
ڸLb!S�lw
:�ah�1�C��,�Kx8�~��]�-F?��j��bUֻxdr�N�e���#2\�m�}����
�G��E\�*<���-��Q��z�,�y��z�:���z�5?�l1�o�m�o��8��Z-G:1O3� �]�ԓ_��@�����{*��{�v�=ɖ���$-�S��O�����qP��~�9MnI��65O�7�557PI�Fq������ے=����A�x�W�y{�Y���`���6C��d[��Z�)�	���"��ն�H�����d�SvT#�'/��]ނQ<����6^9������(��4�a��H#1*�%Z*��Q|��$J�f�)s�_��V�
�^��Ѭ��D�)b`�Ŵ>m�Dv�Ґ��}���xU\��b�`��-A��w؂5F�g�K�}�OIռq
���J�m���uI��@*"�h�.*��&�{qA`�
z�����D��0��m��<&��y�e�^͖Gڹ]�[TBF$��/��`Kbb��+ݡ#:��9��b�Y�\����2�!�rbڱ	T	mLC�W�m���͜�r�NF��gj����M`[W��E��Y:"w!�*_|v�2���j47��n�/Ҙ�P	��m�;w�������"���9� ɦ�Q���g�|�o���ůA��@�\�Ǻ�]���؝�!�3b�gœw]H�u�N��]N�����}�߅R�XXgS�:ܥ�=:���V�=Ht���⦅�R�d�P��.L�Z��"���7���x�M��o��aו�҇��%225`Lc
{ъ�ۅ0S@�^pA���Zڜ�V���tTt<��^�p��H�xУ�	@��`Qb���$<�K��`���s_Z_�W5�����s����e	�jP�n��+��ː��r�I8�/�	3�x��T=c�BnB֝);��?�
�2�)��|�o��
t�b�e�W������J�������V`#B��H6�ZY!j�=7@7�t�\��^2�z�)�vg
]�L���4c�7�5߅0(<�]�E�@lrD��7F׊]�8�X�F��_߹��1�Xv��Prx3�����b �o�ْHY�P#�Ap�*vF,pc�
2�E!O�0]����09�0��nR��X&M��C�ޥi��u�jL…E1^P*��m+׶|g�����tvu������X|�'��Ra��9jm�.��=Iu
.�j@ۈZ.���y}ӿ�ρyx���!硘L&�[5�y^LO@�p�v��ݚh�A(6��M�x߲�^p0�e���Zͯ�D�q躖���܆��m����e�e����O^F�޿{�����������ӓ���wg�?�*u��A*)��B0�������0m,ֹ}� �����E�z�ޚ�MR�l��t�`AO��)����5����RS��N�`��=�� (1�	�%�rI�?%�/2��.����I��ۣ�����|}�x��"zw��/�v�Z�˽L�+e]WN�`��9/�z�#�1�I8~H��9L�tѫ$z�Ծ˴���b�ձ�Y#��%�{�2[<��B�NV����Ú�O$���u����9�z���!����{"��������Y
�Uաd��
�L���W��'�L	;�j�w��'/���5��{����I��	=�Hv��gQ�Q˝zf	����ND�z�LN���A��j�$:54�K��Ϣm��T���_�v�F$[��@4[�2�0O\�Q���W�x�/h'ϊ]�+�_��ùK�v��T���~M�[M�o5g��E#�������ʇ�p�^W�t��a��D9y�K��Z�w����I�E����/��ctf����[Q�As[�y�s�]��\�AD�۰�&���U���b��o�J8��K
��F�Z���f�@-�P�bjk����>�Q��Lt���:c9=_[m��¿�
��~�^��	�*�L����[�b/���>��ӆ,���Ij"�oע[&t�P�x��!+�>=�ʸ!�'=W�:1�Σ�Fh�g��D�.Ѽ�>�ſ�u>���o$:=Qfc
��ԟ�M���:>!P��y���V�j�WÒ͡~��=�9ۣ�kc������Yy�-�Ges�4�s<�A-��<��+�u�cBp\�$��q���>���1����$̈́�o.ضm� :F�V����A��H�Ds��B���ɗx!^=�8~��VB���Qc�T9ط^-Ꞽ��I)���W�Ӈ��W,(�џ�"��{�iw���Py����"�T��t����e?���D�$%['�*�exW�f$_���rD=�)/-~�zpi�l�%�ǝG�]`�{�4ų�F]\/�؊�+�:5�VCl?��-ֺ dH�%xi�Εv^>�b_= ��6��P��L"�Pm��]�Y��vx����s?���k�M����a�p7�і��FK�V�ǻdu�$G��Um��T�\������Y�l��^�8�4BS=�j�|��r6�ۿ�n&�X�(��W��m����V�Wn��EM}�w�-���^�*N'}˄
z|�l���s��9��� ��Ѡ96lL9��Dī�_�h&2�5�Q�0=��E�Ⱥ!)6�{,\y�T���n�!A�:Vk�)-8�S�V����0��ը�5�q��e�#��I��E�NoG�o����Svd�#�UN��Q���yЍ5��x�S�C�Ԏ��`�����IZ�X�5f�rKbS[���$Z3gnnfKn,�% �"�^�^
Ow���.�t����dq�D��p�?�t�r�-cń���=�9�1	U����^��53�Z�M�ް}d�^��Q�G3�Z5U��CF�!�e;��˺3{~Z��ṽu��|��3	G��L�
	7����	��|��K�6��i�z���Y}6���z����)�8�����Y}\/:�i3W��pZO�{4;;?�8�NiG��z�=GZ�)|��Ø�R5!^N�Ey�aC�x�\y�o�B�Y�Qs�ٴ�X�7	Xs��5�h�/t�9�	ZU;IT�PK�R�T��@�O���litespeed-cache-en_GB.moUT	��b��bux������	|\U�7~�VDP�J[H�e�R
i��)i�������M2t2w�;�4��;��+��*��  �� ���O~��¢���>g�3�R|�χ��=��s��g^�d���od\|��׷��>7��o���Sz>��)���](����)���A�	J7�tJ��t;J?Ei���(�G�G�~�W���|"��Pz���~K��(�v��t=Jw�t#J�R�+�3)�(ݖҟj���n�{Q:@�<J'P�KJ��tL6�R:����ʢ_�R�JϥtcJ/����N�$J��tCJ��E���Po��mN�DJ'SJ�tP���J�Q�|��"D�I!�Y��B�c5���^@i�����G}��BJ���҇�w���P���i<J�)���8�&���=��)�$�S�/���Dp�����)���q�|�R:?�~�E�tJ_�c^6>����S�%���8�p����#��Q��W��?w��#��)ݑ����Vb�W��wW��'Qz2�_�t7J�P�>�w��(���q�n�j�V�>�KA�w�� �e� ��>�}8[�i��A���dp��hJ?��:�~^6���3��xT�D����6�������ج�~l_��E�w�"�}q�s�Kx�(]�#����?��7"��{"�_Q�5����TJ�/�;疰NSz�w���MGb]G��P��EJ���W���k��X�?j���xީ�s�A�xJ�e�/iz�;P����RU��((�͔K��c?=���c|o�
��w��
�a���\^�|�X��=U�:��b=��bR�3��*��W�8Wߩb��X�z����;���d�=}��2���=�v�C�jJӼ_��~8���v�a!��p�a��|J����ϭB��Va~�^�~������GVa���B?�\����UX��Va�\����>�[�o>��O�x���R�)��Fp��|?J���F��՘��j��j�Vc|+V~C�>|/Q:���j엍��|�x��9
�{�Q�'�Ga�.8
���(��SGa>ߡt&��5�2k0��נ��k��G�`<Ϯ�����kp~�[�q�;����X��Gc<��;�h�C�hԏ��F�F��4��h�����]Gc|�h��Gc�`~�8����?�|��c0�k�A�/<������)��p���׎��	�%���X�w=�sy?�{48��8�K�qX��ǡ���:\x��ǡ����\�x�g�c~�;�y�x����x��O���t��,M;O��{)�C�Q'`�:��	}�����zcO�x7;���'���'b�gS:���ꉘ�3O�<\}�w7�{S���0�띌�mz2�=�d���d�����~2����)X��N�9�9��8㸕��{���T��N�8V���G���_>���T��-��_�����>��}~�T���N�9��4��}(���>
���O�w�ӑ�NG����}�}:�{���N����8����}�t���N<{��=���g�|�r�3p�p	�u/J/�u��P��/�>Ȟ	�}Ù��س��M��:4���=�y���>�l�Y�)ga~/>�y�Y��j�������,�����}��٘�]��~�}6��Q�����k��=z6��l��gL:��sPn�9X�C���9U���<>��_��ߟ��w.���s��6���r.�9���|�����e}��s�/]z.�+����'�|�aŗяʗ�w�C���J���y�7?8p��+8'�ᗔ.��U�/'|��'��~��w��P�%J/�t��Q�yJgx�
�+ަ���}���g�O{�����|���9�������]��t����/N��w����/�~x��#�k��.D�/�yه�����u��w�^���>��B|�M7���|�¥�����s.�9��"컛4}�"�g.>�'}��b��=.ƾ8J�S/��r1����|�I�C<>Jg�	�?�R�_�sQ��W]��x)ڽ�R�ӵ�b>��r?���˚~�[hoOJ	�ڿ��|�[(���]���e(?�2|g�eد�|�e(���w�e���^��˰�_��R��e���a=6��>�r����3�㾗�>ǔ����
|��+П�@�;���<r��w޹��+񼹦�_	�e�+1�%W��aWb�
^	<��+������+'^��U�s�_�yh�
�p�UwE�c�B{g\�}p�U��^|�W�.N_�s8|5�{�ƹz�jС�^��V��=��k0�\���5�o�|���k1�=�E����9�Z���Z��k��K�b=޼���u�3�9����z�ӯǸ���Aף~t=�{����z���\����n[܀��x��^��q���
�17`����Kn��ݮ�����oP:���~�݈s�ˍ(������nT�#�š7�;+5���DMϻ�r������݈��捘�17��I7��~�3�&�ۢ����j�KnB;7j�nB�/߄s��MX�_߄}8�f=�7c��oV:�f�Ǔ4���q���f���[0__��a�[P�}>U��oA{�܂��~��[76����[�5��q+��V�_����W߾�zW�7݆���m���n>s�m���
t�_oj��1�e�����^�v��[�c���;��{�ߎu�m�O��R:�ۀ�_�6��ʷq���X���@����r���~��t�;�~�����9t'��Ewb�^}'���;�����߹��]���������P�.��{����.��g��fݍ��s7���wc����z�����1ޓ5����ew><q7���ލ�����]�~�}��s�9w�{�#���{п3)�b�s�˿߃u]����A~���W����w��6����7�݌�܋{�ǔ����>�=O�����ǽ�?��1/ݏyx�~���Ͽޏ}5�:���<�u:�|��6x�t����?�� ����>����ζ)\x�CJ�>����W>�}2���lJ�bz�!����gO{��>�<����0�y�a������{��øW���|�����`=�h?A��<�@���v������G��_{x��b>��[�(��G1���8�z��O�>�]�)���]�����MJ3|NCO{��s�cؿ�=��>��^{���c8G�>�q��8������l�q����1�>�s��Ǖ�{���	��'0�<��w<��S����w���y�p�8_?z�W����0�{�����������z�a�'1���D�|�m}�~Г87<���ӓ���9��)�O=��\��O��>��Oa�'>���S�_~���	��<M�>�E�}1�}����?�>�{�G?�Oc��?�}��i��ҧ���i�'O�������?�:����zG��������4�����<�t�gp��y|�ӟA�B�A����(>��𳘏=�j��h�3<~�9��{������9ų|����x�?���??�:�G;Cϣ�i�^�<����q^~H����3�����~M�����8�GX�3~��}~�G��"�mً���^�yz�E��s/b~�"���6x	pv�p��xI��/���/�_��޻/N��%Н[��`�??��?bӗq�y�|p��/.7��q�O�'|U���	�?������)��k5�G?E����+�_{^��9��/�����}Mg�x����z�g�[��r�������_���c>�9��?Ǻ���?����cO���܃�_��+�s�_��/����?�4�y�Ʒ���^�U��Ы��W�
:��W��%��G���g�ļo�?4w,����7��i�_�c~%��?������;��/�����y�1��>ӡ���u�ӏ��y�����7��7p��t\�o��׸7v�
�{�o������7~����؏���+�������~�ߡ~��P���<�;|g�ﱎݿ�xs��9��������u�T�����w�?������?�]�G�����v{�4�&��1��&���o��_����{B|ٟ0�?������{�b���WԻ�����so�_�o��k�¹��[�������o�kGP1~�7�S���g'��s|�ۘ�����w���A����߻���7��s5��ު�\|��7oP�u>g��5d���W��s���83�����A���~���/��~�xW���]����~8�]�Û��>�k/��s�ڻ���8����f�^���{��G��|��=��Ͽ���Rz���y�}|'�o�1��>�߀�g����x�ҏ�9y�ߨ������#����`��~��L��e�p�����^4ɸ�����J9�D��/��<\B)��(-3|���؜�&��#�2|�i��dL��=)�}�7�ΧT�ol��+�Q��'���P���<;�)�<?���}����Φ��!K)×��|7�<���x^����o)�{�?ZnǏ��.��ͧ��ݑ��~����z�?a=|w/Jy������򼯡���Y��9��R�����o��:J߸�R�g�[�I��C�c^�_�R�oQ�pn�O4	}�7�|Og>��9�R��J��(�}YޠI�����M��$�w�'1��~�٧Џ���}|)�|�L)��m6D�6ļ�7�<��!�����b����9a#����c�����6�x����Ia/���D)��R��q���')e<k��h�pM6ƺ�6�<V)݉���Oc�4�竟F�g>���ڝ��Y�=?�~���bMC�w��;I����o|㼌R���v&l�v�m�q���ز	湓R��O��~�I�����ܭ���;)e~��(�{e�M�~tP�tצ�ׅ�b�]�)�]���ĦX�_m�}�����m�z�7C�7�>�I)Û^JY�g`3|��0���(���h'�9�7�9�q.��?�J)��4}�f)��n���x��9|�o�&��-��/���g��:~~�&�m��cK���|��8/�l�q�A)����8��8�~���R�o�<�e�V8׋��|��2�=n+��7��[a=��
p�0��n�������j��_���U_@��|���R�㹅R��wߺI�#�z~k���z�sk�����g���o�
ƿ�6�����}�6؇�s���6�q�`���
��׷��n���m0��<�L�U��-��p[���o��c[�c_}߶-ƻt[������)e<�1J_�|�I�r
�?G�[S8�ϧ�_�M���$z<���;׍�:�5p���X��O�8VN@?��2�z*��O��>�?�_���	X׏m�r��������C�����rM��5-���g���X���o�u����l���L�v��~tL�>훈y8{"�s�D��#1�N�:�ֳ}��
J����p�����4	��$���0��&a�['�M�~��vWM�8ϙ���I�_oL�xv���b2�s&c|7S�xݳ��^��?s
�c
�U�5S��Ϟ��^4����'�`�8�)����&;��N;b�3v�x��[�#��v�9�|G�eJ��ڟ���0���}?�Ʒf'�wB�;)e<�;�47c>�7�f쟸���X�����g�1�nF6��$xs�T��LŸ�OE?_���a*�-H���q~�Hc����ni�Kk�	Ӏs#i��qZ��4��u������Ok{?Jc������>�z�g�i���i(?0
���y<�}�4�i�W�M��4������zz��W���������L�=�����A;c^��S��߶3��ޝ7~�3�M���Ỡ��`~^���.ho�]��ծX�i�b^�{��Ѯ��/�`W��b?����'vC�	�a���{�k7�_��;C)��w�ް;����ѿS���vǼN���u�{�h��[����c�������X��=q��=Q��=1��(e��k~a/���8~/��^x���χ��:<����^h�ͽ���q{����8�{�
8z(���s�ހ���ߙ0��h�w�eu�{����3������X߿�|~r�����e�'��q�>��;��y��>����~�"���s�̟�/��~f_�g�,|w�YX��Y�_��G�B��П�����0����z�8�w��o-��~8_;�}ж�w�~��a�}K�?������f?���~�V����(�u8a�����5����״����q�sJ��{ڝ������P����.}o��Zp�=�����e�_O��~\8�wQ�z<�S�z<�����\���\���>���$���V�/׵b?|@)���C��3�ާ��x��G�Q�z<��޹�R��yo���&�\�ϯ-D�S`�{�y[p��0�a}>�����=~��`?���#��r�����v��^J��zB;�ǣ��g/�c��Y��_��4�����;��-�w�Z�s��"�5}}��ۋ�Olց���v`_\�������t�|��R��
���s�b���	�8��D�K;1��;��w;1O�ub>~��։{�?��D{�Q�|��@������.���.���P����wa�V��X-��.��]���������t���w��M���I�X�ݻ1���Ag�tcܯQ���S�z<�=��=��=������z�w�Ӄ�_����ϳ4m_��K0ޣ��)K�������~?����%��Z�u��xN�R�Ce)����E�^��ݾ�����_
|�c�pN�.�9�|�7��\m}����~�� ������t��.�q�|~9���1��r�?i9����3�1��,G;��[|�ޓR��9��܃�|0�]��F��wo�?:���woz�m�!���C���<r��3���;�>?u��Z�����Cq|�R��H���P��CE�ܡ��G��Už8�P|��^~(��͚>p(�����<�u(���a������98�0|'<��0��iZ�����Z�߇��1+p>��؇�+�������o��~�E�_Y�{�X��ᘯ��c?�G�S��vM_:��p�w��u��ƾ�1�3�5�ޙA��f��Q�|/��m{1���(�܋�0�p7�|�^�c��:�Y�:��	Y��3�{��Y���9��xM���{�rX�t�l���@JE��~8�~},�=�����}!��jJ��@�s�_��C�'��]�8�d��}X�_�a?�ׇ�6����X���1�]��~����з���ݏ��d���wĀ�A8'g`�~m�q���u�m�>4��=3�����M��ny샖<�[��~,�����X�s�����y��<�����<�z���{�@�u��z+Qo�J�}V�ᅧR��ݼ�ژB�������W�3�{�+����1ME��zE�g�"��u�jZ|�Ë���Nj�g{DX�>Mϊ�?�a_��>߼��H	��.a�3%�{���Q��*��)e=��-�\y$��=Gb�x$���#�׏D;�8�m\�a�2�;��{u�2�ku�?���zN�y~����Ͽ���ʸ���팍�6��g�c>{b�����7b��W1��;1��6��ltʕ��W+秫������K���=U�����T��U�mB�M���p�vR�t���/
�������OC8��k�-�1��a��a���a|��a��%��0��y��a��¼�_�z{P�z<�V.>�
��c#(�����~���A�G����6�s���6��ɫq�f��{y5��մ��=~5������Wc��r5�B�ێB�Ï�s�Q�/�?
��(�����7�A?V����\�}r���k�~���:�I��[��~�hг_8�]v4ֹ��G�z�{�ڣ��_���x~q4�;��ˎ��/>��Ǡ��m��cq\z,�_��|L9xՒ� W��ø^>��w�a��?������>x,�,�����L;�t�	h�P�;��p��'�4��$z<��>��'�;�$�k�I���I�+֜����$Ї���ē�7�d��i'c�^;���'c=�S��>�b�S��9p�����SP�K�`�������*�~*��S!׽�T�ƞ>��p��9
��z�쎧+��t��9�O��>��t��{�8�;t��g����%��_¼�����4��/�~y�K������t&�N���{�3���q��g��;�,���¹��Y*�8�u��X�
��mw6��䳱�>�9���g�����s�����s��ǝ��
(e=���<T��.?�v�9�ﯜ:l�__>����<�˘�E���)_�=�ڗ�N�΃��JY�������_�\{�����;����[�5�5�߿����_Ǽ��:���_�:\�u���S�z<�~����Ľ���}��7q��<�=�|��������}K�oy�Ϲ�/@�.���N煘�.�x�v!����?{\���"���w��q/%��o������.��/<��%��h��%��]�q.���JY��K1ϟ�\���^ο��˱����p9Ƶ�x��
��+�ϛ��������W^�_	�v!����敘�C��>��*��__�yM_��\��x�ՠ_.���^��=}5�s�kp����{�]�s�k�o6��I�x����Ǯ�x������{���v=��c�cn�~�v��Y7��݀�t�
�{ߺp������W��7ޭw#��go��F��z#��7��y��OǍ��o݈���M���*JY�笛@�l~3��7os�͸�o���f�S��8��-M�dz�-��ŭHw����V��3o�x�oU���/G܊�xխ��_�U��0��6�DZ�!���p�<x��۰_޸
�8�n���_6�6ڙ�m���>��ۨ�̷1��z�����;�G�|��;0/c��w7��3�N�o��oK5����;_������'�¹�.��ޅr+�R=���~k����.짽��w����ݍ�ޭrûQ���1��
x���8��
�:���s�^��=�7�r�~�
���w�����t/��{A��=��{1?��<��{����{q~��p�����<��G�������������/=��q�{DN{�r탘�G�}�A��A��⇰�=��Va=V>��u�C�y.���'����\L}X�]F�[V���h��^�0���1�7P��| ����u�3��^F���ӄw�(�>��왁��j����~�Xa�9J����MӅ�S�N?��vo�2;��.�<H喍�}���w@�o��`۱�{��y?}��IT�`CFy7��N��u|���@?r%�e���{b,�š�m|�S^��/�Y�侳Z�<O���vϕw����c�������h���O�7a,����	4v��rt�'P�bo�h��[���t�W�=���&-��N`%���Տ�7���Tw&�ـ�2��9�|�Z�C���a,t����P��-ս��=������>�k�Gi��S~�8�5���Em\��4>����k��`z�u�kj��z���PJhE�c�(�9�YZ�Y*���������&�K����U�̼1�!�h��.��}���E��6�IX�����Sy�"��c�7�]��T�4����{�ʽNi���ض���(�.�[��O�_/���v�6�(�����N˺������b�?"�����T��L+鷿�g#�]E�X��}N�Y�=������[��fS��y9MgS�'����w>R���?|�5�Bon���q����ۍs��߭�N�o|��]N���N���L+"�`�'R5�����)�֭T�s��(�iz>���}�O���6�#�7z}�K�,{��(-i_N�2���Il�������C��OG��_S����7�m�B'���w$�����3��0�<P?>9�����3��m�q��#�̝�w�}���~�i
�M����w�ok��P�g4�:�c�yk���4����7���|~X�Oi?��\J�k���>T��1B���7nL�{k��:�лcG�E��>��+�(�u����j��
M_��Ee�z��޺�֖c��.�~?��@�ϵ�"}�7�w0��P�+�^�6mk��]j�)�ߊ����t�2m��~?Ay�a���SQ��c����^�s|�����N�5���h���{c|��L����~�w>�&23x��[�(�`l"�a�C��P�_�߫|eл_������&���7��<�;�g��?uLO����QZwC��Z��1���Qz#�Mk��ûZw��7��jʛ��������3ڧ��.�?B1��S�k�Cz>��G�Ox^鹛��
��N�t��-�$��5|����P������{������^���-�2�P�����u^�tx,����ےq�ە�
JO��3j��v*��8�A��m���/Ey{i���s=�M��T~�o����X�B�t�_N�^�t�7�A��}n�w���&����㾇��9�����XJ�������UZ�屰��>O�����)�	*�;J�rS��ߴ�͚��e��3glB"z~�~l�}��'z��N1�H�Y窍��A�ߧ��5s����I�w���5�}���a|�~��i+*� �#�K�Ӕ�����7x!�vz߱���ʍӾ���^9������?���b�L���w����������rl7�ߟe�K�W��h�׿(��1��Z��1�G����埔w3��P�����)]Deղ���NN�Žj��?��.��j�C�;���/;6SGQ�
u������_'�i�Ɲ����5M�ݭf?���Q;7�5:@��#�{=w1��{��q��*؜����M�|��[�9��}c���;�w��C�ߣ�g��һ�{��W�M���� J?M�v�2_fz�u�`7�� o\��7z3�f,�x��\B��\��%Z�*/�$�ۊ����tc����'5�]jw���Zo�_���w7H�'�zm�nh��cJ�Tn�1����|(�!J���2�ql��չ��0��^���F�7�qƻ)�B��:v����ʝ�:��i�nѶ���n��&Z����k��X�x���xJoӱmN�'dڂ�RL�R�gƉ���=z��޽����S:N��<��(�<�T��㺗~��|oM��x�~sC���`�������W�GS�ۍ�M�������?��O����M)�UCiٟ�ѻ��jJ�`��ʽC��7����<����n<��X�M���ݑڹ��*o�lD���F����?��O�߇����೤}��8���5�wm<���v������Hm�T�F*��~���(�x}����{Z�_l�����O�'0�F���(=����O�עu�n��ޜ���1ߣ�LJ.3?b���T��75g|3���Π2��o��һ��C�N�ߗzp���ޚw>߿�Ǽ�i���o�6N����_J�c��/;O�!�����'=�@�ƙ�n/���K���khJ?A+�`'��v��v2�,�Ô>�u{�L�R����2N��n��4���n�_�S��s�������ʵj�g��F�A�3�p�.i����O��f�fMj������s��X��D�:�h���
��cZ��?b��OQ��c�BlY��w�L���s��w�ݙT��a�{;�?S̺3��c����cl��߿f�r��K�h9��T�Od���g���I�3��o�-��1���.�����c���N�yt5t��̧`��X�?I�ߠߟg>�Gx=���)��`,�^�w��K�/�B�g���n�=oCs;�����f^ �=�qL����)-�t;����1�5���ǰ-��&Z�E��2j�m�q����m���t>͘��q��>E�s�7�} Ӆ�:��{��~Km}��N�6K�`o}�7WK���VM�9�z�,�;T���=��E؀�}��������)~f>��[o�-d�N�1����~��<>������|�&��D�\�u�&�����35��X��x��T�[�W����Z���z�mG���~#�)6��=dZ���)s����1�;�~]�_Myc�/
oE�\��)��T�?
Rs2ف0U���j�P��/�Zr����L9��ݖ�-Dٕ�`���ǩR��O���r������P^9<��/��T_T�v��n�Bo�J.5U�&���\���d�a6*��g�j]U	��8?��a�U��\������|���j�����@�7
��\�K;{��>m}�ި2 ��-�2�\*����B�\-��J�\Ie*�8?�/��T�a�,5��帒�D���h.��B��Y�J�0�����(g���x
?�F�� �D��d��0�S���@03C�4��Z*E�m�����i�Y�5)�w0O���dW�~�u�a߾x�&��Z��ݒ�JK�+�|!��h�\�ݤ��T���V������)��0�Z�e*<��\+��՞�ag˙�B��1sZ�-e�N��5~���Y��0��L.7��
�,�a_T(D�4G�l��F��V�gH{��/����-͒1-���`�����۔.i����j.�"-SX��L��bg�F�j���E�EW�٪��@XL-�ʹ�2�
m��{B����R�����3����gi�hv#ٝY>X\�7�]Y-q���������!u��+�E����jޙ-�mA�BX�Vy�R�5F�m�����P��*5y~!��
#�.��En#�"��)��Hz��\.�(�\��
ŒS�
2gnGjIW�}���!ok��ՂV�z����XN�:՞Y=2�=��qJ��~�u�#���2tr�G�;�T�4��B8�J��� ύnWF_%,�_�oa�өŘ��Yd*ؗ/�cZ43��'\�BK��I��Xbڝ<�R�O/}������&�ēQ � pC��pT^�[6�i�
�2e���r�
5C�)g҅�J,��y��r�z�)k{�ع�/S-h�f��1ܢ5�fR�Q\�S��9:�R���_[c�p�*�c��<�����������L�s0�
�>\���� &_N����-��pf��9NNK�(W�V�z����d��{=�GV3�J�2�(��u�p�R�F��Q��0n	w93�*fF��Vc��R���JP�J9*�SK��K�/T*�x7�Jt	з��}�̫9�v�<�,��;R��q�r�ꅼ��U��}��F�)qÙ�pn�'߯`�N�Z�L�r�c^O��lK���h���*���eX)i�#)�]�k�K���������Q�A�Z�H����V.D1okT5��`
c��� �E��H����aEj�
:��Y5��%�T�P�2e�C!?F���L:���G}��woW�@?��uV{�L["��t���ö�d����!P_-�TjNw7�uZk������ж�ghW2�1�7��JW��Hl�%��2A֚\�R�j?���۶ξ��r���L�2�2��
.����A̋g�/�R�R�Vt���/9�>���l����d/�M[�
	��)o�.fʍ�Y��D'�Q!G��l�y))�}y��j�V
T�h�ۅ:A3[���L���f'81C7A��roK��J|����J�A����@U�@0����5)��䓻[��2/�c���t���L1~MC�U��E�-O�
�O�z��"Cr=��)�,��-m��������h�i���+�5b�l���+��b3>��A�@���?�P�����E^�
a}��)��,>�)��C|�,q�J�>+�1[��p&�#R����h��x�Ri�$��C�K�*3H�A3�2`@1'쥫W~����4RyXD(L߈�t�wwO[ح+��7}�#�N��8�̢k�f�1�Z�����j�����KbW�r)���,d0ji~F���й����ި����ݓb,W�+��]5}D0�r��ͱ{j�`##5E7��x��2�S��|��=@�]
ʦ�+��o�1�ʟ�Ey����bȐ*C���Z�S���BV���l��s���T7�9�����u�A�ji���	ą
AĔ�3MF�q���t��\���	�9��hs
J�����=�� ��JB�F����j����q��-��W�
��E��9�ĸAP�����Kw�y���`��<��J�|�)���>x��Uc�R�@c�D+@��ٗ����@N��j/����vhsҨ�R��@T�
��zB�Tr���	�i�E&W��!�˩E���,)����ɥ�ҍ�/�g�f*��ޕ�~�Y�3��A�387����J�6o,�����,�G��xm_��5�yUjW)�LZ�Ǐ�7l<\U��h��{߸��T6,��⪣����Mfdr<����w��%�_�ym�@��i��іc�‰�]k��9nT�Je���(�"�{��h�N�����Bj+��iLW�Z"j!���,�M�_�����m��1(%�S�K�i�Q���7�f�g�f����{�1"��7sZ~��'XC���.�ͥ�� K/j�NPrB�	(꫖�ӆj��ֈ	���/��+��q)s�L�m�)~F��r��ͧ��}�1��@���K�o�q ���/F�-E�B�DP�@�仁/�L��&�4�g2w1m���Zh�㑶5W%O��T��c�f��XX'@#3����2s�К+)��Rj)ռ���ӨH8r�om���`�	+|8�{ӭdMy�#y���an|�׊X5|/��o1@_�
�"�iaI�O��]��}
�$T������j��i�6h+���M��&D����������4S�2쏪��`
�	�J
�
J� |��|��IA曇�`�y���p�n�fJ
^(���|�T���/f(8Lڔb��P�#�"#"�j�L{K&x۲��3�46��̈́�����7�˕e�&4-��|��+�|�9)�`;
�[�ѕ03(�ry=���j��
�Y)�,#t��4�����0Ͼ��V�c5�]l�z:T^@-�'�z1N}7�Y��aa��YX4��qz��v��O��AC��\wmUuō�(S��
�A��m�Nں{�K�k�بR��<�2�#u��q���3�s(4=�^T�$3�H��>l7��R~��k�g>�;Z�ԋ+D#���$d�����Ni)L�ăe=���y���8���(S��x3��0_�ٴY��A�&\F��)Z��rM)�*8�1��
{�D���&d��0�qIW�c,�����v�IS��2��f��T��f/���T`F}&������#�kܞ����l�;�"��xS�
h��B�L1��B�H>E{ټ7�S���z��~
i'Ѭ>7��`�@���Jy�xgyKb	�5��-��
0ѹ,� PO0l �2�gF�b�$�qk�/0Ie��x��;`�\ҚLGټ�sȌ��6PT�d�a]�e�1F����W#�Ȩ`���'[�I���k�+�.4�L�<��躊m���&�0�3R!h!��l�9��A����vg�M6��l%Eg?�U|/�,l9H��
�,���-�kY	)#�!��s����2}Ҵ�U8"�e��D7|�'�w:0��!,�H����|q��x��,%�unD�lE�+ҫ�ԫ&s>�2yI�=�+*ԶГ�-D��6���-��(���R��$�C{�$<��)�m�wC�E��۫�_�C
�v�2����/F�Z���FUdf)��`�2ܲTr?��m��@��`깑bf�� t�؊=�o�~�0���+2h�<T��P�Fj^pD���Zi-M��!i� i��"p�>�v�E�j��G��v��|�3R��@�"�%쑨R�[���Jw��pQF�m�\�T�p�/�f^G�����YZ&/����@s�[	s�+<�ː���b�@�Uh1{��:�*��)=5�V	�Ү(�Zr9�T���J[�R��O0j;�C��>�CȽic�M�Di�(���3f
~$�4�N˜3���V�j%�S����i��?��_�U^��l ["�˟�tyMt���8�6Ȃ|V{����'���~���ŜIG���^���QIA���*��'�44 ��΄���\N8H���< ^��&S~Τ�y������-�ϺDD��	|F�E��,�����LЙ����톌��jQ��-�h&��S���!� ��>�
ɑI�i�%�p���"�y��
*{����S̓�/9lU6���BY�Hi�̣�M��D�S�b���j�ѡ�&���i�l��?j�k+��]��� rU�Q��Àj�����7w5��o����W�EQ���y�R���=��S���4ƕ!�j����{#=g�����*T�*��(�D�����e<��(*�tʒ�"�+�f��ŌA�0��Z@H��BO�!�U�a`�<0�sQ�ω�����N��h�I`��GEl.N 5���e#,s9d�sU:Z�4�lE��`�Z�;���TO�$��n���e>ᶫN*�]���55y~ �{���'Ů�*-�҄�$[��^�CJ�N)(�]��\�L��r��S"�KL�Ѫ4oE�u|{{���������7�`({�@b�_�_Ⱥ4���t�R��-�w��*�Şڨl��N�\��
�5��v��ɰ+�B!2=��c����u5O�|Ɗ�}��3N��9�XBͳ�9�l�c��c�b�f�p��ru��E�w��HG��At~B'��(bi�#y��ŕ����{͠�>a�csb�
�<ʰ����F!Z;
�p�*
��f�ѷ�/kȒ�/�w��,���uIʊDG6����6�����i�왳���^�V� �7F�/�tM���t�Cs=����2_*�T|��>*€�^i�8_�V����I�=��S-)�a=9��x�*,��n`�F�2*�T8$�~/�L�%0-&�rF���u�J��@8K���y:��W�:���AB�3��W=�i��g��Fr���ig�������yVX�چ���v�B]�̡��!��F��W�L�uC.ܶI�T	�P!�c���ᠭ/�k1&6��;ޢ��͐�\zq��aժ*�3����`4�,���!��IP�J�>�j�D?��i�&̤�}�sj ����fL�'�i�<t*�u%x
����X����y\��jD�|Ďz�|��1��J0�=<*9#�q��XI��Q��%J�U�qmr2�t�v��:<�J�W��)�h��4�,��ct'�,�5k��*cŽ�&2����^�"QǨJ6�ײ2��l�P͸�C��y-h#��c�9�-��`̵�)��|I���؇�MO�ǚs:?�]�����6[U55j`�iYt�ZS�%C�*p���fD(xچ�q�j%C7?]

�ɯ>RY{���#)� v���̠h�Ж��T1�
��0�nĸ�xH?��ҥ��Y��c'�-���:��N����p�i��RX��5yP��.U�T$���|>���P8��r��0H�M�)\�@�yA͂�d�氾\ޡ����]̕aXJ�4����T��� �X�P�vmY�
�~��Y\
݆aQ����S�`h��2Ȋ}��mV��I6�<�$ ���U�6*(B[2��,4�\2Bo>0,���On�g�#]�XF.��q.̨�f8�iJ�e���	W��؍�,���CVǬ(���47���RֶTG�3
]�5��Z�D�t�h�Th�[�@�D�}�%-�԰���� 	�ë��&C8~�E,g����DZU�S��	�؛
�	�nA'��{�i��L��M���(/��YȬ`�C��boh�ZUr�.
?ڮ�o'�2N�tjr{��n�j��nJ�B1T����9�m+��d���n�A���S*^��I+2�[Fnx'�.�*�lP����C^,v!�ñ1�p�嚠�C�!V��f�MM��0쟐5�b�__ԇym��8s�n�/T�ߨB�/_�{'��ebRK��Fո�-黺T"�@̓�W�^�,Q�V6��͢P4�>�]0!��m���D���RV�>{��)V$W
���-K���t���Dt�j~3�3
4Мh�D#��3��.M�3?+eѩq�n!SaQlSxc(Ӗe�SL#L�*�%�[��=|[�,��4�]�p}��l�E:��D�N� ����z>��o�z�B��%�\A�7 5n�F�q��>!*�o���i�d�lƒ"]����/��{j��bl򑇱�~��\1@���V�%)f���L��
&rP΍`��M}*�.��0~�"U>�20�p��ae�����En*�m����U�\��ݕ	u`� ��Q�+W>��ᏻ��<n&o�61ՙ�;���kq���bSn�=S\�0���pq��_�:��m*���xE`��Ai��:b&Ū8{��^:?AAEũ�}|��y?Ž��CބXA~-�'��a+�Y؝��|���%�ˆ��	,�L��̄�Y^/�A�+d�t�b�����K�,X��
�H�t�|>�GyV�)\0e�Eed���`�:H[y�4����:�`�Z�t���D-k
���-Vƶa\n'"J���� ��i��{\�9�'_����29��~���l�Y�h�vv�P6$�t��PwDA;�
)XA��7�͂-KE��hЪ���H�|��Qj��i�k�q�j1�/�`��g o
���b<x�Zs!}�ٖsY�b�1|Q*F�p�C<Y��K���'1�W��z<��I���C���K�?�<� ���(�F�Q�m��B�U+��ٶRKʌ�bݾ�{�e$���Q��ض?�?�����a	r�2�>�	��Xt
`ϗа�Wb��'N.����[s�	�n�5؈�m�4d��qX��N�4�EO8v��C�eh���̊�BR�?;�Bf�u�Al�[Xؠ����Z����C"�������ѝ�}f݃�<���w:��o��� �jK�	�j4 k�t�أ���X�6d��uoFm�'�
�Ѫ�|q�c�tu�ՙ��L�yT쟫q,ѱ��uFjnճR�5����	~f����C1�P�����Y�L�PTyO�TdWHh�Z66�K�	*dF��@�M{�:�b$(�้���Y��Q�K�i^FO�(F�X2�c`h1b"��B_"_�r�s7,��_��+E8�
/�����2z�Iky%zץ�0�ut�C
��,��=��R�,K�X�%�+2m�B�����B2��P�|E�x���2ι(KK�bJ͙�0lзn�-��I�nM-�h;pIkj^��E��=Z�R�Zg�Z:;����-� нH��`���m�Ly��o�)�Z%�$4��& מauy�.�w��g��G;����M��(�D�X��ْi)�q&sa��
�c�F��z��U��0�����`�8�r�4�؅qluz�ϰ"�j<E�*Ҁ5%L<y-@�N��Py���9&�aR�Җ� SF��v���I�=v4�k�6�U+zD���m�=�#�8!�d�fi)Z�1y��*^�Q�bxFj&��,x��Ϝ&�AG�Up�J�/`����;"�o��9��U��t��g��)NzEk����QH�<1�w�ԑ��EX��̰�q_����m)V�O��ftG�0jϲV�#�mVT���b
+�^��iа����$~�J��bͩ�p(�����+�h�ehz��5B�H�tX;�1�!�Q5��'���rǔq�z��Q��7s�����R�Sg{�����8X��u�&��J�7u��dk��Q�X��u��4��H�x+�£����6O�(��%���{k�x-f��xlpN�D�"�)ao��_d� �A��i-.����BW�ŪoV۶-{�n0��4b��q�|/��VNB'�FΔ���8�	k!�qȋh�4����0F�B�h}�k_t�H���j �܋~�y�V�c���Ŕ	Q,δ9�����j,y�����%���c�J��C�
��.�Q0�+	��	�l_./ߎ��8k}�p)(uIy�����L��r��ra!�g.�ۣ8fłˆ�Kz����l�Yt���oD�9cVi���?PN���E/LȝƖ|q�f�OUvk[�>BAG#���P԰j˂�\-7@(7��!�ᎲjJ�(�^a7�5Fы�9��P��T��&�0�TR�|�'�|V�vO�́����d����{.[��\o���}�Z)U+�5ᴓrbaJ�)t�,����)�VS�n��D*q��$]ȩ����9GY�Y�lu���EI�,���b�V�Z�PLai�*Kny�t4�aFیX�k�E0,�^�&���+wt'�/�Fm�#T����+	@�̌0ٵ���Q�	&:�1S�����XTA���@�\��T<��g��R�U(�Ҫ8���Օ[-����T�&*Q���eQ�FFo֨2^%d�x% �@�W��6h���=�L�P�e�S�aA��Y�=3'���V���1')Kv�Ɔ���Jr�������G"6<�ИC�ސZj)'HP�(�q9P�ӌH�N�-�.��8<5}p����
������R�UbĊKx���} [�q[rU*�E�\�k�����a{ec�,�K�F x�V@�ɭ��y
)�6%5dХ�|��K�N�@���T�\�]�'S�a�[*�8�gˮ��~�dfP�#�Q�ip�2l=�m�'��l�EWͩ�����;S3�!j���F���ޛhm�A�:�Š���!�X-�2�g4��R�^V��fUL8�߉ch��#ҏ!����IMfI��r�'Ly��"��N��Y�ڋ%���d�G�G�*�:�(�~1mTb����W�[���;a��Y9؋$��c�o�N�1��=k3U��Ɏ��R����Hp|��ˮ���0�jl�{u�����d%���o�GVۛ>c��0���M)��(�!��:g?��	|c�ăξ��O�2�S-B�����64�C�`�kh�Zr+Ai%�Ҳ0@ƿ<4��r�
��.����E�F��G�im/�j)d�p>4��I�S-�mi�NK�G[ˉp��K껄�����-��h�ˆ q��-!��}�0ݟV�>+<�f{��j�o�ږJ��u��r�q��\��b���N�Dk��GqwP[s]���� (�EΒ���LJ\Y�b��g��]��ǨRK���`���cV|���r��;LJe��m��5���e�K�g��A͙gN�� "4�>{�Y�D�9EK<q�G1��{T�V����	��:��3�lD�dXIΚ�ve��@��A�����e��A�u��*�b�H��^ӧ[;��{�'�j6��:Xa!Q]a�
	g�&�s�a��-������{kU"��dv,4c�獇f}�q�g	d��[��W�ۤk�t�Q�`tD�d�c�@��b���A��0=Ff���痏!w�9FI{8��l�m�Q�Z�a�x'vN���Υ�OaռƑ�-�_E�HR�˷����N@�ܒ*҉��V�{�s��&|��X��G/Z�Zƕu�Xk3ᾇ��0��C��o�s�Wl��SN̘?K���:�f��5m/Td�<�=��)��ډKNv*y����%'Mj��J��y�V�+7˰|����l'iB<
%�ō�SsXq���K���C����O(�V�խ��&���C�(C-��;Hll�����M�V#w�t�@tBݞ�-g�#�Ͳd$�U,����0�d�a��(>��Zb�(�+����{ą
�V��S+�'χfW�(85���y�b�'�FP/Y}����'ˆ
�Χu��Fh��q=إ(v�򎞖�f�*р��)NλlŠ	頛�u3��Es�h��I�n@ .��y�D��8"�N_��]U��%�X���q^��
;��o
� ����lw���d�Ÿ��SqZY¸�_�
<���hӥ&����584���%noʖ��QQ1Z�PuY��Eeq�`�g�Lo��ܛ	Q���H�����)Q-B��S���y��)1nfgSr�l�І-%LE�6"0��VP�e5���o�:�5-2S6��;Ƶ�B��c=e'u�IHV��m7��%r�\��(c�ikh�5c34��س��B�~ہ��!�-ՌcZ#�^Ob]��8�9�k�Jsߘy���[܉�V�Q�aS�HC����|X�[���N��kp!a���i�+��vk����[˙J��U�|�R���L��w<v cE��5vok~�Z]�#f���A�L�kT���;�/¢�)�C�r��8��)IB�Ǜ
�٫��{��,�l��ȱkt�#�~=�e��u<��S�&zƜ����!e��K-�WX�G�S�Y��m �!��>F"XJ�'��7z�<�^P��g���98.�nzC��.�ۙ݋�XT���<���A���nPϴ��bEz�v����S����g�� jf�ŧ��;�2��|Q�W(i5K8����O�	o��v�h�Ny,
\a�3D/�ʗ�N��_=n$�w	ӕ����&�a��s�!��oX��P!B&�[�^u��M�ڴ!ݳX'������A�Ry��&r&au(��%H����W�n��k��6|@ *i,b����،1�bɋ����b,���U�v¸ç'`�L���!N��?�k߭�T�`Y��,�a#-�o�Y�%ݍ�ME^�E�%4�*&x���!�>˛`6�
�T�U�1��L���_��M�3,Z�i�:��7���	$�'�BaGF
Y�����%�h*D��͈<��n��>ih�������'�kBvxq&?��xp�8F��Q�{yuj\ �{=g��Q�ջЯ���6���b�N���7�Wd�����_�m�A��B>g�Dڧ�bTB�öᱯQEE��SV2l,k�:�^�%ˎ@/%iwX&K��P��01��v�a����%?za:ޱ�����m�H�[� .ۂ8!)k�sU�!�A7�۪k���EڃjwŇ������W��� ��T���ԫ��S?�s;�	[J�8Z�6�7G�]�?����
��V``�v��P��F���i���J��24�3$�)�Y�L=�r�-�P�-���|��Q��fm��Il�<Meӎ�A�p�D�H�#1��`�D��V	Gq�g�&B�4`9u�xVq�'iα�Q[mPK�|B�J�@W|W�rN����'d�M������2H[P6�k�F
֙�n�ha(�+�9xw��+�A���^l�|��	"�*�Y5%��B�C�Z)�I����:[/Av�=6lb[gBr-,�Ht���"�z.���L�봴6����V���T��9�x�9�SP����z���6Ѹ�{�*�����·^IO�a���T�N
�b�u�//f��Z\B7�
6N��t#jC�(~�[ڋ���Td�2��ڋ8Si쨔z�OC�$	n,���J ��m�7Q�2�9<%ܼ�^�5��\���P�������3dL�A跪��������؆�v�~���>��%��C���u��??�R~(��>�2&ڃ	�';���8�?�L���C�]i�.͝WtǙ~��|��9z������(}e,#�q���7J��5mX�JJ-.^=��,^nK&WA�fq�+zd?�E�b��7腏�(A��o�yk��JiN���u*�>!��/ꅜ0�C=uF4�G$�+������U�<��e(Oh� �]ajZ�d�8ឍ��5	�h�y�T�5|F([l��|Z[�KkDW�K��������p��}����O���%M-~�A!q}a#��Z[��nc�Q�T}b2���h�CDg[�oD�ֲކ�u��#Sh�	n�;�4|��_B�9�Ŝ������x�Y
�b��կh��	U	�EՀ�W`�1��Ӥс|8dfņ�C�z��{�^� 8�B���k2���E�խ7�ۨ��v(c5�|5Vy�8��4X�D&�=N�Gل2�'�nL=^A���	�#�M?�����ڤ�x���������s����&�{�A�ɬ?�hI{O[w[O���c�Z4��ǛU��+]��e6���������1
[����4���v@#�G8��:�T�*��7��e��bt�̜�P|�Մhtw���rM@�8�����6�|P��pq_�-*4h�ǡo.%,bĨ
;�c��fԓO�ܥ-sZ禖t�vu�w�/�4b
��@d@:�L.�Ad{���Ȃ�8'�[��5B$���C�PrYk�"�t�z1�+��@
��߼��~���vn����L�Nr\׊�@�*b��u��tMEbˆK#�����A�V���O|�5(�8S��μ��'����QjN��y�*�}������E�I�d�\���t�%����Ew�j`j"p�@�2�E���TL'_�	D��K1������0L��#�D�17dR˘��ú��՟.;]-���d��x i�%}e=M�r��C5#i獥��Z�*�ޙo�K��8ڧh����ɫS7��}k�(� .�P͸e
�%��\���h��T�p
Q�0@����dy�!|j_�/.��T2Y�C�'��W6N!��A܄  ���+��(eh����{u�:g�Hx�Ѳ�DŽ �c��-'��왑f~)�m*�W�FQk�9	6�l4k3����L�^�8dW+"�����#�s9��b.*�MT&�P�yO�]|
!Y��[�f����+�B�Kr��|9Ud"��)��2p�H�ߎ�H*DapPc�)��ī�
���ʚ��I��KC6W��\?u�;�o����_ε��������^��9lSGɈ�b���E��֥�]�{�u�g���5rr�=MR�<����E��G�*ȇ��#�۾�`-u�C�'
j�Hc�''�N1V�K���i���4�p�d��jzSI�
ee�5Bj�+�Q�?t���{&A=@�t.H�A9��m0:�|&"e6h�6d� ?��u"w�bIV:|���$�`�#FO�}�ݠ�a}˕��ɺLY�a3P��Ւ,����G���0Jvr���I2��R!;
s�o�9��s�V�}�@�E#W6��
����?F!������l�)uFu���wЗ7SҘ��s^�0gD7��-h\�1�X���7�ja͢M�2t�8(�EE��lP��Q>7UF�t�ˇ���7��.u<�_��I�Ul�����䂡(����a�>М���O�5�����V�<�V�;{8�nc����u܋vˌdY?Њ���i�x?�O	�!�u�������&�r�]�-��Aczڲ��V��	r��(Z���R�F=��c��׃d	�Q��m�w�}���a�nE�(��W��EjalE�e��#V��\�1݁̄����t��0(����֠����V�n���I*ө�qh���d�abS���r�tоf�5ۥ5�ck�k���\�$̡˕�:c�y-B���?���s��>��e�{c�/�5�@�QT��E�_ɿ�'��<+�@~�k���� ���r&��9��4�]�g�I��u2��O#���ʂj��=�TE_�S�`3o���0�'
�uO�ikʘ���9m��,gg�P	EY_nP4�Xz&������l1�8IJQ��jQ����
w:�GD�Jh��܀�o(s?�|d�xAc�kJ~K��5e큋J/�KeC��W��NJ��̀$�?�NT�
�\�)4�dr��Z�t$5!0�%T\��!��1U��8~L�y�㥶�5��7���&��`���=�![i�/<��	���`Q��%��ú8a>�s�1q^���-)��%��̬k6xb`�$)�X264�ZV�ʛoυ��s؁/��>�^�R^� >�^r��p8!�)x5< �����do�n�r���M�Y�AEx(��|"s���]�4t�6�Yt.��J�p Y#@�R>�]�j(qA�U�j�
<W�k!�k	�W���-Ʌ��m��G��d=AԖ��b����SC�g��6�xY� ���J��tT�+o�?%xY�<c��:�[%Z�s|٠��n"!Q'���3��3�w��b
�L�Ui��d��4�S�Z?�s�%�.�⇥X
uq3	���!��`죒��>c�©��eU�laB^"�iLw��E'S1�D��K�ZK�ɞ9֔��Ԓ��,��f�o��F_�B�LaJZ�>�5

1�,K�9��u�B����겡����#j�&�]>,ث�]�3r,��37�;�`��CeV���ЙPcM;|�T�oU������F�2g�5�-"��P\������Uw�ވ����R�ۻ�,�L��E#�kR�,�j��EDL��e-]m�M:Cdˎ͛�@�s'��s�AmB�ޤF��o"SM�m�&���(�XQ�(�i.I�{���l��O�4��	�R�(���#�H��r�H[w�"څ��QK*�OD9��ə�!>����YOצ�j�9��0S3%q��~���+�WM�*�4�+o�ģU�Uq9K�X���N
X�v��B6��ٰ-S�y��s����Ee�%�I�>���g���cB�.���n�8����� �p�Y�i�-FJ/6_E�c�^?�#�,2��J�qm\�
���=�&֟.���A�uL�uЗ��xuX��Q�gJ��NŐА���ծ�@a�o�n�r,�C������A��ӀG�fE24���	�j��$��E(OBZ1ꁡ#˙�q���c�ˢH�2o]��Qynɀ
��0v�Փ���z��X��SZ6#�t5Ď�}�F�	a�܆/��GT��2��慑��RGV�ٕ,�R�f�7W�fsG����9��Y�,�q�J��F3z8�E�O��S���t�M�Q	�>/������>�NQnQE4�\yaF�:���(�W���r:�B�8��T4���_�٪O��CУ�m�jl��\=a{	ᦘ֢!��!�8Hz�uL/�=+aykJ��X�M�5m9Wgc&��܌l�j�G�t�#hk=���*j�ǒ׸���˜�8��yK&)�/�$�q�5-�RR�,�kE�ȬR��}
���E{;�.Q��$,�EK��W�K�����7!��?��̉�u���3�ʪcLDH&���od��=�����:'��s��z�VuF���&+���Zv2T��3N�@8B>;B�~dTs�H����s� �a)���
.�-%U�h��i�L�9^	�A�O��J�Ϙ6mxx8m�ܲ,;M8���NS_X�49�S�:r��E�f*����,���~�l((�W����0��jb���5� ��ϲ�E$�/$aYUن�~�|��ȁp�3��Թx�q2�0_v�4}�]�N�s���S�����3v�s�������NU�����́��T6��A]YU�&��g�%=���ʱ�L_X��J( �3R{��+tX(?���T�$�����}���v�g�����q3R�QE��i�����O��7h'��JÛAw����7�,G�Nnj[��S�X��1�2N�'v�R�J{N� S��(ВpΝ/T�p�V�Ӂ�$����x�a�Ƌ�Ĝ��2i�?�/�4+ʾ�VU [
4@�*P�u7_y~.+��\�o�iK������Qd�r�bo\ڧ�����*Bs倊*��,eQ`��fփ1��EU����I��(�@L.F���8��S	a��H!���owmX�Ԛ�y�ޜ���e�+����þ}'�rM��%�]�]�*�Ѣ�J�I���e��ʾV�2ŕf)S��!.�������O������ؽ/�R�M��Ӕ<�`z�B���G��f���-�Ħ��D����<��<Y�A=�
;��x�Ormf�Qw�{�tJ^�nI�����h�޾y˴�36h�lZ�
!��w�"lV9e2�^!���%���Z�{�k���AK.�Z���.�s�o�Ùg��E��o~%�$4��+��M����g���E�y�!6������9�+!Fh���]i���|x�M�q�(*�~���M��Uf���ҨΞg�آ|��
:S�i_�捁p��F�؛�W2�7�gn	�6�����1*�T��_�0�`-b��[)"�V�7ƶ��֌��l�g�x62zF��F._6�?�
b���:�g�u���R��L�'��GC*;CCC4�B�J�A<�� h���Ɉ'�v!�x!q��0Z� ��Ǒ^��3�p�|�Bc�M��`,ϜAp��2��C��j)4�h�S�r�v�di�"�N��#��@w-�Ye��T�l�a~B�x��Pv��Ym_�E%�Z�NI��]�-D-U����dun9�LJ�[��w�!�N'eM��e�?E[K��:{�I(`�Qkz?#�nL��G�]{�
�P-���X������$�A]~[��
�aM���J_L���v�:|���Q�t�A�l�+@7ܦ�،{v&�g�o��}����I��>�nDIS�J&����H��X�k����1^�����m�[�_�r��^�פ�K<�6�-�R�Q%��0��{�Øؚ��N�()ib=YV�?�|<*'>@����Ñz���GGΕ�|�9�N�(��^Yh����`�*�0����,>��r�gJhKlu���g�p�.f�i6-��|�>]`�*M=7:�ޞ�l��ο�?h4t���>%V�בp����$���ɀj�k�x��_�����R�H�5��t4aG8��>�-��͉<q�è�nW����j<����=5�F���8<�4
�;�����\c�`�I~��)��)`�։���%��-���W��X��%3G&X��fL�{Y�Y����91��A�
ׂhQ3�S�8��k����4����8�1�`b6T�L�LuJ�|�A8]=�o�+�[�iO4|Mk��Փ��q�������F�)W�|�x�J��gR�MusWi�a�q8ڎ�:��e������vk$���%��%�����"��9%?s��ܻ�*�/�E�N�L??��6�bq�Y%�D�?F'�ѻx�/�,J�޺>�uwj"h�<z��a���h��{߸��D6,����E\6���,�&�&�]X6^ryK��K�-F��5�253ܨ�F�Sg�|���I�,�A>,ab���4�%��{�s��[��u�/z�W��r��VH.�1�'��4�f�g9�G�A���͜�������A�抶[]�^�����p���e��!ڄn�5T�i=-�N�ٸT�4f�$�
�Ɉ�����APk�G�ח��*>�2@3�9_��s�B!S�k��_����Ʌ�Σկ��ьV�Kɏof��Hᔗ�Hr�bZ�S��D�8���
��٧Q�H�������Rw�[ɚ�1<L$��_[�R����I��Q�H�O��<�+��L�S���Fu�@Í'$���b1�;���`!�nB�C)�!����]sD��70�A� ��+SCbd�$�ejRP��2I6�K
<��w5�UkT�̣����ZK1�\Z,� $�
���l�:����dfl7'=�xt��b|&4-��|��+�|�9�Iѝ��+N�X�L;�F|��U�~H<h@x	B��֪t�T�<s\�W���׋q���hW�p�����u��v��O��CK��\wmU��b�뙊}%F<���d�q�"��U�J���7,W
'�=��/�rY�F<��s<O�I����iU���V~��k�o>�;Z��#>=�A���Ygh�&,�in&�iY�(a��4�6˸[��}0�*��)�
��@y�,sŎ��(�7!5��!�	��eT�(KX2&M���L#��PN����@����Kh��<���0�I�.�F"D��B�|?èɫ���h/��F�Zü���h�̳ʞO�_cw=JHe#]���w�C�o!!��m�c�8�\�(�FXB�HT��D-d$3�L��̻��
���ʹr�D2��PT4��u�e8�P�$̭֩����a���A��dM��<tym14�L�<5`����"�t&V�%�0�ֺ9�ËS]�ɀ�Τ�}���ҿ�)���]�-GdV�@��D�q�Hn��g��Y<�������S[�0��ւ'EbNTa]Y˻�ԤF�p�Tt.,�L����Թ]�q�*6%�U�)�9
��$�xőzj�z2��$ G2�y�-PR�o�>���!���k� ����iQ��H���\.��j0�:D�fh�񠵻��hT�N~Z@.�B!�e��T~��egנ7��eb+���e�5���C#����=(������v���` Ҡ�i�1q���ܫG��>�v�E%�X��
�k�]�H��WH$A�
�g@��h\�K�T̫p�d¤6��"ؒ���g��ׁ�����e�bừM��n�N'B�ː�Մ��gu�'
�+���L,��h+�@[��J��Z��n+�����hd+��e�৪��5�U�X#<���Hp֨Z�(	όl쐵_L��;�C�["���t�����a �4��)��<�a|�/�L:*\���j5�xU�8�ibT%hU�'Bn.'�$���
Z��I9;�bOU#��
]�Y'���5�էDJ+~�y�u2X�U-EC��Vч�~ha�5��}�<%�I=�I��L�
�I�{�%q���"�z��U�\yG"Z5��U9���J��q��U�'NH5�o�j)�z{ͬ=.ĉ
����9T�Hk)U�ڈ�d�0(^�:C&kt2�h��t@�����_��D
�t0�Z�_�7!�5GV��t�7+z�ǧ�l�cCW��ϲ��%�I:��>�ޫi�_��!C�t���"�n��SV&U'a
J�"��g�-�ę/�V���Cګ���f(�l�YD5<�MM7tz����n�|:`A��߮��ց�e94�CF��"�D��
8'�:�AR+�wq��T�ڇH�^<V�L��L������K8�U�8��*kJ�D�l	�2F��!%�ƽ�:�r��̜��	ǔ�A=�"�>`�9�)�D�ҩu�t��ǹw�?Z�9��C�[�	��Me^,��&)$�%�K�R�,"�6,poMԥ�M�ܓ�
����c�y.I`o�<����o�y"��Vd$�\/_��CT2P>�gYu�����{Q�)���5�;�D����_l�׊x���E�'T�ڊ"��z��θ�1L(���k�>�)��o�3�k�N�����CV
�-�|v�ba~O�jo}+
��8�%�`�H7��2�����(��E-=���#��9-�=s��S�kTLj<�[iм�#8�5y�~�y��h�R���s��go��0b�Wڷ
BM$^i��3��,����Qu�m7
�F�w��ҁC��7�|��T_i�P�2|L���z��3`K#�g��c^~U��	�TՑ���cMs�P<�18�] �1C��Jť(y�aچ��KxQΡ�ԝ�\>��k������H^*m�D�""�$��8.A[_�����L@����7*AOd<�^ܡ�Xu���3ci1�?�W�(NX�'��*檦[�}g��FF��x�"Mk m��o���kc��MhL��C�{��q9O����؝[*J��~DŽDK��o��3
����/Q�o�&��b�ܼIS�YVC�&@,jɆ�����f�X6���A��.^c�C�׼�{Xd��`Cɭ����ZV�Q�M"���A�=`�2����b�i2K[�֔?)6��:����{���٭���F�a�M�D`*B�1ɦjL��U�d�-��
�S)�i��]�t94�'��H]T�l|*�����I�!Q��-թb�Q�5�;1��'ҏa�t�2�圸���]���t�oz�GM���-pM�&�KU>%��9�Ljc�*����4Xn�����mOE�JI?ʦ\��+��)��N��ͣ+(O�A8B'��
��X�k5 Y���(���aM�b�¬�:e�͊�7�b�����W�>�QJ��ȜɆVo>0,���O�Q�g�Z��ȹ0��D�1`A���
���$�Q�`�C�-�\�P\ ��h�R���6�����y�v-�(�j=`I���i���Z16BPZ^�a1N��96K�4
T��85���.b�8�>Y%����Ҭw�H�d��l�L����<��x,��c�-�y
��糐Y
'�8��=GGF�Ue��Ҁ��&��"x"P�tjr{�2��l,� +G��Jhi�{�ޔ�A���Sa*^��@��2�{�;a,v9��f�����b11��
��/�D�X$�l���zv�[l������g���`4�j�U�_���;A��.�j���"����@Ea�y�<zCW$)S�%ed�O�iW�Ke-;��&n�5IMK)�S��͇�4�L��,IZx*�}ʈK��m���4PAs�@��u�[PUڝ�E�D�(�*��/�[�1O1�0��_�m�oa"��R�N��WU��xA5�u�W��g��	Q�t���1�rR~���Pb�>_�~�ZG�
H��Qq\���O\�=
�����U��0���{Ϯ�ŶXLO>�0֏"��+r�^��
�H0��|/e��e�
9�?�F0��>�e�鋎h�E�*�]��lu��U-rCP�m�?}����uN���G)o����}h��|9���۠Mwf�����Z�1�}���[�:7UŃ���9O��؁�h)��P�0m��mho��SPQ�����~��ه�	���Z�P�>�V��;�[9)=���ͩ�2��D�
Nh����B�N�-�p�q_��K��l�Z���f��?ʶ�Oa�Y_ȴ��'{-�k�#_�I�!�9�d�m����@��+{ۆ|�Nd���Y��4���s�O���qil�zW����r�E�\ˍ��Hi�d��B�D6��7ۈb��'c!)c�A��L�Xds��A��R�-�2(��@ �/Ey��C�l�1$:��F����Բl<���F�Ob�o"����ꨈ�H��M���|�^J�	�a�)`ĴE9b�Roc��̨�釗M�ȶ��ZRf��e\�.#���ΓWP��k��c���A��'���r��6�JL_@u���Y���RD�z�	�n�6ئ�m�4d���5�G?R�M6Oږ2Dz-
6�q�WNxŐ!i�u,l�[Xؠ����Z���f_���^����ѣ�}f%��<���w��o��� �jKՉ�j4 k���5��u��?�!�;�{3j��am~�����g��k�z7�|l�����Uϖ(�~�U��9�'i�.GQ�6Ts�y.L-ܿ�)��h-�Ŝceg*7��a�"�$!Xt#ƽ^1�Xp���/\�(��%<5/���w��V�~-Vl=�"?�*�QCF^�(�}W��xΑCA����>��0�utރz�Nd���,zϺ�fY*Njk�n��
�V[�)ȜB#���+?��T��:--��q5gku,�,Z�ݓ�ݚZ��v��Լ�ŋR�{�v����N�tv���i�i[�A�{��w9��#,#`k�E��J�S����&z�^����a��F��vJ�k�Q之��@��y����R�@�$0��Tx��7V��+Wn[�������Z�{.�S�a,?�-����}���a��k����Uy���9&�a�ѼP'���~֣��=br*�M�Nc��_���ܟe��V��G��Hvx����m�(VU�<���h��L^�Yp51�9M��ȫ�̖�
^�p5�:vD�;1k���X��d��S���(.:r<z)����b�#a���4W�L+{P���,.�b�%!؈�b�w)����vd�M¦���v�a��=UV�{E�z�"�S,yV#6�CTå�����9��٠�܌�M�����UC`}�K�-�pMM$�$�p���\��䰣��]�b��d��u�&�J �7u�ek��Q�XE�u��4��H�x+�����#X��J�a����4WU�cχ
��,<Η��AUD>Ugh)�eP� ��t�C��\�芹X=N�j�v�urj0��4b<�q�|/ٸ����{ׄf0�=������BF����i,�	��aL�C�Ғ�,�׾�֑l+��T��'��.����OS$Dı88���+I梪���X�~"~���V.�j��g�#W�����T�ꕄ�Ӎ��Q��/�7Q�JI�k>�b��7)T��rCA["��[�P.��)��f�Gq�����tT�!���3b��H��+K[����Ҿ0n�Mx�Q��C�*�ֶ����Ə:^_|�j�F���5
፸�'�6�i�������2Q��Q*Cc��o*��+a'�����S,�l"t�}�L�j�TE<V�����t��Ag��ٙ�6��h��]�S.4��S�3�'�m��T7G���eFI�F���b�V���Na����0��$�������T�axqKױ�>���%���ߨ��U���vf$F;x�%�Ru�:ώE����E�-PS4Uv���	���Hė�VV�n��#�Wś�D-�f�m��I�n��CF�Ĝ,�������˶MVဲ�&e�ȲΩ��2����Íu��B���-;-TcM�]A%����~P��#�&Chl�DyHͶ�$8I
$����H�iF.U��Ɓi=o��
��<bG1��ª��>�8�E�lbĊLx���z��%w������Y��J`�W6�{�'��@�	�ӕ�RdmL�k]/8��z�d��M��E�e5u��%Ӎ��z��B �RfE1;"��W�w�փ��j|2+ϊ������f볩�	��d�#l	�o�M�6�E��b�iw˜0�`F��?J�^u��X0�@?|�[����C��&�pRS�™`㊨���E��>>���Kh�7,���� �uRDw�G�'�)�w�	��'��'�r�I�Ǭ��,�2[�Q{�@��FpH6TM��Z�`�
G��*�};�b:��������J���5�P���7&�j]PY.�q3��,� ����B	;����O�L��1B���P"��4�C�`�k�Z�+An%�Ҳ0Pƿ<4x�r��>����E�`��G�im/�j�d�pN?4��J�S�-�m	�NK�G)[ˎp���K껄ɾ���.�5i�ˆ r��-!��}e�)	�?�4o��4�:\^ֶT����[v�#�����=ͫ�'_X��>���ښ�-�]��Ө������RV�ث�.���>,A�#�Dj���{�%���!�L����ao~[�
7r�;��~5g�9g�&����lV��aNQO잌��?���zt����n��F6�`@�dg�`�4��̃.6Vw+;7�Vr�0�rW ʘ��e���O�V������)�l��u�B�4�d�ǩ�s.8l�5�Ӌj"i�ޚ�w>���5z�Y}���Y"Y����C�U�6��D3��:�7ق�?����iP"l���\���׈�9��(i�����\K7l]����_��4v5�*�8 �e��\IJ<�w���qş�	Ȓ[ҏ�]eW�W.��5�i!�;��ы�&re�9��L�z��bz]g�m�9�+���)'f��LVY�ws�*�j����c�ĊI'{�<��ߎڒ)5p]eE�
��D�䕣��כ�z�&L�h_b�8;5G4G{۽t���ι<����y�R�^�j_�aE�a9��2�2���^��6y��\�,�q5�Wa�AS	�'���b
+-KK\��s Lf1v��ⵊI&֎2����J�m��\��ju� ���ry�kvU��3��a�"[�	W��KV�)`d�E��j��u���Zxd�v)�ݽ����)	�F�!,R��lŠ	頛�u?��ys�h��IMo� .��y�L�_w��U쪊�3a
�X7y���޾V��m]UFgm��g�Cǣ�'3�ǭO�����<U`����wE�.5�`��8���5,!��}Sޤx~����B���ͪ�,*�CB�g$D��fF�;2��ض��e��KT��:���j�m��)1sf�Sr�l�P�-%�F+��_�ߺ�`|�MS���E��F���8{T��d�u��<�n�>	���톂�D���6����1��fh���gA�[�j���;�p�~C0i�Z��Fĩ�q_+k���܃n�D���jܶj�c����xâ\�DWw���]�	��N3a�_�[ۄ߼�m�Z�T*4����"�f���A�?+xկIHT�%��vi�@Ro�2��Q����*�H�e�y��L��$
��o*Pf?c~�S�̸-�"ͮQΏLs�Ĭ����}��D՘�ޝ��!�,�~���
�����a
>+a34�X�HxK����F�'؋76 �L\�[
>?F��@o�P�E�<t;|��X������V|�c:�����XL��C+��&�z���>c�!5��)�-^F�/b�v���BH�Y�	�Ƥ�xN�u��D�z�ci�&�}�z�qT�Twf׸�0$I7L��|�D
5��֜��Ѱ��j�u/�&��[�^uN�M�ڴ!ݳ�)����%��A�R���&�&au(��%~�x��X�n��k��6|@�c�4��o%�R�U~�1�R,�q�n�ŷV˪�CRg���i��ހ6�3Έ�@k�vU�bY��,�a�-qx�\�%�[\��$�k�P�J�dYVL�CJsGF}�=��h
!����Jc.(
.�h�
�j���gX���D�@�pL�KPH�O�¦���I��=�T�Ltw��s�aO= �1��k�S��͸�*���}��&�����*�_g�p�*�5ź�W'��-��s��Z����z*rs��1v�$K����sE֧��K�%ݖDP�,�t�R�}*^0F%�ƌ4�UT��1�&�޲f�3�5Y��H�R�zWK�dq��Zv&�Tծ� �|�����G/L�;6�_7�W\��S~�s˯��^�f�ab�*F3�F}[u�T]0I{R���2buQRS�`��]�*{�jz�sn3bK�%GC���稲�8��t�
�	�O��0��Bi#%v!R�2-03Q	e��ƙ�d;m<���oVnYb�%����cᙃԒ�9E5�pݬ��6����B`�l�1>�Δ�	�c$�a���3��*�(>���D$�\�n�	�J� ��3͹Z5��
j	�OS)��ﷃ=Љ����l�I��V=�SWu�F��H��=�A/3E��P���4}�<hY�կ���53M���3��=�]z�S�ă����76��� rm�	�p)"�qC�j���깠��0Q�����F_&�10�3S��>�<,^��NA�m�:�ej��D�?�ū��{j�?;�z%�W�aN�:5����wP\���j=p	]�+�P5N���
�8?olv/NГZ�Rq��_�dPko�L���R*���D

�$ر�+�,
�!n�eKU��>��)����l�
.�]m�(�T�|C�K�2&���)�q$��#�a	�D8 �İ��a	�2TU˺^�J)?t}F
�V9�����S�~pQ$W�g����!�D�Ҵ���+��l@؆�`�xM`~�j�_��2��8�SK�ʂ�;m��LJ-F^=��,~oK&WA�hq�Jzd?��b��=����A��o�y���J�N����*�?!��/ꅜ���C=u�4�G$�3�,��jC�)}�#��P���A ��״��1�=c9�k�ѮsC��k��P�.�3�0X9x���֚�d��=n�g�8(ᙟ�H;O��WW 6�Z�B#F��8F>�F#!8�Ʈ�ā���v^��Ѳ��ζ�߈<�e�
�y�G������iX�5�D�sT�91e@�˱�5Ũ����������	;����c o�I��p�̊��.4'�M����q$~�=�^u�d$�P�&�[-nD�Q+�*�P�j.,�'j��|s$�i	\X	z��3���AdlP�}�"���H1*-"G��~X@��;�5N��|�y������"%�#"$Nh�̄R�Y�|ђ����)�:��ʵhճ7���W�>��lV_��u�<P3C�c����G�i<�0��F
�p��u.��U\3�o����4@V�_p�m�u�B�ժ�rM�xE��}�ަ��;.�7w�J@
��q��E	��+@�����u��2wiKǜֹ�%ݭ]ݩ��˹M��CO�5�(HG��%�38��m۾ZZ��#dy+S��F�d��pH3*"k�Wĭ�BT/�u%����7(�UP���N�
�q^��I�'9�k��|��:'A��"�e륑��ËݠU��b�'^�:�){tgd\���I��5��<f� >ֆG��ˢ�$.�]��O�����[O��L55�k �5�g�a
*��/��ι�o|���o��g�ј�1��el��m���*P�����Ap2?G�0��Ē��>�c�>ص������^K�K�N�l�֥J��S�B}Ղ����[G���]L	��f�2���r�y�An4�O�JE>c+�i��L�7B��e��2M���Q4}Ҹze��M���(R�9�8Zwnʡt&^����,�L��?�����+ʛiv�B٦2zjE����pb#�F�6{�,�qꅷCv�"�
�?`�?�>�c(,�r��i�>A��>�T����%H8�m�����<�r*�P$'�ȗSE��ر".'���h��B`5&�&��9K;訬�Լ�4dsժ��S���z�	
��\{z����?���*N*�EM���1i��~@�d��.��.m�Z޳��c>5�쭥�+쩒�噔�4.�<�UA>�HQ�Ek�[&>QP#H�?9u��oR��X�NۭD�(ݠ���%c4V�͛Jj�h�h+{�aK&X�Z�C��@�4	.����A��ǤTV�QBo�<0;�A�����>�SK����W�� q�<2z�+�{��
�*�[�lUL�e�
���@���הw=l<�Q����M��Hܖ
�i8[~;�E�۷��,*����lHH�V�1
���NhC�M�� 0�=�ӽ������T͞+І9#�Q�oA�"
�ł/h��8�Vk]��+[�Aq.*�Ef����2��2���;DX>����ĸa�v��:NN"�b3ܝ-���E�������4t�~����m�70e��<������p��ا�_�[f$�z�V�EݸMk��}J�I�����
��5�c�z<Q&Ӗ�@x]��EO����bTTT:4�,��e׼$K���Ҷn��s�k|Hw+I���Ҷ.fc�(jL�lX�ڽ���d�|�����AA��w�
3���\��пt�lNR�N
��Y@7�M$�����]��ઃ�5��0��[�^�75x��X�dz��is�M������͟JC?�v����v3c���� ũ(*�#4��_���R��M ���
�v�y
AO9�]Ɍ�xS��+�M�+��T�I�Y�.ǩ�WT{�c���*��H��X��y��G�I=Q��y�l[Sƶ�<�i+V`9;S�J(��r���Ţ3����Ϝ�!ljQ���U��TDT�Ӊ>""WB"n�����
����%�L;-A��H�����A�P��U����f96��D�x�mj9{
Mx�0�b����(�EO�y�W�q��y�D���*&Stn�x�-�M��e��?��y�p�VB�O��G�{�0d�(v	����.�A���ܠdLЗt��sK����a�I&l3�
K�8I�8���ӥ�U����t�8���p�Ϣ���KH����\+�(N�s
a
H�9DF�0��ۮ�dz��etSh8|P���2��\��X_/i��5p���\���aB�F��|ֻ��P(₴�ʗ8�2d����H:9�ƯnQ_�;u��R��z�7oc
��z��-���q��腥jH����o+6�S�Z�
���w�K|�T.�SV�h<Ǘ
�k�**u�Z�N1��9%�~���p���Y�֚OF�JLS�:U�4j1�]b�-�(~X��P�7��k:"�V�?*���3�)��a�_VCP�
�&�`!2�t�)\t2�QDO�����YdMI�O-�
��R^l`���6�l��,�������TY��Cq�2�T��C[Z�(tY���:"	9��nb��Â�Mٍ:�W�#�fnw��R!�ʬ0E��3#\�ƚv�8����,�(W�s#e�˜U��ض���s��ZfںV�e{#s��'�KKl�3i�o�87�Iy����9�A���tu�u�7�.;VoB���Q��F��	�{�B$����L�/�y��`����bEQ�����$5������">ɛ�Xë*�2�5���n��H��K��E#m�-�h��KF-��圯P&�����j#%�g=e���Q���P͔�
�:��(J\E4����8Z��a3�V�X��,]d��7�o:)`��-��gǶLy��`��ek#�����(5�|Oã�ZG؎	5�4�R4��㎃k[o��g
`��)��|H��gx���y���*9�q*����ԚX��`�3(a�1��S_j2���a9��D]��)56;CFC��&X�2�����1α��+�[s�1oO��S���(о�:'��&�$�[�=9$i����4g*D����N�.�"��ʼu�oG�%.`0�ؽW���@��*2�c1�OiٌT�s��0��-'��s �\.Q5>�XdF�fJY�gW��J՚U�\՚�%�����m�$F�+uR����1?%�O9��ڥ7%G&��¶�ξ�J`�D=E9FQas�+Jf�NIl�J���Q_����i�T��b̖}�
��nVc����)��3qHJ8ž�a̮��K@ұ��|�Z��[S��Ǫo��
�i�9=�s�h����fd�U�<T�,I[��nQ#u���9e
]f��q��[BI���xy�&�U�Ӯi��e�d+�E����(-�/��Q����%a�-z�FÒ��ٽ�tdP�	������lN���5&O��/P~a"C2���G�}� ;*�<8��7m�H�(�8ach\�h
ռ�ʣ�de=4Y)�ղ�*��qB��"�#���E�?��f�\\Y�P���l��@�h)���W}D�L�?`ۘ�ȡK�J�-`<cڴ��ᴍz��4!
k;M=b���$OU�i�Pm��|�
ƣ�lj&�}á��_N�j��N�	IK{�DCr�DBA��d��eUf�:�-�$��� b�PK�R�T�4RLu�r��litespeed-cache-en_GB.poUT��bux����PK�R�T��@�O������ulitespeed-cache-en_GB.moUT��bux����PK�?��y�#��G�_�_(�_2�_�_`	`
`
#`.`;`Q`g`	p`z`	�`�`m�`a
a&a-a3<ahpa�a�aNb8hb=�b"�b7c:cH>c�c�c�c�c'�c
�c	d
dd%(dNd|TdF�de%'e	Me"WezeP�eT�eZ@f>�fu�fPg-Yg/�gL�g2hI7h�h�h�h#�h�hO�h1iEGiP�i0�i'j7jNjhj~j�j�j+�j	�j"�j/�j*,kWk
_kmk�k��k4lfQl �l�l�l
�l�l�l#m)m5m
BmMmZmgmmm}m�m�m	�m�m�m
�m�mnn$n0n=n0On*�nU�nWoYo vo �o(�o�o�o�p�p�pK�pPq	Rq\qnq�q�q�q�q"�qr"+rNr!ir�r�r&�r"�rGs!]s,s$�s+�s�st9t'Qt(yt	�t�tW�t!u7uJu1au%�u2�u�u
�uvv0vAvSvcv&zv.�vN�v*w/Jwzw�w]�wx'x!9x[xgx
yx�x�x�x�x�x�x�xy%%y
Ky!Vyxy4�y'�y6�y!z.z	AzKz_z~z;�z:�z{*{;{ V{"w{�{�{/�{*�{<$|7a|�|�|�|�|
�|	�|�|}}(}H}\}c}	o}y}�}�}�}�}�}!�}~~2~K~\~|~
�~�~�~)�~�~+},�D�8�9�A�;V��� ��K��8�qA�������+�>�P�b�C{���
Ƃт���3�
7�B�<O�������9̄
�� '�H�
U�Y`�q��,�4�NT��������J�W�_�q���������ˇ҇�+�%�,;�sh�#܈� �@�S�j�{���6��щ���L9���9��:̊0�)8��b�c��Gc�W����
,�7�
H�S�k����� ��Ѝ؍��
$�2�8B�{�
����Ž Վ0��'�6�J�#]���������׏��
��	2�<�BN���	����2��Zא,2�_�t�-�����i��I��;I�Y��KߓV+�U��Lؔl%�B��YՕ�/�Vі`(�J��gԗ=<�@z�=�����!�4�P�k�����
����<њ�%�;�?[�����ț����1�B�?O��������� ͜&� �D6�{�������
��������F�[�p�
x�����
����
̟/ן/�7�pL�<��
���$�-�B�	N�X�d�����.��ڡ
ߡ�
��
�%�2�hQ���A¢����	������'ѣ
���
�
$�"2�U�^�m�$��+��Ҥ#��*!�L�]�
t�
�$����¥PݥH.�Bw�7��@�>3�&r�������է%� �"6�&Y�!������ը�$��1��0�G�X�o� ����/��.��%�8�N�a�~���������ث��+�2�9�F�J�
]�k�w���������%Ǭ�$�
'�5�:�M�@]�
��%��ҭ׭ޭ>�%�7� L�m�*�� ��2Ю��"9�*\�"��"��ͯ��<�,O�
|�
����F������
�.�?>�6~�;��1�3#�2W�6��0�����������&�QC�D��
ڳ-�$�?;�{����7�L�Y�%v�	������ϵ���
�&�$6�[�Et�+��*�,�>�T�`�i�x�}�
��
��$��!Ʒ���3�B�T�d�j�q�z���R��c��2Y�?��
̹ڹ��<�5L�S��pֺ�G�K˻O�'g�E��ռڼ��0�M4���p��/
�&:�&a�)��7��4��
'�5�H�\�
k�y�$�����FA���������
�����A�J�P�	_�i�y�������
����%��0$�U�Ig���$��D��@3�9t�1����8��a&���������������+��
&�1�#@�=d���
����+���'�;�N�n��������������{�;�������$�+�
7�E�AX�S��	����
� �3�B�Q�e�+��&��B���0�M�Yh���$��2��.�@�IU�
������
����:��&�D�L�j�.w���d���&�M;�f��$��X�Qn�7��+��$�g>�������Q��B�PN�^��m��	l�v�������9��v
�}��(��(�B�>K���U����N�YW�������
����&
�1�#6�Z�9g�8��
��0��V�_p�C��G�a\�8��4��/,�7\�6��7��-�)1�L[�*��)��-��(+�,T�.��K��?��?<�H|�<��3�6�R=�������������2��'�(E�5n�����������e��-@�n�/v�M��h��]�]}�=��8�[R�c��C�jV�z��A<�q~����q����H�W]�O��>�D�]�Ku�����E��1+�-]�Y��$��)
�94�On�&��)��9�YI�$��X��1!�S�Ad�^��E�UK�(��S���J4�(�I��A��.4�c�2~�2��7��Y�*v�9������:�;Q�,��*��1��;�(S�J|�4����N�Qj�o��X,�/��G��9��17�i� q���J��^�3D�Nx��W��=���*��<��1��V-�L��*�]��Z�_�g�m�}�$�����
����������/��(�)�D��Y���
d�
r�}���@����
�
����%�:6�>q�p��!;$Kp���r�5C_y8�$.72fr�!7CCF�
��� ! BcKk����+�*2)G�q" 8
Yg|�J�j�M[�g�R#Zv���&	'9	#a	�	%�	��	/r
q�
(E=J�F�.ZD6�G�3
R
r
�
)�
Z�

"-5I'\�K���J	V`hpu+��(�2�	"
,
7BOe{	��	��m�"
/:A3Ph��
N-8|=�"�7NHR����'�
		!*%<b|hH�.%=	c"m�P�TZV>�u�f-o/�L�2IM���#��O�GE]P�0�'%Me����+�	�"�/*Ep
x����45fj ���
�	#BN
[fs�����	���

.=IV0h*�U�W r  �  � (� � !�!!�!�!K�!P"	k"u"�"�"�"�"�""#(#"D#g# �#�#�#&�#"	$G,$!t$,�$#�$*�$%2%N%'f%(�%	�%�%W�%6&L&_&1v&%�&2�&'

''''E'V'h'x'&�'.�'N�'*4(/_(�(�(]�(,)<)!N)p)|)
�)�)�)�)�)�)�)*+*%:*
`*!k*�*4�**�*;+>+K+	^+h+|+�+;�+:�+,,G,X, s,"�,�,�,/�,*-<A-7~-�-�-�-�-
.	..!.4.E.e.y.�.	�.�.�.�.�.�.�.!�./5/O/h/y/�/
�/�/�/)�/�/-0}K0�0D�081X1`1;u1�1 �1K�18'2q`2�2�2�233/3J3]3o3�3C�3�3
�3�3	4"444R4
V4a4<n4�5�5�59�5
%636 F6g6
t6Y6q�6K7S7Ns7�7�7��7l8y8�8�8�8�8�8�8�8�89+9%79,]9s�9#�9":B:b:u:�:�:�:6�:�:;%;A;L[;�;9�;:�;0)<)Z<��<c!=G�=W�=%>6>
N>Y>
j>u>�>�>�> �>�>�>?*?
I?W?8g?�?
�?�?�? �?0@L@[@o@#�@�@�@�@�@�@A)A
5ACA	WAaABsA�A	�A�A2�AZ�A-WB�B�B-�B��Bi�CI&D;pDY�DKEVREU�EL�ElLFB�FY�F�VGV�G`OHJ�Hg�H=cJ@�J=�J K6KHKwK�K�K�K
�K�K<�K5LLLbL?�L�L�L�LM M<MXMiM?vM�M�M�M�M �M&N <ND]N�N�N�N�N
�N��N��OmP�P�P
�P�P�P
�P�P
�P/�P/.Q^QpsQ<�Q
!R,RKRTRiR	uRR�R�R�R/�RS
SS
'S5SMSZShyS�SA�S�,T�T	�T�T�T'�T
!U/U
>U
LU"ZU}U�U�U$�U+�U�U#V0V*IVtV�V
�V
�V$�V�V�VPWKVWB�W7�W@X>^X&�X�X�X�XY%Y @Y"aY&�Y!�Y�Y�YZZ$7Z�\ZD[[[r[�[�[ �[�[/�[.\C\P\c\y\�\�\�\�\�\�\]].]+1]]]d]q]u]
�]�]�]�]�]�]�]%�]^$-^
R^`^e^x^@�^
�^%�^�^_	_>_P_b_ w_�_*�_ �_2�_.`G`"d`*�`"�`"�`�`aa<=a,za
�a
�a�aF�abb%b
,b.:b?ib6�b;�b1c3Nc2�c6�c0�cd!d$d'd.d;dQdQndD�d
e-e$Ae?fe�e��e7?fwf�f&�f	�f�f�f�fg%g9gRg$bg�gE�g+�g*h,=hjh�h�h�h�h�h
�h
�h$�h!�hi4iAi_ini�i�i�i�i�i�iR�ic!j2�j?�j
�jk%k<;k5xkS�kpl�slK�lOCm'�mE�mnnnn0/nM`n�np�n/6o&fo&�o)�o7�o4pKp
Spaptp�p
�p�p&�p��pFqq�q�q�q�q
�qrr%rA8rzr�r	�r�r�r�r�r�r
�r�rs%s8s0Ts�sI�s�s$�sDt@ct9�t1�tu8uaVu�u�u�u�uvv"v+*v
Vvav#pv=�v�v
�v�v+wEwWwkw~w�w�w�w�w�wx!x6x{Mx;�xyy<yTy[y
gyuyA�yS�y	z(z:zPzczrz�z�z+�z&�zB{I{`{~{Y�{�{$|2,|_|q|I�|
�|�|�|
�|	}:}W}u}}}�}.�}�}d�}B~W~Ml~f�~$!XFQ�7�+)�U�go�׀��Q!�s�P�^Ёm/�	������҂�9�v;�}��(0�Y�s�>|���Uτ%�N9�Y�����
��&;�b�#g���;��8Ԇ

�0�VL�_��C�GG�a��8�4*�/_�7��6lj7��-6�)d�L��*ۊ)�.0�(_�,��.��K�?0�?p�H��<��36�j�Rq�čٍ��
�#�2(�[�(y�5��؎���
�e�-t���/��Mڏh(���]��=�8M�[��c�CF�j��z��Ap�q���$�q��(�HH�W��O�>9�x���K�����E�1_�-��Y��$�)>�9h�O��&�)�9C�T}�$ҚX��1P���A��^כE6�U|�(ҜS��O�Je�(��IٝA#�.e���2��2�7�YM�*��9ҟ�,�:G�;��,��*�1�;H�(��J��4��-�NL�Q��o�X]�/��G�9.�1h��� ��æJ˦^�3u�N����W��n���*ĩ<�1,�V^�L��,�]/�����������$�������&�-�=�F��N�0�)#�*M�x������
��
������@ͮ��
�
&�4�<�S�Y�:j�>��p�U�o�$�����ұ�r�5w�_��8
�$F�.k�2��rͳ@�!I�k�Dw�F��
��-�<� V� w���K����	��+3�_�g�)|����8�=�W� m�
������·Jڷj%�M��޸g�RX�Z����'�&G�'n�#����%ɺ��/��q׻(I�Fr�J��F�.K�Zz�6սG�3T�����¾)ʾZ�O�
X�c�k��'����Kؿ$�-�:�JA�	�����������	���^+T>�K��E5VYdR|��L��&2mW<�R��G?��%�����k�������xz�UL����O�"s�{���OK"��6�d��}*<
�0?SN�C�]���nrM
{�,!R��y[[�8t������i�(9M@auF2�mr�
��uZ��s�G&�G�%h�P��a	bu3f������v��]�s��	�ch��\Z�B�dB7�F������.Ew#@E'���0�0Z���7)������f��y�DJh�p����F�[��q����q��rwJRh����K�q�j�6���cOg���������F��g�v;��*b�V��#tK3Qx_������N���n�[\��y�]D9U�l9��t~�I7����@��o^�>����~
;������:��~i���6{
`���/W�-:UD��]�n���\[x7S��"yV��|���v���a�O;�AC�w\�3u��L+e�w@ 8�N��H$���Y�%m�,���$
\$�������pl��b��-�lWCo�f�� ��I6� �!&��&��/��8��.��g"��_�Dk�`��F=<	��ra�}��_�M,��J@�M���+P+G)��=v3�c3{
��P��A|}4�K��RS'���)ZAG:sC��w�x�jX1��17i�JB���PU��P���>���oQ%����i
�$�_�L���>Z';�T"Q���z���b���4�me�=!�h�& ?������.���r���N�
$�H���#f��t�-�%������.�W!�D�*���z��X(`BTxC�I��S��*e��M����������`�NA���}���OH ��(����5���9�-�/�A�+��0Y���TQ�8����*	_���L(��b�d��,~�I-�E:kE��!��'9S�4�X�#k/j�t�V#��?0d;'<��55<fi1)���1X�g.�oX�va�Hs���q��m�>n���2c��y�:�Hg�o����|�/I�����lq��jc�W���������1)�^eQ���4��p�V�T�Y]^�=
����JB�p?��2u^�Yp6�8��=���k��2`nj�(el,4��U5�z��� %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBenefits of linking to a QUIC.cloud accountBeta TestBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all localized resource entries.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optimizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDrop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s available for UCSS per page type generation.Filter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest Mode failed to test.Guest Mode passed testing.Guest Mode testing resultGuest OptimizationHTML Attribute To ReplaceHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLearn more about when this is neededLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimized by %s.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.Non cacheableNot AvailableNot blocklistedNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Outputs to WordPress debug log.PAYG BalancePHP Constant %s is supported.Page Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please thoroughly test all items in %s to ensure they function as expected.Please thoroughly test each JS file you add to ensure it functions as expected.Please try after %1$s for service %2$s.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.PrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemoved backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsReset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)TestingThank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existence of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option enables maximum optimization for Guest Mode visitors.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisUCSS AllowlistURI ExcludesURI Paths containing these strings will NOT be cached as public.URLUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %1$s to bypass UCSS for the pages which page type is %2$s.Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsView .htaccessVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Zero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsuser agentsPO-Revision-Date: 2022-07-05 09:51:27+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/4.0.0-alpha.1
Language: en_GB
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA domain key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimised.APIAccelerates the speed by caching Gravatar (Globally Recognised Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images.After verifying that the cache works in general, please test the basket.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to destroy all optimised images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimised images.Automatically request optimisation via cron job.Avatar list in queue waiting for updateBack end .htaccess PathBack end Heartbeat ControlBack end Heartbeat TTLBasicBasic Image PlaceholderBeforeBenefits of linking to a QUIC.cloud accountBeta TestBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a grey image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the Admin Bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all binned commentsClean all binned posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean binned comments successfully.Clean binned posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all localised resource entries.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimised version.Click to switch to original (unoptimised) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optimisedCongratulations, all gathered!Congratulations, all requested!Congratulations, your domain key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️ by the LiteSpeed team.Credits are not enough to proceed with the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimised version of WebP file.Currently using optimised version of file.Currently using original (unoptimised) version of WebP file.Currently using original (unoptimised) version of file.Custom SitemapDB Optimisation SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimiserDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimisation DataDestroyed all optimisation data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by Ajax to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain keyDomain Key hash mismatchDrop domain from sitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Email AddressEmpty Entire CacheEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services to directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s available for UCSS per page type generation.Filter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimisationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFront end .htaccess PathFront end Heartbeat ControlFront end Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest Mode failed to test.Guest Mode passed testing.Guest Mode testing resultGuest OptimisationHTML Attribute To ReplaceHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimisation from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimisation.However, there is no way of knowing all the possible customisations that were implemented..htaccess did not match configuration option..htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localised, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimisationImage Optimisation SettingsImage Optimisation SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimised and pulledImages previously optimisedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimise potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain colour placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLearn more about when this is neededLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector so that its style should always be contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimised by %s.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimisationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimisationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimisationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimisationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalisationLocalisation FilesLocalisation SettingsLocalise ResourcesLocalise external resources.Localised ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMapMark this page as Maximum valueMaybe laterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New version available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimised WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimisationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.Non cacheableNot AvailableNot blacklistedNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimise pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users, please check thisOperationOptimisation StatusOptimisation SummaryOptimisation ToolsOptimise CSS delivery.Optimise LosslesslyOptimise Original ImagesOptimise TablesOptimise all tables in your databaseOptimise for Guests OnlyOptimise images and save backups of the originals in the same folder.Optimise images using lossless compression.Optimise images with our QUIC.cloud serverOptimised WebP file expired and was cleared.Optimised all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Outputs to WordPress debug log.PAYG BalancePHP Constant %s is supported.Page Load TimePage OptimisationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please thoroughly test all items in %s to ensure they function as expected.Please thoroughly test each JS file you add to ensure it functions as expected.Please try after %1$s for service %2$s.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimisation of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.PrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache BasketPrivately cache basket when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP cachesPurge this pagePurge URL %sPurged All!Purged all caches successfully.Purged the blog!Purged the URL!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files.Remove all previous unfinished image optimisation requests.Remove cookie simulationRemoved backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimisation.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsReset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimised data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColourResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimisations.Selected roles will be excluded from cache.Send Optimisation RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimised %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognised. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimised image file(s) have expired and were cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an http status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG colour.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimisationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimised images on your siteSwitched images successfully.Switched to optimised file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)TestingThank you for using the LiteSpeed Cache plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existence of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month's UsageThis action should only be used if things are cached incorrectly.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option enables maximum optimisation for Guest Mode visitors.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localised resourcesThis will disable LSCache and all optimisation features for debug purpose.This will disable the settings page on all subsites.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimised files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomise CDN hostname, define multiple hostnames for the same resources.To test the basket, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimised in this monthTrackbacks/PingbacksBinned commentsBinned PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in back end editor.Turn ON to control heartbeat on back end.Turn ON to control heartbeat on front end.Turn on auto upgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisUCSS AllowlistURI ExcludesURI Paths containing these strings will NOT be cached as public.URLUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %1$s to bypass UCSS for the pages which page type is %2$s.Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimised FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest WordPress release versionUse original images (unoptimised) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimised version of file. Value rangeVariables %s will be replaced with the configured background colour.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsView .htaccessVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologise for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the .htaccess file path.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimisation once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Zero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsuser agents# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in English (UK)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2022-07-05 09:51:27+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/4.0.0-alpha.1\n"
"Language: en_GB\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/page_optm/settings_localization.tpl.php:131
msgid "Please thoroughly test each JS file you add to ensure it functions as expected."
msgstr "Please thoroughly test each JS file you add to ensure it functions as expected."

#: tpl/page_optm/settings_localization.tpl.php:98
msgid "Please thoroughly test all items in %s to ensure they function as expected."
msgstr "Please thoroughly test all items in %s to ensure they function as expected."

#: tpl/page_optm/settings_tuning.tpl.php:105
msgid "Use %1$s to bypass UCSS for the pages which page type is %2$s."
msgstr "Use %1$s to bypass UCSS for the pages which page type is %2$s."

#: tpl/page_optm/settings_tuning.tpl.php:104
msgid "Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL."
msgstr "Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL."

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Filter %s available for UCSS per page type generation."
msgstr "Filter %s available for UCSS per page type generation."

#: tpl/general/settings_inc.guest.tpl.php:35
#: tpl/general/settings_inc.guest.tpl.php:38
msgid "Guest Mode failed to test."
msgstr "Guest Mode failed to test."

#: tpl/general/settings_inc.guest.tpl.php:32
msgid "Guest Mode passed testing."
msgstr "Guest Mode passed testing."

#: tpl/general/settings_inc.guest.tpl.php:25
msgid "Testing"
msgstr "Testing"

#: tpl/general/settings_inc.guest.tpl.php:24
msgid "Guest Mode testing result"
msgstr "Guest Mode testing result"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not blocklisted"
msgstr "Not blacklisted"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Learn more about when this is needed"
msgstr "Learn more about when this is needed"

#: src/purge.cls.php:317
msgid "Cleaned all localized resource entries."
msgstr "Cleaned all localised resource entries."

#: src/lang.cls.php:112
msgid "UCSS Allowlist"
msgstr "UCSS Allowlist"

#: tpl/dash/dashboard.tpl.php:563
msgid "<b>Last crawled:</b> %d item(s)"
msgstr "<b>Last crawled:</b> %d item(s)"

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr "View .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "You can use this code %1$s in %2$s to specify the .htaccess file path."

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr "PHP Constant %s is supported."

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr ".htaccess Path"

#: tpl/page_optm/settings_tuning.tpl.php:216
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Only optimise pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."

#: tpl/page_optm/settings_tuning.tpl.php:182
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Listed JS files or inline JS code will not be optimised by %s."

#: tpl/page_optm/settings_media.tpl.php:227
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."

#: tpl/page_optm/settings_media.tpl.php:125
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the Admin Bar menu."

#: tpl/page_optm/settings_css.tpl.php:67
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr "Automatic generation of unique CSS is in the background via a cron-based queue."

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr "HTML Settings"

#: tpl/general/settings.tpl.php:150
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr "This option enables maximum optimisation for Guest Mode visitors."

#: src/lang.cls.php:166
msgid "Add Missing Sizes"
msgstr "Add Missing Sizes"

#: src/lang.cls.php:141
msgid "Optimize for Guests Only"
msgstr "Optimise for Guests Only"

#: src/lang.cls.php:69
msgid "Guest Optimization"
msgstr "Guest Optimisation"

#: src/lang.cls.php:125
msgid "Localization Files"
msgstr "Localisation Files"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Purged!"

#: tpl/page_optm/settings_localization.tpl.php:120
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Resources listed here will be copied and replaced with local URLs."

#: tpl/page_optm/settings_css.tpl.php:150
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimise potential errors caused by CSS Combine."

#: tpl/page_optm/settings_css.tpl.php:30
msgid "Minify CSS files and inline CSS code."
msgstr "Minify CSS files and inline CSS code."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localisation"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combine all local JS files into a single file."

#: tpl/page_optm/settings_tuning.tpl.php:161
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Listed JS files or inline JS code will not be deferred."

#: tpl/general/settings.tpl.php:94
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Request submitted. Please wait, then refresh the page to see approval notification."

#: src/data.upgrade.func.php:102
msgid "Click here to settings"
msgstr "Click here to settings"

#: src/data.upgrade.func.php:101
msgid "JS Defer"
msgstr "JS Defer"

#: src/data.upgrade.func.php:101
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."

#: src/lang.cls.php:116
msgid "JS Combine External and Inline"
msgstr "JS Combine External and Inline"

#: src/admin-display.cls.php:460
msgid "Dismiss"
msgstr "Dismiss"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "The latest data file is"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "The list will be merged with the predefined nonces in your local data file."

#: tpl/page_optm/settings_css.tpl.php:43
msgid "Combine CSS files and inline CSS code."
msgstr "Combine CSS files and inline CSS code."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minify JS files and inline JS codes."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Listed JS files or inline JS code will not be minified/combined."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Listed CSS files or inline CSS code will not be minified/combined."

#: src/css.cls.php:60 src/root.cls.php:176
msgid "Queue cleared successfully."
msgstr "Queue cleared successfully."

#: src/admin-display.cls.php:935
msgid "This setting is overwritten by the Network setting"
msgstr "This setting is overwritten by the Network setting"

#: src/lang.cls.php:155
msgid "LQIP Excludes"
msgstr "LQIP Excludes"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "These images will not generate LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Are you sure you want to reset all settings back to the default settings?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "This option will remove all %s tags from HTML."

#: tpl/general/settings.tpl.php:116
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Are you sure you want to clear all cloud nodes?"

#: src/error.cls.php:84
msgid "The site is not registered on QUIC.cloud."
msgstr "The site is not registered on QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Click here to change."

#: src/cloud.cls.php:763 src/error.cls.php:48
msgid "Click here to set."
msgstr "Click here to set."

#: src/cloud.cls.php:762
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site not recognised. Domain Key has been automatically removed. Please request a new one."

#: src/lang.cls.php:124
msgid "Localize Resources"
msgstr "Localise Resources"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Setting Up Custom Headers"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all localized resources"
msgstr "This will delete all localised resources"

#: src/gui.cls.php:535 src/gui.cls.php:695 tpl/toolbox/purge.tpl.php:88
msgid "Localized Resources"
msgstr "Localised Resources"

#: tpl/page_optm/settings_localization.tpl.php:125
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Comments are supported. Start a line with a %s to turn it into a comment line."

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "HTTPS sources only."
msgstr "HTTPS sources only."

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localise external resources."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Localisation Settings"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "List the CSS selector so that its style should always be contained in UCSS."

#: tpl/page_optm/settings_css.tpl.php:64
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Use QUIC.cloud online service to generate unique CSS."

#: src/lang.cls.php:110
msgid "Generate UCSS"
msgstr "Generate UCSS"

#: tpl/toolbox/purge.tpl.php:116
msgid "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"
msgstr "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "LiteSpeed Report"

#: tpl/img_optm/summary.tpl.php:222
msgid "Image Thumbnail Group Sizes"
msgstr "Image Thumbnail Group Sizes"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignore certain query strings when caching. (LSWS %s required)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "For URLs with wildcards, there may be a delay in initiating scheduled purge."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."

#: src/lang.cls.php:97
msgid "Serve Stale"
msgstr "Serve Stale"

#: src/admin-display.cls.php:932
msgid "This setting is overwritten by the primary site setting"
msgstr "This setting is overwritten by the primary site setting"

#: src/img-optm.cls.php:964
msgid "One or more pulled images does not match with the notified image md5"
msgstr "One or more pulled images does not match with the notified image md5"

#: src/img-optm.cls.php:947
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Some optimised image file(s) have expired and were cleared."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "You have too many notified images, please pull down notified images first."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "You have too many requested images, please try again in a few minutes."

#: src/img-optm.cls.php:1025
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "Pulled WebP image md5 does not match the notified WebP image md5."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Read LiteSpeed Documentation"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "There is proceeding queue not pulled yet. Queue info: %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Sitemap Timeout"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Specify the timeout while parsing the sitemap."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Specify how long, in seconds, Gravatar files are cached."

#: tpl/general/settings.tpl.php:112
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "A domain key is required for QUIC.cloud online services."

#: src/img-optm.cls.php:547
msgid "Cleared %1$s invalid images."
msgstr "Cleared %1$s invalid images."

#: src/img-optm.cls.php:509
msgid "Bypassed %1$s duplicated images."
msgstr "Bypassed %1$s duplicated images."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Request Domain Key"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "LiteSpeed Cache General Settings"

#: tpl/toolbox/purge.tpl.php:107
msgid "This will delete all cached Gravatar files"
msgstr "This will delete all cached Gravatar files"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Prevent any debug log of listed pages."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Only log listed pages."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Specify the maximum size of the log file."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "To prevent filling up the disk, this setting should be OFF when everything is working."

#: tpl/toolbox/beta_test.tpl.php:54
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."

#: tpl/toolbox/beta_test.tpl.php:38 tpl/toolbox/beta_test.tpl.php:54
msgid "Use latest WordPress release version"
msgstr "Use latest WordPress release version"

#: tpl/toolbox/beta_test.tpl.php:38
msgid "OR"
msgstr "OR"

#: tpl/toolbox/beta_test.tpl.php:29
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Reset Settings"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "LiteSpeed Cache Toolbox"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Beta Test"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Log View"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Debug Settings"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Turn ON to control heartbeat in back end editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "WordPress valid interval is %s seconds"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Turn ON to control heartbeat on back end."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Set to %1$s to forbid heartbeat on %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "WordPress valid interval is %s seconds."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Specify the %s heartbeat interval in seconds."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Turn ON to control heartbeat on front end."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Disable WordPress interval heartbeat to reduce server load."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Heartbeat Control"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "provide more information here to assist the LiteSpeed team with debugging."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Optional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generate Link for Current User"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Passwordless Link"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "System Information"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Go to plugins list"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Install DoLogin Security"

#: tpl/general/settings.tpl.php:206
msgid "Check my public IP from"
msgstr "Check my public IP from"

#: tpl/general/settings.tpl.php:205
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Enter this site's IP address to allow cloud services to directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Specify the timeout while crawling each URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Specify time in seconds for the time between each run interval."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "This will enable crawler cron."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Crawler General Settings"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr "Operation"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Sitemap Total"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Sitemap List"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Refresh Crawler Map"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Clean Crawler Map"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Sitemap Settings"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Simulation Settings"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Map"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Summary"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Crawler Sitemap Settings"

#: tpl/crawler/summary.tpl.php:190
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."

#: tpl/crawler/summary.tpl.php:189
msgid "Crawlers cannot run concurrently."
msgstr "Crawlers cannot run concurrently."

#: tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Cache Miss"

#: tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Cache Hit"

#: tpl/crawler/summary.tpl.php:181
msgid "Waiting to be Crawled"
msgstr "Waiting to be Crawled"

#: tpl/crawler/summary.tpl.php:159
msgid "Miss"
msgstr "Miss"

#: tpl/crawler/summary.tpl.php:158
msgid "Hit"
msgstr "Hit"

#: tpl/crawler/summary.tpl.php:157
msgid "Waiting"
msgstr "Waiting"

#: tpl/crawler/summary.tpl.php:126
msgid "Running"
msgstr "Running"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Use %1$s in %2$s to indicate this cookie has not been set."

#: src/admin-display.cls.php:209
msgid "Add new cookie to simulate"
msgstr "Add new cookie to simulate"

#: src/admin-display.cls.php:208
msgid "Remove cookie simulation"
msgstr "Remove cookie simulation"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Crawler Simulation Settings"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr ".htaccess rule is: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "More settings available under %s menu"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "The amount of time, in seconds, that files will be stored in browser cache before expiring."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "OpenLiteSpeed users, please check this"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Browser Cache Settings"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "An optional second parameter may be used to specify cache control. Use a space to separate"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "The above nonces will be converted to ESI automatically."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Browser"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Object"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Default port for %1$s is %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Object Cache Settings"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Specify an http status code and the number of seconds to cache that page, separated by a space."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Specify how long, in seconds, the front page is cached."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."

#: tpl/page_optm/settings_css.tpl.php:270
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:269
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Avatar list in queue waiting for update"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refresh Gravatar cache by cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Accelerates the speed by caching Gravatar (Globally Recognised Avatars)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Store Gravatar locally."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."

#: tpl/page_optm/settings_media.tpl.php:140
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."

#: tpl/page_optm/settings_media.tpl.php:138
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:122
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Specify the quality when generating LQIP."
msgstr "Specify the quality when generating LQIP."

#: tpl/page_optm/settings_media.tpl.php:107
msgid "Keep this off to use plain color placeholders."
msgstr "Keep this off to use plain colour placeholders."

#: tpl/page_optm/settings_media.tpl.php:106
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."

#: tpl/page_optm/settings_media.tpl.php:92
msgid "Specify the responsive placeholder SVG color."
msgstr "Specify the responsive placeholder SVG colour."

#: tpl/page_optm/settings_media.tpl.php:78
msgid "Variables %s will be replaced with the configured background color."
msgstr "Variables %s will be replaced with the configured background colour."

#: tpl/page_optm/settings_media.tpl.php:77
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Variables %s will be replaced with the corresponding image properties."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "It will be converted to a base64 SVG placeholder on-the-fly."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Specify an SVG to be used as a placeholder when generating locally."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Prevent any lazy load of listed pages."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Iframes having these parent class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Iframes containing these class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Images having these parent class names will not be lazy loaded."

#: tpl/page_optm/entry.tpl.php:19
msgid "LiteSpeed Cache Page Optimization"
msgstr "LiteSpeed Cache Page Optimisation"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Media Excludes"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:16
msgid "CSS Settings"
msgstr "CSS Settings"

#: tpl/page_optm/settings_css.tpl.php:270
msgid "%s is recommended."
msgstr "%s is recommended."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Deferred"
msgstr "Deferred"

#: tpl/page_optm/settings_css.tpl.php:267
msgid "Default"
msgstr "Default"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "This can improve the page loading speed."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "New developer version %s is available now."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "New Developer Version Available!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Dismiss this notice"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweet this"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Tweet preview"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Learn more"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "You just unlocked a promotion from QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "The image compression quality setting of WordPress out of 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Image Optimisation Settings"

#: tpl/img_optm/summary.tpl.php:373
msgid "Are you sure to destroy all optimized images?"
msgstr "Are you sure to destroy all optimised images?"

#: tpl/img_optm/summary.tpl.php:365
msgid "Use Optimized Files"
msgstr "Use Optimised Files"

#: tpl/img_optm/summary.tpl.php:364
msgid "Switch back to using optimized images on your site"
msgstr "Switch back to using optimised images on your site"

#: tpl/img_optm/summary.tpl.php:361
msgid "Use Original Files"
msgstr "Use Original Files"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use original images (unoptimized) on your site"
msgstr "Use original images (unoptimised) on your site"

#: tpl/img_optm/summary.tpl.php:355
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available."

#: tpl/img_optm/summary.tpl.php:352
msgid "Optimization Tools"
msgstr "Optimisation Tools"

#: tpl/img_optm/summary.tpl.php:325
msgid "Rescan New Thumbnails"
msgstr "Rescan New Thumbnails"

#: tpl/img_optm/summary.tpl.php:317
msgid "Congratulations, all requested!"
msgstr "Congratulations, all requested!"

#: tpl/img_optm/summary.tpl.php:290
msgid "Congratulations, all gathered!"
msgstr "Congratulations, all gathered!"

#: tpl/img_optm/summary.tpl.php:287
msgid "Images not yet gathered"
msgstr "Images not yet gathered"

#: tpl/img_optm/summary.tpl.php:282 tpl/img_optm/summary.tpl.php:309
msgid "What is an image group?"
msgstr "What is an image group?"

#: tpl/img_optm/summary.tpl.php:233
msgid "Delete all backups of the original images"
msgstr "Delete all backups of the original images"

#: tpl/img_optm/summary.tpl.php:215
msgid "Calculate Backups Disk Space"
msgstr "Calculate Backups Disk Space"

#: tpl/img_optm/summary.tpl.php:100
msgid "Optimization Status"
msgstr "Optimisation Status"

#: tpl/img_optm/summary.tpl.php:84
msgid "Gather Image Data"
msgstr "Gather Image Data"

#: tpl/img_optm/summary.tpl.php:72
msgid "Current limit is"
msgstr "Current limit is"

#: tpl/img_optm/summary.tpl.php:71
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."

#: tpl/img_optm/summary.tpl.php:66
msgid "You can request a maximum of %s images at once."
msgstr "You can request a maximum of %s images at once."

#: tpl/img_optm/summary.tpl.php:61
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimise images with our QUIC.cloud server"

#: tpl/img_optm/summary.tpl.php:57 tpl/page_optm/settings_css.tpl.php:91
#: tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "Current closest Cloud server is %s.&#10; Click to redetect."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Revisions newer than this many days will be kept when cleaning revisions."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Day(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Specify the number of most recent revisions to keep when cleaning revisions."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "LiteSpeed Cache Database Optimisation"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "DB Optimisation Settings"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Option Name"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Database Summary"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "We are good. No table uses MyISAM engine."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Convert to InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Tool"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Engine"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Table"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Database Table Engine Converter"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"

#: tpl/dash/dashboard.tpl.php:537
msgid "Currently active crawler"
msgstr "Currently active crawler"

#: tpl/dash/dashboard.tpl.php:534
msgid "Crawler(s)"
msgstr "Crawler(s)"

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:529
msgid "Crawler Status"
msgstr "Crawler Status"

#: tpl/dash/dashboard.tpl.php:448 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513
msgid "Force cron"
msgstr "Force cron"

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:511
msgid "Requests in queue"
msgstr "Requests in queue"

#: tpl/dash/dashboard.tpl.php:440 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:506
msgid "Time to execute previous request"
msgstr "Time to execute previous request"

#: tpl/dash/dashboard.tpl.php:417
msgid "Cache Stats"
msgstr "Cache Stats"

#: tpl/dash/dashboard.tpl.php:395
msgid "Private Cache"
msgstr "Private Cache"

#: tpl/dash/dashboard.tpl.php:394
msgid "Public Cache"
msgstr "Public Cache"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Status"
msgstr "Cache Status"

#: tpl/dash/dashboard.tpl.php:360
msgid "Last Pull"
msgstr "Last Pull"

#: tpl/dash/dashboard.tpl.php:325
msgid "Images Requested"
msgstr "Images Requested"

#: tpl/dash/dashboard.tpl.php:310
msgid "Image Groups Prepared"
msgstr "Image Groups Prepared"

#: tpl/dash/dashboard.tpl.php:299 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Image Optimisation Summary"

#: tpl/dash/dashboard.tpl.php:238
msgid "Refresh page score"
msgstr "Refresh page score"

#: tpl/dash/dashboard.tpl.php:227 tpl/img_optm/summary.tpl.php:57
#: tpl/page_optm/settings_css.tpl.php:91 tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Are you sure you want to redetect the closest cloud server for this service?"

#: tpl/dash/dashboard.tpl.php:227
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "Current closest Cloud server is %s.&#10;Click to redetect."

#: tpl/dash/dashboard.tpl.php:222 tpl/dash/dashboard.tpl.php:291
#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:489
#: tpl/dash/dashboard.tpl.php:521
msgid "Last requested"
msgstr "Last requested"

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh page load time"
msgstr "Refresh page load time"

#: tpl/dash/dashboard.tpl.php:169
msgid "Go to QUIC.cloud dashboard"
msgstr "Go to QUIC.cloud dashboard"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:497
msgid "Low Quality Image Placeholder"
msgstr "Low Quality Image Placeholder"

#: tpl/dash/dashboard.tpl.php:45
msgid "Sync data from Cloud"
msgstr "Sync data from Cloud"

#: tpl/dash/dashboard.tpl.php:42
msgid "QUIC.cloud Service Usage Statistics"
msgstr "QUIC.cloud Service Usage Statistics"

#: tpl/dash/dashboard.tpl.php:151 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Total images optimised in this month"

#: tpl/dash/dashboard.tpl.php:150 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Total Usage"

#: tpl/dash/dashboard.tpl.php:131 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Pay as You Go Usage Statistics"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "This Month's Usage"

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "PAYG Balance"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pay as You Go"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Usage"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Fast Queue Usage"

#: tpl/dash/dashboard.tpl.php:57 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "CDN Bandwidth"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Usage Statistics"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "LiteSpeed Cache Dashboard"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Network Dashboard"

#: tpl/general/settings.tpl.php:128
msgid "No cloud services currently in use"
msgstr "No cloud services currently in use"

#: tpl/general/settings.tpl.php:116
msgid "Click to clear all nodes for further redetection."
msgstr "Click to clear all nodes for further redetection."

#: tpl/general/settings.tpl.php:115
msgid "Current Cloud Nodes in Service"
msgstr "Current Cloud Nodes in Service"

#: tpl/general/settings.tpl.php:107
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Benefits of linking to a QUIC.cloud account"

#: tpl/general/settings.tpl.php:106
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "You must click the %s button if you wish to associate this site with a QUIC.cloud account."

#: tpl/general/settings.tpl.php:101
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "You must have %1$s first before linking to QUIC.cloud."

#: tpl/general/settings.tpl.php:85
msgid "The POST callback to %s failed."
msgstr "The POST callback to %s failed."

#: tpl/general/settings.tpl.php:84
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "There are two reasons why we might not be able to communicate with your domain:"

#: tpl/general/settings.tpl.php:83
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "There was a problem retrieving your Domain Key. Please click the %s button to retry."

#: tpl/general/settings.tpl.php:75 tpl/general/settings.tpl.php:77
#: tpl/general/settings.tpl.php:106
msgid "Link to QUIC.cloud"
msgstr "Link to QUIC.cloud"

#: tpl/general/settings.tpl.php:73
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visit My Dashboard on QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Next available request time: <code>After %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Approved"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Requested"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Waiting for Approval"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Waiting for Refresh"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Refresh Domain Key"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:42
msgid "General Settings"
msgstr "General Settings"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Specify which HTML element attributes will be replaced with CDN Mapping."

#: src/admin-display.cls.php:231
msgid "Add new CDN URL"
msgstr "Add new CDN URL"

#: src/admin-display.cls.php:230
msgid "Remove CDN URL"
msgstr "Remove CDN URL"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Enable %s CDN API functionality."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "To enable the following functionality, turn ON Cloudflare API in CDN Settings."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "To manage QUIC.cloud options, please visit"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "WooCommerce Settings"

#: src/doc.cls.php:119 tpl/general/settings.tpl.php:86
msgid "Current Online Server IPs"
msgstr "Current Online Server IPs"

#: src/gui.cls.php:545 src/gui.cls.php:705
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:97
msgid "LQIP Cache"
msgstr "LQIP Cache"

#: src/gui.cls.php:84
msgid "Private Cache Hits"
msgstr "Private Cache Hits"

#: src/gui.cls.php:83
msgid "Private Caches"
msgstr "Private Caches"

#: src/gui.cls.php:82
msgid "Public Cache Hits"
msgstr "Public Cache Hits"

#: src/gui.cls.php:81
msgid "Public Caches"
msgstr "Public Caches"

#: src/admin-settings.cls.php:242 src/admin-settings.cls.php:276
msgid "Options saved."
msgstr "Options saved."

#: src/img-optm.cls.php:1461
msgid "Removed backups successfully."
msgstr "Removed backups successfully."

#: src/img-optm.cls.php:1399
msgid "Calculated backups successfully."
msgstr "Calculated backups successfully."

#: src/img-optm.cls.php:1243
msgid "Destroy all optimization data successfully."
msgstr "Destroyed all optimisation data successfully."

#: src/img-optm.cls.php:1172
msgid "Cleaned up unfinished data successfully."
msgstr "Cleaned up unfinished data successfully."

#: src/img-optm.cls.php:1085
msgid "Pulled %d image(s)"
msgstr "Pulled %d image(s)"

#: src/img-optm.cls.php:1008
msgid "Optimized WebP file expired and was cleared."
msgstr "Optimised WebP file expired and was cleared."

#: src/img-optm.cls.php:888
msgid "Pull Cron is running"
msgstr "Pull Cron is running"

#: src/img-optm.cls.php:649
msgid "No valid image found by Cloud server in the current request."
msgstr "No valid image found by Cloud server in the current request."

#: src/img-optm.cls.php:626
msgid "No valid image found in the current request."
msgstr "No valid image found in the current request."

#: src/img-optm.cls.php:472
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "Pushed %1$s to Cloud server, accepted %2$s."

#: src/img-optm.cls.php:180
msgid "Gathered %d images successfully."
msgstr "Gathered %d images successfully."

#: src/img-optm.cls.php:147
msgid "No new image gathered."
msgstr "No new image gathered."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Revisions Max Age"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Revisions Max Number"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "Debug URI Excludes"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "Debug URI Includes"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Drop domain from sitemap"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "HTML Attribute To Replace"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Use CDN Mapping"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "QUIC.cloud CDN"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "Editor Heartbeat TTL"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Editor Heartbeat"

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr "Back end Heartbeat TTL"

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr "Back end Heartbeat Control"

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr "Front end Heartbeat TTL"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr "Front end Heartbeat Control"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Back end .htaccess Path"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Front end .htaccess Path"

#: src/lang.cls.php:180
msgid "ESI Nonces"
msgstr "ESI Nonces"

#: src/lang.cls.php:176
msgid "WordPress Image Quality Control"
msgstr "WordPress Image Quality Control"

#: src/lang.cls.php:171
msgid "Create WebP Versions"
msgstr "Create WebP Versions"

#: src/lang.cls.php:168
msgid "Auto Pull Cron"
msgstr "Auto Pull Cron"

#: src/lang.cls.php:167
msgid "Auto Request Cron"
msgstr "Auto Request Cron"

#: src/lang.cls.php:164
msgid "Generate LQIP In Background"
msgstr "Generate LQIP In Background"

#: src/lang.cls.php:162
msgid "LQIP Minimum Dimensions"
msgstr "LQIP Minimum Dimensions"

#: src/lang.cls.php:161
msgid "LQIP Quality"
msgstr "LQIP Quality"

#: src/lang.cls.php:160
msgid "LQIP Cloud Generator"
msgstr "LQIP Cloud Generator"

#: src/lang.cls.php:159
msgid "Responsive Placeholder SVG"
msgstr "Responsive Placeholder SVG"

#: src/lang.cls.php:158
msgid "Responsive Placeholder Color"
msgstr "Responsive Placeholder Colour"

#: src/lang.cls.php:156
msgid "Basic Image Placeholder"
msgstr "Basic Image Placeholder"

#: src/lang.cls.php:154
msgid "Lazy Load URI Excludes"
msgstr "Lazy Load URI Excludes"

#: src/lang.cls.php:153
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Lazy Load Iframe Parent Class Name Excludes"

#: src/lang.cls.php:152
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Lazy Load Iframe Class Name Excludes"

#: src/lang.cls.php:151
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Lazy Load Image Parent Class Name Excludes"

#: src/lang.cls.php:146
msgid "Gravatar Cache TTL"
msgstr "Gravatar Cache TTL"

#: src/lang.cls.php:145
msgid "Gravatar Cache Cron"
msgstr "Gravatar Cache Cron"

#: src/gui.cls.php:555 src/gui.cls.php:715 src/lang.cls.php:144
#: tpl/toolbox/purge.tpl.php:106
msgid "Gravatar Cache"
msgstr "Gravatar Cache"

#: src/lang.cls.php:127
msgid "DNS Prefetch Control"
msgstr "DNS Prefetch Control"

#: src/lang.cls.php:122
msgid "Font Display Optimization"
msgstr "Font Display Optimisation"

#: src/lang.cls.php:101
msgid "Force Public Cache URIs"
msgstr "Force Public Cache URIs"

#: src/lang.cls.php:70
msgid "Notifications"
msgstr "Notifications"

#: src/lang.cls.php:65
msgid "Default HTTP Status Code Page TTL"
msgstr "Default HTTP Status Code Page TTL"

#: src/lang.cls.php:64
msgid "Default REST TTL"
msgstr "Default REST TTL"

#: src/lang.cls.php:58
msgid "Enable Cache"
msgstr "Enable Cache"

#: src/lang.cls.php:54
msgid "Domain Key"
msgstr "Domain key"

#: src/lang.cls.php:53
msgid "Server IP"
msgstr "Server IP"

#: src/lang.cls.php:33
msgid "Duplicate image files ignored"
msgstr "Duplicate image files ignored"

#: src/lang.cls.php:23
msgid "Images not requested"
msgstr "Images not requested"

#: src/cloud.cls.php:1184
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Sync credit allowance with Cloud Server successfully."

#: src/cloud.cls.php:1073
msgid "Domain Key hash mismatch"
msgstr "Domain Key hash mismatch"

#: src/cloud.cls.php:1002
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "Congratulations, your domain key has been approved! The setting has been updated accordingly."

#: src/cloud.cls.php:951
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."

#: src/cloud.cls.php:754 src/cloud.cls.php:932
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Failed to communicate with QUIC.cloud server"

#: src/cloud.cls.php:702
msgid "Good news from QUIC.cloud server"
msgstr "Good news from QUIC.cloud server"

#: src/cloud.cls.php:686 src/cloud.cls.php:694 src/cloud.cls.php:943
msgid "Message from QUIC.cloud server"
msgstr "Message from QUIC.cloud server"

#: src/cloud.cls.php:551
msgid "Please try after %1$s for service %2$s."
msgstr "Please try after %1$s for service %2$s."

#: src/cloud.cls.php:407
msgid "No available Cloud Node."
msgstr "No available Cloud Node."

#: src/cloud.cls.php:359 src/cloud.cls.php:372 src/cloud.cls.php:407
#: src/cloud.cls.php:432 src/cloud.cls.php:551 src/cloud.cls.php:907
msgid "Cloud Error"
msgstr "Cloud Error"

#: src/data.cls.php:219
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."

#: src/media.cls.php:339
msgid "Restore from backup"
msgstr "Restore from backup"

#: src/media.cls.php:329
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:323
msgid "No backup of unoptimized WebP file exists."
msgstr "No backup of unoptimised WebP file exists."

#: src/media.cls.php:310
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "WebP file reduced by %1$s (%2$s)"

#: src/media.cls.php:306
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Currently using original (unoptimised) version of WebP file."

#: src/media.cls.php:301
msgid "Currently using optimized version of WebP file."
msgstr "Currently using optimised version of WebP file."

#: src/media.cls.php:285
msgid "Orig"
msgstr "Orig"

#: src/media.cls.php:282
msgid "(no savings)"
msgstr "(no savings)"

#: src/media.cls.php:282
msgid "Orig %s"
msgstr "Orig %s"

#: src/media.cls.php:279
msgid "Congratulation! Your file was already optimized"
msgstr "Congratulation! Your file was already optimised"

#: src/media.cls.php:270
msgid "No backup of original file exists."
msgstr "No backup of original file exists."

#: src/media.cls.php:270 src/media.cls.php:323
msgid "Using optimized version of file. "
msgstr "Using optimised version of file. "

#: src/media.cls.php:262
msgid "Orig saved %s"
msgstr "Orig saved %s"

#: src/media.cls.php:256
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Original file reduced by %1$s (%2$s)"

#: src/media.cls.php:252 src/media.cls.php:306
msgid "Click to switch to optimized version."
msgstr "Click to switch to optimised version."

#: src/media.cls.php:252
msgid "Currently using original (unoptimized) version of file."
msgstr "Currently using original (unoptimised) version of file."

#: src/media.cls.php:251 src/media.cls.php:305
msgid "(non-optm)"
msgstr "(non-optm)"

#: src/media.cls.php:247 src/media.cls.php:301
msgid "Click to switch to original (unoptimized) version."
msgstr "Click to switch to original (unoptimised) version."

#: src/media.cls.php:247
msgid "Currently using optimized version of file."
msgstr "Currently using optimised version of file."

#: src/media.cls.php:246 src/media.cls.php:271 src/media.cls.php:300
#: src/media.cls.php:324
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:138
msgid "LQIP image preview for size %s"
msgstr "LQIP image preview for size %s"

#: src/placeholder.cls.php:80 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/htaccess.cls.php:326
msgid "Mobile Agent Rules"
msgstr "Mobile Agent Rules"

#: src/crawler-map.cls.php:321
msgid "Sitemap created successfully: %d items"
msgstr "Sitemap created successfully: %d items"

#: src/crawler-map.cls.php:265
msgid "Sitemap cleaned successfully"
msgstr "Sitemap cleaned successfully"

#: src/admin-display.cls.php:1097
msgid "Invalid IP"
msgstr "Invalid IP"

#: src/admin-display.cls.php:1072
msgid "Value range"
msgstr "Value range"

#: src/admin-display.cls.php:1069
msgid "Smaller than"
msgstr "Smaller than"

#: src/admin-display.cls.php:1066
msgid "Larger than"
msgstr "Larger than"

#: src/admin-display.cls.php:1059
msgid "Zero, or"
msgstr "Zero, or"

#: src/admin-display.cls.php:1047
msgid "Maximum value"
msgstr "Maximum value"

#: src/admin-display.cls.php:1044
msgid "Minimum value"
msgstr "Minimum value"

#: src/admin-display.cls.php:1026
msgid "Path must end with %s"
msgstr "Path must end with %s"

#: src/admin-display.cls.php:1009
msgid "Invalid rewrite rule"
msgstr "Invalid rewrite rule"

#: src/admin-display.cls.php:939
msgid "currently set to %s"
msgstr "currently set to %s"

#: src/admin-display.cls.php:929
msgid "This setting is overwritten by the PHP constant %s"
msgstr "This setting is overwritten by the PHP constant %s"

#: src/admin-display.cls.php:131
msgid "Toolbox"
msgstr "Toolbox"

#: src/admin-display.cls.php:127
msgid "Database"
msgstr "Database"

#: src/admin-display.cls.php:125 tpl/dash/dashboard.tpl.php:56
msgid "Page Optimization"
msgstr "Page Optimisation"

#: src/admin-display.cls.php:115 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Dashboard"

#: src/db-optm.cls.php:243
msgid "Converted to InnoDB successfully."
msgstr "Converted to InnoDB successfully."

#: src/purge.cls.php:300
msgid "Cleaned all Gravatar files."
msgstr "Cleaned all Gravatar files."

#: src/purge.cls.php:283
msgid "Cleaned all LQIP files."
msgstr "Cleaned all LQIP files."

#: src/error.cls.php:173
msgid "Unknown error"
msgstr "Unknown error"

#: src/error.cls.php:169
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "Your domain has been forbidden from using our services due to a previous policy violation."

#: src/error.cls.php:165
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "

#: src/error.cls.php:161
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."

#: src/error.cls.php:157
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "The callback validation to your domain failed due to hash mismatch."

#: src/error.cls.php:153
msgid "Your application is waiting for approval."
msgstr "Your application is waiting for approval."

#: src/error.cls.php:149
msgid "Previous request too recent. Please try again after %s."
msgstr "Previous request too recent. Please try again after %s."

#: src/error.cls.php:145
msgid "Previous request too recent. Please try again later."
msgstr "Previous request too recent. Please try again later."

#: src/error.cls.php:140
msgid "Crawler disabled by the server admin."
msgstr "Crawler disabled by the server admin."

#: src/error.cls.php:136
msgid "Failed to create table %s! SQL: %s."
msgstr "Failed to create table %s! SQL: %s."

#: src/error.cls.php:112
msgid "Could not find %1$s in %2$s."
msgstr "Could not find %1$s in %2$s."

#: src/error.cls.php:100
msgid "Credits are not enough to proceed the current request."
msgstr "Credits are not enough to proceed with the current request."

#: src/error.cls.php:88
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "The domain key is not correct. Please try to sync your domain key again."

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet."
msgstr "There is proceeding queue not pulled yet."

#: src/error.cls.php:72
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "Not enough parameters. Please check if the domain key is set correctly"

#: src/error.cls.php:68
msgid "The image list is empty."
msgstr "The image list is empty."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "You will need to set %s to use the online services."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "The setting %s is currently enabled."

#: src/task.cls.php:139
msgid "LiteSpeed Crawler Cron"
msgstr "LiteSpeed Crawler Cron"

#: src/task.cls.php:120
msgid "Every Minute"
msgstr "Every Minute"

#: tpl/general/settings.tpl.php:223
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Generated links may be managed under <a %s>Settings</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Please do NOT share the above passwordless link with anyone."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Install"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr "PageSpeed Score"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr "Improved by"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr "After"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr "Before"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr "Page Load Time"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."

#: src/lang.cls.php:173
msgid "Preserve EXIF/XMP data"
msgstr "Preserve EXIF/XMP data"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Try GitHub Version"
msgstr "Try GitHub Version"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "If you turn any of the above settings OFF, please remove the related file types from the %s box."

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr "Both full and partial strings can be used."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Images containing these class names will not be lazy loaded."

#: src/lang.cls.php:150
msgid "Lazy Load Image Class Name Excludes"
msgstr "Lazy Load Image Class Name Excludes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "For example, %1$s defines a TTL of %2$s seconds for %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Maybe later"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Turn on auto upgrade"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:62
msgid "Upgrade"
msgstr "Upgrade"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "New release %s is available now."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "New version available!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Created with ❤️ by the LiteSpeed team."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Sure I'd love to review!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Thank you for using the LiteSpeed Cache plugin!"

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr "Upgraded successfully."

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr "Failed to upgrade."

#: src/conf.cls.php:704
msgid "Changed setting successfully."
msgstr "Changed setting successfully."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "ESI sample for developers"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Replace %1$s with %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "You can turn shortcodes into ESI blocks."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Private Cache vs. Public Cache"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Append query string %s to the resources to bypass this action."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA will be bypassed automatically."

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Cookie Values"

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr "Cookie Name"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Cookie Simulation"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr "Automatically Upgrade"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Your IP"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Reset successfully."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "This will reset all settings to default settings."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Reset All Settings"

#: tpl/page_optm/settings_tuning.tpl.php:134
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separate critical CSS files will be generated for paths containing these strings."

#: src/lang.cls.php:135
msgid "Separate CCSS Cache URIs"
msgstr "Separate CCSS Cache URIs"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."

#: tpl/page_optm/settings_tuning.tpl.php:119
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "List post types where each item of that type should have its own CCSS generated."

#: src/lang.cls.php:134
msgid "Separate CCSS Cache Post Types"
msgstr "Separate CCSS Cache Post Types"

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr "Size list in queue waiting for cron"

#: tpl/page_optm/settings_media.tpl.php:158
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "If set to %1$s, before the placeholder is localised, the %2$s configuration will be used."

#: tpl/page_optm/settings_media.tpl.php:156
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Automatically generate LQIP in the background via a cron-based queue."

#: tpl/page_optm/settings_media.tpl.php:62
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."

#: tpl/page_optm/settings_media.tpl.php:61
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."

#: src/lang.cls.php:157
msgid "Responsive Placeholder"
msgstr "Responsive Placeholder"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all generated image LQIP placeholder files"
msgstr "This will delete all generated image LQIP placeholder files"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Please enable LiteSpeed Cache in the plugin settings."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Please enable the LSCache Module at the server level, or ask your hosting provider."

#: src/cloud.cls.php:634 src/cloud.cls.php:650
msgid "Failed to request via WordPress"
msgstr "Failed to request via WordPress"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "High-performance page caching and site optimisation from LiteSpeed"

#: src/img-optm.cls.php:1776
msgid "Reset the optimized data successfully."
msgstr "Reset the optimised data successfully."

#: src/gui.cls.php:781
msgid "Update %s now"
msgstr "Update %s now"

#: src/gui.cls.php:776
msgid "View %1$s version %2$s details"
msgstr "View %1$s version %2$s details"

#: src/gui.cls.php:773
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."

#: src/gui.cls.php:753
msgid "Install %s"
msgstr "Install %s"

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr "Images previously optimised"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "LSCache caching functions on this page are currently unavailable!"

#: src/cloud.cls.php:711
msgid "%1$s plugin version %2$s required for this action."
msgstr "%1$s plugin version %2$s required for this action."

#: src/cloud.cls.php:673
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologise for any inconvenience."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Automatically remove the original image backups after fetching optimised images."

#: src/lang.cls.php:170
msgid "Remove Original Backups"
msgstr "Remove Original Backups"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Automatically request optimisation via cron job."

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr "A backup of each image is saved before it is optimised."

#: src/img-optm.cls.php:1656
msgid "Switched images successfully."
msgstr "Switched images successfully."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "This can improve quality but may result in larger images than lossy compression will."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimise images using lossless compression."

#: src/lang.cls.php:172
msgid "Optimize Losslessly"
msgstr "Optimise Losslessly"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Request WebP versions of original images when doing optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimise images and save backups of the originals in the same folder."

#: src/lang.cls.php:169
msgid "Optimize Original Images"
msgstr "Optimise Original Images"

#: tpl/page_optm/settings_css.tpl.php:174
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "When this option is turned %s, it will also load Google Fonts asynchronously."

#: src/purge.cls.php:230
msgid "Cleaned all Critical CSS files."
msgstr "Cleaned all Critical CSS files."

#: tpl/page_optm/settings_css.tpl.php:256
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "This will inline the asynchronous CSS library to avoid render blocking."

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr "Inline CSS Async Lib"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr "Run Queue Manually"

#: tpl/page_optm/settings_css.tpl.php:85 tpl/page_optm/settings_css.tpl.php:195
msgid "Last requested cost"
msgstr "Last requested cost"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:82
#: tpl/page_optm/settings_css.tpl.php:192
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr "Last generated"

#: tpl/page_optm/settings_media.tpl.php:162
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "If set to %s this is done in the foreground, which may slow down page load."

#: tpl/page_optm/settings_css.tpl.php:169
msgid "Optimize CSS delivery."
msgstr "Optimise CSS delivery."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "This will delete all generated critical CSS files"

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "Critical CSS"

#: src/doc.cls.php:36
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Disabling this may cause WordPress tasks triggered by Ajax to stop working."

#: src/utility.cls.php:236
msgid "right now"
msgstr "right now"

#: src/utility.cls.php:236
msgid "just now"
msgstr "just now"

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr "Saved"

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Last ran"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "You will be unable to Revert Optimisation once the backups are deleted!"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr "This is irreversible."

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr "Remove Original Image Backups"

#: tpl/img_optm/summary.tpl.php:255
msgid "Are you sure you want to remove all image backups?"
msgstr "Are you sure you want to remove all image backups?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr "Files"

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr "Last calculated"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calculate Original Image Storage"

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr "Storage Optimisation"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."

#: src/lang.cls.php:175
msgid "WebP For Extra srcset"
msgstr "WebP For Extra srcset"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Use the format %1$s or %2$s (element is optional)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Only attributes listed here will be replaced."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Specify which element attributes will be replaced with WebP."

#: src/lang.cls.php:174
msgid "WebP Attribute To Replace"
msgstr "WebP Attribute To Replace"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Only files within these directories will be pointed to the CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Included Directories"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "A Purge All will be executed when WordPress runs these hooks."

#: src/lang.cls.php:182
msgid "Purge All Hooks"
msgstr "Purge All Hooks"

#: src/purge.cls.php:192
msgid "Purged all caches successfully."
msgstr "Purged all caches successfully."

#: src/gui.cls.php:479 src/gui.cls.php:579 src/gui.cls.php:629
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:423
msgid "Forced cacheable"
msgstr "Forced cacheable"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be cached regardless of no-cacheable settings."

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr "Force Cache URIs"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Exclude Settings"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "This will disable LSCache and all optimisation features for debug purpose."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Disable All Features"

#: src/gui.cls.php:506 src/gui.cls.php:666 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Opcode Cache"

#: src/gui.cls.php:487 src/gui.cls.php:637 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "CSS/JS Cache"

#: src/gui.cls.php:734 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr "Remove all previous unfinished image optimisation requests."

#: src/gui.cls.php:735 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr "Clean Up Unfinished Data"

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr "Images failed with other errors"

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr "Images with wrong meta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Join Us on Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Join the %s community."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Want to connect with other LiteSpeed users?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Get it from <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Your Email address on %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Use %s API functionality."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "To randomise CDN hostname, define multiple hostnames for the same resources."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Join LiteSpeed Slack community"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visit LSCWP support forum"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Rate %s on %s"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr "Images notified to pull"

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr "Image files missing"

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr "What is a group?"

#: src/admin-display.cls.php:1165
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1162
msgid "%s group"
msgstr "%s group"

#: src/admin-display.cls.php:1152
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1149
msgid "%s groups"
msgstr "%s groups"

#: src/crawler.cls.php:826
msgid "Guest"
msgstr "Guest"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "To crawl the site as a logged-in user, enter the user ids to be simulated."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Role Simulation"

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr "running"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Size"

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr "Ended reason"

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr "Last interval"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr "Current crawler started at"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Run time for previous crawler"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d seconds"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Last complete run time for all crawlers"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Current sitemap crawl started at"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Save transients in database when %1$s is %2$s."

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr "Store Transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "If %1$s is %2$s, then %3$s must be populated!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Server allowed max value"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Server enforced value"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Server allowed min value"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTE"

#: src/admin-display.cls.php:1118
msgid "Server variable(s) %s available to override this setting."
msgstr "Server variable(s) %s available to override this setting."

#: src/admin-display.cls.php:1117 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:176
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:165
#: tpl/page_optm/settings_tuning.tpl.php:186
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:379
msgid "Reset the entire opcode cache successfully."
msgstr "Reset the entire opcode cache successfully."

#: src/purge.cls.php:367
msgid "Opcode cache is not enabled."
msgstr "Opcode cache is not enabled."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Imported setting file %s successfully."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Import failed due to file error."

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "How to Fix Problems Caused by CSS/JS Optimisation."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "This will generate extra requests to the server, which will increase server load."

#: src/lang.cls.php:184
msgid "Instant Click"
msgstr "Instant Click"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Reset the entire opcode cache"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "This will import settings from a file and override all current LiteSpeed Cache settings."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Last imported"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Import"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Import Settings"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "This will export all current LiteSpeed Cache settings and save them as a file."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Last exported"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Export"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Export Settings"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Import / Export"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Use keep-alive connections to speed up cache operations."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Database to be used"

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr "Redis Database ID"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Specify the password used when connecting."

#: src/lang.cls.php:88
msgid "Password"
msgstr "Password"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Only available when %s is installed."

#: src/lang.cls.php:87
msgid "Username"
msgstr "Username"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Your %s Hostname or IP address."

#: src/lang.cls.php:83
msgid "Method"
msgstr "Method"

#: src/purge.cls.php:420
msgid "Purge all object caches successfully."
msgstr "Purge all object caches successfully."

#: src/purge.cls.php:407
msgid "Object cache is not enabled."
msgstr "Object cache is not enabled."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Improve wp-admin speed through caching. (May encounter expired data)"

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr "Persistent Connection"

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr "Do Not Cache Groups"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groups cached at the network level."

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr "Global Groups"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Connection Test"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "%s Extension"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr "Status"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "Default TTL for cached objects."

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr "Default Object Lifetime"

#: src/lang.cls.php:85
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:84
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:496 src/gui.cls.php:656 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Object Cache"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Failed"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Passed"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Not Available"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Purge all the object caches"

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr "Failed to communicate with Cloudflare"

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr "Communicated with Cloudflare successfully."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "No available Cloudflare zone"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Notified Cloudflare to purge all successfully."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "Cloudflare API is set to off."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Notified Cloudflare to set development mode to %s successfully."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Once saved, it will be matched with the current list and completed automatically."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "You can just type part of the domain."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Domain"

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "Cloudflare API"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Purge Everything"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cloudflare Cache"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Development Mode will be turned off automatically after three hours."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Development mode will be automatically turned off in %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "Current status is %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "Current status is %1$s since %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Check Status"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Turn OFF"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Turn ON"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Development Mode"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Cloudflare Zone"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Cloudflare Domain"

#: src/gui.cls.php:646 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "For example"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Prefetching DNS can reduce latency for visitors."

#: src/lang.cls.php:126
msgid "DNS Prefetch"
msgstr "DNS Prefetch"

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Adding Style to Your Lazy-Loaded Images"

#: src/admin-display.cls.php:980 src/admin-display.cls.php:985
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Default value"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Static file type links to be replaced by CDN links."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "For example, to drop parameters beginning with %s, %s can be used here."

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr "Drop Query String"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."

#: src/lang.cls.php:183
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Improve HTTP/HTTPS Compatibility"

#: tpl/img_optm/summary.tpl.php:378
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Remove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files."

#: tpl/img_optm/summary.tpl.php:374
msgid "Destroy All Optimization Data"
msgstr "Destroy All Optimisation Data"

#: tpl/img_optm/summary.tpl.php:324
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Scan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "This will increase the size of optimised files."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Clear Log"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "To test the basket, visit the <a %s>FAQ</a>."

#: src/utility.cls.php:239
msgid " %s ago"
msgstr " %s ago"

#: src/media.cls.php:315
msgid "WebP saved %s"
msgstr "WebP saved %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "If you run into any issues, please refer to the report number in your support message."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "This will also generate an API key from LiteSpeed's Server."

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr "Last pull initiated by cron at %s."

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Images will be pulled automatically if the cron job is running."

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr "Only press the button if the pull cron job is disabled."

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr "Pull Images"

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr "This process is automatic."

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr "Last Request"

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr "Images failed to pull"

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr "Images failed to fetch"

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr "Images Pulled"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Report"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Send to LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Report date"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Report number"

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr "Privately cache basket when not empty."

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr "Privately Cache Basket"

#: src/media.cls.php:196
msgid "LiteSpeed Optimization"
msgstr "LiteSpeed Optimisation"

#: src/lang.cls.php:131
msgid "Load Google Fonts Asynchronously"
msgstr "Load Google Fonts Asynchronously"

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr "Browser Cache TTL"

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Results can be checked in <a %s>Media Library</a>."

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Learn More"

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr "Images optimised and pulled"

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr "Images requested"

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr "Images not yet requested"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr "Images total"

#: src/img-optm.cls.php:1713
msgid "Switched to optimized file successfully."
msgstr "Switched to optimised file successfully."

#: src/img-optm.cls.php:1706
msgid "Restored original file successfully."
msgstr "Restored original file successfully."

#: src/img-optm.cls.php:1690
msgid "Enabled WebP file successfully."
msgstr "Enabled WebP file successfully."

#: src/img-optm.cls.php:1684
msgid "Disabled WebP file successfully."
msgstr "Disabled WebP file successfully."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Significantly improve load time by replacing images with their optimised %s versions."

#: src/lang.cls.php:188
msgid "Image WebP Replacement"
msgstr "Image WebP Replacement"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Selected roles will be excluded from cache."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Tuning"

#: tpl/page_optm/settings_tuning.tpl.php:228
msgid "Selected roles will be excluded from all optimizations."
msgstr "Selected roles will be excluded from all optimisations."

#: src/lang.cls.php:142
msgid "Role Excludes"
msgstr "Role Excludes"

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Tuning Settings"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "If the tag slug is not found, the tag will be removed from the list on save."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "If the category name is not found, the category will be removed from the list on save."

#: tpl/img_optm/summary.tpl.php:117
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "After the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images."

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr "Send Optimisation Request"

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr "Image Information"

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr "Total Reduction"

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr "Optimisation Summary"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "LiteSpeed Cache Image Optimisation"

#: src/admin-display.cls.php:123 src/gui.cls.php:612
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr "Image Optimisation"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "JS Deferred Excludes"

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr "For example, %s can be used for a transparent placeholder."

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr "By default a grey image placeholder %s will be used."

#: tpl/page_optm/settings_media.tpl.php:46
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Specify a base64 image to be used as a simple placeholder while images finish loading."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:167
#: tpl/page_optm/settings_tuning.tpl.php:188
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Elements with attribute %s in HTML code will be excluded."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:166
#: tpl/page_optm/settings_tuning.tpl.php:187
msgid "Filter %s is supported."
msgstr "Filter %s is supported."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Listed images will not be lazy loaded."

#: src/lang.cls.php:149
msgid "Lazy Load Image Excludes"
msgstr "Lazy Load Image Excludes"

#: src/gui.cls.php:456
msgid "No optimization"
msgstr "No optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:202
msgid "Prevent any optimization of listed pages."
msgstr "Prevent any optimisation of listed pages."

#: src/lang.cls.php:140
msgid "URI Excludes"
msgstr "URI Excludes"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr "Both full URLs and partial strings can be used."

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr "Load iframes only when they enter the viewport."

#: src/lang.cls.php:165
msgid "Lazy Load Iframes"
msgstr "Lazy Load Iframes"

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "This can improve page loading time by reducing initial HTTP requests."

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr "Load images only when they enter the viewport."

#: src/lang.cls.php:148
msgid "Lazy Load Images"
msgstr "Lazy Load Images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr "Media Settings"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "For example, for %s, %s and %s can be used here."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."

#: src/admin-display.cls.php:1133
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "To match the beginning, add %s to the beginning of the item."

#: src/admin-display.cls.php:1131
msgid "For example, for %s, %s can be used here."
msgstr "For example, for %s, %s can be used here."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Maybe later"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "I've already left a review"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Welcome to LiteSpeed"

#: src/lang.cls.php:138
msgid "Remove WordPress Emoji"
msgstr "Remove WordPress Emoji"

#: src/gui.cls.php:464
msgid "More settings"
msgstr "More settings"

#: src/gui.cls.php:445
msgid "Private cache"
msgstr "Private cache"

#: src/gui.cls.php:434
msgid "Non cacheable"
msgstr "Non cacheable"

#: src/gui.cls.php:411
msgid "Mark this page as "
msgstr "Mark this page as "

#: src/gui.cls.php:403
msgid "Purge this page"
msgstr "Purge this page"

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr "Load JS Deferred"

#: tpl/page_optm/settings_tuning.tpl.php:148
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Specify critical CSS rules for above-the-fold content when enabling %s."

#: src/lang.cls.php:133
msgid "Critical CSS Rules"
msgstr "Critical CSS Rules"

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:148
msgid "Load CSS Asynchronously"
msgstr "Load CSS Asynchronously"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Prevent Google Fonts from loading on all pages."

#: src/lang.cls.php:132
msgid "Remove Google Fonts"
msgstr "Remove Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:170
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."

#: src/lang.cls.php:130
msgid "Remove Query Strings"
msgstr "Remove Query Strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr "Browser Cache"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "tags"

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr "Do Not Cache Tags"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "To exclude %1$s, insert %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "categories"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "To prevent %s from being cached, enter them here."

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr "Do Not Cache Categories"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "Query strings containing these parameters will not be cached."

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr "Do Not Cache Query Strings"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Paths containing these strings will not be cached."

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr "Do Not Cache URIs"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "The logs will be output to %s."

#: src/admin-display.cls.php:1135 src/doc.cls.php:74
msgid "One per line."
msgstr "One per line."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "URI Paths containing these strings will NOT be cached as public."

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr "Private Cached URIs"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Paths containing these strings will not be served from the CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Exclude Path"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "This will affect all tags containing attributes: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Include File Types"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Include JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Include CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Include Images"

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr "CDN URL to be used. For example, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "CDN URL"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "Original URLs"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "CDN Settings"

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:233 src/admin-display.cls.php:838
#: src/admin-display.cls.php:865 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:72 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:232 src/admin-display.cls.php:837
#: src/admin-display.cls.php:866 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:174
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:351
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Notified LiteSpeed Web Server to purge CSS/JS entries."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minify HTML content."

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr "HTML Minify"

#: src/lang.cls.php:129
msgid "JS Excludes"
msgstr "JS Excludes"

#: src/data.upgrade.func.php:101 src/lang.cls.php:115
msgid "JS Combine"
msgstr "JS Combine"

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr "JS Minify"

#: src/lang.cls.php:128
msgid "CSS Excludes"
msgstr "CSS Excludes"

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr "CSS Combine"

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr "CSS Minify"

#: tpl/page_optm/entry.tpl.php:31
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "This will purge all minified/combined CSS/JS entries only"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purge %s Error"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Database Optimiser"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimise all tables in your database"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimise Tables"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Clean all transient options"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "All Transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Clean expired transient options"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Expired Transients"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Clean all trackbacks and pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/Pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Clean all binned comments"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Binned comments"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Clean all spam comments"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Spam Comments"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Clean all binned posts and pages"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Binned Posts"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Clean all auto saved drafts"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Auto Drafts"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Clean all post revisions"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Post Revisions"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Clean All"

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr "Optimised all tables."

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr "Clean all transients successfully."

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr "Clean expired transients successfully."

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Clean trackbacks and pingbacks successfully."

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr "Clean binned comments successfully."

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr "Clean spam comments successfully."

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr "Clean binned posts and pages successfully."

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr "Clean auto drafts successfully."

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr "Clean post revisions successfully."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Clean all successfully."

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr "Default Private Cache TTL"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."

#: src/lang.cls.php:181 tpl/page_optm/settings_css.tpl.php:110
#: tpl/page_optm/settings_css.tpl.php:220
msgid "Vary Group"
msgstr "Vary Group"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Cache the built-in Comment Form ESI block."

#: src/lang.cls.php:179
msgid "Cache Comment Form"
msgstr "Cache Comment Form"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Cache the built-in Admin Bar ESI block."

#: src/lang.cls.php:178
msgid "Cache Admin Bar"
msgstr "Cache Admin Bar"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Private"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Public"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purge Settings"

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr "Cache PHP Resources"

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache Mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Advanced level will log more details."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basic"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr "Cache Login Page"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cache requests made by WordPress REST API calls."

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr "Cache REST API"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr "Cache Commenters"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Privately cache frontend pages for logged-in users. (LSWS %s required)"

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr "Cache Logged-in Users"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Cache Control Settings"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excludes"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:142
msgid "Purge"
msgstr "Purge"

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "Current server time is %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Specify the time to purge the \"%s\" list."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Both %1$s and %2$s are acceptable."

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Scheduled Purge Time"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Scheduled Purge URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Shorten query strings in the debug log to improve readability."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Log requested cookie values."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Log File Size Limit"

#: src/htaccess.cls.php:787
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr "%s file not writable."

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr "%s file not readable."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Collapse Query Strings"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Log Cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "ESI Settings"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "A TTL of 0 indicates do not cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Recommended value: 28800 seconds (8 hours)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget Cache TTL:"

#: src/lang.cls.php:177 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Enable ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Custom Sitemap"

#: tpl/toolbox/purge.tpl.php:244
msgid "Purge pages by relative or full URL."
msgstr "Purge pages by relative or full URL."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:165
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "WARNING"

#: tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Last crawled:</b> %s item(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "The next complete sitemap crawl will start at"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Failed to write to %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "Folder is not writable: %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Can not create folder: %1$s. Error: %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "Folder does not exist: %s"

#: src/core.cls.php:296
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Notified LiteSpeed Web Server to purge the list."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Please visit the <a %s>Information</a> page on how to test the cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Allows listed IPs (one per line) to perform certain actions from their browsers."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Server Load Limit"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Specify Number of Threads to use while crawling."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Crawl Interval"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Interval Between Runs"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Specify time in seconds for the duration of the crawl interval."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Specify time in microseconds for the delay between requests during a crawl."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microseconds"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Then another WordPress is installed (NOT MULTISITE) at %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "LiteSpeed Cache Network Cache Settings"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Select below for \"Purge by\" options."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "LiteSpeed Cache CDN"

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr "No crawler meta file generated yet"

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr "Show crawler status"

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr "Watch Crawler Status"

#: tpl/crawler/summary.tpl.php:191
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Please see <a %s>Hooking WP-Cron into the System Task Scheduler</a> to learn how to create the system cron task."

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "Run frequency is set by the Interval Between Runs setting."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Manually run"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reset position"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Run Frequency"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Cron Name"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Crawler Cron"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hour"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d hours"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generated at %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "LiteSpeed Cache Crawler"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Threads"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Run Duration"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Delay"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."

#: src/admin-display.cls.php:129 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:626
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Notified LiteSpeed Web Server to purge all pages."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "All pages with Recent Posts Widget"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "This will Purge Pages only"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purge Pages"

#: thirdparty/woocommerce.content.tpl.php:78
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."

#: tpl/crawler/summary.tpl.php:125
msgid "Activate"
msgstr "Activate"

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Email Address"

#: tpl/general/settings.tpl.php:100
msgid "Warning"
msgstr "Warning"

#: src/gui.cls.php:754
msgid "Install Now"
msgstr "Install Now"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purged the URL!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purged the blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Purged All!"

#: src/purge.cls.php:645
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notified LiteSpeed Web Server to purge error pages."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "If the login cookie was recently changed in the settings, please log out and back in."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "However, there is no way of knowing all the possible customisations that were implemented."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "The network admin setting can be overridden here."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Specify how long, in seconds, public pages are cached."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Specify how long, in seconds, private pages are cached."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by post ID."
msgstr "Purge pages by post ID."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purge the LiteSpeed cache entries created by this plugin"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "This will Purge Front Page only"

#: tpl/toolbox/purge.tpl.php:239
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:245
msgid "e.g. Use %s or %s."
msgstr "e.g. Use %s or %s."

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:133
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "If only the WordPress site should be purged, use Purge All."

#: src/core.cls.php:291
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Notified LiteSpeed Web Server to purge everything."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Use Primary Site Configuration"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "This will disable the settings page on all subsites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Check this option to use the primary site's configuration for all subsites."

#: src/admin-display.cls.php:706 src/admin-display.cls.php:711
msgid "Save Changes"
msgstr "Save Changes"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "The following options are selected, but are not editable in this settings page."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "The network admin selected use primary site configs for all subsites."

#: tpl/toolbox/purge.tpl.php:125
msgid "Empty Entire Cache"
msgstr "Empty Entire Cache"

#: tpl/toolbox/purge.tpl.php:127
msgid "This action should only be used if things are cached incorrectly."
msgstr "This action should only be used if things are cached incorrectly."

#: tpl/toolbox/purge.tpl.php:126
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Clears all cache entries related to this site, <i>including other web applications</i>."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "This may cause heavy load on the server."

#: tpl/toolbox/purge.tpl.php:131
msgid "This will clear EVERYTHING inside the cache."
msgstr "This will clear EVERYTHING inside the cache."

#: src/gui.cls.php:579
msgid "LiteSpeed Cache Purge All"
msgstr "LiteSpeed Cache Purge All"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "If you would rather not move at litespeed, you can deactivate this plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Create a post, make sure the front page is accurate."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visit the site while logged out."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Examples of test cases include:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "For that reason, please test the site to make sure everything still functions properly."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "This message indicates that the plugin was installed by the server admin."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "LiteSpeed Cache plugin is installed!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Debug Log"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Admin IP Only"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "The Admin IP option will only output log messages on requests from admin IPs."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Specify how long, in seconds, REST calls are cached."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "The environment report contains detailed information about the WordPress configuration."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existence of this cookie."
msgstr "The server will determine if the user is logged in based on the existence of this cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr "Note"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "After verifying that the cache works in general, please test the basket."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr "Purge All On Upgrade"

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr "Use Front Page TTL for the Shop Page"

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr "Product Update Interval"

#: thirdparty/woocommerce.content.tpl.php:77
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Checking this option will force the shop page to use the front page TTL setting."

#: thirdparty/woocommerce.content.tpl.php:64
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."

#: thirdparty/woocommerce.content.tpl.php:51
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Always purge both product and categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Do not purge categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr "Purge product only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr "Purge product and categories only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr "Purge categories only when stock status changes."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purge product on changes to the quantity or stock status."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr ".htaccess did not match configuration option."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "If this is set to a number less than 30, feeds will not be cached."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Specify how long, in seconds, feeds are cached."

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr "Default Feed TTL"

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr "Failed to get %s file contents."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching these pages may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Some themes and plugins add resources via a PHP request."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching this resource may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico is requested on most pages."

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr "Cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Disabling this option may negatively affect performance."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Invalid login cookie. Invalid characters found."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "WARNING: The .htaccess login cookie and Database login cookie do not match."

#: src/error.cls.php:116
msgid "Invalid login cookie. Please check the %s file."
msgstr "Invalid login cookie. Please check the %s file."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "There is a WordPress installed for %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Example use case:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "The cookie set here will be used for this WordPress installation."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "This setting is useful for those that have multiple web applications for the same domain."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "The default login cookie is %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "No spaces and case sensitive."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SYNTAX: alphanumeric and \"_\"."

#: src/lang.cls.php:187
msgid "Login Cookie"
msgstr "Login Cookie"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "More information about the available commands can be found here."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "These settings are meant for ADVANCED USERS ONLY."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Current %s Contents"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Advanced"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Advanced Settings"

#: tpl/toolbox/purge.tpl.php:258
msgid "Purge List"
msgstr "Purge List"

#: tpl/toolbox/purge.tpl.php:177
msgid "Purge By..."
msgstr "Purge By..."

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:224
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:218
msgid "Tag"
msgstr "Tag"

#: tpl/toolbox/purge.tpl.php:212
msgid "Post ID"
msgstr "Post ID"

#: tpl/toolbox/purge.tpl.php:206
msgid "Category"
msgstr "Category"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "NOTICE: Database login cookie did not match your login cookie."

#: src/purge.cls.php:730
msgid "Purge url %s"
msgstr "Purge URL %s"

#: src/purge.cls.php:699
msgid "Purge tag %s"
msgstr "Purge tag %s"

#: src/purge.cls.php:672
msgid "Purge category %s"
msgstr "Purge category %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "When disabling the cache, all cached entries for this site will be purged."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr "NOTICE"

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr "This setting will edit the .htaccess file."

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr "LiteSpeed Cache View .htaccess"

#: src/error.cls.php:120
msgid "Failed to back up %s file, aborted changes."
msgstr "Failed to back up %s file, aborted changes."

#: src/lang.cls.php:185
msgid "Do Not Cache Cookies"
msgstr "Do Not Cache Cookies"

#: src/lang.cls.php:186
msgid "Do Not Cache User Agents"
msgstr "Do Not Cache User Agents"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "This is to ensure compatibility prior to enabling the cache for all sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Network Enable Cache"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "NOTICE:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Other checkboxes will be ignored."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "List of Mobile User Agents"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "File %s is not writable."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr "JS Settings"

#: src/gui.cls.php:595 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Manage"

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr "Default Front Page TTL"

#: src/purge.cls.php:613
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Notified LiteSpeed Web Server to purge the front page."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purge Front Page"

#: tpl/page_optm/settings_localization.tpl.php:127
#: tpl/toolbox/beta_test.tpl.php:30
msgid "Example"
msgstr "Example"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "All tags are cached by default."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "All categories are cached by default."

#: src/admin-display.cls.php:1134
msgid "To do an exact match, add %s to the end of the URL."
msgstr "To do an exact match, add %s to the end of the URL."

#: src/admin-display.cls.php:1130
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "The URLs will be compared to the REQUEST_URI server variable."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Select only the archive types that are currently used, the others can be left unchecked."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notes"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Use Network Admin Setting"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Disable"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Disabled"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Enabled"

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr "Do Not Cache Roles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Outputs to WordPress debug log."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Debug Level"

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr "Notice"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Term archive (include category, tag, and tax)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Daily archive"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Monthly archive"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Yearly archive"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Post type archive"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Author archive"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Home page"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Front page"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "All pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Select which pages will be automatically purged when posts are published/updated."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Auto Purge Rules For Publish/Update"

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr "Default Public Cache TTL"

#: src/admin-display.cls.php:949 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "seconds"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "Admin IPs"

#: src/admin-display.cls.php:117
msgid "General"
msgstr "General"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "LiteSpeed Cache Settings"

#: src/purge.cls.php:211
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Notified LiteSpeed Web Server to purge all LSCache entries."

#: src/gui.cls.php:471 src/gui.cls.php:479 src/gui.cls.php:487
#: src/gui.cls.php:496 src/gui.cls.php:506 src/gui.cls.php:516
#: src/gui.cls.php:526 src/gui.cls.php:535 src/gui.cls.php:545
#: src/gui.cls.php:555 src/gui.cls.php:621 src/gui.cls.php:629
#: src/gui.cls.php:637 src/gui.cls.php:646 src/gui.cls.php:656
#: src/gui.cls.php:666 src/gui.cls.php:676 src/gui.cls.php:686
#: src/gui.cls.php:695 src/gui.cls.php:705 src/gui.cls.php:715
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:37
#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
#: tpl/toolbox/purge.tpl.php:79 tpl/toolbox/purge.tpl.php:88
#: tpl/toolbox/purge.tpl.php:97 tpl/toolbox/purge.tpl.php:106
#: tpl/toolbox/purge.tpl.php:115
msgid "Purge All"
msgstr "Purge All"

#: src/admin-display.cls.php:281 src/gui.cls.php:603
msgid "Settings"
msgstr "Settings"���4&[LL�e�e(�e�e2f;fCf	Lf
Vf
aflfyf�f�f	�f�f	�f�fm�fLg
Ygdgkg3zgh�gh7hNWh8�h=�h"i7@ixiH|i�i�i�i�i'j
3j	AjKjTj%fj�j|�jFkVk%ek	�k"�k�kP�k)lT8lZ�l>�lu'm�m-�m/�mLn2QnI�n�n�n�n#�noQ.oO�o�os�oEZpP�p0�p'"qJqaq{q�q�q�q+�q	�q"�q/r*?rjr
rr�r�r��r4/s�dsf1t �t�t�t�t
�t�t�t#�tu"uBu
OuZugutuzu�u�u�u	�u�u�u
�uvv"v1v=vJvYv0kv*�vU�vWwuw �w �w(�w�wx
x�+x�x�xK�xP$y	uyy�y�y�y�y�y"z2z"Nzqz!�z�z�z&�z"{G8{!�{,�{$�{+�{ |@|\|t|(�|	�|�|W�|:}P}c}1z}%�}2�}~
~~+~I~Z~l~|~&�~.�~N�~*8c�]���!"�D�P�
b�p���������ʀ���%�B4�
w�!����4��'�6�M�Z�	m�w�����;Ă:�;�V�g� ��"��ƃ܃/��*%�<P�7��ńԄ���
�	�'�0�C�T�t�����	������Džڅ��!
�,�D�^�w�������
׆�����9��ԇ)܇�+$�}P�ΈD߈8$�]�e�;z����u� ~�K��8�q$�������ʋߋ��!�3�E�C^���
����H͌�/�A�_�
c�n�<{���Ҏ�9��92�
l�z� ����
��YƏq �����N��	��������őב�����1�8�H�+O�%{�,��sΒ#B�f�������Г�����2�N�Lh���9��:��06�)g����c.�G��Wږ2�C�
[�f�
w�������̗ ޗ����4�
S�a�8q���Ș
��� �0@�q�����#��˙
љܙ��������ٚ�
���	 �*�B<��	����2��Zś, �M�b�-}����i��I�;7�Ys�K͞V�Up�LƟl�B��Yà��V��`�Jw�g¢=*�@h�=������"�>�Y�u���
����<�����)�?I�������Ϧ���0�?=�}������� ��&ܧ �D$�i�lu����
����۩�����˪k�
s�~���
����
ǫ/ҫ/�2�pG�<��
����(�=�	I�S�c_��.
�9�
>�I�
^�l�����h���A!��c���		�� �'0�
X�f�
u�
��"������̰$�+�1�#C�g�*������
ӱ
ޱ���P�Hh�B��5�7*�@b�>��"�=�&C�j�z�����%�� �"�&*�!Q�s�������$ݵ�����)�d@��� ��޷/�.�N�[�n�������ȸԸ����9�+<�h�o�|���
��������ȹ׹��%��#�$8�
]�k�p�����@��
ٺ%�
�������>����� �1�*H� s�2��2Ǽ���"0�*S�"~�"��Ľ۽�<	�,F�$s�
��
��F����/�0�6�
=�.K�?z�6��;�1-�3_�2��6�0��.�2�5�8�?�L�b�Q�D�
�#$�-H�$v�?�������7t�����%��	����/�B�Y�m���$����E��+�*F�,q���������������
�
�$�!D�f�������������������
�R �cs�2��?
�
J�X�w�<��5��S�CT�5����p���_�'��E�Q�V�^�m�;�0��M��:�pQ�|��/?�&o�&��)��7��4�T�
\�j�}���
����$�����Fv���������
��	��*�A=������	������������
���%,�R�0n���I����$�D8�@}�9��1��*�87�p�������������+��
��#(�=L���
����Q��+#�O�_�q���������������0�H�f�{�{��;�J�4c���������
����A�SD�	���������������+-�&Y�B��������Y�l�$��2������I��
I�W�g�}�
����:������*�.7�f�dl�����M��fI�$��X��Q.�7��+����g��f�x���Q���0�P?�^��m��	]�g�y�����9��v��}r�(���3�><�{�U����N��YH�������
����&��"�#'�K�9X�8��
��0��V
�_a�C��G�aM�8��4��/�7M�6��7��-��)"�LL�*��)��-��(�,E�.r�K��?��?-�Hm�<��3��'�R.���������������2��-�(K�5t�����������e��-F�/t�M��h��[�]{�=��8�[P�c��C�jT�z��A:�q|����`��'��q	�{�H��W��O<�>����K��H�g�El�1��-�M�$`�)��9��O�&9�)`�9��Y�$�XC�1���A�&!�^H�E��U�(C�Sl���J�(!�IJ�^��A�45�)j�c��*��0#�.T���2��2�7Y<*�F�9Bb:}R�;,G*t1�;�/
(=Jf4�B�)NHQ�o�XY/�G�9*1d� ����J�	^�	37
Nk
�
W�
�0��*�<�1�V 
Lw
*�
]�
MRZ`p$|��
������/�(�)
7�L���W
�
��@'h%l�
�
�
�����:�0JZ$k����r�]c5�_�(W8��#��$.?2nr�H]!f�C�F�
*IX r ��K�%9+O{�)���TYs �
����J�jA��M;�g�RZm���&	'0#X|%���/i q� (!E4!Az!@�!J�!FH".�"Z�"6#LP#-�#G�#3$+G$s$/�$�$�$)�$Z%j%y%
�%�%�%�%'�%�%K&N&W&d&Jk&	�&�&�&�&��&]'+i'�((�(�(2�())	()
2)
=)H)U)k)�)	�)�)	�)�)m�)(*
5*@*G*3V*h�*�*+N3+8�+=�+"�+7,T,HX,�,�,�,�,'�,
-	-'-0-%B-h-|n-F�-2.%A.	g."q.�.P�./T/Zi/>�/u0y0-�0/�0L�02-1I`1�1�1�1#�1�1Q
2O\2�2s�2E63P|30�3'�3&4=4W4m4s4�4+�4	�4"�4/�4*5F5
N5\5s5��546�@6f
7 t7�7�7�7
�7�7�7#�7�7�78
+868C8P8V8f8y8�8	�8�8�8
�8�8�8�8
99&9590G9*x9U�9W�9Q: n: �:(�:�:�:�:�;�;�;K�;P<	Q<[<m<�<�<�<�<"�<="*=M=!h=�=�=&�="�=G>!\>,~>$�>+�>�>?8?P?(n?	�?�?W�?@,@?@1V@%�@2�@�@
�@�@A%A6AHAXA&oA.�AN�A*B?B^B]~B�B�B!�B C,C
>CLCiCxC�C�C�C�C�C%�CBD
SD!^D�D4�D'�D6�D)E6E	IESEgE�E7�E6�EF*F;F VF"wF�F�F/�F*�F<$G7aG�G�G�G�G
�G	�G�GHH(HHH\HcH	oHyH�H�H�H�H�H!�HII2IKI\I|I�I
�I�I��IhJ9nJ�J)�J�J+�J}$K�KD�K8�K1L9L;NL��LIM RMKsM8�Mq�MjNrN�N�N�N�N�N�NOOC2OvO
}O�OH�O�OPP3P
7PBP<OP�Q�Q�Q9�Q9R
@RNR aR�R
�RY�Rq�RfSnSN�S�S�S��S�T�T�T�T�T�T�T�TUUU+#U%OU,uUs�U#V:VZVzV�V�V�V�V�V�VW"WL<W�W9�W:�W0
X);X�eXcYGfYW�YZZ
/Z:Z
KZVZnZ�Z�Z �Z�Z�Z�Z[
'[5[8E[~[�[
�[�[�[ �[0\E\T\h\#{\�\
�\�\�\�\��\�]�]�]�]
�]�]	�]�]B^S^	W^a^2f^Z�^,�^!_6_-Q_�_iW`I�`;aYGaK�aV�aUDbL�bl�bBTcY�c��cV�d`�dJKeg�e=�f@<g=}g�g�g�g�gh-hIh`h
th�h<�h�h�h�h?i]iri�i�i�i�i�ij?jQjhjojj �j&�j �jD�j=klIk�k�k�k
�k��k��lum�m��m?n
GnRnkn
wn�n
�n/�n/�nopo<�o
�o�o�o�op	p'pc3p�p�p�p/�pq
qq
3qAqYqfqh�q�qA�q�8r�r	�r�r�r's
-s;s
Js
Xs"fs�s�s�s$�s+�st#t<t*Ut�t�t
�t
�t�t�tP�tH=uB�u5�u7�u@7v>xv"�v=�v&w?wOwcw{w%�w �w"�w&�w!&xHxbx{x�x$�x��x�y�y�y�ydzzz �z�z/�z.�z#{0{C{Y{l{�{�{�{�{�{�{�{|+|=|D|Q|U|
h|v|�|�|�|�|�|%�|�|$
}
2}@}E}X}h}@m}
�}%�}�}��}p~w~>~�~�~ �~* H2i2���"�*(�"S�"v�������<ހ,�$H�
m�
{�F��Ё/Ձ��
�. �?O�6��;Ƃ1�34�2h�6��0҃��
�
��!�7�QT�D��
�#��-�$K�?p����Dž7I�����%��	цۆ���.�B�[�$k���E��+�*�,F�s���������ˈЈ
؈
�$�!�;�[�h�����������ĉ͉߉R��cH�2��?ߊ
�-�L�<b�5��SՋC)�5m���pÌ�4�'��E�&�+�3�B�;T�0��M���p&�|��/�&D�&k�)��7��4�)�
1�?�R�f�
u���$�����FK���������
Вޒ���A�T�Z�i�	~���������ʓ
ۓ��%�'�0C�t�I��Д$�D
�@R�9��1͕��8�E�U�b�n�������+��
��#��=!�_�
{���Q��+��$�4�F�Z�m�������͘ܘ���;�P�{g�;��48�m�������
��ĚAךS�	m�w���������Л�+�&.�BU�����͜Y�B�$V�2{�����I՝
�-�=�S�
`�n�:����ڞ��.
�<�dB�����Mџf�$��X��Q�7V�+����gԡ<�N�m�Q��آ0�P�^f�mţ	3�=�O�h���9��vѤ}H�(ƥ�	�>�Q�Ue���NϦY�x�����
����&ѧ��#��!�9.�8h�
��0��V�_7�C��G۩a#�8��4��/�7#�6[�7��-ʫ)��L"�*o�)��.Ĭ(�,�.I�Kx�?ĭ?�HD�<��3ʮ��R�X�m���������̯2ѯ�("�5K�����������f��-�/L�M|�hʱ3�]S�=��8�[(�c��C�j,�z��A�qT��Ƶ`X�'��q�S�Hs�W��O�>d�����KԸ �?�ED�1��-��M�$8�)]�9��O��&�)8�9b�Y��$��X�1t���A��&��^ �E�Už(�SD���J��(��I"�^l�A�4
�)B�cl�*�0��.,�[�2v�2��7��Y�*n�F��9���:�:U�R��;��,�*L�1w�;��/��(�J>�4��B���N �Qo�o��X1�/��G��9�1<�n� v������Je�^��3�NC���W�������*^�<��1��V��LO�*��]��%�*�2�8�H�$T�y���
���������������/��(��)����$�����/�
��
��������@��@�%D�j�
p�
{�
����������:���"�2�$C�h�������r��];�5��_��(/�8X���#����$��.�2F�ry�H��5�!>�`�Dl�F��
���"�1� K� l���K���������+(�T�\�)q����-�2�L� b�
��������J��j����M�b�gt���R��ZF�������&��'	�#1�U�%d����/B�qr�(��E
�AS�@��J��F!�.h�Z��6��L)�-v�G��3��+ �L�/l�����)��Z��C�R�
[�f�n���'����K��'�0�=�JD�	�����������z�7 ��F�q,L[�[x8�2���}T���&����q+y�,�O�A�{�?��J2��g���h�#��!�5�T ��!P:?%v
�����e]=�C#�1�%B!��b�L=<���������0Y������H�s�b�����������+���.�Wpt��i�9&��G��Z6f�(�K����6���4��M~S�c�V�fP����$i��9
e��������3���eX�P�F���d��##n5J����
��"�g������n�R�����Y�$��d-�h���r^Hk�����z��Kq���':��	�>/�(�I�IOE�[5��d0|U`*v--��V1�&���}=lif��Uy�o����O�S��3�����/Sp
`r�\�E�a�(m�k�c:B�f�u�-�N�0���A�+-������*�7?���hFz���5G	��
w�)b�24��)��=��8�����������4_~a�������Mj��������$��%�����.�?�x=�m�h��U��y8�n;��z���
I�_ G�eC��^��@�W�1.�Q����j�q6M����2�>`~b��;�.�$	N}+2tw����K��sXU��C�jp��|m
���{,3�_[_r���_\1zx@��Y�,QZ�*�)���L�8���������l�siv��;�*��x�R}T�o�����U��'X��.6a�N\	7%��r�*w�gD���3n�>�� ���C������o��)^GQ���{/�
��|sR���^odA�����@����(���D��Y�@yl!W�
��9�LJ�����4�k�V����'�?l�b����O�4;t�~S������N���K���]�� ��c�����>��I��H�WO}7[�T/&��<�z\Mg0��5�����e���{�����D��Bm��tRD�x��,j���(<Eg��uG$��3���<���\So�k�t')�|��7yq�������N�wEZ���:j	���{vX��Z^�'9�H#a���K�������>HRpi��c�JQ�Qp�:A��]�"��������;��Y�"r�`X��V]���v@�+�L��m���DA�c�0J���f%ha�nM<�P|E�I�~l8�ZB9��ud6�s�W�u�"�V/�����C]��!Fw"F��u1P�&kT
�����B` %s ago Cache the built-in Admin Bar ESI block.%1$s %2$s files left in queue%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatic generation of critical CSS is in the background via a cron-based queue.Automatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBenefits of linking to a QUIC.cloud accountBeta TestBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCCSS Per URLCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache WP-AdminCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all Unique CSS files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler disabled list is cleared! All crawlers are set to active! Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDeferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).DelayDelay rendering off-screen HTML elements by its selector.DelayedDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDowngrade not recommended. May cause fatal error due to refactored code.Drop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Elements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode IPsGuest Mode JS ExcludesGuest Mode User AgentsGuest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.Guest OptimizationHTML Attribute To ReplaceHTML Lazy Load SelectorsHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.InstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJS error can be found from the developer console of browser by right clicking and choosing Inspect.Join LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed IPs will be considered as Guest Mode visitors.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed User Agents will be considered as Guest Mode visitors.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.Load CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node after checked server load.No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot enough parameters. Please check if the domain key is set correctlyNoteNote: this option only works when %1$s is %2$s.NotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Online node needs to be redetected.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Outputs to WordPress debug log.PAYG BalancePHP Constant %s is supported.Page Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please make sure this IP is the correct one for visiting your site.Please read all warnings before enabling this option.Please see %s for more details.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePredefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.PrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended to generate the token from Cloudflare API token template "WordPress".Recommended value: 28800 seconds (8 hours).Redetected nodeRedis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove query strings from internal static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsReset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun %s Queue ManuallyRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe a separate cache copy for mobile visitors.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The current server is under heavy load.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe selector must exist in the CSS. Parent classes in the HTML will not work.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from %1$s%2$s tab.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option can help to correct the cache vary for certain advanced mobile or tablet visitors.This option enables maximum optimization for Guest Mode visitors.This option is bypassed because %1$s option is %2$s.This option is bypassed due to %s option.This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.This option only works when turning %s on.This option will automatically bypass %s option.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This setting will regenerate crawler list and clear the disabled list!This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google Fonts to establish a connection earlier.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page from the combined file.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.Tweet previewTweet thisUCSS InlineUCSS URI ExcludesURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in %s queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unique CSSUnknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse ESI for CartUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use external object cache functionality.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.Useful for above-the-fold images causing CLS (a Core Web Vitals metric).UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsView .htaccessVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You don't have enough daily quota left for current service today.You don't have enough quota left for current service this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You need to turn %s on and finish all WebP generation to get maximum result.You need to turn %s on to get maximum result.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %1s quota on %2s will still be in use.Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IPZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.user agentsPO-Revision-Date: 2021-12-24 12:45:36+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: en_ZA
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 %s ago Cache the built-in Admin Bar ESI block.%1$s %2$s files left in queue%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimised.APIAccelerates the speed by caching Gravatar (Globally Recognised Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to destroy all optimised images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatic generation of critical CSS is in the background via a cron-based queue.Automatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimised images.Automatically request optimisation via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBenefits of linking to a QUIC.cloud accountBeta TestBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a grey image placeholder %s will be used.By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCCSS Per URLCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache WP-AdminCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all Unique CSS files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimised version.Click to switch to original (unoptimised) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler disabled list is cleared! All crawlers are set to active! Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.
 Click to redetect.Current closest Cloud server is %s.
Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimised version of WebP file.Currently using optimised version of file.Currently using original (unoptimised) version of WebP file.Currently using original (unoptimised) version of file.Custom SitemapDB Optimisation SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimiserDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDeferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).DelayDelay rendering off-screen HTML elements by its selector.DelayedDelete all backups of the original imagesDestroy All Optimisation DataDestroy all optimisation data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDowngrade not recommended. May cause fatal error due to refactored code.Drop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Elements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimisationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode IPsGuest Mode JS ExcludesGuest Mode User AgentsGuest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.Guest OptimisationHTML Attribute To ReplaceHTML Lazy Load SelectorsHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimisation from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimisation.However, there is no way of knowing all the possible customisations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localised, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimisationImage Optimisation SettingsImage Optimisation SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimised and pulledImages previously optimisedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimise potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.InstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJS error can be found from the developer console of browser by right clicking and choosing Inspect.Join LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain colour placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn MoreLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed IPs will be considered as Guest Mode visitors.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimised by %s.Listed URI will not generate UCSS.Listed User Agents will be considered as Guest Mode visitors.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimisationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimisationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimisationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimisationLiteSpeed ReportLiteSpeed TechnologiesLiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.Load CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalisationLocalisation FilesLocalisation SettingsLocalise ResourcesLocalise external resources.Localised ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMapMark this page as Maximum ValueMaybe laterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum ValueMissMobile Agent RulesMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node after checked server load.No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimised WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimisationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot enough parameters. Please check if the domain key is set correctlyNoteNote: this option only works when %1$s is %2$s.NotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Online node needs to be redetected.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimise pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimisation StatusOptimisation SummaryOptimisation ToolsOptimise CSS delivery.Optimise LosslesslyOptimise Original ImagesOptimise TablesOptimise all tables in your databaseOptimise for Guests OnlyOptimise images and save backups of the originals in the same folder.Optimise images using lossless compression.Optimise images with our QUIC.cloud serverOptimised WebP file expired and was cleared.Optimised all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Outputs to WordPress debug log.PAYG BalancePHP Constant %s is supported.Page Load TimePage OptimisationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please make sure this IP is the correct one for visiting your site.Please read all warnings before enabling this option.Please see %s for more details.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePredefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimisation of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.PrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended to generate the token from Cloudflare API token template "WordPress".Recommended value: 28800 seconds (8 hours).Redetected nodeRedis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files.Remove all previous unfinished image optimisation requests.Remove cookie simulationRemove query strings from internal static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimisation.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsReset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimised data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColourResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun %s Queue ManuallyRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimisations.Selected roles will be excluded from cache.Send Optimisation RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send To LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe a separate cache copy for mobile visitors.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimised %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognised. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimised image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG colour.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimisationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimised images on your siteSwitched images successfully.Switched to optimised file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in real time.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The current server is under heavy load.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe selector must exist in the CSS. Parent classes in the HTML will not work.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from %1$s%2$s tab.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option can help to correct the cache vary for certain advanced mobile or tablet visitors.This option enables maximum optimisation for Guest Mode visitors.This option is bypassed because %1$s option is %2$s.This option is bypassed due to %s option.This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.This option only works when turning %s on.This option will automatically bypass %s option.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This setting will regenerate crawler list and clear the disabled list!This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google Fonts to establish a connection earlier.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will delete all localised resourcesThis will disable LSCache and all optimisation features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page from the combined file.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimised files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomise CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimised in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.Tweet previewTweet thisUCSS InlineUCSS URI ExcludesURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in %s queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unique CSSUnknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse ESI for CartUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimised FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use external object cache functionality.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimised) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.Useful for above-the-fold images causing CLS (a Core Web Vitals metric).UsernameUsing optimised version of file. Value rangeVariables %s will be replaced with the configured background colour.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsView .htaccessVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You don't have enough daily quota left for current service today.You don't have enough quota left for current service this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You need to turn %s on and finish all WebP generation to get maximum result.You need to turn %s on to get maximum result.You will be unable to Revert Optimisation once the backups are deleted!You will need to set %s to use the online services.Your %1s quota on %2s will still be in use.Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IPZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.user agentsPKB�}T[f}�A/Vlitespeed-cache-en_AU.poUT	�VCb�VCbux�����}�r�F��|Ƴ��cE���7(��8!Q��g6�@w�I���>��p>d��ΗlfV�n�B(�s���f�%낪��矢�"��M\�y���b��I�2:�ޥUr�K�Ut/o(����&��A뤬�"�$q���Yt��l��6zv�/�"ޤ��Stu���:�>��U
5�b_�}�J���e�M�M�L�2���3�]���$�ؖ7�*��;�Ŀ���p�1�KKX�+�"����7�z��ɋ�����f���Ӄ��ۿ�����$Ϫ$��v�J�TG�M�f�-o�L��|�z}0���殓��4[�4�y�iEm`��Q��b[����,�2������,��_���Q��I�����x����E�����w�;�7��p@
����6�E�d�ǟ�HE��dY���������6G�8���˼Hw���������buET;��s�c�]bg��αFc{�lTwqM��k��L�Y����s�?�3���Sߌ��~���zF/���]�o�Ǝ]��w��[Nŷ<�����ANL+t�n�:F:S�K�.�W�U�5��Z^��f�#8����K<�׀v�4��^
�*���q�`;���z�-
��C����Ȣ���rE�ET&�`���	���tvr���{�D���,��0��Xm��CE�7o(6���N�~�����/�U\��&:��ͬ�|�ȿ-�*�Fd��L���C�&����.��-u��c؅;zw��ǽQ
��W��~�T��o6�ƺ��%��wldv!����Ur'7�o�d`L�17�df}���"�>d��ʣ<{m
����?��~ʋ44��k�J�i��q	G3�FWW�"@5P�����(^������7����:qlzo�p�s*H��'t���7Ǎw�	������?�⨟�!�=d/���w��L�/n��H��?��
�N\VKr��n�9f�
9O��{���1�2���3�d��Ʌ����e���>T{K��o���0�X{��B;����]��{Kζ���lⲌΑ4=����WI)!5�'����ڊ�w�MVi|�|Y��''B�h	�#P��`�-i��(��t��-��Y��\69"�C��(��21i�*z흭��9��C}��Ϻc����@��w.�-�[���c*���O(	`@��z��H��t�K�e%_�-��y�}���Q'�~�e_jU6�~�?Je�_�����X���pa���ٓ���RW3YxS���ڼ��m��a�4�GY�K1�L�yuaS8'+�	�*�7�xB�q�h)�t�����]�1�s���~�ˋ
��~��Q�S���f�M+��U���TX''�Ύӛ��<����wE����a�3��f�5O/Ϣ�&_~Vax����}�e��������w�at�_l�%+�sj0�@�	p�@[Э�O��MR��lЂ�o��F�5��M��l�_\��=f����a(N{����2�oC��!� �N�z%�B@'�|���AK�bV�4;F6�A��Ao�&R��,�T�t�g'�
�$�?�I�3Rw�,�b�>��
(�b�$�ʷ���@V|6&BҰ�!���x%�u�]�-�g����C9RK�C*'�k��3�!9�F��C<d�5�Wy��/����s��Z�*��V�k�yt�"�G@�E��C��S����z��hg{�b�}	,��Y��"hRm�~�j�=wk�,�7�Z
�_DgRg&�t�OЧ�i4�x��]�AU�٬����*�D�� ��as�d5ɡ	s6Sҍ���~S�2� u�ڂ�=���
�kx��ghY���K"ZK����$b0�.�n-D>'\�%|�v�J
yŐ'8�f����I5Zt�>��k�r����>D$#�3�h�[���uR$�Wp���~�UGN�5G� 
ٹ��m�}P9�_n���:j��yYE��|Z�]�,_�w)�!��v.�(��~�x˜�"��߬�O+x�36q̕���}̿B��2�
�`0�����>N��,T&�q�,�3��G$x
���prP�@�����|��;@�@�����9㤑E�/��L�X=���:D>D��V���6fB�?�)W�6�J�sMeJ ��iE����t@^�6Ion�ɨ�����N�oN_y�w0fzW��̎qƷ�f�D���I����~��i(�f_�!���C8�~S��.�֩i�A���8aL"�d$�4iO��w$*�����
�'I��K6�|��"��R0����稚���(�+�[@��P���>9��D��{�O��I*T>1�^�,�W53Z��T�?�@��_���V	�E��3TF�E��˯�!�_���?Po(�<vG�6b��Ш��������Ͽ~��M`���P�5���Z�A�(gYY!u����j��t�JJ rv���<�5����vIADS�ѝP�"n$
��m�{EH,n����Kr?7�t%��`�p1|^p�Q������Me��H���R��%4�����"c#1��"�Ot��x�y��FG���7�cey�uY��5X��,�(Fc�h�T�C�=g�ȡ��~$�R��_�`�Zz@�iG�.��ڋ��/Z�,�=���o�q񠐪Rb�׋7��Ɍ)�X!�F�e��/����(�'�y�&R�p	t<.���.����C�t"i����I�k��mc�%��� �,�1�����,����0~M֚��ӃX�xN?�XCf�(��R����rA��dИ�;��`I���S�Z��,.�ׯ�����\A�!�}<�26d��Ky��i�]B��FJ���G��,�DԶ|�G���Is�����2�F�NfY*_w*UM�Ӫ4�Bm��DC��&'�!�j��yV!��-oW�����
\�@�:�D���iH-��%I�&]�ʑ���r�W$d~Kj;�ظүh����$�<B;F�@3-T��V۲?\�+��B�̅��>��F"��\��\mK]�W�����|,mR��p	�%�@�
���c�9N[��lk0�
�V:���h��6F�ی=Q��aO�׏��z�	N	��"�g+T�@��\n�{hv�1�]�@M��n/�Xʴ�D
�d��+���ETlC�]�G��6i�iOЊ�U+
=\��'KJQn{�zs�o���I\Y�*^�\��J`��-c���%/Vd�r��
��h̖���sQV�.��?)�#��G���� ��&0Q���������a��%�
��~�!��]�9&C�qf"�8�F'��
�G�_	���Mb>���훸�nf��e��f��o,6P�JeHϔz��}oT�_���:�S�'W��^똩e��v�,��ӢV��FO���g��e��_�y[D߆
��%�Рp�l}�SWET1C��/�7ւ`����n(�X�FH��m�
��jK�����!v�VR0s�-�d�"��ox�a�XZ25�=j�k��2]%�E`�M~�.�;�
�p��bu4�O�TE�Ma/�^�n#�}{ZvW:|��1L�ͤ�hĊ�g|ّ�����#�zf>��\����cԽ������`�nGu((��]�L����w@����#������8p#���+D�8t�&�o2�>Nm�S�MXVi�,'��2vy�U̚O��Հ즊����g`��UN�V�����T�GXE�Y�d�/ɒ|qI%G��J���<�����dHL.����Ѭ�i�F�y�ll)��Mɥae,
l�{�&0N����"?E�iӨY/��d0���Y7F�)�6��T<��[M}�a����@�	��V�2q��?
�n��$q1�nY~ F��ʿl�����Z�5k�ʒ
��ki�ͽ�$c��n6�iVc1�l���D���V��:�ˮ�k`�������37�6�Sٯ�HR`֏�zi^)�4�LV�|E�Q�*�/��9���3����2��T�a�0�*�
�O�8�$q}�E��5\��+�#��®M���5�"� ��WDIQ�C���}�#�"���;[����a�F�;rI���l�o���*Z�}���&�7p՛�GȐ��@�D�J���j	�Y�'}t���[���>Cɏ�R�-f�K��L�u��z��ӾL��)�a�N���'f�&�PWC��el�O�C�2�f�uK��-�~tq&Z	
m�+W�v�W�2>1���3o�t���h�Z��S�:ϫ�0�����}�c%��qJZڵ7��X%�? �_.��Q<�TK,g��A������~+�@/�?��6�p45��W�:e����o6�㕁�3+��P�n5+�r�Y����7�Z֘��8Be�N����v����ɡ��V��/����֠���KٜL�#u���es:��O�J��(���6^���$:w?�C+l��*Eǽ��B[/���j�P�O0�!K�݁��ࣩ`Y��>�9*���A�R�x�6�
�C���i��(�
�����.[&��7��`:�%��7v��FEc��P��4L 
��n��6�bU� ����@w?�Oa>oU&Ku�i�"v,.�%����ɫG�|�w�B�(�
7�'0�ɾ 'xѸ _C�ȷ��Md��-5ʼt���&-ͼ�
ګ%�[�A	��y�sh,F��B�?I8����t��A�
ԟ�6�q��1�-�L=����ӦP�=U#UM.%=���]�a=I�H�
O���޵�C�G��%a!	��h�kZ��|����?[k�"�n�N�HԺcX����E�n�'�{@+2i[�\b�haq�T�7W���l�o�����2Ü6���d�Co�\K��t�HC�Y�~h���T�o�p����:�d��S%�����0�)J���? 7"#&��C�Հd+§t�~����qb>6ڜ�Pw
�4������m��{��'f���v���I��&�$*>�8S�?�î�N�Mox��d����wi	�䘂$W?��S⤹����mm�[���X��*�S�;�2��#ka7I��$�+����1d[K��Ww��j
� <W2��������&�ܪxY�3`��[J~���H�:z�d���R����R�Z�q�i�a3g�[� ae̾8j�'B����Sik��!p�:7��d�o�8�иQ�	�3�7��~kT�A��|+�m�[BI}���w��ƪu�,N�*��y�3lT����?Kˁx��#�y�~�.���m	g���-�2~�;u����3�
�B	��$��h�\+E����2d�8��E����q:Lx$&��f=�hl_�G�ZiE�3��j4=�^�8�Q�a�R�Y[C��q\��yA*&n�Ro�Nkw�c_���uW��둬�?d?0�c�lm�V󵶯a���"�b�ɒ�5Lg�

f������֕�������y�͕���	БG�,�H�O�1��7w+50��-tok��j>5�G��I�I䨣�-��m�3={?�X�|O�rxO҂;��Ј ����,i����%fi�N�S>���T �Wyt�ɨ�7���Z�a��8�u�
�x�nO��g�z��u��f�/�McEFq�Z�JMnnt�)���:��+J��/������p����yb8��p��5�������pzd�W<d]p���AE�ކv�91��]�N*-�����W����lvI�N=\o��d�$mn��O,�����6T��x�6T+�30�7�1�;���J�$
����EpyE$��s�ҴY>�䕮>�����H�W���Xo�"Q�:z��2D���m[�(� ���C���oz2����2�8�mw��I_�3�+4��<Ӿx[+�h�h���Q`��L��k���7#iX�D�*&L'	�z�n~{3�x��g��L.[�117�n[��
n�p!˄E{�q@��d��HIs����|���CfОUM����J�"1�|2c0��X���cY8��'vP�M���2��V����a��Hc�jOх�enL$�ִ�[fg�z7jZN�G�x���Cw�����G�FO�B���Z����ķ�P:|e��0,}<��	�VD��^�Q�Z��X����L�6!m���0pbd��zi �i�8�~m�t’6#�������u��Ƿ�����ڛިhg�@&�T���h��?mc�ߎ>�HP)\H_�#�{b�/�T����M"TW,pR���6�	�0E�x���y���E|�P��<�J0kk�kg ���/��"�xyʑ�J���H���
3m�
}`f
$ĬM�(6l#�Tp�vC����Z;n}��s�m6p��v`Ur�.e�# w�ϵm�p�E�īsVw��:w��}��|Gi*,�$��^�"Uo�0+JN3����,�sr=�Izȑ�r�k���x�p�F�7.��P�pͪP��D�u�\%�K��x���[`&��WWD���Zt6FQ2��"!��%��`x5o��V�*�L�C;��CSތ�р��i]Pp��,����1T�l-^a-�dG,2#�����,���qc�hK��!�lx\�Z�Ѽ�(['Q���"��kDf���P�gF�U8 ��"CO�JY�AL���d,1�\�Ǟs����]�T��&���4�I�(�|-T�'���otL^��0���0�c�7�"7�<NAK�c�����,H�e�{��Rϣ7��I��&�ϣ��j6�/x�`�F>q]��T`K���V���~8��s�\,��%��mw6���,�o�ޑ��f��^���!���oKP
d�y�K�����h$魫�}a�vUG7��<���kv�F2H4���pxӲ�[��d\3
��"3��#z�d,�{�ūx�4S@>9|�+p�^�Q�w�y�(��0Ld�B;�`��s1[[�{4���
�a��X�3��!rԋ��;�l��j�P�h`HR&ڪOS2-�thq~,��&�����U��2�ؓ��BdO0$�;I�uq�`L�E+�iBg�"|��)��X�:��^cO�����%�R�ڥ�S{��+�Ym:��͝l���O0
�1.��7@��:�8J7��{����Dˆ�~�NaUC�'W6����O�Hs��|~�=[0��{�Fbn$/���|�����4;�Q7��B҂��lw��X��	�Y��Ě��Z�H;&-~������
��'c�Y��˦wu�N�ܬ��l�V(%�%'��#��a�1��A4>��-M�x�(��N����w޾z~�*��,E�s�Q��U��Zf'z��G�v�h�f}�X}�HI�gph>Q"\w�+5�3�5�HDI�����a:�~���z�}'ɥR.n�;(9R�QK���z
Y"D���d�n����-II����XL϶1�
[���N<W�x��Y�L�:B�?��f�f}��g_�ܗ�&Y"�R�jrK�e�x(�Q���ZN�D#RǠ��&W�&�=JG�p��4�'��Ũ�2���50GY��zR�	r~_<py=�GJ|)���BY�"��&[{
�e��sZ�d���Ǡse���ߢ�m?��9��<.^i�ڐ�μ؆洋��>u��L�"�!z��d��⛨��ojK�5�3PW�X�(T�+�,8W邘'���&�3�e,گ�n[�خ����jo�7*¿�b���L�����0��H���
�\iRMv{h�c`.Y�F2��_�2���i�N���k�5)?��`شD���J�:(������6]��'����+d���ib>{m�^	ů*]
u*ihXH�,��DI��R�v�>�I#�Ja(�1YN<�k��
c�N`��{0Ka�_:3p�g��4�Qc���8�b"�:�D��g]�tz9�;�C�Ӯ���<9:ڬDK�ĭƖ*��x��X�y1�-:lðC̉q���
�|�.�/��u�������Y�
��g_M/�<��D�e�ɤ{h�m�/�mhM2)�����"��}}����D�,�͌ڸ����F�$��c���e�z�MT%��^�a	2Gѧ����i�q���A]P׎�[�s�o������*��L�����'��!���ёPql9l����U�k�uؖ�3!��`F�����f���Y,;�\�J����b�Ο7�����čB��V'��Y�F���M�,eQ%9��xH�q�;����z���4 �F���Y���%ݬ�@�s��%���/J�[R�葎��l���h���ad-���@���Dp��]MH�{
�6T�d0Ҏ�Ɩ����!�zE��u�����m�w q[�`}	��ο��ШT�V�E�&�"�W@�$k|��T0QR�q�o�K���2�&��V5#��Z�m��y�I@4G�ܚ�+@�(�hw��({�m	��$L;#�{�K����M�Q��>��LF��z�IoT|�pJʁы�@FcCkkF�2��@��[of�c[�Hc��q�q���7�^�f�\�p}L_4��᪠z�|�x굚\�|��1Zv�b��ѵ����i�b;�xFVP��z�uדt��-ik�q�%a��������^$�v�8�40n�jKи�zep|�^��M0Y%��
*��<�������KJ;�9�.�*�>��\m`���k2���)�;�B�
��D�3�-�'����0������S�2�V0�2�?��S��5�(h�`�'��6J�q"RW����v0$���Dt�?�Q
3"G�<3Ċ9�Ȏ6!�P���:�a�F�_<���cuL�6@���8q��X=��#���N�J`�
��T!�y-�0�Y�"�C��Y�2~���12�e�}Y�����yh��@<mmB�BJ'C��q�#���1��ױ���,U^�jܐ��T��$�a��4K4�j�8,àg��Ő�9�p�drr��G���zH�͖��k
����w�Z�.zP ��r�QT�z�ӯ�>�HY�5���v_י�Uc��?�'���/�ؾ@6�{#H��p,u�����^#�[]=�,Y`���=h��i���K�v��xz����kO2xi�h v�a�����8���}�ln��n�l��.d;�׺AOٱ%}sK�OsO��}SF�MI�$ba�����;⽽z���up���)�Ŷ�BYw�wֱ�=s;M	�Y�$*vA�4���;%ޭ!�U���vY�i@��+�f�`�yp��&/
�z���yj���c��E/*�C/VwEW�L�"2���T��>�~[�Ǒ2�6���-��ᬽ�l2n�tџ��l�N���1J_x�*�De�(�KO�a)'���@m�j����O5�֟ʑ���F�`i�(�[���
���wSn؇sg�-b�I;�_�w땁y<xD/z؍��/�H�]?�g���R���Z�W��ԜuU®����\�U��(Z,G�*>��n�x�b.�:َm�c�I�]�j�*�̱‘��\�R�X�LI_nY�^�`�5�%h�S����gK 5��	�G7��ݮ��>�֣����%���c��G�����/C(����*���p0�|�420���L{�Ѩɵ�ȣ[�ђ��2�9�ؘ�� �gɵ2�����r8hVJ��j8Y�IH�D�,�Ě���,�T��F���O6~S[�C��p�ϽV�KCߐc%?����V�<�~�����M���/��p��
,�rG͡��zP1��ou,�j�6��d�h���[��6F]�܏��c�c^��AP�
�Ok�����W�2N]�"S�s��4�C��t���.޶~c��o�)����6�}�zj�VM*�ԗ�yn�Bhn=/�f�n�Ê�hC�"^����7�@|���Z+􁲠:�H��*]���7�|(s
}�m��0�>�c5"�R$����:�<����!m�CNg���3���{h#����	��rO�ט���x�om�vb�K
յ����=�N?�-���9����
��u(�II�)�("� ��ӫ����:��ڥ2^� ��Qm���7��j
P=KK�;o%��[2���k�j��0��n�*Z&V��
w�E{�2��_Q^ݪ�Y^=��uԆ�����`��%��
�e�@4dټcV#���Z�UNy����?���y1���V	_��ါ��xV���JO�[F�H�����15���cq}Y�DJ����Ai��n�NP��m�&�l���{ÿ��;�v��^��v �S���k�e�	I�n�Þ�.[]Y��f:�cJ �2.L`JE����Y}�!†�7}��̝�#�z��-� h"NȺ�o؛I����h
�*m,|�MB��|1>��|��)��Fg?<�)�j�TlNp�v�lya���^��L�I��Sʇ����s�]�m������]�E	?�k�k��
?G74�Y�`�T���ů�Ő;�^HW��t[x�ə�κ��&>GՄ��C���on���ź���î���Olu����v�/�\��_F��MWE�췾�ux�/�Kyf��ĠM��Yn�����-�S*�,5��Vi8����O��ui�zM�Žy�{���	��l0_�U��z���NC<b/�R=�g#Sc
��Q�W��s�K��o���,�����QF`|�	2%5�~<�%�@>"��W$�C7<��gY�wP��G��}V��xk���A#e�nED}Қ�b@o��N�c����Sx��Ϊ��q�E⣤��5�����
�=��]�	[.4�fM���-���|�������+�E��Z6��=��S�{���N�1P��9>����q<�V,�
ZF,�3l��-���Y�6����a����/dO���R�Z���k�e�6+
@8��A���?�򻴜h����;����*�l�Y�z}#
]O�4��ܬ��k�旆�t�0��Lm�b�I�-}�bHԋA���yO,�jL]'��o�;�#�yI�FE��*���N���E�����R/*h�<?�
"]-�X�x�L��a�
gb?K���z�,EL�JFV,�����_�cvMWא>a�c)��S�@�@�`��H�i���'Z���i,��7�G�qWZRm{m�5�琐�Y����f��fj�a�>&��~�	c_à��@��u;�ƞ�V��@ޣ�ĕ��pYD�ф�
_�"Nw텋4h�Y���+�x��6��Hb5��,
\�L��bt��e�=Pܿo�G�%�C^u��T�o��4�l���~�������'���[�Ȥ0:mE&��#x�_�x������Síג���$i+����F��HM�v&m)�~�09�*�/,��	�L�+����z�ə�'��t��
$lSU"ܤ&��6���ҎQ���`EY�K�/2@Uжuԡt�g\����/��l��R]����f,Q�Zl����1Q�%a���P匍*���HZ��:Ů�5�=F0۱|�:o�r
<N0�w��`�`�09U2	�1�5ϧ'���KxW#���;������=��.�d�.Ef��(�Aqv����Z�ȡ3�Š���?Ű��c�������^���?�aJ��<H)7����
<��Ű���g�o�U�6F��\�D��X��F��(L'��g��x��H������4�pp.�0��J�t�V�|�d"x��"�>��`h���w<���(�&�^?�/�m��#��N'1K냙+�5��9Gf�/B%��}l5�M|��$��^hn�-Mj��L��t��w��Qz�$5�	=3����P6�4����Nf�ԟ�'H����;*hy�����d�p��g!�5��C)��E�ES�<9d�ןj>���i�
��p��•s)ĹPW\q5,���n�)��<?�#�O�&gI�jZm��s�>:����Jd��S#`�B����e=�p(����g(��S���82�o��G>���>�|����G�B
	��~1�%`��=(6YE�&{,���Ǯ�o�e�7�
�F	�̇��DZ�U@�%>�:���^���M,�L�M�WN�.~����i���R���*n��ƐיhW� L���m���
���u��j_jҪf��*�t�/��Bѥ�^�/#����'V�|�XT2dS��Y��!�2�_�;U%Ps��I2Z�35n�Z��W���4w9�^-�Y���A�5��g�bWd��1,�QNQ'��>��J�?��:�<�:��e&��ǂp�~�p�jsL?��yy�q�~d���e�8=���Xs��Qe���F|�
��h���u}���*�>��Y�~�.�{դK)�����@}���z�	�%�63q(�B��*(��k@�ũ4��X^-��?�CD/by�U+����ys?��m��=�1qV�ctJ��X�	Z�[#���;���(:'�z�����h�8F��@��H����%^(J�?��ܶW=�7N8�=�.6{4�v���QI���v勣�����
�a
�Z%���e�=�1�c�0��Z��,e:?@��&1qܓ
�W�T/�L;�1Y�B�<#&<�=�}mÆ�֤Fnv��eBь�h��7����l���m�U-��yj����v�o�GԄ:�{�,�k�rQ,Q���wL|�m��Vz�(�`ѓ��k�d��6N7��j�'XQ&�Ŷ(�S�uƞ��<W��`�I�X3J���'�!�\4>�Vc6��4��B�t�}�t���>�O��Eg"嗁�:RL6�?�s��Ꚉ����~�LmvI&�nj��ݗK�I�f�&�-�I�0#�v�B��b��O�¿ҩ�P��1O`���Ҝ���_~�/ܯ�$,��xѤ>��1ffTbN"� ����
_�ڢ[��7B���D�����|#M������SUsbҧ��E�HyI�`���kr@�͈Za��}QL��^�f
S��g� y��#`� ��1�;q�x��(��
xI#��#�v�a�$�Y�����˫��߼�i͊Z��̅+fB�*���0�����BB��S?Z'��i�W��=Z�����G�h��c�&���^��DzA�3�L5/�*��k4�i�X�K΀��ː�2�A.W��G�)��Hh>վ� �SIQ�(ّ2[�oWz�]����pk�d �q�}��9g�IwK(���Y{�O<���,S4>Y��E��]�{���U������P�v
n��{�nui�c��Y�M�j	���H�/'��_�7
ќ�]���&R�6!�;/�,�Ă��5y���ӔJ2�`�L���N���g�~.7�e��I���H���ئSI�_���	#�ŃV�ɴGjU�4N��!qZɳ�?�pXB+f�!bj�� <�p���N<=~U����Y��'�yȫx���rʴȆ����XO��l�2}֏�&h��qn��ª�4r�(ߴ� ?EI���:$��1
����я�O)�s�!d����n�&�x&<J2"�|�|R���eP����H�&���\K��l~���I�O�7$:����?�ޞ��A����,}���ɕ�R�l�b"F�[�4	�`�P:�=�_@�)1Q�.�2�HX�iY%䲋F,��h1O3tA�
	���T<g$�=7^a.]���]�+�~������,��e2K!�[�2eB������k"	b)X��-��?���i8�\�9�
�\������a�}��dTVx�0R4{UwE�K

'�W:ѱYR�tX����ɹ�LR�xP���6�ݓ�\�؅��xHt��=�[;������~��m�<zS��G��w����E���g*�Ģ�]h����U��F�*�' ��Lh��1�nRNO�\V�P.r%F���$�KeQ�%�P��9`z�=;L�&C����}���x㞿�l���s�N�
/�%��a�8i��31:���`r��9���i�X�b�T���]�Z�Y��7�8fmE�@�(b;�E=���cn���0!����a9+��f��]�=�|k,	XwB�JQ�]W�\~Ӱ��!wX�̂�*aaV�1!Wx���Vѿ�c`�ۣP������gnrX'���Ԑ��J�*�/Sb`��T7����a�d��cf��Dnt`���AeRN|LTE"|C�J�*נ��]�S�Z"���z`�Z�i�]����Z�MS�GSޥk�6�O��=��@검���PA���+&(��#N�W��
J�{o��}��_�Ǔu�.f�������A�U��u1�A	�`�hm�d��DY4�=���x�>���M]>?���z)Rl���v��t�!�_#/g��,k��gL�	�C��b��t4�䢎�hKc������2�em��9eՈx�.OIֹϲO5J�1\�-��7��%K?4��	m9MR���fd��4ƌH0(�>Ճ�hމ��t�:?��_*-�(��[=��-h���e��dm�J¤^�;����0k
43šVd�#������Ng�M��?�4��l�t{4��~.��}���Y��gt1�
"�VÃzЫw�����}xF�x��2z0�sZb�}Z�b�ef�{�,��E�6��[�m��.<�Ŋ��H�6M��0X�P���#V]��um̄��:#�މ�F�{S&�Vug��v����u���Xjc�6q�W��5��M%$�\2F��X�Շ@�2mw<f��#�Cz�T��5d�}�]�U.s��%��f�r.%�NC�+��q=�|7��f�����ί��O3��a�9H��O�W�������>�F�?~x}�z{�1���et|q�����������K��s�)N��.^rj�|�=C��䫵Y��%���㿿�����=0�����k-̠��#_�T��ӂ�)�b&�����+��T�8o:�ǯ~>>?9}}�<�x}8���u���J�kOP[3�'�N'�kjF��*[c�#���#�׮���^K��w��~�i#l}3���c;6<1%6��w�H9����!�ᅦ+�b/?S�I�8��GCϒ�����OW�d�bE3K?|]ZB��WF&=,��)|>���lL]RG,�=?��1�8ݐJc�r�]����3�������/���(k�Z��_	��.67d�h�}�DZ.u����$��njZ��������ɸ{��2�]��/Ո�V"�Hn| �HI���}9�6O�;VT4�y���^�9��� ����[ts�kۘs
4Z�~3�"�V��r�)q���f�D0�-K�*��j�G�4li�]����Ӡ�^�!���������vK�Ls��@g��&2C2�jd�
&��oӛ�ĩ)�M���~E?�_��>�<D�l��N-)���D���0I4��%��T��9�ؖ`F�Èv��쑉���B�E��Ȏ=����#Nz�B�)h����QUk8[X
��2*��^L�.��L1l&i�1�4����]!4h(�4�ZȨw��
�
��(mPR��NN�\�I�5���<��j��D�*G�X<�r	=�b{�������;d�}iD9t�2m�/9
���J��6:�rGb=�:{��k$S��7=�E��Y��������p��]\���J0a���x'Ȃ���by�a���]��\�ɯ�
g�|�p�`:6ɺ�0�"�a������y�g��Jc�AԸ$��R����.g�ucBG��|�3]�z��+97Ղ�#�hY#�(%��PQɅђ���+סH�	��z��Ȣi�̓v76k��.~eƊ_���������Al���M��6�q���1i#YG��
�d9��Z�G�|
#����/�,K
8��׀�0���Y{�J��?f|��F��N1�
B����w�;j���{� ��2ɧ�C�{�~E��}
���l�0�B�;�A����D�7�4��@8��n0���{�
=�>]�ip�,�4)��{�����9R[<kp�E��߱[ؤ�@%Nј��WN�^TF
���QX�����,��D�HR4![�€K�á
�fy���X���L��A���SR)L���g��lj
#��F��gsՒ}�`dJ�$HR�����=yJX�˧�8��A�]j?��A�����vh'����U�L��%���r�|u�E;73�ɦ~o���t:
n:�����j��bz[[���Nt��O��B#��ƌ�iס���M���]���>���T������]�bbe��}KټY6�Z��'M�X�R֟XiK��Y6[���M'���ln�>N�e��&c��'Kө�lf�>oN~ڳ���rm��j����p�.Q
[*ǃ�Γ~����������;ϧmz��ģ��N�OI�,�N���$��PKB�}TʉJ@��litespeed-cache-en_AU.moUT	�VCb�VCbux�����|	|T���
.m�����>����M�.���,IHaQ�f�&��;ΝI�FE��EQQqiU@��(�.��7\������V��9�s�����}��ù�w����z�]/3��>����Ø��a�1А�Y��WZ
��J�x�_#8�`_�g*\@p�W�.��
��r۴ܯ�-}���O~B��`���C���#���H��a�	V�F�G�5�<��G���G��g	~��+p;w#��a�QMp?�{l���C�E���5�Џ�6|�`3�Î4�Q�?��:�	���ĸ�:�~@pAg8�_Npw�7G;�L�)�3�2�o��Q��"8���>
��}��w��{#�G�?��~��X}o�~d	~���^<��"���>o�ql��o���5��H��_Gb����$�Bp5A��Ҙ�"�0?-�g:�zO&8�����Fa>m�Jp?ƃ����S.>����ۦ���{c�������+t����_��^"XJ���~�Ӝ�P�~u�c|g��/�o�c\(�
�8�>|4�[=�}���;�X�_7t�f4�}h4�y�h���Ѡ�w�}�
�����
�Ә
����
���
���
��sh�
�h�+������o`%�9�팭�8+1�h%�c�����uK%������ILOZOW�aT2>��WaܻӒ�2���P�q�V�n&T#��h��^5���j��1Od�\��i�i�`z>}@�o�{y���1��U����sA
�c)��o"x<�]�a\�q��I� S>�v?��_������jƣ����=���C��1�ܤ����|�j<���=j���j1��k�O����Y�g��p�c����r�j��Q�#�c��/gա��(����k�ѷ�߫|Կ�<����CΝR����G�n�=�&H,al�>$Lv�qJ����x���@�,#�6�8�D�-�3�e"��F�7�`-�3���	�҄���r���,�.�q����p�ɘ�+&c>n�z}p2���/������c-�?��vn�k��-��-��w	�H4>nA}�O�L��7+�Me�@>^��맀?_����
��q�
92a�ꝩ��v�'j�B-w�T��Ʃ��i��7rʍ����Mü�	���:
�xƳb�h�4���iϓ�`'l��rm:����x?P��鐋�LE�c>�1_�N�]<x_3�?9�}u:����c����~�|,���c��
ǂ϶���8��/�b<��v���yh?�{�+F��〧?�~�:xؗ �zƀ�cg`ޛ������(��sfO�h�kg`>n����O�T�����3�o��D��31�f�n:d&ʧgb\g��x��	;��/g��OgB|c��E
���v�̂����gSg���%H&��y��V�_g��<ʂ<p,|�ւ|yɂ���
|��
�|�����\���i+��U���-�h��Vة�(ʷEQލb�E1�룘��Q�SQ���(�`�ü�b�bh��앻b���0_�P�n�ڽ6�
��O���i'���m�;��1���nd>$x�m���v�z;�wV;��h�t$�o�׎q�����߷�6;0�C;���w����耽�7���8�q�g:��G���!�1���w����<��8��C���ֳ�l���̆>�1y�����W�F�ޘ�~�y6�9|aρ����!,��J�?L�}pB��ql���|�	���`Q�x0<>�@?�M�_J������O`�9	>x$�����.R*�Sh'B�����\89�,L���)�sW
�y&9�Y
�
p�G8�����^��`\q0�=�H�~���}1<�vr
/I#�����Ә��؎Ic�S�L:<�`�������)~^��~��x�v!��lg9�B�|�O�Ȣ܀,�|�,g&��9��e9�_�pc��Rt�Q�8��qh'�{|'쌳:a��	~;��gp�ݦ.�m~���.�[���ޝ�����Þ�{擹�n�guC>>�
���x����<��y���Pߴy��g��?�A.~0��w�a�	�� x�g'¿�u"�ť'��>�<	vc�`=�I������ɐC�>|�r
�;��u�)����}OE��N�<�?��?x>�4ȹsN��|�ߝ��8�n��~��ﭧ��������=��ۦ3`o����D�D��΄��L�ӫ���@�מ���,����ܳQϭgC�n?��}6�7����s0O����q�V�\�;y.�a�࣏�U�<��y��~�}t���@M�!���@dz�C��P��精:|���!t>�|�;�|��>������ޡ�/�>����o]�Rs�?���.@��.@��/�����������>j>�;{>�2tp�|��v�~�|����7���)�D�O�WW���_�^��ze䅠�腘��~������0�}����س#`~c0��O,�_X}����P�� O>[�~�r���Q+���QO�B�g��B��]|��p���U˭����e!�s�Bȃ�\��/����bȅ�����c.�̽�?��w�%���K0k/��\������0�R|)�)�9�R�c饐�_���7/�|�]��+.���{�e�뗡ܟ.�<���ϻ�r��h���7_>��堳���{/B�o�"��0�W�o.��n�d���b|��s���/F?����t[�q���sc�4}��x1�Ҷ��ۋ�Ϗc�_�r��+ �\~{�
�W��r%�u���wʕ�[�J���W��~��٫`
��`�LS��
�<_�ݪ�[����U���r5�u�š���W#�EW#ߝWCN?w5�N�%�-A���`|�-~W/>6.���\�}���l	�����}�R��.że�"��KA-E�K�b�o]
|�^
zx@����2��{�0O��a��)lX����㝿�|�2��i�{v�m�H����g9���,]�q�\��h^��X��:{9�l9�ݰt��r��i=����z
��k0�W���}��ϧ�`�_�9�Z�w�E��\��]�~�t-����WW�),[�~�q�)+��W�+�w�W?��@����.�C�=��r=ڱ�}̽v��#��W�
�K�
�w]7(�݀v�����J��Vj�s%�)]����T��WB������W��|�Y�q?����J��7+1�]o?��F��1��aלz#������F���	v��7A��{3�e����
�����f�c���7��>���o��
rn�*��U�י�@��B��J}e��۫`�f�~?��=����[`7>p�~��v޴[1o��
:��Vȷq��~Z~�~܆v�ݎ�KnG�#�W�3�e��q�����G���9w�^�ށq�q쵍���;��߹�y𝘿qwbޢwb�NP��N��;A?�	;��;Q߷���x���_�wA>��}�]�ϻ��?U��պ>�rd�j���՟Wآ��(׵�<c5Ƶp5�~+5߾kP�5�?l
�r
캺5_r
�s���ek0�%k0���NX�������U�7�B.��5j�����|M_�K���E�7�E�]zzx-��kk���w�S��<��F;��
>��n�w���7/܍�E�����`F߃v���~��?��{��m�����~�X�:�]�a�����a�*֡�d��뀧��?i���u��`�ߴ�{o��O���u��]�ݴǽ(?�^�kֽO׽��-�xY}/��^ȁw�E�����z��=�A��^�z������z�V������7���`�}�~�}�/w�9��>���t�>����s?��q?�F����G�[��
jwm@��
��
��0O�6`�Wm��ڀ�����
��>��ퟶ�ʂ��?߈�zz#�yu#��ۍ��oT������������/�{��}q����o�P���nŃ�����8�x�a������x�C��a�CBܯ�!����6aU�@���0�)���M��M�&�{��z��F��l�n���i=�m���&��}}}�>��{�����Ð�y|Q����O_����Gп?��7��}7c܌�UnF�I��'{3�݌~,�<�|3��i3�����7��ڂ��A[�+� ��-��������݊8ɾ[!�m^�[�މ[��E[џ۶B�r+�+yzp�G��̣��E�����*?���x����}C;:�!�O�_���c�7�|�>�q���A�3G���џ��@\e���O�_�x���I��1OŸ������$��'Q��)���o��)�vy�s����«��~t�����ݞ�|���w�3�3�g`�}���6蟯o��;x�ʡm���m����h���g�o��,��[��=�ܳ�~�ΰ��|\����Ǘ��u��0��>���y�w��3����C.n}��y����w��x��ߏ|q�^�m|��%؍�/!�w�K�����Ї�_�2�k{x��e��/�^F��
���o���+�s�W0?w�{�W0���>�����
�^�k�d;�[��k��~۷�߮�{���џ����G�
?��WAO�����7_}����k�ׯ���5��z��t����1�o��yL��y��
�#߀���71�7�G��_��&��71�rz�s���!;�����1;П�߁�_r�������z�|��}�&��1�-�_�-��}��-��o��?xr�Go���oC����|ɷQn�۰3nx�<�6�ɷ���AǼ��Ǿ:�|G���w����=o||�绐�Ы�y���׷߅���{�+����0��T����~�|�=����{����Þ������1�������z����
��y����Kx��g<ǴF	��7��3K���ž���IY��	�]A��f��e=�b�'x�|oj��}0�k�W���o<�>��=ob�vD��Sm�~C	�����������{�u!���=�y�)A\�/���v���5�����j�c�n�j�v*Ӵ}4OW	x����΋Y.����
޿��CK G�2>5�+�Ϋ,#���w�>�d�ﻕ`>%?=��>I�.Ҽ���jz��/4�9�L��i+C}c�ݿ����
�T������V��7G���}��=�C��Y�{�������ó�a}��c�>�~�J�s?Op�
%�K��O(O��1�}��og�K�x����\�ƶ���5��g�s'����`���o��Q:9n���>�[�7��N���<�zn�S��L��[Ȳ���Bx���$���B��̣�]����u�&�|%����nj7��E��mb�?�W]��C,{�I�}J����_
�3ߠ�%��?�D�l	b`��'��8d^�Y5�޳�?̿��Q	d��ZO9��Xw������M�2^���#ޜ��l�]L����r��F����=���G���y]hLWy4Ki���/��~�	�S�X�{�	�,�K �
��>�C�+:��2�~[9>E�~�t�yF����cB�6�
ȼF��r��/)��me�|�P��7���X~Q�'K��_'��>�_5�܏��kK�����譳	��<+	�^�zK�w��־�U��}�w5���=K�O��L�=\�rև���x�c���3���[�W�v��1�
�߉Tg�7Ol�������$8M�>��ޟb�⯭��[���8���'�=���.�~D��WM�3�7�N��rJ��1H�{���A%��ٮ�
�!�9e�S=�����ۼ����)�����kB��o��N�|dې��
�9�G���Hy���w(�9֯�ޑ��ߋ�s�xh�:��G�O5�Ea�~;����g�����B��zx=�z�o�&�}	b��߼J�o0}��*�]V{���S�W�{����X��N��
��>�٬KBx��}=��>���\��^S��a�H�e���i�s��7�
��ϼ�d��ߐ���z^���-��q�}���b!õ/�X~� �p��}�e$V�v���	���ۨߗ�l��ߕH(P|�J���	�wTvw�������z�����a���6�����(��6�W(��ļo����y��4�]V�/��D�7�M��컲c�O�O)}5�>��ΰ�W����I��b����~O�>g��u�H���5ڟ��k�i��P_w���p|�~¿<��~���E�k(�P�+
����V�˸<�~���e.e]�y�'~��w92H���ݡ���Wh�C��"�>��}>�m��j��3������n�l^G	�����e�b>��!�~���蹽|�2����������7�;ϧ��yO�|sCe�g]�:^�� ���,XW1������M��9��g������+��,Ә�sdz.��}��o,��`���V�c��N.�A���T.kO���Q'�G׬���Sn�I�K[<a�)'kfl+f�&�H^jW&��S�3N.�?H]��n��1¢��jʥ�N&k�9�\r�`k�y��}iMƳ�ef��9v��q����6���Ct���莚���N;��4��@׌�Y+�p�6'c��B�Q���i��#��lMX�9�G��1+����RcD�Z�͚ьՕ�c�Gnň�g��@w�1"=�!a[�mZ���NXQ��v�4�D�銧�ͨ��D*�ȇV�=�J����S��Q2��l�Q���D�����iϵ�4%1���N�-N&֐�]���R.WHmw8�7B���k��!�Z,������9K���Ks.��0	f�5]���h�i�=�IN:O���1*�Pc��b��l7�4
f*Q�Yk��.�u�����Lj�̚~�RQ;�?�Mv6K��̄�i�`N����u�ٶ����<��n�A���
*ePf����5�픝��fSB��e�T5ќ����T֕WFQ�������GH��Y��JcX�u6�a6�Q��lpܬk��cDF�%k�^eN�k&�.�'a��l3M�K�S� �*��$ͨ�!$�L+�%�&��8IL<c�f�"t����vʹM�C�Jg�X.J쒊�GG,�R�{%��sV*�v3g�Y':����9�4�����9;�M�F����{�v�-������l�ie��N�_�2c�1�ޘKPՔ�!�J�<IXO�$-�u+��6'��3D[�;�t��hx�NVB	�M��i���	�4��U�DzTH�%b�|���[��0�i��-75F��̻�gf]�r+��*�$K[�(bRc-���U�ԥ�I1��\� ���oV0�忱�S�y�4�4k2��j�A#'
c4Rř�\��"fs.�b���u��<����� m[LÊ8��v^�K��Iv�,v����p1���sZEe�9�/�@
�if�{��$v/�����&��I�+�s��h"G�W^&�S$>�q�&E]�Rk���w�(�N�$��T6�$B���Z��ݎ�Qu�� 3�RJ+?$LpZ	S��0��D����5V55�,y��fu�I#G�?M�$aIh����L�Q���9��9!�A�D%�I�\����E��R)�w�k�H����ē�z�\�5q��ߢ\H�8`0��a:deK�4\X2bVe2��F��������E�a�nj��&	�$P_dL,�
&9�t�Ș#��14!m�\"���F@���wW+�Q��	�S^5�'-Sn��=Q���V�nS���Rl �Ӥ�9���"J�����~�~X,p��c���4i.���8L�n�"�Z�K�ǘ��͐�e��R��)o�Y�v�~s?�]/��>�ECt���<~������8������ޫ�Ge�Y��k���qg��0�
p�K�K'<��VXVT�X;!�^LVDۥ��x�%�hX�ٌ�e��V:�`ۓQ1bp|���bm	Ґ�G��W���q����<y$T�����)��du[ib��b�4A},�s)��c0�B��H6m&�J�Μ�m�YI�{n�'Y8�;�)��D������UD���+ٯ
͊��IJdVJIV��dz0�XTQ,dLT�OŦ�I�+�v��5ks��1iV�N�M�j?HOgV��b��iyK.��:V�{-+RS��E��Yȳ��ER�"I�b����$�%ƚQI��o<�8keS�^
�L�XF�ݚk7kٓ𞉜+�����l�	���~r}�l�x�6N=!<��
�x'OY``�_�t���%6����F�}�dz����M����A|��t�f:�
�-���š����m�{����N4.į>A7�p�iNZL�	�H�
�,��<��6���[;K����B~��p%�%CU�p�4*�.��G����c���b�6 �����]6H�k�@�Z.�V�d�e৕�+��dE�M�W)
��.U�\e�n���H��	�*�ud����b�"@
� X���/��>5:�����L�k
S�G(oQ�(�/�7�H���½5��j���b��vr\3Y��s{>.�'�9��NYIb1���.���|
� @SL�vRh#�K�J��)˽�"��o�䴧��(�R�{������^�Υ�&p_?u	S�%%K=�J1�	��H&����J�
HC�$�K��!DBR4�c�J�)e������� ��GDL��~FU�J�*+K�o���4��&�
E��?"���f.A.P�Y���4�U4;�J	;�L�Qc]��4[‰�Ħ�uC��Eܥ��?N.�Ʃ\����FшWs���B2�9�yP�c��d����a	)�"��\���JNH>Nꨝt7kP�~h1�����Ԓ�jJ�BQ��f G�Ֆ��P��3�[�βT��b�;[.U�`��b�H��ye���<��v�/sy^o����%9����H5�>a��%�K��R(��E~��	����7�$��fa_��Y�8�.��E���Bć�X�;�96��s�nv8�KA}��X,0��H��M4��P%��p�@�(G
J��e�U !�|
u�]�B"H�51���X�D��,3�
F{	�X�4�tN�@�)Q
��v�F�<T�F�'�G�����{�=;�_:��-"�c
�_a)��2/���
�p��=�E\>)�!���P�]��s)R��3��*�f�;�q6��Im dK��e�����$� ��-c��
�q����yi��3�����1	���HM�1��.B�����bl�?a��r�aK��K���		,��)����j�h�Xr��d�c��e�(�̗�d��Xe$�D5�Qcn��a�tu|.Y��(I.�%�E�����C�E�O�PMƆ0��f��礰#A��8�guoD�+�8���H��Z���b"]wю���VĨ9������u��8���˨����BC��u�*I�)J;i�}�qn�U�c�4�J/*F�2<91y�s�U�:`Y��q���6F�["�<[�B�T4�/����qHԂ�&u���$8�~���G�E��#4?8�Y�⼾����qC�И��:�4?��M�FV��d±P�HHP�#J�P/�9�x�g\���1ċUd�is��2��f-	rCU��K�'oTXƈ�K;�0�“#v^e����T�)�^&R�ʶ�&�"P�G7#��O�v��'����.�jc����2S�d+/M��D�02�����o�J����v�g�|�T'kI��
O�]
��xUR3[��\
˨<�������A&X���i�iŗ�F��xs��W�^�T�`��V�1�f}uu��ɋ�����N��'kP��.'� s�&����Ip�H�|��b6��I�A�#Md���A�ec��\W��|��[8^ψW��䝓7�.��.L�5N}�2�[�dq�N��a'��`�E�Aқ��%Ӏ)S'�$�����F��
<:�*�#	���(�z�^�(���4;ϲ�F�";$쟰E�c�!l0&x���)Eb4!�5)XG�CJX�h�8����0��D��bM�l ?�T����1�/���k�Vš�-K���|c�ɤ=��* ������t�Yo%)�";Nm�+���V�u��sIz�ټo=�:Y˯Փ��� J�6���"�$AJ�3~y_eh'��Z�,~�9�T�G�}�G�I��P�0�`)�B�Fm�仇5�����`��N2M#h��w���eBŦp=�̜\{�g&ÉH_٩(�6Ƚ凘��y���c��x��,�T3K"?Iwdx���1��j�f��I�1����T���VJ$M�2���.<��� ��cx�ns4��6Y2����##ZG557�׍��*�f�=Y���6p���R�=Q[G�ɘ�fw��%�b��ȸ� ���Xɺ�������z��L}S�ո��Y�<I� ������1j�#��B��s�D�e̘�;,/Iֱ&�X��`��y�� ;����Ɠ�qo�Aޘ(��5�Md'׈�ArO���H�t�D
o�1k��or�)"�*DH�*C���<;�@	�*��	�{�V̜6]ϋC�'YN�J�BHEv*e�$T�����b� k��U0��H������ւ�N��-����
��;�z|��P�P?�y�Ǿ@�i'�5�ю��-��Q�34ə�f��wX�p���!&BB4A���JvY��5n�,��
�eD�"�� 8?�k"�A���g
l�@c�hc¤�fst�9��f�*���~�Y�<���l�m�74��T�7���5E�	V��I9l�ɥ�%�k�^L����j-�k���ɲ��Y�@^�3 <Lq����#�p5Av�V�9�<��ԍ:Y�X_�@��	��
<Ԩ�o��j*<0܃�� ���仩b:��G�:��5�
��#;Y�P�{��'�d�	�p\0r��2'�ZZ��k���[yd�D���,����i+��X�$\�H���1��U	?r�~_�
���<*/�dB���ٲ羆�dg�(V��Ot'��$C���^����/\�����o.+6���E�ѭ/\$�o*�o� �˨�3t9��/�׸/��T�}H��R�2Ϙ��_�6t5Z�l!,��=�a��]��Ɯ�-���7E5���1/��
"��4�0�L^(��@,����a%�ۊ�:-��Bf�8vY��H�%'E`.�t��ʥeH���� 5�k�%yӓ�S1f'�L� ��q]$BY�wp���fY'	�%2���e��l2�b��"�}oç���vP7oQ�MC� \��N90J%�W8:~�(�o�4��V��/�CSoO��J�s�t.+�`�(&[HG	���l�-���h�-��X�Dl�R���>�8��^Q��Gg�v+�:�+�E��_"_�ʂp��PD�?�8��p�W���CwӃ{,�餪}�~^)��	�	N,�������$�-뫖;��A6'�]��KC^��Oͳflo=P�F�T��eE��س.-��a�:)=��1��{������X�
��B�	9ܐ�E���C��e����Qݬ�l�5x��o�0�2�̪)5����&��Ȗ�c�J�mg���[��9��*��W��)�FN����K"Q���t����'�U/M���y[.x�~"�@/E��Jw�g&�/�
�0xS<�s`����!B�s�I��-�q�P����6�4�~`w���A=z#��w�˘�w�ܝW��@�W�Jæ%�#R�H��\��5�%�˱|�$�^��w�#qtw$��*�vЄ`ߕ&�s��
AG����y���/���\��9�[ކ���6Pi�9�_���H�١�>q��,3�H{DW�ᎆ�����W�}Ʌ5���=�%�L����;@�#�#|���H�Y�\�x�-��
K~Ѷx��,�~���2	�c�)����ob�Zb��������~F��-3|��5��e�]{�͡Æ
��
8��E(/Z�?F¶�a�K�-�Ѱ`z�#�P�5�&�EUҙ��e���d��E���N���sʙl�,�w�>�`	S�-���Gom���
.��s�@��zY�o����j��tCD^����:��ŜБ ]9n��c��$���0�k>-!-_�7K9!��� �.��G�4
��CC��N�q�х;���IX�����ȵ�y^�g[gl?.F5c����^vG5�~�0���X9���8Jm�5C>�y�b,��Ю��\ʬ�5`y�"IE�単 G��Fu$����-`�b��tp��1���U�F�Ժ��)É��$�rI;�
��?b4�Q�S%.^B�h��`h�ecF#L"�)�L�E�RpP��@���y.���a��@pp�s���ͥ�o@d��Q�(�L�ؗY�i�L���-�B����,PB�.j��	���S��1եloOg��te�N�䠂�R5��Yy�
NFvy�6�j�"?��?F����;��g�#!8��c�7�j|�2���µ�'m���B����� ���������R��]�d�8��ms������
���˩?�����{�MX���\"`iR|,B�E� ����C�	Sގ�.�J�^��la����b��-iAdQ��s�T�IF�UP��,繪f3W��}ޜ�N�r(f�4e���:�&�h:���-�"\}<���j��YB�:n��}4V�jv�G�]�Z
��5E��Ik�f(�@$���N�a�[^j����s4�$m�a3>D2�W8|���
����Ry����cᚼÈ��@#\�+|$�O�5���O'�)�ce5!�9+W!���3�Yқ���!����j4�ǜ�.ؤ(g�7�ByP��q�@��/űF�O��Q�I�>���[T�b��1n>�l��KU�V���5鮐:0:�U��I�;����J̐�cҌ�m�kʨ_e��7��Vx�ҫ�'*�@�xfwhW�?��~��O�Ca�;�d�[������P�V��,�_�P���%��j+�٩Ŵ���?���n?���J���w����F��7����ڳ��;��k�Ay(4��}��A�lwS��7"J�!G��/�{7+��
e��p�7e����&�o[sP���ӆ5���&�E�#X��7O��Y'ġ�ر�V��l��:I%��� �
骻�
`��y:ex[ƒ�4	�j��$}+d�n�C�,����5w��LM���6d'�M�Xi��G����5
yQ)1�	I�
��+8�/�w�GDj��?Ǵ�.��ɞ
9��oCX�&�IX�ś��c7c;����@�l�ƿ�:�Z�v?<�{O2��Jc��IUM�3�����N(�!�D(���:92�XQ޶Z>� ,��d�;o���0�Pc�W|��:���2���P<��	j�%%���C���V���e���8)al��턽Y��ټ]��7��F�n�������PO䘼cO�|<��	W��>�,�!$J��`���Y{FF��1�\��R�^Ȫ�B�40Уzv>1�qR�^�k�[	��b�dELo�,�Q�Ҏ����Eo�v�4o�����X�IPx͡
��i̳�y�{t>�^��leS�F����ҝ(17�[)�0�ۼ}�7ˡ�\�]�V;́u���I��5M5�U��8C��G��I�J�J�nh7.�PҶp~�,��\^WQUiNj�jl2��j�r	�6�&�籑8�~e�JF28̉q��Ky�� 	h�"6!ˇ�{��vw5�צXs��'�
W�E_�d�
M"K8Sq�FN��}�Z��Y���9���#�ǽN�-WO;�C͋���O��^jŮc��n�Z�7�QY	�Cj�:s����M��\�\�R���2`�cA*�B;%Gi�w
��5|N�	�{D�wȷö:���?�$��e��ݑ��GT��Jl��
iM���R����jBT$�}��R�&(.z����`Tp���f�C���/��Pa�F�J�µa����ZF���\kr������_�U+�:�+λ�~�9vw����\�.�)�&W5Nm[S7��~���dţϿgx \Bϖ{K�rV�G8[�k���I2=�4}�^�
��Wc�W��
	ٌ^j��μ,R��S��&(_)�Zc�!F !�*)��-�ћ��x�L��u�c��d/�����51LF��\��eF�]�
�އ*�
�p�X��6{A~ٸ,1��6F����rr��"D�oM8Q���	6W�ޭ48���X�N�B�H�^��Æg��!F�n�NZ��tKC;%qd+�Q.��"V=�����8\V*����tj�⌳J(ƣ;��=N�Q=���CT7���2��2�RF#��
�syE	��fG�#�]�XXg��B�d}Ha�c���;6x��Â/L�/R�yHey����bQ]>+��L�i��'��3M"ͭ��@Wn�>�z��'N���D١�&�f9!�����܍f�*��
�mJ�z�����
Bz�6�ijcs��N�9�hT,l��n��u
ID�mI�z�$��5����@YY��^Y��Dlљ�����)�c��ZX�śIo���z3�1	���"~�"����@Y�I)����x�[��
Xa� (0	{^Y}y�n!��_��魉O,�F��m��O�� _Ԉ�aEة��sl;]f�.;?�$GT5�ri������0ɻ@L<8,<�-͖�@/��O��$E2�0Fp�ː�T������NU��B*��!?��_|�M=c�$#FKyciu�-�_�W�&;������N6�ek��)|�$ V�+s4�e�]ʤ(Y:.��� ���h|�0l��k7%��Tܬ6�K'�b|�y�6�Ŀ��o�0�;�n�p�+p�D��uUL�D�}�V�>}�,��
��D��YL�a�nL0B�γ3S�\��H���AA�'�����?aQ�R�o��	�|
��o�aM���A������{�%��qD�e����.u���˖��d!���O���s�n6�F�S �����.������i�"�yIy�����p&�WEky����{��!7���
��_��������Mî�R�`�s�����>*��G�	���ዊxYMK;�ٴ;|�ம���4k�~���s�,�X�k	�9..d�oBŐ!��5�6d�$�>���!����@
�e�&�2��f�!G�
V6d�9d���~ء?B}'�L�*S�7�<$2���|Vƫ��I���&^����'�9���lX��c�mv��*EA�nk�g�6$H'�
PrsRiyuG=���Ȕ�o�y�Q}���e
|�䘄��h��D�D�����о�V�=G�Nf���I}2oU+���o�%��:��%S�@6����A}�7{o��R7{�ś��7{������7{�ś���7{�ś��7{o�.��]�ٻx�w�f����_�fo�x�w�f����ś��7{o�.��]�ٻx���ޛ������W{�竽ݿ���n�j�������ū��W{���_p��[���_J�W{�ū��W{��.^�Oq�����jo�x�w�j�kW{�ū��W{���������jo�����^��vwv��[p���E��v�.W{����n�j����ū�������v��[���6�w{�.��]x�����w�7U��p���7���~�����������-��O|�����v�w{�3���?����.��]���z��[�ۻx�w�n�/����}���?w��Y�ܻx�w�r�����˽��{/�.^�]���ro�x��?���n�r����r��[�ܻx�w�r�����˽��{�O]��/��o��?PKB�}T[f}�A/V��litespeed-cache-en_AU.poUT�VCbux����PKB�}TʉJ@����Blitespeed-cache-en_AU.moUT�VCbux����PK�q����<'�\Nphqh(yh�h2�h�h�h	i
i
i$i1iGi]i	fipi	yi�im�ij
jj#j32jhfj�j�jNk8^k=�k"�k7�k0lH4l}l�l�l�l�l'�l
�l	
mmm%/mUm|[mF�mn%.n	Tn"^n�nP�n�nToZVo>�ou�ofp4op-�p/�pLq2OqI�q�q�q�q#�qrQ,rO~r�rs�rEXsP�s0�s' tHt_tyt�t�t�tI�t+�t	*u	4u>u Ju"ku/�u*�u�u
�u�uv�(v4�v��vf�w x8x=xJx
Nx\xix#qx�x�x�x
�x�x�x�x�x	yy-y	DyNydy
uy�y�y�y�y�y�y�y0�y*zUFzW�z�z { 2{(S{|{�{�{��{2|?|KW|P�|	�|�|})}E}^}v}"�}�}"�}�}!~-~M~&m~"�~G�~!�~,!$N+s����'�(9�	b�l�W�����
�1!�%S�2y���
��Áҁ���#�&:�.a�N��*߂/
�:�Y�]y�׃�!���'�
9�G�d�s�{�������ք%�B�
N�!Y�{�4��'Ņ6�$�1�	D�N�b���;��:׆�-�>� Y�"z�����/̇*��<'�7d�����Ĉш
�	�����+�K�_�f�	r�|���������ʉ!���5�N�_����
�����Ŋk�9q���)��݋+��}'���D��8��4�<�;Q����L� U�Kv�8Žq��m�u�������ʏ���
��C5�y�
����H�����6�
:�E�<R�������9ϒ9	�
C�Q�d� t���
��Y��q�y���N���������������ޕ������/�+6�%b�,��s��#)�M�m�������ȗ�6��6�P�l�L��Ә9ߘ:�0T�)�����cL�G��L��WE�����
ƛћ
��� �7� I�j�r�����
��̜8ܜ�3�
N�\�w� ��0��ܝ���#�6�
<�G�V�m��������M�g�z�����
��ǟ	۟�B��:�	>�H�2M�)��Z��,�2�G�-b����ih�IҢ;�YX�K��V��UU�L��l��Be�Y����V��`��J\�g��=�@M�=��̩���#�>�Z�q�
����<������?.�n�������̫���?"�b�y����� ��&�� �D	�N�lZ�ǭӭ�
��������������P�
X�c�|�
����
��/��/��p,�<��
ڱ��
�"�	.�8�cD���Dzز.��
#�.�
C�Q�i�v�h����A��H��	����'�
=�K�
Z�
h�"v�������$ŵ+��#(�L�*e�����
��
ö$ζ��P!�Hr�B��5��74�@l�>��"�=�&M�t�������%ʹ �"�&4�![�}�����Ⱥ$�����"�3�dJ��� Ǽ�/��.)�X�e�x�������ҽ޽����%�C�+F�r�y�������
��ǾӾ߾����%#�I�$^�
����������@��
��%
�3��8����>��!� 6�W�*n� ��2��2� �9�"V�*y�"��"������</�,l�$��
��
����F��1�/6�f�l�
s�.��?��6��;'�1c�3��2��6��03�d�h�k�n�u�����Q��D�
L�#Z�-~�$��?����(�7������%�	2�<�P�e�x�������$����E
�+P�*|�,�����������,�1�
9�
G�$U�!z�����������$�4�:�A�J�\�Rr�c��2)�?\�
������<��5�SR�C��5�� �p@����K5�O��'�����E����������;��07�Mh���p��|>�/��&��&�)9�7c�4������
����-�
<�J�$_����F�Y�q�x���
��������A���!�0�	E�O�_�t�����
������%����0
�;�IM���$��D��@�9Z�1����8��a�n�~�����������+��
��#&�=J���
����Q��+!�M�]�o���������������.�F�d�y�{��;�H�a�4w���������
���A�SX�	������!����+�:�I�]�+{�&��B���(�E�Y`���$��2��&�8�IM�
��������
����:��4�R�Z�x�.����d���4�MI�f��$��X#�Q|�7��+�2�gL�������Q��P�0\�P��^��m=�	����������9�vI�}��(>�g���>����U��3�NG�Y�������
�,�&I�p�#u���9��8��
�0'�VX�_��C�GS�a��8��46�/k�7��6��7
�-B�)p�L��*��)�-<�(j�,��.��K��?;�?{�H��<�3A�u�R|�������
�"�*�C�2H�{�(��5����
� �$�*�e.�-���/�M��hH���]�=/�8m�[��c�Cf�j��z�A��q��D�`�'7�q_��H�W:�O��>�!�:�KR�����E�1�-:�Mh�Y��$)59_O�&�)9:Yt$�X�1L~A�&�^�EWU�(�SpJ�(�I�^DA�4�)cD*�0�.32N2�7�Y�*FFq9��
:-Rh;�,�*$1O;�/�(�J
4a
B�
�
N�
QGo�X	/bG�9�1F No�wJ=^�3�NjW����w*6<a1�V�L'*t]��
 $,Qf
w�������/d(�)�������
�
�����@�'%+Q
W
b
p~���:�>�p.���$��-@r_]�50_f(�8�(#Ei$�.�2�r H� � !� � C!FG!
�!�!�!�! �! "#"K+"w""�"�"+�"�"�")#�1#�#�#�# �#
$'$<$M$ee$J�$j%��%M&^&gp&�&R�&ZB'�'�'�'&�''(#-(Q(%`(��(/>)qn)(�)E	*AO*@�*J�*F+.d+Z�+6�+L%,-r,G�,3�,+-H-/h-�-�-)�-Z�-?.N.
W.b.j.~.'�.�.K�.#/,/9/J@/	�/�/�/�/��/20 >0_1Mh1'�1?�12&2	/2
92D2
P2^2#~2�2	�2	�2�2�2~�2
]3	k3u3|36�3p�3&C4*j4S�4M�4H75�5E�5�5_�5J6R6n6%�6�60�6�670797,K7x7��7K8i80�8�83�8.�8\-9�9Y�9z�9Ho:��:E;BN;;�;2�;h<Mi<G�<�<=)=@H=�=Z�=e>h>o�>c�>pX?E�??@(O@*x@&�@�@'�@�@hA/iA�A�A�A2�A$�A>B,XB	�B�B"�B�B��BF�C�Ci�D#:E^EcEpEtE�E
�E)�E�E'�EF
F F
/F=FDF cF�F�F�F%�F�F	GG&G>GOGgGxG�GG�GK�Gd3Hc�H7�H-4I-bI2�I�I
�I�I��I�J�J\�Jd+K�K�K�K6�K'L!7LYL'tL/�L1�L+�L3*M,^M/�M1�M+�MYN,sN+�N,�N4�N+.O(ZO!�O)�O5�O*P0P$@PjeP�P!�PQ<1Q/nQ=�Q�Q
�Q�Q.
R9RNRdRwR-�R;�RcS%dS/�S�S!�Sn�SjT~T"�T�T�T�T'�TU4U<U MU%nU(�U�U9�U_
VmV<|V�VI�V-WGFW�W�W�W�W#�WXPXRmX#�X�X"�X3Y$PYuY�Y;�Y6�YIZD\Z�Z!�Z�Z�Z�Z
[
['[D[,`[�[�[�[�[�[ �[ \0\<\'U\0}\%�\$�\%�\]'7]_]#v]�]�]��]�^K�^	�^@�^),_:V_��_)`N<`=�`
�`%�`U�`�PaBb$Nb_sbC�b�c	�c�c�c�c�c d"d6dMd_dIxd�d�d �d^�d!\e~e'�e�e
�e�eP�e#4gXgmgB�g?�g!h.hFh0\h�h�h`�h}i�i!�iJ�i�ij�j�j�j�jk$k1kGkOklkuk�kE�k!�k1�k�/l&�l*�l%m9mNmfm#}m�mH�m�mn#+n*On`zn�n;�nM#o5qo0�o��oy�pQqtSq[�q$r:rXrdrvr'�r)�r%�r s!s?sRsds(�s�s�sB�s 
t+tHtXtwt'�t.�t�t�tu 5uVu_upu#�u'�u$�u%�u�v+�vw7w!Rwtw�w�w	�w�wL�wxx+x@0x0qxY�x9�x6yRy1oy&�yo�zO8{A�{f�{c1|d�|t�|^o}{�}KJ~d�~��~c�s�J���̀U|�P҂F#�j�����%��(�,
�:�V�s���O����$+�cP���$ͅ�$�#5�#Y�}���W��!���&�:�5R�.��!��Rه,�9���ňވ
������ۊ&���؋� ���/�
K�@Y�@��یn��Fj���&��
��

��
%�{3�+��ێ�@�M�R�a�~�����1��~�p�^x��א	������БB�$�9�J�_�,q�������2ْ8�E�@b�+��.ϓ��$�	B�
L�-Z�����^��F�Y`�@��G��WC�P��$�P�:b�����˗�;�$@�-e�5��+ɘ"��%�!>�/`�,���� �������(���#˛�C�IG�
������̜����)%�O�0b���"��ǝ-ʝ	��%�(�=�B�
\�j��������ڞ.��.+�
Z�h�n�����J���'��� �����i��#�5�1M��4��,ѡD��VC�*��%Ţ6�@"�"c�)��&��ף0�Z�Bu�E����
��l4���5��ܥ��4�N#�Cr�Q��F�IO�8��Hҧ<�X�\�_�a�h�z�'��T¨S�k�0{�6��*�;�$J��o�E
�
P�&^�.��
����׫��*�A�`�.q�"��Vì4�9O�5����ݭ�*�� &�G�P�\�x�(�� ��(Ү6��2�$C�h���������ɯկ�g��p�:��L2������O��<
�_J�K��D��*;��f����_��a�=q����S�Ӷ
ڶ���F�>c�U����t����4�AM�;��8˹[�W`�(�������/�@�O�4l����_B�'��ʼӼ����/�C�X]�����ͽ����
,�:�F�b�o��5��#ɾC�1�YI�"��,ƿJ�K>�I��A��B,�xo����
�+#�O�h�
��3��
����,��X	�b�~�#��e��,�E�_�y���)��+��'�7�M�g�}�(��8������3�T��$-�R�=m�-����������N9�b��
����	�(&�O�h�����&��"��*��3&�IZ���)��#���%��'��D��%�D�Mb����������(�VE�.��������B�F��O�����P�{\�1��i
�kt�H��9)�!c�q����.
�9�OW���D��p�nu����l�|�'��'����?��H����.��#����X��=�eX���R��j(���������'��.#�R�1Z���B��D��&�A7�~y�|��Uu�`��Q,�c~�\��@?�`��a��IC�9��6��b��0a�)��<��/��<)�Af�^��P�TX�O��D��OB���k���$%�J�g��(����1��"��%
�X0� ����������z��?Q���1��q��s>���k��D;�>��q��l1�`��������KF�|�������-a����&�aF�[��_�Jd�#����P��#C�$g�d��=��</�Sl�^��-�+M�0y�C��#��=�@P�m��#��\#�;����^��3.�sb�]�t4�7��_�A�VW�0��R��2�W��5�-G�|u�/�5"�8X���,��5�<�VN�*��W��(�'�B�Mb�\��C
)Q?{:�U�6L,�g�?JX"�^�V%x|i�7_S�?�B+n*t���T�c�:?dz!�k�m�+	1
H3
J|
W�
\0|m�
'5;	L*V�"�����

%
054f?�%�����h+@O
jRx�)���
��
�
����E�I1�{#3E:a#���'��k�>*}i6�F.e.�(�%�45G�}i�+��G�Wv(��"�'�)FfR	����3
>J0a��38S$g��� �|�`l}��K a� Q!uh!"�!o"tq"�"�",	#06#4g#%�#
�#,�#��#9�$�)%+�%X�%IS&G�&R�&K8'5�'X�'1([E(7�(R�(=,)'j)%�)=�)�)*.*fI*�*�*�*�*�*�*<+M+Kk+�+
�+�+Z�+3,
?,J,	S,�],�,����z���B5e������m	�mE�J�Q��rD
��O��e<��u*����~��5�av����M�N�����������Dh��+s�,�o	j1��^KC�>������L�"��J.����Q���a�/1�ZSn_��_\���Y��l��%����_#�/S�������F3����L�'-u;m����>�Rd�Z�s�6hM%��������E*;[�aP_�d��4�U���G��h�f�B]�zL��+uH�B�Y �����Y�7CD)��64.'�&�MUio���-Z���c��I����Q*�&C����!��>�8�9�������(�/%g����0����J�$[\�MKW~j��=�vH�vv�3��1�8����`�kEG��r�������XZ8�%���H�x|=��.�S�y���Ok�{�7����N�w��Kz���9b���PJw
p�<�R��?����}]_�z�--��C,$d��)s]y���LF���6�VD�����n�(Y����?��$�c�x��%}���c�Rt!��Pa}K{���W��`|d����t��B��$X��?�C(�d��m��
T�xT�)�f�j&�=��$�Dq���<��V�QM+��(e�^�g�?*���(�~�{:��l�w��q���k���k[G]Th���qW�����-I�����2�����0�� "�k�������)6��2A��qi�X�b�u!�s�)8E�{B��0����Rpe���+�Y���6�s2:�X^nAi�\:������fV�A@�^��qRg�f����#������]��HG�=��
���� ��|K���T':�����l�[�~�����>.��5 
�����0��1���4t�
�o7PU���t�5\=���O<X����>���72�g
r�@,����hf+����on@~�W9x�G&:����@V��0�!��;��F|��������@o�3�
�u��Hm�A�j������4�Igzbp}������4���O��bn�;�`[�|	p�rt���3��	�7	1�}�y ��xL&��w�#/OSc3���<�W���i�����r�N\�ilQy��a�'�A����8����F#�F�"����������5�E�.!�I���`�
yZ���2`��V"����lIS����b9�c�w�T��U�p;��P��/�v*��j#�9����NJe�"�^NU
,���,�'?{� %s ago Cache the built-in Admin Bar ESI block.%1$s %2$s files left in queue%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdd to BlocklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blocklist items?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatic generation of critical CSS is in the background via a cron-based queue.Automatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are allowlistedBenefits of linking to a QUIC.cloud accountBeta TestBlocklistBlocklistedBlocklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCCSS Per URLCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache WP-AdminCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all Unique CSS files.Cleaned all localized resource entries.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optimizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler disabled list is cleared! All crawlers are set to active! Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDeferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).DelayDelay rendering off-screen HTML elements by its selector.DelayedDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDowngrade not recommended. May cause fatal error due to refactored code.Drop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Elements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blocklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s available for UCSS per page type generation.Filter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must allowlist all %s server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode IPsGuest Mode JS ExcludesGuest Mode User AgentsGuest Mode failed to test.Guest Mode passed testing.Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.Guest Mode testing resultGuest OptimizationHTML Attribute To ReplaceHTML Lazy Load SelectorsHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.How to choose an UCSS allowlist selector?However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.InstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJS error can be found from the developer console of browser by right clicking and choosing Inspect.Join LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLearn more about when this is neededLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed IPs will be considered as Guest Mode visitors.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed User Agents will be considered as Guest Mode visitors.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.Load CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually added to blocklistManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node after checked server load.No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot blocklistedNot enough parameters. Please check if the domain key is set correctlyNoteNote: this option only works when %1$s is %2$s.NotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Online node needs to be redetected.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not allowlisted.Outputs to WordPress debug log.PAYG BalancePHP Constant %s is supported.Page Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please make sure this IP is the correct one for visiting your site.Please read all warnings before enabling this option.Please see %s for more details.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please thoroughly test all items in %s to ensure they function as expected.Please thoroughly test each JS file you add to ensure it functions as expected.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePredefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blocklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended to generate the token from Cloudflare API token template "WordPress".Recommended value: 28800 seconds (8 hours).Redetected nodeRedis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlocklistRemove query strings from internal static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescanned %d images successfully.Rescanned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun %s Queue ManuallyRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe a separate cache copy for mobile visitors.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)TestingThank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The current server is under heavy load.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe selector must exist in the CSS. Parent classes in the HTML will not work.The server will determine if the user is logged in based on the existence of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from %1$s%2$s tab.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option can help to correct the cache vary for certain advanced mobile or tablet visitors.This option enables maximum optimization for Guest Mode visitors.This option is bypassed because %1$s option is %2$s.This option is bypassed due to %s option.This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.This option only works when turning %s on.This option will automatically bypass %s option.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This setting will regenerate crawler list and clear the disabled list!This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google Fonts to establish a connection earlier.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page from the combined file.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.Tweet previewTweet thisUCSS AllowlistUCSS InlineUCSS URI ExcludesURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in %s queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unique CSSUnknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %1$s to bypass UCSS for the pages which page type is %2$s.Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.Use %s API functionality.Use CDN MappingUse ESI for CartUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use external object cache functionality.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.Useful for above-the-fold images causing CLS (a Core Web Vitals metric).UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsView .htaccessVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You don't have enough daily quota left for current service today.You don't have enough quota left for current service this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You need to turn %s on and finish all WebP generation to get maximum result.You need to turn %s on to get maximum result.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %1s quota on %2s will still be in use.Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IPZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.user agentsPO-Revision-Date: 2022-04-17 22:22:22+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0
Language: es
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 hace %s Almacena en la caché el bloque ESI de la barra de administración incluida.%1$s %2$s archivos restantes en la colaPara esta acción se necesita la versión %2$s del plugin %1$s.%d hora%d horas%d minuto%d minutos%d segundosExtensión %sNo se puede leer el archivo %s.No se puede escribir el archivo %s.%s grupo%s grupos%s imagen%s imágenesSe recomienda %s.&nbsp;Si tanto el cron como la ejecución manual se inician en momentos similares, el primero que se inicie tendrá prioridad.(sin guardar)(no-optm)(optm)Ruta del archivo «.htaccess»<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a><a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.<b>Último rastreo:</b> %d elemento(s)<b>Última indexación:</b> %s elemento(s)<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$sHace falta una clave de dominio para usar los servicios online de QUIC.cloud.Un vaciado completo se iniciará cuando WordPress ejecute estos ganchos.Un TTL de 0 implica no cachear.Se guarda una copia de seguridad de cada imagen antes de optimizarla.APIAcelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente).ActivarAñadir tamaños que faltanAñadir una nueva URL de la CDNAñadir una cookie nueva para simularAñadir a la lista negraAñade estilos a tus imágenes de carga diferidaSolo la IP del administradorIPs de administradorAvanzadoAjustes avanzadosEl nivel avanzado registrará más detalles.DespuésDespués de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas.Después de que la caché funcione en general, por favor prueba el carrito.Todos los datos transitoriosTodas las categorías son cacheadas por defecto.Todas las páginasTodas las páginas con widget de Entradas recientesTodas las etiquetas son cacheadas por defecto.Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.Ya en la cachéVaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario.Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separarAñade la cadena de consulta %s a los recursos para evitar esta acción.Clave del dominio solicitada correctamente. Por favor, espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress.Aprobado¿Seguro que quieres borrar todos los elementos de la lista negra?¿Está seguro de destruir todas las imágenes optimizadas?¿Seguro que quieres vaciar todos los nodos cloud?¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?¿Seguro que quieres restablecer los ajustes a los valores por defecto?Archivo del AutorBorradores automáticosCron de obtención automáticaReglas de vaciado automático para publicación y actualizaciónCron de petición automáticaGenera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.La generación automática de CSS único está en segundo plano a través de una cola basada en cron.Actualizar automáticamenteActivar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.Solicitar automáticamente la optimización mediante un trabajo cron.La lista de avatares está en la cola esperando ser actualizadaRuta del .htaccess de la administraciónControl de heartbeat de la administraciónTTL de heartbeat de la administraciónBásicoMarcador de posición de imagen básicaAntesAntes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blancaBeneficios de enlazar con una cuenta QUIC.cloudPruebas betaLista negraEn lista negraEn la lista negra debido a que no se puede cachearTanto %1$s como %2$s son aceptables.Pueden utilizarse tanto URLs completas como cadenas parciales.Se pueden usa cadenas parciales y completas.NavegadorCaché del navegadorAjustes de la caché del navegadorTTL caché de navegadorEl cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.Por defecto, se utilizará un marcador de posición de imagen gris %s.Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente.Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien.Saltadas %1$s imágenes duplicadas.CCSSCCSS por URLCDNAncho de banda de la CDNAjustes de CDNURL de CDNURL de la CDN a utilizar. Por ejemplo, %sCombinar CSSCombinación de CSS externo e integradoExcluir CSSMinificar CSSAjustes de CSSCaché CSS/JSCachéCachear barra de administradorCachear formulario de comentarioCachear comentaristasAjustes de control de cachéAcierto de cachéCachear usuarios con sesión iniciadaCachear página de accesoFallo de cachéCache móvilCachear recursos de PHPCachear API RESTEstadísticas de cachéEstado de cachéCaché de WP-AdminCachear favicon.icoCachear peticiones realizadas por llamadas de la API REST de WordPress.Almacena en la caché el bloque ESI del formulario de comentarios incluido.Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias.Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias.Calcular el espacio en disco de las copias de seguridadCalcular almacenamiento original de imágenesCopias de seguridad calculadas correctamente.No se puede crear el directorio: %1$s. Error: %2$sCancelarCategoríaAjuste cambiado con éxito.Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración.Comprobar estadoComprobar mi IP pública desdeMarca esta opción para usar la configuración del sitio principal para todos los subsitios.Marcar esta opción forzará a la página de tienda a usar el ajuste de TTL de la página principal.Limpiar todoVaciar el mapa del rastreadorLimpiar datos no finalizadosBorrar todos los borradores guardados automáticamenteBorrar todas las revisiones de entradasBorrar todos los comentarios spamLimpieza completa exitosa.Borrar todos los trackbacks y pingbacksBorrar todas las opciones de datos transitoriosLimpieza de todos los datos transitorios exitosa.Borrar todos los comentarios en la papeleraBorrar todas las entradas y páginas en la papeleraLimpieza de borradores automáticos exitosa.Borrar opciones de datos transitorios expiradosLimpieza de datos transitorios expirados exitosa.Limpieza de revisiones de entradas exitosa.Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisionesLimpieza de comentarios no deseados exitosa.Limpieza de trackbacks y pingbacks exitosa.Limpieza de comentarios en papelera exitosa.Limpieza de páginas y entradas en papelera exitosa.Limpiados todos los archivos CSS críticos.Vaciados todos los archivos de Gravatar.Vaciados todos los archivos LQIP.Limpiados todos los archivos CSS únicos.Limpiadas todas las entradas de recursos localizados.Datos incompletos limpiados correctamente.Vaciar registroPurgadas %1$s imágenes no válidas.Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>.Haz clic aquí para cambiarlo.Haz clic aquí para configurarlo.Haz clic aquí para los ajustesHaz clic para borrar todos los nodos para volver a detectar.Haz clic para cambiar a la versión optimizada.Haz clic para cambiar a la versión original (no optimizada).Error de la nubeCloudflareAPI de CloudflareLa API de Cloudflare está configurada en off.Caché de CloudflareDominio de CloudflareZona de CloudflareColapsar cadenas de peticionesCombina archivos CSS y código CSS integrado.Combina todos los archivos JS locales en un único archivo.Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. Comunicado con éxito con Cloudflare.¡Felicidades! Tu archivo ya ha sido optimizado¡Felicidades, todas reunidos!¡Felicidades, todas solicitadas!¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia.Prueba de conexiónConvertir a InnoDBConvertido a InnoDB correctamente.Nombre de la cookieSimulación de cookieValores de la cookieNo se ha podido encontrar %1$s en %2$s.Intervalo de indexaciónCrawlerCron del CrawlerAjustes generales del rastreadorAjustes de simulación del rastreadorAjustes de mapa del sitio del rastreadorEstado del rastreadorRastreador desactivado por el administrador del servidor.¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos!Rastreador(es)Los rastreadores no se pueden ejecutar de forma concurrente.Crear versiones WebPCrear una entrada, asegurarse que la página principal está actualizada.Creado con ❤️ por el equipo de LiteSpeed.Los créditos no son suficientes para proceder con la solicitud actual.CSS críticoReglas de CSS críticasNombre del CronContenidos actuales de %sNodos de la nube actual en servicioIPs del servidor en líneaEl servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectar.El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectarlo.El rastreador actual comenzó a lasEl límite actual esLa hora actual del servidor es %s.El rastreo del mapa del sitio actual comenzó a lasEl estado actual es %1$s desde %2$s.El estado actual es %s.Rastreador activoActualmente usando la versión optimizada del archivo WebP.Actualmente usando la versión optimizada del archivo.Actualmente usando la versión original (no optimizada) del archivo WebP.Actualmente usando la versión original (no optimizada) del archivo.Sitemap personalizadoAjustes de optimización de la BDPrefetch DNSControl del prefetch DNSArchivo diarioEscritorioBase de datosOptimizador de base de datosResumen de la base de datosConversor de motor de tabla de base de datosBase de datos a usarDía(s)Nivel de depuraciónRegistro de depuraciónAjustes de depuraciónURIs excluidas de la depuraciónURIs incluidas en la depuraciónPor defectoTTL por defecto del FeedTTL por defecto de la Página PrincipalTTL del código de estado de página por defectoTiempo de vida por defecto del objetoTTL por defecto de la caché privadaTTL por defecto de la caché públicaTTL por defecto de RESTTTL por defecto para objetos cacheados.La ruta por defecto esPuerto por defecto de %1$s es %2$s.Valor por defectoDiferidoAplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals).RetrasoRetraso al mostrar los elementos HTML fuera de la pantalla por su selector.RetrasadoBorrar todas las copias de seguridad de las imágenes originalesDestruir todos los datos de optimizaciónTodos los datos de optimización destruidos correctamente.Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.Modo de desarrolloEl modo de desarrollo se desactivará automáticamente después de tres horas.El modo de desarrollo se desactivará automáticamente en %s.DesactivarDesactivar todas las característicasDesactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor.Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas.DesactivadoArchivo WebP desactivado con éxito.Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.Desactivar esta opción puede afectar negativamente al rendimiento.Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes en QUIC.cloudDescartarIgnorar ese avisoCategorías a no cachearCookies a no cachearGrupos a no cachearCadenas de consulta a no cachearNo cachear perfilesEtiquetas a no cachearURIs a no cachearUser Agents a no cachearNo vaciar las categorías al cambiar la cantidad o estado del inventario.DominioClave del dominioDiscordancia de clave de dominioNo se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado.Quitar dominio del mapa del sitioIgnorar cadenas de consultaArchivos de imagen duplicados ignoradosESINonces de ESIAjustes de ESIESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.Muestra de ESI para desarrolaldoresHeartbeat del editorTTL de heartbeat del editorSe excluirán los elementos con el atributo %s en el código HTML.Se excluirán los elementos con el atributo %s en código html.Dirección de correo electrónicoVaciar la caché enteraVaciar la lista negraActivar la funcionalidad %s de la API de la CDN.Activa cacheActivar ESIActivar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress.Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.ActivadoArchivo WebP activado con éxito.Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.Razón de finalizaciónMotorIntroduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN.Cada minutoEjemploEjemplo de uso:Ejemplos de pruebas incluyen:Excluir rutaAjustes de exclusiónExcluirDatos transitorios expiradosExportarAjustes de exportaciónFallidoFallo al hacer copia de seguridad del archivo %s, cambios cancelados.Fallo al comunicar con CloudflareFallo de comunicación con el servidor QUIC.cloudFallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.¡Fallo al crear la tabla %s! SQL: %s.Error al obtener contenido del archivo %s.Fallo en la solicitud desde WordPressFallo al actualizar.Error al escribir a %s.Uso de la cola rápidaNo se puede escribir el archivo %s.ArchivosDisponible el filtro %s para la generación de UCSS por tipo de página.El filtro %s es compatible.El directorio no existe: %sEl directorio no es escribible: %s.Optimización de visualización de fuentesEn el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado.Por ejemploPor ejemplo, %1$s define un TTL de %2$s segundos para %3$s.Por ejemplo, los %s pueden usarse para un marcador de posición transparente.Por ejemplo, para %s, %s y %s puede utilizarse aquí.Por ejemplo, para %s, %s puede utilizarse aquí.Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.Por ejemplo, si la página de inicio de esta web se encuentra al %1$s, la página de la tienda puede encontrarse al %2$s.Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s.Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor.Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.Forzar URLs en cachéForzar URIs de caché púbicaForzar cronForzar cacheablesPágina de inicioRuta del .htaccess de la parte públicaControl de heartbeat de la parte públicaTTL de heartbeat de la parte públicaRecopilar datos de las imágenes%d recopiladas correctamente.Opciones generalesAjustes generalesGenerar LQIP en segundo planoGenerar el enlace para el usuario actualGenerar UCSSGenerado en %sLos enlaces generados pueden gestionarse en los <a %s>Ajustes</a>.Obténla desde <a %1$s>%2$s</a>.Clave/Token global de la APIGrupos globalesIr al escritorio de QUIC.cloudIr a la lista de pluginsBuenas noticias del servidor QUIC.cloudGoogle reCAPTCHA se omitirá automáticamente.Caché de GravatarCron de la caché de GravatarTTL de la caché de GravatarGrupos cacheados a nivel de red.InvitadoModo de invitadoIP del modo de invitadoExclusiones JS del modo de invitadoAgentes de usuario del modo de invitadoPrueba fallida del modo de invitado.Prueba superada del modo de invitado.El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX.Resultado de la prueba del modo de invitadoOptimización para invitadosAtributo HTML a reemplazarSelectores HTML de carga diferidaMinificar HTMLAjustes HTMLSolo orígenes HTTPSHeartbeatControl de HeartbeatCaché de páginas de alto rendimiento y optimización de sitio de LiteSpeedAciertoPágina de InicioHostCómo solucionar problemas causados por la optimización CSS/JS.¿Cómo elegir un selector de lista blanca UCSS?Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.El htaccess no coincide con la opción de configuración.La regla de Htaccess es: %sYa he dejado una valoración¡Si %1$s es %2$s entonces debe completarse %3$s!Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.Si no, por favor verifica el ajuste en la <a href="%1$s">pestaña Avanzado</a>.Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo».Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>.Si esto se fija en un número inferior a 30, los feeds no serán cacheados.Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.Si utilizas varios dominios para un sitio y tienes varios dominios en el mapa del sitio, mantén esta opción APAGADA para que el rastreador sepa cómo rastrear cada dominio.Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.Si no quieres la aceleración de litespeed, puedes desactivar este plugin.Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.Los iframes con estos nombres de clase padres no se cargarán de forma diferida.Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)Grupos de imágenes preparadosInformación de imágenesOptimización de imágenesAjustes de optimización de imágenesResumen de la optimización de imágenesTamaños del grupo de imágenes en miniaturaReemplazo de imágenes WebPFaltan archivos de imágenesImágenes recuperadasImágenes solicitadasLas imágenes que contengan estos nombres de clases no tendrán carga diferida.Errores al obtener imágenesErrores al descargar imágenesImágenes fallidas con otros erroresLas imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.Imágenes no solicitadasImágenes que aún no se han reunidoImágenes aún no solicitadasImágenes notificadas para descargarImágenes optimizadas y descargadasImágenes optimizadas anteriormenteImágenes solicitadasTotal imágenesLas imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.Imágenes con metadatos erróneosImportarImportar / ExportarAjustes de importaciónImportación fallida debido a un error en el archivo.Importado con éxito el archivo de ajustes %s.Mejorar compatibilidad HTTP/HTTPSMejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)Mejorado porPara evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s.Incluir CSSIncluir tipos de archivoIncluir imágenesIncluir JSIncluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.Directorios incluidosBiblioteca de CSS integrado asíncronoUCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala.InstalarInstalar %sInstalar la seguridad de DoLoginInstalar ahoraClic instantáneoIntervalo entre ejecucionesIP no válidaCookie de acceso no válida. Encontrados caracteres no válidos.Cookie de acceso no válida. Por favor, comprueba el archivo %s.Regla de reescritura no válidaRecomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero.Se convertirá en un marcador de posición SVG base64 sobre la marcha.Combinar JSCombinación de JS externo e integradoDiferir JSExclusiones de diferido de JSExcluir JSMinificar JSAjustes de JSEl error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar.Únete a la comunidad de Slack de LiteSpeedÚnete a nuestro SlackÚnete a la comunidad %s.Mantén esto apagado para usar marcadores de posición de color.LQIPCaché de LQIPGenerador de LQIP en la nubeExclusiones de LQIPDimensiones mínimas de LQIPCalidad de LQIPVista previa de la imagen LQIP para el tamaño %sNo se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.LSCache¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.Mayor queÚltima lecturaÚltima peticiónÚltimo cálculoHora de la última ejecución completa para todos los rastreadoresÚltima exportaciónÚltimo generadoÚltima importaciónÚltimo intervaloÚltima descarga iniciada por cron a las %s.Última ejecuciónÚltimo pedidoÚltimo coste solicitadoExclusiones de carga diferida de clases de iframesExclusiones de carga diferida de clases padre de iframesRetrasar la carga de iframesExclusión de nombres de clases para carga diferida de imágenesExclusiones de carga retrasada de imágenesExclusiones de carga diferida de clases padresRetrasar la carga de imágenesExclusión de URIs de carga diferidaLeer másAprender másAprende más sobre cuándo esto es necesario Enlace a QUIC.cloudLista de User Agents móvilesLista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.Lista el selector CSS cuyo estilo debería siempre contenerse en UCSS.Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán.Las IP listadas serán consideradas visitantes en modo invitado.Los archivos JS listados o el código JS integrado no serán diferidos.Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán.Los archivos JS listados o el código JS integrado no serán optimizados por %s.Las URI listadas no generarán UCSS.Los agentes de usuario listados serán considerados visitantes en modo invitado.Las imágenes listadas no se cargarán de forma retrasada.LiteSpeed CacheCDN de la caché de LiteSpeedCrawler de LiteSpeed CacheEscritorio de LiteSpeed CacheOptimización de la base de datos de la caché de LiteSpeedAjustes generales de LiteSpeed CacheOptimización de imágenes de LiteSpeed CacheAjustes de la caché de la red de caché de LiteSpeedOptimización de página de LiteSpeed CacheVaciar toda la caché de LiteSpeedConfiguración de Caché de LiteSpeedCaja de herramientas de LiteSpeedVer el archivo «.htaccess» de LiteSpeed Cache¡El plugin LiteSpeed Cache está instalado!LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS.Cron del rastreador de LiteSpeedOptimización de LiteSpeedInforme de LiteSpeedLiteSpeed TechnologiesActualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración.Cargar CSS asíncronamenteCargar Google Fonts asíncronamenteDeferir carga de JSCargar iframes sólo cuando entran en la ventana de visualización.Cargar las imágenes sólo cuando entran en la ventana de visualización.LocalizaciónArchivos de idiomasAjustes de localizaciónRecursos localizadosLocalizar recursos externos.Recursos localizadosRegistrar cookiesLímite de tamaño de archivo de registroVista de registrosRegistra los valores solicitados de las cookies.Cookie de accesoMarcador de imagen de baja calidadMBDEBE SER DIFERENTE DE OTRAS APLICACIONES WEB.GestionarAñadido manualmente a la lista negraEjecutar manualmenteMapaMarcar esta página como Valor máximoPuede que más tardeQuizás más tardeExclusiones de mediosAjustes de mediosMensaje del servidor QUIC.cloudMétodoMinimiza archivos CSS y código CSS integrado.Minificar contenido HTML.Minimiza archivos JS y códigos JS integrados.Valor mínimoFalloReglas de agente móvilArchivo mensualMásAquí se puede encontrar más información sobre los comandos disponibles.Más ajustesMás ajustes disponibles en el menú %sNOTANOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %1$s.AVISOAVISO:AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.Escritorio de redHabilitar caché de red¡Nueva versión para desarrolladores disponible!¡Nueva versión disponible!La nueva versión de desarrollo %s está disponible.La nueva versión %s está disponible ahora.Próximo tiempo de solicitud disponible: <code>Después de %s</code>No hay ningún nodo de la nube disponible después de comprobar la carga del servidor.No hay ningún nodo de la nube disponible.No hay disponible una zona CloudflareNo existe una copia de seguridad del archivo original.No existe una copia de seguridad del archivo WebP no optimizado.No hay servicios de la nube en usoArchivo meta del crawler aún no generadoNo se ha reunido ninguna imagen nueva.Sin optimizaciónEspacios no permitidos y sensible a mayúsculas.El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual.No se ha encontrado ninguna imagen válida en la petición actual.No se ha analizado ningún mapa del sitio válido para el rastreador.No cacheableNo disponibleNo está en la lista negraNo hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamenteNotaNota: esta opción solo funciona cuando %1$s es %2$s.NotasNotaAvisosAvisado a Cloudflare el vaciado completo con éxito.Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed el vaciado de todas las entradas de LSCache.Solicitado el vaciado de todas las páginas al servidor web LiteSpeed.Solicitado el vaciado de las páginas de error al servidor web LiteSpeed.Solicitado el vaciado de todo al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed el vaciado de la página de inicio.Solicitado el vaciado de la lista al servidor web LiteSpeed.OFFONOObjetoCaché de objetosAjustes de la caché de objetosLa caché de objetos no está activada.Una vez guardado, coincidirá con la lista actual y se completará automáticamente.Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificadoUna por línea.El nodo online tiene que volver a ser detectado.Solo los atributos aquí listados serán reemplazados.Solo disponible cuando está instalado %s.Solo los archivos en estos directorios apuntarán a la CDN.Solo registra las páginas listadas.Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios.Solo pulsar el botón si la tarea cron de descarga está desactivada.Caché opcodeLa caché opcache no está habilitada.Marca esto si eres un usuario de OpenLiteSpeedOperaciónEstado de optimizaciónResumen de optimizaciónHerramientas de optimizaciónOptimiza la entrega de CSS.Optimizar sin pérdidaOptimizar imágenes originalesOptimizar tablasOptimizar todas las tablas en tu base de datosOptimizar solamente para invitadosOptimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.Optimizar imágenes usando compresión sin pérdida.Optimiza las imágenes con nuestro servidor en QUIC.cloudEl archivo WebP optimizado caducado ha sido limpiado.Optimizadas todas las tablas.Nombre de la opciónOpcionalOpcional cuando se usa el token de la API.Las opciones han sido guardadas.OriginalOriginal %sAhorrado un %s del originalURLs originalesArchivo original reducido en %1$s (%2$s)Otras opciones serán ignoradas.Nuestro %s no estaba en la lista blanca.Se muestra en el registro de depuración de WordPress.Balance de pagosEs compatible la contante %s de PHP.Tiempo de carga de la páginaOptimización de páginaPuntuación de PageSpeedPáginasExitosoContraseñaEnlace sin contraseñaLa ruta debe terminar en %sLas rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.Las rutas que contengan estas cadenas no serán cacheadas.Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.Pago por usoEstadísticas pago por usoConexión persistentePor favor, NO compartas con nadie el enlace de acceso sin contraseña anterior.Por favor, activa LiteSpeed Cache en los ajustes del plugin.Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio.Por favor, lee todas las advertencias antes de activar esta opción.Por favor, consulta %s para más detalles.Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema.Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Vaciar todo».Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera.Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera.Por favor, inténtalo después de %1$s para el servicio %2$s.Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la API REST, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda.Por favor, visita la página de <a %s>Información</a> sobre como probar la caché.PuertoID de entradaRevisiones de entradasArchivo de tipo de contenidoLa lista predefinida también se combinará con los ajustes anterioresLa precarga DNS puede reducir la latencia para los visitantes.Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.Conservar los datos EXIF/XMPPulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales.Evita que cargue Google Fonts en todas las páginas.Evita cualquier registro de depuración de las páginas listadas.Evita cualquier carga diferida de las páginas de la lista.Evitar cualquier optimización de las páginas listadas.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.Anteriormente existía en la lista negraPrivadaCaché privadaAciertos de caché privadaURIs cacheadas privadamenteCachés privadasCaché privadaCachear carrito privadamenteCachear carrito privadamente cuando no esté vacío.Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)Intervalo de actualización de productoPúblicaCaché públicaAciertos de caché públicaCachés públicasPull Cron se está ejecutandoDescargar imágenes%d imagen(es) obtenida(s)El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP.VaciarVaciar error %sPurgar las páginas de error %sPurgar todoVaciar todos los ganchosVaciar todo al actualizarVaciar por...Vaciar todoVaciar la página de inicioVaciar listaVaciar páginasAjustes del vaciadoVació de todas las cachés de objetos correctamente.Vaciar todas las cachés de objetosVaciar las categorías solo cuando el estado del inventario cambie.Vaciar la categoría %sVaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.Vaciar páginas por ID de entrada.Vaciar páginas por URL completa o relativa.Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.Vaciar productos y categorías solo cuando cambie el estado del inventario.Vaciar los productos con los cambios de cantidad o estado del inventario.Vaciar los productos solo cuando cambie el estado del inventario.Vaciar la etiqueta %sVacía las entradas de caché de LiteSpeed creadas por este pluginVacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS, únicas de CSS y de LQIPVaciar esta páginaVaciar la URL %s¡Se ha vaciado todo!Vaciado de todas las cachés correctamente.¡Se ha vaciado el blog!¡Se ha vaciado la URL!¡Purgado!%1$s enviado al servidor en la nube, %2$s aceptado.QUIC.cloudCDN de QUIC.cloudEstadísticas de uso del servicio QUIC.cloudLas cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.Cola vaciada correctamente.Valora %s en %sLeer la documentación de LiteSpeedRecomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare.Valor recomendado: 28800 segundos (8 horas).Nodo detectado nuevamenteID de base de datos RedisRecargar el mapa del rastreadorActualizar la clave del dominioRefrescar la caché de Gravatar por cron.Actualizar el tiempo de carga de la páginaActualizar la puntuación de la páginaCuota diaria restanteEliminar la URL de la CDNEliminar Google FontsEliminar las etiquetas NoscriptEliminar copias de seguridad del orginalEliminar copias de seguridad de las imágenes originalesEliminar query stringsEliminar emojis de WordPressEliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.Eliminar la simulación de la cookieEliminar de la lista negraEliminar cadenas de consulta de recursos estáticos internos.Copias de seguridad eliminadas correctamente.Reemplaza %1$s con %2$s.InformeFecha de informeNúmero de informeSolicitar clave de dominioSolicita versiones WebP de las imágenes originales al hacer la optimización.Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación.SolicitadoPeticiones en colaReexaminar nuevas miniaturas%d imágenes reexploradas correctamente.Reexploración correcta.Restablecer todos los ajustesRestablecer ajustesReestablecer posiciónRestablecimiento realizado con éxito.Reestablecer toda la caché opcodeReestablecida la caché opcache con éxitoDatos de optimización restablecidos correctamente.Los recursos listados aquí se copiarán y reemplazarán con URL locales.Marcador de posición adaptableColor del marcador de posición adaptableMarcador de posición SVG adaptableLos marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.Restaurar desde la copia de seguridadArchivo original restaurado con éxito.Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>.Edad máxima de las revisionesNúmero máximo de revisionesLas revisiones más recientes se guardarán cuando se limpien las revisiones.Excluir perfilesSimulación de rolEjecutar manualmente la cola %sDuración de la ejecuciónFrecuencia de ejecuciónEjecutar la cola manualmenteLa frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.Hora de ejecución para el rastreador anteriorEn cursoSINTAXIS: alfanumérico y "_".Guardar cambiosGuarda datos transitorios en la base de datos cuando %1$s es %2$s.GuardadoBuscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.Hora de vaciado programadoURLs de vaciado programadoVer <a %s>Introducción para activar el Crawler</a> para información detallada.Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio.Selecciona debajo las opciones de «Vaciar por».Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.Selecciona que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadasLos perfiles seleccionados serán excluidos de todas las optimizaciones.Los perfiles seleccionados serán excluidos de la caché.Enviar solicitud de optimizaciónEnviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.Enviar a LiteSpeedTipos de contenido de caché de CCSS distintosDistintas URIs de caché CCSSSepara archivos CSS críticos al generar las rutas que contengan estas cadenas.Servir contenido rancioOfrece una copia de la caché separada para los visitantes móviles.Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s.IP del servidorLímite de carga del servidorValor máximo permitido por el servidorValor mínimo permitido por el servidorValor forzado por el servidorVariable(s) del servidor %s disponible para omitir este ajuste.Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals).Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.Ponlo en %1$s para bloquear heartbeat en %2$s.Configurar cabeceras personalizadasAjustesAcortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.Mostrar estado del CrawlerMejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.Ajustes de simulaciónURL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s.Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva.Lista del mapa del sitioAjustes del mapa del sitioTimeout del mapa del sitioTotal del mapa del sitioEl mapa del sitio se limpió con éxitoMapa del sitio creado con éxito: %d elementosTamañoTamaño de la lista en la cola de espera del cronMás pequeño queUna o más imágenes optimizadas han caducado y han sido borradas.Algunos temas y plugins añaden recursos mediante una petición PHP.Comentarios spamEspecifica el número de hilos a utilizar durante la indexación.Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.Especifica un SVG que se utilizará como marcador de posición al generar localmente.Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.Especifica por cuanto tiempo, en segundos, se cachean los feeds.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.Especifica cuánto tiempo, en segundos, se almacena la página de inicio.Especifica el intervalo de heartbeat para %s en segundos.Especifica el tamaño máximo del archivo de registro.Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.Especifica la contraseña utilizada al conectar.Especifica la calidad al generar el LQIP.Especifica el color del marcador de posición SVG adaptable.Especifica la hora para vaciar la lista «%s».Especifica el tiempo de espera mientras se rastrea cada URL.Especifica el tiempo límite de procesamiento del mapa del sitio.Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación.Especifica un tiempo en segundos para la duración del intervalo de indexación.Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución.Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.Especificar que atributos de elementos serán reemplazados con WebP.Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.EstadoDeja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador.Optimización de almacenamientoAlmacenar los gravatares localmente.Almacenar datos transitoriosRastreado correctamenteSumario¡Por supuesto, me encantará valorarlo!SwapVolver a utilizar imágenes optimizadas en tu webImágenes cambiadas correctamente.Cambio correcto a archivo optimizado.Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube.Sincronizar los datos de la nubeInformación del sistemaTTLTablaEtiquetaOmite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.Archivo de término (incluye categoría, etiqueta y taxonomía)Probando¡Gracias por usar el plugin de caché LiteSpeed!La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores.El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.La llamada POST a %s falló.La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción «%s».Las URLs serán comparadas con la variable REQUEST_URI del servidor.Los nonces anteriores se convertirán en ESI automáticamente.La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar.La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: La cookie aquí establecida será usada por esta instalación de WordPress.La característica de crawler no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor.El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, si se deja caer el dominio se puede ahorrar almacenamiento en la base de datos.El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio.El servidor actual está bajo una gran carga.La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.La cookie de acceso por defecto es %s.La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio.El informe de entorno contiene información detallada sobre la configuración de WordPress.Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.La lista de imágenes está vacía.El último archivo de datos esLa lista se fusionará con los nonces predefinidos en tu archivo de datos local.Los registros serán enviados a %s.La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.El ajuste de administrador de red puede ser modificado aquí.La siguiente indexación de sitemap completa empezará a lasEl selector debe existir en el CSS. Las clases principales en HTML no funcionarán.El servidor determinará si el usuario está conectado en base a la existencia de esta cookie.En este momento, el ajuste %s está activado.El sitio no está registrado en QUIC.cloud.Y otro WordPress instalado (NO MULTISITIO) en %sHay dos razones por las que no podemos comunicarnos con tu dominio:Hay un WordPress instalado para %s.Hay una cola de procedimiento que no se ha retirado todavía.La cola aún no ha sido recuperada. Información de la cola: %s.Hay un problema al recibir tu clave de dominio. Por favor, haz clic en el botón %s para volver a intentarlo.Estas imágenes no generarán LQIP.Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.El uso de este mesEsta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.Esto se puede gestionar desde la pestaña %1$s%2$s.Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.Esto puede mejorar la velocidad de carga de la página.Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.Esto es irreversible.Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.Esto puede causar una alta carga en el servidor.Este mensaje indica que el plugin fue instalado por el administrador del servidor.Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas.Esta opción permite la máxima optimización para los visitantes del modo de invitado.Esta opción se omite porque la opción %1$s es %2$s.Esta opción se omite debido a la opción %s.Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins.Esta opción solo funciona cuando se activa %s.Esta opción omitirá automáticamente la opción %s.Esta opción eliminará todas las etiquetas %s del HTML.Este proceso es automático.Los ajustes de red sobreescriben este ajusteEste ajuste es sobrescrita por la constante %s de PHPEsta ajuste es sobrescrito por los ajuste del sitio primarioEste ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.Este ajuste editará el archivo .htaccess.¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché.Esto vaciará solo la página principalEsto solo vaciará las páginasEsto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s.Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes.Esto también generará una clave de API del servidor de LiteSpeed.Esto eliminará TODO dentro de la caché.Esto borrará todos los archivos Gravatar almacenados en cachéEsto borrará todos los archivos generados de CSS críticoEsto borrará todos los archivos generados de marcador de posición de imágenes LQIPEsto borrará todos los archivos CSS únicos generadosEsto borrará todos los recursos localizadosEsto desactivará LSCache y todas las características de optimización con propósitos de depuración.Esto desactivará la página de ajustes en todos los subsitios.Esto eliminará el CSS no utilizado en cada página del archivo combinado.Esto activará el cron rastreador.Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo.Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.Esto aumentará el tamaño de los archivos optimizados.Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.Esto vaciará solo las entradas CSS/JS minimizadas o combinadasEsto restablecerá todos los ajustes a su valores predeterminados.HilosTiempo para ejecutar la solicitud anteriorTimeoutPara rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.Para coincidencias exactas, añadir %s al final de la URL.Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN.Para excluir %1$s, insertar %2$s.Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de imágenes permitidas en una sola petición es limitada.Para gestionar las opciones de QUIC.cloud, visitaPara que coincida con el principio, añade %s al comienzo del artículo.Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione.Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.Para probar el carrito, visita la <a %s>FAQ</a>.Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.HerramientaHerrramientasTotalReducción totalUso totalTotal de imágenes optimizadas en este mesTrackbacks/pingbacksComentarios enviados a la papeleraEntradas enviadas a la papeleraProbar versión de GitHubAjustarConfiguración de ajustesAPAGARENCENDERActívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.Actívalo para controlar heartbeat en el editor.Actívalo para controlar heartbeat en el escritorio.Enciéndelo para controlar heartbeat en las páginas públicas.Activar la actualización automáticaActiva esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.Pon este ajuste como %1$s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud.Vista previa del tweetTuitea estoLista blanca de UCSSUCCS integradoExclusiones UCSS de la URIURL excluidasLas rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.URLLista de URL en cola %s esperando el cronSe ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (<a %3$s>Más Información</a>)CSS únicoError desconocidoActualizar %sActualizarActualizado con éxito.UsoUso de las estadísticasUsa %1$s en %2$s para indicar que esta cookie no ha sido establecida.Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s.Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL.Usar la funcionalidad de la API %s.Usar mapeo de CDNUtiliza ESI para el carritoUsar TTL de la página principal para la página de tiendaUsar ajuste de administrador de redUsar archivos optimizadosUsar archivos originalesUsar configuración del sitio principalUsa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga.Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante.Usar el servicio en línea QUIC.cloud para generar CSS único.Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto.Usa la funcionalidad de la caché de objetos externos.Utilizar conexiones keep-alive para acelerar operaciones de la caché.Usar el último commit de desarrollo de GitHubUtiliza el último commit Dev/Master de GitHubUsar el último commit maestro de GitHubUsar la última versión de WordPressUsar imágenes originales (no optimizadas) en tu webUsa el formato %1$s o %2$s (el elemento es opcional).Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo.Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals).Nombre de usuarioUsando la versión optimizada del archivo. Rango de valoresLas variables %s serán reemplazadas por el color de fondo configurado.Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen.Grupos de variaciónVer detalles de la versión %2$s de %1$sVer el archivo «.htaccess»Visita el foro de soporte de LSCWPVisitar «Mi Escritorio» en QUIC.cloudVisitar el sitio sin la sesión iniciada.ADVERTENCIAADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.En esperaEsperando aprobaciónEsperando a la recargaEsperando a ser rastreado¿Quieres conectar con otros usuarios de LiteSpeed?AdvertenciaVer estado del CrawlerEstamos bien. Ninguna tabla usa el motor MyISAM.Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.WebPAtributo WebP a reemplazarWebP para src extraArchivo WebP reducido en %1$s (%2$s)WebP ha ahorrado un %sBienvenido a LiteSpeed¿Qué es un grupo?¿Qué es un grupo de imágenes?Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas.Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.Cuando la opción está activada, la información del carrito se implementará como bloques ESI. NOTA: Para que funcione, debes activar %1$s en los ajustes de ESI.Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.TTL caché de Widgets:El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.Compatibilidad con el comodín %s.Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.WooCommerceAjustes de WooCommerceControl de la calidad de imagen de WordPressEl intervalo válido de WordPress es %s segundosEl intervalo válido de WordPress es de %s segundos.WpW: Caché privada o caché públicaArchivo anualPuedes simplemente teclear parte de dominio.Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles.Puede solicitar un máximo de imágenes de %s de una vez.También puedes activar la caché del navegador en la administración del servidor. <a %s>Aprende más acerca del ajuste de la caché de navegador de LiteSpeed</a>.Puedes convertir shortcodes en bloques ESI.Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess».No tienes suficiente cuota diaria disponible hoy para el servicio actual.No tienes suficiente cuota disponible este mes para el servicio actual.Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas.Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.¡Acabas de desbloquear una promoción de QUIC.cloud!Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud.Debes tener %1$s antes de enlazarte a QUIC.cloud.Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado.Necesitas activar %s para obtener el máximo resultado.¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!Tendrás que establecer %s para usar los servicios en línea.Tu cuota de %1s en %2s seguirá en uso.El hostname o dirección IP de tu %s.Tu clave de la API/token se usa para acceder a las API de %s.Tu dirección de email en %s.Tu IPTu solicitud está a la espera de aprobación.A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior.La IP de tu servidorCero, ocategoríascookiesactualmente establecido en %sej: Usa %s o %s.El favicon.ico es solicitado en la mayoría de las páginas.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationahora mismomicrosegundospixelsproporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración.ahora mismoejecutandosegundosetiquetasla IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor.user agents��U(`5a5i5q5	z5
�5
�5�5�5�5�5	�5�5	�53�5h-6�6N�6=7"C77f7�7'�7	�7�7�7%�78F8b8%q8	�8"�8�8P�8T59>�9�9�9#�9:P:0o:�:�:"�:/�:*;
+;9;�K;4�;<
<<#<C<O<
\<g<t<z<�<�<�<�<�<�<�<
==0.=U_=W�= 
>(.>W>`>~>K�>P�>	(?2?K?g?�?�?"�?�?"�?@!-@O@o@&�@"�@!�@,�@$(A+MA	yAW�A
�A�A�AB$B6BFB*]B�B�B�B
�B�B�B�B4�BC*C	=CGC[CvC �C"�C�C�C�C
DD(D<D	HDRDcDzD�D�D�D
�D�D}�DwED�E8�EFF#F ,FKMF8�F�F�F�FG.GAGSGeGC~G�G�G�G�G<�G)I9CI
}I�I
�IY�IqJuJ}JN�J�J�JK+K8KIKRKeKlK|K%�K�K�K�K�KLL*LDL`L9lL:�L0�L)M�<Mc�MG=NW�N�N�N
�N
OO"O
@O0NO#O�O�O	�OB�O	PP2PZDP,�P�P-�PiQIQY�QK#RUoRL�RlSBSY�SVT`sTJ�TgU�V�V�V�V
�V<�V"W9WOWoW�W�W�W�W�W?�W6XMXTXdX tX&�X �XD�X"Y.Y:YMY
\YgY|Y
�Y�Y
�Y�Yp�Y
=ZHZ]Z	iZsZ�Z�Z�Z�Z�Z'�Z
[[
$[
2["@[c[l[�[#�[�[�[
�[�[P\&W\~\�\"�\�\�\$�\!]8]O] g]�]/�].�]�]^^%^+(^T^[^h^{^�^�^�^�^�^@�^
__"_)_>1_p_�_ �_�_"�_�_
`
+`
9`G`L`R`.Y`?�`6�`;�`3;a2oa6�a0�a
bbbbQ;b
�b-�b$�b?�b7.cfcsc�c�c�c�c�c$�cEd+dd�d
�d!�d�d�deee"eR+e2~e?�e�e5fS=f��fEg[g`ghgwgM�g�g)�gh h
4hBh$Wh�|hF
iQiiipi|i�i	�i�i�i�i�i�i
�i�ij%j:j0Vj�jI�j�j$�jD k@ek9�k1�kll/l<lHlhlyl
�l+�l�l�l�lmm4m{Km;�mnn"n
.nA<n~n�n�n�n+�n&�n%oY<o$�o2�o
�o�op
p'p::pup�p�p.�p�pd�pXqmqM�qf�q$7rX\rQ�r7s+?sksg�s�stQ%tPwt^�tm'u�u�u�u�u9�u)v>2vqvU�vN�v*w#/w8Sw
�w0�wG�wax/ux*�x(�xK�x?Ey<�y3�y�y�yz#z<z(Zz�ze�z-�z/{MK{h�{]|=`|c�|A}D}Wd}O�}~E1W-�9�&�1�AJ�^��E�U1�S��ہJ�(<�Ie���Yʂ*$�O�o�:��;Ń,�1.�J`�4��Q�o2�X��/��G+�9s�1��߆J�^2�3��Ň<�L �*m�]�������!�
2�@�S�Z�j�s�{�����@&�g�
k�y�����$��׊�8�2I�|�
������ ɋ�K�+>�j����
����ҌM�1�gC�R����#
�.�%=�(c�G��Ԏ��
�!�)�'<�d�K��Ώ׏	�������+�;�C�K�	T�
^�
i�t�������	����	ɑ3ӑh�p�N��=ߒ"�7@�x�'|�	������%ɓ�F��<�%K�	q�"{���P��T�>d�����#���P��0I�z���"��/��*ږ
���%�4�����#���)�
6�A�N�T�d�w�������ƘӘ���0�U9�W�� �(�1�:�X�Ke�P��	��%�A�Z�r�"����"ɛ�!�)�I�&i�"��!��,՜$�+'�	S�W]�
����ϝ���� �*7�b�r�~�
��������4ž���	�!�5�P� k�"����şԟ
����	"�,�=�T�l�����
��͠}ӠQ�Db�8������ �K'�8s���Ģ٢���-�?�CX���������<ƣ�9�
W�e�
x�Y��qݥO�W�Nw�ƦӦ���#�,�?�F�V�%]�������ͧ����:�9F�:��0��)���d��G�W`���ɪ
ڪ����
�0)�#Z�~���	��B��	ݫ�2�Z�,z���-¬i�IZ�Y��K��UJ�L��l�BZ�Y��V��`N�J��g��b�t�����
��<�����*�J�c�{�����ij?ѳ�(�/�?� O�&p� ��D����	��(�
7�B�W�
l�w�
����p��
�#�8�	D�N�m�~�������'��
��
��

�"�>�G�[�#m�����
��ƷP�&2�Y�i�"������$׸���*� B�c�/t�.��ӹ߹��+�/�6�C�V�b�n�}�����@��
������>�K�`� w���"��ػ�
�
�"�'�-�.4�?c�6��;ڼ3�2J�6}�0�������Q�
h�-v�$��?ɾ7	�A�N�k�������Ŀ$ԿE��+?�k�
��!�����������R�2Y�?���5�S��l�E��6�;�C�R�Md���)������
��$2��W�G��-�E�L�X�^�	m�w���������
������%���02�c�Iu���$��D��@A�9��1��������$�D�U�
e�+s������������{'�;��������

�A�Z�m�|���+��&���Y�$r�2��
������
���:�Q�o���.����d��4�I�M^�f��$�X8�Q��7��+�G�ga�����Q�PS�^��m�q�������9���>�M�Ua�N���#�8/�
h�0v�G��a��/Q�*��(��K��?!�<a�3�����������(6�_�fc�-��/��M(�hv�]��==�c{�A��!�WA�O����E��14�-f�9��&��1��A'�^i�E��U�Sd���J��(�IB���Y��*�,�L�:g�;��,��1�J=�4��Q��o�X�/��G�9P�1����J��^�3n���<��L��*J�]u���������
��0�7�G�P�X��m���@�D�
H�V�^�u�$������8��2&�Y�
b�m��� ����K��+�G�\�v�
������M���g �R����#���%�(@�Gi�������
�����'�A�K_�����	����������\�UG�?�jS���c����j$+o+a�^���6f�5�����T
�]�\�\]F�w<P;#�L8	2Y��{N_i�9�L��y���#�h"(e���=%�Su���� r`�c�w��:z`����3!��1A2�������T�.v�s8k}�W�cdE�V-�2�<�����.��E+zW�Q
JUm� f��>
�)tq*f	QtP5�6A����,}i�3j���
����h�����e����p��4"�V$B���>,G�/=�a�@b�Hy]��	BP>�G�%��X#H���/5�C�����@X�����4���rq)|Ce(�<_Z"�y�8��(&MF_~��Z�'Ng��bXT�������Y�n�uk�;�9?�s�h�
WO*�MR^}��Q�l0��@��K�dn��O�O�wV1��-���!k�
�3%�'&01U���J^�:Z.D|�&p�m�����YD��?{�q�I�x�R��7g�xpJ��|l�r��S���D�[v�E�����M9{�=[���-�~��[I��!b��� �m�)�o��4�����,LB�K`�sz�F;�n0�ag7C�NI�'ov:~x�$�R7�dH���A�l*6u�t��K���i/ %s ago%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAdding Style to Your Lazy-Loaded ImagesAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.Append query string %s to the resources to bypass this action.Author archiveAuto DraftsAuto Purge Rules For Publish/UpdateAutomatically UpgradeAutomatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.BasicBeforeBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.Browser CacheBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.CDNCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS MinifyCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache Logged-in UsersCache Login PageCache MobileCache PHP ResourcesCache REST APICache favicon.icoCache requests made by WordPress REST API calls.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Original Image StorageCan not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Clear LogClears all cache entries related to this site, <i>including other web applications</i>.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCommunicated with Cloudflare successfully.Connection TestCookie NameCookie SimulationCookie ValuesCrawl IntervalCrawlerCrawler CronCreate a post, make sure the front page is accurate.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent crawler started atCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Custom SitemapDNS PrefetchDaily archiveDatabase OptimizerDatabase to be usedDebug LevelDebug LogDefault Feed TTLDefault Front Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault TTL for cached objects.Default valueDelayDetermines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Do Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDrop Query StringESIESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to communicate with CloudflareFailed to get %s file contents.Failed to upgrade.Failed to write to %s.File %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForced cacheableFront pageGeneralGenerated at %sGet it from <a %1$s>%2$s</a>.Global GroupsGoogle reCAPTCHA will be bypassed automatically.Groups cached at the network level.GuestHTML MinifyHeartbeatHigh-performance page caching and site optimization from LiteSpeedHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.I've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Image InformationImage OptimizationImage WebP ReplacementImage files missingImages PulledImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSIncluded DirectoriesInline CSS Async LibInstall %sInstall NowInstant ClickInterval Between RunsIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.JS CombineJS Deferred ExcludesJS ExcludesJS MinifyJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.LSCacheLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requested costLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load ImagesLearn MoreList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CrawlerLiteSpeed Cache Image OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache plugin is installed!LiteSpeed OptimizationLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Log CookiesLog File Size LimitLogin CookieMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMark this page as Maybe LaterMaybe laterMedia SettingsMethodMinify HTML content.Monthly archiveMore information about the available commands can be found here.More settingsNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network Enable CacheNew Version Available!New release %s is available now.No available Cloudflare zoneNo crawler meta file generated yetNo optimizationNo spaces and case sensitive.Non cacheableNot AvailableNoteNotesNoticeNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONObject CacheObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.Optimization SummaryOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimized all tables.Original URLsOther checkboxes will be ignored.Outputs to WordPress debug log.Page Load TimePageSpeed ScorePagesPassedPasswordPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Persistent ConnectionPlease enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePreserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPrevent any optimization of listed pages.PrivatePrivate Cached URIsPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPull ImagesPurgePurge %s ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Rate %s on %sRecommended value: 28800 seconds (8 hours).Redis Database IDRemove Google FontsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Replace %1$s with %2$s.ReportReport dateReport numberRequest WebP versions of original images when doing optimization.Reset All SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Responsive PlaceholderResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restored original file successfully.Results can be checked in <a %s>Media Library</a>.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Separate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.SettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.SizeSize list in queue waiting for cronSome themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, feeds are cached.Specify the password used when connecting.Specify the time to purge the "%s" list.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStorage OptimizationStore TransientsSure I'd love to review!Switched images successfully.Switched to optimized file successfully.TagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The cookie set here will be used for this WordPress installation.The default login cookie is %s.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThen another WordPress is installed (NOT MULTISITE) at %sThere is a WordPress installed for %s.These settings are meant for ADVANCED USERS ONLY.This action should only be used if things are cached incorrectly.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This process is automatic.This setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all generated critical CSS filesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTo crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To exclude %1$s, insert %2$s.To match the beginning, add %s to the beginning of the item.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.TotalTotal ReductionTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.URI ExcludesURI Paths containing these strings will NOT be cached as public.URLUpdate %s nowUpgradeUpgraded successfully.Use %s API functionality.Use Front Page TTL for the Shop PageUse Network Admin SettingUse Primary Site ConfigurationUse keep-alive connections to speed up cache operations.Use the format %1$s or %2$s (element is optional).UsernameVary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.Want to connect with other LiteSpeed users?Watch Crawler StatusWebP Attribute To ReplaceWebP For Extra srcsetWebP saved %sWelcome to LiteSpeedWhat is a group?When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.WooCommerceWpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can turn shortcodes into ESI blocks.You will be unable to Revert Optimization once the backups are deleted!Your %s Hostname or IP address.Your Email address on %s.Your IPcategoriescookiese.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondsright nowrunningsecondstagsuser agentsPO-Revision-Date: 2019-08-02 00:56:54+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: en_AU
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 %s ago%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimised.APIAdding Style to Your Lazy-Loaded ImagesAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.Append query string %s to the resources to bypass this action.Author archiveAuto DraftsAuto Purge Rules For Publish/UpdateAutomatically UpgradeAutomatically remove the original image backups after fetching optimised images.Automatically request optimisation via cron job.BasicBeforeBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.Browser CacheBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a grey image placeholder %s will be used.CDNCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS MinifyCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache Logged-in UsersCache Login PageCache MobileCache PHP ResourcesCache REST APICache favicon.icoCache requests made by WordPress REST API calls.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Original Image StorageCan not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Clear LogClears all cache entries related to this site, <i>including other web applications</i>.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCommunicated with Cloudflare successfully.Connection TestCookie NameCookie SimulationCookie ValuesCrawl IntervalCrawlerCrawler CronCreate a post, make sure the front page is accurate.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent crawler started atCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Custom SitemapDNS PrefetchDaily archiveDatabase OptimiserDatabase to be usedDebug LevelDebug LogDefault Feed TTLDefault Front Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault TTL for cached objects.Default valueDelayDetermines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Do Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDrop Query StringESIESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to communicate with CloudflareFailed to get %s file contents.Failed to upgrade.Failed to write to %s.File %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the home page for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForced cacheableFront pageGeneralGenerated at %sGet it from <a %1$s>%2$s</a>.Global GroupsGoogle reCAPTCHA will be bypassed automatically.Groups cached at the network level.GuestHTML MinifyHeartbeatHigh-performance page caching and site optimisation from LiteSpeedHome pageHostHow to Fix Problems Caused by CSS/JS Optimisation.However, there is no way of knowing all the possible customisations that were implemented.Htaccess did not match configuration option.I've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If set to %1$s, before the placeholder is localised, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Image InformationImage OptimisationImage WebP ReplacementImage files missingImages PulledImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages not yet requestedImages notified to pullImages optimised and pulledImages previously optimisedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSIncluded DirectoriesInline CSS Async LibInstall %sInstall NowInstant ClickInterval Between RunsIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.JS CombineJS Deferred ExcludesJS ExcludesJS MinifyJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.LSCacheLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requested costLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load ImagesLearn MoreList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CrawlerLiteSpeed Cache Image OptimisationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache plugin is installed!LiteSpeed OptimisationLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Log CookiesLog File Size LimitLogin CookieMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMark this page as Maybe LaterMaybe laterMedia SettingsMethodMinify HTML content.Monthly archiveMore information about the available commands can be found here.More settingsNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network Enable CacheNew Version Available!New release %s is available now.No available Cloudflare zoneNo crawler meta file generated yetNo optimisationNo spaces and case sensitive.Non cacheableNot AvailableNoteNotesNoticeNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONObject CacheObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.Optimisation SummaryOptimise CSS delivery.Optimise LosslesslyOptimise Original ImagesOptimise TablesOptimise all tables in your databaseOptimise images and save backups of the originals in the same folder.Optimise images using lossless compression.Optimised all tables.Original URLsOther checkboxes will be ignored.Outputs to WordPress debug log.Page Load TimePageSpeed ScorePagesPassedPasswordPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Persistent ConnectionPlease enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePreserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising.Preserve EXIF/XMP dataPrevent any optimisation of listed pages.PrivatePrivate Cached URIsPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache front end pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPull ImagesPurgePurge %s ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge this pagePurge URL %sPurged All!Purged all caches successfully.Purged the blog!Purged the URL!Rate %s on %sRecommended value: 28800 seconds (8 hours).Redis Database IDRemove Google FontsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files.Remove all previous unfinished image optimisation requests.Replace %1$s with %2$s.ReportReport dateReport numberRequest WebP versions of original images when doing optimisation.Reset All SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimised data successfully.Responsive PlaceholderResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restored original file successfully.Results can be checked in <a %s>Media Library</a>.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimisations.Selected roles will be excluded from cache.Send Optimisation RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Separate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.SettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimised %s versions.Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.SizeSize list in queue waiting for cronSome themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, feeds are cached.Specify the password used when connecting.Specify the time to purge the "%s" list.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStorage OptimisationStore TransientsSure I'd love to review!Switched images successfully.Switched to optimised file successfully.TagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in real time.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The cookie set here will be used for this WordPress installation.The default login cookie is %s.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThen another WordPress is installed (NOT MULTISITE) at %sThere is a WordPress installed for %s.These settings are meant for ADVANCED USERS ONLY.This action should only be used if things are cached incorrectly.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This process is automatic.This setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all generated critical CSS filesThis will disable LSCache and all optimisation features for debug purpose.This will disable the settings page on all subsites.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimised files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTo crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To exclude %1$s, insert %2$s.To match the beginning, add %s to the beginning of the item.To randomise CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.TotalTotal ReductionTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.URI ExcludesURI Paths containing these strings will NOT be cached as public.URLUpdate %s nowUpgradeUpgraded successfully.Use %s API functionality.Use Front Page TTL for the Shop PageUse Network Admin SettingUse Primary Site ConfigurationUse keep-alive connections to speed up cache operations.Use the format %1$s or %2$s (element is optional).UsernameVary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.Want to connect with other LiteSpeed users?Watch Crawler StatusWebP Attribute To ReplaceWebP For Extra srcsetWebP saved %sWelcome to LiteSpeedWhat is a group?When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.WooCommerceWpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can turn shortcodes into ESI blocks.You will be unable to Revert Optimisation once the backups are deleted!Your %s Hostname or IP address.Your Email address on %s.Your IPcategoriescookiese.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondsright nowrunningsecondstagsuser agents                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
<?php
/**
 * Plugin Name:       LiteSpeed Cache
 * Plugin URI:        https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration
 * Description:       High-performance page caching and site optimization from LiteSpeed
 * Version:           4.6
 * Author:            LiteSpeed Technologies
 * Author URI:        https://www.litespeedtech.com
 * License:           GPLv3
 * License URI:       http://www.gnu.org/licenses/gpl.html
 * Text Domain:       litespeed-cache
 * Domain Path:       /lang
 *
 * Copyright (C) 2015-2017 LiteSpeed Technologies, Inc.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.

 */
defined( 'WPINC' ) || exit;

if ( defined( 'LSCWP_V' ) ) {
	return;
}

! defined( 'LSCWP_V' ) && define( 'LSCWP_V', '4.6' );

! defined( 'LSCWP_CONTENT_DIR' ) && define( 'LSCWP_CONTENT_DIR', WP_CONTENT_DIR ) ;
! defined( 'LSCWP_DIR' ) && define( 'LSCWP_DIR', __DIR__ . '/' ) ;// Full absolute path '/var/www/html/***/wp-content/plugins/litespeed-cache/' or MU
! defined( 'LSCWP_BASENAME' ) && define( 'LSCWP_BASENAME', 'litespeed-cache/litespeed-cache.php' ) ;//LSCWP_BASENAME='litespeed-cache/litespeed-cache.php'

/**
 * This needs to be before activation because admin-rules.class.php need const `LSCWP_CONTENT_FOLDER`
 * This also needs to be before cfg.cls init because default cdn_included_dir needs `LSCWP_CONTENT_FOLDER`
 * @since  1.9.1 Moved up
 * @since  2.2.1 Moved up from core.cls
 */
! defined( 'LSCWP_CONTENT_FOLDER' ) && define( 'LSCWP_CONTENT_FOLDER', str_replace( home_url( '/' ), '', WP_CONTENT_URL ) ) ; // `wp-content`
! defined( 'LSWCP_PLUGIN_URL' ) && define( 'LSWCP_PLUGIN_URL', plugin_dir_url( __FILE__ ) ) ;// Full URL path '//example.com/wp-content/plugins/litespeed-cache/'

/**
 * Static cache files consts
 * @since  3.0
 */
! defined( 'LITESPEED_STATIC_URL' ) && define( 'LITESPEED_STATIC_URL', WP_CONTENT_URL . '/litespeed' ) ;// Full static cache folder URL '//example.com/wp-content/litespeed'
! defined( 'LITESPEED_STATIC_DIR' ) && define( 'LITESPEED_STATIC_DIR', LSCWP_CONTENT_DIR . '/litespeed' ) ;// Full static cache folder path '/var/www/html/***/wp-content/litespeed'

! defined( 'LITESPEED_TIME_OFFSET' ) && define( 'LITESPEED_TIME_OFFSET', get_option( 'gmt_offset' ) * 60 * 60 ) ;

// Placeholder for lazyload img
! defined( 'LITESPEED_PLACEHOLDER' ) && define( 'LITESPEED_PLACEHOLDER', 'data:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=' ) ;

// Auto register LiteSpeed classes
require_once LSCWP_DIR . 'autoload.php' ;

// Define CLI
if ( ( defined( 'WP_CLI' ) && WP_CLI ) || PHP_SAPI == 'cli' ) {
	! defined( 'LITESPEED_CLI' ) &&  define( 'LITESPEED_CLI', true );

	// Register CLI cmd
	if ( method_exists( 'WP_CLI', 'add_command' ) ) {
		WP_CLI::add_command( 'litespeed-option', 'LiteSpeed\CLI\Option' );
		WP_CLI::add_command( 'litespeed-purge', 'LiteSpeed\CLI\Purge' );
		WP_CLI::add_command( 'litespeed-online', 'LiteSpeed\CLI\Online' );
		WP_CLI::add_command( 'litespeed-image', 'LiteSpeed\CLI\Image' );
		WP_CLI::add_command( 'litespeed-debug', 'LiteSpeed\CLI\Debug' );
	}
}

// Server type
if ( ! defined( 'LITESPEED_SERVER_TYPE' ) ) {
	if ( isset( $_SERVER['HTTP_X_LSCACHE'] ) && $_SERVER['HTTP_X_LSCACHE'] ) {
		define( 'LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_ADC' );
	}
	elseif ( isset( $_SERVER['LSWS_EDITION'] ) && strpos( $_SERVER['LSWS_EDITION'], 'Openlitespeed' ) === 0 ) {
		define( 'LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_OLS' );
	}
	elseif ( isset( $_SERVER['SERVER_SOFTWARE'] ) && $_SERVER['SERVER_SOFTWARE'] == 'LiteSpeed' ) {
		define( 'LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_ENT' );
	}
	else {
		define( 'LITESPEED_SERVER_TYPE', 'NONE' );
	}
}

// Checks if caching is allowed via server variable
if ( ! empty ( $_SERVER['X-LSCACHE'] ) ||  LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_ADC' || defined( 'LITESPEED_CLI' ) ) {
	! defined( 'LITESPEED_ALLOWED' ) &&  define( 'LITESPEED_ALLOWED', true );
}

// ESI const defination
if ( ! defined( 'LSWCP_ESI_SUPPORT' ) ) {
	define( 'LSWCP_ESI_SUPPORT', LITESPEED_SERVER_TYPE !== 'LITESPEED_SERVER_OLS' ? true : false );
}

if ( ! defined( 'LSWCP_TAG_PREFIX' ) ) {
	define( 'LSWCP_TAG_PREFIX', substr( md5( LSCWP_DIR ), -3 ) );
}

/**
 * Handle exception
 */
if ( ! function_exists( 'litespeed_exception_handler' ) ) {
	function litespeed_exception_handler( $errno, $errstr, $errfile, $errline ) {
		throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
	}
}

/**
 * Overwride the WP nonce funcs outside of LiteSpeed namespace
 * @since  3.0
 */
if ( ! function_exists( 'litespeed_define_nonce_func' ) ) {
	function litespeed_define_nonce_func() {
		/**
		 * If the nonce is in none_actions filter, convert it to ESI
		 */
		function wp_create_nonce( $action = -1 ) {
			if ( ! defined( 'LITESPEED_DISABLE_ALL' ) ) {
				$control = \LiteSpeed\ESI::cls()->is_nonce_action( $action );
				if ( $control !== null ) {
					$params = array(
						'action'	=> $action,
					);
					return \LiteSpeed\ESI::cls()->sub_esi_block( 'nonce', 'wp_create_nonce ' . $action, $params, $control, true, true, true );
				}
			}

			return wp_create_nonce_litespeed_esi( $action );

		}

		/**
		 * Ori WP wp_create_nonce
		 */
		function wp_create_nonce_litespeed_esi( $action = -1 ) {
			$uid  = get_current_user_id();
			if ( ! $uid ) {
				/** This filter is documented in wp-includes/pluggable.php */
				$uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
			}

			$token = wp_get_session_token();
			$i     = wp_nonce_tick();

			return substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
		}
	}
}

/**
 * Begins execution of the plugin.
 *
 * @since    1.0.0
 */
if ( ! function_exists( 'run_litespeed_cache' ) ) {
	function run_litespeed_cache() {
		//Check minimum PHP requirements, which is 5.3 at the moment.
		if ( version_compare( PHP_VERSION, '5.3.0', '<' ) ) {
			return;
		}

		//Check minimum WP requirements, which is 4.0 at the moment.
		if ( version_compare( $GLOBALS['wp_version'], '4.0', '<' ) ) {
			return;
		}

		\LiteSpeed\Core::cls();
	}

	run_litespeed_cache();
}
=== LiteSpeed Cache ===
Contributors: LiteSpeedTech
Tags: caching, optimize, performance, pagespeed, core web vitals, seo, speed, image optimize, compress, object cache, redis, memcached, database cleaner
Requires at least: 4.0
Tested up to: 5.9.2
Stable tag: 4.6
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl.html

All-in-one unbeatable acceleration & PageSpeed improvement: caching, image/CSS/JS optimization...

== Description ==

LiteSpeed Cache for WordPress (LSCWP) is an all-in-one site acceleration plugin, featuring an exclusive server-level cache and a collection of optimization features.

LSCWP supports WordPress Multisite and is compatible with most popular plugins, including WooCommerce, bbPress, and Yoast SEO.

LiteSpeed Cache for WordPress is compatible with ClassicPress.

== Requirements ==
**General Features** may be used by anyone with any web server (LiteSpeed, Apache, NGINX, etc.).

**LiteSpeed Exclusive Features** require one of the following: OpenLiteSpeed, commercial LiteSpeed products, LiteSpeed-powered hosting, or QUIC.cloud CDN. [Why?](https://docs.litespeedtech.com/lscache/lscwp/faq/#why-do-the-cache-features-require-a-litespeed-server)

== Plugin Features ==

= General Features =

* Free QUIC.cloud CDN Cache
* Object Cache (Memcached/LSMCD/Redis) Support<sup>+</sup>
* Image Optimization (Lossless/Lossy)
* Minify CSS, JavaScript, and HTML
* Minify inline & external CSS/JS
* Combine CSS/JS
* Automatically generate Critical CSS
* Lazy-load images/iframes
* Responsive Image Placeholders
* Multiple CDN Support<sup>+</sup>
* Load CSS Asynchronously
* Defer/delay JS loading
* Browser Cache Support<sup>+</sup>
* Database Cleaner and Optimizer
* PageSpeed score (including Core Web Vitals) optimization
* OPcode Cache Support<sup>+</sup>
* HTTP/2 Push for CSS/JS (on web servers that support it)
* DNS Prefetch
* Cloudflare API
* Single Site and Multisite (Network) support
* Import/Export settings
* Attractive, easy-to-understand interface
* WebP image format support
* Heartbeat control

<sup>+</sup> This service is not provided by the LSCache plugin, nor is it guaranteed to be installed by your service provider. However, the plugin is compatible with the service if it is in use on your site.

= LiteSpeed Exclusive Features =

* Automatic page caching to greatly improve site performance
* Automatic purge of related pages based on certain events
* Private cache for logged-in users
* Caching of WordPress REST API calls
* Separate caching of desktop and mobile views
* Ability to schedule purge for specified URLs
* WooCommerce and bbPress support
* [WordPress CLI](https://docs.litespeedtech.com/lscache/lscwp/cli/) commands
* API system for easy cache integration
* Exclude from cache by URI, Category, Tag, Cookie, User Agent
* Smart preload crawler with support for SEO-friendly sitemap
* Multiple crawlers for cache varies
* HTTP/2 support
* [HTTP/3 & QUIC](https://www.litespeedtech.com/http3-faq) support
* ESI (Edge Side Includes) support<sup>*</sup>
* Widgets and Shortcodes as ESI blocks<sup>*</sup> (requires Classic Widgets plugin for WP 5.8+)

<sup>*</sup> Feature not available in OpenLiteSpeed

== Screenshots ==

1. Plugin Benchmarks
2. Admin - Dashboard
3. Admin - Image Optimization
4. Admin - Crawler
5. Admin Settings - Cache
6. Admin Settings - Page Optimization
7. Admin Settings - CDN
8. Admin Settings - DB Optimizer
9. Admin Settings - Toolbox
10. Cache Miss Example
11. Cache Hit Example

== LSCWP Resources ==
* [Join our Slack community](https://litespeedtech.com/slack) to connect with other LiteSpeed users.
* [Ask a question on our support forum](https://wordpress.org/support/plugin/litespeed-cache/).
* [View detailed documentation](https://docs.litespeedtech.com/lscache/lscwp/overview/).
* [Read WordPress Wednesday tutorials on our blog](https://blog.litespeedtech.com/tag/wordpress-wednesday/).
* [Help translate LSCWP](https://translate.wordpress.org/projects/wp-plugins/litespeed-cache/).
* [LSCWP GitHub repo](https://github.com/litespeedtech/lscache_wp).

== Installation ==

[View detailed documentation](https://docs.litespeedtech.com/lscache/lscwp/installation/).

= For Optimization Without a LiteSpeed Web Server =
1. Install the LiteSpeed Cache for WordPress plugin and activate it.
1. From the WordPress Dashboard, navigate to **LiteSpeed Cache > Page Optimization**. Enable the available optimization features in the various tabs.

= For Caching and Optimization With a LiteSpeed Web Server =
1. Install [LiteSpeed Web Server Enterprise](https://www.litespeedtech.com/products/litespeed-web-server) with LSCache Module, [LiteSpeed Web ADC](https://www.litespeedtech.com/products/litespeed-web-adc), or [OpenLiteSpeed](https://www.litespeedtech.com/open-source/openlitespeed) with cache module (Free). Or sign up for [QUIC.cloud CDN](https://quic.cloud).
1. Install the LiteSpeed Cache for WordPress plugin and activate it.
1. From the WordPress Dashboard, navigate to **LiteSpeed Cache > Cache**, make sure the option **Enable LiteSpeed Cache** is set to `ON`.
1. Enable any desired caching and optimization features in the various tabs.

= Notes for LiteSpeed Web Server Enterprise =

* Make sure that your license includes the LSCache module. A [2-CPU trial license with LSCache module](https://www.litespeedtech.com/products/litespeed-web-server/download/get-a-trial-license "trial license") is available for free for 15 days.
* The server must be configured to have caching enabled. If you are the server admin, [click here](https://docs.litespeedtech.com/lscache/start/#configure-cache-root-and-cache-policy) for instructions. Otherwise, please request that the server admin configure the cache root for the server.

= Notes for OpenLiteSpeed =

* This integration utilizes OpenLiteSpeed's cache module.
* If it is a fresh OLS installation, the easiest way to integrate is to use [ols1clk](https://openlitespeed.org/kb/1-click-install/). If using an existing WordPress installation, use the `--wordpresspath` parameter.
* If OLS and WordPress are both already installed, please follow the instructions in [How To Set Up LSCache For WordPress](https://openlitespeed.org/kb/how-to-setup-lscache-for-wordpress/).

== Third Party Compatibility ==

The vast majority of plugins and themes are compatible with LSCache. [Our API](https://docs.litespeedtech.com/lscache/lscwp/api/) is available for those that are not. Use the API to customize smart purging, customize cache rules, create cache varies, and make WP nonce cacheable, among other things.

== Privacy ==

This plugin includes some suggested text that you can add to your site's Privacy Policy via the Guide in the WordPress Privacy settings.

**For your own information:** LiteSpeed Cache for WordPress potentially stores a duplicate copy of every web page on display on your site. The pages are stored locally on the system where LiteSpeed server software is installed and are not transferred to or accessed by LiteSpeed employees in any way, except as necessary in providing routine technical support if you request it. All cache files are temporary, and may easily be purged before their natural expiration, if necessary, via a Purge All command. It is up to individual site administrators to come up with their own cache expiration rules.

In addition to caching, our WordPress plugin has online features provided by QUIC.cloud for Image Optimization, CSS Optimization and Low Quality Image Placeholder services. When one of those optimizations are requested, data is transmitted to a remote QUIC.cloud server, processed, and then transmitted back for use on your site. Now if using the QUIC.cloud CDN it uses LSCache technologies to access your site then host your site to others globally and also your data is not transferred to or accessed by QUIC.cloud employees in any way, except as necessary in providing maintenance or technical support. QUIC.cloud keeps copies of that data for up to 7 days and then permanently deletes them. Similarly, the WordPress plugin has a Reporting feature whereby a site owner can transmit an environment report to LiteSpeed so that we may better provide technical support. None of these features collects any visitor data. Only server and site data are involved.

Please see the [QUIC.cloud Privacy Policy](https://quic.cloud/privacy-policy/) for our complete Privacy/GDPR statement.

== Frequently Asked Questions ==

= Why do the cache features require LiteSpeed Server? =
This plugin communicates with your LiteSpeed Web Server and its built-in page cache (LSCache) to deliver superior performance to your WordPress site. The plugin’s cache features indicate to the server that a page is cacheable and for how long, or they invalidate particular cached pages using tags.

LSCache is a server-level cache, so it's faster than PHP-level caches. [Compare with other PHP-based caches](https://www.litespeedtech.com/benchmarks/wordpress).

A page cache allows the server to bypass PHP and database queries altogether. LSCache, in particular, because of its close relationship with the server, can remember things about the cache entries that other plugins cannot, and it can analyze dependencies. It can utilize tags to manage the smart purging of the cache, and it can use vary cookies to serve multiple versions of cached content based on things like mobile vs. desktop, geographic location, and currencies. [See our Caching 101 blog series](https://blog.litespeedtech.com/tag/caching-101/).

If all of that sounds complicated, no need to worry. LSCWP works right out of the box with default settings that are appropriate for most sites. [See the Beginner's Guide](https://docs.litespeedtech.com/lscache/lscwp/beginner/).

**Don't have a LiteSpeed server?** Try our QUIC.cloud CDN service. It allows sites on *any server* (NGINX and Apache included) to experience the power of LiteSpeed caching! [Click here](https://quic.cloud) to learn more or to give QUIC.cloud a try.

= What about the optimization features of LSCache? =

LSCWP includes additional optimization features, such as Database Optimization, Minification and Combination of CSS and JS files, HTTP/2 Push, CDN Support, Browser Cache, Object Cache, Lazy Load for Images, and Image Optimization! These features do not require the use of a LiteSpeed web server.

= Is the LiteSpeed Cache Plugin for WordPress free? =

Yes, LSCWP will always be free and open source. That said, a LiteSpeed server is required for the cache features, and there are fees associated with some LiteSpeed server editions. Some of the premium online services provided through QUIC.cloud (CDN Service, Image Optimization, Critical CSS, Low-Quality Image Placeholder, etc.) require payment at certain usage levels. You can learn more about what these services cost, and what levels of service are free, on [your QUIC.cloud dashboard](https://my.quic.cloud).

= What server software is required for this plugin? =

A LiteSpeed solution is required in order to use the **LiteSpeed Exclusive** features of this plugin. Any one of the following will work:

1. LiteSpeed Web Server Enterprise with LSCache Module (v5.0.10+)
2. OpenLiteSpeed (v1.4.17+)
3. LiteSpeed WebADC (v2.0+)
4. QUIC.cloud CDN

The **General Features** may be used with *any* web server. LiteSpeed is not required.

= Does this plugin work in a clustered environment? =

The cache entries are stored at the LiteSpeed server level. The simplest solution is to use LiteSpeed WebADC, as the cache entries will be stored at that level.

If using another load balancer, the cache entries will only be stored at the backend nodes, not at the load balancer.

The purges will also not be synchronized across the nodes, so this is not recommended.

If a customized solution is required, please contact LiteSpeed Technologies at `info@litespeedtech.com`

NOTICE: The rewrite rules created by this plugin must be copied to the Load Balancer.

= Where are the cached files stored? =

The actual cached pages are stored and managed by LiteSpeed Servers.

Nothing is stored within the WordPress file structure.

= Does LiteSpeed Cache for WordPress work with OpenLiteSpeed? =

Yes it can work well with OpenLiteSpeed, although some features may not be supported. See **Plugin Features** above for details. Any setting changes that require modifying the `.htaccess` file will require a server restart.

= Is WooCommerce supported? =

In short, yes. However, for some WooCommerce themes, the cart may not be updated correctly. Please [visit our blog](https://blog.litespeedtech.com/2017/05/31/wpw-fixing-lscachewoocommerce-conflicts/) for a quick tutorial on how to detect this problem and fix it if necessary.

= Are my images optimized? =

Images are not optimized automatically unless you set **LiteSpeed Cache > Image Optimization > Image Optimization Settings > Auto Request Cron** to `ON`. You may also optimize your images manually. [Learn more](https://docs.litespeedtech.com/lscache/lscwp/imageopt/).

= How do I make a WP nonce cacheable in my third-party plugin? =

Our API includes a function that uses ESI to "punch a hole" in a cached page for a nonce. This allows the nonce to be cached separately, regardless of the TTL of the page it is on. Learn more in [the API documentation](https://docs.litespeedtech.com/lscache/lscwp/api/#esi). We also welcome contributions to our predefined list of known third party plugin nonces that users can optionally include via [the plugin's ESI settings](https://docs.litespeedtech.com/lscache/lscwp/cache/#esi-nonce).

= How do I enable the crawler? =

The crawler is disabled by default, and must be enabled by the server admin first.

Once the crawler is enabled on the server side, navigate to **LiteSpeed Cache > Crawler > General Settings** and set **Crawler** to `ON`.

For more detailed information about crawler setup, please see [the Crawler documentation](https://docs.litespeedtech.com/lscache/lscwp/crawler/).

= What are the known compatible plugins and themes? =

* [WPML](https://wpml.org/)
* [DoLogin Security](https://wordpress.org/plugins/dologin/)
* [bbPress](https://wordpress.org/plugins/bbpress/)
* [WooCommerce](https://wordpress.org/plugins/woocommerce/)
* [Contact Form 7](https://wordpress.org/plugins/contact-form-7/)
* [All in One SEO](https://wordpress.org/plugins/all-in-one-seo-pack/)
* [Google XML Sitemaps](https://wordpress.org/plugins/google-sitemap-generator/)
* [Yoast SEO](https://wordpress.org/plugins/wordpress-seo/)
* [Wordfence Security](https://wordpress.org/plugins/wordfence/)
* [NextGen Gallery](https://wordpress.org/plugins/nextgen-gallery/)
* [ShortPixel](https://shortpixel.com/h/af/CXNO4OI28044/)
* Aelia CurrencySwitcher
* [Fast Velocity Minify](https://wordpress.org/plugins/fast-velocity-minify/) - Thanks Raul Peixoto!
* Autoptimize
* [Better WP Minify](https://wordpress.org/plugins/bwp-minify/)
* [WP Touch](https://wordpress.org/plugins/wptouch/)
* [Theme My Login](https://wordpress.org/plugins/theme-my-login/)
* [WPLister](https://www.wplab.com/plugins/wp-lister/)
* [WP-PostRatings](https://wordpress.org/plugins/wp-postratings/)
* [Avada 5.1 RC1+](https://avada.theme-fusion.com/)
* [Elegant Themes Divi 3.0.67+](https://www.elegantthemes.com/gallery/divi/)
* [Elegant Divi Builder](https://www.elegantthemes.com/plugins/divi-builder/)
* [Caldera Forms](https://wordpress.org/plugins/caldera-forms/) 1.5.6.2+
* Login With Ajax
* [Ninja Forms](https://wordpress.org/plugins/ninja-forms/)
* [Post Types Order 1.9.3.6+](https://wordpress.org/plugins/post-types-order/)
* [BoomBox — Viral Magazine WordPress Theme](https://themeforest.net/item/boombox-viral-buzz-wordpress-theme/16596434?ref=PX-lab)
* FacetWP (LSWS 5.3.6+)
* Beaver Builder
* WpDiscuz
* WP-Stateless
* Elementor
* WS Form
* WP Statistics

The vast majority of plugins and themes are compatible with LiteSpeed Cache. The most up-to-date compatibility information can be found [in our documentation](https://docs.litespeedtech.com/lscache/lscwp/thirdparty/)

== Changelog ==

= 4.6 - Mar 29 2022 =
* **Page Optimize** Improved compatibility for JS Delay.
* 🐞**Page Optimize** Fixed an issue for network subsites that occurred when only CSS/JS Minify are enabled.
* **Localization** Added query string compatibility for Resource URLs.
* **Vary** Fixed a potential PHP warning when server variable `REQUEST_METHOD` is not detected.
* **Cache** Guest Mode now respects Cache Excludes settings.
* **GUI** Added warning notice when enabling `Localize Resources` feature; each localized JS resource requires thorough testing!
* **GUI** Fixed a PHP Deprecated warning that occurred with the Mobile Cache User Agent setting on PHP v8.1+. (jrmora)
* **Conf** Removed Google related scripts from default `Localization Files` value.
* **Media** WordPress core Lazy Load feature is now automatically disabled when LiteSpeed Lazy Load Images option is enabled. (VR51 #Issue440)
* 🐞**API** Filter `litespeed_ucss_per_pagetype` for UCSS now also applies to CSS Combine to avoid UCSS failure. (Ankit)
* **API** Added a filter `litespeed_media_ignore_remote_missing_sizes` to disable auto detection for remote images that are missing dimensions. (Lucas)

= 4.5.0.1 - Feb 24 2022 =
* 🔥🐞**Media** Fixed an issue where lazy-loaded images would disappear when using custom CSS image loading effects.

= 4.5 - Feb 23 2022 =
* 🌱**Page Optimize** Localization is back.
* **Guest** Fixed organic traffic issue as different browsers may fail to set `document.referrer`.
* **Image Optimize** Improved wp_postmeta table compatibility when gathering images. (Thanks to Thomas Stroemme)
* 🐞**Page Optimize** Fixed a potential CSS/JS 404 issue for existing records that have been marked as expired.
* **ESI** `LITESPEED_ESI_OFF` now affects `litespeed_esi_url` API filter too.
* **Guest** Added a check to determine if Guest Mode is blocked by a third-party, and display warning if it is (Ruikai)
* **Guest** To support WP sites with multiple domains, Guest Mode detection URL no longer uses domain.
* **Report** Network now shows Toolbox page when having a large number of subsites.
* **DB Optimize** Reduced default subsites count from 10 to 3 under Network Admin -> DB Optimize page to avoid timeout.
* **Cloud** Fixed potential `lack_of_token` error when requesting domain key for cases where local summary value was not historically included in the array.
* **Cloud** Fixed a PHP fatal error that occurred when encountering a frequency issue under CLI. (Dean Taylor #Issue410)
* **Avatar** Force gravatar cache refresh in browsers and on CDN (rafaucau #PR430)
* **API** New filter `litespeed_purge_ucss` to purge a single page UCSS. (#376681)
* **API** New filter `litespeed_ucss_per_pagetype` for UCSS per page type generation. (Ankit)
* **GUI** Replaced some GUI text and settings with more inclusive language  (kebbet #PR437 #PR435)
* **3rd** Excluded `WP Statistics` from inline JS optimize. (Ryan D)
* **3rd** Added API filter `litespeed_3rd_aelia_cookies` for Aelia CurrencySwitcher.
* **Media** Updated image lazyload library to 17.5.0.

= 4.4.7 - Jan 11 2022 =
* **Page Optimize** Dropped `Inline Lazy Load Images Library` option. Now will always inline lazyload library. (Ankit)
* **3rd** Prevented JavaScript files from being appended to Rank Math SEO sitemap.
* **Purge** Dropped default stale purge when purging a post.
* **Cloud** Dropped unused API calls.
* **Cloud** Dropped redundant IP validation in API calls.

= 4.4.6 - Dec 27 2022 =
* **Guest** Restored `document.referrer` for organic traffic purposes when Guest Mode is enabled. (michelefns)
* **Image Optimize** Fixed a potential PHP notice when uploading images in WP w/ PHP7.4+. (titsmaker)
* **ESI** Fixed an issue where ESI settings were not updated on customized widgets(#422 Abe)
* **3rd** Reverted ESI Adminbar change on Elementor front pages for backward compatibility (#423 Abe)
* **3rd** Fixed an issue where disabling ESI potential caused a PHP warning when using `Perfmatters`. (Jeffrey Zhang)
* **Misc** Check whether HTTP_REFERER is set or not before using it in Router class. (#425 Abe)

= 4.4.5 - Dec 1 2021 =
* **Data** Fixed potential PHP notice when generating CSS/JS optimized files w/ PHP v7.4+. (Sarah Richardson/silencedgd/slr1979)
* **API** Added `LITESPEED_ESI_OFF` constant to disable ESI, when defined before the WP `init` hook.
* **API** Added `LSCWP_DEBUG_PATH` constant to specify debug log path. (khanh-nt)
* 🐞**GUI** Fixed an issue where admin messages were not displayed. (Daniel McD)
* **CDN** Used WP remote function to communicate w/ Cloudflare per WP guidance.
* **3rd** Added compatibility for Perfmatters plugin's script manager (#417 Abe)
* **3rd** Added compatibility for Elementor's Editor button when ESI is on (#418 Abe)

= 4.4.4 - Nov 23 2021 =
* **Page Optimize** Delay deletion of outdated CSS/JS files for a default of 20 days to avoid 404 errors with cached search engine copies.
* **Cache** When caching, no longer send a purge request for CSS/JS removal to avoid cache engine conflicts.
* 🐞**Core** Optimized SQL queries while autoloading if expected options are missing; reduced by 7 and 3 queries on backend and frontend respectively. (#396425 Jackson)
* **Page Optimize** Fixed a 404 issue that occured when upgrading the plugin manually, with a package upload or through the plugin manager. (Tobolo/Małgorzata/Abe)
* **API** Added `litespeed_ccss_url` and `litespeed_ucss_url` API to manipulate the request URL for CCSS and UCSS.
* **REST** Fixed a potential warning when detecting cacheable status on REST call. (rafaucau)
* **OLS** Fixed an issue where the `COOKIEHASH` constant was undefined when used with OpenLiteSpeed as an MU plugin or with network activation.
* **3rd** Sanitized POST data for nextgengallery.
* **Cloud** Sanitized GET data when linking to QUIC.cloud. (#591762 WPScan)

= 4.4.3 - Oct 13 2021 =
* 🐞**Media** Fixed an issue where WebP is served erroneously under Guest Mode on older versions of Safari. (hash73)
* 🐞**Media** Reverted regex change to fix `Lazy Load Image Parent Class Name Excludes` failure. (thpstock)
* **Purge** Disabled `Purge Delay` in the optimization process by default.
* **Conf** Dropped `.htaccess Path Settings` options for security concern. (WP)
* **Conf** Dropped `CSS HTTP/2 Push`/`JS HTTP/2 Push` options. (Kevin)
* **Conf** Set `Guest Optimization` default to OFF.
* **Conf** Set `CCSS Per URL` default to OFF to avoid consuming more quota than intended after upgrade to v4. (n111)
* **Object** Fixed an issue with Object Cache warnings during upgrade, when Guest Mode is enabled.
* ☁️**Cloud** Fixed an issue with PHP notices when inquiring about quota usage for a service not currently in use.
* **GUI** Added GO detail warning. (n111)
* **GUI** Moved "quota wil be still in use" warning from Guest Mode to Guest Optimization section.
* **API** Added `LITESPEED_CFG_HTACCESS` PHP Constant to specify .htaccess path.
* **API** Added `litespeed_qs_forbidden` hook to bypass `?LSCWP_CTRL=` query string. (minhduc)
* **API** Added `litespeed_delay_purge` hook to delay the following Purge header until the next request.
* **API** Added `litespeed_wpconfig_readonly` hook to disable `WP_CACHE` constant update based on the wp-config.php file. (#633545)

= 4.4.2 - Sep 23 2021 =
* **Purge** In order to clear pages containing 404 CSS/JS, the purge header will always be sent even in cases where purge must be delayed.
* 🐞**Purge** Fixed a potential PHP warning caused when generating different optimized filenames.
* **Cron** Dropped unnecessary HTML response in cron which sometimes resulted in wp-cron report email. (Gilles)
* **Page Optimize** Purge caused by CSS/JS file deletion will now be silent.
* **Page Optimize** Fixed an issue where the homepage failed to purge when addressing the 404 CSS/JS issue.
* **Avatar** Fixed potential localized Avatar folder creation warning. (mattk0220/josebab)
* **API** Added filter `litespeed_optm_html_after_head` to move all optimized code(UCSS/CCSS/Combined CSS/Combined JS) to be right before the `</head>` tag. (ducpl/Kris Regmi)
* **Debug** Under debug mode, cache/purge tags will be plaintext.

= 4.4.1 - Sep 16 2021 =
* 🐞**ESI** Fixed ESI failure on non-cached pages caused by `DONOTCACHEPAGE` constant.
* 🐞**Page Optimize** Fixed an issue where the minified CSS/JS file failed to update when the file was changed. (ceap80)
* 🐞**Page Optimize** Fixed an issue where the combined CSS/JS file randomly returned a 404 error when visiting the same URL with different query strings. (Abe)
* **API** Added `litespeed_const_DONOTCACHEPAGE` hook to control the cache-or-not result of the `DONOTCACHEPAGE` constant.

= 4.4 - Sep 8 2021 =
* 🌱**Crawler** Added the ability to enable or disable specific crawlers. (⭐ Contributed by Astrid Wang #PR390)
* 🌱**UCSS** Added `UCSS Inline` option. (Ankit).
* 🌱**UCSS** Added `UCSS URI Excludes` option. (RC Verma).
* 🐞**Page Optimize** Fixed an issue where combined CSS/JS files would potentially return 404 errors after a Purge All. (Special thanks to Abe & Ruikai)
* **Page Optimize** Minimized the potential for 404 errors by query string when Purging All.
* **Page Optimize** Dropped redundant query strings for minified CSS/JS files.
* **Conf** Ugrade configuration safely to avoid the issue of new functions not being found in old codebase.
* **Conf** Configuration upgrade process now adds a notification to admin pages and disables configuration save until upgrade is complete. (Lisa)
* **JS** Fixed an issue where JS Defer caused a `litespeed_var_1_ is not defined` error when enabled w/ ESI options. (Tobolo)
* 🐞**JS** Fixed an issue where `JS Delay` doesn't work for combined JS when `JS Combine` is enabled. (Special thanks to Joshua & Ankit)
* **JS** `JS Delay` now will continue loading JS, even if there is an error in the current JS loading process.
* 🐞**CCSS** If CCSS fails to generate, Load CSS Asynchronously will now be disabled. (Stars #54074166)
* 🐞**UCSS** If UCSS generation fails the generated error will no longer be served inside the file. (Ryan D)
* **Log** Updated the Debug log to use less code for prefix.
* **3rd** Always respect `DONOTCACHEPAGE` constant defination to fix DIVI dynamic css calculation process.

= 4.3 - Aug 16 2021 =
* **UCSS** Separated UCSS Purge from CCSS Purge. (⭐ Contributed by Alice Tang #PR388)
* 🐞**Cloud** Fixed an issue where CCSS/UCSS quota data failed to update locally.
* **Cloud** Added server load as a factor when detecting node availability.
* **Cloud** Improved the speed of checking daily quota and showing the related error message.
* **Cloud** Added ability to re-detect node availability if the current node is responding w/ a heavy load code.
* **Cloud** CCSS/UCSS/LQIP queue now exits immediately when quota is depleted.
* **Cloud** Replaced separate `d/regionnodes` with a single `d/nodes` in the node list API for image optimization.
* **LQIP** Fixed an issue with LQIP network compatibility. (⭐ Contributed by Alice Tang #PR387)
* **GUEST** JS no longer preloads for Guest Optimization. (Ankit)
* 🐞**Data** Fixed an issue where deleting the `cssjs` data folder causes a failure in the upgrade process. (Joshua #PR391)
* **GUI** Fixed a potential dashboard PHP warning when no queue existed. (jrmora)
* **GUI** Added daily quota on dashboard.
* **GUI** Added downgrade warning to Toolbox -> Beta Test.
* **GUI** Tuned `.litespeed-desc` class to full width in CSS.
* **Conf** `Preserve EXIF/XMP data` now defaults to ON due to copyright concerns. (Tobolo)
* 🐞**3rd** Fixed a PHP warning when using Google AMP w/ /amp as structure. (thanhstran98)

= 4.2 - Jul 29 2021 =
* **Cloud** Auto redirect to a new node if the current node is not available anymore.
* **Cloud** Combined CCSS/UCSS to sub services of Page Optimization.
* **Cloud** Added a daily quota rate limit to help mitigate the heavy service load at the beginning of the month.
* **Cloud** Cached the node IP list in order to speed up security check. (Lucas)
* 🐞**GUEST** Fixed an issue where Guest Mode remained enabled even when the UA setting is empty. (Stars)
* **GUEST** Guest Mode will no longer cache POST requests.
* **UCSS** Purging CSS/JS now purges the UCSS queue as well, to avoid failure when generating UCSS.
* **UCSS** Separated service entry `UCSS` from `CCSS`.
* **CCSS** Simplified `load_queue/save_queue/build_filepath_prefix` functions. (⭐ Contributed by Alice Tang #PR373)
* **CCSS** If CCSS request fails, details are now saved in the CSS file.
* **CCSS** Renamed CCSS ID in inline HTML from `litespeed-optm-css-rules` to `litespeed-ccss`. (Alice)
* **Page Optimize** CCSS/UCSS now supports Cloud queue/notify for asynchronous generation.
* **Page Optimize** Simplified CCSS/UCSS generation function.
* **Page Optimize** Added the ability to cancel CCSS/UCSS Cloud requests.
* **Page Optimize** Unnecessary quesry strings will now be dropped from CSS/JS combined files.
* **Crawler** Reset position now resets crawler running status too.
* **REST** Cloud request to REST will now detect whether an IP in in the Cloud IP list for security reasons.
* **Object** Enhanced Object Cache compatibility for `CONF_FILE` constant detection.
* **API** Added shorter alias `litespeed_tag` and other similar aliases for Cache Tag API.
* **API** Renamed `LITESPEED_BYPASS_OPTM` to `LITESPEED_NO_OPTM` for Page Optimization.
* **Toolbox** Dropped v3.6.4- versions in Beta Test as they will cause a fatal error in downgrade.
* **GUI** Added shortcut links to each section on the Dashboard.
* **GUI** Added UCSS whitelist usage description. (wyb)
* **GUI** Showed the default recommended values for Guest Mode UA/IPs.
* **3rd** Fixed AMP plugin compatibility. (⭐ Contributed by Alice Tang #PR368)
* **3rd** Bypassed all page optimization including CDN/WebP for AMP pages.
* **3rd** Improved compatibility with All in One SEO plugin sitemap. (arnaudbroes/flschaves #Issue372)
* **3rd** Added wsform nonce. (#365 cstrouse)
* **3rd** Added Easy Digital Download (EDD) & WP Menu Cart nonce. (#PR366 AkramiPro)
* **3rd** Improved compatibility w/ Restrict Content Pro. (Abe #PR370)
* **3rd** Improved compatibility w/ Gravity Forms. (Ruikai #371)

= 4.1 - Jun 25 2021 =
* 🌱**UCSS/CCSS/LQIP** Moved queue storage to file system from database wp-options table to lessen the IO load. (#633504)
* 🌱**3rd** Added an option to disable ESI for the WooCommerce Cart. (#358 Anna Feng/Astrid Wang)
* **ESI** Fixed an ESI nonce issue introduced in v4.0. (Andrew Choi)
* **Object** Used new `.litespeed_conf.dat` instead of `.object-cache.ini` for object cache configuration storage.
* **Conf** Now updating related files after plugin upgrade and not just after activation.
* 🌱**Guest** Added a Guest Mode JS Excludes option. (Ankit/Mamac/Rcverma)
* **Guest** Guest Mode now uses a lightweight script to update guest vary for reduced server load.
* **Guest** Guest Mode now adds missing image dimensions.
* **Guest** Guest vary will no longer update if there's already a vary in place to address the infinite loop caused by CloudFlare's incorrect cache control setting for PHP.
* **Guest** Guest vary update request will no longer be sent if `lscache_vary` is already set.
* **Guest** Added a Configurable Guest Mode UA/IP under the Tuning tab in the General menu.
* **Guest** Guest Mode now allows cron to be hooked, even when UCSS/CCSS options are off. (#338437 Stars)
* **Guest** Simplified the vary generation process under Guest Mode.
* **Guest** Added a Guest Mode HTML comment for easier debugging. (Ruikai)
* **Guest** Guest vary update ajax now bypasses potential POST cache.
* **CCSS** Added back the options `Separate CCSS Cache Post Types` and `Separate CCSS Cache URIs`. (Joshua/Ankit)
* **CCSS** CCSS/UCSS queue is now limited to a maximum of 500 entries.
* **Control** The cache control constant `LSCACHE_NO_CACHE` will now have a higher priority than the Forced Public Cache setting.
* **Crawler** The Crawler can now crawl Guest Mode pages.
* **Crawler** Fixed a potential XSS vulnerability in the Crawler settings. (#927355)
* **Crawler** The Crawler now supports a cookie value of `_null`. (Tobolo)
* **Media** Updated the default value for the Responsive Placeholder SVG to be transparent.
* **Media** WebP images in the background may now be served in Guest Mode.
* **Media** WebP images in CSS may now be bypassed if the requesting Guest Mode client doesn't support WebP.
* **Media** Fixed empty default image placeholder under Guest Mode.
* 🐞**Image Optimize** Changed the missing `$_POST` to `$post_data` so the database status is properly updated. (#345 Lucas)
* **Import** Export file is now readable to allow importing of partial configurations. (Ryan D/Joshua)
* **Page Optimize** Fixed W3 validator errors in Guest Mode. (#61393817)
* **3rd** A fatal WooCommerce error is no longer triggered by a custom theme reusing a previous LSCWP cache detection tag.
* **3rd** AMP may now bypass Guest Mode automatically.
* **Localize** Dropped the `Localize Resources` option as Guest Mode is a sufficient replacement. (Note: Due to user feedback during the development period, we have decided to reinstate this option in a future version.)
* **Cloud** Changed the WP API url.
* **Lang** Corrected a missing language folder.
* **GUI** Added a CCSS/UCSS loading page visualization. (⭐ Contributed by Astrid Wang & Anna Feng #PR360)
* **GUI** Added a warning to indicate when Guest Mode CCSS/UCSS quota is in use. (Contributed by Astrid Wang & Anna Feng #PR361)
* **GUI** Added a `litespeed-info` text color. (Astrid Wang)
* **GUI** Implemented various UI/UX improvements. (Joshua/Lisa)
* **GUI** Duplicate cloud service messages with the same content will only display once now. (Marc Dahl)
* **GUI** Added a WebP replacement warning for Guest Mode Optimization if WebP replacement is off.
* **Misc** Dropped `wp_assets` from distribution to reduce the package size. (lowwebtech)
* **Misc** Increased the new version and score detection intervals.
* **Misc** Optimized WP Assets images. (#352 lowwebtech)
* **Debug** Dropped the redundant error_log debug info.

= 4.0 - Apr 30 2021 =
* 🌱🌱🌱**Guest** Introduced `Guest Mode` for instantly cacheable content on the first visit.
* 🌱**UCSS** Added a new service: `Unique CSS`, to drop unused CSS from elements from combined CSS
* 🌱**CCSS** Added `HTML Lazyload` option. (Ankit)
* 🌱**CCSS** Added `CCSS Per URL` option to allow Critical CSS to be generated for each page instead of for each Post Type.
* 🌱**Media** Added `Add Missing Sizes` setting for improving Cumulative Layout Shift. (Fahim)
* 🌱**JS** Switched to new JS minification library for better compression and compatibility w/ template literals. (LuminSol)
* **Media** WebP may now be replaced in CSS.
* **Media** Can now drop image tags in noscript to avoid lazyload. (Abe #314 /mattthomas-photography)
* **Media** Bypass optimization if a page is not cacheable.
* **Image Optimize** Auto hook to `wp_update_attachment_metadata` to automate image gathering process, and to handle the new thumbnail generation after images are uploaded. (smerriman).
* **Image Optimize** Repeated image thumbnails won't be gathered anymore.
* **Image Optimize** Simplified the rescan/gather/upload_hook for existing image detection.
* **Image Optimize** Fixed the duplicated optimize size records in the postmeta table. (Abe #315)
* **Image Optimize** Allow either JSON POST request or normal form request in `notify_img`. (Lucas #313)
* **Image Optimize** Optimized SQL query for better efficiency. (lucas/Lauren)
* **Image Optimize** Fixed issue where rescan mass created duplicate images. (#954399)
* **Image Optimize** Image optimization pie will not show 100% anymore if there is still a small amount in the unfinished queue.
* **Image Optimize** WebP generation defaults to ON for Guest Mode.
* **Image Optimize** `Priority Line` package now can have smaller request interval.
* **ESI** Disable ESI when page is not cacheable. (titsmaker)
* **ESI** Fixed an issue where Divi was disabling all in edit mode, but couldn't disable ESI. (Abe)
* **ESI** ESI init moved under `init` hook from `plugin_loaded` hook.
* **CDN** Add basic support for CloudFlare API Tokens (Abe #320)
* **CSS** Simplified `Font Display Optimization` option.
* **CSS** Fixed manual cron timeout issue. (jesse Distad)
* **CSS** Inline CSS may now use `data-no-optimize` to be excluded from optimization. (popaionut)
* **JS** Combined `Load JS Defer` and `Load Inline JS Defer` options.
* **JS** Forced async to defer.
* **JS** Moved Google Analytics JS from constant default to setting default for removal.
* **JS** Fixed potential JS parsing issue caused by JS src being changed to data-src by other plugins. (ankit)
* **JS** Excluded spotlight from JS optimize. (tobolo)
* **CCSS** Fixed CCSS/UCSS manual cron timeout issue.
* **CCSS** Only 10 items will be kept for CCSS history.
* **CCSS** The appearance of CCSS Purge in the topbar menu will be determined by the existance of CCSS cache, and not the setting only.
* **CCSS** To avoid stuck queues when the current request keeps failing, the CCSS queue will always drop once requested.
* **CCSS** CCSS will no longer hide adminbar.
* **CCSS** CCSS may now be separate for network subsites. (Joshua)
* **CCSS** Gave CCSS a unique filename per URL per user role per subsite.
* **CCSS** Dropped `Separate CCSS Cache Post Types` option.
* **CCSS** Dropped `Separate CCSS Cache URIs` option.
* **CCSS** Subsites purge Avatar/CSS/JS/CCSS will not affect the whole network anymore.
* **CCSS** Implemented a better queue list for CCSS that auto collapses if there are more than 20 entries, and shows the total on top.
* **CSSJS** Now using separate CSS and JS folders instead of `cssjs`.
* **CSSJS** Automatically purge cache after CCSS is generated.
* **Network** Dropped network CSS/JS rewrite rules.
* **Cache** Send cache tag header whenever adding a tag to make it effective in the page optimization process.
* **Core** Used hook for buffer optimization; Used `init()` instead of `constructor`.
* **Object** Used `cls` instead of `get_instance` for init.
* **Cloud** Replaced one-time message with a dismissible-only message when the domain key has been automatically cleared due to domain/key dismatch.
* **API** Dropped function `hook_vary_add()`.
* **API** Dropped function `vary_add()`.
* **API** Dropped function `filter_vary_cookies()`.
* **API** Dropped function `hook_vary()`.
* **API** Dropped action `litespeed_vary_add`.
* **API** Dropped filter `litespeed_api_vary`.
* **API** Use `litespeed_vary_curr_cookies` and `litespeed_vary_cookies` for Vary cookie operations instead.
* **API** Dropped action `litespeed_vary_append`.
* **Vary** 3rd party vary cookies will not append into .htaccess anymore but only present in response vary header if in use.
* **Vary** Dropped function `append()`.
* **Vary** Commenter cookie is now considered cacheable.
* **Crawler** Minor update to crawler user agent to accommodate mobile_detect.php (Abe #304)
* **Data** Added a table truncate function.
* **Data** Added new tables url & url_file.
* **Data** Dropped cssjs table.
* **Data** Options/Summary data is now stored in JSON format to speed up backend visit. (#233250)
* **Data** Default `CSS Combine External and Inline` and `JS Combine External and Inline` to On for new installations for better compatibility.
* **Purge** Fixed potential purge warning for certain themes.
* **Purge** Purge will be stored for next valid visit to trigger if it is initially generated by CLI.
* **Page Optimize** `CSS Combine`/`JS Combine` will now share the same file if the contents are the same. Limited disk usage for better file usage and fewer issues with random string problems.
* **Page Optimize** Dropped option CSS/JS Cache TTL.
* **Page Optimize** Bypass optimization if page not cacheable.
* **Page Optimize** Purge CSS/JS will purge the `url_file` table too.
* **Page Optimize** Optionally store a vary with a shorter value.
* **Page Optimize** Removing query strings will no longer affect external assets. (ankit)
* **Page Optimize** Better regex for optimization parsing.
* **Page Optimize** Eliminated w3 validator for DNS prefetch and duplicated ID errors. (sumit Pandey)
* **Page Optimize** New Optimization for Guest Only option under Tuning.
* **Page Optimize** Now forbidding external link redirection for localization.
* **Debug** Implemented a better debug format for the 2nd parameter in the log.
* **GUI** Bypass page score banner when score is not detected (both 0). (ankit)
* **GUI** Fixed deprecated JQuery function warning in WP-Admin. (krzxsiek)

= 3.6.4 - Mar 15 2021 =
* **Toolbox** Fixed Beta Test upgrade error when upgrading to v3.7+.

= 3.6.3 - Mar 10 2021 =
* **Core** Fixed potential upgrade failure when new versions have changes in activation related functions.
* **Core** Upgrade process won't get deactivated anymore on Network setup.

= 3.6.2 - Feb 1 2021 =
* **Page Optimize** Fixed an issue where network purge CSS/JS caused 404 errors for subsites.
* **Page Optimize** Fixed an issue where purge CSS/JS only caused 404 errors.
* **Page Optimize** Added a notice for CSS/JS data detection and potential random string issue.
* **Page Optimize** Limited localization resources to specified .js only. (closte #292/ormonk)
* **JS** Data src may now be bypassed from JS Combine. (ankit)
* **CLI** Fixed a message typo in Purge. (flixwatchsupport)
* **Browser** Added font/otf to Browser Cache expire list. (ruikai)
* **Data** Updated data files to accept PR from dev branch only.
* **3rd** Add data-view-breakpoint-pointer to js_excludes.txt for the Events Calendar plugin. (therealgilles)
* **Cloud** Bypassed invalid requests.
* **Doc** CDN Mapping description improvement. (mihai A.)

= 3.6.1 - Dec 21 2020 =
* **WP** Tested up to WP v5.6.
* **WebP** Reverted WebP support on Safari Big Sur and Safari v14.0.1+ due to an inability to detect MacOS versions from UA. (@antomal)
* **CDN** Dropped the option `Load JQuery Remotely`.
* **CDN** Fixed CDN URL replacement issue in optimized CSS files. (@ankit)
* **CDN** Fixed an issue where CDN CLI wouldn't set mapping image/CSS/JS to OFF when `false` was the value.
* **CDN** Started using React for CDN Mapping settings.
* **GUI** Secured Server IP setting from potential XSS issues. (@WonTae Jang)
* **Toolbox** Supported both dev and master branches for Beta Test. Latest version updated to v3.6.1.
* **Purge** Purge Pages now can purge non-archive pages too.
* **Admin** Simplified the admin JS.
* **Admin** Limited crawler-related react JS to crawler page only.

= 3.6 - Dec 14 2020 =
* 🌱**WebP** Added WebP support on Safari Big Sur or Safari v14.0.1+. (@ruikai)
* 🐞**Config** Fixed an issue where new installations were not getting the correct default .htaccess content.
* **Crawler** Will auto bypass empty sub-sitemap instead of throwing an exception. (@nanoprobes @Tobolo)
* **Crawler** Now using React for Cookie Simulation settings instead of Vue.js. Dropped Vue.js.
* **Crawler** Dropped `Sitemap Generation` (will only use 3rd party sitemap for crawler).
* **CSS** Added `CSS Combine External and Inline` option for backward compatibility. (@lisa)
* **Object** Forbid .object-cache.ini visits. (@Tarik)
* **Page Optimize** Dropped `Remove Comments` option to avoid combine error.
* **CSS** Added a predefined CSS exclude file `data/css_excludes.txt`.
* **CSS** Excluded Flatsome theme random inline CSS from combine.
* **CSS** Excluded WoodMart theme from combine. (@moemauphie)
* **Page Optimize** Excluded tagDiv.com Newspaper theme dynamic CSS/JS from CSS/JS Combine.
* **CSS** Added predefined JS defer excludes list. (@Shivam)
* **JS** `data-no-defer` option now supports inline JS. (@rafaucau)
* **Media** Lazyload inline library is now bypassed by JS Combine.
* **Admin** Fixed WP-Admin console ID duplicate warnings.
* **Cloud** Dropped QUIC.cloud sync options that have long been unused.
* **CSS** Dropped `Unique CSS File` option (UCSS will always generate unique file, will use whitelist to group post type to one CSS).
* **GUI** Dropped Help tab.
* **Toolbox** Added 3.5.2 to version list.

= 3.5.2 - Oct 27 2020 =
* **CSS** `CSS Combine` is now compatible w/ inline noscript CSS. (@galbaras)
* **GUI** Added ability to manually dismiss the JS option reset message in v3.5.1 upgrade process. (#473917)
* 🐞**CSS** `CSS Excludes` setting will no longer lose items beginning w/ `#`. (@ankit)
* **API** New `litespeed_media_reset` API function for image editing purposes. (@Andro)

= 3.5.1 - Oct 20 2020 =
* **JS** Inline JS containing nonces can now be combined.
* **JS** Reset JS Combine/Defer to OFF when upgrading to avoid breaking sites.
* **JS** Added new option JS Combine External and Inline to allow backwards compatibility.
* **JS** Added Inline JS Defer option back. (@ankit)
* **Page Optimize** Dropped Inline JS Minify option and merged the feature into JS Minify.
* **JS** Pre-added jQuery to the default JS excludes/defer list for better layout compatibility for new users.
* **JS** Excluded Stripe/PayPal/Google Map from JS optimization. (@FPCSJames)
* **JS** Allowed excluded JS to still be HTTP2 pushed. (@joshua)
* **CCSS** Critical CSS now can avoid network pollution from other sites. (@ankit)
* **Toolbox** Beta Test now displays recent public versions so it is easier to revert to an older version
* **Vary** Server environment variable Vary can now be passed to original server from QUIC.cloud for non-LiteSpeed servers.
* **ESI** Improved backward compatibility for ESI nonce list. (@zach E)
* 🐞**Misc** Fixed failure of upgrade button on plugin news banner and made cosmetic improvements.
* **Doc** Added note that LSCWP works with ClassicPress.

= 3.5.0.2 - Sep 30 2020 =
* This is a temporary revert fix. Code is SAME as v3.4.2.

= 3.5.0.1 - Sep 29 2020 =
* 🔥🐞**CSS** Fixed print media query issue when having CSS Combine. (@paddy-duncan)

= 3.5 - Sep 29 2020 =
* **Page Optimize** Refactored CSS/JS optimization.
* **Page Optimize** CSS and JS Combine now each save to a single file without memory usage issues.
* **CSS** Inline CSS Minify is now a part of CSS Minify, and will respect thr original priorities. (thanks to @galbaras)
* **JS** JS Combine now generates a single JS file in the footer. (Special thanks to @ankit)
* **JS** JS Combine now combines external JS files, too. (Thanks to @ankit)
* **JS** JS Deferred Excludes now uses the original path/filename as keywords instead of the minified path/filename, when JS Minify is enabled.
* **JS** JS Combine now combines inline JS, too.
* **JS** JS Excludes may now be used for inline JS snippet.
* **Page Optimize** Inline CSS Minify and Max Combined File Size retired due to changes listed above.
* **CSS** Combined CSS Priority retired due to changes listed above.
* **JS** Exclude JQuery, Combined JS Priority, Load Inline JS Deferred, and Inline JS Deferred Excludes retired due to changes listed above.
* **JS** Predefined data file data/js_excludes.txt now available for JS Excludes.
* **ESI** Predefined data file data/esi.nonces.txt now available for ESI Nonces.
* **ESI** Remote Fetch ESI Nonces functionality retired.
* **API** Added support for new litespeed_esi_nonces filter.
* **Object** Object Cache will not try to reconnect after failure to connect in a single process.
* **CCSS** Remote read CSS will add the scheme if it is missing from the URL.
* **CCSS** CSS will no longer be prepared for a URL if 404 result is detected.
* **CCSS** Fixed most failures caused by third party CSS syntax errors.
* **CCSS** Remote read CSS will fix the scheme if the URL doesn't have it.
* **CCSS** Excluded 404 when preparing CSS before request.
* **CCSS** Adjusted CCSS timeout from 180 seconds to 30 seconds.
* **Image Optimize** Fixed the delete attachment database error that occurred when not using the image optimization service yet.
* **Media** Added iOS 14 WebP support.
* **Data** Fixed database creation failure for MySQL v8.
* **Cloud** Error code err_key will clear the domain key in order to avoid duplicate invalid requests.
* **Network** Fixed issue with object cache password file storage that occurred when resaving the settings. (#302358)
* **Misc** Fixed IP detect compatibility w/ Apache.
* **GUI** Fixed the description for Do Not Cache Categories.
* **Preload** Upgraded Instant Click to a new stable preload library. (@stasonua0)

= 3.4.2 - Sep 8 2020 =
* **CCSS** Corrected the issue that wrongly appended non-CSS files to CSS in links before sending request.
* **3rd** YITH wishlist now sends a combined single sub request for all widgets contained in one page. (LSWS v5.4.9 build 3+ required)
* **ESI** Added support for ESI combine feature.
* **GUI** Dropped banner notification for missing domain key when domain key is not initialized.
* **Log** When QC whitelist check fails, a detailed failure log is now appended.

= 3.4.1 - Sep 2 2020 =
* 🐞**CCSS** Fixed an issue where dynamically generated CSS failed with `TypeError: Cannot read property type of undefined`.
* 🐞**Page Optimize** Fixed CSS optimization compatibility for CSS dynamically generated with PHP.
* **Page Optimize** Added the ability to defer JS even when the resource is excluded from other JS optimizations. (@slr1979)
* **ESI** Added support for ESI last paramater inline value.
* **3rd** YITH Wishlist, when cached for the first time, will no longer send sub requests.

= 3.4 - Aug 26 2020 =
* 🌱**LQIP** New setting **LQIP Excludes**.
* 🌱**LQIP** Added a Clear LQIP Queue button.
* 🌱**CCSS** Added a Clear CCSS Queue button.
* **CCSS** Fixed an issue which wrongly included preloaded images in CCSS. (@pixtweaks)
* **Network** Primary site and subsite settings now display correctly.
* **Page Optimize** Noscript tags generated by LSCWP will only be dropped when the corresponding option is enabled. (@ankit)
* **DB Optimize** Fixed database optimizer conflicts w/ object cache transient setting. (#752931)
* **3rd** Fixed an issue with WooCommerce product purge when order is placed.
* **3rd** Improved WooCommerce product comment compatibility with **WooCommerce Photo Reviews Premium** plugin when using ESI.
* **CDN** Fixed Remote jQuery compatibility with WordPress v5.5. (@pixtweaks)
* **API** New API `litespeed_purge_all_object` and `litespeed_purged_all_object` action hooks.

= 3.3.1 - Aug 12 2020 =
* 🌱**Page Optimize** New option to Remove Noscript Tags. (@phuc88bmt)
* 🐞**LQIP** Fixed a critical bug that bypassed all requests in v3.3.
* **LQIP** Requests are now bypassed if domain has no credit left.
* **Page Optimize** Inline defer will be bypassed if document listener is detected in the code. (@ssurfer)
* **CCSS** Print-only styles will no longer be included in Critical CSS.
* **API** Added hooks to Purge action to handle file deletions. (@biati)
* **Cloud** Plain permalinks are no longer required for use of cloud services.
* **Data** Added an access denial to work with OpenLiteSpeed. (@spenweb #PR228)
* **GUI** Spelling and grammar adjustments. (@blastoise186 #PR253)

= 3.3 - Aug 6 2020 =
* 🌱**Page Optimize** Added a new setting, Inline JS Deferred Excludes. (@ankit)
* **Page Optimize** CSS/JS Combine/Minify file versions will be differentiated by query string hash instead of new filename to reduce DB/file system storage.
* **Page Optimize** Added the ability to use local copies of external JS files for better control over page score impacts.
* **Page Optimize** Improved combination of CSS media queries. (@galbaras)
* **Page Optimize** Reprioritized Inline JS Defer to be optimized before encoding, for a significantly smaller result.
* **LQIP** Detect if the file exists before sending LQIP request to QUIC.cloud.
* **CCSS** Sped up CCSS process significantly by sending HTML and CSS in request.
* **CCSS** Improvements to mobile CSS support in CCSS.
* **CCSS** Minimize CCSS failures by attempting to automatically fix CSS syntax errors.
* **Cloud** Domain Key will be deleted after QUIC.cloud site_not_registered error to avoid endless repeated requests.
* **CDN** CDN Original URL will default to WP Site URL if not set. (@ruikai)
* **CLI** Global output format `--format=json/yaml/dump` and `--json` support in CLI. (@alya1992)
* **CDN** Improved handling of non-image CSS `url()` sources in CDN. (@daniel McD)
* 🐞**CDN** Fixed CDN replacement conflict w/ JS/CSS Optimize. (@ankit)
* **Crawler** Only reset Crawler waiting queues when crawling begins. (@ruikai)
* **Network** Network Enable Cache is no longer reset to ON Use Network Settings in enabled. (@RavanH)
* 🐞**Activation** Fixed a PHP warning that appeared during uninstall. (@RavanH)
* **Debug** Automatically omit long strings when dumping an array to debug log.
* **Report** Subsites report now shows overwritten values along w/ original values. (#52593959)
* **REST** Improved WP5.5 REST compatibility. (@oldrup)
* **GUI** Server IP setting moved from Crawler menu to General menu.
* **GUI** Localize resources moved to Localization tab.
* **Config** News option now defaults to ON.

= 3.2.4 - Jul 8 2020 =
* **Object** New installations no longer get custom data.ini reset, as this could cause lost configuration. (@Eric)
* **ESI** Now using `svar` to load nonces more quickly. (@Lauren)
* **ESI** Fixed the conflicts between nonces in inline JS and ESI Nonces when Inline JS Deferred is enabled. (@JesseDistad)
* 🐞**ESI** Fixed Fetch Latest Predefined Nonce button.
* 🐞**Cache** Fixed an issue where mobile visits were not being cached when Cache Mobile was disabled.
* **CDN** Bypass CDN constant `LITESPEED_BYPASS_CDN` now will apply to all CDN replacements.
* **Router** Dropped `Router::get_uid()` function.
* **Crawler** Updated role simulator function for future UCSS usage.
* **GUI** Textarea will now automatically adjust the height based on the number of rows input.
* **CLI** Fixed an issue that caused WP-Cron to exit when a task errored out. (@DovidLevine @MatthewJohnson)
* **Cloud** No longer communcate with QUIC.cloud when Domain Key is not set and Debug is enabled.
* **Cloud** Score banner no longer automatically fetches a new score. (@LucasRolff)

= 3.2.3.2 - Jun 19 2020 =
* 🔥🐞**Page Optimize** Hotfix for CSS/JS minify/combine. (@jdelgadoesteban @martin_bailey)

= 3.2.3.1 - Jun 18 2020 =
* **API** New filter `litespeed_buffer_before` and `litespeed_buffer_after`. (#PR243 @joejordanbrown)

= 3.2.3 - Jun 18 2020 =
* 🌱**Page Optimize** Added Unique CSS option for future removal of unused CSS per page. (@moongear)
* **Page Optimize** Fixed an issue where Font Optimization could fail when having Load JS Deferred and Load Inline JS Deferred. (#PR241 @joejordanbrown)
* 🐞**Page Optimize** Fixed an issue with Font Display Optimization which caused Google Fonts to load incorrectly. (#PR240 @joejordanbrown @haidan)
* 🐞**Network** Use Primary Site Configuration setting for network sites now works properly with Object Cache and Browser Cache. (#56175101)
* **API** Added filter `litespeed_is_from_cloud` to detect if the current request is from QC or not. (@lechon)
* **ESI** ESI Nonce now can fetch latest list with one click.
* **GUI** Updated remaining documentation links & some minor UI tweaks. (@Joshua Reynolds)

= 3.2.2 - Jun 10 2020 =
* 🌱**Purge** Scheduled Purge URLs now supports wildcard. (#427338)
* 🌱**ESI** ESI Nonce supports wildcard match now.
* **Network** Use Primary Site Settings now can support Domain Key, and override mechanism improved. (@alican532 #96266273)
* **Cloud** Debug mode will now have no interval limit for most cloud requests. (@ruikai)
* **Conf** Default Purge Stale to OFF.
* **GUI** Purge Stale renamed to Serve Stale.
* **Data** Predefined nonce list located in `/litespeed-cache/data/esi.nonce.txt`. Pull requests welcome.
* **Debug** Limited parameter log length.
* 🐞**CDN** Fixed an issue where upgrading lost value of CDN switch setting. (#888668)
* **3rd** Caldera Forms ESI Nonce enhancement. (@paconarud16 @marketingsweet)
* **3rd** Elementor now purges correctly after post/page updates.
* **3rd** Disabled Page Optimization features on AMP to avoid webfont JS inject. (@rahulgupta1985)

= 3.2.1 - Jun 1 2020 =
* **Cloud** LQIP/CCSS rate limit tweaks. (@ianpegg)
* **Admin** Improved frontend Admin Bar menu functionality. (#708642)
* **Crawler** Fixed an issue where cleaning up a crawler map with a leftover page number would cause a MySQL error. (@saowp)
* **Image Optimize** Added WP default thumbnails to image optimization summary list. (@johnny Nguyen)
* **REST** Improved REST compatibility w/ WP4.4-. (#767203)
* **GUI** Moved Use Primary Site Configuration to General menu. (@joshua)

= 3.2 - May 27 2020 =
* **Image Optimize** Major improvements in queue management, scalability, and speed. (@LucasRolff)
* **Cloud** Implemented a series of communication enhancements. (@Lucas Rolff)
* **Crawler** Enhanced PHP 5.3 compatibility. (@JTS-FIN #230)
* **Page Optimize** Appended image template in wpDiscuz script into default lazyload image exclude list. (@philipfaster @szmigieldesign)
* **Page Optimize** Eliminated the 404 issue for CSS/JS in server environments with missing SCRIPT_URI. (@ankit)
* **Data** ENhanced summary data storage typecasting.

= 3.1 - May 20 2020 =
* 🌱**Network** Added Debug settings to network level when on network.
* 🐞**Purge** Network now can purge all.
* 🐞**Network** Fixed issue where saving the network primary site settings failed.
* **Network** Moved Beta Test to network level when on network.
* 🐞**Cache** Fixed issue in admin where new post editor was wrongly cached for non-admin roles. (@TEKFused)
* 🐞**Data** Fixed issue with crawler & img_optm table creation failure. (@berdini @piercand)
* 🐞**Core** Improved plugin activation compatibility on Windows 10 #224 (@greenphp)
* **Core** Improved compatibility for .htaccess path search.
* **Object** Catch RedisException. (@elparts)
* Fixed Script URI issue in 3.0.9 #223 (@aonsyed)
* **Image Optimize** Show thumbnail size set list in image optimization summary. (@Johnny Nguyen)
* **Debug** Parameters will now be logged.

= 3.0.9 - May 13 2020 =
* **Purge** Comment cache can be successfully purged now.
* **Data** Better MySQL charset support for crawler/image optimize table creation. (@Roshan Jonah)
* **API** New hook to fire after Purge All. (@salvatorefresta)
* **Crawler** Resolve IP for crawler.
* **Task** PHP5.3 Cron compatibility fix.
* **3rd** Elementor edit mode compatibility.
* **Page Optimize** Fixed an issue where Purge Stale returned 404 for next visitor on CSS/JS.
* **Page Optimize** Fixed the PHP warning when srcset doesn't have size info inside. (@gvidano)
* **Cloud** Fixed the potential PHP warning when applying for the domain key.
* **Core** PHP __DIR__ const replacement. (@MathiasReker)

= 3.0.8.6 - May 4 2020 =
* **CCSS** Bypassed CCSS functionality on frontend when domain key isn't setup yet.
* **Cloud** Fixed WP node redetection bug when node expired. (@Joshua Reynolds)
* **Crawler** Fixed an issue where URL is wrongly blacklisted when using ADC.

= 3.0.8.5 - May 1 2020 =
* 🔥🐞**3rd** Hotfix for WPLister critical error due to v3.0.8.4 changes.
* **Image Optimize** Unfinished queue now will get more detailed info to indicate the proceeding status on node.
* **CLI** Options can now use true/false as value for bool. (@gavin)
* **CLI** Detect error if the ID does not exist when get/set an option value.
* **Doc** An API comment typo for `litespeed_esi_load-` is fixed.

= 3.0.8.4 - Apr 30 2020 =
* 🌱**Crawler** New setting: Sitemap timeout. (#364607)
* **Image Optimize** Images that fail to optimize are now counted to increase next request limit.
* **Cloud** Redetect fastest node every 3 days.
* **Cloud** Suppressed auto upgrade version detection error. (@marc Dahl)
* **3rd** 3rd party namespace compatibility. (#366352)

= 3.0.8.3 - Apr 28 2020 =
* **Cloud** Better compatibility for the Link to QUIC.cloud operation. (@Ronei de Sousa Almeida)
* **Image Optimize** Automatically clear invalid image sources before sending requests. (@Richard Hordern)

= 3.0.8.2 - Apr 27 2020 =
* **GUI** Corrected the Request Domain Key wording.

= 3.0.8.1 - Apr 27 2020 =
* **Object** Object cache compatibility for upgrade from v2.9.9- versions.

= 3.0.8 - Apr 27 2020 =
* Released v3 on WordPress officially.

= 3.0.4 - Apr 23 2020 =
* **Cloud** Apply Domain Key now receives error info in next apply action if failed to generate.
* **GUI** Apply Domain Key timeout now displays troubleshooting guidance.
* **REST** Added /ping and /token to REST GET for easier debug.
* **Cache** Dropped `advanced-cache.php` file detection and usage.

= 3.0.3 - Apr 21 2020 =
* **Conf** Settings from all options (data ini, defined constant, and forced) will be filtered and cast to expected type.
* **Upgrade** CDN mapping and other multiple line settings will now migrate correctly when upgrading from v2 to v3.

= 3.0.2 - Apr 17 2020 =
* **GUI** More guidance on domain key setting page.
* **Cloud** Now Apply Domain Key will append the server IP if it exists in Crawler Server IP setting.

= 3.0.1 - Apr 16 2020 =
* **Data** Increased timeout for database upgrade related to version upgrade. Display a banner while update in progress.
* **Page Optimize** All appended HTML attributes now will use double quotes to reduce the conflicts when the optimized resources are in JS snippets.

= 3.0 - Apr 15 2020 =
* 🌱**Media** LQIP (Low Quality Image Placeholder).
* 🌱**Page Optimize** Load Inline JS Deferred Compatibility Mode. (Special thanks to @joe B - AppsON)
* 🌱**Cloud** New QUIC.cloud API key setting.
* 🌱**ESI** New ESI nonce setting.
* 🌱**Media** JPG quality control. (@geckomist)
* 🌱**Media** Responsive local SVG placeholder.
* 🌱**Discussion** Gravatar warmup cron.
* 🌱**DB** Table Engine Converter tool. (@johnny Nguyen)
* 🌱**DB** Database summary: Autoload size. (@JohnnyNguyen)
* 🌱**DB** Database summary: Autoload entries list.
* 🌱**DB** Revisions older than. (@thememasterguru)
* 🌱**Cache** Forced public cache setting. (#308207)
* 🌱**Crawler** New timeout setting to avoid incorrect blacklist addition. (#900171)
* 🌱**Htaccess** Frontend & backend .htaccess path customize. (@jon81)
* 🌱**Toolbox** Detailed Heartbeat Control (@K9Heaven)
* 🌱**Purge** Purge Stale setting.
* 🌱**Page Optimize** Font display optimization. (@Joeee)
* 🌱**Page Optimize** Google font URL display optimization.
* 🌱**Page Optimize** Load Inline JS deferred.
* 🌱**Page Optimize** Store gravatar locally. (@zzTaLaNo1zz @JohnnyNguyen)
* 🌱**Page Optimize** DNS prefetch control setting.
* 🌱**Page Optimize** Lazy Load Image Parent Class Name Excludes. (@pako69)
* 🌱**Page Optimize** Lazy load iframe class excludes. (@vnnloser)
* 🌱**Page Optimize** Lazy load exclude URIs. (@wordpress_fan1 @aminaz)
* 🌱**GUI** New Dashboard and new menus.
* 🌱**Image Optimize** Supported GIF WebP optimization. (@Lucas Rolff)
* 🌱**Image Optimize** New workflow for image optimization (Gather first, request second).
* 🌱**Image Optimize** The return of Rescan.
* 🌱**CLI** Get single option cmd.
* 🌱**CLI** QUIC.cloud cmd supported.
* 🌱**CLI** CLI can send report now.
* 🌱**Health** Page speed and page score now are in dashboard.
* 🌱**Conf** Supported consts overwritten of `LITESPEED_CONF__` for all settings. (@menathor)
* 🌱**REST** New REST TTL setting.  (@thekendog)
* 🌱**CDN** New setting `HTML Attribute To Replace`. CDN can now support any HTML attribute to be replaced. (@danushkaj91)
* 🌱**Debug** Debug URI includes/excludes setings.
* 🌱**Crawler** 🐞 Support for multiple domains in custom sitemap. (@alchem)
* 🌱**Crawler** New Crawler dashboard. New sitemap w/ crawler status. New blacklist w/ reason.
* 🌱**Media** LQIP minimum dimensions setting. (@Lukasz Szmigiel)
* **Crawler** Able to add single rows to blacklist.
* **Crawler** Crawler data now saved into database instead of creating new files.
* **Crawler** Larger timeout to avoid wrongly added to blacklist.
* **Crawler** Manually changed the priority of mobile and WebP. (@rafaucau)
* **Browser** Larger Browser Cache TTL for Google Page Score improvement. (@max2348)
* **Task** Task refactored. Disabled cron will not show in cron list anymore.
* **Task** Speed up task load speed.
* **ESI** Added Bloom nonce to ESI for Elegant Themes.
* **Cloud** Able to redetect cloud nodes now.
* **Img_optm** Fixed stale data in redirected links.
* **Lazyload** CSS class `litespeed_lazyloaded` is now appended to HTML body after lazyload is finished. (@Adam Wilson)
* **Cache** Default drop qs values. (@gijo Varghese)
* **LQIP** Show all LQIP images in Media column.
* **CDN** Can now support custom REST API prefix other than wp-json. (#174 @therealgilles)
* **IAPI** Used REST for notify/destroy/check_img; Removed callback passive/aggreesive IAPI func
* **CSSJS** Saved all static files to litespeed folder; Uninstallation will remove static cache folder too; Reduced .htaccess rules by serving CSS/JS directly.
* **Object** Fixed override different ports issue. (@timofeycom #ISSUE178)
* **Conf** DB Tables will now only create when activating/upgrading/changing settings.
* **DB** Simplified table operation funcs.
* **CSSJS** Bypassed CSS/JS generation to return 404 if file is empty (@grubyy)
* **CSSJS** Inline JS defer will not conflict with JS inline optm anymore.
* **CDN** settings will not be overwritten by primary settings in network anymore. (@rudi Khoury)
* **OPcache** Purged all opcache when updating cache file. (@closte #170)
* **CLI** CLI cmd renamed.
* **CLI** Well-formated table to show all options.
* **Purge** Only purge related posts that have a status of "published" to avoid unnecessary "draft" purges. (@Jakub Knytl)
* **GUI** Removed basic/adv mode for settings. Moved non-cache settings to its own menu.
* **Htaccess** Protected .htaccess.bk file. Only kept one backup. (@teflonmann)
* **Crawler** Crawler cookie now support `_null` as empty value.
* **Crawler** Avoid crawler PHP fatal error on Windows OS. (@technisolutions)
* **Admin** Simplified admin setting logic.
* **Conf** Multi values settings now uniformed to multi lines for easier setting.
* **Conf** New preset default data file `data/consts.default.ini`.
* **Conf** Config setting renamed and uniformed.
* **Conf** Dropped `Conf::option()`. Used `Conf::val()` instead.
* **Conf** Improved conf initialization and upgrade convertion workflow.
* **Core** Code base refactored. New namespace LiteSpeed.
* **API** New API: iframe lazyload exclude filter.
* **GUI** human readable seconds. (@MarkCanada)
* **API** API refactored. * NOTE: All 3rd party plugins that are using previous APIs, especially `LiteSpeed_Cache_API`, need to be adjusted to the latest one. Same for ESI blocks.* ESI shortcode doesn't change.
* **API** New hook `litespeed_update_confs` to settings update.
* **API** New Hooks `litespeed_frontend_shortcut` and `litespeed_backend_shortcut` for dropdown menu. (@callaloo)
* **API** Removed `litespeed_option_*` hooks. Use `litespeed_force_option` hook insteadly
* **API** Renamed `litespeed_force_option` to `litespeed_conf_force`.
* **API** Removed function `litespeed_purge_single_post`.
* **REST** New rest API to fetch public IP.
* **GUI** Hiding Cloudflare/Object Cache/Cloud API key credentials. (@menathor)
* **GUI** Renamed all backend link tag from lscache to litespeed.
* **GUI** fixed duplicated form tag.
* **GUI** Fix cron doc link. (@arnab Mohapatra)
* **GUI** Frontend adminbar menu added `Purge All` actions. (@Monarobase)
* **GUI** Localized vue.js to avoid CloudFlare cookie. (@politicske)
* **GUI** Always show optm column in Media Library for future single row optm operation. (@mikeyhash)
* **GUI** Displayed TTL range below the corresponding setting.
* **GUI** GUI refactored.
* **Debug** Report can now append notes.
* **3rd** Default added parallax-image to webp replacement for BB.
* **3rd** User Switching plugin compatibility. (@robert Staddon)
* **3rd** Beaver Builder plugin compatibility with v3.0.
* **3rd** Avada plugin compatibility w/ BBPress. (@pimg)
* **3rd** WooCommerce PayPal Checkout Gateway compatibility. (#960642 @Glen Cabusas)
* **Network** Fixed potential timeout issue when containing a large volume of sites. (@alican532)
* **Debug** `Disable All Features` now will see the warning banner if ON.
* **Debug** Dropped `log filters` section.
* **Debug** Debug and Tools sections combined into new `Toolbox` section.
* 🐞**Crawler** Multi sites will now use separate sitemap even when `Use Primary Site` is ON. (@mrhuynhanh)
* 🐞**Img_optm** Fixed large volume image table storage issue. (#328956)
* 🐞 **Cloud** Cloud callback hash validation fixed OC conflict. (@pbpiotr)
* 🎊 Any user that had the contribution to our WP community or changelog (even just bug report/feedback/suggestion) can apply for extra credits in QUIC.cloud.

= 2.9.9.2 - Nov 24 2019 =
* 🌱**GUI** New settings to limit News Feed to plugin page only.

= 2.9.9.1 - Nov 18 2019 =
* 🌱**Env** Environment Report can now append a passwordless link for support access without wp-admin password.
* **Admin** The latest v3.0 beta test link may now be shown on the admin page when it's available.
* **3rd** Compatibility with [DoLogin Security](https://wordpress.org/plugins/dologin/).
* 🐞**ESI** Fixed a failure issue with Vary Group save. (@rafasshop)
* 🐞**3rd** In browsers where WebP is not supported, Divi image picker will no longer serve WebP. (@Austin Tinius)

= 2.9.9 - Oct 28 2019 =
* <strong>Core</strong>: Preload all classes to avoid getting error for upcoming v3.0 upgrade.
* <strong>Object</strong>: Improved compatibility with upcoming v3.0 release.
* <strong>ESI</strong>: Unlocked ESI for OLS in case OLS is using QUIC.cloud CDN which supports ESI.
* <strong>3rd</strong>: Elementor Edit button will now show when ESI enabled. (#PR149 #335322 @maxgorky)
* 🐞<strong>Media</strong>: Fixed missing Media optimization column when Admin role is excluded from optimization in settings. (@mikeyhash @pako69 @dgilfillan)

= 2.9.8.7 - Oct 11 2019 =
* <strong>3rd</strong>: Enhanced WP stateless compatibility. (#PR143)
* <strong>3rd</strong>: Fixed a PHP warning caused by previous PR for AMP. (#PR176)

= 2.9.8.6 - Sep 24 2019 =
* <strong>3rd</strong>: Bypassed page optimizations for AMP. (#359748 #PR169)
* <strong>GUI</strong>: Firefox compatibility with radio button state when reloading pages. (#288940 #PR162)
* <strong>GUI</strong>: Updated Slack invitation link. (#PR173)

= 2.9.8.5 - Aug 21 2019 =
* <strong>CCSS</strong>: Removed potential PHP notice when getting post_type. (@amcgiffert)
* <strong>CDN</strong>: Bypassed CDN replacement on admin page when adding media to page/post. (@martin_bailey)
* 🐞<strong>Media</strong>: Fixed inability to update or destroy postmeta data for child images. (#167713)

= 2.9.8.4 - Jul 25 2019 =
* <strong>Object</strong>: Increased compatibility with phpredis 5.0.
* <strong>Object</strong>: Appended `wc_session_id` to default Do Not Cache Groups setting to avoid issue where WooCommerce cart items were missing when Object Cache is used. NOTE: Existing users must add `wc_session_id` manually! (#895333)
* <strong>CSS</strong>: Added null onload handler for CSS async loading. (@joejordanbrown)
* 🕷️: Increased crawler timeout to avoid wrongly adding a URL to the blacklist.
* <strong>3rd</strong>: WooCommerce Advanced Bulk Edit can now purge cache automatically.

= 2.9.8.3 - Jul 9 2019 =
* <strong>CSS</strong>: Enhanced the CSS Minify compatibility for CSS with missing closing bracket syntax errors. (@fa508210020)
* 🕷️: Crawler now supports both cookie and no-cookie cases. (@tabare)
* <strong>CCSS</strong>: Enhanced compatibility with requested pages where meta info size exceeds 8k. (@Joe B)
* <strong>CCSS</strong>: No longer processing "font" or "import" directives as they are not considered critical. (@Ankit @Joe B)
* <strong>IAPI</strong>: Removed IPv6 from all servers to avoid invalid firewall whitelist.

= 2.9.8.2 - Jun 17 2019 =
* 🔥🐞 <strong>3rd</strong>: Fixed PHP 5.3 compatibility issue with Facetwp.

= 2.9.8.1 - Jun 17 2019 =
* <strong>3rd</strong>: Set ESI template hook priority to highest number to prevent ESI conflict with Enfold theme. (#289354)
* <strong>3rd</strong>: Improved Facetwp reset button compatibility with ESI. (@emilyel)
* <strong>3rd</strong>: Enabled user role change to fix duplicate login issue for plugins that use alternative login processes. (#114165 #717223 @sergiom87)
* <strong>GUI</strong>: Wrapped static text with translate function. (@halilemreozen)

= 2.9.8 - May 22 2019 =
* <strong>Core</strong>: Refactored loading priority so user related functions & optimization features are set after user initialization. (#717223 #114165 #413338)
* <strong>Media</strong>: Improved backup file calculation query to prevent out-of-memory issue.
* <strong>Conf</strong>: Feed cache now defaults to ON.
* <strong>API</strong>: Fully remote attachment compatibility API of image optimization now supported.
* 🕷️: Bypassed vary change for crawler; crawler can now simulate default vary cookie.
* <strong>ESI</strong>: Refactored ESI widget. Removed `widget_load_get_options()` function.
* <strong>ESI</strong>: Changed the input name of widget fields in form.
* <strong>3rd</strong>: Elementor can now save ESI widget settings in frontend builder.
* <strong>3rd</strong>: WP-Stateless compatibility.
* <strong>IAPI</strong>: Image optimization can now successfully finish the destroy process with large volume images with automatic continual mode.
* 🐞<strong>CDN</strong>: Fixed issue with Load JQuery Remotely setting where WP 5.2.1 provided an unexpected jQuery version.
* 🐞<strong>3rd</strong>: Login process now gets the correct role; fixed double login issue.

= 2.9.7.2 - May 2 2019 =
* <strong>Conf</strong>: Enhanced compatibility when an option is not properly initialized.
* <strong>Conf</strong>: Prevent non-array instance in widget from causing 500 error. (#210407)
* <strong>CCSS</strong>: Increase CCSS generation timeout to 60s.
* <strong>Media</strong>: Renamed lazyload CSS class to avoid conflicts with other plugins. (@DynamoProd)
* <strong>JS</strong>: Improved W3 validator. (@istanbulantik)
* <strong>QUIC</strong>: Synced cache tag prefix for static files cache.
* <strong>ESI</strong>: Restored query strings to ESI admin bar for accurate rendering. (#977284)
* <strong>ESI</strong>: Tweaked ESI init priority to honor LITESPEED_DISABLE_ALL const. ESI will now init after plugin loaded.
* 🐞<strong>ESI</strong>: No longer initialize ESI if ESI option is OFF.
* <strong>API</strong>: New "Disable All" API function.
* <strong>API</strong>: New "Force public cache" API function.
* 🐞<strong>Vary</strong>: Fixed an issue with saving vary groups.
* 🐞<strong>IAPI</strong>: Fixed an issue where image md5 validation failed due to whitespace in the image path.
* 🐞<strong>3rd</strong>: Bypass all optimization/ESI/Cache features when entering Divi Theme Builder frontend editor.
* 🐞<strong>3rd</strong>: Fixed an issue where DIVI admin bar exit button didn't work when ESI was ON.

= 2.9.7.1 - Apr 9 2019 =
* <strong>Purge</script>: Purge All no longer includes Purge CCSS/Placeholder.
* <strong>3rd</strong>: Divi Theme Builder no longer experiences nonce expiration issues in the contact form widget. (#475461)

= 2.9.7 - Apr 1 2019 =
* 🌱🌱🌱 QUIC.cloud CDN feature. Now Apache/Nginx can use LiteSpeed cache freely.

= 2.9.6 - Mar 27 2019 =
* 🌱<strong>IAPI</strong>: Appended XMP to `Preserve EXIF data` setting. WebP will now honor this setting. (#902219)
* <strong>Object</script>: Fixed SASL connection with LSMCD.
* <strong>ESI</strong>: Converted ESI URI parameters to JSON; Added ESI validation.
* <strong>Import</strong>: Import/Export will now use JSON format. <strong>Please re-export any backed up settings. Previous backup format is no longer recognized.</strong>
* <strong>Media</strong>: WebP replacement will honor `Role Excludes` setting now. (@mfazio26)
* <strong>Data</strong>: Forbid direct visit to const.default.ini.
* <strong>Utility</strong>: Can handle WHM passed in `LITESPEED_ERR` constant now.
* <strong>IAPI</strong>: Communicate via JSON encoding.
* <strong>IAPI</strong>: IAPI v2.9.6.

= 2.9.5 - Mar 14 2019 =
* 🌱 Auto convert default WordPress nonce to ESI to avoid expiration.
* 🌱 <strong>API</strong>: Ability to easily convert custom nonce to ESI by registering `LiteSpeed_Cache_API::nonce_action`.
* <strong>OPTM</strong>: Tweaked redundant attr `data-no-optimize` in func `_analyse_links` to `data-ignore-optimize` to offer the API to bypass optimization but still move src to top of source code.
* <strong>API</strong>: Renamed default nonce ESI ID from `lscwp_nonce_esi` to `nonce`.
* <strong>API</strong>: Added WebP generation & validation hook API. (@alim #wp-stateless)
* <strong>API</strong>: Added hook to bypass vary commenter check. (#wpdiscuz)
* <strong>Doc</strong>: Clarified Cache Mobile description. (@JohnnyNguyen)
* <strong>Doc</strong>: Replaced incorrect link in description. (@JohnnyNguyen)
* <strong>3rd</strong>: Improved wpDiscuz compatibility.
* 🐞<strong>3rd</strong>: Fixed Divi Theme Builder comment compatibility on non-builder pages. (#410919)
* <strong>3rd</strong>: Added YITH ESI adjustment.

= 2.9.4.1 - Feb 28 2019 =
* 🔥🐞<strong>Tag</strong>: Fixed issue where unnecessary warning potentially displayed after upgrade process when object cache is enabled.

= 2.9.4 - Feb 27 2019 =
* 🐞<strong>REST</strong>: New REST class with better WP5 Gutenberg and internal REST call support when ESI is embedded.
* <strong>ESI</strong>: ESI block ID is now in plain text in ESI URL parameters.
* 🐞<strong>ESI</strong>: Fixed a redundant ESI 301 redirect when comma is in ESI URL.
* <strong>ESI</strong>: REST call can now parse shortcodes in ESI.
* <strong>API</strong>: Changed ESI `parse_esi_param()` function to private and `load_esi_block` function to non-static.
* <strong>API</strong>: Added `litespeed_is_json` hook for buffer JSON conversion.
* <strong>GUI</strong>: Prepended plugin name to new version notification banner.
* <strong>3rd</strong>: WPML multi domains can now be handled in optimization without CDN tricks.

= 2.9.3 - Feb 20 2019 =
* <strong>ESI</strong>: ESI shortcodes can now be saved in Gutenberg editor.
* <strong>ESI</strong>: ESI now honors the parent page JSON data type to avoid breaking REST calls (LSWS 5.3.6+).
* <strong>ESI</strong>: Added is_json parameter support for admin_bar.
* <strong>ESI</strong>: Simplified comment form code.
* <strong>3rd</strong>: Better page builder plugin compatibility within AJAX calls.
* <strong>3rd</strong>: Compatibility with FacetWP (LSWS 5.3.6+).
* <strong>3rd</strong>: Compatibility with Beaver Builder.
* <strong>Debug</strong>: Added ESI buffer content to log.
* <strong>Tag</strong>: Only append blog ID to cache tags when site is part of a network.
* <strong>IAPI</strong>: Optimized database query for pulling images.
* <strong>GUI</strong>: Added more plugin version checking for better feature compatibility.
* <strong>GUI</strong>: Ability to bypass non-critical banners with the file .litespeed_no_banner.
* <strong>Media</strong>: Background image WebP replacement now supports quotes around src.

= 2.9.2 - Feb 5 2019 =
* <strong>API</strong>: Add a hook `litespeed_esi_shortcode-*` for ESI shortcodes.
* <strong>3rd</strong>: WooCommerce can purge products now when variation stock is changed.
* 🐞🕷️: Forced HTTP1.1 for crawler due to a CURL HTTP2 bug.

= 2.9.1 - Jan 25 2019 =
* <strong>Compatibility</strong>: Fixed fatal error for PHP 5.3.
* <strong>Compatibility</strong>: Fixed PHP warning in htmlspecialchars when building URLs. (@souljahn2)
* <strong>Media</strong>: Excluded invalid image src from lazyload. (@andrew55)
* <strong>Optm</strong>: Improved URL compatibility when detecting closest cloud server.
* <strong>ESI</strong>: Supported JSON format comment format in ESI with `is_json` parameter.
* <strong>API</strong>: Added filters to CCSS/CSS/JS content. (@lhoucine)
* <strong>3rd</strong>: Improved comment compatibility with Elegant Divi Builder.
* <strong>IAPI</strong>: New Europe Image Optimization server (EU5). <strong>Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips).</strong>
* <strong>GUI</strong>: No longer show banners when `Disable All` in `Debug` is ON. (@rabbitwordpress)
* <strong>GUI</strong>: Fixed button style for RTL languages.
* <strong>GUI</strong>: Removed unnecessary translation in report.
* <strong>GUI</strong>: Updated readme wiki links.
* <strong>GUI</strong>: Fixed pie styles in image optimization page.

= 2.9 - Dec 31 2018 =
* 🌱<strong>Media</strong>: Lazy Load Image Classname Excludes. (@thinkmedia)
* 🌱: New EU/AS cloud servers for faster image optimization handling.
* 🌱: New EU/AS cloud servers for faster CCSS generation.
* 🌱: New EU/AS cloud servers for faster responsive placeholder generation.
* 🌱<strong>Conf</strong>: Ability to set single options via link.
* 🌱<strong>Cache</strong>: Ability to add custom TTLs to Force Cache URIs.
* <strong>Purge</strong>: Added post type to Purge tags.
* <strong>Purge</strong>: Redefined CCSS page types.
* <strong>Core</strong>: Using Exception for .htaccess R/W.
* <strong>IAPI</strong>: <strong>New cloud servers added. Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips).</strong>
* <strong>Optm</strong>: Trim BOM when detecting if the page is HTML.
* <strong>GUI</strong>: Added PageSpeed Score comparison into promotion banner.
* <strong>GUI</strong>: Refactored promotion banner logic.
* <strong>GUI</strong>: Removed page optimized comment when ESI Silence is requested.
* <strong>GUI</strong>: WHM transient changed to option instead of transient when storing.
* <strong>GUI</strong>: Appending more descriptions to CDN filetype setting.
* <strong>IAPI</strong>: Removed duplicate messages.
* <strong>IAPI</strong>: Removed taken_failed/client_pull(duplicated) status.
* <strong>Debug</strong>: Environment report no longer generates hash for validation.
* <strong>3rd</strong>: Non-cacheable pages no longer punch ESI holes for Divi compatibility.
* 🐞<strong>Network</strong>: Added slashes for mobile rules when activating plugin.
* 🐞<strong>CCSS</strong>: Eliminated a PHP notice when appending CCSS.

= 2.8.1 - Dec 5 2018 =
* 🐞🕷️: Fixed an activation warning related to cookie crawler. (@kacper3355 @rastel72)
* 🐞<strong>Media</strong>: Replace safely by checking if pulled images is empty or not first. (@Monarobase)
* <strong>3rd</strong>: Shortcode ESI compatibility with Elementor.

= 2.8 - Nov 30 2018 =
* 🌱: ESI shortcodes.
* 🌱: Mobile crawler.
* 🌱: Cookie crawler.
* <strong>API</strong>: Can now add `_litespeed_rm_qs=0` to bypass Remove Query Strings.
* <strong>Optm</strong>: Removed error log when minify JS failed.
* 🐞<strong>Core</strong>: Fixed a bug that caused network activation PHP warning.
* <strong>Media</strong>: Removed canvas checking for WebP to support TOR. (@odeskumair)
* <strong>Media</strong>: Eliminated potential image placeholder PHP warning.
* <strong>3rd</strong>: Bypassed Google recaptcha from Remove Query Strings for better compatibility.
* <strong>IAPI</strong>: Showed destroy timeout details.
* <strong>Debug</strong>: Moved Google Fonts log to advanced level.
* <strong>GUI</strong>: Replaced all Learn More links for functions.
* <strong>GUI</strong>: Cosmetic updates including Emoji.
* 🕷️: Removed duplicated data in sitemap and blacklist.

= 2.7.3 - Nov 26 2018 =
* <strong>Optm</strong>: Improved page render speed with Web Font Loader JS library for Load Google Fonts Asynchronously.
* <strong>Optm</strong>: Directly used JS library files in plugin folder instead of short links `/min/`.
* <strong>Optm</strong>: Handled exceptions in JS optimization when meeting badly formatted JS.
* <strong>3rd</strong>: Added Adobe Lightroom support for NextGen Gallery.
* <strong>3rd</strong>: Improved Postman app support for POST JSON requests.
* <strong>IAPI</strong>: <strong>US3 server IP changed to 68.183.60.185</strong>.

= 2.7.2 - Nov 19 2018 =
* 🌱: Auto Upgrade feature.
* <strong>CDN</strong>: Bypass CDN for cron to avoid WP jQuery deregister warning.

= 2.7.1 - Nov 15 2018 =
* 🌱<strong>CLI</strong>: Ability to set CDN mapping by `set_option litespeed-cache-cdn_mapping[url][0] https://url`.
* 🌱<strong>CDN</strong>: Ability to customize default CDN mapping data in default.ini.
* 🌱<strong>API</strong>: Default.ini now supports both text-area items and on/off options.
* <strong>Vary</strong>: Refactored Vary and related API.
* <strong>Vary</strong>: New hook to manipulate vary cookies value.
* <strong>Core</strong>: Activation now can generate Object Cache file.
* <strong>Core</strong>: Unified Object Cache/rewrite rules generation process across activation/import/reset/CLI.
* <strong>Core</strong>: Always hook activation to make activation available through the front end.
* 🐞<strong>IAPI</strong>: Fixed a bug where environment report gave incorrect image optimization data.
* 🐞<strong>OLS</strong>: Fixed a bug where login cookie kept showing a warning on OpenLiteSpeed.
* 🐞<strong>Core</strong>: Fixed a bug where Import/Activation/CLI was missing CDN mapping settings.
* <strong>API</strong>: <strong>Filters `litespeed_cache_media_lazy_img_excludes/litespeed_optm_js_defer_exc` passed-in parameter is changed from string to array.</strong>

= 2.7 - Nov 2 2018 =
* 🌱: Separate Purge log for better debugging.
* <strong>3rd</strong>: Now fully compatible with WPML.
* <strong>IAPI</strong>: Sped up Image Optimization workflow.
* <strong>GUI</strong>: Current IP now shows in Debug settings.
* <strong>GUI</strong>: Space separated placeholder queue list for better look.
* <strong>IAPI</strong>: <strong>EU3 server IP changed to 165.227.131.98</strong>.

= 2.6.4.1 - Oct 25 2018 =
* 🔥🐞<strong>Media</strong>: Fixed a bug where the wrong table was used in the Image Optimization process.
* <strong>IAPI</strong>: IAPI v2.6.4.1.

= 2.6.4 - Oct 24 2018 =
* 🌱: Ability to create custom default config options per hosting company.
* 🌱: Ability to generate mobile Critical CSS.
* 🐞<strong>Media</strong>: Fixed a bug where Network sites could incorrectly override optimized images.
* 🐞<strong>CDN</strong>: Fixed a bug where image URLs containing backslashes were matched.
* <strong>Cache</strong>: Added default Mobile UA config setting.
* <strong>GUI</strong>: Fixed unknown shortcut characters for non-English languages Setting tabs.

= 2.6.3 - Oct 18 2018 =
* 🌱: Ability to Reset All Options.
* 🌱<strong>CLI</strong>: Added new `lscache-admin reset_options` command.
* <strong>GUI</strong>: Added shortcuts for more of the Settings tabs.
* <strong>Media</strong>: Updated Lazy Load JS library to the most recent version.
* There is no longer any need to explicitly Save Settings upon Import.
* Remove Query String now will remove *all* query strings in JS/CSS static files.
* <strong>IAPI</strong>: Added summary info to debug log.

= 2.6.2 - Oct 11 2018 =
* <strong>Setting</strong>: Automatically correct invalid numeric values in configuration settings upon submit.
* 🐞<strong>Media</strong>: Fixed the issue where iframe lazy load was broken by latest Chrome release. (@ofmarconi)
* 🐞: Fixed an issue with Multisite where subsites failed to purge when only primary site has WooCommerce . (@kierancalv)

= 2.6.1 - Oct 4 2018 =
* 🌱: Ability to generate separate Critical CSS Cache for Post Types & URIs.
* <strong>API</strong>: Filter `litespeed_frontend_htaccess` for frontend htaccess path.
* <strong>Media</strong>: Removed responsive placeholder generation history to save space.

= 2.6.0.1 - Sep 24 2018 =
* 🔥🐞: Fixed an issue in responsive placeholder generation where redundant history data was being saved and using a lot of space.

= 2.6 - Sep 22 2018 =
* <strong>Vary</strong>: Moved `litespeed_cache_api_vary` hook outside of OLS condition for .htaccess generation.
* <strong>CDN</strong>: Trim spaces in original URL of CDN setting.
* <strong>API</strong>: New filter `litespeed_option_` to change all options dynamically.
* <strong>API</strong>: New `LiteSpeed_Cache_API::force_option()` to change all options dynamically.
* <strong>API</strong>: New `LiteSpeed_Cache_API::vary()` to set default vary directly for easier compaitiblity with WPML WooCommerce Multilingual.
* <strong>API</strong>: New `LiteSpeed_Cache_API::nonce()` to safely and easily allow caching of wp-nonce.
* <strong>API</strong>: New `LiteSpeed_Cache_API::hook_vary_add()` to add new vary.
* <strong>Optm</strong>: Changed HTML/JS/CSS optimization options assignment position from constructor to `finalize()`.
* <strong>Doc</strong>: Added nonce to FAQ and mentioned nonce in 3rd Party Compatibility section.
* <strong>GUI</strong>: Moved inline minify to under html minify due to the dependency.
* <strong>3rd</strong>: Cached Aelia CurrencySwitcher by default.
* 🐞: Fixed issue where enabling remote JQuery caused missing jquery-migrate library error.

= 2.5.1 - Sep 11 2018 =
* 🌱 Responsive placeholder. (@szmigieldesign)
* Changed CSS::ccss_realpath function scope to private.
* 🐞 Detected JS filetype before optimizing to avoid PHP source conflict. (@closte #50)

= 2.5 - Sep 6 2018 =
* [IMPROVEMENT] <strong>CLI</strong> can now execute Remove Original Image Backups. (@Shon)
* [UPDATE] Fixed issue where WP-PostViews documentation contained extra slashes. (#545638)
* [UPDATE] Check LITESPEED_SERVER_TYPE for more accurate LSCache Disabled messaging.
* [IAPI] Fixed a bug where optimize/fetch error notification was not being received. (@LucasRolff)

= 2.4.4 - Aug 31 2018 =
* [NEW] <strong>CLI</strong> can now support image optimization. (@Shon)
* [IMPROVEMENT] <strong>GUI</strong> Cron/CLI will not create admin message anymore.
* [UPDATE] <strong>Media</strong> Fixed a PHP notice that appeared when pulling optimized images.
* [UPDATE] Fixed a PHP notice when detecting origin of ajax call. (@iosoft)
* [DEBUG] Debug log can now log referer URL.
* [DEBUG] Changes to options will now be logged.

= 2.4.3 - Aug 27 2018 =
* [NEW] <strong>Media</strong> Ability to inline image lazyload JS library. (@Music47ell)
* [IMPROVEMENT] <strong>Media</strong> Deleting images will now clear related optimization file & info too.
* [IMPROVEMENT] <strong>Media</strong> Non-image postfix data will now be bypassed before sending image optimization request.
* [BUGFIX] <strong>CDN</strong> CDN URL will no longer be replaced during admin ajax call. (@pankaj)
* [BUGFIX] <strong>CLI</strong> WPCLI can now save options without incorrectly clearing textarea items. (@Shon)
* [GUI] Moved Settings above Manage on the main menu.

= 2.4.2 - Aug 21 2018 =
* [IMPROVEMENT] <strong>Media</strong> Sped up Image Optimization process by replacing IAPI server pull communication.
* [IMPROVEMENT] <strong>Media</strong> Ability to delete optimized WebP/original image by item in Media Library. (@redgoodapple)
* [IMPROVEMENT] <strong>CSS Optimize</strong> Generate new optimized CSS name based on purge timestamp. Allows CSS cache to be cleared for visitors. (@bradbrownmagic)
* [IMPROVEMENT] <strong>API</strong> added litespeed_img_optm_options_per_image. (@gintsg)
* [UPDATE] Stopped showing "No Image Found" message when all images have finished optimization. (@knutsp)
* [UPDATE] Improved a PHP warning when saving settings. (@sergialarconrecio)
* [UPDATE] Changed backend adminbar icon default behavior from Purge All to Purge LSCache.
* [UPDATE] Clearing CCSS cache will clear unfinished queue too.
* [UPDATE] Added "$" exact match when adding URL by frontend adminbar dropdown menu, to avoid affecting any sub-URLs.
* [UPDATE] Fixed IAPI error message showing array bug. (@thiomas)
* [UPDATE] Debug Disable All will do a Purge All.
* [UPDATE] <strong>Critical CSS server IP changed to 142.93.3.57</strong>.
* [GUI] Showed plugin update link for IAPI version message.
* [GUI] Bypassed null IAPI response message.
* [GUI] Grouped related settings with indent.
* [IAPI] Added 503 handler for IAPI response.
* [IAPI] IAPI v2.4.2.
* [IAPI] <strong>Center Server IP Changed from 34.198.229.186 to 142.93.112.87</strong>.

= 2.4.1 - Jul 19 2018 =
* [NEW FEATURE] <strong>Media</strong> Auto Level Up. Auto refill credit.
* [NEW FEATURE] <strong>Media</strong> Auto delete original backups after pulled. (@borisov87 @JMCA2)
* [NEW FEATURE] <strong>Media</strong> Auto request image optimization. (@ericsondr)
* [IMPROVEMENT] <strong>Media</strong> Fetch 404 error will notify client as other errors.
* [IMPROVEMENT] <strong>Media</strong> Support WebP for PageSpeed Insights. (@LucasRolff)
* [BUGFIX] <strong>CLI</strong> Fixed the issue where CLI import/export caused certain textarea settings to be lost. (#767519)
* [BUGFIX] <strong>CSS Optimize</strong> Fixed the issue that duplicated optimized CSS and caused rapid expansion of CSS cache folder.
* [GUI] <strong>Media</strong> Refactored operation workflow and interface.
* [UPDATE] <strong>Media</strong> Set timeout seconds to avoid pulling timeout. (@Jose)
* [UPDATE] <strong>CDN</strong>Fixed the notice when no path is in URL. (@sabitkamera)
* [UPDATE] <strong>Media</strong> Auto correct credits when pulling.
* [UPDATE] <strong>GUI</strong> Removed redundant double quote in gui.cls. (@DaveyJake)
* [IAPI] IAPI v2.4.1.
* [IAPI] Allow new error status notification and success message from IAPI.

= 2.4 - Jul 2 2018 =
* [NEW FEATURE] <strong>Media</strong> Added lossless optimization.
* [NEW FEATURE] <strong>Media</strong> Added Request Orignal Images ON/OFF.
* [NEW FEATURE] <strong>Media</strong> Added Request WebP ON/OFF. (@JMCA2)
* [IMPROVEMENT] <strong>Media</strong> Improved optimization tools to archive maximum compression and score.
* [IMPROVEMENT] <strong>Media</strong> Improved speed of image pull.
* [IMPROVEMENT] <strong>Media</strong> Automatically recover credit after pulled.
* [REFACTOR] <strong>Config</strong> Separated configure const class.
* [BUGFIX] <strong>Report</strong> Report can be sent successfully with emoji now. (@music47ell)
* [IAPI] New Europe Image Optimization server (EU3/EU4).
* [IAPI] New America Image Optimization server (US3/US4/US5/US6).
* [IAPI] New Asian Image Optimization server (AS3).
* [IAPI] Refactored optimization process.
* [IAPI] Increased credit limit.
* [IAPI] Removed request interval limit.
* [IAPI] IAPI v2.4.
* <strong>We strongly recommended that you re-optimize your image library to get a better compression result</strong>.

= 2.3.1 - Jun 18 2018 =
* [IMPROVEMENT] New setting to disable Generate Critical CSS. (@cybmeta)
* [IMPROVEMENT] Added filter to can_cdn/can_optm check. (@Jacob)
* [UPDATE] *Critical CSS* Added 404 css. Limit cron interval.
* [UPDATE] AJAX will not bypass CDN anymore by default. (@Jacob)
* [GUI] Show Disable All Features warning if it is on in Debug tab.

= 2.3 - Jun 13 2018 =
* [NEW FEATURE] Automatically generate critical CSS. (@joeee @ivan_ivanov @3dseo)
* [BUGFIX] "Mark this page as..." from dropdown menu will not reset settings anymore. (@cbratschi)

= 2.2.7 - Jun 4 2018 =
* [IMPROVEMENT] Improved redirection for manual image pull to avoid too many redirections warning.
* [IAPI] Increased credit limit.
* [BUGFIX] Fixed 503 error when enabling log filters in Debug tab. (#525206)
* [UPDATE] Improve compatibility when using sitemap url on servers with allow_url_open off.
* [UPDATE] Removed Crawler HTTP2 option due to causing no-cache blacklist issue for certain environments.
* [UPDATE] Privacy policy can be now translated. (@Josemi)
* [UPDATE] IAPI Increased default img request max to 3000.

= 2.2.6 - May 24 2018 =
* [NEW FEATURE] Original image backups can be removed now. (@borisov87 @JMCA2)
* [BUGFIX] Role Excludes in Tuning tab can save now. (@pako69)
* [UPDATE] Added privacy policy support.

= 2.2.5 - May 14 2018 =
* [IAPI] <strong>Image Optimization</strong> New Asian Image Optimization server (AS2).
* [INTEGRATION] Removed wpForo 3rd party file. (@massimod)

= 2.2.4 - May 7 2018 =
* [IMPROVEMENT] Improved compatibility with themes using the same js_min library. (#129093 @Darren)
* [BUGFIX] Fixed a bug when checking image path for dynamic files. (@miladk)
* [INTEGRATION] Compatibility with Universal Star Rating. (@miladk)

= 2.2.3 - Apr 27 2018 =
* [NEW FEATURE] WebP For Extra srcset setting in Media tab. (@vengen)
* [REFACTOR] Removed redundant LS consts.
* [REFACTOR] Refactored adv_cache generation flow.
* [BUGFIX] Fixed issue where inline JS minify exception caused a blank page. (@oomskaap @kenb1978)
* [UPDATE] Changed HTTP/2 Crawl default value to OFF.
* [UPDATE] Added img.data-src to default WebP replacement value for WooCommerce WebP support.
* [UPDATE] Detached crawler from LSCache LITESPEED_ON status.
* [API] Improved ESI API to honor the cache control in ESI wrapper.
* [API] Added LITESPEED_PURGE_SILENT const to bypass the notification when purging
* [INTEGRATION] Fixed issue with nonce expiration when using ESI API. (#923505 @Dan)
* [INTEGRATION] Improved compatibility with Ninja Forms by bypassing non-javascript JS from inline JS minify.
* [INTEGRATION] Added a hook for plugins that change the CSS/JS path e.g. Hide My WordPress.

= 2.2.2 - Apr 16 2018 =
* [NEW FEATURE] WebP Attribute To Replace setting in Media tab. (@vengen)
* [IMPROVEMENT] Generate adv_cache file automatically when it is lost.
* [IMPROVEMENT] Improved compatibility with ajax login. (@veganostomy)
* [UPDATE] Added object cache lib check in case user downgrades LSCWP to non-object-cache versions.
* [UPDATE] Avoided infinite loop when users enter invalid hook values in Purge All Hooks settings.
* [UPDATE] Updated log format in media&cdn class.
* [UPDATE] Added more items to Report.

= 2.2.1 - Apr 10 2018 =
* [NEW FEATURE] Included Directories setting in CDN tab. (@Dave)
* [NEW FEATURE] Purge All Hooks setting in Advanced tab.
* [UPDATE] Added background-image WebP replacement support. (@vengen)
* [UPDATE] Show recommended values for textarea items in settings.
* [UPDATE] Moved CSS/JS optimizer log to Advanced level.
* [INTEGRATION] Added WebP support for Avada Fusion Sliders. (@vengen)

= 2.2.0.2 - Apr 3 2018 =
* [HOTFIX] <strong>Object Cache</strong> Fixed the PHP warning caused by previous improvement to Object Cache.

= 2.2.0.1 - Apr 3 2018 =
* [HOTFIX] Object parameter will no longer cause warnings to be logged for Purge and Cache classes. (@kelltech @khrifat)
* [UPDATE] Removed duplicated del_file func from Object Cache class.
* [BUGFIX] `CLI` no longer shows 400 error upon successful result.

= 2.2 - Apr 2 2018 =
* [NEW FEATURE] <strong>Debug</strong> Disable All Features setting in Debug tab. (@monarobase)
* [NEW FEATURE] <strong>Cache</strong> Force Cacheable URIs setting in Excludes tab.
* [NEW FEATURE] <strong>Purge</strong> Purge all LSCache and other caches in one link.
* [REFACTOR] <strong>Purge</strong> Refactored Purge class.
* [BUGFIX] Query strings in DoNotCacheURI setting now works.
* [BUGFIX] <strong>Cache</strong> Mobile cache compatibility with WebP vary. (@Shivam #987121)
* [UPDATE] <strong>Purge</strong> Moved purge_all to Purge class from core class.
* [API] Set cacheable/Set force cacheable. (@Jacob)

= 2.1.2 - Mar 28 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Clean Up Unfinished Data feature.
* [IAPI] IAPI v2.1.2.
* [IMPROVEMENT] <strong>CSS/JS Minify</strong> Reduced loading time significantly by improving CSS/JS minify loading process. (@kokers)
* [IMPROVEMENT] <strong>CSS/JS Minify</strong> Cache empty JS Minify content. (@kokers)
* [IMPROVEMENT] <strong>Cache</strong> Cache 301 redirect when scheme/host are same.
* [BUGFIX] <strong>Media</strong> Lazy load now can support WebP. (@relle)
* [UPDATE] <strong>CSS/JS Optimize</strong> Serve static files for CSS async & lazy load JS library.
* [UPDATE] <strong>Report</strong> Appended Basic/Advanced View setting to Report.
* [UPDATE] <strong>CSS/JS Minify</strong> Removed zero-width space from CSS/JS content.
* [GUI] Added Purge CSS/JS Cache link in Admin.

= 2.1.1.1 - Mar 21 2018 =
* [BUGFIX] Fixed issue where activation failed to add rules to .htaccess.
* [BUGFIX] Fixed issue where 304 header was blank on feed page refresh.

= 2.1.1 - Mar 20 2018 =
* [NEW FEATURE] <strong>Browser Cache</strong> Unlocked for non-LiteSpeed users.
* [IMPROVEMENT] <strong>Image Optimization</strong> Fixed issue where images with bad postmeta value continued to show in not-yet-requested queue.

= 2.1 - Mar 15 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Object Cache</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Crawler</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Database Cleaner and Optimizer</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Lazy Load Images</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>CSS/JS/HTML Minify/Combine Optimize</strong> Unlocked for non-LiteSpeed users.
* [IAPI] IAPI v2.0.
* [IAPI] Increased max rows prefetch when client has additional credit.
* [IMPROVEMENT] <strong>CDN</strong> Multiple domains may now be used.
* [IMPROVEMENT] <strong>Report</strong> Added WP environment constants for better debugging.
* [REFACTOR] Separated Cloudflare CDN class.
* [BUGFIX] <strong>Image Optimization</strong> Fixed issue where certain MySQL version failed to create img_optm table. (@philippwidmer)
* [BUGFIX] <strong>Image Optimization</strong> Fixed issue where callback validation failed when pulling and sending request simultaneously.
* [GUI] Added Slack community banner.
* [INTEGRATION] CDN compatibility with WPML multiple domains. (@egemensarica)

= 2.0 - Mar 7 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Added level up guidance.
* [REFACTOR] <strong>Image Optimization</strong> Refactored Image Optimization class.
* [IAPI] <strong>Image Optimization</strong> New European Image Optimization server (EU2).
* [IMPROVEMENT] <strong>Image Optimization</strong> Manual pull action continues pulling until complete.
* [IMPROVEMENT] <strong>CDN</strong> Multiple CDNs can now be randomized for a single resource.
* [IMPROVEMENT] <strong>Image Optimization</strong> Improved compatibility of long src images.
* [IMPROVEMENT] <strong>Image Optimization</strong> Reduced runtime load.
* [IMPROVEMENT] <strong>Image Optimization</strong> Avoid potential loss/reset of notified images status when pulling.
* [IMPROVEMENT] <strong>Image Optimization</strong> Avoid duplicated optimization for multiple records in Media that have the same image source.
* [IMPROVEMENT] <strong>Image Optimization</strong> Fixed issue where phantom images continued to show in not-yet-requested queue.
* [BUGFIX] <strong>Core</strong> Improved compatibility when upgrading outside of WP Admin. (@jikatal @TylorB)
* [BUGFIX] <strong>Crawler</strong> Improved HTTP/2 compatibility to avoid erroneous blacklisting.
* [BUGFIX] <strong>Crawler</strong> Changing Delay setting will use server variable for min value validation if set.
* [UPDATE] <strong>Crawler</strong> Added HTTP/2 protocol switch in the Crawler settings.
* [UPDATE] Removed unnecessary translation strings.
* [GUI] Display translated role group name string instead of English values. (@Richard Hordern)
* [GUI] Added Join LiteSpeed Slack link.
* [GUI] <strong>Import / Export</strong> Cosmetic changes to Import Settings file field.
* [INTEGRATION] Improved compatibility with WPML Media for Image Optimization. (@szmigieldesign)

= 1.9.1.1 - February 20 2018 =
* [Hotfix] Removed empty crawler when no role simulation is set.

= 1.9.1 - February 20 2018 =
* [NEW FEATURE] Role Simulation crawler.
* [NEW FEATURE] WebP multiple crawler.
* [NEW FEATURE] HTTP/2 support for crawler.
* [BUGFIX] Fixed a js bug with the auto complete mobile user agents field when cache mobile is turned on.
* [BUGFIX] Fixed a constant undefined warning after activation.
* [GUI] Sitemap generation settings are no longer hidden when using a custom sitemap.

= 1.9 - February 12 2018 =
* [NEW FEATURE] Inline CSS/JS Minify.
* [IMPROVEMENT] Removed Composer vendor to thin the plugin folder.
* [UPDATE] Tweaked H2 to H1 in Admin headings for accessibility. (@steverep)
* [GUI] Added Mobile User Agents to basic view.
* [GUI] Moved Object Cache & Browser Cache from Cache tab to Advanced tab.
* [GUI] Moved LSCache Purge All from Adminbar to dropdown menu.

= 1.8.3 - February 2 2018 =
* [NEW FEATURE] Crawler server variable limitation support.
* [IMPROVEMENT] Added Store Transients option to fix transients missing issue when Cache Wp-Admin setting is OFF.
* [IMPROVEMENT] Tweaked ARIA support. (@steverep)
* [IMPROVEMENT] Used strpos instead of strncmp for performance. (@Zach E)
* [BUGFIX] Transient cache can now be removed when the Cache Wp-Admin setting is ON in Object Cache.
* [BUGFIX] Network sites can now save Advanced settings.
* [BUGFIX] Media list now shows in network sites.
* [BUGFIX] Show Crawler Status button is working again.
* [UPDATE] Fixed a couple of potential PHP notices in the Network cache tab and when no vary group is set.
* [GUI] Added Learn More link to all setting pages.

= 1.8.2 - January 29 2018 =
* [NEW FEATURE] Instant Click in the Advanced tab.
* [NEW FEATURE] Import/Export settings.
* [NEW FEATURE] Opcode Cache support.
* [NEW FEATURE] Basic/Advanced setting view.
* [IMPROVEMENT] Added ARIA support in widget settings.
* [BUGFIX] Multiple WordPress instances with same Object Cache address will no longer see shared data.
* [BUGFIX] WebP Replacement may now be set at the Network level.
* [BUGFIX] Object Cache file can now be removed at the Network level uninstall.

= 1.8.1 - January 22 2018 =
* [NEW FEATURE] Object Cache now supports Redis.
* [IMPROVEMENT] Memcached Object Cache now supports authorization.
* [IMPROVEMENT] A 500 error will no longer be encountered when turning on Object Cache without the proper PHP extension installed.
* [BUGFIX] Object Cache settings can now be saved at the Network level.
* [BUGFIX] Mu-plugin now supports Network setting.
* [BUGFIX] Fixed admin bar showing inaccurate Edit Page link.
* [UPDATE] Removed warning information when no Memcached server is available.

= 1.8 - January 17 2018 =
* [NEW FEATURE] Object Cache.
* [REFACTOR] Refactored Log class.
* [REFACTOR] Refactored LSCWP basic const initialization.
* [BUGFIX] Fixed Cloudflare domain search breaking when saving more than 50 domains under a single account.
* [UPDATE] Log filter settings are now their own item in the wp-option table.

= 1.7.2 - January 5 2018 =
* [NEW FEATURE] Cloudflare API support.
* [IMPROVEMENT] IAPI key can now be reset to avoid issues when domain is changed.
* [BUGFIX] Fixed JS optimizer breaking certain plugins JS.
* [UPDATE] Added cdn settings to environment report.
* [GUI] Added more shortcuts to backend adminbar.
* [INTEGRATION] WooCommerce visitors are now served from public cache when cart is empty.

= 1.7.1.1 - December 29 2017 =
* [BUGFIX] Fixed an extra trailing underscore issue when saving multiple lines with DNS Prefetch.
* [UPDATE] Cleaned up unused dependency vendor files.

= 1.7.1 - December 28 2017 =
* [NEW FEATURE] Added DNS Prefetch setting on the Optimize page.
* [NEW FEATURE] Added Combined File Max Size setting on the Tuning page.
* [IMPROVEMENT] Improved JS/CSS minify to achieve higher page scores.
* [IMPROVEMENT] Optimized JS/CSS files will not be served from private cache for OLS or with ESI off.
* [UPDATE] Fixed a potential warning for new installations on the Settings page.
* [UPDATE] Fixed an issue with guest users occasionally receiving PHP warnings.
* [BUGFIX] Fixed a bug with the Improve HTTPS Compatibility setting failing to save.
* Thanks to all of our users for your encouragement and support! Happy New Year!
* PS: Lookout 2018, we're back!

= 1.7 - December 22 2017 =
* [NEW FEATURE] Drop Query Strings setting in the Cache tab.
* [NEW FEATURE] Multiple CDN Mapping in the CDN tab.
* [IMPROVEMENT] Improve HTTP/HTTPS Compatibility setting in the Advanced tab.
* [IMPROVEMENT] Keep JS/CSS original position in HTML when excluded in setting.
* [IAPI] Reset client level credit after Image Optimization data is destroyed.
* [REFACTOR] Refactored build_input/textarea functions in admin_display class.
* [REFACTOR] Refactored CDN class.
* [GUI] Added a notice to Image Optimization and Crawler to warn when cache is disabled.
* [GUI] Improved image optimization indicator styles in Media Library List.

= 1.6.7 - December 15 2017 =
* [IAPI] Added ability to scan for new image thumbnail sizes and auto-resend image optimization requests.
* [IAPI] Added ability to destroy all optimization data.
* [IAPI] Updated IAPI to v1.6.7.
* [INTEGRATION] Fixed certain 3rd party plugins calling REST without user nonce causing logged in users to be served as guest.

= 1.6.6.1 - December 8 2017 =
* [IAPI] Limit first-time submission to one image group for test-run purposes.
* [BUGFIX] Fixed vary group generation issue associated with custom user role plugins.
* [BUGFIX] Fixed WooCommerce issue where logged-in users were erroneously purged when ESI is off.
* [BUGFIX] Fixed WooCommerce cache miss issue when ESI is off.

= 1.6.6 - December 6 2017 =
* [NEW FEATURE] Preserve EXIF in Media setting.
* [NEW FEATURE] Clear log button in Debug Log Viewer.
* [IAPI] Fixed notified images resetting to previous status when pulling.
* [IAPI] Fixed HTTPS compatibility for image optimization initialization.
* [IAPI] An error message is now displayed when image optimization request submission is bypassed due to a lack of credit.
* [IAPI] IAPI v1.6.6.
* [IMPROVEMENT] Support JS data-no-optimize attribute to bypass optimization.
* [GUI] Added image group wiki link.
* [INTEGRATION] Improved compatibility with Login With Ajax.
* [INTEGRATION] Added function_exists check for WooCommerce to avoid 500 errors.

= 1.6.5.1 - December 1 2017 =
* [HOTFIX] Fixed warning message on Edit .htaccess page.

= 1.6.5 - November 30 2017 =
* [IAPI] Manually pull image optimization action button.
* [IAPI] Automatic credit system for image optimization to bypass unfinished image optimization error.
* [IAPI] Notify failed images from LiteSpeed's Image Server.
* [IAPI] Reset/Clear failed images feature.
* [IAPI] Redesigned report page.
* [REFACTOR] Moved pull_img logic from admin_api to media.
* [BUGFIX] Fixed a compatibility issue for clients who have allow_url_open setting off.
* [BUGFIX] Fixed logged in users sometimes being served from guest cache.
* [UPDATE] Environment report is no longer saved to a file.
* [UPDATE] Removed crawler reset notification.
* [GUI] Added more details on image optimization.
* [GUI] Removed info page from admin menu.
* [GUI] Moved environment report from network level to single site level.
* [GUI] Crawler time added in a user friendly format.
* [INTEGRATION] Improved compatibility with FacetWP json call.

= 1.6.4 - November 22 2017 =
* [NEW FEATURE] Send env reports privately with a new built-in report number referral system.
* [IAPI] Increased request timeout to fix a cUrl 28 timeout issue.
* [BUGFIX] Fixed a TTL max value validation bug.
* [INTEGRATION] Improved Contact Form 7 REST call compatibility for logged in users.
* Thanks for all your ratings. That encouraged us to be more diligent. Happy Thanksgiving.

= 1.6.3 - November 17 2017 =
* [NEW FEATURE] Only async Google Fonts setting.
* [NEW FEATURE] Only create WebP images when optimizing setting.
* [NEW FEATURE] Batch switch images to original/optimized versions in Image Optimization.
* [NEW FEATURE] Browser Cache TTL setting.
* [NEW FEATURE] Cache WooCommerce Cart setting.
* [IMPROVEMENT] Moved optimized JS/CSS snippet in header html to after meta charset.
* [IMPROVEMENT] Added a constant for better JS/CSS optimization compatibility for different dir WordPress installation.
* [IAPI] Take over failed callback check instead of bypassing it.
* [IAPI] Image optimization requests are now limited to 500 images per request.
* [BUGFIX] Fixed a parsing failure bug not using attributes in html elements with dash.
* [BUGFIX] Fixed a bug causing non-script code to move to the top of a page when not using combination.
* [UPDATE] Added detailed logs for external link detection.
* [UPDATE] Added new lines in footer comment to avoid Firefox crash when enabled HTML minify.
* [API] `Purge private` / `Purge private all` / `Add private tag` functions.
* [GUI] Redesigned image optimization operation links in Media Lib list.
* [GUI] Tweaked wp-admin form save button position.
* [GUI] Added "learn more" link for image optimization.

= 1.6.2.1 - November 6 2017 =
* [INTEGRATION] Improved compatibility with old WooCommerce versions to avoid unknown 500 errors.
* [BUGFIX] Fixed WebP images sometimes being used in non-supported browsers.
* [BUGFIX] Kept query strings for HTTP/2 push to avoid re-fetching pushed sources.
* [BUGFIX] Excluded JS/CSS from HTTP/2 push when using CDN.
* [GUI] Fixed a typo in Media list.
* [GUI] Made more image optimization strings translatable.
* [GUI] Updated Tuning description to include API documentation.

= 1.6.2 - November 3 2017 =
* [NEW FEATURE] Do Not Cache Roles.
* [NEW FEATURE] Use WebP Images for supported browsers.
* [NEW FEATURE] Disable Optimization Poll ON/OFF Switch in Media tab.
* [NEW FEATURE] Revert image optimization per image in Media list.
* [NEW FEATURE] Disable/Enable image WebP per image in Media list.
* [IAPI] Limit optimized images fetching cron to a single process.
* [IAPI] Updated IAPI to v1.6.2.
* [IAPI] Fixed repeating image request issue by adding a failure status to local images.
* [REFACTOR] Refactored login vary logic.

= 1.6.1 - October 29 2017 =
* [IAPI] Updated LiteSpeed Image Optimization Server API to v1.6.1.

= 1.6 - October 27 2017 =
* [NEW FEATURE] Image Optimization.
* [NEW FEATURE] Role Excludes for Optimization.
* [NEW FEATURE] Combined CSS/JS Priority.
* [IMPROVEMENT] Bypass CDN for login/register page.
* [UPDATE] Expanded ExpiresByType rules to include new font types. ( Thanks to JMCA2 )
* [UPDATE] Removed duplicated type param in admin action link.
* [BUGFIX] Fixed CDN wrongly replacing img base64 and "fake" src in JS.
* [BUGFIX] Fixed image lazy load replacing base64 src.
* [BUGFIX] Fixed a typo in Optimize class exception.
* [GUI] New Tuning tab in admin settings panel.
* [REFACTOR] Simplified router by reducing actions and adding types.
* [REFACTOR] Renamed `run()` to `finalize()` in buffer process.

= 1.5 - October 17 2017 =
* [NEW FEATURE] Exclude JQuery (to fix inline JS error when using JS Combine).
* [NEW FEATURE] Load JQuery Remotely.
* [NEW FEATURE] JS Deferred Excludes.
* [NEW FEATURE] Lazy Load Images Excludes.
* [NEW FEATURE] Lazy Load Image Placeholder.
* [IMPROVEMENT] Improved Lazy Load size attribute for w3c validator.
* [UPDATE] Added basic caching info and LSCWP version to HTML comment.
* [UPDATE] Added debug log to HTML detection.
* [BUGFIX] Fixed potential font CORS issue when using CDN.
* [GUI] Added API docs to setting description.
* [REFACTOR] Relocated all classes under includes with backwards compatibility.
* [REFACTOR] Relocated admin templates.

= 1.4 - October 11 2017 =
* [NEW FEATURE] Lazy load images/iframes.
* [NEW FEATURE] Clean CSS/JS optimizer data functionality in DB Optimizer panel.
* [NEW FEATURE] Exclude certain URIs from optimizer.
* [IMPROVEMENT] Improved optimizer HTML check compatibility to avoid conflicts with ESI functions.
* [IMPROVEMENT] Added support for using ^ when matching the start of a path in matching settings.
* [IMPROVEMENT] Added wildcard support in CDN original URL.
* [IMPROVEMENT] Moved optimizer table initialization to admin setting panel with failure warning.
* [UPDATE] Added a one-time welcome banner.
* [UPDATE] Partly relocated class: 'api'.
* [API] Added API wrapper for removing wrapped HTML output.
* [INTEGRATION] Fixed WooCommerce conflict with optimizer.
* [INTEGRATION] Private cache support for WooCommerce v3.2.0+.
* [GUI] Added No Optimization menu to frontend.

= 1.3.1.1 - October 6 2017 =
* [BUGFIX] Improved optimizer table creating process in certain database charset to avoid css/js minify/combination failure.

= 1.3.1 - October 5 2017 =
* [NEW FEATURE] Remove WP Emoji Option.
* [IMPROVEMENT] Separated optimizer data from wp_options to improve compatibility with backup plugins.
* [IMPROVEMENT] Enhanced crawler cron hook to prevent de-scheduling in some cases.
* [IMPROVEMENT] Enhanced Remove Query Strings to also remove Emoji query strings.
* [IMPROVEMENT] Enhanced HTML detection when extra spaces are present at the beginning.
* [UPDATE] Added private cache support for OLS.
* [BUGFIX] Self-redirects are no longer cached.
* [BUGFIX] Fixed css async lib warning when loading in HTTP/2 push.

= 1.3 - October 1 2017 =
* [NEW FEATURE] Added Browser Cache support.
* [NEW FEATURE] Added Remove Query Strings support.
* [NEW FEATURE] Added Remove Google Fonts support.
* [NEW FEATURE] Added Load CSS Asynchronously support.
* [NEW FEATURE] Added Load JS Deferred support.
* [NEW FEATURE] Added Critical CSS Rules support.
* [NEW FEATURE] Added Private Cached URIs support.
* [NEW FEATURE] Added Do Not Cache Query Strings support.
* [NEW FEATURE] Added frontend adminbar shortcuts ( Purge this page/Do Not Cache/Private cache ).
* [IMPROVEMENT] Do Not Cache URIs now supports full URLs.
* [IMPROVEMENT] Improved performance of Do Not Cache settings.
* [IMPROVEMENT] Encrypted vary cookie.
* [IMPROVEMENT] Enhanced HTML optimizer.
* [IMPROVEMENT] Limited combined file size to avoid heavy memory usage.
* [IMPROVEMENT] CDN supports custom upload folder for media files.
* [API] Added purge single post API.
* [API] Added version compare API.
* [API] Enhanced ESI API for third party plugins.
* [INTEGRATION] Compatibility with NextGEN Gallery v2.2.14.
* [INTEGRATION] Compatibility with Caldera Forms v1.5.6.2+.
* [BUGFIX] Fixed CDN&Minify compatibility with css url links.
* [BUGFIX] Fixed .htaccess being regenerated despite there being no changes.
* [BUGFIX] Fixed CDN path bug for subfolder WP instance.
* [BUGFIX] Fixed crawler path bug for subfolder WP instance with different site url and home url.
* [BUGFIX] Fixed a potential Optimizer generating redundant duplicated JS in HTML bug.
* [GUI] Added a more easily accessed submit button in admin settings.
* [GUI] Admin settings page cosmetic changes.
* [GUI] Reorganized GUI css/img folder structure.
* [REFACTOR] Refactored configuration init.
* [REFACTOR] Refactored admin setting save.
* [REFACTOR] Refactored .htaccess operator and rewrite rule generation.

= 1.2.3.1 - September 20 2017 =
* [UPDATE] Improved PHP5.3 compatibility.

= 1.2.3 - September 20 2017 =
* [NEW FEATURE] Added CDN support.
* [IMPROVEMENT] Improved compatibility when upgrading by fixing a possible fatal error.
* [IMPROVEMENT] Added support for custom wp-content paths.
* [BUGFIX] Fixed non-primary network blogs not being able to minify.
* [BUGFIX] Fixed HTML Minify preventing Facebook from being able to parse og tags.
* [BUGFIX] Preview page is no longer cacheable.
* [BUGFIX] Corrected log and crawler timezone to match set WP timezone.
* [GUI] Revamp of plugin GUI.

= 1.2.2 - September 15 2017 =
* [NEW FEATURE] Added CSS/JS minification.
* [NEW FEATURE] Added CSS/JS combining.
* [NEW FEATURE] Added CSS/JS HTTP/2 server push.
* [NEW FEATURE] Added HTML minification.
* [NEW FEATURE] Added CSS/JS cache purge button in management.
* [UPDATE] Improved debug log formatting.
* [UPDATE] Fixed some description typos.

= 1.2.1 - September 7 2017 =
* [NEW FEATURE] Added Database Optimizer.
* [NEW FEATURE] Added Tab switch shortcut.
* [IMPROVEMENT] Added cache disabled check for management pages.
* [IMPROVEMENT] Renamed .htaccess backup for security.
* [BUGFIX] Fixed woocommerce default ESI setting bug.
* [REFACTOR] Show ESI page for OLS with notice.
* [REFACTOR] Management Purge GUI updated.

= 1.2.0.1 - September 1 2017 =
* [BUGFIX] Fixed a naming bug for network constant ON2.

= 1.2.0 - September 1 2017 =
* [NEW FEATURE] Added ESI support.
* [NEW FEATURE] Added a private cache TTL setting.
* [NEW FEATURE] Debug level can now be set to either 'Basic' or 'Advanced'.
* [REFACTOR] Renamed const 'NOTSET' to 'ON2' in class config.

= 1.1.6 - August 23 2017 =
* [NEW FEATURE] Added option to privately cache logged-in users.
* [NEW FEATURE] Added option to privately cache commenters.
* [NEW FEATURE] Added option to cache requests made through WordPress REST API.
* [BUGFIX] Fixed network 3rd-party full-page cache detection bug.
* [GUI] New Cache and Purge menus in Settings.

= 1.1.5.1 - August 16 2017 =
* [IMPROVEMENT] Improved compatibility of frontend&backend .htaccess path detection when site url is different than installation path.
* [UPDATE] Removed unused format string from header tags.
* [BUGFIX] 'showheader' Admin Query String now works.
* [REFACTOR] Cache tags will no longer output if not needed.

= 1.1.5 - August 10 2017 =
* [NEW FEATURE] Scheduled Purge URLs feature.
* [NEW FEATURE] Added buffer callback to improve compatibility with some plugins that force buffer cleaning.
* [NEW FEATURE] Hide purge_all admin bar quick link if cache is disabled.
* [NEW FEATURE] Required htaccess rules are now displayed when .htaccess is not writable.
* [NEW FEATURE] Debug log features: filter log support; heartbeat control; log file size limit; log viewer.
* [IMPROVEMENT] Separate crawler access log.
* [IMPROVEMENT] Lazy PURGE requests made after output are now queued and working.
* [IMPROVEMENT] Improved readme.txt with keywords relating to our compatible plugins list.
* [UPDATE] 'ExpiresDefault' conflict msg is now closeable and only appears in the .htaccess edit screen.
* [UPDATE] Improved debug log formatting.
* [INTEGRATION] Compatibility with MainWP plugin.
* [BUGFIX] Fixed Woocommerce order not purging product stock quantity.
* [BUGFIX] Fixed Woocommerce scheduled sale price not updating issue.
* [REFACTOR] Combined cache_enable functions into a single function.

= 1.1.4 - August 1 2017 =
* [IMPROVEMENT] Unexpected rewrite rules will now show an error message.
* [IMPROVEMENT] Added Cache Tag Prefix setting info in the Env Report and Info page.
* [IMPROVEMENT] LSCWP setting link is now displayed in the plugin list.
* [IMPROVEMENT] Improved performance when setting cache control.
* [UPDATE] Added backward compatibility for v1.1.2.2 API calls. (used by 3rd-party plugins)
* [BUGFIX] Fixed WPCLI purge tag/category never succeeding.

= 1.1.3 - July 31 2017 =
* [NEW FEATURE] New LiteSpeed_Cache_API class and documentation for 3rd party integration.
* [NEW FEATURE] New API function litespeed_purge_single_post($post_id).
* [NEW FEATURE] PHP CLI support for crawler.
* [IMPROVEMENT] Set 'no cache' for same location 301 redirects.
* [IMPROVEMENT] Improved LiteSpeed footer comment compatibility.
* [UPDATE] Removed 'cache tag prefix' setting.
* [BUGFIX] Fixed a bug involving CLI purge all.
* [BUGFIX] Crawler now honors X-LiteSpeed-Cache-Control for the 'no-cache' header.
* [BUGFIX] Cache/rewrite rules are now cleared when the plugin is uninstalled.
* [BUGFIX] Prevent incorrect removal of the advanced-cache.php on deactivation if it was added by another plugin.
* [BUGFIX] Fixed subfolder WP installations being unable to Purge By URL using a full URL path.
* [REFACTOR] Reorganized existing code for an upcoming ESI release.

= 1.1.2.2 - July 13 2017 =
* [BUGFIX] Fixed blank page in Hebrew language post editor by removing unused font-awesome and jquery-ui css libraries.

= 1.1.2.1 - July 5 2017 =
* [UPDATE] Improved compatibility with WooCommerce v3.1.0.

= 1.1.2 - June 20 2017 =
* [BUGFIX] Fixed missing form close tag.
* [UPDATE] Added a wiki link for enabling the crawler.
* [UPDATE] Improved Site IP description.
* [UPDATE] Added an introduction to the crawler on the Information page.
* [REFACTOR] Added more detailed error messages for Site IP and Custom Sitemap settings.

= 1.1.1.1 - June 15 2017 =
* [BUGFIX] Hotfix for insufficient validation of site IP value in crawler settings.

= 1.1.1 - June 15 2017 =
* [NEW] As of LiteSpeed Web Server v.5.1.16, the crawler can now be enabled/disabled at the server level.
* [NEW] Added the ability to provide a custom sitemap for crawling.
* [NEW] Added ability to use site IP address directly in crawler settings.
* [NEW] Crawler performance improved with the use of new custom user agent 'lsrunner'.
* [NEW] "Purge By URLs" now supports full URL paths.
* [NEW] Added thirdparty WP-PostRatings compatibility.
* [BUGFIX] Cache is now cleared when changing post status from published to draft.
* [BUGFIX] WHM activation message no longer continues to reappear after being dismissed.
* [COSMETIC] Display recommended values for settings.

= 1.1.0.1 - June 8 2017 =
* [UPDATE] Improved default crawler interval setting.
* [UPDATE] Tested up to WP 4.8.
* [BUGFIX] Fixed compatibility with plugins that output json data.
* [BUGFIX] Fixed tab switching bug.
* [BUGFIX] Removed occasional duplicated messages on save.
* [COSMETIC] Improved crawler tooltips and descriptions.

= 1.1.0 - June 6 2017 =
* [NEW] Added a crawler - this includes configuration options and a dedicated admin page. Uses wp-cron
* [NEW] Added integration for WPLister
* [NEW] Added integration for Avada
* [UPDATE] General structure of the plugin revamped
* [UPDATE] Improved look of admin pages
* [BUGFIX] Fix any/all wp-content path retrieval issues
* [BUGFIX] Use realpath to clear symbolic link when determining .htaccess paths
* [BUGFIX] Fixed a bug where upgrading multiple plugins did not trigger a purge all
* [BUGFIX] Fixed a bug where cli import_options did not actually update the options.
* [REFACTOR] Most of the files in the code were split into more, smaller files

= 1.0.15 - April 20 2017 =
* [NEW] Added Purge Pages and Purge Recent Posts Widget pages options.
* [NEW] Added wp-cli command for setting and getting options.
* [NEW] Added an import/export options cli command.
* [NEW] Added wpForo integration.
* [NEW] Added Theme My Login integration.
* [UPDATE] Purge adjacent posts when publish a new post.
* [UPDATE] Change environment report file to .php and increase security.
* [UPDATE] Added new purgeby option to wp-cli.
* [UPDATE] Remove nag for multiple sites.
* [UPDATE] Only inject LiteSpeed javascripts in LiteSpeed pages.
* [REFACTOR] Properly check for zero in ttl settings.
* [BUGFIX] Fixed the 404 issue that can be caused by some certain plugins when save the settings.
* [BUGFIX] Fixed mu-plugin compatibility.
* [BUGFIX] Fixed problem with creating zip backup.
* [BUGFIX] Fixed conflict with jetpack.

= 1.0.14.1 - January 31 2017 =
* [UPDATE] Removed Freemius integration due to feedback.

= 1.0.14 - January 30 2017 =
* [NEW] Added error page caching. Currently supports 403, 404, 500s.
* [NEW] Added a purge errors action.
* [NEW] Added wp-cli integration.
* [UPDATE] Added support for multiple varies.
* [UPDATE] Reorganize the admin interface to be less cluttered.
* [UPDATE] Add support for LiteSpeed Web ADC.
* [UPDATE] Add Freemius integration.
* [REFACTOR] Made some changes so that the rewrite rules are a little more consistent.
* [BUGFIX] Check member type before adding purge all button.
* [BUGFIX] Fixed a bug where activating/deactivating the plugin quickly caused the WP_CACHE error to show up.
* [BUGFIX] Handle more characters in the rewrite parser.
* [BUGFIX] Correctly purge posts when they are made public/private.

= 1.0.13.1 - November 30 2016 =
* [BUGFIX] Fixed a bug where a global was being used without checking existence first, causing unnecessary log entries.

= 1.0.13 - November 28 2016 =
* [NEW] Add an Empty Entire Cache button.
* [NEW] Add stale logic to certain purge actions.
* [NEW] Add option to use primary site settings for all subsites in a multisite environment.
* [NEW] Add support for Aelia CurrencySwitcher
* [UPDATE] Add logic to allow third party vary headers
* [UPDATE] Handle password protected pages differently.
* [BUGFIX] Fixed bug caused by saving settings.
* [BUGFIX] FIxed bug when searching for advanced-cache.php

= 1.0.12 - November 14 2016 =
* [NEW] Added logic to generate environment reports.
* [NEW] Created a notice that will be triggered when the WHM Plugin installs this plugin. This will notify users when the plugin is installed by their server admin.
* [NEW] Added the option to cache 404 pages via 404 Page TTL setting.
* [NEW] Reworked log system to be based on selection of yes or no instead of log level.
* [NEW] Added support for Autoptimize.
* [NEW] Added Better WP Minify integration.
* [UPDATE] On plugin disable, clear .htaccess.
* [UPDATE] Introduced URL tag. Changed Purge by URL to use this new tag.
* [BUGFIX] Fixed a bug triggered when .htaccess files were empty.
* [BUGFIX] Correctly determine when to clear files in multisite environments (wp-config, advanced-cache, etc.).
* [BUGFIX] When disabling the cache, settings changed in the same save will now be saved.
* [BUGFIX] Various bugs from setting changes and multisite fixed.
* [BUGFIX] Fixed two bugs with the .htaccess path search.
* [BUGFIX] Do not alter $_GET in add_quick_purge. This may cause issues for functionality occurring later in the same request.
* [BUGFIX] Right to left radio settings were incorrectly displayed. The radio buttons themselves were the opposite direction of the associated text.

= 1.0.11 - October 11 2016 =
* [NEW] The plugin will now set cachelookup public on.
* [NEW] New option - check advanced-cache.php. This enables users to have two caching plugins enabled at the same time as long as the other plugin is not used for caching purposes. For example, using another cache plugin for css/js minification.
* [UPDATE] Rules added by the plugin will now be inserted into an LSCACHE START/END PLUGIN comment block.
* [UPDATE] For woocommerce pages, if a user visits a non-cached page with a non-empty cart, do not cache the page.
* [UPDATE] If woocommerce needs to display any notice, do not cache the page.
* [UPDATE] Single site settings are now in both the litespeed cache submenu and the settings submenu.
* [BUGFIX] Multisite network options were not updated on upgrade. This is now corrected.

= 1.0.10 - September 16 2016 =
* Added a check for LSCACHE_NO_CACHE definition.
* Added a Purge All button to the admin bar.
* Added logic to purge the cache when upgrading a plugin or theme. By default this is enabled on single site installations and disabled on multisite installations.
* Added support for WooCommerce Versions < 2.5.0.
* Added .htaccess backup rotation. Every 10 backups, an .htaccess archive will be created. If one already exists, it will be overwritten.
* Moved some settings to the new Specific Pages tab to reduce clutter in the General tab.
* The .htaccess editor is now disabled if DISALLOW_FILE_EDIT is set.
* After saving the Cache Tag Prefix setting, all cache will be purged.

= 1.0.9.1 - August 26 2016 =
* Fixed a bug where an error displayed on the configuration screen despite not being an error.
* Change logic to check .htaccess file less often.

= 1.0.9 - August 25 2016 =
* [NEW] Added functionality to cache and purge feeds.
* [NEW] Added cache tag prefix setting to avoid conflicts when using LiteSpeed Cache for WordPress with LiteSpeed Cache for XenForo and LiteMage.
* [NEW] Added hooks to allow third party plugins to create config options.
* [NEW] Added WooCommerce config options.
* The plugin now also checks for wp-config in the parent directory.
* Improved WooCommerce support.
* Changed .htaccess backup process. Will create a .htaccess_lscachebak_orig file if one does not exist. If it does already exist, creates a backup using the date and timestamp.
* Fixed a bug where get_home_path() sometimes returned an invalid path.
* Fixed a bug where if the .htaccess was removed from a WordPress subdirectory, it was not handled properly.

= 1.0.8.1 - July 28 2016 =
* Fixed a bug where check cacheable was sometimes not hit.
* Fixed a bug where extra slashes in clear rules were stripped.

= 1.0.8 - July 25 2016 =
* Added purge all on update check to purge by post id logic.
* Added uninstall logic.
* Added configuration for caching favicons.
* Added configuration for caching the login page.
* Added configuration for caching php resources (scripts/stylesheets accessed as .php).
* Set login cookie if user is logged in and it isn’t set.
* Improved NextGenGallery support to include new actions.
* Now displays a notice on the network admin if WP_CACHE is not set.
* Fixed a few php syntax issues.
* Fixed a bug where purge by pid didn’t work.
* Fixed a bug where the Network Admin settings were shown when the plugin was active in a subsite, but not network active.
* Fixed a bug where the Advanced Cache check would sometimes not work.

= 1.0.7.1 - May 26 2016 =
* Fixed a bug where enabling purge all in the auto purge on update settings page did not purge the correct blogs.
* Fixed a bug reported by user wpc on our forums where enabling purge all in the auto purge on update settings page caused nothing to be cached.

= 1.0.7 - May 24 2016 =
* Added login cookie configuration to the Advanced Settings page.
* Added support for WPTouch plugin.
* Added support for WP-Polls plugin.
* Added Like Dislike Counter third party integration.
* Added support for Admin IP Query String Actions.
* Added confirmation pop up for purge all.
* Refactor: LiteSpeed_Cache_Admin is now split into LiteSpeed_Cache_Admin, LiteSpeed_Cache_Admin_Display, and LiteSpeed_Cache_Admin_Rules
* Refactor: Rename functions to accurately represent their functionality
* Fixed a bug that sometimes caused a “no valid header” error message.

= 1.0.6 - May 5 2016 =
* Fixed a bug reported by Knut Sparhell that prevented dashboard widgets from being opened or closed.
* Fixed a bug reported by Knut Sparhell that caused problems with https support for admin pages.

= 1.0.5 - April 26 2016 =
* [BETA] Added NextGen Gallery plugin support.
* Added third party plugin integration.
* Improved cache tag system.
* Improved formatting for admin settings pages.
* Converted bbPress to use the new third party integration system.
* Converted WooCommerce to use the new third party integration system.
* If .htaccess is not writable, disable separate mobile view and do not cache cookies/user agents.
* Cache is now automatically purged when disabled.
* Fixed a bug where .htaccess was not checked properly when adding common rules.
* Fixed a bug where multisite setups would be completely purged when one site requested a purge all.

= 1.0.4 - April 7 2016 =
* Added logic to cache commenters.
* Added htaccess backup to the install script.
* Added an htaccess editor in the wp-admin dashboard.
* Added do not cache user agents.
* Added do not cache cookies.
* Created new LiteSpeed Cache Settings submenu entries.
* Implemented Separate Mobile View.
* Modified WP_CACHE not defined message to only show up for users who can manage options.
* Moved enabled all/disable all from network management to network settings.
* Fixed a bug where WP_CACHE was not defined on activation if it was commented out.

= 1.0.3 - March 23 2016 =
* Added a Purge Front Page button to the LiteSpeed Cache Management page.
* Added a Default Front Page TTL option to the general settings.
* Added ability to define web application specific cookie names through rewrite rules to handle logged-in cookie conflicts when using multiple web applications. <strong>[Requires LSWS 5.0.15+]</strong>
* Improved WooCommerce handling.
* Fixed a bug where activating lscwp sets the “enable cache” radio button to enabled, but the cache was not enabled by default.
* Refactored code to make it cleaner.
* Updated readme.txt.

= 1.0.2 - March 11 2016 =
* Added a "Use Network Admin Setting" option for "Enable LiteSpeed Cache". For single sites, this choice will default to enabled.
* Added enable/disable all buttons for network admin. This controls the setting of all managed sites with "Use Network Admin Setting" selected for "Enable LiteSpeed Cache".
* Exclude by Category/Tag are now text areas to avoid slow load times on the LiteSpeed Cache Settings page for sites with a large number of categories/tags.
* Added a new line to advanced-cache.php to allow identification as a LiteSpeed Cache file.
* Activation/Deactivation are now better handled in multi-site environments.
* Enable LiteSpeed Cache setting is now a radio button selection instead of a single checkbox.
* Can now add '$' to the end of a URL in Exclude URI to perform an exact match.
* The _lscache_vary cookie will now be deleted upon logout.
* Fixed a bug in multi-site setups that would cause a "function already defined" error.

= 1.0.1 - March 8 2016 =
* Added Do Not Cache by URI, by Category, and by Tag.  URI is a prefix/string equals match.
* Added a help tab for plugin compatibilities.
* Created logic for other plugins to purge a single post if updated.
* Fixed a bug where woocommerce pages that display the cart were cached.
* Fixed a bug where admin menus in multi-site setups were not correctly displayed.
* Fixed a bug where logged in users were served public cached pages.
* Fixed a compatibility bug with bbPress.  If there is a new forum/topic/reply, the parent pages will now be purged as well.
* Fixed a bug that didn't allow cron job to update scheduled posts.

= 1.0.0 - January 20 2016 =
* Initial Release.
<?php
namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit;

use LiteSpeed\Base;
use LiteSpeed\Admin_Settings;
use LiteSpeed\Utility;
use WP_CLI;

/**
 * LiteSpeed Cache option Interface
 */
class Option extends Base {
	/**
	 * Set an individual LiteSpeed Cache option.
	 *
	 * ## OPTIONS
	 *
	 * <key>
	 * : The option key to update.
	 *
	 * <newvalue>
	 * : The new value to set the option to.
	 *
	 * ## EXAMPLES
	 *
	 *     # Set to not cache the login page
	 *     $ wp litespeed-option set cache-priv false
	 *     $ wp litespeed-option set 'cdn-mapping[url][0]' https://cdn.EXAMPLE.com
	 *
	 */
	public function set( $args, $assoc_args ) {
		/**
		 * Note: If the value is multiple dimensions like cdn-mapping, need to specially handle it both here and in `const.default.ini`
		 *
		 * For CDN/Crawler mutlti dimension settings, if all children are empty in one line, will delete that line. To delete one line, just set all to empty.
		 * E.g. to delete cdn-mapping[0], need to run below:
		 * 											`set cdn-mapping[url][0] ''`
		 * 											`set cdn-mapping[inc_img][0] ''`
		 * 											`set cdn-mapping[inc_css][0] ''`
		 * 											`set cdn-mapping[inc_js][0] ''`
		 * 											`set cdn-mapping[filetype][0] ''`
		 */
		$key = $args[ 0 ];
		$val = $args[ 1 ];

		/**
		 * For CDN mapping, allow:
		 * 		`set 'cdn-mapping[url][0]' https://the1st_cdn_url`
		 * 		`set 'cdn-mapping[inc_img][0]' true`
		 * 		`set 'cdn-mapping[inc_img][0]' 1`
		 * @since  2.7.1
		 *
		 * For Crawler cookies:
		 * 		`set 'crawler-cookies[name][0]' my_currency`
		 * 		`set 'crawler-cookies[vals][0]' "USD\nTWD"`
		 */

		// Build raw data
		$raw_data = array(
			Admin_Settings::ENROLL	=> array( $key ),
		);

		// Contains child set
		if ( strpos( $key, '[' ) ) {
			parse_str( $key . '=' . $val , $key2 );
			$raw_data = array_merge( $raw_data, $key2 );
		}
		else {
			$raw_data[ $key ] = $val;
		}

		$this->cls( 'Admin_Settings' )->save( $raw_data );
		WP_CLI::line( "$key:" );
		$this->get( $args, $assoc_args );

	}

	/**
	 * Get the plugin options.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Get all options
	 *     $ wp litespeed-option all
	 *     $ wp litespeed-option all --json
	 *
	 */
	public function all( $args, $assoc_args ) {
		$options = $this->get_options();

		if ( ! empty( $assoc_args[ 'format' ] ) ) {
			WP_CLI::print_value( $options, $assoc_args );
			return;
		}

		$option_out = array();

		$buf = WP_CLI::colorize("%CThe list of options:%n");
		WP_CLI::line($buf);

		foreach( $options as $k => $v ) {
			if ( $k == self::O_CDN_MAPPING || $k == self::O_CRAWLER_COOKIES ) {
				foreach ( $v as $k2 => $v2 ) { // $k2 is numeric
					if ( is_array( $v2 ) ) {
						foreach ( $v2 as $k3 => $v3 ) { // $k3 = 'url/inc_img/name/vals'
							if ( is_array( $v3 ) ) {
								$option_out[] = array( 'key' => '', 'value' => '' );
								foreach ( $v3 as $k4 => $v4 ) {
									$option_out[] = array( 'key' => $k4 == 0 ? "{$k}[$k3][$k2]" : '', 'value' => $v4 );
								}
								$option_out[] = array( 'key' => '', 'value' => '' );
							}
							else {
								$option_out[] = array( 'key' => "{$k}[$k3][$k2]", 'value' => $v3 );
							}
						}
					}
				}
				continue;
			}
			elseif ( is_array( $v ) && $v ) {
				// $v = implode( PHP_EOL, $v );
				$option_out[] = array( 'key' => '', 'value' => '' );
				foreach ( $v as $k2 => $v2 ) {
					$option_out[] = array( 'key' => $k2 == 0 ? $k : '', 'value' => $v2 );
				}
				$option_out[] = array( 'key' => '', 'value' => '' );
				continue;
			}

			if ( array_key_exists( $k, self::$_default_options ) && is_bool( self::$_default_options[ $k ] ) && ! $v ) {
				$v = 0;
			}

			if ( $v === '' || $v === array() ) {
				$v = "''";
			}

			$option_out[] = array( 'key' => $k, 'value' => $v );
		}

		WP_CLI\Utils\format_items('table', $option_out, array('key', 'value'));
	}

	/**
	 * Get the plugin options.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Get one option
	 *     $ wp litespeed-option get cache-priv
	 *     $ wp litespeed-option get 'cdn-mapping[url][0]'
	 *
	 */
	public function get( $args, $assoc_args ) {
		$id = $args[ 0 ];

		$child = false;
		if ( strpos( $id, '[' ) ) {
			parse_str( $id, $id2 );
			Utility::compatibility();
			$id = array_key_first( $id2 );

			$child = array_key_first( $id2[ $id ] ); // `url`
			if ( ! $child ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
			$numeric = array_key_first( $id2[ $id ][ $child ] ); // `0`
			if ( $numeric === null ) {
				WP_CLI::error( 'Wrong 2nd level numeric key' );
				return;
			}
		}

		if ( ! isset( self::$_default_options[ $id ] ) ) {
			WP_CLI::error( 'ID not exist [id] ' . $id );
			return;
		}

		$v = $this->conf( $id );
		$default_v = self::$_default_options[ $id ];

		/**
		 * For CDN_mapping and crawler_cookies
		 * Examples of option name:
		 * 		cdn-mapping[url][0]
		 * 		crawler-cookies[name][1]
		 */
		if ( $id == self::O_CDN_MAPPING ) {
			if ( ! in_array( $child, array(
				self::CDN_MAPPING_URL,
				self::CDN_MAPPING_INC_IMG,
				self::CDN_MAPPING_INC_CSS,
				self::CDN_MAPPING_INC_JS,
				self::CDN_MAPPING_FILETYPE,
			) ) ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
		}
		if ( $id == self::O_CRAWLER_COOKIES ) {
			if ( ! in_array( $child, array(
				self::CRWL_COOKIE_NAME,
				self::CRWL_COOKIE_VALS,
			) ) ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
		}

		if ( $id == self::O_CDN_MAPPING || $id == self::O_CRAWLER_COOKIES ) {
			if ( ! empty( $v[ $numeric ][ $child ] ) ) {
				$v = $v[ $numeric ][ $child ];
			}
			else {
				if ( $id == self::O_CDN_MAPPING ) {
					if ( in_array( $child, array(
						self::CDN_MAPPING_INC_IMG,
						self::CDN_MAPPING_INC_CSS,
						self::CDN_MAPPING_INC_JS,
					) ) ) {
						$v = 0;
					}
					else {
						$v = "''";
					}
				}
				else {
					$v = "''";
				}
			}
		}

		if ( is_array( $v ) ) {
			$v = implode( PHP_EOL , $v );
		}

		if ( ! $v && $id != self::O_CDN_MAPPING && $id != self::O_CRAWLER_COOKIES ) { // empty array for CDN/crawler has been handled
			if ( is_bool( $default_v ) ) {
				$v = 0;
			}
			elseif ( ! is_array( $default_v ) ) {
				$v = "''";
			}
		}

		WP_CLI::line( $v );
	}

	/**
	 * Export plugin options to a file.
	 *
	 * ## OPTIONS
	 *
	 * [--filename=<path>]
	 * : The default path used is CURRENTDIR/lscache_wp_options_DATE-TIME.txt.
	 * To select a different file, use this option.
	 *
	 * ## EXAMPLES
	 *
	 *     # Export options to a file.
	 *     $ wp litespeed-option export
	 *
	 */
	public function export( $args, $assoc_args ) {
		if ( isset($assoc_args['filename']) ) {
			$file = $assoc_args['filename'];
		}
		else {
			$file = getcwd() . '/litespeed_options_' . date('d_m_Y-His') . '.data';
		}

		if ( ! is_writable(dirname($file)) ) {
			WP_CLI::error('Directory not writable.');
			return;
		}

		$data = $this->cls( 'Import' )->export( true );

		if ( file_put_contents( $file, $data ) === false ) {
			WP_CLI::error( 'Failed to create file.' );
		}
		else {
			WP_CLI::success('Created file ' . $file);
		}
	}

	/**
	 * Import plugin options from a file.
	 *
	 * The file must be formatted as such:
	 * option_key=option_value
	 * One per line.
	 * A Semicolon at the beginning of the line indicates a comment and will be skipped.
	 *
	 * ## OPTIONS
	 *
	 * <file>
	 * : The file to import options from.
	 *
	 * ## EXAMPLES
	 *
	 *     # Import options from CURRENTDIR/options.txt
	 *     $ wp litespeed-option import options.txt
	 *
	 */
	public function import( $args, $assoc_args ) {
		$file = $args[0];
		if ( ! file_exists($file) || ! is_readable($file) ) {
			WP_CLI::error('File does not exist or is not readable.');
		}

		$res = $this->cls( 'Import' )->import( $file );

		if ( ! $res ) {
			WP_CLI::error( 'Failed to parse serialized data from file.' );
		}

		WP_CLI::success( 'Options imported. [File] ' . $file );
	}

	/**
	 * Reset all options to default.
	 *
	 * ## EXAMPLES
	 *
	 *     # Reset all options
	 *     $ wp litespeed-option reset
	 *
	 */
	public function reset() {
		$this->cls( 'Import' )->reset();
	}

}

<?php
namespace LiteSpeed\CLI;
defined( 'WPINC' ) || exit;

use LiteSpeed\Debug2;
use LiteSpeed\Report;
use WP_CLI;

/**
 * Debug API CLI
 */
class Debug
{
	private $__report;

	public function __construct()
	{
		Debug2::debug( 'CLI_Debug init' );

		$this->__report = Report::cls();
	}

	/**
	 * Send report
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Send env report to LiteSpeed
	 *     $ wp litespeed-debug send
	 *
	 */
	public function send()
	{
		$num = $this->__report->post_env();
		WP_CLI::success( 'Report Number = ' . $num );
	}

}
<?php
namespace LiteSpeed\CLI;
defined( 'WPINC' ) || exit;

use LiteSpeed\Debug2;
use LiteSpeed\Cloud;
use WP_CLI;

/**
 * QUIC.cloud API CLI
 */
class Online
{
	private $__cloud;

	public function __construct()
	{
		Debug2::debug( 'CLI_Cloud init' );

		$this->__cloud = Cloud::cls();
	}

	/**
	 * Generate domain key from QUIC.cloud server (See https://quic.cloud/terms/)
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Generate domain API key from QUIC.cloud
	 *     $ wp litespeed-online init
	 *
	 */
	public function init()
	{
		$key = $this->__cloud->gen_key();
		if ( $key ) {
			WP_CLI::success( 'key = ' . $key );
		}
	}

	/**
	 * Sync usage data from QUIC.cloud 
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Sync QUIC.cloud service usage info
	 *     $ wp litespeed-online sync
	 *
	 */
	public function sync( $args, $assoc_args )
	{
		$json = $this->__cloud->sync_usage();

		if ( ! empty( $assoc_args[ 'format' ] ) ) {
			WP_CLI::print_value( $json, $assoc_args );
			return;
		}

		WP_CLI::success( 'Sync successfully' );

		$list = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$list[] = array(
				'key' => $v,
				'used' => ! empty( $json[ 'usage.' . $v ][ 'used' ] ) ? $json[ 'usage.' . $v ][ 'used' ] : 0,
				'quota' => ! empty( $json[ 'usage.' . $v ][ 'quota' ] ) ? $json[ 'usage.' . $v ][ 'quota' ] : 0,
				'PayAsYouGo_Used' => ! empty( $json[ 'usage.' . $v ][ 'pag_used' ] ) ? $json[ 'usage.' . $v ][ 'pag_used' ] : 0,
				'PayAsYouGo_Balance' => ! empty( $json[ 'usage.' . $v ][ 'pag_bal' ] ) ? $json[ 'usage.' . $v ][ 'pag_bal' ] : 0,
			);
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'key', 'used', 'quota', 'PayAsYouGo_Used', 'PayAsYouGo_Balance' ) );
	}

	/**
	 * List all QUIC.cloud services
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # List all services tag
	 *     $ wp litespeed-online services
	 *
	 */
	public function services( $args, $assoc_args )
	{
		if ( ! empty( $assoc_args[ 'format' ] ) ) {
			WP_CLI::print_value( Cloud::$SERVICES, $assoc_args );
			return;
		}

		$list = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$list[] = array(
				'service' => $v,
			);
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'service' ) );
	}

	/**
	 * List all QUIC.cloud servers in use
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # List all QUIC.cloud servers in use
	 *     $ wp litespeed-online nodes
	 *
	 */
	public function nodes( $args, $assoc_args )
	{
		$json = Cloud::get_summary();

		$list = array();
		$json_output = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$server = ! empty( $json[ 'server.' . $v ] ) ? $json[ 'server.' . $v ] : '';
			$list[] = array(
				'service' => $v,
				'server' => $server,
			);
			$json_output[] = array( $v => $server );
		}

		if ( ! empty( $assoc_args[ 'format' ] ) ) {
			WP_CLI::print_value( $json_output, $assoc_args );
			return;
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'service', 'server' ) );
	}

	/**
	 * Detect closest node server for current service
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Detect closest node for one service
	 *     $ wp litespeed-online ping img_optm
	 *
	 */
	public function ping( $param )
	{
		$svc = $param[ 0 ];
		$json = $this->__cloud->detect_cloud( $svc );
		WP_CLI::success( 'Updated closest server.' );
		WP_CLI::log( 'svc = ' . $svc );
		WP_CLI::log( 'node = ' . $json );
	}

}
<?php
namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit;

use LiteSpeed\Lang;
use LiteSpeed\Debug2;
use LiteSpeed\Img_Optm;
use LiteSpeed\Utility;
use WP_CLI;

/**
 * Image Optm API CLI
 */
class Image
{
	private $__img_optm;

	public function __construct()
	{
		Debug2::debug( 'CLI_Cloud init' );

		$this->__img_optm = Img_Optm::cls();
	}

	/**
	 * Send image optimization request to QUIC.cloud server
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Send image optimization request
	 *     $ wp litespeed-image push
	 *
	 */
	public function push()
	{
		$this->__img_optm->new_req();
	}

	/**
	 * Pull optimized images from QUIC.cloud server
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Pull images back from cloud
	 *     $ wp litespeed-image pull
	 *
	 */
	public function pull()
	{
		$this->__img_optm->pull( true );
	}

	/**
	 * Show optimization status based on local data
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Show optimization status
	 *     $ wp litespeed-image s
	 *
	 */
	public function s()
	{
		$this->status();
	}

	/**
	 * Show optimization status based on local data
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Show optimization status
	 *     $ wp litespeed-image status
	 *
	 */
	public function status()
	{
		$summary = Img_Optm::get_summary();
		$img_count = $this->__img_optm->img_count();
		foreach ( Lang::img_status() as $k => $v ) {
			if ( isset( $img_count[ "img.$k" ] )) {
				$img_count[ "$v - images" ] = $img_count[ "img.$k" ];
				unset( $img_count[ "img.$k" ] );
			}
			if ( isset( $img_count[ "group.$k" ] )) {
				$img_count[ "$v - groups" ] = $img_count[ "group.$k" ];
				unset( $img_count[ "group.$k" ] );
			}
		}

		foreach ( array( 'reduced', 'reduced_webp' ) as $v ) {
			if ( ! empty( $summary[ $v ] ) ) {
				$summary[ $v ] = Utility::real_size( $summary[ $v ] );
			}
		}

		if ( ! empty( $summary[ 'last_requested' ] ) ) {
			$summary[ 'last_requested' ] = date( 'm/d/y H:i:s', $summary[ 'last_requested' ] );
		}

		$list = array();
		foreach ( $summary as $k => $v ) {
			$list[] = array( 'key' => $k, 'value' => $v );
		}

		$list2 = array();
		foreach ( $img_count as $k => $v ) {
			if ( ! $v ) {
				continue;
			}
			$list2[] = array( 'key' => $k, 'value' => $v );
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'key', 'value' ) );

		WP_CLI::line( WP_CLI::colorize( "%CImages in database summary:%n" ) );
		WP_CLI\Utils\format_items( 'table', $list2, array( 'key', 'value' ) );
	}

	/**
	 * Clean up unfinished image data from QUIC.cloud server
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Clean up unfinished requests
	 *     $ wp litespeed-image clean
	 *
	 */
	public function clean()
	{
		$this->__img_optm->clean();

		WP_CLI::line( WP_CLI::colorize( "%CLatest status:%n" ) );

		$this->status();
	}

	/**
	 * Remove original image backups
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Remove original image backups
	 *     $ wp litespeed-image rm_bkup
	 *
	 */
	public function rm_bkup()
	{
		$this->__img_optm->rm_bkup();
	}


}
<?php
namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit;

use LiteSpeed\Core;
use LiteSpeed\Router;
use LiteSpeed\Admin_Display;
use WP_CLI;


/**
 * LiteSpeed Cache Purge Interface
 */
class Purge
{
	/**
	 * List all site domains and ids on the network.
	 *
	 * For use with the blog subcommand.
	 *
	 * ## EXAMPLES
	 *
	 *     # List all the site domains and ids in a table.
	 *     $ wp litespeed-purge network_list
	 */
	public function network_list( $args )
	{
		if ( ! is_multisite() ) {
			WP_CLI::error('This is not a multisite installation!');

			return;
		}
		$buf = WP_CLI::colorize("%CThe list of installs:%n\n");

		if ( version_compare($GLOBALS['wp_version'], '4.6', '<') ) {
			$sites = wp_get_sites();
			foreach ($sites as $site) {
				$buf .= WP_CLI::colorize('%Y' . $site['domain'] . $site['path'] . ':%n ID ' . $site['blog_id']) . "\n";
			}
		}
		else {
			$sites = get_sites();
			foreach ($sites as $site) {
				$buf .= WP_CLI::colorize('%Y' . $site->domain . $site->path . ':%n ID ' . $site->blog_id) . "\n";
			}
		}

		WP_CLI::line($buf);
	}

	/**
	 * Sends an ajax request to the site. Takes an action and the nonce string to perform.
	 *
	 * @since 1.0.14
	 */
	private function _send_request( $action, $extra = array() )
	{
		$data = array(
			Router::ACTION => $action,
			Router::NONCE => wp_create_nonce($action),
		);
		if ( ! empty( $extra ) ) {
			$data = array_merge( $data, $extra );
		}

		$url = admin_url( 'admin-ajax.php' );
		WP_CLI::debug( 'URL is ' . $url );

		$out = WP_CLI\Utils\http_request( 'GET', $url, $data );
		return $out;
	}

	/**
	 * Purges all cache entries for the blog (the entire network if multisite).
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge Everything associated with the WordPress install.
	 *     $ wp litespeed-purge all
	 *
	 */
	public function all( $args )
	{
		if ( is_multisite() ) {
			$action = Core::ACTION_QS_PURGE_EMPTYCACHE;
		}
		else {
			$action = Core::ACTION_QS_PURGE_ALL;
		}

		$purge_ret = $this->_send_request( $action );

		if ( $purge_ret->success ) {
			WP_CLI::success(__('Purged All!', 'litespeed-cache'));
		}
		else {
			WP_CLI::error('Something went wrong! Got ' . $purge_ret->status_code);
		}
	}

	/**
	 * Purges all cache entries for the blog.
	 *
	 * ## OPTIONS
	 *
	 * <blogid>
	 * : The blog id to purge
	 *
	 * ## EXAMPLES
	 *
	 *     # In a multisite install, purge only the shop.example.com cache (stored as blog id 2).
	 *     $ wp litespeed-purge blog 2
	 *
	 */
	public function blog( $args )
	{
		if ( ! is_multisite() ) {
			WP_CLI::error('Not a multisite installation.');
			return;
		}
		$blogid = $args[0];
		if ( ! is_numeric($blogid) ) {
			$error = WP_CLI::colorize('%RError: invalid blog id entered.%n');
			WP_CLI::line($error);
			$this->network_list($args);
			return;
		}
		$site = get_blog_details($blogid);
		if ( $site === false ) {
			$error = WP_CLI::colorize('%RError: invalid blog id entered.%n');
			WP_CLI::line($error);
			$this->network_list($args);
			return;
		}
		switch_to_blog($blogid);

		$purge_ret = $this->_send_request(Core::ACTION_QS_PURGE_ALL);
		if ( $purge_ret->success ) {
			WP_CLI::success(__('Purged the blog!', 'litespeed-cache'));
		}
		else {
			WP_CLI::error('Something went wrong! Got ' . $purge_ret->status_code);
		}
	}

	/**
	 * Purges all cache tags related to a url.
	 *
	 * ## OPTIONS
	 *
	 * <url>
	 * : The url to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the front page.
	 *     $ wp litespeed-purge url https://mysite.com/
	 *
	 */
	public function url( $args )
	{
		$data = array(
			Router::ACTION => Core::ACTION_QS_PURGE,
		);
		$url = $args[0];
		$deconstructed = wp_parse_url($url);
		if ( empty($deconstructed) ) {
			WP_CLI::error('url passed in is invalid.');
			return;
		}

		if ( is_multisite() ) {
			if ( get_blog_id_from_url($deconstructed['host'], '/') === 0 ) {
				WP_CLI::error('Multisite url passed in is invalid.');
				return;
			}
		}
		else {
			$deconstructed_site = wp_parse_url( get_home_url() );
			if ( $deconstructed['host'] !== $deconstructed_site['host'] ) {
				WP_CLI::error('Single site url passed in is invalid.');
				return;
			}
		}

		WP_CLI::debug('url is ' . $url);

		$purge_ret = WP_CLI\Utils\http_request('GET', $url, $data);
		if ( $purge_ret->success ) {
			WP_CLI::success(__('Purged the url!', 'litespeed-cache'));
		}
		else {
			WP_CLI::error('Something went wrong! Got ' . $purge_ret->status_code);
		}
	}

	/**
	 * Helper function for purging by ids.
	 *
	 * @access private
	 * @since 1.0.15
	 * @param array $args The id list to parse.
	 * @param string $select The purge by kind
	 * @param function(int $id) $callback The callback function to check the id.
	 */
	private function _purgeby( $args, $select, $callback )
	{
		$filtered = array();
		foreach ($args as $val) {
			if ( ! ctype_digit($val) ) {
				WP_CLI::debug('[LSCACHE] Skip val, not a number. ' . $val);
				continue;
			}
			$term = $callback($val);
			if ( ! empty($term) ) {WP_CLI::line($term->name);
				$filtered[] = in_array( $callback, array( 'get_tag', 'get_category' ) ) ? $term->name : $val;
			}
			else {
				WP_CLI::debug('[LSCACHE] Skip val, not a valid term. ' . $val);
			}
		}

		if ( empty($filtered) ) {
			WP_CLI::error('Arguments must be integer ids.');
			return;
		}

		$str = implode(',', $filtered);

		$purge_titles = array(
			0 => 'Category',
			1 => 'Post ID',
			2 => 'Tag',
			3 => 'URL',
		);

		WP_CLI::line('Will purge the following: [' . $purge_titles[ $select ] . '] ' . $str);

		$data = array(
			Admin_Display::PURGEBYOPT_SELECT	=> $select,
			Admin_Display::PURGEBYOPT_LIST		=> $str,
		);

		$purge_ret = $this->_send_request( Core::ACTION_PURGE_BY, $data );
		if ( $purge_ret->success ) {
			WP_CLI::success(__('Purged!', 'litespeed-cache'));
		}
		else {
			WP_CLI::error('Something went wrong! Got ' . $purge_ret->status_code);
		}

	}

	/**
	 * Purges cache tags for a WordPress tag
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : the Term IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the tag ids 1, 3, and 5
	 *     $ wp litespeed-purge tag 1 3 5
	 *
	 */
	public function tag($args)
	{
		$this->_purgeby($args, Admin_Display::PURGEBY_TAG, 'get_tag');
	}

	/**
	 * Purges cache tags for a WordPress category
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : the Term IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the category ids 1, 3, and 5
	 *     $ wp litespeed-purge category 1 3 5
	 *
	 */
	public function category($args)
	{
		$this->_purgeby($args, Admin_Display::PURGEBY_CAT, 'get_category');
	}

	/**
	 * Purges cache tags for a WordPress Post/Product
	 *
	 * @alias product
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : the Post IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the post ids 1, 3, and 5
	 *     $ wp litespeed-purge post_id 1 3 5
	 *
	 */
	public function post_id( $args )
	{
		$this->_purgeby($args, Admin_Display::PURGEBY_PID, 'get_post');
	}

}
<?php
/**
 * Lightweight script to update guest mode vary
 *
 * @since 4.1
 */

require 'lib/guest.cls.php';

$guest = new \LiteSpeed\Lib\Guest();

$guest->update_guest_vary();
<?php

// A compatibility placeholder for v2.9.9- when upgrading to v3 require_once $lscwp_dir . 'inc/object.lib.php' ;;
; This is the predefined default LSCWP configuration file
;
; All the keys and values please refer `src/const.cls.php`
;
; Comments start with `;`
;

;; -------------------------------------------------- ;;
;; --------------	   General		----------------- ;;
;; -------------------------------------------------- ;;

; O_AUTO_UPGRADE
auto_upgrade = false

; O_API_KEY
api_key = ''

; O_SERVER_IP
server_ip = ''

; O_GUEST
guest = false

; O_GUEST_OPTM
guest_optm = false

; O_NEWS
news = true

; O_GUEST_UAS
guest_uas = 'Lighthouse
GTmetrix
Google
Pingdom
bot
PTST
HeadlessChrome'

; O_GUEST_IPS
guest_ips = '208.70.247.157
172.255.48.130
172.255.48.131
172.255.48.132
172.255.48.133
172.255.48.134
172.255.48.135
172.255.48.136
172.255.48.137
172.255.48.138
172.255.48.139
172.255.48.140
172.255.48.141
172.255.48.142
172.255.48.143
172.255.48.144
172.255.48.145
172.255.48.146
172.255.48.147
52.229.122.240
104.214.72.101
13.66.7.11
13.85.24.83
13.85.24.90
13.85.82.26
40.74.242.253
40.74.243.13
40.74.243.176
104.214.48.247
157.55.189.189
104.214.110.135
70.37.83.240
65.52.36.250
13.78.216.56
52.162.212.163
23.96.34.105
65.52.113.236
172.255.61.34
172.255.61.35
172.255.61.36
172.255.61.37
172.255.61.38
172.255.61.39
172.255.61.40
104.41.2.19
191.235.98.164
191.235.99.221
191.232.194.51
52.237.235.185
52.237.250.73
52.237.236.145
104.211.143.8
104.211.165.53
52.172.14.87
40.83.89.214
52.175.57.81
20.188.63.151
20.52.36.49
52.246.165.153
51.144.102.233
13.76.97.224
102.133.169.66
52.231.199.170
13.53.162.7
40.123.218.94'

;; -------------------------------------------------- ;;
;; --------------		Cache 		----------------- ;;
;; -------------------------------------------------- ;;

cache-priv = true

cache-commenter = true

cache-rest = true

cache-page_login = true

cache-favicon = true

cache-resources = true

cache-browser = false

; O_CACHE_MOBILE
cache-mobile = false

cache-mobile_rules = 'Mobile
Android
Silk/
Kindle
BlackBerry
Opera Mini
Opera Mobi'

cache-exc_useragents = ''

cache-exc_cookies = ''

cache-exc_qs = ''

cache-exc_cat = ''

cache-exc_tag = ''

cache-force_uri = ''

cache-force_pub_uri = ''

cache-priv_uri = ''

cache-exc = ''

cache-exc_roles = ''

cache-drop_qs = 'fbclid
gclid
utm*
_ga'

cache-ttl_pub = 604800

cache-ttl_priv = 1800

cache-ttl_frontpage = 604800

cache-ttl_feed = 604800

; O_CACHE_TTL_REST
cache-ttl_rest = 604800

cache-ttl_browser = 31557600

cache-login_cookie = ''

cache-vary_group = ''

cache-ttl_status = '403 3600
404 3600
500 3600'


;; -------------------------------------------------- ;;
;; --------------		Purge 		----------------- ;;
;; -------------------------------------------------- ;;

; O_PURGE_ON_UPGRADE
purge-upgrade = true

; O_PURGE_STALE
purge-stale = false

purge-post_all 	= false
purge-post_f 	= true
purge-post_h 	= true
purge-post_p 	= true
purge-post_pwrp = true
purge-post_a 	= true
purge-post_y 	= false
purge-post_m 	= true
purge-post_d 	= false
purge-post_t 	= true
purge-post_pt 	= true

purge-timed_urls = ''

purge-timed_urls_time = ''

purge-hook_all = 'switch_theme
wp_create_nav_menu
wp_update_nav_menu
wp_delete_nav_menu
create_term
edit_terms
delete_term
add_link
edit_link
delete_link'


;; -------------------------------------------------- ;;
;; --------------     	 ESI	    ----------------- ;;
;; -------------------------------------------------- ;;

; O_ESI
esi = false

; O_ESI_CACHE_ADMBAR
esi-cache_admbar = true

; O_ESI_CACHE_COMMFORM
esi-cache_commform = true

; O_ESI_NONCE
esi-nonce = 'stats_nonce
subscribe_nonce'

;; -------------------------------------------------- ;;
;; --------------     Utilities	    ----------------- ;;
;; -------------------------------------------------- ;;

util-heartbeat = true

util-instant_click = false

util-no_https_vary = false


;; -------------------------------------------------- ;;
;; --------------		Debug 		----------------- ;;
;; -------------------------------------------------- ;;

; O_DEBUG_DISABLE_ALL
debug-disable_all = false

; O_DEBUG
debug = false

; O_DEBUG_IPS
debug-ips = '127.0.0.1'

; O_DEBUG_LEVEL
debug-level = false

; O_DEBUG_FILESIZE
debug-filesize = 3

; O_DEBUG_COOKIE
debug-cookie = false

; O_DEBUG_COLLAPS_QS
debug-collaps_qs = false

; O_DEBUG_INC
debug-inc = ''

; O_DEBUG_EXC
debug-exc = ''


;; -------------------------------------------------- ;;
;; --------------	    DB Optm 	----------------- ;;
;; -------------------------------------------------- ;;

; O_DB_OPTM_REVISIONS_MAX
db_optm-revisions_max = 0

; O_DB_OPTM_REVISIONS_AGE
db_optm-revisions_age = 0


;; -------------------------------------------------- ;;
;; --------------	  HTML Optm 	----------------- ;;
;; -------------------------------------------------- ;;

; O_OPTM_CSS_MIN
optm-css_min = false

; O_OPTM_CSS_COMB
optm-css_comb = false

; O_OPTM_CSS_COMB_EXT_INL
optm-css_comb_ext_inl = true

; O_OPTM_UCSS
optm-ucss = false

; O_OPTM_UCSS_INLINE
optm-ucss_inline = false

; O_OPTM_UCSS_WHITELIST
optm-ucss_whitelist = ''

; O_OPTM_UCSS_EXC
optm-ucss_exc = ''

optm-css_exc = ''

; O_OPTM_JS_MIN
optm-js_min = false

; O_OPTM_JS_COMB
optm-js_comb = false

; O_OPTM_JS_COMB_EXT_INL
optm-js_comb_ext_inl = true

optm-js_exc = 'jquery.js
jquery.min.js'

optm-html_min = false

; O_OPTM_HTML_LAZY
optm-html_lazy=''

optm-qs_rm = false

optm-ggfonts_rm = false

; O_OPTM_CSS_ASYNC
optm-css_async = false

; O_OPTM_CCSS_PER_URL
optm-ccss_per_url = false

; O_OPTM_CSS_ASYNC_INLINE
optm-css_async_inline = true

; O_OPTM_CSS_FONT_DISPLAY
optm-css_font_display = false

; O_OPTM_JS_DEFER
optm-js_defer = false

; O_OPTM_EMOJI_RM
optm-emoji_rm = false

; O_OPTM_NOSCRIPT_RM
optm-noscript_rm = false

optm-ggfonts_async = false

optm-exc_roles = ''

optm-ccss_con = ''

; O_OPTM_CCSS_SEP_POSTTYPE
optm-ccss_sep_posttype = 'page'

; O_OPTM_CCSS_SEP_URI
optm-ccss_sep_uri = ''

; Analytics JS also measure the load-time as it is being loaded on the website itself and Google sends a report each month to the user. If these files are deferred, The Analytics JS shows a longer page-load time, even if the website isn't actually slow. by Shivam
optm-js_defer_exc = 'jquery.js
jquery.min.js
gtm.js
analytics.js'

; O_OPTM_GM_JS_EXC
optm-gm_js_exc = ''

; O_OPTM_DNS_PREFETCH
optm-dns_prefetch = ''

; O_OPTM_DNS_PREFETCH_CTRL
optm-dns_prefetch_ctrl = false

optm-exc = ''

; O_OPTM_GUEST_ONLY
optm-guest_only = true

;; -------------------------------------------------- ;;
;; --------------	Object Cache	----------------- ;;
;; -------------------------------------------------- ;;

object = false

object-kind = false

object-host = 'localhost'

object-port = 11211

object-life = 360

object-persistent = true

object-admin = true

object-transients = true

object-db_id = 0

object-user = ''

object-pswd = ''

object-global_groups = 'users
userlogins
useremail
userslugs
usermeta
user_meta
site-transient
site-options
site-lookup
site-details
blog-lookup
blog-details
blog-id-cache
rss
global-posts
global-cache-test'

object-non_persistent_groups = 'comment
counts
plugins
wc_session_id'



;; -------------------------------------------------- ;;
;; --------------	 Discussion 	----------------- ;;
;; -------------------------------------------------- ;;

; O_DISCUSS_AVATAR_CACHE
discuss-avatar_cache = false

; O_DISCUSS_AVATAR_CRON
discuss-avatar_cron = false

; O_DISCUSS_AVATAR_CACHE_TTL
discuss-avatar_cache_ttl = 604800

; O_OPTM_LOCALIZE
optm-localize = false

; O_OPTM_LOCALIZE_DOMAINS
optm-localize_domains = '### Popular scripts ###
https://platform.twitter.com/widgets.js
https://connect.facebook.net/en_US/fbevents.js'




;; -------------------------------------------------- ;;
;; --------------		 Media 		----------------- ;;
;; -------------------------------------------------- ;;

; O_MEDIA_LAZY
media-lazy = false

; O_MEDIA_LAZY_PLACEHOLDER
media-lazy_placeholder = ''

; O_MEDIA_PLACEHOLDER_RESP
media-placeholder_resp = false

; O_MEDIA_PLACEHOLDER_RESP_COLOR
media-placeholder_resp_color = '#cfd4db'

; O_MEDIA_PLACEHOLDER_RESP_SVG
media-placeholder_resp_svg = '<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}"><rect width="100%" height="100%" style="fill:{color};fill-opacity: 0.1;"/></svg>'

; O_MEDIA_LQIP
media-lqip = false

; O_MEDIA_LQIP_QUAL
media-lqip_qual = 4

; O_MEDIA_LQIP_MIN_W
media-lqip_min_w = 150

; O_MEDIA_LQIP_MIN_H
media-lqip_min_h = 150

; O_MEDIA_PLACEHOLDER_RESP_ASYNC
media-placeholder_resp_async = true

; O_MEDIA_IFRAME_LAZY
media-iframe_lazy = false

; O_MEDIA_ADD_MISSING_SIZES
media-add_missing_sizes = false

; O_MEDIA_LAZY_EXC
media-lazy_exc = ''

; O_MEDIA_LAZY_CLS_EXC
media-lazy_cls_exc = 'wmu-preview-img'

; O_MEDIA_LAZY_PARENT_CLS_EXC
media-lazy_parent_cls_exc = ''

; O_MEDIA_IFRAME_LAZY_CLS_EXC
media-iframe_lazy_cls_exc = ''

; O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC
media-iframe_lazy_parent_cls_exc = ''

; O_MEDIA_LAZY_URI_EXC
media-lazy_uri_exc = ''

; O_MEDIA_LQIP_EXC
media-lqip_exc = ''




;; -------------------------------------------------- ;;
;; --------------	  Image Optm 	----------------- ;;
;; -------------------------------------------------- ;;

img_optm-auto = false

img_optm-cron = true

img_optm-ori = true

img_optm-rm_bkup = false

img_optm-webp = true

img_optm-lossless = false

img_optm-exif = true

img_optm-webp_replace = false

img_optm-webp_attr = 'img.src
div.data-thumb
img.data-src
div.data-large_image
img.retina_logo_url
div.data-parallax-image
video.poster'

img_optm-webp_replace_srcset = false

img_optm-jpg_quality = 82




;; -------------------------------------------------- ;;
;; --------------		Crawler		----------------- ;;
;; -------------------------------------------------- ;;

crawler = false

crawler-usleep = 500

crawler-run_duration = 400

crawler-run_interval = 600

crawler-crawl_interval = 302400

crawler-threads = 3

; O_CRAWLER_TIMEOUT
crawler-timeout = 30

crawler-load_limit = 1

; O_CRAWLER_SITEMAP
crawler-sitemap = ''

; O_CRAWLER_DROP_DOMAIN
crawler-drop_domain = true

; O_CRAWLER_MAP_TIMEOUT
crawler-map_timeout = 120

crawler-roles = ''

crawler-cookies = ''




;; -------------------------------------------------- ;;
;; --------------		 Misc 		----------------- ;;
;; -------------------------------------------------- ;;

; O_MISC_HEARTBEAT_FRONT
misc-heartbeat_front = false

; O_MISC_HEARTBEAT_FRONT_TTL
misc-heartbeat_front_ttl = 60

; O_MISC_HEARTBEAT_BACK
misc-heartbeat_back = false

; O_MISC_HEARTBEAT_BACK_TTL
misc-heartbeat_back_ttl = 60

; O_MISC_HEARTBEAT_EDITOR
misc-heartbeat_editor = false

; O_MISC_HEARTBEAT_EDITOR_TTL
misc-heartbeat_editor_ttl = 15





;; -------------------------------------------------- ;;
;; --------------		 CDN 		----------------- ;;
;; -------------------------------------------------- ;;

cdn = false

; O_CDN_ATTR
cdn-attr = '.src
.data-src
.href
.poster
source.srcset'

cdn-ori = ''

cdn-ori_dir = ''

cdn-exc = ''

cdn-quic = false

cdn-quic_email = ''

cdn-quic_key = ''

cdn-cloudflare = false

cdn-cloudflare_email = ''

cdn-cloudflare_key = ''

cdn-cloudflare_name = ''

cdn-cloudflare_zone = ''

; `cdn-mapping` needs to be put in the end with a section tag


;; -------------------------------------------------- ;;
;; --------------		 CDN 2 		----------------- ;;
;; -------------------------------------------------- ;;

; <------------ CDN Mapping Example BEGIN -------------------->
; Need to keep the section tag `[cdn-mapping]` before list.
;
; NOTE 1) Need to set all child options to make all resources to be replaced without missing.
; NOTE 2) `url[n]` option must have to enable the row setting of `n`.
; NOTE 3) This section needs to be put in the end of this .ini file
;
; To enable the 2nd mapping record by default, please remove the `;;` in the related lines.



[cdn-mapping]

url[0] = ''

inc_js[0] = true

inc_css[0] = true

inc_img[0] = true

filetype[0] = '.aac
.css
.eot
.gif
.jpeg
.jpg
.js
.less
.mp3
.mp4
.ogg
.otf
.pdf
.png
.svg
.ttf
.webp
.woff
.woff2'

;;url[1] = 'https://2nd_CDN_url.com/'

;;filetype[1] = '.webm'

; <------------ CDN Mapping Example END ------------------>
;
; This is the predefined default LSCWP network configuration file
;
; All the keys and values please refer `src/const.cls.php`
;
; Comments start with `;`
;


;; -------------------------------------------------- ;;
;; --------------	   General		----------------- ;;
;; -------------------------------------------------- ;;

cache = false

use_primary_settings = false

auto_upgrade = false


;; -------------------------------------------------- ;;
;; --------------		Cache 		----------------- ;;
;; -------------------------------------------------- ;;

cache-favicon = true

cache-resources = true

cache-browser = false

; O_CACHE_MOBILE
cache-mobile = false

cache-mobile_rules = 'Mobile
Android
Silk/
Kindle
BlackBerry
Opera Mini
Opera Mobi'

cache-login_cookie = ''

cache-exc_cookies = ''

cache-exc_useragents = ''

cache-ttl_browser = 31557600

;; -------------------------------------------------- ;;
;; --------------		Purge 		----------------- ;;
;; -------------------------------------------------- ;;

purge-upgrade = true


;; -------------------------------------------------- ;;
;; --------------	Object Cache	----------------- ;;
;; -------------------------------------------------- ;;

object = false

object-kind = false

object-host = 'localhost'

object-port = 11211

object-life = 360

object-persistent = true

object-admin = true

object-transients = true

object-db_id = 0

object-user = ''

object-pswd = ''

object-global_groups = 'users
userlogins
usermeta
user_meta
useremail
userslugs
sites
site-details
site-transient
site-options
site-lookup
blog-lookup
blog-id-cache
blog-details
networks
rss
global-posts
global-cache-test'

object-non_persistent_groups = 'comment
counts
plugins'


;; -------------------------------------------------- ;;
;; --------------		Debug 		----------------- ;;
;; -------------------------------------------------- ;;

; O_DEBUG_DISABLE_ALL
debug-disable_all = false

; O_DEBUG
debug = false

; O_DEBUG_IPS
debug-ips = '127.0.0.1'

; O_DEBUG_LEVEL
debug-level = false

; O_DEBUG_FILESIZE
debug-filesize = 3

; O_DEBUG_COOKIE
debug-cookie = false

; O_DEBUG_COLLAPS_QS
debug-collaps_qs = false

; O_DEBUG_INC
debug-inc = ''

; O_DEBUG_EXC
debug-exc = ''


;; -------------------------------------------------- ;;
;; --------------	  Image Optm 	----------------- ;;
;; -------------------------------------------------- ;;

img_optm-webp_replace = false
Order Deny,Allow
Deny from All

<IfModule LiteSpeed>
RewriteEngine on
RewriteRule .* - [F,L]
</IfModule>
# !!!!! Legacy file for v3.5.1- !!!!!

## Predefined elsewhere so not needed here:

## WordPress core
#stats_nonce
#subscribe_nonce

# Divi Theme Builder
#et-pb-contact-form-submit
#et_frontend_nonce
#et_ab_log_nonce

# WooCommerce PayPal Checkout
#_wc_ppec_update_shipping_costs_nonce private
#_wc_ppec_start_checkout_nonce private
#_wc_ppec_generate_cart_nonce private

# User Switching
#switch_to_olduser_'<ID>'

# Caldera Forms
#caldera_forms_front_*

## Predefined list of ESI nonces:

# CM Registration Pro
cmreg_registration_nonce private
role_nonce private

# WooCommerce Delivery Area Pro #16843635
wdap-call-nonce private

# SEOpress Cookie Consent
seopress_cookies_user_consent_nonce

#SearchWP Metrics
swpmtxnonce

#wpDataTables #986128
wdt*
# Predefined list for excluding CSS files or inline CSS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/css_excludes.txt We will merge into next plugin release

# CSS file URL excludes



# Inline CSS excludes

########## Flatsome theme random string excludes ############
#row-
#col-
#cats-
#stack-
#timer-
#gap-
#portfolio-
#image_
#banner-
#map-
#text-box-
#page-header-
#section_

.tdi_ # Theme: Newspaper by tagDiv.com 2020

######### WoodMart - Responsive WooCommerce WordPress Theme ########
.tabs-wd-
#wd-# Predefined list for excluding deferred JS files or inline JS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_defer_excludes.txt We will merge into next plugin release


# JS file URL excludes

## To predefine more list, please submit a PR to https://github.com/litespeedtech/lscache_wp/blob/dev/data/esi.nonces.txt
## 	 Comment Format:
## 		1. `# this is comment`
## 		2. `##this is comment`


## Predefined elsewhere so not needed here:

## WordPress core
# stats_nonce
# subscribe_nonce

# Divi Theme Builder
# et-pb-contact-form-submit
# et_frontend_nonce
# et_ab_log_nonce

# WooCommerce PayPal Checkout
# _wc_ppec_update_shipping_costs_nonce private
# _wc_ppec_start_checkout_nonce private
# _wc_ppec_generate_cart_nonce private

# User Switching
# switch_to_olduser_'<ID>'

# Caldera Forms
# caldera_forms_front_*


## Predefined list of ESI nonces:

# WordPress REST nonce
wp_rest

# CM Registration Pro
cmreg_registration_nonce private
role_nonce private

# WooCommerce Delivery Area Pro #16843635
wdap-call-nonce private

# SEOpress Cookie Consent
seopress_cookies_user_consent_nonce

# SearchWP Metrics
swpmtxnonce

# wpDataTables #986128
wdt*

# WPBakery gallery
_vcnonce
data-vc-public-nonce

# Extra Theme
rating_nonce
timeline_nonce
blog_feed_nonce

# WS Form 
wsf_post

# Easy Digital Download (EDD)
edd-* private
edd_* private

# WP Menu Cart
wpmenucart private
# Predefined list for excluding JS files or inline JS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_excludes.txt We will merge into next plugin release

# JS file URL excludes
maps-api-ssl.google.com
stats.wp.com
js.stripe.com
paypal.com/sdk/js
maps.google.com/maps
cse.google.com/cse.js
/syntaxhighlighter/
spotlight-social-photo-feeds ## https://docs.spotlightwp.com/article/757-autoptimize-compatibility @Tobolo

# Inline JS excludes
document.write
gtag
gtm
dataLayer
adsbygoogle

block_tdi_ ## Theme: Newspaper by tagDiv.com

data-view-breakpoint-pointer ## Plugin: The Events Calendar by Modern Tribe (https://theeventscalendar.com/)

wp-json/wp-statistics ## WP Statistics# Predefined list for UCSS whitelist #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/ucss_whitelist.txt We will merge into next plugin release


############# DoBar compatibility #############
.pace-inactive

############# DIVI ################
.et_pb_number_counter.active+
-
*
/
%
=
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
&
|
^
<<
>>
>>>
==
===
!=
!==
>
<
>=
<=
&&
||
.
[
]
?
:
,
;
(
)
}do
if
in
for
let
new
try
var
case
else
enum
eval
null
this
true
void
with
break
catch
class
const
false
super
throw
while
yield
delete
export
import
public
return
static
switch
typeof
default
extends
finally
package
private
continue
debugger
function
arguments
interface
protected
implements
instanceof
abstract
boolean
byte
char
double
final
float
goto
int
long
native
short
synchronized
throws
transient
volatiledo
in
let
new
var
case
else
enum
void
with
class
const
yield
delete
export
import
public
static
typeof
extends
package
private
function
protected
implements
instanceofin
public
extends
private
protected
implements
instanceof+
-
*
/
%
=
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
&
|
^
~
<<
>>
>>>
==
===
!=
!==
>
<
>=
<=
&&
||
!
.
[
]
?
:
,
;
(
)
{
}+
-
*
/
%
=
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
&
|
^
~
<<
>>
>>>
==
===
!=
!==
>
<
>=
<=
&&
||
!
.
[
?
:
,
;
(
{
<?php
/**
 * jsmin.cls.php - modified PHP implementation of Matthias Mullie's JavaScript minifier
 */

/**
 * JavaScript Minifier Class
 *
 * @package Minify
 * @author Matthias Mullie <minify@mullie.eu>
 * @author Tijs Verkoyen <minify@verkoyen.eu>
 * @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
 * @license MIT License
 */

namespace LiteSpeed\Lib ;

defined( 'WPINC' ) || exit ;

class JSMin
{
    /**
     * Var-matching regex based on http://stackoverflow.com/a/9337047/802993.
     *
     * Note that regular expressions using that bit must have the PCRE_UTF8
     * pattern modifier (/u) set.
     *
     * @var string
     */
    const REGEX_VARIABLE = '\b[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{02c1}\x{02c6}-\x{02d1}\x{02e0}-\x{02e4}\x{02ec}\x{02ee}\x{0370}-\x{0374}\x{0376}\x{0377}\x{037a}-\x{037d}\x{0386}\x{0388}-\x{038a}\x{038c}\x{038e}-\x{03a1}\x{03a3}-\x{03f5}\x{03f7}-\x{0481}\x{048a}-\x{0527}\x{0531}-\x{0556}\x{0559}\x{0561}-\x{0587}\x{05d0}-\x{05ea}\x{05f0}-\x{05f2}\x{0620}-\x{064a}\x{066e}\x{066f}\x{0671}-\x{06d3}\x{06d5}\x{06e5}\x{06e6}\x{06ee}\x{06ef}\x{06fa}-\x{06fc}\x{06ff}\x{0710}\x{0712}-\x{072f}\x{074d}-\x{07a5}\x{07b1}\x{07ca}-\x{07ea}\x{07f4}\x{07f5}\x{07fa}\x{0800}-\x{0815}\x{081a}\x{0824}\x{0828}\x{0840}-\x{0858}\x{08a0}\x{08a2}-\x{08ac}\x{0904}-\x{0939}\x{093d}\x{0950}\x{0958}-\x{0961}\x{0971}-\x{0977}\x{0979}-\x{097f}\x{0985}-\x{098c}\x{098f}\x{0990}\x{0993}-\x{09a8}\x{09aa}-\x{09b0}\x{09b2}\x{09b6}-\x{09b9}\x{09bd}\x{09ce}\x{09dc}\x{09dd}\x{09df}-\x{09e1}\x{09f0}\x{09f1}\x{0a05}-\x{0a0a}\x{0a0f}\x{0a10}\x{0a13}-\x{0a28}\x{0a2a}-\x{0a30}\x{0a32}\x{0a33}\x{0a35}\x{0a36}\x{0a38}\x{0a39}\x{0a59}-\x{0a5c}\x{0a5e}\x{0a72}-\x{0a74}\x{0a85}-\x{0a8d}\x{0a8f}-\x{0a91}\x{0a93}-\x{0aa8}\x{0aaa}-\x{0ab0}\x{0ab2}\x{0ab3}\x{0ab5}-\x{0ab9}\x{0abd}\x{0ad0}\x{0ae0}\x{0ae1}\x{0b05}-\x{0b0c}\x{0b0f}\x{0b10}\x{0b13}-\x{0b28}\x{0b2a}-\x{0b30}\x{0b32}\x{0b33}\x{0b35}-\x{0b39}\x{0b3d}\x{0b5c}\x{0b5d}\x{0b5f}-\x{0b61}\x{0b71}\x{0b83}\x{0b85}-\x{0b8a}\x{0b8e}-\x{0b90}\x{0b92}-\x{0b95}\x{0b99}\x{0b9a}\x{0b9c}\x{0b9e}\x{0b9f}\x{0ba3}\x{0ba4}\x{0ba8}-\x{0baa}\x{0bae}-\x{0bb9}\x{0bd0}\x{0c05}-\x{0c0c}\x{0c0e}-\x{0c10}\x{0c12}-\x{0c28}\x{0c2a}-\x{0c33}\x{0c35}-\x{0c39}\x{0c3d}\x{0c58}\x{0c59}\x{0c60}\x{0c61}\x{0c85}-\x{0c8c}\x{0c8e}-\x{0c90}\x{0c92}-\x{0ca8}\x{0caa}-\x{0cb3}\x{0cb5}-\x{0cb9}\x{0cbd}\x{0cde}\x{0ce0}\x{0ce1}\x{0cf1}\x{0cf2}\x{0d05}-\x{0d0c}\x{0d0e}-\x{0d10}\x{0d12}-\x{0d3a}\x{0d3d}\x{0d4e}\x{0d60}\x{0d61}\x{0d7a}-\x{0d7f}\x{0d85}-\x{0d96}\x{0d9a}-\x{0db1}\x{0db3}-\x{0dbb}\x{0dbd}\x{0dc0}-\x{0dc6}\x{0e01}-\x{0e30}\x{0e32}\x{0e33}\x{0e40}-\x{0e46}\x{0e81}\x{0e82}\x{0e84}\x{0e87}\x{0e88}\x{0e8a}\x{0e8d}\x{0e94}-\x{0e97}\x{0e99}-\x{0e9f}\x{0ea1}-\x{0ea3}\x{0ea5}\x{0ea7}\x{0eaa}\x{0eab}\x{0ead}-\x{0eb0}\x{0eb2}\x{0eb3}\x{0ebd}\x{0ec0}-\x{0ec4}\x{0ec6}\x{0edc}-\x{0edf}\x{0f00}\x{0f40}-\x{0f47}\x{0f49}-\x{0f6c}\x{0f88}-\x{0f8c}\x{1000}-\x{102a}\x{103f}\x{1050}-\x{1055}\x{105a}-\x{105d}\x{1061}\x{1065}\x{1066}\x{106e}-\x{1070}\x{1075}-\x{1081}\x{108e}\x{10a0}-\x{10c5}\x{10c7}\x{10cd}\x{10d0}-\x{10fa}\x{10fc}-\x{1248}\x{124a}-\x{124d}\x{1250}-\x{1256}\x{1258}\x{125a}-\x{125d}\x{1260}-\x{1288}\x{128a}-\x{128d}\x{1290}-\x{12b0}\x{12b2}-\x{12b5}\x{12b8}-\x{12be}\x{12c0}\x{12c2}-\x{12c5}\x{12c8}-\x{12d6}\x{12d8}-\x{1310}\x{1312}-\x{1315}\x{1318}-\x{135a}\x{1380}-\x{138f}\x{13a0}-\x{13f4}\x{1401}-\x{166c}\x{166f}-\x{167f}\x{1681}-\x{169a}\x{16a0}-\x{16ea}\x{16ee}-\x{16f0}\x{1700}-\x{170c}\x{170e}-\x{1711}\x{1720}-\x{1731}\x{1740}-\x{1751}\x{1760}-\x{176c}\x{176e}-\x{1770}\x{1780}-\x{17b3}\x{17d7}\x{17dc}\x{1820}-\x{1877}\x{1880}-\x{18a8}\x{18aa}\x{18b0}-\x{18f5}\x{1900}-\x{191c}\x{1950}-\x{196d}\x{1970}-\x{1974}\x{1980}-\x{19ab}\x{19c1}-\x{19c7}\x{1a00}-\x{1a16}\x{1a20}-\x{1a54}\x{1aa7}\x{1b05}-\x{1b33}\x{1b45}-\x{1b4b}\x{1b83}-\x{1ba0}\x{1bae}\x{1baf}\x{1bba}-\x{1be5}\x{1c00}-\x{1c23}\x{1c4d}-\x{1c4f}\x{1c5a}-\x{1c7d}\x{1ce9}-\x{1cec}\x{1cee}-\x{1cf1}\x{1cf5}\x{1cf6}\x{1d00}-\x{1dbf}\x{1e00}-\x{1f15}\x{1f18}-\x{1f1d}\x{1f20}-\x{1f45}\x{1f48}-\x{1f4d}\x{1f50}-\x{1f57}\x{1f59}\x{1f5b}\x{1f5d}\x{1f5f}-\x{1f7d}\x{1f80}-\x{1fb4}\x{1fb6}-\x{1fbc}\x{1fbe}\x{1fc2}-\x{1fc4}\x{1fc6}-\x{1fcc}\x{1fd0}-\x{1fd3}\x{1fd6}-\x{1fdb}\x{1fe0}-\x{1fec}\x{1ff2}-\x{1ff4}\x{1ff6}-\x{1ffc}\x{2071}\x{207f}\x{2090}-\x{209c}\x{2102}\x{2107}\x{210a}-\x{2113}\x{2115}\x{2119}-\x{211d}\x{2124}\x{2126}\x{2128}\x{212a}-\x{212d}\x{212f}-\x{2139}\x{213c}-\x{213f}\x{2145}-\x{2149}\x{214e}\x{2160}-\x{2188}\x{2c00}-\x{2c2e}\x{2c30}-\x{2c5e}\x{2c60}-\x{2ce4}\x{2ceb}-\x{2cee}\x{2cf2}\x{2cf3}\x{2d00}-\x{2d25}\x{2d27}\x{2d2d}\x{2d30}-\x{2d67}\x{2d6f}\x{2d80}-\x{2d96}\x{2da0}-\x{2da6}\x{2da8}-\x{2dae}\x{2db0}-\x{2db6}\x{2db8}-\x{2dbe}\x{2dc0}-\x{2dc6}\x{2dc8}-\x{2dce}\x{2dd0}-\x{2dd6}\x{2dd8}-\x{2dde}\x{2e2f}\x{3005}-\x{3007}\x{3021}-\x{3029}\x{3031}-\x{3035}\x{3038}-\x{303c}\x{3041}-\x{3096}\x{309d}-\x{309f}\x{30a1}-\x{30fa}\x{30fc}-\x{30ff}\x{3105}-\x{312d}\x{3131}-\x{318e}\x{31a0}-\x{31ba}\x{31f0}-\x{31ff}\x{3400}-\x{4db5}\x{4e00}-\x{9fcc}\x{a000}-\x{a48c}\x{a4d0}-\x{a4fd}\x{a500}-\x{a60c}\x{a610}-\x{a61f}\x{a62a}\x{a62b}\x{a640}-\x{a66e}\x{a67f}-\x{a697}\x{a6a0}-\x{a6ef}\x{a717}-\x{a71f}\x{a722}-\x{a788}\x{a78b}-\x{a78e}\x{a790}-\x{a793}\x{a7a0}-\x{a7aa}\x{a7f8}-\x{a801}\x{a803}-\x{a805}\x{a807}-\x{a80a}\x{a80c}-\x{a822}\x{a840}-\x{a873}\x{a882}-\x{a8b3}\x{a8f2}-\x{a8f7}\x{a8fb}\x{a90a}-\x{a925}\x{a930}-\x{a946}\x{a960}-\x{a97c}\x{a984}-\x{a9b2}\x{a9cf}\x{aa00}-\x{aa28}\x{aa40}-\x{aa42}\x{aa44}-\x{aa4b}\x{aa60}-\x{aa76}\x{aa7a}\x{aa80}-\x{aaaf}\x{aab1}\x{aab5}\x{aab6}\x{aab9}-\x{aabd}\x{aac0}\x{aac2}\x{aadb}-\x{aadd}\x{aae0}-\x{aaea}\x{aaf2}-\x{aaf4}\x{ab01}-\x{ab06}\x{ab09}-\x{ab0e}\x{ab11}-\x{ab16}\x{ab20}-\x{ab26}\x{ab28}-\x{ab2e}\x{abc0}-\x{abe2}\x{ac00}-\x{d7a3}\x{d7b0}-\x{d7c6}\x{d7cb}-\x{d7fb}\x{f900}-\x{fa6d}\x{fa70}-\x{fad9}\x{fb00}-\x{fb06}\x{fb13}-\x{fb17}\x{fb1d}\x{fb1f}-\x{fb28}\x{fb2a}-\x{fb36}\x{fb38}-\x{fb3c}\x{fb3e}\x{fb40}\x{fb41}\x{fb43}\x{fb44}\x{fb46}-\x{fbb1}\x{fbd3}-\x{fd3d}\x{fd50}-\x{fd8f}\x{fd92}-\x{fdc7}\x{fdf0}-\x{fdfb}\x{fe70}-\x{fe74}\x{fe76}-\x{fefc}\x{ff21}-\x{ff3a}\x{ff41}-\x{ff5a}\x{ff66}-\x{ffbe}\x{ffc2}-\x{ffc7}\x{ffca}-\x{ffcf}\x{ffd2}-\x{ffd7}\x{ffda}-\x{ffdc}][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{02c1}\x{02c6}-\x{02d1}\x{02e0}-\x{02e4}\x{02ec}\x{02ee}\x{0370}-\x{0374}\x{0376}\x{0377}\x{037a}-\x{037d}\x{0386}\x{0388}-\x{038a}\x{038c}\x{038e}-\x{03a1}\x{03a3}-\x{03f5}\x{03f7}-\x{0481}\x{048a}-\x{0527}\x{0531}-\x{0556}\x{0559}\x{0561}-\x{0587}\x{05d0}-\x{05ea}\x{05f0}-\x{05f2}\x{0620}-\x{064a}\x{066e}\x{066f}\x{0671}-\x{06d3}\x{06d5}\x{06e5}\x{06e6}\x{06ee}\x{06ef}\x{06fa}-\x{06fc}\x{06ff}\x{0710}\x{0712}-\x{072f}\x{074d}-\x{07a5}\x{07b1}\x{07ca}-\x{07ea}\x{07f4}\x{07f5}\x{07fa}\x{0800}-\x{0815}\x{081a}\x{0824}\x{0828}\x{0840}-\x{0858}\x{08a0}\x{08a2}-\x{08ac}\x{0904}-\x{0939}\x{093d}\x{0950}\x{0958}-\x{0961}\x{0971}-\x{0977}\x{0979}-\x{097f}\x{0985}-\x{098c}\x{098f}\x{0990}\x{0993}-\x{09a8}\x{09aa}-\x{09b0}\x{09b2}\x{09b6}-\x{09b9}\x{09bd}\x{09ce}\x{09dc}\x{09dd}\x{09df}-\x{09e1}\x{09f0}\x{09f1}\x{0a05}-\x{0a0a}\x{0a0f}\x{0a10}\x{0a13}-\x{0a28}\x{0a2a}-\x{0a30}\x{0a32}\x{0a33}\x{0a35}\x{0a36}\x{0a38}\x{0a39}\x{0a59}-\x{0a5c}\x{0a5e}\x{0a72}-\x{0a74}\x{0a85}-\x{0a8d}\x{0a8f}-\x{0a91}\x{0a93}-\x{0aa8}\x{0aaa}-\x{0ab0}\x{0ab2}\x{0ab3}\x{0ab5}-\x{0ab9}\x{0abd}\x{0ad0}\x{0ae0}\x{0ae1}\x{0b05}-\x{0b0c}\x{0b0f}\x{0b10}\x{0b13}-\x{0b28}\x{0b2a}-\x{0b30}\x{0b32}\x{0b33}\x{0b35}-\x{0b39}\x{0b3d}\x{0b5c}\x{0b5d}\x{0b5f}-\x{0b61}\x{0b71}\x{0b83}\x{0b85}-\x{0b8a}\x{0b8e}-\x{0b90}\x{0b92}-\x{0b95}\x{0b99}\x{0b9a}\x{0b9c}\x{0b9e}\x{0b9f}\x{0ba3}\x{0ba4}\x{0ba8}-\x{0baa}\x{0bae}-\x{0bb9}\x{0bd0}\x{0c05}-\x{0c0c}\x{0c0e}-\x{0c10}\x{0c12}-\x{0c28}\x{0c2a}-\x{0c33}\x{0c35}-\x{0c39}\x{0c3d}\x{0c58}\x{0c59}\x{0c60}\x{0c61}\x{0c85}-\x{0c8c}\x{0c8e}-\x{0c90}\x{0c92}-\x{0ca8}\x{0caa}-\x{0cb3}\x{0cb5}-\x{0cb9}\x{0cbd}\x{0cde}\x{0ce0}\x{0ce1}\x{0cf1}\x{0cf2}\x{0d05}-\x{0d0c}\x{0d0e}-\x{0d10}\x{0d12}-\x{0d3a}\x{0d3d}\x{0d4e}\x{0d60}\x{0d61}\x{0d7a}-\x{0d7f}\x{0d85}-\x{0d96}\x{0d9a}-\x{0db1}\x{0db3}-\x{0dbb}\x{0dbd}\x{0dc0}-\x{0dc6}\x{0e01}-\x{0e30}\x{0e32}\x{0e33}\x{0e40}-\x{0e46}\x{0e81}\x{0e82}\x{0e84}\x{0e87}\x{0e88}\x{0e8a}\x{0e8d}\x{0e94}-\x{0e97}\x{0e99}-\x{0e9f}\x{0ea1}-\x{0ea3}\x{0ea5}\x{0ea7}\x{0eaa}\x{0eab}\x{0ead}-\x{0eb0}\x{0eb2}\x{0eb3}\x{0ebd}\x{0ec0}-\x{0ec4}\x{0ec6}\x{0edc}-\x{0edf}\x{0f00}\x{0f40}-\x{0f47}\x{0f49}-\x{0f6c}\x{0f88}-\x{0f8c}\x{1000}-\x{102a}\x{103f}\x{1050}-\x{1055}\x{105a}-\x{105d}\x{1061}\x{1065}\x{1066}\x{106e}-\x{1070}\x{1075}-\x{1081}\x{108e}\x{10a0}-\x{10c5}\x{10c7}\x{10cd}\x{10d0}-\x{10fa}\x{10fc}-\x{1248}\x{124a}-\x{124d}\x{1250}-\x{1256}\x{1258}\x{125a}-\x{125d}\x{1260}-\x{1288}\x{128a}-\x{128d}\x{1290}-\x{12b0}\x{12b2}-\x{12b5}\x{12b8}-\x{12be}\x{12c0}\x{12c2}-\x{12c5}\x{12c8}-\x{12d6}\x{12d8}-\x{1310}\x{1312}-\x{1315}\x{1318}-\x{135a}\x{1380}-\x{138f}\x{13a0}-\x{13f4}\x{1401}-\x{166c}\x{166f}-\x{167f}\x{1681}-\x{169a}\x{16a0}-\x{16ea}\x{16ee}-\x{16f0}\x{1700}-\x{170c}\x{170e}-\x{1711}\x{1720}-\x{1731}\x{1740}-\x{1751}\x{1760}-\x{176c}\x{176e}-\x{1770}\x{1780}-\x{17b3}\x{17d7}\x{17dc}\x{1820}-\x{1877}\x{1880}-\x{18a8}\x{18aa}\x{18b0}-\x{18f5}\x{1900}-\x{191c}\x{1950}-\x{196d}\x{1970}-\x{1974}\x{1980}-\x{19ab}\x{19c1}-\x{19c7}\x{1a00}-\x{1a16}\x{1a20}-\x{1a54}\x{1aa7}\x{1b05}-\x{1b33}\x{1b45}-\x{1b4b}\x{1b83}-\x{1ba0}\x{1bae}\x{1baf}\x{1bba}-\x{1be5}\x{1c00}-\x{1c23}\x{1c4d}-\x{1c4f}\x{1c5a}-\x{1c7d}\x{1ce9}-\x{1cec}\x{1cee}-\x{1cf1}\x{1cf5}\x{1cf6}\x{1d00}-\x{1dbf}\x{1e00}-\x{1f15}\x{1f18}-\x{1f1d}\x{1f20}-\x{1f45}\x{1f48}-\x{1f4d}\x{1f50}-\x{1f57}\x{1f59}\x{1f5b}\x{1f5d}\x{1f5f}-\x{1f7d}\x{1f80}-\x{1fb4}\x{1fb6}-\x{1fbc}\x{1fbe}\x{1fc2}-\x{1fc4}\x{1fc6}-\x{1fcc}\x{1fd0}-\x{1fd3}\x{1fd6}-\x{1fdb}\x{1fe0}-\x{1fec}\x{1ff2}-\x{1ff4}\x{1ff6}-\x{1ffc}\x{2071}\x{207f}\x{2090}-\x{209c}\x{2102}\x{2107}\x{210a}-\x{2113}\x{2115}\x{2119}-\x{211d}\x{2124}\x{2126}\x{2128}\x{212a}-\x{212d}\x{212f}-\x{2139}\x{213c}-\x{213f}\x{2145}-\x{2149}\x{214e}\x{2160}-\x{2188}\x{2c00}-\x{2c2e}\x{2c30}-\x{2c5e}\x{2c60}-\x{2ce4}\x{2ceb}-\x{2cee}\x{2cf2}\x{2cf3}\x{2d00}-\x{2d25}\x{2d27}\x{2d2d}\x{2d30}-\x{2d67}\x{2d6f}\x{2d80}-\x{2d96}\x{2da0}-\x{2da6}\x{2da8}-\x{2dae}\x{2db0}-\x{2db6}\x{2db8}-\x{2dbe}\x{2dc0}-\x{2dc6}\x{2dc8}-\x{2dce}\x{2dd0}-\x{2dd6}\x{2dd8}-\x{2dde}\x{2e2f}\x{3005}-\x{3007}\x{3021}-\x{3029}\x{3031}-\x{3035}\x{3038}-\x{303c}\x{3041}-\x{3096}\x{309d}-\x{309f}\x{30a1}-\x{30fa}\x{30fc}-\x{30ff}\x{3105}-\x{312d}\x{3131}-\x{318e}\x{31a0}-\x{31ba}\x{31f0}-\x{31ff}\x{3400}-\x{4db5}\x{4e00}-\x{9fcc}\x{a000}-\x{a48c}\x{a4d0}-\x{a4fd}\x{a500}-\x{a60c}\x{a610}-\x{a61f}\x{a62a}\x{a62b}\x{a640}-\x{a66e}\x{a67f}-\x{a697}\x{a6a0}-\x{a6ef}\x{a717}-\x{a71f}\x{a722}-\x{a788}\x{a78b}-\x{a78e}\x{a790}-\x{a793}\x{a7a0}-\x{a7aa}\x{a7f8}-\x{a801}\x{a803}-\x{a805}\x{a807}-\x{a80a}\x{a80c}-\x{a822}\x{a840}-\x{a873}\x{a882}-\x{a8b3}\x{a8f2}-\x{a8f7}\x{a8fb}\x{a90a}-\x{a925}\x{a930}-\x{a946}\x{a960}-\x{a97c}\x{a984}-\x{a9b2}\x{a9cf}\x{aa00}-\x{aa28}\x{aa40}-\x{aa42}\x{aa44}-\x{aa4b}\x{aa60}-\x{aa76}\x{aa7a}\x{aa80}-\x{aaaf}\x{aab1}\x{aab5}\x{aab6}\x{aab9}-\x{aabd}\x{aac0}\x{aac2}\x{aadb}-\x{aadd}\x{aae0}-\x{aaea}\x{aaf2}-\x{aaf4}\x{ab01}-\x{ab06}\x{ab09}-\x{ab0e}\x{ab11}-\x{ab16}\x{ab20}-\x{ab26}\x{ab28}-\x{ab2e}\x{abc0}-\x{abe2}\x{ac00}-\x{d7a3}\x{d7b0}-\x{d7c6}\x{d7cb}-\x{d7fb}\x{f900}-\x{fa6d}\x{fa70}-\x{fad9}\x{fb00}-\x{fb06}\x{fb13}-\x{fb17}\x{fb1d}\x{fb1f}-\x{fb28}\x{fb2a}-\x{fb36}\x{fb38}-\x{fb3c}\x{fb3e}\x{fb40}\x{fb41}\x{fb43}\x{fb44}\x{fb46}-\x{fbb1}\x{fbd3}-\x{fd3d}\x{fd50}-\x{fd8f}\x{fd92}-\x{fdc7}\x{fdf0}-\x{fdfb}\x{fe70}-\x{fe74}\x{fe76}-\x{fefc}\x{ff21}-\x{ff3a}\x{ff41}-\x{ff5a}\x{ff66}-\x{ffbe}\x{ffc2}-\x{ffc7}\x{ffca}-\x{ffcf}\x{ffd2}-\x{ffd7}\x{ffda}-\x{ffdc}0-9\x{0300}-\x{036f}\x{0483}-\x{0487}\x{0591}-\x{05bd}\x{05bf}\x{05c1}\x{05c2}\x{05c4}\x{05c5}\x{05c7}\x{0610}-\x{061a}\x{064b}-\x{0669}\x{0670}\x{06d6}-\x{06dc}\x{06df}-\x{06e4}\x{06e7}\x{06e8}\x{06ea}-\x{06ed}\x{06f0}-\x{06f9}\x{0711}\x{0730}-\x{074a}\x{07a6}-\x{07b0}\x{07c0}-\x{07c9}\x{07eb}-\x{07f3}\x{0816}-\x{0819}\x{081b}-\x{0823}\x{0825}-\x{0827}\x{0829}-\x{082d}\x{0859}-\x{085b}\x{08e4}-\x{08fe}\x{0900}-\x{0903}\x{093a}-\x{093c}\x{093e}-\x{094f}\x{0951}-\x{0957}\x{0962}\x{0963}\x{0966}-\x{096f}\x{0981}-\x{0983}\x{09bc}\x{09be}-\x{09c4}\x{09c7}\x{09c8}\x{09cb}-\x{09cd}\x{09d7}\x{09e2}\x{09e3}\x{09e6}-\x{09ef}\x{0a01}-\x{0a03}\x{0a3c}\x{0a3e}-\x{0a42}\x{0a47}\x{0a48}\x{0a4b}-\x{0a4d}\x{0a51}\x{0a66}-\x{0a71}\x{0a75}\x{0a81}-\x{0a83}\x{0abc}\x{0abe}-\x{0ac5}\x{0ac7}-\x{0ac9}\x{0acb}-\x{0acd}\x{0ae2}\x{0ae3}\x{0ae6}-\x{0aef}\x{0b01}-\x{0b03}\x{0b3c}\x{0b3e}-\x{0b44}\x{0b47}\x{0b48}\x{0b4b}-\x{0b4d}\x{0b56}\x{0b57}\x{0b62}\x{0b63}\x{0b66}-\x{0b6f}\x{0b82}\x{0bbe}-\x{0bc2}\x{0bc6}-\x{0bc8}\x{0bca}-\x{0bcd}\x{0bd7}\x{0be6}-\x{0bef}\x{0c01}-\x{0c03}\x{0c3e}-\x{0c44}\x{0c46}-\x{0c48}\x{0c4a}-\x{0c4d}\x{0c55}\x{0c56}\x{0c62}\x{0c63}\x{0c66}-\x{0c6f}\x{0c82}\x{0c83}\x{0cbc}\x{0cbe}-\x{0cc4}\x{0cc6}-\x{0cc8}\x{0cca}-\x{0ccd}\x{0cd5}\x{0cd6}\x{0ce2}\x{0ce3}\x{0ce6}-\x{0cef}\x{0d02}\x{0d03}\x{0d3e}-\x{0d44}\x{0d46}-\x{0d48}\x{0d4a}-\x{0d4d}\x{0d57}\x{0d62}\x{0d63}\x{0d66}-\x{0d6f}\x{0d82}\x{0d83}\x{0dca}\x{0dcf}-\x{0dd4}\x{0dd6}\x{0dd8}-\x{0ddf}\x{0df2}\x{0df3}\x{0e31}\x{0e34}-\x{0e3a}\x{0e47}-\x{0e4e}\x{0e50}-\x{0e59}\x{0eb1}\x{0eb4}-\x{0eb9}\x{0ebb}\x{0ebc}\x{0ec8}-\x{0ecd}\x{0ed0}-\x{0ed9}\x{0f18}\x{0f19}\x{0f20}-\x{0f29}\x{0f35}\x{0f37}\x{0f39}\x{0f3e}\x{0f3f}\x{0f71}-\x{0f84}\x{0f86}\x{0f87}\x{0f8d}-\x{0f97}\x{0f99}-\x{0fbc}\x{0fc6}\x{102b}-\x{103e}\x{1040}-\x{1049}\x{1056}-\x{1059}\x{105e}-\x{1060}\x{1062}-\x{1064}\x{1067}-\x{106d}\x{1071}-\x{1074}\x{1082}-\x{108d}\x{108f}-\x{109d}\x{135d}-\x{135f}\x{1712}-\x{1714}\x{1732}-\x{1734}\x{1752}\x{1753}\x{1772}\x{1773}\x{17b4}-\x{17d3}\x{17dd}\x{17e0}-\x{17e9}\x{180b}-\x{180d}\x{1810}-\x{1819}\x{18a9}\x{1920}-\x{192b}\x{1930}-\x{193b}\x{1946}-\x{194f}\x{19b0}-\x{19c0}\x{19c8}\x{19c9}\x{19d0}-\x{19d9}\x{1a17}-\x{1a1b}\x{1a55}-\x{1a5e}\x{1a60}-\x{1a7c}\x{1a7f}-\x{1a89}\x{1a90}-\x{1a99}\x{1b00}-\x{1b04}\x{1b34}-\x{1b44}\x{1b50}-\x{1b59}\x{1b6b}-\x{1b73}\x{1b80}-\x{1b82}\x{1ba1}-\x{1bad}\x{1bb0}-\x{1bb9}\x{1be6}-\x{1bf3}\x{1c24}-\x{1c37}\x{1c40}-\x{1c49}\x{1c50}-\x{1c59}\x{1cd0}-\x{1cd2}\x{1cd4}-\x{1ce8}\x{1ced}\x{1cf2}-\x{1cf4}\x{1dc0}-\x{1de6}\x{1dfc}-\x{1dff}\x{200c}\x{200d}\x{203f}\x{2040}\x{2054}\x{20d0}-\x{20dc}\x{20e1}\x{20e5}-\x{20f0}\x{2cef}-\x{2cf1}\x{2d7f}\x{2de0}-\x{2dff}\x{302a}-\x{302f}\x{3099}\x{309a}\x{a620}-\x{a629}\x{a66f}\x{a674}-\x{a67d}\x{a69f}\x{a6f0}\x{a6f1}\x{a802}\x{a806}\x{a80b}\x{a823}-\x{a827}\x{a880}\x{a881}\x{a8b4}-\x{a8c4}\x{a8d0}-\x{a8d9}\x{a8e0}-\x{a8f1}\x{a900}-\x{a909}\x{a926}-\x{a92d}\x{a947}-\x{a953}\x{a980}-\x{a983}\x{a9b3}-\x{a9c0}\x{a9d0}-\x{a9d9}\x{aa29}-\x{aa36}\x{aa43}\x{aa4c}\x{aa4d}\x{aa50}-\x{aa59}\x{aa7b}\x{aab0}\x{aab2}-\x{aab4}\x{aab7}\x{aab8}\x{aabe}\x{aabf}\x{aac1}\x{aaeb}-\x{aaef}\x{aaf5}\x{aaf6}\x{abe3}-\x{abea}\x{abec}\x{abed}\x{abf0}-\x{abf9}\x{fb1e}\x{fe00}-\x{fe0f}\x{fe20}-\x{fe26}\x{fe33}\x{fe34}\x{fe4d}-\x{fe4f}\x{ff10}-\x{ff19}\x{ff3f}]*\b';

    /**
     * Array of patterns to match.
     *
     * @var string[]
     */
    protected $patterns = array();
    
    /**
     * This array will hold content of strings and regular expressions that have
     * been extracted from the JS source code, so we can reliably match "code",
     * without having to worry about potential "code-like" characters inside.
     *
     * @var string[]
     */
    public $extracted = array();

    /**
     * Full list of JavaScript reserved words.
     * Will be loaded from /data/js/keywords_reserved.txt.
     *
     * @see https://mathiasbynens.be/notes/reserved-keywords
     *
     * @var string[]
     */
    protected $keywordsReserved = array();

    /**
     * List of JavaScript reserved words that accept a <variable, value, ...>
     * after them. Some end of lines are not the end of a statement, like with
     * these keywords.
     *
     * E.g.: we shouldn't insert a ; after this else
     * else
     *     console.log('this is quite fine')
     *
     * Will be loaded from /data/js/keywords_before.txt
     *
     * @var string[]
     */
    protected $keywordsBefore = array();

    /**
     * List of JavaScript reserved words that accept a <variable, value, ...>
     * before them. Some end of lines are not the end of a statement, like when
     * continued by one of these keywords on the newline.
     *
     * E.g.: we shouldn't insert a ; before this instanceof
     * variable
     *     instanceof String
     *
     * Will be loaded from /data/js/keywords_after.txt
     *
     * @var string[]
     */
    protected $keywordsAfter = array();

    /**
     * List of all JavaScript operators.
     *
     * Will be loaded from /data/js/operators.txt
     *
     * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators
     *
     * @var string[]
     */
    protected $operators = array();

    /**
     * List of JavaScript operators that accept a <variable, value, ...> after
     * them. Some end of lines are not the end of a statement, like with these
     * operators.
     *
     * Note: Most operators are fine, we've only removed ++ and --.
     * ++ & -- have to be joined with the value they're in-/decrementing.
     *
     * Will be loaded from /data/js/operators_before.txt
     *
     * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators
     *
     * @var string[]
     */
    protected $operatorsBefore = array();

    /**
     * List of JavaScript operators that accept a <variable, value, ...> before
     * them. Some end of lines are not the end of a statement, like when
     * continued by one of these operators on the newline.
     *
     * Note: Most operators are fine, we've only removed ), ], ++, --, ! and ~.
     * There can't be a newline separating ! or ~ and whatever it is negating.
     * ++ & -- have to be joined with the value they're in-/decrementing.
     * ) & ] are "special" in that they have lots or usecases. () for example
     * is used for function calls, for grouping, in if () and for (), ...
     *
     * Will be loaded from /data/js/operators_after.txt
     *
     * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators
     *
     * @var string[]
     */
    protected $operatorsAfter = array();

    /**
     * {@inheritdoc}
     */
    public function __construct()
    {
        $dataDir = __DIR__.'/jsmin_data/';
        $options = FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES;
        $this->keywordsReserved = file($dataDir.'keywords_reserved.txt', $options);
        $this->keywordsBefore = file($dataDir.'keywords_before.txt', $options);
        $this->keywordsAfter = file($dataDir.'keywords_after.txt', $options);
        $this->operators = file($dataDir.'operators.txt', $options);
        $this->operatorsBefore = file($dataDir.'operators_before.txt', $options);
        $this->operatorsAfter = file($dataDir.'operators_after.txt', $options);
    }

    /**
     * Minify the data.
     * Perform JS optimizations.
     *
     * @param string[optional] $path Path to write the data to
     *
     * @return string The minified data
     */
    public static function minify($js)
    {
        $jsmin = new JSMin();
        return $jsmin->min($js);
    }

    public function min($js)
    {

        $output = '';
        /*
         * Let's first take out strings, comments and regular expressions.
         * All of these can contain JS code-like characters, and we should make
         * sure any further magic ignores anything inside of these.
         *
         * Consider this example, where we should not strip any whitespace:
         * var str = "a   test";
         *
         * Comments will be removed altogether, strings and regular expressions
         * will be replaced by placeholder text, which we'll restore later.
         */
        $this->extractStrings('\'"`');
        $this->stripComments();
        $this->extractRegex();

        // take out strings, comments & regex (for which we've registered
        // the regexes just a few lines earlier)
        $js = $this->replace($js);

        $js = $this->propertyNotation($js);
        $js = $this->shortenBools($js);
        $js = $this->stripWhitespace($js);

        // combine js: separating the scripts by a ;
        $output .= $js.";";

        // clean up leftover `;`s from the combination of multiple scripts
        $output = ltrim($output, ';');
        $output = (string) substr($output, 0, -1);

        /*
         * Earlier, we extracted strings & regular expressions and replaced them
         * with placeholder text. This will restore them.
         */
        $output = $this->restoreExtractedData($output);

        return $output;
    }

    /**
     * Strings are a pattern we need to match, in order to ignore potential
     * code-like content inside them, but we just want all of the string
     * content to remain untouched.
     *
     * This method will replace all string content with simple STRING#
     * placeholder text, so we've rid all strings from characters that may be
     * misinterpreted. Original string content will be saved in $this->extracted
     * and after doing all other minifying, we can restore the original content
     * via restoreStrings().
     *
     * @param string[optional] $chars
     * @param string[optional] $placeholderPrefix
     */
    protected function extractStrings($chars = '\'"', $placeholderPrefix = '')
    {
        // PHP only supports $this inside anonymous functions since 5.4
        $minifier = $this;
        $callback = function ($match) use ($minifier, $placeholderPrefix) {
            // check the second index here, because the first always contains a quote
            if ($match[2] === '') {
                /*
                 * Empty strings need no placeholder; they can't be confused for
                 * anything else anyway.
                 * But we still needed to match them, for the extraction routine
                 * to skip over this particular string.
                 */
                return $match[0];
            }

            $count = count($minifier->extracted);
            $placeholder = $match[1].$placeholderPrefix.$count.$match[1];
            $minifier->extracted[$placeholder] = $match[1].$match[2].$match[1];

            return $placeholder;
        };

        /*
         * The \\ messiness explained:
         * * Don't count ' or " as end-of-string if it's escaped (has backslash
         * in front of it)
         * * Unless... that backslash itself is escaped (another leading slash),
         * in which case it's no longer escaping the ' or "
         * * So there can be either no backslash, or an even number
         * * multiply all of that times 4, to account for the escaping that has
         * to be done to pass the backslash into the PHP string without it being
         * considered as escape-char (times 2) and to get it in the regex,
         * escaped (times 2)
         */
        $this->registerPattern('/(['.$chars.'])(.*?(?<!\\\\)(\\\\\\\\)*+)\\1/s', $callback);
    }

    /**
     * Strip comments from source code.
     */
    protected function stripComments()
    {
        // PHP only supports $this inside anonymous functions since 5.4
        $minifier = $this;
        $callback = function ($match) use ($minifier) {
            if (
                substr($match[1], 0, 1) === '!' ||
                strpos($match[1], '@license') !== false ||
                strpos($match[1], '@preserve') !== false
            ) {
                // preserve multi-line comments that start with /*!
                // or contain @license or @preserve annotations
                $count = count($minifier->extracted);
                $placeholder = '/*'.$count.'*/';
                $minifier->extracted[$placeholder] = $match[0];

                return $placeholder;
            }

            return '';
        };

        // multi-line comments
        $this->registerPattern('/\n?\/\*(.*?)\*\/\n?/s', $callback);

        // single-line comments
        $this->registerPattern('/\/\/.*$/m', '');
    }

    /**
     * JS can have /-delimited regular expressions, like: /ab+c/.match(string).
     *
     * The content inside the regex can contain characters that may be confused
     * for JS code: e.g. it could contain whitespace it needs to match & we
     * don't want to strip whitespace in there.
     *
     * The regex can be pretty simple: we don't have to care about comments,
     * (which also use slashes) because stripComments() will have stripped those
     * already.
     *
     * This method will replace all string content with simple REGEX#
     * placeholder text, so we've rid all regular expressions from characters
     * that may be misinterpreted. Original regex content will be saved in
     * $this->extracted and after doing all other minifying, we can restore the
     * original content via restoreRegex()
     */
    protected function extractRegex()
    {
        // PHP only supports $this inside anonymous functions since 5.4
        $minifier = $this;
        $callback = function ($match) use ($minifier) {
            $count = count($minifier->extracted);
            $placeholder = '"'.$count.'"';
            $minifier->extracted[$placeholder] = $match[0];

            return $placeholder;
        };

        // match all chars except `/` and `\`
        // `\` is allowed though, along with whatever char follows (which is the
        // one being escaped)
        // this should allow all chars, except for an unescaped `/` (= the one
        // closing the regex)
        // then also ignore bare `/` inside `[]`, where they don't need to be
        // escaped: anything inside `[]` can be ignored safely
        $pattern = '\\/(?!\*)(?:[^\\[\\/\\\\\n\r]++|(?:\\\\.)++|(?:\\[(?:[^\\]\\\\\n\r]++|(?:\\\\.)++)++\\])++)++\\/[gimuy]*';

        // a regular expression can only be followed by a few operators or some
        // of the RegExp methods (a `\` followed by a variable or value is
        // likely part of a division, not a regex)
        $keywords = array('do', 'in', 'new', 'else', 'throw', 'yield', 'delete', 'return',  'typeof');
        $before = '(^|[=:,;\+\-\*\/\}\(\{\[&\|!]|'.implode('|', $keywords).')\s*';
        $propertiesAndMethods = array(
            // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Properties_2
            'constructor',
            'flags',
            'global',
            'ignoreCase',
            'multiline',
            'source',
            'sticky',
            'unicode',
            // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#Methods_2
            'compile(',
            'exec(',
            'test(',
            'toSource(',
            'toString(',
        );
        $delimiters = array_fill(0, count($propertiesAndMethods), '/');
        $propertiesAndMethods = array_map('preg_quote', $propertiesAndMethods, $delimiters);
        $after = '(?=\s*([\.,;\)\}&\|+]|\/\/|$|\.('.implode('|', $propertiesAndMethods).')))';
        $this->registerPattern('/'.$before.'\K'.$pattern.$after.'/', $callback);

        // regular expressions following a `)` are rather annoying to detect...
        // quite often, `/` after `)` is a division operator & if it happens to
        // be followed by another one (or a comment), it is likely to be
        // confused for a regular expression
        // however, it's perfectly possible for a regex to follow a `)`: after
        // a single-line `if()`, `while()`, ... statement, for example
        // since, when they occur like that, they're always the start of a
        // statement, there's only a limited amount of ways they can be useful:
        // by calling the regex methods directly
        // if a regex following `)` is not followed by `.<property or method>`,
        // it's quite likely not a regex
        $before = '\)\s*';
        $after = '(?=\s*\.('.implode('|', $propertiesAndMethods).'))';
        $this->registerPattern('/'.$before.'\K'.$pattern.$after.'/', $callback);

        // 1 more edge case: a regex can be followed by a lot more operators or
        // keywords if there's a newline (ASI) in between, where the operator
        // actually starts a new statement
        // (https://github.com/matthiasmullie/minify/issues/56)
        $operators = $this->getOperatorsForRegex($this->operatorsBefore, '/');
        $operators += $this->getOperatorsForRegex($this->keywordsReserved, '/');
        $after = '(?=\s*\n\s*('.implode('|', $operators).'))';
        $this->registerPattern('/'.$pattern.$after.'/', $callback);
    }

    /**
     * We can't "just" run some regular expressions against JavaScript: it's a
     * complex language. E.g. having an occurrence of // xyz would be a comment,
     * unless it's used within a string. Of you could have something that looks
     * like a 'string', but inside a comment.
     * The only way to accurately replace these pieces is to traverse the JS one
     * character at a time and try to find whatever starts first.
     *
     * @param string $content The content to replace patterns in
     *
     * @return string The (manipulated) content
     */
    protected function replace($content)
    {
        $contentLength = strlen($content);
        $output = '';
        $processedOffset = 0;
        $positions = array_fill(0, count($this->patterns), -1);
        $matches = array();

        while ($processedOffset < $contentLength) {
            // find first match for all patterns
            foreach ($this->patterns as $i => $pattern) {
                list($pattern, $replacement) = $pattern;

                // we can safely ignore patterns for positions we've unset earlier,
                // because we know these won't show up anymore
                if (array_key_exists($i, $positions) == false) {
                    continue;
                }

                // no need to re-run matches that are still in the part of the
                // content that hasn't been processed
                if ($positions[$i] >= $processedOffset) {
                    continue;
                }

                $match = null;
                if (preg_match($pattern, $content, $match, PREG_OFFSET_CAPTURE, $processedOffset)) {
                    $matches[$i] = $match;

                    // we'll store the match position as well; that way, we
                    // don't have to redo all preg_matches after changing only
                    // the first (we'll still know where those others are)
                    $positions[$i] = $match[0][1];
                } else {
                    // if the pattern couldn't be matched, there's no point in
                    // executing it again in later runs on this same content;
                    // ignore this one until we reach end of content
                    unset($matches[$i], $positions[$i]);
                }
            }

            // no more matches to find: everything's been processed, break out
            if (!$matches) {
                // output the remaining content
                $output .= substr($content, $processedOffset);
                break;
            }

            // see which of the patterns actually found the first thing (we'll
            // only want to execute that one, since we're unsure if what the
            // other found was not inside what the first found)
            $matchOffset = min($positions);
            $firstPattern = array_search($matchOffset, $positions);
            $match = $matches[$firstPattern];

            // execute the pattern that matches earliest in the content string
            list(, $replacement) = $this->patterns[$firstPattern];

            // add the part of the input between $processedOffset and the first match;
            // that content wasn't matched by anything
            $output .= substr($content, $processedOffset, $matchOffset - $processedOffset);
            // add the replacement for the match
            $output .= $this->executeReplacement($replacement, $match);
            // advance $processedOffset past the match
            $processedOffset = $matchOffset + strlen($match[0][0]);
        }

        return $output;
    }

    /**
     * Replaces all occurrences of array['key'] by array.key.
     *
     * @param string $content
     *
     * @return string
     */
    protected function propertyNotation($content)
    {
        // PHP only supports $this inside anonymous functions since 5.4
        $minifier = $this;
        $keywords = $this->keywordsReserved;
        $callback = function ($match) use ($minifier, $keywords) {
            $property = trim($minifier->extracted[$match[1]], '\'"');

            /*
             * Check if the property is a reserved keyword. In this context (as
             * property of an object literal/array) it shouldn't matter, but IE8
             * freaks out with "Expected identifier".
             */
            if (in_array($property, $keywords)) {
                return $match[0];
            }

            /*
             * See if the property is in a variable-like format (e.g.
             * array['key-here'] can't be replaced by array.key-here since '-'
             * is not a valid character there.
             */
            if (!preg_match('/^'.$minifier::REGEX_VARIABLE.'$/u', $property)) {
                return $match[0];
            }

            return '.'.$property;
        };

        /*
         * Figure out if previous character is a variable name (of the array
         * we want to use property notation on) - this is to make sure
         * standalone ['value'] arrays aren't confused for keys-of-an-array.
         * We can (and only have to) check the last character, because PHP's
         * regex implementation doesn't allow unfixed-length look-behind
         * assertions.
         */
        preg_match('/(\[[^\]]+\])[^\]]*$/', static::REGEX_VARIABLE, $previousChar);
        $previousChar = $previousChar[1];

        /*
         * Make sure word preceding the ['value'] is not a keyword, e.g.
         * return['x']. Because -again- PHP's regex implementation doesn't allow
         * unfixed-length look-behind assertions, I'm just going to do a lot of
         * separate look-behind assertions, one for each keyword.
         */
        $keywords = $this->getKeywordsForRegex($keywords);
        $keywords = '(?<!'.implode(')(?<!', $keywords).')';

        return preg_replace_callback('/(?<='.$previousChar.'|\])'.$keywords.'\[\s*(([\'"])[0-9]+\\2)\s*\]/u', $callback, $content);
    }

    /**
     * Replaces true & false by !0 and !1.
     *
     * @param string $content
     *
     * @return string
     */
    protected function shortenBools($content)
    {
        /*
         * 'true' or 'false' could be used as property names (which may be
         * followed by whitespace) - we must not replace those!
         * Since PHP doesn't allow variable-length (to account for the
         * whitespace) lookbehind assertions, I need to capture the leading
         * character and check if it's a `.`
         */
        $callback = function ($match) {
            if (trim($match[1]) === '.') {
                return $match[0];
            }

            return $match[1].($match[2] === 'true' ? '!0' : '!1');
        };
        $content = preg_replace_callback('/(^|.\s*)\b(true|false)\b(?!:)/', $callback, $content);

        // for(;;) is exactly the same as while(true), but shorter :)
        $content = preg_replace('/\bwhile\(!0\){/', 'for(;;){', $content);

        // now make sure we didn't turn any do ... while(true) into do ... for(;;)
        preg_match_all('/\bdo\b/', $content, $dos, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);

        // go backward to make sure positional offsets aren't altered when $content changes
        $dos = array_reverse($dos);
        foreach ($dos as $do) {
            $offsetDo = $do[0][1];

            // find all `while` (now `for`) following `do`: one of those must be
            // associated with the `do` and be turned back into `while`
            preg_match_all('/\bfor\(;;\)/', $content, $whiles, PREG_OFFSET_CAPTURE | PREG_SET_ORDER, $offsetDo);
            foreach ($whiles as $while) {
                $offsetWhile = $while[0][1];

                $open = substr_count($content, '{', $offsetDo, $offsetWhile - $offsetDo);
                $close = substr_count($content, '}', $offsetDo, $offsetWhile - $offsetDo);
                if ($open === $close) {
                    // only restore `while` if amount of `{` and `}` are the same;
                    // otherwise, that `for` isn't associated with this `do`
                    $content = substr_replace($content, 'while(!0)', $offsetWhile, strlen('for(;;)'));
                    break;
                }
            }
        }

        return $content;
    }

    /**
     * Strip whitespace.
     *
     * We won't strip *all* whitespace, but as much as possible. The thing that
     * we'll preserve are newlines we're unsure about.
     * JavaScript doesn't require statements to be terminated with a semicolon.
     * It will automatically fix missing semicolons with ASI (automatic semi-
     * colon insertion) at the end of line causing errors (without semicolon.)
     *
     * Because it's sometimes hard to tell if a newline is part of a statement
     * that should be terminated or not, we'll just leave some of them alone.
     *
     * @param string $content The content to strip the whitespace for
     *
     * @return string
     */
    protected function stripWhitespace($content)
    {
        // uniform line endings, make them all line feed
        $content = str_replace(array("\r\n", "\r"), "\n", $content);

        // collapse all non-line feed whitespace into a single space
        $content = preg_replace('/[^\S\n]+/', ' ', $content);

        // strip leading & trailing whitespace
        $content = str_replace(array(" \n", "\n "), "\n", $content);

        // collapse consecutive line feeds into just 1
        $content = preg_replace('/\n+/', "\n", $content);

        $operatorsBefore = $this->getOperatorsForRegex($this->operatorsBefore, '/');
        $operatorsAfter = $this->getOperatorsForRegex($this->operatorsAfter, '/');
        $operators = $this->getOperatorsForRegex($this->operators, '/');
        $keywordsBefore = $this->getKeywordsForRegex($this->keywordsBefore, '/');
        $keywordsAfter = $this->getKeywordsForRegex($this->keywordsAfter, '/');

        // strip whitespace that ends in (or next line begin with) an operator
        // that allows statements to be broken up over multiple lines
        unset($operatorsBefore['+'], $operatorsBefore['-'], $operatorsAfter['+'], $operatorsAfter['-']);
        $content = preg_replace(
            array(
                '/('.implode('|', $operatorsBefore).')\s+/',
                '/\s+('.implode('|', $operatorsAfter).')/',
            ),
            '\\1',
            $content
        );

        // make sure + and - can't be mistaken for, or joined into ++ and --
        $content = preg_replace(
            array(
                '/(?<![\+\-])\s*([\+\-])(?![\+\-])/',
                '/(?<![\+\-])([\+\-])\s*(?![\+\-])/',
            ),
            '\\1',
            $content
        );

        // collapse whitespace around reserved words into single space
        $content = preg_replace('/(^|[;\}\s])\K('.implode('|', $keywordsBefore).')\s+/', '\\2 ', $content);
        $content = preg_replace('/\s+('.implode('|', $keywordsAfter).')(?=([;\{\s]|$))/', ' \\1', $content);

        /*
         * We didn't strip whitespace after a couple of operators because they
         * could be used in different contexts and we can't be sure it's ok to
         * strip the newlines. However, we can safely strip any non-line feed
         * whitespace that follows them.
         */
        $operatorsDiffBefore = array_diff($operators, $operatorsBefore);
        $operatorsDiffAfter = array_diff($operators, $operatorsAfter);
        $content = preg_replace('/('.implode('|', $operatorsDiffBefore).')[^\S\n]+/', '\\1', $content);
        $content = preg_replace('/[^\S\n]+('.implode('|', $operatorsDiffAfter).')/', '\\1', $content);

        /*
         * Whitespace after `return` can be omitted in a few occasions
         * (such as when followed by a string or regex)
         * Same for whitespace in between `)` and `{`, or between `{` and some
         * keywords.
         */
        $content = preg_replace('/\breturn\s+(["\'\/\+\-])/', 'return$1', $content);
        $content = preg_replace('/\)\s+\{/', '){', $content);
        $content = preg_replace('/}\n(else|catch|finally)\b/', '}$1', $content);

        /*
         * Get rid of double semicolons, except where they can be used like:
         * "for(v=1,_=b;;)", "for(v=1;;v++)" or "for(;;ja||(ja=true))".
         * I'll safeguard these double semicolons inside for-loops by
         * temporarily replacing them with an invalid condition: they won't have
         * a double semicolon and will be easy to spot to restore afterwards.
         */
        $content = preg_replace('/\bfor\(([^;]*);;([^;]*)\)/', 'for(\\1;-;\\2)', $content);
        $content = preg_replace('/;+/', ';', $content);
        $content = preg_replace('/\bfor\(([^;]*);-;([^;]*)\)/', 'for(\\1;;\\2)', $content);

        /*
         * Next, we'll be removing all semicolons where ASI kicks in.
         * for-loops however, can have an empty body (ending in only a
         * semicolon), like: `for(i=1;i<3;i++);`, of `for(i in list);`
         * Here, nothing happens during the loop; it's just used to keep
         * increasing `i`. With that ; omitted, the next line would be expected
         * to be the for-loop's body... Same goes for while loops.
         * I'm going to double that semicolon (if any) so after the next line,
         * which strips semicolons here & there, we're still left with this one.
         */
        $content = preg_replace('/(for\([^;\{]*;[^;\{]*;[^;\{]*\));(\}|$)/s', '\\1;;\\2', $content);
        $content = preg_replace('/(for\([^;\{]+\s+in\s+[^;\{]+\));(\}|$)/s', '\\1;;\\2', $content);
        /*
         * Below will also keep `;` after a `do{}while();` along with `while();`
         * While these could be stripped after do-while, detecting this
         * distinction is cumbersome, so I'll play it safe and make sure `;`
         * after any kind of `while` is kept.
         */
        $content = preg_replace('/(while\([^;\{]+\));(\}|$)/s', '\\1;;\\2', $content);

        /*
         * We also can't strip empty else-statements. Even though they're
         * useless and probably shouldn't be in the code in the first place, we
         * shouldn't be stripping the `;` that follows it as it breaks the code.
         * We can just remove those useless else-statements completely.
         *
         * @see https://github.com/matthiasmullie/minify/issues/91
         */
        $content = preg_replace('/else;/s', '', $content);

        /*
         * We also don't really want to terminate statements followed by closing
         * curly braces (which we've ignored completely up until now) or end-of-
         * script: ASI will kick in here & we're all about minifying.
         * Semicolons at beginning of the file don't make any sense either.
         */
        $content = preg_replace('/;(\}|$)/s', '\\1', $content);
        $content = ltrim($content, ';');

        // get rid of remaining whitespace af beginning/end
        return trim($content);
    }

    /**
     * This method will restore all extracted data (strings, regexes) that were
     * replaced with placeholder text in extract*(). The original content was
     * saved in $this->extracted.
     *
     * @param string $content
     *
     * @return string
     */
    protected function restoreExtractedData($content)
    {
        if (!$this->extracted) {
            // nothing was extracted, nothing to restore
            return $content;
        }

        $content = strtr($content, $this->extracted);

        $this->extracted = array();

        return $content;
    }

    /**
     * We'll strip whitespace around certain operators with regular expressions.
     * This will prepare the given array by escaping all characters.
     *
     * @param string[] $operators
     * @param string   $delimiter
     *
     * @return string[]
     */
    protected function getOperatorsForRegex(array $operators, $delimiter = '/')
    {
        // escape operators for use in regex
        $delimiters = array_fill(0, count($operators), $delimiter);
        $escaped = array_map('preg_quote', $operators, $delimiters);

        $operators = array_combine($operators, $escaped);

        // ignore + & - for now, they'll get special treatment
        unset($operators['+'], $operators['-']);

        // dot can not just immediately follow a number; it can be confused for
        // decimal point, or calling a method on it, e.g. 42 .toString()
        $operators['.'] = '(?<![0-9]\s)\.';

        // don't confuse = with other assignment shortcuts (e.g. +=)
        $chars = preg_quote('+-*\=<>%&|', $delimiter);
        $operators['='] = '(?<!['.$chars.'])\=';

        return $operators;
    }

    /**
     * We'll strip whitespace around certain keywords with regular expressions.
     * This will prepare the given array by escaping all characters.
     *
     * @param string[] $keywords
     * @param string   $delimiter
     *
     * @return string[]
     */
    protected function getKeywordsForRegex(array $keywords, $delimiter = '/')
    {
        // escape keywords for use in regex
        $delimiter = array_fill(0, count($keywords), $delimiter);
        $escaped = array_map('preg_quote', $keywords, $delimiter);

        // add word boundaries
        array_walk($keywords, function ($value) {
            return '\b'.$value.'\b';
        });

        $keywords = array_combine($keywords, $escaped);

        return $keywords;
    }

    /**
     * If $replacement is a callback, execute it, passing in the match data.
     * If it's a string, just pass it through.
     *
     * @param string|callable $replacement Replacement value
     * @param array           $match       Match data, in PREG_OFFSET_CAPTURE form
     *
     * @return string
     */
    protected function executeReplacement($replacement, $match)
    {
        if (!is_callable($replacement)) {
            return $replacement;
        }
        // convert $match from the PREG_OFFSET_CAPTURE form to the form the callback expects
        foreach ($match as &$matchItem) {
            $matchItem = $matchItem[0];
        }
        return $replacement($match);
    }
            
    /**
     * Register a pattern to execute against the source content.
     *
     * If $replacement is a string, it must be plain text. Placeholders like $1 or \2 don't work.
     * If you need that functionality, use a callback instead.
     *
     * @param string          $pattern     PCRE pattern
     * @param string|callable $replacement Replacement value for matched pattern
     */
    protected function registerPattern($pattern, $replacement = '')
    {
        // study the pattern, we'll execute it more than once
        $pattern .= 'S';

        $this->patterns[] = array($pattern, $replacement);
    }    
}
<?php
defined( 'WPINC' ) || exit;
/**
 * LiteSpeed Object Cache
 *
 * @since  1.8
 */

! defined( 'LSCWP_OBJECT_CACHE' ) && define( 'LSCWP_OBJECT_CACHE', true );

// Initialize const `LSCWP_DIR` and locate LSCWP plugin foder
$lscwp_dir = ( defined( 'WP_PLUGIN_DIR' ) ? WP_PLUGIN_DIR : WP_CONTENT_DIR . '/plugins' ) . '/litespeed-cache/';
// Use plugin as higher priority than MU plugin
if ( ! file_exists( $lscwp_dir . 'litespeed-cache.php' ) ) {
	// Check if is mu plugin or not
	$lscwp_dir = ( defined( 'WPMU_PLUGIN_DIR' ) ? WPMU_PLUGIN_DIR : WP_CONTENT_DIR . '/mu-plugins' ) . '/litespeed-cache/';
	if ( ! file_exists( $lscwp_dir . 'litespeed-cache.php' ) ) {
		$lscwp_dir = '';
	}
}

$data_file = WP_CONTENT_DIR . '/.litespeed_conf.dat';
$lib_file = $lscwp_dir . 'src/object.lib.php';

// Can't find LSCWP location, terminate object cache process
if ( ! $lscwp_dir || ! file_exists( $data_file ) || ( ! file_exists( $lib_file ) ) ) {
	if ( ! is_admin() ) { // Bypass object cache for frontend
		require_once ABSPATH . WPINC . '/cache.php';
	}
	else {
		$err = 'Can NOT find LSCWP path for object cache initialization in ' . __FILE__;
		error_log( $err );
		add_action( is_network_admin() ? 'network_admin_notices' : 'admin_notices', function() use ( &$err ) {
			echo $err;
		} );
	}
}
else {
	// Init object cache & LSCWP
	if ( file_exists( $lib_file ) ) {
		require_once $lib_file;
	}
}
<?php
namespace LiteSpeed\Lib\CSS_MIN ;

defined( 'WPINC' ) || exit ;

class Utils
{
    /**
     * Clamps a number between a minimum and a maximum value.
     * @param int|float $n the number to clamp
     * @param int|float $min the lower end number allowed
     * @param int|float $max the higher end number allowed
     * @return int|float
     */
    public static function clampNumber($n, $min, $max)
    {
        return min(max($n, $min), $max);
    }

    /**
     * Clamps a RGB color number outside the sRGB color space
     * @param int|float $n the number to clamp
     * @return int|float
     */
    public static function clampNumberSrgb($n)
    {
        return self::clampNumber($n, 0, 255);
    }

    /**
     * Converts a HSL color into a RGB color
     * @param array $hslValues
     * @return array
     */
    public static function hslToRgb($hslValues)
    {
        $h = floatval($hslValues[0]);
        $s = floatval(str_replace('%', '', $hslValues[1]));
        $l = floatval(str_replace('%', '', $hslValues[2]));

        // Wrap and clamp, then fraction!
        $h = ((($h % 360) + 360) % 360) / 360;
        $s = self::clampNumber($s, 0, 100) / 100;
        $l = self::clampNumber($l, 0, 100) / 100;

        if ($s == 0) {
            $r = $g = $b = self::roundNumber(255 * $l);
        } else {
            $v2 = $l < 0.5 ? $l * (1 + $s) : ($l + $s) - ($s * $l);
            $v1 = (2 * $l) - $v2;
            $r = self::roundNumber(255 * self::hueToRgb($v1, $v2, $h + (1/3)));
            $g = self::roundNumber(255 * self::hueToRgb($v1, $v2, $h));
            $b = self::roundNumber(255 * self::hueToRgb($v1, $v2, $h - (1/3)));
        }

        return array($r, $g, $b);
    }

    /**
     * Tests and selects the correct formula for each RGB color channel
     * @param $v1
     * @param $v2
     * @param $vh
     * @return mixed
     */
    public static function hueToRgb($v1, $v2, $vh)
    {
        $vh = $vh < 0 ? $vh + 1 : ($vh > 1 ? $vh - 1 : $vh);

        if ($vh * 6 < 1) {
            return $v1 + ($v2 - $v1) * 6 * $vh;
        }

        if ($vh * 2 < 1) {
            return $v2;
        }

        if ($vh * 3 < 2) {
            return $v1 + ($v2 - $v1) * ((2 / 3) - $vh) * 6;
        }

        return $v1;
    }

    /**
     * Convert strings like "64M" or "30" to int values
     * @param mixed $size
     * @return int
     */
    public static function normalizeInt($size)
    {
        if (is_string($size)) {
            $letter = substr($size, -1);
            $size = intval($size);
            switch ($letter) {
                case 'M':
                case 'm':
                    return (int) $size * 1048576;
                case 'K':
                case 'k':
                    return (int) $size * 1024;
                case 'G':
                case 'g':
                    return (int) $size * 1073741824;
            }
        }
        return (int) $size;
    }

    /**
     * Converts a string containing and RGB percentage value into a RGB integer value i.e. '90%' -> 229.5
     * @param $rgbPercentage
     * @return int
     */
    public static function rgbPercentageToRgbInteger($rgbPercentage)
    {
        if (strpos($rgbPercentage, '%') !== false) {
            $rgbPercentage = self::roundNumber(floatval(str_replace('%', '', $rgbPercentage)) * 2.55);
        }

        return intval($rgbPercentage, 10);
    }

    /**
     * Converts a RGB color into a HEX color
     * @param array $rgbColors
     * @return array
     */
    public static function rgbToHex($rgbColors)
    {
        $hexColors = array();

        // Values outside the sRGB color space should be clipped (0-255)
        for ($i = 0, $l = count($rgbColors); $i < $l; $i++) {
            $hexColors[$i] = sprintf("%02x", self::clampNumberSrgb(self::rgbPercentageToRgbInteger($rgbColors[$i])));
        }

        return $hexColors;
    }

    /**
     * Rounds a number to its closest integer
     * @param $n
     * @return int
     */
    public static function roundNumber($n)
    {
        return intval(round(floatval($n)), 10);
    }
}
<?php
/**
 * Rewrite file-relative URIs as root-relative in CSS files
 *
 * @package Minify
 * @author Stephen Clay <steve@mrclay.org>
 */

namespace LiteSpeed\Lib\CSS_MIN ;

defined( 'WPINC' ) || exit ;

class UriRewriter
{

    /**
     * rewrite() and rewriteRelative() append debugging information here
     *
     * @var string
     */
    public static $debugText = '';

    /**
     * In CSS content, rewrite file relative URIs as root relative
     *
     * @param string $css
     *
     * @param string $currentDir The directory of the current CSS file.
     *
     * @param string $docRoot The document root of the web site in which
     * the CSS file resides (default = $_SERVER['DOCUMENT_ROOT']).
     *
     * @param array $symlinks (default = array()) If the CSS file is stored in
     * a symlink-ed directory, provide an array of link paths to
     * target paths, where the link paths are within the document root. Because
     * paths need to be normalized for this to work, use "//" to substitute
     * the doc root in the link paths (the array keys). E.g.:
     * <code>
     * array('//symlink' => '/real/target/path') // unix
     * array('//static' => 'D:\\staticStorage')  // Windows
     * </code>
     *
     * @return string
     */
    public static function rewrite($css, $currentDir, $docRoot = null, $symlinks = array())
    {
        self::$_docRoot = self::_realpath(
            $docRoot ? $docRoot : $_SERVER['DOCUMENT_ROOT']
        );
        self::$_currentDir = self::_realpath($currentDir);
        self::$_symlinks = array();

        // normalize symlinks in order to map to link
        foreach ($symlinks as $link => $target) {
            $link = ($link === '//') ? self::$_docRoot : str_replace('//', self::$_docRoot . '/', $link);
            $link = strtr($link, '/', DIRECTORY_SEPARATOR);

            self::$_symlinks[$link] = self::_realpath($target);
        }

        self::$debugText .= "docRoot    : " . self::$_docRoot . "\n"
                          . "currentDir : " . self::$_currentDir . "\n";
        if (self::$_symlinks) {
            self::$debugText .= "symlinks : " . var_export(self::$_symlinks, 1) . "\n";
        }
        self::$debugText .= "\n";

        $css = self::_trimUrls($css);

        $css = self::_owlifySvgPaths($css);

        // rewrite
        $pattern = '/@import\\s+([\'"])(.*?)[\'"]/';
        $css = preg_replace_callback($pattern, __CLASS__ . '::_processUriCB', $css);

        $pattern = '/url\\(\\s*([\'"](.*?)[\'"]|[^\\)\\s]+)\\s*\\)/';
        $css = preg_replace_callback($pattern, __CLASS__ . '::_processUriCB', $css);

        $css = self::_unOwlify($css);

        return $css;
    }

    /**
     * In CSS content, prepend a path to relative URIs
     *
     * @param string $css
     *
     * @param string $path The path to prepend.
     *
     * @return string
     */
    public static function prepend($css, $path)
    {
        self::$_prependPath = $path;

        $css = self::_trimUrls($css);

        $css = self::_owlifySvgPaths($css);

        // append
        $pattern = '/@import\\s+([\'"])(.*?)[\'"]/';
        $css = preg_replace_callback($pattern, __CLASS__ . '::_processUriCB', $css);

        $pattern = '/url\\(\\s*([\'"](.*?)[\'"]|[^\\)\\s]+)\\s*\\)/';
        $css = preg_replace_callback($pattern, __CLASS__ . '::_processUriCB', $css);

        $css = self::_unOwlify($css);

        self::$_prependPath = null;

        return $css;
    }

    /**
     * Get a root relative URI from a file relative URI
     *
     * <code>
     * UriRewriter::rewriteRelative(
     *       '../img/hello.gif'
     *     , '/home/user/www/css'  // path of CSS file
     *     , '/home/user/www'      // doc root
     * );
     * // returns '/img/hello.gif'
     *
     * // example where static files are stored in a symlinked directory
     * UriRewriter::rewriteRelative(
     *       'hello.gif'
     *     , '/var/staticFiles/theme'
     *     , '/home/user/www'
     *     , array('/home/user/www/static' => '/var/staticFiles')
     * );
     * // returns '/static/theme/hello.gif'
     * </code>
     *
     * @param string $uri file relative URI
     *
     * @param string $realCurrentDir realpath of the current file's directory.
     *
     * @param string $realDocRoot realpath of the site document root.
     *
     * @param array $symlinks (default = array()) If the file is stored in
     * a symlink-ed directory, provide an array of link paths to
     * real target paths, where the link paths "appear" to be within the document
     * root. E.g.:
     * <code>
     * array('/home/foo/www/not/real/path' => '/real/target/path') // unix
     * array('C:\\htdocs\\not\\real' => 'D:\\real\\target\\path')  // Windows
     * </code>
     *
     * @return string
     */
    public static function rewriteRelative($uri, $realCurrentDir, $realDocRoot, $symlinks = array())
    {
        // prepend path with current dir separator (OS-independent)
        $path = strtr($realCurrentDir, '/', DIRECTORY_SEPARATOR);
        $path .= DIRECTORY_SEPARATOR . strtr($uri, '/', DIRECTORY_SEPARATOR);

        self::$debugText .= "file-relative URI  : {$uri}\n"
                          . "path prepended     : {$path}\n";

        // "unresolve" a symlink back to doc root
        foreach ($symlinks as $link => $target) {
            if (0 === strpos($path, $target)) {
                // replace $target with $link
                $path = $link . substr($path, strlen($target));

                self::$debugText .= "symlink unresolved : {$path}\n";

                break;
            }
        }
        // strip doc root
        $path = substr($path, strlen($realDocRoot));

        self::$debugText .= "docroot stripped   : {$path}\n";

        // fix to root-relative URI
        $uri = strtr($path, '/\\', '//');
        $uri = self::removeDots($uri);

        self::$debugText .= "traversals removed : {$uri}\n\n";

        return $uri;
    }

    /**
     * Remove instances of "./" and "../" where possible from a root-relative URI
     *
     * @param string $uri
     *
     * @return string
     */
    public static function removeDots($uri)
    {
        $uri = str_replace('/./', '/', $uri);
        // inspired by patch from Oleg Cherniy
        do {
            $uri = preg_replace('@/[^/]+/\\.\\./@', '/', $uri, 1, $changed);
        } while ($changed);

        return $uri;
    }

    /**
     * Get realpath with any trailing slash removed. If realpath() fails,
     * just remove the trailing slash.
     *
     * @param string $path
     *
     * @return mixed path with no trailing slash
     */
    protected static function _realpath($path)
    {
        $realPath = realpath($path);
        if ($realPath !== false) {
            $path = $realPath;
        }

        return rtrim($path, '/\\');
    }

    /**
     * Directory of this stylesheet
     *
     * @var string
     */
    private static $_currentDir = '';

    /**
     * DOC_ROOT
     *
     * @var string
     */
    private static $_docRoot = '';

    /**
     * directory replacements to map symlink targets back to their
     * source (within the document root) E.g. '/var/www/symlink' => '/var/realpath'
     *
     * @var array
     */
    private static $_symlinks = array();

    /**
     * Path to prepend
     *
     * @var string
     */
    private static $_prependPath = null;

    /**
     * @param string $css
     *
     * @return string
     */
    private static function _trimUrls($css)
    {
        $pattern = '/
            url\\(      # url(
            \\s*
            ([^\\)]+?)  # 1 = URI (assuming does not contain ")")
            \\s*
            \\)         # )
        /x';

        return preg_replace($pattern, 'url($1)', $css);
    }

    /**
     * @param array $m
     *
     * @return string
     */
    private static function _processUriCB($m)
    {
        // $m matched either '/@import\\s+([\'"])(.*?)[\'"]/' or '/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
        $isImport = ($m[0][0] === '@');
        // determine URI and the quote character (if any)
        if ($isImport) {
            $quoteChar = $m[1];
            $uri = $m[2];
        } else {
            // $m[1] is either quoted or not
            $quoteChar = ($m[1][0] === "'" || $m[1][0] === '"') ? $m[1][0] : '';

            $uri = ($quoteChar === '') ? $m[1] : substr($m[1], 1, strlen($m[1]) - 2);
        }

        if ($uri === '') {
            return $m[0];
        }

        // if not root/scheme relative and not starts with scheme
        if (!preg_match('~^(/|[a-z]+\:)~', $uri)) {
            // URI is file-relative: rewrite depending on options
            if (self::$_prependPath === null) {
                $uri = self::rewriteRelative($uri, self::$_currentDir, self::$_docRoot, self::$_symlinks);
            } else {
                $uri = self::$_prependPath . $uri;
                if ($uri[0] === '/') {
                    $root = '';
                    $rootRelative = $uri;
                    $uri = $root . self::removeDots($rootRelative);
                } elseif (preg_match('@^((https?\:)?//([^/]+))/@', $uri, $m) && (false !== strpos($m[3], '.'))) {
                    $root = $m[1];
                    $rootRelative = substr($uri, strlen($root));
                    $uri = $root . self::removeDots($rootRelative);
                }
            }
        }

        if ($isImport) {
            return "@import {$quoteChar}{$uri}{$quoteChar}";
        } else {
            return "url({$quoteChar}{$uri}{$quoteChar})";
        }
    }

    /**
     * Mungs some inline SVG URL declarations so they won't be touched
     *
     * @link https://github.com/mrclay/minify/issues/517
     * @see _unOwlify
     *
     * @param string $css
     * @return string
     */
    private static function _owlifySvgPaths($css)
    {
        $pattern = '~\b((?:clip-path|mask|-webkit-mask)\s*\:\s*)url(\(\s*#\w+\s*\))~';

        return preg_replace($pattern, '$1owl$2', $css);
    }

    /**
     * Undo work of _owlify
     *
     * @see _owlifySvgPaths
     *
     * @param string $css
     * @return string
     */
    private static function _unOwlify($css)
    {
        $pattern = '~\b((?:clip-path|mask|-webkit-mask)\s*\:\s*)owl~';

        return preg_replace($pattern, '$1url', $css);
    }
}
<?php
/*!
 * CssMin
 * Author: Tubal Martin - http://tubalmartin.me/
 * Repo: https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port
 *
 * This is a PHP port of the CSS minification tool distributed with YUICompressor,
 * itself a port of the cssmin utility by Isaac Schlueter - http://foohack.com/
 * Permission is hereby granted to use the PHP version under the same
 * conditions as the YUICompressor.
 */

/*!
 * YUI Compressor
 * http://developer.yahoo.com/yui/compressor/
 * Author: Julien Lecomte - http://www.julienlecomte.net/
 * Copyright (c) 2013 Yahoo! Inc. All rights reserved.
 * The copyrights embodied in the content of this file are licensed
 * by Yahoo! Inc. under the BSD (revised) open source license.
 */
namespace LiteSpeed\Lib\CSS_MIN ;

defined( 'WPINC' ) || exit ;

class Minifier
{
    const QUERY_FRACTION = '_CSSMIN_QF_';
    const COMMENT_TOKEN = '_CSSMIN_CMT_%d_';
    const COMMENT_TOKEN_START = '_CSSMIN_CMT_';
    const RULE_BODY_TOKEN = '_CSSMIN_RBT_%d_';
    const PRESERVED_TOKEN = '_CSSMIN_PTK_%d_';

    // Token lists
    private $comments = array();
    private $ruleBodies = array();
    private $preservedTokens = array();

    // Output options
    private $keepImportantComments = true;
    private $keepSourceMapComment = false;
    private $linebreakPosition = 0;

    // PHP ini limits
    private $raisePhpLimits;
    private $memoryLimit;
    private $maxExecutionTime = 60; // 1 min
    private $pcreBacktrackLimit;
    private $pcreRecursionLimit;

    // Color maps
    private $hexToNamedColorsMap;
    private $namedToHexColorsMap;

    // Regexes
    private $numRegex;
    private $charsetRegex = '/@charset [^;]+;/Si';
    private $importRegex = '/@import [^;]+;/Si';
    private $namespaceRegex = '/@namespace [^;]+;/Si';
    private $namedToHexColorsRegex;
    private $shortenOneZeroesRegex;
    private $shortenTwoZeroesRegex;
    private $shortenThreeZeroesRegex;
    private $shortenFourZeroesRegex;
    private $unitsGroupRegex = '(?:ch|cm|em|ex|gd|in|mm|px|pt|pc|q|rem|vh|vmax|vmin|vw|%)';

    /**
     * @param bool|int $raisePhpLimits If true, PHP settings will be raised if needed
     */
    public function __construct($raisePhpLimits = true)
    {
        $this->raisePhpLimits = (bool) $raisePhpLimits;
        $this->memoryLimit = 128 * 1048576; // 128MB in bytes
        $this->pcreBacktrackLimit = 1000 * 1000;
        $this->pcreRecursionLimit = 500 * 1000;
        $this->hexToNamedColorsMap = Colors::getHexToNamedMap();
        $this->namedToHexColorsMap = Colors::getNamedToHexMap();
        $this->namedToHexColorsRegex = sprintf(
            '/([:,( ])(%s)( |,|\)|;|$)/Si',
            implode('|', array_keys($this->namedToHexColorsMap))
        );
        $this->numRegex = sprintf('-?\d*\.?\d+%s?', $this->unitsGroupRegex);
        $this->setShortenZeroValuesRegexes();
    }

    /**
     * Parses & minifies the given input CSS string
     * @param string $css
     * @return string
     */
    public function run($css = '')
    {
        if (empty($css) || !is_string($css)) {
            return '';
        }

        $this->resetRunProperties();

        if ($this->raisePhpLimits) {
            $this->doRaisePhpLimits();
        }

        return $this->minify($css);
    }

    /**
     * Sets whether to keep or remove sourcemap special comment.
     * Sourcemap comments are removed by default.
     * @param bool $keepSourceMapComment
     */
    public function keepSourceMapComment($keepSourceMapComment = true)
    {
        $this->keepSourceMapComment = (bool) $keepSourceMapComment;
    }

    /**
     * Sets whether to keep or remove important comments.
     * Important comments outside of a declaration block are kept by default.
     * @param bool $removeImportantComments
     */
    public function removeImportantComments($removeImportantComments = true)
    {
        $this->keepImportantComments = !(bool) $removeImportantComments;
    }

    /**
     * Sets the approximate column after which long lines will be splitted in the output
     * with a linebreak.
     * @param int $position
     */
    public function setLineBreakPosition($position)
    {
        $this->linebreakPosition = (int) $position;
    }

    /**
     * Sets the memory limit for this script
     * @param int|string $limit
     */
    public function setMemoryLimit($limit)
    {
        $this->memoryLimit = Utils::normalizeInt($limit);
    }

    /**
     * Sets the maximum execution time for this script
     * @param int|string $seconds
     */
    public function setMaxExecutionTime($seconds)
    {
        $this->maxExecutionTime = (int) $seconds;
    }

    /**
     * Sets the PCRE backtrack limit for this script
     * @param int $limit
     */
    public function setPcreBacktrackLimit($limit)
    {
        $this->pcreBacktrackLimit = (int) $limit;
    }

    /**
     * Sets the PCRE recursion limit for this script
     * @param int $limit
     */
    public function setPcreRecursionLimit($limit)
    {
        $this->pcreRecursionLimit = (int) $limit;
    }

    /**
     * Builds regular expressions needed for shortening zero values
     */
    private function setShortenZeroValuesRegexes()
    {
        $zeroRegex = '0'. $this->unitsGroupRegex;
        $numOrPosRegex = '('. $this->numRegex .'|top|left|bottom|right|center) ';
        $oneZeroSafeProperties = array(
            '(?:line-)?height',
            '(?:(?:min|max)-)?width',
            'top',
            'left',
            'background-position',
            'bottom',
            'right',
            'border(?:-(?:top|left|bottom|right))?(?:-width)?',
            'border-(?:(?:top|bottom)-(?:left|right)-)?radius',
            'column-(?:gap|width)',
            'margin(?:-(?:top|left|bottom|right))?',
            'outline-width',
            'padding(?:-(?:top|left|bottom|right))?'
        );

        // First zero regex
        $regex = '/(^|;)('. implode('|', $oneZeroSafeProperties) .'):%s/Si';
        $this->shortenOneZeroesRegex = sprintf($regex, $zeroRegex);

        // Multiple zeroes regexes
        $regex = '/(^|;)(margin|padding|border-(?:width|radius)|background-position):%s/Si';
        $this->shortenTwoZeroesRegex = sprintf($regex, $numOrPosRegex . $zeroRegex);
        $this->shortenThreeZeroesRegex = sprintf($regex, $numOrPosRegex . $numOrPosRegex . $zeroRegex);
        $this->shortenFourZeroesRegex = sprintf($regex, $numOrPosRegex . $numOrPosRegex . $numOrPosRegex . $zeroRegex);
    }

    /**
     * Resets properties whose value may change between runs
     */
    private function resetRunProperties()
    {
        $this->comments = array();
        $this->ruleBodies = array();
        $this->preservedTokens = array();
    }

    /**
     * Tries to configure PHP to use at least the suggested minimum settings
     * @return void
     */
    private function doRaisePhpLimits()
    {
        $phpLimits = array(
            'memory_limit' => $this->memoryLimit,
            'max_execution_time' => $this->maxExecutionTime,
            'pcre.backtrack_limit' => $this->pcreBacktrackLimit,
            'pcre.recursion_limit' =>  $this->pcreRecursionLimit
        );

        // If current settings are higher respect them.
        foreach ($phpLimits as $name => $suggested) {
            $current = Utils::normalizeInt(ini_get($name));

            if ($current >= $suggested) {
                continue;
            }

            // memoryLimit exception: allow -1 for "no memory limit".
            if ($name === 'memory_limit' && $current === -1) {
                continue;
            }

            // maxExecutionTime exception: allow 0 for "no memory limit".
            if ($name === 'max_execution_time' && $current === 0) {
                continue;
            }

            ini_set($name, $suggested);
        }
    }

    /**
     * Registers a preserved token
     * @param string $token
     * @return string The token ID string
     */
    private function registerPreservedToken($token)
    {
        $tokenId = sprintf(self::PRESERVED_TOKEN, count($this->preservedTokens));
        $this->preservedTokens[$tokenId] = $token;
        return $tokenId;
    }

    /**
     * Registers a candidate comment token
     * @param string $comment
     * @return string The comment token ID string
     */
    private function registerCommentToken($comment)
    {
        $tokenId = sprintf(self::COMMENT_TOKEN, count($this->comments));
        $this->comments[$tokenId] = $comment;
        return $tokenId;
    }

    /**
     * Registers a rule body token
     * @param string $body the minified rule body
     * @return string The rule body token ID string
     */
    private function registerRuleBodyToken($body)
    {
        if (empty($body)) {
            return '';
        }

        $tokenId = sprintf(self::RULE_BODY_TOKEN, count($this->ruleBodies));
        $this->ruleBodies[$tokenId] = $body;
        return $tokenId;
    }

    /**
     * Parses & minifies the given input CSS string
     * @param string $css
     * @return string
     */
    private function minify($css)
    {
        // Process data urls
        $css = $this->processDataUrls($css);

        // Process comments
        $css = preg_replace_callback(
            '/(?<!\\\\)\/\*(.*?)\*(?<!\\\\)\//Ss',
            array($this, 'processCommentsCallback'),
            $css
        );

        // IE7: Process Microsoft matrix filters (whitespaces between Matrix parameters). Can contain strings inside.
        $css = preg_replace_callback(
            '/filter:\s*progid:DXImageTransform\.Microsoft\.Matrix\(([^)]+)\)/Ss',
            array($this, 'processOldIeSpecificMatrixDefinitionCallback'),
            $css
        );

        // Process quoted unquotable attribute selectors to unquote them. Covers most common cases.
        // Likelyhood of a quoted attribute selector being a substring in a string: Very very low.
        $css = preg_replace(
            '/\[\s*([a-z][a-z-]+)\s*([\*\|\^\$~]?=)\s*[\'"](-?[a-z_][a-z0-9-_]+)[\'"]\s*\]/Ssi',
            '[$1$2$3]',
            $css
        );

        // Process strings so their content doesn't get accidentally minified
        $css = preg_replace_callback(
            '/(?:"(?:[^\\\\"]|\\\\.|\\\\)*")|'."(?:'(?:[^\\\\']|\\\\.|\\\\)*')/S",
            array($this, 'processStringsCallback'),
            $css
        );

        // Normalize all whitespace strings to single spaces. Easier to work with that way.
        $css = preg_replace('/\s+/S', ' ', $css);

        // Process comments
        $css = $this->processComments($css);

        // Process rule bodies
        $css = $this->processRuleBodies($css);

        // Process at-rules and selectors
        $css = $this->processAtRulesAndSelectors($css);

        // Restore preserved rule bodies before splitting
        $css = strtr($css, $this->ruleBodies);

        // Some source control tools don't like it when files containing lines longer
        // than, say 8000 characters, are checked in. The linebreak option is used in
        // that case to split long lines after a specific column.
        if ($this->linebreakPosition > 0) {
            $l = strlen($css);
            $offset = $this->linebreakPosition;
            while (preg_match('/(?<!\\\\)\}(?!\n)/S', $css, $matches, PREG_OFFSET_CAPTURE, $offset)) {
                $matchIndex = $matches[0][1];
                $css = substr_replace($css, "\n", $matchIndex + 1, 0);
                $offset = $matchIndex + 2 + $this->linebreakPosition;
                $l += 1;
                if ($offset > $l) {
                    break;
                }
            }
        }

        // Restore preserved comments and strings
        $css = strtr($css, $this->preservedTokens);

        return trim($css);
    }

    /**
     * Searches & replaces all data urls with tokens before we start compressing,
     * to avoid performance issues running some of the subsequent regexes against large string chunks.
     * @param string $css
     * @return string
     */
    private function processDataUrls($css)
    {
        $ret = '';
        $searchOffset = $substrOffset = 0;

        // Since we need to account for non-base64 data urls, we need to handle
        // ' and ) being part of the data string.
        while (preg_match('/url\(\s*(["\']?)data:/Si', $css, $m, PREG_OFFSET_CAPTURE, $searchOffset)) {
            $matchStartIndex = $m[0][1];
            $dataStartIndex = $matchStartIndex + 4; // url( length
            $searchOffset = $matchStartIndex + strlen($m[0][0]);
            $terminator = $m[1][0]; // ', " or empty (not quoted)
            $terminatorRegex = '/(?<!\\\\)'. (strlen($terminator) === 0 ? '' : $terminator.'\s*') .'(\))/S';

            $ret .= substr($css, $substrOffset, $matchStartIndex - $substrOffset);

            // Terminator found
            if (preg_match($terminatorRegex, $css, $matches, PREG_OFFSET_CAPTURE, $searchOffset)) {
                $matchEndIndex = $matches[1][1];
                $searchOffset = $matchEndIndex + 1;
                $token = substr($css, $dataStartIndex, $matchEndIndex - $dataStartIndex);

                // Remove all spaces only for base64 encoded URLs.
                if (stripos($token, 'base64,') !== false) {
                    $token = preg_replace('/\s+/S', '', $token);
                }

                $ret .= 'url('. $this->registerPreservedToken(trim($token)) .')';
            // No end terminator found, re-add the whole match. Should we throw/warn here?
            } else {
                $ret .= substr($css, $matchStartIndex, $searchOffset - $matchStartIndex);
            }

            $substrOffset = $searchOffset;
        }

        $ret .= substr($css, $substrOffset);

        return $ret;
    }

    /**
     * Registers all comments found as candidates to be preserved.
     * @param array $matches
     * @return string
     */
    private function processCommentsCallback($matches)
    {
        return '/*'. $this->registerCommentToken($matches[1]) .'*/';
    }

    /**
     * Preserves old IE Matrix string definition
     * @param array $matches
     * @return string
     */
    private function processOldIeSpecificMatrixDefinitionCallback($matches)
    {
        return 'filter:progid:DXImageTransform.Microsoft.Matrix('. $this->registerPreservedToken($matches[1]) .')';
    }

    /**
     * Preserves strings found
     * @param array $matches
     * @return string
     */
    private function processStringsCallback($matches)
    {
        $match = $matches[0];
        $quote = substr($match, 0, 1);
        $match = substr($match, 1, -1);

        // maybe the string contains a comment-like substring?
        // one, maybe more? put'em back then
        if (strpos($match, self::COMMENT_TOKEN_START) !== false) {
            $match = strtr($match, $this->comments);
        }

        // minify alpha opacity in filter strings
        $match = str_ireplace('progid:DXImageTransform.Microsoft.Alpha(Opacity=', 'alpha(opacity=', $match);

        return $quote . $this->registerPreservedToken($match) . $quote;
    }

    /**
     * Preserves or removes comments found.
     * @param string $css
     * @return string
     */
    private function processComments($css)
    {
        foreach ($this->comments as $commentId => $comment) {
            $commentIdString = '/*'. $commentId .'*/';

            // ! in the first position of the comment means preserve
            // so push to the preserved tokens keeping the !
            if ($this->keepImportantComments && strpos($comment, '!') === 0) {
                $preservedTokenId = $this->registerPreservedToken($comment);
                // Put new lines before and after /*! important comments
                $css = str_replace($commentIdString, "\n/*$preservedTokenId*/\n", $css);
                continue;
            }

            // # sourceMappingURL= in the first position of the comment means sourcemap
            // so push to the preserved tokens if {$this->keepSourceMapComment} is truthy.
            if ($this->keepSourceMapComment && strpos($comment, '# sourceMappingURL=') === 0) {
                $preservedTokenId = $this->registerPreservedToken($comment);
                // Add new line before the sourcemap comment
                $css = str_replace($commentIdString, "\n/*$preservedTokenId*/", $css);
                continue;
            }

            // Keep empty comments after child selectors (IE7 hack)
            // e.g. html >/**/ body
            if (strlen($comment) === 0 && strpos($css, '>/*'.$commentId) !== false) {
                $css = str_replace($commentId, $this->registerPreservedToken(''), $css);
                continue;
            }

            // in all other cases kill the comment
            $css = str_replace($commentIdString, '', $css);
        }

        // Normalize whitespace again
        $css = preg_replace('/ +/S', ' ', $css);

        return $css;
    }

    /**
     * Finds, minifies & preserves all rule bodies.
     * @param string $css the whole stylesheet.
     * @return string
     */
    private function processRuleBodies($css)
    {
        $ret = '';
        $searchOffset = $substrOffset = 0;

        while (($blockStartPos = strpos($css, '{', $searchOffset)) !== false) {
            $blockEndPos = strpos($css, '}', $blockStartPos);
            if ( ! $blockEndPos ) throw new \Exception( 'CSS parse error' ) ;

            $nextBlockStartPos = strpos($css, '{', $blockStartPos + 1);
            $ret .= substr($css, $substrOffset, $blockStartPos - $substrOffset);

            if ($nextBlockStartPos !== false && $nextBlockStartPos < $blockEndPos) {
                $ret .= substr($css, $blockStartPos, $nextBlockStartPos - $blockStartPos);
                $searchOffset = $nextBlockStartPos;
            } else {
                $ruleBody = substr($css, $blockStartPos + 1, $blockEndPos - $blockStartPos - 1);
                $ruleBodyToken = $this->registerRuleBodyToken($this->processRuleBody($ruleBody));
                $ret .= '{'. $ruleBodyToken .'}';
                $searchOffset = $blockEndPos + 1;
            }

            $substrOffset = $searchOffset;
        }

        $ret .= substr($css, $substrOffset);

        return $ret;
    }

    /**
     * Compresses non-group rule bodies.
     * @param string $body The rule body without curly braces
     * @return string
     */
    private function processRuleBody($body)
    {
        $body = trim($body);

        // Remove spaces before the things that should not have spaces before them.
        $body = preg_replace('/ ([:=,)*\/;\n])/S', '$1', $body);

        // Remove the spaces after the things that should not have spaces after them.
        $body = preg_replace('/([:=,(*\/!;\n]) /S', '$1', $body);

        // Replace multiple semi-colons in a row by a single one
        $body = preg_replace('/;;+/S', ';', $body);

        // Remove semicolon before closing brace except when:
        // - The last property is prefixed with a `*` (lte IE7 hack) to avoid issues on Symbian S60 3.x browsers.
        if (!preg_match('/\*[a-z0-9-]+:[^;]+;$/Si', $body)) {
            $body = rtrim($body, ';');
        }

        // Remove important comments inside a rule body (because they make no sense here).
        if (strpos($body, '/*') !== false) {
            $body = preg_replace('/\n?\/\*[A-Z0-9_]+\*\/\n?/S', '', $body);
        }

        // Empty rule body? Exit :)
        if (empty($body)) {
            return '';
        }

        // Shorten font-weight values
        $body = preg_replace(
            array('/(font-weight:)bold\b/Si', '/(font-weight:)normal\b/Si'),
            array('${1}700', '${1}400'),
            $body
        );

        // Shorten background property
        $body = preg_replace('/(background:)(?:none|transparent)( !|;|$)/Si', '${1}0 0$2', $body);

        // Shorten opacity IE filter
        $body = str_ireplace('progid:DXImageTransform.Microsoft.Alpha(Opacity=', 'alpha(opacity=', $body);

        // Shorten colors from rgb(51,102,153) to #336699, rgb(100%,0%,0%) to #ff0000 (sRGB color space)
        // Shorten colors from hsl(0, 100%, 50%) to #ff0000 (sRGB color space)
        // This makes it more likely that it'll get further compressed in the next step.
        $body = preg_replace_callback(
            '/(rgb|hsl)\(([0-9,.% -]+)\)(.|$)/Si',
            array($this, 'shortenHslAndRgbToHexCallback'),
            $body
        );

        // Shorten colors from #AABBCC to #ABC or shorter color name:
        // - Look for hex colors which don't have a "=" in front of them (to avoid MSIE filters)
        $body = preg_replace_callback(
            '/(?<!=)#([0-9a-f]{3,6})( |,|\)|;|$)/Si',
            array($this, 'shortenHexColorsCallback'),
            $body
        );

        // Shorten long named colors with a shorter HEX counterpart: white -> #fff.
        // Run at least 2 times to cover most cases
        $body = preg_replace_callback(
            array($this->namedToHexColorsRegex, $this->namedToHexColorsRegex),
            array($this, 'shortenNamedColorsCallback'),
            $body
        );

        // Replace positive sign from numbers before the leading space is removed.
        // +1.2em to 1.2em, +.8px to .8px, +2% to 2%
        $body = preg_replace('/([ :,(])\+(\.?\d+)/S', '$1$2', $body);

        // shorten ms to s
        $body = preg_replace_callback('/([ :,(])(-?)(\d{3,})ms/Si', function ($matches) {
            return $matches[1] . $matches[2] . ((int) $matches[3] / 1000) .'s';
        }, $body);

        // Remove leading zeros from integer and float numbers.
        // 000.6 to .6, -0.8 to -.8, 0050 to 50, -01.05 to -1.05
        $body = preg_replace('/([ :,(])(-?)0+([1-9]?\.?\d+)/S', '$1$2$3', $body);

        // Remove trailing zeros from float numbers.
        // -6.0100em to -6.01em, .0100 to .01, 1.200px to 1.2px
        $body = preg_replace('/([ :,(])(-?\d?\.\d+?)0+([^\d])/S', '$1$2$3', $body);

        // Remove trailing .0 -> -9.0 to -9
        $body = preg_replace('/([ :,(])(-?\d+)\.0([^\d])/S', '$1$2$3', $body);

        // Replace 0 length numbers with 0
        $body = preg_replace('/([ :,(])-?\.?0+([^\d])/S', '${1}0$2', $body);

        // Shorten zero values for safe properties only
        $body = preg_replace(
            array(
                $this->shortenOneZeroesRegex,
                $this->shortenTwoZeroesRegex,
                $this->shortenThreeZeroesRegex,
                $this->shortenFourZeroesRegex
            ),
            array(
                '$1$2:0',
                '$1$2:$3 0',
                '$1$2:$3 $4 0',
                '$1$2:$3 $4 $5 0'
            ),
            $body
        );

        // Replace 0 0 0; or 0 0 0 0; with 0 0 for background-position property.
        $body = preg_replace('/(background-position):0(?: 0){2,3}( !|;|$)/Si', '$1:0 0$2', $body);

        // Shorten suitable shorthand properties with repeated values
        $body = preg_replace(
            array(
                '/(margin|padding|border-(?:width|radius)):('.$this->numRegex.')(?: \2)+( !|;|$)/Si',
                '/(border-(?:style|color)):([#a-z0-9]+)(?: \2)+( !|;|$)/Si'
            ),
            '$1:$2$3',
            $body
        );
        $body = preg_replace(
            array(
                '/(margin|padding|border-(?:width|radius)):'.
                '('.$this->numRegex.') ('.$this->numRegex.') \2 \3( !|;|$)/Si',
                '/(border-(?:style|color)):([#a-z0-9]+) ([#a-z0-9]+) \2 \3( !|;|$)/Si'
            ),
            '$1:$2 $3$4',
            $body
        );
        $body = preg_replace(
            array(
                '/(margin|padding|border-(?:width|radius)):'.
                '('.$this->numRegex.') ('.$this->numRegex.') ('.$this->numRegex.') \3( !|;|$)/Si',
                '/(border-(?:style|color)):([#a-z0-9]+) ([#a-z0-9]+) ([#a-z0-9]+) \3( !|;|$)/Si'
            ),
            '$1:$2 $3 $4$5',
            $body
        );

        // Lowercase some common functions that can be values
        $body = preg_replace_callback(
            '/(?:attr|blur|brightness|circle|contrast|cubic-bezier|drop-shadow|ellipse|from|grayscale|'.
            'hsla?|hue-rotate|inset|invert|local|minmax|opacity|perspective|polygon|rgba?|rect|repeat|saturate|sepia|'.
            'steps|to|url|var|-webkit-gradient|'.
            '(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?(?:calc|(?:repeating-)?(?:linear|radial)-gradient))\(/Si',
            array($this, 'strtolowerCallback'),
            $body
        );

        // Lowercase all uppercase properties
        $body = preg_replace_callback('/(?:^|;)[A-Z-]+:/S', array($this, 'strtolowerCallback'), $body);

        return $body;
    }

    /**
     * Compresses At-rules and selectors.
     * @param string $css the whole stylesheet with rule bodies tokenized.
     * @return string
     */
    private function processAtRulesAndSelectors($css)
    {
        $charset = '';
        $imports = '';
        $namespaces = '';

        // Remove spaces before the things that should not have spaces before them.
        $css = preg_replace('/ ([@{};>+)\]~=,\/\n])/S', '$1', $css);

        // Remove the spaces after the things that should not have spaces after them.
        $css = preg_replace('/([{}:;>+(\[~=,\/\n]) /S', '$1', $css);

        // Shorten shortable double colon (CSS3) pseudo-elements to single colon (CSS2)
        $css = preg_replace('/::(before|after|first-(?:line|letter))(\{|,)/Si', ':$1$2', $css);

        // Retain space for special IE6 cases
        $css = preg_replace_callback('/:first-(line|letter)(\{|,)/Si', function ($matches) {
            return ':first-'. strtolower($matches[1]) .' '. $matches[2];
        }, $css);

        // Find a fraction that may used in some @media queries such as: (min-aspect-ratio: 1/1)
        // Add token to add the "/" back in later
        $css = preg_replace('/\(([a-z-]+):([0-9]+)\/([0-9]+)\)/Si', '($1:$2'. self::QUERY_FRACTION .'$3)', $css);

        // Remove empty rule blocks up to 2 levels deep.
        $css = preg_replace(array_fill(0, 2, '/(\{)[^{};\/\n]+\{\}/S'), '$1', $css);
        $css = preg_replace('/[^{};\/\n]+\{\}/S', '', $css);

        // Two important comments next to each other? Remove extra newline.
        if ($this->keepImportantComments) {
            $css = str_replace("\n\n", "\n", $css);
        }

        // Restore fraction
        $css = str_replace(self::QUERY_FRACTION, '/', $css);

        // Lowercase some popular @directives
        $css = preg_replace_callback(
            '/(?<!\\\\)@(?:charset|document|font-face|import|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?keyframes|media|'.
            'namespace|page|supports|viewport)/Si',
            array($this, 'strtolowerCallback'),
            $css
        );

        // Lowercase some popular media types
        $css = preg_replace_callback(
            '/[ ,](?:all|aural|braille|handheld|print|projection|screen|tty|tv|embossed|speech)[ ,;{]/Si',
            array($this, 'strtolowerCallback'),
            $css
        );

        // Lowercase some common pseudo-classes & pseudo-elements
        $css = preg_replace_callback(
            '/(?<!\\\\):(?:active|after|before|checked|default|disabled|empty|enabled|first-(?:child|of-type)|'.
            'focus(?:-within)?|hover|indeterminate|in-range|invalid|lang\(|last-(?:child|of-type)|left|link|not\(|'.
            'nth-(?:child|of-type)\(|nth-last-(?:child|of-type)\(|only-(?:child|of-type)|optional|out-of-range|'.
            'read-(?:only|write)|required|right|root|:selection|target|valid|visited)/Si',
            array($this, 'strtolowerCallback'),
            $css
        );

        // @charset handling
        if (preg_match($this->charsetRegex, $css, $matches)) {
            // Keep the first @charset at-rule found
            $charset = $matches[0];
            // Delete all @charset at-rules
            $css = preg_replace($this->charsetRegex, '', $css);
        }

        // @import handling
        $css = preg_replace_callback($this->importRegex, function ($matches) use (&$imports) {
            // Keep all @import at-rules found for later
            $imports .= $matches[0];
            // Delete all @import at-rules
            return '';
        }, $css);

        // @namespace handling
        $css = preg_replace_callback($this->namespaceRegex, function ($matches) use (&$namespaces) {
            // Keep all @namespace at-rules found for later
            $namespaces .= $matches[0];
            // Delete all @namespace at-rules
            return '';
        }, $css);

        // Order critical at-rules:
        // 1. @charset first
        // 2. @imports below @charset
        // 3. @namespaces below @imports
        $css = $charset . $imports . $namespaces . $css;

        return $css;
    }

    /**
     * Converts hsl() & rgb() colors to HEX format.
     * @param $matches
     * @return string
     */
    private function shortenHslAndRgbToHexCallback($matches)
    {
        $type = $matches[1];
        $values = explode(',', $matches[2]);
        $terminator = $matches[3];

        if ($type === 'hsl') {
            $values = Utils::hslToRgb($values);
        }

        $hexColors = Utils::rgbToHex($values);

        // Restore space after rgb() or hsl() function in some cases such as:
        // background-image: linear-gradient(to bottom, rgb(210,180,140) 10%, rgb(255,0,0) 90%);
        if (!empty($terminator) && !preg_match('/[ ,);]/S', $terminator)) {
            $terminator = ' '. $terminator;
        }

        return '#'. implode('', $hexColors) . $terminator;
    }

    /**
     * Compresses HEX color values of the form #AABBCC to #ABC or short color name.
     * @param $matches
     * @return string
     */
    private function shortenHexColorsCallback($matches)
    {
        $hex = $matches[1];

        // Shorten suitable 6 chars HEX colors
        if (strlen($hex) === 6 && preg_match('/^([0-9a-f])\1([0-9a-f])\2([0-9a-f])\3$/Si', $hex, $m)) {
            $hex = $m[1] . $m[2] . $m[3];
        }

        // Lowercase
        $hex = '#'. strtolower($hex);

        // Replace Hex colors with shorter color names
        $color = array_key_exists($hex, $this->hexToNamedColorsMap) ? $this->hexToNamedColorsMap[$hex] : $hex;

        return $color . $matches[2];
    }

    /**
     * Shortens all named colors with a shorter HEX counterpart for a set of safe properties
     * e.g. white -> #fff
     * @param array $matches
     * @return string
     */
    private function shortenNamedColorsCallback($matches)
    {
        return $matches[1] . $this->namedToHexColorsMap[strtolower($matches[2])] . $matches[3];
    }

    /**
     * Makes a string lowercase
     * @param array $matches
     * @return string
     */
    private function strtolowerCallback($matches)
    {
        return strtolower($matches[0]);
    }
}
<?php
namespace LiteSpeed\Lib\CSS_MIN ;

defined( 'WPINC' ) || exit ;

class Colors
{
    public static function getHexToNamedMap()
    {
        // Hex colors longer than named counterpart
        return array(
            '#f0ffff' => 'azure',
            '#f5f5dc' => 'beige',
            '#ffe4c4' => 'bisque',
            '#a52a2a' => 'brown',
            '#ff7f50' => 'coral',
            '#ffd700' => 'gold',
            '#808080' => 'gray',
            '#008000' => 'green',
            '#4b0082' => 'indigo',
            '#fffff0' => 'ivory',
            '#f0e68c' => 'khaki',
            '#faf0e6' => 'linen',
            '#800000' => 'maroon',
            '#000080' => 'navy',
            '#fdf5e6' => 'oldlace',
            '#808000' => 'olive',
            '#ffa500' => 'orange',
            '#da70d6' => 'orchid',
            '#cd853f' => 'peru',
            '#ffc0cb' => 'pink',
            '#dda0dd' => 'plum',
            '#800080' => 'purple',
            '#f00'    => 'red',
            '#fa8072' => 'salmon',
            '#a0522d' => 'sienna',
            '#c0c0c0' => 'silver',
            '#fffafa' => 'snow',
            '#d2b48c' => 'tan',
            '#008080' => 'teal',
            '#ff6347' => 'tomato',
            '#ee82ee' => 'violet',
            '#f5deb3' => 'wheat'
        );
    }

    public static function getNamedToHexMap()
    {
        // Named colors longer than hex counterpart
        return array(
            'aliceblue' => '#f0f8ff',
            'antiquewhite' => '#faebd7',
            'aquamarine' => '#7fffd4',
            'black' => '#000',
            'blanchedalmond' => '#ffebcd',
            'blueviolet' => '#8a2be2',
            'burlywood' => '#deb887',
            'cadetblue' => '#5f9ea0',
            'chartreuse' => '#7fff00',
            'chocolate' => '#d2691e',
            'cornflowerblue' => '#6495ed',
            'cornsilk' => '#fff8dc',
            'darkblue' => '#00008b',
            'darkcyan' => '#008b8b',
            'darkgoldenrod' => '#b8860b',
            'darkgray' => '#a9a9a9',
            'darkgreen' => '#006400',
            'darkgrey' => '#a9a9a9',
            'darkkhaki' => '#bdb76b',
            'darkmagenta' => '#8b008b',
            'darkolivegreen' => '#556b2f',
            'darkorange' => '#ff8c00',
            'darkorchid' => '#9932cc',
            'darksalmon' => '#e9967a',
            'darkseagreen' => '#8fbc8f',
            'darkslateblue' => '#483d8b',
            'darkslategray' => '#2f4f4f',
            'darkslategrey' => '#2f4f4f',
            'darkturquoise' => '#00ced1',
            'darkviolet' => '#9400d3',
            'deeppink' => '#ff1493',
            'deepskyblue' => '#00bfff',
            'dodgerblue' => '#1e90ff',
            'firebrick' => '#b22222',
            'floralwhite' => '#fffaf0',
            'forestgreen' => '#228b22',
            'fuchsia' => '#f0f',
            'gainsboro' => '#dcdcdc',
            'ghostwhite' => '#f8f8ff',
            'goldenrod' => '#daa520',
            'greenyellow' => '#adff2f',
            'honeydew' => '#f0fff0',
            'indianred' => '#cd5c5c',
            'lavender' => '#e6e6fa',
            'lavenderblush' => '#fff0f5',
            'lawngreen' => '#7cfc00',
            'lemonchiffon' => '#fffacd',
            'lightblue' => '#add8e6',
            'lightcoral' => '#f08080',
            'lightcyan' => '#e0ffff',
            'lightgoldenrodyellow' => '#fafad2',
            'lightgray' => '#d3d3d3',
            'lightgreen' => '#90ee90',
            'lightgrey' => '#d3d3d3',
            'lightpink' => '#ffb6c1',
            'lightsalmon' => '#ffa07a',
            'lightseagreen' => '#20b2aa',
            'lightskyblue' => '#87cefa',
            'lightslategray' => '#778899',
            'lightslategrey' => '#778899',
            'lightsteelblue' => '#b0c4de',
            'lightyellow' => '#ffffe0',
            'limegreen' => '#32cd32',
            'mediumaquamarine' => '#66cdaa',
            'mediumblue' => '#0000cd',
            'mediumorchid' => '#ba55d3',
            'mediumpurple' => '#9370db',
            'mediumseagreen' => '#3cb371',
            'mediumslateblue' => '#7b68ee',
            'mediumspringgreen' => '#00fa9a',
            'mediumturquoise' => '#48d1cc',
            'mediumvioletred' => '#c71585',
            'midnightblue' => '#191970',
            'mintcream' => '#f5fffa',
            'mistyrose' => '#ffe4e1',
            'moccasin' => '#ffe4b5',
            'navajowhite' => '#ffdead',
            'olivedrab' => '#6b8e23',
            'orangered' => '#ff4500',
            'palegoldenrod' => '#eee8aa',
            'palegreen' => '#98fb98',
            'paleturquoise' => '#afeeee',
            'palevioletred' => '#db7093',
            'papayawhip' => '#ffefd5',
            'peachpuff' => '#ffdab9',
            'powderblue' => '#b0e0e6',
            'rebeccapurple' => '#663399',
            'rosybrown' => '#bc8f8f',
            'royalblue' => '#4169e1',
            'saddlebrown' => '#8b4513',
            'sandybrown' => '#f4a460',
            'seagreen' => '#2e8b57',
            'seashell' => '#fff5ee',
            'slateblue' => '#6a5acd',
            'slategray' => '#708090',
            'slategrey' => '#708090',
            'springgreen' => '#00ff7f',
            'steelblue' => '#4682b4',
            'turquoise' => '#40e0d0',
            'white' => '#fff',
            'whitesmoke' => '#f5f5f5',
            'yellow' => '#ff0',
            'yellowgreen' => '#9acd32'
        );
    }
}
<?php
/**
 * LiteSpeed PHP compatibility functions for lower PHP version
 *
 * @since      1.1.3
 * @package    LiteSpeed_Cache
 * @subpackage LiteSpeed_Cache/lib
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */

defined( 'WPINC' ) || exit ;


/**
 * http_build_url() compatibility
 *
 */
if ( ! function_exists('http_build_url') ) {
	if ( ! defined( 'HTTP_URL_REPLACE' ) ) 			define('HTTP_URL_REPLACE', 1);              // Replace every part of the first URL when there's one of the second URL
	if ( ! defined( 'HTTP_URL_JOIN_PATH' ) ) 		define('HTTP_URL_JOIN_PATH', 2);            // Join relative paths
	if ( ! defined( 'HTTP_URL_JOIN_QUERY' ) ) 		define('HTTP_URL_JOIN_QUERY', 4);           // Join query strings
	if ( ! defined( 'HTTP_URL_STRIP_USER' ) ) 		define('HTTP_URL_STRIP_USER', 8);           // Strip any user authentication information
	if ( ! defined( 'HTTP_URL_STRIP_PASS' ) ) 		define('HTTP_URL_STRIP_PASS', 16);          // Strip any password authentication information
	if ( ! defined( 'HTTP_URL_STRIP_AUTH' ) ) 		define('HTTP_URL_STRIP_AUTH', 32);          // Strip any authentication information
	if ( ! defined( 'HTTP_URL_STRIP_PORT' ) ) 		define('HTTP_URL_STRIP_PORT', 64);          // Strip explicit port numbers
	if ( ! defined( 'HTTP_URL_STRIP_PATH' ) ) 		define('HTTP_URL_STRIP_PATH', 128);         // Strip complete path
	if ( ! defined( 'HTTP_URL_STRIP_QUERY' ) ) 		define('HTTP_URL_STRIP_QUERY', 256);        // Strip query string
	if ( ! defined( 'HTTP_URL_STRIP_FRAGMENT' ) ) 	define('HTTP_URL_STRIP_FRAGMENT', 512);     // Strip any fragments (#identifier)
	if ( ! defined( 'HTTP_URL_STRIP_ALL' ) ) 		define('HTTP_URL_STRIP_ALL', 1024);         // Strip anything but scheme and host

	// Build an URL
	// The parts of the second URL will be merged into the first according to the flags argument.
	//
	// @param   mixed           (Part(s) of) an URL in form of a string or associative array like parse_url() returns
	// @param   mixed           Same as the first argument
	// @param   int             A bitmask of binary or'ed HTTP_URL constants (Optional)HTTP_URL_REPLACE is the default
	// @param   array           If set, it will be filled with the parts of the composed url like parse_url() would return
	function http_build_url($url, $parts = array(), $flags = HTTP_URL_REPLACE, &$new_url = false)
	{
		$keys = array('user','pass','port','path','query','fragment');

		// HTTP_URL_STRIP_ALL becomes all the HTTP_URL_STRIP_Xs
		if ( $flags & HTTP_URL_STRIP_ALL ) {
			$flags |= HTTP_URL_STRIP_USER;
			$flags |= HTTP_URL_STRIP_PASS;
			$flags |= HTTP_URL_STRIP_PORT;
			$flags |= HTTP_URL_STRIP_PATH;
			$flags |= HTTP_URL_STRIP_QUERY;
			$flags |= HTTP_URL_STRIP_FRAGMENT;
		}
		// HTTP_URL_STRIP_AUTH becomes HTTP_URL_STRIP_USER and HTTP_URL_STRIP_PASS
		else if ( $flags & HTTP_URL_STRIP_AUTH ) {
			$flags |= HTTP_URL_STRIP_USER;
			$flags |= HTTP_URL_STRIP_PASS;
		}

		// Parse the original URL
		// - Suggestion by Sayed Ahad Abbas
		//   In case you send a parse_url array as input
		$parse_url = !is_array($url) ? parse_url($url) : $url;

		// Scheme and Host are always replaced
		if ( isset($parts['scheme']) ) {
			$parse_url['scheme'] = $parts['scheme'];
		}
		if ( isset($parts['host']) ) {
			$parse_url['host'] = $parts['host'];
		}

		// (If applicable) Replace the original URL with it's new parts
		if ( $flags & HTTP_URL_REPLACE ) {
			foreach ($keys as $key) {
				if ( isset($parts[$key]) ) {
					$parse_url[$key] = $parts[$key];
				}
			}
		}
		else {
			// Join the original URL path with the new path
			if (isset($parts['path']) && ($flags & HTTP_URL_JOIN_PATH)) {
				if ( isset($parse_url['path']) ) {
					$parse_url['path'] = rtrim(str_replace(basename($parse_url['path']), '', $parse_url['path']), '/') . '/' . ltrim($parts['path'], '/');
				}
				else {
					$parse_url['path'] = $parts['path'];
				}
			}

			// Join the original query string with the new query string
			if ( isset($parts['query']) && ($flags & HTTP_URL_JOIN_QUERY) ) {
				if ( isset($parse_url['query']) ) {
					$parse_url['query'] .= '&' . $parts['query'];
				}
				else {
					$parse_url['query'] = $parts['query'];
				}
			}
		}

		// Strips all the applicable sections of the URL
		// Note: Scheme and Host are never stripped
		foreach ($keys as $key) {
			if ( $flags & (int)constant('HTTP_URL_STRIP_' . strtoupper($key)) ) {
				unset($parse_url[$key]);
			}
		}

		$new_url = $parse_url;

		return
			 (isset($parse_url['scheme']) ? $parse_url['scheme'] . '://' : '')
			.(isset($parse_url['user']) ? $parse_url['user'] . (isset($parse_url['pass']) ? ':' . $parse_url['pass'] : '') .'@' : '')
			.(isset($parse_url['host']) ? $parse_url['host'] : '')
			.(isset($parse_url['port']) ? ':' . $parse_url['port'] : '')
			.(isset($parse_url['path']) ? $parse_url['path'] : '')
			.(isset($parse_url['query']) ? '?' . $parse_url['query'] : '')
			.(isset($parse_url['fragment']) ? '#' . $parse_url['fragment'] : '')
		;
	}
}


if ( ! function_exists( 'array_key_first' ) ) {
	function array_key_first( array $arr ) {
		foreach( $arr as $k => $unused ) {
			return $k ;
		}
		return NULL ;
	}
}

if ( ! function_exists( 'array_column' ) ) {
	function array_column( $array, $column_name )
	{
		return array_map( function( $element ) use( $column_name ) { return $element[ $column_name ]; }, $array );
	}
}
<?php
namespace LiteSpeed\Lib;

/**
 * Update guest vary
 *
 * @since 4.1
 */
class Guest {
	const CONF_FILE = '.litespeed_conf.dat';
	const HASH 					= 'hash'; // Not set-able
	const O_CACHE_LOGIN_COOKIE 	= 'cache-login_cookie';
	const O_DEBUG 				= 'debug';
	const O_DEBUG_IPS 			= 'debug-ips';
	const O_UTIL_NO_HTTPS_VARY 		= 'util-no_https_vary';
	const O_GUEST_UAS = 'guest_uas';
	const O_GUEST_IPS = 'guest_ips';

	private static $_ip;
	private static $_vary_name = '_lscache_vary'; // this default vary cookie is used for logged in status check
	private $_conf = false;

	/**
	 * Construtor
	 *
	 * @since 4.1
	 */
	public function __construct() {
		! defined( 'LSCWP_CONTENT_FOLDER' ) && define( 'LSCWP_CONTENT_FOLDER', dirname( dirname( dirname( __DIR__ ) ) ) );
		// Load config
		$this->_conf = file_get_contents( LSCWP_CONTENT_FOLDER . '/' . self::CONF_FILE );
		if ( $this->_conf ) {
			$this->_conf = json_decode( $this->_conf, true );
		}

		if ( ! empty( $this->_conf[ self::O_CACHE_LOGIN_COOKIE ] ) ) {
			self::$_vary_name = $this->_conf[ self::O_CACHE_LOGIN_COOKIE ];
		}
	}

	/**
	 * Update Guest vary
	 *
	 * @since  4.0
	 */
	public function update_guest_vary() {
		// This process must not be cached
		header( 'X-LiteSpeed-Cache-Control: no-cache' );

		if ( $this->always_guest() ) {
			echo '[]';
			exit;
		}

		// If contains vary already, don't reload to avoid infinite loop when parent page having browser cache
		if ( $this->_conf && self::has_vary() ) {
			echo '[]';
			exit;
		}

		// Send vary cookie
		$vary = 'guest_mode:1';
		if ( $this->_conf && empty( $this->_conf[ self::O_DEBUG ] ) ) {
			$vary = md5( $this->_conf[ self::HASH ] . $vary );
		}

		$expire = time() + 2 * 86400;
		$is_ssl = ! empty( $this->_conf[ self::O_UTIL_NO_HTTPS_VARY ] ) ? false : $this->is_ssl();
		setcookie( self::$_vary_name, $vary, $expire, '/', false, $is_ssl, true );

		// return json
		echo json_encode( array( 'reload' => 'yes' ) );
		exit;
	}

	/**
	 * WP's is_ssl() func
	 *
	 * @since 4.1
	 */
	private function is_ssl() {
		if ( isset( $_SERVER['HTTPS'] ) ) {
			if ( 'on' === strtolower( $_SERVER['HTTPS'] ) ) {
				return true;
			}

			if ( '1' == $_SERVER['HTTPS'] ) {
				return true;
			}
		} elseif ( isset( $_SERVER['SERVER_PORT'] ) && ( '443' == $_SERVER['SERVER_PORT'] ) ) {
			return true;
		}
		return false;
	}

	/**
	 * Check if default vary has a value
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function has_vary() {
		if ( empty( $_COOKIE[ self::$_vary_name ] ) ) {
			return false;
		}
		return $_COOKIE[ self::$_vary_name ];
	}

	/**
	 * Detect if is a guest visitor or not
	 *
	 * @since  4.0
	 */
	public function always_guest() {
		if ( empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) ) {
			return false;
		}

		if ( $this->_conf[ self::O_GUEST_UAS ] ) {
			$quoted_uas = array();
			foreach ( $this->_conf[ self::O_GUEST_UAS ] as $v ) {
				$quoted_uas[] = preg_quote( $v, '#' );
			}
			$match = preg_match( '#' . implode( '|', $quoted_uas ) . '#i', $_SERVER[ 'HTTP_USER_AGENT' ] );
			if ( $match ) {
				return true;
			}
		}

		if ( $this->ip_access( $this->_conf[ self::O_GUEST_IPS ] ) ) {
			return true;
		}

		return false;
	}

	/**
	 * Check if the ip is in the range
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function ip_access( $ip_list ) {
		if ( ! $ip_list ) {
			return false;
		}
		if ( ! isset( self::$_ip ) ) {
			self::$_ip = self::get_ip();
		}
		// $uip = explode('.', $_ip);
		// if(empty($uip) || count($uip) != 4) Return false;
		// foreach($ip_list as $key => $ip) $ip_list[$key] = explode('.', trim($ip));
		// foreach($ip_list as $key => $ip) {
		// 	if(count($ip) != 4) continue;
		// 	for($i = 0; $i <= 3; $i++) if($ip[$i] == '*') $ip_list[$key][$i] = $uip[$i];
		// }
		return in_array( self::$_ip, $ip_list );
	}

	/**
	 * Get client ip
	 *
	 * @since 1.1.0
	 * @since  1.6.5 changed to public
	 * @access public
	 * @return string
	 */
	public static function get_ip() {
		$_ip = '';
		if ( function_exists( 'apache_request_headers' ) ) {
			$apache_headers = apache_request_headers();
			$_ip = ! empty( $apache_headers['True-Client-IP'] ) ? $apache_headers['True-Client-IP'] : false;
			if ( ! $_ip ) {
				$_ip = ! empty( $apache_headers['X-Forwarded-For'] ) ? $apache_headers['X-Forwarded-For'] : false;
				$_ip = explode( ',', $_ip );
				$_ip = $_ip[ 0 ];
			}

		}

		if ( ! $_ip ) {
			$_ip = ! empty( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : false;
		}
		return $_ip;
	}


}<?php
/**
 * Compress HTML
 *
 * This is a heavy regex-based removal of whitespace, unnecessary comments and
 * tokens. IE conditional comments are preserved. There are also options to have
 * STYLE and SCRIPT blocks compressed by callback functions.
 *
 * A test suite is available.
 *
 * @package Minify
 * @author Stephen Clay <steve@mrclay.org>
 */
namespace LiteSpeed\Lib ;

defined( 'WPINC' ) || exit ;

class HTML_MIN
{
	/**
	 * @var boolean
	 */
	protected $_jsCleanComments = true;

	/**
	 * "Minify" an HTML page
	 *
	 * @param string $html
	 *
	 * @param array $options
	 *
	 * 'cssMinifier' : (optional) callback function to process content of STYLE
	 * elements.
	 *
	 * 'jsMinifier' : (optional) callback function to process content of SCRIPT
	 * elements. Note: the type attribute is ignored.
	 *
	 * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
	 * unset, minify will sniff for an XHTML doctype.
	 *
	 * @return string
	 */
	public static function minify($html, $options = array())
	{
		$min = new self($html, $options);

		return $min->process();
	}

	/**
	 * Create a minifier object
	 *
	 * @param string $html
	 *
	 * @param array $options
	 *
	 * 'cssMinifier' : (optional) callback function to process content of STYLE
	 * elements.
	 *
	 * 'jsMinifier' : (optional) callback function to process content of SCRIPT
	 * elements. Note: the type attribute is ignored.
	 *
	 * 'jsCleanComments' : (optional) whether to remove HTML comments beginning and end of script block
	 *
	 * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
	 * unset, minify will sniff for an XHTML doctype.
	 */
	public function __construct($html, $options = array())
	{
		$this->_html = str_replace("\r\n", "\n", trim($html));
		if (isset($options['xhtml'])) {
			$this->_isXhtml = (bool)$options['xhtml'];
		}
		if (isset($options['cssMinifier'])) {
			$this->_cssMinifier = $options['cssMinifier'];
		}
		if (isset($options['jsMinifier'])) {
			$this->_jsMinifier = $options['jsMinifier'];
		}
		if (isset($options['jsCleanComments'])) {
			$this->_jsCleanComments = (bool)$options['jsCleanComments'];
		}
	}

	/**
	 * Minify the markeup given in the constructor
	 *
	 * @return string
	 */
	public function process()
	{
		if ($this->_isXhtml === null) {
			$this->_isXhtml = (false !== strpos($this->_html, '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML'));
		}

		$this->_replacementHash = 'MINIFYHTML' . md5($_SERVER['REQUEST_TIME']);
		$this->_placeholders = array();

		// replace SCRIPTs (and minify) with placeholders
		$this->_html = preg_replace_callback(
			'/(\\s*)<script(\\b[^>]*?>)([\\s\\S]*?)<\\/script>(\\s*)/i'
			,array($this, '_removeScriptCB')
			,$this->_html);

		// replace STYLEs (and minify) with placeholders
		$this->_html = preg_replace_callback(
			'/\\s*<style(\\b[^>]*>)([\\s\\S]*?)<\\/style>\\s*/i'
			,array($this, '_removeStyleCB')
			,$this->_html);

		// remove HTML comments (not containing IE conditional comments).
		$this->_html = preg_replace_callback(
			'/<!--([\\s\\S]*?)-->/'
			,array($this, '_commentCB')
			,$this->_html);

		// replace PREs with placeholders
		$this->_html = preg_replace_callback('/\\s*<pre(\\b[^>]*?>[\\s\\S]*?<\\/pre>)\\s*/i'
			,array($this, '_removePreCB')
			,$this->_html);

		// replace TEXTAREAs with placeholders
		$this->_html = preg_replace_callback(
			'/\\s*<textarea(\\b[^>]*?>[\\s\\S]*?<\\/textarea>)\\s*/i'
			,array($this, '_removeTextareaCB')
			,$this->_html);

		// trim each line.
		// @todo take into account attribute values that span multiple lines.
		$this->_html = preg_replace('/^\\s+|\\s+$/m', '', $this->_html);

		// remove ws around block/undisplayed elements
		$this->_html = preg_replace('/\\s+(<\\/?(?:area|article|aside|base(?:font)?|blockquote|body'
			.'|canvas|caption|center|col(?:group)?|dd|dir|div|dl|dt|fieldset|figcaption|figure|footer|form'
			.'|frame(?:set)?|h[1-6]|head|header|hgroup|hr|html|legend|li|link|main|map|menu|meta|nav'
			.'|ol|opt(?:group|ion)|output|p|param|section|t(?:able|body|head|d|h||r|foot|itle)'
			.'|ul|video)\\b[^>]*>)/i', '$1', $this->_html);

		// remove ws outside of all elements
		$this->_html = preg_replace(
			'/>(\\s(?:\\s*))?([^<]+)(\\s(?:\s*))?</'
			,'>$1$2$3<'
			,$this->_html);

		// use newlines before 1st attribute in open tags (to limit line lengths)
		// $this->_html = preg_replace('/(<[a-z\\-]+)\\s+([^>]+>)/i', "$1\n$2", $this->_html);

		// fill placeholders
		$this->_html = str_replace(
			array_keys($this->_placeholders)
			,array_values($this->_placeholders)
			,$this->_html
		);
		// issue 229: multi-pass to catch scripts that didn't get replaced in textareas
		$this->_html = str_replace(
			array_keys($this->_placeholders)
			,array_values($this->_placeholders)
			,$this->_html
		);

		return $this->_html;
	}

	protected function _commentCB($m)
	{
		return (0 === strpos($m[1], '[') || false !== strpos($m[1], '<!['))
			? $m[0]
			: '';
	}

	protected function _reservePlace($content)
	{
		$placeholder = '%' . $this->_replacementHash . count($this->_placeholders) . '%';
		$this->_placeholders[$placeholder] = $content;

		return $placeholder;
	}

	protected $_isXhtml = null;
	protected $_replacementHash = null;
	protected $_placeholders = array();
	protected $_cssMinifier = null;
	protected $_jsMinifier = null;

	protected function _removePreCB($m)
	{
		return $this->_reservePlace("<pre{$m[1]}");
	}

	protected function _removeTextareaCB($m)
	{
		return $this->_reservePlace("<textarea{$m[1]}");
	}

	protected function _removeStyleCB($m)
	{
		$openStyle = "<style{$m[1]}";
		$css = $m[2];
		// remove HTML comments
		$css = preg_replace('/(?:^\\s*<!--|-->\\s*$)/', '', $css);

		// remove CDATA section markers
		$css = $this->_removeCdata($css);

		// minify
		$minifier = $this->_cssMinifier
			? $this->_cssMinifier
			: 'trim';
		$css = call_user_func($minifier, $css);

		return $this->_reservePlace($this->_needsCdata($css)
			? "{$openStyle}/*<![CDATA[*/{$css}/*]]>*/</style>"
			: "{$openStyle}{$css}</style>"
		);
	}

	protected function _removeScriptCB($m)
	{
		$openScript = "<script{$m[2]}";
		$js = $m[3];

		// whitespace surrounding? preserve at least one space
		$ws1 = ($m[1] === '') ? '' : ' ';
		$ws2 = ($m[4] === '') ? '' : ' ';

		// remove HTML comments (and ending "//" if present)
		if ($this->_jsCleanComments) {
			$js = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $js);
		}

		// remove CDATA section markers
		$js = $this->_removeCdata($js);

		// minify
		/**
		 * Added 2nd param by LiteSpeed
		 *
		 * @since  2.2.3
		 */
		if ( $this->_jsMinifier ) {
			$js = call_user_func( $this->_jsMinifier, $js, trim( $m[ 2 ] ) ) ;
		}
		else {
			$js = trim( $js ) ;
		}

		return $this->_reservePlace($this->_needsCdata($js)
			? "{$ws1}{$openScript}/*<![CDATA[*/{$js}/*]]>*/</script>{$ws2}"
			: "{$ws1}{$openScript}{$js}</script>{$ws2}"
		);
	}

	protected function _removeCdata($str)
	{
		return (false !== strpos($str, '<![CDATA['))
			? str_replace(array('<![CDATA[', ']]>'), '', $str)
			: $str;
	}

	protected function _needsCdata($str)
	{
		return ($this->_isXhtml && preg_match('/(?:[<&]|\\-\\-|\\]\\]>)/', $str));
	}
}
var litespeed_vary = document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/, "$1");
if ( ! litespeed_vary ) {
	// Note: as the vary may be changed in Login Cookie option, even the visitor doesn't have this cookie, it doesn't mean the visitor doesn't have the vary, so still need PHP side to decide if need to set vary or not.
	fetch( 'litespeed_url', {
		method: 'POST',
		cache: 'no-cache',
		redirect: 'follow',
	} ).then( response => response.json() ).then( data => {
		console.log(data);
		if ( data.hasOwnProperty( 'reload' ) && data.reload == 'yes' ) {
			// Save doc.ref for organic traffic usage
			sessionStorage.setItem( 'litespeed_docref', document.referrer );

			window.location.reload( true );
		}
	} );
}/**
 * CDN module
 * @author Hai Zheng
 */
class CDNMapping extends React.Component {
	constructor( props ) {
		super( props );
		this.state = {
			list: props.list
		};

		this.onChange = this.onChange.bind( this );
		this.delRow = this.delRow.bind( this );
		this.addNew = this.addNew.bind( this );
	}

	onChange( e, index ) {
		const target = e.currentTarget;
		const value = target.dataset.hasOwnProperty('value') ? Boolean(target.dataset.value*1) : target.value;
		const list = this.state.list;
		list[ index ][ target.dataset.type ] = value;

		this.setState( {
		  list: list
		} );
	}

	delRow( index ) {
		const data = this.state.list;
		data.splice( index, 1 );
		this.setState( { list: data } );
	}

	addNew() {
		const list = this.state.list;
		list.push( { url: '' } );
		this.setState( { list: list } );
	}

	render() {
		return (
			<React.Fragment>
			{ this.state.list.map( (item, i) => (
				<CDNMappingBlock item={item} key={i} index={i} onChange={this.onChange} delRow={this.delRow} />
			) ) }

				<p>
					<button type="button" className="button button-link litespeed-form-action litespeed-link-with-icon" onClick={this.addNew}>
						<span className="dashicons dashicons-plus-alt"></span>{litespeed_data[ 'lang' ][ 'add_cdn_mapping_row' ]}
					</button>
				</p>
			</React.Fragment>
		);
	}
}

// { url: '', inc_img: true, inc_css: false, inc_js: false, filetype: [ '.aac', '.eot', ... ] }
class CDNMappingBlock extends React.Component {
	constructor( props ) {
		super( props );

		this.onChange = this.onChange.bind( this );
		this.delRow = this.delRow.bind( this );
	}

	onChange( e ) {
		this.props.onChange( e, this.props.index );
	}

	delRow() {
		this.props.delRow( this.props.index );
	}

	render() {
		const name_prefix = litespeed_data[ 'ids' ][ 'cdn_mapping' ];

		const item = this.props.item;

		const filetype = item.filetype ? Array.isArray(item.filetype) ? item.filetype.join("\n") : item.filetype : '';
		return (
			<div className="litespeed-block">
				<div className='litespeed-cdn-mapping-col1'>
					<label className="litespeed-form-label">{ litespeed_data[ 'lang' ][ 'cdn_mapping_url' ] }</label>
					<input type="text" name={ name_prefix + '[url][]' } className="regular-text litespeed-input-long" value={item.url?item.url:''} data-type="url" onChange={this.onChange} />

					<div className="litespeed-desc">
						<span dangerouslySetInnerHTML={{ __html: litespeed_data[ 'lang' ][ 'cdn_mapping_url_desc' ] }} />
					</div>
				</div>

				<div className="litespeed-col-auto litespeed-cdn-mapping-col2">
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">
							{ litespeed_data[ 'lang' ][ 'cdn_mapping_inc_img' ] }
						</div>
						<div className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_img?'primary':'default litespeed-toggleoff'}`} data-type="inc_img" data-value={item.inc_img?0:1} onClick={this.onChange}>
							<input name={ name_prefix + '[inc_img][]' } type='hidden' value={item.inc_img?1:0} />
							<div className='litespeed-toggle-group'>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>{ litespeed_data[ 'lang' ][ 'on' ] }</label>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>{ litespeed_data[ 'lang' ][ 'off' ] }</label>
								<span className='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
							</div>
						</div>
					</div>
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">
							{ litespeed_data[ 'lang' ][ 'cdn_mapping_inc_css' ] }
						</div>
						<div className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_css?'primary':'default litespeed-toggleoff'}`} data-type="inc_css" data-value={item.inc_css?0:1} onClick={this.onChange}>
							<input name={ name_prefix + '[inc_css][]' } type='hidden' value={item.inc_css?1:0} />
							<div className='litespeed-toggle-group'>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>{ litespeed_data[ 'lang' ][ 'on' ] }</label>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>{ litespeed_data[ 'lang' ][ 'off' ] }</label>
								<span className='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
							</div>
						</div>
					</div>
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">
							{ litespeed_data[ 'lang' ][ 'cdn_mapping_inc_js' ] }
						</div>
						<div className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_js?'primary':'default litespeed-toggleoff'}`} data-type="inc_js" data-value={item.inc_js?0:1} onClick={this.onChange}>
							<input name={ name_prefix + '[inc_js][]' } type='hidden' value={item.inc_js?1:0} />
							<div className='litespeed-toggle-group'>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>{ litespeed_data[ 'lang' ][ 'on' ] }</label>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>{ litespeed_data[ 'lang' ][ 'off' ] }</label>
								<span className='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
							</div>
						</div>
					</div>
				</div>

				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">
						{ litespeed_data[ 'lang' ][ 'cdn_mapping_filetype' ] }
					</label>
					<textarea name={ name_prefix + '[filetype][]' } rows={filetype.split("\n").length+2} cols='18' value={ filetype } data-type="filetype" onChange={this.onChange} />
				</div>

				<div className="litespeed-col-auto">
					<button type="button" className="button button-link litespeed-collection-button litespeed-danger" onClick={this.delRow}>
						<span className="dashicons dashicons-dismiss"></span>
						<span className="screen-reader-text">{ litespeed_data[ 'lang' ][ 'cdn_mapping_remove' ] }</span>
					</button>
				</div>
			</div>
		);
	}
}var litespeed_vary=document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/,"$1");litespeed_vary||fetch("litespeed_url",{method:"POST",cache:"no-cache",redirect:"follow"}).then(e=>e.json()).then(e=>{console.log(e),e.hasOwnProperty("reload")&&"yes"==e.reload&&(sessionStorage.setItem("litespeed_docref",document.referrer),window.location.reload(!0))});var litespeed_docref=sessionStorage.getItem("litespeed_docref");litespeed_docref&&(Object.defineProperty(document,"referrer",{get:function(){return litespeed_docref}}),sessionStorage.removeItem("litespeed_docref"));var litespeed_docref = sessionStorage.getItem( 'litespeed_docref' );
if ( litespeed_docref ) {
	Object.defineProperty(document, "referrer", {get : function(){ return litespeed_docref; }});
	sessionStorage.removeItem( 'litespeed_docref' );
}/**
 * Lazyload init js
 *
 * @author LiteSpeed
 * @since 1.4
 *
 */

(function( window, document ){
	'use strict' ;

	var instance;
	var update_lazyload;

	var litespeed_finish_callback = function(){
		document.body.classList.add( 'litespeed_lazyloaded' );
	}

	var init = function(){
		console.log( '[LiteSpeed] Start Lazy Load Images' )
		instance = new LazyLoad( { elements_selector: "[data-lazyloaded]", callback_finish: litespeed_finish_callback } );

		update_lazyload = function(){
			instance.update() ;
		};

		if ( window.MutationObserver ) {
			new MutationObserver( update_lazyload ).observe( document.documentElement, { childList: true, subtree: true, attributes: true } ) ;
		}
	};

	window.addEventListener ? window.addEventListener( "load", init, false ) : window.attachEvent( "onload", init ) ;

})( window, document ) ;/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.o=b||a;this.c=this.o.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&("style"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}
function w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function y(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
function ea(a){return a.o.location.hostname||a.a.location.hostname}function z(a,b,c){function d(){m&&e&&f&&(m(g),m=null)}b=t(a,"link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,m=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);u(a,"head",b)}
function A(a,b,c,d){var e=a.c.getElementsByTagName("head")[0];if(e){var f=t(a,"script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function B(){this.a=0;this.c=null}function C(a){a.a++;return function(){a.a--;D(a)}}function E(a,b){a.c=b;D(a)}function D(a){0==a.a&&a.c&&(a.c(),a.c=null)};function F(a){this.a=a||"-"}F.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.a)};function G(a,b){this.c=a;this.f=4;this.a="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return H(a)+" "+(a.f+"00")+" 300px "+I(a.c)}function I(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function J(a){return a.a+a.f}function H(a){var b="normal";"o"===a.a?b="oblique":"i"===a.a&&(b="italic");return b}
function ga(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.o.document.documentElement;this.h=b;this.a=new F("-");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c("wf","loading")]);K(a,"loading")}function L(a){if(a.g){var b=y(a.f,a.a.c("wf","active")),c=[],d=[a.a.c("wf","loading")];b||c.push(a.a.c("wf","inactive"));w(a.f,c,d)}K(a,"inactive")}function K(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,J(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function M(a,b){this.c=a;this.f=b;this.a=t(this.c,"span",{"aria-hidden":"true"},this.f)}function N(a){u(a.c,"body",a.a)}function O(a){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+I(a.c)+";"+("font-style:"+H(a)+";font-weight:"+(a.f+"00")+";")};function P(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}P.prototype.start=function(){var a=this.c.o.document,b=this,c=q(),d=new Promise(function(d,e){function f(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.s);this.h=new M(this.c,this.s);this.j=new M(this.c,this.s);this.m=new M(this.c,this.s);a=new G(this.a.c+",serif",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+",sans-serif",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G("serif",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G("sans-serif",J(this.a));a=
O(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:"serif",C:"sans-serif"},S=null;function T(){if(null===S){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.m.a.offsetWidth;this.A=q();U(this)};
function la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,J(a).toString(),"active")],[b.a.c("wf",a.c,J(a).toString(),"loading"),b.a.c("wf",a.c,J(a).toString(),"inactive")]);K(b,"fontactive",a);this.m=!0;na(this)};
W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,J(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,J(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,J(a).toString(),"inactive"));w(b.f,d,e)}K(b,"fontinactive",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),K(a,"active")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};
function qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h<c.length;h++){var k=c[h],n=m[k.c],r=b.a,x=k;r.g&&w(r.f,[r.a.c("wf",x.c,J(x).toString(),"loading")]);K(r,"fontloading",x);r=null;if(null===X)if(window.FontFace){var x=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent),xa=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);
X=x?42<parseInt(x[1],10):xa?!1:!0}else X=!1;X?r=new P(p(b.g,b),p(b.h,b),b.c,k,b.s,n):r=new Q(p(b.g,b),p(b.h,b),b.c,k,b.s,a,n);l.push(r)}for(h=0;h<l.length;h++)l[h].start()}},0)}function pa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){qa(a,f,b,d,c)})};function ra(a,b){this.c=a;this.a=b}
ra.prototype.load=function(a){function b(){if(f["__mti_fntLst"+d]){var c=f["__mti_fntLst"+d](),e=[],h;if(c)for(var l=0;l<c.length;l++){var k=c[l].fontfamily;void 0!=c[l].fontStyle&&void 0!=c[l].fontWeight?(h=c[l].fontStyle+c[l].fontWeight,e.push(new G(k,h))):e.push(new G(k))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.o;A(this.c,(c.a.api||"https://fast.fonts.net/jsapi")+"/"+d+".js"+(e?"?v="+e:""),function(e){e?a([]):(f["__MonotypeConfiguration__"+
d]=function(){return c.a},b())}).id="__MonotypeAPIScript__"+d}else a([])};function sa(a,b){this.c=a;this.a=b}sa.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new B;b=0;for(c=d.length;b<c;b++)z(this.c,d[b],C(g));var m=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),l=0;l<h.length;l+=1)m.push(new G(d[0],h[l]));else m.push(new G(d[0]));E(g,function(){a(m,f)})};function ta(a,b){a?this.c=a:this.c=ua;this.a=[];this.f=[];this.g=b||""}var ua="https://fonts.googleapis.com/css";function va(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.f.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.a.push(e.join(f))}}
function wa(a){if(0==a.a.length)throw Error("No fonts to load!");if(-1!=a.c.indexOf("kit="))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,"+"));b=a.c+"?family="+c.join("%7C");0<a.f.length&&(b+="&subset="+a.f.join(","));0<a.g.length&&(b+="&text="+encodeURIComponent(a.g));return b};function ya(a){this.f=a;this.a=[];this.c={}}
var za={latin:"BESbswy","latin-ext":"\u00e7\u00f6\u00fc\u011f\u015f",cyrillic:"\u0439\u044f\u0416",greek:"\u03b1\u03b2\u03a3",khmer:"\u1780\u1781\u1782",Hanuman:"\u1780\u1781\u1782"},Aa={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Ba={i:"i",italic:"i",n:"n",normal:"n"},
Ca=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
function Da(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(":"),e=d[0].replace(/\+/g," "),f=["n4"];if(2<=d.length){var g;var m=d[1];g=[];if(m)for(var m=m.split(","),h=m.length,l=0;l<h;l++){var k;k=m[l];if(k.match(/^[\w-]+$/)){var n=Ca.exec(k.toLowerCase());if(null==n)k="";else{k=n[2];k=null==k||""==k?"n":Ba[k];n=n[1];if(null==n||""==n)n="4";else var r=Aa[n],n=r?r:isNaN(n)?"4":n.substr(0,1);k=[k,n].join("")}}else k="";k&&g.push(k)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(","):
g,0<d.length&&(d=za[d[0]])&&(a.c[e]=d))}a.c[e]||(d=za[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new G(e,f[d]))}};function Ea(a,b){this.c=a;this.a=b}var Fa={Arimo:!0,Cousine:!0,Tinos:!0};Ea.prototype.load=function(a){var b=new B,c=this.c,d=new ta(this.a.api,this.a.text),e=this.a.families;va(d,e);var f=new ya(e);Da(f);z(c,wa(d),C(b));E(b,function(){a(f.a,f.c,Fa)})};function Ga(a,b){this.c=a;this.a=b}Ga.prototype.load=function(a){var b=this.a.id,c=this.c.o;b?A(this.c,(this.a.api||"https://use.typekit.net")+"/"+b+".js",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],m=b[f+1],h=0;h<m.length;h++)e.push(new G(g,m[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(l){}a(e)}},2E3):a([])};function Ha(a,b){this.c=a;this.f=b;this.a=[]}Ha.prototype.load=function(a){var b=this.f.id,c=this.c.o,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,m=c.fonts.length;g<m;++g){var h=c.fonts[g];d.a.push(new G(h.name,ga("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.a)},A(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+ea(this.c)+"/"+b+".js",function(b){b&&a([])})):a([])};var Y=new oa(window);Y.a.c.custom=function(a,b){return new sa(b,a)};Y.a.c.fontdeck=function(a,b){return new Ha(b,a)};Y.a.c.monotype=function(a,b){return new ra(b,a)};Y.a.c.typekit=function(a,b){return new Ga(b,a)};Y.a.c.google=function(a,b){return new Ea(b,a)};var Z={load:p(Y.load,Y)};"function"===typeof define&&define.amd?define(function(){return Z}):"undefined"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());
/*
* iziModal | v1.6.0
* http://izimodal.marcelodolce.com
* by Marcelo Dolce.
*/
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=function(e,i){return void 0===i&&(i="undefined"!=typeof window?require("jquery"):require("jquery")(e)),t(i),i}:t(jQuery)}(function(t){function e(){var t,e=document.createElement("fakeelement"),i={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in i)if(void 0!==e.style[t])return i[t]}function i(t){return 9===t?navigator.appVersion.indexOf("MSIE 9.")!==-1:(userAgent=navigator.userAgent,userAgent.indexOf("MSIE ")>-1||userAgent.indexOf("Trident/")>-1)}function n(t){var e=/%|px|em|cm|vh|vw/;return parseInt(String(t).split(e)[0])}function o(e){var i=e.replace(/^.*#/,""),n=t(e);n.attr("id",i+"-tmp"),window.location.hash=e,n.attr("id",i)}var s=t(window),a=t(document),r="iziModal",l={CLOSING:"closing",CLOSED:"closed",OPENING:"opening",OPENED:"opened",DESTROYED:"destroyed"},d=e(),h=!!/Mobi/.test(navigator.userAgent);window.$iziModal={},window.$iziModal.autoOpen=0,window.$iziModal.history=!1;var c=function(t,e){this.init(t,e)};return c.prototype={constructor:c,init:function(e,i){var n=this;this.$element=t(e),void 0!==this.$element[0].id&&""!==this.$element[0].id?this.id=this.$element[0].id:(this.id=r+Math.floor(1e7*Math.random()+1),this.$element.attr("id",this.id)),this.classes=void 0!==this.$element.attr("class")?this.$element.attr("class"):"",this.content=this.$element.html(),this.state=l.CLOSED,this.options=i,this.width=0,this.timer=null,this.timerTimeout=null,this.progressBar=null,this.isPaused=!1,this.isFullscreen=!1,this.headerHeight=0,this.modalHeight=0,this.$overlay=t('<div class="'+r+'-overlay" style="background-color:'+i.overlayColor+'"></div>'),this.$navigate=t('<div class="'+r+'-navigate"><div class="'+r+'-navigate-caption">Use</div><button class="'+r+'-navigate-prev"></button><button class="'+r+'-navigate-next"></button></div>'),this.group={name:this.$element.attr("data-"+r+"-group"),index:null,ids:[]},this.$element.attr("aria-hidden","true"),this.$element.attr("aria-labelledby",this.id),this.$element.attr("role","dialog"),this.$element.hasClass("iziModal")||this.$element.addClass("iziModal"),void 0===this.group.name&&""!==i.group&&(this.group.name=i.group,this.$element.attr("data-"+r+"-group",i.group)),this.options.loop===!0&&this.$element.attr("data-"+r+"-loop",!0),t.each(this.options,function(t,e){var o=n.$element.attr("data-"+r+"-"+t);try{"undefined"!=typeof o&&(""===o||"true"==o?i[t]=!0:"false"==o?i[t]=!1:"function"==typeof e?i[t]=new Function(o):i[t]=o)}catch(s){}}),i.appendTo!==!1&&this.$element.appendTo(i.appendTo),i.iframe===!0?(this.$element.html('<div class="'+r+'-wrap"><div class="'+r+'-content"><iframe class="'+r+'-iframe"></iframe>'+this.content+"</div></div>"),null!==i.iframeHeight&&this.$element.find("."+r+"-iframe").css("height",i.iframeHeight)):this.$element.html('<div class="'+r+'-wrap"><div class="'+r+'-content">'+this.content+"</div></div>"),null!==this.options.background&&this.$element.css("background",this.options.background),this.$wrap=this.$element.find("."+r+"-wrap"),null===i.zindex||isNaN(parseInt(i.zindex))||(this.$element.css("z-index",i.zindex),this.$navigate.css("z-index",i.zindex-1),this.$overlay.css("z-index",i.zindex-2)),""!==i.radius&&this.$element.css("border-radius",i.radius),""!==i.padding&&this.$element.find("."+r+"-content").css("padding",i.padding),""!==i.theme&&("light"===i.theme?this.$element.addClass(r+"-light"):this.$element.addClass(i.theme)),i.rtl===!0&&this.$element.addClass(r+"-rtl"),i.openFullscreen===!0&&(this.isFullscreen=!0,this.$element.addClass("isFullscreen")),this.createHeader(),this.recalcWidth(),this.recalcVerticalPos(),!n.options.afterRender||"function"!=typeof n.options.afterRender&&"object"!=typeof n.options.afterRender||n.options.afterRender(n)},createHeader:function(){this.$header=t('<div class="'+r+'-header"><h2 class="'+r+'-header-title">'+this.options.title+'</h2><p class="'+r+'-header-subtitle">'+this.options.subtitle+'</p><div class="'+r+'-header-buttons"></div></div>'),this.options.closeButton===!0&&this.$header.find("."+r+"-header-buttons").append('<a href="javascript:void(0)" class="'+r+"-button "+r+'-button-close" data-'+r+"-close></a>"),this.options.fullscreen===!0&&this.$header.find("."+r+"-header-buttons").append('<a href="javascript:void(0)" class="'+r+"-button "+r+'-button-fullscreen" data-'+r+"-fullscreen></a>"),this.options.timeoutProgressbar===!0&&this.$header.prepend('<div class="'+r+'-progressbar"><div style="background-color:'+this.options.timeoutProgressbarColor+'"></div></div>'),""===this.options.subtitle&&this.$header.addClass(r+"-noSubtitle"),""!==this.options.title&&(null!==this.options.headerColor&&(this.options.borderBottom===!0&&this.$element.css("border-bottom","3px solid "+this.options.headerColor),this.$header.css("background",this.options.headerColor)),null===this.options.icon&&null===this.options.iconText||(this.$header.prepend('<i class="'+r+'-header-icon"></i>'),null!==this.options.icon&&this.$header.find("."+r+"-header-icon").addClass(this.options.icon).css("color",this.options.iconColor),null!==this.options.iconText&&this.$header.find("."+r+"-header-icon").html(this.options.iconText)),this.$element.css("overflow","hidden").prepend(this.$header))},setGroup:function(e){var i=this,n=this.group.name||e;if(this.group.ids=[],void 0!==e&&e!==this.group.name&&(n=e,this.group.name=n,this.$element.attr("data-"+r+"-group",n)),void 0!==n&&""!==n){var o=0;t.each(t("."+r+"[data-"+r+"-group="+n+"]"),function(e,n){i.group.ids.push(t(this)[0].id),i.id==t(this)[0].id&&(i.group.index=o),o++})}},toggle:function(){this.state==l.OPENED&&this.close(),this.state==l.CLOSED&&this.open()},startProgress:function(t){var e=this;this.isPaused=!1,clearTimeout(this.timerTimeout),this.options.timeoutProgressbar===!0?(this.progressBar={hideEta:null,maxHideTime:null,currentTime:(new Date).getTime(),el:this.$element.find("."+r+"-progressbar > div"),updateProgress:function(){if(!e.isPaused){e.progressBar.currentTime=e.progressBar.currentTime+10;var t=(e.progressBar.hideEta-e.progressBar.currentTime)/e.progressBar.maxHideTime*100;e.progressBar.el.width(t+"%"),t<0&&e.close()}}},t>0&&(this.progressBar.maxHideTime=parseFloat(t),this.progressBar.hideEta=(new Date).getTime()+this.progressBar.maxHideTime,this.timerTimeout=setInterval(this.progressBar.updateProgress,10))):this.timerTimeout=setTimeout(function(){e.close()},e.options.timeout)},pauseProgress:function(){this.isPaused=!0},resumeProgress:function(){this.isPaused=!1},resetProgress:function(t){clearTimeout(this.timerTimeout),this.progressBar={},this.$element.find("."+r+"-progressbar > div").width("100%")},open:function(e){function i(){s.state=l.OPENED,s.$element.trigger(l.OPENED),!s.options.onOpened||"function"!=typeof s.options.onOpened&&"object"!=typeof s.options.onOpened||s.options.onOpened(s)}function n(){s.$element.off("click","[data-"+r+"-close]").on("click","[data-"+r+"-close]",function(e){e.preventDefault();var i=t(e.currentTarget).attr("data-"+r+"-transitionOut");void 0!==i?s.close({transition:i}):s.close()}),s.$element.off("click","[data-"+r+"-fullscreen]").on("click","[data-"+r+"-fullscreen]",function(t){t.preventDefault(),s.isFullscreen===!0?(s.isFullscreen=!1,s.$element.removeClass("isFullscreen")):(s.isFullscreen=!0,s.$element.addClass("isFullscreen")),s.options.onFullscreen&&"function"==typeof s.options.onFullscreen&&s.options.onFullscreen(s),s.$element.trigger("fullscreen",s)}),s.$navigate.off("click","."+r+"-navigate-next").on("click","."+r+"-navigate-next",function(t){s.next(t)}),s.$element.off("click","[data-"+r+"-next]").on("click","[data-"+r+"-next]",function(t){s.next(t)}),s.$navigate.off("click","."+r+"-navigate-prev").on("click","."+r+"-navigate-prev",function(t){s.prev(t)}),s.$element.off("click","[data-"+r+"-prev]").on("click","[data-"+r+"-prev]",function(t){s.prev(t)})}var s=this;try{void 0!==e&&e.preventClose===!1&&t.each(t("."+r),function(e,i){if(void 0!==t(i).data().iziModal){var n=t(i).iziModal("getState");"opened"!=n&&"opening"!=n||t(i).iziModal("close")}})}catch(c){}if(function(){if(s.options.history){var t=document.title;document.title=t+" - "+s.options.title,o("#"+s.id),document.title=t,window.$iziModal.history=!0}else window.$iziModal.history=!1}(),this.state==l.CLOSED){if(n(),this.setGroup(),this.state=l.OPENING,this.$element.trigger(l.OPENING),this.$element.attr("aria-hidden","false"),this.options.timeoutProgressbar===!0&&this.$element.find("."+r+"-progressbar > div").width("100%"),this.options.iframe===!0){this.$element.find("."+r+"-content").addClass(r+"-content-loader"),this.$element.find("."+r+"-iframe").on("load",function(){t(this).parent().removeClass(r+"-content-loader")});var u=null;try{u=""!==t(e.currentTarget).attr("href")?t(e.currentTarget).attr("href"):null}catch(c){}if(null===this.options.iframeURL||null!==u&&void 0!==u||(u=this.options.iframeURL),null===u||void 0===u)throw new Error("Failed to find iframe URL");this.$element.find("."+r+"-iframe").attr("src",u)}(this.options.bodyOverflow||h)&&(t("html").addClass(r+"-isOverflow"),h&&t("body").css("overflow","hidden")),this.options.onOpening&&"function"==typeof this.options.onOpening&&this.options.onOpening(this),function(){if(s.group.ids.length>1){s.$navigate.appendTo("body"),s.$navigate.addClass("fadeIn"),s.options.navigateCaption===!0&&s.$navigate.find("."+r+"-navigate-caption").show();var n=s.$element.outerWidth();s.options.navigateArrows!==!1?"closeScreenEdge"===s.options.navigateArrows?(s.$navigate.find("."+r+"-navigate-prev").css("left",0).show(),s.$navigate.find("."+r+"-navigate-next").css("right",0).show()):(s.$navigate.find("."+r+"-navigate-prev").css("margin-left",-(n/2+84)).show(),s.$navigate.find("."+r+"-navigate-next").css("margin-right",-(n/2+84)).show()):(s.$navigate.find("."+r+"-navigate-prev").hide(),s.$navigate.find("."+r+"-navigate-next").hide());var o;0===s.group.index&&(o=t("."+r+"[data-"+r+'-group="'+s.group.name+'"][data-'+r+"-loop]").length,0===o&&s.options.loop===!1&&s.$navigate.find("."+r+"-navigate-prev").hide()),s.group.index+1===s.group.ids.length&&(o=t("."+r+"[data-"+r+'-group="'+s.group.name+'"][data-'+r+"-loop]").length,0===o&&s.options.loop===!1&&s.$navigate.find("."+r+"-navigate-next").hide())}s.options.overlay===!0&&(s.options.appendToOverlay===!1?s.$overlay.appendTo("body"):s.$overlay.appendTo(s.options.appendToOverlay)),s.options.transitionInOverlay&&s.$overlay.addClass(s.options.transitionInOverlay);var a=s.options.transitionIn;"object"==typeof e&&(void 0===e.transition&&void 0===e.transitionIn||(a=e.transition||e.transitionIn),void 0!==e.zindex&&s.setZindex(e.zindex)),""!==a&&void 0!==d?(s.$element.addClass("transitionIn "+a).show(),s.$wrap.one(d,function(){s.$element.removeClass(a+" transitionIn"),s.$overlay.removeClass(s.options.transitionInOverlay),s.$navigate.removeClass("fadeIn"),i()})):(s.$element.show(),i()),s.options.pauseOnHover!==!0||s.options.pauseOnHover!==!0||s.options.timeout===!1||isNaN(parseInt(s.options.timeout))||s.options.timeout===!1||0===s.options.timeout||(s.$element.off("mouseenter").on("mouseenter",function(t){t.preventDefault(),s.isPaused=!0}),s.$element.off("mouseleave").on("mouseleave",function(t){t.preventDefault(),s.isPaused=!1}))}(),this.options.timeout===!1||isNaN(parseInt(this.options.timeout))||this.options.timeout===!1||0===this.options.timeout||s.startProgress(this.options.timeout),this.options.overlayClose&&!this.$element.hasClass(this.options.transitionOut)&&this.$overlay.click(function(){s.close()}),this.options.focusInput&&this.$element.find(":input:not(button):enabled:visible:first").focus(),function p(){s.recalcLayout(),s.timer=setTimeout(p,300)}(),a.on("keydown."+r,function(t){s.options.closeOnEscape&&27===t.keyCode&&s.close()})}},close:function(e){function i(){n.state=l.CLOSED,n.$element.trigger(l.CLOSED),n.options.iframe===!0&&n.$element.find("."+r+"-iframe").attr("src",""),(n.options.bodyOverflow||h)&&(t("html").removeClass(r+"-isOverflow"),h&&t("body").css("overflow","auto")),n.options.onClosed&&"function"==typeof n.options.onClosed&&n.options.onClosed(n),n.options.restoreDefaultContent===!0&&n.$element.find("."+r+"-content").html(n.content),0===t("."+r+":visible").length&&t("html").removeClass(r+"-isAttached")}var n=this;if(this.state==l.OPENED||this.state==l.OPENING){a.off("keydown."+r),this.state=l.CLOSING,this.$element.trigger(l.CLOSING),this.$element.attr("aria-hidden","true"),clearTimeout(this.timer),clearTimeout(this.timerTimeout),n.options.onClosing&&"function"==typeof n.options.onClosing&&n.options.onClosing(this);var o=this.options.transitionOut;"object"==typeof e&&(void 0===e.transition&&void 0===e.transitionOut||(o=e.transition||e.transitionOut)),o===!1||""===o||void 0===d?(this.$element.hide(),this.$overlay.remove(),this.$navigate.remove(),i()):(this.$element.attr("class",[this.classes,r,o,"light"==this.options.theme?r+"-light":this.options.theme,this.isFullscreen===!0?"isFullscreen":"",this.options.rtl?r+"-rtl":""].join(" ")),this.$overlay.attr("class",r+"-overlay "+this.options.transitionOutOverlay),n.options.navigateArrows===!1||h||this.$navigate.attr("class",r+"-navigate fadeOut"),this.$element.one(d,function(){n.$element.hasClass(o)&&n.$element.removeClass(o+" transitionOut").hide(),n.$overlay.removeClass(n.options.transitionOutOverlay).remove(),n.$navigate.removeClass("fadeOut").remove(),i()}))}},next:function(e){var i=this,n="fadeInRight",o="fadeOutLeft",s=t("."+r+":visible"),a={};a.out=this,void 0!==e&&"object"!=typeof e?(e.preventDefault(),s=t(e.currentTarget),n=s.attr("data-"+r+"-transitionIn"),o=s.attr("data-"+r+"-transitionOut")):void 0!==e&&(void 0!==e.transitionIn&&(n=e.transitionIn),void 0!==e.transitionOut&&(o=e.transitionOut)),this.close({transition:o}),setTimeout(function(){for(var e=t("."+r+"[data-"+r+'-group="'+i.group.name+'"][data-'+r+"-loop]").length,o=i.group.index+1;o<=i.group.ids.length;o++){try{a["in"]=t("#"+i.group.ids[o]).data().iziModal}catch(s){}if("undefined"!=typeof a["in"]){t("#"+i.group.ids[o]).iziModal("open",{transition:n});break}if(o==i.group.ids.length&&e>0||i.options.loop===!0)for(var l=0;l<=i.group.ids.length;l++)if(a["in"]=t("#"+i.group.ids[l]).data().iziModal,"undefined"!=typeof a["in"]){t("#"+i.group.ids[l]).iziModal("open",{transition:n});break}}},200),t(document).trigger(r+"-group-change",a)},prev:function(e){var i=this,n="fadeInLeft",o="fadeOutRight",s=t("."+r+":visible"),a={};a.out=this,void 0!==e&&"object"!=typeof e?(e.preventDefault(),s=t(e.currentTarget),n=s.attr("data-"+r+"-transitionIn"),o=s.attr("data-"+r+"-transitionOut")):void 0!==e&&(void 0!==e.transitionIn&&(n=e.transitionIn),void 0!==e.transitionOut&&(o=e.transitionOut)),this.close({transition:o}),setTimeout(function(){for(var e=t("."+r+"[data-"+r+'-group="'+i.group.name+'"][data-'+r+"-loop]").length,o=i.group.index;o>=0;o--){try{a["in"]=t("#"+i.group.ids[o-1]).data().iziModal}catch(s){}if("undefined"!=typeof a["in"]){t("#"+i.group.ids[o-1]).iziModal("open",{transition:n});break}if(0===o&&e>0||i.options.loop===!0)for(var l=i.group.ids.length-1;l>=0;l--)if(a["in"]=t("#"+i.group.ids[l]).data().iziModal,"undefined"!=typeof a["in"]){t("#"+i.group.ids[l]).iziModal("open",{transition:n});break}}},200),t(document).trigger(r+"-group-change",a)},destroy:function(){var e=t.Event("destroy");this.$element.trigger(e),a.off("keydown."+r),clearTimeout(this.timer),clearTimeout(this.timerTimeout),this.options.iframe===!0&&this.$element.find("."+r+"-iframe").remove(),this.$element.html(this.$element.find("."+r+"-content").html()),this.$element.off("click","[data-"+r+"-close]"),this.$element.off("click","[data-"+r+"-fullscreen]"),this.$element.off("."+r).removeData(r).attr("style",""),this.$overlay.remove(),this.$navigate.remove(),this.$element.trigger(l.DESTROYED),this.$element=null},getState:function(){return this.state},getGroup:function(){return this.group},setWidth:function(t){this.options.width=t,this.recalcWidth();var e=this.$element.outerWidth();this.options.navigateArrows!==!0&&"closeToModal"!=this.options.navigateArrows||(this.$navigate.find("."+r+"-navigate-prev").css("margin-left",-(e/2+84)).show(),this.$navigate.find("."+r+"-navigate-next").css("margin-right",-(e/2+84)).show())},setTop:function(t){this.options.top=t,this.recalcVerticalPos(!1)},setBottom:function(t){this.options.bottom=t,this.recalcVerticalPos(!1)},setHeader:function(t){t?this.$element.find("."+r+"-header").show():(this.headerHeight=0,this.$element.find("."+r+"-header").hide())},setTitle:function(t){this.options.title=t,0===this.headerHeight&&this.createHeader(),0===this.$header.find("."+r+"-header-title").length&&this.$header.append('<h2 class="'+r+'-header-title"></h2>'),this.$header.find("."+r+"-header-title").html(t)},setSubtitle:function(t){""===t?(this.$header.find("."+r+"-header-subtitle").remove(),this.$header.addClass(r+"-noSubtitle")):(0===this.$header.find("."+r+"-header-subtitle").length&&this.$header.append('<p class="'+r+'-header-subtitle"></p>'),this.$header.removeClass(r+"-noSubtitle")),this.$header.find("."+r+"-header-subtitle").html(t),this.options.subtitle=t},setIcon:function(t){0===this.$header.find("."+r+"-header-icon").length&&this.$header.prepend('<i class="'+r+'-header-icon"></i>'),this.$header.find("."+r+"-header-icon").attr("class",r+"-header-icon "+t),this.options.icon=t},setIconText:function(t){this.$header.find("."+r+"-header-icon").html(t),this.options.iconText=t},setHeaderColor:function(t){this.options.borderBottom===!0&&this.$element.css("border-bottom","3px solid "+t),this.$header.css("background",t),this.options.headerColor=t},setBackground:function(t){t===!1?(this.options.background=null,this.$element.css("background","")):(this.$element.css("background",t),this.options.background=t)},setZindex:function(t){isNaN(parseInt(this.options.zindex))||(this.options.zindex=t,this.$element.css("z-index",t),this.$navigate.css("z-index",t-1),this.$overlay.css("z-index",t-2))},setFullscreen:function(t){t?(this.isFullscreen=!0,this.$element.addClass("isFullscreen")):(this.isFullscreen=!1,this.$element.removeClass("isFullscreen"))},setContent:function(t){if("object"==typeof t){var e=t["default"]||!1;e===!0&&(this.content=t.content),t=t.content}this.options.iframe===!1&&this.$element.find("."+r+"-content").html(t)},setTransitionIn:function(t){this.options.transitionIn=t},setTransitionOut:function(t){this.options.transitionOut=t},setTimeout:function(t){this.options.timeout=t},resetContent:function(){this.$element.find("."+r+"-content").html(this.content)},startLoading:function(){this.$element.find("."+r+"-loader").length||this.$element.append('<div class="'+r+'-loader fadeIn"></div>'),this.$element.find("."+r+"-loader").css({top:this.headerHeight,borderRadius:this.options.radius})},stopLoading:function(){var t=this.$element.find("."+r+"-loader");t.length||(this.$element.prepend('<div class="'+r+'-loader fadeIn"></div>'),t=this.$element.find("."+r+"-loader").css("border-radius",this.options.radius)),t.removeClass("fadeIn").addClass("fadeOut"),setTimeout(function(){t.remove()},600)},recalcWidth:function(){var t=this;if(this.$element.css("max-width",this.options.width),i()){var e=t.options.width;e.toString().split("%").length>1&&(e=t.$element.outerWidth()),t.$element.css({left:"50%",marginLeft:-(e/2)})}},recalcVerticalPos:function(t){null!==this.options.top&&this.options.top!==!1?(this.$element.css("margin-top",this.options.top),0===this.options.top&&this.$element.css({borderTopRightRadius:0,borderTopLeftRadius:0})):t===!1&&this.$element.css({marginTop:"",borderRadius:this.options.radius}),null!==this.options.bottom&&this.options.bottom!==!1?(this.$element.css("margin-bottom",this.options.bottom),0===this.options.bottom&&this.$element.css({borderBottomRightRadius:0,borderBottomLeftRadius:0})):t===!1&&this.$element.css({marginBottom:"",borderRadius:this.options.radius})},recalcLayout:function(){var e=this,o=s.height(),a=this.$element.outerHeight(),d=this.$element.outerWidth(),h=this.$element.find("."+r+"-content")[0].scrollHeight,c=h+this.headerHeight,u=this.$element.innerHeight()-this.headerHeight,p=(parseInt(-((this.$element.innerHeight()+1)/2))+"px",this.$wrap.scrollTop()),f=0;i()&&(d>=s.width()||this.isFullscreen===!0?this.$element.css({left:"0",marginLeft:""}):this.$element.css({left:"50%",marginLeft:-(d/2)})),this.options.borderBottom===!0&&""!==this.options.title&&(f=3),this.$element.find("."+r+"-header").length&&this.$element.find("."+r+"-header").is(":visible")?(this.headerHeight=parseInt(this.$element.find("."+r+"-header").innerHeight()),this.$element.css("overflow","hidden")):(this.headerHeight=0,this.$element.css("overflow","")),this.$element.find("."+r+"-loader").length&&this.$element.find("."+r+"-loader").css("top",this.headerHeight),a!==this.modalHeight&&(this.modalHeight=a,this.options.onResize&&"function"==typeof this.options.onResize&&this.options.onResize(this)),this.state!=l.OPENED&&this.state!=l.OPENING||(this.options.iframe===!0&&(o<this.options.iframeHeight+this.headerHeight+f||this.isFullscreen===!0?this.$element.find("."+r+"-iframe").css("height",o-(this.headerHeight+f)):this.$element.find("."+r+"-iframe").css("height",this.options.iframeHeight)),a==o?this.$element.addClass("isAttached"):this.$element.removeClass("isAttached"),this.isFullscreen===!1&&this.$element.width()>=s.width()?this.$element.find("."+r+"-button-fullscreen").hide():this.$element.find("."+r+"-button-fullscreen").show(),this.recalcButtons(),this.isFullscreen===!1&&(o=o-(n(this.options.top)||0)-(n(this.options.bottom)||0)),c>o?(this.options.top>0&&null===this.options.bottom&&h<s.height()&&this.$element.addClass("isAttachedBottom"),this.options.bottom>0&&null===this.options.top&&h<s.height()&&this.$element.addClass("isAttachedTop"),1===t("."+r+":visible").length&&t("html").addClass(r+"-isAttached"),this.$element.css("height",o)):(this.$element.css("height",h+(this.headerHeight+f)),this.$element.removeClass("isAttachedTop isAttachedBottom"),1===t("."+r+":visible").length&&t("html").removeClass(r+"-isAttached")),function(){h>u&&c>o?(e.$element.addClass("hasScroll"),e.$wrap.css("height",a-(e.headerHeight+f))):(e.$element.removeClass("hasScroll"),e.$wrap.css("height","auto"))}(),function(){u+p<h-30?e.$element.addClass("hasShadow"):e.$element.removeClass("hasShadow")}())},recalcButtons:function(){var t=this.$header.find("."+r+"-header-buttons").innerWidth()+10;this.options.rtl===!0?this.$header.css("padding-left",t):this.$header.css("padding-right",t)}},s.off("load."+r).on("load."+r,function(e){var i=document.location.hash;if(0===window.$iziModal.autoOpen&&!t("."+r).is(":visible"))try{var n=t(i).data();"undefined"!=typeof n&&n.iziModal.options.autoOpen!==!1&&t(i).iziModal("open")}catch(o){}}),s.off("hashchange."+r).on("hashchange."+r,function(e){var i=document.location.hash;if(""!==i)try{var n=t(i).data();"undefined"!=typeof n&&"opening"!==t(i).iziModal("getState")&&setTimeout(function(){t(i).iziModal("open",{preventClose:!1})},200)}catch(o){}else window.$iziModal.history&&t.each(t("."+r),function(e,i){if(void 0!==t(i).data().iziModal){var n=t(i).iziModal("getState");"opened"!=n&&"opening"!=n||t(i).iziModal("close")}})}),a.off("click","[data-"+r+"-open]").on("click","[data-"+r+"-open]",function(e){e.preventDefault();var i=t("."+r+":visible"),n=t(e.currentTarget).attr("data-"+r+"-open"),o=t(e.currentTarget).attr("data-"+r+"-preventClose"),s=t(e.currentTarget).attr("data-"+r+"-transitionIn"),a=t(e.currentTarget).attr("data-"+r+"-transitionOut"),l=t(e.currentTarget).attr("data-"+r+"-zindex");void 0!==l&&t(n).iziModal("setZindex",l),void 0===o&&(void 0!==a?i.iziModal("close",{transition:a}):i.iziModal("close")),setTimeout(function(){void 0!==s?t(n).iziModal("open",{transition:s}):t(n).iziModal("open")},200)}),a.off("keyup."+r).on("keyup."+r,function(e){if(t("."+r+":visible").length){var i=t("."+r+":visible")[0].id,n=t("#"+i).data().iziModal.options.arrowKeys,o=t("#"+i).iziModal("getGroup"),s=e||window.event,a=s.target||s.srcElement;void 0===i||!n||void 0===o.name||s.ctrlKey||s.metaKey||s.altKey||"INPUT"===a.tagName.toUpperCase()||"TEXTAREA"==a.tagName.toUpperCase()||(37===s.keyCode?t("#"+i).iziModal("prev",s):39===s.keyCode&&t("#"+i).iziModal("next",s))}}),t.fn[r]=function(e,i){if(!t(this).length&&"object"==typeof e){var n={$el:document.createElement("div"),id:this.selector.split("#"),"class":this.selector.split(".")};if(n.id.length>1){try{n.$el=document.createElement(id[0])}catch(o){}n.$el.id=this.selector.split("#")[1].trim()}else if(n["class"].length>1){try{n.$el=document.createElement(n["class"][0])}catch(o){}for(var s=1;s<n["class"].length;s++)n.$el.classList.add(n["class"][s].trim())}document.body.appendChild(n.$el),this.push(t(this.selector))}for(var a=this,l=0;l<a.length;l++){var d=t(a[l]),h=d.data(r),u=t.extend({},t.fn[r].defaults,d.data(),"object"==typeof e&&e);if(h||e&&"object"!=typeof e){if("string"==typeof e&&"undefined"!=typeof h)return h[e].apply(h,[].concat(i))}else d.data(r,h=new c(d,u));u.autoOpen&&(isNaN(parseInt(u.autoOpen))?u.autoOpen===!0&&h.open():setTimeout(function(){h.open()},u.autoOpen),window.$iziModal.autoOpen++)}return this},t.fn[r].defaults={title:"",subtitle:"",headerColor:"#88A0B9",background:null,theme:"",icon:null,iconText:null,iconColor:"",rtl:!1,width:600,top:null,bottom:null,borderBottom:!0,padding:0,radius:3,zindex:999,iframe:!1,iframeHeight:400,iframeURL:null,focusInput:!0,group:"",loop:!1,arrowKeys:!0,navigateCaption:!0,navigateArrows:!0,history:!1,restoreDefaultContent:!1,autoOpen:0,bodyOverflow:!1,fullscreen:!1,openFullscreen:!1,closeOnEscape:!0,closeButton:!0,appendTo:"body",appendToOverlay:"body",overlay:!0,overlayClose:!0,overlayColor:"rgba(0, 0, 0, 0.4)",timeout:!1,timeoutProgressbar:!1,pauseOnHover:!1,timeoutProgressbarColor:"rgba(255,255,255,0.5)",transitionIn:"comingIn",transitionOut:"comingOut",transitionInOverlay:"fadeIn",transitionOutOverlay:"fadeOut",onFullscreen:function(){},onResize:function(){},onOpening:function(){},onOpened:function(){},onClosing:function(){},onClosed:function(){},afterRender:function(){}},t.fn[r].Constructor=c,t.fn.iziModal});!function(){function e(t,n,i){return t.call.apply(t.bind,arguments)}function o(n,i,t){if(!n)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var t=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(t,e),n.apply(i,t)}}return function(){return n.apply(i,arguments)}}function d(t,n,i){return(d=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?e:o).apply(null,arguments)}var r=Date.now||function(){return+new Date};function n(t,n){this.a=t,this.o=n||t,this.c=this.o.document}var f=!!window.FontFace;function c(t,n,i,e){if(n=t.c.createElement(n),i)for(var o in i)i.hasOwnProperty(o)&&("style"==o?n.style.cssText=i[o]:n.setAttribute(o,i[o]));return e&&n.appendChild(t.c.createTextNode(e)),n}function h(t,n,i){(t=t.c.getElementsByTagName(n)[0])||(t=document.documentElement),t.insertBefore(i,t.lastChild)}function i(t){t.parentNode&&t.parentNode.removeChild(t)}function g(t,n,i){n=n||[],i=i||[];for(var e=t.className.split(/\s+/),o=0;o<n.length;o+=1){for(var a=!1,s=0;s<e.length;s+=1)if(n[o]===e[s]){a=!0;break}a||e.push(n[o])}for(n=[],o=0;o<e.length;o+=1){for(a=!1,s=0;s<i.length;s+=1)if(e[o]===i[s]){a=!0;break}a||n.push(e[o])}t.className=n.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function a(t,n){for(var i=t.className.split(/\s+/),e=0,o=i.length;e<o;e++)if(i[e]==n)return!0;return!1}function l(t,n,i){function e(){s&&o&&(s(a),s=null)}n=c(t,"link",{rel:"stylesheet",href:n,media:"all"});var o=!1,a=null,s=i||null;f?(n.onload=function(){o=!0,e()},n.onerror=function(){o=!0,a=Error("Stylesheet failed to load"),e()}):setTimeout(function(){o=!0,e()},0),h(t,"head",n)}function u(t,n,i,e){var o=t.c.getElementsByTagName("head")[0];if(o){var a=c(t,"script",{src:n}),s=!1;return a.onload=a.onreadystatechange=function(){s||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(s=!0,i&&i(null),a.onload=a.onreadystatechange=null,"HEAD"==a.parentNode.tagName&&o.removeChild(a))},o.appendChild(a),setTimeout(function(){s||(s=!0,i&&i(Error("Script load timeout")))},e||5e3),a}return null}function p(){this.a=0,this.c=null}function v(t){return t.a++,function(){t.a--,s(t)}}function w(t,n){t.c=n,s(t)}function s(t){0==t.a&&t.c&&(t.c(),t.c=null)}function m(t){this.a=t||"-"}function y(t,n){this.c=t,this.f=4,this.a="n";var i=(n||"n4").match(/^([nio])([1-9])$/i);i&&(this.a=i[1],this.f=parseInt(i[2],10))}function b(t){var n=[];t=t.split(/,\s*/);for(var i=0;i<t.length;i++){var e=t[i].replace(/['"]/g,"");-1!=e.indexOf(" ")||/^\d/.test(e)?n.push("'"+e+"'"):n.push(e)}return n.join(",")}function x(t){return t.a+t.f}function j(t){var n="normal";return"o"===t.a?n="oblique":"i"===t.a&&(n="italic"),n}function _(t,n){this.c=t,this.f=t.o.document.documentElement,this.h=n,this.a=new m("-"),this.j=!1!==n.events,this.g=!1!==n.classes}function k(t){if(t.g){var n=a(t.f,t.a.c("wf","active")),i=[],e=[t.a.c("wf","loading")];n||i.push(t.a.c("wf","inactive")),g(t.f,i,e)}T(t,"inactive")}function T(t,n,i){t.j&&t.h[n]&&(i?t.h[n](i.c,x(i)):t.h[n]())}function S(){this.c={}}function C(t,n){this.c=t,this.f=n,this.a=c(this.c,"span",{"aria-hidden":"true"},this.f)}function A(t){h(t.c,"body",t.a)}function N(t){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+b(t.c)+";font-style:"+j(t)+";font-weight:"+t.f+"00;"}function E(t,n,i,e,o,a){this.g=t,this.j=n,this.a=e,this.c=i,this.f=o||3e3,this.h=a||void 0}function W(t,n,i,e,o,a,s){this.v=t,this.B=n,this.c=i,this.a=e,this.s=s||"BESbswy",this.f={},this.w=o||3e3,this.u=a||null,this.m=this.j=this.h=this.g=null,this.g=new C(this.c,this.s),this.h=new C(this.c,this.s),this.j=new C(this.c,this.s),this.m=new C(this.c,this.s),t=N(t=new y(this.a.c+",serif",x(this.a))),this.g.a.style.cssText=t,t=N(t=new y(this.a.c+",sans-serif",x(this.a))),this.h.a.style.cssText=t,t=N(t=new y("serif",x(this.a))),this.j.a.style.cssText=t,t=N(t=new y("sans-serif",x(this.a))),this.m.a.style.cssText=t,A(this.g),A(this.h),A(this.j),A(this.m)}m.prototype.c=function(t){for(var n=[],i=0;i<arguments.length;i++)n.push(arguments[i].replace(/[\W_]+/g,"").toLowerCase());return n.join(this.a)},E.prototype.start=function(){var o=this.c.o.document,a=this,s=r(),t=new Promise(function(i,e){!function n(){var t;r()-s>=a.f?e():o.fonts.load((t=a.a,j(t)+" "+t.f+"00 300px "+b(t.c)),a.h).then(function(t){1<=t.length?i():setTimeout(n,25)},function(){e()})}()}),i=null,n=new Promise(function(t,n){i=setTimeout(n,a.f)});Promise.race([n,t]).then(function(){i&&(clearTimeout(i),i=null),a.g(a.a)},function(){a.j(a.a)})};var F={D:"serif",C:"sans-serif"},I=null;function O(){if(null===I){var t=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);I=!!t&&(parseInt(t[1],10)<536||536===parseInt(t[1],10)&&parseInt(t[2],10)<=11)}return I}function P(t,n,i){for(var e in F)if(F.hasOwnProperty(e)&&n===t.f[F[e]]&&i===t.f[F[e]])return!0;return!1}function B(t){var n,i=t.g.a.offsetWidth,e=t.h.a.offsetWidth;(n=i===t.f.serif&&e===t.f["sans-serif"])||(n=O()&&P(t,i,e)),n?r()-t.A>=t.w?O()&&P(t,i,e)&&(null===t.u||t.u.hasOwnProperty(t.a.c))?L(t,t.v):L(t,t.B):setTimeout(d(function(){B(this)},t),50):L(t,t.v)}function L(t,n){setTimeout(d(function(){i(this.g.a),i(this.h.a),i(this.j.a),i(this.m.a),n(this.a)},t),0)}function D(t,n,i){this.c=t,this.a=n,this.f=0,this.m=this.j=!1,this.s=i}W.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=r(),B(this)};var $=null;function q(t){0==--t.f&&t.j&&(t.m?((t=t.a).g&&g(t.f,[t.a.c("wf","active")],[t.a.c("wf","loading"),t.a.c("wf","inactive")]),T(t,"active")):k(t.a))}function t(t){this.j=t,this.a=new S,this.h=0,this.f=this.g=!0}function H(t,n){this.c=t,this.a=n}function M(t,n){this.c=t,this.a=n}function z(t,n){this.c=t||"https://fonts.googleapis.com/css",this.a=[],this.f=[],this.g=n||""}D.prototype.g=function(t){var n=this.a;n.g&&g(n.f,[n.a.c("wf",t.c,x(t).toString(),"active")],[n.a.c("wf",t.c,x(t).toString(),"loading"),n.a.c("wf",t.c,x(t).toString(),"inactive")]),T(n,"fontactive",t),this.m=!0,q(this)},D.prototype.h=function(t){var n=this.a;if(n.g){var i=a(n.f,n.a.c("wf",t.c,x(t).toString(),"active")),e=[],o=[n.a.c("wf",t.c,x(t).toString(),"loading")];i||e.push(n.a.c("wf",t.c,x(t).toString(),"inactive")),g(n.f,e,o)}T(n,"fontinactive",t),q(this)},t.prototype.load=function(t){this.c=new n(this.j,t.context||this.j),this.g=!1!==t.events,this.f=!1!==t.classes,function(o,t,n){var i=[],e=n.timeout;a=t,a.g&&g(a.f,[a.a.c("wf","loading")]),T(a,"loading");var a;var i=function(t,n,i){var e,o=[];for(e in n)if(n.hasOwnProperty(e)){var a=t.c[e];a&&o.push(a(n[e],i))}return o}(o.a,n,o.c),s=new D(o.c,t,e);for(o.h=i.length,t=0,n=i.length;t<n;t++)i[t].load(function(t,n,i){var e,c,h,l,u,p;c=s,h=t,l=n,u=i,p=0==--(e=o).h,(e.f||e.g)&&setTimeout(function(){var t=u||null,n=l||{};if(0===h.length&&p)k(c.a);else{c.f+=h.length,p&&(c.j=p);var i,e=[];for(i=0;i<h.length;i++){var o=h[i],a=n[o.c],s=c.a,r=o;if(s.g&&g(s.f,[s.a.c("wf",r.c,x(r).toString(),"loading")]),T(s,"fontloading",r),(s=null)===$)if(window.FontFace){var r=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent),f=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);$=r?42<parseInt(r[1],10):!f}else $=!1;s=$?new E(d(c.g,c),d(c.h,c),c.c,o,c.s,a):new W(d(c.g,c),d(c.h,c),c.c,o,c.s,t,a),e.push(s)}for(i=0;i<e.length;i++)e[i].start()}},0)})}(this,new _(this.c,t),t)},H.prototype.load=function(s){var n=this,r=n.a.projectId,t=n.a.version;if(r){var f=n.c.o;u(this.c,(n.a.api||"https://fast.fonts.net/jsapi")+"/"+r+".js"+(t?"?v="+t:""),function(t){t?s([]):(f["__MonotypeConfiguration__"+r]=function(){return n.a},function t(){if(f["__mti_fntLst"+r]){var n,i=f["__mti_fntLst"+r](),e=[];if(i)for(var o=0;o<i.length;o++){var a=i[o].fontfamily;null!=i[o].fontStyle&&null!=i[o].fontWeight?(n=i[o].fontStyle+i[o].fontWeight,e.push(new y(a,n))):e.push(new y(a))}s(e)}else setTimeout(function(){t()},50)}())}).id="__MonotypeAPIScript__"+r}else s([])},M.prototype.load=function(t){var n,i,e=this.a.urls||[],o=this.a.families||[],a=this.a.testStrings||{},s=new p;for(n=0,i=e.length;n<i;n++)l(this.c,e[n],v(s));var r=[];for(n=0,i=o.length;n<i;n++)if((e=o[n].split(":"))[1])for(var f=e[1].split(","),c=0;c<f.length;c+=1)r.push(new y(e[0],f[c]));else r.push(new y(e[0]));w(s,function(){t(r,a)})};function G(t){this.f=t,this.a=[],this.c={}}var K={latin:"BESbswy","latin-ext":"çöüğş",cyrillic:"йяЖ",greek:"αβΣ",khmer:"កខគ",Hanuman:"កខគ"},R={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},U={i:"i",italic:"i",n:"n",normal:"n"},V=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;function X(t,n){this.c=t,this.a=n}var J={Arimo:!0,Cousine:!0,Tinos:!0};function Q(t,n){this.c=t,this.a=n}function Y(t,n){this.c=t,this.f=n,this.a=[]}X.prototype.load=function(t){var n=new p,i=this.c,e=new z(this.a.api,this.a.text),o=this.a.families;!function(t,n){for(var i=n.length,e=0;e<i;e++){var o=n[e].split(":");3==o.length&&t.f.push(o.pop());var a="";2==o.length&&""!=o[1]&&(a=":"),t.a.push(o.join(a))}}(e,o);var a=new G(o);!function(t){for(var n=t.f.length,i=0;i<n;i++){var e=t.f[i].split(":"),o=e[0].replace(/\+/g," "),a=["n4"];if(2<=e.length){var s;if(s=[],r=e[1])for(var r,f=(r=r.split(",")).length,c=0;c<f;c++){var h;if((h=r[c]).match(/^[\w-]+$/))if(null==(u=V.exec(h.toLowerCase())))h="";else{if(h=null==(h=u[2])||""==h?"n":U[h],null==(u=u[1])||""==u)u="4";else var l=R[u],u=l||(isNaN(u)?"4":u.substr(0,1));h=[h,u].join("")}else h="";h&&s.push(h)}0<s.length&&(a=s),3==e.length&&(s=[],0<(e=(e=e[2])?e.split(","):s).length&&(e=K[e[0]])&&(t.c[o]=e))}for(t.c[o]||(e=K[o])&&(t.c[o]=e),e=0;e<a.length;e+=1)t.a.push(new y(o,a[e]))}}(a),l(i,function(t){if(0==t.a.length)throw Error("No fonts to load!");if(-1!=t.c.indexOf("kit="))return t.c;for(var n=t.a.length,i=[],e=0;e<n;e++)i.push(t.a[e].replace(/ /g,"+"));return n=t.c+"?family="+i.join("%7C"),0<t.f.length&&(n+="&subset="+t.f.join(",")),0<t.g.length&&(n+="&text="+encodeURIComponent(t.g)),n}(e),v(n)),w(n,function(){t(a.a,a.c,J)})},Q.prototype.load=function(s){var t=this.a.id,r=this.c.o;t?u(this.c,(this.a.api||"https://use.typekit.net")+"/"+t+".js",function(t){if(t)s([]);else if(r.Typekit&&r.Typekit.config&&r.Typekit.config.fn){t=r.Typekit.config.fn;for(var n=[],i=0;i<t.length;i+=2)for(var e=t[i],o=t[i+1],a=0;a<o.length;a++)n.push(new y(e,o[a]));try{r.Typekit.load({events:!1,classes:!1,async:!0})}catch(t){}s(n)}},2e3):s([])},Y.prototype.load=function(c){var t,n=this.f.id,i=this.c.o,h=this;n?(i.__webfontfontdeckmodule__||(i.__webfontfontdeckmodule__={}),i.__webfontfontdeckmodule__[n]=function(t,n){for(var i=0,e=n.fonts.length;i<e;++i){var o=n.fonts[i];h.a.push(new y(o.name,(a="font-weight:"+o.weight+";font-style:"+o.style,f=r=s=void 0,s=4,r="n",f=null,a&&((f=a.match(/(normal|oblique|italic)/i))&&f[1]&&(r=f[1].substr(0,1).toLowerCase()),(f=a.match(/([1-9]00|normal|bold)/i))&&f[1]&&(/bold/i.test(f[1])?s=7:/[1-9]00/.test(f[1])&&(s=parseInt(f[1].substr(0,1),10)))),r+s)))}var a,s,r,f;c(h.a)},u(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+((t=this.c).o.location.hostname||t.a.location.hostname)+"/"+n+".js",function(t){t&&c([])})):c([])};var Z=new t(window);Z.a.c.custom=function(t,n){return new M(n,t)},Z.a.c.fontdeck=function(t,n){return new Y(n,t)},Z.a.c.monotype=function(t,n){return new H(n,t)},Z.a.c.typekit=function(t,n){return new Q(n,t)},Z.a.c.google=function(t,n){return new X(n,t)};var tt={load:d(Z.load,Z)};"function"==typeof define&&define.amd?define(function(){return tt}):"undefined"!=typeof module&&module.exports?module.exports=tt:(window.WebFont=tt,window.WebFontConfig&&Z.load(window.WebFontConfig))}();!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Babel=t():e.Babel=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var r=t.slice(1),n=e[t[0]];return function(e,t,i){n.apply(this,[e,t,i].concat(r))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,r){"use strict";function n(e,t){return g(t)&&"string"==typeof t[0]?e.hasOwnProperty(t[0])?[e[t[0]]].concat(t.slice(1)):void 0:"string"==typeof t?e[t]:t}function i(e){var t=(e.presets||[]).map(function(e){var t=n(E,e);if(!t)throw new Error('Invalid preset specified in Babel options: "'+e+'"');return g(t)&&"object"===h(t[0])&&t[0].hasOwnProperty("buildPreset")&&(t[0]=d({},t[0],{buildPreset:t[0].buildPreset})),t}),r=(e.plugins||[]).map(function(e){var t=n(b,e);if(!t)throw new Error('Invalid plugin specified in Babel options: "'+e+'"');return t});return d({babelrc:!1},e,{presets:t,plugins:r})}function s(e,t){return y.transform(e,i(t))}function a(e,t,r){return y.transformFromAst(e,t,i(r))}function o(e,t){b.hasOwnProperty(e)&&console.warn('A plugin named "'+e+'" is already registered, it will be overridden'),b[e]=t}function u(e){Object.keys(e).forEach(function(t){return o(t,e[t])})}function l(e,t){E.hasOwnProperty(e)&&console.warn('A preset named "'+e+'" is already registered, it will be overridden'),E[e]=t}function c(e){Object.keys(e).forEach(function(t){return l(t,e[t])})}function f(e){(0,v.runScripts)(s,e)}function p(){window.removeEventListener("DOMContentLoaded",f)}Object.defineProperty(t,"__esModule",{value:!0}),t.version=t.buildExternalHelpers=t.availablePresets=t.availablePlugins=void 0;var d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.transform=s,t.transformFromAst=a,t.registerPlugin=o,t.registerPlugins=u,t.registerPreset=l,t.registerPresets=c,t.transformScriptTags=f,t.disableScriptTags=p;var m=r(290),y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(m),v=r(629),g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},b=t.availablePlugins={},E=t.availablePresets={};t.buildExternalHelpers=y.buildExternalHelpers;u({"check-es2015-constants":r(66),"external-helpers":r(322),"inline-replace-variables":r(323),"syntax-async-functions":r(67),"syntax-async-generators":r(195),"syntax-class-constructor-call":r(196),"syntax-class-properties":r(197),"syntax-decorators":r(125),"syntax-do-expressions":r(198),"syntax-exponentiation-operator":r(199),"syntax-export-extensions":r(200),"syntax-flow":r(126),"syntax-function-bind":r(201),"syntax-function-sent":r(325),"syntax-jsx":r(127),"syntax-object-rest-spread":r(202),"syntax-trailing-function-commas":r(128),"transform-async-functions":r(326),"transform-async-to-generator":r(129),"transform-async-to-module-method":r(328),"transform-class-constructor-call":r(203),"transform-class-properties":r(204),"transform-decorators":r(205),"transform-decorators-legacy":r(329).default,"transform-do-expressions":r(206),"transform-es2015-arrow-functions":r(68),"transform-es2015-block-scoped-functions":r(69),"transform-es2015-block-scoping":r(70),"transform-es2015-classes":r(71),"transform-es2015-computed-properties":r(72),"transform-es2015-destructuring":r(73),"transform-es2015-duplicate-keys":r(130),"transform-es2015-for-of":r(74),"transform-es2015-function-name":r(75),"transform-es2015-instanceof":r(332),"transform-es2015-literals":r(76),"transform-es2015-modules-amd":r(131),"transform-es2015-modules-commonjs":r(77),"transform-es2015-modules-systemjs":r(208),"transform-es2015-modules-umd":r(209),"transform-es2015-object-super":r(78),"transform-es2015-parameters":r(79),"transform-es2015-shorthand-properties":r(80),"transform-es2015-spread":r(81),"transform-es2015-sticky-regex":r(82),"transform-es2015-template-literals":r(83),"transform-es2015-typeof-symbol":r(84),"transform-es2015-unicode-regex":r(85),"transform-es3-member-expression-literals":r(336),"transform-es3-property-literals":r(337),"transform-es5-property-mutators":r(338),"transform-eval":r(339),"transform-exponentiation-operator":r(132),"transform-export-extensions":r(210),"transform-flow-comments":r(340),"transform-flow-strip-types":r(211),"transform-function-bind":r(212),"transform-jscript":r(341),"transform-object-assign":r(342),"transform-object-rest-spread":r(213),"transform-object-set-prototype-of-to-assign":r(343),"transform-proto-to-assign":r(344),"transform-react-constant-elements":r(345),"transform-react-display-name":r(214),"transform-react-inline-elements":r(346),"transform-react-jsx":r(215),"transform-react-jsx-compat":r(347),"transform-react-jsx-self":r(349),"transform-react-jsx-source":r(350),"transform-regenerator":r(86),"transform-runtime":r(353),"transform-strict-mode":r(216),"undeclared-variables-check":r(354)}),c({es2015:r(217),es2016:r(218),es2017:r(219),latest:r(356),react:r(357),"stage-0":r(358),"stage-1":r(220),"stage-2":r(221),"stage-3":r(222),"es2015-no-commonjs":{plugins:[r(83),r(76),r(75),r(68),r(69),r(71),r(78),r(80),r(72),r(74),r(82),r(85),r(66),r(81),r(79),r(73),r(70),r(84),[r(86),{async:!1,asyncGenerators:!1}]]},"es2015-loose":{plugins:[[r(83),{loose:!0}],r(76),r(75),r(68),r(69),[r(71),{loose:!0}],r(78),r(80),r(130),[r(72),{loose:!0}],[r(74),{loose:!0}],r(82),r(85),r(66),[r(81),{loose:!0}],r(79),[r(73),{loose:!0}],r(70),r(84),[r(77),{loose:!0}],[r(86),{async:!1,asyncGenerators:!1}]]}});t.version="6.26.0";"undefined"!=typeof window&&window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",function(){return f()},!1)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=z["is"+e];t||(t=z["is"+e]=function(t,r){return z.is(e,t,r)}),z["assert"+e]=function(r,n){if(n=n||{},!t(r,n))throw new Error("Expected type "+(0,I.default)(e)+" with option "+(0,I.default)(n))}}function s(e,t,r){return!!t&&(!!a(t.type,e)&&(void 0===r||z.shallowEqual(t,r)))}function a(e,t){if(e===t)return!0;if(z.ALIAS_KEYS[t])return!1;var r=z.FLIPPED_ALIAS_KEYS[t];if(r){if(r[0]===e)return!0;for(var n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}if(e===a)return!0}}return!1}function o(e,t,r){if(e){var n=z.NODE_FIELDS[e.type];if(n){var i=n[t];i&&i.validate&&(i.optional&&null==r||i.validate(e,t,r))}}}function u(e,t){for(var r=(0,B.default)(t),n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if(e[o]!==t[o])return!1}return!0}function l(e,t,r){return e.object=z.memberExpression(e.object,e.property,e.computed),e.property=t,e.computed=!!r,e}function c(e,t){return e.object=z.memberExpression(t,e.object),e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body";return e[t]=z.toBlock(e[t],e)}function p(e){if(!e)return e;var t={};for(var r in e)"_"!==r[0]&&(t[r]=e[r]);return t}function d(e){var t=p(e);return delete t.loc,t}function h(e){if(!e)return e;var t={};for(var r in e)if("_"!==r[0]){var n=e[r];n&&(n.type?n=z.cloneDeep(n):Array.isArray(n)&&(n=n.map(z.cloneDeep))),t[r]=n}return t}function m(e,t){var r=e.split(".");return function(e){if(!z.isMemberExpression(e))return!1;for(var n=[e],i=0;n.length;){var s=n.shift();if(t&&i===r.length)return!0;if(z.isIdentifier(s)){if(r[i]!==s.name)return!1}else{if(!z.isStringLiteral(s)){if(z.isMemberExpression(s)){if(s.computed&&!z.isStringLiteral(s.property))return!1;n.push(s.object),n.push(s.property);continue}return!1}if(r[i]!==s.value)return!1}if(++i>r.length)return!1}return!0}}function y(e){for(var t=z.COMMENT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,T.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}delete e[i]}return e}function v(e,t){return g(e,t),b(e,t),E(e,t),e}function g(e,t){x("trailingComments",e,t)}function b(e,t){x("leadingComments",e,t)}function E(e,t){x("innerComments",e,t)}function x(e,t,r){t&&r&&(t[e]=(0,K.default)([].concat(t[e],r[e]).filter(Boolean)))}function A(e,t){if(!e||!t)return e;for(var r=z.INHERIT_KEYS.optional,n=Array.isArray(r),i=0,r=n?r:(0,T.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;null==e[a]&&(e[a]=t[a])}for(var o in t)"_"===o[0]&&(e[o]=t[o]);for(var u=z.INHERIT_KEYS.force,l=Array.isArray(u),c=0,u=l?u:(0,T.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;e[p]=t[p]}return z.inheritsComments(e,t),e}function S(e){if(!_(e))throw new TypeError("Not a valid node "+(e&&e.type))}function _(e){return!(!e||!H.VISITOR_KEYS[e.type])}function D(e,t,r){if(e){var n=z.VISITOR_KEYS[e.type];if(n){r=r||{},t(e,r);for(var i=n,s=Array.isArray(i),a=0,i=s?i:(0,T.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o,l=e[u];if(Array.isArray(l))for(var c=l,f=Array.isArray(c),p=0,c=f?c:(0,T.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;D(h,t,r)}else D(l,t,r)}}}}function C(e,t){t=t||{};for(var r=t.preserveComments?Z:ee,n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;null!=e[o]&&(e[o]=void 0)}for(var u in e)"_"===u[0]&&null!=e[u]&&(e[u]=void 0);for(var l=(0,k.default)(e),c=l,f=Array.isArray(c),p=0,c=f?c:(0,T.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}e[d]=null}}function w(e,t){return D(e,C,t),e}t.__esModule=!0,t.createTypeAnnotationBasedOnTypeof=t.removeTypeDuplicates=t.createUnionTypeAnnotation=t.valueToNode=t.toBlock=t.toExpression=t.toStatement=t.toBindingIdentifierName=t.toIdentifier=t.toKeyAlias=t.toSequenceExpression=t.toComputedKey=t.isNodesEquivalent=t.isImmutable=t.isScope=t.isSpecifierDefault=t.isVar=t.isBlockScoped=t.isLet=t.isValidIdentifier=t.isReferenced=t.isBinding=t.getOuterBindingIdentifiers=t.getBindingIdentifiers=t.TYPES=t.react=t.DEPRECATED_KEYS=t.BUILDER_KEYS=t.NODE_FIELDS=t.ALIAS_KEYS=t.VISITOR_KEYS=t.NOT_LOCAL_BINDING=t.BLOCK_SCOPED_SYMBOL=t.INHERIT_KEYS=t.UNARY_OPERATORS=t.STRING_UNARY_OPERATORS=t.NUMBER_UNARY_OPERATORS=t.BOOLEAN_UNARY_OPERATORS=t.BINARY_OPERATORS=t.NUMBER_BINARY_OPERATORS=t.BOOLEAN_BINARY_OPERATORS=t.COMPARISON_BINARY_OPERATORS=t.EQUALITY_BINARY_OPERATORS=t.BOOLEAN_NUMBER_BINARY_OPERATORS=t.UPDATE_OPERATORS=t.LOGICAL_OPERATORS=t.COMMENT_KEYS=t.FOR_INIT_KEYS=t.FLATTENABLE_KEYS=t.STATEMENT_OR_BLOCK_KEYS=void 0;var P=r(360),k=n(P),F=r(2),T=n(F),O=r(14),B=n(O),R=r(35),I=n(R),M=r(135);Object.defineProperty(t,"STATEMENT_OR_BLOCK_KEYS",{enumerable:!0,get:function(){return M.STATEMENT_OR_BLOCK_KEYS}}),Object.defineProperty(t,"FLATTENABLE_KEYS",{enumerable:!0,get:function(){return M.FLATTENABLE_KEYS}}),Object.defineProperty(t,"FOR_INIT_KEYS",{enumerable:!0,get:function(){return M.FOR_INIT_KEYS}}),Object.defineProperty(t,"COMMENT_KEYS",{enumerable:!0,get:function(){return M.COMMENT_KEYS}}),Object.defineProperty(t,"LOGICAL_OPERATORS",{enumerable:!0,get:function(){return M.LOGICAL_OPERATORS}}),Object.defineProperty(t,"UPDATE_OPERATORS",{enumerable:!0,get:function(){return M.UPDATE_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_NUMBER_BINARY_OPERATORS}}),Object.defineProperty(t,"EQUALITY_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.EQUALITY_BINARY_OPERATORS}}),Object.defineProperty(t,"COMPARISON_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.COMPARISON_BINARY_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_BINARY_OPERATORS}}),Object.defineProperty(t,"NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.NUMBER_BINARY_OPERATORS}}),Object.defineProperty(t,"BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BINARY_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_UNARY_OPERATORS}}),Object.defineProperty(t,"NUMBER_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.NUMBER_UNARY_OPERATORS}}),Object.defineProperty(t,"STRING_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.STRING_UNARY_OPERATORS}}),Object.defineProperty(t,"UNARY_OPERATORS",{enumerable:!0,get:function(){return M.UNARY_OPERATORS}}),Object.defineProperty(t,"INHERIT_KEYS",{enumerable:!0,get:function(){return M.INHERIT_KEYS}}),Object.defineProperty(t,"BLOCK_SCOPED_SYMBOL",{enumerable:!0,get:function(){return M.BLOCK_SCOPED_SYMBOL}}),Object.defineProperty(t,"NOT_LOCAL_BINDING",{enumerable:!0,get:function(){return M.NOT_LOCAL_BINDING}}),t.is=s,t.isType=a,t.validate=o,t.shallowEqual=u,t.appendToMemberExpression=l,t.prependToMemberExpression=c,t.ensureBlock=f,t.clone=p,t.cloneWithoutLoc=d,t.cloneDeep=h,t.buildMatchMemberExpression=m,t.removeComments=y,t.inheritsComments=v,t.inheritTrailingComments=g,t.inheritLeadingComments=b,t.inheritInnerComments=E,t.inherits=A,t.assertNode=S,t.isNode=_,t.traverseFast=D,t.removeProperties=C,t.removePropertiesDeep=w;var N=r(226);Object.defineProperty(t,"getBindingIdentifiers",{enumerable:!0,get:function(){return N.getBindingIdentifiers}}),Object.defineProperty(t,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return N.getOuterBindingIdentifiers}});var L=r(395);Object.defineProperty(t,"isBinding",{enumerable:!0,get:function(){return L.isBinding}}),Object.defineProperty(t,"isReferenced",{enumerable:!0,get:function(){return L.isReferenced}}),Object.defineProperty(t,"isValidIdentifier",{enumerable:!0,get:function(){return L.isValidIdentifier}}),Object.defineProperty(t,"isLet",{enumerable:!0,get:function(){return L.isLet}}),Object.defineProperty(t,"isBlockScoped",{enumerable:!0,get:function(){return L.isBlockScoped}}),Object.defineProperty(t,"isVar",{enumerable:!0,get:function(){return L.isVar}}),Object.defineProperty(t,"isSpecifierDefault",{enumerable:!0,get:function(){return L.isSpecifierDefault}}),Object.defineProperty(t,"isScope",{enumerable:!0,get:function(){return L.isScope}}),Object.defineProperty(t,"isImmutable",{enumerable:!0,get:function(){return L.isImmutable}}),Object.defineProperty(t,"isNodesEquivalent",{enumerable:!0,get:function(){return L.isNodesEquivalent}});var j=r(385);Object.defineProperty(t,"toComputedKey",{enumerable:!0,get:function(){return j.toComputedKey}}),Object.defineProperty(t,"toSequenceExpression",{enumerable:!0,get:function(){return j.toSequenceExpression}}),Object.defineProperty(t,"toKeyAlias",{enumerable:!0,get:function(){return j.toKeyAlias}}),Object.defineProperty(t,"toIdentifier",{enumerable:!0,get:function(){return j.toIdentifier}}),Object.defineProperty(t,"toBindingIdentifierName",{enumerable:!0,get:function(){return j.toBindingIdentifierName}}),Object.defineProperty(t,"toStatement",{enumerable:!0,get:function(){return j.toStatement}}),Object.defineProperty(t,"toExpression",{enumerable:!0,get:function(){return j.toExpression}}),Object.defineProperty(t,"toBlock",{enumerable:!0,get:function(){return j.toBlock}}),Object.defineProperty(t,"valueToNode",{enumerable:!0,get:function(){return j.valueToNode}});var U=r(393);Object.defineProperty(t,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return U.createUnionTypeAnnotation}}),Object.defineProperty(t,"removeTypeDuplicates",{enumerable:!0,get:function(){return U.removeTypeDuplicates}}),Object.defineProperty(t,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return U.createTypeAnnotationBasedOnTypeof}});var V=r(624),G=n(V),W=r(109),Y=n(W),q=r(600),K=n(q);r(390);var H=r(26),J=r(394),X=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(J),z=t;t.VISITOR_KEYS=H.VISITOR_KEYS,t.ALIAS_KEYS=H.ALIAS_KEYS,t.NODE_FIELDS=H.NODE_FIELDS,t.BUILDER_KEYS=H.BUILDER_KEYS,t.DEPRECATED_KEYS=H.DEPRECATED_KEYS,t.react=X;for(var $ in z.VISITOR_KEYS)i($);z.FLIPPED_ALIAS_KEYS={},(0,B.default)(z.ALIAS_KEYS).forEach(function(e){z.ALIAS_KEYS[e].forEach(function(t){(z.FLIPPED_ALIAS_KEYS[t]=z.FLIPPED_ALIAS_KEYS[t]||[]).push(e)})}),(0,B.default)(z.FLIPPED_ALIAS_KEYS).forEach(function(e){z[e.toUpperCase()+"_TYPES"]=z.FLIPPED_ALIAS_KEYS[e],i(e)});t.TYPES=(0,B.default)(z.VISITOR_KEYS).concat((0,B.default)(z.FLIPPED_ALIAS_KEYS)).concat((0,B.default)(z.DEPRECATED_KEYS));(0,B.default)(z.BUILDER_KEYS).forEach(function(e){function t(){if(arguments.length>r.length)throw new Error("t."+e+": Too many arguments passed. Received "+arguments.length+" but can receive no more than "+r.length);var t={};t.type=e;for(var n=0,i=r,s=Array.isArray(i),a=0,i=s?i:(0,T.default)(i);;){var u;if(s){if(a>=i.length)break;u=i[a++]}else{if(a=i.next(),a.done)break;u=a.value}var l=u,c=z.NODE_FIELDS[e][l],f=arguments[n++];void 0===f&&(f=(0,Y.default)(c.default)),t[l]=f}for(var p in t)o(t,p,t[p]);return t}var r=z.BUILDER_KEYS[e];z[e]=t,z[e[0].toLowerCase()+e.slice(1)]=t});for(var Q in z.DEPRECATED_KEYS)!function(e){function t(t){return function(){return console.trace("The node type "+e+" has been renamed to "+r),t.apply(this,arguments)}}var r=z.DEPRECATED_KEYS[e];z[e]=z[e[0].toLowerCase()+e.slice(1)]=t(z[r]),z["is"+e]=t(z["is"+r]),z["assert"+e]=t(z["assert"+r])}(Q);(0,G.default)(z),(0,G.default)(z.VISITOR_KEYS);var Z=["tokens","start","end","loc","raw","rawValue"],ee=z.COMMENT_KEYS.concat(["comments"]).concat(Z)},function(e,t,r){"use strict";e.exports={default:r(404),__esModule:!0}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){e=(0,l.default)(e);var r=e,n=r.program;return t.length&&(0,m.default)(e,A,null,t),n.body.length>1?n.body:n.body[0]}t.__esModule=!0;var a=r(10),o=i(a);t.default=function(e,t){var r=void 0;try{throw new Error}catch(e){e.stack&&(r=e.stack.split("\n").slice(1).join("\n"))}t=(0,f.default)({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,preserveComments:!1},t);var n=function(){var i=void 0;try{i=v.parse(e,t),i=m.default.removeProperties(i,{preserveComments:t.preserveComments}),m.default.cheap(i,function(e){e[E]=!0})}catch(e){throw e.stack=e.stack+"from\n"+r,e}return n=function(){return i},i};return function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return s(n(),t)}};var u=r(574),l=i(u),c=r(174),f=i(c),p=r(274),d=i(p),h=r(7),m=i(h),y=r(89),v=n(y),g=r(1),b=n(g),E="_fromTemplate",x=(0,o.default)(),A={noScope:!0,enter:function(e,t){var r=e.node;if(r[x])return e.skip();b.isExpressionStatement(r)&&(r=r.expression);var n=void 0;if(b.isIdentifier(r)&&r[E])if((0,d.default)(t[0],r.name))n=t[0][r.name];else if("$"===r.name[0]){var i=+r.name.slice(1);t[i]&&(n=t[i])}null===n&&e.remove(),n&&(n[x]=!0,e.replaceInline(n))},exit:function(e){var t=e.node;t.loc||m.default.clearNode(t)}};e.exports=t.default},function(e,t){"use strict";var r=e.exports={version:"2.5.0"};"number"==typeof __e&&(__e=r)},function(e,t){"use strict";var r=Array.isArray;e.exports=r},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r,n,i){if(e){if(t||(t={}),!t.noScope&&!r&&"Program"!==e.type&&"File"!==e.type)throw new Error(v.get("traverseNeedsParent",e.type));m.explode(t),s.node(e,t,r,n,i)}}function a(e,t){e.node.type===t.type&&(t.has=!0,e.stop())}t.__esModule=!0,t.visitors=t.Hub=t.Scope=t.NodePath=void 0;var o=r(2),u=i(o),l=r(36);Object.defineProperty(t,"NodePath",{enumerable:!0,get:function(){return i(l).default}});var c=r(134);Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i(c).default}});var f=r(223);Object.defineProperty(t,"Hub",{enumerable:!0,get:function(){return i(f).default}}),t.default=s;var p=r(367),d=i(p),h=r(384),m=n(h),y=r(20),v=n(y),g=r(111),b=i(g),E=r(1),x=n(E),A=r(88),S=n(A);t.visitors=m,s.visitors=m,s.verify=m.verify,s.explode=m.explode,s.NodePath=r(36),s.Scope=r(134),s.Hub=r(223),s.cheap=function(e,t){return x.traverseFast(e,t)},s.node=function(e,t,r,n,i,s){var a=x.VISITOR_KEYS[e.type];if(a)for(var o=new d.default(r,t,n,i),l=a,c=Array.isArray(l),f=0,l=c?l:(0,u.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var h=p;if((!s||!s[h])&&o.visit(e,h))return}},s.clearNode=function(e,t){x.removeProperties(e,t),S.path.delete(e)},s.removeProperties=function(e,t){return x.traverseFast(e,s.clearNode,t),e},s.hasType=function(e,t,r,n){if((0,b.default)(n,e.type))return!1;if(e.type===r)return!0;var i={has:!1,type:r};return s(e,{blacklist:n,enter:a},t,i),i.has},s.clearCache=function(){S.clear()},s.clearCache.clearPath=S.clearPath,s.clearCache.clearScope=S.clearScope,s.copyCache=function(e,t){S.path.has(e)&&S.path.set(t,S.path.get(e))}},function(e,t){"use strict";function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function i(e){if(c===setTimeout)return setTimeout(e,0);if((c===r||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function s(e){if(f===clearTimeout)return clearTimeout(e);if((f===n||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function a(){m&&d&&(m=!1,d.length?h=d.concat(h):y=-1,h.length&&o())}function o(){if(!m){var e=i(a);m=!0;for(var t=h.length;t;){for(d=h,h=[];++y<t;)d&&d[y].run();y=-1,t=h.length}d=null,m=!1,s(e)}}function u(e,t){this.fun=e,this.array=t}function l(){}var c,f,p=e.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:r}catch(e){c=r}try{f="function"==typeof clearTimeout?clearTimeout:n}catch(e){f=n}}();var d,h=[],m=!1,y=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];h.push(new u(e,t)),1!==h.length||m||i(o)},u.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=l,p.addListener=l,p.once=l,p.off=l,p.removeListener=l,p.removeAllListeners=l,p.emit=l,p.prependListener=l,p.prependOnceListener=l,p.listeners=function(e){return[]},p.binding=function(e){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(e){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},function(e,t,r){"use strict";e.exports={default:r(409),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(414),__esModule:!0}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.__esModule=!0;var s=r(363),a=n(s),o=r(10),u=n(o),l="function"==typeof u.default&&"symbol"===i(a.default)?function(e){return void 0===e?"undefined":i(e)}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":void 0===e?"undefined":i(e)};t.default="function"==typeof u.default&&"symbol"===l(a.default)?function(e){return void 0===e?"undefined":l(e)}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":void 0===e?"undefined":l(e)}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(43),a=r(29),o=function e(t,r,o){var u,l,c,f=t&e.F,p=t&e.G,d=t&e.S,h=t&e.P,m=t&e.B,y=t&e.W,v=p?i:i[r]||(i[r]={}),g=v.prototype,b=p?n:d?n[r]:(n[r]||{}).prototype;p&&(o=r);for(u in o)(l=!f&&b&&void 0!==b[u])&&u in v||(c=l?b[u]:o[u],v[u]=p&&"function"!=typeof b[u]?o[u]:m&&l?s(c,n):y&&b[u]==c?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(c):h&&"function"==typeof c?s(Function.call,c):c,h&&((v.virtual||(v.virtual={}))[u]=c,t&e.R&&g&&!g[u]&&a(g,u,c)))};o.F=1,o.G=2,o.S=4,o.P=8,o.B=16,o.W=32,o.U=64,o.R=128,e.exports=o},function(e,t,r){"use strict";var n=r(151)("wks"),i=r(95),s=r(15).Symbol,a="function"==typeof s;(e.exports=function(e){return n[e]||(n[e]=a&&s[e]||(a?s:i)("Symbol."+e))}).store=n},function(e,t,r){"use strict";e.exports={default:r(411),__esModule:!0}},function(e,t){"use strict";var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function(e){return"object"===(void 0===e?"undefined":r(e))?null!==e:"function"==typeof e}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(261),s="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,a=i||s||Function("return this")();e.exports=a},function(e,t){"use strict";function r(e){var t=void 0===e?"undefined":n(e);return null!=e&&("object"==t||"function"==t)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){(function(e){"use strict";function r(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};t.resolve=function(){for(var t="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a=s>=0?arguments[s]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,i="/"===a.charAt(0))}return t=r(n(t.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+t||"."},t.normalize=function(e){var i=t.isAbsolute(e),s="/"===a(e,-1);return e=r(n(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(n(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,r){function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=t.resolve(e).substr(1),r=t.resolve(r).substr(1);for(var i=n(e.split("/")),s=n(r.split("/")),a=Math.min(i.length,s.length),o=a,u=0;u<a;u++)if(i[u]!==s[u]){o=u;break}for(var l=[],u=o;u<i.length;u++)l.push("..");return l=l.concat(s.slice(o)),l.join("/")},t.sep="/",t.delimiter=":",t.dirname=function(e){var t=s(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},t.basename=function(e,t){var r=s(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},t.extname=function(e){return s(e)[3]};var a="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)}}).call(t,r(8))},function(e,t,r){"use strict";function n(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var s=l[e];if(!s)throw new ReferenceError("Unknown message "+(0,a.default)(e));return r=i(r),s.replace(/\$(\d+)/g,function(e,t){return r[t-1]})}function i(e){return e.map(function(e){if(null!=e&&e.inspect)return e.inspect();try{return(0,a.default)(e)||e+""}catch(t){return u.inspect(e)}})}t.__esModule=!0,t.MESSAGES=void 0;var s=r(35),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.get=n,t.parseArgs=i;var o=r(117),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o),l=t.MESSAGES={tailCallReassignmentDeopt:"Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence",classesIllegalBareSuper:"Illegal use of bare super",classesIllegalSuperCall:"Direct super call is illegal in non-constructor, use super.$1() instead",scopeDuplicateDeclaration:"Duplicate declaration $1",settersNoRest:"Setters aren't allowed to have a rest",noAssignmentsInForHead:"No assignments allowed in for-in/of head",expectedMemberExpressionOrIdentifier:"Expected type MemberExpression or Identifier",invalidParentForThisNode:"We don't know how to handle this node within the current parent - please open an issue",readOnly:"$1 is read-only",unknownForHead:"Unknown node type $1 in ForStatement",didYouMean:"Did you mean $1?",codeGeneratorDeopt:"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.",missingTemplatesDirectory:"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues",unsupportedOutputType:"Unsupported output type $1",illegalMethodName:"Illegal method name $1",lostTrackNodePath:"We lost track of this node's position, likely because the AST was directly manipulated",modulesIllegalExportName:"Illegal export $1",modulesDuplicateDeclarations:"Duplicate module declarations with the same source but in different scopes",undeclaredVariable:"Reference to undeclared variable $1",undeclaredVariableType:"Referencing a type alias outside of a type annotation",undeclaredVariableSuggestion:"Reference to undeclared variable $1 - did you mean $2?",traverseNeedsParent:"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.",traverseVerifyRootFunction:"You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?",traverseVerifyVisitorProperty:"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2",traverseVerifyNodeType:"You gave us a visitor for the node type $1 but it's not a valid type",pluginNotObject:"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3",pluginNotFunction:"Plugin $2 specified in $1 was expected to return a function but returned $3",
pluginUnknown:"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4",pluginInvalidProperty:"Plugin $2 specified in $1 provided an invalid property of $3"}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t,r){"use strict";e.exports=!r(27)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,r){"use strict";var n=r(21),i=r(231),s=r(154),a=Object.defineProperty;t.f=r(22)?Object.defineProperty:function(e,t,r){if(n(e),t=s(t,!0),n(r),i)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},function(e,t,r){"use strict";function n(e){return null!=e&&s(e.length)&&!i(e)}var i=r(175),s=r(176);e.exports=n},function(e,t){"use strict";function r(e){return null!=e&&"object"==(void 0===e?"undefined":n(e))}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return Array.isArray(e)?"array":null===e?"null":void 0===e?"undefined":void 0===e?"undefined":(0,v.default)(e)}function s(e){function t(t,r,n){if(Array.isArray(n))for(var i=0;i<n.length;i++)e(t,r+"["+i+"]",n[i])}return t.each=e,t}function a(){function e(e,t,n){if(r.indexOf(n)<0)throw new TypeError("Property "+t+" expected value to be one of "+(0,m.default)(r)+" but got "+(0,m.default)(n))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOf=r,e}function o(){function e(e,t,n){for(var i=!1,s=r,a=Array.isArray(s),o=0,s=a?s:(0,d.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(b.is(l,n)){i=!0;break}}if(!i)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,m.default)(r)+" but instead got "+(0,m.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOfNodeTypes=r,e}function u(){function e(e,t,n){for(var s=!1,a=r,o=Array.isArray(a),u=0,a=o?a:(0,d.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(i(n)===c||b.is(c,n)){s=!0;break}}if(!s)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,m.default)(r)+" but instead got "+(0,m.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOfNodeOrValueTypes=r,e}function l(e){function t(t,r,n){if(i(n)!==e)throw new TypeError("Property "+r+" expected type of "+e+" but got "+i(n))}return t.type=e,t}function c(){function e(){for(var e=r,t=Array.isArray(e),n=0,e=t?e:(0,d.default)(e);;){var i;if(t){if(n>=e.length)break;i=e[n++]}else{if(n=e.next(),n.done)break;i=n.value}i.apply(void 0,arguments)}}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.chainOf=r,e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.inherits&&D[t.inherits]||{};t.fields=t.fields||r.fields||{},t.visitor=t.visitor||r.visitor||[],t.aliases=t.aliases||r.aliases||[],t.builder=t.builder||r.builder||t.visitor||[],t.deprecatedAlias&&(_[t.deprecatedAlias]=e);for(var n=t.visitor.concat(t.builder),s=Array.isArray(n),a=0,n=s?n:(0,d.default)(n);;){var o;if(s){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;t.fields[u]=t.fields[u]||{}}for(var c in t.fields){var f=t.fields[c];-1===t.builder.indexOf(c)&&(f.optional=!0),void 0===f.default?f.default=null:f.validate||(f.validate=l(i(f.default)))}E[e]=t.visitor,S[e]=t.builder,A[e]=t.fields,x[e]=t.aliases,D[e]=t}t.__esModule=!0,t.DEPRECATED_KEYS=t.BUILDER_KEYS=t.NODE_FIELDS=t.ALIAS_KEYS=t.VISITOR_KEYS=void 0;var p=r(2),d=n(p),h=r(35),m=n(h),y=r(11),v=n(y);t.assertEach=s,t.assertOneOf=a,t.assertNodeType=o,t.assertNodeOrValueType=u,t.assertValueType=l,t.chain=c,t.default=f;var g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E=t.VISITOR_KEYS={},x=t.ALIAS_KEYS={},A=t.NODE_FIELDS={},S=t.BUILDER_KEYS={},_=t.DEPRECATED_KEYS={},D={}},function(e,t){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){"use strict";var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){"use strict";var n=r(23),i=r(92);e.exports=r(22)?function(e,t,r){return n.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){"use strict";function n(e){return null==e?void 0===e?u:o:l&&l in Object(e)?s(e):a(e)}var i=r(45),s=r(534),a=r(559),o="[object Null]",u="[object Undefined]",l=i?i.toStringTag:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var a=!r;r||(r={});for(var o=-1,u=t.length;++o<u;){var l=t[o],c=n?n(r[l],e[l],l,r,e):void 0;void 0===c&&(c=e[l]),a?s(r,l,c):i(r,l,c)}return r}var i=r(162),s=r(163);e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)?i(e):s(e)}var i=r(245),s=r(500),a=r(24);e.exports=n},function(e,t){"use strict";e.exports={filename:{type:"filename",description:"filename to use when reading from stdin - this will be used in source-maps, errors etc",default:"unknown",shorthand:"f"},filenameRelative:{hidden:!0,type:"string"},inputSourceMap:{hidden:!0},env:{hidden:!0,default:{}},mode:{description:"",hidden:!0},retainLines:{type:"boolean",default:!1,description:"retain line numbers - will result in really ugly code"},highlightCode:{description:"enable/disable ANSI syntax highlighting of code frames (on by default)",type:"boolean",default:!0},suppressDeprecationMessages:{type:"boolean",default:!1,hidden:!0},presets:{type:"list",description:"",default:[]},plugins:{type:"list",default:[],description:""},ignore:{type:"list",description:"list of glob paths to **not** compile",default:[]},only:{type:"list",description:"list of glob paths to **only** compile"},code:{hidden:!0,default:!0,type:"boolean"},metadata:{hidden:!0,default:!0,type:"boolean"},ast:{hidden:!0,default:!0,type:"boolean"},extends:{type:"string",hidden:!0},comments:{type:"boolean",default:!0,description:"write comments to generated output (true by default)"},shouldPrintComment:{hidden:!0,description:"optional callback to control whether a comment should be inserted, when this is used the comments option is ignored"},wrapPluginVisitorMethod:{hidden:!0,description:"optional callback to wrap all visitor methods"},compact:{type:"booleanString",default:"auto",description:"do not include superfluous whitespace characters and line terminators [true|false|auto]"},minified:{type:"boolean",default:!1,description:"save as much bytes when printing [true|false]"},sourceMap:{alias:"sourceMaps",hidden:!0},sourceMaps:{type:"booleanString",description:"[true|false|inline]",default:!1,shorthand:"s"},sourceMapTarget:{type:"string",description:"set `file` on returned source map"},sourceFileName:{type:"string",description:"set `sources[0]` on returned source map"},sourceRoot:{type:"filename",description:"the root from which all sources are relative"},babelrc:{description:"Whether or not to look up .babelrc and .babelignore files",type:"boolean",default:!0},sourceType:{description:"",default:"module"},auxiliaryCommentBefore:{type:"string",description:"print a comment before any injected non-user code"},auxiliaryCommentAfter:{type:"string",description:"print a comment after any injected non-user code"},resolveModuleSource:{hidden:!0},getModuleId:{hidden:!0},moduleRoot:{type:"filename",description:"optional prefix for the AMD module formatter that will be prepend to the filename on module definitions"},moduleIds:{type:"boolean",default:!1,shorthand:"M",description:"insert an explicit id for modules"},moduleId:{description:"specify a custom name for module ids",type:"string"},passPerPreset:{description:"Whether to spawn a traversal pass per a preset. By default all presets are merged.",type:"boolean",default:!1,hidden:!0},parserOpts:{description:"Options to pass into the parser, or to change parsers (parserOpts.parser)",default:!1},generatorOpts:{description:"Options to pass into the generator, or to change generators (generatorOpts.generator)",default:!1}}},function(e,t,r){(function(n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var a=r(366),o=s(a),u=r(35),l=s(u),c=r(87),f=s(c),p=r(2),d=s(p),h=r(11),m=s(h),y=r(3),v=s(y),g=r(182),b=i(g),E=r(65),x=s(E),A=r(20),S=i(A),_=r(52),D=r(184),C=s(D),w=r(185),P=s(w),k=r(575),F=s(k),T=r(109),O=s(T),B=r(293),R=s(B),I=r(33),M=s(I),N=r(54),L=s(N),j=r(51),U=s(j),V=r(19),G=s(V),W=function(){function e(t){(0,v.default)(this,e),this.resolvedConfigs=[],this.options=e.createBareOptions(),this.log=t}return e.memoisePluginContainer=function(t,r,n,i){for(var s=e.memoisedPlugins,a=Array.isArray(s),o=0,s=a?s:(0,d.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(l.container===t)return l.plugin}var c=void 0;if(c="function"==typeof t?t(b):t,"object"===(void 0===c?"undefined":(0,m.default)(c))){var f=new x.default(c,i);return e.memoisedPlugins.push({container:t,plugin:f}),f}throw new TypeError(S.get("pluginNotObject",r,n,void 0===c?"undefined":(0,m.default)(c))+r+n)},e.createBareOptions=function(){var e={};for(var t in M.default){var r=M.default[t];e[t]=(0,O.default)(r.default)}return e},e.normalisePlugin=function(t,r,n,i){if(!((t=t.__esModule?t.default:t)instanceof x.default)){if("function"!=typeof t&&"object"!==(void 0===t?"undefined":(0,m.default)(t)))throw new TypeError(S.get("pluginNotFunction",r,n,void 0===t?"undefined":(0,m.default)(t)));t=e.memoisePluginContainer(t,r,n,i)}return t.init(r,n),t},e.normalisePlugins=function(t,n,i){return i.map(function(i,s){var a=void 0,o=void 0;if(!i)throw new TypeError("Falsy value found in plugins");Array.isArray(i)?(a=i[0],o=i[1]):a=i;var u="string"==typeof a?a:t+"$"+s;if("string"==typeof a){var l=(0,C.default)(a,n);if(!l)throw new ReferenceError(S.get("pluginUnknown",a,t,s,n));a=r(179)(l)}return a=e.normalisePlugin(a,t,s,u),[a,o]})},e.prototype.mergeOptions=function(t){var r=this,i=t.options,s=t.extending,a=t.alias,o=t.loc,u=t.dirname;if(a=a||"foreign",i){("object"!==(void 0===i?"undefined":(0,m.default)(i))||Array.isArray(i))&&this.log.error("Invalid options type for "+a,TypeError);var l=(0,F.default)(i,function(e){if(e instanceof x.default)return e});u=u||n.cwd(),o=o||a;for(var c in l){if(!M.default[c]&&this.log)if(L.default[c])this.log.error("Using removed Babel 5 option: "+a+"."+c+" - "+L.default[c].message,ReferenceError);else{var p="Unknown option: "+a+"."+c+". Check out http://babeljs.io/docs/usage/options/ for more information about options.";this.log.error(p+"\n\nA common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:\n\nInvalid:\n  `{ presets: [{option: value}] }`\nValid:\n  `{ presets: [['presetName', {option: value}]] }`\n\nFor more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options.",ReferenceError)}}(0,_.normaliseOptions)(l),l.plugins&&(l.plugins=e.normalisePlugins(o,u,l.plugins)),l.presets&&(l.passPerPreset?l.presets=this.resolvePresets(l.presets,u,function(e,t){r.mergeOptions({options:e,extending:e,alias:t,loc:t,dirname:u})}):(this.mergePresets(l.presets,u),delete l.presets)),i===s?(0,f.default)(s,l):(0,R.default)(s||this.options,l)}},e.prototype.mergePresets=function(e,t){var r=this;this.resolvePresets(e,t,function(e,t){r.mergeOptions({options:e,alias:t,loc:t,dirname:G.default.dirname(t||"")})})},e.prototype.resolvePresets=function(e,t,n){return e.map(function(e){var i=void 0;if(Array.isArray(e)){if(e.length>2)throw new Error("Unexpected extra options "+(0,l.default)(e.slice(2))+" passed to preset.");var s=e;e=s[0],i=s[1]}var a=void 0;try{if("string"==typeof e){if(!(a=(0,P.default)(e,t)))throw new Error("Couldn't find preset "+(0,l.default)(e)+" relative to directory "+(0,l.default)(t));e=r(179)(a)}if("object"===(void 0===e?"undefined":(0,m.default)(e))&&e.__esModule)if(e.default)e=e.default;else{var u=e,c=(u.__esModule,(0,o.default)(u,["__esModule"]));e=c}if("object"===(void 0===e?"undefined":(0,m.default)(e))&&e.buildPreset&&(e=e.buildPreset),"function"!=typeof e&&void 0!==i)throw new Error("Options "+(0,l.default)(i)+" passed to "+(a||"a preset")+" which does not accept options.");if("function"==typeof e&&(e=e(b,i,{dirname:t})),"object"!==(void 0===e?"undefined":(0,m.default)(e)))throw new Error("Unsupported preset format: "+e+".");n&&n(e,a)}catch(e){throw a&&(e.message+=" (While processing preset: "+(0,l.default)(a)+")"),e}return e})},e.prototype.normaliseOptions=function(){var e=this.options;for(var t in M.default){var r=M.default[t],n=e[t];!n&&r.optional||(r.alias?e[r.alias]=e[r.alias]||n:e[t]=n)}},e.prototype.init=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,U.default)(e,this.log),r=Array.isArray(t),n=0,t=r?t:(0,d.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this.mergeOptions(s)}return this.normaliseOptions(e),this.options},e}();t.default=W,W.memoisedPlugins=[],e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";e.exports={default:r(405),__esModule:!0}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(2),a=i(s),o=r(3),u=i(o),l=r(224),c=n(l),f=r(239),p=i(f),d=r(466),h=i(d),m=r(7),y=i(m),v=r(174),g=i(v),b=r(134),E=i(b),x=r(1),A=n(x),S=r(88),_=(0,p.default)("babel"),D=function(){function e(t,r){(0,u.default)(this,e),this.parent=r,this.hub=t,this.contexts=[],this.data={},this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.state=null,this.opts=null,this.skipKeys=null,this.parentPath=null,this.context=null,this.container=null,this.listKey=null,this.inList=!1,this.parentKey=null,this.key=null,this.node=null,this.scope=null,this.type=null,this.typeAnnotation=null}return e.get=function(t){var r=t.hub,n=t.parentPath,i=t.parent,s=t.container,a=t.listKey,o=t.key;!r&&n&&(r=n.hub),(0,h.default)(i,"To get a node path the parent needs to exist");var u=s[o],l=S.path.get(i)||[];S.path.has(i)||S.path.set(i,l);for(var c=void 0,f=0;f<l.length;f++){var p=l[f];if(p.node===u){c=p;break}}return c||(c=new e(r,i),l.push(c)),c.setup(n,s,a,o),c},e.prototype.getScope=function(e){var t=e;return this.isScope()&&(t=new E.default(this,e)),t},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e,t){var r=this.data[e];return!r&&t&&(r=this.data[e]=t),r},e.prototype.buildCodeFrameError=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:SyntaxError;return this.hub.file.buildCodeFrameError(this.node,e,t)},e.prototype.traverse=function(e,t){(0,y.default)(this.node,e,this.scope,t,this)},e.prototype.mark=function(e,t){this.hub.file.metadata.marked.push({type:e,message:t,loc:this.node.loc})},e.prototype.set=function(e,t){A.validate(this.node,e,t),this.node[e]=t},e.prototype.getPathLocation=function(){var e=[],t=this;do{var r=t.key;t.inList&&(r=t.listKey+"["+r+"]"),e.unshift(r)}while(t=t.parentPath);return e.join(".")},e.prototype.debug=function(e){_.enabled&&_(this.getPathLocation()+" "+this.type+": "+e())},e}();t.default=D,(0,g.default)(D.prototype,r(368)),(0,g.default)(D.prototype,r(374)),(0,g.default)(D.prototype,r(382)),(0,g.default)(D.prototype,r(372)),(0,g.default)(D.prototype,r(371)),(0,g.default)(D.prototype,r(377)),(0,g.default)(D.prototype,r(370)),(0,g.default)(D.prototype,r(381)),(0,g.default)(D.prototype,r(380)),(0,g.default)(D.prototype,r(373)),(0,g.default)(D.prototype,r(369));for(var C=A.TYPES,w=Array.isArray(C),P=0,C=w?C:(0,a.default)(C);;){var k;if("break"===function(){if(w){if(P>=C.length)return"break";k=C[P++]}else{if(P=C.next(),P.done)return"break";k=P.value}var e=k,t="is"+e;D.prototype[t]=function(e){return A[t](this.node,e)},D.prototype["assert"+e]=function(r){if(!this[t](r))throw new TypeError("Expected node path of type "+e)}}())break}for(var F in c){(function(e){if("_"===e[0])return"continue";A.TYPES.indexOf(e)<0&&A.TYPES.push(e);var t=c[e];D.prototype["is"+e]=function(e){return t.checkPath(this,e)}})(F)}e.exports=t.default},function(e,t,r){"use strict";var n=r(142),i=r(140);e.exports=function(e){return n(i(e))}},function(e,t,r){"use strict";function n(e,t){var r=s(e,t);return i(r)?r:void 0}var i=r(497),s=r(535);e.exports=n},function(e,t){"use strict";e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r,n){if(e.selfReference){if(!n.hasBinding(r.name)||n.hasGlobal(r.name)){if(!f.isFunction(t))return;var i=p;t.generator&&(i=d);var s=i({FUNCTION:t,FUNCTION_ID:r,FUNCTION_KEY:n.generateUidIdentifier(r.name)}).expression;s.callee._skipModulesRemap=!0;for(var a=s.callee.body.body[0].params,u=0,l=(0,o.default)(t);u<l;u++)a.push(n.generateUidIdentifier("x"));return s}n.rename(r.name)}t.id=r,n.getProgramParent().references[r.name]=!0}function s(e,t,r){var n={selfAssignment:!1,selfReference:!1,outerDeclar:r.getBindingIdentifier(t),references:[],name:t},i=r.getOwnBinding(t);return i?"param"===i.kind&&(n.selfReference=!0):(n.outerDeclar||r.hasGlobal(t))&&r.traverse(e,h,n),n}t.__esModule=!0,t.default=function(e){var t=e.node,r=e.parent,n=e.scope,a=e.id;if(!t.id){if(!f.isObjectProperty(r)&&!f.isObjectMethod(r,{kind:"method"})||r.computed&&!f.isLiteral(r.key)){if(f.isVariableDeclarator(r)){if(a=r.id,f.isIdentifier(a)){var o=n.parent.getBinding(a.name);if(o&&o.constant&&n.getBinding(a.name)===o)return t.id=a,void(t.id[f.NOT_LOCAL_BINDING]=!0)}}else if(f.isAssignmentExpression(r))a=r.left;else if(!a)return}else a=r.key;var u=void 0;if(a&&f.isLiteral(a))u=a.value;else{if(!a||!f.isIdentifier(a))return;u=a.name}u=f.toBindingIdentifierName(u),a=f.identifier(u),a[f.NOT_LOCAL_BINDING]=!0;return i(s(t,u,n),t,a,n)||t}};var a=r(189),o=n(a),u=r(4),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=(0,l.default)("\n  (function (FUNCTION_KEY) {\n    function FUNCTION_ID() {\n      return FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    }\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"),d=(0,l.default)("\n  (function (FUNCTION_KEY) {\n    function* FUNCTION_ID() {\n      return yield* FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    };\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"),h={"ReferencedIdentifier|BindingIdentifier":function(e,t){if(e.node.name===t.name){e.scope.getBindingIdentifier(t.name)===t.outerDeclar&&(t.selfReference=!0,e.stop())}}};e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(361),s=n(i),a=r(9),o=n(a),u=r(11),l=n(u);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,l.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(s.default?(0,s.default)(e,t):e.__proto__=t)}},function(e,t,r){"use strict";t.__esModule=!0;var n=r(11),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,i.default)(t))&&"function"!=typeof t?e:t}},function(e,t,r){"use strict";var n=r(227);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,r){"use strict";var n=r(237),i=r(141);e.exports=Object.keys||function(e){return n(e,i)}},function(e,t,r){"use strict";var n=r(17),i=n.Symbol;e.exports=i},function(e,t){"use strict";function r(e,t){return e===t||e!==e&&t!==t}e.exports=r},function(e,t,r){"use strict";function n(e){return a(e)?i(e,!0):s(e)}var i=r(245),s=r(501),a=r(24);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(e),r=t%1;return t===t?r?t-r:t:0}var i=r(597);e.exports=n},function(e,t){(function(t){e.exports=t}).call(t,{})},function(e,t,r){(function(e){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.File=void 0;var s=r(2),a=i(s),o=r(9),u=i(o),l=r(87),c=i(l),f=r(3),p=i(f),d=r(42),h=i(d),m=r(41),y=i(m),v=r(194),g=i(v),b=r(121),E=n(b),x=r(403),A=i(x),S=r(34),_=i(S),D=r(299),C=i(D),w=r(7),P=i(w),k=r(288),F=i(k),T=r(186),O=i(T),B=r(181),R=i(B),I=r(273),M=i(I),N=r(120),L=i(N),j=r(119),U=i(j),V=r(89),G=r(122),W=n(G),Y=r(19),q=i(Y),K=r(1),H=n(K),J=r(118),X=i(J),z=r(296),$=i(z),Q=r(297),Z=i(Q),ee=/^#!.*/,te=[[$.default],[Z.default]],re={enter:function(e,t){var r=e.node.loc;r&&(t.loc=r,e.stop())}},ne=function(t){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments[1];(0,p.default)(this,n);var i=(0,h.default)(this,t.call(this));return i.pipeline=r,i.log=new L.default(i,e.filename||"unknown"),i.opts=i.initOptions(e),i.parserOpts={sourceType:i.opts.sourceType,sourceFileName:i.opts.filename,plugins:[]},i.pluginVisitors=[],i.pluginPasses=[],i.buildPluginsForOptions(i.opts),i.opts.passPerPreset&&(i.perPresetOpts=[],i.opts.presets.forEach(function(e){var t=(0,c.default)((0,u.default)(i.opts),e);i.perPresetOpts.push(t),i.buildPluginsForOptions(t)})),i.metadata={usedHelpers:[],marked:[],modules:{imports:[],exports:{exported:[],specifiers:[]}}},i.dynamicImportTypes={},i.dynamicImportIds={},i.dynamicImports=[],i.declarations={},i.usedHelpers={},i.path=null,i.ast={},i.code="",i.shebang="",i.hub=new w.Hub(i),i}return(0,y.default)(n,t),n.prototype.getMetadata=function(){for(var e=!1,t=this.ast.program.body,r=Array.isArray(t),n=0,t=r?t:(0,a.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(H.isModuleDeclaration(s)){e=!0;break}}e&&this.path.traverse(E,this)},n.prototype.initOptions=function(e){e=new _.default(this.log,this.pipeline).init(e),e.inputSourceMap&&(e.sourceMaps=!0),e.moduleId&&(e.moduleIds=!0),e.basename=q.default.basename(e.filename,q.default.extname(e.filename)),e.ignore=W.arrayify(e.ignore,W.regexify),e.only&&(e.only=W.arrayify(e.only,W.regexify)),(0,M.default)(e,{moduleRoot:e.sourceRoot}),(0,M.default)(e,{sourceRoot:e.moduleRoot}),(0,M.default)(e,{filenameRelative:e.filename});var t=q.default.basename(e.filenameRelative);return(0,M.default)(e,{sourceFileName:t,sourceMapTarget:t}),e},n.prototype.buildPluginsForOptions=function(e){if(Array.isArray(e.plugins)){for(var t=e.plugins.concat(te),r=[],n=[],i=t,s=Array.isArray(i),o=0,i=s?i:(0,a.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u,c=l[0],f=l[1];r.push(c.visitor),n.push(new C.default(this,c,f)),c.manipulateOptions&&c.manipulateOptions(e,this.parserOpts,this)}this.pluginVisitors.push(r),this.pluginPasses.push(n)}},n.prototype.getModuleName=function(){var e=this.opts;if(!e.moduleIds)return null;if(null!=e.moduleId&&!e.getModuleId)return e.moduleId;var t=e.filenameRelative,r="";if(null!=e.moduleRoot&&(r=e.moduleRoot+"/"),!e.filenameRelative)return r+e.filename.replace(/^\//,"");if(null!=e.sourceRoot){var n=new RegExp("^"+e.sourceRoot+"/?");t=t.replace(n,"")}return t=t.replace(/\.(\w*?)$/,""),r+=t,r=r.replace(/\\/g,"/"),e.getModuleId?e.getModuleId(r)||r:r},n.prototype.resolveModuleSource=function(e){var t=this.opts.resolveModuleSource;return t&&(e=t(e,this.opts.filename)),e},n.prototype.addImport=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,n=e+":"+t,i=this.dynamicImportIds[n];if(!i){e=this.resolveModuleSource(e),i=this.dynamicImportIds[n]=this.scope.generateUidIdentifier(r);var s=[];"*"===t?s.push(H.importNamespaceSpecifier(i)):"default"===t?s.push(H.importDefaultSpecifier(i)):s.push(H.importSpecifier(i,H.identifier(t)));var a=H.importDeclaration(s,H.stringLiteral(e));a._blockHoist=3,this.path.unshiftContainer("body",a)}return i},n.prototype.addHelper=function(e){var t=this.declarations[e];if(t)return t;this.usedHelpers[e]||(this.metadata.usedHelpers.push(e),this.usedHelpers[e]=!0);var r=this.get("helperGenerator"),n=this.get("helpersNamespace");if(r){var i=r(e);if(i)return i}else if(n)return H.memberExpression(n,H.identifier(e));var s=(0,g.default)(e),a=this.declarations[e]=this.scope.generateUidIdentifier(e);return H.isFunctionExpression(s)&&!s.id?(s.body._compact=!0,s._generated=!0,s.id=a,s.type="FunctionDeclaration",this.path.unshiftContainer("body",s)):(s._compact=!0,this.scope.push({id:a,init:s,unique:!0})),a},n.prototype.addTemplateObject=function(e,t,r){var n=r.elements.map(function(e){return e.value}),i=e+"_"+r.elements.length+"_"+n.join(","),s=this.declarations[i];if(s)return s;var a=this.declarations[i]=this.scope.generateUidIdentifier("templateObject"),o=this.addHelper(e),u=H.callExpression(o,[t,r]);return u._compact=!0,this.scope.push({id:a,init:u,_blockHoist:1.9}),a},n.prototype.buildCodeFrameError=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:SyntaxError,n=e&&(e.loc||e._loc),i=new r(t);return n?i.loc=n.start:((0,P.default)(e,re,this.scope,i),i.message+=" (This is an error on an internal node. Probably an internal error",i.loc&&(i.message+=". Location has been estimated."),i.message+=")"),i},n.prototype.mergeSourceMap=function(e){var t=this.opts.inputSourceMap;if(t){var r=new F.default.SourceMapConsumer(t),n=new F.default.SourceMapConsumer(e),i=new F.default.SourceMapGenerator({file:r.file,sourceRoot:r.sourceRoot}),s=n.sources[0];r.eachMapping(function(e){var t=n.generatedPositionFor({line:e.generatedLine,column:e.generatedColumn,source:s});null!=t.column&&i.addMapping({source:e.source,original:null==e.source?null:{line:e.originalLine,column:e.originalColumn},generated:t})});var a=i.toJSON();return t.mappings=a.mappings,t}return e},n.prototype.parse=function(t){var n=V.parse,i=this.opts.parserOpts;if(i&&(i=(0,c.default)({},this.parserOpts,i),i.parser)){if("string"==typeof i.parser){var s=q.default.dirname(this.opts.filename)||e.cwd(),a=(0,X.default)(i.parser,s);if(!a)throw new Error("Couldn't find parser "+i.parser+' with "parse" method relative to directory '+s);n=r(178)(a).parse}else n=i.parser;i.parser={parse:function(e){return(0,V.parse)(e,i)}}}this.log.debug("Parse start");var o=n(t,i||this.parserOpts);return this.log.debug("Parse stop"),o},n.prototype._addAst=function(e){this.path=w.NodePath.get({hub:this.hub,parentPath:null,parent:e,container:e,key:"program"}).setContext(),this.scope=this.path.scope,this.ast=e,this.getMetadata()},n.prototype.addAst=function(e){this.log.debug("Start set AST"),this._addAst(e),this.log.debug("End set AST")},n.prototype.transform=function(){for(var e=0;e<this.pluginPasses.length;e++){var t=this.pluginPasses[e];this.call("pre",t),this.log.debug("Start transform traverse");var r=P.default.visitors.merge(this.pluginVisitors[e],t,this.opts.wrapPluginVisitorMethod);(0,P.default)(this.ast,r,this.scope),this.log.debug("End transform traverse"),this.call("post",t)}return this.generate()},n.prototype.wrap=function(t,r){t+="";try{return this.shouldIgnore()?this.makeResult({code:t,ignored:!0}):r()}catch(r){if(r._babel)throw r;r._babel=!0;var n=r.message=this.opts.filename+": "+r.message,i=r.loc;if(i&&(r.codeFrame=(0,R.default)(t,i.line,i.column+1,this.opts),n+="\n"+r.codeFrame),e.browser&&(r.message=n),r.stack){var s=r.stack.replace(r.message,n);r.stack=s}throw r}},n.prototype.addCode=function(e){e=(e||"")+"",e=this.parseInputSourceMap(e),this.code=e},n.prototype.parseCode=function(){this.parseShebang();var e=this.parse(this.code);this.addAst(e)},n.prototype.shouldIgnore=function(){var e=this.opts;return W.shouldIgnore(e.filename,e.ignore,e.only)},n.prototype.call=function(e,t){for(var r=t,n=Array.isArray(r),i=0,r=n?r:(0,a.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var o=s,u=o.plugin,l=u[e];l&&l.call(o,this)}},n.prototype.parseInputSourceMap=function(e){var t=this.opts;if(!1!==t.inputSourceMap){var r=A.default.fromSource(e);r&&(t.inputSourceMap=r.toObject(),e=A.default.removeComments(e))}return e},n.prototype.parseShebang=function(){var e=ee.exec(this.code);e&&(this.shebang=e[0],this.code=this.code.replace(ee,""))},n.prototype.makeResult=function(e){var t=e.code,r=e.map,n=e.ast,i=e.ignored,s={metadata:null,options:this.opts,ignored:!!i,code:null,ast:null,map:r||null};return this.opts.code&&(s.code=t),this.opts.ast&&(s.ast=n),this.opts.metadata&&(s.metadata=this.metadata),s},n.prototype.generate=function(){var t=this.opts,n=this.ast,i={ast:n};if(!t.code)return this.makeResult(i);var s=O.default;if(t.generatorOpts.generator&&"string"==typeof(s=t.generatorOpts.generator)){var a=q.default.dirname(this.opts.filename)||e.cwd(),o=(0,X.default)(s,a);if(!o)throw new Error("Couldn't find generator "+s+' with "print" method relative to directory '+a);s=r(178)(o).print}this.log.debug("Generation start");var u=s(n,t.generatorOpts?(0,c.default)(t,t.generatorOpts):t,this.code);return i.code=u.code,i.map=u.map,this.log.debug("Generation end"),this.shebang&&(i.code=this.shebang+"\n"+i.code),i.map&&(i.map=this.mergeSourceMap(i.map)),"inline"!==t.sourceMaps&&"both"!==t.sourceMaps||(i.code+="\n"+A.default.fromObject(i.map).toComment()),"inline"===t.sourceMaps&&(i.map=null),this.makeResult(i)},n}(U.default);t.default=ne,t.File=ne}).call(t,r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=x[e];return null==t?x[e]=E.default.existsSync(e):t}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],r=e.filename,n=new S(t);return!1!==e.babelrc&&n.findConfigs(r),n.mergeConfig({options:e,alias:"base",dirname:r&&g.default.dirname(r)}),n.configs}t.__esModule=!0;var o=r(87),u=i(o),l=r(3),c=i(l);t.default=a;var f=r(118),p=i(f),d=r(470),h=i(d),m=r(604),y=i(m),v=r(19),g=i(v),b=r(115),E=i(b),x={},A={},S=function(){function e(t){(0,c.default)(this,e),this.resolvedConfigs=[],this.configs=[],this.log=t}return e.prototype.findConfigs=function(e){if(e){(0,y.default)(e)||(e=g.default.join(n.cwd(),e));for(var t=!1,r=!1;e!==(e=g.default.dirname(e));){if(!t){var i=g.default.join(e,".babelrc");s(i)&&(this.addConfig(i),t=!0);var a=g.default.join(e,"package.json");!t&&s(a)&&(t=this.addConfig(a,"babel",JSON))}if(!r){var o=g.default.join(e,".babelignore");s(o)&&(this.addIgnoreConfig(o),r=!0)}if(r&&t)return}}},e.prototype.addIgnoreConfig=function(e){var t=E.default.readFileSync(e,"utf8"),r=t.split("\n");r=r.map(function(e){return e.replace(/#(.*?)$/,"").trim()}).filter(function(e){return!!e}),r.length&&this.mergeConfig({options:{ignore:r},alias:e,dirname:g.default.dirname(e)})},e.prototype.addConfig=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.default;if(this.resolvedConfigs.indexOf(e)>=0)return!1
;this.resolvedConfigs.push(e);var n=E.default.readFileSync(e,"utf8"),i=void 0;try{i=A[n]=A[n]||r.parse(n),t&&(i=i[t])}catch(t){throw t.message=e+": Error while parsing JSON - "+t.message,t}return this.mergeConfig({options:i,alias:e,dirname:g.default.dirname(e)}),!!i},e.prototype.mergeConfig=function(e){var t=e.options,r=e.alias,i=e.loc,s=e.dirname;if(!t)return!1;if(t=(0,u.default)({},t),s=s||n.cwd(),i=i||r,t.extends){var a=(0,p.default)(t.extends,s);a?this.addConfig(a):this.log&&this.log.error("Couldn't resolve extends clause of "+t.extends+" in "+r),delete t.extends}this.configs.push({options:t,alias:r,loc:i,dirname:s});var o=void 0,l=n.env.BABEL_ENV||"production"||"development";t.env&&(o=t.env[l],delete t.env),this.mergeConfig({options:o,alias:r+".env."+l,dirname:s})},e}();e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e){var r=e[t];if(null!=r){var n=o.default[t];if(n&&n.alias&&(n=o.default[n.alias]),n){var i=s[n.type];i&&(r=i(r)),e[t]=r}}}return e}t.__esModule=!0,t.config=void 0,t.normaliseOptions=n;var i=r(53),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(i),a=r(33),o=function(e){return e&&e.__esModule?e:{default:e}}(a);t.config=o.default},function(e,t,r){"use strict";function n(e){return!!e}function i(e){return l.booleanify(e)}function s(e){return l.list(e)}t.__esModule=!0,t.filename=void 0,t.boolean=n,t.booleanString=i,t.list=s;var a=r(284),o=function(e){return e&&e.__esModule?e:{default:e}}(a),u=r(122),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.filename=o.default},function(e,t){"use strict";e.exports={auxiliaryComment:{message:"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"},blacklist:{message:"Put the specific transforms you want in the `plugins` option"},breakConfig:{message:"This is not a necessary option in Babel 6"},experimental:{message:"Put the specific transforms you want in the `plugins` option"},externalHelpers:{message:"Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"},extra:{message:""},jsxPragma:{message:"use the `pragma` option in the `react-jsx` plugin . Check out http://babeljs.io/docs/plugins/transform-react-jsx/"},loose:{message:"Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."},metadataUsedHelpers:{message:"Not required anymore as this is enabled by default"},modules:{message:"Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"},nonStandard:{message:"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"},optional:{message:"Put the specific transforms you want in the `plugins` option"},sourceMapName:{message:"Use the `sourceMapTarget` option"},stage:{message:"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"},whitelist:{message:"Put the specific transforms you want in the `plugins` option"}}},function(e,t,r){"use strict";var n=r(43),i=r(428),s=r(427),a=r(21),o=r(153),u=r(238),l={},c={},f=e.exports=function(e,t,r,f,p){var d,h,m,y,v=p?function(){return e}:u(e),g=n(r,f,t?2:1),b=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(s(v)){for(d=o(e.length);d>b;b++)if((y=t?g(a(h=e[b])[0],h[1]):g(e[b]))===l||y===c)return y}else for(m=v.call(e);!(h=m.next()).done;)if((y=i(m,g,h.value,t))===l||y===c)return y};f.BREAK=l,f.RETURN=c},function(e,t){"use strict";e.exports={}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(95)("meta"),s=r(16),a=r(28),o=r(23).f,u=0,l=Object.isExtensible||function(){return!0},c=!r(27)(function(){return l(Object.preventExtensions({}))}),f=function(e){o(e,i,{value:{i:"O"+ ++u,w:{}}})},p=function(e,t){if(!s(e))return"symbol"==(void 0===e?"undefined":n(e))?e:("string"==typeof e?"S":"P")+e;if(!a(e,i)){if(!l(e))return"F";if(!t)return"E";f(e)}return e[i].i},d=function(e,t){if(!a(e,i)){if(!l(e))return!0;if(!t)return!1;f(e)}return e[i].w},h=function(e){return c&&m.NEED&&l(e)&&!a(e,i)&&f(e),e},m=e.exports={KEY:i,NEED:!1,fastKey:p,getWeak:d,onFreeze:h}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e,t){if(!n(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,r){"use strict";r(440);for(var n=r(15),i=r(29),s=r(56),a=r(13)("toStringTag"),o="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<o.length;u++){var l=o[u],c=n[l],f=c&&c.prototype;f&&!f[a]&&i(f,a,l),s[l]=s.Array}},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}e.exports=r},function(e,t,r){"use strict";function n(e){return"function"==typeof e?e:null==e?o:"object"==(void 0===e?"undefined":i(e))?u(e)?a(e[0],e[1]):s(e):l(e)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(502),a=r(503),o=r(110),u=r(6),l=r(592);e.exports=n},function(e,t,r){"use strict";function n(e){return"symbol"==(void 0===e?"undefined":i(e))||a(e)&&s(e)==o}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(30),a=r(25),o="[object Symbol]";e.exports=n},function(e,t){"use strict";function r(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}function n(e){var t=e.match(y);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function s(e){var r=e,s=n(e);if(s){if(!s.path)return e;r=s.path}for(var a,o=t.isAbsolute(r),u=r.split(/\/+/),l=0,c=u.length-1;c>=0;c--)a=u[c],"."===a?u.splice(c,1):".."===a?l++:l>0&&(""===a?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return r=u.join("/"),""===r&&(r=o?"/":"."),s?(s.path=r,i(s)):r}function a(e,t){""===e&&(e="."),""===t&&(t=".");var r=n(t),a=n(e);if(a&&(e=a.path||"/"),r&&!r.scheme)return a&&(r.scheme=a.scheme),i(r);if(r||t.match(v))return t;if(a&&!a.host&&!a.path)return a.host=t,i(a);var o="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return a?(a.path=o,i(a)):o}function o(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if(e=e.slice(0,n),e.match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)}function u(e){return e}function l(e){return f(e)?"$"+e:e}function c(e){return f(e)?e.slice(1):e}function f(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function p(e,t,r){var n=e.source-t.source;return 0!==n?n:0!==(n=e.originalLine-t.originalLine)?n:0!==(n=e.originalColumn-t.originalColumn)||r?n:0!==(n=e.generatedColumn-t.generatedColumn)?n:(n=e.generatedLine-t.generatedLine,0!==n?n:e.name-t.name)}function d(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!==(n=e.generatedColumn-t.generatedColumn)||r?n:0!==(n=e.source-t.source)?n:0!==(n=e.originalLine-t.originalLine)?n:(n=e.originalColumn-t.originalColumn,0!==n?n:e.name-t.name)}function h(e,t){return e===t?0:e>t?1:-1}function m(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!==(r=e.generatedColumn-t.generatedColumn)?r:0!==(r=h(e.source,t.source))?r:0!==(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,0!==r?r:h(e.name,t.name))}t.getArg=r;var y=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,v=/^data:.+\,.+$/;t.urlParse=n,t.urlGenerate=i,t.normalize=s,t.join=a,t.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(y)},t.relative=o;var g=function(){return!("__proto__"in Object.create(null))}();t.toSetString=g?u:l,t.fromSetString=g?u:c,t.compareByOriginalPositions=p,t.compareByGeneratedPositionsDeflated=d,t.compareByGeneratedPositionsInflated=m},function(e,t,r){(function(t){"use strict";function n(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i<s;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}function i(e){return t.Buffer&&"function"==typeof t.Buffer.isBuffer?t.Buffer.isBuffer(e):!(null==e||!e._isBuffer)}function s(e){return Object.prototype.toString.call(e)}function a(e){return!i(e)&&("function"==typeof t.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function o(e){if(x.isFunction(e)){if(_)return e.name;var t=e.toString(),r=t.match(C);return r&&r[1]}}function u(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function l(e){if(_||!x.isFunction(e))return x.inspect(e);var t=o(e);return"[Function"+(t?": "+t:"")+"]"}function c(e){return u(l(e.actual),128)+" "+e.operator+" "+u(l(e.expected),128)}function f(e,t,r,n,i){throw new D.AssertionError({message:r,actual:e,expected:t,operator:n,stackStartFunction:i})}function p(e,t){e||f(e,!0,t,"==",D.ok)}function d(e,t,r,o){if(e===t)return!0;if(i(e)&&i(t))return 0===n(e,t);if(x.isDate(e)&&x.isDate(t))return e.getTime()===t.getTime();if(x.isRegExp(e)&&x.isRegExp(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"===(void 0===e?"undefined":E(e))||null!==t&&"object"===(void 0===t?"undefined":E(t))){if(a(e)&&a(t)&&s(e)===s(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===n(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(i(e)!==i(t))return!1;o=o||{actual:[],expected:[]};var u=o.actual.indexOf(e);return-1!==u&&u===o.expected.indexOf(t)||(o.actual.push(e),o.expected.push(t),m(e,t,r,o))}return r?e===t:e==t}function h(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function m(e,t,r,n){if(null===e||void 0===e||null===t||void 0===t)return!1;if(x.isPrimitive(e)||x.isPrimitive(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=h(e),s=h(t);if(i&&!s||!i&&s)return!1;if(i)return e=S.call(e),t=S.call(t),d(e,t,r);var a,o,u=w(e),l=w(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),o=u.length-1;o>=0;o--)if(u[o]!==l[o])return!1;for(o=u.length-1;o>=0;o--)if(a=u[o],!d(e[a],t[a],r,n))return!1;return!0}function y(e,t,r){d(e,t,!0)&&f(e,t,r,"notDeepStrictEqual",y)}function v(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function g(e){var t;try{e()}catch(e){t=e}return t}function b(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=g(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&f(i,r,"Missing expected exception"+n);var s="string"==typeof n,a=!e&&x.isError(i),o=!e&&i&&!r;if((a&&s&&v(i,r)||o)&&f(i,r,"Got unwanted exception"+n),e&&i&&r&&!v(i,r)||!e&&i)throw i}var E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x=r(117),A=Object.prototype.hasOwnProperty,S=Array.prototype.slice,_=function(){return"foo"===function(){}.name}(),D=e.exports=p,C=/\s*function\s+([^\(\s]*)\s*/;D.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=c(this),this.generatedMessage=!0);var t=e.stackStartFunction||f;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=o(t),s=n.indexOf("\n"+i);if(s>=0){var a=n.indexOf("\n",s+1);n=n.substring(a+1)}this.stack=n}}},x.inherits(D.AssertionError,Error),D.fail=f,D.ok=p,D.equal=function(e,t,r){e!=t&&f(e,t,r,"==",D.equal)},D.notEqual=function(e,t,r){e==t&&f(e,t,r,"!=",D.notEqual)},D.deepEqual=function(e,t,r){d(e,t,!1)||f(e,t,r,"deepEqual",D.deepEqual)},D.deepStrictEqual=function(e,t,r){d(e,t,!0)||f(e,t,r,"deepStrictEqual",D.deepStrictEqual)},D.notDeepEqual=function(e,t,r){d(e,t,!1)&&f(e,t,r,"notDeepEqual",D.notDeepEqual)},D.notDeepStrictEqual=y,D.strictEqual=function(e,t,r){e!==t&&f(e,t,r,"===",D.strictEqual)},D.notStrictEqual=function(e,t,r){e===t&&f(e,t,r,"!==",D.notStrictEqual)},D.throws=function(e,t,r){b(!0,e,t,r)},D.doesNotThrow=function(e,t,r){b(!1,e,t,r)},D.ifError=function(e){if(e)throw e};var w=Object.keys||function(e){var t=[];for(var r in e)A.call(e,r)&&t.push(r);return t}}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c),p=r(34),d=n(p),h=r(20),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(119),v=n(y),g=r(7),b=n(g),E=r(174),x=n(E),A=r(109),S=n(A),_=["enter","exit"],D=function(e){function t(r,n){(0,o.default)(this,t);var i=(0,l.default)(this,e.call(this));return i.initialized=!1,i.raw=(0,x.default)({},r),i.key=i.take("name")||n,i.manipulateOptions=i.take("manipulateOptions"),i.post=i.take("post"),i.pre=i.take("pre"),i.visitor=i.normaliseVisitor((0,S.default)(i.take("visitor"))||{}),i}return(0,f.default)(t,e),t.prototype.take=function(e){var t=this.raw[e];return delete this.raw[e],t},t.prototype.chain=function(e,t){if(!e[t])return this[t];if(!this[t])return e[t];var r=[e[t],this[t]];return function(){for(var e=void 0,t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];for(var a=r,o=Array.isArray(a),u=0,a=o?a:(0,s.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(c){var f=c.apply(this,n);null!=f&&(e=f)}}return e}},t.prototype.maybeInherit=function(e){var t=this.take("inherits");t&&(t=d.default.normalisePlugin(t,e,"inherits"),this.manipulateOptions=this.chain(t,"manipulateOptions"),this.post=this.chain(t,"post"),this.pre=this.chain(t,"pre"),this.visitor=b.default.visitors.merge([t.visitor,this.visitor]))},t.prototype.init=function(e,t){if(!this.initialized){this.initialized=!0,this.maybeInherit(e);for(var r in this.raw)throw new Error(m.get("pluginInvalidProperty",e,t,r))}},t.prototype.normaliseVisitor=function(e){for(var t=_,r=Array.isArray(t),n=0,t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}if(e[i])throw new Error("Plugins aren't allowed to specify catch-all enter/exit handlers. Please target individual nodes.")}return b.default.explode(e),e},t}(v.default);t.default=D,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.messages;return{visitor:{Scope:function(e){var r=e.scope;for(var n in r.bindings){var s=r.bindings[n];if("const"===s.kind||"module"===s.kind)for(var a=s.constantViolations,o=Array.isArray(a),u=0,a=o?a:(0,i.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;throw c.buildCodeFrameError(t.get("readOnly",n))}}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncFunctions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{ArrowFunctionExpression:function(e,r){if(r.opts.spec){var n=e.node;if(n.shadow)return;n.shadow={this:!1},n.type="FunctionExpression";var i=t.thisExpression();i._forceShadow=e,e.ensureBlock(),e.get("body").unshiftContainer("body",t.expressionStatement(t.callExpression(r.addHelper("newArrowCheck"),[t.thisExpression(),i]))),e.replaceWith(t.callExpression(t.memberExpression(n,t.identifier("bind")),[t.thisExpression()]))}else e.arrowFunctionToShadowed()}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e,t){for(var n=t.get(e),s=n,a=Array.isArray(s),o=0,s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u,c=l.node;if(l.isFunctionDeclaration()){var f=r.variableDeclaration("let",[r.variableDeclarator(c.id,r.toExpression(c))]);f._blockHoist=2,c.id=null,l.replaceWith(f)}}}var r=e.types;return{visitor:{BlockStatement:function(e){var n=e.node,i=e.parent;r.isFunction(i,{body:n})||r.isExportDeclaration(i)||t("body",e)},SwitchCase:function(e){t("consequent",e)}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return b.isLoop(e.parent)||b.isCatchClause(e.parent)}function s(e){return!!b.isVariableDeclaration(e)&&(!!e[b.BLOCK_SCOPED_SYMBOL]||("let"===e.kind||"const"===e.kind))}function a(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(t||(t=e.node),!b.isFor(r))for(var s=0;s<t.declarations.length;s++){var a=t.declarations[s];a.init=a.init||n.buildUndefinedNode()}if(t[b.BLOCK_SCOPED_SYMBOL]=!0,t.kind="var",i){var o=n.getFunctionParent(),u=e.getBindingIdentifiers();for(var l in u){var c=n.getOwnBinding(l);c&&(c.kind="var"),n.moveBindingTo(l,o)}}}function o(e){return b.isVariableDeclaration(e,{kind:"var"})&&!s(e)}function u(e){return b.isBreakStatement(e)?"break":b.isContinueStatement(e)?"continue":void 0}t.__esModule=!0;var l=r(10),c=n(l),f=r(9),p=n(f),d=r(3),h=n(d);t.default=function(){return{visitor:{VariableDeclaration:function(e,t){var r=e.node,n=e.parent,i=e.scope;if(s(r)&&(a(e,null,n,i,!0),r._tdzThis)){for(var o=[r],u=0;u<r.declarations.length;u++){var l=r.declarations[u];if(l.init){var c=b.assignmentExpression("=",l.id,l.init);c._ignoreBlockScopingTDZ=!0,o.push(b.expressionStatement(c))}l.init=t.addHelper("temporalUndefined")}r._blockHoist=2,e.isCompletionRecord()&&o.push(b.expressionStatement(i.buildUndefinedNode())),e.replaceWithMultiple(o)}},Loop:function(e,t){var r=e.node,n=e.parent,i=e.scope;b.ensureBlock(r);var s=new B(e,e.get("body"),n,i,t),a=s.run();a&&e.replaceWith(a)},CatchClause:function(e,t){var r=e.parent,n=e.scope;new B(null,e.get("body"),r,n,t).run()},"BlockStatement|SwitchStatement|Program":function(e,t){if(!i(e)){new B(null,e,e.parent,e.scope,t).run()}}}}};var m=r(7),y=n(m),v=r(330),g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E=r(280),x=n(E),A=r(578),S=n(A),_=r(4),D=n(_),C=(0,D.default)('\n  if (typeof RETURN === "object") return RETURN.v;\n'),w=y.default.visitors.merge([{Loop:{enter:function(e,t){t.loopDepth++},exit:function(e,t){t.loopDepth--}},Function:function(e,t){return t.loopDepth>0&&e.traverse(P,t),e.skip()}},v.visitor]),P=y.default.visitors.merge([{ReferencedIdentifier:function(e,t){var r=t.letReferences[e.node.name];if(r){var n=e.scope.getBindingIdentifier(e.node.name);n&&n!==r||(t.closurify=!0)}}},v.visitor]),k={enter:function(e,t){var r=e.node;e.parent;if(e.isForStatement()){if(o(r.init)){var n=t.pushDeclar(r.init);1===n.length?r.init=n[0]:r.init=b.sequenceExpression(n)}}else if(e.isFor())o(r.left)&&(t.pushDeclar(r.left),r.left=r.left.declarations[0].id);else if(o(r))e.replaceWithMultiple(t.pushDeclar(r).map(function(e){return b.expressionStatement(e)}));else if(e.isFunction())return e.skip()}},F={LabeledStatement:function(e,t){var r=e.node;t.innerLabels.push(r.label.name)}},T={enter:function(e,t){if(e.isAssignmentExpression()||e.isUpdateExpression()){var r=e.getBindingIdentifiers();for(var n in r)t.outsideReferences[n]===e.scope.getBindingIdentifier(n)&&(t.reassignments[n]=!0)}}},O={Loop:function(e,t){var r=t.ignoreLabeless;t.ignoreLabeless=!0,e.traverse(O,t),t.ignoreLabeless=r,e.skip()},Function:function(e){e.skip()},SwitchCase:function(e,t){var r=t.inSwitchCase;t.inSwitchCase=!0,e.traverse(O,t),t.inSwitchCase=r,e.skip()},"BreakStatement|ContinueStatement|ReturnStatement":function(e,t){var r=e.node,n=e.parent,i=e.scope;if(!r[this.LOOP_IGNORE]){var s=void 0,a=u(r);if(a){if(r.label){if(t.innerLabels.indexOf(r.label.name)>=0)return;a=a+"|"+r.label.name}else{if(t.ignoreLabeless)return;if(t.inSwitchCase)return;if(b.isBreakStatement(r)&&b.isSwitchCase(n))return}t.hasBreakContinue=!0,t.map[a]=r,s=b.stringLiteral(a)}e.isReturnStatement()&&(t.hasReturn=!0,s=b.objectExpression([b.objectProperty(b.identifier("v"),r.argument||i.buildUndefinedNode())])),s&&(s=b.returnStatement(s),s[this.LOOP_IGNORE]=!0,e.skip(),e.replaceWith(b.inherits(s,r)))}}},B=function(){function e(t,r,n,i,s){(0,h.default)(this,e),this.parent=n,this.scope=i,this.file=s,this.blockPath=r,this.block=r.node,this.outsideLetReferences=(0,p.default)(null),this.hasLetReferences=!1,this.letReferences=(0,p.default)(null),this.body=[],t&&(this.loopParent=t.parent,this.loopLabel=b.isLabeledStatement(this.loopParent)&&this.loopParent.label,this.loopPath=t,this.loop=t.node)}return e.prototype.run=function(){var e=this.block;if(!e._letDone){e._letDone=!0;var t=this.getLetReferences();if(b.isFunction(this.parent)||b.isProgram(this.block))return void this.updateScopeInfo();if(this.hasLetReferences)return t?this.wrapClosure():this.remap(),this.updateScopeInfo(t),this.loopLabel&&!b.isLabeledStatement(this.loopParent)?b.labeledStatement(this.loopLabel,this.loop):void 0}},e.prototype.updateScopeInfo=function(e){var t=this.scope,r=t.getFunctionParent(),n=this.letReferences;for(var i in n){var s=n[i],a=t.getBinding(s.name);a&&("let"!==a.kind&&"const"!==a.kind||(a.kind="var",e?t.removeBinding(s.name):t.moveBindingTo(s.name,r)))}},e.prototype.remap=function(){var e=this.letReferences,t=this.scope;for(var r in e){var n=e[r];(t.parentHasBinding(r)||t.hasGlobal(r))&&(t.hasOwnBinding(r)&&t.rename(n.name),this.blockPath.scope.hasOwnBinding(r)&&this.blockPath.scope.rename(n.name))}},e.prototype.wrapClosure=function(){if(this.file.opts.throwIfClosureRequired)throw this.blockPath.buildCodeFrameError("Compiling let/const in this block would add a closure (throwIfClosureRequired).");var e=this.block,t=this.outsideLetReferences;if(this.loop)for(var r in t){var n=t[r];(this.scope.hasGlobal(n.name)||this.scope.parentHasBinding(n.name))&&(delete t[n.name],delete this.letReferences[n.name],this.scope.rename(n.name),this.letReferences[n.name]=n,t[n.name]=n)}this.has=this.checkLoop(),this.hoistVarDeclarations();var i=(0,x.default)(t),s=(0,x.default)(t),a=this.blockPath.isSwitchStatement(),o=b.functionExpression(null,i,b.blockStatement(a?[e]:e.body));o.shadow=!0,this.addContinuations(o);var u=o;this.loop&&(u=this.scope.generateUidIdentifier("loop"),this.loopPath.insertBefore(b.variableDeclaration("var",[b.variableDeclarator(u,o)])));var l=b.callExpression(u,s),c=this.scope.generateUidIdentifier("ret");y.default.hasType(o.body,this.scope,"YieldExpression",b.FUNCTION_TYPES)&&(o.generator=!0,l=b.yieldExpression(l,!0)),y.default.hasType(o.body,this.scope,"AwaitExpression",b.FUNCTION_TYPES)&&(o.async=!0,l=b.awaitExpression(l)),this.buildClosure(c,l),a?this.blockPath.replaceWithMultiple(this.body):e.body=this.body},e.prototype.buildClosure=function(e,t){var r=this.has;r.hasReturn||r.hasBreakContinue?this.buildHas(e,t):this.body.push(b.expressionStatement(t))},e.prototype.addContinuations=function(e){var t={reassignments:{},outsideReferences:this.outsideLetReferences};this.scope.traverse(e,T,t);for(var r=0;r<e.params.length;r++){var n=e.params[r];if(t.reassignments[n.name]){var i=this.scope.generateUidIdentifier(n.name);e.params[r]=i,this.scope.rename(n.name,i.name,e),e.body.body.push(b.expressionStatement(b.assignmentExpression("=",n,i)))}}},e.prototype.getLetReferences=function(){var e=this,t=this.block,r=[];if(this.loop){var n=this.loop.left||this.loop.init;s(n)&&(r.push(n),(0,S.default)(this.outsideLetReferences,b.getBindingIdentifiers(n)))}var i=function n(i,o){o=o||i.node,(b.isClassDeclaration(o)||b.isFunctionDeclaration(o)||s(o))&&(s(o)&&a(i,o,t,e.scope),r=r.concat(o.declarations||o)),b.isLabeledStatement(o)&&n(i.get("body"),o.body)};if(t.body)for(var o=0;o<t.body.length;o++){var u=this.blockPath.get("body")[o];i(u)}if(t.cases)for(var l=0;l<t.cases.length;l++)for(var c=t.cases[l].consequent,f=0;f<c.length;f++){var p=this.blockPath.get("cases")[l],d=c[f];i(p,d)}for(var h=0;h<r.length;h++){var m=r[h],y=b.getBindingIdentifiers(m,!1,!0);(0,S.default)(this.letReferences,y),this.hasLetReferences=!0}if(this.hasLetReferences){var v={letReferences:this.letReferences,closurify:!1,file:this.file,loopDepth:0},g=this.blockPath.find(function(e){return e.isLoop()||e.isFunction()});return g&&g.isLoop()&&v.loopDepth++,this.blockPath.traverse(w,v),v.closurify}},e.prototype.checkLoop=function(){var e={hasBreakContinue:!1,ignoreLabeless:!1,inSwitchCase:!1,innerLabels:[],hasReturn:!1,isLoop:!!this.loop,map:{},LOOP_IGNORE:(0,c.default)()};return this.blockPath.traverse(F,e),this.blockPath.traverse(O,e),e},e.prototype.hoistVarDeclarations=function(){this.blockPath.traverse(k,this)},e.prototype.pushDeclar=function(e){var t=[],r=b.getBindingIdentifiers(e);for(var n in r)t.push(b.variableDeclarator(r[n]));this.body.push(b.variableDeclaration(e.kind,t));for(var i=[],s=0;s<e.declarations.length;s++){var a=e.declarations[s];if(a.init){var o=b.assignmentExpression("=",a.id,a.init);i.push(b.inherits(o,a))}}return i},e.prototype.buildHas=function(e,t){var r=this.body;r.push(b.variableDeclaration("var",[b.variableDeclarator(e,t)]));var n=void 0,i=this.has,s=[];if(i.hasReturn&&(n=C({RETURN:e})),i.hasBreakContinue){for(var a in i.map)s.push(b.switchCase(b.stringLiteral(a),[i.map[a]]));if(i.hasReturn&&s.push(b.switchCase(null,[n])),1===s.length){var o=s[0];r.push(b.ifStatement(b.binaryExpression("===",e,o.test),o.consequent[0]))}else{if(this.loop)for(var u=0;u<s.length;u++){var l=s[u].consequent[0];b.isBreakStatement(l)&&!l.label&&(l.label=this.loopLabel=this.loopLabel||this.scope.generateUidIdentifier("loop"))}r.push(b.switchStatement(e,s))}}else i.hasReturn&&r.push(n)},e}();e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(10),s=n(i);t.default=function(e){var t=e.types,r=(0,s.default)();return{visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var r=e.node,n=r.declaration.id||e.scope.generateUidIdentifier("class");r.declaration.id=n,e.replaceWith(r.declaration),e.insertAfter(t.exportDefaultDeclaration(n))}},ClassDeclaration:function(e){var r=e.node,n=r.id||e.scope.generateUidIdentifier("class");e.replaceWith(t.variableDeclaration("let",[t.variableDeclarator(n,t.toExpression(r))]))},ClassExpression:function(e,t){var n=e.node;if(!n[r]){var i=(0,f.default)(e);if(i&&i!==n)return e.replaceWith(i);n[r]=!0;var s=l.default;t.opts.loose&&(s=o.default),e.replaceWith(new s(e,t.file).run())}}}}};var a=r(331),o=n(a),u=r(207),l=n(u),c=r(40),f=n(c);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){return o.isObjectProperty(e)?e.value:o.isObjectMethod(e)?o.functionExpression(null,e.params,e.body,e.generator,e.async):void 0}function r(e,r,i){"get"===r.kind&&"set"===r.kind?n(e,r,i):i.push(o.expressionStatement(o.assignmentExpression("=",o.memberExpression(e,r.key,r.computed||o.isLiteral(r.key)),t(r))))}function n(e,r){var n=(e.objId,e.body),i=e.getMutatorId,s=e.scope,a=!r.computed&&o.isIdentifier(r.key)?o.stringLiteral(r.key.name):r.key,u=s.maybeGenerateMemoised(a);u&&(n.push(o.expressionStatement(o.assignmentExpression("=",u,a))),a=u),n.push.apply(n,l({MUTATOR_MAP_REF:i(),KEY:a,VALUE:t(r),KIND:o.identifier(r.kind)}))}function s(e){for(var t=e.computedProps,s=Array.isArray(t),a=0,t=s?t:(0,i.default)(t);;){var o;if(s){if(a>=t.length)break;o=t[a++]}else{if(a=t.next(),a.done)break;o=a.value}var u=o;"get"===u.kind||"set"===u.kind?n(e,u):r(e.objId,u,e.body)}}function a(e){for(var s=e.objId,a=e.body,u=e.computedProps,l=e.state,c=u,f=Array.isArray(c),p=0,c=f?c:(0,i.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d,m=o.toComputedKey(h);if("get"===h.kind||"set"===h.kind)n(e,h);else if(o.isStringLiteral(m,{value:"__proto__"}))r(s,h,a);else{if(1===u.length)return o.callExpression(l.addHelper("defineProperty"),[e.initPropExpression,m,t(h)]);a.push(o.expressionStatement(o.callExpression(l.addHelper("defineProperty"),[s,m,t(h)])))}}}var o=e.types,u=e.template,l=u("\n    MUTATOR_MAP_REF[KEY] = MUTATOR_MAP_REF[KEY] || {};\n    MUTATOR_MAP_REF[KEY].KIND = VALUE;\n  ");return{visitor:{ObjectExpression:{exit:function(e,t){for(var r=e.node,n=e.parent,u=e.scope,l=!1,c=r.properties,f=Array.isArray(c),p=0,c=f?c:(0,i.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}if(l=!0===d.computed)break}if(l){for(var h=[],m=[],y=!1,v=r.properties,g=Array.isArray(v),b=0,v=g?v:(0,i.default)(v);;){var E;if(g){if(b>=v.length)break;E=v[b++]}else{if(b=v.next(),b.done)break;E=b.value}var x=E;x.computed&&(y=!0),y?m.push(x):h.push(x)}var A=u.generateUidIdentifierBasedOnNode(n),S=o.objectExpression(h),_=[];_.push(o.variableDeclaration("var",[o.variableDeclarator(A,S)]));var D=a;t.opts.loose&&(D=s);var C=void 0,w=function(){return C||(C=u.generateUidIdentifier("mutatorMap"),_.push(o.variableDeclaration("var",[o.variableDeclarator(C,o.objectExpression([]))]))),C},P=D({scope:u,objId:A,body:_,computedProps:m,initPropExpression:S,getMutatorId:w,state:t});C&&_.push(o.expressionStatement(o.callExpression(t.addHelper("defineEnumerableProperties"),[A,C]))),P?e.replaceWith(P):(_.push(o.expressionStatement(A)),e.replaceWithMultiple(_))}}}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(2),o=n(a);t.default=function(e){function t(e){for(var t=e.declarations,r=Array.isArray(t),i=0,t=r?t:(0,o.default)(t);;){var s;if(r){if(i>=t.length)break;s=t[i++]}else{if(i=t.next(),i.done)break;s=i.value}var a=s;if(n.isPattern(a.id))return!0}return!1}function r(e){for(var t=e.elements,r=Array.isArray(t),i=0,t=r?t:(0,o.default)(t);;){var s;if(r){if(i>=t.length)break;s=t[i++]}else{if(i=t.next(),i.done)break;s=i.value}var a=s;if(n.isRestElement(a))return!0}return!1}var n=e.types,i={ReferencedIdentifier:function(e,t){t.bindings[e.node.name]&&(t.deopt=!0,e.stop())}},a=function(){function e(t){(0,s.default)(this,e),this.blockHoist=t.blockHoist,this.operator=t.operator,this.arrays={},this.nodes=t.nodes||[],this.scope=t.scope,this.file=t.file,this.kind=t.kind}
return e.prototype.buildVariableAssignment=function(e,t){var r=this.operator;n.isMemberExpression(e)&&(r="=");var i=void 0;return i=r?n.expressionStatement(n.assignmentExpression(r,e,t)):n.variableDeclaration(this.kind,[n.variableDeclarator(e,t)]),i._blockHoist=this.blockHoist,i},e.prototype.buildVariableDeclaration=function(e,t){var r=n.variableDeclaration("var",[n.variableDeclarator(e,t)]);return r._blockHoist=this.blockHoist,r},e.prototype.push=function(e,t){n.isObjectPattern(e)?this.pushObjectPattern(e,t):n.isArrayPattern(e)?this.pushArrayPattern(e,t):n.isAssignmentPattern(e)?this.pushAssignmentPattern(e,t):this.nodes.push(this.buildVariableAssignment(e,t))},e.prototype.toArray=function(e,t){return this.file.opts.loose||n.isIdentifier(e)&&this.arrays[e.name]?e:this.scope.toArray(e,t)},e.prototype.pushAssignmentPattern=function(e,t){var r=this.scope.generateUidIdentifierBasedOnNode(t),i=n.variableDeclaration("var",[n.variableDeclarator(r,t)]);i._blockHoist=this.blockHoist,this.nodes.push(i);var s=n.conditionalExpression(n.binaryExpression("===",r,n.identifier("undefined")),e.right,r),a=e.left;if(n.isPattern(a)){var o=n.expressionStatement(n.assignmentExpression("=",r,s));o._blockHoist=this.blockHoist,this.nodes.push(o),this.push(a,r)}else this.nodes.push(this.buildVariableAssignment(a,s))},e.prototype.pushObjectRest=function(e,t,r,i){for(var s=[],a=0;a<e.properties.length;a++){var o=e.properties[a];if(a>=i)break;if(!n.isRestProperty(o)){var u=o.key;n.isIdentifier(u)&&!o.computed&&(u=n.stringLiteral(o.key.name)),s.push(u)}}s=n.arrayExpression(s);var l=n.callExpression(this.file.addHelper("objectWithoutProperties"),[t,s]);this.nodes.push(this.buildVariableAssignment(r.argument,l))},e.prototype.pushObjectProperty=function(e,t){n.isLiteral(e.key)&&(e.computed=!0);var r=e.value,i=n.memberExpression(t,e.key,e.computed);n.isPattern(r)?this.push(r,i):this.nodes.push(this.buildVariableAssignment(r,i))},e.prototype.pushObjectPattern=function(e,t){if(e.properties.length||this.nodes.push(n.expressionStatement(n.callExpression(this.file.addHelper("objectDestructuringEmpty"),[t]))),e.properties.length>1&&!this.scope.isStatic(t)){var r=this.scope.generateUidIdentifierBasedOnNode(t);this.nodes.push(this.buildVariableDeclaration(r,t)),t=r}for(var i=0;i<e.properties.length;i++){var s=e.properties[i];n.isRestProperty(s)?this.pushObjectRest(e,t,s,i):this.pushObjectProperty(s,t)}},e.prototype.canUnpackArrayPattern=function(e,t){if(!n.isArrayExpression(t))return!1;if(!(e.elements.length>t.elements.length)){if(e.elements.length<t.elements.length&&!r(e))return!1;for(var s=e.elements,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var l;if(a){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l;if(!c)return!1;if(n.isMemberExpression(c))return!1}for(var f=t.elements,p=Array.isArray(f),d=0,f=p?f:(0,o.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h;if(n.isSpreadElement(m))return!1;if(n.isCallExpression(m))return!1;if(n.isMemberExpression(m))return!1}var y=n.getBindingIdentifiers(e),v={deopt:!1,bindings:y};return this.scope.traverse(t,i,v),!v.deopt}},e.prototype.pushUnpackedArrayPattern=function(e,t){for(var r=0;r<e.elements.length;r++){var i=e.elements[r];n.isRestElement(i)?this.push(i.argument,n.arrayExpression(t.elements.slice(r))):this.push(i,t.elements[r])}},e.prototype.pushArrayPattern=function(e,t){if(e.elements){if(this.canUnpackArrayPattern(e,t))return this.pushUnpackedArrayPattern(e,t);var i=!r(e)&&e.elements.length,s=this.toArray(t,i);n.isIdentifier(s)?t=s:(t=this.scope.generateUidIdentifierBasedOnNode(t),this.arrays[t.name]=!0,this.nodes.push(this.buildVariableDeclaration(t,s)));for(var a=0;a<e.elements.length;a++){var o=e.elements[a];if(o){var u=void 0;n.isRestElement(o)?(u=this.toArray(t),u=n.callExpression(n.memberExpression(u,n.identifier("slice")),[n.numericLiteral(a)]),o=o.argument):u=n.memberExpression(t,n.numericLiteral(a),!0),this.push(o,u)}}}},e.prototype.init=function(e,t){if(!n.isArrayExpression(t)&&!n.isMemberExpression(t)){var r=this.scope.maybeGenerateMemoised(t,!0);r&&(this.nodes.push(this.buildVariableDeclaration(r,t)),t=r)}return this.push(e,t),this.nodes},e}();return{visitor:{ExportNamedDeclaration:function(e){var r=e.get("declaration");if(r.isVariableDeclaration()&&t(r.node)){var i=[];for(var s in e.getOuterBindingIdentifiers(e)){var a=n.identifier(s);i.push(n.exportSpecifier(a,a))}e.replaceWith(r.node),e.insertAfter(n.exportNamedDeclaration(null,i))}},ForXStatement:function(e,t){var r=e.node,i=e.scope,s=r.left;if(n.isPattern(s)){var o=i.generateUidIdentifier("ref");return r.left=n.variableDeclaration("var",[n.variableDeclarator(o)]),e.ensureBlock(),void r.body.body.unshift(n.variableDeclaration("var",[n.variableDeclarator(s,o)]))}if(n.isVariableDeclaration(s)){var u=s.declarations[0].id;if(n.isPattern(u)){var l=i.generateUidIdentifier("ref");r.left=n.variableDeclaration(s.kind,[n.variableDeclarator(l,null)]);var c=[];new a({kind:s.kind,file:t,scope:i,nodes:c}).init(u,l),e.ensureBlock();var f=r.body;f.body=c.concat(f.body)}}},CatchClause:function(e,t){var r=e.node,i=e.scope,s=r.param;if(n.isPattern(s)){var o=i.generateUidIdentifier("ref");r.param=o;var u=[];new a({kind:"let",file:t,scope:i,nodes:u}).init(s,o),r.body.body=u.concat(r.body.body)}},AssignmentExpression:function(e,t){var r=e.node,i=e.scope;if(n.isPattern(r.left)){var s=[],o=new a({operator:r.operator,file:t,scope:i,nodes:s}),u=void 0;!e.isCompletionRecord()&&e.parentPath.isExpressionStatement()||(u=i.generateUidIdentifierBasedOnNode(r.right,"ref"),s.push(n.variableDeclaration("var",[n.variableDeclarator(u,r.right)])),n.isArrayExpression(r.right)&&(o.arrays[u.name]=!0)),o.init(r.left,u||r.right),u&&s.push(n.expressionStatement(u)),e.replaceWithMultiple(s)}},VariableDeclaration:function(e,r){var i=e.node,s=e.scope,u=e.parent;if(!n.isForXStatement(u)&&u&&e.container&&t(i)){for(var l=[],c=void 0,f=0;f<i.declarations.length;f++){c=i.declarations[f];var p=c.init,d=c.id,h=new a({blockHoist:i._blockHoist,nodes:l,scope:s,kind:i.kind,file:r});n.isPattern(d)?(h.init(d,p),+f!=i.declarations.length-1&&n.inherits(l[l.length-1],c)):l.push(n.inherits(h.buildVariableAssignment(c.id,c.init),c))}for(var m=[],y=l,v=Array.isArray(y),g=0,y=v?y:(0,o.default)(y);;){var b;if(v){if(g>=y.length)break;b=y[g++]}else{if(g=y.next(),g.done)break;b=g.value}var E=b,x=m[m.length-1];if(x&&n.isVariableDeclaration(x)&&n.isVariableDeclaration(E)&&x.kind===E.kind){var A;(A=x.declarations).push.apply(A,E.declarations)}else m.push(E)}for(var S=m,_=Array.isArray(S),D=0,S=_?S:(0,o.default)(S);;){var C;if(_){if(D>=S.length)break;C=S[D++]}else{if(D=S.next(),D.done)break;C=D.value}var w=C;if(w.declarations)for(var P=w.declarations,k=Array.isArray(P),F=0,P=k?P:(0,o.default)(P);;){var T;if(k){if(F>=P.length)break;T=P[F++]}else{if(F=P.next(),F.done)break;T=F.value}var O=T,B=O.id.name;s.bindings[B]&&(s.bindings[B].kind=w.kind)}}1===m.length?e.replaceWith(m[0]):e.replaceWithMultiple(m)}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){function t(e){var t=e.node,r=e.scope,n=[],i=t.right;if(!a.isIdentifier(i)||!r.hasBinding(i.name)){var s=r.generateUidIdentifier("arr");n.push(a.variableDeclaration("var",[a.variableDeclarator(s,i)])),i=s}var u=r.generateUidIdentifier("i"),l=o({BODY:t.body,KEY:u,ARR:i});a.inherits(l,t),a.ensureBlock(l);var c=a.memberExpression(i,u,!0),f=t.left;return a.isVariableDeclaration(f)?(f.declarations[0].init=c,l.body.body.unshift(f)):l.body.body.unshift(a.expressionStatement(a.assignmentExpression("=",f,c))),e.parentPath.isLabeledStatement()&&(l=a.labeledStatement(e.parentPath.node.label,l)),n.push(l),n}function r(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,l=void 0,c=void 0;if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))c=o;else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));c=n.generateUidIdentifier("ref"),l=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,c)])}var f=n.generateUidIdentifier("iterator"),p=n.generateUidIdentifier("isArray"),d=u({LOOP_OBJECT:f,IS_ARRAY:p,OBJECT:r.right,INDEX:n.generateUidIdentifier("i"),ID:c});l||d.body.body.shift();var h=a.isLabeledStatement(s),m=void 0;return h&&(m=a.labeledStatement(s.label,d)),{replaceParent:h,declar:l,node:m||d,loop:d}}function n(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,u=void 0,c=n.generateUidIdentifier("step"),f=a.memberExpression(c,a.identifier("value"));if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))u=a.expressionStatement(a.assignmentExpression("=",o,f));else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));u=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,f)])}var p=n.generateUidIdentifier("iterator"),d=l({ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:p,STEP_KEY:c,OBJECT:r.right,BODY:null}),h=a.isLabeledStatement(s),m=d[3].block.body,y=m[0];return h&&(m[0]=a.labeledStatement(s.label,y)),{replaceParent:h,declar:u,loop:y,node:d}}var i=e.messages,s=e.template,a=e.types,o=s("\n    for (var KEY = 0; KEY < ARR.length; KEY++) BODY;\n  "),u=s("\n    for (var LOOP_OBJECT = OBJECT,\n             IS_ARRAY = Array.isArray(LOOP_OBJECT),\n             INDEX = 0,\n             LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n      var ID;\n      if (IS_ARRAY) {\n        if (INDEX >= LOOP_OBJECT.length) break;\n        ID = LOOP_OBJECT[INDEX++];\n      } else {\n        INDEX = LOOP_OBJECT.next();\n        if (INDEX.done) break;\n        ID = INDEX.value;\n      }\n    }\n  "),l=s("\n    var ITERATOR_COMPLETION = true;\n    var ITERATOR_HAD_ERROR_KEY = false;\n    var ITERATOR_ERROR_KEY = undefined;\n    try {\n      for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) {\n      }\n    } catch (err) {\n      ITERATOR_HAD_ERROR_KEY = true;\n      ITERATOR_ERROR_KEY = err;\n    } finally {\n      try {\n        if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n          ITERATOR_KEY.return();\n        }\n      } finally {\n        if (ITERATOR_HAD_ERROR_KEY) {\n          throw ITERATOR_ERROR_KEY;\n        }\n      }\n    }\n  ");return{visitor:{ForOfStatement:function(e,i){if(e.get("right").isArrayExpression())return e.parentPath.isLabeledStatement()?e.parentPath.replaceWithMultiple(t(e)):e.replaceWithMultiple(t(e));var s=n;i.opts.loose&&(s=r);var o=e.node,u=s(e,i),l=u.declar,c=u.loop,f=c.body;e.ensureBlock(),l&&f.body.push(l),f.body=f.body.concat(o.body.body),a.inherits(c,o),a.inherits(c.body,o.body),u.replaceParent?(e.parentPath.replaceWithMultiple(u.node),e.remove()):e.replaceWithMultiple(u.node)}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{FunctionExpression:{exit:function(e){if("value"!==e.key&&!e.parentPath.isObjectProperty()){var t=(0,i.default)(e);t&&e.replaceWith(t)}}},ObjectProperty:function(e){var t=e.get("value");if(t.isFunction()){var r=(0,i.default)(t);r&&t.replaceWith(r)}}}}};var n=r(40),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{NumericLiteral:function(e){var t=e.node;t.extra&&/^0[ob]/i.test(t.extra.raw)&&(t.extra=void 0)},StringLiteral:function(e){var t=e.node;t.extra&&/\\[u]/gi.test(t.extra.raw)&&(t.extra=void 0)}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(14),s=n(i),a=r(9),o=n(a),u=r(2),l=n(u),c=r(10),f=n(c);t.default=function(){var e=(0,f.default)(),t={ReferencedIdentifier:function(e){var t=e.node.name,r=this.remaps[t];if(r&&this.scope.getBinding(t)===e.scope.getBinding(t)){if(e.parentPath.isCallExpression({callee:e.node}))e.replaceWith(g.sequenceExpression([g.numericLiteral(0),r]));else if(e.isJSXIdentifier()&&g.isMemberExpression(r)){var n=r.object,i=r.property;e.replaceWith(g.JSXMemberExpression(g.JSXIdentifier(n.name),g.JSXIdentifier(i.name)))}else e.replaceWith(r);this.requeueInParent(e)}},AssignmentExpression:function(t){var r=t.node;if(!r[e]){var n=t.get("left");if(n.isIdentifier()){var i=n.node.name,s=this.exports[i];if(!s)return;if(this.scope.getBinding(i)!==t.scope.getBinding(i))return;r[e]=!0;for(var a=s,o=Array.isArray(a),u=0,a=o?a:(0,l.default)(a);;){var c;if(o){if(u>=a.length)break;c=a[u++]}else{if(u=a.next(),u.done)break;c=u.value}r=S(c,r).expression}t.replaceWith(r),this.requeueInParent(t)}else if(n.isObjectPattern())for(var f=n.node.properties,p=Array.isArray(f),d=0,f=p?f:(0,l.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h,y=m.value.name,v=this.exports[y];if(v){if(this.scope.getBinding(y)!==t.scope.getBinding(y))return;r[e]=!0,t.insertAfter(S(g.identifier(y),g.identifier(y)))}}else if(n.isArrayPattern())for(var b=n.node.elements,E=Array.isArray(b),x=0,b=E?b:(0,l.default)(b);;){var A;if(E){if(x>=b.length)break;A=b[x++]}else{if(x=b.next(),x.done)break;A=x.value}var _=A;if(_){var D=_.name,C=this.exports[D];if(C){if(this.scope.getBinding(D)!==t.scope.getBinding(D))return;r[e]=!0,t.insertAfter(S(g.identifier(D),g.identifier(D)))}}}}},UpdateExpression:function(e){var t=e.get("argument");if(t.isIdentifier()){var r=t.node.name;if(this.exports[r]&&this.scope.getBinding(r)===e.scope.getBinding(r)){var n=g.assignmentExpression(e.node.operator[0]+"=",t.node,g.numericLiteral(1));if(e.parentPath.isExpressionStatement()&&!e.isCompletionRecord()||e.node.prefix)return e.replaceWith(n),void this.requeueInParent(e);var i=[];i.push(n);var s=void 0;s="--"===e.node.operator?"+":"-",i.push(g.binaryExpression(s,t.node,g.numericLiteral(1))),e.replaceWithMultiple(g.sequenceExpression(i))}}}};return{inherits:y.default,visitor:{ThisExpression:function(e,t){this.ranCommonJS||!0===t.opts.allowTopLevelThis||e.findParent(function(e){return!e.is("shadow")&&D.indexOf(e.type)>=0})||e.replaceWith(g.identifier("undefined"))},Program:{exit:function(e){function r(t,r){var n=C[t];if(n)return n;var i=e.scope.generateUidIdentifier((0,p.basename)(t,(0,p.extname)(t))),s=g.variableDeclaration("var",[g.variableDeclarator(i,b(g.stringLiteral(t)).expression)]);return h[t]&&(s.loc=h[t].loc),"number"==typeof r&&r>0&&(s._blockHoist=r),v.push(s),C[t]=i}function n(e,t,r){var n=e[t]||[];e[t]=n.concat(r)}this.ranCommonJS=!0;var i=!!this.opts.strict,a=!!this.opts.noInterop,u=e.scope;u.rename("module"),u.rename("exports"),u.rename("require");for(var c=!1,f=!1,d=e.get("body"),h=(0,o.default)(null),m=(0,o.default)(null),y=(0,o.default)(null),v=[],D=(0,o.default)(null),C=(0,o.default)(null),w=d,P=Array.isArray(w),k=0,w=P?w:(0,l.default)(w);;){var F;if(P){if(k>=w.length)break;F=w[k++]}else{if(k=w.next(),k.done)break;F=k.value}var T=F;if(T.isExportDeclaration()){c=!0;for(var O=[].concat(T.get("declaration"),T.get("specifiers")),B=O,R=Array.isArray(B),I=0,B=R?B:(0,l.default)(B);;){var M;if(R){if(I>=B.length)break;M=B[I++]}else{if(I=B.next(),I.done)break;M=I.value}var N=M;if(N.getBindingIdentifiers().__esModule)throw N.buildCodeFrameError('Illegal export "__esModule"')}}if(T.isImportDeclaration()){var L;f=!0;var j=T.node.source.value,U=h[j]||{specifiers:[],maxBlockHoist:0,loc:T.node.loc};(L=U.specifiers).push.apply(L,T.node.specifiers),"number"==typeof T.node._blockHoist&&(U.maxBlockHoist=Math.max(T.node._blockHoist,U.maxBlockHoist)),h[j]=U,T.remove()}else if(T.isExportDefaultDeclaration()){var V=T.get("declaration");if(V.isFunctionDeclaration()){var G=V.node.id,W=g.identifier("default");G?(n(m,G.name,W),v.push(S(W,G)),T.replaceWith(V.node)):(v.push(S(W,g.toExpression(V.node))),T.remove())}else if(V.isClassDeclaration()){var Y=V.node.id,q=g.identifier("default");Y?(n(m,Y.name,q),T.replaceWithMultiple([V.node,S(q,Y)])):(T.replaceWith(S(q,g.toExpression(V.node))),T.parentPath.requeue(T.get("expression.left")))}else T.replaceWith(S(g.identifier("default"),V.node)),T.parentPath.requeue(T.get("expression.left"))}else if(T.isExportNamedDeclaration()){var K=T.get("declaration");if(K.node){if(K.isFunctionDeclaration()){var H=K.node.id;n(m,H.name,H),v.push(S(H,H)),T.replaceWith(K.node)}else if(K.isClassDeclaration()){var J=K.node.id;n(m,J.name,J),T.replaceWithMultiple([K.node,S(J,J)]),y[J.name]=!0}else if(K.isVariableDeclaration()){for(var X=K.get("declarations"),z=X,$=Array.isArray(z),Q=0,z=$?z:(0,l.default)(z);;){var Z;if($){if(Q>=z.length)break;Z=z[Q++]}else{if(Q=z.next(),Q.done)break;Z=Q.value}var ee=Z,te=ee.get("id"),re=ee.get("init"),ne=[];if(re.node||re.replaceWith(g.identifier("undefined")),te.isIdentifier())n(m,te.node.name,te.node),re.replaceWith(S(te.node,re.node).expression),y[te.node.name]=!0;else if(te.isObjectPattern())for(var ie=0;ie<te.node.properties.length;ie++){var se=te.node.properties[ie],ae=se.value;g.isAssignmentPattern(ae)?ae=ae.left:g.isRestProperty(se)&&(ae=se.argument),n(m,ae.name,ae),ne.push(S(ae,ae)),y[ae.name]=!0}else if(te.isArrayPattern()&&te.node.elements)for(var oe=0;oe<te.node.elements.length;oe++){var ue=te.node.elements[oe];if(ue){g.isAssignmentPattern(ue)?ue=ue.left:g.isRestElement(ue)&&(ue=ue.argument);var le=ue.name;n(m,le,ue),ne.push(S(ue,ue)),y[le]=!0}}T.insertAfter(ne)}T.replaceWith(K.node)}continue}var ce=T.get("specifiers"),fe=[],pe=T.node.source;if(pe)for(var de=r(pe.value,T.node._blockHoist),he=ce,me=Array.isArray(he),ye=0,he=me?he:(0,l.default)(he);;){var ve;if(me){if(ye>=he.length)break;ve=he[ye++]}else{if(ye=he.next(),ye.done)break;ve=ye.value}var ge=ve;ge.isExportNamespaceSpecifier()||ge.isExportDefaultSpecifier()||ge.isExportSpecifier()&&(a||"default"!==ge.node.local.name?v.push(x(g.stringLiteral(ge.node.exported.name),g.memberExpression(de,ge.node.local))):v.push(x(g.stringLiteral(ge.node.exported.name),g.memberExpression(g.callExpression(this.addHelper("interopRequireDefault"),[de]),ge.node.local))),y[ge.node.exported.name]=!0)}else for(var be=ce,Ee=Array.isArray(be),xe=0,be=Ee?be:(0,l.default)(be);;){var Ae;if(Ee){if(xe>=be.length)break;Ae=be[xe++]}else{if(xe=be.next(),xe.done)break;Ae=xe.value}var Se=Ae;Se.isExportSpecifier()&&(n(m,Se.node.local.name,Se.node.exported),y[Se.node.exported.name]=!0,fe.push(S(Se.node.exported,Se.node.local)))}T.replaceWithMultiple(fe)}else if(T.isExportAllDeclaration()){var _e=_({OBJECT:r(T.node.source.value,T.node._blockHoist)});_e.loc=T.node.loc,v.push(_e),T.remove()}}for(var De in h){var Ce=h[De],O=Ce.specifiers,we=Ce.maxBlockHoist;if(O.length){for(var Pe=r(De,we),ke=void 0,Fe=0;Fe<O.length;Fe++){var Te=O[Fe];if(g.isImportNamespaceSpecifier(Te)){if(i||a)D[Te.local.name]=Pe;else{var Oe=g.variableDeclaration("var",[g.variableDeclarator(Te.local,g.callExpression(this.addHelper("interopRequireWildcard"),[Pe]))]);we>0&&(Oe._blockHoist=we),v.push(Oe)}ke=Te.local}else g.isImportDefaultSpecifier(Te)&&(O[Fe]=g.importSpecifier(Te.local,g.identifier("default")))}for(var Be=O,Re=Array.isArray(Be),Ie=0,Be=Re?Be:(0,l.default)(Be);;){var Me;if(Re){if(Ie>=Be.length)break;Me=Be[Ie++]}else{if(Ie=Be.next(),Ie.done)break;Me=Ie.value}var Ne=Me;if(g.isImportSpecifier(Ne)){var Le=Pe;if("default"===Ne.imported.name)if(ke)Le=ke;else if(!a){Le=ke=e.scope.generateUidIdentifier(Pe.name);var je=g.variableDeclaration("var",[g.variableDeclarator(Le,g.callExpression(this.addHelper("interopRequireDefault"),[Pe]))]);we>0&&(je._blockHoist=we),v.push(je)}D[Ne.local.name]=g.memberExpression(Le,g.cloneWithoutLoc(Ne.imported))}}}else{var Ue=b(g.stringLiteral(De));Ue.loc=h[De].loc,v.push(Ue)}}if(f&&(0,s.default)(y).length)for(var Ve=(0,s.default)(y),Ge=0;Ge<Ve.length;Ge+=100)!function(e){var t=Ve.slice(e,e+100),r=g.identifier("undefined");t.forEach(function(e){r=S(g.identifier(e),r).expression});var n=g.expressionStatement(r);n._blockHoist=3,v.unshift(n)}(Ge);if(c&&!i){var We=E;this.opts.loose&&(We=A);var Ye=We();Ye._blockHoist=3,v.unshift(Ye)}e.unshiftContainer("body",v),e.traverse(t,{remaps:D,scope:u,exports:m,requeueInParent:function(t){return e.requeue(t)}})}}}}};var p=r(19),d=r(4),h=n(d),m=r(216),y=n(m),v=r(1),g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(v),b=(0,h.default)("\n  require($0);\n"),E=(0,h.default)('\n  Object.defineProperty(exports, "__esModule", {\n    value: true\n  });\n'),x=(0,h.default)("\n  Object.defineProperty(exports, $0, {\n    enumerable: true,\n    get: function () {\n      return $1;\n    }\n  });\n"),A=(0,h.default)("\n  exports.__esModule = true;\n"),S=(0,h.default)("\n  exports.$0 = $1;\n"),_=(0,h.default)('\n  Object.keys(OBJECT).forEach(function (key) {\n    if (key === "default" || key === "__esModule") return;\n    Object.defineProperty(exports, key, {\n      enumerable: true,\n      get: function () {\n        return OBJECT[key];\n      }\n    });\n  });\n'),D=["FunctionExpression","FunctionDeclaration","ClassProperty","ClassMethod","ObjectMethod"];e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(10),o=n(a);t.default=function(e){function t(e,t,r,n,i){new l.default({getObjectRef:n,methodNode:t,methodPath:e,isStatic:!0,scope:r,file:i}).replace()}var r=e.types,n=(0,o.default)();return{visitor:{Super:function(e){var t=e.findParent(function(e){return e.isObjectExpression()});t&&(t.node[n]=!0)},ObjectExpression:{exit:function(e,i){if(e.node[n]){for(var a=void 0,o=function(){return a=a||e.scope.generateUidIdentifier("obj")},u=e.get("properties"),l=u,c=Array.isArray(l),f=0,l=c?l:(0,s.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;d.isObjectProperty()&&(d=d.get("value")),t(d,d.node,e.scope,o,i)}a&&(e.scope.push({id:a}),e.replaceWith(r.assignmentExpression("=",a,e.node)))}}}}}};var u=r(193),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}t.__esModule=!0;var i=r(2),s=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default=function(){return{visitor:a.visitors.merge([{ArrowFunctionExpression:function(e){for(var t=e.get("params"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}var o=a;if(o.isRestElement()||o.isAssignmentPattern()){e.arrowFunctionToShadowed();break}}}},u.visitor,p.visitor,c.visitor])}};var a=r(7),o=r(334),u=n(o),l=r(333),c=n(l),f=r(335),p=n(f);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{ObjectMethod:function(e){var t=e.node;if("method"===t.kind){var r=i.functionExpression(null,t.params,t.body,t.generator,t.async);r.returnType=t.returnType,e.replaceWith(i.objectProperty(t.key,r,t.computed))}},ObjectProperty:function(e){var t=e.node;t.shorthand&&(t.shorthand=!1)}}}};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e,t,r){return r.opts.loose&&!s.isIdentifier(e.argument,{name:"arguments"})?e.argument:t.toArray(e.argument,!0)}function r(e){for(var t=0;t<e.length;t++)if(s.isSpreadElement(e[t]))return!0;return!1}function n(e,r,n){function a(){u.length&&(o.push(s.arrayExpression(u)),u=[])}for(var o=[],u=[],l=e,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;s.isSpreadElement(d)?(a(),o.push(t(d,r,n))):u.push(d)}return a(),o}var s=e.types;return{visitor:{ArrayExpression:function(e,t){var i=e.node,a=e.scope,o=i.elements;if(r(o)){var u=n(o,a,t),l=u.shift();s.isArrayExpression(l)||(u.unshift(l),l=s.arrayExpression([])),e.replaceWith(s.callExpression(s.memberExpression(l,s.identifier("concat")),u))}},CallExpression:function(e,t){var i=e.node,a=e.scope,o=i.arguments;if(r(o)){var u=e.get("callee");if(!u.isSuper()){var l=s.identifier("undefined");i.arguments=[];var c=void 0;c=1===o.length&&"arguments"===o[0].argument.name?[o[0].argument]:n(o,a,t);var f=c.shift();c.length?i.arguments.push(s.callExpression(s.memberExpression(f,s.identifier("concat")),c)):i.arguments.push(f);var p=i.callee;if(u.isMemberExpression()){var d=a.maybeGenerateMemoised(p.object);d?(p.object=s.assignmentExpression("=",d,p.object),l=d):l=p.object,s.appendToMemberExpression(p,s.identifier("apply"))}else i.callee=s.memberExpression(i.callee,s.identifier("apply"));s.isSuper(l)&&(l=s.thisExpression()),i.arguments.unshift(l)}}},NewExpression:function(e,t){var i=e.node,a=e.scope,o=i.arguments;if(r(o)){var u=n(o,a,t),l=s.arrayExpression([s.nullLiteral()]);o=s.callExpression(s.memberExpression(l,s.identifier("concat")),u),e.replaceWith(s.newExpression(s.callExpression(s.memberExpression(s.memberExpression(s.memberExpression(s.identifier("Function"),s.identifier("prototype")),s.identifier("bind")),s.identifier("apply")),[i.callee,o]),[]))}}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}t.__esModule=!0,t.default=function(){return{visitor:{RegExpLiteral:function(e){var t=e.node;s.is(t,"y")&&e.replaceWith(o.newExpression(o.identifier("RegExp"),[o.stringLiteral(t.pattern),o.stringLiteral(t.flags)]))}}}};var i=r(192),s=n(i),a=r(1),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){return n.isLiteral(e)&&"string"==typeof e.value}function r(e,t){return n.binaryExpression("+",e,t)}var n=e.types;return{visitor:{TaggedTemplateExpression:function(e,t){for(var r=e.node,s=r.quasi,a=[],o=[],u=[],l=s.quasis,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;o.push(n.stringLiteral(d.value.cooked)),u.push(n.stringLiteral(d.value.raw))}o=n.arrayExpression(o),u=n.arrayExpression(u);var h="taggedTemplateLiteral";t.opts.loose&&(h+="Loose");var m=t.file.addTemplateObject(h,o,u);a.push(m),a=a.concat(s.expressions),e.replaceWith(n.callExpression(r.tag,a))},TemplateLiteral:function(e,s){for(var a=[],o=e.get("expressions"),u=e.node.quasis,l=Array.isArray(u),c=0,u=l?u:(0,i.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;a.push(n.stringLiteral(p.value.cooked));var d=o.shift();d&&(!s.opts.spec||d.isBaseType("string")||d.isBaseType("number")?a.push(d.node):a.push(n.callExpression(n.identifier("String"),[d.node])))}if(a=a.filter(function(e){return!n.isLiteral(e,{value:""})}),t(a[0])||t(a[1])||a.unshift(n.stringLiteral("")),a.length>1){for(var h=r(a.shift(),a.shift()),m=a,y=Array.isArray(m),v=0,m=y?m:(0,i.default)(m);;){var g;if(y){if(v>=m.length)break;g=m[v++]}else{if(v=m.next(),v.done)break;g=v.value}h=r(h,g)}e.replaceWith(h)}else e.replaceWith(a[0])}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(10),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types,r=(0,i.default)();return{visitor:{Scope:function(e){var t=e.scope;t.getBinding("Symbol")&&t.rename("Symbol")},UnaryExpression:function(e){var n=e.node,i=e.parent;if(!n[r]&&!e.find(function(e){return e.node&&!!e.node._generated})){if(e.parentPath.isBinaryExpression()&&t.EQUALITY_BINARY_OPERATORS.indexOf(i.operator)>=0){var s=e.getOpposite();if(s.isLiteral()&&"symbol"!==s.node.value&&"object"!==s.node.value)return}if("typeof"===n.operator){var a=t.callExpression(this.addHelper("typeof"),[n.argument]);if(e.get("argument").isIdentifier()){var o=t.stringLiteral("undefined"),u=t.unaryExpression("typeof",n.argument);u[r]=!0,e.replaceWith(t.conditionalExpression(t.binaryExpression("===",u,o),o,a))}else e.replaceWith(a)}}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{RegExpLiteral:function(e){var t=e.node;a.is(t,"u")&&(t.pattern=(0,i.default)(t.pattern,t.flags),a.pullFlag(t,"u"))}}}};var n=r(612),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(192),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";e.exports=r(606)},function(e,t,r){"use strict";e.exports={default:r(408),__esModule:!0}},function(e,t,r){"use strict";function n(){i(),s()}function i(){t.path=u=new o.default}function s(){t.scope=l=new o.default}t.__esModule=!0,t.scope=t.path=void 0;var a=r(364),o=function(e){return e&&e.__esModule?e:{default:e}}(a);t.clear=n,t.clearPath=i,t.clearScope=s;var u=t.path=new o.default,l=t.scope=new o.default},function(e,t){"use strict";function r(e){return e=e.split(" "),function(t){return e.indexOf(t)>=0}}function n(e,t){for(var r=65536,n=0;n<t.length;n+=2){if((r+=t[n])>e)return!1;if((r+=t[n+1])>=e)return!0}}function i(e){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&x.test(String.fromCharCode(e)):n(e,S)))}function s(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&A.test(String.fromCharCode(e)):n(e,S)||n(e,_))))}function a(e){var t={};for(var r in D)t[r]=e&&r in e?e[r]:D[r];return t}function o(e){return 10===e||13===e||8232===e||8233===e}function u(e,t){for(var r=1,n=0;;){N.lastIndex=n;var i=N.exec(e);if(!(i&&i.index<t))return new V(r,t-n);++r,n=i.index+i[0].length}}function l(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}function c(e,t,r,n){return e.type=t,e.end=r,e.loc.end=n,this.processComment(e),e}function f(e){return e[e.length-1]}function p(e){return e&&"Property"===e.type&&"init"===e.kind&&!1===e.method}function d(e){return"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?d(e.object)+"."+d(e.property):void 0}function h(e,t){return new J(t,e).parse()}function m(e,t){var r=new J(t,e);return r.options.strictMode&&(r.state.strict=!0),r.getExpression()}var y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var v={6:r("enum await"),strict:r("implements interface let package private protected public static yield"),strictBind:r("eval arguments")
},g=r("break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super"),b="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",E="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",x=new RegExp("["+b+"]"),A=new RegExp("["+b+E+"]");b=E=null;var S=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],_=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],D={sourceType:"script",sourceFilename:void 0,startLine:1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,plugins:[],strictMode:null},C="function"==typeof Symbol&&"symbol"===y(Symbol.iterator)?function(e){return void 0===e?"undefined":y(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":y(e)},w=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},P=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":y(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},k=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":y(t))&&"function"!=typeof t?e:t},F=!0,T=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w(this,e),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.rightAssociative=!!r.rightAssociative,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null},O=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return w(this,t),n.keyword=r,k(this,e.call(this,r,n))}return P(t,e),t}(T),B=function(e){function t(r,n){return w(this,t),k(this,e.call(this,r,{beforeExpr:F,binop:n}))}return P(t,e),t}(T),R={num:new T("num",{startsExpr:!0}),regexp:new T("regexp",{startsExpr:!0}),string:new T("string",{startsExpr:!0}),name:new T("name",{startsExpr:!0}),eof:new T("eof"),bracketL:new T("[",{beforeExpr:F,startsExpr:!0}),bracketR:new T("]"),braceL:new T("{",{beforeExpr:F,startsExpr:!0}),braceBarL:new T("{|",{beforeExpr:F,startsExpr:!0}),braceR:new T("}"),braceBarR:new T("|}"),parenL:new T("(",{beforeExpr:F,startsExpr:!0}),parenR:new T(")"),comma:new T(",",{beforeExpr:F}),semi:new T(";",{beforeExpr:F}),colon:new T(":",{beforeExpr:F}),doubleColon:new T("::",{beforeExpr:F}),dot:new T("."),question:new T("?",{beforeExpr:F}),arrow:new T("=>",{beforeExpr:F}),template:new T("template"),ellipsis:new T("...",{beforeExpr:F}),backQuote:new T("`",{startsExpr:!0}),dollarBraceL:new T("${",{beforeExpr:F,startsExpr:!0}),at:new T("@"),eq:new T("=",{beforeExpr:F,isAssign:!0}),assign:new T("_=",{beforeExpr:F,isAssign:!0}),incDec:new T("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new T("prefix",{beforeExpr:F,prefix:!0,startsExpr:!0}),logicalOR:new B("||",1),logicalAND:new B("&&",2),bitwiseOR:new B("|",3),bitwiseXOR:new B("^",4),bitwiseAND:new B("&",5),equality:new B("==/!=",6),relational:new B("</>",7),bitShift:new B("<</>>",8),plusMin:new T("+/-",{beforeExpr:F,binop:9,prefix:!0,startsExpr:!0}),modulo:new B("%",10),star:new B("*",10),slash:new B("/",10),exponent:new T("**",{beforeExpr:F,binop:11,rightAssociative:!0})},I={break:new O("break"),case:new O("case",{beforeExpr:F}),catch:new O("catch"),continue:new O("continue"),debugger:new O("debugger"),default:new O("default",{beforeExpr:F}),do:new O("do",{isLoop:!0,beforeExpr:F}),else:new O("else",{beforeExpr:F}),finally:new O("finally"),for:new O("for",{isLoop:!0}),function:new O("function",{startsExpr:!0}),if:new O("if"),return:new O("return",{beforeExpr:F}),switch:new O("switch"),throw:new O("throw",{beforeExpr:F}),try:new O("try"),var:new O("var"),let:new O("let"),const:new O("const"),while:new O("while",{isLoop:!0}),with:new O("with"),new:new O("new",{beforeExpr:F,startsExpr:!0}),this:new O("this",{startsExpr:!0}),super:new O("super",{startsExpr:!0}),class:new O("class"),extends:new O("extends",{beforeExpr:F}),export:new O("export"),import:new O("import",{startsExpr:!0}),yield:new O("yield",{beforeExpr:F,startsExpr:!0}),null:new O("null",{startsExpr:!0}),true:new O("true",{startsExpr:!0}),false:new O("false",{startsExpr:!0}),in:new O("in",{beforeExpr:F,binop:7}),instanceof:new O("instanceof",{beforeExpr:F,binop:7}),typeof:new O("typeof",{beforeExpr:F,prefix:!0,startsExpr:!0}),void:new O("void",{beforeExpr:F,prefix:!0,startsExpr:!0}),delete:new O("delete",{beforeExpr:F,prefix:!0,startsExpr:!0})};Object.keys(I).forEach(function(e){R["_"+e]=I[e]});var M=/\r\n?|\n|\u2028|\u2029/,N=new RegExp(M.source,"g"),L=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,j=function e(t,r,n,i){w(this,e),this.token=t,this.isExpr=!!r,this.preserveSpace=!!n,this.override=i},U={braceStatement:new j("{",!1),braceExpression:new j("{",!0),templateQuasi:new j("${",!0),parenStatement:new j("(",!1),parenExpression:new j("(",!0),template:new j("`",!0,!0,function(e){return e.readTmplToken()}),functionExpression:new j("function",!0)};R.parenR.updateContext=R.braceR.updateContext=function(){if(1===this.state.context.length)return void(this.state.exprAllowed=!0);var e=this.state.context.pop();e===U.braceStatement&&this.curContext()===U.functionExpression?(this.state.context.pop(),this.state.exprAllowed=!1):e===U.templateQuasi?this.state.exprAllowed=!0:this.state.exprAllowed=!e.isExpr},R.name.updateContext=function(e){this.state.exprAllowed=!1,e!==R._let&&e!==R._const&&e!==R._var||M.test(this.input.slice(this.state.end))&&(this.state.exprAllowed=!0)},R.braceL.updateContext=function(e){this.state.context.push(this.braceIsBlock(e)?U.braceStatement:U.braceExpression),this.state.exprAllowed=!0},R.dollarBraceL.updateContext=function(){this.state.context.push(U.templateQuasi),this.state.exprAllowed=!0},R.parenL.updateContext=function(e){var t=e===R._if||e===R._for||e===R._with||e===R._while;this.state.context.push(t?U.parenStatement:U.parenExpression),this.state.exprAllowed=!0},R.incDec.updateContext=function(){},R._function.updateContext=function(){this.curContext()!==U.braceStatement&&this.state.context.push(U.functionExpression),this.state.exprAllowed=!1},R.backQuote.updateContext=function(){this.curContext()===U.template?this.state.context.pop():this.state.context.push(U.template),this.state.exprAllowed=!1};var V=function e(t,r){w(this,e),this.line=t,this.column=r},G=function e(t,r){w(this,e),this.start=t,this.end=r},W=function(){function e(){w(this,e)}return e.prototype.init=function(e,t){return this.strict=!1!==e.strictMode&&"module"===e.sourceType,this.input=t,this.potentialArrowAt=-1,this.inMethod=this.inFunction=this.inGenerator=this.inAsync=this.inPropertyName=this.inType=this.inClassProperty=this.noAnonFunctionType=!1,this.labels=[],this.decorators=[],this.tokens=[],this.comments=[],this.trailingComments=[],this.leadingComments=[],this.commentStack=[],this.pos=this.lineStart=0,this.curLine=e.startLine,this.type=R.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=[U.braceStatement],this.exprAllowed=!0,this.containsEsc=this.containsOctal=!1,this.octalPosition=null,this.invalidTemplateEscapePosition=null,this.exportedIdentifiers=[],this},e.prototype.curPosition=function(){return new V(this.curLine,this.pos-this.lineStart)},e.prototype.clone=function(t){var r=new e;for(var n in this){var i=this[n];t&&"context"!==n||!Array.isArray(i)||(i=i.slice()),r[n]=i}return r},e}(),Y=function e(t){w(this,e),this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new G(t.startLoc,t.endLoc)},q=function(){function e(t,r){w(this,e),this.state=new W,this.state.init(t,r)}return e.prototype.next=function(){this.isLookahead||this.state.tokens.push(new Y(this.state)),this.state.lastTokEnd=this.state.end,this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()},e.prototype.eat=function(e){return!!this.match(e)&&(this.next(),!0)},e.prototype.match=function(e){return this.state.type===e},e.prototype.isKeyword=function(e){return g(e)},e.prototype.lookahead=function(){var e=this.state;this.state=e.clone(!0),this.isLookahead=!0,this.next(),this.isLookahead=!1;var t=this.state.clone(!0);return this.state=e,t},e.prototype.setStrict=function(e){if(this.state.strict=e,this.match(R.num)||this.match(R.string)){for(this.state.pos=this.state.start;this.state.pos<this.state.lineStart;)this.state.lineStart=this.input.lastIndexOf("\n",this.state.lineStart-2)+1,--this.state.curLine;this.nextToken()}},e.prototype.curContext=function(){return this.state.context[this.state.context.length-1]},e.prototype.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.state.containsOctal=!1,this.state.octalPosition=null,this.state.start=this.state.pos,this.state.startLoc=this.state.curPosition(),this.state.pos>=this.input.length?this.finishToken(R.eof):e.override?e.override(this):this.readToken(this.fullCharCodeAtPos())},e.prototype.readToken=function(e){return i(e)||92===e?this.readWord():this.getTokenFromCode(e)},e.prototype.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.state.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.state.pos+1)-56613888},e.prototype.pushComment=function(e,t,r,n,i,s){var a={type:e?"CommentBlock":"CommentLine",value:t,start:r,end:n,loc:new G(i,s)};this.isLookahead||(this.state.tokens.push(a),this.state.comments.push(a),this.addComment(a))},e.prototype.skipBlockComment=function(){var e=this.state.curPosition(),t=this.state.pos,r=this.input.indexOf("*/",this.state.pos+=2);-1===r&&this.raise(this.state.pos-2,"Unterminated comment"),this.state.pos=r+2,N.lastIndex=t;for(var n=void 0;(n=N.exec(this.input))&&n.index<this.state.pos;)++this.state.curLine,this.state.lineStart=n.index+n[0].length;this.pushComment(!0,this.input.slice(t+2,r),t,this.state.pos,e,this.state.curPosition())},e.prototype.skipLineComment=function(e){for(var t=this.state.pos,r=this.state.curPosition(),n=this.input.charCodeAt(this.state.pos+=e);this.state.pos<this.input.length&&10!==n&&13!==n&&8232!==n&&8233!==n;)++this.state.pos,n=this.input.charCodeAt(this.state.pos);this.pushComment(!1,this.input.slice(t+e,this.state.pos),t,this.state.pos,r,this.state.curPosition())},e.prototype.skipSpace=function(){e:for(;this.state.pos<this.input.length;){var e=this.input.charCodeAt(this.state.pos);switch(e){case 32:case 160:++this.state.pos;break;case 13:10===this.input.charCodeAt(this.state.pos+1)&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&L.test(String.fromCharCode(e))))break e;++this.state.pos}}},e.prototype.finishToken=function(e,t){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();var r=this.state.type;this.state.type=e,this.state.value=t,this.updateContext(r)},e.prototype.readToken_dot=function(){var e=this.input.charCodeAt(this.state.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.state.pos+2);return 46===e&&46===t?(this.state.pos+=3,this.finishToken(R.ellipsis)):(++this.state.pos,this.finishToken(R.dot))},e.prototype.readToken_slash=function(){return this.state.exprAllowed?(++this.state.pos,this.readRegexp()):61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.assign,2):this.finishOp(R.slash,1)},e.prototype.readToken_mult_modulo=function(e){var t=42===e?R.star:R.modulo,r=1,n=this.input.charCodeAt(this.state.pos+1);return 42===n&&(r++,n=this.input.charCodeAt(this.state.pos+2),t=R.exponent),61===n&&(r++,t=R.assign),this.finishOp(t,r)},e.prototype.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?this.finishOp(124===e?R.logicalOR:R.logicalAND,2):61===t?this.finishOp(R.assign,2):124===e&&125===t&&this.hasPlugin("flow")?this.finishOp(R.braceBarR,2):this.finishOp(124===e?R.bitwiseOR:R.bitwiseAND,1)},e.prototype.readToken_caret=function(){return 61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.assign,2):this.finishOp(R.bitwiseXOR,1)},e.prototype.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?45===t&&62===this.input.charCodeAt(this.state.pos+2)&&M.test(this.input.slice(this.state.lastTokEnd,this.state.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(R.incDec,2):61===t?this.finishOp(R.assign,2):this.finishOp(R.plusMin,1)},e.prototype.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.state.pos+1),r=1;return t===e?(r=62===e&&62===this.input.charCodeAt(this.state.pos+2)?3:2,61===this.input.charCodeAt(this.state.pos+r)?this.finishOp(R.assign,r+1):this.finishOp(R.bitShift,r)):33===t&&60===e&&45===this.input.charCodeAt(this.state.pos+2)&&45===this.input.charCodeAt(this.state.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(r=2),this.finishOp(R.relational,r))},e.prototype.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.state.pos+1);return 61===t?this.finishOp(R.equality,61===this.input.charCodeAt(this.state.pos+2)?3:2):61===e&&62===t?(this.state.pos+=2,this.finishToken(R.arrow)):this.finishOp(61===e?R.eq:R.prefix,1)},e.prototype.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.state.pos,this.finishToken(R.parenL);case 41:return++this.state.pos,this.finishToken(R.parenR);case 59:return++this.state.pos,this.finishToken(R.semi);case 44:return++this.state.pos,this.finishToken(R.comma);case 91:return++this.state.pos,this.finishToken(R.bracketL);case 93:return++this.state.pos,this.finishToken(R.bracketR);case 123:return this.hasPlugin("flow")&&124===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.braceBarL,2):(++this.state.pos,this.finishToken(R.braceL));case 125:return++this.state.pos,this.finishToken(R.braceR);case 58:return this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.doubleColon,2):(++this.state.pos,this.finishToken(R.colon));case 63:return++this.state.pos,this.finishToken(R.question);case 64:return++this.state.pos,this.finishToken(R.at);case 96:return++this.state.pos,this.finishToken(R.backQuote);case 48:var t=this.input.charCodeAt(this.state.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(R.prefix,1)}this.raise(this.state.pos,"Unexpected character '"+l(e)+"'")},e.prototype.finishOp=function(e,t){var r=this.input.slice(this.state.pos,this.state.pos+t);return this.state.pos+=t,this.finishToken(e,r)},e.prototype.readRegexp=function(){for(var e=this.state.pos,t=void 0,r=void 0;;){this.state.pos>=this.input.length&&this.raise(e,"Unterminated regular expression");var n=this.input.charAt(this.state.pos);if(M.test(n)&&this.raise(e,"Unterminated regular expression"),t)t=!1;else{if("["===n)r=!0;else if("]"===n&&r)r=!1;else if("/"===n&&!r)break;t="\\"===n}++this.state.pos}var i=this.input.slice(e,this.state.pos);++this.state.pos;var s=this.readWord1();if(s){/^[gmsiyu]*$/.test(s)||this.raise(e,"Invalid regular expression flag")}return this.finishToken(R.regexp,{pattern:i,flags:s})},e.prototype.readInt=function(e,t){for(var r=this.state.pos,n=0,i=0,s=null==t?1/0:t;i<s;++i){var a=this.input.charCodeAt(this.state.pos),o=void 0;if((o=a>=97?a-97+10:a>=65?a-65+10:a>=48&&a<=57?a-48:1/0)>=e)break;++this.state.pos,n=n*e+o}return this.state.pos===r||null!=t&&this.state.pos-r!==t?null:n},e.prototype.readRadixNumber=function(e){this.state.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.state.start+2,"Expected number in radix "+e),i(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number"),this.finishToken(R.num,t)},e.prototype.readNumber=function(e){var t=this.state.pos,r=48===this.input.charCodeAt(t),n=!1;e||null!==this.readInt(10)||this.raise(t,"Invalid number"),r&&this.state.pos==t+1&&(r=!1);var s=this.input.charCodeAt(this.state.pos);46!==s||r||(++this.state.pos,this.readInt(10),n=!0,s=this.input.charCodeAt(this.state.pos)),69!==s&&101!==s||r||(s=this.input.charCodeAt(++this.state.pos),43!==s&&45!==s||++this.state.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),n=!0),i(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number");var a=this.input.slice(t,this.state.pos),o=void 0;return n?o=parseFloat(a):r&&1!==a.length?this.state.strict?this.raise(t,"Invalid number"):o=/[89]/.test(a)?parseInt(a,10):parseInt(a,8):o=parseInt(a,10),this.finishToken(R.num,o)},e.prototype.readCodePoint=function(e){var t=this.input.charCodeAt(this.state.pos),r=void 0;if(123===t){var n=++this.state.pos;if(r=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos,e),++this.state.pos,null===r)--this.state.invalidTemplateEscapePosition;else if(r>1114111){if(!e)return this.state.invalidTemplateEscapePosition=n-2,null;this.raise(n,"Code point out of bounds")}}else r=this.readHexChar(4,e);return r},e.prototype.readString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;92===n?(t+=this.input.slice(r,this.state.pos),t+=this.readEscapedChar(!1),r=this.state.pos):(o(n)&&this.raise(this.state.start,"Unterminated string constant"),++this.state.pos)}return t+=this.input.slice(r,this.state.pos++),this.finishToken(R.string,t)},e.prototype.readTmplToken=function(){for(var e="",t=this.state.pos,r=!1;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated template");var n=this.input.charCodeAt(this.state.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.state.pos+1))return this.state.pos===this.state.start&&this.match(R.template)?36===n?(this.state.pos+=2,this.finishToken(R.dollarBraceL)):(++this.state.pos,this.finishToken(R.backQuote)):(e+=this.input.slice(t,this.state.pos),this.finishToken(R.template,r?null:e));if(92===n){e+=this.input.slice(t,this.state.pos);var i=this.readEscapedChar(!0);null===i?r=!0:e+=i,t=this.state.pos}else if(o(n)){switch(e+=this.input.slice(t,this.state.pos),++this.state.pos,n){case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}++this.state.curLine,this.state.lineStart=this.state.pos,t=this.state.pos}else++this.state.pos}},e.prototype.readEscapedChar=function(e){var t=!e,r=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,r){case 110:return"\n";case 114:return"\r";case 120:var n=this.readHexChar(2,t);return null===n?null:String.fromCharCode(n);case 117:var i=this.readCodePoint(t);return null===i?null:l(i);case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:return this.state.lineStart=this.state.pos,++this.state.curLine,"";default:if(r>=48&&r<=55){var s=this.state.pos-1,a=this.input.substr(this.state.pos-1,3).match(/^[0-7]+/)[0],o=parseInt(a,8);if(o>255&&(a=a.slice(0,-1),o=parseInt(a,8)),o>0){if(e)return this.state.invalidTemplateEscapePosition=s,null;this.state.strict?this.raise(s,"Octal literal in strict mode"):this.state.containsOctal||(this.state.containsOctal=!0,this.state.octalPosition=s)}return this.state.pos+=a.length-1,String.fromCharCode(o)}return String.fromCharCode(r)}},e.prototype.readHexChar=function(e,t){var r=this.state.pos,n=this.readInt(16,e);return null===n&&(t?this.raise(r,"Bad character escape sequence"):(this.state.pos=r-1,this.state.invalidTemplateEscapePosition=r-1)),n},e.prototype.readWord1=function(){this.state.containsEsc=!1;for(var e="",t=!0,r=this.state.pos;this.state.pos<this.input.length;){var n=this.fullCharCodeAtPos();if(s(n))this.state.pos+=n<=65535?1:2;else{if(92!==n)break;this.state.containsEsc=!0,e+=this.input.slice(r,this.state.pos);var a=this.state.pos;117!==this.input.charCodeAt(++this.state.pos)&&this.raise(this.state.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.state.pos;var o=this.readCodePoint(!0);(t?i:s)(o,!0)||this.raise(a,"Invalid Unicode escape"),e+=l(o),r=this.state.pos}t=!1}return e+this.input.slice(r,this.state.pos)},e.prototype.readWord=function(){var e=this.readWord1(),t=R.name;return!this.state.containsEsc&&this.isKeyword(e)&&(t=I[e]),this.finishToken(t,e)},e.prototype.braceIsBlock=function(e){if(e===R.colon){var t=this.curContext();if(t===U.braceStatement||t===U.braceExpression)return!t.isExpr}return e===R._return?M.test(this.input.slice(this.state.lastTokEnd,this.state.start)):e===R._else||e===R.semi||e===R.eof||e===R.parenR||(e===R.braceL?this.curContext()===U.braceStatement:!this.state.exprAllowed)},e.prototype.updateContext=function(e){var t=this.state.type,r=void 0;t.keyword&&e===R.dot?this.state.exprAllowed=!1:(r=t.updateContext)?r.call(this,e):this.state.exprAllowed=t.beforeExpr},e}(),K={},H=["jsx","doExpressions","objectRestSpread","decorators","classProperties","exportExtensions","asyncGenerators","functionBind","functionSent","dynamicImport","flow"],J=function(e){function t(r,n){w(this,t),r=a(r);var i=k(this,e.call(this,r,n));return i.options=r,i.inModule="module"===i.options.sourceType,i.input=n,i.plugins=i.loadPlugins(i.options.plugins),i.filename=r.sourceFilename,0===i.state.pos&&"#"===i.input[0]&&"!"===i.input[1]&&i.skipLineComment(2),i}return P(t,e),t.prototype.isReservedWord=function(e){return"await"===e?this.inModule:v[6](e)},t.prototype.hasPlugin=function(e){return!!(this.plugins["*"]&&H.indexOf(e)>-1)||!!this.plugins[e]},t.prototype.extend=function(e,t){this[e]=t(this[e])},t.prototype.loadAllPlugins=function(){var e=this,t=Object.keys(K).filter(function(e){return"flow"!==e&&"estree"!==e});t.push("flow"),t.forEach(function(t){var r=K[t];r&&r(e)})},t.prototype.loadPlugins=function(e){if(e.indexOf("*")>=0)return this.loadAllPlugins(),{"*":!0};var t={};e.indexOf("flow")>=0&&(e=e.filter(function(e){return"flow"!==e}),e.push("flow")),e.indexOf("estree")>=0&&(e=e.filter(function(e){return"estree"!==e}),e.unshift("estree"));for(var r=e,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if(!t[a]){t[a]=!0;var o=K[a];o&&o(this)}}return t},t.prototype.parse=function(){var e=this.startNode(),t=this.startNode();return this.nextToken(),this.parseTopLevel(e,t)},t}(q),X=J.prototype;X.addExtra=function(e,t,r){if(e){(e.extra=e.extra||{})[t]=r}},X.isRelational=function(e){return this.match(R.relational)&&this.state.value===e},X.expectRelational=function(e){this.isRelational(e)?this.next():this.unexpected(null,R.relational)},X.isContextual=function(e){return this.match(R.name)&&this.state.value===e},X.eatContextual=function(e){return this.state.value===e&&this.eat(R.name)},X.expectContextual=function(e,t){this.eatContextual(e)||this.unexpected(null,t)},X.canInsertSemicolon=function(){return this.match(R.eof)||this.match(R.braceR)||M.test(this.input.slice(this.state.lastTokEnd,this.state.start))},X.isLineTerminator=function(){return this.eat(R.semi)||this.canInsertSemicolon()},X.semicolon=function(){this.isLineTerminator()||this.unexpected(null,R.semi)},X.expect=function(e,t){return this.eat(e)||this.unexpected(t,e)},X.unexpected=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unexpected token";t&&"object"===(void 0===t?"undefined":C(t))&&t.label&&(t="Unexpected token, expected "+t.label),this.raise(null!=e?e:this.state.start,t)};var z=J.prototype;z.parseTopLevel=function(e,t){return t.sourceType=this.options.sourceType,this.parseBlockBody(t,!0,!0,R.eof),e.program=this.finishNode(t,"Program"),e.comments=this.state.comments,e.tokens=this.state.tokens,this.finishNode(e,"File")};var $={kind:"loop"},Q={kind:"switch"};z.stmtToDirective=function(e){var t=e.expression,r=this.startNodeAt(t.start,t.loc.start),n=this.startNodeAt(e.start,e.loc.start),i=this.input.slice(t.start,t.end),s=r.value=i.slice(1,-1);return this.addExtra(r,"raw",i),this.addExtra(r,"rawValue",s),n.value=this.finishNodeAt(r,"DirectiveLiteral",t.end,t.loc.end),this.finishNodeAt(n,"Directive",e.end,e.loc.end)},z.parseStatement=function(e,t){this.match(R.at)&&this.parseDecorators(!0);var r=this.state.type,n=this.startNode();switch(r){case R._break:case R._continue:return this.parseBreakContinueStatement(n,r.keyword);case R._debugger:return this.parseDebuggerStatement(n);case R._do:return this.parseDoStatement(n);case R._for:return this.parseForStatement(n);case R._function:return e||this.unexpected(),this.parseFunctionStatement(n);case R._class:return e||this.unexpected(),this.parseClass(n,!0);case R._if:return this.parseIfStatement(n);case R._return:return this.parseReturnStatement(n);case R._switch:return this.parseSwitchStatement(n);case R._throw:return this.parseThrowStatement(n);case R._try:return this.parseTryStatement(n);case R._let:case R._const:e||this.unexpected();case R._var:return this.parseVarStatement(n,r);case R._while:return this.parseWhileStatement(n);case R._with:return this.parseWithStatement(n);case R.braceL:return this.parseBlock();case R.semi:return this.parseEmptyStatement(n);case R._export:case R._import:if(this.hasPlugin("dynamicImport")&&this.lookahead().type===R.parenL)break;return this.options.allowImportExportEverywhere||(t||this.raise(this.state.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.state.start,"'import' and 'export' may appear only with 'sourceType: \"module\"'")),r===R._import?this.parseImport(n):this.parseExport(n);case R.name:if("async"===this.state.value){var i=this.state.clone();if(this.next(),this.match(R._function)&&!this.canInsertSemicolon())return this.expect(R._function),this.parseFunction(n,!0,!1,!0);this.state=i}}var s=this.state.value,a=this.parseExpression();return r===R.name&&"Identifier"===a.type&&this.eat(R.colon)?this.parseLabeledStatement(n,s,a):this.parseExpressionStatement(n,a)},z.takeDecorators=function(e){this.state.decorators.length&&(e.decorators=this.state.decorators,this.state.decorators=[])},z.parseDecorators=function(e){for(;this.match(R.at);){var t=this.parseDecorator();this.state.decorators.push(t)}e&&this.match(R._export)||this.match(R._class)||this.raise(this.state.start,"Leading decorators must be attached to a class declaration")},z.parseDecorator=function(){this.hasPlugin("decorators")||this.unexpected();var e=this.startNode();return this.next(),e.expression=this.parseMaybeAssign(),this.finishNode(e,"Decorator")},z.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.isLineTerminator()?e.label=null:this.match(R.name)?(e.label=this.parseIdentifier(),this.semicolon()):this.unexpected();var n=void 0;for(n=0;n<this.state.labels.length;++n){var i=this.state.labels[n];if(null==e.label||i.name===e.label.name){if(null!=i.kind&&(r||"loop"===i.kind))break;if(e.label&&r)break}}return n===this.state.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},z.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},z.parseDoStatement=function(e){return this.next(),this.state.labels.push($),e.body=this.parseStatement(!1),this.state.labels.pop(),this.expect(R._while),e.test=this.parseParenExpression(),this.eat(R.semi),this.finishNode(e,"DoWhileStatement")},z.parseForStatement=function(e){this.next(),this.state.labels.push($);var t=!1;if(this.hasPlugin("asyncGenerators")&&this.state.inAsync&&this.isContextual("await")&&(t=!0,this.next()),this.expect(R.parenL),this.match(R.semi))return t&&this.unexpected(),this.parseFor(e,null);if(this.match(R._var)||this.match(R._let)||this.match(R._const)){var r=this.startNode(),n=this.state.type;return this.next(),(this.parseVar(r,!0,n),this.finishNode(r,"VariableDeclaration"),!this.match(R._in)&&!this.isContextual("of")||1!==r.declarations.length||r.declarations[0].init)?(t&&this.unexpected(),
this.parseFor(e,r)):this.parseForIn(e,r,t)}var i={start:0},s=this.parseExpression(!0,i);if(this.match(R._in)||this.isContextual("of")){var a=this.isContextual("of")?"for-of statement":"for-in statement";return this.toAssignable(s,void 0,a),this.checkLVal(s,void 0,void 0,a),this.parseForIn(e,s,t)}return i.start&&this.unexpected(i.start),t&&this.unexpected(),this.parseFor(e,s)},z.parseFunctionStatement=function(e){return this.next(),this.parseFunction(e,!0)},z.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!1),e.alternate=this.eat(R._else)?this.parseStatement(!1):null,this.finishNode(e,"IfStatement")},z.parseReturnStatement=function(e){return this.state.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.state.start,"'return' outside of function"),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},z.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(R.braceL),this.state.labels.push(Q);for(var t,r=void 0;!this.match(R.braceR);)if(this.match(R._case)||this.match(R._default)){var n=this.match(R._case);r&&this.finishNode(r,"SwitchCase"),e.cases.push(r=this.startNode()),r.consequent=[],this.next(),n?r.test=this.parseExpression():(t&&this.raise(this.state.lastTokStart,"Multiple default clauses"),t=!0,r.test=null),this.expect(R.colon)}else r?r.consequent.push(this.parseStatement(!0)):this.unexpected();return r&&this.finishNode(r,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")},z.parseThrowStatement=function(e){return this.next(),M.test(this.input.slice(this.state.lastTokEnd,this.state.start))&&this.raise(this.state.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var Z=[];z.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(R._catch)){var t=this.startNode();this.next(),this.expect(R.parenL),t.param=this.parseBindingAtom(),this.checkLVal(t.param,!0,Object.create(null),"catch clause"),this.expect(R.parenR),t.body=this.parseBlock(),e.handler=this.finishNode(t,"CatchClause")}return e.guardedHandlers=Z,e.finalizer=this.eat(R._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},z.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},z.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.state.labels.push($),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"WhileStatement")},z.parseWithStatement=function(e){return this.state.strict&&this.raise(this.state.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},z.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},z.parseLabeledStatement=function(e,t,r){for(var n=this.state.labels,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}a.name===t&&this.raise(r.start,"Label '"+t+"' is already declared")}for(var o=this.state.type.isLoop?"loop":this.match(R._switch)?"switch":null,u=this.state.labels.length-1;u>=0;u--){var l=this.state.labels[u];if(l.statementStart!==e.start)break;l.statementStart=this.state.start,l.kind=o}return this.state.labels.push({name:t,kind:o,statementStart:this.state.start}),e.body=this.parseStatement(!0),this.state.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},z.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},z.parseBlock=function(e){var t=this.startNode();return this.expect(R.braceL),this.parseBlockBody(t,e,!1,R.braceR),this.finishNode(t,"BlockStatement")},z.isValidDirective=function(e){return"ExpressionStatement"===e.type&&"StringLiteral"===e.expression.type&&!e.expression.extra.parenthesized},z.parseBlockBody=function(e,t,r,n){e.body=[],e.directives=[];for(var i=!1,s=void 0,a=void 0;!this.eat(n);){i||!this.state.containsOctal||a||(a=this.state.octalPosition);var o=this.parseStatement(!0,r);if(t&&!i&&this.isValidDirective(o)){var u=this.stmtToDirective(o);e.directives.push(u),void 0===s&&"use strict"===u.value.value&&(s=this.state.strict,this.setStrict(!0),a&&this.raise(a,"Octal literal in strict mode"))}else i=!0,e.body.push(o)}!1===s&&this.setStrict(!1)},z.parseFor=function(e,t){return e.init=t,this.expect(R.semi),e.test=this.match(R.semi)?null:this.parseExpression(),this.expect(R.semi),e.update=this.match(R.parenR)?null:this.parseExpression(),this.expect(R.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"ForStatement")},z.parseForIn=function(e,t,r){var n=void 0;return r?(this.eatContextual("of"),n="ForAwaitStatement"):(n=this.match(R._in)?"ForInStatement":"ForOfStatement",this.next()),e.left=t,e.right=this.parseExpression(),this.expect(R.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,n)},z.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r.keyword;;){var n=this.startNode();if(this.parseVarHead(n),this.eat(R.eq)?n.init=this.parseMaybeAssign(t):r!==R._const||this.match(R._in)||this.isContextual("of")?"Identifier"===n.id.type||t&&(this.match(R._in)||this.isContextual("of"))?n.init=null:this.raise(this.state.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(R.comma))break}return e},z.parseVarHead=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0,void 0,"variable declaration")},z.parseFunction=function(e,t,r,n,i){var s=this.state.inMethod;return this.state.inMethod=!1,this.initFunction(e,n),this.match(R.star)&&(e.async&&!this.hasPlugin("asyncGenerators")?this.unexpected():(e.generator=!0,this.next())),!t||i||this.match(R.name)||this.match(R._yield)||this.unexpected(),(this.match(R.name)||this.match(R._yield))&&(e.id=this.parseBindingIdentifier()),this.parseFunctionParams(e),this.parseFunctionBody(e,r),this.state.inMethod=s,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},z.parseFunctionParams=function(e){this.expect(R.parenL),e.params=this.parseBindingList(R.parenR)},z.parseClass=function(e,t,r){return this.next(),this.takeDecorators(e),this.parseClassId(e,t,r),this.parseClassSuper(e),this.parseClassBody(e),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},z.isClassProperty=function(){return this.match(R.eq)||this.match(R.semi)||this.match(R.braceR)},z.isClassMethod=function(){return this.match(R.parenL)},z.isNonstaticConstructor=function(e){return!(e.computed||e.static||"constructor"!==e.key.name&&"constructor"!==e.key.value)},z.parseClassBody=function(e){var t=this.state.strict;this.state.strict=!0;var r=!1,n=!1,i=[],s=this.startNode();for(s.body=[],this.expect(R.braceL);!this.eat(R.braceR);)if(this.eat(R.semi))i.length>0&&this.raise(this.state.lastTokEnd,"Decorators must not be followed by a semicolon");else if(this.match(R.at))i.push(this.parseDecorator());else{var a=this.startNode();if(i.length&&(a.decorators=i,i=[]),a.static=!1,this.match(R.name)&&"static"===this.state.value){var o=this.parseIdentifier(!0);if(this.isClassMethod()){a.kind="method",a.computed=!1,a.key=o,this.parseClassMethod(s,a,!1,!1);continue}if(this.isClassProperty()){a.computed=!1,a.key=o,s.body.push(this.parseClassProperty(a));continue}a.static=!0}if(this.eat(R.star))a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be a generator"),a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.parseClassMethod(s,a,!0,!1);else{var u=this.match(R.name),l=this.parsePropertyName(a);if(a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.isClassMethod())this.isNonstaticConstructor(a)?(n?this.raise(l.start,"Duplicate constructor in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),n=!0,a.kind="constructor"):a.kind="method",this.parseClassMethod(s,a,!1,!1);else if(this.isClassProperty())this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a));else if(u&&"async"===l.name&&!this.isLineTerminator()){var c=this.hasPlugin("asyncGenerators")&&this.eat(R.star);a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be an async function"),this.parseClassMethod(s,a,c,!0)}else!u||"get"!==l.name&&"set"!==l.name||this.isLineTerminator()&&this.match(R.star)?this.hasPlugin("classConstructorCall")&&u&&"call"===l.name&&this.match(R.name)&&"constructor"===this.state.value?(r?this.raise(a.start,"Duplicate constructor call in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),r=!0,a.kind="constructorCall",this.parsePropertyName(a),this.parseClassMethod(s,a,!1,!1)):this.isLineTerminator()?(this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a))):this.unexpected():(a.kind=l.name,this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't have get/set modifier"),this.parseClassMethod(s,a,!1,!1),this.checkGetterSetterParamCount(a))}}i.length&&this.raise(this.state.start,"You have trailing decorators with no method"),e.body=this.finishNode(s,"ClassBody"),this.state.strict=t},z.parseClassProperty=function(e){return this.state.inClassProperty=!0,this.match(R.eq)?(this.hasPlugin("classProperties")||this.unexpected(),this.next(),e.value=this.parseMaybeAssign()):e.value=null,this.semicolon(),this.state.inClassProperty=!1,this.finishNode(e,"ClassProperty")},z.parseClassMethod=function(e,t,r,n){this.parseMethod(t,r,n),e.body.push(this.finishNode(t,"ClassMethod"))},z.parseClassId=function(e,t,r){this.match(R.name)?e.id=this.parseIdentifier():r||!t?e.id=null:this.unexpected()},z.parseClassSuper=function(e){e.superClass=this.eat(R._extends)?this.parseExprSubscripts():null},z.parseExport=function(e){if(this.next(),this.match(R.star)){var t=this.startNode();if(this.next(),!this.hasPlugin("exportExtensions")||!this.eatContextual("as"))return this.parseExportFrom(e,!0),this.finishNode(e,"ExportAllDeclaration");t.exported=this.parseIdentifier(),e.specifiers=[this.finishNode(t,"ExportNamespaceSpecifier")],this.parseExportSpecifiersMaybe(e),this.parseExportFrom(e,!0)}else if(this.hasPlugin("exportExtensions")&&this.isExportDefaultSpecifier()){var r=this.startNode();if(r.exported=this.parseIdentifier(!0),e.specifiers=[this.finishNode(r,"ExportDefaultSpecifier")],this.match(R.comma)&&this.lookahead().type===R.star){this.expect(R.comma);var n=this.startNode();this.expect(R.star),this.expectContextual("as"),n.exported=this.parseIdentifier(),e.specifiers.push(this.finishNode(n,"ExportNamespaceSpecifier"))}else this.parseExportSpecifiersMaybe(e);this.parseExportFrom(e,!0)}else{if(this.eat(R._default)){var i=this.startNode(),s=!1;return this.eat(R._function)?i=this.parseFunction(i,!0,!1,!1,!0):this.match(R._class)?i=this.parseClass(i,!0,!0):(s=!0,i=this.parseMaybeAssign()),e.declaration=i,s&&this.semicolon(),this.checkExport(e,!0,!0),this.finishNode(e,"ExportDefaultDeclaration")}this.shouldParseExportDeclaration()?(e.specifiers=[],e.source=null,e.declaration=this.parseExportDeclaration(e)):(e.declaration=null,e.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(e))}return this.checkExport(e,!0),this.finishNode(e,"ExportNamedDeclaration")},z.parseExportDeclaration=function(){return this.parseStatement(!0)},z.isExportDefaultSpecifier=function(){if(this.match(R.name))return"async"!==this.state.value;if(!this.match(R._default))return!1;var e=this.lookahead();return e.type===R.comma||e.type===R.name&&"from"===e.value},z.parseExportSpecifiersMaybe=function(e){this.eat(R.comma)&&(e.specifiers=e.specifiers.concat(this.parseExportSpecifiers()))},z.parseExportFrom=function(e,t){this.eatContextual("from")?(e.source=this.match(R.string)?this.parseExprAtom():this.unexpected(),this.checkExport(e)):t?this.unexpected():e.source=null,this.semicolon()},z.shouldParseExportDeclaration=function(){return"var"===this.state.type.keyword||"const"===this.state.type.keyword||"let"===this.state.type.keyword||"function"===this.state.type.keyword||"class"===this.state.type.keyword||this.isContextual("async")},z.checkExport=function(e,t,r){if(t)if(r)this.checkDuplicateExports(e,"default");else if(e.specifiers&&e.specifiers.length)for(var n=e.specifiers,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;this.checkDuplicateExports(o,o.exported.name)}else if(e.declaration)if("FunctionDeclaration"===e.declaration.type||"ClassDeclaration"===e.declaration.type)this.checkDuplicateExports(e,e.declaration.id.name);else if("VariableDeclaration"===e.declaration.type)for(var u=e.declaration.declarations,l=Array.isArray(u),c=0,u=l?u:u[Symbol.iterator]();;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;this.checkDeclaration(p.id)}if(this.state.decorators.length){var d=e.declaration&&("ClassDeclaration"===e.declaration.type||"ClassExpression"===e.declaration.type);e.declaration&&d||this.raise(e.start,"You can only use decorators on an export when exporting a class"),this.takeDecorators(e.declaration)}},z.checkDeclaration=function(e){if("ObjectPattern"===e.type)for(var t=e.properties,r=Array.isArray(t),n=0,t=r?t:t[Symbol.iterator]();;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this.checkDeclaration(s)}else if("ArrayPattern"===e.type)for(var a=e.elements,o=Array.isArray(a),u=0,a=o?a:a[Symbol.iterator]();;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;c&&this.checkDeclaration(c)}else"ObjectProperty"===e.type?this.checkDeclaration(e.value):"RestElement"===e.type||"RestProperty"===e.type?this.checkDeclaration(e.argument):"Identifier"===e.type&&this.checkDuplicateExports(e,e.name)},z.checkDuplicateExports=function(e,t){this.state.exportedIdentifiers.indexOf(t)>-1&&this.raiseDuplicateExportError(e,t),this.state.exportedIdentifiers.push(t)},z.raiseDuplicateExportError=function(e,t){this.raise(e.start,"default"===t?"Only one default export allowed per module.":"`"+t+"` has already been exported. Exported identifiers must be unique.")},z.parseExportSpecifiers=function(){var e=[],t=!0,r=void 0;for(this.expect(R.braceL);!this.eat(R.braceR);){if(t)t=!1;else if(this.expect(R.comma),this.eat(R.braceR))break;var n=this.match(R._default);n&&!r&&(r=!0);var i=this.startNode();i.local=this.parseIdentifier(n),i.exported=this.eatContextual("as")?this.parseIdentifier(!0):i.local.__clone(),e.push(this.finishNode(i,"ExportSpecifier"))}return r&&!this.isContextual("from")&&this.unexpected(),e},z.parseImport=function(e){return this.eat(R._import),this.match(R.string)?(e.specifiers=[],e.source=this.parseExprAtom()):(e.specifiers=[],this.parseImportSpecifiers(e),this.expectContextual("from"),e.source=this.match(R.string)?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},z.parseImportSpecifiers=function(e){var t=!0;if(this.match(R.name)){var r=this.state.start,n=this.state.startLoc;if(e.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(),r,n)),!this.eat(R.comma))return}if(this.match(R.star)){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdentifier(),this.checkLVal(i.local,!0,void 0,"import namespace specifier"),void e.specifiers.push(this.finishNode(i,"ImportNamespaceSpecifier"))}for(this.expect(R.braceL);!this.eat(R.braceR);){if(t)t=!1;else if(this.eat(R.colon)&&this.unexpected(null,"ES2015 named imports do not destructure. Use another statement for destructuring after the import."),this.expect(R.comma),this.eat(R.braceR))break;this.parseImportSpecifier(e)}},z.parseImportSpecifier=function(e){var t=this.startNode();t.imported=this.parseIdentifier(!0),this.eatContextual("as")?t.local=this.parseIdentifier():(this.checkReservedWord(t.imported.name,t.start,!0,!0),t.local=t.imported.__clone()),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))},z.parseImportSpecifierDefault=function(e,t,r){var n=this.startNodeAt(t,r);return n.local=e,this.checkLVal(n.local,!0,void 0,"default import specifier"),this.finishNode(n,"ImportDefaultSpecifier")};var ee=J.prototype;ee.toAssignable=function(e,t,r){if(e)switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(var n=e.properties,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;"ObjectMethod"===o.type?"get"===o.kind||"set"===o.kind?this.raise(o.key.start,"Object pattern can't contain getter or setter"):this.raise(o.key.start,"Object pattern can't contain methods"):this.toAssignable(o,t,"object destructuring pattern")}break;case"ObjectProperty":this.toAssignable(e.value,t,r);break;case"SpreadProperty":e.type="RestProperty";var u=e.argument;this.toAssignable(u,t,r);break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t,r);break;case"AssignmentExpression":"="===e.operator?(e.type="AssignmentPattern",delete e.operator):this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break;case"MemberExpression":if(!t)break;default:var l="Invalid left-hand side"+(r?" in "+r:"expression");this.raise(e.start,l)}return e},ee.toAssignableList=function(e,t,r){var n=e.length;if(n){var i=e[n-1];if(i&&"RestElement"===i.type)--n;else if(i&&"SpreadElement"===i.type){i.type="RestElement";var s=i.argument;this.toAssignable(s,t,r),"Identifier"!==s.type&&"MemberExpression"!==s.type&&"ArrayPattern"!==s.type&&this.unexpected(s.start),--n}}for(var a=0;a<n;a++){var o=e[a];o&&this.toAssignable(o,t,r)}return e},ee.toReferencedList=function(e){return e},ee.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},ee.parseRest=function(){var e=this.startNode();return this.next(),e.argument=this.parseBindingIdentifier(),this.finishNode(e,"RestElement")},ee.shouldAllowYieldIdentifier=function(){return this.match(R._yield)&&!this.state.strict&&!this.state.inGenerator},ee.parseBindingIdentifier=function(){return this.parseIdentifier(this.shouldAllowYieldIdentifier())},ee.parseBindingAtom=function(){switch(this.state.type){case R._yield:(this.state.strict||this.state.inGenerator)&&this.unexpected();case R.name:return this.parseIdentifier(!0);case R.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(R.bracketR,!0),this.finishNode(e,"ArrayPattern");case R.braceL:return this.parseObj(!0);default:this.unexpected()}},ee.parseBindingList=function(e,t){for(var r=[],n=!0;!this.eat(e);)if(n?n=!1:this.expect(R.comma),t&&this.match(R.comma))r.push(null);else{if(this.eat(e))break;if(this.match(R.ellipsis)){r.push(this.parseAssignableListItemTypes(this.parseRest())),this.expect(e);break}for(var i=[];this.match(R.at);)i.push(this.parseDecorator());var s=this.parseMaybeDefault();i.length&&(s.decorators=i),this.parseAssignableListItemTypes(s),r.push(this.parseMaybeDefault(s.start,s.loc.start,s))}return r},ee.parseAssignableListItemTypes=function(e){return e},ee.parseMaybeDefault=function(e,t,r){if(t=t||this.state.startLoc,e=e||this.state.start,r=r||this.parseBindingAtom(),!this.eat(R.eq))return r;var n=this.startNodeAt(e,t);return n.left=r,n.right=this.parseMaybeAssign(),this.finishNode(n,"AssignmentPattern")},ee.checkLVal=function(e,t,r,n){switch(e.type){case"Identifier":if(this.checkReservedWord(e.name,e.start,!1,!0),r){var i="_"+e.name;r[i]?this.raise(e.start,"Argument name clash in strict mode"):r[i]=!0}break;case"MemberExpression":t&&this.raise(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var s=e.properties,a=Array.isArray(s),o=0,s=a?s:s[Symbol.iterator]();;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;"ObjectProperty"===l.type&&(l=l.value),this.checkLVal(l,t,r,"object destructuring pattern")}break;case"ArrayPattern":for(var c=e.elements,f=Array.isArray(c),p=0,c=f?c:c[Symbol.iterator]();;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;h&&this.checkLVal(h,t,r,"array destructuring pattern")}break;case"AssignmentPattern":this.checkLVal(e.left,t,r,"assignment pattern");break;case"RestProperty":this.checkLVal(e.argument,t,r,"rest property");break;case"RestElement":this.checkLVal(e.argument,t,r,"rest element");break;default:var m=(t?"Binding invalid":"Invalid")+" left-hand side"+(n?" in "+n:"expression");this.raise(e.start,m)}};var te=J.prototype;te.checkPropClash=function(e,t){if(!e.computed&&!e.kind){var r=e.key;"__proto__"===("Identifier"===r.type?r.name:String(r.value))&&(t.proto&&this.raise(r.start,"Redefinition of __proto__ property"),t.proto=!0)}},te.getExpression=function(){this.nextToken();var e=this.parseExpression();return this.match(R.eof)||this.unexpected(),e},te.parseExpression=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeAssign(e,t);if(this.match(R.comma)){var s=this.startNodeAt(r,n);for(s.expressions=[i];this.eat(R.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.toReferencedList(s.expressions),this.finishNode(s,"SequenceExpression")}return i},te.parseMaybeAssign=function(e,t,r,n){var i=this.state.start,s=this.state.startLoc;if(this.match(R._yield)&&this.state.inGenerator){var a=this.parseYield();return r&&(a=r.call(this,a,i,s)),a}var o=void 0;t?o=!1:(t={start:0},o=!0),(this.match(R.parenL)||this.match(R.name))&&(this.state.potentialArrowAt=this.state.start);var u=this.parseMaybeConditional(e,t,n);if(r&&(u=r.call(this,u,i,s)),this.state.type.isAssign){var l=this.startNodeAt(i,s);if(l.operator=this.state.value,l.left=this.match(R.eq)?this.toAssignable(u,void 0,"assignment expression"):u,t.start=0,this.checkLVal(u,void 0,void 0,"assignment expression"),u.extra&&u.extra.parenthesized){var c=void 0;"ObjectPattern"===u.type?c="`({a}) = 0` use `({a} = 0)`":"ArrayPattern"===u.type&&(c="`([a]) = 0` use `([a] = 0)`"),c&&this.raise(u.start,"You're trying to assign to a parenthesized expression, eg. instead of "+c)}return this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return o&&t.start&&this.unexpected(t.start),u},te.parseMaybeConditional=function(e,t,r){var n=this.state.start,i=this.state.startLoc,s=this.parseExprOps(e,t);return t&&t.start?s:this.parseConditional(s,e,n,i,r)},te.parseConditional=function(e,t,r,n){if(this.eat(R.question)){var i=this.startNodeAt(r,n);return i.test=e,i.consequent=this.parseMaybeAssign(),this.expect(R.colon),i.alternate=this.parseMaybeAssign(t),this.finishNode(i,"ConditionalExpression")}return e},te.parseExprOps=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeUnary(t);return t&&t.start?i:this.parseExprOp(i,r,n,-1,e)},te.parseExprOp=function(e,t,r,n,i){var s=this.state.type.binop;if(!(null==s||i&&this.match(R._in))&&s>n){var a=this.startNodeAt(t,r);a.left=e,a.operator=this.state.value,"**"!==a.operator||"UnaryExpression"!==e.type||!e.extra||e.extra.parenthesizedArgument||e.extra.parenthesized||this.raise(e.argument.start,"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.");var o=this.state.type;this.next();var u=this.state.start,l=this.state.startLoc;return a.right=this.parseExprOp(this.parseMaybeUnary(),u,l,o.rightAssociative?s-1:s,i),this.finishNode(a,o===R.logicalOR||o===R.logicalAND?"LogicalExpression":"BinaryExpression"),this.parseExprOp(a,t,r,n,i)}return e},te.parseMaybeUnary=function(e){if(this.state.type.prefix){var t=this.startNode(),r=this.match(R.incDec);t.operator=this.state.value,t.prefix=!0,this.next();var n=this.state.type;return t.argument=this.parseMaybeUnary(),this.addExtra(t,"parenthesizedArgument",!(n!==R.parenL||t.argument.extra&&t.argument.extra.parenthesized)),e&&e.start&&this.unexpected(e.start),r?this.checkLVal(t.argument,void 0,void 0,"prefix operation"):this.state.strict&&"delete"===t.operator&&"Identifier"===t.argument.type&&this.raise(t.start,"Deleting local variable in strict mode"),this.finishNode(t,r?"UpdateExpression":"UnaryExpression")}var i=this.state.start,s=this.state.startLoc,a=this.parseExprSubscripts(e);if(e&&e.start)return a;for(;this.state.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,s);o.operator=this.state.value,o.prefix=!1,o.argument=a,this.checkLVal(a,void 0,void 0,"postfix operation"),this.next(),a=this.finishNode(o,"UpdateExpression")}return a},te.parseExprSubscripts=function(e){var t=this.state.start,r=this.state.startLoc,n=this.state.potentialArrowAt,i=this.parseExprAtom(e);return"ArrowFunctionExpression"===i.type&&i.start===n?i:e&&e.start?i:this.parseSubscripts(i,t,r)},te.parseSubscripts=function(e,t,r,n){for(;;){if(!n&&this.eat(R.doubleColon)){var i=this.startNodeAt(t,r);return i.object=e,i.callee=this.parseNoCallExpr(),this.parseSubscripts(this.finishNode(i,"BindExpression"),t,r,n)}if(this.eat(R.dot)){var s=this.startNodeAt(t,r);s.object=e,s.property=this.parseIdentifier(!0),s.computed=!1,e=this.finishNode(s,"MemberExpression")}else if(this.eat(R.bracketL)){var a=this.startNodeAt(t,r);a.object=e,a.property=this.parseExpression(),a.computed=!0,this.expect(R.bracketR),e=this.finishNode(a,"MemberExpression")}else if(!n&&this.match(R.parenL)){var o=this.state.potentialArrowAt===e.start&&"Identifier"===e.type&&"async"===e.name&&!this.canInsertSemicolon();this.next();var u=this.startNodeAt(t,r);if(u.callee=e,u.arguments=this.parseCallExpressionArguments(R.parenR,o),"Import"===u.callee.type&&1!==u.arguments.length&&this.raise(u.start,"import() requires exactly one argument"),e=this.finishNode(u,"CallExpression"),o&&this.shouldParseAsyncArrow())return this.parseAsyncArrowFromCallExpression(this.startNodeAt(t,r),u);this.toReferencedList(u.arguments)}else{if(!this.match(R.backQuote))return e;var l=this.startNodeAt(t,r);l.tag=e,l.quasi=this.parseTemplate(!0),e=this.finishNode(l,"TaggedTemplateExpression")}}},te.parseCallExpressionArguments=function(e,t){for(var r=[],n=void 0,i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(R.comma),this.eat(e))break;this.match(R.parenL)&&!n&&(n=this.state.start),r.push(this.parseExprListItem(!1,t?{start:0}:void 0,t?{start:0}:void 0))}return t&&n&&this.shouldParseAsyncArrow()&&this.unexpected(),r},te.shouldParseAsyncArrow=function(){return this.match(R.arrow)},te.parseAsyncArrowFromCallExpression=function(e,t){return this.expect(R.arrow),this.parseArrowExpression(e,t.arguments,!0)},te.parseNoCallExpr=function(){var e=this.state.start,t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,t,!0)},te.parseExprAtom=function(e){var t=this.state.potentialArrowAt===this.state.start,r=void 0;switch(this.state.type){case R._super:return this.state.inMethod||this.state.inClassProperty||this.options.allowSuperOutsideMethod||this.raise(this.state.start,"'super' outside of function or class"),r=this.startNode(),this.next(),this.match(R.parenL)||this.match(R.bracketL)||this.match(R.dot)||this.unexpected(),this.match(R.parenL)&&"constructor"!==this.state.inMethod&&!this.options.allowSuperOutsideMethod&&this.raise(r.start,"super() outside of class constructor"),this.finishNode(r,"Super");case R._import:return this.hasPlugin("dynamicImport")||this.unexpected(),r=this.startNode(),this.next(),this.match(R.parenL)||this.unexpected(null,R.parenL),this.finishNode(r,"Import");case R._this:return r=this.startNode(),this.next(),this.finishNode(r,"ThisExpression");case R._yield:this.state.inGenerator&&this.unexpected();case R.name:r=this.startNode();var n="await"===this.state.value&&this.state.inAsync,i=this.shouldAllowYieldIdentifier(),s=this.parseIdentifier(n||i);if("await"===s.name){if(this.state.inAsync||this.inModule)return this.parseAwait(r)}else{if("async"===s.name&&this.match(R._function)&&!this.canInsertSemicolon())return this.next(),this.parseFunction(r,!1,!1,!0);if(t&&"async"===s.name&&this.match(R.name)){var a=[this.parseIdentifier()];return this.expect(R.arrow),this.parseArrowExpression(r,a,!0)}}return t&&!this.canInsertSemicolon()&&this.eat(R.arrow)?this.parseArrowExpression(r,[s]):s;case R._do:if(this.hasPlugin("doExpressions")){var o=this.startNode();this.next();var u=this.state.inFunction,l=this.state.labels;return this.state.labels=[],this.state.inFunction=!1,o.body=this.parseBlock(!1,!0),this.state.inFunction=u,this.state.labels=l,this.finishNode(o,"DoExpression")}case R.regexp:var c=this.state.value;return r=this.parseLiteral(c.value,"RegExpLiteral"),r.pattern=c.pattern,r.flags=c.flags,r;case R.num:return this.parseLiteral(this.state.value,"NumericLiteral");case R.string:return this.parseLiteral(this.state.value,"StringLiteral");case R._null:return r=this.startNode(),this.next(),this.finishNode(r,"NullLiteral");case R._true:case R._false:return r=this.startNode(),r.value=this.match(R._true),this.next(),this.finishNode(r,"BooleanLiteral");case R.parenL:return this.parseParenAndDistinguishExpression(null,null,t);case R.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(R.bracketR,!0,e),this.toReferencedList(r.elements),this.finishNode(r,"ArrayExpression");case R.braceL:return this.parseObj(!1,e);case R._function:return this.parseFunctionExpression();case R.at:this.parseDecorators();case R._class:return r=this.startNode(),this.takeDecorators(r),this.parseClass(r,!1);case R._new:return this.parseNew();case R.backQuote:return this.parseTemplate(!1);case R.doubleColon:r=this.startNode(),this.next(),r.object=null;var f=r.callee=this.parseNoCallExpr();if("MemberExpression"===f.type)return this.finishNode(r,"BindExpression");this.raise(f.start,"Binding should be performed on object property.");default:this.unexpected()}},te.parseFunctionExpression=function(){var e=this.startNode(),t=this.parseIdentifier(!0);return this.state.inGenerator&&this.eat(R.dot)&&this.hasPlugin("functionSent")?this.parseMetaProperty(e,t,"sent"):this.parseFunction(e,!1)},te.parseMetaProperty=function(e,t,r){return e.meta=t,e.property=this.parseIdentifier(!0),e.property.name!==r&&this.raise(e.property.start,"The only valid meta property for new is "+t.name+"."+r),this.finishNode(e,"MetaProperty")},te.parseLiteral=function(e,t,r,n){r=r||this.state.start,n=n||this.state.startLoc;var i=this.startNodeAt(r,n);return this.addExtra(i,"rawValue",e),this.addExtra(i,"raw",this.input.slice(r,this.state.end)),i.value=e,this.next(),this.finishNode(i,t)},te.parseParenExpression=function(){this.expect(R.parenL);var e=this.parseExpression();return this.expect(R.parenR),e},te.parseParenAndDistinguishExpression=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;var n=void 0;this.expect(R.parenL);for(var i=this.state.start,s=this.state.startLoc,a=[],o={start:0},u={start:0},l=!0,c=void 0,f=void 0;!this.match(R.parenR);){if(l)l=!1;else if(this.expect(R.comma,u.start||null),this.match(R.parenR)){f=this.state.start;break}
if(this.match(R.ellipsis)){var p=this.state.start,d=this.state.startLoc;c=this.state.start,a.push(this.parseParenItem(this.parseRest(),p,d));break}a.push(this.parseMaybeAssign(!1,o,this.parseParenItem,u))}var h=this.state.start,m=this.state.startLoc;this.expect(R.parenR);var y=this.startNodeAt(e,t);if(r&&this.shouldParseArrow()&&(y=this.parseArrow(y))){for(var v=a,g=Array.isArray(v),b=0,v=g?v:v[Symbol.iterator]();;){var E;if(g){if(b>=v.length)break;E=v[b++]}else{if(b=v.next(),b.done)break;E=b.value}var x=E;x.extra&&x.extra.parenthesized&&this.unexpected(x.extra.parenStart)}return this.parseArrowExpression(y,a)}return a.length||this.unexpected(this.state.lastTokStart),f&&this.unexpected(f),c&&this.unexpected(c),o.start&&this.unexpected(o.start),u.start&&this.unexpected(u.start),a.length>1?(n=this.startNodeAt(i,s),n.expressions=a,this.toReferencedList(n.expressions),this.finishNodeAt(n,"SequenceExpression",h,m)):n=a[0],this.addExtra(n,"parenthesized",!0),this.addExtra(n,"parenStart",e),n},te.shouldParseArrow=function(){return!this.canInsertSemicolon()},te.parseArrow=function(e){if(this.eat(R.arrow))return e},te.parseParenItem=function(e){return e},te.parseNew=function(){var e=this.startNode(),t=this.parseIdentifier(!0);if(this.eat(R.dot)){var r=this.parseMetaProperty(e,t,"target");return this.state.inFunction||this.raise(r.property.start,"new.target can only be used in functions"),r}return e.callee=this.parseNoCallExpr(),this.eat(R.parenL)?(e.arguments=this.parseExprList(R.parenR),this.toReferencedList(e.arguments)):e.arguments=[],this.finishNode(e,"NewExpression")},te.parseTemplateElement=function(e){var t=this.startNode();return null===this.state.value&&(e&&this.hasPlugin("templateInvalidEscapes")?this.state.invalidTemplateEscapePosition=null:this.raise(this.state.invalidTemplateEscapePosition,"Invalid escape sequence in template")),t.value={raw:this.input.slice(this.state.start,this.state.end).replace(/\r\n?/g,"\n"),cooked:this.state.value},this.next(),t.tail=this.match(R.backQuote),this.finishNode(t,"TemplateElement")},te.parseTemplate=function(e){var t=this.startNode();this.next(),t.expressions=[];var r=this.parseTemplateElement(e);for(t.quasis=[r];!r.tail;)this.expect(R.dollarBraceL),t.expressions.push(this.parseExpression()),this.expect(R.braceR),t.quasis.push(r=this.parseTemplateElement(e));return this.next(),this.finishNode(t,"TemplateLiteral")},te.parseObj=function(e,t){var r=[],n=Object.create(null),i=!0,s=this.startNode();s.properties=[],this.next();for(var a=null;!this.eat(R.braceR);){if(i)i=!1;else if(this.expect(R.comma),this.eat(R.braceR))break;for(;this.match(R.at);)r.push(this.parseDecorator());var o=this.startNode(),u=!1,l=!1,c=void 0,f=void 0;if(r.length&&(o.decorators=r,r=[]),this.hasPlugin("objectRestSpread")&&this.match(R.ellipsis)){if(o=this.parseSpread(e?{start:0}:void 0),o.type=e?"RestProperty":"SpreadProperty",e&&this.toAssignable(o.argument,!0,"object pattern"),s.properties.push(o),!e)continue;var p=this.state.start;if(null===a){if(this.eat(R.braceR))break;if(this.match(R.comma)&&this.lookahead().type===R.braceR)continue;a=p;continue}this.unexpected(a,"Cannot have multiple rest elements when destructuring")}if(o.method=!1,o.shorthand=!1,(e||t)&&(c=this.state.start,f=this.state.startLoc),e||(u=this.eat(R.star)),!e&&this.isContextual("async")){u&&this.unexpected();var d=this.parseIdentifier();this.match(R.colon)||this.match(R.parenL)||this.match(R.braceR)||this.match(R.eq)||this.match(R.comma)?(o.key=d,o.computed=!1):(l=!0,this.hasPlugin("asyncGenerators")&&(u=this.eat(R.star)),this.parsePropertyName(o))}else this.parsePropertyName(o);this.parseObjPropValue(o,c,f,u,l,e,t),this.checkPropClash(o,n),o.shorthand&&this.addExtra(o,"shorthand",!0),s.properties.push(o)}return null!==a&&this.unexpected(a,"The rest element has to be the last element when destructuring"),r.length&&this.raise(this.state.start,"You have trailing decorators with no property"),this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},te.isGetterOrSetterMethod=function(e,t){return!t&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&(this.match(R.string)||this.match(R.num)||this.match(R.bracketL)||this.match(R.name)||this.state.type.keyword)},te.checkGetterSetterParamCount=function(e){var t="get"===e.kind?0:1;if(e.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}},te.parseObjectMethod=function(e,t,r,n){return r||t||this.match(R.parenL)?(n&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,t,r),this.finishNode(e,"ObjectMethod")):this.isGetterOrSetterMethod(e,n)?((t||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),this.parseMethod(e),this.checkGetterSetterParamCount(e),this.finishNode(e,"ObjectMethod")):void 0},te.parseObjectProperty=function(e,t,r,n,i){return this.eat(R.colon)?(e.value=n?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssign(!1,i),this.finishNode(e,"ObjectProperty")):e.computed||"Identifier"!==e.key.type?void 0:(this.checkReservedWord(e.key.name,e.key.start,!0,!0),n?e.value=this.parseMaybeDefault(t,r,e.key.__clone()):this.match(R.eq)&&i?(i.start||(i.start=this.state.start),e.value=this.parseMaybeDefault(t,r,e.key.__clone())):e.value=e.key.__clone(),e.shorthand=!0,this.finishNode(e,"ObjectProperty"))},te.parseObjPropValue=function(e,t,r,n,i,s,a){var o=this.parseObjectMethod(e,n,i,s)||this.parseObjectProperty(e,t,r,s,a);return o||this.unexpected(),o},te.parsePropertyName=function(e){if(this.eat(R.bracketL))e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(R.bracketR);else{e.computed=!1;var t=this.state.inPropertyName;this.state.inPropertyName=!0,e.key=this.match(R.num)||this.match(R.string)?this.parseExprAtom():this.parseIdentifier(!0),this.state.inPropertyName=t}return e.key},te.initFunction=function(e,t){e.id=null,e.generator=!1,e.expression=!1,e.async=!!t},te.parseMethod=function(e,t,r){var n=this.state.inMethod;return this.state.inMethod=e.kind||!0,this.initFunction(e,r),this.expect(R.parenL),e.params=this.parseBindingList(R.parenR),e.generator=!!t,this.parseFunctionBody(e),this.state.inMethod=n,e},te.parseArrowExpression=function(e,t,r){return this.initFunction(e,r),e.params=this.toAssignableList(t,!0,"arrow function parameters"),this.parseFunctionBody(e,!0),this.finishNode(e,"ArrowFunctionExpression")},te.isStrictBody=function(e,t){if(!t&&e.body.directives.length)for(var r=e.body.directives,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if("use strict"===a.value.value)return!0}return!1},te.parseFunctionBody=function(e,t){var r=t&&!this.match(R.braceL),n=this.state.inAsync;if(this.state.inAsync=e.async,r)e.body=this.parseMaybeAssign(),e.expression=!0;else{var i=this.state.inFunction,s=this.state.inGenerator,a=this.state.labels;this.state.inFunction=!0,this.state.inGenerator=e.generator,this.state.labels=[],e.body=this.parseBlock(!0),e.expression=!1,this.state.inFunction=i,this.state.inGenerator=s,this.state.labels=a}this.state.inAsync=n;var o=this.isStrictBody(e,r),u=this.state.strict||t||o;if(o&&e.id&&"Identifier"===e.id.type&&"yield"===e.id.name&&this.raise(e.id.start,"Binding yield in strict mode"),u){var l=Object.create(null),c=this.state.strict;o&&(this.state.strict=!0),e.id&&this.checkLVal(e.id,!0,void 0,"function name");for(var f=e.params,p=Array.isArray(f),d=0,f=p?f:f[Symbol.iterator]();;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h;o&&"Identifier"!==m.type&&this.raise(m.start,"Non-simple parameter in strict mode"),this.checkLVal(m,!0,l,"function parameter list")}this.state.strict=c}},te.parseExprList=function(e,t,r){for(var n=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(R.comma),this.eat(e))break;n.push(this.parseExprListItem(t,r))}return n},te.parseExprListItem=function(e,t,r){return e&&this.match(R.comma)?null:this.match(R.ellipsis)?this.parseSpread(t):this.parseMaybeAssign(!1,t,this.parseParenItem,r)},te.parseIdentifier=function(e){var t=this.startNode();return e||this.checkReservedWord(this.state.value,this.state.start,!!this.state.type.keyword,!1),this.match(R.name)?t.name=this.state.value:this.state.type.keyword?t.name=this.state.type.keyword:this.unexpected(),!e&&"await"===t.name&&this.state.inAsync&&this.raise(t.start,"invalid use of await inside of an async function"),t.loc.identifierName=t.name,this.next(),this.finishNode(t,"Identifier")},te.checkReservedWord=function(e,t,r,n){(this.isReservedWord(e)||r&&this.isKeyword(e))&&this.raise(t,e+" is a reserved word"),this.state.strict&&(v.strict(e)||n&&v.strictBind(e))&&this.raise(t,e+" is a reserved word in strict mode")},te.parseAwait=function(e){return this.state.inAsync||this.unexpected(),this.match(R.star)&&this.raise(e.start,"await* has been removed from the async functions proposal. Use Promise.all() instead."),e.argument=this.parseMaybeUnary(),this.finishNode(e,"AwaitExpression")},te.parseYield=function(){var e=this.startNode();return this.next(),this.match(R.semi)||this.canInsertSemicolon()||!this.match(R.star)&&!this.state.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(R.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")};var re=J.prototype,ne=["leadingComments","trailingComments","innerComments"],ie=function(){function e(t,r,n){w(this,e),this.type="",this.start=t,this.end=0,this.loc=new G(r),n&&(this.loc.filename=n)}return e.prototype.__clone=function(){var t=new e;for(var r in this)ne.indexOf(r)<0&&(t[r]=this[r]);return t},e}();re.startNode=function(){return new ie(this.state.start,this.state.startLoc,this.filename)},re.startNodeAt=function(e,t){return new ie(e,t,this.filename)},re.finishNode=function(e,t){return c.call(this,e,t,this.state.lastTokEnd,this.state.lastTokEndLoc)},re.finishNodeAt=function(e,t,r,n){return c.call(this,e,t,r,n)},J.prototype.raise=function(e,t){var r=u(this.input,e);t+=" ("+r.line+":"+r.column+")";var n=new SyntaxError(t);throw n.pos=e,n.loc=r,n};var se=J.prototype;se.addComment=function(e){this.filename&&(e.loc.filename=this.filename),this.state.trailingComments.push(e),this.state.leadingComments.push(e)},se.processComment=function(e){if(!("Program"===e.type&&e.body.length>0)){var t=this.state.commentStack,r=void 0,n=void 0,i=void 0,s=void 0,a=void 0;if(this.state.trailingComments.length>0)this.state.trailingComments[0].start>=e.end?(i=this.state.trailingComments,this.state.trailingComments=[]):this.state.trailingComments.length=0;else{var o=f(t);t.length>0&&o.trailingComments&&o.trailingComments[0].start>=e.end&&(i=o.trailingComments,o.trailingComments=null)}for(t.length>0&&f(t).start>=e.start&&(r=t.pop());t.length>0&&f(t).start>=e.start;)n=t.pop();if(!n&&r&&(n=r),r&&this.state.leadingComments.length>0){var u=f(this.state.leadingComments);if("ObjectProperty"===r.type){if(u.start>=e.start&&this.state.commentPreviousNode){for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(r.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}else if("CallExpression"===e.type&&e.arguments&&e.arguments.length){var l=f(e.arguments);l&&u.start>=l.start&&u.end<=e.end&&this.state.commentPreviousNode&&this.state.leadingComments.length>0&&(l.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}if(n){if(n.leadingComments)if(n!==e&&f(n.leadingComments).end<=e.start)e.leadingComments=n.leadingComments,n.leadingComments=null;else for(s=n.leadingComments.length-2;s>=0;--s)if(n.leadingComments[s].end<=e.start){e.leadingComments=n.leadingComments.splice(0,s+1);break}}else if(this.state.leadingComments.length>0)if(f(this.state.leadingComments).end<=e.start){if(this.state.commentPreviousNode)for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(s=0;s<this.state.leadingComments.length&&!(this.state.leadingComments[s].end>e.start);s++);e.leadingComments=this.state.leadingComments.slice(0,s),0===e.leadingComments.length&&(e.leadingComments=null),i=this.state.leadingComments.slice(s),0===i.length&&(i=null)}this.state.commentPreviousNode=e,i&&(i.length&&i[0].start>=e.start&&f(i).end<=e.end?e.innerComments=i:e.trailingComments=i),t.push(e)}};var ae=J.prototype;ae.estreeParseRegExpLiteral=function(e){var t=e.pattern,r=e.flags,n=null;try{n=new RegExp(t,r)}catch(e){}var i=this.estreeParseLiteral(n);return i.regex={pattern:t,flags:r},i},ae.estreeParseLiteral=function(e){return this.parseLiteral(e,"Literal")},ae.directiveToStmt=function(e){var t=e.value,r=this.startNodeAt(e.start,e.loc.start),n=this.startNodeAt(t.start,t.loc.start);return n.value=t.value,n.raw=t.extra.raw,r.expression=this.finishNodeAt(n,"Literal",t.end,t.loc.end),r.directive=t.extra.raw.slice(1,-1),this.finishNodeAt(r,"ExpressionStatement",e.end,e.loc.end)};var oe=function(e){e.extend("checkDeclaration",function(e){return function(t){p(t)?this.checkDeclaration(t.value):e.call(this,t)}}),e.extend("checkGetterSetterParamCount",function(){return function(e){var t="get"===e.kind?0:1;if(e.value.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}}}),e.extend("checkLVal",function(e){return function(t,r,n){var i=this;switch(t.type){case"ObjectPattern":t.properties.forEach(function(e){i.checkLVal("Property"===e.type?e.value:e,r,n,"object destructuring pattern")});break;default:for(var s=arguments.length,a=Array(s>3?s-3:0),o=3;o<s;o++)a[o-3]=arguments[o];e.call.apply(e,[this,t,r,n].concat(a))}}}),e.extend("checkPropClash",function(){return function(e,t){if(!e.computed&&p(e)){var r=e.key;"__proto__"===("Identifier"===r.type?r.name:String(r.value))&&(t.proto&&this.raise(r.start,"Redefinition of __proto__ property"),t.proto=!0)}}}),e.extend("isStrictBody",function(){return function(e,t){if(!t&&e.body.body.length>0)for(var r=e.body.body,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if("ExpressionStatement"!==a.type||"Literal"!==a.expression.type)break;if("use strict"===a.expression.value)return!0}return!1}}),e.extend("isValidDirective",function(){return function(e){return!("ExpressionStatement"!==e.type||"Literal"!==e.expression.type||"string"!=typeof e.expression.value||e.expression.extra&&e.expression.extra.parenthesized)}}),e.extend("stmtToDirective",function(e){return function(t){var r=e.call(this,t),n=t.expression.value;return r.value.value=n,r}}),e.extend("parseBlockBody",function(e){return function(t){for(var r=this,n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];e.call.apply(e,[this,t].concat(i)),t.directives.reverse().forEach(function(e){t.body.unshift(r.directiveToStmt(e))}),delete t.directives}}),e.extend("parseClassMethod",function(){return function(e,t,r,n){this.parseMethod(t,r,n),t.typeParameters&&(t.value.typeParameters=t.typeParameters,delete t.typeParameters),e.body.push(this.finishNode(t,"MethodDefinition"))}}),e.extend("parseExprAtom",function(e){return function(){switch(this.state.type){case R.regexp:return this.estreeParseRegExpLiteral(this.state.value);case R.num:case R.string:return this.estreeParseLiteral(this.state.value);case R._null:return this.estreeParseLiteral(null);case R._true:return this.estreeParseLiteral(!0);case R._false:return this.estreeParseLiteral(!1);default:for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.call.apply(e,[this].concat(r))}}}),e.extend("parseLiteral",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i.raw=i.extra.raw,delete i.extra,i}}),e.extend("parseMethod",function(e){return function(t){var r=this.startNode();r.kind=t.kind;for(var n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];return r=e.call.apply(e,[this,r].concat(i)),delete r.kind,t.value=this.finishNode(r,"FunctionExpression"),t}}),e.extend("parseObjectMethod",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&("method"===i.kind&&(i.kind="init"),i.type="Property"),i}}),e.extend("parseObjectProperty",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&(i.kind="init",i.type="Property"),i}}),e.extend("toAssignable",function(e){return function(t,r){for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];if(p(t))return this.toAssignable.apply(this,[t.value,r].concat(i)),t;if("ObjectExpression"===t.type){t.type="ObjectPattern";for(var a=t.properties,o=Array.isArray(a),u=0,a=o?a:a[Symbol.iterator]();;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;"get"===c.kind||"set"===c.kind?this.raise(c.key.start,"Object pattern can't contain getter or setter"):c.method?this.raise(c.key.start,"Object pattern can't contain methods"):this.toAssignable(c,r,"object destructuring pattern")}return t}return e.call.apply(e,[this,t,r].concat(i))}})},ue=["any","mixed","empty","bool","boolean","number","string","void","null"],le=J.prototype;le.flowParseTypeInitialiser=function(e){var t=this.state.inType;this.state.inType=!0,this.expect(e||R.colon);var r=this.flowParseType();return this.state.inType=t,r},le.flowParsePredicate=function(){var e=this.startNode(),t=this.state.startLoc,r=this.state.start;this.expect(R.modulo);var n=this.state.startLoc;return this.expectContextual("checks"),t.line===n.line&&t.column===n.column-1||this.raise(r,"Spaces between ´%´ and ´checks´ are not allowed here."),this.eat(R.parenL)?(e.expression=this.parseExpression(),this.expect(R.parenR),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")},le.flowParseTypeAndPredicateInitialiser=function(){var e=this.state.inType;this.state.inType=!0,this.expect(R.colon);var t=null,r=null;return this.match(R.modulo)?(this.state.inType=e,r=this.flowParsePredicate()):(t=this.flowParseType(),this.state.inType=e,this.match(R.modulo)&&(r=this.flowParsePredicate())),[t,r]},le.flowParseDeclareClass=function(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")},le.flowParseDeclareFunction=function(e){this.next();var t=e.id=this.parseIdentifier(),r=this.startNode(),n=this.startNode();this.isRelational("<")?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(R.parenL);var i=this.flowParseFunctionTypeParams();r.params=i.params,r.rest=i.rest,this.expect(R.parenR);var s=null,a=this.flowParseTypeAndPredicateInitialiser();return r.returnType=a[0],s=a[1],n.typeAnnotation=this.finishNode(r,"FunctionTypeAnnotation"),n.predicate=s,t.typeAnnotation=this.finishNode(n,"TypeAnnotation"),this.finishNode(t,t.type),this.semicolon(),this.finishNode(e,"DeclareFunction")},le.flowParseDeclare=function(e){return this.match(R._class)?this.flowParseDeclareClass(e):this.match(R._function)?this.flowParseDeclareFunction(e):this.match(R._var)?this.flowParseDeclareVariable(e):this.isContextual("module")?this.lookahead().type===R.dot?this.flowParseDeclareModuleExports(e):this.flowParseDeclareModule(e):this.isContextual("type")?this.flowParseDeclareTypeAlias(e):this.isContextual("opaque")?this.flowParseDeclareOpaqueType(e):this.isContextual("interface")?this.flowParseDeclareInterface(e):this.match(R._export)?this.flowParseDeclareExportDeclaration(e):void this.unexpected()},le.flowParseDeclareExportDeclaration=function(e){if(this.expect(R._export),this.isContextual("opaque"))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");throw this.unexpected()},le.flowParseDeclareVariable=function(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(),this.semicolon(),this.finishNode(e,"DeclareVariable")},le.flowParseDeclareModule=function(e){this.next(),this.match(R.string)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();var t=e.body=this.startNode(),r=t.body=[];for(this.expect(R.braceL);!this.match(R.braceR);){var n=this.startNode();if(this.match(R._import)){var i=this.lookahead();"type"!==i.value&&"typeof"!==i.value&&this.unexpected(null,"Imports within a `declare module` body must always be `import type` or `import typeof`"),this.parseImport(n)}else this.expectContextual("declare","Only declares and type imports are allowed inside declare module"),n=this.flowParseDeclare(n,!0);r.push(n)}return this.expect(R.braceR),this.finishNode(t,"BlockStatement"),this.finishNode(e,"DeclareModule")},le.flowParseDeclareModuleExports=function(e){return this.expectContextual("module"),this.expect(R.dot),this.expectContextual("exports"),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")},le.flowParseDeclareTypeAlias=function(e){return this.next(),this.flowParseTypeAlias(e),this.finishNode(e,"DeclareTypeAlias")},le.flowParseDeclareOpaqueType=function(e){return this.next(),this.flowParseOpaqueType(e,!0),this.finishNode(e,"DeclareOpaqueType")},le.flowParseDeclareInterface=function(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")},le.flowParseInterfaceish=function(e){if(e.id=this.parseIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.mixins=[],this.eat(R._extends))do{e.extends.push(this.flowParseInterfaceExtends())}while(this.eat(R.comma));if(this.isContextual("mixins")){this.next();do{e.mixins.push(this.flowParseInterfaceExtends())}while(this.eat(R.comma))}e.body=this.flowParseObjectType(!0,!1,!1)},le.flowParseInterfaceExtends=function(){var e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")},le.flowParseInterface=function(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,"InterfaceDeclaration")},le.flowParseRestrictedIdentifier=function(e){return ue.indexOf(this.state.value)>-1&&this.raise(this.state.start,"Cannot overwrite primitive type "+this.state.value),this.parseIdentifier(e)},le.flowParseTypeAlias=function(e){return e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(R.eq),this.semicolon(),this.finishNode(e,"TypeAlias")},le.flowParseOpaqueType=function(e,t){return this.expectContextual("type"),e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(R.colon)&&(e.supertype=this.flowParseTypeInitialiser(R.colon)),e.impltype=null,t||(e.impltype=this.flowParseTypeInitialiser(R.eq)),this.semicolon(),this.finishNode(e,"OpaqueType")},le.flowParseTypeParameter=function(){var e=this.startNode(),t=this.flowParseVariance(),r=this.flowParseTypeAnnotatableIdentifier();return e.name=r.name,e.variance=t,e.bound=r.typeAnnotation,this.match(R.eq)&&(this.eat(R.eq),e.default=this.flowParseType()),this.finishNode(e,"TypeParameter")},le.flowParseTypeParameterDeclaration=function(){var e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.isRelational("<")||this.match(R.jsxTagStart)?this.next():this.unexpected();do{t.params.push(this.flowParseTypeParameter()),this.isRelational(">")||this.expect(R.comma)}while(!this.isRelational(">"));return this.expectRelational(">"),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")},le.flowParseTypeParameterInstantiation=function(){var e=this.startNode(),t=this.state.inType;for(e.params=[],this.state.inType=!0,this.expectRelational("<");!this.isRelational(">");)e.params.push(this.flowParseType()),this.isRelational(">")||this.expect(R.comma);return this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")},le.flowParseObjectPropertyKey=function(){return this.match(R.num)||this.match(R.string)?this.parseExprAtom():this.parseIdentifier(!0)},le.flowParseObjectTypeIndexer=function(e,t,r){return e.static=t,this.expect(R.bracketL),this.lookahead().type===R.colon?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(R.bracketR),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeIndexer")},le.flowParseObjectTypeMethodish=function(e){for(e.params=[],e.rest=null,e.typeParameters=null,this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(R.parenL);!this.match(R.parenR)&&!this.match(R.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(R.parenR)||this.expect(R.comma);return this.eat(R.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),this.expect(R.parenR),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")},le.flowParseObjectTypeMethod=function(e,t,r,n){var i=this.startNodeAt(e,t);return i.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e,t)),i.static=r,i.key=n,i.optional=!1,this.flowObjectTypeSemicolon(),this.finishNode(i,"ObjectTypeProperty")},le.flowParseObjectTypeCallProperty=function(e,t){var r=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(r),this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeCallProperty")},le.flowParseObjectType=function(e,t,r){var n=this.state.inType;this.state.inType=!0;var i=this.startNode(),s=void 0,a=void 0,o=!1;i.callProperties=[],i.properties=[],i.indexers=[];var u=void 0,l=void 0;for(t&&this.match(R.braceBarL)?(this.expect(R.braceBarL),u=R.braceBarR,l=!0):(this.expect(R.braceL),u=R.braceR,l=!1),i.exact=l;!this.match(u);){var c=!1,f=this.state.start,p=this.state.startLoc;s=this.startNode(),e&&this.isContextual("static")&&this.lookahead().type!==R.colon&&(this.next(),o=!0);var d=this.state.start,h=this.flowParseVariance();this.match(R.bracketL)?i.indexers.push(this.flowParseObjectTypeIndexer(s,o,h)):this.match(R.parenL)||this.isRelational("<")?(h&&this.unexpected(d),i.callProperties.push(this.flowParseObjectTypeCallProperty(s,o))):this.match(R.ellipsis)?(r||this.unexpected(null,"Spread operator cannot appear in class or interface definitions"),h&&this.unexpected(h.start,"Spread properties cannot have variance"),this.expect(R.ellipsis),s.argument=this.flowParseType(),this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeSpreadProperty"))):(a=this.flowParseObjectPropertyKey(),this.isRelational("<")||this.match(R.parenL)?(h&&this.unexpected(h.start),i.properties.push(this.flowParseObjectTypeMethod(f,p,o,a))):(this.eat(R.question)&&(c=!0),s.key=a,s.value=this.flowParseTypeInitialiser(),s.optional=c,s.static=o,s.variance=h,this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeProperty")))),o=!1}this.expect(u);var m=this.finishNode(i,"ObjectTypeAnnotation");return this.state.inType=n,m},le.flowObjectTypeSemicolon=function(){this.eat(R.semi)||this.eat(R.comma)||this.match(R.braceR)||this.match(R.braceBarR)||this.unexpected()},le.flowParseQualifiedTypeIdentifier=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;for(var n=r||this.parseIdentifier();this.eat(R.dot);){var i=this.startNodeAt(e,t);i.qualification=n,i.id=this.parseIdentifier(),n=this.finishNode(i,"QualifiedTypeIdentifier")}return n},le.flowParseGenericType=function(e,t,r){var n=this.startNodeAt(e,t);return n.typeParameters=null,n.id=this.flowParseQualifiedTypeIdentifier(e,t,r),this.isRelational("<")&&(n.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(n,"GenericTypeAnnotation")},le.flowParseTypeofType=function(){var e=this.startNode();return this.expect(R._typeof),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")},le.flowParseTupleType=function(){var e=this.startNode();for(e.types=[],this.expect(R.bracketL);this.state.pos<this.input.length&&!this.match(R.bracketR)&&(e.types.push(this.flowParseType()),!this.match(R.bracketR));)this.expect(R.comma);return this.expect(R.bracketR),this.finishNode(e,"TupleTypeAnnotation")},le.flowParseFunctionTypeParam=function(){var e=null,t=!1,r=null,n=this.startNode(),i=this.lookahead();return i.type===R.colon||i.type===R.question?(e=this.parseIdentifier(),this.eat(R.question)&&(t=!0),r=this.flowParseTypeInitialiser()):r=this.flowParseType(),n.name=e,n.optional=t,n.typeAnnotation=r,this.finishNode(n,"FunctionTypeParam")},le.reinterpretTypeAsFunctionTypeParam=function(e){var t=this.startNodeAt(e.start,e.loc.start);return t.name=null,t.optional=!1,t.typeAnnotation=e,this.finishNode(t,"FunctionTypeParam")},le.flowParseFunctionTypeParams=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t={params:e,rest:null};!this.match(R.parenR)&&!this.match(R.ellipsis);)t.params.push(this.flowParseFunctionTypeParam()),this.match(R.parenR)||this.expect(R.comma);return this.eat(R.ellipsis)&&(t.rest=this.flowParseFunctionTypeParam()),t},le.flowIdentToTypeAnnotation=function(e,t,r,n){switch(n.name){case"any":return this.finishNode(r,"AnyTypeAnnotation");case"void":return this.finishNode(r,"VoidTypeAnnotation");case"bool":case"boolean":return this.finishNode(r,"BooleanTypeAnnotation");case"mixed":return this.finishNode(r,"MixedTypeAnnotation");case"empty":return this.finishNode(r,"EmptyTypeAnnotation");case"number":return this.finishNode(r,"NumberTypeAnnotation");case"string":return this.finishNode(r,"StringTypeAnnotation");default:return this.flowParseGenericType(e,t,n)}},le.flowParsePrimaryType=function(){var e=this.state.start,t=this.state.startLoc,r=this.startNode(),n=void 0,i=void 0,s=!1,a=this.state.noAnonFunctionType;switch(this.state.type){case R.name:return this.flowIdentToTypeAnnotation(e,t,r,this.parseIdentifier());case R.braceL:return this.flowParseObjectType(!1,!1,!0);case R.braceBarL:return this.flowParseObjectType(!1,!0,!0);case R.bracketL:return this.flowParseTupleType();case R.relational:if("<"===this.state.value)return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(R.parenL),n=this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(R.parenR),this.expect(R.arrow),r.returnType=this.flowParseType(),this.finishNode(r,"FunctionTypeAnnotation");break;case R.parenL:if(this.next(),!this.match(R.parenR)&&!this.match(R.ellipsis))if(this.match(R.name)){var o=this.lookahead().type;s=o!==R.question&&o!==R.colon}else s=!0;if(s){if(this.state.noAnonFunctionType=!1,i=this.flowParseType(),this.state.noAnonFunctionType=a,this.state.noAnonFunctionType||!(this.match(R.comma)||this.match(R.parenR)&&this.lookahead().type===R.arrow))return this.expect(R.parenR),i;this.eat(R.comma)}return n=i?this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(i)]):this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(R.parenR),this.expect(R.arrow),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,"FunctionTypeAnnotation");case R.string:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case R._true:case R._false:return r.value=this.match(R._true),this.next(),this.finishNode(r,"BooleanLiteralTypeAnnotation");case R.plusMin:if("-"===this.state.value)return this.next(),
this.match(R.num)||this.unexpected(null,"Unexpected token, expected number"),this.parseLiteral(-this.state.value,"NumericLiteralTypeAnnotation",r.start,r.loc.start);this.unexpected();case R.num:return this.parseLiteral(this.state.value,"NumericLiteralTypeAnnotation");case R._null:return r.value=this.match(R._null),this.next(),this.finishNode(r,"NullLiteralTypeAnnotation");case R._this:return r.value=this.match(R._this),this.next(),this.finishNode(r,"ThisTypeAnnotation");case R.star:return this.next(),this.finishNode(r,"ExistentialTypeParam");default:if("typeof"===this.state.type.keyword)return this.flowParseTypeofType()}this.unexpected()},le.flowParsePostfixType=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.flowParsePrimaryType();!this.canInsertSemicolon()&&this.match(R.bracketL);){var n=this.startNodeAt(e,t);n.elementType=r,this.expect(R.bracketL),this.expect(R.bracketR),r=this.finishNode(n,"ArrayTypeAnnotation")}return r},le.flowParsePrefixType=function(){var e=this.startNode();return this.eat(R.question)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()},le.flowParseAnonFunctionWithoutParens=function(){var e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(R.arrow)){var t=this.startNodeAt(e.start,e.loc.start);return t.params=[this.reinterpretTypeAsFunctionTypeParam(e)],t.rest=null,t.returnType=this.flowParseType(),t.typeParameters=null,this.finishNode(t,"FunctionTypeAnnotation")}return e},le.flowParseIntersectionType=function(){var e=this.startNode();this.eat(R.bitwiseAND);var t=this.flowParseAnonFunctionWithoutParens();for(e.types=[t];this.eat(R.bitwiseAND);)e.types.push(this.flowParseAnonFunctionWithoutParens());return 1===e.types.length?t:this.finishNode(e,"IntersectionTypeAnnotation")},le.flowParseUnionType=function(){var e=this.startNode();this.eat(R.bitwiseOR);var t=this.flowParseIntersectionType();for(e.types=[t];this.eat(R.bitwiseOR);)e.types.push(this.flowParseIntersectionType());return 1===e.types.length?t:this.finishNode(e,"UnionTypeAnnotation")},le.flowParseType=function(){var e=this.state.inType;this.state.inType=!0;var t=this.flowParseUnionType();return this.state.inType=e,t},le.flowParseTypeAnnotation=function(){var e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")},le.flowParseTypeAndPredicateAnnotation=function(){var e=this.startNode(),t=this.flowParseTypeAndPredicateInitialiser();return e.typeAnnotation=t[0],e.predicate=t[1],this.finishNode(e,"TypeAnnotation")},le.flowParseTypeAnnotatableIdentifier=function(){var e=this.flowParseRestrictedIdentifier();return this.match(R.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(e,e.type)),e},le.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.finishNodeAt(e.expression,e.expression.type,e.typeAnnotation.end,e.typeAnnotation.loc.end)},le.flowParseVariance=function(){var e=null;return this.match(R.plusMin)&&("+"===this.state.value?e="plus":"-"===this.state.value&&(e="minus"),this.next()),e};var ce=function(e){e.extend("parseFunctionBody",function(e){return function(t,r){return this.match(R.colon)&&!r&&(t.returnType=this.flowParseTypeAndPredicateAnnotation()),e.call(this,t,r)}}),e.extend("parseStatement",function(e){return function(t,r){if(this.state.strict&&this.match(R.name)&&"interface"===this.state.value){var n=this.startNode();return this.next(),this.flowParseInterface(n)}return e.call(this,t,r)}}),e.extend("parseExpressionStatement",function(e){return function(t,r){if("Identifier"===r.type)if("declare"===r.name){if(this.match(R._class)||this.match(R.name)||this.match(R._function)||this.match(R._var)||this.match(R._export))return this.flowParseDeclare(t)}else if(this.match(R.name)){if("interface"===r.name)return this.flowParseInterface(t);if("type"===r.name)return this.flowParseTypeAlias(t);if("opaque"===r.name)return this.flowParseOpaqueType(t,!1)}return e.call(this,t,r)}}),e.extend("shouldParseExportDeclaration",function(e){return function(){return this.isContextual("type")||this.isContextual("interface")||this.isContextual("opaque")||e.call(this)}}),e.extend("isExportDefaultSpecifier",function(e){return function(){return(!this.match(R.name)||"type"!==this.state.value&&"interface"!==this.state.value&&"opaque"!==this.state.value)&&e.call(this)}}),e.extend("parseConditional",function(e){return function(t,r,n,i,s){if(s&&this.match(R.question)){var a=this.state.clone();try{return e.call(this,t,r,n,i)}catch(e){if(e instanceof SyntaxError)return this.state=a,s.start=e.pos||this.state.start,t;throw e}}return e.call(this,t,r,n,i)}}),e.extend("parseParenItem",function(e){return function(t,r,n){if(t=e.call(this,t,r,n),this.eat(R.question)&&(t.optional=!0),this.match(R.colon)){var i=this.startNodeAt(r,n);return i.expression=t,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,"TypeCastExpression")}return t}}),e.extend("parseExport",function(e){return function(t){return t=e.call(this,t),"ExportNamedDeclaration"===t.type&&(t.exportKind=t.exportKind||"value"),t}}),e.extend("parseExportDeclaration",function(e){return function(t){if(this.isContextual("type")){t.exportKind="type";var r=this.startNode();return this.next(),this.match(R.braceL)?(t.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(t),null):this.flowParseTypeAlias(r)}if(this.isContextual("opaque")){t.exportKind="type";var n=this.startNode();return this.next(),this.flowParseOpaqueType(n,!1)}if(this.isContextual("interface")){t.exportKind="type";var i=this.startNode();return this.next(),this.flowParseInterface(i)}return e.call(this,t)}}),e.extend("parseClassId",function(e){return function(t){e.apply(this,arguments),this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration())}}),e.extend("isKeyword",function(e){return function(t){return(!this.state.inType||"void"!==t)&&e.call(this,t)}}),e.extend("readToken",function(e){return function(t){return!this.state.inType||62!==t&&60!==t?e.call(this,t):this.finishOp(R.relational,1)}}),e.extend("jsx_readToken",function(e){return function(){if(!this.state.inType)return e.call(this)}}),e.extend("toAssignable",function(e){return function(t,r,n){return"TypeCastExpression"===t.type?e.call(this,this.typeCastToParameter(t),r,n):e.call(this,t,r,n)}}),e.extend("toAssignableList",function(e){return function(t,r,n){for(var i=0;i<t.length;i++){var s=t[i];s&&"TypeCastExpression"===s.type&&(t[i]=this.typeCastToParameter(s))}return e.call(this,t,r,n)}}),e.extend("toReferencedList",function(){return function(e){for(var t=0;t<e.length;t++){var r=e[t];r&&r._exprListItem&&"TypeCastExpression"===r.type&&this.raise(r.start,"Unexpected type cast")}return e}}),e.extend("parseExprListItem",function(e){return function(){for(var t=this.startNode(),r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];var s=e.call.apply(e,[this].concat(n));return this.match(R.colon)?(t._exprListItem=!0,t.expression=s,t.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t,"TypeCastExpression")):s}}),e.extend("checkLVal",function(e){return function(t){if("TypeCastExpression"!==t.type)return e.apply(this,arguments)}}),e.extend("parseClassProperty",function(e){return function(t){return delete t.variancePos,this.match(R.colon)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),e.call(this,t)}}),e.extend("isClassMethod",function(e){return function(){return this.isRelational("<")||e.call(this)}}),e.extend("isClassProperty",function(e){return function(){return this.match(R.colon)||e.call(this)}}),e.extend("isNonstaticConstructor",function(e){return function(t){return!this.match(R.colon)&&e.call(this,t)}}),e.extend("parseClassMethod",function(e){return function(t,r){r.variance&&this.unexpected(r.variancePos),delete r.variance,delete r.variancePos,this.isRelational("<")&&(r.typeParameters=this.flowParseTypeParameterDeclaration());for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];e.call.apply(e,[this,t,r].concat(i))}}),e.extend("parseClassSuper",function(e){return function(t,r){if(e.call(this,t,r),t.superClass&&this.isRelational("<")&&(t.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual("implements")){this.next();var n=t.implements=[];do{var i=this.startNode();i.id=this.parseIdentifier(),this.isRelational("<")?i.typeParameters=this.flowParseTypeParameterInstantiation():i.typeParameters=null,n.push(this.finishNode(i,"ClassImplements"))}while(this.eat(R.comma))}}}),e.extend("parsePropertyName",function(e){return function(t){var r=this.state.start,n=this.flowParseVariance(),i=e.call(this,t);return t.variance=n,t.variancePos=r,i}}),e.extend("parseObjPropValue",function(e){return function(t){t.variance&&this.unexpected(t.variancePos),delete t.variance,delete t.variancePos;var r=void 0;this.isRelational("<")&&(r=this.flowParseTypeParameterDeclaration(),this.match(R.parenL)||this.unexpected()),e.apply(this,arguments),r&&((t.value||t).typeParameters=r)}}),e.extend("parseAssignableListItemTypes",function(){return function(e){return this.eat(R.question)&&(e.optional=!0),this.match(R.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),this.finishNode(e,e.type),e}}),e.extend("parseMaybeDefault",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.apply(this,r);return"AssignmentPattern"===i.type&&i.typeAnnotation&&i.right.start<i.typeAnnotation.start&&this.raise(i.typeAnnotation.start,"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`"),i}}),e.extend("parseImportSpecifiers",function(e){return function(t){t.importKind="value";var r=null;if(this.match(R._typeof)?r="typeof":this.isContextual("type")&&(r="type"),r){var n=this.lookahead();(n.type===R.name&&"from"!==n.value||n.type===R.braceL||n.type===R.star)&&(this.next(),t.importKind=r)}e.call(this,t)}}),e.extend("parseImportSpecifier",function(){return function(e){var t=this.startNode(),r=this.state.start,n=this.parseIdentifier(!0),i=null;"type"===n.name?i="type":"typeof"===n.name&&(i="typeof");var s=!1;if(this.isContextual("as")){var a=this.parseIdentifier(!0);null===i||this.match(R.name)||this.state.type.keyword?(t.imported=n,t.importKind=null,t.local=this.parseIdentifier()):(t.imported=a,t.importKind=i,t.local=a.__clone())}else null!==i&&(this.match(R.name)||this.state.type.keyword)?(t.imported=this.parseIdentifier(!0),t.importKind=i,this.eatContextual("as")?t.local=this.parseIdentifier():(s=!0,t.local=t.imported.__clone())):(s=!0,t.imported=n,t.importKind=null,t.local=t.imported.__clone());"type"!==e.importKind&&"typeof"!==e.importKind||"type"!==t.importKind&&"typeof"!==t.importKind||this.raise(r,"`The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements`"),s&&this.checkReservedWord(t.local.name,t.start,!0,!0),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))}}),e.extend("parseFunctionParams",function(e){return function(t){this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),e.call(this,t)}}),e.extend("parseVarHead",function(e){return function(t){e.call(this,t),this.match(R.colon)&&(t.id.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t.id,t.id.type))}}),e.extend("parseAsyncArrowFromCallExpression",function(e){return function(t,r){if(this.match(R.colon)){var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,t.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=n}return e.call(this,t,r)}}),e.extend("shouldParseAsyncArrow",function(e){return function(){return this.match(R.colon)||e.call(this)}}),e.extend("parseMaybeAssign",function(e){return function(){for(var t=null,r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];if(R.jsxTagStart&&this.match(R.jsxTagStart)){var s=this.state.clone();try{return e.apply(this,n)}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=s,this.state.context.length-=2,t=e}}if(null!=t||this.isRelational("<")){var a=void 0,o=void 0;try{o=this.flowParseTypeParameterDeclaration(),a=e.apply(this,n),a.typeParameters=o,a.start=o.start,a.loc.start=o.loc.start}catch(e){throw t||e}if("ArrowFunctionExpression"===a.type)return a;if(null!=t)throw t;this.raise(o.start,"Expected an arrow function after this type parameter declaration")}return e.apply(this,n)}}),e.extend("parseArrow",function(e){return function(t){if(this.match(R.colon)){var r=this.state.clone();try{var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;var i=this.flowParseTypeAndPredicateAnnotation();this.state.noAnonFunctionType=n,this.canInsertSemicolon()&&this.unexpected(),this.match(R.arrow)||this.unexpected(),t.returnType=i}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=r}}return e.call(this,t)}}),e.extend("shouldParseArrow",function(e){return function(){return this.match(R.colon)||e.call(this)}})},fe=String.fromCodePoint;if(!fe){var pe=String.fromCharCode,de=Math.floor;fe=function(){var e=[],t=void 0,r=void 0,n=-1,i=arguments.length;if(!i)return"";for(var s="";++n<i;){var a=Number(arguments[n]);if(!isFinite(a)||a<0||a>1114111||de(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?e.push(a):(a-=65536,t=55296+(a>>10),r=a%1024+56320,e.push(t,r)),(n+1==i||e.length>16384)&&(s+=pe.apply(null,e),e.length=0)}return s}}var he=fe,me={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},ye=/^[\da-fA-F]+$/,ve=/^\d+$/;U.j_oTag=new j("<tag",!1),U.j_cTag=new j("</tag",!1),U.j_expr=new j("<tag>...</tag>",!0,!0),R.jsxName=new T("jsxName"),R.jsxText=new T("jsxText",{beforeExpr:!0}),R.jsxTagStart=new T("jsxTagStart",{startsExpr:!0}),R.jsxTagEnd=new T("jsxTagEnd"),R.jsxTagStart.updateContext=function(){this.state.context.push(U.j_expr),this.state.context.push(U.j_oTag),this.state.exprAllowed=!1},R.jsxTagEnd.updateContext=function(e){var t=this.state.context.pop();t===U.j_oTag&&e===R.slash||t===U.j_cTag?(this.state.context.pop(),this.state.exprAllowed=this.curContext()===U.j_expr):this.state.exprAllowed=!0};var ge=J.prototype;ge.jsxReadToken=function(){for(var e="",t=this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated JSX contents");var r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?60===r&&this.state.exprAllowed?(++this.state.pos,this.finishToken(R.jsxTagStart)):this.getTokenFromCode(r):(e+=this.input.slice(t,this.state.pos),this.finishToken(R.jsxText,e));case 38:e+=this.input.slice(t,this.state.pos),e+=this.jsxReadEntity(),t=this.state.pos;break;default:o(r)?(e+=this.input.slice(t,this.state.pos),e+=this.jsxReadNewLine(!0),t=this.state.pos):++this.state.pos}}},ge.jsxReadNewLine=function(e){var t=this.input.charCodeAt(this.state.pos),r=void 0;return++this.state.pos,13===t&&10===this.input.charCodeAt(this.state.pos)?(++this.state.pos,r=e?"\n":"\r\n"):r=String.fromCharCode(t),++this.state.curLine,this.state.lineStart=this.state.pos,r},ge.jsxReadString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;38===n?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadEntity(),r=this.state.pos):o(n)?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return t+=this.input.slice(r,this.state.pos++),this.finishToken(R.string,t)},ge.jsxReadEntity=function(){for(var e="",t=0,r=void 0,n=this.input[this.state.pos],i=++this.state.pos;this.state.pos<this.input.length&&t++<10;){if(";"===(n=this.input[this.state.pos++])){"#"===e[0]?"x"===e[1]?(e=e.substr(2),ye.test(e)&&(r=he(parseInt(e,16)))):(e=e.substr(1),ve.test(e)&&(r=he(parseInt(e,10)))):r=me[e];break}e+=n}return r||(this.state.pos=i,"&")},ge.jsxReadWord=function(){var e=void 0,t=this.state.pos;do{e=this.input.charCodeAt(++this.state.pos)}while(s(e)||45===e);return this.finishToken(R.jsxName,this.input.slice(t,this.state.pos))},ge.jsxParseIdentifier=function(){var e=this.startNode();return this.match(R.jsxName)?e.name=this.state.value:this.state.type.keyword?e.name=this.state.type.keyword:this.unexpected(),this.next(),this.finishNode(e,"JSXIdentifier")},ge.jsxParseNamespacedName=function(){var e=this.state.start,t=this.state.startLoc,r=this.jsxParseIdentifier();if(!this.eat(R.colon))return r;var n=this.startNodeAt(e,t);return n.namespace=r,n.name=this.jsxParseIdentifier(),this.finishNode(n,"JSXNamespacedName")},ge.jsxParseElementName=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.jsxParseNamespacedName();this.eat(R.dot);){var n=this.startNodeAt(e,t);n.object=r,n.property=this.jsxParseIdentifier(),r=this.finishNode(n,"JSXMemberExpression")}return r},ge.jsxParseAttributeValue=function(){var e=void 0;switch(this.state.type){case R.braceL:if(e=this.jsxParseExpressionContainer(),"JSXEmptyExpression"!==e.expression.type)return e;this.raise(e.start,"JSX attributes must only be assigned a non-empty expression");case R.jsxTagStart:case R.string:return e=this.parseExprAtom(),e.extra=null,e;default:this.raise(this.state.start,"JSX value should be either an expression or a quoted JSX text")}},ge.jsxParseEmptyExpression=function(){var e=this.startNodeAt(this.state.lastTokEnd,this.state.lastTokEndLoc);return this.finishNodeAt(e,"JSXEmptyExpression",this.state.start,this.state.startLoc)},ge.jsxParseSpreadChild=function(){var e=this.startNode();return this.expect(R.braceL),this.expect(R.ellipsis),e.expression=this.parseExpression(),this.expect(R.braceR),this.finishNode(e,"JSXSpreadChild")},ge.jsxParseExpressionContainer=function(){var e=this.startNode();return this.next(),this.match(R.braceR)?e.expression=this.jsxParseEmptyExpression():e.expression=this.parseExpression(),this.expect(R.braceR),this.finishNode(e,"JSXExpressionContainer")},ge.jsxParseAttribute=function(){var e=this.startNode();return this.eat(R.braceL)?(this.expect(R.ellipsis),e.argument=this.parseMaybeAssign(),this.expect(R.braceR),this.finishNode(e,"JSXSpreadAttribute")):(e.name=this.jsxParseNamespacedName(),e.value=this.eat(R.eq)?this.jsxParseAttributeValue():null,this.finishNode(e,"JSXAttribute"))},ge.jsxParseOpeningElementAt=function(e,t){var r=this.startNodeAt(e,t);for(r.attributes=[],r.name=this.jsxParseElementName();!this.match(R.slash)&&!this.match(R.jsxTagEnd);)r.attributes.push(this.jsxParseAttribute());return r.selfClosing=this.eat(R.slash),this.expect(R.jsxTagEnd),this.finishNode(r,"JSXOpeningElement")},ge.jsxParseClosingElementAt=function(e,t){var r=this.startNodeAt(e,t);return r.name=this.jsxParseElementName(),this.expect(R.jsxTagEnd),this.finishNode(r,"JSXClosingElement")},ge.jsxParseElementAt=function(e,t){var r=this.startNodeAt(e,t),n=[],i=this.jsxParseOpeningElementAt(e,t),s=null;if(!i.selfClosing){e:for(;;)switch(this.state.type){case R.jsxTagStart:if(e=this.state.start,t=this.state.startLoc,this.next(),this.eat(R.slash)){s=this.jsxParseClosingElementAt(e,t);break e}n.push(this.jsxParseElementAt(e,t));break;case R.jsxText:n.push(this.parseExprAtom());break;case R.braceL:this.lookahead().type===R.ellipsis?n.push(this.jsxParseSpreadChild()):n.push(this.jsxParseExpressionContainer());break;default:this.unexpected()}d(s.name)!==d(i.name)&&this.raise(s.start,"Expected corresponding JSX closing tag for <"+d(i.name)+">")}return r.openingElement=i,r.closingElement=s,r.children=n,this.match(R.relational)&&"<"===this.state.value&&this.raise(this.state.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,"JSXElement")},ge.jsxParseElement=function(){var e=this.state.start,t=this.state.startLoc;return this.next(),this.jsxParseElementAt(e,t)};var be=function(e){e.extend("parseExprAtom",function(e){return function(t){if(this.match(R.jsxText)){var r=this.parseLiteral(this.state.value,"JSXText");return r.extra=null,r}return this.match(R.jsxTagStart)?this.jsxParseElement():e.call(this,t)}}),e.extend("readToken",function(e){return function(t){if(this.state.inPropertyName)return e.call(this,t);var r=this.curContext();if(r===U.j_expr)return this.jsxReadToken();if(r===U.j_oTag||r===U.j_cTag){if(i(t))return this.jsxReadWord();if(62===t)return++this.state.pos,this.finishToken(R.jsxTagEnd);if((34===t||39===t)&&r===U.j_oTag)return this.jsxReadString(t)}return 60===t&&this.state.exprAllowed?(++this.state.pos,this.finishToken(R.jsxTagStart)):e.call(this,t)}}),e.extend("updateContext",function(e){return function(t){if(this.match(R.braceL)){var r=this.curContext();r===U.j_oTag?this.state.context.push(U.braceExpression):r===U.j_expr?this.state.context.push(U.templateQuasi):e.call(this,t),this.state.exprAllowed=!0}else{if(!this.match(R.slash)||t!==R.jsxTagStart)return e.call(this,t);this.state.context.length-=2,this.state.context.push(U.j_cTag),this.state.exprAllowed=!1}}})};K.estree=oe,K.flow=ce,K.jsx=be,t.parse=h,t.parseExpression=m,t.tokTypes=R},function(e,t,r){"use strict";var n=r(21),i=r(431),s=r(141),a=r(150)("IE_PROTO"),o=function(){},u=function(){var e,t=r(230)("iframe"),n=s.length;for(t.style.display="none",r(426).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;n--;)delete u.prototype[s[n]];return u()};e.exports=Object.create||function(e,t){var r;return null!==e?(o.prototype=n(e),r=new o,o.prototype=null,r[a]=e):r=u(),void 0===t?r:i(r,t)}},function(e,t){"use strict";t.f={}.propertyIsEnumerable},function(e,t){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){"use strict";var n=r(23).f,i=r(28),s=r(13)("toStringTag");e.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,r){"use strict";var n=r(140);e.exports=function(e){return Object(n(e))}},function(e,t){"use strict";var r=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+n).toString(36))}},function(e,t){"use strict"},function(e,t,r){"use strict";!function(){t.ast=r(461),t.code=r(240),t.keyword=r(462)}()},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(546),s=r(547),a=r(548),o=r(549),u=r(550);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t,r){"use strict";function n(e){var t=this.__data__=new i(e);this.size=t.size}var i=r(98),s=r(565),a=r(566),o=r(567),u=r(568),l=r(569);n.prototype.clear=s,n.prototype.delete=a,n.prototype.get=o,n.prototype.has=u,n.prototype.set=l,e.exports=n},function(e,t,r){"use strict";function n(e,t){for(var r=e.length;r--;)if(i(e[r][0],t))return r;return-1}var i=r(46);e.exports=n},function(e,t,r){"use strict";function n(e,t){return a(s(e,t,i),e+"")}var i=r(110),s=r(560),a=r(563);e.exports=n},function(e,t){"use strict";function r(e){return function(t){return e(t)}}e.exports=r},function(e,t,r){"use strict";function n(e){return i(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,o&&s(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n<i;){var u=r[n];u&&e(t,u,n,a)}return t})}var i=r(101),s=r(172);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=e.__data__;return i(t)?r["string"==typeof t?"string":"hash"]:r.map}var i=r(544);e.exports=n},function(e,t){"use strict";function r(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}var n=Object.prototype;e.exports=r},function(e,t,r){"use strict";var n=r(38),i=n(Object,"create");e.exports=i},function(e,t){"use strict";function r(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}e.exports=r},function(e,t,r){"use strict";function n(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-s?"-0":t}var i=r(62),s=1/0;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,s)}var i=r(164),s=4;e.exports=n},function(e,t){"use strict";function r(e){return e}e.exports=r},function(e,t,r){"use strict";function n(e,t,r,n){e=s(e)?e:u(e),r=r&&!n?o(r):0;var c=e.length;return r<0&&(r=l(c+r,0)),a(e)?r<=c&&e.indexOf(t,r)>-1:!!c&&i(e,t,r)>-1}var i=r(166),s=r(24),a=r(587),o=r(48),u=r(280),l=Math.max;e.exports=n},function(e,t,r){"use strict";var n=r(493),i=r(25),s=Object.prototype,a=s.hasOwnProperty,o=s.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(e){return i(e)&&a.call(e,"callee")&&!o.call(e,"callee")};e.exports=u},function(e,t,r){(function(e){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(17),s=r(596),a="object"==n(t)&&t&&!t.nodeType&&t,o=a&&"object"==n(e)&&e&&!e.nodeType&&e,u=o&&o.exports===a,l=u?i.Buffer:void 0,c=l?l.isBuffer:void 0,f=c||s;e.exports=f}).call(t,r(39)(e))},function(e,t,r){"use strict";function n(e){return null==e?"":i(e)}var i=r(253);e.exports=n},96,function(e,t,r){"use strict";function n(e){return o.memberExpression(o.identifier("regeneratorRuntime"),o.identifier(e),!1)}function i(e){return e.isReferenced()||e.parentPath.isAssignmentExpression({left:e.node})}function s(e,t){t?e.replaceWith(t):e.remove()}t.__esModule=!0,t.runtimeProperty=n,t.isReference=i,t.replaceWithOrRemove=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){(function(e,n){"use strict";function i(e,r){var n={seen:[],stylize:a};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(r)?n.showHidden=r:r&&t._extend(n,r),x(n.showHidden)&&(n.showHidden=!1),x(n.depth)&&(n.depth=2),x(n.colors)&&(n.colors=!1),x(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=s),u(n,e,n.depth)}function s(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function a(e,t){return e}function o(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,r,n){if(e.customInspect&&r&&C(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return b(i)||(i=u(e,i,n)),i}var s=l(e,r);if(s)return s;var a=Object.keys(r),m=o(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(r)),D(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(r);if(0===a.length){if(C(r)){var y=r.name?": "+r.name:"";return e.stylize("[Function"+y+"]","special")}if(A(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(_(r))return e.stylize(Date.prototype.toString.call(r),"date");if(D(r))return c(r)}var v="",g=!1,E=["{","}"];if(h(r)&&(g=!0,E=["[","]"]),C(r)){v=" [Function"+(r.name?": "+r.name:"")+"]"}if(A(r)&&(v=" "+RegExp.prototype.toString.call(r)),_(r)&&(v=" "+Date.prototype.toUTCString.call(r)),D(r)&&(v=" "+c(r)),0===a.length&&(!g||0==r.length))return E[0]+v+E[1];if(n<0)return A(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var x;return x=g?f(e,r,n,m,a):a.map(function(t){return p(e,r,n,m,t,g)}),e.seen.pop(),d(x,v,E)}function l(e,t){if(x(t))return e.stylize("undefined","undefined");if(b(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return g(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):y(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,r,n,i){for(var s=[],a=0,o=t.length;a<o;++a)T(t,String(a))?s.push(p(e,t,r,n,String(a),!0)):s.push("");return i.forEach(function(i){i.match(/^\d+$/)||s.push(p(e,t,r,n,i,!0))}),s}function p(e,t,r,n,i,s){var a,o,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?o=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(o=e.stylize("[Setter]","special")),T(n,i)||(a="["+i+"]"),o||(e.seen.indexOf(l.value)<0?(o=y(r)?u(e,l.value,null):u(e,l.value,r-1),o.indexOf("\n")>-1&&(o=s?o.split("\n").map(function(e){return"  "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return"   "+e}).join("\n"))):o=e.stylize("[Circular]","special")),x(a)){if(s&&i.match(/^\d+$/))return o;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+o}function d(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf("\n")>=0&&n++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n  ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function y(e){return null===e}function v(e){return null==e}function g(e){return"number"==typeof e}function b(e){return"string"==typeof e}function E(e){return"symbol"===(void 0===e?"undefined":O(e))}function x(e){return void 0===e}function A(e){return S(e)&&"[object RegExp]"===P(e)}function S(e){return"object"===(void 0===e?"undefined":O(e))&&null!==e}function _(e){return S(e)&&"[object Date]"===P(e)}function D(e){return S(e)&&("[object Error]"===P(e)||e instanceof Error)}function C(e){return"function"==typeof e}function w(e){
return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===(void 0===e?"undefined":O(e))||void 0===e}function P(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}function F(){var e=new Date,t=[k(e.getHours()),k(e.getMinutes()),k(e.getSeconds())].join(":");return[e.getDate(),M[e.getMonth()],t].join(" ")}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B=/%[sdj%]/g;t.format=function(e){if(!b(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(i(arguments[r]));return t.join(" ")}for(var r=1,n=arguments,s=n.length,a=String(e).replace(B,function(e){if("%%"===e)return"%";if(r>=s)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),o=n[r];r<s;o=n[++r])y(o)||!S(o)?a+=" "+o:a+=" "+i(o);return a},t.deprecate=function(r,i){function s(){if(!a){if(n.throwDeprecation)throw new Error(i);n.traceDeprecation?console.trace(i):console.error(i),a=!0}return r.apply(this,arguments)}if(x(e.process))return function(){return t.deprecate(r,i).apply(this,arguments)};if(!0===n.noDeprecation)return r;var a=!1;return s};var R,I={};t.debuglog=function(e){if(x(R)&&(R=n.env.NODE_DEBUG||""),e=e.toUpperCase(),!I[e])if(new RegExp("\\b"+e+"\\b","i").test(R)){var r=n.pid;I[e]=function(){var n=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,n)}}else I[e]=function(){};return I[e]},t.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=m,t.isNull=y,t.isNullOrUndefined=v,t.isNumber=g,t.isString=b,t.isSymbol=E,t.isUndefined=x,t.isRegExp=A,t.isObject=S,t.isDate=_,t.isError=D,t.isFunction=C,t.isPrimitive=w,t.isBuffer=r(627);var M=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];t.log=function(){console.log("%s - %s",F(),t.format.apply(t,arguments))},t.inherits=r(626),t._extend=function(e,t){if(!t||!S(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}}).call(t,function(){return this}(),r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(11),a=i(s);t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();if("object"===(void 0===u.default?"undefined":(0,a.default)(u.default)))return null;var r=f[t];if(!r){r=new u.default;var i=c.default.join(t,".babelrc");r.id=i,r.filename=i,r.paths=u.default._nodeModulePaths(t),f[t]=r}try{return u.default._resolveFilename(e,r)}catch(e){return null}};var o=r(115),u=i(o),l=r(19),c=i(l),f={};e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(133),s=n(i),a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c),p=function(e){function t(){(0,o.default)(this,t);var r=(0,l.default)(this,e.call(this));return r.dynamicData={},r}return(0,f.default)(t,e),t.prototype.setDynamic=function(e,t){this.dynamicData[e]=t},t.prototype.get=function(t){if(this.has(t))return e.prototype.get.call(this,t);if(Object.prototype.hasOwnProperty.call(this.dynamicData,t)){var r=this.dynamicData[t]();return this.set(t,r),r}},t}(s.default);t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(239),o=n(a),u=(0,o.default)("babel:verbose"),l=(0,o.default)("babel"),c=[],f=function(){function e(t,r){(0,s.default)(this,e),this.filename=r,this.file=t}return e.prototype._buildMessage=function(e){var t="[BABEL] "+this.filename;return e&&(t+=": "+e),t},e.prototype.warn=function(e){console.warn(this._buildMessage(e))},e.prototype.error=function(e){throw new(arguments.length>1&&void 0!==arguments[1]?arguments[1]:Error)(this._buildMessage(e))},e.prototype.deprecate=function(e){this.file.opts&&this.file.opts.suppressDeprecationMessages||(e=this._buildMessage(e),c.indexOf(e)>=0||(c.push(e),console.error(e)))},e.prototype.verbose=function(e){u.enabled&&u(this._buildMessage(e))},e.prototype.debug=function(e){l.enabled&&l(this._buildMessage(e))},e.prototype.deopt=function(e,t){this.debug(t)},e}();t.default=f,e.exports=t.default},function(e,t,r){"use strict";function n(e,t){var r=e.node,n=r.source?r.source.value:null,i=t.metadata.modules.exports,s=e.get("declaration");if(s.isStatement()){var o=s.getBindingIdentifiers();for(var l in o)i.exported.push(l),i.specifiers.push({kind:"local",local:l,exported:e.isExportDefaultDeclaration()?"default":l})}if(e.isExportNamedDeclaration()&&r.specifiers)for(var c=r.specifiers,f=Array.isArray(c),p=0,c=f?c:(0,a.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d,m=h.exported.name;i.exported.push(m),u.isExportDefaultSpecifier(h)&&i.specifiers.push({kind:"external",local:m,exported:m,source:n}),u.isExportNamespaceSpecifier(h)&&i.specifiers.push({kind:"external-namespace",exported:m,source:n});var y=h.local;y&&(n&&i.specifiers.push({kind:"external",local:y.name,exported:m,source:n}),n||i.specifiers.push({kind:"local",local:y.name,exported:m}))}e.isExportAllDeclaration()&&i.specifiers.push({kind:"external-all",source:n})}function i(e){e.skip()}t.__esModule=!0,t.ImportDeclaration=t.ModuleDeclaration=void 0;var s=r(2),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.ExportDeclaration=n,t.Scope=i;var o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o);t.ModuleDeclaration={enter:function(e,t){var r=e.node;r.source&&(r.source.value=t.resolveModuleSource(r.source.value))}},t.ImportDeclaration={exit:function(e,t){var r=e.node,n=[],i=[];t.metadata.modules.imports.push({source:r.source.value,imported:i,specifiers:n});for(var s=e.get("specifiers"),o=Array.isArray(s),u=0,s=o?s:(0,a.default)(s);;){var l;if(o){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l,f=c.node.local.name;if(c.isImportDefaultSpecifier()&&(i.push("default"),n.push({kind:"named",imported:"default",local:f})),c.isImportSpecifier()){var p=c.node.imported.name;i.push(p),n.push({kind:"named",imported:p,local:f})}c.isImportNamespaceSpecifier()&&(i.push("*"),n.push({kind:"namespace",local:f}))}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=t||i.EXTENSIONS,n=D.default.extname(e);return(0,x.default)(r,n)}function s(e){return e?Array.isArray(e)?e:"string"==typeof e?e.split(","):[e]:[]}function a(e){if(!e)return new RegExp(/.^/);if(Array.isArray(e)&&(e=new RegExp(e.map(m.default).join("|"),"i")),"string"==typeof e){e=(0,w.default)(e),((0,v.default)(e,"./")||(0,v.default)(e,"*/"))&&(e=e.slice(2)),(0,v.default)(e,"**/")&&(e=e.slice(3));var t=b.default.makeRe(e,{nocase:!0});return new RegExp(t.source.slice(1,-1),"i")}if((0,S.default)(e))return e;throw new TypeError("illegal type for regexify")}function o(e,t){return e?"boolean"==typeof e?o([e],t):"string"==typeof e?o(s(e),t):Array.isArray(e)?(t&&(e=e.map(t)),e):[e]:[]}function u(e){return"true"===e||1==e||!("false"===e||0==e||!e)&&e}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];if(e=e.replace(/\\/g,"/"),r){for(var n=r,i=Array.isArray(n),s=0,n=i?n:(0,p.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}if(c(a,e))return!1}return!0}if(t.length)for(var o=t,u=Array.isArray(o),l=0,o=u?o:(0,p.default)(o);;){var f;if(u){if(l>=o.length)break;f=o[l++]}else{if(l=o.next(),l.done)break;f=l.value}var d=f;if(c(d,e))return!0}return!1}function c(e,t){return"function"==typeof e?e(t):e.test(t)}t.__esModule=!0,t.inspect=t.inherits=void 0;var f=r(2),p=n(f),d=r(117);Object.defineProperty(t,"inherits",{enumerable:!0,get:function(){return d.inherits}}),Object.defineProperty(t,"inspect",{enumerable:!0,get:function(){return d.inspect}}),t.canCompile=i,t.list=s,t.regexify=a,t.arrayify=o,t.booleanify=u,t.shouldIgnore=l;var h=r(577),m=n(h),y=r(595),v=n(y),g=r(601),b=n(g),E=r(111),x=n(E),A=r(276),S=n(A),_=r(19),D=n(_),C=r(284),w=n(C);i.EXTENSIONS=[".js",".jsx",".es6",".es"]},function(e,t,r){"use strict";function n(e){e.variance&&("plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")),this.word(e.name)}function i(e){this.token("..."),this.print(e.argument,e)}function s(e){var t=e.properties;this.token("{"),this.printInnerComments(e),t.length&&(this.space(),this.printList(t,e,{indent:!0,statement:!0}),this.space()),this.token("}")}function a(e){this.printJoin(e.decorators,e),this._method(e)}function o(e){if(this.printJoin(e.decorators,e),e.computed)this.token("["),this.print(e.key,e),this.token("]");else{if(m.isAssignmentPattern(e.value)&&m.isIdentifier(e.key)&&e.key.name===e.value.left.name)return void this.print(e.value,e);if(this.print(e.key,e),e.shorthand&&m.isIdentifier(e.key)&&m.isIdentifier(e.value)&&e.key.name===e.value.name)return}this.token(":"),this.space(),this.print(e.value,e)}function u(e){var t=e.elements,r=t.length;this.token("["),this.printInnerComments(e);for(var n=0;n<t.length;n++){var i=t[n];i?(n>0&&this.space(),this.print(i,e),n<r-1&&this.token(",")):this.token(",")}this.token("]")}function l(e){this.word("/"+e.pattern+"/"+e.flags)}function c(e){this.word(e.value?"true":"false")}function f(){this.word("null")}function p(e){var t=this.getPossibleRaw(e),r=e.value+"";null==t?this.number(r):this.format.minified?this.number(t.length<r.length?t:r):this.number(t)}function d(e,t){var r=this.getPossibleRaw(e);if(!this.format.minified&&null!=r)return void this.token(r);var n={quotes:m.isJSX(t)?"double":this.format.quotes,wrap:!0};this.format.jsonCompatibleStrings&&(n.json=!0);var i=(0,v.default)(e.value,n);return this.token(i)}t.__esModule=!0,t.ArrayPattern=t.ObjectPattern=t.RestProperty=t.SpreadProperty=t.SpreadElement=void 0,t.Identifier=n,t.RestElement=i,t.ObjectExpression=s,t.ObjectMethod=a,t.ObjectProperty=o,t.ArrayExpression=u,t.RegExpLiteral=l,t.BooleanLiteral=c,t.NullLiteral=f,t.NumericLiteral=p,t.StringLiteral=d;var h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(469),v=function(e){return e&&e.__esModule?e:{default:e}}(y);t.SpreadElement=i,t.SpreadProperty=i,t.RestProperty=i,t.ObjectPattern=s,t.ArrayPattern=u},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=e.node,n=r.body;r.async=!1;var i=f.functionExpression(null,[],f.blockStatement(n.body),!0);i.shadow=!0,n.body=[f.returnStatement(f.callExpression(f.callExpression(t,[i]),[]))],r.generator=!1}function s(e,t){var r=e.node,n=e.isFunctionDeclaration(),i=r.id,s=h;e.isArrowFunctionExpression()?e.arrowFunctionToShadowed():!n&&i&&(s=m),r.async=!1,r.generator=!0,r.id=null,n&&(r.type="FunctionExpression");var a=f.callExpression(t,[r]),u=s({NAME:i,REF:e.scope.generateUidIdentifier("ref"),FUNCTION:a,PARAMS:r.params.reduce(function(t,r){return t.done=t.done||f.isAssignmentPattern(r)||f.isRestElement(r),t.done||t.params.push(e.scope.generateUidIdentifier("x")),t},{params:[],done:!1}).params}).expression;if(n){var l=f.variableDeclaration("let",[f.variableDeclarator(f.identifier(i.name),f.callExpression(u,[]))]);l._blockHoist=!0,e.replaceWith(l)}else{var c=u.body.body[1].argument;i||(0,o.default)({node:c,parent:e.parent,scope:e.scope}),!c||c.id||r.params.length?e.replaceWith(f.callExpression(u,[])):e.replaceWith(a)}}t.__esModule=!0,t.default=function(e,t,r){r||(r={wrapAsync:t},t=null),e.traverse(y,{file:t,wrapAwait:r.wrapAwait}),e.isClassMethod()||e.isObjectMethod()?i(e,r.wrapAsync):s(e,r.wrapAsync)};var a=r(40),o=n(a),u=r(4),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=r(320),d=n(p),h=(0,l.default)("\n  (() => {\n    var REF = FUNCTION;\n    return function NAME(PARAMS) {\n      return REF.apply(this, arguments);\n    };\n  })\n"),m=(0,l.default)("\n  (() => {\n    var REF = FUNCTION;\n    function NAME(PARAMS) {\n      return REF.apply(this, arguments);\n    }\n    return NAME;\n  })\n"),y={Function:function(e){if(e.isArrowFunctionExpression()&&!e.node.async)return void e.arrowFunctionToShadowed();e.skip()},AwaitExpression:function(e,t){var r=e.node,n=t.wrapAwait;r.type="YieldExpression",n&&(r.argument=f.callExpression(n,[r.argument]))},ForAwaitStatement:function(e,t){var r=t.file,n=t.wrapAwait,i=e.node,s=(0,d.default)(e,{getAsyncIterator:r.addHelper("asyncIterator"),wrapAwait:n}),a=s.declar,o=s.loop,u=o.body;e.ensureBlock(),a&&u.body.push(a),u.body=u.body.concat(i.body.body),f.inherits(o,i),f.inherits(o.body,i.body),s.replaceParent?(e.parentPath.replaceWithMultiple(s.node),e.remove()):e.replaceWithMultiple(s.node)}};e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("decorators")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("flow")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("jsx")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("trailingFunctionCommas")}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67),visitor:{Function:function(e,t){e.node.async&&!e.node.generator&&(0,i.default)(e,t.file,{wrapAsync:t.addHelper("asyncToGenerator")})}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return c.isIdentifier(e)?e.name:e.value.toString()}t.__esModule=!0;var s=r(2),a=n(s),o=r(9),u=n(o);t.default=function(){return{visitor:{ObjectExpression:function(e){for(var t=e.node,r=t.properties.filter(function(e){return!c.isSpreadProperty(e)&&!e.computed}),n=(0,u.default)(null),s=(0,u.default)(null),o=(0,u.default)(null),l=r,f=Array.isArray(l),p=0,l=f?l:(0,a.default)(l);;){var d;if(f){if(p>=l.length)break;d=l[p++]}else{if(p=l.next(),p.done)break;d=p.value}var h=d,m=i(h.key),y=!1;switch(h.kind){case"get":(n[m]||s[m])&&(y=!0),s[m]=!0;break;case"set":(n[m]||o[m])&&(y=!0),o[m]=!0;break;default:(n[m]||s[m]||o[m])&&(y=!0),n[m]=!0}y&&(h.computed=!0,h.key=c.stringLiteral(m))}}}}};var l=r(1),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(l);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i);t.default=function(e){function t(e){if(!e.isCallExpression())return!1;if(!e.get("callee").isIdentifier({name:"require"}))return!1;if(e.scope.getBinding("require"))return!1;var t=e.get("arguments");return 1===t.length&&!!t[0].isStringLiteral()}var n=e.types,i={ReferencedIdentifier:function(e){var t=e.node,r=e.scope;"exports"!==t.name||r.getBinding("exports")||(this.hasExports=!0),"module"!==t.name||r.getBinding("module")||(this.hasModule=!0)},CallExpression:function(e){t(e)&&(this.bareSources.push(e.node.arguments[0]),e.remove())},VariableDeclarator:function(e){var r=e.get("id");if(r.isIdentifier()){var n=e.get("init");if(t(n)){var i=n.node.arguments[0];this.sourceNames[i.value]=!0,this.sources.push([r.node,i]),e.remove()}}}};return{inherits:r(77),pre:function(){this.sources=[],this.sourceNames=(0,s.default)(null),this.bareSources=[],this.hasExports=!1,this.hasModule=!1},visitor:{Program:{exit:function(e){var t=this;if(!this.ran){this.ran=!0,e.traverse(i,this);var r=this.sources.map(function(e){return e[0]}),s=this.sources.map(function(e){return e[1]});s=s.concat(this.bareSources.filter(function(e){return!t.sourceNames[e.value]}));var a=this.getModuleName();a&&(a=n.stringLiteral(a)),this.hasExports&&(s.unshift(n.stringLiteral("exports")),r.unshift(n.identifier("exports"))),this.hasModule&&(s.unshift(n.stringLiteral("module")),r.unshift(n.identifier("module")));var o=e.node,c=l({PARAMS:r,BODY:o.body});c.expression.body.directives=o.directives,o.directives=[],o.body=[u({MODULE_NAME:a,SOURCES:s,FACTORY:c})]}}}}}};var a=r(4),o=n(a),u=(0,o.default)("\n  define(MODULE_NAME, [SOURCES], FACTORY);\n"),l=(0,o.default)("\n  (function (PARAMS) {\n    BODY;\n  })\n");e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{inherits:r(199),visitor:(0,i.default)({operator:"**",build:function(e,r){return t.callExpression(t.memberExpression(t.identifier("Math"),t.identifier("pow")),[e,r])}})}};var n=r(316),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";e.exports={default:r(406),__esModule:!0}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r){for(var n=I.scope.get(e.node)||[],i=n,s=Array.isArray(i),a=0,i=s?i:(0,y.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;if(u.parent===t&&u.path===e)return u}n.push(r),I.scope.has(e.node)||I.scope.set(e.node,n)}function a(e,t){if(R.isModuleDeclaration(e))if(e.source)a(e.source,t);else if(e.specifiers&&e.specifiers.length)for(var r=e.specifiers,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var o=s;a(o,t)}else e.declaration&&a(e.declaration,t);else if(R.isModuleSpecifier(e))a(e.local,t);else if(R.isMemberExpression(e))a(e.object,t),a(e.property,t);else if(R.isIdentifier(e))t.push(e.name);else if(R.isLiteral(e))t.push(e.value);else if(R.isCallExpression(e))a(e.callee,t);else if(R.isObjectExpression(e)||R.isObjectPattern(e))for(var u=e.properties,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;a(p.key||p.argument,t)}}t.__esModule=!0;var o=r(14),u=i(o),l=r(9),c=i(l),f=r(133),p=i(f),d=r(3),h=i(d),m=r(2),y=i(m),v=r(111),g=i(v),b=r(278),E=i(b),x=r(383),A=i(x),S=r(7),_=i(S),D=r(273),C=i(D),w=r(20),P=n(w),k=r(225),F=i(k),T=r(463),O=i(T),B=r(1),R=n(B),I=r(88),M=0,N={For:function(e){for(var t=R.FOR_INIT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=e.get(s);a.isVar()&&e.scope.getFunctionParent().registerBinding("var",a)}},Declaration:function(e){e.isBlockScoped()||e.isExportDeclaration()&&e.get("declaration").isDeclaration()||e.scope.getFunctionParent().registerDeclaration(e)},ReferencedIdentifier:function(e,t){t.references.push(e)},ForXStatement:function(e,t){var r=e.get("left");(r.isPattern()||r.isIdentifier())&&t.constantViolations.push(r)},ExportDeclaration:{exit:function(e){var t=e.node,r=e.scope,n=t.declaration;if(R.isClassDeclaration(n)||R.isFunctionDeclaration(n)){var i=n.id;if(!i)return;var s=r.getBinding(i.name);s&&s.reference(e)}else if(R.isVariableDeclaration(n))for(var a=n.declarations,o=Array.isArray(a),u=0,a=o?a:(0,y.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l,f=R.getBindingIdentifiers(c);for(var p in f){var d=r.getBinding(p);d&&d.reference(e)}}}},LabeledStatement:function(e){e.scope.getProgramParent().addGlobal(e.node),e.scope.getBlockParent().registerDeclaration(e)},AssignmentExpression:function(e,t){t.assignments.push(e)},UpdateExpression:function(e,t){t.constantViolations.push(e.get("argument"))},UnaryExpression:function(e,t){"delete"===e.node.operator&&t.constantViolations.push(e.get("argument"))},BlockScoped:function(e){var t=e.scope;t.path===e&&(t=t.parent),t.getBlockParent().registerDeclaration(e)},ClassDeclaration:function(e){var t=e.node.id;if(t){var r=t.name;e.scope.bindings[r]=e.scope.getBinding(r)}},Block:function(e){for(var t=e.get("body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;a.isFunctionDeclaration()&&e.scope.getBlockParent().registerDeclaration(a)}}},L=0,j=function(){function e(t,r){if((0,h.default)(this,e),r&&r.block===t.node)return r;var n=s(t,r,this);if(n)return n;this.uid=L++,this.parent=r,this.hub=t.hub,this.parentBlock=t.parent,this.block=t.node,this.path=t,this.labels=new p.default}return e.prototype.traverse=function(e,t,r){(0,_.default)(e,t,this,r,this.path)},e.prototype.generateDeclaredUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp",t=this.generateUidIdentifier(e);return this.push({id:t}),t},e.prototype.generateUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";return R.identifier(this.generateUid(e))},e.prototype.generateUid=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";e=R.toIdentifier(e).replace(/^_+/,"").replace(/[0-9]+$/g,"");var t=void 0,r=0;do{t=this._generateUid(e,r),r++}while(this.hasLabel(t)||this.hasBinding(t)||this.hasGlobal(t)||this.hasReference(t));var n=this.getProgramParent();return n.references[t]=!0,n.uids[t]=!0,t},e.prototype._generateUid=function(e,t){var r=e;return t>1&&(r+=t),"_"+r},e.prototype.generateUidIdentifierBasedOnNode=function(e,t){var r=e;R.isAssignmentExpression(e)?r=e.left:R.isVariableDeclarator(e)?r=e.id:(R.isObjectProperty(r)||R.isObjectMethod(r))&&(r=r.key);var n=[];a(r,n);var i=n.join("$");return i=i.replace(/^_/,"")||t||"ref",this.generateUidIdentifier(i.slice(0,20))},e.prototype.isStatic=function(e){if(R.isThisExpression(e)||R.isSuper(e))return!0;if(R.isIdentifier(e)){var t=this.getBinding(e.name);return t?t.constant:this.hasBinding(e.name)}return!1},e.prototype.maybeGenerateMemoised=function(e,t){if(this.isStatic(e))return null;var r=this.generateUidIdentifierBasedOnNode(e);return t||this.push({id:r}),r},e.prototype.checkBlockScopedCollisions=function(e,t,r,n){if("param"!==t&&("hoisted"!==t||"let"!==e.kind)){if("let"===t||"let"===e.kind||"const"===e.kind||"module"===e.kind||"param"===e.kind&&("let"===t||"const"===t))throw this.hub.file.buildCodeFrameError(n,P.get("scopeDuplicateDeclaration",r),TypeError)}},e.prototype.rename=function(e,t,r){var n=this.getBinding(e);if(n)return t=t||this.generateUidIdentifier(e).name,new A.default(n,e,t).rename(r)},e.prototype._renameFromMap=function(e,t,r,n){e[t]&&(e[r]=n,e[t]=null)},e.prototype.dump=function(){var e=(0,E.default)("-",60);console.log(e);var t=this;do{console.log("#",t.block.type);for(var r in t.bindings){var n=t.bindings[r];console.log(" -",r,{constant:n.constant,references:n.references,violations:n.constantViolations.length,kind:n.kind})}}while(t=t.parent);console.log(e)},e.prototype.toArray=function(e,t){var r=this.hub.file;if(R.isIdentifier(e)){var n=this.getBinding(e.name);if(n&&n.constant&&n.path.isGenericType("Array"))return e}if(R.isArrayExpression(e))return e;if(R.isIdentifier(e,{name:"arguments"}))return R.callExpression(R.memberExpression(R.memberExpression(R.memberExpression(R.identifier("Array"),R.identifier("prototype")),R.identifier("slice")),R.identifier("call")),[e]);var i="toArray",s=[e];return!0===t?i="toConsumableArray":t&&(s.push(R.numericLiteral(t)),i="slicedToArray"),R.callExpression(r.addHelper(i),s)},e.prototype.hasLabel=function(e){return!!this.getLabel(e)},e.prototype.getLabel=function(e){return this.labels.get(e)},e.prototype.registerLabel=function(e){this.labels.set(e.node.label.name,e)},e.prototype.registerDeclaration=function(e){if(e.isLabeledStatement())this.registerLabel(e);else if(e.isFunctionDeclaration())this.registerBinding("hoisted",e.get("id"),e);else if(e.isVariableDeclaration())for(var t=e.get("declarations"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;this.registerBinding(e.node.kind,a)}else if(e.isClassDeclaration())this.registerBinding("let",e);else if(e.isImportDeclaration())for(var o=e.get("specifiers"),u=o,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;this.registerBinding("module",p)}else if(e.isExportDeclaration()){var d=e.get("declaration");(d.isClassDeclaration()||d.isFunctionDeclaration()||d.isVariableDeclaration())&&this.registerDeclaration(d)}else this.registerBinding("unknown",e)},e.prototype.buildUndefinedNode=function(){return this.hasBinding("undefined")?R.unaryExpression("void",R.numericLiteral(0),!0):R.identifier("undefined")},e.prototype.registerConstantViolation=function(e){var t=e.getBindingIdentifiers();for(var r in t){var n=this.getBinding(r);n&&n.reassign(e)}},e.prototype.registerBinding=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)throw new ReferenceError("no `kind`");if(t.isVariableDeclaration())for(var n=t.get("declarations"),i=n,s=Array.isArray(i),a=0,i=s?i:(0,y.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;this.registerBinding(e,u)}else{var l=this.getProgramParent(),c=t.getBindingIdentifiers(!0);for(var f in c)for(var p=c[f],d=Array.isArray(p),h=0,p=d?p:(0,y.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var v=m,g=this.getOwnBinding(f);if(g){if(g.identifier===v)continue;this.checkBlockScopedCollisions(g,e,f,v)}g&&g.path.isFlow()&&(g=null),l.references[f]=!0,this.bindings[f]=new F.default({identifier:v,existing:g,scope:this,path:r,kind:e})}}},e.prototype.addGlobal=function(e){this.globals[e.name]=e},e.prototype.hasUid=function(e){var t=this;do{if(t.uids[e])return!0}while(t=t.parent);return!1},e.prototype.hasGlobal=function(e){var t=this;do{if(t.globals[e])return!0}while(t=t.parent);return!1},e.prototype.hasReference=function(e){var t=this;do{if(t.references[e])return!0}while(t=t.parent);return!1},e.prototype.isPure=function(e,t){if(R.isIdentifier(e)){var r=this.getBinding(e.name);return!!r&&(!t||r.constant)}if(R.isClass(e))return!(e.superClass&&!this.isPure(e.superClass,t))&&this.isPure(e.body,t);if(R.isClassBody(e)){for(var n=e.body,i=Array.isArray(n),s=0,n=i?n:(0,y.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if(!this.isPure(o,t))return!1}return!0}if(R.isBinary(e))return this.isPure(e.left,t)&&this.isPure(e.right,t);if(R.isArrayExpression(e)){for(var u=e.elements,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;if(!this.isPure(p,t))return!1}return!0}if(R.isObjectExpression(e)){for(var d=e.properties,h=Array.isArray(d),m=0,d=h?d:(0,y.default)(d);;){var v;if(h){if(m>=d.length)break;v=d[m++]}else{if(m=d.next(),m.done)break;v=m.value}var g=v;if(!this.isPure(g,t))return!1}return!0}return R.isClassMethod(e)?!(e.computed&&!this.isPure(e.key,t))&&("get"!==e.kind&&"set"!==e.kind):R.isClassProperty(e)||R.isObjectProperty(e)?!(e.computed&&!this.isPure(e.key,t))&&this.isPure(e.value,t):R.isUnaryExpression(e)?this.isPure(e.argument,t):R.isPureish(e)},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e){var t=this;do{var r=t.data[e];if(null!=r)return r}while(t=t.parent)},e.prototype.removeData=function(e){var t=this;do{null!=t.data[e]&&(t.data[e]=null)}while(t=t.parent)},e.prototype.init=function(){this.references||this.crawl()},e.prototype.crawl=function(){M++,this._crawl(),M--},e.prototype._crawl=function(){var e=this.path;if(this.references=(0,c.default)(null),this.bindings=(0,c.default)(null),this.globals=(0,c.default)(null),this.uids=(0,c.default)(null),this.data=(0,c.default)(null),e.isLoop())for(var t=R.FOR_INIT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=e.get(s);a.isBlockScoped()&&this.registerBinding(a.node.kind,a)}if(e.isFunctionExpression()&&e.has("id")&&(e.get("id").node[R.NOT_LOCAL_BINDING]||this.registerBinding("local",e.get("id"),e)),e.isClassExpression()&&e.has("id")&&(e.get("id").node[R.NOT_LOCAL_BINDING]||this.registerBinding("local",e)),e.isFunction())for(var o=e.get("params"),u=o,l=Array.isArray(u),f=0,u=l?u:(0,y.default)(u);;){var p;if(l){if(f>=u.length)break;p=u[f++]}else{if(f=u.next(),f.done)break;p=f.value}var d=p;this.registerBinding("param",d)}if(e.isCatchClause()&&this.registerBinding("let",e),!this.getProgramParent().crawling){var h={references:[],constantViolations:[],assignments:[]};this.crawling=!0,e.traverse(N,h),this.crawling=!1;for(var m=h.assignments,v=Array.isArray(m),g=0,m=v?m:(0,y.default)(m);;){var b;if(v){if(g>=m.length)break;b=m[g++]}else{if(g=m.next(),g.done)break;b=g.value}var E=b,x=E.getBindingIdentifiers(),A=void 0;for(var S in x)E.scope.getBinding(S)||(A=A||E.scope.getProgramParent(),A.addGlobal(x[S]));E.scope.registerConstantViolation(E)}for(var _=h.references,D=Array.isArray(_),C=0,_=D?_:(0,y.default)(_);;){var w;if(D){if(C>=_.length)break;w=_[C++]}else{if(C=_.next(),C.done)break;w=C.value}var P=w,k=P.scope.getBinding(P.node.name);k?k.reference(P):P.scope.getProgramParent().addGlobal(P.node)}for(var F=h.constantViolations,T=Array.isArray(F),O=0,F=T?F:(0,y.default)(F);;){var B;if(T){if(O>=F.length)break;B=F[O++]}else{if(O=F.next(),O.done)break;B=O.value}var I=B;I.scope.registerConstantViolation(I)}}},e.prototype.push=function(e){var t=this.path;t.isBlockStatement()||t.isProgram()||(t=this.getBlockParent().path),t.isSwitchStatement()&&(t=this.getFunctionParent().path),(t.isLoop()||t.isCatchClause()||t.isFunction())&&(R.ensureBlock(t.node),t=t.get("body"));var r=e.unique,n=e.kind||"var",i=null==e._blockHoist?2:e._blockHoist,s="declaration:"+n+":"+i,a=!r&&t.getData(s);if(!a){var o=R.variableDeclaration(n,[]);o._generated=!0,o._blockHoist=i;a=t.unshiftContainer("body",[o])[0],r||t.setData(s,a)}var u=R.variableDeclarator(e.id,e.init);a.node.declarations.push(u),this.registerBinding(n,a.get("declarations").pop())},e.prototype.getProgramParent=function(){var e=this;do{if(e.path.isProgram())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getFunctionParent=function(){var e=this;do{if(e.path.isFunctionParent())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getBlockParent=function(){var e=this;do{if(e.path.isBlockParent())return e}while(e=e.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},e.prototype.getAllBindings=function(){var e=(0,c.default)(null),t=this;do{(0,C.default)(e,t.bindings),t=t.parent}while(t);return e},e.prototype.getAllBindingsOfKind=function(){for(var e=(0,c.default)(null),t=arguments,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=this;do{for(var o in a.bindings){var u=a.bindings[o];u.kind===s&&(e[o]=u)}a=a.parent}while(a)}return e},e.prototype.bindingIdentifierEquals=function(e,t){
return this.getBindingIdentifier(e)===t},e.prototype.warnOnFlowBinding=function(e){return 0===M&&e&&e.path.isFlow()&&console.warn("\n        You or one of the Babel plugins you are using are using Flow declarations as bindings.\n        Support for this will be removed in version 7. To find out the caller, grep for this\n        message and change it to a `console.trace()`.\n      "),e},e.prototype.getBinding=function(e){var t=this;do{var r=t.getOwnBinding(e);if(r)return this.warnOnFlowBinding(r)}while(t=t.parent)},e.prototype.getOwnBinding=function(e){return this.warnOnFlowBinding(this.bindings[e])},e.prototype.getBindingIdentifier=function(e){var t=this.getBinding(e);return t&&t.identifier},e.prototype.getOwnBindingIdentifier=function(e){var t=this.bindings[e];return t&&t.identifier},e.prototype.hasOwnBinding=function(e){return!!this.getOwnBinding(e)},e.prototype.hasBinding=function(t,r){return!!t&&(!!this.hasOwnBinding(t)||(!!this.parentHasBinding(t,r)||(!!this.hasUid(t)||(!(r||!(0,g.default)(e.globals,t))||!(r||!(0,g.default)(e.contextVariables,t))))))},e.prototype.parentHasBinding=function(e,t){return this.parent&&this.parent.hasBinding(e,t)},e.prototype.moveBindingTo=function(e,t){var r=this.getBinding(e);r&&(r.scope.removeOwnBinding(e),r.scope=t,t.bindings[e]=r)},e.prototype.removeOwnBinding=function(e){delete this.bindings[e]},e.prototype.removeBinding=function(e){var t=this.getBinding(e);t&&t.scope.removeOwnBinding(e);var r=this;do{r.uids[e]&&(r.uids[e]=!1)}while(r=r.parent)},e}();j.globals=(0,u.default)(O.default.builtin),j.contextVariables=["arguments","undefined","Infinity","NaN"],t.default=j,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.NOT_LOCAL_BINDING=t.BLOCK_SCOPED_SYMBOL=t.INHERIT_KEYS=t.UNARY_OPERATORS=t.STRING_UNARY_OPERATORS=t.NUMBER_UNARY_OPERATORS=t.BOOLEAN_UNARY_OPERATORS=t.BINARY_OPERATORS=t.NUMBER_BINARY_OPERATORS=t.BOOLEAN_BINARY_OPERATORS=t.COMPARISON_BINARY_OPERATORS=t.EQUALITY_BINARY_OPERATORS=t.BOOLEAN_NUMBER_BINARY_OPERATORS=t.UPDATE_OPERATORS=t.LOGICAL_OPERATORS=t.COMMENT_KEYS=t.FOR_INIT_KEYS=t.FLATTENABLE_KEYS=t.STATEMENT_OR_BLOCK_KEYS=void 0;var n=r(362),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=(t.STATEMENT_OR_BLOCK_KEYS=["consequent","body","alternate"],t.FLATTENABLE_KEYS=["body","expressions"],t.FOR_INIT_KEYS=["left","init"],t.COMMENT_KEYS=["leadingComments","trailingComments","innerComments"],t.LOGICAL_OPERATORS=["||","&&"],t.UPDATE_OPERATORS=["++","--"],t.BOOLEAN_NUMBER_BINARY_OPERATORS=[">","<",">=","<="]),a=t.EQUALITY_BINARY_OPERATORS=["==","===","!=","!=="],o=t.COMPARISON_BINARY_OPERATORS=[].concat(a,["in","instanceof"]),u=t.BOOLEAN_BINARY_OPERATORS=[].concat(o,s),l=t.NUMBER_BINARY_OPERATORS=["-","/","%","*","**","&","|",">>",">>>","<<","^"],c=(t.BINARY_OPERATORS=["+"].concat(l,u),t.BOOLEAN_UNARY_OPERATORS=["delete","!"]),f=t.NUMBER_UNARY_OPERATORS=["+","-","++","--","~"],p=t.STRING_UNARY_OPERATORS=["typeof"];t.UNARY_OPERATORS=["void"].concat(c,f,p),t.INHERIT_KEYS={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]},t.BLOCK_SCOPED_SYMBOL=(0,i.default)("var used to be block scoped"),t.NOT_LOCAL_BINDING=(0,i.default)("should not be considered a local binding")},function(e,t){"use strict";e.exports=function(e,t,r,n){if(!(e instanceof t)||void 0!==n&&n in e)throw TypeError(r+": incorrect invocation!");return e}},function(e,t,r){"use strict";var n=r(43),i=r(142),s=r(94),a=r(153),o=r(422);e.exports=function(e,t){var r=1==e,u=2==e,l=3==e,c=4==e,f=6==e,p=5==e||f,d=t||o;return function(t,o,h){for(var m,y,v=s(t),g=i(v),b=n(o,h,3),E=a(g.length),x=0,A=r?d(t,E):u?d(t,0):void 0;E>x;x++)if((p||x in g)&&(m=g[x],y=b(m,x,v),e))if(r)A[x]=y;else if(y)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:A.push(m)}else if(c)return!1;return f?-1:l||c?c:A}}},function(e,t){"use strict";var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,r){"use strict";var n=r(15),i=r(12),s=r(57),a=r(27),o=r(29),u=r(146),l=r(55),c=r(136),f=r(16),p=r(93),d=r(23).f,h=r(137)(0),m=r(22);e.exports=function(e,t,r,y,v,g){var b=n[e],E=b,x=v?"set":"add",A=E&&E.prototype,S={};return m&&"function"==typeof E&&(g||A.forEach&&!a(function(){(new E).entries().next()}))?(E=t(function(t,r){c(t,E,e,"_c"),t._c=new b,void 0!=r&&l(r,v,t[x],t)}),h("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in A&&(!g||"clear"!=e)&&o(E.prototype,e,function(r,n){if(c(this,E,e),!t&&g&&!f(r))return"get"==e&&void 0;var i=this._c[e](0===r?0:r,n);return t?this:i})}),g||d(E.prototype,"size",{get:function(){return this._c.size}})):(E=y.getConstructor(t,e,v,x),u(E.prototype,r),s.NEED=!0),p(E,e),S[e]=E,i(i.G+i.W+i.F,S),g||y.setStrong(E,e,v),E}},function(e,t){"use strict";e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t){"use strict";e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,r){"use strict";var n=r(138);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t,r){"use strict";var n=r(144),i=r(12),s=r(147),a=r(29),o=r(28),u=r(56),l=r(429),c=r(93),f=r(433),p=r(13)("iterator"),d=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,r,m,y,v,g){l(r,t,m);var b,E,x,A=function(e){if(!d&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new r(this,e)}}return function(){return new r(this,e)}},S=t+" Iterator",_="values"==y,D=!1,C=e.prototype,w=C[p]||C["@@iterator"]||y&&C[y],P=w||A(y),k=y?_?A("entries"):P:void 0,F="Array"==t?C.entries||w:w;if(F&&(x=f(F.call(new e)))!==Object.prototype&&x.next&&(c(x,S,!0),n||o(x,p)||a(x,p,h)),_&&w&&"values"!==w.name&&(D=!0,P=function(){return w.call(this)}),n&&!g||!d&&!D&&C[p]||a(C,p,P),u[t]=P,u[S]=h,y)if(b={values:_?P:A("values"),keys:v?P:A("keys"),entries:k},g)for(E in b)E in C||s(C,E,b[E]);else i(i.P+i.F*(d||D),t,b);return b}},function(e,t){"use strict";e.exports=!0},function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,r){"use strict";var n=r(29);e.exports=function(e,t,r){for(var i in t)r&&e[i]?e[i]=t[i]:n(e,i,t[i]);return e}},function(e,t,r){"use strict";e.exports=r(29)},function(e,t,r){"use strict";var n=r(12),i=r(227),s=r(43),a=r(55);e.exports=function(e){n(n.S,e,{from:function(e){var t,r,n,o,u=arguments[1];return i(this),t=void 0!==u,t&&i(u),void 0==e?new this:(r=[],t?(n=0,o=s(u,arguments[2],2),a(e,!1,function(e){r.push(o(e,n++))})):a(e,!1,r.push,r),new this(r))}})}},function(e,t,r){"use strict";var n=r(12);e.exports=function(e){n(n.S,e,{of:function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,r){"use strict";var n=r(151)("keys"),i=r(95);e.exports=function(e){return n[e]||(n[e]=i(e))}},function(e,t,r){"use strict";var n=r(15),i=n["__core-js_shared__"]||(n["__core-js_shared__"]={});e.exports=function(e){return i[e]||(i[e]={})}},function(e,t){"use strict";var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t,r){"use strict";var n=r(152),i=Math.min;e.exports=function(e){return e>0?i(n(e),9007199254740991):0}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if("function"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(144),a=r(156),o=r(23).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:a.f(e)})}},function(e,t,r){"use strict";t.f=r(13)},function(e,t,r){"use strict";var n=r(437)(!0);r(143)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(15),s=r(28),a=r(22),o=r(12),u=r(147),l=r(57).KEY,c=r(27),f=r(151),p=r(93),d=r(95),h=r(13),m=r(156),y=r(155),v=r(430),g=r(425),b=r(232),E=r(21),x=r(37),A=r(154),S=r(92),_=r(90),D=r(432),C=r(235),w=r(23),P=r(44),k=C.f,F=w.f,T=D.f,O=i.Symbol,B=i.JSON,R=B&&B.stringify,I=h("_hidden"),M=h("toPrimitive"),N={}.propertyIsEnumerable,L=f("symbol-registry"),j=f("symbols"),U=f("op-symbols"),V=Object.prototype,G="function"==typeof O,W=i.QObject,Y=!W||!W.prototype||!W.prototype.findChild,q=a&&c(function(){return 7!=_(F({},"a",{get:function(){return F(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=k(V,t);n&&delete V[t],F(e,t,r),n&&e!==V&&F(V,t,n)}:F,K=function(e){var t=j[e]=_(O.prototype);return t._k=e,t},H=G&&"symbol"==n(O.iterator)?function(e){return"symbol"==(void 0===e?"undefined":n(e))}:function(e){return e instanceof O},J=function(e,t,r){return e===V&&J(U,t,r),E(e),t=A(t,!0),E(r),s(j,t)?(r.enumerable?(s(e,I)&&e[I][t]&&(e[I][t]=!1),r=_(r,{enumerable:S(0,!1)})):(s(e,I)||F(e,I,S(1,{})),e[I][t]=!0),q(e,t,r)):F(e,t,r)},X=function(e,t){E(e);for(var r,n=g(t=x(t)),i=0,s=n.length;s>i;)J(e,r=n[i++],t[r]);return e},z=function(e,t){return void 0===t?_(e):X(_(e),t)},$=function(e){var t=N.call(this,e=A(e,!0));return!(this===V&&s(j,e)&&!s(U,e))&&(!(t||!s(this,e)||!s(j,e)||s(this,I)&&this[I][e])||t)},Q=function(e,t){if(e=x(e),t=A(t,!0),e!==V||!s(j,t)||s(U,t)){var r=k(e,t);return!r||!s(j,t)||s(e,I)&&e[I][t]||(r.enumerable=!0),r}},Z=function(e){for(var t,r=T(x(e)),n=[],i=0;r.length>i;)s(j,t=r[i++])||t==I||t==l||n.push(t);return n},ee=function(e){for(var t,r=e===V,n=T(r?U:x(e)),i=[],a=0;n.length>a;)!s(j,t=n[a++])||r&&!s(V,t)||i.push(j[t]);return i};G||(O=function(){if(this instanceof O)throw TypeError("Symbol is not a constructor!");var e=d(arguments.length>0?arguments[0]:void 0),t=function t(r){this===V&&t.call(U,r),s(this,I)&&s(this[I],e)&&(this[I][e]=!1),q(this,e,S(1,r))};return a&&Y&&q(V,e,{configurable:!0,set:t}),K(e)},u(O.prototype,"toString",function(){return this._k}),C.f=Q,w.f=J,r(236).f=D.f=Z,r(91).f=$,r(145).f=ee,a&&!r(144)&&u(V,"propertyIsEnumerable",$,!0),m.f=function(e){return K(h(e))}),o(o.G+o.W+o.F*!G,{Symbol:O});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;te.length>re;)h(te[re++]);for(var ne=P(h.store),ie=0;ne.length>ie;)y(ne[ie++]);o(o.S+o.F*!G,"Symbol",{for:function(e){return s(L,e+="")?L[e]:L[e]=O(e)},keyFor:function(e){if(H(e))return v(L,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){Y=!0},useSimple:function(){Y=!1}}),o(o.S+o.F*!G,"Object",{create:z,defineProperty:J,defineProperties:X,getOwnPropertyDescriptor:Q,getOwnPropertyNames:Z,getOwnPropertySymbols:ee}),B&&o(o.S+o.F*(!G||c(function(){var e=O();return"[null]"!=R([e])||"{}"!=R({a:e})||"{}"!=R(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!H(e)){for(var t,r,n=[e],i=1;arguments.length>i;)n.push(arguments[i++]);return t=n[1],"function"==typeof t&&(r=t),!r&&b(t)||(t=function(e,t){if(r&&(t=r.call(this,e,t)),!H(t))return t}),n[1]=t,R.apply(B,n)}}}),O.prototype[M]||r(29)(O.prototype,M,O.prototype.valueOf),p(O,"Symbol"),p(Math,"Math",!0),p(i.JSON,"JSON",!0)},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Map");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(551),s=r(552),a=r(553),o=r(554),u=r(555);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t){"use strict";function r(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=e[t];o.call(e,t)&&s(n,r)&&(void 0!==r||t in e)||i(e,t,r)}var i=r(163),s=r(46),a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var i=r(259);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,T,O,B){var R,I=t&S,M=t&_,N=t&D;if(r&&(R=O?r(e,T,O,B):r(e)),void 0!==R)return R;if(!x(e))return e;var L=b(e);if(L){if(R=y(e),!I)return c(e,R)}else{var j=m(e),U=j==w||j==P;if(E(e))return l(e,I);if(j==k||j==C||U&&!O){if(R=M||U?{}:g(e),!I)return M?p(e,u(R,e)):f(e,o(R,e))}else{if(!F[j])return O?e:{};R=v(e,j,n,I)}}B||(B=new i);var V=B.get(e);if(V)return V;B.set(e,R);var G=N?M?h:d:M?keysIn:A,W=L?void 0:G(e);return s(W||e,function(i,s){W&&(s=i,i=e[s]),a(R,s,n(i,t,r,s,e,B))}),R}var i=r(99),s=r(478),a=r(162),o=r(483),u=r(484),l=r(256),c=r(168),f=r(523),p=r(524),d=r(262),h=r(532),m=r(264),y=r(541),v=r(542),g=r(266),b=r(6),E=r(113),x=r(18),A=r(32),S=1,_=2,D=4,C="[object Arguments]",w="[object Function]",P="[object GeneratorFunction]",k="[object Object]",F={};F[C]=F["[object Array]"]=F["[object ArrayBuffer]"]=F["[object DataView]"]=F["[object Boolean]"]=F["[object Date]"]=F["[object Float32Array]"]=F["[object Float64Array]"]=F["[object Int8Array]"]=F["[object Int16Array]"]=F["[object Int32Array]"]=F["[object Map]"]=F["[object Number]"]=F[k]=F["[object RegExp]"]=F["[object Set]"]=F["[object String]"]=F["[object Symbol]"]=F["[object Uint8Array]"]=F["[object Uint8ClampedArray]"]=F["[object Uint16Array]"]=F["[object Uint32Array]"]=!0,F["[object Error]"]=F[w]=F["[object WeakMap]"]=!1,e.exports=n},function(e,t){"use strict";function r(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){return t===t?a(e,t,r):i(e,s,r)}var i=r(165),s=r(496),a=r(570);e.exports=n},function(e,t,r){"use strict";function n(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}var i=r(243);e.exports=n},function(e,t){"use strict";function r(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}e.exports=r},function(e,t,r){"use strict";var n=r(271),i=n(Object.getPrototypeOf,Object);e.exports=i},function(e,t,r){"use strict";var n=r(479),i=r(279),s=Object.prototype,a=s.propertyIsEnumerable,o=Object.getOwnPropertySymbols,u=o?function(e){return null==e?[]:(e=Object(e),n(o(e),function(t){return a.call(e,t)}))}:i;e.exports=u},function(e,t){"use strict";function r(e,t){return!!(t=null==t?n:t)&&("number"==typeof e||i.test(e))&&e>-1&&e%1==0&&e<t}var n=9007199254740991,i=/^(?:0|[1-9]\d*)$/;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){if(!u(r))return!1;var n=void 0===t?"undefined":i(t);return!!("number"==n?a(r)&&o(t,r.length):"string"==n&&t in r)&&s(r[t],e)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(46),a=r(24),o=r(171),u=r(18);e.exports=n},function(e,t,r){"use strict";function n(e,t){if(s(e))return!1;var r=void 0===e?"undefined":i(e);return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!a(e))||(u.test(e)||!o.test(e)||null!=t&&e in Object(t))}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(6),a=r(62),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;e.exports=n},function(e,t,r){"use strict";var n=r(162),i=r(31),s=r(103),a=r(24),o=r(105),u=r(32),l=Object.prototype,c=l.hasOwnProperty,f=s(function(e,t){if(o(t)||a(t))return void i(t,u(t),e);for(var r in t)c.call(t,r)&&n(e,r,t[r])});e.exports=f},function(e,t,r){"use strict";function n(e){if(!s(e))return!1;var t=i(e);return t==o||t==u||t==a||t==l}var i=r(30),s=r(18),a="[object AsyncFunction]",o="[object Function]",u="[object GeneratorFunction]",l="[object Proxy]";e.exports=n},function(e,t){"use strict";function r(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}var n=9007199254740991;e.exports=r},function(e,t,r){"use strict";var n=r(499),i=r(102),s=r(270),a=s&&s.isTypedArray,o=a?i(a):n;e.exports=o},function(e,t,r){function n(e){return r(i(e))}function i(e){return s[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var s={"./index":50,"./index.js":50,"./logger":120,"./logger.js":120,"./metadata":121,"./metadata.js":121,"./options/build-config-chain":51,"./options/build-config-chain.js":51,"./options/config":33,"./options/config.js":33,"./options/index":52,"./options/index.js":52,"./options/option-manager":34,"./options/option-manager.js":34,"./options/parsers":53,"./options/parsers.js":53,"./options/removed":54,"./options/removed.js":54};n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=178},function(e,t,r){function n(e){return r(i(e))}function i(e){return s[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var s={"./build-config-chain":51,"./build-config-chain.js":51,"./config":33,"./config.js":33,"./index":52,"./index.js":52,"./option-manager":34,"./option-manager.js":34,"./parsers":53,"./parsers.js":53,"./removed":54,"./removed.js":54};n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=179},function(e,t){"use strict";e.exports=function(){return/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return{keyword:e.cyan,capitalized:e.yellow,jsx_tag:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold,gutter:e.grey,marker:e.red.bold}}function s(e){var t=e.slice(-2),r=t[0],n=t[1],i=(0,o.matchToToken)(e);if("name"===i.type){if(c.default.keyword.isReservedWordES6(i.value))return"keyword";if(h.test(i.value)&&("<"===n[r-1]||"</"==n.substr(r-2,2)))return"jsx_tag";if(i.value[0]!==i.value[0].toLowerCase())return"capitalized"}return"punctuator"===i.type&&m.test(i.value)?"bracket":i.type}function a(e,t){return t.replace(u.default,function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=s(r),a=e[i];return a?r[0].split(d).map(function(e){return a(e)}).join("\n"):r[0]})}t.__esModule=!0,t.default=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r=Math.max(r,0);var s=n.highlightCode&&p.default.supportsColor||n.forceColor,o=p.default;n.forceColor&&(o=new p.default.constructor({enabled:!0}));var u=function(e,t){return s?e(t):t},l=i(o);s&&(e=a(l,e));var c=n.linesAbove||2,f=n.linesBelow||3,h=e.split(d),m=Math.max(t-(c+1),0),y=Math.min(h.length,t+f);t||r||(m=0,y=h.length);var v=String(y).length,g=h.slice(m,y).map(function(e,n){var i=m+1+n,s=(" "+i).slice(-v),a=" "+s+" | ";if(i===t){var o="";if(r){var c=e.slice(0,r-1).replace(/[^\t]/g," ");o=["\n ",u(l.gutter,a.replace(/\d/g," ")),c,u(l.marker,"^")].join("")}return[u(l.marker,">"),u(l.gutter,a),e,o].join("")}return" "+u(l.gutter,a)+e}).join("\n");return s?o.reset(g):g};var o=r(468),u=n(o),l=r(97),c=n(l),f=r(401),p=n(f),d=/\r\n|[\n\r\u2028\u2029]/,h=/^[a-z][\w-]*$/i,m=/^[()\[\]{}]$/;e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){throw new Error("The ("+e+") Babel 5 plugin is being run with Babel 6.")}function a(e,t,r){"function"==typeof t&&(r=t,t={}),t.filename=e,y.default.readFile(e,function(e,n){var i=void 0;if(!e)try{i=F(n,t)}catch(t){e=t}e?r(e):r(null,i)})}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.filename=e,F(y.default.readFileSync(e,"utf8"),t)}t.__esModule=!0,t.transformFromAst=t.transform=t.analyse=t.Pipeline=t.OptionManager=t.traverse=t.types=t.messages=t.util=t.version=t.resolvePreset=t.resolvePlugin=t.template=t.buildExternalHelpers=t.options=t.File=void 0;var u=r(50);Object.defineProperty(t,"File",{enumerable:!0,get:function(){return i(u).default}});var l=r(33);Object.defineProperty(t,"options",{enumerable:!0,get:function(){return i(l).default}});var c=r(295);Object.defineProperty(t,"buildExternalHelpers",{enumerable:!0,get:function(){return i(c).default}});var f=r(4);Object.defineProperty(t,"template",{enumerable:!0,get:function(){return i(f).default}});var p=r(184);Object.defineProperty(t,"resolvePlugin",{enumerable:!0,get:function(){return i(p).default}});var d=r(185);Object.defineProperty(t,"resolvePreset",{enumerable:!0,get:function(){return i(d).default}});var h=r(628);Object.defineProperty(t,"version",{enumerable:!0,get:function(){return h.version}}),t.Plugin=s,t.transformFile=a,t.transformFileSync=o;var m=r(115),y=i(m),v=r(122),g=n(v),b=r(20),E=n(b),x=r(1),A=n(x),S=r(7),_=i(S),D=r(34),C=i(D),w=r(298),P=i(w);t.util=g,t.messages=E,t.types=A,t.traverse=_.default,t.OptionManager=C.default,t.Pipeline=P.default;var k=new P.default,F=(t.analyse=k.analyse.bind(k),t.transform=k.transform.bind(k));t.transformFromAst=k.transformFromAst.bind(k)},function(e,t,r){"use strict";function n(e,t){return e.reduce(function(e,r){return e||(0,s.default)(r,t)},null)}t.__esModule=!0,t.default=n;var i=r(118),s=function(e){return e&&e.__esModule?e:{default:e}}(i);e.exports=t.default},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,o.default)((0,l.default)(e),t)}t.__esModule=!0,t.default=s;var a=r(183),o=i(a),u=r(291),l=i(u);e.exports=t.default}).call(t,r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,o.default)((0,l.default)(e),t)}t.__esModule=!0,t.default=s;var a=r(183),o=i(a),u=r(292),l=i(u);e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r){var n="  ";if(e&&"string"==typeof e){var i=(0,d.default)(e).indent;i&&" "!==i&&(n=i)}var a={auxiliaryCommentBefore:t.auxiliaryCommentBefore,auxiliaryCommentAfter:t.auxiliaryCommentAfter,shouldPrintComment:t.shouldPrintComment,retainLines:t.retainLines,retainFunctionParens:t.retainFunctionParens,comments:null==t.comments||t.comments,compact:t.compact,minified:t.minified,concise:t.concise,quotes:t.quotes||s(e,r),jsonCompatibleStrings:t.jsonCompatibleStrings,indent:{adjustMultilineComment:!0,style:n,base:0},flowCommaSeparator:t.flowCommaSeparator};return a.minified?(a.compact=!0,a.shouldPrintComment=a.shouldPrintComment||function(){return a.comments}):a.shouldPrintComment=a.shouldPrintComment||function(e){return a.comments||e.indexOf("@license")>=0||e.indexOf("@preserve")>=0},"auto"===a.compact&&(a.compact=e.length>5e5,a.compact&&console.error("[BABEL] "+v.get("codeGeneratorDeopt",t.filename,"500KB"))),a.compact&&(a.indent.adjustMultilineComment=!1),a}function s(e,t){if(!e)return"double";for(var r={single:0,double:0},n=0,i=0;i<t.length;i++){var s=t[i];if("string"===s.type.label){if("'"===e.slice(s.start,s.end)[0]?r.single++:r.double++,++n>=3)break}}return r.single>r.double?"single":"double"}t.__esModule=!0,t.CodeGenerator=void 0;var a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c);t.default=function(e,t,r){return new E(e,t,r).generate()};var p=r(459),d=n(p),h=r(313),m=n(h),y=r(20),v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(y),g=r(312),b=n(g),E=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments[2];(0,o.default)(this,t);var a=r.tokens||[],u=i(s,n,a),c=n.sourceMaps?new m.default(n,s):null,f=(0,l.default)(this,e.call(this,u,c,a));return f.ast=r,f}return(0,f.default)(t,e),t.prototype.generate=function(){return e.prototype.generate.call(this,this.ast)},t}(b.default);t.CodeGenerator=function(){function e(t,r,n){(0,o.default)(this,e),this._generator=new E(t,r,n)}return e.prototype.generate=function(){return this._generator.generate()},e}()},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){function t(e,t){var n=r[e];r[e]=n?function(e,r,i){var s=n(e,r,i);return null==s?t(e,r,i):s}:t}for(var r={},n=(0,m.default)(e),i=Array.isArray(n),s=0,n=i?n:(0,d.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a,u=x.FLIPPED_ALIAS_KEYS[o];if(u)for(var l=u,c=Array.isArray(l),f=0,l=c?l:(0,d.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var h=p;t(h,e[o])}else t(o,e[o])}return r}function a(e,t,r,n){var i=e[t.type];return i?i(t,r,n):null}function o(e){return!!x.isCallExpression(e)||!!x.isMemberExpression(e)&&(o(e.object)||!e.computed&&o(e.property))}function u(e,t,r){if(!e)return 0;x.isExpressionStatement(e)&&(e=e.expression);var n=a(S,e,t);if(!n){var i=a(_,e,t);if(i)for(var s=0;s<i.length&&!(n=u(i[s],e,r));s++);}return n&&n[r]||0}function l(e,t){return u(e,t,"before")}function c(e,t){return u(e,t,"after")}function f(e,t,r){return!!t&&(!(!x.isNewExpression(t)||t.callee!==e||!o(e))||a(A,e,t,r))}t.__esModule=!0;var p=r(2),d=i(p),h=r(14),m=i(h);t.needsWhitespace=u,t.needsWhitespaceBefore=l,t.needsWhitespaceAfter=c,t.needsParens=f;var y=r(311),v=i(y),g=r(310),b=n(g),E=r(1),x=n(E),A=s(b),S=s(v.default.nodes),_=s(v.default.list)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return!v.isClassMethod(e)&&!v.isObjectMethod(e)||"get"!==e.kind&&"set"!==e.kind?"value":e.kind}function s(e,t,r,n,s){var a=v.toKeyAlias(t),o={};if((0,m.default)(e,a)&&(o=e[a]),e[a]=o,o._inherits=o._inherits||[],o._inherits.push(t),o._key=t.key,t.computed&&(o._computed=!0),t.decorators){var u=o.decorators=o.decorators||v.arrayExpression([]);u.elements=u.elements.concat(t.decorators.map(function(e){return e.expression}).reverse())}if(o.value||o.initializer)throw n.buildCodeFrameError(t,"Key conflict with sibling node");var l=void 0,c=void 0;(v.isObjectProperty(t)||v.isObjectMethod(t)||v.isClassMethod(t))&&(l=v.toComputedKey(t,t.key)),v.isObjectProperty(t)||v.isClassProperty(t)?c=t.value:(v.isObjectMethod(t)||v.isClassMethod(t))&&(c=v.functionExpression(null,t.params,t.body,t.generator,t.async),c.returnType=t.returnType);var f=i(t);return r&&"value"===f||(r=f),s&&v.isStringLiteral(l)&&("value"===r||"initializer"===r)&&v.isFunctionExpression(c)&&(c=(0,d.default)({id:l,node:c,scope:s})),c&&(v.inheritsComments(c,t),o[r]=c),o}function a(e){for(var t in e)if(e[t]._computed)return!0;return!1}function o(e){for(var t=v.arrayExpression([]),r=0;r<e.properties.length;r++){var n=e.properties[r],i=n.value;i.properties.unshift(v.objectProperty(v.identifier("key"),v.toComputedKey(n))),t.elements.push(i)}return t}function u(e){var t=v.objectExpression([]);return(0,f.default)(e).forEach(function(r){var n=e[r],i=v.objectExpression([]),s=v.objectProperty(n._key,i,n._computed);(0,f.default)(n).forEach(function(e){var t=n[e];if("_"!==e[0]){var r=t;(v.isClassMethod(t)||v.isClassProperty(t))&&(t=t.value);var s=v.objectProperty(v.identifier(e),t);v.inheritsComments(s,r),v.removeComments(r),i.properties.push(s)}}),t.properties.push(s)}),t}function l(e){return(0,f.default)(e).forEach(function(t){var r=e[t];r.value&&(r.writable=v.booleanLiteral(!0)),r.configurable=v.booleanLiteral(!0),r.enumerable=v.booleanLiteral(!0)}),u(e)}t.__esModule=!0;var c=r(14),f=n(c);t.push=s,t.hasComputed=a,t.toComputedObjectFromClass=o,t.toClassObject=u,t.toDefineObject=l;var p=r(40),d=n(p),h=r(274),m=n(h),y=r(1),v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(y)},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){for(var t=e.params,r=0;r<t.length;r++){var n=t[r];if(i.isAssignmentPattern(n)||i.isRestElement(n))return r}return t.length};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"var";e.traverse(o,{kind:r,emit:t})};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s),o={Scope:function(e,t){"let"===t.kind&&e.skip()},Function:function(e){e.skip()},VariableDeclaration:function(e,t){if(!t.kind||e.node.kind===t.kind){for(var r=[],n=e.get("declarations"),s=void 0,o=n,u=Array.isArray(o),l=0,o=u?o:(0,i.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;s=f.node.id,f.node.init&&r.push(a.expressionStatement(a.assignmentExpression("=",f.node.id,f.node.init)));for(var p in f.getBindingIdentifiers())t.emit(a.identifier(p),p)}e.parentPath.isFor({left:e.node})?e.replaceWith(s):e.replaceWithMultiple(r)}}};e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e,t,r){return 1===r.length&&i.isSpreadElement(r[0])&&i.isIdentifier(r[0].argument,{name:"arguments"})?i.callExpression(i.memberExpression(e,i.identifier("apply")),[t,r[0].argument]):i.callExpression(i.memberExpression(e,i.identifier("call")),[t].concat(r))};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e,t){return u.isRegExpLiteral(e)&&e.flags.indexOf(t)>=0}function i(e,t){var r=e.flags.split("");e.flags.indexOf(t)<0||((0,a.default)(r,t),e.flags=r.join(""))}t.__esModule=!0,t.is=n,t.pullFlag=i;var s=r(277),a=function(e){return e&&e.__esModule?e:{default:e}}(s),o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){return!!v.isSuper(e)&&(!v.isMemberExpression(t,{computed:!1})&&!v.isCallExpression(t,{callee:e}))}function a(e){return v.isMemberExpression(e)&&v.isSuper(e.object)}function o(e,t){var r=t?e:v.memberExpression(e,v.identifier("prototype"));return v.logicalExpression("||",v.memberExpression(r,v.identifier("__proto__")),v.callExpression(v.memberExpression(v.identifier("Object"),v.identifier("getPrototypeOf")),[r]))}t.__esModule=!0;var u=r(3),l=i(u),c=r(10),f=i(c),p=r(191),d=i(p),h=r(20),m=n(h),y=r(1),v=n(y),g=(0,f.default)(),b={Function:function(e){e.inShadow("this")||e.skip()},ReturnStatement:function(e,t){e.inShadow("this")||t.returns.push(e)},ThisExpression:function(e,t){e.node[g]||t.thises.push(e)},enter:function(e,t){var r=t.specHandle;t.isLoose&&(r=t.looseHandle);var n=e.isCallExpression()&&e.get("callee").isSuper(),i=r.call(t,e);i&&(t.hasSuper=!0),n&&t.bareSupers.push(e),!0===i&&e.requeue(),!0!==i&&i&&(Array.isArray(i)?e.replaceWithMultiple(i):e.replaceWith(i))}},E=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,l.default)(this,e),this.forceSuperMemoisation=t.forceSuperMemoisation,this.methodPath=t.methodPath,
this.methodNode=t.methodNode,this.superRef=t.superRef,this.isStatic=t.isStatic,this.hasSuper=!1,this.inClass=r,this.isLoose=t.isLoose,this.scope=this.methodPath.scope,this.file=t.file,this.opts=t,this.bareSupers=[],this.returns=[],this.thises=[]}return e.prototype.getObjectRef=function(){return this.opts.objectRef||this.opts.getObjectRef()},e.prototype.setSuperProperty=function(e,t,r){return v.callExpression(this.file.addHelper("set"),[o(this.getObjectRef(),this.isStatic),r?e:v.stringLiteral(e.name),t,v.thisExpression()])},e.prototype.getSuperProperty=function(e,t){return v.callExpression(this.file.addHelper("get"),[o(this.getObjectRef(),this.isStatic),t?e:v.stringLiteral(e.name),v.thisExpression()])},e.prototype.replace=function(){this.methodPath.traverse(b,this)},e.prototype.getLooseSuperProperty=function(e,t){var r=this.methodNode,n=this.superRef||v.identifier("Function");return t.property===e?void 0:v.isCallExpression(t,{callee:e})?void 0:v.isMemberExpression(t)&&!r.static?v.memberExpression(n,v.identifier("prototype")):n},e.prototype.looseHandle=function(e){var t=e.node;if(e.isSuper())return this.getLooseSuperProperty(t,e.parent);if(e.isCallExpression()){var r=t.callee;if(!v.isMemberExpression(r))return;if(!v.isSuper(r.object))return;return v.appendToMemberExpression(r,v.identifier("call")),t.arguments.unshift(v.thisExpression()),!0}},e.prototype.specHandleAssignmentExpression=function(e,t,r){return"="===r.operator?this.setSuperProperty(r.left.property,r.right,r.left.computed):(e=e||t.scope.generateUidIdentifier("ref"),[v.variableDeclaration("var",[v.variableDeclarator(e,r.left)]),v.expressionStatement(v.assignmentExpression("=",r.left,v.binaryExpression(r.operator[0],e,r.right)))])},e.prototype.specHandle=function(e){var t=void 0,r=void 0,n=void 0,i=e.parent,o=e.node;if(s(o,i))throw e.buildCodeFrameError(m.get("classesIllegalBareSuper"));if(v.isCallExpression(o)){var u=o.callee;if(v.isSuper(u))return;a(u)&&(t=u.property,r=u.computed,n=o.arguments)}else if(v.isMemberExpression(o)&&v.isSuper(o.object))t=o.property,r=o.computed;else{if(v.isUpdateExpression(o)&&a(o.argument)){var l=v.binaryExpression(o.operator[0],o.argument,v.numericLiteral(1));if(o.prefix)return this.specHandleAssignmentExpression(null,e,l);var c=e.scope.generateUidIdentifier("ref");return this.specHandleAssignmentExpression(c,e,l).concat(v.expressionStatement(c))}if(v.isAssignmentExpression(o)&&a(o.left))return this.specHandleAssignmentExpression(null,e,o)}if(t){var f=this.getSuperProperty(t,r);return n?this.optimiseCall(f,n):f}},e.prototype.optimiseCall=function(e,t){var r=v.thisExpression();return r[g]=!0,(0,d.default)(e,r,t)},e}();t.default=E,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=u.default[e];if(!t)throw new ReferenceError("Unknown helper "+e);return t().expression}t.__esModule=!0,t.list=void 0;var s=r(14),a=n(s);t.get=i;var o=r(321),u=n(o);t.list=(0,a.default)(u.default).map(function(e){return e.replace(/^_/,"")}).filter(function(e){return"__esModule"!==e});t.default=i},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncGenerators")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("classConstructorCall")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("classProperties")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("doExpressions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("exponentiationOperator")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("exportExtensions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("functionBind")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("objectRestSpread")}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(10),o=n(a);t.default=function(e){function t(e){for(var t=e.get("body.body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}var o=a;if("constructorCall"===o.node.kind)return o}return null}function n(e,t){var r=t,n=r.node,s=n.id||t.scope.generateUidIdentifier("class");t.parentPath.isExportDefaultDeclaration()&&(t=t.parentPath,t.insertAfter(i.exportDefaultDeclaration(s))),t.replaceWithMultiple(c({CLASS_REF:t.scope.generateUidIdentifier(s.name),CALL_REF:t.scope.generateUidIdentifier(s.name+"Call"),CALL:i.functionExpression(null,e.node.params,e.node.body),CLASS:i.toExpression(n),WRAPPER_REF:s})),e.remove()}var i=e.types,a=(0,o.default)();return{inherits:r(196),visitor:{Class:function(e){if(!e.node[a]){e.node[a]=!0;var r=t(e);r&&n(r,e)}}}}};var u=r(4),l=n(u),c=(0,l.default)("\n  let CLASS_REF = CLASS;\n  var CALL_REF = CALL;\n  var WRAPPER_REF = function (...args) {\n    if (this instanceof WRAPPER_REF) {\n      return Reflect.construct(CLASS_REF, args);\n    } else {\n      return CALL_REF.apply(this, args);\n    }\n  };\n  WRAPPER_REF.__proto__ = CLASS_REF;\n  WRAPPER_REF;\n");e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){var t=e.types,n={Super:function(e){e.parentPath.isCallExpression({callee:e.node})&&this.push(e.parentPath)}},i={ReferencedIdentifier:function(e){this.scope.hasOwnBinding(e.node.name)&&(this.collision=!0,e.skip())}},a=(0,l.default)("\n    Object.defineProperty(REF, KEY, {\n      // configurable is false by default\n      enumerable: true,\n      writable: true,\n      value: VALUE\n    });\n  "),u=function(e,r){var n=r.key,i=r.value,s=r.computed;return a({REF:e,KEY:t.isIdentifier(n)&&!s?t.stringLiteral(n.name):n,VALUE:i||t.identifier("undefined")})},c=function(e,r){var n=r.key,i=r.value,s=r.computed;return t.expressionStatement(t.assignmentExpression("=",t.memberExpression(e,n,s||t.isLiteral(n)),i))};return{inherits:r(197),visitor:{Class:function(e,r){for(var a=r.opts.spec?u:c,l=!!e.node.superClass,f=void 0,p=[],d=e.get("body"),h=d.get("body"),m=Array.isArray(h),y=0,h=m?h:(0,s.default)(h);;){var v;if(m){if(y>=h.length)break;v=h[y++]}else{if(y=h.next(),y.done)break;v=y.value}var g=v;g.isClassProperty()?p.push(g):g.isClassMethod({kind:"constructor"})&&(f=g)}if(p.length){var b=[],E=void 0;e.isClassExpression()||!e.node.id?((0,o.default)(e),E=e.scope.generateUidIdentifier("class")):E=e.node.id;for(var x=[],A=p,S=Array.isArray(A),_=0,A=S?A:(0,s.default)(A);;){var D;if(S){if(_>=A.length)break;D=A[_++]}else{if(_=A.next(),_.done)break;D=_.value}var C=D,w=C.node;if(!(w.decorators&&w.decorators.length>0)&&(r.opts.spec||w.value)){if(w.static)b.push(a(E,w));else{if(!w.value)continue;x.push(a(t.thisExpression(),w))}}}if(x.length){if(!f){var P=t.classMethod("constructor",t.identifier("constructor"),[],t.blockStatement([]));l&&(P.params=[t.restElement(t.identifier("args"))],P.body.body.push(t.returnStatement(t.callExpression(t.super(),[t.spreadElement(t.identifier("args"))]))));f=d.unshiftContainer("body",P)[0]}for(var k={collision:!1,scope:f.scope},F=p,T=Array.isArray(F),O=0,F=T?F:(0,s.default)(F);;){var B;if(T){if(O>=F.length)break;B=F[O++]}else{if(O=F.next(),O.done)break;B=O.value}if(B.traverse(i,k),k.collision)break}if(k.collision){var R=e.scope.generateUidIdentifier("initialiseProps");b.push(t.variableDeclaration("var",[t.variableDeclarator(R,t.functionExpression(null,[],t.blockStatement(x)))])),x=[t.expressionStatement(t.callExpression(t.memberExpression(R,t.identifier("call")),[t.thisExpression()]))]}if(l){var I=[];f.traverse(n,I);for(var M=I,N=Array.isArray(M),L=0,M=N?M:(0,s.default)(M);;){var j;if(N){if(L>=M.length)break;j=M[L++]}else{if(L=M.next(),L.done)break;j=L.value}j.insertAfter(x)}}else f.get("body").unshiftContainer("body",x)}for(var U=p,V=Array.isArray(U),G=0,U=V?U:(0,s.default)(U);;){var W;if(V){if(G>=U.length)break;W=U[G++]}else{if(G=U.next(),G.done)break;W=G.value}W.remove()}b.length&&(e.isClassExpression()?(e.scope.push({id:E}),e.replaceWith(t.assignmentExpression("=",E,e.node))):(e.node.id||(e.node.id=E),e.parentPath.isExportDeclaration()&&(e=e.parentPath)),e.insertAfter(b))}},ArrowFunctionExpression:function(e){var t=e.get("body");if(t.isClassExpression()){t.get("body").get("body").some(function(e){return e.isClassProperty()})&&e.ensureBlock()}}}}};var a=r(40),o=n(a),u=r(4),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i),a=r(2),o=n(a);t.default=function(e){function t(e){return e.reverse().map(function(e){return e.expression})}function n(e,r,n){var i=[],a=e.node.decorators;if(a){e.node.decorators=null,a=t(a);for(var l=a,c=Array.isArray(l),f=0,l=c?l:(0,o.default)(l);;){var d;if(c){if(f>=l.length)break;d=l[f++]}else{if(f=l.next(),f.done)break;d=f.value}var h=d;i.push(p({CLASS_REF:r,DECORATOR:h}))}}for(var m=(0,s.default)(null),y=e.get("body.body"),v=Array.isArray(y),g=0,y=v?y:(0,o.default)(y);;){var b;if(v){if(g>=y.length)break;b=y[g++]}else{if(g=y.next(),g.done)break;b=g.value}var E=b;if(E.node.decorators){var x=u.toKeyAlias(E.node);m[x]=m[x]||[],m[x].push(E.node),E.remove()}}for(var A in m){m[A]}return i}function i(e){if(e.isClass()){if(e.node.decorators)return!0;for(var t=e.node.body.body,r=Array.isArray(t),n=0,t=r?t:(0,o.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}if(i.decorators)return!0}}else if(e.isObjectExpression())for(var s=e.node.properties,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var l;if(a){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l;if(c.decorators)return!0}return!1}function a(e){throw e.buildCodeFrameError('Decorators are not officially supported yet in 6.x pending a proposal update.\nHowever, if you need to use them you can install the legacy decorators transform with:\n\nnpm install babel-plugin-transform-decorators-legacy --save-dev\n\nand add the following line to your .babelrc file:\n\n{\n  "plugins": ["transform-decorators-legacy"]\n}\n\nThe repo url is: https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy.\n    ')}var u=e.types;return{inherits:r(125),visitor:{ClassExpression:function(e){if(i(e)){a(e),(0,f.default)(e);var t=e.scope.generateDeclaredUidIdentifier("ref"),r=[];r.push(u.assignmentExpression("=",t,e.node)),r=r.concat(n(e,t,this)),r.push(t),e.replaceWith(u.sequenceExpression(r))}},ClassDeclaration:function(e){if(i(e)){a(e),(0,f.default)(e);var t=e.node.id,r=[];r=r.concat(n(e,t,this).map(function(e){return u.expressionStatement(e)})),r.push(u.expressionStatement(t)),e.insertAfter(r)}},ObjectExpression:function(e){i(e)&&a(e)}}}};var u=r(4),l=n(u),c=r(319),f=n(c),p=(0,l.default)("\n  CLASS_REF = DECORATOR(CLASS_REF) || CLASS_REF;\n");e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(198),visitor:{DoExpression:function(e){var t=e.node.body.body;t.length?e.replaceWithMultiple(t):e.replaceWith(e.scope.buildUndefinedNode())}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(2),a=i(s),o=r(3),u=i(o),l=r(7),c=r(193),f=i(c),p=r(191),d=i(p),h=r(188),m=n(h),y=r(4),v=i(y),g=r(1),b=n(g),E=(0,v.default)("\n  (function () {\n    super(...arguments);\n  })\n"),x={"FunctionExpression|FunctionDeclaration":function(e){e.is("shadow")||e.skip()},Method:function(e){e.skip()}},A=l.visitors.merge([x,{Super:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.parentPath.isCallExpression({callee:e.node}))throw e.buildCodeFrameError("'super.*' is not allowed before super()")},CallExpression:{exit:function(e){if(e.get("callee").isSuper()&&(this.hasBareSuper=!0,!this.isDerived))throw e.buildCodeFrameError("super() is only allowed in a derived constructor")}},ThisExpression:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.inShadow("this"))throw e.buildCodeFrameError("'this' is not allowed before super()")}}]),S=l.visitors.merge([x,{ThisExpression:function(e){this.superThises.push(e)}}]),_=function(){function e(t,r){(0,u.default)(this,e),this.parent=t.parent,this.scope=t.scope,this.node=t.node,this.path=t,this.file=r,this.clearDescriptors(),this.instancePropBody=[],this.instancePropRefs={},this.staticPropBody=[],this.body=[],this.bareSuperAfter=[],this.bareSupers=[],this.pushedConstructor=!1,this.pushedInherits=!1,this.isLoose=!1,this.superThises=[],this.classId=this.node.id,this.classRef=this.node.id?b.identifier(this.node.id.name):this.scope.generateUidIdentifier("class"),this.superName=this.node.superClass||b.identifier("Function"),this.isDerived=!!this.node.superClass}return e.prototype.run=function(){var e=this,t=this.superName,r=this.file,n=this.body,i=this.constructorBody=b.blockStatement([]);this.constructor=this.buildConstructor();var s=[],a=[];if(this.isDerived&&(a.push(t),t=this.scope.generateUidIdentifierBasedOnNode(t),s.push(t),this.superName=t),this.buildBody(),i.body.unshift(b.expressionStatement(b.callExpression(r.addHelper("classCallCheck"),[b.thisExpression(),this.classRef]))),n=n.concat(this.staticPropBody.map(function(t){return t(e.classRef)})),this.classId&&1===n.length)return b.toExpression(n[0]);n.push(b.returnStatement(this.classRef));var o=b.functionExpression(null,s,b.blockStatement(n));return o.shadow=!0,b.callExpression(o,a)},e.prototype.buildConstructor=function(){var e=b.functionDeclaration(this.classRef,[],this.constructorBody);return b.inherits(e,this.node),e},e.prototype.pushToMap=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"value",n=arguments[3],i=void 0;e.static?(this.hasStaticDescriptors=!0,i=this.staticMutatorMap):(this.hasInstanceDescriptors=!0,i=this.instanceMutatorMap);var s=m.push(i,e,r,this.file,n);return t&&(s.enumerable=b.booleanLiteral(!0)),s},e.prototype.constructorMeMaybe=function(){for(var e=!1,t=this.path.get("body.body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,a.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}if(e=s.equals("kind","constructor"))break}if(!e){var o=void 0,u=void 0;if(this.isDerived){var l=E().expression;o=l.params,u=l.body}else o=[],u=b.blockStatement([]);this.path.get("body").unshiftContainer("body",b.classMethod("constructor",b.identifier("constructor"),o,u))}},e.prototype.buildBody=function(){if(this.constructorMeMaybe(),this.pushBody(),this.verifyConstructor(),this.userConstructor){var e=this.constructorBody;e.body=e.body.concat(this.userConstructor.body.body),b.inherits(this.constructor,this.userConstructor),b.inherits(e,this.userConstructor.body)}this.pushDescriptors()},e.prototype.pushBody=function(){for(var e=this.path.get("body.body"),t=e,r=Array.isArray(t),n=0,t=r?t:(0,a.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,o=s.node;if(s.isClassProperty())throw s.buildCodeFrameError("Missing class properties transform.");if(o.decorators)throw s.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");if(b.isClassMethod(o)){var u="constructor"===o.kind;if(u&&(s.traverse(A,this),!this.hasBareSuper&&this.isDerived))throw s.buildCodeFrameError("missing super() call in constructor");var l=new f.default({forceSuperMemoisation:u,methodPath:s,methodNode:o,objectRef:this.classRef,superRef:this.superName,isStatic:o.static,isLoose:this.isLoose,scope:this.scope,file:this.file},!0);l.replace(),u?this.pushConstructor(l,o,s):this.pushMethod(o,s)}}},e.prototype.clearDescriptors=function(){this.hasInstanceDescriptors=!1,this.hasStaticDescriptors=!1,this.instanceMutatorMap={},this.staticMutatorMap={}},e.prototype.pushDescriptors=function(){this.pushInherits();var e=this.body,t=void 0,r=void 0;if(this.hasInstanceDescriptors&&(t=m.toClassObject(this.instanceMutatorMap)),this.hasStaticDescriptors&&(r=m.toClassObject(this.staticMutatorMap)),t||r){t&&(t=m.toComputedObjectFromClass(t)),r&&(r=m.toComputedObjectFromClass(r));var n=b.nullLiteral(),i=[this.classRef,n,n,n,n];t&&(i[1]=t),r&&(i[2]=r),this.instanceInitializersId&&(i[3]=this.instanceInitializersId,e.unshift(this.buildObjectAssignment(this.instanceInitializersId))),this.staticInitializersId&&(i[4]=this.staticInitializersId,e.unshift(this.buildObjectAssignment(this.staticInitializersId)));for(var s=0,a=0;a<i.length;a++)i[a]!==n&&(s=a);i=i.slice(0,s+1),e.push(b.expressionStatement(b.callExpression(this.file.addHelper("createClass"),i)))}this.clearDescriptors()},e.prototype.buildObjectAssignment=function(e){return b.variableDeclaration("var",[b.variableDeclarator(e,b.objectExpression([]))])},e.prototype.wrapSuperCall=function(e,t,r,n){var i=e.node;this.isLoose?(i.arguments.unshift(b.thisExpression()),2===i.arguments.length&&b.isSpreadElement(i.arguments[1])&&b.isIdentifier(i.arguments[1].argument,{name:"arguments"})?(i.arguments[1]=i.arguments[1].argument,i.callee=b.memberExpression(t,b.identifier("apply"))):i.callee=b.memberExpression(t,b.identifier("call"))):i=(0,d.default)(b.logicalExpression("||",b.memberExpression(this.classRef,b.identifier("__proto__")),b.callExpression(b.memberExpression(b.identifier("Object"),b.identifier("getPrototypeOf")),[this.classRef])),b.thisExpression(),i.arguments);var s=b.callExpression(this.file.addHelper("possibleConstructorReturn"),[b.thisExpression(),i]),a=this.bareSuperAfter.map(function(e){return e(r)});e.parentPath.isExpressionStatement()&&e.parentPath.container===n.node.body&&n.node.body.length-1===e.parentPath.key?((this.superThises.length||a.length)&&(e.scope.push({id:r}),s=b.assignmentExpression("=",r,s)),a.length&&(s=b.toSequenceExpression([s].concat(a,[r]))),e.parentPath.replaceWith(b.returnStatement(s))):e.replaceWithMultiple([b.variableDeclaration("var",[b.variableDeclarator(r,s)])].concat(a,[b.expressionStatement(r)]))},e.prototype.verifyConstructor=function(){var e=this;if(this.isDerived){var t=this.userConstructorPath,r=t.get("body");t.traverse(S,this);for(var n=!!this.bareSupers.length,i=this.superName||b.identifier("Function"),s=t.scope.generateUidIdentifier("this"),o=this.bareSupers,u=Array.isArray(o),l=0,o=u?o:(0,a.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;this.wrapSuperCall(f,i,s,r),n&&f.find(function(e){return e===t||(e.isLoop()||e.isConditional()?(n=!1,!0):void 0)})}for(var p=this.superThises,d=Array.isArray(p),h=0,p=d?p:(0,a.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}m.replaceWith(s)}var y=function(t){return b.callExpression(e.file.addHelper("possibleConstructorReturn"),[s].concat(t||[]))},v=r.get("body");v.length&&!v.pop().isReturnStatement()&&r.pushContainer("body",b.returnStatement(n?s:y()));for(var g=this.superReturns,E=Array.isArray(g),x=0,g=E?g:(0,a.default)(g);;){var A;if(E){if(x>=g.length)break;A=g[x++]}else{if(x=g.next(),x.done)break;A=x.value}var _=A;if(_.node.argument){var D=_.scope.generateDeclaredUidIdentifier("ret");_.get("argument").replaceWithMultiple([b.assignmentExpression("=",D,_.node.argument),y(D)])}else _.get("argument").replaceWith(y())}}},e.prototype.pushMethod=function(e,t){var r=t?t.scope:this.scope;"method"===e.kind&&this._processMethod(e,r)||this.pushToMap(e,!1,null,r)},e.prototype._processMethod=function(){return!1},e.prototype.pushConstructor=function(e,t,r){this.bareSupers=e.bareSupers,this.superReturns=e.returns,r.scope.hasOwnBinding(this.classRef.name)&&r.scope.rename(this.classRef.name);var n=this.constructor;this.userConstructorPath=r,this.userConstructor=t,this.hasConstructor=!0,b.inheritsComments(n,t),n._ignoreUserWhitespace=!0,n.params=t.params,b.inherits(n.body,t.body),n.body.directives=t.body.directives,this._pushConstructor()},e.prototype._pushConstructor=function(){this.pushedConstructor||(this.pushedConstructor=!0,(this.hasInstanceDescriptors||this.hasStaticDescriptors)&&this.pushDescriptors(),this.body.push(this.constructor),this.pushInherits())},e.prototype.pushInherits=function(){this.isDerived&&!this.pushedInherits&&(this.pushedInherits=!0,this.body.unshift(b.expressionStatement(b.callExpression(this.file.addHelper("inherits"),[this.classRef,this.superName]))))},e}();t.default=_,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i),a=r(2),o=n(a),u=r(10),l=n(u);t.default=function(e){var t=e.types,r=(0,l.default)(),n={"AssignmentExpression|UpdateExpression":function(e){if(!e.node[r]){e.node[r]=!0;var n=e.get(e.isAssignmentExpression()?"left":"argument");if(n.isIdentifier()){var i=n.node.name;if(this.scope.getBinding(i)===e.scope.getBinding(i)){var s=this.exports[i];if(s){var a=e.node,u=e.isUpdateExpression()&&!a.prefix;u&&("++"===a.operator?a=t.binaryExpression("+",a.argument,t.numericLiteral(1)):"--"===a.operator?a=t.binaryExpression("-",a.argument,t.numericLiteral(1)):u=!1);for(var l=s,c=Array.isArray(l),f=0,l=c?l:(0,o.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;a=this.buildCall(d,a).expression}u&&(a=t.sequenceExpression([a,e.node])),e.replaceWith(a)}}}}}};return{visitor:{CallExpression:function(e,r){if(e.node.callee.type===y){var n=r.contextIdent;e.replaceWith(t.callExpression(t.memberExpression(n,t.identifier("import")),e.node.arguments))}},ReferencedIdentifier:function(e,r){"__moduleName"!=e.node.name||e.scope.hasBinding("__moduleName")||e.replaceWith(t.memberExpression(r.contextIdent,t.identifier("id")))},Program:{enter:function(e,t){t.contextIdent=e.scope.generateUidIdentifier("context")},exit:function(e,r){function i(e,t){p[e]=p[e]||[],p[e].push(t)}function a(e,t,r){var n=void 0;d.forEach(function(t){t.key===e&&(n=t)}),n||d.push(n={key:e,imports:[],exports:[]}),n[t]=n[t].concat(r)}function u(e,r){return t.expressionStatement(t.callExpression(l,[t.stringLiteral(e),r]))}for(var l=e.scope.generateUidIdentifier("export"),c=r.contextIdent,p=(0,s.default)(null),d=[],y=[],v=[],g=[],b=[],E=[],x=e.get("body"),A=!0,S=x,_=Array.isArray(S),D=0,S=_?S:(0,o.default)(S);;){var C;if(_){if(D>=S.length)break;C=S[D++]}else{if(D=S.next(),D.done)break;C=D.value}var w=C;if(w.isExportDeclaration()&&(w=w.get("declaration")),w.isVariableDeclaration()&&"var"!==w.node.kind){A=!1;break}}for(var P=x,k=Array.isArray(P),F=0,P=k?P:(0,o.default)(P);;){var T;if(k){if(F>=P.length)break;T=P[F++]}else{if(F=P.next(),F.done)break;T=F.value}var O=T;if(A&&O.isFunctionDeclaration())y.push(O.node),E.push(O);else if(O.isImportDeclaration()){var B=O.node.source.value;a(B,"imports",O.node.specifiers);for(var R in O.getBindingIdentifiers())O.scope.removeBinding(R),b.push(t.identifier(R));O.remove()}else if(O.isExportAllDeclaration())a(O.node.source.value,"exports",O.node),O.remove();else if(O.isExportDefaultDeclaration()){var I=O.get("declaration");if(I.isClassDeclaration()||I.isFunctionDeclaration()){var M=I.node.id,N=[];M?(N.push(I.node),N.push(u("default",M)),i(M.name,"default")):N.push(u("default",t.toExpression(I.node))),!A||I.isClassDeclaration()?O.replaceWithMultiple(N):(y=y.concat(N),E.push(O))}else O.replaceWith(u("default",I.node))}else if(O.isExportNamedDeclaration()){var L=O.get("declaration");if(L.node){O.replaceWith(L);var j=[],U=void 0;if(O.isFunction()){var V=L.node,G=V.id.name;if(A)i(G,G),y.push(V),y.push(u(G,V.id)),E.push(O);else{var W;W={},W[G]=V.id,U=W}}else U=L.getBindingIdentifiers();for(var Y in U)i(Y,Y),j.push(u(Y,t.identifier(Y)));O.insertAfter(j)}else{var q=O.node.specifiers;if(q&&q.length)if(O.node.source)a(O.node.source.value,"exports",q),O.remove();else{for(var K=[],H=q,J=Array.isArray(H),X=0,H=J?H:(0,o.default)(H);;){var z;if(J){if(X>=H.length)break;z=H[X++]}else{if(X=H.next(),X.done)break;z=X.value}var $=z;K.push(u($.exported.name,$.local)),i($.local.name,$.exported.name)}O.replaceWithMultiple(K)}}}}d.forEach(function(r){for(var n=[],i=e.scope.generateUidIdentifier(r.key),s=r.imports,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var c;if(a){if(u>=s.length)break;c=s[u++]}else{if(u=s.next(),u.done)break;c=u.value}var f=c;t.isImportNamespaceSpecifier(f)?n.push(t.expressionStatement(t.assignmentExpression("=",f.local,i))):t.isImportDefaultSpecifier(f)&&(f=t.importSpecifier(f.local,t.identifier("default"))),t.isImportSpecifier(f)&&n.push(t.expressionStatement(t.assignmentExpression("=",f.local,t.memberExpression(i,f.imported))))}if(r.exports.length){var p=e.scope.generateUidIdentifier("exportObj");n.push(t.variableDeclaration("var",[t.variableDeclarator(p,t.objectExpression([]))]));for(var d=r.exports,h=Array.isArray(d),y=0,d=h?d:(0,o.default)(d);;){var b;if(h){if(y>=d.length)break;b=d[y++]}else{if(y=d.next(),y.done)break;b=y.value}var E=b;t.isExportAllDeclaration(E)?n.push(m({KEY:e.scope.generateUidIdentifier("key"),EXPORT_OBJ:p,TARGET:i})):t.isExportSpecifier(E)&&n.push(t.expressionStatement(t.assignmentExpression("=",t.memberExpression(p,E.exported),t.memberExpression(i,E.local))))}n.push(t.expressionStatement(t.callExpression(l,[p])))}g.push(t.stringLiteral(r.key)),v.push(t.functionExpression(null,[i],t.blockStatement(n)))});var Q=this.getModuleName();Q&&(Q=t.stringLiteral(Q)),A&&(0,f.default)(e,function(e){return b.push(e)}),b.length&&y.unshift(t.variableDeclaration("var",b.map(function(e){return t.variableDeclarator(e)}))),e.traverse(n,{exports:p,buildCall:u,scope:e.scope});for(var Z=E,ee=Array.isArray(Z),te=0,Z=ee?Z:(0,o.default)(Z);;){var re;if(ee){if(te>=Z.length)break;re=Z[te++]}else{if(te=Z.next(),te.done)break;re=te.value}re.remove()}e.node.body=[h({SYSTEM_REGISTER:t.memberExpression(t.identifier(r.opts.systemGlobal||"System"),t.identifier("register")),BEFORE_BODY:y,MODULE_NAME:Q,SETTERS:v,SOURCES:g,BODY:e.node.body,EXPORT_IDENTIFIER:l,CONTEXT_IDENTIFIER:c})]}}}}};var c=r(190),f=n(c),p=r(4),d=n(p),h=(0,d.default)('\n  SYSTEM_REGISTER(MODULE_NAME, [SOURCES], function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n    "use strict";\n    BEFORE_BODY;\n    return {\n      setters: [SETTERS],\n      execute: function () {\n        BODY;\n      }\n    };\n  });\n'),m=(0,d.default)('\n  for (var KEY in TARGET) {\n    if (KEY !== "default" && KEY !== "__esModule") EXPORT_OBJ[KEY] = TARGET[KEY];\n  }\n'),y="Import";e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e){if(e.isExpressionStatement()){var t=e.get("expression");if(!t.isCallExpression())return!1;if(!t.get("callee").isIdentifier({name:"define"}))return!1;var r=t.get("arguments");return!(3===r.length&&!r.shift().isStringLiteral())&&(2===r.length&&(!!r.shift().isArrayExpression()&&!!r.shift().isFunctionExpression()))}}var i=e.types;return{inherits:r(131),visitor:{Program:{exit:function(e,r){var s=e.get("body").pop();if(t(s)){var l=s.node.expression,c=l.arguments,f=3===c.length?c.shift():null,p=l.arguments[0],d=l.arguments[1],h=r.opts.globals||{},m=p.elements.map(function(e){return"module"===e.value||"exports"===e.value?i.identifier(e.value):i.callExpression(i.identifier("require"),[e])}),y=p.elements.map(function(e){if("module"===e.value)return i.identifier("mod");if("exports"===e.value)return i.memberExpression(i.identifier("mod"),i.identifier("exports"));var t=void 0;if(r.opts.exactGlobals){var s=h[e.value];t=s?s.split(".").reduce(function(e,t){return i.memberExpression(e,i.identifier(t))},i.identifier("global")):i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(e.value)))}else{var a=(0,n.basename)(e.value,(0,n.extname)(e.value)),o=h[a]||a;t=i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(o)))}return t}),v=f?f.value:this.file.opts.basename,g=i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(v))),b=null;if(r.opts.exactGlobals){var E=h[v];if(E){b=[];var x=E.split(".");g=x.slice(1).reduce(function(e,t){return b.push(a({GLOBAL_REFERENCE:e})),i.memberExpression(e,i.identifier(t))},i.memberExpression(i.identifier("global"),i.identifier(x[0])))}}var A=o({BROWSER_ARGUMENTS:y,PREREQUISITE_ASSIGNMENTS:b,GLOBAL_TO_ASSIGN:g});s.replaceWith(u({MODULE_NAME:f,AMD_ARGUMENTS:p,COMMON_ARGUMENTS:m,GLOBAL_EXPORT:A,FUNC:d}))}}}}}};var n=r(19),i=r(4),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=(0,s.default)("\n  GLOBAL_REFERENCE = GLOBAL_REFERENCE || {}\n"),o=(0,s.default)("\n  var mod = { exports: {} };\n  factory(BROWSER_ARGUMENTS);\n  PREREQUISITE_ASSIGNMENTS\n  GLOBAL_TO_ASSIGN = mod.exports;\n"),u=(0,s.default)('\n  (function (global, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(MODULE_NAME, AMD_ARGUMENTS, factory);\n    } else if (typeof exports !== "undefined") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      GLOBAL_EXPORT\n    }\n  })(this, FUNC);\n');e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,r,i){var s=e.specifiers[0];if(n.isExportNamespaceSpecifier(s)||n.isExportDefaultSpecifier(s)){var a=e.specifiers.shift(),o=i.generateUidIdentifier(a.exported.name),u=void 0;u=n.isExportNamespaceSpecifier(a)?n.importNamespaceSpecifier(o):n.importDefaultSpecifier(o),r.push(n.importDeclaration([u],e.source)),r.push(n.exportNamedDeclaration(null,[n.exportSpecifier(o,a.exported)])),t(e,r,i)}}var n=e.types;return{inherits:r(200),visitor:{ExportNamedDeclaration:function(e){var r=e.node,n=e.scope,i=[];t(r,i,n),i.length&&(r.specifiers.length>=1&&i.push(r),e.replaceWithMultiple(i))}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types;return{inherits:r(126),visitor:{Program:function(e,t){for(var r=t.file.ast.comments,n=r,s=Array.isArray(n),a=0,n=s?n:(0,i.default)(n);;){var o;if(s){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;u.value.indexOf("@flow")>=0&&(u.value=u.value.replace("@flow",""),u.value.replace(/\*/g,"").trim()||(u.ignore=!0))}},Flow:function(e){e.remove()},ClassProperty:function(e){e.node.variance=null,e.node.typeAnnotation=null,e.node.value||e.remove()},Class:function(e){e.node.implements=null,e.get("body.body").forEach(function(e){e.isClassProperty()&&(e.node.typeAnnotation=null,e.node.value||e.remove())})},AssignmentPattern:function(e){e.node.left.optional=!1},Function:function(e){for(var t=e.node,r=0;r<t.params.length;r++){t.params[r].optional=!1}},TypeCastExpression:function(e){var r=e.node;do{r=r.expression}while(t.isTypeCastExpression(r));e.replaceWith(r)}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e){var t=e.path.getData("functionBind");return t||(t=e.generateDeclaredUidIdentifier("context"),e.path.setData("functionBind",t))}function n(e,t){var r=e.object||e.callee.object;return t.isStatic(r)&&r}function i(e,r){var i=n(e,r);if(i)return i;var a=t(r);return e.object?e.callee=s.sequenceExpression([s.assignmentExpression("=",a,e.object),e.callee]):e.callee.object=s.assignmentExpression("=",a,e.callee.object),a}var s=e.types;return{inherits:r(201),visitor:{CallExpression:function(e){var t=e.node,r=e.scope,n=t.callee;if(s.isBindExpression(n)){var a=i(n,r);t.callee=s.memberExpression(n.callee,s.identifier("call")),t.arguments.unshift(a)}},BindExpression:function(e){
var t=e.node,r=e.scope,n=i(t,r);e.replaceWith(s.callExpression(s.memberExpression(t.callee,s.identifier("bind")),[n]))}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){var t=!1;return e.traverse({RestProperty:function(){t=!0,e.stop()}}),t}function n(e){for(var t=e.properties,r=Array.isArray(t),n=0,t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if(n=t.next(),n.done)break;s=n.value}var a=s;if(o.isSpreadProperty(a))return!0}return!1}function s(e,t,r){for(var n=t.pop(),s=[],a=t,u=Array.isArray(a),l=0,a=u?a:(0,i.default)(a);;){var c;if(u){if(l>=a.length)break;c=a[l++]}else{if(l=a.next(),l.done)break;c=l.value}var f=c,p=f.key;o.isIdentifier(p)&&!f.computed&&(p=o.stringLiteral(f.key.name)),s.push(p)}return[n.argument,o.callExpression(e.addHelper("objectWithoutProperties"),[r,o.arrayExpression(s)])]}function a(e,r,n,i){if(r.isAssignmentPattern())return void a(e,r.get("left"),n,i);if(r.isObjectPattern()&&t(r)){var s=e.scope.generateUidIdentifier("ref"),u=o.variableDeclaration("let",[o.variableDeclarator(r.node,s)]);u._blockHoist=n?i-n:1,e.ensureBlock(),e.get("body").unshiftContainer("body",u),r.replaceWith(s)}}var o=e.types;return{inherits:r(202),visitor:{Function:function(e){for(var t=e.get("params"),r=0;r<t.length;r++)a(t[r].parentPath,t[r],r,t.length)},VariableDeclarator:function(e,t){if(e.get("id").isObjectPattern()){var r=e;e.get("id").traverse({RestProperty:function(e){if(this.originalPath.node.id.properties.length>1&&!o.isIdentifier(this.originalPath.node.init)){var n=e.scope.generateUidIdentifierBasedOnNode(this.originalPath.node.init,"ref");return this.originalPath.insertBefore(o.variableDeclarator(n,this.originalPath.node.init)),void this.originalPath.replaceWith(o.variableDeclarator(this.originalPath.node.id,n))}var i=this.originalPath.node.init,a=[];e.findParent(function(e){if(e.isObjectProperty())a.unshift(e.node.key.name);else if(e.isVariableDeclarator())return!0}),a.length&&a.forEach(function(e){i=o.memberExpression(i,o.identifier(e))});var u=s(t,e.parentPath.node.properties,i),l=u[0],c=u[1];r.insertAfter(o.variableDeclarator(l,c)),r=r.getSibling(r.key+1),0===e.parentPath.node.properties.length&&e.findParent(function(e){return e.isObjectProperty()||e.isVariableDeclarator()}).remove()}},{originalPath:e})}},ExportNamedDeclaration:function(e){var r=e.get("declaration");if(r.isVariableDeclaration()&&t(r)){var n=[];for(var i in e.getOuterBindingIdentifiers(e)){var s=o.identifier(i);n.push(o.exportSpecifier(s,s))}e.replaceWith(r.node),e.insertAfter(o.exportNamedDeclaration(null,n))}},CatchClause:function(e){var t=e.get("param");a(t.parentPath,t)},AssignmentExpression:function(e,r){var n=e.get("left");if(n.isObjectPattern()&&t(n)){var i=[],a=void 0;(e.isCompletionRecord()||e.parentPath.isExpressionStatement())&&(a=e.scope.generateUidIdentifierBasedOnNode(e.node.right,"ref"),i.push(o.variableDeclaration("var",[o.variableDeclarator(a,e.node.right)])));var u=s(r,e.node.left.properties,a),l=u[0],c=u[1],f=o.clone(e.node);f.right=a,i.push(o.expressionStatement(f)),i.push(o.toStatement(o.assignmentExpression("=",l,c))),a&&i.push(o.expressionStatement(a)),e.replaceWithMultiple(i)}},ForXStatement:function(e){var r=e.node,n=e.scope,i=e.get("left"),s=r.left;if(o.isObjectPattern(s)&&t(i)){var a=n.generateUidIdentifier("ref");return r.left=o.variableDeclaration("var",[o.variableDeclarator(a)]),e.ensureBlock(),void r.body.body.unshift(o.variableDeclaration("var",[o.variableDeclarator(s,a)]))}if(o.isVariableDeclaration(s)){var u=s.declarations[0].id;if(o.isObjectPattern(u)){var l=n.generateUidIdentifier("ref");r.left=o.variableDeclaration(s.kind,[o.variableDeclarator(l,null)]),e.ensureBlock(),r.body.body.unshift(o.variableDeclaration(r.left.kind,[o.variableDeclarator(u,l)]))}}},ObjectExpression:function(e,t){function r(){u.length&&(a.push(o.objectExpression(u)),u=[])}if(n(e.node)){var s=t.opts.useBuiltIns||!1;if("boolean"!=typeof s)throw new Error("transform-object-rest-spread currently only accepts a boolean option for useBuiltIns (defaults to false)");for(var a=[],u=[],l=e.node.properties,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;o.isSpreadProperty(d)?(r(),a.push(d.argument)):u.push(d)}r(),o.isObjectExpression(a[0])||a.unshift(o.objectExpression([]));var h=s?o.memberExpression(o.identifier("Object"),o.identifier("assign")):t.addHelper("extends");e.replaceWith(o.callExpression(h,a))}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){for(var r=t.arguments[0].properties,i=!0,s=0;s<r.length;s++){var a=r[s],o=n.toComputedKey(a);if(n.isLiteral(o,{value:"displayName"})){i=!1;break}}i&&r.unshift(n.objectProperty(n.identifier("displayName"),n.stringLiteral(e)))}function r(e){if(!e||!n.isCallExpression(e))return!1;if(!s(e.callee)&&!a(e.callee))return!1;var t=e.arguments;if(1!==t.length)return!1;var r=t[0];return!!n.isObjectExpression(r)}var n=e.types,s=n.buildMatchMemberExpression("React.createClass"),a=function(e){return"createReactClass"===e.name};return{visitor:{ExportDefaultDeclaration:function(e,n){var s=e.node;if(r(s.declaration)){var a=n.file.opts.basename;"index"===a&&(a=i.default.basename(i.default.dirname(n.file.opts.filename))),t(a,s.declaration)}},CallExpression:function(e){var i=e.node;if(r(i)){var s=void 0;e.find(function(e){if(e.isAssignmentExpression())s=e.node.left;else if(e.isObjectProperty())s=e.node.key;else if(e.isVariableDeclarator())s=e.node.id;else if(e.isStatement())return!0;if(s)return!0}),s&&(n.isMemberExpression(s)&&(s=s.property),n.isIdentifier(s)&&t(s.name,i))}}}}};var n=r(19),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){var t=e.types,r=/\*?\s*@jsx\s+([^\s]+)/,n=(0,l.default)({pre:function(e){var r=e.tagName,n=e.args;t.react.isCompatTag(r)?n.push(t.stringLiteral(r)):n.push(e.tagExpr)},post:function(e,t){e.callee=t.get("jsxIdentifier")()}});return n.Program=function(e,n){for(var i=n.file,a=n.opts.pragma||"React.createElement",o=i.ast.comments,u=Array.isArray(o),l=0,o=u?o:(0,s.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c,p=r.exec(f.value);if(p){if("React.DOM"===(a=p[1]))throw i.buildCodeFrameError(f,"The @jsx React.DOM pragma has been deprecated as of React 0.12");break}}n.set("jsxIdentifier",function(){return a.split(".").map(function(e){return t.identifier(e)}).reduce(function(e,r){return t.memberExpression(e,r)})})},{inherits:o.default,visitor:n}};var a=r(127),o=n(a),u=r(351),l=n(u);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(){return{visitor:{Program:function(e,t){if(!1!==t.opts.strict&&!1!==t.opts.strictMode){for(var r=e.node,n=r.directives,s=Array.isArray(n),o=0,n=s?n:(0,i.default)(n);;){var u;if(s){if(o>=n.length)break;u=n[o++]}else{if(o=n.next(),o.done)break;u=o.value}if("use strict"===u.value.value)return}e.unshiftContainer("directives",a.directive(a.directiveLiteral("use strict")))}}}}};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=["commonjs","amd","umd","systemjs"],n=!1,i="commonjs",s=!1;if(void 0!==t&&(void 0!==t.loose&&(n=t.loose),void 0!==t.modules&&(i=t.modules),void 0!==t.spec&&(s=t.spec)),"boolean"!=typeof n)throw new Error("Preset es2015 'loose' option must be a boolean.");if("boolean"!=typeof s)throw new Error("Preset es2015 'spec' option must be a boolean.");if(!1!==i&&-1===r.indexOf(i))throw new Error("Preset es2015 'modules' option must be 'false' to indicate no modules\nor a module type which be be one of: 'commonjs' (default), 'amd', 'umd', 'systemjs'");var o={loose:n};return{plugins:[[a.default,{loose:n,spec:s}],u.default,c.default,[p.default,{spec:s}],h.default,[y.default,o],g.default,E.default,A.default,[_.default,o],[C.default,o],P.default,F.default,O.default,[R.default,o],M.default,[L.default,o],U.default,G.default,"commonjs"===i&&[Y.default,o],"systemjs"===i&&[K.default,o],"amd"===i&&[J.default,o],"umd"===i&&[z.default,o],[Q.default,{async:!1,asyncGenerators:!1}]].filter(Boolean)}}t.__esModule=!0;var s=r(83),a=n(s),o=r(76),u=n(o),l=r(75),c=n(l),f=r(68),p=n(f),d=r(69),h=n(d),m=r(71),y=n(m),v=r(78),g=n(v),b=r(80),E=n(b),x=r(130),A=n(x),S=r(72),_=n(S),D=r(74),C=n(D),w=r(82),P=n(w),k=r(85),F=n(k),T=r(66),O=n(T),B=r(81),R=n(B),I=r(79),M=n(I),N=r(73),L=n(N),j=r(70),U=n(j),V=r(84),G=n(V),W=r(77),Y=n(W),q=r(208),K=n(q),H=r(131),J=n(H),X=r(209),z=n(X),$=r(86),Q=n($),Z=i({});t.default=Z,Object.defineProperty(Z,"buildPreset",{configurable:!0,writable:!0,enumerable:!1,value:i}),e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(132),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={plugins:[i.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(128),s=n(i),a=r(129),o=n(a);t.default={plugins:[s.default,o.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(221),s=n(i),a=r(203),o=n(a),u=r(210),l=n(u);t.default={presets:[s.default],plugins:[o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(222),s=n(i),a=r(204),o=n(a),u=r(205),l=n(u),c=r(324),f=n(c);t.default={presets:[s.default],plugins:[f.default,o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(128),s=n(i),a=r(129),o=n(a),u=r(132),l=n(u),c=r(213),f=n(c),p=r(327),d=n(p);t.default={plugins:[s.default,o.default,l.default,d.default,f.default]},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function e(t,r){(0,i.default)(this,e),this.file=t,this.options=r};t.default=s,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.Flow=t.Pure=t.Generated=t.User=t.Var=t.BlockScoped=t.Referenced=t.Scope=t.Expression=t.Statement=t.BindingIdentifier=t.ReferencedMemberExpression=t.ReferencedIdentifier=void 0;var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);t.ReferencedIdentifier={types:["Identifier","JSXIdentifier"],checkPath:function(e,t){var r=e.node,s=e.parent;if(!i.isIdentifier(r,t)&&!i.isJSXMemberExpression(s,t)){if(!i.isJSXIdentifier(r,t))return!1;if(n.react.isCompatTag(r.name))return!1}return i.isReferenced(r,s)}},t.ReferencedMemberExpression={types:["MemberExpression"],checkPath:function(e){var t=e.node,r=e.parent;return i.isMemberExpression(t)&&i.isReferenced(t,r)}},t.BindingIdentifier={types:["Identifier"],checkPath:function(e){var t=e.node,r=e.parent;return i.isIdentifier(t)&&i.isBinding(t,r)}},t.Statement={types:["Statement"],checkPath:function(e){var t=e.node,r=e.parent;if(i.isStatement(t)){if(i.isVariableDeclaration(t)){if(i.isForXStatement(r,{left:t}))return!1;if(i.isForStatement(r,{init:t}))return!1}return!0}return!1}},t.Expression={types:["Expression"],checkPath:function(e){return e.isIdentifier()?e.isReferencedIdentifier():i.isExpression(e.node)}},t.Scope={types:["Scopable"],checkPath:function(e){return i.isScope(e.node,e.parent)}},t.Referenced={checkPath:function(e){return i.isReferenced(e.node,e.parent)}},t.BlockScoped={checkPath:function(e){return i.isBlockScoped(e.node)}},t.Var={types:["VariableDeclaration"],checkPath:function(e){return i.isVar(e.node)}},t.User={checkPath:function(e){return e.node&&!!e.node.loc}},t.Generated={checkPath:function(e){return!e.isUser()}},t.Pure={checkPath:function(e,t){return e.scope.isPure(e.node,t)}},t.Flow={types:["Flow","ImportDeclaration","ExportDeclaration","ImportSpecifier"],checkPath:function(e){var t=e.node;return!!i.isFlow(t)||(i.isImportDeclaration(t)?"type"===t.importKind||"typeof"===t.importKind:i.isExportDeclaration(t)?"type"===t.exportKind:!!i.isImportSpecifier(t)&&("type"===t.importKind||"typeof"===t.importKind))}}},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function(){function e(t){var r=t.existing,n=t.identifier,s=t.scope,a=t.path,o=t.kind;(0,i.default)(this,e),this.identifier=n,this.scope=s,this.path=a,this.kind=o,this.constantViolations=[],this.constant=!0,this.referencePaths=[],this.referenced=!1,this.references=0,this.clearValue(),r&&(this.constantViolations=[].concat(r.path,r.constantViolations,this.constantViolations))}return e.prototype.deoptValue=function(){this.clearValue(),this.hasDeoptedValue=!0},e.prototype.setValue=function(e){this.hasDeoptedValue||(this.hasValue=!0,this.value=e)},e.prototype.clearValue=function(){this.hasDeoptedValue=!1,this.hasValue=!1,this.value=null},e.prototype.reassign=function(e){this.constant=!1,-1===this.constantViolations.indexOf(e)&&this.constantViolations.push(e)},e.prototype.reference=function(e){-1===this.referencePaths.indexOf(e)&&(this.referenced=!0,this.references++,this.referencePaths.push(e))},e.prototype.dereference=function(){this.references--,this.referenced=!!this.references},e}();t.default=s,e.exports=t.default},function(e,t,r){"use strict";function n(e,t,r){for(var n=[].concat(e),i=(0,a.default)(null);n.length;){var s=n.shift();if(s){var o=u.getBindingIdentifiers.keys[s.type];if(u.isIdentifier(s))if(t){var l=i[s.name]=i[s.name]||[];l.push(s)}else i[s.name]=s;else if(u.isExportDeclaration(s))u.isDeclaration(s.declaration)&&n.push(s.declaration);else{if(r){if(u.isFunctionDeclaration(s)){n.push(s.id);continue}if(u.isFunctionExpression(s))continue}if(o)for(var c=0;c<o.length;c++){var f=o[c];s[f]&&(n=n.concat(s[f]))}}}}return i}function i(e,t){return n(e,t,!0)}t.__esModule=!0;var s=r(9),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.getBindingIdentifiers=n,t.getOuterBindingIdentifiers=i;var o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o);n.keys={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],OpaqueType:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],RestProperty:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]}},function(e,t){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,r){"use strict";var n=r(138),i=r(13)("toStringTag"),s="Arguments"==n(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,r,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=a(t=Object(e),i))?r:s?n(t):"Object"==(o=n(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,r){"use strict";var n=r(146),i=r(57).getWeak,s=r(21),a=r(16),o=r(136),u=r(55),l=r(137),c=r(28),f=r(58),p=l(5),d=l(6),h=0,m=function(e){return e._l||(e._l=new y)},y=function(){this.a=[]},v=function(e,t){return p(e.a,function(e){return e[0]===t})};y.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var r=v(this,e);r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=d(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,r,s){var l=e(function(e,n){o(e,l,t,"_i"),e._t=t,e._i=h++,e._l=void 0,void 0!=n&&u(n,r,e[s],e)});return n(l.prototype,{delete:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(f(this,t)).delete(e):r&&c(r,this._i)&&delete r[this._i]},has:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(f(this,t)).has(e):r&&c(r,this._i)}}),l},def:function(e,t,r){var n=i(s(t),!0);return!0===n?m(e).set(t,r):n[e._i]=r,e},ufstore:m}},function(e,t,r){"use strict";var n=r(16),i=r(15).document,s=n(i)&&n(i.createElement);e.exports=function(e){return s?i.createElement(e):{}}},function(e,t,r){"use strict";e.exports=!r(22)&&!r(27)(function(){return 7!=Object.defineProperty(r(230)("div"),"a",{get:function(){return 7}}).a})},function(e,t,r){"use strict";var n=r(138);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t){"use strict";e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,r){"use strict";var n=r(44),i=r(145),s=r(91),a=r(94),o=r(142),u=Object.assign;e.exports=!u||r(27)(function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach(function(e){t[e]=e}),7!=u({},e)[r]||Object.keys(u({},t)).join("")!=n})?function(e,t){for(var r=a(e),u=arguments.length,l=1,c=i.f,f=s.f;u>l;)for(var p,d=o(arguments[l++]),h=c?n(d).concat(c(d)):n(d),m=h.length,y=0;m>y;)f.call(d,p=h[y++])&&(r[p]=d[p]);return r}:u},function(e,t,r){"use strict";var n=r(91),i=r(92),s=r(37),a=r(154),o=r(28),u=r(231),l=Object.getOwnPropertyDescriptor;t.f=r(22)?l:function(e,t){if(e=s(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(o(e,t))return i(!n.f.call(e,t),e[t])}},function(e,t,r){"use strict";var n=r(237),i=r(141).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},function(e,t,r){"use strict";var n=r(28),i=r(37),s=r(420)(!1),a=r(150)("IE_PROTO");e.exports=function(e,t){var r,o=i(e),u=0,l=[];for(r in o)r!=a&&n(o,r)&&l.push(r);for(;t.length>u;)n(o,r=t[u++])&&(~s(l,r)||l.push(r));return l}},function(e,t,r){"use strict";var n=r(228),i=r(13)("iterator"),s=r(56);e.exports=r(5).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||s[n(e)]}},function(e,t,r){(function(n){"use strict";function i(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function s(e){var r=this.useColors;if(e[0]=(r?"%c":"")+this.namespace+(r?" %c":" ")+e[0]+(r?"%c ":" ")+"+"+t.humanize(this.diff),r){var n="color: "+this.color;e.splice(1,0,n,"color: inherit");var i=0,s=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(s=i))}),e.splice(s,0,n)}}function a(){return"object"===("undefined"==typeof console?"undefined":l(console))&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function o(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function u(){var e;try{e=t.storage.debug}catch(e){}return!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG),e}var l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t=e.exports=r(458),t.log=a,t.formatArgs=s,t.save=o,t.load=u,t.useColors=i,t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(u())}).call(t,r(8))},function(e,t){"use strict";!function(){function t(e){return 48<=e&&e<=57}function r(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70}function n(e){return e>=48&&e<=55}function i(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&d.indexOf(e)>=0}function s(e){return 10===e||13===e||8232===e||8233===e}function a(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}function o(e){return e<128?h[e]:p.NonAsciiIdentifierStart.test(a(e))}function u(e){return e<128?m[e]:p.NonAsciiIdentifierPart.test(a(e))}function l(e){return e<128?h[e]:f.NonAsciiIdentifierStart.test(a(e))}function c(e){return e<128?m[e]:f.NonAsciiIdentifierPart.test(a(e))}var f,p,d,h,m,y;for(p={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},f={
NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},d=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],h=new Array(128),y=0;y<128;++y)h[y]=y>=97&&y<=122||y>=65&&y<=90||36===y||95===y;for(m=new Array(128),y=0;y<128;++y)m[y]=y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||36===y||95===y;e.exports={isDecimalDigit:t,isHexDigit:r,isOctalDigit:n,isWhiteSpace:i,isLineTerminator:s,isIdentifierStartES5:o,isIdentifierPartES5:u,isIdentifierStartES6:l,isIdentifierPartES6:c}}()},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Set");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new i;++t<r;)this.add(e[t])}var i=r(160),s=r(561),a=r(562);n.prototype.add=n.prototype.push=s,n.prototype.has=a,e.exports=n},function(e,t,r){"use strict";var n=r(17),i=n.Uint8Array;e.exports=i},function(e,t){"use strict";function r(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}e.exports=r},function(e,t,r){"use strict";function n(e,t){var r=a(e),n=!r&&s(e),c=!r&&!n&&o(e),p=!r&&!n&&!c&&l(e),d=r||n||c||p,h=d?i(e.length,String):[],m=h.length;for(var y in e)!t&&!f.call(e,y)||d&&("length"==y||c&&("offset"==y||"parent"==y)||p&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||u(y,m))||h.push(y);return h}var i=r(513),s=r(112),a=r(6),o=r(113),u=r(171),l=r(177),c=Object.prototype,f=c.hasOwnProperty;e.exports=n},function(e,t){"use strict";function r(e,t,r,n){var i=-1,s=null==e?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){(void 0===r||s(e[t],r))&&(void 0!==r||t in e)||i(e,t,r)}var i=r(163),s=r(46);e.exports=n},function(e,t,r){"use strict";var n=r(527),i=n();e.exports=i},function(e,t,r){"use strict";function n(e,t){t=i(t,e);for(var r=0,n=t.length;null!=e&&r<n;)e=e[s(t[r++])];return r&&r==n?e:void 0}var i=r(255),s=r(108);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=t(e);return s(e)?n:i(n,r(e))}var i=r(161),s=r(6);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,a,o){return e===t||(null==e||null==t||!s(e)&&!s(t)?e!==e&&t!==t:i(e,t,r,a,n,o))}var i=r(494),s=r(25);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=-1,n=s(e)?Array(e.length):[];return i(e,function(e,i,s){n[++r]=t(e,i,s)}),n}var i=r(487),s=r(24);e.exports=n},function(e,t,r){"use strict";function n(e){if("string"==typeof e)return e;if(a(e))return s(e,n)+"";if(o(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=r(45),s=r(60),a=r(6),o=r(62),u=1/0,l=i?i.prototype:void 0,c=l?l.toString:void 0;e.exports=n},function(e,t){"use strict";function r(e,t){return e.has(t)}e.exports=r},function(e,t,r){"use strict";function n(e,t){return i(e)?e:s(e,t)?[e]:a(o(e))}var i=r(6),s=r(173),a=r(571),o=r(114);e.exports=n},function(e,t,r){(function(e){"use strict";function n(e,t){if(t)return e.slice();var r=e.length,n=c?c(r):new e.constructor(r);return e.copy(n),n}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(17),a="object"==i(t)&&t&&!t.nodeType&&t,o=a&&"object"==i(e)&&e&&!e.nodeType&&e,u=o&&o.exports===a,l=u?s.Buffer:void 0,c=l?l.allocUnsafe:void 0;e.exports=n}).call(t,r(39)(e))},function(e,t,r){"use strict";function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var i=r(167);e.exports=n},function(e,t,r){"use strict";function n(e){return function(t,r,n){var o=Object(t);if(!s(t)){var u=i(r,3);t=a(t),r=function(e){return u(o[e],e,o)}}var l=e(t,r,n);return l>-1?o[u?t[l]:l]:void 0}}var i=r(61),s=r(24),a=r(32);e.exports=n},function(e,t,r){"use strict";var n=r(38),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},function(e,t,r){"use strict";function n(e,t,r,n,l,c){var f=r&o,p=e.length,d=t.length;if(p!=d&&!(f&&d>p))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var m=-1,y=!0,v=r&u?new i:void 0;for(c.set(e,t),c.set(t,e);++m<p;){var g=e[m],b=t[m];if(n)var E=f?n(b,g,m,t,e,c):n(g,b,m,e,t,c);if(void 0!==E){if(E)continue;y=!1;break}if(v){if(!s(t,function(e,t){if(!a(v,t)&&(g===e||l(g,e,r,n,c)))return v.push(t)})){y=!1;break}}else if(g!==b&&!l(g,b,r,n,c)){y=!1;break}}return c.delete(e),c.delete(t),y}var i=r(242),s=r(482),a=r(254),o=1,u=2;e.exports=n},function(e,t){(function(t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n="object"==(void 0===t?"undefined":r(t))&&t&&t.Object===Object&&t;e.exports=n}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return i(e,a,s)}var i=r(250),s=r(170),a=r(32);e.exports=n},function(e,t,r){"use strict";var n=r(161),i=r(169),s=r(170),a=r(279),o=Object.getOwnPropertySymbols,u=o?function(e){for(var t=[];e;)n(t,s(e)),e=i(e);return t}:a;e.exports=u},function(e,t,r){"use strict";var n=r(472),i=r(159),s=r(474),a=r(241),o=r(475),u=r(30),l=r(272),c=l(n),f=l(i),p=l(s),d=l(a),h=l(o),m=u;(n&&"[object DataView]"!=m(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=m(new i)||s&&"[object Promise]"!=m(s.resolve())||a&&"[object Set]"!=m(new a)||o&&"[object WeakMap]"!=m(new o))&&(m=function(e){var t=u(e),r="[object Object]"==t?e.constructor:void 0,n=r?l(r):"";if(n)switch(n){case c:return"[object DataView]";case f:return"[object Map]";case p:return"[object Promise]";case d:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=m},function(e,t,r){"use strict";function n(e,t,r){t=i(t,e);for(var n=-1,c=t.length,f=!1;++n<c;){var p=l(t[n]);if(!(f=null!=e&&r(e,p)))break;e=e[p]}return f||++n!=c?f:!!(c=null==e?0:e.length)&&u(c)&&o(p,c)&&(a(e)||s(e))}var i=r(255),s=r(112),a=r(6),o=r(171),u=r(176),l=r(108);e.exports=n},function(e,t,r){"use strict";function n(e){return"function"!=typeof e.constructor||a(e)?{}:i(s(e))}var i=r(486),s=r(169),a=r(105);e.exports=n},function(e,t,r){"use strict";function n(e){return e===e&&!i(e)}var i=r(18);e.exports=n},function(e,t){"use strict";function r(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}e.exports=r},function(e,t){"use strict";function r(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}e.exports=r},function(e,t,r){(function(e){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(261),s="object"==n(t)&&t&&!t.nodeType&&t,a=s&&"object"==n(e)&&e&&!e.nodeType&&e,o=a&&a.exports===s,u=o&&i.process,l=function(){try{return u&&u.binding&&u.binding("util")}catch(e){}}();e.exports=l}).call(t,r(39)(e))},function(e,t){"use strict";function r(e,t){return function(r){return e(t(r))}}e.exports=r},function(e,t){"use strict";function r(e){if(null!=e){try{return i.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var n=Function.prototype,i=n.toString;e.exports=r},function(e,t,r){"use strict";var n=r(244),i=r(573),s=r(101),a=r(529),o=s(function(e){return e.push(void 0,a),n(i,void 0,e)});e.exports=o},function(e,t,r){"use strict";function n(e,t){return null!=e&&s(e,t,i)}var i=r(490),s=r(265);e.exports=n},function(e,t,r){"use strict";function n(e){if(!a(e)||i(e)!=o)return!1;var t=s(e);if(null===t)return!0;var r=f.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&c.call(r)==p}var i=r(30),s=r(169),a=r(25),o="[object Object]",u=Function.prototype,l=Object.prototype,c=u.toString,f=l.hasOwnProperty,p=c.call(Object);e.exports=n},function(e,t,r){"use strict";var n=r(498),i=r(102),s=r(270),a=s&&s.isRegExp,o=a?i(a):n;e.exports=o},function(e,t,r){"use strict";var n=r(101),i=r(593),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){return t=(r?s(e,t,r):void 0===t)?1:a(t),i(o(e),t)}var i=r(510),s=r(172),a=r(48),o=r(114);e.exports=n},function(e,t){"use strict";function r(){return[]}e.exports=r},function(e,t,r){"use strict";function n(e){return null==e?[]:i(e,s(e))}var i=r(515),s=r(32);e.exports=n},function(e,t){"use strict";function r(e,t,r){if(c)try{c.call(l,e,t,{value:r})}catch(n){e[t]=r}else e[t]=r}function n(e){return e&&(r(e,"call",e.call),r(e,"apply",e.apply)),e}function i(e){return f?f.call(l,e):(m.prototype=e||null,new m)}function s(){do{var e=a(h.call(d.call(y(),36),2))}while(p.call(v,e));return v[e]=e}function a(e){var t={};return t[e]=!0,Object.keys(t)[0]}function o(e){return i(null)}function u(e){function t(t){function n(r,n){if(r===u)return n?i=null:i||(i=e(t))}var i;r(t,a,n)}function n(e){return p.call(e,a)||t(e),e[a](u)}var a=s(),u=i(null);return e=e||o,n.forget=function(e){p.call(e,a)&&e[a](u,!0)},n}var l=Object,c=Object.defineProperty,f=Object.create;n(c),n(f);var p=n(Object.prototype.hasOwnProperty),d=n(Number.prototype.toString),h=n(String.prototype.slice),m=function(){},y=Math.random,v=i(null);t.makeUniqueKey=s;var g=Object.getOwnPropertyNames;Object.getOwnPropertyNames=function(e){for(var t=g(e),r=0,n=0,i=t.length;r<i;++r)p.call(v,t[r])||(r>n&&(t[n]=t[r]),++n);return t.length=n,t},t.makeAccessor=u},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(a){var o="object"==s(t)&&t,u="object"==s(e)&&e&&e.exports==o&&e,l="object"==(void 0===i?"undefined":s(i))&&i;l.global!==l&&l.window!==l||(a=l);var c={rangeOrder:"A range’s `stop` value must be greater than or equal to the `start` value.",codePointRange:"Invalid code point value. Code points range from U+000000 to U+10FFFF."},f=/\\x00([^0123456789]|$)/g,p={},d=p.hasOwnProperty,h=function(e,t){for(var r=-1,n=e.length;++r<n;)t(e[r],r)},m=p.toString,y=function(e){return"[object Array]"==m.call(e)},v=function(e){return"number"==typeof e||"[object Number]"==m.call(e)},g=function(e,t){var r=String(e);return r.length<t?("0000"+r).slice(-t):r},b=function(e){return Number(e).toString(16).toUpperCase()},E=[].slice,x=function(e){for(var t,r=-1,n=e.length,i=n-1,s=[],a=!0,o=0;++r<n;)if(t=e[r],a)s.push(t),o=t,a=!1;else if(t==o+1){if(r!=i){o=t;continue}a=!0,s.push(t+1)}else s.push(o+1,t),o=t;return a||s.push(t+1),s},A=function(e,t){for(var r,n,i=0,s=e.length;i<s;){if(r=e[i],n=e[i+1],t>=r&&t<n)return t==r?n==r+1?(e.splice(i,2),e):(e[i]=t+1,e):t==n-1?(e[i+1]=t,e):(e.splice(i,2,r,t,t+1,n),e);i+=2}return e},S=function(e,t,r){if(r<t)throw Error(c.rangeOrder);for(var n,i,s=0;s<e.length;){if(n=e[s],i=e[s+1]-1,n>r)return e;if(t<=n&&r>=i)e.splice(s,2);else{if(t>=n&&r<i)return t==n?(e[s]=r+1,e[s+1]=i+1,e):(e.splice(s,2,n,t,r+1,i+1),e);if(t>=n&&t<=i)e[s+1]=t;else if(r>=n&&r<=i)return e[s]=r+1,e;s+=2}}return e},_=function(e,t){var r,n,i=0,s=null,a=e.length;if(t<0||t>1114111)throw RangeError(c.codePointRange);for(;i<a;){if(r=e[i],n=e[i+1],t>=r&&t<n)return e;if(t==r-1)return e[i]=t,e;if(r>t)return e.splice(null!=s?s+2:0,0,t,t+1),e;if(t==n)return t+1==e[i+2]?(e.splice(i,4,r,e[i+3]),e):(e[i+1]=t+1,e);s=i,i+=2}return e.push(t,t+1),e},D=function(e,t){for(var r,n,i=0,s=e.slice(),a=t.length;i<a;)r=t[i],n=t[i+1]-1,s=r==n?_(s,r):w(s,r,n),i+=2;return s},C=function(e,t){for(var r,n,i=0,s=e.slice(),a=t.length;i<a;)r=t[i],n=t[i+1]-1,s=r==n?A(s,r):S(s,r,n),i+=2;return s},w=function(e,t,r){if(r<t)throw Error(c.rangeOrder);if(t<0||t>1114111||r<0||r>1114111)throw RangeError(c.codePointRange);for(var n,i,s=0,a=!1,o=e.length;s<o;){if(n=e[s],i=e[s+1],a){if(n==r+1)return e.splice(s-1,2),e;if(n>r)return e;n>=t&&n<=r&&(i>t&&i-1<=r?(e.splice(s,2),s-=2):(e.splice(s-1,2),s-=2))}else{if(n==r+1)return e[s]=t,e;if(n>r)return e.splice(s,0,t,r+1),e;if(t>=n&&t<i&&r+1<=i)return e;t>=n&&t<i||i==t?(e[s+1]=r+1,a=!0):t<=n&&r+1>=i&&(e[s]=t,e[s+1]=r+1,a=!0)}s+=2}return a||e.push(t,r+1),e},P=function(e,t){var r=0,n=e.length,i=e[r],s=e[n-1];if(n>=2&&(t<i||t>s))return!1;for(;r<n;){if(i=e[r],s=e[r+1],t>=i&&t<s)return!0;r+=2}return!1},k=function(e,t){for(var r,n=0,i=t.length,s=[];n<i;)r=t[n],P(e,r)&&s.push(r),++n;return x(s)},F=function(e){return!e.length},T=function(e){return 2==e.length&&e[0]+1==e[1]},O=function(e){for(var t,r,n=0,i=[],s=e.length;n<s;){for(t=e[n],r=e[n+1];t<r;)i.push(t),++t;n+=2}return i},B=Math.floor,R=function(e){return parseInt(B((e-65536)/1024)+55296,10)},I=function(e){return parseInt((e-65536)%1024+56320,10)},M=String.fromCharCode,N=function(e){return 9==e?"\\t":10==e?"\\n":12==e?"\\f":13==e?"\\r":92==e?"\\\\":36==e||e>=40&&e<=43||45==e||46==e||63==e||e>=91&&e<=94||e>=123&&e<=125?"\\"+M(e):e>=32&&e<=126?M(e):e<=255?"\\x"+g(b(e),2):"\\u"+g(b(e),4)},L=function(e){return e<=65535?N(e):"\\u{"+e.toString(16).toUpperCase()+"}"},j=function(e){var t,r=e.length,n=e.charCodeAt(0);return n>=55296&&n<=56319&&r>1?(t=e.charCodeAt(1),1024*(n-55296)+t-56320+65536):n},U=function(e){var t,r,n="",i=0,s=e.length;if(T(e))return N(e[0]);for(;i<s;)t=e[i],r=e[i+1]-1,n+=t==r?N(t):t+1==r?N(t)+N(r):N(t)+"-"+N(r),i+=2;return"["+n+"]"},V=function(e){var t,r,n="",i=0,s=e.length;if(T(e))return L(e[0]);for(;i<s;)t=e[i],r=e[i+1]-1,n+=t==r?L(t):t+1==r?L(t)+L(r):L(t)+"-"+L(r),i+=2;return"["+n+"]"},G=function(e){for(var t,r,n=[],i=[],s=[],a=[],o=0,u=e.length;o<u;)t=e[o],r=e[o+1]-1,t<55296?(r<55296&&s.push(t,r+1),r>=55296&&r<=56319&&(s.push(t,55296),n.push(55296,r+1)),r>=56320&&r<=57343&&(s.push(t,55296),n.push(55296,56320),i.push(56320,r+1)),r>57343&&(s.push(t,55296),n.push(55296,56320),i.push(56320,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>=55296&&t<=56319?(r>=55296&&r<=56319&&n.push(t,r+1),r>=56320&&r<=57343&&(n.push(t,56320),i.push(56320,r+1)),r>57343&&(n.push(t,56320),i.push(56320,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>=56320&&t<=57343?(r>=56320&&r<=57343&&i.push(t,r+1),r>57343&&(i.push(t,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>57343&&t<=65535?r<=65535?s.push(t,r+1):(s.push(t,65536),a.push(65536,r+1)):a.push(t,r+1),o+=2;return{loneHighSurrogates:n,loneLowSurrogates:i,bmp:s,astral:a}},W=function(e){for(var t,r,n,i,s,a,o=[],u=[],l=!1,c=-1,f=e.length;++c<f;)if(t=e[c],r=e[c+1]){for(n=t[0],i=t[1],s=r[0],a=r[1],u=i;s&&n[0]==s[0]&&n[1]==s[1];)u=T(a)?_(u,a[0]):w(u,a[0],a[1]-1),++c,t=e[c],n=t[0],i=t[1],r=e[c+1],s=r&&r[0],a=r&&r[1],l=!0;o.push([n,l?u:i]),l=!1}else o.push(t);return Y(o)},Y=function(e){if(1==e.length)return e;for(var t=-1,r=-1;++t<e.length;){var n=e[t],i=n[1],s=i[0],a=i[1];for(r=t;++r<e.length;){var o=e[r],u=o[1],l=u[0],c=u[1];s==l&&a==c&&(T(o[0])?n[0]=_(n[0],o[0][0]):n[0]=w(n[0],o[0][0],o[0][1]-1),e.splice(r,1),--r)}}return e},q=function(e){if(!e.length)return[];for(var t,r,n,i,s,a,o=0,u=[],l=e.length;o<l;){t=e[o],r=e[o+1]-1,n=R(t),i=I(t),s=R(r),a=I(r);var c=56320==i,f=57343==a,p=!1;n==s||c&&f?(u.push([[n,s+1],[i,a+1]]),p=!0):u.push([[n,n+1],[i,57344]]),!p&&n+1<s&&(f?(u.push([[n+1,s+1],[56320,a+1]]),p=!0):u.push([[n+1,s],[56320,57344]])),p||u.push([[s,s+1],[56320,a+1]]),o+=2}return W(u)},K=function(e){var t=[];return h(e,function(e){var r=e[0],n=e[1];t.push(U(r)+U(n))}),t.join("|")},H=function(e,t,r){if(r)return V(e);var n=[],i=G(e),s=i.loneHighSurrogates,a=i.loneLowSurrogates,o=i.bmp,u=i.astral,l=!F(s),c=!F(a),f=q(u);return t&&(o=D(o,s),l=!1,o=D(o,a),c=!1),F(o)||n.push(U(o)),f.length&&n.push(K(f)),l&&n.push(U(s)+"(?![\\uDC00-\\uDFFF])"),c&&n.push("(?:[^\\uD800-\\uDBFF]|^)"+U(a)),n.join("|")},J=function e(t){return arguments.length>1&&(t=E.call(arguments)),this instanceof e?(this.data=[],t?this.add(t):this):(new e).add(t)};J.version="1.3.2";var X=J.prototype;!function(e,t){var r;for(r in t)d.call(t,r)&&(e[r]=t[r])}(X,{add:function(e){var t=this;return null==e?t:e instanceof J?(t.data=D(t.data,e.data),t):(arguments.length>1&&(e=E.call(arguments)),y(e)?(h(e,function(e){t.add(e)}),t):(t.data=_(t.data,v(e)?e:j(e)),t))},remove:function(e){var t=this;return null==e?t:e instanceof J?(t.data=C(t.data,e.data),t):(arguments.length>1&&(e=E.call(arguments)),y(e)?(h(e,function(e){t.remove(e)}),t):(t.data=A(t.data,v(e)?e:j(e)),t))},addRange:function(e,t){var r=this;return r.data=w(r.data,v(e)?e:j(e),v(t)?t:j(t)),r},removeRange:function(e,t){var r=this,n=v(e)?e:j(e),i=v(t)?t:j(t);return r.data=S(r.data,n,i),r},intersection:function(e){var t=this,r=e instanceof J?O(e.data):e;return t.data=k(t.data,r),t},contains:function(e){return P(this.data,v(e)?e:j(e))},clone:function(){var e=new J;return e.data=this.data.slice(0),e},toString:function(e){var t=H(this.data,!!e&&e.bmpOnly,!!e&&e.hasUnicodeFlag);return t?t.replace(f,"\\0$1"):"[]"},toRegExp:function(e){var t=this.toString(e&&-1!=e.indexOf("u")?{hasUnicodeFlag:!0}:null);return RegExp(t,e||"")},valueOf:function(){return O(this.data)}}),X.toArray=X.valueOf,"object"==s(r(49))&&r(49)?void 0!==(n=function(){return J}.call(t,r,t,e))&&(e.exports=n):o&&!o.nodeType?u?u.exports=J:o.regenerate=J:a.regenerate=J}(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){p.default.ok(this instanceof s),h.assertIdentifier(e),this.nextTempId=0,this.contextId=e,this.listing=[],this.marked=[!0],this.finalLoc=a(),this.tryEntries=[],this.leapManager=new y.LeapManager(this)}function a(){return h.numericLiteral(-1)}function o(e){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+(0,c.default)(e))}function u(e){var t=e.type
;return"normal"===t?!x.call(e,"target"):"break"===t||"continue"===t?!x.call(e,"value")&&h.isLiteral(e.target):("return"===t||"throw"===t)&&(x.call(e,"value")&&!x.call(e,"target"))}var l=r(35),c=i(l),f=r(64),p=i(f),d=r(1),h=n(d),m=r(607),y=n(m),v=r(608),g=n(v),b=r(116),E=n(b),x=Object.prototype.hasOwnProperty,A=s.prototype;t.Emitter=s,A.mark=function(e){h.assertLiteral(e);var t=this.listing.length;return-1===e.value?e.value=t:p.default.strictEqual(e.value,t),this.marked[t]=!0,e},A.emit=function(e){h.isExpression(e)&&(e=h.expressionStatement(e)),h.assertStatement(e),this.listing.push(e)},A.emitAssign=function(e,t){return this.emit(this.assign(e,t)),e},A.assign=function(e,t){return h.expressionStatement(h.assignmentExpression("=",e,t))},A.contextProperty=function(e,t){return h.memberExpression(this.contextId,t?h.stringLiteral(e):h.identifier(e),!!t)},A.stop=function(e){e&&this.setReturnValue(e),this.jump(this.finalLoc)},A.setReturnValue=function(e){h.assertExpression(e.value),this.emitAssign(this.contextProperty("rval"),this.explodeExpression(e))},A.clearPendingException=function(e,t){h.assertLiteral(e);var r=h.callExpression(this.contextProperty("catch",!0),[e]);t?this.emitAssign(t,r):this.emit(r)},A.jump=function(e){this.emitAssign(this.contextProperty("next"),e),this.emit(h.breakStatement())},A.jumpIf=function(e,t){h.assertExpression(e),h.assertLiteral(t),this.emit(h.ifStatement(e,h.blockStatement([this.assign(this.contextProperty("next"),t),h.breakStatement()])))},A.jumpIfNot=function(e,t){h.assertExpression(e),h.assertLiteral(t);var r=void 0;r=h.isUnaryExpression(e)&&"!"===e.operator?e.argument:h.unaryExpression("!",e),this.emit(h.ifStatement(r,h.blockStatement([this.assign(this.contextProperty("next"),t),h.breakStatement()])))},A.makeTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},A.getContextFunction=function(e){return h.functionExpression(e||null,[this.contextId],h.blockStatement([this.getDispatchLoop()]),!1,!1)},A.getDispatchLoop=function(){var e=this,t=[],r=void 0,n=!1;return e.listing.forEach(function(i,s){e.marked.hasOwnProperty(s)&&(t.push(h.switchCase(h.numericLiteral(s),r=[])),n=!1),n||(r.push(i),h.isCompletionStatement(i)&&(n=!0))}),this.finalLoc.value=this.listing.length,t.push(h.switchCase(this.finalLoc,[]),h.switchCase(h.stringLiteral("end"),[h.returnStatement(h.callExpression(this.contextProperty("stop"),[]))])),h.whileStatement(h.numericLiteral(1),h.switchStatement(h.assignmentExpression("=",this.contextProperty("prev"),this.contextProperty("next")),t))},A.getTryLocsList=function(){if(0===this.tryEntries.length)return null;var e=0;return h.arrayExpression(this.tryEntries.map(function(t){var r=t.firstLoc.value;p.default.ok(r>=e,"try entries out of order"),e=r;var n=t.catchEntry,i=t.finallyEntry,s=[t.firstLoc,n?n.firstLoc:null];return i&&(s[2]=i.firstLoc,s[3]=i.afterLoc),h.arrayExpression(s)}))},A.explode=function(e,t){var r=e.node,n=this;if(h.assertNode(r),h.isDeclaration(r))throw o(r);if(h.isStatement(r))return n.explodeStatement(e);if(h.isExpression(r))return n.explodeExpression(e,t);switch(r.type){case"Program":return e.get("body").map(n.explodeStatement,n);case"VariableDeclarator":throw o(r);case"Property":case"SwitchCase":case"CatchClause":throw new Error(r.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+(0,c.default)(r.type))}},A.explodeStatement=function(e,t){var r=e.node,n=this,i=void 0,s=void 0,o=void 0;if(h.assertStatement(r),t?h.assertIdentifier(t):t=null,h.isBlockStatement(r))return void e.get("body").forEach(function(e){n.explodeStatement(e)});if(!g.containsLeap(r))return void n.emit(r);switch(r.type){case"ExpressionStatement":n.explodeExpression(e.get("expression"),!0);break;case"LabeledStatement":s=a(),n.leapManager.withEntry(new y.LabeledEntry(s,r.label),function(){n.explodeStatement(e.get("body"),r.label)}),n.mark(s);break;case"WhileStatement":i=a(),s=a(),n.mark(i),n.jumpIfNot(n.explodeExpression(e.get("test")),s),n.leapManager.withEntry(new y.LoopEntry(s,i,t),function(){n.explodeStatement(e.get("body"))}),n.jump(i),n.mark(s);break;case"DoWhileStatement":var u=a(),l=a();s=a(),n.mark(u),n.leapManager.withEntry(new y.LoopEntry(s,l,t),function(){n.explode(e.get("body"))}),n.mark(l),n.jumpIf(n.explodeExpression(e.get("test")),u),n.mark(s);break;case"ForStatement":o=a();var f=a();s=a(),r.init&&n.explode(e.get("init"),!0),n.mark(o),r.test&&n.jumpIfNot(n.explodeExpression(e.get("test")),s),n.leapManager.withEntry(new y.LoopEntry(s,f,t),function(){n.explodeStatement(e.get("body"))}),n.mark(f),r.update&&n.explode(e.get("update"),!0),n.jump(o),n.mark(s);break;case"TypeCastExpression":return n.explodeExpression(e.get("expression"));case"ForInStatement":o=a(),s=a();var d=n.makeTempVar();n.emitAssign(d,h.callExpression(E.runtimeProperty("keys"),[n.explodeExpression(e.get("right"))])),n.mark(o);var m=n.makeTempVar();n.jumpIf(h.memberExpression(h.assignmentExpression("=",m,h.callExpression(d,[])),h.identifier("done"),!1),s),n.emitAssign(r.left,h.memberExpression(m,h.identifier("value"),!1)),n.leapManager.withEntry(new y.LoopEntry(s,o,t),function(){n.explodeStatement(e.get("body"))}),n.jump(o),n.mark(s);break;case"BreakStatement":n.emitAbruptCompletion({type:"break",target:n.leapManager.getBreakLoc(r.label)});break;case"ContinueStatement":n.emitAbruptCompletion({type:"continue",target:n.leapManager.getContinueLoc(r.label)});break;case"SwitchStatement":var v=n.emitAssign(n.makeTempVar(),n.explodeExpression(e.get("discriminant")));s=a();for(var b=a(),x=b,A=[],_=r.cases||[],D=_.length-1;D>=0;--D){var C=_[D];h.assertSwitchCase(C),C.test?x=h.conditionalExpression(h.binaryExpression("===",v,C.test),A[D]=a(),x):A[D]=b}var w=e.get("discriminant");E.replaceWithOrRemove(w,x),n.jump(n.explodeExpression(w)),n.leapManager.withEntry(new y.SwitchEntry(s),function(){e.get("cases").forEach(function(e){var t=e.key;n.mark(A[t]),e.get("consequent").forEach(function(e){n.explodeStatement(e)})})}),n.mark(s),-1===b.value&&(n.mark(b),p.default.strictEqual(s.value,b.value));break;case"IfStatement":var P=r.alternate&&a();s=a(),n.jumpIfNot(n.explodeExpression(e.get("test")),P||s),n.explodeStatement(e.get("consequent")),P&&(n.jump(s),n.mark(P),n.explodeStatement(e.get("alternate"))),n.mark(s);break;case"ReturnStatement":n.emitAbruptCompletion({type:"return",value:n.explodeExpression(e.get("argument"))});break;case"WithStatement":throw new Error("WithStatement not supported in generator functions.");case"TryStatement":s=a();var k=r.handler,F=k&&a(),T=F&&new y.CatchEntry(F,k.param),O=r.finalizer&&a(),B=O&&new y.FinallyEntry(O,s),R=new y.TryEntry(n.getUnmarkedCurrentLoc(),T,B);n.tryEntries.push(R),n.updateContextPrevLoc(R.firstLoc),n.leapManager.withEntry(R,function(){if(n.explodeStatement(e.get("block")),F){O?n.jump(O):n.jump(s),n.updateContextPrevLoc(n.mark(F));var t=e.get("handler.body"),r=n.makeTempVar();n.clearPendingException(R.firstLoc,r),t.traverse(S,{safeParam:r,catchParamName:k.param.name}),n.leapManager.withEntry(T,function(){n.explodeStatement(t)})}O&&(n.updateContextPrevLoc(n.mark(O)),n.leapManager.withEntry(B,function(){n.explodeStatement(e.get("finalizer"))}),n.emit(h.returnStatement(h.callExpression(n.contextProperty("finish"),[B.firstLoc]))))}),n.mark(s);break;case"ThrowStatement":n.emit(h.throwStatement(n.explodeExpression(e.get("argument"))));break;default:throw new Error("unknown Statement of type "+(0,c.default)(r.type))}};var S={Identifier:function(e,t){e.node.name===t.catchParamName&&E.isReference(e)&&E.replaceWithOrRemove(e,t.safeParam)},Scope:function(e,t){e.scope.hasOwnBinding(t.catchParamName)&&e.skip()}};A.emitAbruptCompletion=function(e){u(e)||p.default.ok(!1,"invalid completion record: "+(0,c.default)(e)),p.default.notStrictEqual(e.type,"normal","normal completions are not abrupt");var t=[h.stringLiteral(e.type)];"break"===e.type||"continue"===e.type?(h.assertLiteral(e.target),t[1]=e.target):"return"!==e.type&&"throw"!==e.type||e.value&&(h.assertExpression(e.value),t[1]=e.value),this.emit(h.returnStatement(h.callExpression(this.contextProperty("abrupt"),t)))},A.getUnmarkedCurrentLoc=function(){return h.numericLiteral(this.listing.length)},A.updateContextPrevLoc=function(e){e?(h.assertLiteral(e),-1===e.value?e.value=this.listing.length:p.default.strictEqual(e.value,this.listing.length)):e=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty("prev"),e)},A.explodeExpression=function(e,t){function r(e){if(h.assertExpression(e),!t)return e;s.emit(e)}function n(e,t,r){p.default.ok(!r||!e,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var n=s.explodeExpression(t,r);return r||(e||l&&!h.isLiteral(n))&&(n=s.emitAssign(e||s.makeTempVar(),n)),n}var i=e.node;if(!i)return i;h.assertExpression(i);var s=this,o=void 0,u=void 0;if(!g.containsLeap(i))return r(i);var l=g.containsLeap.onlyChildren(i);switch(i.type){case"MemberExpression":return r(h.memberExpression(s.explodeExpression(e.get("object")),i.computed?n(null,e.get("property")):i.property,i.computed));case"CallExpression":var f=e.get("callee"),d=e.get("arguments"),m=void 0,y=[],v=!1;if(d.forEach(function(e){v=v||g.containsLeap(e.node)}),h.isMemberExpression(f.node))if(v){var b=n(s.makeTempVar(),f.get("object")),E=f.node.computed?n(null,f.get("property")):f.node.property;y.unshift(b),m=h.memberExpression(h.memberExpression(b,E,f.node.computed),h.identifier("call"),!1)}else m=s.explodeExpression(f);else m=n(null,f),h.isMemberExpression(m)&&(m=h.sequenceExpression([h.numericLiteral(0),m]));return d.forEach(function(e){y.push(n(null,e))}),r(h.callExpression(m,y));case"NewExpression":return r(h.newExpression(n(null,e.get("callee")),e.get("arguments").map(function(e){return n(null,e)})));case"ObjectExpression":return r(h.objectExpression(e.get("properties").map(function(e){return e.isObjectProperty()?h.objectProperty(e.node.key,n(null,e.get("value")),e.node.computed):e.node})));case"ArrayExpression":return r(h.arrayExpression(e.get("elements").map(function(e){return n(null,e)})));case"SequenceExpression":var x=i.expressions.length-1;return e.get("expressions").forEach(function(e){e.key===x?o=s.explodeExpression(e,t):s.explodeExpression(e,!0)}),o;case"LogicalExpression":u=a(),t||(o=s.makeTempVar());var A=n(o,e.get("left"));return"&&"===i.operator?s.jumpIfNot(A,u):(p.default.strictEqual(i.operator,"||"),s.jumpIf(A,u)),n(o,e.get("right"),t),s.mark(u),o;case"ConditionalExpression":var S=a();u=a();var _=s.explodeExpression(e.get("test"));return s.jumpIfNot(_,S),t||(o=s.makeTempVar()),n(o,e.get("consequent"),t),s.jump(u),s.mark(S),n(o,e.get("alternate"),t),s.mark(u),o;case"UnaryExpression":return r(h.unaryExpression(i.operator,s.explodeExpression(e.get("argument")),!!i.prefix));case"BinaryExpression":return r(h.binaryExpression(i.operator,n(null,e.get("left")),n(null,e.get("right"))));case"AssignmentExpression":return r(h.assignmentExpression(i.operator,s.explodeExpression(e.get("left")),s.explodeExpression(e.get("right"))));case"UpdateExpression":return r(h.updateExpression(i.operator,s.explodeExpression(e.get("argument")),i.prefix));case"YieldExpression":u=a();var D=i.argument&&s.explodeExpression(e.get("argument"));if(D&&i.delegate){var C=s.makeTempVar();return s.emit(h.returnStatement(h.callExpression(s.contextProperty("delegateYield"),[D,h.stringLiteral(C.property.name),u]))),s.mark(u),C}return s.emitAssign(s.contextProperty("next"),u),s.emit(h.returnStatement(D||null)),s.mark(u),s.contextProperty("sent");default:throw new Error("unknown Expression of type "+(0,c.default)(i.type))}}},function(e,t){"use strict";e.exports=function(e){var t=/^\\\\\?\\/.test(e),r=/[^\x00-\x80]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},function(e,t,r){"use strict";function n(){this._array=[],this._set=Object.create(null)}var i=r(63),s=Object.prototype.hasOwnProperty;n.fromArray=function(e,t){for(var r=new n,i=0,s=e.length;i<s;i++)r.add(e[i],t);return r},n.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},n.prototype.add=function(e,t){var r=i.toSetString(e),n=s.call(this._set,r),a=this._array.length;n&&!t||this._array.push(e),n||(this._set[r]=a)},n.prototype.has=function(e){var t=i.toSetString(e);return s.call(this._set,t)},n.prototype.indexOf=function(e){var t=i.toSetString(e);if(s.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},n.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},n.prototype.toArray=function(){return this._array.slice()},t.ArraySet=n},function(e,t,r){"use strict";function n(e){return e<0?1+(-e<<1):0+(e<<1)}function i(e){var t=1==(1&e),r=e>>1;return t?-r:r}var s=r(616);t.encode=function(e){var t,r="",i=n(e);do{t=31&i,i>>>=5,i>0&&(t|=32),r+=s.encode(t)}while(i>0);return r},t.decode=function(e,t,r){var n,a,o=e.length,u=0,l=0;do{if(t>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(a=s.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));n=!!(32&a),a&=31,u+=a<<l,l+=5}while(n);r.value=i(u),r.rest=t}},function(e,t,r){"use strict";function n(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}var i=r(286),s=r(63),a=r(285).ArraySet,o=r(618).MappingList;n.prototype._version=3,n.fromSourceMap=function(e){var t=e.sourceRoot,r=new n({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=s.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)}),e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&r.setSourceContent(t,n)}),r},n.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),r=s.getArg(e,"original",null),n=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},n.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=s.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[s.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},n.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var i=this._sourceRoot;null!=i&&(n=s.relative(i,n));var o=new a,u=new a;this._mappings.unsortedForEach(function(t){if(t.source===n&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=s.join(r,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var l=t.source;null==l||o.has(l)||o.add(l);var c=t.name;null==c||u.has(c)||u.add(c)},this),this._sources=o,this._names=u,e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=s.join(r,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,n))},this)},n.prototype._validateMapping=function(e,t,r,n){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},n.prototype._serializeMappings=function(){for(var e,t,r,n,a=0,o=1,u=0,l=0,c=0,f=0,p="",d=this._mappings.toArray(),h=0,m=d.length;h<m;h++){if(t=d[h],e="",t.generatedLine!==o)for(a=0;t.generatedLine!==o;)e+=";",o++;else if(h>0){if(!s.compareByGeneratedPositionsInflated(t,d[h-1]))continue;e+=","}e+=i.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=i.encode(n-f),f=n,e+=i.encode(t.originalLine-1-l),l=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=i.encode(r-c),c=r)),p+=e}return p},n.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var r=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},n.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},n.prototype.toString=function(){return JSON.stringify(this.toJSON())},t.SourceMapGenerator=n},function(e,t,r){"use strict";t.SourceMapGenerator=r(287).SourceMapGenerator,t.SourceMapConsumer=r(620).SourceMapConsumer,t.SourceNode=r(621).SourceNode},function(e,t,r){(function(e){"use strict";function t(){var e={modifiers:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},colors:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39]},bgColors:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49]}};return e.colors.grey=e.colors.gray,Object.keys(e).forEach(function(t){var r=e[t];Object.keys(r).forEach(function(t){var n=r[t];e[t]=r[t]={open:"["+n[0]+"m",close:"["+n[1]+"m"}}),Object.defineProperty(e,t,{value:r,enumerable:!1})}),e}Object.defineProperty(e,"exports",{enumerable:!0,get:t})}).call(t,r(39)(e))},function(e,t,r){"use strict";e.exports=r(182)},function(e,t){"use strict";function r(e){return["babel-plugin-"+e,e]}t.__esModule=!0,t.default=r,e.exports=t.default},function(e,t){"use strict";function r(e){var t=["babel-preset-"+e,e],r=e.match(/^(@[^\/]+)\/(.+)$/);if(r){var n=r[1],i=r[2];t.push(n+"/babel-preset-"+i)}return t}t.__esModule=!0,t.default=r,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e,t){if(e&&t)return(0,o.default)(e,t,function(e,t){if(t&&Array.isArray(e)){for(var r=t.slice(0),n=e,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;r.indexOf(u)<0&&r.push(u)}return r}})};var a=r(590),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e,t,r){if(e){if("Program"===e.type)return i.file(e,t||[],r||[]);if("File"===e.type)return e}throw new Error("Not a valid ast?")};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e,t){var r=[],n=g.functionExpression(null,[g.identifier("global")],g.blockStatement(r)),i=g.program([g.expressionStatement(g.callExpression(n,[c.get("selfGlobal")]))]);return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.assignmentExpression("=",g.memberExpression(g.identifier("global"),e),g.objectExpression([])))])),t(r),i}function a(e,t){var r=[];return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.identifier("global"))])),t(r),g.program([b({FACTORY_PARAMETERS:g.identifier("global"),BROWSER_ARGUMENTS:g.assignmentExpression("=",g.memberExpression(g.identifier("root"),e),g.objectExpression([])),COMMON_ARGUMENTS:g.identifier("exports"),AMD_ARGUMENTS:g.arrayExpression([g.stringLiteral("exports")]),FACTORY_BODY:r,UMD_ROOT:g.identifier("this")})])}function o(e,t){var r=[];return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.objectExpression([]))])),t(r),r.push(g.expressionStatement(e)),g.program(r)}function u(e,t,r){c.list.forEach(function(n){if(!(r&&r.indexOf(n)<0)){var i=g.identifier(n);e.push(g.expressionStatement(g.assignmentExpression("=",g.memberExpression(t,i),c.get(n))))}})}t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global",r=g.identifier("babelHelpers"),n=function(t){return u(t,r,e)},i=void 0,l={global:s,umd:a,var:o}[t];if(!l)throw new Error(h.get("unsupportedOutputType",t));return i=l(r,n),(0,p.default)(i).code};var l=r(194),c=i(l),f=r(186),p=n(f),d=r(20),h=i(d),m=r(4),y=n(m),v=r(1),g=i(v),b=(0,y.default)('\n  (function (root, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(AMD_ARGUMENTS, factory);\n    } else if (typeof exports === "object") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      factory(BROWSER_ARGUMENTS);\n    }\n  })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n    FACTORY_BODY\n  });\n');e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(65),s=n(i),a=r(594),o=n(a);t.default=new s.default({name:"internal.blockHoist",visitor:{Block:{exit:function(e){for(var t=e.node,r=!1,n=0;n<t.body.length;n++){var i=t.body[n];if(i&&null!=i._blockHoist){r=!0;break}}r&&(t.body=(0,o.default)(t.body,function(e){var t=e&&e._blockHoist;return null==t&&(t=1),!0===t&&(t=2),-1*t}))}}}}),e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return!!e.is("_forceShadow")||t}function s(e,t){var r=e.inShadow(t);if(i(e,r)){var n=e.node._shadowedFunctionLiteral,s=void 0,a=!1,o=e.find(function(t){if(t.parentPath&&t.parentPath.isClassProperty()&&"value"===t.key)return!0;if(e===t)return!1;if((t.isProgram()||t.isFunction())&&(s=s||t),t.isProgram())return a=!0,!0;if(t.isFunction()&&!t.isArrowFunctionExpression()){if(n){if(t===n||t.node===n.node)return!0}else if(!t.is("shadow"))return!0;return a=!0,!1}return!1});if(n&&o.isProgram()&&!n.isProgram()&&(o=e.findParent(function(e){return e.isProgram()||e.isFunction()})),o!==s&&a){var u=o.getData(t);if(u)return e.replaceWith(u);var l=e.scope.generateUidIdentifier(t);o.setData(t,l);var c=o.findParent(function(e){return e.isClass()}),p=!!(c&&c.node&&c.node.superClass);if("this"===t&&o.isMethod({kind:"constructor"})&&p)o.scope.push({id:l}),o.traverse(d,{id:l});else{var h="this"===t?f.thisExpression():f.identifier(t);n&&(h._shadowedFunctionLiteral=n),o.scope.push({id:l,init:h})}return e.replaceWith(l)}}}t.__esModule=!0;var a=r(10),o=n(a),u=r(65),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=(0,o.default)("super this bound"),d={CallExpression:function(e){if(e.get("callee").isSuper()){var t=e.node;t[p]||(t[p]=!0,e.replaceWith(f.assignmentExpression("=",this.id,t)))}}};t.default=new l.default({name:"internal.shadowFunctions",visitor:{ThisExpression:function(e){s(e,"this")},ReferencedIdentifier:function(e){"arguments"===e.node.name&&s(e,"arguments")}}}),e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(294),o=n(a),u=r(65),l=n(u),c=r(50),f=n(c),p=function(){function e(){(0,s.default)(this,e)}return e.prototype.lint=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.code=!1,t.mode="lint",this.transform(e,t)},e.prototype.pretransform=function(e,t){var r=new f.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r})},e.prototype.transform=function(e,t){var r=new f.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r.transform()})},e.prototype.analyse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2];return t.code=!1,r&&(t.plugins=t.plugins||[],t.plugins.push(new l.default({visitor:r}))),this.transform(e,t).metadata},e.prototype.transformFromAst=function(e,t,r){e=(0,o.default)(e);var n=new f.default(r,this);return n.wrap(t,function(){return n.addCode(t),n.addAst(e),n.transform()})},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(42),o=n(a),u=r(41),l=n(u),c=r(119),f=n(c),p=r(50),d=(n(p),function(e){function t(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,s.default)(this,t);var a=(0,o.default)(this,e.call(this));return a.plugin=n,a.key=n.key,a.file=r,a.opts=i,a}return(0,l.default)(t,e),t.prototype.addHelper=function(){var e;return(e=this.file).addHelper.apply(e,arguments)},t.prototype.addImport=function(){var e;return(e=this.file).addImport.apply(e,arguments)},t.prototype.getModuleName=function(){var e;return(e=this.file).getModuleName.apply(e,arguments)},t.prototype.buildCodeFrameError=function(){var e;return(e=this.file).buildCodeFrameError.apply(e,arguments)},t}(f.default));t.default=d,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(625),o=n(a),u=/^[ \t]+$/,l=function(){function e(t){(0,s.default)(this,e),this._map=null,this._buf=[],this._last="",this._queue=[],this._position={line:1,column:0},this._sourcePosition={identifierName:null,line:null,column:null,filename:null},this._map=t}return e.prototype.get=function(){this._flush();var e=this._map,t={code:(0,o.default)(this._buf.join("")),map:null,rawMappings:e&&e.getRawMappings()};return e&&Object.defineProperty(t,"map",{configurable:!0,enumerable:!0,get:function(){return this.map=e.get()},set:function(e){Object.defineProperty(this,"map",{value:e,writable:!0})}}),t},e.prototype.append=function(e){this._flush();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._append(e,r,n,s,i)},e.prototype.queue=function(e){if("\n"===e)for(;this._queue.length>0&&u.test(this._queue[0][0]);)this._queue.shift();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._queue.unshift([e,r,n,s,i])},e.prototype._flush=function(){for(var e=void 0;e=this._queue.pop();)this._append.apply(this,e)},e.prototype._append=function(e,t,r,n,i){this._map&&"\n"!==e[0]&&this._map.mark(this._position.line,this._position.column,t,r,n,i),this._buf.push(e),this._last=e[e.length-1];for(var s=0;s<e.length;s++)"\n"===e[s]?(this._position.line++,this._position.column=0):this._position.column++},e.prototype.removeTrailingNewline=function(){this._queue.length>0&&"\n"===this._queue[0][0]&&this._queue.shift()},e.prototype.removeLastSemicolon=function(){this._queue.length>0&&";"===this._queue[0][0]&&this._queue.shift()},e.prototype.endsWith=function(e){if(1===e.length){var t=void 0;if(this._queue.length>0){var r=this._queue[0][0];t=r[r.length-1]}else t=this._last;return t===e}var n=this._last+this._queue.reduce(function(e,t){return t[0]+e},"");return e.length<=n.length&&n.slice(-e.length)===e},e.prototype.hasContent=function(){return this._queue.length>0||!!this._last},e.prototype.source=function(e,t){if(!e||t){var r=t?t[e]:null;this._sourcePosition.identifierName=t&&t.identifierName||null,this._sourcePosition.line=r?r.line:null,this._sourcePosition.column=r?r.column:null,this._sourcePosition.filename=t&&t.filename||null}},e.prototype.withSource=function(e,t,r){if(!this._map)return r();var n=this._sourcePosition.line,i=this._sourcePosition.column,s=this._sourcePosition.filename,a=this._sourcePosition.identifierName;this.source(e,t),r(),this._sourcePosition.line=n,this._sourcePosition.column=i,this._sourcePosition.filename=s,this._sourcePosition.identifierName=a},e.prototype.getCurrentColumn=function(){var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=e.lastIndexOf("\n");return-1===t?this._position.column+e.length:e.length-1-t},e.prototype.getCurrentLine=function(){for(var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=0,r=0;r<e.length;r++)"\n"===e[r]&&t++;return this._position.line+t},e}();t.default=l,e.exports=t.default},function(e,t,r){"use strict";function n(e){this.print(e.program,e)}function i(e){this.printInnerComments(e,!1),this.printSequence(e.directives,e),e.directives&&e.directives.length&&this.newline(),this.printSequence(e.body,e)}function s(e){this.token("{"),this.printInnerComments(e);var t=e.directives&&e.directives.length;e.body.length||t?(this.newline(),this.printSequence(e.directives,e,{indent:!0}),t&&this.newline(),this.printSequence(e.body,e,{indent:!0}),this.removeTrailingNewline(),this.source("end",e.loc),this.endsWith("\n")||this.newline(),this.rightBrace()):(this.source("end",e.loc),this.token("}"))}function a(){}function o(e){this.print(e.value,e),this.semicolon()}t.__esModule=!0,t.File=n,t.Program=i,t.BlockStatement=s,t.Noop=a,t.Directive=o;var u=r(123);Object.defineProperty(t,"DirectiveLiteral",{enumerable:!0,get:function(){return u.StringLiteral}})},function(e,t){"use strict";function r(e){this.printJoin(e.decorators,e),this.word("class"),e.id&&(this.space(),this.print(e.id,e)),this.print(e.typeParameters,e),e.superClass&&(this.space(),this.word("extends"),this.space(),this.print(e.superClass,e),this.print(e.superTypeParameters,e)),e.implements&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements,e)),this.space(),this.print(e.body,e)}function n(e){this.token("{"),this.printInnerComments(e),0===e.body.length?this.token("}"):(this.newline(),this.indent(),this.printSequence(e.body,e),this.dedent(),this.endsWith("\n")||this.newline(),this.rightBrace())}function i(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),e.computed?(this.token("["),this.print(e.key,e),this.token("]")):(this._variance(e),this.print(e.key,e)),this.print(e.typeAnnotation,e),e.value&&(this.space(),this.token("="),this.space(),this.print(e.value,e)),this.semicolon()}function s(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),"constructorCall"===e.kind&&(this.word("call"),this.space()),this._method(e)}t.__esModule=!0,t.ClassDeclaration=r,t.ClassBody=n,t.ClassProperty=i,t.ClassMethod=s,t.ClassExpression=r},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){"void"===e.operator||"delete"===e.operator||"typeof"===e.operator?(this.word(e.operator),this.space()):this.token(e.operator),this.print(e.argument,e)}function s(e){this.word("do"),this.space(),this.print(e.body,e)}function a(e){this.token("("),this.print(e.expression,e),this.token(")")}function o(e){e.prefix?(this.token(e.operator),this.print(e.argument,e)):(this.print(e.argument,e),this.token(e.operator))}function u(e){this.print(e.test,e),this.space(),this.token("?"),this.space(),this.print(e.consequent,e),this.space(),this.token(":"),this.space(),this.print(e.alternate,e)}function l(e,t){this.word("new"),this.space(),this.print(e.callee,e),(0!==e.arguments.length||!this.format.minified||C.isCallExpression(t,{callee:e})||C.isMemberExpression(t)||C.isNewExpression(t))&&(this.token("("),this.printList(e.arguments,e),this.token(")"))}function c(e){this.printList(e.expressions,e)}function f(){
this.word("this")}function p(){this.word("super")}function d(e){this.token("@"),this.print(e.expression,e),this.newline()}function h(){this.token(","),this.newline(),this.endsWith("\n")||this.space()}function m(e){this.print(e.callee,e),this.token("(");var t=e._prettyCall,r=void 0;t&&(r=h,this.newline(),this.indent()),this.printList(e.arguments,e,{separator:r}),t&&(this.newline(),this.dedent()),this.token(")")}function y(){this.word("import")}function v(e){return function(t){if(this.word(e),t.delegate&&this.token("*"),t.argument){this.space();var r=this.startTerminatorless();this.print(t.argument,t),this.endTerminatorless(r)}}}function g(){this.semicolon(!0)}function b(e){this.print(e.expression,e),this.semicolon()}function E(e){this.print(e.left,e),e.left.optional&&this.token("?"),this.print(e.left.typeAnnotation,e),this.space(),this.token("="),this.space(),this.print(e.right,e)}function x(e,t){var r=this.inForStatementInitCounter&&"in"===e.operator&&!P.needsParens(e,t);r&&this.token("("),this.print(e.left,e),this.space(),"in"===e.operator||"instanceof"===e.operator?this.word(e.operator):this.token(e.operator),this.space(),this.print(e.right,e),r&&this.token(")")}function A(e){this.print(e.object,e),this.token("::"),this.print(e.callee,e)}function S(e){if(this.print(e.object,e),!e.computed&&C.isMemberExpression(e.property))throw new TypeError("Got a MemberExpression for MemberExpression property");var t=e.computed;C.isLiteral(e.property)&&"number"==typeof e.property.value&&(t=!0),t?(this.token("["),this.print(e.property,e),this.token("]")):(this.token("."),this.print(e.property,e))}function _(e){this.print(e.meta,e),this.token("."),this.print(e.property,e)}t.__esModule=!0,t.LogicalExpression=t.BinaryExpression=t.AwaitExpression=t.YieldExpression=void 0,t.UnaryExpression=i,t.DoExpression=s,t.ParenthesizedExpression=a,t.UpdateExpression=o,t.ConditionalExpression=u,t.NewExpression=l,t.SequenceExpression=c,t.ThisExpression=f,t.Super=p,t.Decorator=d,t.CallExpression=m,t.Import=y,t.EmptyStatement=g,t.ExpressionStatement=b,t.AssignmentPattern=E,t.AssignmentExpression=x,t.BindExpression=A,t.MemberExpression=S,t.MetaProperty=_;var D=r(1),C=n(D),w=r(187),P=n(w);t.YieldExpression=v("yield"),t.AwaitExpression=v("await");t.BinaryExpression=x,t.LogicalExpression=x},function(e,t,r){"use strict";function n(){this.word("any")}function i(e){this.print(e.elementType,e),this.token("["),this.token("]")}function s(){this.word("boolean")}function a(e){this.word(e.value?"true":"false")}function o(){this.word("null")}function u(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("class"),this.space(),this._interfaceish(e)}function l(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("function"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation.typeAnnotation,e),this.semicolon()}function c(e){this.word("declare"),this.space(),this.InterfaceDeclaration(e)}function f(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id,e),this.space(),this.print(e.body,e)}function p(e){this.word("declare"),this.space(),this.word("module"),this.token("."),this.word("exports"),this.print(e.typeAnnotation,e)}function d(e){this.word("declare"),this.space(),this.TypeAlias(e)}function h(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.OpaqueType(e)}function m(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("var"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation,e),this.semicolon()}function y(e){this.word("declare"),this.space(),this.word("export"),this.space(),e.default&&(this.word("default"),this.space()),v.apply(this,arguments)}function v(e){if(e.declaration){var t=e.declaration;this.print(t,e),Q.isStatement(t)||this.semicolon()}else this.token("{"),e.specifiers.length&&(this.space(),this.printList(e.specifiers,e),this.space()),this.token("}"),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}function g(){this.token("*")}function b(e,t){this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e),e.rest&&(e.params.length&&(this.token(","),this.space()),this.token("..."),this.print(e.rest,e)),this.token(")"),"ObjectTypeCallProperty"===t.type||"DeclareFunction"===t.type?this.token(":"):(this.space(),this.token("=>")),this.space(),this.print(e.returnType,e)}function E(e){this.print(e.name,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.typeAnnotation,e)}function x(e){this.print(e.id,e),this.print(e.typeParameters,e)}function A(e){this.print(e.id,e),this.print(e.typeParameters,e),e.extends.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends,e)),e.mixins&&e.mixins.length&&(this.space(),this.word("mixins"),this.space(),this.printList(e.mixins,e)),this.space(),this.print(e.body,e)}function S(e){"plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")}function _(e){this.word("interface"),this.space(),this._interfaceish(e)}function D(){this.space(),this.token("&"),this.space()}function C(e){this.printJoin(e.types,e,{separator:D})}function w(){this.word("mixed")}function P(){this.word("empty")}function k(e){this.token("?"),this.print(e.typeAnnotation,e)}function F(){this.word("number")}function T(){this.word("string")}function O(){this.word("this")}function B(e){this.token("["),this.printList(e.types,e),this.token("]")}function R(e){this.word("typeof"),this.space(),this.print(e.argument,e)}function I(e){this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),this.space(),this.token("="),this.space(),this.print(e.right,e),this.semicolon()}function M(e){this.word("opaque"),this.space(),this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),e.supertype&&(this.token(":"),this.space(),this.print(e.supertype,e)),e.impltype&&(this.space(),this.token("="),this.space(),this.print(e.impltype,e)),this.semicolon()}function N(e){this.token(":"),this.space(),e.optional&&this.token("?"),this.print(e.typeAnnotation,e)}function L(e){this._variance(e),this.word(e.name),e.bound&&this.print(e.bound,e),e.default&&(this.space(),this.token("="),this.space(),this.print(e.default,e))}function j(e){this.token("<"),this.printList(e.params,e,{}),this.token(">")}function U(e){var t=this;e.exact?this.token("{|"):this.token("{");var r=e.properties.concat(e.callProperties,e.indexers);r.length&&(this.space(),this.printJoin(r,e,{addNewlines:function(e){if(e&&!r[0])return 1},indent:!0,statement:!0,iterator:function(){1!==r.length&&(t.format.flowCommaSeparator?t.token(","):t.semicolon(),t.space())}}),this.space()),e.exact?this.token("|}"):this.token("}")}function V(e){e.static&&(this.word("static"),this.space()),this.print(e.value,e)}function G(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.token("["),this.print(e.id,e),this.token(":"),this.space(),this.print(e.key,e),this.token("]"),this.token(":"),this.space(),this.print(e.value,e)}function W(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.print(e.key,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.value,e)}function Y(e){this.token("..."),this.print(e.argument,e)}function q(e){this.print(e.qualification,e),this.token("."),this.print(e.id,e)}function K(){this.space(),this.token("|"),this.space()}function H(e){this.printJoin(e.types,e,{separator:K})}function J(e){this.token("("),this.print(e.expression,e),this.print(e.typeAnnotation,e),this.token(")")}function X(){this.word("void")}t.__esModule=!0,t.TypeParameterDeclaration=t.StringLiteralTypeAnnotation=t.NumericLiteralTypeAnnotation=t.GenericTypeAnnotation=t.ClassImplements=void 0,t.AnyTypeAnnotation=n,t.ArrayTypeAnnotation=i,t.BooleanTypeAnnotation=s,t.BooleanLiteralTypeAnnotation=a,t.NullLiteralTypeAnnotation=o,t.DeclareClass=u,t.DeclareFunction=l,t.DeclareInterface=c,t.DeclareModule=f,t.DeclareModuleExports=p,t.DeclareTypeAlias=d,t.DeclareOpaqueType=h,t.DeclareVariable=m,t.DeclareExportDeclaration=y,t.ExistentialTypeParam=g,t.FunctionTypeAnnotation=b,t.FunctionTypeParam=E,t.InterfaceExtends=x,t._interfaceish=A,t._variance=S,t.InterfaceDeclaration=_,t.IntersectionTypeAnnotation=C,t.MixedTypeAnnotation=w,t.EmptyTypeAnnotation=P,t.NullableTypeAnnotation=k;var z=r(123);Object.defineProperty(t,"NumericLiteralTypeAnnotation",{enumerable:!0,get:function(){return z.NumericLiteral}}),Object.defineProperty(t,"StringLiteralTypeAnnotation",{enumerable:!0,get:function(){return z.StringLiteral}}),t.NumberTypeAnnotation=F,t.StringTypeAnnotation=T,t.ThisTypeAnnotation=O,t.TupleTypeAnnotation=B,t.TypeofTypeAnnotation=R,t.TypeAlias=I,t.OpaqueType=M,t.TypeAnnotation=N,t.TypeParameter=L,t.TypeParameterInstantiation=j,t.ObjectTypeAnnotation=U,t.ObjectTypeCallProperty=V,t.ObjectTypeIndexer=G,t.ObjectTypeProperty=W,t.ObjectTypeSpreadProperty=Y,t.QualifiedTypeIdentifier=q,t.UnionTypeAnnotation=H,t.TypeCastExpression=J,t.VoidTypeAnnotation=X;var $=r(1),Q=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}($);t.ClassImplements=x,t.GenericTypeAnnotation=x,t.TypeParameterDeclaration=j},function(e,t,r){"use strict";function n(e){this.print(e.name,e),e.value&&(this.token("="),this.print(e.value,e))}function i(e){this.word(e.name)}function s(e){this.print(e.namespace,e),this.token(":"),this.print(e.name,e)}function a(e){this.print(e.object,e),this.token("."),this.print(e.property,e)}function o(e){this.token("{"),this.token("..."),this.print(e.argument,e),this.token("}")}function u(e){this.token("{"),this.print(e.expression,e),this.token("}")}function l(e){this.token("{"),this.token("..."),this.print(e.expression,e),this.token("}")}function c(e){this.token(e.value)}function f(e){var t=e.openingElement;if(this.print(t,e),!t.selfClosing){this.indent();for(var r=e.children,n=Array.isArray(r),i=0,r=n?r:(0,v.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;this.print(a,e)}this.dedent(),this.print(e.closingElement,e)}}function p(){this.space()}function d(e){this.token("<"),this.print(e.name,e),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,e,{separator:p})),e.selfClosing?(this.space(),this.token("/>")):this.token(">")}function h(e){this.token("</"),this.print(e.name,e),this.token(">")}function m(){}t.__esModule=!0;var y=r(2),v=function(e){return e&&e.__esModule?e:{default:e}}(y);t.JSXAttribute=n,t.JSXIdentifier=i,t.JSXNamespacedName=s,t.JSXMemberExpression=a,t.JSXSpreadAttribute=o,t.JSXExpressionContainer=u,t.JSXSpreadChild=l,t.JSXText=c,t.JSXElement=f,t.JSXOpeningElement=d,t.JSXClosingElement=h,t.JSXEmptyExpression=m},function(e,t,r){"use strict";function n(e){var t=this;this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e,{iterator:function(e){e.optional&&t.token("?"),t.print(e.typeAnnotation,e)}}),this.token(")"),e.returnType&&this.print(e.returnType,e)}function i(e){var t=e.kind,r=e.key;"method"!==t&&"init"!==t||e.generator&&this.token("*"),"get"!==t&&"set"!==t||(this.word(t),this.space()),e.async&&(this.word("async"),this.space()),e.computed?(this.token("["),this.print(r,e),this.token("]")):this.print(r,e),this._params(e),this.space(),this.print(e.body,e)}function s(e){e.async&&(this.word("async"),this.space()),this.word("function"),e.generator&&this.token("*"),e.id?(this.space(),this.print(e.id,e)):this.space(),this._params(e),this.space(),this.print(e.body,e)}function a(e){e.async&&(this.word("async"),this.space());var t=e.params[0];1===e.params.length&&l.isIdentifier(t)&&!o(e,t)?this.print(t,e):this._params(e),this.space(),this.token("=>"),this.space(),this.print(e.body,e)}function o(e,t){return e.typeParameters||e.returnType||t.typeAnnotation||t.optional||t.trailingComments}t.__esModule=!0,t.FunctionDeclaration=void 0,t._params=n,t._method=i,t.FunctionExpression=s,t.ArrowFunctionExpression=a;var u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.FunctionDeclaration=s},function(e,t,r){"use strict";function n(e){"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space()),this.print(e.imported,e),e.local&&e.local.name!==e.imported.name&&(this.space(),this.word("as"),this.space(),this.print(e.local,e))}function i(e){this.print(e.local,e)}function s(e){this.print(e.exported,e)}function a(e){this.print(e.local,e),e.exported&&e.local.name!==e.exported.name&&(this.space(),this.word("as"),this.space(),this.print(e.exported,e))}function o(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.exported,e)}function u(e){this.word("export"),this.space(),this.token("*"),this.space(),this.word("from"),this.space(),this.print(e.source,e),this.semicolon()}function l(){this.word("export"),this.space(),f.apply(this,arguments)}function c(){this.word("export"),this.space(),this.word("default"),this.space(),f.apply(this,arguments)}function f(e){if(e.declaration){var t=e.declaration;this.print(t,e),m.isStatement(t)||this.semicolon()}else{"type"===e.exportKind&&(this.word("type"),this.space());for(var r=e.specifiers.slice(0),n=!1;;){var i=r[0];if(!m.isExportDefaultSpecifier(i)&&!m.isExportNamespaceSpecifier(i))break;n=!0,this.print(r.shift(),e),r.length&&(this.token(","),this.space())}(r.length||!r.length&&!n)&&(this.token("{"),r.length&&(this.space(),this.printList(r,e),this.space()),this.token("}")),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}}function p(e){this.word("import"),this.space(),"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space());var t=e.specifiers.slice(0);if(t&&t.length){for(;;){var r=t[0];if(!m.isImportDefaultSpecifier(r)&&!m.isImportNamespaceSpecifier(r))break;this.print(t.shift(),e),t.length&&(this.token(","),this.space())}t.length&&(this.token("{"),this.space(),this.printList(t,e),this.space(),this.token("}")),this.space(),this.word("from"),this.space()}this.print(e.source,e),this.semicolon()}function d(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.local,e)}t.__esModule=!0,t.ImportSpecifier=n,t.ImportDefaultSpecifier=i,t.ExportDefaultSpecifier=s,t.ExportSpecifier=a,t.ExportNamespaceSpecifier=o,t.ExportAllDeclaration=u,t.ExportNamedDeclaration=l,t.ExportDefaultDeclaration=c,t.ImportDeclaration=p,t.ImportNamespaceSpecifier=d;var h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h)},function(e,t,r){"use strict";function n(e){this.word("with"),this.space(),this.token("("),this.print(e.object,e),this.token(")"),this.printBlock(e)}function i(e){this.word("if"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.space();var t=e.alternate&&S.isIfStatement(s(e.consequent));t&&(this.token("{"),this.newline(),this.indent()),this.printAndIndentOnComments(e.consequent,e),t&&(this.dedent(),this.newline(),this.token("}")),e.alternate&&(this.endsWith("}")&&this.space(),this.word("else"),this.space(),this.printAndIndentOnComments(e.alternate,e))}function s(e){return S.isStatement(e.body)?s(e.body):e}function a(e){this.word("for"),this.space(),this.token("("),this.inForStatementInitCounter++,this.print(e.init,e),this.inForStatementInitCounter--,this.token(";"),e.test&&(this.space(),this.print(e.test,e)),this.token(";"),e.update&&(this.space(),this.print(e.update,e)),this.token(")"),this.printBlock(e)}function o(e){this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.printBlock(e)}function u(e){this.word("do"),this.space(),this.print(e.body,e),this.space(),this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.semicolon()}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"label";return function(r){this.word(e);var n=r[t];if(n){this.space();var i=this.startTerminatorless();this.print(n,r),this.endTerminatorless(i)}this.semicolon()}}function c(e){this.print(e.label,e),this.token(":"),this.space(),this.print(e.body,e)}function f(e){this.word("try"),this.space(),this.print(e.block,e),this.space(),e.handlers?this.print(e.handlers[0],e):this.print(e.handler,e),e.finalizer&&(this.space(),this.word("finally"),this.space(),this.print(e.finalizer,e))}function p(e){this.word("catch"),this.space(),this.token("("),this.print(e.param,e),this.token(")"),this.space(),this.print(e.body,e)}function d(e){this.word("switch"),this.space(),this.token("("),this.print(e.discriminant,e),this.token(")"),this.space(),this.token("{"),this.printSequence(e.cases,e,{indent:!0,addNewlines:function(t,r){if(!t&&e.cases[e.cases.length-1]===r)return-1}}),this.token("}")}function h(e){e.test?(this.word("case"),this.space(),this.print(e.test,e),this.token(":")):(this.word("default"),this.token(":")),e.consequent.length&&(this.newline(),this.printSequence(e.consequent,e,{indent:!0}))}function m(){this.word("debugger"),this.semicolon()}function y(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<4;e++)this.space(!0)}function v(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<6;e++)this.space(!0)}function g(e,t){this.word(e.kind),this.space();var r=!1;if(!S.isFor(t))for(var n=e.declarations,i=Array.isArray(n),s=0,n=i?n:(0,x.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;o.init&&(r=!0)}var u=void 0;r&&(u="const"===e.kind?v:y),this.printList(e.declarations,e,{separator:u}),(!S.isFor(t)||t.left!==e&&t.init!==e)&&this.semicolon()}function b(e){this.print(e.id,e),this.print(e.id.typeAnnotation,e),e.init&&(this.space(),this.token("="),this.space(),this.print(e.init,e))}t.__esModule=!0,t.ThrowStatement=t.BreakStatement=t.ReturnStatement=t.ContinueStatement=t.ForAwaitStatement=t.ForOfStatement=t.ForInStatement=void 0;var E=r(2),x=function(e){return e&&e.__esModule?e:{default:e}}(E);t.WithStatement=n,t.IfStatement=i,t.ForStatement=a,t.WhileStatement=o,t.DoWhileStatement=u,t.LabeledStatement=c,t.TryStatement=f,t.CatchClause=p,t.SwitchStatement=d,t.SwitchCase=h,t.DebuggerStatement=m,t.VariableDeclaration=g,t.VariableDeclarator=b;var A=r(1),S=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(A),_=function(e){return function(t){this.word("for"),this.space(),"await"===e&&(this.word("await"),this.space()),this.token("("),this.print(t.left,t),this.space(),this.word("await"===e?"of":e),this.space(),this.print(t.right,t),this.token(")"),this.printBlock(t)}};t.ForInStatement=_("in"),t.ForOfStatement=_("of"),t.ForAwaitStatement=_("await"),t.ContinueStatement=l("continue"),t.ReturnStatement=l("return","argument"),t.BreakStatement=l("break"),t.ThrowStatement=l("throw","argument")},function(e,t){"use strict";function r(e){this.print(e.tag,e),this.print(e.quasi,e)}function n(e,t){var r=t.quasis[0]===e,n=t.quasis[t.quasis.length-1]===e,i=(r?"`":"}")+e.value.raw+(n?"`":"${");this.token(i)}function i(e){for(var t=e.quasis,r=0;r<t.length;r++)this.print(t[r],e),r+1<t.length&&this.print(e.expressions[r],e)}t.__esModule=!0,t.TaggedTemplateExpression=r,t.TemplateElement=n,t.TemplateLiteral=i},function(e,t,r){"use strict";function n(e,t){return b.isArrayTypeAnnotation(t)}function i(e,t){return b.isMemberExpression(t)&&t.object===e}function s(e,t,r){return v(r,{considerArrow:!0})}function a(e,t,r){return v(r)}function o(e,t){if((b.isCallExpression(t)||b.isNewExpression(t))&&t.callee===e||b.isUnaryLike(t)||b.isMemberExpression(t)&&t.object===e||b.isAwaitExpression(t))return!0;if(b.isBinary(t)){var r=t.operator,n=E[r],i=e.operator,s=E[i];if(n===s&&t.right===e&&!b.isLogicalExpression(t)||n>s)return!0}return!1}function u(e,t){return"in"===e.operator&&(b.isVariableDeclarator(t)||b.isFor(t))}function l(e,t){return!(b.isForStatement(t)||b.isThrowStatement(t)||b.isReturnStatement(t)||b.isIfStatement(t)&&t.test===e||b.isWhileStatement(t)&&t.test===e||b.isForInStatement(t)&&t.right===e||b.isSwitchStatement(t)&&t.discriminant===e||b.isExpressionStatement(t)&&t.expression===e)}function c(e,t){return b.isBinary(t)||b.isUnaryLike(t)||b.isCallExpression(t)||b.isMemberExpression(t)||b.isNewExpression(t)||b.isConditionalExpression(t)&&e===t.test}function f(e,t,r){return v(r,{considerDefaultExports:!0})}function p(e,t){return b.isMemberExpression(t,{object:e})||b.isCallExpression(t,{callee:e})||b.isNewExpression(t,{callee:e})}function d(e,t,r){return v(r,{considerDefaultExports:!0})}function h(e,t){return!!(b.isExportDeclaration(t)||b.isBinaryExpression(t)||b.isLogicalExpression(t)||b.isUnaryExpression(t)||b.isTaggedTemplateExpression(t))||p(e,t)}function m(e,t){return!!(b.isUnaryLike(t)||b.isBinary(t)||b.isConditionalExpression(t,{test:e})||b.isAwaitExpression(t))||p(e,t)}function y(e){return!!b.isObjectPattern(e.left)||m.apply(void 0,arguments)}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.considerArrow,n=void 0!==r&&r,i=t.considerDefaultExports,s=void 0!==i&&i,a=e.length-1,o=e[a];a--;for(var u=e[a];a>0;){if(b.isExpressionStatement(u,{expression:o})||b.isTaggedTemplateExpression(u)||s&&b.isExportDefaultDeclaration(u,{declaration:o})||n&&b.isArrowFunctionExpression(u,{body:o}))return!0;if(!(b.isCallExpression(u,{callee:o})||b.isSequenceExpression(u)&&u.expressions[0]===o||b.isMemberExpression(u,{object:o})||b.isConditional(u,{test:o})||b.isBinary(u,{left:o})||b.isAssignmentExpression(u,{left:o})))return!1;o=u,a--,u=e[a]}return!1}t.__esModule=!0,t.AwaitExpression=t.FunctionTypeAnnotation=void 0,t.NullableTypeAnnotation=n,t.UpdateExpression=i,t.ObjectExpression=s,t.DoExpression=a,t.Binary=o,t.BinaryExpression=u,t.SequenceExpression=l,t.YieldExpression=c,t.ClassExpression=f,t.UnaryLike=p,t.FunctionExpression=d,t.ArrowFunctionExpression=h,t.ConditionalExpression=m,t.AssignmentExpression=y;var g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E={"||":0,"&&":1,"|":2,"^":3,"&":4,"==":5,"===":5,"!=":5,"!==":5,"<":6,">":6,"<=":6,">=":6,in:6,instanceof:6,">>":7,"<<":7,">>>":7,"+":8,"-":8,"*":9,"/":9,"%":9,"**":10};t.FunctionTypeAnnotation=n,t.AwaitExpression=c},function(e,t,r){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l.isMemberExpression(e)?(n(e.object,t),e.computed&&n(e.property,t)):l.isBinary(e)||l.isAssignmentExpression(e)?(n(e.left,t),n(e.right,t)):l.isCallExpression(e)?(t.hasCall=!0,n(e.callee,t)):l.isFunction(e)?t.hasFunction=!0:l.isIdentifier(e)&&(t.hasHelper=t.hasHelper||i(e.callee)),t}function i(e){return l.isMemberExpression(e)?i(e.object)||i(e.property):l.isIdentifier(e)?"require"===e.name||"_"===e.name[0]:l.isCallExpression(e)?i(e.callee):!(!l.isBinary(e)&&!l.isAssignmentExpression(e))&&(l.isIdentifier(e.left)&&i(e.left)||i(e.right))}function s(e){return l.isLiteral(e)||l.isObjectExpression(e)||l.isArrayExpression(e)||l.isIdentifier(e)||l.isMemberExpression(e)}var a=r(588),o=function(e){return e&&e.__esModule?e:{default:e}}(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.nodes={AssignmentExpression:function(e){var t=n(e.right);if(t.hasCall&&t.hasHelper||t.hasFunction)return{before:t.hasFunction,after:!0}},SwitchCase:function(e,t){return{before:e.consequent.length||t.cases[0]===e}},LogicalExpression:function(e){if(l.isFunction(e.left)||l.isFunction(e.right))return{after:!0}},Literal:function(e){if("use strict"===e.value)return{after:!0}},CallExpression:function(e){if(l.isFunction(e.callee)||i(e))return{before:!0,after:!0}},VariableDeclaration:function(e){for(var t=0;t<e.declarations.length;t++){var r=e.declarations[t],a=i(r.id)&&!s(r.init);if(!a){var o=n(r.init);a=i(r.init)&&o.hasCall||o.hasFunction}if(a)return{before:!0,after:!0}}},IfStatement:function(e){if(l.isBlockStatement(e.consequent))return{before:!0,after:!0}}},t.nodes.ObjectProperty=t.nodes.ObjectTypeProperty=t.nodes.ObjectMethod=t.nodes.SpreadProperty=function(e,t){if(t.properties[0]===e)return{before:!0}},t.list={VariableDeclaration:function(e){return(0,o.default)(e.declarations,"init")},ArrayExpression:function(e){return e.elements},ObjectExpression:function(e){return e.properties}},[["Function",!0],["Class",!0],["Loop",!0],["LabeledStatement",!0],["SwitchStatement",!0],["TryStatement",!0]].forEach(function(e){var r=e[0],n=e[1];"boolean"==typeof n&&(n={after:n,before:n}),[r].concat(l.FLIPPED_ALIAS_KEYS[r]||[]).forEach(function(e){t.nodes[e]=function(){return n}})})},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(){this.token(","),this.space()}t.__esModule=!0;var a=r(87),o=i(a),u=r(2),l=i(u),c=r(35),f=i(c),p=r(365),d=i(p),h=r(3),m=i(h),y=r(579),v=i(y),g=r(581),b=i(g),E=r(586),x=i(E),A=r(278),S=i(A),_=r(300),D=i(_),C=r(187),w=n(C),P=r(314),k=i(P),F=r(1),T=n(F),O=/e/i,B=/\.0+$/,R=/^0[box]/,I=function(){function e(t,r,n){(0,m.default)(this,e),this.inForStatementInitCounter=0,this._printStack=[],this._indent=0,this._insideAux=!1,this._printedCommentStarts={},this._parenPushNewlineState=null,this._printAuxAfterOnNextUserNode=!1,this._printedComments=new d.default,this._endsWithInteger=!1,this._endsWithWord=!1,this.format=t||{},this._buf=new D.default(r),this._whitespace=n.length>0?new k.default(n):null}return e.prototype.generate=function(e){return this.print(e),this._maybeAddAuxComment(),this._buf.get()},e.prototype.indent=function(){this.format.compact||this.format.concise||this._indent++},e.prototype.dedent=function(){this.format.compact||this.format.concise||this._indent--},e.prototype.semicolon=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._maybeAddAuxComment(),this._append(";",!e)},e.prototype.rightBrace=function(){this.format.minified&&this._buf.removeLastSemicolon(),this.token("}")},e.prototype.space=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.format.compact||(this._buf.hasContent()&&!this.endsWith(" ")&&!this.endsWith("\n")||e)&&this._space()},e.prototype.word=function(e){this._endsWithWord&&this._space(),this._maybeAddAuxComment(),this._append(e),this._endsWithWord=!0},e.prototype.number=function(e){this.word(e),this._endsWithInteger=(0,x.default)(+e)&&!R.test(e)&&!O.test(e)&&!B.test(e)&&"."!==e[e.length-1]},e.prototype.token=function(e){("--"===e&&this.endsWith("!")||"+"===e[0]&&this.endsWith("+")||"-"===e[0]&&this.endsWith("-")||"."===e[0]&&this._endsWithInteger)&&this._space(),this._maybeAddAuxComment(),this._append(e)},e.prototype.newline=function(e){if(!this.format.retainLines&&!this.format.compact){if(this.format.concise)return void this.space();if(!(this.endsWith("\n\n")||("number"!=typeof e&&(e=1),e=Math.min(2,e),(this.endsWith("{\n")||this.endsWith(":\n"))&&e--,e<=0)))for(var t=0;t<e;t++)this._newline()}},e.prototype.endsWith=function(e){return this._buf.endsWith(e)},e.prototype.removeTrailingNewline=function(){this._buf.removeTrailingNewline()},e.prototype.source=function(e,t){this._catchUp(e,t),this._buf.source(e,t)},e.prototype.withSource=function(e,t,r){this._catchUp(e,t),this._buf.withSource(e,t,r)},e.prototype._space=function(){this._append(" ",!0)},e.prototype._newline=function(){this._append("\n",!0)},e.prototype._append=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._maybeAddParen(e),this._maybeIndent(e),t?this._buf.queue(e):this._buf.append(e),this._endsWithWord=!1,this._endsWithInteger=!1},e.prototype._maybeIndent=function(e){this._indent&&this.endsWith("\n")&&"\n"!==e[0]&&this._buf.queue(this._getIndent())},e.prototype._maybeAddParen=function(e){var t=this._parenPushNewlineState;if(t){this._parenPushNewlineState=null;var r=void 0;for(r=0;r<e.length&&" "===e[r];r++);if(r!==e.length){var n=e[r];"\n"!==n&&"/"!==n||(this.token("("),this.indent(),t.printed=!0)}}},e.prototype._catchUp=function(e,t){if(this.format.retainLines){var r=t?t[e]:null;if(r&&null!==r.line)for(var n=r.line-this._buf.getCurrentLine(),i=0;i<n;i++)this._newline()}},e.prototype._getIndent=function(){return(0,S.default)(this.format.indent.style,this._indent)},e.prototype.startTerminatorless=function(){return this._parenPushNewlineState={printed:!1}},e.prototype.endTerminatorless=function(e){e.printed&&(this.dedent(),this.newline(),this.token(")"))},e.prototype.print=function(e,t){var r=this;if(e){var n=this.format.concise;e._compact&&(this.format.concise=!0);if(!this[e.type])throw new ReferenceError("unknown node of type "+(0,f.default)(e.type)+" with constructor "+(0,f.default)(e&&e.constructor.name));this._printStack.push(e);var i=this._insideAux;this._insideAux=!e.loc,this._maybeAddAuxComment(this._insideAux&&!i);var s=w.needsParens(e,t,this._printStack);this.format.retainFunctionParens&&"FunctionExpression"===e.type&&e.extra&&e.extra.parenthesized&&(s=!0),s&&this.token("("),this._printLeadingComments(e,t);var a=T.isProgram(e)||T.isFile(e)?null:e.loc;this.withSource("start",a,function(){r[e.type](e,t)}),this._printTrailingComments(e,t),s&&this.token(")"),this._printStack.pop(),this.format.concise=n,this._insideAux=i}},e.prototype._maybeAddAuxComment=function(e){e&&this._printAuxBeforeComment(),this._insideAux||this._printAuxAfterComment()},e.prototype._printAuxBeforeComment=function(){if(!this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!0;var e=this.format.auxiliaryCommentBefore;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype._printAuxAfterComment=function(){if(this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!1;var e=this.format.auxiliaryCommentAfter;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype.getPossibleRaw=function(e){var t=e.extra;if(t&&null!=t.raw&&null!=t.rawValue&&e.value===t.rawValue)return t.raw},e.prototype.printJoin=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e&&e.length){r.indent&&this.indent();for(var n={addNewlines:r.addNewlines},i=0;i<e.length;i++){var s=e[i];s&&(r.statement&&this._printNewline(!0,s,t,n),this.print(s,t),r.iterator&&r.iterator(s,i),r.separator&&i<e.length-1&&r.separator.call(this),r.statement&&this._printNewline(!1,s,t,n))}r.indent&&this.dedent()}},e.prototype.printAndIndentOnComments=function(e,t){var r=!!e.leadingComments;r&&this.indent(),this.print(e,t),r&&this.dedent()},e.prototype.printBlock=function(e){var t=e.body;T.isEmptyStatement(t)||this.space(),this.print(t,e)},e.prototype._printTrailingComments=function(e,t){this._printComments(this._getComments(!1,e,t))},e.prototype._printLeadingComments=function(e,t){this._printComments(this._getComments(!0,e,t))},e.prototype.printInnerComments=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.innerComments&&(t&&this.indent(),this._printComments(e.innerComments),t&&this.dedent())},e.prototype.printSequence=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.statement=!0,this.printJoin(e,t,r)},e.prototype.printList=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return null==r.separator&&(r.separator=s),this.printJoin(e,t,r)},e.prototype._printNewline=function(e,t,r,n){var i=this;if(!this.format.retainLines&&!this.format.compact){if(this.format.concise)return void this.space();var s=0;if(null!=t.start&&!t._ignoreUserWhitespace&&this._whitespace)if(e){var a=t.leadingComments,o=a&&(0,v.default)(a,function(e){
return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesBefore(o||t)}else{var u=t.trailingComments,l=u&&(0,b.default)(u,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesAfter(l||t)}else{e||s++,n.addNewlines&&(s+=n.addNewlines(e,t)||0);var c=w.needsWhitespaceAfter;e&&(c=w.needsWhitespaceBefore),c(t,r)&&s++,this._buf.hasContent()||(s=0)}this.newline(s)}},e.prototype._getComments=function(e,t){return t&&(e?t.leadingComments:t.trailingComments)||[]},e.prototype._printComment=function(e){var t=this;if(this.format.shouldPrintComment(e.value)&&!e.ignore&&!this._printedComments.has(e)){if(this._printedComments.add(e),null!=e.start){if(this._printedCommentStarts[e.start])return;this._printedCommentStarts[e.start]=!0}this.newline(this._whitespace?this._whitespace.getNewlinesBefore(e):0),this.endsWith("[")||this.endsWith("{")||this.space();var r="CommentLine"===e.type?"//"+e.value+"\n":"/*"+e.value+"*/";if("CommentBlock"===e.type&&this.format.indent.adjustMultilineComment){var n=e.loc&&e.loc.start.column;if(n){var i=new RegExp("\\n\\s{1,"+n+"}","g");r=r.replace(i,"\n")}var s=Math.max(this._getIndent().length,this._buf.getCurrentColumn());r=r.replace(/\n(?!$)/g,"\n"+(0,S.default)(" ",s))}this.withSource("start",e.loc,function(){t._append(r)}),this.newline((this._whitespace?this._whitespace.getNewlinesAfter(e):0)+("CommentLine"===e.type?-1:0))}},e.prototype._printComments=function(e){if(e&&e.length)for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,l.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this._printComment(s)}},e}();t.default=I;for(var M=[r(309),r(303),r(308),r(302),r(306),r(307),r(123),r(304),r(301),r(305)],N=0;N<M.length;N++){var L=M[N];(0,o.default)(I.prototype,L)}e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(14),s=n(i),a=r(11),o=n(a),u=r(3),l=n(u),c=r(288),f=n(c),p=function(){function e(t,r){(0,l.default)(this,e),this._cachedMap=null,this._code=r,this._opts=t,this._rawMappings=[]}return e.prototype.get=function(){if(!this._cachedMap){var e=this._cachedMap=new f.default.SourceMapGenerator({file:this._opts.sourceMapTarget,sourceRoot:this._opts.sourceRoot}),t=this._code;"string"==typeof t?e.setSourceContent(this._opts.sourceFileName,t):"object"===(void 0===t?"undefined":(0,o.default)(t))&&(0,s.default)(t).forEach(function(r){e.setSourceContent(r,t[r])}),this._rawMappings.forEach(e.addMapping,e)}return this._cachedMap.toJSON()},e.prototype.getRawMappings=function(){return this._rawMappings.slice()},e.prototype.mark=function(e,t,r,n,i,s){this._lastGenLine!==e&&null===r||this._lastGenLine===e&&this._lastSourceLine===r&&this._lastSourceColumn===n||(this._cachedMap=null,this._lastGenLine=e,this._lastSourceLine=r,this._lastSourceColumn=n,this._rawMappings.push({name:i||void 0,generated:{line:e,column:t},source:null==r?void 0:s||this._opts.sourceFileName,original:null==r?void 0:{line:r,column:n}}))},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function(){function e(t){(0,i.default)(this,e),this.tokens=t,this.used={}}return e.prototype.getNewlinesBefore=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.start-e.start},0,n.length);if(i>=0){for(;i&&e.start===n[i-1].start;)--i;t=n[i-1],r=n[i]}return this._getNewlinesBetween(t,r)},e.prototype.getNewlinesAfter=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.end-e.end},0,n.length);if(i>=0){for(;i&&e.end===n[i-1].end;)--i;t=n[i],r=n[i+1],","===r.type.label&&(r=n[i+2])}return r&&"eof"===r.type.label?1:this._getNewlinesBetween(t,r)},e.prototype._getNewlinesBetween=function(e,t){if(!t||!t.loc)return 0;for(var r=e?e.loc.end.line:1,n=t.loc.start.line,i=0,s=r;s<n;s++)void 0===this.used[s]&&(this.used[s]=!0,i++);return i},e.prototype._findToken=function(e,t,r){if(t>=r)return-1;var n=t+r>>>1,i=e(this.tokens[n]);return i<0?this._findToken(e,n+1,r):i>0?this._findToken(e,t,n):0===i?n:-1},e}();t.default=s,e.exports=t.default},function(e,t,r){"use strict";function n(e){for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var a=i,u=a.node,l=u.expression;if(o.isMemberExpression(l)){var c=a.scope.maybeGenerateMemoised(l.object),f=void 0,p=[];c?(f=c,p.push(o.assignmentExpression("=",c,l.object))):f=l.object,p.push(o.callExpression(o.memberExpression(o.memberExpression(f,l.property,l.computed),o.identifier("bind")),[f])),1===p.length?u.expression=p[0]:u.expression=o.sequenceExpression(p)}}}t.__esModule=!0;var i=r(2),s=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default=n;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(t){return t&&t.operator===e.operator+"="}function r(e,t){return a.assignmentExpression("=",e,t)}var n={};return n.ExpressionStatement=function(n,s){if(!n.isCompletionRecord()){var o=n.node.expression;if(t(o)){var u=[],l=(0,i.default)(o.left,u,s,n.scope,!0);u.push(a.expressionStatement(r(l.ref,e.build(l.uid,o.right)))),n.replaceWithMultiple(u)}}},n.AssignmentExpression=function(n,s){var a=n.node,o=n.scope;if(t(a)){var u=[],l=(0,i.default)(a.left,u,s,o);u.push(r(l.ref,e.build(l.uid,a.right))),n.replaceWithMultiple(u)}},n.BinaryExpression=function(t){var r=t.node;r.operator===e.operator&&t.replaceWith(e.build(r.left,r.right))},n};var n=r(318),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.scope,r=e.node,n=a.functionExpression(null,[],r.body,r.generator,r.async),s=n,u=[];(0,i.default)(e,function(e){return t.push({id:e})});var l={foundThis:!1,foundArguments:!1};e.traverse(o,l),l.foundArguments&&(s=a.memberExpression(n,a.identifier("apply")),u=[],l.foundThis&&u.push(a.thisExpression()),l.foundArguments&&(l.foundThis||u.push(a.nullLiteral()),u.push(a.identifier("arguments"))));var c=a.callExpression(s,u);return r.generator&&(c=a.yieldExpression(c,!0)),a.returnStatement(c)};var n=r(190),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s),o={enter:function(e,t){e.isThisExpression()&&(t.foundThis=!0),e.isReferencedIdentifier({name:"arguments"})&&(t.foundArguments=!0)},Function:function(e){e.skip()}};e.exports=t.default},function(e,t,r){"use strict";function n(e,t,r,n){var i=void 0;if(a.isSuper(e))return e;if(a.isIdentifier(e)){if(n.hasBinding(e.name))return e;i=e}else{if(!a.isMemberExpression(e))throw new Error("We can't explode this node type "+e.type);if(i=e.object,a.isSuper(i)||a.isIdentifier(i)&&n.hasBinding(i.name))return i}var s=n.generateUidIdentifierBasedOnNode(i);return t.push(a.variableDeclaration("var",[a.variableDeclarator(s,i)])),s}function i(e,t,r,n){var i=e.property,s=a.toComputedKey(e,i);if(a.isLiteral(s)&&a.isPureish(s))return s;var o=n.generateUidIdentifierBasedOnNode(i);return t.push(a.variableDeclaration("var",[a.variableDeclarator(o,i)])),o}t.__esModule=!0,t.default=function(e,t,r,s,o){var u=void 0;u=a.isIdentifier(e)&&o?e:n(e,t,r,s);var l=void 0,c=void 0;if(a.isIdentifier(e))l=e,c=u;else{var f=i(e,t,r,s),p=e.computed||a.isLiteral(f);c=l=a.memberExpression(u,f,p)}return{uid:c,ref:l}};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){function t(t){if(t.node&&!t.isPure()){var r=e.scope.generateDeclaredUidIdentifier();n.push(l.assignmentExpression("=",r,t.node)),t.replaceWith(r)}}function r(e){if(Array.isArray(e)&&e.length){e=e.reverse(),(0,o.default)(e);for(var r=e,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}t(a)}}}e.assertClass();var n=[];t(e.get("superClass")),r(e.get("decorators"));for(var i=e.get("body.body"),a=i,u=Array.isArray(a),c=0,a=u?a:(0,s.default)(a);;){var f;if(u){if(c>=a.length)break;f=a[c++]}else{if(c=a.next(),c.done)break;f=c.value}var p=f;p.is("computed")&&t(p.get("key")),p.has("decorators")&&r(e.get("decorators"))}n&&e.insertBefore(n.map(function(e){return l.expressionStatement(e)}))};var a=r(315),o=n(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.default=function(e,t){var r=e.node,n=e.scope,i=e.parent,a=n.generateUidIdentifier("step"),o=n.generateUidIdentifier("value"),u=r.left,p=void 0;s.isIdentifier(u)||s.isPattern(u)||s.isMemberExpression(u)?p=s.expressionStatement(s.assignmentExpression("=",u,o)):s.isVariableDeclaration(u)&&(p=s.variableDeclaration(u.kind,[s.variableDeclarator(u.declarations[0].id,o)]));var d=c();(0,l.default)(d,f,null,{ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:n.generateUidIdentifier("iterator"),GET_ITERATOR:t.getAsyncIterator,OBJECT:r.right,STEP_VALUE:o,STEP_KEY:a,AWAIT:t.wrapAwait}),d=d.body.body;var h=s.isLabeledStatement(i),m=d[3].block.body,y=m[0];return h&&(m[0]=s.labeledStatement(i.label,y)),{replaceParent:h,node:d,declar:p,loop:y}};var i=r(1),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(i),a=r(4),o=n(a),u=r(7),l=n(u),c=(0,o.default)("\n  function* wrapper() {\n    var ITERATOR_COMPLETION = true;\n    var ITERATOR_HAD_ERROR_KEY = false;\n    var ITERATOR_ERROR_KEY = undefined;\n    try {\n      for (\n        var ITERATOR_KEY = GET_ITERATOR(OBJECT), STEP_KEY, STEP_VALUE;\n        (\n          STEP_KEY = yield AWAIT(ITERATOR_KEY.next()),\n          ITERATOR_COMPLETION = STEP_KEY.done,\n          STEP_VALUE = yield AWAIT(STEP_KEY.value),\n          !ITERATOR_COMPLETION\n        );\n        ITERATOR_COMPLETION = true) {\n      }\n    } catch (err) {\n      ITERATOR_HAD_ERROR_KEY = true;\n      ITERATOR_ERROR_KEY = err;\n    } finally {\n      try {\n        if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n          yield AWAIT(ITERATOR_KEY.return());\n        }\n      } finally {\n        if (ITERATOR_HAD_ERROR_KEY) {\n          throw ITERATOR_ERROR_KEY;\n        }\n      }\n    }\n  }\n"),f={noScope:!0,Identifier:function(e,t){e.node.name in t&&e.replaceInline(t[e.node.name])},CallExpression:function(e,t){var r=e.node.callee;s.isIdentifier(r)&&"AWAIT"===r.name&&!t.AWAIT&&e.replaceWith(e.node.arguments[0])}};e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(4),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s={};t.default=s,s.typeof=(0,i.default)('\n  (typeof Symbol === "function" && typeof Symbol.iterator === "symbol")\n    ? function (obj) { return typeof obj; }\n    : function (obj) {\n        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype\n          ? "symbol"\n          : typeof obj;\n      };\n'),s.jsx=(0,i.default)('\n  (function () {\n    var REACT_ELEMENT_TYPE = (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7;\n\n    return function createRawReactElement (type, props, key, children) {\n      var defaultProps = type && type.defaultProps;\n      var childrenLength = arguments.length - 3;\n\n      if (!props && childrenLength !== 0) {\n        // If we\'re going to assign props.children, we create a new object now\n        // to avoid mutating defaultProps.\n        props = {};\n      }\n      if (props && defaultProps) {\n        for (var propName in defaultProps) {\n          if (props[propName] === void 0) {\n            props[propName] = defaultProps[propName];\n          }\n        }\n      } else if (!props) {\n        props = defaultProps || {};\n      }\n\n      if (childrenLength === 1) {\n        props.children = children;\n      } else if (childrenLength > 1) {\n        var childArray = Array(childrenLength);\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 3];\n        }\n        props.children = childArray;\n      }\n\n      return {\n        $$typeof: REACT_ELEMENT_TYPE,\n        type: type,\n        key: key === undefined ? null : \'\' + key,\n        ref: null,\n        props: props,\n        _owner: null,\n      };\n    };\n\n  })()\n'),s.asyncIterator=(0,i.default)('\n  (function (iterable) {\n    if (typeof Symbol === "function") {\n      if (Symbol.asyncIterator) {\n        var method = iterable[Symbol.asyncIterator];\n        if (method != null) return method.call(iterable);\n      }\n      if (Symbol.iterator) {\n        return iterable[Symbol.iterator]();\n      }\n    }\n    throw new TypeError("Object is not async iterable");\n  })\n'),s.asyncGenerator=(0,i.default)('\n  (function () {\n    function AwaitValue(value) {\n      this.value = value;\n    }\n\n    function AsyncGenerator(gen) {\n      var front, back;\n\n      function send(key, arg) {\n        return new Promise(function (resolve, reject) {\n          var request = {\n            key: key,\n            arg: arg,\n            resolve: resolve,\n            reject: reject,\n            next: null\n          };\n\n          if (back) {\n            back = back.next = request;\n          } else {\n            front = back = request;\n            resume(key, arg);\n          }\n        });\n      }\n\n      function resume(key, arg) {\n        try {\n          var result = gen[key](arg)\n          var value = result.value;\n          if (value instanceof AwaitValue) {\n            Promise.resolve(value.value).then(\n              function (arg) { resume("next", arg); },\n              function (arg) { resume("throw", arg); });\n          } else {\n            settle(result.done ? "return" : "normal", result.value);\n          }\n        } catch (err) {\n          settle("throw", err);\n        }\n      }\n\n      function settle(type, value) {\n        switch (type) {\n          case "return":\n            front.resolve({ value: value, done: true });\n            break;\n          case "throw":\n            front.reject(value);\n            break;\n          default:\n            front.resolve({ value: value, done: false });\n            break;\n        }\n\n        front = front.next;\n        if (front) {\n          resume(front.key, front.arg);\n        } else {\n          back = null;\n        }\n      }\n\n      this._invoke = send;\n\n      // Hide "return" method if generator return is not supported\n      if (typeof gen.return !== "function") {\n        this.return = undefined;\n      }\n    }\n\n    if (typeof Symbol === "function" && Symbol.asyncIterator) {\n      AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; };\n    }\n\n    AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };\n    AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };\n    AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };\n\n    return {\n      wrap: function (fn) {\n        return function () {\n          return new AsyncGenerator(fn.apply(this, arguments));\n        };\n      },\n      await: function (value) {\n        return new AwaitValue(value);\n      }\n    };\n\n  })()\n'),s.asyncGeneratorDelegate=(0,i.default)('\n  (function (inner, awaitWrap) {\n    var iter = {}, waiting = false;\n\n    function pump(key, value) {\n      waiting = true;\n      value = new Promise(function (resolve) { resolve(inner[key](value)); });\n      return { done: false, value: awaitWrap(value) };\n    };\n\n    if (typeof Symbol === "function" && Symbol.iterator) {\n      iter[Symbol.iterator] = function () { return this; };\n    }\n\n    iter.next = function (value) {\n      if (waiting) {\n        waiting = false;\n        return value;\n      }\n      return pump("next", value);\n    };\n\n    if (typeof inner.throw === "function") {\n      iter.throw = function (value) {\n        if (waiting) {\n          waiting = false;\n          throw value;\n        }\n        return pump("throw", value);\n      };\n    }\n\n    if (typeof inner.return === "function") {\n      iter.return = function (value) {\n        return pump("return", value);\n      };\n    }\n\n    return iter;\n  })\n'),s.asyncToGenerator=(0,i.default)('\n  (function (fn) {\n    return function () {\n      var gen = fn.apply(this, arguments);\n      return new Promise(function (resolve, reject) {\n        function step(key, arg) {\n          try {\n            var info = gen[key](arg);\n            var value = info.value;\n          } catch (error) {\n            reject(error);\n            return;\n          }\n\n          if (info.done) {\n            resolve(value);\n          } else {\n            return Promise.resolve(value).then(function (value) {\n              step("next", value);\n            }, function (err) {\n              step("throw", err);\n            });\n          }\n        }\n\n        return step("next");\n      });\n    };\n  })\n'),s.classCallCheck=(0,i.default)('\n  (function (instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError("Cannot call a class as a function");\n    }\n  });\n'),s.createClass=(0,i.default)('\n  (function() {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i ++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ("value" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  })()\n'),s.defineEnumerableProperties=(0,i.default)('\n  (function (obj, descs) {\n    for (var key in descs) {\n      var desc = descs[key];\n      desc.configurable = desc.enumerable = true;\n      if ("value" in desc) desc.writable = true;\n      Object.defineProperty(obj, key, desc);\n    }\n    return obj;\n  })\n'),s.defaults=(0,i.default)("\n  (function (obj, defaults) {\n    var keys = Object.getOwnPropertyNames(defaults);\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      var value = Object.getOwnPropertyDescriptor(defaults, key);\n      if (value && value.configurable && obj[key] === undefined) {\n        Object.defineProperty(obj, key, value);\n      }\n    }\n    return obj;\n  })\n"),s.defineProperty=(0,i.default)("\n  (function (obj, key, value) {\n    // Shortcircuit the slow defineProperty path when possible.\n    // We are trying to avoid issues where setters defined on the\n    // prototype cause side effects under the fast path of simple\n    // assignment. By checking for existence of the property with\n    // the in operator, we can optimize most of this overhead away.\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n    return obj;\n  });\n"),s.extends=(0,i.default)("\n  Object.assign || (function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  })\n"),s.get=(0,i.default)('\n  (function get(object, property, receiver) {\n    if (object === null) object = Function.prototype;\n\n    var desc = Object.getOwnPropertyDescriptor(object, property);\n\n    if (desc === undefined) {\n      var parent = Object.getPrototypeOf(object);\n\n      if (parent === null) {\n        return undefined;\n      } else {\n        return get(parent, property, receiver);\n      }\n    } else if ("value" in desc) {\n      return desc.value;\n    } else {\n      var getter = desc.get;\n\n      if (getter === undefined) {\n        return undefined;\n      }\n\n      return getter.call(receiver);\n    }\n  });\n'),s.inherits=(0,i.default)('\n  (function (subClass, superClass) {\n    if (typeof superClass !== "function" && superClass !== null) {\n      throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);\n    }\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n  })\n'),s.instanceof=(0,i.default)('\n  (function (left, right) {\n    if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {\n      return right[Symbol.hasInstance](left);\n    } else {\n      return left instanceof right;\n    }\n  });\n'),s.interopRequireDefault=(0,i.default)("\n  (function (obj) {\n    return obj && obj.__esModule ? obj : { default: obj };\n  })\n"),s.interopRequireWildcard=(0,i.default)("\n  (function (obj) {\n    if (obj && obj.__esModule) {\n      return obj;\n    } else {\n      var newObj = {};\n      if (obj != null) {\n        for (var key in obj) {\n          if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n        }\n      }\n      newObj.default = obj;\n      return newObj;\n    }\n  })\n"),s.newArrowCheck=(0,i.default)('\n  (function (innerThis, boundThis) {\n    if (innerThis !== boundThis) {\n      throw new TypeError("Cannot instantiate an arrow function");\n    }\n  });\n'),s.objectDestructuringEmpty=(0,i.default)('\n  (function (obj) {\n    if (obj == null) throw new TypeError("Cannot destructure undefined");\n  });\n'),s.objectWithoutProperties=(0,i.default)("\n  (function (obj, keys) {\n    var target = {};\n    for (var i in obj) {\n      if (keys.indexOf(i) >= 0) continue;\n      if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n      target[i] = obj[i];\n    }\n    return target;\n  })\n"),s.possibleConstructorReturn=(0,i.default)('\n  (function (self, call) {\n    if (!self) {\n      throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n    }\n    return call && (typeof call === "object" || typeof call === "function") ? call : self;\n  });\n'),s.selfGlobal=(0,i.default)('\n  typeof global === "undefined" ? self : global\n'),s.set=(0,i.default)('\n  (function set(object, property, value, receiver) {\n    var desc = Object.getOwnPropertyDescriptor(object, property);\n\n    if (desc === undefined) {\n      var parent = Object.getPrototypeOf(object);\n\n      if (parent !== null) {\n        set(parent, property, value, receiver);\n      }\n    } else if ("value" in desc && desc.writable) {\n      desc.value = value;\n    } else {\n      var setter = desc.set;\n\n      if (setter !== undefined) {\n        setter.call(receiver, value);\n      }\n    }\n\n    return value;\n  });\n'),s.slicedToArray=(0,i.default)('\n  (function () {\n    // Broken out into a separate function to avoid deoptimizations due to the try/catch for the\n    // array iterator case.\n    function sliceIterator(arr, i) {\n      // this is an expanded form of `for...of` that properly supports abrupt completions of\n      // iterators etc. variable names have been minimised to reduce the size of this massive\n      // helper. sometimes spec compliancy is annoying :(\n      //\n      // _n = _iteratorNormalCompletion\n      // _d = _didIteratorError\n      // _e = _iteratorError\n      // _i = _iterator\n      // _s = _step\n\n      var _arr = [];\n      var _n = true;\n      var _d = false;\n      var _e = undefined;\n      try {\n        for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n          _arr.push(_s.value);\n          if (i && _arr.length === i) break;\n        }\n      } catch (err) {\n        _d = true;\n        _e = err;\n      } finally {\n        try {\n          if (!_n && _i["return"]) _i["return"]();\n        } finally {\n          if (_d) throw _e;\n        }\n      }\n      return _arr;\n    }\n\n    return function (arr, i) {\n      if (Array.isArray(arr)) {\n        return arr;\n      } else if (Symbol.iterator in Object(arr)) {\n        return sliceIterator(arr, i);\n      } else {\n        throw new TypeError("Invalid attempt to destructure non-iterable instance");\n      }\n    };\n  })();\n'),s.slicedToArrayLoose=(0,i.default)('\n  (function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if (Symbol.iterator in Object(arr)) {\n      var _arr = [];\n      for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n        _arr.push(_step.value);\n        if (i && _arr.length === i) break;\n      }\n      return _arr;\n    } else {\n      throw new TypeError("Invalid attempt to destructure non-iterable instance");\n    }\n  });\n'),s.taggedTemplateLiteral=(0,i.default)("\n  (function (strings, raw) {\n    return Object.freeze(Object.defineProperties(strings, {\n        raw: { value: Object.freeze(raw) }\n    }));\n  });\n"),s.taggedTemplateLiteralLoose=(0,i.default)("\n  (function (strings, raw) {\n    strings.raw = raw;\n    return strings;\n  });\n"),s.temporalRef=(0,i.default)('\n  (function (val, name, undef) {\n    if (val === undef) {\n      throw new ReferenceError(name + " is not defined - temporal dead zone");\n    } else {\n      return val;\n    }\n  })\n'),s.temporalUndefined=(0,i.default)("\n  ({})\n"),s.toArray=(0,i.default)("\n  (function (arr) {\n    return Array.isArray(arr) ? arr : Array.from(arr);\n  });\n"),s.toConsumableArray=(0,i.default)("\n  (function (arr) {\n    if (Array.isArray(arr)) {\n      for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n      return arr2;\n    } else {\n      return Array.from(arr);\n    }\n  });\n"),e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{pre:function(e){e.set("helpersNamespace",t.identifier("babelHelpers"))}}},e.exports=t.default},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(89);e.exports=function(e){var t=e.types,r={};return{visitor:{Identifier:function(e,s){if("MemberExpression"!==e.parent.type&&"ClassMethod"!==e.parent.type&&!e.isPure()&&s.opts.hasOwnProperty(e.node.name)){var a=s.opts[e.node.name];void 0!==a&&null!==a||(a=t.identifier(String(a)));var o=void 0===a?"undefined":n(a);"string"===o||"boolean"===o?a={type:o,replacement:a}:t.isNode(a)?a={type:"node",replacement:a}:"object"===o&&"node"===a.type&&"string"==typeof a.replacement&&(a.replacement=r[a.replacement]?r[a.replacement]:i.parseExpression(a.replacement));var u=a.replacement;switch(a.type){case"boolean":e.replaceWith(t.booleanLiteral(u));break;case"node":t.isNode(u)&&e.replaceWith(u);break;default:var l=String(u);e.replaceWith(t.stringLiteral(l))}}}}}}},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("dynamicImport")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("functionSent")}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67)}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types,n={Function:function(e){e.skip()},YieldExpression:function(e,r){var n=e.node;if(n.delegate){var i=r.addHelper("asyncGeneratorDelegate");n.argument=t.callExpression(i,[t.callExpression(r.addHelper("asyncIterator"),[n.argument]),t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("await"))])}}};return{inherits:r(195),visitor:{Function:function(e,r){e.node.async&&e.node.generator&&(e.traverse(n,r),(0,i.default)(e,r.file,{wrapAsync:t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("wrap")),wrapAwait:t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("await"))}))}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67),visitor:{Function:function(e,t){e.node.async&&!e.node.generator&&(0,i.default)(e,t.file,{wrapAsync:t.addImport(t.opts.module,t.opts.method)})}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){function t(e,t){if(!t.applyDecoratedDescriptor){t.applyDecoratedDescriptor=e.scope.generateUidIdentifier("applyDecoratedDescriptor");var r=f({NAME:t.applyDecoratedDescriptor});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.applyDecoratedDescriptor}function n(e,t){if(!t.initializerDefineProp){t.initializerDefineProp=e.scope.generateUidIdentifier("initDefineProp");var r=c({NAME:t.initializerDefineProp});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.initializerDefineProp}function i(e,t){if(!t.initializerWarningHelper){t.initializerWarningHelper=e.scope.generateUidIdentifier("initializerWarningHelper");var r=l({NAME:t.initializerWarningHelper});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.initializerWarningHelper}function p(e){var t=(e.isClass()?[e].concat(e.get("body.body")):e.get("properties")).reduce(function(e,t){return e.concat(t.node.decorators||[])},[]),r=t.filter(function(e){return!v.isIdentifier(e.expression)});if(0!==r.length)return v.sequenceExpression(r.map(function(t){var r=t.expression,n=t.expression=e.scope.generateDeclaredUidIdentifier("dec");return v.assignmentExpression("=",n,r)}).concat([e.node]))}function d(e,t){var r=e.node.decorators||[];if(e.node.decorators=null,0!==r.length){var n=e.scope.generateDeclaredUidIdentifier("class");return r.map(function(e){return e.expression}).reverse().reduce(function(e,t){return s({CLASS_REF:n,DECORATOR:t,INNER:e}).expression},e.node)}}function h(e,t){if(e.node.body.body.some(function(e){return(e.decorators||[]).length>0}))return y(e,t,e.node.body.body)}function m(e,t){if(e.node.properties.some(function(e){return(e.decorators||[]).length>0}))return y(e,t,e.node.properties)}function y(e,r,n){var s=(e.scope.generateDeclaredUidIdentifier("desc"),e.scope.generateDeclaredUidIdentifier("value"),
e.scope.generateDeclaredUidIdentifier(e.isClass()?"class":"obj")),l=n.reduce(function(n,l){var c=l.decorators||[];if(l.decorators=null,0===c.length)return n;if(l.computed)throw e.buildCodeFrameError("Computed method/property decorators are not yet supported.");var f=v.isLiteral(l.key)?l.key:v.stringLiteral(l.key.name),p=e.isClass()&&!l.static?a({CLASS_REF:s}).expression:s;if(v.isClassProperty(l,{static:!1})){var d=e.scope.generateDeclaredUidIdentifier("descriptor"),h=l.value?v.functionExpression(null,[],v.blockStatement([v.returnStatement(l.value)])):v.nullLiteral();l.value=v.callExpression(i(e,r),[d,v.thisExpression()]),n=n.concat([v.assignmentExpression("=",d,v.callExpression(t(e,r),[p,f,v.arrayExpression(c.map(function(e){return e.expression})),v.objectExpression([v.objectProperty(v.identifier("enumerable"),v.booleanLiteral(!0)),v.objectProperty(v.identifier("initializer"),h)])]))])}else n=n.concat(v.callExpression(t(e,r),[p,f,v.arrayExpression(c.map(function(e){return e.expression})),v.isObjectProperty(l)||v.isClassProperty(l,{static:!0})?u({TEMP:e.scope.generateDeclaredUidIdentifier("init"),TARGET:p,PROPERTY:f}).expression:o({TARGET:p,PROPERTY:f}).expression,p]));return n},[]);return v.sequenceExpression([v.assignmentExpression("=",s,e.node),v.sequenceExpression(l),s])}var v=e.types;return{inherits:r(125),visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var t=e.node,r=t.declaration.id||e.scope.generateUidIdentifier("default");t.declaration.id=r,e.replaceWith(t.declaration),e.insertAfter(v.exportNamedDeclaration(null,[v.exportSpecifier(r,v.identifier("default"))]))}},ClassDeclaration:function(e){var t=e.node,r=t.id||e.scope.generateUidIdentifier("class");e.replaceWith(v.variableDeclaration("let",[v.variableDeclarator(r,v.toExpression(t))]))},ClassExpression:function(e,t){var r=p(e)||d(e,t)||h(e,t);r&&e.replaceWith(r)},ObjectExpression:function(e,t){var r=p(e)||m(e,t);r&&e.replaceWith(r)},AssignmentExpression:function(e,t){t.initializerWarningHelper&&e.get("left").isMemberExpression()&&e.get("left.property").isIdentifier()&&e.get("right").isCallExpression()&&e.get("right.callee").isIdentifier({name:t.initializerWarningHelper.name})&&e.replaceWith(v.callExpression(n(e,t),[e.get("left.object").node,v.stringLiteral(e.get("left.property").node.name),e.get("right.arguments")[0].node,e.get("right.arguments")[1].node]))}}}};var n=r(4),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=(0,i.default)("\n  DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n"),a=(0,i.default)("\n  CLASS_REF.prototype;\n"),o=(0,i.default)("\n    Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n"),u=(0,i.default)("\n    (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n        enumerable: true,\n        configurable: true,\n        writable: true,\n        initializer: function(){\n            return TEMP;\n        }\n    })\n"),l=(0,i.default)("\n    function NAME(descriptor, context){\n        throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n    }\n"),c=(0,i.default)("\n    function NAME(target, property, descriptor, context){\n        if (!descriptor) return;\n\n        Object.defineProperty(target, property, {\n            enumerable: descriptor.enumerable,\n            configurable: descriptor.configurable,\n            writable: descriptor.writable,\n            value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,\n        });\n    }\n"),f=(0,i.default)("\n    function NAME(target, property, decorators, descriptor, context){\n        var desc = {};\n        Object['ke' + 'ys'](descriptor).forEach(function(key){\n            desc[key] = descriptor[key];\n        });\n        desc.enumerable = !!desc.enumerable;\n        desc.configurable = !!desc.configurable;\n        if ('value' in desc || desc.initializer){\n            desc.writable = true;\n        }\n\n        desc = decorators.slice().reverse().reduce(function(desc, decorator){\n            return decorator(target, property, desc) || desc;\n        }, desc);\n\n        if (context && desc.initializer !== void 0){\n            desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n            desc.initializer = undefined;\n        }\n\n        if (desc.initializer === void 0){\n            // This is a hack to avoid this being processed by 'transform-runtime'.\n            // See issue #9.\n            Object['define' + 'Property'](target, property, desc);\n            desc = null;\n        }\n\n        return desc;\n    }\n")},function(e,t,r){"use strict";function n(e,t){var r=t._guessExecutionStatusRelativeTo(e);return"before"===r?"inside":"after"===r?"outside":"maybe"}function i(e,t){return o.callExpression(t.addHelper("temporalRef"),[e,o.stringLiteral(e.name),t.addHelper("temporalUndefined")])}function s(e,t,r){var n=r.letReferences[e.name];return!!n&&t.getBindingIdentifier(e.name)===n}t.__esModule=!0,t.visitor=void 0;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);t.visitor={ReferencedIdentifier:function(e,t){if(this.file.opts.tdz){var r=e.node,a=e.parent,u=e.scope;if(!e.parentPath.isFor({left:r})&&s(r,u,t)){var l=u.getBinding(r.name).path,c=n(e,l);if("inside"!==c)if("maybe"===c){var f=i(r,t.file);if(l.parent._tdzThis=!0,e.skip(),e.parentPath.isUpdateExpression()){if(a._ignoreBlockScopingTDZ)return;e.parentPath.replaceWith(o.sequenceExpression([f,a]))}else e.replaceWith(f)}else"outside"===c&&e.replaceWith(o.throwStatement(o.inherits(o.newExpression(o.identifier("ReferenceError"),[o.stringLiteral(r.name+" is not defined - temporal dead zone")]),r)))}}},AssignmentExpression:{exit:function(e,t){if(this.file.opts.tdz){var r=e.node;if(!r._ignoreBlockScopingTDZ){var n=[],a=e.getBindingIdentifiers();for(var u in a){var l=a[u];s(l,e.scope,t)&&n.push(i(l,t.file))}n.length&&(r._ignoreBlockScopingTDZ=!0,n.push(r),e.replaceWithMultiple(n.map(o.expressionStatement)))}}}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(42),o=n(a),u=r(41),l=n(u),c=r(40),f=n(c),p=r(207),d=n(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=function(e){function t(){(0,s.default)(this,t);var r=(0,o.default)(this,e.apply(this,arguments));return r.isLoose=!0,r}return(0,l.default)(t,e),t.prototype._processMethod=function(e,t){if(!e.decorators){var r=this.classRef;e.static||(r=m.memberExpression(r,m.identifier("prototype")));var n=m.memberExpression(r,e.key,e.computed||m.isLiteral(e.key)),i=m.functionExpression(null,e.params,e.body,e.generator,e.async);i.returnType=e.returnType;var s=m.toComputedKey(e,e.key);m.isStringLiteral(s)&&(i=(0,f.default)({node:i,id:s,scope:t}));var a=m.expressionStatement(m.assignmentExpression("=",n,i));return m.inheritsComments(a,e),this.body.push(a),!0}},t}(d.default);t.default=y,e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{BinaryExpression:function(e){var r=e.node;"instanceof"===r.operator&&e.replaceWith(t.callExpression(this.addHelper("instanceof"),[r.left,r.right]))}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){for(var t=e.params,r=Array.isArray(t),n=0,t=r?t:(0,o.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(!m.isIdentifier(s))return!0}return!1}function s(e,t){if(!e.hasOwnBinding(t.name))return!0;var r=e.getOwnBinding(t.name),n=r.kind;return"param"===n||"local"===n}t.__esModule=!0,t.visitor=void 0;var a=r(2),o=n(a),u=r(189),l=n(u),c=r(317),f=n(c),p=r(4),d=n(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=(0,d.default)("\n  let VARIABLE_NAME =\n    ARGUMENTS.length > ARGUMENT_KEY && ARGUMENTS[ARGUMENT_KEY] !== undefined ?\n      ARGUMENTS[ARGUMENT_KEY]\n    :\n      DEFAULT_VALUE;\n"),v=(0,d.default)("\n  let $0 = $1[$2];\n"),g={ReferencedIdentifier:function(e,t){var r=e.scope,n=e.node;"eval"!==n.name&&s(r,n)||(t.iife=!0,e.stop())},Scope:function(e){e.skip()}};t.visitor={Function:function(e){var t=e.node,r=e.scope;if(i(t)){e.ensureBlock();var n={iife:!1,scope:r},a=[],o=m.identifier("arguments");o._shadowedFunctionLiteral=e;for(var u=(0,l.default)(t),c=e.get("params"),p=0;p<c.length;p++){var d=c[p];if(d.isAssignmentPattern()){var h=d.get("left"),b=d.get("right");if(p>=u||h.isPattern()){var E=r.generateUidIdentifier("x");E._isDefaultPlaceholder=!0,t.params[p]=E}else t.params[p]=h.node;n.iife||(b.isIdentifier()&&!s(r,b.node)?n.iife=!0:b.traverse(g,n)),function(e,r,n){var i=y({VARIABLE_NAME:e,DEFAULT_VALUE:r,ARGUMENT_KEY:m.numericLiteral(n),ARGUMENTS:o});i._blockHoist=t.params.length-n,a.push(i)}(h.node,b.node,p)}else n.iife||d.isIdentifier()||d.traverse(g,n)}for(var x=u+1;x<t.params.length;x++){var A=t.params[x];if(!A._isDefaultPlaceholder){var S=v(A,o,m.numericLiteral(x));S._blockHoist=t.params.length-x,a.push(S)}}t.params=t.params.slice(0,u),n.iife?(a.push((0,f.default)(e,r)),e.set("body",m.blockStatement(a))):e.get("body").unshiftContainer("body",a)}}}},function(e,t,r){"use strict";t.__esModule=!0,t.visitor=void 0;var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);t.visitor={Function:function(e){for(var t=e.get("params"),r=i.isRestElement(t[t.length-1])?1:0,n=t.length-r,s=0;s<n;s++){var a=t[s];if(a.isArrayPattern()||a.isObjectPattern()){var o=e.scope.generateUidIdentifier("ref"),u=i.variableDeclaration("let",[i.variableDeclarator(a.node,o)]);u._blockHoist=n-s,e.ensureBlock(),e.get("body").unshiftContainer("body",u),a.replaceWith(o)}}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return p.isRestElement(e.params[e.params.length-1])}function s(e,t,r){var n=void 0;n=p.isNumericLiteral(e.parent.property)?p.numericLiteral(e.parent.property.value+r):0===r?e.parent.property:p.binaryExpression("+",e.parent.property,p.numericLiteral(r));var i=e.scope;if(i.isPure(n))e.parentPath.replaceWith(h({ARGUMENTS:t,INDEX:n}));else{var s=i.generateUidIdentifierBasedOnNode(n);i.push({id:s,kind:"var"}),e.parentPath.replaceWith(m({ARGUMENTS:t,INDEX:n,REF:s}))}}function a(e,t,r){r?e.parentPath.replaceWith(y({ARGUMENTS:t,OFFSET:p.numericLiteral(r)})):e.replaceWith(t)}t.__esModule=!0,t.visitor=void 0;var o=r(2),u=n(o),l=r(4),c=n(l),f=r(1),p=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(f),d=(0,c.default)("\n  for (var LEN = ARGUMENTS.length,\n           ARRAY = Array(ARRAY_LEN),\n           KEY = START;\n       KEY < LEN;\n       KEY++) {\n    ARRAY[ARRAY_KEY] = ARGUMENTS[KEY];\n  }\n"),h=(0,c.default)("\n  ARGUMENTS.length <= INDEX ? undefined : ARGUMENTS[INDEX]\n"),m=(0,c.default)("\n  REF = INDEX, ARGUMENTS.length <= REF ? undefined : ARGUMENTS[REF]\n"),y=(0,c.default)("\n  ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET\n"),v={Scope:function(e,t){e.scope.bindingIdentifierEquals(t.name,t.outerBinding)||e.skip()},Flow:function(e){e.isTypeCastExpression()||e.skip()},"Function|ClassProperty":function(e,t){var r=t.noOptimise;t.noOptimise=!0,e.traverse(v,t),t.noOptimise=r,e.skip()},ReferencedIdentifier:function(e,t){var r=e.node;if("arguments"===r.name&&(t.deopted=!0),r.name===t.name)if(t.noOptimise)t.deopted=!0;else{var n=e.parentPath;if("params"===n.listKey&&n.key<t.offset)return;if(n.isMemberExpression({object:r})){var i=n.parentPath,s=!t.deopted&&!(i.isAssignmentExpression()&&n.node===i.node.left||i.isLVal()||i.isForXStatement()||i.isUpdateExpression()||i.isUnaryExpression({operator:"delete"})||(i.isCallExpression()||i.isNewExpression())&&n.node===i.node.callee);if(s)if(n.node.computed){if(n.get("property").isBaseType("number"))return void t.candidates.push({cause:"indexGetter",path:e})}else if("length"===n.node.property.name)return void t.candidates.push({cause:"lengthGetter",path:e})}if(0===t.offset&&n.isSpreadElement()){var a=n.parentPath;if(a.isCallExpression()&&1===a.node.arguments.length)return void t.candidates.push({cause:"argSpread",path:e})}t.references.push(e)}},BindingIdentifier:function(e,t){e.node.name===t.name&&(t.deopted=!0)}};t.visitor={Function:function(e){var t=e.node,r=e.scope;if(i(t)){var n=t.params.pop().argument,o=p.identifier("arguments");o._shadowedFunctionLiteral=e;var l={references:[],offset:t.params.length,argumentsNode:o,outerBinding:r.getBindingIdentifier(n.name),candidates:[],name:n.name,deopted:!1};if(e.traverse(v,l),l.deopted||l.references.length){l.references=l.references.concat(l.candidates.map(function(e){return e.path})),l.deopted=l.deopted||!!t.shadow;var c=p.numericLiteral(t.params.length),f=r.generateUidIdentifier("key"),h=r.generateUidIdentifier("len"),m=f,y=h;t.params.length&&(m=p.binaryExpression("-",f,c),y=p.conditionalExpression(p.binaryExpression(">",h,c),p.binaryExpression("-",h,c),p.numericLiteral(0)));var g=d({ARGUMENTS:o,ARRAY_KEY:m,ARRAY_LEN:y,START:c,ARRAY:n,KEY:f,LEN:h});if(l.deopted)g._blockHoist=t.params.length+1,t.body.body.unshift(g);else{g._blockHoist=1;var b=e.getEarliestCommonAncestorFrom(l.references).getStatementParent();b.findParent(function(e){if(!e.isLoop())return e.isFunction();b=e}),b.insertBefore(g)}}else for(var E=l.candidates,x=Array.isArray(E),A=0,E=x?E:(0,u.default)(E);;){var S;if(x){if(A>=E.length)break;S=E[A++]}else{if(A=E.next(),A.done)break;S=A.value}var _=S,D=_.path,C=_.cause;switch(C){case"indexGetter":s(D,o,l.offset);break;case"lengthGetter":a(D,o,l.offset);break;default:D.replaceWith(o)}}}}}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{MemberExpression:{exit:function(e){var r=e.node,n=r.property;r.computed||!t.isIdentifier(n)||t.isValidIdentifier(n.name)||(r.property=t.stringLiteral(n.name),r.computed=!0)}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{ObjectProperty:{exit:function(e){var r=e.node,n=r.key;r.computed||!t.isIdentifier(n)||t.isValidIdentifier(n.name)||(r.key=t.stringLiteral(n.name))}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types;return{visitor:{ObjectExpression:function(e,r){for(var n=e.node,s=!1,o=n.properties,u=Array.isArray(o),l=0,o=u?o:(0,i.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;if("get"===f.kind||"set"===f.kind){s=!0;break}}if(s){var p={};n.properties=n.properties.filter(function(e){return!!(e.computed||"get"!==e.kind&&"set"!==e.kind)||(a.push(p,e,null,r),!1)}),e.replaceWith(t.callExpression(t.memberExpression(t.identifier("Object"),t.identifier("defineProperties")),[n,a.toDefineObject(p)]))}}}}};var s=r(188),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.parse,r=e.traverse;return{visitor:{CallExpression:function(e){if(e.get("callee").isIdentifier({name:"eval"})&&1===e.node.arguments.length){var n=e.get("arguments")[0].evaluate();if(!n.confident)return;var i=n.value;if("string"!=typeof i)return;var s=t(i);return r.removeProperties(s),s.program}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){e.addComment("trailing",n(e,t)),e.replaceWith(i.noop())}function n(e,t){var r=e.getSource().replace(/\*-\//g,"*-ESCAPED/").replace(/\*\//g,"*-/");return t&&t.optional&&(r="?"+r),":"!==r[0]&&(r=":: "+r),r}var i=e.types;return{inherits:r(126),visitor:{TypeCastExpression:function(e){var t=e.node;e.get("expression").addComment("trailing",n(e.get("typeAnnotation"))),e.replaceWith(i.parenthesizedExpression(t.expression))},Identifier:function(e){var t=e.node;t.optional&&!t.typeAnnotation&&e.addComment("trailing",":: ?")},AssignmentPattern:{exit:function(e){e.node.left.optional=!1}},Function:{exit:function(e){e.node.params.forEach(function(e){return e.optional=!1})}},ClassProperty:function(e){var r=e.node,n=e.parent;r.value||t(e,n)},"ExportNamedDeclaration|Flow":function(e){var r=e.node,n=e.parent;i.isExportNamedDeclaration(r)&&!i.isFlow(r.declaration)||t(e,n)},ImportDeclaration:function(e){var r=e.node,n=e.parent;i.isImportDeclaration(r)&&"type"!==r.importKind&&"typeof"!==r.importKind||t(e,n)}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{FunctionExpression:{exit:function(e){var r=e.node;r.id&&(r._ignoreUserWhitespace=!0,e.replaceWith(t.callExpression(t.functionExpression(null,[],t.blockStatement([t.toStatement(r),t.returnStatement(r.id)])),[])))}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{CallExpression:function(e,t){e.get("callee").matchesPattern("Object.assign")&&(e.node.callee=t.addHelper("extends"))}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{CallExpression:function(e,t){e.get("callee").matchesPattern("Object.setPrototypeOf")&&(e.node.callee=t.addHelper("defaults"))}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){function t(e){return i.isLiteral(i.toComputedKey(e,e.key),{value:"__proto__"})}function r(e){var t=e.left;return i.isMemberExpression(t)&&i.isLiteral(i.toComputedKey(t,t.property),{value:"__proto__"})}function n(e,t,r){return i.expressionStatement(i.callExpression(r.addHelper("defaults"),[t,e.right]))}var i=e.types;return{visitor:{AssignmentExpression:function(e,t){if(r(e.node)){var s=[],a=e.node.left.object,o=e.scope.maybeGenerateMemoised(a);o&&s.push(i.expressionStatement(i.assignmentExpression("=",o,a))),s.push(n(e.node,o||a,t)),o&&s.push(o),e.replaceWithMultiple(s)}},ExpressionStatement:function(e,t){var s=e.node.expression;i.isAssignmentExpression(s,{operator:"="})&&r(s)&&e.replaceWith(n(s,s.left.object,t))},ObjectExpression:function(e,r){for(var n=void 0,a=e.node,u=a.properties,l=Array.isArray(u),c=0,u=l?u:(0,s.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;t(p)&&(n=p.value,(0,o.default)(a.properties,p))}if(n){var d=[i.objectExpression([]),n];a.properties.length&&d.push(a),e.replaceWith(i.callExpression(r.addHelper("extends"),d))}}}}};var a=r(277),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(11),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types,r={enter:function(e,r){var n=function(){r.isImmutable=!1,e.stop()};if(e.isJSXClosingElement())return void e.skip();if(e.isJSXIdentifier({name:"ref"})&&e.parentPath.isJSXAttribute({name:e.node}))return n();if(!(e.isJSXIdentifier()||e.isIdentifier()||e.isJSXMemberExpression()||e.isImmutable())){if(e.isPure()){var s=e.evaluate();if(s.confident){var a=s.value;if(!(a&&"object"===(void 0===a?"undefined":(0,i.default)(a))||"function"==typeof a))return}else if(t.isIdentifier(s.deopt))return}n()}}};return{visitor:{JSXElement:function(e){if(!e.node._hoisted){var t={isImmutable:!0};e.traverse(r,t),t.isImmutable?e.hoist():e.node._hoisted=!0}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){for(var t=0;t<e.length;t++){var n=e[t];if(s.isJSXSpreadAttribute(n))return!0;if(r(n,"ref"))return!0}return!1}function r(e,t){return s.isJSXAttribute(e)&&s.isJSXIdentifier(e.name,{name:t})}function n(e){var t=e.value;return t?(s.isJSXExpressionContainer(t)&&(t=t.expression),t):s.identifier("true")}var s=e.types;return{visitor:{JSXElement:function(e,a){var o=e.node,u=o.openingElement;if(!t(u.attributes)){var l=s.objectExpression([]),c=null,f=u.name;s.isJSXIdentifier(f)&&s.react.isCompatTag(f.name)&&(f=s.stringLiteral(f.name));for(var p=u.attributes,d=Array.isArray(p),h=0,p=d?p:(0,i.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var y=m;if(r(y,"key"))c=n(y);else{var v=y.name.name,g=s.isValidIdentifier(v)?s.identifier(v):s.stringLiteral(v);!function(e,t,r){e.push(s.objectProperty(t,r))}(l.properties,g,n(y))}}var b=[f,l];if(c||o.children.length){var E=s.react.buildChildren(o);b.push.apply(b,[c||s.unaryExpression("void",s.numericLiteral(0),!0)].concat(E))}var x=s.callExpression(a.addHelper("jsx"),b);e.replaceWith(x)}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{manipulateOptions:function(e,t){t.plugins.push("jsx")},visitor:(0,i.default)({pre:function(e){e.callee=e.tagExpr},post:function(e){t.react.isCompatTag(e.tagName)&&(e.call=t.callExpression(t.memberExpression(t.memberExpression(t.identifier("React"),t.identifier("DOM")),e.tagExpr,t.isLiteral(e.tagExpr)),e.args))}})}};var n=r(348),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,r){if(a.isJSXIdentifier(e)){if("this"===e.name&&a.isReferenced(e,r))return a.thisExpression();if(!i.default.keyword.isIdentifierNameES6(e.name))return a.stringLiteral(e.name);e.type="Identifier"}else if(a.isJSXMemberExpression(e))return a.memberExpression(t(e.object,e),t(e.property,e));return e}function r(e){return a.isJSXExpressionContainer(e)?e.expression:e}function n(e){var t=r(e.value||a.booleanLiteral(!0));return a.isStringLiteral(t)&&!a.isJSXExpressionContainer(e.value)&&(t.value=t.value.replace(/\n\s+/g," ")),a.isValidIdentifier(e.name.name)?e.name.type="Identifier":e.name=a.stringLiteral(e.name.name),a.inherits(a.objectProperty(e.name,t),e)}function s(r,n){r.parent.children=a.react.buildChildren(r.parent);var i=t(r.node.name,r.node),s=[],u=void 0;a.isIdentifier(i)?u=i.name:a.isLiteral(i)&&(u=i.value);var l={tagExpr:i,tagName:u,args:s};e.pre&&e.pre(l,n);var c=r.node.attributes;return c=c.length?o(c,n):a.nullLiteral(),s.push(c),e.post&&e.post(l,n),l.call||a.callExpression(l.callee,s)}function o(e,t){function r(){i.length&&(s.push(a.objectExpression(i)),i=[])}var i=[],s=[],o=t.opts.useBuiltIns||!1;if("boolean"!=typeof o)throw new Error("transform-react-jsx currently only accepts a boolean option for useBuiltIns (defaults to false)");for(;e.length;){var u=e.shift();a.isJSXSpreadAttribute(u)?(r(),s.push(u.argument)):i.push(n(u))}if(r(),1===s.length)e=s[0];else{a.isObjectExpression(s[0])||s.unshift(a.objectExpression([]));var l=o?a.memberExpression(a.identifier("Object"),a.identifier("assign")):t.addHelper("extends");e=a.callExpression(l,s)}return e}var u={};return u.JSXNamespacedName=function(e){throw e.buildCodeFrameError("Namespace tags are not supported. ReactJSX is not XML.")},u.JSXElement={exit:function(e,t){var r=s(e.get("openingElement"),t);r.arguments=r.arguments.concat(e.node.children),r.arguments.length>=3&&(r._prettyCall=!0),e.replaceWith(a.inherits(r,e.node))}},u};var n=r(97),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{JSXOpeningElement:function(e){var n=e.node,i=t.jSXIdentifier(r),s=t.thisExpression();n.attributes.push(t.jSXAttribute(i,t.jSXExpressionContainer(s)))}}}};var r="__self";e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){var r=null!=t?i.numericLiteral(t):i.nullLiteral(),n=i.objectProperty(i.identifier("fileName"),e),s=i.objectProperty(i.identifier("lineNumber"),r);return i.objectExpression([n,s])}var i=e.types;return{visitor:{JSXOpeningElement:function(e,s){var a=i.jSXIdentifier(r),o=e.container.openingElement.loc;if(o){for(var u=e.container.openingElement.attributes,l=0;l<u.length;l++){var c=u[l].name;if(c&&c.name===r)return}if(!s.fileNameIdentifier){var f="unknown"!==s.file.log.filename?s.file.log.filename:null,p=e.scope.generateUidIdentifier(n);e.hub.file.scope.push({id:p,init:i.stringLiteral(f)}),s.fileNameIdentifier=p}var d=t(s.fileNameIdentifier,o.start.line);u.push(i.jSXAttribute(a,i.jSXExpressionContainer(d)))}}}}};var r="__source",n="_jsxFileName";e.exports=t.default},348,function(e,t){"use strict";e.exports={builtins:{Symbol:"symbol",Promise:"promise",Map:"map",WeakMap:"weak-map",Set:"set",WeakSet:"weak-set",Observable:"observable",setImmediate:"set-immediate",clearImmediate:"clear-immediate",asap:"asap"},methods:{Array:{concat:"array/concat",copyWithin:"array/copy-within",entries:"array/entries",every:"array/every",fill:"array/fill",filter:"array/filter",findIndex:"array/find-index",find:"array/find",forEach:"array/for-each",from:"array/from",includes:"array/includes",indexOf:"array/index-of",join:"array/join",keys:"array/keys",lastIndexOf:"array/last-index-of",map:"array/map",of:"array/of",pop:"array/pop",push:"array/push",reduceRight:"array/reduce-right",reduce:"array/reduce",reverse:"array/reverse",shift:"array/shift",slice:"array/slice",some:"array/some",sort:"array/sort",splice:"array/splice",unshift:"array/unshift",values:"array/values"},JSON:{stringify:"json/stringify"},Object:{assign:"object/assign",create:"object/create",defineProperties:"object/define-properties",defineProperty:"object/define-property",entries:"object/entries",freeze:"object/freeze",getOwnPropertyDescriptor:"object/get-own-property-descriptor",getOwnPropertyDescriptors:"object/get-own-property-descriptors",getOwnPropertyNames:"object/get-own-property-names",getOwnPropertySymbols:"object/get-own-property-symbols",getPrototypeOf:"object/get-prototype-of",isExtensible:"object/is-extensible",isFrozen:"object/is-frozen",isSealed:"object/is-sealed",is:"object/is",keys:"object/keys",preventExtensions:"object/prevent-extensions",seal:"object/seal",setPrototypeOf:"object/set-prototype-of",values:"object/values"},RegExp:{escape:"regexp/escape"},Math:{acosh:"math/acosh",asinh:"math/asinh",atanh:"math/atanh",cbrt:"math/cbrt",clz32:"math/clz32",cosh:"math/cosh",expm1:"math/expm1",fround:"math/fround",hypot:"math/hypot",imul:"math/imul",log10:"math/log10",log1p:"math/log1p",log2:"math/log2",sign:"math/sign",sinh:"math/sinh",tanh:"math/tanh",trunc:"math/trunc",iaddh:"math/iaddh",isubh:"math/isubh",imulh:"math/imulh",umulh:"math/umulh"},Symbol:{for:"symbol/for",hasInstance:"symbol/has-instance",isConcatSpreadable:"symbol/is-concat-spreadable",iterator:"symbol/iterator",keyFor:"symbol/key-for",match:"symbol/match",replace:"symbol/replace",search:"symbol/search",species:"symbol/species",split:"symbol/split",toPrimitive:"symbol/to-primitive",toStringTag:"symbol/to-string-tag",unscopables:"symbol/unscopables"},String:{at:"string/at",codePointAt:"string/code-point-at",endsWith:"string/ends-with",fromCodePoint:"string/from-code-point",includes:"string/includes",matchAll:"string/match-all",padLeft:"string/pad-left",padRight:"string/pad-right",padStart:"string/pad-start",padEnd:"string/pad-end",raw:"string/raw",repeat:"string/repeat",startsWith:"string/starts-with",trim:"string/trim",trimLeft:"string/trim-left",trimRight:"string/trim-right",trimStart:"string/trim-start",trimEnd:"string/trim-end"},Number:{EPSILON:"number/epsilon",isFinite:"number/is-finite",isInteger:"number/is-integer",isNaN:"number/is-nan",isSafeInteger:"number/is-safe-integer",MAX_SAFE_INTEGER:"number/max-safe-integer",MIN_SAFE_INTEGER:"number/min-safe-integer",parseFloat:"number/parse-float",parseInt:"number/parse-int"},Reflect:{apply:"reflect/apply",construct:"reflect/construct",defineProperty:"reflect/define-property",deleteProperty:"reflect/delete-property",enumerate:"reflect/enumerate",getOwnPropertyDescriptor:"reflect/get-own-property-descriptor",getPrototypeOf:"reflect/get-prototype-of",get:"reflect/get",has:"reflect/has",isExtensible:"reflect/is-extensible",ownKeys:"reflect/own-keys",preventExtensions:"reflect/prevent-extensions",setPrototypeOf:"reflect/set-prototype-of",set:"reflect/set",defineMetadata:"reflect/define-metadata",deleteMetadata:"reflect/delete-metadata",getMetadata:"reflect/get-metadata",getMetadataKeys:"reflect/get-metadata-keys",getOwnMetadata:"reflect/get-own-metadata",getOwnMetadataKeys:"reflect/get-own-metadata-keys",hasMetadata:"reflect/has-metadata",hasOwnMetadata:"reflect/has-own-metadata",metadata:"reflect/metadata"},System:{global:"system/global"},Error:{isError:"error/is-error"},Date:{},Function:{}}}},function(e,t,r){"use strict";t.__esModule=!0,t.definitions=void 0,t.default=function(e){function t(e){return e.moduleName||"babel-runtime"}function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var n=e.types,s=["interopRequireWildcard","interopRequireDefault"];return{pre:function(e){var r=t(this.opts);!1!==this.opts.helpers&&e.set("helperGenerator",function(t){if(s.indexOf(t)<0)return e.addImport(r+"/helpers/"+t,"default",t)}),this.setDynamic("regeneratorIdentifier",function(){return e.addImport(r+"/regenerator","default","regeneratorRuntime")})},visitor:{ReferencedIdentifier:function(e,s){var a=e.node,o=e.parent,u=e.scope;if("regeneratorRuntime"===a.name&&!1!==s.opts.regenerator)return void e.replaceWith(s.get("regeneratorIdentifier"));if(!1!==s.opts.polyfill&&!n.isMemberExpression(o)&&r(i.default.builtins,a.name)&&!u.getBindingIdentifier(a.name)){var l=t(s.opts);e.replaceWith(s.addImport(l+"/core-js/"+i.default.builtins[a.name],"default",a.name))}},CallExpression:function(e,r){if(!1!==r.opts.polyfill&&!e.node.arguments.length){var i=e.node.callee;if(n.isMemberExpression(i)&&i.computed&&e.get("callee.property").matchesPattern("Symbol.iterator")){var s=t(r.opts);e.replaceWith(n.callExpression(r.addImport(s+"/core-js/get-iterator","default","getIterator"),[i.object]))}}},BinaryExpression:function(e,r){if(!1!==r.opts.polyfill&&"in"===e.node.operator&&e.get("left").matchesPattern("Symbol.iterator")){var i=t(r.opts);e.replaceWith(n.callExpression(r.addImport(i+"/core-js/is-iterable","default","isIterable"),[e.node.right]))}},MemberExpression:{enter:function(e,s){if(!1!==s.opts.polyfill&&e.isReferenced()){var a=e.node,o=a.object,u=a.property;if(n.isReferenced(o,a)&&!a.computed&&r(i.default.methods,o.name)){var l=i.default.methods[o.name];if(r(l,u.name)&&!e.scope.getBindingIdentifier(o.name)){if("Object"===o.name&&"defineProperty"===u.name&&e.parentPath.isCallExpression()){var c=e.parentPath.node;if(3===c.arguments.length&&n.isLiteral(c.arguments[1]))return}var f=t(s.opts);e.replaceWith(s.addImport(f+"/core-js/"+l[u.name],"default",o.name+"$"+u.name))}}}},exit:function(e,s){if(!1!==s.opts.polyfill&&e.isReferenced()){var a=e.node,o=a.object;if(r(i.default.builtins,o.name)&&!e.scope.getBindingIdentifier(o.name)){var u=t(s.opts);e.replaceWith(n.memberExpression(s.addImport(u+"/core-js/"+i.default.builtins[o.name],"default",o.name),a.property,a.computed))}}}}}}};var n=r(352),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.definitions=i.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.messages;return{visitor:{ReferencedIdentifier:function(e){var r=e.node,n=e.scope,s=n.getBinding(r.name)
;if(s&&"type"===s.kind&&!e.parentPath.isFlow())throw e.buildCodeFrameError(t.get("undeclaredVariableType",r.name),ReferenceError);if(!n.hasBinding(r.name)){var a=n.getAllBindings(),o=void 0,u=-1;for(var l in a){var c=(0,i.default)(r.name,l);c<=0||c>3||(c<=u||(o=l,u=c))}var f=void 0;throw f=o?t.get("undeclaredVariableSuggestion",r.name,o):t.get("undeclaredVariable",r.name),e.buildCodeFrameError(f,ReferenceError)}}}}};var n=r(471),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(211),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={plugins:[i.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{presets:[!1!==t.es2015&&[s.default.buildPreset,t.es2015],!1!==t.es2016&&o.default,!1!==t.es2017&&l.default].filter(Boolean)}};var i=r(217),s=n(i),a=r(218),o=n(a),u=r(219),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(355),s=n(i),a=r(215),o=n(a),u=r(127),l=n(u),c=r(214),f=n(c);t.default={presets:[s.default],plugins:[o.default,l.default,f.default],env:{development:{plugins:[]}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(220),s=n(i),a=r(206),o=n(a),u=r(212),l=n(u);t.default={presets:[s.default],plugins:[o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";e.exports={default:r(407),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(410),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(412),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(413),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(415),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(416),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(417),__esModule:!0}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(36),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=function(){function e(t,r,n,i){(0,o.default)(this,e),this.queue=null,this.parentPath=i,this.scope=t,this.state=n,this.opts=r}return e.prototype.shouldVisit=function(e){var t=this.opts;if(t.enter||t.exit)return!0;if(t[e.type])return!0;var r=f.VISITOR_KEYS[e.type];if(!r||!r.length)return!1;for(var n=r,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}if(e[o])return!0}return!1},e.prototype.create=function(e,t,r,n){return l.default.get({parentPath:this.parentPath,parent:e,container:t,key:r,listKey:n})},e.prototype.maybeQueue=function(e,t){if(this.trap)throw new Error("Infinite cycle detected");this.queue&&(t?this.queue.push(e):this.priorityQueue.push(e))},e.prototype.visitMultiple=function(e,t,r){if(0===e.length)return!1;for(var n=[],i=0;i<e.length;i++){var s=e[i];s&&this.shouldVisit(s)&&n.push(this.create(t,e,i,r))}return this.visitQueue(n)},e.prototype.visitSingle=function(e,t){return!!this.shouldVisit(e[t])&&this.visitQueue([this.create(e,e,t)])},e.prototype.visitQueue=function(e){this.queue=e,this.priorityQueue=[];for(var t=[],r=!1,n=e,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;if(u.resync(),0!==u.contexts.length&&u.contexts[u.contexts.length-1]===this||u.pushContext(this),null!==u.key&&!(t.indexOf(u.node)>=0)){if(t.push(u.node),u.visit()){r=!0;break}if(this.priorityQueue.length&&(r=this.visitQueue(this.priorityQueue),this.priorityQueue=[],this.queue=e,r))break}}for(var l=e,c=Array.isArray(l),f=0,l=c?l:(0,s.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}p.popContext()}return this.queue=null,r},e.prototype.visit=function(e,t){var r=e[t];return!!r&&(Array.isArray(r)?this.visitMultiple(r,e,t):this.visitSingle(e,t))},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){for(var t=this;t=t.parentPath;)if(e(t))return t;return null}function s(e){var t=this;do{if(e(t))return t}while(t=t.parentPath);return null}function a(){return this.findParent(function(e){return e.isFunction()||e.isProgram()})}function o(){var e=this;do{if(Array.isArray(e.container))return e}while(e=e.parentPath)}function u(e){return this.getDeepestCommonAncestorFrom(e,function(e,t,r){for(var n=void 0,i=g.VISITOR_KEYS[e.type],s=r,a=Array.isArray(s),o=0,s=a?s:(0,y.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u,c=l[t+1];if(n)if(c.listKey&&n.listKey===c.listKey&&c.key<n.key)n=c;else{var f=i.indexOf(n.parentKey),p=i.indexOf(c.parentKey);f>p&&(n=c)}else n=c}return n})}function l(e,t){var r=this;if(!e.length)return this;if(1===e.length)return e[0];var n=1/0,i=void 0,s=void 0,a=e.map(function(e){var t=[];do{t.unshift(e)}while((e=e.parentPath)&&e!==r);return t.length<n&&(n=t.length),t}),o=a[0];e:for(var u=0;u<n;u++){for(var l=o[u],c=a,f=Array.isArray(c),p=0,c=f?c:(0,y.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;if(h[u]!==l)break e}i=u,s=l}if(s)return t?t(s,i,a):s;throw new Error("Couldn't find intersection")}function c(){var e=this,t=[];do{t.push(e)}while(e=e.parentPath);return t}function f(e){return e.isDescendant(this)}function p(e){return!!this.findParent(function(t){return t===e})}function d(){for(var e=this;e;){for(var t=arguments,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(e.node.type===s)return!0}e=e.parentPath}return!1}function h(e){var t=this.isFunction()?this:this.findParent(function(e){return e.isFunction()});if(t){if(t.isFunctionExpression()||t.isFunctionDeclaration()){var r=t.node.shadow;if(r&&(!e||!1!==r[e]))return t}else if(t.isArrowFunctionExpression())return t;return null}}t.__esModule=!0;var m=r(2),y=n(m);t.findParent=i,t.find=s,t.getFunctionParent=a,t.getStatementParent=o,t.getEarliestCommonAncestorFrom=u,t.getDeepestCommonAncestorFrom=l,t.getAncestry=c,t.isAncestor=f,t.isDescendant=p,t.inType=d,t.inShadow=h;var v=r(1),g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(v),b=r(36);n(b)},function(e,t){"use strict";function r(){if("string"!=typeof this.key){var e=this.node;if(e){var t=e.trailingComments,r=e.leadingComments;if(t||r){var n=this.getSibling(this.key-1),i=this.getSibling(this.key+1);n.node||(n=i),i.node||(i=n),n.addComments("trailing",r),i.addComments("leading",t)}}}}function n(e,t,r){this.addComments(e,[{type:r?"CommentLine":"CommentBlock",value:t}])}function i(e,t){if(t){var r=this.node;if(r){var n=e+"Comments";r[n]?r[n]=r[n].concat(t):r[n]=t}}}t.__esModule=!0,t.shareCommentsWithSiblings=r,t.addComment=n,t.addComments=i},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=this.opts;return this.debug(function(){return e}),!(!this.node||!this._call(t[e]))||!!this.node&&this._call(t[this.node.type]&&t[this.node.type][e])}function s(e){if(!e)return!1;for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,D.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(s){var a=this.node;if(!a)return!0;if(s.call(this.state,this,this.state))throw new Error("Unexpected return value from visitor method "+s);if(this.node!==a)return!0;if(this.shouldStop||this.shouldSkip||this.removed)return!0}}return!1}function a(){var e=this.opts.blacklist;return e&&e.indexOf(this.node.type)>-1}function o(){return!!this.node&&(!this.isBlacklisted()&&((!this.opts.shouldSkip||!this.opts.shouldSkip(this))&&(this.call("enter")||this.shouldSkip?(this.debug(function(){return"Skip..."}),this.shouldStop):(this.debug(function(){return"Recursing into..."}),w.default.node(this.node,this.opts,this.scope,this.state,this,this.skipKeys),this.call("exit"),this.shouldStop))))}function u(){this.shouldSkip=!0}function l(e){this.skipKeys[e]=!0}function c(){this.shouldStop=!0,this.shouldSkip=!0}function f(){if(!this.opts||!this.opts.noScope){var e=this.context&&this.context.scope;if(!e)for(var t=this.parentPath;t&&!e;){if(t.opts&&t.opts.noScope)return;e=t.scope,t=t.parentPath}this.scope=this.getScope(e),this.scope&&this.scope.init()}}function p(e){return this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.skipKeys={},e&&(this.context=e,this.state=e.state,this.opts=e.opts),this.setScope(),this}function d(){this.removed||(this._resyncParent(),this._resyncList(),this._resyncKey())}function h(){this.parentPath&&(this.parent=this.parentPath.node)}function m(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e<this.container.length;e++)if(this.container[e]===this.node)return this.setKey(e)}else for(var t in this.container)if(this.container[t]===this.node)return this.setKey(t);this.key=null}}function y(){if(this.parent&&this.inList){var e=this.parent[this.listKey];this.container!==e&&(this.container=e||null)}}function v(){null!=this.key&&this.container&&this.container[this.key]===this.node||this._markRemoved()}function g(){this.contexts.pop(),this.setContext(this.contexts[this.contexts.length-1])}function b(e){this.contexts.push(e),this.setContext(e)}function E(e,t,r,n){this.inList=!!r,this.listKey=r,this.parentKey=r||n,this.container=t,this.parentPath=e||this.parentPath,this.setKey(n)}function x(e){this.key=e,this.node=this.container[this.key],this.type=this.node&&this.node.type}function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;if(!e.removed)for(var t=this.contexts,r=t,n=Array.isArray(r),i=0,r=n?r:(0,D.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;a.maybeQueue(e)}}function S(){for(var e=this,t=this.contexts;!t.length;)e=e.parentPath,t=e.contexts;return t}t.__esModule=!0;var _=r(2),D=n(_);t.call=i,t._call=s,t.isBlacklisted=a,t.visit=o,t.skip=u,t.skipKey=l,t.stop=c,t.setScope=f,t.setContext=p,t.resync=d,t._resyncParent=h,t._resyncKey=m,t._resyncList=y,t._resyncRemoved=v,t.popContext=g,t.pushContext=b,t.setup=E,t.setKey=x,t.requeue=A,t._getQueueContexts=S;var C=r(7),w=n(C)},function(e,t,r){"use strict";function n(){var e=this.node,t=void 0;if(this.isMemberExpression())t=e.property;else{if(!this.isProperty()&&!this.isMethod())throw new ReferenceError("todo");t=e.key}return e.computed||o.isIdentifier(t)&&(t=o.stringLiteral(t.name)),t}function i(){return o.ensureBlock(this.node)}function s(){if(this.isArrowFunctionExpression()){this.ensureBlock();var e=this.node;e.expression=!1,e.type="FunctionExpression",e.shadow=e.shadow||!0}}t.__esModule=!0,t.toComputedKey=n,t.ensureBlock=i,t.arrowFunctionToShadowed=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){(function(e){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){var e=this.evaluate();if(e.confident)return!!e.value}function s(){function t(e){i&&(s=e,i=!1)}function r(e){var r=e.node;if(a.has(r)){var s=a.get(r);return s.resolved?s.value:void t(e)}var o={resolved:!1};a.set(r,o);var u=n(e);return i&&(o.resolved=!0,o.value=u),u}function n(n){if(i){var s=n.node;if(n.isSequenceExpression()){var a=n.get("expressions");return r(a[a.length-1])}if(n.isStringLiteral()||n.isNumericLiteral()||n.isBooleanLiteral())return s.value;if(n.isNullLiteral())return null;if(n.isTemplateLiteral()){for(var u="",c=0,f=n.get("expressions"),h=s.quasis,m=Array.isArray(h),y=0,h=m?h:(0,l.default)(h);;){var v;if(m){if(y>=h.length)break;v=h[y++]}else{if(y=h.next(),y.done)break;v=y.value}var g=v;if(!i)break;u+=g.value.cooked;var b=f[c++];b&&(u+=String(r(b)))}if(!i)return;return u}if(n.isConditionalExpression()){var E=r(n.get("test"));if(!i)return;return r(E?n.get("consequent"):n.get("alternate"))}if(n.isExpressionWrapper())return r(n.get("expression"));if(n.isMemberExpression()&&!n.parentPath.isCallExpression({callee:s})){var x=n.get("property"),A=n.get("object");if(A.isLiteral()&&x.isIdentifier()){var S=A.node.value,_=void 0===S?"undefined":(0,o.default)(S);if("number"===_||"string"===_)return S[x.node.name]}}if(n.isReferencedIdentifier()){var D=n.scope.getBinding(s.name);if(D&&D.constantViolations.length>0)return t(D.path);if(D&&n.node.start<D.path.node.end)return t(D.path);if(D&&D.hasValue)return D.value;if("undefined"===s.name)return D?t(D.path):void 0;if("Infinity"===s.name)return D?t(D.path):1/0;if("NaN"===s.name)return D?t(D.path):NaN;var C=n.resolve();return C===n?t(n):r(C)}if(n.isUnaryExpression({prefix:!0})){if("void"===s.operator)return;var w=n.get("argument");if("typeof"===s.operator&&(w.isFunction()||w.isClass()))return"function";var P=r(w);if(!i)return;switch(s.operator){case"!":return!P;case"+":return+P;case"-":return-P;case"~":return~P;case"typeof":return void 0===P?"undefined":(0,o.default)(P)}}if(n.isArrayExpression()){for(var k=[],F=n.get("elements"),T=F,O=Array.isArray(T),B=0,T=O?T:(0,l.default)(T);;){var R;if(O){if(B>=T.length)break;R=T[B++]}else{if(B=T.next(),B.done)break;R=B.value}var I=R;if(I=I.evaluate(),!I.confident)return t(I);k.push(I.value)}return k}if(n.isObjectExpression()){for(var M={},N=n.get("properties"),L=N,j=Array.isArray(L),U=0,L=j?L:(0,l.default)(L);;){var V;if(j){if(U>=L.length)break;V=L[U++]}else{if(U=L.next(),U.done)break;V=U.value}var G=V;if(G.isObjectMethod()||G.isSpreadProperty())return t(G);var W=G.get("key"),Y=W;if(G.node.computed){if(Y=Y.evaluate(),!Y.confident)return t(W);Y=Y.value}else Y=Y.isIdentifier()?Y.node.name:Y.node.value;var q=G.get("value"),K=q.evaluate();if(!K.confident)return t(q);K=K.value,M[Y]=K}return M}if(n.isLogicalExpression()){var H=i,J=r(n.get("left")),X=i;i=H;var z=r(n.get("right")),$=i;switch(i=X&&$,s.operator){case"||":if(J&&X)return i=!0,J;if(!i)return;return J||z;case"&&":if((!J&&X||!z&&$)&&(i=!0),!i)return;return J&&z}}if(n.isBinaryExpression()){var Q=r(n.get("left"));if(!i)return;var Z=r(n.get("right"));if(!i)return;switch(s.operator){case"-":return Q-Z;case"+":return Q+Z;case"/":return Q/Z;case"*":return Q*Z;case"%":return Q%Z;case"**":return Math.pow(Q,Z);case"<":return Q<Z;case">":return Q>Z;case"<=":return Q<=Z;case">=":return Q>=Z;case"==":return Q==Z;case"!=":return Q!=Z;case"===":return Q===Z;case"!==":return Q!==Z;case"|":return Q|Z;case"&":return Q&Z;case"^":return Q^Z;case"<<":return Q<<Z;case">>":return Q>>Z;case">>>":return Q>>>Z}}if(n.isCallExpression()){var ee=n.get("callee"),te=void 0,re=void 0;if(ee.isIdentifier()&&!n.scope.getBinding(ee.node.name,!0)&&p.indexOf(ee.node.name)>=0&&(re=e[s.callee.name]),ee.isMemberExpression()){var ne=ee.get("object"),ie=ee.get("property");if(ne.isIdentifier()&&ie.isIdentifier()&&p.indexOf(ne.node.name)>=0&&d.indexOf(ie.node.name)<0&&(te=e[ne.node.name],re=te[ie.node.name]),ne.isLiteral()&&ie.isIdentifier()){var se=(0,o.default)(ne.node.value);"string"!==se&&"number"!==se||(te=ne.node.value,re=te[ie.node.name])}}if(re){var ae=n.get("arguments").map(r);if(!i)return;return re.apply(te,ae)}}t(n)}}var i=!0,s=void 0,a=new f.default,u=r(this);return i||(u=void 0),{confident:i,deopt:s,value:u}}t.__esModule=!0;var a=r(11),o=n(a),u=r(2),l=n(u),c=r(133),f=n(c);t.evaluateTruthy=i,t.evaluate=s;var p=["String","Number","Math"],d=["random"]}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){var e=this;do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())break;e=e.parentPath}while(e);if(e&&(e.isProgram()||e.isFile()))throw new Error("File/Program node, we can't possibly find a statement parent to this");return e}function s(){return"left"===this.key?this.getSibling("right"):"right"===this.key?this.getSibling("left"):void 0}function a(){var e=[],t=function(t){t&&(e=e.concat(t.getCompletionRecords()))};if(this.isIfStatement())t(this.get("consequent")),t(this.get("alternate"));else if(this.isDoExpression()||this.isFor()||this.isWhile())t(this.get("body"));else if(this.isProgram()||this.isBlockStatement())t(this.get("body").pop());else{if(this.isFunction())return this.get("body").getCompletionRecords();this.isTryStatement()?(t(this.get("block")),t(this.get("handler")),t(this.get("finalizer"))):e.push(this)}return e}function o(e){return _.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e})}function u(){return this.getSibling(this.key-1)}function l(){return this.getSibling(this.key+1)}function c(){for(var e=this.key,t=this.getSibling(++e),r=[];t.node;)r.push(t),t=this.getSibling(++e);return r}function f(){for(var e=this.key,t=this.getSibling(--e),r=[];t.node;)r.push(t),t=this.getSibling(--e);return r}function p(e,t){!0===t&&(t=this.context);var r=e.split(".");return 1===r.length?this._getKey(e,t):this._getPattern(r,t)}function d(e,t){var r=this,n=this.node,i=n[e];return Array.isArray(i)?i.map(function(s,a){return _.default.get({listKey:e,parentPath:r,parent:n,container:i,key:a}).setContext(t)}):_.default.get({parentPath:this,parent:n,container:n,key:e}).setContext(t)}function h(e,t){for(var r=this,n=e,i=Array.isArray(n),s=0,n=i?n:(0,A.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;r="."===o?r.parentPath:Array.isArray(r)?r[o]:r.get(o,t)}return r}function m(e){return C.getBindingIdentifiers(this.node,e)}function y(e){return C.getOuterBindingIdentifiers(this.node,e)}function v(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this,n=[].concat(r),i=(0,E.default)(null);n.length;){var s=n.shift();if(s&&s.node){var a=C.getBindingIdentifiers.keys[s.node.type];if(s.isIdentifier())if(e){var o=i[s.node.name]=i[s.node.name]||[];o.push(s)}else i[s.node.name]=s;else if(s.isExportDeclaration()){var u=s.get("declaration");u.isDeclaration()&&n.push(u)}else{if(t){if(s.isFunctionDeclaration()){n.push(s.get("id"));continue}if(s.isFunctionExpression())continue}if(a)for(var l=0;l<a.length;l++){var c=a[l],f=s.get(c);(Array.isArray(f)||f.node)&&(n=n.concat(f))}}}}return i}function g(e){return this.getBindingIdentifierPaths(e,!0)}t.__esModule=!0;var b=r(9),E=n(b),x=r(2),A=n(x);t.getStatementParent=i,t.getOpposite=s,t.getCompletionRecords=a,t.getSibling=o,t.getPrevSibling=u,t.getNextSibling=l,t.getAllNextSiblings=c,t.getAllPrevSiblings=f,t.get=p,t._getKey=d,t._getPattern=h,t.getBindingIdentifiers=m,t.getOuterBindingIdentifiers=y,t.getBindingIdentifierPaths=v,t.getOuterBindingIdentifierPaths=g;var S=r(36),_=n(S),D=r(1),C=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(D)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(){if(this.typeAnnotation)return this.typeAnnotation;var e=this._getTypeAnnotation()||y.anyTypeAnnotation();return y.isTypeAnnotation(e)&&(e=e.typeAnnotation),this.typeAnnotation=e}function s(){var e=this.node;{if(e){if(e.typeAnnotation)return e.typeAnnotation;var t=h[e.type];return t?t.call(this,e):(t=h[this.parentPath.type],t&&t.validParent?this.parentPath.getTypeAnnotation():void 0)}if("init"===this.key&&this.parentPath.isVariableDeclarator()){var r=this.parentPath.parentPath,n=r.parentPath;return"left"===r.key&&n.isForInStatement()?y.stringTypeAnnotation():"left"===r.key&&n.isForOfStatement()?y.anyTypeAnnotation():y.voidTypeAnnotation()}}}function a(e,t){return o(e,this.getTypeAnnotation(),t)}function o(e,t,r){if("string"===e)return y.isStringTypeAnnotation(t);if("number"===e)return y.isNumberTypeAnnotation(t);if("boolean"===e)return y.isBooleanTypeAnnotation(t);if("any"===e)return y.isAnyTypeAnnotation(t);if("mixed"===e)return y.isMixedTypeAnnotation(t);if("empty"===e)return y.isEmptyTypeAnnotation(t);if("void"===e)return y.isVoidTypeAnnotation(t);if(r)return!1;throw new Error("Unknown base type "+e)}function u(e){var t=this.getTypeAnnotation();if(y.isAnyTypeAnnotation(t))return!0;if(y.isUnionTypeAnnotation(t)){for(var r=t.types,n=Array.isArray(r),i=0,r=n?r:(0,p.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if(y.isAnyTypeAnnotation(a)||o(e,a,!0))return!0}return!1}return o(e,t,!0)}function l(e){var t=this.getTypeAnnotation();if(e=e.getTypeAnnotation(),!y.isAnyTypeAnnotation(t)&&y.isFlowBaseAnnotation(t))return e.type===t.type}function c(e){var t=this.getTypeAnnotation();return y.isGenericTypeAnnotation(t)&&y.isIdentifier(t.id,{name:e})}t.__esModule=!0;var f=r(2),p=function(e){return e&&e.__esModule?e:{default:e}}(f);t.getTypeAnnotation=i,t._getTypeAnnotation=s,t.isBaseType=a,t.couldBeBaseType=u,t.baseTypeStrictlyMatches=l,t.isGenericType=c;var d=r(376),h=n(d),m=r(1),y=n(m)},function(e,t,r){"use strict";function n(e,t){var r=e.scope.getBinding(t),n=[];e.typeAnnotation=f.unionTypeAnnotation(n);var s=[],a=i(r,e,s),u=o(e,t);if(u){var c=i(r,u.ifStatement);a=a.filter(function(e){return c.indexOf(e)<0}),n.push(u.typeAnnotation)}if(a.length){a=a.concat(s);for(var p=a,d=Array.isArray(p),h=0,p=d?p:(0,l.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var y=m;n.push(y.getTypeAnnotation())}}if(n.length)return f.createUnionTypeAnnotation(n)}function i(e,t,r){var n=e.constantViolations.slice();return n.unshift(e.path),n.filter(function(e){e=e.resolve();var n=e._guessExecutionStatusRelativeTo(t);return r&&"function"===n&&r.push(e),"before"===n})}function s(e,t){var r=t.node.operator,n=t.get("right").resolve(),i=t.get("left").resolve(),s=void 0;if(i.isIdentifier({name:e})?s=n:n.isIdentifier({name:e})&&(s=i),s)return"==="===r?s.getTypeAnnotation():f.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(r)>=0?f.numberTypeAnnotation():void 0;if("==="===r){var a=void 0,o=void 0;if(i.isUnaryExpression({operator:"typeof"})?(a=i,o=n):n.isUnaryExpression({operator:"typeof"})&&(a=n,o=i),(o||a)&&(o=o.resolve(),o.isLiteral())){if("string"==typeof o.node.value&&a.get("argument").isIdentifier({name:e}))return f.createTypeAnnotationBasedOnTypeof(o.node.value)}}}function a(e){for(var t=void 0;t=e.parentPath;){if(t.isIfStatement()||t.isConditionalExpression())return"test"===e.key?void 0:t;e=t}}function o(e,t){var r=a(e);if(r){var n=r.get("test"),i=[n],u=[];do{var l=i.shift().resolve();if(l.isLogicalExpression()&&(i.push(l.get("left")),i.push(l.get("right"))),l.isBinaryExpression()){var c=s(t,l);c&&u.push(c)}}while(i.length);return u.length?{typeAnnotation:f.createUnionTypeAnnotation(u),ifStatement:r}:o(r,t)}}t.__esModule=!0;var u=r(2),l=function(e){return e&&e.__esModule?e:{default:e}}(u);t.default=function(e){if(this.isReferenced()){var t=this.scope.getBinding(e.name);return t?t.identifier.typeAnnotation?t.identifier.typeAnnotation:n(this,e.name):"undefined"===e.name?f.voidTypeAnnotation():"NaN"===e.name||"Infinity"===e.name?f.numberTypeAnnotation():void e.name}};var c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){return this.get("id").isIdentifier()?this.get("init").getTypeAnnotation():void 0}function s(e){return e.typeAnnotation}function a(e){if(this.get("callee").isIdentifier())return k.genericTypeAnnotation(e.callee)}function o(){return k.stringTypeAnnotation()}function u(e){var t=e.operator;return"void"===t?k.voidTypeAnnotation():k.NUMBER_UNARY_OPERATORS.indexOf(t)>=0?k.numberTypeAnnotation():k.STRING_UNARY_OPERATORS.indexOf(t)>=0?k.stringTypeAnnotation():k.BOOLEAN_UNARY_OPERATORS.indexOf(t)>=0?k.booleanTypeAnnotation():void 0}function l(e){var t=e.operator;if(k.NUMBER_BINARY_OPERATORS.indexOf(t)>=0)return k.numberTypeAnnotation();if(k.BOOLEAN_BINARY_OPERATORS.indexOf(t)>=0)return k.booleanTypeAnnotation();if("+"===t){var r=this.get("right"),n=this.get("left");return n.isBaseType("number")&&r.isBaseType("number")?k.numberTypeAnnotation():n.isBaseType("string")||r.isBaseType("string")?k.stringTypeAnnotation():k.unionTypeAnnotation([k.stringTypeAnnotation(),k.numberTypeAnnotation()])}}function c(){return k.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()])}function f(){return k.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()])}function p(){return this.get("expressions").pop().getTypeAnnotation()}function d(){return this.get("right").getTypeAnnotation()}function h(e){var t=e.operator;if("++"===t||"--"===t)return k.numberTypeAnnotation()}function m(){return k.stringTypeAnnotation()}function y(){return k.numberTypeAnnotation()}function v(){return k.booleanTypeAnnotation()}function g(){return k.nullLiteralTypeAnnotation()}function b(){return k.genericTypeAnnotation(k.identifier("RegExp"))}function E(){return k.genericTypeAnnotation(k.identifier("Object"))}function x(){return k.genericTypeAnnotation(k.identifier("Array"))}function A(){return x()}function S(){return k.genericTypeAnnotation(k.identifier("Function"))}function _(){return C(this.get("callee"))}function D(){return C(this.get("tag"))}function C(e){if(e=e.resolve(),e.isFunction()){if(e.is("async"))return e.is("generator")?k.genericTypeAnnotation(k.identifier("AsyncIterator")):k.genericTypeAnnotation(k.identifier("Promise"));if(e.node.returnType)return e.node.returnType}}t.__esModule=!0,t.ClassDeclaration=t.ClassExpression=t.FunctionDeclaration=t.ArrowFunctionExpression=t.FunctionExpression=t.Identifier=void 0;var w=r(375);Object.defineProperty(t,"Identifier",{enumerable:!0,get:function(){return n(w).default}}),t.VariableDeclarator=i,t.TypeCastExpression=s,t.NewExpression=a,t.TemplateLiteral=o,t.UnaryExpression=u,t.BinaryExpression=l,t.LogicalExpression=c,t.ConditionalExpression=f,t.SequenceExpression=p,t.AssignmentExpression=d,t.UpdateExpression=h,t.StringLiteral=m,t.NumericLiteral=y,t.BooleanLiteral=v,t.NullLiteral=g,t.RegExpLiteral=b,t.ObjectExpression=E,t.ArrayExpression=x,t.RestElement=A,t.CallExpression=_,t.TaggedTemplateExpression=D;var P=r(1),k=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(P);s.validParent=!0,A.validParent=!0,t.FunctionExpression=S,t.ArrowFunctionExpression=S,t.FunctionDeclaration=S,t.ClassExpression=S,t.ClassDeclaration=S},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){function r(e){var t=n[s];return"*"===t||e===t}if(!this.isMemberExpression())return!1;for(var n=e.split("."),i=[this.node],s=0;i.length;){var a=i.shift();if(t&&s===n.length)return!0;if(C.isIdentifier(a)){if(!r(a.name))return!1}else if(C.isLiteral(a)){if(!r(a.value))return!1}else{if(C.isMemberExpression(a)){if(a.computed&&!C.isLiteral(a.property))return!1;i.unshift(a.property),i.unshift(a.object);continue}if(!C.isThisExpression(a))return!1;if(!r("this"))return!1}if(++s>n.length)return!1}return s===n.length}function s(e){var t=this.node&&this.node[e];return t&&Array.isArray(t)?!!t.length:!!t}function a(){return this.scope.isStatic(this.node)}function o(e){return!this.has(e)}function u(e,t){return this.node[e]===t}function l(e){return C.isType(this.type,e)}function c(){return("init"===this.key||"left"===this.key)&&this.parentPath.isFor()}function f(e){return!("body"!==this.key||!this.parentPath.isArrowFunctionExpression())&&(this.isExpression()?C.isBlockStatement(e):!!this.isBlockStatement()&&C.isExpression(e))}function p(e){var t=this,r=!0;do{var n=t.container;if(t.isFunction()&&!r)return!!e;if(r=!1,Array.isArray(n)&&t.key!==n.length-1)return!1}while((t=t.parentPath)&&!t.isProgram());return!0}function d(){return!this.parentPath.isLabeledStatement()&&!C.isBlockStatement(this.container)&&(0,_.default)(C.STATEMENT_OR_BLOCK_KEYS,this.key)}function h(e,t){if(!this.isReferencedIdentifier())return!1;var r=this.scope.getBinding(this.node.name);if(!r||"module"!==r.kind)return!1;var n=r.path,i=n.parentPath;return!!i.isImportDeclaration()&&(i.node.source.value===e&&(!t||(!(!n.isImportDefaultSpecifier()||"default"!==t)||(!(!n.isImportNamespaceSpecifier()||"*"!==t)||!(!n.isImportSpecifier()||n.node.imported.name!==t)))))}function m(){var e=this.node;return e.end?this.hub.file.code.slice(e.start,e.end):""}function y(e){return"after"!==this._guessExecutionStatusRelativeTo(e)}function v(e){var t=e.scope.getFunctionParent(),r=this.scope.getFunctionParent();if(t.node!==r.node){var n=this._guessExecutionStatusRelativeToDifferentFunctions(t);if(n)return n;e=t.path}var i=e.getAncestry();if(i.indexOf(this)>=0)return"after";var s=this.getAncestry(),a=void 0,o=void 0,u=void 0;for(u=0;u<s.length;u++){var l=s[u];if((o=i.indexOf(l))>=0){a=l;break}}if(!a)return"before";var c=i[o-1],f=s[u-1];return c&&f?c.listKey&&c.container===f.container?c.key>f.key?"before":"after":C.VISITOR_KEYS[c.type].indexOf(c.key)>C.VISITOR_KEYS[f.type].indexOf(f.key)?"before":"after":"before"}function g(e){var t=e.path;if(t.isFunctionDeclaration()){var r=t.scope.getBinding(t.node.id.name);if(!r.references)return"before";for(var n=r.referencePaths,i=n,s=Array.isArray(i),a=0,i=s?i:(0,A.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;if("callee"!==u.key||!u.parentPath.isCallExpression())return}for(var l=void 0,c=n,f=Array.isArray(c),p=0,c=f?c:(0,A.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;if(!!!h.find(function(e){return e.node===t.node})){var m=this._guessExecutionStatusRelativeTo(h);if(l){if(l!==m)return}else l=m}}return l}}function b(e,t){return this._resolve(e,t)||this}function E(e,t){if(!(t&&t.indexOf(this)>=0))if(t=t||[],t.push(this),this.isVariableDeclarator()){if(this.get("id").isIdentifier())return this.get("init").resolve(e,t)}else if(this.isReferencedIdentifier()){var r=this.scope.getBinding(this.node.name);if(!r)return;if(!r.constant)return;if("module"===r.kind)return;if(r.path!==this){var n=r.path.resolve(e,t);if(this.find(function(e){return e.node===n.node}))return;return n}}else{if(this.isTypeCastExpression())return this.get("expression").resolve(e,t);if(e&&this.isMemberExpression()){var i=this.toComputedKey();if(!C.isLiteral(i))return;var s=i.value,a=this.get("object").resolve(e,t);if(a.isObjectExpression())for(var o=a.get("properties"),u=o,l=Array.isArray(u),c=0,u=l?u:(0,A.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;if(p.isProperty()){var d=p.get("key"),h=p.isnt("computed")&&d.isIdentifier({name:s});if(h=h||d.isLiteral({value:s}))return p.get("value").resolve(e,t)}}else if(a.isArrayExpression()&&!isNaN(+s)){var m=a.get("elements"),y=m[s];if(y)return y.resolve(e,t)}}}}t.__esModule=!0,t.is=void 0;var x=r(2),A=n(x);t.matchesPattern=i,t.has=s,t.isStatic=a,t.isnt=o,t.equals=u,t.isNodeType=l,t.canHaveVariableDeclarationOrExpression=c,t.canSwapBetweenExpressionAndStatement=f,t.isCompletionRecord=p,t.isStatementOrBlock=d,t.referencesImport=h,t.getSource=m,
t.willIMaybeExecuteBefore=y,t._guessExecutionStatusRelativeTo=v,t._guessExecutionStatusRelativeToDifferentFunctions=g,t.resolve=b,t._resolve=E;var S=r(111),_=n(S),D=r(1),C=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(D);t.is=s},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u),c={ReferencedIdentifier:function(e,t){if(!e.isJSXIdentifier()||!u.react.isCompatTag(e.node.name)||e.parentPath.isJSXMemberExpression()){if("this"===e.node.name){var r=e.scope;do{if(r.path.isFunction()&&!r.path.isArrowFunctionExpression())break}while(r=r.parent);r&&t.breakOnScopePaths.push(r.path)}var n=e.scope.getBinding(e.node.name);n&&n===t.scope.getBinding(e.node.name)&&(t.bindings[e.node.name]=n)}}},f=function(){function e(t,r){(0,o.default)(this,e),this.breakOnScopePaths=[],this.bindings={},this.scopes=[],this.scope=r,this.path=t,this.attachAfter=!1}return e.prototype.isCompatibleScope=function(e){for(var t in this.bindings){var r=this.bindings[t];if(!e.bindingIdentifierEquals(t,r.identifier))return!1}return!0},e.prototype.getCompatibleScopes=function(){var e=this.path.scope;do{if(!this.isCompatibleScope(e))break;if(this.scopes.push(e),this.breakOnScopePaths.indexOf(e.path)>=0)break}while(e=e.parent)},e.prototype.getAttachmentPath=function(){var e=this._getAttachmentPath();if(e){var t=e.scope;if(t.path===e&&(t=e.scope.parent),t.path.isProgram()||t.path.isFunction())for(var r in this.bindings)if(t.hasOwnBinding(r)){var n=this.bindings[r];if("param"!==n.kind&&this.getAttachmentParentForPath(n.path).key>e.key){this.attachAfter=!0,e=n.path;for(var i=n.constantViolations,a=Array.isArray(i),o=0,i=a?i:(0,s.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;this.getAttachmentParentForPath(l).key>e.key&&(e=l)}}}return e.parentPath.isExportDeclaration()&&(e=e.parentPath),e}},e.prototype._getAttachmentPath=function(){var e=this.scopes,t=e.pop();if(t){if(t.path.isFunction()){if(this.hasOwnParamBindings(t)){if(this.scope===t)return;return t.path.get("body").get("body")[0]}return this.getNextScopeAttachmentParent()}return t.path.isProgram()?this.getNextScopeAttachmentParent():void 0}},e.prototype.getNextScopeAttachmentParent=function(){var e=this.scopes.pop();if(e)return this.getAttachmentParentForPath(e.path)},e.prototype.getAttachmentParentForPath=function(e){do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement()||e.isVariableDeclarator()&&null!==e.parentPath.node&&e.parentPath.node.declarations.length>1)return e}while(e=e.parentPath)},e.prototype.hasOwnParamBindings=function(e){for(var t in this.bindings)if(e.hasOwnBinding(t)){var r=this.bindings[t];if("param"===r.kind&&r.constant)return!0}return!1},e.prototype.run=function(){var e=this.path.node;if(!e._hoisted){e._hoisted=!0,this.path.traverse(c,this),this.getCompatibleScopes();var t=this.getAttachmentPath();if(t&&t.getFunctionParent()!==this.path.getFunctionParent()){var r=t.scope.generateUidIdentifier("ref"),n=l.variableDeclarator(r,this.path.node);t[this.attachAfter?"insertAfter":"insertBefore"]([t.isVariableDeclarator()?n:l.variableDeclaration("var",[n])]);var i=this.path.parentPath;i.isJSXElement()&&this.path.container===i.node.children&&(r=l.JSXExpressionContainer(r)),this.path.replaceWith(r)}}},e}();t.default=f,e.exports=t.default},function(e,t){"use strict";t.__esModule=!0;t.hooks=[function(e,t){if("test"===e.key&&(t.isWhile()||t.isSwitchCase())||"declaration"===e.key&&t.isExportDeclaration()||"body"===e.key&&t.isLabeledStatement()||"declarations"===e.listKey&&t.isVariableDeclaration()&&1===t.node.declarations.length||"expression"===e.key&&t.isExpressionStatement())return t.remove(),!0},function(e,t){if(t.isSequenceExpression()&&1===t.node.expressions.length)return t.replaceWith(t.node.expressions[0]),!0},function(e,t){if(t.isBinary())return"left"===e.key?t.replaceWith(t.node.right):t.replaceWith(t.node.left),!0},function(e,t){if(t.isIfStatement()&&("consequent"===e.key||"alternate"===e.key)||"body"===e.key&&(t.isLoop()||t.isArrowFunctionExpression()))return e.replaceWith({type:"BlockStatement",body:[]}),!0}]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertBefore(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key)this.node&&e.push(this.node),this.replaceExpressionWithStatements(e);else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertBefore(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.push(this.node),this._replaceWith(D.blockStatement(e))}return[this]}function s(e,t){this.updateSiblingKeys(e,t.length);for(var r=[],n=0;n<t.length;n++){var i=e+n,s=t[n];if(this.container.splice(i,0,s),this.context){var a=this.context.create(this.parent,this.container,i,this.listKey);this.context.queue&&a.pushContext(this.context),r.push(a)}else r.push(S.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:i}))}for(var o=this._getQueueContexts(),u=r,l=Array.isArray(u),c=0,u=l?u:(0,g.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;p.setScope(),p.debug(function(){return"Inserted."});for(var d=o,h=Array.isArray(d),m=0,d=h?d:(0,g.default)(d);;){var y;if(h){if(m>=d.length)break;y=d[m++]}else{if(m=d.next(),m.done)break;y=m.value}y.maybeQueue(p,!0)}}return r}function a(e){return this._containerInsert(this.key,e)}function o(e){return this._containerInsert(this.key+1,e)}function u(e){var t=e[e.length-1];(D.isIdentifier(t)||D.isExpressionStatement(t)&&D.isIdentifier(t.expression))&&!this.isCompletionRecord()&&e.pop()}function l(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertAfter(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key){if(this.node){var t=this.scope.generateDeclaredUidIdentifier();e.unshift(D.expressionStatement(D.assignmentExpression("=",t,this.node))),e.push(D.expressionStatement(t))}this.replaceExpressionWithStatements(e)}else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertAfter(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.unshift(this.node),this._replaceWith(D.blockStatement(e))}return[this]}function c(e,t){if(this.parent)for(var r=b.path.get(this.parent),n=0;n<r.length;n++){var i=r[n];i.key>=e&&(i.key+=t)}}function f(e){if(!e)return[];e.constructor!==Array&&(e=[e]);for(var t=0;t<e.length;t++){var r=e[t],n=void 0;if(r?"object"!==(void 0===r?"undefined":(0,y.default)(r))?n="contains a non-object node":r.type?r instanceof S.default&&(n="has a NodePath when it expected a raw object"):n="without a type":n="has falsy node",n){var i=Array.isArray(r)?"array":void 0===r?"undefined":(0,y.default)(r);throw new Error("Node list "+n+" with the index of "+t+" and type of "+i)}}return e}function p(e,t){return this._assertUnremoved(),t=this._verifyNodeList(t),S.default.get({parentPath:this,parent:this.node,container:this.node[e],listKey:e,key:0}).insertBefore(t)}function d(e,t){this._assertUnremoved(),t=this._verifyNodeList(t);var r=this.node[e];return S.default.get({parentPath:this,parent:this.node,container:r,listKey:e,key:r.length}).replaceWithMultiple(t)}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.scope;return new x.default(this,e).run()}t.__esModule=!0;var m=r(11),y=n(m),v=r(2),g=n(v);t.insertBefore=i,t._containerInsert=s,t._containerInsertBefore=a,t._containerInsertAfter=o,t._maybePopFromStatements=u,t.insertAfter=l,t.updateSiblingKeys=c,t._verifyNodeList=f,t.unshiftContainer=p,t.pushContainer=d,t.hoist=h;var b=r(88),E=r(378),x=n(E),A=r(36),S=n(A),_=r(1),D=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(_)},function(e,t,r){"use strict";function n(){if(this._assertUnremoved(),this.resync(),this._callRemovalHooks())return void this._markRemoved();this.shareCommentsWithSiblings(),this._remove(),this._markRemoved()}function i(){for(var e=c.hooks,t=Array.isArray(e),r=0,e=t?e:(0,l.default)(e);;){var n;if(t){if(r>=e.length)break;n=e[r++]}else{if(r=e.next(),r.done)break;n=r.value}if(n(this,this.parentPath))return!0}}function s(){Array.isArray(this.container)?(this.container.splice(this.key,1),this.updateSiblingKeys(this.key,-1)):this._replaceWith(null)}function a(){this.shouldSkip=!0,this.removed=!0,this.node=null}function o(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")}t.__esModule=!0;var u=r(2),l=function(e){return e&&e.__esModule?e:{default:e}}(u);t.remove=n,t._callRemovalHooks=i,t._remove=s,t._markRemoved=a,t._assertUnremoved=o;var c=r(379)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){this.resync(),e=this._verifyNodeList(e),E.inheritLeadingComments(e[0],this.node),E.inheritTrailingComments(e[e.length-1],this.node),this.node=this.container[this.key]=null,this.insertAfter(e),this.node?this.requeue():this.remove()}function s(e){this.resync();try{e="("+e+")",e=(0,g.parse)(e)}catch(r){var t=r.loc;throw t&&(r.message+=" - make sure this is an expression.",r.message+="\n"+(0,d.default)(e,t.line,t.column+1)),r}return e=e.program.body[0].expression,m.default.removeProperties(e),this.replaceWith(e)}function a(e){if(this.resync(),this.removed)throw new Error("You can't replace this node, we've already removed it");if(e instanceof v.default&&(e=e.node),!e)throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");if(this.node!==e){if(this.isProgram()&&!E.isProgram(e))throw new Error("You can only replace a Program root node with another Program node");if(Array.isArray(e))throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");if("string"==typeof e)throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");if(this.isNodeType("Statement")&&E.isExpression(e)&&(this.canHaveVariableDeclarationOrExpression()||this.canSwapBetweenExpressionAndStatement(e)||this.parentPath.isExportDefaultDeclaration()||(e=E.expressionStatement(e))),this.isNodeType("Expression")&&E.isStatement(e)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(e))return this.replaceExpressionWithStatements([e]);var t=this.node;t&&(E.inheritsComments(e,t),E.removeComments(t)),this._replaceWith(e),this.type=e.type,this.setScope(),this.requeue()}}function o(e){if(!this.container)throw new ReferenceError("Container is falsy");this.inList?E.validate(this.parent,this.key,[e]):E.validate(this.parent,this.key,e),this.debug(function(){return"Replace with "+(e&&e.type)}),this.node=this.container[this.key]=e}function u(e){this.resync();var t=E.toSequenceExpression(e,this.scope);if(E.isSequenceExpression(t)){var r=t.expressions;r.length>=2&&this.parentPath.isExpressionStatement()&&this._maybePopFromStatements(r),1===r.length?this.replaceWith(r[0]):this.replaceWith(t)}else{if(!t){var n=E.functionExpression(null,[],E.blockStatement(e));n.shadow=!0,this.replaceWith(E.callExpression(n,[])),this.traverse(x);for(var i=this.get("callee").getCompletionRecords(),s=i,a=Array.isArray(s),o=0,s=a?s:(0,f.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(l.isExpressionStatement()){var c=l.findParent(function(e){return e.isLoop()});if(c){var p=c.getData("expressionReplacementReturnUid");if(p)p=E.identifier(p.name);else{var d=this.get("callee");p=d.scope.generateDeclaredUidIdentifier("ret"),d.get("body").pushContainer("body",E.returnStatement(p)),c.setData("expressionReplacementReturnUid",p)}l.get("expression").replaceWith(E.assignmentExpression("=",p,l.node.expression))}else l.replaceWith(E.returnStatement(l.node.expression))}}return this.node}this.replaceWith(t)}}function l(e){return this.resync(),Array.isArray(e)?Array.isArray(this.container)?(e=this._verifyNodeList(e),this._containerInsertAfter(e),this.remove()):this.replaceWithMultiple(e):this.replaceWith(e)}t.__esModule=!0;var c=r(2),f=n(c);t.replaceWithMultiple=i,t.replaceWithSourceString=s,t.replaceWith=a,t._replaceWith=o,t.replaceExpressionWithStatements=u,t.replaceInline=l;var p=r(181),d=n(p),h=r(7),m=n(h),y=r(36),v=n(y),g=r(89),b=r(1),E=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(b),x={Function:function(e){e.skip()},VariableDeclaration:function(e){if("var"===e.node.kind){var t=e.getBindingIdentifiers();for(var r in t)e.scope.push({id:t[r]});for(var n=[],i=e.node.declarations,s=Array.isArray(i),a=0,i=s?i:(0,f.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;u.init&&n.push(E.expressionStatement(E.assignmentExpression("=",u.id,u.init)))}e.replaceWithMultiple(n)}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(225),o=(n(a),r(1)),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o),l={ReferencedIdentifier:function(e,t){var r=e.node;r.name===t.oldName&&(r.name=t.newName)},Scope:function(e,t){e.scope.bindingIdentifierEquals(t.oldName,t.binding.identifier)||e.skip()},"AssignmentExpression|Declaration":function(e,t){var r=e.getOuterBindingIdentifiers();for(var n in r)n===t.oldName&&(r[n].name=t.newName)}},c=function(){function e(t,r,n){(0,s.default)(this,e),this.newName=n,this.oldName=r,this.binding=t}return e.prototype.maybeConvertFromExportDeclaration=function(e){var t=e.parentPath.isExportDeclaration()&&e.parentPath;if(t){var r=t.isExportDefaultDeclaration();r&&(e.isFunctionDeclaration()||e.isClassDeclaration())&&!e.node.id&&(e.node.id=e.scope.generateUidIdentifier("default"));var n=e.getOuterBindingIdentifiers(),i=[];for(var s in n){var a=s===this.oldName?this.newName:s,o=r?"default":s;i.push(u.exportSpecifier(u.identifier(a),u.identifier(o)))}if(i.length){var l=u.exportNamedDeclaration(null,i);e.isFunctionDeclaration()&&(l._blockHoist=3),t.insertAfter(l),t.replaceWith(e.node)}}},e.prototype.rename=function(e){var t=this.binding,r=this.oldName,n=this.newName,i=t.scope,s=t.path,a=s.find(function(e){return e.isDeclaration()||e.isFunctionExpression()});a&&this.maybeConvertFromExportDeclaration(a),i.traverse(e||i.block,l,this),e||(i.removeOwnBinding(r),i.bindings[n]=t,this.binding.identifier.name=n),t.type},e}();t.default=c,e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){if(e._exploded)return e;e._exploded=!0;for(var t in e)if(!d(t)){var r=t.split("|");if(1!==r.length){var n=e[t];delete e[t];for(var i=r,s=Array.isArray(i),o=0,i=s?i:(0,E.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;e[l]=n}}}a(e),delete e.__esModule,c(e),f(e);for(var m=(0,g.default)(e),y=Array.isArray(m),v=0,m=y?m:(0,E.default)(m);;){var b;if(y){if(v>=m.length)break;b=m[v++]}else{if(v=m.next(),v.done)break;b=v.value}var x=b;if(!d(x)){var S=A[x];if(S){var _=e[x];for(var D in _)_[D]=p(S,_[D]);if(delete e[x],S.types)for(var w=S.types,k=Array.isArray(w),F=0,w=k?w:(0,E.default)(w);;){var T;if(k){if(F>=w.length)break;T=w[F++]}else{if(F=w.next(),F.done)break;T=F.value}var O=T;e[O]?h(e[O],_):e[O]=_}else h(e,_)}}}for(var B in e)if(!d(B)){var R=e[B],I=C.FLIPPED_ALIAS_KEYS[B],M=C.DEPRECATED_KEYS[B];if(M&&(console.trace("Visitor defined for "+B+" but it has been renamed to "+M),I=[M]),I){delete e[B];for(var N=I,L=Array.isArray(N),j=0,N=L?N:(0,E.default)(N);;){var U;if(L){if(j>=N.length)break;U=N[j++]}else{if(j=N.next(),j.done)break;U=j.value}var V=U,G=e[V];G?h(G,R):e[V]=(0,P.default)(R)}}}for(var W in e)d(W)||f(e[W]);return e}function a(e){if(!e._verified){if("function"==typeof e)throw new Error(_.get("traverseVerifyRootFunction"));for(var t in e)if("enter"!==t&&"exit"!==t||o(t,e[t]),!d(t)){if(C.TYPES.indexOf(t)<0)throw new Error(_.get("traverseVerifyNodeType",t));var r=e[t];if("object"===(void 0===r?"undefined":(0,y.default)(r)))for(var n in r){if("enter"!==n&&"exit"!==n)throw new Error(_.get("traverseVerifyVisitorProperty",t,n));o(t+"."+n,r[n])}}e._verified=!0}}function o(e,t){for(var r=[].concat(t),n=r,i=Array.isArray(n),s=0,n=i?n:(0,E.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if("function"!=typeof o)throw new TypeError("Non-function found defined in "+e+" with type "+(void 0===o?"undefined":(0,y.default)(o)))}}function u(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2],n={},i=0;i<e.length;i++){var a=e[i],o=t[i];s(a);for(var u in a){var c=a[u];(o||r)&&(c=l(c,o,r));h(n[u]=n[u]||{},c)}}return n}function l(e,t,r){var n={};for(var i in e){(function(i){var s=e[i];if(!Array.isArray(s))return"continue";s=s.map(function(e){var n=e;return t&&(n=function(r){return e.call(t,r,t)}),r&&(n=r(t.key,i,n)),n}),n[i]=s})(i)}return n}function c(e){for(var t in e)if(!d(t)){var r=e[t];"function"==typeof r&&(e[t]={enter:r})}}function f(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function p(e,t){var r=function(r){if(e.checkPath(r))return t.apply(this,arguments)};return r.toString=function(){return t.toString()},r}function d(e){return"_"===e[0]||("enter"===e||"exit"===e||"shouldSkip"===e||("blacklist"===e||"noScope"===e||"skipKeys"===e))}function h(e,t){for(var r in t)e[r]=[].concat(e[r]||[],t[r])}t.__esModule=!0;var m=r(11),y=i(m),v=r(14),g=i(v),b=r(2),E=i(b);t.explode=s,t.verify=a,t.merge=u;var x=r(224),A=n(x),S=r(20),_=n(S),D=r(1),C=n(D),w=r(109),P=i(w)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key||e.property;return e.computed||D.isIdentifier(t)&&(t=D.stringLiteral(t.name)),t}function s(e,t,r){for(var n=[],i=!0,a=e,o=Array.isArray(a),u=0,a=o?a:(0,b.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(i=!1,D.isExpression(c))n.push(c);else if(D.isExpressionStatement(c))n.push(c.expression);else if(D.isVariableDeclaration(c)){if("var"!==c.kind)return;for(var f=c.declarations,p=Array.isArray(f),d=0,f=p?f:(0,b.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h,y=D.getBindingIdentifiers(m);for(var v in y)r.push({kind:c.kind,id:y[v]});m.init&&n.push(D.assignmentExpression("=",m.id,m.init))}i=!0}else if(D.isIfStatement(c)){var g=c.consequent?s([c.consequent],t,r):t.buildUndefinedNode(),E=c.alternate?s([c.alternate],t,r):t.buildUndefinedNode();if(!g||!E)return;n.push(D.conditionalExpression(c.test,g,E))}else if(D.isBlockStatement(c)){var x=s(c.body,t,r);if(!x)return;n.push(x)}else{if(!D.isEmptyStatement(c))return;i=!0}}return i&&n.push(t.buildUndefinedNode()),1===n.length?n[0]:D.sequenceExpression(n)}function a(e,t){if(e&&e.length){var r=[],n=s(e,t,r);if(n){for(var i=r,a=Array.isArray(i),o=0,i=a?i:(0,b.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;t.push(l)}return n}}}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key,r=void 0;return"method"===e.kind?o.increment()+"":(r=D.isIdentifier(t)?t.name:D.isStringLiteral(t)?(0,v.default)(t.value):(0,v.default)(D.removePropertiesDeep(D.cloneDeep(t))),e.computed&&(r="["+r+"]"),e.static&&(r="static:"+r),r)}function u(e){return e+="",e=e.replace(/[^a-zA-Z0-9$_]/g,"-"),e=e.replace(/^[-0-9]+/,""),e=e.replace(/[-\s]+(.)?/g,function(e,t){return t?t.toUpperCase():""}),D.isValidIdentifier(e)||(e="_"+e),e||"_"}function l(e){return e=u(e),"eval"!==e&&"arguments"!==e||(e="_"+e),e}function c(e,t){if(D.isStatement(e))return e;var r=!1,n=void 0;if(D.isClass(e))r=!0,n="ClassDeclaration";else if(D.isFunction(e))r=!0,n="FunctionDeclaration";else if(D.isAssignmentExpression(e))return D.expressionStatement(e);if(r&&!e.id&&(n=!1),!n){if(t)return!1;throw new Error("cannot turn "+e.type+" to a statement")}return e.type=n,e}function f(e){if(D.isExpressionStatement(e)&&(e=e.expression),D.isExpression(e))return e;if(D.isClass(e)?e.type="ClassExpression":D.isFunction(e)&&(e.type="FunctionExpression"),!D.isExpression(e))throw new Error("cannot turn "+e.type+" to an expression");return e}function p(e,t){return D.isBlockStatement(e)?e:(D.isEmptyStatement(e)&&(e=[]),Array.isArray(e)||(D.isStatement(e)||(e=D.isFunction(t)?D.returnStatement(e):D.expressionStatement(e)),e=[e]),D.blockStatement(e))}function d(e){if(void 0===e)return D.identifier("undefined");if(!0===e||!1===e)return D.booleanLiteral(e);if(null===e)return D.nullLiteral();if("string"==typeof e)return D.stringLiteral(e);if("number"==typeof e)return D.numericLiteral(e);if((0,S.default)(e)){var t=e.source,r=e.toString().match(/\/([a-z]+|)$/)[1];return D.regExpLiteral(t,r)}if(Array.isArray(e))return D.arrayExpression(e.map(D.valueToNode));if((0,x.default)(e)){var n=[];for(var i in e){var s=void 0;s=D.isValidIdentifier(i)?D.identifier(i):D.stringLiteral(i),n.push(D.objectProperty(s,D.valueToNode(e[i])))}return D.objectExpression(n)}throw new Error("don't know how to turn this value into a node")}t.__esModule=!0;var h=r(359),m=n(h),y=r(35),v=n(y),g=r(2),b=n(g);t.toComputedKey=i,t.toSequenceExpression=a,t.toKeyAlias=o,t.toIdentifier=u,t.toBindingIdentifierName=l,t.toStatement=c,t.toExpression=f,t.toBlock=p,t.valueToNode=d;var E=r(275),x=n(E),A=r(276),S=n(A),_=r(1),D=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(_);o.uid=0,o.increment=function(){return o.uid>=m.default?o.uid=0:o.uid++}},function(e,t,r){"use strict";var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n),s=r(135),a=r(26),o=function(e){return e&&e.__esModule?e:{default:e}}(a);(0,o.default)("ArrayExpression",{fields:{elements:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeOrValueType)("null","Expression","SpreadElement"))),default:[]}},visitor:["elements"],aliases:["Expression"]}),(0,o.default)("AssignmentExpression",{fields:{operator:{validate:(0,a.assertValueType)("string")},left:{validate:(0,a.assertNodeType)("LVal")},right:{validate:(0,a.assertNodeType)("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),(0,o.default)("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:a.assertOneOf.apply(void 0,s.BINARY_OPERATORS)},left:{validate:(0,a.assertNodeType)("Expression")},right:{validate:(0,a.assertNodeType)("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),(0,o.default)("Directive",{visitor:["value"],fields:{value:{validate:(0,a.assertNodeType)("DirectiveLiteral")}}}),(0,o.default)("DirectiveLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("string")}}}),(0,o.default)("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Directive"))),default:[]},body:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","Statement"]}),(0,o.default)("BreakStatement",{visitor:["label"],fields:{label:{validate:(0,a.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,o.default)("CallExpression",{visitor:["callee","arguments"],fields:{callee:{validate:(0,a.assertNodeType)("Expression")},arguments:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression","SpreadElement")))}},aliases:["Expression"]}),(0,o.default)("CatchClause",{visitor:["param","body"],fields:{param:{validate:(0,a.assertNodeType)("Identifier")},body:{validate:(0,a.assertNodeType)("BlockStatement")}},aliases:["Scopable"]}),(0,o.default)("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},consequent:{validate:(0,a.assertNodeType)("Expression")},alternate:{validate:(0,a.assertNodeType)("Expression")}},aliases:["Expression","Conditional"]}),(0,o.default)("ContinueStatement",{visitor:["label"],fields:{label:{validate:(0,a.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,o.default)("DebuggerStatement",{aliases:["Statement"]}),(0,o.default)("DoWhileStatement",{visitor:["test","body"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),(0,o.default)("EmptyStatement",{aliases:["Statement"]}),(0,o.default)("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:(0,a.assertNodeType)("Expression")}},aliases:["Statement","ExpressionWrapper"]}),(0,o.default)("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:(0,a.assertNodeType)("Program")}}}),(0,o.default)("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,a.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:(0,a.assertNodeType)("VariableDeclaration","Expression"),optional:!0},test:{validate:(0,a.assertNodeType)("Expression"),optional:!0},update:{validate:(0,a.assertNodeType)("Expression"),optional:!0},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","params","body","returnType","typeParameters"],fields:{id:{validate:(0,a.assertNodeType)("Identifier")},params:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("LVal")))},body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}},aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"]}),(0,o.default)("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{id:{validate:(0,a.assertNodeType)("Identifier"),optional:!0},params:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("LVal")))},body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}}}),(0,o.default)("Identifier",{builder:["name"],visitor:["typeAnnotation"],aliases:["Expression","LVal"],fields:{name:{validate:function(e,t,r){i.isValidIdentifier(r)}},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))}}}),(0,o.default)("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},consequent:{validate:(0,a.assertNodeType)("Statement")},alternate:{optional:!0,validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:(0,a.assertNodeType)("Identifier")},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("StringLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:(0,a.assertValueType)("number")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("BooleanLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Literal"],fields:{pattern:{validate:(0,a.assertValueType)("string")},flags:{validate:(0,a.assertValueType)("string"),default:""}}}),(0,o.default)("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:a.assertOneOf.apply(void 0,s.LOGICAL_OPERATORS)},left:{validate:(0,a.assertNodeType)("Expression")},right:{validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("MemberExpression",{builder:["object","property","computed"],visitor:["object","property"],aliases:["Expression","LVal"],fields:{object:{validate:(0,a.assertNodeType)("Expression")},property:{validate:function(e,t,r){var n=e.computed?"Expression":"Identifier";(0,a.assertNodeType)(n)(e,t,r)}},computed:{default:!1}}}),(0,o.default)("NewExpression",{visitor:["callee","arguments"],aliases:["Expression"],fields:{callee:{validate:(0,a.assertNodeType)("Expression")},arguments:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression","SpreadElement")))}}}),(0,o.default)("Program",{visitor:["directives","body"],builder:["body","directives"],fields:{directives:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Directive"))),default:[]},body:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","FunctionParent"]}),(0,o.default)("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("ObjectMethod","ObjectProperty","SpreadProperty")))}}}),(0,o.default)("ObjectMethod",{builder:["kind","key","params","body","computed"],fields:{kind:{validate:(0,a.chain)((0,a.assertValueType)("string"),(0,a.assertOneOf)("method","get","set")),default:"method"},computed:{validate:(0,a.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];a.assertNodeType.apply(void 0,n)(e,t,r)}},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))},
body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}},visitor:["key","params","body","decorators","returnType","typeParameters"],aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]}),(0,o.default)("ObjectProperty",{builder:["key","value","computed","shorthand","decorators"],fields:{computed:{validate:(0,a.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];a.assertNodeType.apply(void 0,n)(e,t,r)}},value:{validate:(0,a.assertNodeType)("Expression","Pattern","RestElement")},shorthand:{validate:(0,a.assertValueType)("boolean"),default:!1},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator"))),optional:!0}},visitor:["key","value","decorators"],aliases:["UserWhitespacable","Property","ObjectMember"]}),(0,o.default)("RestElement",{visitor:["argument","typeAnnotation"],aliases:["LVal"],fields:{argument:{validate:(0,a.assertNodeType)("LVal")},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))}}}),(0,o.default)("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,a.assertNodeType)("Expression"),optional:!0}}}),(0,o.default)("SequenceExpression",{visitor:["expressions"],fields:{expressions:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression")))}},aliases:["Expression"]}),(0,o.default)("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:(0,a.assertNodeType)("Expression"),optional:!0},consequent:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}}}),(0,o.default)("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:(0,a.assertNodeType)("Expression")},cases:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("SwitchCase")))}}}),(0,o.default)("ThisExpression",{aliases:["Expression"]}),(0,o.default)("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{body:{validate:(0,a.assertNodeType)("BlockStatement")},handler:{optional:!0,handler:(0,a.assertNodeType)("BlockStatement")},finalizer:{optional:!0,validate:(0,a.assertNodeType)("BlockStatement")}}}),(0,o.default)("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:(0,a.assertNodeType)("Expression")},operator:{validate:a.assertOneOf.apply(void 0,s.UNARY_OPERATORS)}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),(0,o.default)("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:(0,a.assertNodeType)("Expression")},operator:{validate:a.assertOneOf.apply(void 0,s.UPDATE_OPERATORS)}},visitor:["argument"],aliases:["Expression"]}),(0,o.default)("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{kind:{validate:(0,a.chain)((0,a.assertValueType)("string"),(0,a.assertOneOf)("var","let","const"))},declarations:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("VariableDeclarator")))}}}),(0,o.default)("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:(0,a.assertNodeType)("LVal")},init:{optional:!0,validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("BlockStatement","Statement")}}}),(0,o.default)("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{object:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("BlockStatement","Statement")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AssignmentPattern",{visitor:["left","right"],aliases:["Pattern","LVal"],fields:{left:{validate:(0,n.assertNodeType)("Identifier")},right:{validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrayPattern",{visitor:["elements","typeAnnotation"],aliases:["Pattern","LVal"],fields:{elements:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Identifier","Pattern","RestElement")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["params","body","returnType","typeParameters"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement","Expression")},async:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("ClassBody",{visitor:["body"],fields:{body:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ClassMethod","ClassProperty")))}}}),(0,i.default)("ClassDeclaration",{builder:["id","superClass","body","decorators"],visitor:["id","body","superClass","mixins","typeParameters","superTypeParameters","implements","decorators"],aliases:["Scopable","Class","Statement","Declaration","Pureish"],fields:{id:{validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ClassExpression",{inherits:"ClassDeclaration",aliases:["Scopable","Class","Expression","Pureish"],fields:{id:{optional:!0,validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ExportAllDeclaration",{visitor:["source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("FunctionDeclaration","ClassDeclaration","Expression")}}}),(0,i.default)("ExportNamedDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("Declaration"),optional:!0},specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ExportSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral"),optional:!0}}}),(0,i.default)("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ForOfStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("ImportDeclaration",{visitor:["specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration"],fields:{specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportSpecifier",{visitor:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},imported:{validate:(0,n.assertNodeType)("Identifier")},importKind:{validate:(0,n.assertOneOf)(null,"type","typeof")}}}),(0,i.default)("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:(0,n.assertValueType)("string")},property:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("ClassMethod",{aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static"],visitor:["key","params","body","decorators","returnType","typeParameters"],fields:{kind:{validate:(0,n.chain)((0,n.assertValueType)("string"),(0,n.assertOneOf)("get","set","method","constructor")),default:"method"},computed:{default:!1,validate:(0,n.assertValueType)("boolean")},static:{default:!1,validate:(0,n.assertValueType)("boolean")},key:{validate:function(e,t,r){var i=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];n.assertNodeType.apply(void 0,i)(e,t,r)}},params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,n.assertValueType)("boolean")},async:{default:!1,validate:(0,n.assertValueType)("boolean")}}}),(0,i.default)("ObjectPattern",{visitor:["properties","typeAnnotation"],aliases:["Pattern","LVal"],fields:{properties:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("RestProperty","Property")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("Super",{aliases:["Expression"]}),(0,i.default)("TaggedTemplateExpression",{visitor:["tag","quasi"],aliases:["Expression"],fields:{tag:{validate:(0,n.assertNodeType)("Expression")},quasi:{validate:(0,n.assertNodeType)("TemplateLiteral")}}}),(0,i.default)("TemplateElement",{builder:["value","tail"],fields:{value:{},tail:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("TemplateElement")))},expressions:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Expression")))}}}),(0,i.default)("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:(0,n.assertValueType)("boolean"),default:!1},argument:{optional:!0,validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("ForAwaitStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:{}}),(0,i.default)("Import",{aliases:["Expression"]}),(0,i.default)("Decorator",{visitor:["expression"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("DoExpression",{visitor:["body"],aliases:["Expression"],fields:{body:{validate:(0,n.assertNodeType)("BlockStatement")}}}),(0,i.default)("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("RestProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("LVal")}}}),(0,i.default)("SpreadProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AnyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["Flow"],fields:{}}),(0,i.default)("BooleanTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("BooleanLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NullLiteralTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ClassImplements",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("ClassProperty",{visitor:["key","value","typeAnnotation","decorators"],builder:["key","value","typeAnnotation","decorators","computed"],aliases:["Property"],fields:{computed:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("DeclareClass",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareFunction",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareInterface",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModule",{visitor:["id","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareOpaqueType",{visitor:["id","typeParameters","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareVariable",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareExportDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("ExistentialTypeParam",{aliases:["Flow"]}),(0,i.default)("FunctionTypeAnnotation",{visitor:["typeParameters","params","rest","returnType"],aliases:["Flow"],fields:{}}),(0,i.default)("FunctionTypeParam",{visitor:["name","typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceExtends",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceDeclaration",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("IntersectionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("MixedTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("EmptyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("NumericLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NumberTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("StringLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("StringTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ThisTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("TupleTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeofTypeAnnotation",{visitor:["argument"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("OpaqueType",{visitor:["id","typeParameters","impltype","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("TypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["Flow","ExpressionWrapper","Expression"],fields:{}}),(0,i.default)("TypeParameter",{visitor:["bound"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterDeclaration",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterInstantiation",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeCallProperty",{visitor:["value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeIndexer",{visitor:["id","key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeProperty",{visitor:["key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeSpreadProperty",{visitor:["argument"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("QualifiedTypeIdentifier",{visitor:["id","qualification"],aliases:["Flow"],fields:{}}),(0,i.default)("UnionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("VoidTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}})},function(e,t,r){"use strict";r(26),r(386),r(387),r(389),r(391),r(392),r(388)},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("JSXAttribute",{visitor:["name","value"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:(0,n.assertNodeType)("JSXElement","StringLiteral","JSXExpressionContainer")}}}),(0,i.default)("JSXClosingElement",{visitor:["name"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")}}}),(0,i.default)("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["JSX","Immutable","Expression"],fields:{openingElement:{validate:(0,n.assertNodeType)("JSXOpeningElement")},closingElement:{optional:!0,validate:(0,n.assertNodeType)("JSXClosingElement")},children:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement")))}}}),(0,i.default)("JSXEmptyExpression",{aliases:["JSX","Expression"]}),(0,i.default)("JSXExpressionContainer",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXSpreadChild",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXIdentifier",{builder:["name"],aliases:["JSX","Expression"],fields:{name:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("JSXMemberExpression",{visitor:["object","property"],aliases:["JSX","Expression"],fields:{object:{validate:(0,n.assertNodeType)("JSXMemberExpression","JSXIdentifier")},property:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXNamespacedName",{visitor:["namespace","name"],aliases:["JSX"],fields:{namespace:{validate:(0,n.assertNodeType)("JSXIdentifier")},name:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","attributes"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")},selfClosing:{default:!1,validate:(0,n.assertValueType)("boolean")},attributes:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXAttribute","JSXSpreadAttribute")))}}}),(0,i.default)("JSXSpreadAttribute",{visitor:["argument"],aliases:["JSX"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXText",{aliases:["JSX","Immutable"],builder:["value"],fields:{value:{validate:(0,n.assertValueType)("string")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("Noop",{visitor:[]}),(0,i.default)("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";function n(e){var t=i(e);return 1===t.length?t[0]:o.unionTypeAnnotation(t)}function i(e){for(var t={},r={},n=[],s=[],a=0;a<e.length;a++){var u=e[a];if(u&&!(s.indexOf(u)>=0)){if(o.isAnyTypeAnnotation(u))return[u];if(o.isFlowBaseAnnotation(u))r[u.type]=u;else if(o.isUnionTypeAnnotation(u))n.indexOf(u.types)<0&&(e=e.concat(u.types),n.push(u.types));else if(o.isGenericTypeAnnotation(u)){var l=u.id.name;if(t[l]){var c=t[l];c.typeParameters?u.typeParameters&&(c.typeParameters.params=i(c.typeParameters.params.concat(u.typeParameters.params))):c=u.typeParameters}else t[l]=u}else s.push(u)}}for(var f in r)s.push(r[f]);for(var p in t)s.push(t[p]);return s}function s(e){if("string"===e)return o.stringTypeAnnotation();if("number"===e)return o.numberTypeAnnotation();if("undefined"===e)return o.voidTypeAnnotation();if("boolean"===e)return o.booleanTypeAnnotation();if("function"===e)return o.genericTypeAnnotation(o.identifier("Function"));if("object"===e)return o.genericTypeAnnotation(o.identifier("Object"));if("symbol"===e)return o.genericTypeAnnotation(o.identifier("Symbol"));throw new Error("Invalid typeof value")}t.__esModule=!0,t.createUnionTypeAnnotation=n,t.removeTypeDuplicates=i,t.createTypeAnnotationBasedOnTypeof=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){"use strict";function n(e){return!!e&&/^[a-z]|\-/.test(e)}function i(e,t){for(var r=e.value.split(/\r\n|\n|\r/),n=0,i=0;i<r.length;i++)r[i].match(/[^ \t]/)&&(n=i);for(var s="",a=0;a<r.length;a++){var u=r[a],l=0===a,c=a===r.length-1,f=a===n,p=u.replace(/\t/g," ");l||(p=p.replace(/^[ ]+/,"")),c||(p=p.replace(/[ ]+$/,"")),p&&(f||(p+=" "),s+=p)}s&&t.push(o.stringLiteral(s))}function s(e){for(var t=[],r=0;r<e.children.length;r++){var n=e.children[r];o.isJSXText(n)?i(n,t):(o.isJSXExpressionContainer(n)&&(n=n.expression),o.isJSXEmptyExpression(n)||t.push(n))}return t}t.__esModule=!0,t.isReactComponent=void 0,t.isCompatTag=n,t.buildChildren=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);t.isReactComponent=o.buildMatchMemberExpression("React.Component")},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=E.getBindingIdentifiers.keys[t.type];if(r)for(var n=0;n<r.length;n++){var i=r[n],s=t[i];if(Array.isArray(s)){if(s.indexOf(e)>=0)return!0}else if(s===e)return!0}return!1}function s(e,t){switch(t.type){case"BindExpression":return t.object===e||t.callee===e;case"MemberExpression":case"JSXMemberExpression":return!(t.property!==e||!t.computed)||t.object===e;case"MetaProperty":return!1;case"ObjectProperty":if(t.key===e)return t.computed;case"VariableDeclarator":return t.id!==e;case"ArrowFunctionExpression":case"FunctionDeclaration":case"FunctionExpression":for(var r=t.params,n=Array.isArray(r),i=0,r=n?r:(0,b.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}if(s===e)return!1}return t.id!==e;case"ExportSpecifier":return!t.source&&t.local===e;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"JSXAttribute":return t.name!==e;case"ClassProperty":return t.key===e?t.computed:t.value===e;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ClassDeclaration":case"ClassExpression":return t.id!==e;case"ClassMethod":case"ObjectMethod":return t.key===e&&t.computed;case"LabeledStatement":return!1;case"CatchClause":return t.param!==e;case"RestElement":return!1;case"AssignmentExpression":case"AssignmentPattern":return t.right===e;case"ObjectPattern":case"ArrayPattern":return!1}return!0}function a(e){return"string"==typeof e&&!A.default.keyword.isReservedWordES6(e,!0)&&("await"!==e&&A.default.keyword.isIdentifierNameES6(e))}function o(e){return _.isVariableDeclaration(e)&&("var"!==e.kind||e[D.BLOCK_SCOPED_SYMBOL])}function u(e){return _.isFunctionDeclaration(e)||_.isClassDeclaration(e)||_.isLet(e)}function l(e){return _.isVariableDeclaration(e,{kind:"var"})&&!e[D.BLOCK_SCOPED_SYMBOL]}function c(e){return _.isImportDefaultSpecifier(e)||_.isIdentifier(e.imported||e.exported,{name:"default"})}function f(e,t){return(!_.isBlockStatement(e)||!_.isFunction(t,{body:e}))&&_.isScopable(e)}function p(e){return!!_.isType(e.type,"Immutable")||!!_.isIdentifier(e)&&"undefined"===e.name}function d(e,t){if("object"!==(void 0===e?"undefined":(0,v.default)(e))||"object"!==(void 0===e?"undefined":(0,v.default)(e))||null==e||null==t)return e===t;if(e.type!==t.type)return!1;for(var r=(0,m.default)(_.NODE_FIELDS[e.type]||e.type),n=r,i=Array.isArray(n),s=0,n=i?n:(0,b.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if((0,v.default)(e[o])!==(0,v.default)(t[o]))return!1;if(Array.isArray(e[o])){if(!Array.isArray(t[o]))return!1;if(e[o].length!==t[o].length)return!1;for(var u=0;u<e[o].length;u++)if(!d(e[o][u],t[o][u]))return!1}else if(!d(e[o],t[o]))return!1}return!0}t.__esModule=!0;var h=r(14),m=n(h),y=r(11),v=n(y),g=r(2),b=n(g);t.isBinding=i,t.isReferenced=s,t.isValidIdentifier=a,t.isLet=o,t.isBlockScoped=u,t.isVar=l,t.isSpecifierDefault=c,t.isScope=f,t.isImmutable=p,t.isNodesEquivalent=d;var E=r(226),x=r(97),A=n(x),S=r(1),_=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(S),D=r(135)},function(e,t){"use strict";function r(e,t,r){e instanceof RegExp&&(e=n(e,r)),t instanceof RegExp&&(t=n(t,r));var s=i(e,t,r);return s&&{start:s[0],end:s[1],pre:r.slice(0,s[0]),body:r.slice(s[0]+e.length,s[1]),post:r.slice(s[1]+t.length)}}function n(e,t){var r=t.match(e);return r?r[0]:null}function i(e,t,r){var n,i,s,a,o,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=0&&l>0){for(n=[],s=r.length;c>=0&&!o;)c==u?(n.push(c),u=r.indexOf(e,c+1)):1==n.length?o=[n.pop(),l]:(i=n.pop(),i<s&&(s=i,a=l),l=r.indexOf(t,c+1)),c=u<l&&u>=0?u:l;n.length&&(o=[s,a])}return o}e.exports=r,r.range=i},function(e,t){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function n(e){return 3*e.length/4-r(e)}function i(e){var t,n,i,s,a,o=e.length;s=r(e),a=new c(3*o/4-s),n=s>0?o-4:o;var u=0;for(t=0;t<n;t+=4)i=l[e.charCodeAt(t)]<<18|l[e.charCodeAt(t+1)]<<12|l[e.charCodeAt(t+2)]<<6|l[e.charCodeAt(t+3)],a[u++]=i>>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===s?(i=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===s&&(i=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function s(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function a(e,t,r){for(var n,i=[],a=t;a<r;a+=3)n=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(s(n));return i.join("")}function o(e){for(var t,r=e.length,n=r%3,i="",s=[],o=0,l=r-n;o<l;o+=16383)s.push(a(e,o,o+16383>l?l:o+16383));return 1===n?(t=e[r-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),s.push(i),s.join("")}t.byteLength=n,t.toByteArray=i,t.fromByteArray=o;for(var u=[],l=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,d=f.length;p<d;++p)u[p]=f[p],l[f.charCodeAt(p)]=p;l["-".charCodeAt(0)]=62,l["_".charCodeAt(0)]=63},function(e,t,r){"use strict";function n(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function i(e){return e.split("\\\\").join(m).split("\\{").join(y).split("\\}").join(v).split("\\,").join(g).split("\\.").join(b)}function s(e){return e.split(m).join("\\").split(y).join("{").split(v).join("}").split(g).join(",").split(b).join(".")}function a(e){if(!e)return[""];var t=[],r=h("{","}",e);if(!r)return e.split(",");var n=r.pre,i=r.body,s=r.post,o=n.split(",");o[o.length-1]+="{"+i+"}";var u=a(s);return s.length&&(o[o.length-1]+=u.shift(),o.push.apply(o,u)),t.push.apply(t,o),t}function o(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),p(i(e),!0).map(s)):[]}function u(e){return"{"+e+"}"}function l(e){return/^-?0\d/.test(e)}function c(e,t){return e<=t}function f(e,t){return e>=t}function p(e,t){var r=[],i=h("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),m=s||o,y=i.body.indexOf(",")>=0;if(!m&&!y)return i.post.match(/,.*\}/)?(e=i.pre+"{"+i.body+v+i.post,p(e)):[e];var g;if(m)g=i.body.split(/\.\./);else if(g=a(i.body),1===g.length&&(g=p(g[0],!1).map(u),1===g.length)){var b=i.post.length?p(i.post,!1):[""];return b.map(function(e){return i.pre+g[0]+e})}var E,x=i.pre,b=i.post.length?p(i.post,!1):[""];if(m){var A=n(g[0]),S=n(g[1]),_=Math.max(g[0].length,g[1].length),D=3==g.length?Math.abs(n(g[2])):1,C=c;S<A&&(D*=-1,C=f);var w=g.some(l);E=[];for(var P=A;C(P,S);P+=D){var k;if(o)"\\"===(k=String.fromCharCode(P))&&(k="");else if(k=String(P),w){var F=_-k.length;if(F>0){var T=new Array(F+1).join("0");k=P<0?"-"+T+k.slice(1):T+k}}E.push(k)}}else E=d(g,function(e){return p(e,!1)});for(var O=0;O<E.length;O++)for(var B=0;B<b.length;B++){var R=x+E[O]+b[B];(!t||m||R)&&r.push(R)}return r}var d=r(402),h=r(396);e.exports=o;var m="\0SLASH"+Math.random()+"\0",y="\0OPEN"+Math.random()+"\0",v="\0CLOSE"+Math.random()+"\0",g="\0COMMA"+Math.random()+"\0",b="\0PERIOD"+Math.random()+"\0"},function(e,t,r){(function(e){"use strict";function n(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i(e,t){if(n()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,r){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return a(this,e,t,r)}function a(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number')
;return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?p(e,t,r,n):"string"==typeof t?c(e,t,r):d(e,t)}function o(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function u(e,t,r,n){return o(t),t<=0?i(e,t):void 0!==r?"string"==typeof n?i(e,t).fill(r,n):i(e,t).fill(r):i(e,t)}function l(e,t){if(o(t),e=i(e,t<0?0:0|h(t)),!s.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function c(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!s.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|y(t,r);e=i(e,n);var a=e.write(t,r);return a!==n&&(e=e.slice(0,a)),e}function f(e,t){var r=t.length<0?0:0|h(t.length);e=i(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function p(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n),s.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=s.prototype):e=f(e,t),e}function d(e,t){if(s.isBuffer(t)){var r=0|h(t.length);return e=i(e,r),0===e.length?e:(t.copy(e,0,0,r),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||X(t.length)?i(e,0):f(e,t);if("Buffer"===t.type&&Q(t.data))return f(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function h(e){if(e>=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),s.alloc(+e)}function y(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Y(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(n)return Y(e).length;t=(""+t).toLowerCase(),n=!0}}function v(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,r);case"utf8":case"utf-8":return P(this,t,r);case"ascii":return F(this,t,r);case"latin1":case"binary":return T(this,t,r);case"base64":return w(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:E(e,t,r,n,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):E(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function E(e,t,r,n,i){function s(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,o=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,o/=2,u/=2,r/=2}var l;if(i){var c=-1;for(l=r;l<o;l++)if(s(e,l)===s(t,-1===c?0:l-c)){if(-1===c&&(c=l),l-c+1===u)return c*a}else-1!==c&&(l-=l-c),c=-1}else for(r+u>o&&(r=o-u),l=r;l>=0;l--){for(var f=!0,p=0;p<u;p++)if(s(e,l+p)!==s(t,p)){f=!1;break}if(f)return l}return-1}function x(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o=parseInt(t.substr(2*a,2),16);if(isNaN(o))return a;e[r+a]=o}return a}function A(e,t,r,n){return J(Y(t,e.length-r),e,r,n)}function S(e,t,r,n){return J(q(t),e,r,n)}function _(e,t,r,n){return S(e,t,r,n)}function D(e,t,r,n){return J(H(t),e,r,n)}function C(e,t,r,n){return J(K(t,e.length-r),e,r,n)}function w(e,t,r){return 0===t&&r===e.length?z.fromByteArray(e):z.fromByteArray(e.slice(t,r))}function P(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var s=e[i],a=null,o=s>239?4:s>223?3:s>191?2:1;if(i+o<=r){var u,l,c,f;switch(o){case 1:s<128&&(a=s);break;case 2:u=e[i+1],128==(192&u)&&(f=(31&s)<<6|63&u)>127&&(a=f);break;case 3:u=e[i+1],l=e[i+2],128==(192&u)&&128==(192&l)&&(f=(15&s)<<12|(63&u)<<6|63&l)>2047&&(f<55296||f>57343)&&(a=f);break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128==(192&u)&&128==(192&l)&&128==(192&c)&&(f=(15&s)<<18|(63&u)<<12|(63&l)<<6|63&c)>65535&&f<1114112&&(a=f)}}null===a?(a=65533,o=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=o}return k(n)}function k(e){var t=e.length;if(t<=Z)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=Z));return r}function F(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function T(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function O(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",s=t;s<r;++s)i+=W(e[s]);return i}function B(e,t,r){for(var n=e.slice(t,r),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+256*n[s+1]);return i}function R(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function I(e,t,r,n,i,a){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function M(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-r,2);i<s;++i)e[r+i]=(t&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function N(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-r,4);i<s;++i)e[r+i]=t>>>8*(n?i:3-i)&255}function L(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(e,t,r,n,i){return i||L(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),$.write(e,t,r,n,23,4),r+4}function U(e,t,r,n,i){return i||L(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),$.write(e,t,r,n,52,8),r+8}function V(e){if(e=G(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function G(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function W(e){return e<16?"0"+e.toString(16):e.toString(16)}function Y(e,t){t=t||1/0;for(var r,n=e.length,i=null,s=[],a=0;a<n;++a){if((r=e.charCodeAt(a))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function q(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}function K(e,t){for(var r,n,i,s=[],a=0;a<e.length&&!((t-=2)<0);++a)r=e.charCodeAt(a),n=r>>8,i=r%256,s.push(i),s.push(n);return s}function H(e){return z.toByteArray(V(e))}function J(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function X(e){return e!==e}var z=r(397),$=r(465),Q=r(400);t.Buffer=s,t.SlowBuffer=m,t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=n(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,r){return a(null,e,t,r)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,r){return u(null,e,t,r)},s.allocUnsafe=function(e){return l(null,e)},s.allocUnsafeSlow=function(e){return l(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,a=Math.min(r,n);i<a;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!Q(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=s.allocUnsafe(t),i=0;for(r=0;r<e.length;++r){var a=e[r];if(!s.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i),i+=a.length}return n},s.byteLength=y,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?P(this,0,e):v.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,r,n,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var a=i-n,o=r-t,u=Math.min(a,o),l=this.slice(n,i),c=e.slice(t,r),f=0;f<u;++f)if(l[f]!==c[f]){a=l[f],o=c[f];break}return a<o?-1:o<a?1:0},s.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},s.prototype.indexOf=function(e,t,r){return b(this,e,t,r,!0)},s.prototype.lastIndexOf=function(e,t,r){return b(this,e,t,r,!1)},s.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return x(this,e,t,r);case"utf8":case"utf-8":return A(this,e,t,r);case"ascii":return S(this,e,t,r);case"latin1":case"binary":return _(this,e,t,r);case"base64":return D(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Z=4096;s.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n;if(s.TYPED_ARRAY_SUPPORT)n=this.subarray(e,t),n.__proto__=s.prototype;else{var i=t-e;n=new s(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+e]}return n},s.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n},s.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},s.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=t,i=1,s=this[e+--n];n>0&&(i*=256);)s+=this[e+--n]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},s.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),$.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),$.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),$.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),$.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){I(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,s=0;for(this[t]=255&e;++s<r&&(i*=256);)this[t+s]=e/i&255;return t+r},s.prototype.writeUIntBE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){I(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);I(this,e,t,r,i-1,-i)}var s=0,a=1,o=0;for(this[t]=255&e;++s<r&&(a*=256);)e<0&&0===o&&0!==this[t+s-1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);I(this,e,t,r,i-1,-i)}var s=r-1,a=1,o=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return U(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return U(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i,a=n-r;if(this===e&&r<t&&t<n)for(i=a-1;i>=0;--i)e[i+t]=this[i+r];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+a),t);return a},s.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var o=s.isBuffer(e)?e:Y(new s(e,n).toString()),u=o.length;for(a=0;a<r-t;++a)this[a+t]=o[a%u]}return this};var ee=/[^+\/0-9A-Za-z-_]/g}).call(t,function(){return this}())},function(e,t){"use strict";var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){(function(t){"use strict";function n(e){this.enabled=e&&void 0!==e.enabled?e.enabled:c}function i(e){var t=function e(){return s.apply(e,arguments)};return t._styles=e,t.enabled=this.enabled,t.__proto__=h,t}function s(){var e=arguments,t=e.length,r=0!==t&&String(arguments[0]);if(t>1)for(var n=1;n<t;n++)r+=" "+e[n];if(!this.enabled||!r)return r;var i=this._styles,s=i.length,a=o.dim.open;for(!p||-1===i.indexOf("gray")&&-1===i.indexOf("grey")||(o.dim.open="");s--;){var u=o[i[s]];r=u.open+r.replace(u.closeRe,u.open)+u.close}return o.dim.open=a,r}var a=r(460),o=r(289),u=r(622),l=r(464),c=r(623),f=Object.defineProperties,p="win32"===t.platform&&!/^xterm/i.test(t.env.TERM);p&&(o.blue.open="");var d=function(){var e={};return Object.keys(o).forEach(function(t){o[t].closeRe=new RegExp(a(o[t].close),"g"),e[t]={get:function(){return i.call(this,this._styles.concat(t))}}}),e}(),h=f(function(){},d);f(n.prototype,function(){var e={};return Object.keys(d).forEach(function(t){e[t]={get:function(){return i.call(this,[t])}}}),e}()),e.exports=new n,e.exports.styles=o,e.exports.hasColor=l,e.exports.stripColor=u,e.exports.supportsColor=c}).call(t,r(8))},function(e,t){"use strict";e.exports=function(e,t){for(var n=[],i=0;i<e.length;i++){var s=t(e[i],i);r(s)?n.push.apply(n,s):n.push(s)}return n};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){(function(e){"use strict";function n(t){return new e(t,"base64").toString()}function i(e){return e.split(",").pop()}function s(e,r){var n=t.mapFileCommentRegex.exec(e),i=n[1]||n[2],s=u.resolve(r,i);try{return o.readFileSync(s,"utf8")}catch(e){throw new Error("An error occurred while trying to read the map file at "+s+"\n"+e)}}function a(e,t){t=t||{},t.isFileComment&&(e=s(e,t.commentFileDir)),t.hasComment&&(e=i(e)),t.isEncoded&&(e=n(e)),(t.isJSON||t.isEncoded)&&(e=JSON.parse(e)),this.sourcemap=e}var o=r(115),u=r(19);Object.defineProperty(t,"commentRegex",{get:function(){return/^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/gm}}),Object.defineProperty(t,"mapFileCommentRegex",{get:function(){return/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/gm}}),a.prototype.toJSON=function(e){return JSON.stringify(this.sourcemap,null,e)},a.prototype.toBase64=function(){var t=this.toJSON();return new e(t).toString("base64")},a.prototype.toComment=function(e){var t=this.toBase64(),r="sourceMappingURL=data:application/json;charset=utf-8;base64,"+t;return e&&e.multiline?"/*# "+r+" */":"//# "+r},a.prototype.toObject=function(){return JSON.parse(this.toJSON())},a.prototype.addProperty=function(e,t){if(this.sourcemap.hasOwnProperty(e))throw new Error("property %s already exists on the sourcemap, use set property instead");return this.setProperty(e,t)},a.prototype.setProperty=function(e,t){return this.sourcemap[e]=t,this},a.prototype.getProperty=function(e){return this.sourcemap[e]},t.fromObject=function(e){return new a(e)},t.fromJSON=function(e){return new a(e,{isJSON:!0})},t.fromBase64=function(e){return new a(e,{isEncoded:!0})},t.fromComment=function(e){return e=e.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),new a(e,{isEncoded:!0,hasComment:!0})},t.fromMapFileComment=function(e,t){return new a(e,{commentFileDir:t,isFileComment:!0,isJSON:!0})},t.fromSource=function(e){var r=e.match(t.commentRegex);return r?t.fromComment(r.pop()):null},t.fromMapFileSource=function(e,r){var n=e.match(t.mapFileCommentRegex);return n?t.fromMapFileComment(n.pop(),r):null},t.removeComments=function(e){return e.replace(t.commentRegex,"")},t.removeMapFileComments=function(e){return e.replace(t.mapFileCommentRegex,"")},t.generateMapFileComment=function(e,t){var r="sourceMappingURL="+e;return t&&t.multiline?"/*# "+r+" */":"//# "+r}}).call(t,r(399).Buffer)},function(e,t,r){"use strict";r(59),r(157),e.exports=r(439)},function(e,t,r){"use strict";var n=r(5),i=n.JSON||(n.JSON={stringify:JSON.stringify});e.exports=function(e){return i.stringify.apply(i,arguments)}},function(e,t,r){"use strict";r(96),r(157),r(59),r(441),r(451),r(450),r(449),e.exports=r(5).Map},function(e,t,r){"use strict";r(442),e.exports=9007199254740991},function(e,t,r){"use strict";r(443),e.exports=r(5).Object.assign},function(e,t,r){"use strict";r(444);var n=r(5).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,r){"use strict";r(158),e.exports=r(5).Object.getOwnPropertySymbols},function(e,t,r){"use strict";r(445),e.exports=r(5).Object.keys},function(e,t,r){"use strict";r(446),e.exports=r(5).Object.setPrototypeOf},function(e,t,r){"use strict";r(158),e.exports=r(5).Symbol.for},function(e,t,r){"use strict";r(158),r(96),r(452),r(453),e.exports=r(5).Symbol},function(e,t,r){"use strict";r(157),r(59),e.exports=r(156).f("iterator")},function(e,t,r){"use strict";r(96),r(59),r(447),r(455),r(454),e.exports=r(5).WeakMap},function(e,t,r){"use strict";r(96),r(59),r(448),r(457),r(456),e.exports=r(5).WeakSet},function(e,t){"use strict";e.exports=function(){}},function(e,t,r){"use strict";var n=r(55);e.exports=function(e,t){var r=[];return n(e,!1,r.push,r,t),r}},function(e,t,r){"use strict";var n=r(37),i=r(153),s=r(438);e.exports=function(e){return function(t,r,a){var o,u=n(t),l=i(u.length),c=s(a,l);if(e&&r!=r){for(;l>c;)if((o=u[c++])!=o)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===r)return e||c||0;return!e&&-1}}},function(e,t,r){"use strict";var n=r(16),i=r(232),s=r(13)("species");e.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),n(t)&&null===(t=t[s])&&(t=void 0)),void 0===t?Array:t}},function(e,t,r){"use strict";var n=r(421);e.exports=function(e,t){return new(n(e))(t)}},function(e,t,r){"use strict";var n=r(23).f,i=r(90),s=r(146),a=r(43),o=r(136),u=r(55),l=r(143),c=r(233),f=r(436),p=r(22),d=r(57).fastKey,h=r(58),m=p?"_s":"size",y=function(e,t){var r,n=d(t);if("F"!==n)return e._i[n];for(r=e._f;r;r=r.n)if(r.k==t)return r};e.exports={getConstructor:function(e,t,r,l){var c=e(function(e,n){o(e,c,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=n&&u(n,r,e[l],e)});return s(c.prototype,{clear:function(){for(var e=h(this,t),r=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete r[n.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var r=h(this,t),n=y(r,e);if(n){var i=n.n,s=n.p;delete r._i[n.i],n.r=!0,s&&(s.n=i),i&&(i.p=s),r._f==n&&(r._f=i),r._l==n&&(r._l=s),r[m]--}return!!n},forEach:function(e){h(this,t);for(var r,n=a(e,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(n(r.v,r.k,this);r&&r.r;)r=r.p},has:function(e){return!!y(h(this,t),e)}}),p&&n(c.prototype,"size",{get:function(){return h(this,t)[m]}}),c},def:function(e,t,r){var n,i,s=y(e,t);return s?s.v=r:(e._l=s={i:i=d(t,!0),k:t,v:r,p:n=e._l,n:void 0,r:!1},e._f||(e._f=s),n&&(n.n=s),e[m]++,"F"!==i&&(e._i[i]=s)),e},getEntry:y,setStrong:function(e,t,r){l(e,t,function(e,r){this._t=h(e,t),this._k=r,this._l=void 0},function(){for(var e=this,t=e._k,r=e._l;r&&r.r;)r=r.p;return e._t&&(e._l=r=r?r.n:e._t._f)?"keys"==t?c(0,r.k):"values"==t?c(0,r.v):c(0,[r.k,r.v]):(e._t=void 0,c(1))},r?"entries":"values",!r,!0),f(t)}}},function(e,t,r){"use strict";var n=r(228),i=r(419);e.exports=function(e){return function(){if(n(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},function(e,t,r){"use strict";var n=r(44),i=r(145),s=r(91);e.exports=function(e){var t=n(e),r=i.f;if(r)for(var a,o=r(e),u=s.f,l=0;o.length>l;)u.call(e,a=o[l++])&&t.push(a);return t}},function(e,t,r){"use strict";var n=r(15).document;e.exports=n&&n.documentElement},function(e,t,r){"use strict";var n=r(56),i=r(13)("iterator"),s=Array.prototype;e.exports=function(e){return void 0!==e&&(n.Array===e||s[i]===e)}},function(e,t,r){"use strict";var n=r(21);e.exports=function(e,t,r,i){try{return i?t(n(r)[0],r[1]):t(r)}catch(t){var s=e.return;throw void 0!==s&&n(s.call(e)),t}}},function(e,t,r){"use strict";var n=r(90),i=r(92),s=r(93),a={};r(29)(a,r(13)("iterator"),function(){return this}),e.exports=function(e,t,r){e.prototype=n(a,{next:i(1,r)}),s(e,t+" Iterator")}},function(e,t,r){"use strict";var n=r(44),i=r(37);e.exports=function(e,t){for(var r,s=i(e),a=n(s),o=a.length,u=0;o>u;)if(s[r=a[u++]]===t)return r}},function(e,t,r){"use strict";var n=r(23),i=r(21),s=r(44);e.exports=r(22)?Object.defineProperties:function(e,t){i(e);for(var r,a=s(t),o=a.length,u=0;o>u;)n.f(e,r=a[u++],t[r]);return e}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(37),s=r(236).f,a={}.toString,o="object"==("undefined"==typeof window?"undefined":n(window))&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(e){try{return s(e)}catch(e){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?u(e):s(i(e))}},function(e,t,r){"use strict";var n=r(28),i=r(94),s=r(150)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,r){"use strict";var n=r(12),i=r(5),s=r(27);e.exports=function(e,t){var r=(i.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*s(function(){r(1)}),"Object",a)}},function(e,t,r){"use strict";var n=r(16),i=r(21),s=function(e,t){if(i(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{n=r(43)(Function.call,r(235).f(Object.prototype,"__proto__").set,2),n(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,r){return s(e,r),t?e.__proto__=r:n(e,r),e}}({},!1):void 0),check:s}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(23),a=r(22),o=r(13)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:n[e];a&&t&&!t[o]&&s.f(t,o,{configurable:!0,get:function(){return this}})}},function(e,t,r){"use strict";var n=r(152),i=r(140);e.exports=function(e){return function(t,r){var s,a,o=String(i(t)),u=n(r),l=o.length;return u<0||u>=l?e?"":void 0:(s=o.charCodeAt(u),s<55296||s>56319||u+1===l||(a=o.charCodeAt(u+1))<56320||a>57343?e?o.charAt(u):s:e?o.slice(u,u+2):a-56320+(s-55296<<10)+65536)}}},function(e,t,r){"use strict";var n=r(152),i=Math.max,s=Math.min;e.exports=function(e,t){return e=n(e),e<0?i(e+t,0):s(e,t)}},function(e,t,r){"use strict";var n=r(21),i=r(238);e.exports=r(5).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},function(e,t,r){"use strict";var n=r(418),i=r(233),s=r(56),a=r(37);e.exports=r(143)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,r):"values"==t?i(0,e[r]):i(0,[r,e[r]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},function(e,t,r){"use strict";var n=r(423),i=r(58);e.exports=r(139)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=n.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return n.def(i(this,"Map"),0===e?0:e,t)}},n,!0)},function(e,t,r){"use strict";var n=r(12);n(n.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,r){"use strict";var n=r(12);n(n.S+n.F,"Object",{assign:r(234)})},function(e,t,r){"use strict";var n=r(12);n(n.S,"Object",{create:r(90)})},function(e,t,r){"use strict";var n=r(94),i=r(44);r(434)("keys",function(){return function(e){return i(n(e))}})},function(e,t,r){"use strict";var n=r(12);n(n.S,"Object",{setPrototypeOf:r(435).set})},function(e,t,r){"use strict";var n,i=r(137)(0),s=r(147),a=r(57),o=r(234),u=r(229),l=r(16),c=r(27),f=r(58),p=a.getWeak,d=Object.isExtensible,h=u.ufstore,m={},y=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},v={get:function(e){if(l(e)){var t=p(e);return!0===t?h(f(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(f(this,"WeakMap"),e,t)}},g=e.exports=r(139)("WeakMap",y,v,u,!0,!0);c(function(){return 7!=(new g).set((Object.freeze||Object)(m),7).get(m)})&&(n=u.getConstructor(y,"WeakMap"),o(n.prototype,v),a.NEED=!0,i(["delete","has","get","set"],function(e){var t=g.prototype,r=t[e];s(t,e,function(t,i){if(l(t)&&!d(t)){this._f||(this._f=new n);var s=this._f[e](t,i);return"set"==e?this:s}return r.call(this,t,i)})}))},function(e,t,r){"use strict"
;var n=r(229),i=r(58);r(139)("WeakSet",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return n.def(i(this,"WeakSet"),e,!0)}},n,!1,!0)},function(e,t,r){"use strict";r(148)("Map")},function(e,t,r){"use strict";r(149)("Map")},function(e,t,r){"use strict";var n=r(12);n(n.P+n.R,"Map",{toJSON:r(424)("Map")})},function(e,t,r){"use strict";r(155)("asyncIterator")},function(e,t,r){"use strict";r(155)("observable")},function(e,t,r){"use strict";r(148)("WeakMap")},function(e,t,r){"use strict";r(149)("WeakMap")},function(e,t,r){"use strict";r(148)("WeakSet")},function(e,t,r){"use strict";r(149)("WeakSet")},function(e,t,r){"use strict";function n(e){var r,n=0;for(r in e)n=(n<<5)-n+e.charCodeAt(r),n|=0;return t.colors[Math.abs(n)%t.colors.length]}function i(e){function r(){if(r.enabled){var e=r,n=+new Date,i=n-(l||n);e.diff=i,e.prev=l,e.curr=n,l=n;for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&s.unshift("%O");var o=0;s[0]=s[0].replace(/%([a-zA-Z%])/g,function(r,n){if("%%"===r)return r;o++;var i=t.formatters[n];if("function"==typeof i){var a=s[o];r=i.call(e,a),s.splice(o,1),o--}return r}),t.formatArgs.call(e,s);(r.log||t.log||console.log.bind(console)).apply(e,s)}}return r.namespace=e,r.enabled=t.enabled(e),r.useColors=t.useColors(),r.color=n(e),"function"==typeof t.init&&t.init(r),r}function s(e){t.save(e),t.names=[],t.skips=[];for(var r=("string"==typeof e?e:"").split(/[\s,]+/),n=r.length,i=0;i<n;i++)r[i]&&(e=r[i].replace(/\*/g,".*?"),"-"===e[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))}function a(){t.enable("")}function o(e){var r,n;for(r=0,n=t.skips.length;r<n;r++)if(t.skips[r].test(e))return!1;for(r=0,n=t.names.length;r<n;r++)if(t.names[r].test(e))return!0;return!1}function u(e){return e instanceof Error?e.stack||e.message:e}t=e.exports=i.debug=i.default=i,t.coerce=u,t.disable=a,t.enable=s,t.enabled=o,t.humanize=r(602),t.names=[],t.skips=[],t.formatters={};var l},function(e,t,r){"use strict";function n(e){var t=0,r=0,n=0;for(var i in e){var s=e[i],a=s[0],o=s[1];(a>r||a===r&&o>n)&&(r=a,n=o,t=Number(i))}return t}var i=r(615),s=/^(?:( )+|\t+)/;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");var t,r,a=0,o=0,u=0,l={};e.split(/\n/g).forEach(function(e){if(e){var n,i=e.match(s);i?(n=i[0].length,i[1]?o++:a++):n=0;var c=n-u;u=n,c?(r=c>0,t=l[r?c:-c],t?t[0]++:t=l[c]=[1,0]):t&&(t[1]+=Number(r))}});var c,f,p=n(l);return p?o>=a?(c="space",f=i(" ",p)):(c="tab",f=i("\t",p)):(c=null,f=""),{amount:p,type:c,indent:f}}},function(e,t){"use strict";var r=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(r,"\\$&")}},function(e,t){"use strict";!function(){function t(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function r(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function n(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function i(e){return n(e)||null!=e&&"FunctionDeclaration"===e.type}function s(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}function a(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=s(t)}while(t);return!1}e.exports={isExpression:t,isStatement:n,isIterationStatement:r,isSourceElement:i,isProblematicIfStatement:a,trailingStatement:s}}()},function(e,t,r){"use strict";!function(){function t(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function n(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,r){if(r&&t(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function s(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function o(e){return"eval"===e||"arguments"===e}function u(e){var t,r,n;if(0===e.length)return!1;if(n=e.charCodeAt(0),!d.isIdentifierStartES5(n))return!1;for(t=1,r=e.length;t<r;++t)if(n=e.charCodeAt(t),!d.isIdentifierPartES5(n))return!1;return!0}function l(e,t){return 1024*(e-55296)+(t-56320)+65536}function c(e){var t,r,n,i,s;if(0===e.length)return!1;for(s=d.isIdentifierStartES6,t=0,r=e.length;t<r;++t){if(55296<=(n=e.charCodeAt(t))&&n<=56319){if(++t>=r)return!1;if(!(56320<=(i=e.charCodeAt(t))&&i<=57343))return!1;n=l(n,i)}if(!s(n))return!1;s=d.isIdentifierPartES6}return!0}function f(e,t){return u(e)&&!s(e,t)}function p(e,t){return c(e)&&!a(e,t)}var d=r(240);e.exports={isKeywordES5:n,isKeywordES6:i,isReservedWordES5:s,isReservedWordES6:a,isRestrictedWord:o,isIdentifierNameES5:u,isIdentifierNameES6:c,isIdentifierES5:f,isIdentifierES6:p}}()},function(e,t,r){"use strict";e.exports=r(630)},function(e,t,r){"use strict";var n=r(180),i=new RegExp(n().source);e.exports=i.test.bind(i)},function(e,t){"use strict";t.read=function(e,t,r,n,i){var s,a,o=8*i-n-1,u=(1<<o)-1,l=u>>1,c=-7,f=r?i-1:0,p=r?-1:1,d=e[t+f];for(f+=p,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+e[t+f],f+=p,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=n;c>0;a=256*a+e[t+f],f+=p,c-=8);if(0===s)s=1-l;else{if(s===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),s-=l}return(d?-1:1)*a*Math.pow(2,s-n)},t.write=function(e,t,r,n,i,s){var a,o,u,l=8*s-i-1,c=(1<<l)-1,f=c>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,h=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),t+=a+f>=1?p/u:p*Math.pow(2,1-f),t*u>=2&&(a++,u/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(t*u-1)*Math.pow(2,i),a+=f):(o=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[r+d]=255&o,d+=h,o/=256,i-=8);for(a=a<<i|o,l+=i;l>0;e[r+d]=255&a,d+=h,a/=256,l-=8);e[r+d-h]|=128*m}},function(e,t,r){"use strict";var n=function(e,t,r,n,i,s,a,o){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,n,i,s,a,o],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};e.exports=n},function(e,t,r){"use strict";var n=r(603);e.exports=Number.isFinite||function(e){return!("number"!=typeof e||n(e)||e===1/0||e===-1/0)}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,t.matchToToken=function(e){var t={type:"invalid",value:e[0]};return e[1]?(t.type="string",t.closed=!(!e[3]&&!e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(a){var o="object"==s(t)&&t,u="object"==s(e)&&e&&e.exports==o&&e,l="object"==(void 0===i?"undefined":s(i))&&i;l.global!==l&&l.window!==l||(a=l);var c={},f=c.hasOwnProperty,p=function(e,t){var r;for(r in e)f.call(e,r)&&t(r,e[r])},d=function(e,t){return t?(p(t,function(t,r){e[t]=r}),e):e},h=function(e,t){for(var r=e.length,n=-1;++n<r;)t(e[n])},m=c.toString,y=function(e){return"[object Array]"==m.call(e)},v=function(e){return"[object Object]"==m.call(e)},g=function(e){return"string"==typeof e||"[object String]"==m.call(e)},b=function(e){return"number"==typeof e||"[object Number]"==m.call(e)},E=function(e){return"function"==typeof e||"[object Function]"==m.call(e)},x=function(e){return"[object Map]"==m.call(e)},A=function(e){return"[object Set]"==m.call(e)},S={'"':'\\"',"'":"\\'","\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},_=/["'\\\b\f\n\r\t]/,D=/[0-9]/,C=/[ !#-&\(-\[\]-~]/,w=function e(t,r){var n={escapeEverything:!1,escapeEtago:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:"\t",__indent__:"",__inline1__:!1,__inline2__:!1},i=r&&r.json;i&&(n.quotes="double",n.wrap=!0),r=d(n,r),"single"!=r.quotes&&"double"!=r.quotes&&(r.quotes="single");var s,a="double"==r.quotes?'"':"'",o=r.compact,u=r.indent,l=r.lowercaseHex,c="",f=r.__inline1__,m=r.__inline2__,w=o?"":"\n",P=!0,k="binary"==r.numbers,F="octal"==r.numbers,T="decimal"==r.numbers,O="hexadecimal"==r.numbers;if(i&&t&&E(t.toJSON)&&(t=t.toJSON()),!g(t)){if(x(t))return 0==t.size?"new Map()":(o||(r.__inline1__=!0),"new Map("+e(Array.from(t),r)+")");if(A(t))return 0==t.size?"new Set()":"new Set("+e(Array.from(t),r)+")";if(y(t))return s=[],r.wrap=!0,f?(r.__inline1__=!1,r.__inline2__=!0):(c=r.__indent__,u+=c,r.__indent__=u),h(t,function(t){P=!1,m&&(r.__inline2__=!1),s.push((o||m?"":u)+e(t,r))}),P?"[]":m?"["+s.join(", ")+"]":"["+w+s.join(","+w)+w+(o?"":c)+"]";if(!b(t))return v(t)?(s=[],r.wrap=!0,c=r.__indent__,u+=c,r.__indent__=u,p(t,function(t,n){P=!1,s.push((o?"":u)+e(t,r)+":"+(o?"":" ")+e(n,r))}),P?"{}":"{"+w+s.join(","+w)+w+(o?"":c)+"}"):i?JSON.stringify(t)||"null":String(t);if(i)return JSON.stringify(t);if(T)return String(t);if(O){var B=t.toString(16);return l||(B=B.toUpperCase()),"0x"+B}if(k)return"0b"+t.toString(2);if(F)return"0o"+t.toString(8)}var R,I,M,N=t,L=-1,j=N.length;for(s="";++L<j;){var U=N.charAt(L);if(r.es6&&(R=N.charCodeAt(L))>=55296&&R<=56319&&j>L+1&&(I=N.charCodeAt(L+1))>=56320&&I<=57343){M=1024*(R-55296)+I-56320+65536;var V=M.toString(16);l||(V=V.toUpperCase()),s+="\\u{"+V+"}",L++}else{if(!r.escapeEverything){if(C.test(U)){s+=U;continue}if('"'==U){s+=a==U?'\\"':U;continue}if("'"==U){s+=a==U?"\\'":U;continue}}if("\0"!=U||i||D.test(N.charAt(L+1)))if(_.test(U))s+=S[U];else{var G=U.charCodeAt(0),V=G.toString(16);l||(V=V.toUpperCase());var W=V.length>2||i,Y="\\"+(W?"u":"x")+("0000"+V).slice(W?-4:-2);s+=Y}else s+="\\0"}}return r.wrap&&(s=a+s+a),r.escapeEtago?s.replace(/<\/(script|style)/gi,"<\\/$1"):s};w.version="1.3.0","object"==s(r(49))&&r(49)?void 0!==(n=function(){return w}.call(t,r,t,e))&&(e.exports=n):o&&!o.nodeType?u?u.exports=w:o.jsesc=w:a.jsesc=w}(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i="object"===n(t)?t:{};i.parse=function(){var e,t,r,i,s,a,o={"'":"'",'"':'"',"\\":"\\","/":"/","\n":"",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},u=[" ","\t","\r","\n","\v","\f"," ","\ufeff"],l=function(e){return""===e?"EOF":"'"+e+"'"},c=function(n){var i=new SyntaxError;throw i.message=n+" at line "+t+" column "+r+" of the JSON5 data. Still to read: "+JSON.stringify(s.substring(e-1,e+19)),i.at=e,i.lineNumber=t,i.columnNumber=r,i},f=function(n){return n&&n!==i&&c("Expected "+l(n)+" instead of "+l(i)),i=s.charAt(e),e++,r++,("\n"===i||"\r"===i&&"\n"!==p())&&(t++,r=0),i},p=function(){return s.charAt(e)},d=function(){var e=i;for("_"!==i&&"$"!==i&&(i<"a"||i>"z")&&(i<"A"||i>"Z")&&c("Bad identifier as unquoted key");f()&&("_"===i||"$"===i||i>="a"&&i<="z"||i>="A"&&i<="Z"||i>="0"&&i<="9");)e+=i;return e},h=function(){var e,t="",r="",n=10;if("-"!==i&&"+"!==i||(t=i,f(i)),"I"===i)return e=E(),("number"!=typeof e||isNaN(e))&&c("Unexpected word for number"),"-"===t?-e:e;if("N"===i)return e=E(),isNaN(e)||c("expected word to be NaN"),e;switch("0"===i&&(r+=i,f(),"x"===i||"X"===i?(r+=i,f(),n=16):i>="0"&&i<="9"&&c("Octal literal")),n){case 10:for(;i>="0"&&i<="9";)r+=i,f();if("."===i)for(r+=".";f()&&i>="0"&&i<="9";)r+=i;if("e"===i||"E"===i)for(r+=i,f(),"-"!==i&&"+"!==i||(r+=i,f());i>="0"&&i<="9";)r+=i,f();break;case 16:for(;i>="0"&&i<="9"||i>="A"&&i<="F"||i>="a"&&i<="f";)r+=i,f()}if(e="-"===t?-r:+r,isFinite(e))return e;c("Bad number")},m=function(){var e,t,r,n,s="";if('"'===i||"'"===i)for(r=i;f();){if(i===r)return f(),s;if("\\"===i)if(f(),"u"===i){for(n=0,t=0;t<4&&(e=parseInt(f(),16),isFinite(e));t+=1)n=16*n+e;s+=String.fromCharCode(n)}else if("\r"===i)"\n"===p()&&f();else{if("string"!=typeof o[i])break;s+=o[i]}else{if("\n"===i)break;s+=i}}c("Bad string")},y=function(){"/"!==i&&c("Not an inline comment");do{if(f(),"\n"===i||"\r"===i)return void f()}while(i)},v=function(){"*"!==i&&c("Not a block comment");do{for(f();"*"===i;)if(f("*"),"/"===i)return void f("/")}while(i);c("Unterminated block comment")},g=function(){"/"!==i&&c("Not a comment"),f("/"),"/"===i?y():"*"===i?v():c("Unrecognized comment")},b=function(){for(;i;)if("/"===i)g();else{if(!(u.indexOf(i)>=0))return;f()}},E=function(){switch(i){case"t":return f("t"),f("r"),f("u"),f("e"),!0;case"f":return f("f"),f("a"),f("l"),f("s"),f("e"),!1;case"n":return f("n"),f("u"),f("l"),f("l"),null;case"I":return f("I"),f("n"),f("f"),f("i"),f("n"),f("i"),f("t"),f("y"),1/0;case"N":return f("N"),f("a"),f("N"),NaN}c("Unexpected "+l(i))},x=function(){var e=[];if("["===i)for(f("["),b();i;){if("]"===i)return f("]"),e;if(","===i?c("Missing array element"):e.push(a()),b(),","!==i)return f("]"),e;f(","),b()}c("Bad array")},A=function(){var e,t={};if("{"===i)for(f("{"),b();i;){if("}"===i)return f("}"),t;if(e='"'===i||"'"===i?m():d(),b(),f(":"),t[e]=a(),b(),","!==i)return f("}"),t;f(","),b()}c("Bad object")};return a=function(){switch(b(),i){case"{":return A();case"[":return x();case'"':case"'":return m();case"-":case"+":case".":return h();default:return i>="0"&&i<="9"?h():E()}},function(o,u){var l;return s=String(o),e=0,t=1,r=1,i=" ",l=a(),b(),i&&c("Syntax error"),"function"==typeof u?function e(t,r){var i,s,a=t[r];if(a&&"object"===(void 0===a?"undefined":n(a)))for(i in a)Object.prototype.hasOwnProperty.call(a,i)&&(s=e(a,i),void 0!==s?a[i]=s:delete a[i]);return u.call(t,r,a)}({"":l},""):l}}(),i.stringify=function(e,t,r){function s(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e||"$"===e}function a(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e||"$"===e}function o(e){if("string"!=typeof e)return!1;if(!a(e[0]))return!1;for(var t=1,r=e.length;t<r;){if(!s(e[t]))return!1;t++}return!0}function u(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}function l(e){return"[object Date]"===Object.prototype.toString.call(e)}function c(e){for(var t=0;t<y.length;t++)if(y[t]===e)throw new TypeError("Converting circular structure to JSON")}function f(e,t,r){if(!e)return"";e.length>10&&(e=e.substring(0,10));for(var n=r?"":"\n",i=0;i<t;i++)n+=e;return n}function p(e){return v.lastIndex=0,v.test(e)?'"'+e.replace(v,function(e){var t=g[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function d(e,t,r){var i,s,a=h(e,t,r);switch(a&&!l(a)&&(a=a.valueOf()),void 0===a?"undefined":n(a)){case"boolean":return a.toString();case"number":return isNaN(a)||!isFinite(a)?"null":a.toString();case"string":return p(a.toString());case"object":if(null===a)return"null";if(u(a)){c(a),i="[",y.push(a);for(var v=0;v<a.length;v++)s=d(a,v,!1),i+=f(m,y.length),i+=null===s||void 0===s?"null":s,v<a.length-1?i+=",":m&&(i+="\n");y.pop(),a.length&&(i+=f(m,y.length,!0)),i+="]"}else{c(a),i="{";var g=!1;y.push(a);for(var b in a)if(a.hasOwnProperty(b)){var E=d(a,b,!1);r=!1,void 0!==E&&null!==E&&(i+=f(m,y.length),g=!0,t=o(b)?b:p(b),i+=t+":"+(m?" ":"")+E+",")}y.pop(),i=g?i.substring(0,i.length-1)+f(m,y.length)+"}":"{}"}return i;default:return}}if(t&&"function"!=typeof t&&!u(t))throw new Error("Replacer must be a function or an array");var h=function(e,r,n){var i=e[r];return i&&i.toJSON&&"function"==typeof i.toJSON&&(i=i.toJSON()),"function"==typeof t?t.call(e,r,i):t?n||u(e)||t.indexOf(r)>=0?i:void 0:i};i.isWord=o;var m,y=[];r&&("string"==typeof r?m=r:"number"==typeof r&&r>=0&&(m=f(" ",r,!0)));var v=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,g={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},b={"":e};return void 0===e?h(b,"",!0):d(b,"",!0)}},function(e,t){"use strict";var r=[],n=[];e.exports=function(e,t){if(e===t)return 0;var i=e.length,s=t.length;if(0===i)return s;if(0===s)return i;for(var a,o,u,l,c=0,f=0;c<i;)n[c]=e.charCodeAt(c),r[c]=++c;for(;f<s;)for(a=t.charCodeAt(f),u=f++,o=f,c=0;c<i;c++)l=a===n[c]?u:u+1,u=r[c],o=r[c]=u>o?l>o?o+1:l:l>u?u+1:l;return o}},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"DataView");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(536),s=r(537),a=r(538),o=r(539),u=r(540);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Promise");e.exports=s},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"WeakMap");e.exports=s},function(e,t){"use strict";function r(e,t){return e.set(t[0],t[1]),e}e.exports=r},function(e,t){"use strict";function r(e,t){return e.add(t),e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length,i=0,s=[];++r<n;){var a=e[r];t(a,r,e)&&(s[i++]=a)}return s}e.exports=r},function(e,t,r){"use strict";function n(e,t){return!!(null==e?0:e.length)&&i(e,t,0)>-1}var i=r(166);e.exports=n},function(e,t){"use strict";function r(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}e.exports=r},function(e,t,r){"use strict";function n(e,t){return e&&i(t,s(t),e)}var i=r(31),s=r(32);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&i(t,s(t),e)}var i=r(31),s=r(47);e.exports=n},function(e,t){"use strict";function r(e,t,r){return e===e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}e.exports=r},function(e,t,r){"use strict";var n=r(18),i=Object.create,s=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();e.exports=s},function(e,t,r){"use strict";var n=r(489),i=r(526),s=i(n);e.exports=s},function(e,t,r){"use strict";function n(e,t,r,a,o){var u=-1,l=e.length;for(r||(r=s),o||(o=[]);++u<l;){var c=e[u];t>0&&r(c)?t>1?n(c,t-1,r,a,o):i(o,c):a||(o[o.length]=c)}return o}var i=r(161),s=r(543);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&i(e,t,s)}var i=r(248),s=r(32);e.exports=n},function(e,t){"use strict";function r(e,t){return null!=e&&i.call(e,t)}var n=Object.prototype,i=n.hasOwnProperty;e.exports=r},function(e,t){"use strict";function r(e,t){return null!=e&&t in Object(e)}e.exports=r},function(e,t){"use strict";function r(e,t,r,n){for(var i=r-1,s=e.length;++i<s;)if(n(e[i],t))return i;return-1}e.exports=r},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)==a}var i=r(30),s=r(25),a="[object Arguments]";e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,y,g){var b=l(e),E=l(t),x=b?h:u(e),A=E?h:u(t);x=x==d?m:x,A=A==d?m:A;var S=x==m,_=A==m,D=x==A;if(D&&c(e)){if(!c(t))return!1;b=!0,S=!1}if(D&&!S)return g||(g=new i),b||f(e)?s(e,t,r,n,y,g):a(e,t,x,r,n,y,g);if(!(r&p)){var C=S&&v.call(e,"__wrapped__"),w=_&&v.call(t,"__wrapped__");if(C||w){var P=C?e.value():e,k=w?t.value():t;return g||(g=new i),y(P,k,r,n,g)}}return!!D&&(g||(g=new i),o(e,t,r,n,y,g))}var i=r(99),s=r(260),a=r(530),o=r(531),u=r(264),l=r(6),c=r(113),f=r(177),p=1,d="[object Arguments]",h="[object Array]",m="[object Object]",y=Object.prototype,v=y.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var u=r.length,l=u,c=!n;if(null==e)return!l;for(e=Object(e);u--;){var f=r[u];if(c&&f[2]?f[1]!==e[f[0]]:!(f[0]in e))return!1}for(;++u<l;){f=r[u];var p=f[0],d=e[p],h=f[1];if(c&&f[2]){if(void 0===d&&!(p in e))return!1}else{var m=new i;if(n)var y=n(d,h,p,e,t,m);if(!(void 0===y?s(h,d,a|o,n,m):y))return!1}}return!0}var i=r(99),s=r(251),a=1,o=2;e.exports=n},function(e,t){"use strict";function r(e){return e!==e}e.exports=r},function(e,t,r){"use strict";function n(e){return!(!a(e)||s(e))&&(i(e)?h:l).test(o(e))}var i=r(175),s=r(545),a=r(18),o=r(272),u=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,c=Function.prototype,f=Object.prototype,p=c.toString,d=f.hasOwnProperty,h=RegExp("^"+p.call(d).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=n},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)==a}var i=r(30),s=r(25),a="[object RegExp]";e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)&&s(e.length)&&!!o[i(e)]}var i=r(30),s=r(176),a=r(25),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,e.exports=n},function(e,t,r){"use strict";function n(e){if(!i(e))return s(e);var t=[];for(var r in Object(e))o.call(e,r)&&"constructor"!=r&&t.push(r);return t}var i=r(105),s=r(557),a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){if(!i(e))return a(e);var t=s(e),r=[];for(var n in e)("constructor"!=n||!t&&u.call(e,n))&&r.push(n);return r}var i=r(18),s=r(105),a=r(558),o=Object.prototype,u=o.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){var t=s(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(r){return r===e||i(r,e,t)}}var i=r(495),s=r(533),a=r(269);e.exports=n},function(e,t,r){"use strict";function n(e,t){return o(e)&&u(t)?l(c(e),t):function(r){var n=s(r,e);return void 0===n&&n===t?a(r,e):i(t,n,f|p)}}var i=r(251),s=r(583),a=r(584),o=r(173),u=r(267),l=r(269),c=r(108),f=1,p=2;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,c,f){e!==t&&a(t,function(a,l){if(u(a))f||(f=new i),o(e,t,l,r,n,c,f);else{var p=c?c(e[l],a,l+"",e,t,f):void 0;void 0===p&&(p=a),s(e,l,p)}},l)}var i=r(99),s=r(247),a=r(248),o=r(505),u=r(18),l=r(47);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,g,b,E){var x=e[r],A=t[r],S=E.get(A);if(S)return void i(e,r,S);var _=b?b(x,A,r+"",e,t,E):void 0,D=void 0===_;if(D){var C=c(A),w=!C&&p(A),P=!C&&!w&&y(A);_=A,C||w||P?c(x)?_=x:f(x)?_=o(x):w?(D=!1,_=s(A,!0)):P?(D=!1,_=a(A,!0)):_=[]:m(A)||l(A)?(_=x,l(x)?_=v(x):(!h(x)||n&&d(x))&&(_=u(A))):D=!1}D&&(E.set(A,_),g(_,A,n,b,E),E.delete(A)),i(e,r,_)}var i=r(247),s=r(256),a=r(257),o=r(168),u=r(266),l=r(112),c=r(6),f=r(585),p=r(113),d=r(175),h=r(18),m=r(275),y=r(177),v=r(599);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=-1;t=i(t.length?t:[c],u(s));var f=a(e,function(e,r,s){return{criteria:i(t,function(t){return t(e)}),index:++n,value:e}});return o(f,function(e,t){return l(e,t,r)})}var i=r(60),s=r(61),a=r(252),o=r(512),u=r(102),l=r(522),c=r(110);e.exports=n},function(e,t){"use strict";function r(e){return function(t){return null==t?void 0:t[e]}}e.exports=r},function(e,t,r){"use strict";function n(e){return function(t){return i(t,e)}}var i=r(249);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var l=n?a:s,f=-1,p=t.length,d=e;for(e===t&&(t=u(t)),r&&(d=i(e,o(r)));++f<p;)for(var h=0,m=t[f],y=r?r(m):m;(h=l(d,y,h,n))>-1;)d!==e&&c.call(d,h,1),c.call(e,h,1);return e}var i=r(60),s=r(166),a=r(492),o=r(102),u=r(168),l=Array.prototype,c=l.splice;e.exports=n},function(e,t){"use strict";function r(e,t){var r="";if(!e||t<1||t>n)return r;do{t%2&&(r+=e),(t=i(t/2))&&(e+=e)}while(t);return r}var n=9007199254740991,i=Math.floor;e.exports=r},function(e,t,r){"use strict";var n=r(576),i=r(259),s=r(110),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:s;e.exports=a},function(e,t){"use strict";function r(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=-1,f=s,p=e.length,d=!0,h=[],m=h;if(r)d=!1,f=a;else if(p>=c){var y=t?null:u(e);if(y)return l(y);d=!1,f=o,m=new i}else m=t?[]:h;e:for(;++n<p;){var v=e[n],g=t?t(v):v;if(v=r||0!==v?v:0,d&&g===g){for(var b=m.length;b--;)if(m[b]===g)continue e;t&&m.push(g),h.push(v)}else f(m,g,r)||(m!==h&&m.push(g),h.push(v))}return h}var i=r(242),s=r(480),a=r(481),o=r(254),u=r(528),l=r(107),c=200;e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(t,function(t){return e[t]})}var i=r(60);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var i=r(167);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=t?r(a(e),o):a(e);return s(n,i,new e.constructor)}var i=r(476),s=r(246),a=r(268),o=1;e.exports=n},function(e,t){"use strict";function r(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}var n=/\w*$/;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=t?r(a(e),o):a(e);return s(n,i,new e.constructor)}var i=r(477),s=r(246),a=r(107),o=1;e.exports=n},function(e,t,r){"use strict";function n(e){return a?Object(a.call(e)):{}}var i=r(45),s=i?i.prototype:void 0,a=s?s.valueOf:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t){if(e!==t){var r=void 0!==e,n=null===e,s=e===e,a=i(e),o=void 0!==t,u=null===t,l=t===t,c=i(t);if(!u&&!c&&!a&&e>t||a&&o&&l&&!u&&!c||n&&o&&l||!r&&l||!s)return 1;if(!n&&!a&&!c&&e<t||c&&r&&s&&!n&&!a||u&&r&&s||!o&&s||!l)return-1}return 0}var i=r(62);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){for(var n=-1,s=e.criteria,a=t.criteria,o=s.length,u=r.length;++n<o;){var l=i(s[n],a[n]);if(l){if(n>=u)return l;return l*("desc"==r[n]?-1:1)}}return e.index-t.index}var i=r(521);e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(e,s(e),t)}var i=r(31),s=r(170);e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(e,s(e),t)}var i=r(31),s=r(263);e.exports=n},function(e,t,r){"use strict";var n=r(17),i=n["__core-js_shared__"];e.exports=i},function(e,t,r){"use strict";function n(e,t){return function(r,n){if(null==r)return r;if(!i(r))return e(r,n);for(var s=r.length,a=t?s:-1,o=Object(r);(t?a--:++a<s)&&!1!==n(o[a],a,o););return r}}var i=r(24);e.exports=n},function(e,t){"use strict";function r(e){return function(t,r,n){for(var i=-1,s=Object(t),a=n(t),o=a.length;o--;){var u=a[e?o:++i];if(!1===r(s[u],u,s))break}return t}}e.exports=r},function(e,t,r){"use strict";var n=r(241),i=r(591),s=r(107),a=n&&1/s(new n([,-0]))[1]==1/0?function(e){return new n(e)}:i;e.exports=a},function(e,t,r){"use strict";function n(e,t,r,n){return void 0===e||i(e,s[r])&&!a.call(n,r)?t:e}var i=r(46),s=Object.prototype,a=s.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,i,S,D){switch(r){case A:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case x:return!(e.byteLength!=t.byteLength||!S(new s(e),new s(t)));case p:case d:case y:return a(+e,+t);case h:return e.name==t.name&&e.message==t.message;case v:case b:return e==t+"";case m:var C=u;case g:var w=n&c;if(C||(C=l),e.size!=t.size&&!w)return!1;var P=D.get(e);if(P)return P==t;n|=f,D.set(e,t);var k=o(C(e),C(t),n,i,S,D);return D.delete(e),k;case E:if(_)return _.call(e)==_.call(t)}return!1}var i=r(45),s=r(243),a=r(46),o=r(260),u=r(268),l=r(107),c=1,f=2,p="[object Boolean]",d="[object Date]",h="[object Error]",m="[object Map]",y="[object Number]",v="[object RegExp]",g="[object Set]",b="[object String]",E="[object Symbol]",x="[object ArrayBuffer]",A="[object DataView]",S=i?i.prototype:void 0,_=S?S.valueOf:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,a,u){var l=r&s,c=i(e),f=c.length;if(f!=i(t).length&&!l)return!1;for(var p=f;p--;){var d=c[p];if(!(l?d in t:o.call(t,d)))return!1}var h=u.get(e);if(h&&u.get(t))return h==t;var m=!0;u.set(e,t),u.set(t,e);for(var y=l;++p<f;){d=c[p];var v=e[d],g=t[d];if(n)var b=l?n(g,v,d,t,e,u):n(v,g,d,e,t,u);if(!(void 0===b?v===g||a(v,g,r,n,u):b)){m=!1;break}y||(y="constructor"==d)}if(m&&!y){var E=e.constructor,x=t.constructor;E!=x&&"constructor"in e&&"constructor"in t&&!("function"==typeof E&&E instanceof E&&"function"==typeof x&&x instanceof x)&&(m=!1)}return u.delete(e),u.delete(t),m}var i=r(262),s=1,a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,a,s)}var i=r(250),s=r(263),a=r(47);e.exports=n},function(e,t,r){"use strict";function n(e){for(var t=s(e),r=t.length;r--;){var n=t[r],a=e[n];t[r]=[n,a,i(a)]}return t}var i=r(267),s=r(32);e.exports=n},function(e,t,r){"use strict";function n(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var i=o.call(e);return n&&(t?e[u]=r:delete e[u]),i}var i=r(45),s=Object.prototype,a=s.hasOwnProperty,o=s.toString,u=i?i.toStringTag:void 0;e.exports=n},function(e,t){"use strict";function r(e,t){return null==e?void 0:e[t]}e.exports=r},function(e,t,r){"use strict";function n(){this.__data__=i?i(null):{},this.size=0}var i=r(106);e.exports=n},function(e,t){"use strict";function r(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=r},function(e,t,r){"use strict";function n(e){var t=this.__data__;if(i){var r=t[e];return r===s?void 0:r}return o.call(t,e)?t[e]:void 0}var i=r(106),s="__lodash_hash_undefined__",a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict"
;function n(e){var t=this.__data__;return i?void 0!==t[e]:a.call(t,e)}var i=r(106),s=Object.prototype,a=s.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=i&&void 0===t?s:t,this}var i=r(106),s="__lodash_hash_undefined__";e.exports=n},function(e,t){"use strict";function r(e){var t=e.length,r=e.constructor(t);return t&&"string"==typeof e[0]&&i.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var n=Object.prototype,i=n.hasOwnProperty;e.exports=r},function(e,t,r){"use strict";function n(e,t,r,n){var F=e.constructor;switch(t){case b:return i(e);case f:case p:return new F(+e);case E:return s(e,n);case x:case A:case S:case _:case D:case C:case w:case P:case k:return c(e,n);case d:return a(e,n,r);case h:case v:return new F(e);case m:return o(e);case y:return u(e,n,r);case g:return l(e)}}var i=r(167),s=r(516),a=r(517),o=r(518),u=r(519),l=r(520),c=r(257),f="[object Boolean]",p="[object Date]",d="[object Map]",h="[object Number]",m="[object RegExp]",y="[object Set]",v="[object String]",g="[object Symbol]",b="[object ArrayBuffer]",E="[object DataView]",x="[object Float32Array]",A="[object Float64Array]",S="[object Int8Array]",_="[object Int16Array]",D="[object Int32Array]",C="[object Uint8Array]",w="[object Uint8ClampedArray]",P="[object Uint16Array]",k="[object Uint32Array]";e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)||s(e)||!!(o&&e&&e[o])}var i=r(45),s=r(112),a=r(6),o=i?i.isConcatSpreadable:void 0;e.exports=n},function(e,t){"use strict";function r(e){var t=void 0===e?"undefined":n(e);return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){"use strict";function n(e){return!!s&&s in e}var i=r(525),s=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=n},function(e,t){"use strict";function r(){this.__data__=[],this.size=0}e.exports=r},function(e,t,r){"use strict";function n(e){var t=this.__data__,r=i(t,e);return!(r<0)&&(r==t.length-1?t.pop():a.call(t,r,1),--this.size,!0)}var i=r(100),s=Array.prototype,a=s.splice;e.exports=n},function(e,t,r){"use strict";function n(e){var t=this.__data__,r=i(t,e);return r<0?void 0:t[r][1]}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this.__data__,e)>-1}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=this.__data__,n=i(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(){this.size=0,this.__data__={hash:new i,map:new(a||s),string:new i}}var i=r(473),s=r(98),a=r(159);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this,e).get(e)}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this,e).has(e)}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=i(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(e,function(e){return r.size===s&&r.clear(),e}),r=t.cache;return t}var i=r(589),s=500;e.exports=n},function(e,t,r){"use strict";var n=r(271),i=n(Object.keys,Object);e.exports=i},function(e,t){"use strict";function r(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}e.exports=r},function(e,t){"use strict";function r(e){return i.call(e)}var n=Object.prototype,i=n.toString;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){return t=s(void 0===t?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=s(n.length-t,0),u=Array(o);++a<o;)u[a]=n[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=n[a];return l[t]=r(u),i(e,this,l)}}var i=r(244),s=Math.max;e.exports=n},function(e,t){"use strict";function r(e){return this.__data__.set(e,n),this}var n="__lodash_hash_undefined__";e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.has(e)}e.exports=r},function(e,t,r){"use strict";var n=r(511),i=r(564),s=i(n);e.exports=s},function(e,t){"use strict";function r(e){var t=0,r=0;return function(){var a=s(),o=i-(a-r);if(r=a,o>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var n=800,i=16,s=Date.now;e.exports=r},function(e,t,r){"use strict";function n(){this.__data__=new i,this.size=0}var i=r(98);e.exports=n},function(e,t){"use strict";function r(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.get(e)}e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.has(e)}e.exports=r},function(e,t,r){"use strict";function n(e,t){var r=this.__data__;if(r instanceof i){var n=r.__data__;if(!s||n.length<o-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(n)}return r.set(e,t),this.size=r.size,this}var i=r(98),s=r(159),a=r(160),o=200;e.exports=n},function(e,t){"use strict";function r(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}e.exports=r},function(e,t,r){"use strict";var n=r(556),i=/^\./,s=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=n(function(e){var t=[];return i.test(e)&&t.push(""),e.replace(s,function(e,r,n,i){t.push(n?i.replace(a,"$1"):r||e)}),t});e.exports=o},function(e,t,r){"use strict";var n=r(31),i=r(103),s=r(47),a=i(function(e,t){n(t,s(t),e)});e.exports=a},function(e,t,r){"use strict";var n=r(31),i=r(103),s=r(47),a=i(function(e,t,r,i){n(t,s(t),e,i)});e.exports=a},function(e,t,r){"use strict";function n(e){return i(e,s|a)}var i=r(164),s=1,a=4;e.exports=n},function(e,t,r){"use strict";function n(e,t){return t="function"==typeof t?t:void 0,i(e,s|a,t)}var i=r(164),s=1,a=4;e.exports=n},function(e,t){"use strict";function r(e){return function(){return e}}e.exports=r},function(e,t,r){"use strict";function n(e){return e=i(e),e&&a.test(e)?e.replace(s,"\\$&"):e}var i=r(114),s=/[\\^$.*+?()[\]{}|]/g,a=RegExp(s.source);e.exports=n},function(e,t,r){"use strict";e.exports=r(572)},function(e,t,r){"use strict";var n=r(258),i=r(580),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var u=null==r?0:a(r);return u<0&&(u=o(n+u,0)),i(e,s(t,3),u)}var i=r(165),s=r(61),a=r(48),o=Math.max;e.exports=n},function(e,t,r){"use strict";var n=r(258),i=r(582),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var l=n-1;return void 0!==r&&(l=a(r),l=r<0?o(n+l,0):u(l,n-1)),i(e,s(t,3),l,!0)}var i=r(165),s=r(61),a=r(48),o=Math.max,u=Math.min;e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?void 0:i(e,t);return void 0===n?r:n}var i=r(249);e.exports=n},function(e,t,r){"use strict";function n(e,t){return null!=e&&s(e,t,i)}var i=r(491),s=r(265);e.exports=n},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)}var i=r(24),s=r(25);e.exports=n},function(e,t,r){"use strict";function n(e){return"number"==typeof e&&e==i(e)}var i=r(48);e.exports=n},function(e,t,r){"use strict";function n(e){return"string"==typeof e||!s(e)&&a(e)&&i(e)==o}var i=r(30),s=r(6),a=r(25),o="[object String]";e.exports=n},function(e,t,r){"use strict";function n(e,t){return(o(e)?i:a)(e,s(t,3))}var i=r(60),s=r(61),a=r(252),o=r(6);e.exports=n},function(e,t,r){"use strict";function n(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(s);var r=function r(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var a=e.apply(this,n);return r.cache=s.set(i,a)||s,a};return r.cache=new(n.Cache||i),r}var i=r(160),s="Expected a function";n.Cache=i,e.exports=n},function(e,t,r){"use strict";var n=r(504),i=r(103),s=i(function(e,t,r,i){n(e,t,r,i)});e.exports=s},function(e,t){"use strict";function r(){}e.exports=r},function(e,t,r){"use strict";function n(e){return a(e)?i(o(e)):s(e)}var i=r(507),s=r(508),a=r(173),o=r(108);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&e.length&&t&&t.length?i(e,t):e}var i=r(509);e.exports=n},function(e,t,r){"use strict";var n=r(488),i=r(506),s=r(101),a=r(172),o=s(function(e,t){if(null==e)return[];var r=t.length;return r>1&&a(e,t[0],t[1])?t=[]:r>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),i(e,n(t,1),[])});e.exports=o},function(e,t,r){"use strict";function n(e,t,r){return e=o(e),r=null==r?0:i(a(r),0,e.length),t=s(t),e.slice(r,r+t.length)==t}var i=r(485),s=r(253),a=r(48),o=r(114);e.exports=n},function(e,t){"use strict";function r(){return!1}e.exports=r},function(e,t,r){"use strict";function n(e){if(!e)return 0===e?e:0;if((e=i(e))===s||e===-s){return(e<0?-1:1)*a}return e===e?e:0}var i=r(598),s=1/0,a=1.7976931348623157e308;e.exports=n},function(e,t,r){"use strict";function n(e){if("number"==typeof e)return e;if(s(e))return a;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var r=l.test(e);return r||c.test(e)?f(e.slice(2),r?2:8):u.test(e)?a:+e}var i=r(18),s=r(62),a=NaN,o=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,f=parseInt;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,s(e))}var i=r(31),s=r(47);e.exports=n},function(e,t,r){"use strict";function n(e){return e&&e.length?i(e):[]}var i=r(514);e.exports=n},function(e,t,r){"use strict";function n(e,t){return t=t||{},function(r,n,i){return s(r,e,t)}}function i(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach(function(e){r[e]=t[e]}),Object.keys(e).forEach(function(t){r[t]=e[t]}),r}function s(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new a(t,r).match(e))}function a(e,t){if(!(this instanceof a))return new a(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==m.sep&&(e=e.split(m.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function o(){if(!this._made){var e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error),this.debug(this.pattern,r),r=this.globParts=r.map(function(e){return e.split(_)}),this.debug(this.pattern,r),r=r.map(function(e,t,r){return e.map(this.parse,this)},this),this.debug(this.pattern,r),r=r.filter(function(e){return-1===e.indexOf(!1)}),this.debug(this.pattern,r),this.set=r}}function u(){var e=this.pattern,t=!1,r=this.options,n=0;if(!r.nonegate){for(var i=0,s=e.length;i<s&&"!"===e.charAt(i);i++)t=!t,n++;n&&(this.pattern=e.substr(n)),this.negate=t}}function l(e,t){if(t||(t=this instanceof a?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:v(e)}function c(e,t){function r(){if(i){switch(i){case"*":a+=E,o=!0;break;case"?":a+=b,o=!0;break;default:a+="\\"+i}v.debug("clearStateChar %j %j",i,a),i=!1}}if(e.length>65536)throw new TypeError("pattern is too long");var n=this.options;if(!n.noglobstar&&"**"===e)return y;if(""===e)return"";for(var i,s,a="",o=!!n.nocase,u=!1,l=[],c=[],f=!1,p=-1,h=-1,m="."===e.charAt(0)?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",v=this,x=0,A=e.length;x<A&&(s=e.charAt(x));x++)if(this.debug("%s\t%s %s %j",e,x,a,s),u&&S[s])a+="\\"+s,u=!1;else switch(s){case"/":return!1;case"\\":r(),u=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s\t%s %s %j <-- stateChar",e,x,a,s),f){this.debug("  in class"),"!"===s&&x===h+1&&(s="^"),a+=s;continue}v.debug("call clearStateChar %j",i),r(),i=s,n.noext&&r();continue;case"(":if(f){a+="(";continue}if(!i){a+="\\(";continue}l.push({type:i,start:x-1,reStart:a.length,open:g[i].open,close:g[i].close}),a+="!"===i?"(?:(?!(?:":"(?:",this.debug("plType %j %j",i,a),i=!1;continue;case")":if(f||!l.length){a+="\\)";continue}r(),o=!0;var _=l.pop();a+=_.close,"!"===_.type&&c.push(_),_.reEnd=a.length;continue;case"|":if(f||!l.length||u){a+="\\|",u=!1;continue}r(),a+="|";continue;case"[":if(r(),f){a+="\\"+s;continue}f=!0,h=x,p=a.length,a+=s;continue;case"]":if(x===h+1||!f){a+="\\"+s,u=!1;continue}if(f){var C=e.substring(h+1,x);try{RegExp("["+C+"]")}catch(e){var w=this.parse(C,D);a=a.substr(0,p)+"\\["+w[0]+"\\]",o=o||w[1],f=!1;continue}}o=!0,f=!1,a+=s;continue;default:r(),u?u=!1:!S[s]||"^"===s&&f||(a+="\\"),a+=s}for(f&&(C=e.substr(h+1),w=this.parse(C,D),a=a.substr(0,p)+"\\["+w[0],o=o||w[1]),_=l.pop();_;_=l.pop()){var P=a.slice(_.reStart+_.open.length);this.debug("setting tail",a,_),P=P.replace(/((?:\\{2}){0,64})(\\?)\|/g,function(e,t,r){return r||(r="\\"),t+t+r+"|"}),this.debug("tail=%j\n   %s",P,P,_,a);var k="*"===_.type?E:"?"===_.type?b:"\\"+_.type;o=!0,a=a.slice(0,_.reStart)+k+"\\("+P}r(),u&&(a+="\\\\");var F=!1;switch(a.charAt(0)){case".":case"[":case"(":F=!0}for(var T=c.length-1;T>-1;T--){var O=c[T],B=a.slice(0,O.reStart),R=a.slice(O.reStart,O.reEnd-8),I=a.slice(O.reEnd-8,O.reEnd),M=a.slice(O.reEnd);I+=M;var N=B.split("(").length-1,L=M;for(x=0;x<N;x++)L=L.replace(/\)[+*?]?/,"");M=L;var j="";""===M&&t!==D&&(j="$");a=B+R+M+j+I}if(""!==a&&o&&(a="(?=.)"+a),F&&(a=m+a),t===D)return[a,o];if(!o)return d(e);var U=n.nocase?"i":"";try{var V=new RegExp("^"+a+"$",U)}catch(e){return new RegExp("$.")}return V._glob=e,V._src=a,V}function f(){if(this.regexp||!1===this.regexp)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,r=t.noglobstar?E:t.dot?x:A,n=t.nocase?"i":"",i=e.map(function(e){return e.map(function(e){return e===y?r:"string"==typeof e?h(e):e._src}).join("\\/")}).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,n)}catch(e){this.regexp=!1}return this.regexp}function p(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==m.sep&&(e=e.split(m.sep).join("/")),e=e.split(_),this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var i,s;for(s=e.length-1;s>=0&&!(i=e[s]);s--);for(s=0;s<n.length;s++){var a=n[s],o=e;r.matchBase&&1===a.length&&(o=[i]);if(this.matchOne(o,a,t))return!!r.flipNegate||!this.negate}return!r.flipNegate&&this.negate}function d(e){return e.replace(/\\(.)/g,"$1")}function h(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}e.exports=s,s.Minimatch=a;var m={sep:"/"};try{m=r(19)}catch(e){}var y=s.GLOBSTAR=a.GLOBSTAR={},v=r(398),g={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},b="[^/]",E=b+"*?",x="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",A="(?:(?!(?:\\/|^)\\.).)*?",S=function(e){return e.split("").reduce(function(e,t){return e[t]=!0,e},{})}("().*{}+?[]^$\\!"),_=/\/+/;s.filter=n,s.defaults=function(e){if(!e||!Object.keys(e).length)return s;var t=s,r=function(r,n,s){return t.minimatch(r,n,i(e,s))};return r.Minimatch=function(r,n){return new t.Minimatch(r,i(e,n))},r},a.defaults=function(e){return e&&Object.keys(e).length?s.defaults(e).Minimatch:a},a.prototype.debug=function(){},a.prototype.make=o,a.prototype.parseNegate=u,s.braceExpand=function(e,t){return l(e,t)},a.prototype.braceExpand=l,a.prototype.parse=c;var D={};s.makeRe=function(e,t){return new a(e,t||{}).makeRe()},a.prototype.makeRe=f,s.match=function(e,t,r){r=r||{};var n=new a(t,r);return e=e.filter(function(e){return n.match(e)}),n.options.nonull&&!e.length&&e.push(t),e},a.prototype.match=p,a.prototype.matchOne=function(e,t,r){var n=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var i=0,s=0,a=e.length,o=t.length;i<a&&s<o;i++,s++){this.debug("matchOne loop");var u=t[s],l=e[i];if(this.debug(t,u,l),!1===u)return!1;if(u===y){this.debug("GLOBSTAR",[t,u,l]);var c=i,f=s+1;if(f===o){for(this.debug("** at the end");i<a;i++)if("."===e[i]||".."===e[i]||!n.dot&&"."===e[i].charAt(0))return!1;return!0}for(;c<a;){var p=e[c];if(this.debug("\nglobstar while",e,c,t,f,p),this.matchOne(e.slice(c),t.slice(f),r))return this.debug("globstar found match!",c,a,p),!0;if("."===p||".."===p||!n.dot&&"."===p.charAt(0)){this.debug("dot detected!",e,c,t,f);break}this.debug("globstar swallow a segment, and continue"),c++}return!(!r||(this.debug("\n>>> no match, partial?",e,c,t,f),c!==a))}var d;if("string"==typeof u?(d=n.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,d)):(d=l.match(u),this.debug("pattern match",u,l,d)),!d)return!1}if(i===a&&s===o)return!0;if(i===a)return r;if(s===o){return i===a-1&&""===e[i]}throw new Error("wtf?")}},function(e,t){"use strict";function r(e){if(e=String(e),!(e.length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*f;case"days":case"day":case"d":return r*c;case"hours":case"hour":case"hrs":case"hr":case"h":return r*l;case"minutes":case"minute":case"mins":case"min":case"m":return r*u;case"seconds":case"second":case"secs":case"sec":case"s":return r*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function n(e){return e>=c?Math.round(e/c)+"d":e>=l?Math.round(e/l)+"h":e>=u?Math.round(e/u)+"m":e>=o?Math.round(e/o)+"s":e+"ms"}function i(e){return s(e,c,"day")||s(e,l,"hour")||s(e,u,"minute")||s(e,o,"second")||e+" ms"}function s(e,t,r){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+r:Math.ceil(e/t)+" "+r+"s"}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=1e3,u=60*o,l=60*u,c=24*l,f=365.25*c;e.exports=function(e,t){t=t||{};var s=void 0===e?"undefined":a(e);if("string"===s&&e.length>0)return r(e);if("number"===s&&!1===isNaN(e))return t.long?i(e):n(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t){"use strict";e.exports=Number.isNaN||function(e){return e!==e}},function(e,t,r){(function(t){"use strict";function r(e){return"/"===e.charAt(0)}function n(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,r=t.exec(e),n=r[1]||"",i=Boolean(n&&":"!==n.charAt(1));return Boolean(r[2]||i)}e.exports="win32"===t.platform?n:r,e.exports.posix=r,e.exports.win32=n}).call(t,r(8))},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}var i=r(14),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=r(1),o=n(a),u=r(116),l=n(u),c=Object.prototype.hasOwnProperty;t.hoist=function(e){function t(e,t){o.assertVariableDeclaration(e);var n=[];return e.declarations.forEach(function(e){r[e.id.name]=o.identifier(e.id.name),e.init?n.push(o.assignmentExpression("=",e.id,e.init)):t&&n.push(e.id)}),0===n.length?null:1===n.length?n[0]:o.sequenceExpression(n)}o.assertFunction(e.node);var r={};e.get("body").traverse({VariableDeclaration:{exit:function(e){var r=t(e.node,!1);null===r?e.remove():l.replaceWithOrRemove(e,o.expressionStatement(r)),e.skip()}},ForStatement:function(e){var r=e.node.init;o.isVariableDeclaration(r)&&l.replaceWithOrRemove(e.get("init"),t(r,!1))},ForXStatement:function(e){var r=e.get("left");r.isVariableDeclaration()&&l.replaceWithOrRemove(r,t(r.node,!0))},FunctionDeclaration:function(e){var t=e.node;r[t.id.name]=t.id;var n=o.expressionStatement(o.assignmentExpression("=",t.id,o.functionExpression(t.id,t.params,t.body,t.generator,t.expression)));e.parentPath.isBlockStatement()?(e.parentPath.unshiftContainer("body",n),e.remove()):l.replaceWithOrRemove(e,n),e.skip()},FunctionExpression:function(e){e.skip()}});var n={};e.get("params").forEach(function(e){var t=e.node;o.isIdentifier(t)&&(n[t.name]=t)});var i=[];return(0,s.default)(r).forEach(function(e){c.call(n,e)||i.push(o.variableDeclarator(r[e],null))}),0===i.length?null:o.variableDeclaration("var",i)}},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return r(610)}},function(e,t,r){"use strict";function n(){d.default.ok(this instanceof n)}function i(e){n.call(this),m.assertLiteral(e),this.returnLoc=e}function s(e,t,r){n.call(this),m.assertLiteral(e),m.assertLiteral(t),r?m.assertIdentifier(r):r=null,this.breakLoc=e,this.continueLoc=t,this.label=r}function a(e){n.call(this),m.assertLiteral(e),this.breakLoc=e}function o(e,t,r){n.call(this),m.assertLiteral(e),t?d.default.ok(t instanceof u):t=null,r?d.default.ok(r instanceof l):r=null,d.default.ok(t||r),this.firstLoc=e,this.catchEntry=t,this.finallyEntry=r}function u(e,t){n.call(this),m.assertLiteral(e),m.assertIdentifier(t),this.firstLoc=e,this.paramId=t}function l(e,t){n.call(this),m.assertLiteral(e),m.assertLiteral(t),this.firstLoc=e,this.afterLoc=t}function c(e,t){n.call(this),m.assertLiteral(e),m.assertIdentifier(t),this.breakLoc=e,this.label=t}function f(e){d.default.ok(this instanceof f);var t=r(283).Emitter;d.default.ok(e instanceof t),this.emitter=e,this.entryStack=[new i(e.finalLoc)]}var p=r(64),d=function(e){return e&&e.__esModule?e:{default:e}}(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(117);(0,y.inherits)(i,n),t.FunctionEntry=i,(0,y.inherits)(s,n),t.LoopEntry=s,(0,y.inherits)(a,n),t.SwitchEntry=a,(0,y.inherits)(o,n),t.TryEntry=o,(0,y.inherits)(u,n),t.CatchEntry=u,(0,y.inherits)(l,n),t.FinallyEntry=l,(0,y.inherits)(c,n),t.LabeledEntry=c;var v=f.prototype;t.LeapManager=f,v.withEntry=function(e,t){d.default.ok(e instanceof n),this.entryStack.push(e);try{t.call(this.emitter)}finally{var r=this.entryStack.pop();d.default.strictEqual(r,e)}},v._findLeapLocation=function(e,t){for(var r=this.entryStack.length-1;r>=0;--r){var n=this.entryStack[r],i=n[e];if(i)if(t){if(n.label&&n.label.name===t.name)return i}else if(!(n instanceof c))return i}return null},v.getBreakLoc=function(e){return this._findLeapLocation("breakLoc",e)},v.getContinueLoc=function(e){return this._findLeapLocation("continueLoc",e)}},function(e,t,r){"use strict";function n(e,t){function r(e){function t(e){return r||(Array.isArray(e)?e.some(t):o.isNode(e)&&(s.default.strictEqual(r,!1),r=n(e))),r}o.assertNode(e);var r=!1,i=o.VISITOR_KEYS[e.type];if(i)for(var a=0;a<i.length;a++){var u=i[a],l=e[u];t(l)}return r}function n(n){o.assertNode(n);var i=u(n);return l.call(i,e)?i[e]:l.call(c,n.type)?i[e]=!1:l.call(t,n.type)?i[e]=!0:i[e]=r(n)}return n.onlyChildren=r,n}var i=r(64),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a),u=r(281).makeAccessor(),l=Object.prototype.hasOwnProperty,c={FunctionExpression:!0,ArrowFunctionExpression:!0},f={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},p={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var d in p)l.call(p,d)&&(f[d]=p[d]);t.hasSideEffects=n("hasSideEffects",f),t.containsLeap=n("containsLeap",p)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){if(!e.node||!a.isFunction(e.node))throw new Error("replaceShorthandObjectMethod can only be called on Function AST node paths.");if(!a.isObjectMethod(e.node))return e;if(!e.node.generator)return e;var t=e.node.params.map(function(e){return a.cloneDeep(e)}),r=a.functionExpression(null,t,a.cloneDeep(e.node.body),e.node.generator,e.node.async);return u.replaceWithOrRemove(e,a.objectProperty(a.cloneDeep(e.node.key),r,e.node.computed,!1)),e.get("value")}t.__esModule=!0,t.default=i;var s=r(1),a=n(s),o=r(116),u=n(o)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=e.node;return f.assertFunction(t),t.id||(t.id=e.scope.parent.generateUidIdentifier("callee")),t.generator&&f.isFunctionDeclaration(t)?a(e):t.id}function a(e){var t=e.node;f.assertIdentifier(t.id);var r=e.findParent(function(e){return e.isProgram()||e.isBlockStatement()});if(!r)return t.id;var n=r.node;l.default.ok(Array.isArray(n.body));var i=g(n);i.decl||(i.decl=f.variableDeclaration("var",[]),r.unshiftContainer("body",i.decl),i.declPath=r.get("body.0")),l.default.strictEqual(i.declPath.node,i.decl);var s=r.scope.generateUidIdentifier("marked"),a=f.callExpression(v.runtimeProperty("mark"),[t.id]),o=i.decl.declarations.push(f.variableDeclarator(s,a))-1,u=i.declPath.get("declarations."+o+".init");return l.default.strictEqual(u.node,a),u.addComment("leading","#__PURE__"),s}function o(e,t){var r={didRenameArguments:!1,argsId:t};return e.traverse(b,r),r.didRenameArguments}var u=r(64),l=i(u),c=r(1),f=n(c),p=r(605),d=r(283),h=r(609),m=i(h),y=r(116),v=n(y);t.name="regenerator-transform",t.visitor={Function:{exit:function(e,t){var r=e.node;if(r.generator){if(r.async){if(!1===t.opts.asyncGenerators)return}else if(!1===t.opts.generators)return}else{if(!r.async)return;if(!1===t.opts.async)return}e=(0,m.default)(e),r=e.node;var n=e.scope.generateUidIdentifier("context"),i=e.scope.generateUidIdentifier("args");e.ensureBlock();var a=e.get("body");r.async&&a.traverse(x),a.traverse(E,{context:n});var u=[],l=[];a.get("body").forEach(function(e){var t=e.node;f.isExpressionStatement(t)&&f.isStringLiteral(t.expression)?u.push(t):t&&null!=t._blockHoist?u.push(t):l.push(t)}),u.length>0&&(a.node.body=l);var c=s(e);f.assertIdentifier(r.id);var h=f.identifier(r.id.name+"$"),y=(0,p.hoist)(e);if(o(e,i)){y=y||f.variableDeclaration("var",[]);var g=f.identifier("arguments");g._shadowedFunctionLiteral=e,y.declarations.push(f.variableDeclarator(i,g))}var b=new d.Emitter(n);b.explode(e.get("body")),y&&y.declarations.length>0&&u.push(y);var A=[b.getContextFunction(h),r.generator?c:f.nullLiteral(),f.thisExpression()],S=b.getTryLocsList();S&&A.push(S);var _=f.callExpression(v.runtimeProperty(r.async?"async":"wrap"),A);u.push(f.returnStatement(_)),r.body=f.blockStatement(u);var D=a.node.directives;D&&(r.body.directives=D);var C=r.generator;C&&(r.generator=!1),r.async&&(r.async=!1),C&&f.isExpression(r)&&(v.replaceWithOrRemove(e,f.callExpression(v.runtimeProperty("mark"),[r])),e.addComment("leading","#__PURE__")),e.requeue()}}};var g=r(281).makeAccessor(),b={"FunctionExpression|FunctionDeclaration":function(e){e.skip()},Identifier:function(e,t){"arguments"===e.node.name&&v.isReference(e)&&(v.replaceWithOrRemove(e,t.argsId),t.didRenameArguments=!0)}},E={MetaProperty:function(e){var t=e.node;"function"===t.meta.name&&"sent"===t.property.name&&v.replaceWithOrRemove(e,f.memberExpression(this.context,f.identifier("_sent")))}},x={Function:function(e){e.skip()},AwaitExpression:function(e){var t=e.node.argument;v.replaceWithOrRemove(e,f.yieldExpression(f.callExpression(v.runtimeProperty("awrap"),[t]),!1))}}},function(e,t,r){"use strict";var n=r(282);t.REGULAR={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,65535),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535),w:n(95).addRange(48,57).addRange(65,90).addRange(97,122),W:n(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)},t.UNICODE={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,1114111),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:n(95).addRange(48,57).addRange(65,90).addRange(97,122),W:n(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)},t.UNICODE_IGNORE_CASE={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,1114111),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:n(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122),W:n(75,83,96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)}},function(e,t,r){"use strict";function n(e){return S?A?m.UNICODE_IGNORE_CASE[e]:m.UNICODE[e]:m.REGULAR[e]}function i(e,t){return v.call(e,t)}function s(e,t){for(var r in t)e[r]=t[r]}function a(e,t){if(t){var r=p(t,"");switch(r.type){case"characterClass":case"group":case"value":break;default:r=o(r,t)}s(e,r)}}function o(e,t){return{type:"group",behavior:"ignore",body:[e],raw:"(?:"+t+")"}}function u(e){return!!i(h,e)&&h[e]}function l(e){var t=d();e.body.forEach(function(e){switch(e.type){case"value":if(t.add(e.codePoint),A&&S){var r=u(e.codePoint);r&&t.add(r)}break;case"characterClassRange":var i=e.min.codePoint,s=e.max.codePoint;t.addRange(i,s),A&&S&&t.iuAddRange(i,s);break;case"characterClassEscape":t.add(n(e.value));break;default:throw Error("Unknown term type: "+e.type)}});return e.negative&&(t=(S?g:b).clone().remove(t)),a(e,t.toString()),e}function c(e){switch(e.type){case"dot":a(e,(S?E:x).toString());break;case"characterClass":e=l(e);break;case"characterClassEscape":a(e,n(e.value).toString());break;case"alternative":case"disjunction":case"group":case"quantifier":e.body=e.body.map(c);break;case"value":var t=e.codePoint,r=d(t);if(A&&S){var i=u(t);i&&r.add(i)}a(e,r.toString());break;case"anchor":case"empty":case"group":case"reference":break;default:throw Error("Unknown term type: "+e.type)}return e}var f=r(613).generate,p=r(614).parse,d=r(282),h=r(631),m=r(611),y={},v=y.hasOwnProperty,g=d().addRange(0,1114111),b=d().addRange(0,65535),E=g.clone().remove(10,13,8232,8233),x=E.clone().intersection(b);d.prototype.iuAddRange=function(e,t){var r=this;do{var n=u(e);n&&r.add(n)}while(++e<=t);return r};var A=!1,S=!1;e.exports=function(e,t){var r=p(e,t);return A=!!t&&t.indexOf("i")>-1,S=!!t&&t.indexOf("u")>-1,s(r,c(r)),f(r)}},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};(function(){function a(){var e,t,r=[],n=-1,i=arguments.length;if(!i)return"";for(var s="";++n<i;){var a=Number(arguments[n]);if(!isFinite(a)||a<0||a>1114111||k(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?r.push(a):(a-=65536,e=55296+(a>>10),t=a%1024+56320,r.push(e,t)),(n+1==i||r.length>16384)&&(s+=P.apply(null,r),r.length=0)}return s}function o(e,t){if(-1==t.indexOf("|")){if(e==t)return;throw Error("Invalid node type: "+e)}if(t=o.hasOwnProperty(t)?o[t]:o[t]=RegExp("^(?:"+t+")$"),!t.test(e))throw Error("Invalid node type: "+e)
}function u(e){var t=e.type;if(u.hasOwnProperty(t)&&"function"==typeof u[t])return u[t](e);throw Error("Invalid node type: "+t)}function l(e){o(e.type,"alternative");var t=e.body,r=t?t.length:0;if(1==r)return x(t[0]);for(var n=-1,i="";++n<r;)i+=x(t[n]);return i}function c(e){switch(o(e.type,"anchor"),e.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}}function f(e){return o(e.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value"),u(e)}function p(e){o(e.type,"characterClass");var t=e.body,r=t?t.length:0,n=-1,i="[";for(e.negative&&(i+="^");++n<r;)i+=m(t[n]);return i+="]"}function d(e){return o(e.type,"characterClassEscape"),"\\"+e.value}function h(e){o(e.type,"characterClassRange");var t=e.min,r=e.max;if("characterClassRange"==t.type||"characterClassRange"==r.type)throw Error("Invalid character class range");return m(t)+"-"+m(r)}function m(e){return o(e.type,"anchor|characterClassEscape|characterClassRange|dot|value"),u(e)}function y(e){o(e.type,"disjunction");var t=e.body,r=t?t.length:0;if(0==r)throw Error("No body");if(1==r)return u(t[0]);for(var n=-1,i="";++n<r;)0!=n&&(i+="|"),i+=u(t[n]);return i}function v(e){return o(e.type,"dot"),"."}function g(e){o(e.type,"group");var t="(";switch(e.behavior){case"normal":break;case"ignore":t+="?:";break;case"lookahead":t+="?=";break;case"negativeLookahead":t+="?!";break;default:throw Error("Invalid behaviour: "+e.behaviour)}var r=e.body,n=r?r.length:0;if(1==n)t+=u(r[0]);else for(var i=-1;++i<n;)t+=u(r[i]);return t+=")"}function b(e){o(e.type,"quantifier");var t="",r=e.min,n=e.max;switch(n){case void 0:case null:switch(r){case 0:t="*";break;case 1:t="+";break;default:t="{"+r+",}"}break;default:t=r==n?"{"+r+"}":0==r&&1==n?"?":"{"+r+","+n+"}"}return e.greedy||(t+="?"),f(e.body[0])+t}function E(e){return o(e.type,"reference"),"\\"+e.matchIndex}function x(e){return o(e.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|value"),u(e)}function A(e){o(e.type,"value");var t=e.kind,r=e.codePoint;switch(t){case"controlLetter":return"\\c"+a(r+64);case"hexadecimalEscape":return"\\x"+("00"+r.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+a(r);case"null":return"\\"+r;case"octal":return"\\"+r.toString(8);case"singleEscape":switch(r){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";default:throw Error("Invalid codepoint: "+r)}case"symbol":return a(r);case"unicodeEscape":return"\\u"+("0000"+r.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+r.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+t)}}var S={function:!0,object:!0},_=S["undefined"==typeof window?"undefined":s(window)]&&window||this,D=S[s(t)]&&t,C=S[s(e)]&&e&&!e.nodeType&&e,w=D&&C&&"object"==(void 0===i?"undefined":s(i))&&i;!w||w.global!==w&&w.window!==w&&w.self!==w||(_=w);var P=String.fromCharCode,k=Math.floor;u.alternative=l,u.anchor=c,u.characterClass=p,u.characterClassEscape=d,u.characterClassRange=h,u.disjunction=y,u.dot=v,u.group=g,u.quantifier=b,u.reference=E,u.value=A,"object"==s(r(49))&&r(49)?void 0!==(n=function(){return{generate:u}}.call(t,r,t,e))&&(e.exports=n):D&&C?D.generate=u:_.regjsgen={generate:u}}).call(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t){"use strict";!function(){function t(e,t){function r(t){return t.raw=e.substring(t.range[0],t.range[1]),t}function n(e,t){return e.range[0]=t,r(e)}function i(e,t){return r({type:"anchor",kind:e,range:[$-t,$]})}function s(e,t,n,i){return r({type:"value",kind:e,codePoint:t,range:[n,i]})}function a(e,t,r,n){return n=n||0,s(e,t,$-(r.length+n),$)}function o(e){var t=e[0],r=t.charCodeAt(0);if(z){var n;if(1===t.length&&r>=55296&&r<=56319&&(n=x().charCodeAt(0))>=56320&&n<=57343)return $++,s("symbol",1024*(r-55296)+n-56320+65536,$-2,$)}return s("symbol",r,$-1,$)}function u(e,t,n){return r({type:"disjunction",body:e,range:[t,n]})}function l(){return r({type:"dot",range:[$-1,$]})}function c(e){return r({type:"characterClassEscape",value:e,range:[$-2,$]})}function f(e){return r({type:"reference",matchIndex:parseInt(e,10),range:[$-1-e.length,$]})}function p(e,t,n,i){return r({type:"group",behavior:e,body:t,range:[n,i]})}function d(e,t,n,i){return null==i&&(n=$-1,i=$),r({type:"quantifier",min:e,max:t,greedy:!0,body:null,range:[n,i]})}function h(e,t,n){return r({type:"alternative",body:e,range:[t,n]})}function m(e,t,n,i){return r({type:"characterClass",body:e,negative:t,range:[n,i]})}function y(e,t,n,i){return e.codePoint>t.codePoint&&K("invalid range in character class",e.raw+"-"+t.raw,n,i),r({type:"characterClassRange",min:e,max:t,range:[n,i]})}function v(e){return"alternative"===e.type?e.body:[e]}function g(t){t=t||1;var r=e.substring($,$+t);return $+=t||1,r}function b(e){E(e)||K("character",e)}function E(t){if(e.indexOf(t,$)===$)return g(t.length)}function x(){return e[$]}function A(t){return e.indexOf(t,$)===$}function S(t){return e[$+1]===t}function _(t){var r=e.substring($),n=r.match(t);return n&&(n.range=[],n.range[0]=$,g(n[0].length),n.range[1]=$),n}function D(){var e=[],t=$;for(e.push(C());E("|");)e.push(C());return 1===e.length?e[0]:u(e,t,$)}function C(){for(var e,t=[],r=$;e=w();)t.push(e);return 1===t.length?t[0]:h(t,r,$)}function w(){if($>=e.length||A("|")||A(")"))return null;var t=k();if(t)return t;var r=T();r||K("Expected atom");var i=F()||!1;return i?(i.body=v(r),n(i,r.range[0]),i):r}function P(e,t,r,n){var i=null,s=$;if(E(e))i=t;else{if(!E(r))return!1;i=n}var a=D();a||K("Expected disjunction"),b(")");var o=p(i,v(a),s,$);return"normal"==i&&X&&J++,o}function k(){return E("^")?i("start",1):E("$")?i("end",1):E("\\b")?i("boundary",2):E("\\B")?i("not-boundary",2):P("(?=","lookahead","(?!","negativeLookahead")}function F(){var e,t,r,n,i=$;return E("*")?t=d(0):E("+")?t=d(1):E("?")?t=d(0,1):(e=_(/^\{([0-9]+)\}/))?(r=parseInt(e[1],10),t=d(r,r,e.range[0],e.range[1])):(e=_(/^\{([0-9]+),\}/))?(r=parseInt(e[1],10),t=d(r,void 0,e.range[0],e.range[1])):(e=_(/^\{([0-9]+),([0-9]+)\}/))&&(r=parseInt(e[1],10),n=parseInt(e[2],10),r>n&&K("numbers out of order in {} quantifier","",i,$),t=d(r,n,e.range[0],e.range[1])),t&&E("?")&&(t.greedy=!1,t.range[1]+=1),t}function T(){var e;return(e=_(/^[^^$\\.*+?(){[|]/))?o(e):E(".")?l():E("\\")?(e=R(),e||K("atomEscape"),e):(e=j())?e:P("(?:","ignore","(","normal")}function O(e){if(z){var t,n;if("unicodeEscape"==e.kind&&(t=e.codePoint)>=55296&&t<=56319&&A("\\")&&S("u")){var i=$;$++;var s=B();"unicodeEscape"==s.kind&&(n=s.codePoint)>=56320&&n<=57343?(e.range[1]=s.range[1],e.codePoint=1024*(t-55296)+n-56320+65536,e.type="value",e.kind="unicodeCodePointEscape",r(e)):$=i}}return e}function B(){return R(!0)}function R(e){var t,r=$;if(t=I())return t;if(e){if(E("b"))return a("singleEscape",8,"\\b");E("B")&&K("\\B not possible inside of CharacterClass","",r)}return t=M()}function I(){var e,t;if(e=_(/^(?!0)\d+/)){t=e[0];var r=parseInt(e[0],10);return r<=J?f(e[0]):(H.push(r),g(-e[0].length),(e=_(/^[0-7]{1,3}/))?a("octal",parseInt(e[0],8),e[0],1):(e=o(_(/^[89]/)),n(e,e.range[0]-1)))}return(e=_(/^[0-7]{1,3}/))?(t=e[0],/^0{1,3}$/.test(t)?a("null",0,"0",t.length+1):a("octal",parseInt(t,8),t,1)):!!(e=_(/^[dDsSwW]/))&&c(e[0])}function M(){var e;if(e=_(/^[fnrtv]/)){var t=0;switch(e[0]){case"t":t=9;break;case"n":t=10;break;case"v":t=11;break;case"f":t=12;break;case"r":t=13}return a("singleEscape",t,"\\"+e[0])}return(e=_(/^c([a-zA-Z])/))?a("controlLetter",e[1].charCodeAt(0)%32,e[1],2):(e=_(/^x([0-9a-fA-F]{2})/))?a("hexadecimalEscape",parseInt(e[1],16),e[1],2):(e=_(/^u([0-9a-fA-F]{4})/))?O(a("unicodeEscape",parseInt(e[1],16),e[1],2)):z&&(e=_(/^u\{([0-9a-fA-F]+)\}/))?a("unicodeCodePointEscape",parseInt(e[1],16),e[1],4):L()}function N(e){var t=new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]");return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&t.test(String.fromCharCode(e))}function L(){var e;return N(x())?E("‌")?a("identifier",8204,"‌"):E("‍")?a("identifier",8205,"‍"):null:(e=g(),a("identifier",e.charCodeAt(0),e,1))}function j(){var e,t=$;return(e=_(/^\[\^/))?(e=U(),b("]"),m(e,!0,t,$)):E("[")?(e=U(),b("]"),m(e,!1,t,$)):null}function U(){var e;return A("]")?[]:(e=G(),e||K("nonEmptyClassRanges"),e)}function V(e){var t,r,n;if(A("-")&&!S("]")){b("-"),n=Y(),n||K("classAtom"),r=$;var i=U();return i||K("classRanges"),t=e.range[0],"empty"===i.type?[y(e,n,t,r)]:[y(e,n,t,r)].concat(i)}return n=W(),n||K("nonEmptyClassRangesNoDash"),[e].concat(n)}function G(){var e=Y();return e||K("classAtom"),A("]")?[e]:V(e)}function W(){var e=Y();return e||K("classAtom"),A("]")?e:V(e)}function Y(){return E("-")?o("-"):q()}function q(){var e;return(e=_(/^[^\\\]-]/))?o(e[0]):E("\\")?(e=B(),e||K("classEscape"),O(e)):void 0}function K(t,r,n,i){n=null==n?$:n,i=null==i?n:i;var s=Math.max(0,n-10),a=Math.min(i+10,e.length),o="    "+e.substring(s,a),u="    "+new Array(n-s+1).join(" ")+"^";throw SyntaxError(t+" at position "+n+(r?": "+r:"")+"\n"+o+"\n"+u)}var H=[],J=0,X=!0,z=-1!==(t||"").indexOf("u"),$=0;""===(e=String(e))&&(e="(?:)");var Q=D();Q.range[1]!==e.length&&K("Could not parse entire input - got stuck","",Q.range[1]);for(var Z=0;Z<H.length;Z++)if(H[Z]<=J)return $=0,X=!1,D();return Q}var r={parse:t};void 0!==e&&e.exports?e.exports=r:window.regjsparser=r}()},function(e,t,r){"use strict";var n=r(467);e.exports=function(e,t){if("string"!=typeof e)throw new TypeError("Expected `input` to be a string");if(t<0||!n(t))throw new TypeError("Expected `count` to be a positive finite number");var r="";do{1&t&&(r+=e),e+=e}while(t>>=1);return r}},function(e,t){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},function(e,t){"use strict";function r(e,n,i,s,a,o){var u=Math.floor((n-e)/2)+e,l=a(i,s[u],!0);return 0===l?u:l>0?n-u>1?r(u,n,i,s,a,o):o==t.LEAST_UPPER_BOUND?n<s.length?n:-1:u:u-e>1?r(e,u,i,s,a,o):o==t.LEAST_UPPER_BOUND?u:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,i,s){if(0===n.length)return-1;var a=r(-1,n.length,e,n,i,s||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===i(n[a],n[a-1],!0);)--a;return a}},function(e,t,r){"use strict";function n(e,t){var r=e.generatedLine,n=t.generatedLine,i=e.generatedColumn,a=t.generatedColumn;return n>r||n==r&&a>=i||s.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var s=r(63);i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){n(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(s.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.MappingList=i},function(e,t){"use strict";function r(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function n(e,t){return Math.round(e+Math.random()*(t-e))}function i(e,t,s,a){if(s<a){var o=n(s,a),u=s-1;r(e,o,a);for(var l=e[a],c=s;c<a;c++)t(e[c],l)<=0&&(u+=1,r(e,u,c));r(e,u+1,c);var f=u+1;i(e,t,s,f-1),i(e,t,f+1,a)}}t.quickSort=function(e,t){i(e,t,0,e.length-1)}},function(e,t,r){"use strict";function n(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new a(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),n=o.getArg(t,"sources"),i=o.getArg(t,"names",[]),s=o.getArg(t,"sourceRoot",null),a=o.getArg(t,"sourcesContent",null),u=o.getArg(t,"mappings"),c=o.getArg(t,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);n=n.map(String).map(o.normalize).map(function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}),this._names=l.fromArray(i.map(String),!0),this._sources=l.fromArray(n,!0),this.sourceRoot=s,this.sourcesContent=a,this._mappings=u,this.file=c}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function a(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),i=o.getArg(t,"sections");if(r!=this._version)throw new Error("Unsupported version: "+r);this._sources=new l,this._names=new l;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=o.getArg(e,"offset"),r=o.getArg(t,"line"),i=o.getArg(t,"column");if(r<s.line||r===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:r+1,generatedColumn:i+1},consumer:new n(o.getArg(e,"map"))}})}var o=r(63),u=r(617),l=r(285).ArraySet,c=r(286),f=r(619).quickSort;n.fromSourceMap=function(e){return i.fromSourceMap(e)},n.prototype._version=3,n.prototype.__generatedMappings=null,Object.defineProperty(n.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),n.prototype.__originalMappings=null,Object.defineProperty(n.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),n.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},n.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},n.GENERATED_ORDER=1,n.ORIGINAL_ORDER=2,n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.prototype.eachMapping=function(e,t,r){var i,s=t||null,a=r||n.GENERATED_ORDER;switch(a){case n.GENERATED_ORDER:i=this._generatedMappings;break;case n.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=u&&(t=o.join(u,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},n.prototype.allGeneratedPositionsFor=function(e){var t=o.getArg(e,"line"),r={source:o.getArg(e,"source"),originalLine:t,originalColumn:o.getArg(e,"column",0)};if(null!=this.sourceRoot&&(r.source=o.relative(this.sourceRoot,r.source)),!this._sources.has(r.source))return[];r.source=this._sources.indexOf(r.source);var n=[],i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=0){var s=this._originalMappings[i];if(void 0===e.column)for(var a=s.originalLine;s&&s.originalLine===a;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return n},t.SourceMapConsumer=n,i.prototype=Object.create(n.prototype),i.prototype.consumer=n,i.fromSourceMap=function(e){var t=Object.create(i.prototype),r=t._names=l.fromArray(e._names.toArray(),!0),n=t._sources=l.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),u=t.__generatedMappings=[],c=t.__originalMappings=[],p=0,d=a.length;p<d;p++){var h=a[p],m=new s;m.generatedLine=h.generatedLine,m.generatedColumn=h.generatedColumn,h.source&&(m.source=n.indexOf(h.source),m.originalLine=h.originalLine,m.originalColumn=h.originalColumn,h.name&&(m.name=r.indexOf(h.name)),c.push(m)),u.push(m)}return f(t.__originalMappings,o.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?o.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var r,n,i,a,u,l=1,p=0,d=0,h=0,m=0,y=0,v=e.length,g=0,b={},E={},x=[],A=[];g<v;)if(";"===e.charAt(g))l++,g++,p=0;else if(","===e.charAt(g))g++;else{for(r=new s,r.generatedLine=l,a=g;a<v&&!this._charIsMappingSeparator(e,a);a++);if(n=e.slice(g,a),i=b[n])g+=n.length;else{for(i=[];g<a;)c.decode(e,g,E),u=E.value,g=E.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");b[n]=i}r.generatedColumn=p+i[0],p=r.generatedColumn,i.length>1&&(r.source=m+i[1],m+=i[1],r.originalLine=d+i[2],d=r.originalLine,r.originalLine+=1,r.originalColumn=h+i[3],h=r.originalColumn,i.length>4&&(r.name=y+i[4],y+=i[4])),A.push(r),"number"==typeof r.originalLine&&x.push(r)}f(A,o.compareByGeneratedPositionsDeflated),this.__generatedMappings=A,f(x,o.compareByOriginalPositions),this.__originalMappings=x},i.prototype._findMapping=function(e,t,r,n,i,s){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(t.generatedLine===r.generatedLine){t.lastGeneratedColumn=r.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositionsDeflated,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(r>=0){var i=this._generatedMappings[r];if(i.generatedLine===t.generatedLine){var s=o.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=o.join(this.sourceRoot,s)));var a=o.getArg(i,"name",null);return null!==a&&(a=this._names.at(a)),{source:s,line:o.getArg(i,"originalLine",null),column:o.getArg(i,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=o.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var r;if(null!=this.sourceRoot&&(r=o.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==r.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!r.path||"/"==r.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=o.getArg(e,"source");if(null!=this.sourceRoot&&(t=o.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};t=this._sources.indexOf(t);var r={source:t,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")},i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===r.source)return{line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},t.BasicSourceMapConsumer=i,a.prototype=Object.create(n.prototype),a.prototype.constructor=n,a.prototype._version=3,Object.defineProperty(a.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var r=0;r<this._sections[t].consumer.sources.length;r++)e.push(this._sections[t].consumer.sources[r]);return e}}),a.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=u.search(t,this._sections,function(e,t){var r=e.generatedLine-t.generatedOffset.generatedLine;return r||e.generatedColumn-t.generatedOffset.generatedColumn}),n=this._sections[r];return n?n.consumer.originalPositionFor({line:t.generatedLine-(n.generatedOffset.generatedLine-1),column:t.generatedColumn-(n.generatedOffset.generatedLine===t.generatedLine?n.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},a.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},a.prototype.sourceContentFor=function(e,t){for(var r=0;r<this._sections.length;r++){var n=this._sections[r],i=n.consumer.sourceContentFor(e,!0);if(i)return i}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},a.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var r=this._sections[t];if(-1!==r.consumer.sources.indexOf(o.getArg(e,"source"))){var n=r.consumer.generatedPositionFor(e);if(n){return{line:n.line+(r.generatedOffset.generatedLine-1),column:n.column+(r.generatedOffset.generatedLine===n.line?r.generatedOffset.generatedColumn-1:0)}}}}return{line:null,column:null}},a.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var r=0;r<this._sections.length;r++)for(var n=this._sections[r],i=n.consumer._generatedMappings,s=0;s<i.length;s++){var a=i[s],u=n.consumer._sources.at(a.source);null!==n.consumer.sourceRoot&&(u=o.join(n.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var l=n.consumer._names.at(a.name);this._names.add(l),l=this._names.indexOf(l);var c={source:u,generatedLine:a.generatedLine+(n.generatedOffset.generatedLine-1),generatedColumn:a.generatedColumn+(n.generatedOffset.generatedLine===a.generatedLine?n.generatedOffset.generatedColumn-1:0),originalLine:a.originalLine,originalColumn:a.originalColumn,name:l};this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}f(this.__generatedMappings,o.compareByGeneratedPositionsDeflated),f(this.__originalMappings,o.compareByOriginalPositions)},t.IndexedSourceMapConsumer=a},function(e,t,r){"use strict";function n(e,t,r,n,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==i?null:i,this[o]=!0,null!=n&&this.add(n)}var i=r(287).SourceMapGenerator,s=r(63),a=/(\r?\n)/,o="$$$isSourceNode$$$";n.fromStringWithSourceMap=function(e,t,r){function i(e,t){if(null===e||void 0===e.source)o.add(t);else{var i=r?s.join(r,e.source):e.source;o.add(new n(e.originalLine,e.originalColumn,i,t,e.name))}}var o=new n,u=e.split(a),l=function(){return u.shift()+(u.shift()||"")},c=1,f=0,p=null;return t.eachMapping(function(e){if(null!==p){if(!(c<e.generatedLine)){var t=u[0],r=t.substr(0,e.generatedColumn-f);return u[0]=t.substr(e.generatedColumn-f),f=e.generatedColumn,i(p,r),void(p=e)}i(p,l()),c++,f=0}for(;c<e.generatedLine;)o.add(l()),c++;if(f<e.generatedColumn){var t=u[0];o.add(t.substr(0,e.generatedColumn)),u[0]=t.substr(e.generatedColumn),f=e.generatedColumn}p=e},this),u.length>0&&(p&&i(p,l()),o.add(u.join(""))),t.sources.forEach(function(e){var n=t.sourceContentFor(e);null!=n&&(null!=r&&(e=s.join(r,e)),o.setSourceContent(e,n))}),o},n.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},n.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},n.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r<n;r++)t=this.children[r],t[o]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},n.prototype.join=function(e){var t,r,n=this.children.length;if(n>0){for(t=[],r=0;r<n-1;r++)t.push(this.children[r]),t.push(e);t.push(this.children[r]),this.children=t}return this},n.prototype.replaceRight=function(e,t){var r=this.children[this.children.length-1];return r[o]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},n.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},n.prototype.walkSourceContents=function(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][o]&&this.children[t].walkSourceContents(e);for(var n=Object.keys(this.sourceContents),t=0,r=n.length;t<r;t++)e(s.fromSetString(n[t]),this.sourceContents[n[t]])},n.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},n.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},r=new i(e),n=!1,s=null,a=null,o=null,u=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&a===i.line&&o===i.column&&u===i.name||r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,a=i.line,o=i.column,u=i.name,n=!0):n&&(r.addMapping({generated:{line:t.line,column:t.column}}),s=null,n=!1);for(var l=0,c=e.length;l<c;l++)10===e.charCodeAt(l)?(t.line++,t.column=0,l+1===c?(s=null,n=!1):n&&r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){r.setSourceContent(e,t)}),{code:t.code,map:r}},t.SourceNode=n},function(e,t,r){"use strict";var n=r(180)();e.exports=function(e){return"string"==typeof e?e.replace(n,""):e}},function(e,t,r){(function(t){"use strict";var r=t.argv,n=r.indexOf("--"),i=function(e){e="--"+e;var t=r.indexOf(e);return-1!==t&&(-1===n||t<n)};e.exports=function(){return"FORCE_COLOR"in t.env||!(i("no-color")||i("no-colors")||i("color=false"))&&(!!(i("color")||i("colors")||i("color=true")||i("color=always"))||!(t.stdout&&!t.stdout.isTTY)&&("win32"===t.platform||("COLORTERM"in t.env||"dumb"!==t.env.TERM&&!!/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(t.env.TERM))))}()}).call(t,r(8))},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function e(t){function n(){}function i(){return r(s.foo)}n.prototype=t;var s=new n;return i(),i(),t}},function(e,t){"use strict";e.exports=function(e){for(var t=e.length;/[\s\uFEFF\u00A0]/.test(e[t-1]);)t--;return e.slice(0,t)}},function(e,t){"use strict";"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function(e){return e&&"object"===(void 0===e?"undefined":r(e))&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.version="6.26.0"},function(e,t){"use strict";function r(e,t){var r=void 0;return null!=t.url?r=t.url:(r="Inline Babel script",++p>1&&(r+=" ("+p+")")),e(t.content,l({filename:r},n(t))).code}function n(e){return{presets:e.presets||["react","es2015"],plugins:e.plugins||["transform-class-properties","transform-object-rest-spread","transform-flow-strip-types"],sourceMaps:"inline"}}function i(e,t){var n=document.createElement("script");n.text=r(e,t),f.appendChild(n)}function s(e,t,r){var n=new XMLHttpRequest;return n.open("GET",e,!0),"overrideMimeType"in n&&n.overrideMimeType("text/plain"),n.onreadystatechange=function(){if(4===n.readyState){if(0!==n.status&&200!==n.status)throw r(),new Error("Could not load "+e);t(n.responseText)}},n.send(null)}function a(e,t){var r=e.getAttribute(t);return""===r?[]:r?r.split(",").map(function(e){return e.trim()}):null}function o(e,t){function r(){var t,r;for(r=0;r<o;r++)if(t=n[r],t.loaded&&!t.executed)t.executed=!0,i(e,t);else if(!t.loaded&&!t.error&&!t.async)break}var n=[],o=t.length;t.forEach(function(e,t){var i={async:e.hasAttribute("async"),error:!1,executed:!1,plugins:a(e,"data-plugins"),presets:a(e,"data-presets")};e.src?(n[t]=l({},i,{content:null,loaded:!1,url:e.src}),s(e.src,function(e){n[t].loaded=!0,n[t].content=e,r()},function(){n[t].error=!0,r()})):n[t]=l({},i,{content:e.innerHTML,loaded:!0,url:null})}),r()}function u(e,t){f=document.getElementsByTagName("head")[0],t||(t=document.getElementsByTagName("script"));for(var r=[],n=0;n<t.length;n++){var i=t.item(n),s=i.type.split(";")[0];-1!==c.indexOf(s)&&r.push(i)}0!==r.length&&(console.warn("You are using the in-browser Babel transformer. Be sure to precompile your scripts for production - https://babeljs.io/docs/setup/"),o(e,r))}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};t.runScripts=u;var c=["text/jsx","text/babel"],f=void 0,p=0},function(e,t){e.exports={builtin:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,
valueOf:!1,WeakMap:!1,WeakSet:!1},es5:{Array:!1,Boolean:!1,constructor:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,propertyIsEnumerable:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1},es6:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},browser:{addEventListener:!1,alert:!1,AnalyserNode:!1,Animation:!1,AnimationEffectReadOnly:!1,AnimationEffectTiming:!1,AnimationEffectTimingReadOnly:!1,AnimationEvent:!1,AnimationPlaybackEvent:!1,AnimationTimeline:!1,applicationCache:!1,ApplicationCache:!1,ApplicationCacheErrorEvent:!1,atob:!1,Attr:!1,Audio:!1,AudioBuffer:!1,AudioBufferSourceNode:!1,AudioContext:!1,AudioDestinationNode:!1,AudioListener:!1,AudioNode:!1,AudioParam:!1,AudioProcessingEvent:!1,AutocompleteErrorEvent:!1,BarProp:!1,BatteryManager:!1,BeforeUnloadEvent:!1,BiquadFilterNode:!1,Blob:!1,blur:!1,btoa:!1,Cache:!1,caches:!1,CacheStorage:!1,cancelAnimationFrame:!1,cancelIdleCallback:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CDATASection:!1,ChannelMergerNode:!1,ChannelSplitterNode:!1,CharacterData:!1,clearInterval:!1,clearTimeout:!1,clientInformation:!1,ClientRect:!1,ClientRectList:!1,ClipboardEvent:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,ConvolverNode:!1,createImageBitmap:!1,Credential:!1,CredentialsContainer:!1,crypto:!1,Crypto:!1,CryptoKey:!1,CSS:!1,CSSAnimation:!1,CSSFontFaceRule:!1,CSSImportRule:!1,CSSKeyframeRule:!1,CSSKeyframesRule:!1,CSSMediaRule:!1,CSSPageRule:!1,CSSRule:!1,CSSRuleList:!1,CSSStyleDeclaration:!1,CSSStyleRule:!1,CSSStyleSheet:!1,CSSSupportsRule:!1,CSSTransition:!1,CSSUnknownRule:!1,CSSViewportRule:!1,customElements:!1,CustomEvent:!1,DataTransfer:!1,DataTransferItem:!1,DataTransferItemList:!1,Debug:!1,defaultStatus:!1,defaultstatus:!1,DelayNode:!1,DeviceMotionEvent:!1,DeviceOrientationEvent:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DocumentTimeline:!1,DocumentType:!1,DOMError:!1,DOMException:!1,DOMImplementation:!1,DOMParser:!1,DOMSettableTokenList:!1,DOMStringList:!1,DOMStringMap:!1,DOMTokenList:!1,DragEvent:!1,DynamicsCompressorNode:!1,Element:!1,ElementTimeControl:!1,ErrorEvent:!1,event:!1,Event:!1,EventSource:!1,EventTarget:!1,external:!1,FederatedCredential:!1,fetch:!1,File:!1,FileError:!1,FileList:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FontFace:!1,FormData:!1,frameElement:!1,frames:!1,GainNode:!1,Gamepad:!1,GamepadButton:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,Headers:!1,history:!1,History:!1,HTMLAllCollection:!1,HTMLAnchorElement:!1,HTMLAppletElement:!1,HTMLAreaElement:!1,HTMLAudioElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLContentElement:!1,HTMLDataListElement:!1,HTMLDetailsElement:!1,HTMLDialogElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLDocument:!1,HTMLElement:!1,HTMLEmbedElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormControlsCollection:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLKeygenElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMarqueeElement:!1,HTMLMediaElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLMeterElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLOptionsCollection:!1,HTMLOutputElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPictureElement:!1,HTMLPreElement:!1,HTMLProgressElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLShadowElement:!1,HTMLSourceElement:!1,HTMLSpanElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLTrackElement:!1,HTMLUListElement:!1,HTMLUnknownElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBEnvironment:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,Image:!1,ImageBitmap:!1,ImageData:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,InputMethodContext:!1,IntersectionObserver:!1,IntersectionObserverEntry:!1,Intl:!1,KeyboardEvent:!1,KeyframeEffect:!1,KeyframeEffectReadOnly:!1,length:!1,localStorage:!1,location:!1,Location:!1,locationbar:!1,matchMedia:!1,MediaElementAudioSourceNode:!1,MediaEncryptedEvent:!1,MediaError:!1,MediaKeyError:!1,MediaKeyEvent:!1,MediaKeyMessageEvent:!1,MediaKeys:!1,MediaKeySession:!1,MediaKeyStatusMap:!1,MediaKeySystemAccess:!1,MediaList:!1,MediaQueryList:!1,MediaQueryListEvent:!1,MediaSource:!1,MediaRecorder:!1,MediaStream:!1,MediaStreamAudioDestinationNode:!1,MediaStreamAudioSourceNode:!1,MediaStreamEvent:!1,MediaStreamTrack:!1,menubar:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MIDIAccess:!1,MIDIConnectionEvent:!1,MIDIInput:!1,MIDIInputMap:!1,MIDIMessageEvent:!1,MIDIOutput:!1,MIDIOutputMap:!1,MIDIPort:!1,MimeType:!1,MimeTypeArray:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationEvent:!1,MutationObserver:!1,MutationRecord:!1,name:!1,NamedNodeMap:!1,navigator:!1,Navigator:!1,Node:!1,NodeFilter:!1,NodeIterator:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,OfflineAudioContext:!1,offscreenBuffering:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,opera:!1,Option:!1,OscillatorNode:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,PasswordCredential:!1,Path2D:!1,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,PeriodicWave:!1,Permissions:!1,PermissionStatus:!1,personalbar:!1,Plugin:!1,PluginArray:!1,PopStateEvent:!1,postMessage:!1,print:!1,ProcessingInstruction:!1,ProgressEvent:!1,PromiseRejectionEvent:!1,prompt:!1,PushManager:!1,PushSubscription:!1,RadioNodeList:!1,Range:!1,ReadableByteStream:!1,ReadableStream:!1,removeEventListener:!1,Request:!1,requestAnimationFrame:!1,requestIdleCallback:!1,resizeBy:!1,resizeTo:!1,Response:!1,RTCIceCandidate:!1,RTCSessionDescription:!1,RTCPeerConnection:!1,screen:!1,Screen:!1,screenLeft:!1,ScreenOrientation:!1,screenTop:!1,screenX:!1,screenY:!1,ScriptProcessorNode:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,SecurityPolicyViolationEvent:!1,Selection:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerRegistration:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,ShadowRoot:!1,SharedKeyframeList:!1,SharedWorker:!1,showModalDialog:!1,SiteBoundCredential:!1,speechSynthesis:!1,SpeechSynthesisEvent:!1,SpeechSynthesisUtterance:!1,status:!1,statusbar:!1,stop:!1,Storage:!1,StorageEvent:!1,styleMedia:!1,StyleSheet:!1,StyleSheetList:!1,SubtleCrypto:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCSSRule:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDiscardElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGEvent:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEDropShadowElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGeometryElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGGraphicsElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGLocatable:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformable:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGURIReference:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,SVGZoomAndPan:!1,SVGZoomEvent:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TextEvent:!1,TextMetrics:!1,TextTrack:!1,TextTrackCue:!1,TextTrackCueList:!1,TextTrackList:!1,TimeEvent:!1,TimeRanges:!1,toolbar:!1,top:!1,Touch:!1,TouchEvent:!1,TouchList:!1,TrackEvent:!1,TransitionEvent:!1,TreeWalker:!1,UIEvent:!1,URL:!1,URLSearchParams:!1,ValidityState:!1,VTTCue:!1,WaveShaperNode:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLDocument:!1,XMLHttpRequest:!1,XMLHttpRequestEventTarget:!1,XMLHttpRequestProgressEvent:!1,XMLHttpRequestUpload:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1,XSLTProcessor:!1},worker:{applicationCache:!1,atob:!1,Blob:!1,BroadcastChannel:!1,btoa:!1,Cache:!1,caches:!1,clearInterval:!1,clearTimeout:!1,close:!0,console:!1,fetch:!1,FileReaderSync:!1,FormData:!1,Headers:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,ImageData:!1,importScripts:!0,indexedDB:!1,location:!1,MessageChannel:!1,MessagePort:!1,name:!1,navigator:!1,Notification:!1,onclose:!0,onconnect:!0,onerror:!0,onlanguagechange:!0,onmessage:!0,onoffline:!0,ononline:!0,onrejectionhandled:!0,onunhandledrejection:!0,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,postMessage:!0,Promise:!1,Request:!1,Response:!1,self:!0,ServiceWorkerRegistration:!1,setInterval:!1,setTimeout:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1,WebSocket:!1,Worker:!1,XMLHttpRequest:!1},node:{__dirname:!1,__filename:!1,arguments:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,Intl:!1,module:!1,process:!1,require:!1,root:!1,setImmediate:!1,setInterval:!1,setTimeout:!1},commonjs:{exports:!0,module:!1,require:!1,global:!1},amd:{define:!1,require:!1},mocha:{after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,mocha:!1,run:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},jasmine:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,spyOnProperty:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},jest:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,check:!1,describe:!1,expect:!1,gen:!1,it:!1,fdescribe:!1,fit:!1,jest:!1,pit:!1,require:!1,test:!1,xdescribe:!1,xit:!1,xtest:!1},qunit:{asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notOk:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,throws:!1},phantomjs:{console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},couch:{emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},rhino:{defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},nashorn:{__DIR__:!1,__FILE__:!1,__LINE__:!1,com:!1,edu:!1,exit:!1,Java:!1,java:!1,javafx:!1,JavaImporter:!1,javax:!1,JSAdapter:!1,load:!1,loadWithNewGlobal:!1,org:!1,Packages:!1,print:!1,quit:!1},wsh:{ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},jquery:{$:!1,jQuery:!1},yui:{Y:!1,YUI:!1,YUI_config:!1},shelljs:{cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ls:!1,ln:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,set:!1,target:!1,tempdir:!1,test:!1,touch:!1,which:!1},prototypejs:{$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},meteor:{$:!1,_:!1,Accounts:!1,AccountsClient:!1,AccountsServer:!1,AccountsCommon:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPServer:!1,DDPRateLimiter:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,ServiceConfiguration:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},mongo:{_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,ISODate:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,NumberInt:!1,NumberLong:!1,ObjectId:!1,PlanCache:!1,print:!1,printjson:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1},applescript:{$:!1,Application:!1,Automation:!1,console:!1,delay:!1,Library:!1,ObjC:!1,ObjectSpecifier:!1,Path:!1,Progress:!1,Ref:!1},serviceworker:{caches:!1,Cache:!1,CacheStorage:!1,Client:!1,clients:!1,Clients:!1,ExtendableEvent:!1,ExtendableMessageEvent:!1,FetchEvent:!1,importScripts:!1,registration:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerGlobalScope:!1,ServiceWorkerMessageEvent:!1,ServiceWorkerRegistration:!1,skipWaiting:!1,WindowClient:!1},atomtest:{advanceClock:!1,fakeClearInterval:!1,fakeClearTimeout:!1,fakeSetInterval:!1,fakeSetTimeout:!1,resetTimeouts:!1,waitsForPromise:!1},embertest:{andThen:!1,click:!1,currentPath:!1,currentRouteName:!1,currentURL:!1,fillIn:!1,find:!1,findWithAssert:!1,keyEvent:!1,pauseTest:!1,resumeTest:!1,triggerEvent:!1,visit:!1},protractor:{$:!1,$$:!1,browser:!1,By:!1,by:!1,DartObject:!1,element:!1,protractor:!1},"shared-node-browser":{clearInterval:!1,clearTimeout:!1,console:!1,setInterval:!1,setTimeout:!1},webextensions:{browser:!1,chrome:!1,opr:!1},greasemonkey:{GM_addStyle:!1,GM_deleteValue:!1,GM_getResourceText:!1,GM_getResourceURL:!1,GM_getValue:!1,GM_info:!1,GM_listValues:!1,GM_log:!1,GM_openInTab:!1,GM_registerMenuCommand:!1,GM_setClipboard:!1,GM_setValue:!1,GM_xmlhttpRequest:!1,unsafeWindow:!1}}},function(e,t){e.exports={75:8490,83:383,107:8490,115:383,181:924,197:8491,383:83,452:453,453:452,455:456,456:455,458:459,459:458,497:498,498:497,837:8126,914:976,917:1013,920:1012,921:8126,922:1008,924:181,928:982,929:1009,931:962,934:981,937:8486,962:931,976:914,977:1012,981:934,982:928,1008:922,1009:929,1012:[920,977],1013:917,7776:7835,7835:7776,8126:[837,921],8486:937,8490:75,8491:197,66560:66600,66561:66601,66562:66602,66563:66603,66564:66604,66565:66605,66566:66606,66567:66607,66568:66608,66569:66609,66570:66610,66571:66611,66572:66612,66573:66613,66574:66614,66575:66615,66576:66616,66577:66617,66578:66618,66579:66619,66580:66620,66581:66621,66582:66622,66583:66623,66584:66624,66585:66625,66586:66626,66587:66627,66588:66628,66589:66629,66590:66630,66591:66631,66592:66632,66593:66633,66594:66634,66595:66635,66596:66636,66597:66637,66598:66638,66599:66639,66600:66560,66601:66561,66602:66562,66603:66563,66604:66564,66605:66565,66606:66566,66607:66567,66608:66568,66609:66569,66610:66570,66611:66571,66612:66572,66613:66573,66614:66574,66615:66575,66616:66576,66617:66577,66618:66578,66619:66579,66620:66580,66621:66581,66622:66582,66623:66583,66624:66584,66625:66585,66626:66586,66627:66587,66628:66588,66629:66589,66630:66590,66631:66591,66632:66592,66633:66593,66634:66594,66635:66595,66636:66596,66637:66597,66638:66598,66639:66599,68736:68800,68737:68801,68738:68802,68739:68803,68740:68804,68741:68805,68742:68806,68743:68807,68744:68808,68745:68809,68746:68810,68747:68811,68748:68812,68749:68813,68750:68814,68751:68815,68752:68816,68753:68817,68754:68818,68755:68819,68756:68820,68757:68821,68758:68822,68759:68823,68760:68824,68761:68825,68762:68826,68763:68827,68764:68828,68765:68829,68766:68830,68767:68831,68768:68832,68769:68833,68770:68834,68771:68835,68772:68836,68773:68837,68774:68838,68775:68839,68776:68840,68777:68841,68778:68842,68779:68843,68780:68844,68781:68845,68782:68846,68783:68847,68784:68848,68785:68849,68786:68850,68800:68736,68801:68737,68802:68738,68803:68739,68804:68740,68805:68741,68806:68742,68807:68743,68808:68744,68809:68745,68810:68746,68811:68747,68812:68748,68813:68749,68814:68750,68815:68751,68816:68752,68817:68753,68818:68754,68819:68755,68820:68756,68821:68757,68822:68758,68823:68759,68824:68760,68825:68761,68826:68762,68827:68763,68828:68764,68829:68765,68830:68766,68831:68767,68832:68768,68833:68769,68834:68770,68835:68771,68836:68772,68837:68773,68838:68774,68839:68775,68840:68776,68841:68777,68842:68778,68843:68779,68844:68780,68845:68781,68846:68782,68847:68783,68848:68784,68849:68785,68850:68786,71840:71872,71841:71873,71842:71874,71843:71875,71844:71876,71845:71877,71846:71878,71847:71879,71848:71880,71849:71881,71850:71882,71851:71883,71852:71884,71853:71885,71854:71886,71855:71887,71856:71888,71857:71889,71858:71890,71859:71891,71860:71892,71861:71893,71862:71894,71863:71895,71864:71896,71865:71897,71866:71898,71867:71899,71868:71900,71869:71901,71870:71902,71871:71903,71872:71840,71873:71841,71874:71842,71875:71843,71876:71844,71877:71845,71878:71846,71879:71847,71880:71848,71881:71849,71882:71850,71883:71851,71884:71852,71885:71853,71886:71854,71887:71855,71888:71856,71889:71857,71890:71858,71891:71859,71892:71860,71893:71861,71894:71862,71895:71863,71896:71864,71897:71865,71898:71866,71899:71867,71900:71868,71901:71869,71902:71870,71903:71871}}]))});let mouseoverTimer,lastTouchTimestamp;const prefetches=new Set,prefetchElement=document.createElement("link"),isSupported=prefetchElement.relList&&prefetchElement.relList.supports&&prefetchElement.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype,allowQueryString="instantAllowQueryString"in document.body.dataset,allowExternalLinks="instantAllowExternalLinks"in document.body.dataset,useWhitelist="instantWhitelist"in document.body.dataset,mousedownShortcut="instantMousedownShortcut"in document.body.dataset,DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION=1111;let delayOnHover=65,useMousedown=!1,useMousedownOnly=!1,useViewport=!1;if("instantIntensity"in document.body.dataset){const e=document.body.dataset.instantIntensity;if("mousedown"==e.substr(0,"mousedown".length))useMousedown=!0,"mousedown-only"==e&&(useMousedownOnly=!0);else if("viewport"==e.substr(0,"viewport".length))navigator.connection&&(navigator.connection.saveData||navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g"))||("viewport"==e?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(useViewport=!0):"viewport-all"==e&&(useViewport=!0));else{const t=parseInt(e);isNaN(t)||(delayOnHover=t)}}if(isSupported){const e={capture:!0,passive:!0};if(useMousedownOnly||document.addEventListener("touchstart",touchstartListener,e),useMousedown?mousedownShortcut||document.addEventListener("mousedown",mousedownListener,e):document.addEventListener("mouseover",mouseoverListener,e),mousedownShortcut&&document.addEventListener("mousedown",mousedownShortcutListener,e),useViewport){let e;(e=window.requestIdleCallback?e=>{requestIdleCallback(e,{timeout:1500})}:e=>{e()})(()=>{const e=new IntersectionObserver(t=>{t.forEach(t=>{if(t.isIntersecting){const n=t.target;e.unobserve(n),preload(n.href)}})});document.querySelectorAll("a").forEach(t=>{isPreloadable(t)&&e.observe(t)})})}}function touchstartListener(e){lastTouchTimestamp=performance.now();const t=e.target.closest("a");isPreloadable(t)&&preload(t.href)}function mouseoverListener(e){if(performance.now()-lastTouchTimestamp<DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION)return;const t=e.target.closest("a");isPreloadable(t)&&(t.addEventListener("mouseout",mouseoutListener,{passive:!0}),mouseoverTimer=setTimeout(()=>{preload(t.href),mouseoverTimer=void 0},delayOnHover))}function mousedownListener(e){const t=e.target.closest("a");isPreloadable(t)&&preload(t.href)}function mouseoutListener(e){e.relatedTarget&&e.target.closest("a")==e.relatedTarget.closest("a")||mouseoverTimer&&(clearTimeout(mouseoverTimer),mouseoverTimer=void 0)}function mousedownShortcutListener(e){if(performance.now()-lastTouchTimestamp<DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION)return;const t=e.target.closest("a");if(e.which>1||e.metaKey||e.ctrlKey)return;if(!t)return;t.addEventListener("click",function(e){1337!=e.detail&&e.preventDefault()},{capture:!0,passive:!1,once:!0});const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});t.dispatchEvent(n)}function isPreloadable(e){if(e&&e.href&&(!useWhitelist||"instant"in e.dataset)&&(allowExternalLinks||e.origin==location.origin||"instant"in e.dataset)&&["http:","https:"].includes(e.protocol)&&("http:"!=e.protocol||"https:"!=location.protocol)&&(allowQueryString||!e.search||"instant"in e.dataset)&&!(e.hash&&e.pathname+e.search==location.pathname+location.search||"noInstant"in e.dataset))return!0}function preload(e){if(prefetches.has(e))return;const t=document.createElement("link");t.rel="prefetch",t.href=e,document.head.appendChild(t),prefetches.add(e)}const litespeed_ui_events=["mouseover","click","keydown","wheel","touchmove","touchstart"];var urlCreator=window.URL||window.webkitURL;function litespeed_load_delayed_js_force(){console.log("[LiteSpeed] Start Load JS Delayed"),litespeed_ui_events.forEach(e=>{window.removeEventListener(e,litespeed_load_delayed_js_force,{passive:!0})}),document.querySelectorAll("iframe[data-litespeed-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-litespeed-src"))}),"loading"==document.readyState?window.addEventListener("DOMContentLoaded",litespeed_load_delayed_js):litespeed_load_delayed_js()}litespeed_ui_events.forEach(e=>{window.addEventListener(e,litespeed_load_delayed_js_force,{passive:!0})});async function litespeed_load_delayed_js(){let t=[];for(var d in document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e=>{t.push(e)}),t)await new Promise(e=>litespeed_load_one(t[d],e));document.dispatchEvent(new Event("DOMContentLiteSpeedLoaded")),window.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"))}function litespeed_load_one(t,e){console.log("[LiteSpeed] Load ",t);var d=document.createElement("script");d.addEventListener("load",e),d.addEventListener("error",e),t.getAttributeNames().forEach(e=>{"type"!=e&&d.setAttribute("data-src"==e?"src":e,t.getAttribute(e))});let a=!(d.type="text/javascript");!d.src&&t.textContent&&(d.src=litespeed_inline2src(t.textContent),a=!0),t.after(d),t.remove(),a&&e()}function litespeed_inline2src(t){try{var d=urlCreator.createObjectURL(new Blob([t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1")],{type:"text/javascript"}))}catch(e){d="data:text/javascript;base64,"+btoa(t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1"))}return d}var _litespeed_meta ;
var _litespeed_shell_interval = 3 ;// seconds
var _litespeed_shell_interval_range = [3, 60] ;
var _litespeed_shell_handle ;
var _litespeed_shell_display_handle ;
var _litespeed_crawler_url ;
var _litespeed_dots ;

(function ($) {
	'use strict' ;

	/**
	 * All of the code for your public-facing JavaScript source
	 * should reside in this file.
	 *
	 * Note: It has been assumed you will write jQuery code here, so the
	 * $ function reference has been prepared for usage within the scope
	 * of this function.
	 *
	 * This enables you to define handlers, for when the DOM is ready:
	 *
	 * $(function() {
	 *
	 * }) ;
	 *
	 * When the window is loaded:
	 *
	 * $( window ).load(function() {
	 *
	 * }) ;
	 *
	 * ...and/or other possibilities.
	 *
	 * Ideally, it is not considered best practise to attach more than a
	 * single DOM-ready or window-load handler for a particular page.
	 * Although scripts in the WordPress core, Plugins and Themes may be
	 * practising this, we should strive to set a better example in our own work.
	 */

	jQuery(document).ready(function () {
		/************** Common LiteSpeed JS **************/
		// Link confirm
		$('[data-litespeed-cfm]').on( 'click', function(event) {
			if(confirm($.trim($(this).data('litespeed-cfm')).replace(/\\n/g,"\n"))) {
				return true ;
			}
			event.preventDefault() ;
			event.stopImmediatePropagation() ;
			return false ;
		}) ;

		/************** LSWCP JS ****************/
		// page tab switch functionality
		if($('[data-litespeed-tab]').length > 0){
			// display default tab
			var litespeed_tab_current = document.cookie.replace(/(?:(?:^|.*;\s*)litespeed_tab\s*\=\s*([^;]*).*$)|^.*$/, "$1") ;
			if(window.location.hash.substr(1)) {
				litespeed_tab_current = window.location.hash.substr(1) ;
			}
			if(!litespeed_tab_current || !$('[data-litespeed-tab="'+litespeed_tab_current+'"]').length) {
				litespeed_tab_current = $('[data-litespeed-tab]').first().data('litespeed-tab') ;
			}
			litespeed_display_tab(litespeed_tab_current) ;
			// tab switch
			$('[data-litespeed-tab]').on( 'click', function(event) {
				litespeed_display_tab($(this).data('litespeed-tab')) ;
				document.cookie = 'litespeed_tab='+$(this).data('litespeed-tab') ;
				$(this).blur() ;
			}) ;
		}

		// Manage page -> purge by
		$('[name=purgeby]').on( 'change', function(event) {
			$('[data-purgeby]').hide() ;
			$('[data-purgeby='+this.value+']').show() ;
		}) ;

		/*************** crawler ******************/
		$('#litespeed-crawl-url-btn').on( 'click', function () {
			if( ! $(this).data('url') ){
				return false ;
			}
			$('.litespeed-shell').removeClass( 'litespeed-hide' ) ;
			_litespeed_dots = window.setInterval(_litespeed_loading_dots, 300) ;
			_litespeed_crawler_url = $(this).data('url') ;
			litespeed_fetch_meta() ;
			$(this).hide() ;
		}) ;

		$('#litespeed_manual_trigger').on( 'click', function(event) {
			$('#litespeed-loading-dot').before('<li>Manually Started</li>') ;
			_litespeed_shell_interval = _litespeed_shell_interval_range[0] ;
			litespeed_fetch_meta() ;
		}) ;

		/******************** Clear whm msg ********************/
		$(document).on('click', '.lscwp-whm-notice .notice-dismiss', function () {
			$.get(litespeed_data.ajax_url_dismiss_whm) ;
		});
		/******************** Clear rule conflict msg ********************/
		$(document).on('click', '.lscwp-notice-ruleconflict .notice-dismiss', function () {
			$.get(litespeed_data.ajax_url_dismiss_ruleconflict) ;
		});

		/** Accesskey **/
		$( '[litespeed-accesskey]' ).map( function() {
			var thiskey = $( this ).attr( 'litespeed-accesskey' ) ;
			$( this ).attr( 'title', 'Shortcut : ' + thiskey.toLocaleUpperCase() ) ;
			var that = this ;
			$( document ).on( 'keydown', function( e ) {
				if( $(":input:focus").length > 0 ) return ;
				if( event.metaKey ) return ;
				if( event.ctrlKey ) return ;
				if( event.altKey ) return ;
				if( event.shiftKey ) return ;
				if( litespeed_keycode( thiskey.charCodeAt( 0 ) ) ) $( that )[ 0 ].click() ;
			});
		});

		/** Lets copy one more submit button **/
		if ( $( 'input[name="LSCWP_CTRL"]' ).length > 0 ) {
			var btn = $( 'input.litespeed-duplicate-float' ) ;
			btn.clone().addClass( 'litespeed-float-submit' ).removeAttr( 'id' ).insertAfter( btn ) ;
		}
		if ( $( 'input[id="LSCWP_NONCE"]' ).length > 0 ) {
			$( 'input[id="LSCWP_NONCE"]' ).removeAttr( 'id' );
		}

		/** Promo banner **/
		$( '#litespeed-promo-done' ).on( 'click', function( event ) {
			$( '.litespeed-banner-promo-full' ).slideUp() ;
			$.get( litespeed_data.ajax_url_promo + '&done=1' ) ;
		} ) ;
		$( '#litespeed-promo-later' ).on( 'click', function( event ) {
			$( '.litespeed-banner-promo-full' ).slideUp() ;
			$.get( litespeed_data.ajax_url_promo ) ;
		} ) ;

		/**
		 * Human readable time conversation
		 * @since  3.0
		 */
		if ( $( '[data-litespeed-readable]' ).length > 0 ) {
			$( '[data-litespeed-readable]' ).each(function(index, el) {
				var that = this ;
				var $input = $( this ).siblings( 'input[type="text"]' ) ;

				var txt = litespeed_readable_time( $input.val() ) ;
				$( that ).html( txt ? '= ' + txt : '' ) ;

				$input.on( 'keyup', function(event) {
					var txt = litespeed_readable_time( $( this ).val() ) ;
					$( that ).html( txt ? '= ' + txt : '' ) ;
				});
			});
		}

		/**
		 * Get server IP
		 * @since  3.0
		 */
		$( '#litespeed_get_ip' ).on( 'click', function( e ) {
			$.ajax( {
				url: litespeed_data.ajax_url_getIP,
				dataType: 'json',
				beforeSend: function ( xhr ) {
					xhr.setRequestHeader( 'X-WP-Nonce', litespeed_data.nonce ) ;
				},
				success: function( data ) {
					console.log( '[litespeed] get server IP response: ' + data );
					$( '#litespeed_server_ip' ).html( data ) ;
				}
			} ) ;
		} ) ;

		/**
		 * Freeze or melt a specific crawler
		 * @since  4.3
		 */
		if ( $( '.litespeed-toggle' ).length > 0 ) {
			$( '.litespeed-toggle' ).on( 'click', function( e ) {
				var crawler_id = $( this ).attr( "data-litespeed_crawler_id" );
				var crawler_id = Number( crawler_id.split('-').pop() );
				var that = this;
				$.ajax( {
					url: litespeed_data.ajax_url_crawler_switch,
					dataType: 'json',
					method: 'POST',
					cache: false,
					data:{ crawler_id: crawler_id },
					beforeSend: function ( xhr ) {
						xhr.setRequestHeader( 'X-WP-Nonce', litespeed_data.nonce ) ;
					},
					success: function( data ) {
						$( that ).toggleClass( 'litespeed-toggle-btn-default litespeed-toggleoff' , data == 0 ).toggleClass( 'litespeed-toggle-btn-primary' , data == 1 );
						console.log( 'litespeed-crawler-ajax: change Activate option' );
					},
					error: function( xhr, error ) {
						console.log( xhr );
	      				console.log( error );
						console.log( 'litespeed-crawler-ajax: option failed to save due to some error' );
					}
				} ) ;
			} ) ;
		}

		/**
		 * Click only once
		 */
		if ( $( '[data-litespeed-onlyonce]' ).length > 0 ) {
			$( '[data-litespeed-onlyonce]' ).on( 'click', function ( e ) {
				if ( $( this ).hasClass( 'disabled' ) ) {
					e.preventDefault();
				}
				$( this ).addClass( 'disabled' );
			} );
		}
	}) ;
})(jQuery) ;

/**
 * Plural handler
 */
function litespeed_plural( $num, $txt )
{
	if ( $num > 1 ) return $num + ' ' + $txt + 's' ;

	return $num + ' ' + $txt ;
}

/**
 * Convert seconds to readable time
 */
function litespeed_readable_time( seconds )
{
	if ( seconds < 60 ) {
		return '' ;
	}

	var second = Math.floor( seconds % 60 ) ;
	var minute = Math.floor( ( seconds / 60 ) % 60 ) ;
	var hour = Math.floor( ( seconds / 3600 ) % 24 ) ;
	var day = Math.floor( ( seconds / 3600 / 24 ) % 7 ) ;
	var week = Math.floor( seconds / 3600 / 24 / 7 ) ;

	var str = '' ;
	if ( week ) str += ' ' + litespeed_plural( week, 'week' ) ;
	if ( day ) str += ' ' + litespeed_plural( day, 'day' ) ;
	if ( hour ) str += ' ' + litespeed_plural( hour, 'hour' ) ;
	if ( minute ) str += ' ' + litespeed_plural( minute, 'minute' ) ;
	if ( second ) str += ' ' + litespeed_plural( second, 'second' ) ;

	return str ;
}

/**
 * Trigger a click event on an element
 * @since  1.8
 */
function litespeed_trigger_click( selector )
{
	jQuery( selector ).trigger( 'click' ) ;
}

function litespeed_keycode( num ) {
	var num = num || 13 ;
	var code = window.event ? event.keyCode : event.which ;
	if( num == code ) return true ;
	return false ;
}

function litespeed_display_tab(tab) {
	jQuery('[data-litespeed-tab]').removeClass('nav-tab-active') ;
	jQuery('[data-litespeed-tab="'+tab+'"]').addClass('nav-tab-active') ;
	jQuery('[data-litespeed-layout]').hide() ;
	jQuery('[data-litespeed-layout="'+tab+'"]').show() ;
}

function lscwpEsiEnabled(the_checkbox, esi_ids) {
	var rdonly = the_checkbox.checked ? false : true;
	var len = esi_ids.length;
	for (var i = 0; i < len; i++) {
		var node_id = 'saved_' + esi_ids[i].getAttribute('id');
		var node_val = esi_ids[i].getAttribute('value');
		var prev = document.getElementById(node_id);
		if (rdonly === false) {
			esi_ids[i].removeAttribute('disabled');
			if (prev) {
				esi_ids[i].removeChild(prev);
			}
			continue;
		}
		esi_ids[i].setAttribute('disabled', true);
		if (prev !== null) {
			if (esi_ids[i].checked) {
				prev.setAttribute("value", node_val);
			}
			else {
				esi_ids[i].removeChild(prev);
			}
			continue;
		}
		else if (esi_ids[i].checked === false) {
			continue;
		}
		var hid = document.createElement("INPUT");
		hid.setAttribute("type", "hidden");
		hid.setAttribute("name", esi_ids[i].getAttribute('name'));
		hid.setAttribute("value", node_val);
		hid.setAttribute("id", node_id);
		esi_ids[i].appendChild(hid);
	}
}

// Append params to uri
function litespeed_append_param(uri, key, val) {
	var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i") ;
	var separator = uri.indexOf('?') !== -1 ? "&" : "?" ;
	if (uri.match(re)) {
		return uri.replace(re, '$1' + key + "=" + val + '$2') ;
	}
	else {
		return uri + separator + key + "=" + val ;
	}
}

function litespeed_pulse() {
	jQuery('#litespeed-shell-icon').animate({
		width: 27, height: 34,
		opacity: 1
	}, 700, function() {
		jQuery('#litespeed-shell-icon').animate({
			width: 23, height: 29,
			opacity: 0.5
		}, 700) ;
	}) ;
}

function litespeed_fetch_meta() {
	window.clearTimeout(_litespeed_shell_handle) ;
	jQuery('#litespeed-loading-dot').text('') ;
	jQuery.ajaxSetup({ cache: false }) ;
	jQuery.getJSON(_litespeed_crawler_url, function( meta ) {
		litespeed_pulse() ;
		var changed = false ;
		if ( meta && 'list_size' in meta ) {
			new_meta = meta.list_size + ' ' + meta.file_time + ' ' + meta.curr_crawler + ' ' + meta.last_pos + ' ' + meta.last_count + ' ' + meta.last_start_time + ' ' + meta.is_running ;
			if ( new_meta != _litespeed_meta ) {
				_litespeed_meta = new_meta ;
				changed = true ;
				string = _litespeed_build_meta(meta);
				jQuery('#litespeed-loading-dot').before(string) ;
				// remove first log elements
				log_length = jQuery('.litespeed-shell-body li').length;
				if ( log_length > 50) {
					jQuery('.litespeed-shell-body li:lt(' + (log_length - 50) + ')').remove();
				}
				// scroll to end
				jQuery('.litespeed-shell-body').stop().animate({
					scrollTop: jQuery('.litespeed-shell-body')[0].scrollHeight
				}, 800) ;
			}

			// dynamic adjust the interval length
			_litespeed_adjust_interval(changed) ;
		}
		// display interval counting
		litespeed_display_interval_reset() ;
		_litespeed_shell_handle = window.setTimeout(_litespeed_dynamic_timeout, _litespeed_shell_interval*1000) ;
	}) ;
}

/**
 * Dynamic adjust interval
 */
function _litespeed_adjust_interval(changed) {
	if ( changed ) {
		_litespeed_shell_interval -= Math.ceil(_litespeed_shell_interval/2) ;
	}
	else{
		_litespeed_shell_interval ++ ;
	}

	if(_litespeed_shell_interval < _litespeed_shell_interval_range[0]) {
		_litespeed_shell_interval = _litespeed_shell_interval_range[0] ;
	}
	if(_litespeed_shell_interval > _litespeed_shell_interval_range[1]) {
		_litespeed_shell_interval = _litespeed_shell_interval_range[1] ;
	}
}

function _litespeed_build_meta(meta) {
	var string = '<li>' + litespeed_date(meta.last_update_time) +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size: ' + meta.list_size +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Crawler: #' + (meta.curr_crawler*1+1) +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position: ' + (meta.last_pos*1+1) +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Threads: ' + meta.last_count +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status: '
				 ;
	if ( meta.is_running ) {
		string += 'crawling, ' + meta.last_status;
	}
	else{
		string += meta.end_reason ? meta.end_reason : '-' ;
	}
	string += '</li>' ;
	return string;
}

function _litespeed_dynamic_timeout() {
	litespeed_fetch_meta() ;
}

function litespeed_display_interval_reset() {
	window.clearInterval(_litespeed_shell_display_handle) ;
	jQuery('.litespeed-shell-header-bar').data('num', _litespeed_shell_interval) ;
	_litespeed_shell_display_handle = window.setInterval(_litespeed_display_interval, 1000) ;

	jQuery('.litespeed-shell-header-bar').stop().animate({width: '100%'}, 500, function(){
		jQuery('.litespeed-shell-header-bar').css('width', '0%') ;
	}) ;
}

function _litespeed_display_interval() {
	var num = jQuery('.litespeed-shell-header-bar').data('num') ;
	jQuery('.litespeed-shell-header-bar').stop().animate({width: litespeed_get_percent(num, _litespeed_shell_interval) + '%'}, 1000) ;
	if(num > 0) num-- ;
	if(num < 0) num = 0 ;
	jQuery('.litespeed-shell-header-bar').data('num', num) ;
}

function litespeed_get_percent(num1, num2){
	num1 = num1 * 1;
	num2 = num2 * 1;
	num = (num2 - num1) / num2;
	return num * 100;
}

function _litespeed_loading_dots() {
	jQuery('#litespeed-loading-dot').append('.') ;
}

function litespeed_date(timestamp) {
	var a = new Date(timestamp * 1000) ;
	var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] ;
	var year = a.getFullYear() ;
	var month = months[a.getMonth()] ;
	var date = litespeed_add_zero(a.getDate()) ;
	var hour = litespeed_add_zero(a.getHours()) ;
	var min = litespeed_add_zero(a.getMinutes()) ;
	var sec = litespeed_add_zero(a.getSeconds()) ;
	var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec  ;
	return time ;
}

function litespeed_add_zero(i) {
	if (i < 10) {
		i = "0" + i;
	}
	return i;
}
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
!function(a){"use strict";var b=function(b,c,d){function e(a){return h.body?a():void setTimeout(function(){e(a)})}function f(){i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"}var g,h=a.document,i=h.createElement("link");if(c)g=c;else{var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]}var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){g.parentNode.insertBefore(i,c?g:g.nextSibling)});var l=function(a){for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){l(a)})};return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);
/*! loadCSS rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */
!function(a){if(a.loadCSS){var b=loadCSS.relpreload={};if(b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}},b.poly=function(){for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)}},!b.support()){b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){b.poly(),a.clearInterval(c)}),a.attachEvent&&a.attachEvent("onload",function(){a.clearInterval(c)})}}}(this);/**
 * Crawler simulation module
 * @author Hai Zheng
 */
class CrawlerSimulate extends React.Component {
	constructor( props ) {
		super( props );
		this.state = {
			list: props.list
		};

		this.handleInputChange = this.handleInputChange.bind( this );
		this.delRow = this.delRow.bind( this );
		this.addNew = this.addNew.bind( this );
	}

	handleInputChange( e, index ) {
		const target = e.target;
		const value = target.type === 'checkbox' ? target.checked : target.value;
		const list = this.state.list;
		list[ index ][ target.dataset.type ] = value;

		this.setState( {
		  list: list
		} );
	}

	delRow( index ) {
		const data = this.state.list;
		data.splice( index, 1 );
		this.setState( { list: data } );
	}

	addNew() {
		const list = this.state.list;
		list.push( { name: '', vals: '' } );
		this.setState( { list: list } );
	}

	render() {
		return (
			<React.Fragment>
			{ this.state.list.map( (item, i) => (
				<SimulationBlock item={item} key={i} index={i} handleInputChange={this.handleInputChange} delRow={this.delRow} />
			) ) }

				<p>
					<button type="button" className="button button-link litespeed-form-action litespeed-link-with-icon" onClick={this.addNew}>
						<span className="dashicons dashicons-plus-alt"></span>{litespeed_data[ 'lang' ][ 'add_cookie_simulation_row' ]}
					</button>
				</p>
			</React.Fragment>
		);
	}
}

// { name: '', vals: '' }
class SimulationBlock extends React.Component {
	constructor( props ) {
		super( props );

		this.handleInputChange = this.handleInputChange.bind( this );
		this.delRow = this.delRow.bind( this );
	}

	handleInputChange( e ) {
		this.props.handleInputChange( e, this.props.index );
	}

	delRow() {
		this.props.delRow( this.props.index );
	}

	render() {
		const item = this.props.item;
		return (
			<div className="litespeed-block">
				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">{ litespeed_data[ 'lang' ][ 'cookie_name' ] }</label>
					<input type="text" name={ litespeed_data[ 'ids' ][ 'crawler_cookies' ] + '[name][]' } className="regular-text" value={item.name} data-type="name" onChange={this.handleInputChange} />
				</div>
				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">{ litespeed_data[ 'lang' ][ 'cookie_values' ] }</label>
					<textarea rows="5" cols="40" name={ litespeed_data[ 'ids' ][ 'crawler_cookies' ] + '[vals][]' } placeholder={ litespeed_data[ 'lang' ][ 'one_per_line' ] } value={ Array.isArray(item.vals) ? item.vals.join("\n") : item.vals } data-type="vals" onChange={this.handleInputChange} />
				</div>
				<div className="litespeed-col-auto">
					<button type="button" className="button button-link litespeed-collection-button litespeed-danger" onClick={this.delRow}>
						<span className="dashicons dashicons-dismiss"></span>
						<span className="screen-reader-text">{ litespeed_data[ 'lang' ][ 'remove_cookie_simulation' ] }</span>
					</button>
				</div>
			</div>

		);
	}
}const litespeed_ui_events = [
	'mouseover',
	'click',
	'keydown',
	'wheel',
	"touchmove",
	"touchstart",
];
var urlCreator = window.URL || window.webkitURL;

// const litespeed_js_delay_timer = setTimeout( litespeed_load_delayed_js, 70 );

litespeed_ui_events.forEach( e => {
	window.addEventListener(e, litespeed_load_delayed_js_force, {passive: true}); // Use passive to save GPU in interaction
} );

function litespeed_load_delayed_js_force() {
	console.log( '[LiteSpeed] Start Load JS Delayed' );
	// clearTimeout( litespeed_js_delay_timer );
	litespeed_ui_events.forEach( e => {
		window.removeEventListener(e, litespeed_load_delayed_js_force, {passive: true});
	} );

	document.querySelectorAll('iframe[data-litespeed-src]').forEach( e => {
		e.setAttribute('src', e.getAttribute('data-litespeed-src'));
	} );

	// Prevent early loading
	if ( document.readyState == 'loading' ) {
		window.addEventListener('DOMContentLoaded', litespeed_load_delayed_js);
	}
	else {
		litespeed_load_delayed_js();
	}
}

async function litespeed_load_delayed_js() {
	let js_list = [];
	// Prepare all JS
	document.querySelectorAll('script[type="litespeed/javascript"]').forEach( e => {
		js_list.push(e);
	} );

	// Load by sequence
	for ( let script in js_list ) {
		await new Promise(resolve => litespeed_load_one(js_list[script], resolve));
	}

	// Simulate doc.loaded
	document.dispatchEvent(new Event('DOMContentLiteSpeedLoaded'));
	window.dispatchEvent(new Event('DOMContentLiteSpeedLoaded'));
}

/**
 * Load one JS synchronously
 */
function litespeed_load_one(e, resolve) {
	console.log('[LiteSpeed] Load ', e);

	var e2 = document.createElement('script');

	e2.addEventListener('load', resolve);
	e2.addEventListener('error', resolve);

	var attrs = e.getAttributeNames();
	attrs.forEach( aname => {
		if ( aname == 'type' ) return;
		e2.setAttribute(aname == 'data-src' ? 'src' : aname, e.getAttribute(aname));
	} );
	e2.type = 'text/javascript';

	let is_inline = false;
	// Inline script
	if ( ! e2.src && e.textContent ) {
		e2.src = litespeed_inline2src(e.textContent);
		// e2.textContent = e.textContent;
		is_inline = true;
	}

	// Deploy to dom
	e.after(e2);
	e.remove();
	// document.head.appendChild(e2);
	// e2 = e.cloneNode(true)
	// e2.setAttribute( 'type', 'text/javascript' );
	// e2.setAttribute( 'data-delayed', '1' );

	// Kick off resolve for inline
	if ( is_inline ) resolve();
}

/**
 * Prepare inline script
 */
function litespeed_inline2src( data ) {
	try {
		var src = urlCreator.createObjectURL( new Blob( [ data.replace( /^(?:<!--)?(.*?)(?:-->)?$/gm, "$1" ) ], {
			type: "text/javascript"
		}));
	} catch (e) {
		var src = "data:text/javascript;base64," + btoa( data.replace( /^(?:<!--)?(.*?)(?:-->)?$/gm, "$1" ) );
	}

	return src;
}
!function(a){"use strict";var b=function(b,c,d){function e(a){return h.body?a():void setTimeout(function(){e(a)})}function f(){i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"}var g,h=a.document,i=h.createElement("link");if(c)g=c;else{var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]}var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){g.parentNode.insertBefore(i,c?g:g.nextSibling)});var l=function(a){for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){l(a)})};return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);!function(a){if(a.loadCSS){var b=loadCSS.relpreload={};if(b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}},b.poly=function(){for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)}},!b.support()){b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){b.poly(),a.clearInterval(c)}),a.attachEvent&&a.attachEvent("onload",function(){a.clearInterval(c)})}}}(this);!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function i(t){return e({},it,t)}function o(t,e){var n,a="LazyLoad::Initialized",i=new t(e);try{n=new CustomEvent(a,{detail:{instance:i}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent(a,!1,!1,{instance:i})}window.dispatchEvent(n)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,bt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,bt,e)}function r(t){return s(t,null),0}function u(t){return null===c(t)}function d(t){return c(t)===vt}function f(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function _(t,e){nt?t.classList.add(e):t.className+=(t.className?" ":"")+e}function v(t,e){nt?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function b(t,e){!e||(e=e._observer)&&e.unobserve(t)}function p(t,e){t&&(t.loadingCount+=e)}function h(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function m(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function E(t){return!!t[st]}function I(t){return t[st]}function y(t){return delete t[st]}function A(e,t){var n;E(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[st]=n)}function k(a,t){var i;E(a)&&(i=I(a),t.forEach(function(t){var e,n;e=a,(t=i[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(t,e,n){_(t,e.class_loading),s(t,ut),n&&(p(n,1),f(e.callback_loading,t,n))}function w(t,e,n){n&&t.setAttribute(e,n)}function x(t,e){w(t,ct,l(t,e.data_sizes)),w(t,rt,l(t,e.data_srcset)),w(t,ot,l(t,e.data_src))}function O(t,e,n){var a=l(t,e.data_bg_multi),i=l(t,e.data_bg_multi_hidpi);(a=at&&i?i:a)&&(t.style.backgroundImage=a,n=n,_(t=t,(e=e).class_applied),s(t,ft),n&&(e.unobserve_completed&&b(t,e),f(e.callback_applied,t,n)))}function N(t,e){!e||0<e.loadingCount||0<e.toLoadCount||f(t.callback_finish,e)}function C(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function M(t){return!!t.llEvLisnrs}function z(t){if(M(t)){var e,n,a=t.llEvLisnrs;for(e in a){var i=a[e];n=e,i=i,t.removeEventListener(n,i)}delete t.llEvLisnrs}}function R(t,e,n){var a;delete t.llTempImage,p(n,-1),(a=n)&&--a.toLoadCount,v(t,e.class_loading),e.unobserve_completed&&b(t,n)}function T(o,r,c){var l=g(o)||o;M(l)||function(t,e,n){M(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";C(t,a,e),C(t,"error",n)}(l,function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_loaded),s(e,dt),f(n.callback_loaded,e,a),i||N(n,a),z(l)},function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_error),s(e,_t),f(n.callback_error,e,a),i||N(n,a),z(l)})}function G(t,e,n){var a,i,o,r,c;t.llTempImage=document.createElement("IMG"),T(t,e,n),E(c=t)||(c[st]={backgroundImage:c.style.backgroundImage}),o=n,r=l(a=t,(i=e).data_bg),c=l(a,i.data_bg_hidpi),(r=at&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),L(a,i,o)),O(t,e,n)}function D(t,e,n){var a;T(t,e,n),a=e,e=n,(t=It[(n=t).tagName])&&(t(n,a),L(n,a,e))}function V(t,e,n){var a;a=t,(-1<yt.indexOf(a.tagName)?D:G)(t,e,n)}function F(t,e,n){var a;t.setAttribute("loading","lazy"),T(t,e,n),a=e,(e=It[(n=t).tagName])&&e(n,a),s(t,vt)}function j(t){t.removeAttribute(ot),t.removeAttribute(rt),t.removeAttribute(ct)}function P(t){m(t,function(t){k(t,Et)}),k(t,Et)}function S(t){var e;(e=At[t.tagName])?e(t):E(e=t)&&(t=I(e),e.style.backgroundImage=t.backgroundImage)}function U(t,e){var n;S(t),n=e,u(e=t)||d(e)||(v(e,n.class_entered),v(e,n.class_exited),v(e,n.class_applied),v(e,n.class_loading),v(e,n.class_loaded),v(e,n.class_error)),r(t),y(t)}function $(t,e,n,a){var i;n.cancel_on_exit&&(c(t)!==ut||"IMG"===t.tagName&&(z(t),m(i=t,function(t){j(t)}),j(i),P(t),v(t,n.class_loading),p(a,-1),r(t),f(n.callback_cancel,t,e,a)))}function q(t,e,n,a){var i,o,r=(o=t,0<=pt.indexOf(c(o)));s(t,"entered"),_(t,n.class_entered),v(t,n.class_exited),i=t,o=a,n.unobserve_entered&&b(i,o),f(n.callback_enter,t,e,a),r||V(t,n,a)}function H(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function B(t,i,o){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?q(t.target,t,i,o):(e=t.target,n=t,a=i,t=o,void(u(e)||(_(e,a.class_exited),$(e,n,a,t),f(a.callback_exit,e,n,t))));var e,n,a})}function J(e,n){var t;et&&!H(e)&&(n._observer=new IntersectionObserver(function(t){B(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function K(t){return Array.prototype.slice.call(t)}function Q(t){return t.container.querySelectorAll(t.elements_selector)}function W(t){return c(t)===_t}function X(t,e){return e=t||Q(e),K(e).filter(u)}function Y(e,t){var n;(n=Q(e),K(n).filter(W)).forEach(function(t){v(t,e.class_error),r(t)}),t.update()}function t(t,e){var n,a,t=i(t);this._settings=t,this.loadingCount=0,J(t,this),n=t,a=this,Z&&window.addEventListener("online",function(){Y(n,a)}),this.update(e)}var Z="undefined"!=typeof window,tt=Z&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),et=Z&&"IntersectionObserver"in window,nt=Z&&"classList"in document.createElement("p"),at=Z&&1<window.devicePixelRatio,it={elements_selector:".lazy",container:tt||Z?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",rt="srcset",ct="sizes",lt="poster",st="llOriginalAttrs",ut="loading",dt="loaded",ft="applied",_t="error",vt="native",gt="data-",bt="ll-status",pt=[ut,dt,ft,_t],ht=[ot],mt=[ot,lt],Et=[ot,rt,ct],It={IMG:function(t,e){m(t,function(t){A(t,Et),x(t,e)}),A(t,Et),x(t,e)},IFRAME:function(t,e){A(t,ht),w(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){A(t,ht),w(t,ot,l(t,e.data_src))}),A(t,mt),w(t,lt,l(t,e.data_poster)),w(t,ot,l(t,e.data_src)),t.load()}},yt=["IMG","IFRAME","VIDEO"],At={IMG:P,IFRAME:function(t){k(t,ht)},VIDEO:function(t){a(t,function(t){k(t,ht)}),k(t,mt),t.load()}},kt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,i=this._settings,o=X(t,i);{if(h(this,o.length),!tt&&et)return H(i)?(e=i,n=this,o.forEach(function(t){-1!==kt.indexOf(t.tagName)&&F(t,e,n)}),void h(n,0)):(t=this._observer,i=o,t.disconnect(),a=t,void i.forEach(function(t){a.observe(t)}));this.loadAll(o)}},destroy:function(){this._observer&&this._observer.disconnect(),Q(this._settings).forEach(function(t){y(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;X(t,n).forEach(function(t){b(t,e),V(t,n,e)})},restoreAll:function(){var e=this._settings;Q(e).forEach(function(t){U(t,e)})}},t.load=function(t,e){e=i(e);V(t,e)},t.resetStatus=function(t){r(t)},Z&&function(t,e){if(e)if(e.length)for(var n,a=0;n=e[a];a+=1)o(t,n);else o(t,e)}(t,window.lazyLoadOptions),t});!function(e,t){"use strict";function a(){t.body.classList.add("litespeed_lazyloaded")}function n(){console.log("[LiteSpeed] Start Lazy Load Images"),d=new LazyLoad({elements_selector:"[data-lazyloaded]",callback_finish:a}),o=function(){d.update()},e.MutationObserver&&new MutationObserver(o).observe(t.documentElement,{childList:!0,subtree:!0,attributes:!0})}var d,o;e.addEventListener?e.addEventListener("load",n,!1):e.attachEvent("onload",n)}(window,document);(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
  typeof define === 'function' && define.amd ? define(factory) :
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.LazyLoad = factory());
}(this, (function () { 'use strict';

  function _extends() {
    _extends = Object.assign || function (target) {
      for (var i = 1; i < arguments.length; i++) {
        var source = arguments[i];

        for (var key in source) {
          if (Object.prototype.hasOwnProperty.call(source, key)) {
            target[key] = source[key];
          }
        }
      }

      return target;
    };

    return _extends.apply(this, arguments);
  }

  var runningOnBrowser = typeof window !== "undefined";
  var isBot = runningOnBrowser && !("onscroll" in window) || typeof navigator !== "undefined" && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);
  var supportsIntersectionObserver = runningOnBrowser && "IntersectionObserver" in window;
  var supportsClassList = runningOnBrowser && "classList" in document.createElement("p");
  var isHiDpi = runningOnBrowser && window.devicePixelRatio > 1;

  var defaultSettings = {
    elements_selector: ".lazy",
    container: isBot || runningOnBrowser ? document : null,
    threshold: 300,
    thresholds: null,
    data_src: "src",
    data_srcset: "srcset",
    data_sizes: "sizes",
    data_bg: "bg",
    data_bg_hidpi: "bg-hidpi",
    data_bg_multi: "bg-multi",
    data_bg_multi_hidpi: "bg-multi-hidpi",
    data_poster: "poster",
    class_applied: "applied",
    class_loading: "litespeed-loading",
    class_loaded: "litespeed-loaded", // https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lazy-load-images
    class_error: "error",
    class_entered: "entered",
    class_exited: "exited",
    unobserve_completed: true,
    unobserve_entered: false,
    cancel_on_exit: true,
    callback_enter: null,
    callback_exit: null,
    callback_applied: null,
    callback_loading: null,
    callback_loaded: null,
    callback_error: null,
    callback_finish: null,
    callback_cancel: null,
    use_native: false
  };
  var getExtendedSettings = function getExtendedSettings(customSettings) {
    return _extends({}, defaultSettings, customSettings);
  };

  /* Creates instance and notifies it through the window element */
  var createInstance = function createInstance(classObj, options) {
    var event;
    var eventString = "LazyLoad::Initialized";
    var instance = new classObj(options);

    try {
      // Works in modern browsers
      event = new CustomEvent(eventString, {
        detail: {
          instance: instance
        }
      });
    } catch (err) {
      // Works in Internet Explorer (all versions)
      event = document.createEvent("CustomEvent");
      event.initCustomEvent(eventString, false, false, {
        instance: instance
      });
    }

    window.dispatchEvent(event);
  };
  /* Auto initialization of one or more instances of lazyload, depending on the
      options passed in (plain object or an array) */


  var autoInitialize = function autoInitialize(classObj, options) {
    if (!options) {
      return;
    }

    if (!options.length) {
      // Plain object
      createInstance(classObj, options);
    } else {
      // Array of objects
      for (var i = 0, optionsItem; optionsItem = options[i]; i += 1) {
        createInstance(classObj, optionsItem);
      }
    }
  };

  var SRC = "src";
  var SRCSET = "srcset";
  var SIZES = "sizes";
  var POSTER = "poster";
  var ORIGINALS = "llOriginalAttrs";

  var statusLoading = "loading";
  var statusLoaded = "loaded";
  var statusApplied = "applied";
  var statusEntered = "entered";
  var statusError = "error";
  var statusNative = "native";

  var dataPrefix = "data-";
  var statusDataName = "ll-status";
  var getData = function getData(element, attribute) {
    return element.getAttribute(dataPrefix + attribute);
  };
  var setData = function setData(element, attribute, value) {
    var attrName = dataPrefix + attribute;

    if (value === null) {
      element.removeAttribute(attrName);
      return;
    }

    element.setAttribute(attrName, value);
  };
  var getStatus = function getStatus(element) {
    return getData(element, statusDataName);
  };
  var setStatus = function setStatus(element, status) {
    return setData(element, statusDataName, status);
  };
  var resetStatus = function resetStatus(element) {
    return setStatus(element, null);
  };
  var hasEmptyStatus = function hasEmptyStatus(element) {
    return getStatus(element) === null;
  };
  var hasStatusLoading = function hasStatusLoading(element) {
    return getStatus(element) === statusLoading;
  };
  var hasStatusError = function hasStatusError(element) {
    return getStatus(element) === statusError;
  };
  var hasStatusNative = function hasStatusNative(element) {
    return getStatus(element) === statusNative;
  };
  var statusesAfterLoading = [statusLoading, statusLoaded, statusApplied, statusError];
  var hadStartedLoading = function hadStartedLoading(element) {
    return statusesAfterLoading.indexOf(getStatus(element)) >= 0;
  };

  var safeCallback = function safeCallback(callback, arg1, arg2, arg3) {
    if (!callback) {
      return;
    }

    if (arg3 !== undefined) {
      callback(arg1, arg2, arg3);
      return;
    }

    if (arg2 !== undefined) {
      callback(arg1, arg2);
      return;
    }

    callback(arg1);
  };

  var addClass = function addClass(element, className) {
    if (supportsClassList) {
      element.classList.add(className);
      return;
    }

    element.className += (element.className ? " " : "") + className;
  };
  var removeClass = function removeClass(element, className) {
    if (supportsClassList) {
      element.classList.remove(className);
      return;
    }

    element.className = element.className.replace(new RegExp("(^|\\s+)" + className + "(\\s+|$)"), " ").replace(/^\s+/, "").replace(/\s+$/, "");
  };

  var addTempImage = function addTempImage(element) {
    element.llTempImage = document.createElement("IMG");
  };
  var deleteTempImage = function deleteTempImage(element) {
    delete element.llTempImage;
  };
  var getTempImage = function getTempImage(element) {
    return element.llTempImage;
  };

  var unobserve = function unobserve(element, instance) {
    if (!instance) return;
    var observer = instance._observer;
    if (!observer) return;
    observer.unobserve(element);
  };
  var resetObserver = function resetObserver(observer) {
    observer.disconnect();
  };
  var unobserveEntered = function unobserveEntered(element, settings, instance) {
    if (settings.unobserve_entered) unobserve(element, instance);
  };

  var updateLoadingCount = function updateLoadingCount(instance, delta) {
    if (!instance) return;
    instance.loadingCount += delta;
  };
  var decreaseToLoadCount = function decreaseToLoadCount(instance) {
    if (!instance) return;
    instance.toLoadCount -= 1;
  };
  var setToLoadCount = function setToLoadCount(instance, value) {
    if (!instance) return;
    instance.toLoadCount = value;
  };
  var isSomethingLoading = function isSomethingLoading(instance) {
    return instance.loadingCount > 0;
  };
  var haveElementsToLoad = function haveElementsToLoad(instance) {
    return instance.toLoadCount > 0;
  };

  var getSourceTags = function getSourceTags(parentTag) {
    var sourceTags = [];

    for (var i = 0, childTag; childTag = parentTag.children[i]; i += 1) {
      if (childTag.tagName === "SOURCE") {
        sourceTags.push(childTag);
      }
    }

    return sourceTags;
  };

  var forEachPictureSource = function forEachPictureSource(element, fn) {
    var parent = element.parentNode;

    if (!parent || parent.tagName !== "PICTURE") {
      return;
    }

    var sourceTags = getSourceTags(parent);
    sourceTags.forEach(fn);
  };
  var forEachVideoSource = function forEachVideoSource(element, fn) {
    var sourceTags = getSourceTags(element);
    sourceTags.forEach(fn);
  };

  var attrsSrc = [SRC];
  var attrsSrcPoster = [SRC, POSTER];
  var attrsSrcSrcsetSizes = [SRC, SRCSET, SIZES];
  var hasOriginalAttrs = function hasOriginalAttrs(element) {
    return !!element[ORIGINALS];
  };
  var getOriginalAttrs = function getOriginalAttrs(element) {
    return element[ORIGINALS];
  };
  var deleteOriginalAttrs = function deleteOriginalAttrs(element) {
    return delete element[ORIGINALS];
  }; // ## SAVE ##

  var setOriginalsObject = function setOriginalsObject(element, attributes) {
    if (hasOriginalAttrs(element)) {
      return;
    }

    var originals = {};
    attributes.forEach(function (attribute) {
      originals[attribute] = element.getAttribute(attribute);
    });
    element[ORIGINALS] = originals;
  };
  var saveOriginalBackgroundStyle = function saveOriginalBackgroundStyle(element) {
    if (hasOriginalAttrs(element)) {
      return;
    }

    element[ORIGINALS] = {
      backgroundImage: element.style.backgroundImage
    };
  }; // ## RESTORE ##

  var setOrResetAttribute = function setOrResetAttribute(element, attrName, value) {
    if (!value) {
      element.removeAttribute(attrName);
      return;
    }

    element.setAttribute(attrName, value);
  };

  var restoreOriginalAttrs = function restoreOriginalAttrs(element, attributes) {
    if (!hasOriginalAttrs(element)) {
      return;
    }

    var originals = getOriginalAttrs(element);
    attributes.forEach(function (attribute) {
      setOrResetAttribute(element, attribute, originals[attribute]);
    });
  };
  var restoreOriginalBgImage = function restoreOriginalBgImage(element) {
    if (!hasOriginalAttrs(element)) {
      return;
    }

    var originals = getOriginalAttrs(element);
    element.style.backgroundImage = originals.backgroundImage;
  };

  var manageApplied = function manageApplied(element, settings, instance) {
    addClass(element, settings.class_applied);
    setStatus(element, statusApplied); // Instance is not provided when loading is called from static class

    if (!instance) return;

    if (settings.unobserve_completed) {
      // Unobserve now because we can't do it on load
      unobserve(element, settings);
    }

    safeCallback(settings.callback_applied, element, instance);
  };
  var manageLoading = function manageLoading(element, settings, instance) {
    addClass(element, settings.class_loading);
    setStatus(element, statusLoading); // Instance is not provided when loading is called from static class

    if (!instance) return;
    updateLoadingCount(instance, +1);
    safeCallback(settings.callback_loading, element, instance);
  };
  var setAttributeIfValue = function setAttributeIfValue(element, attrName, value) {
    if (!value) {
      return;
    }

    element.setAttribute(attrName, value);
  };
  var setImageAttributes = function setImageAttributes(element, settings) {
    setAttributeIfValue(element, SIZES, getData(element, settings.data_sizes));
    setAttributeIfValue(element, SRCSET, getData(element, settings.data_srcset));
    setAttributeIfValue(element, SRC, getData(element, settings.data_src));
  };
  var setSourcesImg = function setSourcesImg(imgEl, settings) {
    forEachPictureSource(imgEl, function (sourceTag) {
      setOriginalsObject(sourceTag, attrsSrcSrcsetSizes);
      setImageAttributes(sourceTag, settings);
    });
    setOriginalsObject(imgEl, attrsSrcSrcsetSizes);
    setImageAttributes(imgEl, settings);
  };
  var setSourcesIframe = function setSourcesIframe(iframe, settings) {
    setOriginalsObject(iframe, attrsSrc);
    setAttributeIfValue(iframe, SRC, getData(iframe, settings.data_src));
  };
  var setSourcesVideo = function setSourcesVideo(videoEl, settings) {
    forEachVideoSource(videoEl, function (sourceEl) {
      setOriginalsObject(sourceEl, attrsSrc);
      setAttributeIfValue(sourceEl, SRC, getData(sourceEl, settings.data_src));
    });
    setOriginalsObject(videoEl, attrsSrcPoster);
    setAttributeIfValue(videoEl, POSTER, getData(videoEl, settings.data_poster));
    setAttributeIfValue(videoEl, SRC, getData(videoEl, settings.data_src));
    videoEl.load();
  };
  var setBackground = function setBackground(element, settings, instance) {
    var bg1xValue = getData(element, settings.data_bg);
    var bgHiDpiValue = getData(element, settings.data_bg_hidpi);
    var bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;
    if (!bgDataValue) return;
    element.style.backgroundImage = "url(\"".concat(bgDataValue, "\")");
    getTempImage(element).setAttribute(SRC, bgDataValue);
    manageLoading(element, settings, instance);
  }; // NOTE: THE TEMP IMAGE TRICK CANNOT BE DONE WITH data-multi-bg
  // BECAUSE INSIDE ITS VALUES MUST BE WRAPPED WITH URL() AND ONE OF THEM
  // COULD BE A GRADIENT BACKGROUND IMAGE

  var setMultiBackground = function setMultiBackground(element, settings, instance) {
    var bg1xValue = getData(element, settings.data_bg_multi);
    var bgHiDpiValue = getData(element, settings.data_bg_multi_hidpi);
    var bgDataValue = isHiDpi && bgHiDpiValue ? bgHiDpiValue : bg1xValue;

    if (!bgDataValue) {
      return;
    }

    element.style.backgroundImage = bgDataValue;
    manageApplied(element, settings, instance);
  };
  var setSourcesFunctions = {
    IMG: setSourcesImg,
    IFRAME: setSourcesIframe,
    VIDEO: setSourcesVideo
  };
  var setSourcesNative = function setSourcesNative(element, settings) {
    var setSourcesFunction = setSourcesFunctions[element.tagName];

    if (!setSourcesFunction) {
      return;
    }

    setSourcesFunction(element, settings);
  };
  var setSources = function setSources(element, settings, instance) {
    var setSourcesFunction = setSourcesFunctions[element.tagName];

    if (!setSourcesFunction) {
      return;
    }

    setSourcesFunction(element, settings);
    manageLoading(element, settings, instance);
  };

  var elementsWithLoadEvent = ["IMG", "IFRAME", "VIDEO"];
  var hasLoadEvent = function hasLoadEvent(element) {
    return elementsWithLoadEvent.indexOf(element.tagName) > -1;
  };
  var checkFinish = function checkFinish(settings, instance) {
    if (instance && !isSomethingLoading(instance) && !haveElementsToLoad(instance)) {
      safeCallback(settings.callback_finish, instance);
    }
  };
  var addEventListener = function addEventListener(element, eventName, handler) {
    element.addEventListener(eventName, handler);
    element.llEvLisnrs[eventName] = handler;
  };
  var removeEventListener = function removeEventListener(element, eventName, handler) {
    element.removeEventListener(eventName, handler);
  };
  var hasEventListeners = function hasEventListeners(element) {
    return !!element.llEvLisnrs;
  };
  var addEventListeners = function addEventListeners(element, loadHandler, errorHandler) {
    if (!hasEventListeners(element)) element.llEvLisnrs = {};
    var loadEventName = element.tagName === "VIDEO" ? "loadeddata" : "load";
    addEventListener(element, loadEventName, loadHandler);
    addEventListener(element, "error", errorHandler);
  };
  var removeEventListeners = function removeEventListeners(element) {
    if (!hasEventListeners(element)) {
      return;
    }

    var eventListeners = element.llEvLisnrs;

    for (var eventName in eventListeners) {
      var handler = eventListeners[eventName];
      removeEventListener(element, eventName, handler);
    }

    delete element.llEvLisnrs;
  };
  var doneHandler = function doneHandler(element, settings, instance) {
    deleteTempImage(element);
    updateLoadingCount(instance, -1);
    decreaseToLoadCount(instance);
    removeClass(element, settings.class_loading);

    if (settings.unobserve_completed) {
      unobserve(element, instance);
    }
  };
  var loadHandler = function loadHandler(event, element, settings, instance) {
    var goingNative = hasStatusNative(element);
    doneHandler(element, settings, instance);
    addClass(element, settings.class_loaded);
    setStatus(element, statusLoaded);
    safeCallback(settings.callback_loaded, element, instance);
    if (!goingNative) checkFinish(settings, instance);
  };
  var errorHandler = function errorHandler(event, element, settings, instance) {
    var goingNative = hasStatusNative(element);
    doneHandler(element, settings, instance);
    addClass(element, settings.class_error);
    setStatus(element, statusError);
    safeCallback(settings.callback_error, element, instance);
    if (!goingNative) checkFinish(settings, instance);
  };
  var addOneShotEventListeners = function addOneShotEventListeners(element, settings, instance) {
    var elementToListenTo = getTempImage(element) || element;

    if (hasEventListeners(elementToListenTo)) {
      // This happens when loading is retried twice
      return;
    }

    var _loadHandler = function _loadHandler(event) {
      loadHandler(event, element, settings, instance);
      removeEventListeners(elementToListenTo);
    };

    var _errorHandler = function _errorHandler(event) {
      errorHandler(event, element, settings, instance);
      removeEventListeners(elementToListenTo);
    };

    addEventListeners(elementToListenTo, _loadHandler, _errorHandler);
  };

  var loadBackground = function loadBackground(element, settings, instance) {
    addTempImage(element);
    addOneShotEventListeners(element, settings, instance);
    saveOriginalBackgroundStyle(element);
    setBackground(element, settings, instance);
    setMultiBackground(element, settings, instance);
  };

  var loadRegular = function loadRegular(element, settings, instance) {
    addOneShotEventListeners(element, settings, instance);
    setSources(element, settings, instance);
  };

  var load = function load(element, settings, instance) {
    if (hasLoadEvent(element)) {
      loadRegular(element, settings, instance);
    } else {
      loadBackground(element, settings, instance);
    }
  };
  var loadNative = function loadNative(element, settings, instance) {
    element.setAttribute("loading", "lazy");
    addOneShotEventListeners(element, settings, instance);
    setSourcesNative(element, settings);
    setStatus(element, statusNative);
  };

  var removeImageAttributes = function removeImageAttributes(element) {
    element.removeAttribute(SRC);
    element.removeAttribute(SRCSET);
    element.removeAttribute(SIZES);
  };

  var resetSourcesImg = function resetSourcesImg(element) {
    forEachPictureSource(element, function (sourceTag) {
      removeImageAttributes(sourceTag);
    });
    removeImageAttributes(element);
  };

  var restoreImg = function restoreImg(imgEl) {
    forEachPictureSource(imgEl, function (sourceEl) {
      restoreOriginalAttrs(sourceEl, attrsSrcSrcsetSizes);
    });
    restoreOriginalAttrs(imgEl, attrsSrcSrcsetSizes);
  };
  var restoreVideo = function restoreVideo(videoEl) {
    forEachVideoSource(videoEl, function (sourceEl) {
      restoreOriginalAttrs(sourceEl, attrsSrc);
    });
    restoreOriginalAttrs(videoEl, attrsSrcPoster);
    videoEl.load();
  };
  var restoreIframe = function restoreIframe(iframeEl) {
    restoreOriginalAttrs(iframeEl, attrsSrc);
  };
  var restoreFunctions = {
    IMG: restoreImg,
    IFRAME: restoreIframe,
    VIDEO: restoreVideo
  };

  var restoreAttributes = function restoreAttributes(element) {
    var restoreFunction = restoreFunctions[element.tagName];

    if (!restoreFunction) {
      restoreOriginalBgImage(element);
      return;
    }

    restoreFunction(element);
  };

  var resetClasses = function resetClasses(element, settings) {
    if (hasEmptyStatus(element) || hasStatusNative(element)) {
      return;
    }

    removeClass(element, settings.class_entered);
    removeClass(element, settings.class_exited);
    removeClass(element, settings.class_applied);
    removeClass(element, settings.class_loading);
    removeClass(element, settings.class_loaded);
    removeClass(element, settings.class_error);
  };

  var restore = function restore(element, settings) {
    restoreAttributes(element);
    resetClasses(element, settings);
    resetStatus(element);
    deleteOriginalAttrs(element);
  };

  var cancelLoading = function cancelLoading(element, entry, settings, instance) {
    if (!settings.cancel_on_exit) return;
    if (!hasStatusLoading(element)) return;
    if (element.tagName !== "IMG") return; //Works only on images

    removeEventListeners(element);
    resetSourcesImg(element);
    restoreImg(element);
    removeClass(element, settings.class_loading);
    updateLoadingCount(instance, -1);
    resetStatus(element);
    safeCallback(settings.callback_cancel, element, entry, instance);
  };

  var onEnter = function onEnter(element, entry, settings, instance) {
    var dontLoad = hadStartedLoading(element);
    /* Save status
    before setting it, to prevent loading it again. Fixes #526. */

    setStatus(element, statusEntered);
    addClass(element, settings.class_entered);
    removeClass(element, settings.class_exited);
    unobserveEntered(element, settings, instance);
    safeCallback(settings.callback_enter, element, entry, instance);
    if (dontLoad) return;
    load(element, settings, instance);
  };
  var onExit = function onExit(element, entry, settings, instance) {
    if (hasEmptyStatus(element)) return; //Ignore the first pass, at landing

    addClass(element, settings.class_exited);
    cancelLoading(element, entry, settings, instance);
    safeCallback(settings.callback_exit, element, entry, instance);
  };

  var tagsWithNativeLazy = ["IMG", "IFRAME", "VIDEO"];
  var shouldUseNative = function shouldUseNative(settings) {
    return settings.use_native && "loading" in HTMLImageElement.prototype;
  };
  var loadAllNative = function loadAllNative(elements, settings, instance) {
    elements.forEach(function (element) {
      if (tagsWithNativeLazy.indexOf(element.tagName) === -1) {
        return;
      }

      loadNative(element, settings, instance);
    });
    setToLoadCount(instance, 0);
  };

  var isIntersecting = function isIntersecting(entry) {
    return entry.isIntersecting || entry.intersectionRatio > 0;
  };

  var getObserverSettings = function getObserverSettings(settings) {
    return {
      root: settings.container === document ? null : settings.container,
      rootMargin: settings.thresholds || settings.threshold + "px"
    };
  };

  var intersectionHandler = function intersectionHandler(entries, settings, instance) {
    entries.forEach(function (entry) {
      return isIntersecting(entry) ? onEnter(entry.target, entry, settings, instance) : onExit(entry.target, entry, settings, instance);
    });
  };

  var observeElements = function observeElements(observer, elements) {
    elements.forEach(function (element) {
      observer.observe(element);
    });
  };
  var updateObserver = function updateObserver(observer, elementsToObserve) {
    resetObserver(observer);
    observeElements(observer, elementsToObserve);
  };
  var setObserver = function setObserver(settings, instance) {
    if (!supportsIntersectionObserver || shouldUseNative(settings)) {
      return;
    }

    instance._observer = new IntersectionObserver(function (entries) {
      intersectionHandler(entries, settings, instance);
    }, getObserverSettings(settings));
  };

  var toArray = function toArray(nodeSet) {
    return Array.prototype.slice.call(nodeSet);
  };
  var queryElements = function queryElements(settings) {
    return settings.container.querySelectorAll(settings.elements_selector);
  };
  var excludeManagedElements = function excludeManagedElements(elements) {
    return toArray(elements).filter(hasEmptyStatus);
  };
  var hasError = function hasError(element) {
    return hasStatusError(element);
  };
  var filterErrorElements = function filterErrorElements(elements) {
    return toArray(elements).filter(hasError);
  };
  var getElementsToLoad = function getElementsToLoad(elements, settings) {
    return excludeManagedElements(elements || queryElements(settings));
  };

  var retryLazyLoad = function retryLazyLoad(settings, instance) {
    var errorElements = filterErrorElements(queryElements(settings));
    errorElements.forEach(function (element) {
      removeClass(element, settings.class_error);
      resetStatus(element);
    });
    instance.update();
  };
  var setOnlineCheck = function setOnlineCheck(settings, instance) {
    if (!runningOnBrowser) {
      return;
    }

    window.addEventListener("online", function () {
      retryLazyLoad(settings, instance);
    });
  };

  var LazyLoad = function LazyLoad(customSettings, elements) {
    var settings = getExtendedSettings(customSettings);
    this._settings = settings;
    this.loadingCount = 0;
    setObserver(settings, this);
    setOnlineCheck(settings, this);
    this.update(elements);
  };

  LazyLoad.prototype = {
    update: function update(givenNodeset) {
      var settings = this._settings;
      var elementsToLoad = getElementsToLoad(givenNodeset, settings);
      setToLoadCount(this, elementsToLoad.length);

      if (isBot || !supportsIntersectionObserver) {
        this.loadAll(elementsToLoad);
        return;
      }

      if (shouldUseNative(settings)) {
        loadAllNative(elementsToLoad, settings, this);
        return;
      }

      updateObserver(this._observer, elementsToLoad);
    },
    destroy: function destroy() {
      // Observer
      if (this._observer) {
        this._observer.disconnect();
      } // Clean custom attributes on elements


      queryElements(this._settings).forEach(function (element) {
        deleteOriginalAttrs(element);
      }); // Delete all internal props

      delete this._observer;
      delete this._settings;
      delete this.loadingCount;
      delete this.toLoadCount;
    },
    loadAll: function loadAll(elements) {
      var _this = this;

      var settings = this._settings;
      var elementsToLoad = getElementsToLoad(elements, settings);
      elementsToLoad.forEach(function (element) {
        unobserve(element, _this);
        load(element, settings, _this);
      });
    },
    restoreAll: function restoreAll() {
      var settings = this._settings;
      queryElements(settings).forEach(function (element) {
        restore(element, settings);
      });
    }
  };

  LazyLoad.load = function (element, customSettings) {
    var settings = getExtendedSettings(customSettings);
    load(element, settings);
  };

  LazyLoad.resetStatus = function (element) {
    resetStatus(element);
  }; // Automatic instances creation if required (useful for async script loading)


  if (runningOnBrowser) {
    autoInitialize(LazyLoad, window.lazyLoadOptions);
  }

  return LazyLoad;

})));/** @license React v17.0.1
 * react.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
(function(){'use strict';(function(c,x){"object"===typeof exports&&"undefined"!==typeof module?x(exports):"function"===typeof define&&define.amd?define(["exports"],x):(c=c||self,x(c.React={}))})(this,function(c){function x(a){if(null===a||"object"!==typeof a)return null;a=Y&&a[Y]||a["@@iterator"];return"function"===typeof a?a:null}function y(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,e=1;e<arguments.length;e++)b+="&args[]="+encodeURIComponent(arguments[e]);return"Minified React error #"+
a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function v(a,b,e){this.props=a;this.context=b;this.refs=Z;this.updater=e||aa}function ba(){}function K(a,b,e){this.props=a;this.context=b;this.refs=Z;this.updater=e||aa}function ca(a,b,e){var l,f={},c=null,da=null;if(null!=b)for(l in void 0!==b.ref&&(da=b.ref),void 0!==b.key&&(c=""+b.key),b)ea.call(b,l)&&!fa.hasOwnProperty(l)&&(f[l]=b[l]);var k=arguments.length-2;if(1===
k)f.children=e;else if(1<k){for(var h=Array(k),d=0;d<k;d++)h[d]=arguments[d+2];f.children=h}if(a&&a.defaultProps)for(l in k=a.defaultProps,k)void 0===f[l]&&(f[l]=k[l]);return{$$typeof:w,type:a,key:c,ref:da,props:f,_owner:L.current}}function va(a,b){return{$$typeof:w,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function M(a){return"object"===typeof a&&null!==a&&a.$$typeof===w}function wa(a){var b={"=":"=0",":":"=2"};return"$"+a.replace(/[=:]/g,function(a){return b[a]})}function N(a,b){return"object"===
typeof a&&null!==a&&null!=a.key?wa(""+a.key):b.toString(36)}function C(a,b,e,l,f){var c=typeof a;if("undefined"===c||"boolean"===c)a=null;var d=!1;if(null===a)d=!0;else switch(c){case "string":case "number":d=!0;break;case "object":switch(a.$$typeof){case w:case ha:d=!0}}if(d)return d=a,f=f(d),a=""===l?"."+N(d,0):l,Array.isArray(f)?(e="",null!=a&&(e=a.replace(ia,"$&/")+"/"),C(f,b,e,"",function(a){return a})):null!=f&&(M(f)&&(f=va(f,e+(!f.key||d&&d.key===f.key?"":(""+f.key).replace(ia,"$&/")+"/")+
a)),b.push(f)),1;d=0;l=""===l?".":l+":";if(Array.isArray(a))for(var k=0;k<a.length;k++){c=a[k];var h=l+N(c,k);d+=C(c,b,e,h,f)}else if(h=x(a),"function"===typeof h)for(a=h.call(a),k=0;!(c=a.next()).done;)c=c.value,h=l+N(c,k++),d+=C(c,b,e,h,f);else if("object"===c)throw b=""+a,Error(y(31,"[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b));return d}function D(a,b,e){if(null==a)return a;var l=[],c=0;C(a,l,"","",function(a){return b.call(e,a,c++)});return l}function xa(a){if(-1===
a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}function n(){var a=ja.current;if(null===a)throw Error(y(321));return a}function O(a,b){var e=a.length;a.push(b);a:for(;;){var c=e-1>>>1,f=a[c];if(void 0!==f&&0<E(f,b))a[c]=b,a[e]=f,e=c;else break a}}function p(a){a=a[0];return void 0===a?null:a}function F(a){var b=
a[0];if(void 0!==b){var e=a.pop();if(e!==b){a[0]=e;a:for(var c=0,f=a.length;c<f;){var d=2*(c+1)-1,g=a[d],k=d+1,h=a[k];if(void 0!==g&&0>E(g,e))void 0!==h&&0>E(h,g)?(a[c]=h,a[k]=e,c=k):(a[c]=g,a[d]=e,c=d);else if(void 0!==h&&0>E(h,e))a[c]=h,a[k]=e,c=k;else break a}}return b}return null}function E(a,b){var e=a.sortIndex-b.sortIndex;return 0!==e?e:a.id-b.id}function P(a){for(var b=p(r);null!==b;){if(null===b.callback)F(r);else if(b.startTime<=a)F(r),b.sortIndex=b.expirationTime,O(q,b);else break;b=p(r)}}
function Q(a){z=!1;P(a);if(!u)if(null!==p(q))u=!0,A(R);else{var b=p(r);null!==b&&G(Q,b.startTime-a)}}function R(a,b){u=!1;z&&(z=!1,S());H=!0;var e=g;try{P(b);for(m=p(q);null!==m&&(!(m.expirationTime>b)||a&&!T());){var c=m.callback;if("function"===typeof c){m.callback=null;g=m.priorityLevel;var f=c(m.expirationTime<=b);b=t();"function"===typeof f?m.callback=f:m===p(q)&&F(q);P(b)}else F(q);m=p(q)}if(null!==m)var d=!0;else{var n=p(r);null!==n&&G(Q,n.startTime-b);d=!1}return d}finally{m=null,g=e,H=!1}}
var w=60103,ha=60106;c.Fragment=60107;c.StrictMode=60108;c.Profiler=60114;var ka=60109,la=60110,ma=60112;c.Suspense=60113;var na=60115,oa=60116;if("function"===typeof Symbol&&Symbol.for){var d=Symbol.for;w=d("react.element");ha=d("react.portal");c.Fragment=d("react.fragment");c.StrictMode=d("react.strict_mode");c.Profiler=d("react.profiler");ka=d("react.provider");la=d("react.context");ma=d("react.forward_ref");c.Suspense=d("react.suspense");na=d("react.memo");oa=d("react.lazy")}var Y="function"===
typeof Symbol&&Symbol.iterator,ya=Object.prototype.hasOwnProperty,U=Object.assign||function(a,b){if(null==a)throw new TypeError("Object.assign target cannot be null or undefined");for(var e=Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(null!=d){var g=void 0;d=Object(d);for(g in d)ya.call(d,g)&&(e[g]=d[g])}}return e},aa={isMounted:function(a){return!1},enqueueForceUpdate:function(a,b,c){},enqueueReplaceState:function(a,b,c,d){},enqueueSetState:function(a,b,c,d){}},Z={};v.prototype.isReactComponent=
{};v.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error(y(85));this.updater.enqueueSetState(this,a,b,"setState")};v.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};ba.prototype=v.prototype;d=K.prototype=new ba;d.constructor=K;U(d,v.prototype);d.isPureReactComponent=!0;var L={current:null},ea=Object.prototype.hasOwnProperty,fa={key:!0,ref:!0,__self:!0,__source:!0},ia=/\/+/g,ja={current:null},V;if("object"===typeof performance&&
"function"===typeof performance.now){var za=performance;var t=function(){return za.now()}}else{var pa=Date,Aa=pa.now();t=function(){return pa.now()-Aa}}if("undefined"===typeof window||"function"!==typeof MessageChannel){var B=null,qa=null,ra=function(){if(null!==B)try{var a=t();B(!0,a);B=null}catch(b){throw setTimeout(ra,0),b;}};var A=function(a){null!==B?setTimeout(A,0,a):(B=a,setTimeout(ra,0))};var G=function(a,b){qa=setTimeout(a,b)};var S=function(){clearTimeout(qa)};var T=function(){return!1};
d=V=function(){}}else{var Ba=window.setTimeout,Ca=window.clearTimeout;"undefined"!==typeof console&&(d=window.cancelAnimationFrame,"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!==typeof d&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"));
var I=!1,J=null,W=-1,sa=5,ta=0;T=function(){return t()>=ta};d=function(){};V=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):sa=0<a?Math.floor(1E3/a):5};var ua=new MessageChannel,X=ua.port2;ua.port1.onmessage=function(){if(null!==J){var a=t();ta=a+sa;try{J(!0,a)?X.postMessage(null):(I=!1,J=null)}catch(b){throw X.postMessage(null),b;}}else I=!1};A=function(a){J=a;I||(I=!0,X.postMessage(null))};G=
function(a,b){W=Ba(function(){a(t())},b)};S=function(){Ca(W);W=-1}}var q=[],r=[],Da=1,m=null,g=3,H=!1,u=!1,z=!1,Ea=0;d={ReactCurrentDispatcher:ja,ReactCurrentOwner:L,IsSomeRendererActing:{current:!1},ReactCurrentBatchConfig:{transition:0},assign:U,Scheduler:{__proto__:null,unstable_ImmediatePriority:1,unstable_UserBlockingPriority:2,unstable_NormalPriority:3,unstable_IdlePriority:5,unstable_LowPriority:4,unstable_runWithPriority:function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=
3}var c=g;g=a;try{return b()}finally{g=c}},unstable_next:function(a){switch(g){case 1:case 2:case 3:var b=3;break;default:b=g}var c=g;g=b;try{return a()}finally{g=c}},unstable_scheduleCallback:function(a,b,c){var d=t();"object"===typeof c&&null!==c?(c=c.delay,c="number"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:Da++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=
c,O(r,a),null===p(q)&&a===p(r)&&(z?S():z=!0,G(Q,c-d))):(a.sortIndex=e,O(q,a),u||H||(u=!0,A(R)));return a},unstable_cancelCallback:function(a){a.callback=null},unstable_wrapCallback:function(a){var b=g;return function(){var c=g;g=b;try{return a.apply(this,arguments)}finally{g=c}}},unstable_getCurrentPriorityLevel:function(){return g},get unstable_shouldYield(){return T},unstable_requestPaint:d,unstable_continueExecution:function(){u||H||(u=!0,A(R))},unstable_pauseExecution:function(){},unstable_getFirstCallbackNode:function(){return p(q)},
get unstable_now(){return t},get unstable_forceFrameRate(){return V},unstable_Profiling:null},SchedulerTracing:{__proto__:null,__interactionsRef:null,__subscriberRef:null,unstable_clear:function(a){return a()},unstable_getCurrent:function(){return null},unstable_getThreadID:function(){return++Ea},unstable_trace:function(a,b,c){return c()},unstable_wrap:function(a){return a},unstable_subscribe:function(a){},unstable_unsubscribe:function(a){}}};c.Children={map:D,forEach:function(a,b,c){D(a,function(){b.apply(this,
arguments)},c)},count:function(a){var b=0;D(a,function(){b++});return b},toArray:function(a){return D(a,function(a){return a})||[]},only:function(a){if(!M(a))throw Error(y(143));return a}};c.Component=v;c.PureComponent=K;c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=d;c.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(y(267,a));var d=U({},a.props),e=a.key,g=a.ref,n=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,n=L.current);void 0!==b.key&&(e=""+b.key);if(a.type&&a.type.defaultProps)var k=
a.type.defaultProps;for(h in b)ea.call(b,h)&&!fa.hasOwnProperty(h)&&(d[h]=void 0===b[h]&&void 0!==k?k[h]:b[h])}var h=arguments.length-2;if(1===h)d.children=c;else if(1<h){k=Array(h);for(var m=0;m<h;m++)k[m]=arguments[m+2];d.children=k}return{$$typeof:w,type:a.type,key:e,ref:g,props:d,_owner:n}};c.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:la,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:ka,_context:a};return a.Consumer=
a};c.createElement=ca;c.createFactory=function(a){var b=ca.bind(null,a);b.type=a;return b};c.createRef=function(){return{current:null}};c.forwardRef=function(a){return{$$typeof:ma,render:a}};c.isValidElement=M;c.lazy=function(a){return{$$typeof:oa,_payload:{_status:-1,_result:a},_init:xa}};c.memo=function(a,b){return{$$typeof:na,type:a,compare:void 0===b?null:b}};c.useCallback=function(a,b){return n().useCallback(a,b)};c.useContext=function(a,b){return n().useContext(a,b)};c.useDebugValue=function(a,
b){};c.useEffect=function(a,b){return n().useEffect(a,b)};c.useImperativeHandle=function(a,b,c){return n().useImperativeHandle(a,b,c)};c.useLayoutEffect=function(a,b){return n().useLayoutEffect(a,b)};c.useMemo=function(a,b){return n().useMemo(a,b)};c.useReducer=function(a,b,c){return n().useReducer(a,b,c)};c.useRef=function(a){return n().useRef(a)};c.useState=function(a){return n().useState(a)};c.version="17.0.1"});
})();
/** @license React v17.0.1
 * react-dom.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
(function(){/*
 Modernizr 3.0.0pre (Custom Build) | MIT
*/
'use strict';(function(M,ha){"object"===typeof exports&&"undefined"!==typeof module?ha(exports,require("react")):"function"===typeof define&&define.amd?define(["exports","react"],ha):(M=M||self,ha(M.ReactDOM={},M.React))})(this,function(M,ha){function m(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c<arguments.length;c++)b+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}
function Ta(a,b){gb(a,b);gb(a+"Capture",b)}function gb(a,b){Ib[a]=b;for(a=0;a<b.length;a++)zf.add(b[a])}function li(a){if(Af.call(Bf,a))return!0;if(Af.call(Cf,a))return!1;if(mi.test(a))return Bf[a]=!0;Cf[a]=!0;return!1}function ni(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case "function":case "symbol":return!0;case "boolean":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return"data-"!==a&&"aria-"!==a;default:return!1}}function oi(a,b,c,d){if(null===
b||"undefined"===typeof b||ni(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function Q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}function Ed(a,b,c,d){var e=I.hasOwnProperty(b)?I[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||
"o"!==b[0]&&"O"!==b[0]||"n"!==b[1]&&"N"!==b[1]?!1:!0;f||(oi(b,c,e,d)&&(c=null),d||null===e?li(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}function Jb(a){if(null===a||"object"!==typeof a)return null;a=Df&&a[Df]||a["@@iterator"];return"function"===typeof a?a:null}
function Kb(a,b,c){if(void 0===Fd)try{throw Error();}catch(d){Fd=(b=d.stack.trim().match(/\n( *(at )?)/))&&b[1]||""}return"\n"+Fd+a}function Bc(a,b){if(!a||Gd)return"";Gd=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,"props",{set:function(){throw Error();}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();
}catch(k){d=k}a()}}catch(k){if(k&&d&&"string"===typeof k.stack){for(var e=k.stack.split("\n"),f=d.stack.split("\n"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return"\n"+e[g].replace(" at new "," at ");while(1<=g&&0<=h)}break}}}finally{Gd=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?Kb(a):""}function pi(a){switch(a.tag){case 5:return Kb(a.type);case 16:return Kb("Lazy");case 13:return Kb("Suspense");
case 19:return Kb("SuspenseList");case 0:case 2:case 15:return a=Bc(a.type,!1),a;case 11:return a=Bc(a.type.render,!1),a;case 22:return a=Bc(a.type._render,!1),a;case 1:return a=Bc(a.type,!0),a;default:return""}}function hb(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case wa:return"Fragment";case Ua:return"Portal";case Lb:return"Profiler";case Hd:return"StrictMode";case Mb:return"Suspense";case Cc:return"SuspenseList"}if("object"===
typeof a)switch(a.$$typeof){case Id:return(a.displayName||"Context")+".Consumer";case Jd:return(a._context.displayName||"Context")+".Provider";case Dc:var b=a.render;b=b.displayName||b.name||"";return a.displayName||(""!==b?"ForwardRef("+b+")":"ForwardRef");case Ec:return hb(a.type);case Kd:return hb(a._render);case Ld:b=a._payload;a=a._init;try{return hb(a(b))}catch(c){}}return null}function xa(a){switch(typeof a){case "boolean":case "number":case "object":case "string":case "undefined":return a;
default:return""}}function Ef(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}function qi(a){var b=Ef(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,
b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}}function Fc(a){a._valueTracker||(a._valueTracker=qi(a))}function Ff(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=Ef(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Gc(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||
a.body}catch(b){return a.body}}function Md(a,b){var c=b.checked;return B({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Gf(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=xa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function Hf(a,b){b=b.checked;null!=b&&Ed(a,"checked",
b,!1)}function Nd(a,b){Hf(a,b);var c=xa(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?Od(a,b.type,c):b.hasOwnProperty("defaultValue")&&Od(a,b.type,xa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function If(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=
b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}function Od(a,b,c){if("number"!==b||Gc(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}function ri(a){var b="";ha.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}
function Pd(a,b){a=B({children:void 0},b);if(b=ri(b.children))a.children=b;return a}function ib(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=""+xa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}function Qd(a,b){if(null!=
b.dangerouslySetInnerHTML)throw Error(m(91));return B({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function Jf(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(m(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(m(93));c=c[0]}b=c}null==b&&(b="");c=b}a._wrapperState={initialValue:xa(c)}}function Kf(a,b){var c=xa(b.value),d=xa(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==
c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function Lf(a,b){b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}function Mf(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Rd(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?Mf(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function Nf(a,b,c){return null==
b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||Nb.hasOwnProperty(a)&&Nb[a]?(""+b).trim():b+"px"}function Of(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=Nf(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}function Sd(a,b){if(b){if(si[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(m(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(m(60));if(!("object"===typeof b.dangerouslySetInnerHTML&&
"__html"in b.dangerouslySetInnerHTML))throw Error(m(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(m(62));}}function Td(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function Ud(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);
return 3===a.nodeType?a.parentNode:a}function Pf(a){if(a=Ob(a)){if("function"!==typeof Vd)throw Error(m(280));var b=a.stateNode;b&&(b=Hc(b),Vd(a.stateNode,a.type,b))}}function Qf(a){jb?kb?kb.push(a):kb=[a]:jb=a}function Rf(){if(jb){var a=jb,b=kb;kb=jb=null;Pf(a);if(b)for(a=0;a<b.length;a++)Pf(b[a])}}function Wd(){if(null!==jb||null!==kb)Xd(),Rf()}function ti(a,b,c){if(Yd)return a(b,c);Yd=!0;try{return Sf(a,b,c)}finally{Yd=!1,Wd()}}function Pb(a,b){var c=a.stateNode;if(null===c)return null;var d=Hc(c);
if(null===d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":case "onMouseEnter":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==typeof c)throw Error(m(231,b,typeof c));return c}function ui(a,b,c,d,e,
f,g,h,k){Qb=!1;Ic=null;vi.apply(wi,arguments)}function xi(a,b,c,d,e,f,g,h,k){ui.apply(this,arguments);if(Qb){if(Qb){var v=Ic;Qb=!1;Ic=null}else throw Error(m(198));Jc||(Jc=!0,Zd=v)}}function Va(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Tf(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Uf(a){if(Va(a)!==
a)throw Error(m(188));}function yi(a){var b=a.alternate;if(!b){b=Va(a);if(null===b)throw Error(m(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Uf(e),a;if(f===d)return Uf(e),b;f=f.sibling}throw Error(m(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=
f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(m(189));}}if(c.alternate!==d)throw Error(m(190));}if(3!==c.tag)throw Error(m(188));return c.stateNode.current===c?a:b}function Vf(a){a=yi(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}function Wf(a,b){for(var c=
a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}function $d(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function Xf(a,b){switch(a){case "focusin":case "focusout":ya=null;break;case "dragenter":case "dragleave":za=null;break;case "mouseover":case "mouseout":Aa=null;break;case "pointerover":case "pointerout":Rb.delete(b.pointerId);break;case "gotpointercapture":case "lostpointercapture":Sb.delete(b.pointerId)}}function Tb(a,
b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=$d(b,c,d,e,f),null!==b&&(b=Ob(b),null!==b&&Yf(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}function zi(a,b,c,d,e){switch(b){case "focusin":return ya=Tb(ya,a,b,c,d,e),!0;case "dragenter":return za=Tb(za,a,b,c,d,e),!0;case "mouseover":return Aa=Tb(Aa,a,b,c,d,e),!0;case "pointerover":var f=e.pointerId;Rb.set(f,Tb(Rb.get(f)||null,a,b,c,d,e));return!0;case "gotpointercapture":return f=e.pointerId,Sb.set(f,
Tb(Sb.get(f)||null,a,b,c,d,e)),!0}return!1}function Ai(a){var b=Wa(a.target);if(null!==b){var c=Va(b);if(null!==c)if(b=c.tag,13===b){if(b=Tf(c),null!==b){a.blockedOn=b;Bi(a.lanePriority,function(){ae(a.priority,function(){Ci(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Kc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=be(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);
if(null!==c)return b=Ob(c),null!==b&&Yf(b),a.blockedOn=c,!1;b.shift()}return!0}function Zf(a,b,c){Kc(a)&&c.delete(b)}function Di(){for(ce=!1;0<ia.length;){var a=ia[0];if(null!==a.blockedOn){a=Ob(a.blockedOn);null!==a&&Ei(a);break}for(var b=a.targetContainers;0<b.length;){var c=be(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&ia.shift()}null!==ya&&Kc(ya)&&(ya=null);null!==za&&Kc(za)&&(za=null);null!==Aa&&Kc(Aa)&&(Aa=null);Rb.forEach(Zf);
Sb.forEach(Zf)}function Ub(a,b){a.blockedOn===b&&(a.blockedOn=null,ce||(ce=!0,$f(ag,Di)))}function bg(a){if(0<ia.length){Ub(ia[0],a);for(var b=1;b<ia.length;b++){var c=ia[b];c.blockedOn===a&&(c.blockedOn=null)}}null!==ya&&Ub(ya,a);null!==za&&Ub(za,a);null!==Aa&&Ub(Aa,a);b=function(b){return Ub(b,a)};Rb.forEach(b);Sb.forEach(b);for(b=0;b<Vb.length;b++)c=Vb[b],c.blockedOn===a&&(c.blockedOn=null);for(;0<Vb.length&&(b=Vb[0],null===b.blockedOn);)Ai(b),null===b.blockedOn&&Vb.shift()}function Lc(a,b){var c=
{};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}function Mc(a){if(de[a])return de[a];if(!lb[a])return a;var b=lb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in cg)return de[a]=b[c];return a}function ee(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e="on"+(e[0].toUpperCase()+e.slice(1));fe.set(d,b);dg.set(d,e);Ta(e,[d])}}function mb(a){if(0!==(1&a))return w=15,1;if(0!==(2&a))return w=14,2;if(0!==(4&a))return w=13,4;var b=24&a;if(0!==b)return w=12,b;
if(0!==(a&32))return w=11,32;b=192&a;if(0!==b)return w=10,b;if(0!==(a&256))return w=9,256;b=3584&a;if(0!==b)return w=8,b;if(0!==(a&4096))return w=7,4096;b=4186112&a;if(0!==b)return w=6,b;b=62914560&a;if(0!==b)return w=5,b;if(a&67108864)return w=4,67108864;if(0!==(a&134217728))return w=3,134217728;b=805306368&a;if(0!==b)return w=2,b;if(0!==(1073741824&a))return w=1,1073741824;w=8;return a}function Fi(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}
function Gi(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(m(358,a));}}function Wb(a,b){var c=a.pendingLanes;if(0===c)return w=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=w=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=mb(k),e=w):(h&=f,0!==h&&(d=mb(h),e=w))}else f=c&~g,0!==f?(d=mb(f),e=w):0!==h&&(d=mb(h),
e=w);if(0===d)return 0;d=31-Ba(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){mb(b);if(e<=w)return b;w=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Ba(b),e=1<<c,d|=a[c],b&=~e;return d}function eg(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Nc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=nb(24&~b),0===a?Nc(10,b):a;case 10:return a=nb(192&~b),0===a?Nc(8,b):a;case 8:return a=nb(3584&~b),0===a&&(a=nb(4186112&~b),
0===a&&(a=512)),a;case 2:return b=nb(805306368&~b),0===b&&(b=268435456),b}throw Error(m(358,a));}function nb(a){return a&-a}function ge(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}function Oc(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Ba(b);a[b]=c}function Hi(a){return 0===a?32:31-(Ii(a)/Ji|0)|0}function Ki(a,b,c,d){Xa||Xd();var e=he,f=Xa;Xa=!0;try{fg(e,a,b,c,d)}finally{(Xa=f)||Wd()}}function Li(a,b,c,d){Mi(Ni,he.bind(null,a,b,c,d))}function he(a,
b,c,d){if(Pc){var e;if((e=0===(b&4))&&0<ia.length&&-1<gg.indexOf(a))a=$d(null,a,b,c,d),ia.push(a);else{var f=be(a,b,c,d);if(null===f)e&&Xf(a,d);else{if(e){if(-1<gg.indexOf(a)){a=$d(f,a,b,c,d);ia.push(a);return}if(zi(f,a,b,c,d))return;Xf(a,d)}hg(a,b,d,null,c)}}}}function be(a,b,c,d){var e=Ud(d);e=Wa(e);if(null!==e){var f=Va(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=Tf(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==
e&&(e=null)}}hg(a,b,d,e,c);return null}function ig(){if(Qc)return Qc;var a,b=ie,c=b.length,d,e="value"in Ca?Ca.value:Ca.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return Qc=e.slice(a,1<d?1-d:void 0)}function Rc(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function Sc(){return!0}function jg(){return!1}function V(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=
d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?Sc:jg;this.isPropagationStopped=jg;return this}B(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=Sc)},stopPropagation:function(){var a=
this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=Sc)},persist:function(){},isPersistent:Sc});return b}function Oi(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Pi[a])?!!b[a]:!1}function je(a){return Oi}function kg(a,b){switch(a){case "keyup":return-1!==Qi.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "focusout":return!0;default:return!1}}
function lg(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}function Ri(a,b){switch(a){case "compositionend":return lg(b);case "keypress":if(32!==b.which)return null;mg=!0;return ng;case "textInput":return a=b.data,a===ng&&mg?null:a;default:return null}}function Si(a,b){if(ob)return"compositionend"===a||!ke&&kg(a,b)?(a=ig(),Qc=ie=Ca=null,ob=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;
if(b.which)return String.fromCharCode(b.which)}return null;case "compositionend":return og&&"ko"!==b.locale?null:b.data;default:return null}}function pg(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!Ti[a.type]:"textarea"===b?!0:!1}function Ui(a){if(!oa)return!1;a="on"+a;var b=a in document;b||(b=document.createElement("div"),b.setAttribute(a,"return;"),b="function"===typeof b[a]);return b}function qg(a,b,c,d){Qf(d);b=Tc(b,"onChange");0<b.length&&(c=new le("onChange","change",
null,c,d),a.push({event:c,listeners:b}))}function Vi(a){rg(a,0)}function Uc(a){var b=pb(a);if(Ff(b))return a}function Wi(a,b){if("change"===a)return b}function sg(){Xb&&(Xb.detachEvent("onpropertychange",tg),Yb=Xb=null)}function tg(a){if("value"===a.propertyName&&Uc(Yb)){var b=[];qg(b,Yb,a,Ud(a));a=Vi;if(Xa)a(b);else{Xa=!0;try{me(a,b)}finally{Xa=!1,Wd()}}}}function Xi(a,b,c){"focusin"===a?(sg(),Xb=b,Yb=c,Xb.attachEvent("onpropertychange",tg)):"focusout"===a&&sg()}function Yi(a,b){if("selectionchange"===
a||"keyup"===a||"keydown"===a)return Uc(Yb)}function Zi(a,b){if("click"===a)return Uc(b)}function $i(a,b){if("input"===a||"change"===a)return Uc(b)}function aj(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}function Zb(a,b){if(X(a,b))return!0;if("object"!==typeof a||null===a||"object"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!bj.call(b,c[d])||!X(a[c[d]],b[c[d]]))return!1;return!0}function ug(a){for(;a&&a.firstChild;)a=
a.firstChild;return a}function vg(a,b){var c=ug(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ug(c)}}function wg(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wg(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xg(){for(var a=window,b=Gc();b instanceof a.HTMLIFrameElement;){try{var c=
"string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Gc(a.document)}return b}function ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}function yg(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;oe||null==qb||qb!==Gc(d)||(d=qb,"selectionStart"in d&&ne(d)?d={start:d.selectionStart,
end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),$b&&Zb($b,d)||($b=d,d=Tc(pe,"onSelect"),0<d.length&&(b=new le("onSelect","select",null,b,c),a.push({event:b,listeners:d}),b.target=qb)))}function zg(a,b,c){var d=a.type||"unknown-event";a.currentTarget=c;xi(d,b,void 0,a);a.currentTarget=null}function rg(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=
a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,v=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;zg(e,h,v);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;v=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;zg(e,h,v);f=k}}}if(Jc)throw a=Zd,Jc=!1,Zd=null,a;}function z(a,b){var c=Ag(b),d=a+"__bubble";c.has(d)||(Bg(b,a,2,!1),c.add(d))}function Cg(a){a[Dg]||(a[Dg]=!0,zf.forEach(function(b){Eg.has(b)||
Fg(b,!1,a,null);Fg(b,!0,a,null)}))}function Fg(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;"selectionchange"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Eg.has(a)){if("scroll"!==a)return;e|=2;f=d}var g=Ag(f),h=a+"__"+(b?"capture":"bubble");g.has(h)||(b&&(e|=4),Bg(f,a,e,b),g.add(h))}function Bg(a,b,c,d,e){e=fe.get(b);switch(void 0===e?2:e){case 0:e=Ki;break;case 1:e=Li;break;default:e=he}c=e.bind(null,b,c,a);e=void 0;!qe||"touchstart"!==b&&"touchmove"!==
b&&"wheel"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}function hg(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&
k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wa(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}ti(function(){var d=f,e=Ud(c),g=[];a:{var h=dg.get(a);if(void 0!==h){var k=le,m=a;switch(a){case "keypress":if(0===Rc(c))break a;case "keydown":case "keyup":k=cj;break;case "focusin":m="focus";k=re;break;case "focusout":m="blur";k=re;break;case "beforeblur":case "afterblur":k=re;break;case "click":if(2===c.button)break a;case "auxclick":case "dblclick":case "mousedown":case "mousemove":case "mouseup":case "mouseout":case "mouseover":case "contextmenu":k=
Gg;break;case "drag":case "dragend":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "dragstart":case "drop":k=dj;break;case "touchcancel":case "touchend":case "touchmove":case "touchstart":k=ej;break;case Hg:case Ig:case Jg:k=fj;break;case Kg:k=gj;break;case "scroll":k=hj;break;case "wheel":k=ij;break;case "copy":case "cut":case "paste":k=jj;break;case "gotpointercapture":case "lostpointercapture":case "pointercancel":case "pointerdown":case "pointermove":case "pointerout":case "pointerover":case "pointerup":k=
Lg}var l=0!==(b&4),C=!l&&"scroll"===a,x=l?null!==h?h+"Capture":null:h;l=[];for(var p=d,q;null!==p;){q=p;var u=q.stateNode;5===q.tag&&null!==u&&(q=u,null!==x&&(u=Pb(p,x),null!=u&&l.push(ac(p,u,q))));if(C)break;p=p.return}0<l.length&&(h=new k(h,m,null,c,e),g.push({event:h,listeners:l}))}}if(0===(b&7)){a:{h="mouseover"===a||"pointerover"===a;k="mouseout"===a||"pointerout"===a;if(h&&0===(b&16)&&(m=c.relatedTarget||c.fromElement)&&(Wa(m)||m[rb]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||
h.parentWindow:window;if(k){if(m=c.relatedTarget||c.toElement,k=d,m=m?Wa(m):null,null!==m&&(C=Va(m),m!==C||5!==m.tag&&6!==m.tag))m=null}else k=null,m=d;if(k!==m){l=Gg;u="onMouseLeave";x="onMouseEnter";p="mouse";if("pointerout"===a||"pointerover"===a)l=Lg,u="onPointerLeave",x="onPointerEnter",p="pointer";C=null==k?h:pb(k);q=null==m?h:pb(m);h=new l(u,p+"leave",k,c,e);h.target=C;h.relatedTarget=q;u=null;Wa(e)===d&&(l=new l(x,p+"enter",m,c,e),l.target=q,l.relatedTarget=C,u=l);C=u;if(k&&m)b:{l=k;x=m;p=
0;for(q=l;q;q=sb(q))p++;q=0;for(u=x;u;u=sb(u))q++;for(;0<p-q;)l=sb(l),p--;for(;0<q-p;)x=sb(x),q--;for(;p--;){if(l===x||null!==x&&l===x.alternate)break b;l=sb(l);x=sb(x)}l=null}else l=null;null!==k&&Mg(g,h,k,l,!1);null!==m&&null!==C&&Mg(g,C,m,l,!0)}}}a:{h=d?pb(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if("select"===k||"input"===k&&"file"===h.type)var n=Wi;else if(pg(h))if(Ng)n=$i;else{n=Yi;var da=Xi}else(k=h.nodeName)&&"input"===k.toLowerCase()&&("checkbox"===h.type||"radio"===h.type)&&(n=Zi);
if(n&&(n=n(a,d))){qg(g,n,c,e);break a}da&&da(a,h,d);"focusout"===a&&(da=h._wrapperState)&&da.controlled&&"number"===h.type&&Od(h,"number",h.value)}da=d?pb(d):window;switch(a){case "focusin":if(pg(da)||"true"===da.contentEditable)qb=da,pe=d,$b=null;break;case "focusout":$b=pe=qb=null;break;case "mousedown":oe=!0;break;case "contextmenu":case "mouseup":case "dragend":oe=!1;yg(g,c,e);break;case "selectionchange":if(kj)break;case "keydown":case "keyup":yg(g,c,e)}var Ea;if(ke)b:{switch(a){case "compositionstart":var F=
"onCompositionStart";break b;case "compositionend":F="onCompositionEnd";break b;case "compositionupdate":F="onCompositionUpdate";break b}F=void 0}else ob?kg(a,c)&&(F="onCompositionEnd"):"keydown"===a&&229===c.keyCode&&(F="onCompositionStart");F&&(og&&"ko"!==c.locale&&(ob||"onCompositionStart"!==F?"onCompositionEnd"===F&&ob&&(Ea=ig()):(Ca=e,ie="value"in Ca?Ca.value:Ca.textContent,ob=!0)),da=Tc(d,F),0<da.length&&(F=new Og(F,a,null,c,e),g.push({event:F,listeners:da}),Ea?F.data=Ea:(Ea=lg(c),null!==Ea&&
(F.data=Ea))));if(Ea=lj?Ri(a,c):Si(a,c))d=Tc(d,"onBeforeInput"),0<d.length&&(e=new mj("onBeforeInput","beforeinput",null,c,e),g.push({event:e,listeners:d}),e.data=Ea)}rg(g,b)})}function ac(a,b,c){return{instance:a,listener:b,currentTarget:c}}function Tc(a,b){for(var c=b+"Capture",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Pb(a,c),null!=f&&d.unshift(ac(a,f,e)),f=Pb(a,b),null!=f&&d.push(ac(a,f,e)));a=a.return}return d}function sb(a){if(null===a)return null;do a=a.return;while(a&&
5!==a.tag);return a?a:null}function Mg(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,v=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==v&&(h=v,e?(k=Pb(c,f),null!=k&&g.unshift(ac(c,k,h))):e||(k=Pb(c,f),null!=k&&g.push(ac(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function Vc(){}function Pg(a,b){switch(a){case "button":case "input":case "select":case "textarea":return!!b.autoFocus}return!1}function se(a,b){return"textarea"===a||"option"===
a||"noscript"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}function te(a){1===a.nodeType?a.textContent="":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=""))}function tb(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function Qg(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if("$"===c||"$!"===c||"$?"===
c){if(0===b)return a;b--}else"/$"===c&&b++}a=a.previousSibling}return null}function nj(a){return{$$typeof:ue,toString:a,valueOf:a}}function Wa(a){var b=a[Fa];if(b)return b;for(var c=a.parentNode;c;){if(b=c[rb]||c[Fa]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Qg(a);null!==a;){if(c=a[Fa])return c;a=Qg(a)}return b}a=c;c=a.parentNode}return null}function Ob(a){a=a[Fa]||a[rb];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function pb(a){if(5===a.tag||6===a.tag)return a.stateNode;
throw Error(m(33));}function Hc(a){return a[Wc]||null}function Ag(a){var b=a[Rg];void 0===b&&(b=a[Rg]=new Set);return b}function Ga(a){return{current:a}}function t(a,b){0>ub||(a.current=ve[ub],ve[ub]=null,ub--)}function A(a,b,c){ub++;ve[ub]=a.current;a.current=b}function vb(a,b){var c=a.type.contextTypes;if(!c)return Ha;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=
b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function S(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Sg(a,b,c){if(D.current!==Ha)throw Error(m(168));A(D,b);A(J,c)}function Tg(a,b,c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(m(108,hb(b)||"Unknown",e));return B({},c,d)}function Xc(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Ha;Ya=D.current;
A(D,a);A(J,J.current);return!0}function Ug(a,b,c){var d=a.stateNode;if(!d)throw Error(m(169));c?(a=Tg(a,b,Ya),d.__reactInternalMemoizedMergedChildContext=a,t(J),t(D),A(D,a)):t(J);A(J,c)}function wb(){switch(oj()){case Yc:return 99;case Vg:return 98;case Wg:return 97;case Xg:return 96;case Yg:return 95;default:throw Error(m(332));}}function Zg(a){switch(a){case 99:return Yc;case 98:return Vg;case 97:return Wg;case 96:return Xg;case 95:return Yg;default:throw Error(m(332));}}function Za(a,b){a=Zg(a);
return pj(a,b)}function bc(a,b,c){a=Zg(a);return we(a,b,c)}function ja(){if(null!==Zc){var a=Zc;Zc=null;xe(a)}$g()}function $g(){if(!ye&&null!==pa){ye=!0;var a=0;try{var b=pa;Za(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});pa=null}catch(c){throw null!==pa&&(pa=pa.slice(a+1)),we(Yc,ja),c;}finally{ye=!1}}}function ea(a,b){if(a&&a.defaultProps){b=B({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function ze(){$c=xb=ad=null}function Ae(a){var b=
bd.current;t(bd);a.type._context._currentValue=b}function ah(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function yb(a,b){ad=a;$c=xb=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(fa=!0),a.firstContext=null)}function Y(a,b){if($c!==a&&!1!==b&&0!==b){if("number"!==typeof b||1073741823===b)$c=a,b=1073741823;b={context:a,observedBits:b,
next:null};if(null===xb){if(null===ad)throw Error(m(308));xb=b;ad.dependencies={lanes:0,firstContext:b,responders:null}}else xb=xb.next=b}return a._currentValue}function Be(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function Ia(a,b){return{eventTime:a,
lane:b,tag:0,payload:null,callback:null,next:null}}function Ja(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}function ch(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=
f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=b;c.lastBaseUpdate=b}function cc(a,b,c,d){var e=a.updateQueue;Ka=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,v=k.next;k.next=null;null===g?f=v:g.next=v;g=k;var m=a.alternate;if(null!==m){m=m.updateQueue;var l=m.lastBaseUpdate;l!==g&&(null===l?m.firstBaseUpdate=
v:l.next=v,m.lastBaseUpdate=k)}}if(null!==f){l=e.baseState;g=0;m=v=k=null;do{h=f.lane;var r=f.eventTime;if((d&h)===h){null!==m&&(m=m.next={eventTime:r,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,next:null});a:{var n=a,t=f;h=b;r=c;switch(t.tag){case 1:n=t.payload;if("function"===typeof n){l=n.call(r,l,h);break a}l=n;break a;case 3:n.flags=n.flags&-4097|64;case 0:n=t.payload;h="function"===typeof n?n.call(r,l,h):n;if(null===h||void 0===h)break a;l=B({},l,h);break a;case 2:Ka=!0}}null!==f.callback&&
(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else r={eventTime:r,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===m?(v=m=r,k=l):m=m.next=r,g|=h;f=f.next;if(null===f)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===m&&(k=l);e.baseState=k;e.firstBaseUpdate=v;e.lastBaseUpdate=m;La|=g;a.lanes=g;a.memoizedState=l}}function dh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=
a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if("function"!==typeof e)throw Error(m(191,e));e.call(d)}}}function cd(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:B({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}function eh(a,b,c,d,e,f,g){a=a.stateNode;return"function"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Zb(c,d)||!Zb(e,f):!0}function fh(a,b,c){var d=!1,e=Ha;var f=b.contextType;"object"===
typeof f&&null!==f?f=Y(f):(e=S(b)?Ya:D.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?vb(a,e):Ha);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=dd;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}function gh(a,b,c,d){a=b.state;"function"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);"function"===typeof b.UNSAFE_componentWillReceiveProps&&
b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&dd.enqueueReplaceState(b,b.state,null)}function Ce(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=hh;Be(a);var f=b.contextType;"object"===typeof f&&null!==f?e.context=Y(f):(f=S(b)?Ya:D.current,e.context=vb(a,f));cc(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;"function"===typeof f&&(cd(a,b,f,c),e.state=a.memoizedState);"function"===typeof b.getDerivedStateFromProps||"function"===typeof e.getSnapshotBeforeUpdate||
"function"!==typeof e.UNSAFE_componentWillMount&&"function"!==typeof e.componentWillMount||(b=e.state,"function"===typeof e.componentWillMount&&e.componentWillMount(),"function"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&dd.enqueueReplaceState(e,e.state,null),cc(a,c,e,d),e.state=a.memoizedState);"function"===typeof e.componentDidMount&&(a.flags|=4)}function dc(a,b,c){a=c.ref;if(null!==a&&"function"!==typeof a&&"object"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==
c.tag)throw Error(m(309));var d=c.stateNode}if(!d)throw Error(m(147,a));var e=""+a;if(null!==b&&null!==b.ref&&"function"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===hh&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if("string"!==typeof a)throw Error(m(284));if(!c._owner)throw Error(m(290,a));}return a}function ed(a,b){if("textarea"!==a.type)throw Error(m(31,"[object Object]"===Object.prototype.toString.call(b)?"object with keys {"+Object.keys(b).join(", ")+
"}":b));}function ih(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Ma(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=
2,c):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=De(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=dc(a,b,c),d.return=a,d;d=fd(c.type,c.key,c.props,null,a.mode,d);d.ref=dc(a,b,c);d.return=a;return d}function v(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=
Ee(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function l(a,b,c,d,f){if(null===b||7!==b.tag)return b=zb(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function n(a,b,c){if("string"===typeof b||"number"===typeof b)return b=De(""+b,a.mode,c),b.return=a,b;if("object"===typeof b&&null!==b){switch(b.$$typeof){case ec:return c=fd(b.type,b.key,b.props,null,a.mode,c),c.ref=dc(a,null,b),c.return=a,c;case Ua:return b=Ee(b,a.mode,c),b.return=a,b}if(gd(b)||Jb(b))return b=zb(b,
a.mode,c,null),b.return=a,b;ed(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if("string"===typeof c||"number"===typeof c)return null!==e?null:h(a,b,""+c,d);if("object"===typeof c&&null!==c){switch(c.$$typeof){case ec:return c.key===e?c.type===wa?l(a,b,c.props.children,d,e):k(a,b,c,d):null;case Ua:return c.key===e?v(a,b,c,d):null}if(gd(c)||Jb(c))return null!==e?null:l(a,b,c,d,null);ed(a,c)}return null}function t(a,b,c,d,e){if("string"===typeof d||"number"===typeof d)return a=a.get(c)||
null,h(b,a,""+d,e);if("object"===typeof d&&null!==d){switch(d.$$typeof){case ec:return a=a.get(null===d.key?c:d.key)||null,d.type===wa?l(b,a,d.props.children,e,d.key):k(b,a,d,e);case Ua:return a=a.get(null===d.key?c:d.key)||null,v(b,a,d,e)}if(gd(d)||Jb(d))return a=a.get(c)||null,l(b,a,d,e,null);ed(b,d)}return null}function w(e,g,h,k){for(var m=null,v=null,l=g,p=g=0,x=null;null!==l&&p<h.length;p++){l.index>p?(x=l,l=null):x=l.sibling;var C=r(e,l,h[p],k);if(null===C){null===l&&(l=x);break}a&&l&&null===
C.alternate&&b(e,l);g=f(C,g,p);null===v?m=C:v.sibling=C;v=C;l=x}if(p===h.length)return c(e,l),m;if(null===l){for(;p<h.length;p++)l=n(e,h[p],k),null!==l&&(g=f(l,g,p),null===v?m=l:v.sibling=l,v=l);return m}for(l=d(e,l);p<h.length;p++)x=t(l,e,p,h[p],k),null!==x&&(a&&null!==x.alternate&&l.delete(null===x.key?p:x.key),g=f(x,g,p),null===v?m=x:v.sibling=x,v=x);a&&l.forEach(function(a){return b(e,a)});return m}function z(e,g,h,k){var l=Jb(h);if("function"!==typeof l)throw Error(m(150));h=l.call(h);if(null==
h)throw Error(m(151));for(var v=l=null,p=g,x=g=0,C=null,q=h.next();null!==p&&!q.done;x++,q=h.next()){p.index>x?(C=p,p=null):C=p.sibling;var Da=r(e,p,q.value,k);if(null===Da){null===p&&(p=C);break}a&&p&&null===Da.alternate&&b(e,p);g=f(Da,g,x);null===v?l=Da:v.sibling=Da;v=Da;p=C}if(q.done)return c(e,p),l;if(null===p){for(;!q.done;x++,q=h.next())q=n(e,q.value,k),null!==q&&(g=f(q,g,x),null===v?l=q:v.sibling=q,v=q);return l}for(p=d(e,p);!q.done;x++,q=h.next())q=t(p,e,x,q.value,k),null!==q&&(a&&null!==
q.alternate&&p.delete(null===q.key?x:q.key),g=f(q,g,x),null===v?l=q:v.sibling=q,v=q);a&&p.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===wa&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case ec:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===wa){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,
k.sibling);d=e(k,f.props);d.ref=dc(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===wa?(d=zb(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=fd(f.type,f.key,f.props,null,a.mode,h),h.ref=dc(a,d,f),h.return=a,a=h)}return g(a);case Ua:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=
d.sibling}d=Ee(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=De(f,a.mode,h),d.return=a,a=d),g(a);if(gd(f))return w(a,d,f,h);if(Jb(f))return z(a,d,f,h);l&&ed(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(m(152,hb(a.type)||"Component"));}return c(a,d)}}function $a(a){if(a===fc)throw Error(m(174));return a}function Fe(a,b){A(gc,
b);A(hc,a);A(ka,fc);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Rd(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Rd(b,a)}t(ka);A(ka,b)}function Ab(a){t(ka);t(hc);t(gc)}function jh(a){$a(gc.current);var b=$a(ka.current);var c=Rd(b,a.type);b!==c&&(A(hc,a),A(ka,c))}function Ge(a){hc.current===a&&(t(ka),t(hc))}function hd(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data||
"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function kh(a,b){var c=Z(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=
a.lastEffect=c}function lh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}function He(a){if(la){var b=Na;if(b){var c=b;if(!lh(a,b)){b=tb(c.nextSibling);if(!b||!lh(a,b)){a.flags=a.flags&-1025|2;la=!1;ra=a;return}kh(ra,c)}ra=a;Na=tb(b.firstChild)}else a.flags=a.flags&-1025|2,la=!1,
ra=a}}function mh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ra=a}function id(a){if(a!==ra)return!1;if(!la)return mh(a),la=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!se(b,a.memoizedProps))for(b=Na;b;)kh(a,b),b=tb(b.nextSibling);mh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(m(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if("/$"===c){if(0===b){Na=tb(a.nextSibling);break a}b--}else"$"!==c&&"$!"!==
c&&"$?"!==c||b++}a=a.nextSibling}Na=null}}else Na=ra?tb(a.stateNode.nextSibling):null;return!0}function Ie(){Na=ra=null;la=!1}function Je(){for(var a=0;a<Bb.length;a++)Bb[a]._workInProgressVersionPrimary=null;Bb.length=0}function T(){throw Error(m(321));}function Ke(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!X(a[c],b[c]))return!1;return!0}function Le(a,b,c,d,e,f){ic=f;y=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;jc.current=null===a||null===a.memoizedState?qj:rj;
a=c(d,e);if(kc){f=0;do{kc=!1;if(!(25>f))throw Error(m(301));f+=1;K=N=null;b.updateQueue=null;jc.current=sj;a=c(d,e)}while(kc)}jc.current=jd;b=null!==N&&null!==N.next;ic=0;K=N=y=null;kd=!1;if(b)throw Error(m(300));return a}function ab(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===K?y.memoizedState=K=a:K=K.next=a;return K}function bb(){if(null===N){var a=y.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===K?y.memoizedState:K.next;if(null!==
b)K=b,N=a;else{if(null===a)throw Error(m(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===K?y.memoizedState=K=a:K=K.next=a}return K}function ma(a,b){return"function"===typeof b?b(a):b}function lc(a,b,c){b=bb();c=b.queue;if(null===c)throw Error(m(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;
var h=g=f=null,k=e;do{var l=k.lane;if((ic&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;y.lanes|=l;La|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;X(d,b.memoizedState)||(fa=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=
d}return[b.memoizedState,c.dispatch]}function mc(a,b,c){b=bb();c=b.queue;if(null===c)throw Error(m(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);X(f,b.memoizedState)||(fa=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function nh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,
a=(ic&a)===a)b._workInProgressVersionPrimary=d,Bb.push(b);if(a)return c(b._source);Bb.push(b);throw Error(m(350));}function oh(a,b,c,d){var e=R;if(null===e)throw Error(m(349));var f=b._getVersion,g=f(b._source),h=jc.current,k=h.useState(function(){return nh(e,b,c)}),l=k[1],n=k[0];k=K;var t=a.memoizedState,r=t.refs,w=r.getSnapshot,z=t.source;t=t.subscribe;var B=y;a.memoizedState={refs:r,source:b,subscribe:d};h.useEffect(function(){r.getSnapshot=c;r.setSnapshot=l;var a=f(b._source);if(!X(g,a)){a=c(b._source);
X(n,a)||(l(a),a=Oa(B),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=e.entanglements,h=a;0<h;){var k=31-Ba(h),m=1<<k;d[k]|=a;h&=~m}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=r.getSnapshot,c=r.setSnapshot;try{c(a(b._source));var d=Oa(B);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);X(w,c)&&X(z,b)&&X(t,d)||(a={pending:null,dispatch:null,lastRenderedReducer:ma,lastRenderedState:n},a.dispatch=l=Me.bind(null,
y,a),k.queue=a,k.baseQueue=null,n=nh(e,b,c),k.memoizedState=k.baseState=n);return n}function ph(a,b,c){var d=bb();return oh(d,a,b,c)}function nc(a){var b=ab();"function"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:ma,lastRenderedState:a};a=a.dispatch=Me.bind(null,y,a);return[b.memoizedState,a]}function ld(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=y.updateQueue;null===b?(b={lastEffect:null},y.updateQueue=b,b.lastEffect=
a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function qh(a){var b=ab();a={current:a};return b.memoizedState=a}function md(a){return bb().memoizedState}function Ne(a,b,c,d){var e=ab();y.flags|=a;e.memoizedState=ld(1|b,c,void 0,void 0===d?null:d)}function Oe(a,b,c,d){var e=bb();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Ke(d,g.deps)){ld(b,c,f,d);return}}y.flags|=a;e.memoizedState=ld(1|
b,c,f,d)}function rh(a,b){return Ne(516,4,a,b)}function nd(a,b){return Oe(516,4,a,b)}function sh(a,b){return Oe(4,2,a,b)}function th(a,b){if("function"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function uh(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Oe(4,2,th.bind(null,b,a),c)}function Pe(a,b){}function vh(a,b){var c=bb();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Ke(b,d[1]))return d[0];
c.memoizedState=[a,b];return a}function wh(a,b){var c=bb();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Ke(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function tj(a,b){var c=wb();Za(98>c?98:c,function(){a(!0)});Za(97<c?97:c,function(){var c=aa.transition;aa.transition=1;try{a(!1),b()}finally{aa.transition=c}})}function Me(a,b,c){var d=W(),e=Oa(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);
b.pending=f;g=a.alternate;if(a===y||null!==g&&g===y)kc=kd=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(X(k,h))return}catch(v){}finally{}Pa(a,e,d)}}function U(a,b,c,d){b.child=null===a?xh(b,null,c,d):od(b,a.child,c,d)}function yh(a,b,c,d,e){c=c.render;var f=b.ref;yb(b,e);d=Le(a,b,c,d,f,e);if(null!==a&&!fa)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,sa(a,b,e);b.flags|=1;
U(a,b,d,e);return b.child}function zh(a,b,c,d,e,f){if(null===a){var g=c.type;if("function"===typeof g&&!Qe(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Ah(a,b,g,d,e,f);a=fd(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Zb,c(e,d)&&a.ref===b.ref))return sa(a,b,f);b.flags|=1;a=Ma(g,d);a.ref=b.ref;a.return=b;return b.child=a}function Ah(a,b,c,d,e,f){if(null!==a&&Zb(a.memoizedProps,
d)&&a.ref===b.ref)if(fa=!1,0!==(f&e))0!==(a.flags&16384)&&(fa=!0);else return b.lanes=a.lanes,sa(a,b,f);return Re(a,b,c,d,f)}function Se(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if("hidden"===d.mode||"unstable-defer-without-hiding"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},pd(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},pd(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState=
{baseLanes:a},pd(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,pd(b,d);U(a,b,e,c);return b.child}function Bh(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function Re(a,b,c,d,e){var f=S(c)?Ya:D.current;f=vb(b,f);yb(b,e);c=Le(a,b,c,d,f,e);if(null!==a&&!fa)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,sa(a,b,e);b.flags|=1;U(a,b,c,e);return b.child}function Ch(a,b,c,d,e){if(S(c)){var f=!0;Xc(b)}else f=!1;yb(b,e);if(null===b.stateNode)null!==
a&&(a.alternate=null,b.alternate=null,b.flags|=2),fh(b,c,d),Ce(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;"object"===typeof l&&null!==l?l=Y(l):(l=S(c)?Ya:D.current,l=vb(b,l));var m=c.getDerivedStateFromProps,n="function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate;n||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&gh(b,g,d,l);Ka=!1;var r=b.memoizedState;
g.state=r;cc(b,d,g,e);k=b.memoizedState;h!==d||r!==k||J.current||Ka?("function"===typeof m&&(cd(b,c,m,d),k=b.memoizedState),(h=Ka||eh(b,c,h,d,r,k,l))?(n||"function"!==typeof g.UNSAFE_componentWillMount&&"function"!==typeof g.componentWillMount||("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.flags|=4)):("function"===typeof g.componentDidMount&&(b.flags|=4),
b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):("function"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:ea(b.type,h);g.props=l;n=b.pendingProps;r=g.context;k=c.contextType;"object"===typeof k&&null!==k?k=Y(k):(k=S(c)?Ya:D.current,k=vb(b,k));var t=c.getDerivedStateFromProps;(m="function"===typeof t||"function"===typeof g.getSnapshotBeforeUpdate)||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&
"function"!==typeof g.componentWillReceiveProps||(h!==n||r!==k)&&gh(b,g,d,k);Ka=!1;r=b.memoizedState;g.state=r;cc(b,d,g,e);var w=b.memoizedState;h!==n||r!==w||J.current||Ka?("function"===typeof t&&(cd(b,c,t,d),w=b.memoizedState),(l=Ka||eh(b,c,l,d,r,w,k))?(m||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,w,k),"function"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,
w,k)),"function"===typeof g.componentDidUpdate&&(b.flags|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=w),g.props=d,g.state=w,g.context=k,d=l):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==
typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=256),d=!1)}return Te(a,b,c,d,f,e)}function Te(a,b,c,d,e,f){Bh(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Ug(b,c,!1),sa(a,b,f);d=b.stateNode;uj.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=od(b,a.child,null,f),b.child=od(b,null,h,f)):U(a,b,h,f);b.memoizedState=d.state;e&&Ug(b,c,!0);return b.child}function Dh(a){var b=a.stateNode;b.pendingContext?
Sg(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Sg(a,b.context,!1);Fe(a,b.containerInfo)}function Eh(a,b,c){var d=b.pendingProps,e=E.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);A(E,e&1);if(null===a){void 0!==d.fallback&&He(b);a=d.children;e=d.fallback;if(f)return a=Fh(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=
qd,a;if("number"===typeof d.unstable_expectedLoadTime)return a=Fh(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=qd,b.lanes=33554432,a;c=Ue({mode:"visible",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=Gh(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=qd,d;c=Hh(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=
Gh(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=qd,d;c=Hh(a,b,d.children,c);b.memoizedState=null;return c}function Fh(a,b,c,d){var e=a.mode,f=a.child;b={mode:"hidden",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=Ue(b,e,0,null);c=zb(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}function Hh(a,b,c,d){var e=a.child;a=e.sibling;c=Ma(e,
{mode:"visible",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}function Gh(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:"hidden",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Ma(g,h);null!==a?d=Ma(a,d):(d=zb(d,f,e,null),d.flags|=
2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function Ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);ah(a.return,b)}function Ve(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}function Jh(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;U(a,b,d.children,c);d=E.current;
if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&Ih(a,c);else if(19===a.tag)Ih(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}A(E,d);if(0===(b.mode&2))b.memoizedState=null;else switch(e){case "forwards":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===
hd(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Ve(b,!1,e,c,f,b.lastEffect);break;case "backwards":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hd(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Ve(b,!0,c,null,f,b.lastEffect);break;case "together":Ve(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}function sa(a,b,c){null!==a&&(b.dependencies=a.dependencies);La|=b.lanes;if(0!==(c&
b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(m(153));if(null!==b.child){a=b.child;c=Ma(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Ma(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}function oc(a,b){if(!la)switch(a.tailMode){case "hidden":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case "collapsed":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&
(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}function vj(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return S(b.type)&&(t(J),t(D)),null;case 3:Ab();t(J);t(D);Je();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)id(b)?b.flags|=4:d.hydrate||(b.flags|=256);Kh(b);return null;case 5:Ge(b);var e=$a(gc.current);
c=b.type;if(null!==a&&null!=b.stateNode)wj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===b.stateNode)throw Error(m(166));return null}a=$a(ka.current);if(id(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Fa]=b;d[Wc]=f;switch(c){case "dialog":z("cancel",d);z("close",d);break;case "iframe":case "object":case "embed":z("load",d);break;case "video":case "audio":for(a=0;a<pc.length;a++)z(pc[a],d);break;case "source":z("error",d);break;case "img":case "image":case "link":z("error",d);
z("load",d);break;case "details":z("toggle",d);break;case "input":Gf(d,f);z("invalid",d);break;case "select":d._wrapperState={wasMultiple:!!f.multiple};z("invalid",d);break;case "textarea":Jf(d,f),z("invalid",d)}Sd(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],"children"===g?"string"===typeof e?d.textContent!==e&&(a=["children",e]):"number"===typeof e&&d.textContent!==""+e&&(a=["children",""+e]):Ib.hasOwnProperty(g)&&null!=e&&"onScroll"===g&&z("scroll",d));switch(c){case "input":Fc(d);If(d,
f,!0);break;case "textarea":Fc(d);Lf(d);break;case "select":case "option":break;default:"function"===typeof f.onClick&&(d.onclick=Vc)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;"http://www.w3.org/1999/xhtml"===a&&(a=Mf(c));"http://www.w3.org/1999/xhtml"===a?"script"===c?(a=g.createElement("div"),a.innerHTML="<script>\x3c/script>",a=a.removeChild(a.firstChild)):"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple?
g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Fa]=b;a[Wc]=d;xj(a,b,!1,!1);b.stateNode=a;g=Td(c,d);switch(c){case "dialog":z("cancel",a);z("close",a);e=d;break;case "iframe":case "object":case "embed":z("load",a);e=d;break;case "video":case "audio":for(e=0;e<pc.length;e++)z(pc[e],a);e=d;break;case "source":z("error",a);e=d;break;case "img":case "image":case "link":z("error",a);z("load",a);e=d;break;case "details":z("toggle",a);e=d;break;case "input":Gf(a,d);e=Md(a,d);z("invalid",
a);break;case "option":e=Pd(a,d);break;case "select":a._wrapperState={wasMultiple:!!d.multiple};e=B({},d,{value:void 0});z("invalid",a);break;case "textarea":Jf(a,d);e=Qd(a,d);z("invalid",a);break;default:e=d}Sd(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];"style"===f?Of(a,k):"dangerouslySetInnerHTML"===f?(k=k?k.__html:void 0,null!=k&&Lh(a,k)):"children"===f?"string"===typeof k?("textarea"!==c||""!==k)&&qc(a,k):"number"===typeof k&&qc(a,""+k):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==
f&&"autoFocus"!==f&&(Ib.hasOwnProperty(f)?null!=k&&"onScroll"===f&&z("scroll",a):null!=k&&Ed(a,f,k,g))}switch(c){case "input":Fc(a);If(a,d,!1);break;case "textarea":Fc(a);Lf(a);break;case "option":null!=d.value&&a.setAttribute("value",""+xa(d.value));break;case "select":a.multiple=!!d.multiple;f=d.value;null!=f?ib(a,!!d.multiple,f,!1):null!=d.defaultValue&&ib(a,!!d.multiple,d.defaultValue,!0);break;default:"function"===typeof e.onClick&&(a.onclick=Vc)}Pg(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=
128)}return null;case 6:if(a&&null!=b.stateNode)yj(a,b,a.memoizedProps,d);else{if("string"!==typeof d&&null===b.stateNode)throw Error(m(166));c=$a(gc.current);$a(ka.current);id(b)?(d=b.stateNode,c=b.memoizedProps,d[Fa]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Fa]=b,b.stateNode=d)}return null;case 13:t(E);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&id(b):c=null!==a.memoizedState;
if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(E.current&1))0===L&&(L=3);else{if(0===L||3===L)L=4;null===R||0===(La&134217727)&&0===(Cb&134217727)||Db(R,O)}if(d||c)b.flags|=4;return null;case 4:return Ab(),Kh(b),null===a&&Cg(b.stateNode.containerInfo),null;case 10:return Ae(b),null;case 17:return S(b.type)&&(t(J),t(D)),null;case 19:t(E);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)oc(d,!1);else{if(0!==L||null!==
a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=hd(a);if(null!==g){b.flags|=64;oc(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=
g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;A(E,E.current&1|2);return b.child}a=a.sibling}null!==d.tail&&P()>We&&(b.flags|=64,f=!0,oc(d,!1),b.lanes=33554432)}else{if(!f)if(a=hd(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),oc(d,!0),null===d.tail&&"hidden"===d.tailMode&&
!g.alternate&&!la)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*P()-d.renderingStartTime>We&&1073741824!==c&&(b.flags|=64,f=!0,oc(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=P(),c.sibling=null,b=E.current,A(E,f?b&1|2:b&1),c):null;case 23:case 24:return ta=cb.current,t(cb),null!==a&&null!==
a.memoizedState!==(null!==b.memoizedState)&&"unstable-defer-without-hiding"!==d.mode&&(b.flags|=4),null}throw Error(m(156,b.tag));}function zj(a,b){switch(a.tag){case 1:return S(a.type)&&(t(J),t(D)),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 3:Ab();t(J);t(D);Je();b=a.flags;if(0!==(b&64))throw Error(m(285));a.flags=b&-4097|64;return a;case 5:return Ge(a),null;case 13:return t(E),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return t(E),null;case 4:return Ab(),null;case 10:return Ae(a),
null;case 23:case 24:return ta=cb.current,t(cb),null;default:return null}}function Xe(a,b){try{var c="",d=b;do c+=pi(d),d=d.return;while(d);var e=c}catch(f){e="\nError generating stack: "+f.message+"\n"+f.stack}return{value:a,source:b,stack:e}}function Ye(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}function Mh(a,b,c){c=Ia(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){rd||(rd=!0,Ze=d);Ye(a,b)};return c}function Nh(a,b,c){c=Ia(-1,c);c.tag=
3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){Ye(a,b);return d(e)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){"function"!==typeof d&&(null===na?na=new Set([this]):na.add(this),Ye(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}function Oh(a){var b=a.ref;if(null!==b)if("function"===typeof b)try{b(null)}catch(c){Qa(a,c)}else b.current=null}function Aj(a,
b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ea(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&te(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(m(163));}function Bj(a,b,c,d){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;
do 3===(a.tag&3)&&(d=a.create,a.destroy=d()),a=a.next;while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Ph(c,a),Cj(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:ea(c.type,b.memoizedProps),a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&dh(c,b,a);return;case 3:b=c.updateQueue;
if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}dh(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&Pg(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&bg(c))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(m(163));}function Qh(a,b){for(var c=a;;){if(5===
c.tag){var d=c.stateNode;if(b)d=d.style,"function"===typeof d.setProperty?d.setProperty("display","none","important"):d.display="none";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty("display")?e.display:null;d.style.display=Nf("display",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?"":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===a)break;for(;null===c.sibling;){if(null===
c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}function Rh(a,b,c){if(db&&"function"===typeof db.onCommitFiberUnmount)try{db.onCommitFiberUnmount($e,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Ph(b,c);else{d=b;try{e()}catch(f){Qa(d,f)}}c=c.next}while(c!==a)}break;case 1:Oh(b);a=b.stateNode;if("function"===typeof a.componentWillUnmount)try{a.props=
b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Qa(b,f)}break;case 5:Oh(b);break;case 4:Sh(a,b)}}function Th(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function Uh(a){return 5===a.tag||3===a.tag||4===a.tag}function Vh(a){a:{for(var b=a.return;null!==b;){if(Uh(b))break a;b=b.return}throw Error(m(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=
!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(m(161));}c.flags&16&&(qc(b,""),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Uh(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?af(a,c,b):bf(a,c,b)}function af(a,b,c){var d=
a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Vc));else if(4!==d&&(a=a.child,null!==a))for(af(a,b,c),a=a.sibling;null!==a;)af(a,b,c),a=a.sibling}function bf(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);
else if(4!==d&&(a=a.child,null!==a))for(bf(a,b,c),a=a.sibling;null!==a;)bf(a,b,c),a=a.sibling}function Sh(a,b,c){c=b;for(var d=!1,e,f;;){if(!d){e=c.return;a:for(;;){if(null===e)throw Error(m(160));f=e.stateNode;switch(e.tag){case 5:e=f;f=!1;break a;case 3:e=f.containerInfo;f=!0;break a;case 4:e=f.containerInfo;f=!0;break a}e=e.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(Rh(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===
k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(Rh(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=
c.sibling}}function cf(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Wc]=d;"input"===a&&"radio"===d.type&&null!=d.name&&Hf(c,d);Td(a,e);b=Td(a,d);for(e=0;e<f.length;e+=
2){var g=f[e],h=f[e+1];"style"===g?Of(c,h):"dangerouslySetInnerHTML"===g?Lh(c,h):"children"===g?qc(c,h):Ed(c,g,h,b)}switch(a){case "input":Nd(c,d);break;case "textarea":Kf(c,d);break;case "select":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?ib(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?ib(c,!!d.multiple,d.defaultValue,!0):ib(c,!!d.multiple,d.multiple?[]:"",!1))}}}return;case 6:if(null===b.stateNode)throw Error(m(162));b.stateNode.nodeValue=
b.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,bg(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(df=P(),Qh(b.child,!0));Wh(b);return;case 19:Wh(b);return;case 17:return;case 23:case 24:Qh(b,null!==b.memoizedState);return}throw Error(m(163));}function Wh(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Dj);b.forEach(function(b){var d=Ej.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}function Fj(a,
b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}function Eb(){We=P()+500}function W(){return 0!==(n&48)?P():-1!==sd?sd:sd=P()}function Oa(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===wb()?1:2;0===ua&&(ua=Fb);if(0!==Gj.transition){0!==td&&(td=null!==ef?ef.pendingLanes:0);a=ua;var b=4186112&~td;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=wb();0!==(n&4)&&98===a?a=Nc(12,ua):(a=Fi(a),a=Nc(a,ua));
return a}function Pa(a,b,c){if(50<rc)throw rc=0,ff=null,Error(m(185));a=ud(a,b);if(null===a)return null;Oc(a,b,c);a===R&&(Cb|=b,4===L&&Db(a,O));var d=wb();1===b?0!==(n&8)&&0===(n&48)?gf(a):(ba(a,c),0===n&&(Eb(),ja())):(0===(n&4)||98!==d&&99!==d||(null===va?va=new Set([a]):va.add(a)),ba(a,c));ef=a}function ud(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}
function ba(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Ba(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;mb(k);var m=w;f[h]=10<=m?l+250:6<=m?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Wb(a,a===R?O:0);b=w;if(0===d)null!==c&&(c!==hf&&xe(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==hf&&xe(c)}15===b?(c=gf.bind(null,a),null===pa?(pa=[c],Zc=we(Yc,$g)):pa.push(c),
c=hf):14===b?c=bc(99,gf.bind(null,a)):(c=Gi(b),c=bc(c,Xh.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}function Xh(a){sd=-1;td=ua=0;if(0!==(n&48))throw Error(m(327));var b=a.callbackNode;if(Ra()&&a.callbackNode!==b)return null;var c=Wb(a,a===R?O:0);if(0===c)return null;var d=c;var e=n;n|=16;var f=Yh();if(R!==a||O!==d)Eb(),Gb(a,d);do try{Hj();break}catch(h){Zh(a,h)}while(1);ze();vd.current=f;n=e;null!==G?d=0:(R=null,O=0,d=L);if(0!==(Fb&Cb))Gb(a,0);else if(0!==d){2===d&&(n|=64,a.hydrate&&(a.hydrate=
!1,te(a.containerInfo)),c=eg(a),0!==c&&(d=sc(a,c)));if(1===d)throw b=wd,Gb(a,0),Db(a,c),ba(a,P()),b;a.finishedWork=a.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(m(345));case 2:eb(a);break;case 3:Db(a,c);if((c&62914560)===c&&(d=df+500-P(),10<d)){if(0!==Wb(a,0))break;e=a.suspendedLanes;if((e&c)!==c){W();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=$h(eb.bind(null,a),d);break}eb(a);break;case 4:Db(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=
31-Ba(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=P()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>c?4320:1960*Ij(c/1960))-c;if(10<c){a.timeoutHandle=$h(eb.bind(null,a),c);break}eb(a);break;case 5:eb(a);break;default:throw Error(m(329));}}ba(a,P());return a.callbackNode===b?Xh.bind(null,a):null}function Db(a,b){b&=~jf;b&=~Cb;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Ba(b),d=1<<c;a[c]=-1;b&=~d}}function gf(a){if(0!==(n&48))throw Error(m(327));Ra();
if(a===R&&0!==(a.expiredLanes&O)){var b=O;var c=sc(a,b);0!==(Fb&Cb)&&(b=Wb(a,b),c=sc(a,b))}else b=Wb(a,0),c=sc(a,b);0!==a.tag&&2===c&&(n|=64,a.hydrate&&(a.hydrate=!1,te(a.containerInfo)),b=eg(a),0!==b&&(c=sc(a,b)));if(1===c)throw c=wd,Gb(a,0),Db(a,b),ba(a,P()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;eb(a);ba(a,P());return null}function Jj(){if(null!==va){var a=va;va=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;ba(a,P())})}ja()}function ai(a,b){var c=n;n|=1;try{return a(b)}finally{n=
c,0===n&&(Eb(),ja())}}function bi(a,b){var c=n;n&=-2;n|=8;try{return a(b)}finally{n=c,0===n&&(Eb(),ja())}}function pd(a,b){A(cb,ta);ta|=b;Fb|=b}function Gb(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Kj(c));if(null!==G)for(c=G.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&(t(J),t(D));break;case 3:Ab();t(J);t(D);Je();break;case 5:Ge(d);break;case 4:Ab();break;case 13:t(E);break;case 19:t(E);break;case 10:Ae(d);
break;case 23:case 24:ta=cb.current,t(cb)}c=c.return}R=a;G=Ma(a.current,null);O=ta=Fb=b;L=0;wd=null;jf=Cb=La=0}function Zh(a,b){do{var c=G;try{ze();jc.current=jd;if(kd){for(var d=y.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}kd=!1}ic=0;K=N=y=null;kc=!1;kf.current=null;if(null===c||null===c.return){L=1;wd=b;G=null;break}a:{var f=a,g=c.return,h=c,k=b;b=O;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&"object"===typeof k&&"function"===typeof k.then){var l=k;
if(0===(h.mode&2)){var m=h.alternate;m?(h.updateQueue=m.updateQueue,h.memoizedState=m.memoizedState,h.lanes=m.lanes):(h.updateQueue=null,h.memoizedState=null)}var n=0!==(E.current&1),r=g;do{var t;if(t=13===r.tag){var w=r.memoizedState;if(null!==w)t=null!==w.dehydrated?!0:!1;else{var z=r.memoizedProps;t=void 0===z.fallback?!1:!0!==z.unstable_avoidThisFallback?!0:n?!1:!0}}if(t){var C=r.updateQueue;if(null===C){var x=new Set;x.add(l);r.updateQueue=x}else C.add(l);if(0===(r.mode&2)){r.flags|=64;h.flags|=
16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var p=Ia(-1,1);p.tag=2;Ja(h,p)}h.lanes|=1;break a}k=void 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Lj,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var u=Mj.bind(null,f,l,h);l.then(u,u)}r.flags|=4096;r.lanes=b;break a}r=r.return}while(null!==r);k=Error((hb(h.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==
L&&(L=2);k=Xe(k,h);r=g;do{switch(r.tag){case 3:f=k;r.flags|=4096;b&=-b;r.lanes|=b;var B=Mh(r,f,b);ch(r,B);break a;case 1:f=k;var A=r.type,D=r.stateNode;if(0===(r.flags&64)&&("function"===typeof A.getDerivedStateFromError||null!==D&&"function"===typeof D.componentDidCatch&&(null===na||!na.has(D)))){r.flags|=4096;b&=-b;r.lanes|=b;var F=Nh(r,f,b);ch(r,F);break a}}r=r.return}while(null!==r)}ci(c)}catch(qa){b=qa;G===c&&null!==c&&(G=c=c.return);continue}break}while(1)}function Yh(){var a=vd.current;vd.current=
jd;return null===a?jd:a}function sc(a,b){var c=n;n|=16;var d=Yh();R===a&&O===b||Gb(a,b);do try{Nj();break}catch(e){Zh(a,e)}while(1);ze();n=c;vd.current=d;if(null!==G)throw Error(m(261));R=null;O=0;return L}function Nj(){for(;null!==G;)di(G)}function Hj(){for(;null!==G&&!Oj();)di(G)}function di(a){var b=Pj(a.alternate,a,ta);a.memoizedProps=a.pendingProps;null===b?ci(a):G=b;kf.current=null}function ci(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=vj(c,b,ta);if(null!==c){G=c;return}c=
b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(ta&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==a.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=zj(b);if(null!==c){c.flags&=2047;G=c;
return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){G=b;return}G=b=a}while(null!==b);0===L&&(L=5)}function eb(a){var b=wb();Za(99,Qj.bind(null,a,b));return null}function Qj(a,b){do Ra();while(null!==tc);if(0!==(n&48))throw Error(m(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(m(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;
a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Ba(f),v=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~v}null!==va&&0===(d&24)&&va.has(a)&&va.delete(a);a===R&&(G=R=null,O=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=n;n|=32;kf.current=null;lf=Pc;g=xg();if(ne(g)){if("selectionStart"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=
(h=g.ownerDocument)&&h.defaultView||window,(v=h.getSelection&&h.getSelection())&&0!==v.rangeCount){h=v.anchorNode;f=v.anchorOffset;k=v.focusNode;v=v.focusOffset;try{h.nodeType,k.nodeType}catch(qa){h=null;break a}var t=0,w=-1,r=-1,z=0,B=0,y=g,C=null;b:for(;;){for(var x;;){y!==h||0!==f&&3!==y.nodeType||(w=t+f);y!==k||0!==v&&3!==y.nodeType||(r=t+v);3===y.nodeType&&(t+=y.nodeValue.length);if(null===(x=y.firstChild))break;C=y;y=x}for(;;){if(y===g)break b;C===h&&++z===f&&(w=t);C===k&&++B===v&&(r=t);if(null!==
(x=y.nextSibling))break;y=C;C=y.parentNode}y=x}h=-1===w||-1===r?null:{start:w,end:r}}else h=null;h=h||{start:0,end:0}}else h=null;mf={focusedElem:g,selectionRange:h};Pc=!1;uc=null;xd=!1;l=d;do try{Rj()}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);uc=null;l=d;do try{for(g=a;null!==l;){var p=l.flags;p&16&&qc(l.stateNode,"");if(p&128){var q=l.alternate;if(null!==q){var u=q.ref;null!==u&&("function"===typeof u?u(null):u.current=null)}}switch(p&1038){case 2:Vh(l);l.flags&=
-3;break;case 6:Vh(l);l.flags&=-3;cf(l.alternate,l);break;case 1024:l.flags&=-1025;break;case 1028:l.flags&=-1025;cf(l.alternate,l);break;case 4:cf(l.alternate,l);break;case 8:h=l;Sh(g,h);var A=h.alternate;Th(h);null!==A&&Th(A)}l=l.nextEffect}}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);u=mf;q=xg();p=u.focusedElem;g=u.selectionRange;if(q!==p&&p&&p.ownerDocument&&wg(p.ownerDocument.documentElement,p)){null!==g&&ne(p)&&(q=g.start,u=g.end,void 0===u&&(u=q),"selectionStart"in
p?(p.selectionStart=q,p.selectionEnd=Math.min(u,p.value.length)):(u=(q=p.ownerDocument||document)&&q.defaultView||window,u.getSelection&&(u=u.getSelection(),h=p.textContent.length,A=Math.min(g.start,h),g=void 0===g.end?A:Math.min(g.end,h),!u.extend&&A>g&&(h=g,g=A,A=h),h=vg(p,A),f=vg(p,g),h&&f&&(1!==u.rangeCount||u.anchorNode!==h.node||u.anchorOffset!==h.offset||u.focusNode!==f.node||u.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),u.removeAllRanges(),A>g?(u.addRange(q),u.extend(f.node,
f.offset)):(q.setEnd(f.node,f.offset),u.addRange(q))))));q=[];for(u=p;u=u.parentNode;)1===u.nodeType&&q.push({element:u,left:u.scrollLeft,top:u.scrollTop});"function"===typeof p.focus&&p.focus();for(p=0;p<q.length;p++)u=q[p],u.element.scrollLeft=u.left,u.element.scrollTop=u.top}Pc=!!lf;mf=lf=null;a.current=c;l=d;do try{for(p=a;null!==l;){var D=l.flags;D&36&&Bj(p,l.alternate,l);if(D&128){q=void 0;var E=l.ref;if(null!==E){var F=l.stateNode;switch(l.tag){case 5:q=F;break;default:q=F}"function"===typeof E?
E(q):E.current=q}}l=l.nextEffect}}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);l=null;Sj();n=e}else a.current=c;if(Sa)Sa=!1,tc=a,vc=b;else for(l=d;null!==l;)b=l.nextEffect,l.nextEffect=null,l.flags&8&&(D=l,D.sibling=null,D.stateNode=null),l=b;d=a.pendingLanes;0===d&&(na=null);1===d?a===ff?rc++:(rc=0,ff=a):rc=0;c=c.stateNode;if(db&&"function"===typeof db.onCommitFiberRoot)try{db.onCommitFiberRoot($e,c,void 0,64===(c.current.flags&64))}catch(qa){}ba(a,P());if(rd)throw rd=
!1,a=Ze,Ze=null,a;if(0!==(n&8))return null;ja();return null}function Rj(){for(;null!==l;){var a=l.alternate;xd||null===uc||(0!==(l.flags&8)?Wf(l,uc)&&(xd=!0):13===l.tag&&Fj(a,l)&&Wf(l,uc)&&(xd=!0));var b=l.flags;0!==(b&256)&&Aj(a,l);0===(b&512)||Sa||(Sa=!0,bc(97,function(){Ra();return null}));l=l.nextEffect}}function Ra(){if(90!==vc){var a=97<vc?97:vc;vc=90;return Za(a,Tj)}return!1}function Cj(a,b){nf.push(b,a);Sa||(Sa=!0,bc(97,function(){Ra();return null}))}function Ph(a,b){of.push(b,a);Sa||(Sa=
!0,bc(97,function(){Ra();return null}))}function Tj(){if(null===tc)return!1;var a=tc;tc=null;if(0!==(n&48))throw Error(m(331));var b=n;n|=32;var c=of;of=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if("function"===typeof g)try{g()}catch(k){if(null===f)throw Error(m(330));Qa(f,k)}}c=nf;nf=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(m(330));Qa(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,
h.nextEffect=null,h.flags&8&&(h.sibling=null,h.stateNode=null),h=a;n=b;ja();return!0}function ei(a,b,c){b=Xe(c,b);b=Mh(a,b,1);Ja(a,b);b=W();a=ud(a,1);null!==a&&(Oc(a,1,b),ba(a,b))}function Qa(a,b){if(3===a.tag)ei(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){ei(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if("function"===typeof c.type.getDerivedStateFromError||"function"===typeof d.componentDidCatch&&(null===na||!na.has(d))){a=Xe(b,a);var e=Nh(c,a,1);Ja(c,e);e=W();c=ud(c,1);if(null!==
c)Oc(c,1,e),ba(c,e);else if("function"===typeof d.componentDidCatch&&(null===na||!na.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}function Mj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=W();a.pingedLanes|=a.suspendedLanes&c;R===a&&(O&c)===c&&(4===L||3===L&&(O&62914560)===O&&500>P()-df?Gb(a,0):jf|=c);ba(a,b)}function Ej(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===wb()?1:2:(0===ua&&(ua=Fb),b=nb(62914560&~ua),0===b&&(b=4194304)));
c=W();a=ud(a,b);null!==a&&(Oc(a,b,c),ba(a,c))}function Uj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function Qe(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Vj(a){if("function"===
typeof a)return Qe(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Dc)return 11;if(a===Ec)return 14}return 2}function Ma(a,b){var c=a.alternate;null===c?(c=Z(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=
a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}function fd(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)Qe(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case wa:return zb(c.children,e,f,b);case fi:g=8;e|=16;break;case Hd:g=8;e|=1;break;case Lb:return a=Z(12,c,b,e|8),a.elementType=Lb,a.type=Lb,a.lanes=f,a;case Mb:return a=Z(13,c,b,e),a.type=Mb,a.elementType=Mb,a.lanes=
f,a;case Cc:return a=Z(19,c,b,e),a.elementType=Cc,a.lanes=f,a;case pf:return Ue(c,e,f,b);case qf:return a=Z(24,c,b,e),a.elementType=qf,a.lanes=f,a;default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case Jd:g=10;break a;case Id:g=9;break a;case Dc:g=11;break a;case Ec:g=14;break a;case Ld:g=16;d=null;break a;case Kd:g=22;break a}throw Error(m(130,null==a?a:typeof a,""));}b=Z(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function zb(a,b,c,d){a=Z(7,a,d,b);a.lanes=c;return a}function Ue(a,
b,c,d){a=Z(23,a,d,b);a.elementType=pf;a.lanes=c;return a}function De(a,b,c){a=Z(6,a,null,b);a.lanes=c;return a}function Ee(a,b,c){b=Z(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function Wj(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=
null;this.callbackPriority=0;this.eventTimes=ge(0);this.expirationTimes=ge(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=ge(0);this.mutableSourceEagerHydrationData=null}function Xj(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ua,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}function yd(a,b,c,d){var e=b.current,f=W(),g=Oa(e);
a:if(c){c=c._reactInternals;b:{if(Va(c)!==c||1!==c.tag)throw Error(m(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(S(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(m(171));}if(1===c.tag){var k=c.type;if(S(k)){c=Tg(c,k,h);break a}}c=h}else c=Ha;null===b.context?b.context=c:b.pendingContext=c;b=Ia(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);Ja(e,b);Pa(e,g,f);return g}function rf(a){a=
a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function gi(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function sf(a,b){gi(a,b);(a=a.alternate)&&gi(a,b)}function Yj(a){a=Vf(a);return null===a?null:a.stateNode}function Zj(a){return null}function tf(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new Wj(a,b,null!=c&&!0===c.hydrate);
b=Z(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;Be(b);a[rb]=c.current;Cg(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}function wc(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function ak(a,b){b||(b=a?9===
a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute("data-reactroot")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new tf(a,0,b?{hydrate:!0}:void 0)}function zd(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if("function"===typeof e){var h=e;e=function(){var a=rf(g);h.call(a)}}yd(b,g,a,e)}else{f=c._reactRootContainer=ak(c,d);g=f._internalRoot;if("function"===typeof e){var k=e;e=function(){var a=rf(g);k.call(a)}}bi(function(){yd(b,
g,a,e)})}return rf(g)}function hi(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!wc(b))throw Error(m(200));return Xj(a,b,null,c)}if(!ha)throw Error(m(227));var zf=new Set,Ib={},oa=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),mi=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,
Af=Object.prototype.hasOwnProperty,Cf={},Bf={},I={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){I[a]=new Q(a,0,!1,a,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];I[b]=new Q(b,1,!1,a[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){I[a]=
new Q(a,2,!1,a.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){I[a]=new Q(a,2,!1,a,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){I[a]=new Q(a,3,!1,a.toLowerCase(),null,!1,!1)});["checked","multiple",
"muted","selected"].forEach(function(a){I[a]=new Q(a,3,!0,a,null,!1,!1)});["capture","download"].forEach(function(a){I[a]=new Q(a,4,!1,a,null,!1,!1)});["cols","rows","size","span"].forEach(function(a){I[a]=new Q(a,6,!1,a,null,!1,!1)});["rowSpan","start"].forEach(function(a){I[a]=new Q(a,5,!1,a.toLowerCase(),null,!1,!1)});var uf=/[\-:]([a-z])/g,vf=function(a){return a[1].toUpperCase()};"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=
a.replace(uf,vf);I[b]=new Q(b,1,!1,a,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(uf,vf);I[b]=new Q(b,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(uf,vf);I[b]=new Q(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(a){I[a]=new Q(a,1,!1,a.toLowerCase(),null,!1,!1)});I.xlinkHref=new Q("xlinkHref",
1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(a){I[a]=new Q(a,1,!1,a.toLowerCase(),null,!0,!0)});var B=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.assign,fb=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ec=60103,Ua=60106,wa=60107,Hd=60108,Lb=60114,Jd=60109,Id=60110,Dc=60112,Mb=60113,Cc=60120,Ec=60115,Ld=60116,Kd=60121,ue=60128,fi=60129,pf=60130,qf=60131;if("function"===typeof Symbol&&Symbol.for){var H=Symbol.for;ec=
H("react.element");Ua=H("react.portal");wa=H("react.fragment");Hd=H("react.strict_mode");Lb=H("react.profiler");Jd=H("react.provider");Id=H("react.context");Dc=H("react.forward_ref");Mb=H("react.suspense");Cc=H("react.suspense_list");Ec=H("react.memo");Ld=H("react.lazy");Kd=H("react.block");H("react.scope");ue=H("react.opaque.id");fi=H("react.debug_trace_mode");pf=H("react.offscreen");qf=H("react.legacy_hidden")}var Df="function"===typeof Symbol&&Symbol.iterator,Fd,Gd=!1,Ad,Lh=function(a){return"undefined"!==
typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if("http://www.w3.org/2000/svg"!==a.namespaceURI||"innerHTML"in a)a.innerHTML=b;else{Ad=Ad||document.createElement("div");Ad.innerHTML="<svg>"+b.valueOf().toString()+"</svg>";for(b=Ad.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}),qc=function(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=
b;return}}a.textContent=b},Nb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,
zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bk=["Webkit","ms","Moz","O"];Object.keys(Nb).forEach(function(a){bk.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Nb[b]=Nb[a]})});var si=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Vd=null,jb=null,kb=null,me=function(a,b){return a(b)},fg=function(a,
b,c,d,e){return a(b,c,d,e)},Xd=function(){},Sf=me,Xa=!1,Yd=!1,qe=!1;if(oa)try{var xc={};Object.defineProperty(xc,"passive",{get:function(){qe=!0}});window.addEventListener("test",xc,xc);window.removeEventListener("test",xc,xc)}catch(a){qe=!1}var vi=function(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(Da){this.onError(Da)}},Qb=!1,Ic=null,Jc=!1,Zd=null,wi={onError:function(a){Qb=!0;Ic=a}},ca=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Scheduler,
ck=ca.unstable_cancelCallback,Bd=ca.unstable_now,$f=ca.unstable_scheduleCallback,dk=ca.unstable_shouldYield,ii=ca.unstable_requestPaint,ae=ca.unstable_runWithPriority,ek=ca.unstable_getCurrentPriorityLevel,fk=ca.unstable_ImmediatePriority,ji=ca.unstable_UserBlockingPriority,ag=ca.unstable_NormalPriority,gk=ca.unstable_LowPriority,hk=ca.unstable_IdlePriority,ce=!1,ia=[],ya=null,za=null,Aa=null,Rb=new Map,Sb=new Map,Vb=[],gg="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" "),
lb={animationend:Lc("Animation","AnimationEnd"),animationiteration:Lc("Animation","AnimationIteration"),animationstart:Lc("Animation","AnimationStart"),transitionend:Lc("Transition","TransitionEnd")},de={},cg={};oa&&(cg=document.createElement("div").style,"AnimationEvent"in window||(delete lb.animationend.animation,delete lb.animationiteration.animation,delete lb.animationstart.animation),"TransitionEvent"in window||delete lb.transitionend.transition);var Hg=Mc("animationend"),Ig=Mc("animationiteration"),
Jg=Mc("animationstart"),Kg=Mc("transitionend"),dg=new Map,fe=new Map,ik=["abort","abort",Hg,"animationEnd",Ig,"animationIteration",Jg,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing",
"playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Kg,"transitionEnd","waiting","waiting"];Bd();var w=8,Ba=Math.clz32?Math.clz32:Hi,Ii=Math.log,Ji=Math.LN2,Ni=ji,Mi=ae,Pc=!0,Ca=null,ie=null,Qc=null,Hb={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},le=V(Hb),yc=B({},Hb,{view:0,detail:0}),hj=V(yc),wf,xf,zc,Cd=B({},yc,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,
pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:je,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if("movementX"in a)return a.movementX;a!==zc&&(zc&&"mousemove"===a.type?(wf=a.screenX-zc.screenX,xf=a.screenY-zc.screenY):xf=wf=0,zc=a);return wf},movementY:function(a){return"movementY"in a?a.movementY:xf}}),Gg=V(Cd),jk=B({},Cd,{dataTransfer:0}),dj=V(jk),kk=B({},
yc,{relatedTarget:0}),re=V(kk),lk=B({},Hb,{animationName:0,elapsedTime:0,pseudoElement:0}),fj=V(lk),mk=B({},Hb,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),jj=V(mk),nk=B({},Hb,{data:0}),Og=V(nk),mj=Og,ok={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},pk={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",
16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Pi={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},qk=B({},yc,{key:function(a){if(a.key){var b=ok[a.key]||a.key;if("Unidentified"!==
b)return b}return"keypress"===a.type?(a=Rc(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?pk[a.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:je,charCode:function(a){return"keypress"===a.type?Rc(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===a.type?Rc(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),cj=V(qk),rk=B({},
Cd,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Lg=V(rk),sk=B({},yc,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:je}),ej=V(sk),tk=B({},Hb,{propertyName:0,elapsedTime:0,pseudoElement:0}),gj=V(tk),uk=B({},Cd,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in
a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),ij=V(uk),Qi=[9,13,27,32],ke=oa&&"CompositionEvent"in window,Ac=null;oa&&"documentMode"in document&&(Ac=document.documentMode);var lj=oa&&"TextEvent"in window&&!Ac,og=oa&&(!ke||Ac&&8<Ac&&11>=Ac),ng=String.fromCharCode(32),mg=!1,ob=!1,Ti={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},Xb=null,Yb=null,Ng=!1;oa&&(Ng=Ui("input")&&(!document.documentMode||9<document.documentMode));
var X="function"===typeof Object.is?Object.is:aj,bj=Object.prototype.hasOwnProperty,kj=oa&&"documentMode"in document&&11>=document.documentMode,qb=null,pe=null,$b=null,oe=!1;ee("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),
0);ee("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1);ee(ik,2);(function(a,b){for(var c=0;c<a.length;c++)fe.set(a[c],b)})("change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),0);gb("onMouseEnter",["mouseout","mouseover"]);
gb("onMouseLeave",["mouseout","mouseover"]);gb("onPointerEnter",["pointerout","pointerover"]);gb("onPointerLeave",["pointerout","pointerover"]);Ta("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Ta("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Ta("onBeforeInput",["compositionend","keypress","textInput","paste"]);Ta("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));
Ta("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Ta("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var pc="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Eg=new Set("cancel close invalid load scroll toggle".split(" ").concat(pc)),
Dg="_reactListening"+Math.random().toString(36).slice(2),lf=null,mf=null,$h="function"===typeof setTimeout?setTimeout:void 0,Kj="function"===typeof clearTimeout?clearTimeout:void 0,yf=0,Dd=Math.random().toString(36).slice(2),Fa="__reactFiber$"+Dd,Wc="__reactProps$"+Dd,rb="__reactContainer$"+Dd,Rg="__reactEvents$"+Dd,ve=[],ub=-1,Ha={},D=Ga(Ha),J=Ga(!1),Ya=Ha,$e=null,db=null,pj=ae,we=$f,xe=ck,oj=ek,Yc=fk,Vg=ji,Wg=ag,Xg=gk,Yg=hk,hf={},Oj=dk,Sj=void 0!==ii?ii:function(){},pa=null,Zc=null,ye=!1,ki=Bd(),
P=1E4>ki?Bd:function(){return Bd()-ki},Gj=fb.ReactCurrentBatchConfig,bd=Ga(null),ad=null,xb=null,$c=null,Ka=!1,hh=(new ha.Component).refs,dd={isMounted:function(a){return(a=a._reactInternals)?Va(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=W(),e=Oa(a),f=Ia(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ja(a,f);Pa(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=W(),e=Oa(a),f=Ia(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ja(a,f);
Pa(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=W(),d=Oa(a),e=Ia(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);Ja(a,e);Pa(a,d,c)}},gd=Array.isArray,od=ih(!0),xh=ih(!1),fc={},ka=Ga(fc),hc=Ga(fc),gc=Ga(fc),E=Ga(0),ra=null,Na=null,la=!1,Bb=[],jc=fb.ReactCurrentDispatcher,aa=fb.ReactCurrentBatchConfig,ic=0,y=null,N=null,K=null,kd=!1,kc=!1,jd={readContext:Y,useCallback:T,useContext:T,useEffect:T,useImperativeHandle:T,useLayoutEffect:T,useMemo:T,useReducer:T,useRef:T,useState:T,
useDebugValue:T,useDeferredValue:T,useTransition:T,useMutableSource:T,useOpaqueIdentifier:T,unstable_isNewReconciler:!1},qj={readContext:Y,useCallback:function(a,b){ab().memoizedState=[a,void 0===b?null:b];return a},useContext:Y,useEffect:rh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ne(4,2,th.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ne(4,2,a,b)},useMemo:function(a,b){var c=ab();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,
b,c){var d=ab();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Me.bind(null,y,a);return[d.memoizedState,a]},useRef:qh,useState:nc,useDebugValue:Pe,useDeferredValue:function(a){var b=nc(a),c=b[0],d=b[1];rh(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=nc(!1),b=a[0];a=tj.bind(null,a[1]);qh(a);return[a,b]},useMutableSource:function(a,
b,c){var d=ab();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return oh(d,a,b,c)},useOpaqueIdentifier:function(){if(la){var a=!1,b=nj(function(){a||(a=!0,c("r:"+(yf++).toString(36)));throw Error(m(355));}),c=nc(b)[1];0===(y.mode&2)&&(y.flags|=516,ld(5,function(){c("r:"+(yf++).toString(36))},void 0,null));return b}b="r:"+(yf++).toString(36);nc(b);return b},unstable_isNewReconciler:!1},rj={readContext:Y,useCallback:vh,useContext:Y,useEffect:nd,useImperativeHandle:uh,useLayoutEffect:sh,
useMemo:wh,useReducer:lc,useRef:md,useState:function(a){return lc(ma)},useDebugValue:Pe,useDeferredValue:function(a){var b=lc(ma),c=b[0],d=b[1];nd(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=lc(ma)[0];return[md().current,a]},useMutableSource:ph,useOpaqueIdentifier:function(){return lc(ma)[0]},unstable_isNewReconciler:!1},sj={readContext:Y,useCallback:vh,useContext:Y,useEffect:nd,useImperativeHandle:uh,useLayoutEffect:sh,
useMemo:wh,useReducer:mc,useRef:md,useState:function(a){return mc(ma)},useDebugValue:Pe,useDeferredValue:function(a){var b=mc(ma),c=b[0],d=b[1];nd(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=mc(ma)[0];return[md().current,a]},useMutableSource:ph,useOpaqueIdentifier:function(){return mc(ma)[0]},unstable_isNewReconciler:!1},uj=fb.ReactCurrentOwner,fa=!1,qd={dehydrated:null,retryLane:0};var xj=function(a,b,c,d){for(c=
b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};var Kh=function(a){};var wj=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){a=b.stateNode;$a(ka.current);e=null;switch(c){case "input":f=Md(a,f);d=Md(a,d);e=[];break;case "option":f=Pd(a,f);d=Pd(a,d);e=[];break;case "select":f=
B({},f,{value:void 0});d=B({},d,{value:void 0});e=[];break;case "textarea":f=Qd(a,f);d=Qd(a,d);e=[];break;default:"function"!==typeof f.onClick&&"function"===typeof d.onClick&&(a.onclick=Vc)}Sd(c,d);var g;c=null;for(l in f)if(!d.hasOwnProperty(l)&&f.hasOwnProperty(l)&&null!=f[l])if("style"===l){var h=f[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]="")}else"dangerouslySetInnerHTML"!==l&&"children"!==l&&"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(Ib.hasOwnProperty(l)?
e||(e=[]):(e=e||[]).push(l,null));for(l in d){var k=d[l];h=null!=f?f[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if("style"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]="");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(e||(e=[]),e.push(l,c)),c=k;else"dangerouslySetInnerHTML"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(e=e||[]).push(l,k)):"children"===l?"string"!==typeof k&&"number"!==typeof k||(e=
e||[]).push(l,""+k):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&(Ib.hasOwnProperty(l)?(null!=k&&"onScroll"===l&&z("scroll",a),e||h===k||(e=[])):"object"===typeof k&&null!==k&&k.$$typeof===ue?k.toString():(e=e||[]).push(l,k))}c&&(e=e||[]).push("style",c);var l=e;if(b.updateQueue=l)b.flags|=4}};var yj=function(a,b,c,d){c!==d&&(b.flags|=4)};var Lj="function"===typeof WeakMap?WeakMap:Map,Dj="function"===typeof WeakSet?WeakSet:Set,Ij=Math.ceil,vd=fb.ReactCurrentDispatcher,kf=
fb.ReactCurrentOwner,n=0,R=null,G=null,O=0,ta=0,cb=Ga(0),L=0,wd=null,Fb=0,La=0,Cb=0,jf=0,ef=null,df=0,We=Infinity,l=null,rd=!1,Ze=null,na=null,Sa=!1,tc=null,vc=90,nf=[],of=[],va=null,rc=0,ff=null,sd=-1,ua=0,td=0,uc=null,xd=!1;var Pj=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||J.current)fa=!0;else if(0!==(c&d))fa=0!==(a.flags&16384)?!0:!1;else{fa=!1;switch(b.tag){case 3:Dh(b);Ie();break;case 5:jh(b);break;case 1:S(b.type)&&Xc(b);break;case 4:Fe(b,b.stateNode.containerInfo);
break;case 10:d=b.memoizedProps.value;var e=b.type._context;A(bd,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return Eh(a,b,c);A(E,E.current&1);b=sa(a,b,c);return null!==b?b.sibling:null}A(E,E.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Jh(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);A(E,E.current);if(d)break;else return null;case 23:case 24:return b.lanes=
0,Se(a,b,c)}return sa(a,b,c)}else fa=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=vb(b,D.current);yb(b,c);e=Le(null,b,d,a,e,c);b.flags|=1;if("object"===typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(S(d)){var f=!0;Xc(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;Be(b);var g=d.getDerivedStateFromProps;"function"===typeof g&&
cd(b,d,g,a);e.updater=dd;b.stateNode=e;e._reactInternals=b;Ce(b,d,a,c);b=Te(null,b,d,!0,f,c)}else b.tag=0,U(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=Vj(e);a=ea(e,a);switch(f){case 0:b=Re(null,b,e,a,c);break a;case 1:b=Ch(null,b,e,a,c);break a;case 11:b=yh(null,b,e,a,c);break a;case 14:b=zh(null,b,e,ea(e.type,a),d,c);break a}throw Error(m(306,e,""));}return b;case 0:return d=
b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),Re(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),Ch(a,b,d,e,c);case 3:Dh(b);d=b.updateQueue;if(null===a||null===d)throw Error(m(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;bh(a,b);cc(b,d,null,c);d=b.memoizedState.element;if(d===e)Ie(),b=sa(a,b,c);else{e=b.stateNode;if(f=e.hydrate)Na=tb(b.stateNode.containerInfo.firstChild),ra=b,f=la=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=
a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],Bb.push(f);c=xh(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else U(a,b,d,c),Ie();b=b.child}return b;case 5:return jh(b),null===a&&He(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,se(d,e)?g=null:null!==f&&se(d,f)&&(b.flags|=16),Bh(a,b),U(a,b,g,c),b.child;case 6:return null===a&&He(b),null;case 13:return Eh(a,b,c);case 4:return Fe(b,b.stateNode.containerInfo),d=b.pendingProps,null===
a?b.child=od(b,null,d,c):U(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),yh(a,b,d,e,c);case 7:return U(a,b,b.pendingProps,c),b.child;case 8:return U(a,b,b.pendingProps.children,c),b.child;case 12:return U(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;A(bd,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=X(h,f)?0:("function"===typeof d._calculateChangedBits?
d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!J.current){b=sa(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Ia(-1,c&-c),l.tag=2,Ja(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);ah(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=
h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}U(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,yb(b,c),e=Y(e,f.unstable_observedBits),d=d(e),b.flags|=1,U(a,b,d,c),b.child;case 14:return e=b.type,f=ea(e,b.pendingProps),f=ea(e.type,f),zh(a,b,e,f,d,c);case 15:return Ah(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),null!==a&&(a.alternate=null,b.alternate=
null,b.flags|=2),b.tag=1,S(d)?(a=!0,Xc(b)):a=!1,yb(b,c),fh(b,d,e),Ce(b,d,e,c),Te(null,b,d,!0,a,c);case 19:return Jh(a,b,c);case 23:return Se(a,b,c);case 24:return Se(a,b,c)}throw Error(m(156,b.tag));};var Z=function(a,b,c,d){return new Uj(a,b,c,d)};tf.prototype.render=function(a){yd(a,this._internalRoot,null,null)};tf.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;yd(null,a,null,function(){b[rb]=null})};var Ei=function(a){if(13===a.tag){var b=W();Pa(a,4,b);sf(a,4)}};var Yf=
function(a){if(13===a.tag){var b=W();Pa(a,67108864,b);sf(a,67108864)}};var Ci=function(a){if(13===a.tag){var b=W(),c=Oa(a);Pa(a,c,b);sf(a,c)}};var Bi=function(a,b){return b()};Vd=function(a,b,c){switch(b){case "input":Nd(a,c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Hc(d);if(!e)throw Error(m(90));Ff(d);Nd(d,e)}}}break;case "textarea":Kf(a,
c);break;case "select":b=c.value,null!=b&&ib(a,!!c.multiple,b,!1)}};(function(a,b,c,d){me=a;fg=b;Xd=c;Sf=d})(ai,function(a,b,c,d,e){var f=n;n|=4;try{return Za(98,a.bind(null,b,c,d,e))}finally{n=f,0===n&&(Eb(),ja())}},function(){0===(n&49)&&(Jj(),Ra())},function(a,b){var c=n;n|=2;try{return a(b)}finally{n=c,0===n&&(Eb(),ja())}});var vk={Events:[Ob,pb,Hc,Qf,Rf,Ra,{current:!1}]};(function(a){a={bundleType:a.bundleType,version:a.version,rendererPackageName:a.rendererPackageName,rendererConfig:a.rendererConfig,
overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:fb.ReactCurrentDispatcher,findHostInstanceByFiber:Yj,findFiberByHostInstance:a.findFiberByHostInstance||Zj,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)a=
!1;else{var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!b.isDisabled&&b.supportsFiber)try{$e=b.inject(a),db=b}catch(c){}a=!0}return a})({findFiberByHostInstance:Wa,bundleType:0,version:"17.0.1",rendererPackageName:"react-dom"});M.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;M.createPortal=hi;M.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if("function"===typeof a.render)throw Error(m(188));throw Error(m(268,Object.keys(a)));
}a=Vf(b);a=null===a?null:a.stateNode;return a};M.flushSync=function(a,b){var c=n;if(0!==(c&48))return a(b);n|=1;try{if(a)return Za(99,a.bind(null,b))}finally{n=c,ja()}};M.hydrate=function(a,b,c){if(!wc(b))throw Error(m(200));return zd(null,a,b,!0,c)};M.render=function(a,b,c){if(!wc(b))throw Error(m(200));return zd(null,a,b,!1,c)};M.unmountComponentAtNode=function(a){if(!wc(a))throw Error(m(40));return a._reactRootContainer?(bi(function(){zd(null,null,a,!1,function(){a._reactRootContainer=null;a[rb]=
null})}),!0):!1};M.unstable_batchedUpdates=ai;M.unstable_createPortal=function(a,b){return hi(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};M.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!wc(c))throw Error(m(200));if(null==a||void 0===a._reactInternals)throw Error(m(38));return zd(a,b,c,!1,d)};M.version="17.0.1"});
})();/*! instant.page v5.1.0 - (C) 2019-2020 Alexandre Dieulot - https://instant.page/license */

let mouseoverTimer
let lastTouchTimestamp
const prefetches = new Set()
const prefetchElement = document.createElement('link')
const isSupported = prefetchElement.relList && prefetchElement.relList.supports && prefetchElement.relList.supports('prefetch')
                    && window.IntersectionObserver && 'isIntersecting' in IntersectionObserverEntry.prototype
const allowQueryString = 'instantAllowQueryString' in document.body.dataset
const allowExternalLinks = 'instantAllowExternalLinks' in document.body.dataset
const useWhitelist = 'instantWhitelist' in document.body.dataset
const mousedownShortcut = 'instantMousedownShortcut' in document.body.dataset
const DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION = 1111

let delayOnHover = 65
let useMousedown = false
let useMousedownOnly = false
let useViewport = false

if ('instantIntensity' in document.body.dataset) {
  const intensity = document.body.dataset.instantIntensity

  if (intensity.substr(0, 'mousedown'.length) == 'mousedown') {
    useMousedown = true
    if (intensity == 'mousedown-only') {
      useMousedownOnly = true
    }
  }
  else if (intensity.substr(0, 'viewport'.length) == 'viewport') {
    if (!(navigator.connection && (navigator.connection.saveData || (navigator.connection.effectiveType && navigator.connection.effectiveType.includes('2g'))))) {
      if (intensity == "viewport") {
        /* Biggest iPhone resolution (which we want): 414 × 896 = 370944
         * Small 7" tablet resolution (which we don’t want): 600 × 1024 = 614400
         * Note that the viewport (which we check here) is smaller than the resolution due to the UI’s chrome */
        if (document.documentElement.clientWidth * document.documentElement.clientHeight < 450000) {
          useViewport = true
        }
      }
      else if (intensity == "viewport-all") {
        useViewport = true
      }
    }
  }
  else {
    const milliseconds = parseInt(intensity)
    if (!isNaN(milliseconds)) {
      delayOnHover = milliseconds
    }
  }
}

if (isSupported) {
  const eventListenersOptions = {
    capture: true,
    passive: true,
  }

  if (!useMousedownOnly) {
    document.addEventListener('touchstart', touchstartListener, eventListenersOptions)
  }

  if (!useMousedown) {
    document.addEventListener('mouseover', mouseoverListener, eventListenersOptions)
  }
  else if (!mousedownShortcut) {
      document.addEventListener('mousedown', mousedownListener, eventListenersOptions)
  }

  if (mousedownShortcut) {
    document.addEventListener('mousedown', mousedownShortcutListener, eventListenersOptions)
  }

  if (useViewport) {
    let triggeringFunction
    if (window.requestIdleCallback) {
      triggeringFunction = (callback) => {
        requestIdleCallback(callback, {
          timeout: 1500,
        })
      }
    }
    else {
      triggeringFunction = (callback) => {
        callback()
      }
    }

    triggeringFunction(() => {
      const intersectionObserver = new IntersectionObserver((entries) => {
        entries.forEach((entry) => {
          if (entry.isIntersecting) {
            const linkElement = entry.target
            intersectionObserver.unobserve(linkElement)
            preload(linkElement.href)
          }
        })
      })

      document.querySelectorAll('a').forEach((linkElement) => {
        if (isPreloadable(linkElement)) {
          intersectionObserver.observe(linkElement)
        }
      })
    })
  }
}

function touchstartListener(event) {
  /* Chrome on Android calls mouseover before touchcancel so `lastTouchTimestamp`
   * must be assigned on touchstart to be measured on mouseover. */
  lastTouchTimestamp = performance.now()

  const linkElement = event.target.closest('a')

  if (!isPreloadable(linkElement)) {
    return
  }

  preload(linkElement.href)
}

function mouseoverListener(event) {
  if (performance.now() - lastTouchTimestamp < DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION) {
    return
  }

  const linkElement = event.target.closest('a')

  if (!isPreloadable(linkElement)) {
    return
  }

  linkElement.addEventListener('mouseout', mouseoutListener, {passive: true})

  mouseoverTimer = setTimeout(() => {
    preload(linkElement.href)
    mouseoverTimer = undefined
  }, delayOnHover)
}

function mousedownListener(event) {
  const linkElement = event.target.closest('a')

  if (!isPreloadable(linkElement)) {
    return
  }

  preload(linkElement.href)
}

function mouseoutListener(event) {
  if (event.relatedTarget && event.target.closest('a') == event.relatedTarget.closest('a')) {
    return
  }

  if (mouseoverTimer) {
    clearTimeout(mouseoverTimer)
    mouseoverTimer = undefined
  }
}

function mousedownShortcutListener(event) {
  if (performance.now() - lastTouchTimestamp < DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION) {
    return
  }

  const linkElement = event.target.closest('a')

  if (event.which > 1 || event.metaKey || event.ctrlKey) {
    return
  }

  if (!linkElement) {
    return
  }

  linkElement.addEventListener('click', function (event) {
    if (event.detail == 1337) {
      return
    }

    event.preventDefault()
  }, {capture: true, passive: false, once: true})

  const customEvent = new MouseEvent('click', {view: window, bubbles: true, cancelable: false, detail: 1337})
  linkElement.dispatchEvent(customEvent)
}

function isPreloadable(linkElement) {
  if (!linkElement || !linkElement.href) {
    return
  }

  if (useWhitelist && !('instant' in linkElement.dataset)) {
    return
  }

  if (!allowExternalLinks && linkElement.origin != location.origin && !('instant' in linkElement.dataset)) {
    return
  }

  if (!['http:', 'https:'].includes(linkElement.protocol)) {
    return
  }

  if (linkElement.protocol == 'http:' && location.protocol == 'https:') {
    return
  }

  if (!allowQueryString && linkElement.search && !('instant' in linkElement.dataset)) {
    return
  }

  if (linkElement.hash && linkElement.pathname + linkElement.search == location.pathname + location.search) {
    return
  }

  if ('noInstant' in linkElement.dataset) {
    return
  }

  return true
}

function preload(url) {
  if (prefetches.has(url)) {
    return
  }

  const prefetcher = document.createElement('link')
  prefetcher.rel = 'prefetch'
  prefetcher.href = url
  document.head.appendChild(prefetcher)

  prefetches.add(url)
}@font-face {
	font-family: 'litespeedfont';
	src: url('fonts/litespeedfont.eot?rs8ttq');
	src: url('fonts/litespeedfont.eot?rs8ttq#iefix') format('embedded-opentype'),
		url('fonts/litespeedfont.ttf?rs8ttq') format('truetype'),
		url('fonts/litespeedfont.woff?rs8ttq') format('woff'),
		url('fonts/litespeedfont.svg?rs8ttq#litespeedfont') format('svg');
	font-weight: normal;
	font-style: normal;
}

#adminmenu #toplevel_page_lscache-settings .menu-icon-generic div.wp-menu-image:before,
#adminmenu #toplevel_page_litespeed .menu-icon-generic div.wp-menu-image:before,
.litespeed-top-toolbar .ab-icon::before {
	content: "\e900";
	font-family: 'litespeedfont' !important;
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;

	/* Better Font Rendering =========== */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

}

*[litespeed-accesskey]:before {
	content: '['attr(litespeed-accesskey) '] ';
}


/* =======================================
   		  UTILITIES - structure
======================================= */

.litespeed-quic-icon {
	background-image: url('../img/quic-cloud-icon-16x16.svg');
	background-repeat: no-repeat;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	display: inline-block;
}


.litespeed-row {
	margin-top: 5px;
}

.litespeed-reset {
	width: initial;
}

.litespeed-inline {
	display: inline-block;
}

.litespeed-flex-container {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	height: auto;
}

.litespeed-flex-container>* {
	box-sizing: border-box;
}

.litespeed-flex-container .litespeed-icon-vertical-middle {
	margin-left: 0;
}

.litespeed-row-flex {
	display: inline-flex;
}

.litespeed-flex-wrap {
	flex-wrap: wrap;
}

.litespeed-width-1-2 {
	width: 45%;
	padding: 20px;
}

.litespeed-width-1-3 {
	width: 30%;
	padding: 25px;
}

.litespeed-width-7-10 {
	width: 65%;
	padding: 20px;
}

.litespeed-width-3-10 {
	width: 35%;
	padding: 20px;
}

@media screen and (max-width: 814px) {
	.litespeed-width-7-10 {
		width: 100%;
	}

	.litespeed-width-3-10 {
		width: 100%;
	}
}

.litespeed-hide {
	display: none !important;
}

.litespeed-right {
	float: right !important;
}

.litespeed-relative {
	position: relative;
}

.litespeed-align-center {
	margin-left: auto;
	margin-right: auto;
}

/* =======================================
   		  UTILITIES - spacing
======================================= */

.litespeed-left10 {
	margin-left: 10px !important;
}

.litespeed-left20 {
	margin-left: 20px !important;
}

.litespeed-right10 {
	margin-right: 10px !important;
}

.litespeed-right20 {
	margin-right: 20px !important;
}

.litespeed-right30 {
	margin-right: 30px !important;
}

.litespeed-right50 {
	margin-right: 50px !important;
}

.litespeed-top10 {
	margin-top: 10px !important;
}

.litespeed-top15 {
	margin-top: 15px !important;
}

.litespeed-top20 {
	margin-top: 20px !important;
}

.litespeed-top30 {
	margin-top: 30px !important;
}

.litespeed-margin-y5 {
	margin-top: 5px !important;
	margin-bottom: 5px !important;
}

.litespeed-margin-x5 {
	margin-left: 5px !important;
	margin-right: 5px !important;
}

.litespeed-wrap .litespeed-left20,
.litespeed-left20 {
	margin-left: 20px;
}

.litespeed-left50 {
	margin-left: 50px;
}

.litespeed-padding-space {
	padding: 5px 10px;
}

.litespeed-margin-bottom10 {
	margin-bottom: 10px !important;
}

.litespeed-margin-bottom20 {
	margin-bottom: 20px;
}

.litespeed-margin-bottom-remove {
	margin-bottom: 0px !important;
}

.litespeed-margin-top-remove {
	margin-top: 0px !important;
}

.litespeed-margin-left-remove {
	margin-left: 0px !important;
}

.litespeed-margin-y-remove {
	margin-top: 0px !important;
	margin-bottom: 0px !important;
}


.litespeed-empty-space-xlarge {
	margin-top: 8em;
}

.litespeed-empty-space-large {
	margin-top: 6em;
}

.litespeed-empty-space-medium {
	margin-top: 3em;
}

.litespeed-empty-space-small {
	margin-top: 2em;
}

.litespeed-empty-space-tiny {
	margin-top: 1em;
}


/* =======================================
   		UTILITIES - typography
======================================= */

.litespeed-text-jumbo {
	font-size: 3em !important;
}

.litespeed-text-large {
	font-size: .75em !important;
}

.litespeed-text-md {
	font-size: 1.2em;
}

.litespeed-text-right {
	text-align: right;
}

.litespeed-text-center {
	text-align: center;
}

.litespeed-text-bold {
	font-weight: 600;
}

/* =======================================
	  			COLORS
======================================= */

.litespeed-default {
	color: #a7a7a7 !important;
}

.litespeed-primary {
	color: #3366CC !important;
}

.litespeed-info {
	color: #3FBFBF !important;
}

.litespeed-success {
	color: #73b38d !important;
}

.litespeed-warning {
	color: #FF8C00 !important;
}

.litespeed-danger {
	color: #dc3545 !important;
}

a.litespeed-danger:hover,
button.litespeed-danger:hover {
	color: #a00 !important;
}

.litespeed-text-success {
	color: #34b15d;
}

.litespeed-form-action {
	color: #1a9292 !important;
}

a.litespeed-form-action:hover,
button.litespeed-form-action:hover {
	color: #36b0af !important;
}

.litespeed-bg-default {
	background-color: #a7a7a7 !important;
}

.litespeed-bg-primary {
	background-color: #3366CC !important;
}

.litespeed-bg-info {
	background-color: #d1ecf1 !important;
}

.litespeed-bg-success {
	background-color: #73b38d !important;
}

.litespeed-bg-warning {
	background-color: #FF8C00 !important;
}

.litespeed-bg-danger {
	background-color: #dc3545 !important;
}

.litespeed-bg-text-success {
	background-color: #34b15d;
}

/* =======================================
	  			LAYOUT
======================================= */

.litespeed-wrap {
	margin: 10px 20px 0 2px;
}

.litespeed-wrap .nav-tab-active {
	background: #fff;
	border-bottom-color: #fff;
}

.litespeed-wrap .nav-tab:focus:not(.nav-tab-active),
.litespeed-wrap .nav-tab:hover:not(.nav-tab-active) {
	background-color: #f1f1f1;
	color: #444;
}

.litespeed-body {
	background: #fff;
	border: 1px solid #e5e5e5;
	box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
	padding: 1px 20px 20px 20px;
}

.litespeed-header+.litespeed-body {
	border-top: none;
}

.litespeed-body table {
	border-collapse: collapse;
	width: 100%;
}

.litespeed-body .litespeed-width-auto {
	width: auto;
}

/* outside stripped table */
.litespeed-description {
	color: #666;
	font-size: 13px;
	margin: 1.5rem 0;
	max-width: 960px;
}

/* inside stripped table */
.litespeed-desc {
	font-size: 12px;
	font-weight: normal;
	color: #7a919e;
	margin: 10px 0;
	line-height: 1.7;
	/*max-width: 840px;*/
}

.litespeed-desc+.litespeed-desc {
	margin-top: -5px
}

td>.litespeed-desc:first-child {
	margin-top: 0px;
	line-height: 2.24;
}

.litespeed-h3 {
	line-height: 18px;
	color: #264d73;
	font-size: 18px;
	font-weight: 600;
	margin: 2px 0;
}

.litespeed-div {
	display: inline-block;
	min-width: 100px;
}

.litespeed-div .submit {
	margin: 5px;
	padding: 5px;
}

.litespeed-h1 {
	display: inline-block;
}

h3 .litespeed-learn-more {
	font-size: 12px;
	font-weight: normal;
	color: #7a919e;
	margin-left: 30px;
}

.litespeed-wrap code {
	color: #666;
	background-color: #dde9f5;
	border-radius: 3px;
	font-size: 11px;
	font-style: normal;
}

.litespeed-wrap ul {
	margin-left: 2em;
}

.litespeed-wrap i {
	font-size: 13px;
	line-height: 16px;
}

.litespeed-wrap .litespeed-desc i {
	font-size: 12px;
}

.litespeed-wrap p {
	margin: 1em 0;
}

.litespeed-wrap p.submit {
	margin-bottom: 0;
}

.litespeed-desc p {
	margin-left: 0;
}

.litespeed-title,
.litespeed-title-short {
	font-size: 18px;
	border-bottom: 1px solid #cccccc;
	margin: 2.5em 0px 1.5em 0;
	display: table;
	padding-right: 50px;
	padding-left: 3px;
	padding-bottom: 3px;

}

.litespeed-title .button {
	margin-left: 1rem;
	margin-bottom: 5px;
	vertical-align: middle;
}

.litespeed-title a .dashicons {
	/* vertical-align: text-bottom; */
}

.litespeed-title a,
.litespeed-title-short a {
	text-decoration: none;
}

.litespeed-title-short {
	padding-right: 20px;
}

.litespeed-title-section {
	margin: 2em -20px 12px -20px;
	padding: 12px 20px 12px 20px;
	border-bottom: 1px solid #eee;
	font-size: 1.2em;
	display: block;
	border-top: 1px solid #f1f1f1;
}

.litespeed-postbox .litespeed-title {
	display: flex;
}

.litespeed-title-right-icon {
	margin-left: auto;
	font-weight: normal;
}

.litespeed-list li:before {
	content: '>';
	color: #cc3d6a;
}

.litespeed-wrap a.disabled {
	cursor: not-allowed;
	opacity: 0.5;
	text-decoration: none;
	color: #72777c;
}


/* =======================================
			LAYOUT - table
======================================= */

.litespeed-table {
	font-size: 14px;
}

.litespeed-body tbody>tr>th {
	padding-left: 20px;
}

.litespeed-body tbody th {
	vertical-align: top;
	text-align: left;
	padding: 18px 10px 20px 0;
	width: 200px;
	font-weight: 600;
}

.litespeed-body td {
	padding: 15px 10px;
	line-height: 1.3;
	vertical-align: middle;
}

.litespeed-body .widefat td input+p {
	margin-top: .8em;
}

.litespeed-body .striped>tbody>:nth-child(even) .notice {
	background-color: #f9f9f9;
	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .05);
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	border-right: 1px solid #e5e5e5;

}

.litespeed-body .striped>tbody>:nth-child(even) .notice:first-child {
	margin-top: 0;
}

/* small table inside */
.litespeed-body .litespeed-vary-table {
	margin-top: -5px;
	width: 250px;
	margin-bottom: 20px;
}

.litespeed-body .litespeed-vary-table td {
	width: 50%;
	padding: 5px 0px;
}

.litespeed-table-compact td,
.litespeed-table-compact th {
	padding: 0.5rem 0.75rem;
}

/* =======================================
			LAYOUT - block
======================================= */

.litespeed-block,
.litespeed-block-tiny {
	border: 1px dotted #cccccc;
	border-radius: 5px;
	display: flex;
	flex-wrap: wrap;
	padding: 0.75rem 1.25rem;
	margin-bottom: 5px;
}

.litespeed-block-tiny {
	max-width: 670px;
}

.litespeed-col {
	flex: 0 0 30%;
	padding-right: 2rem;
}

.litespeed-col:last-child,
.litespeed-col-auto:last-child {
	padding-right: 0;
}

.litespeed-col-auto {
	padding-right: 2rem;
}

.litespeed-col-br {
	flex: 0 0 100%;
	border-top: 1px dotted #cccccc;
}

.litespeed-col-inc {
	display: inline-block;
	margin-top: 16px;
	min-width: 150px;
	font-weight: bold;
}

.litespeed-block h4:first-child,
.litespeed-block .litespeed-form-label:not(.litespeed-form-label--toggle):first-child {
	margin-top: 0.5rem;
}

.litespeed-block .litespeed-callout:last-child {
	margin-bottom: 0;
}

/* =======================================
			  CARDS LINKS
======================================= */

.litespeed-cards-wrapper,
.litespeed-panel-wrapper {
	display: flex;
	width: 100%;
	flex-flow: row wrap;
	justify-content: flex-start;
}

.litespeed-cards-wrapper {
	margin: -10px -15px -10px -15px;
}

.litespeed-panel {
	text-decoration: none;
	display: flex;
	justify-content: space-between;
	padding: 6px 8px 4px 5px;
	width: 322px;
	margin: 15px 5px 15px 15px;
	min-height: 75px;
	box-sizing: border-box;
	background: #f9fafc;
	transition: .25s;
}

.litespeed-panel:hover {
	border: 1px solid #6699cc;
	box-shadow: none;
}

.litespeed-panel-wrapper-icon {
	width: 25%;
	height: 100%;
}

[class*="litespeed-panel-icon-"] {
	background-size: contain;
	width: 60px;
	height: 60px;
	margin: 5px;
	background-repeat: no-repeat;
	display: inline-block;
}

.litespeed-panel-icon-all {
	background-image: url("../img/icons/all.svg");
}

.litespeed-panel-icon-revision {
	background-image: url("../img/icons/revision.svg");
}

.litespeed-panel-icon-auto_draft {
	background-image: url("../img/icons/auto_draft.svg");
}

.litespeed-panel-icon-trash_post {
	background-image: url("../img/icons/trash_post.svg");
}

.litespeed-panel-icon-spam_comment {
	background-image: url("../img/icons/spam_comment.svg");
}

.litespeed-panel-icon-trash_comment {
	background-image: url("../img/icons/trash_comment.svg");
}

.litespeed-panel-icon-trackback-pingback {
	background-image: url("../img/icons/trackback-pingback.svg");
}

.litespeed-panel-icon-expired_transient {
	background-image: url("../img/icons/expired_transient.svg");
}

.litespeed-panel-icon-all_transients {
	background-image: url("../img/icons/all_transients.svg");
}

.litespeed-panel-icon-optimize_tables {
	background-image: url("../img/icons/optimize_tables.svg");
}

.litespeed-panel-icon-purge-front {
	background-image: url("../img/icons/purge-front.svg");
}

.litespeed-panel-icon-purge-pages {
	background-image: url("../img/icons/purge-pages.svg");
}

.litespeed-panel-icon-purge-cssjs {
	background-image: url("../img/icons/purge-cssjs.svg");
}

.litespeed-panel-icon-purge-object {
	background-image: url("../img/icons/purge-object.svg");
}

.litespeed-panel-icon-purge-opcache {
	background-image: url("../img/icons/purge-opcache.svg");
}

.litespeed-panel-icon-purge-all {
	background-image: url("../img/icons/purge-all.svg");
}

.litespeed-panel-icon-empty-cache {
	background-image: url("../img/icons/empty-cache.svg");
}

.litespeed-panel-icon-purge-403 {
	background-image: url("../img/icons/purge-403.svg");
}

.litespeed-panel-icon-purge-404 {
	background-image: url("../img/icons/purge-404.svg");
}

.litespeed-panel-icon-purge-500 {
	background-image: url("../img/icons/purge-500.svg");
}

.litespeed-panel-top-right-icon-cross {
	background-image: url("../img/icons/cross_icon.svg");
}

.litespeed-panel-top-right-icon-tick {
	background-image: url("../img/icons/success_icon.svg");
}

.litespeed-panel-content {
	width: 75%;
	height: 100%;
	margin-top: 7px;
}

.litespeed-panel-para {
	color: #264d73;
	font-size: 12px;
	line-height: 1.45;
}

.litespeed-panel .litespeed-h3 {
	font-size: 14px;
}

.litespeed-panel-counter {
	color: #3abfbf;
}

.litespeed-panel-counter-red {
	color: #cc3d6a;
}

.litespeed-panel-wrapper-top-right {
	width: 10%;
	height: 100%;
	text-align: right;
}

.litespeed-panel-top-right-icon-tick,
.litespeed-panel-top-right-icon-cross {
	background-size: contain;
	width: 20px;
	height: 20px;
	background-repeat: no-repeat;
	display: inline-block;
}

/* =======================================
	 BUTTONS
======================================= */

/* .litespeed-wrap .button{
	background:#fff;
} */

.litespeed-wrap .button-link {
	height: auto;
	line-height: inherit;
	font-size: inherit;
	box-shadow: none;
}

.litespeed-wrap .button-link:hover,
.litespeed-wrap .button-link:focus {
	box-shadow: none;
	background: none;
}

.litespeed .litespeed-btn-danger-bg,
.litespeed-wrap .litespeed-btn-danger-bg,
.litespeed-btn-danger-bg {
	background: #dc3545;
	color: #fff;
	border: 1px solid #cc3d6a;
	box-shadow: 0 1px 0 rgba(177, 93, 93, 0.5);
}

.litespeed .litespeed-btn-danger,
.litespeed-wrap .litespeed-btn-danger,
.litespeed-btn-danger {
	background: #fff;
	color: #cc3d6a;
	border: 1px solid #cc3d6a;
	box-shadow: 0 1px 0 rgba(177, 93, 93, 0.5);
}

.litespeed .litespeed-btn-danger:hover,
.litespeed-wrap .litespeed-btn-danger:hover,
.litespeed-btn-danger:hover {
	border-color: #ab244e;
	background: #cc3d6a;
	color: #fff;
}

.litespeed .litespeed-btn-warning,
.litespeed-wrap .litespeed-btn-warning,
.litespeed-btn-warning {
	background: #fff;
	color: #e59544;
	border: 1px solid #e59544;
	box-shadow: 0 1px 0 rgba(249, 166, 82, 0.55);
}

.litespeed .litespeed-btn-warning:hover,
.litespeed-wrap .litespeed-btn-warning:hover,
.litespeed-btn-warning:hover {
	border-color: #e59544;
	background: #e59544;
	color: #fff;
}

.litespeed .litespeed-btn-success,
.litespeed-wrap .litespeed-btn-success,
.litespeed-btn-success {
	background: #fff;
	color: #36b0b0;
	border: 1px solid #36b0b0;
	box-shadow: 0 1px 0 rgba(73, 160, 160, 0.55);
}

.litespeed .litespeed-btn-success:hover,
.litespeed-wrap .litespeed-btn-success:hover,
.litespeed-btn-success:hover {
	border-color: #36b0b0;
	background: #36b0b0;
	color: #fff;
}

.litespeed-wrap .button-primary {
	background: #528ac6;
	border-color: #538ac6 #2264ad #2264ad;
	color: #fff;
	box-shadow: 0 1px 0 #2264ad;
	text-shadow: 0 -1px 1px #2264ad, 1px 0 1px #2264ad, 0 1px 1px #2264ad, -1px 0 1px #2264ad;
}

.litespeed-wrap .button-primary:focus,
.litespeed-wrap .button-primary:hover {
	background: #5891ce;
	border-color: #2264ad;
	color: #fff;
}

.litespeed-wrap .button-primary:hover {
	box-shadow: 0 1px 0 #2264ad;
}

.litespeed-wrap .button-primary:focus {
	background: #5891ce;
	border-color: #2264ad;
	color: #fff;
	box-shadow: 0 1px 0 #0073aa, 0 0 2px 1px #33b3db;
}

.litespeed .litespeed-btn-primary,
.litespeed-wrap .litespeed-btn-primary,
.litespeed-btn-primary {
	color: #538ac6;
	border: 1px solid #538ac6;
	-moz-box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
	-webkit-box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
	box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
}

.litespeed .litespeed-btn-primary:hover,
.litespeed-wrap .litespeed-btn-primary:hover,
.litespeed-btn-primary:hover {
	background: #538ac6;
	border-color: #538ac6;
	color: #fff;
}

.litespeed-wrap .button:not(.litespeed-btn-large) .dashicons {
	position: relative;
	top: 0.125em;
}

.litespeed-wrap .button:not(:first-child) {
	margin-left: 5px;
}

.litespeed-wrap .button+.button {
	margin-left: 10px;
}

.litespeed-info-button {
	color: #c8c8c8;
	padding: 0;
	-webkit-appearance: none;
	border: none;
	background: none;
	vertical-align: middle;
	line-height: inherit;
	text-decoration: none;
}

.litespeed-info-button .dashicons {
	font-size: 16px;
	vertical-align: middle;
}

.litespeed-btn-pie {
	-webkit-appearance: none;
	background: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
	top: -0.125em;
}

/* =======================================
   BUTTONS - sizes
======================================= */

.litespeed-wrap .litespeed-btn-tiny {
	padding: 2px 8px;
	line-height: 1.5;
	height: auto;
}

.litespeed-wrap .litespeed-btn-mini {
	padding: 0 8px 1px;
	font-size: 12px;
	font-weight: 600;
	margin: 5px 0;
}

.litespeed-wrap .litespeed-btn-mini .dashicons.dashicons-image-rotate {
	padding-top: 3px;
	font-size: 18px;
}

.litespeed-wrap .litespeed-btn-mini .dashicons {
	padding-top: 2px;
}

.litespeed-wrap .litespeed-btn-large {
	font-size: 1.5em;
	padding: .75em 1.5em;
	margin: 0 .25em;
	height: auto;
}

.litespeed-wrap .litespeed-btn-large .dashicons {
	font-size: 1.25em;
	width: auto;
}


/* =======================================
	  SWITCH
======================================= */

.litespeed-switch {
	font-size: 14px;
	font-weight: 600;
	margin: 0 0 0;
	display: inline-flex;
	position: relative;
}

.litespeed-switch input:checked:active+label {
	box-shadow: 0 2px 0 rgba(27, 146, 146, 0.7), inset 0 2px 5px -3px rgba(0, 0, 0, .5);
}

.litespeed-switch input:checked+label {
	background-color: #36b0b0;
	color: #fff;
	border: 1px solid #36b0b0;
	box-shadow: 0 2px 0 #1b9292;
	z-index: 2;
	text-shadow: 0 -1px 1px #1b9292, 1px 0 1px #1b9292, 0 1px 1px #1b9292, -1px 0 1px #1b9292;
}

.litespeed-switch label {
	font-size: 14px;
	display: inline-block;
	min-width: 72px;
	background-color: #f9fafc;
	font-weight: 400;
	text-align: center;
	padding: 6px 12px 5px 12px;
	cursor: pointer;
	border: 1px solid #ccc;
	border-bottom: none;
	box-shadow: 0 2px 0 #ccc;
	position: relative;
}

.litespeed-switch label:not(:last-child) {
	margin-right: -1px;
}

.litespeed-switch label:last-child {
	border-top-right-radius: 3px;
	border-bottom-right-radius: 3px;
}

.litespeed-switch label:first-of-type {
	border-top-left-radius: 3px;
	border-bottom-left-radius: 3px;
}

.litespeed-switch input:hover+label {
	border-color: #1a9292;
	box-shadow: 0 2px 0 #1a9292;
	z-index: 2;
	color: #117171;

}

.litespeed-switch input:focus+label {
	color: #117171;
	box-shadow: 0 0px 0px 2px rgba(28, 138, 128, 0.85);
	border-color: transparent;
	z-index: 2;

}

.litespeed-switch input:focus+label+input+input:hover+label,
.litespeed-switch input:focus+label+input:hover+label {
	z-index: 1;
}

.litespeed-switch input:active+label {
	box-shadow: 0 2px 0 #1b9292, inset 0 2px 5px -3px rgba(0, 0, 0, .5);
}

.litespeed-switch input:checked:hover+label,
.litespeed-switch input:checked:focus+label {
	background-color: #36b0b0;
	color: #fff;


}

.litespeed-switch input {
	display: inline-block;
	position: absolute;
	z-index: -1;
	margin: 0;
}

.litespeed-cache-purgeby-text {
	margin: 0;
	display: inline-block;
}

/* =======================================
				TOGGLE
======================================= */

.litespeed-toggle-stack {
	display: flex;
	flex-direction: column;
}

.litespeed-toggle-stack .litespeed-toggle-wrapper {
	justify-content: space-between;
}

.litespeed-toggle-wrapper {
	display: flex;
	align-items: center;
}

.litespeed-toggle-wrapper+.litespeed-toggle-wrapper {
	margin-top: 0.75rem;
}

.litespeed-toggle {
	position: relative;
	overflow: hidden;
	min-width: 58px;
	height: 21px;
	/*margin-left: 1.2rem;*/
}

.litespeed-toggle-group {
	position: absolute;
	width: 200%;
	top: 0;
	bottom: 0;
	left: 0;
	transition: left 0.35s;
	-webkit-transition: left 0.35s;
	-moz-user-select: none;
	-webkit-user-select: none;
}

.litespeed-toggle-on {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 50%;
	margin: 0;
	border: 0;
	border-radius: 0;
}

.litespeed-toggle-on.litespeed-toggle-btn {
	padding-right: 24px;
}

.litespeed-toggle-off.litespeed-toggle-btn {
	padding-left: 24px;
}

.litespeed-toggle-handle {
	position: relative;
	margin: 0 auto;
	padding-top: 0px;
	padding-bottom: 0px;
	height: 100%;
	width: 0px;
	border-width: 0 1px;
}

.litespeed-toggle-off {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	right: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
}

.litespeed-toggleoff .litespeed-toggle-group {
	left: -100%;
}

.litespeed-toggle-btn {
	display: inline-block;
	padding: 5px 10px;
	margin-bottom: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.42857143;
	text-align: center;
	white-space: nowrap;
	vertical-align: middle;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	background-image: none;
	border: 1px solid transparent;
	border-radius: 4px;
}

.litespeed-toggle-btn-primary {
	color: #fff;
	background-color: #36b0b0;
	border-color: #36b0b0;
}

.litespeed-toggle-btn-default {
	color: #333;
	background-color: #fff;
	border-color: #ccc;
}

.litespeed-toggle-btn-success:hover,
.litespeed-toggle-btn-success:focus,
.litespeed-toggle-btn-success:active,
.litespeed-toggle-btn-success.litespeed-toggle-active {
	color: #fff;
	background-color: #00bfbf;
	border-color: #6699cc;
}

.litespeed-toggle-btn-default:hover,
.litespeed-toggle-btn-default:focus,
.litespeed-toggle-btn-default:active,
.litespeed-toggle-btn-default.litespeed-toggle-active {
	color: #333;
	background-color: #e6e6e6;
	border-color: #adadad;
}

.litespeed-toggle-btn:active,
.litespeed-toggle-btn.litespeed-toggle-active {
	background-image: none;
	outline: 0;
	-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
	box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}

.litespeed-toggle-btn-default:active,
.litespeed-toggle-btn-default.litespeed-toggle-active {
	background-image: none;
}

/* =======================================
	LABEL/TAG
======================================= */
[class*="litespeed-label-"] {
	display: inline;
	padding: .2em .6em .3em;
	font-size: 75%;
	font-weight: bold;
	line-height: 1;
	color: #fff;
	text-align: center;
	white-space: nowrap;
	vertical-align: baseline;
	border-radius: .25em;
}

[class*="litespeed-label-"]:hover,
[class*="litespeed-label-"]:focus {
	color: #fff;
	text-decoration: none;
	cursor: pointer;
}

[class*="litespeed-label-"]:empty {
	display: none;
}

.litespeed-label-regular {
	font-size: 1em;
}

.litespeed-label-default {
	background-color: #777;
}

.litespeed-label-default[href]:hover,
.litespeed-label-default[href]:focus {
	background-color: #5e5e5e;
}

.litespeed-label-primary {
	background-color: #337ab7;
}

.litespeed-label-primary[href]:hover,
.litespeed-label-primary[href]:focus {
	background-color: #286090;
}

.litespeed-label-success {
	background-color: #5cb85c;
}

.litespeed-label-success[href]:hover,
.litespeed-label-success[href]:focus {
	background-color: #449d44;
}

.litespeed-label-info {
	background-color: #5bc0de;
}

.litespeed-label-info[href]:hover,
.litespeed-label-info[href]:focus {
	background-color: #31b0d5;
}

.litespeed-label-warning {
	background-color: #f0ad4e;
}

.litespeed-label-warning[href]:hover,
.litespeed-label-warning[href]:focus {
	background-color: #ec971f;
}

.litespeed-label-danger {
	background-color: #d9534f;
}

.litespeed-label-danger[href]:hover,
.litespeed-label-danger[href]:focus {
	background-color: #c9302c;
}

/* =======================================
	   SHELL
======================================= */
.litespeed-shell {
	width: 98%;
	background: #141414;
	margin: 20px auto 0 10px;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	position: relative;
	height: 224px;
}

.litespeed-shell-header {
	z-index: 999;
	position: absolute;
	top: 0;
	right: 0;
	width: 50px;
	height: 34px;
	padding: 5px 0;
}

.litespeed-shell-header-bg {
	opacity: 0.4;
	background-color: #CCCCCC;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	z-index: 4;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-top-radius: 3px;
}

.litespeed-shell-header-bar {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	height: 2px;
	background-color: #F48024;
}

.litespeed-shell-header-icon-container {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 29px;
	height: 34px;
	z-index: 6;
}

ul.litespeed-shell-body {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow-y: scroll;
	margin: 0;
	padding: 5px;
	list-style: none;
	background: #141414;
	color: #45D40C;
	font: 0.8em 'Andale Mono', Consolas, 'Courier New';
	line-height: 1.6em;

	-webkit-border-bottom-right-radius: 3px;
	-webkit-border-bottom-left-radius: 3px;
	-moz-border-radius-bottomright: 3px;
	-moz-border-radius-bottomleft: 3px;
	border-bottom-right-radius: 3px;
	border-bottom-left-radius: 3px;

}

.litespeed-shell-body li:before {
	content: '>';
	position: absolute;
	left: 0;
	top: 0;
}

.litespeed-shell-body li {
	word-wrap: break-word;
	position: relative;
	padding: 0 0 0 15px;
	margin: 0;
}

.litespeed-widget-setting {
	background-color: #ecebdc;
	padding: 5px 14px;
	margin: 5px -15px;
}


/* =======================================
			CALLOUT / NOTICE
======================================= */

.litespeed-callout {
	margin: 1.5rem 0;

	border-right: 1px solid #e5e5e5;
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	background: #f9f9f9;
}

.litespeed-callout h4:not(:last-child) {
	margin-bottom: 0.5rem;
	margin-top: 1em;
}

.litespeed-callout p {
	margin-left: 0;
}

.litespeed-callout ol,
.litespeed-callout ul {
	margin-left: 1em;
}

.litespeed-callout.notice-warning h4 {
	color: #e59544;
}

.litespeed-callout.notice-error h4 {
	color: #dc3232;
}

.litespeed-callout-bg {
	margin: 1.5rem 0;
	background: #f9f9f9;
	border-top: none;
	border-bottom: none;
	border-right: none;
}

/* =======================================
			TICK / CHECKBOX
======================================= */

.litespeed-tick-wrapper {
	margin-left: -5px;
}

.litespeed-tick {
	display: inline-block;
	/* min-width: 125px; */
	background: #f2f9ff;
	padding: 5px 0 5px 0px;
	border-radius: 3px;
	cursor: pointer;
	margin: 5px 5px 5px 0;
}

.litespeed-tick-list .litespeed-tick {
	display: block;
	margin-bottom: 3px;
	margin-top: 0;
	background: none;
}

.litespeed-tick-list .litespeed-tick input[type="checkbox"] {
	margin-left: 0;
}

.litespeed-tick-list .litespeed-tick label {
	color: inherit;
}


.litespeed-tick input[type="checkbox"] {
	height: 18px;
	width: 18px;
	vertical-align: middle;
	margin: 0 10px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	-webkit-border-radius: 3px;
	border-radius: 3px;

	cursor: pointer;
}

.litespeed-tick input[type="checkbox"]:not(:disabled):hover {
	border-color: #538ac6;

}

.litespeed-tick input[type="checkbox"]:active:not(:disabled) {
	border-color: #538ac6;
}

.litespeed-tick input[type="checkbox"]:focus {
	outline: none;
}

.litespeed-tick input[type="checkbox"]:checked {
	border-color: #538ac6;
	background-color: #538ac6;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.litespeed-tick input[type="checkbox"]:checked:before {
	content: '';
	display: block;
	width: 5px;
	height: 11px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	margin-left: 5px;
	margin-top: -1px;
	cursor: pointer;
}

.litespeed-tick label {
	padding: 2px 0px 2px 0;
	font-size: 14px;
	color: #264d73;
}

.litespeed-tick label:hover {
	min-width: 115px;
	color: #6699cc;
}

/* =======================================
			RADIO - vertical
======================================= */

.litespeed-radio-row {
	margin-bottom: 12px;
	position: relative;
	padding-left: 1.5rem;
}

.litespeed-radio-row input[type=radio] {
	margin-top: 0;
	margin-bottom: 0;
	position: absolute;
	line-height: 1;
	left: 0;
	top: 0.7em;
	transform: translateY(-50%);
}

.litespeed-radio-row label {
	vertical-align: text-bottom;
	line-height: 1.4;
}

/* =======================================
		   FORM - layout
======================================= */

.litespeed-wrap .litespeed-float-submit {
	position: absolute;
	right: 0;
	top: -5px;
	margin-top: 0;
}

.rtl .litespeed-wrap .litespeed-float-submit {
	left: 10px;
	right: unset;
}

.litespeed-wrap .litespeed-float-resetbtn {
	position: absolute;
	right: 0;
	bottom: 20px;
}

.rtl .litespeed-wrap .litespeed-float-resetbtn {
	left: 10px;
	right: unset;
}

/* =======================================
		  FORM - utilities
======================================= */

.litespeed .litespeed-input-large {
	font-size: 20px;
}

.litespeed-input-long {
	width: 87%;
}

.litespeed-input-short2 {
	width: 150px;
}

.litespeed-input-short {
	width: 45px;
}

/* =======================================
		   FORM - elements
======================================= */

.litespeed-form-label {
	font-size: 1em;
	margin: 0.65rem 0;
	display: block;
	font-weight: 600;
}

.litespeed-form-label--toggle {
	margin: 0;
	display: inline-block;
	min-width: 110px;
}

input.litespeed-input[type="file"] {
	padding: 9px;
	min-width: 500px;
	border: 1px solid #ddd;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, .07);
	background-color: #fff;
	color: #32373c;
	outline: 0;
	transition: 50ms border-color ease-in-out;
}

.litespeed-body .litespeed-textarea-success {
	border-color: #6699cc;
}

input.litespeed-input-success {
	border-color: #28a745;
}

input.litespeed-input-warning {
	border-color: #e59544;
}

.litespeed-textarea {
	width: 60%;
}

.litespeed-textarea-recommended {
	display: flex;
	margin-top: -5px;
}

.litespeed-textarea-recommended .litespeed-desc {
	margin: 0;
}

.litespeed-textarea-recommended>div:first-child {
	margin-top: 1.7em;
	font-size: 12px;
	margin-right: 25px;
}

.litespeed-wrap .litespeed-collection-button {
	text-decoration: none;
	min-width: 30px;
	text-align: center;
}

.litespeed-collection-button[data-action="add"] {
	margin-top: -5px;
	margin-left: -5px;
}

.litespeed-collection-button .dashicons {
	vertical-align: baseline;
}

.litespeed-wrap .button:not(.litespeed-btn-large).litespeed-form-action .dashicons {
	font-size: 1.2em;
	vertical-align: middle;
	top: 0;
}

@media screen and (max-width: 1023px) and (min-width: 681px) {}

@media screen and (max-width: 680px) {

	.litespeed-body tbody>tr>th {
		display: block;
		padding: 18px 0 5px 12px;
	}

	.litespeed-wrap .litespeed-float-submit {
		display: none;
	}

	.litespeed-body {
		padding: 1px 10px 20px 15px;
	}

	.litespeed-body .regular-text {
		width: 100%;
	}

	.litespeed-textarea-recommended {
		flex-direction: column;
	}

	.litespeed-textarea-recommended>div:first-child {
		margin-bottom: 1.7em;
		margin-top: 0;
	}
}

/* =======================================
		   ENTERPRISE NOTICE
======================================= */

.litespeed-ent-notice {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	background-color: #333;
	z-index: 999;
	opacity: 0.8;
	text-align: center;
	font-size: 3rem;
	color: #1865c5;
}

.litespeed-ent-notice-desc {
	position: relative;
	top: 30%;
	transform: rotate(-20deg);
	text-shadow: 2px 2px 4px #000000;
}

/* =======================================
			  PROMO BANNER
======================================= */

.litespeed-banner-promo,
.litespeed-banner-promo-full {
	display: flex;
	padding: 0px;
}

.litespeed-banner-promo-full {
	margin: 0px;
	padding: 0px;
}

.litespeed-banner-promo-logo {
	background-image: url(../img/lscwp-logo_90x90.png);
	background-size: contain;
	width: 90px;
	background-repeat: no-repeat;
	display: inline-block;
}

.litespeed-banner-promo-full .litespeed-banner-promo-logo {
	margin: 0px;
	width: 90px;
	height: 90px;
}

.litespeed-banner-promo-content {
	margin-left: 25px;
}

.litespeed-banner-promo-full .litespeed-banner-promo-content {
	width: 75%;
}

.litespeed-banner-promo-content h1 {
	font-weight: 600;
	color: #538ac6;
	margin-top: 10px;
}

.litespeed-banner-title {
	font-size: 1.3em;
	margin: 8px 0px 5px 0px;
}

.litespeed-banner-promo-slacklogo {
	background-image: url("../img/slack-logo.png");
	background-size: contain;
	width: 75px;
	height: 75px;
	background-repeat: no-repeat;
	display: inline-block;
	padding: 0px;
	flex: 0 0 5%;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-line1 {
	font-size: 18px;
	margin-top: 0px;
	line-height: 21px;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-textlink {
	color: #e59544;
	text-decoration: none;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-textlink:hover {
	opacity: 0.8;
}

.litespeed-banner-promo-slack-line2 {
	font-size: 15px;
	margin: 0px;
	line-height: .75em;
}

.litespeed-banner-promo-slack-link {
	color: #888888;
}

a.litespeed-btn-xs.litespeed-banner-promo-slack-btn {
	margin: 0px 5px;
}

/* =======================================
			  PROMO BANNER - QC
======================================= */

.litespeed-banner-promo-qc {
	display: flex;
}

.litespeed-banner-promo-qc h2 {
	line-height: 1.4;
}

.litespeed-banner-promo-qc-content {
	display: flex;
	align-items: center;
}

.litespeed-banner-promo-qc-description {
	flex-basis: 50%;
	padding-right: 2rem;
}

.litespeed-banner-promo-qc-description p {
	font-size: 14px;
}

.litespeed-banner-promo-qc-description .button {
	margin-right: 1.5rem;
}

.litespeed-tweet-preview {
	border-radius: 5px;
	line-height: 1.3125;
	box-shadow: 1px 1px 0.5em rgba(0, 0, 0, 0.3);
	margin: 0.5em 1em 1em 0;
	padding: 1em;
	max-width: 480px;
	display: flex;
}

.litespeed-tweet-preview:after {
	content: '';
	display: block;
	clear: both;
}

.litespeed-tweet-preview p:first-child {
	margin-top: 0;
}

.litespeed-tweet-preview-title {
	color: #777;
	margin-top: 0.9em;
	font-weight: normal;
	font-size: 12px;
	margin-bottom: 0;
	margin-top: 0.9em;
}

.litespeed-tweet-text {
	font: 14px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif;
	line-height: 1.3125;
}

.litespeed-tweet-cta {
	text-align: right;
	margin-top: 1em;
}


.litespeed-tweet-cta a {
	background-color: #1DA1F2;
	line-height: 1.3125;
	color: #fff;
	font-weight: bold;
	display: inline-flex;
	padding: 0.55em 1em;
	font-size: 14px;
	border-radius: 99em;
	text-decoration: none;
}

.litespeed-tweet-cta a:hover {
	background-color: #1E98E1;
}

.litespeed-tweet-cta a svg {
	width: 16px;
	height: 18px;
	margin-right: 0.5em;
}

.litespeed-tweet-cta a svg path {
	fill: currentColor;
}

.litespeed-tweet-img {
	width: calc(240px + 1rem);
	padding-right: 1rem;
	box-sizing: border-box;
}

.litespeed-tweet-img img {
	max-width: 100%;
	vertical-align: middle;
}

.litespeed-tweet-img+p {
	margin-top: 0;
}

/* =======================================
		admin -> media lib icon
======================================= */

.litespeed-media-href {
	display: inline-table;
}

[class*="litespeed-icon-media-"] {
	background-size: contain;
	width: 25px;
	height: 25px;
	vertical-align: middle;
	margin: 0;
	background-repeat: no-repeat;
	display: inline-block;
}

[class*="litespeed-icon-media-"]:hover {
	opacity: 0.7;
}

.litespeed-icon-media-webp {
	background-image: url("../img/icons/img_webp.svg");
}

.litespeed-icon-media-webp-disabled {
	background-image: url("../img/icons/img_webp_disabled.svg");
}

.litespeed-icon-media-optm {
	background-image: url("../img/icons/img_optm.svg");
}

.litespeed-icon-media-optm-disabled {
	background-image: url("../img/icons/img_optm_disabled.svg");
}

p.litespeed-media-p {
	margin-bottom: 1px !important;
}

p.litespeed-txt-webp {
	color: #83b04a;
}

p.litespeed-txt-ori {
	color: #5967b3;
}

p.litespeed-txt-disabled {
	color: #ced2d9;
}

.litespeed-media-svg {
	vertical-align: middle;
	margin: 5px;
	width: 25px;
	height: auto;
}

@keyframes litespeed-circle-chart-fill {
	to {
		stroke-dasharray: 0 100;
	}
}

/* =======================================
			 PIE chart
======================================= */

.litespeed-pie {
	vertical-align: middle;
	margin: 5px 5px 5px 0;
}


circle.litespeed-pie_bg {
	stroke: #efefef;
	stroke-width: 2;
	fill: none;
}

circle.litespeed-pie_circle {
	animation: litespeed-circle-chart-fill 2s reverse;
	transform: rotate(-90deg);
	transform-origin: center;

	animation: litespeed-pie-fill 2s reverse;
	/* 1 */
	stroke: #28a745;
	stroke-width: 2;
	stroke-linecap: round;
	fill: none;
}


.litespeed-pie.litespeed-pie-tiny {
	margin: 0 2px 0 0;
}

.litespeed-pie.litespeed-pie-tiny text {
	font-weight: bold;
	fill: #828282;

}

.litespeed-pie.litespeed-pie-tiny circle {
	stroke-linecap: initial;
}

.litespeed-pie-tiny circle.litespeed-pie_bg,
.litespeed-pie-tiny circle.litespeed-pie_circle {
	stroke-width: 3;
}

.litespeed-pie-tiny circle.litespeed-pie_bg {
	stroke: #eee;
}

.litespeed-pie-success circle.litespeed-pie_circle {
	stroke: #28a745;
}

.litespeed-pie-warning circle.litespeed-pie_circle {
	stroke: #e67700;
}

.litespeed-pie-danger circle.litespeed-pie_circle {
	stroke: #c7221f;
}

g.litespeed-pie_info text {
	dominant-baseline: central;
	text-anchor: middle;
	font-size: 11px;
}

.litespeed-promo-score g.litespeed-pie_info text {
	font-size: 14px;
	font-weight: 600;
}

.litespeed-pie-success g.litespeed-pie_info text {
	fill: #28a745;
}

.litespeed-pie-warning g.litespeed-pie_info text {
	fill: #e67700;
}

.litespeed-pie-danger g.litespeed-pie_info text {
	fill: #c7221f;
}

g.litespeed-pie_info .litespeed-pie-done {
	fill: #28a745;
	font-size: 15px;
}

/* =======================================
		VIEW - multiple cdn mapping
======================================= */

[data-litespeed-cdn-mapping]:first-child [data-litespeed-cdn-mapping-del] {
	display: none;
}

.litespeed-cdn-mapping-col1 {
	padding-right: 2rem;
	max-width: 35%;
}

.litespeed-cdn-mapping-col1 .litespeed-input-long {
	width: 100%;
}

.litespeed-cdn-mapping-col2 {
	padding-top: 0.25rem;
}

.litespeed-cdn-mapping-col1 label {
	position: relative;
}

[data-litespeed-cdn-mapping-del] {
	position: absolute;
	right: -6px;
	top: -6px;
}

/* =======================================
		VIEW - crawler
======================================= */

.litespeed-crawler-curr {
	vertical-align: middle;
	height: 20px;
	margin-left: 10px;
}

#cookie_crawler>p:first-child {
	margin-top: 5px;
}

/* =======================================
			PROGRESS BAR
======================================= */

.litespeed-progress-bar {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	color: #fff;
	text-align: center;
	background-color: #007bff;
	transition: width .6s ease;
}

.litespeed-progress-bar-yellow {
	background-color: #fbe100;
}

.litespeed-progress {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	height: 12px;
	overflow: hidden;
	font-size: .75rem;
	background-color: #e9ecef;
	border: 1px solid #dddddd;
	border-radius: 8px;
	width: 75%;
	margin: 5em 1em 1.5em 1em !important;
}

/* =======================================
		PROGRESS BAR - modal
======================================= */

.litespeed-modal {
	margin-top: -8px;
}

.litespeed-modal .litespeed-progress {
	margin-left: -8px;
	margin-right: -8px;
}

/* =======================================
		   		GUIDANCE
======================================= */

.litespeed-guide {
	border: 1px solid #73b38d;
	max-width: 50%;
	padding: 20px;
}

.litespeed-guide h2 {
	color: #73b38d;
	border-bottom: 1px solid #73b38d;
	display: table;
	padding-right: 50px;
	padding-left: 3px;
	padding-bottom: 3px;
}

.litespeed-guide li {
	font-size: 15px;
	line-height: 30px;
	margin: 10px 10px 10px 16px;
}

.litespeed-guide li.litespeed-guide-done:before {
	content: '\2713';
	font-size: 26px;
	color: #73b38d;
	margin-left: -37px;
	margin-right: 18px;
	opacity: 1;
}

.litespeed-guide li.litespeed-guide-done {
	opacity: .9;
}


/* =======================================
		VIEW - image optimization
======================================= */

.litespeed-image-optim-summary-wrapper {
	padding: 0;
}


.litespeed-cache_page_litespeed-img_optm .nav-tab-wrapper {
	border-bottom: none;
	position: relative;
	z-index: 2;
}

.litespeed-cache_page_litespeed-img_optm .litespeed-body {
	box-shadow: none;
	border: none;
	background: none;
	padding: 0;
}

.litespeed-cache_page_litespeed-img_optm [data-litespeed-layout]:not([data-litespeed-layout='summary']) {
	background: #fff;
	border: 1px solid #e5e5e5;
	box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
	padding: 1px 20px 20px 20px;
}

.litespeed-column-secondary {
	background: #f9fafc;
}

.litespeed-column-with-boxes>div:first-child {
	padding-right: 25px;
}

.litespeed-column-with-boxes>div:last-child {
	background: #f1f1f1;
	padding-top: 0;
	padding-right: 0;
	padding-left: 0;
}

.litespeed-column-with-boxes>div:last-child .litespeed-postbox:last-child {
	margin-bottom: 0;
}

.litespeed-image-optim-summary {
	box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
	position: relative;
	padding: 1px 20px 20px 20px;
	background: #fff;
	border: 1px solid #e5e5e5;
}

.litespeed-image-optim-summary-footer {
	border-top: 1px solid #efefef;
	background: #f9f9f9;
	padding: 20px;
	margin: 20px -20px -20px;
}

.litespeed-help-btn-icon {
	text-decoration: none;
	margin-left: 10px;
	color: #c8c8c8;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container {
	align-items: center;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container:not(:last-child) {
	margin-bottom: 0.65em;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container p:first-child {
	margin-top: 0;
}

.litespeed-image-optim-summary>h3:first-child {
	margin-top: 1.6em;
	font-size: 1.2em;
}

.litespeed-image-optim-summary>h3:first-child .litespeed-quic-icon {
	width: 1.2em;
	height: 1.4em;
	background-size: contain;
	margin-right: 0.2rem;
}

.litespeed-img-optim-actions {
	margin-top: 1.65em;
	display: flex;
	align-items: flex-end;
}

.litespeed-img-optim-actions .button-primary {
	font-size: 1.2em;
	margin-right: 1em;
	padding: 0.35em 0.85em;
	min-width: 210px;
	text-align: center;
}

@media screen and (max-width: 1079px) {
	.litespeed-postbox-imgopt-info svg {
		height: 50px;
		width: 50px;
	}
}

@media screen and (max-width: 814px) {
	.litespeed-column-with-boxes>div:first-child {
		padding-right: 0;
		margin-bottom: 1rem;
	}
}

/* =======================================
	VIEW - image optm media row
======================================= */

.imgoptm.column-imgoptm a[data-balloon-pos] {
	border-bottom: 1px dashed;
}

.imgoptm.column-imgoptm p {
	margin-bottom: 0.25em;
	margin-top: 0;
}

.imgoptm.column-imgoptm p+.row-actions {
	margin-top: 0.5em;
}

.fixed .column-lqip {
	width: 6rem;
}

.litespeed-media-lqip img {
	max-width: 62px;
	max-height: 62px;
}

.litespeed-media-href {
	font-size: 12px;
}

/* =======================================
			VIEW - dashboard
======================================= */

.litespeed-dashboard-group {
	margin-bottom: 1rem;
}

.litespeed-dashboard-group>.litespeed-flex-container {
	margin: 0 -10px;
	min-width: 100%;
	width: auto;
}

.litespeed-dashboard .litespeed-postbox {
	margin: 10px;

}

.litespeed-dashboard-title a {
	text-decoration: none;
	margin-left: 0.25rem;
}

.litespeed-dashboard-header {
	display: flex;
	align-items: center;
}

.litespeed-dashboard-header:first-child {
	margin-top: 1.5rem;
}

.litespeed-dashboard-header hr {
	align-self: center;
	flex-grow: 1;
	margin-left: 15px;
	margin-right: 15px;
}

.litespeed-dashboard-header hr:last-child {
	margin-right: 0;
}

.litespeed-dashboard-header .litespeed-learn-more {
	font-weight: normal;
	text-decoration: none;
	margin-top: -2px;
	color: #5e7380;
}

.litespeed-dashboard-stats h3 {
	text-transform: uppercase;
	font-size: 12px;
	font-weight: normal;
	margin-bottom: 0;
	margin-top: 1.2em;
	color: #777;
}

.litespeed-dashboard-stats h3+p {
	margin-top: 0;
	margin-bottom: 0;
}

.litespeed-dashboard-stats .litespeed-desc {
	color: #777;
}

.litespeed-dashboard-stats p strong {
	font-size: 2em;
	font-weight: normal;
	margin-right: 5px;
}

.litespeed-dashboard-stats-wrapper {
	display: flex;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox {
	margin: 0;
	min-width: 20%;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox .inside .litespeed-title,
.litespeed-dashboard-group .litespeed-postbox .inside .litespeed-title {
	font-size: 14px;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:last-child) {
	margin-right: -1px;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:first-child) {
	border-left-color: #f9f9f9;
}

.litespeed-dashboard-stats-wrapper .litespeed-dashboard-stats p strong {
	font-size: 1.4rem;
}

.litespeed-dashboard-stats-wrapper .litespeed-pie {
	width: 60px;
	height: 60px;
}

.litespeed-dashboard-stats-wrapper .litespeed-flex-container+p:not(:last-child) {
	margin-bottom: 0.55em;
}

.litespeed-dashboard-stats-payg {
	color: #777;
}

.litespeed-dashboard-stats-payg strong {
	color: #444;
}

.postbox .inside>p.litespeed-dashboard-stats-payg {
	margin-top: 1.35em;
}

.postbox .inside>p.litespeed-dashboard-stats-payg:last-child {

	margin-bottom: -5px !important;
}

.litespeed-postbox p.litespeed-dashboard-stats-total {
	padding: 0.75em 20px 0 20px;
	border-top: 1px dashed #eee;
	margin-top: 0.55em;
	margin-left: -20px;
	margin-right: -20px;
	margin-bottom: -0.55em !important;
}

.litespeed-dashboard-group .litespeed-postbox {
	width: calc(25% - 20px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.litespeed-dashboard-group .litespeed-postbox-double {
	min-width: calc(50% - 20px);
	display: flex;
	justify-content: space-between;
}

.litespeed-postbox-double-content {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.litespeed-postbox-double-content .litespeed-postbox-double-col {
	width: 50%;
}

.litespeed-postbox-double-content .litespeed-postbox-double-col:nth-child(2) {
	padding-left: 10px;
}

.litespeed-dashboard-group hr {
	margin: 1.5rem 0 0.75rem 0;
}

.litespeed-postbox .litespeed-postbox-refresh {
	text-decoration: none;
	color: #36b0b0;
	line-height: 1;
	vertical-align: top;
	margin-left: 0.5rem;
	margin-bottom: 0;
}

.litespeed-postbox .litespeed-postbox-refresh.button .dashicons {
	font-size: 22px;
	top: 0.05em;
}

.litespeed-postbox p:last-child {
	margin-bottom: 0;
}

.litespeed-label-dashboard {
	font-size: 0.92em;
	padding: .3em .6em .35em .6em;
	font-weight: normal;
	display: inline-block;
	margin-left: .2em;
	min-width: 2em;
}

.litespeed-label-dashboard:first-child {
	margin-left: 0;
	margin-right: .35em;
}

.litespeed-postbox .inside {
	padding: 0 20px 5px;
}

.litespeed-postbox .inside .litespeed-title {
	margin: 0 -20px 12px -20px;
	padding: 0px 20px 7px 20px;
	border-bottom: 1px solid #eee;
	font-size: 1.2em;
}

.litespeed-postbox .inside.litespeed-postbox-footer {
	border-top: 1px solid #efefef;
	background: #f9f9f9;
	padding: 20px;
	margin-bottom: 0px;
	margin-top: 0;
}

.litespeed-postbox .inside.litespeed-postbox-footer--compact {
	padding: 7px 20px 8px 20px;
	font-size: 12px;
}


.litespeed-postbox-imgopt .litespeed-pie {
	width: 55px;
	height: 55px;
}

.litespeed-postbox-imgopt .litespeed-flex-container {
	align-items: center;
	margin-bottom: 10px;
}

.litespeed-postbox-imgopt .litespeed-flex-container .litespeed-icon-vertical-middle+div h3 {
	margin-top: 0;
}

.litespeed-postbox-imgopt .litespeed-flex-container .litespeed-icon-vertical-middle+div p {
	line-height: 1.2;
}

.litespeed-postbox-imgopt .litespeed-postbox-double-col:last-child>*:first-child {
	margin-top: 7px;
}

.litespeed-postbox-pagespeed p:first-child {
	margin-top: 0;
	margin-bottom: 0;
}

.litespeed-postbox-score-improve {
	line-height: 45px;
	margin-top: 7px;
	font-size: 42px;
}

.litespeed-postbox-pagespeed .litespeed-padding-space:first-child {
	padding-left: 5px;
	padding-right: 5px;
}

.litespeed-link-with-icon {
	text-decoration: underline;
	margin-right: 0.25em;
}

.litespeed-link-with-icon .dashicons {
	vertical-align: baseline;
	position: relative;
	top: 0.1em;
	font-size: 1em;
	text-decoration: none;
	width: auto;
	margin-right: 0.5em;
}

.litespeed-link-with-icon.litespeed-icon-right .dashicons {
	margin-left: 0.5em;
	margin-right: 0;
}

.litespeed-links-group:not(:last-child) {
	margin-bottom: 1em;
}

.litespeed-links-group>span:not(:last-child):after {
	content: '|';
	margin: 0 10px;
	color: #ddd;
	font-size: 13px;
}

.litespeed-wrap p.litespeed-qc-dashboard-link {
	margin-left: 1rem;
}

.litespeed-right.litespeed-qc-dashboard-link .dashicons {
	margin-left: 0.5em;
	margin-right: 0;
}

.litespeed-score-col {
	flex-grow: 1;
	padding-right: 15px;
}

.litespeed-score-col .litespeed-text-md {
	font-size: 1.35rem;
}

.litespeed-score-col.litespeed-score-col--imp {
	text-align: right;
	padding-right: 0;
}

.litespeed-score-col--imp .litespeed-text-jumbo {
	line-height: 1;
}

span[data-balloon-pos] {
	border-bottom: 1px dashed;
}

span[aria-label][data-balloon-pos] {
	cursor: default;
}

@media screen and (max-width: 1400px) and (min-width: 1024px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		flex-grow: 1;
	}

	.litespeed-postbox .inside {
		padding: 0 15px 5px;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: calc(33.3333% - 20px);
	}

	.litespeed-dashboard-group .litespeed-postbox-double {
		min-width: calc(66.6666% - 20px);
	}
}

@media screen and (max-width: 1023px) {

	.litespeed-dashboard-stats-wrapper {
		flex-wrap: wrap;
	}

	.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:first-child) {
		border-left-color: #ccd0d4;
	}

	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		margin-top: -1px;
		min-width: calc(33.3333% - 1px);
	}

	.litespeed-postbox .inside {
		padding: 0 15px 5px;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: calc(50% - 20px);
	}

	.litespeed-dashboard-group .litespeed-postbox-double {
		min-width: calc(100% - 20px);
	}
}

@media screen and (max-width: 719px) and (min-width: 480px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		margin-top: -1px;
		min-width: calc(50% - 2px);
	}
}

@media screen and (max-width: 569px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		min-width: 100%;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: 100%;
	}

	.litespeed-postbox-double-content .litespeed-postbox-double-col {
		width: 100%;
	}

	.litespeed-postbox-double-content {
		flex-wrap: wrap;
	}
}

/********************************* todo *******************************/


/* image optimize page */


.litespeed-column-java {
	background: #5CADAD !important;
}

.litespeed-text-shipgrey {
	color: #535342 !important;
}

.litespeed-text-dimgray {
	color: #666666 !important;
}

.litespeed-text-grey {
	color: #999999 !important;
}

.litespeed-text-whisper {
	color: #E6E6E6 !important;
}

.litespeed-text-malibu {
	color: #5CBDDE !important;
}

.litespeed-text-morningglory {
	color: #99CCCC !important;
}

.litespeed-text-fern {
	color: #66CC66 !important;
}

.litespeed-text-persiangreen {
	color: #009999 !important;
}

.litespeed-text-lead {
	font-size: 16px;
}

.litespeed-text-small {
	font-size: 12px;
	line-height: 14px;
}

.litespeed-text-thin {
	font-weight: 100;
}

.litespeed-contrast {
	color: white;
}

.litespeed-hr-dotted {
	border: 1px dotted #eeeeee;
}

.litespeed-hr {
	padding-bottom: 1.5em;
	border-bottom: .5px solid #97CACA;
}

.litespeed-hr-with-space {
	border-top: 1px solid #eeeeee;
	margin: 2em 0;
	border-bottom: none;
}

.litespeed-icon-vertical-middle {
	vertical-align: middle;
	display: inline-block;
	margin: 0px 10px 0px 10px;
}


.litespeed-column-java .litespeed-danger {
	color: #c1c53a !important;
}

.litespeed-column-java .litespeed-desc {
	color: #bfbfbf;
}

.litespeed-column-java code {
	color: #c2f5bf;
	background-color: #238888;
}

.litespeed-column-java .litespeed-title {
	color: white;
}

.litespeed-width-7-10 .litespeed-progress {
	margin: 1em;
}

.litespeed-refresh:after {
	content: "⟳";
	width: 20px;
	height: 20px;
	color: #40ad3a;
}

.litespeed-column-java .litespeed-refresh:after {
	color: #23ec17;
}

.litespeed-refresh:hover:after,
.litespeed-refresh:focus:after,
.litespeed-refresh:focus:active:after {
	color: #7ffbfb;
}

.litespeed-width-3-10 .litespeed-title {
	margin: 18px 0;
}

.litespeed-silence {
	color: #B1B1B1;
}

.litespeed-column-java .litespeed-congratulate {
	color: #c2f5bf;
	font-size: 20px;
}

.litespeed-light-code .litespeed-silence code {
	background-color: #f0f5fb;
}

.litespeed-column-java .litespeed-btn-danger {
	color: #f194a8;
	border-color: #f194a8;
}

.litespeed-column-java .litespeed-btn-danger:hover {
	background: #f194a8;
}

.litespeed-column-java svg.litespeed-pie circle.litespeed-pie_bg {
	stroke: #e8efe7;
}

.litespeed-column-java svg.litespeed-pie circle.litespeed-pie_circle {
	stroke: #97CACA;
}

.litespeed-column-java svg .litespeed-pie_info text {
	fill: #F5FFEB;
}

.litespeed-column-java svg g.litespeed-pie_info .litespeed-pie-done {
	fill: #a5ffa0;
}

.litespeed-column-java a {
	color: #eaf8ff;
}

.litespeed-column-java a:hover {
	color: #ffffff;
}

.litespeed-progress-bar-blue {
	background-color: #33ADFF;
}

.litespeed-status-current {
	font-size: 3.5em;
	margin: 1.25em 0em .75em 0em;
}

/* .litespeed-title, .litespeed-title-short {
	margin: 18px 0;
	border-bottom: 1px solid #C1D5EA;
	margin: 2.5em 0px 1.5em 0 !important;
} */

.litespeed-column-java .litespeed-desc {
	color: #CAE4E4;
}

.litespeed-column-java .litespeed-warning {
	color: #FFD597 !important;
}

.litespeed-column-java .litespeed-btn-success {
	color: #DDF1E4;
	border: 1px solid #33AD5C;
	background: #33AD5C;
}

.litespeed-column-java .litespeed-btn-success:hover {
	color: #FFFFFF;
	border: 1px solid #7DCA97;
	background: #009933;
}

.litespeed-column-java .litespeed-btn-warning {
	color: #FFF1DD;
	border: 1px solid #FF9933;
	background-color: #FF9933;
}

.litespeed-column-java .litespeed-btn-warning:hover {
	color: #FFFFFF;
	border-color: #FFCA7D;
	background: #FF9900;
}

.litespeed-column-java .litespeed-btn-danger {
	color: #FFEADD !important;
	border: 1px solid #FF6600 !important;
	background: #FF5C5C;
}

.litespeed-column-java .litespeed-btn-danger:hover {
	color: #FFFFFF;
	border: 1px solid #FF9797 !important;
	background: #FF0000;
}

.litespeed-column-java .litepseed-dash-icon-success,
.litepseed-dash-icon-success {
	color: #5CDEDE;
	font-size: 2em;
	margin-top: -.25em;
}

.litespeed-column-java .litepseed-dash-icon-success:hover,
.litepseed-dash-icon-success:hover {
	color: #7DE5E5;
}

.litespeed-dashicons-large {
	font-size: 2em;
}


.litespeed-column-java p {
	color: #FFFFFF;
}

.litespeed-body tbody>tr>th.litespeed-padding-left {
	padding-left: 3em;
}

.litespeed-txt-small {
	font-size: 12px;
}

.litespeed-txt-disabled .litespeed-text-dimgray {
	color: #aaaaaa;
}

.litespeed-txt-disabled svg {
	fill: #aaaaaa;
}

.litespeed-txt-disabled circle.litespeed-pie_circle {
	stroke: #cccccc;
}

.litespeed-txt-disabled g.litespeed-pie_info text {
	color: #cccccc;
}

a.litespeed-media-href svg:hover {
	border-radius: 50%;
	background: #F1FCFF;
	fill: #5CCAD7;
	box-shadow: 0 0 5px 1px #7DD5DF;
	transition: all 0.2s ease-out;
	transform: scale(1.05);
}

.litespeed-media-p a .dashicons-trash {
	font-size: 2.25em;
	vertical-align: middle;
	display: inline;
	border-radius: 50%;
	line-height: 1.5em;
}

.litespeed-media-p a .dashicons-trash:hover {
	transition: all .2s ease-out;
	color: #FFA500 !important;
	background: #FFF5E6;
	box-shadow: 0 0 10px 1px #FF8C00;
}

.litespeed-media-p div>svg circle.litespeed-pie_bg {
	stroke: #ecf2f9;
}

.litespeed-media-p div>svg circle.litespeed-pie_circle {
	stroke: #9fbfdf;
}

.litespeed-media-p div>svg {
	fill: #538cc6;
	background: rgba(236, 242, 249, 0.1);
	border-radius: 50%;
}

.litespeed-banner-description-padding-right-15 {
	padding-right: 15px;
}

.litespeed-banner-description {
	display: inline-flex;
	flex-wrap: wrap;
}

.litespeed-banner-desciption-content {
	margin: 0px;
	line-height: 1.25em;
}

.litespeed-banner-button-link {
	white-space: nowrap;
	margin: 0px;
	line-height: 1.5em;
	padding-bottom: 5px;
}

.litespeed-notice-dismiss {
	position: absolute;
	right: 25px;
	border: none;
	margin: 0;
	padding: 10px;
	background: none;
	cursor: pointer;
	color: #888888;
	display: block;
	height: 20px;
	text-align: center;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-weight: 600;
	text-decoration: none;
}

.litespeed-notice-dismiss:hover,
.litespeed-notice-dismiss:active,
.litespeed-notice-dismiss:focus {
	color: #CC2929;
}








.litespeed-dot {
	display: inline-block;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	color: white;
	text-align: center;
}

.litespeed-badge {
	display: inline-block;
	border-radius: 20%;
	min-width: 50px;
	height: 20px;
	color: white;
	text-align: center;
}


/* =======================================
		BALLOON PURE CSS TOOLTIPS
======================================= */

:root {
	--balloon-color: rgba(16, 16, 16, 0.95);
	--balloon-font-size: 12px;
	--balloon-move: 4px;
}

button[aria-label][data-balloon-pos] {
	overflow: visible;
}

[aria-label][data-balloon-pos] {
	position: relative;
	cursor: pointer;
}

[aria-label][data-balloon-pos]:after {
	opacity: 0;
	pointer-events: none;
	transition: all .2s ease .05s;
	text-indent: 0;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
	font-weight: normal;
	font-style: normal;
	text-shadow: none;
	font-size: var(--balloon-font-size);
	background: var(--balloon-color);
	border-radius: 2px;
	color: #fff;
	content: attr(aria-label);
	padding: .5em 1em;
	position: absolute;
	white-space: nowrap;
	z-index: 10;
	line-height: 1.4;
}

[aria-label][data-balloon-pos]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-top-color: var(--balloon-color);
	opacity: 0;
	pointer-events: none;
	transition: all .2s ease .05s;
	content: "";
	position: absolute;
	z-index: 10;
}

[aria-label][data-balloon-pos]:hover:before,
[aria-label][data-balloon-pos]:hover:after,
[aria-label][data-balloon-pos][data-balloon-visible]:before,
[aria-label][data-balloon-pos][data-balloon-visible]:after,
[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,
[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after {
	opacity: 1;
	pointer-events: none;
}

[aria-label][data-balloon-pos].font-awesome:after {
	font-family: FontAwesome, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

[aria-label][data-balloon-pos][data-balloon-break]:after {
	white-space: pre;
}

[aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after {
	white-space: pre-line;
	word-break: break-word;
}

[aria-label][data-balloon-pos][data-balloon-blunt]:before,
[aria-label][data-balloon-pos][data-balloon-blunt]:after {
	transition: none;
}

[aria-label][data-balloon-pos][data-balloon-pos="up"]:after {
	bottom: 100%;
	left: 50%;
	margin-bottom: 10px;
	transform: translate(-50%, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up"]:before {
	bottom: 100%;
	left: 50%;
	transform: translate(-50%, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="up"][data-balloon-visible]:after {
	transform: translate(-50%, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="up"][data-balloon-visible]:before {
	transform: translate(-50%, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up-left"]:after {
	bottom: 100%;
	left: 0;
	margin-bottom: 10px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up-left"]:before {
	bottom: 100%;
	left: 5px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up-left"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="up-left"][data-balloon-visible]:after {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up-left"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="up-left"][data-balloon-visible]:before {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up-right"]:after {
	bottom: 100%;
	right: 0;
	margin-bottom: 10px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up-right"]:before {
	bottom: 100%;
	right: 5px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up-right"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="up-right"][data-balloon-visible]:after {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up-right"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="up-right"][data-balloon-visible]:before {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down"]:after {
	left: 50%;
	margin-top: 10px;
	top: 100%;
	transform: translate(-50%, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	left: 50%;
	top: 100%;
	transform: translate(-50%, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="down"][data-balloon-visible]:after {
	transform: translate(-50%, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="down"][data-balloon-visible]:before {
	transform: translate(-50%, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down-left"]:after {
	left: 0;
	margin-top: 10px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down-left"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	left: 5px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down-left"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="down-left"][data-balloon-visible]:after {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down-left"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="down-left"][data-balloon-visible]:before {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down-right"]:after {
	right: 0;
	margin-top: 10px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down-right"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	right: 5px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down-right"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="down-right"][data-balloon-visible]:after {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down-right"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="down-right"][data-balloon-visible]:before {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="left"]:after {
	margin-right: 10px;
	right: 100%;
	top: 50%;
	transform: translate(var(--balloon-move), -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="left"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-left-color: var(--balloon-color);
	right: 100%;
	top: 50%;
	transform: translate(var(--balloon-move), -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="left"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="left"][data-balloon-visible]:after {
	transform: translate(0, -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="left"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="left"][data-balloon-visible]:before {
	transform: translate(0, -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="right"]:after {
	left: 100%;
	margin-left: 10px;
	top: 50%;
	transform: translate(calc(var(--balloon-move) * -1), -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="right"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-right-color: var(--balloon-color);
	left: 100%;
	top: 50%;
	transform: translate(calc(var(--balloon-move) * -1), -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="right"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="right"][data-balloon-visible]:after {
	transform: translate(0, -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="right"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="right"][data-balloon-visible]:before {
	transform: translate(0, -50%);
}

[aria-label][data-balloon-pos][data-balloon-length="small"]:after {
	white-space: normal;
	width: 80px;
}

[aria-label][data-balloon-pos][data-balloon-length="medium"]:after {
	white-space: normal;
	width: 150px;
}

[aria-label][data-balloon-pos][data-balloon-length="large"]:after {
	white-space: normal;
	width: 260px;
}

[aria-label][data-balloon-pos][data-balloon-length="xlarge"]:after {
	white-space: normal;
	width: 380px;
}

@media screen and (max-width: 768px) {
	[aria-label][data-balloon-pos][data-balloon-length="xlarge"]:after {
		white-space: normal;
		width: 90vw;
	}
}

[aria-label][data-balloon-pos][data-balloon-length="fit"]:after {
	white-space: normal;
	width: 100%;
}wOFF|0OS/2``*cmaphTTV҇gasp�glyf�,,���head�66
��hhea($$��hmtxL
loca`(�maxpl  ~name��Έ�.�post\  �������3	@����@�@ 8
 ����� ���������797979������Dinrw{0414&104'85"&981.#"890#01100101108290021030202323263:1421261021469063401641065041465&451818101#0"10"10"10&18181'50410495178106321810101'0"10410410"140'1'81.#"8100"101010"1100210101021010380218120:1023403810214012071760502104104183<1045'81#"&'&6?'&6?>323#3575'5�����N�W�W��������O+�O+������:��:446���8������W���W�����d=cd>b��:33�4����6�8�6������_<��T��T���������
�|�
�
H
�'
o
�	
	�	U	�	2	|	
4�litespeedfontlitespeedfontVersion 1.0Version 1.0litespeedfontlitespeedfontlitespeedfontlitespeedfontRegularRegularlitespeedfontlitespeedfontFont generated by IcoMoon.Font generated by IcoMoon.�0�LP����litespeedfontRegularVersion 1.0litespeedfont�0OS/2*�`cmapV҇Tgasppglyf���x,head
���6hhea���$hmtx
loca(�maxp~  name��.�@�post �������3	@����@�@ 8
 ����� ���������797979������Dinrw{0414&104'85"&981.#"890#01100101108290021030202323263:1421261021469063401641065041465&451818101#0"10"10"10&18181'50410495178106321810101'0"10410410"140'1'81.#"8100"101010"1100210101021010380218120:1023403810214012071760502104104183<1045'81#"&'&6?'&6?>323#3575'5�����N�W�W��������O+�O+������:��:446���8������W���W�����d=cd>b��:33�4����6�8�6������_<��T��T���������
�|�
�
H
�'
o
�	
	�	U	�	2	|	
4�litespeedfontlitespeedfontVersion 1.0Version 1.0litespeedfontlitespeedfontlitespeedfontlitespeedfontRegularRegularlitespeedfontlitespeedfontFont generated by IcoMoon.Font generated by IcoMoon.�0OS/2*�`cmapV҇Tgasppglyf���x,head
���6hhea���$hmtx
loca(�maxp~  name��.�@�post �������3	@����@�@ 8
 ����� ���������797979������Dinrw{0414&104'85"&981.#"890#01100101108290021030202323263:1421261021469063401641065041465&451818101#0"10"10"10&18181'50410495178106321810101'0"10410410"140'1'81.#"8100"101010"1100210101021010380218120:1023403810214012071760502104104183<1045'81#"&'&6?'&6?>323#3575'5�����N�W�W��������O+�O+������:��:446���8������W���W�����d=cd>b��:33�4����6�8�6������_<��T��T���������
�|�
�
H
�'
o
�	
	�	U	�	2	|	
4�litespeedfontlitespeedfontVersion 1.0Version 1.0litespeedfontlitespeedfontlitespeedfontlitespeedfontRegularRegularlitespeedfontlitespeedfontFont generated by IcoMoon.Font generated by IcoMoon.<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="litespeedfont" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe900;" glyph-name="wp_lscache" d="M1019.179 451.092c-0.094 0.469-0.27 0.916-0.404 1.374-0.156 0.532-0.284 1.070-0.495 1.57-0.222 0.549-0.532 1.061-0.822 1.57-0.205 0.384-0.381 0.788-0.623 1.152-0.572 0.853-1.226 1.664-1.977 2.423l-0.014 0.011-491.674 491.679c-0.040 0.031-0.082 0.063-0.122 0.094-2.847 2.796-6.741 4.531-11.051 4.531-4.315 0-8.206-1.735-11.054-4.531-0.043-0.031-0.088-0.063-0.125-0.094l-0.011-0.020-491.674-491.671c-0.754-0.759-1.408-1.57-1.98-2.423-0.242-0.361-0.41-0.768-0.623-1.152-0.284-0.509-0.603-1.018-0.822-1.57-0.213-0.501-0.333-1.038-0.486-1.57-0.139-0.458-0.316-0.905-0.407-1.374-0.205-1.007-0.313-2.037-0.313-3.095 0-1.061 0.108-2.088 0.313-3.089 0.088-0.466 0.265-0.91 0.407-1.368 0.156-0.532 0.276-1.087 0.486-1.587 0.219-0.538 0.535-1.050 0.822-1.57 0.213-0.384 0.381-0.777 0.623-1.152 0.572-0.842 1.226-1.664 1.98-2.412l0.009-0.011 491.676-491.682c0.737-0.742 1.539-1.382 2.395-1.957 0.168-0.114 0.358-0.188 0.535-0.299 0.703-0.415 1.414-0.845 2.176-1.155 0.282-0.125 0.597-0.176 0.893-0.282 0.677-0.239 1.345-0.475 2.054-0.626 1.007-0.193 2.054-0.307 3.126-0.307 1.064 0 2.113 0.114 3.123 0.307 0.703 0.151 1.374 0.387 2.048 0.626 0.296 0.105 0.614 0.156 0.896 0.282 0.759 0.31 1.473 0.742 2.182 1.155 0.171 0.111 0.367 0.185 0.532 0.299 0.856 0.572 1.658 1.215 2.395 1.957l0.014 0.020 491.676 491.674c0.754 0.748 1.405 1.57 1.977 2.412 0.242 0.375 0.415 0.771 0.623 1.152 0.293 0.521 0.6 1.030 0.822 1.57 0.21 0.501 0.338 1.055 0.495 1.587 0.134 0.458 0.307 0.902 0.404 1.368 0.196 1.001 0.316 2.028 0.316 3.089-0.003 1.061-0.122 2.091-0.321 3.095zM941.096 447.11l-0.168-0.444-0.137-0.484-0.492-0.879c-0.122-0.168-0.276-0.347-0.444-0.515l-424.624-424.63c-0.151-0.159-0.299-0.29-0.461-0.404-0.142-0.094-0.697-0.424-0.85-0.506l-1.166-0.384c-0.134-0.031-0.444-0.060-0.759-0.060s-0.62 0.031-0.919 0.097c0 0-0.811 0.29-0.993 0.347-0.188 0.1-0.879 0.512-0.879 0.512-0.162 0.131-0.296 0.247-0.427 0.381l-424.627 424.627c-0.168 0.171-0.313 0.344-0.444 0.526l-0.521 0.956-0.341 1.115c-0.006 0.040-0.046 0.327-0.046 0.634 0 0.304 0.040 0.6 0.1 0.887l0.171 0.444 0.151 0.515 0.225 0.356 0.265 0.515c0.134 0.179 0.273 0.356 0.424 0.506l424.741 424.715c0.449 0.435 1.525 1.26 3.126 1.26s2.679-0.825 3.18-1.32l424.667-424.644c0.168-0.168 0.31-0.344 0.435-0.523l0.512-0.936 0.353-1.126c0.006-0.051 0.048-0.347 0.048-0.651-0.003-0.304-0.043-0.592-0.1-0.887zM764.55 449.53c-0.060 0.225-0.156 0.455-0.21 0.683-0.071 0.265-0.134 0.535-0.245 0.782-0.111 0.267-0.262 0.532-0.412 0.774-0.105 0.196-0.188 0.404-0.31 0.58-0.279 0.421-0.623 0.825-0.973 1.198l-0.017 0.020-244.824 244.816c-0.017 0.011-0.046 0.037-0.057 0.054-1.417 1.388-3.351 2.256-5.504 2.256-2.139 0-4.087-0.868-5.504-2.256-0.020-0.017-0.043-0.043-0.057-0.054l-244.824-244.833c-0.375-0.373-0.705-0.774-0.987-1.198-0.128-0.179-0.202-0.384-0.307-0.58-0.151-0.245-0.302-0.509-0.407-0.774-0.111-0.25-0.168-0.521-0.247-0.782-0.074-0.228-0.165-0.458-0.208-0.683-0.102-0.503-0.154-1.018-0.154-1.553 0-0.521 0.051-1.027 0.154-1.525 0.046-0.233 0.134-0.455 0.208-0.697 0.080-0.253 0.137-0.523 0.247-0.771 0.102-0.267 0.256-0.529 0.407-0.788 0.105-0.182 0.179-0.39 0.307-0.566 0.282-0.421 0.612-0.822 0.987-1.2l0.003-0.006 244.821-244.827c0.37-0.367 0.771-0.688 1.189-0.967 0.082-0.065 0.185-0.094 0.27-0.145 0.347-0.216 0.708-0.438 1.084-0.589 0.137-0.057 0.299-0.071 0.441-0.122 0.327-0.134 0.663-0.245 1.024-0.321 0.503-0.1 1.018-0.145 1.55-0.145 0.535 0 1.058 0.046 1.562 0.145 0.347 0.077 0.683 0.188 1.015 0.321 0.148 0.051 0.304 0.065 0.455 0.122 0.373 0.151 0.728 0.373 1.078 0.589 0.082 0.051 0.188 0.077 0.267 0.145 0.427 0.279 0.828 0.6 1.183 0.967l0.017 0.006 244.821 244.827c0.35 0.378 0.694 0.777 0.973 1.2 0.122 0.179 0.205 0.384 0.31 0.566 0.151 0.262 0.299 0.523 0.412 0.788 0.111 0.247 0.174 0.518 0.245 0.771 0.057 0.242 0.151 0.464 0.21 0.697 0.088 0.498 0.145 1.007 0.145 1.525 0.003 0.532-0.051 1.047-0.139 1.55zM604.76 581.632l-78.35-99.419 42.416-61.002c0.051-0.071 0.1-0.151 0.156-0.228 0.711-1.106 1.229-2.222 1.596-3.573 2.506-9.782 0.745-17.55-4.907-21.834l-128.68-98.768c-2.216-1.749-5.299-3.766-9.429-3.766-4.588 0-8.829 2.651-10.769 6.679-2.33 4.699-1.476 9.671 2.534 14.771l78.327 99.439-43.036 61.921c-5.501 7.811-3.792 18.901 3.792 24.701l128.762 98.847c2.222 1.718 5.288 3.686 9.333 3.686 4.577 0 8.823-2.645 10.823-6.753 2.258-4.654 1.402-9.586-2.569-14.703zM233.35 419.499l249.805-249.816v-58.14l-307.965 307.957h58.16zM483.154 726.283l-249.793-249.785h-58.172l307.965 307.962v-58.177zM790.687 419.536h54.428l-307.988-307.996v54.417l253.559 253.579zM790.667 476.473l-253.54 253.537v54.451l311.683-307.988h-58.143z" />
</font></defs></svg>/*
* iziModal | v1.5.1
* http://izimodal.marcelodolce.com
* by Marcelo Dolce.
*/
.iziModal{display:none;position:fixed;top:0;bottom:0;left:0;right:0;margin:auto;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.3);transition:margin-top .3s ease,height .3s ease;transform:translateZ(0)}.iziModal *{-webkit-font-smoothing:antialiased}.iziModal::after{content:'';width:100%;height:0;opacity:0;position:absolute;left:0;bottom:0;z-index:1;background:-moz-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,transparent),color-stop(100%,rgba(0,0,0,.35)));background:-webkit-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-o-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-ms-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.35) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#59000000',GradientType=0 );transition:height .3s ease-in-out,opacity .3s ease-in-out;pointer-events:none}.iziModal.hasShadow::after{height:30px;opacity:1}.iziModal .iziModal-progressbar{position:absolute;left:0;top:0;width:100%;z-index:1}.iziModal .iziModal-progressbar>div{height:2px;width:100%}.iziModal .iziModal-header{background:#88a0b9;padding:14px 18px 15px;box-shadow:inset 0 -10px 15px -12px rgba(0,0,0,.3),0 0 0 #555;overflow:hidden;position:relative;z-index:10}.iziModal .iziModal-header-icon{font-size:40px;color:rgba(255,255,255,.5);padding:0 15px 0 0;margin:0;float:left}.iziModal .iziModal-header-title{color:#fff;font-size:18px;font-weight:600;line-height:1.3}.iziModal .iziModal-header-subtitle{color:rgba(255,255,255,.6);font-size:12px;line-height:1.45}.iziModal .iziModal-header-subtitle,.iziModal .iziModal-header-title{display:block;margin:0;padding:0;font-family:'Lato',Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.iziModal .iziModal-header-buttons{position:absolute;top:50%;right:10px;margin:-17px 0 0}.iziModal .iziModal-button{display:block;float:right;z-index:2;outline:0;height:34px;width:34px;border:0;padding:0;margin:0;opacity:.3;border-radius:50%;transition:transform .5s cubic-bezier(.16,.81,.32,1),opacity .5s ease;background-size:67%!important;-webkit-tap-highlight-color:transparent}.iziModal .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODZCQkIzQ0I0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZCQkIzQ0M0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NkJCQjNDOTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NkJCQjNDQTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsgTJLcAAALJSURBVHja3JnLS1VBHMfvQ7g9dBXRRrwEFRciAhMi1JRW1aIHVEIYEkW0iVpUhOD/ICK6cFMgSbUpC6VFkQa9NtpjkauriRY9Noa3pHT8/mIODMM5Or85o87pC5/NPf5mvmc8M7+Z36SFEKkY2gj2gUawF2wHW8A6+fwv+A6KYAQMg+dg2rbDtKXhGnAaHJIms4zYz9J4HxgAf1g9k2EGteAhWBBuNApaQNrUg6nRTaAbzIuV0RCocWW4DoyJlVcJXI5ruFk2tJqi/2TWxvA5sXbqA2Ucw01i7dVjargazAo/dE33p6/DlAheg50pP0SJpwG8CH7IaH/Q5pFZUhnoArkwwwVwJeWfdoMLYYZvqG+yTGo9CerAoIWBT+A4qAdPDWOugwo1NVcxJtpFZRLkwH3GJCqCghJfxVjnz1JMMMKnwAbGRAg0B5rAA4O4CblZ+qj8tkBjZthvSzDCtFIMM0ZpQhslk5Eej4jpZ/T7G+ygwG1ghrk+jjNMFy1eMPJzpOAzlou6iWmXZkm91EBHjEwUZXoQTDk2SxqhRh7HTJ9hpstB3rFZ0ldq6J2DnB9m2rXZfxOPlrX1DrJRXiaBXSHPaMHvB0cd9JPLpBImMvzLQTuUFA6A9yHPfoIjhsllOc1l5N4grtmDWgYrl5+JTUZcSjNkeMyxWdpA3ZN72IJj01OJTByJS82J2/wQVxmB5y1HK8x0JWMf/kzdD98FJcY5S51gdwyTQl6eUAraspo27PeWXgy8afim0+CELAwOWHyH9EkdkyWwJ4Yxk6BCP+bTm48anutWW5dAp34IpbW03UOzb0FPVEHbx0LKfvAyqpAyKw97JU8Mt6pml6rAJ6oY6Eu5NfvfF7QTeWWQyEsZr6694lwsNoPD8mKRo29gCNwGj7gXi7aGA1EBcY+8vq0GW8FmJb3Pgx9gEnwAr8Ab8MW2w0UBBgAVyyyaohV7ewAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBBOUI4RUM0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBBOUI4RUQ0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEE5QjhFQTRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMEE5QjhFQjRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrQO6gAAAANmSURBVHjazJlbSBRRGMd3x92i0ForRRMiKiUoX4ouiFlJkRVBDxW9GJERwUasvdRT9FD00osRQtAFqegGBUHRBY0uaCVKEkSRpVR0tSwrQtp1+p/4Bk7D7M45M/Ot/uGHu+Psmf+c+eY753wnbJpmyIfGgvmgiv6WgkKQBwzwE3wBr0AnuAta6ZgnhT0aFuY2ghoyGdH4bS+4Dc6CZjCkdWVhWIPF4JoZnB6CDToeVE8sBidNPt0E5UEZrgG9Jr8GwHa/huMgaWZXDSDsxfBuc/jUBAwdw3Fz+NWoang5SJkjQwm7P3seLqQEX2LLfgfBdZcMORMcBqNDwekPqASP0uXhpjR3Ok0x/fUw9HIHGGVdw5DuRtzJpgxDsJui2qOWmuaAOuuLbHivz4YLwLgQj/aAXNmwuItlHhtbA7pAG5jEZHgKWCcbrhUTIY+NPQVjqFFObbYMi/hc6aOhl2AJ9TKnFoIyYXgemKEzJQXVVkyR3oFVzKZFuqw2qHdyFPKhrHPgMoWC3fRjRtNVVg+7SR5IiqmXxUt60cG0CK/vTIZniZVCmcKJF0C3ZNjKBqvJ9Hrwm46tsN1EkCoRQ/M3fBjvs6GrYAvdwHEfGcd1qBaGkwoxrKI+xjz83yJ0iLFHApd46X4xX+M+WECh4lepCNUIcpnMijrEWtAvTRHrbOd8FZNG8uA2Nf0hpmwtjBPwpQ5T0GPS/+tBAZhIq+b3Lu09EyHRwRgO+0C+7dhWcII+PwCf6Sk/Aa9d2vtn+A7nyASugJiD6YSDQcOlvVbxiCaAN8xrs3sgprBiac/QhlhnzjUo6JuZM0UlDS5FPtoQIdNlPYJTWUihFaDex+9Pg6T1KHJAJ2NI7ASllA28hEQ/KJIXoSlwgKlnh+jFe+GjLtwIPtjfyktUt+UaUZWqvw7H3oJD1peI7eQdoF1xWa+zQikHH13OmwqmOxxP0EiZtgK/DRwNuIcHwSeXc2K01WAPhbhKBb5hBNTVbskVH7fqpZGhbJUNtYF83fqwQSXPbOsGjb6etwx2gcEsmT3iFAZeNmUqaMeHSz2qu0k6W15Rqsx3B2i0D+xXGAHTFrRVlEeFuVoqH+ku6VNUbDkPzlAtg30nVK66i8rRIjAbTKaSQVQyN0DD6nOqcLZQld9TLfmvAAMAeMcvp3eCFqQAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkFFRTU5NDA0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFFRTU5NDE0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQUVFNTkzRTRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQUVFNTkzRjRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuDFfX8AAANASURBVHjazJlZSBVRGMfHcWlB0xZM68GKukQLYaGkmEUR2EsvRfQS+BSJPUQE+lTR8hqIZY8hFS0ERVCRoW3gpUApghYpszLTVnCB3O70/+K7MAwzc78Z58z4hx8XzpzvzJ+Zc+d85ztphmFoU9BsUAoq+XcFyAc5QAfD4BfoBp3gCWjnNl9K82mYzO0FVWwyw0NsD3gIroBWkPB0ZzLsgc3grhGcnoE9XjxIOxaCC4Y6tYC1QRmuAj2Geg2CA1M1XAsmjHDVANL8GK4zolMz0L0YrjWiV5PU8HYw6TBIf8imD6UynA96HYKPg3mgMUTDY6DUzXCzQ+AxSz+r6QEQZz4HbLoDZNkZrnAIoOlRZjN1Gk3XS0zty/gTFaRq7Ay3uAR8BcU2ps/z9QJTWw74HrDhTyDbbHg9SKQI+sb9rKa3mV8ZmAt+KJjP1TS+zinFPkqEUqQdBeAOKLa0UwIzpqlXtcYpIKWIO4RBZPoRKNfC10YQI8MlYLkwaAB8ABsiMDwDbKU8dgtIFwRMgJ3guRadKpNPWBMa7tOi1WoyHJPuTsC4oN+IQsOLM3gPJlEWqOE/neMGBqwDeYoMz6G8c0I4h6eFyHBC8A2eVoaH8JutaPwuUA/+uvSht1sHKgTjTWZwjUCVYdrK3xT0iwkND+lc5FClUQ9fINHCRYY7FBrWPSz5Er2lAR9H9P+hpfYGl64OCmPadQ7ojcDwOJetysBMQX/6mrWS4d+cIoYtMnAEnBT2fwVeJufYxZBMFoKFlrajQtOX/uczvEtIB50Kdgn1lt3JGdANltjsXE64jPMnuQ1LPuFJcFrBE11gzQXAUnAPFNk86esO4zSBfmu5lVa9toCf8DC4Ba6C22DEdO01KDLdP5fLr1Z94X2ibV1ilWVQ1XrDpvPAU4c+u1KVqvaHXI7q43ltp3PSYmDDNCgGPrCUD1wN6y5lqzAUN89baX1Y55Jn2LrPRUffRwaHwWhIZs/aTQM/hzLlDp+coPRReprk5cgrkyvz7wM0+hOcAvOlPvwcLNIp526ux1H5aJbHeFpVX4Br4LLXWoffk9CkVnLlaBNYAxaBXJBpMjfIy+o7EAdtfIyb8HPDfwIMAM1WPs8F9tcxAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-button-close:hover{transform:rotate(180deg)}.iziModal .iziModal-button:hover{opacity:.8}.iziModal .iziModal-header.iziModal-noSubtitle{height:auto;padding:10px 15px 12px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{font-size:23px;padding-right:13px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-title{font-size:15px;margin:3px 0 0;font-weight:400}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-buttons{right:6px;margin:-16px 0 0}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-button{height:30px;width:30px}.iziModal-rtl{direction:rtl}.iziModal-rtl .iziModal-header{padding:14px 18px 15px 40px}.iziModal-rtl .iziModal-header-icon{float:right;padding:0 0 0 15px}.iziModal-rtl .iziModal-header-buttons{right:initial;left:10px}.iziModal-rtl .iziModal-button{float:left}.iziModal-rtl .iziModal-header-subtitle,.iziModal-rtl .iziModal-header-title{text-align:right;font-family:Tahoma,'Lato',Arial;font-weight:500}.iziModal-rtl .iziModal-header.iziModal-noSubtitle{padding:10px 15px 12px 40px}.iziModal-rtl .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{padding:0 0 0 13px}.iziModal.iziModal-light .iziModal-header-icon{color:rgba(0,0,0,.5)}.iziModal.iziModal-light .iziModal-header-title{color:#000}.iziModal.iziModal-light .iziModal-header-subtitle{color:rgba(0,0,0,.6)}.iziModal.iziModal-light .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQTU1RUZDNzRFODQxMUU2ODAxOEUwQzg0QjBDQjI3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NEM4MTU1MEI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENDMkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZjYzMwMmE1LWFlMjEtNDI3ZS1hMmE4LTJlYjhlMmZlY2E3NSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdmYmU3NGE3LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po24QssAAANtSURBVHja3JlJaBRBFIa7ZxyTSXADHUkikuAawZNLEOOGGrwJQYko8R4RBQ+OICoqghJQUVwPYjzFY0QUBQU1kogoKO6CG0pcIwbiNibj/8JraNvu6Xo9NTOtP3xzSKe6/65+Ve9VlWlkp2IwGUwFE0E5GA4G8/U+0APegWfgHrgPuq0bpNNp0QPNgEYngHlgGpuMCNp2s+kr4BYM/8ql4WqwHEzP4mXteg7awOW0YlerPnQIaARLNBl1ikLlBDw/1WF4ClgHKozc6idogekz2RheANbaBlE+dB4chfF+qeHF3LOF0FWwF6b7nBe8RvecApolzQVr3C64GR4H1huFV51pmvV+hikRbABFRji0GqarMxluAGON8CgKmmA65mZ4DFhqhE9VPP//ZXgZiCmm1t1gI6XWAAY+gF0gCe4qtqlHL8fthkeBWsXGreA6eMgPviEw+x5sBZ3gAdjPCcNPI8Fsu+FawUCzz40psEfRNJndBl7b/pZmVLTQMkzJo0bQSys43iWm3cxS+DUJOmoSwqKCRmEZWKkYv6RSMBPc5lqXRGm0A1Q6XiaT2aSwo8jrK/qZwZlFIlXTusxa6iXDddTdARpnMj2ek9AWjWYH7h/lubcs4A28THdyAdOl0ezAmKNBNyLLiT0Btjti9zuHg06zpJKIprohwXNypcu1OIdGjYbnxCLGPyYy/EPDfejzbwYvXK59AzuFGdFLKTL8WYNZ59RVzGESJCNm0teI40E6zNIA2wSaA2REP32iaW0omKXRbJKTUVyYEVV0J8oxvEiQmiUZrFSz6XNkuJe3nBKCelaSbjOZrhLsd1BInYxweSeJq9YA6dYtuZCBI4JZ6jGW/W+sebhd0DAaMIO5mTYFW1+X6GeQ7TO3W0WyQj3cw0ulBg4nSUbcAY7zPVYp7ip95FXOH29Hb35AOPjypWMIh7PORSjFZVsIzdKW7AWvfYnTVNWHyCytHw+jd1Nehqks3KepvtChUzD7yGvE2/cduqxldQF1EWZb/PbWLF3jAVgo0WrlkN+c6hSd+rzlaSuaR7O0oX0wyIa2pVAdGaj0HCUVOqIq4dVwrg5lmmG2w+8f/9tjL6foYHE+Gy8Xtv3CPUpf7WauDxadKuIwoeNbOmoYDYbZ0ns/1wxUC7ykigs8sS/LpEe3vwUYALiKDDDSgEiSAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpEQTg1NTA2NTRFODQxMUU2OTQ0N0VERjY2Q0M5ODYwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCQkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCQUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFlNTQwYzczLTVhZmEtNDJlYi04YzJlLWMwMzFlYmFiYmIyNiIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVkYmRiMzM1LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvIicdUAAAOvSURBVHjaxJlZbA1hFMe/qaItUUsspakg1laJ7UUisQuRvvTFA15sQSRCLBFrQryhHqxNHxEPtaQ8CCUkIrVVRbVBJdZYSrXVonr9/3pGxnTunZk78/X+k1+aO+1899/vnnvO+c4YKpi6ghEgW34OBD1BKjBAM6gH78Fz8BhUyrW/ikQivt7QiNMozU0DE8RkJx/3fgCPwA1QHvHp2K/hHJAPJqpwVA2K4flW2IZ7gyVgptKjh6AQxl+GYZi7uRr0U3rVBIpg+nIQwwvACpCkOk4XwYlosR3LMGN1qUqMroGDTqaNGDu7SiVWl+D3iP2i00c9HqxUidd8wzDy3HY4HRwCfWzXz4L7Lm+QKfHeOUTTLWAzdro6muH1YIbDjculWrmpUEM2YYXcCNMt9pAYE8WsWYLdlAxaNYTGMDDHKYYXBVy4B0jTFM/5iOcUc1fM/2JcnItNAYtBNzGtQ33BVHDV3OHpARqhV6CLLKpTs8yQYHxOCrDQO7AV1Gg2PBJhMYiGh4MMnx1eLkixXKsFuzSbZrrMpeGxHnqFFtvrTWCbhILd9AuNpnPMHXaTtZD0kl1mRdwSxXSjJsNZfONjcmqIJR5p3lp6Y+sXrAzsBz/lNXvmtZYMFKbqafi0pKQgKpOSPhmsC5BxXEs1Fz4fUr/7TWMe/q9bC2s3tJs1Df/Q/B5PwAZwJYS1WpPlo0zRZJZziL2gQU7I1GyHL7QSD26taVOytI26DpinxKypApvpk+C6dHlMnXskbUbT1yTpN3WJHWB327UCS3hUoc+tA/VyxP/ost5rGq7QWZnAdoe0eZgnYweDbgmgkoafgk8aTfNgsMNmmqfhC+Czj3V4T3mSBH255kxB0ztd4tNNDJkas2CUdkAKHQ3yAtxfijj/bdb7Cumyhmoyexzcs6Qwv2qUbPKvJDOtnNFklrF3R5qneA2XYHe/2A+ht1Xb3FZXRY1XTAjFTgtxJ45qKtWDpZK1g6dhIQuvBzjcy8FgQ6y8Nw+sCdnwL1Dn8jdMe6m2a+3ma9ESNUdOC1VixSH3bnPiYyraswnO0fqDIQkyW8WmCWab7b+I9TCF3+x0j2e+MPUA7LPGrVfD1F3VNsrPVR0zhS8BB5x21muzYa1Sy1Tb4y4d4qOwIi9Pk/wcj1gV50p5zQjJKAsJH8KcY4vpdYrjV0w9HMxxHjfKNpfwdMyRNuAmyy2M1vq5OegBNFMmR9lSHDizSLPMJGjuO2BZfSOtLKvpMylUvh/d/hFgAOH4+ibxGTZuAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCRkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCRUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzM2MwOWZiLWJjOTEtNGVlZS05MDM1LTRkMmU2ZmE1ZjBmMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv1Q9Z8AAAOXSURBVHjaxJlLbA1RGMfPjIs+EvoIRYt4FVUl2EkkRTxKUqQbG0SEho2FjUQ8YtEICbEgTdFYeK1KaGvVeoUltyStt0UlNE17aWhV2+v/9X5XJpMzc8/0zpn5kl+aO3Nm7r/fnPu9xhDp2URQDJbw3xkgB2QCAwyAPvANfARvQDsfG7V4PO7pC40xCiVxa8AKFjnOw7VdoA08BtG4R8VeBZeCKrBS+GPvQAM0P/NbcB7YBdYJPfYKXIXwL34IJm8eBFOFXusH9RDdnI7gLWA/MEVwdh/UOe1tN8G0V3eLcKwFXJCJNl08G5ZYsrWgWnZCJng5OOBwo1iAoisMw6hMJXgyOOywVW7xj+9BgKL3QHSxm+C9IF9y4U2GMlStRPQP8Jbp9lFwhJwE0RHrgaSV8N6xG238l7Zjtfx3K58/Bd7zsWngIqdnP2we2ACa7B7e6RL6joK5EtHNfL7b5u1Bn7dGFbycYRVM/8WyFJnuJK+z2iVwzFrMcF1h+Cx4ClhtFVyu8CW54ITE01EwFMAPcH1SMJWIqxQvItE1YHEIsXkhtkUhCV4ApiteFOPadn4IgseDMooSSxVrhWFwmkvCsKw06WGhKLhHhGuzSHChh9pZ5cc1oFFwfoTTsWrWqQCvXdZQEpkDsjUJziSv3Qu43k3LTA1BXqvRY/4DMjTd/yu4niJVm9wslCjcb4QE/9Qo+Al44baAmgpKCIqC+01OBLrsr8/de8zkiYwuUxWSq7iuM8JhantIqfYItkOepKBysnbycIfPXYKqURL6DhaBCQrrKcZHTa5loyEIJgHXwG3F9TQV+pxMGK0BiaTHn2OLEjcURbdi7XBSMO3jTxoEjtg+7wDnhG3spSD6F3hk7Tjoxnc0CJ5k+5wFCrhplYl2mmI24nyvvWumAE9z2zIfBW8WifnxIHc2yb6xiHtEoms0/hlGtpAPHCkgNDjFyZngPN88COvkPpEe+XGHbFcD7z53C+ybwKEAo0UPZ8QCybkmiL3sNvkheygSI08RYOSQiaUhd52sUpIZLWwJsYqkkdcZeHfIS66nc9XcZQRpNBY7C7F9Yy1OtonErDgSgNhGcEXmWa/VFA1O9onE6y4dRqGtXuVtkpf2iDy8EVR6GLykMnrsNFC867QF0hH8v3MVicFcuYdKy56uqQx4SukWQj3NOtJtQIt4ckSvbmdziMqy7HcS9xv0cn/Xwdn0A1drnl/d/hNgAGQa6Lgarp6BAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-loader{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;position:absolute;left:0;right:0;top:0;bottom:0;z-index:9}.iziModal .iziModal-content-loader{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%}.iziModal .iziModal-content:after,.iziModal .iziModal-content:before{content:'';display:table}.iziModal .iziModal-content:after{clear:both}.iziModal .iziModal-content{zoom:1;width:100%;-webkit-overflow-scrolling:touch}.iziModal .iziModal-wrap{width:100%;position:relative;-webkit-overflow-scrolling:touch;overflow-scrolling:touch}.iziModal .iziModal-iframe{border:0;margin:0 0 -6px;width:100%;transition:height .3s ease}.iziModal-overlay{display:block;position:fixed;top:0;left:0;height:100%;width:100%}.iziModal-navigate{position:fixed;left:0;right:0;top:0;bottom:0;pointer-events:none}.iziModal-navigate-caption{position:absolute;left:10px;top:10px;color:#fff;line-height:16px;font-size:9px;font-family:'Lato',Arial;letter-spacing:.1em;text-indent:0;text-align:center;width:70px;padding:5px 0;text-transform:uppercase;display:none}.iziModal-navigate-caption::after,.iziModal-navigate-caption::before{position:absolute;top:2px;width:20px;height:20px;text-align:center;line-height:14px;font-size:12px;content:'';background-size:100%!important}.iziModal-navigate-caption:before{left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNmFjNjAyMy04OWU0LWE0NDAtYmMxMy1kOTA5MTQ3MmYzYjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDREQ0YwRjA1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDREQ0YwRUY1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNmM0Nzk3Ni1mNzE3LTk5NDAtYTgyYS1mNTdjNmNiYmU0NWMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowZGVmYTEyZC01MzM0LTExZTYtYWRkYi04Y2NmYjI5ZTAxNjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oo0ptAAACWklEQVR42uyZTWsTYRSFZybxo4kWk5g2NC5qTAU3Kq30A9udi1oXolV/hWuhv6R/Q6utioi4LbbVFHemamlRU0OCEk0wZjwXzwtDoBDopHMHcuFJMplZnLm5ue+589qu61qeOApyYAjEgG0FEyLqN/gKiqBuTtgewWlwCZw056xgwwirgU3wxSv4NJgCUV5YBRXQDEhsBJwCSSauBVZFdJRlIJk9Av7wbj577jDIOENtRmPVwcsw6KfAAvikRKzEDlhnhuU/lRPBWaa9wsxqC6ndPX7OiOA4D8qW3vjO9z7H0w3+KhZstNmOFbLoCQ6DYGmL+bAInmGfLFC4asFXwRJIgB+goVmw+I7HXO+/gevGnGgUPEGxktkSmAMbWmt4HDwBKS6XN1jDKrvEFYoVK7oLroE3h93Woh1eNwqWafJ/gQV65vM+ail34mc6EZwBK2CAx8fAIjjeBYMzDT4cVHCEXtRbRvEu/Nr9HCIOnGGp15vgEec9KYn74B0nAT/CZnv86FcNvwK3wENwAjwAs2Bbs5d4CW5zir0AXvv8p+tKH34B5lkW4h2egRHtbu05uMMHHWfB0zC4NRF5l09kzvE4rd2tyUJyjy4tz7akZqXbL8QETbJ/FsMgWOJtb6brCQ5YsBsC8Uab63DVkkgqFpzie93h8OhScFah2LTHi5ccWroaLd5l6//+hpYQoWP05LKqFs2WQYbTsNxAi+5fxpWmdfh7HS7XhwSzG+H3a2JnvZsyktmLbdOFhpDMvrf4sN1u2/aK0cwMcmYLcturweceW+CnOfFPgAEA8uWFFylBJYoAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal-navigate-caption:after{right:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADhmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjI2YWM2MDIzLTg5ZTQtYTQ0MC1iYzEzLWQ5MDkxNDcyZjNiMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NERDRjBGMDUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NERDRjBFRjUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2YzQ3OTc2LWY3MTctOTk0MC1hODJhLWY1N2M2Y2JiZTQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBkZWZhMTJkLTUzMzQtMTFlNi1hZGRiLThjY2ZiMjllMDE2NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuijSm0AAAKbSURBVFhH7ZnJj0xRGEerzFoIMTaCZmOIedhaiJj55yz8DaYdNhIJEUMQbCTG3rQ02hDSiEY553XdTpHS3nv96taV9ElO6lVt6peb7933fffVG41GrYW5uBaX4EysYzcw1Fd8hc/wM2a0Bl6Nm3BW9i0dDPsQX/olBF6FO72AH/gG3+N3jL3KBpqGC3ERTsGfeAsHDTyHi71oCXzBe/gaU2A5bscZOIxXTb8OLQNX9i6mElYsg/voqruwfQb2BhODWgqpMYDv0NLsNXC4yd42P1PEwNJj4HBTWdipErLVDfxfMRm408QMvBu3jV6WJ1Zg9/rbeBOP+UNZYgX+iE/Rp+lpPIKliBXYB9IhtPNy3z/T/F6YmDXsChvyBc7Gs3gACxEzsDzBg9iPPXgO92NuYgeWx2h3+AhtaM7jPsyF7aV37XR8gNZYO/pwKY51+xPkG27Fk2joT3gCr2A7NuJ6HMkTeAPadlp3VeMChF7G0P6X3dmfjAXOUxIj6LZkv1ylNuStDZejkL+PS96ScFzRqnDAtI5PoTefvbg7iNNOOwqVRCfYghdxBbpHH8Y7+DcKlUTV7MLLaNghPIrjhf2N2IF34AVcjE44hrXHyE3MwE6/loEzpEcIlqKjeyFiBe7FS+he/gENewMLEyuwXdo8dGWP43UsRazA9g7uDNbwNX8oS8watlsz+ISIGbgSJgN3GgOHlnFq8zNFQraGgT1iFc9iUyU0XsMGHhy9zh6XbvCp4ZuBBWglDBj4OdqLeu0+uRJTwMZ+Dbp/e21P3m97yWe2snsw1LTHmz5C/9lQdwhfGbiq89GwvrrwUT4UAouhN6MzloTRpVuEYI5O9urZYXtrYPGQw2OlZegM163QhrJMfWVgyTq0Qq32C/N7uPz9OknWAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal-navigate>button{position:fixed;bottom:0;top:0;border:0;height:100%;width:84px;background-size:100%!important;cursor:pointer;padding:0;opacity:.2;transition:opacity .3s ease;pointer-events:all;margin:0;outline:0}.iziModal-navigate>button:hover{opacity:1}.iziModal-navigate-prev{left:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5sGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2NDkyYzcxMy05ZDM0LTZlNGQtYmUwNi1hMDMyY2Q4NDVjNGU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QjIzMUMxODU3RjcxMUU2ODUzRkRBRjE5RDhDQjZBRDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpjZmMwNzVmNC1kODA3LWI0NDMtYWIwYS02YWVhZjRjMDgxZWE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmNmYzA3NWY0LWQ4MDctYjQ0My1hYjBhLTZhZWFmNGMwODFlYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDo1Ni0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjA0LTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvAvv7QAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAmdJREFUeNrs1LsJQkEQhtH/mtmBgQ8QA7tQK1e7MBBBMbADwzUZEyuQveeDCXbD4TBDay3SWJpYgYCXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXv/WJskpyQJ4jQH7Mcmu0C+BV+/Y5/VeF/oV8Ood+7dpDfDqHvsrySHJBXjBDrxgB16wAy/YgRfswAt24AU78IIdeMEOPOywAw+7gIcdeMEOvGAHXrADL9iBF+zAC3bgBTvwsMMOPOwCHnYBD7uAhx14wQ68YAdesAMv2IEX7MDDDjvwsAt42AU87AIedgEPu4CHXcDDDrxgB16wAw877MDDDjvwsAt42AU87AIedgEPu4CHXcDDLuBhB16wAw877MDDLuBhF/CwC3jYBTzsAh52AQ+7gIddwEtjB3+tS/78+Z/V5d9iATz0Ah56AQ+9gIdewEMv4KEX8NALeOgFPPQCHnoBDz3wgh54QQ889NADDz30wEMv4KEX8NALeOgFPPQCHnoBD72Ahx54QQ+8oAde0AMv6IEX9MBDDz3w0EMPPPQCHnoBD72Ah17AQw+8FUAPvKAHXtADL+iBF/TAC3rgBT3wgh546KEHHnrogYdewEMv4KEHXtADL+iBF/TAC3rgBT3wgh54QQ+8oAde0AMv6IGHHnrgoU/yrgFe3aO/JdknuQOv3tGfC/tjjEsYWmsoyIWXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXvqnPgAAAP//AwCEcoCBRabYzAAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal-navigate-next{right:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAB3SAAAd0gEUasEwAAA7pGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjEyLTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDphZjljN2Q2MC00MTg2LWE3NGQtYTBiMS1mMGU5ODUwYzg2ZGY8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjAxNjJjMmE3LWZmMjYtYzE0ZC05Yjg4LTc2MGM2NzAxYjYzNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1MTowNy0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFmOWM3ZDYwLTQxODYtYTc0ZC1hMGIxLWYwZTk4NTBjODZkZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTg4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+nbt1mgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACQklEQVR42uzSsQ3CQAAEQTdiOyGg/wrciJ0QUMYSECEKAP3PSdvAaZZqkWbJCQJeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXsBLwEvAS8BLwEvAS8BLwEvAS8BLwEvAC3gJeAl4CXgJ+D9vrY7qBgLwo7dVZ+89oAd+5Pbq6nPQAz9s9+rZ96AHHnoBD72Ah17AQy/goRfw0At46AU89AIeegEPvYCHHnhBD7ygBx566IGHHnrgoRfw0At46AU89AIeegEPvYCHXsBDL+ChB17QAy/ogRf0wAt64KGHHnjooQceegEPvYCHXsBDL+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADDz30wEPvI+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADL+iBF/TAC3rgoZ8ePRDAAy/YgRfswAt24AU78IIdeMEOvGAHXrADL9iBhx124GEX8LADL9iBF+zAC3bgBTvwgh14wQ68YAcedtiBh13Awy7gYRfwsAMv2IEX7MALduAFO/CCHXjYYQcedgEPu4CHXcDDLuBhF/CwA+8E2IEX7MALduAFO/Cwww487AIedgEPu4CHXcDDLuBhF/CwC3jYgRfswMMOO/CwC3jYBTzsAh52AQ+7gIddwMMu4GEX8LBravB7dcEO/Ext1Qk78DO1VgfswEvAS8BLwEvAS8BLwEvAS8BLwEvAS8ALeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXgBLwEvAS8BLwEvAS/9shcAAAD//wMAtAygvJrkwJUAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isAttachedTop .iziModal-header{border-top-left-radius:0;border-top-right-radius:0}.iziModal.isAttachedTop{margin-top:0!important;margin-bottom:auto!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.iziModal.isAttachedBottom{margin-top:auto!important;margin-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.iziModal.isFullscreen{max-width:100%!important;margin:0!important;height:100%!important}.iziModal.isAttached,.iziModal.isFullscreen{border-radius:0!important}.iziModal.hasScroll .iziModal-wrap{overflow-y:auto;overflow-x:hidden}html.iziModal-isAttached,html.iziModal-isOverflow{overflow:hidden}html.iziModal-isAttached body,html.iziModal-isOverflow body{overflow-y:scroll;position:relative}.iziModal ::-webkit-scrollbar{overflow:visible;height:7px;width:7px}.iziModal ::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);background-clip:padding-box;border:solid transparent;border-width:0;min-height:28px;padding:100px 0 0;box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)}.iziModal ::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0,.4)}.iziModal ::-webkit-scrollbar-button{height:0;width:0}.iziModal ::-webkit-scrollbar-track{background-clip:padding-box;border:solid transparent;border-width:0 0 0 2px}.iziModal.transitionIn .iziModal-header{-webkit-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-header .iziModal-header-icon{-webkit-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-button{-webkit-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-iframe,.iziModal.transitionIn .iziModal-wrap{-webkit-animation:iziM-fadeIn 1.3s;-moz-animation:iziM-fadeIn 1.3s;animation:iziM-fadeIn 1.3s}.iziModal.transitionIn .iziModal-header{-webkit-animation-delay:0s;-moz-animation:0s;animation-delay:0s}.iziModal.transitionIn .iziModal-header .iziModal-header-icon,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation-delay:.4s;-moz-animation:.4s;animation-delay:.4s}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle{-webkit-animation-delay:.5s;-moz-animation:.5s;animation-delay:.5s}.iziModal.transitionOut .iziModal-header,.iziModal.transitionOut .iziModal-header *{transition:none!important}.iziModal .fadeOut,.iziModal-navigate.fadeOut,.iziModal-overlay.fadeOut,.iziModal.fadeOut{-webkit-animation:iziM-fadeOut .5s;-moz-animation:iziM-fadeOut .5s;animation:iziM-fadeOut .5s;animation-fill-mode:forwards}.iziModal .fadeIn,.iziModal-navigate.fadeIn,.iziModal-overlay.fadeIn,.iziModal.fadeIn{-webkit-animation:iziM-fadeIn .5s;-moz-animation:iziM-fadeIn .5s;animation:iziM-fadeIn .5s}.iziModal-overlay.comingIn,.iziModal.comingIn{-webkit-animation:iziM-comingIn .5s ease;-moz-animation:iziM-comingIn .5s ease;animation:iziM-comingIn .5s ease}.iziModal-overlay.comingOut,.iziModal.comingOut{-webkit-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);-moz-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation-fill-mode:forwards}.iziModal-overlay.bounceInDown,.iziModal.bounceInDown{-webkit-animation:iziM-bounceInDown .7s ease;animation:iziM-bounceInDown .7s ease}.iziModal-overlay.bounceOutDown,.iziModal.bounceOutDown{-webkit-animation:iziM-bounceOutDown .7s ease;animation:iziM-bounceOutDown .7s ease}.iziModal-overlay.bounceInUp,.iziModal.bounceInUp{-webkit-animation:iziM-bounceInUp .7s ease;animation:iziM-bounceInUp .7s ease}.iziModal-overlay.bounceOutUp,.iziModal.bounceOutUp{-webkit-animation:iziM-bounceOutUp .7s ease;animation:iziM-bounceOutUp .7s ease}.iziModal-overlay.fadeInDown,.iziModal.fadeInDown{-webkit-animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutDown,.iziModal.fadeOutDown{-webkit-animation:iziM-fadeOutDown .5s ease;animation:iziM-fadeOutDown .5s ease}.iziModal-overlay.fadeInUp,.iziModal.fadeInUp{-webkit-animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutUp,.iziModal.fadeOutUp{-webkit-animation:iziM-fadeOutUp .5s ease;animation:iziM-fadeOutUp .5s ease}.iziModal-overlay.fadeInLeft,.iziModal.fadeInLeft{-webkit-animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutLeft,.iziModal.fadeOutLeft{-webkit-animation:iziM-fadeOutLeft .5s ease;animation:iziM-fadeOutLeft .5s ease}.iziModal-overlay.fadeInRight,.iziModal.fadeInRight{-webkit-animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutRight,.iziModal.fadeOutRight{-webkit-animation:iziM-fadeOutRight .5s ease;animation:iziM-fadeOutRight .5s ease}.iziModal-overlay.flipInX,.iziModal.flipInX{-webkit-animation:iziM-flipInX .7s ease;animation:iziM-flipInX .7s ease}.iziModal-overlay.flipOutX,.iziModal.flipOutX{-webkit-animation:iziM-flipOutX .7s ease;animation:iziM-flipOutX .7s ease}@-webkit-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-moz-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-webkit-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@-moz-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@-webkit-keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@-moz-keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@-moz-keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes iziM-slideIn{0%{opacity:0;-webkit-transform:translateX(50px)}to{opacity:1;-webkit-transform:translateX(0)}}@-moz-keyframes iziM-slideIn{0%{opacity:0;-moz-transform:translateX(50px)}to{opacity:1;-moz-transform:translateX(0)}}@keyframes iziM-slideIn{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes iziM-slideDown{0%{opacity:0;-webkit-transform:scale(1,0) translateY(-40px);-webkit-transform-origin:center top}}@-moz-keyframes iziM-slideDown{0%{opacity:0;-moz-transform:scale(1,0) translateY(-40px);-moz-transform-origin:center top}}@keyframes iziM-slideDown{0%{opacity:0;transform:scale(1,0) translateY(-40px);transform-origin:center top}}@-webkit-keyframes iziM-revealIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,1)}}@-moz-keyframes iziM-revealIn{0%{opacity:0;-moz-transform:scale3d(.3,.3,1)}}@keyframes iziM-revealIn{0%{opacity:0;transform:scale3d(.3,.3,1)}}@-webkit-keyframes iziM-bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes iziM-bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@-webkit-keyframes iziM-bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes iziM-bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}}@-webkit-keyframes iziM-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@keyframes iziM-fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@-webkit-keyframes iziM-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@keyframes iziM-fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@-webkit-keyframes iziM-fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@keyframes iziM-fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@-webkit-keyframes iziM-fadeInRight{0%{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInRight{0%{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@keyframes iziM-fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@-webkit-keyframes iziM-flipInX{0%{-webkit-transform:perspective(400px) rotateX(60deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}to{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes iziM-flipInX{0%{transform:perspective(400px) rotateX(60deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}to{transform:perspective(400px) rotateX(0deg);opacity:1}}@-webkit-keyframes iziM-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}@keyframes iziM-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}.litespeed-wrap h2.nav-tab-wrapper, .litespeed-wrap h3.nav-tab-wrapper{
	margin-bottom:0;
}

.litespeed-wrap h2 .nav-tab{
	font-size:14px;
}


.litespeed-wrap .striped > tbody > :nth-child(odd),
.litespeed-wrap ul.striped > :nth-child(odd),
.litespeed-wrap .alternate {
	background-color: #f9f9f9;
}



.litespeed-wrap .notice,
.litespeed-wrap div.updated,
.litespeed-wrap div.error {
	border-left: 4px solid #fff;
	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
	padding: 1px 12px;
}

.litespeed-wrap .notice-success,
.litespeed-wrap div.updated {
	border-left-color: #46b450;
}

.litespeed-wrap .notice-success.notice-alt {
	background-color: #ecf7ed;
}

.litespeed-wrap .notice-warning {
	border-left-color: #ffb900;
}

.litespeed-wrap .notice-warning.notice-alt {
	background-color: #fff8e5;
}

.litespeed-wrap .notice-error,
.litespeed-wrap div.error {
	border-left-color: #dc3232;
}

.litespeed-wrap .notice-error.notice-alt {
	background-color: #fbeaea;
}

.litespeed-wrap .notice-info {
	border-left-color: #00a0d2;
}

.litespeed-wrap .notice-info.notice-alt {
	background-color: #e5f5fa;
}<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<path fill="#CED1D9" d="M17.181,20.485H2.421l12.867-8.158l3.352,3.626l0.637,0.018c0.034-0.048,0.069-0.097,0.105-0.144
	l-0.293-0.826c-0.12-0.34-0.023-0.713,0.248-0.951c0.308-0.27,0.642-0.512,0.99-0.72c0.137-0.081,0.291-0.123,0.448-0.123
	c0.191,0,0.381,0.064,0.532,0.18l0.694,0.534c0.058-0.02,0.115-0.039,0.173-0.057l0.248-0.84c0.102-0.346,0.399-0.591,0.759-0.624
	c0.146-0.014,0.298-0.017,0.448-0.021V6.147H1.62V21.29h15.78c-0.071-0.215-0.155-0.416-0.207-0.647
	C17.181,20.59,17.183,20.538,17.181,20.485z M10.705,8.189c0.956,0,1.731,0.775,1.731,1.731c0,0.956-0.775,1.73-1.731,1.73
	c-0.956,0-1.731-0.774-1.731-1.73C8.974,8.964,9.75,8.189,10.705,8.189z M2.368,9.563l7.593,5.435l-7.593,4.729V9.563z
	 M23.63,17.247v3.792c-0.466-0.04-0.886-0.239-1.196-0.554h0.395l-0.911-0.986c-0.021-0.115-0.036-0.233-0.036-0.355
	C21.881,18.145,22.653,17.332,23.63,17.247z M24.298,20.979v-3.673c0.335,0.092,0.634,0.268,0.869,0.511v2.652
	C24.932,20.712,24.633,20.888,24.298,20.979z M19.383,22.458l-0.163,0.458H0.083V4.582h25.084v8.451l-0.003-0.008
	c-0.102-0.346-0.399-0.591-0.759-0.625c-0.035-0.003-0.071-0.002-0.107-0.005V5.451H0.952v16.596h16.776
	c0.163,0.176,0.397,0.286,0.666,0.291l0.883-0.024C19.311,22.362,19.346,22.41,19.383,22.458z M23.794,25.418
	c-0.191,0-0.378-0.012-0.563-0.027c-0.154-0.014-0.284-0.119-0.328-0.268l-0.326-1.106c-0.224-0.058-0.444-0.13-0.659-0.217
	l-0.913,0.702c-0.122,0.094-0.29,0.104-0.422,0.024c-0.326-0.195-0.634-0.419-0.916-0.666c-0.115-0.102-0.157-0.263-0.106-0.408
	l0.387-1.088c-0.149-0.179-0.286-0.365-0.408-0.559l-1.158,0.032c-0.149-0.003-0.294-0.086-0.354-0.227
	c-0.143-0.331-0.259-0.694-0.346-1.078c-0.033-0.149,0.027-0.305,0.154-0.392l0.95-0.65c-0.009-0.115-0.014-0.231-0.014-0.349
	s0.005-0.232,0.014-0.348l-0.95-0.65c-0.127-0.087-0.188-0.242-0.154-0.393c0.087-0.382,0.203-0.745,0.346-1.078
	c0.061-0.143,0.19-0.232,0.354-0.228l1.158,0.032c0.122-0.193,0.259-0.38,0.408-0.557l-0.387-1.088
	c-0.051-0.145-0.009-0.306,0.106-0.408c0.285-0.25,0.594-0.474,0.917-0.666c0.133-0.078,0.299-0.068,0.421,0.025l0.913,0.702
	c0.219-0.088,0.439-0.161,0.659-0.216l0.326-1.105c0.043-0.147,0.172-0.253,0.325-0.268c0.371-0.035,0.758-0.035,1.132,0
	c0.153,0.014,0.282,0.12,0.325,0.268l0.326,1.104c0.22,0.056,0.44,0.128,0.659,0.217l0.914-0.702
	c0.121-0.094,0.288-0.104,0.421-0.024c0.325,0.194,0.633,0.418,0.916,0.666c0.116,0.101,0.158,0.263,0.106,0.408l-0.387,1.088
	c0.149,0.177,0.286,0.363,0.408,0.557l1.158-0.032c0.137-0.004,0.294,0.085,0.354,0.228c0.144,0.334,0.26,0.696,0.347,1.078
	c0.034,0.149-0.027,0.306-0.154,0.393l-0.95,0.65c0.009,0.115,0.013,0.23,0.013,0.348s-0.004,0.233-0.013,0.349l0.95,0.65
	c0.127,0.087,0.188,0.242,0.154,0.393c-0.087,0.383-0.203,0.745-0.347,1.077c-0.062,0.141-0.214,0.228-0.354,0.227l-1.158-0.032
	c-0.121,0.193-0.258,0.38-0.408,0.559l0.387,1.088c0.052,0.146,0.01,0.307-0.106,0.408c-0.283,0.248-0.592,0.472-0.916,0.666
	c-0.132,0.08-0.299,0.07-0.421-0.024L25.67,23.8c-0.215,0.087-0.436,0.159-0.659,0.217l-0.326,1.106
	c-0.044,0.148-0.174,0.254-0.328,0.268C24.171,25.406,23.983,25.418,23.794,25.418z M23.548,24.661c0.162,0.008,0.328,0.008,0.491,0
	l0.314-1.067c0.039-0.133,0.148-0.232,0.284-0.261c0.317-0.065,0.631-0.169,0.93-0.306c0.125-0.061,0.273-0.043,0.385,0.044
	l0.882,0.677c0.137-0.091,0.271-0.188,0.399-0.29l-0.374-1.05c-0.046-0.132-0.017-0.277,0.078-0.38
	c0.225-0.245,0.419-0.51,0.576-0.788c0.068-0.121,0.191-0.206,0.337-0.19l1.115,0.031c0.056-0.15,0.105-0.306,0.149-0.468
	l-0.919-0.629c-0.115-0.079-0.177-0.216-0.16-0.355c0.02-0.159,0.03-0.321,0.03-0.486s-0.011-0.326-0.03-0.485
	c-0.017-0.139,0.045-0.276,0.16-0.355l0.919-0.629c-0.044-0.162-0.094-0.318-0.149-0.47l-1.115,0.031
	c-0.143-0.006-0.268-0.069-0.337-0.189c-0.158-0.279-0.352-0.544-0.576-0.787c-0.095-0.102-0.124-0.248-0.078-0.38l0.374-1.049
	c-0.129-0.103-0.262-0.199-0.399-0.29l-0.882,0.677c-0.11,0.084-0.258,0.101-0.383,0.044c-0.309-0.14-0.622-0.242-0.931-0.305
	c-0.136-0.028-0.246-0.128-0.285-0.262l-0.314-1.067c-0.164-0.009-0.328-0.008-0.491,0l-0.314,1.067
	c-0.039,0.133-0.149,0.234-0.285,0.262c-0.309,0.063-0.622,0.165-0.931,0.305c-0.128,0.055-0.274,0.04-0.384-0.044l-0.881-0.677
	c-0.137,0.09-0.271,0.188-0.398,0.29l0.373,1.05c0.046,0.132,0.017,0.277-0.078,0.38c-0.224,0.243-0.418,0.508-0.577,0.787
	c-0.067,0.12-0.204,0.18-0.336,0.189l-1.115-0.031c-0.056,0.15-0.105,0.308-0.148,0.47l0.918,0.629
	c0.115,0.079,0.178,0.216,0.16,0.354c-0.019,0.159-0.03,0.321-0.03,0.486s0.012,0.327,0.031,0.487
	c0.017,0.139-0.046,0.275-0.161,0.354l-0.919,0.629c0.044,0.162,0.094,0.318,0.149,0.468l1.115-0.031
	c0.135-0.012,0.269,0.069,0.337,0.189c0.158,0.279,0.352,0.544,0.577,0.789c0.094,0.103,0.123,0.249,0.077,0.38l-0.373,1.05
	c0.128,0.102,0.262,0.199,0.399,0.29l0.88-0.677c0.11-0.085,0.259-0.103,0.385-0.044c0.3,0.137,0.613,0.24,0.932,0.306
	c0.135,0.028,0.244,0.128,0.283,0.261L23.548,24.661z M23.794,22.306c-1.744,0-3.163-1.419-3.163-3.162
	c0-1.744,1.419-3.163,3.163-3.163c1.743,0,3.162,1.419,3.162,3.163C26.956,20.887,25.537,22.306,23.794,22.306z M23.794,16.73
	c-1.33,0-2.413,1.082-2.413,2.413c0,1.33,1.083,2.412,2.413,2.412s2.412-1.082,2.412-2.412C26.206,17.813,25.124,16.73,23.794,16.73
	z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M24.2,29.932c-0.686,0-1.381,0.061-2.071,0.18l0.333-3.945h5.769c0.138,0,0.25-0.112,0.25-0.25v-1.569
		c0-0.138-0.112-0.25-0.25-0.25h-7.455c-0.13,0-0.239,0.1-0.249,0.23l-0.564,7.014c-0.008,0.092,0.037,0.181,0.114,0.23l0.882,0.563
		c0.053,0.034,0.118,0.047,0.179,0.036c1.071-0.194,1.932-0.293,2.56-0.293c2.419,0,3.595,0.944,3.595,2.888
		c0,1.005-0.298,1.748-0.912,2.271c-0.617,0.525-1.506,0.791-2.643,0.791c-0.667,0-1.354-0.085-2.042-0.253
		c-0.683-0.168-1.258-0.4-1.708-0.691c-0.078-0.051-0.174-0.053-0.255-0.01c-0.081,0.044-0.13,0.128-0.13,0.22v1.641
		c0,0.087,0.045,0.168,0.12,0.214c0.923,0.562,2.268,0.847,3.996,0.847c1.791,0,3.221-0.466,4.252-1.386
		c1.039-0.928,1.565-2.219,1.565-3.837c0-1.43-0.486-2.576-1.445-3.404C27.143,30.347,25.834,29.932,24.2,29.932z"/>
	<path fill="#6699CC" d="M40.443,37.76c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.793,39.58,39.109,40.443,37.76z M36.484,37.826
		c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648c0-2.131,0.25-3.691,0.741-4.638
		c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365c0.489,0.961,0.737,2.515,0.737,4.619
		c0,2.103-0.248,3.661-0.738,4.629C38.259,37.376,37.526,37.826,36.484,37.826z"/>
	<path fill="#6699CC" d="M48.491,23.861c-1.752,0-3.074,0.677-3.932,2.011c-0.837,1.299-1.261,3.3-1.261,5.95
		c0,2.567,0.438,4.55,1.302,5.892c0.884,1.38,2.193,2.079,3.891,2.079c1.765,0,3.097-0.685,3.959-2.033
		c0.839-1.313,1.265-3.311,1.265-5.938c0-2.538-0.439-4.512-1.306-5.867C51.52,24.566,50.201,23.861,48.491,23.861z M48.491,37.826
		c-1.029,0-1.759-0.443-2.229-1.356c-0.491-0.953-0.741-2.517-0.741-4.648c0-2.132,0.249-3.692,0.741-4.638
		c0.47-0.906,1.198-1.346,2.229-1.346c1.042,0,1.775,0.447,2.243,1.365c0.488,0.96,0.736,2.514,0.736,4.619
		c0,2.104-0.248,3.662-0.736,4.629C50.266,37.376,49.532,37.826,48.491,37.826z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M62.324,17.893l2.085-2.085c0.366-0.367,0.569-0.855,0.569-1.374s-0.203-1.007-0.568-1.374L53.094,1.743
		c-0.365-0.367-0.854-0.57-1.373-0.57c-0.519,0-1.007,0.202-1.373,0.569l-7.883,7.882c-0.064-0.08-0.141-0.154-0.234-0.21
		l-7.519-4.431c-0.447-0.264-0.969-0.338-1.472-0.208c-0.503,0.13-0.924,0.448-1.188,0.896l-3.12,5.293l-1.2-2.208
		c-0.249-0.457-0.66-0.789-1.159-0.936c-0.497-0.146-1.023-0.09-1.476,0.157L11.034,15.62c-0.938,0.511-1.287,1.692-0.778,2.634
		l4.606,8.477c-1.289,0.254-2.264,1.391-2.264,2.753c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753H49.25c1.529,0,2.777-1.229,2.809-2.753l4.832-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		c0-1.549-1.26-2.809-2.81-2.809h-0.544l2.629-2.629l8.118-2.356c0.297-0.086,0.526-0.323,0.604-0.623
		c0.076-0.3-0.011-0.618-0.229-0.836L62.324,17.893z M33.561,6.558c0.034-0.057,0.083-0.08,0.118-0.089
		c0.033-0.01,0.087-0.013,0.145,0.021l7.408,4.367l-9.371,9.371c-0.757,0.757-0.756,1.99,0,2.747l3.7,3.701h-3.046l0.714-1.211
		c0.245-0.417,0.106-0.953-0.31-1.198c-0.417-0.245-0.953-0.106-1.198,0.31l-1.163,1.973c-0.024,0.041-0.027,0.085-0.044,0.127
		h-3.032L35.366,13.3c0.245-0.417,0.107-0.953-0.31-1.198s-0.953-0.107-1.198,0.31l-8.307,14.094
		c-0.032,0.054-0.04,0.113-0.059,0.17h-3.789L33.561,6.558z M11.871,17.157l14.066-7.644c0.056-0.031,0.109-0.026,0.144-0.015
		c0.035,0.011,0.083,0.035,0.115,0.093l1.266,2.328c0.138,0.254,0.386,0.397,0.653,0.434l-2.13,3.613l-0.291-0.535
		c-0.23-0.424-0.763-0.582-1.187-0.351c-0.424,0.231-0.582,0.762-0.351,1.187l0.388,0.713c0.127,0.234,0.346,0.381,0.588,0.433
		l-1.715,2.908L21.884,17.5c-0.23-0.424-0.762-0.582-1.187-0.351c-0.424,0.23-0.582,0.762-0.351,1.187l1.535,2.824
		c0.158,0.292,0.459,0.457,0.77,0.457c0.001,0,0.002,0,0.003,0l-1.833,3.109c-0.017-0.077-0.03-0.155-0.07-0.228l-2.677-4.926
		c-0.231-0.424-0.763-0.582-1.187-0.351c-0.424,0.231-0.582,0.762-0.351,1.187l2.677,4.926c0.159,0.292,0.459,0.457,0.77,0.457
		c0.084,0,0.165-0.038,0.248-0.063l-0.269,0.457c-0.091,0.155-0.113,0.325-0.104,0.492h-3.034l-5.03-9.255
		C11.743,17.326,11.778,17.208,11.871,17.157z M55.145,29.44l-4.83,40.981c-0.004,0.034-0.006,0.068-0.006,0.103
		c0,0.584-0.475,1.06-1.059,1.06H20.243c-0.583,0-1.059-0.476-1.059-1.06c0-0.033-0.002-0.067-0.006-0.103l-4.83-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h38.681C54.656,28.425,55.121,28.876,55.145,29.44z M55.468,22.428
		c-0.142,0.041-0.271,0.117-0.375,0.222l-4.024,4.025h-3.877l10.588-10.586c0.341-0.342,0.341-0.896,0-1.237
		c-0.342-0.342-0.896-0.342-1.238,0l-11.57,11.569c-0.076,0.075-0.128,0.163-0.17,0.254h-6.765l-4.937-4.938
		c-0.075-0.075-0.075-0.197,0-0.272L51.585,2.979c0.047-0.046,0.101-0.056,0.136-0.056c0.036,0,0.088,0.01,0.135,0.057
		l11.317,11.318c0.048,0.046,0.058,0.1,0.058,0.136c0,0.036-0.01,0.089-0.059,0.136l-2.704,2.705
		c-0.163,0.164-0.256,0.387-0.256,0.619s0.093,0.455,0.257,0.619l1.911,1.911L55.468,22.428z"/>
	<path fill="#6699CC" d="M51.648,8.721c-0.342-0.342-0.896-0.342-1.238,0L38.84,20.289c-0.341,0.341-0.341,0.896,0,1.237
		c0.172,0.171,0.396,0.256,0.619,0.256s0.448-0.085,0.619-0.256l11.57-11.568C51.988,9.617,51.99,9.063,51.648,8.721z"/>
	<path fill="#6699CC" d="M53.475,11.787L41.906,23.356c-0.342,0.342-0.342,0.896,0,1.237c0.171,0.171,0.396,0.256,0.619,0.256
		c0.223,0,0.447-0.085,0.619-0.256l11.566-11.569c0.342-0.342,0.341-0.896,0-1.237C54.37,11.445,53.814,11.445,53.475,11.787z"/>
	<path fill="#6699CC" d="M26.256,54.037l1.131,0.652l0.001-4.361l-3.779,2.18l1.131,0.653l-0.326,0.565
		c-0.896,1.549-1.013,3.057-0.329,4.242s2.047,1.84,3.838,1.84h4.415c0.483,0,0.875-0.393,0.875-0.875
		c0-0.483-0.392-0.875-0.875-0.875h-4.415c-1.123,0-1.969-0.353-2.323-0.965c-0.354-0.611-0.234-1.521,0.328-2.492L26.256,54.037z"
		/>
	<path fill="#6699CC" d="M29.08,47.398c0.138,0.08,0.289,0.117,0.437,0.117c0.302,0,0.596-0.156,0.758-0.438l2.221-3.844
		c0.371-0.641,0.817-1.09,1.325-1.336c0.454-0.221,0.896-0.222,1.35,0.002c0.506,0.244,0.95,0.692,1.322,1.336l0.366,0.632
		l-1.131,0.653l3.779,2.18l-0.003-4.362l-1.13,0.653l-0.366-0.633c-0.55-0.95-1.248-1.635-2.073-2.034
		c-0.926-0.449-1.946-0.45-2.875-0.003c-0.83,0.402-1.529,1.088-2.078,2.037l-2.221,3.844C28.519,46.622,28.662,47.157,29.08,47.398
		z"/>
	<path fill="#6699CC" d="M36.654,58.934l3.778,2.183v-1.308h0.637c1.791,0,3.154-0.652,3.84-1.84
		c0.684-1.187,0.566-2.693-0.33-4.242l-2.25-3.895c-0.241-0.419-0.776-0.561-1.195-0.32c-0.419,0.242-0.563,0.777-0.32,1.195
		l2.252,3.896c0.562,0.971,0.682,1.879,0.328,2.492c-0.354,0.611-1.199,0.963-2.322,0.963h-0.637v-1.307L36.654,58.934z"/>
	<path fill="#6699CC" d="M26.13,63.1c-0.48,0.053-0.826,0.485-0.772,0.967l0.327,2.906c0.05,0.447,0.429,0.777,0.869,0.777
		c0.033,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-0.327-2.907C27.043,63.391,26.613,63.048,26.13,63.1z"/>
	<path fill="#6699CC" d="M24.216,46.914c0.032,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-1.294-11.54
		c-0.054-0.479-0.481-0.822-0.967-0.772c-0.48,0.054-0.826,0.487-0.772,0.967l1.294,11.539
		C23.397,46.584,23.776,46.914,24.216,46.914z"/>
	<path fill="#6699CC" d="M43.361,63.1c-0.489-0.06-0.912,0.291-0.967,0.771l-0.326,2.906c-0.055,0.479,0.291,0.912,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.777l0.326-2.906C44.188,63.586,43.843,63.152,43.361,63.1z"/>
	<path fill="#6699CC" d="M45.176,46.932c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.776l1.297-11.563
		c0.056-0.48-0.291-0.914-0.771-0.967c-0.487-0.049-0.913,0.292-0.967,0.772l-1.298,11.563
		C44.35,46.445,44.695,46.878,45.176,46.932z"/>
	<path fill="#6699CC" d="M34.552,63.125c-0.483,0-0.875,0.393-0.875,0.875v2.875c0,0.482,0.392,0.875,0.875,0.875
		c0.483,0,0.875-0.393,0.875-0.875V64C35.427,63.518,35.036,63.125,34.552,63.125z"/>
	<path fill="#6699CC" d="M34.552,37.187c0.483,0,0.875-0.392,0.875-0.875V34.5c0-0.483-0.392-0.875-0.875-0.875
		c-0.483,0-0.875,0.392-0.875,0.875v1.812C33.677,36.795,34.069,37.187,34.552,37.187z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M61.821,13.089c-0.041-0.114-0.104-0.222-0.197-0.311L51.641,3.19c-0.032-0.03-0.071-0.042-0.104-0.066
		c-0.054-0.039-0.103-0.08-0.166-0.104c-0.07-0.029-0.145-0.036-0.219-0.044c-0.032-0.004-0.063-0.02-0.097-0.02h-0.015
		c-0.002,0-0.004,0-0.004,0H15.826c-1.506,0-2.731,1.224-2.731,2.729v63.631c0,1.505,1.225,2.729,2.731,2.729h43.351
		c1.506,0,2.729-1.225,2.729-2.729V13.441C61.906,13.314,61.872,13.196,61.821,13.089z M51.899,5.776l7.105,6.823h-7.004
		c-0.058,0-0.102-0.044-0.102-0.101V5.776L51.899,5.776z M60.222,69.315c0,0.576-0.47,1.045-1.045,1.045H15.826
		c-0.578,0-1.046-0.469-1.046-1.045V5.684c0-0.576,0.469-1.043,1.046-1.043h34.388v7.857c0,0.985,0.801,1.786,1.785,1.786h8.221
		v55.031H60.222z"/>
	<path fill="#6699CC" d="M42.681,38.698l-7.151-4.129c-0.261-0.15-0.582-0.15-0.843,0c-0.26,0.15-0.421,0.428-0.421,0.73v8.257
		c0,0.302,0.161,0.579,0.421,0.73c0.13,0.074,0.277,0.112,0.422,0.112c0.146,0,0.291-0.038,0.422-0.112l7.152-4.13
		c0.261-0.149,0.424-0.428,0.424-0.729C43.105,39.126,42.94,38.847,42.681,38.698z M35.951,42.096v-5.338l4.624,2.669L35.951,42.096
		z"/>
	<path fill="#6699CC" d="M48.729,29.417l1.035-2.911c0.116-0.326,0.021-0.691-0.239-0.918c-0.797-0.69-1.664-1.32-2.581-1.872
		c-0.297-0.179-0.672-0.157-0.947,0.054l-2.448,1.885c-0.924-0.406-1.877-0.717-2.846-0.928l-0.873-2.968
		c-0.099-0.333-0.39-0.572-0.736-0.601c-0.861-0.074-2.321-0.074-3.185,0c-0.346,0.029-0.637,0.269-0.736,0.601l-0.874,2.968
		c-0.969,0.21-1.923,0.521-2.846,0.928l-2.447-1.885c-0.276-0.212-0.651-0.234-0.948-0.055c-0.92,0.552-1.789,1.183-2.582,1.873
		c-0.261,0.228-0.358,0.592-0.241,0.918l1.036,2.911c-0.678,0.757-1.271,1.568-1.771,2.421l-3.096-0.084
		c-0.34-0.009-0.663,0.193-0.799,0.512c-0.39,0.918-0.716,1.937-0.969,3.03c-0.078,0.338,0.059,0.688,0.345,0.885l2.552,1.747
		c-0.058,0.539-0.085,1.024-0.085,1.499c0,0.474,0.028,0.958,0.085,1.497l-2.552,1.748c-0.287,0.196-0.423,0.546-0.345,0.884
		c0.25,1.089,0.577,2.106,0.968,3.03c0.136,0.32,0.436,0.505,0.8,0.513l3.096-0.085c0.5,0.853,1.093,1.664,1.771,2.422l-1.035,2.912
		c-0.117,0.326-0.02,0.689,0.241,0.918c0.785,0.683,1.653,1.313,2.58,1.872c0.297,0.18,0.675,0.157,0.95-0.055l2.448-1.886
		c0.922,0.405,1.874,0.716,2.844,0.929l0.875,2.968c0.098,0.332,0.39,0.571,0.735,0.602c0.428,0.037,0.996,0.078,1.592,0.078
		c0.596,0,1.163-0.041,1.592-0.078c0.347-0.03,0.638-0.27,0.737-0.602l0.873-2.968c0.969-0.213,1.921-0.521,2.843-0.929l2.45,1.885
		c0.275,0.213,0.653,0.233,0.949,0.056c0.928-0.561,1.798-1.191,2.583-1.876c0.261-0.227,0.356-0.592,0.239-0.916l-1.035-2.91
		c0.677-0.758,1.271-1.569,1.771-2.422l3.098,0.085c0.394-0.011,0.663-0.192,0.798-0.513c0.393-0.926,0.719-1.945,0.969-3.03
		c0.078-0.338-0.06-0.688-0.345-0.884l-2.553-1.749c0.06-0.536,0.087-1.028,0.087-1.496c0-0.476-0.027-0.962-0.086-1.499
		l2.552-1.747c0.286-0.197,0.423-0.547,0.345-0.884c-0.251-1.09-0.577-2.11-0.971-3.031c-0.132-0.311-0.437-0.512-0.775-0.512
		c-0.008,0-0.015,0-0.022,0l-3.098,0.084C49.998,30.983,49.404,30.172,48.729,29.417z M53.587,35.12l-2.494,1.708
		c-0.263,0.18-0.4,0.493-0.358,0.809c0.092,0.676,0.135,1.243,0.135,1.791c0,0.545-0.043,1.114-0.135,1.787
		c-0.042,0.316,0.096,0.629,0.358,0.81l2.494,1.708c-0.152,0.583-0.33,1.141-0.528,1.667l-3.019-0.084
		c-0.352-0.007-0.612,0.163-0.765,0.443c-0.559,1.035-1.271,2.011-2.118,2.896c-0.221,0.229-0.292,0.564-0.184,0.864l1.01,2.841
		c-0.448,0.361-0.926,0.708-1.425,1.03l-2.39-1.839c-0.25-0.193-0.591-0.229-0.878-0.091c-1.092,0.525-2.236,0.899-3.402,1.106
		c-0.314,0.059-0.57,0.287-0.66,0.593l-0.852,2.899c-0.55,0.034-1.203,0.034-1.752,0l-0.854-2.899
		c-0.091-0.306-0.345-0.535-0.66-0.593c-1.167-0.207-2.312-0.581-3.403-1.106c-0.287-0.14-0.626-0.103-0.879,0.091l-2.388,1.84
		c-0.497-0.322-0.974-0.668-1.424-1.03l1.01-2.842c0.107-0.301,0.036-0.635-0.185-0.864c-0.849-0.887-1.562-1.862-2.119-2.896
		c-0.152-0.281-0.438-0.45-0.766-0.444l-3.018,0.084c-0.199-0.526-0.375-1.083-0.528-1.667l2.493-1.706
		c0.263-0.18,0.402-0.492,0.359-0.809c-0.092-0.68-0.135-1.25-0.135-1.79c0-0.544,0.042-1.111,0.135-1.791
		c0.042-0.316-0.097-0.628-0.359-0.808l-2.493-1.707c0.154-0.586,0.33-1.145,0.528-1.667l3.019,0.083
		c0.316,0.025,0.613-0.161,0.765-0.442c0.558-1.035,1.271-2.009,2.12-2.896c0.22-0.229,0.292-0.564,0.185-0.865l-1.011-2.84
		c0.452-0.364,0.928-0.709,1.423-1.03l2.388,1.838c0.253,0.194,0.593,0.229,0.879,0.091c1.093-0.526,2.239-0.9,3.404-1.108
		c0.314-0.057,0.569-0.285,0.66-0.591l0.854-2.898c0.551-0.035,1.199-0.035,1.752,0l0.852,2.898c0.092,0.306,0.345,0.535,0.66,0.591
		c1.165,0.208,2.311,0.582,3.405,1.108c0.285,0.138,0.625,0.102,0.879-0.091l2.387-1.838c0.494,0.321,0.971,0.666,1.423,1.031
		l-1.01,2.84c-0.108,0.301-0.036,0.636,0.184,0.864c0.845,0.882,1.558,1.857,2.12,2.896c0.146,0.274,0.43,0.442,0.741,0.442
		c0.007,0,0.014,0,0.021,0l3.02-0.083C53.257,33.978,53.435,34.536,53.587,35.12z"/>
	<path fill="#6699CC" d="M37.5,29.626c-5.404,0-9.801,4.396-9.801,9.799c0,5.402,4.397,9.803,9.801,9.803s9.8-4.398,9.8-9.803
		C47.3,34.022,42.904,29.626,37.5,29.626z M37.5,47.543c-4.475,0-8.116-3.641-8.116-8.117c0-4.475,3.642-8.114,8.116-8.114
		c4.474,0,8.114,3.639,8.114,8.114S41.974,47.543,37.5,47.543z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M47.423,47.475c-6.108,0-11.078,4.971-11.078,11.08c0,6.107,4.969,11.077,11.078,11.077
		c6.109,0,11.079-4.97,11.079-11.077C58.502,52.443,53.532,47.475,47.423,47.475z M47.423,67.882c-5.144,0-9.327-4.185-9.327-9.327
		c0-5.146,4.184-9.33,9.327-9.33c5.146,0,9.329,4.186,9.329,9.33C56.752,63.697,52.566,67.882,47.423,67.882z"/>
	<path fill="#6699CC" d="M52.827,53.148c-0.343-0.342-0.896-0.342-1.238,0l-4.165,4.166l-4.165-4.166
		c-0.342-0.342-0.896-0.342-1.237,0c-0.342,0.343-0.342,0.896,0,1.238l4.164,4.165l-4.164,4.165c-0.342,0.342-0.342,0.896,0,1.238
		c0.17,0.171,0.396,0.256,0.619,0.256c0.223,0,0.447-0.085,0.618-0.256l4.165-4.165l4.165,4.165
		c0.171,0.171,0.396,0.256,0.619,0.256s0.448-0.085,0.619-0.256c0.341-0.342,0.341-0.896,0-1.238l-4.165-4.165l4.165-4.165
		C53.168,54.046,53.168,53.491,52.827,53.148z"/>
	<path fill="#6699CC" d="M64.166,21.332c-0.045-0.116-0.109-0.225-0.205-0.316l-8.912-8.56c-0.029-0.028-0.066-0.04-0.1-0.063
		c-0.059-0.042-0.113-0.087-0.182-0.115c-0.072-0.029-0.147-0.036-0.225-0.045c-0.035-0.004-0.064-0.021-0.102-0.021h-0.018
		c-0.001,0-0.002,0-0.003,0h-2.938c-0.023-0.032-0.037-0.07-0.067-0.099l-5.149-4.946c-0.031-0.031-0.072-0.044-0.107-0.069
		c-0.057-0.04-0.107-0.083-0.172-0.109c-0.071-0.029-0.146-0.036-0.223-0.045c-0.035-0.004-0.066-0.021-0.104-0.021h-0.018
		c0,0,0,0-0.002,0h-2.832c-0.045-0.119-0.108-0.232-0.207-0.326L36.901,1.12c0,0-0.001,0-0.001-0.001l-0.012-0.012
		c-0.027-0.026-0.061-0.036-0.09-0.057c-0.061-0.046-0.12-0.093-0.191-0.122c-0.064-0.026-0.132-0.03-0.2-0.04
		c-0.042-0.006-0.081-0.025-0.125-0.025H10.139c-1.364,0-2.474,1.11-2.474,2.474V57.23c0,1.362,1.11,2.473,2.474,2.473h3.38
		c0.139,0,0.266-0.039,0.383-0.098v4.953c0,1.385,1.126,2.51,2.51,2.51h4.018v4.509c0,1.411,1.148,2.56,2.56,2.56h38.701
		c1.41,0,2.559-1.147,2.559-2.56V21.695C64.25,21.564,64.217,21.443,64.166,21.332z M55.316,15.14l5.924,5.689l-5.924,0.023V15.14z
		 M46.536,9.852l2.457,2.36h-2.457V9.852z M37.157,3.792l3.26,3.131h-3.26V3.792z M13.902,9.432v48.619
		c-0.117-0.059-0.244-0.098-0.383-0.098h-3.38c-0.399,0-0.724-0.324-0.724-0.723V3.337c0-0.399,0.325-0.724,0.724-0.724h25.268v4.31
		H16.413C15.028,6.923,13.902,8.048,13.902,9.432z M16.413,65.318c-0.419,0-0.76-0.34-0.76-0.76V9.432
		c0-0.418,0.341-0.759,0.76-0.759h28.374v3.539H22.99c-1.411,0-2.56,1.148-2.56,2.56V65.32h-4.017V65.318z M62.5,71.577
		c0,0.446-0.361,0.81-0.809,0.81H22.99c-0.446,0-0.81-0.363-0.81-0.81V14.771c0-0.446,0.363-0.81,0.81-0.81h30.576v6.891
		c0,0.947,0.771,1.718,1.718,1.718H62.5V71.577z"/>
	<path fill="#6699CC" d="M27.498,28.501h26.625c0.482,0,0.875-0.392,0.875-0.875s-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.392-0.875,0.875S27.015,28.501,27.498,28.501z"/>
	<path fill="#6699CC" d="M27.498,36.757h26.625c0.482,0,0.875-0.392,0.875-0.875c0-0.483-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.392-0.875,0.875C26.623,36.365,27.015,36.757,27.498,36.757z"/>
	<path fill="#6699CC" d="M27.498,45.014h26.625c0.482,0,0.875-0.393,0.875-0.875c0-0.484-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.391-0.875,0.875C26.623,44.621,27.015,45.014,27.498,45.014z"/>
	<path fill="#6699CC" d="M32.999,51.52h-5.501c-0.483,0-0.875,0.393-0.875,0.875c0,0.483,0.392,0.875,0.875,0.875h5.501
		c0.483,0,0.875-0.392,0.875-0.875C33.874,51.912,33.482,51.52,32.999,51.52z"/>
	<path fill="#6699CC" d="M31.124,59.775h-3.626c-0.483,0-0.875,0.392-0.875,0.875c0,0.482,0.392,0.875,0.875,0.875h3.626
		c0.483,0,0.875-0.393,0.875-0.875C31.999,60.167,31.607,59.775,31.124,59.775z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<g id="Layer_1_1_" display="none">
	<path display="inline" fill="#E8AE4A" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.509,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.322,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.358,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy_3" display="none">
	<path display="inline" fill="#4675B8" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.509,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.322,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.358,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy" display="none">
	<path display="inline" fill="#A32430" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M15.159,13.764c0.187,0.188,0.288,0.437,0.288,0.697c0,0.262-0.102,0.51-0.288,0.695
		c-0.185,0.184-0.438,0.289-0.698,0.289c-0.262,0-0.518-0.105-0.697-0.291L10,11.393l-3.764,3.765c-0.361,0.36-1.033,0.36-1.393,0
		c-0.187-0.185-0.29-0.433-0.29-0.695s0.103-0.512,0.289-0.696l3.764-3.767L4.842,6.234c-0.385-0.384-0.385-1.01,0-1.394
		c0.359-0.361,1.032-0.361,1.394,0L10,8.604l3.766-3.765c0.356-0.359,1.033-0.361,1.395,0c0.188,0.185,0.288,0.433,0.288,0.697
		c0.001,0.264-0.103,0.511-0.288,0.697l-3.766,3.764L15.159,13.764z"/>
</g>
<g id="Layer_1_copy_2">
	<path fill="#3ABFBF" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10C20,4.478,15.521,0,10,0z
		 M15.458,6.018l-5.944,9.089c-0.031,0.048-0.07,0.088-0.115,0.121l-0.088,0.063c-0.03,0.021-0.063,0.04-0.097,0.053l-0.189,0.075
		c-0.048,0.019-0.1,0.03-0.152,0.032l-0.146,0.004c-0.005,0-0.009,0-0.014,0c-0.026,0-0.052-0.003-0.078-0.008l-0.309-0.096
		c-0.058-0.022-0.11-0.058-0.154-0.101c-0.025-0.017-0.077-0.056-0.099-0.074l-3.381-3.133c-0.185-0.171-0.295-0.405-0.307-0.661
		c-0.01-0.256,0.079-0.497,0.251-0.683c0.357-0.378,0.974-0.398,1.349-0.054l2.597,2.399l5.277-8.069
		c0.277-0.426,0.895-0.558,1.322-0.276c0.211,0.137,0.357,0.352,0.41,0.602C15.645,5.554,15.596,5.807,15.458,6.018z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<polygon fill="#6699CC" points="33.496,19.622 41.335,23.493 48.044,17.635 49.146,18.897 50.775,14.133 45.835,15.104 
		46.937,16.367 41.075,21.487 33.354,17.676 22.786,24.961 23.741,26.347 	"/>
	<path fill="#6699CC" d="M64.08,13.12c-0.041-0.11-0.104-0.216-0.195-0.303L53.709,3.043c-0.027-0.027-0.063-0.039-0.095-0.061
		c-0.057-0.042-0.11-0.084-0.175-0.112c-0.067-0.027-0.138-0.033-0.209-0.042c-0.036-0.004-0.068-0.021-0.104-0.021h-0.017
		c-0.002,0-0.002,0-0.002,0h-39.51c-1.524,0-2.765,1.241-2.765,2.765v64.853c0,1.525,1.24,2.765,2.765,2.765h47.807
		c1.522,0,2.765-1.239,2.765-2.765V13.478C64.167,13.349,64.133,13.229,64.08,13.12z M53.968,5.625l7.3,7.011h-7.18
		c-0.065,0-0.12-0.054-0.12-0.12V5.625z M62.483,70.427c0,0.597-0.484,1.082-1.081,1.082H13.598c-0.597,0-1.082-0.485-1.082-1.082
		V5.574c0-0.596,0.485-1.082,1.082-1.082h38.688v8.025c0,0.995,0.809,1.803,1.803,1.803h8.396V70.427z"/>
	<path fill="#6699CC" d="M17.724,28.494c-0.464,0-0.842,0.377-0.842,0.842v28.058c0,0.465,0.377,0.841,0.842,0.841h39.185
		c0.065,0,0.122-0.023,0.184-0.036c0.061,0.013,0.118,0.036,0.183,0.036c0.464,0,0.842-0.376,0.842-0.841V29.336
		c0-0.465-0.378-0.842-0.842-0.842c-0.064,0-0.122,0.023-0.183,0.037c-0.062-0.014-0.118-0.037-0.184-0.037H17.724z M56.435,37.847
		H41.649v-2.992h14.785V37.847z M18.565,34.854h4.931v2.992h-4.931V34.854z M18.565,39.529h4.931v2.993h-4.931V39.529z
		 M39.966,47.199H25.18v-2.994h14.786V47.199z M41.649,44.205h14.785v2.994H41.649V44.205z M25.18,42.522v-2.993h14.786v2.993H25.18
		z M23.497,44.205v2.994h-4.931v-2.994H23.497z M23.497,48.882v2.992h-4.931v-2.992H23.497z M25.18,48.882h14.786v2.992H25.18
		V48.882z M41.649,48.882h14.785v2.992H41.649V48.882z M56.435,42.522H41.649v-2.993h14.785V42.522z M39.966,37.847H25.18v-2.992
		h14.786V37.847z M25.18,33.171v-2.994h14.786v2.994H25.18z M23.497,33.171h-4.931v-2.994h4.931V33.171z M18.565,53.559h4.931v2.993
		h-4.931V53.559z M25.18,53.559h14.786v2.993H25.18V53.559z M41.649,53.559h14.785v2.993H41.649V53.559z M56.435,33.171H41.649
		v-2.994h14.785V33.171z"/>
	<path fill="#6699CC" d="M28.019,37.043h9.289c0.398,0,0.721-0.323,0.721-0.721s-0.323-0.721-0.721-0.721h-9.289
		c-0.398,0-0.721,0.323-0.721,0.721S27.62,37.043,28.019,37.043z"/>
	<path fill="#6699CC" d="M44.5,37.043h9.29c0.397,0,0.721-0.323,0.721-0.721s-0.323-0.721-0.721-0.721H44.5
		c-0.398,0-0.721,0.323-0.721,0.721S44.102,37.043,44.5,37.043z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M56.841,27.021h-2.944l3.079-8.461c0.108-0.299,0.047-0.634-0.162-0.874l-7.001-8.046
		c-0.019-0.021-0.042-0.036-0.063-0.055c-0.033-0.032-0.065-0.065-0.104-0.091c-0.017-0.011-0.035-0.018-0.053-0.029
		c-0.049-0.028-0.098-0.056-0.15-0.075c-0.01-0.003-0.02-0.004-0.029-0.007c-0.062-0.02-0.124-0.035-0.189-0.04
		c-0.02-0.002-0.04,0.002-0.06,0.001c-0.05,0-0.1-0.003-0.149,0.005L38.48,11.014c-0.314,0.05-0.577,0.266-0.686,0.565
		l-3.846,10.563c-0.027,0.075-0.043,0.152-0.049,0.229c0,0.003,0,0.006,0,0.01c-0.005,0.073-0.001,0.146,0.012,0.217
		c0.003,0.017,0.011,0.032,0.015,0.048c0.014,0.058,0.03,0.114,0.056,0.168c0.01,0.021,0.025,0.038,0.036,0.058
		c0.024,0.042,0.045,0.084,0.076,0.123c0.003,0.003,0.008,0.005,0.011,0.008c0.003,0.004,0.005,0.01,0.009,0.014l3.515,4.003h-0.583
		l-3.372-3.876c-0.021-0.025-0.049-0.042-0.073-0.064c-0.03-0.027-0.057-0.057-0.09-0.08c-0.028-0.02-0.06-0.032-0.089-0.048
		c-0.037-0.02-0.072-0.041-0.11-0.055c-0.027-0.01-0.056-0.013-0.084-0.02c-0.045-0.012-0.089-0.024-0.136-0.029
		c-0.029-0.002-0.06,0.002-0.089,0.002c-0.042,0.001-0.083-0.003-0.125,0.004L22.34,24.521c-0.314,0.05-0.577,0.266-0.686,0.565
		l-0.705,1.936h-2.79c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753h29.007c1.53,0,2.778-1.229,2.808-2.753l4.833-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		C59.649,28.281,58.39,27.021,56.841,27.021z M52.035,27.021h-0.145l-5.603-6.378l2.925-8.036l0.254-0.698l5.688,6.537
		L52.035,27.021z M39.262,12.662l8.561-1.351l-0.254,0.698l-2.925,8.036l-8.545,1.309L39.262,12.662z M36.483,23.064l8.464-1.296
		l1.982,2.257l2.631,2.996h-9.604L36.483,23.064z M33.264,25.588l0.063-0.174l1.398,1.607h-1.983L33.264,25.588z M23.123,26.168
		l8.56-1.353l-0.544,1.494l-0.259,0.712h-8.067L23.123,26.168z M53.067,70.768c-0.004,0.034-0.006,0.068-0.006,0.103
		c0,0.584-0.475,1.059-1.059,1.059H22.996c-0.583,0-1.059-0.475-1.059-1.059c0-0.034-0.002-0.068-0.006-0.103l-4.829-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h3.402h9.93h5.154h2.914h11.934h1.153h4.193c0.569,0,1.034,0.451,1.058,1.015L53.067,70.768z"
		/>
	<path fill="#6699CC" d="M28.884,63.444c-0.48,0.054-0.826,0.486-0.772,0.967l0.326,2.908c0.05,0.447,0.429,0.777,0.869,0.777
		c0.032,0,0.065-0.002,0.099-0.006c0.48-0.054,0.826-0.486,0.772-0.967l-0.326-2.908C29.797,63.735,29.364,63.382,28.884,63.444z"/>
	<path fill="#6699CC" d="M26.532,42.486c0.48-0.054,0.826-0.486,0.772-0.967l-0.759-6.771c-0.054-0.479-0.479-0.819-0.967-0.772
		c-0.48,0.054-0.826,0.487-0.772,0.967l0.759,6.771c0.05,0.447,0.429,0.777,0.869,0.777C26.466,42.492,26.499,42.49,26.532,42.486z"
		/>
	<path fill="#6699CC" d="M46.116,63.446c-0.485-0.057-0.914,0.291-0.967,0.771l-0.326,2.906c-0.055,0.48,0.291,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.326-2.906C46.942,63.933,46.597,63.5,46.116,63.446z"/>
	<path fill="#6699CC" d="M49.421,33.976c-0.488-0.052-0.913,0.292-0.967,0.772l-0.732,6.525c-0.055,0.48,0.291,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.732-6.525C50.247,34.463,49.901,34.03,49.421,33.976z"/>
	<path fill="#6699CC" d="M37.306,64.894c-0.483,0-0.875,0.392-0.875,0.875v1.453c0,0.483,0.392,0.875,0.875,0.875
		s0.875-0.392,0.875-0.875v-1.453C38.181,65.285,37.789,64.894,37.306,64.894z"/>
	<path fill="#6699CC" d="M37.306,37.75c0.483,0,0.875-0.392,0.875-0.875v-2.029c0-0.483-0.392-0.875-0.875-0.875
		s-0.875,0.392-0.875,0.875v2.029C36.431,37.358,36.822,37.75,37.306,37.75z"/>
	<path fill="#6699CC" d="M37.5,40.496c-6.108,0-11.078,4.97-11.078,11.079c0,6.108,4.97,11.078,11.078,11.078
		c6.109,0,11.079-4.97,11.079-11.078C48.578,45.466,43.608,40.496,37.5,40.496z M37.5,60.903c-5.144,0-9.328-4.185-9.328-9.328
		c0-5.145,4.185-9.329,9.328-9.329c5.144,0,9.329,4.185,9.329,9.329C46.828,56.719,42.644,60.903,37.5,60.903z"/>
	<path fill="#6699CC" d="M42.904,46.171c-0.342-0.342-0.896-0.342-1.238,0L37.5,50.336l-4.166-4.165
		c-0.342-0.342-0.896-0.342-1.237,0s-0.342,0.896,0,1.238l4.165,4.165l-4.165,4.165c-0.342,0.342-0.342,0.896,0,1.238
		c0.171,0.171,0.395,0.256,0.619,0.256s0.448-0.085,0.619-0.256l4.166-4.165l4.166,4.165c0.171,0.171,0.396,0.256,0.619,0.256
		s0.448-0.085,0.619-0.256c0.341-0.342,0.341-0.896,0-1.238l-4.165-4.165l4.165-4.165C43.245,47.067,43.245,46.513,42.904,46.171z"
		/>
	<path fill="#6699CC" d="M21.312,23.8c0.167,0.191,0.408,0.298,0.658,0.298c0.044,0,0.088-0.003,0.132-0.01l10.519-1.611
		c0.004,0,0.007-0.002,0.011-0.003c0.006-0.001,0.012-0.001,0.019-0.002c0.041-0.007,0.077-0.025,0.115-0.038
		c0.03-0.01,0.062-0.017,0.091-0.03c0.042-0.02,0.08-0.047,0.118-0.073c0.024-0.017,0.052-0.029,0.074-0.048
		c0.038-0.032,0.069-0.071,0.102-0.109c0.017-0.02,0.038-0.037,0.053-0.059c0.044-0.063,0.081-0.131,0.107-0.205l3.845-10.564
		c0.109-0.299,0.047-0.634-0.162-0.874L29.99,2.426c-0.023-0.026-0.052-0.045-0.077-0.068c-0.028-0.025-0.054-0.054-0.085-0.075
		c-0.034-0.023-0.071-0.039-0.108-0.058c-0.031-0.015-0.059-0.034-0.091-0.045c-0.036-0.013-0.073-0.018-0.11-0.026
		c-0.037-0.008-0.072-0.02-0.11-0.023c-0.035-0.003-0.071,0.001-0.106,0.003c-0.036,0.001-0.072-0.003-0.108,0.003L18.66,3.799
		c-0.314,0.05-0.577,0.266-0.686,0.565l-3.845,10.563c-0.027,0.075-0.043,0.153-0.049,0.23c0,0.005,0,0.009,0,0.014
		c-0.005,0.071-0.001,0.143,0.011,0.213c0.004,0.021,0.014,0.041,0.019,0.062c0.014,0.052,0.027,0.104,0.05,0.153
		c0.013,0.027,0.031,0.05,0.047,0.075c0.021,0.036,0.039,0.074,0.066,0.107c0.002,0.003,0.007,0.004,0.009,0.007
		c0.004,0.005,0.006,0.011,0.011,0.016L21.312,23.8z M22.311,22.285l-5.648-6.435l8.462-1.297l5.651,6.435L22.311,22.285z
		 M32.171,19.924l-2.026-2.306l-3.679-4.189l3.178-8.734l5.69,6.538L32.171,19.924z M19.442,5.447L28,4.096l-3.178,8.734
		l-8.543,1.309L19.442,5.447z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M47.673,48.495c-5.733,0-10.4,4.666-10.4,10.401c0,5.733,4.667,10.398,10.4,10.398
		c5.735,0,10.401-4.665,10.401-10.398C58.074,53.161,53.408,48.495,47.673,48.495z M47.673,67.546c-4.771,0-8.649-3.88-8.649-8.649
		c0-4.771,3.881-8.65,8.649-8.65c4.771,0,8.651,3.881,8.651,8.65S52.443,67.546,47.673,67.546z"/>
	<path fill="#6699CC" d="M52.758,53.811c-0.34-0.343-0.896-0.341-1.236,0l-3.848,3.848l-3.847-3.848
		c-0.343-0.343-0.897-0.343-1.237,0c-0.342,0.342-0.343,0.896-0.001,1.236l3.849,3.85l-3.849,3.849
		c-0.342,0.341-0.341,0.896,0.001,1.237c0.17,0.17,0.395,0.256,0.618,0.256s0.448-0.086,0.619-0.256l3.847-3.849l3.848,3.849
		c0.17,0.17,0.396,0.256,0.619,0.256c0.223,0,0.447-0.086,0.617-0.256c0.342-0.342,0.344-0.896,0.001-1.237l-3.848-3.849l3.848-3.85
		C53.102,54.706,53.1,54.15,52.758,53.811z"/>
	<path fill="#6699CC" d="M64.165,17.493c-0.044-0.117-0.108-0.228-0.205-0.32l-9.576-9.197c-0.03-0.029-0.067-0.041-0.102-0.064
		c-0.058-0.042-0.111-0.087-0.179-0.114c-0.076-0.031-0.156-0.04-0.236-0.048c-0.031-0.003-0.059-0.018-0.09-0.018h-0.015
		c-0.003,0-0.005,0-0.007,0h-3.189c-0.029-0.041-0.047-0.088-0.086-0.124l-5.531-5.314c-0.03-0.029-0.067-0.04-0.102-0.064
		c-0.058-0.042-0.111-0.087-0.18-0.114c-0.072-0.03-0.148-0.037-0.227-0.046c-0.034-0.004-0.064-0.02-0.101-0.02h-0.016
		c-0.001,0-0.002,0-0.004,0H12.917c-1.451,0-2.632,1.18-2.632,2.631v59.231c0,1.449,1.181,2.631,2.632,2.631h4.382v4.909
		c0,1.479,1.205,2.685,2.685,2.685h41.583c1.479,0,2.684-1.203,2.684-2.685V17.857C64.25,17.726,64.217,17.604,64.165,17.493z
		 M54.652,10.661l6.574,6.314l-6.574-0.023V10.661z M45.218,4.979l2.866,2.753h-2.866V4.979z M12.917,64.793
		c-0.486,0-0.882-0.396-0.882-0.881V4.681c0-0.486,0.396-0.881,0.882-0.881h30.551v3.932H19.984c-1.48,0-2.685,1.205-2.685,2.686
		v54.375H12.917z M62.5,71.452c0,0.516-0.419,0.935-0.934,0.935H19.984c-0.516,0-0.935-0.419-0.935-0.935V10.417
		c0-0.516,0.419-0.936,0.935-0.936h32.918v7.469c0,0.982,0.798,1.781,1.779,1.781H62.5V71.452z"/>
	<path fill="#6699CC" d="M28.199,23.273c-0.715,0.622-1.073,1.868-1.073,3.739v3.275c0,1.27-0.229,2.15-0.686,2.641
		c-0.457,0.491-1.287,0.736-2.488,0.736h-0.774v1.333h0.774c1.202,0,2.031,0.246,2.488,0.736c0.457,0.49,0.686,1.371,0.686,2.641
		v3.274c0,1.871,0.357,3.119,1.073,3.746c0.716,0.625,2.126,0.938,4.234,0.938h0.787V45h-0.863c-1.193,0-1.972-0.188-2.336-0.559
		c-0.364-0.373-0.546-1.155-0.546-2.35V38.45c0-1.329-0.208-2.277-0.622-2.844s-1.181-0.995-2.298-1.282
		c1.1-0.254,1.862-0.668,2.285-1.244s0.635-1.532,0.635-2.869v-3.644c0-1.193,0.182-1.976,0.546-2.349s1.143-0.559,2.336-0.559
		h0.863v-1.32h-0.787C30.326,22.34,28.915,22.651,28.199,23.273z"/>
	<path fill="#6699CC" d="M38.425,43.136c0.091,0,0.181-0.024,0.263-0.073c1.3-0.803,2.289-1.768,2.94-2.869
		c0.653-1.102,1.021-2.433,1.092-3.958c0.007-0.136-0.043-0.27-0.138-0.369c-0.094-0.099-0.225-0.155-0.361-0.155H39.72
		c-0.276,0-0.5,0.224-0.5,0.5v0.47c0,1.045-0.172,1.941-0.511,2.662c-0.335,0.713-0.873,1.342-1.596,1.873
		c-0.118,0.088-0.191,0.221-0.203,0.365c-0.012,0.145,0.042,0.288,0.145,0.393l1.016,1.016
		C38.168,43.086,38.296,43.136,38.425,43.136z M39.614,39.77c0.398-0.848,0.603-1.875,0.605-3.058h1.464
		c-0.113,1.14-0.422,2.138-0.916,2.972c-0.513,0.867-1.276,1.646-2.273,2.313l-0.336-0.335
		C38.794,41.109,39.282,40.475,39.614,39.77z"/>
	<path fill="#6699CC" d="M40.914,31.685c0.609,0,1.132-0.214,1.553-0.635c0.422-0.421,0.637-0.944,0.637-1.554
		c0-0.6-0.213-1.119-0.634-1.544c-0.842-0.853-2.264-0.854-3.108-0.009c-0.422,0.422-0.635,0.944-0.635,1.553
		s0.213,1.131,0.635,1.554C39.782,31.471,40.307,31.685,40.914,31.685z M40.066,28.65c0.233-0.234,0.504-0.343,0.848-0.343
		c0.338,0,0.613,0.113,0.844,0.347c0.231,0.235,0.346,0.51,0.346,0.842c0,0.344-0.108,0.612-0.344,0.846
		c-0.464,0.464-1.229,0.464-1.691,0c-0.229-0.23-0.342-0.507-0.342-0.846S39.838,28.88,40.066,28.65z"/>
	<path fill="#6699CC" d="M54.563,27.012c0-1.871-0.354-3.117-1.062-3.739c-0.706-0.622-2.113-0.933-4.221-0.933h-0.8v1.32h0.889
		c1.185,0,1.957,0.184,2.316,0.552s0.539,1.153,0.539,2.355v3.644c0,1.337,0.209,2.293,0.629,2.869
		c0.418,0.576,1.179,0.99,2.278,1.244c-1.108,0.288-1.871,0.715-2.284,1.282c-0.416,0.567-0.623,1.515-0.623,2.844v3.644
		c0,1.202-0.18,1.986-0.539,2.355c-0.359,0.367-1.133,0.552-2.316,0.552H48.48v1.333h0.8c2.106,0,3.515-0.313,4.221-0.939
		c0.707-0.625,1.062-1.875,1.062-3.744v-3.275c0-1.27,0.229-2.15,0.686-2.641c0.457-0.491,1.286-0.736,2.488-0.736h0.787v-1.333
		h-0.787c-1.202,0-2.031-0.246-2.488-0.736c-0.457-0.49-0.686-1.371-0.686-2.641V27.012z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M61.125,33.733h-1.583V11.637c0-0.003-0.002-0.007-0.002-0.01c-0.001-0.077-0.024-0.151-0.046-0.227
		c-0.01-0.035-0.01-0.074-0.023-0.107c-0.01-0.023-0.029-0.04-0.041-0.062c-0.043-0.079-0.089-0.156-0.152-0.219
		c-0.002-0.002-0.004-0.005-0.006-0.007L50.12,2.247h-0.001l-0.014-0.013c-0.028-0.027-0.065-0.039-0.098-0.061
		c-0.059-0.043-0.113-0.089-0.183-0.116s-0.14-0.033-0.212-0.042C49.575,2.008,49.541,1.99,49.5,1.99H18.478
		c-1.585,0-2.875,1.29-2.875,2.875v28.868h-1.478c-1.585,0-2.875,1.29-2.875,2.875v6.028c0,1.585,1.29,2.875,2.875,2.875h1.876
		c0.037,0,0.067-0.017,0.103-0.021c0.081,3.687-0.345,7.248-0.771,10.725c-0.626,5.098-1.273,10.367-0.339,16.061
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.894-5.446-0.262-10.59,0.349-15.563c0.621-5.06,1.259-10.289,0.356-15.933h1.765c-0.001,0.053-0.014,0.103-0.005,0.155
		c0.893,5.445,0.261,10.588-0.35,15.562c-0.626,5.097-1.274,10.367-0.338,16.062c0.07,0.43,0.441,0.733,0.862,0.733
		c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005c-0.895-5.446-0.262-10.592,0.349-15.565
		c0.621-5.058,1.26-10.286,0.356-15.93h1.767c-0.001,0.053-0.015,0.103-0.006,0.155c0.893,5.447,0.261,10.591-0.35,15.563
		c-0.626,5.097-1.273,10.366-0.34,16.06c0.07,0.429,0.441,0.732,0.862,0.732c0.047,0,0.095-0.004,0.143-0.012
		c0.477-0.078,0.8-0.528,0.722-1.005c-0.893-5.445-0.261-10.589,0.351-15.562c0.621-5.06,1.26-10.289,0.356-15.935h1.764
		c-0.001,0.053-0.015,0.103-0.006,0.155c0.893,5.445,0.261,10.589-0.35,15.563c-0.626,5.098-1.273,10.367-0.339,16.061
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.894-5.446-0.262-10.59,0.349-15.563c0.621-5.059,1.259-10.288,0.356-15.932H29.7c-0.001,0.053-0.015,0.103-0.006,0.155
		c0.891,5.443,0.259,10.586-0.351,15.559c-0.626,5.1-1.274,10.37-0.339,16.064c0.07,0.429,0.441,0.732,0.862,0.732
		c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005c-0.894-5.447-0.262-10.593,0.35-15.567
		c0.621-5.057,1.259-10.285,0.357-15.928h1.764c-0.001,0.053-0.015,0.104-0.006,0.156c0.894,5.445,0.262,10.59-0.349,15.563
		c-0.626,5.098-1.274,10.366-0.339,16.059c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012
		c0.477-0.078,0.8-0.528,0.722-1.005c-0.894-5.445-0.262-10.588,0.35-15.563c0.622-5.059,1.26-10.289,0.355-15.934h1.766
		c-0.001,0.053-0.015,0.104-0.006,0.156c0.893,5.444,0.261,10.59-0.35,15.563c-0.626,5.097-1.273,10.365-0.34,16.058
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.892-5.444-0.261-10.588,0.35-15.563c0.621-5.059,1.259-10.289,0.356-15.934h1.767c-0.001,0.053-0.015,0.103-0.006,0.156
		c0.892,5.443,0.26,10.588-0.351,15.562c-0.625,5.099-1.271,10.368-0.34,16.062c0.07,0.429,0.441,0.732,0.862,0.732
		c0.047,0,0.095-0.004,0.144-0.012c0.477-0.078,0.799-0.527,0.722-1.006c-0.892-5.444-0.261-10.588,0.35-15.563
		c0.62-5.058,1.259-10.288,0.356-15.931h1.765c-0.001,0.053-0.015,0.103-0.006,0.156c0.894,5.444,0.262,10.59-0.349,15.564
		c-0.625,5.096-1.271,10.365-0.34,16.057c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.144-0.012
		c0.477-0.078,0.799-0.527,0.722-1.005c-0.892-5.443-0.261-10.588,0.351-15.562c0.619-5.06,1.258-10.29,0.354-15.935h1.765
		c-0.001,0.053-0.015,0.103-0.006,0.156c0.894,5.445,0.263,10.592-0.349,15.567c-0.625,5.097-1.271,10.363-0.342,16.054
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.144-0.013c0.477-0.077,0.799-0.526,0.722-1.004
		c-0.89-5.442-0.259-10.584,0.351-15.558c0.621-5.061,1.26-10.293,0.355-15.938h1.768c-0.001,0.054-0.015,0.104-0.006,0.156
		c0.891,5.445,0.26,10.59-0.352,15.565c-0.625,5.097-1.271,10.365-0.34,16.058c0.069,0.428,0.44,0.732,0.861,0.732
		c0.047,0,0.096-0.004,0.143-0.012c0.478-0.078,0.801-0.527,0.723-1.006c-0.891-5.442-0.26-10.586,0.352-15.561
		c0.621-5.061,1.258-10.29,0.356-15.936h1.769c-0.002,0.053-0.016,0.103-0.007,0.156c0.89,5.442,0.259,10.586-0.352,15.56
		c-0.626,5.099-1.272,10.37-0.341,16.063c0.07,0.428,0.441,0.732,0.863,0.732c0.047,0,0.094-0.004,0.143-0.012
		c0.477-0.078,0.8-0.527,0.722-1.006c-0.892-5.444-0.261-10.59,0.351-15.566c0.619-5.057,1.258-10.287,0.357-15.928h1.764
		c0,0.052-0.015,0.102-0.006,0.154c0.889,5.443,0.258,10.586-0.352,15.561c-0.626,5.099-1.271,10.369-0.34,16.063
		c0.07,0.43,0.44,0.733,0.861,0.733c0.047,0,0.096-0.004,0.144-0.013c0.477-0.078,0.8-0.526,0.722-1.004
		c-0.893-5.445-0.261-10.592,0.35-15.567c0.434-3.524,0.863-7.14,0.787-10.914h1.236c1.585,0,2.875-1.29,2.875-2.875v-6.028
		C64,35.023,62.71,33.733,61.125,33.733z M50.375,4.913l6.111,5.849H51.5c-0.62,0-1.125-0.505-1.125-1.125V4.913z M17.353,4.865
		c0-0.62,0.505-1.125,1.125-1.125h30.147v5.896c0,1.585,1.29,2.875,2.875,2.875h6.292v21.222H17.353V4.865z M62.25,42.637
		c0,0.62-0.505,1.125-1.125,1.125h-1.313c-0.07-1.085-0.179-2.181-0.356-3.296c0.403-0.077,0.715-0.416,0.715-0.843
		c0-0.482-0.392-0.875-0.875-0.875H15.139c-0.483,0-0.875,0.393-0.875,0.875s0.392,0.875,0.875,0.875h0.548
		c-0.001,0.053-0.015,0.104-0.006,0.156c0.172,1.05,0.273,2.084,0.343,3.111c-0.008,0-0.015-0.005-0.023-0.005h-1.876
		c-0.62,0-1.125-0.505-1.125-1.125v-6.028c0-0.62,0.505-1.125,1.125-1.125h47c0.62,0,1.125,0.505,1.125,1.125V42.637z"/>
	<path fill="#6699CC" d="M21.625,17.888H52.25c0.482,0,0.875-0.392,0.875-0.875s-0.393-0.875-0.875-0.875H21.625
		c-0.483,0-0.875,0.392-0.875,0.875S21.142,17.888,21.625,17.888z"/>
	<path fill="#6699CC" d="M52.25,29.148H21.625c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875H52.25
		c0.482,0,0.875-0.392,0.875-0.875S52.732,29.148,52.25,29.148z"/>
	<path fill="#6699CC" d="M52.25,22.644H21.625c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875H52.25
		c0.482,0,0.875-0.392,0.875-0.875S52.732,22.644,52.25,22.644z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M65.485,21.85c-0.045-0.113-0.106-0.219-0.2-0.308l-8.679-8.336c-0.027-0.026-0.063-0.038-0.096-0.059
		c-0.057-0.043-0.112-0.088-0.18-0.115c-0.068-0.028-0.138-0.033-0.21-0.042c-0.036-0.005-0.068-0.021-0.106-0.021h-0.017h-0.002
		h-2.861c-0.022-0.031-0.037-0.068-0.066-0.096l-5.014-4.817c-0.03-0.029-0.069-0.041-0.103-0.065
		c-0.056-0.04-0.106-0.082-0.171-0.108c-0.069-0.028-0.142-0.034-0.214-0.043c-0.035-0.004-0.066-0.021-0.104-0.021h-0.017
		c-0.001,0-0.001,0-0.002,0h-2.758c-0.045-0.116-0.107-0.226-0.202-0.317l-5.566-5.346c-0.027-0.028-0.063-0.039-0.095-0.062
		c-0.059-0.042-0.112-0.086-0.178-0.113c-0.071-0.029-0.146-0.036-0.222-0.045c-0.032-0.004-0.063-0.02-0.097-0.02h-0.016
		c0,0-0.002,0-0.004,0H12.87c-1.328,0-2.409,1.081-2.409,2.409v52.485c0,1.327,1.081,2.407,2.409,2.407h3.292
		c0.135,0,0.258-0.037,0.373-0.095v4.823c0,1.349,1.097,2.445,2.444,2.445h3.913v4.391c0,1.374,1.118,2.492,2.493,2.492h37.689
		c1.374,0,2.492-1.117,2.492-2.492V22.204C65.566,22.077,65.532,21.959,65.485,21.85z M56.867,15.82l5.768,5.541l-5.768,0.022V15.82
		z M48.315,10.67l2.393,2.298h-2.393V10.67z M39.182,4.769l3.175,3.049h-3.175V4.769z M16.535,10.262v47.348
		c-0.114-0.058-0.238-0.096-0.373-0.096H12.87c-0.389,0-0.705-0.315-0.705-0.703V4.326c0-0.388,0.316-0.705,0.705-0.705h24.607
		v4.197H18.979C17.631,7.818,16.535,8.914,16.535,10.262z M18.979,64.688c-0.408,0-0.74-0.332-0.74-0.741V10.262
		c0-0.407,0.332-0.739,0.74-0.739h27.632v3.446H25.385c-1.375,0-2.493,1.118-2.493,2.493v49.226L18.979,64.688L18.979,64.688z
		 M63.862,70.782c0,0.435-0.354,0.788-0.788,0.788H25.385c-0.435,0-0.789-0.353-0.789-0.788V15.461c0-0.435,0.354-0.789,0.789-0.789
		h29.777v6.71c0,0.922,0.752,1.673,1.673,1.673h7.027V70.782z"/>
	<path fill="#6699CC" d="M44.111,31.051c-5.154,0-9.888,2.696-12.542,7.079l-2.011-0.76l0.963,5.869l4.603-3.769l-1.931-0.729
		c2.222-3.477,5.952-5.688,10.066-5.958v0.826c0,0.47,0.382,0.852,0.852,0.852c0.471,0,0.853-0.382,0.853-0.852v-0.811
		c6.473,0.423,11.653,5.604,12.077,12.078H56.3c-0.47,0-0.852,0.381-0.852,0.852c0,0.47,0.382,0.853,0.852,0.853h0.741
		c-0.422,6.433-5.542,11.593-11.959,12.071v-0.85c0-0.472-0.382-0.852-0.853-0.852c-0.47,0-0.852,0.38-0.852,0.852v0.868
		c-5.945-0.335-10.939-4.687-12.017-10.604c-0.084-0.464-0.529-0.767-0.992-0.687c-0.463,0.084-0.77,0.528-0.686,0.991
		c1.27,6.975,7.338,12.036,14.428,12.036c0.031,0,0.063-0.006,0.095-0.006c0.009,0,0.016,0.006,0.023,0.006
		c0.015,0,0.024-0.009,0.04-0.009c8.019-0.086,14.519-6.631,14.519-14.67C58.788,37.636,52.204,31.051,44.111,31.051z"/>
	<path fill="#6699CC" d="M43.238,53.289c0,0.471,0.383,0.852,0.853,0.852s0.853-0.381,0.853-0.852v-7.206l4.024-4.023
		c0.331-0.333,0.333-0.872,0-1.204c-0.334-0.334-0.875-0.334-1.206-0.002l-4.272,4.273c-0.079,0.079-0.142,0.173-0.184,0.277
		c-0.044,0.104-0.066,0.215-0.066,0.325l0,0L43.238,53.289L43.238,53.289z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M30.075,34.093H28.1v-9.829c0-0.138-0.112-0.25-0.25-0.25h-1.805c-0.082,0-0.158,0.04-0.205,0.106
		l-7.116,10.142c-0.03,0.042-0.045,0.092-0.045,0.144v1.486c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25
		h1.63c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975c0.138,0,0.25-0.112,0.25-0.25v-1.549C30.325,34.205,30.213,34.093,30.075,34.093z
		 M21.113,34.093l4.413-6.275c0.16-0.241,0.328-0.517,0.5-0.826c-0.037,0.857-0.056,1.651-0.056,2.369v4.732H21.113z"/>
	<path fill="#6699CC" d="M40.443,37.759c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.792,39.58,39.108,40.443,37.759z M36.484,37.825
		c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648c0-2.131,0.25-3.691,0.741-4.638
		c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365c0.489,0.961,0.737,2.515,0.737,4.619
		c0,2.103-0.248,3.661-0.738,4.629C38.259,37.375,37.526,37.825,36.484,37.825z"/>
	<path fill="#6699CC" d="M50.061,24.014c-0.081,0-0.158,0.04-0.205,0.106l-7.117,10.142c-0.029,0.042-0.045,0.092-0.045,0.144v1.486
		c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25h1.631c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975
		c0.138,0,0.25-0.112,0.25-0.25v-1.549c0-0.138-0.112-0.25-0.25-0.25h-1.975v-9.829c0-0.138-0.112-0.25-0.25-0.25H50.061z
		 M45.128,34.093l4.412-6.275c0.16-0.241,0.327-0.517,0.5-0.826c-0.037,0.857-0.056,1.651-0.056,2.369v4.732H45.128z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<path fill="#21A0DF" d="M66.478,27.294c0,0,0-0.001,0-0.001V11.727c0-0.054-0.006-0.107-0.017-0.159
	c0-0.001-0.001-0.002-0.001-0.004c0.006-0.089,0.018-0.178,0.018-0.268c0-0.163-0.049-0.313-0.132-0.439
	c-0.628-2.732-3.608-5.213-8.528-7.054c-5.19-1.943-12.039-3.013-19.281-3.013c-7.244,0-14.091,1.07-19.283,3.013
	c-4.92,1.841-7.9,4.322-8.527,7.055c-0.083,0.126-0.132,0.276-0.132,0.438c0,0.089,0.012,0.178,0.017,0.267c0,0.001,0,0.003,0,0.004
	c-0.011,0.052-0.017,0.105-0.017,0.161v50.829c0,0.057,0.006,0.111,0.017,0.164c0.505,6.453,12.718,11.491,27.925,11.491
	c15.204,0,27.415-5.037,27.923-11.489c0.013-0.053,0.019-0.109,0.019-0.166v-17.66c0-0.002,0-0.002,0-0.003v-0.001V27.296
	C66.478,27.296,66.478,27.295,66.478,27.294z M19.813,5.299c5.017-1.878,11.665-2.911,18.723-2.911
	c7.057,0,13.706,1.033,18.722,2.911c4.615,1.727,7.365,4.025,7.598,6.326c-0.5,4.419-10.945,9.024-26.319,9.024
	c-15.375,0-25.821-4.604-26.319-9.024C12.449,9.324,15.199,7.026,19.813,5.299z M38.536,22.248c12.32,0,22.537-2.975,26.343-7.232
	v12.281c-0.004,5.589-12.066,10.311-26.343,10.311c-14.279,0-26.343-4.723-26.343-10.313V15.015
	C15.999,19.272,26.216,22.248,38.536,22.248z M64.879,62.442c-0.004,0.023-0.006,0.047-0.008,0.068
	c-0.142,2.551-2.929,5.097-7.648,6.987c-5.01,2.008-11.646,3.114-18.687,3.114c-7.041,0-13.678-1.106-18.687-3.114
	c-4.72-1.891-7.507-4.437-7.65-6.987c-0.001-0.021-0.003-0.045-0.006-0.067V48.938c3.806,4.631,14.023,7.867,26.343,7.867
	c12.32,0,22.537-3.236,26.343-7.866V62.442z M64.879,44.895c-0.004,5.59-12.066,10.313-26.343,10.313
	c-14.279,0-26.343-4.724-26.343-10.314V31.34c3.806,4.63,14.023,7.865,26.343,7.865c12.32,0,22.537-3.235,26.343-7.865V44.895z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M65.631,35.152c-0.053-0.112-0.125-0.216-0.227-0.3l-3.545-2.941l2.103-1.267
		c0.263-0.157,0.422-0.438,0.425-0.743c0.002-0.304-0.154-0.588-0.412-0.749l-3.882-2.417l1.966-3.417
		c0.799-1.297,0.395-3.003-0.92-3.815L36.428,5.109c-1.296-0.803-3.003-0.4-3.815,0.913L21.069,25.613
		c-0.146,0.025-0.288,0.074-0.41,0.175l-11.062,9.19c-0.031,0.026-0.046,0.062-0.073,0.09c-0.958,0.463-1.625,1.436-1.625,2.569
		v33.007c0,1.578,1.284,2.862,2.862,2.862h53.477c1.578,0,2.861-1.284,2.861-2.862V37.637
		C67.102,36.567,66.504,35.643,65.631,35.152z M33.131,55.07L9.671,70.753c-0.004-0.037-0.022-0.069-0.022-0.106V37.637
		c0-0.21,0.075-0.396,0.177-0.565c-0.004,0.271,0.101,0.539,0.333,0.714L33.131,55.07z M35.793,55.396
		c0.047-0.032,0.092-0.068,0.132-0.109c0.876-0.875,2.404-0.875,3.277,0c0.041,0.041,0.086,0.078,0.134,0.109L63.87,71.758H11.317
		L35.793,55.396z M65.331,70.63L41.773,54.92l23.502-17.647c0.041,0.115,0.074,0.235,0.074,0.365v33.008v0.002
		C65.343,70.645,65.339,70.635,65.331,70.63z M60.342,32.925l3.71,3.079l-17.312,13l7.267-12.359l6.281-3.786
		C60.309,32.879,60.318,32.906,60.342,32.925z M34.111,6.927c0.295-0.476,0.922-0.623,1.416-0.318l24.709,14.395
		c0.477,0.294,0.625,0.921,0.318,1.42l-2.4,4.171c-0.234,0.409-0.104,0.93,0.296,1.179l3.386,2.108l-8.922,5.377
		c-0.125,0.075-0.229,0.181-0.303,0.306L43.25,51.488c-0.034,0.059-0.044,0.121-0.063,0.185l-2.944,2.21
		c-1.532-1.338-4.009-1.313-5.489,0.104l-0.081,0.055L15.049,39.275L34.111,6.927z M13.642,38.217l-2.431-1.829
		c-0.118-0.089-0.252-0.132-0.389-0.153l7.812-6.489L13.642,38.217z"/>
	<path fill="#6699CC" d="M28.153,46.658c1.823,1.126,3.914,1.721,6.046,1.721c4.031,0,7.701-2.045,9.814-5.47
		c1.617-2.619,2.119-5.711,1.411-8.707s-2.54-5.537-5.159-7.154c-1.822-1.126-3.914-1.721-6.045-1.721
		c-4.03,0-7.699,2.045-9.814,5.47C21.066,36.201,22.747,43.316,28.153,46.658z M42.523,41.989c-1.793,2.905-4.905,4.64-8.325,4.64
		c-1.808,0-3.58-0.505-5.126-1.459c-2.025-1.252-3.431-3.129-4.129-5.229l18.938-4.476C44.21,37.732,43.742,40.02,42.523,41.989z
		 M25.894,31.716c1.794-2.905,4.907-4.64,8.326-4.64c1.807,0,3.58,0.505,5.125,1.46c1.973,1.217,3.413,3.053,4.135,5.227
		l-18.938,4.473C24.226,36.048,24.643,33.741,25.894,31.716z"/>
	<path fill="#6699CC" d="M32.743,20.526c0.139,0.082,0.292,0.121,0.442,0.121c0.3,0,0.592-0.154,0.755-0.432l3.168-5.388
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.417-0.247-0.954-0.105-1.198,0.311l-3.168,5.388
		C32.188,19.745,32.327,20.281,32.743,20.526z"/>
	<path fill="#6699CC" d="M42.586,23.268c0.141,0.082,0.292,0.121,0.441,0.121c0.301,0,0.593-0.154,0.756-0.432l1.838-3.125
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.416-0.244-0.953-0.106-1.197,0.311l-1.838,3.125
		C42.029,22.487,42.169,23.023,42.586,23.268z"/>
	<path fill="#6699CC" d="M49.389,31.182c0.139,0.082,0.291,0.121,0.441,0.121c0.3,0,0.592-0.154,0.755-0.432l3.548-6.034
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.418-0.246-0.953-0.105-1.197,0.311l-3.548,6.034
		C48.832,30.401,48.971,30.937,49.389,31.182z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M13.333,10.792c-0.483,0-0.875,0.392-0.875,0.875v2.167c0,0.483,0.392,0.875,0.875,0.875
		s0.875-0.392,0.875-0.875v-2.167C14.208,11.183,13.817,10.792,13.333,10.792z"/>
	<path fill="#6699CC" d="M34.926,34.313V11.001c0-0.167-0.059-0.314-0.141-0.447c-0.044-0.108-0.109-0.21-0.198-0.297l-6.291-6.118
		C28.267,4.111,28.23,4.1,28.199,4.077c-0.161-0.181-0.388-0.301-0.649-0.301H11.926c-1.034,0-1.875,0.841-1.875,1.875v28.662
		c0,1.034,0.841,1.875,1.875,1.875h21.125C34.084,36.188,34.926,35.346,34.926,34.313z M28.425,6.706l3.517,3.42H28.55
		c-0.069,0-0.125-0.056-0.125-0.125V6.706z M11.801,34.313V5.65c0-0.069,0.056-0.125,0.125-0.125h14.749v4.476
		c0,1.034,0.841,1.875,1.875,1.875h4.626v22.437c0,0.069-0.056,0.125-0.125,0.125H11.926C11.857,34.438,11.801,34.381,11.801,34.313
		z"/>
	<path fill="#6699CC" d="M64.809,45.588c-0.045-0.105-0.109-0.207-0.197-0.293l-6.291-6.119c-0.028-0.027-0.064-0.039-0.096-0.062
		c-0.16-0.183-0.389-0.302-0.649-0.302H41.949c-1.034,0-1.875,0.84-1.875,1.875V69.35c0,1.034,0.841,1.875,1.875,1.875h21.125
		c1.033,0,1.875-0.841,1.875-1.875V46.037C64.949,45.869,64.891,45.723,64.809,45.588z M58.449,41.743l3.515,3.419h-3.39
		c-0.069,0-0.125-0.057-0.125-0.125V41.743z M63.199,69.35c0,0.069-0.057,0.125-0.125,0.125H41.949
		c-0.069,0-0.125-0.056-0.125-0.125V40.688c0-0.068,0.056-0.125,0.125-0.125h14.75v4.476c0,1.034,0.841,1.875,1.875,1.875h4.625
		V69.35z"/>
	<path fill="#6699CC" d="M44.533,44.016c-0.483,0-0.875,0.393-0.875,0.875v2.168c0,0.482,0.392,0.875,0.875,0.875
		c0.482,0,0.875-0.393,0.875-0.875v-2.168C45.408,44.407,45.018,44.016,44.533,44.016z"/>
	<path fill="#6699CC" d="M47.535,44.016c-0.483,0-0.875,0.393-0.875,0.875v2.168c0,0.482,0.392,0.875,0.875,0.875
		c0.482,0,0.875-0.393,0.875-0.875v-2.168C48.41,44.407,48.02,44.016,47.535,44.016z"/>
	<polygon fill="#6699CC" points="31.548,44.113 25.648,42.532 27.229,48.432 28.769,46.893 34.5,52.622 35.737,51.384 
		30.007,45.652 	"/>
	<polygon fill="#6699CC" points="43.452,30.886 49.352,32.467 47.771,26.567 46.23,28.108 40.501,22.378 39.264,23.616 
		44.992,29.346 	"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<circle fill="none" cx="15" cy="15.894" r="5.317"/>
<path fill="#D3D9CE" d="M8.71,5.417H4.312V5.124c0-0.608,0.492-1.101,1.1-1.101h2.198c0.607,0,1.101,0.492,1.101,1.101V5.417z
	 M29.481,8.01v15.766c0,1.217-0.984,2.201-2.199,2.201H2.719c-1.215,0-2.2-0.984-2.2-2.201V8.01c0-1.215,0.985-2.2,2.2-2.2h17.311
	l0.06,0.041l-0.596,0.408c-0.273,0.188-0.392,0.539-0.288,0.85c0.096,0.296,0.368,0.5,0.733,0.519l0.722-0.021l-0.241,0.679
	c-0.111,0.312-0.001,0.665,0.266,0.858c0.128,0.093,0.28,0.143,0.439,0.143c0.162,0,0.323-0.053,0.458-0.155l0.57-0.439l0.205,0.695
	c0.097,0.319,0.386,0.534,0.719,0.534s0.622-0.215,0.72-0.538L24,8.691l0.574,0.442c0.13,0.098,0.291,0.152,0.454,0.152
	c0.158,0,0.31-0.048,0.442-0.143c0.266-0.194,0.374-0.547,0.264-0.857l-0.241-0.68l0.752,0.021c0.336-0.012,0.605-0.212,0.701-0.514
	c0.104-0.314-0.014-0.665-0.288-0.854L26.063,5.85l0.06-0.041h1.159C28.497,5.81,29.481,6.795,29.481,8.01z M20.317,15.894
	c0-2.937-2.38-5.317-5.317-5.317c-2.936,0-5.316,2.381-5.316,5.317s2.381,5.317,5.316,5.317
	C17.938,21.211,20.317,18.83,20.317,15.894z M26.376,6.67c0.091,0.063,0.131,0.178,0.096,0.283
	c-0.033,0.105-0.121,0.168-0.244,0.173l-1.45-0.041l0.486,1.367c0.037,0.104,0.001,0.221-0.088,0.286
	c-0.09,0.064-0.212,0.063-0.3-0.004L23.727,7.85l-0.41,1.392c-0.032,0.106-0.13,0.179-0.24,0.179s-0.208-0.073-0.24-0.179
	l-0.41-1.392l-1.148,0.885c-0.089,0.066-0.211,0.068-0.299,0.004c-0.09-0.065-0.126-0.182-0.089-0.286l0.486-1.367l-1.451,0.041
	c-0.114-0.006-0.21-0.067-0.244-0.173c-0.035-0.105,0.005-0.221,0.096-0.283l1.197-0.82l-0.06-0.041l-1.138-0.78
	c-0.091-0.063-0.131-0.178-0.096-0.283c0.034-0.105,0.132-0.163,0.244-0.173l1.451,0.041L20.89,3.248
	c-0.037-0.104-0.001-0.221,0.089-0.286c0.088-0.065,0.21-0.063,0.299,0.004l1.148,0.884l0.41-1.392c0.064-0.213,0.416-0.213,0.48,0
	l0.41,1.392l1.149-0.885c0.088-0.068,0.21-0.069,0.3-0.004c0.089,0.065,0.125,0.182,0.088,0.286l-0.486,1.366l1.45-0.04
	c0.121,0.008,0.211,0.067,0.244,0.173c0.035,0.105-0.005,0.221-0.096,0.283l-1.138,0.78l-0.06,0.041L26.376,6.67z M25.393,6.603
	l-0.798-0.547c-0.067-0.046-0.108-0.124-0.108-0.206c0-0.014,0.008-0.027,0.01-0.041c0.012-0.066,0.043-0.127,0.099-0.166
	l0.798-0.547l-0.967,0.027c-0.069,0.017-0.16-0.036-0.209-0.103s-0.061-0.153-0.033-0.231l0.324-0.911l-0.766,0.589
	c-0.064,0.051-0.15,0.066-0.229,0.04c-0.078-0.025-0.14-0.088-0.163-0.167l-0.273-0.929l-0.273,0.929
	c-0.023,0.079-0.085,0.142-0.163,0.167c-0.078,0.026-0.164,0.012-0.229-0.04L21.646,3.88l0.324,0.91
	c0.027,0.078,0.016,0.164-0.033,0.231c-0.048,0.066-0.142,0.101-0.209,0.103L20.76,5.097l0.798,0.547
	c0.056,0.039,0.087,0.1,0.099,0.166c0.002,0.014,0.01,0.026,0.01,0.041c0,0.083-0.041,0.16-0.108,0.206L20.76,6.603l0.968-0.027
	c0.086,0,0.161,0.037,0.209,0.103c0.049,0.067,0.061,0.153,0.033,0.231l-0.324,0.91l0.765-0.589
	c0.044-0.034,0.098-0.052,0.152-0.052c0.026,0,0.052,0.004,0.077,0.012c0.078,0.025,0.14,0.088,0.163,0.167l0.273,0.929l0.273-0.929
	c0.023-0.079,0.085-0.142,0.163-0.167c0.079-0.024,0.165-0.011,0.229,0.04l0.766,0.589l-0.324-0.91
	c-0.027-0.078-0.016-0.164,0.033-0.231c0.048-0.067,0.121-0.122,0.209-0.103L25.393,6.603z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M56.164,37.484c-0.059-0.082-0.122-0.162-0.212-0.215c-0.005-0.002-0.01-0.001-0.015-0.004
		c-0.004-0.002-0.005-0.006-0.009-0.008l-2.159-1.183c-0.606-4.582-3.073-8.809-6.781-11.605c-0.079-0.059-0.167-0.093-0.256-0.123
		v-2.987c0-0.135-0.037-0.264-0.104-0.376c-0.021-0.037-0.061-0.057-0.088-0.09c-0.055-0.064-0.102-0.135-0.177-0.179
		c-0.004-0.002-0.009-0.001-0.013-0.003c-0.004-0.002-0.005-0.007-0.009-0.009l-8.482-4.647c-0.225-0.123-0.496-0.123-0.721,0
		l-8.483,4.647c-0.004,0.002-0.005,0.006-0.009,0.008c-0.004,0.002-0.009,0.001-0.013,0.004c-0.075,0.044-0.124,0.115-0.178,0.181
		c-0.026,0.032-0.066,0.053-0.087,0.088c-0.065,0.113-0.103,0.242-0.103,0.376v3.111c-0.087,0.03-0.174,0.063-0.251,0.121
		c-3.66,2.766-6.112,6.938-6.745,11.458l-2.203,1.207c-0.004,0.002-0.005,0.007-0.009,0.009c-0.004,0.002-0.009,0.001-0.013,0.003
		c-0.075,0.044-0.122,0.114-0.176,0.179c-0.027,0.033-0.067,0.053-0.089,0.09c-0.065,0.113-0.103,0.242-0.103,0.376v10.221
		c0,0.272,0.148,0.524,0.387,0.656l8.483,4.695c0.113,0.063,0.238,0.094,0.363,0.094s0.25-0.031,0.363-0.094l2.121-1.174
		c0.097,0.127,0.215,0.239,0.376,0.3c2.006,0.758,4.12,1.143,6.283,1.143c2.454,0,4.83-0.491,7.061-1.459
		c0.079-0.034,0.14-0.089,0.202-0.142l2.406,1.332c0.113,0.063,0.238,0.094,0.363,0.094s0.25-0.031,0.363-0.094l8.482-4.696
		c0.238-0.132,0.387-0.384,0.387-0.656v-10.22c0-0.136-0.039-0.266-0.105-0.379C56.202,37.515,56.179,37.503,56.164,37.484z
		 M39.354,47.691v-8.511l6.984,3.824v8.553L39.354,47.691z M47.775,41.328l-0.688,0.376l-6.923-3.79l6.923-3.792l6.92,3.792
		L47.775,41.328z M29.767,22.625l6.983,3.825v8.554l-6.983-3.867V22.625z M38.251,26.449l6.981-3.825v8.512l-6.981,3.867V26.449z
		 M37.5,17.566l6.921,3.792L37.5,25.15l-6.922-3.792L37.5,17.566z M28.927,41.148l-1.015,0.556l-6.922-3.79l6.922-3.792l6.921,3.792
		L28.927,41.148z M20.179,39.181l6.983,3.823v8.554l-6.983-3.865V39.181z M28.662,43.004l6.983-3.824v8.513l-6.983,3.865V43.004z
		 M32.29,51.265l4.469-2.474c0.239-0.132,0.387-0.384,0.387-0.656V37.914c0-0.136-0.038-0.265-0.104-0.377
		c-0.017-0.028-0.048-0.043-0.068-0.069c-0.057-0.073-0.113-0.149-0.195-0.198c-0.004-0.002-0.01-0.001-0.014-0.004
		c-0.003-0.002-0.005-0.007-0.009-0.009l-8.482-4.647c-0.225-0.123-0.496-0.123-0.721,0l-4.299,2.355
		c0.743-3.207,2.516-6.133,5.015-8.303v4.917c0,0.273,0.148,0.524,0.387,0.656l8.483,4.697c0.113,0.063,0.238,0.094,0.363,0.094
		s0.25-0.031,0.363-0.094l8.482-4.697c0.238-0.132,0.387-0.383,0.387-0.656v-5.045c2.547,2.205,4.339,5.188,5.065,8.46l-4.35-2.384
		c-0.225-0.123-0.496-0.123-0.721,0l-8.484,4.647c-0.004,0.002-0.006,0.007-0.009,0.009c-0.005,0.002-0.01,0.001-0.014,0.004
		c-0.075,0.044-0.123,0.115-0.177,0.18c-0.027,0.032-0.066,0.053-0.087,0.088c-0.065,0.113-0.103,0.242-0.103,0.376v10.22
		c0,0.272,0.148,0.524,0.387,0.656l4.14,2.291C39.143,52.218,35.566,52.28,32.29,51.265z M54.82,47.691l-6.982,3.866v-8.554
		l4.363-2.39l2.619-1.435V47.691z"/>
	<path fill="#6699CC" d="M66.554,43.38l-4.544-3.116c0.121-1.014,0.178-1.903,0.178-2.765c0-0.859-0.057-1.75-0.178-2.769
		l4.543-3.11c0.297-0.203,0.439-0.567,0.358-0.918c-0.412-1.793-0.948-3.472-1.594-4.992c-0.141-0.331-0.435-0.543-0.83-0.532
		l-5.511,0.151c-0.905-1.59-2.004-3.092-3.274-4.478l1.841-5.181c0.121-0.339,0.021-0.717-0.25-0.953
		c-1.303-1.134-2.73-2.171-4.244-3.083c-0.307-0.186-0.699-0.165-0.984,0.056l-4.357,3.352c-1.702-0.773-3.47-1.349-5.269-1.714
		l-1.552-5.281c-0.103-0.346-0.405-0.594-0.765-0.625c-1.425-0.122-3.825-0.122-5.243,0c-0.359,0.031-0.663,0.279-0.764,0.625
		l-1.555,5.281c-1.798,0.365-3.565,0.94-5.266,1.714l-4.355-3.352c-0.286-0.22-0.676-0.243-0.983-0.057
		c-1.515,0.908-2.946,1.945-4.253,3.084c-0.271,0.236-0.37,0.614-0.25,0.953l1.844,5.18c-1.275,1.391-2.375,2.893-3.277,4.478
		l-5.509-0.151c-0.358-0.016-0.689,0.202-0.829,0.533c-0.652,1.535-1.173,3.167-1.593,4.991c-0.081,0.351,0.061,0.715,0.358,0.918
		l4.543,3.11c-0.119,0.998-0.177,1.909-0.177,2.769c0,0.858,0.058,1.768,0.177,2.767L8.446,43.38
		c-0.296,0.203-0.438,0.566-0.358,0.917c0.41,1.786,0.945,3.464,1.593,4.987c0.14,0.332,0.474,0.531,0.829,0.533l5.51-0.151
		c0.902,1.586,2.001,3.09,3.276,4.481l-1.843,5.181c-0.121,0.339-0.021,0.717,0.25,0.953c1.297,1.129,2.727,2.166,4.251,3.084
		c0.309,0.188,0.7,0.164,0.985-0.056l4.356-3.355c1.701,0.775,3.467,1.351,5.265,1.715l1.553,5.28
		c0.102,0.345,0.403,0.593,0.761,0.624c1.039,0.094,1.849,0.135,2.625,0.135c0.776,0,1.585-0.041,2.625-0.135
		c0.357-0.031,0.66-0.279,0.762-0.624l1.552-5.28c1.8-0.365,3.565-0.94,5.263-1.715l4.363,3.355c0.285,0.22,0.677,0.241,0.985,0.056
		c1.521-0.917,2.949-1.955,4.249-3.085c0.271-0.236,0.371-0.614,0.25-0.954l-1.845-5.18c1.272-1.391,2.372-2.895,3.277-4.48
		l5.506,0.151c0.401-0.007,0.688-0.202,0.829-0.532c0.646-1.516,1.182-3.193,1.595-4.987C66.992,43.947,66.85,43.583,66.554,43.38z
		 M63.932,48.051l-5.433-0.149c-0.369-0.005-0.637,0.169-0.794,0.459c-0.961,1.778-2.185,3.451-3.637,4.975
		c-0.229,0.238-0.303,0.586-0.191,0.897l1.82,5.112c-0.951,0.792-1.972,1.532-3.045,2.21l-4.307-3.313
		c-0.261-0.202-0.617-0.238-0.913-0.095c-1.871,0.902-3.835,1.542-5.837,1.901c-0.326,0.059-0.592,0.297-0.686,0.614l-1.533,5.217
		c-1.425,0.108-2.333,0.106-3.754,0l-1.535-5.217c-0.093-0.318-0.359-0.556-0.685-0.614c-2-0.358-3.964-0.998-5.839-1.901
		c-0.298-0.145-0.651-0.107-0.914,0.095l-4.3,3.313c-1.076-0.678-2.096-1.418-3.046-2.209l1.819-5.114
		c0.111-0.312,0.037-0.658-0.191-0.897c-1.456-1.523-2.678-3.196-3.634-4.973c-0.157-0.29-0.467-0.472-0.794-0.46l-5.438,0.149
		c-0.44-1.112-0.821-2.308-1.134-3.567l4.489-3.076c0.273-0.187,0.417-0.512,0.373-0.84c-0.155-1.135-0.23-2.139-0.23-3.068
		c0-0.932,0.075-1.937,0.23-3.07c0.044-0.328-0.1-0.653-0.373-0.84l-4.488-3.072c0.318-1.28,0.692-2.458,1.135-3.573l5.437,0.149
		c0.326,0.02,0.637-0.169,0.794-0.459c0.957-1.774,2.18-3.446,3.635-4.969c0.229-0.239,0.303-0.586,0.192-0.898l-1.82-5.114
		c0.956-0.796,1.976-1.536,3.045-2.207l4.299,3.309c0.262,0.202,0.616,0.239,0.913,0.095c1.875-0.902,3.841-1.542,5.842-1.901
		c0.326-0.059,0.591-0.296,0.685-0.614l1.536-5.216c1.131-0.084,2.618-0.084,3.753,0l1.533,5.215
		c0.094,0.318,0.358,0.556,0.685,0.615c2.002,0.36,3.968,1,5.845,1.901c0.297,0.143,0.651,0.106,0.912-0.095l4.301-3.309
		c1.068,0.673,2.087,1.413,3.04,2.207l-1.817,5.114c-0.111,0.312-0.037,0.659,0.191,0.897c1.449,1.516,2.672,3.188,3.632,4.969
		c0.157,0.291,0.414,0.481,0.795,0.459l5.438-0.149c0.44,1.111,0.82,2.308,1.136,3.573l-4.487,3.072
		c-0.272,0.187-0.417,0.511-0.373,0.839c0.157,1.169,0.23,2.146,0.23,3.072c0,0.929-0.073,1.903-0.23,3.067
		c-0.044,0.327,0.1,0.652,0.372,0.839l4.488,3.077C64.752,45.747,64.371,46.943,63.932,48.051z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<path fill="#5968B3" d="M17.181,20.485H2.421l12.867-8.158l3.352,3.626l0.637,0.018c0.034-0.048,0.069-0.097,0.105-0.144
	l-0.293-0.826c-0.12-0.34-0.023-0.713,0.248-0.951c0.308-0.27,0.642-0.512,0.99-0.72c0.137-0.081,0.291-0.123,0.448-0.123
	c0.191,0,0.381,0.064,0.532,0.18l0.694,0.534c0.058-0.02,0.115-0.039,0.173-0.057l0.248-0.84c0.102-0.346,0.399-0.591,0.759-0.624
	c0.146-0.014,0.298-0.017,0.448-0.021V6.147H1.62V21.29h15.78c-0.071-0.215-0.155-0.416-0.207-0.647
	C17.181,20.59,17.183,20.538,17.181,20.485z M10.705,8.189c0.956,0,1.731,0.775,1.731,1.731c0,0.956-0.775,1.73-1.731,1.73
	c-0.956,0-1.731-0.774-1.731-1.73C8.974,8.964,9.75,8.189,10.705,8.189z M2.368,9.563l7.593,5.435l-7.593,4.729V9.563z
	 M23.63,17.247v3.792c-0.466-0.04-0.886-0.239-1.196-0.554h0.395l-0.911-0.986c-0.021-0.115-0.036-0.233-0.036-0.355
	C21.881,18.145,22.653,17.332,23.63,17.247z M24.298,20.979v-3.673c0.335,0.092,0.634,0.268,0.869,0.511v2.652
	C24.932,20.712,24.633,20.888,24.298,20.979z M19.383,22.458l-0.163,0.458H0.083V4.582h25.084v8.451l-0.003-0.008
	c-0.102-0.346-0.399-0.591-0.759-0.625c-0.035-0.003-0.071-0.002-0.107-0.005V5.451H0.952v16.596h16.776
	c0.163,0.176,0.397,0.286,0.666,0.291l0.883-0.024C19.311,22.362,19.346,22.41,19.383,22.458z M23.794,25.418
	c-0.191,0-0.378-0.012-0.563-0.027c-0.154-0.014-0.284-0.119-0.328-0.268l-0.326-1.106c-0.224-0.058-0.444-0.13-0.659-0.217
	l-0.913,0.702c-0.122,0.094-0.29,0.104-0.422,0.024c-0.326-0.195-0.634-0.419-0.916-0.666c-0.115-0.102-0.157-0.263-0.106-0.408
	l0.387-1.088c-0.149-0.179-0.286-0.365-0.408-0.559l-1.158,0.032c-0.149-0.003-0.294-0.086-0.354-0.227
	c-0.143-0.331-0.259-0.694-0.346-1.078c-0.033-0.149,0.027-0.305,0.154-0.392l0.95-0.65c-0.009-0.115-0.014-0.231-0.014-0.349
	s0.005-0.232,0.014-0.348l-0.95-0.65c-0.127-0.087-0.188-0.242-0.154-0.393c0.087-0.382,0.203-0.745,0.346-1.078
	c0.061-0.143,0.19-0.232,0.354-0.228l1.158,0.032c0.122-0.193,0.259-0.38,0.408-0.557l-0.387-1.088
	c-0.051-0.145-0.009-0.306,0.106-0.408c0.285-0.25,0.594-0.474,0.917-0.666c0.133-0.078,0.299-0.068,0.421,0.025l0.913,0.702
	c0.219-0.088,0.439-0.161,0.659-0.216l0.326-1.105c0.043-0.147,0.172-0.253,0.325-0.268c0.371-0.035,0.758-0.035,1.132,0
	c0.153,0.014,0.282,0.12,0.325,0.268l0.326,1.104c0.22,0.056,0.44,0.128,0.659,0.217l0.914-0.702
	c0.121-0.094,0.288-0.104,0.421-0.024c0.325,0.194,0.633,0.418,0.916,0.666c0.116,0.101,0.158,0.263,0.106,0.408l-0.387,1.088
	c0.149,0.177,0.286,0.363,0.408,0.557l1.158-0.032c0.137-0.004,0.294,0.085,0.354,0.228c0.144,0.334,0.26,0.696,0.347,1.078
	c0.034,0.149-0.027,0.306-0.154,0.393l-0.95,0.65c0.009,0.115,0.013,0.23,0.013,0.348s-0.004,0.233-0.013,0.349l0.95,0.65
	c0.127,0.087,0.188,0.242,0.154,0.393c-0.087,0.383-0.203,0.745-0.347,1.077c-0.062,0.141-0.214,0.228-0.354,0.227l-1.158-0.032
	c-0.121,0.193-0.258,0.38-0.408,0.559l0.387,1.088c0.052,0.146,0.01,0.307-0.106,0.408c-0.283,0.248-0.592,0.472-0.916,0.666
	c-0.132,0.08-0.299,0.07-0.421-0.024L25.67,23.8c-0.215,0.087-0.436,0.159-0.659,0.217l-0.326,1.106
	c-0.044,0.148-0.174,0.254-0.328,0.268C24.171,25.406,23.983,25.418,23.794,25.418z M23.548,24.661c0.162,0.008,0.328,0.008,0.491,0
	l0.314-1.067c0.039-0.133,0.148-0.232,0.284-0.261c0.317-0.065,0.631-0.169,0.93-0.306c0.125-0.061,0.273-0.043,0.385,0.044
	l0.882,0.677c0.137-0.091,0.271-0.188,0.399-0.29l-0.374-1.05c-0.046-0.132-0.017-0.277,0.078-0.38
	c0.225-0.245,0.419-0.51,0.576-0.788c0.068-0.121,0.191-0.206,0.337-0.19l1.115,0.031c0.056-0.15,0.105-0.306,0.149-0.468
	l-0.919-0.629c-0.115-0.079-0.177-0.216-0.16-0.355c0.02-0.159,0.03-0.321,0.03-0.486s-0.011-0.326-0.03-0.485
	c-0.017-0.139,0.045-0.276,0.16-0.355l0.919-0.629c-0.044-0.162-0.094-0.318-0.149-0.47l-1.115,0.031
	c-0.143-0.006-0.268-0.069-0.337-0.189c-0.158-0.279-0.352-0.544-0.576-0.787c-0.095-0.102-0.124-0.248-0.078-0.38l0.374-1.049
	c-0.129-0.103-0.262-0.199-0.399-0.29l-0.882,0.677c-0.11,0.084-0.258,0.101-0.383,0.044c-0.309-0.14-0.622-0.242-0.931-0.305
	c-0.136-0.028-0.246-0.128-0.285-0.262l-0.314-1.067c-0.164-0.009-0.328-0.008-0.491,0l-0.314,1.067
	c-0.039,0.133-0.149,0.234-0.285,0.262c-0.309,0.063-0.622,0.165-0.931,0.305c-0.128,0.055-0.274,0.04-0.384-0.044l-0.881-0.677
	c-0.137,0.09-0.271,0.188-0.398,0.29l0.373,1.05c0.046,0.132,0.017,0.277-0.078,0.38c-0.224,0.243-0.418,0.508-0.577,0.787
	c-0.067,0.12-0.204,0.18-0.336,0.189l-1.115-0.031c-0.056,0.15-0.105,0.308-0.148,0.47l0.918,0.629
	c0.115,0.079,0.178,0.216,0.16,0.354c-0.019,0.159-0.03,0.321-0.03,0.486s0.012,0.327,0.031,0.487
	c0.017,0.139-0.046,0.275-0.161,0.354l-0.919,0.629c0.044,0.162,0.094,0.318,0.149,0.468l1.115-0.031
	c0.135-0.012,0.269,0.069,0.337,0.189c0.158,0.279,0.352,0.544,0.577,0.789c0.094,0.103,0.123,0.249,0.077,0.38l-0.373,1.05
	c0.128,0.102,0.262,0.199,0.399,0.29l0.88-0.677c0.11-0.085,0.259-0.103,0.385-0.044c0.3,0.137,0.613,0.24,0.932,0.306
	c0.135,0.028,0.244,0.128,0.283,0.261L23.548,24.661z M23.794,22.306c-1.744,0-3.163-1.419-3.163-3.162
	c0-1.744,1.419-3.163,3.163-3.163c1.743,0,3.162,1.419,3.162,3.163C26.956,20.887,25.537,22.306,23.794,22.306z M23.794,16.73
	c-1.33,0-2.413,1.082-2.413,2.413c0,1.33,1.083,2.412,2.413,2.412s2.412-1.082,2.412-2.412C26.206,17.813,25.124,16.73,23.794,16.73
	z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<circle fill="none" cx="15" cy="15.894" r="5.317"/>
<path fill="#83B04A" d="M8.71,5.417H4.312V5.124c0-0.608,0.492-1.101,1.1-1.101h2.198c0.607,0,1.101,0.492,1.101,1.101V5.417z
	 M29.481,8.01v15.766c0,1.217-0.984,2.201-2.199,2.201H2.719c-1.215,0-2.2-0.984-2.2-2.201V8.01c0-1.215,0.985-2.2,2.2-2.2h17.311
	l0.06,0.041l-0.596,0.408c-0.273,0.188-0.392,0.539-0.288,0.85c0.096,0.296,0.368,0.5,0.733,0.519l0.722-0.021l-0.241,0.679
	c-0.111,0.312-0.001,0.665,0.266,0.858c0.128,0.093,0.28,0.143,0.439,0.143c0.162,0,0.323-0.053,0.458-0.155l0.57-0.439l0.205,0.695
	c0.097,0.319,0.386,0.534,0.719,0.534s0.622-0.215,0.72-0.538L24,8.691l0.574,0.442c0.13,0.098,0.291,0.152,0.454,0.152
	c0.158,0,0.31-0.048,0.442-0.143c0.266-0.194,0.374-0.547,0.264-0.857l-0.241-0.68l0.752,0.021c0.336-0.012,0.605-0.212,0.701-0.514
	c0.104-0.314-0.014-0.665-0.288-0.854L26.063,5.85l0.06-0.041h1.159C28.497,5.81,29.481,6.795,29.481,8.01z M20.317,15.894
	c0-2.937-2.38-5.317-5.317-5.317c-2.936,0-5.316,2.381-5.316,5.317s2.381,5.317,5.316,5.317
	C17.938,21.211,20.317,18.83,20.317,15.894z M26.376,6.67c0.091,0.063,0.131,0.178,0.096,0.283
	c-0.033,0.105-0.121,0.168-0.244,0.173l-1.45-0.041l0.486,1.367c0.037,0.104,0.001,0.221-0.088,0.286
	c-0.09,0.064-0.212,0.063-0.3-0.004L23.727,7.85l-0.41,1.392c-0.032,0.106-0.13,0.179-0.24,0.179s-0.208-0.073-0.24-0.179
	l-0.41-1.392l-1.148,0.885c-0.089,0.066-0.211,0.068-0.299,0.004c-0.09-0.065-0.126-0.182-0.089-0.286l0.486-1.367l-1.451,0.041
	c-0.114-0.006-0.21-0.067-0.244-0.173c-0.035-0.105,0.005-0.221,0.096-0.283l1.197-0.82l-0.06-0.041l-1.138-0.78
	c-0.091-0.063-0.131-0.178-0.096-0.283c0.034-0.105,0.132-0.163,0.244-0.173l1.451,0.041L20.89,3.248
	c-0.037-0.104-0.001-0.221,0.089-0.286c0.088-0.065,0.21-0.063,0.299,0.004l1.148,0.884l0.41-1.392c0.064-0.213,0.416-0.213,0.48,0
	l0.41,1.392l1.149-0.885c0.088-0.068,0.21-0.069,0.3-0.004c0.089,0.065,0.125,0.182,0.088,0.286l-0.486,1.366l1.45-0.04
	c0.121,0.008,0.211,0.067,0.244,0.173c0.035,0.105-0.005,0.221-0.096,0.283l-1.138,0.78l-0.06,0.041L26.376,6.67z M25.393,6.603
	l-0.798-0.547c-0.067-0.046-0.108-0.124-0.108-0.206c0-0.014,0.008-0.027,0.01-0.041c0.012-0.066,0.043-0.127,0.099-0.166
	l0.798-0.547l-0.967,0.027c-0.069,0.017-0.16-0.036-0.209-0.103s-0.061-0.153-0.033-0.231l0.324-0.911l-0.766,0.589
	c-0.064,0.051-0.15,0.066-0.229,0.04c-0.078-0.025-0.14-0.088-0.163-0.167l-0.273-0.929l-0.273,0.929
	c-0.023,0.079-0.085,0.142-0.163,0.167c-0.078,0.026-0.164,0.012-0.229-0.04L21.646,3.88l0.324,0.91
	c0.027,0.078,0.016,0.164-0.033,0.231c-0.048,0.066-0.142,0.101-0.209,0.103L20.76,5.097l0.798,0.547
	c0.056,0.039,0.087,0.1,0.099,0.166c0.002,0.014,0.01,0.026,0.01,0.041c0,0.083-0.041,0.16-0.108,0.206L20.76,6.603l0.968-0.027
	c0.086,0,0.161,0.037,0.209,0.103c0.049,0.067,0.061,0.153,0.033,0.231l-0.324,0.91l0.765-0.589
	c0.044-0.034,0.098-0.052,0.152-0.052c0.026,0,0.052,0.004,0.077,0.012c0.078,0.025,0.14,0.088,0.163,0.167l0.273,0.929l0.273-0.929
	c0.023-0.079,0.085-0.142,0.163-0.167c0.079-0.024,0.165-0.011,0.229,0.04l0.766,0.589l-0.324-0.91
	c-0.027-0.078-0.016-0.164,0.033-0.231c0.048-0.067,0.121-0.122,0.209-0.103L25.393,6.603z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M52.641,66.489"/>
</g>
<g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M57.921,65.491"/>
</g>
<g>
	<g>
		
			<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
			M53.936,70.87c0,1.066-0.863,1.934-1.934,1.934H22.996c-1.067,0-1.934-0.867-1.934-1.934l-4.836-41.04
			c0-1.068,0.865-1.934,1.934-1.934h38.68c1.066,0,1.934,0.865,1.934,1.934L53.936,70.87z"/>
		<g>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="28.981" y1="64.313" x2="29.308" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="25.676" y1="34.846" x2="26.435" y2="41.617"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="46.018" y1="64.315" x2="45.691" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="49.322" y1="34.846" x2="48.59" y2="41.371"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="37.306" y1="65.769" x2="37.306" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="37.306" y1="34.846" x2="37.306" y2="36.875"/>
		</g>
	</g>
</g>
<g>
	
		<circle fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="37.5" cy="51.575" r="10.203"/>
	<g>
		
			<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="32.717" y1="46.79" x2="42.285" y2="56.358"/>
		
			<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="32.717" y1="56.358" x2="42.285" y2="46.79"/>
	</g>
</g>
<g>
	<g>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M30.396,27.369
			l-3.276-7.024l2.402-1.121c2.317-1.08,3.895-0.719,4.733,1.081c0.438,0.939,0.455,1.809,0.05,2.612
			c-0.405,0.803-1.203,1.481-2.396,2.039l-1.089,0.508l0.857,1.838 M30.39,24.54l0.97-0.453c0.955-0.445,1.573-0.922,1.857-1.429
			c0.282-0.508,0.265-1.101-0.052-1.781c-0.286-0.613-0.699-0.976-1.24-1.089c-0.543-0.112-1.237,0.029-2.086,0.425l-1.204,0.562
			L30.39,24.54z"/>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M46.293,22.687
			l-1.076,0.502l-2.033-4.36l-4.883,2.276l2.034,4.361l-1.078,0.501L34.936,16.7l1.078-0.502l1.839,3.943l4.88-2.276l-1.838-3.943
			l1.076-0.501L46.293,22.687z"/>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M51.648,12.196
			c0.436,0.938,0.454,1.808,0.049,2.611c-0.406,0.804-1.203,1.483-2.395,2.039l-1.09,0.509L49.911,21l-1.076,0.502l-4.322-9.266
			l2.401-1.121C49.23,10.036,50.809,10.396,51.648,12.196z M47.781,16.43l0.969-0.453c0.954-0.445,1.574-0.921,1.857-1.429
			c0.281-0.506,0.266-1.101-0.053-1.781c-0.285-0.612-0.698-0.976-1.239-1.088c-0.542-0.112-1.237,0.029-2.087,0.425l-1.203,0.56
			L47.781,16.43z"/>
	</g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M20.102,27.406c-0.618-4.872,5.762-11.804,15.299-16.251c10.491-4.893,20.834-4.923,23.098-0.07
		c2.069,4.442-3.342,11.436-12.312,16.34"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M30.075,34.094H28.1v-9.829c0-0.138-0.112-0.25-0.25-0.25h-1.805c-0.082,0-0.158,0.04-0.205,0.106
		l-7.116,10.142c-0.03,0.042-0.045,0.092-0.045,0.144v1.486c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25
		h1.63c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975c0.138,0,0.25-0.112,0.25-0.25v-1.549C30.325,34.206,30.213,34.094,30.075,34.094z
		 M25.97,29.361v4.732h-4.857l4.413-6.275c0.16-0.241,0.328-0.517,0.5-0.826C25.988,27.85,25.97,28.644,25.97,29.361z"/>
	<path fill="#6699CC" d="M40.443,37.76c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.793,39.58,39.109,40.443,37.76z M38.726,36.452
		c-0.467,0.925-1.2,1.375-2.242,1.375c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648
		c0-2.131,0.25-3.691,0.741-4.638c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365
		c0.489,0.961,0.737,2.515,0.737,4.619C39.464,33.925,39.216,35.483,38.726,36.452z"/>
	<path fill="#6699CC" d="M53.068,27.874c0-1.234-0.438-2.222-1.301-2.936c-0.85-0.702-2.045-1.057-3.553-1.057
		c-0.913,0-1.794,0.145-2.619,0.43c-0.824,0.283-1.564,0.681-2.201,1.183c-0.107,0.084-0.127,0.238-0.046,0.346l0.861,1.148
		c0.078,0.105,0.224,0.131,0.335,0.061c0.723-0.463,1.371-0.785,1.928-0.956c0.556-0.169,1.155-0.255,1.783-0.255
		c0.798,0,1.432,0.191,1.886,0.567c0.446,0.37,0.663,0.871,0.663,1.53c0,0.84-0.303,1.478-0.926,1.949
		c-0.636,0.48-1.521,0.723-2.629,0.723h-1.496c-0.138,0-0.25,0.112-0.25,0.25v1.467c0,0.138,0.112,0.25,0.25,0.25h1.477
		c2.715,0,4.035,0.811,4.035,2.478c0,1.881-1.189,2.796-3.636,2.796c-0.635,0-1.318-0.083-2.031-0.246
		c-0.713-0.162-1.393-0.402-2.021-0.713c-0.077-0.038-0.17-0.034-0.243,0.012s-0.118,0.126-0.118,0.212v1.619
		c0,0.096,0.055,0.184,0.141,0.225c0.639,0.311,1.308,0.529,1.987,0.652c0.669,0.122,1.417,0.184,2.224,0.184
		c1.873,0,3.346-0.405,4.378-1.206c1.051-0.815,1.583-1.991,1.583-3.494c0-1.06-0.316-1.932-0.939-2.592
		c-0.466-0.493-1.12-0.849-1.951-1.062c0.637-0.243,1.16-0.595,1.563-1.051C52.776,29.735,53.068,28.889,53.068,27.874z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M63.657,12.237c-0.046-0.116-0.109-0.227-0.205-0.318L52.954,1.835c-0.028-0.027-0.065-0.039-0.097-0.062
		c-0.061-0.043-0.115-0.089-0.187-0.117c-0.067-0.027-0.144-0.034-0.215-0.043c-0.037-0.005-0.069-0.022-0.108-0.022H52.33h-0.001
		H14.114c-1.577,0-2.86,1.283-2.86,2.859v66.923c0,1.577,1.283,2.859,2.86,2.859h46.773c1.575,0,2.858-1.282,2.858-2.859V12.608
		C63.746,12.474,63.711,12.351,63.657,12.237z M53.223,4.52l7.51,7.213h-7.395c-0.064,0-0.115-0.052-0.115-0.118V4.52z
		 M61.996,71.373c0,0.611-0.498,1.109-1.109,1.109H14.114c-0.612,0-1.11-0.498-1.11-1.109V4.45c0-0.612,0.498-1.109,1.11-1.109
		h37.359v8.274c0,1.03,0.836,1.868,1.864,1.868h8.658L61.996,71.373L61.996,71.373z"/>
	<path fill="#6699CC" d="M45.43,44.486c-6.656,0-12.072,5.416-12.072,12.072c0,6.655,5.416,12.071,12.072,12.071
		c6.655,0,12.071-5.415,12.071-12.071S52.085,44.486,45.43,44.486z M45.43,66.881c-5.691,0-10.322-4.63-10.322-10.32
		s4.63-10.321,10.322-10.321c5.69,0,10.321,4.631,10.321,10.321S51.12,66.881,45.43,66.881z"/>
	<path fill="#6699CC" d="M51.299,50.689c-0.342-0.342-0.896-0.342-1.238,0L45.43,55.32l-4.631-4.631
		c-0.342-0.342-0.896-0.342-1.238,0c-0.34,0.342-0.34,0.896,0,1.236l4.631,4.633l-4.631,4.631c-0.34,0.342-0.34,0.896,0,1.236
		c0.172,0.172,0.396,0.258,0.619,0.258s0.448-0.086,0.619-0.258l4.631-4.631l4.631,4.631c0.172,0.172,0.396,0.258,0.619,0.258
		s0.448-0.086,0.619-0.258c0.342-0.342,0.342-0.896,0-1.236l-4.631-4.631l4.631-4.633C51.641,51.586,51.641,51.031,51.299,50.689z"
		/>
	<path fill="#6699CC" d="M19.826,18.879c0,0.483,0.392,0.875,0.875,0.875h33.598c0.483,0,0.875-0.392,0.875-0.875
		s-0.392-0.875-0.875-0.875H20.701C20.218,18.004,19.826,18.396,19.826,18.879z"/>
	<path fill="#6699CC" d="M20.701,29.511h33.598c0.483,0,0.875-0.392,0.875-0.875c0-0.483-0.392-0.875-0.875-0.875H20.701
		c-0.483,0-0.875,0.392-0.875,0.875C19.826,29.119,20.218,29.511,20.701,29.511z"/>
	<path fill="#6699CC" d="M20.701,39.27h33.598c0.483,0,0.875-0.393,0.875-0.875s-0.392-0.875-0.875-0.875H20.701
		c-0.483,0-0.875,0.392-0.875,0.875S20.218,39.27,20.701,39.27z"/>
	<path fill="#6699CC" d="M30.125,47.275h-9.423c-0.483,0-0.875,0.393-0.875,0.875s0.392,0.875,0.875,0.875h9.423
		c0.483,0,0.875-0.393,0.875-0.875S30.608,47.275,30.125,47.275z"/>
	<path fill="#6699CC" d="M27.75,57.034h-7.049c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875h7.049
		c0.483,0,0.875-0.392,0.875-0.875S28.233,57.034,27.75,57.034z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M48.201,23.882l-17.297-7.355c-0.446-0.188-0.959,0.018-1.147,0.463c-0.189,0.445,0.018,0.958,0.463,1.147
		l17.295,7.355c0.112,0.047,0.229,0.07,0.344,0.07c0.34,0,0.664-0.2,0.806-0.533C48.854,24.585,48.646,24.071,48.201,23.882z"/>
	<path fill="#6699CC" d="M34.828,23.886l-5.931-2.612c-0.445-0.195-0.959,0.006-1.153,0.448c-0.195,0.442,0.006,0.958,0.448,1.153
		l5.931,2.612c0.115,0.05,0.234,0.074,0.352,0.074c0.336,0,0.657-0.195,0.801-0.522C35.471,24.597,35.271,24.081,34.828,23.886z"/>
	<path fill="#6699CC" d="M54.087,26.923h-0.974l2.484-5.843c0.545-1.285-0.057-2.775-1.341-3.322l-2.211-0.94l1.563-5.534
		c0.379-1.344-0.405-2.746-1.75-3.125l-24.201-6.84c-1.35-0.379-2.748,0.405-3.127,1.75l-3.207,11.346
		c-0.021,0.075-0.016,0.149-0.017,0.224l-0.816-0.103c-1.38-0.168-2.655,0.812-2.83,2.198l-1.28,10.189h-0.976
		c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993c0.03,1.523,1.278,2.753,2.808,2.753H49.25
		c1.529,0,2.777-1.229,2.809-2.753l4.832-40.993c0.004-0.034,0.006-0.068,0.006-0.103C56.896,28.183,55.637,26.923,54.087,26.923z
		 M53.986,20.396l-2.555,6.01c-0.072,0.171-0.07,0.348-0.035,0.517H22.179L29.4,9.941c0.169-0.397,0.63-0.584,1.028-0.415
		l20.28,8.623c0.017,0.006,0.028,0.019,0.046,0.024c0.005,0.001,0.01,0,0.016,0.002l2.804,1.192
		C53.971,19.537,54.156,19.999,53.986,20.396z M26.216,3.543c0.118-0.416,0.549-0.661,0.968-0.541l24.201,6.839
		c0.416,0.118,0.659,0.552,0.543,0.967l-1.504,5.318l-19.311-8.21c-1.285-0.547-2.776,0.055-3.323,1.34l-2.517,5.918
		c-0.063-0.023-0.12-0.054-0.188-0.063l-2.065-0.259L26.216,3.543z M19.399,16.952c0.054-0.429,0.439-0.733,0.875-0.68l4.303,0.54
		l-4.037,9.495c-0.087,0.205-0.082,0.421-0.017,0.617h-2.377L19.399,16.952z M50.314,70.669c-0.004,0.034-0.006,0.067-0.006,0.103
		c0,0.584-0.476,1.06-1.06,1.06H20.243c-0.583,0-1.059-0.476-1.059-1.06c0-0.033-0.002-0.067-0.006-0.103l-4.83-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h38.68c0.568,0,1.034,0.451,1.059,1.015L50.314,70.669z"/>
	<path fill="#6699CC" d="M32.34,58.307h-4.416c-1.123,0-1.969-0.352-2.322-0.964s-0.234-1.521,0.328-2.491l0.327-0.565l1.131,0.653
		l0.001-4.362l-3.779,2.18l1.131,0.653l-0.326,0.564c-0.896,1.551-1.013,3.058-0.329,4.242c0.685,1.188,2.048,1.84,3.838,1.84h4.416
		c0.483,0,0.875-0.392,0.875-0.875C33.215,58.699,32.824,58.307,32.34,58.307z"/>
	<path fill="#6699CC" d="M39.508,46.949l-0.003-4.362l-1.13,0.653l-0.365-0.631c-0.549-0.951-1.248-1.637-2.074-2.035
		c-0.927-0.45-1.947-0.451-2.874-0.004c-0.831,0.402-1.53,1.088-2.079,2.037l-2.222,3.843c-0.242,0.419-0.099,0.954,0.319,1.196
		c0.138,0.078,0.289,0.117,0.437,0.117c0.302,0,0.596-0.156,0.758-0.438l2.222-3.844c0.371-0.642,0.816-1.092,1.325-1.336
		c0.448-0.217,0.902-0.217,1.35,0.002c0.506,0.244,0.951,0.692,1.322,1.336l0.365,0.631l-1.131,0.654L39.508,46.949z"/>
	<path fill="#6699CC" d="M42.328,50.08c-0.241-0.419-0.776-0.561-1.195-0.32c-0.419,0.242-0.563,0.777-0.32,1.195l2.252,3.896
		c0.562,0.971,0.682,1.879,0.328,2.49c-0.354,0.613-1.199,0.965-2.322,0.965h-0.637V57l-3.779,2.182l3.779,2.183v-1.308h0.637
		c1.791,0,3.154-0.652,3.839-1.841c0.684-1.187,0.565-2.692-0.33-4.241L42.328,50.08z"/>
	<path fill="#6699CC" d="M26.13,63.346c-0.48,0.055-0.826,0.486-0.772,0.967l0.327,2.908c0.05,0.447,0.429,0.777,0.869,0.777
		c0.033,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-0.327-2.908C27.043,63.637,26.613,63.294,26.13,63.346z"/>
	<path fill="#6699CC" d="M24.216,47.162c0.032,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-1.294-11.541
		c-0.054-0.48-0.482-0.826-0.967-0.772c-0.48,0.054-0.826,0.487-0.772,0.967l1.294,11.54C23.398,46.832,23.777,47.162,24.216,47.162
		z"/>
	<path fill="#6699CC" d="M43.361,63.348c-0.489-0.058-0.912,0.291-0.967,0.771l-0.326,2.906c-0.055,0.479,0.291,0.912,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.777l0.326-2.906C44.188,63.834,43.843,63.4,43.361,63.348z"/>
	<path fill="#6699CC" d="M46.668,33.877c-0.486-0.053-0.913,0.292-0.967,0.772l-1.297,11.563c-0.055,0.479,0.291,0.913,0.771,0.968
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.869-0.777l1.297-11.563C47.494,34.364,47.148,33.931,46.668,33.877z"/>
	<path fill="#6699CC" d="M34.553,63.373c-0.483,0-0.875,0.393-0.875,0.875v2.875c0,0.482,0.392,0.875,0.875,0.875
		c0.483,0,0.875-0.393,0.875-0.875v-2.875C35.428,63.766,35.037,63.373,34.553,63.373z"/>
	<path fill="#6699CC" d="M34.553,37.435c0.483,0,0.875-0.392,0.875-0.875v-1.813c0-0.483-0.392-0.875-0.875-0.875
		c-0.483,0-0.875,0.392-0.875,0.875v1.813C33.678,37.043,34.07,37.435,34.553,37.435z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<g id="Layer_1_1_" display="none">
	<path display="inline" fill="#E8AE4A" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.51,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.321,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.357,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy_3" display="none">
	<path display="inline" fill="#4675B8" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.51,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.321,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.357,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy" display="none">
	<path display="inline" fill="#A32430" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M15.159,13.764c0.187,0.188,0.288,0.438,0.288,0.697c0,0.262-0.102,0.51-0.288,0.695
		c-0.185,0.184-0.438,0.289-0.698,0.289c-0.262,0-0.518-0.105-0.697-0.291L10,11.393l-3.764,3.766c-0.361,0.359-1.033,0.359-1.393,0
		c-0.187-0.186-0.29-0.434-0.29-0.695s0.103-0.512,0.289-0.695L8.606,10L4.842,6.234c-0.385-0.384-0.385-1.01,0-1.394
		c0.359-0.361,1.032-0.361,1.394,0L10,8.604l3.766-3.765c0.356-0.359,1.033-0.361,1.396,0c0.188,0.185,0.288,0.433,0.288,0.697
		c0.001,0.264-0.104,0.511-0.288,0.697l-3.767,3.764L15.159,13.764z"/>
</g>
<g>
	<circle fill="#CC3D6A" cx="10" cy="10" r="9.967"/>
</g>
<path fill="#FFFFFF" d="M11.414,10l3.503-3.503c0.392-0.391,0.392-1.024,0-1.414c-0.392-0.391-1.022-0.391-1.414,0L10,8.586
	L6.497,5.082c-0.391-0.391-1.023-0.391-1.414,0c-0.391,0.39-0.391,1.023,0,1.414L8.586,10l-3.503,3.504
	c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293L10,11.414l3.502,3.503
	c0.195,0.194,0.451,0.293,0.707,0.293s0.512-0.099,0.707-0.293c0.391-0.392,0.391-1.022,0-1.414L11.414,10z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M50.955,23.981l-17.298-7.355c-0.446-0.19-0.959,0.018-1.147,0.463c-0.189,0.445,0.018,0.958,0.463,1.147
		l17.296,7.355c0.112,0.047,0.229,0.07,0.344,0.07c0.34,0,0.664-0.2,0.806-0.533C51.605,24.684,51.398,24.17,50.955,23.981z"/>
	<path fill="#6699CC" d="M37.581,23.984l-5.931-2.612c-0.443-0.195-0.959,0.006-1.153,0.448c-0.195,0.442,0.006,0.958,0.448,1.153
		l5.931,2.612c0.115,0.05,0.234,0.074,0.352,0.074c0.336,0,0.657-0.195,0.801-0.522C38.225,24.695,38.023,24.179,37.581,23.984z"/>
	<path fill="#6699CC" d="M56.841,27.021h-0.973l2.483-5.843c0.545-1.285-0.057-2.775-1.34-3.322l-2.213-0.94l1.564-5.533
		c0.379-1.344-0.406-2.746-1.75-3.125l-24.202-6.84c-1.341-0.379-2.748,0.405-3.127,1.75l-3.206,11.346
		c-0.021,0.075-0.016,0.149-0.017,0.224l-0.817-0.103c-0.67-0.085-1.336,0.098-1.87,0.513c-0.535,0.416-0.875,1.014-0.958,1.685
		l-1.28,10.189H18.16c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753h29.007c1.53,0,2.778-1.229,2.808-2.753l4.834-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		C59.648,28.281,58.391,27.021,56.841,27.021z M56.328,19.466c0.396,0.169,0.581,0.631,0.412,1.028l-2.555,6.01
		c-0.072,0.171-0.07,0.348-0.035,0.517H24.933l7.222-16.982c0.082-0.192,0.233-0.341,0.427-0.419c0.195-0.079,0.408-0.077,0.6,0.005
		l20.276,8.621c0.019,0.006,0.03,0.021,0.05,0.026c0.006,0.001,0.012,0.001,0.016,0.002L56.328,19.466z M28.969,3.642
		c0.118-0.416,0.549-0.659,0.968-0.541L54.139,9.94c0.416,0.118,0.658,0.552,0.543,0.967l-1.505,5.318l-19.311-8.21
		c-0.624-0.265-1.312-0.271-1.939-0.018c-0.628,0.253-1.119,0.736-1.383,1.358l-2.517,5.918c-0.062-0.023-0.12-0.054-0.188-0.063
		l-2.065-0.259L28.969,3.642z M22.152,17.049c0.026-0.208,0.131-0.393,0.296-0.521c0.166-0.128,0.374-0.185,0.579-0.159l4.304,0.54
		l-4.037,9.495c-0.087,0.205-0.082,0.421-0.017,0.617H20.9L22.152,17.049z M53.066,70.768c-0.004,0.034-0.006,0.068-0.006,0.104
		c0,0.584-0.475,1.059-1.059,1.059H22.996c-0.583,0-1.059-0.475-1.059-1.059c0-0.034-0.002-0.068-0.006-0.104l-4.829-40.98
		c0.023-0.563,0.489-1.015,1.058-1.015h38.681c0.569,0,1.034,0.451,1.058,1.015L53.066,70.768z"/>
	<path fill="#6699CC" d="M28.884,63.443c-0.48,0.055-0.826,0.486-0.772,0.968l0.326,2.907c0.05,0.447,0.429,0.777,0.869,0.777
		c0.032,0,0.065-0.002,0.099-0.006c0.48-0.054,0.826-0.486,0.772-0.967l-0.326-2.908C29.797,63.734,29.364,63.382,28.884,63.443z"/>
	<path fill="#6699CC" d="M26.532,42.486c0.48-0.055,0.826-0.486,0.772-0.967l-0.759-6.771c-0.054-0.479-0.479-0.819-0.967-0.772
		c-0.48,0.054-0.826,0.487-0.772,0.967l0.759,6.771c0.05,0.447,0.429,0.777,0.869,0.777C26.466,42.492,26.499,42.49,26.532,42.486z"
		/>
	<path fill="#6699CC" d="M46.116,63.445c-0.485-0.057-0.914,0.291-0.968,0.771l-0.325,2.906c-0.056,0.48,0.29,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.818-0.33,0.867-0.777l0.326-2.905C46.941,63.934,46.598,63.5,46.116,63.445z"/>
	<path fill="#6699CC" d="M49.421,33.976c-0.487-0.052-0.913,0.292-0.967,0.772l-0.731,6.525c-0.056,0.479,0.291,0.912,0.771,0.967
		c0.032,0.004,0.065,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.731-6.525C50.247,34.463,49.9,34.03,49.421,33.976z"/>
	<path fill="#6699CC" d="M37.306,64.895c-0.483,0-0.875,0.392-0.875,0.875v1.453c0,0.482,0.392,0.875,0.875,0.875
		s0.875-0.393,0.875-0.875V65.77C38.182,65.285,37.789,64.895,37.306,64.895z"/>
	<path fill="#6699CC" d="M37.306,37.75c0.483,0,0.875-0.392,0.875-0.875v-2.029c0-0.483-0.393-0.875-0.875-0.875
		s-0.875,0.392-0.875,0.875v2.029C36.431,37.358,36.822,37.75,37.306,37.75z"/>
	<path fill="#6699CC" d="M37.5,40.496c-6.108,0-11.078,4.97-11.078,11.079c0,6.108,4.97,11.077,11.078,11.077
		c6.109,0,11.079-4.969,11.079-11.077C48.578,45.466,43.607,40.496,37.5,40.496z M37.5,60.902c-5.144,0-9.328-4.185-9.328-9.327
		c0-5.146,4.185-9.329,9.328-9.329c5.145,0,9.329,4.186,9.329,9.329C46.828,56.719,42.645,60.902,37.5,60.902z"/>
	<path fill="#6699CC" d="M38.74,51.574l4.164-4.165c0.341-0.343,0.341-0.896,0-1.238c-0.342-0.342-0.896-0.342-1.238,0L37.5,50.336
		l-4.166-4.165c-0.342-0.342-0.896-0.342-1.237,0c-0.341,0.343-0.342,0.896,0,1.238l4.165,4.165l-4.165,4.165
		c-0.342,0.342-0.342,0.896,0,1.237c0.171,0.172,0.395,0.256,0.619,0.256c0.224,0,0.448-0.084,0.619-0.256l4.166-4.164l4.166,4.164
		c0.171,0.172,0.396,0.256,0.619,0.256c0.223,0,0.448-0.084,0.618-0.256c0.342-0.342,0.342-0.896,0-1.237L38.74,51.574z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M60.912,72.441H14.087c-1.493,0-2.708-1.214-2.708-2.708V5.266c0-1.493,1.215-2.708,2.708-2.708h46.827
		c1.492,0,2.708,1.215,2.708,2.708v64.468C63.62,71.228,62.406,72.441,60.912,72.441z M14.087,4.206c-0.584,0-1.06,0.476-1.06,1.06
		v64.468c0,0.584,0.476,1.061,1.06,1.061h46.827c0.583,0,1.06-0.477,1.06-1.061V5.266c0-0.583-0.477-1.06-1.06-1.06H14.087z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,16.858h-32.25c-0.483,0-0.875-0.392-0.875-0.875s0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875S54.107,16.858,53.625,16.858z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,27.617h-32.25c-0.483,0-0.875-0.392-0.875-0.875c0-0.483,0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875C54.5,27.225,54.107,27.617,53.625,27.617z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,38.375h-32.25c-0.483,0-0.875-0.392-0.875-0.875s0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875S54.107,38.375,53.625,38.375z"/>
</g>
<g>
	<path fill="#6699CC" d="M29.373,49.133h-7.998c-0.483,0-0.875-0.392-0.875-0.875c0-0.482,0.392-0.875,0.875-0.875h7.998
		c0.483,0,0.875,0.393,0.875,0.875C30.248,48.741,29.856,49.133,29.373,49.133z"/>
</g>
<g>
	<path fill="#6699CC" d="M27.763,59.893h-6.388c-0.483,0-0.875-0.392-0.875-0.875c0-0.482,0.392-0.875,0.875-0.875h6.388
		c0.483,0,0.875,0.393,0.875,0.875C28.638,59.501,28.247,59.893,27.763,59.893z"/>
</g>
<g>
	<path fill="#6699CC" d="M35.727,49.516"/>
</g>
<g>
	<path fill="#6699CC" d="M50.613,64.8"/>
</g>
<g>
	<g>
		<path fill="#6699CC" d="M44.561,67.521c-6.457,0-11.709-5.254-11.709-11.711c0-0.719,0.066-1.438,0.195-2.141l1.721,0.318
			c-0.11,0.597-0.166,1.21-0.166,1.822c0,5.491,4.467,9.959,9.959,9.959c1.992,0,3.916-0.586,5.563-1.696l0.979,1.45
			C49.165,66.831,46.902,67.521,44.561,67.521z"/>
	</g>
	<g>
		<g>
			<polygon fill="#6699CC" points="30.879,53.666 35.572,49.759 36.61,55.777 			"/>
		</g>
	</g>
</g>
<g>
	<g>
		<path fill="#6699CC" d="M56.075,57.952l-1.722-0.316c0.11-0.6,0.166-1.214,0.166-1.823c0-5.492-4.468-9.961-9.959-9.961
			c-1.994,0-3.918,0.588-5.564,1.698l-0.979-1.45c1.937-1.308,4.198-1.998,6.543-1.998c6.457,0,11.709,5.254,11.709,11.711
			C56.271,56.527,56.205,57.248,56.075,57.952z"/>
	</g>
	<g>
		<g>
			<polygon fill="#6699CC" points="58.242,57.958 53.548,61.865 52.512,55.848 			"/>
		</g>
	</g>
</g>
<g>
	<path fill="#6699CC" d="M38.507,46.824"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M62.406,13.464c-0.043-0.11-0.104-0.216-0.195-0.303L52.215,3.56c-0.026-0.026-0.062-0.038-0.092-0.059
		c-0.057-0.041-0.109-0.085-0.177-0.111c-0.064-0.026-0.136-0.032-0.204-0.042c-0.035-0.004-0.067-0.021-0.104-0.021h-0.017H51.62
		H15.233c-1.502,0-2.724,1.222-2.724,2.723v63.723c0,1.501,1.222,2.723,2.724,2.723h44.535c1.501,0,2.723-1.222,2.723-2.723V13.818
		C62.491,13.69,62.458,13.573,62.406,13.464z M52.471,6.117l7.151,6.868h-7.041c-0.062,0-0.11-0.049-0.11-0.112V6.117z
		 M60.825,69.773c0,0.582-0.475,1.056-1.057,1.056H15.233c-0.583,0-1.057-0.474-1.057-1.056V6.05c0-0.583,0.474-1.057,1.057-1.057
		h35.571v7.879c0,0.98,0.798,1.778,1.776,1.778h8.244V69.773z"/>
	<path fill="#6699CC" d="M48.729,51.256c0-0.625-0.237-1.467-1.205-2.305c-1.33-2.633-2.331-4.074-4.078-6.423
		c-0.821-1.105-1.484-1.938-2.035-2.611c0.551-0.672,1.21-1.505,2.035-2.613c2.146-2.881,3.215-4.476,5.181-8.708
		c0.103-0.222,0.098-0.472,0.002-0.686c0-0.006,0.002-0.012,0.002-0.018c0-3.198-9.991-3.292-11.13-3.292
		s-11.129,0.092-11.129,3.292c0,0.004,0.001,0.008,0.001,0.011c-0.097,0.217-0.103,0.468,0,0.691
		c1.964,4.232,3.034,5.828,5.178,8.709c0.819,1.102,1.481,1.935,2.037,2.611c-0.553,0.675-1.215,1.51-2.037,2.612
		c-1.747,2.35-2.747,3.791-4.079,6.427c-0.961,0.834-1.202,1.675-1.202,2.301c0,0.1,0.022,0.193,0.034,0.291
		c-0.004,0.089,0.006,0.177,0.03,0.261c0.628,2.83,6.047,4.35,11.167,4.35c5.116,0,10.532-1.518,11.165-4.345
		c0.026-0.091,0.039-0.184,0.033-0.279C48.709,51.44,48.729,51.351,48.729,51.256z M41.804,49.128
		c-1.129,1.13-2.541,1.291-4.304,1.291s-3.12-0.108-4.303-1.291c0.818-1.763,1.247-2.388,2.112-3.55
		c0.865-1.164,1.309-1.616,2.19-2.693c0.88,1.077,1.325,1.529,2.189,2.693C40.555,46.742,40.983,47.366,41.804,49.128z
		 M32.099,50.228c1.612,1.611,3.474,1.746,5.401,1.746c1.769,0,3.79-0.135,5.4-1.746c0.395-0.395,0.524-0.96,0.387-1.486
		c0.854,0.238,1.614,0.524,2.225,0.852c0.263,0.142,0.489,0.289,0.69,0.438c0.21,0.421,0.428,0.87,0.66,1.365
		c-2.329,2.055-5.235,2.472-9.362,2.472c-3.839,0-6.8-0.185-9.363-2.47c0.233-0.497,0.452-0.946,0.663-1.37
		c0.21-0.155,0.453-0.31,0.732-0.456c0,0,0-0.001,0.001-0.001s0,0,0,0c0.6-0.316,1.345-0.594,2.18-0.827
		C31.576,49.268,31.706,49.833,32.099,50.228z M46.795,27.78c-3.325,1.332-5.402,1.703-9.295,1.703c-3.892,0-5.968-0.37-9.293-1.702
		c0.833-0.623,4.14-1.513,9.294-1.513C42.653,26.267,45.96,27.156,46.795,27.78z M32.887,43.522c1.029-1.38,1.801-2.328,2.421-3.073
		c0.257-0.31,0.257-0.758,0-1.066c-0.622-0.747-1.396-1.698-2.421-3.074c-1.672-2.246-2.638-3.645-3.91-6.153
		c3.044,0.983,7.762,1.026,8.523,1.026s5.476-0.043,8.52-1.025c-1.271,2.509-2.238,3.907-3.911,6.153
		c-1.033,1.388-1.803,2.333-2.42,3.073c-0.257,0.309-0.257,0.757,0,1.066c0.619,0.741,1.391,1.688,2.42,3.073
		c1.122,1.507,1.924,2.636,2.714,3.963c-0.712-0.258-1.497-0.481-2.347-0.656l0,0h-0.004c-0.002,0-0.002-0.001-0.004-0.001
		c0,0,0,0-0.001,0l-0.093-0.02c-0.437-0.782-0.845-1.358-1.438-2.157c-0.606-0.814-1.013-1.292-1.482-1.849
		c-0.225-0.266-0.465-0.548-0.753-0.901c-0.589-0.72-1.814-0.72-2.405,0c-0.289,0.354-0.53,0.64-0.754,0.903
		c-0.469,0.557-0.874,1.034-1.479,1.847c-0.595,0.801-1.002,1.375-1.438,2.157c-0.89,0.179-1.711,0.409-2.452,0.679
		C30.963,46.158,31.766,45.031,32.887,43.522z"/>
</g>
</svg>
�PNG


IHDRZZv�0�PLTEGpL�����������u������������������ռ�������а�������˝��������������z}jknsvy���Kdrs�3��hikc�5������������M����efi��Sy�_�J��1Ds��AԤ_ad�������ج��;r�{����ss/:GQ7im����,��X'\]_bJ#Do[]`uI��tRNS`���(��MlIDATx���!EQ,��_�w���r��yj��m��EF����f@�1"�!���2�I[d��e���fӁCL)��I>��a���n��w��g/�i�p��I)�E�<B] ���mh.��Kپ�W���Bb��sǭ�c��#O����'8��Z�6P��o9�,C���ma�6�mk�:�i]�Æl��hz�m4� u	\��\L�i؞�4t4���K����X�E4�~л_��??��Ū��<��A�L�w�jv������	��p�Q�����i�ӏu�|hO���-ڸ��^
t��p<yj}%����{[w��9����I�sؕܠmՅtsy��<������������lz:���ZZv�LH���9mJt�܀�̦؍;��h�AM����^��sАn���GI�6�r��}�!kh�e�Z�yp�R�M�l��,���Bȋ�p�1��r0/��z�l?T�٫��8�<����52����f���feyq!�c�h{ui���=�3�Zؐ2�w\S�|<�&mD�$MrKE71�Z��acE�tb�\����Ey�M2�$����ֹ<����k�ln^3�/�5�$m8~�u.� Os�:���$�䒝$�����n6aS�Tʳɕ�u��.֔7,����DV�6l�!o����F���xټ��ުf��F6hFT4�g��h4�8�	�����l~,`�W��g��	�-��it����$�ɀ}X����u��r���ē$i<%�{��&EOG,�?���S#> d�ٛח�����2�Y���I�i�=ˆ8N�m���-dDʉ��,���F�;P���fR�tN�!��8��Q�������k�6mbDL��|<9��{;�8@>bB����Hʒ�i
��(2"m
�GȘ]�=�m�l�oK��[6:�벌�T���+e�ە���bJrLr\Ƞ������\�%�X�b��I��E&��!��(-�?w� {�T�o�r��>.��O'��O�����p!��5EE�lG�/#m��<�:��]L!B6AW�6`��s\�|���͠wE�vN9�ʷi�fT��
��2��D;Jڦe���;�3�^�A�ֶCt�U��Yv��7����hӁ�ֿ>�C�o�$���Վ^@�t4p��H��Ӭ�-����u�s�e������Y�܋"�|��?Xt�f��2l��t�{�FB���>�@%�,t���x��9C�+Y�Wuf�ŏ��n[�2ֻH�>'�Մ���O:j��ky^;
���9��.Q��,�����w�RL��S�N�vu4d��rK##�a�h��k:k�S'

��ɚX8��?}�y�mY���O���r����܎�����yr��O��?��:�E�VIEND�B`�<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
<g>
	<path fill="#889EAA" d="M15.222,5.874c-0.616-0.81-1.511-1.331-2.52-1.468c-0.793-0.108-1.584,0.033-2.29,0.406
		c-0.095,0.05-0.188,0.103-0.276,0.161L9.819,5.211l0.819,1.077l0.25-0.189c0.05-0.032,0.103-0.062,0.155-0.09
		c0.455-0.24,0.965-0.331,1.476-0.262c0.65,0.088,1.228,0.425,1.625,0.947c0.397,0.522,0.567,1.168,0.479,1.818
		c-0.183,1.343-1.424,2.286-2.765,2.104c-0.511-0.069-0.979-0.294-1.354-0.646c-0.044-0.042-0.087-0.086-0.126-0.128L7.292,5.785
		L7.292,5.798L6.967,5.371L6.931,5.328C6.857,5.246,6.779,5.165,6.699,5.09C6.093,4.518,5.335,4.157,4.51,4.045
		C2.338,3.75,0.331,5.277,0.036,7.449c-0.295,2.171,1.232,4.178,3.404,4.473c0.827,0.113,1.652-0.034,2.39-0.423
		c0.03-0.017,0.058-0.033,0.088-0.05l-0.833-1.093c-0.457,0.214-0.959,0.294-1.463,0.225c-1.432-0.194-2.439-1.518-2.245-2.95
		c0.195-1.433,1.517-2.439,2.95-2.245c0.545,0.074,1.044,0.312,1.444,0.69c0.047,0.043,0.092,0.09,0.136,0.137l2.426,3.189
		l0.001-0.014l0.985,1.295l0.034,0.042c0.069,0.077,0.145,0.154,0.224,0.229c0.581,0.549,1.307,0.895,2.099,1.002
		c0.173,0.023,0.345,0.035,0.515,0.035c1.876,0,3.514-1.39,3.773-3.298C16.103,7.685,15.838,6.684,15.222,5.874z"/>
	<path fill="#00CCCC" d="M8.614,11.234c-0.013-0.014-0.026-0.026-0.038-0.039L7.012,9.143C6.944,9.066,6.87,8.99,6.792,8.916
		C6.211,8.368,5.485,8.023,4.693,7.915c-0.076-0.01-0.151-0.017-0.227-0.023H4.351l0.577,0.755C4.94,8.659,4.954,8.673,4.966,8.686
		l1.563,2.053c0.068,0.076,0.142,0.152,0.22,0.225c0.581,0.549,1.306,0.896,2.099,1.003c0.075,0.01,0.15,0.018,0.227,0.023H9.19
		L8.614,11.234z"/>
</g>
</svg>
�PNG


IHDRKK����PLTEGpL��8��;��9��:��:��9��:�����;O��O��O��O��P��O��O�詟8O����������Ԫ8v�6f��t�M��]����,��k�zO��U������������{��2���9��:�V��T��T��T��T��R��U�/���4�e)�9�GU��.�E-�P{�T��S�Gsw]=U,��UYg�Jpu@\�Ny�p��Eh�mG�De�����HtRNS'@[���a�8����P[��������� ���9������'��Ga�����������������p "�HIDATx՗���8EV�A��a~4���ʶǾՕ^e�Yx�p �n_�R��$���~L�tƐN�C�	H�V%3!���F�\\WP{t��JӯT�X,���i�m�E�\�P-~ݕGWNj�O�__��W+@Ñh�\�m7�EqP?<<���-a��Ḃ������Hĩݥ<7���'ѵ���++�H?R�,#<'�S�<�.������a$��)�������V�8Wؾ�t�F��Ŏ#�BW�DBx�e���P4����?�8ځi�aZA���A&��hR$b�"h���!�<�D̘�"Y��T��>d?�d?�T�<��X��Bn�}�����Z.�1i�/T`Hh��s�	�*!cdDb["���%�ۧH*���%k�"EH�B_n����bC���܉�_��Zk����E"���?�u�9랂Q$<ݤ�M�� YT��#�yu}��5_����2��ۻk�F��kmD�b��B�&��hH�G�}�D�Y]'�@B��5r�g�t�����7���s�����6��`��ۧH��k��>E"`Hhߧ���G�>�\9�����o?x��_������O��n��~�R�?��l��r���G��g>$E2&�ܦZ�|^5�D���x��oS��(��H��~�O�q"���4�*h�q�d�S�}_����?�o��BS:�'o�"��.x[X�&��Ϩ�WP=�ȧnZY\���x�`����F�%9���5�si�����̗M�+^�)��H؃=���`�;�z^���k�Ψ���Lm��x|�ѥb�h���c2.M�*�����*�
����{-��IEND�B`�<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
<g>
	<path fill="#5E8CDA" d="M254.859,146.258l-68.508-68.516l-29.203,37.055l31.461,31.461c2.922,2.922,2.922,7.68,0,10.57
		l-9.086,9.086c0,0,6.148,9.195,6.414,9.75c1.422,2.836,1.742,9.492-2.273,12.547l-71.57,54.969c0,18.422-0.016,56.336,0,56.344
		c0.031,0,142.766-142.695,142.766-142.695C257.75,153.898,257.75,149.18,254.859,146.258z"/>
	<path fill="#093071" d="M95.703,154.891c-2.898-2.875-2.898-7.641,0-10.531l9.109-9.125l-6.219-8.938
		c-2.977-4.219-2.039-10.203,2.055-13.344l71.602-54.938l0.023-56.328l-0.023-0.031l-0.039-0.047L29.477,144.359
		c-2.922,2.891-2.922,7.656,0,10.539l68.5,68.508l29.219-37.055L95.703,154.891z"/>
</g>
<path fill="#5E8CDA" d="M208.297,35.727c1.092,0,2.147,0.654,2.624,1.624c0.804,1.658-0.217,3.189-1.236,4.495l-0.04,0.051
	l-62.727,79.64c-0.829,1.05-0.891,3.144-0.132,4.218c0.339,0.491,33.879,49.111,35.027,50.794c1.342,1.918,1.425,7.623-1.657,9.978
	L79.348,263.915c-1.305,0.993-2.252,1.535-3.492,1.546c-0.99-0.082-2.015-0.756-2.44-1.601c-0.783-1.612,0.143-3.176,1.253-4.616
	l62.727-79.607c0.83-1.114,0.908-3.081,0.152-4.231l-35.019-50.348c-2.308-3.283-1.585-7.943,1.611-10.39l100.851-77.445
	C206.396,36.146,207.321,35.727,208.297,35.727 M208.297,34.727c-1.211,0-2.336,0.492-3.914,1.703l-100.852,77.445
	c-3.625,2.773-4.445,8.023-1.82,11.758l35.016,50.344c0.508,0.773,0.438,2.297-0.133,3.063l-62.711,79.586
	c-0.813,1.055-2.523,3.289-1.367,5.672c0.594,1.18,1.945,2.07,3.305,2.164c1.555,0,2.695-0.656,4.133-1.75l100.813-77.391
	c3.508-2.68,3.523-8.977,1.867-11.344c-1.156-1.695-35.023-50.789-35.023-50.789c-0.508-0.719-0.461-2.328,0.094-3.031
	l62.727-79.641c0.805-1.031,2.555-3.203,1.391-5.602C211.172,35.594,209.766,34.727,208.297,34.727L208.297,34.727z"/>
<path fill="#F5CD21" d="M178.992,176.898c0.82,1.25,1.563,5.867-0.477,7.422L77.641,261.75c-0.836,0.664-1.391,0.984-1.617,0.961
	c-0.359,0.023-0.102-0.586,0.82-1.797l62.688-79.555c1.586-2.039,1.688-5.414,0.227-7.516l-34.977-50.367
	C104.781,123.477,178.188,175.664,178.992,176.898z"/>
<path fill="#FDDD75" d="M178.992,176.898l-34.461-49.555c-1.438-2.125-1.336-5.492,0.242-7.508l62.695-79.578
	c0.945-1.203,1.164-1.781,0.828-1.781c-0.227,0-0.805,0.281-1.625,0.945l-100.875,77.422c-2.016,1.555-2.477,4.547-1.016,6.633
	L178.992,176.898z"/>
</svg>

<?php
/**
 * Auto registration for LiteSpeed classes
 *
 * @since      	1.1.0
 */
defined( 'WPINC' ) || exit;

// Force define for object cache usage before plugin init
! defined( 'LSCWP_DIR' ) && define( 'LSCWP_DIR', __DIR__ . '/' ) ;// Full absolute path '/var/www/html/***/wp-content/plugins/litespeed-cache/' or MU

if ( ! function_exists( 'litespeed_autoload' ) ) {
	function litespeed_autoload( $cls ) {
		if ( strpos( $cls, '.' ) !== false ) {
			return;
		}

		if ( strpos( $cls, 'LiteSpeed' ) !== 0 ) {
			return;
		}

		$file = explode( '\\', $cls );
		array_shift( $file );
		$file = implode( '/', $file );
		$file = str_replace( '_', '-', strtolower( $file ) );

		if ( strpos( $file, 'lib/' ) === 0 || strpos( $file, 'cli/' ) === 0 || strpos( $file, 'thirdparty/' ) === 0 ) {
			$file = LSCWP_DIR . $file . '.cls.php';
		}
		else {
			$file = LSCWP_DIR . 'src/' . $file . '.cls.php';
		}

		if ( file_exists( $file ) ) {
			require_once $file;
		}
	}
}

spl_autoload_register( 'litespeed_autoload' );

<?php
/**
 * The Third Party integration with the WPLister plugin.
 *
 * @since        1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WPLister
{
	/**
	 * Detects if WooCommerce and WPLister are installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect()
	{
		if ( defined( 'WOOCOMMERCE_VERSION' ) && defined( 'WPLISTER_VERSION' ) ) {
			// User reported this will sync correctly.
			add_action( 'wplister_revise_inventory_status', array( WooCommerce::cls(), 'backend_purge' ) );
			// Added as a safety measure for WPLister Pro only.
			add_action( 'wplister_inventory_status_changed', array( WooCommerce::cls(), 'backend_purge' ) );
		}
	}

}
<?php
/**
 * The Third Party integration with FacetWP.
 *
 * @since		2.9.9
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Facetwp
{
	public static function detect()
	{
		if ( ! defined( 'FACETWP_VERSION' ) ) return;
 		/**
		 * For Facetwp, if the template is "wp", return the buffered HTML
		 * So marked as rest call to put is_json to ESI
		 */
		if (
			! empty( $_POST['action'] )
			&& ! empty( $_POST['data'] )
			&& ! empty( $_POST['data']['template'] )
			&& $_POST['data']['template'] === 'wp'
		) {
			add_filter( 'litespeed_esi_params', __CLASS__ . '::set_is_json' );
		}
	}

 	public static function set_is_json( $params )
	{
		$params[ 'is_json' ] = 1;
		return $params;
	}
}<?php
/**
 * The Third Party integration with the WP-Polls plugin.
 *
 * @since		1.0.7
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

// todo: need test

class Wp_Polls
{
	public static function detect()
	{
		add_filter( 'wp_polls_display_pollvote', __CLASS__ . '::set_control' );
		add_filter( 'wp_polls_display_pollresult', __CLASS__ . '::set_control' );
	}

	public static function set_control()
	{
		do_action( 'litespeed_control_set_nocache', 'wp polls' );
	}
}

<?php
/**
 * The Third Party integration with Caldera Forms.
 *
 * @since		3.2.2
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Caldera_Forms {
	public static function detect() {
		if ( ! defined( 'CFCORE_VER' ) ) return;

		// plugins/caldera-forms/classes/render/nonce.php -> class Caldera_Forms_Render_Nonce
		do_action( 'litespeed_nonce', 'caldera_forms_front_*' );
	}
}<?php
/**
 * The Third Party integration with the WP-PostRatings plugin.
 *
 * @since		1.1.1
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WP_PostRatings
{

	/**
	 * Detects if plugin is installed.
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function detect()
	{
		if ( defined( 'WP_POSTRATINGS_VERSION' ) ) {
			add_action( 'rate_post', __CLASS__ . '::flush', 10, 3 );
		}
	}

	/**
	 * Purges the cache
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function flush( $uid, $post_id, $post_ratings_score )
	{
		do_action( 'litespeed_purge_post', $post_id );
	}

}
<?php
/**
 * The Third Party integration with WPML.
 *
 * @since		2.9.4
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WPML
{

	public static function detect()
	{
		if ( ! defined( 'WPML_PLUGIN_BASENAME' ) ) return;

		add_filter( 'litespeed_internal_domains', __CLASS__ . '::append_domains' );
	}

	/**
	 * Take language domains as internal domains
	 */
	public static function append_domains( $domains )
	{
		$wpml_domains = apply_filters( 'wpml_setting', false, 'language_domains' );
		if ( $wpml_domains ) {
			$domains = array_merge( $domains, array_values( $wpml_domains ) );
		}

		return $domains;
	}

}<?php
/**
 * The Third Party integration with Wpdiscuz.
 *
 * @since		2.9.5
 * @package		LiteSpeed_Cache
 * @subpackage	LiteSpeed_Cache/thirdparty
 * @author		LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty ;

defined( 'WPINC' ) || exit ;

use \LiteSpeed\API ;

class Wpdiscuz
{
	public static function detect()
	{
		if ( ! defined( 'WPDISCUZ_DS' ) ) return ;

		self::check_commenter() ;
		add_action( 'wpdiscuz_add_comment', __CLASS__ . '::add_comment' ) ;

	}

	public static function add_comment()
	{
		API::vary_append_commenter() ;
	}

	public static function check_commenter()
	{
		$commentor = wp_get_current_commenter() ;

		if ( strlen( $commentor[ 'comment_author' ] ) > 0 ) {
			add_filter( 'litespeed_vary_check_commenter_pending', '__return_false' ) ;
		}
	}
}
<?php
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\API;
use \LiteSpeed\Doc;
use \LiteSpeed\Admin_Display;
use \LiteSpeed\Lang;
use \LiteSpeed\Base;
?>

<div data-litespeed-layout='woocommerce'>

<h3 class="litespeed-title-short">
	<?php echo __( 'WooCommerce Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#woocommerce-tab' ); ?>
</h3>

<div class="litespeed-callout notice notice-warning inline">
	<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php echo __( 'After verifying that the cache works in general, please test the cart.', 'litespeed-cache' ); ?></p>
	<p><?php echo sprintf( __( 'To test the cart, visit the <a %s>FAQ</a>.', 'litespeed-cache' ), 'href="https://docs.litespeedtech.com/lscache/lscwp/installation/#non-cacheable-pages" target="_blank"' ); ?></p>
	<p><?php echo __( 'By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.', 'litespeed-cache' ); ?></p>
</div>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = self::O_ESI_CACHE_CART; ?>
			<?php echo __( 'Use ESI for Cart', 'litespeed-cache' ); ?>
		</th>
		<td>
			<?php do_action( 'litespeed_build_switch' , $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_ESI ) . '</code>' ); ?>
			</div>
		</td>
	</tr>
	<tr>
		<th>
			<?php $id = self::O_UPDATE_INTERVAL; ?>
			<?php echo __( 'Product Update Interval', 'litespeed-cache' ); ?>
		</th>
		<td>
			<?php
			$options = array(
				self::O_PQS_CS	=> __( 'Purge product on changes to the quantity or stock status.', 'litespeed-cache' ) . ' ' . __( 'Purge categories only when stock status changes.', 'litespeed-cache' ),
				self::O_PS_CS	=> __( 'Purge product and categories only when the stock status changes.', 'litespeed-cache' ),
				self::O_PS_CN	=> __( 'Purge product only when the stock status changes.', 'litespeed-cache' ) . ' ' . __( 'Do not purge categories on changes to the quantity or stock status.', 'litespeed-cache' ),
				self::O_PQS_CQS	=> __( 'Always purge both product and categories on changes to the quantity or stock status.', 'litespeed-cache' ),
			);
			$conf = (int) apply_filters( 'litespeed_conf', $id );
			foreach ( $options as $k => $v ) :
				$checked = (int) $k === $conf ? ' checked ' : '';
			?>
				<?php do_action( 'litespeed_setting_enroll', $id ); ?>
				<div class='litespeed-radio-row'>
					<input type='radio' autocomplete='off' name='<?php echo $id; ?>' id='conf_<?php echo $id; ?>_<?php echo $k; ?>' value='<?php echo $k; ?>' <?php echo $checked; ?> />
					<label for='conf_<?php echo $id; ?>_<?php echo $k; ?>'><?php echo $v; ?></label>
				</div>
			<?php endforeach; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Determines how changes in product quantity and product stock status affect product pages and their associated category pages.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = self::O_SHOP_FRONT_TTL; ?>
			<?php echo __( 'Use Front Page TTL for the Shop Page', 'litespeed-cache' ); ?>
		</th>
		<td>
			<?php do_action( 'litespeed_build_switch', $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Checking this option will force the shop page to use the front page TTL setting.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.', 'litespeed-cache' ), 'https://www.EXAMPLE.com', 'https://www.EXAMPLE.com/shop' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = self::O_WOO_CACHE_CART; ?>
			<?php echo __( 'Privately Cache Cart', 'litespeed-cache' ); ?>
		</th>
		<td>
			<?php do_action( 'litespeed_build_switch', $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Privately cache cart when not empty.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

</div><?php
/**
 * The Third Party integration with Gravity Forms.
 *
 * @since       4.1.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Gravity_Forms
{
    /**
     * Check if GF is enabled and disable LSCWP on gf-download and gf-signature URI
     *
     * @since 4.1.0 #900899 #827184
     */
    public static function preload()
    {
        if ( class_exists( 'GFCommon' ) ) {
            if (  isset( $_GET['gf-download'] ) || isset( $_GET['gf-signature'] ) ) {
               do_action( 'litespeed_disable_all', 'Stopped for Gravity Form' );
            }
        }
    }
}
<?php
/**
 * The Third Party integration with WooCommerce PayPal Checkout Gateway
 * @ref https://wordpress.org/plugins/woocommerce-gateway-paypal-express-checkout/
 *
 * @since		3.0
 */
namespace LiteSpeed\Thirdparty;
defined( 'WPINC' ) || exit;

class Woo_Paypal
{
	public static function detect()
	{
		if ( ! defined( 'WC_GATEWAY_PPEC_VERSION' ) ) return;

		do_action( 'litespeed_nonce', '_wc_ppec_update_shipping_costs_nonce private' );
		do_action( 'litespeed_nonce', '_wc_ppec_start_checkout_nonce private' );
		do_action( 'litespeed_nonce', '_wc_ppec_generate_cart_nonce private' );
	}
}
<?php
/**
 * The Third Party integration with the bbPress plugin.
 *
 * @since		2.9.8.8
 */
namespace LiteSpeed\Thirdparty;
defined( 'WPINC' ) || exit;

use \LiteSpeed\Debug2;

class Elementor
{
	public static function preload()
	{
		if ( ! defined( 'ELEMENTOR_VERSION' ) ) {
			return;
		}

		if ( ! is_admin() ) {
//		    add_action( 'init', __CLASS__ . '::disable_litespeed_esi', 4 );	// temporarily comment out this line for backward compatibility
		}

		if ( isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] === 'elementor' ) {
			do_action( 'litespeed_disable_all', 'elementor edit mode' );
		}

		if ( ! empty( $_SERVER[ 'HTTP_REFERER' ] ) && strpos( $_SERVER[ 'HTTP_REFERER' ], 'action=elementor' ) ) {
			if ( ! empty( $_REQUEST['actions'] ) ) {
				$json = json_decode( stripslashes( $_REQUEST['actions'] ), true );
				// Debug2::debug( '3rd Elementor', $json );
				if ( ! empty( $json[ 'save_builder' ][ 'action' ] ) && $json[ 'save_builder' ][ 'action' ] == 'save_builder' && ! empty( $json[ 'save_builder' ][ 'data' ][ 'status' ] ) && $json[ 'save_builder' ][ 'data' ][ 'status' ] == 'publish' ) {
					return; // Save post, don't disable all in case we will allow fire crawler right away after purged
				}
			}
			do_action( 'litespeed_disable_all', 'elementor edit mode in HTTP_REFERER' );
		}
	}

	public static function disable_litespeed_esi()
	{
		define( 'LITESPEED_ESI_OFF', true );
	}
}
<?php
/**
 * The Third Party integration with the Avada plugin.
 *
 * @since		1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Avada
{
	/**
	 * Detects if Avada is installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect()
	{
		if ( ! defined( 'AVADA_VERSION' ) ) {
			return;
		}

		add_action( 'update_option_avada_dynamic_css_posts', __CLASS__ . '::flush' );
		add_action( 'update_option_fusion_options', __CLASS__ . '::flush' );
	}

	/**
	 * Purges the cache
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function flush()
	{
		do_action( 'litespeed_purge_all', '3rd avada' );
	}

}

<?php
/**
 * The Third Party integration with AMP plugin.
 *
 * @since		2.9.8.6
 * @package		LiteSpeed_Cache
 * @subpackage	LiteSpeed_Cache/thirdparty
 * @author		LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty ;

defined( 'WPINC' ) || exit ;

use \LiteSpeed\API ;

class AMP {
	/**
	 * @since 4.2
	 */
	private static function _maybe_amp( $amp_function ) {
		if ( is_admin() ) {
			return;
		}
		if ( ! isset( $_GET[ 'amp' ] ) && ( ! function_exists( $amp_function ) || ! $amp_function() ) ) {
			return;
		}

		do_action( 'litespeed_debug', '[3rd] ❌ AMP disabled page optm/lazy' );

		! defined( 'LITESPEED_NO_PAGEOPTM' ) && define( 'LITESPEED_NO_PAGEOPTM', true );
		! defined( 'LITESPEED_NO_LAZY' ) && define( 'LITESPEED_NO_LAZY', true );
		! defined( 'LITESPEED_NO_OPTM' ) && define( 'LITESPEED_NO_OPTM', true );
		// ! defined( 'LITESPEED_GUEST' ) && define( 'LITESPEED_GUEST', false );
	}

	/**
	 * ampforwp_is_amp_endpoint() from Accelerated Mobile Pages
	 *
	 * @since 4.2
	 */
	public static function maybe_acc_mob_pages() {
		self::_maybe_amp( 'ampforwp_is_amp_endpoint' );
	}

	/**
	 * Google AMP fix
	 *
	 * @since 4.2.0.1
	 */
	public static function maybe_google_amp() {
		self::_maybe_amp( 'amp_is_request' );
	}

	/**
	 * CSS async will affect AMP result and
	 * Lazyload will inject JS library which AMP not allowed
	 * need to force set false before load
	 *
	 * @since 2.9.8.6
	 * @access public
	 */
	public static function preload() {
		add_action( 'wp', __CLASS__ . '::maybe_acc_mob_pages' );
		add_action( 'wp', __CLASS__ . '::maybe_google_amp' );

		// amp_is_request() from AMP
		// self::maybe_amp( 'amp_is_request' );
		// add_filter( 'litespeed_can_optm', '__return_false' );
		// do_action( 'litespeed_conf_force', API::O_OPTM_CSS_ASYNC, false );
		// do_action( 'litespeed_conf_force', API::O_MEDIA_LAZY, false );
		// do_action( 'litespeed_conf_force', API::O_MEDIA_IFRAME_LAZY, false );
	}
}
<?php
/**
 * The Third Party integration with the YITH WooCommerce Wishlist plugin.
 *
 * @since		1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\Tag;
use \LiteSpeed\Conf;
use \LiteSpeed\Base;

class Yith_Wishlist {
	const ESI_PARAM_POSTID = 'yith_pid';
	private static $_post_id;


	/**
	 * Detects if YITH WooCommerce Wishlist and WooCommerce are installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect() {
		if ( ! defined( 'WOOCOMMERCE_VERSION' ) || ! defined( 'YITH_WCWL' ) ) {
			return;
		}
		if ( apply_filters( 'litespeed_esi_status', false ) ) {
			add_action( 'litespeed_tpl_normal', __CLASS__ . '::is_not_esi' );
			add_action( 'litespeed_esi_load-yith_wcwl_add', __CLASS__ . '::load_add_to_wishlist' );
			add_filter( 'litespeed_esi_inline-yith_wcwl_add', __CLASS__ . '::inline_add_to_wishlist', 20, 2 );

			// hook to add/delete wishlist
			add_action( 'yith_wcwl_added_to_wishlist', __CLASS__ . '::purge' );
			add_action( 'yith_wcwl_removed_from_wishlist', __CLASS__ . '::purge' );
		}
	}

	/**
	 * Purge ESI yith cache when add/remove items
	 *
	 * @since 1.2.0
	 * @access public
	 */
	public static function purge() {
		do_action( 'litespeed_purge_esi', 'yith_wcwl_add' );
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 *
	 * If the request is not an ESI request, hook to the add to wishlist button
	 * filter to replace it as an esi block.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function is_not_esi() {
		add_filter( 'yith_wcwl_add_to_wishlist_params', __CLASS__ . '::add_to_wishlist_params', 999, 2 );

		add_filter( 'yith_wcwl_add_to_wishlisth_button_html', __CLASS__ . '::sub_add_to_wishlist', 999 );
	}

	/**
	 * Store the post id for later shortcode usage
	 *
	 * @since  3.4.1
	 */
	public static function add_to_wishlist_params( $defaults, $atts ) {
		self::$_post_id = ! empty( $atts[ 'product_id' ] ) ? $atts[ 'product_id' ] : $defaults[ 'product_id' ];

		return $defaults;
	}

	/**
	 * Hooked to the yith_wcwl_add_to_wishlisth_button_html filter.
	 *
	 * The add to wishlist button displays a different output when the item is already in the wishlist/cart.
	 * For this reason, the button must be an ESI block. This function replaces the normal html with the ESI block.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function sub_add_to_wishlist( $template ) {
		$params = array(
			self::ESI_PARAM_POSTID => self::$_post_id,
		);

		$inline_tags = array(
			'',
			rtrim( Tag::TYPE_ESI, '.' ),
			Tag::TYPE_ESI . 'yith_wcwl_add',
		);
		$inline_tags = implode( ',', array_map( function($val){ return 'public:' . LSWCP_TAG_PREFIX . '_' . $val; }, $inline_tags ) );
		$inline_tags .= ',' . LSWCP_TAG_PREFIX . '_tag_priv';

		do_action( 'litespeed_esi_combine', 'yith_wcwl_add' );

		$inline_params = array(
			'val'	=> $template,
			'tag'	=> $inline_tags,
			'control' => 'private,no-vary,max-age=' . Conf::cls()->conf( Base::O_CACHE_TTL_PRIV ),
		);

		return apply_filters( 'litespeed_esi_url', 'yith_wcwl_add', 'YITH ADD TO WISHLIST', $params, 'private,no-vary', false, false, false, $inline_params );
	}

	/**
	 * Hooked to the litespeed_esi_load-yith_wcwl_add action.
	 *
	 * This will load the add to wishlist button html for output.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function load_add_to_wishlist( $params ) {
		// global $post, $wp_query;
		// $post = get_post( $params[ self::ESI_PARAM_POSTID ] );
		// $wp_query->setup_postdata( $post );
		echo \YITH_WCWL_Shortcode::add_to_wishlist( array( 'product_id' => $params[ self::ESI_PARAM_POSTID ] ) );
		do_action( 'litespeed_control_set_private', 'yith wishlist' );
		do_action( 'litespeed_vary_no' );
	}

	/**
	 * Generate ESI inline value
	 *
	 * @since  3.4.2
	 */
	public static function inline_add_to_wishlist( $res, $params ) {
		if ( ! is_array( $res ) ) {
			$res = array();
		}

		$pid = $params[ self::ESI_PARAM_POSTID ];

		$res[ 'val' ] = \YITH_WCWL_Shortcode::add_to_wishlist( array( 'product_id' => $pid ) );

		$res[ 'control' ] = 'private,no-vary,max-age=' . Conf::cls()->conf( Base::O_CACHE_TTL_PRIV );

		$inline_tags = array(
			'',
			rtrim( Tag::TYPE_ESI, '.' ),
			Tag::TYPE_ESI . 'yith_wcwl_add',
		);
		$inline_tags = implode( ',', array_map( function( $val ) { return 'public:' . LSWCP_TAG_PREFIX . '_' . $val; }, $inline_tags ) );
		$inline_tags .= ',' . LSWCP_TAG_PREFIX . '_tag_priv';

		$res[ 'tag' ] = $inline_tags;

		return $res;
	}

}
<?php
/**
 * The Third Party integration with the Perfmatters plugin.
 *
 * @since		4.4.5
 */
namespace LiteSpeed\Thirdparty;
defined( 'WPINC' ) || exit;

class Perfmatters {
	public static function preload() {
		if ( ! defined( 'PERFMATTERS_VERSION' ) ) return;

		if ( is_admin() ) return;

		if ( has_action( 'shutdown','perfmatters_script_manager' ) !== false ) {
			add_action( 'init', __CLASS__ . '::disable_litespeed_esi', 4 );
		}
	}

	public static function disable_litespeed_esi() {
		defined( 'LITESPEED_ESI_OFF' ) || define( 'LITESPEED_ESI_OFF', true );
	}
}
<?php
/**
 * The Third Party integration with the Beaver Builder plugin.
 *
 * @since		3.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Beaver_Builder
{
	/**
	 * Detects if Beaver_Builder is active.
	 *
	 *@since 3.0
	 *@access public
	 */
	public static function detect()
	{
		if ( ! defined( 'FL_BUILDER_VERSION' ) ) {
			return;
		}

		/**
		 * Purge All hooks
		 * @see  beaver-builder/extensions/fi-builder-cache-helper/classes/class-fi-builder-cache-helper.php
		 */
		$actions = array(
			'fl_builder_cache_cleared',
			'fl_builder_after_save_layout',
			'fl_builder_after_save_user_template',
			'upgrader_process_complete',
		);

		foreach ( $actions as $val ) {
			add_action( $val, __CLASS__ . '::purge' );
		}
	}

	/**
	 * Purges the cache when Beaver_Builder's cache is purged.
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge()
	{
		do_action( 'litespeed_purge_all', '3rd Beaver_Builder' );
	}
}
<?php
/**
 * The Third Party integration with the Autoptimize plugin.
 *
 * @since		1.0.12
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Autoptimize
{
	/**
	 * Detects if Autoptimize is active.
	 *
	 *@since 1.0.12
	 *@access public
	 */
	public static function detect()
	{
		if ( defined( 'AUTOPTIMIZE_PLUGIN_DIR' ) ) {
			add_action( 'litespeed_purge_finalize', __CLASS__ . '::purge' );
		}
	}

	/**
	 * Purges the cache when Autoptimize's cache is purged.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public static function purge()
	{
		if ( defined( 'AUTOPTIMIZE_PURGE' ) || has_action( 'shutdown', 'autoptimize_do_cachepurged_action', 11 ) ) {
			do_action( 'litespeed_purge_all', '3rd Autoptimize' );
		}
	}
}
<?php
/**
 * The Third Party integration with the WPTouch Mobile plugin.
 *
 * @since		1.0.7
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WpTouch
{
	/**
	 * Detects if WPTouch is installed.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function detect()
	{
		global $wptouch_pro;
		if ( isset( $wptouch_pro ) ) {
			add_action( 'litespeed_control_finalize', __CLASS__ . '::set_control' );
		}
	}

	/**
	 * Check if the device is mobile. If so, set mobile.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function set_control()
	{
		global $wptouch_pro;
		if ( $wptouch_pro->is_mobile_device ) {
			add_filter( 'litespeed_is_mobile', '__return_true' );
		}
	}

}

<?php
/**
 * The Third Party integration with the WooCommerce plugin.
 *
 * @since         1.0.5
 * @since  1.6.6 Added function_exists check for compatibility
 * @package       LiteSpeed_Cache
 * @subpackage    LiteSpeed_Cache/thirdparty
 * @author        LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\API;
use \LiteSpeed\Base;

class WooCommerce extends Base {
	const O_CACHE_TTL_FRONTPAGE = Base::O_CACHE_TTL_FRONTPAGE;

	const CACHETAG_SHOP = 'WC_S' ;
	const CACHETAG_TERM = 'WC_T.' ;
	const O_ESI_CACHE_CART = 'wc_esi_cache_cart';
	const O_UPDATE_INTERVAL = 'wc_update_interval' ;
	const O_SHOP_FRONT_TTL = 'wc_shop_use_front_ttl' ;
	const O_WOO_CACHE_CART = 'woo_cache_cart' ;
	const O_PQS_CS = 0 ; // flush product on quantity + stock change, categories on stock change
	const O_PS_CS = 1 ; // flush product and categories on stock change
	const O_PS_CN = 2 ; // flush product on stock change, categories no flush
	const O_PQS_CQS = 3 ; // flush product and categories on quantity + stock change

	const ESI_PARAM_ARGS = 'wc_args' ;
	const ESI_PARAM_POSTID = 'wc_post_id' ;
	const ESI_PARAM_NAME = 'wc_name' ;
	const ESI_PARAM_PATH = 'wc_path' ;
	const ESI_PARAM_LOCATED = 'wc_located' ;

	private $cache_cart ;
	private $esi_enabled ;

	/**
	 * Detects if WooCommerce is installed.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public static function detect()
	{
		if ( ! defined( 'WOOCOMMERCE_VERSION' ) ) {
			return ;
		}

		self::cls()->add_hooks() ;

	}

	/**
	 * Add hooks to woo actions
	 *
	 * @since  1.6.3
	 * @access public
	 */
	public function add_hooks()
	{
		$this->_option_append() ;

		$this->cache_cart = apply_filters( 'litespeed_conf', self::O_WOO_CACHE_CART ) ;
		$this->esi_enabled = apply_filters( 'litespeed_esi_status', false );

		add_action( 'litespeed_control_finalize', array( $this, 'set_control' ) );
		add_action( 'litespeed_tag_finalize', array( $this, 'set_tag' ) );

		// Purging a product on stock change should only occur during product purchase. This function will add the purging callback when an order is complete.
		add_action( 'woocommerce_product_set_stock', array( $this, 'purge_product' ) ) ;
		add_action( 'woocommerce_variation_set_stock', array( $this, 'purge_product' ) ) ; // #984479 Update variations stock

		add_action( 'comment_post', array( $this, 'add_review' ), 10, 3 ) ;

		if ( $this->esi_enabled ) {
			if ( function_exists( 'is_shop' ) && ! is_shop() ) {
				add_action( 'litespeed_tpl_normal', array( $this, 'set_block_template' ) );
				// No need for add-to-cart button
				// add_action( 'litespeed_esi_load-wc-add-to-cart-form', array( $this, 'load_add_to_cart_form_block' ) ) ;

				add_action( 'litespeed_esi_load-storefront-cart-header', array( $this, 'load_cart_header' ) );
				add_action( 'litespeed_esi_load-widget', array( $this, 'register_post_view' ) );
			}

			if ( function_exists( 'is_product' ) && is_product() ) {
				add_filter( 'litespeed_esi_params', array( $this, 'add_post_id' ), 10, 2 );
			}

			/**
			 * Only when cart is not empty, give it an ESI with private cache
			 * Call when template_include to make sure woo cart is initialized
			 * @since  1.7.2
			 */
			if ( apply_filters( 'litespeed_conf', self::O_ESI_CACHE_CART ) ) {
				add_action( 'template_include', array( $this, 'check_if_need_esi' ) );
				add_filter( 'litespeed_vary', array( $this, 'vary_maintain' ) );
			}

		}

		if ( is_admin() ) {
			add_action('litespeed_api_purge_post', array( $this, 'backend_purge' ) ) ;//todo
			add_action( 'delete_term_relationships', array( $this, 'delete_rel' ), 10, 2 ) ;
			add_action( 'litespeed_settings_tab', array( $this, 'settings_add_tab' ) );
			add_action( 'litespeed_settings_content', array( $this, 'settings_add_content' ) );
			add_filter( 'litespeed_widget_default_options', array( $this, 'wc_widget_default' ), 10, 2 );
		}

		// Purge cart if is ESI / Purge private if not enabled ESI
		if ( $this->cache_cart ) {
			$hooks_to_purge = array(
				'woocommerce_add_to_cart', 'woocommerce_ajax_added_to_cart',
				'woocommerce_remove_cart_item',
				'woocommerce_restore_cart_item',
				'woocommerce_after_cart_item_quantity_update',
				'woocommerce_applied_coupon', 'woocommerce_removed_coupon',
				'woocommerce_checkout_order_processed',
			) ;
			foreach ( $hooks_to_purge as $v ) {
				if ( $this->esi_enabled ) {
					add_action( $v, array( $this, 'purge_esi' ) ) ;
				}
				else {
					add_action( $v, array( $this, 'purge_private_all' ) ) ;
				}
			}
		}

	}

	/**
	 * Purge esi private tag
	 *
	 * @since  1.6.3
	 * @access public
	 */
	public function purge_esi()
	{
		do_action( 'litespeed_debug', '3rd woo purge ESI in action: ' . current_filter() ) ;
		do_action( 'litespeed_purge_private_esi', 'storefront-cart-header' );

	}

	/**
	 * Purge private all
	 *
	 * @since  3.0
	 * @access public
	 */
	public function purge_private_all()
	{
		do_action( 'litespeed_purge_private_all' );
	}

	/**
	 * Check if need to give an ESI block for cart
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public function check_if_need_esi( $template )
	{
		if (  $this->vary_needed() ) {
			do_action( 'litespeed_debug', 'API: 3rd woo added ESI' );
			add_action( 'litespeed_tpl_normal', array( $this, 'set_swap_header_cart' ) );
		}

		return $template;

	}

	/**
	 * Keep vary on if cart is not empty
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public function vary_maintain( $vary ) {
		if ( $this->vary_needed() ) {
			do_action( 'litespeed_debug', 'API: 3rd woo added vary due to cart not empty' );
			$vary[ 'woo_cart' ] = 1;
		}

		return $vary;
	}

	/**
	 * Check if vary need to be on based on cart
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function vary_needed()
	{
		if ( ! function_exists( 'WC' ) ) {
			return false ;
		}

		$woocom = WC() ;
		if ( ! $woocom ) {
			return false ;
		}

		if ( is_null( $woocom->cart ) ) {
			return false ;
		}
		return $woocom->cart->get_cart_contents_count() > 0 ;
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 * If the request is not an esi request, I want to set my own hook in woocommerce_before_template_part to see if it's something I can ESI.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function set_block_template()
	{
		add_action('woocommerce_before_template_part', array( $this, 'block_template' ), 999, 4) ;
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 * If the request is not an esi request, I want to set my own hook
	 * in storefront_header to see if it's something I can ESI.
	 *
	 * Will remove storefront_header_cart in storefront_header.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function set_swap_header_cart()
	{
		$priority = has_action('storefront_header', 'storefront_header_cart') ;
		if ( $priority !== false ) {
			remove_action('storefront_header', 'storefront_header_cart', $priority) ;
			add_action('storefront_header', array( $this, 'esi_cart_header' ), $priority) ;
		}
	}

	/**
	 * Hooked to the woocommerce_before_template_part action.
	 * Checks if the template contains 'add-to-cart'. If so, and if I want to ESI the request, block it and build my esi code block.
	 *
	 * The function parameters will be passed to the esi request.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function block_template($template_name, $template_path, $located, $args)
	{
		if ( strpos($template_name, 'add-to-cart') === false ) {
			if ( strpos($template_name, 'related.php') !== false ) {
				remove_action('woocommerce_before_template_part', array( $this, 'block_template' ), 999) ;
				add_filter('woocommerce_related_products_args', array( $this, 'add_related_tags' ) ) ;
				add_action('woocommerce_after_template_part', array( $this, 'end_template' ), 999) ;
			}
			return ;
		}
		return ;




							// todo: wny not use?

		global $post ;
		$params = array(
			self::ESI_PARAM_ARGS => $args,
			self::ESI_PARAM_NAME => $template_name,
			self::ESI_PARAM_POSTID => $post->ID,
			self::ESI_PARAM_PATH => $template_path,
			self::ESI_PARAM_LOCATED => $located
		) ;
		add_action('woocommerce_after_add_to_cart_form', array( $this, 'end_form' ) ) ;
		add_action('woocommerce_after_template_part', array( $this, 'end_form' ), 999) ;
		echo apply_filters( 'litespeed_esi_url', 'wc-add-to-cart-form', 'WC_CART_FORM', $params );
		echo apply_filters( 'litespeed_clean_wrapper_begin', '' );
	}

	/**
	 * Hooked to the woocommerce_after_add_to_cart_form action.
	 * If this is hit first, clean the buffer and remove this function and
	 * end_template.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function end_form($template_name = '')
	{
		if ( ! empty($template_name) && strpos($template_name, 'add-to-cart') === false ) {
			return ;
		}
		echo apply_filters( 'litespeed_clean_wrapper_end', '' );
		remove_action('woocommerce_after_add_to_cart_form', array( $this, 'end_form' ) ) ;
		remove_action('woocommerce_after_template_part', array( $this, 'end_form' ), 999) ;
	}

	/**
	 * If related products are loaded, need to add the extra product ids.
	 *
	 * The page will be purged if any of the products are changed.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param array $args The arguments used to build the related products section.
	 * @return array The unchanged arguments.
	 */
	public function add_related_tags($args)
	{
		if ( empty($args) || ! isset($args['post__in']) ) {
			return $args ;
		}
		$related_posts = $args['post__in'] ;
		foreach ( $related_posts as $related ) {
			do_action( 'litespeed_tag_add_post', $related );
		}
		return $args ;
	}

	/**
	 * Hooked to the woocommerce_after_template_part action.
	 * If the template contains 'add-to-cart', clean the buffer.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param type $template_name
	 */
	public function end_template($template_name)
	{
		if ( strpos($template_name, 'related.php') !== false ) {
			remove_action('woocommerce_after_template_part', array( $this, 'end_template' ), 999) ;
			$this->set_block_template() ;
		}
	}

	/**
	 * Hooked to the storefront_header header.
	 * If I want to ESI the request, block it and build my esi code block.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function esi_cart_header()
	{
		echo apply_filters( 'litespeed_esi_url', 'storefront-cart-header', 'STOREFRONT_CART_HEADER' );
	}

	/**
	 * Hooked to the litespeed_esi_load-storefront-cart-header action.
	 * Generates the cart header for esi display.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function load_cart_header()
	{
		storefront_header_cart();
	}

	/**
	 * Hooked to the litespeed_esi_load-wc-add-to-cart-form action.
	 * Parses the esi input parameters and generates the add to cart form
	 * for esi display.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @global type $post
	 * @global type $wp_query
	 * @param type $params
	 */
	public function load_add_to_cart_form_block($params)
	{
		global $post, $wp_query ;
		$post = get_post($params[self::ESI_PARAM_POSTID]) ;
		$wp_query->setup_postdata($post) ;
		function_exists( 'wc_get_template' ) && wc_get_template($params[self::ESI_PARAM_NAME], $params[self::ESI_PARAM_ARGS], $params[self::ESI_PARAM_PATH]) ;
	}

	/**
	 * Update woocommerce when someone visits a product and has the
	 * recently viewed products widget.
	 *
	 * Currently, this widget should not be cached.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param array $params Widget parameter array
	 */
	public function register_post_view($params)
	{
		if ( $params[API::PARAM_NAME] !== 'WC_Widget_Recently_Viewed' ) {
			return ;
		}
		if ( ! isset($params[self::ESI_PARAM_POSTID]) ) {
			return ;
		}
		$id = $params[self::ESI_PARAM_POSTID] ;
		$esi_post = get_post($id) ;
		$product = function_exists( 'wc_get_product' ) ? wc_get_product($esi_post) : false ;

		if ( empty($product) ) {
			return ;
		}

		global $post ;
		$post = $esi_post ;
		function_exists( 'wc_track_product_view' ) && wc_track_product_view() ;
	}

	/**
	 * Adds the post id to the widget ESI parameters for the Recently Viewed widget.
	 *
	 * This is needed in the ESI request to update the cookie properly.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function add_post_id( $params, $block_id )
	{
		if ( $block_id == 'widget' ) {
			if ( $params[ API::PARAM_NAME ] == 'WC_Widget_Recently_Viewed' ) {
				$params[ self::ESI_PARAM_POSTID ] = get_the_ID();
			}
		}

		return $params;
	}

	/**
	 * Hooked to the litespeed_widget_default_options filter.
	 *
	 * The recently viewed widget must be esi to function properly.
	 * This function will set it to enable and no cache by default.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function wc_widget_default( $options, $widget )
	{
		if ( ! is_array( $options ) ) {
			return $options;
		}
		$widget_name = get_class( $widget ) ;
		if ( $widget_name === 'WC_Widget_Recently_Viewed' ) {
			$options[ API::WIDGET_O_ESIENABLE ] = API::VAL_ON2;
			$options[ API::WIDGET_O_TTL ] = 0;
		}
		elseif ( $widget_name === 'WC_Widget_Recent_Reviews' ) {
			$options[ API::WIDGET_O_ESIENABLE ] = API::VAL_ON;
			$options[ API::WIDGET_O_TTL ] = 86400;
		}
		return $options;
	}

	/**
	 * Set WooCommerce cache tags based on page type.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function set_tag()
	{
		$id = get_the_ID() ;
		if ( $id === false ) {
			return ;
		}

		// Check if product has a cache ttl limit or not
		$sale_from = get_post_meta( $id, '_sale_price_dates_from', true ) ;
		$sale_to = get_post_meta( $id, '_sale_price_dates_to', true ) ;
		$now = current_time( 'timestamp' ) ;
		$ttl = false ;
		if ( $sale_from && $now < $sale_from ) {
			$ttl = $sale_from - $now ;
		}
		elseif ( $sale_to && $now < $sale_to ) {
			$ttl = $sale_to - $now ;
		}
		if ( $ttl && $ttl < apply_filters( 'litespeed_control_ttl', 0 ) ) {
			do_action( 'litespeed_control_set_ttl', $ttl, "WooCommerce set scheduled TTL to $ttl" ) ;
		}

		if ( function_exists( 'is_shop' ) && is_shop() ) {
			do_action( 'litespeed_tag_add', self::CACHETAG_SHOP );
		}
		if ( function_exists( 'is_product_taxonomy' ) && ! is_product_taxonomy() ) {
			return ;
		}
		if ( isset($GLOBALS['product_cat']) && is_string( $GLOBALS['product_cat'] ) ) { // todo: need to check previous woo version to find if its from old woo versions or not!
			$term = get_term_by('slug', $GLOBALS['product_cat'], 'product_cat') ;
		}
		elseif ( isset($GLOBALS['product_tag']) && is_string( $GLOBALS['product_tag'] ) ) {
			$term = get_term_by('slug', $GLOBALS['product_tag'], 'product_tag') ;
		}
		else {
			$term = false ;
		}

		if ( $term === false ) {
			return ;
		}
		while ( isset($term) ) {
			do_action( 'litespeed_tag_add', self::CACHETAG_TERM . $term->term_id );
			if ( $term->parent == 0 ) {
				break ;
			}
			$term = get_term($term->parent) ;
		}
	}

	/**
	 * Check if the page is cacheable according to WooCommerce.
	 *
	 * @since 1.0.5
	 * @since 1.6.3 Removed static
	 * @access public
     * @param string $esi_id 		The ESI block id if a request is an ESI request.
	 * @return boolean           	True if cacheable, false if not.
	 */
	public function set_control($esi_id)
	{
		if ( ! apply_filters( 'litespeed_control_cacheable', false ) ) {
			return;
		}

		/**
		 * Avoid possible 500 issue
		 * @since 1.6.2.1
		 */
		if ( ! function_exists( 'WC' ) ) {
			return ;
		}

		$woocom = WC() ;
		if ( ! isset($woocom) ) {
			return ;
		}

		// Set TTL
		if ( function_exists( 'is_shop' ) && is_shop() ) {
			if ( apply_filters( 'litespeed_conf', self::O_SHOP_FRONT_TTL ) ) {
				do_action( 'litespeed_control_set_ttl', apply_filters( 'litespeed_conf', self::O_CACHE_TTL_FRONTPAGE ) );
			}
		}

		// For later versions, DONOTCACHEPAGE should be set.
		// No need to check uri/qs.
		if ( version_compare($woocom->version, '1.4.2', '>=') ) {
			if ( version_compare( $woocom->version, '3.2.0', '<' ) && defined('DONOTCACHEPAGE') && DONOTCACHEPAGE ) {
				do_action( 'litespeed_control_set_nocache', '3rd party woocommerce not cache by constant' );
				return ;
			}
			elseif ( version_compare($woocom->version, '2.1.0', '>=') ) {
				$err = false ;

				if ( ! function_exists( 'wc_get_page_id' ) ) {
					return ;
				}
				/**
				 * From woo/inc/class-wc-cache-helper.php:prevent_caching()
				 * @since  1.4
				 */
				$page_ids = array_filter( array( wc_get_page_id( 'cart' ), wc_get_page_id( 'checkout' ), wc_get_page_id( 'myaccount' ) ) );
				if ( isset( $_GET['download_file'] ) || isset( $_GET['add-to-cart'] ) || is_page( $page_ids ) ) {
					$err = 'woo non cacheable pages' ;
				}
				elseif ( is_null($woocom->cart) ) {
					$err = 'null cart' ;
				}
				elseif ( ! $this->esi_enabled && $woocom->cart->get_cart_contents_count() !== 0 ) {
					if ( $this->cache_cart ) {
						do_action( 'litespeed_control_set_private', 'cache cart' );
						/**
						 * no rewrite rule to set no vary, so can't set no_vary otherwise it will always miss as can't match vary
						 * @since 1.6.6.1
						 */
						// do_action( 'litespeed_vary_no' );
						do_action( 'litespeed_tag_add_private_esi', 'storefront-cart-header' );
					}
					else {
						$err = 'cart is not empty' ;
					}
				}
				elseif ( $esi_id === 'storefront-cart-header' ) {
					if ( $this->cache_cart ) {
						do_action( 'litespeed_control_set_private', 'cache cart' );
						do_action( 'litespeed_vary_no' );
						do_action( 'litespeed_tag_add_private_esi', 'storefront-cart-header' );
					}
					else {
						$err = 'ESI cart should be nocache' ;
					}
				}
				elseif ( function_exists( 'wc_notice_count' ) && wc_notice_count() > 0 ) {
					$err = 'has wc notice' ;
				}

				if ( $err ) {
					do_action( 'litespeed_control_set_nocache', '3rd party woocommerce not cache due to ' . $err );
					return ;
				}
			}
			return ;
		}

		$uri = esc_url($_SERVER["REQUEST_URI"]) ;
		$uri_len = strlen($uri) ;
		if ( $uri_len < 5 ) {
			return ;
		}

		if ( in_array($uri, array('cart/', 'checkout/', 'my-account/', 'addons/', 'logout/', 'lost-password/', 'product/')) ) {
			do_action( 'litespeed_control_set_nocache', 'uri in cart/account/user pages' );
			return ;
		}

		$qs = sanitize_text_field($_SERVER["QUERY_STRING"]) ;
		$qs_len = strlen($qs) ;
		if ( ! empty($qs) && $qs_len >= 12 && strpos( $qs, 'add-to-cart=' ) === 0 ) {
			do_action( 'litespeed_control_set_nocache', 'qs contains add-to-cart' );
			return ;
		}
	}

	/**
	 * Purge a product page and related pages (based on settings) on checkout.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param WC_Product $product
	 */
	public function purge_product($product) {
		do_action( 'litespeed_debug', '[3rd] Woo Purge [pid]' . $product->get_id() );

		$config = apply_filters( 'litespeed_conf', self::O_UPDATE_INTERVAL ) ;
		if ( is_null($config) ) {
			$config = self::O_PQS_CS ;
		}

		if ( $config === self::O_PQS_CQS ) {
			$this->backend_purge($product->get_id()) ;
		}
		elseif ( $config !== self::O_PQS_CS && $product->is_in_stock() ) {
			do_action( 'litespeed_debug', '[3rd] Woo No purge needed [option] ' . $config );
			return ;
		}
		elseif ( $config !== self::O_PS_CN && ! $product->is_in_stock() ) {
			$this->backend_purge($product->get_id()) ;
		}

		do_action( 'litespeed_purge_post', $product->get_id() );

		// Check if is variation, purge stock too #984479
		if ( $product->is_type( 'variation' ) ) {
			do_action( 'litespeed_purge_post', $product->get_parent_id() );
		}
	}

	/**
	 * Delete object-term relationship. If the post is a product and
	 * the term ids array is not empty, will add purge tags to the deleted
	 * terms.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param int $post_id Object ID.
	 * @param array $term_ids An array of term taxonomy IDs.
	 */
	public function delete_rel($post_id, $term_ids)
	{
		if ( ! function_exists( 'wc_get_product' ) ) {
			return ;
		}

		if ( empty($term_ids) || wc_get_product($post_id) === false ) {
			return ;
		}
		foreach ( $term_ids as $term_id ) {
			do_action( 'litespeed_purge', self::CACHETAG_TERM . $term_id );
		}
	}

	/**
	 * Purge a product's categories and tags pages in case they are affected.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param int $post_id Post id that is about to be purged
	 */
	public function backend_purge($post_id)
	{
		if ( ! function_exists( 'wc_get_product' ) ) {
			return ;
		}

		if ( ! isset($post_id) || wc_get_product($post_id) === false ) {
			return ;
		}

		$cats = $this->get_cats($post_id) ;
		if ( ! empty($cats) ) {
			foreach ( $cats as $cat ) {
				do_action( 'litespeed_purge', self::CACHETAG_TERM . $cat );
			}
		}

		if ( ! function_exists( 'wc_get_product_terms' ) ) {
			return ;
		}

		$tags = wc_get_product_terms($post_id, 'product_tag', array('fields' => 'ids')) ;
		if ( ! empty($tags) ) {
			foreach ( $tags as $tag ) {
				do_action( 'litespeed_purge', self::CACHETAG_TERM . $tag );
			}
		}
	}

	/**
	 * When a product has a new review added, purge the recent reviews widget.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param $unused
	 * @param integer $comment_approved Whether the comment is approved or not.
	 * @param array $commentdata Information about the comment.
	 */
	public function add_review($unused, $comment_approved, $commentdata)
	{
		if ( ! function_exists( 'wc_get_product' ) ) {
			return ;
		}

		$post_id = $commentdata['comment_post_ID'] ;
		if ( $comment_approved !== 1 || ! isset($post_id) || wc_get_product($post_id) === false ) {
			return ;
		}
		global $wp_widget_factory ;
		$recent_reviews = $wp_widget_factory->widgets[ 'WC_Widget_Recent_Reviews' ] ;
		if ( ! is_null( $recent_reviews ) ) {
			do_action( 'litespeed_tag_add_widget', $recent_reviews->id );
		}
	}

	/**
	 * Append new options
	 *
	 * @since 1.6.3 Removed static
	 * @since  3.0 new API
	 */
	private function _option_append() {
		// Append option save value filter
		do_action( 'litespeed_conf_multi_switch', self::O_UPDATE_INTERVAL, 3 ); // This need to be before conf_append

		do_action( 'litespeed_conf_append', self::O_ESI_CACHE_CART, true );
		do_action( 'litespeed_conf_append', self::O_UPDATE_INTERVAL, false );
		do_action( 'litespeed_conf_append', self::O_SHOP_FRONT_TTL, true );
		do_action( 'litespeed_conf_append', self::O_WOO_CACHE_CART, true );
	}

	/**
	 * Hooked to `litespeed_settings_tab` action.
	 * Adds the integration configuration options (currently, to determine purge rules)
	 *
	 * @since 1.6.3 Removed static
	 */
	public function settings_add_tab( $setting_page )
	{
		if ( $setting_page != 'cache' ) {
			return ;
		}

		require 'woocommerce.tab.tpl.php' ;
	}

	/**
	 * Hook to show config content
	 *
	 * @since  3.0
	 */
	public function settings_add_content( $setting_page )
	{
		if ( $setting_page != 'cache' ) {
			return ;
		}

		require 'woocommerce.content.tpl.php' ;
	}

	/**
	 * Helper function to select the function(s) to use to get the product
	 * category ids.
	 *
	 * @since 1.0.10
	 * @since 1.6.3 Removed static
	 * @access private
	 * @param int $product_id The product id
	 * @return array An array of category ids.
	 */
	private function get_cats($product_id)
	{
		if ( ! function_exists( 'WC' ) ) {
			return ;
		}

		$woocom = WC() ;
		if ( isset($woocom) && version_compare($woocom->version, '2.5.0', '>=') && function_exists( 'wc_get_product_cat_ids' ) ) {
			return wc_get_product_cat_ids($product_id) ;
		}
		$product_cats = wp_get_post_terms($product_id, 'product_cat', array("fields" => "ids")) ;
		foreach ( $product_cats as $product_cat ) {
			$product_cats = array_merge($product_cats, get_ancestors($product_cat, 'product_cat')) ;
		}

		return $product_cats ;
	}

	/**
	 * 3rd party prepload
	 *
	 * @since  2.9.8.4
	 */
	public static function preload()
	{
		/**
		 * Auto puge for WooCommerce Advanced Bulk Edit plugin,
		 * Bulk edit hook need to add to preload as it will die before detect.
		 */
		add_action( 'wp_ajax_wpmelon_adv_bulk_edit', __CLASS__ . '::bulk_edit_purge', 1 ) ;
	}

	/**
	 * Auto puge for WooCommerce Advanced Bulk Edit plugin,
	 *
	 * @since  2.9.8.4
	 */
	public static function bulk_edit_purge()
	{
		if ( empty( $_POST[ 'type' ] ) || $_POST[ 'type' ] != 'saveproducts' || empty( $_POST[ 'data' ] ) ) return ;

		/*
		* admin-ajax form-data structure
		* array(
		*		"type" => "saveproducts",
		*		"data" => array(
		*			"column1" => "464$###0$###2#^#463$###0$###4#^#462$###0$###6#^#",
		*			"column2" => "464$###0$###2#^#463$###0$###4#^#462$###0$###6#^#"
		*		)
		*	)
		*/
		$stock_string_arr = array() ;
		foreach ( $_POST[ 'data' ] as $stock_value ) {
			$stock_string_arr = array_merge( $stock_string_arr, explode( '#^#', $stock_value ) ) ;
		}

		$lscwp_3rd_woocommerce = new self() ;

		if ( count( $stock_string_arr ) < 1 ) {
			return ;
		}

		foreach ( $stock_string_arr as $edited_stock ) {
			$product_id = strtok( $edited_stock, '$' );
			$product = wc_get_product( $product_id ) ;

			if ( empty( $product ) ) {
				do_action( 'litespeed_debug', '3rd woo purge: ' . $product_id . ' not found.' ) ;
				continue ;
			}

			$lscwp_3rd_woocommerce->purge_product( $product );
		}
	}
}

<?php
/**
 * The Third Party integration with the NextGen Gallery plugin.
 *
 * @since		1.0.5
 */
namespace LiteSpeed\Thirdparty ;

defined( 'WPINC' ) || exit ;

// Try preload instead
// todo: need test
// add_action('load_nextgen_gallery_modules', 'NextGenGallery::detect') ;

class NextGenGallery
{
	const CACHETAG_ALBUMS = 'NGG_A.' ;
	const CACHETAG_GALLERIES = 'NGG_G.' ;
	const CACHETAG_TAGS = 'NGG_T.' ;

	/**
	 * Detect is triggered at the load_nextgen_gallery_modules action.
	 *
	 * If this action is triggered, assume NextGen Gallery is used.
	 *
	 * @since	1.0.5
	 * @access	public
	 */
	public static function preload()
	{
		add_action( 'ngg_added_new_image', __CLASS__ . '::add_image' ) ;
		add_action( 'ngg_ajax_image_save', __CLASS__ . '::update_image' ) ;
		add_action( 'ngg_delete_picture', __CLASS__ . '::delete_image' ) ;
		add_action( 'ngg_moved_images', __CLASS__ . '::move_image', 10, 3 ) ;
		add_action( 'ngg_copied_images', __CLASS__ . '::copy_image', 10, 3 ) ;
		add_action( 'ngg_generated_image', __CLASS__ . '::gen_image' ) ;
		add_action( 'ngg_recovered_image', __CLASS__ . '::gen_image' ) ;

		add_action( 'ngg_gallery_sort', __CLASS__ . '::update_gallery' ) ;
		add_action( 'ngg_delete_gallery', __CLASS__ . '::update_gallery' ) ;

		add_action( 'ngg_update_album', __CLASS__ . '::update_album' ) ;
		add_action( 'ngg_delete_album', __CLASS__ . '::update_album' ) ;

		add_filter( 'ngg_displayed_gallery_cache_params', __CLASS__ . '::add_container' ) ;
	}

	/**
	 * When an image is added, need to purge all pages that displays its gallery.
	 *
	 * @since	1.0.5
	 * @access	public
	 * @param	string	$image	The image object added.
	 */
	public static function add_image($image)
	{
		if ( ! $image || ! method_exists( $image, 'get_gallery' ) ) {
			return ;
		}
		$gallery = $image->get_gallery() ;
		if ( $gallery && $gallery->pageid ) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gallery->pageid ) ;
		}
	}

	/**
	 * When an image is updated, need to purge all pages that displays its gallery.
	 *
	 * @since 1.0.5
	 * @access	public
	 */
	public static function update_image()
	{
		if ( isset( $_REQUEST[ 'gallery_id' ] ) ) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key( $_REQUEST[ 'gallery_id' ] ) );
			return ;
		}

		if ( isset( $_POST[ 'task_list' ] ) ) {
			$task_list = str_replace( '\\', '', $_POST[ 'task_list' ] ) ;
			$task_list = json_decode( $task_list, true ) ;

			if ( ! empty( $task_list[ 0 ][ 'query' ][ 'id' ] ) ) {
				do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key( $task_list[ 0 ][ 'query' ][ 'id' ] ) );
				return ;
			}
		}

		if ( isset($_POST['id']) ) {
			$id = (int)$_POST['id'] ;
		}
		elseif ( isset($_POST['image']) ) {
			$id = (int)$_POST['image'] ;
		}
		elseif ( isset($_GET['pid']) ) {
			$id = (int)$_GET['pid'] ;
		}
		else {
			error_log('LiteSpeed_Cache hit ngg_ajax_image_save with no post image id.') ;
			return ;
		}
		$image = \C_Image_Mapper::get_instance()->find($id) ;
		if ( $image ) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $image->galleryid );
		}
	}

	/**
	 * When an image is deleted, need to purge all pages that displays its gallery.
	 *
	 * @since 1.0.5
	 * @access	public
	 */
	public static function delete_image()
	{
		if ( isset($_GET['gid']) ) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . sanitize_key( $_GET['gid'] ) );
		}
	}

	/**
	 * When an image is moved, need to purge all old galleries and the new gallery.
	 *
	 * @since 1.0.8
	 * @access	public
	 * @param array $images unused
	 * @param array $old_gallery_ids Source gallery ids for the images.
	 * @param integer $new_gallery_id Destination gallery id.
	 */
	public static function move_image($images, $old_gallery_ids, $new_gallery_id)
	{
		foreach ($old_gallery_ids as $gid) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gid );
		}
		do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $new_gallery_id );
	}

	/**
	 * When an image is copied, need to purge the destination gallery.
	 *
	 * @param array $image_pid_map unused
	 * @param array $old_gallery_ids unused
	 * @param integer $new_gallery_id Destination gallery id.
	 */
	public static function copy_image($image_pid_map, $old_gallery_ids, $new_gallery_id)
	{
		do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $new_gallery_id );
	}

	/**
	 * When an image is re-generated, need to purge the gallery it belongs to.
	 * Also applies to recovered images.
	 *
	 * @param Image $image The re-generated image.
	 */
	public static function gen_image($image)
	{
		do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $image->galleryid );
	}

	/**
	 * When a gallery is updated, need to purge all pages that display the gallery.
	 *
	 * @since 1.0.5
	 * @access  public
	 * @param	integer		$gid	The gallery id of the gallery updated.
	 */
	public static function update_gallery($gid)
	{
		// New version input will be an object with gid value
		if ( is_object( $gid ) && ! empty( $gid->gid ) ) {
			$gid = $gid->gid ;
		}

		do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gid );
	}

	/**
	 * When an album is updated, need to purge all pages that display the album.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param	integer		$aid	The album id of the album updated.
	 */
	public static function update_album($aid)
	{
		do_action( 'litespeed_purge', self::CACHETAG_ALBUMS . $aid );
	}

	/**
	 * When rendering a page, if the page has a gallery, album or tag cloud,
	 * it needs to be tagged appropriately.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param object $render_parms Parameters used to render the associated part of the page.
	 * @return mixed Null if passed in null, $render_parms otherwise.
	 */
	public static function add_container($render_parms)
	{
		// Check if null. If it is null, can't continue.
		if ( is_null($render_parms) ) {
			return null ;
		}
		$src = $render_parms[0]->source ;
		$container_ids = $render_parms[0]->container_ids ;
		// Can switch on first char if we end up with more sources.
		switch ($src) {
			case 'albums':
				$tag = self::CACHETAG_ALBUMS ;
				break ;
			case 'galleries':
				$tag = self::CACHETAG_GALLERIES ;
				break ;
			case 'tags':
				$tag = self::CACHETAG_TAGS ;
				break ;
			default:
				return $render_parms ;
		}

		foreach ($container_ids as $id) {
			do_action( 'litespeed_tag_add', $tag . $id );
		}

		return $render_parms ;
	}
}

<?php defined( 'WPINC' ) || exit ; ?>

<a class='litespeed-tab nav-tab' href='#woocommerce' data-litespeed-tab='woocommerce'><?php echo __( 'WooCommerce', 'litespeed-cache' ) ; ?></a>
<?php
/**
 * The Third Party integration with the bbPress plugin.
 *
 * @since		1.0.5
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\Router;

class BBPress
{
	/**
	 * Detect if bbPress is installed and if the page is a bbPress page.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public static function detect()
	{
		if ( function_exists( 'is_bbpress' ) ) {
			add_action('litespeed_api_purge_post', __CLASS__ . '::on_purge' );//todo
			if ( apply_filters( 'litespeed_esi_status', false ) ) {// don't consider private cache yet (will do if any feedback)
				add_action( 'litespeed_control_finalize', __CLASS__ . '::set_control' );
			}
		}
	}

	/**
	 * This filter is used to let the cache know if a page is cacheable.
	 *
	 * @access public
	 * @since 1.2.0
	 */
	public static function set_control()
	{
		if ( ! apply_filters( 'litespeed_control_cacheable', false ) ) {
			return;
		}

		// set non ESI public
		if ( is_bbpress() && Router::is_logged_in() ) {
			do_action( 'litespeed_control_set_nocache', 'bbpress nocache due to loggedin' );
		}
	}

	/**
	 * When a bbPress page is purged, need to purge the forums list and
	 * any/all ancestor pages.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param integer $post_id The post id of the page being purged.
	 */
	public static function on_purge($post_id)
	{
		if ( ! is_bbpress() ) {
			if ( ! function_exists( 'bbp_is_forum' ) || ! function_exists( 'bbp_is_topic' ) || ! function_exists( 'bbp_is_reply' ) ) {
				return;
			}
			if ( ! bbp_is_forum( $post_id ) && ! bbp_is_topic( $post_id ) && ! bbp_is_reply( $post_id ) ) {
				return;
			}
		}

		// Need to purge base forums page, bbPress page was updated.
		do_action( 'litespeed_purge_posttype', bbp_get_forum_post_type() );
		$ancestors = get_post_ancestors( $post_id );

		// If there are ancestors, need to purge them as well.
		if ( ! empty( $ancestors ) ) {
			foreach ( $ancestors as $ancestor ) {
				do_action( 'litespeed_purge_post', $ancestor );
			}
		}

		global $wp_widget_factory;
		if ( bbp_is_reply( $post_id ) && ! is_null( $wp_widget_factory->widgets[ 'BBP_Replies_Widget' ] ) ) {
			do_action( 'litespeed_purge_widget', $wp_widget_factory->widgets[ 'BBP_Replies_Widget' ]->id );
		}
		if ( bbp_is_topic( $post_id ) && ! is_null( $wp_widget_factory->widgets[ 'BBP_Topics_Widget' ] ) ) {
			do_action( 'litespeed_purge_widget', $wp_widget_factory->widgets[ 'BBP_Topics_Widget' ]->id );
		}
	}
}

<?php
/**
 * The Third Party integration with User Switching.
 *
 * @since		3.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class User_Switching
{
	public static function detect()
	{
		if ( ! defined( 'user_switching' ) ) return;

		/**
		 * Register switch back URL nonce
		 * @since  3.0 @Robert Staddon
		 */
		if ( function_exists( 'current_user_switched' ) && $old_user = current_user_switched() ) {
			do_action( 'litespeed_nonce', 'switch_to_olduser_' . $old_user->ID );
		}
	}
}
<?php
/**
 * The Third Party integration with the Theme My Login plugin.
 *
 * @since		1.0.15
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Theme_My_Login
{
	/**
	 * Detects if Better Theme My Login is active.
	 *
	 * @since 1.0.15
	 * @access public
	 *
	 */
	public static function detect()
	{
		if ( defined( 'THEME_MY_LOGIN_PATH' ) ) {
			add_action( 'litespeed_control_finalize', __CLASS__ . '::set_control' );
		}
	}

	/**
	 * This filter is used to let the cache know if a page is cacheable.
	 *
	 * @access public
	 * @since 1.0.15
	 */
	public static function set_control()
	{
		if ( ! apply_filters( 'litespeed_control_cacheable', false ) ) {
			return;
		}

		// check if this page is TML page or not
		if ( class_exists( 'Theme_My_Login' ) && \Theme_My_Login::is_tml_page() ) {
			do_action( 'litespeed_control_set_nocache', 'Theme My Login' );
		}
	}

}<?php
/**
 * The Third Party integration with DIVI Theme.
 *
 * @since		2.9.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Divi_Theme_Builder
{
	// private static $js_comment_box = false;

	/**
	 * Check if is Edit mode in frontend, disable all LSCWP features to avoid breaking page builder
	 *
	 * @since 2.9.7.2 #435538 #581740 #977284
	 * @since  2.9.9.1 Added 'et_pb_preview' for loading image from library in divi page edit
	 */
	public static function preload()
	{
		if ( ! function_exists( 'et_setup_theme' ) ) return;
		if ( ! empty( $_GET[ 'et_fb' ] ) || ! empty( $_GET[ 'et_pb_preview' ] ) ) {
			do_action( 'litespeed_disable_all', 'divi edit mode' );
		}
	}

	public static function detect()
	{
		if ( ! defined( 'ET_CORE' ) ) return;
		/**
		 * Add contact form to nonce
		 * @since  2.9.7.1 #475461
		 */
		do_action( 'litespeed_nonce', 'et-pb-contact-form-submit' );

		/**
		 * Subscribe module and A/B logging
		 * @since  3.0 @Robert Staddon
		 */
		do_action( 'litespeed_nonce', 'et_frontend_nonce' );
		do_action( 'litespeed_nonce', 'et_ab_log_nonce' );

		/*
		// the comment box fix is for user using theme builder, ESI will load the wrong json string
		// As we disabled all for edit mode, this is no more needed
		add_action( 'et_fb_before_comments_template', 'Divi_Theme_Builder::js_comment_box_on' );
		add_action( 'et_fb_after_comments_template', 'Divi_Theme_Builder::js_comment_box_off' );
		add_filter( 'litespeed_esi_params-comment-form', 'Divi_Theme_Builder::esi_comment_add_slash' );// Note: this is changed in v2.9.8.1
		*/
	}

	/*
	public static function js_comment_box_on() {
		self::$js_comment_box = true;
	}

	public static function js_comment_box_off() {
		self::$js_comment_box = false;
	}

	public static function esi_comment_add_slash( $params )
	{
		if ( self::$js_comment_box ) {
			$params[ 'is_json' ] = 1;
			$params[ '_ls_silence' ] = 1;
		}

		return $params;
	}
	*/
}
<?php
/**
 * The Third Party integration with the Aelia CurrencySwitcher plugin.
 *
 * @since		1.0.13
 * @since  		2.6 	Removed hook_vary as OLS supports vary header already
 * @package		LiteSpeed_Cache
 * @subpackage	LiteSpeed_Cache/thirdparty
 * @author		LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\API;

class Aelia_CurrencySwitcher {
	private static $_cookies = array(
		'aelia_cs_selected_currency',
		'aelia_customer_country',
		'aelia_customer_state',
		'aelia_tax_exempt',
	);

	/**
	 * Detects if WooCommerce is installed.
	 *
	 * @since 1.0.13
	 * @access public
	 */
	public static function detect() {
		if ( defined('WOOCOMMERCE_VERSION') && isset($GLOBALS['woocommerce-aelia-currencyswitcher']) && is_object($GLOBALS['woocommerce-aelia-currencyswitcher']) ) {
			// Not all pages need to add vary, so need to use this API to set conditions
			self::$_cookies = apply_filters( 'litespeed_3rd_aelia_cookies', self::$_cookies );
			add_filter( 'litespeed_vary_curr_cookies', __CLASS__ . '::check_cookies' ); // this is for vary response headers, only add when needed
			add_filter( 'litespeed_vary_cookies', __CLASS__ . '::register_cookies' ); // this is for rewrite rules, so always add
		}
	}

	public static function register_cookies( $list ) {
		return array_merge( $list, self::$_cookies );
	}

	/**
	 * If the page is not a woocommerce page, ignore the logic.
	 * Else check cookies. If cookies are set, set the vary headers, else do not cache the page.
	 *
	 * @since 1.0.13
	 * @access public
	 */
	public static function check_cookies( $list ) {
		// NOTE: is_cart and is_checkout should also be checked, but will be checked by woocommerce anyway.
		if ( ! is_woocommerce() ) {
			return $list;
		}

		return array_merge( $list, self::$_cookies );
	}
}
<?php
/**
 * The Third Party integration with WCML.
 *
 * @since		3.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WCML {
	private static $_currency = '';

	public static function detect()
	{
		if ( ! defined( 'WCML_VERSION' ) ) return;

		add_filter( 'wcml_client_currency', __CLASS__ . '::apply_client_currency' );
		add_action( 'wcml_set_client_currency', __CLASS__ . '::set_client_currency' );
	}

	public static function set_client_currency( $currency ) {
		self::apply_client_currency( $currency );

		do_action( 'litespeed_vary_ajax_force' );
	}

	public static function apply_client_currency( $currency ) {
		if ( $currency !== wcml_get_woocommerce_currency_option() ) {
			self::$_currency = $currency;
			add_filter( 'litespeed_vary', __CLASS__ . '::apply_vary' );
		}

		return $currency;
	}

	public static function apply_vary( $list ) {
		$list[ 'wcml_currency' ] = self::$_currency;
		return $list;
	}
}<?php
/**
 * The registry for Third Party Plugins Integration files.
 *
 * This file is only used to include the integration files/classes.
 * This works as an entry point for the initial add_action for the
 * detect function.
 *
 * It is not required to add all integration files here, this just provides
 * a common place for plugin authors to append their file to.
 *
 */
defined( 'WPINC' ) || exit;

use \LiteSpeed\API;

$third_cls = array(
	'Aelia_CurrencySwitcher',
	'Autoptimize',
	'Avada',
	'BBPress',
	'Beaver_Builder',
	'Caldera_Forms',
	'Divi_Theme_Builder',
	'Facetwp',
	'Theme_My_Login',
	'User_Switching',
	'WCML',
	'WooCommerce',
	'Woo_Paypal',
	'Wp_Polls',
	'WP_PostRatings',
	'Wpdiscuz',
	'WPLister',
	'WPML',
	'WpTouch',
	'Yith_Wishlist',
);

foreach ( $third_cls as $cls ) {
	add_action( 'litespeed_load_thirdparty', 'LiteSpeed\Thirdparty\\' . $cls . '::detect' ) ;
}

// Preload needed for certain thirdparty
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\Divi_Theme_Builder::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\WooCommerce::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\NextGenGallery::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\AMP::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\Elementor::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\Gravity_Forms::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\Perfmatters::preload' );
<?php
/**
 * The abstract instance
 *
 * @since      	3.0
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

abstract class Root {
	const CONF_FILE = '.litespeed_conf.dat';
	// Instance set
	private static $_instances;

	private static $_options = array();
	private static $_const_options = array();
	private static $_primary_options = array();
	private static $_network_options = array();

	/**
	 * Log a debug message.
	 *
	 * @since  4.4
	 * @access public
	 */
	public static function debug( $msg, $backtrace_limit = false ) {
		if ( ! defined( 'LSCWP_LOG' ) ) {
			return;
		}

		if ( defined( 'static::LOG_TAG' )) {
			$msg = static::LOG_TAG . '  ' . $msg;
		}

		Debug2::debug( $msg, $backtrace_limit );
	}

	/**
	 * Log an advanced debug message.
	 *
	 * @since  4.4
	 * @access public
	 */
	public static function debug2( $msg, $backtrace_limit = false ) {
		if ( ! defined( 'LSCWP_LOG_MORE' ) ) {
			return;
		}

		if ( defined( 'static::LOG_TAG' )) {
			$msg = static::LOG_TAG . '  ' . $msg;
		}
		Debug2::debug2( $msg, $backtrace_limit );
	}

	/**
	 * Check if there is cache folder for that type
	 *
	 * @since  3.0
	 */
	public function has_cache_folder( $type ) {
		$subsite_id = is_multisite() && ! is_network_admin() ? get_current_blog_id() : '';

		if ( file_exists( LITESPEED_STATIC_DIR . '/' . $type . '/' . $subsite_id ) ) {
			return true;
		}
		return false;
	}

	/**
	 * Maybe make the cache folder if not existed
	 *
	 * @since 4.4.2
	 */
	protected function _maybe_mk_cache_folder( $type ) {
		if ( ! $this->has_cache_folder( $type ) ) {
			$subsite_id = is_multisite() && ! is_network_admin() ? get_current_blog_id() : '';
			$path = LITESPEED_STATIC_DIR . '/' . $type . '/' . $subsite_id;
			mkdir( $path, 0755, true );
		}
	}

	/**
	 * Delete file-based cache folder for that type
	 *
	 * @since  3.0
	 */
	public function rm_cache_folder( $type ) {
		if ( ! $this->has_cache_folder( $type ) ) {
			return;
		}

		$subsite_id = is_multisite() && ! is_network_admin() ? get_current_blog_id() : '';

		File::rrmdir( LITESPEED_STATIC_DIR . '/' . $type . '/' . $subsite_id );

		// Clear All summary data
		$this->_summary = array();
		self::save_summary();

		if ( $type == 'ccss' || $type == 'ucss') {
			Debug2::debug( '[CSS] Cleared ' . $type .  ' queue' );
		}
		elseif ( $type == 'avatar' ) {
			Debug2::debug( '[Avatar] Cleared ' . $type .  ' queue' );
		}
		elseif ( $type == 'css' || $type == 'js' ) {
			return;
		}
		else {
			Debug2::debug( '[' . strtoupper( $type ) . '] Cleared ' . $type .  ' queue' );
		}
	}

	/**
	 * Build the static filepath
	 *
	 * @since  4.0
	 */
	protected function _build_filepath_prefix( $type ) {
		$filepath_prefix = '/' . $type . '/';
		if ( is_multisite() ) {
			$filepath_prefix .= get_current_blog_id() . '/';
		}

		return $filepath_prefix;
	}

	/**
	 * Load current queues from data file
	 *
	 * @since  4.1
	 * @since  4.3 Elevated to root.cls
	 */
	public function load_queue( $type ) {
		$filepath_prefix = $this->_build_filepath_prefix( $type );
		$static_path = LITESPEED_STATIC_DIR . $filepath_prefix . '.litespeed_conf.dat';

		$queue = array();
		if ( file_exists( $static_path ) ) {
			$queue = json_decode( file_get_contents( $static_path ), true ) ?: array();
		}

		return $queue;
	}

	/**
	 * Save current queues to data file
	 *
	 * @since  4.1
	 * @since  4.3 Elevated to root.cls
	 */
	public function save_queue( $type, $list ) {
		$filepath_prefix = $this->_build_filepath_prefix( $type );
		$static_path = LITESPEED_STATIC_DIR . $filepath_prefix . '.litespeed_conf.dat';

		$data = json_encode( $list );

		File::save( $static_path, $data, true );
	}

	/**
	 * Clear all waiting queues
	 *
	 * @since  3.4
	 * @since  4.3 Elevated to root.cls
	 */
	public function clear_q( $type ) {
		$filepath_prefix = $this->_build_filepath_prefix( $type );
		$static_path = LITESPEED_STATIC_DIR . $filepath_prefix . '.litespeed_conf.dat';

		if ( file_exists( $static_path ) ) {
			unlink( $static_path );
		}

		$msg = __( 'Queue cleared successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Load an instance or create it if not existed
	 * @since  4.0
	 */
	public static function cls( $cls = false, $unset = false, $data = false ) {
		if ( ! $cls ) {
			$cls = self::ori_cls();
		}
		$cls = __NAMESPACE__ . '\\' . $cls;

		$cls_tag = strtolower( $cls );

		if ( ! isset( self::$_instances[ $cls_tag ] ) ) {
			if ( $unset ) {
				return;
			}

			self::$_instances[ $cls_tag ] = new $cls( $data );
		}
		else {
			if ( $unset ) {
				unset( self::$_instances[ $cls_tag ] );
				return;
			}
		}

		return self::$_instances[ $cls_tag ];
	}

	/**
	 * Set one conf or confs
	 */
	public function set_conf( $id, $val = null ) {
		if ( is_array( $id ) ) {
			foreach ( $id as $k => $v ) {
				$this->set_conf( $k, $v );
			}
			return;
		}
		self::$_options[ $id ] = $val;
	}

	/**
	 * Set one primary conf or confs
	 */
	public function set_primary_conf( $id, $val = null ) {
		if ( is_array( $id ) ) {
			foreach ( $id as $k => $v ) {
				$this->set_primary_conf( $k, $v );
			}
			return;
		}
		self::$_primary_options[ $id ] = $val;
	}

	/**
	 * Set one network conf
	 */
	public function set_network_conf( $id, $val = null ) {
		if ( is_array( $id ) ) {
			foreach ( $id as $k => $v ) {
				$this->set_network_conf( $k, $v );
			}
			return;
		}
		self::$_network_options[ $id ] = $val;
	}

	/**
	 * Set one const conf
	 */
	public function set_const_conf( $id, $val ) {
		self::$_const_options[ $id ] = $val;
	}

	/**
	 * Check if is overwritten by const
	 *
	 * @since  3.0
	 */
	public function const_overwritten( $id ) {
		if ( ! isset( self::$_const_options[ $id ] ) || self::$_const_options[ $id ] == self::$_options[ $id ] ) {
			return null;
		}
		return self::$_const_options[ $id ];
	}

	/**
	 * Check if is overwritten by primary site
	 *
	 * @since  3.2.2
	 */
	public function primary_overwritten( $id ) {
		if ( ! isset( self::$_primary_options[ $id ] ) || self::$_primary_options[ $id ] == self::$_options[ $id ] ) {
			return null;
		}

		// Network admin settings is impossible to be overwritten by primary
		if ( is_network_admin() ) {
			return null;
		}

		return self::$_primary_options[ $id ];
	}

	/**
	 * Get the list of configured options for the blog.
	 *
	 * @since 1.0
	 */
	public function get_options( $ori = false ) {
		if ( ! $ori ) {
			return array_merge( self::$_options, self::$_primary_options, self::$_const_options );
		}

		return self::$_options;
	}

	/**
	 * If has a conf or not
	 */
	public function has_conf( $id ) {
		return array_key_exists( $id, self::$_options );
	}

	/**
	 * If has a primary conf or not
	 */
	public function has_primary_conf( $id ) {
		return array_key_exists( $id, self::$_primary_options );
	}

	/**
	 * If has a network conf or not
	 */
	public function has_network_conf( $id ) {
		return array_key_exists( $id, self::$_network_options );
	}

	/**
	 * Get conf
	 */
	public function conf( $id, $ori = false ) {
		if ( isset( self::$_options[ $id ] ) ) {
			if ( ! $ori ) {
				$val = $this->const_overwritten( $id );
				if ( $val !== null ) {
					defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] 🏛️ const option ' . $id . '=' . var_export( $val, true ) );
					return $val;
				}

				$val = $this->primary_overwritten( $id ); // Network Use primary site settings
				if ( $val !== null ) {
					return $val;
				}
			}

			// Network orignal value will be in _network_options
			if ( ! is_network_admin() || ! $this->has_network_conf( $id ) ) {
				return self::$_options[ $id ];
			}

		}

		if ( $this->has_network_conf( $id ) ) {
			if ( ! $ori ) {
				$val = $this->const_overwritten( $id );
				if ( $val !== null ) {
					defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] 🏛️ const option ' . $id . '=' . var_export( $val, true ) );
					return $val;
				}
			}

			return $this->network_conf( $id );
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] Invalid option ID ' . $id );

		return null;
	}

	/**
	 * Get primary conf
	 */
	public function primary_conf( $id ) {
		return self::$_primary_options[ $id ];
	}

	/**
	 * Get network conf
	 */
	public function network_conf( $id ) {
		if ( ! $this->has_network_conf( $id ) ) {
			return null;
		}

		return self::$_network_options[ $id ];
	}

	/**
	 * Get called class short name
	 */
	public static function ori_cls() {
		$cls = new \ReflectionClass( get_called_class() );
		$shortname = $cls->getShortName();
		$namespace = str_replace( __NAMESPACE__ . '\\', '', $cls->getNamespaceName() . '\\' );
		if ( $namespace ) { // the left namespace after dropped LiteSpeed
			$shortname = $namespace . $shortname;
		}

		return $shortname;
	}

	/**
	 * Generate conf name for wp_options record
	 *
	 * @since 3.0
	 */
	public static function name( $id ) {
		$name = strtolower( self::ori_cls() );
		if ( $name == 'conf2' ) { // For a certain 3.7rc correction, can be dropped after v4
			$name = 'conf';
		}
		return 'litespeed.' . $name . '.' . $id;
	}

	/**
	 * Dropin with prefix for WP's get_option
	 *
	 * @since 3.0
	 */
	public static function get_option( $id, $default_v = false ) {
		$v = get_option( self::name( $id ), $default_v );

		// Maybe decode array
		if ( is_array( $default_v ) ) {
			$v = self::_maybe_decode( $v );
		}

		return $v;
	}

	/**
	 * Dropin with prefix for WP's get_site_option
	 *
	 * @since 3.0
	 */
	public static function get_site_option( $id, $default_v = false ) {
		$v = get_site_option( self::name( $id ), $default_v );

		// Maybe decode array
		if ( is_array( $default_v ) ) {
			$v = self::_maybe_decode( $v );
		}

		return $v;
	}

	/**
	 * Dropin with prefix for WP's get_blog_option
	 *
	 * @since 3.0
	 */
	public static function get_blog_option( $blog_id, $id, $default_v = false ) {
		$v = get_blog_option( $blog_id, self::name( $id ), $default_v );

		// Maybe decode array
		if ( is_array( $default_v ) ) {
			$v = self::_maybe_decode( $v );
		}

		return $v;
	}

	/**
	 * Dropin with prefix for WP's add_option
	 *
	 * @since 3.0
	 */
	public static function add_option( $id, $v ) {
		add_option( self::name( $id ), self::_maybe_encode( $v ) );
	}

	/**
	 * Dropin with prefix for WP's add_site_option
	 *
	 * @since 3.0
	 */
	public static function add_site_option( $id, $v ) {
		add_site_option( self::name( $id ), self::_maybe_encode( $v ) );
	}

	/**
	 * Dropin with prefix for WP's update_option
	 *
	 * @since 3.0
	 */
	public static function update_option( $id, $v ) {
		update_option( self::name( $id ), self::_maybe_encode( $v ) );
	}

	/**
	 * Dropin with prefix for WP's update_site_option
	 *
	 * @since 3.0
	 */
	public static function update_site_option( $id, $v ) {
		update_site_option( self::name( $id ), self::_maybe_encode( $v ) );
	}

	/**
	 * Decode an array
	 *
	 * @since  4.0
	 */
	private static function _maybe_decode( $v ) {
		if ( ! is_array( $v ) ) {
			$v2 = json_decode( $v, true );
			if ( $v2 !== null ) {
				$v = $v2;
			}
		}
		return $v;
	}

	/**
	 * Encode an array
	 *
	 * @since  4.0
	 */
	private static function _maybe_encode( $v ) {
		if ( is_array( $v ) ) {
			$v = json_encode( $v ) ?: $v; // Non utf-8 encoded value will get failed, then used ori value
		}
		return $v;
	}

	/**
	 * Dropin with prefix for WP's delete_option
	 *
	 * @since 3.0
	 */
	public static function delete_option( $id ) {
		delete_option( self::name( $id ) );
	}

	/**
	 * Dropin with prefix for WP's delete_site_option
	 *
	 * @since 3.0
	 */
	public static function delete_site_option( $id ) {
		delete_site_option( self::name( $id ) );
	}

	/**
	 * Read summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get_summary( $field = false ) {
		$summary = self::get_option( '_summary', array() );

		if ( ! is_array( $summary ) ) {
			$summary = array();
		}

		if ( ! $field ) {
			return $summary;
		}

		if ( array_key_exists( $field, $summary ) ) {
			return $summary[ $field ];
		}

		return null;
	}

	/**
	 * Save summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function save_summary( $data = null ) {
		if ( $data === null ) {
			$data = static::cls()->_summary;
		}

		self::update_option( '_summary', $data );
	}

	/**
	 * Get the current instance object. To be inherited.
	 *
	 * @since 3.0
	 */
	public static function get_instance() {
		return static::cls();
	}

}<?php
/**
 * The error class.
 *
 * @since      	3.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Error {
	private static $CODE_SET = array(
		'HTA_LOGIN_COOKIE_INVALID' => 4300, // .htaccess did not find.
		'HTA_DNF'		 => 4500, // .htaccess did not find.
		'HTA_BK'		 => 9010, // backup
		'HTA_R'			 => 9041, // read htaccess
		'HTA_W'			 => 9042, // write
		'HTA_GET'		 => 9030, // failed to get
	);

	/**
	 * Throw an error with msg
	 *
	 * @since  3.0
	 */
	public static function t( $code, $args = null ) {
		throw new \Exception( self::msg( $code, $args ) );
	}

	/**
	 * Translate an error to description
	 *
	 * @since  3.0
	 */
	public static function msg( $code, $args = null ) {
		switch ( $code ) {

			case 'disabled_all':
				$msg = sprintf( __( 'The setting %s is currently enabled.', 'litespeed-cache' ), '<strong>' . Lang::title( Base::O_DEBUG_DISABLE_ALL ) . '</strong>' ) .
					Doc::learn_more( admin_url( 'admin.php?page=litespeed-toolbox' ), __( 'Click here to change.', 'litespeed-cache' ), true, false, true );
				break;

			case 'lack_of_api_key':
				$msg = sprintf( __( 'You will need to set %s to use the online services.', 'litespeed-cache' ), '<strong>' . Lang::title( Base::O_API_KEY ) . '</strong>' ) .
					Doc::learn_more( admin_url( 'admin.php?page=litespeed-general' ), __( 'Click here to set.', 'litespeed-cache' ), true, false, true );
				break;

			case 'out_of_daily_quota':
				$msg = __( 'You don\'t have enough daily quota left for current service today.', 'litespeed-cache' );
				break;

			case 'out_of_quota':
				$msg = __( 'You don\'t have enough quota left for current service this month.', 'litespeed-cache' );
				break;

			case 'too_many_requested':
				$msg = __( 'You have too many requested images, please try again in a few minutes.', 'litespeed-cache' );
				break;

			case 'too_many_notified':
				$msg = __( 'You have too many notified images, please pull down notified images first.', 'litespeed-cache' );
				break;

			case 'empty_list':
				$msg = __( 'The image list is empty.', 'litespeed-cache' );
				break;

			case 'lack_of_param':
				$msg = __( 'Not enough parameters. Please check if the domain key is set correctly', 'litespeed-cache' );
				break;

			case 'unfinished_queue':
				$msg = __( 'There is proceeding queue not pulled yet.', 'litespeed-cache' );
				break;

			case strpos( $code, 'unfinished_queue ' ) === 0:
				$msg = sprintf( __( 'There is proceeding queue not pulled yet. Queue info: %s.', 'litespeed-cache' ), '<code>' . substr( $code, strlen( 'unfinished_queue ' ) ) . '</code>' );
				break;

			case 'site_not_registered':
				$msg = __( 'The site is not registered on QUIC.cloud.', 'litespeed-cache' );
				break;

			case 'err_key':
				$msg = __( 'The domain key is not correct. Please try to sync your domain key again.', 'litespeed-cache' );
				break;

			case 'heavy_load':
				$msg = __( 'The current server is under heavy load.', 'litespeed-cache' );
				break;

			case 'redetect_node':
				$msg = __( 'Online node needs to be redetected.', 'litespeed-cache' );
				break;

			case 'err_overdraw':
				$msg = __( 'Credits are not enough to proceed the current request.', 'litespeed-cache' );
				break;

			case 'W':
				$msg = __( '%s file not writable.', 'litespeed-cache' );
				break;

			case 'HTA_DNF':
				if ( ! is_array( $args ) ) {
					$args = array( '<code>' . $args . '</code>' );
				}
				$args[] = '.htaccess';
				$msg = __( 'Could not find %1$s in %2$s.', 'litespeed-cache' );
				break;

			case 'HTA_LOGIN_COOKIE_INVALID':
				$msg = sprintf( __( 'Invalid login cookie. Please check the %s file.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'HTA_BK':
				$msg = sprintf( __( 'Failed to back up %s file, aborted changes.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'HTA_R':
				$msg = sprintf( __( '%s file not readable.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'HTA_W':
				$msg = sprintf( __( '%s file not writable.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'HTA_GET':
				$msg = sprintf( __( 'Failed to get %s file contents.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'failed_tb_creation':
				$msg = __( 'Failed to create table %s! SQL: %s.', 'litespeed-cache' );
				break;

			case 'crawler_disabled':
				$msg = __( 'Crawler disabled by the server admin.', 'litespeed-cache' );
				break;

			/*** QC error code ***/
			case 'try_later':
				$msg = __( 'Previous request too recent. Please try again later.', 'litespeed-cache' );
				break;

			case strpos( $code, 'try_later ' ) === 0:
				$msg = sprintf( __( 'Previous request too recent. Please try again after %s.', 'litespeed-cache' ), '<code>' . Utility::readable_time( substr( $code, strlen( 'try_later ' ) ), 3600, true ) . '</code>' );
				break;

			case 'waiting_for_approval':
				$msg = __( 'Your application is waiting for approval.', 'litespeed-cache' );
				break;

			case 'callback_fail_hash':
				$msg = __( 'The callback validation to your domain failed due to hash mismatch.', 'litespeed-cache' );
				break;

			case 'callback_fail':
				$msg = __( 'The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.', 'litespeed-cache' );
				break;

			case substr( $code, 0, 14 ) === 'callback_fail ':
				$msg = __( 'The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: ', 'litespeed-cache' ) . substr( $code, 14 );
				break;

			case 'forbidden':
				$msg = __( 'Your domain has been forbidden from using our services due to a previous policy violation.', 'litespeed-cache' );
				break;

			default:
				$msg = __( 'Unknown error', 'litespeed-cache' ) . ': ' . $code;
				break;
		}

		if ( $args !== null ) {
			$msg = is_array( $args ) ? vsprintf( $msg, $args ) : sprintf( $msg, $args );
		}

		if ( isset( self::$CODE_SET[ $code ] ) ) {
			$msg = 'ERROR ' . self::$CODE_SET[ $code ] . ': ' . $msg;
		}

		return $msg;
	}
}<?php
/**
 * The admin settings handler of the plugin.
 *
 *
 * @since      1.1.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Admin_Settings extends Base {
	const ENROLL = '_settings-enroll';

	/**
	 * Save settings
	 *
	 * Both $_POST and CLI can use this way
	 *
	 * Import will directly call conf.cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function save( $raw_data ) {
		Debug2::debug( '[Settings] saving' );

		if ( empty( $raw_data[ self::ENROLL ] ) ) {
			exit( 'No fields' );
		}

		$raw_data = Admin::cleanup_text( $raw_data );

		// Convert data to config format
		$the_matrix = array();
		foreach ( array_unique( $raw_data[ self::ENROLL ] ) as $id ) {
			$child = false;
			// Drop array format
			if ( strpos( $id, '[' ) !== false ) {
				if ( strpos( $id, self::O_CDN_MAPPING ) === 0 || strpos( $id, self::O_CRAWLER_COOKIES ) === 0 ) { // CDN child | Cookie Crawler settings
					$child = substr( $id, strpos( $id, '[' ) + 1, strpos( $id, ']' ) - strpos( $id, '[' ) - 1 );
					$id = substr( $id, 0, strpos( $id, '[' ) ); // Drop ending []; Compatible with xx[0] way from CLI
				}
				else {
					$id = substr( $id, 0, strpos( $id, '[' ) ); // Drop ending []
				}
			}

			if ( ! array_key_exists( $id, self::$_default_options ) ) {
				continue;
			}

			// Validate $child
			if ( $id == self::O_CDN_MAPPING ) {
				if ( ! in_array( $child, array(
					self::CDN_MAPPING_URL,
					self::CDN_MAPPING_INC_IMG,
					self::CDN_MAPPING_INC_CSS,
					self::CDN_MAPPING_INC_JS,
					self::CDN_MAPPING_FILETYPE,
				) ) ) {
					continue;
				}
			}
			if ( $id == self::O_CRAWLER_COOKIES ) {
				if ( ! in_array( $child, array(
					self::CRWL_COOKIE_NAME,
					self::CRWL_COOKIE_VALS,
				) ) ) {
					continue;
				}
			}

			$data = false;

			if ( $child ) {
				$data = ! empty( $raw_data[ $id ][ $child ] ) ? $raw_data[ $id ][ $child ] : false; // []=xxx or [0]=xxx
			}
			else {
				$data = ! empty( $raw_data[ $id ] ) ? $raw_data[ $id ] : false;
			}

			/**
			 * Sanitize the value
			 */
			if ( $id == self::O_CDN_MAPPING || $id == self::O_CRAWLER_COOKIES ) {
				// Use existing in queue data if existed (Only available when $child != false)
				$data2 = array_key_exists( $id, $the_matrix ) ? $the_matrix[ $id ] : ( defined( 'WP_CLI' ) && WP_CLI ? $this->conf( $id ) : array() );
			}
			switch ( $id ) {
				case self::O_CDN_MAPPING:
					/**
					 * CDN setting
					 *
					 * Raw data format:
					 * 		cdn-mapping[url][] = 'xxx'
					 * 		cdn-mapping[url][2] = 'xxx2'
					 * 		cdn-mapping[inc_js][] = 1
					 *
					 * Final format:
					 * 		cdn-mapping[ 0 ][ url ] = 'xxx'
					 * 		cdn-mapping[ 2 ][ url ] = 'xxx2'
					 */
					if ( $data ) foreach ( $data as $k => $v ) {
						if ( $child == self::CDN_MAPPING_FILETYPE ) {
							$v = Utility::sanitize_lines( $v );
						}
						elseif ( in_array( $child, array(
							self::CDN_MAPPING_INC_IMG,
							self::CDN_MAPPING_INC_CSS,
							self::CDN_MAPPING_INC_JS,
						) ) ) {
							// Because these can't be auto detected in `config->update()`, need to format here
							$v = $v === 'false' ? 0 : (bool) $v;
						}

						if ( empty( $data2[ $k ] ) ) {
							$data2[ $k ] = array();
						}

						$data2[ $k ][ $child ] = $v;
					}

					$data = $data2;
					break;

				case self::O_CRAWLER_COOKIES:
					/**
					 * Cookie Crawler setting
					 * Raw Format:
					 * 		crawler-cookies[name][] = xxx
					 * 		crawler-cookies[name][2] = xxx2
					 * 		crawler-cookies[vals][] = xxx
					 *
					 * todo: need to allow null for values
					 *
					 * Final format:
					 * 		crawler-cookie[ 0 ][ name ] = 'xxx'
					 * 		crawler-cookie[ 0 ][ vals ] = 'xxx'
					 * 		crawler-cookie[ 2 ][ name ] = 'xxx2'
					 *
					 * empty line for `vals` use literal `_null`
					 */
					if ( $data ) foreach ( $data as $k => $v ) {
						if ( $child == self::CRWL_COOKIE_VALS ) {
							$v = Utility::sanitize_lines( $v );
						}

						if ( empty( $data2[ $k ] ) ) {
							$data2[ $k ] = array();
						}

						$data2[ $k ][ $child ] = $v;
					}

					$data = $data2;
					break;

				// Cache exclude cat
				case self::O_CACHE_EXC_CAT:
					$data2 = array();
					$data = Utility::sanitize_lines( $data );
					foreach ( $data as $v ) {
						$cat_id = get_cat_ID( $v );
						if ( ! $cat_id ) {
							continue;
						}

						$data2[] = $cat_id;
					}
					$data = $data2;
					break;

				// Cache exclude tag
				case self::O_CACHE_EXC_TAG :
					$data2 = array();
					$data = Utility::sanitize_lines( $data );
					foreach ( $data as $v ) {
						$term = get_term_by( 'name', $v, 'post_tag' );
						if ( ! $term ) {
							// todo: can show the error in admin error msg
							continue;
						}

						$data2[] = $term->term_id;
					}
					$data = $data2;
					break;

				default:
					break;
			}

			$the_matrix[ $id ] = $data;
		}

		// Special handler for CDN/Crawler 2d list to drop empty rows
		foreach ( $the_matrix as $id => $data ) {
			/**
			 * 		cdn-mapping[ 0 ][ url ] = 'xxx'
			 * 		cdn-mapping[ 2 ][ url ] = 'xxx2'
			 *
			 * 		crawler-cookie[ 0 ][ name ] = 'xxx'
			 * 		crawler-cookie[ 0 ][ vals ] = 'xxx'
			 * 		crawler-cookie[ 2 ][ name ] = 'xxx2'
			 */
			if ( $id == self::O_CDN_MAPPING || $id == self::O_CRAWLER_COOKIES ) {
				// Drop this line if all children elements are empty
				foreach ( $data as $k => $v ) {
					foreach ( $v as $v2 ) {
						if ( $v2 ) {
							continue 2;
						}
					}
					// If hit here, means all empty
					unset( $the_matrix[ $id ][ $k ] );
				}
			}

			// Don't allow repeated cookie name
			if ( $id == self::O_CRAWLER_COOKIES ) {
				$existed = array();
				foreach ( $the_matrix[ $id ] as $k => $v ) {
					if ( ! $v[ self::CRWL_COOKIE_NAME ] || in_array( $v[ self::CRWL_COOKIE_NAME ], $existed ) ) { // Filter repeated or empty name
						unset( $the_matrix[ $id ][ $k ] );
						continue;
					}

					$existed[] = $v[ self::CRWL_COOKIE_NAME ];
				}
			}

			// CDN mapping allow URL values repeated
			// if ( $id == self::O_CDN_MAPPING ) {}
		}

		// id validation will be inside
		$this->cls( 'Conf' )->update_confs( $the_matrix );

		$msg = __( 'Options saved.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Parses any changes made by the network admin on the network settings.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function network_save( $raw_data ) {
		Debug2::debug( '[Settings] network saving' );

		if ( empty( $raw_data[ self::ENROLL ] ) ) {
			exit( 'No fields' );
		}

		$raw_data = Admin::cleanup_text( $raw_data );

		foreach ( array_unique( $raw_data[ self::ENROLL ] ) as $id ) {
			// Append current field to setting save
			if ( ! array_key_exists( $id, self::$_default_site_options ) ) {
				continue;
			}

			$data = ! empty( $raw_data[ $id ] ) ? $raw_data[ $id ] : false;

			// id validation will be inside
			$this->cls( 'Conf' )->network_update( $id, $data );
		}

		// Update related files
		Activation::cls()->update_files();

		$msg = __( 'Options saved.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Hooked to the wp_redirect filter.
	 * This will only hook if there was a problem when saving the widget.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param string $location The location string.
	 * @return string the updated location string.
	 */
	public static function widget_save_err( $location ) {
		return str_replace( '?message=0', '?error=0', $location ) ;
	}

	/**
	 * Hooked to the widget_update_callback filter.
	 * Validate the LiteSpeed Cache settings on edit widget save.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param array $instance The new settings.
	 * @param array $new_instance
	 * @param array $old_instance The original settings.
	 * @param WP_Widget $widget The widget
	 * @return mixed Updated settings on success, false on error.
	 */
	public static function validate_widget_save( $instance, $new_instance, $old_instance, $widget ) {
		if ( empty( $new_instance ) ) {
			return $instance;
		}

		if ( ! isset( $new_instance[ ESI::WIDGET_O_ESIENABLE ] ) || ! isset( $new_instance[ ESI::WIDGET_O_TTL ] ) ) {
			return $instance;
		}

		$esi = intval( $new_instance[ ESI::WIDGET_O_ESIENABLE ] ) % 3;
		$ttl = (int) $new_instance[ ESI::WIDGET_O_TTL ];

		if ( $ttl != 0 && $ttl < 30 ) {
			add_filter( 'wp_redirect', __CLASS__ . '::widget_save_err' ) ;
			return false ; // invalid ttl.
		}

		if ( empty( $instance[ Conf::OPTION_NAME ] ) ) {// todo: to be removed
			$instance[ Conf::OPTION_NAME ] = array() ;
		}
		$instance[ Conf::OPTION_NAME ][ ESI::WIDGET_O_ESIENABLE ] = $esi ;
		$instance[ Conf::OPTION_NAME ][ ESI::WIDGET_O_TTL ] = $ttl ;

		$current = ! empty( $old_instance[ Conf::OPTION_NAME ] ) ? $old_instance[ Conf::OPTION_NAME ] : false ;
		if ( ! strpos( $_SERVER[ 'HTTP_REFERER' ], '/wp-admin/customize.php') ) {
			if ( ! $current || $esi != $current[ ESI::WIDGET_O_ESIENABLE ] ) {
				Purge::purge_all( 'Wdiget ESI_enable changed' ) ;
			}
			elseif ( $ttl != 0 && $ttl != $current[ ESI::WIDGET_O_TTL ] ) {
				Purge::add( Tag::TYPE_WIDGET . $widget->id ) ;
			}

			Purge::purge_all( 'Wdiget saved' ) ;
		}
		return $instance ;
	}
}
<?php
/**
 * The htaccess rewrite rule operation class
 *
 *
 * @since      1.0.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/inc
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Htaccess extends Root {
	private $frontend_htaccess = null;
	private $_default_frontend_htaccess = null;
	private $backend_htaccess = null;
	private $_default_backend_htaccess = null;
	private $theme_htaccess = null;// Not used yet
	private $frontend_htaccess_readable = false;
	private $frontend_htaccess_writable = false;
	private $backend_htaccess_readable = false;
	private $backend_htaccess_writable = false;
	private $theme_htaccess_readable = false;
	private $theme_htaccess_writable = false;
	private $__rewrite_on;

	const LS_MODULE_START = '<IfModule LiteSpeed>';
	const EXPIRES_MODULE_START = '<IfModule mod_expires.c>';
	const LS_MODULE_END = '</IfModule>';
	const LS_MODULE_REWRITE_START = '<IfModule mod_rewrite.c>';
	const REWRITE_ON = 'RewriteEngine on';
	const LS_MODULE_DONOTEDIT = "## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##";
	const MARKER = 'LSCACHE';
	const MARKER_NONLS = 'NON_LSCACHE';
	const MARKER_LOGIN_COOKIE = '### marker LOGIN COOKIE';
	const MARKER_MOBILE = '### marker MOBILE';
	const MARKER_NOCACHE_COOKIES = '### marker NOCACHE COOKIES';
	const MARKER_NOCACHE_USER_AGENTS = '### marker NOCACHE USER AGENTS';
	const MARKER_CACHE_RESOURCE = '### marker CACHE RESOURCE';
	const MARKER_FAVICON = '### marker FAVICON';
	const MARKER_BROWSER_CACHE = '### marker BROWSER CACHE';
	const MARKER_MINIFY = '### marker MINIFY';
	const MARKER_CORS = '### marker CORS';
	const MARKER_WEBP = '### marker WEBP';
	const MARKER_DROPQS = '### marker DROPQS';
	const MARKER_START = ' start ###';
	const MARKER_END = ' end ###';

	const RW_PATTERN_RES = '/.*/[^/]*(responsive|css|js|dynamic|loader|fonts)\.php';

	/**
	 * Initialize the class and set its properties.
	 *
	 * @since    1.0.7
	 */
	public function __construct() {
		$this->_path_set();
		$this->_default_frontend_htaccess = $this->frontend_htaccess;
		$this->_default_backend_htaccess = $this->backend_htaccess;

		$frontend_htaccess = defined( 'LITESPEED_CFG_HTACCESS' ) ? LITESPEED_CFG_HTACCESS : false;
		if ( $frontend_htaccess && substr( $frontend_htaccess, -10 ) === '/.htaccess' ) {
			$this->frontend_htaccess = $frontend_htaccess;
		}
		$backend_htaccess = defined( 'LITESPEED_CFG_HTACCESS_BACKEND' ) ? LITESPEED_CFG_HTACCESS_BACKEND : false;
		if ( $backend_htaccess && substr( $backend_htaccess, -10 ) === '/.htaccess' ) {
			$this->backend_htaccess = $backend_htaccess;
		}

		// Filter for frontend&backend htaccess path
		$this->frontend_htaccess = apply_filters( 'litespeed_frontend_htaccess', $this->frontend_htaccess );
		$this->backend_htaccess = apply_filters( 'litespeed_backend_htaccess', $this->backend_htaccess );

		clearstatcache();

		// frontend .htaccess privilege
		$test_permissions = file_exists( $this->frontend_htaccess ) ? $this->frontend_htaccess : dirname( $this->frontend_htaccess );
		if ( is_readable( $test_permissions ) ) {
			$this->frontend_htaccess_readable = true;
		}
		if ( is_writable( $test_permissions ) ) {
			$this->frontend_htaccess_writable = true;
		}

		$this->__rewrite_on = array(
			self::REWRITE_ON,
			"CacheLookup on",
			"RewriteRule .* - [E=Cache-Control:no-autoflush]",
			// "RewriteRule \.object-cache\.ini - [F,L]",
			'RewriteRule ' . preg_quote( self::CONF_FILE ) . ' - [F,L]',
		);

		// backend .htaccess privilege
		if ( $this->frontend_htaccess === $this->backend_htaccess ) {
			$this->backend_htaccess_readable = $this->frontend_htaccess_readable;
			$this->backend_htaccess_writable = $this->frontend_htaccess_writable;
		}
		else {
			$test_permissions = file_exists( $this->backend_htaccess ) ? $this->backend_htaccess : dirname( $this->backend_htaccess );
			if ( is_readable( $test_permissions ) ) {
				$this->backend_htaccess_readable = true;
			}
			if ( is_writable( $test_permissions ) ) {
				$this->backend_htaccess_writable = true;
			}
		}
	}

	/**
	 * Get if htaccess file is readable
	 *
	 * @since 1.1.0
	 * @return string
	 */
	private function _readable( $kind = 'frontend' ) {
		if( $kind === 'frontend' ) {
			return $this->frontend_htaccess_readable;
		}
		if( $kind === 'backend' ) {
			return $this->backend_htaccess_readable;
		}
	}

	/**
	 * Get if htaccess file is writable
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public function writable( $kind = 'frontend' ) {
		if( $kind === 'frontend' ) {
			return $this->frontend_htaccess_writable;
		}
		if( $kind === 'backend' ) {
			return $this->backend_htaccess_writable;
		}
	}

	/**
	 * Get frontend htaccess path
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public static function get_frontend_htaccess( $show_default = false ) {
		if ( $show_default ) {
			return self::cls()->_default_frontend_htaccess;
		}
		return self::cls()->frontend_htaccess;
	}

	/**
	 * Get backend htaccess path
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public static function get_backend_htaccess( $show_default = false ) {
		if ( $show_default ) {
			return self::cls()->_default_backend_htaccess;
		}
		return self::cls()->backend_htaccess;
	}

	/**
	 * Check to see if .htaccess exists starting at $start_path and going up directories until it hits DOCUMENT_ROOT.
	 *
	 * As dirname() strips the ending '/', paths passed in must exclude the final '/'
	 *
	 * @since 1.0.11
	 * @access private
	 */
	private function _htaccess_search( $start_path ) {
		while ( ! file_exists( $start_path . '/.htaccess' ) ) {
			if ( $start_path === '/' || ! $start_path ) {
				return false;
			}

			if ( ! empty( $_SERVER[ 'DOCUMENT_ROOT' ] ) && wp_normalize_path( $start_path ) === wp_normalize_path( $_SERVER[ 'DOCUMENT_ROOT' ] ) ) {
				return false;
			}

			if ( dirname( $start_path ) === $start_path ) {
				return false;
			}

			$start_path = dirname( $start_path );
		}

		return $start_path;
	}

	/**
	 * Set the path class variables.
	 *
	 * @since 1.0.11
	 * @access private
	 */
	private function _path_set() {
		$frontend = Router::frontend_path();
		$frontend_htaccess_search = $this->_htaccess_search( $frontend );// The existing .htaccess path to be used for frontend .htaccess
		$this->frontend_htaccess = ( $frontend_htaccess_search ?: $frontend ) . '/.htaccess';

		$backend = realpath( ABSPATH ); // /home/user/public_html/backend/
		if ( $frontend == $backend ) {
			$this->backend_htaccess = $this->frontend_htaccess;
			return;
		}

		// Backend is a different path
		$backend_htaccess_search = $this->_htaccess_search( $backend );
		// Found affected .htaccess
		if ( $backend_htaccess_search ) {
			$this->backend_htaccess = $backend_htaccess_search . '/.htaccess';
			return;
		}

		// Frontend path is the parent of backend path
		if ( stripos( $backend, $frontend . '/' ) === 0 ) {
			// backend use frontend htaccess
			$this->backend_htaccess = $this->frontend_htaccess;
			return;
		}

		$this->backend_htaccess = $backend . '/.htaccess';
	}

	/**
	 * Get corresponding htaccess path
	 *
	 * @since 1.1.0
	 * @param  string $kind Frontend or backend
	 * @return string       Path
	 */
	public function htaccess_path( $kind = 'frontend' ) {
		switch ( $kind ) {
			case 'backend' :
				$path = $this->backend_htaccess;
				break;

			case 'frontend' :
			default :
				$path = $this->frontend_htaccess;
				break;
		}
		return $path;
	}

	/**
	 * Get the content of the rules file.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.0.4
	 * @since  2.9 Used exception for failed reading
	 * @access public
	 */
	public function htaccess_read( $kind = 'frontend' ) {
		$path = $this->htaccess_path( $kind );

		if( ! $path || ! file_exists( $path ) ) {
			return "\n";
		}

		if ( ! $this->_readable( $kind ) ) {
			Error::t( 'HTA_R' );
		}

		$content = File::read( $path );
		if ( $content === false ) {
			Error::t( 'HTA_GET' );
		}

		// Remove ^M characters.
		$content = str_ireplace( "\x0D", "", $content );
		return $content;
	}

	/**
	 * Try to backup the .htaccess file if we didn't save one before.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.0.10
	 * @access private
	 */
	private function _htaccess_backup( $kind = 'frontend' ) {
		$path = $this->htaccess_path( $kind );

		if ( ! file_exists( $path ) ) {
			return;
		}

		if ( file_exists( $path . '.bk' ) ) {
			return;
		}

		$res = copy( $path, $path . '.bk' );

		// Failed to backup, abort
		if ( ! $res ) {
			Error::t( 'HTA_BK' );
		}
	}

	/**
	 * Get mobile view rule from htaccess file
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.1.0
	 */
	public function current_mobile_agents() {
		$rules = $this->_get_rule_by( self::MARKER_MOBILE );
		if( ! isset( $rules[ 0 ] ) ) {
			Error::t( 'HTA_DNF', self::MARKER_MOBILE );
		}

		$rule = trim( $rules[ 0 ] );
		// 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex( $cfg[ $id ], true ) . ' [NC]';
		$match = substr( $rule, strlen( 'RewriteCond %{HTTP_USER_AGENT} ' ), -strlen( ' [NC]' ) );

		if ( ! $match ) {
			Error::t( 'HTA_DNF', __( 'Mobile Agent Rules', 'litespeed-cache' ) );
		}

		return $match;
	}

	/**
	 * Parse rewrites rule from the .htaccess file.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function current_login_cookie( $kind = 'frontend' ) {
		$rule = $this->_get_rule_by( self::MARKER_LOGIN_COOKIE, $kind );

		if( ! $rule ) {
			Error::t( 'HTA_DNF', self::MARKER_LOGIN_COOKIE );
		}

		if( strpos( $rule, 'RewriteRule .? - [E=' ) !== 0 ) {
			Error::t( 'HTA_LOGIN_COOKIE_INVALID' );
		}

		$rule_cookie = substr( $rule, strlen( 'RewriteRule .? - [E=' ), -1 );

		if ( LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS' ) {
			$rule_cookie = trim( $rule_cookie, '"' );
		}

		// Drop `Cache-Vary:`
		$rule_cookie = substr( $rule_cookie, strlen( 'Cache-Vary:' ) );

		return $rule_cookie;
	}

	/**
	 * Get rewrite rules based on the marker
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _get_rule_by( $cond, $kind = 'frontend' ) {
		clearstatcache();
		$path = $this->htaccess_path( $kind );
		if ( ! $this->_readable( $kind ) ) {
			return false;
		}

		$rules = File::extract_from_markers( $path, self::MARKER );
		if( ! in_array( $cond . self::MARKER_START, $rules ) || ! in_array( $cond . self::MARKER_END, $rules ) ) {
			return false;
		}

		$key_start = array_search( $cond . self::MARKER_START, $rules );
		$key_end = array_search( $cond . self::MARKER_END, $rules );
		if( $key_start === false || $key_end === false ) {
			return false;
		}

		$results = array_slice( $rules, $key_start + 1, $key_end - $key_start - 1 );
		if( ! $results ) {
			return false;
		}

		if( count( $results ) == 1 ) {
			return trim( $results[ 0 ] );
		}

		return array_filter( $results );
	}

	/**
	 * Generate browser cache rules
	 *
	 * @since  1.3
	 * @access private
	 * @return array Rules set
	 */
	private function _browser_cache_rules( $cfg ) {
		/**
		 * Add ttl setting
		 * @since 1.6.3
		 */
		$id = Base::O_CACHE_TTL_BROWSER;
		$ttl = $cfg[ $id ];
		$rules = array(
			self::EXPIRES_MODULE_START,
			// '<FilesMatch "\.(pdf|ico|svg|xml|jpg|jpeg|png|gif|webp|ogg|mp4|webm|js|css|woff|woff2|ttf|eot)(\.gz)?$">',
				'ExpiresActive on',
				'ExpiresByType application/pdf A' . $ttl,
				'ExpiresByType image/x-icon A' . $ttl,
				'ExpiresByType image/vnd.microsoft.icon A' . $ttl,
				'ExpiresByType image/svg+xml A' . $ttl,
				'',
				'ExpiresByType image/jpg A' . $ttl,
				'ExpiresByType image/jpeg A' . $ttl,
				'ExpiresByType image/png A' . $ttl,
				'ExpiresByType image/gif A' . $ttl,
				'ExpiresByType image/webp A' . $ttl,
				'',
				'ExpiresByType video/ogg A' . $ttl,
				'ExpiresByType audio/ogg A' . $ttl,
				'ExpiresByType video/mp4 A' . $ttl,
				'ExpiresByType video/webm A' . $ttl,
				'',
				'ExpiresByType text/css A' . $ttl,
				'ExpiresByType text/javascript A' . $ttl,
				'ExpiresByType application/javascript A' . $ttl,
				'ExpiresByType application/x-javascript A' . $ttl,
				'',
				'ExpiresByType application/x-font-ttf A' . $ttl,
				'ExpiresByType application/x-font-woff A' . $ttl,
				'ExpiresByType application/font-woff A' . $ttl,
				'ExpiresByType application/font-woff2 A' . $ttl,
				'ExpiresByType application/vnd.ms-fontobject A' . $ttl,
				'ExpiresByType font/ttf A' . $ttl,
				'ExpiresByType font/otf A' . $ttl,
				'ExpiresByType font/woff A' . $ttl,
				'ExpiresByType font/woff2 A' . $ttl,
				'',
			// '</FilesMatch>',
			self::LS_MODULE_END,
		);
		return $rules;
	}

	/**
	 * Generate CORS rules for fonts
	 *
	 * @since  1.5
	 * @access private
	 * @return array Rules set
	 */
	private function _cors_rules() {
		return array(
			'<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font\.css)$">',
				'<IfModule mod_headers.c>',
					'Header set Access-Control-Allow-Origin "*"',
				'</IfModule>',
			'</FilesMatch>',
		);
	}

	/**
	 * Generate rewrite rules based on settings
	 *
	 * @since  1.3
	 * @access private
	 * @param  array $cfg  The settings to be used for rewrite rule
	 * @return array      Rules array
	 */
	private function _generate_rules( $cfg ) {
		$new_rules = array();
		$new_rules_nonls = array();
		$new_rules_backend = array();
		$new_rules_backend_nonls = array();

		// mobile agents
		$id = Base::O_CACHE_MOBILE_RULES;
		if ( ( ! empty( $cfg[ Base::O_CACHE_MOBILE ] ) || ! empty( $cfg[ Base::O_GUEST ] ) ) && ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_MOBILE . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex( $cfg[ $id ], true ) . ' [NC]';
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+ismobile]';
			$new_rules[] = self::MARKER_MOBILE . self::MARKER_END;
			$new_rules[] = '';
		}

		// nocache cookie
		$id = Base::O_CACHE_EXC_COOKIES;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_NOCACHE_COOKIES . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_COOKIE} ' .  Utility::arr2regex( $cfg[ $id ], true );
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:no-cache]';
			$new_rules[] = self::MARKER_NOCACHE_COOKIES . self::MARKER_END;
			$new_rules[] = '';
		}

		// nocache user agents
		$id = Base::O_CACHE_EXC_USERAGENTS;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_NOCACHE_USER_AGENTS . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex( $cfg[ $id ], true );
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:no-cache]';
			$new_rules[] = self::MARKER_NOCACHE_USER_AGENTS . self::MARKER_END;
			$new_rules[] = '';
		}

		// caching php resource
		$id = Base::O_CACHE_RES;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = $new_rules_backend[] = self::MARKER_CACHE_RESOURCE . self::MARKER_START;
			$new_rules[] = $new_rules_backend[] = 'RewriteRule ' . LSCWP_CONTENT_FOLDER . self::RW_PATTERN_RES . ' - [E=cache-control:max-age=3600]';
			$new_rules[] = $new_rules_backend[] = self::MARKER_CACHE_RESOURCE . self::MARKER_END;
			$new_rules[] = $new_rules_backend[] = '';
		}

		// check login cookie
		$id = Base::O_CACHE_LOGIN_COOKIE;
		$vary_cookies = $cfg[ $id ] ? array( $cfg[ $id ] ) : array();
		if ( LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS' ) { // Need to keep this due to different behavior of OLS when handling response vary header @Sep/22/2018
			if ( defined( 'COOKIEHASH' ) ) {
				$vary_cookies[] = ',wp-postpass_' . COOKIEHASH;
			}
			$vary_cookies = apply_filters( 'litespeed_vary_cookies', $vary_cookies ); // todo: test if response vary header can work in latest OLS, drop the above two lines
		}
		// frontend and backend
		if ( $vary_cookies ) {
			$env = 'Cache-Vary:' . implode( ',', $vary_cookies );
			if ( LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS' ) {
				$env = '"' . $env . '"';
			}
			$new_rules[] = $new_rules_backend[] = self::MARKER_LOGIN_COOKIE . self::MARKER_START;
			$new_rules[] = $new_rules_backend[] = 'RewriteRule .? - [E=' . $env . ']';
			$new_rules[] = $new_rules_backend[] = self::MARKER_LOGIN_COOKIE . self::MARKER_END;
			$new_rules[] = '';
		}

		// favicon
		// frontend and backend
		$id = Base::O_CACHE_FAVICON;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = $new_rules_backend[] = self::MARKER_FAVICON . self::MARKER_START;
			$new_rules[] = $new_rules_backend[] = 'RewriteRule favicon\.ico$ - [E=cache-control:max-age=86400]';
			$new_rules[] = $new_rules_backend[] = self::MARKER_FAVICON . self::MARKER_END;
			$new_rules[] = '';
		}

		// CORS font rules
		$id = Base::O_CDN;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_CORS . self::MARKER_START;
			$new_rules = array_merge( $new_rules, $this->_cors_rules() ); //todo: network
			$new_rules[] = self::MARKER_CORS . self::MARKER_END;
			$new_rules[] = '';
		}

		// webp support
		$id = Base::O_IMG_OPTM_WEBP_REPLACE;
		if ( ! empty( $cfg[ $id ] ) || ! empty( $cfg[ Base::O_GUEST ] ) ) {
			$new_rules[] = self::MARKER_WEBP . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_ACCEPT} "image/webp" [or]';
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} "Page Speed"';
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]';
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} iPhone.*Version/(\d{2}).*Safari';
			$new_rules[] = 'RewriteCond %1 >13';
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]';
			$new_rules[] = self::MARKER_WEBP . self::MARKER_END;
			$new_rules[] = '';
		}

		// drop qs support
		$id = Base::O_CACHE_DROP_QS;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_DROPQS . self::MARKER_START;
			foreach ( $cfg[ $id ] as $v ) {
				$new_rules[] = 'CacheKeyModify -qs:' . $v;
			}
			$new_rules[] = self::MARKER_DROPQS . self::MARKER_END;
			$new_rules[] = '';
		}

		// Browser cache
		$id = Base::O_CACHE_BROWSER;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules_nonls[] = $new_rules_backend_nonls[] = self::MARKER_BROWSER_CACHE . self::MARKER_START;
			$new_rules_nonls = array_merge( $new_rules_nonls, $this->_browser_cache_rules( $cfg ) );
			$new_rules_backend_nonls = array_merge( $new_rules_backend_nonls, $this->_browser_cache_rules( $cfg ) );
			$new_rules_nonls[] = $new_rules_backend_nonls[] = self::MARKER_BROWSER_CACHE . self::MARKER_END;
			$new_rules_nonls[] = '';
		}

		// Add module wrapper for LiteSpeed rules
		if ( $new_rules ) {
			$new_rules = $this->_wrap_ls_module( $new_rules );
		}

		if ( $new_rules_backend ) {
			$new_rules_backend = $this->_wrap_ls_module( $new_rules_backend );
		}

		return array( $new_rules, $new_rules_backend, $new_rules_nonls, $new_rules_backend_nonls );
	}

	/**
	 * Add LitSpeed module wrapper with rewrite on
	 *
	 * @since  2.1.1
	 * @access private
	 */
	private function _wrap_ls_module( $rules = array() ) {
		return array_merge(
			array( self::LS_MODULE_START ),
			$this->__rewrite_on,
			array( '' ),
			$rules,
			array( self::LS_MODULE_END )
		);
	}

	/**
	 * Insert LitSpeed module wrapper with rewrite on
	 *
	 * @since  2.1.1
	 * @access public
	 */
	public function insert_ls_wrapper() {
		$rules = $this->_wrap_ls_module();
		$this->_insert_wrapper( $rules );
	}

	/**
	 * wrap rules with module on info
	 *
	 * @since  1.1.5
	 * @param  array  $rules
	 * @return array        wrapped rules with module info
	 */
	private function _wrap_do_no_edit( $rules ) {
		// When to clear rules, don't need DONOTEDIT msg
		if ( $rules === false || ! is_array( $rules ) ) {
			return $rules;
		}

		$rules = array_merge(
			array( self::LS_MODULE_DONOTEDIT ),
			$rules,
			array( self::LS_MODULE_DONOTEDIT )
		);

		return $rules;
	}

	/**
	 * Write to htaccess with rules
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _insert_wrapper( $rules = array(), $kind = false, $marker = false ) {
		if ( $kind != 'backend' ) {
			$kind = 'frontend';
		}

		// Default marker is LiteSpeed marker `LSCACHE`
		if ( $marker === false ) {
			$marker = self::MARKER;
		}

		$this->_htaccess_backup( $kind );

		File::insert_with_markers( $this->htaccess_path( $kind ), $this->_wrap_do_no_edit( $rules ), $marker, true );
	}

	/**
	 * Update rewrite rules based on setting
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.3
	 * @access public
	 */
	public function update( $cfg ) {
		list( $frontend_rules, $backend_rules, $frontend_rules_nonls, $backend_rules_nonls ) = $this->_generate_rules( $cfg );

		// Check frontend content
		list( $rules, $rules_nonls ) = $this->_extract_rules();

		// Check Non-LiteSpeed rules
		if ( $this->_wrap_do_no_edit( $frontend_rules_nonls ) != $rules_nonls ) {
			Debug2::debug( '[Rules] Update non-ls frontend rules' );
			// Need to update frontend htaccess
			try {
				$this->_insert_wrapper( $frontend_rules_nonls, false, self::MARKER_NONLS );
			} catch ( \Exception $e ) {
				$manual_guide_codes = $this->_rewrite_codes_msg( $this->frontend_htaccess, $frontend_rules_nonls, self::MARKER_NONLS );
				Debug2::debug( '[Rules] Update Failed' );
				throw new \Exception( $manual_guide_codes );
			}
		}

		// Check LiteSpeed rules
		if ( $this->_wrap_do_no_edit( $frontend_rules ) != $rules ) {
			Debug2::debug( '[Rules] Update frontend rules' );
			// Need to update frontend htaccess
			try {
				$this->_insert_wrapper( $frontend_rules );
			} catch ( \Exception $e ) {
				Debug2::debug( '[Rules] Update Failed' );
				$manual_guide_codes = $this->_rewrite_codes_msg( $this->frontend_htaccess, $frontend_rules );
				throw new \Exception( $manual_guide_codes );
			}
		}

		if ( $this->frontend_htaccess !== $this->backend_htaccess ) {
			list( $rules, $rules_nonls ) = $this->_extract_rules( 'backend' );

			// Check Non-LiteSpeed rules for backend
			if ( $this->_wrap_do_no_edit( $backend_rules_nonls ) != $rules_nonls ) {
				Debug2::debug( '[Rules] Update non-ls backend rules' );
				// Need to update frontend htaccess
				try {
					$this->_insert_wrapper( $backend_rules_nonls, 'backend', self::MARKER_NONLS );
				} catch ( \Exception $e ) {
					Debug2::debug( '[Rules] Update Failed' );
					$manual_guide_codes = $this->_rewrite_codes_msg( $this->backend_htaccess, $backend_rules_nonls, self::MARKER_NONLS );
					throw new \Exception( $manual_guide_codes );
				}
			}

			// Check backend content
			if ( $this->_wrap_do_no_edit( $backend_rules ) != $rules ) {
				Debug2::debug( '[Rules] Update backend rules' );
				// Need to update backend htaccess
				try {
					$this->_insert_wrapper( $backend_rules, 'backend' );
				} catch ( \Exception $e ) {
					Debug2::debug( '[Rules] Update Failed' );
					$manual_guide_codes = $this->_rewrite_codes_msg( $this->backend_htaccess, $backend_rules );
					throw new \Exception( $manual_guide_codes );
				}
			}
		}

		return true;
	}

	/**
	 * Get existing rewrite rules
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since  1.3
	 * @access private
	 * @param  string $kind Frontend or backend .htaccess file
	 */
	private function _extract_rules( $kind = 'frontend' ) {
		clearstatcache();
		$path = $this->htaccess_path( $kind );
		if ( ! $this->_readable( $kind ) ) {
			Error::t( 'E_HTA_R' );
		}

		$rules = File::extract_from_markers( $path, self::MARKER );
		$rules_nonls = File::extract_from_markers( $path, self::MARKER_NONLS );

		return array( $rules, $rules_nonls );
	}

	/**
	 * Output the msg with rules plain data for manual insert
	 *
	 * @since  1.1.5
	 * @param  string  $file
	 * @param  array  $rules
	 * @return string        final msg to output
	 */
	private function _rewrite_codes_msg( $file, $rules, $marker = false ) {
		return sprintf( __( '<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s' , 'litespeed-cache' ),
				$file,
				'<textarea style="width:100%;" rows="10" readonly>' . htmlspecialchars( $this->_wrap_rules_with_marker( $rules, $marker ) ) . '</textarea>'
			);
	}

	/**
	 * Generate rules plain data for manual insert
	 *
	 * @since  1.1.5
	 */
	private function _wrap_rules_with_marker( $rules, $marker = false ) {
		// Default marker is LiteSpeed marker `LSCACHE`
		if ( $marker === false ) {
			$marker = self::MARKER;
		}

		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";
		$new_file_data = implode( "\n", array_merge(
			array( $start_marker ),
			$this->_wrap_do_no_edit($rules),
			array( $end_marker )
		) );

		return $new_file_data;
	}

	/**
	 * Clear the rules file of any changes added by the plugin specifically.
	 *
	 * @since 1.0.4
	 * @access public
	 */
	public function clear_rules() {
		$this->_insert_wrapper( false );// Use false to avoid do-not-edit msg
		// Clear non ls rules
		$this->_insert_wrapper( false, false, self::MARKER_NONLS );

		if ( $this->frontend_htaccess !== $this->backend_htaccess ) {
			$this->_insert_wrapper( false, 'backend' );
			$this->_insert_wrapper( false, 'backend', self::MARKER_NONLS );
		}
	}
}

<?php
/**
 * The Crawler Sitemap Class
 *
 * @since      	1.1.0
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Crawler_Map extends Root {
	const BM_MISS = 1;
	const BM_HIT = 2;
	const BM_BLACKLIST = 4;

	private $_home_url; // Used to simplify urls
	private $_tb;
	private $__data;
	private $_conf_map_timeout;
	private $_urls = array();

	/**
	 * Instantiate the class
	 *
	 * @since 1.1.0
	 */
	public function __construct() {
		$this->_home_url = get_home_url();
		$this->__data = Data::cls();
		$this->_tb = $this->__data->tb( 'crawler' );
		$this->_tb_blacklist = $this->__data->tb( 'crawler_blacklist' );
		$this->_conf_map_timeout = $this->conf( Base::O_CRAWLER_MAP_TIMEOUT );
	}

	/**
	 * Save URLs crawl status into DB
	 *
	 * @since  3.0
	 * @access public
	 */
	public function save_map_status( $list, $curr_crawler ) {
		global $wpdb;
		Utility::compatibility();

		$total_crawler = count( Crawler::cls()->list_crawlers() );
		$total_crawler_pos = $total_crawler - 1;

		// Replace current crawler's position
		$curr_crawler = (int) $curr_crawler;
		foreach ( $list as $bit => $ids ) { // $ids = [ id => [ url, code ], ... ]
			if ( ! $ids ) {
				continue;
			}
			Debug2::debug( "🐞🗺️ Update map [crawler] $curr_crawler [bit] $bit [count] " . count( $ids ) );

			// Update res first, then reason
			$right_pos = $total_crawler_pos - $curr_crawler;
			$sql_res = "CONCAT( LEFT( res, $curr_crawler ), '$bit', RIGHT( res, $right_pos ) )";

			$id_all = implode( ',', array_map( 'intval', array_keys( $ids ) ) );

			$wpdb->query( "UPDATE `$this->_tb` SET res = $sql_res WHERE id IN ( $id_all )" );

			// Add blacklist
			if ( $bit == 'B' || $bit == 'N' ) {
				$q = "SELECT a.id, a.url FROM `$this->_tb_blacklist` a LEFT JOIN `$this->_tb` b ON b.url=a.url WHERE b.id IN ( $id_all )";
				$existing = $wpdb->get_results( $q, ARRAY_A );
				// Update current crawler status tag in existing blacklist
				if ( $existing ) {
					$count = $wpdb->query( "UPDATE `$this->_tb_blacklist` SET res = $sql_res WHERE id IN ( " . implode( ',', array_column( $existing, 'id' ) ) . " )" );
					Debug2::debug( '🐞🗺️ Update blacklist [count] ' . $count );
				}

				// Append new blacklist
				if ( count( $ids ) > count( $existing ) ) {
					$new_urls = array_diff( array_column( $ids, 'url' ), array_column( $existing, 'url') );

					Debug2::debug( '🐞🗺️ Insert into blacklist [count] ' . count( $new_urls ) );

					$q = "INSERT INTO `$this->_tb_blacklist` ( url, res, reason ) VALUES " . implode( ',', array_fill( 0, count( $new_urls ), '( %s, %s, %s )' ) );
					$data = array();
					$res = array_fill( 0, $total_crawler, '-' );
					$res[ $curr_crawler ] = $bit;
					$res = implode( '', $res );
					$default_reason = $total_crawler > 1 ? str_repeat( ',', $total_crawler - 1 ) : ''; // Pre-populate default reason value first, update later
					foreach ( $new_urls as $url ) {
						$data[] = $url;
						$data[] = $res;
						$data[] = $default_reason;
					}
					$wpdb->query( $wpdb->prepare( $q, $data ) );
				}
			}

			// Update sitemap reason w/ HTTP code
			$reason_array = array();
			foreach ( $ids as $id => $v2 ) {
				$code = (int)$v2[ 'code' ];
				if ( empty( $reason_array[ $code ] ) ) {
					$reason_array[ $code ] = array();
				}
				$reason_array[ $code ][] = (int)$id;
			}

			foreach ( $reason_array as $code => $v2 ) {
				// Complement comma
				if ( $curr_crawler ) {
					$code = ',' . $code;
				}
				if ( $curr_crawler < $total_crawler_pos ) {
					$code .= ',';
				}

				$count = $wpdb->query( "UPDATE `$this->_tb` SET reason = CONCAT( SUBSTRING_INDEX( reason, ',', $curr_crawler ), '$code', SUBSTRING_INDEX( reason, ',', -$right_pos ) ) WHERE id IN (" . implode( ',', $v2 ) . ")" );

				Debug2::debug( "🐞🗺️ Update map reason [code] $code [pos] left $curr_crawler right -$right_pos [count] $count" );

				// Update blacklist reason
				if ( $bit == 'B' || $bit == 'N' ) {
					$count = $wpdb->query( "UPDATE `$this->_tb_blacklist` a LEFT JOIN `$this->_tb` b ON b.url = a.url SET a.reason = CONCAT( SUBSTRING_INDEX( a.reason, ',', $curr_crawler ), '$code', SUBSTRING_INDEX( a.reason, ',', -$right_pos ) ) WHERE b.id IN (" . implode( ',', $v2 ) . ")" );

					Debug2::debug( "🐞🗺️ Update blacklist [code] $code [pos] left $curr_crawler right -$right_pos [count] $count" );
				}
			}


			// Reset list
			$list[ $bit ] = array();
		}

		return $list;
	}

	/**
	 * Add one record to blacklist
	 * NOTE: $id is sitemap table ID
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_add( $id ) {
		global $wpdb;

		$id = (int)$id;

		// Build res&reason
		$total_crawler = count( Crawler::cls()->list_crawlers() );
		$res = str_repeat( 'B', $total_crawler );
		$reason = implode( ',', array_fill( 0, $total_crawler, 'Man' ) );

		$row = $wpdb->get_row( "SELECT a.url, b.id FROM `$this->_tb` a LEFT JOIN `$this->_tb_blacklist` b ON b.url = a.url WHERE a.id = '$id'", ARRAY_A );

		if ( ! $row ) {
			Debug2::debug( '🐞🗺️ blacklist failed to add [id] ' . $id );
			return;
		}

		Debug2::debug( '🐞🗺️ Add to blacklist [url] ' . $row[ 'url' ] );

		$q = "UPDATE `$this->_tb` SET res = %s, reason = %s WHERE id = %d";
		$wpdb->query( $wpdb->prepare( $q, array( $res, $reason, $id ) ) );

		if ( $row[ 'id' ] ) {
			$q = "UPDATE `$this->_tb_blacklist` SET res = %s, reason = %s WHERE id = %d";
			$wpdb->query( $wpdb->prepare( $q, array( $res, $reason, $row[ 'id' ] ) ) );
		}
		else {
			$q = "INSERT INTO `$this->_tb_blacklist` (url, res, reason) VALUES (%s, %s, %s)";
			$wpdb->query( $wpdb->prepare( $q, array( $row[ 'url' ], $res, $reason ) ) );
		}

	}

	/**
	 * Delete one record from blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_del( $id ) {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			return;
		}

		$id = (int)$id;

		Debug2::debug( '🐞🗺️ blacklist delete [id] ' . $id );

		$wpdb->query( "UPDATE `$this->_tb` SET res = REPLACE( REPLACE( res, 'N', '-' ), 'B', '-' ) WHERE url = ( SELECT url FROM `$this->_tb_blacklist` WHERE id = '$id' )" );

		$wpdb->query( "DELETE FROM `$this->_tb_blacklist` WHERE id = '$id'" );
	}

	/**
	 * Empty blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_empty() {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			return;
		}

		Debug2::debug( '🐞🗺️ Truncate blacklist' );

		$wpdb->query( "UPDATE `$this->_tb` SET res = REPLACE( REPLACE( res, 'N', '-' ), 'B', '-' )" );

		$wpdb->query( "TRUNCATE `$this->_tb_blacklist`" );
	}

	/**
	 * List blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function list_blacklist( $limit = false, $offset = false ) {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			return array();
		}

		$q = "SELECT * FROM `$this->_tb_blacklist` ORDER BY id DESC";

		if ( $limit !== false ) {
			if ( $offset === false ) {
				$total = $this->count_blacklist();
				$offset = Utility::pagination( $total, $limit, true );
			}
			$q .= " LIMIT %d, %d";
			$q = $wpdb->prepare( $q, $offset, $limit );
		}
		return $wpdb->get_results( $q, ARRAY_A );

	}

	/**
	 * Count blacklist
	 */
	public function count_blacklist() {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb_blacklist`";
		return $wpdb->get_var( $q );
	}

	/**
	 * Empty sitemap
	 *
	 * @since  3.0
	 * @access public
	 */
	public function empty_map() {
		Data::cls()->tb_del( 'crawler' );

		$msg = __( 'Sitemap cleaned successfully', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * List generated sitemap
	 *
	 * @since  3.0
	 * @access public
	 */
	public function list_map( $limit, $offset = false ) {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler' ) ) {
			return array();
		}

		if ( $offset === false ) {
			$total = $this->count_map();
			$offset = Utility::pagination( $total, $limit, true );
		}


		$q = "SELECT * FROM `$this->_tb` ORDER BY id LIMIT %d, %d";
		return $wpdb->get_results( $wpdb->prepare( $q, $offset, $limit ), ARRAY_A );

	}

	/**
	 * Count sitemap
	 */
	public function count_map() {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler' ) ) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb`";
		return $wpdb->get_var( $q );
	}

	/**
	 * Generate sitemap
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function gen() {
		$count = $this->_gen();

		if ( ! $count ) {
			Admin_Display::error( __( 'No valid sitemap parsed for crawler.', 'litespeed-cache' ) );
			return;
		}

		$msg = sprintf( __( 'Sitemap created successfully: %d items', 'litespeed-cache' ), $count );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Generate the sitemap
	 *
	 * @since    1.1.0
	 * @access private
	 */
	private function _gen() {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler' ) ) {
			$this->__data->tb_create( 'crawler' );
		}

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			$this->__data->tb_create( 'crawler_blacklist' );
		}

		// use custom sitemap
		if ( ! $sitemap = $this->conf( Base::O_CRAWLER_SITEMAP ) ) {
			return false;
		}

		$offset = strlen( $this->_home_url );

		try {
			$this->_parse( $sitemap );
		} catch( \Exception $e ) {
			Debug2::debug( '🐞🗺️ ❌ failed to parse custom sitemap: ' . $e->getMessage() );
		}

		if ( is_array( $this->_urls ) && ! empty( $this->_urls ) ) {
			if ( $this->conf( Base::O_CRAWLER_DROP_DOMAIN ) ) {
				foreach ( $this->_urls as $k => $v ) {
					if ( stripos( $v, $this->_home_url ) !== 0 ) {
						unset( $this->_urls[ $k ] );
						continue;
					}
					$this->_urls[ $k ] = substr( $v, $offset );
				}
			}

			$this->_urls = array_unique( $this->_urls );
		}

		Debug2::debug( '🐞🗺️ Truncate sitemap' );
		$wpdb->query( "TRUNCATE `$this->_tb`" );

		Debug2::debug( '🐞🗺️ Generate sitemap' );

		// Filter URLs in blacklist
		$blacklist = $this->list_blacklist();

		$full_blacklisted = array();
		$partial_blacklisted = array();
		foreach ( $blacklist as $v ) {
			if ( strpos( $v[ 'res' ], '-' ) === false ) { // Full blacklisted
				$full_blacklisted[] = $v[ 'url' ];
			}
			else {
				// Replace existing reason
				$v[ 'reason' ] = explode( ',', $v[ 'reason' ] );
				$v[ 'reason' ] = array_map( function( $element ){ return $element ? 'Existed' : ''; }, $v[ 'reason' ] );
				$v[ 'reason' ] = implode( ',', $v[ 'reason' ] );
				$partial_blacklisted[ $v[ 'url' ] ] = array(
					'res' => $v[ 'res' ],
					'reason' => $v[ 'reason' ],
				);
			}
		}

		// Drop all blacklisted URLs
		$this->_urls = array_diff( $this->_urls, $full_blacklisted );

		// Default res & reason
		$crawler_count = count( Crawler::cls()->list_crawlers() );
		$default_res = str_repeat( '-', $crawler_count );
		$default_reason = $crawler_count > 1 ? str_repeat( ',', $crawler_count - 1 ) : '';

		$data = array();
		foreach ( $this->_urls as $url ) {
			$data[] = $url;
			$data[] = array_key_exists( $url, $partial_blacklisted ) ? $partial_blacklisted[ $url ][ 'res' ] : $default_res;
			$data[] = array_key_exists( $url, $partial_blacklisted ) ? $partial_blacklisted[ $url ][ 'reason' ] : $default_reason;
		}

		foreach ( array_chunk( $data, 300 ) as $data2 ) {
			$this->_save( $data2 );
		}

		// Reset crawler
		Crawler::cls()->reset_pos();

		return count( $this->_urls );
	}

	/**
	 * Save data to table
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _save( $data, $fields = 'url,res,reason' ) {
		global $wpdb;

		if ( empty( $data ) ) {
			return;
		}

		$q = "INSERT INTO `$this->_tb` ( $fields ) VALUES ";

		// Add placeholder
		$q .= Utility::chunk_placeholder( $data, $fields );

		// Store data
		$wpdb->query( $wpdb->prepare( $q, $data ) );
	}

	/**
	 * Parse custom sitemap and return urls
	 *
	 * @since    1.1.1
	 * @access private
	 */
	private function _parse( $sitemap ) {
		/**
		 * Read via wp func to avoid allow_url_fopen = off
		 * @since  2.2.7
		 */
		$response = wp_remote_get( $sitemap, array( 'timeout' => $this->_conf_map_timeout ) );
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			Debug2::debug( '🐞🗺️ failed to read sitemap: ' . $error_message );

			throw new \Exception( 'Failed to remote read ' . $sitemap );
		}

		$xml_object = simplexml_load_string( $response[ 'body' ], null, LIBXML_NOCDATA );
		if ( ! $xml_object ) {
			if ( $this->_urls ) {
				return;
			}

			throw new \Exception( 'Failed to parse xml ' . $sitemap );
		}

		// start parsing
		$xml_array = (array) $xml_object;
		if ( ! empty( $xml_array[ 'sitemap' ] ) ) { // parse sitemap set
			if ( is_object( $xml_array[ 'sitemap' ] ) ) {
				$xml_array[ 'sitemap' ] = (array) $xml_array[ 'sitemap' ];
			}

			if ( ! empty( $xml_array[ 'sitemap' ][ 'loc' ] ) ) { // is single sitemap
				$this->_parse( $xml_array[ 'sitemap' ][ 'loc' ] );
			}
			else {
				// parse multiple sitemaps
				foreach ( $xml_array[ 'sitemap' ] as $val ) {
					$val = (array) $val;
					if ( ! empty( $val[ 'loc' ] ) ) {
						$this->_parse( $val[ 'loc' ] ); // recursive parse sitemap
					}
				}
			}
		}
		elseif ( ! empty( $xml_array[ 'url' ] ) ) { // parse url set
			if ( is_object( $xml_array[ 'url' ] ) ) {
				$xml_array[ 'url' ] = (array) $xml_array[ 'url' ];
			}
			// if only 1 element
			if ( ! empty( $xml_array[ 'url' ][ 'loc' ] ) ) {
				$this->_urls[] = $xml_array[ 'url' ][ 'loc' ];
			}
			else {
				foreach ( $xml_array[ 'url' ] as $val ) {
					$val = (array) $val;
					if ( ! empty( $val[ 'loc' ] ) ) {
						$this->_urls[] = $val[ 'loc' ];
					}
				}
			}
		}
	}
}
<?php
/**
* LiteSpeed String Operator Library Class
*
* @since 1.3
*/
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Str {

	/**
	 * Generate random string
	 *
	 * @since  1.3
	 * @access public
	 * @param  int  $len  	 Length of string
	 * @param  int  $type    1-Number 2-LowerChar 4-UpperChar
	 * @return string
	 */
	public static function rrand( $len, $type = 7 ) {
		mt_srand( ( double ) microtime() * 1000000 );

		switch( $type ) {
			case 0 :
				$charlist = '012';
				break;

			case 1 :
				$charlist = '0123456789';
				break;

			case 2 :
				$charlist = 'abcdefghijklmnopqrstuvwxyz';
				break;

			case 3 :
				$charlist = '0123456789abcdefghijklmnopqrstuvwxyz';
				break;

			case 4 :
				$charlist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 5 :
				$charlist = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 6 :
				$charlist = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 7 :
				$charlist = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

		}

		$str = '';

		$max = strlen( $charlist ) - 1;
		for( $i = 0; $i < $len; $i++ ) {
			$str .= $charlist[ mt_rand( 0, $max ) ];
		}

		return $str;
	}


}<?php
/**
 * The language class.
 *
 * @since      	3.0
 * @package    	LiteSpeed_Cache
 * @subpackage 	LiteSpeed_Cache/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed ;

defined( 'WPINC' ) || exit ;

class Lang extends Base {
	/**
	 * Get image status per status bit
	 *
	 * @since  3.0
	 */
	public static function img_status( $status = null )
	{
		$list = array(
			Img_Optm::STATUS_RAW		=> __( 'Images not requested', 'litespeed-cache' ),
			Img_Optm::STATUS_REQUESTED	=> __( 'Images requested', 'litespeed-cache' ),
			Img_Optm::STATUS_NOTIFIED	=> __( 'Images notified to pull', 'litespeed-cache' ),
			Img_Optm::STATUS_PULLED		=> __( 'Images optimized and pulled', 'litespeed-cache' ),
			Img_Optm::STATUS_FAILED		=> __( 'Images failed to pull', 'litespeed-cache' ),
			Img_Optm::STATUS_ERR_FETCH	=> __( 'Images failed to fetch', 'litespeed-cache' ),
			Img_Optm::STATUS_ERR_404	=> __( 'Images failed to fetch', 'litespeed-cache') . ' (404)',
			Img_Optm::STATUS_ERR_OPTM	=> __( 'Images previously optimized', 'litespeed-cache' ),
			Img_Optm::STATUS_ERR			=> __( 'Images failed with other errors', 'litespeed-cache' ),
			Img_Optm::STATUS_MISS		=> __( 'Image files missing', 'litespeed-cache' ),
			Img_Optm::STATUS_DUPLICATED	=> __( 'Duplicate image files ignored', 'litespeed-cache' ),
			Img_Optm::STATUS_XMETA		=> __( 'Images with wrong meta', 'litespeed-cache' ),
		);

		if ( $status !== null ) {
			return ! empty( $list[ $status ] ) ? $list[ $status ] : 'N/A';
		}

		return $list;
	}

	/**
	 * Get the title of id
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function title( $id )
	{
		$_lang_list = array(
			self::O_SERVER_IP					=> __( 'Server IP', 'litespeed-cache' ),
			self::O_API_KEY						=> __( 'Domain Key', 'litespeed-cache' ),
			self::O_GUEST_UAS					=> __( 'Guest Mode User Agents', 'litespeed-cache' ),
			self::O_GUEST_IPS					=> __( 'Guest Mode IPs', 'litespeed-cache' ),

			self::O_CACHE						=> __( 'Enable Cache', 'litespeed-cache' ),
			self::O_CACHE_BROWSER				=> __( 'Browser Cache', 'litespeed-cache' ),
			self::O_CACHE_TTL_PUB				=> __( 'Default Public Cache TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_PRIV				=> __( 'Default Private Cache TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_FRONTPAGE			=> __( 'Default Front Page TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_FEED				=> __( 'Default Feed TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_REST				=> __( 'Default REST TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_STATUS			=> __( 'Default HTTP Status Code Page TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_BROWSER			=> __( 'Browser Cache TTL', 'litespeed-cache' ),
			self::O_AUTO_UPGRADE				=> __( 'Automatically Upgrade', 'litespeed-cache' ),
			self::O_GUEST						=> __( 'Guest Mode', 'litespeed-cache' ),
			self::O_GUEST_OPTM					=> __( 'Guest Optimization', 'litespeed-cache' ),
			self::O_NEWS						=> __( 'Notifications', 'litespeed-cache' ),
			self::O_CACHE_PRIV					=> __( 'Cache Logged-in Users', 'litespeed-cache' ),
			self::O_CACHE_COMMENTER				=> __( 'Cache Commenters', 'litespeed-cache' ),
			self::O_CACHE_REST					=> __( 'Cache REST API', 'litespeed-cache' ),
			self::O_CACHE_PAGE_LOGIN			=> __( 'Cache Login Page', 'litespeed-cache' ),
			self::O_CACHE_FAVICON				=> __( 'Cache favicon.ico', 'litespeed-cache' ),
			self::O_CACHE_RES					=> __( 'Cache PHP Resources', 'litespeed-cache' ),
			self::O_CACHE_MOBILE				=> __( 'Cache Mobile', 'litespeed-cache' ),
			self::O_CACHE_MOBILE_RULES			=> __( 'List of Mobile User Agents', 'litespeed-cache' ),
			self::O_CACHE_PRIV_URI				=> __( 'Private Cached URIs', 'litespeed-cache' ),
			self::O_CACHE_DROP_QS				=> __( 'Drop Query String', 'litespeed-cache' ),

			self::O_OBJECT						=> __( 'Object Cache', 'litespeed-cache' ),
			self::O_OBJECT_KIND					=> __( 'Method', 'litespeed-cache' ),
			self::O_OBJECT_HOST					=> __( 'Host', 'litespeed-cache' ),
			self::O_OBJECT_PORT					=> __( 'Port', 'litespeed-cache' ),
			self::O_OBJECT_LIFE					=> __( 'Default Object Lifetime', 'litespeed-cache' ),
			self::O_OBJECT_USER					=> __( 'Username', 'litespeed-cache' ),
			self::O_OBJECT_PSWD					=> __( 'Password', 'litespeed-cache' ),
			self::O_OBJECT_DB_ID				=> __( 'Redis Database ID', 'litespeed-cache' ),
			self::O_OBJECT_GLOBAL_GROUPS		=> __( 'Global Groups', 'litespeed-cache' ),
			self::O_OBJECT_NON_PERSISTENT_GROUPS	=> __( 'Do Not Cache Groups', 'litespeed-cache' ),
			self::O_OBJECT_PERSISTENT			=> __( 'Persistent Connection', 'litespeed-cache' ),
			self::O_OBJECT_ADMIN				=> __( 'Cache WP-Admin', 'litespeed-cache' ),
			self::O_OBJECT_TRANSIENTS			=> __( 'Store Transients', 'litespeed-cache' ),

			self::O_PURGE_ON_UPGRADE			=> __( 'Purge All On Upgrade', 'litespeed-cache' ),
			self::O_PURGE_STALE					=> __( 'Serve Stale', 'litespeed-cache' ),
			self::O_PURGE_TIMED_URLS			=> __( 'Scheduled Purge URLs', 'litespeed-cache' ),
			self::O_PURGE_TIMED_URLS_TIME		=> __( 'Scheduled Purge Time', 'litespeed-cache' ),
			self::O_CACHE_FORCE_URI				=> __( 'Force Cache URIs', 'litespeed-cache' ),
			self::O_CACHE_FORCE_PUB_URI			=> __( 'Force Public Cache URIs', 'litespeed-cache' ),
			self::O_CACHE_EXC					=> __( 'Do Not Cache URIs', 'litespeed-cache' ),
			self::O_CACHE_EXC_QS				=> __( 'Do Not Cache Query Strings', 'litespeed-cache' ),
			self::O_CACHE_EXC_CAT				=> __( 'Do Not Cache Categories', 'litespeed-cache' ),
			self::O_CACHE_EXC_TAG				=> __( 'Do Not Cache Tags', 'litespeed-cache' ),
			self::O_CACHE_EXC_ROLES				=> __( 'Do Not Cache Roles', 'litespeed-cache' ),
			self::O_OPTM_CSS_MIN				=> __( 'CSS Minify', 'litespeed-cache' ),
			self::O_OPTM_CSS_COMB				=> __( 'CSS Combine', 'litespeed-cache' ),
			self::O_OPTM_CSS_COMB_EXT_INL		=> __( 'CSS Combine External and Inline', 'litespeed-cache' ),
			self::O_OPTM_UCSS					=> __( 'Generate UCSS', 'litespeed-cache' ),
			self::O_OPTM_UCSS_INLINE			=> __( 'UCSS Inline', 'litespeed-cache' ),
			self::O_OPTM_UCSS_WHITELIST			=> __( 'UCSS Allowlist', 'litespeed-cache' ),
			self::O_OPTM_UCSS_EXC				=> __( 'UCSS URI Excludes', 'litespeed-cache' ),
			self::O_OPTM_JS_MIN					=> __( 'JS Minify', 'litespeed-cache' ),
			self::O_OPTM_JS_COMB				=> __( 'JS Combine', 'litespeed-cache' ),
			self::O_OPTM_JS_COMB_EXT_INL		=> __( 'JS Combine External and Inline', 'litespeed-cache' ),
			self::O_OPTM_HTML_MIN				=> __( 'HTML Minify', 'litespeed-cache' ),
			self::O_OPTM_HTML_LAZY				=> __( 'HTML Lazy Load Selectors', 'litespeed-cache' ),
			self::O_OPTM_CSS_ASYNC				=> __( 'Load CSS Asynchronously', 'litespeed-cache' ),
			self::O_OPTM_CCSS_PER_URL			=> __( 'CCSS Per URL', 'litespeed-cache' ),
			self::O_OPTM_CSS_ASYNC_INLINE		=> __( 'Inline CSS Async Lib', 'litespeed-cache' ),
			self::O_OPTM_CSS_FONT_DISPLAY		=> __( 'Font Display Optimization', 'litespeed-cache' ),
			self::O_OPTM_JS_DEFER				=> __( 'Load JS Deferred', 'litespeed-cache' ),
			self::O_OPTM_LOCALIZE				=> __( 'Localize Resources', 'litespeed-cache' ),
			self::O_OPTM_LOCALIZE_DOMAINS		=> __( 'Localization Files', 'litespeed-cache' ),
			self::O_OPTM_DNS_PREFETCH			=> __( 'DNS Prefetch', 'litespeed-cache' ),
			self::O_OPTM_DNS_PREFETCH_CTRL		=> __( 'DNS Prefetch Control', 'litespeed-cache' ),
			self::O_OPTM_CSS_EXC				=> __( 'CSS Excludes', 'litespeed-cache' ),
			self::O_OPTM_JS_EXC					=> __( 'JS Excludes', 'litespeed-cache' ),
			self::O_OPTM_QS_RM					=> __( 'Remove Query Strings', 'litespeed-cache' ),
			self::O_OPTM_GGFONTS_ASYNC			=> __( 'Load Google Fonts Asynchronously', 'litespeed-cache' ),
			self::O_OPTM_GGFONTS_RM				=> __( 'Remove Google Fonts', 'litespeed-cache' ),
			self::O_OPTM_CCSS_CON				=> __( 'Critical CSS Rules', 'litespeed-cache' ),
			self::O_OPTM_CCSS_SEP_POSTTYPE		=> __( 'Separate CCSS Cache Post Types', 'litespeed-cache' ),
			self::O_OPTM_CCSS_SEP_URI			=> __( 'Separate CCSS Cache URIs', 'litespeed-cache' ),
			self::O_OPTM_JS_DEFER_EXC			=> __( 'JS Deferred Excludes', 'litespeed-cache' ),
			self::O_OPTM_GM_JS_EXC				=> __( 'Guest Mode JS Excludes', 'litespeed-cache' ),
			self::O_OPTM_EMOJI_RM				=> __( 'Remove WordPress Emoji', 'litespeed-cache' ),
			self::O_OPTM_NOSCRIPT_RM			=> __( 'Remove Noscript Tags', 'litespeed-cache' ),
			self::O_OPTM_EXC					=> __( 'URI Excludes', 'litespeed-cache' ),
			self::O_OPTM_GUEST_ONLY				=> __( 'Optimize for Guests Only', 'litespeed-cache' ),
			self::O_OPTM_EXC_ROLES				=> __( 'Role Excludes', 'litespeed-cache' ),

			self::O_DISCUSS_AVATAR_CACHE		=> __( 'Gravatar Cache', 'litespeed-cache' ),
			self::O_DISCUSS_AVATAR_CRON			=> __( 'Gravatar Cache Cron', 'litespeed-cache' ),
			self::O_DISCUSS_AVATAR_CACHE_TTL	=> __( 'Gravatar Cache TTL', 'litespeed-cache' ),

			self::O_MEDIA_LAZY					=> __( 'Lazy Load Images', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_EXC				=> __( 'Lazy Load Image Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_CLS_EXC			=> __( 'Lazy Load Image Class Name Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_PARENT_CLS_EXC	=> __( 'Lazy Load Image Parent Class Name Excludes', 'litespeed-cache' ),
			self::O_MEDIA_IFRAME_LAZY_CLS_EXC	=> __( 'Lazy Load Iframe Class Name Excludes', 'litespeed-cache' ),
			self::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC	=> __( 'Lazy Load Iframe Parent Class Name Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_URI_EXC			=> __( 'Lazy Load URI Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LQIP_EXC				=> __( 'LQIP Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_PLACEHOLDER		=> __( 'Basic Image Placeholder', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP		=> __( 'Responsive Placeholder', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP_COLOR	=> __( 'Responsive Placeholder Color', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP_SVG	=> __( 'Responsive Placeholder SVG', 'litespeed-cache' ),
			self::O_MEDIA_LQIP					=> __( 'LQIP Cloud Generator', 'litespeed-cache' ),
			self::O_MEDIA_LQIP_QUAL				=> __( 'LQIP Quality', 'litespeed-cache' ),
			self::O_MEDIA_LQIP_MIN_W			=> __( 'LQIP Minimum Dimensions', 'litespeed-cache' ),
			// self::O_MEDIA_LQIP_MIN_H			=> __( 'LQIP Minimum Height', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP_ASYNC	=> __( 'Generate LQIP In Background', 'litespeed-cache' ),
			self::O_MEDIA_IFRAME_LAZY			=> __( 'Lazy Load Iframes', 'litespeed-cache' ),
			self::O_MEDIA_ADD_MISSING_SIZES		=> __( 'Add Missing Sizes', 'litespeed-cache' ),
			self::O_IMG_OPTM_AUTO				=> __( 'Auto Request Cron', 'litespeed-cache' ),
			self::O_IMG_OPTM_CRON				=> __( 'Auto Pull Cron', 'litespeed-cache' ),
			self::O_IMG_OPTM_ORI				=> __( 'Optimize Original Images', 'litespeed-cache' ),
			self::O_IMG_OPTM_RM_BKUP			=> __( 'Remove Original Backups', 'litespeed-cache' ),
			self::O_IMG_OPTM_WEBP				=> __( 'Create WebP Versions', 'litespeed-cache' ),
			self::O_IMG_OPTM_LOSSLESS			=> __( 'Optimize Losslessly', 'litespeed-cache' ),
			self::O_IMG_OPTM_EXIF				=> __( 'Preserve EXIF/XMP data', 'litespeed-cache' ),
			self::O_IMG_OPTM_WEBP_ATTR			=> __( 'WebP Attribute To Replace', 'litespeed-cache' ),
			self::O_IMG_OPTM_WEBP_REPLACE_SRCSET	=> __( 'WebP For Extra srcset', 'litespeed-cache' ),
			self::O_IMG_OPTM_JPG_QUALITY		=> __( 'WordPress Image Quality Control', 'litespeed-cache' ),
			self::O_ESI							=> __( 'Enable ESI', 'litespeed-cache' ),
			self::O_ESI_CACHE_ADMBAR			=> __( 'Cache Admin Bar', 'litespeed-cache' ),
			self::O_ESI_CACHE_COMMFORM			=> __( 'Cache Comment Form', 'litespeed-cache' ),
			self::O_ESI_NONCE					=> __( 'ESI Nonces', 'litespeed-cache' ),
			self::O_CACHE_VARY_GROUP			=> __( 'Vary Group', 'litespeed-cache' ),
			self::O_PURGE_HOOK_ALL				=> __( 'Purge All Hooks', 'litespeed-cache' ),
			self::O_UTIL_NO_HTTPS_VARY			=> __( 'Improve HTTP/HTTPS Compatibility', 'litespeed-cache' ),
			self::O_UTIL_INSTANT_CLICK			=> __( 'Instant Click', 'litespeed-cache' ),
			self::O_CACHE_EXC_COOKIES			=> __( 'Do Not Cache Cookies', 'litespeed-cache' ),
			self::O_CACHE_EXC_USERAGENTS		=> __( 'Do Not Cache User Agents', 'litespeed-cache' ),
			self::O_CACHE_LOGIN_COOKIE			=> __( 'Login Cookie', 'litespeed-cache' ),
			self::O_IMG_OPTM_WEBP_REPLACE		=> __( 'Image WebP Replacement', 'litespeed-cache' ),

			self::O_MISC_HEARTBEAT_FRONT		=> __( 'Frontend Heartbeat Control', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_FRONT_TTL	=> __( 'Frontend Heartbeat TTL', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_BACK			=> __( 'Backend Heartbeat Control', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_BACK_TTL		=> __( 'Backend Heartbeat TTL', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_EDITOR		=> __( 'Editor Heartbeat', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_EDITOR_TTL	=> __( 'Editor Heartbeat TTL', 'litespeed-cache' ),

			self::O_CDN_QUIC					=> __( 'QUIC.cloud CDN', 'litespeed-cache' ),
			self::O_CDN 						=> __( 'Use CDN Mapping', 'litespeed-cache' ),
			self::CDN_MAPPING_URL				=> __( 'CDN URL', 'litespeed-cache' ),
			self::CDN_MAPPING_INC_IMG			=> __( 'Include Images', 'litespeed-cache' ),
			self::CDN_MAPPING_INC_CSS			=> __( 'Include CSS', 'litespeed-cache' ),
			self::CDN_MAPPING_INC_JS			=> __( 'Include JS', 'litespeed-cache' ),
			self::CDN_MAPPING_FILETYPE			=> __( 'Include File Types', 'litespeed-cache' ),
			self::O_CDN_ATTR					=> __( 'HTML Attribute To Replace', 'litespeed-cache' ),
			self::O_CDN_ORI						=> __( 'Original URLs', 'litespeed-cache' ),
			self::O_CDN_ORI_DIR					=> __( 'Included Directories', 'litespeed-cache' ),
			self::O_CDN_EXC						=> __( 'Exclude Path', 'litespeed-cache' ),
			self::O_CDN_CLOUDFLARE				=> __( 'Cloudflare API', 'litespeed-cache' ),

			self::O_CRAWLER					=> __( 'Crawler', 'litespeed-cache' ),
			self::O_CRAWLER_USLEEP			=> __( 'Delay', 'litespeed-cache' ),
			self::O_CRAWLER_RUN_DURATION	=> __( 'Run Duration', 'litespeed-cache' ),
			self::O_CRAWLER_RUN_INTERVAL	=> __( 'Interval Between Runs', 'litespeed-cache' ),
			self::O_CRAWLER_CRAWL_INTERVAL	=> __( 'Crawl Interval', 'litespeed-cache' ),
			self::O_CRAWLER_THREADS			=> __( 'Threads', 'litespeed-cache' ),
			self::O_CRAWLER_TIMEOUT			=> __( 'Timeout', 'litespeed-cache' ),
			self::O_CRAWLER_LOAD_LIMIT		=> __( 'Server Load Limit', 'litespeed-cache' ),
			self::O_CRAWLER_ROLES			=> __( 'Role Simulation', 'litespeed-cache' ),
			self::O_CRAWLER_COOKIES			=> __( 'Cookie Simulation', 'litespeed-cache' ),
			self::O_CRAWLER_SITEMAP			=> __( 'Custom Sitemap', 'litespeed-cache' ),
			self::O_CRAWLER_DROP_DOMAIN		=> __( 'Drop Domain from Sitemap', 'litespeed-cache' ),
			self::O_CRAWLER_MAP_TIMEOUT		=> __( 'Sitemap Timeout', 'litespeed-cache' ),

			self::O_DEBUG_DISABLE_ALL			=> __( 'Disable All Features', 'litespeed-cache' ),
			self::O_DEBUG						=> __( 'Debug Log', 'litespeed-cache' ),
			self::O_DEBUG_IPS					=> __( 'Admin IPs', 'litespeed-cache' ),
			self::O_DEBUG_LEVEL					=> __( 'Debug Level', 'litespeed-cache' ),
			self::O_DEBUG_FILESIZE				=> __( 'Log File Size Limit', 'litespeed-cache' ),
			self::O_DEBUG_COOKIE				=> __( 'Log Cookies', 'litespeed-cache' ),
			self::O_DEBUG_COLLAPS_QS			=> __( 'Collapse Query Strings', 'litespeed-cache' ),
			self::O_DEBUG_INC					=> __( 'Debug URI Includes', 'litespeed-cache' ),
			self::O_DEBUG_EXC					=> __( 'Debug URI Excludes', 'litespeed-cache' ),

			self::O_DB_OPTM_REVISIONS_MAX		=> __( 'Revisions Max Number', 'litespeed-cache' ),
			self::O_DB_OPTM_REVISIONS_AGE		=> __( 'Revisions Max Age', 'litespeed-cache' ),

		) ;

		if ( array_key_exists( $id, $_lang_list ) ) {
			return $_lang_list[ $id ] ;
		}

		return 'N/A' ;
	}

}
<?php
/**
 * The optimize class.
 *
 * @since      	1.2.2
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Optimize extends Base {
	const LIB_FILE_CSS_ASYNC = 'assets/js/css_async.min.js';
	const LIB_FILE_WEBFONTLOADER = 'assets/js/webfontloader.min.js';
	const LIB_FILE_JS_DELAY = 'assets/js/js_delay.min.js';

	const ITEM_TIMESTAMP_PURGE_CSS = 'timestamp_purge_css';

	private $content;
	private $content_ori;

	private $cfg_css_min;
	private $cfg_css_comb;
	private $cfg_js_min;
	private $cfg_js_comb;
	private $cfg_css_async;
	private $cfg_js_defer;
	private $cfg_js_defer_exc = false;
	private $cfg_ggfonts_async;
	private $_conf_css_font_display;
	private $cfg_ggfonts_rm;

	private $dns_prefetch;
	private $_ggfonts_urls = array();
	private $_ccss;
	private $_ucss = false;

	private $__optimizer;

	private $html_foot = ''; // The html info append to <body>
	private $html_head = ''; // The html info prepend to <body>

	private static $_var_i = 0;
	private $_var_preserve_js = array();
	private $_request_url;

	/**
	 * Constructor
	 * @since  4.0
	 */
	public function __construct() {
		Debug2::debug( '[Optm] init' );
		$this->__optimizer = $this->cls( 'Optimizer' );
	}

	/**
	 * Init optimizer
	 *
	 * @since  3.0
	 * @access protected
	 */
	public function init() {
		$this->cfg_css_async = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_CSS_ASYNC );
		if ( $this->cfg_css_async ) {
			if ( ! $this->conf( self::O_API_KEY ) ) {
				Debug2::debug( '[Optm] ❌ CCSS set to OFF due to missing domain key' );
				$this->cfg_css_async = false;
			}
			if ( ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_UCSS ) ) && $this->conf( self::O_OPTM_UCSS_INLINE ) ) {
				Debug2::debug( '[Optm] ❌ CCSS set to OFF due to UCSS Inline' );
				$this->cfg_css_async = false;
			}
		}
		$this->cfg_js_defer = $this->conf( self::O_OPTM_JS_DEFER );
		if ( defined( 'LITESPEED_GUEST_OPTM' ) ) {
			$this->cfg_js_defer = 2;
		}
		if ( $this->cfg_js_defer == 2 ) {
			add_filter( 'litespeed_optm_cssjs', function( $con, $file_type ){
				if ( $file_type == 'js' ) {
					$con = str_replace( 'DOMContentLoaded', 'DOMContentLiteSpeedLoaded', $con );
					// $con = str_replace( 'addEventListener("load"', 'addEventListener("litespeedLoad"', $con );
				}
				return $con;
			}, 20, 2 );
		}

		// To remove emoji from WP
		if ( $this->conf( self::O_OPTM_EMOJI_RM ) ) {
			$this->_emoji_rm();
		}

		if ( $this->conf( self::O_OPTM_QS_RM ) ) {
			add_filter( 'style_loader_src', array( $this, 'remove_query_strings' ), 999 );
			add_filter( 'script_loader_src', array( $this, 'remove_query_strings' ), 999 );
		}

		// GM JS exclude @since 4.1
		if ( defined( 'LITESPEED_GUEST_OPTM' ) ) {
			$this->cfg_js_defer_exc = apply_filters( 'litespeed_optm_gm_js_exc', $this->conf( self::O_OPTM_GM_JS_EXC ) );
		}
		else {
			/**
			 * Exclude js from deferred setting
			 * @since 1.5
			 */
			if ( $this->cfg_js_defer ) {
				add_filter( 'litespeed_optm_js_defer_exc', array( $this->cls( 'Data' ), 'load_js_defer_exc' ) );
				$this->cfg_js_defer_exc = apply_filters( 'litespeed_optm_js_defer_exc', $this->conf( self::O_OPTM_JS_DEFER_EXC ) );
			}
		}

		/**
		 * Add vary filter for Role Excludes
		 * @since  1.6
		 */
		add_filter( 'litespeed_vary', array( $this, 'vary_add_role_exclude' ) );

		/**
		 * Prefetch DNS
		 * @since 1.7.1
		 */
		$this->_dns_prefetch_init();

		add_filter( 'litespeed_buffer_finalize', array( $this, 'finalize' ), 20 );
	}

	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6
	 * @access public
	 */
	public function vary_add_role_exclude( $vary ) {
		if ( $this->cls( 'Conf' )->in_optm_exc_roles() ) {
			$vary[ 'role_exclude_optm' ] = 1;
		}

		return $vary;
	}

	/**
	 * Remove emoji from WP
	 *
	 * @since  1.4
	 * @since  2.9.8 Changed to private
	 * @access private
	 */
	private function _emoji_rm() {
		remove_action( 'wp_head' , 'print_emoji_detection_script', 7 );
		remove_action( 'admin_print_scripts' , 'print_emoji_detection_script' );
		remove_filter( 'the_content_feed' , 'wp_staticize_emoji' );
		remove_filter( 'comment_text_rss' , 'wp_staticize_emoji' );
		/**
		 * Added for better result
		 * @since  1.6.2.1
		 */
		remove_action( 'wp_print_styles', 'print_emoji_styles' );
		remove_action( 'admin_print_styles', 'print_emoji_styles' );
		remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
	}

	/**
	 * Delete file-based cache folder
	 *
	 * @since  2.1
	 * @access public
	 */
	public function rm_cache_folder( $subsite_id = false ) {
		if ( $subsite_id ) {
			file_exists( LITESPEED_STATIC_DIR . '/css/' . $subsite_id ) && File::rrmdir( LITESPEED_STATIC_DIR . '/css/' . $subsite_id );
			file_exists( LITESPEED_STATIC_DIR . '/js/' . $subsite_id ) && File::rrmdir( LITESPEED_STATIC_DIR . '/js/' . $subsite_id );
			return;
		}

		file_exists( LITESPEED_STATIC_DIR . '/css' ) && File::rrmdir( LITESPEED_STATIC_DIR . '/css' );
		file_exists( LITESPEED_STATIC_DIR . '/js' ) && File::rrmdir( LITESPEED_STATIC_DIR . '/js' );
	}

	/**
	 * Remove QS
	 *
	 * @since  1.3
	 * @access public
	 */
	public function remove_query_strings( $src ) {
		if ( strpos( $src, '_litespeed_rm_qs=0' ) || strpos( $src, '/recaptcha' ) ) {
			return $src;
		}

		if ( ! Utility::is_internal_file( $src ) ) {
			return $src;
		}

		if ( strpos( $src, '.js?' ) !== false || strpos( $src, '.css?' ) !== false ) {
			$src = preg_replace( '/\?.*/', '', $src );
		}

		return $src;
	}

	/**
	 * Run optimize process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * @since  1.2.2
	 * @access public
	 * @return  string The content that is after optimization
	 */
	public function finalize( $content ) {
		if ( defined( 'LITESPEED_NO_PAGEOPTM' ) ) {
			Debug2::debug2( '[Optm] bypass: NO_PAGEOPTM const' );
			return $content;
		}

		if ( ! defined( 'LITESPEED_IS_HTML' ) ) {
			Debug2::debug( '[Optm] bypass: Not frontend HTML type' );
			return $content;
		}

		if ( ! defined( 'LITESPEED_GUEST_OPTM' ) ) {
			if ( ! Control::is_cacheable() ) {
				Debug2::debug( '[Optm] bypass: Not cacheable' );
				return $content;
			}

			// Check if hit URI excludes
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $this->conf( self::O_OPTM_EXC ) );
			if ( $result ) {
				Debug2::debug( '[Optm] bypass: hit URI Excludes setting: ' . $result );
				return $content;
			}
		}

		Debug2::debug( '[Optm] start' );

		$this->content_ori = $this->content = $content;

		$this->_optimize();
		return $this->content;
	}

	/**
	 * Optimize css src
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _optimize() {
		global $wp;
		$this->_request_url = home_url( $wp->request );

		$this->cfg_css_min = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_CSS_MIN );
		$this->cfg_css_comb = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_CSS_COMB );
		$this->cfg_js_min = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_JS_MIN );
		$this->cfg_js_comb = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_JS_COMB );
		$this->cfg_ggfonts_rm = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_GGFONTS_RM );
		$this->cfg_ggfonts_async = ! defined( 'LITESPEED_GUEST_OPTM' ) && $this->conf( self::O_OPTM_GGFONTS_ASYNC ); // forced rm already
		$this->_conf_css_font_display = ! defined( 'LITESPEED_GUEST_OPTM' ) && $this->conf( self::O_OPTM_CSS_FONT_DISPLAY );

		if ( ! $this->cls( 'Router' )->can_optm() ) {
			Debug2::debug( '[Optm] bypass: admin/feed/preview' );
			return;
		}

		if ( $this->cfg_css_async ) {
			$this->_ccss = $this->cls( 'CSS' )->prepare_ccss();
			if ( ! $this->_ccss ) {
				Debug2::debug( '[Optm] ❌ CCSS set to OFF due to CCSS not generated yet' );
				$this->cfg_css_async = false;
			}
			else if ( strpos( $this->_ccss, '<style id="litespeed-ccss" data-error' ) === 0 ) {
				Debug2::debug( '[Optm] ❌ CCSS set to OFF due to CCSS failed to generate' );
				$this->cfg_css_async = false;
			}
		}

		do_action( 'litespeed_optm' );

		// Parse css from content
		$src_list = false;
		if ( $this->cfg_css_min || $this->cfg_css_comb || $this->cfg_ggfonts_rm || $this->cfg_css_async || $this->cfg_ggfonts_async  || $this->_conf_css_font_display ) {
			add_filter( 'litespeed_optimize_css_excludes', array( $this->cls( 'Data' ), 'load_css_exc' ) );
			list( $src_list, $html_list ) = $this->_parse_css();
		}

		// css optimizer
		if ( $this->cfg_css_min || $this->cfg_css_comb ) {

			if ( $src_list ) {
				// IF combine
				if ( $this->cfg_css_comb ) {
					// Check if has inline UCSS enabled or not
					if ( ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_UCSS ) ) && $this->conf( self::O_OPTM_UCSS_INLINE ) ) {
						$filename = $this->cls( 'CSS' )->load_ucss( $this->_request_url, true );
						if ( $filename ) {
							$filepath_prefix = $this->_build_filepath_prefix( 'ucss' );
							$this->_ucss = File::read( LITESPEED_STATIC_DIR . $filepath_prefix . $filename );

							// Drop all css
							$this->content = str_replace( $html_list, '', $this->content );
						}
					}

					if ( ! $this->_ucss ) {
						$url = $this->_build_hash_url( $src_list );

						if ( $url ) {
							// Handle css async load
							if ( $this->cfg_css_async ) {
								$this->html_head .= '<link rel="preload" data-asynced="1" data-optimized="2" as="style" onload="this.onload=null;this.rel=\'stylesheet\'" href="' . $url . '" />'; // todo: How to use " in attr wrapper "
							}
							else {
								$this->html_head .= '<link data-optimized="2" rel="stylesheet" href="' . $url . '" />';// use 2 as combined
							}

							// Move all css to top
							$this->content = str_replace( $html_list, '', $this->content );
						}
					}
				}
				// Only minify
				elseif ( $this->cfg_css_min ) {
					// will handle async css load inside
					$this->_src_queue_handler( $src_list, $html_list );
				}
				// Only HTTP2 push
				else {
					foreach ( $src_list as $src_info ) {
						if ( ! empty( $src_info[ 'inl' ] ) ) {
							continue;
						}
					}
				}
			}
		}

		// Handle css lazy load if not handled async loaded yet
		if ( $this->cfg_css_async && ! $this->cfg_css_min && ! $this->cfg_css_comb ) {
			// async html
			$html_list_async = $this->_async_css_list( $html_list, $src_list );

			// Replace async css
			$this->content = str_replace( $html_list, $html_list_async, $this->content );

		}

		// Parse js from buffer as needed
		$src_list = false;
		if ( $this->cfg_js_min || $this->cfg_js_comb || $this->cfg_js_defer ) {
			add_filter( 'litespeed_optimize_js_excludes', array( $this->cls( 'Data' ), 'load_js_exc' ) );
			list( $src_list, $html_list ) = $this->_parse_js();
		}

		// js optimizer
		if ( $src_list ) {
			// IF combine
			if ( $this->cfg_js_comb ) {
				$url = $this->_build_hash_url( $src_list, 'js' );
				if ( $url ) {
					$this->html_foot .= $this->_build_js_tag( $url );

					// Will move all JS to bottom combined one
					$this->content = str_replace( $html_list, '', $this->content );
				}
			}
			// Only minify
			elseif ( $this->cfg_js_min ) {
				// Will handle js defer inside
				$this->_src_queue_handler( $src_list, $html_list, 'js' );
			}
			// Only HTTP2 push and Defer
			else {
				foreach ( $src_list as $k => $src_info ) {
					// Inline JS
					if ( ! empty( $src_info[ 'inl' ] ) ) {
						if ( $this->cfg_js_defer ) {
							$attrs = ! empty( $src_info[ 'attrs' ] ) ? $src_info[ 'attrs' ] : '';
							$deferred = $this->_js_inline_defer( $src_info[ 'src' ], $attrs );
							if ( $deferred ) {
								$this->content = str_replace( $html_list[ $k ], $deferred, $this->content );
							}
						}
					}
					// JS files
					else {
						if ( $this->cfg_js_defer ) {
							$deferred = $this->_js_defer( $html_list[ $k ], $src_info[ 'src' ] );
							if ( $deferred ) {
								$this->content = str_replace( $html_list[ $k ], $deferred, $this->content );
							}
						}
					}
				}
			}
		}

		// Append JS inline var for preserved ESI
		// Shouldn't give any optm (defer/delay) @since 4.4
		if ( $this->_var_preserve_js ) {
			$this->html_head .= '<script>var ' . implode( ',', $this->_var_preserve_js ) . ';</script>';
			Debug2::debug2( '[Optm] Inline JS defer vars', $this->_var_preserve_js );
		}

		// Append async compatibility lib to head
		if ( $this->cfg_css_async ) {
			// Inline css async lib
			if ( $this->conf( self::O_OPTM_CSS_ASYNC_INLINE ) ) {
				$this->html_head .= $this->_build_js_inline( File::read( LSCWP_DIR . self::LIB_FILE_CSS_ASYNC ), true );
			}
			else {
				$css_async_lib_url = LSWCP_PLUGIN_URL . self::LIB_FILE_CSS_ASYNC;
				$this->html_head .= $this->_build_js_tag( $css_async_lib_url, 'litespeed-css-async-lib' ); // Don't exclude it from defer for now
			}
		}

		/**
		 * Handle google fonts async
		 * This will result in a JS snippet in head, so need to put it in the end to avoid being replaced by JS parser
		 */
		$this->_async_ggfonts();

		/**
		 * Font display optm
		 * @since  3.0
		 */
		$this->_font_optm();

		// Inject JS Delay lib
		$this->_maybe_js_delay();

		/**
		 * HTML Lazyload
		 */
		if ( $this->conf( self::O_OPTM_HTML_LAZY ) ) {
			$this->html_head = $this->cls( 'CSS' )->prepare_html_lazy() . $this->html_head;
		}

		// Maybe prepend inline UCSS
		if ( $this->_ucss ) {
			$this->html_head = '<style id="litespeed-ucss">' . $this->_ucss . '</style>' . $this->html_head;
		}

		// Check if there is any critical css rules setting
		if ( $this->cfg_css_async && $this->_ccss ) {
			$this->html_head = $this->_ccss . $this->html_head;
		}

		// Replace html head part
		$this->html_head = apply_filters( 'litespeed_optm_html_head', $this->html_head );
		if ( $this->html_head ) {
			if ( apply_filters( 'litespeed_optm_html_after_head', false ) ) {
				$this->content = str_replace( '</head>', $this->html_head . '</head>', $this->content );
			}
			else {
				// Put header content to be after charset
				if ( strpos( $this->content, '<meta charset' ) !== false ) {
					$this->content = preg_replace( '#<meta charset([^>]*)>#isU', '<meta charset$1>' . $this->html_head , $this->content, 1 );
				}
				else {
					$this->content = preg_replace( '#<head([^>]*)>#isU', '<head$1>' . $this->html_head , $this->content, 1 );
				}
			}
		}

		// Replace html foot part
		$this->html_foot = apply_filters( 'litespeed_optm_html_foot', $this->html_foot );
		if ( $this->html_foot ) {
			$this->content = str_replace( '</body>', $this->html_foot . '</body>' , $this->content );
		}

		// Drop noscript if enabled
		if ( $this->conf( self::O_OPTM_NOSCRIPT_RM ) ) {
			// $this->content = preg_replace( '#<noscript>.*</noscript>#isU', '', $this->content );
		}

		// HTML minify
		if ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_HTML_MIN ) ) {
			$this->content = $this->__optimizer->html_min( $this->content );
		}
	}

	/**
	 * Build a full JS tag
	 *
	 * @since  4.0
	 */
	private function _build_js_tag( $src ) {
		if ( $this->cfg_js_defer === 2 ) {
			return '<script data-optimized="1" type="litespeed/javascript" data-src="' . $src . '"></script>';
		}

		if ( $this->cfg_js_defer ) {
			return '<script data-optimized="1" src="' . $src . '" defer></script>';
		}

		return '<script data-optimized="1" src="' . $src . '"></script>';
	}

	/**
	 * Build a full inline JS snippet
	 *
	 * @since  4.0
	 */
	private function _build_js_inline( $script, $minified = false ) {
		if ( $this->cfg_js_defer ) {
			$deferred = $this->_js_inline_defer( $script, false, $minified );
			if ( $deferred ) {
				return $deferred;
			}
		}

		return '<script>' . $script . '</script>';
	}

	/**
	 * Load JS delay lib
	 *
	 * @since 4.0
	 */
	private function _maybe_js_delay() {
		if ( $this->cfg_js_defer !== 2 ) {
			return;
		}

		$this->html_foot .= '<script>' . File::read( LSCWP_DIR . self::LIB_FILE_JS_DELAY ) . '</script>';
	}

	/**
	 * Google font async
	 *
	 * @since 2.7.3
	 * @access private
	 */
	private function _async_ggfonts() {
		if ( ! $this->cfg_ggfonts_async || ! $this->_ggfonts_urls ) {
			return;
		}

		Debug2::debug2( '[Optm] google fonts async found: ', $this->_ggfonts_urls );

		$html = '<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin />';

		/**
		 * Append fonts
		 *
		 * Could be multiple fonts
		 *
		 * 	<link rel='stylesheet' href='//fonts.googleapis.com/css?family=Open+Sans%3A400%2C600%2C700%2C800%2C300&#038;ver=4.9.8' type='text/css' media='all' />
		 *	<link rel='stylesheet' href='//fonts.googleapis.com/css?family=PT+Sans%3A400%2C700%7CPT+Sans+Narrow%3A400%7CMontserrat%3A600&#038;subset=latin&#038;ver=4.9.8' type='text/css' media='all' />
		 *		-> family: PT Sans:400,700|PT Sans Narrow:400|Montserrat:600
		 *	<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300,300italic,400italic,600,700,900&#038;subset=latin%2Clatin-ext' />
		 */
		$script ='WebFontConfig={google:{families:[';

		$families = array();
		foreach ( $this->_ggfonts_urls as $v ) {
			$qs = wp_specialchars_decode( $v );
			$qs = urldecode( $qs );
			$qs = parse_url( $qs, PHP_URL_QUERY );
			parse_str( $qs, $qs );

			if ( empty( $qs[ 'family' ] ) ) {
				Debug2::debug( '[Optm] ERR ggfonts failed to find family: ' . $v );
				continue;
			}

			$subset = empty( $qs[ 'subset' ] ) ? '' : ':' . $qs[ 'subset' ];

			foreach ( array_filter( explode( '|', $qs[ 'family' ] ) ) as $v2 ) {
				$families[] = $v2 . $subset;
			}
		}

		$script .= '"' . implode( '","', $families ) . ( $this->_conf_css_font_display ? '&display=swap' : '' ) . '"';

		$script .= ']}};';

		// if webfontloader lib was loaded before WebFontConfig variable, call WebFont.load
		$script .= 'if ( typeof WebFont === "object" && typeof WebFont.load === "function" ) { WebFont.load( WebFontConfig ); }';

		$html .= $this->_build_js_inline( $script );

		// https://cdnjs.cloudflare.com/ajax/libs/webfont/1.6.28/webfontloader.js
		$webfont_lib_url = LSWCP_PLUGIN_URL . self::LIB_FILE_WEBFONTLOADER;

		// default async, if js defer set use defer
		$html .= $this->_build_js_tag( $webfont_lib_url );

		// Put this in the very beginning for preconnect
		$this->html_head = $html . $this->html_head;
	}

	/**
	 * Font optm
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _font_optm() {
		if ( ! $this->_conf_css_font_display || ! $this->_ggfonts_urls ) {
			return;
		}

		Debug2::debug2( '[Optm] google fonts optm ', $this->_ggfonts_urls );

		foreach ( $this->_ggfonts_urls as $v ) {
			if ( strpos( $v, 'display=' ) ) {
				continue;
			}
			$this->html_head = str_replace( $v, $v . '&#038;display=swap', $this->html_head );
			$this->html_foot = str_replace( $v, $v . '&#038;display=swap', $this->html_foot );
			$this->content = str_replace( $v, $v . '&#038;display=swap', $this->content );
		}
	}

	/**
	 * Prefetch DNS
	 *
	 * @since 1.7.1
	 * @access private
	 */
	private function _dns_prefetch_init() {
		// Widely enable link DNS prefetch
		if ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_DNS_PREFETCH_CTRL ) ) {
			@header( 'X-DNS-Prefetch-Control: on' );
		}

		$this->dns_prefetch = $this->conf( self::O_OPTM_DNS_PREFETCH );
		if ( ! $this->dns_prefetch ) {
			return;
		}

		if ( function_exists( 'wp_resource_hints' ) ) {
			add_filter( 'wp_resource_hints', array( $this, 'dns_prefetch_filter' ), 10, 2 );
		}
		else {
			add_action( 'litespeed_optm', array( $this, 'dns_prefetch_output' ) );
		}
	}

	/**
	 * Prefetch DNS hook for WP
	 *
	 * @since 1.7.1
	 * @access public
	 */
	public function dns_prefetch_filter( $urls, $relation_type ) {
		if ( $relation_type !== 'dns-prefetch' ) {
			return $urls;
		}

		foreach ( $this->dns_prefetch as $v ) {
			if ( $v ) {
				$urls[] = $v;
			}
		}

		return $urls;
	}

	/**
	 * Prefetch DNS
	 *
	 * @since 1.7.1
	 * @access public
	 */
	public function dns_prefetch_output() {
		foreach ( $this->dns_prefetch as $v ) {
			if ( $v ) {
				$this->html_head .= '<link rel="dns-prefetch" href="' . $v . '" />';
			}
		}
	}

	/**
	 * Run minify with src queue list
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _src_queue_handler( $src_list, $html_list, $file_type = 'css' ) {
		$html_list_ori = $html_list;

		$can_webp = ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_IMG_OPTM_WEBP_REPLACE ) ) && $this->cls( 'Media' )->webp_support();

		$tag = $file_type == 'css' ? 'link' : 'script';
		foreach ( $src_list as $key => $src_info ) {
			// Minify inline CSS/JS
			if ( ! empty( $src_info[ 'inl' ] ) ) {
				if ( $file_type == 'css' ) {
					$code = Optimizer::minify_css( $src_info[ 'src' ] );
					$can_webp && $code = $this->cls( 'Media' )->replace_background_webp( $code );
					$snippet = str_replace( $src_info[ 'src' ], $code, $html_list[ $key ] );
				}
				else {
					// Inline defer JS
					if ( $this->cfg_js_defer ) {
						$attrs = ! empty( $src_info[ 'attrs' ] ) ? $src_info[ 'attrs' ] : '';
						$snippet = $this->_js_inline_defer( $src_info[ 'src' ], $attrs ) ?: $html_list[ $key ];
					}
					else {
						$code = Optimizer::minify_js( $src_info[ 'src' ] );
						$snippet = str_replace( $src_info[ 'src' ], $code, $html_list[ $key ] );
					}
				}

			}
			// CSS/JS files
			else {
				$url = $this->_build_single_hash_url( $src_info[ 'src' ], $file_type );
				if ( $url ) {
					$snippet = str_replace( $src_info[ 'src' ], $url, $html_list[ $key ] );
				}

				// Handle css async load
				if ( $file_type == 'css' && $this->cfg_css_async ) {
					$snippet = $this->_async_css( $snippet );
				}

				// Handle js defer
				if ( $file_type === 'js' && $this->cfg_js_defer ) {
					$snippet = $this->_js_defer( $snippet, $src_info[ 'src' ] ) ?: $snippet;
				}
			}

			$snippet = str_replace( "<$tag ", '<' . $tag . ' data-optimized="1" ', $snippet );
			$html_list[ $key ] = $snippet;
		}

		$this->content = str_replace( $html_list_ori, $html_list, $this->content );
	}

	/**
	 * Build a single URL mapped filename (This will not save in DB)
	 * @since  4.0
	 */
	private function _build_single_hash_url( $src, $file_type = 'css' ) {
		$content = $this->__optimizer->load_file( $src, $file_type );

		$is_min = $this->__optimizer->is_min( $src );

		$content = $this->__optimizer->optm_snippet( $content, $file_type, ! $is_min, $src );

		$filepath_prefix = $this->_build_filepath_prefix( $file_type );

		// Save to file
		$filename = $filepath_prefix . md5( $this->remove_query_strings( $src ) ) . '.' . $file_type;
		$static_file = LITESPEED_STATIC_DIR . $filename;
		File::save( $static_file, $content, true );

		// QS is required as $src may contains version info
		$qs_hash = substr( md5( $src ), -5 );
		return LITESPEED_STATIC_URL . "$filename?ver=$qs_hash";
	}

	/**
	 * Generate full URL path with hash for a list of src
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _build_hash_url( $src_list, $file_type = 'css' ) {
		// $url_sensitive = $this->conf( self::O_OPTM_CSS_UNIQUE ) && $file_type == 'css'; // If need to keep unique CSS per URI

		// Replace preserved ESI (before generating hash)
		if ( $file_type == 'js' ) {
			foreach ( $src_list as $k => $v ) {
				if ( empty( $v[ 'inl' ] ) ) {
					continue;
				}
				$src_list[ $k ][ 'src' ] = $this->_preserve_esi( $v[ 'src' ] );
			}
		}

		$minify = $file_type === 'css' ? $this->cfg_css_min : $this->cfg_js_min;
		$filename_info = $this->__optimizer->serve( $this->_request_url, $file_type, $minify, $src_list );

		if ( ! $filename_info ) {
			return false; // Failed to generate
		}

		list( $filename, $type ) = $filename_info;

		// Add cache tag in case later file deleted to avoid lscache served stale non-existed files @since 4.4.1
		Tag::add( Tag::TYPE_MIN . '.' . $filename );

		$qs_hash = substr( md5( self::get_option( self::ITEM_TIMESTAMP_PURGE_CSS) ), -5 );//xx
		// As filename is alreay realted to filecon md5, no need QS anymore
		$filepath_prefix = $this->_build_filepath_prefix( $type );
		return LITESPEED_STATIC_URL . $filepath_prefix . $filename . '?ver=' . $qs_hash;
	}

	/**
	 * Parse js src
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _parse_js() {
		$excludes = apply_filters( 'litespeed_optimize_js_excludes', $this->conf( self::O_OPTM_JS_EXC ) );

		$combine_ext_inl = $this->conf( self::O_OPTM_JS_COMB_EXT_INL );

		$src_list = array();
		$html_list = array();

		$content = preg_replace( '#<!--.*-->#sU', '', $this->content );
		preg_match_all( '#<script([^>]*)>(.*)</script>#isU', $content, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs = empty( $match[ 1 ] ) ? array() : Utility::parse_attr( $match[ 1 ] );

			if ( isset( $attrs[ 'data-optimized' ] ) ) {
				continue;
			}
			if ( ! empty( $attrs[ 'data-no-optimize' ] ) ) {
				continue;
			}
			if ( ! empty( $attrs[ 'data-cfasync' ] ) && $attrs[ 'data-cfasync' ] === 'false'  ) {
				continue;
			}
			if ( ! empty( $attrs[ 'type' ] ) && $attrs[ 'type' ] != 'text/javascript' ) {
				continue;
			}

			// to avoid multiple replacement
			if ( in_array( $match[ 0 ], $html_list ) ) {
				continue;
			}

			$this_src_arr = array();
			// JS files
			if ( ! empty( $attrs[ 'src' ] ) ) {
				// Exclude check
				$js_excluded = Utility::str_hit_array( $attrs[ 'src' ], $excludes );
				$is_internal = Utility::is_internal_file( $attrs[ 'src' ] );
				$is_file = substr( $attrs[ 'src' ], 0, 5 ) != 'data:';
				$ext_excluded = ! $combine_ext_inl && ! $is_internal;
				if ( $js_excluded || $ext_excluded || ! $is_file ) {
					// Maybe defer
					if ( $this->cfg_js_defer ) {
						$deferred = $this->_js_defer( $match[ 0 ], $attrs[ 'src' ] );
						if ( $deferred ) {
							$this->content = str_replace( $match[ 0 ], $deferred, $this->content );
						}
					}

					Debug2::debug2( '[Optm] _parse_js bypassed due to ' . ( $js_excluded ? 'js files excluded [hit] ' . $js_excluded : 'external js' ) );
					continue;
				}

				if ( strpos( $attrs[ 'src' ], '/localres/' ) !== false ) {
					continue;
				}

				if ( strpos( $attrs[ 'src' ], 'instant_click' ) !== false ) {
					continue;
				}

				$this_src_arr[ 'src' ] = $attrs[ 'src' ];
			}
			// Inline JS
			elseif ( ! empty( $match[ 2 ] ) ) {
				// Debug2::debug( '🌹🌹🌹 ' . $match[2] . '🌹' );
				// Exclude check
				$js_excluded = Utility::str_hit_array( $match[ 2 ], $excludes );
				if ( $js_excluded || ! $combine_ext_inl ) {
					// Maybe defer
					if ( $this->cfg_js_defer ) {
						$deferred = $this->_js_inline_defer( $match[ 2 ], $match[ 1 ] );
						if ( $deferred ) {
							$this->content = str_replace( $match[ 0 ], $deferred, $this->content );
						}
					}
					Debug2::debug2( '[Optm] _parse_js bypassed due to ' . ( $js_excluded ? 'js excluded [hit] ' . $js_excluded : 'inline js' ) );
					continue;
				}

				$this_src_arr[ 'inl' ] = true;
				$this_src_arr[ 'src' ] = $match[ 2 ];
				if ( $match[ 1 ] ) {
					$this_src_arr[ 'attrs' ] = $match[ 1 ];
				}
			}
			else { // Compatibility to those who changed src to data-src already
				Debug2::debug2( '[Optm] No JS src or inline JS content' );
				continue;
			}

			$src_list[] = $this_src_arr;
			$html_list[] = $match[ 0 ];
		}

		return array( $src_list, $html_list );
	}

	/**
	 * Inline JS defer
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _js_inline_defer( $con, $attrs = false, $minified = false ) {
		if ( strpos( $attrs, 'data-no-defer' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr api data-no-defer' );
			return false;
		}

		$hit = Utility::str_hit_array( $con, $this->cfg_js_defer_exc );
		if ( $hit ) {
			Debug2::debug2( '[Optm] inline js defer excluded [setting] ' . $hit );
			return false;
		}

		$con = trim( $con );
		// Minify JS first
		if ( ! $minified ) { // && $this->cfg_js_defer !== 2
			$con = Optimizer::minify_js( $con );
		}

		if ( ! $con ) {
			return false;
		}

		// Check if the content contains ESI nonce or not
		$con = $this->_preserve_esi( $con );

		if ( $this->cfg_js_defer === 2 ) {
			// Drop type attribute from $attrs
			if ( strpos( $attrs, ' type=' ) !== false ) {
				$attrs = preg_replace( '# type=([\'"])([^\1]+)\1#isU', '', $attrs );
			}
			// Replace DOMContentLoaded
			$con = str_replace( 'DOMContentLoaded', 'DOMContentLiteSpeedLoaded', $con );
			return '<script' . $attrs . ' type="litespeed/javascript">' . $con . '</script>';
			// return '<script' . $attrs . ' type="litespeed/javascript" src="data:text/javascript;base64,' . base64_encode( $con ) . '"></script>';
			// return '<script' . $attrs . ' type="litespeed/javascript">' . $con . '</script>';
		}

		return '<script' . $attrs . ' src="data:text/javascript;base64,' . base64_encode( $con ) . '" defer></script>';
	}

	/**
	 * Replace ESI to JS inline var (mainly used to avoid nonce timeout)
	 *
	 * @since  3.5.1
	 */
	private function _preserve_esi( $con ) {
		$esi_placeholder_list = $this->cls( 'ESI' )->contain_preserve_esi( $con );
		if ( ! $esi_placeholder_list ) {
			return $con;
		}

		foreach ( $esi_placeholder_list as $esi_placeholder ) {
			$js_var = '__litespeed_var_' . ( self::$_var_i ++ ) . '__';
			$con = str_replace( $esi_placeholder, $js_var, $con );
			$this->_var_preserve_js[] = $js_var . '=' . $esi_placeholder;
		}

		return $con;
	}

	/**
	 * Parse css src and remove to-be-removed css
	 *
	 * @since  1.2.2
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_css() {
		$excludes = apply_filters( 'litespeed_optimize_css_excludes', $this->conf( self::O_OPTM_CSS_EXC ) );

		$combine_ext_inl = $this->conf( self::O_OPTM_CSS_COMB_EXT_INL );

		$css_to_be_removed = apply_filters( 'litespeed_optm_css_to_be_removed', array() );

		$src_list = array();
		$html_list = array();

		// $dom = new \PHPHtmlParser\Dom;
		// $dom->load( $content );return $val;
		// $items = $dom->find( 'link' );

		$content = preg_replace( array( '#<!--.*-->#sU', '#<script([^>]*)>.*</script>#isU', '#<noscript([^>]*)>.*</noscript>#isU' ), '', $this->content );
		preg_match_all( '#<link ([^>]+)/?>|<style([^>]*)>([^<]+)</style>#isU', $content, $matches, PREG_SET_ORDER );

		foreach ( $matches as $match ) {
			// to avoid multiple replacement
			if ( in_array( $match[ 0 ], $html_list ) ) {
				continue;
			}

			if ( $exclude = Utility::str_hit_array( $match[ 0 ], $excludes ) ) {
				Debug2::debug2( '[Optm] _parse_css bypassed exclude ' . $exclude );
				continue;
			}

			$this_src_arr = array();
			if ( strpos( $match[ 0 ], '<link' ) === 0 ) {
				$attrs = Utility::parse_attr( $match[ 1 ] );
				if ( empty( $attrs[ 'rel' ] ) || $attrs[ 'rel' ] !== 'stylesheet' ) {
					continue;
				}
				if ( empty( $attrs[ 'href' ] ) ) {
					continue;
				}

				// Check if need to remove this css
				if ( Utility::str_hit_array( $attrs[ 'href' ], $css_to_be_removed ) ) {
					Debug2::debug( '[Optm] rm css snippet ' . $attrs[ 'href' ] );
					// Delete this css snippet from orig html
					$this->content = str_replace( $match[ 0 ], '', $this->content );

					continue;
				}

				// Check Google fonts hit
				if ( strpos( $attrs[ 'href' ], 'fonts.googleapis.com' ) !== false ) {
					/**
					 * For async gg fonts, will add webfont into head, hence remove it from buffer and store the matches to use later
					 * @since  2.7.3
					 * @since  3.0 For font display optm, need to parse google fonts URL too
					 */
					if ( ! in_array( $attrs[ 'href' ], $this->_ggfonts_urls ) ) {
						$this->_ggfonts_urls[] = $attrs[ 'href' ];
					}

					if ( $this->cfg_ggfonts_rm || $this->cfg_ggfonts_async ) {
						Debug2::debug( '[Optm] rm css snippet [Google fonts] ' . $attrs[ 'href' ] );
						$this->content = str_replace( $match[ 0 ], '', $this->content );

						continue;
					}
				}

				if ( isset( $attrs[ 'data-optimized' ] ) ) {
					// $this_src_arr[ 'exc' ] = true;
					continue;
				}
				elseif ( ! empty( $attrs[ 'data-no-optimize' ] ) ) {
					// $this_src_arr[ 'exc' ] = true;
					continue;
				}

				$is_internal = Utility::is_internal_file( $attrs[ 'href' ] );
				$ext_excluded = ! $combine_ext_inl && ! $is_internal;
				if ( $ext_excluded ) {
					Debug2::debug2( '[Optm] Bypassed due to external link' );
					// Maybe defer
					if ( $this->cfg_css_async ) {
						$snippet = $this->_async_css( $match[ 0 ] );
						if ( $snippet != $match[ 0 ] ) {
							$this->content = str_replace( $match[ 0 ], $snippet, $this->content );
						}
					}

					continue;
				}

				if ( ! empty( $attrs[ 'media' ] ) && $attrs[ 'media' ] !== 'all' ) {
					$this_src_arr[ 'media' ] = $attrs[ 'media' ];
				}

				$this_src_arr[ 'src' ] = $attrs[ 'href' ];
			}
			else { // Inline style
				if ( ! $combine_ext_inl ) {
					Debug2::debug2( '[Optm] Bypassed due to inline' );
					continue;
				}

				$attrs = Utility::parse_attr( $match[ 2 ] );

				if ( ! empty( $attrs[ 'data-no-optimize' ] ) ) {
					continue;
				}

				if ( ! empty( $attrs[ 'media' ] ) && $attrs[ 'media' ] !== 'all' ) {
					$this_src_arr[ 'media' ] = $attrs[ 'media' ];
				}

				$this_src_arr[ 'inl' ] = true;
				$this_src_arr[ 'src' ] = $match[ 3 ];
			}

			$src_list[] = $this_src_arr;

			$html_list[] = $match[ 0 ];
		}

		return array( $src_list, $html_list );
	}

	/**
	 * Replace css to async loaded css
	 *
	 * @since  1.3
	 * @access private
	 */
	private function _async_css_list( $html_list, $src_list ) {
		foreach ( $html_list as $k => $ori ) {
			if ( ! empty( $src_list[ $k ][ 'inl' ] ) ) {
				continue;
			}

			$html_list[ $k ] = $this->_async_css( $ori );
		}
		return $html_list;
	}

	/**
	 * Async CSS snippet
	 * @since 3.5
	 */
	private function _async_css( $ori ) {
		if ( strpos( $ori, 'data-asynced' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr data-asynced exist' );
			return $ori;
		}

		if ( strpos( $ori, 'data-no-async' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr api data-no-async' );
			return $ori;
		}

		// async replacement
		$v = str_replace( 'stylesheet', 'preload', $ori );
		$v = str_replace( '<link', '<link data-asynced="1" as="style" onload="this.onload=null;this.rel=\'stylesheet\'" ', $v );
		// Append to noscript content
		if ( ! defined( 'LITESPEED_GUEST_OPTM' ) && ! $this->conf( self::O_OPTM_NOSCRIPT_RM ) ) {
			$v .= '<noscript>' . preg_replace( '/ id=\'[\w-]+\' /U', ' ', $ori ) . '</noscript>';
		}

		return $v;
	}

	/**
	 * Defer JS snippet
	 *
	 * @since  3.5
	 */
	private function _js_defer( $ori, $src ) {
		if ( strpos( $ori, ' async' ) !== false ) {
			$ori = str_replace( ' async', '', $ori );
		}

		if ( strpos( $ori, 'defer' ) !== false ) {
			return false;
		}
		if ( strpos( $ori, 'data-deferred' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr data-deferred exist' );
			return false;
		}
		if ( strpos( $ori, 'data-no-defer' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr api data-no-defer' );
			return false;
		}

		/**
		 * Exclude JS from setting
		 * @since 1.5
		 */
		if ( Utility::str_hit_array( $src, $this->cfg_js_defer_exc ) ) {
			Debug2::debug( '[Optm] js defer exclude ' . $src );
			return false;
		}

		if ( $this->cfg_js_defer === 2 ) {
			if ( strpos( $ori, ' type=' ) !== false ) {
				$ori = preg_replace( '# type=([\'"])([^\1]+)\1#isU', '', $ori );
			}
			return str_replace( ' src=', ' type="litespeed/javascript" data-src=', $ori );
		}

		return str_replace( '></script>', ' defer data-deferred="1"></script>', $ori );
	}

}
<?php
/**
 * The plugin cache-control class for X-Litespeed-Cache-Control
 *
 * @since      	1.1.3
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Control extends Root {
	const BM_CACHEABLE = 1;
	const BM_PRIVATE = 2;
	const BM_SHARED = 4;
	const BM_NO_VARY = 8;
	const BM_FORCED_CACHEABLE = 32;
	const BM_PUBLIC_FORCED = 64;
	const BM_STALE = 128;
	const BM_NOTCACHEABLE = 256;

	const X_HEADER = 'X-LiteSpeed-Cache-Control';

	protected static $_control = 0;
	protected static $_custom_ttl = 0;

	private $_response_header_ttls = array();

	/**
	 * Init cache control
	 *
	 * @since  1.6.2
	 */
	public function init() {
		/**
		 * Add vary filter for Role Excludes
		 * @since  1.6.2
		 */
		add_filter( 'litespeed_vary', array( $this, 'vary_add_role_exclude' ) );

		// 301 redirect hook
		add_filter( 'wp_redirect', array( $this, 'check_redirect' ), 10, 2 );

		// Load response header conf
		$this->_response_header_ttls = $this->conf( Base::O_CACHE_TTL_STATUS );
		foreach ( $this->_response_header_ttls as $k => $v ) {
			$v = explode( ' ', $v );
			if ( empty( $v[ 0 ] ) || empty( $v[ 1 ] ) ) {
				continue;
			}
			$this->_response_header_ttls[ $v[ 0 ] ] = $v[ 1 ];
		}

		if ( $this->conf( Base::O_PURGE_STALE ) ) {
			$this->set_stale();
		}
	}

	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function vary_add_role_exclude( $vary ) {
		if ( $this->in_cache_exc_roles() ) {
			$vary[ 'role_exclude_cache' ] = 1;
		}

		return $vary;
	}

	/**
	 * Check if one user role is in exclude cache group settings
	 *
	 * @since 1.6.2
	 * @since 3.0 Moved here from conf.cls
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_cache_exc_roles( $role = null ) {
		// Get user role
		if ( $role === null ) {
			$role = Router::get_role();
		}

		if ( ! $role ) {
			return false;
		}

		return in_array( $role, $this->conf( Base::O_CACHE_EXC_ROLES ) ) ? $role : false;
	}

	/**
	 * 1. Initialize cacheable status for `wp` hook
	 * 2. Hook error page tags for cacheable pages
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function init_cacheable() {
		// Hook `wp` to mark default cacheable status
		// NOTE: Any process that does NOT run into `wp` hook will not get cacheable by default
		add_action( 'wp', array( $this, 'set_cacheable' ), 5 );

		// Hook WP REST to be cacheable
		if ( $this->conf( Base::O_CACHE_REST ) ) {
			add_action( 'rest_api_init', array( $this, 'set_cacheable' ), 5 );
		}

		// Cache resources
		// NOTE: If any strange resource doesn't use normal WP logic `wp_loaded` hook, rewrite rule can handle it
		$cache_res = $this->conf( Base::O_CACHE_RES );
		if ( $cache_res ) {
			$uri = esc_url( $_SERVER["REQUEST_URI"] );// todo: check if need esc_url()
			$pattern = '!' . LSCWP_CONTENT_FOLDER . Htaccess::RW_PATTERN_RES . '!';
			if ( preg_match( $pattern, $uri ) ) {
				add_action( 'wp_loaded', array( $this, 'set_cacheable' ), 5 );
			}
		}

		// Check error page
		add_filter( 'status_header', array( $this, 'check_error_codes' ), 10, 2 );
	}


	/**
	 * Check if the page returns any error code.
	 *
	 * @since 1.0.13.1
	 * @access public
	 * @param $status_header
	 * @param $code
	 * @return $eror_status
	 */
	public function check_error_codes( $status_header, $code ) {
		if ( array_key_exists( $code, $this->_response_header_ttls ) ) {
			if ( self::is_cacheable() && ! $this->_response_header_ttls[ $code ] ) {
				self::set_nocache( '[Ctrl] TTL is set to no cache [status_header] ' . $code );
			}

			// Set TTL
			self::set_custom_ttl( $this->_response_header_ttls[ $code ] );
		}

		// Set cache tag
		Tag::add( Tag::TYPE_HTTP . $code );

		// Give the default status_header back
		return $status_header;
	}

	/**
	 * Set no vary setting
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function set_no_vary() {
		if ( self::is_no_vary() ) {
			return;
		}
		self::$_control |= self::BM_NO_VARY;
		Debug2::debug( '[Ctrl] X Cache_control -> no-vary', 3 );
	}

	/**
	 * Get no vary setting
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_no_vary() {
		return self::$_control & self::BM_NO_VARY;
	}

	/**
	 * Set stale
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function set_stale() {
		if ( self::is_stale() ) {
			return;
		}
		self::$_control |= self::BM_STALE;
		Debug2::debug('[Ctrl] X Cache_control -> stale');
	}

	/**
	 * Get stale
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_stale() {
		return self::$_control & self::BM_STALE;
	}

	/**
	 * Set cache control to shared private
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_shared( $reason = false ) {
		if ( self::is_shared() ) {
			return;
		}
		self::$_control |= self::BM_SHARED;
		self::set_private();

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}
		Debug2::debug( '[Ctrl] X Cache_control -> shared ' . $reason );
	}

	/**
	 * Check if is shared private
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_shared() {
		return (self::$_control & self::BM_SHARED) && self::is_private();
	}

	/**
	 * Set cache control to forced public
	 *
	 * @access public
	 * @since 1.7.1
	 */
	public static function set_public_forced( $reason = false ) {
		if ( self::is_public_forced() ) {
			return;
		}
		self::$_control |= self::BM_PUBLIC_FORCED;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}
		Debug2::debug( '[Ctrl] X Cache_control -> public forced ' . $reason );
	}

	/**
	 * Check if is public forced
	 *
	 * @access public
	 * @since 1.7.1
	 */
	public static function is_public_forced() {
		return self::$_control & self::BM_PUBLIC_FORCED;
	}

	/**
	 * Set cache control to private
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_private( $reason = false ) {
		if ( self::is_private() ) {
			return;
		}
		self::$_control |= self::BM_PRIVATE;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}
		Debug2::debug( '[Ctrl] X Cache_control -> private ' . $reason );
	}

	/**
	 * Check if is private
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_private() {
		if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST ) {
			// return false;
		}

		return self::$_control & self::BM_PRIVATE && ! self::is_public_forced();
	}

	/**
	 * Initialize cacheable status in `wp` hook, if not call this, by default it will be non-cacheable
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function set_cacheable( $reason = false ) {
		self::$_control |= self::BM_CACHEABLE;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = ' [reason] ' . $reason;
		}
		Debug2::debug( '[Ctrl] X Cache_control init on' . $reason );
	}

	/**
	 * This will disable non-cacheable BM
	 *
	 * @access public
	 * @since 2.2
	 */
	public static function force_cacheable( $reason = false ) {
		self::$_control |= self::BM_FORCED_CACHEABLE;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = ' [reason] ' . $reason;
		}
		Debug2::debug( '[Ctrl] Forced cacheable' . $reason );
	}

	/**
	 * Switch to nocacheable status
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_nocache( $reason = false ) {
		self::$_control |= self::BM_NOTCACHEABLE;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}
		Debug2::debug( '[Ctrl] X Cache_control -> no Cache ' . $reason, 5 );
	}

	/**
	 * Check current notcacheable bit set
	 *
	 * @access public
	 * @since 1.1.3
	 * @return bool True if notcacheable bit is set, otherwise false.
	 */
	public static function isset_notcacheable() {
		return self::$_control & self::BM_NOTCACHEABLE;
	}

	/**
	 * Check current force cacheable bit set
	 *
	 * @access public
	 * @since 	2.2
	 */
	public static function is_forced_cacheable() {
		return self::$_control & self::BM_FORCED_CACHEABLE;
	}

	/**
	 * Check current cacheable status
	 *
	 * @access public
	 * @since 1.1.3
	 * @return bool True if is still cacheable, otherwise false.
	 */
	public static function is_cacheable() {
		if ( defined( 'LSCACHE_NO_CACHE' ) && LSCACHE_NO_CACHE ) {
			Debug2::debug( '[Ctrl] LSCACHE_NO_CACHE constant defined' );
			return false;
		}

		// Guest mode always cacheable
		if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST ) {
			// return true;
		}

		// If its forced public cacheable
		if ( self::is_public_forced() ) {
			return true;
		}

		// If its forced cacheable
		if ( self::is_forced_cacheable() ) {
			return true;
		}

		return ! self::isset_notcacheable() && self::$_control & self::BM_CACHEABLE;
	}

	/**
	 * Set a custom TTL to use with the request if needed.
	 *
	 * @access public
	 * @since 1.1.3
	 * @param mixed $ttl An integer or string to use as the TTL. Must be numeric.
	 */
	public static function set_custom_ttl( $ttl, $reason = false ) {
		if ( is_numeric( $ttl ) ) {
			self::$_custom_ttl = $ttl;
			Debug2::debug( '[Ctrl] X Cache_control TTL -> ' . $ttl . ( $reason ? ' [reason] ' . $ttl : '' ) );
		}
	}

	/**
	 * Generate final TTL.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function get_ttl() {
		if ( self::$_custom_ttl != 0 ) {
			return self::$_custom_ttl;
		}

		// Check if is in timed url list or not
		$timed_urls = Utility::wildcard2regex( $this->conf( Base::O_PURGE_TIMED_URLS ) );
		$timed_urls_time = $this->conf( Base::O_PURGE_TIMED_URLS_TIME );
		if ( $timed_urls && $timed_urls_time ) {
			$current_url = Tag::build_uri_tag( true );
			// Use time limit ttl
			$scheduled_time = strtotime( $timed_urls_time );
			$ttl = $scheduled_time - time();
			if ( $ttl < 0 ) {
				$ttl += 86400;// add one day
			}
			foreach ( $timed_urls as $v ) {
				if ( strpos( $v, '*' ) !== false ) {
					if( preg_match( '#' . $v . '#iU', $current_url ) ) {
						Debug2::debug( '[Ctrl] X Cache_control TTL is limited to ' . $ttl . ' due to scheduled purge regex ' . $v );
						return $ttl;
					}
				}
				else {
					if ( $v == $current_url ) {
						Debug2::debug( '[Ctrl] X Cache_control TTL is limited to ' . $ttl . ' due to scheduled purge rule ' . $v );
						return $ttl;
					}
				}
			}
		}

		// Private cache uses private ttl setting
		if ( self::is_private() ) {
			return $this->conf( Base::O_CACHE_TTL_PRIV );
		}

		if ( is_front_page() ){
			return $this->conf( Base::O_CACHE_TTL_FRONTPAGE );
		}

		$feed_ttl = $this->conf( Base::O_CACHE_TTL_FEED );
		if ( is_feed() && $feed_ttl > 0 ) {
			return $feed_ttl;
		}

		if ( $this->cls( 'REST' )->is_rest() || $this->cls( 'REST' )->is_internal_rest() ) {
			return $this->conf( Base::O_CACHE_TTL_REST );
		}

		return $this->conf( Base::O_CACHE_TTL_PUB );
	}

	/**
	 * Check if need to set no cache status for redirection or not
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function check_redirect( $location, $status ) { // TODO: some env don't have SCRIPT_URI but only REQUEST_URI, need to be compatible
		if ( ! empty( $_SERVER[ 'SCRIPT_URI' ] ) ) { // dont check $status == '301' anymore
			Debug2::debug( "[Ctrl] 301 from " . $_SERVER[ 'SCRIPT_URI' ] );
			Debug2::debug( "[Ctrl] 301 to $location" );

			$to_check = array(
				PHP_URL_SCHEME,
				PHP_URL_HOST,
				PHP_URL_PATH,
			);

			$is_same_redirect = true;

			foreach ( $to_check as $v ) {
				if ( parse_url( $_SERVER[ 'SCRIPT_URI' ], $v ) != parse_url( $location, $v ) ) {
					$is_same_redirect = false;
					Debug2::debug( "[Ctrl] 301 different redirection" );
					break;
				}
			}

			if ( $is_same_redirect ) {
				self::set_nocache( '301 to same url' );
			}
		}

		return $location;
	}

	/**
	 * Sets up the Cache Control header.
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string empty string if empty, otherwise the cache control header.
	 */
	public function output() {
		$esi_hdr = '';
		if ( ESI::has_esi() ) {
			$esi_hdr = ',esi=on';
		}

		$hdr = self::X_HEADER . ': ';

		if ( defined( 'DONOTCACHEPAGE' ) && apply_filters( 'litespeed_const_DONOTCACHEPAGE', DONOTCACHEPAGE ) ) {
			Debug2::debug( "[Ctrl] ❌ forced no cache [reason] DONOTCACHEPAGE const" );
			$hdr .= 'no-cache' . $esi_hdr;
			return $hdr;
		}

		// Guest mode directly return cacheable result
		// if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST ) {
		// 	// If is POST, no cache
		// 	if ( defined( 'LSCACHE_NO_CACHE' ) && LSCACHE_NO_CACHE ) {
		// 		Debug2::debug( "[Ctrl] ❌ forced no cache [reason] LSCACHE_NO_CACHE const" );
		// 		$hdr .= 'no-cache';
		// 	}
		// 	else if( $_SERVER[ 'REQUEST_METHOD' ] !== 'GET' ) {
		// 		Debug2::debug( "[Ctrl] ❌ forced no cache [reason] req not GET" );
		// 		$hdr .= 'no-cache';
		// 	}
		// 	else {
		// 		$hdr .= 'public';
		// 		$hdr .= ',max-age=' . $this->get_ttl();
		// 	}

		// 	$hdr .= $esi_hdr;

		// 	return $hdr;
		// }

		// Fix cli `uninstall --deactivate` fatal err

		if ( ! self::is_cacheable() ) {
			$hdr .= 'no-cache' . $esi_hdr;
			return $hdr;
		}

		if ( self::is_shared() ) {
			$hdr .= 'shared,private';
		}
		elseif ( self::is_private() ) {
			$hdr .= 'private';
		}
		else {
			$hdr .= 'public';
		}

		if ( self::is_no_vary() ) {
			$hdr .= ',no-vary';
		}

		$hdr .= ',max-age=' . $this->get_ttl() . $esi_hdr;
		return $hdr;
	}

	/**
	 * Generate all `control` tags before output
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function finalize() {
		if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST ) {
			// return;
		}

		// Check if URI is forced public cache
		$excludes = $this->conf( Base::O_CACHE_FORCE_PUB_URI );
		$hit =  Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes, true );
		if ( $hit ) {
			list( $result, $this_ttl ) = $hit;
			self::set_public_forced( 'Setting: ' . $result );
			Debug2::debug( '[Ctrl] Forced public cacheable due to setting: ' . $result );
			if ( $this_ttl ) {
				self::set_custom_ttl( $this_ttl );
			}
		}

		if ( self::is_public_forced() ) {
			return;
		}

		// Check if URI is forced cache
		$excludes = $this->conf( Base::O_CACHE_FORCE_URI );
		$hit =  Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes, true );
		if ( $hit ) {
			list( $result, $this_ttl ) = $hit;
			self::force_cacheable();
			Debug2::debug( '[Ctrl] Forced cacheable due to setting: ' . $result );
			if ( $this_ttl ) {
				self::set_custom_ttl( $this_ttl );
			}
		}

		// if is not cacheable, terminate check
		// Even no need to run 3rd party hook
		if ( ! self::is_cacheable() ) {
			Debug2::debug( '[Ctrl] not cacheable before ctrl finalize' );
			return;
		}

		// Apply 3rd party filter
		// NOTE: Hook always needs to run asap because some 3rd party set is_mobile in this hook
		do_action('litespeed_control_finalize', defined( 'LSCACHE_IS_ESI' ) ? LSCACHE_IS_ESI : false ); // Pass ESI block id

		// if is not cacheable, terminate check
		if ( ! self::is_cacheable() ) {
			Debug2::debug( '[Ctrl] not cacheable after api_control' );
			return;
		}

		if ( is_preview() ) {
			self::set_nocache( 'preview page' );
			return;
		}

		// Check litespeed setting to set cacheable status
		if ( ! $this->_setting_cacheable() ) {
			self::set_nocache();
			return;
		}

		// If user has password cookie, do not cache (moved from vary)
		global $post;
		if ( ! empty($post->post_password) && isset($_COOKIE['wp-postpass_' . COOKIEHASH]) ) {
			// If user has password cookie, do not cache
			self::set_nocache('pswd cookie');
			return;
		}

		// The following check to the end is ONLY for mobile
		$is_mobile = apply_filters( 'litespeed_is_mobile', false );
		if ( ! $this->conf( Base::O_CACHE_MOBILE ) ) {
			if ( $is_mobile ) {
				self::set_nocache( 'mobile' );
			}
			return;
		}

		$env_vary = isset( $_SERVER[ 'LSCACHE_VARY_VALUE' ] ) ? $_SERVER[ 'LSCACHE_VARY_VALUE' ] : false;
		if ( ! $env_vary ) {
			$env_vary = isset( $_SERVER[ 'HTTP_X_LSCACHE_VARY_VALUE' ] ) ? $_SERVER[ 'HTTP_X_LSCACHE_VARY_VALUE' ] : false;
		}
		if ( $env_vary && strpos( $env_vary, 'ismobile' ) !== false ) {
			if ( ! wp_is_mobile() && ! $is_mobile ) {
				self::set_nocache( 'is not mobile' ); // todo: no need to uncache, it will correct vary value in vary finalize anyways
				return;
			}
		}
		elseif ( wp_is_mobile() || $is_mobile ) {
			self::set_nocache( 'is mobile' );
			return;
		}

	}

	/**
	 * Check if is mobile for filter `litespeed_is_mobile` in API
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function is_mobile() {
		return wp_is_mobile();
	}

	/**
	 * Check if a page is cacheable based on litespeed setting.
	 *
	 * @since 1.0.0
	 * @access private
	 * @return boolean True if cacheable, false otherwise.
	 */
	private function _setting_cacheable() {
		// logged_in users already excluded, no hook added

		if( ! empty( $_REQUEST[ Router::ACTION ] ) ) {
			return $this->_no_cache_for( 'Query String Action' );
		}

		if ( $_SERVER[ 'REQUEST_METHOD' ] !== 'GET' ) {
			return $this->_no_cache_for('not GET method:' . $_SERVER["REQUEST_METHOD"]);
		}

		if ( is_feed() && $this->conf( Base::O_CACHE_TTL_FEED ) == 0 ) {
			return $this->_no_cache_for('feed');
		}

		if ( is_trackback() ) {
			return $this->_no_cache_for('trackback');
		}

		if ( is_search() ) {
			return $this->_no_cache_for('search');
		}

//		if ( !defined('WP_USE_THEMES') || !WP_USE_THEMES ) {
//			return $this->_no_cache_for('no theme used');
//		}

		// Check private cache URI setting
		$excludes = $this->conf( Base::O_CACHE_PRIV_URI );
		$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes );
		if ( $result ) {
			self::set_private( 'Admin cfg Private Cached URI: ' . $result );
		}

		if ( ! self::is_forced_cacheable() ) {

			// Check if URI is excluded from cache
			$excludes = $this->conf( Base::O_CACHE_EXC );
			$result =  Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes );
			if ( $result ) {
				return $this->_no_cache_for( 'Admin configured URI Do not cache: ' . $result );
			}

			// Check QS excluded setting
			$excludes = $this->conf( Base::O_CACHE_EXC_QS );
			if ( ! empty( $excludes ) && $qs = $this->_is_qs_excluded( $excludes ) ) {
				return $this->_no_cache_for( 'Admin configured QS Do not cache: ' . $qs );
			}

			$excludes = $this->conf( Base::O_CACHE_EXC_CAT );
			if ( ! empty( $excludes ) && has_category( $excludes ) ) {
				return $this->_no_cache_for( 'Admin configured Category Do not cache.' );
			}

			$excludes = $this->conf( Base::O_CACHE_EXC_TAG );
			if ( ! empty( $excludes ) && has_tag( $excludes ) ) {
				return $this->_no_cache_for( 'Admin configured Tag Do not cache.' );
			}

			$excludes = $this->conf( Base::O_CACHE_EXC_COOKIES );
			if ( ! empty( $excludes ) && ! empty( $_COOKIE ) ) {
				$cookie_hit = array_intersect( array_keys( $_COOKIE ), $excludes );
				if ( $cookie_hit ) {
					return $this->_no_cache_for( 'Admin configured Cookie Do not cache.' );
				}
			}

			$excludes = $this->conf( Base::O_CACHE_EXC_USERAGENTS );
			if ( ! empty( $excludes ) && isset( $_SERVER[ 'HTTP_USER_AGENT' ] ) ) {
				$nummatches = preg_match( Utility::arr2regex( $excludes ), $_SERVER[ 'HTTP_USER_AGENT' ] );
				if ( $nummatches ) {
						return $this->_no_cache_for('Admin configured User Agent Do not cache.');
				}
			}

			// Check if is exclude roles ( Need to set Vary too )
			if ( $result = $this->in_cache_exc_roles() ) {
				return $this->_no_cache_for( 'Role Excludes setting ' . $result );
			}
		}

		return true;
	}

	/**
	 * Write a debug message for if a page is not cacheable.
	 *
	 * @since 1.0.0
	 * @access private
	 * @param string $reason An explanation for why the page is not cacheable.
	 * @return boolean Return false.
	 */
	private function _no_cache_for( $reason ) {
		Debug2::debug('[Ctrl] X Cache_control off - ' . $reason);
		return false;
	}

	/**
	 * Check if current request has qs excluded setting
	 *
	 * @since  1.3
	 * @access private
	 * @param  array  $excludes QS excludes setting
	 * @return boolean|string False if not excluded, otherwise the hit qs list
	 */
	private function _is_qs_excluded( $excludes ) {
		if ( ! empty( $_GET ) && $intersect = array_intersect( array_keys( $_GET ), $excludes ) ) {
			return implode( ',', $intersect );
		}
		return false;
	}

}<?php
/**
 * The REST related class.
 *
 * @since      	2.9.4
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class REST extends Root {
	private $_internal_rest_status = false;

	/**
	 * Confructor of ESI
	 *
	 * @since    2.9.4
	 */
	public function __construct() {
		// Hook to internal REST call
		add_filter( 'rest_request_before_callbacks', array( $this, 'set_internal_rest_on' ) );
		add_filter( 'rest_request_after_callbacks', array( $this, 'set_internal_rest_off' ) );

		add_action( 'rest_api_init', array( $this, 'rest_api_init' ) );
	}

	/**
	 * Register REST hooks
	 *
	 * @since  3.0
	 * @access public
	 */
	public function rest_api_init() {
		// Activate or deactivate a specific crawler callback
		register_rest_route( 'litespeed/v1', '/toggle_crawler_state', array(
			'methods' => 'POST',
			'callback' => array( $this, 'toggle_crawler_state' ),
			'permission_callback'	=> '__return_true',
		) );

		register_rest_route( 'litespeed/v1', '/tool/check_ip', array(
			'methods' => 'GET',
			'callback' => array( $this, 'check_ip' ),
			'permission_callback'	=> function() {
				return current_user_can( 'manage_network_options' ) || current_user_can( 'manage_options' );
			}
		) );

		// IP callback validate
		register_rest_route( 'litespeed/v1', '/ip_validate', array(
			'methods' => 'POST',
			'callback' => array( $this, 'ip_validate' ),
			'permission_callback'	=> array( $this, 'is_from_cloud' ),
		) );

		// Token callback validate
		register_rest_route( 'litespeed/v1', '/token', array(
			'methods' => 'POST',
			'callback' => array( $this, 'token' ),
			'permission_callback'	=> array( $this, 'is_from_cloud' ),
		) );
		register_rest_route( 'litespeed/v1', '/token', array(
			'methods' => 'GET',
			'callback' => array( $this, 'token_get' ),
			'permission_callback'	=> array( $this, 'is_from_cloud' ),
		) );
		register_rest_route( 'litespeed/v1', '/ping', array(
			'methods' => 'GET',
			'callback' => array( $this, 'ping' ),
			'permission_callback'	=> '__return_true',
		) );

		// API key callback notification
		register_rest_route( 'litespeed/v1', '/apikey', array(
			'methods' => 'POST',
			'callback' => array( $this, 'apikey' ),
			'permission_callback'	=> array( $this, 'is_from_cloud' ),
		) );

		// Image optm notify_img
		// Need validation
		register_rest_route( 'litespeed/v1', '/notify_img', array(
			'methods' => 'POST',
			'callback' => array( $this, 'notify_img' ),
			'permission_callback'	=> array( $this, 'is_from_cloud' ),
		) );

		// Image optm check_img
		// Need validation
		register_rest_route( 'litespeed/v1', '/check_img', array(
			'methods' => 'POST',
			'callback' => array( $this, 'check_img' ),
			'permission_callback'	=> array( $this, 'is_from_cloud' ),
		) );

	}

	/**
	 * Call to freeze or melt the crawler clicked
	 *
	 * @since  4.3
	 */
	public function toggle_crawler_state() {
		if( isset( $_POST[ 'crawler_id' ] ) ) {
			return $this->cls( 'Crawler' )->toggle_activeness( $_POST[ 'crawler_id' ] ) ? 1 : 0;
		}
	}

	/**
	 * Check if the request is from cloud nodes
	 *
	 * @since 4.2
	 * @since 4.4.7 As there is always token/api key validation, ip validation is redundant
	 */
	public function is_from_cloud() {
		return true;
		// return $this->cls( 'Cloud' )->is_from_cloud();
	}

	/**
	 * Token get for
	 *
	 * @since  3.0.4
	 */
	public function token_get() {
		return Cloud::ok();
	}

	/**
	 * Ping pong
	 *
	 * @since  3.0.4
	 */
	public function ping() {
		return Cloud::ok( array( 'ver' => Core::VER ) );
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function check_ip() {
		return Tool::cls()->check_ip();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function ip_validate() {
		return $this->cls( 'Cloud' )->ip_validate();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function token() {
		return $this->cls( 'Cloud' )->token_validate();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function apikey() {
		return $this->cls( 'Cloud' )->save_apikey();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function notify_img() {
		return Img_Optm::cls()->notify_img();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function check_img() {
		return Img_Optm::cls()->check_img();
	}

	/**
	 * Set internal REST tag to ON
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function set_internal_rest_on( $not_used = null )
	{
		$this->_internal_rest_status = true;
		Debug2::debug2( '[REST] ✅ Internal REST ON [filter] rest_request_before_callbacks' );

		return $not_used;
	}

	/**
	 * Set internal REST tag to OFF
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function set_internal_rest_off( $not_used = null )
	{
		$this->_internal_rest_status = false;
		Debug2::debug2( '[REST] ❎ Internal REST OFF [filter] rest_request_after_callbacks' );

		return $not_used;
	}

	/**
	 * Get internal REST tag
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function is_internal_rest()
	{
		return $this->_internal_rest_status;
	}

	/**
	 * Check if an URL or current page is REST req or not
	 *
	 * @since  2.9.3
	 * @since  2.9.4 Moved here from Utility, dropped static
	 * @access public
	 */
	public function is_rest( $url = false )
	{
		// For WP 4.4.0- compatibility
		if ( ! function_exists( 'rest_get_url_prefix' ) ) {
			return defined( 'REST_REQUEST' ) && REST_REQUEST;
		}

		$prefix = rest_get_url_prefix();

		// Case #1: After WP_REST_Request initialisation
		if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
			return true;
		}

		// Case #2: Support "plain" permalink settings
		if ( isset( $_GET[ 'rest_route' ] ) && strpos( trim( $_GET[ 'rest_route' ], '\\/' ), $prefix , 0 ) === 0 ) {
			return true;
		}

		if ( ! $url ) {
			return false;
		}

		// Case #3: URL Path begins with wp-json/ (REST prefix) Safe for subfolder installation
		$rest_url = wp_parse_url( site_url( $prefix ) );
		$current_url = wp_parse_url( $url );
		// Debug2::debug( '[Util] is_rest check [base] ', $rest_url );
		// Debug2::debug( '[Util] is_rest check [curr] ', $current_url );
		// Debug2::debug( '[Util] is_rest check [curr2] ', wp_parse_url( add_query_arg( array( ) ) ) );
		return strpos( $current_url[ 'path' ], $rest_url[ 'path' ] ) === 0;
	}
}
<?php
/**
 * The utility class.
 *
 * @since      	1.1.5
 * @since  		1.5 Moved into /inc
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Utility extends Root {
	private static $_internal_domains;

	/**
	 * Validate regex
	 *
	 * @since 1.0.9
	 * @since  3.0 Moved here from admin-settings.cls
	 * @access public
	 * @return bool True for valid rules, false otherwise.
	 */
	public static function syntax_checker( $rules ) {
		return preg_match( self::arr2regex( $rules ), '' ) !== false;
	}

	/**
	 * Combine regex array to regex rule
	 *
	 * @since  3.0
	 */
	public static function arr2regex( $arr, $drop_delimiter = false ) {
		$arr = self::sanitize_lines( $arr );

		$new_arr = array();
		foreach ( $arr as $v ) {
			$new_arr[] = preg_quote( $v, '#' );
		}

		$regex = implode( '|', $new_arr );
		$regex = str_replace( ' ', '\\ ', $regex );

		if ( $drop_delimiter ) {
			return $regex;
		}

		return '#' . $regex . '#';
	}

	/**
	 * Replace wildcard to regex
	 *
	 * @since  3.2.2
	 */
	public static function wildcard2regex( $string ) {
		if ( is_array( $string ) ) {
			return array_map( __CLASS__ . '::wildcard2regex', $string );
		}

		if ( strpos( $string, '*' ) !== false ) {
			$string = preg_quote( $string, '#' );
			$string = str_replace( '\*', '.*', $string );
		}

		return $string;
	}

	/**
	 * Check if an URL or current page is REST req or not
	 *
	 * @since  2.9.3
	 * @deprecated 2.9.4 Moved to REST class
	 * @access public
	 */
	public static function is_rest( $url = false ) {
		return false;
	}

	/**
	 * Get current page type
	 *
	 * @since  2.9
	 */
	public static function page_type() {
		global $wp_query;
		$page_type = 'default';

		if ( $wp_query->is_page ) {
			$page_type = is_front_page() ? 'front' : 'page';
		}
		elseif ( $wp_query->is_home ) {
			$page_type = 'home';
		}
		elseif ( $wp_query->is_single ) {
			// $page_type = $wp_query->is_attachment ? 'attachment' : 'single';
			$page_type = get_post_type();
		}
		elseif ( $wp_query->is_category ) {
			$page_type = 'category';
		}
		elseif ( $wp_query->is_tag ) {
			$page_type = 'tag';
		}
		elseif ( $wp_query->is_tax ) {
			$page_type = 'tax';
			// $page_type = get_queried_object()->taxonomy;
		}
		elseif ( $wp_query->is_archive ) {
			if ( $wp_query->is_day ) {
				$page_type = 'day';
			}
			elseif ( $wp_query->is_month ) {
				$page_type = 'month';
			}
			elseif ( $wp_query->is_year ) {
				$page_type = 'year';
			}
			elseif ( $wp_query->is_author ) {
				$page_type = 'author';
			}
			else {
				$page_type = 'archive';
			}
		}
		elseif ( $wp_query->is_search ) {
			$page_type = 'search';
		}
		elseif ( $wp_query->is_404 ) {
			$page_type = '404';
		}

		return $page_type;

		// if ( is_404() ) {
		// 	$page_type = '404';
		// }
		// elseif ( is_singular() ) {
		// 	$page_type = get_post_type();
		// }
		// elseif ( is_home() && get_option( 'show_on_front' ) == 'page' ) {
		// 	$page_type = 'home';
		// }
		// elseif ( is_front_page() ) {
		// 	$page_type = 'front';
		// }
		// elseif ( is_tax() ) {
		// 	$page_type = get_queried_object()->taxonomy;
		// }
		// elseif ( is_category() ) {
		// 	$page_type = 'category';
		// }
		// elseif ( is_tag() ) {
		// 	$page_type = 'tag';
		// }

		// return $page_type;
	}

	/**
	 * Get ping speed
	 *
	 * @since  2.9
	 */
	public static function ping( $domain ) {
		if ( strpos( $domain, ':' ) ) {
			$domain = parse_url( $domain, PHP_URL_HOST );
		}
		$starttime	= microtime( true );
		$file		= fsockopen( $domain, 443, $errno, $errstr, 10 );
		$stoptime	= microtime( true );
		$status		= 0;

		if ( ! $file ) $status = 99999;// Site is down
		else {
			fclose( $file );
			$status = ( $stoptime - $starttime ) * 1000;
			$status = floor( $status );
		}

		Debug2::debug( "[Util] ping [Domain] $domain \t[Speed] $status" );

		return $status;
	}

	/**
	 * Set seconds/timestamp to readable format
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public static function readable_time( $seconds_or_timestamp, $timeout = 3600, $forword = false ) {

		if ( strlen( $seconds_or_timestamp ) == 10 ) {
			$seconds = time() - $seconds_or_timestamp;
			if ( $seconds > $timeout ) {
				return date( 'm/d/Y H:i:s', $seconds_or_timestamp + LITESPEED_TIME_OFFSET );
			}
		}
		else {
			$seconds = $seconds_or_timestamp;
		}

		$res = '';
		if ( $seconds > 86400 ) {
			$num = floor( $seconds / 86400 );
			$res .= $num . 'd';
			$seconds %= 86400;
		}

		if ( $seconds > 3600 ) {
			if ( $res ) {
				$res .= ', ';
			}
			$num = floor( $seconds / 3600 );
			$res .= $num . 'h';
			$seconds %= 3600;
		}

		if ( $seconds > 60 ) {
			if ( $res ) {
				$res .= ', ';
			}
			$num = floor( $seconds / 60 );
			$res .= $num . 'm';
			$seconds %= 60;
		}

		if ( $seconds > 0 ) {
			if ( $res ) {
				$res .= ' ';
			}
			$res .= $seconds . 's';
		}

		if ( ! $res ) {
			return $forword ? __( 'right now', 'litespeed-cache' ) : __( 'just now', 'litespeed-cache' );
		}

		$res = $forword ? $res : sprintf( __( ' %s ago', 'litespeed-cache' ), $res );

		return $res;
	}


	/**
	 * Convert array to string
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function arr2str( $arr ) {
		if ( ! is_array( $arr ) ) {
			return $arr;
		}

		return base64_encode( json_encode( $arr ) );
	}

	/**
	 * Get human readable size
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function real_size( $filesize, $is_1000 = false ) {
		$unit = $is_1000 ? 1000 : 1024;

		if ( $filesize >= pow( $unit, 3 ) ) {
			$filesize = round( $filesize / pow( $unit, 3 ) * 100 ) / 100 . 'G';
		}
		elseif ( $filesize >= pow( $unit, 2 ) ) {
			$filesize = round( $filesize / pow( $unit, 2 ) * 100 ) / 100 . 'M';
		}
		elseif ( $filesize >= $unit ) {
			$filesize = round( $filesize / $unit * 100 ) / 100 . 'K';
		}
		else {
			$filesize = $filesize . 'B';
		}
		return $filesize;
	}

	/**
	 * Parse attributes from string
	 *
	 * @since  1.2.2
	 * @since  1.4 Moved from optimize to utility
	 * @access private
	 * @param  string $str
	 * @return array  All the attributes
	 */
	public static function parse_attr( $str ) {
		$attrs = array();
		preg_match_all( '#([\w-]+)=(["\'])([^\2]*)\2#isU', $str, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs[ $match[ 1 ] ] = trim( $match[ 3 ] );
		}
		return $attrs;
	}

	/**
	 * Check if an array has a string
	 *
	 * Support $ exact match
	 *
	 * @since 1.3
	 * @access private
	 * @param string $needle The string to search with
	 * @param array $haystack
	 * @return bool|string False if not found, otherwise return the matched string in haystack.
	 */
	public static function str_hit_array( $needle, $haystack, $has_ttl = false ) {
		if ( ! $haystack ) {
			return false;
		}
		/**
		 * Safety check to avoid PHP warning
		 * @see  https://github.com/litespeedtech/lscache_wp/pull/131/commits/45fc03af308c7d6b5583d1664fad68f75fb6d017
		 */
		if ( ! is_array( $haystack ) ) {
			Debug2::debug( "[Util] ❌ bad param in str_hit_array()!" );

			return false;
		}

		$hit = false;
		$this_ttl = 0;
		foreach( $haystack as $item ) {
			if ( ! $item ) {
				continue;
			}

			if ( $has_ttl ) {
				$this_ttl = 0;
				$item = explode( ' ', $item );
				if ( ! empty( $item[ 1 ] ) ) {
					$this_ttl = $item[ 1 ];
				}
				$item = $item[ 0 ];
			}

			if ( substr( $item, -1 ) === '$' ) {
				// do exact match
				if ( substr( $item, 0, -1 ) === $needle ) {
					$hit = $item;
					break;
				}
			}
			elseif ( substr( $item, 0, 1 ) === '^' ) {
				// match beginning
				if ( substr( $item, 1 ) === substr( $needle, 0, strlen( $item ) - 1 ) ) {
					$hit = $item;
					break;
				}
			}
			else {
				if ( strpos( $needle, $item ) !== false ) {
					$hit = $item;
					break;
				}
			}
		}

		if ( $hit ) {
			if ( $has_ttl ) {
				return array( $hit, $this_ttl );
			}

			return $hit;
		}

		return false;
	}

	/**
	 * Improve compatibility to PHP old versions
	 *
	 * @since  1.2.2
	 *
	 */
	public static function compatibility() {
		require_once LSCWP_DIR . 'lib/php-compatibility.func.php';
	}

	/**
	 * Convert URI to URL
	 *
	 * @since  1.3
	 * @access public
	 * @param  string $uri `xx/xx.html` or `/subfolder/xx/xx.html`
	 * @return  string http://www.example.com/subfolder/xx/xx.html
	 */
	public static function uri2url( $uri ) {
		if ( substr( $uri, 0, 1 ) === '/' ) {
			self::domain_const();
			$url = LSCWP_DOMAIN . $uri;
		}
		else {
			$url = home_url( '/' ) . $uri;
		}

		return $url;
	}

	/**
	 * Convert URL to URI
	 *
	 * @since  1.2.2
	 * @since  1.6.2.1 Added 2nd param keep_qs
	 * @access public
	 */
	public static function url2uri( $url, $keep_qs = false ) {
		$url = trim( $url );
		$uri = @parse_url( $url, PHP_URL_PATH );
		$qs = @parse_url( $url, PHP_URL_QUERY );

		if ( ! $keep_qs || ! $qs ) {
			return $uri;
		}

		return $uri . '?' . $qs;
	}

	/**
	 * Get attachment relative path to upload folder
	 *
	 * @since 3.0
	 * @access public
	 * @param  string 	`https://aa.com/bbb/wp-content/upload/2018/08/test.jpg` or `/bbb/wp-content/upload/2018/08/test.jpg`
	 * @return string 	`2018/08/test.jpg`
	 */
	public static function att_short_path( $url ) {
		if ( ! defined( 'LITESPEED_UPLOAD_PATH' ) ) {
			$_wp_upload_dir = wp_upload_dir();

			$upload_path = self::url2uri( $_wp_upload_dir[ 'baseurl' ] );

			define( 'LITESPEED_UPLOAD_PATH', $upload_path );
		}

		$local_file = self::url2uri( $url );

		$short_path = substr( $local_file, strlen( LITESPEED_UPLOAD_PATH ) + 1 );

		return $short_path;
	}

	/**
	 * Make URL to be relative
	 *
	 * NOTE: for subfolder home_url, will keep subfolder part (strip nothing but scheme and host)
	 *
	 * @param  string $url
	 * @return string      Relative URL, start with /
	 */
	public static function make_relative( $url ) {
		// replace home_url if the url is full url
		self::domain_const();
		if ( strpos( $url, LSCWP_DOMAIN ) === 0 ) {
			$url = substr( $url, strlen( LSCWP_DOMAIN ) );
		}
		return trim( $url );
	}

	/**
	 * Convert URL to domain only
	 *
	 * @since  1.7.1
	 */
	public static function parse_domain( $url ) {
		$url = @parse_url( $url );
		if ( empty( $url[ 'host' ] ) ) {
			return '';
		}

		if ( ! empty( $url[ 'scheme' ] ) ) {
			return $url[ 'scheme' ] . '://' . $url[ 'host' ];
		}

		return '//' . $url[ 'host' ];
	}

	/**
	 * Drop protocol `https:` from https://example.com
	 *
	 * @since  3.3
	 */
	public static function noprotocol( $url ) {
		$tmp = parse_url( trim( $url ) );
		if ( ! empty( $tmp[ 'scheme' ] ) ) {
			$url = str_replace( $tmp[ 'scheme' ] . ':', '', $url );
		}

		return $url;
	}

	/**
	 * Generate domain const
	 *
	 * This will generate http://www.example.com even there is a subfolder in home_url setting
	 *
	 * Conf LSCWP_DOMAIN has NO trailing /
	 *
	 * @since  1.3
	 * @access public
	 */
	public static function domain_const() {
		if ( defined( 'LSCWP_DOMAIN' ) ) {
			return;
		}

		self::compatibility();
		$domain = http_build_url( get_home_url(), array(), HTTP_URL_STRIP_ALL );

		define( 'LSCWP_DOMAIN', $domain );
	}

	/**
	 * Array map one textarea to sanitize the url
	 *
	 * @since  1.3
	 * @access public
	 * @param  string $content
	 * @param  bool $type String handler type
	 * @return string
	 */
	public static function sanitize_lines( $arr, $type = null ) {
		if ( ! $arr ) {
			if ( $type === 'string' ) {
				return '';
			}
			return array();
		}

		if ( ! is_array( $arr ) ) {
			$arr = explode( "\n", $arr );
		}

		$arr = array_map( 'trim', $arr );
		$changed = false;
		if ( $type === 'uri' ) {
			$arr = array_map( __CLASS__ . '::url2uri', $arr );
			$changed = true;
		}
		if ( $type === 'relative' ) {
			$arr = array_map( __CLASS__ . '::make_relative', $arr );// Remove domain
			$changed = true;
		}
		if ( $type === 'domain' ) {
			$arr = array_map( __CLASS__ . '::parse_domain', $arr );// Only keep domain
			$changed = true;
		}

		if ( $type === 'noprotocol' ) {
			$arr = array_map( __CLASS__ . '::noprotocol', $arr ); // Drop protocol, `https://example.com` -> `//example.com`
			$changed = true;
		}

		if ( $changed ) {
			$arr = array_map( 'trim', $arr );
		}
		$arr = array_unique( $arr );
		$arr = array_filter( $arr );

		if ( $type === 'string' ) {
			return implode( "\n", $arr );
		}

		return $arr;
	}

	/**
	 * Builds an url with an action and a nonce.
	 *
	 * Assumes user capabilities are already checked.
	 *
	 * @since  1.6 Changed order of 2nd&3rd param, changed 3rd param `append_str` to 2nd `type`
	 * @access public
	 * @return string The built url.
	 */
	public static function build_url( $action, $type = false, $is_ajax = false, $page = null, $append_arr = array() ) {
		$prefix = '?';

		if ( $page === '_ori' ) {
			$page = true;
			$append_arr[ '_litespeed_ori' ] = 1;
		}

		if ( ! $is_ajax ) {
			if ( $page ) {
				// If use admin url
				if ( $page === true ) {
					$page = 'admin.php';
				}
				else {
					if ( strpos( $page, '?' ) !== false ) {
						$prefix = '&';
					}
				}
				$combined = $page . $prefix . Router::ACTION . '=' . $action;
			}
			else {
				// Current page rebuild URL
				$params = $_GET;

				if ( ! empty( $params ) ) {
					if ( isset( $params[ Router::ACTION ] ) ) {
						unset( $params[ Router::ACTION ] );
					}
					if ( isset( $params[ '_wpnonce' ] ) ) {
						unset( $params[ '_wpnonce' ] );
					}
					if ( ! empty( $params ) ) {
						$prefix .= http_build_query( $params ) . '&';
					}
				}
				global $pagenow;
				$combined = $pagenow . $prefix . Router::ACTION . '=' . $action;
			}
		}
		else {
			$combined = 'admin-ajax.php?action=litespeed_ajax&' . Router::ACTION . '=' . $action;
		}

		if ( is_network_admin() ) {
			$prenonce = network_admin_url( $combined );
		}
		else {
			$prenonce = admin_url( $combined );
		}
		$url = wp_nonce_url( $prenonce, $action, Router::NONCE );

		if ( $type ) {
			// Remove potential param `type` from url
			$url = parse_url( htmlspecialchars_decode( $url ) );
			parse_str( $url[ 'query' ], $query );

			$built_arr = array_merge( $query, array( Router::TYPE => $type ) );
			if ( $append_arr ) {
				$built_arr = array_merge( $built_arr, $append_arr );
			}
			$url[ 'query' ] = http_build_query( $built_arr );
			self::compatibility();
			$url = http_build_url( $url );
			$url = htmlspecialchars( $url, ENT_QUOTES, 'UTF-8' );
		}

		return $url;
	}

	/**
	 * Check if the host is the internal host
	 *
	 * @since  1.2.3
	 *
	 */
	public static function internal( $host ) {
		if ( ! defined( 'LITESPEED_FRONTEND_HOST' ) ) {
			if ( defined( 'WP_HOME' ) ) {
				$home_host = WP_HOME;// Also think of `WP_SITEURL`
			}
			else {
				$home_host = get_option( 'home' );
			}
			define( 'LITESPEED_FRONTEND_HOST', parse_url( $home_host, PHP_URL_HOST ) );
		}

		if ( $host === LITESPEED_FRONTEND_HOST ) {
			return true;
		}

		/**
		 * Filter for multiple domains
		 * @since 2.9.4
		 */
		if ( ! isset( self::$_internal_domains ) ) {
			self::$_internal_domains = apply_filters( 'litespeed_internal_domains', array() );
		}

		if ( self::$_internal_domains ) {
			return in_array( $host, self::$_internal_domains );
		}

		return false;
	}

	/**
	 * Check if an URL is a internal existing file
	 *
	 * @since  1.2.2
	 * @since  1.6.2 Moved here from optm.cls due to usage of media.cls
	 * @access public
	 * @return string|bool The real path of file OR false
	 */
	public static function is_internal_file( $url, $addition_postfix = false ) {
		if ( substr( $url, 0, 5 ) == 'data:' ) {
			Debug2::debug2( '[Util] data: content not file' );
			return false;
		}
		$url_parsed = parse_url( $url );
		if ( isset( $url_parsed[ 'host' ] ) && ! self::internal( $url_parsed[ 'host' ] ) ) {
			// Check if is cdn path
			// Do this to avoid user hardcoded src in tpl
			if ( ! CDN::internal( $url_parsed[ 'host' ] ) ) {
				Debug2::debug2( '[Util] external' );
				return false;
			}
		}

		if ( empty( $url_parsed[ 'path' ] ) ) {
			return false;
		}

		// Need to replace child blog path for assets, ref: .htaccess
		if ( is_multisite() && defined( 'PATH_CURRENT_SITE' ) ) {
			$pattern = '#^' . PATH_CURRENT_SITE . '([_0-9a-zA-Z-]+/)(wp-(content|admin|includes))#U';
			$replacement = PATH_CURRENT_SITE . '$2';
			$url_parsed[ 'path' ] = preg_replace( $pattern, $replacement, $url_parsed[ 'path' ] );
			// $current_blog = (int) get_current_blog_id();
			// $main_blog_id = (int) get_network()->site_id;
			// if ( $current_blog === $main_blog_id ) {
			// 	define( 'LITESPEED_IS_MAIN_BLOG', true );
			// }
			// else {
			// 	define( 'LITESPEED_IS_MAIN_BLOG', false );
			// }
		}

		// Parse file path
		/**
		 * Trying to fix pure /.htaccess rewrite to /wordpress case
		 *
		 * Add `define( 'LITESPEED_WP_REALPATH', '/wordpress' );` in wp-config.php in this case
		 *
		 * @internal #611001 - Combine & Minify not working?
		 * @since  1.6.3
		 */
		if ( substr( $url_parsed[ 'path' ], 0, 1 ) === '/' ) {
			if ( defined( 'LITESPEED_WP_REALPATH' ) ) {
				$file_path_ori = $_SERVER[ 'DOCUMENT_ROOT' ] . LITESPEED_WP_REALPATH . $url_parsed[ 'path' ];
			}
			else {
				$file_path_ori = $_SERVER[ 'DOCUMENT_ROOT' ] . $url_parsed[ 'path' ];
			}
		}
		else {
			$file_path_ori = Router::frontend_path() . '/' . $url_parsed[ 'path' ];
		}

		/**
		 * Added new file postfix to be check if passed in
		 * @since 2.2.4
		 */
		if ( $addition_postfix ) {
			$file_path_ori .= '.' . $addition_postfix;
		}

		/**
		 * Added this filter for those plugins which overwrite the filepath
		 * @see #101091 plugin `Hide My WordPress`
		 * @since 2.2.3
		 */
		$file_path_ori = apply_filters( 'litespeed_realpath', $file_path_ori );

		$file_path = realpath( $file_path_ori );
		if ( ! is_file( $file_path ) ) {
			Debug2::debug2( '[Util] file not exist: ' . $file_path_ori );
			return false;
		}

		return array( $file_path, filesize( $file_path ) );
	}

	/**
	 * Safely parse URL for v5.3 compatibility
	 *
	 * @since  3.4.3
	 */
	public static function parse_url_safe( $url, $component = -1 ) {
		if ( substr( $url, 0, 2 ) == '//' ) {
			$url = 'https:' . $url;
		}

		return parse_url( $url, $component );
	}

	/**
	 * Replace url in srcset to new value
	 *
	 * @since  2.2.3
	 */
	public static function srcset_replace( $content, $callback ) {
		preg_match_all( '# srcset=([\'"])(.+)\g{1}#iU', $content, $matches );
		$srcset_ori = array();
		$srcset_final = array();
		foreach ( $matches[ 2 ] as $k => $urls_ori ) {

			$urls_final = explode( ',', $urls_ori );

			$changed = false;

			foreach ( $urls_final as $k2 => $url_info ) {
				$url_info_arr = explode( ' ', trim( $url_info ) );

				if ( ! $url2 = call_user_func( $callback, $url_info_arr[ 0 ] ) ) {
					continue;
				}

				$changed = true;

				$urls_final[ $k2 ] = str_replace( $url_info_arr[ 0 ], $url2, $url_info );

				Debug2::debug2( '[Util] - srcset replaced to ' . $url2 . ( ! empty( $url_info_arr[ 1 ] ) ? ' ' . $url_info_arr[ 1 ] : '' ) );
			}

			if ( ! $changed ) {
				continue;
			}

			$urls_final = implode( ',', $urls_final );

			$srcset_ori[] = $matches[ 0 ][ $k ];

			$srcset_final[] = str_replace( $urls_ori, $urls_final, $matches[ 0 ][ $k ] );
		}

		if ( $srcset_ori ) {
			$content = str_replace( $srcset_ori, $srcset_final, $content );
			Debug2::debug2( '[Util] - srcset replaced' );
		}

		return $content;

	}

	/**
	 * Generate pagination
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function pagination( $total, $limit, $return_offset = false ) {
		$pagenum = isset( $_GET[ 'pagenum' ] ) ? absint( $_GET[ 'pagenum' ] ) : 1;

		$offset = ( $pagenum - 1 ) * $limit;
		$num_of_pages = ceil( $total / $limit );

		if ( $offset > $total ) {
			$offset = $total - $limit;
		}

		if ( $offset < 0 ) {
			$offset = 0;
		}

		if ( $return_offset ) {
			return $offset;
		}

		$page_links = paginate_links( array(
			'base' => add_query_arg( 'pagenum', '%#%' ),
			'format' => '',
			'prev_text' => '&laquo;',
			'next_text' => '&raquo;',
			'total' => $num_of_pages,
			'current' => $pagenum,
		) );

		return '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>';
	}

	/**
	 * Generate placeholder for an array to query
	 *
	 * @since 2.0
	 * @access public
	 */
	public static function chunk_placeholder( $data, $fields ) {
		$division = substr_count( $fields, ',' ) + 1;

		$q = implode( ',', array_map(
			function( $el ) { return '(' . implode( ',', $el ) . ')'; },
			array_chunk( array_fill( 0, count( $data ), '%s' ), $division )
		) );

		return $q;
	}

}
<?php
/**
* LiteSpeed File Operator Library Class
* Append/Replace content to a file
*
* @since 1.1.0
*/
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class File {
	const MARKER = 'LiteSpeed Operator';

	/**
	 * Detect if an URL is 404
	 *
	 * @since  3.3
	 */
	public static function is_404( $url ) {
		$response = wp_remote_get( $url );
		$code = wp_remote_retrieve_response_code( $response );
		if ( $code == 404 ) {
			return true;
		}

		return false;
	}

	/**
	 *	Delete folder
	 *
	 * @since 2.1
	 */
	public static function rrmdir( $dir ) {

		$files = array_diff( scandir( $dir ), array( '.', '..' ) );

		foreach ( $files as $file ) {
			is_dir( "$dir/$file" ) ? self::rrmdir( "$dir/$file" ) : unlink( "$dir/$file" );
		}

		return rmdir( $dir );
	}

	public static function count_lines($filename) {
		if ( ! file_exists($filename) ) {
			return 0;
		}

		$file = new \SplFileObject($filename);
		$file->seek(PHP_INT_MAX);
		return $file->key() + 1;
	}

	/**
	 * Read data from file
	 *
	 * @since 1.1.0
	 * @param string $filename
	 * @param int $start_line
	 * @param int $lines
	 */
	public static function read($filename, $start_line = null, $lines = null) {
		if ( ! file_exists($filename) ) {
			return '';
		}

		if ( ! is_readable($filename) ) {
			return false;
		}

		if ( $start_line !== null ) {
			$res = array();
			$file = new \SplFileObject($filename);
			$file->seek($start_line);

			if ( $lines === null) {
				while ( ! $file->eof() ) {
					$res[] = rtrim($file->current(), "\n");
					$file->next();
				}
			}
			else{
				for ( $i=0; $i < $lines; $i++ ) {
					if ( $file->eof() ) {
						break;
					}
					$res[] = rtrim($file->current(), "\n");
					$file->next();
				}
			}

			unset($file);
			return $res;
		}

		$content = file_get_contents( $filename );

		$content = self::remove_zero_space( $content );

		return $content;
	}

	/**
	 * Append data to file
	 *
	 * @since 1.1.5
	 * @access public
	 * @param string $filename
	 * @param string $data
	 * @param boolean $mkdir
	 * @param boolean $silence Used to avoid WP's functions are used
	 */
	public static function append( $filename, $data, $mkdir = false, $silence = true ) {
		return self::save( $filename, $data, $mkdir, true, $silence );
	}

	/**
	 * Save data to file
	 *
	 * @since 1.1.0
	 * @param string $filename
	 * @param string $data
	 * @param boolean $mkdir
	 * @param boolean $append If the content needs to be appended
	 * @param boolean $silence Used to avoid WP's functions are used
	 */
	public static function save( $filename, $data, $mkdir = false, $append = false, $silence = true ) {
		$error = false;
		$folder = dirname( $filename );

		// mkdir if folder does not exist
		if ( ! file_exists( $folder ) ) {
			if ( ! $mkdir ) {
				return $silence ? false : sprintf( __( 'Folder does not exist: %s', 'litespeed-cache' ), $folder );
			}

			set_error_handler( 'litespeed_exception_handler' );

			try {
				mkdir( $folder, 0755, true );
			}
			catch ( \ErrorException $ex ) {
				return $silence ? false : sprintf( __( 'Can not create folder: %1$s. Error: %2$s', 'litespeed-cache' ), $folder, $ex->getMessage() );
			}

			restore_error_handler();
		}

		if ( ! file_exists( $filename ) ) {
			if ( ! is_writable( $folder ) ) {
				return $silence ? false : sprintf( __( 'Folder is not writable: %s.', 'litespeed-cache' ), $folder );
			}
			set_error_handler( 'litespeed_exception_handler' );
			try {
				touch( $filename );
			}
			catch ( \ErrorException $ex ){
				return $silence ? false : sprintf( __( 'File %s is not writable.', 'litespeed-cache' ), $filename );
			}
			restore_error_handler();
		}
		elseif ( ! is_writable( $filename ) ) {
			return $silence ? false : sprintf( __( 'File %s is not writable.', 'litespeed-cache' ), $filename );
		}

		$data = self::remove_zero_space( $data );

		$ret = file_put_contents( $filename, $data, $append ? FILE_APPEND : LOCK_EX );
		if ( $ret === false ) {
			return $silence ? false : sprintf( __( 'Failed to write to %s.', 'litespeed-cache' ), $filename );
		}

		return true;
	}

	/**
	 * Remove Unicode zero-width space <200b><200c>
	 *
	 * @since 2.1.2
	 * @since 2.9 changed to public
	 */
	public static function remove_zero_space( $content ) {
		if ( is_array( $content ) ) {
			$content = array_map( __CLASS__ . '::remove_zero_space', $content );
			return $content;
		}

		// Remove UTF-8 BOM if present
		if ( substr( $content, 0, 3 ) === "\xEF\xBB\xBF" ) {
			$content = substr( $content, 3 );
		}

		$content = str_replace( "\xe2\x80\x8b", '', $content );
		$content = str_replace( "\xe2\x80\x8c", '', $content );
		$content = str_replace( "\xe2\x80\x8d", '', $content );

		return $content;
	}

	/**
	 * Appends an array of strings into a file (.htaccess ), placing it between
	 * BEGIN and END markers.
	 *
	 * Replaces existing marked info. Retains surrounding
	 * data. Creates file if none exists.
	 *
	 * @param string       $filename  Filename to alter.
	 * @param string       $marker    The marker to alter.
	 * @param array|string $insertion The new content to insert.
	 * @param bool 	       $prepend Prepend insertion if not exist.
	 * @return bool True on write success, false on failure.
	 */
	public static function insert_with_markers($filename, $insertion = false, $marker = false, $prepend = false) {
		if ( !$marker ) {
			$marker = self::MARKER;
		}

		if ( !$insertion ) {
			$insertion = array();
		}

		return self::_insert_with_markers($filename, $marker, $insertion, $prepend);//todo: capture exceptions
	}

	/**
	 * Return wrapped block data with marker
	 *
	 * @param string $insertion
	 * @param string $marker
	 * @return string The block data
	 */
	public static function wrap_marker_data($insertion, $marker = false) {
		if ( ! $marker ) {
			$marker = self::MARKER;
		}
		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";

		$new_data = implode( "\n", array_merge(
			array( $start_marker ),
			$insertion,
			array( $end_marker )
		) );
		return $new_data;
	}

	/**
	 * Touch block data from file, return with marker
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return string The current block data
	 */
	public static function touch_marker_data($filename, $marker = false) {
		if( ! $marker ) {
			$marker = self::MARKER;
		}

		$result = self::_extract_from_markers($filename, $marker);

		if( ! $result ) {
			return false;
		}

		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";
		$new_data = implode( "\n", array_merge(
			array( $start_marker ),
			$result,
			array( $end_marker )
		) );
		return $new_data;
	}

	/**
	 * Extracts strings from between the BEGIN and END markers in the .htaccess file.
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return array An array of strings from a file (.htaccess ) from between BEGIN and END markers.
	 */
	public static function extract_from_markers($filename, $marker = false) {
		if( ! $marker ) {
			$marker = self::MARKER;
		}
		return self::_extract_from_markers($filename, $marker);
	}

	/**
	 * Extracts strings from between the BEGIN and END markers in the .htaccess file.
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return array An array of strings from a file (.htaccess ) from between BEGIN and END markers.
	 */
	private static function _extract_from_markers( $filename, $marker ) {
		$result = array();

		if (!file_exists($filename) ) {
			return $result;
		}

		if ( $markerdata = explode( "\n", implode( '', file($filename) ) ) ) {
			$state = false;
			foreach ( $markerdata as $markerline ) {
				if ( strpos($markerline, '# END ' . $marker) !== false ) {
					$state = false;
				}
				if ( $state ) {
					$result[] = $markerline;
				}
				if (strpos($markerline, '# BEGIN ' . $marker) !== false) {
					$state = true;
				}
			}
		}

		return array_map('trim', $result);
	}

	/**
	 * Inserts an array of strings into a file (.htaccess ), placing it between BEGIN and END markers.
	 *
	 * Replaces existing marked info. Retains surrounding data. Creates file if none exists.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 3.0-
	 * @since  3.0 Throw errors if failed
	 * @access private
	 */
	private static function _insert_with_markers( $filename, $marker, $insertion, $prepend = false) {
		if ( ! file_exists( $filename ) ) {
			if ( ! is_writable( dirname( $filename ) ) ) {
				Error::t( 'W', dirname( $filename ) );
			}

			set_error_handler("litespeed_exception_handler");
			try {
				touch( $filename );
			} catch ( \ErrorException $ex ) {
				Error::t( 'W', $filename );
			}
			restore_error_handler();
		}
		elseif ( ! is_writable( $filename ) ) {
			Error::t( 'W', $filename );
		}

		if ( ! is_array( $insertion ) ) {
			$insertion = explode( "\n", $insertion );
		}

		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";

		$fp = fopen( $filename, 'r+' );
		if ( ! $fp ) {
			Error::t( 'W', $filename );
		}

		// Attempt to get a lock. If the filesystem supports locking, this will block until the lock is acquired.
		flock( $fp, LOCK_EX );

		$lines = array();
		while ( ! feof($fp) ) {
			$lines[] = rtrim(fgets($fp), "\r\n" );
		}

		// Split out the existing file into the preceding lines, and those that appear after the marker
		$pre_lines = $post_lines = $existing_lines = array();
		$found_marker = $found_end_marker = false;
		foreach ( $lines as $line ) {
			if ( ! $found_marker && false !== strpos($line, $start_marker) ) {
				$found_marker = true;
				continue;
			}
			elseif ( ! $found_end_marker && false !== strpos($line, $end_marker) ) {
				$found_end_marker = true;
				continue;
			}

			if ( ! $found_marker ) {
				$pre_lines[] = $line;
			}
			elseif ( $found_marker && $found_end_marker ) {
				$post_lines[] = $line;
			}
			else {
				$existing_lines[] = $line;
			}
		}

		// Check to see if there was a change
		if ( $existing_lines === $insertion ) {
			flock($fp, LOCK_UN);
			fclose($fp);

			return true;
		}

		// Check if need to prepend data if not exist
		if( $prepend && ! $post_lines ) {
			// Generate the new file data
			$new_file_data = implode( "\n", array_merge(
				array( $start_marker ),
				$insertion,
				array( $end_marker ),
				$pre_lines
			) );

		}
		else {
			// Generate the new file data
			$new_file_data = implode( "\n", array_merge(
				$pre_lines,
				array( $start_marker ),
				$insertion,
				array( $end_marker ),
				$post_lines
			) );
		}


		// Write to the start of the file, and truncate it to that length
		fseek($fp, 0);
		$bytes = fwrite($fp, $new_file_data);
		if ( $bytes ) {
			ftruncate($fp, ftell($fp));
		}
		fflush($fp);
		flock($fp, LOCK_UN);
		fclose($fp);

		return (bool) $bytes;
	}
}


<?php
/**
 * The CDN class.
 *
 * @since      	1.2.3
 * @since  		1.5 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class CDN extends Root {
	const BYPASS = 'LITESPEED_BYPASS_CDN';

	private $content;

	private $_cfg_cdn;
	private $_cfg_url_ori;
	private $_cfg_ori_dir;
	private $_cfg_cdn_mapping = array();
	private $_cfg_cdn_exclude;

	private $cdn_mapping_hosts = array();

	/**
	 * Init
	 *
	 * @since  1.2.3
	 */
	public function init() {
		Debug2::debug2( '[CDN] init' );

		if ( defined( self::BYPASS ) ) {
			Debug2::debug2( 'CDN bypass' );
			return;
		}

		if ( ! Router::can_cdn() ) {
			if ( ! defined( self::BYPASS ) ) {
				define( self::BYPASS, true );
			}
			return;
		}

		$this->_cfg_cdn = $this->conf( Base::O_CDN );
		if ( ! $this->_cfg_cdn ) {
			if ( ! defined( self::BYPASS ) ) {
				define( self::BYPASS, true );
			}
			return;
		}

		$this->_cfg_url_ori = $this->conf( Base::O_CDN_ORI );
		// Parse cdn mapping data to array( 'filetype' => 'url' )
		$mapping_to_check = array(
			Base::CDN_MAPPING_INC_IMG,
			Base::CDN_MAPPING_INC_CSS,
			Base::CDN_MAPPING_INC_JS
		);
		foreach ( $this->conf( Base::O_CDN_MAPPING ) as $v ) {
			if ( ! $v[ Base::CDN_MAPPING_URL ] ) {
				continue;
			}
			$this_url = $v[ Base::CDN_MAPPING_URL ];
			$this_host = parse_url( $this_url, PHP_URL_HOST );
			// Check img/css/js
			foreach ( $mapping_to_check as $to_check ) {
				if ( $v[ $to_check ] ) {
					Debug2::debug2( '[CDN] mapping ' . $to_check . ' -> ' . $this_url );

					// If filetype to url is one to many, make url be an array
					$this->_append_cdn_mapping( $to_check, $this_url );

					if ( ! in_array( $this_host, $this->cdn_mapping_hosts ) ) {
						$this->cdn_mapping_hosts[] = $this_host;
					}
				}
			}
			// Check file types
			if ( $v[ Base::CDN_MAPPING_FILETYPE ] ) {
				foreach ( $v[ Base::CDN_MAPPING_FILETYPE ] as $v2 ) {
					$this->_cfg_cdn_mapping[ Base::CDN_MAPPING_FILETYPE ] = true;

					// If filetype to url is one to many, make url be an array
					$this->_append_cdn_mapping( $v2, $this_url );

					if ( ! in_array( $this_host, $this->cdn_mapping_hosts ) ) {
						$this->cdn_mapping_hosts[] = $this_host;
					}
				}
				Debug2::debug2( '[CDN] mapping ' . implode( ',', $v[ Base::CDN_MAPPING_FILETYPE ] ) . ' -> ' . $this_url );
			}
		}

		if ( ! $this->_cfg_url_ori || ! $this->_cfg_cdn_mapping ) {
			if ( ! defined( self::BYPASS ) ) {
				define( self::BYPASS, true );
			}
			return;
		}

		$this->_cfg_ori_dir = $this->conf( Base::O_CDN_ORI_DIR );
		// In case user customized upload path
		if ( defined( 'UPLOADS' ) ) {
			$this->_cfg_ori_dir[] = UPLOADS;
		}

		// Check if need preg_replace
		$this->_cfg_url_ori = Utility::wildcard2regex( $this->_cfg_url_ori );

		$this->_cfg_cdn_exclude = $this->conf( Base::O_CDN_EXC );

		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_IMG ] ) ) {
			// Hook to srcset
			if ( function_exists( 'wp_calculate_image_srcset' ) ) {
				add_filter( 'wp_calculate_image_srcset', array( $this, 'srcset' ), 999 );
			}
			// Hook to mime icon
			add_filter( 'wp_get_attachment_image_src', array( $this, 'attach_img_src' ), 999 );
			add_filter( 'wp_get_attachment_url', array( $this, 'url_img' ), 999 );
		}

		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_CSS ] ) ) {
			add_filter( 'style_loader_src', array( $this, 'url_css' ), 999 );
		}

		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_JS ] ) ) {
			add_filter( 'script_loader_src', array( $this, 'url_js' ), 999 );
		}

		add_filter( 'litespeed_buffer_finalize', array( $this, 'finalize' ), 30 );
	}

	/**
	 * Associate all filetypes with url
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _append_cdn_mapping( $filetype, $url ) {
		// If filetype to url is one to many, make url be an array
		if ( empty( $this->_cfg_cdn_mapping[ $filetype ] ) ) {
			$this->_cfg_cdn_mapping[ $filetype ] = $url;
		}
		elseif ( is_array( $this->_cfg_cdn_mapping[ $filetype ] ) ) {
			// Append url to filetype
			$this->_cfg_cdn_mapping[ $filetype ][] = $url;
		}
		else {
			// Convert _cfg_cdn_mapping from string to array
			$this->_cfg_cdn_mapping[ $filetype ] = array( $this->_cfg_cdn_mapping[ $filetype ], $url );
		}
	}

	/**
	 * If include css/js in CDN
	 *
	 * @since  1.6.2.1
	 * @return bool true if included in CDN
	 */
	public function inc_type( $type ) {
		if ( $type == 'css' && ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_CSS ] ) ) {
			return true;
		}

		if ( $type == 'js' && ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_JS ] ) ) {
			return true;
		}

		return false;
	}

	/**
	 * Run CDN process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * @since  1.2.3
	 * @access public
	 * @return  string The content that is after optimization
	 */
	public function finalize( $content ) {
		$this->content = $content;

		$this->_finalize();
		return $this->content;
	}

	/**
	 * Replace CDN url
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _finalize() {
		if ( defined( self::BYPASS ) ) {
			return;
		}

		Debug2::debug( 'CDN _finalize' );

		// Start replacing img src
		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_IMG ] ) ) {
			$this->_replace_img();
			$this->_replace_inline_css();
		}

		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_FILETYPE ] ) ) {
			$this->_replace_file_types();
		}

	}

	/**
	 * Parse all file types
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_file_types() {
		$ele_to_check = $this->conf( Base::O_CDN_ATTR );

		foreach ( $ele_to_check as $v ) {
			if ( ! $v || strpos( $v, '.' ) === false ) {
				Debug2::debug2( '[CDN] replace setting bypassed: no . attribute ' . $v );
				continue;
			}

			Debug2::debug2( '[CDN] replace attribute ' . $v );

			$v = explode( '.', $v );
			$attr = preg_quote( $v[ 1 ], '#' );
			if ( $v[ 0 ] ) {
				$pattern = '#<' . preg_quote( $v[ 0 ], '#' ) . '([^>]+)' . $attr . '=([\'"])(.+)\g{2}#iU';
			}
			else {
				$pattern = '# ' . $attr . '=([\'"])(.+)\g{1}#iU';
			}

			preg_match_all( $pattern, $this->content, $matches );

			if ( empty( $matches[ $v[ 0 ] ? 3 : 2 ] ) ) {
				continue;
			}

			foreach ( $matches[ $v[ 0 ] ? 3 : 2 ] as $k2 => $url ) {
				// Debug2::debug2( '[CDN] check ' . $url );
				$postfix = '.' . pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_EXTENSION );
				if ( ! array_key_exists( $postfix, $this->_cfg_cdn_mapping ) ) {
					// Debug2::debug2( '[CDN] non-existed postfix ' . $postfix );
					continue;
				}

				Debug2::debug2( '[CDN] matched file_type ' . $postfix . ' : ' . $url );

				if( ! $url2 = $this->rewrite( $url, Base::CDN_MAPPING_FILETYPE, $postfix ) ) {
					continue;
				}

				$attr = str_replace( $url, $url2, $matches[ 0 ][ $k2 ] );
				$this->content = str_replace( $matches[ 0 ][ $k2 ], $attr, $this->content );
			}
		}
	}

	/**
	 * Parse all images
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_img() {
		preg_match_all( '#<img([^>]+?)src=([\'"\\\]*)([^\'"\s\\\>]+)([\'"\\\]*)([^>]*)>#i', $this->content, $matches );
		foreach ( $matches[ 3 ] as $k => $url ) {
			// Check if is a DATA-URI
			if ( strpos( $url, 'data:image' ) !== false ) {
				continue;
			}

			if ( ! $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_IMG ) ) {
				continue;
			}

			$html_snippet = sprintf(
				'<img %1$s src=%2$s %3$s>',
				$matches[ 1 ][ $k ],
				$matches[ 2 ][ $k ] . $url2 . $matches[ 4 ][ $k ],
				$matches[ 5 ][ $k ]
			);
			$this->content = str_replace( $matches[ 0 ][ $k ], $html_snippet, $this->content );
		}
	}

	/**
	 * Parse and replace all inline styles containing url()
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_inline_css() {
		Debug2::debug2( '[CDN] _replace_inline_css', $this->_cfg_cdn_mapping );

		/**
		 * Excludes `\` from URL matching
		 * @see  #959152 - Wordpress LSCache CDN Mapping causing malformed URLS
		 * @see  #685485
		 * @since 3.0
		 */
		preg_match_all( '/url\((?![\'"]?data)[\'"]?([^\)\'"\\\]+)[\'"]?\)/i', $this->content, $matches );
		foreach ( $matches[ 1 ] as $k => $url ) {
			$url = str_replace( array( ' ', '\t', '\n', '\r', '\0', '\x0B', '"', "'", '&quot;', '&#039;' ), '', $url );

			// Parse file postfix
			$postfix = '.' . pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_EXTENSION );
			if ( array_key_exists( $postfix, $this->_cfg_cdn_mapping ) ) {
				Debug2::debug2( '[CDN] matched file_type ' . $postfix . ' : ' . $url );
				if( ! $url2 = $this->rewrite( $url, Base::CDN_MAPPING_FILETYPE, $postfix ) ) {
					continue;
				}
			}
			else {
				if ( ! $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_IMG ) ) {
					continue;
				}
			}

			$attr = str_replace( $matches[ 1 ][ $k ], $url2, $matches[ 0 ][ $k ] );
			$this->content = str_replace( $matches[ 0 ][ $k ], $attr, $this->content );
		}
	}

	/**
	 * Hook to wp_get_attachment_image_src
	 *
	 * @since  1.2.3
	 * @since  1.7 Removed static from function
	 * @access public
	 * @param  array $img The URL of the attachment image src, the width, the height
	 * @return array
	 */
	public function attach_img_src( $img ) {
		if ( $img && $url = $this->rewrite( $img[ 0 ], Base::CDN_MAPPING_INC_IMG ) ) {
			$img[ 0 ] = $url;
		}
		return $img;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_img( $url ) {
		if ( $url && $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_IMG ) ) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_css( $url ) {
		if ( $url && $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_CSS ) ) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_js( $url ) {
		if ( $url && $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_JS ) ) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Hook to replace WP responsive images
	 *
	 * @since  1.2.3
	 * @since  1.7 Removed static from function
	 * @access public
	 * @param  array $srcs
	 * @return array
	 */
	public function srcset( $srcs ) {
		if ( $srcs ) {
			foreach ( $srcs as $w => $data ) {
				if( ! $url = $this->rewrite( $data[ 'url' ], Base::CDN_MAPPING_INC_IMG ) ) {
					continue;
				}
				$srcs[ $w ][ 'url' ] = $url;
			}
		}
		return $srcs;
	}

	/**
	 * Replace URL to CDN URL
	 *
	 * @since  1.2.3
	 * @access public
	 * @param  string $url
	 * @return string        Replaced URL
	 */
	public function rewrite( $url, $mapping_kind, $postfix = false ) {
		Debug2::debug2( '[CDN] rewrite ' . $url );
		$url_parsed = parse_url( $url );

		if ( empty( $url_parsed[ 'path' ] ) ) {
			Debug2::debug2( '[CDN] -rewrite bypassed: no path' );
			return false;
		}

		// Only images under wp-cotnent/wp-includes can be replaced
		$is_internal_folder = Utility::str_hit_array( $url_parsed[ 'path' ], $this->_cfg_ori_dir );
		if ( ! $is_internal_folder ) {
			Debug2::debug2( '[CDN] -rewrite failed: path not match: ' . LSCWP_CONTENT_FOLDER );
			return false;
		}

		// Check if is external url
		if ( ! empty( $url_parsed[ 'host' ] ) ) {
			if ( ! Utility::internal( $url_parsed[ 'host' ] ) && ! $this->_is_ori_url( $url ) ) {
				Debug2::debug2( '[CDN] -rewrite failed: host not internal' );
				return false;
			}
		}

		$exclude = Utility::str_hit_array( $url, $this->_cfg_cdn_exclude );
		if ( $exclude ) {
			Debug2::debug2( '[CDN] -abort excludes ' . $exclude );
			return false;
		}

		// Fill full url before replacement
		if ( empty( $url_parsed[ 'host' ] ) ) {
			$url = Utility::uri2url( $url );
			Debug2::debug2( '[CDN] -fill before rewritten: ' . $url );

			$url_parsed = parse_url( $url );
		}

		$scheme = ! empty( $url_parsed[ 'scheme' ] ) ? $url_parsed[ 'scheme' ] . ':' : '';
		if ( $scheme ) {
			// Debug2::debug2( '[CDN] -scheme from url: ' . $scheme );
		}

		// Find the mapping url to be replaced to
		if ( empty( $this->_cfg_cdn_mapping[ $mapping_kind ] ) ) {
			return false;
		}
		if ( $mapping_kind !== Base::CDN_MAPPING_FILETYPE ) {
			$final_url = $this->_cfg_cdn_mapping[ $mapping_kind ];
		}
		else {
			// select from file type
			$final_url = $this->_cfg_cdn_mapping[ $postfix ];
		}

		// If filetype to url is one to many, need to random one
		if ( is_array( $final_url ) ) {
			$final_url = $final_url[ mt_rand( 0, count( $final_url ) - 1 ) ];
		}

		// Now lets replace CDN url
		foreach ( $this->_cfg_url_ori as $v ) {
			if ( strpos( $v, '*' ) !== false ) {
				$url = preg_replace( '#' . $scheme . $v . '#iU', $final_url, $url );
			}
			else {
				$url = str_replace( $scheme . $v, $final_url, $url );
			}
		}
		Debug2::debug2( '[CDN] -rewritten: ' . $url );

		return $url;
	}

	/**
	 * Check if is orignal URL of CDN or not
	 *
	 * @since  2.1
	 * @access private
	 */
	private function _is_ori_url( $url ) {
		$url_parsed = parse_url( $url );

		$scheme = ! empty( $url_parsed[ 'scheme' ] ) ? $url_parsed[ 'scheme' ] . ':' : '';

		foreach ( $this->_cfg_url_ori as $v ) {
			$needle = $scheme . $v;
			if ( strpos( $v, '*' ) !== false ) {
				if( preg_match( '#' . $needle . '#iU', $url ) ) {
					return true;
				}
			}
			else {
				if ( strpos( $url, $needle ) === 0 ) {
					return true;
				}
			}
		}

		return false;
	}

	/**
	 * Check if the host is the CDN internal host
	 *
	 * @since  1.2.3
	 *
	 */
	public static function internal( $host ) {
		if ( defined( self::BYPASS ) ) {
			return false;
		}

		$instance = self::cls();

		return in_array( $host, $instance->cdn_mapping_hosts );// todo: can add $this->_is_ori_url() check in future
	}

}
<?php
/**
 * LiteSpeed Object Cache Library
 *
 * @since  1.8
 */
defined( 'WPINC' ) || exit;

/**
 * Handle exception
 */
if ( ! function_exists( 'litespeed_exception_handler' ) ) {
	function litespeed_exception_handler( $errno, $errstr, $errfile, $errline ) {
		throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
	}
}

require_once __DIR__ . '/object-cache.cls.php';

/**
 * Sets up Object Cache Global and assigns it.
 *
 * @since 1.8
 */
function wp_cache_init() {
	$GLOBALS['wp_object_cache'] = WP_Object_Cache::get_instance();
}

/**
 * Retrieves the cache contents from the cache by key and group.
 *
 * @since 1.8
 */
function wp_cache_get( $key, $group = '', $force = false, &$found = null ) {
	global $wp_object_cache;

	return $wp_object_cache->get( $key, $group, $force, $found );
}

/**
 * Saves the data to the cache.
 *
 * @since 1.8
 */
function wp_cache_set( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->set( $key, $data, $group, $expire );
}

/**
 * Adds data to the cache, if the cache key doesn't already exist.
 *
 * @since 1.8
 */
function wp_cache_add( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->add( $key, $data, $group, $expire );
}

/**
 * Replaces the contents of the cache with new data.
 *
 * @since 1.8
 */
function wp_cache_replace( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->replace( $key, $data, $group, $expire );
}

/**
 * Increment numeric cache item's value
 *
 * @since 1.8
 */
function wp_cache_incr( $key, $offset = 1, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->incr_desr( $key, $offset, $group );
}

/**
 * Decrements numeric cache item's value.
 *
 * @since 1.8
 */
function wp_cache_decr( $key, $offset = 1, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->incr_desr( $key, $offset, $group, false );
}

/**
 * Removes the cache contents matching key and group.
 *
 * @since 1.8
 */
function wp_cache_delete( $key, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->delete( $key, $group );
}

/**
 * Removes all cache items.
 *
 * @since 1.8
 */
function wp_cache_flush() {
	global $wp_object_cache;

	return $wp_object_cache->flush();
}

/**
 * Adds a group or set of groups to the list of global groups.
 *
 * @since 1.8
 */
function wp_cache_add_global_groups( $groups ) {
	global $wp_object_cache;

	$wp_object_cache->add_global_groups( $groups );
}

/**
 * Adds a group or set of groups to the list of non-persistent groups.
 *
 * @since 1.8
 */
function wp_cache_add_non_persistent_groups( $groups ) {
	global $wp_object_cache;

	$wp_object_cache->add_non_persistent_groups( $groups );
}

/**
 * Switches the internal blog ID.
 *
 * This changes the blog id used to create keys in blog specific groups.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::switch_to_blog()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int $blog_id Site ID.
 */
function wp_cache_switch_to_blog( $blog_id ) {
	global $wp_object_cache;

	$wp_object_cache->switch_to_blog( $blog_id );
}

/**
 * Closes the cache.
 *
 * @since 1.8
 */
function wp_cache_close() {
	return true;
}



class WP_Object_Cache {
	protected static $_instance;

	private $_object_cache;

	private $_cache = array();
	private $_cache_404 = array();

	private $cache_total = 0;
	private $count_hit_incall = 0;
	private $count_hit = 0;
	private $count_miss_incall = 0;
	private $count_miss = 0;
	private $count_set = 0;

	private $blog_prefix;

	/**
	 * Init
	 *
	 * @since  1.8
	 */
	public function __construct() {
		$this->_object_cache = \LiteSpeed\Object_Cache::cls();

		$this->multisite = is_multisite();
		$this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : '';

		/**
		 * Fix multiple instance using same oc issue
		 * @since  1.8.2
		 */
		! defined( 'LSOC_PREFIX' ) && define( 'LSOC_PREFIX', substr( md5( __FILE__ ), -5 ) );
	}

	/**
	 * Output debug info
	 *
	 * @since  1.8
	 * @access public
	 */
	public function debug() {
		$log = ' [total] ' . $this->cache_total
			. ' [hit_incall] ' . $this->count_hit_incall
			. ' [hit] ' . $this->count_hit
			. ' [miss_incall] ' . $this->count_miss_incall
			. ' [miss] ' . $this->count_miss
			. ' [set] ' . $this->count_set;

		return $log;
	}

	/**
	 * Get from cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function get( $key, $group = 'default', $force = false, &$found = null ) {
		$final_key = $this->_key( $key, $group );
// error_log('');
// error_log("oc: get \t\t\t[key] " . $final_key . ( $force ? "\t\t\t [forced] " : '' ) );
		$found = false;
		$found_in_oc = false;
		$cache_val = false;
		if ( array_key_exists( $final_key, $this->_cache ) && ! $force ) {
			$found = true;
			$cache_val = $this->_cache[ $final_key ];
			$this->count_hit_incall ++;
		}
		elseif ( ! array_key_exists( $final_key, $this->_cache_404 ) && ! $this->_object_cache->is_non_persistent( $group ) ) {
			$v = $this->_object_cache->get( $final_key );

			if ( $v !== null ) {
				$v = @maybe_unserialize( $v );
			}

			// To be compatible with false val
			if ( is_array( $v ) && array_key_exists( 'data', $v ) ) {
				$this->count_hit ++;
				$found = true;
				$found_in_oc = true;
				$cache_val = $v[ 'data' ];
			}
			else { // Can't find key, cache it to 404
// error_log("oc: add404\t\t\t[key] " . $final_key );
				$this->_cache_404[ $final_key ] = 1;
				$this->count_miss ++;
			}
		}
		else {
			$this->count_miss_incall ++;
		}

		if ( is_object( $cache_val ) ) {
			$cache_val = clone $cache_val;
		}

		// If not found but has `Store Transients` cfg on, still need to follow WP's get_transient() logic
		if ( ! $found && $this->_object_cache->store_transients( $group ) ) {
			$cache_val = $this->_transient_get( $key, $group );
			if ( $cache_val ) {
				$found = true; // $found not used for now (v1.8.3)
			}
		}

		if ( $found_in_oc ) {
			$this->_cache[ $final_key ] = $cache_val;
		}

		$this->cache_total ++;

		return $cache_val;
	}

	/**
	 * Set to cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function set( $key, $data, $group = 'default', $expire = 0 ) {
		$final_key = $this->_key( $key, $group );

		if ( is_object( $data ) ) {
			$data = clone $data;
		}
// error_log("oc: set \t\t\t[key] " . $final_key );
		$this->_cache[ $final_key ] = $data;

		if( array_key_exists( $final_key, $this->_cache_404 ) ) {
// error_log("oc: unset404\t\t\t[key] " . $final_key );
			unset( $this->_cache_404[ $final_key ] );
		}

		if ( ! $this->_object_cache->is_non_persistent( $group ) ) {
			$this->_object_cache->set( $final_key, serialize( array( 'data' => $data ) ), $expire );
			$this->count_set ++;
		}

		if ( $this->_object_cache->store_transients( $group ) ) {
			$this->_transient_set( $key, $data, $group, $expire );
		}

		return true;
	}

	/**
	 * Adds data to the cache if it doesn't already exist.
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add( $key, $data, $group = 'default', $expire = 0 ) {
		if ( wp_suspend_cache_addition() ) {
			return false;
		}

		$final_key = $this->_key( $key, $group );

		if ( array_key_exists( $final_key, $this->_cache ) ) {
			return false;
		}

		return $this->set( $key, $data, $group, $expire );
	}

	/**
	 * Replace cache if the cache key exists.
	 *
	 * @since 1.8
	 * @access public
	 */
	public function replace( $key, $data, $group = 'default', $expire = 0 ) {
		$final_key = $this->_key( $key, $group );

		if ( ! array_key_exists( $final_key, $this->_cache ) ) {
			return false;
		}

		return $this->set( $key, $data, $group, $expire );
	}

	/**
	 * Increments numeric cache item's value.
	 *
	 * @since 1.8
	 * @access public
	 */
	public function incr_desr( $key, $offset = 1, $group = 'default', $incr = true ) {
		$cache_val = $this->get( $key, $group );

		if ( $cache_val === false ) {
			return false;
		}

		if ( ! is_numeric( $cache_val ) ) {
			$cache_val = 0;
		}

		$offset = (int) $offset;

		if ( $incr ) {
			$cache_val += $offset;
		}
		else {
			$cache_val -= $offset;
		}

		if ( $cache_val < 0 ) {
			$cache_val = 0;
		}

		$this->set( $key, $cache_val, $group );

		return $cache_val;
	}

	/**
	 * Delete cache
	 *
	 * @since 1.8
	 * @access public
	 */
	public function delete( $key, $group = 'default' ) {

		$final_key = $this->_key( $key, $group );

		if ( $this->_object_cache->store_transients( $group ) ) {
			$this->_transient_del( $key, $group );
		}

		if ( array_key_exists( $final_key, $this->_cache ) ) {
			unset( $this->_cache[ $final_key ] );
		}
// error_log("oc: delete \t\t\t[key] " . $final_key );

		if ( $this->_object_cache->is_non_persistent( $group ) ) {
			return false;
		}

		return $this->_object_cache->delete( $final_key );
	}

	/**
	 * Clear all cached data
	 *
	 * @since 1.8
	 * @access public
	 */
	public function flush() {
		$this->_cache = array();
		$this->_cache_404 = array();
// error_log("oc: flush " );

		$this->_object_cache->flush();

		return true;
	}

	/**
	 * Add global groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_global_groups( $groups ) {
		$this->_object_cache->add_global_groups( $groups );
	}

	/**
	 * Add non persistent groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_non_persistent_groups( $groups ) {
		$this->_object_cache->add_non_persistent_groups( $groups );
	}

	/**
	 * Get the final key
	 *
	 * @since 1.8
	 * @access private
	 */
	private function _key( $key, $group = 'default' ) {
		$prefix = $this->_object_cache->is_global( $group ) ? '' : $this->blog_prefix;

		return LSOC_PREFIX . $prefix . $group . '.' . $key;
	}

	/**
	 * Switches the internal blog ID.
	 *
	 * This changes the blog ID used to create keys in blog specific groups.
	 *
	 * @since 1.8
	 *
	 * @param int $blog_id Blog ID.
	 */
	public function switch_to_blog( $blog_id ) {
		$blog_id = (int) $blog_id;
		$this->blog_prefix = $this->multisite ? $blog_id . ':' : '';
	}

	/**
	 * Get transient from wp table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `get_transient`/`set_site_transient`
	 */
	private function _transient_get( $transient, $group ) {
		if ( $group == 'transient' ) {
			/**** Ori WP func start ****/
			$transient_option = '_transient_' . $transient;
			if ( ! wp_installing() ) {
				// If option is not in alloptions, it is not autoloaded and thus has a timeout
				$alloptions = wp_load_alloptions();
				if ( !isset( $alloptions[$transient_option] ) ) {
					$transient_timeout = '_transient_timeout_' . $transient;
					$timeout = get_option( $transient_timeout );
					if ( false !== $timeout && $timeout < time() ) {
						delete_option( $transient_option  );
						delete_option( $transient_timeout );
						$value = false;
					}
				}
			}

			if ( ! isset( $value ) )
				$value = get_option( $transient_option );
			/**** Ori WP func end ****/
		}
		elseif ( $group == 'site-transient' ) {
			/**** Ori WP func start ****/
			$no_timeout = array('update_core', 'update_plugins', 'update_themes');
			$transient_option = '_site_transient_' . $transient;
			if ( ! in_array( $transient, $no_timeout ) ) {
				$transient_timeout = '_site_transient_timeout_' . $transient;
				$timeout = get_site_option( $transient_timeout );
				if ( false !== $timeout && $timeout < time() ) {
					delete_site_option( $transient_option  );
					delete_site_option( $transient_timeout );
					$value = false;
				}
			}

			if ( ! isset( $value ) )
				$value = get_site_option( $transient_option );
			/**** Ori WP func end ****/
		}
		else {
			$value = false;
		}

		return $value;
	}

	/**
	 * Set transient to WP table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `set_transient`/`set_site_transient`
	 */
	private function _transient_set( $transient, $value, $group, $expiration ) {
		if ( $group == 'transient' ) {
			/**** Ori WP func start ****/
			$transient_timeout = '_transient_timeout_' . $transient;
			$transient_option = '_transient_' . $transient;
			if ( false === get_option( $transient_option ) ) {
				$autoload = 'yes';
				if ( $expiration ) {
					$autoload = 'no';
					add_option( $transient_timeout, time() + $expiration, '', 'no' );
				}
				$result = add_option( $transient_option, $value, '', $autoload );
			} else {
				// If expiration is requested, but the transient has no timeout option,
				// delete, then re-create transient rather than update.
				$update = true;
				if ( $expiration ) {
					if ( false === get_option( $transient_timeout ) ) {
						delete_option( $transient_option );
						add_option( $transient_timeout, time() + $expiration, '', 'no' );
						$result = add_option( $transient_option, $value, '', 'no' );
						$update = false;
					} else {
						update_option( $transient_timeout, time() + $expiration );
					}
				}
				if ( $update ) {
					$result = update_option( $transient_option, $value );
				}
			}
			/**** Ori WP func end ****/
		}
		elseif ( $group == 'site-transient' ) {
			/**** Ori WP func start ****/
			$transient_timeout = '_site_transient_timeout_' . $transient;
			$option = '_site_transient_' . $transient;
			if ( false === get_site_option( $option ) ) {
				if ( $expiration )
					add_site_option( $transient_timeout, time() + $expiration );
				$result = add_site_option( $option, $value );
			} else {
				if ( $expiration )
					update_site_option( $transient_timeout, time() + $expiration );
				$result = update_site_option( $option, $value );
			}
			/**** Ori WP func end ****/
		}
		else {
			$result = null;
		}

		return $result;
	}

	/**
	 * Delete transient from WP table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `delete_transient`/`delete_site_transient`
	 */
	private function _transient_del( $transient, $group ) {
		if ( $group == 'transient' ) {
			/**** Ori WP func start ****/
			$option_timeout = '_transient_timeout_' . $transient;
			$option = '_transient_' . $transient;
			$result = delete_option( $option );
			if ( $result )
				delete_option( $option_timeout );
			/**** Ori WP func end ****/
		}
		elseif ( $group == 'site-transient' ) {
			/**** Ori WP func start ****/
			$option_timeout = '_site_transient_timeout_' . $transient;
			$option = '_site_transient_' . $transient;
			$result = delete_site_option( $option );
			if ( $result )
				delete_site_option( $option_timeout );
			/**** Ori WP func end ****/
		}
	}

	/**
	 * Get the current instance object.
	 *
	 * @since 1.8
	 * @access public
	 */
	public static function get_instance() {
		if ( ! isset( self::$_instance ) ) {
			self::$_instance = new self();
		}

		return self::$_instance;
	}
}<?php
/**
 * The cron task class.
 *
 * @since      	1.1.3
 * @since  		1.5 Moved into /inc
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Task extends Root {
	private static $_triggers = array(
		Base::O_IMG_OPTM_CRON			 		=> array( 'name' => 'litespeed_task_imgoptm_pull', 'hook' => 'LiteSpeed\Img_Optm::cron_pull' ), // always fetch immediately
		Base::O_OPTM_CSS_ASYNC			 		=> array( 'name' => 'litespeed_task_ccss', 'hook' => 'LiteSpeed\CSS::cron_ccss' ),
		Base::O_OPTM_UCSS			 			=> array( 'name' => 'litespeed_task_ucss', 'hook' => 'LiteSpeed\CSS::cron_ucss' ),
		Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC	=> array( 'name' => 'litespeed_task_lqip', 'hook' => 'LiteSpeed\Placeholder::cron' ),
		Base::O_DISCUSS_AVATAR_CRON				=> array( 'name' => 'litespeed_task_avatar', 'hook' => 'LiteSpeed\Avatar::cron' ),
		Base::O_IMG_OPTM_AUTO				 	=> array( 'name' => 'litespeed_task_imgoptm_req', 'hook' => 'LiteSpeed\Img_Optm::cron_auto_request' ),
		Base::O_CRAWLER 						=> array( 'name' => 'litespeed_task_crawler', 'hook' => 'LiteSpeed\Crawler::start' ), // Set crawler to last one to use above results
	);

	private static $_guest_options = array(
		Base::O_OPTM_CSS_ASYNC,
		Base::O_OPTM_UCSS,
	);

	const FITLER_CRAWLER = 'litespeed_crawl_filter';
	const FITLER = 'litespeed_filter';

	/**
	 * Keep all tasks in cron
	 *
	 * @since 3.0
	 * @access public
	 */
	public function init() {
		Debug2::debug2( '⏰ Task init' );

		add_filter( 'cron_schedules', array( $this, 'lscache_cron_filter' ) );

		$guest_optm = $this->conf( Base::O_GUEST ) && $this->conf( Base::O_GUEST_OPTM );

		foreach ( self::$_triggers as $id => $trigger ) {
			if ( ! $this->conf( $id ) ) {
				if ( ! $guest_optm || ! in_array( $id, self::$_guest_options ) ) {
					continue;
				}
			}

			// Special check for crawler
			if ( $id == Base::O_CRAWLER ) {
				if ( ! Router::can_crawl() ) {
					continue;
				}

				add_filter( 'cron_schedules', array( $this, 'lscache_cron_filter_crawler' ) );
			}

			if( ! wp_next_scheduled( $trigger[ 'name' ] ) ) {
				Debug2::debug( '⏰ Cron hook register [name] ' . $trigger[ 'name' ] );

				wp_schedule_event( time(), $id == Base::O_CRAWLER ? self::FITLER_CRAWLER : self::FITLER, $trigger[ 'name' ] );
			}

			add_action( $trigger[ 'name' ], $trigger[ 'hook' ] );
		}

	}

	/**
	 * Clean all potential existing crons
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function destroy() {
		Utility::compatibility();
		array_map( 'wp_clear_scheduled_hook', array_column( self::$_triggers, 'name' ) );
	}

	/**
	 * Try to clean the crons if disabled
	 *
	 * @since 3.0
	 * @access public
	 */
	public function try_clean( $id ) {
		// Clean v2's leftover cron ( will remove in v3.1 )
		// foreach ( wp_get_ready_cron_jobs() as $hooks ) {
		// 	foreach ( $hooks as $hook => $v ) {
		// 		if ( strpos( $hook, 'litespeed_' ) === 0 && ( substr( $hook, -8 ) === '_trigger' || strpos( $hook, 'litespeed_task_' ) !== 0 ) ) {
		// 			Debug2::debug( '⏰ Cron clear legacy [hook] ' . $hook );
		// 			wp_clear_scheduled_hook( $hook );
		// 		}
		// 	}
		// }

		if ( $id && ! empty( self::$_triggers[ $id ] ) ) {
			if ( ! $this->conf( $id ) || ( $id == Base::O_CRAWLER && ! Router::can_crawl() ) ) {
				Debug2::debug( '⏰ Cron clear [id] ' . $id . ' [hook] ' . self::$_triggers[ $id ][ 'name' ] );
				wp_clear_scheduled_hook( self::$_triggers[ $id ][ 'name' ] );
			}
			return;
		}

		Debug2::debug( '⏰ ❌ Unknown cron [id] ' . $id );
	}

	/**
	 * Register cron interval imgoptm
	 *
	 * @since 1.6.1
	 * @access public
	 */
	public function lscache_cron_filter( $schedules ) {
		if ( ! array_key_exists( self::FITLER, $schedules ) ) {
			$schedules[ self::FITLER ] = array(
				'interval' => 60,
				'display'  => __( 'Every Minute', 'litespeed-cache' ),
			);
		}
		return $schedules;
	}

	/**
	 * Register cron interval
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function lscache_cron_filter_crawler( $schedules ) {
		$interval = $this->conf( Base::O_CRAWLER_RUN_INTERVAL );
		// $wp_schedules = wp_get_schedules();
		if ( ! array_key_exists( self::FITLER_CRAWLER, $schedules ) ) {
			// 	Debug2::debug('Crawler cron log: cron filter '.$interval.' added');
			$schedules[ self::FITLER_CRAWLER ] = array(
				'interval' => $interval,
				'display'  => __( 'LiteSpeed Crawler Cron', 'litespeed-cache' ),
			);
		}
		return $schedules;
	}

}<?php
/**
 * The frontend GUI class.
 *
 * @since      	1.3
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class GUI extends Base {
	private static $_clean_counter = 0;

	private $_promo_true;

	// [ file_tag => [ days, litespeed_only ], ... ]
	private $_promo_list = array(
		'new_version'	=> array( 7, false ),
		'score'			=> array( 14, false ),
		// 'slack'		=> array( 3, false ),
	);

	const LIB_GUEST_JS = 'assets/js/guest.min.js';
	const LIB_GUEST_DOCREF_JS = 'assets/js/guest.docref.min.js';
	const PHP_GUEST = 'guest.vary.php';

	const TYPE_DISMISS_WHM = 'whm';
	const TYPE_DISMISS_EXPIRESDEFAULT = 'ExpiresDefault';
	const TYPE_DISMISS_PROMO = 'promo';
	const TYPE_DISMISS_PIN = 'pin';

	const WHM_MSG = 'lscwp_whm_install';
	const WHM_MSG_VAL = 'whm_install';

	protected $_summary;

	/**
	 * Instance
	 *
	 * @since  1.3
	 */
	public function __construct() {
		$this->_summary = self::get_summary();

	}

	/**
	 * Frontend Init
	 *
	 * @since  3.0
	 */
	public function init() {
		Debug2::debug2( '[GUI] init' );
		if ( is_admin_bar_showing() && current_user_can( 'manage_options' ) ) {
			add_action( 'wp_enqueue_scripts', array( $this, 'frontend_enqueue_style' ) );
			add_action( 'admin_bar_menu', array( $this, 'frontend_shortcut' ), 95 );
		}

		/**
		 * Turn on instant click
		 * @since  1.8.2
		 */
		if ( $this->conf( self::O_UTIL_INSTANT_CLICK ) ) {
			add_action( 'wp_enqueue_scripts', array( $this, 'frontend_enqueue_style_public' ) );
		}

		// NOTE: this needs to be before optimizer to avoid wrapper being removed
		add_filter( 'litespeed_buffer_finalize', array( $this, 'finalize' ), 8 );
	}

	/**
	 * Get the lscache stats
	 *
	 * @since  3.0
	 */
	public function lscache_stats() {
		return false;

		$stat_titles = array(
			'PUB_CREATES'		=> __( 'Public Caches', 'litespeed-cache' ),
			'PUB_HITS'			=> __( 'Public Cache Hits', 'litespeed-cache' ),
			'PVT_CREATES'		=> __( 'Private Caches', 'litespeed-cache' ),
			'PVT_HITS'			=> __( 'Private Cache Hits', 'litespeed-cache' ),
		);

		// Build the readable format
		$data = array();
		foreach ( $stat_titles as $k => $v ) {
			if ( array_key_exists( $k, $stats ) ) {
				$data[ $v ] = number_format( $stats[ $k ] );
			}
		}

		return $data;
	}

	/**
	 * Display a pie
	 *
	 * @since 1.6.6
	 */
	public static function pie( $percent, $width = 50, $finished_tick = false, $without_percentage = false, $append_cls = false ) {
		$percentage = '<text x="50%" y="50%">' . $percent . ( $without_percentage ? '' : '%' ) . '</text>';

		if ( $percent == 100 && $finished_tick ) {
			$percentage = '<text x="50%" y="50%" class="litespeed-pie-done">&#x2713</text>';
		}

		return "
		<svg class='litespeed-pie $append_cls' viewbox='0 0 33.83098862 33.83098862' width='$width' height='$width' xmlns='http://www.w3.org/2000/svg'>
			<circle class='litespeed-pie_bg' cx='16.91549431' cy='16.91549431' r='15.91549431' />
			<circle class='litespeed-pie_circle' cx='16.91549431' cy='16.91549431' r='15.91549431' stroke-dasharray='$percent,100' />
			<g class='litespeed-pie_info'>$percentage</g>
		</svg>
		";
	}

	/**
	 * Display a tiny pie with a tooltip
	 *
	 * @since 3.0
	 */
	public static function pie_tiny( $percent, $width = 50, $tooltip = '', $tooltip_pos = 'up', $append_cls = false ) {

		// formula C = 2πR
		$dasharray = 2 * 3.1416 * 9 * ( $percent / 100 );

		return "
		<button type='button' data-balloon-break data-balloon-pos='$tooltip_pos' aria-label='$tooltip' class='litespeed-btn-pie'>
		<svg class='litespeed-pie litespeed-pie-tiny $append_cls' viewbox='0 0 30 30' width='$width' height='$width' xmlns='http://www.w3.org/2000/svg'>
			<circle class='litespeed-pie_bg' cx='15' cy='15' r='9' />
			<circle class='litespeed-pie_circle' cx='15' cy='15' r='9' stroke-dasharray='$dasharray,100' />
			<g class='litespeed-pie_info'><text x='50%' y='50%'>i</text></g>
		</svg>
		</button>
		";
	}

	/**
	 * Get classname of PageSpeed Score
	 *
	 * Scale:
	 * 	90-100 (fast)
	 * 	50-89 (average)
	 * 	0-49 (slow)
	 *
	 * @since  2.9
	 * @access public
	 */
	public function get_cls_of_pagescore( $score ) {
		if ( $score >= 90 ) {
			return 'success';
		}

		if ( $score >= 50 ) {
			return 'warning';
		}

		return 'danger';
	}

	/**
	 * Dismiss banner
	 *
	 * @since 1.0
	 * @access public
	 */
	public static function dismiss() {
		$_instance = self::cls();
		switch ( Router::verify_type() ) {
			case self::TYPE_DISMISS_WHM :
				self::dismiss_whm();
				break;

			case self::TYPE_DISMISS_EXPIRESDEFAULT :
				self::update_option( Admin_Display::DB_DISMISS_MSG, Admin_Display::RULECONFLICT_DISMISSED );
				break;

			case self::TYPE_DISMISS_PIN:
				admin_display::dismiss_pin();
				break;

			case self::TYPE_DISMISS_PROMO:
				if ( empty( $_GET[ 'promo_tag' ] ) ) {
					break;
				}

				$promo_tag = sanitize_key( $_GET[ 'promo_tag' ] );

				if ( empty( $_instance->_promo_list[ $promo_tag ] ) ) {
					break;
				}

				defined( 'LSCWP_LOG' ) && Debug2::debug( '[GUI] Dismiss promo ' . $promo_tag );

				// Forever dismiss
				if ( ! empty( $_GET[ 'done' ] ) ) {
					$_instance->_summary[ $promo_tag ] = 'done';
				}
				elseif ( ! empty( $_GET[ 'later' ] ) ) {
					// Delay the banner to half year later
					$_instance->_summary[ $promo_tag ] = time() + 86400 * 180;
				}
				else {
					// Update welcome banner to 30 days after
					$_instance->_summary[ $promo_tag ] = time() + 86400 * 30;
				}

				self::save_summary();

				break;

			default:
				break;
		}

		if ( Router::is_ajax() ) {
			// All dismiss actions are considered as ajax call, so just exit
			exit( json_encode( array( 'success' => 1 ) ) );
		}

		// Plain click link, redirect to referral url
		Admin::redirect();
	}

	/**
	 * Check if has rule conflict notice
	 *
	 * @since 1.1.5
	 * @access public
	 * @return boolean
	 */
	public static function has_msg_ruleconflict() {
		$db_dismiss_msg = self::get_option( Admin_Display::DB_DISMISS_MSG );
		if ( ! $db_dismiss_msg ) {
			self::update_option( Admin_Display::DB_DISMISS_MSG, -1 );
		}
		return $db_dismiss_msg == Admin_Display::RULECONFLICT_ON;
	}

	/**
	 * Check if has whm notice
	 *
	 * @since 1.1.1
	 * @access public
	 * @return boolean
	 */
	public static function has_whm_msg() {
		$val = self::get_option( self::WHM_MSG );
		if ( ! $val ) {
			self::dismiss_whm();
			return false;
		}
		return $val == self::WHM_MSG_VAL;
	}

	/**
	 * Delete whm msg tag
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function dismiss_whm() {
		self::update_option( self::WHM_MSG, -1 );
	}

	/**
	 * Set current page a litespeed page
	 *
	 * @since  2.9
	 */
	private function _is_litespeed_page() {
		if ( ! empty( $_GET[ 'page' ] ) && in_array( $_GET[ 'page' ],
			array(
				'litespeed-settings',
				'litespeed-dash',
				Admin::PAGE_EDIT_HTACCESS,
				'litespeed-optimization',
				'litespeed-crawler',
				'litespeed-import',
				'litespeed-report',
			) )
		) {
			return true;
		}

		return false;
	}

	/**
	 * Display promo banner
	 *
	 * @since 2.1
	 * @access public
	 */
	public function show_promo( $check_only = false ) {
		$is_litespeed_page = $this->_is_litespeed_page();

		// Bypass showing info banner if disabled all in debug
		if ( defined( 'LITESPEED_DISABLE_ALL' ) ) {
			if ( $is_litespeed_page && ! $check_only ) {
				include_once LSCWP_DIR . "tpl/inc/disabled_all.php";
			}

			return false;
		}

		if ( file_exists( ABSPATH . '.litespeed_no_banner' ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[GUI] Bypass banners due to silence file' );
			return false;
		}

		foreach ( $this->_promo_list as $promo_tag => $v ) {
			list( $delay_days, $litespeed_page_only ) = $v;

			if ( $litespeed_page_only && ! $is_litespeed_page ) {
				continue;
			}

			// first time check
			if ( empty( $this->_summary[ $promo_tag ] ) ) {
				$this->_summary[ $promo_tag ] = time() + 86400 * $delay_days;
				self::save_summary();

				continue;
			}

			$promo_timestamp = $this->_summary[ $promo_tag ];

			// was ticked as done
			if ( $promo_timestamp == 'done' ) {
				continue;
			}

			// Not reach the dateline yet
			if ( time() < $promo_timestamp ) {
				continue;
			}

			// try to load, if can pass, will set $this->_promo_true = true
			$this->_promo_true = false;
			include LSCWP_DIR . "tpl/banner/$promo_tag.php";

			// If not defined, means it didn't pass the display workflow in tpl.
			if ( ! $this->_promo_true ) {
				continue;
			}

			if ( $check_only ) {
				return $promo_tag;
			}

			defined( 'LSCWP_LOG' ) && Debug2::debug( '[GUI] Show promo ' . $promo_tag );

			// Only contain one
			break;

		}

		return false;
	}

	/**
	 * Load frontend public script
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function frontend_enqueue_style_public() {
		wp_enqueue_script( Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/js/instant_click.min.js', array(), Core::VER, true );
	}

	/**
	 * Load frontend menu shortcut
	 *
	 * @since  1.3
	 * @access public
	 */
	public function frontend_enqueue_style() {
		wp_enqueue_style( Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/css/litespeed.css', array(), Core::VER, 'all' );
	}

	/**
	 * Load frontend menu shortcut
	 *
	 * @since  1.3
	 * @access public
	 */
	public function frontend_shortcut() {
		global $wp_admin_bar;

		$wp_admin_bar->add_menu( array(
			'id'	=> 'litespeed-menu',
			'title'	=> '<span class="ab-icon"></span>',
			'href'	=> get_admin_url( null, 'admin.php?page=litespeed' ),
			'meta'	=> array( 'tabindex' => 0, 'class' => 'litespeed-top-toolbar' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-single',
			'title'		=> __( 'Purge this page', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_FRONT, false, true ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-single-action',
			'title'		=> __( 'Mark this page as ', 'litespeed-cache' ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		if ( ! empty( $_SERVER[ 'REQUEST_URI' ] ) ) {
			$append_arr = array(
				Conf::TYPE_SET . '[' . self::O_CACHE_FORCE_URI . '][]' => $_SERVER[ 'REQUEST_URI' ] . '$',
				'redirect'	=> $_SERVER[ 'REQUEST_URI' ],
			);
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-single-action',
				'id'		=> 'litespeed-single-forced_cache',
				'title'		=> __( 'Forced cacheable', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr ),
			) );

			$append_arr = array(
				Conf::TYPE_SET . '[' . self::O_CACHE_EXC . '][]' => $_SERVER[ 'REQUEST_URI' ] . '$',
				'redirect'	=> $_SERVER[ 'REQUEST_URI' ],
			);
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-single-action',
				'id'		=> 'litespeed-single-noncache',
				'title'		=> __( 'Non cacheable', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr ),
			) );

			$append_arr = array(
				Conf::TYPE_SET . '[' . self::O_CACHE_PRIV_URI . '][]' => $_SERVER[ 'REQUEST_URI' ] . '$',
				'redirect'	=> $_SERVER[ 'REQUEST_URI' ],
			);
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-single-action',
				'id'		=> 'litespeed-single-private',
				'title'		=> __( 'Private cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr ),
			) );

			$append_arr = array(
				Conf::TYPE_SET . '[' . self::O_OPTM_EXC . '][]' => $_SERVER[ 'REQUEST_URI' ] . '$',
				'redirect'	=> $_SERVER[ 'REQUEST_URI' ],
			);
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-single-action',
				'id'		=> 'litespeed-single-nonoptimize',
				'title'		=> __( 'No optimization', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr ),
			) );
		}

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-single-action',
			'id'		=> 'litespeed-single-more',
			'title'		=> __( 'More settings', 'litespeed-cache' ),
			'href'		=> get_admin_url( null, 'admin.php?page=litespeed-cache' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-all',
			'title'		=> __( 'Purge All', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL, false, '_ori' ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-all-lscache',
			'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LSCache', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE, false, '_ori' ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-cssjs',
			'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'CSS/JS Cache', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CSSJS, false, '_ori' ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		if ( defined( 'LSCWP_OBJECT_CACHE' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-object',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Object Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OBJECT, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Router::opcache_enabled() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-opcache',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Opcode Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OPCACHE, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( $this->has_cache_folder( 'ccss' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-ccss',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - CCSS',
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CCSS, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( $this->has_cache_folder( 'ucss' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-ucss',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - UCSS',
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_UCSS, false, '_ori' ),
			) );
		}

		if ( $this->has_cache_folder( 'localres' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-localres',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Localized Resources', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LOCALRES, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( $this->has_cache_folder( 'lqip' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-placeholder',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LQIP Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LQIP, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( $this->has_cache_folder( 'avatar' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-avatar',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Gravatar Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_AVATAR, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		do_action( 'litespeed_frontend_shortcut' );

	}

	/**
	 * Hooked to wp_before_admin_bar_render.
	 * Adds a link to the admin bar so users can quickly purge all.
	 *
	 * @access public
	 * @global WP_Admin_Bar $wp_admin_bar
	 * @since 1.7.2 Moved from admin_display.cls to gui.cls; Renamed from `add_quick_purge` to `backend_shortcut`
	 */
	public function backend_shortcut() {
		global $wp_admin_bar;

		// if ( defined( 'LITESPEED_ON' ) ) {
		$wp_admin_bar->add_menu( array(
			'id'    => 'litespeed-menu',
			'title' => '<span class="ab-icon" title="' . __( 'LiteSpeed Cache Purge All', 'litespeed-cache' ) . ' - ' . __( 'LSCache', 'litespeed-cache' ) . '"></span>',
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE ),
			'meta'  => array( 'tabindex' => 0, 'class' => 'litespeed-top-toolbar' ),
		) );
		// }
		// else {
		// 	$wp_admin_bar->add_menu( array(
		// 		'id'    => 'litespeed-menu',
		// 		'title' => '<span class="ab-icon" title="' . __( 'LiteSpeed Cache', 'litespeed-cache' ) . '"></span>',
		// 		'meta'  => array( 'tabindex' => 0, 'class' => 'litespeed-top-toolbar' ),
		// 	) );
		// }

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-bar-manage',
			'title'		=> __( 'Manage', 'litespeed-cache' ),
			'href'		=> 'admin.php?page=litespeed',
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-bar-setting',
			'title'		=> __( 'Settings', 'litespeed-cache' ),
			'href'		=> 'admin.php?page=litespeed-cache',
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		if ( ! is_network_admin() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-bar-imgoptm',
				'title'		=> __( 'Image Optimization', 'litespeed-cache' ),
				'href'		=> 'admin.php?page=litespeed-img_optm',
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-all',
			'title'		=> __( 'Purge All', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-all-lscache',
			'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LSCache', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-cssjs',
			'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'CSS/JS Cache', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CSSJS ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		if ( $this->conf( self::O_CDN_CLOUDFLARE ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-cloudflare',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Cloudflare', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_PURGE_ALL ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( defined( 'LSCWP_OBJECT_CACHE' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-object',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Object Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OBJECT ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Router::opcache_enabled() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-opcache',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Opcode Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OPCACHE ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( $this->has_cache_folder( 'ccss' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-ccss',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - CCSS',
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CCSS ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( $this->has_cache_folder( 'ucss' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-ucss',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - UCSS',
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_UCSS ),
			) );
		}

		if ( $this->has_cache_folder( 'localres' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-localres',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Localized Resources', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LOCALRES ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( $this->has_cache_folder( 'lqip' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-placeholder',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LQIP Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LQIP ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( $this->has_cache_folder( 'avatar' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-avatar',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Gravatar Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_AVATAR ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		do_action( 'litespeed_backend_shortcut' );
	}

	/**
	 * Clear unfinished data
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function img_optm_clean_up( $unfinished_num ) {
		return sprintf(
			'<a href="%1$s" class="button litespeed-btn-warning" data-balloon-pos="up" aria-label="%2$s"><span class="dashicons dashicons-editor-removeformatting"></span>&nbsp;%3$s</a>',
			Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CLEAN ),
			__( 'Remove all previous unfinished image optimization requests.', 'litespeed-cache' ),
			__( 'Clean Up Unfinished Data', 'litespeed-cache' ) . ( $unfinished_num ? ': ' . Admin_Display::print_plural( $unfinished_num, 'image' ) : '')
		);
	}

	/**
	 * Generate install link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function plugin_install_link( $title, $name, $v ) {
		$url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $name ), 'install-plugin_' . $name );

		$action = sprintf(
			'<a href="%1$s" class="install-now" data-slug="%2$s" data-name="%3$s" aria-label="%4$s">%5$s</a>',
			esc_url( $url ),
			esc_attr( $name ),
			esc_attr( $title ),
			esc_attr( sprintf( __( 'Install %s', 'litespeed-cache' ), $title ) ),
			__( 'Install Now', 'litespeed-cache' )
		);

		return $action;

		// $msg .= " <a href='$upgrade_link' class='litespeed-btn-success' target='_blank'>" . __( 'Click here to upgrade', 'litespeed-cache' ) . '</a>';

	}

	/**
	 * Generate upgrade link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function plugin_upgrade_link( $title, $name, $v ) {
		$details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $name . '&section=changelog&TB_iframe=true&width=600&height=800' );
		$file = $name . '/' . $name . '.php';

		$msg = sprintf( __( '<a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.', 'litespeed-cache' ),
			esc_url( $details_url ),
			sprintf( 'class="thickbox open-plugin-details-modal" aria-label="%s"',
				esc_attr( sprintf( __( 'View %1$s version %2$s details', 'litespeed-cache' ), $title, $v ) )
			),
			$v,
			wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $file, 'upgrade-plugin_' . $file ),
			sprintf( 'class="update-link" aria-label="%s"',
				esc_attr( sprintf( __( 'Update %s now', 'litespeed-cache' ), $title ) )
			)
		);

		return $msg;
	}

	/**
	 * Finalize buffer by GUI class
	 *
	 * @since  1.6
	 * @access public
	 */
	public function finalize( $buffer ) {
		$buffer = $this->_clean_wrapper( $buffer );

		// Maybe restore doc.ref
		if ( $this->conf( Base::O_GUEST ) && strpos( $buffer, '<head>' ) !== false && defined( 'LITESPEED_IS_HTML' ) ) {
			$buffer = $this->_enqueue_guest_docref_js( $buffer );
		}

		if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST && strpos( $buffer, '</body>' ) !== false && defined( 'LITESPEED_IS_HTML' ) ) {
			$buffer = $this->_enqueue_guest_js( $buffer );
		}

		return $buffer;
	}

	/**
	 * Append guest restore doc.ref JS for organic traffic count
	 *
	 * @since  4.4.6
	 */
	private function _enqueue_guest_docref_js( $buffer ) {
		$js_con = File::read( LSCWP_DIR . self::LIB_GUEST_DOCREF_JS );
		$buffer = preg_replace( '/<head>/', '<head><script data-no-optimize="1">' . $js_con . '</script>', $buffer, 1 );
		return $buffer;
	}

	/**
	 * Append guest JS to update vary
	 *
	 * @since  4.0
	 */
	private function _enqueue_guest_js( $buffer ) {
		$js_con = File::read( LSCWP_DIR . self::LIB_GUEST_JS );
		// $guest_update_url = add_query_arg( 'litespeed_guest', 1, home_url( '/' ) );
		$guest_update_url = parse_url( LSWCP_PLUGIN_URL . self::PHP_GUEST, PHP_URL_PATH );
		$js_con = str_replace( 'litespeed_url', esc_url( $guest_update_url ), $js_con );
		$buffer = preg_replace( '/<\/body>/', '<script data-no-optimize="1">' . $js_con . '</script></body>', $buffer, 1 );
		return $buffer;
	}

	/**
	 * Clean wrapper from buffer
	 *
	 * @since  1.4
	 * @since  1.6 converted to private with adding prefix _
	 * @access private
	 */
	private function _clean_wrapper( $buffer ) {
		if ( self::$_clean_counter < 1 ) {
			Debug2::debug2( "GUI bypassed by no counter" );
			return $buffer;
		}

		Debug2::debug2( "GUI start cleaning counter " . self::$_clean_counter );

		for ( $i = 1; $i <= self::$_clean_counter; $i ++ ) {
			// If miss beginning
			$start = strpos( $buffer, self::clean_wrapper_begin( $i ) );
			if ( $start === false ) {
				$buffer = str_replace( self::clean_wrapper_end( $i ), '', $buffer );
				Debug2::debug2( "GUI lost beginning wrapper $i" );
				continue;
			}

			// If miss end
			$end_wrapper = self::clean_wrapper_end( $i );
			$end = strpos( $buffer, $end_wrapper );
			if ( $end === false ) {
				$buffer = str_replace( self::clean_wrapper_begin( $i ), '', $buffer );
				Debug2::debug2( "GUI lost ending wrapper $i" );
				continue;
			}

			// Now replace wrapped content
			$buffer = substr_replace( $buffer, '', $start, $end - $start + strlen( $end_wrapper ) );
			Debug2::debug2( "GUI cleaned wrapper $i" );
		}

		return $buffer;
	}

	/**
	 * Display a to-be-removed html wrapper
	 *
	 * @since  1.4
	 * @access public
	 */
	public static function clean_wrapper_begin( $counter = false ) {
		if ( $counter === false ) {
			self::$_clean_counter ++;
			$counter = self::$_clean_counter;
			Debug2::debug( "GUI clean wrapper $counter begin" );
		}
		return '<!-- LiteSpeed To Be Removed begin ' . $counter . ' -->';
	}

	/**
	 * Display a to-be-removed html wrapper
	 *
	 * @since  1.4
	 * @access public
	 */
	public static function clean_wrapper_end( $counter = false ) {
		if ( $counter === false ) {
			$counter = self::$_clean_counter;
			Debug2::debug( "GUI clean wrapper $counter end" );
		}
		return '<!-- LiteSpeed To Be Removed end ' . $counter . ' -->';
	}

}


<?php
/**
 * The plugin vary class to manage X-LiteSpeed-Vary
 *
 * @since      	1.1.3
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Vary extends Root {
	const X_HEADER = 'X-LiteSpeed-Vary';

	private static $_vary_name = '_lscache_vary'; // this default vary cookie is used for logged in status check
	private static $_can_change_vary = false; // Currently only AJAX used this

	/**
	 * Adds the actions used for setting up cookies on log in/out.
	 *
	 * Also checks if the database matches the rewrite rule.
	 *
	 * @since 1.0.4
	 */
	public function init() {
		$this->_update_vary_name();
	}

	/**
	 * Update the default vary name if changed
	 *
	 * @since  4.0
	 */
	private function _update_vary_name() {
		$db_cookie = $this->conf( Base::O_CACHE_LOGIN_COOKIE ); // [3.0] todo: check if works in network's sites

		// If no vary set in rewrite rule
		if ( ! isset( $_SERVER[ 'LSCACHE_VARY_COOKIE' ] ) ) {
			if ( $db_cookie ) {
				// Display cookie error msg to admin
				if ( is_multisite() ? is_network_admin() : is_admin() ) {
					Admin_Display::show_error_cookie();
				}
				Control::set_nocache( 'vary cookie setting error' );
				return;
			}
			return;
		}
		// If db setting does not exist, skip checking db value
		if ( ! $db_cookie ) {
			return;
		}

		// beyond this point, need to make sure db vary setting is in $_SERVER env.
		$vary_arr = explode( ',', $_SERVER[ 'LSCACHE_VARY_COOKIE' ] );

		if ( in_array( $db_cookie, $vary_arr ) ) {
			self::$_vary_name = $db_cookie;
			return;
		}

		if ( is_multisite() ? is_network_admin() : is_admin() ) {
			Admin_Display::show_error_cookie();
		}
		Control::set_nocache('vary cookie setting lost error');

	}

	/**
	 * Hooks after user init
	 *
	 * @since  4.0
	 */
	public function after_user_init() {
		// logged in user
		if ( Router::is_logged_in() ) {
			// If not esi, check cache logged-in user setting
			if ( ! $this->cls( 'Router' )->esi_enabled() ) {
				// If cache logged-in, then init cacheable to private
				if ( $this->conf( Base::O_CACHE_PRIV ) ) {
					add_action( 'wp_logout', __NAMESPACE__ . '\Purge::purge_on_logout' );

					$this->cls( 'Control' )->init_cacheable();
					Control::set_private( 'logged in user' );
				}
				// No cache for logged-in user
				else {
					Control::set_nocache( 'logged in user' );
				}
			}
			// ESI is on, can be public cache
			else {
				// Need to make sure vary is using group id
				$this->cls( 'Control' )->init_cacheable();
			}

			// register logout hook to clear login status
			add_action( 'clear_auth_cookie', array( $this, 'remove_logged_in' ) );

		}
		else {
			// Only after vary init, can detect if is Guest mode or not
			$this->_maybe_guest_mode();

			// Set vary cookie for logging in user, otherwise the user will hit public with vary=0 (guest version)
			add_action( 'set_logged_in_cookie', array( $this, 'add_logged_in' ), 10, 4 );
			add_action( 'wp_login', __NAMESPACE__ . '\Purge::purge_on_logout' );

			$this->cls( 'Control' )->init_cacheable();

			// Check `login page` cacheable setting because they don't go through main WP logic
			add_action( 'login_init', array( $this->cls( 'Tag' ), 'check_login_cacheable' ), 5 );

			if ( ! empty( $_GET[ 'litespeed_guest' ] ) ) {
				add_action( 'wp_loaded', array( $this, 'update_guest_vary' ), 20 );
			}
		}

		// Add comment list ESI
		add_filter( 'comments_array', array( $this, 'check_commenter' ) );

		// Set vary cookie for commenter.
		add_action( 'set_comment_cookies', array( $this, 'append_commenter' ) );

		/**
		 * Don't change for REST call because they don't carry on user info usually
		 * @since 1.6.7
		 */
		add_action( 'rest_api_init', function(){ // this hook is fired in `init` hook
			Debug2::debug( '[Vary] Rest API init disabled vary change' );
			add_filter( 'litespeed_can_change_vary', '__return_false' );
		} );
	}

	/**
	 * Check if is Guest mode or not
	 *
	 * @since  4.0
	 */
	private function _maybe_guest_mode() {
		if ( defined( 'LITESPEED_GUEST' ) ) {
			Debug2::debug( '[Vary] 👒👒 Guest mode ' . ( LITESPEED_GUEST ? 'predefined' : 'turned off' ) );
			return;
		}

		if ( ! $this->conf( Base::O_GUEST ) ) {
			return;
		}

		// If vary is set, then not a guest
		if ( self::has_vary() ) {
			return;
		}

		// If has admin QS, then no guest
		if ( ! empty( $_GET[ Router::ACTION ] ) ) {
			return;
		}

		if ( defined( 'DOING_AJAX' ) ) {
			return;
		}

		if ( defined( 'DOING_CRON' ) ) {
			return;
		}

		// If is the request to update vary, then no guest
		// Don't need anymore as it is always ajax call
		// Still keep it in case some WP blocked the lightweigh guest vary update script, WP can still update the vary
		if ( ! empty( $_GET[ 'litespeed_guest' ] ) ) {
			return;
		}

		Debug2::debug( '[Vary] 👒👒 Guest mode' );

		! defined( 'LITESPEED_GUEST' ) && define( 'LITESPEED_GUEST', true );

		if ( $this->conf( Base::O_GUEST_OPTM ) ) {
			! defined( 'LITESPEED_GUEST_OPTM' ) && define( 'LITESPEED_GUEST_OPTM', true );
		}
	}

	/**
	 * Update Guest vary
	 *
	 * @since  4.0
	 * @deprecated 4.1 Use independent lightweight guest.vary.php as a replacement
	 */
	public function update_guest_vary() {
		// This process must not be cached
		! defined( 'LSCACHE_NO_CACHE' ) && define( 'LSCACHE_NO_CACHE', true );

		$_guest = new Lib\Guest();
		if ( $_guest->always_guest() || self::has_vary() ) { // If contains vary already, don't reload to avoid infinite loop when parent page having browser cache
			! defined( 'LITESPEED_GUEST' ) && define( 'LITESPEED_GUEST', true ); // Reuse this const to bypass set vary in vary finalize
			Debug2::debug( '[Vary] 🤠🤠 Guest' );
			echo '[]';
			exit;
		}

		Debug2::debug( "[Vary] Will update guest vary in finalize" );

		// return json
		echo json_encode( array( 'reload' => 'yes' ) );
		exit;
	}

	/**
	 * Hooked to the comments_array filter.
	 *
	 * Check if the user accessing the page has the commenter cookie.
	 *
	 * If the user does not want to cache commenters, just check if user is commenter.
	 * Otherwise if the vary cookie is set, unset it. This is so that when the page is cached, the page will appear as if the user was a normal user.
	 * Normal user is defined as not a logged in user and not a commenter.
	 *
	 * @since 1.0.4
	 * @access public
	 * @global type $post
	 * @param array $comments The current comments to output
	 * @return array The comments to output.
	 */
	public function check_commenter( $comments ) {
		/**
		 * Hook to bypass pending comment check for comment related plugins compatibility
		 * @since 2.9.5
		 */
		if ( apply_filters( 'litespeed_vary_check_commenter_pending', true ) ) {
			$pending = false;
			foreach ( $comments as $comment ) {
				if ( ! $comment->comment_approved ) { // current user has pending comment
					$pending = true;
					break;
				}
			}

			// No pending comments, don't need to add private cache
			if ( ! $pending ) {
				Debug2::debug( '[Vary] No pending comment' );
				$this->remove_commenter();

				// Remove commenter prefilled info if exists, for public cache
				foreach( $_COOKIE as $cookie_name => $cookie_value ) {
					if ( strlen( $cookie_name ) >= 15 && strpos( $cookie_name, 'comment_author_' ) === 0 ) {
						unset( $_COOKIE[ $cookie_name ] );
					}
				}

				return $comments;
			}
		}

		// Current user/visitor has pending comments
		// set vary=2 for next time vary lookup
		$this->add_commenter();

		if ( $this->conf( Base::O_CACHE_COMMENTER ) ) {
			Control::set_private( 'existing commenter' );
		}
		else {
			Control::set_nocache( 'existing commenter' );
		}

		return $comments;
	}

	/**
	 * Check if default vary has a value
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function has_vary() {
		if ( empty( $_COOKIE[ self::$_vary_name ] ) ) {
			return false;
		}
		return $_COOKIE[ self::$_vary_name ];
	}

	/**
	 * Append user status with logged in
	 *
	 * @since 1.1.3
	 * @since 1.6.2 Removed static referral
	 * @access public
	 */
	public function add_logged_in( $logged_in_cookie = false, $expire = false, $expiration = false, $uid = false ) {
		Debug2::debug( '[Vary] add_logged_in' );

		/**
		 * NOTE: Run before `$this->_update_default_vary()` to make vary changeable
		 * @since  2.2.2
		 */
		self::can_ajax_vary();

		// If the cookie is lost somehow, set it
		$this->_update_default_vary( $uid, $expire );
	}

	/**
	 * Remove user logged in status
	 *
	 * @since 1.1.3
	 * @since 1.6.2 Removed static referral
	 * @access public
	 */
	public function remove_logged_in() {
		Debug2::debug( '[Vary] remove_logged_in' );

		/**
		 * NOTE: Run before `$this->_update_default_vary()` to make vary changeable
		 * @since  2.2.2
		 */
		self::can_ajax_vary();

		// Force update vary to remove login status
		$this->_update_default_vary( -1 );
	}

	/**
	 * Allow vary can be changed for ajax calls
	 *
	 * @since 2.2.2
	 * @since 2.6 Changed to static
	 * @access public
	 */
	public static function can_ajax_vary() {
		Debug2::debug( '[Vary] _can_change_vary -> true' );
		self::$_can_change_vary = true;
	}

	/**
	 * Check if can change default vary
	 *
	 * @since 1.6.2
	 * @access private
	 */
	private function can_change_vary() {
		// Don't change for ajax due to ajax not sending webp header
		if ( Router::is_ajax() ) {
			if ( ! self::$_can_change_vary ) {
				Debug2::debug( '[Vary] can_change_vary bypassed due to ajax call' );
				return false;
			}
		}

		/**
		 * POST request can set vary to fix #820789 login "loop" guest cache issue
		 * @since 1.6.5
		 */
		if ( isset( $_SERVER["REQUEST_METHOD"] ) && $_SERVER["REQUEST_METHOD"] !== 'GET' && $_SERVER["REQUEST_METHOD"] !== 'POST' ) {
			Debug2::debug( '[Vary] can_change_vary bypassed due to method not get/post' );
			return false;
		}

		/**
		 * Disable vary change if is from crawler
		 * @since  2.9.8 To enable woocommerce cart not empty warm up (@Taba)
		 */
		if ( ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) && strpos( $_SERVER[ 'HTTP_USER_AGENT' ], Crawler::FAST_USER_AGENT ) === 0 ) {
			Debug2::debug( '[Vary] can_change_vary bypassed due to crawler' );
			return false;
		}

		if ( ! apply_filters( 'litespeed_can_change_vary', true ) ) {
			Debug2::debug( '[Vary] can_change_vary bypassed due to litespeed_can_change_vary hook' );
			return false;
		}

		return true;
	}

	/**
	 * Update default vary
	 *
	 * @since 1.6.2
	 * @since  1.6.6.1 Add ran check to make it only run once ( No run multiple times due to login process doesn't have valid uid )
	 * @access private
	 */
	private function _update_default_vary( $uid = false, $expire = false ) {
		// Make sure header output only run once
		if ( ! defined( 'LITESPEED_DID_' . __FUNCTION__ ) ) {
			define( 'LITESPEED_DID_' . __FUNCTION__, true );
		}
		else {
			Debug2::debug2( "[Vary] _update_default_vary bypassed due to run already" );
			return;
		}

		// If the cookie is lost somehow, set it
		$vary = $this->finalize_default_vary( $uid );
		$current_vary = self::has_vary();
		if ( $current_vary !== $vary && $current_vary !== 'commenter' && $this->can_change_vary() ) {
			// $_COOKIE[ self::$_vary_name ] = $vary; // not needed

			// save it
			if ( ! $expire ) {
				$expire = time() + 2 * DAY_IN_SECONDS;
			}
			$this->_cookie( $vary, $expire );
			Debug2::debug( "[Vary] set_cookie ---> $vary" );
			// Control::set_nocache( 'changing default vary' . " $current_vary => $vary" );
		}
	}

	/**
	 * Get vary name
	 *
	 * @since 1.9.1
	 * @access public
	 */
	public function get_vary_name() {
		return self::$_vary_name;
	}

	/**
	 * Check if one user role is in vary group settings
	 *
	 * @since 1.2.0
	 * @since  3.0 Moved here from conf.cls
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_vary_group( $role ) {
		$group = 0;
		$vary_groups = $this->conf( Base::O_CACHE_VARY_GROUP );
		if ( array_key_exists( $role, $vary_groups ) ) {
			$group = $vary_groups[ $role ];
		}
		elseif ( $role === 'administrator' ) {
			$group = 99;
		}

		if ( $group ) {
			Debug2::debug2( '[Vary] role in vary_group [group] ' . $group );
		}

		return $group;
	}

	/**
	 * Finalize default Vary Cookie
	 *
	 *  Get user vary tag based on admin_bar & role
	 *
	 * NOTE: Login process will also call this because it does not call wp hook as normal page loading
	 *
	 * @since 1.6.2
	 * @access public
	 */
	public function finalize_default_vary( $uid = false ) {
		// Must check this to bypass vary generation for guests
		// Must check this to avoid Guest page's CSS/JS/CCSS/UCSS get non-guest vary filename
		if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST ) {
			return false;
		}

		$vary = array();

		if ( $this->conf( Base::O_GUEST ) ) {
			$vary[ 'guest_mode' ] = 1;
		}

		if ( ! $uid ) {
			$uid = get_current_user_id();
		}
		else {
			Debug2::debug( '[Vary] uid: ' . $uid );
		}

		// get user's group id
		$role = Router::get_role( $uid );

		if ( $uid > 0 && $role ) {
			$vary[ 'logged-in' ] = 1;

			// parse role group from settings
			if ( $role_group = $this->in_vary_group( $role ) ) {
				$vary[ 'role' ] = $role_group;
			}

			// Get admin bar set
			// see @_get_admin_bar_pref()
			$pref = get_user_option( 'show_admin_bar_front', $uid );
			Debug2::debug2( '[Vary] show_admin_bar_front: ' . $pref );
			$admin_bar = $pref === false || $pref === 'true';

			if ( $admin_bar ) {
				$vary[ 'admin_bar' ] = 1;
				Debug2::debug2( '[Vary] admin bar : true' );
			}

		}
		else {
			// Guest user
			Debug2::debug( '[Vary] role id: failed, guest' );

		}

		/**
		 * Add filter
		 * @since 1.6 Added for Role Excludes for optimization cls
		 * @since 1.6.2 Hooked to webp (checked in v4, no webp anymore)
		 * @since 3.0 Used by 3rd hooks too
		 */
		$vary = apply_filters( 'litespeed_vary', $vary );

		if ( ! $vary ) {
			return false;
		}

		ksort( $vary );
		$res = array();
		foreach ( $vary as $key => $val ) {
			$res[] = $key . ':' . $val;
		}

		$res = implode( ';', $res );
		if ( defined( 'LSCWP_LOG' ) ) {
			return $res;
		}
		// Encrypt in production
		return md5( $this->conf( Base::HASH ) . $res );
	}

	/**
	 * Get the hash of all vary related values
	 *
	 * @since  4.0
	 */
	public function finalize_full_varies() {
		$vary = $this->_finalize_curr_vary_cookies( true );
		$vary .= $this->finalize_default_vary( get_current_user_id() );
		$vary .= $this->get_env_vary();
		return $vary;
	}

	/**
	 * Get request environment Vary
	 *
	 * @since  4.0
	 */
	public function get_env_vary() {
		$env_vary = isset( $_SERVER[ 'LSCACHE_VARY_VALUE' ] ) ? $_SERVER[ 'LSCACHE_VARY_VALUE' ] : false;
		if ( ! $env_vary ) {
			$env_vary = isset( $_SERVER[ 'HTTP_X_LSCACHE_VARY_VALUE' ] ) ? $_SERVER[ 'HTTP_X_LSCACHE_VARY_VALUE' ] : false;
		}
		return $env_vary;
	}

	/**
	 * Append user status with commenter
	 *
	 * This is ONLY used when submit a comment
	 *
	 * @since 1.1.6
	 * @access public
	 */
	public function append_commenter() {
		$this->add_commenter( true );
	}

	/**
	 * Correct user status with commenter
	 *
	 * @since 1.1.3
	 * @access private
	 * @param  boolean $from_redirect If the request is from redirect page or not
	 */
	private function add_commenter( $from_redirect = false ) {
		// If the cookie is lost somehow, set it
		if ( self::has_vary() !== 'commenter' ) {
			Debug2::debug( '[Vary] Add commenter' );
			// $_COOKIE[ self::$_vary_name ] = 'commenter'; // not needed

			// save it
			// only set commenter status for current domain path
			$this->_cookie( 'commenter', time() + apply_filters( 'comment_cookie_lifetime', 30000000 ), self::_relative_path( $from_redirect ) );
			// Control::set_nocache( 'adding commenter status' );
		}
	}

	/**
	 * Remove user commenter status
	 *
	 * @since 1.1.3
	 * @access private
	 */
	private function remove_commenter() {
		if ( self::has_vary() === 'commenter' ) {
			Debug2::debug( '[Vary] Remove commenter' );
			// remove logged in status from global var
			// unset( $_COOKIE[ self::$_vary_name ] ); // not needed

			// save it
			$this->_cookie( false, false, self::_relative_path() );
			// Control::set_nocache( 'removing commenter status' );
		}
	}

	/**
	 * Generate relative path for cookie
	 *
	 * @since 1.1.3
	 * @access private
	 * @param  boolean $from_redirect If the request is from redirect page or not
	 */
	private static function _relative_path( $from_redirect = false ) {
		$path = false;
		$tag = $from_redirect ? 'HTTP_REFERER' : 'SCRIPT_URL';
		if ( ! empty( $_SERVER[ $tag ] ) ) {
			$path = parse_url( $_SERVER[ $tag ] );
			$path = ! empty( $path[ 'path' ] ) ? $path[ 'path' ] : false;
			Debug2::debug( '[Vary] Cookie Vary path: ' . $path );
		}
		return $path;
	}

	/**
	 * Builds the vary header.
	 *
	 * NOTE: Non caccheable page can still set vary ( for logged in process )
	 *
	 * Currently, this only checks post passwords and 3rd party.
	 *
	 * @since 1.0.13
	 * @access public
	 * @global $post
	 * @return mixed false if the user has the postpass cookie. Empty string if the post is not password protected. Vary header otherwise.
	 */
	public function finalize() {
		// Finalize default vary
		if ( ! defined( 'LITESPEED_GUEST' ) || ! LITESPEED_GUEST ) {
			$this->_update_default_vary();
		}

		$tp_cookies = $this->_finalize_curr_vary_cookies();

		if ( ! $tp_cookies ) {
			Debug2::debug2( '[Vary] no custimzed vary' );
			return;
		}

		return self::X_HEADER . ': ' . implode( ',', $tp_cookies );
	}

	/**
	 * Gets vary cookies or their values unique hash that are already added for the current page.
	 *
	 * @since 1.0.13
	 * @access private
	 * @return array List of all vary cookies currently added.
	 */
	private function _finalize_curr_vary_cookies( $values_json = false ) {
		global $post;

		$cookies = array(); // No need to append default vary cookie name

		if ( ! empty( $post->post_password ) ) {
			$postpass_key = 'wp-postpass_' . COOKIEHASH;
			if ( $this->_get_cookie_val( $postpass_key ) ) {
				Debug2::debug( '[Vary] finalize bypassed due to password protected vary ' );
				// If user has password cookie, do not cache & ignore existing vary cookies
				Control::set_nocache( 'password protected vary' );
				return false;
			}

			$cookies[] = $values_json ? $this->_get_cookie_val( $postpass_key ) : $postpass_key;
		}

		$cookies = apply_filters( 'litespeed_vary_curr_cookies', $cookies );
		if ( $cookies ) {
			$cookies = array_filter( array_unique( $cookies ) );
			Debug2::debug( '[Vary] vary cookies changed by filter litespeed_vary_curr_cookies', $cookies );
		}

		if ( ! $cookies ) {
			return false;
		}
		// Format cookie name data or value data
		sort( $cookies ); // This is to maintain the cookie val orders for $values_json=true case.
		foreach ( $cookies as $k => $v ) {
			$cookies[ $k ] = $values_json ? $this->_get_cookie_val( $v ) : 'cookie=' . $v;
		}

		return $values_json ? json_encode( $cookies ) : $cookies;
	}

	/**
	 * Get one vary cookie value
	 *
	 * @since  4.0
	 */
	private function _get_cookie_val( $key ) {
		if ( ! empty( $_COOKIE[ $key ] ) ) {
			return $_COOKIE[ $key ];
		}

		return false;
	}

	/**
	 * Set the vary cookie.
	 *
	 * If vary cookie changed, must set non cacheable.
	 *
	 * @since 1.0.4
	 * @access private
	 * @param integer $val The value to update.
	 * @param integer $expire Expire time.
	 * @param boolean $path False if use wp root path as cookie path
	 */
	private function _cookie($val = false, $expire = false, $path = false) {
		if ( ! $val ) {
			$expire = 1;
		}

		/**
		 * Add HTTPS bypass in case clients use both HTTP and HTTPS version of site
		 * @since 1.7
		 */
		$is_ssl = $this->conf( Base::O_UTIL_NO_HTTPS_VARY ) ? false : is_ssl();

		setcookie( self::$_vary_name, $val, $expire, $path?: COOKIEPATH, COOKIE_DOMAIN, $is_ssl, true );
	}

}
<?php
/**
 * The class to store and manage litespeed db data.
 *
 * @since      	1.3.1
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Data extends Root {
	private $_db_updater = array(
		'3.5.0.3'	=> array(
			'litespeed_update_3_5',
		),
		'4.0'	=> array(
			'litespeed_update_4',
		),
		'4.1'	=> array(
			'litespeed_update_4_1',
		),
		'4.3'	=> array(
			'litespeed_update_4_3',
		),
		'4.4.4-b1'	=> array(
			'litespeed_update_4_4_4',
		),
	);

	private $_db_site_updater = array(
		// Example
		// '2.0'	=> array(
		// 	'litespeed_update_site_2_0',
		// ),
	);

	private $_url_file_types = array(
		'css' => 1,
		'js' => 2,
		'ccss' => 3,
		'ucss' => 4,
	);

	const TB_IMG_OPTM = 'litespeed_img_optm';
	const TB_IMG_OPTMING = 'litespeed_img_optming'; // working table
	const TB_AVATAR = 'litespeed_avatar';
	const TB_CRAWLER = 'litespeed_crawler';
	const TB_CRAWLER_BLACKLIST = 'litespeed_crawler_blacklist';
	const TB_URL = 'litespeed_url';
	const TB_URL_FILE = 'litespeed_url_file';

	/**
	 * Init
	 *
	 * @since  1.3.1
	 */
	public function __construct() {
	}

	/**
	 * Correct table existance
	 *
	 * Call when activate -> upadte_confs()
	 * Call when upadte_confs()
	 *
	 * @since  3.0
	 * @access public
	 */
	public function correct_tb_existance() {
		// Gravatar
		if ( $this->conf( Base::O_DISCUSS_AVATAR_CACHE ) ) {
			$this->tb_create( 'avatar' );
		}

		// Crawler
		if ( $this->conf( Base::O_CRAWLER ) ) {
			$this->tb_create( 'crawler' );
			$this->tb_create( 'crawler_blacklist' );
		}

		// URL mapping
		$this->tb_create( 'url' );
		$this->tb_create( 'url_file' );

		// Image optm is a bit different. Only trigger creation when sending requests. Drop when destroying.
	}

	/**
	 * Upgrade conf to latest format version from previous versions
	 *
	 * NOTE: Only for v3.0+
	 *
	 * @since 3.0
	 * @access public
	 */
	public function conf_upgrade( $ver ) {
		// Skip count check if `Use Primary Site Configurations` is on
		// Deprecated since v3.0 as network primary site didn't override the subsites conf yet
		// if ( ! is_main_site() && ! empty ( $this->_site_options[ self::NETWORK_O_USE_PRIMARY ] ) ) {
		// 	return;
		// }

		if ( $this->_get_upgrade_lock() ) {
			return;
		}

		$this->_set_upgrade_lock( true );

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		// Init log manually
		if ( $this->conf( Base::O_DEBUG ) ) {
			$this->cls( 'Debug2' )->init();
		}

		foreach ( $this->_db_updater as $k => $v ) {
			if ( version_compare( $ver, $k, '<' ) ) {
				// run each callback
				foreach ( $v as $v2 ) {
					Debug2::debug( "[Data] Updating [ori_v] $ver \t[to] $k \t[func] $v2" );
					call_user_func( $v2 );
				}
			}
		}

		// Reload options
		$this->cls( 'Conf' )->load_options();

		$this->correct_tb_existance();

		// Update related files
		$this->cls( 'Activation' )->update_files();

		// Update version to latest
		Conf::delete_option( Base::_VER );
		Conf::add_option( Base::_VER, Core::VER );

		Debug2::debug( '[Data] Updated version to ' . Core::VER );

		$this->_set_upgrade_lock( false );

		! defined( 'LSWCP_EMPTYCACHE') && define( 'LSWCP_EMPTYCACHE', true );// clear all sites caches
		Purge::purge_all();

		Cloud::version_check( 'upgrade' );
	}

	/**
	 * Upgrade site conf to latest format version from previous versions
	 *
	 * NOTE: Only for v3.0+
	 *
	 * @since 3.0
	 * @access public
	 */
	public function conf_site_upgrade( $ver ) {
		if ( $this->_get_upgrade_lock() ) {
			return;
		}

		$this->_set_upgrade_lock( true );

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		foreach ( $this->_db_site_updater as $k => $v ) {
			if ( version_compare( $ver, $k, '<' ) ) {
				// run each callback
				foreach ( $v as $v2 ) {
					Debug2::debug( "[Data] Updating site [ori_v] $ver \t[to] $k \t[func] $v2" );
					call_user_func( $v2 );
				}
			}
		}

		// Reload options
		$this->cls( 'Conf' )->load_site_options();

		Conf::delete_site_option( Base::_VER );
		Conf::add_site_option( Base::_VER, Core::VER );

		Debug2::debug( '[Data] Updated site_version to ' . Core::VER );

		$this->_set_upgrade_lock( false );

		! defined( 'LSWCP_EMPTYCACHE') && define( 'LSWCP_EMPTYCACHE', true );// clear all sites caches
		Purge::purge_all();
	}

	/**
	 * Check if upgrade script is running or not
	 *
	 * @since 3.0.1
	 */
	private function _get_upgrade_lock() {
		$is_upgrading = get_option( 'litespeed.data.upgrading' );
		if ( ! $is_upgrading ) {
			$this->_set_upgrade_lock( false ); // set option value to existed to avoid repeated db query next time
		}
		if ( $is_upgrading && time() - $is_upgrading < 3600 ) {
			return $is_upgrading;
		}

		return false;
	}

	/**
	 * Show the upgrading banner if upgrade script is running
	 *
	 * @since 3.0.1
	 */
	public function check_upgrading_msg() {
		$is_upgrading = $this->_get_upgrade_lock();
		if ( ! $is_upgrading ) {
			return;
		}

		Admin_Display::info( sprintf( __( 'The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.', 'litespeed-cache' ), '<code>' . Utility::readable_time( $is_upgrading ) . '</code>' ) . ' [LiteSpeed]', true );
	}

	/**
	 * Set lock for upgrade process
	 *
	 * @since 3.0.1
	 */
	private function _set_upgrade_lock( $lock ) {
		if ( ! $lock ) {
			update_option( 'litespeed.data.upgrading', -1 );
		}
		else {
			update_option( 'litespeed.data.upgrading', time() );
		}
	}

	/**
	 * Upgrade the conf to v3.0 from previous v3.0- data
	 *
	 * NOTE: Only for v3.0-
	 *
	 * @since 3.0
	 * @access public
	 */
	public function try_upgrade_conf_3_0() {
		$previous_options = get_option( 'litespeed-cache-conf' );
		if ( ! $previous_options ) {
			Cloud::version_check( 'new' );
			return;
		}

		$ver = $previous_options[ 'version' ];

		! defined( 'LSCWP_CUR_V' ) && define( 'LSCWP_CUR_V', $ver );

		// Init log manually
		if ( $this->conf( Base::O_DEBUG ) ) {
			$this->cls( 'Debug2' )->init();
		}
		Debug2::debug( '[Data] Upgrading previous settings [from] ' . $ver . ' [to] v3.0' );

		if ( $this->_get_upgrade_lock() ) {
			return;
		}

		$this->_set_upgrade_lock( true );

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		// Here inside will update the version to v3.0
		litespeed_update_3_0( $ver );

		$this->_set_upgrade_lock( false );

		Debug2::debug( '[Data] Upgraded to v3.0' );

		// Upgrade from 3.0 to latest version
		$ver = '3.0';
		if ( Core::VER != $ver ) {
			$this->conf_upgrade( $ver );
		}
		else {
			// Reload options
			$this->cls( 'Conf' )->load_options();

			$this->correct_tb_existance();

			! defined( 'LSWCP_EMPTYCACHE') && define( 'LSWCP_EMPTYCACHE', true );// clear all sites caches
			Purge::purge_all();

			Cloud::version_check( 'upgrade' );
		}
	}

	/**
	 * Get the table name
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb( $tb ) {
		global $wpdb;

		switch ( $tb ) {
			case 'img_optm':
				return $wpdb->prefix . self::TB_IMG_OPTM;
				break;

			case 'img_optming':
				return $wpdb->prefix . self::TB_IMG_OPTMING;
				break;

			case 'avatar':
				return $wpdb->prefix . self::TB_AVATAR;
				break;

			case 'crawler':
				return $wpdb->prefix . self::TB_CRAWLER;
				break;

			case 'crawler_blacklist':
				return $wpdb->prefix . self::TB_CRAWLER_BLACKLIST;
				break;

			case 'url':
				return $wpdb->prefix . self::TB_URL;
				break;

			case 'url_file':
				return $wpdb->prefix . self::TB_URL_FILE;
				break;

			default:
				break;
		}

	}

	/**
	 * Check if one table exists or not
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_exist( $tb ) {
		global $wpdb;
		return $wpdb->get_var( "SHOW TABLES LIKE '" . $this->tb( $tb ) . "'" );
	}

	/**
	 * Get data structure of one table
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _tb_structure( $tb ) {
		return File::read( LSCWP_DIR . 'src/data_structure/' . $tb . '.sql' );
	}

	/**
	 * Create img optm table and sync data from wp_postmeta
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_create( $tb ) {
		global $wpdb;

		Debug2::debug2( '[Data] Checking table ' . $tb );

		// Check if table exists first
		if ( $this->tb_exist( $tb ) ) {
			Debug2::debug2( '[Data] Existed' );
			return;
		}

		Debug2::debug( '[Data] Creating ' . $tb );

		$sql = sprintf(
			'CREATE TABLE IF NOT EXISTS `%1$s` (' . $this->_tb_structure( $tb ) . ') %2$s;',
			$this->tb( $tb ),
			$wpdb->get_charset_collate() // 'DEFAULT CHARSET=utf8'
		);

		$res = $wpdb->query( $sql );
		if ( $res !== true ) {
			Debug2::debug( '[Data] Warning! Creating table failed!', $sql );
			Admin_Display::error( Error::msg( 'failed_tb_creation', array( '<code>' . $tb . '</code>', '<code>' . $sql . '</code>' ) ) );
		}
	}

	/**
	 * Drop table
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_del( $tb ) {
		global $wpdb;

		if ( ! $this->tb_exist( $tb ) ) {
			return;
		}

		Debug2::debug( '[Data] Deleting table ' . $tb );

		$q = 'DROP TABLE IF EXISTS ' . $this->tb( $tb );
		$wpdb->query( $q );
	}

	/**
	 * Drop generated tables
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tables_del() {
		$this->tb_del( 'avatar' );
		$this->tb_del( 'crawler' );
		$this->tb_del( 'crawler_blacklist' );
		$this->tb_del( 'url' );
		$this->tb_del( 'url_file' );

		// Deleting img_optm only can be done when destroy all optm images
	}

	/**
	 * Keep table but clear all data
	 *
	 * @since  4.0
	 */
	public function table_truncate( $tb ) {
		global $wpdb;
		$q = 'TRUNCATE TABLE ' . $this->tb( $tb );
		$wpdb->query( $q );
	}

	/**
	 * Clean certain type of url_file
	 *
	 * @since  4.0
	 */
	public function url_file_clean( $file_type ) {
		global $wpdb;
		$type = $this->_url_file_types[ $file_type ];
		$q = 'DELETE FROM ' . $this->tb( 'url_file' ) . ' WHERE `type` = %d';
		$wpdb->query( $wpdb->prepare( $q, $type ) );
	}

	/**
	 * Generate filename based on URL, if content md5 existed, reuse existing file.
	 * @since  4.0
	 */
	public function save_url( $request_url, $vary, $file_type, $filecon_md5, $path ) {
		global $wpdb;

		if ( strlen( $vary ) > 32 ) {
			$vary = md5( $vary );
		}

		$type = $this->_url_file_types[ $file_type ];

		$tb_url = $this->tb( 'url' );
		$tb_url_file = $this->tb( 'url_file' );
		$q = "SELECT * FROM `$tb_url` WHERE url=%s";
		$url_row = $wpdb->get_row( $wpdb->prepare( $q, $request_url ), ARRAY_A );
		if ( ! $url_row ) {
			$q = "INSERT INTO `$tb_url` SET url=%s";
			$wpdb->query( $wpdb->prepare( $q, $request_url ) );
			$url_id = $wpdb->insert_id;
		}
		else {
			$url_id = $url_row[ 'id' ];
		}

		$q = "SELECT * FROM `$tb_url_file` WHERE url_id=%d AND vary=%s AND type=%d AND expired=0";
		$file_row = $wpdb->get_row( $wpdb->prepare( $q, array( $url_id, $vary, $type ) ), ARRAY_A );

		// Check if has previous file or not
		if ( $file_row && $file_row[ 'filename' ] == $filecon_md5 ) {
			return;
		}

		// If the new $filecon_md5 is marked as expired by previous records, clear those records
		$q = "DELETE FROM `$tb_url_file` WHERE filename = %s AND expired > 0";
		$wpdb->query( $wpdb->prepare( $q, $filecon_md5 ) );

		// Check if there is any other record used the same filename or not
		$q = "SELECT id FROM `$tb_url_file` WHERE filename = %s AND expired = 0 AND id != %d LIMIT 1";
		if ( $file_row && $wpdb->get_var( $wpdb->prepare( $q, array( $file_row[ 'filename' ], $file_row[ 'id' ] ) ) ) ) {
			$q = "UPDATE `$tb_url_file` SET filename=%s WHERE id=%d";
			$wpdb->query( $wpdb->prepare( $q, array( $filecon_md5, $file_row[ 'id' ] ) ) );
			return;
		}

		// New record needed
		$q = "INSERT INTO `$tb_url_file` SET url_id=%d, vary=%s, filename=%s, type=%d, expired = 0";
		$wpdb->query( $wpdb->prepare( $q, array( $url_id, $vary, $filecon_md5, $type ) ) );

		// Mark existing rows as expired
		if ( $file_row ) {
			$q = "UPDATE `$tb_url_file` SET expired=%d WHERE id=%d";
			$expired = time() + 86400 * apply_filters( 'litespeed_url_file_expired_days', 20 );
			$wpdb->query( $wpdb->prepare( $q, array( $expired, $file_row[ 'id' ] ) ) );

			// Also check if has other files expired already to be deleted
			$q = "SELECT * FROM `$tb_url_file` WHERE url_id = %d AND expired BETWEEN 1 AND %d";
			$q = $wpdb->prepare( $q, array( $url_id, time() ) );
			$list = $wpdb->get_results( $q, ARRAY_A );
			if ( $list ) {
				foreach ( $list as $v ) {
					$file_to_del = $path . '/' . $v[ 'filename' ] . '.' . ( $file_type == 'js' ? 'js' : 'css' );
					if ( file_exists( $file_to_del ) ) {
						// Safe to delete
						Debug2::debug( '[Data] Delete expired unused file: ' . $file_to_del );

						// Clear related lscache first to avoid cache copy of same URL w/ diff QS
						// Purge::add( Tag::TYPE_MIN . '.' . $file_row[ 'filename' ] . '.' . $file_type );

						unlink( $file_to_del );
					}
				}
				$q = "DELETE FROM `$tb_url_file` WHERE url_id = %d AND expired BETWEEN 1 AND %d";
				$wpdb->query( $wpdb->prepare( $q, array( $url_id, time() ) ) );
			}
		}

		// Purge this URL to avoid cache copy of same URL w/ diff QS
		// $this->cls( 'Purge' )->purge_url( Utility::make_relative( $request_url ) ?: '/', true, true );
	}

	/**
	 * Load CCSS related file
	 * @since  4.0
	 */
	public function load_url_file( $request_url, $vary, $file_type ) {
		global $wpdb;

		if ( strlen( $vary ) > 32 ) {
			$vary = md5( $vary );
		}

		$type = $this->_url_file_types[ $file_type ];

		$tb_url = $this->tb( 'url' );
		$q = "SELECT * FROM `$tb_url` WHERE url=%s";
		$url_row = $wpdb->get_row( $wpdb->prepare( $q, $request_url ), ARRAY_A );
		if ( ! $url_row ) {
			return false;
		}

		$url_id = $url_row[ 'id' ];

		$tb_url_file = $this->tb( 'url_file' );
		$q = "SELECT * FROM `$tb_url_file` WHERE url_id=%d AND vary=%s AND type=%d AND expired=0";
		$file_row = $wpdb->get_row( $wpdb->prepare( $q, array( $url_id, $vary, $type ) ), ARRAY_A );
		if ( ! $file_row ) {
			return false;
		}

		return $file_row[ 'filename' ];
	}

	/**
	 * Mark all entries of one URL to expired
	 * @since 4.5
	 */
	public function mark_as_expired( $request_url ) {
		global $wpdb;

		Debug2::debug( '[Data] Try to mark as expired: ' . $request_url );
		$tb_url = $this->tb( 'url' );
		$q = "SELECT * FROM `$tb_url` WHERE url=%s";
		$url_row = $wpdb->get_row( $wpdb->prepare( $q, $request_url ), ARRAY_A );
		if ( ! $url_row ) {
			return;
		}

		Debug2::debug( '[Data] Mark url_id=' . $url_row[ 'id' ] . ' as expired' );

		$tb_url_file = $this->tb( 'url_file' );
		$q = "UPDATE `$tb_url_file` SET expired=%d WHERE url_id=%d AND type=4 AND expired=0";
		$expired = time() + 86400 * apply_filters( 'litespeed_url_file_expired_days', 20 );
		$wpdb->query( $wpdb->prepare( $q, array( $expired, $url_row[ 'id' ] ) ) );
	}

	/**
	 * Get list from `data/css_excludes.txt`
	 *
	 * @since  3.6
	 */
	public function load_css_exc( $list ) {
		$data = $this->_load_per_line( 'css_excludes.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Get list from `data/ucss_whitelist.txt`
	 *
	 * @since  4.0
	 */
	public function load_ucss_whitelist( $list ) {
		$data = $this->_load_per_line( 'ucss_whitelist.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Get list from `data/js_excludes.txt`
	 *
	 * @since  3.5
	 */
	public function load_js_exc( $list ) {
		$data = $this->_load_per_line( 'js_excludes.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Get list from `data/js_defer_excludes.txt`
	 *
	 * @since  3.6
	 */
	public function load_js_defer_exc( $list ) {
		$data = $this->_load_per_line( 'js_defer_excludes.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Get list from `data/esi.nonces.txt`
	 *
	 * @since  3.5
	 */
	public function load_esi_nonces( $list ) {
		$data = $this->_load_per_line( 'esi.nonces.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Load file per line
	 *
	 * Support two kinds of comments:
	 * 		1. `# this is comment`
	 * 		2. `##this is comment`
	 *
	 * @since  3.5
	 */
	private function _load_per_line( $file ) {
		$data = File::read( LSCWP_DIR . 'data/' . $file );
		$data = explode( PHP_EOL, $data );
		$list = array();
		foreach ( $data as $v ) {
			// Drop two kinds of comments
			if ( strpos( $v, '##' ) !== false ) {
				$v = trim( substr( $v, 0, strpos( $v, '##' ) ) );
			}
			if ( strpos( $v, '# ' ) !== false ) {
				$v = trim( substr( $v, 0, strpos( $v, '# ' ) ) );
			}

			if ( ! $v ) {
				continue;
			}

			$list[] = $v;
		}

		return $list;
	}

}<?php
/**
 * The admin-panel specific functionality of the plugin.
 *
 *
 * @since      1.0.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/admin
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Admin_Display extends Base {
	const NOTICE_BLUE = 'notice notice-info';
	const NOTICE_GREEN = 'notice notice-success';
	const NOTICE_RED = 'notice notice-error';
	const NOTICE_YELLOW = 'notice notice-warning';
	const DB_MSG = 'messages';
	const DB_MSG_PIN = 'msg_pin';

	const PURGEBY_CAT = '0';
	const PURGEBY_PID = '1';
	const PURGEBY_TAG = '2';
	const PURGEBY_URL = '3';

	const PURGEBYOPT_SELECT = 'purgeby';
	const PURGEBYOPT_LIST = 'purgebylist';

	const DB_DISMISS_MSG = 'dismiss';
	const RULECONFLICT_ON = 'ExpiresDefault_1';
	const RULECONFLICT_DISMISSED = 'ExpiresDefault_0';

	protected $messages = array();
	protected $default_settings = array();
	protected $_is_network_admin = false;
	protected $_is_multisite = false;

	private $_btn_i = 0;

	/**
	 * Initialize the class and set its properties.
	 *
	 * @since    1.0.7
	 */
	public function __construct() {
		// main css
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ) );
		// Main js
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );

		$this->_is_network_admin = is_network_admin();
		$this->_is_multisite = is_multisite();

		// Quick access menu
		if ( is_multisite() && $this->_is_network_admin ) {
			$manage = 'manage_network_options';
		}
		else {
			$manage = 'manage_options';
		}
		if ( current_user_can( $manage ) ) {
			if ( ! defined( 'LITESPEED_DISABLE_ALL' ) ) {
				add_action( 'wp_before_admin_bar_render', array( GUI::cls(), 'backend_shortcut' ) );
			}

			// `admin_notices` is after `admin_enqueue_scripts`
			// @see wp-admin/admin-header.php
			add_action( $this->_is_network_admin ? 'network_admin_notices' : 'admin_notices', array( $this, 'display_messages' ) );
		}

		/**
		 * In case this is called outside the admin page
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
			require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
		}

		// add menus ( Also check for mu-plugins)
		if ( $this->_is_network_admin && ( is_plugin_active_for_network( LSCWP_BASENAME ) || defined( 'LSCWP_MU_PLUGIN' ) ) ) {
			add_action( 'network_admin_menu', array( $this, 'register_admin_menu' ) );
		}
		else {
			add_action( 'admin_menu', array( $this, 'register_admin_menu' ) );
		}
	}

	/**
	 * Show the title of one line
	 *
	 * @since  3.0
	 * @access public
	 */
	public function title( $id ) {
		echo Lang::title( $id );
	}

	/**
	 * Register the admin menu display.
	 *
	 * @since    1.0.0
	 * @access public
	 */
	public function register_admin_menu() {
		$capability = $this->_is_network_admin ? 'manage_network_options' : 'manage_options';
		if ( current_user_can( $capability ) ) {

			// root menu
			add_menu_page( 'LiteSpeed Cache', 'LiteSpeed Cache', 'manage_options', 'litespeed' );

			// sub menus
			$this->_add_submenu( __( 'Dashboard', 'litespeed-cache' ), 'litespeed', 'show_menu_dash' );

			$this->_add_submenu( __( 'General', 'litespeed-cache' ), 'litespeed-general', 'show_menu_general' );

			$this->_add_submenu( __( 'Cache', 'litespeed-cache' ), 'litespeed-cache', 'show_menu_cache' );

			! $this->_is_network_admin && $this->_add_submenu( __( 'CDN', 'litespeed-cache' ), 'litespeed-cdn', 'show_menu_cdn' );

			$this->_add_submenu( __( 'Image Optimization', 'litespeed-cache' ), 'litespeed-img_optm', 'show_img_optm' );

			! $this->_is_network_admin && $this->_add_submenu( __( 'Page Optimization', 'litespeed-cache' ), 'litespeed-page_optm', 'show_page_optm' );

			$this->_add_submenu( __( 'Database', 'litespeed-cache' ), 'litespeed-db_optm', 'show_db_optm' );

			! $this->_is_network_admin && $this->_add_submenu( __( 'Crawler', 'litespeed-cache' ), 'litespeed-crawler', 'show_crawler' );

			$this->_add_submenu( __( 'Toolbox', 'litespeed-cache' ), 'litespeed-toolbox', 'show_toolbox' );

			// sub menus under options
			add_options_page('LiteSpeed Cache', 'LiteSpeed Cache', $capability, 'litespeed-cache-options', array($this, 'show_menu_cache'));
		}
	}

	/**
	 * Helper function to set up a submenu page.
	 *
	 * @since 1.0.4
	 * @access private
	 * @param string $menu_title The title that appears on the menu.
	 * @param string $menu_slug The slug of the page.
	 * @param string $callback The callback to call if selected.
	 */
	private function _add_submenu( $menu_title, $menu_slug, $callback ) {
		add_submenu_page( 'litespeed', $menu_title, $menu_title, 'manage_options', $menu_slug, array( $this, $callback ) );
	}

	/**
	 * Register the stylesheets for the admin area.
	 *
	 * @since    1.0.14
	 * @access public
	 */
	public function enqueue_style() {
		wp_enqueue_style(Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/css/litespeed.css', array(), Core::VER, 'all');
	}

	/**
	 * Register the JavaScript for the admin area.
	 *
	 * @since    1.0.0
	 * @access public
	 */
	public function enqueue_scripts() {
		wp_register_script( Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/js/litespeed-cache-admin.js', array(), Core::VER, false );

		$localize_data = array();
		if ( GUI::has_whm_msg() ) {
			$ajax_url_dismiss_whm = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_WHM, true );
			$localize_data[ 'ajax_url_dismiss_whm' ] = $ajax_url_dismiss_whm;
		}

		if ( GUI::has_msg_ruleconflict() ) {
			$ajax_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_EXPIRESDEFAULT, true );
			$localize_data[ 'ajax_url_dismiss_ruleconflict' ] = $ajax_url;
		}

		$promo_tag = GUI::cls()->show_promo( true );
		if ( $promo_tag ) {
			$ajax_url_promo = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, true, null, array( 'promo_tag' => $promo_tag ) );
			$localize_data[ 'ajax_url_promo' ] = $ajax_url_promo;
		}

		// Injection to LiteSpeed pages
		global $pagenow;
		if ( $pagenow == 'admin.php' && ! empty( $_GET[ 'page' ] ) && ( strpos( $_GET[ 'page' ], 'litespeed-' ) === 0 || $_GET[ 'page' ] == 'litespeed' ) ) {
			// Admin footer
			add_filter('admin_footer_text', array($this, 'admin_footer_text'), 1);

			if ( $_GET[ 'page' ] == 'litespeed-crawler' || $_GET[ 'page' ] == 'litespeed-cdn' ) {
				// Babel JS type correction
				add_filter( 'script_loader_tag', array( $this, 'bable_type' ), 10, 3 );

				wp_enqueue_script( Core::PLUGIN_NAME . '-lib-react', LSWCP_PLUGIN_URL . 'assets/js/react.min.js', array(), Core::VER, false );
				wp_enqueue_script( Core::PLUGIN_NAME . '-lib-babel', LSWCP_PLUGIN_URL . 'assets/js/babel.min.js', array(), Core::VER, false );
			}

			// Crawler Cookie Simulation
			if ( $_GET[ 'page' ] == 'litespeed-crawler' ) {
				wp_enqueue_script( Core::PLUGIN_NAME . '-crawler', LSWCP_PLUGIN_URL . 'assets/js/component.crawler.js', array(), Core::VER, false );
				$localize_data[ 'lang' ] = array();
				$localize_data[ 'lang' ][ 'cookie_name' ] = __( 'Cookie Name', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'cookie_value' ] = __( 'Cookie Values', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'one_per_line' ] = Doc::one_per_line( true );
				$localize_data[ 'lang' ][ 'remove_cookie_simulation' ] = __( 'Remove cookie simulation', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'add_cookie_simulation_row' ] = __( 'Add new cookie to simulate', 'litespeed-cache' );
				empty( $localize_data[ 'ids' ] ) && $localize_data[ 'ids' ] = array();
				$localize_data[ 'ids' ][ 'crawler_cookies' ] = self::O_CRAWLER_COOKIES;
			}

			// CDN mapping
			if ( $_GET[ 'page' ] == 'litespeed-cdn' ) {
				$home_url = home_url( '/' );
				$parsed = parse_url( $home_url );
				$home_url = str_replace( $parsed[ 'scheme' ] . ':', '', $home_url );
				$cdn_url = 'https://cdn.' . substr( $home_url, 2 );

				wp_enqueue_script( Core::PLUGIN_NAME . '-cdn', LSWCP_PLUGIN_URL . 'assets/js/component.cdn.js', array(), Core::VER, false );
				$localize_data[ 'lang' ] = array();
				$localize_data[ 'lang' ][ 'cdn_mapping_url' ] = Lang::title( self::CDN_MAPPING_URL );
				$localize_data[ 'lang' ][ 'cdn_mapping_inc_img' ] = Lang::title( self::CDN_MAPPING_INC_IMG );
				$localize_data[ 'lang' ][ 'cdn_mapping_inc_css' ] = Lang::title( self::CDN_MAPPING_INC_CSS );
				$localize_data[ 'lang' ][ 'cdn_mapping_inc_js' ] = Lang::title( self::CDN_MAPPING_INC_JS );
				$localize_data[ 'lang' ][ 'cdn_mapping_filetype' ] = Lang::title( self::CDN_MAPPING_FILETYPE );
				$localize_data[ 'lang' ][ 'cdn_mapping_url_desc' ] = sprintf( __( 'CDN URL to be used. For example, %s', 'litespeed-cache' ), '<code>' . $cdn_url . '</code>' );
				$localize_data[ 'lang' ][ 'one_per_line' ] = Doc::one_per_line( true );
				$localize_data[ 'lang' ][ 'cdn_mapping_remove' ] = __( 'Remove CDN URL', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'add_cdn_mapping_row' ] = __( 'Add new CDN URL', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'on' ] = __( 'ON', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'off' ] = __( 'OFF', 'litespeed-cache' );
				empty( $localize_data[ 'ids' ] ) && $localize_data[ 'ids' ] = array();
				$localize_data[ 'ids' ][ 'cdn_mapping' ] = self::O_CDN_MAPPING;
			}

			// If on Server IP setting page, append getIP link
			if ( $_GET[ 'page' ] == 'litespeed-general' ) {
				$localize_data[ 'ajax_url_getIP' ] = function_exists( 'get_rest_url' ) ? get_rest_url( null, 'litespeed/v1/tool/check_ip' ) : '/';
				$localize_data[ 'nonce' ] = wp_create_nonce( 'wp_rest' );
			}

			// Activate or deactivate a specific crawler
			if ( $_GET[ 'page' ] == 'litespeed-crawler' ) {
				$localize_data[ 'ajax_url_crawler_switch' ] = function_exists( 'get_rest_url' ) ? get_rest_url( null, 'litespeed/v1/toggle_crawler_state' ) : '/';
				$localize_data[ 'nonce' ] = wp_create_nonce( 'wp_rest' );
			}
		}

		if ( $localize_data ) {
			wp_localize_script( Core::PLUGIN_NAME, 'litespeed_data', $localize_data );
		}

		wp_enqueue_script( Core::PLUGIN_NAME );
	}

	/**
	 * Babel type for crawler
	 *
	 * @since  3.6
	 */
	public function bable_type( $tag, $handle, $src ) {
		if ( $handle != Core::PLUGIN_NAME . '-crawler' && $handle != Core::PLUGIN_NAME . '-cdn' ) {
			return $tag;
		}

		return '<script src="' . $src . '" type="text/babel"></script>';
	}

	/**
	 * Callback that adds LiteSpeed Cache's action links.
	 *
	 * @since 1.0.0
	 * @access public
	 * @param array $links Previously added links from other plugins.
	 * @return array Links array with the litespeed cache one appended.
	 */
	public function add_plugin_links($links) {
		// $links[] = '<a href="' . admin_url('options-general.php?page=litespeed-cache') . '">' . __('Settings', 'litespeed-cache') . '</a>';
		$links[] = '<a href="' . admin_url('admin.php?page=litespeed-cache') . '">' . __('Settings', 'litespeed-cache') . '</a>';

		return $links;
	}

	/**
	 * Change the admin footer text on LiteSpeed Cache admin pages.
	 *
	 * @since  1.0.13
	 * @param  string $footer_text
	 * @return string
	 */
	public function admin_footer_text($footer_text) {
		require_once LSCWP_DIR . 'tpl/inc/admin_footer.php';

		return $footer_text;
	}

	/**
	 * Builds the html for a single notice.
	 *
	 * @since 1.0.7
	 * @access public
	 * @param string $color The color to use for the notice.
	 * @param string $str The notice message.
	 * @return string The built notice html.
	 */
	public static function build_notice( $color, $str, $irremovable = false ) {
		$cls = $color;
		if ( $irremovable ) {
			$cls .= ' litespeed-irremovable';
		}
		else {
			$cls .= ' is-dismissible';
		}
		return '<div class="' . $cls . '"><p>'. $str . '</p></div>';
	}

	/**
	 * Display info notice
	 *
	 * @since 1.6.5
	 * @access public
	 */
	public static function info( $msg, $echo = false, $irremovable = false ) {
		self::add_notice( self::NOTICE_BLUE, $msg, $echo, $irremovable );
	}

	/**
	 * Display note notice
	 *
	 * @since 1.6.5
	 * @access public
	 */
	public static function note( $msg, $echo = false, $irremovable = false ) {
		self::add_notice( self::NOTICE_YELLOW, $msg, $echo, $irremovable );
	}

	/**
	 * Display success notice
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function succeed( $msg, $echo = false, $irremovable = false ) {
		self::add_notice( self::NOTICE_GREEN, $msg, $echo, $irremovable );
	}

	/**
	 * Display error notice
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function error( $msg, $echo = false, $irremovable = false ) {
		self::add_notice( self::NOTICE_RED, $msg, $echo, $irremovable );
	}

	/**
	 * Adds a notice to display on the admin page
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function add_notice( $color, $msg, $echo = false, $irremovable = false ) {
		// Bypass adding for CLI or cron
		if ( defined( 'LITESPEED_CLI' ) || defined( 'DOING_CRON' ) ) {
			// WP CLI will show the info directly
			if ( defined( 'WP_CLI' ) && WP_CLI ) {
				if ( ! is_array( $msg ) ) {
					$msg = array( $msg );
				}
				foreach ( $msg as $v ) {
					$v = strip_tags( $v );
					if ( $color == self::NOTICE_RED ) {
						\WP_CLI::error( $v, false );
					}
					else {
						\WP_CLI::success( $v );
					}
				}
			}
			return;
		}

		if ( $echo ) {
			echo self::build_notice( $color, $msg );
			return;
		}

		$msg_name = $irremovable ? self::DB_MSG_PIN : self::DB_MSG;

		$messages = self::get_option( $msg_name );
		if ( ! is_array( $messages ) ) {
			$messages = array();
		}

		if ( is_array($msg) ) {
			foreach ( $msg as $k => $str ) {
				$messages[ $k ] = self::build_notice( $color, $str, $irremovable );
			}
		}
		else {
			$messages[] = self::build_notice( $color, $msg, $irremovable );
		}
		$messages = array_unique( $messages );
		self::update_option( $msg_name, $messages );
	}

	/**
	 * Display notices and errors in dashboard
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function display_messages() {
		if ( ! defined( 'LITESPEED_CONF_LOADED' ) ) {
			$this->_in_upgrading();
		}

		if ( GUI::has_whm_msg() ) {
			$this->show_display_installed();
		}

		Data::cls()->check_upgrading_msg();

		// If is in dev version, always check latest update
		Cloud::cls()->check_dev_version();

		// One time msg
		$messages = self::get_option( self::DB_MSG, array() );
		$added_thickbox = false;
		if( is_array( $messages ) ) {
			foreach ( $messages as $msg ) {
				// Added for popup links
				if ( strpos( $msg, 'TB_iframe' ) && ! $added_thickbox ) {
					add_thickbox();
					$added_thickbox = true;
				}
				echo $msg;
			}
		}
		if ( $messages != -1 ) {
			self::update_option( self::DB_MSG, -1 );
		}

		// Pinned msg
		$messages = self::get_option( self::DB_MSG_PIN, array() );
		if( is_array( $messages ) ) {
			foreach ( $messages as $k => $msg ) {
				// Added for popup links
				if ( strpos( $msg, 'TB_iframe' ) && ! $added_thickbox ) {
					add_thickbox();
					$added_thickbox = true;
				}

				// Append close btn
				if ( substr( $msg, -6 ) == '</div>' ) {
					$link = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PIN, false, null, array( 'msgid' => $k ) );
					$msg = substr( $msg, 0, -6 ) . '<p><a href="' . $link . '" class="button litespeed-btn-primary litespeed-btn-mini">' . __( 'Dismiss', 'litespeed-cache' ) . '</a>' . '</p></div>';
				}
				echo $msg;
			}
		}
		if ( $messages != -1 ) {
			self::update_option( self::DB_MSG_PIN, -1 );
		}

		if( empty( $_GET[ 'page' ] ) || strpos( $_GET[ 'page' ], 'litespeed' ) !== 0 ) {
			global $pagenow;
			if ( $pagenow != 'plugins.php' ) { // && $pagenow != 'index.php'
				return;
			}
		}

		// Show disable all warning
		if ( defined( 'LITESPEED_DISABLE_ALL' ) ) {
			Admin_Display::error( Error::msg( 'disabled_all' ), true );
		}

		if ( ! $this->conf( self::O_NEWS ) ) {
			return;
		}

		// Show promo from cloud
		Cloud::cls()->show_promo();

		/**
		 * Check promo msg first
		 * @since 2.9
		 */
		GUI::cls()->show_promo();

		// Show version news
		Cloud::cls()->news();
	}

	/**
	 * Dismiss pinned msg
	 *
	 * @since 3.5.2
	 * @access public
	 */
	public static function dismiss_pin() {
		if ( ! isset( $_GET[ 'msgid' ] ) ) {
			return;
		}

		$messages = self::get_option( self::DB_MSG_PIN );
		if ( ! is_array( $messages ) || empty( $messages[ $_GET[ 'msgid' ] ] ) ) {
			return;
		}

		unset( $messages[ $_GET[ 'msgid' ] ] );
		if ( ! $messages ) {
			$messages = -1;
		}
		self::update_option( self::DB_MSG_PIN, $messages );
	}

	/**
	 * Hooked to the in_widget_form action.
	 * Appends LiteSpeed Cache settings to the widget edit settings screen.
	 * This will append the esi on/off selector and ttl text.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function show_widget_edit($widget, $return, $instance) {
		require LSCWP_DIR . 'tpl/esi_widget_edit.php';
	}

	/**
	 * Displays the dashboard page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_dash() {
		require_once LSCWP_DIR . 'tpl/dash/entry.tpl.php';
	}

	/**
	 * Displays the General page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_general() {
		require_once LSCWP_DIR . 'tpl/general/entry.tpl.php';
	}

	/**
	 * Displays the CDN page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_cdn() {
		require_once LSCWP_DIR . 'tpl/cdn/entry.tpl.php';
	}

	/**
	 * Outputs the LiteSpeed Cache settings page.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function show_menu_cache() {
		if ( $this->_is_network_admin ) {
			require_once LSCWP_DIR . 'tpl/cache/entry_network.tpl.php';
		}
		else {
			require_once LSCWP_DIR . 'tpl/cache/entry.tpl.php';
		}
	}

	/**
	 * Tools page
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_toolbox() {
		require_once LSCWP_DIR . 'tpl/toolbox/entry.tpl.php';
	}

	/**
	 * Outputs the crawler operation page.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function show_crawler() {
		require_once LSCWP_DIR . 'tpl/crawler/entry.tpl.php';
	}

	/**
	 * Outputs the optimization operation page.
	 *
	 * @since 1.6
	 * @access public
	 */
	public function show_img_optm() {
		require_once LSCWP_DIR . 'tpl/img_optm/entry.tpl.php';
	}

	/**
	 * Page optm page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_page_optm() {
		require_once LSCWP_DIR . 'tpl/page_optm/entry.tpl.php';
	}

	/**
	 * DB optm page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_db_optm() {
		require_once LSCWP_DIR . 'tpl/db_optm/entry.tpl.php';
	}

	/**
	 * Outputs a notice to the admin panel when the plugin is installed
	 * via the WHM plugin.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public function show_display_installed() {
		require_once LSCWP_DIR . 'tpl/inc/show_display_installed.php';
	}

	/**
	 * Display error cookie msg.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public static function show_error_cookie() {
		require_once LSCWP_DIR . 'tpl/inc/show_error_cookie.php';
	}

	/**
	 * Display warning if lscache is disabled
	 *
	 * @since 2.1
	 * @access public
	 */
	public function cache_disabled_warning() {
		include LSCWP_DIR . "tpl/inc/check_cache_disabled.php";
	}

	/**
	 * Display conf data upgrading banner
	 *
	 * @since 2.1
	 * @access private
	 */
	private function _in_upgrading() {
		include LSCWP_DIR . "tpl/inc/in_upgrading.php";
	}

	/**
	 * Output litespeed form info
	 *
	 * @since    3.0
	 * @access public
	 */
	public function form_action( $action = false, $type = false, $has_upload = false ) {
		if ( ! $action ) {
			$action = Router::ACTION_SAVE_SETTINGS;
		}

		$has_upload = $has_upload ? 'enctype="multipart/form-data"' : '';

		if ( ! defined( 'LITESPEED_CONF_LOADED' ) ) {
			echo '<div class="litespeed-relative"';
		}
		else {
			echo '<form method="post" action="' . wp_unslash( $_SERVER[ 'REQUEST_URI' ] ) . '" class="litespeed-relative" ' . $has_upload . '>';
		}

		echo '<input type="hidden" name="' . Router::ACTION . '" value="' . $action . '" />';
		if ( $type ) {
			echo '<input type="hidden" name="' . Router::TYPE . '" value="' . $type . '" />';
		}
		wp_nonce_field( $action, Router::NONCE );
	}

	/**
	 * Output litespeed form info END
	 *
	 * @since    3.0
	 * @access public
	 */
	public function form_end( $disable_reset = false ) {
		echo "<div class='litespeed-top20'></div>";

		if ( ! defined( 'LITESPEED_CONF_LOADED' ) ) {
			submit_button( __( 'Save Changes', 'litespeed-cache' ), 'secondary litespeed-duplicate-float', 'litespeed-submit', true, array( 'disabled' => 'disabled' ) );

			echo '</div>';
		}
		else {
			submit_button( __( 'Save Changes', 'litespeed-cache' ), 'primary litespeed-duplicate-float', 'litespeed-submit', true, array( 'id' => 'litespeed-submit-' . $this->_btn_i++ ) );

			echo '</form>';
		}

	}

	/**
	 * Register this setting to save
	 *
	 * @since  3.0
	 * @access public
	 */
	public function enroll( $id ) {
		echo '<input type="hidden" name="' . Admin_Settings::ENROLL . '[]" value="' . $id . '" />';
	}

	/**
	 * Build a textarea
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function build_textarea( $id, $cols = false, $val = null ) {
		if ( $val === null ) {
			$val = $this->conf( $id, true );

			if ( is_array( $val ) ) {
				$val = implode( "\n", $val );
			}
		}

		if ( ! $cols ) {
			$cols = 80;
		}

		$rows = 5;
		$lines = substr_count( $val, "\n" ) + 2;
		if ( $lines > $rows ) {
			$rows = $lines;
		}
		if ( $rows > 40 ) {
			$rows = 40;
		}

		$this->enroll( $id );

		echo "<textarea name='$id' rows='$rows' cols='$cols'>" . esc_textarea( $val ) . "</textarea>";

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a text input field
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function build_input( $id, $cls = null, $val = null, $type = 'text', $disabled = false ) {
		if ( $val === null ) {
			$val = $this->conf( $id, true );

			// Mask pswds
			if ( $this->_conf_pswd( $id ) && $val ) {
				$val = str_repeat( '*', strlen( $val ) );
			}
		}

		$label_id = preg_replace( '/\W/', '', $id );

		if ( $type == 'text' ) {
			$cls = "regular-text $cls";
		}

		if ( $disabled ) {
			echo "<input type='$type' class='$cls' value='" . esc_textarea( $val ) ."' id='input_$label_id' disabled /> ";
		}
		else {
			$this->enroll( $id );
			echo "<input type='$type' class='$cls' name='$id' value='" . esc_textarea( $val ) ."' id='input_$label_id' /> ";
		}

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a checkbox html snippet
	 *
	 * @since 1.1.0
	 * @access public
	 * @param  string $id
	 * @param  string $title
	 * @param  bool $checked
	 */
	public function build_checkbox( $id, $title, $checked = null, $value = 1 ) {
		if ( $checked === null && $this->conf( $id, true ) ) {
			$checked = true;
		}
		$checked = $checked ? ' checked ' : '';

		$label_id = preg_replace( '/\W/', '', $id );

		if ( $value !== 1 ) {
			$label_id .= '_' . $value;
		}

		$this->enroll( $id );

		echo "<div class='litespeed-tick'>
			<input type='checkbox' name='$id' id='input_checkbox_$label_id' value='$value' $checked />
			<label for='input_checkbox_$label_id'>$title</label>
		</div>";

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a toggle checkbox html snippet
	 *
	 * @since 1.7
	 */
	public function build_toggle( $id, $checked = null, $title_on = null, $title_off = null ) {
		if ( $checked === null && $this->conf( $id, true ) ) {
			$checked = true;
		}
		if ( $title_on === null ) {
			$title_on = __( 'ON', 'litespeed-cache' );
			$title_off = __( 'OFF', 'litespeed-cache' );
		}
		$cls = $checked ? 'primary' : 'default litespeed-toggleoff';
		echo "<div class='litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-$cls' data-litespeed-toggle-on='primary' data-litespeed-toggle-off='default' data-litespeed_crawler_id='$id' >
				<input name='$id' type='hidden' value='$checked' />
				<div class='litespeed-toggle-group'>
					<label class='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>$title_on</label>
					<label class='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>$title_off</label>
					<span class='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
				</div>
			</div>";
	}

	/**
	 * Build a switch div html snippet
	 *
	 * @since 1.1.0
	 * @since 1.7 removed param $disable
	 * @access public
	 */
	public function build_switch( $id, $title_list = false ) {
		$this->enroll( $id );

		echo '<div class="litespeed-switch">';

		if ( ! $title_list ) {
			$title_list = array(
				__( 'OFF', 'litespeed-cache' ),
				__( 'ON', 'litespeed-cache' ),
			);
		}

		foreach ( $title_list as $k => $v ) {
			$this->_build_radio( $id, $k, $v );
		}

		echo '</div>';

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a radio input html codes and output
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function _build_radio( $id, $val, $txt ) {
		$id_attr = 'input_radio_' . preg_replace( '/\W/', '', $id ) . '_' . $val;

		$default = isset( self::$_default_options[ $id ] ) ? self::$_default_options[ $id ] : self::$_default_site_options[ $id ];

		if ( ! is_string( $default ) ) {
			$checked = (int) $this->conf( $id, true ) === (int) $val ? ' checked ' : '';
		}
		else {
			$checked = $this->conf( $id, true ) === $val ? ' checked ' : '';
		}

		echo "<input type='radio' autocomplete='off' name='$id' id='$id_attr' value='$val' $checked /> <label for='$id_attr'>$txt</label>";
	}

	/**
	 * Show overwritten msg if there is a const defined
	 *
	 * @since  3.0
	 */
	protected function _check_overwritten( $id ) {
		$const_val = $this->const_overwritten( $id );
		$primary_val = $this->primary_overwritten( $id );
		if ( $const_val === null && $primary_val === null ) {
			return;
		}

		$val = $const_val !== null ? $const_val : $primary_val;

		$default = isset( self::$_default_options[ $id ] ) ? self::$_default_options[ $id ] : self::$_default_site_options[ $id ];

		if ( is_bool( $default ) ) {
			$val = $val ? __( 'ON', 'litespeed-cache' ) : __( 'OFF', 'litespeed-cache' );
		}
		else {
			if ( is_array( $default ) ) {
				$val = implode( "\n", $val );
			}
			$val = esc_textarea( $val );
		}

		echo '<div class="litespeed-desc litespeed-warning">⚠️ ';

		if ( $const_val !== null ) {
			echo sprintf( __( 'This setting is overwritten by the PHP constant %s', 'litespeed-cache' ), '<code>' . Base::conf_const( $id ) . '</code>' );
		} else {
			if ( get_current_blog_id() != BLOG_ID_CURRENT_SITE && $this->conf( self::NETWORK_O_USE_PRIMARY ) ) {
				echo __( 'This setting is overwritten by the primary site setting', 'litespeed-cache' );
			}
			else {
				echo __( 'This setting is overwritten by the Network setting', 'litespeed-cache' );
			}
		}

		echo ', ' . sprintf( __( 'currently set to %s', 'litespeed-cache' ), "<code>$val</code>" ) . '</div>';
	}

	/**
	 * Display seconds text and readable layout
	 *
	 * @since 3.0
	 * @access public
	 */
	public function readable_seconds() {
		echo __( 'seconds', 'litespeed-cache' );
		echo ' <span data-litespeed-readable=""></span>';
	}

	/**
	 * Display default value
	 *
	 * @since  1.1.1
	 * @access public
	 */
	public function recommended( $id ) {
		if ( ! $this->default_settings ) {
			$this->default_settings = $this->load_default_vals();
		}

		$val = $this->default_settings[ $id ];

		if ( $val ) {
			if ( is_array( $val ) ) {
				$rows = 5;
				$cols = 30;
				// Flexible rows/cols
				$lines = count( $val ) + 1;
				$rows = min( max( $lines, $rows ), 40 );
				foreach ( $val as $v ) {
					$cols = max( strlen( $v ), $cols );
				}
				$cols = min( $cols, 150 );

				$val = implode( "\n", $val );
				$val = esc_textarea( $val );
				$val = '<div class="litespeed-desc">' . __( 'Default value', 'litespeed-cache' ) . ':</div>' . "<textarea readonly rows='$rows' cols='$cols'>$val</textarea>";
			}
			else {
				$val = esc_textarea( $val );
				$val = "<code>$val</code>";
				$val = __( 'Default value', 'litespeed-cache' ) . ': '.$val;
			}
			echo  $val;
		}
	}

	/**
	 * Validate rewrite rules regex syntax
	 *
	 * @since  3.0
	 */
	protected function _validate_syntax( $id ) {
		$val = $this->conf( $id, true );

		if ( ! $val ) {
			return;
		}

		if ( ! is_array( $val ) ) {
			$val = array( $val );
		}

		foreach ( $val as $v ) {
			if ( ! Utility::syntax_checker( $v ) ) {
				echo '<br /><font class="litespeed-warning"> ❌ ' . __( 'Invalid rewrite rule', 'litespeed-cache' ) . ': <code>' . $v . '</code></font>';
			}
		}
	}

	/**
	 * Validate if the htaccess path is valid
	 *
	 * @since  3.0
	 */
	protected function _validate_htaccess_path( $id ) {
		$val = $this->conf( $id, true );
		if ( ! $val ) {
			return;
		}

		if ( substr( $val, -10 ) !== '/.htaccess' ) {
			echo '<br /><font class="litespeed-warning"> ❌ ' . sprintf( __( 'Path must end with %s', 'litespeed-cache' ), '<code>/.htaccess</code>' ) . '</font>';
		}
	}

	/**
	 * Check ttl instead of error when saving
	 *
	 * @since  3.0
	 */
	protected function _validate_ttl( $id, $min = false, $max = false, $allow_zero = false ) {
		$val = $this->conf( $id, true );

		if ( $allow_zero && ! $val ) {
			// return;
		}

		$tip = array();
		if ( $min && $val < $min && ( ! $allow_zero || $val != 0 ) ) {
			$tip[] = __( 'Minimum value', 'litespeed-cache' ) . ': <code>' . $min . '</code>.';
		}
		if ( $max && $val > $max ) {
			$tip[] = __( 'Maximum value', 'litespeed-cache' ) . ': <code>' . $max . '</code>.';
		}

		echo '<br />';

		if ( $tip ) {
			echo '<font class="litespeed-warning"> ❌ ' . implode( ' ', $tip ) . '</font>';
		}

		$range = '';

		if ( $allow_zero ) {
			$range .= __( 'Zero, or', 'litespeed-cache' ) . ' ';
		}

		if ( $min && $max ) {
			$range .= $min . ' - ' . $max;
		}
		elseif ( $min ) {
			$range .= __( 'Larger than', 'litespeed-cache' ) . ' ' . $min;
		}
		elseif ( $max ) {
			$range .= __( 'Smaller than', 'litespeed-cache' ) . ' ' . $max;
		}

		echo __( 'Value range', 'litespeed-cache' ) . ': <code>' . $range . '</code>';
	}

	/**
	 * Check if ip is valid
	 *
	 * @since  3.0
	 */
	protected function _validate_ip( $id ) {
		$val = $this->conf( $id, true );
		if ( ! $val ) {
			return;
		}

		if ( ! is_array( $val ) ) {
			$val = array( $val );
		}

		$tip = array();
		foreach ( $val as $v ) {
			if ( ! $v ) {
				continue;
			}

			if ( ! \WP_Http::is_ip_address( $v ) ) {
				$tip[] = __( 'Invalid IP', 'litespeed-cache' ) . ': <code>' . esc_textarea( $v ) . '</code>.';
			}
		}

		if ( $tip ) {
			echo '<br /><font class="litespeed-warning"> ❌ ' . implode( ' ', $tip ) . '</font>';
		}
	}

	/**
	 * Display API environment variable support
	 *
	 * @since  1.8.3
	 * @access protected
	 */
	protected function _api_env_var() {
		$args = func_get_args();
		$s = '<code>' . implode( '</code>, <code>', $args ) . '</code>';

		echo '<font class="litespeed-success"> '
			. __( 'API', 'litespeed-cache' ) . ': '
			. sprintf( __( 'Server variable(s) %s available to override this setting.', 'litespeed-cache' ), $s );

		Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#limiting-the-crawler' );
	}

	/**
	 * Display URI setting example
	 *
	 * @since  2.6.1
	 * @access protected
	 */
	protected function _uri_usage_example() {
		echo __( 'The URLs will be compared to the REQUEST_URI server variable.', 'litespeed-cache' );
		echo ' ' . sprintf( __( 'For example, for %s, %s can be used here.', 'litespeed-cache' ), '<code>/mypath/mypage?aa=bb</code>', '<code>mypage?aa=</code>' );
		echo '<br /><i>';
			echo sprintf( __( 'To match the beginning, add %s to the beginning of the item.', 'litespeed-cache' ), '<code>^</code>' );
			echo ' ' . sprintf( __( 'To do an exact match, add %s to the end of the URL.', 'litespeed-cache' ), '<code>$</code>' );
			echo ' ' . __( 'One per line.', 'litespeed-cache' );
		echo '</i>';
	}

	/**
	 * Return groups string
	 *
	 * @since  2.0
	 * @access public
	 */
	public static function print_plural( $num, $kind = 'group' ) {
		if ( $num > 1 ) {
			switch ( $kind ) {
				case 'group' :
					return sprintf( __( '%s groups', 'litespeed-cache' ), $num );

				case 'image' :
					return sprintf( __( '%s images', 'litespeed-cache' ), $num );

				default:
					return $num;
			}

		}

		switch ( $kind ) {
			case 'group' :
				return sprintf( __( '%s group', 'litespeed-cache' ), $num );

			case 'image' :
				return sprintf( __( '%s image', 'litespeed-cache' ), $num );

			default:
				return $num;
		}
	}

	/**
	 * Return guidance html
	 *
	 * @since  2.0
	 * @access public
	 */
	public static function guidance( $title, $steps, $current_step ) {
		if ( $current_step === 'done' ) {
			$current_step = count( $steps ) + 1;
		}

		$percentage = ' (' . floor( ( $current_step - 1 ) * 100 / count( $steps ) ) . '%)';

		$html = '<div class="litespeed-guide">'
					. '<h2>' . $title . $percentage . '</h2>'
					. '<ol>';
		foreach ( $steps as $k => $v ) {
			$step = $k + 1;
			if ( $current_step > $step ) {
				$html .= '<li class="litespeed-guide-done">';
			}
			else {
				$html .= '<li>';
			}
			$html .= $v . '</li>';
		}

		$html .= '</ol></div>';

		return $html;
	}
}
<?php
/**
 * Database upgrade funcs
 *
 * NOTE: whenever called this file, always call Data::get_upgrade_lock and Data::_set_upgrade_lock first.
 *
 * @since  3.0
 */
defined( 'WPINC' ) || exit;

use LiteSpeed\Debug2;
use LiteSpeed\Conf;
use LiteSpeed\Admin_Display;
use LiteSpeed\File;

/**
 * Add expired to url_file table
 * @since 4.4.4
 */
function litespeed_update_4_4_4() {
	global $wpdb;
	Debug2::debug( "[Data] Upgrade url_file table" );
	$tb_exists = $wpdb->get_var( 'SHOW TABLES LIKE "' . $wpdb->prefix . 'litespeed_url_file"' );
	if ( $tb_exists ) {
		$q = 'ALTER TABLE `' . $wpdb->prefix . 'litespeed_url_file`
				ADD COLUMN `expired` int(11) NOT NULL DEFAULT 0,
				ADD KEY `filename_2` (`filename`,`expired`),
				ADD KEY `url_id` (`url_id`,`expired`)
			';
		$wpdb->query( $q );
	}
}

/**
 * Drop cssjs table and rm cssjs folder
 * @since 4.3
 */
function litespeed_update_4_3() {
	if ( file_exists( LITESPEED_STATIC_DIR . '/ccsjs' ) ) {
		File::rrmdir( LITESPEED_STATIC_DIR . '/ccsjs' );
	}
}

/**
 * Drop object cache data file
 * @since 4.1
 */
function litespeed_update_4_1() {
	if ( file_exists( WP_CONTENT_DIR . '/.object-cache.ini' ) ) {
		unlink( WP_CONTENT_DIR . '/.object-cache.ini' );
	}
}

/**
 * Drop cssjs table and rm cssjs folder
 * @since 4.0
 */
function litespeed_update_4() {
	global $wpdb;
	$tb = $wpdb->prefix . 'litespeed_cssjs';
	$existed = $wpdb->get_var( "SHOW TABLES LIKE '$tb'" );
	if ( ! $existed ) {
		return;
	}

	$q = 'DROP TABLE IF EXISTS ' . $tb;
	$wpdb->query( $q );

	if ( file_exists( LITESPEED_STATIC_DIR . '/ccsjs' ) ) {
		File::rrmdir( LITESPEED_STATIC_DIR . '/ccsjs' );
	}
}

/**
 * Append jQuery to JS optm exclude list for max compatibility
 * Turn off JS Combine and Defer
 *
 * @since  3.5.1
 */
function litespeed_update_3_5() {
	$__conf = Conf::cls();
	// Excludes jQuery
	foreach ( array( 'optm-js_exc', 'optm-js_defer_exc' ) as $v ) {
		$curr_setting = $__conf->conf( $v );
		$curr_setting[] = 'jquery.js';
		$curr_setting[] = 'jquery.min.js';
		$__conf->update( $v, $curr_setting );
	}
	// Turn off JS Combine and defer
	$show_msg = false;
	foreach ( array( 'optm-js_comb', 'optm-js_defer', 'optm-js_inline_defer' ) as $v ) {
		$curr_setting = $__conf->conf( $v );
		if ( ! $curr_setting ) {
			continue;
		}
		$show_msg = true;
		$__conf->update( $v, false );
	}

	if ( $show_msg ) {
		$msg = sprintf( __( 'LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.', 'litespeed-cache' ), '<code>' . __( 'JS Combine', 'litespeed-cache' ) . '</code>', '<code>' . __( 'JS Defer', 'litespeed-cache' ) . '</code>' );
		$msg .= sprintf( ' <a href="admin.php?page=litespeed-page_optm#settings_js">%s</a>.', __( 'Click here to settings', 'litespeed-cache' ) );
		Admin_Display::info( $msg, false, true );
	}
}

/**
 * For version under v2.0 to v2.0+
 *
 * @since  3.0
 */
function litespeed_update_2_0( $ver ) {
	global $wpdb ;

	// Table version only exists after all old data migrated
	// Last modified is v2.4.2
	if ( version_compare( $ver, '2.4.2', '<' ) ) {
		/**
		 * Convert old data from postmeta to img_optm table
		 * @since  2.0
		 */

		// Migrate data from `wp_postmeta` to `wp_litespeed_img_optm`
		$mids_to_del = array() ;
		$q = "SELECT * FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_id" ;
		$meta_value_list = $wpdb->get_results( $wpdb->prepare( $q, 'litespeed-optimize-data' ) ) ;
		if ( $meta_value_list ) {
			$max_k = count( $meta_value_list ) - 1 ;
			foreach ( $meta_value_list as $k => $v ) {
				$md52src_list = maybe_unserialize( $v->meta_value ) ;
				foreach ( $md52src_list as $md5 => $v2 ) {
					$f = array(
						'post_id'	=> $v->post_id,
						'optm_status'		=> $v2[ 1 ],
						'src'		=> $v2[ 0 ],
						'srcpath_md5'		=> md5( $v2[ 0 ] ),
						'src_md5'		=> $md5,
						'server'		=> $v2[ 2 ],
					) ;
					$wpdb->replace( $wpdb->prefix . 'litespeed_img_optm', $f ) ;
				}
				$mids_to_del[] = $v->meta_id ;

				// Delete from postmeta
				if ( count( $mids_to_del ) > 100 || $k == $max_k ) {
					$q = "DELETE FROM $wpdb->postmeta WHERE meta_id IN ( " . implode( ',', array_fill( 0, count( $mids_to_del ), '%s' ) ) . " ) " ;
					$wpdb->query( $wpdb->prepare( $q, $mids_to_del ) ) ;

					$mids_to_del = array() ;
				}
			}

			Debug2::debug( '[Data] img_optm inserted records: ' . $k ) ;
		}

		$q = "DELETE FROM $wpdb->postmeta WHERE meta_key = %s" ;
		$rows = $wpdb->query( $wpdb->prepare( $q, 'litespeed-optimize-status' ) ) ;
		Debug2::debug( '[Data] img_optm delete optm_status records: ' . $rows ) ;

	}

	/**
	 * Add target_md5 field to table
	 * @since  2.4.2
	 */
	if ( version_compare( $ver, '2.4.2', '<' ) && version_compare( $ver, '2.0', '>=' ) ) {// NOTE: For new users, need to bypass this section
		$sql = sprintf(
			'ALTER TABLE `%1$s` ADD `server_info` text NOT NULL, DROP COLUMN `server`',
			$wpdb->prefix . 'litespeed_img_optm'
		) ;

		$res = $wpdb->query( $sql ) ;
		if ( $res !== true ) {
			Debug2::debug( '[Data] Warning: Alter table img_optm failed!', $sql ) ;
		}
		else {
			Debug2::debug( '[Data] Successfully upgraded table img_optm.' ) ;
		}

	}

	// Delete img optm tb version
	delete_option( $wpdb->prefix . 'litespeed_img_optm' ) ;


	// Delete possible HTML optm data from wp_options
	delete_option( 'litespeed-cache-optimized' ) ;

	// Delete HTML optm tb version
	delete_option( $wpdb->prefix . 'litespeed_optimizer' ) ;

}



/**
 * Move all options in litespeed-cache-conf from v3.0- to separate records
 *
 * @since  3.0
 */
function litespeed_update_3_0( $ver ) {
	global $wpdb;
	// Upgrade v2.0- to v2.0 first
	if ( version_compare( $ver, '2.0', '<' ) ) {
		litespeed_update_2_0( $ver ) ;
	}

	set_time_limit( 86400 );

	// conv items to litespeed.conf.*
	Debug2::debug( "[Data] Conv items to litespeed.conf.*" );
	$data = array(
		'litespeed-cache-exclude-cache-roles' 		=> 'cache-exc_roles',
		'litespeed-cache-drop_qs' 					=> 'cache-drop_qs',
		'litespeed-forced_cache_uri' 				=> 'cache-force_uri',
		'litespeed-cache_uri_priv' 					=> 'cache-priv_uri',
		'litespeed-excludes_uri' 					=> 'cache-exc',
		'litespeed-cache-vary-group' 				=> 'cache-vary_group',
		'litespeed-adv-purge_all_hooks' 			=> 'purge-hook_all',
		'litespeed-object_global_groups' 			=> 'object-global_groups',
		'litespeed-object_non_persistent_groups' 	=> 'object-non_persistent_groups',
		'litespeed-media-lazy-img-excludes' 		=> 'media-lazy_exc',
		'litespeed-media-lazy-img-cls-excludes' 	=> 'media-lazy_cls_exc',
		'litespeed-media-webp_attribute' 			=> 'img_optm-webp_attr',
		'litespeed-optm-css' 						=> 'optm-ccss_con',
		'litespeed-optm_excludes' 					=> 'optm-exc',
		'litespeed-optm-ccss-separate_posttype' 	=> 'optm-ccss_sep_posttype',
		'litespeed-optm-css-separate_uri' 			=> 'optm-ccss_sep_uri',
		'litespeed-optm-js-defer-excludes' 			=> 'optm-js_defer_exc',
		'litespeed-cache-dns_prefetch' 				=> 'optm-dns_prefetch',
		'litespeed-cache-exclude-optimization-roles' => 'optm-exc_roles',
		'litespeed-log_ignore_filters' 				=> 'debug-log_no_filters', // depreciated
		'litespeed-log_ignore_part_filters' 		=> 'debug-log_no_part_filters', // depreciated
		'litespeed-cdn-ori_dir' 					=> 'cdn-ori_dir',
		'litespeed-cache-cdn_mapping' 				=> 'cdn-mapping',
		'litespeed-crawler-as-uids' 				=> 'crawler-roles',
		'litespeed-crawler-cookies' 				=> 'crawler-cookies',
	) ;
	foreach ( $data as $k => $v ) {
		$old_data = get_option( $k ) ;
		if ( $old_data ) {
			Debug2::debug( "[Data] Convert $k" );
			// They must be an array
			if ( ! is_array( $old_data ) && $v != 'optm-ccss_con' ) {
				$old_data = explode( "\n", $old_data ) ;
			}

			if ( $v == 'crawler-cookies' ) {
				$tmp = array() ;
				$i = 0 ;
				foreach ( $old_data as $k2 => $v2 ) {
					$tmp[ $i ][ 'name' ] = $k2 ;
					$tmp[ $i ][ 'vals' ] = explode( "\n", $v2 ) ;
					$i ++ ;
				}
				$old_data = $tmp ;
			}

			add_option( 'litespeed.conf.' . $v, $old_data ) ;
		}
		Debug2::debug( "[Data] Delete $k" );
		delete_option( $k ) ;
	}

	// conv other items
	$data = array(
		'litespeed-setting-mode' 			=> 'litespeed.setting.mode',
		'litespeed-media-need-pull' 		=> 'litespeed.img_optm.need_pull',
		'litespeed-env-ref' 				=> 'litespeed.env.ref',
		'litespeed-cache-cloudflare_status' => 'litespeed.cdn.cloudflare.status',

	) ;
	foreach ( $data as $k => $v ) {
		$old_data = get_option( $k ) ;
		if ( $old_data ) {
			add_option( $v, $old_data ) ;
		}
		delete_option( $k ) ;
	}

	// Conv conf from litespeed-cache-conf child to litespeed.conf.*
	Debug2::debug( "[Data] Conv conf from litespeed-cache-conf child to litespeed.conf.*" );
	$previous_options = get_option( 'litespeed-cache-conf' ) ;

	$data = array(
		'radio_select'				=> 'cache',
		'hash'						=> 'hash',
		'auto_upgrade'				=> 'auto_upgrade',
		'news'						=> 'news',
		'crawler_domain_ip' 		=> 'server_ip',

		'esi_enabled'				=> 'esi',
		'esi_cached_admbar'			=> 'esi-cache_admbar',
		'esi_cached_commform'		=> 'esi-cache_commform',

		'heartbeat'					=> 'misc-heartbeat_front',

		'cache_browser'				=> 'cache-browser',
		'cache_browser_ttl'			=> 'cache-ttl_browser',
		'instant_click'				=> 'util-instant_click',
		'use_http_for_https_vary' 	=> 'util-no_https_vary',

		'purge_upgrade'				=> 'purge-upgrade',
		'timed_urls' 				=> 'purge-timed_urls',
		'timed_urls_time' 			=> 'purge-timed_urls_time',

		'cache_priv' 				=> 'cache-priv',
		'cache_commenter'			=> 'cache-commenter',
		'cache_rest' 				=> 'cache-rest',
		'cache_page_login'			=> 'cache-page_login',
		'cache_favicon'				=> 'cache-favicon',
		'cache_resources'			=> 'cache-resources',
		'mobileview_enabled'		=> 'cache-mobile',
		'mobileview_rules'			=> 'cache-mobile_rules',
		'nocache_useragents' 		=> 'cache-exc_useragents',
		'nocache_cookies' 			=> 'cache-exc_cookies',
		'excludes_qs' 				=> 'cache-exc_qs',
		'excludes_cat' 				=> 'cache-exc_cat',
		'excludes_tag' 				=> 'cache-exc_tag',
		'public_ttl'				=> 'cache-ttl_pub',
		'private_ttl'				=> 'cache-ttl_priv',
		'front_page_ttl'			=> 'cache-ttl_frontpage',
		'feed_ttl'					=> 'cache-ttl_feed',
		'login_cookie'				=> 'cache-login_cookie',

		'debug_disable_all'			=> 'debug-disable_all',
		'debug'						=> 'debug',
		'admin_ips' 				=> 'debug-ips',
		'debug_level' 				=> 'debug-level',
		'log_file_size'				=> 'debug-filesize',
		'debug_cookie'				=> 'debug-cookie',
		'collaps_qs'				=> 'debug-collaps_qs',
		// 'log_filters' 				=> 'debug-log_filters',

		'crawler_cron_active' 		=> 'crawler',
		// 'crawler_include_posts' 	=> 'crawler-inc_posts',
		// 'crawler_include_pages' 	=> 'crawler-inc_pages',
		// 'crawler_include_cats' 		=> 'crawler-inc_cats',
		// 'crawler_include_tags' 		=> 'crawler-inc_tags',
		// 'crawler_excludes_cpt' 		=> 'crawler-exc_cpt',
		// 'crawler_order_links' 		=> 'crawler-order_links',
		'crawler_usleep' 			=> 'crawler-usleep',
		'crawler_run_duration' 		=> 'crawler-run_duration',
		'crawler_run_interval' 		=> 'crawler-run_interval',
		'crawler_crawl_interval' 	=> 'crawler-crawl_interval',
		'crawler_threads' 			=> 'crawler-threads',
		'crawler_load_limit' 		=> 'crawler-load_limit',
		'crawler_custom_sitemap' 	=> 'crawler-sitemap',

		'cache_object'				=> 'object',
		'cache_object_kind'			=> 'object-kind',
		'cache_object_host'			=> 'object-host',
		'cache_object_port'			=> 'object-port',
		'cache_object_life'			=> 'object-life',
		'cache_object_persistent'	=> 'object-persistent',
		'cache_object_admin'		=> 'object-admin',
		'cache_object_transients'	=> 'object-transients',
		'cache_object_db_id'		=> 'object-db_id',
		'cache_object_user'			=> 'object-user',
		'cache_object_pswd'			=> 'object-psw',

		'cdn'						=> 'cdn',
		'cdn_ori'					=> 'cdn-ori',
		'cdn_exclude' 				=> 'cdn-exc',
		// 'cdn_remote_jquery'			=> 'cdn-remote_jq',
		'cdn_quic'					=> 'cdn-quic',
		'cdn_cloudflare'			=> 'cdn-cloudflare',
		'cdn_cloudflare_email'		=> 'cdn-cloudflare_email',
		'cdn_cloudflare_key'		=> 'cdn-cloudflare_key',
		'cdn_cloudflare_name'		=> 'cdn-cloudflare_name',
		'cdn_cloudflare_zone'		=> 'cdn-cloudflare_zone',

		'media_img_lazy'				=> 'media-lazy',
		'media_img_lazy_placeholder'	=> 'media-lazy_placeholder',
		'media_placeholder_resp'		=> 'media-placeholder_resp',
		'media_placeholder_resp_color'	=> 'media-placeholder_resp_color',
		'media_placeholder_resp_async'	=> 'media-placeholder_resp_async',
		'media_iframe_lazy'				=> 'media-iframe_lazy',
		// 'media_img_lazyjs_inline'		=> 'media-lazyjs_inline',

		'media_optm_auto'			=> 'img_optm-auto',
		'media_optm_cron'			=> 'img_optm-cron',
		'media_optm_ori'			=> 'img_optm-ori',
		'media_rm_ori_bkup'			=> 'img_optm-rm_bkup',
		'media_optm_webp'			=> 'img_optm-webp',
		'media_optm_lossless'		=> 'img_optm-lossless',
		'media_optm_exif'			=> 'img_optm-exif',
		'media_webp_replace'		=> 'img_optm-webp_replace',
		'media_webp_replace_srcset'	=> 'img_optm-webp_replace_srcset',

		'css_minify'			=> 'optm-css_min',
		// 'css_inline_minify'		=> 'optm-css_inline_min',
		'css_combine'			=> 'optm-css_comb',
		// 'css_combined_priority'	=> 'optm-css_comb_priority',
		// 'css_http2'				=> 'optm-css_http2',
		'css_exclude' 			=> 'optm-css_exc',
		'js_minify'				=> 'optm-js_min',
		// 'js_inline_minify'		=> 'optm-js_inline_min',
		'js_combine'			=> 'optm-js_comb',
		// 'js_combined_priority'	=> 'optm-js_comb_priority',
		// 'js_http2'				=> 'optm-js_http2',
		'js_exclude' 			=> 'optm-js_exc',
		// 'optimize_ttl'			=> 'optm-ttl',
		'html_minify'			=> 'optm-html_min',
		'optm_qs_rm'			=> 'optm-qs_rm',
		'optm_ggfonts_rm'		=> 'optm-ggfonts_rm',
		'optm_css_async'		=> 'optm-css_async',
		// 'optm_ccss_gen'			=> 'optm-ccss_gen',
		// 'optm_ccss_async'		=> 'optm-ccss_async',
		'optm_css_async_inline'	=> 'optm-css_async_inline',
		'optm_js_defer'			=> 'optm-js_defer',
		'optm_emoji_rm'			=> 'optm-emoji_rm',
		// 'optm_exclude_jquery'	=> 'optm-exc_jq',
		'optm_ggfonts_async'	=> 'optm-ggfonts_async',
		// 'optm_max_size'			=> 'optm-max_size',
		// 'optm_rm_comment'		=> 'optm-rm_comment',
	) ;
	foreach ( $data as $k => $v ) {
		if ( ! isset( $previous_options[ $k ] ) ) {
			continue ;
		}
		// The folllowing values must be array
		if ( ! is_array( $previous_options[ $k ] ) ) {
			if ( in_array( $v, array( 'cdn-ori', 'cache-exc_cat', 'cache-exc_tag' ) ) ) {
				$previous_options[ $k ] = explode( ',', $previous_options[ $k ] ) ;
				$previous_options[ $k ] = array_filter( $previous_options[ $k ] ) ;
			}
			elseif ( in_array( $v, array( 'cache-mobile_rules', 'cache-exc_useragents', 'cache-exc_cookies' ) ) ) {
				$previous_options[ $k ] = explode( '|', str_replace( '\\ ', ' ', $previous_options[ $k ] ) ) ;
				$previous_options[ $k ] = array_filter( $previous_options[ $k ] ) ;
			}
			elseif ( in_array( $v, array(
					'purge-timed_urls',
					'cache-exc_qs',
					'debug-ips',
					// 'crawler-exc_cpt',
					'cdn-exc',
					'optm-css_exc',
					'optm-js_exc',
				) ) ) {
				$previous_options[ $k ] = explode( "\n", $previous_options[ $k ] ) ;
				$previous_options[ $k ] = array_filter( $previous_options[ $k ] ) ;
			}
		}

		// Special handler for heartbeat
		if ( $v == 'misc-heartbeat_front' ) {
			if ( ! $previous_options[ $k ] ) {
				add_option( 'litespeed.conf.misc-heartbeat_front', true ) ;
				add_option( 'litespeed.conf.misc-heartbeat_back', true ) ;
				add_option( 'litespeed.conf.misc-heartbeat_editor', true ) ;
				add_option( 'litespeed.conf.misc-heartbeat_front_ttl', 0 ) ;
				add_option( 'litespeed.conf.misc-heartbeat_back_ttl', 0 ) ;
				add_option( 'litespeed.conf.misc-heartbeat_editor_ttl', 0 ) ;
			}
			continue ;
		}

		add_option( 'litespeed.conf.' . $v, $previous_options[ $k ] ) ;
	}
	// Conv purge_by_post
	$data = array(
		'-'		=> 'purge-post_all',
		'F'		=> 'purge-post_f',
		'H'		=> 'purge-post_h',
		'PGS'	=> 'purge-post_p',
		'PGSRP'	=> 'purge-post_pwrp',
		'A'		=> 'purge-post_a',
		'Y'		=> 'purge-post_y',
		'M'		=> 'purge-post_m',
		'D'		=> 'purge-post_d',
		'T'		=> 'purge-post_t',
		'PT'	=> 'purge-post_pt',
	) ;
	if ( isset( $previous_options[ 'purge_by_post' ] ) ) {
		$purge_by_post = explode( '.', $previous_options[ 'purge_by_post' ] ) ;
		foreach ( $data as $k => $v ) {
			add_option( 'litespeed.conf.' . $v, in_array( $k, $purge_by_post ) ) ;
		}
	}
	// Conv 404/403/500 TTL
	$ttl_status = array() ;
	if ( isset( $previous_options[ '403_ttl' ] ) ) {
		$ttl_status[] = '403 ' . $previous_options[ '403_ttl' ] ;
	}
	if ( isset( $previous_options[ '404_ttl' ] ) ) {
		$ttl_status[] = '404 ' . $previous_options[ '404_ttl' ] ;
	}
	if ( isset( $previous_options[ '500_ttl' ] ) ) {
		$ttl_status[] = '500 ' . $previous_options[ '500_ttl' ] ;
	}
	add_option( 'litespeed.conf.cache-ttl_status', $ttl_status ) ;

	/**
	 * Resave cdn cfg from lscfg to separate cfg when upgrade to v1.7
	 *
	 * NOTE: this can be left here as `add_option` bcos it is after the item `litespeed-cache-cdn_mapping` is converted
	 *
	 * @since 1.7
	 */
	if ( isset( $previous_options[ 'cdn_url' ] ) ) {
		$cdn_mapping = array(
			'url' 		=> $previous_options[ 'cdn_url' ],
			'inc_img' 	=> $previous_options[ 'cdn_inc_img' ],
			'inc_css' 	=> $previous_options[ 'cdn_inc_css' ],
			'inc_js' 	=> $previous_options[ 'cdn_inc_js' ],
			'filetype' 	=> $previous_options[ 'cdn_filetype' ],
		) ;
		add_option( 'litespeed.conf.cdn-mapping', array( $cdn_mapping ) ) ;
		Debug2::debug( "[Data] plugin_upgrade option adding CDN map" ) ;
	}

	/**
	 * Move Exclude settings to separate item
	 *
	 * NOTE: this can be left here as `add_option` bcos it is after the relevant items are converted
	 *
	 * @since  2.3
	 */
	if ( isset( $previous_options[ 'forced_cache_uri' ] ) ) {
		add_option( 'litespeed.conf.cache-force_uri', $previous_options[ 'forced_cache_uri' ] ) ;
	}
	if ( isset( $previous_options[ 'cache_uri_priv' ] ) ) {
		add_option( 'litespeed.conf.cache-priv_uri', $previous_options[ 'cache_uri_priv' ] ) ;
	}
	if ( isset( $previous_options[ 'optm_excludes' ] ) ) {
		add_option( 'litespeed.conf.optm-exc', $previous_options[ 'optm_excludes' ] ) ;
	}
	if ( isset( $previous_options[ 'excludes_uri' ] ) ) {
		add_option( 'litespeed.conf.cache-exc', $previous_options[ 'excludes_uri' ] ) ;
	}

	// Backup stale conf
	Debug2::debug( "[Data] Backup stale conf" );
	delete_option( 'litespeed-cache-conf' );
	add_option( 'litespeed-cache-conf.bk', $previous_options );

	// Upgrade site_options if is network
	if ( is_multisite() ) {
		$ver = get_site_option( 'litespeed.conf._version' ) ;
		if ( ! $ver ) {
			Debug2::debug( "[Data] Conv multisite" );
			$previous_site_options = get_site_option( 'litespeed-cache-conf' ) ;

			$data = array(
				'network_enabled'		=> 'cache',
				'use_primary_settings'	=> 'use_primary_settings',
				'auto_upgrade'			=> 'auto_upgrade',
				'purge_upgrade'			=> 'purge-upgrade',

				'cache_favicon'			=> 'cache-favicon',
				'cache_resources'		=> 'cache-resources',
				'mobileview_enabled'	=> 'cache-mobile',
				'mobileview_rules'		=> 'cache-mobile_rules',
				'login_cookie'				=> 'cache-login_cookie',
				'nocache_cookies' 			=> 'cache-exc_cookies',
				'nocache_useragents' 		=> 'cache-exc_useragents',

				'cache_object'				=> 'object',
				'cache_object_kind'			=> 'object-kind',
				'cache_object_host'			=> 'object-host',
				'cache_object_port'			=> 'object-port',
				'cache_object_life'			=> 'object-life',
				'cache_object_persistent'	=> 'object-persistent',
				'cache_object_admin'		=> 'object-admin',
				'cache_object_transients'	=> 'object-transients',
				'cache_object_db_id'		=> 'object-db_id',
				'cache_object_user'			=> 'object-user',
				'cache_object_pswd'			=> 'object-psw',

				'cache_browser'				=> 'cache-browser',
				'cache_browser_ttl'			=> 'cache-ttl_browser',

				'media_webp_replace'		=> 'img_optm-webp_replace',
			) ;
			foreach ( $data as $k => $v ) {
				if ( ! isset( $previous_site_options[ $k ] ) ) {
					continue ;
				}
				// The folllowing values must be array
				if ( ! is_array( $previous_site_options[ $k ] ) ) {
					if ( in_array( $v, array( 'cache-mobile_rules', 'cache-exc_useragents', 'cache-exc_cookies' ) ) ) {
						$previous_site_options[ $k ] = explode( '|', str_replace( '\\ ', ' ', $previous_site_options[ $k ] ) ) ;
						$previous_site_options[ $k ] = array_filter( $previous_site_options[ $k ] ) ;
					}
				}

				add_site_option( 'litespeed.conf.' . $v, $previous_site_options[ $k ] ) ;
			}

			// These are already converted to single record in single site
			$data = array(
				'object-global_groups',
				'object-non_persistent_groups',
			) ;
			foreach ( $data as $v ) {
				$old_data = get_option( $v ) ;
				if ( $old_data ) {
					add_site_option( 'litespeed.conf.' . $v, $old_data ) ;
				}
			}

			delete_site_option( 'litespeed-cache-conf' ) ;

			add_site_option( 'litespeed.conf._version', '3.0' ) ;
		}

	}

	// delete tables
	Debug2::debug( "[Data] Drop litespeed_optimizer" );
	$q = 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'litespeed_optimizer' ;
	$wpdb->query( $q ) ;

	// Update image optm table
	Debug2::debug( "[Data] Upgrade img_optm table" );
	$tb_exists = $wpdb->get_var( 'SHOW TABLES LIKE "' . $wpdb->prefix . 'litespeed_img_optm"' );
	if ( $tb_exists ) {
		$status_mapping = array(
			'requested'	=> 3,
			'notified'	=> 6,
			'pulled'	=> 9,
			'failed'	=> -1,
			'miss'		=> -3,
			'err'		=> -9,
			'err_fetch'	=> -5,
			'err_optm'	=> -7,
			'xmeta'		=> -8,
		);
		foreach ( $status_mapping as $k => $v ) {
			$q = "UPDATE `" . $wpdb->prefix . "litespeed_img_optm` SET optm_status='$v' WHERE optm_status='$k'";
			$wpdb->query( $q ) ;
		}

		$q = 'ALTER TABLE `' . $wpdb->prefix . 'litespeed_img_optm`
				DROP INDEX `post_id_2`,
				DROP INDEX `root_id`,
				DROP INDEX `src_md5`,
				DROP INDEX `srcpath_md5`,
				DROP COLUMN `srcpath_md5`,
				DROP COLUMN `src_md5`,
				DROP COLUMN `root_id`,
				DROP COLUMN `target_saved`,
				DROP COLUMN `webp_saved`,
				DROP COLUMN `server_info`,
				MODIFY COLUMN `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
				MODIFY COLUMN `optm_status` tinyint(4) NOT NULL DEFAULT 0,
				MODIFY COLUMN `src` text COLLATE utf8mb4_unicode_ci NOT NULL
			';
		$wpdb->query( $q ) ;
	}

	delete_option( 'litespeed-recommended' );

	Debug2::debug( "[Data] litespeed_update_3_0 done!" );

	add_option( 'litespeed.conf._version', '3.0' ) ;

}























<?php
/**
 * Cloud service cls
 *
 * @since      3.0
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Cloud extends Base {
	const LOG_TAG = '❄️';
	const CLOUD_SERVER = 'https://api.quic.cloud';
	const CLOUD_IPS = 'https://quic.cloud/ips';
	const CLOUD_SERVER_DASH = 'https://my.quic.cloud';
	const CLOUD_SERVER_WP = 'https://wpapi.quic.cloud';

	const SVC_D_NODES 			= 'd/nodes';
	const SVC_D_SYNC_CONF		= 'd/sync_conf';
	const SVC_D_USAGE 			= 'd/usage';
	const SVC_PAGE_OPTM 		= 'page_optm';
	const SVC_CCSS 				= 'ccss';
	const SVC_UCSS 				= 'ucss';
	const SVC_LQIP 				= 'lqip';
	const SVC_IMG_OPTM			= 'img_optm';
	const SVC_HEALTH			= 'health';
	const SVC_CDN				= 'cdn';

	const BM_IMG_OPTM_PRIO = 16;
	const BM_IMG_OPTM_JUMBO_GROUP = 32;
	const IMG_OPTM_JUMBO_GROUP = 1000;
	const IMG_OPTM_DEFAULT_GROUP = 200;

	const IMGOPTM_TAKEN         = 'img_optm-taken';

	const TTL_NODE = 3; // Days before node expired
	const EXPIRATION_REQ = 300; // Seconds of min interval between two unfinished requests
	const EXPIRATION_TOKEN = 900; // Min intval to request a token 15m
	const TTL_IPS = 3; // Days for node ip list cache

	const API_REPORT		= 'wp/report' ;
	const API_NEWS 			= 'news';
	const API_VER			= 'ver';
	const API_BETA_TEST		= 'beta_test';

	private static $CENTER_SVC_SET = array(
		self::SVC_D_NODES,
		self::SVC_D_SYNC_CONF,
		self::SVC_D_USAGE,
		// self::API_NEWS,
		self::API_REPORT,
		// self::API_VER,
		// self::API_BETA_TEST,
	);

	private static $WP_SVC_SET = array(
		self::API_NEWS,
		self::API_VER,
		self::API_BETA_TEST,
	);

	// No api key needed for these services
	private static $_PUB_SVC_SET = array(
		self::API_NEWS,
		self::API_REPORT,
		self::API_VER,
		self::API_BETA_TEST,
	);

	public static $SERVICES_LOAD_CHECK = array(
		self::SVC_CCSS,
		self::SVC_UCSS,
		self::SVC_LQIP,
		self::SVC_HEALTH,
	);

	public static $SERVICES = array(
		self::SVC_IMG_OPTM,
		self::SVC_PAGE_OPTM,
		self::SVC_CCSS,
		self::SVC_UCSS,
		self::SVC_LQIP,
		self::SVC_CDN,
		self::SVC_HEALTH,
	);

	const TYPE_CLEAR_PROMO 		= 'clear_promo';
	const TYPE_REDETECT_CLOUD 	= 'redetect_cloud';
	const TYPE_CLEAR_CLOUD 		= 'clear_cloud';
	const TYPE_GEN_KEY 			= 'gen_key';
	const TYPE_LINK 			= 'link';
	const TYPE_SYNC_USAGE 		= 'sync_usage';

	private $_api_key;
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_api_key = $this->conf( self::O_API_KEY );
		$this->_summary = self::get_summary();
	}

	/**
	 * Show latest commit version always if is on dev
	 *
	 * @since 3.0
	 */
	public function check_dev_version() {
		if ( ! preg_match( '/[^\d\.]/', Core::VER ) ) {
			return;
		}

		$last_check = empty( $this->_summary[ 'last_request.' . self::API_VER ] ) ? 0 : $this->_summary[ 'last_request.' . self::API_VER ] ;

		if ( time() - $last_check > 600 ) {
			$auto_v = self::version_check( 'dev' );
			if ( ! empty( $auto_v[ 'dev' ] ) ) {
				$this->_summary[ 'version.dev' ] = $auto_v[ 'dev' ];
				self::save_summary( $this->_summary );
			}
		}

		if ( empty( $this->_summary[ 'version.dev' ] ) ) {
			return;
		}

		self::debug( 'Latest dev version ' . $this->_summary[ 'version.dev' ] );

		if ( version_compare( $this->_summary[ 'version.dev' ], Core::VER, '<=' ) ) {
			return;
		}

		// Show the dev banner
		require_once LSCWP_DIR . 'tpl/banner/new_version_dev.tpl.php';
	}

	/**
	 * Check latest version
	 *
	 * @since  2.9
	 * @access public
	 */
	public static function version_check( $src = false ) {
		$req_data = array(
			'v'		=> defined( 'LSCWP_CUR_V' ) ? LSCWP_CUR_V : '',
			'src'	=> $src,
		);
		if ( defined( 'LITESPEED_ERR' ) ) {
			$req_data[ 'err' ] = base64_encode( ! is_string( LITESPEED_ERR ) ? json_encode( LITESPEED_ERR ) : LITESPEED_ERR ) ;
		}
		$data = self::get( self::API_VER, $req_data );

		return $data;
	}

	/**
	 * Show latest news
	 *
	 * @since 3.0
	 */
	public function news() {
		$this->_update_news();

		if ( empty( $this->_summary[ 'news.new' ] ) ) {
			return;
		}

		if ( ! empty( $this->_summary[ 'news.plugin' ] ) && Activation::cls()->dash_notifier_is_plugin_active( $this->_summary[ 'news.plugin' ] ) ) {
			return;
		}

		require_once LSCWP_DIR . 'tpl/banner/cloud_news.tpl.php' ;
	}

	/**
	 * Update latest news
	 *
	 * @since 2.9.9.1
	 */
	private function _update_news() {
		if ( ! empty( $this->_summary[ 'news.utime' ] ) && time() - $this->_summary[ 'news.utime' ] < 86400 * 3 ) {
			return;
		}

		$this->_summary[ 'news.utime' ] = time();
		self::save_summary();

		$data = self::get( self::API_NEWS );
		if ( empty( $data[ 'id' ] ) ) {
			return;
		}

		// Save news
		if ( ! empty( $this->_summary[ 'news.id' ] ) && $this->_summary[ 'news.id' ] == $data[ 'id' ] ) {
			return;
		}

		$this->_summary[ 'news.id' ] = $data[ 'id' ];
		$this->_summary[ 'news.plugin' ] = ! empty( $data[ 'plugin' ] ) ? $data[ 'plugin' ] : '';
		$this->_summary[ 'news.title' ] = ! empty( $data[ 'title' ] ) ? $data[ 'title' ] : '';
		$this->_summary[ 'news.content' ] = ! empty( $data[ 'content' ] ) ? $data[ 'content' ] : '';
		$this->_summary[ 'news.zip' ] = ! empty( $data[ 'zip' ] ) ? $data[ 'zip' ] : '';
		$this->_summary[ 'news.new' ] = 1;

		if ( $this->_summary[ 'news.plugin' ] ) {
			$plugin_info = Activation::cls()->dash_notifier_get_plugin_info( $this->_summary[ 'news.plugin' ] );
			if ( $plugin_info && ! empty( $plugin_info->name ) ) {
				$this->_summary[ 'news.plugin_name' ] = $plugin_info->name;
			}
		}

		self::save_summary();
	}

	/**
	 * Check if contains a package in a service or not
	 *
	 * @since  4.0
	 */
	public function has_pkg( $service, $pkg ) {
		if ( ! empty( $this->_summary[ 'usage.' . $service ][ 'pkgs' ] ) && $this->_summary[ 'usage.' . $service ][ 'pkgs' ] & $pkg ) {
			return true;
		}

		return false;
	}

	/**
	 * Get allowance of current service
	 *
	 * @since  3.0
	 * @access private
	 */
	public function allowance( $service, &$err = false ) {
		// Only auto sync usage at most one time per day
		if ( empty( $this->_summary[ 'last_request.' . self::SVC_D_USAGE ] ) || time() - $this->_summary[ 'last_request.' . self::SVC_D_USAGE ] > 86400 ) {
			$this->sync_usage();
		}

		if ( in_array( $service, array( self::SVC_CCSS, self::SVC_UCSS ) ) ) { // @since 4.2
			$service = self::SVC_PAGE_OPTM;
		}

		if ( empty( $this->_summary[ 'usage.' . $service ] ) ) {
			return 0;
		}
		$usage = $this->_summary[ 'usage.' . $service ];

		// Image optm is always free
		$allowance_max = 0;
		if ( $service == self::SVC_IMG_OPTM ) {
			$allowance_max = self::IMG_OPTM_DEFAULT_GROUP;
			if ( ! empty( $usage[ 'pkgs' ] ) && $usage[ 'pkgs' ] & self::BM_IMG_OPTM_JUMBO_GROUP ) {
				$allowance_max = self::IMG_OPTM_JUMBO_GROUP;
			}
		}

		$allowance = $usage[ 'quota' ] - $usage[ 'used' ];

		$err = 'out_of_quota';

		if ( $allowance > 0 ) {
			if ( $allowance_max && $allowance_max < $allowance ) {
				$allowance = $allowance_max;
			}

			// Daily limit @since 4.2
			if ( isset( $usage[ 'remaining_daily_quota' ] ) && $usage[ 'remaining_daily_quota' ] >= 0 && $usage[ 'remaining_daily_quota' ] < $allowance ) {
				$allowance = $usage[ 'remaining_daily_quota' ];
				if ( ! $allowance ) {
					$err = 'out_of_daily_quota';
				}
			}

			return $allowance;
		}

		// Check Pay As You Go balance
		if ( empty( $usage[ 'pag_bal' ] ) ) {
			return $allowance_max;
		}

		if ( $allowance_max && $allowance_max < $usage[ 'pag_bal' ] ) {
			return $allowance_max;
		}

		return $usage[ 'pag_bal' ];
	}

	/**
	 * Sync Cloud usage summary data
	 *
	 * @since  3.0
	 * @access public
	 */
	public function sync_usage() {
		$usage = $this->_post( self::SVC_D_USAGE );
		if ( ! $usage ) {
			return;
		}

		self::debug( 'sync_usage ' . json_encode( $usage ) );

		foreach ( self::$SERVICES as $v ) {
			$this->_summary[ 'usage.' . $v ] = ! empty( $usage[ $v ] ) ? $usage[ $v ] : false;
		}

		self::save_summary();

		return $this->_summary;
	}

	/**
	 * Clear all existing cloud nodes for future reconnect
	 *
	 * @since  3.0
	 * @access public
	 */
	public function clear_cloud() {
		foreach ( self::$SERVICES as $service ) {
			if ( isset( $this->_summary[ 'server.' . $service ] ) ) {
				unset( $this->_summary[ 'server.' . $service ] );
			}
			if ( isset( $this->_summary[ 'server_date.' . $service ] ) ) {
				unset( $this->_summary[ 'server_date.' . $service ] );
			}
		}
		self::save_summary();

		self::debug( 'Cleared all local service node caches' );
	}

	/**
	 * ping clouds to find the fastest node
	 *
	 * @since  3.0
	 * @access public
	 */
	public function detect_cloud( $service, $force = false ) {
		if ( in_array( $service, self::$CENTER_SVC_SET ) ) {
			return self::CLOUD_SERVER;
		}

		if ( in_array( $service, self::$WP_SVC_SET ) ) {
			return self::CLOUD_SERVER_WP;
		}

		// Check if the stored server needs to be refreshed
		if ( ! $force ) {
			if ( ! empty( $this->_summary[ 'server.' . $service ] ) && ! empty( $this->_summary[ 'server_date.' . $service ] ) && $this->_summary[ 'server_date.' . $service ] > time() - 86400 * self::TTL_NODE ) {
				return $this->_summary[ 'server.' . $service ];
			}
		}

		if ( ! $service || ! in_array( $service, self::$SERVICES ) ) {
			$msg = __( 'Cloud Error', 'litespeed-cache' ) . ': ' . $service;
			Admin_Display::error( $msg );
			return false;
		}

		// Send request to Quic Online Service
		$json = $this->_post( self::SVC_D_NODES, array( 'svc' => $service ) );

		// Check if get list correctly
		if ( empty( $json[ 'list' ] ) || ! is_array( $json[ 'list' ] ) ) {
			self::debug( 'request cloud list failed: ', $json );

			if ( $json ) {
				$msg = __( 'Cloud Error', 'litespeed-cache' ) . ": [Service] $service [Info] " . json_encode( $json );
				Admin_Display::error( $msg );
			}

			return false;
		}

		// Ping closest cloud
		$speed_list = array();
		foreach ( $json[ 'list' ] as $v ) {
			$speed_list[ $v ] = Utility::ping( $v );
		}

		$min = min( $speed_list );

		if ( $min == 99999 ) {
			self::debug( 'failed to ping all clouds' );
			return false;
		}

		// Random pick same time range ip (230ms 250ms)
		$range_len = strlen( $min );
		$range_num = substr( $min, 0, 1 );
		$valid_clouds = array();
		foreach ($speed_list as $node => $speed ) {
			if ( strlen( $speed ) == $range_len && substr( $speed, 0, 1 ) == $range_num ) {
				$valid_clouds[] = $node;
			}
			// Append the lower speed ones
			else if ( $speed < $min * 4 ) {
				$valid_clouds[] = $node;
			}
		}

		if ( ! $valid_clouds ) {
			$msg = __( 'Cloud Error', 'litespeed-cache' ) . ": [Service] $service [Info] " . __( 'No available Cloud Node.', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return false;
		}

		self::debug( 'Closest nodes list', $valid_clouds );

		// Check server load
		if ( in_array( $service, self::$SERVICES_LOAD_CHECK ) ) {
			$valid_cloud_loads = array();
			foreach ( $valid_clouds as $k => $v ) {
				$response = wp_remote_get( $v, array( 'timeout' => 5, 'sslverify' => true ) );
				if ( is_wp_error( $response ) ) {
					$error_message = $response->get_error_message();
					self::debug( 'failed to do load checker: ' . $error_message );
					continue;
				}

				$curr_load = json_decode( $response[ 'body' ], true );
				if ( ! empty( $curr_load[ '_res' ] ) && $curr_load[ '_res' ] == 'ok' && isset( $curr_load[ 'load' ] ) ) {
					$valid_cloud_loads[ $v ] = $curr_load[ 'load' ];
				}
			}

			if ( ! $valid_cloud_loads ) {
				$msg = __( 'Cloud Error', 'litespeed-cache' ) . ": [Service] $service [Info] " . __( 'No available Cloud Node after checked server load.', 'litespeed-cache' );
				Admin_Display::error( $msg );
				return false;
			}

			self::debug( 'Closest nodes list after load check', $valid_cloud_loads );

			$qualified_list = array_keys( $valid_cloud_loads, min( $valid_cloud_loads ) );
		}
		else {
			$qualified_list = $valid_clouds;
		}

		$closest = $qualified_list[ array_rand( $qualified_list ) ];

		self::debug( 'Chose node: ' . $closest );

		// store data into option locally
		$this->_summary[ 'server.' . $service ] = $closest;
		$this->_summary[ 'server_date.' . $service ] = time();
		self::save_summary();

		return $this->_summary[ 'server.' . $service ];
	}

	/**
	 * Get data from QUIC cloud server
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get( $service, $data = array() ) {
		$instance = self::cls();
		return $instance->_get( $service, $data );
	}

	/**
	 * Get data from QUIC cloud server
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _get( $service, $data = false ) {
		$service_tag = $service;
		if ( ! empty( $data[ 'action' ] ) ) {
			$service_tag .= '-' . $data[ 'action' ];
		}

		if ( ! $this->_maybe_cloud( $service_tag ) ) {
			return;
		}

		$server = $this->detect_cloud( $service );
		if ( ! $server ) {
			return;
		}

		$url = $server . '/' . $service;

		$param = array(
			'site_url'		=> home_url(),
			'domain_key'	=> $this->_api_key,
			'ver'			=> Core::VER,
		);

		if ( $data ) {
			$param[ 'data' ] = $data;
		}

		$url .= '?' . http_build_query( $param );

		self::debug( 'getting from : ' . $url );

		$this->_summary[ 'curr_request.' . $service_tag ] = time();
		self::save_summary();

		$response = wp_remote_get( $url, array( 'timeout' => 15, 'sslverify' => true ) );

		return $this->_parse_response( $response, $service, $service_tag, $server );
	}

	/**
	 * Check if is able to do cloud request or not
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _maybe_cloud( $service_tag ) {
		if ( ! wp_http_validate_url( home_url() ) ) {
			return false;
		}

		// we don't want the `img_optm-taken` to fail at any given time
		if ( $service_tag == self::IMGOPTM_TAKEN ) {
			return true;
		}

		$expiration_req = self::EXPIRATION_REQ;
		// Limit frequent unfinished request to 5min
		$timestamp_tag = 'curr_request.';
		if ( $service_tag == self::SVC_IMG_OPTM . '-' . Img_Optm::TYPE_NEW_REQ ) {
			$timestamp_tag = 'last_request.';
			if ( $this->has_pkg( self::SVC_IMG_OPTM, self::BM_IMG_OPTM_PRIO ) ) {
				$expiration_req /= 10;
			}
		}
		else {
			// For all other requests, if is under debug mode, will always allow
			if ( $this->conf( self::O_DEBUG ) && $this->_api_key ) {
				return true;
			}
		}

		if ( ! empty( $this->_summary[ $timestamp_tag . $service_tag ] ) ) {
			$expired = $this->_summary[ $timestamp_tag . $service_tag ] + $expiration_req - time();
			if ( $expired > 0 ) {
				self::debug( "❌ try [$service_tag] after $expired seconds" );

				if ( $service_tag !== self::API_VER ) {
					$msg = __( 'Cloud Error', 'litespeed-cache' ) . ': ' . sprintf( __( 'Please try after %1$s for service %2$s.', 'litespeed-cache' ), Utility::readable_time( $expired, 0, true ), '<code>' . $service_tag . '</code>' );
					Admin_Display::error( array( 'cloud_trylater' => $msg ) );
				}

				return false;
			}
		}

		if ( in_array( $service_tag, self::$_PUB_SVC_SET ) ) {
			return true;
		}

		if ( ! $this->_api_key ) {
			Admin_Display::error( Error::msg( 'lack_of_api_key' ) );
			return false;
		}

		return true;
	}

	/**
	 * Post data to QUIC.cloud server
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function post( $service, $data = false, $time_out = false ) {
		$instance = self::cls();
		return $instance->_post( $service, $data, $time_out );
	}

	/**
	 * Post data to cloud server
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _post( $service, $data = false, $time_out = false ) {
		$service_tag = $service;
		if ( ! empty( $data[ 'action' ] ) ) {
			$service_tag .= '-' . $data[ 'action' ];
		}

		if ( ! $this->_maybe_cloud( $service_tag ) ) {
			return;
		}

		$server = $this->detect_cloud( $service );
		if ( ! $server ) {
			return;
		}

		$url = $server . '/' . $service;

		self::debug( 'posting to : ' . $url );

		$param = array(
			'site_url'		=> home_url(),
			'domain_key'	=> $this->_api_key,
			'ver'			=> Core::VER,
			'data' 			=> $data,
		);

		$this->_summary[ 'curr_request.' . $service_tag ] = time();
		self::save_summary();

		$response = wp_remote_post( $url, array( 'body' => $param, 'timeout' => $time_out ?: 15, 'sslverify' => true ) );

		return $this->_parse_response( $response, $service, $service_tag, $server );
	}

	/**
	 * Parse response JSON
	 * Mark the request successful if the response status is ok
	 *
	 * @since  3.0
	 */
	private function _parse_response( $response, $service, $service_tag, $server ) {
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			self::debug( 'failed to request: ' . $error_message );

			if ( $service !== self::API_VER ) {
				$msg = __( 'Failed to request via WordPress', 'litespeed-cache' ) . ': ' . $error_message . " [server] $server [service] $service";
				Admin_Display::error( $msg );

				// Force redetect node
				self::debug( 'Node error, redetecting node [svc] ' . $service );
				$this->detect_cloud( $service, true );
			}
			return;
		}

		$json = json_decode( $response[ 'body' ], true );

		if ( ! is_array( $json ) ) {
			self::debug( 'failed to decode response json: ' . $response[ 'body' ] );

			if ( $service !== self::API_VER ) {
				$msg = __( 'Failed to request via WordPress', 'litespeed-cache' ) . ': ' . $response[ 'body' ] . " [server] $server [service] $service";
				Admin_Display::error( $msg );

				// Force redetect node
				self::debug( 'Node error, redetecting node [svc] ' . $service );
				$this->detect_cloud( $service, true );
			}

			return;
		}

		if ( ! empty( $json[ '_code' ] ) ) {
			if ( $json[ '_code' ] == 'heavy_load' || $json[ '_code' ] == 'redetect_node' ) {
				// Force redetect node
				self::debug( 'Node redetecting node [svc] ' . $service );
				Admin_Display::info( __( 'Redetected node', 'litespeed-cache' ) . ': ' . Error::msg( $json[ '_code' ] ) );
				$this->detect_cloud( $service, true );
			}
		}

		if ( ! empty( $json[ '_503' ] ) ) {
			self::debug( 'service 503 unavailable temporarily. ' . $json[ '_503' ] );

			$msg = __( 'We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.', 'litespeed-cache' );
			$msg .= ' ' . $json[ '_503' ] . " [server] $server [service] $service";
			Admin_Display::error( $msg );

			// Force redetect node
			self::debug( 'Node error, redetecting node [svc] ' . $service );
			$this->detect_cloud( $service, true );

			return;
		}

		if ( ! empty( $json[ '_info' ] ) ) {
			self::debug( '_info: ' . $json[ '_info' ] );
			$msg = __( 'Message from QUIC.cloud server', 'litespeed-cache' ) . ': ' . $json[ '_info' ];
			$msg .= $this->_parse_link( $json );
			Admin_Display::info( $msg );
			unset( $json[ '_info' ] );
		}

		if ( ! empty( $json[ '_note' ] ) ) {
			self::debug( '_note: ' . $json[ '_note' ] );
			$msg = __( 'Message from QUIC.cloud server', 'litespeed-cache' ) . ': ' . $json[ '_note' ];
			$msg .= $this->_parse_link( $json );
			Admin_Display::note( $msg );
			unset( $json[ '_note' ] );
		}

		if ( ! empty( $json[ '_success' ] ) ) {
			self::debug( '_success: ' . $json[ '_success' ] );
			$msg = __( 'Good news from QUIC.cloud server', 'litespeed-cache' ) . ': ' . $json[ '_success' ];
			$msg .= $this->_parse_link( $json );
			Admin_Display::succeed( $msg );
			unset( $json[ '_success' ] );
		}

		// Upgrade is required
		if ( ! empty( $json[ '_err_req_v' ] ) ) {
			self::debug( '_err_req_v: ' . $json[ '_err_req_v' ] );
			$msg = sprintf( __( '%1$s plugin version %2$s required for this action.', 'litespeed-cache' ), Core::NAME, 'v' . $json[ '_err_req_v' ] . '+' ) . " [server] $server [service] $service";

			// Append upgrade link
			$msg2 = ' ' . GUI::plugin_upgrade_link( Core::NAME, Core::PLUGIN_NAME, $json[ '_err_req_v' ] );

			$msg2 .= $this->_parse_link( $json );
			Admin_Display::error( $msg . $msg2 );
			return;
		}

		// Parse _carry_on info
		if ( ! empty( $json[ '_carry_on' ] ) ) {
			self::debug( 'Carry_on usage', $json[ '_carry_on' ] );
			// Store generic info
			foreach ( array( 'usage', 'promo' ) as $v ) {
				if ( ! empty( $json[ '_carry_on' ][ $v ] ) ) {
					switch ( $v ) {
						case 'usage':
							$usage_svc_tag = in_array( $service, array( self::SVC_CCSS, self::SVC_UCSS ) ) ? self::SVC_PAGE_OPTM : $service;
							$this->_summary[ 'usage.' . $usage_svc_tag ] = $json[ '_carry_on' ][ $v ];
							break;

						case 'promo':
							if ( empty( $this->_summary[ $v ] ) || ! is_array( $this->_summary[ $v ] ) ) {
								$this->_summary[ $v ] = array();
							}
							$this->_summary[ $v ][] = $json[ '_carry_on' ][ $v ];
							break;

						default:
							break;
					}
				}
			}
			self::save_summary();
			unset( $json[ '_carry_on' ] );
		}

		// Parse general error msg
		if ( empty( $json[ '_res' ] ) || $json[ '_res' ] !== 'ok' ) {
			$json_msg = ! empty( $json[ '_msg' ] ) ? $json[ '_msg' ] : 'unknown';
			self::debug( '❌ _err: ' . $json_msg );

			$msg = __( 'Failed to communicate with QUIC.cloud server', 'litespeed-cache' ) . ': ' . Error::msg( $json_msg ) . " [server] $server [service] $service";
			$msg .= $this->_parse_link( $json );
			Admin_Display::error( $msg );

			// Site not on QC, delete invalid domain key
			if ( $json_msg == 'site_not_registered' || $json_msg == 'err_key' ) {
				$this->cls( 'Conf' )->update_confs( array( self::O_API_KEY => '' ) );

				$msg = __( 'Site not recognized. Domain Key has been automatically removed. Please request a new one.', 'litespeed-cache' );
				$msg .= Doc::learn_more( admin_url( 'admin.php?page=litespeed-general' ), __( 'Click here to set.', 'litespeed-cache' ), true, false, true );
				$msg .= Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/#domain-key', false, false, false, true );
				Admin_Display::error( $msg, false, true );
			}

			return;
		}

		unset( $json[ '_res' ] );
		if ( ! empty( $json[ '_msg' ] ) ) {
			unset( $json[ '_msg' ] );
		}

		$this->_summary[ 'last_request.' . $service_tag ] = $this->_summary[ 'curr_request.' . $service_tag ];
		$this->_summary[ 'curr_request.' . $service_tag ] = 0;
		self::save_summary();

		if ( $json ) {
			self::debug2( 'response ok', $json );
		}
		else {
			self::debug2( 'response ok' );
		}

		// Only successful request return Array
		return $json;
	}

	/**
	 * Show promo from cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function show_promo() {
		// if ( ! $this->_api_key && ! defined( 'LITESPEED_DISMISS_DOMAIN_KEY' ) ) {
		// 	Admin_Display::error( Error::msg( 'lack_of_api_key' ), true );
		// }

		if ( empty( $this->_summary[ 'promo' ] ) ) {
			return;
		}

		require_once LSCWP_DIR . 'tpl/banner/cloud_promo.tpl.php' ;
	}

	/**
	 * Clear promo from cloud
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _clear_promo() {
		if ( count( $this->_summary[ 'promo' ] ) > 1 ) {
			array_shift( $this->_summary[ 'promo' ] );
		}
		else {
			$this->_summary[ 'promo' ] = array();
		}
		self::save_summary();
	}

	/**
	 * Parse _links from json
	 *
	 * @since  1.6.5
	 * @since  1.6.7 Self clean the parameter
	 * @access private
	 */
	private function _parse_link( &$json ) {
		$msg = '';

		if ( ! empty( $json[ '_links' ] ) ) {
			foreach ( $json[ '_links' ] as $v ) {
				$msg .= ' ' . sprintf( '<a href="%s" class="%s" target="_blank">%s</a>', $v[ 'link' ], ! empty( $v[ 'cls' ] ) ? $v[ 'cls' ] : '', $v[ 'title' ] );
			}

			unset( $json[ '_links' ] );
		}

		return $msg;
	}

	/**
	 * Request callback validation from Cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function ip_validate() {
		if ( empty( $_POST[ 'hash' ] ) ) {
			self::debug( 'Lack of hash param' );
			return self::err( 'lack_of_param' );
		}

		if ( empty( $this->_api_key ) ) {
			self::debug( 'Lack of API key' );
			return self::err( 'lack_of_api_key' );
		}

		$to_validate = substr( $this->_api_key, 0, 4 );
		if ( $_POST[ 'hash' ] !== md5( $to_validate ) ) {
			self::debug( '__callback IP request hash wrong: md5(' . $to_validate . ') !== ' . $_POST[ 'hash' ] );
			return self::err( 'err_hash' );
		}

		Control::set_nocache( 'Cloud IP hash validation' );

		$res_hash = substr( $this->_api_key, 2, 4 );

		self::debug( '__callback IP request hash: md5(' . $res_hash . ')' );

		return self::ok( array( 'hash' => md5( $res_hash ) ) );
	}

	/**
	 * Can apply for a new token or not
	 *
	 * @since 3.0
	 */
	public function can_token() {
		return empty( $this->_summary[ 'token_ts' ] ) || time() - $this->_summary[ 'token_ts' ] > self::EXPIRATION_TOKEN;
	}

	/**
	 * Send request for domain key, get json [ 'token' => 'asdfasdf' ]
	 *
	 * @since  3.0
	 * @access public
	 */
	public function gen_key() {
		$data = array(
			'site_url'	=> home_url(),
			'rest'		=> function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' ),
			'server_ip'	=> $this->conf( self::O_SERVER_IP ),
		);
		if ( ! empty( $this->_summary[ 'token' ] ) ) {
			$data[ 'token' ] = $this->_summary[ 'token' ];
		}

		$response = wp_remote_get( self::CLOUD_SERVER . '/d/req_key?data=' . Utility::arr2str( $data ) );
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			self::debug( 'failed to gen_key: ' . $error_message );
			Admin_Display::error( __( 'Cloud Error', 'litespeed-cache' ) . ': ' . $error_message );
			return;
		}

		$json = json_decode( $response[ 'body' ], true );

		// Save token option
		if ( ! empty( $json[ 'token' ] ) ) {
			$this->_summary[ 'token' ] = $json[ 'token' ];
			$this->_summary[ 'token_ts' ] = time();
			if ( ! empty( $this->_summary[ 'apikey_ts' ] ) ) {
				unset( $this->_summary[ 'apikey_ts' ] );
			}
			self::save_summary();
		}

		// Parse general error msg
		if ( empty( $json[ '_res' ] ) || $json[ '_res' ] !== 'ok' ) {
			// clear current token
			unset( $this->_summary[ 'token' ] );
			self::save_summary();

			$json_msg = ! empty( $json[ '_msg' ] ) ? $json[ '_msg' ] : 'unknown';
			self::debug( '❌ _err: ' . $json_msg );

			$msg = __( 'Failed to communicate with QUIC.cloud server', 'litespeed-cache' ) . ': ' . Error::msg( $json_msg );
			$msg .= $this->_parse_link( $json );
			Admin_Display::error( $msg );

			return;
		}

		// This is a ok msg
		if ( ! empty( $json[ '_msg' ] ) ) {
			self::debug( '_msg: ' . $json[ '_msg' ] );

			$msg = __( 'Message from QUIC.cloud server', 'litespeed-cache' ) . ': ' . Error::msg( $json[ '_msg' ] );
			$msg .= $this->_parse_link( $json );
			Admin_Display::info( $msg );
			return;
		}

		self::debug( '✅ send request for key successfully.' );

		Admin_Display::succeed( __( 'Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.', 'litespeed-cache' ) );
	}

	/**
	 * Token callback validation from Cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function token_validate() {
		try {
			$this->_validate_hash();
		} catch( \Exception $e ) {
			return self::err( $e->getMessage() );
		}

		Control::set_nocache( 'Cloud token validation' );

		self::debug( '✅ __callback token validation passed' );

		return self::ok( array( 'hash' => md5( substr( $this->_summary[ 'token' ], 3, 8 ) ) ) );
	}

	/**
	 * Callback for approval of api key after validated token and gen key from QUIC.cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function save_apikey() {
		// Validate token hash first
		if ( empty( $_POST[ 'domain_key' ] ) || ! isset( $_POST[ 'is_linked' ] ) ) {
			return self::err( 'lack_of_param' );
		}

		try {
			$this->_validate_hash( 1 );
		} catch( \Exception $e ) {
			return self::err( $e->getMessage() );
		}

		// This doesn't need to sync QUIC conf but need to clear nodes
		$this->cls( 'Conf' )->update_confs( array( self::O_API_KEY => $_POST[ 'domain_key' ] ) );

		$this->_summary[ 'is_linked' ] = $_POST[ 'is_linked' ] ? 1 : 0;
		$this->_summary[ 'apikey_ts' ] = time();
		// Clear token
		unset( $this->_summary[ 'token' ] );
		self::save_summary();

		self::debug( '✅ saved auth_key' );
		Admin_Display::succeed( '🎊 ' . __( 'Congratulations, your Domain Key has been approved! The setting has been updated accordingly.', 'litespeed-cache' ) );

		return self::ok();
	}

	/**
	 * Validate POST hash match local token or not
	 *
	 * @since  3.0
	 */
	private function _validate_hash( $offset = 0 ) {
		if ( empty( $_POST[ 'hash' ] ) ) {
			self::debug( 'Lack of hash param' );
			throw new \Exception( 'lack_of_param' );
		}

		if ( empty( $this->_summary[ 'token' ] ) ) {
			self::debug( 'token validate failed: token not exist' );
			throw new \Exception( 'lack_of_local_token' );
		}

		if ( $_POST[ 'hash' ] !== md5( substr( $this->_summary[ 'token' ], $offset, 8 ) ) ) {
			self::debug( 'token validate failed: token mismatch hash !== ' . $_POST[ 'hash' ] );
			throw new \Exception( 'mismatch' );
		}
	}

	/**
	 * If can link the domain to QC user or not
	 *
	 * @since  3.0
	 */
	public function can_link_qc() {
		return empty( $this->_summary[ 'is_linked' ] ) && $this->_api_key;
	}

	/**
	 * Link the domain to QC user
	 *
	 * @since  3.0
	 */
	private function _link_to_qc() {
		if ( ! $this->can_link_qc() ) {
			return;
		}

		$data = array(
			'site_url'		=> home_url(),
			'domain_hash'	=> md5( substr( $this->_api_key, 0, 8 ) ),
			'ref'			=> get_admin_url( null, 'admin.php?page=litespeed-general' ),
		);

		wp_redirect( self::CLOUD_SERVER_DASH . '/u/wp?data=' . Utility::arr2str( $data ) );
		exit;
	}

	/**
	 * Update is_linked status if is a redirected back from QC
	 *
	 * @since  3.0
	 */
	public function update_is_linked_status() {
		if ( empty( $_GET[ 'qc_res' ] ) || empty( $_GET[ 'domain_hash' ] ) ) {
			return;
		}

		if ( ! $this->_api_key ) {
			return;
		}

		if ( md5( substr( $this->_api_key, 2, 8 ) ) !== $_GET[ 'domain_hash' ] ) {
			Admin_Display::error( __( 'Domain Key hash mismatch', 'litespeed-cache' ), true );
			return;
		}

		$this->_summary[ 'is_linked' ] = 1;
		self::save_summary();

		// Drop QS
		echo "<script>window.history.pushState( 'remove_gen_link', document.title, window.location.href.replace( '&qc_res=" . sanitize_key( $_GET[ 'qc_res' ] ) . "&domain_hash=" . sanitize_key( $_GET[ 'domain_hash' ] ) . "', '' ) );</script>";
	}

	/**
	 * Check if this visit is from cloud or not
	 *
	 * @since  3.0
	 */
	public function is_from_cloud() {
		if ( empty( $this->_summary[ 'ips' ] ) || empty( $this->_summary[ 'ips_ts' ] ) || time() - $this->_summary[ 'ips_ts' ] > 86400 * self::TTL_IPS ) {
			$this->_update_ips();
		}

		$res = $this->cls( 'Router' )->ip_access( $this->_summary[ 'ips' ] );
		if ( ! $res ) {
			self::debug( '❌ Not our cloud IP' );

			// Refresh IP list for future detection
			$this->_update_ips();
		}
		else {
			self::debug( '✅ Passed Cloud IP verification' );
		}

		return $res;
	}

	/**
	 * Update Cloud IP list
	 *
	 * @since 4.2
	 */
	private function _update_ips() {
		self::debug( 'Load remote Cloud IP list from ' . self::CLOUD_IPS );

		$response = wp_remote_get( self::CLOUD_IPS . '?json' );
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			self::debug( 'failed to get ip whitelist: ' . $error_message );
			throw new \Exception( 'Failed to fetch QUIC.cloud whitelist ' . $error_message );
		}

		$json = json_decode( $response[ 'body' ], true );

		$this->_summary[ 'ips_ts' ] = time();
		$this->_summary[ 'ips' ] = $json;
		self::save_summary();
	}

	/**
	 * Return succeeded response
	 *
	 * @since  3.0
	 */
	public static function ok( $data = array() ) {
		$data[ '_res' ] = 'ok';
		return $data;
	}

	/**
	 * Return error
	 *
	 * @since  3.0
	 */
	public static function err( $code ) {
		return array( '_res' => 'err', '_msg' => $code );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_CLEAR_CLOUD:
				$this->clear_cloud();
				break;

			case self::TYPE_REDETECT_CLOUD:
				if ( ! empty( $_GET[ 'svc' ] ) ) {
					$this->detect_cloud( $_GET[ 'svc' ], true );
				}
				break;

			case self::TYPE_CLEAR_PROMO:
				$this->_clear_promo();
				break;

			case self::TYPE_GEN_KEY:
				$this->gen_key();
				break;

			case self::TYPE_LINK:
				$this->_link_to_qc();
				break;

			case self::TYPE_SYNC_USAGE:
				$this->sync_usage();

				$msg = __( 'Sync credit allowance with Cloud Server successfully.', 'litespeed-cache' ) ;
				Admin_Display::succeed( $msg ) ;
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php
/**
 * The tools
 *
 * @since      	3.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Tool extends Root {
	/**
	 * Get public IP
	 *
	 * @since  3.0
	 * @access public
	 */
	public function check_ip() {
		Debug2::debug( '[Tool] ✅ check_ip' );

		$response = wp_remote_get( 'https://www.doapi.us/ip' );

		if ( is_wp_error( $response ) ) {
			return new \WP_Error( 'remote_get_fail', 'Failed to fetch from https://www.doapi.us/ip', array( 'status' => 404 ) );
		}

		$data = $response[ 'body' ];

		Debug2::debug( '[Tool] result [ip] ' . $data );

		return $data;
	}

	/**
	 * Heartbeat Control
	 *
	 * NOTE: since WP4.9, there could be a core bug that sometimes the hook is not working.
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat() {
		add_action( 'wp_enqueue_scripts', array( $this, 'heartbeat_frontend' ) );
		add_action( 'admin_enqueue_scripts', array( $this, 'heartbeat_backend' ) );
		add_filter( 'heartbeat_settings', array( $this, 'heartbeat_settings' ) );
	}

	/**
	 * Heartbeat Control frontend control
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_frontend() {
		if ( ! $this->conf( Base::O_MISC_HEARTBEAT_FRONT ) ) {
			return;
		}

		if ( ! $this->conf( Base::O_MISC_HEARTBEAT_FRONT_TTL ) ) {
			wp_deregister_script( 'heartbeat' );
			Debug2::debug( '[Tool] Deregistered frontend heartbeat' );
		}
	}

	/**
	 * Heartbeat Control backend control
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_backend() {
		if ( $this->_is_editor() ) {
			if ( ! $this->conf( Base::O_MISC_HEARTBEAT_EDITOR ) ) {
				return;
			}

			if ( ! $this->conf( Base::O_MISC_HEARTBEAT_EDITOR_TTL ) ) {
				wp_deregister_script( 'heartbeat' );
				Debug2::debug( '[Tool] Deregistered editor heartbeat' );
			}
		}
		else {
			if ( ! $this->conf( Base::O_MISC_HEARTBEAT_BACK ) ) {
				return;
			}

			if ( ! $this->conf( Base::O_MISC_HEARTBEAT_BACK_TTL ) ) {
				wp_deregister_script( 'heartbeat' );
				Debug2::debug( '[Tool] Deregistered backend heartbeat' );
			}
		}

	}

	/**
	 * Heartbeat Control settings
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_settings( $settings ) {
		// Check editor first to make frontend editor valid too
		if ( $this->_is_editor() ) {
			if ( $this->conf( Base::O_MISC_HEARTBEAT_EDITOR ) ) {
				$settings[ 'interval' ] = $this->conf( Base::O_MISC_HEARTBEAT_EDITOR_TTL );
				Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->conf( Base::O_MISC_HEARTBEAT_EDITOR_TTL ) );
			}
		}
		elseif ( ! is_admin() ) {
			if ( $this->conf( Base::O_MISC_HEARTBEAT_FRONT ) ) {
				$settings[ 'interval' ] = $this->conf( Base::O_MISC_HEARTBEAT_FRONT_TTL );
				Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->conf( Base::O_MISC_HEARTBEAT_FRONT_TTL ) );
			}
		}
		else {
			if ( $this->conf( Base::O_MISC_HEARTBEAT_BACK ) ) {
				$settings[ 'interval' ] = $this->conf( Base::O_MISC_HEARTBEAT_BACK_TTL );
				Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->conf( Base::O_MISC_HEARTBEAT_BACK_TTL ) );
			}
		}
		return $settings;
	}

	/**
	 * If is in editor
	 *
	 * @since  3.0
	 * @access public
	 */
	private function _is_editor() {
		$res = is_admin() && Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], array( 'post.php', 'post-new.php' ) );

		return apply_filters( 'litespeed_is_editor', $res );
	}

}`id` bigint(20) NOT NULL AUTO_INCREMENT,
`url_id` bigint(20) NOT NULL,
`vary` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'md5 of final vary',
`filename` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'md5 of file content',
`type` tinyint(4) NOT NULL COMMENT 'css=1,js=2,ccss=3,ucss=4',
`expired` int(11) NOT NULL DEFAULT 0,
PRIMARY KEY (`id`),
KEY `filename` (`filename`),
KEY `type` (`type`),
KEY `url_id_2` (`url_id`,`vary`,`type`),
KEY `filename_2` (`filename`,`expired`),
KEY `url_id` (`url_id`,`expired`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `optm_status` tinyint(4) NOT NULL DEFAULT '0',
  `src` varchar(1000) NOT NULL DEFAULT '',
  `server_info` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `post_id` (`post_id`),
  KEY `optm_status` (`optm_status`),
  KEY `src` (`src`(191))
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`url` varchar(500) NOT NULL,
`cache_tags` varchar(1000) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`(191)),
KEY `cache_tags` (`cache_tags`(191))  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `res` varchar(255) NOT NULL DEFAULT '' COMMENT '-=not crawl, H=hit, M=miss, B=blacklist',
  `reason` text NOT NULL COMMENT 'response code, comma separated',
  `mtime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `url` (`url`(191)),
  KEY `res` (`res`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `optm_status` tinyint(4) NOT NULL DEFAULT '0',
  `src` text NOT NULL,
  `src_filesize` int(11) NOT NULL DEFAULT '0',
  `target_filesize` int(11) NOT NULL DEFAULT '0',
  `webp_filesize` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `post_id` (`post_id`),
  KEY `optm_status` (`optm_status`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `md5` varchar(128) NOT NULL DEFAULT '',
  `dateline` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `md5` (`md5`),
  KEY `dateline` (`dateline`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `res` varchar(255) NOT NULL DEFAULT '' COMMENT '-=Not Blacklist, B=blacklist',
  `reason` text NOT NULL COMMENT 'Reason for blacklist, comma separated',
  `mtime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `url` (`url`(191)),
  KEY `res` (`res`)
<?php
/**
 * The admin optimize tool
 *
 *
 * @since      1.2.1
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class DB_Optm extends Root {
	private static $_hide_more = false;

	private static $TYPES = array( 'revision', 'auto_draft', 'trash_post', 'spam_comment', 'trash_comment', 'trackback-pingback', 'expired_transient', 'all_transients', 'optimize_tables' );
	const TYPE_CONV_TB = 'conv_innodb';

	/**
	 * Show if there are more sites in hidden
	 *
	 * @since  3.0
	 */
	public static function hide_more() {
		return self::$_hide_more;
	}

	/**
	 * Clean/Optimize WP tables
	 *
	 * @since  1.2.1
	 * @access public
	 * @param  string $type The type to clean
	 * @param  bool $ignore_multisite If ignore multisite check
	 * @return  int The rows that will be affected
	 */
	public function db_count( $type, $ignore_multisite = false ) {
		if ( $type === 'all' ) {
			$num = 0;
			foreach ( self::$TYPES as $v ) {
				$num += $this->db_count( $v );
			}
			return $num;
		}

		if ( ! $ignore_multisite ) {
			if ( is_multisite() && is_network_admin() ) {
				$num = 0;
				$blogs = Activation::get_network_ids();
				foreach ( $blogs as $k => $blog_id ) {
					if ( $k > 3 ) {
						self::$_hide_more = true;
						break;
					}

					switch_to_blog( $blog_id );
					$num += $this->db_count( $type, true );
					restore_current_blog();
				}
				return $num;
			}
		}

		global $wpdb;

		switch ( $type ) {
			case 'revision':
				$rev_max = (int) $this->conf( Base::O_DB_OPTM_REVISIONS_MAX );
				$rev_age = (int) $this->conf( Base::O_DB_OPTM_REVISIONS_AGE );
				$sql_add = '';
				if ( $rev_age ) {
					$sql_add = " and post_modified < DATE_SUB( NOW(), INTERVAL $rev_age DAY ) ";
				}
				$sql = "SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add";
				if ( ! $rev_max ) {
					return $wpdb->get_var( $sql );
				}
				// Has count limit
				$sql = "SELECT COUNT(*)-$rev_max FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add GROUP BY post_parent HAVING count(*)>$rev_max";
				$res = $wpdb->get_results( $sql, ARRAY_N );

				Utility::compatibility();
				return array_sum( array_column( $res, 0 ) );

			case 'auto_draft':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_status = 'auto-draft'" );

			case 'trash_post':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_status = 'trash'" );

			case 'spam_comment':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_approved = 'spam'" );

			case 'trash_comment':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_approved = 'trash'" );

			case 'trackback-pingback':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_type = 'trackback' OR comment_type = 'pingback'" );

			case 'expired_transient':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->options` WHERE option_name LIKE '_transient_timeout%' AND option_value < " . time() );

			case 'all_transients':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->options` WHERE option_name LIKE '%_transient_%'" );

			case 'optimize_tables':
				return $wpdb->get_var( "SELECT COUNT(*) FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE <> 'InnoDB' and DATA_FREE > 0" );
		}

		return '-';
	}

	/**
	 * Clean/Optimize WP tables
	 *
	 * @since  1.2.1
	 * @since 3.0 changed to private
	 * @access private
	 */
	private function _db_clean( $type ) {
		if ( $type === 'all' ) {
			foreach ( self::$TYPES as $v ) {
				$this->_db_clean( $v );
			}
			return __( 'Clean all successfully.', 'litespeed-cache' );
		}

		global $wpdb;
		switch ( $type ) {
			case 'revision':
				$rev_max = (int) $this->conf( Base::O_DB_OPTM_REVISIONS_MAX );
				$rev_age = (int) $this->conf( Base::O_DB_OPTM_REVISIONS_AGE );

				$sql_add = '';
				if ( $rev_age ) {
					$sql_add = " and post_modified < DATE_SUB( NOW(), INTERVAL $rev_age DAY ) ";
				}

				if ( ! $rev_max ) {
					$sql = "DELETE FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add";
					$wpdb->query( $sql );
				}
				else { // Has count limit
					$sql = "SELECT COUNT(*)-$rev_max as del_max,post_parent FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add GROUP BY post_parent HAVING count(*)>$rev_max";
					$res = $wpdb->get_results( $sql );
					foreach ( $res as $v ) {
						$sql = "DELETE FROM `$wpdb->posts` WHERE post_type = 'revision' AND post_parent = %d ORDER BY ID LIMIT %d";
						$wpdb->query( $wpdb->prepare( $sql, array( $v->post_parent, $v->del_max ) ) );
					}
				}

				return __( 'Clean post revisions successfully.', 'litespeed-cache' );

			case 'auto_draft':
				$wpdb->query( "DELETE FROM `$wpdb->posts` WHERE post_status = 'auto-draft'" );
				return __( 'Clean auto drafts successfully.', 'litespeed-cache' );

			case 'trash_post':
				$wpdb->query( "DELETE FROM `$wpdb->posts` WHERE post_status = 'trash'" );
				return __( 'Clean trashed posts and pages successfully.', 'litespeed-cache' );

			case 'spam_comment':
				$wpdb->query( "DELETE FROM `$wpdb->comments` WHERE comment_approved = 'spam'" );
				return __( 'Clean spam comments successfully.', 'litespeed-cache' );

			case 'trash_comment':
				$wpdb->query( "DELETE FROM `$wpdb->comments` WHERE comment_approved = 'trash'" );
				return __( 'Clean trashed comments successfully.', 'litespeed-cache' );

			case 'trackback-pingback':
				$wpdb->query( "DELETE FROM `$wpdb->comments` WHERE comment_type = 'trackback' OR comment_type = 'pingback'" );
				return __( 'Clean trackbacks and pingbacks successfully.', 'litespeed-cache' );

			case 'expired_transient':
				$wpdb->query( "DELETE FROM `$wpdb->options` WHERE option_name LIKE '_transient_timeout%' AND option_value < " . time() );
				return __( 'Clean expired transients successfully.', 'litespeed-cache' );

			case 'all_transients':
				$wpdb->query( "DELETE FROM `$wpdb->options` WHERE option_name LIKE '%\\_transient\\_%'" );
				return __( 'Clean all transients successfully.', 'litespeed-cache' );

			case 'optimize_tables':
				$sql = "SELECT table_name, DATA_FREE FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE <> 'InnoDB' and DATA_FREE > 0";
				$result = $wpdb->get_results( $sql );
				if ( $result ) {
					foreach ( $result as $row ) {
						$wpdb->query( 'OPTIMIZE TABLE ' . $row->table_name );
					}
				}
				return __( 'Optimized all tables.', 'litespeed-cache' );
		}

	}

	/**
	 * Get all myisam tables
	 *
	 * @since 3.0
	 * @access public
	 */
	public function list_myisam() {
		global $wpdb;
		$q = "SELECT * FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE = 'myisam' AND TABLE_NAME LIKE '{$wpdb->prefix}%'";
		return $wpdb->get_results( $q );
	}

	/**
	 * Convert tables to InnoDB
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _conv_innodb() {
		global $wpdb;

		if ( empty( $_GET[ 'tb' ] ) ) {
			Admin_Display::error( 'No table to convert' );
			return;
		}

		$tb = false;

		$list = $this->list_myisam();
		foreach ( $list as $v ) {
			if ( $v->TABLE_NAME == $_GET[ 'tb' ] ) {
				$tb = $v->TABLE_NAME;
				break;
			}
		}

		if ( ! $tb ) {
			Admin_Display::error( 'No existing table' );
			return;
		}

		$q = 'ALTER TABLE ' . DB_NAME . '.' . $tb . ' ENGINE = InnoDB';
		$wpdb->query( $q );

		Debug2::debug( "[DB] Converted $tb to InnoDB" );

		$msg = __( 'Converted to InnoDB successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );

	}

	/**
	 * Count all autoload size
	 *
	 * @since  3.0
	 * @access public
	 */
	public function autoload_summary() {
		global $wpdb;

		$summary = $wpdb->get_row( "SELECT SUM(LENGTH(option_value)) AS autoload_size,COUNT(*) AS autload_entries FROM `$wpdb->options` WHERE autoload='yes'" );

		$summary->autoload_toplist = $wpdb->get_results( "SELECT option_name, LENGTH(option_value) AS option_value_length FROM `$wpdb->options` WHERE autoload='yes' ORDER BY option_value_length DESC LIMIT 20" );

		return $summary;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case 'all':
			case in_array( $type, self::$TYPES ):
				if ( is_multisite() && is_network_admin() ) {
					$blogs = Activation::get_network_ids();
					foreach ( $blogs as $blog_id ) {
						switch_to_blog( $blog_id );
						$msg = $this->_db_clean( $type );
						restore_current_blog();
					}
				}
				else {
					$msg = $this->_db_clean( $type );
				}
				Admin_Display::succeed( $msg );
				break;

			case self::TYPE_CONV_TB :
				$this->_conv_innodb();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}

<?php
/**
 * The import/export class.
 *
 * @since      	1.8.2
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Import extends Base {
	protected $_summary;

	const TYPE_IMPORT = 'import';
	const TYPE_EXPORT = 'export';
	const TYPE_RESET = 'reset';

	/**
	 * Init
	 *
	 * @since  1.8.2
	 */
	public function __construct() {
		Debug2::debug( 'Import init' );

		$this->_summary = self::get_summary();
	}

	/**
	 * Export settings to file
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function export( $only_data_return = false ) {
		$raw_data = $this->get_options( true );

		$data = array();
		foreach ( $raw_data as $k => $v ) {
			$data[] = json_encode( array( $k, $v ) );
		}

		$data = implode( "\n\n", $data );

		if ( $only_data_return ) {
			return $data;
		}

		$filename = $this->_generate_filename();

		// Update log
		$this->_summary[ 'export_file' ] = $filename;
		$this->_summary[ 'export_time' ] = time();
		self::save_summary();

		Debug2::debug( 'Import: Saved to ' . $filename );

		@header( 'Content-Disposition: attachment; filename=' . $filename );
		echo $data;

		exit;
	}

	/**
	 * Import settings from file
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function import( $file = false ) {
		if ( ! $file ) {
			if ( empty( $_FILES[ 'ls_file' ][ 'name' ] ) || substr( $_FILES[ 'ls_file' ][ 'name' ], -5 ) != '.data' || empty( $_FILES[ 'ls_file' ][ 'tmp_name' ] ) ) {
				Debug2::debug( 'Import: Failed to import, wront ls_file' );

				$msg = __( 'Import failed due to file error.', 'litespeed-cache' );
				Admin_Display::error( $msg );

				return false;
			}

			$this->_summary[ 'import_file' ] = $_FILES[ 'ls_file' ][ 'name' ];

			$data = file_get_contents( $_FILES[ 'ls_file' ][ 'tmp_name' ] );
		}
		else {
			$this->_summary[ 'import_file' ] = $file;

			$data = file_get_contents( $file );
		}

		// Update log
		$this->_summary[ 'import_time' ] = time();
		self::save_summary();

		$ori_data = array();
		try {
			// Check if the data is v4+ or not
			if ( strpos( $data, '["_version",' ) === 0 ) {
				Debug2::debug( '[Import] Data version: v4+' );
				$data = explode( "\n", $data );
				foreach ( $data as $v ) {
					$v = trim( $v );
					if ( ! $v ) {
						continue;
					}
					list( $k, $v ) = json_decode( $v, true );
					$ori_data[ $k ] = $v;
				}
			}
			else {
				$ori_data = json_decode( base64_decode( $data ), true );
			}
		} catch ( \Exception $ex ) {
			Debug2::debug( '[Import] ❌ Failed to parse serialized data' );
			return false;
		}

		if ( ! $ori_data ) {
			Debug2::debug( '[Import] ❌ Failed to import, no data' );
			return false;
		}
		else {
			Debug2::debug( '[Import] Importing data', $ori_data );
		}

		$this->cls( 'Conf' )->update_confs( $ori_data );


		if ( ! $file ) {
			Debug2::debug( 'Import: Imported ' . $_FILES[ 'ls_file' ][ 'name' ] );

			$msg = sprintf( __( 'Imported setting file %s successfully.', 'litespeed-cache' ), $_FILES[ 'ls_file' ][ 'name' ] );
			Admin_Display::succeed( $msg );
		}
		else {
			Debug2::debug( 'Import: Imported ' . $file );
		}

		return true;

	}

	/**
	 * Reset all configs to default values.
	 *
	 * @since  2.6.3
	 * @access public
	 */
	public function reset() {
		$options = $this->cls( 'Conf' )->load_default_vals();

		$this->cls( 'Conf' )->update_confs( $options );

		Debug2::debug( '[Import] Reset successfully.' );

		$msg = __( 'Reset successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );

	}

	/**
	 * Generate the filename to export
	 *
	 * @since  1.8.2
	 * @access private
	 */
	private function _generate_filename() {
		// Generate filename
		$parsed_home = parse_url( get_home_url() );
		$filename = 'LSCWP_cfg-';
		if ( ! empty( $parsed_home[ 'host' ] ) ) {
			$filename .= $parsed_home[ 'host' ] . '_';
		}

		if ( ! empty( $parsed_home[ 'path' ] ) ) {
			$filename .= $parsed_home[ 'path' ] . '_';
		}

		$filename = str_replace( '/', '_', $filename );

		$filename .= '-' . date( 'Ymd_His' ) . '.data';

		return $filename;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_IMPORT:
				$this->import();
				break;

			case self::TYPE_EXPORT:
				$this->export();
				break;

			case self::TYPE_RESET:
				$this->reset();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The plugin activation class.
 *
 * @since      	1.1.0
 * @since  		1.5 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Activation extends Base {
	const TYPE_UPGRADE = 'upgrade';
	const TYPE_INSTALL_3RD = 'install_3rd';
	const TYPE_INSTALL_ZIP = 'install_zip';
	const TYPE_DISMISS_RECOMMENDED = 'dismiss_recommended';

	const NETWORK_TRANSIENT_COUNT = 'lscwp_network_count';

	private static $_data_file;

	/**
	 * Construct
	 *
	 * @since 4.1
	 */
	public function __construct() {
		self::$_data_file = LSCWP_CONTENT_DIR . '/' . self::CONF_FILE;
	}

	/**
	 * The activation hook callback.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function register_activation() {
		$count = 0;
		! defined( 'LSCWP_LOG_TAG' ) && define( 'LSCWP_LOG_TAG', 'Activate_' . get_current_blog_id() );

		if ( is_multisite() ) {
			$count = self::get_network_count();
			if ( $count !== false ) {
				$count = intval( $count ) + 1;
				set_site_transient( self::NETWORK_TRANSIENT_COUNT, $count, DAY_IN_SECONDS );
			}
		}

		// Files will be delayed updated in next visit to wp-admin
		Conf::update_option( '__activation', Core::VER );

		/* Network file handler */
		if ( is_multisite() ) {
			if ( ! is_network_admin() ) {
				if ( $count === 1 ) {
					// Only itself is activated, set .htaccess with only CacheLookUp
					try {
						Htaccess::cls()->insert_ls_wrapper();
					} catch ( \Exception $ex ) {
						Admin_Display::error( $ex->getMessage() );
					}
				}
			}
		}

		if ( defined( 'LSCWP_REF' ) && LSCWP_REF == 'whm' ) {
			GUI::update_option( GUI::WHM_MSG, GUI::WHM_MSG_VAL );
		}
	}

	/**
	 * Uninstall plugin
	 * @since 1.1.0
	 */
	public static function uninstall_litespeed_cache() {
		Task::destroy();

		// Delete options
		foreach ( Conf::cls()->load_default_vals() as $k => $v ) {
			Base::delete_option( $k );
		}

		// Delete site options
		if ( is_multisite() ) {
			foreach ( Conf::cls()->load_default_site_vals() as $k => $v ) {
				Base::delete_site_option( $k );
			}
		}

		// Delete avatar table
		Data::cls()->tables_del();

		if ( file_exists( LITESPEED_STATIC_DIR ) ) {
			File::rrmdir( LITESPEED_STATIC_DIR );
		}

		Cloud::version_check( 'uninstall' );

		// Files has been deleted when deactivated
	}

	/**
	 * Get the blog ids for the network. Accepts function arguments.
	 *
	 * Will use wp_get_sites for WP versions less than 4.6
	 *
	 * @since 1.0.12
	 * @access public
	 * @return array The array of blog ids.
	 */
	public static function get_network_ids( $args = array() ) {
		global $wp_version;
		if ( version_compare( $wp_version, '4.6', '<' ) ) {
			$blogs = wp_get_sites( $args );
			if ( ! empty( $blogs ) ) {
				foreach ( $blogs as $key => $blog ) {
					$blogs[ $key ] = $blog[ 'blog_id' ];
				}
			}
		}
		else {
			$args[ 'fields' ] = 'ids';
			$blogs = get_sites( $args );
		}
		return $blogs;
	}

	/**
	 * Gets the count of active litespeed cache plugins on multisite.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private static function get_network_count() {
		$count = get_site_transient( self::NETWORK_TRANSIENT_COUNT );
		if ( $count !== false ) {
			return intval( $count );
		}
		// need to update
		$default = array();
		$count = 0;

		$sites = self::get_network_ids( array( 'deleted' => 0 ) );
		if ( empty( $sites ) ) {
			return false;
		}

		foreach ( $sites as $site ) {
			$bid = is_object( $site ) && property_exists( $site, 'blog_id' ) ? $site->blog_id : $site;
			$plugins = get_blog_option( $bid , 'active_plugins', $default );
			if ( in_array( LSCWP_BASENAME, $plugins, true ) ) {
				$count++;
			}
		}

		/**
		 * In case this is called outside the admin page
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
			require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
		}

		if ( is_plugin_active_for_network( LSCWP_BASENAME ) ) {
			$count++;
		}
		return $count;
	}

	/**
	 * Is this deactivate call the last active installation on the multisite network?
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private static function is_deactivate_last() {
		$count = self::get_network_count();
		if ( $count === false ) {
			return false;
		}
		if ( $count !== 1 ) {
			// Not deactivating the last one.
			$count--;
			set_site_transient( self::NETWORK_TRANSIENT_COUNT, $count, DAY_IN_SECONDS );
			return false;
		}

		delete_site_transient( self::NETWORK_TRANSIENT_COUNT );
		return true;
	}

	/**
	 * The deactivation hook callback.
	 *
	 * Initializes all clean up functionalities.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function register_deactivation() {
		Task::destroy();

		! defined( 'LSCWP_LOG_TAG' ) && define( 'LSCWP_LOG_TAG', 'Deactivate_' . get_current_blog_id() );

		Purge::purge_all();

		if ( is_multisite() ) {

			if ( ! self::is_deactivate_last() ) {
				if ( is_network_admin() ) {
					// Still other activated subsite left, set .htaccess with only CacheLookUp
					try {
						Htaccess::cls()->insert_ls_wrapper();
					} catch ( \Exception $ex ) {
						Admin_Display::error( $ex->getMessage() );
					}
				}
				return;
			}
		}

		/* 1) wp-config.php; */

		try {
			self::cls()->_manage_wp_cache_const( false );
		} catch ( \Exception $ex ) {
			error_log('In wp-config.php: WP_CACHE could not be set to false during deactivation!') ;

			Admin_Display::error( $ex->getMessage() );
		}

		/* 2) adv-cache.php; Dropped in v3.0.4 */

		/* 3) object-cache.php; */

		Object_Cache::cls()->del_file();

		/* 4) .htaccess; */

		try {
			Htaccess::cls()->clear_rules();
		} catch ( \Exception $ex ) {
			Admin_Display::error( $ex->getMessage() );
		}

		/* 5) .litespeed_conf.dat; */

		self::_del_conf_data_file();

		// delete in case it's not deleted prior to deactivation.
		GUI::dismiss_whm();
	}

	/**
	 * Manage related files based on plugin latest conf
	 *
	 * NOTE: Only trigger this in backend admin access for efficiency concern
	 *
	 * Handle files:
	 * 		1) wp-config.php;
	 * 		2) adv-cache.php;
	 * 		3) object-cache.php;
	 * 		4) .htaccess;
	 * 		5) .litespeed_conf.dat;
	 *
	 * @since 3.0
	 * @access public
	 */
	public function update_files() {
		Debug2::debug( '🗂️ [Activation] update_files' );

		// Update cache setting `_CACHE`
		$this->cls( 'Conf' )->define_cache();

		// Site options applied already
		$options = $this->get_options();

		/* 1) wp-config.php; */

		try {
			$this->_manage_wp_cache_const( $options[ self::_CACHE ] );
		} catch ( \Exception $ex ) {
			// Add msg to admin page or CLI
			Admin_Display::error( $ex->getMessage() );
		}

		/* 2) adv-cache.php; Dropped in v3.0.4 */

		/* 3) object-cache.php; */

		if ( $options[ self::O_OBJECT ] && ( ! $options[ self::O_DEBUG_DISABLE_ALL ] || is_multisite() ) ) {
			$this->cls( 'Object_Cache' )->update_file( $options );
		}
		else {
			$this->cls( 'Object_Cache' )->del_file(); // Note: because it doesn't reconnect, which caused setting page OC option changes delayed, thus may meet Connect Test Failed issue (Next refresh will correct it). Not a big deal, will keep as is.
		}

		/* 4) .htaccess; */

		try {
			$this->cls( 'Htaccess' )->update( $options );
		} catch ( \Exception $ex ) {
			Admin_Display::error( $ex->getMessage() );
		}

		/* 5) .litespeed_conf.dat; */

		if ( ( $options[ self::O_GUEST ] || $options[ self::O_OBJECT ] ) && ( ! $options[ self::O_DEBUG_DISABLE_ALL ] || is_multisite() ) ) {
			$this->_update_conf_data_file( $options );
		}
	}

	/**
	 * Delete data conf file
	 *
	 * @since  4.1
	 */
	private static function _del_conf_data_file() {
		if ( file_exists( self::$_data_file ) ) {
			unlink( self::$_data_file );
		}
	}

	/**
	 * Update data conf file for guest mode & object cache
	 *
	 * @since  4.1
	 */
	private function _update_conf_data_file( $options ) {
		$ids = array();
		if ( $options[ self::O_OBJECT ] ) {
			$this_ids = array(
				self::O_OBJECT_KIND,
				self::O_OBJECT_HOST,
				self::O_OBJECT_PORT,
				self::O_OBJECT_LIFE,
				self::O_OBJECT_USER,
				self::O_OBJECT_PSWD,
				self::O_OBJECT_DB_ID,
				self::O_OBJECT_PERSISTENT,
				self::O_OBJECT_ADMIN,
				self::O_OBJECT_TRANSIENTS,
				self::O_OBJECT_GLOBAL_GROUPS,
				self::O_OBJECT_NON_PERSISTENT_GROUPS,
			);
			$ids = array_merge( $ids, $this_ids );
		}

		if ( $options[ self::O_GUEST ] ) {
			$this_ids = array(
				self::HASH,
				self::O_CACHE_LOGIN_COOKIE,
				self::O_DEBUG,
				self::O_DEBUG_IPS,
				self::O_UTIL_NO_HTTPS_VARY,
				self::O_GUEST_UAS,
				self::O_GUEST_IPS,
			);
			$ids = array_merge( $ids, $this_ids );
		}

		$data = array();
		foreach ( $ids as $v ) {
			$data[ $v ] = $options[ $v ];
		}
		$data = json_encode( $data );

		$old_data = File::read( self::$_data_file );
		if ( $old_data != $data ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Activation] Updating .litespeed_conf.dat' );
			File::save( self::$_data_file, $data );
		}
	}

	/**
	 * Update the WP_CACHE variable in the wp-config.php file.
	 *
	 * If enabling, check if the variable is defined, and if not, define it.
	 * Vice versa for disabling.
	 *
	 * @since 1.0.0
	 * @since  3.0 Refactored
	 * @access private
	 */
	private function _manage_wp_cache_const( $enable ) {
		if ( $enable ) {
			if ( defined( 'WP_CACHE' ) && WP_CACHE ) {
				return false;
			}
		}
		elseif ( ! defined( 'WP_CACHE' ) || ( defined( 'WP_CACHE' ) && ! WP_CACHE ) ) {
				return false;
		}

		if ( apply_filters( 'litespeed_wpconfig_readonly', false ) ) {
			throw new \Exception( 'wp-config file is forbidden to modify due to API hook: litespeed_wpconfig_readonly' );
		}

		/**
		 * Follow WP's logic to locate wp-config file
		 * @see wp-load.php
		 */
		$conf_file = ABSPATH . 'wp-config.php';
		if ( ! file_exists( $conf_file ) ) {
			$conf_file = dirname( ABSPATH ) . '/wp-config.php';
		}

		$content = File::read( $conf_file );
		if ( ! $content ) {
			throw new \Exception( 'wp-config file content is empty: ' . $conf_file );

		}

		// Remove the line `define('WP_CACHE', true/false);` first
		if ( defined( 'WP_CACHE' ) ) {
			$content = preg_replace( '/define\(\s*([\'"])WP_CACHE\1\s*,\s*\w+\s*\)\s*;/sU', '', $content );
		}

		// Insert const
		if ( $enable ) {
			$content = preg_replace( '/^<\?php/', "<?php\ndefine( 'WP_CACHE', true );", $content );
		}

		$res = File::save( $conf_file, $content, false, false, false );

		if ( $res !== true ) {
			throw new \Exception( 'wp-config.php operation failed when changing `WP_CACHE` const: ' . $res );
		}

		return true;
	}

	/**
	 * Handle auto update
	 *
	 * @since 2.7.2
	 * @access public
	 */
	public function auto_update() {
		if ( ! $this->conf( Base::O_AUTO_UPGRADE ) ) {
			return;
		}

		add_filter( 'auto_update_plugin', array( $this, 'auto_update_hook' ), 10, 2 );
	}

	/**
	 * Auto upgrade hook
	 *
	 * @since  3.0
	 * @access public
	 */
	public function auto_update_hook( $update, $item ) {
		if ( $item->slug == 'litespeed-cache' ) {
			$auto_v = Cloud::version_check( 'auto_update_plugin' );

			if ( ! empty( $auto_v[ 'latest' ] ) && ! empty( $item->new_version ) && $auto_v[ 'latest' ] === $item->new_version ) {
				return true;
			}
		}

		return $update; // Else, use the normal API response to decide whether to update or not
	}

	/**
	 * Upgrade LSCWP
	 *
	 * @since 2.9
	 * @access public
	 */
	public function upgrade() {
		$plugin = Core::PLUGIN_FILE;

		/**
		 * @see wp-admin/update.php
		 */
		include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
		include_once ABSPATH . 'wp-admin/includes/file.php';
		include_once ABSPATH . 'wp-admin/includes/misc.php';

		try {
			ob_start();
			$skin = new \WP_Ajax_Upgrader_Skin();
			$upgrader = new \Plugin_Upgrader( $skin );
			$result = $upgrader->upgrade( $plugin );
			if ( ! is_plugin_active( $plugin ) ) {// todo: upgrade should reactivate the plugin again by WP. Need to check why disabled after upgraded.
				activate_plugin( $plugin, '', is_multisite() );
			}
			ob_end_clean();
		} catch ( \Exception $e ) {
			Admin_Display::error( __( 'Failed to upgrade.', 'litespeed-cache' ) );
			return;
		}

		if ( is_wp_error( $result ) ) {
			Admin_Display::error( __( 'Failed to upgrade.', 'litespeed-cache' ) );
			return;
		}

		Admin_Display::succeed( __( 'Upgraded successfully.', 'litespeed-cache' ) );
	}

	/**
	 * Detect if the plugin is active or not
	 *
	 * @since  1.0
	 */
	public function dash_notifier_is_plugin_active( $plugin ) {
		include_once( ABSPATH . 'wp-admin/includes/plugin.php' );

		$plugin_path = $plugin . '/' . $plugin . '.php';

		return is_plugin_active( $plugin_path );
	}

	/**
	 * Detect if the plugin is installed or not
	 *
	 * @since  1.0
	 */
	public function dash_notifier_is_plugin_installed( $plugin ) {
		include_once( ABSPATH . 'wp-admin/includes/plugin.php' );

		$plugin_path = $plugin . '/' . $plugin . '.php';

		$valid = validate_plugin( $plugin_path );

		return ! is_wp_error( $valid );
	}

	/**
	 * Grab a plugin info from WordPress
	 *
	 * @since  1.0
	 */
	public function dash_notifier_get_plugin_info( $slug ) {
		include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
		$result = plugins_api( 'plugin_information', array( 'slug' => $slug ) );

		if ( is_wp_error( $result ) ) {
			return false;
		}

		return $result;
	}

	/**
	 * Install the 3rd party plugin
	 *
	 * @since  1.0
	 */
	public function dash_notifier_install_3rd() {
		! defined( 'SILENCE_INSTALL' ) && define( 'SILENCE_INSTALL', true );

		$slug = ! empty( $_GET[ 'plugin' ] ) ? $_GET[ 'plugin' ] : false;

		// Check if plugin is installed already
		if ( ! $slug || $this->dash_notifier_is_plugin_active( $slug ) ) {
			return;
		}

		/**
		 * @see wp-admin/update.php
		 */
		include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
		include_once ABSPATH . 'wp-admin/includes/file.php';
		include_once ABSPATH . 'wp-admin/includes/misc.php';

		$plugin_path = $slug . '/' . $slug . '.php';

		if ( ! $this->dash_notifier_is_plugin_installed( $slug ) ) {
			$plugin_info = $this->dash_notifier_get_plugin_info( $slug );
			if ( ! $plugin_info ) {
				return;
			}
			// Try to install plugin
			try {
				ob_start();
				$skin = new \Automatic_Upgrader_Skin();
				$upgrader = new \Plugin_Upgrader( $skin );
				$result = $upgrader->install( $plugin_info->download_link );
				ob_end_clean();
			} catch ( \Exception $e ) {
				return;
			}
		}

		if ( ! is_plugin_active( $plugin_path ) ) {
			activate_plugin( $plugin_path );
		}

	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.9
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_UPGRADE :
				$this->upgrade();
				break;

			case self::TYPE_INSTALL_3RD :
				$this->dash_notifier_install_3rd();
				break;

			case self::TYPE_DISMISS_RECOMMENDED:
				$summary = Cloud::get_summary();
				$summary[ 'news.new' ] = 0;
				Cloud::save_summary( $summary );
				break;

			case self::TYPE_INSTALL_ZIP:
				$summary = Cloud::get_summary();
				if ( ! empty( $summary[ 'news.zip' ] ) ) {
					$summary[ 'news.new' ] = 0;
					Cloud::save_summary( $summary );

					$this->cls( 'Debug2' )->beta_test( $summary[ 'zip' ] );
				}
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The quic.cloud class.
 *
 * @since      	2.4.1
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src/cdn
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\CDN;

use LiteSpeed\Core;
use LiteSpeed\Cloud;
use LiteSpeed\Debug2;
use LiteSpeed\Base;

defined( 'WPINC' ) || exit;

class Quic extends Base {
	private $_api_key;

	const TYPE_REG = 'reg';

	/**
	 * Notify CDN new config updated
	 *
	 * @access public
	 */
	public static function try_sync_config() {
		$options = self::cls()->get_options();

		if ( ! $options[ self::O_CDN_QUIC ] ) {
			return false;
		}

		// Security: Remove cf key in report
		$secure_fields = array(
			self::O_CDN_CLOUDFLARE_KEY,
			self::O_OBJECT_PSWD,
		);
		foreach ( $secure_fields as $v ) {
			if ( ! empty( $options[ $v ] ) ) {
				$options[ $v ] = str_repeat( '*', strlen( $options[ $v ] ) );
			}
		}
		unset( $options[ self::O_MEDIA_LQIP_EXC ] );

		// Rest url
		$options[ '_rest' ] = function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' );

		// Add server env vars
		$options[ '_server' ] = self::cls()->server_vars();

		// Append hooks
		$options[ '_tp_cookies' ] = apply_filters( 'litespeed_vary_cookies', array() );

		Cloud::post( Cloud::SVC_D_SYNC_CONF, $options );
	}

}<?php
/**
 * The cloudflare CDN class.
 *
 * @since      	2.1
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src/cdn
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\CDN;

use LiteSpeed\Core;
use LiteSpeed\Base;
use LiteSpeed\Debug2;
use LiteSpeed\Router;
use LiteSpeed\Admin;
use LiteSpeed\Admin_Display;

defined( 'WPINC' ) || exit;

class Cloudflare extends Base {
	const TYPE_PURGE_ALL = 'purge_all';
	const TYPE_GET_DEVMODE = 'get_devmode';
	const TYPE_SET_DEVMODE_ON = 'set_devmode_on';
	const TYPE_SET_DEVMODE_OFF = 'set_devmode_off';

	const ITEM_STATUS = 'status';

	/**
	 * Update zone&name based on latest settings
	 *
	 * @since  3.0
	 * @access public
	 */
	public function try_refresh_zone() {
		if ( ! $this->conf( self::O_CDN_CLOUDFLARE ) ) {
			return;
		}

		$zone = $this->_fetch_zone();
		if ( $zone ) {
			$this->cls( 'Conf' )->update( self::O_CDN_CLOUDFLARE_NAME, $zone[ 'name' ] );

			$this->cls( 'Conf' )->update( self::O_CDN_CLOUDFLARE_ZONE, $zone[ 'id' ] );

			Debug2::debug( "[Cloudflare] Get zone successfully \t\t[ID] $zone[id]" );
		}
		else {
			$this->cls( 'Conf' )->update( self::O_CDN_CLOUDFLARE_ZONE, '' );
			Debug2::debug( '[Cloudflare] ❌ Get zone failed, clean zone' );
		}

	}

	/**
	 * Get Cloudflare development mode
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _get_devmode( $show_msg = true ) {
		Debug2::debug( '[Cloudflare] _get_devmode' );

		$zone = $this->_zone();
		if ( ! $zone ) {
			return;
		}

		$url = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/settings/development_mode';
		$res = $this->_cloudflare_call( $url, 'GET', false, $show_msg );

		if ( ! $res ) {
			return;
		}
		Debug2::debug( '[Cloudflare] _get_devmode result ', $res );

		$curr_status = self::get_option( self::ITEM_STATUS, array() );
		$curr_status[ 'devmode' ] = $res[ 'value' ];
		$curr_status[ 'devmode_expired' ] = $res[ 'time_remaining' ] + time();

		// update status
		self::update_option( self::ITEM_STATUS, $curr_status );

	}

	/**
	 * Set Cloudflare development mode
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _set_devmode( $type ) {
		Debug2::debug( '[Cloudflare] _set_devmode' );

		$zone = $this->_zone();
		if ( ! $zone ) {
			return;
		}

		$url = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/settings/development_mode';
		$new_val = $type == self::TYPE_SET_DEVMODE_ON ? 'on' : 'off';
		$data = array( 'value' => $new_val );
		$res = $this->_cloudflare_call( $url, 'PATCH', $data );

		if ( ! $res ) {
			return;
		}

		$res = $this->_get_devmode( false );

		if ( $res ) {
			$msg = sprintf( __( 'Notified Cloudflare to set development mode to %s successfully.', 'litespeed-cache' ), strtoupper( $new_val ) );
			Admin_Display::succeed( $msg );
		}

	}

	/**
	 * Purge Cloudflare cache
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _purge_all() {
		Debug2::debug( '[Cloudflare] _purge_all' );

		$cf_on = $this->conf( self::O_CDN_CLOUDFLARE );
		if ( ! $cf_on ) {
			$msg = __( 'Cloudflare API is set to off.', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		$zone = $this->_zone();
		if ( ! $zone ) {
			return;
		}

		$url = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/purge_cache';
		$data = array( 'purge_everything' => true );

		$res = $this->_cloudflare_call( $url, 'DELETE', $data );

		if ( $res ) {
			$msg = __( 'Notified Cloudflare to purge all successfully.', 'litespeed-cache' );
			Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Get current Cloudflare zone from cfg
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _zone() {
		$zone = $this->conf( self::O_CDN_CLOUDFLARE_ZONE );
		if ( ! $zone ) {
			$msg = __( 'No available Cloudflare zone', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return false;
		}

		return $zone;
	}

	/**
	 * Get Cloudflare zone settings
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _fetch_zone() {
		$kw = $this->conf( self::O_CDN_CLOUDFLARE_NAME );

		$url = 'https://api.cloudflare.com/client/v4/zones?status=active&match=all';

		// Try exact match first
		if ( $kw && strpos( $kw, '.' ) ) {
			$zones = $this->_cloudflare_call( $url . '&name=' . $kw, 'GET', false, false );
			if ( $zones ) {
				Debug2::debug( '[Cloudflare] fetch_zone exact matched' );
				return $zones[ 0 ];
			}
		}

		// Can't find, try to get default one
		$zones = $this->_cloudflare_call( $url, 'GET', false, false );

		if ( ! $zones ) {
			Debug2::debug( '[Cloudflare] fetch_zone no zone' );
			return false;
		}

		if ( ! $kw ) {
			Debug2::debug( '[Cloudflare] fetch_zone no set name, use first one by default' );
			return $zones[ 0 ];
		}

		foreach ( $zones as $v ) {
			if ( strpos( $v[ 'name' ], $kw ) !== false ) {
				Debug2::debug( '[Cloudflare] fetch_zone matched ' . $kw . ' [name] ' . $v[ 'name' ] );
				return $v;
			}
		}

		// Can't match current name, return default one
		Debug2::debug( '[Cloudflare] fetch_zone failed match name, use first one by default' );
		return $zones[ 0 ];
	}

	/**
	 * Cloudflare API
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _cloudflare_call( $url, $method = 'GET', $data = false, $show_msg = true ) {
		Debug2::debug( "[Cloudflare] _cloudflare_call \t\t[URL] $url" );

		if ( 40 == strlen($this->conf( self::O_CDN_CLOUDFLARE_KEY ))){
			$headers = array(
				'Content-Type' => 'application/json',
				'Authorization' => 'Bearer ' . $this->conf( self::O_CDN_CLOUDFLARE_KEY ),
			);
		}
		else {
			$headers = array(
				'Content-Type' => 'application/json',
				'X-Auth-Email' => $this->conf( self::O_CDN_CLOUDFLARE_EMAIL ),
				'X-Auth-Key' => $this->conf( self::O_CDN_CLOUDFLARE_KEY ),
			);
		}

		$wp_args = array(
			'method' => $method,
			'headers' => $headers,
		);

		if ( $data ) {
			if ( is_array( $data ) ) {
				$data = json_encode( $data );
			}
			$wp_args[ 'body' ] = $data;
		}
		$resp = wp_remote_request( $url, $wp_args );
		if ( is_wp_error( $resp ) ) {
			Debug2::debug( '[Cloudflare] error in response' );
			if ( $show_msg ) {
				$msg = __( 'Failed to communicate with Cloudflare', 'litespeed-cache' );
				Admin_Display::error( $msg );
			}
			return false;
		}

		$result = wp_remote_retrieve_body( $resp );

		$json = json_decode( $result, true );

		if ( $json && $json[ 'success' ] && $json[ 'result' ] ) {
			Debug2::debug( "[Cloudflare] _cloudflare_call called successfully" );
			if ( $show_msg ) {
				$msg = __( 'Communicated with Cloudflare successfully.', 'litespeed-cache' );
				Admin_Display::succeed( $msg );
			}

			return $json[ 'result' ];
		}

		Debug2::debug( "[Cloudflare] _cloudflare_call called failed: $result" );
		if ( $show_msg ) {
			$msg = __( 'Failed to communicate with Cloudflare', 'litespeed-cache' );
			Admin_Display::error( $msg );
		}

		return false;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_PURGE_ALL :
				$this->_purge_all();
				break;

			case self::TYPE_GET_DEVMODE :
				$this->_get_devmode();
				break;

			case self::TYPE_SET_DEVMODE_ON :
			case self::TYPE_SET_DEVMODE_OFF :
				$this->_set_devmode( $type );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The core plugin router class.
 *
 * This generate the valid action.
 *
 * @since      	1.1.0
 * @since  		1.5 Moved into /inc
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Router extends Base {
	const NONCE = 'LSCWP_NONCE';
	const ACTION = 'LSCWP_CTRL';

	const ACTION_SAVE_SETTINGS_NETWORK = 'save-settings-network';
	const ACTION_DB_OPTM = 'db_optm';
	const ACTION_PLACEHOLDER = 'placeholder';
	const ACTION_AVATAR = 'avatar';
	const ACTION_SAVE_SETTINGS = 'save-settings';
	const ACTION_CLOUD = 'cloud';
	const ACTION_IMG_OPTM = 'img_optm';
	const ACTION_HEALTH = 'health';
	const ACTION_CRAWLER = 'crawler';
	const ACTION_PURGE = 'purge';
	const ACTION_CONF = 'conf';
	const ACTION_ACTIVATION = 'activation';
	const ACTION_CSS = 'css';
	const ACTION_IMPORT = 'import';
	const ACTION_REPORT = 'report';
	const ACTION_DEBUG2 = 'debug2';
	const ACTION_CDN_CLOUDFLARE = 'CDN\Cloudflare';

	// List all handlers here
	private static $_HANDLERS = array(
		self::ACTION_ACTIVATION,
		self::ACTION_AVATAR,
		self::ACTION_CDN_CLOUDFLARE,
		self::ACTION_CLOUD,
		self::ACTION_CONF,
		self::ACTION_CRAWLER,
		self::ACTION_CSS,
		self::ACTION_DB_OPTM,
		self::ACTION_DEBUG2,
		self::ACTION_HEALTH,
		self::ACTION_IMG_OPTM,
		self::ACTION_IMPORT,
		self::ACTION_PLACEHOLDER,
		self::ACTION_PURGE,
		self::ACTION_REPORT,
	);

	const TYPE = 'litespeed_type';

	const ITEM_HASH = 'hash';

	private static $_esi_enabled;
	private static $_is_ajax;
	private static $_is_logged_in;
	private static $_ip;
	private static $_action;
	private static $_is_admin_ip;
	private static $_frontend_path;

	/**
	 * Redirect to self to continue operation
	 *
	 * Note: must return when use this func. CLI/Cron call won't die in this func.
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function self_redirect( $action, $type ) {
		if ( defined( 'LITESPEED_CLI' ) || defined( 'DOING_CRON' ) ) {
			Admin_Display::succeed( 'To be continued' ); // Show for CLI
			return;
		}

		// Add i to avoid browser too many redirected warning
		$i = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$i ++;

		$link = Utility::build_url( $action, $type, false, null, array( 'litespeed_i' => $i ) );

		$url = html_entity_decode( $link );
		exit( "<meta http-equiv='refresh' content='0;url=$url'>" );
	}

	/**
	 * Check if can run optimize
	 *
	 * @since  1.3
	 * @since  2.3.1 Relocated from cdn.cls
	 * @access public
	 */
	public function can_optm() {
		$can = true;

		if ( is_user_logged_in() && $this->conf( self::O_OPTM_GUEST_ONLY ) ) {
			$can = false;
		}
		elseif ( is_admin() ) {
			$can = false;
		}
		elseif ( is_feed() ) {
			$can = false;
		}
		elseif ( is_preview() ) {
			$can = false;
		}
		elseif ( self::is_ajax() ) {
			$can = false;
		}

		if ( self::_is_login_page() ) {
			Debug2::debug( '[Router] Optm bypassed: login/reg page' );
			$can = false;
		}

		$can_final = apply_filters( 'litespeed_can_optm', $can );

		if ( $can_final != $can ) {
			Debug2::debug( '[Router] Optm bypassed: filter' );
		}

		return $can_final;
	}

	/**
	 * Check referer page to see if its from admin
	 *
	 * @since 2.4.2.1
	 * @access public
	 */
	public static function from_admin() {
		return ! empty( $_SERVER[ 'HTTP_REFERER' ] ) && strpos( $_SERVER[ 'HTTP_REFERER' ], get_admin_url() ) === 0;
	}

	/**
	 * Check if it can use CDN replacement
	 *
	 * @since  1.2.3
	 * @since  2.3.1 Relocated from cdn.cls
	 * @access public
	 */
	public static function can_cdn() {
		$can = true;

		if ( is_admin() ) {
			if ( ! self::is_ajax() ) {
				Debug2::debug2( '[Router] CDN bypassed: is not ajax call' );
				$can = false;
			}

			if ( self::from_admin() ) {
				Debug2::debug2( '[Router] CDN bypassed: ajax call from admin' );
				$can = false;
			}
		}
		elseif ( is_feed() ) {
			$can = false;
		}
		elseif ( is_preview() ) {
			$can = false;
		}

		/**
		 * Bypass cron to avoid deregister jq notice `Do not deregister the <code>jquery-core</code> script in the administration area.`
		 * @since  2.7.2
		 */
		if ( defined( 'DOING_CRON' ) ) {
			$can = false;
		}

		/**
		 * Bypass login/reg page
		 * @since  1.6
		 */
		if ( self::_is_login_page() ) {
			Debug2::debug( '[Router] CDN bypassed: login/reg page' );
			$can = false;
		}

		/**
		 * Bypass post/page link setting
		 * @since 2.9.8.5
		 */
		$rest_prefix = function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' );
		if (
			! empty( $_SERVER[ 'REQUEST_URI' ] ) &&
			strpos( $_SERVER[ 'REQUEST_URI' ], $rest_prefix . '/wp/v2/media' ) !== false &&
			isset( $_SERVER[ 'HTTP_REFERER' ] ) && strpos( $_SERVER[ 'HTTP_REFERER' ], 'wp-admin') !== false
		) {
			Debug2::debug( '[Router] CDN bypassed: wp-json on admin page' );
			$can = false;
		}

		$can_final = apply_filters( 'litespeed_can_cdn', $can );

		if ( $can_final != $can ) {
			Debug2::debug( '[Router] CDN bypassed: filter' );
		}

		return $can_final;
	}

	/**
	 * Check if is login page or not
	 *
	 * @since  2.3.1
	 * @access protected
	 */
	protected static function _is_login_page() {
		if ( in_array( $GLOBALS[ 'pagenow' ], array( 'wp-login.php', 'wp-register.php' ), true ) ) {
			return true;
		}

		return false;
	}

	/**
	 * UCSS/Crawler role simulator
	 *
	 * @since  1.9.1
	 * @since  3.3 Renamed from `is_crawler_role_simulation`
	 */
	public function is_role_simulation() {
		if( is_admin() ) {
			return;
		}

		if ( empty( $_COOKIE[ 'litespeed_role' ] ) || empty( $_COOKIE[ 'litespeed_hash' ] ) ) {
			return;
		}

		Debug2::debug( '[Router] starting role validation' );

		// Check if is from crawler
		// if ( empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], Crawler::FAST_USER_AGENT ) !== 0 ) {
		// 	Debug2::debug( '[Router] user agent not match' );
		// 	return;
		// }

		// Hash validation
		$hash = self::get_option( self::ITEM_HASH );
		if ( ! $hash || $_COOKIE[ 'litespeed_hash' ] != $hash ) {
			Debug2::debug( '[Router] hash not match ' . $_COOKIE[ 'litespeed_hash' ] . ' != ' . $hash );
			return;
		}

		$role_uid = $_COOKIE[ 'litespeed_role' ];
		Debug2::debug( '[Router] role simulate litespeed_role uid ' . $role_uid );

		wp_set_current_user( $role_uid );
	}

	/**
	 * Get a security hash
	 *
	 * @since  3.3
	 */
	public static function get_hash() {
		// Reuse previous hash if existed
		$hash = self::get_option( self::ITEM_HASH );
		if ( $hash ) {
			return $hash;
		}

		$hash = Str::rrand( 6 );
		self::update_option( self::ITEM_HASH, $hash );
		return $hash;
	}

	/**
	 * Get user role
	 *
	 * @since  1.6.2
	 */
	public static function get_role( $uid = null ) {
		if ( defined( 'LITESPEED_WP_ROLE' ) ) {
			return LITESPEED_WP_ROLE;
		}

		if ( $uid === null ) {
			$uid = get_current_user_id();
		}

		$role = false;
		if ( $uid ) {
			$user = get_userdata( $uid );
			if ( isset( $user->roles ) && is_array( $user->roles ) ) {
				$tmp = array_values( $user->roles );
				$role = array_shift( $tmp );
			}
		}
		Debug2::debug( '[Router] get_role: ' . $role );

		if ( ! $role ) {
			return $role;
			// Guest user
			Debug2::debug( '[Router] role: guest' );

			/**
			 * Fix double login issue
			 * The previous user init refactoring didn't fix this bcos this is in login process and the user role could change
			 * @see  https://github.com/litespeedtech/lscache_wp/commit/69e7bc71d0de5cd58961bae953380b581abdc088
			 * @since  2.9.8 Won't assign const if in login process
			 */
			if ( substr_compare( wp_login_url(), $GLOBALS[ 'pagenow' ], -strlen( $GLOBALS[ 'pagenow' ] ) ) === 0 ) {
				return $role;
			}
		}

		define( 'LITESPEED_WP_ROLE', $role );

		return LITESPEED_WP_ROLE;
	}

	/**
	 * Get frontend path
	 *
	 * @since 1.2.2
	 * @access public
	 * @return boolean
	 */
	public static function frontend_path() { //todo: move to htaccess.cls ?
		if ( ! isset( self::$_frontend_path ) ) {
			$frontend = rtrim( ABSPATH, '/' ); // /home/user/public_html/frontend
			// get home path failed. Trac ticket #37668 (e.g. frontend:/blog backend:/wordpress)
			if ( ! $frontend ) {
				Debug2::debug( '[Router] No ABSPATH, generating from home option' );
				$frontend = parse_url( get_option( 'home' ) );
				$frontend = ! empty( $frontend[ 'path' ] ) ? $frontend[ 'path' ] : '';
				$frontend = $_SERVER[ 'DOCUMENT_ROOT' ] . $frontend;
			}
			$frontend = realpath( $frontend );

			self::$_frontend_path = $frontend;
		}
		return self::$_frontend_path;
	}

	/**
	 * Check if ESI is enabled or not
	 *
	 * @since 1.2.0
	 * @access public
	 * @return boolean
	 */
	public function esi_enabled() {
		if ( ! isset( self::$_esi_enabled ) ) {
			self::$_esi_enabled = defined( 'LITESPEED_ON' ) && $this->conf( self::O_ESI );
			if( ! empty( $_REQUEST[ self::ACTION ] ) ) {
				self::$_esi_enabled = false;
			}
		}
		return self::$_esi_enabled;
	}

	/**
	 * Check if crawler is enabled on server level
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function can_crawl() {
		if ( isset( $_SERVER[ 'X-LSCACHE' ] ) && strpos( $_SERVER[ 'X-LSCACHE' ], 'crawler' ) === false ) {
			return false;
		}

		// CLI will bypass this check as crawler library can always do the 428 check
		if ( defined( 'LITESPEED_CLI' ) ) {
			return true;
		}

		return true;
	}

	/**
	 * Check action
	 *
	 * @since 1.1.0
	 * @access public
	 * @return string
	 */
	public static function get_action() {
		if ( ! isset( self::$_action ) ) {
			self::$_action = false;
			self::cls()->verify_action();
			if ( self::$_action ) {
				defined( 'LSCWP_LOG' ) && Debug2::debug( '[Router] LSCWP_CTRL verified: ' . var_export( self::$_action, true ) );
			}

		}
		return self::$_action;
	}

	/**
	 * Check if is logged in
	 *
	 * @since 1.1.3
	 * @access public
	 * @return boolean
	 */
	public static function is_logged_in() {
		if ( ! isset( self::$_is_logged_in ) ) {
			self::$_is_logged_in = is_user_logged_in();
		}
		return self::$_is_logged_in;
	}

	/**
	 * Check if is ajax call
	 *
	 * @since 1.1.0
	 * @access public
	 * @return boolean
	 */
	public static function is_ajax() {
		if ( ! isset( self::$_is_ajax ) ) {
			self::$_is_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX;
		}
		return self::$_is_ajax;
	}

	/**
	 * Check if is admin ip
	 *
	 * @since 1.1.0
	 * @access public
	 * @return boolean
	 */
	public function is_admin_ip() {
		if ( ! isset( self::$_is_admin_ip ) ) {
			$ips = $this->conf( self::O_DEBUG_IPS );

			self::$_is_admin_ip = $this->ip_access( $ips );
		}
		return self::$_is_admin_ip;
	}

	/**
	 * Get type value
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function verify_type() {
		if ( empty( $_REQUEST[ self::TYPE ] ) ) {
			Debug2::debug( '[Router] no type', 2 );
			return false;
		}

		Debug2::debug( '[Router] parsed type: ' . $_REQUEST[ self::TYPE ], 2 );

		return $_REQUEST[ self::TYPE ];
	}

	/**
	 * Check privilege and nonce for the action
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function verify_action() {
		if ( empty( $_REQUEST[ Router::ACTION ] ) ) {
			Debug2::debug2( '[Router] LSCWP_CTRL bypassed empty' );
			return;
		}

		$action = stripslashes($_REQUEST[ Router::ACTION ]);

		if ( ! $action ) {
		    return;
		}

		$_is_public_action = false;

		// Each action must have a valid nonce unless its from admin ip and is public action
		// Validate requests nonce (from admin logged in page or cli)
		if ( ! $this->verify_nonce( $action ) ) {
			// check if it is from admin ip
			if ( ! $this->is_admin_ip() ) {
				Debug2::debug( '[Router] LSCWP_CTRL query string - did not match admin IP: ' . $action );
				return;
			}

			// check if it is public action
			if ( ! in_array( $action, array(
					Core::ACTION_QS_NOCACHE,
					Core::ACTION_QS_PURGE,
					Core::ACTION_QS_PURGE_SINGLE,
					Core::ACTION_QS_SHOW_HEADERS,
					Core::ACTION_QS_PURGE_ALL,
					Core::ACTION_QS_PURGE_EMPTYCACHE,
					) ) ) {
				Debug2::debug( '[Router] LSCWP_CTRL query string - did not match admin IP Actions: ' . $action );
				return;
			}

			if ( apply_filters( 'litespeed_qs_forbidden', false ) ) {
				Debug2::debug( '[Router] LSCWP_CTRL forbidden by hook litespeed_qs_forbidden' );
				return;
			}

			$_is_public_action = true;
		}

		/* Now it is a valid action, lets log and check the permission */
		Debug2::debug( '[Router] LSCWP_CTRL: ' . $action );

		// OK, as we want to do something magic, lets check if its allowed
		$_is_multisite = is_multisite();
		$_is_network_admin = $_is_multisite && is_network_admin();
		$_can_network_option = $_is_network_admin && current_user_can( 'manage_network_options' );
		$_can_option = current_user_can( 'manage_options' );

		switch ( $action ) {
			// Save network settings
			case self::ACTION_SAVE_SETTINGS_NETWORK:
				if ( $_can_network_option ) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_PURGE_BY:
				if ( defined( 'LITESPEED_ON' ) && ( $_can_network_option || $_can_option || self::is_ajax() ) ) {//here may need more security
					self::$_action = $action;
				}
				return;

			case self::ACTION_DB_OPTM:
				if ( $_can_network_option || $_can_option ) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_PURGE_EMPTYCACHE:// todo: moved to purge.cls type action
				if ( defined( 'LITESPEED_ON' ) && ( $_can_network_option || ( ! $_is_multisite && $_can_option ) ) ) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_QS_NOCACHE:
			case Core::ACTION_QS_PURGE:
			case Core::ACTION_QS_PURGE_SINGLE:
			case Core::ACTION_QS_SHOW_HEADERS:
			case Core::ACTION_QS_PURGE_ALL:
			case Core::ACTION_QS_PURGE_EMPTYCACHE:
				if ( defined( 'LITESPEED_ON' ) && ( $_is_public_action || self::is_ajax() ) ) {
					self::$_action = $action;
				}
				return;

			case self::ACTION_PLACEHOLDER:
			case self::ACTION_AVATAR:
			case self::ACTION_IMG_OPTM:
			case self::ACTION_CLOUD:
			case self::ACTION_CDN_CLOUDFLARE:
			case self::ACTION_CRAWLER:
			case self::ACTION_IMPORT:
			case self::ACTION_REPORT:
			case self::ACTION_CSS:
			case self::ACTION_CONF:
			case self::ACTION_ACTIVATION:
			case self::ACTION_HEALTH:
			case self::ACTION_SAVE_SETTINGS: // Save settings
				if ( $_can_option && ! $_is_network_admin ) {
					self::$_action = $action;
				}
				return;

			case self::ACTION_PURGE:
			case self::ACTION_DEBUG2:
				if ( $_can_network_option || $_can_option ) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_DISMISS:
				/**
				 * Non ajax call can dismiss too
				 * @since  2.9
				 */
				// if ( self::is_ajax() ) {
				self::$_action = $action;
				// }
				return;

			default:
				Debug2::debug( '[Router] LSCWP_CTRL match falied: ' . $action );
				return;
		}

	}

	/**
	 * Verify nonce
	 *
	 * @since 1.1.0
	 * @access private
	 * @param  string $action
	 * @return bool
	 */
	private function verify_nonce( $action ) {
		if ( ! isset( $_REQUEST[ Router::NONCE ] ) || ! wp_verify_nonce( $_REQUEST[ Router::NONCE ], $action ) ) {
			return false;
		}
		else{
			return true;
		}
	}

	/**
	 * Check if the ip is in the range
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function ip_access( $ip_list ) {
		if ( ! $ip_list ) {
			return false;
		}
		if ( ! isset( self::$_ip ) ) {
			self::$_ip = self::get_ip();
		}

		if ( ! self::$_ip ) {
			return false;
		}
		// $uip = explode('.', $_ip);
		// if(empty($uip) || count($uip) != 4) Return false;
		// foreach($ip_list as $key => $ip) $ip_list[$key] = explode('.', trim($ip));
		// foreach($ip_list as $key => $ip) {
		// 	if(count($ip) != 4) continue;
		// 	for($i = 0; $i <= 3; $i++) if($ip[$i] == '*') $ip_list[$key][$i] = $uip[$i];
		// }
		return in_array( self::$_ip, $ip_list );
	}

	/**
	 * Get client ip
	 *
	 * @since 1.1.0
	 * @since  1.6.5 changed to public
	 * @access public
	 * @return string
	 */
	public static function get_ip() {
		$_ip = '';
		// if ( function_exists( 'apache_request_headers' ) ) {
		// 	$apache_headers = apache_request_headers();
		// 	$_ip = ! empty( $apache_headers['True-Client-IP'] ) ? $apache_headers['True-Client-IP'] : false;
		// 	if ( ! $_ip ) {
		// 		$_ip = ! empty( $apache_headers['X-Forwarded-For'] ) ? $apache_headers['X-Forwarded-For'] : false;
		// 		$_ip = explode( ',', $_ip );
		// 		$_ip = $_ip[ 0 ];
		// 	}

		// }

		if ( ! $_ip ) {
			$_ip = ! empty( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : false;
		}
		return $_ip;
	}

	/**
	 * Check if opcode cache is enabled
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public static function opcache_enabled() {
		return function_exists( 'opcache_reset' ) && ini_get( 'opcache.enable' );
	}

	/**
	 * Handle static files
	 *
	 * @since  3.0
	 */
	public function serve_static() {
		if ( ! empty( $_SERVER[ 'SCRIPT_URI' ] ) ) {
			if ( strpos( $_SERVER[ 'SCRIPT_URI' ], LITESPEED_STATIC_URL . '/' ) !== 0 ) {
				return;
			}
			$path = substr( $_SERVER[ 'SCRIPT_URI' ], strlen( LITESPEED_STATIC_URL . '/' ) );
		}
		elseif ( ! empty( $_SERVER[ 'REQUEST_URI' ] ) ) {
			$static_path = parse_url( LITESPEED_STATIC_URL, PHP_URL_PATH ) . '/';
			if ( strpos( $_SERVER[ 'REQUEST_URI' ], $static_path ) !== 0 ) {
				return;
			}
			$path = substr( parse_url( $_SERVER[ 'REQUEST_URI' ], PHP_URL_PATH ), strlen( $static_path ) );
		}
		else {
			return;
		}

		$path = explode( '/', $path, 2 );

		if ( empty( $path[ 0 ] ) || empty( $path[ 1 ] ) ) {
			return;
		}

		switch ( $path[ 0 ] ) {
			case 'avatar':
				$this->cls( 'Avatar' )->serve_static( $path[ 1 ] );
				break;

			case 'localres':
				$this->cls( 'Localization' )->serve_static( $path[ 1 ] );
				break;

			default :
				break;
		}

	}

	/**
	 * Handle all request actions from main cls
	 *
	 * This is different than other handlers
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler( $cls ) {
		if ( ! in_array( $cls, self::$_HANDLERS ) ) {
			return;
		}

		return $this->cls( $cls )->handler();
	}

}
<?php
/**
 * The page health
 *
 *
 * @since      3.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Health extends Base {
	const TYPE_SPEED = 'speed';
	const TYPE_SCORE = 'score';

	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_summary = self::get_summary();

	}

	/**
	 * Test latest speed
	 *
	 * @since 3.0
	 */
	private function _ping( $type )
	{
		$data = array( 'action' => $type );

		$json = Cloud::post( Cloud::SVC_HEALTH, $data, 600 );

		if ( empty( $json[ 'data' ][ 'before' ] ) || empty( $json[ 'data' ][ 'after' ] ) ) {
			Debug2::debug( '[Health] ❌ no data' );
			return false;
		}

		$this->_summary[ $type . '.before' ] = $json[ 'data' ][ 'before' ];
		$this->_summary[ $type . '.after' ] = $json[ 'data' ][ 'after' ];

		self::save_summary();

		Debug2::debug( '[Health] saved result' );
	}

	/**
	 * Generate scores
	 *
	 * @since 3.0
	 */
	public function scores()
	{
		$speed_before = $speed_after = $speed_improved = 0;
		if ( ! empty( $this->_summary[ 'speed.before' ] ) && ! empty( $this->_summary[ 'speed.after' ] ) ) {
			// Format loading time
			$speed_before = $this->_summary[ 'speed.before' ] / 1000;
			if ( $speed_before < 0.01 ) {
				$speed_before = 0.01;
			}
			$speed_before = number_format( $speed_before, 2 );

			$speed_after = $this->_summary[ 'speed.after' ] / 1000;
			if ( $speed_after < 0.01 ) {
				$speed_after = number_format( $speed_after, 3 );
			}
			else {
				$speed_after = number_format( $speed_after, 2 );
			}

			$speed_improved = ( $this->_summary[ 'speed.before' ] - $this->_summary[ 'speed.after' ] ) * 100 / $this->_summary[ 'speed.before' ];
			if ( $speed_improved > 99 ) {
				$speed_improved = number_format( $speed_improved, 2 );
			}
			else {
				$speed_improved = number_format( $speed_improved );
			}
		}

		$score_before = $score_after = $score_improved = 0;
		if ( ! empty( $this->_summary[ 'score.before' ] ) && ! empty( $this->_summary[ 'score.after' ] ) ) {
			$score_before = $this->_summary[ 'score.before' ];
			$score_after = $this->_summary[ 'score.after' ];

			// Format Score
			$score_improved = ( $score_after - $score_before ) * 100 / $score_after;
			if ( $score_improved > 99 ) {
				$score_improved = number_format( $score_improved, 2 );
			}
			else {
				$score_improved = number_format( $score_improved );
			}
		}

		return array(
			'speed_before' => $speed_before,
			'speed_after' => $speed_after,
			'speed_improved' => $speed_improved,
			'score_before' => $score_before,
			'score_after' => $score_after,
			'score_improved' => $score_improved,
		);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_SPEED:
			case self::TYPE_SCORE:
				$this->_ping( $type );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}<?php
/**
 * The core plugin config class.
 *
 * This maintains all the options and settings for this plugin.
 *
 * @since      	1.0.0
 * @since  		1.5 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;


class Conf extends Base {
	const TYPE_SET = 'set';

	private $_updated_ids = array();
	private $_is_primary = false;

	/**
	 * Specify init logic to avoid infinite loop when calling conf.cls instance
	 *
	 * @since  3.0
	 * @access public
	 */
	public function init() {
		// Check if conf exists or not. If not, create them in DB (won't change version if is converting v2.9- data)
		// Conf may be stale, upgrade later
		$this->_conf_db_init();

		/**
		 * Detect if has quic.cloud set
		 * @since  2.9.7
		 */
		if ( $this->conf( self::O_CDN_QUIC ) ) {
			! defined( 'LITESPEED_ALLOWED' ) &&  define( 'LITESPEED_ALLOWED', true );
		}

		add_action( 'litespeed_conf_append', array( $this, 'option_append' ), 10, 2 );
		add_action( 'litespeed_conf_force', array( $this, 'force_option' ), 10, 2 );

		$this->define_cache();
	}

	/**
	 * Init conf related data
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _conf_db_init() {
		/**
		 * Try to load options first, network sites can override this later
		 *
		 * NOTE: Load before run `conf_upgrade()` to avoid infinite loop when getting conf in `conf_upgrade()`
		 */
		$this->load_options();

		$ver = $this->conf( self::_VER );

		/**
		 * Don't upgrade or run new installations other than from backend visit at the 2nd time (delay the update)
		 * In this case, just use default conf
		 */
		$has_delay_conf_tag = self::get_option( '__activation' );
		if ( ! $ver || $ver != Core::VER ) {
			if ( ( ! is_admin() && ! defined( 'LITESPEED_CLI' ) ) || ( ! $has_delay_conf_tag || $has_delay_conf_tag == -1 ) ) { // Reuse __activation to control the delay conf update
				if ( ! $has_delay_conf_tag || $has_delay_conf_tag == -1 ) {
					self::update_option( '__activation', Core::VER );
				}

				$this->set_conf( $this->load_default_vals() );
				$this->_try_load_site_options();

				// Disable new installation auto upgrade to avoid overwritten to customized data.ini
				if ( ! $ver ) {
					defined( 'LITESPEED_BYPASS_AUTO_V' ) || define( 'LITESPEED_BYPASS_AUTO_V', true );
				}
				return;
			}
		}

		/**
		 * Version is less than v3.0, or, is a new installation
		 */
		if ( ! $ver ) {
			// Try upgrade first (network will upgrade inside too)
			Data::cls()->try_upgrade_conf_3_0();
		}
		else {
			defined( 'LSCWP_CUR_V' ) || define( 'LSCWP_CUR_V', $ver );

			/**
			 * Upgrade conf
			 */
			if ( $ver != Core::VER ) {
				// Plugin version will be set inside
				// Site plugin upgrade & version change will do in load_site_conf
				Data::cls()->conf_upgrade( $ver );
			}
		}

		/**
		 * Sync latest new options
		 */
		if ( ! $ver || $ver != Core::VER ) {
			// Load default values
			$this->load_default_vals();
			if ( ! $ver ) { // New install
				$this->set_conf( self::$_default_options );
			}

			// Init new default/missing options
			foreach ( self::$_default_options as $k => $v ) {
				// If the option existed, bypass updating
				// Bcos we may ask clients to deactivate for debug temporarily, we need to keep the current cfg in deactivation, hence we need to only try adding default cfg when activating.
				self::add_option( $k, $v );
			}
		}

		/**
		 * Network sites only
		 *
		 * Override conf if is network subsites and chose `Use Primary Config`
		 */
		$this->_try_load_site_options();

		// Mark as conf loaded
		defined( 'LITESPEED_CONF_LOADED' ) || define( 'LITESPEED_CONF_LOADED', true );

		/**
		 * Activation delayed file update
		 * Pros: This is to avoid file correction script changed in new versions
		 * Cons: Conf upgrade won't get file correction if there is new values that are used in file
		 */
		if ( $has_delay_conf_tag && $has_delay_conf_tag != -1 ) {
			// Check new version @since 2.9.3
			Cloud::version_check( 'activate' . ( defined( 'LSCWP_REF' ) ? '_' . LSCWP_REF : '' ) );

			$this->update_confs(); // Files only get corrected in activation or saving settings actions.
		}
		if ( $has_delay_conf_tag != -1 ) {
			self::update_option( '__activation', -1 );
		}
	}

	/**
	 * Load all latest options from DB
	 *
	 * @since  3.0
	 * @access public
	 */
	public function load_options( $blog_id = null, $dry_run = false ) {
		$options = array();
		foreach ( self::$_default_options as $k => $v ) {
			if ( ! is_null( $blog_id ) ) {
				$options[ $k ] = self::get_blog_option( $blog_id, $k, $v );
			}
			else {
				$options[ $k ] = self::get_option( $k, $v );
			}

			// Correct value type
			$options[ $k ] = $this->type_casting( $options[ $k ], $k );
		}

		if ( $dry_run ) {
			return $options;
		}

		// Bypass site special settings
		if ( $blog_id !== null ) { // This is to load the primary settings ONLY
			// These options are the ones that can be overwritten by primary
			$options = array_diff_key( $options, array_flip( self::$SINGLE_SITE_OPTIONS ) );

			$this->set_primary_conf( $options );
		}
		else {
			$this->set_conf( $options );
		}


		// Append const options
		if ( defined( 'LITESPEED_CONF' ) && LITESPEED_CONF ) {
			foreach ( self::$_default_options as $k => $v ) {
				$const = Base::conf_const( $k );
				if ( defined( $const ) ) {
					$this->set_const_conf( $k, $this->type_casting( constant( $const ), $k ) );
				}
			}
		}
	}

	/**
	 * For multisite installations, the single site options need to be updated with the network wide options.
	 *
	 * @since 1.0.13
	 * @access private
	 */
	private function _try_load_site_options() {
		if ( ! $this->_if_need_site_options() ) {
			return;
		}

		$this->_conf_site_db_init();

		$this->_is_primary = get_current_blog_id() == BLOG_ID_CURRENT_SITE;

		// If network set to use primary setting
		if ( $this->network_conf( self::NETWORK_O_USE_PRIMARY ) && ! $this->_is_primary ) { // subsites or network admin
			// Get the primary site settings
			// If it's just upgraded, 2nd blog is being visited before primary blog, can just load default config (won't hurt as this could only happen shortly)
			$this->load_options( BLOG_ID_CURRENT_SITE );
		}

		// Overwrite single blog options with site options
		foreach ( self::$_default_options as $k => $v ) {
			if ( ! $this->has_network_conf( $k ) ) {
				continue;
			}
			// $this->_options[ $k ] = $this->_network_options[ $k ];

			// Special handler to `Enable Cache` option if the value is set to OFF
			if ( $k == self::O_CACHE ) {
				if ( $this->_is_primary ) {
					if ( $this->conf( $k ) != $this->network_conf( $k ) ) {
						if ( $this->conf( $k ) != self::VAL_ON2 ) {
							continue;
						}
					}
				}
				else {
					if ( $this->network_conf( self::NETWORK_O_USE_PRIMARY ) ) {
						if ( $this->has_primary_conf( $k ) && $this->primary_conf( $k ) != self::VAL_ON2 ) { // This case will use primary_options override always
							continue;
						}
					}
					else {
						if ( $this->conf( $k ) != self::VAL_ON2 ) {
							continue;
						}
					}
				}
			}

			// primary_options will store primary settings + network settings, OR, store the network settings for subsites
			$this->set_primary_conf( $k, $this->network_conf( $k ) );
		}
		// var_dump($this->_options);
	}

	/**
	 * Check if needs to load site_options for network sites
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _if_need_site_options() {
		if ( ! is_multisite() ) {
			return false;
		}

		// Check if needs to use site_options or not
		// todo: check if site settings are separate bcos it will affect .htaccess

		/**
		 * In case this is called outside the admin page
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
			require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
		}
		// If is not activated on network, it will not have site options
		if ( ! is_plugin_active_for_network( Core::PLUGIN_FILE ) ) {
			if ( (int)$this->conf( self::O_CACHE ) == self::VAL_ON2 ) { // Default to cache on
				$this->set_conf( self::_CACHE, true );
			}
			return false;
		}

		return true;
	}

	/**
	 * Init site conf and upgrade if necessary
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _conf_site_db_init() {
		$this->load_site_options();

		$ver = $this->network_conf( self::_VER );

		/**
		 * Don't upgrade or run new installations other than from backend visit
		 * In this case, just use default conf
		 */
		if ( ! $ver || $ver != Core::VER ) {
			if ( ! is_admin() && ! defined( 'LITESPEED_CLI' ) ) {
				$this->set_network_conf( $this->load_default_site_vals() );
				return;
			}
		}

		/**
		 * Upgrade conf
		 */
		if ( $ver && $ver != Core::VER ) {
			// Site plugin versin will change inside
			Data::cls()->conf_site_upgrade( $ver );
		}

		/**
		 * Is a new installation
		 */
		if ( ! $ver || $ver != Core::VER ) {
			// Load default values
			$this->load_default_site_vals();

			// Init new default/missing options
			foreach ( self::$_default_site_options as $k => $v ) {
				// If the option existed, bypass updating
				self::add_site_option( $k, $v );
			}
		}
	}

	/**
	 * Get the plugin's site wide options.
	 *
	 * If the site wide options are not set yet, set it to default.
	 *
	 * @since 1.0.2
	 * @access public
	 */
	public function load_site_options() {
		if ( ! is_multisite() ) {
			return null;
		}

		// Load all site options
		foreach ( self::$_default_site_options as $k => $v ) {
			$val = self::get_site_option( $k, $v );
			$val = $this->type_casting( $val, $k, true );
			$this->set_network_conf( $k, $val );
		}
	}

	/**
	 * Append a 3rd party option to default options
	 *
	 * This will not be affected by network use primary site setting.
	 *
	 * NOTE: If it is a multi switch option, need to call `_conf_multi_switch()` first
	 *
	 * @since  3.0
	 * @access public
	 */
	public function option_append( $name, $default ) {
		self::$_default_options[ $name ] = $default;
		$this->set_conf( $name, self::get_option( $name, $default ) );
		$this->set_conf( $name, $this->type_casting( $this->conf( $name ), $name ) );
	}

	/**
	 * Force an option to a certain value
	 *
	 * @since  2.6
	 * @access public
	 */
	public function force_option( $k, $v ) {
		if ( ! $this->has_conf( $k ) ) {
			return;
		}

		$v = $this->type_casting( $v, $k );

		if ( $this->conf( $k ) === $v ) {
			return;
		}

		Debug2::debug( "[Conf] ** $k forced from " . var_export( $this->conf( $k ), true ) . ' to ' . var_export( $v, true ) );

		$this->set_conf( $k, $v );
	}

	/**
	 * Define `_CACHE` const in options ( for both single and network )
	 *
	 * @since  3.0
	 * @access public
	 */
	public function define_cache() {
		// Init global const cache on setting
		$this->set_conf( self::_CACHE, false );
		if ( (int) $this->conf( self::O_CACHE ) == self::VAL_ON || $this->conf( self::O_CDN_QUIC ) ) {
			$this->set_conf( self::_CACHE, true );
		}

		// Check network
		if ( ! $this->_if_need_site_options() ) {
			// Set cache on
			$this->_define_cache_on();
			return;
		}

		// If use network setting
		if ( (int) $this->conf( self::O_CACHE ) == self::VAL_ON2 && $this->network_conf( self::O_CACHE ) ) {
			$this->set_conf( self::_CACHE, true );
		}

		$this->_define_cache_on();
	}

	/**
	 * Define `LITESPEED_ON`
	 *
	 * @since 2.1
	 * @access private
	 */
	private function _define_cache_on() {
		if ( ! $this->conf( self::_CACHE ) ) {
			return;
		}

		defined( 'LITESPEED_ALLOWED' ) && ! defined( 'LITESPEED_ON' ) && define( 'LITESPEED_ON', true );
	}

	/**
	 * Get an option value
	 *
	 * @since  3.0
	 * @access public
	 * @deprecated 4.0 Use $this->conf() instead
	 */
	public static function val( $id, $ori = false ) {
		error_log( 'Called deprecated function \LiteSpeed\Conf::val(). Please use API call instead.' );
		return self::cls()->conf( $id, $ori );
	}

	/**
	 * Save option
	 *
	 * @since  3.0
	 * @access public
	 */
	public function update_confs( $the_matrix = false ) {
		if ( $the_matrix ) {
			foreach ( $the_matrix as $id => $val ) {
				$this->update( $id, $val );
			}
		}

		if ( $this->_updated_ids ) {
			foreach ( $this->_updated_ids as $id ) {
				// Special handler for QUIC.cloud domain key to clear all existing nodes
				if ( $id == self::O_API_KEY ) {
					$this->cls( 'Cloud' )->clear_cloud();
				}

				// Special handler for crawler: reset sitemap when drop_domain setting changed
				if ( $id == self::O_CRAWLER_DROP_DOMAIN ) {
					$this->cls( 'Crawler_Map' )->empty_map();
				}

				// Check if need to do a purge all or not
				if ( $this->_conf_purge_all( $id ) ) {
					Purge::purge_all( 'conf changed [id] ' . $id );
				}

				// Check if need to purge a tag
				if ( $tag = $this->_conf_purge_tag( $id ) ) {
					Purge::add( $tag );
				}

				// Update cron
				if ( $this->_conf_cron( $id ) ) {
					$this->cls( 'Task' )->try_clean( $id );
				}

				// Reset crawler bypassed list when any of the options WebP replace, guest mode, or cache mobile got changed
				if ( $id == self::O_IMG_OPTM_WEBP_REPLACE || $id == self::O_GUEST || $id == self::O_CACHE_MOBILE ) {
					$this->cls( 'Crawler' )->clear_disabled_list();
				}
			}
		}

		do_action( 'litespeed_update_confs', $the_matrix );

		// Update related tables
		$this->cls( 'Data' )->correct_tb_existance();

		// Update related files
		$this->cls( 'Activation' )->update_files();

		/**
		 * CDN related actions - Cloudflare
		 */
		$this->cls( 'CDN\Cloudflare' )->try_refresh_zone();

		/**
		 * CDN related actions - QUIC.cloud
		 * @since 2.3
		 */
		CDN\Quic::try_sync_config();

	}

	/**
	 * Save option
	 *
	 * Note: this is direct save, won't trigger corresponding file update or data sync. To save settings normally, always use `Conf->update_confs()`
	 *
	 * @since  3.0
	 * @access public
	 */
	public function update( $id, $val ) {
		// Bypassed this bcos $this->_options could be changed by force_option()
		// if ( $this->_options[ $id ] === $val ) {
		// 	return;
		// }

		if ( $id == self::_VER ) {
			return;
		}

		if ( ! array_key_exists( $id, self::$_default_options ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] Invalid option ID ' . $id );
			return;
		}

		if ( $val && $this->_conf_pswd( $id ) && ! preg_match( '/[^\*]/', $val ) ) {
			return;
		}

		// Special handler for CDN Original URLs
		if ( $id == self::O_CDN_ORI && ! $val ) {
			$home_url = home_url( '/' );
			$parsed = parse_url( $home_url );
			$home_url = str_replace( $parsed[ 'scheme' ] . ':', '', $home_url );

			$val = $home_url;
		}

		// Validate type
		$val = $this->type_casting( $val, $id );

		// Save data
		self::update_option( $id, $val );

		// Handle purge if setting changed
		if ( $this->conf( $id ) != $val ) {
			$this->_updated_ids[] = $id;

			// Check if need to fire a purge or not (Here has to stay inside `update()` bcos need comparing old value)
			if ( $this->_conf_purge( $id ) ) {
				$diff = array_diff( $val, $this->conf( $id ) );
				$diff2 = array_diff( $this->conf( $id ), $val );
				$diff = array_merge( $diff, $diff2 );
				// If has difference
				foreach ( $diff as $v ) {
					$v = ltrim( $v, '^' );
					$v = rtrim( $v, '$' );
					$this->cls( 'Purge' )->purge_url( $v );
				}
			}
		}

		// Update in-memory data
		$this->set_conf( $id, $val );
	}

	/**
	 * Save network option
	 *
	 * @since  3.0
	 * @access public
	 */
	public function network_update( $id, $val ) {
		if ( ! array_key_exists( $id, self::$_default_site_options ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] Invalid network option ID ' . $id );
			return;
		}

		if ( $val && $this->_conf_pswd( $id ) && ! preg_match( '/[^\*]/', $val ) ) {
			return;
		}

		// Validate type
		if ( is_bool( self::$_default_site_options[ $id ] ) ) {
			$max = $this->_conf_multi_switch( $id );
			if ( $max && $val > 1 ) {
				$val %= $max + 1;
			}
			else {
				$val = (bool) $val;
			}
		}
		elseif ( is_array( self::$_default_site_options[ $id ] ) ) {
			// from textarea input
			if ( ! is_array( $val ) ) {
				$val = Utility::sanitize_lines( $val, $this->_conf_filter( $id ) );
			}
		}
		elseif ( ! is_string( self::$_default_site_options[ $id ] ) ) {
			$val = (int) $val;
		}
		else {
			// Check if the string has a limit set
			$val = $this->_conf_string_val( $id, $val );
		}

		// Save data
		self::update_site_option( $id, $val );

		// Handle purge if setting changed
		if ( $this->network_conf( $id ) != $val ) {
			// Check if need to do a purge all or not
			if ( $this->_conf_purge_all( $id ) ) {
				Purge::purge_all( '[Conf] Network conf changed [id] ' . $id );
			}

			// Update in-memory data
			$this->set_network_conf( $id, $val );
		}

		// No need to update cron here, Cron will register in each init


		if ( $this->has_conf( $id ) ) {
			$this->set_conf( $id, $val );
		}
	}

	/**
	 * Check if one user role is in exclude optimization group settings
	 *
	 * @since 1.6
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_optm_exc_roles( $role = null ) {
		// Get user role
		if ( $role === null ) {
			$role = Router::get_role();
		}

		if ( ! $role ) {
			return false;
		}

		return in_array( $role, $this->conf( self::O_OPTM_EXC_ROLES ) ) ? $role : false;
	}

	/**
	 * Set one config value directly
	 *
	 * @since  2.9
	 * @access private
	 */
	private function _set_conf() {
		/**
		 * NOTE: For URL Query String setting,
		 * 		1. If append lines to an array setting e.g. `cache-force_uri`, use `set[cache-force_uri][]=the_url`.
		 *   	2. If replace the array setting with one line, use `set[cache-force_uri]=the_url`.
		 *   	3. If replace the array setting with multi lines value, use 2 then 1.
		 */
		if ( empty( $_GET[ self::TYPE_SET ] ) || ! is_array( $_GET[ self::TYPE_SET ] ) ) {
			return;
		}

		$the_matrix = array();
		foreach ( $_GET[ self::TYPE_SET ] as $id => $v ) {
			if ( ! $this->has_conf( $id ) ) {
				continue;
			}

			// Append new item to array type settings
			if ( is_array( $v ) && is_array( $this->conf( $id ) ) ) {
				$v = array_merge( $this->conf( $id ), $v );

				Debug2::debug( '[Conf] Appended to settings [' . $id . ']: ' . var_export( $v, true ) );
			}
			else {
				Debug2::debug( '[Conf] Set setting [' . $id . ']: ' . var_export( $v, true ) );
			}

			$the_matrix[ $id ] = $v;
		}

		if ( ! $the_matrix ) {
			return;
		}

		$this->update_confs( $the_matrix );

		$msg = __( 'Changed setting successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );

		// Redirect if changed frontend URL
		if ( ! empty( $_GET[ 'redirect' ] ) ) {
			wp_redirect( $_GET[ 'redirect' ] );
			exit();
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.9
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_SET :
				$this->_set_conf();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php
/**
 * The avatar cache class
 *
 * @since 		3.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Avatar extends Base {
	const TYPE_GENERATE = 'generate';

	private $_conf_cache_ttl;
	private $_tb;

	private $_avatar_realtime_gen_dict = array();
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  1.4
	 */
	public function __construct() {
		if ( ! $this->conf( self::O_DISCUSS_AVATAR_CACHE ) ) {
			return;
		}

		Debug2::debug2( '[Avatar] init' );

		$this->_tb = $this->cls( 'Data' )->tb( 'avatar' );

		$this->_conf_cache_ttl = $this->conf( self::O_DISCUSS_AVATAR_CACHE_TTL );

		add_filter( 'get_avatar_url', array( $this, 'crawl_avatar' ) );

		$this->_summary = self::get_summary();
	}

	/**
	 * Check if need db table or not
	 *
	 * @since 3.0
	 * @access public
	 */
	public function need_db() {
		if ( $this->conf( self::O_DISCUSS_AVATAR_CACHE ) ) {
			return true;
		}

		return false;
	}
	/**
	 * Get gravatar URL from DB and regenarate
	 *
	 * @since  3.0
	 * @access public
	 */
	public function serve_static( $md5 ) {
		global $wpdb;

		Debug2::debug( '[Avatar] is avatar request' );

		if ( strlen( $md5 ) !== 32 ) {
			Debug2::debug( '[Avatar] wrong md5 ' . $md5 );
			return;
		}

		$q = "SELECT url FROM `$this->_tb` WHERE md5=%s";
		$url = $wpdb->get_var( $wpdb->prepare( $q, $md5 ) );

		if ( ! $url ) {
			Debug2::debug( '[Avatar] no matched url for md5 ' . $md5 );
			return;
		}

		$url = $this->_generate( $url );

		wp_redirect( $url );
		exit;
	}

	/**
	 * Localize gravatar
	 *
	 * @since  3.0
	 * @access public
	 */
	public function crawl_avatar( $url ) {
		if ( ! $url ) {
			return $url;
		}

		// Check if its already in dict or not
		if ( ! empty( $this->_avatar_realtime_gen_dict[ $url ] ) ) {
			Debug2::debug2( '[Avatar] already in dict [url] ' . $url );

			return $this->_avatar_realtime_gen_dict[ $url ];
		}

		$realpath = $this->_realpath( $url );
		if ( file_exists( $realpath ) && time() - filemtime( $realpath ) <= $this->_conf_cache_ttl ) {
			Debug2::debug2( '[Avatar] cache file exists [url] ' . $url );
			return $this->_rewrite( $url, filemtime( $realpath ) );
		}

		if ( ! strpos( $url, 'gravatar.com' ) ) {
			return $url;
		}

		// Send request
		if ( ! empty( $this->_summary[ 'curr_request' ] ) && time() - $this->_summary[ 'curr_request' ] < 300 ) {
			Debug2::debug2( '[Avatar] Bypass generating due to interval limit [url] ' . $url );
			return $url;
		}

		// Generate immediately
		$this->_avatar_realtime_gen_dict[ $url ] = $this->_generate( $url );

		return $this->_avatar_realtime_gen_dict[ $url ];
	}

	/**
	 * Read last time generated info
	 *
	 * @since  3.0
	 * @access public
	 */
	public function queue_count() {
		global $wpdb;

		// If var not exists, mean table not exists // todo: not true
		if ( ! $this->_tb ) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb` WHERE dateline<" . ( time() - $this->_conf_cache_ttl );
		return $wpdb->get_var( $q );
	}

	/**
	 * Get the final URL of local avatar
	 *
	 * Check from db also
	 *
	 * @since  3.0
	 */
	private function _rewrite( $url, $time = null ) {
		return LITESPEED_STATIC_URL . '/avatar/' . $this->_filepath( $url ) . ( $time ? '?ver=' . $time : '' );
	}

	/**
	 * Generate realpath of the cache file
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _realpath( $url ) {
		return LITESPEED_STATIC_DIR . '/avatar/' . $this->_filepath( $url );
	}

	/**
	 * Get filepath
	 *
	 * @since  4.0
	 */
	private function _filepath( $url ) {
		$filename = md5( $url ) . '.jpg';
		if ( is_multisite() ) {
			$filename = get_current_blog_id() . '/' . $filename;
		}
		return $filename;
	}

	/**
	 * Cron generation
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function cron( $force = false ) {
		global $wpdb;

		$_instance = self::cls();
		if ( ! $_instance->queue_count() ) {
			Debug2::debug( '[Avatar] no queue' );
			return;
		}

		// For cron, need to check request interval too
		if ( ! $force ) {
			if ( ! empty( $_instance->_summary[ 'curr_request' ] ) && time() - $_instance->_summary[ 'curr_request' ] < 300 ) {
				Debug2::debug( '[Avatar] curr_request too close' );
				return;
			}
		}

		$q = "SELECT url FROM `$_instance->_tb` WHERE dateline < %d ORDER BY id DESC LIMIT %d";
		$q = $wpdb->prepare( $q, array( time() - $_instance->_conf_cache_ttl, apply_filters( 'litespeed_avatar_limit', 30 ) ) );

		$list = $wpdb->get_results( $q );
		Debug2::debug( '[Avatar] cron job [count] ' . count( $list ) );

		foreach ( $list as $v ) {
			Debug2::debug( '[Avatar] cron job [url] ' . $v->url );

			$_instance->_generate( $v->url );
		}
	}

	/**
	 * Remote generator
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _generate( $url ) {
		global $wpdb;

		// Record the data

		$file = $this->_realpath( $url );

		// Update request status
		$this->_summary[ 'curr_request' ] = time();
		self::save_summary();

		// Generate
		$this->_maybe_mk_cache_folder( 'avatar' );

		$response = wp_remote_get( $url, array( 'timeout' => 180, 'stream' => true, 'filename' => $file ) );

		Debug2::debug( '[Avatar] _generate [url] ' . $url );

		// Parse response data
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			file_exists( $file ) && unlink( $file );
			Debug2::debug( '[Avatar] failed to get: ' . $error_message );
			return $url;
		}

		// Save summary data
		$this->_summary[ 'last_spent' ] = time() - $this->_summary[ 'curr_request' ];
		$this->_summary[ 'last_request' ] = $this->_summary[ 'curr_request' ];
		$this->_summary[ 'curr_request' ] = 0;
		self::save_summary();

		// Update DB
		$md5 = md5( $url );
		$q = "UPDATE `$this->_tb` SET dateline=%d WHERE md5=%s";
		$existed = $wpdb->query( $wpdb->prepare( $q, array( time(), $md5 ) ) );
		if ( ! $existed ) {
			$q = "INSERT INTO `$this->_tb` SET url=%s, md5=%s, dateline=%d";
			$wpdb->query( $wpdb->prepare( $q, array( $url, $md5, time() ) ) );
		}

		Debug2::debug( '[Avatar] saved avatar ' . $file );

		return $this->_rewrite( $url );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_GENERATE :
				self::cron( true );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The PlaceHolder class
 *
 * @since 		3.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Placeholder extends Base {
	const TYPE_GENERATE = 'generate';
	const TYPE_CLEAR_Q = 'clear_q';

	private $_conf_placeholder_resp;
	private $_conf_placeholder_resp_svg;
	private $_conf_lqip;
	private $_conf_lqip_qual;
	private $_conf_lqip_min_w;
	private $_conf_lqip_min_h;
	private $_conf_placeholder_resp_color;
	private $_conf_placeholder_resp_async;
	private $_placeholder_resp_dict = array();
	private $_ph_queue = array();

	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_conf_placeholder_resp = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_MEDIA_PLACEHOLDER_RESP );
		$this->_conf_placeholder_resp_svg 	= $this->conf( self::O_MEDIA_PLACEHOLDER_RESP_SVG );
		$this->_conf_lqip 		= ! defined( 'LITESPEED_GUEST_OPTM' ) && $this->conf( self::O_MEDIA_LQIP );
		$this->_conf_lqip_qual	= $this->conf( self::O_MEDIA_LQIP_QUAL );
		$this->_conf_lqip_min_w	= $this->conf( self::O_MEDIA_LQIP_MIN_W );
		$this->_conf_lqip_min_h	= $this->conf( self::O_MEDIA_LQIP_MIN_H );
		$this->_conf_placeholder_resp_async = $this->conf( self::O_MEDIA_PLACEHOLDER_RESP_ASYNC );
		$this->_conf_placeholder_resp_color = $this->conf( self::O_MEDIA_PLACEHOLDER_RESP_COLOR );
		$this->_conf_ph_default = $this->conf( self::O_MEDIA_LAZY_PLACEHOLDER ) ?: LITESPEED_PLACEHOLDER;

		$this->_summary = self::get_summary();
	}

	/**
	 * Init Placeholder
	 */
	public function init() {
		Debug2::debug2( '[LQIP] init' );

		add_action( 'litspeed_after_admin_init', array( $this, 'after_admin_init' ) );
	}

	/**
	 * Display column in Media
	 *
	 * @since  3.0
	 * @access public
	 */
	public function after_admin_init() {
		if ( $this->_conf_lqip ) {
			add_filter( 'manage_media_columns', array( $this, 'media_row_title' ) );
			add_filter( 'manage_media_custom_column', array( $this, 'media_row_actions' ), 10, 2 );
			add_action( 'litespeed_media_row_lqip', array( $this, 'media_row_con' ) );
		}
	}

	/**
	 * Media Admin Menu -> LQIP col
	 *
	 * @since 3.0
	 * @access public
	 */
	public function media_row_title( $posts_columns ) {
		$posts_columns[ 'lqip' ] = __( 'LQIP', 'litespeed-cache' );

		return $posts_columns;
	}

	/**
	 * Media Admin Menu -> LQIP Column
	 *
	 * @since 3.0
	 * @access public
	 */
	public function media_row_actions( $column_name, $post_id ) {
		if ( $column_name !== 'lqip' ) {
			return;
		}

		do_action( 'litespeed_media_row_lqip', $post_id );

	}


	/**
	 * Display LQIP column
	 *
	 * @since  3.0
	 * @access public
	 */
	public function media_row_con( $post_id ) {
		$meta_value = wp_get_attachment_metadata( $post_id );

		if ( empty( $meta_value[ 'file' ] ) ) {
			return;
		}

		$total_files = 0;

		// List all sizes
		$all_sizes = array( $meta_value[ 'file' ] );
		$size_path = pathinfo( $meta_value[ 'file' ], PATHINFO_DIRNAME ) . '/';
		foreach ( $meta_value[ 'sizes' ] as $v ) {
			$all_sizes[] = $size_path . $v[ 'file' ];
		}

		foreach ( $all_sizes as $short_path ) {
			$lqip_folder = LITESPEED_STATIC_DIR . '/lqip/' . $short_path;

			if ( is_dir( $lqip_folder ) ) {
				Debug2::debug( '[LQIP] Found folder: ' . $short_path );



				// List all files
				foreach ( scandir( $lqip_folder ) as $v ) {
					if ( $v == '.' || $v == '..' ) {
						continue;
					}

					if ( $total_files == 0 ) {
						echo '<div class="litespeed-media-lqip"><img src="' . File::read( $lqip_folder . '/' . $v ) . '" alt="' . sprintf( __( 'LQIP image preview for size %s', 'litespeed-cache' ), $v ) .'"></div>';
					}

					echo '<div class="litespeed-media-size"><a href="' . File::read( $lqip_folder . '/' . $v ) . '" target="_blank">' . $v . '</a></div>';

					$total_files++;
				}

			}
		}

		if ( $total_files == 0 ) {
			echo '—';
		}

	}

	/**
	 * Replace image with placeholder
	 *
	 * @since  3.0
	 * @access public
	 */
	public function replace( $html, $src, $size ) {
		// Check if need to enable responsive placeholder or not
		$this_placeholder = $this->_placeholder( $src, $size ) ?: $this->_conf_ph_default;

		$additional_attr = '';
		if ( $this->_conf_lqip && $this_placeholder != $this->_conf_ph_default ) {
			Debug2::debug2( '[LQIP] Use resp LQIP [size] ' . $size );
			$additional_attr = ' data-placeholder-resp="' . $size . '"';
		}

		$snippet = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( self::O_OPTM_NOSCRIPT_RM ) ? '' : '<noscript>' . $html . '</noscript>';
		$html = str_replace( array( ' src=', ' srcset=', ' sizes=' ), array( ' data-src=', ' data-srcset=', ' data-sizes=' ), $html );
		$html = str_replace( '<img ', '<img data-lazyloaded="1"' . $additional_attr . ' src="' . $this_placeholder . '" ', $html );
		$snippet = $html . $snippet;

		return $snippet;
	}

	/**
	 * Generate responsive placeholder
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _placeholder( $src, $size ) {
		// Low Quality Image Placeholders
		if ( ! $size ) {
			Debug2::debug2( '[LQIP] no size ' . $src );
			return false;
		}

		if ( ! $this->_conf_placeholder_resp ) {
			return false;
		}

		// If use local generator
		if ( ! $this->_conf_lqip || ! $this->_lqip_size_check( $size ) ) {
			return $this->_generate_placeholder_locally( $size );
		}

		Debug2::debug2( '[LQIP] Resp LQIP process [src] ' . $src . ' [size] ' . $size );

		$arr_key = $size . ' ' . $src;

		// Check if its already in dict or not
		if ( ! empty( $this->_placeholder_resp_dict[ $arr_key ] ) ) {
			Debug2::debug2( '[LQIP] already in dict' );

			return $this->_placeholder_resp_dict[ $arr_key ];
		}

		// Need to generate the responsive placeholder
		$placeholder_realpath = $this->_placeholder_realpath( $src, $size ); // todo: give offload API
		if ( file_exists( $placeholder_realpath ) ) {
			Debug2::debug2( '[LQIP] file exists' );
			$this->_placeholder_resp_dict[ $arr_key ] = File::read( $placeholder_realpath );

			return $this->_placeholder_resp_dict[ $arr_key ];
		}

		// Add to cron queue

		// Prevent repeated requests
		if ( in_array( $arr_key, $this->_ph_queue ) ) {
			Debug2::debug2( '[LQIP] file bypass generating due to in queue' );
			return $this->_generate_placeholder_locally( $size );
		}

		if ( $hit = Utility::str_hit_array( $src, $this->conf( self::O_MEDIA_LQIP_EXC ) ) ) {
			Debug2::debug2( '[LQIP] file bypass generating due to exclude setting [hit] ' . $hit );
			return $this->_generate_placeholder_locally( $size );
		}

		$this->_ph_queue[] = $arr_key;

		// Send request to generate placeholder
		if ( ! $this->_conf_placeholder_resp_async ) {
			// If requested recently, bypass
			if ( $this->_summary && ! empty( $this->_summary[ 'curr_request' ] ) && time() - $this->_summary[ 'curr_request' ] < 300 ) {
				Debug2::debug2( '[LQIP] file bypass generating due to interval limit' );
				return false;
			}
			// Generate immediately
			$this->_placeholder_resp_dict[ $arr_key ] = $this->_generate_placeholder( $arr_key );

			return $this->_placeholder_resp_dict[ $arr_key ];
		}

		// Prepare default svg placeholder as tmp placeholder
		$tmp_placeholder = $this->_generate_placeholder_locally( $size );

		// Store it to prepare for cron
		$queue = $this->load_queue( 'lqip' );
		if ( in_array( $arr_key, $queue ) ) {
			Debug2::debug2( '[LQIP] already in queue' );

			return $tmp_placeholder;
		}

		if ( count( $queue ) > 500 ) {
			Debug2::debug2( '[LQIP] queue is full' );

			return $tmp_placeholder;
		}

		$queue[] = $arr_key;
		$this->save_queue( 'lqip', $queue );
		Debug2::debug( '[LQIP] Added placeholder queue' );

		return $tmp_placeholder;
	}

	/**
	 * Generate realpath of placeholder file
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _placeholder_realpath( $src, $size ) {
		// Use LQIP Cloud generator, each image placeholder will be separately stored

		// Compatibility with WebP
		if ( substr( $src, -5 ) === '.webp' ) {
			$src = substr( $src, 0, -5 );
		}

		$filepath_prefix = $this->_build_filepath_prefix( 'lqip' );

		// External images will use cache folder directly
		$domain = parse_url( $src, PHP_URL_HOST );
		if ( $domain && ! Utility::internal( $domain ) ) { // todo: need to improve `util:internal()` to include `CDN::internal()`
			$md5 = md5( $src );

			return LITESPEED_STATIC_DIR . $filepath_prefix . 'remote/' . substr( $md5, 0, 1 ) . '/' . substr( $md5, 1, 1 ) . '/' . $md5 . '.' . $size;
		}

		// Drop domain
		$short_path = Utility::att_short_path( $src );

		return LITESPEED_STATIC_DIR . $filepath_prefix . $short_path . '/' . $size;

	}

	/**
	 * Cron placeholder generation
	 *
	 * @since  2.5.1
	 * @access public
	 */
	public static function cron( $continue = false ) {
		$_instance = self::cls();

		$queue = $_instance->load_queue( 'lqip' );

		if ( empty( $queue ) ) {
			return;
		}

		// For cron, need to check request interval too
		if ( ! $continue ) {
			if ( ! empty( $_instance->_summary[ 'curr_request' ] ) && time() - $_instance->_summary[ 'curr_request' ] < 300 ) {
				Debug2::debug( '[LQIP] Last request not done' );
				return;
			}
		}

		foreach ( $queue as $v ) {
			Debug2::debug( '[LQIP] cron job [size] ' . $v );

			$res = $_instance->_generate_placeholder( $v, true );

			// Exit queue if out of quota
			if ( $res == 'out_of_quota' ) {
				return;
			}

			// only request first one
			if ( ! $continue ) {
				return;
			}
		}
	}

	/**
	 * Generate placeholder locally
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _generate_placeholder_locally( $size ) {
		Debug2::debug2( '[LQIP] _generate_placeholder local [size] ' . $size );

		$size = explode( 'x', $size );

		$svg = str_replace( array( '{width}', '{height}', '{color}' ), array( $size[ 0 ], $size[ 1 ], $this->_conf_placeholder_resp_color ), $this->_conf_placeholder_resp_svg );

		return 'data:image/svg+xml;base64,' . base64_encode( $svg );
	}

	/**
	 * Send to LiteSpeed API to generate placeholder
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _generate_placeholder( $raw_size_and_src, $from_cron = false ) {
		// Parse containing size and src info
		$size_and_src = explode( ' ', $raw_size_and_src, 2 );
		$size = $size_and_src[ 0 ];

		if ( empty( $size_and_src[ 1 ] ) ) {
			$this->_popup_and_save( $raw_size_and_src );
			Debug2::debug( '[LQIP] ❌ No src [raw] ' . $raw_size_and_src );
			return $this->_generate_placeholder_locally( $size );
		}

		$src = $size_and_src[ 1 ];

		$file = $this->_placeholder_realpath( $src, $size );

		// Local generate SVG to serve ( Repeatly doing this here to remove stored cron queue in case the setting _conf_lqip is changed )
		if ( ! $this->_conf_lqip || ! $this->_lqip_size_check( $size ) ) {
			$data = $this->_generate_placeholder_locally( $size );
		}
		else {
			$err = false;
			$allowance = Cloud::cls()->allowance( Cloud::SVC_LQIP, $err );
			if ( ! $allowance ) {
				Debug2::debug( '[LQIP] ❌ No credit: ' . $err );
				$err && Admin_Display::error( Error::msg( $err ) );

				if ( $from_cron ) {
					return 'out_of_quota';
				}

				return $this->_generate_placeholder_locally( $size );
			}

			// Generate LQIP
			list( $width, $height ) = explode( 'x', $size );
			$req_data = array(
				'width'		=> $width,
				'height'	=> $height,
				'url'		=> substr( $src, -5 ) === '.webp' ? substr( $src, 0, -5 ) : $src,
				'quality'	=> $this->_conf_lqip_qual,
			);

			// CHeck if the image is 404 first
			if ( File::is_404( $req_data[ 'url' ] ) ) {
				$this->_popup_and_save( $raw_size_and_src, true );
				$this->_append_exc( $src );
				Debug2::debug( '[LQIP] 404 before request [src] ' . $req_data[ 'url' ] );
				return $this->_generate_placeholder_locally( $size );
			}

			// Update request status
			$this->_summary[ 'curr_request' ] = time();
			self::save_summary();

			$json = Cloud::post( Cloud::SVC_LQIP, $req_data, 120 );
			if ( ! is_array( $json ) ) {
				return $this->_generate_placeholder_locally( $size );
			}

			if ( empty( $json[ 'lqip' ] ) || strpos( $json[ 'lqip' ], 'data:image/svg+xml' ) !== 0 ) {
				// image error, pop up the current queue
				$this->_popup_and_save( $raw_size_and_src, true );
				$this->_append_exc( $src );
				Debug2::debug( '[LQIP] wrong response format', $json );

				return $this->_generate_placeholder_locally( $size );
			}

			$data = $json[ 'lqip' ];

			Debug2::debug( '[LQIP] _generate_placeholder LQIP' );
		}

		// Write to file
		File::save( $file, $data, true );

		// Save summary data
		$this->_summary[ 'last_spent' ] = time() - $this->_summary[ 'curr_request' ];
		$this->_summary[ 'last_request' ] = $this->_summary[ 'curr_request' ];
		$this->_summary[ 'curr_request' ] = 0;
		self::save_summary();
		$this->_popup_and_save( $raw_size_and_src );

		Debug2::debug( '[LQIP] saved LQIP ' . $file );

		return $data;
	}

	/**
	 * Check if the size is valid to send LQIP request or not
	 *
	 * @since  3.0
	 */
	private function _lqip_size_check( $size ) {
		$size = explode( 'x', $size );
		if ( $size[ 0 ] >= $this->_conf_lqip_min_w || $size[ 1 ] >= $this->_conf_lqip_min_h ) {
			return true;
		}

		Debug2::debug2( '[LQIP] Size too small' );

		return false;
	}

	/**
	 * Add to LQIP exclude list
	 *
	 * @since  3.4
	 */
	private function _append_exc( $src ) {
		$val = $this->conf( self::O_MEDIA_LQIP_EXC );
		$val[] = $src;
		$this->cls( 'Conf' )->update( self::O_MEDIA_LQIP_EXC, $val );
		Debug2::debug( '[LQIP] Appended to LQIP Excludes [URL] ' . $src );
	}

	/**
	 * Pop up the current request and save
	 *
	 * @since  3.0
	 */
	private function _popup_and_save( $raw_size_and_src, $append_to_exc = false ) {
		$queue = $this->load_queue( 'lqip' );
		if ( ! empty( $queue ) && in_array( $raw_size_and_src, $queue ) ) {
			unset( $queue[ array_search( $raw_size_and_src, $queue ) ] );
		}

		if ( $append_to_exc ) {
			$size_and_src = explode( ' ', $raw_size_and_src, 2 );
			$this_src = $size_and_src[ 1 ];

			// Append to lqip exc setting first
			$this->_append_exc( $this_src );

			// Check if other queues contain this src or not
			if ( $queue ) {
				foreach ( $queue as $k => $raw_size_and_src ) {
					$size_and_src = explode( ' ', $raw_size_and_src, 2 );
					if ( empty( $size_and_src[ 1 ] ) ) {
						continue;
					}

					if ( $size_and_src[ 1 ] == $this_src ) {
						unset( $queue[ $k ] );
					}
				}
			}
		}

		$this->save_queue( 'lqip', $queue );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.5.1
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_GENERATE :
				self::cron( true );
				break;

			case self::TYPE_CLEAR_Q :
				$this->clear_q( 'lqip' );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}<?php
/**
 * The localization class.
 *
 * @since      	3.3
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Localization extends Base {
	const LOG_TAG = '🛍️';

	/**
	 * Init optimizer
	 *
	 * @since  3.0
	 * @access protected
	 */
	public function init() {
		add_filter( 'litespeed_buffer_finalize', array( $this, 'finalize' ), 23 ); // After page optm
	}

	/**
	 * Localize Resources
	 *
	 * @since  3.3
	 */
	public function serve_static( $uri ) {
		$url = base64_decode( $uri );

		if ( ! $this->conf( self::O_OPTM_LOCALIZE ) ) {
			// wp_redirect( $url );
			exit( 'Not supported' );
		}

		if ( substr( $url, -3 ) !== '.js' ) {
			// wp_redirect( $url );
			// exit( 'Not supported ' . $uri );
		}

		$match = false;
		$domains = $this->conf( self::O_OPTM_LOCALIZE_DOMAINS );
		foreach ( $domains as $v ) {
			if ( ! $v || strpos( $v, '#' ) === 0 ) {
				continue;
			}

			$type = 'js';
			$domain = $v;
			// Try to parse space splitted value
			if ( strpos( $v, ' ' ) ) {
				$v = explode( ' ', $v );
				if ( ! empty( $v[ 1 ] ) ) {
					$type = strtolower( $v[ 0 ] );
					$domain = $v[ 1 ];
				}
			}

			if ( strpos( $domain, 'https://' ) !== 0 ) {
				continue;
			}

			if ( $type != 'js' ) {
				continue;
			}

			// if ( strpos( $url, $domain ) !== 0 ) {
			if ( $url != $domain ) {
				continue;
			}

			$match = true;
			break;
		}

		if ( ! $match ) {
			// wp_redirect( $url );
			exit( 'Not supported2' );
		}

		header( 'Content-Type: application/javascript' );

		// Generate
		$this->_maybe_mk_cache_folder( 'localres' );

		$file = $this->_realpath( $url );

		self::debug( 'localize [url] ' . $url );
		$response = wp_remote_get( $url, array( 'timeout' => 180, 'stream' => true, 'filename' => $file ) );

		// Parse response data
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			file_exists( $file ) && unlink( $file );
			self::debug( 'failed to get: ' . $error_message );
			wp_redirect( $url );
			exit;
		}

		$url = $this->_rewrite( $url );

		wp_redirect( $url );
		exit;
	}


	/**
	 * Get the final URL of local avatar
	 *
	 * @since  4.5
	 */
	private function _rewrite( $url ) {
		return LITESPEED_STATIC_URL . '/localres/' . $this->_filepath( $url );
	}

	/**
	 * Generate realpath of the cache file
	 *
	 * @since  4.5
	 * @access private
	 */
	private function _realpath( $url ) {
		return LITESPEED_STATIC_DIR . '/localres/' . $this->_filepath( $url );
	}

	/**
	 * Get filepath
	 *
	 * @since  4.5
	 */
	private function _filepath( $url ) {
		$filename = md5( $url ) . '.js';
		if ( is_multisite() ) {
			$filename = get_current_blog_id() . '/' . $filename;
		}
		return $filename;
	}


	/**
	 * Localize JS/Fonts
	 *
	 * @since 3.3
	 * @access public
	 */
	public function finalize( $content ) {
		if ( is_admin() ) {
			return $content;
		}

		if ( ! $this->conf( self::O_OPTM_LOCALIZE ) ) {
			return $content;
		}

		$domains = $this->conf( self::O_OPTM_LOCALIZE_DOMAINS );
		if ( ! $domains ) {
			return $content;
		}

		foreach ( $domains as $v ) {
			if ( ! $v || strpos( $v, '#' ) === 0 ) {
				continue;
			}

			$type = 'js';
			$domain = $v;
			// Try to parse space splitted value
			if ( strpos( $v, ' ' ) ) {
				$v = explode( ' ', $v );
				if ( ! empty( $v[ 1 ] ) ) {
					$type = strtolower( $v[ 0 ] );
					$domain = $v[ 1 ];
				}
			}

			if ( strpos( $domain, 'https://' ) !== 0 ) {
				continue;
			}

			if ( $type != 'js' ) {
				continue;
			}

			$content = str_replace( $domain, LITESPEED_STATIC_URL . '/localres/' . base64_encode( $domain ), $content );
		}

		return $content;
	}

}<?php
/**
 * The plugin API class.
 *
 * @since      	1.1.3
 * @since  		1.4 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class API extends Base {
	const VERSION =	Core::VER;

	const TYPE_FEED 					= Tag::TYPE_FEED ;
	const TYPE_FRONTPAGE 				= Tag::TYPE_FRONTPAGE ;
	const TYPE_HOME 					= Tag::TYPE_HOME ;
	const TYPE_PAGES 					= Tag::TYPE_PAGES ;
	const TYPE_PAGES_WITH_RECENT_POSTS 	= Tag::TYPE_PAGES_WITH_RECENT_POSTS ;
	const TYPE_HTTP 					= Tag::TYPE_HTTP ;
	const TYPE_ARCHIVE_POSTTYPE 		= Tag::TYPE_ARCHIVE_POSTTYPE ;
	const TYPE_ARCHIVE_TERM 			= Tag::TYPE_ARCHIVE_TERM ;
	const TYPE_AUTHOR 					= Tag::TYPE_AUTHOR ;
	const TYPE_ARCHIVE_DATE 			= Tag::TYPE_ARCHIVE_DATE ;
	const TYPE_BLOG 					= Tag::TYPE_BLOG ;
	const TYPE_LOGIN 					= Tag::TYPE_LOGIN ;
	const TYPE_URL 						= Tag::TYPE_URL ;

	const TYPE_ESI 					= Tag::TYPE_ESI ;

	const PARAM_NAME =				ESI::PARAM_NAME ;
	const WIDGET_O_ESIENABLE =	ESI::WIDGET_O_ESIENABLE ;
	const WIDGET_O_TTL =			ESI::WIDGET_O_TTL ;

	/**
	 * Instance
	 *
	 * @since  3.0
	 */
	public function __construct() {
	}

	/**
	 * Define hooks to be used in other plugins.
	 *
	 * The benefit to use hooks other than functions is no need to detech if LSCWP enabled and function existed or not anymore
	 *
	 * @since  3.0
	 */
	public function init() {
		/**
		 * Init
		 */
		// Action `litespeed_init` // @previous API::hook_init( $hook )

		/**
		 * Conf
		 */
		add_filter( 'litespeed_conf', array( $this, 'conf' ) ); // @previous API::config($id)
		// Action `litespeed_conf_append` // @previous API::conf_append( $name, $default )
		add_action( 'litespeed_conf_multi_switch', __NAMESPACE__ . '\Base::set_multi_switch', 10, 2 );
		// Action ``litespeed_conf_force` // @previous API::force_option( $k, $v )

		/**
		 * Cache Control Hooks
		 */
		// Action `litespeed_control_finalize` // @previous API::hook_control($tags) && action `litespeed_api_control`
		add_action( 'litespeed_control_set_private', __NAMESPACE__ . '\Control::set_private' ); // @previous  API::set_cache_private()
		add_action( 'litespeed_control_set_nocache', __NAMESPACE__ . '\Control::set_nocache' ); // @previous  API::set_nocache( $reason = false )
		add_action( 'litespeed_control_set_cacheable', array( $this, 'set_cacheable' ) ); // Might needed if not call hook `wp` // @previous API::set_cacheable( $reason )
		add_action( 'litespeed_control_force_cacheable', __NAMESPACE__ . '\Control::force_cacheable' ); // Set cache status to force cacheable ( Will ignore most kinds of non-cacheable conditions ) // @previous API::set_force_cacheable( $reason )
		add_action( 'litespeed_control_force_public', __NAMESPACE__ . '\Control::set_public_forced' ); // Set cache to force public cache if cacheable ( Will ignore most kinds of non-cacheable conditions ) // @previous API::set_force_public( $reason )
		add_filter( 'litespeed_control_cacheable', __NAMESPACE__ . '\Control::is_cacheable', 3 ); // Note: Read-Only. Directly append to this filter won't work. Call actions above to set cacheable or not // @previous API::not_cacheable()
		add_action( 'litespeed_control_set_ttl', __NAMESPACE__ . '\Control::set_custom_ttl', 10, 2 ); // @previous API::set_ttl( $val )
		add_filter( 'litespeed_control_ttl', array( $this, 'get_ttl' ), 3 ); // @previous API::get_ttl()

		/**
		 * Tag Hooks
		 */
		// Action `litespeed_tag_finalize` // @previous API::hook_tag( $hook )
		add_action( 'litespeed_tag', __NAMESPACE__ . '\Tag::add' ); // Shorter alias of `litespeed_tag_add`
		add_action( 'litespeed_tag_post', __NAMESPACE__ . '\Tag::add_post' ); // Shorter alias of `litespeed_tag_add_post`
		add_action( 'litespeed_tag_widget', __NAMESPACE__ . '\Tag::add_widget' ); // Shorter alias of `litespeed_tag_add_widget`
		add_action( 'litespeed_tag_private', __NAMESPACE__ . '\Tag::add_private' ); // Shorter alias of `litespeed_tag_add_private`
		add_action( 'litespeed_tag_private_esi', __NAMESPACE__ . '\Tag::add_private_esi' ); // Shorter alias of `litespeed_tag_add_private_esi`

		add_action( 'litespeed_tag_add', __NAMESPACE__ . '\Tag::add' ); // @previous API::tag_add( $tag )
		add_action( 'litespeed_tag_add_post', __NAMESPACE__ . '\Tag::add_post' );
		add_action( 'litespeed_tag_add_widget', __NAMESPACE__ . '\Tag::add_widget' );
		add_action( 'litespeed_tag_add_private', __NAMESPACE__ . '\Tag::add_private' ); // @previous API::tag_add_private( $tags )
		add_action( 'litespeed_tag_add_private_esi', __NAMESPACE__ . '\Tag::add_private_esi' );

		/**
		 * Purge Hooks
		 */
		// Action `litespeed_purge_finalize` // @previous API::hook_purge($tags)
		add_action( 'litespeed_purge', __NAMESPACE__ . '\Purge::add' ); // @previous API::purge($tags)
		add_action( 'litespeed_purge_all', __NAMESPACE__ . '\Purge::purge_all' );
		add_action( 'litespeed_purge_post', array( $this, 'purge_post' ) ); // @previous API::purge_post( $pid )
		add_action( 'litespeed_purge_posttype', __NAMESPACE__ . '\Purge::purge_posttype' );
		add_action( 'litespeed_purge_url', array( $this, 'purge_url' ) );
		add_action( 'litespeed_purge_widget', __NAMESPACE__ . '\Purge::purge_widget' );
		add_action( 'litespeed_purge_esi', __NAMESPACE__ . '\Purge::purge_esi' );
		add_action( 'litespeed_purge_private', __NAMESPACE__ . '\Purge::add_private' ); // @previous API::purge_private( $tags )
		add_action( 'litespeed_purge_private_esi', __NAMESPACE__ . '\Purge::add_private_esi' );
		add_action( 'litespeed_purge_private_all', __NAMESPACE__ . '\Purge::add_private_all' ); // @previous API::purge_private_all()
		// Action `litespeed_api_purge_post` // Triggered when purge a post // @previous API::hook_purge_post($hook)
		// Action `litespeed_purged_all` // Triggered after purged all.
		add_action( 'litespeed_purge_all_object', __NAMESPACE__ . '\Purge::purge_all_object' );
		add_action( 'litespeed_purge_ucss', __NAMESPACE__ . '\Purge::purge_ucss' );

		/**
		 * ESI
		 */
		// Action `litespeed_nonce` // @previous API::nonce_action( $action ) & API::nonce( $action = -1, $defence_for_html_filter = true ) // NOTE: only available after `init` hook
		add_filter( 'litespeed_esi_status', array( $this, 'esi_enabled' ) ); // Get ESI enable status // @previous API::esi_enabled()
		add_filter( 'litespeed_esi_url', array( $this, 'sub_esi_block' ), 10, 8 ); // Generate ESI block url // @previous API::esi_url( $block_id, $wrapper, $params = array(), $control = 'private,no-vary', $silence = false, $preserved = false, $svar = false, $inline_val = false )
		// Filter `litespeed_widget_default_options` // Hook widget default settings value. Currently used in Woo 3rd // @previous API::hook_widget_default_options( $hook )
		// Filter `litespeed_esi_params` // @previous API::hook_esi_param( $hook )
		// Action `litespeed_tpl_normal` // @previous API::hook_tpl_not_esi($hook) && Action `litespeed_is_not_esi_template`
		// Action `litespeed_esi_load-$block` // @usage add_action( 'litespeed_esi_load-' . $block, $hook ) // @previous API::hook_tpl_esi($block, $hook)
		add_action( 'litespeed_esi_combine', __NAMESPACE__ . '\ESI::combine' );

		/**
		 * Vary
		 *
		 * To modify default vary, There are two ways: Action `litespeed_vary_append` or Filter `litespeed_vary`
		 */
		add_action( 'litespeed_vary_ajax_force', __NAMESPACE__ . '\Vary::can_ajax_vary' ); // API::force_vary() -> Action `litespeed_vary_ajax_force` // Force finalize vary even if its in an AJAX call
		// Filter `litespeed_vary_curr_cookies` to generate current in use vary, which will be used for response vary header.
		// Filter `litespeed_vary_cookies` to register the final vary cookies, which will be written to rewrite rule. (litespeed_vary_curr_cookies are always equal to or less than litespeed_vary_cookies)
		// Filter `litespeed_vary` // Previous API::hook_vary_finalize( $hook )
		add_action( 'litespeed_vary_no', __NAMESPACE__ . '\Control::set_no_vary' ); // API::set_cache_no_vary() -> Action `litespeed_vary_no` // Set cache status to no vary

		// add_filter( 'litespeed_is_mobile', __NAMESPACE__ . '\Control::is_mobile' ); // API::set_mobile() -> Filter `litespeed_is_mobile`

		/**
		 * Cloud
		 */
		add_filter( 'litespeed_is_from_cloud', array( $this, 'is_from_cloud' ) ); // Check if current request is from QC (usally its to check REST access) // @see https://wordpress.org/support/topic/image-optimization-not-working-3/

		/**
		 * Media
		 */
		add_action( 'litespeed_media_reset', __NAMESPACE__ . '\Media::delete_attachment' ); // Reset one media row

		/**
		 * GUI
		 */
		// API::clean_wrapper_begin( $counter = false ) -> Filter `litespeed_clean_wrapper_begin` // Start a to-be-removed html wrapper
		add_filter( 'litespeed_clean_wrapper_begin', __NAMESPACE__ . '\GUI::clean_wrapper_begin' );
		// API::clean_wrapper_end( $counter = false ) -> Filter `litespeed_clean_wrapper_end` // End a to-be-removed html wrapper
		add_filter( 'litespeed_clean_wrapper_end', __NAMESPACE__ . '\GUI::clean_wrapper_end' );

		/**
		 * Mist
		 */
		add_action( 'litespeed_debug', __NAMESPACE__ . '\Debug2::debug', 10, 2 ); // API::debug()-> Action `litespeed_debug`
		add_action( 'litespeed_debug2', __NAMESPACE__ . '\Debug2::debug2', 10, 2 ); // API::debug2()-> Action `litespeed_debug2`
		add_action( 'litespeed_disable_all', array( $this, '_disable_all' ) ); // API::disable_all( $reason ) -> Action `litespeed_disable_all`

		add_action( 'litspeed_after_admin_init', array( $this, '_after_admin_init' ) );
	}

	/**
	 * API for admin related
	 *
	 * @since  3.0
	 * @access public
	 */
	public function _after_admin_init() {
		/**
		 * GUI
		 */
		add_action( 'litespeed_setting_enroll', array( $this->cls( 'Admin_Display' ), 'enroll' ), 10, 4 ); // API::enroll( $id ) // Register a field in setting form to save
		add_action( 'litespeed_build_switch', array( $this->cls( 'Admin_Display' ), 'build_switch' ) ); // API::build_switch( $id ) // Build a switch div html snippet
		// API::hook_setting_content( $hook, $priority = 10, $args = 1 ) -> Action `litespeed_settings_content`
		// API::hook_setting_tab( $hook, $priority = 10, $args = 1 ) -> Action `litespeed_settings_tab`
	}

	/**
	 * Disable All (Note: Not for direct call, always use Hooks)
	 *
	 * @since 2.9.7.2
	 * @access public
	 */
	public function _disable_all( $reason ) {
		do_action( 'litespeed_debug', '[API] Disabled_all due to ' . $reason );

		! defined( 'LITESPEED_DISABLE_ALL' ) && define( 'LITESPEED_DISABLE_ALL', true );
	}

	/**
	 * @since 3.0
	 */
	public static function vary_append_commenter() {
		Vary::cls()->append_commenter() ;
	}

	/**
	 * Check if is from Cloud
	 *
	 * @since 4.2
	 */
	public function is_from_cloud() {
		return $this->cls( 'Cloud' )->is_from_cloud();
	}

	public function purge_post( $pid ) {
		$this->cls( 'Purge' )->purge_post( $pid );
	}

	public function purge_url( $url ) {
		$this->cls( 'Purge' )->purge_url( $url );
	}

	public function set_cacheable( $reason = false ) {
		$this->cls( 'Control' )->set_cacheable( $reason );
	}

	public function esi_enabled() {
		return $this->cls( 'Router' )->esi_enabled();
	}

	public function get_ttl() {
		return $this->cls( 'Control' )->get_ttl();
	}

	public function sub_esi_block( $block_id, $wrapper, $params = array(), $control = 'private,no-vary', $silence = false, $preserved = false, $svar = false, $inline_param = array() ) {
		return $this->cls( 'ESI' )->sub_esi_block( $block_id, $wrapper, $params, $control, $silence, $preserved, $svar, $inline_param );
	}

}
<?php
/**
 * The admin-panel specific functionality of the plugin.
 *
 *
 * @since      1.0.0
 * @package    LiteSpeed_Cache
 * @subpackage LiteSpeed_Cache/admin
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Admin extends Root {
	const PAGE_EDIT_HTACCESS = 'litespeed-edit-htaccess';

	/**
	 * Initialize the class and set its properties.
	 * Run in hook `after_setup_theme` when is_admin()
	 *
	 * @since    1.0.0
	 */
	public function __construct() {
		// Define LSCWP_MU_PLUGIN if is mu-plugins
		if ( defined( 'WPMU_PLUGIN_DIR' ) && dirname( LSCWP_DIR ) == WPMU_PLUGIN_DIR ) {
			define( 'LSCWP_MU_PLUGIN', true );
		}

		// Additional litespeed assets on admin display
		// Also register menu
		$this->cls( 'Admin_Display' );

		// initialize admin actions
		add_action( 'admin_init', array( $this, 'admin_init' ) );
		// add link to plugin list page
		add_filter( 'plugin_action_links_' . LSCWP_BASENAME, array( $this->cls( 'Admin_Display' ), 'add_plugin_links' ) );

		if ( defined( 'LITESPEED_ON' ) ) {
			// register purge_all actions
			$purge_all_events = $this->conf( Base::O_PURGE_HOOK_ALL );

			// purge all on upgrade
			if ( $this->conf( Base::O_PURGE_ON_UPGRADE ) ) {
				$purge_all_events[] = 'upgrader_process_complete';
				$purge_all_events[] = 'admin_action_do-plugin-upgrade';
			}
			foreach ( $purge_all_events as $event ) {
				// Don't allow hook to update_option bcos purge_all will cause infinite loop of update_option
				if ( in_array( $event, array( 'update_option' ) ) ) {
					continue;
				}
				add_action( $event, __NAMESPACE__ . '\Purge::purge_all' );
			}
			// add_filter( 'upgrader_pre_download', 'Purge::filter_with_purge_all' );
		}
	}

	/**
	 * Callback that initializes the admin options for LiteSpeed Cache.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function admin_init() {
		Control::set_nocache( 'Admin page' );

		// Hook attachment upload
		if ( $this->conf( Base::O_IMG_OPTM_AUTO ) ) {
			add_filter( 'wp_update_attachment_metadata', array( $this, 'wp_update_attachment_metadata' ), 9999, 2 );
		}

		$this->_proceed_admin_action();

		// Terminate if user doesn't have the access to settings
		if( is_network_admin() ) {
			$capability = 'manage_network_options';
		}
		else {
			$capability = 'manage_options';
		}
		if ( ! current_user_can($capability) ) {
			return;
		}

		// Save setting from admin settings page
		// NOTE: cli will call `validate_plugin_settings` manually. Cron activation doesn't need to validate

		// Add privacy policy
		// @since 2.2.6
		if ( function_exists( 'wp_add_privacy_policy_content' ) ) {
			wp_add_privacy_policy_content( Core::NAME, Doc::privacy_policy() );
		}

		$this->cls( 'Media' )->after_admin_init();

		do_action( 'litspeed_after_admin_init' );

		if ( $this->cls( 'Router' )->esi_enabled() ) {
			add_action( 'in_widget_form', array( $this->cls( 'Admin_Display' ), 'show_widget_edit' ), 100, 3 );
			add_filter( 'widget_update_callback', __NAMESPACE__ . '\Admin_Settings::validate_widget_save', 10, 4 );
		}
	}

	/**
	 * Handle attachment update
	 * @since  4.0
	 */
	public function wp_update_attachment_metadata( $data, $post_id ) {
		$this->cls( 'Img_Optm' )->wp_update_attachment_metadata( $data, $post_id );
		return $data;
	}

	/**
	 * Run litespeed admin actions
	 *
	 * @since 1.1.0
	 */
	private function _proceed_admin_action() {
		// handle actions
		switch ( Router::get_action() ) {
			case Router::ACTION_SAVE_SETTINGS:
				$this->cls( 'Admin_Settings' )->save( $_POST );
				break;


			// Save network settings
			case Router::ACTION_SAVE_SETTINGS_NETWORK:
				$this->cls( 'Admin_Settings' )->network_save( $_POST );
				break;

			default:
				break;
		}

	}

	/**
	 * Clean up the input string of any extra slashes/spaces.
	 *
	 * @since 1.0.4
	 * @access public
	 * @param string $input The input string to clean.
	 * @return string The cleaned up input.
	 */
	public static function cleanup_text( $input ) {
		if ( is_array( $input ) ) {
			return array_map( __CLASS__ . '::cleanup_text', $input );
		}

		return stripslashes( trim( $input ) );
	}

	/**
	 * After a LSCWP_CTRL action, need to redirect back to the same page
	 * without the nonce and action in the query string.
	 *
	 * @since 1.0.12
	 * @access public
	 * @global string $pagenow
	 */
	public static function redirect( $url = false ) {
		global $pagenow;

		if ( ! empty( $_GET[ '_litespeed_ori' ] ) ) {
			wp_redirect( $_SERVER[ 'HTTP_REFERER' ] );
			exit;
		}

		$qs = '';
		if ( ! $url ) {
			if ( ! empty( $_GET ) ) {
				if ( isset( $_GET[ Router::ACTION ] ) ) {
					unset( $_GET[ Router::ACTION ] );
				}
				if ( isset( $_GET[ Router::NONCE ] ) ) {
					unset( $_GET[ Router::NONCE ] );
				}
				if ( isset( $_GET[ Router::TYPE ] ) ) {
					unset( $_GET[ Router::TYPE ] );
				}
				if ( isset( $_GET[ 'litespeed_i' ] ) ) {
					unset( $_GET[ 'litespeed_i' ] );
				}
				if ( ! empty( $_GET ) ) {
					$qs = '?' . http_build_query( $_GET );
				}
			}
			if ( is_network_admin() ) {
				$url = network_admin_url( $pagenow . $qs );
			}
			else {
				$url = admin_url( $pagenow . $qs );
			}
		}

		wp_redirect( $url );
		exit;
	}
}
<?php
/**
 * The plugin cache-tag class for X-LiteSpeed-Tag
 *
 * @since      	1.1.3
 * @since  		1.5 Moved into /inc
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Tag extends Root {
	const TYPE_FEED = 'FD';
	const TYPE_FRONTPAGE = 'F';
	const TYPE_HOME = 'H';
	const TYPE_PAGES = 'PGS';
	const TYPE_PAGES_WITH_RECENT_POSTS = 'PGSRP';
	const TYPE_HTTP = 'HTTP.';
	const TYPE_POST = 'Po.'; // Post. Cannot use P, reserved for litemage.
	const TYPE_ARCHIVE_POSTTYPE = 'PT.';
	const TYPE_ARCHIVE_TERM = 'T.'; //for is_category|is_tag|is_tax
	const TYPE_AUTHOR = 'A.';
	const TYPE_ARCHIVE_DATE = 'D.';
	const TYPE_BLOG = 'B.';
	const TYPE_LOGIN = 'L';
	const TYPE_URL = 'URL.';
	const TYPE_WIDGET = 'W.';
	const TYPE_ESI = 'ESI.';
	const TYPE_REST = 'REST';
	const TYPE_LIST = 'LIST';
	const TYPE_MIN = 'MIN';
	const TYPE_LOCALRES = 'LOCALRES';

	const X_HEADER = 'X-LiteSpeed-Tag';

	private static $_tags = array();
	private static $_tags_priv = array( 'tag_priv' );

	/**
	 * Initialize
	 *
	 * @since 4.0
	 */
	public function init() {
		// register recent posts widget tag before theme renders it to make it work
		add_filter( 'widget_posts_args', array( $this, 'add_widget_recent_posts' ) );

	}

	/**
	 * Check if the login page is cacheable.
	 * If not, unset the cacheable member variable.
	 *
	 * NOTE: This is checked separately because login page doesn't go through WP logic.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function check_login_cacheable() {
		if ( ! $this->conf( Base::O_CACHE_PAGE_LOGIN ) ) {
			return;
		}
		if ( Control::isset_notcacheable() ) {
			return;
		}

		if ( ! empty( $_GET ) ) {
			Control::set_nocache( 'has GET request' );
			return;
		}

		$this->cls( 'Control' )->set_cacheable();

		self::add( self::TYPE_LOGIN );

		// we need to send lsc-cookie manually to make it be sent to all other users when is cacheable
		$list = headers_list();
		if ( empty( $list ) ) {
			return;
		}
		foreach ( $list as $hdr ) {
			if ( strncasecmp( $hdr, 'set-cookie:', 11 ) == 0 ) {
				$cookie = substr( $hdr, 12 );
				@header( 'lsc-cookie: ' . $cookie, false );
			}
		}
	}

	/**
	 * Register purge tag for pages with recent posts widget
	 * of the plugin.
	 *
	 * @since    1.0.15
	 * @access   public
	 * @param array $params [wordpress params for widget_posts_args]
	 */
	public function add_widget_recent_posts( $params ) {
		self::add( self::TYPE_PAGES_WITH_RECENT_POSTS );
		return $params;
	}

	/**
	 * Adds cache tags to the list of cache tags for the current page.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param mixed $tags A string or array of cache tags to add to the current list.
	 */
	public static function add( $tags ) {
		if ( ! is_array( $tags ) ) {
			$tags = array( $tags );
		}

		Debug2::debug( '💰 [Tag] Add ', $tags );

		self::$_tags = array_merge( self::$_tags, $tags );

		// Send purge header immediately
		$tag_header = self::cls()->output( true );
		@header( $tag_header );
	}

	/**
	 * Add a post id to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_post( $pid ) {
		self::add( self::TYPE_POST . $pid );
	}

	/**
	 * Add a widget id to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_widget( $id ) {
		self::add( self::TYPE_WIDGET . $id );
	}

	/**
	 * Add a private ESI to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_esi( $tag ) {
		self::add_private( self::TYPE_ESI . $tag );
	}

	/**
	 * Adds private cache tags to the list of cache tags for the current page.
	 *
	 * @since 1.6.3
	 * @access public
	 * @param mixed $tags A string or array of cache tags to add to the current list.
	 */
	public static function add_private( $tags ) {
		if ( ! is_array( $tags ) ) {
			$tags = array( $tags );
		}

		self::$_tags_priv = array_merge( self::$_tags_priv, $tags );
	}

	/**
	 * Return tags for Admin QS
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function output_tags() {
		return self::$_tags;
	}

	/**
	 * Will get a hash of the URI. Removes query string and appends a '/' if it is missing.
	 *
	 * @since 1.0.12
	 * @access public
	 * @param string $uri The uri to get the hash of.
	 * @param boolean $ori Return the original url or not
	 * @return bool|string False on input error, hash otherwise.
	 */
	public static function get_uri_tag( $uri, $ori = false ) {
		$no_qs = strtok( $uri, '?' );
		if ( empty( $no_qs ) ) {
			return false;
		}
		$slashed = trailingslashit( $no_qs );

		// If only needs uri tag
		if ( $ori ) {
			return $slashed;
		}

		if ( defined( 'LSCWP_LOG' ) ) {
			return self::TYPE_URL . $slashed;
		}
		return self::TYPE_URL . md5( $slashed );
	}

	/**
	 * Get the unique tag based on self url.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param boolean $ori Return the original url or not
	 */
	public static function build_uri_tag( $ori = false ) {
		return self::get_uri_tag( urldecode( $_SERVER['REQUEST_URI'] ), $ori );
	}

	/**
	 * Gets the cache tags to set for the page.
	 *
	 * This includes site wide post types (e.g. front page) as well as
	 * any third party plugin specific cache tags.
	 *
	 * @since 1.0.0
	 * @access private
	 * @return array The list of cache tags to set.
	 */
	private static function _build_type_tags() {
		$tags = array();

		$tags[] = Utility::page_type();

		$tags[] = self::build_uri_tag();

		if ( is_front_page() ) {
			$tags[] = self::TYPE_FRONTPAGE;
		}
		elseif ( is_home() ) {
			$tags[] = self::TYPE_HOME;
		}

		$queried_obj_id = get_queried_object_id();
		if ( is_archive() ) {
			//An Archive is a Category, Tag, Author, Date, Custom Post Type or Custom Taxonomy based pages.
			if ( is_category() || is_tag() || is_tax() ) {
				$tags[] = self::TYPE_ARCHIVE_TERM . $queried_obj_id;
			}
			elseif ( is_post_type_archive() ) {
				global $wp_query;
				$post_type = $wp_query->get( 'post_type' );
				$tags[] = self::TYPE_ARCHIVE_POSTTYPE . $post_type;
			}
			elseif ( is_author() ) {
				$tags[] = self::TYPE_AUTHOR . $queried_obj_id;
			}
			elseif ( is_date() ) {
				global $post;
				$date = $post->post_date;
				$date = strtotime( $date );
				if ( is_day() ) {
					$tags[] = self::TYPE_ARCHIVE_DATE . date( 'Ymd', $date );
				}
				elseif ( is_month() ) {
					$tags[] = self::TYPE_ARCHIVE_DATE . date( 'Ym', $date );
				}
				elseif ( is_year() ) {
					$tags[] = self::TYPE_ARCHIVE_DATE . date( 'Y', $date );
				}
			}
		}
		elseif ( is_singular() ) {
			//$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
			$tags[] = self::TYPE_POST . $queried_obj_id;

			if ( is_page() ) {
				$tags[] = self::TYPE_PAGES;
			}
		}
		elseif ( is_feed() ) {
			$tags[] = self::TYPE_FEED;
		}

		// Check REST API
		if ( REST::cls()->is_rest() ) {
			$tags[] = self::TYPE_REST;

			$path = ! empty( $_SERVER[ 'SCRIPT_URL' ] ) ? $_SERVER[ 'SCRIPT_URL' ] : false;
			if ( $path ) {
				// posts collections tag
				if ( substr( $path, -6 ) == '/posts' ) {
					$tags[] = self::TYPE_LIST;// Not used for purge yet
				}

				// single post tag
				global $post;
				if ( ! empty( $post->ID ) && substr( $path, - strlen( $post->ID ) - 1 ) === '/' . $post->ID ) {
					$tags[] = self::TYPE_POST . $post->ID;
				}

				// pages collections & single page tag
				if ( stripos( $path, '/pages' ) !== false ) {
					$tags[] = self::TYPE_PAGES;
				}
			}

		}

		return $tags;
	}

	/**
	 * Generate all cache tags before output
	 *
	 * @access private
	 * @since 1.1.3
	 */
	private static function _finalize() {
		// run 3rdparty hooks to tag
		do_action( 'litespeed_tag_finalize' );
		// generate wp tags
		if ( ! defined( 'LSCACHE_IS_ESI' ) ) {
			$type_tags = self::_build_type_tags();
			self::$_tags = array_merge( self::$_tags, $type_tags );
		}

		if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST ) {
			self::$_tags[] = 'guest';
		}

		// append blog main tag
		self::$_tags[] = '';
		// removed duplicates
		self::$_tags = array_unique( self::$_tags );
	}

	/**
	 * Sets up the Cache Tags header.
	 * ONLY need to run this if is cacheable
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string empty string if empty, otherwise the cache tags header.
	 */
	public function output( $no_finalize = false ) {
		if ( defined( 'LSCACHE_NO_CACHE' ) && LSCACHE_NO_CACHE ) {
			return;
		}

		if ( ! $no_finalize ) {
			self::_finalize();
		}

		$prefix_tags = array();
		/**
		 * Only append blog_id when is multisite
		 * @since 2.9.3
		 */
		$prefix = LSWCP_TAG_PREFIX . ( is_multisite() ? get_current_blog_id() : '' ) . '_';

		// If is_private and has private tags, append them first, then specify prefix to `public` for public tags
		if ( Control::is_private() ) {
			foreach ( self::$_tags_priv as $priv_tag ) {
				$prefix_tags[] = $prefix . $priv_tag;
			}
			$prefix = 'public:' . $prefix;
		}

		foreach ( self::$_tags as $tag ) {
			$prefix_tags[] = $prefix . $tag;
		}

		$hdr = self::X_HEADER . ': ' . implode( ',', $prefix_tags );

		return $hdr;
	}

}<?php
/**
 * The abstract instance
 *
 * @since      	3.0
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

abstract class Instance extends Root {
}<?php
/**
 * The object cache class
 *
 * @since      	1.8
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require_once dirname( __DIR__ ) . '/autoload.php';

class Object_Cache extends Root {
	const O_OBJECT				 = 'object';
	const O_OBJECT_KIND			 = 'object-kind';
	const O_OBJECT_HOST			 = 'object-host';
	const O_OBJECT_PORT			 = 'object-port';
	const O_OBJECT_LIFE			 = 'object-life';
	const O_OBJECT_PERSISTENT	 = 'object-persistent';
	const O_OBJECT_ADMIN		 = 'object-admin';
	const O_OBJECT_TRANSIENTS	 = 'object-transients';
	const O_OBJECT_DB_ID		 = 'object-db_id';
	const O_OBJECT_USER			 = 'object-user';
	const O_OBJECT_PSWD			 = 'object-pswd';
	const O_OBJECT_GLOBAL_GROUPS = 'object-global_groups';
	const O_OBJECT_NON_PERSISTENT_GROUPS = 'object-non_persistent_groups';

	private $_conn;
	private $_cfg_enabled;
	private $_cfg_method;
	private $_cfg_host;
	private $_cfg_port;
	private $_cfg_persistent;
	private $_cfg_admin;
	private $_cfg_transients;
	private $_cfg_db;
	private $_cfg_user;
	private $_cfg_pswd;
	private $_default_life = 360;

	private $_oc_driver = 'Memcached'; // Redis or Memcached

	private $_global_groups = array();
	private $_non_persistent_groups = array();

	/**
	 * Init
	 *
	 * NOTE: this class may be included without initialized  core
	 *
	 * @since  1.8
	 */
	public function __construct( $cfg = false ) {
		defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] init' );

		if ( $cfg ) {
			if ( ! is_array( $cfg[ Base::O_OBJECT_GLOBAL_GROUPS ] ) ) {
				$cfg[ Base::O_OBJECT_GLOBAL_GROUPS ] = explode( "\n", $cfg[ Base::O_OBJECT_GLOBAL_GROUPS ] );
			}
			if ( ! is_array( $cfg[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ] ) ) {
				$cfg[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ] = explode( "\n", $cfg[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ] );
			}
			$this->_cfg_method = $cfg[ Base::O_OBJECT_KIND ] ? true : false;
			$this->_cfg_host = $cfg[ Base::O_OBJECT_HOST ];
			$this->_cfg_port = $cfg[ Base::O_OBJECT_PORT ];
			$this->_cfg_life = $cfg[ Base::O_OBJECT_LIFE ];
			$this->_cfg_persistent = $cfg[ Base::O_OBJECT_PERSISTENT ];
			$this->_cfg_admin = $cfg[ Base::O_OBJECT_ADMIN ];
			$this->_cfg_transients = $cfg[ Base::O_OBJECT_TRANSIENTS ];
			$this->_cfg_db = $cfg[ Base::O_OBJECT_DB_ID ];
			$this->_cfg_user = $cfg[ Base::O_OBJECT_USER ];
			$this->_cfg_pswd = $cfg[ Base::O_OBJECT_PSWD ];
			$this->_global_groups = $cfg[ Base::O_OBJECT_GLOBAL_GROUPS ];
			$this->_non_persistent_groups = $cfg[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ];

			if ( $this->_cfg_method ) {
				$this->_oc_driver = 'Redis';
			}
			$this->_cfg_enabled = $cfg[ Base::O_OBJECT ] && class_exists( $this->_oc_driver ) && $this->_cfg_host;

			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] init with cfg result : ', $this->_cfg_enabled );
		}
		// If OC is OFF, will hit here to init OC after conf initialized
		elseif ( defined( 'LITESPEED_CONF_LOADED' ) ) {
			$this->_cfg_method = $this->conf( Base::O_OBJECT_KIND ) ? true : false;
			$this->_cfg_host = $this->conf( Base::O_OBJECT_HOST );
			$this->_cfg_port = $this->conf( Base::O_OBJECT_PORT );
			$this->_cfg_life = $this->conf( Base::O_OBJECT_LIFE );
			$this->_cfg_persistent = $this->conf( Base::O_OBJECT_PERSISTENT );
			$this->_cfg_admin = $this->conf( Base::O_OBJECT_ADMIN );
			$this->_cfg_transients = $this->conf( Base::O_OBJECT_TRANSIENTS );
			$this->_cfg_db = $this->conf( Base::O_OBJECT_DB_ID );
			$this->_cfg_user = $this->conf( Base::O_OBJECT_USER );
			$this->_cfg_pswd = $this->conf( Base::O_OBJECT_PSWD );
			$this->_global_groups = $this->conf( Base::O_OBJECT_GLOBAL_GROUPS );
			$this->_non_persistent_groups = $this->conf( Base::O_OBJECT_NON_PERSISTENT_GROUPS );

			if ( $this->_cfg_method ) {
				$this->_oc_driver = 'Redis';
			}
			$this->_cfg_enabled = $this->conf( Base::O_OBJECT ) && class_exists( $this->_oc_driver ) && $this->_cfg_host;
		}
		elseif ( defined( 'self::CONF_FILE' ) && file_exists( WP_CONTENT_DIR . '/' . self::CONF_FILE ) ) { // Get cfg from _data_file
			// Use self::const to avoid loading more classes
			$cfg = json_decode( file_get_contents( WP_CONTENT_DIR . '/' . self::CONF_FILE ), true );
			if ( ! empty( $cfg[ self::O_OBJECT_HOST ] ) ) {
				$this->_cfg_method = ! empty( $cfg[ self::O_OBJECT_KIND ] ) ? $cfg[ self::O_OBJECT_KIND ] : false;
				$this->_cfg_host = $cfg[ self::O_OBJECT_HOST ];
				$this->_cfg_port = $cfg[ self::O_OBJECT_PORT ];
				$this->_cfg_life = ! empty( $cfg[ self::O_OBJECT_LIFE ] ) ? $cfg[ self::O_OBJECT_LIFE ] : $this->_default_life;
				$this->_cfg_persistent = ! empty( $cfg[ self::O_OBJECT_PERSISTENT ] ) ? $cfg[ self::O_OBJECT_PERSISTENT ] : false;
				$this->_cfg_admin = ! empty( $cfg[ self::O_OBJECT_ADMIN ] ) ? $cfg[ self::O_OBJECT_ADMIN ] : false;
				$this->_cfg_transients = ! empty( $cfg[ self::O_OBJECT_TRANSIENTS ] ) ? $cfg[ self::O_OBJECT_TRANSIENTS ] : false;
				$this->_cfg_db = ! empty( $cfg[ self::O_OBJECT_DB_ID ] ) ? $cfg[ self::O_OBJECT_DB_ID ] : 0;
				$this->_cfg_user = ! empty( $cfg[ self::O_OBJECT_USER ] ) ? $cfg[ self::O_OBJECT_USER ] : '';
				$this->_cfg_pswd = ! empty( $cfg[ self::O_OBJECT_PSWD ] ) ? $cfg[ self::O_OBJECT_PSWD ] : '';
				$this->_global_groups = ! empty( $cfg[ self::O_OBJECT_GLOBAL_GROUPS ] ) ? $cfg[ self::O_OBJECT_GLOBAL_GROUPS ] : array();
				$this->_non_persistent_groups = ! empty( $cfg[ self::O_OBJECT_NON_PERSISTENT_GROUPS ] ) ? $cfg[ self::O_OBJECT_NON_PERSISTENT_GROUPS ] : array();

				if ( $this->_cfg_method ) {
					$this->_oc_driver = 'Redis';
				}
				$this->_cfg_enabled = class_exists( $this->_oc_driver ) && $this->_cfg_host;
			}
			else {
				$this->_cfg_enabled = false;
			}

		}
		else {
			$this->_cfg_enabled = false;
		}
	}

	/**
	 * Get `Store Transients` setting value
	 *
	 * @since  1.8.3
	 * @access public
	 */
	public function store_transients( $group ) {
		return $this->_cfg_transients && $this->_is_transients_group( $group );
	}

	/**
	 * Check if the group belongs to transients or not
	 *
	 * @since  1.8.3
	 * @access private
	 */
	private function _is_transients_group( $group ) {
		return in_array( $group, array( 'transient', 'site-transient' ) );
	}

	/**
	 * Update WP object cache file config
	 *
	 * @since  1.8
	 * @access public
	 */
	public function update_file( $options ) {
		$changed = false;

		// NOTE: When included in oc.php, `LSCWP_DIR` will show undefined, so this must be assigned/generated when used
		$_oc_ori_file = LSCWP_DIR . 'lib/object-cache.php';
		$_oc_wp_file = WP_CONTENT_DIR . '/object-cache.php';

		// Update cls file
		if ( ! file_exists( $_oc_wp_file ) || md5_file( $_oc_wp_file ) !== md5_file( $_oc_ori_file ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] copying object-cache.php file to ' . $_oc_wp_file );
			copy( $_oc_ori_file, $_oc_wp_file );

			$changed = true;
		}

		/**
		 * Clear object cache
		 */
		if ( $changed ) {
			$this->_reconnect( $options );
		}
	}

	/**
	 * Remove object cache file
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function del_file() {
		// NOTE: When included in oc.php, `LSCWP_DIR` will show undefined, so this must be assigned/generated when used
		$_oc_ori_file = LSCWP_DIR . 'lib/object-cache.php';
		$_oc_wp_file = WP_CONTENT_DIR . '/object-cache.php';

		if ( file_exists( $_oc_wp_file ) && md5_file( $_oc_wp_file ) === md5_file( $_oc_ori_file ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] removing ' . $_oc_wp_file );
			unlink( $_oc_wp_file );
		}
	}

	/**
	 * Try to build connection
	 *
	 * @since  1.8
	 * @access public
	 */
	public function test_connection() {
		return $this->_connect();
	}

	/**
	 * Force to connect with this setting
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _reconnect( $cfg ) {
		defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Reconnecting' );
		// error_log( 'Object: reconnect !' );
		if ( isset( $this->_conn ) ) {
			// error_log( 'Object: Quiting existing connection!' );
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Quiting existing connection' );
			$this->flush();
			$this->_conn = null;
			$this->cls( false, true );
		}

		$cls = $this->cls( false, false, $cfg );
		$cls->_connect();
		if ( isset( $cls->_conn ) ) {
			$cls->flush();
		}

	}

	/**
	 * Connect to Memcached/Redis server
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _connect() {
		if ( isset( $this->_conn ) ) {
			// error_log( 'Object: _connected' );
			return true;
		}

		if ( ! class_exists( $this->_oc_driver ) || ! $this->_cfg_host ) {
			return null;
		}

		if ( defined( 'LITESPEED_OC_FAILURE' ) ) {
			return false;
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] connecting to ' . $this->_cfg_host . ':' . $this->_cfg_port );

		$failed = false;
		/**
		 * Connect to Redis
		 *
		 * @since  1.8.1
		 * @see https://github.com/phpredis/phpredis/#example-1
		 */
		if ( $this->_oc_driver == 'Redis' ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Init ' . $this->_oc_driver . ' connection' );

			set_error_handler( 'litespeed_exception_handler' );
			try {
				$this->_conn = new \Redis();
				 // error_log( 'Object: _connect Redis' );

				if ( $this->_cfg_persistent ) {
					if ( $this->_cfg_port ) {
						$this->_conn->pconnect( $this->_cfg_host, $this->_cfg_port );
					}
					else {
						$this->_conn->pconnect( $this->_cfg_host );
					}
				}
				else {
					if ( $this->_cfg_port ) {
						$this->_conn->connect( $this->_cfg_host, $this->_cfg_port );
					}
					else {
						$this->_conn->connect( $this->_cfg_host );
					}
				}

				if ( $this->_cfg_pswd ) {
					$this->_conn->auth( $this->_cfg_pswd );
				}

				if ( $this->_cfg_db ) {
					$this->_conn->select( $this->_cfg_db );
				}

				$res = $this->_conn->ping();

				if ( $res != '+PONG' ) {
					$failed = true;
				}
			}
			catch ( \Exception $e ) {
				error_log( $e->getMessage() );
				$failed = true;
			}
			catch ( \ErrorException $e ) {
				error_log( $e->getMessage() );
				$failed = true;
			}
			restore_error_handler();

		}
		/**
		 * Connect to Memcached
		 */
		else {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Init ' . $this->_oc_driver . ' connection' );
			if ( $this->_cfg_persistent ) {
				$this->_conn = new \Memcached( $this->_get_mem_id() );

				// Check memcached persistent connection
				if ( $this->_validate_mem_server() ) {
					// error_log( 'Object: _validate_mem_server' );
					defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Got persistent ' . $this->_oc_driver . ' connection' );
					return true;
				}

				defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] No persistent ' . $this->_oc_driver . ' server list!' );
			}
			else {
				// error_log( 'Object: new memcached!' );
				$this->_conn = new \Memcached;
			}

			$this->_conn->addServer( $this->_cfg_host, (int) $this->_cfg_port );

			/**
			 * Add SASL auth
			 * @since  1.8.1
			 * @since  2.9.6 Fixed SASL connection @see https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:lsmcd:new_sasl
			 */
			if ( $this->_cfg_user && $this->_cfg_pswd && method_exists( $this->_conn, 'setSaslAuthData' ) ) {
				$this->_conn->setOption( \Memcached::OPT_BINARY_PROTOCOL, true );
				$this->_conn->setOption( \Memcached::OPT_COMPRESSION, false );
				$this->_conn->setSaslAuthData( $this->_cfg_user, $this->_cfg_pswd );
			}

			// Check connection
			if ( ! $this->_validate_mem_server() ) {
				$failed = true;
			}
		}

		// If failed to connect
		if ( $failed ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Failed to connect ' . $this->_oc_driver . ' server!' );
			$this->_conn = null;
			$this->_cfg_enabled = false;
			! defined( 'LITESPEED_OC_FAILURE' ) && define( 'LITESPEED_OC_FAILURE', true );
			// error_log( 'Object: false!' );
			return false;
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] Connected' );

		return true;
	}

	/**
	 * Check if the connected memcached host is the one in cfg
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _validate_mem_server() {
		$mem_list = $this->_conn->getStats();
		if ( empty( $mem_list ) ) {
			return false;
		}

		foreach ( $mem_list as $k => $v ) {
			if ( substr( $k, 0, strlen( $this->_cfg_host ) ) != $this->_cfg_host ) {
				continue;
			}
			if ( $v[ 'pid' ] > 0 ) {
				return true;
			}
		}

		return false;
	}

	/**
	 * Get memcached unique id to be used for connecting
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _get_mem_id() {
		$mem_id = 'litespeed';
		if ( is_multisite() ) {
			$mem_id .= '_' . get_current_blog_id();
		}

		return $mem_id;
	}

	/**
	 * Get cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function get( $key ) {
		if ( ! $this->_cfg_enabled ) {
			return null;
		}

		if ( ! $this->_can_cache() ) {
			return null;
		}

		if( ! $this->_connect() ) {
			return null;
		}

		// defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] get ' . $key );

		$res = $this->_conn->get( $key );

		return $res;
	}

	/**
	 * Set cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function set( $key, $data, $expire ) {
		if ( ! $this->_cfg_enabled ) {
			return null;
		}

		/**
		 * To fix the Cloud callback cached as its frontend call but the hash is generated in backend
		 * Bug found by Stan at Jan/10/2020
		 */
		// if ( ! $this->_can_cache() ) {
		// 	return null;
		// }

		if( ! $this->_connect() ) {
			return null;
		}

		// defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] set ' . $key );

		// error_log( 'Object: set ' . $key );

		$ttl = $expire ?: $this->_cfg_life;

		if ( $this->_oc_driver == 'Redis' ) {
			try {
				$res = $this->_conn->setEx( $key, $ttl, $data );
			} catch ( \RedisException $ex ) {
				throw new \Exception( $ex->getMessage(), $ex->getCode(), $ex );
			}
		}
		else {
			$res = $this->_conn->set( $key, $data, $ttl );
		}

		return $res;
	}

	/**
	 * Check if can cache or not
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _can_cache() {
		if ( ! $this->_cfg_admin && defined( 'WP_ADMIN' ) ) {
			return false;
		}
		return true;
	}

	/**
	 * Delete cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function delete( $key ) {
		if ( ! $this->_cfg_enabled ) {
			return null;
		}

		if( ! $this->_connect() ) {
			return null;
		}

		// defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] delete ' . $key );

		if ( $this->_oc_driver == 'Redis' ) {
			$res = $this->_conn->del( $key );
		}
		else {
			$res = $this->_conn->delete( $key );
		}

		return $res;
	}

	/**
	 * Clear all cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function flush() {
		if ( ! $this->_cfg_enabled ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] bypass flushing' );
			return null;
		}

		if( ! $this->_connect() ) {
			return null;
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] flush!' );

		if ( $this->_oc_driver == 'Redis' ) {
			$res = $this->_conn->flushDb();
		}
		else {
			$res = $this->_conn->flush();
			$this->_conn->resetServerList();
		}

		return $res;
	}

	/**
	 * Add global groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_global_groups( $groups ) {
		if ( ! is_array( $groups ) ) {
			$groups = array( $groups );
		}

		$this->_global_groups = array_merge( $this->_global_groups, $groups );
		$this->_global_groups = array_unique( $this->_global_groups );
	}

	/**
	 * Check if is in global groups or not
	 *
	 * @since 1.8
	 * @access public
	 */
	public function is_global( $group ) {
		return in_array( $group, $this->_global_groups );
	}

	/**
	 * Add non persistent groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_non_persistent_groups( $groups ) {
		if ( ! is_array( $groups ) ) {
			$groups = array( $groups );
		}

		$this->_non_persistent_groups = array_merge( $this->_non_persistent_groups, $groups );
		$this->_non_persistent_groups = array_unique( $this->_non_persistent_groups );
	}

	/**
	 * Check if is in non persistent groups or not
	 *
	 * @since 1.8
	 * @access public
	 */
	public function is_non_persistent( $group ) {
		return in_array( $group, $this->_non_persistent_groups );
	}

}<?php
/**
 * The class to operate media data.
 *
 * @since 		1.4
 * @since  		1.5 Moved into /inc
 * @package    	Core
 * @subpackage 	Core/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Media extends Root {
	const LIB_FILE_IMG_LAZYLOAD = 'assets/js/lazyload.min.js';

	private $content;
	private $_wp_upload_dir;

	/**
	 * Init
	 *
	 * @since  1.4
	 */
	public function __construct() {
		Debug2::debug2( '[Media] init' );

		$this->_wp_upload_dir = wp_upload_dir();
	}

	/**
	 * Init optm features
	 *
	 * @since  3.0
	 * @access public
	 */
	public function init() {
		if ( is_admin() ) {
			return;
		}

		// Due to ajax call doesn't send correct accept header, have to limit webp to HTML only
		if ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_IMG_OPTM_WEBP_REPLACE ) ) {
			if ( $this->webp_support() ) {
				// Hook to srcset
				if ( function_exists( 'wp_calculate_image_srcset' ) ) {
					add_filter( 'wp_calculate_image_srcset', array( $this, 'webp_srcset' ), 988 );
				}
				// Hook to mime icon
				// add_filter( 'wp_get_attachment_image_src', array( $this, 'webp_attach_img_src' ), 988 );// todo: need to check why not
				// add_filter( 'wp_get_attachment_url', array( $this, 'webp_url' ), 988 ); // disabled to avoid wp-admin display
			}
		}

		if ( $this->conf( Base::O_MEDIA_LAZY ) ) {
			add_filter( 'wp_lazy_loading_enabled', '__return_false' );
		}

		/**
		 * Replace gravatar
		 * @since  3.0
		 */
		$this->cls( 'Avatar' );

		add_filter( 'litespeed_buffer_finalize', array( $this, 'finalize' ), 4 );
	}

	/**
	 * Adjust WP default JPG quality
	 *
	 * @since  3.0
	 * @access public
	 */
	public function adjust_jpg_quality( $quality ) {
		$v = $this->conf( Base::O_IMG_OPTM_JPG_QUALITY );

		if ( $v ) {
			return $v;
		}

		return $quality;
	}

	/**
	 * Register admin menu
	 *
	 * @since 1.6.3
	 * @access public
	 */
	public function after_admin_init() {
		/**
		 * JPG quality control
		 * @since  3.0
		 */
		add_filter( 'jpeg_quality', array( $this, 'adjust_jpg_quality' ) );

		add_filter( 'manage_media_columns', array( $this, 'media_row_title' ) );
		add_filter( 'manage_media_custom_column', array( $this, 'media_row_actions' ), 10, 2 );

		add_action( 'litespeed_media_row', array( $this, 'media_row_con' ) );

		// Hook to attachment delete action
		add_action( 'delete_attachment', __CLASS__ . '::delete_attachment' );
	}

	/**
	 * Media delete action hook
	 *
	 * @since 2.4.3
	 * @access public
	 */
	public static function delete_attachment( $post_id ) {
		if ( ! Data::cls()->tb_exist( 'img_optm' ) ) {
			return;
		}

		Debug2::debug( '[Media] delete_attachment [pid] ' . $post_id );
		Img_Optm::cls()->reset_row( $post_id );
	}

	/**
	 * Return media file info if exists
	 *
	 * This is for remote attachment plugins
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function info( $short_file_path, $post_id ) {
		$real_file = $this->_wp_upload_dir[ 'basedir' ] . '/' . $short_file_path;

		if ( file_exists( $real_file ) ) {
			return array(
				'url'	=> $this->_wp_upload_dir[ 'baseurl' ] . '/' . $short_file_path,
				'md5'	=> md5_file( $real_file ),
				'size'	=> filesize( $real_file ),
			);
		}

		/**
		 * WP Stateless compatibility #143 https://github.com/litespeedtech/lscache_wp/issues/143
		 * @since 2.9.8
		 * @return array( 'url', 'md5', 'size' )
		 */
		$info = apply_filters( 'litespeed_media_info', array(), $short_file_path, $post_id );
		if ( ! empty( $info[ 'url' ] ) && ! empty( $info[ 'md5' ] ) && ! empty( $info[ 'size' ] ) ) {
			return $info;
		}

		return false;
	}

	/**
	 * Delete media file
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function del( $short_file_path, $post_id ) {
		$real_file = $this->_wp_upload_dir[ 'basedir' ] . '/' . $short_file_path;

		if ( file_exists( $real_file ) ) {
			unlink( $real_file );
			Debug2::debug( '[Media] deleted ' . $real_file );
		}

		do_action( 'litespeed_media_del', $short_file_path, $post_id );
	}

	/**
	 * Rename media file
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function rename( $short_file_path, $short_file_path_new, $post_id ) {
		$real_file = $this->_wp_upload_dir[ 'basedir' ] . '/' . $short_file_path;
		$real_file_new = $this->_wp_upload_dir[ 'basedir' ] . '/' . $short_file_path_new;

		if ( file_exists( $real_file ) ) {
			rename( $real_file, $real_file_new );
			Debug2::debug( '[Media] renamed ' . $real_file . ' to ' . $real_file_new );
		}

		do_action( 'litespeed_media_rename', $short_file_path, $short_file_path_new, $post_id );
	}

	/**
	 * Media Admin Menu -> Image Optimization Column Title
	 *
	 * @since 1.6.3
	 * @access public
	 */
	public function media_row_title( $posts_columns ) {
		$posts_columns[ 'imgoptm' ] = __( 'LiteSpeed Optimization', 'litespeed-cache' );

		return $posts_columns;
	}

	/**
	 * Media Admin Menu -> Image Optimization Column
	 *
	 * @since 1.6.2
	 * @access public
	 */
	public function media_row_actions( $column_name, $post_id ) {
		if ( $column_name !== 'imgoptm' ) {
			return;
		}

		do_action( 'litespeed_media_row', $post_id );

	}

	/**
	 * Display image optm info
	 *
	 * @since  3.0
	 */
	public function media_row_con( $post_id ) {
		$att_info = wp_get_attachment_metadata( $post_id );
		if ( empty( $att_info[ 'file' ] ) ) {
			return;
		}

		$short_path = $att_info[ 'file' ];

		$size_meta = get_post_meta( $post_id, Img_Optm::DB_SIZE, true );

		echo '<p>';
		// Original image info
		if ( $size_meta && ! empty ( $size_meta[ 'ori_saved' ] ) ) {
			$percent = ceil( $size_meta[ 'ori_saved' ] * 100 / $size_meta[ 'ori_total' ] );

			$extension = pathinfo( $short_path, PATHINFO_EXTENSION );
			$bk_file = substr( $short_path, 0, -strlen( $extension ) ) . 'bk.' . $extension;
			$bk_optm_file = substr( $short_path, 0, -strlen( $extension ) ) . 'bk.optm.' . $extension;

			$link = Utility::build_url( Router::ACTION_IMG_OPTM, 'orig' . $post_id );
			$desc = false;

			$cls = '';

			if ( $this->info( $bk_file, $post_id ) ) {
				$curr_status = __( '(optm)', 'litespeed-cache' );
				$desc = __( 'Currently using optimized version of file.', 'litespeed-cache' ) . '&#10;' . __( 'Click to switch to original (unoptimized) version.', 'litespeed-cache' );
			}
			elseif ( $this->info( $bk_optm_file, $post_id ) ) {
				$cls .= ' litespeed-warning';
				$curr_status = __( '(non-optm)', 'litespeed-cache' );
				$desc = __( 'Currently using original (unoptimized) version of file.', 'litespeed-cache' ) . '&#10;' . __( 'Click to switch to optimized version.', 'litespeed-cache' );
			}

			echo GUI::pie_tiny( $percent, 24,
				sprintf( __( 'Original file reduced by %1$s (%2$s)', 'litespeed-cache' ),
					$percent . '%',
					Utility::real_size( $size_meta[ 'ori_saved' ] )
				) , 'left'
			);

			echo sprintf( __( 'Orig saved %s', 'litespeed-cache' ), $percent . '%' );

			if ( $desc ) {
				echo sprintf( ' <a href="%1$s" class="litespeed-media-href %2$s" data-balloon-pos="left" data-balloon-break aria-label="%3$s">%4$s</a>', $link, $cls, $desc, $curr_status );
			}
			else {
				echo sprintf(
					' <span class="litespeed-desc" data-balloon-pos="left" data-balloon-break aria-label="%1$s">%2$s</span>',
					__( 'Using optimized version of file. ', 'litespeed-cache' ) . '&#10;' . __( 'No backup of original file exists.', 'litespeed-cache' ),
					__( '(optm)', 'litespeed-cache' )
				);
			}


		}
		elseif ( $size_meta && $size_meta[ 'ori_saved' ] === 0 ){
			echo GUI::pie_tiny( 0, 24,
				__( 'Congratulation! Your file was already optimized', 'litespeed-cache' ),
				'left'
			);
			echo sprintf( __( 'Orig %s', 'litespeed-cache' ), '<span class="litespeed-desc">' . __( '(no savings)', 'litespeed-cache' ) . '</span>' );
		}
		else {
			echo __( 'Orig', 'litespeed-cache' ) . '<span class="litespeed-left10">—</span>';
		}
		echo '</p>';

		echo '<p>';
		// WebP info
		if ( $size_meta && ! empty ( $size_meta[ 'webp_saved' ] ) ) {
			$percent = ceil( $size_meta[ 'webp_saved' ] * 100 / $size_meta[ 'webp_total' ] );

			$link = Utility::build_url( Router::ACTION_IMG_OPTM, 'webp' . $post_id );
			$desc = false;

			$cls = '';

			if ( $this->info( $short_path . '.webp', $post_id ) ) {
				$curr_status = __( '(optm)', 'litespeed-cache' );
				$desc = __( 'Currently using optimized version of WebP file.', 'litespeed-cache' ) . '&#10;' . __( 'Click to switch to original (unoptimized) version.', 'litespeed-cache' );
			}
			elseif ( $this->info( $short_path . '.optm.webp', $post_id ) ) {
				$cls .= ' litespeed-warning';
				$curr_status = __( '(non-optm)', 'litespeed-cache' );
				$desc = __( 'Currently using original (unoptimized) version of WebP file.', 'litespeed-cache' ) . '&#10;' . __( 'Click to switch to optimized version.', 'litespeed-cache' );
			}

			echo GUI::pie_tiny( $percent, 24,
				sprintf( __( 'WebP file reduced by %1$s (%2$s)', 'litespeed-cache' ),
					$percent . '%',
					Utility::real_size( $size_meta[ 'webp_saved' ] )
				) , 'left'
			);
			echo sprintf( __( 'WebP saved %s', 'litespeed-cache' ), $percent . '%' );

			if ( $desc ) {
				echo sprintf( ' <a href="%1$s" class="litespeed-media-href %2$s" data-balloon-pos="left" data-balloon-break aria-label="%3$s">%4$s</a>', $link, $cls, $desc, $curr_status );
			}
			else {
				echo sprintf(
					' <span class="litespeed-desc" data-balloon-pos="left" data-balloon-break aria-label="%1$s">%2$s</span>',
					__( 'Using optimized version of file. ', 'litespeed-cache' ) . '&#10;' . __( 'No backup of unoptimized WebP file exists.', 'litespeed-cache' ),
					__( '(optm)', 'litespeed-cache' )
				);
			}

		} else {
			echo __( 'WebP', 'litespeed-cache' ) . '<span class="litespeed-left10">—</span>';
		}

		echo '</p>';

		// Delete row btn
		if ( $size_meta ) {

			echo sprintf( '<div class="row-actions"><span class="delete"><a href="%1$s" class="">%2$s</a></span></div>',
				Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RESET_ROW, false, null, array( 'id' => $post_id ) ),
				__( 'Restore from backup', 'litespeed-cache' )
			);
			echo '</div>';
		}
	}

	/**
	 * Get wp size info
	 *
	 * NOTE: this is not used because it has to be after admin_init
	 *
	 * @since 1.6.2
	 * @return array $sizes Data for all currently-registered image sizes.
	 */
	public function get_image_sizes() {
		global $_wp_additional_image_sizes;
		$sizes = array();

		foreach ( get_intermediate_image_sizes() as $_size ) {
			if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
				$sizes[ $_size ][ 'width' ] = get_option( $_size . '_size_w' );
				$sizes[ $_size ][ 'height' ] = get_option( $_size . '_size_h' );
				$sizes[ $_size ][ 'crop' ] = (bool) get_option( $_size . '_crop' );
			} elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
				$sizes[ $_size ] = array(
					'width' => $_wp_additional_image_sizes[ $_size ][ 'width' ],
					'height' => $_wp_additional_image_sizes[ $_size ][ 'height' ],
					'crop' =>  $_wp_additional_image_sizes[ $_size ][ 'crop' ]
				);
			}
		}

		return $sizes;
	}


	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function webp_support() {
		if ( ! empty( $_SERVER[ 'HTTP_ACCEPT' ] ) && strpos( $_SERVER[ 'HTTP_ACCEPT' ], 'image/webp' ) !== false ) {
			return true;
		}

		if ( ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) ) {
			if ( strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'Page Speed' ) !== false ) {
				return true;
			}

			if ( preg_match( "/iPhone OS (\d+)_/i", $_SERVER[ 'HTTP_USER_AGENT' ], $matches ) ) {
				$lscwp_ios_version = $matches[1];
				if ($lscwp_ios_version >= 14){
					return true;
				}
			}
		}

		return false;
	}

	/**
	 * Run lazy load process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * Only do for main page. Do NOT do for esi or dynamic content.
	 *
	 * @since  1.4
	 * @access public
	 * @return  string The buffer
	 */
	public function finalize( $content ) {
		if ( defined( 'LITESPEED_NO_LAZY' ) ) {
			Debug2::debug2( '[Media] bypass: NO_LAZY const' );
			return $content;
		}

		if ( ! defined( 'LITESPEED_IS_HTML' ) ) {
			Debug2::debug2( '[Media] bypass: Not frontend HTML type' );
			return $content;
		}

		if ( ! Control::is_cacheable() ) {
			Debug2::debug( '[Media] bypass: Not cacheable' );
			return $content;
		}

		Debug2::debug( '[Media] finalize' );

		$this->content = $content;
		$this->_finalize();
		return $this->content;
	}

	/**
	 * Run lazyload replacement for images in buffer
	 *
	 * @since  1.4
	 * @access private
	 */
	private function _finalize() {
		/**
		 * Use webp for optimized images
		 * @since 1.6.2
		 */
		if ( ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_IMG_OPTM_WEBP_REPLACE ) ) && $this->webp_support() ) {
			$this->content = $this->_replace_buffer_img_webp( $this->content );
		}

		/**
		 * Check if URI is excluded
		 * @since  3.0
		 */
		$excludes = $this->conf( Base::O_MEDIA_LAZY_URI_EXC );
		if ( ! defined( 'LITESPEED_GUEST_OPTM' ) ) {
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes );
			if ( $result ) {
				Debug2::debug( '[Media] bypass lazyload: hit URI Excludes setting: ' . $result );
				return;
			}
		}

		$cfg_lazy = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_MEDIA_LAZY );
		$cfg_iframe_lazy = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_MEDIA_IFRAME_LAZY );
		$cfg_js_delay = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_OPTM_JS_DEFER ) == 2;
		$cfg_trim_noscript = defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_OPTM_NOSCRIPT_RM );

		if ( $cfg_lazy ) {
			list( $src_list, $html_list, $placeholder_list ) = $this->_parse_img();
			$html_list_ori = $html_list;
		}

		// image lazy load
		if ( $cfg_lazy ) {

			$__placeholder = Placeholder::cls();

			foreach ( $html_list as $k => $v ) {
				$size = $placeholder_list[ $k ];
				$src = $src_list[ $k ];

				$html_list[ $k ] = $__placeholder->replace( $v, $src, $size );
			}
		}

		if ( $cfg_lazy ) {
			$this->content = str_replace( $html_list_ori, $html_list, $this->content );
		}

		// iframe lazy load
		if ( $cfg_iframe_lazy ) {
			$html_list = $this->_parse_iframe();
			$html_list_ori = $html_list;

			foreach ( $html_list as $k => $v ) {
				$snippet = $cfg_trim_noscript ? '' : '<noscript>' . $v . '</noscript>';
				if ( $cfg_js_delay ) {
					$v = str_replace( ' src=', ' data-litespeed-src=', $v );
				}
				else {
					$v = str_replace( ' src=', ' data-src=', $v );
				}
				$v = str_replace( '<iframe ', '<iframe data-lazyloaded="1" src="about:blank" ', $v );
				$snippet = $v . $snippet;

				$html_list[ $k ] = $snippet;
			}

			$this->content = str_replace( $html_list_ori, $html_list, $this->content );
		}

		// Include lazyload lib js and init lazyload
		if ( $cfg_lazy || $cfg_iframe_lazy ) {
			$lazy_lib = '<script data-no-optimize="1" defer>' . File::read( LSCWP_DIR . self::LIB_FILE_IMG_LAZYLOAD ) . '</script>';
			$this->content = str_replace( '</body>', $lazy_lib . '</body>', $this->content );
		}
	}


	/**
	 * Parse img src
	 *
	 * @since  1.4
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_img() {
		/**
		 * Exclude list
		 * @since 1.5
		 * @since  2.7.1 Changed to array
		 */
		$excludes = apply_filters( 'litespeed_media_lazy_img_excludes', $this->conf( Base::O_MEDIA_LAZY_EXC ) );

		$cls_excludes = apply_filters( 'litespeed_media_lazy_img_cls_excludes', $this->conf( Base::O_MEDIA_LAZY_CLS_EXC ) );
		$cls_excludes[] = 'skip-lazy'; // https://core.trac.wordpress.org/ticket/44427

		$src_list = array();
		$html_list = array();
		$placeholder_list = array();

		$content = preg_replace( array( '#<!--.*-->#sU', '#<noscript([^>]*)>.*</noscript>#isU' ), '', $this->content );
		/**
		 * Exclude parent classes
		 * @since  3.0
		 */
		$parent_cls_exc = apply_filters( 'litespeed_media_lazy_img_parent_cls_excludes', $this->conf( Base::O_MEDIA_LAZY_PARENT_CLS_EXC ) );
		if ( $parent_cls_exc ) {
			Debug2::debug2( '[Media] Lazyload Class excludes', $parent_cls_exc );
			foreach ( $parent_cls_exc as $v ) {
				$content = preg_replace( '#<(\w+) [^>]*class=(\'|")[^\'"]*' . preg_quote( $v, '#' ) . '[^\'"]*\2[^>]*>.*</\1>#sU', '', $content );
			}
		}

		preg_match_all( '#<img \s*([^>]+)/?>#isU', $content, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs = Utility::parse_attr( $match[ 1 ] );

			if ( empty( $attrs[ 'src' ] ) ) {
				continue;
			}

			/**
			 * Add src validation to bypass base64 img src
			 * @since  1.6
			 */
			if ( strpos( $attrs[ 'src' ], 'base64' ) !== false || substr( $attrs[ 'src' ], 0, 5 ) === 'data:' ) {
				Debug2::debug2( '[Media] lazyload bypassed base64 img' );
				continue;
			}

			Debug2::debug2( '[Media] lazyload found: ' . $attrs[ 'src' ] );

			if ( ! empty( $attrs[ 'data-no-lazy' ] ) || ! empty( $attrs[ 'data-skip-lazy' ] ) || ! empty( $attrs[ 'data-lazyloaded' ] ) || ! empty( $attrs[ 'data-src' ] ) || ! empty( $attrs[ 'data-srcset' ] ) ) {
				Debug2::debug2( '[Media] bypassed' );
				continue;
			}

			if ( ! empty( $attrs[ 'class' ] ) && $hit = Utility::str_hit_array( $attrs[ 'class' ], $cls_excludes ) ) {
				Debug2::debug2( '[Media] lazyload image cls excludes [hit] ' . $hit );
				continue;
			}

			/**
			 * Exclude from lazyload by setting
			 * @since  1.5
			 */
			if ( $excludes && Utility::str_hit_array( $attrs[ 'src' ], $excludes ) ) {
				Debug2::debug2( '[Media] lazyload image exclude ' . $attrs[ 'src' ] );
				continue;
			}

			/**
			 * Excldues invalid image src from buddypress avatar crop
			 * @see  https://wordpress.org/support/topic/lazy-load-breaking-buddypress-upload-avatar-feature
			 * @since  3.0
			 */
			if ( strpos( $attrs[ 'src' ], '{' ) !== false ) {
				Debug2::debug2( '[Media] image src has {} ' . $attrs[ 'src' ] );
				continue;
			}

			// to avoid multiple replacement
			if ( in_array( $match[ 0 ], $html_list ) ) {
				continue;
			}

			// Add missing dimensions
			if ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_MEDIA_ADD_MISSING_SIZES ) ) {
				if ( empty( $attrs[ 'width' ] ) || $attrs[ 'width' ] == 'auto' || empty( $attrs[ 'height' ] ) || $attrs[ 'height' ] == 'auto' ) {
					Debug2::debug( '[Media] ⚠️ Missing sizes for image [src] ' . $attrs[ 'src' ] );
					$dimensions = $this->_detect_dimensions( $attrs[ 'src' ] );
					if ( $dimensions ) {
						$ori_width = $dimensions[ 0 ];
						$ori_height = $dimensions[ 1 ];
						// Calculate height based on width
						if ( ! empty( $attrs[ 'width' ] ) && $attrs[ 'width' ] != 'auto' ) {
							$ori_height = intval( $ori_height * $attrs[ 'width' ] / $ori_width );
						}
						elseif ( ! empty( $attrs[ 'height' ] ) && $attrs[ 'height' ] != 'auto' ) {
							$ori_width = intval( $ori_width * $attrs[ 'height' ] / $ori_height );
						}

						$attrs[ 'width' ] = $ori_width;
						$attrs[ 'height' ] = $ori_height;
						$new_html = preg_replace( '#(width|height)=(["\'])[^\2]*\2#', '', $match[ 0 ] );
						$new_html = str_replace( '<img ', '<img width="' . $attrs[ 'width' ] . '" height="' . $attrs[ 'height' ] . '" ', $new_html );
						Debug2::debug( '[Media] Add missing sizes ' . $attrs[ 'width' ] . 'x' . $attrs[ 'height' ] . ' to ' . $attrs[ 'src' ] );
						$this->content = str_replace( $match[ 0 ], $new_html, $this->content );
						$match[ 0 ] = $new_html;
					}
				}
			}

			$placeholder = false;
			if ( ! empty( $attrs[ 'width' ] ) && $attrs[ 'width' ] != 'auto' && ! empty( $attrs[ 'height' ] ) && $attrs[ 'height' ] != 'auto' ) {
				$placeholder = $attrs[ 'width' ] . 'x' . $attrs[ 'height' ];
			}

			$src_list[] = $attrs[ 'src' ];
			$html_list[] = $match[ 0 ];
			$placeholder_list[] = $placeholder;
		}

		return array( $src_list, $html_list, $placeholder_list );
	}

	/**
	 * Detect the original sizes
	 *
	 * @since  4.0
	 */
	private function _detect_dimensions( $src ) {
		if ( $pathinfo = Utility::is_internal_file( $src ) ) {
			$src = $pathinfo[ 0 ];
		}
		elseif ( apply_filters( 'litespeed_media_ignore_remote_missing_sizes', false ) ) {
			return false;
		}

		$sizes = getimagesize( $src );

		if ( ! empty( $sizes[ 0 ] ) && ! empty( $sizes[ 1 ] ) ) {
			return $sizes;
		}

		return false;
	}

	/**
	 * Parse iframe src
	 *
	 * @since  1.4
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_iframe() {
		$cls_excludes = apply_filters( 'litespeed_media_iframe_lazy_cls_excludes', $this->conf( Base::O_MEDIA_IFRAME_LAZY_CLS_EXC ) );
		$cls_excludes[] = 'skip-lazy'; // https://core.trac.wordpress.org/ticket/44427

		$html_list = array();

		$content = preg_replace( '#<!--.*-->#sU', '', $this->content );

		/**
		 * Exclude parent classes
		 * @since  3.0
		 */
		$parent_cls_exc = apply_filters( 'litespeed_media_iframe_lazy_parent_cls_excludes', $this->conf( Base::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC ) );
		if ( $parent_cls_exc ) {
			Debug2::debug2( '[Media] Iframe Lazyload Class excludes', $parent_cls_exc );
			foreach ( $parent_cls_exc as $v ) {
				$content = preg_replace( '#<(\w+) [^>]*class=(\'|")[^\'"]*' . preg_quote( $v, '#' ) . '[^\'"]*\2[^>]*>.*</\1>#sU', '', $content );
			}
		}

		preg_match_all( '#<iframe \s*([^>]+)></iframe>#isU', $content, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs = Utility::parse_attr( $match[ 1 ] );

			if ( empty( $attrs[ 'src' ] ) ) {
				continue;
			}

			Debug2::debug2( '[Media] found iframe: ' . $attrs[ 'src' ] );

			if ( ! empty( $attrs[ 'data-no-lazy' ] ) ||  ! empty( $attrs[ 'data-skip-lazy' ] ) || ! empty( $attrs[ 'data-lazyloaded' ] ) || ! empty( $attrs[ 'data-src' ] ) ) {
				Debug2::debug2( '[Media] bypassed' );
				continue;
			}

			if ( ! empty( $attrs[ 'class' ] ) && $hit = Utility::str_hit_array( $attrs[ 'class' ], $cls_excludes ) ) {
				Debug2::debug2( '[Media] iframe lazyload cls excludes [hit] ' . $hit );
				continue;
			}

			if ( apply_filters( 'litespeed_iframe_lazyload_exc', false, $attrs[ 'src' ] ) ) {
				Debug2::debug2( '[Media] bypassed by filter' );
				continue;
			}

			// to avoid multiple replacement
			if ( in_array( $match[ 0 ], $html_list ) ) {
				continue;
			}

			$html_list[] = $match[ 0 ];
		}

		return $html_list;
	}

	/**
	 * Replace image src to webp
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function _replace_buffer_img_webp( $content ) {
		/**
		 * Added custom element & attribute support
		 * @since 2.2.2
		 */
		$webp_ele_to_check = $this->conf( Base::O_IMG_OPTM_WEBP_ATTR );

		foreach ( $webp_ele_to_check as $v ) {
			if ( ! $v || strpos( $v, '.' ) === false ) {
				Debug2::debug2( '[Media] buffer_webp no . attribute ' . $v );
				continue;
			}

			Debug2::debug2( '[Media] buffer_webp attribute ' . $v );

			$v = explode( '.', $v );
			$attr = preg_quote( $v[ 1 ], '#' );
			if ( $v[ 0 ] ) {
				$pattern = '#<' . preg_quote( $v[ 0 ], '#' ) . '([^>]+)' . $attr . '=([\'"])(.+)\2#iU';
			}
			else {
				$pattern = '# ' . $attr . '=([\'"])(.+)\1#iU';
			}

			preg_match_all( $pattern, $content, $matches );

			foreach ( $matches[ $v[ 0 ] ? 3 : 2 ] as $k2 => $url ) {
				// Check if is a DATA-URI
				if ( strpos( $url, 'data:image' ) !== false ) {
					continue;
				}

				if ( ! $url2 = $this->replace_webp( $url ) ) {
					continue;
				}

				if ( $v[ 0 ] ) {
					$html_snippet = sprintf(
						'<' . $v[ 0 ] . '%1$s' . $v[ 1 ] . '=%2$s',
						$matches[ 1 ][ $k2 ],
						$matches[ 2 ][ $k2 ] . $url2 . $matches[ 2 ][ $k2 ]
					);
				}
				else {
					$html_snippet = sprintf(
						' ' . $v[ 1 ] . '=%1$s',
						$matches[ 1 ][ $k2 ] . $url2 . $matches[ 1 ][ $k2 ]
					);
				}

				$content = str_replace( $matches[ 0 ][ $k2 ], $html_snippet, $content );

			}
		}

		// parse srcset
		// todo: should apply this to cdn too
		if ( ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_IMG_OPTM_WEBP_REPLACE_SRCSET ) ) && $this->webp_support() ) {
			$content = Utility::srcset_replace( $content, array( $this, 'replace_webp' ) );
		}

		// Replace background-image
		if ( ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_IMG_OPTM_WEBP_REPLACE ) ) && $this->webp_support() ) {
			$content = $this->replace_background_webp( $content );
		}

		return $content;
	}

	/**
	 * Replace background image
	 *
	 * @since  4.0
	 */
	public function replace_background_webp( $content ) {
		Debug2::debug2( '[Media] Start replacing bakcground WebP.' );

		// preg_match_all( '#background-image:(\s*)url\((.*)\)#iU', $content, $matches );
		preg_match_all( '#url\(([^)]+)\)#iU', $content, $matches );
		foreach ( $matches[ 1 ] as $k => $url ) {
			// Check if is a DATA-URI
			if ( strpos( $url, 'data:image' ) !== false ) {
				continue;
			}

			/**
			 * Support quotes in src `background-image: url('src')`
			 * @since 2.9.3
			 */
			$url = trim( $url, '\'"' );

			if ( ! $url2 = $this->replace_webp( $url ) ) {
				continue;
			}

			// $html_snippet = sprintf( 'background-image:%1$surl(%2$s)', $matches[ 1 ][ $k ], $url2 );
			$html_snippet = str_replace( $url, $url2, $matches[ 0 ][ $k ] );
			$content = str_replace( $matches[ 0 ][ $k ], $html_snippet, $content );
		}

		return $content;
	}

	/**
	 * Replace internal image src to webp
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function replace_webp( $url ) {
		Debug2::debug2( '[Media] webp replacing: ' . substr( $url, 0, 200 ) );

		if ( substr( $url, -5 ) == '.webp' ) {
			Debug2::debug2( '[Media] already webp' );
			return false;
		}

		/**
		 * WebP API hook
		 * NOTE: As $url may contain query strings, WebP check will need to parse_url before appending .webp
		 * @since  2.9.5
		 * @see  #751737 - API docs for WebP generation
		 */
		if ( apply_filters( 'litespeed_media_check_ori', Utility::is_internal_file( $url ), $url ) ) {
			// check if has webp file
			if ( apply_filters( 'litespeed_media_check_webp', Utility::is_internal_file( $url, 'webp' ), $url ) ) {
				$url .= '.webp';
			}
			else {
				Debug2::debug2( '[Media] -no WebP file, bypassed' );
				return false;
			}
		}
		else {
			Debug2::debug2( '[Media] -no file, bypassed' );
			return false;
		}

		Debug2::debug2( '[Media] - replaced to: ' . $url );

		return $url;
	}

	/**
	 * Hook to wp_get_attachment_image_src
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  array $img The URL of the attachment image src, the width, the height
	 * @return array
	 */
	public function webp_attach_img_src( $img ) {
		Debug2::debug2( '[Media] changing attach src: ' . $img[0] );
		if ( $img && $url = $this->replace_webp( $img[ 0 ] ) ) {
			$img[ 0 ] = $url;
		}
		return $img;
	}

	/**
	 * Try to replace img url
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  string $url
	 * @return string
	 */
	public function webp_url( $url ) {
		if ( $url && $url2 = $this->replace_webp( $url ) ) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Hook to replace WP responsive images
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  array $srcs
	 * @return array
	 */
	public function webp_srcset( $srcs ) {
		if ( $srcs ) {
			foreach ( $srcs as $w => $data ) {
				if( ! $url = $this->replace_webp( $data[ 'url' ] ) ) {
					continue;
				}
				$srcs[ $w ][ 'url' ] = $url;
			}
		}
		return $srcs;
	}

}
<?php
/**
 * The class to optimize image.
 *
 * @since 		2.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Img_Optm extends Base {
	const CLOUD_ACTION_NEW_REQ = 'new_req';
	const CLOUD_ACTION_TAKEN = 'taken';
	const CLOUD_ACTION_REQUEST_DESTROY = 'imgoptm_destroy';
	const CLOUD_ACTION_CLEAN = 'clean';

	const TYPE_NEW_REQ = 'new_req';
	const TYPE_RESCAN = 'rescan';
	const TYPE_DESTROY = 'destroy';
	const TYPE_CLEAN = 'clean';
	const TYPE_PULL = 'pull';
	const TYPE_BATCH_SWITCH_ORI = 'batch_switch_ori';
	const TYPE_BATCH_SWITCH_OPTM = 'batch_switch_optm';
	const TYPE_CALC_BKUP = 'calc_bkup';
	const TYPE_RESET_ROW = 'reset_row';
	const TYPE_RM_BKUP = 'rm_bkup';

	const STATUS_RAW 		= 0; // 'raw';
	const STATUS_REQUESTED 	= 3; // 'requested';
	const STATUS_NOTIFIED 	= 6; // 'notified';
	const STATUS_DUPLICATED 	= 8; // 'duplicated';
	const STATUS_PULLED 		= 9; // 'pulled';
	const STATUS_FAILED 		= -1; //'failed';
	const STATUS_MISS 		= -3; // 'miss';
	const STATUS_ERR_FETCH 	= -5; // 'err_fetch';
	const STATUS_ERR_404 	= -6; // 'err_404';
	const STATUS_ERR_OPTM 	= -7; // 'err_optm';
	const STATUS_XMETA 		= -8; // 'xmeta';
	const STATUS_ERR 		= -9; // 'err';
	const DB_SIZE = 'litespeed-optimize-size';

	const DB_NEED_PULL = 'need_pull';

	private $wp_upload_dir;
	private $tmp_pid;
	private $tmp_path;
	private $_img_in_queue = array();
	private $_img_in_queue_missed = array();
	private $_existed_src_list = array();
	private $_table_img_optm;
	private $_table_img_optming;
	private $_cron_ran = false;

	private $__media;
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  2.0
	 */
	public function __construct() {
		Debug2::debug2( '[ImgOptm] init' );

		$this->wp_upload_dir = wp_upload_dir();
		$this->__media = $this->cls( 'Media' );
		$this->_table_img_optm = $this->cls( 'Data' )->tb( 'img_optm' );
		$this->_table_img_optming = $this->cls( 'Data' )->tb( 'img_optming' );

		$this->_summary = self::get_summary();
	}

	/**
	 * Gather images auto when update attachment meta
	 *
	 * @since  4.0
	 */
	public function wp_update_attachment_metadata( $meta_value, $post_id ) {
		global $wpdb;

		Debug2::debug2( '[ImgOptm] 🖌️ Auto update attachment meta [id] ' . $post_id );

		if ( empty( $meta_value[ 'file' ] ) ) {
			return;
		}

		// Load gathered images
		if ( ! $this->_existed_src_list ) { // To aavoid extra query when recalling this function
			Debug2::debug( '[Img_Optm] SELECT src from img_optm table' );
			$q = "SELECT src FROM `$this->_table_img_optm` WHERE post_id = %d";
			$list = $wpdb->get_results( $wpdb->prepare( $q, $post_id ) );
			foreach ( $list as $v ) {
				$this->_existed_src_list[] = $post_id . '.' . $v->src;
			}
		}

		// Prepare images
		$this->tmp_pid = $post_id;
		$this->tmp_path = pathinfo( $meta_value[ 'file' ], PATHINFO_DIRNAME ) . '/';
		$this->_append_img_queue( $meta_value, true );
		if ( ! empty( $meta_value[ 'sizes' ] ) ) {
			array_map( array( $this, '_append_img_queue' ), $meta_value[ 'sizes' ] );
		}

		// Save missed images into img_optm
		$this->_save_err_missed();

		if ( ! $this->_img_in_queue ) {
			Debug2::debug( '[Img_Optm] auto update attachment meta 2 bypass: empty _img_in_queue' );
			return;
		}

		// Save to DB
		$this->_save_raw();
	}

	/**
	 * This will gather latest certain images from wp_posts to litespeed_img_optm
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _gather_images() {
		global $wpdb;

		$this->cls( 'Data' )->tb_create( 'img_optm' );
		$this->cls( 'Data' )->tb_create( 'img_optming' );

		// Get images
		$q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID AND b.meta_key = '_wp_attachment_metadata'
			LEFT JOIN `$this->_table_img_optm` c ON c.post_id = a.ID
			WHERE a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
				AND c.id IS NULL
			ORDER BY a.ID DESC
			LIMIT %d
			";
		$q = $wpdb->prepare( $q, apply_filters( 'litespeed_img_gather_max_rows', 200 ) );
		$list = $wpdb->get_results( $q );

		if ( ! $list ) {
			$msg = __( 'No new image gathered.', 'litespeed-cache' );
			Admin_Display::succeed( $msg );

			Debug2::debug( '[Img_Optm] gather_images bypass: no new image found' );
			return;
		}

		foreach ( $list as $v ) {
			$meta_value = $this->_parse_wp_meta_value( $v );
			if ( ! $meta_value ) {
				$this->_save_err_meta( $v->post_id );
				continue;
			}

			$this->tmp_pid = $v->post_id;
			$this->tmp_path = pathinfo( $meta_value[ 'file' ], PATHINFO_DIRNAME ) . '/';
			$this->_append_img_queue( $meta_value, true );
			if ( ! empty( $meta_value[ 'sizes' ] ) ) {
				array_map( array( $this, '_append_img_queue' ), $meta_value[ 'sizes' ] );
			}
		}

		// Save missed images into img_optm
		$this->_save_err_missed();

		if ( ! $this->_img_in_queue ) {
			Debug2::debug( '[Img_Optm] gather_images bypass: empty _img_in_queue' );
			return;
		}

		// Save to DB
		$count = $this->_save_raw();

		$msg = sprintf( __( 'Gathered %d images successfully.', 'litespeed-cache' ), $count );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Add a new img to queue which will be pushed to request
	 *
	 * @since 1.6
	 * @access private
	 */
	private function _append_img_queue( $meta_value, $is_ori_file = false ) {
		if ( empty( $meta_value[ 'file' ] ) || empty( $meta_value[ 'width' ] ) || empty( $meta_value[ 'height' ] ) ) {
			Debug2::debug2( '[Img_Optm] bypass image due to lack of file/w/h: pid ' . $this->tmp_pid, $meta_value );
			return;
		}

		$short_file_path = $meta_value[ 'file' ];

		if ( ! $is_ori_file ) {
			$short_file_path = $this->tmp_path . $short_file_path;
		}

		// Check if src is gathered already or not
		if ( in_array( $this->tmp_pid . '.' . $short_file_path, $this->_existed_src_list ) ) {
			// Debug2::debug2( '[Img_Optm] bypass image due to gathered: pid ' . $this->tmp_pid . ' ' . $short_file_path );
			return;
		}
		else {
			// Append handled images
			$this->_existed_src_list[] = $this->tmp_pid . '.' . $short_file_path;
		}

		// check file exists or not
		$_img_info = $this->__media->info( $short_file_path, $this->tmp_pid );

		if ( ! $_img_info || ! in_array( pathinfo( $short_file_path, PATHINFO_EXTENSION ), array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
			$this->_img_in_queue_missed[] = array(
				'pid'	=> $this->tmp_pid,
				'src'	=> $short_file_path,
			);
			Debug2::debug2( '[Img_Optm] bypass image due to file not exist: pid ' . $this->tmp_pid . ' ' . $short_file_path );
			return;
		}

		// Debug2::debug2( '[Img_Optm] adding image: pid ' . $this->tmp_pid );

		$this->_img_in_queue[] = array(
			'pid'	=> $this->tmp_pid,
			'md5'	=> $_img_info[ 'md5' ],
			'url'	=> $_img_info[ 'url' ],
			'src'	=> $short_file_path, // not needed in LiteSpeed IAPI, just leave for local storage after post
			'mime_type'	=> ! empty( $meta_value[ 'mime-type' ] ) ? $meta_value[ 'mime-type' ] : '' ,
			'src_filesize'	=> $_img_info[ 'size' ], // Only used for local storage and calculation
		);
	}

	/**
	 * Save failed to parse meta info
	 *
	 * @since 2.1.1
	 * @access private
	 */
	private function _save_err_meta( $pid ) {
		$data = array(
			$pid,
			self::STATUS_XMETA,
		);
		$this->_insert_img_optm( $data, 'post_id, optm_status' );
		Debug2::debug( '[Img_Optm] Mark wrong meta [pid] ' . $pid );
	}

	/**
	 * Saved non-existed images into img_optm
	 *
	 * @since 2.0
	 * @access private
	 */
	private function _save_err_missed() {
		if ( ! $this->_img_in_queue_missed ) {
			return;
		}

		$count = count( $this->_img_in_queue_missed );
		Debug2::debug( '[Img_Optm] Missed img need to save [total] ' . $count );

		$data_to_add = array();
		foreach ( $this->_img_in_queue_missed as $src_data ) {
			$data_to_add[] = $src_data[ 'pid' ];
			$data_to_add[] = self::STATUS_MISS;
			$data_to_add[] = $src_data[ 'src' ];
		}
		$this->_insert_img_optm( $data_to_add, 'post_id, optm_status, src' );

		$this->_img_in_queue_missed = array();
		return $count;
	}

	/**
	 * Save gathered image raw data
	 *
	 * @since  3.0
	 */
	private function _save_raw() {
		$data = array();
		foreach ( $this->_img_in_queue as $v ) {
			$data[] = $v[ 'pid' ];
			$data[] = self::STATUS_RAW;
			$data[] = $v[ 'src' ];
			$data[] = $v[ 'src_filesize' ];
		}
		$this->_insert_img_optm( $data );

		$count = count( $this->_img_in_queue );
		$this->_img_in_queue = array();

		Debug2::debug( '[Img_Optm] Added raw images [total] ' . $count );

		return $count;
	}

	/**
	 * Insert data into table img_optm
	 *
	 * @since 2.0
	 * @access private
	 */
	private function _insert_img_optm( $data, $fields = 'post_id, optm_status, src, src_filesize' ) {
		if ( empty( $data ) ) {
			return;
		}

		global $wpdb;

		$q = "INSERT INTO `$this->_table_img_optm` ( $fields ) VALUES ";

		// Add placeholder
		$q .= Utility::chunk_placeholder( $data, $fields );

		// Store data
		$wpdb->query( $wpdb->prepare( $q, $data ) );
	}

	/**
	 * Auto send optm request
	 *
	 * @since  2.4.1
	 * @access public
	 */
	public static function cron_auto_request()
	{
		if ( ! defined( 'DOING_CRON' ) ) {
			return false;
		}

		$instance = self::cls();
		$instance->new_req();
	}

	/**
	 * Calculate wet run allowance
	 *
	 * @since 3.0
	 */
	public function wet_limit()
	{
		$wet_limit = 1;
		if ( ! empty( $this->_summary[ 'img_taken' ] ) ) {
			$wet_limit = pow( $this->_summary[ 'img_taken' ], 2 );
		}

		if ( $wet_limit == 1 && ! empty( $this->_summary[ 'img_status.' . self::STATUS_ERR_OPTM ] ) ) {
			$wet_limit = pow( $this->_summary[ 'img_status.' . self::STATUS_ERR_OPTM ], 2 );
		}

		if ( $wet_limit < Cloud::IMG_OPTM_DEFAULT_GROUP ) {
			return $wet_limit;
		}

		// No limit
		return false;
	}

	/**
	 * Check if need to gather at this moment
	 *
	 * @since  3.0
	 */
	public function need_gather()
	{
		global $wpdb;

		if ( ! Data::cls()->tb_exist( 'img_optm' ) || ! Data::cls()->tb_exist( 'img_optming' ) ) {
			Debug2::debug( '[Img_Optm] need gather due to no db tables' );
			return true;
		}

		$q = "SELECT * FROM `$this->_table_img_optm` WHERE optm_status = %d LIMIT 1";
		$q = $wpdb->prepare( $q, self::STATUS_RAW );

		if ( ! $wpdb->get_row( $q ) ) {
			Debug2::debug( '[Img_Optm] need gather due to no new raw image found' );
			return true;
		}

		return false;
	}

	/**
	 * Push raw img to image optm server
	 *
	 * @since 1.6
	 * @access public
	 */
	public function new_req()
	{
		global $wpdb;

		// Check if has credit to push
		$allowance = Cloud::cls()->allowance( Cloud::SVC_IMG_OPTM );

		$wet_limit = $this->wet_limit();

		Debug2::debug( "[Img_Optm] allowance_max $allowance wet_limit $wet_limit" );
		if ( $wet_limit && $wet_limit < $allowance ) {
			$allowance = $wet_limit;
		}

		if ( ! $allowance ) {
			Debug2::debug( '[Img_Optm] ❌ No credit' );
			Admin_Display::error( Error::msg( 'out_of_quota' ) );
			return;
		}

		Debug2::debug( '[Img_Optm] preparing images to push' );

		if ( $this->need_gather() ) {
			$this->_gather_images();
			return;
		}

		$q = "SELECT * FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d";
		$q = $wpdb->prepare( $q, array( self::STATUS_RAW, $allowance ) );

		$this->_img_in_queue = $wpdb->get_results( $q, ARRAY_A );

		// Limit maximum number of items waiting (status requested) to the allowance
		$q = "SELECT COUNT(1) FROM `$this->_table_img_optming` WHERE optm_status = %d";
		$q = $wpdb->prepare( $q, array( self::STATUS_REQUESTED) );
		$total_requested = $wpdb->get_var( $q );
		$max_requested = $allowance * 1;

		if ( $total_requested > $max_requested ) {
			Debug2::debug( '[Img_Optm] ❌ Too many queued images ('.$total_requested.' > '.$max_requested.')' );
			Admin_Display::error( Error::msg( 'too_many_requested' ) );
			return;
		}

		// Limit maximum number of items waiting to be pulled
		$q = "SELECT COUNT(1) FROM `$this->_table_img_optming` WHERE optm_status = %d";
		$q = $wpdb->prepare( $q, array( self::STATUS_NOTIFIED) );
		$total_notified = $wpdb->get_var( $q );
		$max_notified = $allowance * 5;

		if ( $total_notified > $max_notified ) {
			Debug2::debug( '[Img_Optm] ❌ Too many notified images ('.$total_notified.' > '.$max_notified.')' );
			Admin_Display::error( Error::msg( 'too_many_notified' ) );
			return;
		}

		$num_a = count( $this->_img_in_queue );
		Debug2::debug( '[Img_Optm] Images found: ' . $num_a );
		$this->_filter_duplicated_src();
		$this->_filter_invalid_src();
		$num_b = count( $this->_img_in_queue );
		if ( $num_b != $num_a ) {
			Debug2::debug( '[Img_Optm] Images after filtered duplicated/invalid src: ' . $num_b );
		}

		if ( ! $num_b ) {
			Debug2::debug( '[Img_Optm] No image in queue' );
			return;
		}

		// Push to Cloud server
		$accepted_imgs = $this->_send_request();

		if ( ! $accepted_imgs ) {
			return;
		}

		$placeholder1 = Admin_Display::print_plural( $num_b, 'image' );
		$placeholder2 = Admin_Display::print_plural( $accepted_imgs, 'image' );
		$msg = sprintf( __( 'Pushed %1$s to Cloud server, accepted %2$s.', 'litespeed-cache' ), $placeholder1, $placeholder2 );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Filter duplicated src in work table and $this->_img_in_queue, then mark them as duplicated
	 *
	 * @since 2.0
	 * @access private
	 */
	private function _filter_duplicated_src()
	{
		global $wpdb;

		$srcpath_list = array();

		$list = $wpdb->get_results( "SELECT src FROM $this->_table_img_optming" );
		foreach ( $list as $v ) {
			$srcpath_list[] = $v->src;
		}

		$img_in_queue_duplicated = array();
		foreach ( $this->_img_in_queue as $k => $v ) {
			if ( in_array( $v[ 'src' ], $srcpath_list ) ) {
				$img_in_queue_duplicated[] = $v[ 'id' ];
				unset( $this->_img_in_queue[ $k ] );
				continue;
			}

			$srcpath_list[] = $v[ 'src' ];
		}

		if ( ! $img_in_queue_duplicated ) {
			return;
		}

		$count = count( $img_in_queue_duplicated );
		$msg = sprintf( __( 'Bypassed %1$s duplicated images.', 'litespeed-cache' ), $count );
		Admin_Display::succeed( $msg );

		Debug2::debug( '[Img_Optm] Found duplicated src [total_img_duplicated] ' . $count );

		// Update img table
		$ids = implode( ',', $img_in_queue_duplicated );
		$q = "UPDATE `$this->_table_img_optm` SET optm_status = '" . self::STATUS_DUPLICATED . "' WHERE id IN ( $ids )";
		$wpdb->query( $q );
	}

	/**
	 * Filter the invalid src before sending
	 *
	 * @since 3.0.8.3
	 * @access private
	 */
	private function _filter_invalid_src()
	{
		global $wpdb;

		$img_in_queue_invalid = array();
		foreach ( $this->_img_in_queue as $k => $v ) {
			if ( $v[ 'src' ] ) {
				$extension = pathinfo( $v[ 'src' ], PATHINFO_EXTENSION );
			}
			if ( ! $v[ 'src' ] || empty( $extension ) || ! in_array( $extension, array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
				$img_in_queue_invalid[] = $v[ 'id' ];
				unset( $this->_img_in_queue[ $k ] );
				continue;
			}
		}

		if ( ! $img_in_queue_invalid ) {
			return;
		}

		$count = count( $img_in_queue_invalid );
		$msg = sprintf( __( 'Cleared %1$s invalid images.', 'litespeed-cache' ), $count );
		Admin_Display::succeed( $msg );

		Debug2::debug( '[Img_Optm] Found invalid src [total] ' . $count );

		// Update img table
		$ids = implode( ',', $img_in_queue_invalid );
		$q = "DELETE FROM `$this->_table_img_optm` WHERE id IN ( $ids )";
		$wpdb->query( $q );
	}

	/**
	 * Push img request to Cloud server
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _send_request()
	{
		global $wpdb;

		$list = array();
		foreach ( $this->_img_in_queue as $v ) {
			$_img_info = $this->__media->info( $v[ 'src' ], $v[ 'post_id' ] );

			if ( empty( $_img_info[ 'url' ] ) || empty( $_img_info[ 'md5' ] ) ) {
				// attachment doesn't exist, delete the record
				$q = "DELETE FROM `$this->_table_img_optm` WHERE post_id = %d";
				$wpdb->query( $wpdb->prepare( $q, $v[ 'post_id' ] ) );
				continue;
			}

			/**
			 * Filter `litespeed_img_optm_options_per_image`
			 * @since 2.4.2
			 */
			/**
			 * To use the filter `litespeed_img_optm_options_per_image` to manipulate `optm_options`, do below:
			 *
			 * 		add_filter( 'litespeed_img_optm_options_per_image', function( $optm_options, $file ){
			 * 			// To add optimize original image
			 * 			if ( Your conditions ) {
			 * 				$optm_options |= API::IMG_OPTM_BM_ORI;
			 * 			}
			 *
			 * 			// To add optimize webp image
			 * 			if ( Your conditions ) {
			 * 				$optm_options |= API::IMG_OPTM_BM_WEBP;
			 * 			}
			 *
			 * 			// To turn on lossless optimize for this image e.g. if filename contains `magzine`
			 * 			if ( strpos( $file, 'magzine' ) !== false ) {
			 * 				$optm_options |= API::IMG_OPTM_BM_LOSSLESS;
			 * 			}
			 *
			 * 			// To set keep exif info for this image
			 * 			if ( Your conditions ) {
			 * 				$optm_options |= API::IMG_OPTM_BM_EXIF;
			 * 			}
			 *
			 *			return $optm_options;
			 *   	} );
			 *
			 */
			$optm_options = apply_filters( 'litespeed_img_optm_options_per_image', 0, $v[ 'src' ] );

			$img = array(
				'id'	=> $v[ 'id' ],
				'url'	=> $_img_info[ 'url' ],
				'md5'	=> $_img_info[ 'md5' ],
			);
			if ( $optm_options ) {
				$img[ 'optm_options' ] = $optm_options;
			}

			$list[] = $img;
		}

		if ( ! $list ) {
			$msg = __( 'No valid image found in the current request.', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		$data = array(
			'action'		=> self::CLOUD_ACTION_NEW_REQ,
			'list' 			=> json_encode( $list ),
			'optm_ori'		=> $this->conf( self::O_IMG_OPTM_ORI ) ? 1 : 0,
			'optm_webp'		=> $this->conf( self::O_IMG_OPTM_WEBP ) ? 1 : 0,
			'optm_lossless'	=> $this->conf( self::O_IMG_OPTM_LOSSLESS ) ? 1 : 0,
			'keep_exif'		=> $this->conf( self::O_IMG_OPTM_EXIF ) ? 1 : 0,
		);

		// Push to Cloud server
		$json = Cloud::post( Cloud::SVC_IMG_OPTM, $data );
		if ( ! $json ) {
			return;
		}

		// Check data format
		if ( empty( $json[ 'ids' ] ) ) {
			Debug2::debug( '[Img_Optm] Failed to parse response data from Cloud server ', $json );
			$msg = __( 'No valid image found by Cloud server in the current request.', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		Debug2::debug( '[Img_Optm] Returned data from Cloud server count: ' . count( $json[ 'ids' ] ) );

		$ids = implode( ',', array_map( 'intval', $json[ 'ids' ] ) );
		// Update img table
		$q = "UPDATE `$this->_table_img_optm` SET optm_status = '" . self::STATUS_REQUESTED . "' WHERE id IN ( $ids )";
		$wpdb->query( $q );

		// Save to work table
		$q = "INSERT INTO `$this->_table_img_optming` ( id, post_id, optm_status, src ) SELECT id, post_id, optm_status, src FROM $this->_table_img_optm WHERE id IN ( $ids )";
		$wpdb->query( $q );

		$this->_summary[ 'last_requested' ] = time();
		self::save_summary();

		return count( $json[ 'ids' ] );
	}

	/**
	 * Cloud server notify Client img status changed
	 *
	 * @since  1.6
	 * @since  1.6.5 Added err/request status free switch
	 * @access public
	 */
	public function notify_img()
	{
		// Interval validation to avoid hacking domain_key
		if ( ! empty( $this->_summary[ 'notify_ts_err' ] ) && time() - $this->_summary[ 'notify_ts_err' ] < 3 ) {
			return Cloud::err( 'too_often' );
		}

		$post_data = json_decode(file_get_contents('php://input'), true);
		if( is_null( $post_data ) ) {
			$post_data = $_POST;
		}

		// Validate key
		if ( empty( $post_data[ 'domain_key' ] ) || $post_data[ 'domain_key' ] !== md5( $this->conf( self::O_API_KEY ) ) ) {
			$this->_summary[ 'notify_ts_err' ] = time();
			self::save_summary();
			return Cloud::err( 'wrong_key' );
		}

		global $wpdb;

		$notified_data = $post_data[ 'data' ];
		if ( empty( $notified_data ) || ! is_array( $notified_data ) ) {
			Debug2::debug( '[Img_Optm] ❌ notify exit: no notified data' );
			return Cloud::err( 'no notified data' );
		}

		if ( empty( $post_data[ 'server' ] ) || substr( $post_data[ 'server' ], -11 ) !== '.quic.cloud' ) {
			Debug2::debug( '[Img_Optm] notify exit: no/wrong server' );
			return Cloud::err( 'no/wrong server' );
		}

		$_allowed_status = array(
			self::STATUS_NOTIFIED, 		// 6 -> 'notified';
			self::STATUS_ERR_FETCH, 	// -5 -> 'err_fetch';
			self::STATUS_ERR_404, 		// -6 -> 'err_404';
			self::STATUS_ERR_OPTM, 		// -7 -> 'err_optm';
			self::STATUS_ERR, 			// -9 -> 'err';
		);

		if ( empty( $post_data[ 'status' ] ) || ! in_array( $post_data[ 'status' ], $_allowed_status ) ) {
			Debug2::debug( '[Img_Optm] notify exit: no/wrong status', $post_data );
			return Cloud::err( 'no/wrong status' );
		}

		$status = $post_data[ 'status' ];

		$last_log_pid = 0;

		if ( empty( $this->_summary[ 'reduced' ] ) ) {
			$this->_summary[ 'reduced' ] = 0;
		}

		if ( $status == self::STATUS_NOTIFIED ) {
			// Notified data format: [ img_optm_id => [ id=>, src_size=>, ori=>, ori_md5=>, ori_reduced=>, webp=>, webp_md5=>, webp_reduced=> ] ]
			$q = "SELECT a.*, b.meta_id as b_meta_id, b.meta_value AS b_optm_info
					FROM `$this->_table_img_optming` a
					LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.post_id AND b.meta_key = %s
					WHERE a.id IN ( " . implode( ',', array_fill( 0, count( $notified_data ), '%d' ) ) . " )";
			$list = $wpdb->get_results( $wpdb->prepare( $q, array_merge( array( self::DB_SIZE ), array_keys( $notified_data ) ) ) );
			$ls_optm_size_row_exists_postids = array();
			foreach ( $list as $v ) {
				$json = $notified_data[ $v->id ];

				$server = ! empty( $json['server'] ) ? $json['server'] : $post_data['server'];

				$server_info = array(
					'server'	=> $server,
				);

				// Save server side ID to send taken notification after pulled
				$server_info[ 'id' ] = $json[ 'id' ];
				if ( !empty( $json['file_id'] ) ) {
					$server_info['file_id'] = $json['file_id'];
				}

				// Optm info array
				$postmeta_info =  array(
					'ori_total' => 0,
					'ori_saved' => 0,
					'webp_total' => 0,
					'webp_saved' => 0,
				);
				// Init postmeta_info for the first one
				if ( ! empty( $v->b_meta_id ) ) {
					foreach ( maybe_unserialize( $v->b_optm_info ) as $k2 => $v2 ) {
						$postmeta_info[ $k2 ] += $v2;
					}
				}

				if ( ! empty( $json[ 'ori' ] ) ) {
					$server_info[ 'ori_md5' ] = $json[ 'ori_md5' ];
					$server_info[ 'ori' ] = $json[ 'ori' ];

					// Append meta info
					$postmeta_info[ 'ori_total' ] += $json[ 'src_size' ];
					$postmeta_info[ 'ori_saved' ] += $json[ 'ori_reduced' ]; // optimized image size info in img_optm tb will be updated when pull

					$this->_summary[ 'reduced' ] += $json[ 'ori_reduced' ];
				}

				if ( ! empty( $json[ 'webp' ] ) ) {
					$server_info[ 'webp_md5' ] = $json[ 'webp_md5' ];
					$server_info[ 'webp' ] = $json[ 'webp' ];

					// Append meta info
					$postmeta_info[ 'webp_total' ] += $json[ 'src_size' ];
					$postmeta_info[ 'webp_saved' ] += $json[ 'webp_reduced' ];

					$this->_summary[ 'reduced' ] += $json[ 'webp_reduced' ];
				}

				// Update status and data in working table
				$q = "UPDATE `$this->_table_img_optming` SET optm_status = %d, server_info = %s WHERE id = %d ";
				$wpdb->query( $wpdb->prepare( $q, array( $status, json_encode( $server_info ), $v->id ) ) );

				// Update postmeta for optm summary
				$postmeta_info = serialize( $postmeta_info );
				if ( empty( $v->b_meta_id ) && ! in_array( $v->post_id, $ls_optm_size_row_exists_postids ) ) {
					Debug2::debug( '[Img_Optm] New size info [pid] ' . $v->post_id );
					$q = "INSERT INTO `$wpdb->postmeta` ( post_id, meta_key, meta_value ) VALUES ( %d, %s, %s )";
					$wpdb->query( $wpdb->prepare( $q, array( $v->post_id, self::DB_SIZE, $postmeta_info ) ) );
					$ls_optm_size_row_exists_postids[] = $v->post_id;
				}
				else {
					$q = "UPDATE `$wpdb->postmeta` SET meta_value = %s WHERE meta_id = %d ";
					$wpdb->query( $wpdb->prepare( $q, array( $postmeta_info, $v->b_meta_id ) ) );
				}


				// write log
				$pid_log = $last_log_pid == $v->post_id ? '.' : $v->post_id;
				Debug2::debug( '[Img_Optm] notify_img [status] ' . $status . " \t\t[pid] " . $pid_log . " \t\t[id] " . $v->id );
				$last_log_pid = $v->post_id;
			}

			self::save_summary();

			// Mark need_pull tag for cron
			self::update_option( self::DB_NEED_PULL, self::STATUS_NOTIFIED );
		}
		elseif ( $status == self::STATUS_ERR_FETCH ) {
			// Only update working table
			$q = "UPDATE `$this->_table_img_optming` SET optm_status = %d WHERE id IN ( " . implode( ',', array_fill( 0, count( $notified_data ), '%d' ) ) . " ) ";
			$wpdb->query( $wpdb->prepare( $q, array_merge( array( $status ), $notified_data ) ) );
		}
		else { // Other errors will directly update img_optm table and remove the working records

			// Delete from working table
			$q = "DELETE FROM `$this->_table_img_optming` WHERE id IN ( " . implode( ',', array_fill( 0, count( $notified_data ), '%d' ) ) . " ) ";
			$wpdb->query( $wpdb->prepare( $q, $notified_data ) );

			// Update img_optm
			$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE id IN ( " . implode( ',', array_fill( 0, count( $notified_data ), '%d' ) ) . " ) ";
			$wpdb->query( $wpdb->prepare( $q, array_merge( array( $status ), $notified_data ) ) );

			// Log the failed optm to summary, to be counted in wet_limit
			if ( $status == self::STATUS_ERR_OPTM ) {
				if ( empty( $this->_summary[ 'img_status.' . $status ] ) ) {
					$this->_summary[ 'img_status.' . $status ] = 0;
				}
				$this->_summary[ 'img_status.' . $status ] += count( $notified_data );
				self::save_summary();
			}
		}

		// redo count err

		return Cloud::ok( array( 'count' => count( $notified_data ) ) );
	}

	/**
	 * Cron pull optimized img
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function cron_pull()
	{
		if ( ! defined( 'DOING_CRON' ) ) {
			return;
		}

		Debug2::debug( '[Img_Optm] cron_pull running' );

		$tag = self::get_option( self::DB_NEED_PULL );

		if ( ! $tag || $tag != self::STATUS_NOTIFIED ) {
			Debug2::debug( '[Img_Optm] ❌ no need pull [tag] ' . $tag );
			return;
		}

		self::cls()->pull();
	}

	/**
	 * Pull optimized img
	 *
	 * @since  1.6
	 * @access public
	 */
	public function pull( $manual = false )
	{
		global $wpdb;

		Debug2::debug( '[Img_Optm] ' . ( $manual ? 'Manually' : 'Cron' ) . ' pull started' );

		if ( $this->cron_running() ) {
			Debug2::debug( '[Img_Optm] Pull cron is running' );

			$msg = __( 'Pull Cron is running', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		$q = "SELECT * FROM `$this->_table_img_optming` WHERE optm_status = %d ORDER BY id LIMIT 1";
		$_q = $wpdb->prepare( $q, self::STATUS_NOTIFIED );

		$optm_ori = $this->conf( self::O_IMG_OPTM_ORI );
		$rm_ori_bkup = $this->conf( self::O_IMG_OPTM_RM_BKUP );
		$optm_webp = $this->conf( self::O_IMG_OPTM_WEBP );

		// pull 1 min images each time
		$end_time = time() + 60;

		$total_pulled_ori = 0;
		$total_pulled_webp = 0;
		$beginning = time();

		$server_list = array();

		while ( time() < $end_time ) {
			set_time_limit( 80 );

			$row_img = $wpdb->get_row( $_q );
			if ( ! $row_img ) {
				// No image
				break;
			}

			/**
			 * Update cron timestamp to avoid duplicated running
			 * @since  1.6.2
			 */
			$this->_update_cron_running();

			$local_file = $this->wp_upload_dir[ 'basedir' ] . '/' . $row_img->src;

			// Save ori optm image
			$target_size = 0;

			$server_info = json_decode( $row_img->server_info, true );
			if ( ! empty( $server_info[ 'ori' ] ) ) {
				/**
				 * Use wp orignal get func to avoid allow_url_open off issue
				 * @since  1.6.5
				 */
				$image_url = $server_info[ 'server' ] . '/' . $server_info[ 'ori' ];
				Debug2::debug( '[Img_Optm] Pulling image: ' . $image_url );
				$response = wp_remote_get( $image_url, array( 'timeout' => 60 ) );
				if ( is_wp_error( $response ) ) {
					$error_message = $response->get_error_message();
					Debug2::debug( '[Img_Optm] ❌ failed to pull image: ' . $error_message );
					return;
				}

				if ( $response[ 'response' ][ 'code' ] == 404 ) {
					$this->_step_back_image( $row_img->id );

					$msg = __( 'Some optimized image file(s) has expired and was cleared.', 'litespeed-cache' );
					Admin_Display::error( $msg );
					continue;
				}

				file_put_contents( $local_file . '.tmp', $response[ 'body' ] );

				if ( ! file_exists( $local_file . '.tmp' ) || ! filesize( $local_file . '.tmp' ) || md5_file( $local_file . '.tmp' ) !== $server_info[ 'ori_md5' ] ) {
					Debug2::debug( '[Img_Optm] ❌ Failed to pull optimized img: file md5 mismatch [url] ' . $server_info[ 'server' ] . '/' . $server_info[ 'ori' ] . ' [server_md5] ' . $server_info[ 'ori_md5' ] );

					// Update status to failed
					$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE id = %d ";
					$wpdb->query( $wpdb->prepare( $q, array( self::STATUS_FAILED, $row_img->id ) ) );
					// Delete working table
					$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
					$wpdb->query( $wpdb->prepare( $q, $row_img->id ) );

					$msg = __( 'One or more pulled images does not match with the notified image md5', 'litespeed-cache' );
					Admin_Display::error( $msg );
					continue;
				}

				// Backup ori img
				if ( ! $rm_ori_bkup ) {
					$extension = pathinfo( $local_file, PATHINFO_EXTENSION );
					$bk_file = substr( $local_file, 0, -strlen( $extension ) ) . 'bk.' . $extension;
					file_exists( $local_file ) && rename( $local_file, $bk_file );
				}

				// Replace ori img
				rename( $local_file . '.tmp', $local_file );

				Debug2::debug( '[Img_Optm] Pulled optimized img: ' . $local_file );

				$target_size = filesize( $local_file );

				/**
				 * API Hook
				 * @since  2.9.5
				 * @since  3.0 $row_img has less elements now. Most useful ones are `post_id`/`src`
				 */
				do_action( 'litespeed_img_pull_ori', $row_img, $local_file );

				$total_pulled_ori ++;
			}

			// Save webp image
			$webp_size = 0;

			if ( ! empty( $server_info[ 'webp' ] ) ) {
				// Fetch
				$response = wp_remote_get( $server_info[ 'server' ] . '/' . $server_info[ 'webp' ], array( 'timeout' => 60 ) );
				if ( is_wp_error( $response ) ) {
					$error_message = $response->get_error_message();
					Debug2::debug( '[Img_Optm] failed to pull webp image: ' . $error_message );
					return;
				}

				if ( $response[ 'response' ][ 'code' ] == 404 ) {
					$this->_step_back_image( $row_img->id );

					$msg = __( 'Optimized WebP file expired and was cleared.', 'litespeed-cache' );
					Admin_Display::error( $msg );
					return;
				}

				file_put_contents( $local_file . '.webp', $response[ 'body' ] );

				if ( ! file_exists( $local_file . '.webp' ) || ! filesize( $local_file . '.webp' ) || md5_file( $local_file . '.webp' ) !== $server_info[ 'webp_md5' ] ) {
					Debug2::debug( '[Img_Optm] ❌ Failed to pull optimized webp img: file md5 mismatch, server md5: ' . $server_info[ 'webp_md5' ] );

					// update status to failed
					$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE id = %d ";
					$wpdb->query( $wpdb->prepare( $q, array( self::STATUS_FAILED, $row_img->id ) ) );
					// Delete working table
					$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
					$wpdb->query( $wpdb->prepare( $q, $row_img->id ) );

					$msg = __( 'Pulled WebP image md5 does not match the notified WebP image md5.', 'litespeed-cache' );
					Admin_Display::error( $msg );
					return;
				}

				Debug2::debug( '[Img_Optm] Pulled optimized img WebP: ' . $local_file . '.webp' );

				$webp_size = filesize( $local_file . '.webp' );

				/**
				 * API for WebP
				 * @since 2.9.5
				 * @since  3.0 $row_img less elements (see above one)
				 * @see #751737  - API docs for WEBP generation
				 */
				do_action( 'litespeed_img_pull_webp', $row_img, $local_file . '.webp' );

				$total_pulled_webp ++;
			}

			Debug2::debug2( '[Img_Optm] Update _table_img_optm record [id] ' . $row_img->id );

			// Update pulled status
			$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d, target_filesize = %d, webp_filesize = %d WHERE id = %d ";
			$wpdb->query( $wpdb->prepare( $q, array( self::STATUS_PULLED, $target_size, $webp_size, $row_img->id ) ) );
			// Delete working table
			$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
			$wpdb->query( $wpdb->prepare( $q, $row_img->id ) );

			// Save server_list to notify taken
			if ( empty( $server_list[ $server_info[ 'server' ] ] ) ) {
				$server_list[ $server_info[ 'server' ] ] = array();
			}

			$server_info_id = ! empty( $server_info['file_id'] ) ? $server_info['file_id'] : $server_info['id'];
			$server_list[ $server_info[ 'server' ] ][] = $server_info_id;
		}

		// Notify IAPI images taken
		foreach ( $server_list as $server => $img_list ) {
			$data = array(
				'action'	=> self::CLOUD_ACTION_TAKEN,
				'list' 		=> $img_list,
				'server'	=> $server,
			);
			// TODO: improve this so we do not call once per server, but just once and then filter on the server side
			Cloud::post( Cloud::SVC_IMG_OPTM, $data );
		}

		if ( empty( $this->_summary[ 'img_taken' ] ) ) {
			$this->_summary[ 'img_taken' ] = 0;
		}
		$this->_summary[ 'img_taken' ] += $total_pulled_ori + $total_pulled_webp;
		self::save_summary();

		// Manually running needs to roll back timestamp for next running
		if ( $manual ) {
			$this->_update_cron_running( true ) ;
		}

		$msg = sprintf( __( 'Pulled %d image(s)', 'litespeed-cache' ), $total_pulled_ori + $total_pulled_webp );
		Admin_Display::succeed( $msg );

		// Check if there is still task in queue
		$q = "SELECT * FROM `$this->_table_img_optming` WHERE optm_status = %d LIMIT 1";
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, self::STATUS_NOTIFIED ) );
		if ( $to_be_continued ) {
			Debug2::debug( '[Img_Optm] Task in queue, to be continued...' );
			return Router::self_redirect( Router::ACTION_IMG_OPTM, self::TYPE_PULL );
		}

		// If all pulled, update tag to done
		Debug2::debug( '[Img_Optm] Marked pull status to all pulled' );
		self::update_option( self::DB_NEED_PULL, self::STATUS_PULLED );
	}

	/**
	 * Push image back to previous status
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _step_back_image( $id )
	{
		global $wpdb;

		// Reset the image to gathered status
		$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE id = %d ";
		$wpdb->query( $wpdb->prepare( $q, array( self::STATUS_RAW, $id ) ) );
		// Delete working table
		$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
		$wpdb->query( $wpdb->prepare( $q, $id ) );
	}

	/**
	 * Parse wp's meta value
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _parse_wp_meta_value( $v )
	{
		if ( ! $v->meta_value ) {
			Debug2::debug( '[Img_Optm] bypassed parsing meta due to no meta_value: pid ' . $v->post_id ) ;
			return false ;
		}

		$meta_value = @maybe_unserialize( $v->meta_value ) ;
		if ( ! is_array( $meta_value ) ) {
			Debug2::debug( '[Img_Optm] bypassed parsing meta due to meta_value not json: pid ' . $v->post_id ) ;
			return false ;
		}

		if ( empty( $meta_value[ 'file' ] ) ) {
			Debug2::debug( '[Img_Optm] bypassed parsing meta due to no ori file: pid ' . $v->post_id ) ;
			return false ;
		}

		return $meta_value ;
	}

	/**
	 * Clean up all unfinished queue locally and to Cloud server
	 *
	 * @since 2.1.2
	 * @access public
	 */
	public function clean()
	{
		global $wpdb ;

		if ( ! Data::cls()->tb_exist( 'img_optm' ) ) {
			return;
		}

		// Clear local working table queue
		if ( Data::cls()->tb_exist( 'img_optming' ) ) {
			$q = "TRUNCATE `$this->_table_img_optming`";
			$wpdb->query( $q );
		}

		// Reset img_optm table's queue
		if ( Data::cls()->tb_exist( 'img_optm' ) ) {
			$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE optm_status = %d" ;
			$wpdb->query( $wpdb->prepare( $q, self::STATUS_RAW, self::STATUS_REQUESTED ) ) ;
		}

		$msg = __( 'Cleaned up unfinished data successfully.', 'litespeed-cache' ) ;
		Admin_Display::succeed( $msg ) ;
	}

	/**
	 * Destroy all optimized images
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _destroy()
	{
		global $wpdb ;

		if ( ! Data::cls()->tb_exist( 'img_optm' ) ) {
			Debug2::debug( '[Img_Optm] DESTROY bypassed due to table not exist' ) ;
			return;
		}

		Debug2::debug( '[Img_Optm] excuting DESTROY process' ) ;

		/**
		 * Limit images each time before redirection to fix Out of memory issue. #665465
		 * @since  2.9.8
		 */
		// Start deleting files
		$limit = apply_filters( 'litespeed_imgoptm_destroy_max_rows', 500 ) ;
		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d" ;
		$list = $wpdb->get_results( $wpdb->prepare( $q, self::STATUS_PULLED, $limit ) ) ;
		foreach ( $list as $v ) {
			// del webp
			$this->__media->info( $v->src . '.webp', $v->post_id ) && $this->__media->del( $v->src . '.webp', $v->post_id ) ;
			$this->__media->info( $v->src . '.optm.webp', $v->post_id ) && $this->__media->del( $v->src . '.optm.webp', $v->post_id ) ;

			$extension = pathinfo( $v->src, PATHINFO_EXTENSION ) ;
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 ) ;
			$bk_file = $local_filename . '.bk.' . $extension ;
			$bk_optm_file = $local_filename . '.bk.optm.' . $extension ;

			// del optimized ori
			if ( $this->__media->info( $bk_file, $v->post_id ) ) {
				$this->__media->del( $v->src, $v->post_id ) ;
				$this->__media->rename( $bk_file, $v->src, $v->post_id ) ;
			}
			$this->__media->info( $bk_optm_file, $v->post_id ) && $this->__media->del( $bk_optm_file, $v->post_id ) ;
		}

		// Check if there are more images, then return `to_be_continued` code
		$q = "SELECT COUNT(*) FROM `$this->_table_img_optm` WHERE optm_status = %d" ;
		$total_img = $wpdb->get_var( $wpdb->prepare( $q, self::STATUS_PULLED ) ) ;
		if ( $total_img > $limit ) {
			$q = "DELETE FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d" ;
			$wpdb->query( $wpdb->prepare( $q, self::STATUS_PULLED, $limit ) ) ;

			Debug2::debug( '[Img_Optm] To be continued 🚦' ) ;

			return Router::self_redirect( Router::ACTION_IMG_OPTM, self::TYPE_DESTROY );
		}

		// Delete postmeta info
		$q = "DELETE FROM `$wpdb->postmeta` WHERE meta_key = %s" ;
		$wpdb->query( $wpdb->prepare( $q, self::DB_SIZE ) ) ;

		// Delete img_optm table
		Data::cls()->tb_del( 'img_optm' ) ;
		Data::cls()->tb_del( 'img_optming' ) ;

		// Clear options table summary info
		self::delete_option( '_summary' ) ;
		self::delete_option( self::DB_NEED_PULL ) ;

		$msg = __( 'Destroy all optimization data successfully.', 'litespeed-cache' ) ;
		Admin_Display::succeed( $msg ) ;
	}

	/**
	 * Rescan to find new generated images
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _rescan() {
		global $wpdb;

		$offset = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$limit = 500;

		Debug2::debug( '[Img_Optm] rescan images' );

		// Get images
		$q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a, `$wpdb->postmeta` b
			WHERE a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
				AND a.ID = b.post_id
				AND b.meta_key = '_wp_attachment_metadata'
			ORDER BY a.ID
			LIMIT %d, %d
			";
		$list = $wpdb->get_results( $wpdb->prepare( $q, $offset * $limit, $limit + 1 ) ); // last one is the seed for next batch

		if ( ! $list ) {
			$msg = __( 'Rescanned successfully.', 'litespeed-cache' );
			Admin_Display::succeed( $msg );

			Debug2::debug( '[Img_Optm] rescan bypass: no gathered image found' );
			return;
		}

		if ( count( $list ) == $limit + 1 ) {
			$to_be_continued = true;
			array_pop( $list ); // last one is the seed for next round, discard here.
		} else {
			$to_be_continued = false;
		}

		// Prepare post_ids to inquery gathered images
		$pid_set = array();
		$scanned_list = array();
		foreach ( $list as $v ) {
			$meta_value = $this->_parse_wp_meta_value( $v );
			if ( ! $meta_value ) {
				continue;
			}

			$scanned_list[] = array(
				'pid' => $v->post_id,
				'meta' => $meta_value,
			);

			$pid_set[] = $v->post_id;
		}

		// Build gathered images
		$q = "SELECT src, post_id FROM `$this->_table_img_optm` WHERE post_id IN (" . implode( ',', array_fill( 0, count( $pid_set ), '%d' ) ) . ")";
		$list = $wpdb->get_results( $wpdb->prepare( $q, $pid_set ) );
		foreach ( $list as $v ) {
			$this->_existed_src_list[] = $v->post_id . '.' . $v->src;
		}

		// Find new images
		foreach ( $scanned_list as $v ) {
			$meta_value = $v[ 'meta' ];
			// Parse all child src and put them into $this->_img_in_queue, missing ones to $this->_img_in_queue_missed
			$this->tmp_pid = $v[ 'pid' ];
			$this->tmp_path = pathinfo( $meta_value[ 'file' ], PATHINFO_DIRNAME ) . '/';
			$this->_append_img_queue( $meta_value, true );
			if ( ! empty( $meta_value[ 'sizes' ] ) ) {
				array_map( array( $this, '_append_img_queue' ), $meta_value[ 'sizes' ] );
			}
		}

		Debug2::debug( '[Img_Optm] rescaned [img_missed] ' . count( $this->_img_in_queue_missed ) . ' [img] ' . count( $this->_img_in_queue ) );

		// Save missed images into img_optm
		$this->_save_err_missed();

		$count = count( $this->_img_in_queue );
		if ( $count > 0 ) {
			// Save to DB
			$this->_save_raw();
		}

		if ( $to_be_continued ) {
			return Router::self_redirect( Router::ACTION_IMG_OPTM, self::TYPE_RESCAN );
		}

		$msg = $count ? sprintf( __( 'Rescanned %d images successfully.', 'litespeed-cache' ), $count ) : __( 'Rescanned successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Calculate bkup original images storage
	 *
	 * @since 2.2.6
	 * @access private
	 */
	private function _calc_bkup()
	{
		global $wpdb;

		if ( ! Data::cls()->tb_exist( 'img_optm' ) ) {
			return;
		}

		$offset = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$limit = 500;

		if ( ! $offset ) {
			$this->_summary[ 'bk_summary' ] = array(
				'date' => time(),
				'count' => 0,
				'sum' => 0,
			);
		}

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, $limit ) ) );

		foreach ( $list as $v ) {
			$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
			$bk_file = $local_filename . '.bk.' . $extension;

			$img_info = $this->__media->info( $bk_file, $v->post_id );
			if ( ! $img_info ) {
				continue;
			}

			$this->_summary[ 'bk_summary' ][ 'count' ] ++;
			$this->_summary[ 'bk_summary' ][ 'sum' ] += $img_info[ 'size' ];
		}

		$this->_summary[ 'bk_summary' ][ 'date' ] = time();
		self::save_summary();

		Debug2::debug( '[Img_Optm] _calc_bkup total: ' . $this->_summary[ 'bk_summary' ][ 'count' ] . ' [size] ' . $this->_summary[ 'bk_summary' ][ 'sum' ] );

		$offset ++;
		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, 1 ) ) );

		if ( $to_be_continued ) {
			return Router::self_redirect( Router::ACTION_IMG_OPTM, self::TYPE_CALC_BKUP );
		}

		$msg = __( 'Calculated backups successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Delete bkup original images storage
	 *
	 * @since  2.5
	 * @access public
	 */
	public function rm_bkup()
	{
		global $wpdb;

		if ( ! Data::cls()->tb_exist( 'img_optm' ) ) {
			return;
		}

		$offset = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$limit = 500;

		if ( empty( $this->_summary[ 'rmbk_summary' ] ) ) {
			$this->_summary[ 'rmbk_summary' ] = array(
				'date' => time(),
				'count' => 0,
				'sum' => 0,
			);
		}

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, $limit ) ) );

		foreach ( $list as $v ) {
			$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
			$bk_file = $local_filename . '.bk.' . $extension;

			// Del ori file
			$img_info = $this->__media->info( $bk_file, $v->post_id );
			if ( ! $img_info ) {
				continue;
			}

			$this->_summary[ 'rmbk_summary' ][ 'count' ] ++;
			$this->_summary[ 'rmbk_summary' ][ 'sum' ] += $img_info[ 'size' ];

			$this->__media->del( $bk_file, $v->post_id );
		}

		$this->_summary[ 'rmbk_summary' ][ 'date' ] = time();
		self::save_summary();

		Debug2::debug( '[Img_Optm] rm_bkup total: ' . $this->_summary[ 'rmbk_summary' ][ 'count' ] . ' [size] ' . $this->_summary[ 'rmbk_summary' ][ 'sum' ] );

		$offset ++;
		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, 1 ) ) );

		if ( $to_be_continued ) {
			return Router::self_redirect( Router::ACTION_IMG_OPTM, self::TYPE_RM_BKUP );
		}

		$msg = __( 'Removed backups successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Count images
	 *
	 * @since 1.6
	 * @access public
	 */
	public function img_count()
	{
		global $wpdb;

		$tb_existed = Data::cls()->tb_exist( 'img_optm' );
		$tb_existed2 = Data::cls()->tb_exist( 'img_optming' );

		$q = "SELECT COUNT(*)
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID AND b.meta_key = '_wp_attachment_metadata'
			WHERE a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
			";
		// $q = "SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status = 'inherit' AND post_mime_type IN ('image/jpeg', 'image/png', 'image/gif') ";
		$groups_not_gathered = $groups_raw = $groups_all = $wpdb->get_var( $q );
		$imgs_raw = 0;
		$imgs_gathered = 0;

		if ( $tb_existed ) {
			$q = "SELECT COUNT(*)
				FROM `$wpdb->posts` a
				LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID AND b.meta_key = '_wp_attachment_metadata'
				LEFT JOIN `$this->_table_img_optm` c ON c.post_id = a.ID
				WHERE a.post_type = 'attachment'
					AND a.post_status = 'inherit'
					AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
					AND c.id IS NULL
				";
			$groups_not_gathered = $wpdb->get_var( $q );

			$q = $wpdb->prepare( "SELECT COUNT(DISTINCT post_id),COUNT(*) FROM `$this->_table_img_optm` WHERE optm_status = %d", self::STATUS_RAW );
			list( $groups_raw, $imgs_raw ) = $wpdb->get_row( $q, ARRAY_N );
			$imgs_gathered = $wpdb->get_var( "SELECT COUNT(*) FROM `$this->_table_img_optm`" );
		}

		$count_list = array(
			'groups_all'	=> $groups_all,
			'groups_not_gathered'	=> $groups_not_gathered,
			'group.' . self::STATUS_RAW	=> $groups_raw,
			'img.' . self::STATUS_RAW	=> $imgs_raw,
			'imgs_gathered'	=> $imgs_gathered,
		);

		// images count from work table
		if ( $tb_existed2 ) {
			$q = "SELECT COUNT(DISTINCT post_id),COUNT(*) FROM `$this->_table_img_optming` WHERE optm_status = %d";
			$groups_to_check = array(
				self::STATUS_REQUESTED,
				self::STATUS_NOTIFIED,
				self::STATUS_ERR_FETCH,
			);
			foreach ( $groups_to_check as $v ) {
				$count_list[ 'img.' . $v ] = $count_list[ 'group.' . $v ] = 0;
				if ( $tb_existed ) {
					list( $count_list[ 'group.' . $v ], $count_list[ 'img.' . $v ] ) = $wpdb->get_row( $wpdb->prepare( $q, $v ), ARRAY_N );
				}
			}
		}

		// images count from image table
		if ( $tb_existed ) {
			$q = "SELECT COUNT(DISTINCT post_id),COUNT(*) FROM `$this->_table_img_optm` WHERE optm_status = %d";
			$groups_to_check = array(
				self::STATUS_DUPLICATED,
				self::STATUS_PULLED,
				self::STATUS_FAILED,
				self::STATUS_MISS,
				self::STATUS_ERR_OPTM,
				self::STATUS_XMETA,
				self::STATUS_ERR,
			);
			foreach ( $groups_to_check as $v ) {
				$count_list[ 'img.' . $v ] = $count_list[ 'group.' . $v ] = 0;
				if ( $tb_existed ) {
					list( $count_list[ 'group.' . $v ], $count_list[ 'img.' . $v ] ) = $wpdb->get_row( $wpdb->prepare( $q, $v ), ARRAY_N );
				}
			}
		}

		return $count_list;
	}

	/**
	 * Check if fetch cron is running
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function cron_running( $bool_res = true )
	{
		$last_run = ! empty( $this->_summary[ 'last_pull' ] ) ? $this->_summary[ 'last_pull' ] : 0;

		$is_running = $last_run && time() - $last_run < 120;

		if ( $bool_res ) {
			return $is_running ;
		}

		return array( $last_run, $is_running ) ;
	}

	/**
	 * Update fetch cron timestamp tag
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function _update_cron_running( $done = false )
	{
		$this->_summary[ 'last_pull' ] = time();

		if ( $done ) {
			// Only update cron tag when its from the active running cron
			if ( $this->_cron_ran ) {
				// Rollback for next running
				$this->_summary[ 'last_pull' ] -= 120;
			}
			else {
				return;
			}
		}

		self::save_summary();

		$this->_cron_ran = true;
	}

	/**
	 * Batch switch images to ori/optm version
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function _batch_switch( $type )
	{
		global $wpdb;

		$offset = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$limit = 500;

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, $limit ) ) );

		$i = 0;
		foreach ( $list as $v ) {
			$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
			$bk_file = $local_filename . '.bk.' . $extension;
			$bk_optm_file = $local_filename . '.bk.optm.' . $extension;

			// switch to ori
			if ( $type === self::TYPE_BATCH_SWITCH_ORI ) {
				if ( ! $this->__media->info( $bk_file, $v->post_id ) ) {
					continue;
				}

				$i ++;

				$this->__media->rename( $v->src, $bk_optm_file, $v->post_id );
				$this->__media->rename( $bk_file, $v->src, $v->post_id );
			}
			// switch to optm
			elseif ( $type === self::TYPE_BATCH_SWITCH_OPTM ) {
				if ( ! $this->__media->info( $bk_optm_file, $v->post_id ) ) {
					continue;
				}

				$i ++;

				$this->__media->rename( $v->src, $bk_file, $v->post_id );
				$this->__media->rename( $bk_optm_file, $v->src, $v->post_id );
			}
		}

		Debug2::debug( '[Img_Optm] batch switched images total: ' . $i );

		$offset ++;
		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, 1 ) ) );

		if ( $to_be_continued ) {
			return Router::self_redirect( Router::ACTION_IMG_OPTM, $type );
		}

		$msg = __( 'Switched images successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Switch image between original one and optimized one
	 *
	 * @since 1.6.2
	 * @access private
	 */
	private function _switch_optm_file( $type ) {
		global $wpdb;

		$pid = substr( $type, 4 );
		$switch_type = substr( $type, 0, 4 );

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE post_id = %d AND optm_status = %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, array( $pid, self::STATUS_PULLED ) ) );

		$msg = 'Unknown Msg';

		foreach ( $list as $v ) {
			// to switch webp file
			if ( $switch_type === 'webp' ) {
				if ( $this->__media->info( $v->src . '.webp', $v->post_id ) ) {
					$this->__media->rename( $v->src . '.webp', $v->src . '.optm.webp', $v->post_id );
					Debug2::debug( '[Img_Optm] Disabled WebP: ' . $v->src );

					$msg = __( 'Disabled WebP file successfully.', 'litespeed-cache' );
				}
				elseif ( $this->__media->info( $v->src . '.optm.webp', $v->post_id ) ) {
					$this->__media->rename( $v->src . '.optm.webp', $v->src . '.webp', $v->post_id );
					Debug2::debug( '[Img_Optm] Enable WebP: ' . $v->src );

					$msg = __( 'Enabled WebP file successfully.', 'litespeed-cache' );
				}
			}
			// to switch original file
			else {
				$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
				$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
				$bk_file = $local_filename . '.bk.' . $extension;
				$bk_optm_file = $local_filename . '.bk.optm.' . $extension;

				// revert ori back
				if ( $this->__media->info( $bk_file, $v->post_id ) ) {
					$this->__media->rename( $v->src, $bk_optm_file, $v->post_id );
					$this->__media->rename( $bk_file, $v->src, $v->post_id );
					Debug2::debug( '[Img_Optm] Restore original img: ' . $bk_file );

					$msg = __( 'Restored original file successfully.', 'litespeed-cache' );
				}
				elseif ( $this->__media->info( $bk_optm_file, $v->post_id ) ) {
					$this->__media->rename( $v->src, $bk_file, $v->post_id );
					$this->__media->rename( $bk_optm_file, $v->src, $v->post_id );
					Debug2::debug( '[Img_Optm] Switch to optm img: ' . $v->src );

					$msg = __( 'Switched to optimized file successfully.', 'litespeed-cache' );
				}

			}
		}

		Admin_Display::succeed( $msg );
	}

	/**
	 * Delete one optm data and recover original file
	 *
	 * @since 2.4.2
	 * @access public
	 */
	public function reset_row( $post_id )
	{
		global $wpdb;

		if ( ! $post_id ) {
			return;
		}

		// Gathered image don't have DB_SIZE info yet
		// $size_meta = get_post_meta( $post_id, self::DB_SIZE, true );

		// if ( ! $size_meta ) {
		// 	return;
		// }

		Debug2::debug( '[Img_Optm] _reset_row [pid] ' . $post_id );

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE post_id = %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, $post_id ) );
		if ( ! $list ) {
			return;
		}

		foreach ( $list as $v ) {
			$this->__media->info( $v->src . '.webp', $v->post_id ) && $this->__media->del( $v->src . '.webp', $v->post_id );
			$this->__media->info( $v->src . '.optm.webp', $v->post_id ) && $this->__media->del( $v->src . '.optm.webp', $v->post_id );

			$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
			$bk_file = $local_filename . '.bk.' . $extension;
			$bk_optm_file = $local_filename . '.bk.optm.' . $extension;

			if ( $this->__media->info( $bk_file, $v->post_id ) ) {
				Debug2::debug( '[Img_Optm] _reset_row Revert ori file' . $bk_file );
				$this->__media->del( $v->src, $v->post_id );
				$this->__media->rename( $bk_file, $v->src, $v->post_id );
			}
			elseif ( $this->__media->info( $bk_optm_file, $v->post_id ) ) {
				Debug2::debug( '[Img_Optm] _reset_row Del ori bk file' . $bk_optm_file );
				$this->__media->del( $bk_optm_file, $v->post_id );
			}
		}

		$q = "DELETE FROM `$this->_table_img_optm` WHERE post_id = %d";
		$wpdb->query( $wpdb->prepare( $q, $post_id ) );

		delete_post_meta( $post_id, self::DB_SIZE );

		$msg = __( 'Reset the optimized data successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Show an image's optm status
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public function check_img() {
		global $wpdb;

		$pid = $_POST[ 'data' ] ;

		Debug2::debug( '[Img_Optm] Check image [ID] ' . $pid ) ;

		$data = array() ;

		$data[ 'img_count' ] = $this->img_count() ;
		$data[ 'optm_summary' ] = self::get_summary() ;

		$data[ '_wp_attached_file' ] = get_post_meta( $pid, '_wp_attached_file', true ) ;
		$data[ '_wp_attachment_metadata' ] = get_post_meta( $pid, '_wp_attachment_metadata', true ) ;

		// Get img_optm data
		$q = "SELECT * FROM `$this->_table_img_optm` WHERE post_id = %d" ;
		$list = $wpdb->get_results( $wpdb->prepare( $q, $pid ) ) ;
		$img_data = array() ;
		if ( $list ) {
			foreach ( $list as $v ) {
				$img_data[] = array(
					'id'	=> $v->id,
					'optm_status'	=> $v->optm_status,
					'src'	=> $v->src,
					'srcpath_md5'	=> $v->srcpath_md5,
					'src_md5'	=> $v->src_md5,
					'server_info'	=> $v->server_info,
				) ;
			}
		}
		$data[ 'img_data' ] = $img_data ;

		return array( '_res' => 'ok', 'data' => $data ) ;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_RESET_ROW:
				$this->reset_row( ! empty( $_GET[ 'id' ] ) ? $_GET[ 'id' ] : false );
				break;

			case self::TYPE_CALC_BKUP:
				$this->_calc_bkup();
				break;

			case self::TYPE_RM_BKUP :
				$this->rm_bkup();
				break;

			case self::TYPE_NEW_REQ:
				$this->new_req();
				break;

			case self::TYPE_RESCAN:
				$this->_rescan();
				break;

			case self::TYPE_DESTROY:
				$this->_destroy();
				break;

			case self::TYPE_CLEAN:
				$this->clean();
				break;

			case self::TYPE_PULL:
				$this->pull();
				break;

			/**
			 * Batch switch
			 * @since 1.6.3
			 */
			case self::TYPE_BATCH_SWITCH_ORI:
			case self::TYPE_BATCH_SWITCH_OPTM:
				$this->_batch_switch( $type );
				break;

			case substr( $type, 0, 4 ) === 'webp':
			case substr( $type, 0, 4 ) === 'orig':
				$this->_switch_optm_file( $type );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The optimize css class.
 *
 * @since      	2.3
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class CSS extends Base {
	const TYPE_GEN_CCSS = 'gen_ccss';
	const TYPE_GEN_UCSS = 'gen_ucss';
	const TYPE_CLEAR_Q_CCSS = 'clear_q_ccss';
	const TYPE_CLEAR_Q_UCSS = 'clear_q_ucss';

	protected $_summary;
	private $_ucss_whitelist;
	private $_queue;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	public function __construct() {
		$this->_summary = self::get_summary();

		add_filter( 'litespeed_ucss_whitelist', array( $this->cls( 'Data' ), 'load_ucss_whitelist' ) );
	}

	/**
	 * Build the static filepath
	 *
	 * @since  4.3 Elevated to root.cls
	 * @since  4.3 Have to keep till v4.5 for compatibility when upgrade from v4.2 to v4.3
	 */
	protected function _build_filepath_prefix( $type ) {
		$filepath_prefix = '/' . $type . '/';
		if ( is_multisite() ) {
			$filepath_prefix .= get_current_blog_id() . '/';
		}

		return $filepath_prefix;
	}

	/**
	 * Clear all waiting queues
	 *
	 * @since  4.3 Elevated to root.cls
	 * @since  4.3 Have to keep till v4.5 for compatibility when upgrade from v4.2 to v4.3
	 */
	public function clear_q( $type ) {
		$filepath_prefix = $this->_build_filepath_prefix( $type );
		$static_path = LITESPEED_STATIC_DIR . $filepath_prefix . '.litespeed_conf.dat';

		if ( file_exists( $static_path ) ) {
			unlink( $static_path );
		}

		$msg = __( 'Queue cleared successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * HTML lazyload CSS
	 * @since 4.0
	 */
	public function prepare_html_lazy() {
		return '<style>' . implode( ',', $this->conf( self::O_OPTM_HTML_LAZY ) ) . '{content-visibility:auto;contain-intrinsic-size:1px 1000px;}</style>';
	}

	/**
	 * Output critical css
	 *
	 * @since  1.3
	 * @access public
	 */
	public function prepare_ccss() {
		// Get critical css for current page
		// Note: need to consider mobile
		$rules = $this->_ccss();
		if ( ! $rules ) {
			return null;
		}

		$error_tag = '';
		if ( substr( $rules, 0, 2 ) == '/*' && substr( $rules, -2 ) == '*/' ) {
			$error_tag = ' data-error="failed to generate"';
		}

		// Append default critical css
		$rules .= $this->conf( self::O_OPTM_CCSS_CON );

		return '<style id="litespeed-ccss"' . $error_tag . '>' . $rules . '</style>';
	}

	/**
	 * Generate CCSS url tag
	 *
	 * @since 4.0
	 */
	private function _gen_ccss_file_tag( $request_url ) {
		if ( is_404() ) {
			return '404';
		}

		if ( $this->conf( self::O_OPTM_CCSS_PER_URL ) ) {
			return $request_url;
		}

		$sep_uri = $this->conf( self::O_OPTM_CCSS_SEP_URI );
		if ( $sep_uri && $hit = Utility::str_hit_array( $request_url, $sep_uri ) ) {
			Debug2::debug( '[CCSS] Separate CCSS due to separate URI setting: ' . $hit );
			return $request_url;
		}

		$pt = Utility::page_type();

		$sep_pt = $this->conf( self::O_OPTM_CCSS_SEP_POSTTYPE );
		if ( in_array( $pt, $sep_pt ) ) {
			Debug2::debug( '[CCSS] Separate CCSS due to posttype setting: ' . $pt );
			return $request_url;
		}

		// Per posttype
		return $pt;
	}

	/**
	 * The critical css content of the current page
	 *
	 * @since  2.3
	 */
	private function _ccss() {
		global $wp;
		$request_url = home_url( $wp->request );

		$filepath_prefix = $this->_build_filepath_prefix( 'ccss' );
		$url_tag = $this->_gen_ccss_file_tag( $request_url );
		$vary = $this->cls( 'Vary' )->finalize_full_varies();
		$filename = $this->cls( 'Data' )->load_url_file( $url_tag, $vary, 'ccss' );
		if ( $filename ) {
			$static_file = LITESPEED_STATIC_DIR . $filepath_prefix . $filename . '.css';

			if ( file_exists( $static_file ) ) {
				Debug2::debug2( '[CSS] existing ccss ' . $static_file );
				return File::read( $static_file );
			}
		}

		$uid = get_current_user_id();

		$ua = ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) ? $_SERVER[ 'HTTP_USER_AGENT' ] : '';


		// Store it to prepare for cron
		$this->_queue = $this->load_queue( 'ccss' );

		if ( count( $this->_queue ) > 500 ) {
			Debug2::debug( '[CSS] CCSS Queue is full - 500' );
			return null;
		}

		$queue_k = ( strlen( $vary ) > 32 ? md5( $vary ) : $vary ) . ' ' . $url_tag;
		$this->_queue[ $queue_k ] = array(
			'url'			=> apply_filters( 'litespeed_ccss_url', $request_url ),
			'user_agent'	=> substr( $ua, 0, 200 ),
			'is_mobile'		=> $this->_separate_mobile_ccss(),
			'is_webp'		=> $this->cls( 'Media' )->webp_support() ? 1 : 0,
			'uid'			=> $uid,
			'vary'			=> $vary,
			'url_tag'		=> $url_tag,
		); // Current UA will be used to request
		$this->save_queue( 'ccss', $this->_queue );
		Debug2::debug( '[CSS] Added queue_ccss [url_tag] ' . $url_tag . ' [UA] ' . $ua . ' [vary] ' . $vary  . ' [uid] ' . $uid );

		// Prepare cache tag for later purge
		Tag::add( 'CCSS.' . md5( $queue_k ) );

		// For v4.1- clean up
		if ( isset( $this->_summary[ 'ccss_type_history' ] ) || isset( $this->_summary[ 'ccss_history' ] ) || isset( $this->_summary[ 'queue_ccss' ] ) ) {
			if ( isset( $this->_summary[ 'ccss_type_history' ] ) ) {
				unset( $this->_summary[ 'ccss_type_history' ] );
			}
			if ( isset( $this->_summary[ 'ccss_history' ] ) ) {
				unset( $this->_summary[ 'ccss_history' ] );
			}
			if ( isset( $this->_summary[ 'queue_ccss' ] ) ) {
				unset( $this->_summary[ 'queue_ccss' ] );
			}
			self::save_summary();
		}

		return null;
	}

	/**
	 * Get UCSS path
	 *
	 * @since  4.0
	 */
	public function load_ucss( $request_url, $dry_run = false ) {
		// Check UCSS URI excludes
		$ucss_exc = apply_filters( 'litespeed_ucss_exc', $this->conf( self::O_OPTM_UCSS_EXC ) );
		if ( $ucss_exc && $hit = Utility::str_hit_array( $request_url, $ucss_exc ) ) {
			Debug2::debug( '[CSS] UCSS bypassed due to UCSS URI Exclude setting: ' . $hit );
			return false;
		}

		$filepath_prefix = $this->_build_filepath_prefix( 'ucss' );

		$url_tag = $request_url;
		if ( is_404() ) {
			$url_tag = '404';
		}
		elseif ( apply_filters( 'litespeed_ucss_per_pagetype', false ) ) {
			$url_tag = Utility::page_type();
		}

		$vary = $this->cls( 'Vary' )->finalize_full_varies();
		$filename = $this->cls( 'Data' )->load_url_file( $url_tag, $vary, 'ucss' );
		if ( $filename ) {
			$static_file = LITESPEED_STATIC_DIR . $filepath_prefix . $filename . '.css';

			if ( file_exists( $static_file ) ) {
				Debug2::debug2( '[UCSS] existing ucss ' . $static_file );
				// Check if is error comment inside only
				$tmp = File::read( $static_file );
				if ( substr( $tmp, 0, 2 ) == '/*' && substr( $tmp, -2 ) == '*/' ) {
					Debug2::debug2( '[UCSS] existing ucss is error only: ' . $tmp );
					return false;
				}

				return $filename . '.css';
			}
		}

		if ( $dry_run ) {
			return false;
		}

		$uid = get_current_user_id();

		$ua = ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) ? $_SERVER[ 'HTTP_USER_AGENT' ] : '';

		// Store it for cron
		$this->_queue = $this->load_queue( 'ucss' );

		if ( count( $this->_queue ) > 500 ) {
			Debug2::debug( '[CSS] UCSS Queue is full - 500' );
			return false;
		}

		$queue_k = ( strlen( $vary ) > 32 ? md5( $vary ) : $vary ) . ' ' . $url_tag;
		$this->_queue[ $queue_k ] = array(
			'url'			=> apply_filters( 'litespeed_ucss_url', $request_url ),
			'user_agent'	=> substr( $ua, 0, 200 ),
			'is_mobile'		=> $this->_separate_mobile_ccss(),
			'is_webp'		=> $this->cls( 'Media' )->webp_support() ? 1 : 0,
			'uid'			=> $uid,
			'vary'			=> $vary,
			'url_tag'		=> $url_tag,
		); // Current UA will be used to request
		$this->save_queue( 'ucss', $this->_queue );
		Debug2::debug( '[CSS] Added queue_ucss [url_tag] ' . $url_tag . ' [UA] ' . $ua . ' [vary] ' . $vary  . ' [uid] ' . $uid );

		// Prepare cache tag for later purge
		Tag::add( 'UCSS.' . md5( $queue_k ) );

		// For v4.1- clean up
		if ( isset( $this->_summary[ 'ucss_history' ] ) || isset( $this->_summary[ 'queue_ucss' ] ) ) {
			if ( isset( $this->_summary[ 'ucss_history' ] ) ) {
				unset( $this->_summary[ 'ucss_history' ] );
			}
			if ( isset( $this->_summary[ 'queue_ucss' ] ) ) {
				unset( $this->_summary[ 'queue_ucss' ] );
			}
			self::save_summary();
		}

		return false;
	}

	/**
	 * Check if need to separate ccss for mobile
	 *
	 * @since  2.6.4
	 * @access private
	 */
	private function _separate_mobile_ccss() {
		return ( wp_is_mobile() || apply_filters( 'litespeed_is_mobile', false ) ) && $this->conf( self::O_CACHE_MOBILE );
	}

	/**
	 * Cron ccss generation
	 *
	 * @since  2.3
	 * @access private
	 */
	public static function cron_ccss( $continue = false ) {
		$_instance = self::cls();
		return $_instance->_cron_handler( 'ccss', $continue );
	}

	/**
	 * Generate UCSS
	 *
	 * @since  4.0
	 */
	public static function cron_ucss( $continue = false ) {
		$_instance = self::cls();
		return $_instance->_cron_handler( 'ucss', $continue );
	}

	/**
	 * Handle UCSS/CCSS cron
	 *
	 * @since 4.2
	 */
	private function _cron_handler( $type, $continue ) {
		$this->_queue = $this->load_queue( $type );

		if ( empty( $this->_queue ) ) {
			return;
		}

		$type_tag = strtoupper( $type );

		// For cron, need to check request interval too
		if ( ! $continue ) {
			if ( ! empty( $this->_summary[ 'curr_request_' . $type ] ) && time() - $this->_summary[ 'curr_request_' . $type ] < 300 && ! $this->conf( self::O_DEBUG ) ) {
				Debug2::debug( '[' . $type_tag . '] Last request not done' );
				return;
			}
		}

		$i = 0;
		foreach ( $this->_queue as $k => $v ) {
			if ( ! empty( $v[ '_status' ] ) ) {
				continue;
			}

			Debug2::debug( '[' . $type_tag . '] cron job [tag] ' . $k . ' [url] ' . $v[ 'url' ] . ( $v[ 'is_mobile' ] ? ' 📱 ' : '' ) . ' [UA] ' . $v[ 'user_agent' ] );

			if ( $type == 'ccss' && empty( $v[ 'url_tag' ] ) ) {
				unset( $this->_queue[ $k ] );
				$this->save_queue( $type, $this->_queue );
				Debug2::debug( '[CCSS] wrong queue_ccss format' );
				continue;
			}

			if ( ! isset( $v[ 'is_webp' ] ) ) {
				$v[ 'is_webp' ] = false;
			}

			$i ++;
			$res = $this->_send_req( $v[ 'url' ], $k, $v[ 'uid' ], $v[ 'user_agent' ], $v[ 'vary' ], $v[ 'url_tag' ], $type, $v[ 'is_mobile' ], $v[ 'is_webp' ] );
			if ( ! $res ) { // Status is wrong, drop this this->_queue
				unset( $this->_queue[ $k ] );
				$this->save_queue( $type, $this->_queue );

				if ( ! $continue ) {
					return;
				}

				if ( $i > 3 ) {
					$this->_print_loading( count( $this->_queue ), $type_tag );
					return Router::self_redirect( Router::ACTION_CSS, $type == 'ccss' ? CSS::TYPE_GEN_CCSS : CSS::TYPE_GEN_UCSS );
				}

				continue;
			}

			// Exit queue if out of quota
			if ( $res == 'out_of_quota' ) {
				return;
			}

			$this->_queue[ $k ][ '_status' ] = 'requested';
			$this->save_queue( $type, $this->_queue );

			// only request first one
			if ( ! $continue ) {
				return;
			}

			if ( $i > 3 ) {
				$this->_print_loading( count( $this->_queue ), $type_tag );
				return Router::self_redirect( Router::ACTION_CSS, $type == 'ccss' ? CSS::TYPE_GEN_CCSS : CSS::TYPE_GEN_UCSS );
			}
		}
	}

	/**
	 * Send to QC API to generate CCSS/UCSS
	 *
	 * @since  2.3
	 * @access private
	 */
	private function _send_req( $request_url, $queue_k, $uid, $user_agent, $vary, $url_tag, $type, $is_mobile, $is_webp ) {
		$svc = $type == 'ccss' ? Cloud::SVC_CCSS : Cloud::SVC_UCSS;
		// Check if has credit to push or not
		$err = false;
		$allowance = $this->cls( 'Cloud' )->allowance( $svc, $err );
		if ( ! $allowance ) {
			Debug2::debug( '[CCSS] ❌ No credit: ' . $err );
			$err && Admin_Display::error( Error::msg( $err ) );
			return 'out_of_quota';
		}

		set_time_limit( 120 );

		// Update css request status
		$this->_summary[ 'curr_request_' . $type ] = time();
		self::save_summary();

		// Gather guest HTML to send
		$html = $this->prepare_html( $request_url, $user_agent, $uid );

		if ( ! $html ) {
			return false;
		}

		// Parse HTML to gather all CSS content before requesting
		$css = false;
		if ( $type == 'ccss' ) {
			list( $css, $html ) = $this->prepare_css( $html, $is_webp );
		}
		else {
			list( , $html ) = $this->prepare_css( $html, $is_webp, true ); // Use this to drop CSS from HTML as we don't need those CSS to generate UCSS
			$filename = $this->cls( 'Data' )->load_url_file( $url_tag, $vary, 'css' );
			$filepath_prefix = $this->_build_filepath_prefix( 'css' );
			$static_file = LITESPEED_STATIC_DIR . $filepath_prefix . $filename . '.css';
			Debug2::debug( '[UCSS] Checking combined file ' . $static_file );
			if ( file_exists( $static_file ) ) {
				$css = File::read( $static_file );
			}
		}

		if ( ! $css ) {
			Debug2::debug( '[UCSS] ❌ No combined css' );
			return false;
		}

		// Generate critical css
		$data = array(
			// 'type'			=> strtoupper( $type ), // Backward compatibility for v4.1-
			'url'			=> $request_url,
			'queue_k'		=> $queue_k,
			'user_agent'	=> $user_agent,
			'is_mobile'		=> $is_mobile ? 1 : 0, // todo:compatible w/ tablet
			'is_webp'		=> $is_webp ? 1 : 0,
			'html'			=> $html,
			'css'			=> $css,
		);
		if ( $type == 'ucss' ) {
			if ( ! isset( $this->_ucss_whitelist ) ) {
				$this->_ucss_whitelist = $this->_filter_whitelist();
			}
			$data[ 'whitelist' ] = $this->_ucss_whitelist;
		}

		Debug2::debug( '[CSS] Generating: ', $data );

		$json = Cloud::post( $svc, $data, 30 );
		if ( ! is_array( $json ) ) {
			return false;
		}

		// Old version compatibility
		if ( empty( $json[ 'status' ] ) ) {
			if ( ! empty( $json[ $type ] ) ) {
				$this->_save_con( $type, $json[ $type ], $queue_k );
			}

			// Delete the row
			return false;
		}

		// Unknown status, remove this line
		if ( $json[ 'status' ] != 'queued' ) {
			return false;
		}

		// Save summary data
		$this->_summary[ 'last_spent_' . $type ] = time() - $this->_summary[ 'curr_request_' . $type ];
		$this->_summary[ 'last_request_' . $type ] = $this->_summary[ 'curr_request_' . $type ];
		$this->_summary[ 'curr_request_' . $type ] = 0;
		self::save_summary();

		return true;
	}

	/**
	 * Save CCSS/UCSS content
	 *
	 * @since 4.2
	 */
	private function _save_con( $type, $css, $queue_k ) {
		// Add filters
		$css = apply_filters( 'litespeed_' . $type, $css, $queue_k );
		Debug2::debug2( '[CSS] con: ' . $css );

		if ( substr( $css, 0, 2 ) == '/*' && substr( $css, -2 ) == '*/' ) {
			Debug2::debug( '[CSS] ❌ empty ' . $type . ' [content] ' . $css );
			// continue; // Save the error info too
		}

		// Write to file
		$filecon_md5 = md5( $css );

		$filepath_prefix = $this->_build_filepath_prefix( $type );
		$static_file = LITESPEED_STATIC_DIR . $filepath_prefix . $filecon_md5 . '.css';

		File::save( $static_file, $css, true );

		$url_tag = $this->_queue[ $queue_k ][ 'url_tag' ];
		$vary = $this->_queue[ $queue_k ][ 'vary' ];
		Debug2::debug2( "[CSS] Save URL to file [file] $static_file [vary] $vary" );

		$this->cls( 'Data' )->save_url( $url_tag, $vary, $type, $filecon_md5, dirname( $static_file ) );

		Purge::add( strtoupper( $type ) . '.' . md5( $queue_k ) );
	}

	/**
	* Print a loading message when redirecting CCSS/UCSS page to aviod whiteboard confusion
	*/
	private function _print_loading( $counter, $type ) {
		echo '<div style="font-size: 25px; text-align: center; padding-top: 150px; width: 100%; position: absolute;">';
		echo "<img width='35' src='" . LSWCP_PLUGIN_URL . "assets/img/Litespeed.icon.svg' />   ";
		echo sprintf( __( '%1$s %2$s files left in queue', 'litespeed-cache' ), $counter, $type );
		echo '<p><a href="' . admin_url( 'admin.php?page=litespeed-page_optm' ) . '">' . __( 'Cancel', 'litespeed-cache' ) . '</a></p>';
		echo '</div>';
	}

	/**
	 * Play for fun
	 *
	 * @since  3.4.3
	 */
	public function test_url( $request_url ) {
		$user_agent = $_SERVER[ 'HTTP_USER_AGENT' ];
		$html = $this->prepare_html( $request_url, $user_agent );
		list( $css, $html ) = $this->prepare_css( $html, true, true );
		// var_dump( $css );
// 		$html = <<<EOT

// EOT;

// 		$css = <<<EOT

// EOT;
		$data = array(
			'url'			=> $request_url,
			'ccss_type'		=> 'test',
			'user_agent'	=> $user_agent,
			'is_mobile'		=> 0,
			'html'			=> $html,
			'css'			=> $css,
			'type'			=> 'CCSS',
		);

		// Debug2::debug( '[CSS] Generating: ', $data );

		$json = Cloud::post( Cloud::SVC_CCSS, $data, 180 );

		var_dump($json);
	}

	/**
	 * Prepare HTML from URL
	 *
	 * @since  3.4.3
	 */
	public function prepare_html( $request_url, $user_agent, $uid = false ) {
		$html = $this->cls( 'Crawler' )->self_curl( add_query_arg( 'LSCWP_CTRL', 'before_optm', $request_url ), $user_agent, $uid );
		Debug2::debug2( '[CSS] self_curl result....', $html );


		$html = $this->cls( 'Optimizer' )->html_min( $html, true );
		// Drop <noscript>xxx</noscript>
		$html = preg_replace( '#<noscript>.*</noscript>#isU', '', $html );

		return $html;
	}

	/**
	 * Prepare CSS from HTML for CCSS generation only. UCSS will used combined CSS directly.
	 * Prepare refined HTML for both CCSS and UCSS.
	 *
	 * @since  3.4.3
	 */
	public function prepare_css( $html, $is_webp = false, $dryrun = false ) {
		$css = '';
		preg_match_all( '#<link ([^>]+)/?>|<style([^>]*)>([^<]+)</style>#isU', $html, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$debug_info = '';
			if ( strpos( $match[ 0 ], '<link' ) === 0 ) {
				$attrs = Utility::parse_attr( $match[ 1 ] );

				if ( empty( $attrs[ 'rel' ] ) ) {
					continue;
				}

				if ( $attrs[ 'rel' ] != 'stylesheet' ) {
					if ( $attrs[ 'rel' ] != 'preload' || empty( $attrs[ 'as' ] ) || $attrs[ 'as' ] != 'style' ) {
						continue;
					}
				}

				if ( ! empty( $attrs[ 'media' ] ) && strpos( $attrs[ 'media' ], 'print' ) !== false ) {
					continue;
				}

				if ( empty( $attrs[ 'href' ] ) ) {
					continue;
				}

				// Check Google fonts hit
				if ( strpos( $attrs[ 'href' ], 'fonts.googleapis.com' ) !== false ) {
					$html = str_replace( $match[ 0 ], '', $html );
					continue;
				}

				$debug_info = $attrs[ 'href' ];

				// Load CSS content
				if ( ! $dryrun ) { // Dryrun will not load CSS but just drop them
					$con = $this->cls( 'Optimizer' )->load_file( $attrs[ 'href' ] );
					if ( ! $con ) {
						continue;
					}
				}
				else {
					$con = '';
				}
			}
			else { // Inline style
				$attrs = Utility::parse_attr( $match[ 2 ] );

				if ( ! empty( $attrs[ 'media' ] ) && strpos( $attrs[ 'media' ], 'print' ) !== false ) {
					continue;
				}

				Debug2::debug2( '[CSS] Load inline CSS ' . substr( $match[ 3 ], 0, 100 ) . '...', $attrs );
				$con = $match[ 3 ];

				$debug_info = '__INLINE__';
			}

			$con = Optimizer::minify_css( $con );
			if ( $is_webp && $this->cls( 'Media' )->webp_support() ) {
				$con = $this->cls( 'Media' )->replace_background_webp( $con );
			}

			if ( ! empty( $attrs[ 'media' ] ) && $attrs[ 'media' ] !== 'all' ) {
				$con = '@media ' . $attrs[ 'media' ] . '{' . $con . "}\n";
			}
			else {
				$con = $con . "\n";
			}

			$con = '/* ' . $debug_info . ' */' . $con;
			$css .= $con;

			$html = str_replace( $match[ 0 ], '', $html );
		}

		return array( $css, $html );
	}


	/**
	 * Filter the comment content, add quotes to selector from whitelist. Return the json
	 *
	 * @since 3.3
	 */
	private function _filter_whitelist() {
		$whitelist = array();
		$list = apply_filters( 'litespeed_ucss_whitelist', $this->conf( self::O_OPTM_UCSS_WHITELIST ) );
		foreach ( $list as $k => $v ) {
			if ( substr( $v, 0, 2 ) === '//' ) {
				continue;
			}
			// Wrap in quotes for selectors
			if ( substr( $v, 0, 1 ) !== '/' && strpos( $v, '"' ) === false && strpos( $v, "'" ) === false ) {
				// $v = "'$v'";
			}
			$whitelist[] = $v;
		}

		return $whitelist;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.3
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_GEN_UCSS:
				self::cron_ucss( true );
				break;

			case self::TYPE_GEN_CCSS:
				self::cron_ccss( true );
				break;

			case self::TYPE_CLEAR_Q_UCSS:
				$this->clear_q( 'ucss' );
				break;

			case self::TYPE_CLEAR_Q_CCSS:
				$this->clear_q( 'ccss' );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The crawler class
 *
 * @since      	1.1.0
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Crawler extends Root {
	const TYPE_REFRESH_MAP = 'refresh_map';
	const TYPE_EMPTY = 'empty';
	const TYPE_BLACKLIST_EMPTY = 'blacklist_empty';
	const TYPE_BLACKLIST_DEL = 'blacklist_del';
	const TYPE_BLACKLIST_ADD = 'blacklist_add';
	const TYPE_START = 'start';
	const TYPE_RESET = 'reset';

	const USER_AGENT = 'lscache_walker';
	const FAST_USER_AGENT = 'lscache_runner';
	const CHUNKS = 10000;

	private $_sitemeta = 'meta.data';
	private $_resetfile;
	private $_end_reason;

	private $_crawler_conf = array(
		'cookies' => array(),
		'headers' => array(),
		'ua'	=> '',
	);
	private $_crawlers = array();
	private $_cur_threads = -1;
	private $_max_run_time;
	private $_cur_thread_time;
	private $_map_status_list = array(
		'H'	=> array(),
		'M'	=> array(),
		'B'	=> array(),
		'N'	=> array(),
	);
	protected $_summary;

	/**
	 * Initialize crawler, assign sitemap path
	 *
	 * @since    1.1.0
	 */
	public function __construct() {
		if ( is_multisite() ) {
			$this->_sitemeta = 'meta' . get_current_blog_id() . '.data';
		}

		$this->_resetfile = LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta . '.reset';

		$this->_summary = self::get_summary();

		Debug2::debug( '🐞 Init' );
	}

	/**
	 * Check whether the current crawler is active/runable/useable/enabled/want it to work or not
	 *
	 * @since  4.3
	 */
	public function is_active( $curr ){
		$bypass_list = self::get_option( 'bypass_list' , array() );
		return ! in_array( $curr, $bypass_list );
	}

	/**
	 * Toggle the current crawler's activeness state, i.e., runable/useable/enabled/want it to work or not, and return the updated state
	 *
	 * @since  4.3
	 */
	public function toggle_activeness( $curr ) { // param type: int
		$bypass_list = self::get_option( 'bypass_list' , array() );
		if ( in_array( $curr, $bypass_list ) ) { // when the ith opt was off / in the bypassed list, turn it on / remove it from the list
		    unset( $bypass_list[ array_search( $curr, $bypass_list ) ] );
			$bypass_list = array_values( $bypass_list );
			self::update_option( 'bypass_list' , $bypass_list );
			return true;
		} else {        	// when the ith opt was on / not in the bypassed list, turn it off / add it to the list
			$bypass_list[] = ( int ) $curr;
			self::update_option( 'bypass_list' , $bypass_list );
			return false;
		}
	}

	/**
	 * Clear bypassed list
	 *
	 * @since  4.3
	 * @access public
	 */
	public function clear_disabled_list() {
		self::update_option( 'bypass_list', array() );

		$msg = __( 'Crawler disabled list is cleared! All crawlers are set to active! ', 'litespeed-cache' );
		Admin_Display::note( $msg );

		Debug2::debug( '🐞 All crawlers are set to active...... ' );
	}

	/**
	 * Overwride get_summary to init elements
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get_summary( $field = false ) {
		$_default = array(
			'list_size'			=> 0,
			'last_update_time'	=> 0,
			'curr_crawler'		=> 0,
			'curr_crawler_beginning_time'	=> 0,
			'last_pos'			=> 0,
			'last_count'		=> 0,
			'last_crawled'		=> 0,
			'last_start_time'	=> 0,
			'last_status'		=> '',
			'is_running'		=> 0,
			'end_reason'		=> '',
			'meta_save_time'	=> 0,
			'pos_reset_check'	=> 0,
			'done'				=> 0,
			'this_full_beginning_time'	=> 0,
			'last_full_time_cost'		=> 0,
			'last_crawler_total_cost'	=> 0,
			'crawler_stats'		=> array(), // this will store all crawlers hit/miss crawl status
		);

		$summary = parent::get_summary();
		$summary = array_merge( $_default, $summary );

		if ( ! $field ) {
			return $summary;
		}

		if ( array_key_exists( $field, $summary ) ) {
			return $summary[ $field ];
		}

		return null;
	}

	/**
	 * Overwride save_summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function save_summary( $data = null ) {
		$instance = self::cls();
		$instance->_summary[ 'meta_save_time' ] = time();

		if ( $data === null ) {
			$data = $instance->_summary;
		}

		parent::save_summary( $data );

		File::save( LITESPEED_STATIC_DIR . '/crawler/' . $instance->_sitemeta, json_encode( $data ), true );
	}

	/**
	 * Proceed crawling
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public static function start( $force = false ) {
		if ( ! Router::can_crawl() ) {
			Debug2::debug( '🐞 ......crawler is NOT allowed by the server admin......' );
			return false;
		}

		if ( $force ) {
			Debug2::debug( '🐞 ......crawler manually ran......' );
		}

		self::cls()->_crawl_data( $force );
	}

	/**
	 * Crawling start
	 *
	 * @since    1.1.0
	 * @access   private
	 */
	private function _crawl_data( $force ) {
		Debug2::debug( '🐞 ......crawler started......' );
		// for the first time running
		if ( ! $this->_summary || ! Data::cls()->tb_exist( 'crawler' ) || ! Data::cls()->tb_exist( 'crawler_blacklist' ) ) {
			$this->cls( 'Crawler_Map' )->gen();
		}

		// if finished last time, regenerate sitemap
		if ( $this->_summary['done'] === 'touchedEnd' ) {
			// check whole crawling interval
			$last_fnished_at = $this->_summary[ 'last_full_time_cost' ] + $this->_summary[ 'this_full_beginning_time' ];
			if ( ! $force && time() - $last_fnished_at < $this->conf( Base::O_CRAWLER_CRAWL_INTERVAL ) ) {
				Debug2::debug( '🐞 Cron abort: cache warmed already.' );
				// if not reach whole crawling interval, exit
				return;
			}
			Debug2::debug( '🐞 TouchedEnd. regenerate sitemap....' );
			$this->cls( 'Crawler_Map' )->gen();
		}

		$this->list_crawlers();

		// Skip the crawlers that in bypassed list
		while ( ! $this->is_active( $this->_summary[ 'curr_crawler' ] ) && $this->_summary[ 'curr_crawler' ] < count( $this->_crawlers ) ) {
			Debug2::debug( '🐞 Skipped the Crawler #' . $this->_summary[ 'curr_crawler' ] . ' ......' );
			$this->_summary[ 'curr_crawler' ]++;
		}
		if ( $this->_summary[ 'curr_crawler' ] >= count( $this->_crawlers ) ) {
			$this->_end_reason = 'end';
			$this->_terminate_running();
			return;
		}

		// In case crawlers are all done but not reload, reload it
		if ( empty( $this->_summary[ 'curr_crawler' ] ) || empty( $this->_crawlers[ $this->_summary[ 'curr_crawler' ] ] ) ) {
			$this->_summary[ 'curr_crawler' ] = 0;
			$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
		}

		$this->load_conf();

		$this->_engine_start();
	}

	/**
	 * Load conf before running crawler
	 *
	 * @since  3.0
	 * @access private
	 */
	private function load_conf() {
		$this->_crawler_conf[ 'base' ] = home_url();

		$current_crawler = $this->_crawlers[ $this->_summary[ 'curr_crawler' ] ];

		/**
		 * Set role simulation
		 * @since 1.9.1
		 */
		if ( ! empty( $current_crawler[ 'uid' ] ) ) {
			// Get role simulation vary name
			$vary_name = $this->cls( 'Vary' )->get_vary_name();
			$vary_val = $this->cls( 'Vary' )->finalize_default_vary( $current_crawler[ 'uid' ] );
			$this->_crawler_conf[ 'cookies' ][ $vary_name ] = $vary_val;
			$this->_crawler_conf[ 'cookies' ][ 'litespeed_role' ] = $current_crawler[ 'uid' ];
		}

		/**
		 * Check cookie crawler
		 * @since  2.8
		 */
		foreach ( $current_crawler as $k => $v ) {
			if ( strpos( $k, 'cookie:') !== 0 ) {
				continue;
			}

			if ( $v == '_null' ) {
				continue;
			}

			$this->_crawler_conf[ 'cookies' ][ substr( $k, 7 ) ] = $v;
		}

		/**
		 * Set WebP simulation
		 * @since  1.9.1
		 */
		if ( ! empty( $current_crawler[ 'webp' ] ) ) {
			$this->_crawler_conf[ 'headers' ][] = 'Accept: image/webp,*/*';
		}

		/**
		 * Set mobile crawler
		 * @since  2.8
		 */
		if ( ! empty( $current_crawler[ 'mobile' ] ) ) {
			$this->_crawler_conf[ 'ua' ] = 'Mobile iPhone';
		}

		/**
		 * Limit delay to use server setting
		 * @since 1.8.3
		 */
		$this->_crawler_conf[ 'run_delay' ] = $this->conf( Base::O_CRAWLER_USLEEP ); // microseconds
		if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_USLEEP ] ) && $_SERVER[ Base::ENV_CRAWLER_USLEEP ] > $this->_crawler_conf[ 'run_delay' ] ) {
			$this->_crawler_conf[ 'run_delay' ] = $_SERVER[ Base::ENV_CRAWLER_USLEEP ];
		}

		$this->_crawler_conf[ 'run_duration' ] = $this->conf( Base::O_CRAWLER_RUN_DURATION );

		$this->_crawler_conf[ 'load_limit' ] = $this->conf( Base::O_CRAWLER_LOAD_LIMIT );
		if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ] ) ) {
			$this->_crawler_conf[ 'load_limit' ] = $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ];
		}
		elseif ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ] ) && $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ] < $this->_crawler_conf[ 'load_limit' ] ) {
			$this->_crawler_conf[ 'load_limit' ] = $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ];
		}

	}

	/**
	 * Start crawler
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _engine_start() {
		// check if is running
		if ( $this->_summary['is_running'] && time() - $this->_summary['is_running'] < $this->_crawler_conf[ 'run_duration' ] ) {
			$this->_end_reason = 'stopped';
			Debug2::debug( '🐞 The crawler is running.' );
			return;
		}

		// check current load
		$this->_adjust_current_threads();
		if ( $this->_cur_threads == 0 ) {
			$this->_end_reason = 'stopped_highload';
			Debug2::debug( '🐞 Stopped due to heavy load.' );
			return;
		}

		// log started time
		$this->_summary['last_start_time'] = time();
		self::save_summary();

		// set time limit
		$maxTime = (int) ini_get( 'max_execution_time' );
		Debug2::debug( '🐞 ini_get max_execution_time=' . $maxTime );
		if ( $maxTime == 0 ) {
			$maxTime = 300; // hardlimit
		}
		else {
			$maxTime -= 5;
		}
		if ( $maxTime >= $this->_crawler_conf[ 'run_duration' ] ) {
			$maxTime = $this->_crawler_conf[ 'run_duration' ];
			Debug2::debug( '🐞 Use run_duration setting as max_execution_time=' . $maxTime );
		}
		elseif ( ini_set( 'max_execution_time', $this->_crawler_conf[ 'run_duration' ] + 15 ) !== false ) {
			$maxTime = $this->_crawler_conf[ 'run_duration' ];
			Debug2::debug( '🐞 ini_set max_execution_time=' . $maxTime );
		}
		Debug2::debug( '🐞 final max_execution_time=' . $maxTime );
		$this->_max_run_time = $maxTime + time();

		// mark running
		$this->_prepare_running();
		// run cralwer
		$this->_do_running();
		$this->_terminate_running();
	}

	/**
	 * Adjust threads dynamically
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _adjust_current_threads() {
		/**
		 * If server is windows, exit
		 * @see  https://wordpress.org/support/topic/crawler-keeps-causing-crashes/
		 */
		if ( ! function_exists( 'sys_getloadavg' ) ) {
			Debug2::debug( '🐞 set threads=0 due to func sys_getloadavg not exist!' );
			$this->_cur_threads = 0;
			return;
		}

		$load = sys_getloadavg();
		$curload = 1;

		if ( $this->_cur_threads == -1 ) {
			// init
			if ( $curload > $this->_crawler_conf[ 'load_limit' ] ) {
				$curthreads = 0;
			}
			elseif ( $curload >= ( $this->_crawler_conf[ 'load_limit' ] - 1 ) ) {
				$curthreads = 1;
			}
			else {
				$curthreads = intval( $this->_crawler_conf[ 'load_limit' ] - $curload );
				if ( $curthreads > $this->conf( Base::O_CRAWLER_THREADS ) ) {
					$curthreads = $this->conf( Base::O_CRAWLER_THREADS );
				}
			}
		}
		else {
			// adjust
			$curthreads = $this->_cur_threads;
			if ( $curload >= $this->_crawler_conf[ 'load_limit' ] + 1 ) {
				sleep( 5 );  // sleep 5 secs
				if ( $curthreads >= 1 ) {
					$curthreads --;
				}
			}
			elseif ( $curload >= $this->_crawler_conf[ 'load_limit' ] ) {
				if ( $curthreads > 1 ) {// if already 1, keep
					$curthreads --;
				}
			}
			elseif ( ($curload + 1) < $this->_crawler_conf[ 'load_limit' ] ) {
				if ( $curthreads < $this->conf( Base::O_CRAWLER_THREADS ) ) {
					$curthreads ++;
				}
			}
		}

		// $log = 'set current threads = ' . $curthreads . ' previous=' . $this->_cur_threads
		// 	. ' max_allowed=' . $this->conf( Base::O_CRAWLER_THREADS ) . ' load_limit=' . $this->_crawler_conf[ 'load_limit' ] . ' current_load=' . $curload;

		$this->_cur_threads = $curthreads;
		$this->_cur_thread_time = time();
	}

	/**
	 * Mark running status
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _prepare_running() {
		$this->_summary[ 'is_running' ] = time();
		$this->_summary[ 'done' ] = 0;// reset done status
		$this->_summary[ 'last_status' ] = 'prepare running';
		$this->_summary[ 'last_crawled' ] = 0;

		// Current crawler starttime mark
		if ( $this->_summary[ 'last_pos' ] == 0 ) {
			$this->_summary[ 'curr_crawler_beginning_time' ] = time();
		}

		if ( $this->_summary[ 'curr_crawler' ] == 0 && $this->_summary[ 'last_pos' ] == 0 ) {
			$this->_summary[ 'this_full_beginning_time' ] = time();
			$this->_summary[ 'list_size' ] = $this->cls( 'Crawler_Map' )->count_map();
		}

		if ( $this->_summary[ 'end_reason' ] == 'end' && $this->_summary[ 'last_pos' ] == 0 ) {
			$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
		}

		self::save_summary();
	}

	/**
	 * Run crawler
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _do_running() {
		$options = $this->_get_curl_options( true );

		while ( $urlChunks = $this->cls( 'Crawler_Map' )->list_map( self::CHUNKS, $this->_summary['last_pos'] ) ) {
			// start crawling
			$urlChunks = array_chunk( $urlChunks, $this->_cur_threads );
			foreach ( $urlChunks as $rows ) {
				// multi curl
				$rets = $this->_multi_request( $rows, $options );

				// check result headers
				foreach ( $rows as $row ) {
					if ( empty( $rets[ $row[ 'id' ] ] ) ) { // If already in blacklist, no curl happened, no corresponding record
						continue;
					}

					// check response
					if ( $rets[ $row[ 'id' ] ][ 'code' ] == 428 ) { // HTTP/1.1 428 Precondition Required (need to test)
						$this->_end_reason = 'crawler_disabled';
						Debug2::debug( '🐞 crawler_disabled' );
						return;
					}

					$status = $this->_status_parse( $rets[ $row[ 'id' ] ][ 'header' ], $rets[ $row[ 'id' ] ][ 'code' ] ); // B or H or M or N(nocache)
					$this->_map_status_list[ $status ][ $row[ 'id' ] ] = array(
						'url'	=> $row[ 'url' ],
						'code' 	=> $rets[ $row[ 'id' ] ][ 'code' ], // 201 or 200 or 404
					);
					if ( empty( $this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ][ $status ] ) ) {
						$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ][ $status ] = 0;
					}
					$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ][ $status ]++;
				}

				// update offset position
				$_time = time();
				$this->_summary[ 'last_pos' ] += $this->_cur_threads;
				$this->_summary[ 'last_count' ] = $this->_cur_threads;
				$this->_summary[ 'last_crawled' ] += $this->_cur_threads;
				$this->_summary[ 'last_update_time' ] = $_time;
				$this->_summary[ 'last_status' ] = 'updated position';

				// check duration
				if ( $this->_summary[ 'last_update_time' ] > $this->_max_run_time ) {
					$this->_end_reason = 'stopped_maxtime';
					Debug2::debug( '🐞 Terminated due to maxtime' );
					return;
					// return __('Stopped due to exceeding defined Maximum Run Time', 'litespeed-cache');
				}

				// make sure at least each 10s save meta & map status once
				if ( $_time - $this->_summary[ 'meta_save_time' ] > 10 ) {
					$this->_map_status_list = $this->cls( 'Crawler_Map' )->save_map_status( $this->_map_status_list, $this->_summary[ 'curr_crawler' ] );
					self::save_summary();
				}

				// check if need to reset pos each 5s
				if ( $_time > $this->_summary[ 'pos_reset_check' ] ) {
					$this->_summary[ 'pos_reset_check' ] = $_time + 5;
					if ( file_exists( $this->_resetfile ) && unlink( $this->_resetfile ) ) {
						Debug2::debug( '🐞 Terminated due to reset file' );

						$this->_summary[ 'last_pos' ] = 0;
						$this->_summary[ 'curr_crawler' ] = 0;
						$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
						// reset done status
						$this->_summary[ 'done' ] = 0;
						$this->_summary[ 'this_full_beginning_time' ] = 0;
						$this->_end_reason = 'stopped_reset';
						return;
						// return __('Stopped due to reset meta position', 'litespeed-cache');
					}
				}

				// check loads
				if ( $this->_summary[ 'last_update_time' ] - $this->_cur_thread_time > 60 ) {
					$this->_adjust_current_threads();
					if ( $this->_cur_threads == 0 ) {
						$this->_end_reason = 'stopped_highload';
						Debug2::debug( '🐞 Terminated due to highload' );
						return;
						// return __('Stopped due to load over limit', 'litespeed-cache');
					}
				}

				$this->_summary[ 'last_status' ] = 'sleeping ' . $this->_crawler_conf[ 'run_delay' ] . 'ms';

				usleep( $this->_crawler_conf[ 'run_delay' ] );
			}
		}

		// All URLs are done for current crawler
		$this->_end_reason = 'end';
		$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ][ 'W' ] = 0;
		Debug2::debug( '🐞 Crawler #' . $this->_summary['curr_crawler'] . ' touched end' );
	}

	/**
	 * Send multi curl requests
	 * If res=B, bypass request and won't return
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _multi_request( $rows, $options ) {
		$mh = curl_multi_init();
		$curls = array();
		foreach ( $rows as $row ) {
			if ( substr( $row[ 'res' ], $this->_summary[ 'curr_crawler' ], 1 ) == 'B' ) {
				continue;
			}
			if ( substr( $row[ 'res' ], $this->_summary[ 'curr_crawler' ], 1 ) == 'N' ) {
				continue;
			}
			$curls[ $row[ 'id' ] ] = curl_init();

			// Append URL
			$url = $row[ 'url' ];
			if ( $this->conf( Base::O_CRAWLER_DROP_DOMAIN ) ) {
				$url = $this->_crawler_conf[ 'base' ] . $row[ 'url' ];
			}
			curl_setopt( $curls[ $row[ 'id' ] ], CURLOPT_URL, $url );
			Debug2::debug( '🐞 Crawling [url] ' . $url . ( $url == $row[ 'url' ] ? '' : ' [ori] ' . $row[ 'url' ] ) );

			curl_setopt_array( $curls[ $row[ 'id' ] ], $options );

			curl_multi_add_handle( $mh, $curls[ $row[ 'id' ] ] );
		}

		// execute curl
		if ( $curls ) {
			$last_start_time = null;
			do {
				curl_multi_exec( $mh, $last_start_time );
				if ( curl_multi_select( $mh ) == -1 ) {
					usleep( 1 );
				}
			} while ( $last_start_time > 0 );
		}

		// curl done
		$ret = array();
		foreach ( $rows as $row ) {
			if ( substr( $row[ 'res' ], $this->_summary[ 'curr_crawler' ], 1 ) == 'B' ) {
				continue;
			}
			if ( substr( $row[ 'res' ], $this->_summary[ 'curr_crawler' ], 1 ) == 'N' ) {
				continue;
			}

			$ch = $curls[ $row[ 'id' ] ];

			// Parse header
			$header_size = curl_getinfo( $ch, CURLINFO_HEADER_SIZE );
			$content = curl_multi_getcontent( $ch );
			$header = substr( $content, 0, $header_size );

			$ret[ $row[ 'id' ] ] = array(
				'header' => $header,
				'code'	=> curl_getinfo( $ch, CURLINFO_HTTP_CODE ),
			);

			curl_multi_remove_handle( $mh, $ch );
			curl_close( $ch );
		}
		curl_multi_close( $mh );

		return $ret;
	}

	/**
	 * Check returned curl header to find if cached or not
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _status_parse( $header, $code ) {
		if ( $code == 201 ) {
			return 'H';
		}

		if ( stripos( $header, 'X-Litespeed-Cache-Control: no-cache' ) !== false ) {
			return 'N'; // Blacklist
		}

		$_cache_headers = array(
			'x-litespeed-cache',
			'x-lsadc-cache',
			'x-qc-cache',
		);

		foreach ( $_cache_headers as $_header ) {
			if ( stripos( $header, $_header ) !== false ) {
				if ( stripos( $header, $_header . ': miss' ) !== false ) {
					return 'M'; // Miss
				}
				return 'H'; // Hit
			}
		}

		return 'B'; // Blacklist
	}

	/**
	 * Get curl_options
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _get_curl_options( $crawler_only = false ) {
		$options = array(
			CURLOPT_RETURNTRANSFER => true,
			CURLOPT_HEADER => true,
			CURLOPT_CUSTOMREQUEST => 'GET',
			CURLOPT_FOLLOWLOCATION => false,
			CURLOPT_ENCODING => 'gzip',
			CURLOPT_CONNECTTIMEOUT => 10,
			CURLOPT_TIMEOUT => $this->conf( Base::O_CRAWLER_TIMEOUT ), // Larger timeout to avoid incorrect blacklist addition #900171
			CURLOPT_SSL_VERIFYHOST => 0,
			CURLOPT_SSL_VERIFYPEER => false,
			CURLOPT_NOBODY => false,
			CURLOPT_HTTPHEADER => $this->_crawler_conf[ 'headers' ],
		);
		$options[ CURLOPT_HTTPHEADER ][] = 'Cache-Control: max-age=0';

		/**
		 * Try to enable http2 connection (only available since PHP7+)
		 * @since  1.9.1
		 * @since  2.2.7 Commented due to cause no-cache issue
		 * @since  2.9.1+ Fixed wrongly usage of CURL_HTTP_VERSION_1_1 const
		 */
		$options[ CURLOPT_HTTP_VERSION ] = CURL_HTTP_VERSION_1_1;
		// 	$options[ CURL_HTTP_VERSION_2 ] = 1;

		// IP resolve
		if ( $this->conf( Base::O_SERVER_IP ) ) {
			Utility::compatibility();
			if ( ( $this->conf( Base::O_CRAWLER_DROP_DOMAIN ) || ! $crawler_only ) && $this->_crawler_conf[ 'base' ] ) {
				// Resolve URL to IP
				$parsed_url = parse_url( $this->_crawler_conf[ 'base' ] );

				if ( ! empty( $parsed_url[ 'host' ] ) ) {
					$dom = $parsed_url[ 'host' ];
					$port = $parsed_url[ 'scheme' ] == 'https' ? '443' : '80';
					$url = $dom . ':' . $port . ':' . $this->conf( Base::O_SERVER_IP );

					$options[ CURLOPT_RESOLVE ] = array( $url );
					$options[ CURLOPT_DNS_USE_GLOBAL_CACHE ] = false;
				}
			}
		}

		// if is walker
		// $options[ CURLOPT_FRESH_CONNECT ] = true;

		// Referer
		if ( isset( $_SERVER[ 'HTTP_HOST' ] ) && isset( $_SERVER[ 'REQUEST_URI' ] ) ) {
			$options[ CURLOPT_REFERER ] = 'http://' . $_SERVER[ 'HTTP_HOST' ] . $_SERVER[ 'REQUEST_URI' ];
		}

		// User Agent
		if ( $crawler_only ) {
			if ( strpos( $this->_crawler_conf[ 'ua' ], Crawler::FAST_USER_AGENT ) !== 0 ) {
				$this->_crawler_conf[ 'ua' ] = Crawler::FAST_USER_AGENT . ' ' . $this->_crawler_conf[ 'ua' ];
			}
		}
		$options[ CURLOPT_USERAGENT ] = $this->_crawler_conf[ 'ua' ];

		/**
		 * Append hash to cookie for validation
		 * @since  1.9.1
		 */
		if ( $crawler_only ) {
			$this->_crawler_conf[ 'cookies' ][ 'litespeed_hash' ] = Router::get_hash();
		}

		// Cookies
		$cookies = array();
		foreach ( $this->_crawler_conf[ 'cookies' ] as $k => $v ) {
			if ( ! $v ) {
				continue;
			}
			$cookies[] = $k . '=' . urlencode( $v );
		}
		if ( $cookies ) {
			$options[ CURLOPT_COOKIE ] = implode( '; ', $cookies );
		}

		return $options;
	}

	/**
	 * Self curl to get HTML content
	 *
	 * @since  3.3
	 */
	public function self_curl( $url, $ua, $uid = false, $accept = false ) { // $accept not in use yet
		$this->_crawler_conf[ 'base' ] = home_url();
		$this->_crawler_conf[ 'ua' ] = $ua;
		if ( $accept ) {
			$this->_crawler_conf[ 'headers' ] = array( 'Accept: ' . $accept );
		}
		if ( $uid ) {
			$this->_crawler_conf[ 'cookies' ][ 'litespeed_role' ] = $uid;
			$this->_crawler_conf[ 'cookies' ][ 'litespeed_hash' ] = Router::get_hash();
		}

		$options = $this->_get_curl_options();
		$options[ CURLOPT_HEADER ] = false;
		$options[ CURLOPT_FOLLOWLOCATION ] = true;

		$ch = curl_init();
		curl_setopt_array( $ch, $options );
		curl_setopt( $ch, CURLOPT_URL, $url );
		$result = curl_exec( $ch );
		curl_close( $ch );

		return $result;
	}

	/**
	 * Terminate crawling
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _terminate_running() {
		$this->_map_status_list = $this->cls( 'Crawler_Map' )->save_map_status( $this->_map_status_list, $this->_summary[ 'curr_crawler' ] );

		if ( $this->_end_reason == 'end' ) { // Current crawler is fully done
			// $end_reason = sprintf( __( 'Crawler %s reached end of sitemap file.', 'litespeed-cache' ), '#' . ( $this->_summary['curr_crawler'] + 1 ) );
			$this->_summary[ 'curr_crawler' ]++; // Jump to next cralwer
			// $this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array(); // reset this at next crawl time
			$this->_summary[ 'last_pos' ] = 0;// reset last position
			$this->_summary[ 'last_crawler_total_cost' ] = time() - $this->_summary[ 'curr_crawler_beginning_time' ];
			$count_crawlers = count( $this->list_crawlers() );
			if ( $this->_summary[ 'curr_crawler' ] >= $count_crawlers ) {
				Debug2::debug( '🐞 _terminate_running Touched end, whole crawled. Reload crawler!' );
				$this->_summary[ 'curr_crawler' ] = 0;
				// $this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
				$this->_summary[ 'done' ] = 'touchedEnd';// log done status
				$this->_summary[ 'last_full_time_cost' ] = time() - $this->_summary[ 'this_full_beginning_time' ];
			}
		}
		$this->_summary[ 'last_status' ] = 'stopped';
		$this->_summary[ 'is_running' ] = 0;
		$this->_summary[ 'end_reason' ] = $this->_end_reason;
		self::save_summary();
	}

	/**
	 * List all crawlers ( tagA => [ valueA => titleA, ... ] ...)
	 *
	 * @since    1.9.1
	 * @access   public
	 */
	public function list_crawlers() {
		if ( $this->_crawlers ) {
			return $this->_crawlers;
		}

		$crawler_factors = array();

		// Add default Guest crawler
		$crawler_factors[ 'uid' ] = array( 0 => __( 'Guest', 'litespeed-cache' ) );

		// WebP on/off
		if ( $this->conf( Base::O_IMG_OPTM_WEBP_REPLACE ) ) {
			$crawler_factors[ 'webp' ] = array( 1 => 'WebP', 0 => '' );
		}

		// Guest Mode on/off
		if ( $this->conf( Base::O_GUEST ) ) {
			$vary_name = $this->cls( 'Vary' )->get_vary_name();
			$vary_val = 'guest_mode:1';
			if ( ! defined( 'LSCWP_LOG' ) ) {
				$vary_val = md5( $this->conf( Base::HASH ) . $vary_val );
			}
			$crawler_factors[ 'cookie:' . $vary_name ] = array( $vary_val => '', '_null' => '<font data-balloon-pos="up" aria-label="Guest Mode">👒</font>' );
		}

		// Mobile crawler
		if ( $this->conf( Base::O_CACHE_MOBILE ) ) {
			$crawler_factors[ 'mobile' ] = array( 1 => '<font data-balloon-pos="up" aria-label="Mobile">📱</font>', 0 => '' );
		}

		// Get roles set
		// List all roles
		foreach ( $this->conf( Base::O_CRAWLER_ROLES ) as $v ) {
			$role_title = '';
			$udata = get_userdata( $v );
			if ( isset( $udata->roles ) && is_array( $udata->roles ) ) {
				$tmp = array_values( $udata->roles );
				$role_title = array_shift( $tmp );
			}
			if ( ! $role_title ) {
				continue;
			}

			$crawler_factors[ 'uid' ][ $v ] = ucfirst( $role_title );
		}

		// Cookie crawler
		foreach ( $this->conf( Base::O_CRAWLER_COOKIES ) as $v ) {
			if ( empty( $v[ 'name' ] ) ) {
				continue;
			}

			$this_cookie_key = 'cookie:' . $v[ 'name' ];

			$crawler_factors[ $this_cookie_key ] = array();

			foreach ( $v[ 'vals' ] as $v2 ) {
				$crawler_factors[ $this_cookie_key ][ $v2 ] = $v2 == '_null' ? '' : '<font data-balloon-pos="up" aria-label="Cookie">🍪</font>' . esc_html( $v[ 'name' ] ) . '=' . esc_html( $v2 );
			}
		}

		// Crossing generate the crawler list
		$this->_crawlers = $this->_recursive_build_crawler( $crawler_factors );

		return $this->_crawlers;
	}

	/**
	 * Build a crawler list recursively
	 *
	 * @since 2.8
	 * @access private
	 */
	private function _recursive_build_crawler( $crawler_factors, $group = array(), $i = 0 ) {
		$current_factor = array_keys( $crawler_factors );
		$current_factor = $current_factor[ $i ];

		$if_touch_end = $i + 1 >= count( $crawler_factors );

		$final_list = array();

		foreach ( $crawler_factors[ $current_factor ] as $k => $v ) {

			// Don't alter $group bcos of loop usage
			$item = $group;
			$item[ 'title' ] = ! empty( $group[ 'title' ] ) ? $group[ 'title' ] : '';
			if ( $v ) {
				if ( $item[ 'title' ] ) {
					$item[ 'title' ] .= ' - ';
				}
				$item[ 'title' ] .= $v;
			}
			$item[ $current_factor ] = $k;

			if ( $if_touch_end ) {
				$final_list[] = $item;
			}
			else {
				// Inception: next layer
				$final_list = array_merge( $final_list, $this->_recursive_build_crawler( $crawler_factors, $item, $i + 1 ) );
			}

		}

		return $final_list;
	}

	/**
	 * Return crawler meta file
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function json_path() {
		if ( ! file_exists( LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta ) ) {
			return false;
		}

		return LITESPEED_STATIC_URL . '/crawler/' . $this->_sitemeta;
	}


	/**
	 * Create reset pos file
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function reset_pos() {
		File::save( $this->_resetfile, time() , true );

		$this->_summary[ 'is_running' ] = 0;
		self::save_summary();
	}

	/**
	 * Display status based by matching crawlers order
	 *
	 * @since  3.0
	 * @access public
	 */
	public function display_status( $status_row, $reason_set ) {
		if ( ! $status_row ) {
			return '';
		}

		$_status_list = array(
			'-' => 'default',
			'M' => 'primary',
			'H' => 'success',
			'B' => 'danger',
			'N' => 'warning',
		);

		$reason_set = explode( ',', $reason_set );

		$status = '';
		foreach ( str_split( $status_row ) as $k => $v ) {
			$reason = $reason_set[ $k ];
			if ( $reason == 'Man' ) {
				$reason = __( 'Manually added to blocklist', 'litespeed-cache' );
			}
			if ( $reason == 'Existed' ) {
				$reason = __( 'Previously existed in blocklist', 'litespeed-cache' );
			}
			if ( $reason ) {
				$reason = 'data-balloon-pos="up" aria-label="' . $reason . '"';
			}
			$status .= '<i class="litespeed-dot litespeed-bg-' . $_status_list[ $v ] . '" ' . $reason . '>' . ( $k + 1 ) . '</i>';
		}

		return $status;
	}

	/**
	 * Output info and exit
	 *
	 * @since    1.1.0
	 * @access protected
	 * @param  string $error Error info
	 */
	protected function output($msg) {
		if ( defined('DOING_CRON') ) {
			echo $msg;
			// exit();
		}
		else {
			echo "<script>alert('" . htmlspecialchars($msg) . "');</script>";
			// exit;
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_REFRESH_MAP:
				$this->cls( 'Crawler_Map' )->gen();
				break;

			case self::TYPE_EMPTY:
				$this->cls( 'Crawler_Map' )->empty_map();
				break;

			case self::TYPE_BLACKLIST_EMPTY:
				$this->cls( 'Crawler_Map' )->blacklist_empty();
				break;

			case self::TYPE_BLACKLIST_DEL:
				if ( ! empty( $_GET[ 'id' ] ) ) {
					$this->cls( 'Crawler_Map' )->blacklist_del( $_GET[ 'id' ] );
				}
				break;

			case self::TYPE_BLACKLIST_ADD:
				if ( ! empty( $_GET[ 'id' ] ) ) {
					$this->cls( 'Crawler_Map' )->blacklist_add( $_GET[ 'id' ] );
				}
				break;

			// Handle the ajax request to proceed crawler manually by admin
			case self::TYPE_START:
				self::start( true );
				break;

			case self::TYPE_RESET:
				$this->reset_pos();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The base consts
 *
 * @since      	3.7
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Base extends Root {
	// This is redundant since v3.0
	// New conf items are `litespeed.key`
	const OPTION_NAME = 'litespeed-cache-conf';

	const _CACHE = '_cache'; // final cache status from setting

	## -------------------------------------------------- ##
	## --------------     	General	    ----------------- ##
	## -------------------------------------------------- ##
	const _VER 	= '_version'; // Not set-able
	const HASH 		= 'hash'; // Not set-able
	const O_AUTO_UPGRADE 	= 'auto_upgrade';
	const O_API_KEY 		= 'api_key';
	const O_SERVER_IP 		= 'server_ip';
	const O_GUEST 			= 'guest';
	const O_GUEST_OPTM		= 'guest_optm';
	const O_NEWS 			= 'news';
	const O_GUEST_UAS 		= 'guest_uas';
	const O_GUEST_IPS 		= 'guest_ips';

	## -------------------------------------------------- ##
	## --------------		Cache 		----------------- ##
	## -------------------------------------------------- ##
	const O_CACHE 					= 'cache';
	const O_CACHE_PRIV 				= 'cache-priv';
	const O_CACHE_COMMENTER 		= 'cache-commenter';
	const O_CACHE_REST 				= 'cache-rest';
	const O_CACHE_PAGE_LOGIN		= 'cache-page_login';
	const O_CACHE_FAVICON 			= 'cache-favicon';
	const O_CACHE_RES 				= 'cache-resources';
	const O_CACHE_MOBILE 			= 'cache-mobile';
	const O_CACHE_MOBILE_RULES		= 'cache-mobile_rules';
	const O_CACHE_BROWSER 			= 'cache-browser';
	const O_CACHE_EXC_USERAGENTS 	= 'cache-exc_useragents';
	const O_CACHE_EXC_COOKIES 		= 'cache-exc_cookies';
	const O_CACHE_EXC_QS 			= 'cache-exc_qs';
	const O_CACHE_EXC_CAT 			= 'cache-exc_cat';
	const O_CACHE_EXC_TAG 			= 'cache-exc_tag';
	const O_CACHE_FORCE_URI 		= 'cache-force_uri';
	const O_CACHE_FORCE_PUB_URI		= 'cache-force_pub_uri';
	const O_CACHE_PRIV_URI 			= 'cache-priv_uri';
	const O_CACHE_EXC 				= 'cache-exc';
	const O_CACHE_EXC_ROLES 		= 'cache-exc_roles';
	const O_CACHE_DROP_QS 			= 'cache-drop_qs';
	const O_CACHE_TTL_PUB 			= 'cache-ttl_pub';
	const O_CACHE_TTL_PRIV 			= 'cache-ttl_priv';
	const O_CACHE_TTL_FRONTPAGE 	= 'cache-ttl_frontpage';
	const O_CACHE_TTL_FEED 			= 'cache-ttl_feed';
	const O_CACHE_TTL_REST 			= 'cache-ttl_rest';
	const O_CACHE_TTL_STATUS 		= 'cache-ttl_status';
	const O_CACHE_TTL_BROWSER 		= 'cache-ttl_browser';
	const O_CACHE_LOGIN_COOKIE 		= 'cache-login_cookie';
	const O_CACHE_VARY_GROUP 		= 'cache-vary_group';

	## -------------------------------------------------- ##
	## --------------		Purge 		----------------- ##
	## -------------------------------------------------- ##
	const O_PURGE_ON_UPGRADE 		= 'purge-upgrade';
	const O_PURGE_STALE 			= 'purge-stale';
	const O_PURGE_POST_ALL 			= 'purge-post_all';
	const O_PURGE_POST_FRONTPAGE 	= 'purge-post_f';
	const O_PURGE_POST_HOMEPAGE 	= 'purge-post_h';
	const O_PURGE_POST_PAGES 		= 'purge-post_p';
	const O_PURGE_POST_PAGES_WITH_RECENT_POSTS = 'purge-post_pwrp';
	const O_PURGE_POST_AUTHOR 		= 'purge-post_a';
	const O_PURGE_POST_YEAR 		= 'purge-post_y';
	const O_PURGE_POST_MONTH 		= 'purge-post_m';
	const O_PURGE_POST_DATE 		= 'purge-post_d';
	const O_PURGE_POST_TERM 		= 'purge-post_t'; // include category|tag|tax
	const O_PURGE_POST_POSTTYPE 	= 'purge-post_pt';
	const O_PURGE_TIMED_URLS 		= 'purge-timed_urls';
	const O_PURGE_TIMED_URLS_TIME 	= 'purge-timed_urls_time';
	const O_PURGE_HOOK_ALL 			= 'purge-hook_all';

	## -------------------------------------------------- ##
	## --------------     	 ESI	    ----------------- ##
	## -------------------------------------------------- ##
	const O_ESI 				= 'esi';
	const O_ESI_CACHE_ADMBAR 	= 'esi-cache_admbar';
	const O_ESI_CACHE_COMMFORM 	= 'esi-cache_commform';
	const O_ESI_NONCE 			= 'esi-nonce';

	## -------------------------------------------------- ##
	## --------------     Utilities	    ----------------- ##
	## -------------------------------------------------- ##
	const O_UTIL_INSTANT_CLICK 		= 'util-instant_click';
	const O_UTIL_NO_HTTPS_VARY 		= 'util-no_https_vary';

	## -------------------------------------------------- ##
	## --------------		Debug 		----------------- ##
	## -------------------------------------------------- ##
	const O_DEBUG_DISABLE_ALL 			= 'debug-disable_all';
	const O_DEBUG 						= 'debug';
	const O_DEBUG_IPS 					= 'debug-ips';
	const O_DEBUG_LEVEL 				= 'debug-level';
	const O_DEBUG_FILESIZE 				= 'debug-filesize';
	const O_DEBUG_COOKIE 				= 'debug-cookie';
	const O_DEBUG_COLLAPS_QS 			= 'debug-collaps_qs';
	const O_DEBUG_INC 					= 'debug-inc';
	const O_DEBUG_EXC 					= 'debug-exc';

	## -------------------------------------------------- ##
	## --------------	   DB Optm  	----------------- ##
	## -------------------------------------------------- ##
	const O_DB_OPTM_REVISIONS_MAX 		= 'db_optm-revisions_max';
	const O_DB_OPTM_REVISIONS_AGE 		= 'db_optm-revisions_age';

	## -------------------------------------------------- ##
	## --------------	  HTML Optm 	----------------- ##
	## -------------------------------------------------- ##
	const O_OPTM_CSS_MIN 			= 'optm-css_min';
	const O_OPTM_CSS_COMB 			= 'optm-css_comb';
	const O_OPTM_CSS_COMB_EXT_INL	= 'optm-css_comb_ext_inl';
	const O_OPTM_UCSS 				= 'optm-ucss';
	const O_OPTM_UCSS_INLINE 		= 'optm-ucss_inline';
	const O_OPTM_UCSS_WHITELIST 	= 'optm-ucss_whitelist';
	const O_OPTM_UCSS_EXC 			= 'optm-ucss_exc';
	const O_OPTM_CSS_EXC 			= 'optm-css_exc';
	const O_OPTM_JS_MIN 			= 'optm-js_min';
	const O_OPTM_JS_COMB 			= 'optm-js_comb';
	const O_OPTM_JS_COMB_EXT_INL	= 'optm-js_comb_ext_inl';
	const O_OPTM_JS_EXC 			= 'optm-js_exc';
	const O_OPTM_HTML_MIN 			= 'optm-html_min';
	const O_OPTM_HTML_LAZY 			= 'optm-html_lazy';
	const O_OPTM_QS_RM 				= 'optm-qs_rm';
	const O_OPTM_GGFONTS_RM 		= 'optm-ggfonts_rm';
	const O_OPTM_CSS_ASYNC 			= 'optm-css_async';
	const O_OPTM_CCSS_PER_URL 		= 'optm-ccss_per_url';
	const O_OPTM_CCSS_SEP_POSTTYPE 	= 'optm-ccss_sep_posttype';
	const O_OPTM_CCSS_SEP_URI 		= 'optm-ccss_sep_uri';
	const O_OPTM_CSS_ASYNC_INLINE 	= 'optm-css_async_inline';
	const O_OPTM_CSS_FONT_DISPLAY 	= 'optm-css_font_display';
	const O_OPTM_JS_DEFER 			= 'optm-js_defer';
	const O_OPTM_LOCALIZE			= 'optm-localize';
	const O_OPTM_LOCALIZE_DOMAINS	= 'optm-localize_domains';
	const O_OPTM_EMOJI_RM 			= 'optm-emoji_rm';
	const O_OPTM_NOSCRIPT_RM 		= 'optm-noscript_rm';
	const O_OPTM_GGFONTS_ASYNC 		= 'optm-ggfonts_async';
	const O_OPTM_EXC_ROLES 			= 'optm-exc_roles';
	const O_OPTM_CCSS_CON			= 'optm-ccss_con';
	const O_OPTM_JS_DEFER_EXC 		= 'optm-js_defer_exc';
	const O_OPTM_GM_JS_EXC 			= 'optm-gm_js_exc';
	const O_OPTM_DNS_PREFETCH		= 'optm-dns_prefetch';
	const O_OPTM_DNS_PREFETCH_CTRL	= 'optm-dns_prefetch_ctrl';
	const O_OPTM_EXC 				= 'optm-exc';
	const O_OPTM_GUEST_ONLY 		= 'optm-guest_only';

	## -------------------------------------------------- ##
	## --------------	Object Cache	----------------- ##
	## -------------------------------------------------- ##
	const O_OBJECT				 = 'object';
	const O_OBJECT_KIND			 = 'object-kind';
	const O_OBJECT_HOST			 = 'object-host';
	const O_OBJECT_PORT			 = 'object-port';
	const O_OBJECT_LIFE			 = 'object-life';
	const O_OBJECT_PERSISTENT	 = 'object-persistent';
	const O_OBJECT_ADMIN		 = 'object-admin';
	const O_OBJECT_TRANSIENTS	 = 'object-transients';
	const O_OBJECT_DB_ID		 = 'object-db_id';
	const O_OBJECT_USER			 = 'object-user';
	const O_OBJECT_PSWD			 = 'object-pswd';
	const O_OBJECT_GLOBAL_GROUPS = 'object-global_groups';
	const O_OBJECT_NON_PERSISTENT_GROUPS = 'object-non_persistent_groups';

	## -------------------------------------------------- ##
	## --------------	Discussion		----------------- ##
	## -------------------------------------------------- ##
	const O_DISCUSS_AVATAR_CACHE		= 'discuss-avatar_cache';
	const O_DISCUSS_AVATAR_CRON			= 'discuss-avatar_cron';
	const O_DISCUSS_AVATAR_CACHE_TTL	= 'discuss-avatar_cache_ttl';

	## -------------------------------------------------- ##
	## --------------		 Media 		----------------- ##
	## -------------------------------------------------- ##
	const O_MEDIA_LAZY 							= 'media-lazy';
	const O_MEDIA_LAZY_PLACEHOLDER 				= 'media-lazy_placeholder';
	const O_MEDIA_PLACEHOLDER_RESP 				= 'media-placeholder_resp';
	const O_MEDIA_PLACEHOLDER_RESP_COLOR		= 'media-placeholder_resp_color';
	const O_MEDIA_PLACEHOLDER_RESP_SVG			= 'media-placeholder_resp_svg';
	const O_MEDIA_LQIP							= 'media-lqip';
	const O_MEDIA_LQIP_QUAL						= 'media-lqip_qual';
	const O_MEDIA_LQIP_MIN_W					= 'media-lqip_min_w';
	const O_MEDIA_LQIP_MIN_H					= 'media-lqip_min_h';
	const O_MEDIA_PLACEHOLDER_RESP_ASYNC		= 'media-placeholder_resp_async';
	const O_MEDIA_IFRAME_LAZY 					= 'media-iframe_lazy';
	const O_MEDIA_ADD_MISSING_SIZES 			= 'media-add_missing_sizes';
	const O_MEDIA_LAZY_EXC 						= 'media-lazy_exc';
	const O_MEDIA_LAZY_CLS_EXC 					= 'media-lazy_cls_exc';
	const O_MEDIA_LAZY_PARENT_CLS_EXC 			= 'media-lazy_parent_cls_exc';
	const O_MEDIA_IFRAME_LAZY_CLS_EXC 			= 'media-iframe_lazy_cls_exc';
	const O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC 	= 'media-iframe_lazy_parent_cls_exc';
	const O_MEDIA_LAZY_URI_EXC					= 'media-lazy_uri_exc';
	const O_MEDIA_LQIP_EXC						= 'media-lqip_exc';

	## -------------------------------------------------- ##
	## --------------	  Image Optm 	----------------- ##
	## -------------------------------------------------- ##
	const O_IMG_OPTM_AUTO 				= 'img_optm-auto';
	const O_IMG_OPTM_CRON 				= 'img_optm-cron';
	const O_IMG_OPTM_ORI 				= 'img_optm-ori';
	const O_IMG_OPTM_RM_BKUP 			= 'img_optm-rm_bkup';
	const O_IMG_OPTM_WEBP 				= 'img_optm-webp';
	const O_IMG_OPTM_LOSSLESS 			= 'img_optm-lossless';
	const O_IMG_OPTM_EXIF 				= 'img_optm-exif';
	const O_IMG_OPTM_WEBP_REPLACE 		= 'img_optm-webp_replace';
	const O_IMG_OPTM_WEBP_ATTR 			= 'img_optm-webp_attr';
	const O_IMG_OPTM_WEBP_REPLACE_SRCSET = 'img_optm-webp_replace_srcset';
	const O_IMG_OPTM_JPG_QUALITY 		= 'img_optm-jpg_quality';

	## -------------------------------------------------- ##
	## --------------		Crawler		----------------- ##
	## -------------------------------------------------- ##
	const O_CRAWLER 				= 'crawler';
	const O_CRAWLER_USLEEP 			= 'crawler-usleep';
	const O_CRAWLER_RUN_DURATION 	= 'crawler-run_duration';
	const O_CRAWLER_RUN_INTERVAL 	= 'crawler-run_interval';
	const O_CRAWLER_CRAWL_INTERVAL 	= 'crawler-crawl_interval';
	const O_CRAWLER_THREADS 		= 'crawler-threads';
	const O_CRAWLER_TIMEOUT 		= 'crawler-timeout';
	const O_CRAWLER_LOAD_LIMIT 		= 'crawler-load_limit';
	const O_CRAWLER_SITEMAP 		= 'crawler-sitemap';
	const O_CRAWLER_DROP_DOMAIN		= 'crawler-drop_domain';
	const O_CRAWLER_MAP_TIMEOUT		= 'crawler-map_timeout';
	const O_CRAWLER_ROLES 			= 'crawler-roles';
	const O_CRAWLER_COOKIES 		= 'crawler-cookies';

	## -------------------------------------------------- ##
	## --------------		 Misc 		----------------- ##
	## -------------------------------------------------- ##
	const O_MISC_HEARTBEAT_FRONT		= 'misc-heartbeat_front';
	const O_MISC_HEARTBEAT_FRONT_TTL	= 'misc-heartbeat_front_ttl';
	const O_MISC_HEARTBEAT_BACK			= 'misc-heartbeat_back';
	const O_MISC_HEARTBEAT_BACK_TTL		= 'misc-heartbeat_back_ttl';
	const O_MISC_HEARTBEAT_EDITOR		= 'misc-heartbeat_editor';
	const O_MISC_HEARTBEAT_EDITOR_TTL	= 'misc-heartbeat_editor_ttl';

	## -------------------------------------------------- ##
	## --------------		 CDN 		----------------- ##
	## -------------------------------------------------- ##
	const O_CDN 				= 'cdn';
	const O_CDN_ORI 			= 'cdn-ori';
	const O_CDN_ORI_DIR 		= 'cdn-ori_dir';
	const O_CDN_EXC 			= 'cdn-exc';
	const O_CDN_QUIC 			= 'cdn-quic';
	const O_CDN_CLOUDFLARE 		= 'cdn-cloudflare';
	const O_CDN_CLOUDFLARE_EMAIL= 'cdn-cloudflare_email';
	const O_CDN_CLOUDFLARE_KEY 	= 'cdn-cloudflare_key';
	const O_CDN_CLOUDFLARE_NAME = 'cdn-cloudflare_name';
	const O_CDN_CLOUDFLARE_ZONE = 'cdn-cloudflare_zone';
	const O_CDN_MAPPING 		= 'cdn-mapping';
	const O_CDN_ATTR 			= 'cdn-attr';

	const NETWORK_O_USE_PRIMARY = 'use_primary_settings';

	/*** Other consts ***/
	const O_GUIDE = 'litespeed-guide'; // Array of each guidance tag as key, step as val //xx todo: may need to remove

	// Server variables
	const ENV_CRAWLER_USLEEP = 'CRAWLER_USLEEP';
	const ENV_CRAWLER_LOAD_LIMIT = 'CRAWLER_LOAD_LIMIT';
	const ENV_CRAWLER_LOAD_LIMIT_ENFORCE = 'CRAWLER_LOAD_LIMIT_ENFORCE';

	// const O_FAVICON = 'litespeed-cache-favicon';

	const CRWL_COOKIE_NAME 		= 'name';
	const CRWL_COOKIE_VALS 		= 'vals';

	const CDN_MAPPING_URL 		= 'url';
	const CDN_MAPPING_INC_IMG 	= 'inc_img';
	const CDN_MAPPING_INC_CSS 	= 'inc_css';
	const CDN_MAPPING_INC_JS 	= 'inc_js';
	const CDN_MAPPING_FILETYPE 	= 'filetype';

	const VAL_OFF 	= 0;
	const VAL_ON 	= 1;
	const VAL_ON2 	= 2;

	/* This is for API hook usage */
	const IMG_OPTM_BM_ORI 		= 1;
	const IMG_OPTM_BM_WEBP 		= 2;
	const IMG_OPTM_BM_LOSSLESS 	= 4;
	const IMG_OPTM_BM_EXIF 		= 8;

	/* Site related options (Will not overwrite other sites' config) */
	protected static $SINGLE_SITE_OPTIONS = array(
		self::O_API_KEY,
		self::O_CRAWLER,
		self::O_CRAWLER_SITEMAP,
		self::O_CRAWLER_DROP_DOMAIN,
		self::O_CDN,
		self::O_CDN_ORI,
		self::O_CDN_ORI_DIR,
		self::O_CDN_EXC,
		self::O_CDN_QUIC,
		self::O_CDN_CLOUDFLARE,
		self::O_CDN_CLOUDFLARE_EMAIL,
		self::O_CDN_CLOUDFLARE_KEY,
		self::O_CDN_CLOUDFLARE_NAME,
		self::O_CDN_CLOUDFLARE_ZONE,
		self::O_CDN_MAPPING,
		self::O_CDN_ATTR,
	);

	protected static $_default_options = array(
		self::_VER 			=> '',
		self::HASH				=> '',
		self::O_AUTO_UPGRADE 	=> false,
		self::O_API_KEY 		=> '',
		self::O_SERVER_IP 		=> '',
		self::O_GUEST 			=> false,
		self::O_GUEST_OPTM 		=> false,
		self::O_NEWS 			=> false,
		self::O_GUEST_UAS 		=> array(),
		self::O_GUEST_IPS 		=> array(),

		// Cache
		self::O_CACHE 					=> false,
		self::O_CACHE_PRIV 				=> false,
		self::O_CACHE_COMMENTER 		=> false,
		self::O_CACHE_REST 				=> false,
		self::O_CACHE_PAGE_LOGIN 		=> false,
		self::O_CACHE_FAVICON 			=> false,
		self::O_CACHE_RES 				=> false,
		self::O_CACHE_MOBILE 			=> false,
		self::O_CACHE_MOBILE_RULES 		=> array(),
		self::O_CACHE_BROWSER 			=> false,
		self::O_CACHE_EXC_USERAGENTS 	=> array(),
		self::O_CACHE_EXC_COOKIES 		=> array(),
		self::O_CACHE_EXC_QS 			=> array(),
		self::O_CACHE_EXC_CAT 			=> array(),
		self::O_CACHE_EXC_TAG 			=> array(),
		self::O_CACHE_FORCE_URI			=> array(),
		self::O_CACHE_FORCE_PUB_URI		=> array(),
		self::O_CACHE_PRIV_URI			=> array(),
		self::O_CACHE_EXC 				=> array(),
		self::O_CACHE_EXC_ROLES 		=> array(),
		self::O_CACHE_DROP_QS 			=> array(),
		self::O_CACHE_TTL_PUB 			=> 0,
		self::O_CACHE_TTL_PRIV 			=> 0,
		self::O_CACHE_TTL_FRONTPAGE 	=> 0,
		self::O_CACHE_TTL_FEED 			=> 0,
		self::O_CACHE_TTL_REST 			=> 0,
		self::O_CACHE_TTL_BROWSER 		=> 0,
		self::O_CACHE_TTL_STATUS 		=> array(),
		self::O_CACHE_LOGIN_COOKIE 		=> '',
		self::O_CACHE_VARY_GROUP		=> array(),

		// Purge
		self::O_PURGE_ON_UPGRADE 		=> false,
		self::O_PURGE_STALE 			=> false,
		self::O_PURGE_POST_ALL			=> false,
		self::O_PURGE_POST_FRONTPAGE	=> false,
		self::O_PURGE_POST_HOMEPAGE		=> false,
		self::O_PURGE_POST_PAGES		=> false,
		self::O_PURGE_POST_PAGES_WITH_RECENT_POSTS	=> false,
		self::O_PURGE_POST_AUTHOR		=> false,
		self::O_PURGE_POST_YEAR			=> false,
		self::O_PURGE_POST_MONTH		=> false,
		self::O_PURGE_POST_DATE			=> false,
		self::O_PURGE_POST_TERM			=> false,
		self::O_PURGE_POST_POSTTYPE		=> false,
		self::O_PURGE_TIMED_URLS 		=> array(),
		self::O_PURGE_TIMED_URLS_TIME 	=> '',
		self::O_PURGE_HOOK_ALL			=> array(),

		// ESI
		self::O_ESI 	 				=> false,
		self::O_ESI_CACHE_ADMBAR 	 	=> false,
		self::O_ESI_CACHE_COMMFORM 	 	=> false,
		self::O_ESI_NONCE 			 	=> array(),

		// Util
		self::O_UTIL_INSTANT_CLICK 		=> false,
		self::O_UTIL_NO_HTTPS_VARY 		=> false,

		// Debug
		self::O_DEBUG_DISABLE_ALL 		=> false,
		self::O_DEBUG 					=> false,
		self::O_DEBUG_IPS 				=> array(),
		self::O_DEBUG_LEVEL 			=> false,
		self::O_DEBUG_FILESIZE 			=> 0,
		self::O_DEBUG_COOKIE 			=> false,
		self::O_DEBUG_COLLAPS_QS 		=> false,
		self::O_DEBUG_INC 				=> array(),
		self::O_DEBUG_EXC 				=> array(),

		// DB Optm
		self::O_DB_OPTM_REVISIONS_MAX 	=> 0,
		self::O_DB_OPTM_REVISIONS_AGE 	=> 0,

		// HTML Optm
		self::O_OPTM_CSS_MIN 			=> false,
		self::O_OPTM_CSS_COMB 			=> false,
		self::O_OPTM_CSS_COMB_EXT_INL	=> false,
		self::O_OPTM_UCSS 				=> false,
		self::O_OPTM_UCSS_INLINE 		=> false,
		self::O_OPTM_UCSS_WHITELIST		=> array(),
		self::O_OPTM_UCSS_EXC			=> array(),
		self::O_OPTM_CSS_EXC 			=> array(),
		self::O_OPTM_JS_MIN 			=> false,
		self::O_OPTM_JS_COMB 			=> false,
		self::O_OPTM_JS_COMB_EXT_INL	=> false,
		self::O_OPTM_JS_EXC 			=> array(),
		self::O_OPTM_HTML_MIN 			=> false,
		self::O_OPTM_HTML_LAZY 			=> array(),
		self::O_OPTM_QS_RM 				=> false,
		self::O_OPTM_GGFONTS_RM 		=> false,
		self::O_OPTM_CSS_ASYNC 			=> false,
		self::O_OPTM_CCSS_PER_URL 		=> false,
		self::O_OPTM_CCSS_SEP_POSTTYPE	=> array(),
		self::O_OPTM_CCSS_SEP_URI		=> array(),
		self::O_OPTM_CSS_ASYNC_INLINE 	=> false,
		self::O_OPTM_CSS_FONT_DISPLAY 	=> false,
		self::O_OPTM_JS_DEFER 			=> false,
		self::O_OPTM_EMOJI_RM 			=> false,
		self::O_OPTM_NOSCRIPT_RM 		=> false,
		self::O_OPTM_GGFONTS_ASYNC 		=> false,
		self::O_OPTM_EXC_ROLES			=> array(),
		self::O_OPTM_CCSS_CON			=> '',
		self::O_OPTM_JS_DEFER_EXC		=> array(),
		self::O_OPTM_GM_JS_EXC			=> array(),
		self::O_OPTM_DNS_PREFETCH		=> array(),
		self::O_OPTM_DNS_PREFETCH_CTRL	=> false,
		self::O_OPTM_EXC				=> array(),
		self::O_OPTM_GUEST_ONLY			=> false,

		// Object
		self::O_OBJECT 					=> false,
		self::O_OBJECT_KIND 			=> false,
		self::O_OBJECT_HOST 			=> '',
		self::O_OBJECT_PORT 			=> 0,
		self::O_OBJECT_LIFE 			=> 0,
		self::O_OBJECT_PERSISTENT 		=> false,
		self::O_OBJECT_ADMIN 			=> false,
		self::O_OBJECT_TRANSIENTS 		=> false,
		self::O_OBJECT_DB_ID 			=> 0,
		self::O_OBJECT_USER 			=> '',
		self::O_OBJECT_PSWD 			=> '',
		self::O_OBJECT_GLOBAL_GROUPS	=> array(),
		self::O_OBJECT_NON_PERSISTENT_GROUPS => array(),

		// Discuss
		self::O_DISCUSS_AVATAR_CACHE		=> false,
		self::O_DISCUSS_AVATAR_CRON			=> false,
		self::O_DISCUSS_AVATAR_CACHE_TTL	=> 0,
		self::O_OPTM_LOCALIZE 			=> false,
		self::O_OPTM_LOCALIZE_DOMAINS	=> array(),

		// Media
		self::O_MEDIA_LAZY 							=> false,
		self::O_MEDIA_LAZY_PLACEHOLDER 				=> '',
		self::O_MEDIA_PLACEHOLDER_RESP				=> false,
		self::O_MEDIA_PLACEHOLDER_RESP_COLOR		=> '',
		self::O_MEDIA_PLACEHOLDER_RESP_SVG			=> '',
		self::O_MEDIA_LQIP				=> false,
		self::O_MEDIA_LQIP_QUAL			=> 0,
		self::O_MEDIA_LQIP_MIN_W		=> 0,
		self::O_MEDIA_LQIP_MIN_H		=> 0,
		self::O_MEDIA_PLACEHOLDER_RESP_ASYNC		=> false,
		self::O_MEDIA_IFRAME_LAZY 					=> false,
		self::O_MEDIA_ADD_MISSING_SIZES 			=> false,
		self::O_MEDIA_LAZY_EXC 						=> array(),
		self::O_MEDIA_LAZY_CLS_EXC 					=> array(),
		self::O_MEDIA_LAZY_PARENT_CLS_EXC 			=> array(),
		self::O_MEDIA_IFRAME_LAZY_CLS_EXC 			=> array(),
		self::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC 	=> array(),
		self::O_MEDIA_LAZY_URI_EXC 					=> array(),
		self::O_MEDIA_LQIP_EXC 						=> array(),

		// Image Optm
		self::O_IMG_OPTM_AUTO 			=> false,
		self::O_IMG_OPTM_CRON 			=> false,
		self::O_IMG_OPTM_ORI 			=> false,
		self::O_IMG_OPTM_RM_BKUP 		=> false,
		self::O_IMG_OPTM_WEBP 			=> false,
		self::O_IMG_OPTM_LOSSLESS 		=> false,
		self::O_IMG_OPTM_EXIF 			=> false,
		self::O_IMG_OPTM_WEBP_REPLACE 	=> false,
		self::O_IMG_OPTM_WEBP_ATTR		=> array(),
		self::O_IMG_OPTM_WEBP_REPLACE_SRCSET 	=> false,
		self::O_IMG_OPTM_JPG_QUALITY 	=> 0,

		// Crawler
		self::O_CRAWLER 				=> false,
		self::O_CRAWLER_USLEEP 			=> 0,
		self::O_CRAWLER_RUN_DURATION 	=> 0,
		self::O_CRAWLER_RUN_INTERVAL 	=> 0,
		self::O_CRAWLER_CRAWL_INTERVAL 	=> 0,
		self::O_CRAWLER_THREADS 		=> 0,
		self::O_CRAWLER_TIMEOUT 		=> 0,
		self::O_CRAWLER_LOAD_LIMIT 		=> 0,
		self::O_CRAWLER_SITEMAP 		=> '',
		self::O_CRAWLER_DROP_DOMAIN		=> false,
		self::O_CRAWLER_MAP_TIMEOUT		=> 0,
		self::O_CRAWLER_ROLES			=> array(),
		self::O_CRAWLER_COOKIES 		=> array(),

		// Misc
		self::O_MISC_HEARTBEAT_FRONT 		=> false,
		self::O_MISC_HEARTBEAT_FRONT_TTL 	=> 0,
		self::O_MISC_HEARTBEAT_BACK 		=> false,
		self::O_MISC_HEARTBEAT_BACK_TTL 	=> 0,
		self::O_MISC_HEARTBEAT_EDITOR 		=> false,
		self::O_MISC_HEARTBEAT_EDITOR_TTL 	=> 0,

		// CDN
		self::O_CDN 				=> false,
		self::O_CDN_ORI 			=> array(),
		self::O_CDN_ORI_DIR 		=> array(),
		self::O_CDN_EXC 			=> array(),
		self::O_CDN_QUIC 			=> false,
		self::O_CDN_CLOUDFLARE 		=> false,
		self::O_CDN_CLOUDFLARE_EMAIL => '',
		self::O_CDN_CLOUDFLARE_KEY 	=> '',
		self::O_CDN_CLOUDFLARE_NAME => '',
		self::O_CDN_CLOUDFLARE_ZONE => '',
		self::O_CDN_MAPPING 		=> array(),
		self::O_CDN_ATTR 			=> array(),

	);

	protected static $_default_site_options = array(
		self::_VER 						=> '',
		self::O_CACHE 					=> false,
		self::NETWORK_O_USE_PRIMARY 	=> false,
		self::O_AUTO_UPGRADE 			=> false,
		self::O_GUEST 					=> false,

		self::O_CACHE_FAVICON 			=> false,
		self::O_CACHE_RES 				=> false,
		self::O_CACHE_BROWSER 			=> false,
		self::O_CACHE_MOBILE 			=> false,
		self::O_CACHE_MOBILE_RULES 		=> array(),
		self::O_CACHE_LOGIN_COOKIE 		=> '',
		self::O_CACHE_EXC_COOKIES 		=> array(),
		self::O_CACHE_EXC_USERAGENTS 	=> array(),
		self::O_CACHE_TTL_BROWSER 		=> 0,

		self::O_PURGE_ON_UPGRADE 		=> false,

		self::O_OBJECT 					=> false,
		self::O_OBJECT_KIND 			=> false,
		self::O_OBJECT_HOST 			=> '',
		self::O_OBJECT_PORT 			=> 0,
		self::O_OBJECT_LIFE 			=> 0,
		self::O_OBJECT_PERSISTENT 		=> false,
		self::O_OBJECT_ADMIN 			=> false,
		self::O_OBJECT_TRANSIENTS 		=> false,
		self::O_OBJECT_DB_ID 			=> 0,
		self::O_OBJECT_USER 			=> '',
		self::O_OBJECT_PSWD 			=> '',
		self::O_OBJECT_GLOBAL_GROUPS	=> array(),
		self::O_OBJECT_NON_PERSISTENT_GROUPS => array(),

		// Debug
		self::O_DEBUG_DISABLE_ALL 		=> false,
		self::O_DEBUG 					=> false,
		self::O_DEBUG_IPS 				=> array(),
		self::O_DEBUG_LEVEL 			=> false,
		self::O_DEBUG_FILESIZE 			=> 0,
		self::O_DEBUG_COOKIE 			=> false,
		self::O_DEBUG_COLLAPS_QS 		=> false,
		self::O_DEBUG_INC 				=> array(),
		self::O_DEBUG_EXC 				=> array(),

		self::O_IMG_OPTM_WEBP_REPLACE 	=> false,

	);

	// NOTE: all the val of following items will be int while not bool
	protected static $_multi_switch_list = array(
		self::O_DEBUG 			=> 2,
		self::O_OPTM_JS_DEFER 	=> 2,
	);


	/**
	 * Correct the option type
	 *
	 * TODO: add similar network func
	 *
	 * @since  3.0.3
	 */
	protected function type_casting( $val, $id, $is_site_conf = false ) {
		$default_v = ! $is_site_conf ? self::$_default_options[ $id ] : self::$_default_site_options[ $id ];
		if ( is_bool( $default_v ) ) {
			if ( $val === 'true' ) {
				$val = true;
			}
			if ( $val === 'false' ) {
				$val = false;
			}

			$max = $this->_conf_multi_switch( $id );
			if ( $max ) {
				$val = (int) $val;
				$val %= $max + 1;
			}
			else {
				$val = (bool) $val;
			}
		}
		elseif ( is_array( $default_v ) ) {
			// from textarea input
			if ( ! is_array( $val ) ) {
				$val = Utility::sanitize_lines( $val, $this->_conf_filter( $id ) );
			}
		}
		elseif ( ! is_string( $default_v ) ) {
			$val = (int) $val;
		}
		else {
			// Check if the string has a limit set
			$val = $this->_conf_string_val( $id, $val );
		}

		return $val;
	}

	/**
	 * Load default network settings from data.ini
	 *
	 * @since  3.0
	 */
	public function load_default_site_vals() {
		// Load network_default.ini
		if ( file_exists( LSCWP_DIR . 'data/const.network_default.ini' ) ) {
			$default_ini_cfg = parse_ini_file( LSCWP_DIR . 'data/const.network_default.ini', true );
			foreach ( self::$_default_site_options as $k => $v ) {
				if ( ! array_key_exists( $k, $default_ini_cfg ) ) {
					continue;
				}

				// Parse value in ini file
				$ini_v = $this->type_casting( $default_ini_cfg[ $k ], $k, true );

				if ( $ini_v == $v ) {
					continue;
				}

				self::$_default_site_options[ $k ] = $ini_v;

			}
		}

		self::$_default_site_options[ self::_VER ] = Core::VER;

		return self::$_default_site_options;
	}

	/**
	 * Load default values from default.ini
	 *
	 * @since 3.0
	 * @access public
	 */
	public function load_default_vals() {
		// Load default.ini
		if ( file_exists( LSCWP_DIR . 'data/const.default.ini' ) ) {
			$default_ini_cfg = parse_ini_file( LSCWP_DIR . 'data/const.default.ini', true );
			foreach ( self::$_default_options as $k => $v ) {
				if ( ! array_key_exists( $k, $default_ini_cfg ) ) {
					continue;
				}

				// Parse value in ini file
				$ini_v = $this->type_casting( $default_ini_cfg[ $k ], $k );

				// NOTE: Multiple lines value must be stored as array
				/**
				 * Special handler for CDN_mapping
				 *
				 * format in .ini:
				 * 		[cdn-mapping]
				 *   	url[0] = 'https://example.com/'
				 *     	inc_js[0] = true
				 *     	filetype[0] = '.css
				 *     				   .js
				 *     				   .jpg'
				 *
				 * format out:
				 * 		[0] = [ 'url' => 'https://example.com', 'inc_js' => true, 'filetype' => [ '.css', '.js', '.jpg' ] ]
				 */
				if ( $k == self::O_CDN_MAPPING ) {
					$mapping_fields = array(
						self::CDN_MAPPING_URL,
						self::CDN_MAPPING_INC_IMG,
						self::CDN_MAPPING_INC_CSS,
						self::CDN_MAPPING_INC_JS,
						self::CDN_MAPPING_FILETYPE, // Array
					);
					$ini_v2 = array();
					foreach ( $ini_v[ self::CDN_MAPPING_URL ] as $k2 => $v2 ) {// $k2 is numeric
						$this_row = array();
						foreach ( $mapping_fields as $v3 ) {
							$this_v = ! empty( $ini_v[ $v3 ][ $k2 ] ) ? $ini_v[ $v3 ][ $k2 ] : false;
							if ( $v3 == self::CDN_MAPPING_URL ) {
								$this_v = $this_v ? : '';
							}
							if ( $v3 == self::CDN_MAPPING_FILETYPE ) {
								$this_v = $this_v ? Utility::sanitize_lines( $this_v ) : array(); // Note: Since v3.0 its already an array
							}
							$this_row[ $v3 ] = $this_v;
						}
						$ini_v2[ $k2 ] = $this_row;
					}
					$ini_v = $ini_v2;
				}

				if ( $ini_v == $v ) {
					continue;
				}

				self::$_default_options[ $k ] = $ini_v;
			}

		}

		// Load internal default vals
		// Setting the default bool to int is also to avoid type casting override it back to bool
		self::$_default_options[ self::O_CACHE ] = is_multisite() ? self::VAL_ON2 : self::VAL_ON; //For multi site, default is 2 (Use Network Admin Settings). For single site, default is 1 (Enabled).

		// Load default vals containing variables
		if ( ! self::$_default_options[ self::O_CDN_ORI_DIR ] ) {
			self::$_default_options[ self::O_CDN_ORI_DIR ] = LSCWP_CONTENT_FOLDER . "\nwp-includes";
			self::$_default_options[ self::O_CDN_ORI_DIR ] = explode( "\n", self::$_default_options[ self::O_CDN_ORI_DIR ] );
			self::$_default_options[ self::O_CDN_ORI_DIR ] = array_map( 'trim', self::$_default_options[ self::O_CDN_ORI_DIR ] );
		}

		// Set security key if not initialized yet
		if ( ! self::$_default_options[ self::HASH ] ) {
			self::$_default_options[ self::HASH ] = Str::rrand( 32 );
		}

		self::$_default_options[ self::_VER ] = Core::VER;

		return self::$_default_options;
	}

	/**
	 * Format the string value
	 *
	 * @since  3.0
	 */
	protected function _conf_string_val( $id, $val ) {
		return $val;
	}

	/**
	 * If the switch setting is a triple value or not
	 *
	 * @since  3.0
	 */
	protected function _conf_multi_switch( $id ) {
		if ( ! empty( self::$_multi_switch_list[ $id ] ) ) {
			return self::$_multi_switch_list[ $id ];
		}

		if ( $id == self::O_CACHE && is_multisite() ) {
			return self::VAL_ON2;
		}

		return false;
	}

	/**
	 * Append a new multi swith max limit for the bool option
	 *
	 * @since  3.0
	 */
	public static function set_multi_switch( $id, $v ) {
		self::$_multi_switch_list[ $id ] = $v;
	}

	/**
	 * Generate const name based on $id
	 *
	 * @since  3.0
	 */
	public static function conf_const( $id ) {
		return 'LITESPEED_CONF__' . strtoupper( str_replace( '-', '__', $id ) );
	}

	/**
	 * Filter to be used when saving setting
	 *
	 * @since  3.0
	 */
	protected function _conf_filter( $id ) {
		$filters = array(
			self::O_MEDIA_LAZY_EXC		=> 'uri',
			self::O_DEBUG_INC			=> 'relative',
			self::O_DEBUG_EXC			=> 'relative',
			self::O_MEDIA_LAZY_URI_EXC	=> 'relative',
			self::O_CACHE_PRIV_URI		=> 'relative',
			self::O_PURGE_TIMED_URLS	=> 'relative',
			self::O_CACHE_FORCE_URI		=> 'relative',
			self::O_CACHE_FORCE_PUB_URI	=> 'relative',
			self::O_CACHE_EXC			=> 'relative',
			// self::O_OPTM_CSS_EXC		=> 'uri', // Need to comment out for inline & external CSS
			// self::O_OPTM_JS_EXC			=> 'uri',
			self::O_OPTM_EXC			=> 'relative',
			self::O_OPTM_CCSS_SEP_URI	=> 'uri',
			// self::O_OPTM_JS_DEFER_EXC	=> 'uri',
			self::O_OPTM_DNS_PREFETCH	=> 'domain',
			self::O_CDN_ORI				=> 'noprotocol', // `Original URLs`
			// self::O_OPTM_LOCALIZE_DOMAINS	=> 'noprotocol', // `Localize Resources`
			// self::	=> '',
			// self::	=> '',
		);

		if ( ! empty( $filters[ $id ] ) ) {
			return $filters[ $id ];
		}

		return false;
	}

	/**
	 * If the setting changes worth a purge or not
	 *
	 * @since  3.0
	 */
	protected function _conf_purge( $id ) {
		$check_ids = array(
			self::O_MEDIA_LAZY_URI_EXC,
			self::O_OPTM_EXC,
			self::O_CACHE_PRIV_URI,
			self::O_PURGE_TIMED_URLS,
			self::O_CACHE_FORCE_URI,
			self::O_CACHE_FORCE_PUB_URI,
			self::O_CACHE_EXC,
		);

		return in_array( $id, $check_ids );
	}

	/**
	 * If the setting changes worth a purge ALL or not
	 *
	 * @since  3.0
	 */
	protected function _conf_purge_all( $id ) {
		$check_ids = array(
			self::O_CACHE,
			self::O_ESI,
			self::O_DEBUG_DISABLE_ALL,
			self::NETWORK_O_USE_PRIMARY,
		);

		return in_array( $id, $check_ids );
	}

	/**
	 * If the setting is a pswd or not
	 *
	 * @since  3.0
	 */
	protected function _conf_pswd( $id ) {
		$check_ids = array(
			self::O_CDN_CLOUDFLARE_KEY,
			self::O_OBJECT_PSWD,
			self::O_API_KEY,
		);

		return in_array( $id, $check_ids );
	}

	/**
	 * If the setting is cron related or not
	 *
	 * @since  3.0
	 */
	protected function _conf_cron( $id ) {
		$check_ids = array(
			self::O_IMG_OPTM_CRON,
			self::O_OPTM_CSS_ASYNC,
			self::O_MEDIA_PLACEHOLDER_RESP_ASYNC,
			self::O_DISCUSS_AVATAR_CRON,
			self::O_IMG_OPTM_AUTO,
			self::O_CRAWLER,
		);

		return in_array( $id, $check_ids );
	}

	/**
	 * If the setting changes worth a purge, return the tag
	 *
	 * @since  3.0
	 */
	protected function _conf_purge_tag( $id ) {
		$check_ids = array(
			self::O_CACHE_PAGE_LOGIN	=> Tag::TYPE_LOGIN,
		);

		if ( ! empty( $check_ids[ $id ] ) ) {
			return $check_ids[ $id ];
		}

		return false;
	}

	/**
	 * Generate server vars
	 *
	 * @since 2.4.1
	 */
	public function server_vars() {
		$consts = array(
			'WP_SITEURL',
			'WP_HOME',
			'WP_CONTENT_DIR',
			'SHORTINIT',
			'LSCWP_CONTENT_DIR',
			'LSCWP_CONTENT_FOLDER',
			'LSCWP_DIR',
			'LITESPEED_TIME_OFFSET',
			'LITESPEED_SERVER_TYPE',
			'LITESPEED_CLI',
			'LITESPEED_ALLOWED',
			'LITESPEED_ON',
			'LSWCP_TAG_PREFIX',
			'COOKIEHASH',
		);
		$server_vars = array();
		foreach ( $consts as $v ) {
			$server_vars[ $v ] = defined( $v ) ? constant( $v ) : NULL;
		}

		return $server_vars;
	}

}<?php
/**
 * The core plugin class.
 *
 * Note: Core doesn't allow $this->cls( 'Core' )
 *
 * @since      	1.0.0
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Core extends Root {
	const NAME = 'LiteSpeed Cache';
	const PLUGIN_NAME = 'litespeed-cache';
	const PLUGIN_FILE = 'litespeed-cache/litespeed-cache.php';
	const VER = LSCWP_V;

	const ACTION_DISMISS = 'dismiss';
	const ACTION_PURGE_BY = 'PURGE_BY';
	const ACTION_PURGE_EMPTYCACHE = 'PURGE_EMPTYCACHE';
	const ACTION_QS_PURGE = 'PURGE';
	const ACTION_QS_PURGE_SINGLE = 'PURGESINGLE';
	const ACTION_QS_SHOW_HEADERS = 'SHOWHEADERS';
	const ACTION_QS_PURGE_ALL = 'purge_all';
	const ACTION_QS_PURGE_EMPTYCACHE = 'empty_all';
	const ACTION_QS_NOCACHE = 'NOCACHE';

	const HEADER_DEBUG = 'X-LiteSpeed-Debug';

	protected static $_debug_show_header = false;

	private $footer_comment = '';

	/**
	 * Define the core functionality of the plugin.
	 *
	 * Set the plugin name and the plugin version that can be used throughout the plugin.
	 * Load the dependencies, define the locale, and set the hooks for the admin area and
	 * the public-facing side of the site.
	 *
	 * @since    1.0.0
	 */
	public function __construct() {
		$this->cls( 'Conf' )->init();

		// Check if debug is on
		if ( $this->conf( Base::O_DEBUG ) ) {
			$this->cls( 'Debug2' )->init();
		}

		/**
		 * Load API hooks
		 * @since  3.0
		 */
		$this->cls( 'API' )->init();

		if ( defined( 'LITESPEED_ON' ) ) {
			// Load third party detection if lscache enabled.
			include_once LSCWP_DIR . 'thirdparty/entry.inc.php';
		}

		if ( $this->conf( Base::O_DEBUG_DISABLE_ALL ) ) {
			! defined( 'LITESPEED_DISABLE_ALL' ) && define( 'LITESPEED_DISABLE_ALL', true );
		}

		/**
		 * Register plugin activate/deactivate/uninstall hooks
		 * NOTE: this can't be moved under after_setup_theme, otherwise activation will be bypassed somehow
		 * @since  2.7.1	Disabled admin&CLI check to make frontend able to enable cache too
		 */
		// if( is_admin() || defined( 'LITESPEED_CLI' ) ) {
		$plugin_file = LSCWP_DIR . 'litespeed-cache.php';
		register_activation_hook( $plugin_file, array( __NAMESPACE__ . '\Activation', 'register_activation' ) );
		register_deactivation_hook( $plugin_file, array(__NAMESPACE__ . '\Activation', 'register_deactivation' ) );
		register_uninstall_hook( $plugin_file, __NAMESPACE__ . '\Activation::uninstall_litespeed_cache' );
		// }

		add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
		add_action( 'after_setup_theme', array( $this, 'init' ) );

		// Check if there is a purge request in queue
		$purge_queue = Purge::get_option( Purge::DB_QUEUE );
		if ( $purge_queue && $purge_queue != -1 ) {
			@header( $purge_queue );
			Debug2::debug( '[Core] Purge Queue found&sent: ' . $purge_queue );
		}
		if ( $purge_queue != -1 ) {
			Purge::update_option( Purge::DB_QUEUE, -1 ); // Use 0 to bypass purge while still enable db update as WP's update_option will check value===false to bypass update
		}
		$purge_queue = Purge::get_option( Purge::DB_QUEUE2 );
		if ( $purge_queue && $purge_queue != -1 ) {
			@header( $purge_queue );
			Debug2::debug( '[Core] Purge2 Queue found&sent: ' . $purge_queue );
		}
		if ( $purge_queue != -1 ) {
			Purge::update_option( Purge::DB_QUEUE2, -1 );
		}

		/**
		 * Hook internal REST
		 * @since  2.9.4
		 */
		$this->cls( 'REST' );

		/**
		 * Hook wpnonce function
		 *
		 * Note: ESI nonce won't be available until hook after_setup_theme ESI init due to Guest Mode concern
		 * @since v4.1
		 */
		if ( $this->cls( 'Router' )->esi_enabled() && ! function_exists( 'wp_create_nonce' ) ) {
			Debug2::debug( '[ESI] Overwrite wp_create_nonce()' );
			litespeed_define_nonce_func();
		}
	}

	/**
	 * Plugin loaded hooks
	 * @since 3.0
	 */
	public function plugins_loaded() {
		load_plugin_textdomain( Core::PLUGIN_NAME, false, 'litespeed-cache/lang/' );
	}

	/**
	 * The plugin initializer.
	 *
	 * This function checks if the cache is enabled and ready to use, then determines what actions need to be set up based on the type of user and page accessed. Output is buffered if the cache is enabled.
	 *
	 * NOTE: WP user doesn't init yet
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function init() {
		/**
		 * Added hook before init
		 * 3rd party preload hooks will be fired here too (e.g. Divi disable all in edit mode)
		 * @since  1.6.6
		 * @since  2.6 	Added filter to all config values in Conf
		 */
		do_action( 'litespeed_init' );

		// in `after_setup_theme`, before `init` hook
		if ( ! defined( 'LITESPEED_BYPASS_AUTO_V' ) ) {
			$this->cls( 'Activation' )->auto_update();
		}

		if( is_admin() ) {
			$this->cls( 'Admin' );
		}

		if ( defined( 'LITESPEED_DISABLE_ALL' ) ) {
			Debug2::debug( '[Core] Bypassed due to debug disable all setting' );
			return;
		}

		do_action( 'litespeed_initing' );

		ob_start( array( $this, 'send_headers_force' ) );
		add_action( 'shutdown', array( $this, 'send_headers' ), 0 );
		add_action( 'wp_footer', array( $this, 'footer_hook' ) );

		/**
		 * Check if is non optm simulator
		 * @since  2.9
		 */
		if ( ! empty( $_GET[ Router::ACTION ] ) && $_GET[ Router::ACTION ] == 'before_optm' && ! apply_filters( 'litespeed_qs_forbidden', false ) ) {
			Debug2::debug( '[Core] ⛑️ bypass_optm due to QS CTRL' );
			! defined( 'LITESPEED_NO_OPTM' ) && define( 'LITESPEED_NO_OPTM', true );
		}

		/**
		 * Register vary filter
		 * @since  1.6.2
		 */
		$this->cls( 'Control' )->init();

		// 1. Init vary
		// 2. Init cacheable status
		$this->cls( 'Vary' )->init();

		// Init Purge hooks
		$this->cls( 'Purge' )->init();

		$this->cls( 'Tag' )->init();

		// Load hooks that may be related to users
		add_action( 'init', array( $this, 'after_user_init' ), 5 );

		// Load 3rd party hooks
		add_action( 'wp_loaded', array( $this, 'load_thirdparty' ), 2 );
	}

	/**
	 * Run hooks after user init
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function after_user_init() {
		$this->cls( 'Router' )->is_role_simulation();

		// Detect if is Guest mode or not also
		$this->cls( 'Vary' )->after_user_init();

		/**
		 * Preload ESI functionality for ESI request uri recovery
		 * @since 1.8.1
		 * @since  4.0 ESI init needs to be after Guest mode detection to bypass ESI if is under Guest mode
		 */
		$this->cls( 'ESI' )->init();

		if ( ! is_admin() && ! defined( 'LITESPEED_GUEST_OPTM' ) && $result = $this->cls( 'Conf' )->in_optm_exc_roles() ) {
			Debug2::debug( '[Core] ⛑️ bypass_optm: hit Role Excludes setting: ' . $result );
			! defined( 'LITESPEED_NO_OPTM' ) && define( 'LITESPEED_NO_OPTM', true );
		}

		// Heartbeat control
		$this->cls( 'Tool' )->heartbeat();

		/**
		 * Backward compatibility for v4.2- @Ruikai
		 * TODO: Will change to hook in future versions to make it revertable
		 */
		if ( defined( 'LITESPEED_BYPASS_OPTM' ) && ! defined( 'LITESPEED_NO_OPTM' ) ) {
			defined( 'LITESPEED_NO_OPTM', LITESPEED_BYPASS_OPTM );
		}

		if ( ! defined( 'LITESPEED_NO_OPTM' ) || ! LITESPEED_NO_OPTM ) {
			// Check missing static files
			$this->cls( 'Router' )->serve_static();

			$this->cls( 'Media' )->init();

			$this->cls( 'Placeholder' )->init();

			$this->cls( 'Router' )->can_optm() && $this->cls( 'Optimize' )->init();

			$this->cls( 'Localization' )->init();

			// Hook cdn for attachements
			$this->cls( 'CDN' )->init();

			// load cron tasks
			$this->cls( 'Task' )->init();
		}

		// load litespeed actions
		if ( $action = Router::get_action() ) {
			$this->proceed_action( $action );
		}

		// Load frontend GUI
		if ( ! is_admin() ) {
			$this->cls( 'GUI' )->init();
		}

	}

	/**
	 * Run frontend actions
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function proceed_action( $action ) {
		$msg = false;
		// handle actions
		switch ( $action ) {
			case self::ACTION_QS_PURGE:
				Purge::set_purge_related();
				break;

			case self::ACTION_QS_SHOW_HEADERS:
				self::$_debug_show_header = true;
				break;

			case self::ACTION_QS_PURGE_SINGLE:
				Purge::set_purge_single();
				break;

			case self::ACTION_QS_PURGE_ALL:
				Purge::purge_all();
				break;

			case self::ACTION_PURGE_EMPTYCACHE:
			case self::ACTION_QS_PURGE_EMPTYCACHE:
				define( 'LSWCP_EMPTYCACHE', true );// clear all sites caches
				Purge::purge_all();
				$msg = __( 'Notified LiteSpeed Web Server to purge everything.', 'litespeed-cache' );
				break;

			case self::ACTION_PURGE_BY:
				$this->cls( 'Purge' )->purge_list();
				$msg = __( 'Notified LiteSpeed Web Server to purge the list.', 'litespeed-cache' );
				break;

			case self::ACTION_DISMISS:// Even its from ajax, we don't need to register wp ajax callback function but directly use our action
				GUI::dismiss();
				break;

			default:
				$msg = $this->cls( 'Router' )->handler( $action );
				break;
		}
		if ( $msg && ! Router::is_ajax() ) {
			Admin_Display::add_notice( Admin_Display::NOTICE_GREEN, $msg );
			Admin::redirect();
			return;
		}

		if ( Router::is_ajax() ) {
			exit;
		}
	}

	/**
	 * Callback used to call the detect third party action.
	 *
	 * The detect action is used by third party plugin integration classes to determine if they should add the rest of their hooks.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public function load_thirdparty() {
		do_action( 'litespeed_load_thirdparty' );
	}

	/**
	 * Mark wp_footer called
	 *
	 * @since 1.3
	 * @access public
	 */
	public function footer_hook() {
		Debug2::debug( '[Core] Footer hook called' );
		if ( ! defined( 'LITESPEED_FOOTER_CALLED' ) ) {
			define( 'LITESPEED_FOOTER_CALLED', true );
		}
	}

	/**
	 * Tigger coment info display hook
	 *
	 * @since 1.3
	 * @access private
	 */
	private function _check_is_html( $buffer = null ) {
		if ( ! defined( 'LITESPEED_FOOTER_CALLED' ) ) {
			Debug2::debug2( '[Core] CHK html bypass: miss footer const' );
			return;
		}

		if ( defined( 'DOING_AJAX' ) ) {
			Debug2::debug2( '[Core] CHK html bypass: doing ajax' );
			return;
		}

		if ( defined( 'DOING_CRON' ) ) {
			Debug2::debug2( '[Core] CHK html bypass: doing cron' );
			return;
		}

		if ( $_SERVER[ 'REQUEST_METHOD' ] !== 'GET' ) {
			Debug2::debug2( '[Core] CHK html bypass: not get method ' . $_SERVER[ 'REQUEST_METHOD' ] );
			return;
		}

		if ( $buffer === null ) {
			$buffer = ob_get_contents();
		}

		// double check to make sure it is a html file
		if ( strlen( $buffer ) > 300 ) {
			$buffer = substr( $buffer, 0, 300 );
		}
		if ( strstr( $buffer, '<!--' ) !== false ) {
			$buffer = preg_replace( '/<!--.*?-->/s', '', $buffer );
		}
		$buffer = trim( $buffer );

		$buffer = File::remove_zero_space( $buffer );

		$is_html = stripos( $buffer, '<html' ) === 0 || stripos( $buffer, '<!DOCTYPE' ) === 0;

		if ( ! $is_html ) {
			Debug2::debug( '[Core] Footer check failed: ' . ob_get_level() . '-' . substr( $buffer, 0, 100 ) );
			return;
		}

		Debug2::debug( '[Core] Footer check passed' );

		if ( ! defined( 'LITESPEED_IS_HTML' ) ) {
			define( 'LITESPEED_IS_HTML', true );
		}
	}

	/**
	 * For compatibility with those plugins have 'Bad' logic that forced all buffer output even it is NOT their buffer :(
	 *
	 * Usually this is called after send_headers() if following orignal WP process
	 *
	 * @since 1.1.5
	 * @access public
	 * @param  string $buffer
	 * @return string
	 */
	public function send_headers_force( $buffer ) {
		$this->_check_is_html( $buffer );

		// Hook to modify buffer before
		$buffer = apply_filters('litespeed_buffer_before', $buffer);

		/**
		 * Media: Image lazyload && WebP
		 * GUI: Clean wrapper mainly for esi block NOTE: this needs to be before optimizer to avoid wrapper being removed
		 * Optimize
		 * CDN
		 */
		if ( ! defined( 'LITESPEED_NO_OPTM' ) || ! LITESPEED_NO_OPTM ) {
			$buffer = apply_filters( 'litespeed_buffer_finalize', $buffer );
		}

		/**
		 * Replace ESI preserved list
		 * @since  3.3 Replace this in the end to avoid `Inline JS Defer` or other Page Optm features encoded ESI tags wrongly, which caused LSWS can't recognize ESI
		 */
		$buffer = $this->cls( 'ESI' )->finalize( $buffer );

		$this->send_headers( true );

		if ( $this->footer_comment ) {
			$buffer .= $this->footer_comment;
		}

		/**
		 * If ESI req is JSON, give the content JSON format
		 * @since  2.9.3
		 * @since  2.9.4 ESI req could be from internal REST call, so moved json_encode out of this cond
		 */
		if ( defined( 'LSCACHE_IS_ESI' ) ) {
			Debug2::debug( '[Core] ESI Start 👇' );
			if ( strlen( $buffer ) > 500 ) {
				Debug2::debug( trim( substr( $buffer, 0, 500 ) ) . '.....' );
			}
			else {
				Debug2::debug( $buffer );
			}
			Debug2::debug( '[Core] ESI End 👆' );
			Debug2::debug( $buffer );
		}

		if ( apply_filters( 'litespeed_is_json', false ) ) {
			if ( json_decode( $buffer, true ) == NULL ) {
				Debug2::debug( '[Core] Buffer converting to JSON' );
				$buffer = json_encode( $buffer );
				$buffer = trim( $buffer, '"' );
			}
			else {
				Debug2::debug( '[Core] JSON Buffer' );
			}
		}

		// Hook to modify buffer after
		$buffer = apply_filters('litespeed_buffer_after', $buffer);

		Debug2::debug( "End response\n--------------------------------------------------------------------------------\n" );

		return $buffer;
	}

	/**
	 * Sends the headers out at the end of processing the request.
	 *
	 * This will send out all LiteSpeed Cache related response headers needed for the post.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param boolean $is_forced If the header is sent following our normal finalizing logic
	 */
	public function send_headers( $is_forced = false ) {
		// Make sure header output only run once
		if ( ! defined( 'LITESPEED_DID_' . __FUNCTION__ ) ) {
			define( 'LITESPEED_DID_' . __FUNCTION__, true );
		}
		else {
			return;
		}

		$this->_check_is_html();

		// NOTE: cache ctrl output needs to be done first, as currently some varies are added in 3rd party hook `litespeed_api_control`.
		$this->cls( 'Control' )->finalize();

		$vary_header = $this->cls( 'Vary' )->finalize();

		// If is not cacheable but Admin QS is `purge` or `purgesingle`, `tag` still needs to be generated
		$tag_header = $this->cls( 'Tag' )->output();
		if ( ! $tag_header && Control::is_cacheable() ) {
			Control::set_nocache( 'empty tag header' );
		}

		// NOTE: `purge` output needs to be after `tag` output as Admin QS may need to send `tag` header
		$purge_header = Purge::output();

		// generate `control` header in the end in case control status is changed by other headers.
		$control_header = $this->cls( 'Control' )->output();

		// Init comment info
		$running_info_showing = defined( 'LITESPEED_IS_HTML' ) || defined( 'LSCACHE_IS_ESI' );
		if ( defined( 'LSCACHE_ESI_SILENCE' ) ) {
			$running_info_showing = false;
			Debug2::debug( '[Core] ESI silence' );
		}
		/**
		 * Silence comment for json req
		 * @since 2.9.3
		 */
		if ( REST::cls()->is_rest() || Router::is_ajax() ) {
			$running_info_showing = false;
			Debug2::debug( '[Core] Silence Comment due to REST/AJAX' );
		}

		$running_info_showing = apply_filters( 'litespeed_comment', $running_info_showing );

		if ( $running_info_showing ) {
			// Give one more break to avoid ff crash
			if ( ! defined( 'LSCACHE_IS_ESI' ) ) {
				$this->footer_comment .= "\n";
			}

			$cache_support = 'supported';
			if ( defined( 'LITESPEED_ON' ) ) {
				$cache_support = Control::is_cacheable() ? 'generated' : 'uncached';
			}

			$this->footer_comment .= sprintf(
				'<!-- %1$s %2$s by LiteSpeed Cache %4$s on %3$s -->',
				defined( 'LSCACHE_IS_ESI' ) ? 'Block' : 'Page',
				$cache_support,
				date( 'Y-m-d H:i:s', time() + LITESPEED_TIME_OFFSET ),
				self::VER
			);
		}

		// send Control header
		if ( defined( 'LITESPEED_ON' ) && $control_header ) {
			@header( $control_header );
			if ( defined( 'LSCWP_LOG' ) ) {
				Debug2::debug( '💰 ' . $control_header );
				if ( $running_info_showing ) {
					$this->footer_comment .= "\n<!-- " . $control_header . " -->";
				}
			}
		}
		// send PURGE header (Always send regardless of cache setting disabled/enabled)
		if ( defined( 'LITESPEED_ON' ) && $purge_header ) {
			@header( $purge_header );
			Debug2::log_purge( $purge_header );

			if ( defined( 'LSCWP_LOG' ) ) {
				Debug2::debug( '💰 ' . $purge_header );
				if ( $running_info_showing ) {
					$this->footer_comment .= "\n<!-- " . $purge_header . " -->";
				}
			}
		}
		// send Vary header
		if ( defined( 'LITESPEED_ON' ) && $vary_header ) {
			@header( $vary_header );
			if ( defined( 'LSCWP_LOG' ) ) {
				Debug2::debug( '💰 ' . $vary_header );
				if ( $running_info_showing ) {
					$this->footer_comment .= "\n<!-- " . $vary_header . " -->";
				}
			}
		}

		// Admin QS show header action
		if ( self::$_debug_show_header ) {
			$debug_header = self::HEADER_DEBUG . ': ';
			if ( $control_header ) {
				$debug_header .= $control_header . '; ';
			}
			if ( $purge_header ) {
				$debug_header .= $purge_header . '; ';
			}
			if ( $tag_header ) {
				$debug_header .= $tag_header . '; ';
			}
			if ( $vary_header ) {
				$debug_header .= $vary_header . '; ';
			}
			@header( $debug_header );
			Debug2::debug( $debug_header );
		}
		else {
			// Control header
			if ( defined( 'LITESPEED_ON' ) && Control::is_cacheable() && $tag_header ) {
				@header( $tag_header );
				if ( defined( 'LSCWP_LOG' ) ) {
					Debug2::debug( '💰 ' . $tag_header );
					if ( $running_info_showing ) {
						$this->footer_comment .= "\n<!-- " . $tag_header . " -->";
					}
				}
			}
		}

		// Object cache comment
		if ( $running_info_showing && defined( 'LSCWP_LOG' ) && defined( 'LSCWP_OBJECT_CACHE' ) && method_exists( 'WP_Object_Cache', 'debug' ) ) {
			$this->footer_comment .= "\n<!-- Object Cache " . \WP_Object_Cache::get_instance()->debug() . " -->";
		}

		if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST && $running_info_showing ) {
			$this->footer_comment .= "\n<!-- Guest Mode -->";
		}

		if ( $is_forced ) {
			Debug2::debug( '--forced--' );
		}

	}

}
<?php
/**
 * The ESI class.
 *
 * This is used to define all esi related functions.
 *
 * @since      	1.1.3
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class ESI extends Root {
	private static $has_esi = false;
	private static $_combine_ids = array();
	private $esi_args = null;
	private $_esi_preserve_list = array();
	private $_nonce_actions = array( -1 => '' ); // val is cache control

	const QS_ACTION = 'lsesi';
	const QS_PARAMS = 'esi';
	const COMBO = '__combo'; // ESI include combine='main' handler

	const PARAM_ARGS = 'args';
	const PARAM_ID = 'id';
	const PARAM_INSTANCE = 'instance';
	const PARAM_NAME = 'name';

	const WIDGET_O_ESIENABLE = 'widget_esi_enable';
	const WIDGET_O_TTL = 'widget_ttl';

	/**
	 * Confructor of ESI
	 *
	 * @since  1.2.0
	 * @since  4.0 Change to be after Vary init in hook 'after_setup_theme'
	 */
	public function init() {
		/**
		 * Bypass ESI related funcs if disabled ESI to fix potential DIVI compatibility issue
		 * @since  2.9.7.2
		 */
		if ( Router::is_ajax() || ! $this->cls( 'Router' )->esi_enabled() ) {
			return;
		}

		// Guest mode, don't need to use ESI
		if ( defined( 'LITESPEED_GUEST' ) && LITESPEED_GUEST ) {
			return;
		}

		if ( defined( 'LITESPEED_ESI_OFF' ) ) {
			return;
		}

		// Init ESI in `after_setup_theme` hook after detected if LITESPEED_DISABLE_ALL is ON or not
		$this->_hooks();

		/**
		 * Overwrite wp_create_nonce func
		 * @since  2.9.5
		 */
		$this->_transform_nonce();

		! defined( 'LITESPEED_ESI_INITED' ) && define( 'LITESPEED_ESI_INITED', true );
	}

	/**
	 * Init ESI related hooks
	 *
	 * Load delayed by hook to give the ability to bypass by LITESPEED_DISABLE_ALL const
	 *
	 * @since 2.9.7.2
	 * @since  4.0 Changed to private from public
	 * @access private
	 */
	private function _hooks() {
		add_filter( 'template_include', array( $this, 'esi_template' ), 99999 );

		add_action( 'load-widgets.php', __NAMESPACE__ . '\Purge::purge_widget' );
		add_action( 'wp_update_comment_count', __NAMESPACE__ . '\Purge::purge_comment_widget' );

		/**
		 * Recover REQUEST_URI
		 * @since  1.8.1
		 */
		if ( ! empty( $_GET[ self::QS_ACTION ] ) ) {
			$this->_register_esi_actions();
		}

		/**
		 * Shortcode ESI
		 *
		 * To use it, just change the origianl shortcode as below:
		 * 		old: [someshortcode aa='bb']
		 * 		new: [esi someshortcode aa='bb' cache='private,no-vary' ttl='600']
		 *
		 * 	1. `cache` attribute is optional, default to 'public,no-vary'.
		 * 	2. `ttl` attribute is optional, default is your public TTL setting.
		 *
		 * @since  2.8
		 * @since  2.8.1 Check is_admin for Elementor compatibility #726013
		 */
		if ( ! is_admin() ) {
			add_shortcode( 'esi', array( $this, 'shortcode' ) );
		}

	}

	/**
	 * Take over all nonce calls and transform to ESI
	 *
	 * @since  2.9.5
	 */
	private function _transform_nonce() {
		if ( is_admin() ) {
			return;
		}

		// Load ESI nonces in conf
		$nonces = $this->conf( Base::O_ESI_NONCE );
		add_filter( 'litespeed_esi_nonces', array( $this->cls( 'Data' ), 'load_esi_nonces' ) );
		if ( $nonces = apply_filters( 'litespeed_esi_nonces', $nonces ) ) {
			foreach ( $nonces as $action ) {
				$this->nonce_action( $action );
			}
		}

		add_action( 'litespeed_nonce', array( $this, 'nonce_action' ) );
	}

	/**
	 * Register a new nonce action to convert it to ESI
	 *
	 * @since  2.9.5
	 */
	public function nonce_action( $action ) {
		// Split the Cache Control
		$action = explode( ' ', $action );
		$control = ! empty( $action[ 1 ] ) ? $action[ 1 ] : '';
		$action = $action[ 0 ];

		// Wildcard supported
		$action = Utility::wildcard2regex( $action );

		if ( array_key_exists( $action, $this->_nonce_actions ) ) {
			return;
		}

		$this->_nonce_actions[ $action ] = $control;

		Debug2::debug( '[ESI] Appended nonce action to nonce list [action] ' . $action );
	}

	/**
	 * Check if an action is registered to replace ESI
	 *
	 * @since 2.9.5
	 */
	public function is_nonce_action( $action ) {
		// If GM not run yet, then ESI not init yet, then ESI nonce will not be allowed even nonce func replaced.
		if ( ! defined( 'LITESPEED_ESI_INITED' ) ) {
			return null;
		}

		if ( is_admin() ) {
			return null;
		}

		if ( defined( 'LITESPEED_ESI_OFF' ) ) {
			return null;
		}

		foreach ( $this->_nonce_actions as $k => $v ) {
			if ( strpos( $k, '*' ) !== false ) {
				if( preg_match( '#' . $k . '#iU', $action ) ) {
					return $v;
				}
			}
			else {
				if ( $k == $action ) {
					return $v;
				}
			}
		}

		return null;
	}

	/**
	 * Shortcode ESI
	 *
	 * @since 2.8
	 * @access public
	 */
	public function shortcode( $atts ) {
		if ( empty( $atts[ 0 ] ) ) {
			Debug2::debug( '[ESI] ===shortcode wrong format', $atts );
			return 'Wrong shortcode esi format';
		}

		$cache = 'public,no-vary';
		if ( ! empty( $atts[ 'cache' ] ) ) {
			$cache = $atts[ 'cache' ];
			unset( $atts[ 'cache' ] );
		}

		do_action( 'litespeed_esi_shortcode-' . $atts[ 0 ] );

		// Show ESI link
		return $this->sub_esi_block( 'esi', 'esi-shortcode', $atts, $cache );
	}

	/**
	 * Check if the requested page has esi elements. If so, return esi on
	 * header.
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string Esi On header if request has esi, empty string otherwise.
	 */
	public static function has_esi() {
		return self::$has_esi;
	}

	/**
	 * Sets that the requested page has esi elements.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function set_has_esi() {
		self::$has_esi = true;
	}

	/**
	 * Register all of the hooks related to the esi logic of the plugin.
	 * Specifically when the page IS an esi page.
	 *
	 * @since    1.1.3
	 * @access   private
	 */
	private function _register_esi_actions() {
		! defined( 'LSCACHE_IS_ESI' ) && define( 'LSCACHE_IS_ESI', $_GET[ self::QS_ACTION ] );// Reused this to ESI block ID

		! empty( $_SERVER[ 'ESI_REFERER' ] ) && defined( 'LSCWP_LOG' ) && Debug2::debug( '[ESI] ESI_REFERER: ' . $_SERVER[ 'ESI_REFERER' ] );

		/**
		 * Only when ESI's parent is not REST, replace REQUEST_URI to avoid breaking WP5 editor REST call
		 * @since 2.9.3
		 */
		if ( ! empty( $_SERVER[ 'ESI_REFERER' ] ) && ! $this->cls( 'REST' )->is_rest( $_SERVER[ 'ESI_REFERER' ] ) ) {
			$_SERVER[ 'REQUEST_URI' ] = $_SERVER[ 'ESI_REFERER' ];
		}

		if ( ! empty( $_SERVER[ 'ESI_CONTENT_TYPE' ] ) && strpos( $_SERVER[ 'ESI_CONTENT_TYPE' ], 'application/json' ) === 0 ) {
			add_filter( 'litespeed_is_json', '__return_true' );
		}

		/**
		 * Make REST call be able to parse ESI
		 * NOTE: Not effective due to ESI req are all to `/` yet
		 * @since 2.9.4
		 */
		add_action( 'rest_api_init', array( $this, 'load_esi_block' ), 101 );

		// Register ESI blocks
		add_action('litespeed_esi_load-widget', array($this, 'load_widget_block'));
		add_action('litespeed_esi_load-admin-bar', array($this, 'load_admin_bar_block'));
		add_action('litespeed_esi_load-comment-form', array($this, 'load_comment_form_block'));

		add_action('litespeed_esi_load-nonce', array( $this, 'load_nonce_block' ) );
		add_action('litespeed_esi_load-esi', array( $this, 'load_esi_shortcode' ) );

		add_action('litespeed_esi_load-' . self::COMBO, array( $this, 'load_combo' ) );
	}

	/**
	 * Hooked to the template_include action.
	 * Selects the esi template file when the post type is a LiteSpeed ESI page.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param string $template The template path filtered.
	 * @return string The new template path.
	 */
	public function esi_template( $template ) {
		// Check if is an ESI request
		if ( defined( 'LSCACHE_IS_ESI' ) ) {
			Debug2::debug( '[ESI] calling template' );

			return LSCWP_DIR . 'tpl/esi.tpl.php';
		}
		$this->_register_not_esi_actions();
		return $template;
	}

	/**
	 * Register all of the hooks related to the esi logic of the plugin.
	 * Specifically when the page is NOT an esi page.
	 *
	 * @since    1.1.3
	 * @access   private
	 */
	private function _register_not_esi_actions() {
		do_action( 'litespeed_tpl_normal' );

		if ( ! Control::is_cacheable() ) {
			return;
		}

		if ( Router::is_ajax() ) {
			return;
		}

		add_filter('widget_display_callback', array( $this, 'sub_widget_block' ), 0, 3);

		// Add admin_bar esi
		if ( Router::is_logged_in() ) {
			remove_action('wp_footer', 'wp_admin_bar_render', 1000);
			add_action('wp_footer', array($this, 'sub_admin_bar_block'), 1000);
		}

		// Add comment forum esi for logged-in user or commenter
		if ( ! Router::is_ajax() && Vary::has_vary() ) {
			add_filter( 'comment_form_defaults', array( $this, 'register_comment_form_actions' ) );
		}

	}

	/**
	 * Set an ESI to be combine='sub'
	 *
	 * @since  3.4.2
	 */
	public static function combine( $block_id ) {
		if ( ! isset( $_SERVER[ 'X-LSCACHE' ] ) || strpos( $_SERVER[ 'X-LSCACHE' ], 'combine' ) === false ) {
			return;
		}

		if ( in_array( $block_id, self::$_combine_ids ) ) {
			return;
		}

		self::$_combine_ids[] = $block_id;
	}

	/**
	 * Load combined ESI
	 *
	 * @since  3.4.2
	 */
	public function load_combo() {
		Control::set_nocache( 'ESI combine request' );

		if ( empty( $_POST[ 'esi_include' ] ) ) {
			return;
		}

		self::set_has_esi();

		Debug2::debug( '[ESI] 🍔 Load combo', $_POST[ 'esi_include' ] );

		$output = '';
		foreach ( $_POST[ 'esi_include' ] as $url ) {
			$qs = parse_url( htmlspecialchars_decode( $url ), PHP_URL_QUERY );
			parse_str( $qs, $qs );
			if ( empty( $qs[ self::QS_ACTION ] ) ) {
				continue;
			}
			$esi_id = $qs[ self::QS_ACTION ];
			$esi_param = ! empty( $qs[ self::QS_PARAMS ] ) ? $this->_parse_esi_param( $qs[ self::QS_PARAMS ] ) : false;
			$inline_param = apply_filters( 'litespeed_esi_inline-' . $esi_id, array(), $esi_param ); // Returned array need to be [ val, control, tag ]
			if ( $inline_param ) {
				$output .= self::_build_inline( $url, $inline_param );
			}
		}

		echo $output;
	}

	/**
	 * Build a whole inline segment
	 *
	 * @since  3.4.2
	 */
	private static function _build_inline( $url, $inline_param ) {
		if ( ! $url || empty( $inline_param[ 'val' ] ) || empty( $inline_param[ 'control' ] ) || empty( $inline_param[ 'tag' ] ) ) {
			return '';
		}

		return "<esi:inline name='$url' cache-control='" . $inline_param[ 'control' ] . "' cache-tag='" . $inline_param[ 'tag' ] . "'>" . $inline_param[ 'val' ] . "</esi:inline>";
	}

	/**
	 * Build the esi url. This method will build the html comment wrapper as well as serialize and encode the parameter array.
	 *
	 * The block_id parameter should contain alphanumeric and '-_' only.
	 *
	 * @since 1.1.3
	 * @access private
	 * @param string $block_id The id to use to display the correct esi block.
	 * @param string $wrapper The wrapper for the esi comments.
	 * @param array $params The esi parameters.
	 * @param string $control The cache control attribute if any.
	 * @param bool $silence If generate wrapper comment or not
	 * @param bool $preserved 	If this ESI block is used in any filter, need to temporarily convert it to a string to avoid the HTML tag being removed/filtered.
	 * @param bool $svar  		If store the value in memory or not, in memory wil be faster
	 * @param array $inline_val 	If show the current value for current request( this can avoid multiple esi requests in first time cache generating process )
	 */
	public function sub_esi_block( $block_id, $wrapper, $params = array(), $control = 'private,no-vary', $silence = false, $preserved = false, $svar = false, $inline_param = array() ) {
		if ( empty($block_id) || ! is_array($params) || preg_match('/[^\w-]/', $block_id) ) {
			return false;
		}

		if ( defined( 'LITESPEED_ESI_OFF' ) ) {
			Debug2::debug( '[ESI] ESI OFF so force loading [block_id] ' . $block_id );
			do_action( 'litespeed_esi_load-' . $block_id, $params );
			return;
		}

		if ( $silence ) {
			// Don't add comment to esi block ( orignal for nonce used in tag property data-nonce='esi_block' )
			$params[ '_ls_silence' ] = true;
		}

		if ( $this->cls( 'REST' )->is_rest() || $this->cls( 'REST' )->is_internal_rest() ) {
			$params[ 'is_json' ] = 1;
		}

		$params = apply_filters( 'litespeed_esi_params', $params, $block_id );
		$control = apply_filters('litespeed_esi_control', $control, $block_id );

		if ( !is_array($params) || !is_string($control) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( "[ESI] 🛑 Sub hooks returned Params: \n" . var_export($params, true) . "\ncache control: \n" . var_export($control, true) );

			return false;
		}

		// Build params for URL
		$appended_params = array(
			self::QS_ACTION	=> $block_id,
		);
		if ( ! empty( $control ) ) {
			$appended_params[ '_control' ] = $control;
		}
		if ( $params ) {
			$appended_params[ self::QS_PARAMS ] = base64_encode( json_encode( $params ) );
			Debug2::debug2( '[ESI] param ', $params );
		}

		// Append hash
		$appended_params[ '_hash' ] = $this->_gen_esi_md5( $appended_params );

		/**
		 * Escape potential chars
		 * @since 2.9.4
		 */
		$appended_params = array_map( 'urlencode', $appended_params );

		// Generate ESI URL
		$url = add_query_arg( $appended_params, trailingslashit( wp_make_link_relative( home_url() ) ) );

		$output = '';
		if ( $inline_param ) {
			$output .= self::_build_inline( $url, $inline_param );
		}

		$output .= "<esi:include src='$url'";
		if ( ! empty( $control ) ) {
			$output .= " cache-control='$control'";
		}
		if ( $svar ) {
			$output .= " as-var='1'";
		}
		if ( in_array( $block_id, self::$_combine_ids ) ) {
			$output .= " combine='sub'";
		}
		if ( $block_id == self::COMBO && isset( $_SERVER[ 'X-LSCACHE' ] ) && strpos( $_SERVER[ 'X-LSCACHE' ], 'combine' ) !== false ) {
			$output .= " combine='main'";
		}
		$output .= " />";

		if ( ! $silence ) {
			$output = "<!-- lscwp $wrapper -->$output<!-- lscwp $wrapper esi end -->";
		}

		Debug2::debug( "[ESI] 💕  [BLock_ID] $block_id \t[wrapper] $wrapper \t\t[Control] $control" );
		Debug2::debug2( $output );

		self::set_has_esi();

		// Convert to string to avoid html chars filter when using
		// Will reverse the buffer when output in self::finalize()
		if ( $preserved ) {
			$hash = md5( $output );
			$this->_esi_preserve_list[ $hash ] = $output;
			Debug2::debug( "[ESI] Preserved to $hash" );

			return $hash;
		}

		return $output;
	}

	/**
	 * Generate ESI hash md5
	 *
	 * @since  2.9.6
	 * @access private
	 */
	private function _gen_esi_md5( $params ) {
		$keys = array(
			self::QS_ACTION,
			'_control',
			self::QS_PARAMS,
		);

		$str = '';
		foreach ( $keys as $v ) {
			if ( isset( $params[ $v ] ) && is_string( $params[ $v ] ) ) {
				$str .= $params[ $v ];
			}
		}
		Debug2::debug2( '[ESI] md5_string=' . $str );

		return md5( $this->conf( Base::HASH ) . $str );
	}

	/**
	 * Parses the request parameters on an ESI request
	 *
	 * @since 1.1.3
	 * @access private
	 */
	private function _parse_esi_param( $qs_params = false ) {
		$req_params = false;
		if ( $qs_params ) {
			$req_params = $qs_params;
		}
		elseif ( isset( $_REQUEST[ self::QS_PARAMS ] ) ) {
			$req_params = $_REQUEST[ self::QS_PARAMS ];
		}

		if ( ! $req_params ) {
			return false;
		}

		$unencrypted = base64_decode( $req_params );
		if ( $unencrypted === false ) {
			return false;
		}

		Debug2::debug2( '[ESI] parms', $unencrypted );
		// $unencoded = urldecode($unencrypted); no need to do this as $_GET is already parsed
		$params = json_decode( $unencrypted, true );

		return $params;
	}

	/**
	 * Select the correct esi output based on the parameters in an ESI request.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function load_esi_block() {
		/**
		 * Validate if is a legal ESI req
		 * @since 2.9.6
		 */
		if ( empty( $_GET[ '_hash' ] ) || $this->_gen_esi_md5( $_GET ) != $_GET[ '_hash' ] ) {
			Debug2::debug( '[ESI] ❌ Failed to validate _hash' );
			return;
		}

		$params = $this->_parse_esi_param();

		if ( defined( 'LSCWP_LOG' ) ) {
			$logInfo = '[ESI] ⭕ ';
			if( ! empty( $params[ self::PARAM_NAME ] ) ) {
				$logInfo .= ' Name: ' . $params[ self::PARAM_NAME ] . ' ----- ';
			}
			$logInfo .= ' [ID] ' . LSCACHE_IS_ESI;
			Debug2::debug( $logInfo );
		}

		if ( ! empty( $params[ '_ls_silence' ] ) ) {
			! defined( 'LSCACHE_ESI_SILENCE' ) && define( 'LSCACHE_ESI_SILENCE', true );
		}

		/**
		 * Buffer needs to be JSON format
		 * @since  2.9.4
		 */
		if ( ! empty( $params[ 'is_json' ] ) ) {
			add_filter( 'litespeed_is_json', '__return_true' );
		}

		Tag::add( rtrim( Tag::TYPE_ESI, '.' ) );
		Tag::add( Tag::TYPE_ESI . LSCACHE_IS_ESI );

		// Debug2::debug(var_export($params, true ));

		/**
		 * Handle default cache control 'private,no-vary' for sub_esi_block() 	@ticket #923505
		 *
		 * @since  2.2.3
		 */
		if ( ! empty( $_GET[ '_control' ] ) ) {
			$control = explode( ',', $_GET[ '_control' ] );
			if ( in_array( 'private', $control ) ) {
				Control::set_private();
			}

			if ( in_array( 'no-vary', $control ) ) {
				Control::set_no_vary();
			}
		}

		do_action('litespeed_esi_load-' . LSCACHE_IS_ESI, $params);
	}

// The *_sub_* functions are helpers for the sub_* functions.
// The *_load_* functions are helpers for the load_* functions.

	/**
	 * Loads the default options for default WordPress widgets.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function widget_default_options($options, $widget) {
		if ( ! is_array($options) ) {
			return $options;
		}

		$widget_name = get_class($widget);
		switch ($widget_name) {
			case 'WP_Widget_Recent_Posts' :
			case 'WP_Widget_Recent_Comments' :
				$options[self::WIDGET_O_ESIENABLE] = Base::VAL_OFF;
				$options[self::WIDGET_O_TTL] = 86400;
				break;
			default :
				break;
		}
		return $options;
	}

	/**
	 * Hooked to the widget_display_callback filter.
	 * If the admin configured the widget to display via esi, this function
	 * will set up the esi request and cancel the widget display.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param array $instance Parameter used to build the widget.
	 * @param WP_Widget $widget The widget to build.
	 * @param array $args Parameter used to build the widget.
	 * @return mixed Return false if display through esi, instance otherwise.
	 */
	public function sub_widget_block( $instance, $widget, $args ) {
		// #210407
		if ( ! is_array( $instance ) ) {
			return $instance;
		}

		$name = get_class( $widget );
		if ( ! isset( $instance[ Base::OPTION_NAME ] ) ) {
			return $instance;
		}
		$options = $instance[ Base::OPTION_NAME ];
		if ( ! isset( $options ) || ! $options[ self::WIDGET_O_ESIENABLE ] ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( 'ESI 0 ' . $name . ': '. ( ! isset( $options ) ? 'not set' : 'set off' ) );

			return $instance;
		}

		$esi_private = $options[ self::WIDGET_O_ESIENABLE ] == Base::VAL_ON2 ? 'private,' : '';

		$params = array(
			self::PARAM_NAME => $name,
			self::PARAM_ID => $widget->id,
			self::PARAM_INSTANCE => $instance,
			self::PARAM_ARGS => $args
		);

		echo $this->sub_esi_block( 'widget', 'widget ' . $name, $params, $esi_private . 'no-vary' );

		return false;
	}

	/**
	 * Hooked to the wp_footer action.
	 * Sets up the ESI request for the admin bar.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global type $wp_admin_bar
	 */
	public function sub_admin_bar_block() {
		global $wp_admin_bar;

		if ( ! is_admin_bar_showing() || ! is_object($wp_admin_bar) ) {
			return;
		}

		// To make each admin bar ESI request different for `Edit` button different link
		$params = array(
			'ref' => $_SERVER[ 'REQUEST_URI' ],
		);

		echo $this->sub_esi_block( 'admin-bar', 'adminbar', $params );
	}

	/**
	 * Parses the esi input parameters and generates the widget for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global $wp_widget_factory
	 * @param array $params Input parameters needed to correctly display widget
	 */
	public function load_widget_block( $params ) {
		// global $wp_widget_factory;
		// $widget = $wp_widget_factory->widgets[ $params[ self::PARAM_NAME ] ];
		$option = $params[ self::PARAM_INSTANCE ];
		$option = $option[ Base::OPTION_NAME ];

		// Since we only reach here via esi, safe to assume setting exists.
		$ttl = $option[ self::WIDGET_O_TTL ];
		defined( 'LSCWP_LOG' ) && Debug2::debug( 'ESI widget render: name ' . $params[ self::PARAM_NAME ] . ', id ' . $params[ self::PARAM_ID ] . ', ttl ' . $ttl );
		if ( $ttl == 0 ) {
			Control::set_nocache( 'ESI Widget time to live set to 0' );
		}
		else {
			Control::set_custom_ttl( $ttl );

			if ( $option[ self::WIDGET_O_ESIENABLE ] == Base::VAL_ON2 ) {
				Control::set_private();
			}
			Control::set_no_vary();
			Tag::add( Tag::TYPE_WIDGET . $params[ self::PARAM_ID ] );
		}
		the_widget( $params[ self::PARAM_NAME ], $params[ self::PARAM_INSTANCE ], $params[ self::PARAM_ARGS ] );
	}

	/**
	 * Generates the admin bar for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function load_admin_bar_block( $params ) {

		if ( ! empty( $params[ 'ref' ] ) ) {
			$ref_qs = parse_url( $params[ 'ref' ], PHP_URL_QUERY );
			if ( ! empty( $ref_qs ) ) {
				parse_str( $ref_qs, $ref_qs_arr );

				if ( ! empty( $ref_qs_arr ) ) {
					foreach ( $ref_qs_arr as $k => $v ) {
						$_GET[ $k ] = $v;
					}
				}
			}
		}

		wp_admin_bar_render();
		if ( ! $this->conf( Base::O_ESI_CACHE_ADMBAR ) ) {
			Control::set_nocache( 'build-in set to not cacheable' );
		}
		else {
			Control::set_private();
			Control::set_no_vary();
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug( 'ESI: adminbar ref: ' . $_SERVER[ 'REQUEST_URI' ] );
	}


	/**
	 * Parses the esi input parameters and generates the comment form for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 * @param array $params Input parameters needed to correctly display comment form
	 */
	public function load_comment_form_block( $params ) {
		comment_form( $params[ self::PARAM_ARGS ], $params[ self::PARAM_ID ] );

		if ( ! $this->conf( Base::O_ESI_CACHE_COMMFORM ) ) {
			Control::set_nocache( 'build-in set to not cacheable' );
		}
		else {
			// by default comment form is public
			if ( Vary::has_vary() ) {
				Control::set_private();
				Control::set_no_vary();
			}
		}
	}

	/**
	 * Generate nonce for certain action
	 *
	 * @access public
	 * @since 2.6
	 */
	public function load_nonce_block( $params ) {
		$action = $params[ 'action' ];

		Debug2::debug( '[ESI] load_nonce_block [action] ' . $action );

		// set nonce TTL to half day
		Control::set_custom_ttl( 43200 );

		if ( Router::is_logged_in() ) {
			Control::set_private();
		}

		if ( function_exists( 'wp_create_nonce_litespeed_esi' ) ) {
			echo wp_create_nonce_litespeed_esi( $action );
		}
		else {
			echo wp_create_nonce( $action );
		}
	}

	/**
	 * Show original shortcode
	 *
	 * @access public
	 * @since 2.8
	 */
	public function load_esi_shortcode( $params ) {
		if ( isset( $params[ 'ttl' ] ) ) {
			if ( ! $params[ 'ttl' ] ) {
				Control::set_nocache( 'ESI shortcode att ttl=0' );
			}
			else {
				Control::set_custom_ttl( $params[ 'ttl' ] );
			}
			unset( $params[ 'ttl' ] );
		}

		// Replace to original shortcode
		$shortcode = $params[ 0 ];
		$atts_ori = array();
		foreach ( $params as $k => $v ) {
			if ( $k === 0 ) {
				continue;
			}

			$atts_ori[] = is_string( $k ) ? "$k='" . addslashes( $v ) . "'" : $v;
		}

		Tag::add( Tag::TYPE_ESI . "esi.$shortcode" );

		// Output original shortcode final content
		echo do_shortcode( "[$shortcode " . implode( ' ', $atts_ori ) . " ]" );
	}

	/**
	 * Hooked to the comment_form_defaults filter.
	 * Stores the default comment form settings.
	 * If sub_comment_form_block is triggered, the output buffer is cleared and an esi block is added. The remaining comment form is also buffered and cleared.
	 * Else there is no need to make the comment form ESI.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function register_comment_form_actions( $defaults ) {
		$this->esi_args = $defaults;
		echo GUI::clean_wrapper_begin();
		add_filter( 'comment_form_submit_button', array( $this, 'sub_comment_form_btn' ), 1000, 2 ); // To save the params passed in
		add_action( 'comment_form', array( $this, 'sub_comment_form_block' ), 1000 );
		return $defaults;
	}

	/**
	 * Store the args passed in comment_form for the ESI comment param usage in `$this->sub_comment_form_block()`
	 *
	 * @since  3.4
	 * @access public
	 */
	public function sub_comment_form_btn( $unused, $args ) {
		if ( empty( $args ) || empty( $this->esi_args ) ) {
			Debug2::debug( 'comment form args empty?' );
			return $unused;
		}
		$esi_args = array();

		// compare current args with default ones
		foreach ( $args as $k => $v ) {
			if ( ! isset( $this->esi_args[ $k ] ) ) {
				$esi_args[ $k ] = $v;
			}
			elseif ( is_array( $v ) ) {
				$diff = array_diff_assoc( $v, $this->esi_args[ $k ] );
				if ( ! empty( $diff ) ) {
					$esi_args[ $k ] = $diff;
				}
			}
			elseif ( $v !== $this->esi_args[ $k ] ) {
				$esi_args[ $k ] = $v;
			}
		}

		$this->esi_args = $esi_args;

		return $unused;
	}

	/**
	 * Hooked to the comment_form_submit_button filter.
	 *
	 * This method will compare the used comment form args against the default args. The difference will be passed to the esi request.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function sub_comment_form_block( $post_id ) {
		echo GUI::clean_wrapper_end();
		$params = array(
			self::PARAM_ID => $post_id,
			self::PARAM_ARGS => $this->esi_args,
		);

		echo $this->sub_esi_block( 'comment-form', 'comment form', $params );
		echo GUI::clean_wrapper_begin();
		add_action( 'comment_form_after', array( $this, 'comment_form_sub_clean' ) );
	}

	/**
	 * Hooked to the comment_form_after action.
	 * Cleans up the remaining comment form output.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function comment_form_sub_clean() {
		echo GUI::clean_wrapper_end();
	}

	/**
	 * Replace preseved blocks
	 *
	 * @since  2.6
	 * @access public
	 */
	public function finalize( $buffer ) {
		// Prepend combo esi block
		if ( self::$_combine_ids ) {
			Debug2::debug( '[ESI] 🍔 Enabled combo' );
			$esi_block = $this->sub_esi_block( self::COMBO, '__COMBINE_MAIN__', array(), 'no-cache', true );
			$buffer = $esi_block . $buffer;
		}

		// Bypass if no preserved list to be replaced
		if ( ! $this->_esi_preserve_list ) {
			return $buffer;
		}

		$keys = array_keys( $this->_esi_preserve_list );

		Debug2::debug( '[ESI] replacing preserved blocks', $keys );

		$buffer = str_replace( $keys, $this->_esi_preserve_list, $buffer );

		return $buffer;
	}

	/**
	 * Check if the content contains preserved list or not
	 *
	 * @since  3.3
	 */
	public function contain_preserve_esi( $content ) {
		$hit_list = array();
		foreach ( $this->_esi_preserve_list as $k => $v ) {
			if ( strpos( $content, '"' . $k . '"' ) !== false ) {
				$hit_list[] = '"' . $k . '"';
			}
			if ( strpos( $content, "'" . $k . "'" ) !== false ) {
				$hit_list[] = "'" . $k . "'";
			}
		}
		return $hit_list;
	}

}
<?php
/**
 * The optimize4 class.
 *
 * @since      	1.9
 * @package  	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Optimizer extends Root {
	private $_conf_css_font_display;

	/**
	 * Init optimizer
	 *
	 * @since  1.9
	 */
	public function __construct() {
		$this->_conf_css_font_display = $this->conf( Base::O_OPTM_CSS_FONT_DISPLAY );
	}

	/**
	 * Run HTML minify process and return final content
	 *
	 * @since  1.9
	 * @access public
	 */
	public function html_min( $content, $force_inline_minify = false ) {
		$options = array();

		if ( $force_inline_minify ) {
			$options[ 'jsMinifier' ] = __CLASS__ . '::minify_js';
		}

		/**
		 * Added exception capture when minify
		 * @since  2.2.3
		 */
		try {
			$obj = new Lib\HTML_MIN( $content, $options );
			$content_final = $obj->process();
			if ( ! defined( 'LSCACHE_ESI_SILENCE' ) ) {
				$content_final .= "\n" . '<!-- Page optimized by LiteSpeed Cache @' . date('Y-m-d H:i:s') . ' -->';
			}
			return $content_final;

		} catch ( \Exception $e ) {
			Debug2::debug( '******[Optmer] html_min failed: ' . $e->getMessage() );
			error_log( '****** LiteSpeed Optimizer html_min failed: ' . $e->getMessage() );
			return $content;
		}
	}

	/**
	 * Run minify process and save content
	 *
	 * @since  1.9
	 * @access public
	 */
	public function serve( $request_url, $file_type, $minify, $src_list ) {
		// Try Unique CSS
		if ( $file_type == 'css' ) {
			$content = false;
			if ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_OPTM_UCSS ) ) {
				$filename = $this->cls( 'CSS' )->load_ucss( $request_url );

				if ( $filename ) {
					return array( $filename, 'ucss' );
				}
			}
		}

		// Before generated, don't know the contented hash filename yet, so used url hash as tmp filename
		$file_path_prefix = $this->_build_filepath_prefix( $file_type );

		$url_tag = $request_url;
		$url_tag_for_file = md5( $request_url );
		if ( is_404() ) {
			$url_tag_for_file = $url_tag = '404';
		}
		elseif ( $file_type == 'css' && apply_filters( 'litespeed_ucss_per_pagetype', false ) ) {
			$url_tag_for_file = $url_tag = Utility::page_type();
		}

		$static_file = LITESPEED_STATIC_DIR . $file_path_prefix . $url_tag_for_file . '.' . $file_type;

		// Create tmp file to avoid conflict
		$tmp_static_file = $static_file . '.tmp';
		if ( file_exists( $tmp_static_file ) && time() - filemtime( $tmp_static_file ) <= 600 ) { // some other request is generating
			return false;
		}
		// File::save( $tmp_static_file, '/* ' . ( is_404() ? '404' : $request_url ) . ' */', true ); // Can't use this bcos this will get filecon md5 changed
		File::save( $tmp_static_file, '', true );

		// Load content
		$real_files = array();
		foreach ( $src_list as $src_info ) {
			$is_min = false;
			if ( ! empty( $src_info[ 'inl' ] ) ) { // Load inline
				$content = $src_info[ 'src' ];
			}
			else { // Load file
				$content = $this->load_file( $src_info[ 'src' ], $file_type );

				if ( ! $content ) {
					continue;
				}

				$is_min = $this->is_min( $src_info[ 'src' ] );
			}
			$content = $this->optm_snippet( $content, $file_type, $minify && ! $is_min, $src_info[ 'src' ], ! empty( $src_info[ 'media' ] ) ? $src_info[ 'media' ] : false );
			// Write to file
			File::save( $tmp_static_file, $content, true, true );
		}

		// validate md5
		$filecon_md5 = md5_file( $tmp_static_file );

		$final_file_path = $file_path_prefix . $filecon_md5 . '.' . $file_type;
		$realfile = LITESPEED_STATIC_DIR . $final_file_path;
		if ( ! file_exists( $realfile ) ) {
			rename( $tmp_static_file, $realfile );
			Debug2::debug2( '[Optmer] Saved static file [path] ' . $realfile );
		}
		else {
			unlink( $tmp_static_file );
		}

		$vary = $this->cls( 'Vary' )->finalize_full_varies();
		Debug2::debug2( "[Optmer] Save URL to file for [file_type] $file_type [file] $filecon_md5 [vary] $vary " );
		$this->cls( 'Data' )->save_url( $url_tag, $vary, $file_type, $filecon_md5, dirname( $realfile ) );

		return array( $filecon_md5 . '.' . $file_type, $file_type );
	}

	/**
	 * Load a single file
	 * @since  4.0
	 */
	public function optm_snippet( $content, $file_type, $minify, $src, $media = false ) {
		// CSS related features
		if ( $file_type == 'css' ) {
			// Font optimize
			if ( $this->_conf_css_font_display ) {
				$content = preg_replace( '#(@font\-face\s*\{)#isU', '${1}font-display:swap;', $content );
			}

			$content = preg_replace( '/@charset[^;]+;\\s*/', '', $content );

			if ( $media ) {
				$content = '@media ' . $media . '{' . $content . "\n}";
			}

			if ( $minify ) {
				$content = self::minify_css( $content );
			}

			$content = $this->cls( 'CDN' )->finalize( $content );

			if ( ( defined( 'LITESPEED_GUEST_OPTM' ) || $this->conf( Base::O_IMG_OPTM_WEBP_REPLACE ) ) && $this->cls( 'Media' )->webp_support() ) {
				$content = $this->cls( 'Media' )->replace_background_webp( $content );
			}

		}
		else {
			if ( $minify ) {
				$content = self::minify_js( $content );
			}
			else {
				$content = $this->_null_minifier( $content );
			}

			$content .= "\n;";
		}

		// Add filter
		$content = apply_filters( 'litespeed_optm_cssjs', $content, $file_type, $src );

		return $content;
	}

	/**
	 * Load remote/local resource
	 *
	 * @since  3.5
	 */
	public function load_file( $src, $file_type = 'css' ) {
		$real_file = Utility::is_internal_file( $src );
		$postfix = pathinfo( parse_url( $src, PHP_URL_PATH ), PATHINFO_EXTENSION );
		if ( ! $real_file || $postfix != $file_type ) {
			Debug2::debug2( '[CSS] Load Remote [' . $file_type . '] ' . $src );
			$this_url = substr( $src, 0, 2 ) == '//' ? set_url_scheme( $src ) : $src;
			$res = wp_remote_get( $this_url );
			$res_code = wp_remote_retrieve_response_code( $res );
			if ( is_wp_error( $res ) || $res_code == 404 ) {
				Debug2::debug2( '[CSS] ❌ Load Remote error [code] ' . $res_code );
				return false;
			}
			$con = wp_remote_retrieve_body( $res );
			if ( ! $con ) {
				return false;
			}

			if ( $file_type == 'css' ) {
				$dirname = dirname( $this_url ) . '/';

				$con = Lib\CSS_MIN\UriRewriter::prepend( $con, $dirname );
			}
		}
		else {
			Debug2::debug2( '[CSS] Load local [' . $file_type . '] ' . $real_file[ 0 ] );
			$con = File::read( $real_file[ 0 ] );

			if ( $file_type == 'css' ) {
				$dirname = dirname( $real_file[ 0 ] );

				$con = Lib\CSS_MIN\UriRewriter::rewrite( $con, $dirname );
			}
		}

		return $con;
	}

	/**
	 * Minify CSS
	 *
	 * @since  2.2.3
	 * @access private
	 */
	public static function minify_css( $data ) {
		try {
			$obj = new Lib\CSS_MIN\Minifier();
			return $obj->run( $data );

		} catch ( \Exception $e ) {
			Debug2::debug( '******[Optmer] minify_css failed: ' . $e->getMessage() );
			error_log( '****** LiteSpeed Optimizer minify_css failed: ' . $e->getMessage() );
			return $data;
		}
	}

	/**
	 * Minify JS
	 *
	 * Added exception capture when minify
	 *
	 * @since  2.2.3
	 * @access private
	 */
	public static function minify_js( $data, $js_type = '' ) {
		// For inline JS optimize, need to check if it's js type
		if ( $js_type ) {
			preg_match( '#type=([\'"])(.+)\g{1}#isU', $js_type, $matches );
			if ( $matches && $matches[ 2 ] != 'text/javascript' ) {
				Debug2::debug( '******[Optmer] minify_js bypass due to type: ' . $matches[ 2 ] );
				return $data;
			}
		}

		try {
			$data = Lib\JSMin::minify( $data );
			return $data;
		} catch ( \Exception $e ) {
			Debug2::debug( '******[Optmer] minify_js failed: ' . $e->getMessage() );
			// error_log( '****** LiteSpeed Optimizer minify_js failed: ' . $e->getMessage() );
			return $data;
		}
	}

	/**
	 * Basic minifier
	 *
	 * @access private
	 */
	private function _null_minifier( $content ) {
		$content = str_replace( "\r\n", "\n", $content );

		return trim( $content );
	}

	/**
	 * Check if the file is already min file
	 *
	 * @since  1.9
	 */
	public function is_min( $filename ) {
		$basename = basename( $filename );
		if ( preg_match( '/[-\.]min\.(?:[a-zA-Z]+)$/i', $basename ) ) {
			return true;
		}

		return false;
	}

}


<?php
/**
 * The plugin logging class.
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Debug2 extends Root {
	private static $log_path;
	private static $log_path_prefix;
	private static $_prefix;

	const TYPE_CLEAR_LOG = 'clear_log';
	const TYPE_BETA_TEST = 'beta_test';

	const BETA_TEST_URL = 'beta_test_url';

	const BETA_TEST_URL_WP = 'https://downloads.wordpress.org/plugin/litespeed-cache.zip';

	/**
	 * Log class Confructor
	 *
	 * NOTE: in this process, until last step ( define const LSCWP_LOG = true ), any usage to WP filter will not be logged to prevent infinite loop with log_filters()
	 *
	 * @since 1.1.2
	 * @access public
	 */
	public function __construct() {
		self::$log_path_prefix = defined( 'LSCWP_DEBUG_PATH' ) ? LSCWP_DEBUG_PATH : LSCWP_CONTENT_DIR;
		self::$log_path = self::$log_path_prefix . '/debug.log';
		if ( ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) && strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'lscache_' ) === 0 ) {
			self::$log_path = self::$log_path_prefix . '/crawler.log';
		}

		! defined( 'LSCWP_LOG_TAG' ) && define( 'LSCWP_LOG_TAG', get_current_blog_id() );

		if ( $this->conf( Base::O_DEBUG_LEVEL ) ) {
			! defined( 'LSCWP_LOG_MORE' ) && define( 'LSCWP_LOG_MORE', true );
		}

	}

	/**
	 * Beta test upgrade
	 *
	 * @since 2.9.5
	 * @access public
	 */
	public function beta_test( $zip = false ) {
		if ( ! $zip ) {
			if ( empty( $_REQUEST[ self::BETA_TEST_URL ] ) ) {
				return;
			}

			$zip = $_REQUEST[ self::BETA_TEST_URL ];
			if ( $zip !== Debug2::BETA_TEST_URL_WP ) {
				if ( $zip === 'latest' ) {
					$zip = Debug2::BETA_TEST_URL_WP;
				}
				else {
					// Generate zip url
					$zip = $this->_package_zip( $zip );
				}
			}
		}

		if ( ! $zip ) {
			Debug2::debug( '[Debug2] ❌  No ZIP file' );
			return;
		}

		Debug2::debug( '[Debug2] ZIP file ' . $zip );

		$update_plugins = get_site_transient( 'update_plugins' );
		if ( ! is_object( $update_plugins ) ) {
			$update_plugins = new \stdClass();
		}

		$plugin_info = new \stdClass();
		$plugin_info->new_version = Core::VER;
		$plugin_info->slug = Core::PLUGIN_NAME;
		$plugin_info->plugin = Core::PLUGIN_FILE;
		$plugin_info->package = $zip;
		$plugin_info->url = 'https://wordpress.org/plugins/litespeed-cache/';

		$update_plugins->response[ Core::PLUGIN_FILE ] = $plugin_info;

		set_site_transient( 'update_plugins', $update_plugins );

		// Run upgrade
		Activation::cls()->upgrade();
	}

	/**
	 * Git package refresh
	 *
	 * @since  2.9.5
	 * @access private
	 */
	private function _package_zip( $commit ) {
		$data = array(
			'commit'	=> $commit,
		);
		$res = Cloud::get( Cloud::API_BETA_TEST, $data );

		if ( empty( $res[ 'zip' ] ) ) {
			return false;
		}

		return $res[ 'zip' ];
	}

	/**
	 * Log Purge headers separately
	 *
	 * @since 2.7
	 * @access public
	 */
	public static function log_purge( $purge_header ) {
		// Check if debug is ON
		if ( ! defined( 'LSCWP_LOG' ) && ! defined( 'LSCWP_LOG_BYPASS_NOTADMIN' ) ) {
			return;
		}

		$purge_file = self::$log_path_prefix . '/debug.purge.log';

		self::cls()->_init_request( $purge_file );

		$msg = $purge_header . self::_backtrace_info( 6 );

		File::append( $purge_file, self::format_message( $msg ) );

	}

	/**
	 * Enable debug log
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function init() {
		$debug = $this->conf( Base::O_DEBUG );
		if ( $debug == Base::VAL_ON2 ) {
			if ( ! $this->cls( 'Router' )->is_admin_ip() ) {
				define( 'LSCWP_LOG_BYPASS_NOTADMIN', true );
				return;
			}
		}

		/**
		 * Check if hit URI includes/excludes
		 * This is after LSCWP_LOG_BYPASS_NOTADMIN to make `log_purge()` still work
		 * @since  3.0
		 */
		$list = $this->conf( Base::O_DEBUG_INC );
		if ( $list ) {
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $list );
			if ( ! $result ) {
				return;
			}
		}

		$list = $this->conf( Base::O_DEBUG_EXC );
		if ( $list ) {
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $list );
			if ( $result ) {
				return;
			}
		}

		if ( ! defined( 'LSCWP_LOG' ) ) {// If not initialized, do it now
			$this->_init_request();
			define( 'LSCWP_LOG', true );

		}
	}

	/**
	 * Create the initial log messages with the request parameters.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private function _init_request( $log_file = null ) {
		if ( ! $log_file ) {
			$log_file = self::$log_path;
		}

		// Check log file size
		$log_file_size = $this->conf( Base::O_DEBUG_FILESIZE );
		if ( file_exists( $log_file ) && filesize( $log_file ) > $log_file_size * 1000000 ) {
			File::save( $log_file, '' );
		}

		// For more than 2s's requests, add more break
		if ( file_exists( $log_file ) && time() - filemtime( $log_file ) > 2 ) {
			File::append( $log_file, "\n\n\n\n" );
		}

		if ( PHP_SAPI == 'cli' ) {
			return;
		}

		$servervars = array(
			'Query String' => '',
			'HTTP_ACCEPT' => '',
			'HTTP_USER_AGENT' => '',
			'HTTP_ACCEPT_ENCODING' => '',
			'HTTP_COOKIE' => '',
			'X-LSCACHE' => '',
			'LSCACHE_VARY_COOKIE' => '',
			'LSCACHE_VARY_VALUE' => '',
			'ESI_CONTENT_TYPE' => '',
		);
		$server = array_merge( $servervars, $_SERVER );
		$params = array();

		if ( isset( $_SERVER[ 'HTTPS' ] ) && $_SERVER[ 'HTTPS' ] == 'on' ) {
			$server['SERVER_PROTOCOL'] .= ' (HTTPS) ';
		}

		$param = sprintf( '💓 ------%s %s %s', $server['REQUEST_METHOD'], $server['SERVER_PROTOCOL'], strtok( $server['REQUEST_URI'], '?' ) );

		$qs = ! empty( $server['QUERY_STRING'] ) ? $server['QUERY_STRING'] : '';
		if ( $this->conf( Base::O_DEBUG_COLLAPS_QS ) ) {
			if ( strlen( $qs ) > 53 ) {
				$qs = substr( $qs, 0, 53 ) . '...';
			}
			if ( $qs ) {
				$param .= ' ? ' . $qs;
			}
			$params[] = $param;
		}
		else {
			$params[] = $param;
			$params[] = 'Query String: ' . $qs;
		}

		if ( ! empty( $_SERVER[ 'HTTP_REFERER' ] ) ) {
			$params[] = 'HTTP_REFERER: ' . $server[ 'HTTP_REFERER' ];
		}

		if ( defined( 'LSCWP_LOG_MORE' ) ) {
			$params[] = 'User Agent: ' . $server[ 'HTTP_USER_AGENT' ];
			$params[] = 'Accept: ' . $server['HTTP_ACCEPT'];
			$params[] = 'Accept Encoding: ' . $server['HTTP_ACCEPT_ENCODING'];
		}
		if ( $this->conf( Base::O_DEBUG_COOKIE ) ) {
			$params[] = 'Cookie: ' . $server['HTTP_COOKIE'];
		}
		if ( isset( $_COOKIE[ '_lscache_vary' ] ) ) {
			$params[] = 'Cookie _lscache_vary: ' . $_COOKIE[ '_lscache_vary' ];
		}
		if ( defined( 'LSCWP_LOG_MORE' ) ) {
			$params[] = 'X-LSCACHE: ' . ( ! empty( $server[ 'X-LSCACHE' ] ) ? 'true' : 'false' );
		}
		if( $server['LSCACHE_VARY_COOKIE'] ) {
			$params[] = 'LSCACHE_VARY_COOKIE: ' . $server['LSCACHE_VARY_COOKIE'];
		}
		if( $server['LSCACHE_VARY_VALUE'] ) {
			$params[] = 'LSCACHE_VARY_VALUE: ' . $server['LSCACHE_VARY_VALUE'];
		}
		if( $server['ESI_CONTENT_TYPE'] ) {
			$params[] = 'ESI_CONTENT_TYPE: ' . $server['ESI_CONTENT_TYPE'];
		}

		$request = array_map( __CLASS__ . '::format_message', $params );

		File::append( $log_file, $request );
	}

	/**
	 * Formats the log message with a consistent prefix.
	 *
	 * @since 1.0.12
	 * @access private
	 * @param string $msg The log message to write.
	 * @return string The formatted log message.
	 */
	private static function format_message( $msg ) {
		// If call here without calling get_enabled() first, improve compatibility
		if ( ! defined( 'LSCWP_LOG_TAG' ) ) {
			return $msg . "\n";
		}

		if ( ! isset( self::$_prefix ) ) {
			// address
			if ( PHP_SAPI == 'cli' ) {
				$addr = '=CLI=';
				if ( isset( $_SERVER[ 'USER' ] ) ) {
					$addr .= $_SERVER[ 'USER' ];
				}
				elseif ( $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] ) {
					$addr .= $_SERVER[ 'HTTP_X_FORWARDED_FOR' ];
				}
			}
			else {
				$addr = $_SERVER[ 'REMOTE_ADDR' ] . ':' . $_SERVER[ 'REMOTE_PORT' ];
			}

			// Generate a unique string per request
			self::$_prefix = sprintf( " [%s %s %s] ", $addr, LSCWP_LOG_TAG, Str::rrand( 3 ) );
		}
		list( $usec, $sec ) = explode(' ', microtime() );
		return date( 'm/d/y H:i:s', $sec + LITESPEED_TIME_OFFSET ) . substr( $usec, 1, 4 ) . self::$_prefix . $msg . "\n";
	}

	/**
	 * Direct call to log a debug message.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function debug( $msg, $backtrace_limit = false ) {
		if ( ! defined( 'LSCWP_LOG' ) ) {
			return;
		}

		if ( $backtrace_limit !== false ) {
			if ( ! is_numeric( $backtrace_limit ) ) {
				$backtrace_limit = self::trim_longtext( $backtrace_limit );
				if ( is_array( $backtrace_limit ) && count( $backtrace_limit ) == 1 && ! empty( $backtrace_limit[ 0 ] ) ) {
					$msg .= ' --- ' . $backtrace_limit[ 0 ];
				}
				else {
					$msg .= ' --- ' . var_export( $backtrace_limit, true );
				}
				self::push( $msg );
				return;
			}

			self::push( $msg, $backtrace_limit + 1 );
			return;
		}

		self::push( $msg );
	}

	/**
	 * Trim long string before array dump
	 * @since  3.3
	 */
	public static function trim_longtext( $backtrace_limit ) {
		if ( is_array( $backtrace_limit ) ) {
			$backtrace_limit = array_map( __CLASS__ . '::trim_longtext', $backtrace_limit );
		}
		if ( is_string( $backtrace_limit ) && strlen( $backtrace_limit ) > 500 ) {
			$backtrace_limit = substr( $backtrace_limit, 0, 1000 ) . '...';
		}
		return $backtrace_limit;
	}

	/**
	 * Direct call to log an advanced debug message.
	 *
	 * @since 1.2.0
	 * @access public
	 */
	public static function debug2( $msg, $backtrace_limit = false ) {
		if ( ! defined( 'LSCWP_LOG_MORE' ) ) {
			return;
		}
		self::debug( $msg, $backtrace_limit );
	}

	/**
	 * Logs a debug message.
	 *
	 * @since 1.1.0
	 * @access private
	 * @param string $msg The debug message.
	 * @param int $backtrace_limit Backtrace depth.
	 */
	private static function push( $msg, $backtrace_limit = false ) {
		// backtrace handler
		if ( defined( 'LSCWP_LOG_MORE' ) && $backtrace_limit !== false ) {
			$msg .= self::_backtrace_info( $backtrace_limit );
		}

		File::append( self::$log_path, self::format_message( $msg ) );
	}

	/**
	 * Backtrace info
	 *
	 * @since 2.7
	 */
	private static function _backtrace_info( $backtrace_limit ) {
		$msg = '';

		$trace = version_compare( PHP_VERSION, '5.4.0', '<' ) ? debug_backtrace() : debug_backtrace( false, $backtrace_limit + 3 );
		for ( $i=2; $i <= $backtrace_limit + 2; $i++ ) {// 0st => _backtrace_info(), 1st => push()
			if ( empty( $trace[ $i ][ 'class' ] ) ) {
				if ( empty( $trace[ $i ][ 'file' ] ) ) {
					break;
				}
				$log = "\n" . $trace[ $i ][ 'file' ];
			}
			else {
				if ( $trace[$i]['class'] == __CLASS__ ) {
					continue;
				}

				$args = '';
				if ( ! empty( $trace[ $i ][ 'args' ] ) ) {
					foreach ( $trace[ $i ][ 'args' ] as $v ) {
						if ( is_array( $v ) ) {
							$v = 'ARRAY';
						}
						if ( is_string( $v ) || is_numeric( $v ) ) {
							$args .= $v . ',';
						}
					}

					$args = substr( $args, 0, strlen( $args ) > 100 ? 100 : -1 );
				}

				$log = str_replace('Core', 'LSC', $trace[$i]['class']) . $trace[$i]['type'] . $trace[$i]['function'] . '(' . $args . ')';
			}
			if ( ! empty( $trace[$i-1]['line'] ) ) {
				$log .= '@' . $trace[$i-1]['line'];
			}
			$msg .= " => $log";
		}

		return $msg;
	}

	/**
	 * Clear log file
	 *
	 * @since 1.6.6
	 * @access private
	 */
	private function _clear_log() {
		File::save( self::$log_path, '' );
		File::save( self::$log_path_prefix . '/debug.purge.log', '' );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.6.6
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_CLEAR_LOG :
				$this->_clear_log();
				break;

			case self::TYPE_BETA_TEST :
				$this->beta_test();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php
/**
 * The report class
 *
 *
 * @since      1.1.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Report extends Base {
	const TYPE_SEND_REPORT = 'send_report';

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_SEND_REPORT:
				$this->post_env();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

	/**
	 * post env report number to ls center server
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public function post_env()
	{
		$report_con = $this->generate_environment_report();

		// Generate link
		$link = ! empty( $_POST[ 'link' ] ) ? esc_url( $_POST[ 'link' ] ) : '';

		$notes = ! empty( $_POST[ 'notes' ] ) ? esc_html( $_POST[ 'notes' ] ) : '';

		$data = array(
			'env' => $report_con,
			'link' => $link,
			'notes' => $notes,
		);

		$json = Cloud::post( Cloud::API_REPORT, $data );
		if ( ! is_array( $json ) ) {
			return;
		}

		$num = ! empty( $json[ 'num' ] ) ? $json[ 'num' ] : '--';
		$summary = array(
			'num'	=> $num,
			'dateline'	=> time(),
		);

		self::save_summary( $summary );

		return $num;
	}

	/**
	 * Gathers the environment details and creates the report.
	 * Will write to the environment report file.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public function generate_environment_report( $options = null ) {
		global $wp_version, $_SERVER;
		$frontend_htaccess = Htaccess::get_frontend_htaccess();
		$backend_htaccess = Htaccess::get_backend_htaccess();
		$paths = array($frontend_htaccess);
		if ( $frontend_htaccess != $backend_htaccess ) {
			$paths[] = $backend_htaccess;
		}

		if ( is_multisite() ) {
			$active_plugins = get_site_option('active_sitewide_plugins');
			if ( ! empty($active_plugins) ) {
				$active_plugins = array_keys($active_plugins);
			}
		}
		else {
			$active_plugins = get_option('active_plugins');
		}

		if ( function_exists('wp_get_theme') ) {
			$theme_obj = wp_get_theme();
			$active_theme = $theme_obj->get('Name');
		}
		else {
			$active_theme = get_current_theme();
		}

		$extras = array(
			'wordpress version' => $wp_version,
			'siteurl' => get_option( 'siteurl' ),
			'home' => get_option( 'home' ),
			'home_url' => home_url(),
			'locale' => get_locale(),
			'active theme' => $active_theme,
		);

		$extras[ 'active plugins' ] = $active_plugins;
		$extras[ 'cloud' ] = Cloud::get_summary();

		if ( is_null($options) ) {
			$options = $this->get_options( true );

			if ( is_multisite() ) {
				$options2 = $this->get_options();
				foreach ( $options2 as $k => $v ) {
					if ( $options[ $k ] !== $v ) {
						$options[ '[Overwritten] ' . $k ] = $v;
					}
				}
			}
		}

		if ( ! is_null($options) && is_multisite() ) {
			$blogs = Activation::get_network_ids();
			if ( ! empty($blogs) ) {
				$i = 0;
				foreach ( $blogs as $blog_id ) {
					if ( ++$i > 3 ) { // Only log 3 subsites
						break;
					}
					$opts = $this->cls( 'Conf' )->load_options( $blog_id, true );
					if ( isset($opts[ self::O_CACHE ]) ) {
						$options['blog ' . $blog_id . ' radio select'] = $opts[ self::O_CACHE ];
					}
				}
			}
		}

		// Security: Remove cf key in report
		$secure_fields = array(
			self::O_CDN_CLOUDFLARE_KEY,
			self::O_OBJECT_PSWD,
		);
		foreach ( $secure_fields as $v ) {
			if ( ! empty( $options[ $v ] ) ) {
				$options[ $v ] = str_repeat( '*', strlen( $options[ $v ] ) );
			}
		}

		$report = $this->build_environment_report($_SERVER, $options, $extras, $paths);
		return $report;
	}

	/**
	 * Builds the environment report buffer with the given parameters
	 *
	 * @access private
	 */
	private function build_environment_report($server, $options, $extras = array(), $htaccess_paths = array())
	{
		$server_keys = array(
			'DOCUMENT_ROOT'=>'',
			'SERVER_SOFTWARE'=>'',
			'X-LSCACHE'=>'',
			'HTTP_X_LSCACHE'=>''
		);
		$server_vars = array_intersect_key($server, $server_keys);
		$server_vars[] = "LSWCP_TAG_PREFIX = " . LSWCP_TAG_PREFIX;

		$server_vars = array_merge( $server_vars, $this->cls( 'Base' )->server_vars() );

		$buf = $this->_format_report_section('Server Variables', $server_vars);

		$buf .= $this->_format_report_section('Wordpress Specific Extras', $extras);

		$buf .= $this->_format_report_section('LSCache Plugin Options', $options);

		if ( empty($htaccess_paths) ) {
			return $buf;
		}

		foreach ( $htaccess_paths as $path ) {
			if ( ! file_exists($path) || ! is_readable($path) ) {
				$buf .= $path . " does not exist or is not readable.\n";
				continue;
			}

			$content = file_get_contents($path);
			if ( $content === false ) {
				$buf .= $path . " returned false for file_get_contents.\n";
				continue;
			}
			$buf .= $path . " contents:\n" . $content . "\n\n";
		}
		return $buf;
	}

	/**
	 * Creates a part of the environment report based on a section header and an array for the section parameters.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private function _format_report_section( $section_header, $section )
	{
		$tab = '    '; // four spaces

		if ( empty( $section ) ) {
			return 'No matching ' . $section_header . "\n\n";
		}
		$buf = $section_header;

		foreach ( $section as $k => $v ) {
			$buf .= "\n" . $tab;

			if ( ! is_numeric( $k ) ) {
				$buf .= $k . ' = ';
			}

			if ( ! is_string( $v ) ) {
				$v = var_export( $v, true );
			}

			$buf .= $v;
		}
		return $buf . "\n\n";
	}

}
<?php
/**
 * The Doc class.
 *
 * @since     	2.2.7
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Doc {
	// protected static $_instance;

	/**
	 * Changes affect crawler list warning
	 *
	 * @since  4.3
	 * @access public
	 */
	public static function crawler_affected() {
		echo '<font class="litespeed-primary">';
		echo '⚠️ ' . __( 'This setting will regenerate crawler list and clear the disabled list!' , 'litespeed-cache' );
		echo '</font>';
	}

	/**
	 * Privacy policy
	 *
	 * @since 2.2.7
	 * @access public
	 */
	public static function privacy_policy() {
		return __( 'This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.', 'litespeed-cache' )
			. sprintf( __( 'Please see %s for more details.', 'litespeed-cache' ), '<a href="https://quic.cloud/privacy-policy/" target="_blank">https://quic.cloud/privacy-policy/</a>' );
	}


	/**
	 * Learn more link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function learn_more( $url, $title = false, $self = false, $class = false, $return = false ) {
		if ( ! $class ) {
			$class = 'litespeed-learn-more';
		}

		if ( ! $title ) {
			$title = __( 'Learn More', 'litespeed-cache' );
		}

		$self = $self ? '' : "target='_blank'";

		$txt = " <a href='$url' $self class='$class'>$title</a>";

		if ( $return ) {
			return $txt;
		}

		echo $txt;
	}

	/**
	 * One per line
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function one_per_line( $return = false ) {
		$str = __( 'One per line.', 'litespeed-cache' );
		if ( $return ) {
			return $str;
		}
		echo $str;
	}

	/**
	 * One per line
	 *
	 * @since  3.4
	 * @access public
	 */
	public static function full_or_partial_url( $string_only = false ) {
		if ( $string_only ) {
			echo __( 'Both full and partial strings can be used.', 'litespeed-cache' );
		}
		else {
			echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' );
		}
	}

	/**
	 * Notice to edit .htaccess
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function notice_htaccess() {
		echo '<font class="litespeed-primary">';
		echo '⚠️ ' . __( 'This setting will edit the .htaccess file.', 'litespeed-cache' );
		echo ' <a href="https://docs.litespeedtech.com/lscache/lscwp/toolbox/#edit-htaccess-tab" target="_blank" class="litespeed-learn-more">' . __( 'Learn More', 'litespeed-cache' ) . '</a>';
		echo '</font>';
	}

	/**
	 * Notice for whitelist IPs
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function notice_ips() {
		echo '<div class="litespeed-primary">';
		echo '⚠️ ' . sprintf( __( 'For online services to work correctly, you must allowlist all %s server IPs.', 'litespeed-cache' ), 'QUIC.cloud' ) . '<br/>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . __( 'Before generating key, please verify all IPs on this list are allowlisted', 'litespeed-cache' ) . ': ';
		echo '<a href="' . Cloud::CLOUD_IPS . '" target="_blank">' . __( 'Current Online Server IPs', 'litespeed-cache' ) . '</a>';
		echo '</div>';
	}

}
<?php
/**
 * The plugin purge class for X-LiteSpeed-Purge
 *
 * @since      	1.1.3
 * @since  		2.2 Refactored. Changed access from public to private for most func and class variables.
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Purge extends Base {
	const LOG_TAG = '🧹';

	protected $_pub_purge = array();
	protected $_pub_purge2 = array();
	protected $_priv_purge = array();
	protected $_purge_related = false;
	protected $_purge_single = false;


	const X_HEADER = 'X-LiteSpeed-Purge';
	const X_HEADER2 = 'X-LiteSpeed-Purge2';
	const DB_QUEUE = 'queue';
	const DB_QUEUE2 = 'queue2';

	const TYPE_PURGE_ALL = 'purge_all';
	const TYPE_PURGE_ALL_LSCACHE = 'purge_all_lscache';
	const TYPE_PURGE_ALL_CSSJS = 'purge_all_cssjs';
	const TYPE_PURGE_ALL_LOCALRES = 'purge_all_localres';
	const TYPE_PURGE_ALL_CCSS = 'purge_all_ccss';
	const TYPE_PURGE_ALL_UCSS = 'purge_all_ucss';
	const TYPE_PURGE_ALL_LQIP 			= 'purge_all_lqip';
	const TYPE_PURGE_ALL_AVATAR = 'purge_all_avatar';
	const TYPE_PURGE_ALL_OBJECT = 'purge_all_object';
	const TYPE_PURGE_ALL_OPCACHE = 'purge_all_opcache';

	const TYPE_PURGE_FRONT = 'purge_front';
	const TYPE_PURGE_FRONTPAGE = 'purge_frontpage';
	const TYPE_PURGE_PAGES = 'purge_pages';
	const TYPE_PURGE_ERROR = 'purge_error';

	/**
	 * Init hooks
	 *
	 * @since  3.0
	 */
	public function init() {
		//register purge actions
		$purge_post_events = array(
			// 'edit_post',
			// 'save_post',
			'delete_post',
			'wp_trash_post',
			// 'clean_post_cache', // This will disable wc's not purge product when stock status not change setting
			'wp_update_comment_count', // TODO: check if needed for non ESI
		);
		foreach ( $purge_post_events as $event ) {
			// this will purge all related tags
			add_action( $event, array( $this, 'purge_post' ) );
		}

		// Purge post only when status is/was publish
		add_action( 'transition_post_status', array( $this, 'purge_publish' ), 10, 3 );

		add_action( 'wp_update_comment_count', array( $this, 'purge_feeds' ) );

	}

	/**
	 * Only purge publish related status post
	 *
	 * @since 3.0
	 * @access public
	 */
	public function purge_publish( $new_status, $old_status, $post ) {
		if ( $new_status != 'publish' && $old_status != 'publish' ) {
			return;
		}

		$this->purge_post( $post->ID );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.8
	 * @access public
	 */
	public function handler() {
		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_PURGE_ALL:
				$this->_purge_all();
				break;

			case self::TYPE_PURGE_ALL_LSCACHE:
				$this->_purge_all_lscache();
				break;

			case self::TYPE_PURGE_ALL_CSSJS:
				$this->_purge_all_cssjs();
				break;

			case self::TYPE_PURGE_ALL_LOCALRES:
				$this->_purge_all_localres();
				break;

			case self::TYPE_PURGE_ALL_CCSS:
				$this->_purge_all_ccss();
				break;

			case self::TYPE_PURGE_ALL_UCSS:
				$this->_purge_all_ucss();
				break;

			case self::TYPE_PURGE_ALL_LQIP:
				$this->_purge_all_lqip();
				break;

			case self::TYPE_PURGE_ALL_AVATAR:
				$this->_purge_all_avatar();
				break;

			case self::TYPE_PURGE_ALL_OBJECT:
				$this->_purge_all_object();
				break;

			case self::TYPE_PURGE_ALL_OPCACHE:
				$this->purge_all_opcache();
				break;

			case self::TYPE_PURGE_FRONT:
				$this->_purge_front();
				break;

			case self::TYPE_PURGE_FRONTPAGE:
				$this->_purge_frontpage();
				break;

			case self::TYPE_PURGE_PAGES:
				$this->_purge_pages();
				break;

			case strpos( $type, self::TYPE_PURGE_ERROR ) === 0:
				$this->_purge_error( substr( $type, strlen( self::TYPE_PURGE_ERROR ) ) );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

	/**
	 * Shortcut to purge all lscache
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function purge_all( $reason = false ) {
		self::cls()->_purge_all( $reason );
	}

	/**
	 * Purge all caches (lscache/op/oc)
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _purge_all( $reason = false ) {
		$this->_purge_all_lscache( true );
		$this->_purge_all_cssjs( true );
		$this->_purge_all_localres( true );
		// $this->_purge_all_ccss( true );
		// $this->_purge_all_lqip( true );
		$this->_purge_all_object( true );
		$this->purge_all_opcache( true );

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}

		self::debug( 'Purge all ' . $reason, 3 );

		$msg = __( 'Purged all caches successfully.', 'litespeed-cache' );
		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );

		do_action( 'litespeed_purged_all' );
	}

	/**
	 * Alerts LiteSpeed Web Server to purge all pages.
	 *
	 * For multisite installs, if this is called by a site admin (not network admin),
	 * it will only purge all posts associated with that site.
	 *
	 * @since 2.2
	 * @access public
	 */
	private function _purge_all_lscache( $silence = false ) {
		$this->_add( '*' );

		if ( ! $silence ) {
			$msg = __( 'Notified LiteSpeed Web Server to purge all LSCache entries.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Delete all critical css
	 *
	 * @since    2.3
	 * @access   private
	 */
	private function _purge_all_ccss( $silence = false ) {
		do_action( 'litespeed_purged_all_ccss' );

		$this->rm_cache_folder( 'ccss' );

		$this->cls( 'Data' )->url_file_clean( 'ccss' );

		if ( ! $silence ) {
			$msg = __( 'Cleaned all Critical CSS files.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Delete all unique css
	 *
	 * @since    2.3
	 * @access   private
	 */
	private function _purge_all_ucss( $silence = false ) {
		do_action( 'litespeed_purged_all_ucss' );

		$this->rm_cache_folder( 'ucss' );

		$this->cls( 'Data' )->url_file_clean( 'ucss' );

		if ( ! $silence ) {
			$msg = __( 'Cleaned all Unique CSS files.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Purge one UCSS by URL
	 *
	 * @since 4.5
	 * @access public
	 */
	public static function purge_ucss( $post_id_or_url ) {
		self::debug( 'Purge a single UCSS: ' . $post_id_or_url );
		// If is post_id, generate URL
		if ( ! preg_match( '/\D/', $post_id_or_url ) ) {
			$post_id_or_url = get_permalink( $post_id_or_url );
		}
		$post_id_or_url = untrailingslashit( $post_id_or_url );

		Data::cls()->mark_as_expired( $post_id_or_url );
	}

	/**
	 * Delete all LQIP images
	 *
	 * @since    3.0
	 * @access   private
	 */
	private function _purge_all_lqip( $silence = false ) {
		do_action( 'litespeed_purged_all_lqip' );

		$this->rm_cache_folder( 'lqip' );

		if ( ! $silence ) {
			$msg = __( 'Cleaned all LQIP files.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Delete all avatar images
	 *
	 * @since    3.0
	 * @access   private
	 */
	private function _purge_all_avatar( $silence = false ) {
		do_action( 'litespeed_purged_all_avatar' );

		$this->rm_cache_folder( 'avatar' );

		if ( ! $silence ) {
			$msg = __( 'Cleaned all Gravatar files.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Delete all localized JS
	 *
	 * @since    3.3
	 * @access   private
	 */
	private function _purge_all_localres( $silence = false ) {
		do_action( 'litespeed_purged_all_localres' );

		$this->_add( Tag::TYPE_LOCALRES );

		if ( ! $silence ) {
			$msg = __( 'Cleaned all localized resource entries.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Alerts LiteSpeed Web Server to purge pages.
	 *
	 * @since    1.2.2
	 * @access   private
	 */
	private function _purge_all_cssjs( $silence = false ) {
		if ( defined( 'LITESPEED_DID_send_headers' ) ) {
			self::debug( "❌ Bypassed cssjs delete as header sent (lscache purge after this point will fail)" );
			return;
		}
		$this->_purge_all_lscache( $silence ); // Purge CSSJS must purge lscache too to avoid 404

		do_action( 'litespeed_purged_all_cssjs' );

		Optimize::update_option( Optimize::ITEM_TIMESTAMP_PURGE_CSS, time() );

		$this->_add( Tag::TYPE_MIN );

		$this->rm_cache_folder( 'css' );
		$this->rm_cache_folder( 'js' );

		$this->cls( 'Data' )->url_file_clean( 'css' );
		$this->cls( 'Data' )->url_file_clean( 'js' );

		// Clear UCSS queue as it used combined CSS to generate
		$this->clear_q( 'ucss' );

		if ( ! $silence ) {
			$msg = __( 'Notified LiteSpeed Web Server to purge CSS/JS entries.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Purge opcode cache
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function purge_all_opcache( $silence = false ) {
		if ( ! Router::opcache_enabled() ) {
			self::debug( 'Failed to reset opcode cache due to opcache not enabled' );

			if ( ! $silence ) {
				$msg = __( 'Opcode cache is not enabled.', 'litespeed-cache' );
				Admin_Display::error( $msg );
			}

			return false;
		}

		// Purge opcode cache
		opcache_reset();
		self::debug( 'Reset opcode cache' );

		if ( ! $silence ) {
			$msg = __( 'Reset the entire opcode cache successfully.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}

		return true;
	}

	/**
	 * Purge object cache
	 *
	 * @since  3.4
	 * @access public
	 */
	public static function purge_all_object( $silence = true ) {
		self::cls()->_purge_all_object( $silence );
	}

	/**
	 * Purge object cache
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _purge_all_object( $silence = false ) {
		if ( ! defined( 'LSCWP_OBJECT_CACHE' ) ) {
			self::debug( 'Failed to flush object cache due to object cache not enabled' );

			if ( ! $silence ) {
				$msg = __( 'Object cache is not enabled.', 'litespeed-cache' );
				Admin_Display::error( $msg );
			}

			return false;
		}

		do_action( 'litespeed_purged_all_object' );

		$this->cls( 'Object_Cache' )->flush();
		self::debug( 'Flushed object cache' );

		if ( ! $silence ) {
			$msg = __( 'Purge all object caches successfully.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}

		return true;
	}

	/**
	 * Adds new public purge tags to the array of purge tags for the request.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param mixed $tags Tags to add to the list.
	 */
	public static function add( $tags, $purge2 = false ) {
		self::cls()->_add( $tags, $purge2 );
	}

	/**
	 * Add tags to purge
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _add( $tags, $purge2 = false ) {
		if ( ! is_array( $tags ) ) {
			$tags = array( $tags );
		}

		$tags = $this->_prepend_bid( $tags );

		if ( ! array_diff( $tags, $purge2 ? $this->_pub_purge2 : $this->_pub_purge ) ) {
			return;
		}

		if ( $purge2 ) {
			$this->_pub_purge2 = array_merge( $this->_pub_purge2, $tags );
			$this->_pub_purge2 = array_unique( $this->_pub_purge2 );
		}
		else {
			$this->_pub_purge = array_merge( $this->_pub_purge, $tags );
			$this->_pub_purge = array_unique( $this->_pub_purge );
		}
		self::debug( 'added ' . implode( ',', $tags ) . ( $purge2 ? ' [Purge2]' : '' ), 8 );

		// Send purge header immediately
		$curr_built = $this->_build( $purge2 );
		if ( defined( 'LITESPEED_CLI' ) ) {
			// Can't send, already has output, need to save and wait for next run
			self::update_option( $purge2 ? self::DB_QUEUE2 : self::DB_QUEUE, $curr_built );
			self::debug( 'CLI request, queue stored: ' . $curr_built );
		}
		else {
			@header( $curr_built );
			if ( defined( 'LITESPEED_DID_send_headers' ) && apply_filters( 'litespeed_delay_purge', false ) ) {
				self::update_option( $purge2 ? self::DB_QUEUE2 : self::DB_QUEUE, $curr_built );
				self::debug( 'Output existed, queue stored: ' . $curr_built );
			}
			self::debug( $curr_built );
		}

	}

	/**
	 * Adds new private purge tags to the array of purge tags for the request.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param mixed $tags Tags to add to the list.
	 */
	public static function add_private( $tags ) {
		self::cls()->_add_private( $tags );
	}

	/**
	 * Add private ESI tag to purge list
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_esi( $tag ) {
		self::add_private( Tag::TYPE_ESI . $tag );
	}

	/**
	 * Add private all tag to purge list
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_all() {
		self::add_private( '*' );
	}

	/**
	 * Add tags to private purge
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _add_private( $tags ) {
		if ( ! is_array( $tags ) ) {
			$tags = array( $tags );
		}

		$tags = $this->_prepend_bid( $tags );

		if ( ! array_diff( $tags, $this->_priv_purge ) ) {
			return;
		}

		self::debug( 'added [private] ' . implode( ',', $tags ), 3 );

		$this->_priv_purge = array_merge( $this->_priv_purge, $tags );
		$this->_priv_purge = array_unique( $this->_priv_purge );

		// Send purge header immediately
		@header( $this->_build() );
	}


	/**
	 * Incorporate blog_id into purge tags for multisite
	 *
	 * @since 4.0
	 * @access private
	 * @param mixed $tags Tags to add to the list.
	*/
	private function _prepend_bid( $tags ){
		if ( in_array('*', $tags ) ){
			return array( '*' );
		}

		$curr_bid = is_multisite() ? get_current_blog_id() : '';

		foreach ( $tags as $k => $v ) {
			$tags[ $k ] = $curr_bid. '_' .$v;
		}
		return $tags;
	}


	/**
	 * Activate `purge related tags` for Admin QS.
	 *
	 * @since    1.1.3
	 * @access   public
	 */
	public static function set_purge_related() {
		self::cls()->_purge_related = true;
	}

	/**
	 * Activate `purge single url tag` for Admin QS.
	 *
	 * @since    1.1.3
	 * @access   public
	 */
	public static function set_purge_single() {
		self::cls()->_purge_single = true;
	}

	/**
	 * Purge frontend url
	 *
	 * @since 1.3
	 * @since 2.2 Renamed from `frontend_purge`; Access changed from public
	 * @access private
	 */
	private function _purge_front() {
		if ( empty( $_SERVER[ 'HTTP_REFERER' ] ) ) {
			exit( 'no referer' );
		}

		$this->purge_url( $_SERVER[ 'HTTP_REFERER' ] );

		wp_redirect( $_SERVER[ 'HTTP_REFERER' ] );
		exit();
	}

	/**
	 * Alerts LiteSpeed Web Server to purge the front page.
	 *
	 * @since    1.0.3
	 * @since  	 2.2 	Access changed from public to private, renamed from `_purge_front`
	 * @access   private
	 */
	private function _purge_frontpage() {
		$this->_add( Tag::TYPE_FRONTPAGE );
		if ( LITESPEED_SERVER_TYPE !== 'LITESPEED_SERVER_OLS' ) {
			$this->_add_private( Tag::TYPE_FRONTPAGE );
		}

		$msg = __( 'Notified LiteSpeed Web Server to purge the front page.', 'litespeed-cache' );
		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
	}

	/**
	 * Alerts LiteSpeed Web Server to purge pages.
	 *
	 * @since    1.0.15
	 * @access   private
	 */
	private function _purge_pages() {
		$this->_add( Tag::TYPE_PAGES );

		$msg = __( 'Notified LiteSpeed Web Server to purge all pages.', 'litespeed-cache' );
		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
	}

	/**
	 * Alerts LiteSpeed Web Server to purge error pages.
	 *
	 * @since    1.0.14
	 * @access   private
	 */
	private function _purge_error( $type = false ) {
		$this->_add( Tag::TYPE_HTTP );

		if ( ! $type || ! in_array( $type, array( '403', '404', '500' ) ) ) {
			return;
		}

		$this->_add( Tag::TYPE_HTTP . $type );

		$msg = __( 'Notified LiteSpeed Web Server to purge error pages.', 'litespeed-cache' );
		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
	}

	/**
	 * Callback to add purge tags if admin selects to purge selected category pages.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_cat( $value ) {
		$val = trim( $value );
		if ( empty( $val ) ) {
			return;
		}
		if ( preg_match( '/^[a-zA-Z0-9-]+$/', $val ) == 0 ) {
			self::debug( "$val cat invalid" );
			return;
		}
		$cat = get_category_by_slug( $val );
		if ( $cat == false ) {
			self::debug( "$val cat not existed/published" );
			return;
		}

		self::add( Tag::TYPE_ARCHIVE_TERM . $cat->term_id );

		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( sprintf( __( 'Purge category %s', 'litespeed-cache' ), $val ) );
	}


	/**
	 * Callback to add purge tags if admin selects to purge selected tag pages.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_tag( $val ) {
		$val = trim( $val );
		if ( empty( $val ) ) {
			return;
		}
		if ( preg_match( '/^[a-zA-Z0-9-]+$/', $val ) == 0 ) {
			self::debug( "$val tag invalid" );
			return;
		}
		$term = get_term_by( 'slug', $val, 'post_tag' );
		if ( $term == 0 ) {
			self::debug( "$val tag not exist" );
			return;
		}

		self::add( Tag::TYPE_ARCHIVE_TERM . $term->term_id );

		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( sprintf( __( 'Purge tag %s', 'litespeed-cache' ), $val ) );
	}

	/**
	 * Callback to add purge tags if admin selects to purge selected urls.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_url( $url, $purge2 = false, $quite = false ) {
		$val = trim( $url );
		if ( empty( $val ) ) {
			return;
		}

		if ( strpos( $val, '<' ) !== false ) {
			self::debug( "$val url contains <" );
			return;
		}

		$val = Utility::make_relative( $val );

		$hash = Tag::get_uri_tag( $val );

		if ( $hash === false ) {
			self::debug( "$val url invalid" );
			return;
		}

		self::add( $hash, $purge2 );

		! $quite && ! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( sprintf( __( 'Purge url %s', 'litespeed-cache' ), $val ) );
	}

	/**
	 * Purge a list of pages when selected by admin. This method will look at the post arguments to determine how and what to purge.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_list() {
		if ( ! isset($_REQUEST[Admin_Display::PURGEBYOPT_SELECT]) || ! isset($_REQUEST[Admin_Display::PURGEBYOPT_LIST]) ) {
			return;
		}
		$sel = $_REQUEST[Admin_Display::PURGEBYOPT_SELECT];
		$list_buf = $_REQUEST[Admin_Display::PURGEBYOPT_LIST];
		if ( empty($list_buf) ) {
			return;
		}
		$list_buf = str_replace(",", "\n", $list_buf);// for cli
		$list = explode("\n", $list_buf);
		switch($sel) {
			case Admin_Display::PURGEBY_CAT:
				$cb = 'purge_cat';
				break;
			case Admin_Display::PURGEBY_PID:
				$cb = 'purge_post';
				break;
			case Admin_Display::PURGEBY_TAG:
				$cb = 'purge_tag';
				break;
			case Admin_Display::PURGEBY_URL:
				$cb = 'purge_url';
				break;

			default:
				return;
		}
		array_map( array( $this, $cb ), $list );

		// for redirection
		$_GET[ Admin_Display::PURGEBYOPT_SELECT ] = $sel;
	}

	/**
	 * Purge ESI
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge_esi( $tag ) {
		self::add( Tag::TYPE_ESI . $tag );
	}

	/**
	 * Purge a certain post type
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge_posttype( $post_type ) {
		self::add( Tag::TYPE_ARCHIVE_POSTTYPE . $post_type );
		self::add( $post_type );
	}

	/**
	 * Purge all related tags to a post.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function purge_post( $pid ) {
		$pid = intval( $pid );
		// ignore the status we don't care
		if ( ! $pid || ! in_array( get_post_status( $pid ), array( 'publish', 'trash', 'private', 'draft' ) ) ) {
			return;
		}

		$purge_tags = $this->_get_purge_tags_by_post( $pid );
		if ( ! $purge_tags ) {
			return;
		}

		self::add( $purge_tags );
		if ( $this->conf( self::O_CACHE_REST ) ) {
			self::add( Tag::TYPE_REST );
		}

		// $this->cls( 'Control' )->set_stale();
	}

	/**
	 * Hooked to the load-widgets.php action.
	 * Attempts to purge a single widget from cache.
	 * If no widget id is passed in, the method will attempt to find the widget id.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function purge_widget( $widget_id = null ) {
		if ( is_null($widget_id) ) {
			$widget_id = $_POST['widget-id'];
			if ( is_null($widget_id) ) {
				return;
			}
		}
		self::add(Tag::TYPE_WIDGET . $widget_id);
		self::add_private(Tag::TYPE_WIDGET . $widget_id);
	}

	/**
	 * Hooked to the wp_update_comment_count action.
	 * Purges the comment widget when the count is updated.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global type $wp_widget_factory
	 */
	public static function purge_comment_widget() {
		global $wp_widget_factory;
		if ( ! isset( $wp_widget_factory->widgets[ 'WP_Widget_Recent_Comments' ] ) ) {
			return;
		}
		$recent_comments = $wp_widget_factory->widgets['WP_Widget_Recent_Comments'];
		if ( !is_null($recent_comments) ) {
			self::add(Tag::TYPE_WIDGET . $recent_comments->id);
			self::add_private(Tag::TYPE_WIDGET . $recent_comments->id);
		}
	}

	/**
	 * Purges feeds on comment count update.
	 *
	 * @since 1.0.9
	 * @access public
	 */
	public function purge_feeds() {
		if ( $this->conf( self::O_CACHE_TTL_FEED ) > 0 ) {
			self::add( Tag::TYPE_FEED );
		}
	}

	/**
	 * Purges all private cache entries when the user logs out.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function purge_on_logout() {
		self::add_private('*');
	}

	/**
	 * Generate all purge tags before output
	 *
	 * @access private
	 * @since 1.1.3
	 */
	private function _finalize() {
		// Make sure header output only run once
		if ( ! defined( 'LITESPEED_DID_' . __FUNCTION__ ) ) {
			define( 'LITESPEED_DID_' . __FUNCTION__, true );
		}
		else {
			return;
		}

		do_action('litespeed_purge_finalize');

		// Append unique uri purge tags if Admin QS is `PURGESINGLE`
		if ( $this->_purge_single ) {
			$this->_pub_purge[] = Tag::build_uri_tag(); // TODO: add private tag too
		}
		// Append related purge tags if Admin QS is `PURGE`
		if ( $this->_purge_related ) {
			// Before this, tags need to be finalized
			$tags_related = Tag::output_tags();
			// NOTE: need to remove the empty item `B1_` to avoid purging all
			$tags_related = array_filter($tags_related);
			if ( $tags_related ) {
				$this->_pub_purge = array_merge($this->_pub_purge, $tags_related);
			}
		}

		if ( ! empty($this->_pub_purge) ) {
			$this->_pub_purge = array_unique($this->_pub_purge);
		}

		if ( ! empty($this->_priv_purge) ) {
			$this->_priv_purge = array_unique($this->_priv_purge);
		}
	}

	/**
	 * Gathers all the purge headers.
	 *
	 * This will collect all site wide purge tags as well as third party plugin defined purge tags.
	 *
	 * @since 1.1.0
	 * @access public
	 * @return string the built purge header
	 */
	public static function output() {
		$instance = self::cls();

		$instance->_finalize();

		return $instance->_build();
	}

	/**
	 * Build the current purge headers.
	 *
	 * @since 1.1.5
	 * @access private
	 * @return string the built purge header
	 */
	private function _build( $purge2 = false ) {
		if ( $purge2 ) {
			if ( empty( $this->_pub_purge2 ) ) {
				return;
			}
		}
		else {
			if ( empty( $this->_pub_purge ) && empty( $this->_priv_purge ) ) {
				return;
			}
		}

		$purge_header = '';

		// Handle purge2 @since 4.4.1
		if ( $purge2 ) {
			$public_tags = $this->_append_prefix( $this->_pub_purge2 );
			if ( empty( $public_tags ) ) {
				return;
			}
			$purge_header = self::X_HEADER2 . ': public,';
			if ( Control::is_stale() ) {
				$purge_header .= 'stale,';
			}
			$purge_header .= implode( ',', $public_tags );
			return $purge_header;
		}

		$private_prefix = self::X_HEADER . ': private,';

		if ( ! empty( $this->_pub_purge ) ) {
			$public_tags = $this->_append_prefix( $this->_pub_purge );
			if ( empty( $public_tags ) ) {
				// If this ends up empty, private will also end up empty
				return;
			}
			$purge_header = self::X_HEADER . ': public,';
			if ( Control::is_stale() ) {
				$purge_header .= 'stale,';
			}
			$purge_header .= implode( ',', $public_tags );
			$private_prefix = ';private,';
		}

		// Handle priv purge tags
		if ( ! empty( $this->_priv_purge ) ) {
			$private_tags = $this->_append_prefix( $this->_priv_purge, true );
			$purge_header .= $private_prefix . implode( ',', $private_tags );
		}

		return $purge_header;
	}

	/**
	 * Append prefix to an array of purge headers
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function _append_prefix( $purge_tags, $is_private = false ) {
		$curr_bid = is_multisite() ? get_current_blog_id() : '';

		if ( ! in_array( '*', $purge_tags ) ) {
			$tags = array();
			foreach ( $purge_tags as $val ) {
				$tags[] = LSWCP_TAG_PREFIX . $val;
			}
			return $tags;
		}

		// Purge All need to check if need to reset crawler or not
		if ( ! $is_private && $this->conf( self::O_CRAWLER ) ) {
			Crawler::cls()->reset_pos();
		}

		if ( defined( 'LSWCP_EMPTYCACHE' ) || $is_private ) {
			return array( '*' );
		}

		if ( is_multisite() && ! $this->_is_subsite_purge() ) {
			$blogs = Activation::get_network_ids();
			if ( empty($blogs) ) {
				self::debug('build_purge_headers: blog list is empty');
				return '';
			}
			$tags = array();
			foreach ($blogs as $blog_id) {
				$tags[] = LSWCP_TAG_PREFIX . $blog_id . '_';
			}
			return $tags;
		}
		else {
			return array(LSWCP_TAG_PREFIX . $curr_bid . '_');
		}
	}

	/**
	 * Check if this purge blongs to a subsite purge
	 *
	 * @since  4.0
	 */
	private function _is_subsite_purge() {
		if ( ! is_multisite() ) {
			return false;
		}

		if ( is_network_admin() ) {
			return false;
		}

		if ( defined( 'LSWCP_EMPTYCACHE' ) ) {
			return false;
		}

		// Would only use multisite and network admin except is_network_admin is false for ajax calls, which is used by wordpress updates v4.6+
		if ( Router::is_ajax() && ( check_ajax_referer( 'updates', false, false ) || check_ajax_referer( 'litespeed-purgeall-network', false, false ) ) ) {
			return false;
		}

		return true;
	}

	/**
	 * Gets all the purge tags correlated with the post about to be purged.
	 *
	 * If the purge all pages configuration is set, all pages will be purged.
	 *
	 * This includes site wide post types (e.g. front page) as well as any third party plugin specific post tags.
	 *
	 * @since 1.0.0
	 * @access private
	 */
	private function _get_purge_tags_by_post( $post_id ) {
		// If this is a valid post we want to purge the post, the home page and any associated tags & cats
		// If not, purge everything on the site.

		$purge_tags = array();

		if ( $this->conf( self::O_PURGE_POST_ALL ) ) {
			// ignore the rest if purge all
			return array( '*' );
		}

		// now do API hook action for post purge
		do_action('litespeed_api_purge_post', $post_id);

		// post
		$purge_tags[] = Tag::TYPE_POST . $post_id;
		$purge_tags[] = Tag::get_uri_tag(wp_make_link_relative(get_permalink($post_id)));

		// for archive of categories|tags|custom tax
		global $post;
		$original_post = $post;
		$post = get_post($post_id);
		$post_type = $post->post_type;

		global $wp_widget_factory;
		$recent_posts = $wp_widget_factory->widgets['WP_Widget_Recent_Posts'];
		if ( ! is_null($recent_posts) ) {
			$purge_tags[] = Tag::TYPE_WIDGET . $recent_posts->id;
		}

		// get adjacent posts id as related post tag
		if( $post_type == 'post' ){
			$prev_post = get_previous_post();
			$next_post = get_next_post();
			if( ! empty($prev_post->ID) ) {
				$purge_tags[] = Tag::TYPE_POST . $prev_post->ID;
				self::debug('--------purge_tags prev is: '.$prev_post->ID);
			}
			if( ! empty($next_post->ID) ) {
				$purge_tags[] = Tag::TYPE_POST . $next_post->ID;
				self::debug('--------purge_tags next is: '.$next_post->ID);
			}
		}

		if ( $this->conf( self::O_PURGE_POST_TERM ) ) {
			$taxonomies = get_object_taxonomies($post_type);
			//self::debug('purge by post, check tax = ' . var_export($taxonomies, true));
			foreach ( $taxonomies as $tax ) {
				$terms = get_the_terms($post_id, $tax);
				if ( ! empty($terms) ) {
					foreach ( $terms as $term ) {
						$purge_tags[] = Tag::TYPE_ARCHIVE_TERM . $term->term_id;
					}
				}
			}
		}

		if ( $this->conf( self::O_CACHE_TTL_FEED ) ) {
			$purge_tags[] = Tag::TYPE_FEED;
		}

		// author, for author posts and feed list
		if ( $this->conf( self::O_PURGE_POST_AUTHOR) ) {
			$purge_tags[] = Tag::TYPE_AUTHOR . get_post_field('post_author', $post_id);
		}

		// archive and feed of post type
		// todo: check if type contains space
		if ( $this->conf( self::O_PURGE_POST_POSTTYPE) ) {
			if ( get_post_type_archive_link($post_type) ) {
				$purge_tags[] = Tag::TYPE_ARCHIVE_POSTTYPE . $post_type;
				$purge_tags[] = $post_type;
			}
		}

		if ( $this->conf( self::O_PURGE_POST_FRONTPAGE) ) {
			$purge_tags[] = Tag::TYPE_FRONTPAGE;
		}

		if ( $this->conf( self::O_PURGE_POST_HOMEPAGE) ) {
			$purge_tags[] = Tag::TYPE_HOME;
		}

		if ( $this->conf( self::O_PURGE_POST_PAGES) ) {
			$purge_tags[] = Tag::TYPE_PAGES;
		}

		if ( $this->conf( self::O_PURGE_POST_PAGES_WITH_RECENT_POSTS) ) {
			$purge_tags[] = Tag::TYPE_PAGES_WITH_RECENT_POSTS;
		}

		// if configured to have archived by date
		$date = $post->post_date;
		$date = strtotime($date);

		if ( $this->conf( self::O_PURGE_POST_DATE) ) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Ymd', $date);
		}

		if ( $this->conf( self::O_PURGE_POST_MONTH) ) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Ym', $date);
		}

		if ( $this->conf( self::O_PURGE_POST_YEAR) ) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Y', $date);
		}

		// Set back to original post as $post_id might affecting the global $post value
		$post = $original_post;

		return array_unique($purge_tags);
	}

	/**
	 * The dummy filter for purge all
	 *
	 * @since 1.1.5
	 * @access public
	 * @param string $val The filter value
	 * @return string     The filter value
	 */
	public static function filter_with_purge_all( $val ) {
		self::purge_all();
		return $val;
	}
}
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

?>

	<!-- build_setting_mobile_view start -->
	<tr>
		<th>
			<?php $id = Base::O_CACHE_MOBILE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php
				$this->build_switch( $id );
			?>
			<div class="litespeed-desc">
				<?php echo __( 'Serve a separate cache copy for mobile visitors.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#cache-mobile', __( 'Learn more about when this is needed', 'litespeed-cache' ) ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
				<br /><?php Doc::crawler_affected(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_CACHE_MOBILE_RULES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
		<?php
			// if set, use value as input value
			if ( $this->conf( Base::O_CACHE_MOBILE ) ) {

				// if enabled, check the setting in file
				if ( defined( 'LITESPEED_ON' ) ) {

					try {
						$mobile_agents = Htaccess::cls()->current_mobile_agents();
						if ( $mobile_agents !== Utility::arr2regex( $this->conf( $id ), true ) ) {
							echo '<div class="litespeed-callout notice notice-error inline"><p>'
									. __( 'Htaccess did not match configuration option.', 'litespeed-cache' )
									. ' ' . sprintf( __( 'Htaccess rule is: %s', 'litespeed-cache' ), '<code>' . $mobile_agents . '</code>' )
								. '</p></div>';
						}
					} catch( \Exception $e ) {
						echo '<div class="litespeed-callout notice notice-error inline"><p>' . $e->getMessage() . '</p></div>';
					}

				}
			} ?>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 40 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php Doc::one_per_line(); ?>

				<?php $this->_validate_syntax( $id ); ?>

				<?php if ( $this->conf( Base::O_CACHE_MOBILE ) && ! $this->conf( $id ) ) : ?>
				<font class="litespeed-warning">
					❌
					<?php echo sprintf( __( 'If %1$s is %2$s, then %3$s must be populated!', 'litespeed-cache' ), '<code>' . __('Cache Mobile', 'litespeed-cache') . '</code>', '<code>' . __('ON', 'litespeed-cache') . '</code>', '<code>' . __('List of Mobile User Agents', 'litespeed-cache') . '</code>' ); ?>
				</font>
				<?php endif; ?>
			</div>
		</td>
	</tr>
	<!-- build_setting_mobile_view end --><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.browser.tpl.php';
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_COOKIES ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), __( 'cookies', 'litespeed-cache') ) ; ?>
				<?php Doc::one_per_line() ; ?>
				<?php $this->_validate_syntax( $id ) ; ?>
				<br /><?php Doc::notice_htaccess() ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Exclude Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

<?php
	// Cookie
	require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_cookies.tpl.php';

	// User Agent
	require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_useragent.tpl.php';
?>

</tbody></table>

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<!-- build_setting_purge_on_upgrade -->
	<tr>
		<th>
			<?php $id = Base::O_PURGE_ON_UPGRADE ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

global $pagenow;
if ( $pagenow != 'options-general.php' ) {
	return;
}
?>
	<div class="litespeed-callout notice notice-success inline">

		<h4><?php echo __( 'NOTE', 'litespeed-cache' ); ?></h4>

		<p>
			<?php echo sprintf( __( 'More settings available under %s menu', 'litespeed-cache' ), '<code>' . __( 'LiteSpeed Cache', 'litespeed-cache' ) . '</code>' ); ?>
		</p>

	</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Cache Control Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th><?php echo __( 'Network Enable Cache', 'litespeed-cache' ); ?></th>
		<td>
			<?php $this->build_switch( Base::O_CACHE ); ?>
			<div class="litespeed-desc">
				<?php echo __('Enabling LiteSpeed Cache for WordPress here enables the cache for the network.', 'litespeed-cache'); ?><br />
				<?php echo __('It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.', 'litespeed-cache'); ?>
				<?php echo __('This is to ensure compatibility prior to enabling the cache for all sites.', 'litespeed-cache'); ?>
			</div>
		</td>
	</tr>

<?php
require LSCWP_DIR . 'tpl/cache/settings_inc.cache_favicon.tpl.php';
require LSCWP_DIR . 'tpl/cache/settings_inc.cache_resources.tpl.php';
require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php';
require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php';
?>

</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>
<h3 class="litespeed-title-short">
	<?php echo __( 'Browser Cache Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#browser-tab' ); ?>
</h3>

<?php if ( LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS' ) : ?>
<div class="litespeed-callout notice notice-warning inline">
	<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php echo __( 'OpenLiteSpeed users please check this', 'litespeed-cache' ); ?>:
	<?php Doc::learn_more( 'https://openlitespeed.org/kb/how-to-set-up-custom-headers/', __( 'Setting Up Custom Headers', 'litespeed-cache' ) ); ?></p>
</div>
<?php endif; ?>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CACHE_BROWSER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Browser caching stores static files locally in the user\'s browser. Turn on this setting to reduce repeated requests for static files.', 'litespeed-cache' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
				<br /><?php echo sprintf( __( 'You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.', 'litespeed-cache' ), 'href="https://docs.litespeedtech.com/lscache/lscwp/cache/#how-to-set-it-up" target="_blank"' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_BROWSER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo __( 'The amount of time, in seconds, that files will be stored in browser cache before expiring.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 30 ); ?>
			</div>
		</td>
	</tr>
</tbody></table><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Purge Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

<?php
	require LSCWP_DIR . 'tpl/cache/settings_inc.purge_on_upgrade.tpl.php';
?>

</tbody></table>

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;


$lang_enabled = '<font class="litespeed-success">' . __( 'Enabled', 'litespeed-cache' ) . '</font>' ;
$lang_disabled = '<font class="litespeed-warning">' . __( 'Disabled', 'litespeed-cache' ) . '</font>' ;

$mem_enabled = class_exists( 'Memcached' ) ? $lang_enabled : $lang_disabled ;
$redis_enabled = class_exists( 'Redis' ) ? $lang_enabled : $lang_disabled ;

$mem_conn = $this->cls( 'Object_Cache' )->test_connection();
if ( $mem_conn === null ) {
	$mem_conn_desc = '<font class="litespeed-desc">' . __( 'Not Available', 'litespeed-cache' ) . '</font>' ;
}
elseif ( $mem_conn ) {
	$mem_conn_desc = '<font class="litespeed-success">' . __( 'Passed', 'litespeed-cache' ) . '</font>' ;
}
else {
	$mem_conn_desc = '<font class="litespeed-warning">' . __( 'Failed', 'litespeed-cache' ) . '</font>' ;
}

?>


<h3 class="litespeed-title-short">
	<?php echo __( 'Object Cache Settings', 'litespeed-cache' ) ; ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#object-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use external object cache functionality.', 'litespeed-cache' ) ; ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#memcached-lsmcd-and-redis-object-cache-support-in-lscwp' ); ?>
			</div>
			<div class="litespeed-block">

				<div class='litespeed-col-auto'>
					<h4><?php echo __( 'Status', 'litespeed-cache' ) ; ?></h4>
				</div>
				<div class='litespeed-col-auto'>
					<?php echo sprintf( __( '%s Extension', 'litespeed-cache' ), 'Memcached' ) ; ?>: <?php echo $mem_enabled ; ?><br />
					<?php echo sprintf( __( '%s Extension', 'litespeed-cache' ), 'Redis' ) ; ?>: <?php echo $redis_enabled ; ?><br />
					<?php echo __( 'Connection Test', 'litespeed-cache' ) ; ?>: <?php echo $mem_conn_desc ; ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#how-to-debug' ); ?>
				</div>

			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_KIND ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( 'Memcached', 'Redis' ) ); ?>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_HOST; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Your %s Hostname or IP address.', 'litespeed-cache' ), 'Memcached/<a href="https://docs.litespeedtech.com/products/lsmcd/" target="_blank">LSMCD</a>/Redis' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_PORT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short2' ) ; ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Default port for %1$s is %2$s.', 'litespeed-cache' ), 'Memcached', '<code>11211</code>' ) ; ?>
				<?php echo sprintf( __( 'Default port for %1$s is %2$s.', 'litespeed-cache' ), 'Redis', '<code>6379</code>' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_LIFE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short2' ) ; ?> <?php echo __( 'seconds', 'litespeed-cache' ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Default TTL for cached objects.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_USER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Only available when %s is installed.', 'litespeed-cache' ), 'SASL' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_PSWD; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the password used when connecting.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_DB_ID; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Database to be used', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_GLOBAL_GROUPS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 30 ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Groups cached at the network level.', 'litespeed-cache' ) ; ?>
				<?php Doc::one_per_line() ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_NON_PERSISTENT_GROUPS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 30 ) ; ?>
			<div class="litespeed-desc">
				<?php Doc::one_per_line() ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_PERSISTENT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use keep-alive connections to speed up cache operations.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_ADMIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Improve wp-admin speed through caching. (May encounter expired data)', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_TRANSIENTS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Save transients in database when %1$s is %2$s.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OBJECT_ADMIN ) . '</code>', '<code>' . __( 'OFF', 'litespeed-cache' ) . '</code>' ) ; ?>
				<br />
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#store-transients' ); ?>
			</div>
		</td>
	</tr>


</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.object.tpl.php';
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'TTL', 'litespeed-cache' ) ; ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#ttl-tab' ); ?>
</h3>


<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_PUB ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __('Specify how long, in seconds, public pages are cached.', 'litespeed-cache'); ?>
				<?php $this->recommended( $id ) ; ?>
				<?php $this->_validate_ttl( $id, 30 ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_PRIV ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, private pages are cached.', 'litespeed-cache' ) ; ?>
				<?php $this->recommended( $id ) ; ?>
				<?php $this->_validate_ttl( $id, 60, 3600 ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_FRONTPAGE ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, the front page is cached.', 'litespeed-cache' ) ; ?>
				<?php $this->recommended( $id ) ; ?>
				<?php $this->_validate_ttl( $id, 30 ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_FEED ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, feeds are cached.', 'litespeed-cache' ) ; ?>
				<?php echo __( 'If this is set to a number less than 30, feeds will not be cached.', 'litespeed-cache' ) ; ?>
				<?php $this->recommended( $id ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_REST ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, REST calls are cached.', 'litespeed-cache' ) ; ?>
				<?php echo __( 'If this is set to a number less than 30, feeds will not be cached.', 'litespeed-cache' ) ; ?>
				<?php $this->recommended( $id ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_STATUS ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 30 ) ; ?>
				</div>
				<div>
					<?php $this->recommended( $id ) ; ?>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php echo __( 'Specify an HTTP status code and the number of seconds to cache that page, separated by a space.', 'litespeed-cache' ) ; ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menuArr = array(
	'cache' 	=> __( 'Cache', 'litespeed-cache' ),
	'purge' 	=> __( 'Purge', 'litespeed-cache' ),
	'excludes' 	=> __( 'Excludes', 'litespeed-cache' ),
	'object' 	=> __( 'Object', 'litespeed-cache' ),
	'browser'	=> __( 'Browser', 'litespeed-cache' ),
	'advanced' 	=> __( 'Advanced', 'litespeed-cache' ),
);

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __('LiteSpeed Cache Network Cache Settings', 'litespeed-cache'); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		foreach ($menuArr as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '';
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
	?>
	</h2>
	<div class="litespeed-body">
		<?php $this->cache_disabled_warning(); ?>

		<?php
		$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );

		// include all tpl for faster UE
		foreach ($menuArr as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>";
			require LSCWP_DIR . "tpl/cache/network_settings-$tab.tpl.php";
			echo "</div>";
		}

		$this->form_end( true );

		?>
	</div>
</div>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_USERAGENTS ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
		<?php $this->build_textarea( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), __( 'user agents', 'litespeed-cache') ) ; ?>
				<?php Doc::one_per_line() ; ?>
				<?php $this->_validate_syntax( $id ) ; ?>
				<br /><?php Doc::notice_htaccess() ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Advanced Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#advanced-tab' ); ?>
</h3>

<div class="litespeed-callout notice notice-warning inline">
	<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php echo __( 'These settings are meant for ADVANCED USERS ONLY.', 'litespeed-cache' ); ?></p>
</div>

<table class="wp-list-table striped litespeed-table"><tbody>

	<?php
		if ( ! $this->_is_multisite ) :
			require LSCWP_DIR . 'tpl/cache/settings_inc.login_cookie.tpl.php';
		endif;
	?>

	<tr>
		<th>
			<?php $id = Base::O_UTIL_NO_HTTPS_VARY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#improve-httphttps-compatibility' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_UTIL_INSTANT_CLICK; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#instant-click' ); ?>
				<br /><font class="litespeed-danger">
					⚠️
					<?php echo __( 'This will generate extra requests to the server, which will increase server load.', 'litespeed-cache' ); ?>
				</font>

			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'ESI Settings', 'litespeed-cache' ) ; ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#esi-tab' ); ?>
</h3>

<div class="litespeed-description">
	<p><?php echo __( 'With ESI (Edge Side Includes), pages may be served from cache for logged-in users.', 'litespeed-cache' ) ; ?></p>
	<p><?php echo __( 'ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.', 'litespeed-cache' ) ; ?>
		<?php Doc::learn_more( 'https://blog.litespeedtech.com/2017/08/30/wpw-private-cache-vs-public-cache/', __( 'WpW: Private Cache vs. Public Cache', 'litespeed-cache' ) ); ?>
	</p>
	<p>
		💡:
		<?php echo __( 'You can turn shortcodes into ESI blocks.', 'litespeed-cache' ) ; ?>
		<?php echo sprintf(
			__( 'Replace %1$s with %2$s.', 'litespeed-cache' ),
			'<code>[shortcodeA att1="val1" att2="val2"]</code>',
			'<code>[esi shortcodeA att1="val1" att2="val2"]</code>'
		) ; ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#turning-wordpress-shortcodes-into-esi-blocks' ); ?>
	</p>
	<p>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/api/#generate-esi-block-url', __( 'ESI sample for developers', 'litespeed-cache' ) ); ?>
	</p>
</div>

<div class="litespeed-relative">

<?php if ( ! LSWCP_ESI_SUPPORT && ! $this->conf( Base::O_CDN_QUIC ) ) : ?>
	<div class="litespeed-callout-danger">
		<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>
		<h4><?php echo __( 'These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.', 'litespeed-cache' ); ?></h4>
	</div>
<?php endif; ?>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_ESI ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_ESI_CACHE_ADMBAR ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __(' Cache the built-in Admin Bar ESI block.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_ESI_CACHE_COMMFORM ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Cache the built-in Comment Form ESI block.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_ESI_NONCE ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<div class="litespeed-row-flex">
				<div class="">
					<?php $this->build_textarea( $id ) ; ?>
				</div>
				<div class="litespeed-width-3-10">
					<p class="litespeed-desc">
						<?php echo __( 'The list will be merged with the predefined nonces in your local data file.', 'litespeed-cache' ); ?>
						<?php echo __( 'The latest data file is', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/master/data/esi.nonces.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/master/data/esi.nonces.txt</a>
						<br /><font class="litespeed-success">
							<?php echo __( 'API', 'litespeed-cache' ); ?>:
							<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_esi_nonces</code>' ); ?>
						</font>
					</p>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php echo __( 'The above nonces will be converted to ESI automatically.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
				<br /><?php echo __( 'An optional second parameter may be used to specify cache control. Use a space to separate', 'litespeed-cache' ); ?>: <code>my_nonce_action private</code>
			</div>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ), '<code>*</code>', '<code>nonce_formid_1</code>', '<code>nonce_formid_3</code>', '<code>nonce_formid_*</code>' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_VARY_GROUP ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<table class="litespeed-vary-table wp-list-table striped litespeed-table form-table"><tbody>
			<?php foreach ( $roles as $role => $title ): ?>
				<tr>
					<td class='litespeed-vary-title'><?php echo $title ; ?></td>
					<td class='litespeed-vary-val'>
					<?php
						$this->build_input(
							$id . '[' . $role . ']',
							'litespeed-input-short',
							$this->cls( 'Vary' )->in_vary_group( $role )
						);
					?>
					</td>
				</tr>
			<?php endforeach; ?>
			</tbody></table>
			<div class="litespeed-desc">
				<?php echo __( 'If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

</tbody></table>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Purge Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-tab' ); ?>
</h3>

<?php
$option_list = array(
	Base::O_PURGE_POST_ALL => __( 'All pages', 'litespeed-cache' ),
	Base::O_PURGE_POST_FRONTPAGE => __( 'Front page', 'litespeed-cache' ),
	Base::O_PURGE_POST_HOMEPAGE => __( 'Home page', 'litespeed-cache' ),
	Base::O_PURGE_POST_PAGES => __( 'Pages', 'litespeed-cache' ),

	Base::O_PURGE_POST_PAGES_WITH_RECENT_POSTS => __( 'All pages with Recent Posts Widget', 'litespeed-cache' ),

	Base::O_PURGE_POST_AUTHOR => __( 'Author archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_POSTTYPE => __( 'Post type archive', 'litespeed-cache' ),

	Base::O_PURGE_POST_YEAR => __( 'Yearly archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_MONTH => __( 'Monthly archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_DATE => __( 'Daily archive', 'litespeed-cache' ),

	Base::O_PURGE_POST_TERM => __( 'Term archive (include category, tag, and tax)', 'litespeed-cache' ),
);

// break line at these ids
$break_arr = array(
	Base::O_PURGE_POST_PAGES,
	Base::O_PURGE_POST_PAGES_WITH_RECENT_POSTS,
	Base::O_PURGE_POST_POSTTYPE,
	Base::O_PURGE_POST_DATE,
);

?>

<table class="wp-list-table striped litespeed-table"><tbody>

	<?php if ( ! $this->_is_multisite ) : ?>
		<?php require LSCWP_DIR . 'tpl/cache/settings_inc.purge_on_upgrade.tpl.php'; ?>
	<?php endif; ?>

	<tr>
		<th><?php echo __( 'Auto Purge Rules For Publish/Update', 'litespeed-cache' ); ?></th>
		<td>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php echo __( 'Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.', 'litespeed-cache' ); ?><br />
					<?php echo __( 'Other checkboxes will be ignored.', 'litespeed-cache' ); ?><br />
					<?php echo __( 'Select only the archive types that are currently used, the others can be left unchecked.', 'litespeed-cache' ); ?>
				</p>
			</div>
			<div class="litespeed-top20">
				<div class="litespeed-tick-wrapper">
					<?php
						foreach ( $option_list as $id => $title ) {

							$this->build_checkbox( $id, $title );

							if ( in_array( $id, $break_arr ) ) {
								echo '</div><div class="litespeed-tick-wrapper litespeed-top10">';
							}
						}
					?>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php echo __( 'Select which pages will be automatically purged when posts are published/updated.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_PURGE_STALE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#serve-stale' ); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php echo __( 'By design, this option may serve stale content. Do not enable this option, if that is not OK with you.', 'litespeed-cache' ); ?><br />
				</p>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_PURGE_TIMED_URLS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 80 ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'The URLs here (one per line) will be purged automatically at the time set in the option "%s".', 'litespeed-cache' ), __( 'Scheduled Purge Time', 'litespeed-cache' ) ); ?><br />
				<?php echo sprintf( __( 'Both %1$s and %2$s are acceptable.', 'litespeed-cache' ), '<code>http://www.example.com/path/url.php</code>', '<code>/path/url.php</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ), '<code>*</code>', '<code>/path/u-1.html</code>', '<code>/path/u-2.html</code>', '<code>/path/u-*.html</code>' ); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php echo __( 'For URLs with wildcards, there may be a delay in initiating scheduled purge.', 'litespeed-cache' ); ?><br />
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#scheduled-purge-urls' ); ?>
				</p>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_PURGE_TIMED_URLS_TIME; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, null, null, 'time' ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify the time to purge the "%s" list.', 'litespeed-cache' ), __( 'Scheduled Purge URLs', 'litespeed-cache' ) ); ?>
				<?php echo sprintf( __( 'Current server time is %s.', 'litespeed-cache' ), '<code>' . date( 'H:i:s' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_PURGE_HOOK_ALL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 50 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'A Purge All will be executed when WordPress runs these hooks.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-all-hooks' ); ?>
			</div>
		</td>
	</tr>


</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'cache' 	=> __( 'Cache', 'litespeed-cache' ),
	'ttl' 		=> __( 'TTL', 'litespeed-cache' ),
	'purge' 	=> __( 'Purge', 'litespeed-cache' ),
	'excludes' 	=> __( 'Excludes', 'litespeed-cache' ),
	'esi' 		=> __( 'ESI', 'litespeed-cache' ),
);

if ( ! $this->_is_multisite ) {
	$menu_list[ 'object' ] = __( 'Object', 'litespeed-cache' );
	$menu_list[ 'browser' ] = __( 'Browser', 'litespeed-cache' );
}

$menu_list[ 'advanced' ] = __( 'Advanced', 'litespeed-cache' );

/**
 * Generate rules for setting usage
 * @since 1.6.2
 */
global $wp_roles;
if ( !isset( $wp_roles ) ) {
	$wp_roles = new \WP_Roles();
}

$roles = array();
foreach ( $wp_roles->roles as $k => $v ) {
	$roles[ $k ] = $v[ 'name' ];
}
ksort( $roles );

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __('LiteSpeed Cache Settings', 'litespeed-cache'); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>
<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		$accesskey_set = array();
		foreach ( $menu_list as $tab => $val ) {
			$accesskey = '';
			if ( $i <= 9 ) {
				$accesskey = "litespeed-accesskey='$i'";
			}
			else {
				$tmp = strtoupper( substr( $tab, 0, 1 ) );
				if ( ! in_array( $tmp, $accesskey_set ) ) {
					$accesskey_set[] = $tmp;
					$accesskey = "litespeed-accesskey='$tmp'";
				}
			}

			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
		do_action( 'litespeed_settings_tab', 'cache' );
	?>
	</h2>

	<div class="litespeed-body">
		<?php $this->cache_disabled_warning(); ?>

	<?php
	$this->form_action();

	require LSCWP_DIR . "tpl/inc/check_if_network_disable_all.php";
	require LSCWP_DIR . "tpl/cache/more_settings_tip.tpl.php";

	// include all tpl for faster UE
	foreach ( $menu_list as $tab => $val ) {
		echo "<div data-litespeed-layout='$tab'>";
		require LSCWP_DIR . "tpl/cache/settings-$tab.tpl.php";
		echo "</div>";
	}

	do_action( 'litespeed_settings_content', 'cache' );

	$this->form_end();

	?>
	</div>
</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Cache Control Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CACHE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php if ( $this->_is_multisite ) : ?>
				<?php $this->build_switch( $id, array( __( 'OFF', 'litespeed-cache' ), __( 'ON', 'litespeed-cache' ), __( 'Use Network Admin Setting', 'litespeed-cache' ) ) ); ?>
			<?php else : ?>
				<?php $this->build_switch( $id ); ?>
			<?php endif; ?>
			<div class="litespeed-desc">
				<?php echo sprintf(__('Please visit the <a %s>Information</a> page on how to test the cache.', 'litespeed-cache'),
					'href="https://docs.litespeedtech.com/lscache/lscwp/installation/#testing" target="_blank"'); ?>

				<strong><?php echo __('NOTICE', 'litespeed-cache'); ?>: </strong><?php echo __('When disabling the cache, all cached entries for this site will be purged.', 'litespeed-cache'); ?>

				<?php if ( $this->_is_multisite ): ?>
				<br><?php echo __('The network admin setting can be overridden here.', 'litespeed-cache'); ?>
				<?php endif; ?>

				<?php if ( ! $this->conf( Base::O_CACHE ) && $this->conf( Base::O_CDN_QUIC ) ): ?>
				<br><font class="litespeed-success"><?php echo __( 'With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.', 'litespeed-cache' ); ?></font>
				<?php endif; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_PRIV; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Privately cache frontend pages for logged-in users. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.1+' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_COMMENTER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.1+' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_REST; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Cache requests made by WordPress REST API calls.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_PAGE_LOGIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Disabling this option may negatively affect performance.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<?php
		if ( ! $this->_is_multisite ) :
			require LSCWP_DIR . 'tpl/cache/settings_inc.cache_favicon.tpl.php';
			require LSCWP_DIR . 'tpl/cache/settings_inc.cache_resources.tpl.php';
			require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php';
		endif;
	?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_PRIV_URI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'URI Paths containing these strings will NOT be cached as public.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_FORCE_URI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Paths containing these strings will be cached regardless of no-cacheable settings.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
				<br /><?php echo __( 'To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache' ), '<code>/mypath/mypage 300</code>', 300, '<code>/mypath/mypage</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_FORCE_PUB_URI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Paths containing these strings will be forced to public cached regardless of no-cacheable settings.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
				<br /><?php echo __( 'To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache' ), '<code>/mypath/mypage 300</code>', 300, '<code>/mypath/mypage</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<?php
		if ( ! $this->_is_multisite ) :
			require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php';
		endif;
	?>

</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Advanced Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#advanced-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

<?php
	require LSCWP_DIR . 'tpl/cache/settings_inc.login_cookie.tpl.php';
?>

</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.object.tpl.php';
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_DROP_QS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 40 ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Ignore certain query strings when caching. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.3+' ); ?>
				<?php echo sprintf( __( 'For example, to drop parameters beginning with %s, %s can be used here.', 'litespeed-cache' ), '<code>utm</code>', '<code>utm*</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#drop-query-string' ); ?>

				<br />
				<?php Doc::one_per_line(); ?>

				<br /><?php Doc::notice_htaccess() ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_LOGIN_COOKIE ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
		<?php
			$this->build_input( $id ) ;

			$this->_validate_syntax( $id ) ;

			echo '<p class="litespeed-desc">' . __('SYNTAX: alphanumeric and "_".', 'litespeed-cache')
				. ' ' . __('No spaces and case sensitive.', 'litespeed-cache')
				. ' ' . __('MUST BE UNIQUE FROM OTHER WEB APPLICATIONS.', 'litespeed-cache')
				. '</p>'
				. '<p class="litespeed-desc">'
					. sprintf(__('The default login cookie is %s.', 'litespeed-cache'), '<code>_lscache_vary</code>')
					. ' ' . __('The server will determine if the user is logged in based on the existence of this cookie.', 'litespeed-cache')
					. ' ' . __('This setting is useful for those that have multiple web applications for the same domain.', 'litespeed-cache')
					. ' ' . __('If every web application uses the same cookie, the server may confuse whether a user is logged in or not.', 'litespeed-cache')
					. ' ' . __('The cookie set here will be used for this WordPress installation.', 'litespeed-cache')
				. '</p>'
				. '<p class="litespeed-desc">'
					. __('Example use case:', 'litespeed-cache')
					. '<br />'
					. sprintf(__('There is a WordPress installed for %s.', 'litespeed-cache'), '<u>www.example.com</u>')
					. '<br />'
					. sprintf(__('Then another WordPress is installed (NOT MULTISITE) at %s', 'litespeed-cache'), '<u>www.example.com/blog/</u>')
					. ' ' . __('The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.', 'litespeed-cache')
				. '<br />'
			; ?>
			<?php Doc::notice_htaccess() ;
				echo '</p>' ; ?>
			<?php

			if ( preg_match( '#[^\w\-]#', $this->conf( $id ) ) ) {
				echo '<div class="litespeed-callout notice notice-error inline"><p>❌ ' . __( 'Invalid login cookie. Invalid characters found.', 'litespeed-cache' ) . '</p></div>' ;
			}

			if ( defined( 'LITESPEED_ON' ) && $this->conf( $id ) ) {
				$cookie_rule = '';
				try {
					$cookie_rule = Htaccess::cls()->current_login_cookie() ;
				} catch ( \Exception $e ) {
					echo '<div class="litespeed-callout notice notice-error inline"><p>' . $e->getMessage() . '</p></div>' ;
				}

				$cookie_arr = explode( ',', $cookie_rule ) ;
				if ( ! in_array( $this->conf( $id ), $cookie_arr ) ) {
					echo '<div class="litespeed-callout notice notice-warning inline"><p>'
							. __( 'WARNING: The .htaccess login cookie and Database login cookie do not match.', 'litespeed-cache' )
						. '</p></div>'
					;
				}

			}

		?>
		</td>
	</tr>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.browser.tpl.php';
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_FAVICON ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'favicon.ico is requested on most pages.', 'litespeed-cache' ) ; ?>
				<?php echo __( 'Caching this resource may improve server performance by avoiding unnecessary PHP calls.', 'litespeed-cache' ) ; ?>
				<br /><?php Doc::notice_htaccess() ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

	<!-- build_setting_cache_resources -->
	<tr>
		<th>
			<?php $id = Base::O_CACHE_RES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Some themes and plugins add resources via a PHP request.', 'litespeed-cache' ); ?>
				<?php echo __( 'Caching these pages may improve server performance by avoiding unnecessary PHP calls.', 'litespeed-cache' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Exclude Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Paths containing these strings will not be cached.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_QS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Query strings containing these parameters will not be cached.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'For example, for %s, %s and %s can be used here.', 'litespeed-cache' ), '<code>?aa=bb&cc=dd</code>', '<code>aa</code>', '<code>cc</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_CAT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php
				$excludes_buf = '';
				if ( $this->conf( $id ) ) {
					$excludes_buf = implode( "\n", array_map( 'get_cat_name', $this->conf( $id ) ) );
				}
				$this->build_textarea( $id, false, $excludes_buf );
			?>
			<div class="litespeed-desc">
				<b><?php echo __( 'All categories are cached by default.', 'litespeed-cache' ); ?></b>
				<?php echo sprintf( __( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), __( 'categories', 'litespeed-cache') ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'NOTE', 'litespeed-cache' ); ?>:</h4>
				<ol>
					<li><?php echo __( 'If the category name is not found, the category will be removed from the list on save.', 'litespeed-cache' ); ?></li>
				</ol>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_TAG; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php
				$excludes_buf = '';
				if ( $this->conf( $id ) ) {
					$tag_names = array();
					foreach ( array_map( 'get_tag', $this->conf( $id ) ) as $tag ) {
						$tag_names[] = $tag->name;
					}
					if ( ! empty( $tag_names ) ) {
						$excludes_buf = implode( "\n", $tag_names );
					}
				}
				$this->build_textarea( $id, false, $excludes_buf );
			?>
			<div class="litespeed-desc">
				<b><?php echo __( 'All tags are cached by default.', 'litespeed-cache' ); ?></b>
				<?php echo sprintf( __( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), __( 'tags', 'litespeed-cache') ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'NOTE', 'litespeed-cache' ); ?>:</h4>
				<ol>
					<li><?php echo __( 'If the tag slug is not found, the tag will be removed from the list on save.', 'litespeed-cache' ); ?></li>
					<li><?php echo sprintf( __( 'To exclude %1$s, insert %2$s.', 'litespeed-cache' ),
							'<code>http://www.example.com/tag/category/tag-slug/</code>',
							'<code>tag-slug</code>' ); ?></li>
				</ol>
			</div>
		</td>
	</tr>

	<?php
		if ( ! $this->_is_multisite ) :
			// Cookie
			require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_cookies.tpl.php';

			// User Agent
			require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_useragent.tpl.php';

		endif;
	?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_ROLES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-desc">
				<?php echo __( 'Selected roles will be excluded from cache.', 'litespeed-cache' ); ?>
			</div>
			<div class="litespeed-tick-list">
				<?php foreach ( $roles as $role => $title ): ?>
					<?php $this->build_checkbox( $id . '[]', $title, Control::cls()->in_cache_exc_roles( $role ), $role ); ?>
				<?php endforeach; ?>
			</div>

		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Image Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<?php require LSCWP_DIR . 'tpl/img_optm/settings.media_webp.tpl.php'; ?>

</tbody></table>

<?php
$this->form_end( true );

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'summary'		=> __( 'Image Optimization Summary', 'litespeed-cache' ),
	'settings'		=> __( 'Image Optimization Settings', 'litespeed-cache' ),
) ;


if ( $this->_is_network_admin ) {
	$menu_list = array(
		'network_settings' => __( 'Image Optimization Settings', 'litespeed-cache' ),
	);
}


?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Image Optimization', 'litespeed-cache' ) ; ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER ; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1 ;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '' ;
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>" ;
			$i ++ ;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>" ;
			require LSCWP_DIR . "tpl/img_optm/$tab.tpl.php" ;
			echo "</div>" ;
		}

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_IMG_OPTM );
$usage_cloud = Cloud::get_summary( 'usage.' . Cloud::SVC_IMG_OPTM );
$allowance = Cloud::cls()->allowance( Cloud::SVC_IMG_OPTM );

$__img_optm = Img_Optm::cls();

$wet_limit = $__img_optm->wet_limit();
$img_count = $__img_optm->img_count();
$need_gather = $__img_optm->need_gather();

$optm_summary = Img_Optm::get_summary();

list( $last_run, $is_running ) = $__img_optm->cron_running( false );

if ( ! empty( $img_count[ 'groups_all' ] ) ) {
	$gathered_percentage = 100 - floor( $img_count[ 'groups_not_gathered' ] * 100 / $img_count[ 'groups_all' ] );
	if ( $gathered_percentage == 100 && $img_count[ 'groups_not_gathered' ] ) {
		$gathered_percentage = 99;
	}
}
else {
	$gathered_percentage = 0;
}

if ( ! empty( $img_count[ 'imgs_gathered' ] ) ) {
	$finished_percentage = 100 - floor( $img_count[ 'img.' . Img_Optm::STATUS_RAW ] * 100 / $img_count[ 'imgs_gathered' ] );
	if ( $finished_percentage == 100 && $img_count[ 'img.' . Img_Optm::STATUS_RAW ] ) {
		$finished_percentage = 99;
	}
}
else {
	$finished_percentage = 0;
}

$unfinished_num = 0;
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ];
}
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ];
}
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_ERR_FETCH ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_ERR_FETCH ];
}

?>
<div class="litespeed-flex-container litespeed-column-with-boxes">
	<div class="litespeed-width-7-10 litespeed-image-optim-summary-wrapper">
		<div class="litespeed-image-optim-summary">

			<h3>
				<?php if ( $closest_server ) : ?>
					<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_IMG_OPTM ) ); ?>" class="litespeed-info-button" data-balloon-pos="right" data-balloon-break aria-label="<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10; Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>" data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ); ?>"><span class="litespeed-quic-icon"></span></a>
				<?php else : ?>
					<span class="litespeed-quic-icon"></span>
				<?php endif; ?>
				<?php echo __('Optimize images with our QUIC.cloud server', 'litespeed-cache' );?>
				<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-summary-tab" target="_blank" class="litespeed-right litespeed-learn-more"><?php echo __('Learn More', 'litespeed-cache'); ?></a>
			</h3>

			<p>
				<?php echo sprintf( __( 'You can request a maximum of %s images at once.', 'litespeed-cache' ), '<strong>' . intval( $allowance ) . '</strong>' ); ?>
			</p>

			<?php if ( $wet_limit ) : ?>
			<p class="litespeed-desc">
				<?php echo __( 'To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.', 'litespeed-cache' ); ?>
				<?php echo __( 'Current limit is', 'litespeed-cache' ) . ': <strong>' . $wet_limit . '</strong>'; ?>
			</p>
			<?php endif; ?>

			<div class="litespeed-img-optim-actions">
				<a data-litespeed-onlyonce class="button button-primary"
					<?php if ( ! empty( $img_count[ 'groups_not_gathered' ] ) || ! empty( $img_count[ 'img.' . Img_Optm::STATUS_RAW ] ) ) : ?>
						href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_NEW_REQ ); ?>"
					<?php else : ?>
						href='javascript:;' disabled
					<?php endif; ?>
					>
					<span class="dashicons dashicons-images-alt2"></span>&nbsp;<?php echo $need_gather ? __( 'Gather Image Data', 'litespeed-cache' ) : __( 'Send Optimization Request', 'litespeed-cache' ); ?>
				</a>

				<a data-litespeed-onlyonce class="button button-secondary" data-balloon-length="large" data-balloon-pos="right" aria-label="<?php echo __( 'Only press the button if the pull cron job is disabled.', 'litespeed-cache' ); ?> <?php echo __( 'Images will be pulled automatically if the cron job is running.', 'litespeed-cache' ); ?>"
					<?php if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ] ) && ! $is_running ) : ?>
						href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_PULL ); ?>"
					<?php else : ?>
						href='javascript:;' disabled
					<?php endif; ?>
					>
					<?php echo __( 'Pull Images', 'litespeed-cache' ); ?>
				</a>
			</div>

			<div>
				<h3 class="litespeed-title-section">
					<?php echo __( 'Optimization Status', 'litespeed-cache' ); ?>
					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_RAW ] ) ) : ?>
						<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#optimization-summary" target="_blank" class="litespeed-learn-more"><?php echo __('Learn More', 'litespeed-cache'); ?></a>
					<?php endif; ?>
				</h3>

				<div class="litespeed-light-code">

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo Lang::img_status( Img_Optm::STATUS_REQUESTED ); ?>:
							<code>
								<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ); ?>
								(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ], 'image' ); ?>)
							</code>
						</p>
						<p class="litespeed-desc">
							<?php echo __( 'After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.', 'litespeed-cache' ); ?>
							<?php echo __( 'This process is automatic.', 'litespeed-cache' ); ?>
						</p>
					<?php endif; ?>

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo Lang::img_status( Img_Optm::STATUS_NOTIFIED ); ?>:
							<code>
								<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ); ?>
								(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ], 'image' ); ?>)
							</code>

						</p>
						<?php if ( $last_run ) : ?>
							<p class="litespeed-desc">
								<?php echo sprintf( __( 'Last pull initiated by cron at %s.', 'litespeed-cache' ), '<code>' . Utility::readable_time( $last_run ) . '</code>' ); ?>
							</p>
						<?php endif; ?>
					<?php endif; ?>

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_PULLED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo Lang::img_status( Img_Optm::STATUS_PULLED ); ?>:
							<code>
								<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_PULLED ] ); ?>
								(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_PULLED ], 'image' ); ?>)
							</code>
						</p>
					<?php endif; ?>

					<div class="litespeed-silence">
						<?php
							$list = array(
								Img_Optm::STATUS_ERR_FETCH,
								Img_Optm::STATUS_ERR_404,
								Img_Optm::STATUS_ERR_OPTM,
								Img_Optm::STATUS_ERR,
								Img_Optm::STATUS_MISS,
								Img_Optm::STATUS_DUPLICATED,
								Img_Optm::STATUS_XMETA,
							);
						?>
						<?php foreach ( $list as $v ): ?>
							<?php if ( empty( $img_count[ 'group.' . $v ] ) ) continue; ?>
							<p>
								<?php echo Lang::img_status( $v ); ?>:
								<code>
									<?php echo Admin_Display::print_plural( $img_count[ 'group.' . $v ] ); ?>
									(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . $v ], 'image' ); ?>)
								</code>
							</p>
						<?php endforeach; ?>
					</div>

					<p><?php echo sprintf(
							'<a href="%1$s" class="button button-secondary" data-balloon-pos="right" aria-label="%2$s" %3$s><span class="dashicons dashicons-editor-removeformatting"></span>&nbsp;%4$s</a>',
							($unfinished_num ? Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CLEAN ) : 'javascript:;'),
							__( 'Remove all previous unfinished image optimization requests.', 'litespeed-cache' ),
							($unfinished_num ? '' : ' disabled'),
							__( 'Clean Up Unfinished Data', 'litespeed-cache' ) . ( $unfinished_num ? ': ' . Admin_Display::print_plural( $unfinished_num, 'image' ) : '')
						);
					?></p>

					<h3 class="litespeed-title-section">
						<?php echo __( 'Storage Optimization', 'litespeed-cache' ); ?>
					</h3>

					<p>
						<?php echo __( 'A backup of each image is saved before it is optimized.', 'litespeed-cache' ); ?>
					</p>


					<?php if ( ! empty( $optm_summary[ 'bk_summary' ] ) ) : ?>
						<div class="">
							<p>
								<?php echo __( 'Last calculated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $optm_summary[ 'bk_summary' ][ 'date' ] ) . '</code>'; ?>
							</p>
							<?php if ( $optm_summary[ 'bk_summary' ][ 'count' ] ) : ?>
								<p>
									<?php echo __( 'Files', 'litespeed-cache' ) . ': <code>' . intval( $optm_summary[ 'bk_summary' ][ 'count' ] ) . '</code>'; ?>
								</p>
								<p>
									<?php echo __( 'Total', 'litespeed-cache' ) . ': <code>' . Utility::real_size( $optm_summary[ 'bk_summary' ][ 'sum' ] ) . '</code>'; ?>
								</p>
							<?php endif; ?>
						</div>
					<?php endif; ?>

					<div>

						<a class="button button-secondary" data-balloon-pos="up" aria-label="<?php echo __( 'Calculate Original Image Storage', 'litespeed-cache' ); ?>"
							<?php if ( $finished_percentage > 0 ) : ?>
								href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CALC_BKUP ); ?>"
							<?php else : ?>
								href='javascript:;' disabled
							<?php endif; ?>
							>
								<span class="dashicons dashicons-update"></span> <?php echo __( 'Calculate Backups Disk Space', 'litespeed-cache' ); ?>
						</a>
					</div>

				</div>

				<div>
					<h4><?php echo __( 'Image Thumbnail Group Sizes', 'litespeed-cache' ); ?></h4>
					<div class="litespeed-desc litespeed-left20">
						<?php foreach ( Media::cls()->get_image_sizes() as $title => $size ) {
							echo "<div>$title ( " . ( $size[ 'width' ] ? $size[ 'width' ] . 'px' : '*' ) . ' x ' . ( $size[ 'height' ] ? $size[ 'height' ] . 'px' : '*' ) . ' )</div>';
						}; ?>
					</div>

				</div>

				<hr class="litespeed-hr-with-space">
				<div>
					<h4><?php echo __( 'Delete all backups of the original images', 'litespeed-cache' ); ?></h4>
					<div class="notice notice-error litespeed-callout-bg inline">
						<p>
							🚨&nbsp;<?php echo __( 'This is irreversible.', 'litespeed-cache' ); ?>
							<?php echo __( 'You will be unable to Revert Optimization once the backups are deleted!', 'litespeed-cache' ); ?>
						</p>
					</div>

				</div>
				<?php if ( ! empty( $optm_summary[ 'rmbk_summary' ] ) ) : ?>
					<div class="">
					<p>
						<?php echo __( 'Last ran', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $optm_summary[ 'rmbk_summary' ][ 'date' ] ) . '</code>'; ?>
					</p>
					<p>
						<?php echo __( 'Files', 'litespeed-cache' ) . ': <code>' . $optm_summary[ 'rmbk_summary' ][ 'count' ] . '</code>'; ?>
					</p>
					<p>
						<?php echo __( 'Saved', 'litespeed-cache' ) . ': <code>' . Utility::real_size( $optm_summary[ 'rmbk_summary' ][ 'sum' ] ) . '</code>'; ?>
					</p>
					</div>
				<?php endif; ?>
				<div class="litespeed-image-optim-summary-footer"><a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RM_BKUP ); ?>" data-litespeed-cfm="<?php echo __( 'Are you sure you want to remove all image backups?', 'litespeed-cache' ); ?>" class="litespeed-link-with-icon litespeed-danger">
					<span class="dashicons dashicons-trash"></span><?php echo __( 'Remove Original Image Backups', 'litespeed-cache' ); ?>
				</a></div>
			</div>
		</div>
	</div>

	<div class="litespeed-width-3-10">
		<div class="postbox litespeed-postbox litespeed-postbox-imgopt-info">
			<div class="inside">

				<h3 class="litespeed-title">
					<?php echo __( 'Image Information', 'litespeed-cache' ); ?>
				</h3>

				<div class="litespeed-flex-container">
					<div class="litespeed-icon-vertical-middle">
						<?php echo GUI::pie( $gathered_percentage, 70, true ); ?>
					</div>
					<div>
						<p>
							<?php echo __( 'Images total', 'litespeed-cache'); ?>:

							<code><?php echo Admin_Display::print_plural( $img_count[ 'groups_all' ] ); ?></code>

							<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#what-is-an-image-group" target="_blank" class="litespeed-desc litespeed-help-btn-icon" data-balloon-pos="up" aria-label="<?php echo __( 'What is a group?', 'litespeed-cache'); ?>">
								<span class="dashicons dashicons-editor-help"></span>
								<span class="screen-reader-text"><?php echo __( 'What is an image group?', 'litespeed-cache' );?></span>
							</a>
						</p>
						<p>
							<?php if ( ! empty( $img_count[ 'groups_not_gathered' ] ) ) : ?>
								<?php echo __('Images not yet gathered', 'litespeed-cache'); ?>:
								<code><?php echo Admin_Display::print_plural( $img_count[ 'groups_not_gathered' ] ); ?></code>
							<?php else : ?>
								<font class="litespeed-congratulate"><?php echo __('Congratulations, all gathered!', 'litespeed-cache'); ?></font>
							<?php endif; ?>
						</p>

					</div>
				</div>

				<div class="litespeed-flex-container">
					<div class="litespeed-icon-vertical-middle">
						<?php echo GUI::pie( $finished_percentage, 70, true ); ?>
					</div>
					<div>
						<p>
							<?php echo __( 'Images total', 'litespeed-cache'); ?>:

							<code><?php echo Admin_Display::print_plural( $img_count[ 'imgs_gathered' ], 'image' ); ?></code>

							<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#what-is-an-image-group" target="_blank" class="litespeed-desc litespeed-help-btn-icon" data-balloon-pos="up" aria-label="<?php echo __( 'What is a group?', 'litespeed-cache'); ?>">
								<span class="dashicons dashicons-editor-help"></span>
								<span class="screen-reader-text"><?php echo __( 'What is an image group?', 'litespeed-cache' );?></span>
							</a>
						</p>
						<p>
							<?php if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_RAW ] ) ) : ?>
								<?php echo __('Images not yet requested', 'litespeed-cache'); ?>:
								<code><?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_RAW ], 'image' ); ?></code>
							<?php else : ?>
								<font class="litespeed-congratulate"><?php echo __('Congratulations, all requested!', 'litespeed-cache'); ?></font>
							<?php endif; ?>
						</p>
					</div>
				</div>
			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
				<a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RESCAN ); ?>" class="" data-balloon-pos="up" data-balloon-length="large" aria-label="<?php echo __( 'Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.', 'litespeed-cache' ); ?>">
					<?php echo __( 'Rescan New Thumbnails', 'litespeed-cache' ); ?>
				</a>
			</div>
		</div>

		<div class="postbox litespeed-postbox">
			<div class="inside">
				<h3 class="litespeed-title">
					<?php echo __( 'Optimization Summary', 'litespeed-cache' ); ?>
				</h3>
				<p>
					<?php echo __( 'Total Reduction', 'litespeed-cache' ); ?>: <code><?php echo isset( $optm_summary[ 'reduced' ] ) ? Utility::real_size( $optm_summary[ 'reduced' ] ) : '-'; ?></code>
				</p>
				<p>
					<?php echo __( 'Images Pulled', 'litespeed-cache' ); ?>: <code><?php echo isset( $optm_summary[ 'img_taken' ] ) ? $optm_summary[ 'img_taken' ] : '-'; ?></code>
				</p>
				<p>
					<?php echo __( 'Last Request', 'litespeed-cache' ); ?>: <code><?php echo isset( $optm_summary[ 'last_requested' ] ) ? Utility::readable_time( $optm_summary[ 'last_requested' ] ) : '-'; ?></code>
				</p>
			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact litespeed-desc">
				<?php echo sprintf( __( 'Results can be checked in <a %s>Media Library</a>.', 'litespeed-cache' ), 'href="upload.php?mode=list"' ); ?>
			</div>
		</div>

		<div class="postbox litespeed-postbox">
			<div class="inside">
				<h3 class="litespeed-title"><?php echo __('Optimization Tools', 'litespeed-cache'); ?></h3>

				<p>
					<?php echo __( 'You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.', 'litespeed-cache' ); ?>
				</p>

				<div class="litespeed-links-group">
					<span>
						<a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_BATCH_SWITCH_ORI ); ?>" class="litespeed-link-with-icon" data-balloon-pos="up" aria-label="<?php echo __( 'Use original images (unoptimized) on your site', 'litespeed-cache' ); ?>">
							<span class="dashicons dashicons-undo"></span><?php echo __( 'Use Original Files', 'litespeed-cache' ); ?>
						</a>
					</span><span>
						<a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_BATCH_SWITCH_OPTM ); ?>" class="litespeed-link-with-icon litespeed-icon-right" data-balloon-pos="up" aria-label="<?php echo __( 'Switch back to using optimized images on your site', 'litespeed-cache' ); ?>">
							<?php echo __( 'Use Optimized Files', 'litespeed-cache' ); ?><span class="dashicons dashicons-redo"></span>
						</a>
					</span>
				</div>

			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">

				<p><a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_DESTROY ); ?>" class="litespeed-link-with-icon litespeed-danger" data-litespeed-cfm="<?php echo __( 'Are you sure to destroy all optimized images?', 'litespeed-cache' ); ?>" >
					<span class="dashicons dashicons-dismiss"></span><?php echo __( 'Destroy All Optimization Data', 'litespeed-cache' ); ?>
				</a></p>

				<div class="litespeed-desc">
					<?php echo __( 'Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.', 'litespeed-cache' ); ?>
				</div>
			</div>
		</div>
	</div>
</div>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Image Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_AUTO; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Automatically request optimization via cron job.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_CRON; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_ORI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Optimize images and save backups of the originals in the same folder.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_RM_BKUP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Automatically remove the original image backups after fetching optimized images.', 'litespeed-cache' ); ?>

				<br /><font class="litespeed-danger">
					🚨
					<?php echo __( 'This is irreversible.', 'litespeed-cache' ); ?>
					<?php echo __( 'You will be unable to Revert Optimization once the backups are deleted!', 'litespeed-cache' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_LOSSLESS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Optimize images using lossless compression.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve quality but may result in larger images than lossy compression will.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_EXIF; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.', 'litespeed-cache' ); ?>
				<?php echo __( 'This will increase the size of optimized files.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_WEBP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Request WebP versions of original images when doing optimization.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<?php
		if ( ! is_multisite() ) :
			// webp
			require LSCWP_DIR . 'tpl/img_optm/settings.media_webp.tpl.php';

		endif;
	?>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_WEBP_ATTR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 40 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Specify which element attributes will be replaced with WebP.', 'litespeed-cache' ); ?>
				<?php echo __( 'Only attributes listed here will be replaced.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( 'Use the format %1$s or %2$s (element is optional).', 'litespeed-cache' ), '<code>element.attribute</code>', '<code>.attribute</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_WEBP_REPLACE_SRCSET; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Enable replacement of WebP in %s elements that were generated outside of WordPress logic.', 'litespeed-cache' ), '<code>srcset</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#webp-for-extra-srcset' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_JPG_QUALITY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __('The image compression quality setting of WordPress out of 100.', 'litespeed-cache'); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 0, 100 ); ?>
			</div>
		</td>
	</tr>
</tbody></table>

<?php

$this->form_end();



<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_WEBP_REPLACE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Significantly improve load time by replacing images with their optimized %s versions.', 'litespeed-cache' ), '.webp' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
				<br /><?php Doc::crawler_affected(); ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$_panels = array(
	'all' => array(
		'title'	=> __( 'Clean All', 'litespeed-cache' ),
		'desc'	=> '',
	),
	'revision' => array(
		'title'	=> __( 'Post Revisions', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all post revisions', 'litespeed-cache' ),
	),
	'auto_draft' => array(
		'title'	=> __( 'Auto Drafts', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all auto saved drafts', 'litespeed-cache' ),
	),
	'trash_post' => array(
		'title'	=> __( 'Trashed Posts', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all trashed posts and pages', 'litespeed-cache' ),
	),
	'spam_comment' => array(
		'title'	=> __( 'Spam Comments', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all spam comments', 'litespeed-cache' ),
	),
	'trash_comment' => array(
		'title'	=> __( 'Trashed Comments', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all trashed comments', 'litespeed-cache' ),
	),
	'trackback-pingback' => array(
		'title'	=> __( 'Trackbacks/Pingbacks', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all trackbacks and pingbacks', 'litespeed-cache' ),
	),
	'expired_transient' => array(
		'title'	=> __( 'Expired Transients', 'litespeed-cache' ),
		'desc'	=> __( 'Clean expired transient options', 'litespeed-cache' ),
	),
	'all_transients' => array(
		'title'	=> __( 'All Transients', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all transient options', 'litespeed-cache' ),
	),
	'optimize_tables' => array(
		'title'	=> __( 'Optimize Tables', 'litespeed-cache' ),
		'desc'	=> __( 'Optimize all tables in your database', 'litespeed-cache' ),
	),
);

$rev_max = $this->conf( Base::O_DB_OPTM_REVISIONS_MAX );
$rev_age = $this->conf( Base::O_DB_OPTM_REVISIONS_AGE );
if ( $rev_max || $rev_age ) {
	$_panels[ 'revision' ][ 'desc' ] = sprintf( __( 'Clean revisions older than %1$s day(s), excluding %2$s latest revisions', 'litespeed-cache' ), '<strong>' . $rev_age . '</strong>' , '<strong>' . $rev_max . '</strong>' );
}

$total = 0;
foreach ( $_panels as $tag => $v ) {
	if ( $tag != 'all' ) {
		$_panels[ $tag ][ 'count' ] = $this->cls( 'DB_Optm' )->db_count( $tag );
		if ( ! in_array( $tag, array( 'optimize_tables' ) ) ) {
			$total += $_panels[ $tag ][ 'count' ];
		}
	}
	$_panels[ $tag ][ 'link' ] = Utility::build_url( Router::ACTION_DB_OPTM, $tag );
}

$_panels[ 'all' ][ 'count' ] = $total;

$autoload_summary = DB_Optm::cls()->autoload_summary();

?>

<h3 class="litespeed-title">
	<?php echo __('Database Optimizer', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/database/' ); ?>
</h3>

<div class="litespeed-panel-wrapper litespeed-cards-wrapper">

<?php foreach ( $_panels as $tag => $v ): ?>

	<a href="<?php echo $v[ 'link' ]; ?>" class="litespeed-panel postbox">
		<section class="litespeed-panel-wrapper-icon">
			<span class="litespeed-panel-icon-<?php echo $tag; ?>"></span>
		</section>
		<section class="litespeed-panel-content">
			<div class="litespeed-h3">
				<?php echo $v[ 'title' ]; ?>
				<span class="litespeed-panel-counter<?php if ( $v[ 'count' ] > 0 ) echo '-red'; ?>">(<?php echo $v[ 'count' ]; ?><?php echo DB_Optm::hide_more() ? '+' : ''; ?>)</span>
			</div>
			<span class="litespeed-panel-para"><?php echo $v[ 'desc' ]; ?></span>
		</section>
		<section class="litespeed-panel-wrapper-top-right">
			<span class="litespeed-panel-top-right-icon<?php echo $v[ 'count' ] > 0 ? '-cross' : '-tick'; ?>"></span>
		</section>
	</a>
<?php endforeach; ?>

</div>

<h3 class="litespeed-title"><?php echo __( 'Database Table Engine Converter', 'litespeed-cache' ); ?></h3>

<div class="litespeed-panel-wrapper">

	<table class="wp-list-table widefat striped">
		<thead><tr >
			<th scope="col">#</th>
			<th scope="col"><?php echo __( 'Table', 'litespeed-cache' ); ?></th>
			<th scope="col"><?php echo __( 'Engine', 'litespeed-cache' ); ?></th>
			<th scope="col"><?php echo __( 'Tool', 'litespeed-cache' ); ?></th>
		</tr></thead>
		<tbody>
		<?php
			$list = DB_Optm::cls()->list_myisam();
			if ( $list ) :
				foreach ( $list as $k => $v ) :
		?>
				<tr>
					<td><?php echo $k + 1; ?></td>
					<td><?php echo $v->TABLE_NAME; ?></td>
					<td><?php echo $v->ENGINE; ?></td>
					<td>
						<a href="<?php echo Utility::build_url( Router::ACTION_DB_OPTM, DB_Optm::TYPE_CONV_TB, false, false, array( 'tb' => $v->TABLE_NAME ) ); ?>">
							<?php echo __( 'Convert to InnoDB', 'litespeed-cache' ); ?>
						</a>
					</td>
				</tr>
		<?php endforeach; ?>
		<?php else : ?>
			<tr>
				<td colspan="4" class="litespeed-success litespeed-text-center">
					<?php echo __( 'We are good. No table uses MyISAM engine.', 'litespeed-cache' ); ?>
				</td>
			</tr>
		<?php endif; ?>
		</tbody>
	</table>

</div>

<style type="text/css">
	.litespeed-body .field-col {
		display: inline-block;
		vertical-align: top;
		margin-left: 20px;
		margin-right: 20px;
	}
	.litespeed-body .field-col:first-child{
		margin-left:0;
	}
</style>

<h3 class="litespeed-title"><?php echo __( 'Database Summary', 'litespeed-cache' ); ?></h3>
<div>
	<div class="field-col">
		<p>
		Autoload size: <strong><?php echo Utility::real_size( $autoload_summary->autoload_size ); ?></strong></p>
		<p>Autoload entries: <strong><?php echo $autoload_summary->autload_entries; ?></strong></p>


	</div>

	<div class="field-col">
	<p>Autoload top list:</p>
		<table class="wp-list-table widefat striped litespeed-width-auto litespeed-table-compact">
			<thead><tr >
				<th scope="col">#</th>
				<th scope="col"><?php echo __('Option Name', 'litespeed-cache'); ?></th>
				<th scope="col"><?php echo __('Size', 'litespeed-cache'); ?></th>
			</tr></thead>
			<tbody>
				<?php foreach ( $autoload_summary->autoload_toplist as $k => $v ) : ?>
				<tr>
					<td><?php echo $k + 1; ?></td>
					<td><?php echo $v->option_name; ?></td>
					<td><?php echo $v->option_value_length; ?></td>
				</tr>
				<?php endforeach; ?>
			</tbody>
		</table>

	</div>
</div>






<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'manage'			=> __( 'Manage', 'litespeed-cache' ),
);

if ( ! $this->_is_network_admin ) {
	$menu_list[ 'settings' ] = __( 'DB Optimization Settings', 'litespeed-cache' );
}

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Database Optimization', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '';
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>";
			require LSCWP_DIR . "tpl/db_optm/$tab.tpl.php";
			echo "</div>";
		}

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>


<h3 class="litespeed-title-short">
	<?php echo __( 'DB Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/database/#db-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_DB_OPTM_REVISIONS_MAX; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the number of most recent revisions to keep when cleaning revisions.', 'litespeed-cache' ); ?>
				<?php $this->_validate_ttl( $id, 1, 100, true ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DB_OPTM_REVISIONS_AGE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?> <?php echo __( 'Day(s)', 'litespeed-cache' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Revisions newer than this many days will be kept when cleaning revisions.', 'litespeed-cache' ); ?>
				<?php $this->_validate_ttl( $id, 1, 600, true ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php

$this->form_end();








<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$err = __('NOTICE: Database login cookie did not match your login cookie.', 'litespeed-cache') . ' '
	. __('If the login cookie was recently changed in the settings, please log out and back in.', 'litespeed-cache') . ' '
	. sprintf(__('If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.', 'litespeed-cache'),
		admin_url('admin.php?page=litespeed-cache#advanced'));

if (LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS') {
	$err .= ' ' . __('If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.', 'litespeed-cache');
}

self::add_notice(self::NOTICE_YELLOW, $err);
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$err = __( 'Disable All Features', 'litespeed-cache' ) ;

// other plugin left cache expired rules in .htaccess which will cause conflicts
echo Admin_Display::build_notice( Admin_Display::NOTICE_RED, $err ) ;

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$api_key = $this->conf( Base::O_API_KEY ) ;

?>

<?php if ( ! $api_key ) : ?>
	<p class="litespeed-desc">
		<?php echo __( 'This will also generate an API key from LiteSpeed\'s Server.', 'litespeed-cache' ) ; ?>
	</p>
<?php endif ; ?>


</div>

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;


$err = sprintf( __( 'Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)', 'litespeed-cache' ),
		'.htaccess',
		'`ExpiresDefault`',
		'href="https://docs.litespeedtech.com/lscache/lscwp/troubleshoot/#browser-displays-stale-content" target="_blank"'
);

// other plugin left cache expired rules in .htaccess which will cause conflicts
echo self::build_notice( self::NOTICE_YELLOW . ' lscwp-notice-ruleconflict', $err ) ;

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

// &#10030;&#10030;&#10030;&#10030;&#10030;
$stars = '<span class="wporg-ratings rating-stars"><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span></span>';
$rate_us = '<a href="https://wordpress.org/support/plugin/litespeed-cache/reviews/?filter=5#new-post" rel="noopener noreferer" target="_blank">'
				. sprintf( __( 'Rate %s on %s', 'litespeed-cache' ), '<strong>' . __( 'LiteSpeed Cache', 'litespeed-cache' ) . $stars . '</strong>', 'WordPress.org' )
			. '</a>' ;

$wiki = '<a href="https://docs.litespeedtech.com/lscache/lscwp/overview/" target="_blank">' . __( 'Read LiteSpeed Documentation', 'litespeed-cache' ) . '</a>' ;

$forum = '<a href="https://wordpress.org/support/plugin/litespeed-cache" target="_blank">' . __( 'Visit LSCWP support forum', 'litespeed-cache' ) . '</a>' ;

$community = '<a href="https://litespeedtech.com/slack" target="_blank">' . __( 'Join LiteSpeed Slack community', 'litespeed-cache' ) . '</a>' ;

// Change the footer text
if ( ! is_multisite() || is_network_admin() ) {
	$footer_text = $rate_us . ' | ' . $wiki . ' | ' . $forum . ' | ' . $community ;
}
else {
	$footer_text = $wiki . ' | ' . $forum . ' | ' . $community ;
}<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

if ( ! is_multisite() ) {
	return;
}

if ( get_current_blog_id() === BLOG_ID_CURRENT_SITE ) {
	return;
}

if ( ! $this->network_conf( Base::NETWORK_O_USE_PRIMARY ) ) {
	return;
}
?>
		<div class="litespeed-callout notice notice-error inline">
			<h4><?php echo __( 'WARNING', 'litespeed-cache' ); ?></h4>
			<p>
				<?php echo __('The network admin selected use primary site configs for all subsites.', 'litespeed-cache'); ?>
				<?php echo __('The following options are selected, but are not editable in this settings page.', 'litespeed-cache'); ?>
			</p>
		</div>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

<link rel="stylesheet" href="<?php echo LSWCP_PLUGIN_URL ; ?>assets/css/litespeed.css" />

<div class="litespeed litespeed-modal">

	<?php if ( $_progress ) : ?>
	<div class="litespeed-progress">
		<div class="litespeed-progress-bar" role="progressbar" style="width: <?php echo $_progress ; ?>%" aria-valuenow="<?php echo $_progress ; ?>" aria-valuemin="0" aria-valuemax="100"></div>
	</div>
	<?php endif ; ?>

	<div class="litespeed-wrap">
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$buf = '<h3>'. __('LiteSpeed Cache plugin is installed!', 'litespeed-cache'). '</h3>' . ' '
	. __('This message indicates that the plugin was installed by the server admin.', 'litespeed-cache') . ' '
	. __('The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.', 'litespeed-cache') . ' '
	. __('However, there is no way of knowing all the possible customizations that were implemented.', 'litespeed-cache') . ' '
	. __('For that reason, please test the site to make sure everything still functions properly.', 'litespeed-cache')
	. '<br /><br />'
	. __('Examples of test cases include:', 'litespeed-cache')
	. '<ul>'
		. '<li>' . __('Visit the site while logged out.', 'litespeed-cache') . '</li>'
		. '<li>' . __('Create a post, make sure the front page is accurate.', 'litespeed-cache') . '</li>'
	. '</ul>'
	. sprintf(__('If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.', 'litespeed-cache'),
		'href="https://wordpress.org/support/plugin/litespeed-cache" rel="noopener noreferrer" target="_blank"')
	. '<br />'
	. __('If you would rather not move at litespeed, you can deactivate this plugin.', 'litespeed-cache');

self::add_notice(self::NOTICE_BLUE . ' lscwp-whm-notice', $buf);
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$reasons = array() ;

if ( ! defined( 'LITESPEED_ALLOWED' ) ) {
	if ( defined( 'LITESPEED_SERVER_TYPE' ) && LITESPEED_SERVER_TYPE == 'NONE' ) {
		$reasons[] = array(
			'title' => __( 'To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.', 'litespeed-cache' ),
			'link'	=> 'https://docs.litespeedtech.com/lscache/lscwp/faq/#why-do-the-cache-features-require-a-litespeed-server',
		) ;
	} else {
		$reasons[] = array(
			'title' => __( 'Please enable the LSCache Module at the server level, or ask your hosting provider.', 'litespeed-cache' ),
			'link'	=> 'https://docs.litespeedtech.com/lscache/lscwp/overview/#prerequisites',
		) ;
	}
}
elseif ( ! defined( 'LITESPEED_ON' ) ) {
	$reasons[] = array(
		'title' => __( 'Please enable LiteSpeed Cache in the plugin settings.', 'litespeed-cache' ) ,
		'link'	=> 'https://docs.litespeedtech.com/lscache/lscwp/cache/#enable-cache',
	) ;
}

if ( $reasons ) :
?>
	<div class="litespeed-callout notice notice-error inline">

		<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>

		<p>
			<?php echo __( 'LSCache caching functions on this page are currently unavailable!', 'litespeed-cache' ) ; ?>
		</p>

		<ul class="litespeed-list">
		<?php foreach ( $reasons as $v ) : ?>
			<li>
				<?php echo esc_html( $v[ 'title' ] ); ?>

				<a href="<?php echo $v[ 'link' ] ; ?>" target="_blank" class="litespeed-learn-more"><?php echo __( 'Learn More', 'litespeed-cache' ) ; ?></a>
			</li>
		<?php endforeach ; ?>
		</ul>

	</div>
<?php endif ;
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$msg = __( 'LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.', 'litespeed-cache' );

echo self::build_notice( self::NOTICE_BLUE, $msg );

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

?>
<h3 class="litespeed-title-short">
	<?php echo __( 'Tuning Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/#tuning-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_GUEST_UAS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 30 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Listed User Agents will be considered as Guest Mode visitors.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_GUEST_IPS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 50 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Listed IPs will be considered as Guest Mode visitors.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>
</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$guest_update_url = parse_url( LSWCP_PLUGIN_URL . GUI::PHP_GUEST, PHP_URL_PATH );

?>
	<tr>
		<th>
			<?php $id = Base::O_GUEST; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Guest Mode provides an always cacheable landing page for an automated guest\'s first time visit, and then attempts to update cache varies via AJAX.', 'litespeed-cache' ); ?>
				<?php echo __( 'This option can help to correct the cache vary for certain advanced mobile or tablet visitors.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/#guest-mode' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
				<br /><?php Doc::crawler_affected(); ?>
			</div>
			<?php if ( $this->conf( $id ) ) : ?>
				<div class="litespeed-desc">
					<?php echo __( 'Guest Mode testing result', 'litespeed-cache' ); ?>:
					<font id='litespeed_gm_status'><?php echo __( 'Testing', 'litespeed-cache' ); ?>...</font>
				</div>
				<script>
					(function ($) {
						jQuery(document).ready(function () {
							$.post( '<?php echo $guest_update_url; ?>', function(data){
								if ( data == '[]' || $data == '{"reload":"yes"}' ) {
									$('#litespeed_gm_status').html('<font class="litespeed-success"><?php echo __( 'Guest Mode passed testing.', 'litespeed-cache' ); ?></font>');
								}
								else {
									$('#litespeed_gm_status').html('<font class="litespeed-danger"><?php echo __( 'Guest Mode failed to test.', 'litespeed-cache' ); ?></font>');
								}
							}).fail( function(){
								$('#litespeed_gm_status').html('<font class="litespeed-danger"><?php echo __( 'Guest Mode failed to test.', 'litespeed-cache' ); ?></font>');
							})
						});
					})(jQuery);
				</script>
			<?php endif; ?>
		</td>
	</tr>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

?>

<h3 class="litespeed-title-short">
	<?php echo __( 'General Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/' ); ?>
</h3>

<?php
$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );
?>

<table class="wp-list-table striped litespeed-table"><tbody>
	<?php require LSCWP_DIR . 'tpl/general/settings_inc.auto_upgrade.tpl.php'; ?>

	<tr>
		<th><?php echo __('Use Primary Site Configuration', 'litespeed-cache'); ?></th>
		<td>
			<?php $this->build_switch( Base::NETWORK_O_USE_PRIMARY ); ?>
			<div class="litespeed-desc">
				<?php echo __("Check this option to use the primary site's configuration for all subsites.", 'litespeed-cache'); ?>
				<?php echo __('This will disable the settings page on all subsites.', 'litespeed-cache'); ?>
			</div>
		</td>
	</tr>

	<?php require LSCWP_DIR . 'tpl/general/settings_inc.guest.tpl.php'; ?>

</tbody></table>

<?php
$this->form_end( true );
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'settings'	=> __( 'General Settings', 'litespeed-cache' ),
	'settings_tuning' => __( 'Tuning', 'litespeed-cache' ),
);

if ( $this->_is_network_admin ) {
	$menu_list = array(
		'network_settings' => __( 'General Settings', 'litespeed-cache' ),
	);
}

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache General Settings', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '';
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php
		$this->form_action();

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>";
			require LSCWP_DIR . "tpl/general/$tab.tpl.php";
			echo "</div>";
		}

		$this->form_end();
	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

	<!-- build_setting_auto_upgrade -->
	<tr>
		<th>
			<?php $id = Base::O_AUTO_UPGRADE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$__cloud = Cloud::cls();

// This will drop QS param `qc_res` and `domain_hash` also
$__cloud->update_is_linked_status();

$cloud_summary = Cloud::get_summary();

$can_token = $__cloud->can_token();

$is_requesting = ! empty( $cloud_summary[ 'token_ts' ] ) && ( empty( $cloud_summary[ 'apikey_ts' ] ) || $cloud_summary[ 'token_ts' ] > $cloud_summary[ 'apikey_ts' ] );

$apply_btn_txt = __( 'Request Domain Key', 'litespeed-cache' );
if ( $this->conf( Base::O_API_KEY ) ) {
	$apply_btn_txt = __( 'Refresh Domain Key', 'litespeed-cache' );
	if ( $is_requesting ) {
		$apply_btn_txt = __( 'Waiting for Refresh', 'litespeed-cache' );
	}
}
elseif ( $is_requesting ) {
	$apply_btn_txt = __( 'Waiting for Approval', 'litespeed-cache' );
}

$apply_ts_txt = '';
if ( ! empty( $cloud_summary[ 'token_ts' ] ) ) {
	$apply_ts_txt .= ' ' . __( 'Requested', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $cloud_summary[ 'token_ts' ] ) . '</code>';
}
if ( ! empty( $cloud_summary[ 'apikey_ts' ] ) ) {
	$apply_ts_txt .= ' ' . __( 'Approved', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $cloud_summary[ 'apikey_ts' ] ) . '</code>';
}
if ( ! $can_token ) {
	$next_available_req = $cloud_summary[ 'token_ts' ] + Cloud::EXPIRATION_TOKEN - time();
	$apply_ts_txt .= ' ' . sprintf( __( 'Next available request time: <code>After %s</code>', 'litespeed-cache' ), Utility::readable_time( $next_available_req, 0, true ) );
}

?>

<h3 class="litespeed-title-short">
	<?php echo __( 'General Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<?php if ( ! $this->_is_multisite ) : ?>
		<?php require LSCWP_DIR . 'tpl/general/settings_inc.auto_upgrade.tpl.php'; ?>
	<?php endif; ?>

	<tr>
		<th>
			<?php $id = Base::O_API_KEY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php if ( ! $is_requesting || $can_token ) : ?>
				<?php $this->build_input( $id ); ?>
			<?php else: ?>
				<?php $this->build_input( $id, null, null, 'text', true ); ?>
			<?php endif; ?>

			<?php if ( $can_token ) : ?>
				<?php Doc::learn_more( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_GEN_KEY ), $apply_btn_txt, true, 'button litespeed-btn-success' ); ?>
			<?php else: ?>
				<?php Doc::learn_more( 'javascript:;', $apply_btn_txt, true, 'button disabled' ); ?>
			<?php endif; ?>
			<?php if ( $apply_ts_txt ) : ?>
				<span class="litespeed-desc"><?php echo $apply_ts_txt; ?></span>
			<?php endif; ?>

			<?php if ( ! empty( $cloud_summary[ 'is_linked' ] ) ) : ?>
				<?php Doc::learn_more( Cloud::CLOUD_SERVER_DASH, __( 'Visit My Dashboard on QUIC.cloud', 'litespeed-cache' ), false, 'button litespeed-btn-success litespeed-right' ); ?>
			<?php elseif ( $__cloud->can_link_qc() ) : ?>
				<?php Doc::learn_more( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_LINK ), __( 'Link to QUIC.cloud', 'litespeed-cache' ), true, 'button litespeed-btn-warning litespeed-right' ); ?>
			<?php else: ?>
				<?php Doc::learn_more( 'javascript:;', __( 'Link to QUIC.cloud', 'litespeed-cache' ), true, 'button disabled litespeed-btn-warning litespeed-right' ); ?>
			<?php endif; ?>

			<?php if ( $is_requesting && $can_token ) : ?>
				<div class="litespeed-callout notice notice-error inline">
					<h4><?php echo __( 'Notice', 'litespeed-cache' ); ?>:</h4>
					<p><?php echo sprintf( __( 'There was a problem with retrieving your Domain Key. Please click the %s button to retry.', 'litespeed-cache' ), '<code>' . $apply_btn_txt . '</code>' ); ?></p>
					<p><?php echo __( 'There are two reasons why we might not be able to communicate with your domain:', 'litespeed-cache' ); ?>:</p>
					<p>1) <?php echo sprintf( __( 'The POST callback to %s failed.', 'litespeed-cache' ), '<code>' . home_url() . '/' . ( function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' ) ) . '/litespeed/v1/token</code>' ); ?> </p>
					<p>2) <?php echo sprintf( __( 'Our %s was not allowlisted.', 'litespeed-cache' ), __( 'Current Online Server IPs', 'litespeed-cache' ) ); ?></p>
					<p><?php echo __( 'Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance.', 'litespeed-cache' ); ?>:</p>
				</div>
			<?php endif; ?>

			<?php if ( $is_requesting ) : ?>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php echo __( 'Notice', 'litespeed-cache' ); ?>:</h4>
					<p><?php echo __( 'Request submitted. Please wait, then refresh the page to see approval notification.', 'litespeed-cache' ); ?></p>
				</div>
			<?php endif; ?>

			<?php if ( ! $this->conf( Base::O_API_KEY ) ) : ?>
				<div class="litespeed-callout notice notice-error inline">
					<h4><?php echo __( 'Warning', 'litespeed-cache' ); ?>:</h4>
					<p><?php echo sprintf( __( 'You must have %1$s first before linking to QUIC.cloud.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_API_KEY ) . '</code>' ) . ' See <a href="https://quic.cloud/terms/">Terms</a>.'; ?></p>
				</div>
			<?php elseif ( empty( $cloud_summary[ 'is_linked' ] ) ) : ?>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php echo __( 'Notice', 'litespeed-cache' ); ?>:</h4>
					<p><?php echo sprintf( __( 'You must click the %s button if you wish to associate this site with a QUIC.cloud account.', 'litespeed-cache' ), '<code>' . __( 'Link to QUIC.cloud', 'litespeed-cache' ) . '</code>' ); ?></p>
					<p><?php Doc::learn_more( 'https://www.quic.cloud/faq/#do-i-need-to-register-on-quic-cloud-to-use-the-online-services', __( 'Benefits of linking to a QUIC.cloud account', 'litespeed-cache' ) ); ?></p>
				</div>
			<?php endif; ?>

			<div class="litespeed-desc">
				<?php echo __( 'A Domain Key is required for QUIC.cloud online services.', 'litespeed-cache' ); ?>
				<br /><?php Doc::notice_ips(); ?>
				<div class="litespeed-callout notice notice-success inline">
					<h4><?php echo __( 'Current Cloud Nodes in Service','litespeed-cache' ); ?>
						<a class="litespeed-right" href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_CLEAR_CLOUD ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo __( 'Click to clear all nodes for further redetection.', 'litespeed-cache' ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to clear all cloud nodes?', 'litespeed-cache' ); ?>"><i class='litespeed-quic-icon'></i></a>
					</h4>
					<p>
						<?php
						$has_service = false;
						foreach ( Cloud::$SERVICES as $svc ) {
							if ( isset( $cloud_summary[ 'server.' . $svc ] ) ) {
								$has_service = true;
								echo '<p><b>Service:</b> <code>' . $svc . '</code> <b>Node:</b> <code>' . $cloud_summary[ 'server.' . $svc ] . '</code> <b>Connected Date:</b> <code>' . Utility::readable_time( $cloud_summary[ 'server_date.' . $svc ] ) . '</code></p>';
							}
						}
						if ( ! $has_service ) {
							echo __( 'No cloud services currently in use', 'litespeed-cache' );
						}
						?>
					</p>
				</div>

			</div>
		</td>
	</tr>

	<?php if ( ! $this->_is_multisite ) : ?>
		<?php require LSCWP_DIR . 'tpl/general/settings_inc.guest.tpl.php'; ?>
	<?php endif; ?>

	<tr>
		<th>
			<?php $id = Base::O_GUEST_OPTM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'This option enables maximum optimization for Guest Mode visitors.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/#guest-optimization', __( 'Please read all warnings before enabling this option.', 'litespeed-cache' ), false, 'litespeed-warning' ); ?>

				<?php
					$typeList = array();
					if ( $this->conf( Base::O_GUEST ) && ! $this->conf( Base::O_OPTM_UCSS ) ) {
						$typeList[] = 'UCSS';
					}
					if ( $this->conf( Base::O_GUEST ) && ! $this->conf( Base::O_OPTM_CSS_ASYNC ) ) {
						$typeList[] = 'CCSS';
					}
					if ( ! empty( $typeList ) ) {
						$theType = implode( '/', $typeList );
						echo '<br />';
						echo '<font class="litespeed-info">';
						echo '⚠️ ' . sprintf( __( 'Your %1s quota on %2s will still be in use.', 'litespeed-cache' ), $theType, 'QUIC.cloud' );
						echo '</font>';
					}
				?>

				<?php if ( ! $this->conf( Base::O_GUEST ) ) : ?>
					<br /><font class="litespeed-warning litespeed-left10">
					⚠️ <?php echo __( 'Notice', 'litespeed-cache' ); ?>: <?php echo sprintf( __( 'This option only works when turning %s on.', 'litespeed-cache' ),  '<code>' . Lang::title( Base::O_GUEST ) . '</code>' ); ?>
					</font>
				<?php endif; ?>

				<?php if ( ! $this->conf( Base::O_CACHE_MOBILE ) ) : ?>
				<br /><font class="litespeed-danger litespeed-left10">
				⚠️ <?php echo __( 'Notice', 'litespeed-cache' ); ?>: <?php echo sprintf( __( 'You need to turn %s on to get maximum result.', 'litespeed-cache' ),  '<code>' . Lang::title( Base::O_CACHE_MOBILE ) . '</code>' ); ?>
				</font>
				<?php endif; ?>

				<?php if ( ! $this->conf( Base::O_IMG_OPTM_WEBP ) ) : ?>
				<br /><font class="litespeed-danger litespeed-left10">
				⚠️ <?php echo __( 'Notice', 'litespeed-cache' ); ?>: <?php echo sprintf( __( 'You need to turn %s on and finish all WebP generation to get maximum result.', 'litespeed-cache' ),  '<code>' . Lang::title( Base::O_IMG_OPTM_WEBP ) . '</code>' ); ?>
				</font>
				<?php endif; ?>

				<?php if ( ! $this->conf( Base::O_IMG_OPTM_WEBP_REPLACE ) ) : ?>
				<br /><font class="litespeed-danger litespeed-left10">
				⚠️ <?php echo __( 'Notice', 'litespeed-cache' ); ?>: <?php echo sprintf( __( 'You need to turn %s on to get maximum result.', 'litespeed-cache' ),  '<code>' . Lang::title( Base::O_IMG_OPTM_WEBP_REPLACE ) . '</code>' ); ?>
				</font>
				<?php endif; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_SERVER_IP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Enter this site\'s IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.', 'litespeed-cache' ); ?>
				<br /><?php echo __('Your server IP', 'litespeed-cache'); ?>: <code id='litespeed_server_ip'>-</code> <a href="javascript:;" class="button button-link" id="litespeed_get_ip"><?php echo __('Check my public IP from', 'litespeed-cache'); ?> DoAPI.us</a>
				⚠️ <?php echo __( 'Notice', 'litespeed-cache' ); ?>: <?php echo __( 'the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.', 'litespeed-cache' ); ?>
				<br /><?php echo __( 'Please make sure this IP is the correct one for visiting your site.', 'litespeed-cache' ); ?>

				<?php $this->_validate_ip( $id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_NEWS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$content = null;
try {
	$content = Htaccess::cls()->htaccess_read();
} catch( \Exception $e ) {
	echo '<div class="notice notice-error is-dismissible"><p>'. $e->getMessage() . '</p></div>';
}

$htaccess_path = Htaccess::get_frontend_htaccess();

// Check if there is `ExpiresDefault` in .htaccess
if ( defined( 'LITESPEED_ON' ) ) {
	if ( $content && stripos( $content, "\nExpiresDefault" ) !== false ) {
		$is_dismissed = GUI::get_option( self::DB_DISMISS_MSG );
		if ( $is_dismissed !== self::RULECONFLICT_DISMISSED ) {
			// Need to add a notice for browser cache compatibility
			if ( $is_dismissed !== self::RULECONFLICT_ON ) {
				GUI::update_option( self::DB_DISMISS_MSG, self::RULECONFLICT_ON );
			}
			require_once LSCWP_DIR . 'tpl/inc/show_rule_conflict.php';
		}
	}
	// don't dismiss the msg automatically
	// elseif ( $is_dismissed === Cache_Admin_Display::RULECONFLICT_ON ) {
	// 	update_option( self::DISMISS_MSG, Cache_Admin_Display::RULECONFLICT_DISMISSED );
	// }
}


?>

<h3 class="litespeed-title">
	<?php echo __('LiteSpeed Cache View .htaccess', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#edit-htaccess-tab' ); ?>
</h3>

<h3 class="litespeed-title-short">
	<?php echo __( '.htaccess Path', 'litespeed-cache' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php echo __( 'Frontend .htaccess Path', 'litespeed-cache' ); ?>
		</th>
		<td>
			<code><?php echo $htaccess_path; ?></code>
			<div class="litespeed-desc">
				<?php echo __( 'Default path is', 'litespeed-cache' ); ?>: <code><?php echo Htaccess::get_frontend_htaccess( true ); ?></code>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'PHP Constant %s is supported.', 'litespeed-cache' ), '<code>LITESPEED_CFG_HTACCESS</code>' ); ?>
					<?php echo sprintf( __( 'You can use this code %1$s in %2$s to specify the htaccess file path.', 'litespeed-cache' ), '<code>defined("LITESPEED_CFG_HTACCESS") || define("LITESPEED_CFG_HTACCESS", "your path on server");</code>', '<code>wp-config.php</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php echo __( 'Backend .htaccess Path', 'litespeed-cache' ); ?>
		</th>
		<td>
			<?php echo Htaccess::get_backend_htaccess(); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Default path is', 'litespeed-cache' ); ?>: <code><?php echo Htaccess::get_backend_htaccess( true ); ?></code>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'PHP Constant %s is supported.', 'litespeed-cache' ), '<code>LITESPEED_CFG_HTACCESS_BACKEND</code>' ); ?>
					<?php echo sprintf( __( 'You can use this code %1$s in %2$s to specify the htaccess file path.', 'litespeed-cache' ), '<code>defined("LITESPEED_CFG_HTACCESS_BACKEND") || define("LITESPEED_CFG_HTACCESS_BACKEND", "your path on server");</code>', '<code>wp-config.php</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>
</tbody></table>

<?php if( $content !== null ) : ?>

	<h3 class="litespeed-title"><?php echo sprintf(__('Current %s Contents', 'litespeed-cache'), '.htaccess'); ?></h3>

	<h4><?php echo $htaccess_path; ?></h4>

	<textarea readonly wrap="off" rows="50" class="large-text"><?php echo esc_textarea($content); ?></textarea>

<?php endif; ?>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

// Existing public version list
$v_list = array(
	'4.6',
	'4.5.0.1',
	'4.4.7',
	'4.4.5',
	'4.4.4',
	'4.4.3',
	'4.4.2',
	'4.4.1',
	'4.3',
	'4.2',
	'4.1',
);

?>

<?php $this->form_action( Router::ACTION_DEBUG2, Debug2::TYPE_BETA_TEST ); ?>

	<h3 class="litespeed-title">
		<?php echo __( 'Try GitHub Version', 'litespeed-cache' ); ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#beta-test-tab' ); ?>
	</h3>

	<div class="litespeed-desc"><?php echo __( 'Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.', 'litespeed-cache' ); ?></div>
	<div class="litespeed-desc"><?php echo __( 'Example', 'litespeed-cache' ); ?>: <code>https://github.com/litespeedtech/lscache_wp/commit/e9cb446dfb66d133264d3ebec0535aaed5c932c0</code></div>

	<input type="text" name="<?php echo Debug2::BETA_TEST_URL; ?>" class="litespeed-input-long" id='litespeed-beta-test'>

	<p><a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='dev';"><?php echo __( 'Use latest GitHub Dev commit', 'litespeed-cache' ); ?></a> <code>dev</code></p>

	<p><a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='master';"><?php echo __( 'Use latest GitHub Master commit', 'litespeed-cache' ); ?></a> <code>master</code></p>

	<p><a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='latest';"><?php echo __( 'Use latest WordPress release version', 'litespeed-cache' ); ?></a> <code><?php echo Debug2::BETA_TEST_URL_WP; ?></code> <?php echo __( 'OR', 'litespeed-cache' ) ?> <code>latest</code></p>

	<p>
	<?php foreach ( $v_list as $v ) : ?>

		<a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='<?php echo $v; ?>';"><?php echo $v; ?></a>

	<?php endforeach; ?>

		<a href="javascript:;" class="button litespeed-btn-danger" onclick="document.getElementById('litespeed-beta-test').value='3.6.4';">3.6.4</a>
		<span class="litespeed-danger">
			🚨 <?php echo __( 'Downgrade not recommended. May cause fatal error due to refactored code.', 'litespeed-cache' ); ?>
		</span>
	</p>

	<div class="litespeed-desc"><?php echo sprintf( __( 'Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.', 'litespeed-cache' ), '<code>' . __( 'Use latest GitHub Dev/Master commit', 'litespeed-cache' ) . '</code>' ); ?></div>
	<div class="litespeed-desc"><?php echo sprintf( __( 'Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.', 'litespeed-cache' ), '<code>' . __( 'Use latest WordPress release version', 'litespeed-cache' ) . '</code>' ); ?></div>



	<p class="litespeed-danger">
		🚨 <?php echo sprintf( __( 'In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.', 'litespeed-cache' ), '<code>v3.6.4</code>', '<code>dev/master/v4+</code>' ); ?>
	</p>

	<button type="submit" class="button button-primary"><?php echo __('Upgrade', 'litespeed-cache'); ?></button>
</form>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$summary = Import::get_summary();
?>

<h3 class="litespeed-title">
	<?php echo __('Export Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#importexport-tab' ); ?>
</h3>

<div><a href="<?php echo Utility::build_url( Router::ACTION_IMPORT, Import::TYPE_EXPORT ); ?>" class="button button-primary">
	<?php echo __( 'Export', 'litespeed-cache' ); ?>
</a></div>

<?php if ( ! empty( $summary[ 'export_file' ] ) ) : ?>
<div class="litespeed-desc">
	<?php echo __( 'Last exported', 'litespeed-cache' ); ?>: <code><?php echo $summary[ 'export_file' ]; ?></code> <?php echo Utility::readable_time( $summary[ 'export_time' ]); ?>
</div>
<?php endif; ?>

<div class="litespeed-desc">
	<?php echo __( 'This will export all current LiteSpeed Cache settings and save them as a file.', 'litespeed-cache' ); ?>
</div>

<h3 class="litespeed-title"><?php echo __('Import Settings', 'litespeed-cache'); ?></h3>

<?php $this->form_action( Router::ACTION_IMPORT, Import::TYPE_IMPORT, true ); ?>

	<div class="litespeed-div">
		<input type="file" name="ls_file" class="litespeed-input" />
	</div>
	<div class="litespeed-div">
		<?php submit_button(__('Import', 'litespeed-cache'), 'button button-primary', 'litespeed-submit'); ?>
	</div>
</form>

<?php if ( ! empty( $summary[ 'import_file' ] ) ) : ?>
<div class="litespeed-desc">
	<?php echo __( 'Last imported', 'litespeed-cache' ); ?>: <code><?php echo $summary[ 'import_file' ]; ?></code> <?php echo Utility::readable_time( $summary[ 'import_time' ]); ?>
</div>
<?php endif; ?>

<div class="litespeed-desc">
	<?php echo __( 'This will import settings from a file and override all current LiteSpeed Cache settings.', 'litespeed-cache' ); ?>
</div>

<h3 class="litespeed-title"><?php echo __('Reset All Settings', 'litespeed-cache'); ?></h3>
<div><p>🚨 <?php echo __( 'This will reset all settings to default settings.', 'litespeed-cache' ); ?></p>
</div>
<div><a href="<?php echo Utility::build_url( Router::ACTION_IMPORT, Import::TYPE_RESET ); ?>" data-litespeed-cfm="<?php echo __( 'Are you sure you want to reset all settings back to the default settings?', 'litespeed-cache' ); ?>" class="button litespeed-btn-danger-bg">
	<?php echo __( 'Reset Settings', 'litespeed-cache' ); ?>
</a></div>



<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action( $this->_is_network_admin ? Router::ACTION_SAVE_SETTINGS_NETWORK : false );
?>


<h3 class="litespeed-title-short">
	<?php echo __('Debug Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#debug-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_DEBUG_DISABLE_ALL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'This will disable LSCache and all optimization features for debug purpose.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( __( 'OFF', 'litespeed-cache' ), __( 'ON', 'litespeed-cache' ), __( 'Admin IP Only', 'litespeed-cache' ) ) ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Outputs to WordPress debug log.', 'litespeed-cache' ); ?>
				<?php echo __( 'To prevent filling up the disk, this setting should be OFF when everything is working.', 'litespeed-cache' ); ?>
				<?php echo __( 'The Admin IP option will only output log messages on requests from admin IPs.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'The logs will be output to %s.', 'litespeed-cache' ), '<code>wp-content/debug.log</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_IPS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 50 ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Allows listed IPs (one per line) to perform certain actions from their browsers.', 'litespeed-cache' ); ?>
				<?php echo __( 'Your IP', 'litespeed-cache' ); ?>: <code><?php echo Router::get_ip(); ?></code>
				<?php $this->_validate_ip( $id ); ?>
				<br />
				<?php Doc::learn_more(
					'https://docs.litespeedtech.com/lscache/lscwp/admin/#admin-ip-commands',
					__( 'More information about the available commands can be found here.', 'litespeed-cache' )
				); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_LEVEL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( __( 'Basic', 'litespeed-cache' ), __( 'Advanced', 'litespeed-cache' ) ) ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Advanced level will log more details.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_FILESIZE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?> <?php echo __( 'MB', 'litespeed-cache' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the maximum size of the log file.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 3, 3000 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_COOKIE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Log requested cookie values.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_COLLAPS_QS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Shorten query strings in the debug log to improve readability.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_INC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Only log listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prevent any debug log of listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php

$this->form_end();

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$_panels = array(
	array(
		'title'	=> __( 'Purge Front Page', 'litespeed-cache' ),
		'desc'	=> __( 'This will Purge Front Page only', 'litespeed-cache' ),
		'icon'	=> 'purge-front',
		'append_url'	=> Purge::TYPE_PURGE_FRONTPAGE,
	),
	array(
		'title'	=> __( 'Purge Pages', 'litespeed-cache' ),
		'desc'	=> __( 'This will Purge Pages only', 'litespeed-cache' ),
		'icon'	=> 'purge-pages',
		'append_url'	=> Purge::TYPE_PURGE_PAGES,
	),
	array(
		'title'	=> sprintf( __( 'Purge %s Error', 'litespeed-cache' ), '403' ),
		'desc'	=> sprintf( __( 'Purge %s error pages', 'litespeed-cache' ), '403' ),
		'icon'	=> 'purge-403',
		'append_url'	=> Purge::TYPE_PURGE_ERROR . '403',
	),
	array(
		'title'	=> sprintf( __( 'Purge %s Error', 'litespeed-cache' ), '404' ),
		'desc'	=> sprintf( __( 'Purge %s error pages', 'litespeed-cache' ), '404' ),
		'icon'	=> 'purge-404',
		'append_url'	=> Purge::TYPE_PURGE_ERROR . '404',
	),
	array(
		'title'	=> sprintf( __( 'Purge %s Error', 'litespeed-cache' ), '500' ),
		'desc'	=> sprintf( __( 'Purge %s error pages', 'litespeed-cache' ), '500' ),
		'icon'	=> 'purge-500',
		'append_url'	=> Purge::TYPE_PURGE_ERROR . '500',
	),
	array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - LSCache',
		'desc'	=> __( 'Purge the LiteSpeed cache entries created by this plugin', 'litespeed-cache' ),
		'icon'	=> 'purge-all',
		'append_url'	=> Purge::TYPE_PURGE_ALL_LSCACHE,
	),
	array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'CSS/JS Cache', 'litespeed-cache' ),
		'desc'	=> __( 'This will purge all minified/combined CSS/JS entries only', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_CSSJS,
	),
) ;

if ( defined( 'LSCWP_OBJECT_CACHE' ) ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Object Cache', 'litespeed-cache' ),
		'desc'	=> __( 'Purge all the object caches', 'litespeed-cache' ),
		'icon'	=> 'purge-object',
		'append_url'	=> Purge::TYPE_PURGE_ALL_OBJECT,
	) ;
}

if ( Router::opcache_enabled() ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Opcode Cache', 'litespeed-cache' ),
		'desc'	=> __( 'Reset the entire opcode cache', 'litespeed-cache' ),
		'icon'	=> 'purge-opcache',
		'append_url'	=> Purge::TYPE_PURGE_ALL_OPCACHE,
	) ;
}

if ( $this->has_cache_folder( 'ccss' ) ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Critical CSS', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all generated critical CSS files', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_CCSS,
	) ;
}

if ( $this->has_cache_folder( 'ucss' ) ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Unique CSS', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all generated unique CSS files', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_UCSS,
	) ;
}

if ( $this->has_cache_folder( 'localres' ) ) {
	$_panels[] = array(
		'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Localized Resources', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all localized resources', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_LOCALRES,
	);
}

if ( $this->has_cache_folder( 'lqip' ) ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LQIP Cache', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all generated image LQIP placeholder files', 'litespeed-cache' ),
		'icon'	=> 'purge-front',
		'append_url'	=> Purge::TYPE_PURGE_ALL_LQIP,
	) ;
}

if ( $this->has_cache_folder( 'avatar' ) ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Gravatar Cache', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all cached Gravatar files', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_AVATAR,
	) ;
}


$_panels[] = array(
	'title'	=> __( 'Purge All', 'litespeed-cache' ),
	'desc'	=> __( 'Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches', 'litespeed-cache' ),
	'icon'	=> 'purge-all',
	'title_cls'	=> 'litespeed-warning',
	'newline'	=> true,
	'append_url'	=> Purge::TYPE_PURGE_ALL,
) ;

if ( ! is_multisite() || is_network_admin() ) {
	$_panels[] = array(
		'title'	=> __( 'Empty Entire Cache', 'litespeed-cache' ),
		'desc'	=> __( 'Clears all cache entries related to this site, <i>including other web applications</i>.', 'litespeed-cache' ) . ' <b>' .
					__('This action should only be used if things are cached incorrectly.', 'litespeed-cache') . '</b>',
		'tag'	=> Core::ACTION_PURGE_EMPTYCACHE,
		'icon'	=> 'empty-cache',
		'title_cls'	=> 'litespeed-danger',
		'cfm'	=>  esc_html( __( 'This will clear EVERYTHING inside the cache.', 'litespeed-cache' ) ) . ' ' .
					esc_html( __( 'This may cause heavy load on the server.', 'litespeed-cache' ) ) . ' ' .
					esc_html( __( 'If only the WordPress site should be purged, use Purge All.', 'litespeed-cache' ) )
	) ;
}

?>

<?php include_once LSCWP_DIR . "tpl/inc/check_cache_disabled.php" ; ?>

<h3 class="litespeed-title">
	<?php echo __('Purge', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#purge-tab' ); ?>
</h3>

<div class="litespeed-panel-wrapper litespeed-cards-wrapper">

<?php foreach ( $_panels as $v ): ?>
<?php $tag = ! empty( $v[ 'tag' ] ) ? $v[ 'tag' ] : Router::ACTION_PURGE ; ?>
<?php $append_url = ! empty( $v[ 'append_url' ] ) ? $v[ 'append_url' ] : false ; ?>

	<?php if ( ! empty( $v[ 'newline' ] ) ) : ?>
		<div class='litespeed-col-br'></div>
	<?php endif; ?>

	<a 	class="litespeed-panel postbox"
		href="<?php echo Utility::build_url( $tag, $append_url ) ; ?>"
		<?php if ( ! empty( $v[ 'cfm' ] ) ) echo 'data-litespeed-cfm="' . $v[ 'cfm' ] . '"' ; ?>
	>
		<section class="litespeed-panel-wrapper-icon">
			<span class="litespeed-panel-icon-<?php echo $v[ 'icon' ] ; ?>"></span>
		</section>
		<section class="litespeed-panel-content">
			<div class="litespeed-h3 <?php if ( ! empty( $v[ 'title_cls' ] ) ) echo $v[ 'title_cls' ] ; ?>">
				<?php echo $v[ 'title' ] ; ?>
			</div>
			<span class="litespeed-panel-para"><?php echo $v[ 'desc' ] ; ?></span>
		</section>
	</a>

<?php endforeach; ?>

</div>

<?php if (!is_multisite() || !is_network_admin()): ?>

	<h3 class="litespeed-title"><?php echo __('Purge By...', 'litespeed-cache'); ?></h3>
	<p class="litespeed-description">
		<?php echo __('Select below for "Purge by" options.', 'litespeed-cache'); ?>
		<?php Doc::one_per_line() ; ?>
	</p>

	<?php
		$purgeby_option = false;
		$_option_field = Admin_Display::PURGEBYOPT_SELECT;
		if(!empty($_REQUEST[$_option_field])){
			$purgeby_option = $_REQUEST[$_option_field];
		}
		if( !in_array($purgeby_option, array(
			Admin_Display::PURGEBY_CAT,
			Admin_Display::PURGEBY_PID,
			Admin_Display::PURGEBY_TAG,
			Admin_Display::PURGEBY_URL,
		)) ) {
			$purgeby_option = Admin_Display::PURGEBY_CAT;
		}
	?>

	<?php $this->form_action( Core::ACTION_PURGE_BY ) ; ?>
		<div class="litespeed-row">
			<div class="litespeed-switch litespeed-mini litespeed-right20 litespeed-margin-bottom10">
				<?php $val = Admin_Display::PURGEBY_CAT;?>
				<input type="radio" autocomplete="off" name="<?php echo $_option_field; ?>" id="purgeby_option_category"
					value="<?php echo $val; ?>" <?php if( $purgeby_option == $val ) echo 'checked'; ?>
				/>
				<label for="purgeby_option_category"><?php echo __('Category', 'litespeed-cache'); ?></label>

				<?php $val = Admin_Display::PURGEBY_PID;?>
				<input type="radio" autocomplete="off" name="<?php echo $_option_field; ?>" id="purgeby_option_postid"
					value="<?php echo $val; ?>" <?php if( $purgeby_option == $val ) echo 'checked'; ?>
				/>
				<label for="purgeby_option_postid"><?php echo __('Post ID', 'litespeed-cache'); ?></label>

				<?php $val = Admin_Display::PURGEBY_TAG;?>
				<input type="radio" autocomplete="off" name="<?php echo $_option_field; ?>" id="purgeby_option_tag"
					value="<?php echo $val; ?>" <?php if( $purgeby_option == $val ) echo 'checked'; ?>
				/>
				<label for="purgeby_option_tag"><?php echo __('Tag', 'litespeed-cache'); ?></label>

				<?php $val = Admin_Display::PURGEBY_URL;?>
				<input type="radio" autocomplete="off" name="<?php echo $_option_field; ?>" id="purgeby_option_url"
					value="<?php echo $val; ?>" <?php if( $purgeby_option == $val ) echo 'checked'; ?>
				/>
				<label for="purgeby_option_url"><?php echo __('URL', 'litespeed-cache'); ?></label>
			</div>

			<div class="litespeed-cache-purgeby-text litespeed-desc">
				<div class="<?php if($purgeby_option != Admin_Display::PURGEBY_CAT) echo 'litespeed-hide'; ?>"
					data-purgeby="<?php echo Admin_Display::PURGEBY_CAT; ?>">
					<?php echo sprintf(__('Purge pages by category name - e.g. %2$s should be used for the URL %1$s.', "litespeed-cache"),
						'<code>http://example.com/category/category-name/</code>', '<code>category-name</code>'); ?>
				</div>
				<div class="<?php if($purgeby_option != Admin_Display::PURGEBY_PID) echo 'litespeed-hide'; ?>"
					data-purgeby="<?php echo Admin_Display::PURGEBY_PID; ?>">
					<?php echo __("Purge pages by post ID.", "litespeed-cache"); ?>
				</div>
				<div class="<?php if($purgeby_option != Admin_Display::PURGEBY_TAG) echo 'litespeed-hide'; ?>"
					data-purgeby="<?php echo Admin_Display::PURGEBY_TAG; ?>">
					<?php echo sprintf(__('Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.', "litespeed-cache"),
						'<code>http://example.com/tag/tag-name/</code>', '<code>tag-name</code>'); ?>
				</div>
				<div class="<?php if($purgeby_option != Admin_Display::PURGEBY_URL) echo 'litespeed-hide'; ?>"
					data-purgeby="<?php echo Admin_Display::PURGEBY_URL; ?>">
					<?php echo __('Purge pages by relative or full URL.', 'litespeed-cache'); ?>
					<?php echo sprintf(__('e.g. Use %s or %s.', 'litespeed-cache'),
						'<code>/2016/02/24/hello-world/</code>',
						'<code>http://www.myexamplesite.com/2016/02/24/hello-world/</code>'); ?>
				</div>
			</div>

		</div>

		<p>
			<textarea name="<?php echo Admin_Display::PURGEBYOPT_LIST; ?>" rows="5" class="litespeed-textarea"></textarea>
		</p>

		<p>
			<button type="submit" class="button button-primary"><?php echo __('Purge List', 'litespeed-cache'); ?></button>
		</p>
	</form>
<?php endif; ?>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title">
	<?php echo __('Debug Log', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#log-view-tab' ); ?>

	<a href="<?php echo Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_CLEAR_LOG ); ?>" class="button button-primary" litespeed-accesskey='D'>
		<?php echo __( 'Clear Log', 'litespeed-cache' ); ?>
	</a>
</h3>


<?php
	$file = LSCWP_CONTENT_DIR . '/debug.log';
	$lines = File::count_lines( $file );
	$start = $lines > 1000 ? $lines - 1000 : 0;
	$logs = File::read( $file, $start );
	$logs = $logs ? implode( "\n", $logs ) : '';

	echo nl2br( htmlspecialchars( $logs ) );
?>


	<a href="<?php echo Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_CLEAR_LOG ); ?>" class="button button-primary">
		<?php echo __( 'Clear Log', 'litespeed-cache' ); ?>
	</a>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$_report = Report::cls() ;
$report = $_report->generate_environment_report();

$env_ref = Report::get_summary() ;

// Detect password less plugin
$link = '';
$has_pswdless_plugin = false;
if ( function_exists( 'dologin_gen_link' ) ) {
	$has_pswdless_plugin = true;
	if ( ! empty( $_GET[ 'dologin_gen_link' ] ) ) {
		unset( $_GET[ 'dologin_gen_link' ] );
		$link = dologin_gen_link( 'Litespeed Report' );
		?>
		<script>window.history.pushState( 'remove_gen_link', document.title, window.location.href.replace( '&dologin_gen_link=1', '' ) );</script>
		<?php
	}
}

$install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_3RD, false, null, array( 'plugin' => 'dologin' ) );
?>

<?php if ( ! $has_pswdless_plugin ) : ?>
	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
		<p>
			<?php echo sprintf( __( 'To generate a passwordless link for LiteSpeed Support Team access, you must install %s.', 'litespeed-cache' ), '<a href="https://wordpress.org/plugins/dologin/" target="_blank">DoLogin Security</a>' ); ?>
		</p>
		<p>
			<a href="<?php echo $install_link; ?>" class="button litespeed-btn litespeed-right20"><?php echo __( 'Install DoLogin Security', 'litespeed-cache' ); ?></a>
			<a href="plugin-install.php?s=dologin+security&tab=search&type=term" target="_blank"><?php echo __( 'Go to plugins list', 'litespeed-cache' ); ?></a>
		</p>
	</div>
<?php endif; ?>

<h3 class="litespeed-title">
	<?php echo __('LiteSpeed Report', 'litespeed-cache') ; ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#report-tab' ); ?>
</h3>

<p><?php echo __('Report number', 'litespeed-cache') ; ?>: <b><?php echo ! empty( $env_ref[ 'num' ] ) ? $env_ref[ 'num' ] : '-' ; ?></b></p>
<p><?php echo __('Report date', 'litespeed-cache') ; ?>: <b><?php echo ! empty( $env_ref[ 'dateline' ] ) ? date( 'm/d/Y H:i:s', $env_ref[ 'dateline' ] ) : '-' ; ?></b></p>

<p class="litespeed-desc">
	<?php echo __( 'The environment report contains detailed information about the WordPress configuration.', 'litespeed-cache' ); ?>
	<br />
	<?php echo __('If you run into any issues, please refer to the report number in your support message.', 'litespeed-cache'); ?>
</p>

<form action="<?php echo Utility::build_url( Router::ACTION_REPORT, Report::TYPE_SEND_REPORT ); ?>" method="post" class="litespeed-relative">
<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th><?php echo __( 'System Information', 'litespeed-cache' ) ; ?></th>
		<td>
			<textarea id="litespeed-report" rows="20" cols="100" readonly><?php echo $report; ?></textarea>
		</td>
	</tr>
	<tr>
		<th><?php echo __( 'Passwordless Link', 'litespeed-cache' ) ; ?></th>
		<td>
			<input type="text" class="litespeed-regular-text" id="litespeed-report-link" name="link" value="<?php echo $link; ?>" style="width:500px;" />
			<?php if ( $has_pswdless_plugin ) : ?>
				<a href="<?php echo admin_url( 'admin.php?page=litespeed-toolbox&dologin_gen_link=1' ); ?>" class="button button-secondary"><?php echo __( 'Generate Link for Current User', 'litespeed-cache' ) ; ?></a>
			<?php else: ?>
				<button type="button" class="button button-secondary" disabled><?php echo __( 'Generate Link for Current User', 'litespeed-cache' ) ; ?></button>
			<?php endif; ?>
			<div class="litespeed-desc">
				<?php echo __( 'To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.', 'litespeed-cache' ) ; ?>
			<?php if ( $link ) : ?>
				<br /><strong>🚨 <?php echo __('Please do NOT share the above passwordless link with anyone.', 'litespeed-cache'); ?></strong>
				<strong><?php echo sprintf( __('Generated links may be managed under <a %s>Settings</a>.', 'litespeed-cache'), 'href="' . menu_page_url( 'dologin', 0 ) . '"' ); ?></strong>
			<?php endif; ?>
			</div>
		</td>
	</tr>
	<tr>
		<th><?php echo __( 'Notes', 'litespeed-cache' ) ; ?></th>
		<td>
			<textarea name="notes" rows="10" cols="100"></textarea>
			<div class="litespeed-desc">
				<?php echo __( 'Optional', 'litespeed-cache' ); ?>:
				<?php echo __( 'provide more information here to assist the LiteSpeed team with debugging.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>
</tbody></table>

<div class='litespeed-top20'></div>
<button class="button button-primary" type="submit"><?php echo __( 'Send to LiteSpeed', 'litespeed-cache' ) ; ?></button>
<button class="button button-primary litespeed-float-submit" type="submit"><?php echo __( 'Send to LiteSpeed', 'litespeed-cache' ) ; ?></button>

<p class="litespeed-top30 litespeed-left10 litespeed-desc">
	<?php echo __( 'Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.', 'litespeed-cache' ) ; ?>
</p>
</form>

<?php include_once LSCWP_DIR . "tpl/inc/api_key.php" ; ?>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'purge'	=> __( 'Purge', 'litespeed-cache' ),
);

if ( ! $this->_is_network_admin ) {
	$menu_list[ 'import_export' ] = __( 'Import / Export', 'litespeed-cache' );
}

if ( ! $this->_is_multisite || $this->_is_network_admin ) {
	$menu_list[ 'edit_htaccess' ] = __( 'View .htaccess', 'litespeed-cache' );
}

if ( ! $this->_is_network_admin ) {
	$menu_list[ 'heartbeat' ] 		= __( 'Heartbeat', 'litespeed-cache' ); // todo: will add this to network level later
	$menu_list[ 'report' ] 			= __( 'Report', 'litespeed-cache' );
}

if ( ! $this->_is_multisite || $this->_is_network_admin ) {
	$menu_list[ 'settings-debug' ] 	= __( 'Debug Settings', 'litespeed-cache' );
	$menu_list[ 'log_viewer' ] 		= __( 'Log View', 'litespeed-cache' );
	$menu_list[ 'beta_test' ] 		= __( 'Beta Test', 'litespeed-cache' );
}

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Toolbox', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '';
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>";
			require LSCWP_DIR . "tpl/toolbox/$tab.tpl.php";
			echo "</div>";
		}

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Heartbeat Control', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#heartbeat-tab' ); ?>
</h3>

<div class="litespeed-callout notice notice-warning inline">
	<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php echo __( 'Disable WordPress interval heartbeat to reduce server load.', 'litespeed-cache' ); ?>
	<span class="litespeed-warning">
		🚨
		<?php echo __( 'Disabling this may cause WordPress tasks triggered by AJAX to stop working.', 'litespeed-cache' ); ?>
</span></p>
</div>


<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_FRONT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">

				<?php echo __( 'Turn ON to control heartbeat on frontend.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_FRONT_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short'); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'frontend' ); ?>
				<?php echo sprintf( __( 'WordPress valid interval is %s seconds.', 'litespeed-cache' ), '<code>15</code> - <code>120</code>' ); ?><br />
				<?php echo sprintf( __( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'frontend' ); ?><br />
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 15, 120, true ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_BACK; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn ON to control heartbeat on backend.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_BACK_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short'); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'backend' ); ?>
				<?php echo sprintf( __( 'WordPress valid interval is %s seconds', 'litespeed-cache' ), '<code>15</code> ~ <code>120</code>' ); ?><br />
				<?php echo sprintf( __( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'backend' ); ?><br />
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 15, 120, true ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_EDITOR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn ON to control heartbeat in backend editor.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_EDITOR_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short'); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'backend editor' ); ?>
				<?php echo sprintf( __( 'WordPress valid interval is %s seconds', 'litespeed-cache' ), '<code>15</code> ~ <code>120</code>' ); ?><br />
				<?php echo sprintf( __( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'frontend' ); ?><br />
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 15, 120, true ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php $this->form_end(); ?>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$crawler_summary = Crawler::get_summary();

$__map = Crawler_Map::cls();

$list = $__map->list_blacklist( 30 );
$count = $__map->count_blacklist();
$pagination = Utility::pagination( $count, 30 );

?>
<p class="litespeed-right">
<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_EMPTY ); ?>" class="button litespeed-btn-warning" data-litespeed-cfm="<?php echo __( 'Are you sure to delete all existing blocklist items?', 'litespeed-cache' ) ; ?>" >
	<?php echo __( 'Empty blocklist', 'litespeed-cache' ); ?>
</a>
</p>

<h3 class="litespeed-title">
	<?php echo __( 'Blocklist', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#blacklist-tab' ); ?>
</h3>

<?php echo __( 'Total', 'litespeed-cache' ) . ': ' . $count; ?>

<?php echo $pagination; ?>
<table class="wp-list-table widefat striped">
	<thead><tr >
		<th scope="col">#</th>
		<th scope="col"><?php echo __( 'URL', 'litespeed-cache' ); ?></th>
		<th scope="col"><?php echo __( 'Status', 'litespeed-cache' ); ?></th>
		<th scope="col"><?php echo __( 'Operation', 'litespeed-cache' ); ?></th>
	</tr></thead>
	<tbody>
		<?php foreach ( $list as $i => $v ) : ?>
		<tr>
			<td><?php echo $i + 1; ?></td>
			<td>
				<?php echo $v[ 'url' ]; ?>
			</td>
			<td>
				<?php echo Crawler::cls()->display_status( $v[ 'res' ], $v[ 'reason' ] ); ?>
			</td>
			<td>
				<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_DEL, false, null, array( 'id' => $v[ 'id' ] ) ); ?>" class="button button-secondary"><?php echo __( 'Remove from Blocklist', 'litespeed-cache' ); ?></a>
			</td>
		</tr>
		<?php endforeach; ?>
	</tbody>
</table>
<?php echo $pagination; ?>

<p>
	<i class="litespeed-dot litespeed-bg-default"></i> = <?php echo __( 'Not blocklisted', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-warning"></i> = <?php echo __( 'Blocklisted due to not cacheable', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-danger"></i> = <?php echo __( 'Blocklisted', 'litespeed-cache' ); ?><br>
</p>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __('Crawler Sitemap Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#sitemap-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_SITEMAP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-long' ); ?>
			<div class="litespeed-desc">
				<?php echo __('The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.', 'litespeed-cache'); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_DROP_DOMAIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.', 'litespeed-cache' ); ?>
				<?php echo __( 'If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_MAP_TIMEOUT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the timeout while parsing the sitemap.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 15, 1800 ); ?>
			</div>
		</td>
	</tr>
</tbody></table>

<?php
$this->form_end();
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$crawler_summary = Crawler::get_summary();

$__map = Crawler_Map::cls();

$list = $__map->list_map( 30 );
$count = $__map->count_map();
$pagination = Utility::pagination( $count, 30 );

?>
<p class="litespeed-right">
<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_EMPTY ); ?>" class="button litespeed-btn-warning">
	<?php echo __( 'Clean Crawler Map', 'litespeed-cache' ); ?>
</a>

<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_REFRESH_MAP ); ?>" class="button button-secondary">
	<?php echo __( 'Refresh Crawler Map', 'litespeed-cache' ); ?>
</a>
</p>

<p>
	<?php
		if ( ! empty( $crawler_summary[ 'sitemap_time' ] ) ) {
			echo sprintf( __( 'Generated at %s', 'litespeed-cache' ), Utility::readable_time( $crawler_summary[ 'sitemap_time' ] ) );
		}
	?>
</p>

<h3 class="litespeed-title">
	<?php echo __( 'Sitemap List', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#map-tab' ); ?>
</h3>

<?php echo __( 'Sitemap Total', 'litespeed-cache' ) . ': ' . $count; ?>

<?php echo $pagination; ?>
<table class="wp-list-table widefat striped">
	<thead><tr >
		<th scope="col">#</th>
		<th scope="col"><?php echo __( 'URL', 'litespeed-cache' ); ?></th>
		<th scope="col"><?php echo __( 'Crawler Status', 'litespeed-cache' ); ?></th>
		<th scope="col"><?php echo __( 'Operation', 'litespeed-cache' ); ?></th>
	</tr></thead>
	<tbody>
		<?php foreach ( $list as $i => $v ) : ?>
		<tr>
			<td><?php echo $i + 1; ?></td>
			<td>
				<?php echo $v[ 'url' ]; ?>
			</td>
			<td>
				<?php echo Crawler::cls()->display_status( $v[ 'res' ], $v[ 'reason' ] ); ?>
			</td>
			<td>
				<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_ADD, false, null, array( 'id' => $v[ 'id' ] ) ); ?>" class="button button-secondary"><?php echo __( 'Add to Blocklist', 'litespeed-cache' ); ?></a>
			</td>
		</tr>
		<?php endforeach; ?>
	</tbody>
</table>
<?php echo $pagination; ?>

<p>
	<i class="litespeed-dot litespeed-bg-success"></i> = <?php echo __( 'Cache Hit', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-primary"></i> = <?php echo __( 'Cache Miss', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-warning"></i> = <?php echo __( 'Blocklisted due to not cacheable', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-danger"></i> = <?php echo __( 'Blocklisted', 'litespeed-cache' ); ?><br>
</p>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$menu_list = array(
	'summary'				=> __( 'Summary', 'litespeed-cache' ),
	'map'					=> __( 'Map', 'litespeed-cache' ),
	'blacklist'				=> __( 'Blocklist', 'litespeed-cache' ),
	'settings-general'		=> __( 'General Settings', 'litespeed-cache' ),
	'settings-simulation'	=> __( 'Simulation Settings', 'litespeed-cache' ),
	'settings-sitemap'		=> __( 'Sitemap Settings', 'litespeed-cache' ),
) ;

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Crawler', 'litespeed-cache' ) ; ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER ; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1 ;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '' ;
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>" ;
			$i ++ ;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>" ;
			require LSCWP_DIR . "tpl/crawler/$tab.tpl.php" ;
			echo "</div>" ;
		}

	?>
	</div>

</div>

<iframe name="litespeedHiddenIframe" src="" width="0" height="0" frameborder="0"></iframe>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$__crawler = Crawler::cls();
$crawler_list = $__crawler->list_crawlers();

$summary = Crawler::get_summary();
if ( $summary[ 'curr_crawler' ] >= count( $crawler_list ) ) {
	$summary[ 'curr_crawler' ] = 0;
}

$is_running = time() - $summary[ 'is_running' ] <= $this->conf( Base::O_CRAWLER_RUN_DURATION );

$disabled = Router::can_crawl() ? '' : 'disabled';

$seconds = $this->conf( Base::O_CRAWLER_RUN_INTERVAL );
if($seconds > 0):
	$recurrence = '';
	$hours = (int)floor($seconds / 3600);
	if ( $hours ) {
		if ( $hours > 1) {
			$recurrence .= sprintf(__('%d hours', 'litespeed-cache'), $hours);
		}
		else {
			$recurrence .= sprintf(__('%d hour', 'litespeed-cache'), $hours);
		}
	}
	$minutes = (int)floor( ($seconds % 3600 ) / 60 );
	if ( $minutes ) {
		$recurrence .= ' ';
		if ( $minutes > 1) {
			$recurrence .= sprintf(__('%d minutes', 'litespeed-cache'), $minutes);
		}
		else {
			$recurrence .= sprintf(__('%d minute', 'litespeed-cache'), $minutes);
		}
	}
	?>

	<h3 class="litespeed-title litespeed-relative">
		<?php echo __('Crawler Cron', 'litespeed-cache'); ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/' ); ?>
	</h3>

	<?php if ( ! Router::can_crawl() ): ?>
		<div class="litespeed-callout notice notice-error inline">
			<h4><?php echo __('WARNING', 'litespeed-cache'); ?></h4>
			<p><?php echo __('The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.', 'litespeed-cache'); ?></p>
			<p><?php echo sprintf(__('See <a %s>Introduction for Enabling the Crawler</a> for detailed information.', 'litespeed-cache'), 'href="https://docs.litespeedtech.com/lscache/lscwp/admin/#enabling-and-limiting-the-crawler" target="_blank"'); ?></p>
		</div>
	<?php endif; ?>


	<?php if ( $summary[ 'this_full_beginning_time' ] ) : ?>
	<p>
		<b><?php echo __( 'Current sitemap crawl started at', 'litespeed-cache' ); ?>:</b>
		<?php echo Utility::readable_time( $summary[ 'this_full_beginning_time' ] ); ?>
	</p>

		<?php if ( ! $is_running ) : ?>
	<p>
		<b><?php echo __( 'The next complete sitemap crawl will start at', 'litespeed-cache' ); ?>:</b>
		<?php echo date('m/d/Y H:i:s',$summary[ 'this_full_beginning_time' ] + LITESPEED_TIME_OFFSET + $summary[ 'last_full_time_cost' ] + $this->conf( Base::O_CRAWLER_CRAWL_INTERVAL )); ?>
		<?php endif; ?>
	</p>

	<?php endif; ?>
	<?php if ( $summary[ 'last_full_time_cost' ] ) : ?>
	<p>
		<b><?php echo __( 'Last complete run time for all crawlers', 'litespeed-cache' ); ?>:</b>
		<?php echo sprintf( __( '%d seconds', 'litespeed-cache' ), $summary[ 'last_full_time_cost' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'last_crawler_total_cost' ] ) : ?>
	<p>
		<b><?php echo __('Run time for previous crawler', 'litespeed-cache'); ?>:</b>
		<?php echo sprintf( __( '%d seconds', 'litespeed-cache' ), $summary[ 'last_crawler_total_cost' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'curr_crawler_beginning_time' ] ) : ?>
	<p>
		<b><?php echo __('Current crawler started at', 'litespeed-cache'); ?>:</b>
		<?php echo Utility::readable_time( $summary[ 'curr_crawler_beginning_time' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'last_start_time' ] ) : ?>
	<p class='litespeed-desc'>
		<b><?php echo __('Last interval', 'litespeed-cache'); ?>:</b>
		<?php echo Utility::readable_time( $summary[ 'last_start_time' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'end_reason' ] ) : ?>
	<p class='litespeed-desc'>
		<b><?php echo __( 'Ended reason', 'litespeed-cache' ); ?>:</b>
		<?php echo esc_html( $summary[ 'end_reason' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'last_crawled' ] ) : ?>
	<p class='litespeed-desc'>
		<?php echo sprintf(__('<b>Last crawled:</b> %s item(s)', 'litespeed-cache'), $summary[ 'last_crawled' ] ); ?>
	</p>
	<?php endif; ?>

	<p>
		<?php echo " <a href='" . Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_RESET ) . "' class='button litespeed-btn-warning'>" . __('Reset position', 'litespeed-cache') . "</a>";

		$href = Router::can_crawl() ? Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_START ) : 'javascript:;';
		echo " <a href='$href' id='litespeed_manual_trigger' class='button litespeed-btn-success' litespeed-accesskey='R' $disabled>" . __('Manually run', 'litespeed-cache') . "</a>";
		?>
	</p>


	<table class="wp-list-table widefat striped">
		<thead><tr >
			<th scope="col">#</th>
			<th scope="col"><?php echo __('Cron Name', 'litespeed-cache'); ?></th>
			<th scope="col"><?php echo __('Run Frequency', 'litespeed-cache'); ?></th>
			<th scope="col"><?php echo __( 'Status', 'litespeed-cache' ); ?></th>
			<th scope="col"><?php echo __( 'Activate', 'litespeed-cache' ); ?></th>
			<th scope="col"><?php echo __( 'Running', 'litespeed-cache' ); ?></th>
		</tr></thead>
		<tbody>
			<?php foreach ( $crawler_list as $i => $v ) :
					$hit = ! empty( $summary[ 'crawler_stats' ][ $i ][ 'H' ] ) ? $summary[ 'crawler_stats' ][ $i ][ 'H' ] : 0;
					$miss = ! empty( $summary[ 'crawler_stats' ][ $i ][ 'M' ] ) ? $summary[ 'crawler_stats' ][ $i ][ 'M' ] : 0;

					$blacklisted = ! empty( $summary[ 'crawler_stats' ][ $i ][ 'B' ] ) ? $summary[ 'crawler_stats' ][ $i ][ 'B' ] : 0;
					$blacklisted += ! empty( $summary[ 'crawler_stats' ][ $i ][ 'N' ] ) ? $summary[ 'crawler_stats' ][ $i ][ 'N' ] : 0;

					if ( isset( $summary[ 'crawler_stats' ][ $i ][ 'W' ] ) ) {
						$waiting = $summary[ 'crawler_stats' ][ $i ][ 'W' ] ?: 0;
					}
					else {
						$waiting = $summary[ 'list_size' ] - $hit - $miss - $blacklisted;
					}
			?>
			<tr>
				<td>
				<?php
					echo $i + 1;
					if ( $i == $summary[ 'curr_crawler' ] ) {
						echo "<img class='litespeed-crawler-curr' src='" . LSWCP_PLUGIN_URL . "assets/img/Litespeed.icon.svg' />";
					}
				?>
				</td>
				<td>
					<?php echo $v[ 'title' ]; ?>
				</td>
				<td><?php echo $recurrence; ?></td>
				<td>
					<?php echo '<i class="litespeed-badge litespeed-bg-default" data-balloon-pos="up" aria-label="' . __( 'Waiting', 'litespeed-cache' ) . '">' . ( $waiting ?: '-' ) . '</i> '; ?>
					<?php echo '<i class="litespeed-badge litespeed-bg-success" data-balloon-pos="up" aria-label="' . __( 'Hit', 'litespeed-cache' ) . '">' . ( $hit ?: '-' ) . '</i> '; ?>
					<?php echo '<i class="litespeed-badge litespeed-bg-primary" data-balloon-pos="up" aria-label="' . __( 'Miss', 'litespeed-cache' ) . '">' . ( $miss ?: '-' ) . '</i> '; ?>
					<?php echo '<i class="litespeed-badge litespeed-bg-danger" data-balloon-pos="up" aria-label="' . __( 'Blocklisted', 'litespeed-cache' ) . '">' . ( $blacklisted ?: '-' ) . '</i> '; ?>
				</td>
				<td>
					<?php $this->build_toggle( 'litespeed-crawler-'.$i ,  $__crawler->is_active( $i ) ); ?>
				</td>
				<td>
				<?php
					if ( $i == $summary[ 'curr_crawler' ] ) {
						echo "Position: " . ( $summary[ 'last_pos' ] + 1 );
						if ( $is_running ) {
							echo " <span class='litespeed-label-success'>" . __( 'running', 'litespeed-cache' ) . "</span>";
						}
					}
				?>
				</td>
			</tr>
			<?php endforeach; ?>
		</tbody>
	</table>

	<p>
		<i class="litespeed-badge litespeed-bg-default"></i> = <?php echo __( 'Waiting to be Crawled', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-success"></i> = <?php echo __( 'Already Cached', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-primary"></i> = <?php echo __( 'Successfully Crawled', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-danger"></i> = <?php echo __( 'Blocklisted', 'litespeed-cache' ); ?><br>
	</p>

	<div class="litespeed-desc">
		<div><?php echo __('Run frequency is set by the Interval Between Runs setting.','litespeed-cache'); ?></div>
		<div><?php echo __('Crawlers cannot run concurrently.', 'litespeed-cache')
		 . __('&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.','litespeed-cache'); ?></div>
		<div><?php echo sprintf(__('Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.','litespeed-cache'), ' href="https://developer.wordpress.org/plugins/cron/hooking-wp-cron-into-the-system-task-scheduler/" target="_blank" '); ?></div>
	</div>
<?php endif; ?>


	<h3 class="litespeed-title"><?php echo __('Watch Crawler Status', 'litespeed-cache'); ?></h3>

	<?php
		$ajaxUrl = $__crawler->json_path();
		if ( $ajaxUrl ):
	?>

	<input type="button" id="litespeed-crawl-url-btn" value="<?php echo __('Show crawler status', 'litespeed-cache'); ?>" class="button button-secondary" data-url="<?php echo $ajaxUrl; ?>" />

	<div class="litespeed-shell litespeed-hide">
		<div class="litespeed-shell-header-bar"></div>
		<div class="litespeed-shell-header">
			<div class="litespeed-shell-header-bg"></div>
			<div class="litespeed-shell-header-icon-container">
				<img id="litespeed-shell-icon" src="<?php echo LSWCP_PLUGIN_URL . 'assets/img/Litespeed.icon.svg'; ?>" />
			</div>
		</div>
		<ul class="litespeed-shell-body">
			<li>Start watching...</li>
			<li id="litespeed-loading-dot"></li>
		</ul>
	</div>

	<?php else: ?>
	<p>
		<?php echo __('No crawler meta file generated yet', 'litespeed-cache'); ?>
	</p>
	<?php endif; ?>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __('Crawler General Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#general-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CRAWLER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'This will enable crawler cron.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_USLEEP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?> <?php echo __('microseconds', 'litespeed-cache'); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify time in microseconds for the delay between requests during a crawl.', 'litespeed-cache'); ?>

				<?php if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_USLEEP ] ) ) : ?>
					<font class="litespeed-warning">
						<?php echo __('NOTE', 'litespeed-cache'); ?>:
						<?php echo __( 'Server allowed min value', 'litespeed-cache'); ?>: <code><?php echo $_SERVER[ Base::ENV_CRAWLER_USLEEP ]; ?></code>
					</font>
				<?php else : ?>
					<?php $this->recommended( $id ); ?>
				<?php endif; ?>

				<?php $this->_validate_ttl( $id, false, 30000 ); ?>

				<br />
				<?php $this->_api_env_var( Base::ENV_CRAWLER_USLEEP ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_RUN_DURATION; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?> <?php echo __('seconds', 'litespeed-cache'); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify time in seconds for the duration of the crawl interval.', 'litespeed-cache'); ?>
				<?php $this->recommended($id); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_RUN_INTERVAL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?> <?php echo __('seconds', 'litespeed-cache'); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify time in seconds for the time between each run interval.', 'litespeed-cache'); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 60 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_CRAWL_INTERVAL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?> <?php echo __('seconds', 'litespeed-cache'); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.', 'litespeed-cache'); ?>
				<?php $this->recommended($id); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_THREADS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify Number of Threads to use while crawling.', 'litespeed-cache'); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 1, 16 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_TIMEOUT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the timeout while crawling each URL.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 10, 300 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_LOAD_LIMIT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?>
			<div class="litespeed-desc">
				<?php echo __( 'The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.', 'litespeed-cache' );
				?>

				<?php if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ] ) ) : ?>
					<font class="litespeed-warning">
						<?php echo __('NOTE', 'litespeed-cache'); ?>:
						<?php echo __( 'Server enforced value', 'litespeed-cache'); ?>: <code><?php echo $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ]; ?></code>
					</font>
				<?php elseif ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ] ) ) : ?>
					<font class="litespeed-warning">
						<?php echo __('NOTE', 'litespeed-cache'); ?>:
						<?php echo __( 'Server allowed max value', 'litespeed-cache'); ?>: <code><?php echo $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ]; ?></code>
					</font>
				<?php else : ?>
					<?php $this->recommended($id); ?>

				<?php endif; ?>

				<br />
				<?php $this->_api_env_var( Base::ENV_CRAWLER_LOAD_LIMIT, Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
$this->form_end();
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __('Crawler Simulation Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#simulation-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_ROLES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 20 ); ?>

			<div class="litespeed-desc">
				<?php echo __('To crawl the site as a logged-in user, enter the user ids to be simulated.', 'litespeed-cache'); ?>
				<?php Doc::one_per_line(); ?>
			</div>

		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_COOKIES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->enroll( $id . '[name][]' ); ?>
			<?php $this->enroll( $id . '[vals][]' ); ?>

			<div id="litespeed_crawler_simulation_div"></div>

			<script type="text/babel">
				ReactDOM.render(
					<CrawlerSimulate list={ <?php echo json_encode( $this->conf( $id ) ); ?> } />,
					document.getElementById( 'litespeed_crawler_simulation_div' )
				);
			</script>

			<div class="litespeed-desc">
				<?php echo __('To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.', 'litespeed-cache'); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#cookie-simulation' ); ?>
				<p><?php echo sprintf( __( 'Use %1$s in %2$s to indicate this cookie has not been set.', 'litespeed-cache' ), '<code>_null</code>', __( 'Cookie Values', 'litespeed-cache' ) ); ?></p>
			</div>

		</td>
	</tr>

</tbody></table>

<?php
$this->form_end();
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$cf_on = $this->conf( Base::O_CDN_CLOUDFLARE ) ;
$cf_domain = $this->conf( Base::O_CDN_CLOUDFLARE_NAME ) ?: '-' ;
$cf_zone = $this->conf( Base::O_CDN_CLOUDFLARE_ZONE ) ?: '-' ;

$curr_status = CDN\Cloudflare::get_option( CDN\Cloudflare::ITEM_STATUS, array() ) ;

?>
<h3 class="litespeed-title"><?php echo __('QUIC.cloud', 'litespeed-cache'); ?></h3>

<p><?php echo __('To manage QUIC.cloud options, please visit', 'litespeed-cache'); ?>: <a href="<?php echo Cloud::CLOUD_SERVER_DASH; ?>" target="_blank"><?php echo Cloud::CLOUD_SERVER_DASH; ?></a></p>


<h3 class="litespeed-title"><?php echo __('Cloudflare', 'litespeed-cache'); ?></h3>

<?php if ( ! $cf_on ) : ?>
<div class="litespeed-callout notice notice-error inline">
	<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>
	<p>
		<?php echo __('To enable the following functionality, turn ON Cloudflare API in CDN Settings.', 'litespeed-cache'); ?>
	</p>
</div>
<?php endif ; ?>

<p><?php echo __('Cloudflare Domain', 'litespeed-cache'); ?>: <code><?php echo $cf_domain ; ?></code></p>
<p><?php echo __('Cloudflare Zone', 'litespeed-cache'); ?>: <code><?php echo $cf_zone ; ?></code></p>

<p>
	<b><?php echo __( 'Development Mode', 'litespeed-cache' ) ; ?>:</b>
	<a href="<?php echo Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_SET_DEVMODE_ON ) ; ?>" class="button litespeed-btn-warning">
		<?php echo __( 'Turn ON', 'litespeed-cache' ) ; ?>
	</a>
	<a href="<?php echo Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_SET_DEVMODE_OFF ) ; ?>" class="button litespeed-btn-warning">
		<?php echo __( 'Turn OFF', 'litespeed-cache' ) ; ?>
	</a>
	<a href="<?php echo Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_GET_DEVMODE ) ; ?>" class="button litespeed-btn-success">
		<?php echo __( 'Check Status', 'litespeed-cache' ) ; ?>
	</a>

	<?php if ( $curr_status ) : ?>
	<span class="litespeed-desc">
	<?php
		if ( time() >= $curr_status[ 'devmode_expired' ] ) {
			$expired_at = date( 'm/d/Y H:i:s', $curr_status[ 'devmode_expired' ] + LITESPEED_TIME_OFFSET ) ;
			$curr_status[ 'devmode' ] = 'OFF' ;
			echo sprintf( __( 'Current status is %1$s since %2$s.', 'litespeed-cache' ), '<code>' . strtoupper( $curr_status[ 'devmode' ] ) . '</code>', '<code>' . $expired_at . '</code>' ) ;
		}
		else {
			$expired_at = $curr_status[ 'devmode_expired' ] - time() ;
			$expired_at = Utility::readable_time( $expired_at, 3600 * 3, true );
		?>
			<?php echo sprintf( __( 'Current status is %s.', 'litespeed-cache' ), '<code>' . strtoupper( $curr_status[ 'devmode' ] ) . '</code>' ) ; ?>
			<?php echo sprintf( __( 'Development mode will be automatically turned off in %s.', 'litespeed-cache' ), '<code>' . $expired_at . '</code>' ) ; ?>
			<?php
		}
	?>
	</span>
	<?php endif ; ?>

	<p class="litespeed-desc">
		<?php echo __( 'Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.', 'litespeed-cache' ) ; ?>
		<?php echo __( 'Development Mode will be turned off automatically after three hours.', 'litespeed-cache' ) ; ?>
		<a href="https://support.cloudflare.com/hc/en-us/articles/200168246" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
	</p>
</p>

<p>
	<b><?php echo __( 'Cloudflare Cache', 'litespeed-cache' ) ; ?>:</b>
	<?php if ( ! $cf_on ) : ?>
		<a href="#" class="button button-secondary disabled">
	<?php else : ?>
		<a href="<?php echo Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_PURGE_ALL ) ; ?>" class="button litespeed-btn-danger">
	<?php endif ; ?>
		<?php echo __( 'Purge Everything', 'litespeed-cache' ) ; ?>
	</a>
</p><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$menu_list = array(
	'settings'			=> __( 'CDN Settings', 'litespeed-cache' ),
	'manage'			=> __( 'Manage', 'litespeed-cache' ),
) ;

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache CDN', 'litespeed-cache' ) ; ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER ; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1 ;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '' ;
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>" ;
			$i ++ ;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>" ;
			require LSCWP_DIR . "tpl/cdn/$tab.tpl.php" ;
			echo "</div>" ;
		}

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$home_url = home_url( '/' );
$parsed = parse_url( $home_url );
$home_url = str_replace( $parsed[ 'scheme' ] . ':', '', $home_url );
$cdn_url = 'https://cdn.' . substr( $home_url, 2 );

$cdn_mapping = $this->conf( Base::O_CDN_MAPPING );
// Special handler: Append one row if somehow the DB default preset value got deleted
if ( ! $cdn_mapping ) {
	$this->load_default_vals();
	$cdn_mapping = self::$_default_options[ Base::O_CDN_MAPPING ];
}

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'CDN Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_CDN_QUIC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Enable %s CDN API functionality.', 'litespeed-cache' ), 'QUIC.cloud' ); ?>
				<?php Doc::learn_more( 'https://quic.cloud/docs/cdn/getting-started/verify-quic-cloud-cdn-is-working/#check-lscache-wordpress-plugin' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CDN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.', 'litespeed-cache' ), '<code>' . __( 'ON', 'litespeed-cache' ) . '</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/#use-cdn-mapping' ); ?>
			</div>

			<div class="litespeed-desc">
				<?php echo sprintf( __( 'NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.', 'litespeed-cache' ), '<code>' . __( 'OFF', 'litespeed-cache' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left"></th>
		<td>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_URL . '][]' ); ?>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_IMG . '][]' ); ?>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_CSS . '][]' ); ?>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_JS . '][]' ); ?>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_FILETYPE . '][]' ); ?>

			<div id="litespeed_cdn_mapping_div"></div>

			<script type="text/babel">
				ReactDOM.render(
					<CDNMapping list={ <?php echo json_encode( $cdn_mapping ); ?> } />,
					document.getElementById( 'litespeed_cdn_mapping_div' )
				);
			</script>

			<div class="litespeed-warning">
				<?php echo __( 'NOTE', 'litespeed-cache' ); ?>:
				<?php echo __( 'To randomize CDN hostname, define multiple hostnames for the same resources.', 'litespeed-cache' ); ?>
			</div>

			<div class="litespeed-desc">
				<b><?php $this->title( Base::CDN_MAPPING_INC_IMG ); ?></b>:
				<?php echo sprintf( __( 'Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.', 'litespeed-cache' ), '<code>&lt;img</code>', '<code>url()</code>' ); ?>

				<br />
				<b><?php $this->title( Base::CDN_MAPPING_INC_CSS ); ?></b>:
				<?php echo __( 'Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.', 'litespeed-cache' ); ?>

				<br />
				<b><?php $this->title( Base::CDN_MAPPING_INC_JS ); ?></b>:
				<?php echo __( 'Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.', 'litespeed-cache' ); ?>

				<br />
				<b><?php $this->title( Base::CDN_MAPPING_FILETYPE ); ?></b>:
				<?php echo __( 'Static file type links to be replaced by CDN links.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
				<?php echo sprintf( __( 'This will affect all tags containing attributes: %s %s %s.', 'litespeed-cache' ), '<code>src=""</code>', '<code>data-src=""</code>', '<code>href=""</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/#include-file-types', __( 'Default value', 'litespeed-cache' ) ); ?>

				<br />
				<?php echo sprintf( __( 'If you turn any of the above settings OFF, please remove the related file types from the %s box.', 'litespeed-cache' ), '<b>' . __( 'Include File Types', 'litespeed-cache' ) . '</b>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/#include-file-types' ); ?>
			</div>

		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CDN_ATTR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 40 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Specify which HTML element attributes will be replaced with CDN Mapping.', 'litespeed-cache' ); ?>
				<?php echo __( 'Only attributes listed here will be replaced.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( 'Use the format %1$s or %2$s (element is optional).', 'litespeed-cache' ), '<code>element.attribute</code>', '<code>.attribute</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_CDN_ORI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.', 'litespeed-cache' ), '<code>//</code>', '<code>' . $home_url . '</code>' ); ?>
				<br /><?php echo sprintf( __( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ), '<code>*</code>', '<code>//www.aa.com</code>', '<code>//aa.com</code>', '<code>//*aa.com</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_CDN_ORI_DIR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 40 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Only files within these directories will be pointed to the CDN.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_CDN_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Paths containing these strings will not be served from the CDN.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CDN_CLOUDFLARE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Use %s API functionality.', 'litespeed-cache' ), 'Cloudflare' ); ?>
				<?php echo sprintf( __( 'This can be managed from %1$s%2$s tab.', 'litespeed-cache' ), '<b>' . __( 'CDN', 'litespeed-cache' ) . '</b> -&gt; <b>', __( 'Manage', 'litespeed-cache' ) .'</b>' ); ?>
			</div>
			<div class="litespeed-block">
				<div class='litespeed-col'>
				<label class="litespeed-form-label"><?php echo __( 'Global API Key / API Token', 'litespeed-cache' ); ?></label>

					<?php $this->build_input( Base::O_CDN_CLOUDFLARE_KEY ); ?>
					<div class="litespeed-desc">
						<?php echo sprintf( __( 'Your API key / token is used to access %s APIs.', 'litespeed-cache' ), 'Cloudflare' ); ?>
						<?php echo sprintf( __( 'Get it from <a %1$s>%2$s</a>.', 'litespeed-cache' ), 'href="https://dash.cloudflare.com/profile/api-tokens" target="_blank"', 'Cloudflare' ); ?>
						<?php echo sprintf( __( 'Recommended to generate the token from Cloudflare API token template "WordPress".', 'litespeed-cache' ) ); ?>
					</div>
				</div>

				<div class='litespeed-col'>
					<label class="litespeed-form-label"><?php echo __( 'Email Address', 'litespeed-cache' ); ?></label>

					<?php $this->build_input( Base::O_CDN_CLOUDFLARE_EMAIL ); ?>
					<div class="litespeed-desc">
						<?php echo sprintf( __( 'Your Email address on %s.', 'litespeed-cache' ), 'Cloudflare' ); ?>
						<?php echo sprintf( __( 'Optional when API token used.', 'litespeed-cache' ) ); ?>
					</div>
				</div>

				<div class='litespeed-col'>
					<label class="litespeed-form-label"><?php echo __( 'Domain', 'litespeed-cache' ); ?></label>

				<?php
					$cf_zone = $this->conf( Base::O_CDN_CLOUDFLARE_ZONE );
					$cls = 	$cf_zone ? ' litespeed-input-success' : ' litespeed-input-warning';
					$this->build_input( Base::O_CDN_CLOUDFLARE_NAME, $cls );
				?>
					<div class="litespeed-desc">
						<?php echo __( 'You can just type part of the domain.', 'litespeed-cache' ); ?>
						<?php echo __( 'Once saved, it will be matched with the current list and completed automatically.', 'litespeed-cache' ); ?>
					</div>
				</div>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
$this->form_end();

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

global $wp_roles;
if ( !isset( $wp_roles ) ) {
	$wp_roles = new \WP_Roles();
}

$roles = array();
foreach ( $wp_roles->roles as $k => $v ) {
	$roles[ $k ] = $v[ 'name' ];
}
ksort( $roles );

?>
<h3 class="litespeed-title-short">
	<?php echo __( 'Tuning Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#tuning-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed CSS files or inline CSS code will not be minified/combined.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optimize_css_excludes</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ); ?>
					<br /><?php echo __( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/css_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/css_excludes.txt</a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed JS files or inline JS code will not be minified/combined.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optimize_js_excludes</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ); ?>
					<br /><?php echo __( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_excludes.txt</a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_UCSS_WHITELIST; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'List the CSS selector that its style should be always contained in UCSS.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#ucss-whitelist', __( 'How to choose an UCSS allowlist selector?', 'litespeed-cache' ) ); ?>
				<br /><?php echo sprintf( __( 'Wildcard %s supported.', 'litespeed-cache' ), '<code>*</code>' ); ?>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php echo __( 'Note', 'litespeed-cache' ); ?></h4>
					<p>
						<?php echo __( 'The selector must exist in the CSS. Parent classes in the HTML will not work.', 'litespeed-cache' ); ?>
					</p>
				</div>
				<font class="litespeed-success">
					<?php echo __( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/ucss_whitelist.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/ucss_whitelist.txt</a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_UCSS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed URI will not generate UCSS.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><span class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_ucss_exc</code>' ); ?>
				</span>
				<br /><font class="litespeed-success">API: <?php echo sprintf( __( 'Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.', 'litespeed-cache' ), "<code>add_filter( 'litespeed_ucss_per_pagetype', function(){return get_post_type() == 'page';} );</code>", '<code>page</code>' ); ?></font>
				<br /><font class="litespeed-success">API: <?php echo sprintf( __( 'Use %1$s to bypass UCSS for the pages which page type is %2$s.', 'litespeed-cache' ), "<code>add_action( 'litespeed_optm', function(){get_post_type() == 'page' && do_action( 'litespeed_conf_force', 'optm-ucss', false );});</code>", '<code>page</code>' ); ?></font>

			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CCSS_SEP_POSTTYPE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __('List post types where each item of that type should have its own CCSS generated.', 'litespeed-cache'); ?>
				<?php echo sprintf( __( 'For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.', 'litespeed-cache' ), '<code>page</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#separate-ccss-cache-post-types_1' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CCSS_SEP_URI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Separate critical CSS files will be generated for paths containing these strings.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CCSS_CON; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify critical CSS rules for above-the-fold content when enabling %s.', 'litespeed-cache' ), __( 'Load CSS Asynchronously', 'litespeed-cache' ) ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_DEFER_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed JS files or inline JS code will not be deferred.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><span class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_js_defer_exc</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-defer="1"</code>' ); ?>
					<br /><?php echo __( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_defer_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_defer_excludes.txt</a>
				</span>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_GM_JS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Listed JS files or inline JS code will not be optimized by %s.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_GUEST ) . '</code>' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><span class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_gm_js_exc</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-defer="1"</code>' ); ?>
				</span>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prevent any optimization of listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_GUEST_ONLY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_EXC_ROLES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-desc">
				<?php echo __( 'Selected roles will be excluded from all optimizations.', 'litespeed-cache' ); ?>
			</div>
			<div class="litespeed-tick-list">
				<?php foreach ( $roles as $role => $title ): ?>
					<?php $this->build_checkbox( $id . '[]', $title, $this->cls( 'Conf' )->in_optm_exc_roles( $role ), $role ); ?>
				<?php endforeach; ?>
			</div>

		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

// CSS::cls()->test_url( '' );
// exit;

$css_summary = CSS::get_summary();
$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_CCSS );

$ccss_queue = $this->load_queue( 'ccss' );
$ucss_queue = $this->load_queue( 'ucss' );
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'CSS Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_MIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Minify CSS files and inline CSS code.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_COMB; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Combine CSS files and inline CSS code.', 'litespeed-cache' ); ?>
				<a href="https://docs.litespeedtech.com/lscache/lscwp/ts-optimize/" target="_blank"><?php echo __( 'How to Fix Problems Caused by CSS/JS Optimization.', 'litespeed-cache' ); ?></a>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_UCSS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php if ( ! $this->conf( Base::O_API_KEY ) ) : ?>
				<div class="litespeed-callout notice notice-error inline">
					<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>
					<?php echo Error::msg( 'lack_of_api_key' ); ?>
				</div>
				<?php endif; ?>

				<?php echo __( 'Use QUIC.cloud online service to generate unique CSS.', 'litespeed-cache' ); ?>
				<?php echo __( 'This will drop the unused CSS on each page from the combined file.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#generate-ucss' ); ?>
				<br /><?php echo __( 'Automatic generation of unique CSS is in the background via a cron-based queue.', 'litespeed-cache' ); ?>
				<br /><font class="litespeed-success">API: <?php echo sprintf( __( 'Filter %s available for UCSS per page type generation.', 'litespeed-cache' ), "<code>add_filter( 'litespeed_ucss_per_pagetype', '__return_true' );</code>" ); ?></font>

				<?php if ( $this->conf( Base::O_OPTM_UCSS ) && ! $this->conf( Base::O_OPTM_CSS_COMB ) ) : ?>
				<br /><font class="litespeed-warning">
					<?php echo sprintf( __( 'This option is bypassed because %1$s option is %2$s.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OPTM_CSS_COMB ) . '</code>', '<code>' . __( 'OFF', 'litespeed-cache' ) . '</code>' ); ?>
				</font>
				<?php endif; ?>

			</div>

			<div class="litespeed-desc litespeed-left20">
				<?php if ( $css_summary ) : ?>
					<?php if ( ! empty( $css_summary[ 'last_request_ucss' ] ) ) : ?>
						<p>
							<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $css_summary[ 'last_request_ucss' ] ) . '</code>'; ?>
						</p>
						<p>
							<?php echo __( 'Last requested cost', 'litespeed-cache' ) . ': <code>' . $css_summary[ 'last_spent_ucss' ] . 's</code>'; ?>
						</p>
					<?php endif; ?>
				<?php endif; ?>

				<?php if ( $closest_server ) : ?>
					<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_CCSS ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10; Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>"><i class='litespeed-quic-icon'></i></a>
				<?php endif; ?>

				<?php if ( ! empty( $ucss_queue ) ) : ?>
					<div class="litespeed-callout notice notice-warning inline">
						<h4>
							<?php echo sprintf( __( 'URL list in %s queue waiting for cron', 'litespeed-cache' ), 'UCSS' ); ?> ( <?php echo count( $ucss_queue ); ?> )
							<a href="<?php echo Utility::build_url( Router::ACTION_CSS, CSS::TYPE_CLEAR_Q_UCSS ); ?>" class="button litespeed-btn-warning litespeed-right">Clear</a>
						</h4>
						<p>
						<?php $i=0; foreach ( $ucss_queue as $k => $v ) : ?>
							<?php if ( $i++ > 20 ) : ?>
								<?php echo '...'; ?>
								<?php break; ?>
							<?php endif; ?>
							<?php if ( ! is_array( $v ) ) continue; ?>
							<?php if ( ! empty( $v[ '_status' ] ) ) : ?><span class="litespeed-success"><?php endif; ?>
							<?php echo esc_html( $v[ 'url' ] ); ?>
							<?php if ( ! empty( $v[ '_status' ] ) ) : ?></span><?php endif; ?>
							<?php if ( $pos = strpos( $k, ' ' ) ) echo ' (' . __( 'Vary Group', 'litespeed-cache' ) . ':' . substr( $k, 0, $pos ) . ')'; ?>
							<?php if ( $v[ 'is_mobile' ] ) echo ' <span data-balloon-pos="up" aria-label="mobile">📱</span>'; ?>
							<?php if ( ! empty( $v[ 'is_webp' ] ) ) echo ' WebP'; ?>
							<br />
						<?php endforeach; ?>
						</p>
					</div>
					<a href="<?php echo Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GEN_UCSS ); ?>" class="button litespeed-btn-success">
						<?php echo sprintf( __( 'Run %s Queue Manually', 'litespeed-cache' ), 'UCSS' ); ?>
					</a>
				<?php endif; ?>
			</div>

		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_UCSS_INLINE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_GUEST ) . '</code>' ); ?>
				<br /><font class="litespeed-info">
					<?php echo sprintf( __( 'This option will automatically bypass %s option.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OPTM_CSS_ASYNC ) . '</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_COMB_EXT_INL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OPTM_CSS_COMB ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_ASYNC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php if ( ! $this->conf( Base::O_API_KEY ) ) : ?>
				<div class="litespeed-callout notice notice-error inline">
					<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>
					<?php echo Error::msg( 'lack_of_api_key' ); ?>
				</div>
				<?php endif; ?>
				<?php echo __( 'Optimize CSS delivery.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?><br />
				<?php echo __( 'Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#load-css-asynchronously' ); ?><br />
				<?php echo __( 'Automatic generation of critical CSS is in the background via a cron-based queue.', 'litespeed-cache' ); ?><br />
				<?php echo sprintf( __( 'When this option is turned %s, it will also load Google Fonts asynchronously.', 'litespeed-cache' ), '<code>' . __( 'ON', 'litespeed-cache' ) . '</code>' ); ?>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Elements with attribute %s in HTML code will be excluded.', 'litespeed-cache' ), '<code>data-no-async="1"</code>' ); ?>
				</font>

				<?php if ( $this->conf( Base::O_OPTM_CSS_ASYNC ) && $this->conf( Base::O_OPTM_CSS_COMB ) && $this->conf( Base::O_OPTM_UCSS ) && $this->conf( Base::O_OPTM_UCSS_INLINE ) ) : ?>
				<br /><font class="litespeed-warning">
					<?php echo sprintf( __( 'This option is bypassed due to %s option.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OPTM_UCSS_INLINE ) . '</code>' ); ?>
				</font>
				<?php endif; ?>

			</div>

			<div class="litespeed-desc litespeed-left20">
				<?php if ( $css_summary ) : ?>
					<?php if ( ! empty( $css_summary[ 'last_request_ccss' ] ) ) : ?>
						<p>
							<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $css_summary[ 'last_request_ccss' ] ) . '</code>'; ?>
						</p>
						<p>
							<?php echo __( 'Last requested cost', 'litespeed-cache' ) . ': <code>' . $css_summary[ 'last_spent_ccss' ] . 's</code>'; ?>
						</p>
					<?php endif; ?>
				<?php endif; ?>

				<?php if ( $closest_server ) : ?>
					<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_CCSS ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10; Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>"><i class='litespeed-quic-icon'></i></a>
				<?php endif; ?>

				<?php if ( ! empty( $ccss_queue ) ) : ?>
					<div class="litespeed-callout notice notice-warning inline">
						<h4>
							<?php echo sprintf( __( 'URL list in %s queue waiting for cron', 'litespeed-cache' ), 'CCSS' ); ?> ( <?php echo count( $ccss_queue ); ?> )
							<a href="<?php echo Utility::build_url( Router::ACTION_CSS, CSS::TYPE_CLEAR_Q_CCSS ); ?>" class="button litespeed-btn-warning litespeed-right">Clear</a>
						</h4>
						<p>
						<?php $i=0; foreach ( $ccss_queue as $k => $v ) : ?>
							<?php if ( $i++ > 20 ) : ?>
								<?php echo '...'; ?>
								<?php break; ?>
							<?php endif; ?>
							<?php if ( ! is_array( $v ) ) continue; ?>
							<?php if ( ! empty( $v[ '_status' ] ) ) : ?><span class="litespeed-success"><?php endif; ?>
							<?php echo esc_html( $v[ 'url' ] ); ?>
							<?php if ( ! empty( $v[ '_status' ] ) ) : ?></span><?php endif; ?>
							<?php if ( $pos = strpos( $k, ' ' ) ) echo ' (' . __( 'Vary Group', 'litespeed-cache' ) . ':' . substr( $k, 0, $pos ) . ')'; ?>
							<?php if ( $v[ 'is_mobile' ] ) echo ' <span data-balloon-pos="up" aria-label="mobile">📱</span>'; ?>
							<?php if ( ! empty( $v[ 'is_webp' ] ) ) echo ' WebP'; ?>
							<br />
						<?php endforeach; ?>
						</p>
					</div>
					<a href="<?php echo Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GEN_CCSS ); ?>" class="button litespeed-btn-success">
						<?php echo sprintf( __( 'Run %s Queue Manually', 'litespeed-cache' ), 'CCSS' ); ?>
					</a>
				<?php endif; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_CCSS_PER_URL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_CSS_ASYNC_INLINE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'This will inline the asynchronous CSS library to avoid render blocking.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_FONT_DISPLAY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( __( 'Default', 'litespeed-cache' ), 'Swap' ) ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.', 'litespeed-cache' ), '<code>font-display</code>', '<code>@font-face</code>' ); ?>
				<br /><?php echo sprintf( __( '%s is recommended.', 'litespeed-cache' ), '<code>' . __( 'Swap', 'litespeed-cache' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$last_generated = Avatar::get_summary();
$avatar_queue = Avatar::cls()->queue_count();
?>

<?php if ( $this->cls( 'Avatar' )->need_db() && ! $this->cls( 'Data' )->tb_exist( 'avatar' ) ) : ?>
<div class="litespeed-callout notice notice-error inline">
	<h4><?php echo __( 'WARNING', 'litespeed-cache' ); ?></h4>
	<p><?php echo sprintf( __( 'Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.', 'litespeed-cache' ), 'href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:installation" target="_blank"' ); ?></p>
</div>
<?php endif; ?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Localization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_DISCUSS_AVATAR_CACHE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Store Gravatar locally.', 'litespeed-cache' ); ?>
				<?php echo __( 'Accelerates the speed by caching Gravatar (Globally Recognized Avatars).', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_DISCUSS_AVATAR_CRON; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Refresh Gravatar cache by cron.', 'litespeed-cache' ); ?>
			</div>

			<?php if ( $last_generated ) : ?>
			<div class="litespeed-desc">
				<?php if ( ! empty( $last_generated[ 'last_request' ] ) ) : ?>
					<p>
						<?php echo __( 'Last ran', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $last_generated[ 'last_request' ] ) . '</code>'; ?>
					</p>
				<?php endif; ?>
				<?php if ( $avatar_queue ) : ?>
					<div class="litespeed-callout notice notice-warning inline">
						<h4>
							<?php echo __( 'Avatar list in queue waiting for update','litespeed-cache' ); ?>:
							<?php echo $avatar_queue; ?>
						</h4>
					</div>
					<a href="<?php echo Utility::build_url( Router::ACTION_AVATAR, Avatar::TYPE_GENERATE ); ?>" class="button litespeed-btn-success">
						<?php echo __( 'Run Queue Manually', 'litespeed-cache' ); ?>
					</a>
				<?php endif; ?>
			</div>
			<?php endif; ?>

		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_DISCUSS_AVATAR_CACHE_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, Gravatar files are cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 3600 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_LOCALIZE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Localize external resources.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localize' ); ?>

				<br /><font class="litespeed-danger">
					🚨 <?php echo sprintf( __( 'Please thoroughly test all items in %s to ensure they function as expected.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OPTM_LOCALIZE_DOMAINS ) . '</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_LOCALIZE_DOMAINS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id ); ?>
				</div>
				<div>
					<?php $this->recommended( $id, true ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Resources listed here will be copied and replaced with local URLs.', 'litespeed-cache' ); ?>
				<?php echo __( 'HTTPS sources only.', 'litespeed-cache' ); ?>

				<?php Doc::one_per_line(); ?>

				<br /><?php echo sprintf( __( 'Comments are supported. Start a line with a %s to turn it into a comment line.', 'litespeed-cache' ), '<code>#</code>' ); ?>

				<br /><?php echo __( 'Example', 'litespeed-cache' ); ?>: <code>https://www.example.com/one.js</code>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localization-files' ); ?>

				<br /><font class="litespeed-danger">
					🚨 <?php echo __( 'Please thoroughly test each JS file you add to ensure it functions as expected.', 'litespeed-cache' ); ?>
				</font>

			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'HTML Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#html-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_OPTM_HTML_MIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Minify HTML content.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_DNS_PREFETCH; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prefetching DNS can reduce latency for visitors.', 'litespeed-cache' ); ?>
				<?php echo __( 'For example', 'litespeed-cache' ); ?>: <code>//www.example.com</code>
				<?php Doc::one_per_line(); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#dns-prefetch' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_DNS_PREFETCH_CTRL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve the page loading speed.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_HTML_LAZY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Delay rendering off-screen HTML elements by its selector.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#html-lazyload-selectors' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_QS_RM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Remove query strings from internal static resources.', 'litespeed-cache' ); ?>
				<br /><font class="litespeed-warning">
					⚠️
					<?php echo __( 'Google reCAPTCHA will be bypassed automatically.', 'litespeed-cache' ); ?>
				</font>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Append query string %s to the resources to bypass this action.', 'litespeed-cache' ), '<code>&_litespeed_rm_qs=0</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_GGFONTS_ASYNC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.', 'litespeed-cache' ); ?>
				<?php echo __( 'This will also add a preconnect to Google Fonts to establish a connection earlier.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#load-google-fonts-asynchronously' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_GGFONTS_RM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prevent Google Fonts from loading on all pages.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_EMOJI_RM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Stop loading WordPress.org emoji. Browser default emoji will be displayed instead.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_NOSCRIPT_RM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'This option will remove all %s tags from HTML.', 'litespeed-cache' ), '<code>&lt;noscript&gt;</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#remove-noscript-tags' ); ?>
			</div>
		</td>
	</tr>

</tbody></table><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$menu_list = array(
	'settings_css' 				=> __( 'CSS Settings', 'litespeed-cache' ),
	'settings_js'				=> __( 'JS Settings', 'litespeed-cache' ),
	'settings_html' 			=> __( 'HTML Settings', 'litespeed-cache' ),
	'settings_media' 			=> __( 'Media Settings', 'litespeed-cache' ),
	'settings_media_exc'		=> __( 'Media Excludes', 'litespeed-cache' ),
	'settings_localization'		=> __( 'Localization', 'litespeed-cache' ),
	'settings_tuning' 			=> __( 'Tuning', 'litespeed-cache' ),
);

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Page Optimization', 'litespeed-cache' ) ; ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER ; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">

	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php echo __( 'NOTICE', 'litespeed-cache' ) ; ?></h4>
		<p><?php echo __( 'Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.', 'litespeed-cache' ) ; ?></p>
	</div>

	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1 ;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '' ;
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>" ;
			$i ++ ;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php
		$this->form_action() ;

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>" ;
			require LSCWP_DIR . "tpl/page_optm/$tab.tpl.php" ;
			echo "</div>" ;
		}

		$this->form_end() ;

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Media Excludes', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#media-excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed images will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
                <br /><?php echo __( 'Useful for above-the-fold images causing CLS (a Core Web Vitals metric).', 'litespeed-cache' ); ?>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_media_lazy_img_excludes</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-lazy="1"</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_CLS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Images containing these class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url( true ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_PARENT_CLS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Images having these parent class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_IFRAME_LAZY_CLS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Iframes containing these class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url( true ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Iframes having these parent class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_URI_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prevent any lazy load of listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LQIP_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'These images will not generate LQIP.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
			</div>
		</td>
	</tr>

</tbody></table><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$placeholder_summary = Placeholder::get_summary();

$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_LQIP );

$lqip_queue = $this->load_queue( 'lqip' );

?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Media Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#media-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Load images only when they enter the viewport.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve page loading time by reducing initial HTTP requests.', 'litespeed-cache' ); ?>
				<br /><font class="litespeed-success">
					💡
					<a href="https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lazy-load-images" target="_blank"><?php echo __('Adding Style to Your Lazy-Loaded Images', 'litespeed-cache'); ?></a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_PLACEHOLDER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-long' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify a base64 image to be used as a simple placeholder while images finish loading.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( 'This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.', 'litespeed-cache' ), '<code>LITESPEED_PLACEHOLDER</code>', '<code>wp-config.php</code>' ); ?>
				<br /><?php echo sprintf( __( 'By default a gray image placeholder %s will be used.', 'litespeed-cache' ), '<code>data:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=</code>' ); ?>
				<br /><?php echo sprintf( __( 'For example, %s can be used for a transparent placeholder.', 'litespeed-cache' ), '<code>data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_PLACEHOLDER_RESP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Responsive image placeholders can help to reduce layout reshuffle when images are loaded.', 'litespeed-cache' ); ?>
				<?php echo __( 'This will generate the placeholder with same dimensions as the image if it has the width and height attributes.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_PLACEHOLDER_RESP_SVG; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-long' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify an SVG to be used as a placeholder when generating locally.', 'litespeed-cache' ); ?>
				<?php echo __( 'It will be converted to a base64 SVG placeholder on-the-fly.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( 'Variables %s will be replaced with the corresponding image properties.', 'litespeed-cache' ), '<code>{width} {height}</code>' ); ?>
				<br /><?php echo sprintf( __( 'Variables %s will be replaced with the configured background color.', 'litespeed-cache' ), '<code>{color}</code>' ); ?>
				<br /><?php $this->recommended( $id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_PLACEHOLDER_RESP_COLOR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, null, null, 'color' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the responsive placeholder SVG color.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LQIP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.', 'litespeed-cache' ); ?>
				<br /><?php echo __( 'Keep this off to use plain color placeholders.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lqip-cloud-generator' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LQIP_QUAL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the quality when generating LQIP.', 'litespeed-cache' ); ?>
				<br /><?php echo __( 'Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 1, 20 ); ?>
				<br />💡 <?php echo sprintf(__('Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.', 'litespeed-cache'), '<code>' . __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LQIP Cache', 'litespeed-cache' ) . '</code>'); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LQIP_MIN_W; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?> x
			<?php $this->build_input( Base::O_MEDIA_LQIP_MIN_H, 'litespeed-input-short' ); ?>
			<?php echo __( 'pixels', 'litespeed-cache' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'LQIP requests will not be sent for images where both width and height are smaller than these dimensions.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 10, 800 ); ?>
				<?php $this->_validate_ttl( Base::O_MEDIA_LQIP_MIN_H, 10, 800 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Automatically generate LQIP in the background via a cron-based queue.', 'litespeed-cache' ); ?>
				<?php echo sprintf(
					__( 'If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.', 'litespeed-cache' ),
					'<code>' . __('ON', 'litespeed-cache') . '</code>',
					'<code>' . Lang::title( Base::O_MEDIA_PLACEHOLDER_RESP_SVG ) . '</code>'
				); ?>
				<?php echo sprintf( __( 'If set to %s this is done in the foreground, which may slow down page load.', 'litespeed-cache' ), '<code>' . __('OFF', 'litespeed-cache') . '</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#generate-lqip-in-background' ); ?>
			</div>

			<div class="litespeed-desc">
				<?php if ( $placeholder_summary ) : ?>
					<?php if ( ! empty( $placeholder_summary[ 'last_request' ] ) ) : ?>
						<p>
							<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $placeholder_summary[ 'last_request' ] ) . '</code>'; ?>
						</p>
					<?php endif; ?>
				<?php endif; ?>

				<?php if ( $closest_server ) : ?>
					<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_LQIP ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10; Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>"><i class='litespeed-quic-icon'></i></a>
				<?php endif; ?>

				<?php if ( ! empty( $lqip_queue ) ) : ?>
					<div class="litespeed-callout notice notice-warning inline">
						<h4>
							<?php echo __( 'Size list in queue waiting for cron','litespeed-cache' ); ?> ( <?php echo count( $lqip_queue ); ?> )
							<a href="<?php echo Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_CLEAR_Q ); ?>" class="button litespeed-btn-warning litespeed-right">Clear</a>
						</h4>
						<p>
						<?php $i=0; foreach ( $lqip_queue as $k => $v ) : ?>
							<?php if ( $i++ > 20 ) : ?>
								<?php echo '...'; ?>
								<?php break; ?>
							<?php endif; ?>

							<?php echo $v; ?>
							<br />
						<?php endforeach; ?>
						</p>
					</div>
					<a href="<?php echo Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_GENERATE ); ?>" class="button litespeed-btn-success">
						<?php echo __( 'Run Queue Manually', 'litespeed-cache' ); ?>
					</a>
				<?php endif; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_IFRAME_LAZY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Load iframes only when they enter the viewport.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve page loading time by reducing initial HTTP requests.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_ADD_MISSING_SIZES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://web.dev/optimize-cls/#images-without-dimensions' ); ?>
				<br /><?php echo sprintf( __( 'Note: this option only works when %1$s is %2$s.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_MEDIA_LAZY ) . '</code>', '<code>' . __( 'ON', 'litespeed-cache' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'JS Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#js-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_MIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Minify JS files and inline JS codes.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_COMB; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Combine all local JS files into a single file.', 'litespeed-cache' ); ?>
				<a href="https://docs.litespeedtech.com/lscache/lscwp/ts-optimize/" target="_blank"><?php echo __( 'How to Fix Problems Caused by CSS/JS Optimization.', 'litespeed-cache' ); ?></a>
				<br /><font class="litespeed-danger">
					🚨 <?php echo __( 'This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.', 'litespeed-cache' ); ?>
					<?php echo __( 'JS error can be found from the developer console of browser by right clicking and choosing Inspect.', 'litespeed-cache' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_COMB_EXT_INL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OPTM_JS_COMB ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_DEFER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( __( 'OFF', 'litespeed-cache' ), __( 'Deferred', 'litespeed-cache' ), __( 'Delayed', 'litespeed-cache' ) ) ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#load-js-deferred' ); ?><br />
				<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://web.dev/fid/#what-is-fid' ); ?>
				<br /><font class="litespeed-danger">
					🚨 <?php echo __( 'This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.', 'litespeed-cache' ); ?>
				</font>
			</div>
		</td>
	</tr>

</tbody></table>
<?php defined( 'WPINC' ) || exit ; ?>
<?php

\LiteSpeed\ESI::cls()->load_esi_block() ;


<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$lscache_stats = GUI::cls()->lscache_stats();

$health_scores = Health::cls()->scores();

$crawler_summary = Crawler::get_summary();

// Image related info
$optm_summary = Img_Optm::get_summary();
$img_count = Img_Optm::cls()->img_count();
if ( ! empty( $img_count[ 'groups_all' ] ) ) {
	$img_gathered_percentage = 100 - floor( $img_count[ 'groups_not_gathered' ] * 100 / $img_count[ 'groups_all' ] );
}
else {
	$img_gathered_percentage = 0;
}

if ( ! empty( $img_count[ 'imgs_gathered' ] ) ) {
	$img_finished_percentage = 100 - floor( $img_count[ 'img.' . Img_Optm::STATUS_RAW ] * 100 / $img_count[ 'imgs_gathered' ] );
}
else {
	$img_finished_percentage = 0;
}

$cloud_summary = Cloud::get_summary();
$css_summary = CSS::get_summary();
$placeholder_summary = Placeholder::get_summary();

$ccss_count = count( $this->load_queue( 'ccss' ) );
$ucss_count = count( $this->load_queue( 'ucss' ) );
$placeholder_queue_count = count( $this->load_queue( 'lqip' ) );
?>

<div class="litespeed-dashboard">


	<div class="litespeed-dashboard-header">
		<h3 class="litespeed-dashboard-title">
			<?php echo __( 'QUIC.cloud Service Usage Statistics', 'litespeed-cache' ); ?>
			<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_SYNC_USAGE ); ?>">
				<span class="dashicons dashicons-update"></span>
				<span class="screen-reader-text"><?php echo __( 'Sync data from Cloud', 'litespeed-cache' ); ?></span>
			</a>
		</h3>
		<hr>
		<a href="https://docs.litespeedtech.com/lscache/lscwp/dashboard/#usage-statistics" target="_blank" class="litespeed-learn-more"><?php echo __( 'Learn More', 'litespeed-cache' );?></a>
	</div>

	<div class="litespeed-dashboard-stats-wrapper">
		<?php
		$cat_list = array(
			'img_optm'	=> __( 'Image Optimization', 'litespeed-cache' ),
			'page_optm'	=> __( 'Page Optimization', 'litespeed-cache' ),
			'cdn'		=> __( 'CDN Bandwidth', 'litespeed-cache' ),
			'lqip'		=> __( 'Low Quality Image Placeholder', 'litespeed-cache' ),
		);

		foreach ( $cat_list as $svc => $title ) :
			$finished_percentage = 0;
			$total_used = $used = $quota = $pag_used = $pag_total = '-';
			$pag_width = 0;
			$percentage_bg = 'success';
			$pag_txt_color = '';
			$usage = false;

			if ( ! empty( $cloud_summary[ 'usage.' . $svc ] ) ) {
				$usage = $cloud_summary[ 'usage.' . $svc ];
				$finished_percentage = floor( $usage[ 'used' ] * 100 / $usage[ 'quota' ] );
				$used = (int)$usage[ 'used' ];
				$quota = (int)$usage[ 'quota' ];
				$pag_used = ! empty( $usage[ 'pag_used' ] ) ? (int)$usage[ 'pag_used' ] : 0;
				$pag_bal = ! empty( $usage[ 'pag_bal' ] ) ? (int)$usage[ 'pag_bal' ] : 0;
				$pag_total = $pag_used + $pag_bal;
				if ( ! empty( $usage[ 'total_used' ] ) ) {
					$total_used = (int)$usage[ 'total_used' ];
				}

				if ( $pag_total ) {
					$pag_width = round( $pag_used / $pag_total * 100 ) . '%';
				}

				if ( $finished_percentage > 85 ) {
					$percentage_bg = 'warning';
					if ( $finished_percentage > 95 ) {
						$percentage_bg = 'danger';
						if ( $pag_bal ) { // is using PAG quota
							$percentage_bg = 'warning';
							$pag_txt_color = 'litespeed-success';
						}
					}
				}

				if ( $svc == 'cdn' ) {
					// $used = Utility::real_size( $used * 1000000 * 100, true );
					// $quota = Utility::real_size( $quota * 1000000 * 100, true );
					// $pag_used = Utility::real_size( $pag_used * 1000000 * 100, true );
					// $pag_bal = Utility::real_size( $pag_bal * 1000000 * 100, true );
				}
			}

		?>
			<div class="postbox litespeed-postbox">
				<div class="inside">
					<h3 class="litespeed-title"><?php echo $title; ?></h3>

					<div class="litespeed-flex-container">
						<div class="litespeed-icon-vertical-middle litespeed-pie-<?php echo $percentage_bg;?>">
							<?php echo GUI::pie( $finished_percentage, 60, false ); ?>
						</div>
						<div>
							<div class="litespeed-dashboard-stats">
								<h3><?php echo ( $svc == 'img_optm' ? __('Fast Queue Usage','litespeed-cache') : __( 'Usage', 'litespeed-cache' ) ); ?></h3>
								<p>
									<strong><?php echo $used; ?></strong>
									<?php if( $used != $quota ) { ?>
										<span class="litespeed-desc"> of <?php echo $quota; ?></span>
									<?php } ?>
								</p>
							</div>
						</div>
					</div>

					<?php if ( $pag_total > 0 ) { ?>
						<p class="litespeed-dashboard-stats-payg <?php echo $pag_txt_color; ?>">
							<?php echo __('PAYG Balance','litespeed-cache'); ?>: <strong><?php echo $pag_bal; ?></strong>
							<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo __('This Month Usage','litespeed-cache'); ?>: <?php echo $pag_used;?>">
								<span class="dashicons dashicons-info"></span>
								<span class="screen-reader-text"><?php echo __( 'Pay as You Go Usage Statistics', 'litespeed-cache' );?></span>
							</button>
						</p>
					<?php } ?>

					<?php if ( $svc == 'page_optm' ) : ?>
						<?php if ( ! empty( $usage[ 'sub_svc' ] ) ) : ?>
							<p class="litespeed-dashboard-stats-total">
							<?php $i=0;foreach ( $usage[ 'sub_svc' ] as $sub_svc => $sub_usage ) : ?>
								<?php if ($sub_svc=='vpi') continue; ?>
								<span class="<?php if ( $i++>0 ) echo 'litespeed-left10'; ?>"><?php echo strtoupper( esc_html( $sub_svc ) ); ?>: <strong><?php echo (int)$sub_usage; ?></strong></span>
							<?php endforeach; ?>
							</p>
							<div class="clear"></div>
						<?php endif; ?>
					<?php endif; ?>

					<?php if ( $svc == 'img_optm' ) { ?>
						<p class="litespeed-dashboard-stats-total">
							<?php echo __('Total Usage','litespeed-cache'); ?>: <strong><?php echo $total_used; ?> / ∞</strong>
							<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo __('Total images optimized in this month','litespeed-cache'); ?>">
								<span class="dashicons dashicons-info"></span>
							</button>
						</p>
						<div class="clear"></div>
					<?php } ?>

					<?php if ( isset( $usage[ 'remaining_daily_quota' ] ) && $usage[ 'remaining_daily_quota' ] >= 0 && isset( $usage[ 'daily_quota' ] ) && $usage[ 'daily_quota' ] >= 0 ) { ?>
						<p class="litespeed-dashboard-stats-total">
							<?php echo __('Remaining Daily Quota','litespeed-cache'); ?>: <strong><?php echo $usage[ 'remaining_daily_quota' ]; ?> / <?php echo $usage[ 'daily_quota' ]; ?></strong>
						</p>
						<div class="clear"></div>
					<?php } ?>
				</div>
			</div>
		<?php endforeach; ?>
	</div>

	<p class="litespeed-right litespeed-qc-dashboard-link"><a href="<?php echo Cloud::CLOUD_SERVER_DASH; ?>" class="litespeed-link-with-icon" target="_blank"><?php echo __( 'Go to QUIC.cloud dashboard', 'litespeed-cache' ) ;?> <span class="dashicons dashicons-external"></span></a></p>

	<div class="litespeed-dashboard-group">
		<hr>
		<div class="litespeed-flex-container">

			<div class="postbox litespeed-postbox litespeed-postbox-pagetime">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Page Load Time', 'litespeed-cache' ); ?>
						<a href="<?php echo Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SPEED ); ?>">
							<span class="dashicons dashicons-update"></span>
							<span class="screen-reader-text"><?php echo __('Refresh page load time', 'litespeed-cache'); ?></span>
						</a>
					</h3>

					<div>
						<div class="litespeed-flex-container">

							<?php if ( $health_scores[ 'speed_before' ] ) : ?>
								<div class="litespeed-score-col">
									<p class="litespeed-text-grey">
										<?php echo __( 'Before', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-text-md litespeed-text-grey">
										<?php echo $health_scores[ 'speed_before' ]; ?><span class="litespeed-text-large">s</span>
									</div>

								</div>
								<div class="litespeed-score-col">
									<p class="litespeed-text-grey">
										<?php echo __( 'After', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-text-md litespeed-text-success">
										<?php echo $health_scores[ 'speed_after' ]; ?><span class="litespeed-text-large">s</span>
									</div>
								</div>
								<div class="litespeed-score-col litespeed-score-col--imp">
									<p class="litespeed-text-grey" style="white-space: nowrap;">
										<?php echo __( 'Improved by', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-text-jumbo litespeed-text-success">
										<?php echo $health_scores[ 'speed_improved' ]; ?><span class="litespeed-text-large">%</span>
									</div>
								</div>
							<?php endif; ?>

						</div>
					</div>
				</div>

				<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
					<?php if ( ! empty( $cloud_summary[ 'last_request.health-speed' ] ) ) : ?>
						<?php echo __( 'Last requested', 'litespeed-cache' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.health-speed' ] ) ?>
					<?php endif; ?>

					<?php $closest_server = Cloud::get_summary( 'server.' . CLoud::SVC_HEALTH ); ?>
					<?php if ( $closest_server ) : ?>
						<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_HEALTH ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10;Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>" class="litespeed-right"><i class='litespeed-quic-icon'></i></a>
					<?php endif; ?>
				</div>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-pagespeed">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'PageSpeed Score', 'litespeed-cache' ); ?>
						<a href="<?php echo Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SCORE ); ?>">
							<span class="dashicons dashicons-update"></span>
							<span class="screen-reader-text"><?php echo __('Refresh page score', 'litespeed-cache'); ?></span>
						</a>

						<?php $id = Base::O_GUEST; ?>
						<a href="<?php echo admin_url( 'admin.php?page=litespeed-general' ); ?>" class="litespeed-title-right-icon"><?php echo Lang::title( $id ); ?></a>
						<?php if ( $this->conf( $id ) ) : ?>
							<span class="litespeed-label-success litespeed-label-dashboard">ON</span>
						<?php else: ?>
							<span class="litespeed-label-danger litespeed-label-dashboard">OFF</span>
						<?php endif; ?>

					</h3>

					<div>

						<div class="litespeed-margin-bottom20">
							<div class="litespeed-row-flex" style="margin-left: -10px;">

							<?php if ( ! empty( $health_scores[ 'score_before' ] ) ) : ?>
								<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
									<p class="litespeed-text-grey litespeed-text-center">
										<?php echo __( 'Before', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-promo-score">
										<?php echo GUI::pie( $health_scores[ 'score_before' ], 45, false, true, 'litespeed-pie-' . GUI::cls()->get_cls_of_pagescore( $health_scores[ 'score_before' ] ) ); ?>
									</div>
								</div>
								<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
									<p class="litespeed-text-grey litespeed-text-center">
										<?php echo __( 'After', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-promo-score">
										<?php echo GUI::pie( $health_scores[ 'score_after' ], 45, false, true, 'litespeed-pie-' . GUI::cls()->get_cls_of_pagescore( $health_scores[ 'score_after' ] ) ); ?>
									</div>
								</div>
								<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
									<p class="litespeed-text-grey" style="white-space: nowrap;">
										<?php echo __( 'Improved by', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-postbox-score-improve litespeed-text-fern">
										<?php echo $health_scores[ 'score_improved' ]; ?><span class="litespeed-text-large">%</span>
									</div>
								</div>
							<?php endif; ?>

							</div>

						</div>
					</div>
				</div>

				<?php if ( ! empty( $cloud_summary[ 'last_request.health-score' ] ) ) : ?>
					<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
						<?php echo __( 'Last requested', 'litespeed-cache' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.health-score' ] ) ?>
					</div>
				<?php endif; ?>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-double litespeed-postbox-imgopt">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Image Optimization Summary', 'litespeed-cache' ); ?>
						<a href="<?php echo admin_url( 'admin.php?page=litespeed-img_optm' ); ?>" class="litespeed-title-right-icon"><?php echo __( 'More', 'litespeed-cache' ); ?></a>
					</h3>
					<div class="litespeed-postbox-double-content">
						<div class="litespeed-postbox-double-col">
							<div class="litespeed-flex-container">
								<div class="litespeed-icon-vertical-middle">
									<?php echo GUI::pie( $img_gathered_percentage, 70, true ); ?>
								</div>
								<div>
									<div class="litespeed-dashboard-stats">
										<h3><?php echo __('Image Groups Prepared','litespeed-cache'); ?></h3>
										<p>
											<strong><?php echo ( $img_count[ 'groups_all' ] - $img_count[ 'groups_not_gathered' ] ); ?></strong>
											<span class="litespeed-desc">of <?php echo $img_count[ 'groups_all' ]; ?></span>
										</p>
									</div>
								</div>
							</div>

							<div class="litespeed-flex-container">
								<div class="litespeed-icon-vertical-middle">
									<?php echo GUI::pie( $img_finished_percentage, 70, true ); ?>
								</div>
								<div>
									<div class="litespeed-dashboard-stats">
										<h3><?php echo __('Images Requested','litespeed-cache'); ?></h3>
										<p>
											<strong><?php echo ( $img_count[ 'imgs_gathered' ] - $img_count[ 'img.' . Img_Optm::STATUS_RAW ]); ?></strong>
											<span class="litespeed-desc">of <?php echo $img_count[ 'imgs_gathered' ]; ?></span>
										</p>
									</div>
								</div>
							</div>
						</div>
						<div class="litespeed-postbox-double-col">
							<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ) : ?>
							<p class="litespeed-success">
								<?php echo __('Images requested', 'litespeed-cache'); ?>:
								<code>
									<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ); ?>
									(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ], 'image' ); ?>)
								</code>
							</p>
							<?php endif; ?>

							<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ) : ?>
								<p class="litespeed-success">
									<?php echo __('Images notified to pull', 'litespeed-cache'); ?>:
									<code>
										<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ); ?>
										(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ], 'image' ); ?>)
									</code>

								</p>
							<?php endif; ?>

							<p>
								<?php echo __( 'Last Request', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $optm_summary[ 'last_requested' ] ) ? Utility::readable_time( $optm_summary[ 'last_requested' ] ) : '-'; ?></code>
							</p>
							<p>
								<?php echo __( 'Last Pull', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $optm_summary[ 'last_pull' ] ) ? Utility::readable_time( $optm_summary[ 'last_pull' ] ) : '-'; ?></code>
							</p>

							<?php
							$cache_list = array(
								Base::O_IMG_OPTM_AUTO	=> Lang::title( Base::O_IMG_OPTM_AUTO ),
								Base::O_IMG_OPTM_CRON	=> Lang::title( Base::O_IMG_OPTM_CRON ),
							);
							foreach ( $cache_list as $id => $title ) :
							?>
								<p>
									<?php if ( $this->conf( $id ) ) : ?>
										<span class="litespeed-label-success litespeed-label-dashboard">ON</span>
									<?php else: ?>
										<span class="litespeed-label-danger litespeed-label-dashboard">OFF</span>
									<?php endif; ?>
									<a href="<?php echo admin_url( 'admin.php?page=litespeed-img_optm#settings' ); ?>"><?php echo $title; ?></a>
								</p>
							<?php endforeach; ?>
						</div>
					</div>

				</div>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-cache">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Cache Status', 'litespeed-cache' ); ?>
						<a href="<?php echo admin_url( 'admin.php?page=litespeed-cache' ); ?>" class="litespeed-title-right-icon"><?php echo __( 'More', 'litespeed-cache' ); ?></a>
					</h3>

				<?php
					$cache_list = array(
						Base::O_CACHE			=> __( 'Public Cache', 'litespeed-cache' ),
						Base::O_CACHE_PRIV		=> __( 'Private Cache', 'litespeed-cache' ),
						Base::O_OBJECT			=> __( 'Object Cache', 'litespeed-cache' ),
						Base::O_CACHE_BROWSER	=> __( 'Browser Cache', 'litespeed-cache' ),
					);
					foreach ( $cache_list as $id => $title ) :
				?>
						<p>
							<?php if ( $this->conf( $id ) ) : ?>
								<span class="litespeed-label-success litespeed-label-dashboard">ON</span>
							<?php else: ?>
								<span class="litespeed-label-danger litespeed-label-dashboard">OFF</span>
							<?php endif; ?>
							<?php echo esc_html( $title ); ?>
						</p>
					<?php endforeach; ?>
				</div>
			</div>

			<?php if ( $lscache_stats ) : ?>
			<div class="postbox litespeed-postbox litespeed-postbox-cache-stats">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Cache Stats', 'litespeed-cache' ); ?>
					</h3>

				<?php foreach ( $lscache_stats as $title => $val ) : ?>
					<p><?php echo $title; ?>: <?php echo $val ? "<code>$val</code>" : '-'; ?></p>
				<?php endforeach; ?>

				</div>
			</div>
			<?php endif; ?>

			<div class="postbox litespeed-postbox litespeed-postbox-ccss">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Critical CSS', 'litespeed-cache' ); ?>
						<a href="<?php echo admin_url( 'admin.php?page=litespeed-page_optm#settings_css' ); ?>" class="litespeed-title-right-icon"><?php echo __( 'More', 'litespeed-cache' ); ?></a>
					</h3>

					<?php if ( ! empty( $css_summary[ 'last_request_ccss' ] ) ) : ?>
						<p>
							<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $css_summary[ 'last_request_ccss' ] ) . '</code>'; ?>
						</p>
						<p>
							<?php echo __( 'Time to execute previous request', 'litespeed-cache' ) . ': <code>' . esc_html( $css_summary[ 'last_spent_ccss' ] ) . 's</code>'; ?>
						</p>
					<?php endif; ?>

					<p>
						<?php echo __( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo $ccss_count ?: '-'; ?></code>
						<a href="<?php echo $ccss_count ? Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GEN_CCSS ) : 'javascript:;'; ?>"
							class="button button-secondary button-small <?php if ( ! $ccss_count ) echo 'disabled'; ?>">
							<?php echo __( 'Force cron', 'litespeed-cache' ); ?>
						</a>
					</p>

				</div>

				<?php if ( ! empty( $cloud_summary[ 'last_request.ccss' ] ) ) : ?>
					<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
						<?php echo __( 'Last requested', 'litespeed-cache' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.ccss' ] ) ?>
					</div>
				<?php endif; ?>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-ucss">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Unique CSS', 'litespeed-cache' ); ?>
						<a href="<?php echo admin_url( 'admin.php?page=litespeed-page_optm#settings_css' ); ?>" class="litespeed-title-right-icon"><?php echo __( 'More', 'litespeed-cache' ); ?></a>
					</h3>

					<?php if ( ! empty( $css_summary[ 'last_request_ucss' ] ) ) : ?>
						<p>
							<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $css_summary[ 'last_request_ucss' ] ) . '</code>'; ?>
						</p>
						<p>
							<?php echo __( 'Time to execute previous request', 'litespeed-cache' ) . ': <code>' . esc_html( $css_summary[ 'last_spent_ucss' ] ) . 's</code>'; ?>
						</p>
					<?php endif; ?>

					<p>
						<?php echo __( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo $ucss_count ?: '-' ?></code>
						<a href="<?php echo $ucss_count ? Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GEN_UCSS ) : 'javascript:;'; ?>"
							class="button button-secondary button-small <?php if ( ! $ucss_count ) echo 'disabled'; ?>">
							<?php echo __( 'Force cron', 'litespeed-cache' ); ?>
						</a>
					</p>

				</div>

				<?php if ( ! empty( $cloud_summary[ 'last_request.ucss' ] ) ) : ?>
					<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
						<?php echo __( 'Last requested', 'litespeed-cache' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.ucss' ] ) ?>
					</div>
				<?php endif; ?>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-lqip">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Low Quality Image Placeholder', 'litespeed-cache' ); ?>
						<a href="<?php echo admin_url( 'admin.php?page=litespeed-page_optm#settings_media' ); ?>" class="litespeed-title-right-icon"><?php echo __( 'More', 'litespeed-cache' ); ?></a>
					</h3>

					<?php if ( ! empty( $placeholder_summary[ 'last_request' ] ) ) : ?>
						<p>
							<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $placeholder_summary[ 'last_request' ] ) . '</code>'; ?>
						</p>
						<p>
							<?php echo __( 'Time to execute previous request', 'litespeed-cache' ) . ': <code>' . esc_html( $placeholder_summary[ 'last_spent' ] ) . 's</code>'; ?>
						</p>
					<?php endif; ?>

					<p>
						<?php echo __( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo $placeholder_queue_count ?: '-' ?></code>
						<a href="<?php echo $placeholder_queue_count ? Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_GENERATE ) : 'javascript:;'; ?>" class="button button-secondary button-small <?php if ( ! $placeholder_queue_count ) echo 'disabled'; ?>">
							<?php echo __( 'Force cron', 'litespeed-cache' ); ?>
						</a>
					</p>

				</div>

				<?php if ( ! empty( $cloud_summary[ 'last_request.lqip' ] ) ) : ?>
					<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
						<?php echo __( 'Last requested', 'litespeed-cache' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.lqip' ] ) ?>
					</div>
				<?php endif; ?>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-crawler">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Crawler Status', 'litespeed-cache' ); ?>
						<a href="<?php echo admin_url( 'admin.php?page=litespeed-crawler' ); ?>" class="litespeed-title-right-icon"><?php echo __( 'More', 'litespeed-cache' ); ?></a>
					</h3>

					<p>
						<code><?php echo count( Crawler::cls()->list_crawlers() );?></code> <?php echo __( 'Crawler(s)', 'litespeed-cache' ); ?>
					</p>
					<p>
						<?php echo __( 'Currently active crawler', 'litespeed-cache' ); ?>: <code><?php echo esc_html( $crawler_summary[ 'curr_crawler' ] ); ?></code>
					</p>

					<?php if ( $crawler_summary[ 'curr_crawler_beginning_time' ] ) : ?>
					<p>
						<b><?php echo __('Current crawler started at', 'litespeed-cache'); ?>:</b>
						<?php echo Utility::readable_time( $crawler_summary[ 'curr_crawler_beginning_time' ] ); ?>
					</p>
					<?php endif; ?>

					<?php if ( $crawler_summary[ 'last_start_time' ] ) : ?>
					<p class='litespeed-desc'>
						<b><?php echo __('Last interval', 'litespeed-cache'); ?>:</b>
						<?php echo Utility::readable_time( $crawler_summary[ 'last_start_time' ] ); ?>
					</p>
					<?php endif; ?>

					<?php if ( $crawler_summary[ 'end_reason' ] ) : ?>
					<p class='litespeed-desc'>
						<b><?php echo __( 'Ended reason', 'litespeed-cache' ); ?>:</b>
						<?php echo esc_html( $crawler_summary[ 'end_reason' ] ); ?>
					</p>
					<?php endif; ?>

					<?php if ( $crawler_summary[ 'last_crawled' ] ) : ?>
					<p class='litespeed-desc'>
						<?php echo sprintf(__('<b>Last crawled:</b> %d item(s)', 'litespeed-cache'), $crawler_summary[ 'last_crawled' ] ); ?>
					</p>
					<?php endif; ?>

				</div>
			</div>

		</div>

	</div>


</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'dashboard'	=> __( 'Dashboard', 'litespeed-cache' ),
);

if ( $this->_is_network_admin ) {
	$menu_list = array(
		'network_dash' => __( 'Network Dashboard', 'litespeed-cache' ),
	);
}


?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Dashboard', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<?php
	foreach ($menu_list as $tab => $val) {
		echo "<div data-litespeed-layout='$tab'>";
		require LSCWP_DIR . "tpl/dash/$tab.tpl.php";
		echo "</div>";
	}
	?>
</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$cloud_summarys = array();
$blogs = Activation::get_network_ids();
foreach ( $blogs as $blog_id ) {
	switch_to_blog( $blog_id );
	$cloud_summarys[ home_url() ] = Cloud::get_summary();
}

?>

<div class="litespeed-dashboard">
<?php foreach ( $cloud_summarys as $home_url => $cloud_summary ) : ?>

	<div class="litespeed-dashboard-header">
		<h3 class="litespeed-dashboard-title">
			<?php echo __( 'Usage Statistics', 'litespeed-cache' ) . ': ' . $home_url; ?>
		</h3>
		<hr>
	</div>

	<div class="litespeed-dashboard-stats-wrapper">
		<?php
			$cat_list = array(
				'img_optm'	=> __( 'Image Optimization', 'litespeed-cache' ),
				'ccss'		=> __( 'CCSS', 'litespeed-cache' ),
				'cdn'		=> __( 'CDN Bandwidth', 'litespeed-cache' ),
				'lqip'		=> __( 'LQIP', 'litespeed-cache' ),
			);

			foreach ( $cat_list as $svc => $title ) :
				$finished_percentage = 0;
				$total_used = $used = $quota = $pag_used = $pag_total = '-';
				$used = $quota = $pag_used = $pag_total = '-';
				$pag_width = 0;
				if ( ! empty( $cloud_summary[ 'usage.' . $svc ] ) ) {
					$finished_percentage = floor( $cloud_summary[ 'usage.' . $svc ][ 'used' ] * 100 / $cloud_summary[ 'usage.' . $svc ][ 'quota' ] );
					$used = $cloud_summary[ 'usage.' . $svc ][ 'used' ];
					$quota = $cloud_summary[ 'usage.' . $svc ][ 'quota' ];
					$pag_used = ! empty( $cloud_summary[ 'usage.' . $svc ][ 'pag_used' ] ) ? $cloud_summary[ 'usage.' . $svc ][ 'pag_used' ] : 0;
					$pag_bal = ! empty( $cloud_summary[ 'usage.' . $svc ][ 'pag_bal' ] ) ? $cloud_summary[ 'usage.' . $svc ][ 'pag_bal' ] : 0;
					$pag_total = $pag_used + $pag_bal;

					if ( $pag_total ) {
						$pag_width = round( $pag_used / $pag_total * 100 ) . '%';
					}

					if ( $svc == 'cdn' ) {
						$used = Utility::real_size( $used * 1024 * 1024 );
						$quota = Utility::real_size( $quota * 1024 * 1024 );
						$pag_used = Utility::real_size( $pag_used * 1024 * 1024 );
						$pag_total = Utility::real_size( $pag_total * 1024 * 1024 );
					}
				}

				$percentage_bg = 'success';
				if( $finished_percentage > 95 ){
					$percentage_bg = 'danger';
				} elseif ( $finished_percentage > 85 ){
					$percentage_bg = 'warning';
				}

			?>


				<div class="postbox litespeed-postbox">
					<div class="inside">
						<h3 class="litespeed-title"><?php echo $title; ?></h3>

						<div class="litespeed-flex-container">
							<div class="litespeed-icon-vertical-middle litespeed-pie-<?php echo $percentage_bg;?>">
								<?php echo GUI::pie( $finished_percentage, 60, false ); ?>
							</div>
							<div>
								<div class="litespeed-dashboard-stats">
									<h3><?php echo ( $svc == 'img_optm' ? __('Fast Queue Usage','litespeed-cache') : __( 'Usage', 'litespeed-cache' ) ); ?></h3>
									<p>
										<strong><?php echo esc_html( $used ); ?></strong>
										<?php if( $used != $quota ) { ?>
											<span class="litespeed-desc"> of <?php echo esc_html( $quota ); ?></span>
										<?php } ?>
									</p>
								</div>
							</div>
						</div>
						<?php if ( $pag_total > 0 ) { ?>
							<p class="litespeed-dashboard-stats-payg" data-balloon-pos="up" aria-label="<?php echo __('Pay as You Go','litespeed-cache'); ?>">
								<?php echo __('PAYG Balance','litespeed-cache'); ?>: <strong><?php echo esc_html( $pag_bal ); ?></strong>
								<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo __('This Month Usage','litespeed-cache'); ?>: <?php echo esc_html( $pag_used );?>">
									<span class="dashicons dashicons-info"></span>
									<span class="screen-reader-text"><?php echo __( 'Pay as You Go Usage Statistics', 'litespeed-cache' );?></span>
								</button>
							</p>
						<?php } ?>

						<?php if ( $svc == 'img_optm' ) { ?>
							<p class="litespeed-dashboard-stats-total">
								<?php echo __('Total Usage','litespeed-cache'); ?>: <strong><?php echo esc_html( $total_used ); ?> / ∞</strong>
								<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo __('Total images optimized in this month','litespeed-cache'); ?>">
									<span class="dashicons dashicons-info"></span>
								</button>
							</p>
							<div class="clear"></div>
						<?php } ?>
					</div>
				</div>

			<?php endforeach; ?>
	</div>

<?php endforeach; ?>
</div><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

// $widget, $return, $instance

$options = ! empty( $instance[ Base::OPTION_NAME ] ) ? $instance[ Base::OPTION_NAME ] : array() ;

if ( empty( $options ) ) {
	$options = array(
		ESI::WIDGET_O_ESIENABLE => Base::VAL_OFF,
		ESI::WIDGET_O_TTL => '28800'
	) ;

	add_filter('litespeed_widget_default_options', 'LiteSpeed\ESI::widget_default_options', 10, 2) ;

	$options = apply_filters( 'litespeed_widget_default_options', $options, $widget ) ;
}

if ( empty( $options ) ) {
	$esi = Base::VAL_OFF ;
	$ttl = '28800' ;
}
else {
	$esi = $options[ ESI::WIDGET_O_ESIENABLE ] ;
	$ttl = $options[ ESI::WIDGET_O_TTL ] ;
}

$display = Admin_Display::cls() ;

?>
<div class="litespeed-widget-setting">

	<h4>LiteSpeed Cache:</h4>

	<b><?php echo __( 'Enable ESI', 'litespeed-cache' ) ; ?>:</b>
	&nbsp;&nbsp;
	<div class="litespeed-inline">
		<div class="litespeed-switch litespeed-mini">
		<?php

			$id = ESI::WIDGET_O_ESIENABLE ;
			$name = $widget->get_field_name( $id ) ;

			$cache_status_list = array(
				array( Base::VAL_ON, __( 'Public', 'litespeed-cache' ) ),
				array( Base::VAL_ON2, __( 'Private', 'litespeed-cache' ) ),
				array( Base::VAL_OFF, __( 'Disable', 'litespeed-cache' ) ),
			) ;

			foreach ( $cache_status_list as $v ) {
				list( $v, $txt ) = $v ;
				$id_attr = $widget->get_field_id( $id ) . '_' . $v ;
				$checked = $esi === $v ? 'checked' : '' ;
				echo "<input type='radio' autocomplete='off' name='$name' id='$id_attr' value='$v' $checked /> <label for='$id_attr'>$txt</label>" ;
			}
		?>

		</div>
	</div>
	<br /><br />

	<b><?php echo __( 'Widget Cache TTL:', 'litespeed-cache' ) ; ?></b>
	&nbsp;&nbsp;
	<?php
		$id = ESI::WIDGET_O_TTL ;
		$name = $widget->get_field_name( $id ) ;
		echo "<input type='text' class='regular-text litespeed-reset' name='$name' value='$ttl' size='7' />" ;
	?>
	<?php echo __( 'seconds', 'litespeed-cache' ) ; ?>

	<p class="install-help">
		<?php echo __( 'Recommended value: 28800 seconds (8 hours).', 'litespeed-cache' ) ; ?>
		<?php echo __( 'A TTL of 0 indicates do not cache.', 'litespeed-cache' ) ; ?>
	</p>
</div>

<br /><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>
<div class="litespeed-wrap notice notice-info litespeed-banner-promo-full" id="litespeed-banner-promo-slack">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title"><?php echo __( 'Welcome to LiteSpeed', 'litespeed-cache' ) ; ?></h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-desciption-content">
					<?php echo __( 'Want to connect with other LiteSpeed users?', 'litespeed-cache' ) ; ?>
					<?php echo sprintf( __( 'Join the %s community.', 'litespeed-cache' ), '<a href="https://join.slack.com/t/golitespeed/shared_invite/enQtMzE5ODgxMTUyNTgzLTNiNWQ1MWZlYmI4YjEzNTM4NjdiODY2YTQ0OWVlMzBlNGZkY2E3Y2E4MjIzNmNmZmU0ZjIyNWM1ZmNmMWRlOTk" target="_blank" class="litespeed-banner-promo-slack-textlink">LiteSpeed Slack</a>' ) ; ?>
				</p>
				<p class="litespeed-banner-promo-slack-line2">
					golitespeed.slack.com
				</p>
			</div>
			<div>
				<h3 class="litespeed-banner-button-link">
					<a href="https://join.slack.com/t/golitespeed/shared_invite/enQtMzE5ODgxMTUyNTgzLTNiNWQ1MWZlYmI4YjEzNTM4NjdiODY2YTQ0OWVlMzBlNGZkY2E3Y2E4MjIzNmNmZmU0ZjIyNWM1ZmNmMWRlOTk" target="_blank">
						<?php echo __( 'Join Us on Slack', 'litespeed-cache' ) ; ?>
					</a>
				</h3>
			</div>
		</div>
	</div>
	<div>
		<?php $dismiss_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'slack' ) ) ; ?>
		<span class="screen-reader-text">Dismiss this notice.</span>
		<a href="<?php echo $dismiss_url ; ?>" class="litespeed-notice-dismiss">
			Dismiss
		</a>
	</div>
</div><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$health_scores = Health::cls()->scores();

// If speed is not reduced half or score is larger
if ( $health_scores[ 'speed_before' ] <= $health_scores[ 'speed_after' ] * 2 || $health_scores[ 'score_before' ] >= $health_scores[ 'score_after' ] ) {
	return;
}

//********** Can show now **********//
$this->_promo_true = true;

if ( $check_only ) {
	return;
}

?>
<div class="litespeed-wrap notice notice-info litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-banner-promo-content"><?php echo __( 'Thank You for Using the LiteSpeed Cache Plugin!', 'litespeed-cache' ); ?></h3>

		<div class="litespeed-row-flex litespeed-banner-promo-content litespeed-margin-left-remove litespeed-flex-wrap">
			<div class="litespeed-right50 litespeed-margin-bottom20">
				<h2 class="litespeed-text-grey litespeed-margin-bottom-remove litespeed-top10"><?php echo __( 'Page Load Time', 'litespeed-cache' ); ?></h2>
				<hr class="litespeed-margin-bottom-remove" />
				<div class="litespeed-row-flex" style="margin-left: -10px;">
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove">
                                <?php echo __( 'Before', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-grey">
							<?php echo $health_scores[ 'speed_before' ]; ?><span class="litespeed-text-large">s</span>
						</div>

					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove">
                                <?php echo __( 'After', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-success">
							<?php echo $health_scores[ 'speed_after' ]; ?><span class="litespeed-text-large">s</span>
						</div>
					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove" style="white-space: nowrap;">
                                <?php echo __( 'Improved by', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-fern">
							<?php echo $health_scores[ 'speed_improved' ]; ?><span class="litespeed-text-large">%</span>
						</div>
					</div>
				</div>

			</div>

			<?php if ( $health_scores[ 'score_before' ] < $health_scores[ 'score_after' ] ) : ?>
			<div class="litespeed-margin-bottom20">
				<h2 class="litespeed-text-grey litespeed-margin-bottom-remove litespeed-top10"><?php echo __( 'PageSpeed Score', 'litespeed-cache' ); ?></h2>
				<hr class="litespeed-margin-bottom-remove" />
				<div class="litespeed-row-flex" style="margin-left: -10px;">
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-text-center litespeed-margin-y-remove">
                                <?php echo __( 'Before', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-promo-score" style="margin-top:-5px;">
							<?php echo GUI::pie( $health_scores[ 'score_before' ], 45, false, true, 'litespeed-pie-' . $this->get_cls_of_pagescore( $health_scores[ 'score_before' ] ) ); ?>
						</div>
					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-text-center litespeed-margin-y-remove">
                                <?php echo __( 'After', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-promo-score" style="margin-top:-5px;">
							<?php echo GUI::pie( $health_scores[ 'score_after' ], 45, false, true, 'litespeed-pie-' . $this->get_cls_of_pagescore( $health_scores[ 'score_after' ] ) ); ?>
						</div>
					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove" style="white-space: nowrap;">
                                <?php echo __( 'Improved by', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-fern">
							<?php echo $health_scores[ 'score_improved' ]; ?><span class="litespeed-text-large">%</span>
						</div>
					</div>
				</div>

			</div>
			<?php endif; ?>

		</div>

		<div class="litespeed-row-flex litespeed-flex-wrap litespeed-margin-y5">
			<div class="litespeed-banner-description-padding-right-15">

				<a href="https://wordpress.org/support/plugin/litespeed-cache/reviews/?filter=5#new-post" target="_blank" style="text-decoration: none;">
					<button class="button litespeed-btn-success litespeed-btn-mini">
						<?php echo __( 'Sure I\'d love to review!', 'litespeed-cache' ); ?>
						⭐⭐⭐⭐⭐
					</button>
				</a>
				<button type="button" class="button litespeed-btn-primary litespeed-btn-mini" id="litespeed-promo-done"> <?php echo __( 'I\'ve already left a review', 'litespeed-cache' ); ?></button>
				<button type="button" class="button litespeed-btn-warning litespeed-btn-mini" id="litespeed-promo-later"> <?php echo __( 'Maybe later', 'litespeed-cache' ); ?></button>
			</div>
			<div>
				<p class="litespeed-text-small">
					<?php echo __( 'Created with ❤️  by LiteSpeed team.', 'litespeed-cache' ); ?>
					<?php echo sprintf(
						__( '<a %s>Support forum</a> | <a %s>Submit a ticket</a>', 'litespeed-cache' ),
						'href="https://wordpress.org/support/plugin/litespeed-cache" target="_blank"',
						'href="https://www.litespeedtech.com/support" target="_blank"'
					); ?>
				</p>
			</div>
		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'score', 'later' => 1 ) ); ?>
		<span class="screen-reader-text">Dismiss this notice.</span>
		<a href="<?php echo $dismiss_url; ?>" class="litespeed-notice-dismiss">X</a>
	</div>

</div><?php
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>

<div class="litespeed-wrap notice notice-success litespeed-banner-promo-full">

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15"><?php echo $this->_summary[ 'news.title' ] ; ?></h3>
		<div class="litespeed-banner-description" style="flex-direction: column;">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-desciption-content">
					<?php echo $this->_summary[ 'news.content' ]; ?>
				</p>
			</div>
			<div class="litespeed-inline">
				<div class="litespeed-banner-description-padding-right-15 litespeed-margin-bottom10">
					<?php if ( ! empty( $this->_summary[ 'news.plugin' ] ) ) : ?>
					<?php $install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_3RD, false, null, array( 'plugin' => $this->_summary[ 'news.plugin' ] ) ); ?>
					<a href="<?php echo $install_link ; ?>" class="button litespeed-btn-success">
						 <?php echo __( 'Install', 'litespeed-cache' ); ?>
						 <?php if ( ! empty( $this->_summary[ 'news.plugin_name' ] ) ) echo $this->_summary[ 'news.plugin_name' ]; ?>
					</a>
					<?php endif; ?>
					<?php if ( ! empty( $this->_summary[ 'news.zip' ] ) ) : ?>
					<?php $install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_ZIP ); ?>
					<a href="<?php echo $install_link ; ?>" class="button litespeed-btn-success">
						 <?php echo __( 'Install', 'litespeed-cache' ); ?>
					</a>
					<?php endif; ?>
				</div>
			</div>
		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_DISMISS_RECOMMENDED ) ; ?>
		<span class="screen-reader-text">Dismiss this notice.</span>
		<a href="<?php echo $dismiss_url ; ?>" class="litespeed-notice-dismiss">X</a>
	</div>
</div>
<?php
/**
 * @deprecated 3.3 Will only show banner after user manually checked score
 */

namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$url = Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SPEED, true ) ;
$url = htmlspecialchars_decode( $url ) ;
?>
<script>
	document.addEventListener( 'DOMContentLoaded', function( event ) {
		jQuery(document).ready( function() {
			jQuery.get( '<?php echo $url; ?>' ) ;
		} ) ;
	} ) ;
</script><?php
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>

<div class="litespeed-wrap notice notice-success litespeed-banner-promo-qc">

	<div class="litespeed-banner-promo-qc-content">

		<div class="litespeed-banner-promo-qc-description">
			<h2><?php echo __( 'You just unlocked a promotion from QUIC.cloud!', 'litespeed-cache' );?></h2>
			<p>Spread the love and earn <strong><?php echo $this->_summary[ 'promo' ][ 0 ][ 'quota' ]; ?></strong> credits to use in our QUIC.cloud online services.</p>
			<p>
				<a class="button button-primary" href="<?php echo $this->_summary[ 'promo' ][ 0 ][ 'url' ]; ?>" target="_blank">Send to twitter to get <?php echo $this->_summary[ 'promo' ][ 0 ][ 'quota' ]; ?> bonus</a>
				<a href="https://www.quic.cloud/faq/#credit" target="_blank"><?php echo __( 'Learn more', 'litespeed-cache' );?></a>
			</p>
		</div>

		<div class="litespeed-banner-promo-qc-preview">
			<h4 class="litespeed-tweet-preview-title"><?php echo __( 'Tweet preview', 'litespeed-cache' );?></h4>
			<div class="litespeed-tweet-preview">

				<div class="litespeed-tweet-img"><img src="<?php echo $this->_summary[ 'promo' ][ 0 ][ 'image' ]; ?>"></div>

				<div class="litespeed-tweet-preview-content">
					<p class="litespeed-tweet-text"><?php echo $this->_summary[ 'promo' ][ 0 ][ 'content' ]; ?></p>

					<div class="litespeed-tweet-cta">
						<a href="<?php echo $this->_summary[ 'promo' ][ 0 ][ 'url' ]; ?>" class="litespeed-tweet-btn" target="_blank"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
								viewBox="0 0 250 250" xml:space="preserve">
							<path class="st0" d="M78.6,226.6c94.3,0,145.9-78.2,145.9-145.9c0-2.2,0-4.4-0.1-6.6c10-7.3,18.7-16.3,25.6-26.5
								c-9.4,4.1-19.3,6.9-29.5,8.1c10.7-6.4,18.7-16.5,22.5-28.4c-10.1,6-21.1,10.2-32.6,12.4c-19.4-20.7-51.9-21.7-72.6-2.2
								c-13.3,12.5-19,31.2-14.8,49C81.9,84.3,43.4,64.8,17.4,32.8c-13.6,23.4-6.7,53.4,15.9,68.5c-8.2-0.2-16.1-2.4-23.3-6.4
								c0,0.2,0,0.4,0,0.6c0,24.4,17.2,45.4,41.2,50.3c-7.6,2.1-15.5,2.4-23.2,0.9c6.7,20.9,26,35.2,47.9,35.6c-18.2,14.3-40.6,22-63.7,22
								c-4.1,0-8.2-0.3-12.2-0.7C23.5,218.6,50.7,226.6,78.6,226.6"/>
							</svg>
							<?php echo __( 'Tweet this', 'litespeed-cache' );?>
						</a>
					</div>
				</div>

			</div>

		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_CLEAR_PROMO ) ; ?>
		<span class="screen-reader-text"><?php echo __( 'Dismiss this notice', 'litespeed-cache' );?>.</span>
		<a href="<?php echo $dismiss_url ; ?>" class="litespeed-notice-dismiss">X</a>
	</div>
</div>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

/**
 * NOTE: Only show for single site
 */
if ( is_multisite() ) {
	return;
}

if ( $this->conf( Base::O_AUTO_UPGRADE ) ) {
	return;
}

$current = get_site_transient( 'update_plugins' );
if ( ! isset( $current->response[ Core::PLUGIN_FILE ] ) ) {
	return;
}

$last_check = empty( $this->_summary[ 'new_version.last_check' ] ) ? 0 : $this->_summary[ 'new_version.last_check' ];
// Check once in a half day
if ( time() - $last_check > 43200 ) {
	$this->_summary[ 'new_version.last_check' ] = time();
	Admin_Display::save_summary( $this->_summary );

	// Detect version
	$auto_v = Cloud::version_check( 'new_version_banner' );
	if ( ! empty( $auto_v[ 'latest' ] ) ) {
		$this->_summary[ 'new_version.v' ] = $auto_v[ 'latest' ];
		Admin_Display::save_summary( $this->_summary );
	}
	// After detect, don't show, just return and show next time
	return;
}

if ( ! isset( $this->_summary[ 'new_version.v' ] ) ) {
	return;
}

// Check if current version is newer than auto_v or not
if ( version_compare( Core::VER, $this->_summary[ 'new_version.v' ], '>=' ) ) {
	return;
}

//********** Can show now **********//

$this->_promo_true = true;

if ( $check_only ) {
	return;
}

?>
<div class="litespeed-wrap notice notice-success litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15"><?php echo __( 'LiteSpeed Cache', 'litespeed-cache' ); ?>: <?php echo __( 'New Version Available!', 'litespeed-cache' ); ?></h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-desciption-content">
					<?php echo sprintf( __( 'New release %s is available now.', 'litespeed-cache' ), 'v' . $this->_summary[ 'new_version.v' ] ); ?>
				</p>
			</div>
			<div class="litespeed-row-flex litespeed-banner-description">
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_UPGRADE ); ?>
					<a href="<?php echo $url; ?>" class="button litespeed-btn-success litespeed-btn-mini">
						<i class="dashicons dashicons-image-rotate">&nbsp;</i>
						 <?php echo __( 'Upgrade', 'litespeed-cache' ); ?>
					</a>
				</div>
				<div class="litespeed-banner-description-padding-right-15">
					<?php
						$cfg = array( Conf::TYPE_SET . '[' . Base::O_AUTO_UPGRADE . ']' => 1 );
						$url = Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, null, $cfg );
					?>
					<a href="<?php echo $url; ?>" class="button litespeed-btn-primary litespeed-btn-mini">
						<i class="dashicons dashicons-update">&nbsp;</i>
						<?php echo __( 'Turn On Auto Upgrade', 'litespeed-cache' ); ?>
					</a>
				</div>
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'new_version' ) ); ?>
					<a href="<?php echo $url; ?>" class="button litespeed-btn-warning litespeed-btn-mini">
						 <?php echo __( 'Maybe Later', 'litespeed-cache' ); ?>
					</a>
				</div>
			</div>
		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'new_version', 'later' => 1 ) ); ?>
		<span class="screen-reader-text">Dismiss this notice.</span>
		<a href="<?php echo $dismiss_url; ?>" class="litespeed-notice-dismiss">X</a>
	</div>
</div>
<?php
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>

<div class="litespeed-wrap notice notice-warning litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15"><?php echo __( 'LiteSpeed Cache', 'litespeed-cache' ) ; ?>: <?php echo __( 'New Developer Version Available!', 'litespeed-cache' ) ; ?></h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-desciption-content">
					<?php echo sprintf( __( 'New developer version %s is available now.', 'litespeed-cache' ), 'v' . $this->_summary[ 'version.dev' ] ) ; ?>
				</p>
			</div>
			<div class="litespeed-row-flex litespeed-banner-description">
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_BETA_TEST, false, null, array( Debug2::BETA_TEST_URL => 'dev' ) ) ; ?>
					<a href="<?php echo $url ; ?>" class="button litespeed-btn-success litespeed-btn-mini">
						<i class="dashicons dashicons-image-rotate">&nbsp;</i>
						 <?php echo __( 'Upgrade', 'litespeed-cache' ) ; ?>
					</a>
				</div>
			</div>
		</div>
	</div>

</div>
# Copyright (C) 2022 LiteSpeed Cache
# This file is distributed under the same license as the LiteSpeed Cache package.
msgid ""
msgstr ""
"Project-Id-Version: LiteSpeed Cache 4.5\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/litespeed-cache\n"
"POT-Creation-Date: 2022-02-18 20:40:34+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2022-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr ""

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr ""

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr ""

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr ""

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr ""

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr ""

#: src/admin-display.cls.php:115 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr ""

#: src/admin-display.cls.php:117
msgid "General"
msgstr ""

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr ""

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr ""

#: src/admin-display.cls.php:123 src/gui.cls.php:612
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr ""

#: src/admin-display.cls.php:125 tpl/dash/dashboard.tpl.php:56
msgid "Page Optimization"
msgstr ""

#: src/admin-display.cls.php:127
msgid "Database"
msgstr ""

#: src/admin-display.cls.php:129 src/lang.cls.php:210
msgid "Crawler"
msgstr ""

#: src/admin-display.cls.php:131
msgid "Toolbox"
msgstr ""

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr ""

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr ""

#: src/admin-display.cls.php:208
msgid "Remove cookie simulation"
msgstr ""

#: src/admin-display.cls.php:209
msgid "Add new cookie to simulate"
msgstr ""

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr ""

#: src/admin-display.cls.php:230
msgid "Remove CDN URL"
msgstr ""

#: src/admin-display.cls.php:231
msgid "Add new CDN URL"
msgstr ""

#: src/admin-display.cls.php:232 src/admin-display.cls.php:837
#: src/admin-display.cls.php:866 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:174
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr ""

#: src/admin-display.cls.php:233 src/admin-display.cls.php:838
#: src/admin-display.cls.php:865 src/admin-display.cls.php:917
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:72 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr ""

#: src/admin-display.cls.php:281 src/gui.cls.php:603
msgid "Settings"
msgstr ""

#: src/admin-display.cls.php:460
msgid "Dismiss"
msgstr ""

#: src/admin-display.cls.php:706 src/admin-display.cls.php:711
msgid "Save Changes"
msgstr ""

#: src/admin-display.cls.php:929
msgid "This setting is overwritten by the PHP constant %s"
msgstr ""

#: src/admin-display.cls.php:932
msgid "This setting is overwritten by the primary site setting"
msgstr ""

#: src/admin-display.cls.php:935
msgid "This setting is overwritten by the Network setting"
msgstr ""

#: src/admin-display.cls.php:939
msgid "currently set to %s"
msgstr ""

#: src/admin-display.cls.php:949 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr ""

#: src/admin-display.cls.php:980 src/admin-display.cls.php:985
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr ""

#: src/admin-display.cls.php:1009
msgid "Invalid rewrite rule"
msgstr ""

#: src/admin-display.cls.php:1026
msgid "Path must end with %s"
msgstr ""

#: src/admin-display.cls.php:1044
msgid "Minimum value"
msgstr ""

#: src/admin-display.cls.php:1047
msgid "Maximum value"
msgstr ""

#: src/admin-display.cls.php:1059
msgid "Zero, or"
msgstr ""

#: src/admin-display.cls.php:1066
msgid "Larger than"
msgstr ""

#: src/admin-display.cls.php:1069
msgid "Smaller than"
msgstr ""

#: src/admin-display.cls.php:1072
msgid "Value range"
msgstr ""

#: src/admin-display.cls.php:1097
msgid "Invalid IP"
msgstr ""

#: src/admin-display.cls.php:1117 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:176
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:165
#: tpl/page_optm/settings_tuning.tpl.php:186
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr ""

#: src/admin-display.cls.php:1118
msgid "Server variable(s) %s available to override this setting."
msgstr ""

#: src/admin-display.cls.php:1130
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr ""

#: src/admin-display.cls.php:1131
msgid "For example, for %s, %s can be used here."
msgstr ""

#: src/admin-display.cls.php:1133
msgid "To match the beginning, add %s to the beginning of the item."
msgstr ""

#: src/admin-display.cls.php:1134
msgid "To do an exact match, add %s to the end of the URL."
msgstr ""

#: src/admin-display.cls.php:1135 src/doc.cls.php:74
msgid "One per line."
msgstr ""

#: src/admin-display.cls.php:1149
msgid "%s groups"
msgstr ""

#: src/admin-display.cls.php:1152
msgid "%s images"
msgstr ""

#: src/admin-display.cls.php:1162
msgid "%s group"
msgstr ""

#: src/admin-display.cls.php:1165
msgid "%s image"
msgstr ""

#: src/admin-settings.cls.php:242 src/admin-settings.cls.php:276
msgid "Options saved."
msgstr ""

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr ""

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr ""

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr ""

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr ""

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr ""

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr ""

#: src/cloud.cls.php:359 src/cloud.cls.php:372 src/cloud.cls.php:407
#: src/cloud.cls.php:432 src/cloud.cls.php:551 src/cloud.cls.php:907
msgid "Cloud Error"
msgstr ""

#: src/cloud.cls.php:407
msgid "No available Cloud Node."
msgstr ""

#: src/cloud.cls.php:432
msgid "No available Cloud Node after checked server load."
msgstr ""

#: src/cloud.cls.php:551
msgid "Please try after %1$s for service %2$s."
msgstr ""

#: src/cloud.cls.php:634 src/cloud.cls.php:650
msgid "Failed to request via WordPress"
msgstr ""

#: src/cloud.cls.php:665
msgid "Redetected node"
msgstr ""

#: src/cloud.cls.php:673
msgid ""
"We are working hard to improve your online service experience. The service "
"will be unavailable while we work. We apologize for any inconvenience."
msgstr ""

#: src/cloud.cls.php:686 src/cloud.cls.php:694 src/cloud.cls.php:943
msgid "Message from QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:702
msgid "Good news from QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:711
msgid "%1$s plugin version %2$s required for this action."
msgstr ""

#: src/cloud.cls.php:754 src/cloud.cls.php:932
msgid "Failed to communicate with QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:762
msgid ""
"Site not recognized. Domain Key has been automatically removed. Please "
"request a new one."
msgstr ""

#: src/cloud.cls.php:763 src/error.cls.php:48
msgid "Click here to set."
msgstr ""

#: src/cloud.cls.php:951
msgid ""
"Applied for Domain Key successfully. Please wait for result. Domain Key will "
"be automatically sent to your WordPress."
msgstr ""

#: src/cloud.cls.php:1002
msgid ""
"Congratulations, your Domain Key has been approved! The setting has been "
"updated accordingly."
msgstr ""

#: src/cloud.cls.php:1073
msgid "Domain Key hash mismatch"
msgstr ""

#: src/cloud.cls.php:1184
msgid "Sync credit allowance with Cloud Server successfully."
msgstr ""

#: src/conf.cls.php:704
msgid "Changed setting successfully."
msgstr ""

#: src/core.cls.php:291
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr ""

#: src/core.cls.php:296
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr ""

#: src/crawler-map.cls.php:265
msgid "Sitemap cleaned successfully"
msgstr ""

#: src/crawler-map.cls.php:317
msgid "No valid sitemap parsed for crawler."
msgstr ""

#: src/crawler-map.cls.php:321
msgid "Sitemap created successfully: %d items"
msgstr ""

#: src/crawler.cls.php:99
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr ""

#: src/crawler.cls.php:826
msgid "Guest"
msgstr ""

#: src/crawler.cls.php:978
msgid "Manually added to blocklist"
msgstr ""

#: src/crawler.cls.php:981
msgid "Previously existed in blocklist"
msgstr ""

#: src/css.cls.php:60 src/root.cls.php:176
msgid "Queue cleared successfully."
msgstr ""

#: src/css.cls.php:532
msgid "%1$s %2$s files left in queue"
msgstr ""

#: src/css.cls.php:533
msgid "Cancel"
msgstr ""

#: src/data.cls.php:219
msgid ""
"The database has been upgrading in the background since %s. This message "
"will disappear once upgrade is complete."
msgstr ""

#: src/data.upgrade.func.php:101
msgid ""
"LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, "
"the settings %1$s and %2$s have been turned OFF. Please turn them back on "
"manually and verify that your site layout is correct, and you have no JS "
"errors."
msgstr ""

#: src/data.upgrade.func.php:101 src/lang.cls.php:115
msgid "JS Combine"
msgstr ""

#: src/data.upgrade.func.php:101
msgid "JS Defer"
msgstr ""

#: src/data.upgrade.func.php:102
msgid "Click here to settings"
msgstr ""

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr ""

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr ""

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr ""

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr ""

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr ""

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr ""

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr ""

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr ""

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr ""

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr ""

#: src/db-optm.cls.php:243
msgid "Converted to InnoDB successfully."
msgstr ""

#: src/doc.cls.php:25
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr ""

#: src/doc.cls.php:36
msgid ""
"This site utilizes caching in order to facilitate a faster response time and "
"better user experience. Caching potentially stores a duplicate copy of every "
"web page that is on display on this site. All cache files are temporary, and "
"are never accessed by any third party, except as necessary to obtain "
"technical support from the cache plugin vendor. Cache files expire on a "
"schedule set by the site administrator, but may easily be purged by the "
"admin before their natural expiration, if necessary. We may use QUIC.cloud "
"services to process & cache your data temporarily."
msgstr ""

#: src/doc.cls.php:37
msgid "Please see %s for more details."
msgstr ""

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr ""

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr ""

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr ""

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr ""

#: src/doc.cls.php:117
msgid ""
"For online services to work correctly, you must allowlist all %s server IPs."
msgstr ""

#: src/doc.cls.php:118
msgid ""
"Before generating key, please verify all IPs on this list are allowlisted"
msgstr ""

#: src/doc.cls.php:119 tpl/general/settings.tpl.php:86
msgid "Current Online Server IPs"
msgstr ""

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr ""

#: src/error.cls.php:43
msgid "Click here to change."
msgstr ""

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr ""

#: src/error.cls.php:52
msgid "You don't have enough daily quota left for current service today."
msgstr ""

#: src/error.cls.php:56
msgid "You don't have enough quota left for current service this month."
msgstr ""

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr ""

#: src/error.cls.php:64
msgid ""
"You have too many notified images, please pull down notified images first."
msgstr ""

#: src/error.cls.php:68
msgid "The image list is empty."
msgstr ""

#: src/error.cls.php:72
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr ""

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet."
msgstr ""

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr ""

#: src/error.cls.php:84
msgid "The site is not registered on QUIC.cloud."
msgstr ""

#: src/error.cls.php:88
msgid ""
"The domain key is not correct. Please try to sync your domain key again."
msgstr ""

#: src/error.cls.php:92
msgid "The current server is under heavy load."
msgstr ""

#: src/error.cls.php:96
msgid "Online node needs to be redetected."
msgstr ""

#: src/error.cls.php:100
msgid "Credits are not enough to proceed the current request."
msgstr ""

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr ""

#: src/error.cls.php:112
msgid "Could not find %1$s in %2$s."
msgstr ""

#: src/error.cls.php:116
msgid "Invalid login cookie. Please check the %s file."
msgstr ""

#: src/error.cls.php:120
msgid "Failed to back up %s file, aborted changes."
msgstr ""

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr ""

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr ""

#: src/error.cls.php:136
msgid "Failed to create table %s! SQL: %s."
msgstr ""

#: src/error.cls.php:140
msgid "Crawler disabled by the server admin."
msgstr ""

#: src/error.cls.php:145
msgid "Previous request too recent. Please try again later."
msgstr ""

#: src/error.cls.php:149
msgid "Previous request too recent. Please try again after %s."
msgstr ""

#: src/error.cls.php:153
msgid "Your application is waiting for approval."
msgstr ""

#: src/error.cls.php:157
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr ""

#: src/error.cls.php:161
msgid ""
"The callback validation to your domain failed. Please make sure there is no "
"firewall blocking our servers."
msgstr ""

#: src/error.cls.php:165
msgid ""
"The callback validation to your domain failed. Please make sure there is no "
"firewall blocking our servers. Response code: "
msgstr ""

#: src/error.cls.php:169
msgid ""
"Your domain has been forbidden from using our services due to a previous "
"policy violation."
msgstr ""

#: src/error.cls.php:173
msgid "Unknown error"
msgstr ""

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr ""

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr ""

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr ""

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr ""

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr ""

#: src/gui.cls.php:81
msgid "Public Caches"
msgstr ""

#: src/gui.cls.php:82
msgid "Public Cache Hits"
msgstr ""

#: src/gui.cls.php:83
msgid "Private Caches"
msgstr ""

#: src/gui.cls.php:84
msgid "Private Cache Hits"
msgstr ""

#: src/gui.cls.php:403
msgid "Purge this page"
msgstr ""

#: src/gui.cls.php:411
msgid "Mark this page as "
msgstr ""

#: src/gui.cls.php:423
msgid "Forced cacheable"
msgstr ""

#: src/gui.cls.php:434
msgid "Non cacheable"
msgstr ""

#: src/gui.cls.php:445
msgid "Private cache"
msgstr ""

#: src/gui.cls.php:456
msgid "No optimization"
msgstr ""

#: src/gui.cls.php:464
msgid "More settings"
msgstr ""

#: src/gui.cls.php:471 src/gui.cls.php:479 src/gui.cls.php:487
#: src/gui.cls.php:496 src/gui.cls.php:506 src/gui.cls.php:516
#: src/gui.cls.php:526 src/gui.cls.php:535 src/gui.cls.php:545
#: src/gui.cls.php:555 src/gui.cls.php:621 src/gui.cls.php:629
#: src/gui.cls.php:637 src/gui.cls.php:646 src/gui.cls.php:656
#: src/gui.cls.php:666 src/gui.cls.php:676 src/gui.cls.php:686
#: src/gui.cls.php:695 src/gui.cls.php:705 src/gui.cls.php:715
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:37
#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
#: tpl/toolbox/purge.tpl.php:79 tpl/toolbox/purge.tpl.php:88
#: tpl/toolbox/purge.tpl.php:97 tpl/toolbox/purge.tpl.php:106
#: tpl/toolbox/purge.tpl.php:115
msgid "Purge All"
msgstr ""

#: src/gui.cls.php:479 src/gui.cls.php:579 src/gui.cls.php:629
msgid "LSCache"
msgstr ""

#: src/gui.cls.php:487 src/gui.cls.php:637 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr ""

#: src/gui.cls.php:496 src/gui.cls.php:656 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr ""

#: src/gui.cls.php:506 src/gui.cls.php:666 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr ""

#: src/gui.cls.php:535 src/gui.cls.php:695 tpl/toolbox/purge.tpl.php:88
msgid "Localized Resources"
msgstr ""

#: src/gui.cls.php:545 src/gui.cls.php:705
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:97
msgid "LQIP Cache"
msgstr ""

#: src/gui.cls.php:555 src/gui.cls.php:715 src/lang.cls.php:144
#: tpl/toolbox/purge.tpl.php:106
msgid "Gravatar Cache"
msgstr ""

#: src/gui.cls.php:579
msgid "LiteSpeed Cache Purge All"
msgstr ""

#: src/gui.cls.php:595 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr ""

#: src/gui.cls.php:646 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr ""

#: src/gui.cls.php:734 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr ""

#: src/gui.cls.php:735 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr ""

#: src/gui.cls.php:753
msgid "Install %s"
msgstr ""

#: src/gui.cls.php:754
msgid "Install Now"
msgstr ""

#: src/gui.cls.php:773
msgid ""
"<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s "
"target=\"_blank\">update now</a>."
msgstr ""

#: src/gui.cls.php:776
msgid "View %1$s version %2$s details"
msgstr ""

#: src/gui.cls.php:781
msgid "Update %s now"
msgstr ""

#: src/htaccess.cls.php:326
msgid "Mobile Agent Rules"
msgstr ""

#: src/htaccess.cls.php:787
msgid ""
"<p>Please add/replace the following codes into the beginning of %1$s:</p> "
"%2$s"
msgstr ""

#: src/img-optm.cls.php:147
msgid "No new image gathered."
msgstr ""

#: src/img-optm.cls.php:180
msgid "Gathered %d images successfully."
msgstr ""

#: src/img-optm.cls.php:472
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr ""

#: src/img-optm.cls.php:509
msgid "Bypassed %1$s duplicated images."
msgstr ""

#: src/img-optm.cls.php:547
msgid "Cleared %1$s invalid images."
msgstr ""

#: src/img-optm.cls.php:626
msgid "No valid image found in the current request."
msgstr ""

#: src/img-optm.cls.php:649
msgid "No valid image found by Cloud server in the current request."
msgstr ""

#: src/img-optm.cls.php:888
msgid "Pull Cron is running"
msgstr ""

#: src/img-optm.cls.php:947
msgid "Some optimized image file(s) has expired and was cleared."
msgstr ""

#: src/img-optm.cls.php:964
msgid "One or more pulled images does not match with the notified image md5"
msgstr ""

#: src/img-optm.cls.php:1008
msgid "Optimized WebP file expired and was cleared."
msgstr ""

#: src/img-optm.cls.php:1025
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr ""

#: src/img-optm.cls.php:1085
msgid "Pulled %d image(s)"
msgstr ""

#: src/img-optm.cls.php:1172
msgid "Cleaned up unfinished data successfully."
msgstr ""

#: src/img-optm.cls.php:1243
msgid "Destroy all optimization data successfully."
msgstr ""

#: src/img-optm.cls.php:1275 src/img-optm.cls.php:1340
msgid "Rescanned successfully."
msgstr ""

#: src/img-optm.cls.php:1340
msgid "Rescanned %d images successfully."
msgstr ""

#: src/img-optm.cls.php:1399
msgid "Calculated backups successfully."
msgstr ""

#: src/img-optm.cls.php:1461
msgid "Removed backups successfully."
msgstr ""

#: src/img-optm.cls.php:1656
msgid "Switched images successfully."
msgstr ""

#: src/img-optm.cls.php:1684
msgid "Disabled WebP file successfully."
msgstr ""

#: src/img-optm.cls.php:1690
msgid "Enabled WebP file successfully."
msgstr ""

#: src/img-optm.cls.php:1706
msgid "Restored original file successfully."
msgstr ""

#: src/img-optm.cls.php:1713
msgid "Switched to optimized file successfully."
msgstr ""

#: src/img-optm.cls.php:1776
msgid "Reset the optimized data successfully."
msgstr ""

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr ""

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr ""

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr ""

#: src/lang.cls.php:23
msgid "Images not requested"
msgstr ""

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr ""

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr ""

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr ""

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr ""

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr ""

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr ""

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr ""

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr ""

#: src/lang.cls.php:33
msgid "Duplicate image files ignored"
msgstr ""

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr ""

#: src/lang.cls.php:53
msgid "Server IP"
msgstr ""

#: src/lang.cls.php:54
msgid "Domain Key"
msgstr ""

#: src/lang.cls.php:55
msgid "Guest Mode User Agents"
msgstr ""

#: src/lang.cls.php:56
msgid "Guest Mode IPs"
msgstr ""

#: src/lang.cls.php:58
msgid "Enable Cache"
msgstr ""

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr ""

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr ""

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr ""

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr ""

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr ""

#: src/lang.cls.php:64
msgid "Default REST TTL"
msgstr ""

#: src/lang.cls.php:65
msgid "Default HTTP Status Code Page TTL"
msgstr ""

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr ""

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr ""

#: src/lang.cls.php:68
msgid "Guest Mode"
msgstr ""

#: src/lang.cls.php:69
msgid "Guest Optimization"
msgstr ""

#: src/lang.cls.php:70
msgid "Notifications"
msgstr ""

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr ""

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr ""

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr ""

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr ""

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr ""

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr ""

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr ""

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr ""

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr ""

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr ""

#: src/lang.cls.php:83
msgid "Method"
msgstr ""

#: src/lang.cls.php:84
msgid "Host"
msgstr ""

#: src/lang.cls.php:85
msgid "Port"
msgstr ""

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr ""

#: src/lang.cls.php:87
msgid "Username"
msgstr ""

#: src/lang.cls.php:88
msgid "Password"
msgstr ""

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr ""

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr ""

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr ""

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr ""

#: src/lang.cls.php:93
msgid "Cache WP-Admin"
msgstr ""

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr ""

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr ""

#: src/lang.cls.php:97
msgid "Serve Stale"
msgstr ""

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr ""

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr ""

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr ""

#: src/lang.cls.php:101
msgid "Force Public Cache URIs"
msgstr ""

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr ""

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr ""

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr ""

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr ""

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr ""

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr ""

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr ""

#: src/lang.cls.php:109
msgid "CSS Combine External and Inline"
msgstr ""

#: src/lang.cls.php:110
msgid "Generate UCSS"
msgstr ""

#: src/lang.cls.php:111
msgid "UCSS Inline"
msgstr ""

#: src/lang.cls.php:112
msgid "UCSS Allowlist"
msgstr ""

#: src/lang.cls.php:113
msgid "UCSS URI Excludes"
msgstr ""

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr ""

#: src/lang.cls.php:116
msgid "JS Combine External and Inline"
msgstr ""

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr ""

#: src/lang.cls.php:118
msgid "HTML Lazy Load Selectors"
msgstr ""

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:148
msgid "Load CSS Asynchronously"
msgstr ""

#: src/lang.cls.php:120
msgid "CCSS Per URL"
msgstr ""

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr ""

#: src/lang.cls.php:122
msgid "Font Display Optimization"
msgstr ""

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr ""

#: src/lang.cls.php:124
msgid "Localize Resources"
msgstr ""

#: src/lang.cls.php:125
msgid "Localization Files"
msgstr ""

#: src/lang.cls.php:126
msgid "DNS Prefetch"
msgstr ""

#: src/lang.cls.php:127
msgid "DNS Prefetch Control"
msgstr ""

#: src/lang.cls.php:128
msgid "CSS Excludes"
msgstr ""

#: src/lang.cls.php:129
msgid "JS Excludes"
msgstr ""

#: src/lang.cls.php:130
msgid "Remove Query Strings"
msgstr ""

#: src/lang.cls.php:131
msgid "Load Google Fonts Asynchronously"
msgstr ""

#: src/lang.cls.php:132
msgid "Remove Google Fonts"
msgstr ""

#: src/lang.cls.php:133
msgid "Critical CSS Rules"
msgstr ""

#: src/lang.cls.php:134
msgid "Separate CCSS Cache Post Types"
msgstr ""

#: src/lang.cls.php:135
msgid "Separate CCSS Cache URIs"
msgstr ""

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr ""

#: src/lang.cls.php:137
msgid "Guest Mode JS Excludes"
msgstr ""

#: src/lang.cls.php:138
msgid "Remove WordPress Emoji"
msgstr ""

#: src/lang.cls.php:139
msgid "Remove Noscript Tags"
msgstr ""

#: src/lang.cls.php:140
msgid "URI Excludes"
msgstr ""

#: src/lang.cls.php:141
msgid "Optimize for Guests Only"
msgstr ""

#: src/lang.cls.php:142
msgid "Role Excludes"
msgstr ""

#: src/lang.cls.php:145
msgid "Gravatar Cache Cron"
msgstr ""

#: src/lang.cls.php:146
msgid "Gravatar Cache TTL"
msgstr ""

#: src/lang.cls.php:148
msgid "Lazy Load Images"
msgstr ""

#: src/lang.cls.php:149
msgid "Lazy Load Image Excludes"
msgstr ""

#: src/lang.cls.php:150
msgid "Lazy Load Image Class Name Excludes"
msgstr ""

#: src/lang.cls.php:151
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr ""

#: src/lang.cls.php:152
msgid "Lazy Load Iframe Class Name Excludes"
msgstr ""

#: src/lang.cls.php:153
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr ""

#: src/lang.cls.php:154
msgid "Lazy Load URI Excludes"
msgstr ""

#: src/lang.cls.php:155
msgid "LQIP Excludes"
msgstr ""

#: src/lang.cls.php:156
msgid "Basic Image Placeholder"
msgstr ""

#: src/lang.cls.php:157
msgid "Responsive Placeholder"
msgstr ""

#: src/lang.cls.php:158
msgid "Responsive Placeholder Color"
msgstr ""

#: src/lang.cls.php:159
msgid "Responsive Placeholder SVG"
msgstr ""

#: src/lang.cls.php:160
msgid "LQIP Cloud Generator"
msgstr ""

#: src/lang.cls.php:161
msgid "LQIP Quality"
msgstr ""

#: src/lang.cls.php:162
msgid "LQIP Minimum Dimensions"
msgstr ""

#: src/lang.cls.php:164
msgid "Generate LQIP In Background"
msgstr ""

#: src/lang.cls.php:165
msgid "Lazy Load Iframes"
msgstr ""

#: src/lang.cls.php:166
msgid "Add Missing Sizes"
msgstr ""

#: src/lang.cls.php:167
msgid "Auto Request Cron"
msgstr ""

#: src/lang.cls.php:168
msgid "Auto Pull Cron"
msgstr ""

#: src/lang.cls.php:169
msgid "Optimize Original Images"
msgstr ""

#: src/lang.cls.php:170
msgid "Remove Original Backups"
msgstr ""

#: src/lang.cls.php:171
msgid "Create WebP Versions"
msgstr ""

#: src/lang.cls.php:172
msgid "Optimize Losslessly"
msgstr ""

#: src/lang.cls.php:173
msgid "Preserve EXIF/XMP data"
msgstr ""

#: src/lang.cls.php:174
msgid "WebP Attribute To Replace"
msgstr ""

#: src/lang.cls.php:175
msgid "WebP For Extra srcset"
msgstr ""

#: src/lang.cls.php:176
msgid "WordPress Image Quality Control"
msgstr ""

#: src/lang.cls.php:177 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr ""

#: src/lang.cls.php:178
msgid "Cache Admin Bar"
msgstr ""

#: src/lang.cls.php:179
msgid "Cache Comment Form"
msgstr ""

#: src/lang.cls.php:180
msgid "ESI Nonces"
msgstr ""

#: src/lang.cls.php:181 tpl/page_optm/settings_css.tpl.php:110
#: tpl/page_optm/settings_css.tpl.php:220
msgid "Vary Group"
msgstr ""

#: src/lang.cls.php:182
msgid "Purge All Hooks"
msgstr ""

#: src/lang.cls.php:183
msgid "Improve HTTP/HTTPS Compatibility"
msgstr ""

#: src/lang.cls.php:184
msgid "Instant Click"
msgstr ""

#: src/lang.cls.php:185
msgid "Do Not Cache Cookies"
msgstr ""

#: src/lang.cls.php:186
msgid "Do Not Cache User Agents"
msgstr ""

#: src/lang.cls.php:187
msgid "Login Cookie"
msgstr ""

#: src/lang.cls.php:188
msgid "Image WebP Replacement"
msgstr ""

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr ""

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr ""

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr ""

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr ""

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr ""

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr ""

#: src/lang.cls.php:200
msgid "Include Images"
msgstr ""

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr ""

#: src/lang.cls.php:202
msgid "Include JS"
msgstr ""

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr ""

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr ""

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr ""

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr ""

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr ""

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr ""

#: src/lang.cls.php:211
msgid "Delay"
msgstr ""

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr ""

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr ""

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr ""

#: src/lang.cls.php:215
msgid "Threads"
msgstr ""

#: src/lang.cls.php:216
msgid "Timeout"
msgstr ""

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr ""

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr ""

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr ""

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr ""

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr ""

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr ""

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr ""

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr ""

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr ""

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr ""

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr ""

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr ""

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr ""

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr ""

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr ""

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr ""

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr ""

#: src/media.cls.php:192
msgid "LiteSpeed Optimization"
msgstr ""

#: src/media.cls.php:242 src/media.cls.php:267 src/media.cls.php:296
#: src/media.cls.php:320
msgid "(optm)"
msgstr ""

#: src/media.cls.php:243
msgid "Currently using optimized version of file."
msgstr ""

#: src/media.cls.php:243 src/media.cls.php:297
msgid "Click to switch to original (unoptimized) version."
msgstr ""

#: src/media.cls.php:247 src/media.cls.php:301
msgid "(non-optm)"
msgstr ""

#: src/media.cls.php:248
msgid "Currently using original (unoptimized) version of file."
msgstr ""

#: src/media.cls.php:248 src/media.cls.php:302
msgid "Click to switch to optimized version."
msgstr ""

#: src/media.cls.php:252
msgid "Original file reduced by %1$s (%2$s)"
msgstr ""

#: src/media.cls.php:258
msgid "Orig saved %s"
msgstr ""

#: src/media.cls.php:266 src/media.cls.php:319
msgid "Using optimized version of file. "
msgstr ""

#: src/media.cls.php:266
msgid "No backup of original file exists."
msgstr ""

#: src/media.cls.php:275
msgid "Congratulation! Your file was already optimized"
msgstr ""

#: src/media.cls.php:278
msgid "Orig %s"
msgstr ""

#: src/media.cls.php:278
msgid "(no savings)"
msgstr ""

#: src/media.cls.php:281
msgid "Orig"
msgstr ""

#: src/media.cls.php:297
msgid "Currently using optimized version of WebP file."
msgstr ""

#: src/media.cls.php:302
msgid "Currently using original (unoptimized) version of WebP file."
msgstr ""

#: src/media.cls.php:306
msgid "WebP file reduced by %1$s (%2$s)"
msgstr ""

#: src/media.cls.php:311
msgid "WebP saved %s"
msgstr ""

#: src/media.cls.php:319
msgid "No backup of unoptimized WebP file exists."
msgstr ""

#: src/media.cls.php:325
msgid "WebP"
msgstr ""

#: src/media.cls.php:335
msgid "Restore from backup"
msgstr ""

#: src/placeholder.cls.php:80 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr ""

#: src/placeholder.cls.php:138
msgid "LQIP image preview for size %s"
msgstr ""

#: src/purge.cls.php:192
msgid "Purged all caches successfully."
msgstr ""

#: src/purge.cls.php:211
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr ""

#: src/purge.cls.php:230
msgid "Cleaned all Critical CSS files."
msgstr ""

#: src/purge.cls.php:249
msgid "Cleaned all Unique CSS files."
msgstr ""

#: src/purge.cls.php:283
msgid "Cleaned all LQIP files."
msgstr ""

#: src/purge.cls.php:300
msgid "Cleaned all Gravatar files."
msgstr ""

#: src/purge.cls.php:317
msgid "Cleaned all localized resource entries."
msgstr ""

#: src/purge.cls.php:351
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr ""

#: src/purge.cls.php:367
msgid "Opcode cache is not enabled."
msgstr ""

#: src/purge.cls.php:379
msgid "Reset the entire opcode cache successfully."
msgstr ""

#: src/purge.cls.php:407
msgid "Object cache is not enabled."
msgstr ""

#: src/purge.cls.php:420
msgid "Purge all object caches successfully."
msgstr ""

#: src/purge.cls.php:613
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr ""

#: src/purge.cls.php:626
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr ""

#: src/purge.cls.php:645
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr ""

#: src/purge.cls.php:672
msgid "Purge category %s"
msgstr ""

#: src/purge.cls.php:699
msgid "Purge tag %s"
msgstr ""

#: src/purge.cls.php:730
msgid "Purge url %s"
msgstr ""

#: src/task.cls.php:120
msgid "Every Minute"
msgstr ""

#: src/task.cls.php:139
msgid "LiteSpeed Crawler Cron"
msgstr ""

#: src/utility.cls.php:249
msgid "right now"
msgstr ""

#: src/utility.cls.php:249
msgid "just now"
msgstr ""

#: src/utility.cls.php:252
msgid " %s ago"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:24
msgid ""
"By default, the My Account, Checkout, and Cart pages are automatically "
"excluded from caching. Misconfiguration of page associations in WooCommerce "
"settings may cause some pages to be erroneously excluded."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:31
msgid "Use ESI for Cart"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:36
msgid ""
"When the option is ON, cart information will be implemented as ESI blocks. "
"NOTE: To make it work, you need to turn on %1$s under ESI settings."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:51
msgid ""
"Always purge both product and categories on changes to the quantity or stock "
"status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:64
msgid ""
"Determines how changes in product quantity and product stock status affect "
"product pages and their associated category pages."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:77
msgid ""
"Checking this option will force the shop page to use the front page TTL "
"setting."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:78
msgid ""
"For example, if the homepage for the site is located at %1$s, the shop page "
"may be located at %2$s."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr ""

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr ""

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr ""

#. #-#-#-#-#  litespeed-cache.pot (LiteSpeed Cache 4.5)  #-#-#-#-#
#. Plugin Name of the plugin/theme
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr ""

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr ""

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr ""

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:60
msgid "Upgrade"
msgstr ""

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr ""

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr ""

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr ""

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr ""

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr ""

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr ""

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr ""

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr ""

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr ""

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr ""

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr ""

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr ""

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr ""

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr ""

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr ""

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr ""

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr ""

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr ""

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr ""

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr ""

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:142
msgid "Purge"
msgstr ""

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr ""

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr ""

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr ""

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr ""

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr ""

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr ""

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr ""

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr ""

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr ""

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:17
msgid ""
"Enabling LiteSpeed Cache for WordPress here enables the cache for the "
"network."
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:18
msgid ""
"It is <b>STRONGLY</b> recommend that the compatibility with other plugins on "
"a single/few sites is tested first."
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:19
msgid ""
"This is to ensure compatibility prior to enabling the cache for all sites."
msgstr ""

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr ""

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:32
msgid ""
"Enable this option if you are using both HTTP and HTTPS in the same domain "
"and are noticing cache irregularities."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:46
msgid ""
"When a visitor hovers over a page link, preload that page. This will speed "
"up the visit to that link."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:50
msgid ""
"This will generate extra requests to the server, which will increase server "
"load."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:27
msgid ""
"When disabling the cache, all cached entries for this site will be purged."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:34
msgid ""
"With QUIC.cloud CDN enabled, you may still be seeing cache headers from your "
"local server."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:61
msgid ""
"Privately cache commenters that have pending comments. Disabling this option "
"will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:122
msgid ""
"Paths containing these strings will be cached regardless of no-cacheable "
"settings."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid ""
"To define a custom TTL for a URI, add a space followed by the TTL value to "
"the end of the URI."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:139
msgid ""
"Paths containing these strings will be forced to public cached regardless of "
"no-cacheable settings."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:12
msgid ""
"With ESI (Edge Side Includes), pages may be served from cache for logged-in "
"users."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:13
msgid ""
"ESI allows you to designate parts of your dynamic page as separate fragments "
"that are then assembled together to make the whole page. In other words, ESI "
"lets you “punch holes” in a page, and then fill those holes with content "
"that may be cached privately, cached publicly with its own TTL, or not "
"cached at all."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:165
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:36
msgid ""
"These options are only available with LiteSpeed Enterprise Web Server or "
"QUIC.cloud CDN."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:49
msgid ""
"Turn ON to cache public pages for logged in users, and serve the Admin Bar "
"and Comment Form via ESI blocks. These two blocks will be uncached unless "
"enabled below."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:92
msgid ""
"The list will be merged with the predefined nonces in your local data file."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:166
#: tpl/page_optm/settings_tuning.tpl.php:187
msgid "Filter %s is supported."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:104
msgid ""
"An optional second parameter may be used to specify cache control. Use a "
"space to separate"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid ""
"Wildcard %1$s supported (match zero or more characters). For example, to "
"match %2$s and %3$s, use %4$s."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:135
msgid ""
"If your site contains public content that certain user roles can see but "
"other roles cannot, you can specify a Vary Group for those user roles. For "
"example, specifying an administrator vary group allows there to be a "
"separate publicly-cached page tailored to administrators (with “edit” links, "
"etc), while all other user roles see the default public page."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:63
msgid ""
"If the category name is not found, the category will be removed from the "
"list on save."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:96
msgid ""
"If the tag slug is not found, the tag will be removed from the list on save."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:52
msgid ""
"Select \"All\" if there are dynamic widgets linked to posts on pages other "
"than the front or home pages."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:54
msgid ""
"Select only the archive types that are currently used, the others can be "
"left unchecked."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:72
msgid ""
"Select which pages will be automatically purged when posts are published/"
"updated."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:85
msgid ""
"If ON, the stale copy of a cached page will be shown to visitors until a new "
"cache copy is available. Reduces the server load for following visits. If "
"OFF, the page will be dynamically generated while visitors wait."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:91
msgid ""
"By design, this option may serve stale content. Do not enable this option, "
"if that is not OK with you."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:105
msgid ""
"The URLs here (one per line) will be purged automatically at the time set in "
"the option \"%s\"."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:115
msgid ""
"For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:105
msgid ""
"Specify an HTTP status code and the number of seconds to cache that page, "
"separated by a space."
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid ""
"Browser caching stores static files locally in the user's browser. Turn on "
"this setting to reduce repeated requests for static files."
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid ""
"You can turn on browser caching in server admin too. <a %s>Learn more about "
"LiteSpeed browser cache settings</a>."
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid ""
"The amount of time, in seconds, that files will be stored in browser cache "
"before expiring."
msgstr ""

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr ""

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr ""

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr ""

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid ""
"Caching this resource may improve server performance by avoiding unnecessary "
"PHP calls."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Serve a separate cache copy for mobile visitors."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Learn more about when this is needed"
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr ""

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr ""

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid ""
"Caching these pages may improve server performance by avoiding unnecessary "
"PHP calls."
msgstr ""

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr ""

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid ""
"The server will determine if the user is logged in based on the existence of "
"this cookie."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid ""
"This setting is useful for those that have multiple web applications for the "
"same domain."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid ""
"If every web application uses the same cookie, the server may confuse "
"whether a user is logged in or not."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid ""
"The cache needs to distinguish who is logged into which WordPress site in "
"order to cache correctly."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid ""
"WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use external object cache functionality."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr ""

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid ""
"When enabled, the cache will automatically purge when any plugin, theme or "
"the WordPress core is upgraded."
msgstr ""

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr ""

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr ""

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr ""

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr ""

#: tpl/cdn/manage.tpl.php:23
msgid ""
"To enable the following functionality, turn ON Cloudflare API in CDN "
"Settings."
msgstr ""

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr ""

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr ""

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr ""

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr ""

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr ""

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr ""

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr ""

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr ""

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr ""

#: tpl/cdn/manage.tpl.php:64
msgid ""
"Temporarily bypass Cloudflare cache. This allows changes to the origin "
"server to be seen in realtime."
msgstr ""

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr ""

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr ""

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr ""

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr ""

#: tpl/cdn/settings.tpl.php:49
msgid ""
"Turn this setting %1$s if you are using a traditional Content Delivery "
"Network (CDN) or a subdomain for static content with QUIC.cloud CDN."
msgstr ""

#: tpl/cdn/settings.tpl.php:54
msgid ""
"NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are "
"only using QUIC.cloud or Cloudflare, leave this setting %1$s."
msgstr ""

#: tpl/cdn/settings.tpl.php:79
msgid ""
"To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr ""

#: tpl/cdn/settings.tpl.php:84
msgid ""
"Serve all image files through the CDN. This will affect all attachments, "
"HTML %s tags, and CSS %s attributes."
msgstr ""

#: tpl/cdn/settings.tpl.php:88
msgid ""
"Serve all CSS files through the CDN. This will affect all enqueued WP CSS "
"files."
msgstr ""

#: tpl/cdn/settings.tpl.php:92
msgid ""
"Serve all JavaScript files through the CDN. This will affect all enqueued WP "
"JavaScript files."
msgstr ""

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr ""

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr ""

#: tpl/cdn/settings.tpl.php:102
msgid ""
"If you turn any of the above settings OFF, please remove the related file "
"types from the %s box."
msgstr ""

#: tpl/cdn/settings.tpl.php:126
msgid ""
"Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr ""

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr ""

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr ""

#: tpl/cdn/settings.tpl.php:142
msgid ""
"Site URL to be served through the CDN. Beginning with %1$s. For example, "
"%2$s."
msgstr ""

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr ""

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr ""

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr ""

#: tpl/cdn/settings.tpl.php:194
msgid "This can be managed from %1$s%2$s tab."
msgstr ""

#: tpl/cdn/settings.tpl.php:198
msgid "Global API Key / API Token"
msgstr ""

#: tpl/cdn/settings.tpl.php:202
msgid "Your API key / token is used to access %s APIs."
msgstr ""

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr ""

#: tpl/cdn/settings.tpl.php:204
msgid ""
"Recommended to generate the token from Cloudflare API token template "
"\"WordPress\"."
msgstr ""

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr ""

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr ""

#: tpl/cdn/settings.tpl.php:214
msgid "Optional when API token used."
msgstr ""

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr ""

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr ""

#: tpl/cdn/settings.tpl.php:228
msgid ""
"Once saved, it will be matched with the current list and completed "
"automatically."
msgstr ""

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blocklist items?"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blocklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blocklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:224
msgid "URL"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blocklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not blocklisted"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:56 tpl/crawler/map.tpl.php:69
msgid "Blocklisted due to not cacheable"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:57 tpl/crawler/map.tpl.php:70
#: tpl/crawler/summary.tpl.php:160 tpl/crawler/summary.tpl.php:184
msgid "Blocklisted"
msgstr ""

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr ""

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr ""

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:42
msgid "General Settings"
msgstr ""

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr ""

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr ""

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr ""

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr ""

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr ""

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr ""

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr ""

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr ""

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:529
msgid "Crawler Status"
msgstr ""

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blocklist"
msgstr ""

#: tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr ""

#: tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:35
msgid ""
"Specify time in microseconds for the delay between requests during a crawl."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:91
msgid ""
"Specify how long in seconds before the crawler should initiate crawling the "
"entire sitemap again."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:135
msgid ""
"The maximum average server load allowed while crawling. The number of "
"crawler threads in use will be actively reduced until average server load "
"falls under this limit. If this cannot be achieved with a single thread, the "
"current crawler run will be terminated."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr ""

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr ""

#: tpl/crawler/settings-simulation.tpl.php:23
msgid ""
"To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr ""

#: tpl/crawler/settings-simulation.tpl.php:49
msgid ""
"To crawl for a particular cookie, enter the cookie name, and the values you "
"wish to crawl for. Values should be one per line. There will be one crawler "
"created per cookie value, per simulated role."
msgstr ""

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid ""
"The crawler will use your XML sitemap or sitemap index. Enter the full URL "
"to your sitemap here."
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid ""
"The crawler will parse the sitemap and save into the database before "
"crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid ""
"If you are using multiple domains for one site, and have multiple domains in "
"the sitemap, please keep this option OFF so the crawler knows to crawl every "
"domain."
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr ""

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr ""

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr ""

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr ""

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr ""

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr ""

#: tpl/crawler/summary.tpl.php:49
msgid ""
"The crawler feature is not enabled on the LiteSpeed server. Please consult "
"your server admin or hosting provider."
msgstr ""

#: tpl/crawler/summary.tpl.php:50
msgid ""
"See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr ""

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr ""

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr ""

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr ""

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr ""

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr ""

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr ""

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr ""

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr ""

#: tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr ""

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr ""

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr ""

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr ""

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr ""

#: tpl/crawler/summary.tpl.php:125
msgid "Activate"
msgstr ""

#: tpl/crawler/summary.tpl.php:126
msgid "Running"
msgstr ""

#: tpl/crawler/summary.tpl.php:157
msgid "Waiting"
msgstr ""

#: tpl/crawler/summary.tpl.php:158
msgid "Hit"
msgstr ""

#: tpl/crawler/summary.tpl.php:159
msgid "Miss"
msgstr ""

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr ""

#: tpl/crawler/summary.tpl.php:181
msgid "Waiting to be Crawled"
msgstr ""

#: tpl/crawler/summary.tpl.php:182
msgid "Already Cached"
msgstr ""

#: tpl/crawler/summary.tpl.php:183
msgid "Successfully Crawled"
msgstr ""

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr ""

#: tpl/crawler/summary.tpl.php:189
msgid "Crawlers cannot run concurrently."
msgstr ""

#: tpl/crawler/summary.tpl.php:190
msgid ""
"&nbsp;If both the cron and a manual run start at similar times, the first to "
"be started will take precedence."
msgstr ""

#: tpl/crawler/summary.tpl.php:191
msgid ""
"Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn "
"how to create the system cron task."
msgstr ""

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr ""

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr ""

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr ""

#: tpl/dash/dashboard.tpl.php:42
msgid "QUIC.cloud Service Usage Statistics"
msgstr ""

#: tpl/dash/dashboard.tpl.php:45
msgid "Sync data from Cloud"
msgstr ""

#: tpl/dash/dashboard.tpl.php:57 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr ""

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:497
msgid "Low Quality Image Placeholder"
msgstr ""

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr ""

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:131 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr ""

#: tpl/dash/dashboard.tpl.php:150 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:151 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr ""

#: tpl/dash/dashboard.tpl.php:160
msgid "Remaining Daily Quota"
msgstr ""

#: tpl/dash/dashboard.tpl.php:169
msgid "Go to QUIC.cloud dashboard"
msgstr ""

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh page load time"
msgstr ""

#: tpl/dash/dashboard.tpl.php:222 tpl/dash/dashboard.tpl.php:291
#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:489
#: tpl/dash/dashboard.tpl.php:521
msgid "Last requested"
msgstr ""

#: tpl/dash/dashboard.tpl.php:227
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr ""

#: tpl/dash/dashboard.tpl.php:227 tpl/img_optm/summary.tpl.php:57
#: tpl/page_optm/settings_css.tpl.php:91 tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid ""
"Are you sure you want to redetect the closest cloud server for this service?"
msgstr ""

#: tpl/dash/dashboard.tpl.php:238
msgid "Refresh page score"
msgstr ""

#: tpl/dash/dashboard.tpl.php:299 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr ""

#: tpl/dash/dashboard.tpl.php:300 tpl/dash/dashboard.tpl.php:389
#: tpl/dash/dashboard.tpl.php:432 tpl/dash/dashboard.tpl.php:465
#: tpl/dash/dashboard.tpl.php:498 tpl/dash/dashboard.tpl.php:530
msgid "More"
msgstr ""

#: tpl/dash/dashboard.tpl.php:310
msgid "Image Groups Prepared"
msgstr ""

#: tpl/dash/dashboard.tpl.php:325
msgid "Images Requested"
msgstr ""

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr ""

#: tpl/dash/dashboard.tpl.php:360
msgid "Last Pull"
msgstr ""

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Status"
msgstr ""

#: tpl/dash/dashboard.tpl.php:394
msgid "Public Cache"
msgstr ""

#: tpl/dash/dashboard.tpl.php:395
msgid "Private Cache"
msgstr ""

#: tpl/dash/dashboard.tpl.php:417
msgid "Cache Stats"
msgstr ""

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr ""

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:82
#: tpl/page_optm/settings_css.tpl.php:192
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr ""

#: tpl/dash/dashboard.tpl.php:440 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:506
msgid "Time to execute previous request"
msgstr ""

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:511
msgid "Requests in queue"
msgstr ""

#: tpl/dash/dashboard.tpl.php:448 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513
msgid "Force cron"
msgstr ""

#: tpl/dash/dashboard.tpl.php:464 tpl/toolbox/purge.tpl.php:79
msgid "Unique CSS"
msgstr ""

#: tpl/dash/dashboard.tpl.php:534
msgid "Crawler(s)"
msgstr ""

#: tpl/dash/dashboard.tpl.php:537
msgid "Currently active crawler"
msgstr ""

#: tpl/dash/dashboard.tpl.php:563
msgid "<b>Last crawled:</b> %d item(s)"
msgstr ""

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr ""

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr ""

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr ""

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr ""

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr ""

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr ""

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr ""

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr ""

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr ""

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr ""

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr ""

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr ""

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr ""

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr ""

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr ""

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr ""

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr ""

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr ""

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr ""

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr ""

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr ""

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr ""

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr ""

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr ""

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr ""

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr ""

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr ""

#: tpl/db_optm/settings.tpl.php:23
msgid ""
"Specify the number of most recent revisions to keep when cleaning revisions."
msgstr ""

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr ""

#: tpl/db_optm/settings.tpl.php:37
msgid ""
"Revisions newer than this many days will be kept when cleaning revisions."
msgstr ""

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr ""

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr ""

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr ""

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr ""

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr ""

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr ""

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr ""

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr ""

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr ""

#: tpl/general/network_settings.tpl.php:24
msgid ""
"Check this option to use the primary site's configuration for all subsites."
msgstr ""

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr ""

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr ""

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr ""

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr ""

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr ""

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr ""

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr ""

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr ""

#: tpl/general/settings.tpl.php:73
msgid "Visit My Dashboard on QUIC.cloud"
msgstr ""

#: tpl/general/settings.tpl.php:75 tpl/general/settings.tpl.php:77
#: tpl/general/settings.tpl.php:106
msgid "Link to QUIC.cloud"
msgstr ""

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr ""

#: tpl/general/settings.tpl.php:83
msgid ""
"There was a problem with retrieving your Domain Key. Please click the %s "
"button to retry."
msgstr ""

#: tpl/general/settings.tpl.php:84
msgid ""
"There are two reasons why we might not be able to communicate with your "
"domain:"
msgstr ""

#: tpl/general/settings.tpl.php:85
msgid "The POST callback to %s failed."
msgstr ""

#: tpl/general/settings.tpl.php:86
msgid "Our %s was not allowlisted."
msgstr ""

#: tpl/general/settings.tpl.php:87
msgid ""
"Please verify that your other plugins are not blocking REST API calls, "
"allowlist our server IPs, or contact your server admin for assistance."
msgstr ""

#: tpl/general/settings.tpl.php:94
msgid ""
"Request submitted. Please wait, then refresh the page to see approval "
"notification."
msgstr ""

#: tpl/general/settings.tpl.php:100
msgid "Warning"
msgstr ""

#: tpl/general/settings.tpl.php:101
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr ""

#: tpl/general/settings.tpl.php:106
msgid ""
"You must click the %s button if you wish to associate this site with a QUIC."
"cloud account."
msgstr ""

#: tpl/general/settings.tpl.php:107
msgid "Benefits of linking to a QUIC.cloud account"
msgstr ""

#: tpl/general/settings.tpl.php:112
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr ""

#: tpl/general/settings.tpl.php:115
msgid "Current Cloud Nodes in Service"
msgstr ""

#: tpl/general/settings.tpl.php:116
msgid "Click to clear all nodes for further redetection."
msgstr ""

#: tpl/general/settings.tpl.php:116
msgid "Are you sure you want to clear all cloud nodes?"
msgstr ""

#: tpl/general/settings.tpl.php:128
msgid "No cloud services currently in use"
msgstr ""

#: tpl/general/settings.tpl.php:150
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr ""

#: tpl/general/settings.tpl.php:151
msgid "Please read all warnings before enabling this option."
msgstr ""

#: tpl/general/settings.tpl.php:165
msgid "Your %1s quota on %2s will still be in use."
msgstr ""

#: tpl/general/settings.tpl.php:172
msgid "This option only works when turning %s on."
msgstr ""

#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:190
msgid "You need to turn %s on to get maximum result."
msgstr ""

#: tpl/general/settings.tpl.php:184
msgid ""
"You need to turn %s on and finish all WebP generation to get maximum result."
msgstr ""

#: tpl/general/settings.tpl.php:205
msgid ""
"Enter this site's IP address to allow cloud services directly call IP "
"instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr ""

#: tpl/general/settings.tpl.php:206
msgid "Your server IP"
msgstr ""

#: tpl/general/settings.tpl.php:206
msgid "Check my public IP from"
msgstr ""

#: tpl/general/settings.tpl.php:207
msgid ""
"the auto-detected IP may not be accurate if you have an additional outgoing "
"IP set, or you have multiple IPs configured on your server."
msgstr ""

#: tpl/general/settings.tpl.php:208
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr ""

#: tpl/general/settings.tpl.php:223
msgid ""
"Turn this option ON to show latest news automatically, including hotfixes, "
"new releases, available beta versions, and promotions."
msgstr ""

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid ""
"Turn this option ON to have LiteSpeed Cache updated automatically, whenever "
"a new version is released. If OFF, update manually as usual."
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:16
msgid ""
"Guest Mode provides an always cacheable landing page for an automated "
"guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:17
msgid ""
"This option can help to correct the cache vary for certain advanced mobile "
"or tablet visitors."
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:24
msgid "Guest Mode testing result"
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:25
msgid "Testing"
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:32
msgid "Guest Mode passed testing."
msgstr ""

#: tpl/general/settings_inc.guest.tpl.php:35
#: tpl/general/settings_inc.guest.tpl.php:38
msgid "Guest Mode failed to test."
msgstr ""

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr ""

#: tpl/general/settings_tuning.tpl.php:28
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr ""

#: tpl/general/settings_tuning.tpl.php:50
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr ""

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr ""

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr ""

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid ""
"Significantly improve load time by replacing images with their optimized %s "
"versions."
msgstr ""

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr ""

#: tpl/img_optm/settings.tpl.php:36
msgid ""
"Disabling this will stop the cron job responsible for pulling optimized "
"images back from QUIC.cloud Image Server."
msgstr ""

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr ""

#: tpl/img_optm/settings.tpl.php:62
msgid ""
"Automatically remove the original image backups after fetching optimized "
"images."
msgstr ""

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr ""

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr ""

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr ""

#: tpl/img_optm/settings.tpl.php:82
msgid ""
"This can improve quality but may result in larger images than lossy "
"compression will."
msgstr ""

#: tpl/img_optm/settings.tpl.php:95
msgid ""
"Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr ""

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr ""

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr ""

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr ""

#: tpl/img_optm/settings.tpl.php:155
msgid ""
"Enable replacement of WebP in %s elements that were generated outside of "
"WordPress logic."
msgstr ""

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr ""

#: tpl/img_optm/summary.tpl.php:57 tpl/page_optm/settings_css.tpl.php:91
#: tpl/page_optm/settings_css.tpl.php:201
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr ""

#: tpl/img_optm/summary.tpl.php:61
msgid "Optimize images with our QUIC.cloud server"
msgstr ""

#: tpl/img_optm/summary.tpl.php:66
msgid "You can request a maximum of %s images at once."
msgstr ""

#: tpl/img_optm/summary.tpl.php:71
msgid ""
"To make sure our server can communicate with your server without any issues "
"and everything works fine, for the few first requests the number of images "
"allowed in a single request is limited."
msgstr ""

#: tpl/img_optm/summary.tpl.php:72
msgid "Current limit is"
msgstr ""

#: tpl/img_optm/summary.tpl.php:84
msgid "Gather Image Data"
msgstr ""

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr ""

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr ""

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr ""

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr ""

#: tpl/img_optm/summary.tpl.php:100
msgid "Optimization Status"
msgstr ""

#: tpl/img_optm/summary.tpl.php:117
msgid ""
"After the QUIC.cloud Image Optimization server finishes optimization, it "
"will notify your site to pull the optimized images."
msgstr ""

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr ""

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr ""

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr ""

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr ""

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr ""

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr ""

#: tpl/img_optm/summary.tpl.php:215
msgid "Calculate Backups Disk Space"
msgstr ""

#: tpl/img_optm/summary.tpl.php:222
msgid "Image Thumbnail Group Sizes"
msgstr ""

#: tpl/img_optm/summary.tpl.php:233
msgid "Delete all backups of the original images"
msgstr ""

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr ""

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr ""

#: tpl/img_optm/summary.tpl.php:255
msgid "Are you sure you want to remove all image backups?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr ""

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr ""

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr ""

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:282 tpl/img_optm/summary.tpl.php:309
msgid "What is an image group?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:287
msgid "Images not yet gathered"
msgstr ""

#: tpl/img_optm/summary.tpl.php:290
msgid "Congratulations, all gathered!"
msgstr ""

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr ""

#: tpl/img_optm/summary.tpl.php:317
msgid "Congratulations, all requested!"
msgstr ""

#: tpl/img_optm/summary.tpl.php:324
msgid ""
"Scan for any new unoptimized image thumbnail sizes and resend necessary "
"image optimization requests."
msgstr ""

#: tpl/img_optm/summary.tpl.php:325
msgid "Rescan New Thumbnails"
msgstr ""

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr ""

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr ""

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr ""

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr ""

#: tpl/img_optm/summary.tpl.php:352
msgid "Optimization Tools"
msgstr ""

#: tpl/img_optm/summary.tpl.php:355
msgid ""
"You can quickly switch between using original (unoptimized versions) and "
"optimized image files. It will affect all images on your website, both "
"regular and webp versions if available."
msgstr ""

#: tpl/img_optm/summary.tpl.php:360
msgid "Use original images (unoptimized) on your site"
msgstr ""

#: tpl/img_optm/summary.tpl.php:361
msgid "Use Original Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:364
msgid "Switch back to using optimized images on your site"
msgstr ""

#: tpl/img_optm/summary.tpl.php:365
msgid "Use Optimized Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:373
msgid "Are you sure to destroy all optimized images?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:374
msgid "Destroy All Optimization Data"
msgstr ""

#: tpl/img_optm/summary.tpl.php:378
msgid ""
"Remove all previous image optimization requests/results, revert completed "
"optimizations, and delete all optimization files."
msgstr ""

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr ""

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr ""

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr ""

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr ""

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr ""

#: tpl/inc/check_cache_disabled.php:10
msgid ""
"To use the caching functions you must have a LiteSpeed web server or be "
"using QUIC.cloud CDN."
msgstr ""

#: tpl/inc/check_cache_disabled.php:15
msgid ""
"Please enable the LSCache Module at the server level, or ask your hosting "
"provider."
msgstr ""

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr ""

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr ""

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr ""

#: tpl/inc/check_if_network_disable_all.php:21
msgid ""
"The following options are selected, but are not editable in this settings "
"page."
msgstr ""

#: tpl/inc/in_upgrading.php:5
msgid ""
"LiteSpeed cache plugin upgraded. Please refresh the page to complete the "
"configuration data upgrade."
msgstr ""

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr ""

#: tpl/inc/show_display_installed.php:6
msgid ""
"This message indicates that the plugin was installed by the server admin."
msgstr ""

#: tpl/inc/show_display_installed.php:7
msgid ""
"The LiteSpeed Cache plugin is used to cache pages - a simple way to improve "
"the performance of the site."
msgstr ""

#: tpl/inc/show_display_installed.php:8
msgid ""
"However, there is no way of knowing all the possible customizations that "
"were implemented."
msgstr ""

#: tpl/inc/show_display_installed.php:9
msgid ""
"For that reason, please test the site to make sure everything still "
"functions properly."
msgstr ""

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr ""

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr ""

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr ""

#: tpl/inc/show_display_installed.php:16
msgid ""
"If there are any questions, the team is always happy to answer any questions "
"on the <a %s>support forum</a>."
msgstr ""

#: tpl/inc/show_display_installed.php:19
msgid ""
"If you would rather not move at litespeed, you can deactivate this plugin."
msgstr ""

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr ""

#: tpl/inc/show_error_cookie.php:6
msgid ""
"If the login cookie was recently changed in the settings, please log out and "
"back in."
msgstr ""

#: tpl/inc/show_error_cookie.php:7
msgid ""
"If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr ""

#: tpl/inc/show_error_cookie.php:11
msgid ""
"If using OpenLiteSpeed, the server must be restarted once for the changes to "
"take effect."
msgstr ""

#: tpl/inc/show_rule_conflict.php:6
msgid ""
"Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors "
"to see old versions of pages due to the browser caching HTML pages. If you "
"are sure that HTML pages are not being browser cached, this message can be "
"dismissed. (<a %3$s>Learn More</a>)"
msgstr ""

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:16
msgid "CSS Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr ""

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr ""

#: tpl/page_optm/entry.tpl.php:19
msgid "LiteSpeed Cache Page Optimization"
msgstr ""

#: tpl/page_optm/entry.tpl.php:31
msgid ""
"Please test thoroughly when enabling any option in this list. After changing "
"Minify/Combine settings, please do a Purge All action."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:30
msgid "Minify CSS files and inline CSS code."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:43
msgid "Combine CSS files and inline CSS code."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:64
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:65
msgid "This will drop the unused CSS on each page from the combined file."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:67
msgid ""
"Automatic generation of unique CSS is in the background via a cron-based "
"queue."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Filter %s available for UCSS per page type generation."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:72
msgid "This option is bypassed because %1$s option is %2$s."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:85 tpl/page_optm/settings_css.tpl.php:195
msgid "Last requested cost"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:97 tpl/page_optm/settings_css.tpl.php:207
msgid "URL list in %s queue waiting for cron"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:118
#: tpl/page_optm/settings_css.tpl.php:228
msgid "Run %s Queue Manually"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:134
msgid ""
"Inline UCSS to reduce the extra CSS file loading. This option will not be "
"automatically turned on for %1$s pages. To use it on %1$s pages, please set "
"it to ON."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:136
msgid "This option will automatically bypass %s option."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:150
msgid ""
"Include external CSS and inline CSS in combined file when %1$s is also "
"enabled. This option helps maintain the priorities of CSS, which should "
"minimize potential errors caused by CSS Combine."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:169
msgid "Optimize CSS delivery."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:170
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
msgid ""
"This can improve your speed score in services like Pingdom, GTmetrix and "
"PageSpeed."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:171
msgid ""
"Use QUIC.cloud online service to generate critical CSS and load remaining "
"CSS asynchronously."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:173
msgid ""
"Automatic generation of critical CSS is in the background via a cron-based "
"queue."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:174
msgid ""
"When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:177
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:182
msgid "This option is bypassed due to %s option."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:243
msgid ""
"Disable this option to generate CCSS per Post Type instead of per page. This "
"can save significant CCSS quota, however it may result in incorrect CSS "
"styling if your site uses a page builder."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:256
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:267
msgid "Default"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:269
msgid ""
"Set this to append %1$s to all %2$s rules before caching CSS to specify how "
"fonts should be displayed while being downloaded."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:270
msgid "%s is recommended."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:270
msgid "Swap"
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:49
msgid ""
"Automatically enable DNS prefetching for all URLs in the document, including "
"images, CSS, JavaScript, and so forth."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:64
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:79
msgid "Remove query strings from internal static resources."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:100
msgid ""
"Use Web Font Loader library to load Google Fonts asynchronously while "
"leaving other CSS intact."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:101
msgid ""
"This will also add a preconnect to Google Fonts to establish a connection "
"earlier."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:128
msgid ""
"Stop loading WordPress.org emoji. Browser default emoji will be displayed "
"instead."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:37 tpl/page_optm/settings_js.tpl.php:70
msgid ""
"This option may result in a JS error or layout issue on frontend pages with "
"certain themes/plugins."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:38
msgid ""
"JS error can be found from the developer console of browser by right "
"clicking and choosing Inspect."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:52
msgid ""
"Include external JS and inline JS in combined file when %1$s is also "
"enabled. This option helps maintain the priorities of JS execution, which "
"should minimize potential errors caused by JS Combine."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Deferred"
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Delayed"
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:65
msgid ""
"Deferring until page is parsed or delaying till interaction can help reduce "
"resource contention and improve performance causing a lower FID (Core Web "
"Vitals metric)."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:12
msgid ""
"Failed to create Avatar table. Please follow <a %s>Table Creation guidance "
"from LiteSpeed Wiki</a> to finish setup."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:31
msgid ""
"Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:116
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:117
msgid "HTTPS sources only."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:121
msgid ""
"Comments are supported. Start a line with a %s to turn it into a comment "
"line."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:123
msgid "Non-`.js` file extensions will be ignored."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:124
#: tpl/toolbox/beta_test.tpl.php:28
msgid "Example"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:45
msgid ""
"Specify a base64 image to be used as a simple placeholder while images "
"finish loading."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:46
msgid ""
"This can be predefined in %2$s as well using constant %1$s, with this "
"setting taking priority."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:61
msgid ""
"Responsive image placeholders can help to reduce layout reshuffle when "
"images are loaded."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:62
msgid ""
"This will generate the placeholder with same dimensions as the image if it "
"has the width and height attributes."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:76
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:77
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:78
msgid "Variables %s will be replaced with the configured background color."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:92
msgid "Specify the responsive placeholder SVG color."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:106
msgid ""
"Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for "
"responsive image previews while loading."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:107
msgid "Keep this off to use plain color placeholders."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Specify the quality when generating LQIP."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:122
msgid ""
"Larger number will generate higher resolution quality placeholder, but will "
"result in larger files which will increase page size and consume more points."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:125
msgid ""
"Changes to this setting do not apply to already-generated LQIPs. To "
"regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:138
msgid "pixels"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:140
msgid ""
"LQIP requests will not be sent for images where both width and height are "
"smaller than these dimensions."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:156
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:158
msgid ""
"If set to %1$s, before the placeholder is localized, the %2$s configuration "
"will be used."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:162
msgid ""
"If set to %s this is done in the foreground, which may slow down page load."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:227
msgid ""
"Set an explicit width and height on image elements to reduce layout shifts "
"and improve CLS (a Core Web Vitals metric)."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:229
msgid "Note: this option only works when %1$s is %2$s."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:24
msgid ""
"Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:167
#: tpl/page_optm/settings_tuning.tpl.php:188
msgid "Elements with attribute %s in html code will be excluded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:83
#: tpl/page_optm/settings_tuning.tpl.php:168
msgid "Predefined list will also be combined w/ the above settings"
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid ""
"List the CSS selector that its style should be always contained in UCSS."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:74
msgid "How to choose an UCSS allowlist selector?"
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:75
msgid "Wildcard %s supported."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:79
msgid ""
"The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:97
msgid "Listed URI will not generate UCSS."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:104
msgid ""
"Use %1$s to generate one single UCSS for the pages which page type is %2$s "
"while other page types still per URL."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:105
msgid "Use %1$s to bypass UCSS for the pages which page type is %2$s."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:119
msgid ""
"List post types where each item of that type should have its own CCSS "
"generated."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid ""
"For example, if every Page on the site has different formatting, enter %s in "
"the box. Separate critical CSS files will be stored for every Page on the "
"site."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:134
msgid ""
"Separate critical CSS files will be generated for paths containing these "
"strings."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:148
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:161
msgid "Listed JS files or inline JS code will not be deferred."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:182
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:202
msgid "Prevent any optimization of listed pages."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:216
msgid ""
"Only optimize pages for guest (not logged in) visitors. If turned this OFF, "
"CSS/JS/CCSS files will be doubled by each user group."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:228
msgid "Selected roles will be excluded from all optimizations."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:23
msgid "Try GitHub Version"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:27
msgid ""
"Use this section to switch plugin versions. To beta test a GitHub commit, "
"enter the commit URL in the field below."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:32
msgid "Use latest GitHub Dev commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:34
msgid "Use latest GitHub Master commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:36 tpl/toolbox/beta_test.tpl.php:52
msgid "Use latest WordPress release version"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:36
msgid "OR"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:47
msgid ""
"Downgrade not recommended. May cause fatal error due to refactored code."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:51
msgid ""
"Press the %s button to use the most recent GitHub commit. Master is for "
"release candidate & Dev is for experimental testing."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:51
msgid "Use latest GitHub Dev/Master commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:52
msgid ""
"Press the %s button to stop beta testing and go back to the current release "
"from the WordPress Plugin Directory."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:57
msgid ""
"In order to avoid an upgrade error, you must be using %1$s or later before "
"you can upgrade to %2$s versions."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:52 tpl/toolbox/edit_htaccess.tpl.php:69
msgid "Default path is"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr ""

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr ""

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr ""

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr ""

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr ""

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr ""

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr ""

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr ""

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:18
msgid ""
"Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:24
msgid ""
"This will export all current LiteSpeed Cache settings and save them as a "
"file."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:46
msgid ""
"This will import settings from a file and override all current LiteSpeed "
"Cache settings."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:52
msgid ""
"Are you sure you want to reset all settings back to the default settings?"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr ""

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr ""

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr ""

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr ""

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr ""

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s error pages"
msgstr ""

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr ""

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr ""

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr ""

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:80
msgid "This will delete all generated unique CSS files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all localized resources"
msgstr ""

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all generated image LQIP placeholder files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:107
msgid "This will delete all cached Gravatar files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:116
msgid ""
"Purge the cache entries created by this plugin except for Critical CSS & "
"LQIP caches"
msgstr ""

#: tpl/toolbox/purge.tpl.php:125
msgid "Empty Entire Cache"
msgstr ""

#: tpl/toolbox/purge.tpl.php:126
msgid ""
"Clears all cache entries related to this site, <i>including other web "
"applications</i>."
msgstr ""

#: tpl/toolbox/purge.tpl.php:127
msgid "This action should only be used if things are cached incorrectly."
msgstr ""

#: tpl/toolbox/purge.tpl.php:131
msgid "This will clear EVERYTHING inside the cache."
msgstr ""

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr ""

#: tpl/toolbox/purge.tpl.php:133
msgid "If only the WordPress site should be purged, use Purge All."
msgstr ""

#: tpl/toolbox/purge.tpl.php:177
msgid "Purge By..."
msgstr ""

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr ""

#: tpl/toolbox/purge.tpl.php:206
msgid "Category"
msgstr ""

#: tpl/toolbox/purge.tpl.php:212
msgid "Post ID"
msgstr ""

#: tpl/toolbox/purge.tpl.php:218
msgid "Tag"
msgstr ""

#: tpl/toolbox/purge.tpl.php:230
msgid ""
"Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by post ID."
msgstr ""

#: tpl/toolbox/purge.tpl.php:239
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:244
msgid "Purge pages by relative or full URL."
msgstr ""

#: tpl/toolbox/purge.tpl.php:245
msgid "e.g. Use %s or %s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:258
msgid "Purge List"
msgstr ""

#: tpl/toolbox/report.tpl.php:31
msgid ""
"To generate a passwordless link for LiteSpeed Support Team access, you must "
"install %s."
msgstr ""

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr ""

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr ""

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr ""

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr ""

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr ""

#: tpl/toolbox/report.tpl.php:49
msgid ""
"The environment report contains detailed information about the WordPress "
"configuration."
msgstr ""

#: tpl/toolbox/report.tpl.php:51
msgid ""
"If you run into any issues, please refer to the report number in your "
"support message."
msgstr ""

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr ""

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr ""

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr ""

#: tpl/toolbox/report.tpl.php:72
msgid ""
"To grant wp-admin access to the LiteSpeed Support Team, please generate a "
"passwordless link for the current logged-in user to be sent with the report."
msgstr ""

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr ""

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr ""

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr ""

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr ""

#: tpl/toolbox/report.tpl.php:86
msgid ""
"provide more information here to assist the LiteSpeed team with debugging."
msgstr ""

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr ""

#: tpl/toolbox/report.tpl.php:97
msgid ""
"Send this report to LiteSpeed. Refer to this report number when posting in "
"the WordPress support forum."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:23
msgid ""
"This will disable LSCache and all optimization features for debug purpose."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:37
msgid ""
"To prevent filling up the disk, this setting should be OFF when everything "
"is working."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:38
msgid ""
"The Admin IP option will only output log messages on requests from admin IPs."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:52
msgid ""
"Allows listed IPs (one per line) to perform certain actions from their "
"browsers."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr ""

#. Plugin URI of the plugin/theme
msgid ""
"https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr ""

#. Description of the plugin/theme
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr ""

#. Author of the plugin/theme
msgid "LiteSpeed Technologies"
msgstr ""

#. Author URI of the plugin/theme
msgid "https://www.litespeedtech.com"
msgstr ""
PKe�4W1�Z���^litespeed-cache-es_ES.poUT	]e]eux�����\[s7v~�_��B�x'�-g��d�I�MJɦR��tcf`�4f�nJ��G?�C�oyI���;h=�!�ʦ*[[ְ���w.�߉++kW�F�Z����ک����t�.J��L3�'��WJ|���k�U��N}!t-.��n&>�]�߉��vb��>�-�k��
fk�RY�`F'�JT�P�SB:~�)�/dq-�j��R����ҧ�^|�������~��������γ�||����?���Q���_n�S��.vG�险U7�W�&hԇ���F� ���N5_���z���.1v��˺0������X7�vie����s�\���}���?~Y�Ͼ��m�U++c��o*�\X��Ӄ��hg[V����_�zڂυr~k~RE�}^�-}�i���^TO��G�h�O���r?6m�G�v��-��t��
���t�r��J׊�'J��U%�J���KU��ɽ2NH[��
>�
s���P�(n-������_k%�Ȫ�J'���z�h.�|_)�t.�ʃH��^�KEk�տj]!��W~g���;**��w�u�A�O�8���-�K�b<�_���ti�2m�>>���i�(����Z��d���F��J���W���<�#V�@���N��s���F�p�#�u#�{~6�i���bn�ʎ��//�.
���Va�+*(���րw��q#q�*pD,��W@{���:L��.�!IG��-鯌@�ڌ�1��� J��,���a����a��3���VM���MN�ZK�
��ؗ�"~����*���y�	k���<�?�l[�d,{vTBܱ�J�����wV�Z�)�����$�����x+��!q�I0���<��֧����'���-�(�z���w����˨�v#�+�*#˴�3i�2Q����o�lo
�'�����P���´��J�|�Z2oO���,>�_��Ӹ�����l�?8�6!��(���6��H��qG
̝%��nY�8��s����A"�8�Z����LY1%lRaM�r#�U�"����N3V�霾QP�'��w�d>���,���/�3B���?���#
�7�k��IW���D�eooo={�E�����*�vn�EL=�+���
m�XnO$�D9�7���4G���ײ��rpt�$U�*f����J���F��hv��u�d�F,��ں�(�r'�%<Q}�sU����I�VDQa�DE�OF-�Z1j��u8���*�'T��h��A�r#��%��S�+����&Y�Ƶ�K!��7�0��`VUͪ�����jR�%/��$�L#{FT���/�z�2U���xG5(UfFaRZ��{�Q�_�z�΃QY�[g����Xr�e�%5��qr�Z;�F����I�Ңx�S��\����l@>{��Ͻ�#�Z�Z����y��>��6
<4�
؝m�=e\E�_���y�W�|x�-\����7�vO�ysw&Ӭ'{��{�ЉГ̑�z����T�yt���`�^���=t6�Q/�!2c���>L�n����?#��V(6i�#��
���BM967
 	�+
Y�#9�L�Wa�%f`e��x���Q�Gn�=��0:��ѣ��>{����[�����C��(��}#��:';��MN�|"����*,M.Vz�)�f�A�p3�V%�_��q��]~�K8��.	��<W�&V�ۿJzW�e��t���$�v)<��\���Xl|�ػ8
KZ�Ḉ����0�-��T��bʼn��a|��XG�񹸂�j�S������rH��g�Ƕ�J�=�ٍ�Y����C�K���R�zAR����[Vy�<څ(W�g�D�v�3�v�X���:��R���,�y�pa
�0�OF��<#�xѤecR;�{?� aA�] 3���m
�f��y$�y��V�h~ҋ�K�a��Oc@mփ��ã����1����R�og�X[W-!�y
�@D��Sq���g��qh�C�+=�H>�FS�����t�Y��s��!{��w0wB��7�/�
���6�C4��-��pX���L��I$����srϐ=ߟuz
kQ+�����R5P���&���󋌊�CS�Q<�r�$`�ZazM�|��|l�
��ֆ�ۊ��<$��P�V����au�3��v��u0J\�G���@���ܐ�ONz�g�lX�L�X��]�l��jB��ŢZ���l��z#qZ/)=YH�KRSM^��1�������=ܟ�y�ת?f���}"��H�,|�Ʃie�%3�x#�r�|fr�G��"JC�J���P�_Z��.�|NO���<�q��+�"Y��8���i-�)�����%�+����7��;|x�ƇКr(� H�؊��L���/Y��fX�
^wU��;RI��qϝ�����BV!Z��}����(/}��k����r�z�ˆ7�Q[�%$F�;�O��0R�&�,�b���Րy�#l�N�d�w�L{'�t,�Ŋ����A��5Pt�翤�t����ۭZT�[�9�4�;�ø�uI�T�Xkx�6��p�a	b�z+�X����1�w�?���?ݔ�FF���tȚ\�~\�'^�:�g�K D��,�R�o��4�	�#|l��lC��x�l�h�N�S��$�*��tq=Wv	��m��f�G���"+�S�j�ϗn�uf�~�U�^����F�E'g���	4�ک�$�8�է8o��>5����m�$sٖ 3�um)��BBE~OX��ԀpN�Z�<����t3��bW��v^
\��E:��U3v�S
! ��S�ê�׎�1�z#�"�#�J�/��C�
h�C����$�����I "w�M(����K'̸�S��kj1�i�c|�kdh�h4��$�5e���u�z��E[CՋ`YMo��d��O�\�r���z6/X,Y�)�Ԁ�0��1��K9̆�S]��YG� �./�(l��_ɟ�║e^ZB����ʆ�ǔ���a��<�^�~�=���J$�{ -c)e�鴷���J����܂�E��T�芵�L4Dr�'�\��ƈŻ��?�OZ�YF6���F/xB��^⭅h�O�(�3�s�1���kʠWȲ��@3�v���%Y��o晪�K�,���V���a���E��?�c�'��V��\�z�b��˖W�r7C|����Ş���Wk�Q�X�W�f�����e���N��,K�E�يW�J�,��%;��<���w�y‚9���u�f���F�7�Z���2Sc�!���jLnj5n9u�ȝC�}&.��!�A����6�:��0�Kb��wy��ŕo��h^|ꇬʤ��*�TY��Ì�8�sK���2X0_����O���賐4�	��a%<��s�X*��2�|����gRjWd�SfdE^'V��X,_yp��;�����ۚ�Ǵ!Z
X�"C�lEu��!S�4�R��r����K[%�a�~f�
$����`jc��A5=*�d1l���<$��]�e<�!�m��
�����Q&�0�dC����!�8x��\|�����r��Fp��혌%�f[P�z�y�N���{�VsN���'��,>M����.UBj�r�����
�$�����	�db����T�+�Jm6���T��q�j˧��p�X�`^��"#���8��E�L?��=�T���B&�T-W��Z��)Ӧ�/���dk��fP|l�D�d9�0�fNQ,�����^6�6<��L���\��h�3!�"�4D�"�x��p�D5��{\OƤO^):�HC�|b�����Y���c�A��lMКd�C����7��v�4����'06�N�#���!ar�J�8}(��y���b2d�������JK�?s}��4~5]S�!7��ã^h?d�
��+N�Zg�K�c���#|E�휑��U��\Ո!�n�S|����k��ŀ%�������D��E���+I�z������J�u&�>ќ}����;�ʼ�����ԍ5eK�1�ך<�g��}�	P��AdA���x�†�T
�KG�i�@#"�{�HI够LH�%bVy�%��
�3�|k3+�D�O�0
zK�SA8�Xh_�t9�Q�Ÿ��Ӎΰ帔����_o���z���77���ң�bJ��&?�U��(��%���N�lZ�RS���\^�"񆒟�nU�.�q�rɜ��F����&I�}��
��=��R�	����U��H|��Z�g�9إ*���9�mCI���R�fA�i�fd�ab�$:t���_B�p�9�6��m�K����¥��T�y���|�vS�i
�%��^e�y��#�!3E��!�6�҂���8$�)�F֌�=����eV
۔I?�����K�{�_N��~K�$��e�Ϗ���"��Lh3\�����t�y�!t�1~�Q7u��o)<�ti�^��f\��R�>��'���:d׃c
�Q�{yb~��#��w�X�)]i�Ѷ#�)	�ڍk�ּTɩ�б���!�1�v@�,��C��MK��q���z��܋k�#7
��ᅴ
�/�R��h��X�{���ߑ���p*96�`�	�M�i�k>�����2�)g�l*��U�W���2�{z�<�F_�<���_(��7��o
@�lβ{&O�����鑤�s���	;%�.ո�f�eG�7��[nF��wDk.���~*�%+���Z��V���ک=��(c�♖�V}��5���"�8��K�_�^�c�NـzI̽���e�Ge��:Ti/�,�&<ߪj�˂�.[�R���{�n�:�
��)�E�uK!�R��	��$wP�7D�4����9���N�d�U��]�$TV����H��tõ��*UOZ.�rY�r�jLiy�
LYHCQ5�/[�Vz���91	iE�	A��:��U�tG��Qx�H�a��u�IH���G�8��\=��M���S�t1�.�A*�xH�*�jb�r+�dK��w���ۚ;&�wx�!v���PEz,�8UA����˗7p@p�UW�X���~]�<ʚM� ��P�+[B7D�Q3/��އ��,�F(���	g��v{W���n�fߪ&o���׿�wp���p�����	��5����9Vؙ*�!ԂNmzЛ�ެ�<�}H�r�����of�$�8��01w��٦xu�6�l���:Ɓ��ӳ��w�k���v#wq��P������ɳ�|�(R��=q��!&�
}��#�&���Ӡ�d��'�.@��ѣI`Re7�r�h�V�u��3w�È����˼��M�9�7n��B�B_����6Ӑ:�3Ҋ/6Ϲ��c���w��BXH�H�{���_�^SVG�NW���<�k���C�AH�I�k�y�Z�>J
f�#�+u���}p���c�w��wO6�����8%h���e����k�`��xC
��׌�qb%zo��[���&�2\�b�o���5��'�P�F��
/S��_B#_��m�x=t��)�8���)�9�Ț�H�!�y�J�F�fU���:�!20�КJY[b�o�f
�9����������:�΅6p��J��ڻ#�K��'���: �cKe�R3j��aP������C��)��� ��{P���2���in1��ӱ�Z-��k��0�_/�}I��'�k��H�(�� �~;��qm��x�B��u�ʭ܀�)T]�o*P{��g�rOu�Rx?��~��\�cɢ�`�S�H�y�����cuׂ��(fU�\M96*�l�6]4����"������mߙbȮ���~���.̂1&�xck2��H�w��f*�&
%s	{��zҲE2GR�>@�]����V�װ� e����M�\���7�|�7QK�I�������\x��gJ��<���{�J�4O*8�ɻ�أ�����ܿ�Hr$[���t�M�ȸ_�ԩB02H&;o�,�j�0w��0�����{D1��1础y)l�Q/��0��`~at�����]=��}��Q�p3��^DE���\��{�pC��ڶ�(P�r��K""2��,�F�)X��ǽ�,�90YѲ�5�z���	K3��6�^s�'�)�<Z�c���b/`��܈��(Nʊ6B�B�OD�&9J�t�N�'-m��xm���/��Z3�m�:�N3'��p?�6C[�Fˈ���	�h|�`Lw ?�/9��Y����Oa�� ��φ��,�5�6��)��ɲ\"�>K�q�J���d3�q#
o
�|!���󬠝A-1aI��t�
n�78�S��G|x�>[�;�4��?ŒUe_�κ�N�:���N&��m�u�'�WxQЌ5w�U�Lm��%h�i,�X���MR1�zN�֤\���˿_��Mג��z��?F�Ω��s��vԈ��ma� �56q�e׶l4Yi��9b��B��Lge�ę@eW�b�A�:�6�4c�����<t�uv��eo�9��]c���F��P�C���5Ͷ�w�q+M1Í�=u�9���#!�a����\��L�8n�.u�(PX:(��]+>y�CsV�
gׇ�^�V�쾖Z�K=q6����_���bp�vӥ5m��p��[�����a��umz�&�
�
�`��ߘ�mE�L�m>E��M5���./_R���,8�W��4��Ե�̸z�~�[�8��knsyl)�=
+�%醃i�
_�����g�9��;-B�������4I]:�VB�(��F��ٗLWGLm����V�M�j���Z����Q�'�U��"��:�B|
O/e6�~D����h)//3��LQ{�%u!ֲ��pV/=�U�(�(j)�I2$_��}#
l�a)�az��N.�?)����VV*�Kq��U��Ee�_T�)$��d]�M8�ZO��(�l���_A�y�L'�:�7���z���I�ZO��dp�>��mAu=�Kd�mzcP�F���:�d�y��a1RB�P��c���
w��@��+�����p�>`.���h�8j�x��L���$X@��1�n���*�uf�2��|�J[���*��&�΁�F���ϲ�!9Qc�_�ʹy�ՂK�#?�@�ʧ����&��0��U3�Ѩ{��s�կ#f��~�+Y,+u^QT��Ҝ/��]ŒŃ�ط,Tx�s	�Z,��R[	��rю6-�>:�3{]�.�i.���&e�K��k����i'~�粲z�Ʈ�eE�ްM�_����M��&��٩&��EZ�����i����
>0�Pc���).�T��Xb;s��y��\ь`�I�C�ps��n�&}0&�IR����w�����Pq��[�Ļ��f�wT�O�
D/��W⟧����^uhF�m��<�e�-m����h	4m��8�,!�G��;�|w���O�:$(%���>F�f�=2���t�{X�m�$�^���x��a���4z��{}�Q�Z�6i��e����Vұ3W+y&�	�A��Z||ϣ�ڹoj"di�Dn%�{Qw�Ӄ|�V_�X{�$�Q��@k��Mҧ7���������/I�=�>����G��L��d����sÃ�Z��Z�`拁�����t��{����8�~-j.��[�&��3�3��{����UN{�Mt�f�ט��.�6�:����ך#B�,�Tȟׂ��/��I<z�+H*������Wew߾6;��X��]�6��B�7n롂���|����;��dh8�m����0�K�k�f��
��-��د�j��8�S��&M�����4�GTƷ�2�Tef4W�7
0�vw���R�n1��R�q��N��A+�lJ`��p�0"YYͬMΎX�C0��jch
��m�Y�� WB�Nd�ػ&٤�Q���lr9�����0{����fo�n7�;N1�u�9�G�%{��(���;��;���oD.5���"���@���(M3`F�~֜�f�YQ�X4�fL�'jb٭(1[@eF#��6�D�D�n�m�)��F%�:��,.��󈘓��:Fo�|z��ʙeO� �1\�g����J�G���c�7���<�jd�M"65���"O��^��4�Y0���
ZIC�@��)�]P~�:��Ο_ߩ�h@��x����Җ$�1�!�h���;���]��K%(R_v��pQ}R.E���,�ݓ��˃v���o;|{ߝ�AS�qb�t��Ou���uQ�!�=v+�P���y53�����Y��`H�n����!%`0(Q��Uцi��f3x�Gͮ�F"B>2#T�3m2*��oӉf�`�QTB�M�M
��ep�I#������"��']>m�r�YF�����M������pβV|*���M�U*W���w���ۊQ�p)��ɐ�*=P�.AeH�BOe'qeQ�T\�O�jJb��KLa�Md�2S{I#����xzڎ���J�a�KzR���@�-����ݮ�2.�`w���m"!��TX�9x�o
�r��I	k��~a.���C Di���jP�&l��D-,n=�3a��c�&�s�t�d����trk�+�$�U�#B5$�;���Ya��L���yx��Ա-+��,W�"NG��8�g�{�K�i	��u�1�&�1K�[4��ڐ�����=d=�[Ǝa�(!�+�<u��><�_��oG��+��K2�B�a�G���kM�+>/0ɘ:Sr�`\�A�Rf����3���ν��E�NZ�&�ud��nJ�P6�Z�U�q�WG���,k���I�?�Ɂ�1ٱ����en~��SF�v�HU%s0i���ǿ�EPf��׎?)X/����Ur��r�8�J���3Qc�[g��U��ϒ�*=��z�Hћr���}��NyV���!��U��i�*h]�k`�X����U��<��K��9+�d[��>��o�WT��0B(�N�Y��HM����D�*�Bf���x�
T�+�$�+�hl9����蹰�dhl$��F��>��nl��xiJ����}܉`Sg#��5��CI����W��cvx"�����_<�J�FV�s+ؗ�}j�pm[�1�H�h����K�3�}"�EN皗t��xc��ϒ�=��ZȃH��Ol.L�
;ڶ߲��^�7�F`{#Z��z+��,n�\I�0P,�>_�g�vZ4L���z64���B�^}��֦��p8*"'����L<R�FH�#G�F��`�x��	��[�6���V����J��Y�1�J������1�@l��)���*m�}�z=Y�8����"�❴���ð��ּU��oAɀ��$��ܕh]��B����� ��<�8h3s���,�6�q@�r3M�c-Y5Q�E��b�_�o�>ә#�Dl�7�3�@�~���SAdx��O�v��xVق.}Oj�a���.o�c��bvb�����z�m���O-�["hK�a�.�s���r�����6(!�ZqI9�-�`�2<��xd��
�r����\\󎙪�%Pk�ѻ_��Ɍ8��;;����F@��A��m��$����]ka65\
�ιq#�B�{����Z�GB1�蘶O��t2�
����R,>G8=�$;yk_;�7x����ډ9a�A`Z���A��"�~ݰ�{-�cɡz��hV_�����=��צ++)�w��Z�c�H��8�l�m�����xp�;��l���w�EfL�^	T��y�U"�sygie�gg��Ј8_V;�Πn�ٲ�.K9�%��kP��
�.
�͎%�Ƽ�s_ײ�tFr�e3��^WӬN�2_�M�G����<W�=C�g�ȑ���v�;�1�=�����'3:*?���y��"�XZ�v��=�������x��oW�Q
��̜�6�/���?ZJ���?�W4���N�b!Ё`���;�D�dx��؆Z��[��V$���ǿ��K�CbuS�6�ZS�I{�G��pL�xT�ad�a`]�B���B��{@�2��{#::��F1Φy�=��L�&m���x&H7���T�/�[�x�����?�&В�����"	�堁�2:��:�4a��i�HK8�=�\ƌv`x�jB�^����bO�d�85�s4ʖg�ٸU޶�e��vK-_l���+}X�
'kFX\�͹�O\�wb5�i�Xf0�d��ʗ�W���5��XM6�#����fQҦ�	[�8���GP�5��)�zꃄ�LiBӬ��}mJ��f��W߮'������c�Imf�9�GJyD�d�%m��rr���IT��	���5���N�ޜ#BU&�zc�������4�8����f�e�T�R�]˻���u�O|�����6'����M�3G��3V#M7.�%Tr�}�s�}��MzU�����L@:�Wq�5��TRq�s���*P�p=۹���Z�-uJ�A�y�S�
g�K��~��>,�����,on�[�������זg���7_��-��w�Oϛ�ȳrM��v�M�MU�i���ݑ���>+UΫ��5Z�QRm��N.���Q䚛�YH|��Z�$r�Yn�5߫,=�Fc{zDg��N��,��2q|�<HO�.z��;4���d0?�|=9��yBW���;Q����7�9p-
\�5=h�r�&��]��f-�L�ZRh:oȷ�����pcR���t��bm"Q��
�"����Q'�x���c(3S���i ���ۄ�n�G�'�!�ϦH�{�n��U��Y��5���=�\|ʗ�<��2�pz[�,P�4斪ۍR��}���!:orڼ4k�\Sz������>N[���E��
�4�K�Y�i��G�I�헗��Pn4��$���3�u���eo����jN�H�Pn��3�Kȥ'�B�2g�W\��ǿ�x\k�b#2U�G����%�^��{A�ی�#̕\k>�H'd�>�]������0�����!�^�I�$	��ѤǟM��:c��M86M�8�)C� �`�"���M�?�d����7*m�++Ll
�_z��^�5G���m{�C���W���W�ʬ� ��Vf|��nG#+�U����UfE=�A9#�v�Ե��Oq�� ���v���]�朜��Ѵ����LY>��L&�=�e��[R#H�M���
9�����EL���\�L�m�|�͗v&;o
.�����$E���0d���������n5�n!r�pɅ���/-��~�h����(CL��[�ɟJ�C��� zcݒ/��B�����R�
="S�pݟ�B�����ֶI��u�Epٌ��99��������6��PE[�[�f:���8R�+��Cﰧ-��
�qE)#8E�őt��>0��P/[o.�o}�<��r���ѣ|�?f	�����+����3qCK�k��9
�<k�lf#6I�6�g�SA,��ⶐ��x��;(rf�9���E����tۮ��+;7�@HƼ�[�3~���\���6&f��Q��\���2�J�!��u)##�6��¥���ܴ��@����o��3J�5Wa6X���q}�:G9f��b�m�Y��EI�BV1)���,$���;�ͪ�6�����e�Í\���6t�Μ~���R�u�#e{�l��m�j���6b���+�,�3&��l(M�ᰝ�>kk�J�˺\��߭���fL�p����,&�z �_~�Зk�L��L��f�C�~�0�y��x�ء��|��6����-���M��X���v�*��hm�\C�0g�M�ձd~u����P��Lc�~"5��J6C���l�w�W^K��^�(y��l
��}���s�㓍������0]�3s�fWz.���̕���,4���#w���eF�B��Q�
?	t�dG���kh�D��D��f�[�@{�,��|��4��ܒ��"eE���˙�NiZ P� �B���Q8�i�R-ܗ���Y��� )����Y9���C'��D������N�G(�x�p�Íà����#�Q/�����R����o�e^�lzN
}M���u@��$���u8Y��9�M�*��;�i�n�������]:O7�6{�c���1�1>�e�A�li��Ԧ%%/➁$X�18Ю���-��)p��A��wWI�3�¥c`E�P�g����L�Vѫ��@SO�٨�r���e|9Iѭ�``C�h�z��py�@`0�ͽ4��^�S��%&������o��U%��$��Nw�N�e�q,�]��� 6:m:����5���~ O����H)��A'�P���x)ϨK�PC�����0���|������jFk	��Ӧ<[��	�&�V��`����S;v]��]�[?�–���mı�,dy�$�o`�� �a�2����\T�Y�D!�\t&�¿x��p����dc����&��Q���n����#�q��h�c�6fԕ�S���OK�COvk�K�ɺ'�`0�$��`���b�IM��
Y�X��VG��Ҝ���;0���S+]��,R�El�6�->�Ģ�n�B�D��V^&r�W_$}t��E���	��F�L��8��Q@��x���Ӈ��'eMA�j�),�\f����.\�EqG��2��̈<
�/�
�8�ξ;���7#��Hs���~���5e��[����*� �\�s͗nMH��K㖥���?�7-}D��N���z�ۋ!�b+a�wN[S^�>Γ�c|�O��ӎ���t��̓)
�3����P*��n���?ȏo��K�L`*�o�����ڒ+�<̬�,_�]�W7%�.��iѸG�ڞC����/N��#1���I3G-�K�-rs�H��;�|�>��'�a&٦��/�4'�[):�Z$�lbŨ��	��|R��l����k�n	��C6y�mH��™�1_����2��v�'p���dz�Ղ��:{?Y�'��<��#.-�v��qz4н����5_�A~���#V�Զ�T�������M���+Ny���0�������|��?P����t�|<T���a�R��P>��֎��P���Tֱ�<���2Zj�s�Gr�a�{i��k��Z�.���X&ZDž�*t��6�O�őV6�U�J�3��L+I��a�j�
���z[�$�3�y{��ϼ�e����R&�����u��DN]x�{�lrh�	��e�O�Z��<�l,�G�l'/�5�$�Q��������=��-.9�Fj�Μ3f�'>��9�W�혉�
N�e���M�6
3�V��y ]��Hs�tC����9�	}�V��g��o~(�A���0\�3��RNJ��Z�sd� ��˿��~�Ψw.���3�W��ͼ���C�9{H��Qf�Z�����7���x��PH«bK�+\9��O'����Go�����-uu�3��~su�,f�����`-���t�$W����R�q^3��RE��H�-����X}suF	���ݪ�� �D�o
/ŘB`ɭDc,ݤ�E���4�qPҡ4�w=��
VC�S֮Dk-�9)ָ<gdD�<��w���qK>7���d�G+��8�%�O-���>��-��~�Z�%,�'�dL��C`� j�39��y*3C�a�/�Z	��r�#�M66DV��f��F�Sr����ƀ\�A��c�]p[2�@I���C�ű�S'V�"�H���r�|�ַ�ho�+na,�y��˛������o7(��˒v�j�m��i��}�J a%�WVa+95��
�2^S��rXK�744���Wy�� �e>��r�3\4?��4�+�-�
4R7�Pdk���)/[a�����/��e��6��hσ�O�C�&��XC?�%�%џg;���#�I�詿���O���Q�x�&P��­�N�Mu#͈�J�4f���T�_g�}��4s��z _e������f3��/�tf̙�P�Ԝh%�_CY�����h���xw�@曨�
G�u9�zW-GmI��]v���g��'��Y����-�`+�â��exZ1���/y���`Aa0����/����~Q%>�Mt� �1^.���bw�b9:����*�Q�i�ި[rs"��������u������F/�j����L����d��W+���'"b��Eo8h^�*�M�^l,��6�"�3�M`j/,j'�XSޔ�t�ž��!.6�%�Y�[^z�@��8O@E؃*!Gc�5�H4�n�~O�wѬ,�u�^��F2��<����=�������a�����u�IT6(�N%�}[>8�=��V�ʩo�q�Э3�:���\O�y��E�>+��"+^�{;#�� �>esX��/���@ �9��	aʨ���=](c��Y6��r�z�&w)T@�g\��Y�nܬs�
/�@3]�8/���1T(��[�sg�����:W�����er[�N0��4H��䌤k�)6ˆ*�U��=j�DvD1+��*�䗿^�C>x,c�\zv1�{��;�-Ж�g?m=��P����x���R�w0��k�G,�E\ƙ%%��b�|H��XQ:�0
�%�u�����B�;�]�-g��+F���0#���lų�X�rM�yl�y��[�j��Of4?�J$9y'�:a����\\x��^,T[Bo�WQ*�I��6̞���$3`>�g�Sjc��G�RGf��u�v�Jjk�ԻH3��:>�w��7�xl���h��<�������\]�)	t$ɾ��E��X��4"o��貧��:g�碁Aw�0c+�
s(��!%o^�{y����H��d�(�F����TOمhv��?�fܺ�i�`@�k�䵠}�{K�;+�N��TL�-��u™�����N���R5l�QG±yHB� ÉH#�f)��g�Ȟ^�	��q`�n�ԹY:c��z�$����w��������J��u��������e*�~��G�ޯ���m�����Q�(��ho��'��e�o���d�́|M���1Q@������M�	�}lG,�4D��l�mAd{�P980�0y�z��i#��O���t�����Ɔ�]�|�?p;@6�G@NI}k�}Ỿm�;�+|��nS�䠜����]�N��WR�|
9z)��o
�S�ҋ��r0������f���@[偍v
/P�'���7U�fp��x	�%����2����e8Uz�L`�̠+�4�0��!HqiM�����W'��<��z
-�;0��|�D	�b"E�J�M�蝐j��� �d��䶀�n[�*�
Bp{j��L͏�N'�F����8\ӉJ֤�]�N�����
�������n'+|�	ASI��%�%D<<p�{V/0*]��_2��D�o���͂�в��ʟ�³����S[��/�Fi
�p��tY��/;�p� �2�:}f:풚�ߞ�f+8�����-<��<;�z�dz�o.�)
�y
	�%�D��TŰ����dt���L\�؃8�P2�^����=Rs���z�u�Gi�_�m>�wUy���^���9k�J���ܗY����Q(w0�����.��˞��z <���-��x{
���s����쮢,��vh*�!�ڸ�bf���|�E%�x��H�F���ִ�D�$kN�S򟷦���9=Ÿ���1r(ֽ��w�1up�m��!��Ұy��l��Z�=g4;�x�ޖ"!e~oNj�S�O�f���u�G�Zz^cGv�{k9���'
[�l����65V��`�SQ�}��1��ͩ�'!H���3D��?dE1�Ԇ�;����a�)�Px��N�%�.�|����"�t�^a$9��iߔi	�5,pg+бO</��"��Kd��ͪKT*�?�j2L"���¡~���^gF�� KOM7� �í�[�.��jW9�r���2�s����^�s�9��FZ
t3醆�C'�S�Q	������筟"2��**@#����Y����&8�E!)�t��I��`�ex���|�%{on�
�a�����v���JX~��F�Gm��t^<�jtZ½�zj�|�	o
��m[Y2`&oӚ�ċD�	�M4�I(I}i�1v���! /iaX���e1���	�k��D�^
4u�k"�S��pH^m0J�bƄ#���Yr4��ɹٵ�{d�Uխ��t�]��H).��d�=�e�m�l����:!���5�vtz��ޓ�3�6��C_���e�	
�:"?hFW��d�0��c���s�;b�4�e!�X{^1Yer�X��O<1�?��=���'��sI�WrTR���������F��
�+�1�fˀ�����r~W7붛���O�|�����a�3�)?x�w���1��Y�KϳH�b�Y=����~��&�%���̵��IVs�0��҆�'�MHd�g	�l�紕}<����n<~���]�%Z�dt{�7���W����J7:��ٗ�O�j��ڨ]c���]�KQ|�,�ɴ�(��n&��,�3[2��\���Fo�s
R��&�n!�G�cTI"D���s�[R)��u���4�/v�,�,�6ݐ���W`�"�L������%7oY��v��i>O��q>���S��X�_���nl���c�5@/a�G��Ë�,��M��������v��?\�4���?%7A�*@7}�v�4f�Dj�J]����<�I�Α�_tz��)�Nɯ�*�L��}��UF�mld�`/3SS�sj䍭�k��H�Һ��iΣb!���i�@|]�c)�M��i�Wh�;��t{d?OwP<�K�4t��EHȘ;�K��dgE̛��\��>��?�ЙkZWg��VDVF��m�Ry��+R��W�X��>#�f�ͺ�ҽ�0��=�fLԂ*E^Ű�p��A�@��#�.��Dn�Bm���\�u;ͦ�%6
�D�{S�A$��9��xQfe����n��޷�a)�\���3�(H<I���(0l���A�蠨�����D��6�5�톏C]"Y�3�s�������j��e^	��>u���ֶ�F;��#�E�)q�@�fi�yU���?�`�9 �x�F�sc�[�Op_�O0���ȅz��,�[2��)�~��w=�ݏ��~�E��L��4�^�k�Y5�U`�����g����7�>b�+��.AB�AJFs����[��c��q<��>�g������]�������!c�5���\
���t�8����5]�"�HF��G��E�"3��մ�u�>�ʩy���i�d�x�H2S��Ƙy��U�xT'��GY�ėP��w�y��f�w�n���Y�^�YFhIl� ��G�.���J�f�A`Y�'���Cj%�(�w�7��䱭SfXn���B�-y������
��9w̤�I�M�ޑ���*��g�ͷګ$��*�/[�߬&��tn>f�ˀ*&���)���{�L��ro;ҵ��Wéd^q>�8� �|���Q�6ʾ
��Hg����)�V�:��;�L�ÀT�z}T�L�#���Ď�YE�\�Q�m���y��AJ� P����r����s7��HS����sL�`[�6�Y6Y+U$z[ew��Ȥ� b���ϗ��@�ks�UX7=��e�w�%-���Fz�2I�]�"�
���zԔ�O-�K
�YyMC����V�wZGD��)��c7�m*�v5:�be^/mχ�0!޻��|�5�pA�����{�����vs��2�;R�	�IU��۳oΞ���F�b����;��2�d��=�
#����6���r9:I�a��e���@;�C����6-.d�0�Ҫ�R;|F��ݒ�7��H%|A"wN7��˱8=x*�wَ� �"�i;crTtǵЭ�w*�s̫>����TL-�Um.|�����@�����FN~�N#��j&ؘѴ*��v��C�*KU���7�9�L!��lqf��3���b	7�?�0�̼қb����H���W	E٪�{����[�����?�����kc�Wl:�u���.�
=�X����,H�>n��*)W��'{����٨=�9���un6k��p5��UK(��O޼fjKL�y�OHBg��
�
΄Zq����J�ΓϽ9ܬ㓁vw�`�ې���*�8'������>�3���D$̵3�Ǵ�h�0�n?i��9���tp:4ȧÅ��j=�U�$��c����E��o���^l~2/�w�C�O~��
?�,�_~\�����x�0���-z
�m��E�S�5m�	Xa�>�V�&L��b΢�JO>�c��q���e+u⿪6_�h�+f���]c(u!��i��oI+؍]�Us΃@Hh�M��؜�+
=/��svEI���Һ�Qn.��t�Nr:�nB�^�鲋Y��N������Q���0�N�����zM"��B��{m�_������D�(5��i�.��v�1?�0/,l>��X��m�^�/���7�vJ����xXX�d�X���p����⽎�7���[
�Ъx��8*yl�x�
���<y^�,����Ճ��`S�^e���1�*)���!Y��C���P ��9~�[�mVٟ<�p���3���U�;?-�&�Ef�+1
��ߒK��u*��s/3⠑�2Q�n�I�HS�&�����_sz&���e�a����Gu��:y�q��U �@ҝ&ܜ]���D1'�(�F�ԃ`���ԴŤ�BQ����4B��n�����_ ;H�� ~��w�D
�u0�y�R� as���hQT�.M���l��RF�� M�7Ih[�MǕ�8RjpE�|���\ҡ���Dq���iE��Y�9>Iu��6�����6"PxV%���B�@�Da܇ߍ�b6�*k�f�s4|����գ�M����%?ׂ���r9�T�AQ���v\���	e��9�d��N �՜ V5��g����ʺ����ڣ��m�_n��Pb�N8!�ք��:m�&�f+�l�n�������e*X.��>�p��U}x�m7���[�pc��!�.2Z��H�
�m\_C�R��J���w�m��t`�Y�M߷�u�'d{
��ƖQ9��c����t��|����:�JsF���~�X��7�a1ζF�c�M��b�
L��iT4�����N��6>���28�:�ưω�[�r@�Y��u�=���(�ɶ�?p�H�
G��k``�e3L������2�c�.���[�G�q��KD�Ƀ��~�VlxX�p��q�ɎO�Nz\���*%#P(.]��g36�5!N��N~�e����E�hK�W1Н~����қn:}!�+'"�B5�1��Y**K��\e�6�o;9��R�>R�'T��0O��A�	��6n-X��l�yNc;l�����F�6{6�)&��7uR
��JL�TȂ�9e�m/ǭ�6v�p�s��>G��O�S���Z��@qX:c�8Ƒ��_�
�D8��.�R�#i
Z� �h�K��^0<+f�*�\f{�F�(�)y��`�g�D��1ݡ��
�ԊM[ro�b����gR��U�p�u*Do]�AQ{aQ�jF�3���+���w��)�8�Thȇ\Х� ���n�F�{�=:l�����i��C��n֧_j��Fo�<c
؏>J��/1�-}�.��ʪ���)�"v���0�9�Y�C%�B�����g5f����"r~0�2���T^ L
R�H%�5H��n~沂�S)�T���Y���,�\12F�m�|5\�Ata�����f;k�ԡ<��f_��T��(�>�F*"x.�oW)	���(X�����JV�
���d&��"���'��˖�=�<��g�e��'ub��u(����3���--�M�=Xa�d�e��\J9!,��1��8�O���01��R�@���[����p|
�J
��0�ލ�s2;�_mo�鼯�녏۬k�r �^�5�����Ͳ.yy��Q����1��ɠ�әTD�T�p�2�[��)f6ȹm���󵧬�$!AnB�E":fJ�^'�y�CM�j
�f��ܤ|��b��f��>�5�ӆ#����h���kX�m�$���)mcy��NJ9XV۵�2�#��[Ξg��Wj�1�wH�8Yt�l��5S��!��T��JV�l>�MɏeeT��A��C*����
�S�i�1����4;���"׺�����6�����t*��J��s?�MyuN�����X�UcǺ��uk���ZE�lk2Y ~"�(5�9�nJ���|����#��pq�"d��,|y�Ӑ2_�d��^�
єq{#�a���لZ�T��(�
%��`��%}$�%��M��N�7x���͘��W�Y��賦����a-�VA��을�tS�*P��r�R���8�evUP#�J׺fv,Q 6�	�fö/8��}dN���&�|˚m��+tY�D����hl�HSΨ��X<HN|�'�t�}�˸��A��r:��$�yݛQ36�F�y��{P���.�d�+%�C��L�&/��7��S҆���=�i0�x�DG�m�f���M�5GI�����N�B�NS�ex
>�{��TfM~o��z����gp�1��t�I<�5ĭ�6`N��bm���p�e^�̜�?Z�3���&)�+��ަ���j�9ގF;�ʪr�	u��Y�[V���tƌ�Y[�Yu��L}�9!�i�B�QG��^�'��S���:��]�I��Ľq���\��$3ܿqA����)��A�X��%8r|R�����A�\]̾`e;2#6��%wn�U�ht1d�%��؛�8�լȘ�a���!���5']���k�Ì�Fo��SkB��F�q���E+�V+�5�[x>qd��VkE���)4c�pOZ�n�փ�8������	mr��e� ��f�9����N��latU�<����[��α�%<�N�
䄉9�Rh�飰�ɗ7������ldf���'^�/>��>R����=X�g��Q����&O��h<̱�63s��%+>K��������w�8�I7,�����o���#�7kěF�u�/;�ANB�yJզ҆������߬q��5�'�W�-9>P{���ְ�K|m�N�0Ӧ��C&O��6Ԛ2�@�*����8�}>�¥Y~s�b��������,7���b�":��
3�h�Pq�j⚹x\��|���l�9HmXK�TI�"�~�}3�z�Qr��2��͕	n�=�,oݿ4�&1�i��ԭMJ	��9I+�^�"lBBE��|��	5Y�,�'4ΰIϹT�ő=a.�O�>��K,�:�B��27�a|�d�fl3$�f�E�m��X5%0�e���l���N�\-�h�<�K��t�s���:2��ۀ����� =�0��\�r��ך�`?e}ʧ�^�`�u&?�0s�U+a�v�E���=���eͬ ����!����T�������T�f��"Z�U��K�
�A���6a���!v�2c���P�n���b��@���ס� �+Ӵ��~��5�����/"7�a9a?�]N;
��y҄�ChZ�qԘ��R�AQ�=���7Cdy�0>�m�c�-W��s��>B�G(?R�p�Jk�Lʧ�t��*״/��)xW��z�֚�{�}�uOJr<�G�۸#�N�s�\��՟���R��G�y�i��ڨo�P}�jw>2���&��Ze����!�f�x��%E������&;�9�O�d���v�P
=S(O ֥L����oj�kٶ0���N�(1�2�@�3J�"�
"	��ݴ��I��n|E�1 �%��SS]M9�E��`�ϥ4"R�W��F:���l��<����X<�b��i�<��߈0��y0Oʖ�U[ǼN�jƘ��S��_�3^d��vk�[��T'ӱ��R�w����b�#���{�i:�v7�Z.�����PB9BU�h��lGKW�FZ��n�'5S31et8[.3�a��s|
K�����"�Cm����3@%��Ur�f����N�6Ti������� e�O�@Ñ�E�#�N�^�o6���m�{��A���O����`\�qJD�p�Lr�w`�:���b���һ�D.]SJ��6��G�P��&�2����1j�u_S�L�ϕ�R���ݞ���5>��0���"�/�&�g�]Kr����T��_�t�g��pS�&/��^Ӻ(��'���㛶����5�Ҵ3ۨ@+�u�aב�;�k�g���5潙���':V|���4k��4!��Q�{��}&�|�Z�����JSJ1T��cf���CV�jTيm=K���$j��2	�?ø�5�&v^ch�	{5�g��CnH�>��Hx�v�Q�Yr��t^o�L7���>�_H-<�k큲TX��H�4���	���J;�����+���;fT��F��?��7�������0��T����?\��p�A��sԝ�����#��0�����x���u^�0U+9��G�oϋS���Ƶ#҇'n,��s����:��	�,I'�ĝ!��XT���s0�vJ`���&��p���r����Sٸ���컶����/::N�����ϋRw����#���`
����18�g̦A�g�M�mv$d_�5���0�Uy���F3>�Ԧɜ�E���u�1t6Y�Z@c���v*�&3ה�ٲ�r�k"�`
1En�>�R_z��}��N�����EF�lI؃�%_������Z��o���Ɉ��@S��`#r�`�S͡"2�1�`9���l-��r�,�ګ�ZI^��,n*�"#�͉�R(Eخ�C����uے��ȫ?U���}�5`~��6�?�� �pS�a̎��7��>/;�zY[��h�
����l$LJm�X�C$:46��v�}jS:�R�B����K��4
=��2��$N�z�Z�9�)��3��p!c?�fm:��ܶ�9H�X�*��(Z�.G
�Gk\�-�!c�@1�`-�j�.8��
6���op3K-r��������Z���sƝ��A5�k&T�t�Kn��#�%dJ_1�TR"�bM���?�]r��ڱ�� #�7�h栟Gά�PM��ٯ��
tYNY�}A0�ڪq�~��@k2���El��5�.^�$�~��_v/>W����5Ì�*��A6m�g�#^�@7<aH��Z}��4�y�ѢQ�f�a~� O��/.�A��_8-Ӳ�1>�ݝݱޣݓ�ϓ��g�y���L�j|�s5bL�/������0"�}��dՀY���O��L����,'�Ȓ��(�r�ܘ٤�*���e@°*�{��k��Ă�>@�����Ѐ���	�L�U6� X������#�C��̝}{Tg<�^��y�ĉ�?������o���=t�ɔ퐙�I��c�p8�{�$~ŸA�64g
���Tt�>��?�	�#}�l��ޒ�Ѧ���������M�z�l����?:
9�����QO�^k�x�U�8;�
�c6���9��x4���n�rFrL+�:4;S������+��܄��0��ܦ�Լc������X��sp����>�s�+c��(��W�C�f߲�
샫���^_Fr�y�0
d�n�(���B~#�s�����xFnN"��[�S-��n�(�Mf���L��2��O���'Q�?��{O�̴�K����2[X�kf�3K�&��z]1���<,��h�Y���K)G�%3��/��L�5��Q'��4���.2��]���G�?��
��N����9���V8[$uV����7�h����c���������$��쎖	mug�w���W��bv��#�@NW�k{��@<�)	�<�h �~�r����=�V���o��|2��ތ(P�~QzqGy��;������3�t����Q�J�O�{�����@�������P�Q_x��b��h���n���0�i/�����.�?�y%����O�n�#�v���a�ǽYT���C�"�K�xdrK��5�>�
�h��Ƶ/�F\#%7i�9h���|�M���o�s���A�w0���J��������3Αo6���:�Y�v�[�5�AҺ��$�`��>����ʏ�Y��<D�6�{�Q�'=����C����`��g��?~(��}Lj�s��T-`�+��Hc=&nQ�!���5���\��|�ek�cb
j����j�dž��`�v���z�(��6���I~��]l1��=8l�N�J?~�\^i�����F�T1�?��Y+c?�Y��W���]�����
���…F����P�nLߞ���t�,=��?���ә���ӡ���i�6�[�;VЈxF����]��Y[��Z�����`�n/3����bF��X��<�
�@S͘��3��	��,��ڳ O�qo]�{��L�������ϛ��Ep.uŒ[��Dï�{��W�[�-�ϗ�e,r�$����s	��/�
x�嘺����w��M��D��8�Պ3 �F˃�Мk������lt7r�a������G24\zpf��n�l��'�1�\竚�=��g��OSP���^��+�2)9)Wmgsw�v�G�X��>\�%�3��=2�YF���A���?��d"�Gߗ��rd���KJ5TZ����>��A��DM�F�t���A���1��{�OB��5O��Nw�#L銣�%-�4>�q]�ƾ���J�޾ �ƺ��D����_ʊS_��&@��'��4�5�<wj�T��6sr��it7�\TA�Z2��o�M[��-�� �B�Np�s�ش�H��qi{�Z4��Tm�6פfA
'�4��$ސx�&F�{auC ^K#��H'�\^u�F�|���oߘ/��j񐦆k�Dq�2��|�O��U�q���e�9�p���>$�`���QH����'Lȭ�tС���'r��H�uX��1&�(J����)e���Q؍{Nd�7��VU�Q����i;&��
���@�=Z{�	n��N�]7����[{��`x�A����Y��oBq�_����'��{|2<�;��R[�W�H�kó�x�>��Ճ��� m���4��/��*O����t�R:k�h���Ǖ�/��8T�%����ήWD�ۧ�O���w��x�w�{d�-�yV/��y$��+m��^eIiM� 로l����a]�դU��)�A�q�މ�fF������W;u8.R��4���ؓ�.��!��
�]=�4hC��]6����#{��R6�r
w���(F�0�ɷW�^Z��$]���l�YW�>.��R҄hEՀ���o�*F�h'�Du5R��bp�.�Rɞ�Pj����x�]߿{�����f�gܞ���e�5h�;���I]p6�9�P8�5�*��5_=�$�
,�S����v-���{��J��HpTG
4c����J7�k��:�����&�0#O}��^�-yF�_Ua��43��.�E���7}kb"�ډ�9_��ע�lB1�-�@|A[B��ߖ������8o�jfL������|��\8��M퇲<����X�A?�g���]A}����M1Z��]}TL�m�,�{>�\diW�{��NwD�3�!{��om, Iy+tA�{捺:h/����r8l���z�r�}�"��3��ռzt�mW�2L�iԜ�Șh�"��c
�5���Ǐ��f��)_)ɢ#E��+��X��ep9��C�[MC�]5��u����㝣���@�5�P��kD��T�x�w������?��0Ěd�b"�3�E���9�iԑ/n�D�Ք�O��K-�פ|p��U�[HDRtfin��z�����ڧ����+%JS*L�O\�aG��
A���r^Vּw��I�:Z��V�'��������H6el	�(;�r�Y���&��:+7�]G!"��f#`�F(I�4�95$/��<Y��7j�i#o����-�+���}�O
7w�1�i���χ���W����kЉo@F�9��@�k�_���2������
�T������$֮�C��`6	�)؛�0��r���M��K@�����^�Y6�x��#���ڋ�V3s�n޺}ܾ]�D���zha}N�%����^t��0Y��u|����S��7�9:m&x�J?&gA�{)g9��v�R�I{ѯ)YB
�$9�����\�l��1�-�;�5#��cÚe�u���R�A��Ek�D_b3�ƕ�W��\Z/�?D�O��k�MY��.��f%�!�%�5�S������u��^�sUyǗme��E��Ω�5W���\����u{���ᨬ�p=flX2��(�����|k���$KWI̧�oݯ���Y�qW�:9a��&�1�@�>��Ġ��$���_Û՜��J�|`EU>�:�*���2�i��tQ�-��T�I�ڪ�|��"�}t�n�g�-)3n-�������'s��o\��!�HӼ&
}����)��Y��Ur�3ȳ�O�8y��+��Z��Z���P�XT$�bFP�{���Y�nP�x�;�V��`�J<�K,M7�%�3ժ���.�3��N2���u���Wf�!1��c�ִm�~ۜ�?��Ӹ�F����H��-f7�z�Y����@"�v4eK�ʵ��x߆l�����ݮ���s��I���;\�ߏ�KcQ��2-���_랙�9F^�t�%��V�P%J�dey��Hv�rЬ��>�'0Pa"cs���ɮJ��BuI}g"����w6�WiLj쵴�?�=�m8v��)H0���Xo���,����u��Ox��'�=jk���Y���83��=>C�*v��q84 �+ċo��ﴜ;�Hp5v����C3�bY�9\56S��8(�"�7]��?���0�1I�~q�bݛ�Ͼ}]���
Ϲ3!v��)/Grg�ef>�L(l[f��E+M��.c"�f�q�
kT)�ᡎO��p`479��Z<]E�F�D���c��R|ʄ
1�hN���G\ɤ���-�p�\�{(_,����PR9��V0�98B�uN�����e�@��1cѓ:�)��V��1�dZ \�?h������n�E^/R�1h��~���� �:k��K�A�a�H���S�|�\�:�X�3KS1ƴB�y0���k�r�ab��:�+CIf�g��FL�=�e�8۷�3�P�Xt�ށ�����Tw��`�g�ಚfo�,�!Pe
��i4�Mg�g���y�5N���0�D�eVn� �C��~z���[�j�ӝ��AT�/c{��X�I�H��H�^��DaSN<�⛲$lGS�6j�jM��Ĭ�1��:g�[/��x�m`N�vZ�z�5=���h�+s�K�F�9���{�dF���$e�����K,��'_N�6��>�¹��QUiJ��٠�C��y���ȃ���%h����Y��A[#v�;������m��~�>]T��*�?���0e���̲��]�����A%�cx�턒�2�h�2�)Ǵ"3)�U9B��P�:��1�.�E��,�q.8E��^Sy
^&�NB�ƀ�ԗțB-j�Ҭ0z�`���T�lMy��8Td�R��I��N��b�R���!�R�_/yw�����hBV���U$�F˔�iD65jπ)�tW{EҧZ���9�"N9���9���
���S���~�8�}m���7�P[ג���}�#���"�n�8���F�vm�,ψ�cu��w��N�IM�$��~G�-�bD)�Ь�f�]�ﵛ��!5���8S`��?���$]��3�����j�"�V��9�Š�em�4���{��\K�hݸ	��:�sL.�1�����ua�^����
Ro���߸/�ឳw�?�ٴHa�^�͑�L����iLjo�4�ӷ�_�i�^���m� @��D����ԣӁͶ��˦_�cL�{Z��A�k�=�9i�F[u��(qA����}<%�q�A�'Ј�(j���(�F/>��F��ւ�݁�t��P��g����v(���K��.��|d
���O�_C�0����BqXC~��J{�u��UZ�ɍ��f|�n��rf�Xws+�υ���w��`+>�����:�Px���`�?��.�7:�%�e�YD#J�!N�!9��li@
�ƚ����>櫒�qI"��P�'��.�f���8n���0�bf���"���v�6\���1��[R����nĦ�2�t蝷J;Z}��'��/�l�H��/2�Q��K<�$׸��U%���׌�2\��,���;�ڋ0V�6\���m���<Dه��ќ(�[�B�3�g��w��I�E�a���xV�}n�j�YPi�3ԏi�����������F�zRu
R>�<s��`wN=4����
afs��_+����o�'��
��$ȡ�J}N%ڽf9�MQ�#��in'��v���r�c�Yͽ���+i��iFm��8�\N�8V�,`���MB��"><��LGܝ���ŔF*�v��9�����(�
�P���j��(Z�ƾ�]��N[}dmR��;G%܍
��Q�Ň��/���=Y���IJ��c-�fI��؁��1���y]�t�%O%��C]"��W@�ъ}��frD.��6��뒲��S�s΄?>9Q�����g�F�j���;�����VN˰!a��q$/�"6��IvOb1�:ē��ۉ`�-�e�}�!>		Jr#t��,�+�k�a�H��%�<��PkV��=�k�[Y������D$jR>�N�}�J�x$}�t��A��� v���'��]fA$y�ah�_Usz{�A�2/̎�IPzNUv��Cdh�H�e�>��H�{@':���Pc$J�;�'%�i�~|��e)n�Q��C+�PE���9!��"�)E�jE�&�Q
zc����|$�U���Nİ栛e=�>�y��������"��V2x���2c���$Ը);-m���Ó����/��_���r(;���d=2��|G���p^��3¿\�$ �/�b]Բ�����P�͊8�էb����UYQ�o��f��ty�	Y�Z����fˠ�/��N7琿<��
[�-��nd���W�v�4|�����\gy���|rf4��ܬVܯn���
uu�8�B�k;���ʞ:�4ƫ�٪Am$t��Zhhs�V�����Qe�����Ǿ{�9�n�
»9�/��VdzX����1��(U믁K�KDoR�3��`s��Kڴ�l�n%a�����c�zwtҔץ�x��l�3^Z�Y�]�ߥӾA�*�`���ſ
����_�%��kF�5e��F7\諜��Gм��<�Ѿ6���@���(2���=�Ԭ��<��>}�bVa���Dn�!ŀcu�n[����%½o�yH��^�-\��y洐�B�=)T��N�Ae�����Ԋa�z-J�v}�jH�X�l����qI��?]�u�&ӕ���󶼷�/��
`jZm��\]���CN���m��L�U�]Y��	h�
�&��%����i�����$d,0+���YU`��h+�:��-%�J�U�Ƀ쎤�,�ʌ	�YS��xU&7I��/��Q��c���r�^���*K����&!g����j6�۠�t�vc��77��K&����1��|�xT�zL��iKm�<JO����D��un��PZL߀焛�L�4p���Qg��-u�Ϻ^�ӂbwv� y��������ߡ�U5�����F�)tf���oa}�Β��i���p�^X2,"��lc�I|j�2�pa‹#e
5� �ڙqx���,Ŕ�I:ETs*0ak�P<����q�V�T��YN"��ep���ȹ���]=퇦n�ԗ���ir�T��f�A��Yp~~u��δ���T5\gZy#ݞ���b��{�j;x`_Eu�;*�#u)r'`�ݞ�eV{�}m
֙e�"sܜ�jӥ9���qY����E� P��D�w���e�05ͦ�j��D�J�3b}�
]k��L�P��m(W��T�%?�
�;�U��*v/��7WT
����
�Ӽ���6��JT9���R#���Q��?l�^����i���k�4�_vE��P삒�q��qr(ƾxJw���V�[�C�by�a<�)�j���͟�5toN���$�w�B�����X�f�Z..�,�������£�}��u\)�	��5	�[r���/�Z�\�ۋ���۫��>b*�=PB��6��b�a���
;��|��z����7M�ZNL(�
=:D`�#�/�)�h	!�+R�|��7_�쵊9��b�+������X.����m��ͺ`�:�2�W/��|?*W����[��^�"um�h� Δl�i�[
伦�W�9?c{ݘ98jV�"�43���ef-"��N�%L�w�Y�v�Ec�s����}�q��}��/�
�I�wEg�2`d��Քɭ�H��R�S�_�qe�Û��䜂�k��c�wY�յ�rh�;�vw��v�$���m�Djqo�\dL�?[�ሇ��c�}L�	�D�3��<�����s�ՙ�g�<�od�d?�]����$��R�HW����:�)m�J�G`>��B��nLe��^��d�R�iƣ��W:�1d�0/��4�D|���J�g���=�,*�H�
�֬��p:"�{l�Z��,:�����`�C�Y/���gz,�,���+�M�;���J.�j42zj;:��,�Sf��9r�u[S��y�=J��y?��������N'�iR^��֘�ß��X7@���V��:�k��}�cT�T"�!�}ͬ��W��a�������$�~�V��WϏ�-D_���/
x�1���=
�Sa	:m����������L�B�m�2�K
���@y\��� �w�n+
{y�H�����.c� Z��ݯ^Sd�l��$]Q�%-n�9�>�N�J�M~X�T�]J�F���<�V|�NZ�r��J�w�|�P;��	Z�ػ�2�d�t�*�en�����I3�&�h�qΨ�&ݦ��y�V�^��Pə�#wu��l��uk�>�8�._$5���=�f��K�H�T8��`D���y:�y�P�����|3�0��<p���"�����,��H�tm���T��'C_k�	8��B�WoeV��ƻ#��֖?<KI����VMbz8:�bM�Rq�%{�Z�[DMΖK
���F��O��P��J8�'p���>�����d�[k��ex�@�T�tm
�#2Br��S
qՇ=�9}Cy8�go�ο=s��b �t�@���&\Y���ےη�b
��B2��:�2��1��
a����1aQ�8��/t{��Hv]�e���?�fb"?��_\�RgI�F��I��}�ٖpM[���,�,�%jTIL�^�
�7�;W%R�����I
��4'�M֞YU�@����z~r 딡��K.3F/P.�h�)֊3X툻_LW��XzD�:�D�b�8TPO�1�s���7 .w7zm�t's�^Tҥ�	�o�+D�8f�*����K�>����[���,+�@���Ve�	,���aÖ��X���-
���_�8_1cU��*�2�����N rs�{,��̴RBb{�Ip�ȩ�D`�bUߊ�G�}^L�Ig�Zn���䛋-*GXFD�oM����@�M��3�
f�ɋkv�p��3'mS��c��X�q�j+cd@#J:]����Θς�^��
���K��F�[�������i�Z�z��2��iE�z�skt��#t{�4���w u��:љ\��YקTYl�h���Ә�˾�����g��pQ����E@n�o��ϜPuS墦f8L���
�-�D����}��b�܃�p���m�A���ѐ��l��o�֢�Ǟ;
kS��i�^@@ww�޸��5)�n[��������"O+�z��s��QS�M��QV�~vz��}�^n+��s��"
$�?vG���~�?/�N2��Pp�dV�(�__g�3@�=����v$"�G��߆X6�ôW��2�s%"��Z�����F���=ʛEO,�7|�l�t|��{)C>s��0��l��U���[?��v�lY~K�{2!3�)ב݊)�j�N:�H}���	䦽�8F��x�J$M`"Ē�H&����+xf��7�Dz*�����{��M���:��o���>���W!���J���
AOj��4�k]IJ���Y��p��4J�˫���Y��]`���={���b1�f�梌3X
%�񵜉��r�K,���"!��q�JUN�VJfwP+�J��Ȝ*Mͬ�10��{��M@�ܤ'BxJ��%��f��cn��J��P�
��1'�"!�#Z���&'F�BHu�~7�u����FPh�x�a��l���d��T���z�����֋�Y�@�v�3ܺ�<��7A��>��06Z>͵
_J:�Н	L��Q:j�Lj?>x���Kv��~nni�`�v}}
英ĭ��1��_Y����Ƅ,�LR�H�!��I�X/:Ӆ�q���
n����\w��6z��9���ѷ:iNI��e+�5S�&YP����hz��{ho�S��fY���Ӟgam�c�����$ۈ��[,g���W��9+}L�zͷ�"C��Jn�K�䕱Q�Y�<�9��$���8Qᶬ���(��8͞`�?��\�z��2єmL������	�V��;����\vr���{Ț���,#���?t�gQ�s����sJ��+�D]��8��+~	gB0�a'rp����VY(�E@
��n�7+Óv:ӣ�%U<4D��Tl�y7�Nv��'��Y̰\VC��RI�ݺYI���됳����[��:?(�S���.D��2]����
�C6W����()�A�tU�c��Uv���t���z�w�ׂ}�
D����k���"�7���=T?��7���(�^�]_�L3��ѵ;?L�*pqc8�F��mBO��<��G��6��I
ǯϾ0Vk\�e�X��E<@r+Z�Y���Y'�ۍ���O�`vb���=�=C^yJ��_�&TVs��P+j��L=�<�`)b��М�|��6��*�M9����	�w��+�NP���67�%Q�x �����Ǩ�"��J')�gg몔�
¶V8K\{,۝�q�����T
1C��Z�����.��r�o쭹�R�c�ZD��&��-0����|���!�`�Y�Ĺ�y����pn�_��(^W�z����m&�Vw�4"�iǨ���Ev��y��S�}�C����!f3 8|a�n��XN���I@�i�nt2_J*�u>�� U��>8s�h�	�0h������L��M��^���*n�S��>��qwItwِ�����B��i�=		up'���_D��\)ˆ���'z'iX�`N׌	�Eg��ŕ�an;�P/�?�h�.JOo���ِ�5�7Y���{���f�90�����c��1JwQ}�n��T�����BKԬ�5}�h�K�]'�*u�}}e�}6Y��q�^�D[kS��S���J�A��,ve�<*U*�'Eg�g9�x�z�]_����=^��j��&�5�
6Y5��n]�|t�/=���`��z��~�n?g�t�����ig���VGL��C��[���0c6b�<v�a��"�ഄ�at�`�e��WQdɃ���w()�M�tވanu+E���B	ۣ�x���پ��5rT�
�K?Q�Q:�寉�S��T։��(L
_���J�yPAL)
�������|���4P���>�mc��ѳ��r�7���I�����L�j�Xw�r���v������<v��6���K�xRF6^Z��G:(�>"��ZF4t�OG�kWI��J����}��i�%�5�'j*t�y��||2P��noN�����5 ;��c&�G=��yq��s�6�:g7
ݜ�D��h�o������9p�Ln�h�����7���&�шU��R"s%L%Ӭ��2E�e��`eN5s7��ڋ�\��
�������x�8w^��!+}�l���<�=h�n��9B�mv��^����{{(�p�;2��|j�A���c����dQ5OY/����ã����5���NƮ����8\��ܨ8��ڬ�Ԥ���|���։�����U���\J\� #�YbjEQ/���̙�����F�b02�&c�AN.=�C:�a4��٥� ����"a -1E1.�n��:��)���B�h��u������cʜ�4ܵM>�ɔ\����뒀
��GN��=ኌ�
�,��O��.V����k����"h��/���Q��J���9WG[Aj\oȵ�2�)5��&r&sk��SR��o5�e�����Z��`�8��#,օ1�0�씪8�Ʀ<;�E�/�������;򄷃x=�n��C(�j[�a���(z�k�鈭���a����䪕3�$c2���Z��)yl9�kF��g���)9cuJ�:�ߕ6�K_�hJhI:xm�X=�mZ`�f-N<k��D������k�S�C[�}�!Me�MZ�1Ѿo_?��|u>U0�����熪�����&��UY/7���,�#���i�vO�'<t*��&'��/%t�j"��.NϽ%��9�.�3��4���j� Y�S9���*^�gߝ�1 �ʥ��o��d2f�;�r�J|K��D�rK"%yWT�,�1�T
~�I��W
��#�A=�he��U��%�I��Peʐ�c6����M�u����AsųE�,8e��Q����i���c(��<r�*lG�F (7v�,L�DJ������rJg;�-��ť�٨
�84R�U��n2�b�B�y��9�Dpv���NW�Ƹ��YE�.�S�O�r�
���~������ԬRH|+�c�����	ׁ�7s�&�<�g�r�*�!��p0�hh���D��zT��4X�f�O9���W�8fs���s[b<�.����4zsN����ngY�n��ʑ��R�
��Q�h<W�߉��i̱wHp�5������W�^�9�P��BHx��L�$E�f<Ր�\l,���w���orv�i�F^��@z����	ͣfHB]E�7�/�r]U������މΪ���!a@w�(����y��ہ��.R�wݫ��Y�-~}��ǃ���l�栢�7̀!U)�2yfa��� ��_֏?30z�vvRD%}m��Kc�^?��Ȏ�jl�@͊�?��3��*@�~n�������b4O�)xf�f�!��T�u"��H}U����y�\6��ز�$��rn�ޤFeY>���!U�����Y�W~]����H,T�`x5�D	j�~sX|���	(Zg�v�vQD�g�[�D����#<��I�-�Z���mY~�|L#�j�d�J���ϗE6%���D0��MJ	���~�&(3�� 4� ���N��[�D������ݞj�����';�����H��]F����(9��B��0��aA�
^\��xj�=-�ԝ��f����Uiο���U݆~9&��(��T^�2d�F�/�M���T}y�,���1��߽���s!E+�����ʻ>�X�Z#�i�
<���������V�<���!�7�#��aÔ��,�ƕ�e�b{�e>h�����j��[ ��)������\���m�L��qx�P�y��t�W_���m�k�T������K�P�̓�-�v���B€�#f��tI?vm4'-��IO�*Ty��ˎJ��h����3���?�5�.@�U;�U8�$�ق��d����b^�q�������jn]����}uH�_&��<��P�o�r,aY'.���;c�$�S�?�K]Aq+dc�,Գ�P�¥h�ź�^~W4#��ϸb����=�Vn�f
���
L&>�I!�����?�ʬ58\Y��$���A��,@��&[RCQ��r���p_���o&PT��D$K�<9P�^�2���5<5��!#��
	j�<�f��Cu(��-LC̯O�e��{�Y[�J�j�۷��],����h@mG-!��-��ϊ5���wӁ�	����kgݸs��{�k��_p���k��a^�)\��DQ���q�,ͱ�0��,vX��i_����UԪ�p�R�E�I���'�%��.Kh�YO�h�7V�_�C����L��{�矘cG�o}v��0`�|1op��́�|���˔E(cLo��sfBഗ��Ѕ��9�JH���}��)G�7�iW�G���N���g�\Y��zY�~P�q�{S@!�<q�/ňbU1԰�j�p)��qc�5�ۯ����Au�Eu���W�G�Nٹ�PPc��a�8�|�I´v�&�"DA>����e��$���@c7�<����	��y(s���(+磈��r�2X
_����\}y|�ǖ��#^*, �\6ǚe�A#0�!;�س�C���m5�u�ߥ?I�����*>=�׃��ESu�C
�Ao�ד�*=ߖ(�X5��*�Vd"2E��3�[t|����!�k��{J]�d'��8:�	�1�G4`��gg%<�Y�e���k��8�8���:N>&.�nvڜ΢����\h4���#�<�jk?~���}�N�`Dz�CS"�jeX9�Zq-�'"��,*꜂(w��2� Y����494na�xD�0�B���}u,�9��u�)K�\���a-�
�N]��|��{q�I$���)��c#�}_�A�p� nΔ�n"AT�}�s�	�r�x�����E��W��0Qz�m�#�I��Q�4���l��.��Fo��*�Gq~TiJ,̼zr��7�7x�;���wY"�>��z��C}�j{BP�������W?��Y���~su�h$�\�
ˤ��Q>��1������h_]z/b��
�\nr�9p��V=%{��˨7bie�{��G�vg����p,H�to4Q����Í�(��9����t���<{�3��ݝ�
��ٌ�̓�{��A�MY��ا�-F<䏡��/�Y����O[�5�H�}،��d}�0L��4�2#B�y�
�W5�JmS��e�K~�ܦ���T��rO�P�d9Yfs�yғ0��CJK�����,sQ�@U&j�Oj�#uqj�y6�f����r"��P��� ���p��ԏ*Sԙߖ�h����B�lQ'��Z���xӞ�z�����!�'�B(��2��!q�?.���<�݁�f��!���B �C67G�
A�\{��0;'bSQ�!ռBs�O��F��Q�IFNCb{L'���4��ɌMnq��t��7��p��T;��Ű�S�7ɔ��&��1���fn���(�f�2��|�@���+2�]����zV�T���<=$j.�A�PFQ(�ip0����<�A��
p�d�P��'����6D&y�6�r���=jI}����R$�Q^g��eU.�M~�v�\.�f���׬�cw���D45��ugM�1�of�7�\6�&�9W���������VcK� 2��{���V�qbg?2��$~3s���li��?�o�B�,_���2>���mvt-GP?wC�+�����
��^|?����>�iX�����KⱮ�"WP��B�.�mw'�eO��v⺟�5T��9�'�:�!˖_��t�Q_b�@�=��(K+W�=E|��|�%�I|�%�p]mo�|��ܺ��E�D��.%�V�r"�*�Is�K\�/��a��BO=�Q�=���{u�(s��<i�cD<�)<�N�W��fd��8|��lW��ŕL�-u���� [E�����ϛ�Zuݞ:"�ň 1���>@:4�*:�)$ԲI��ۙ�����q	^}��.>�\�0�"vY�{;�,�W��T����P���!� `ԙ��[�2,���@O�c�Z�Ϩ��z��s���M�hg��ى4���<�e�۪\���t����W�u-���~�1�D�_�b��i7/�6(�
w��6��s�D�XK���)����ӛ�Rh�~x���h���u����[$(�ȃN��,x�uS�=�u���y��6���M��I�᜛�Q*L%[����
j��a��r�3n�9���;�^xn�3/'f���
��m��{���*n�����JX�ب��
�����+��F���7i��@���`��/W�j����)���l�U7���/�)(�D��}��̛��Tݳ�0�Q�—�u���۾�9ͶR��:;�q{��04�N��־w����jŧ���b����b���c��R���O��—!sH��o8��Iva�Ya�;b#uʥ�xQ�ѐ���3� 
7mD�{�+�ά`���yZ��Ýޟ����{#�
����[�+7H�~t�iGj�u5��*�̢s�7t��m�l�J�|]*�X����~k,e
Ë�X�6車¾�9U%�������k�ʗIt+,�P�>4bH|�*XQ�Q��:�'�^`3�%1��7�odwZ!2����(�*���
Ƨ)B��]�~)��?�;T[��<�����y' [aFT��D#�#bI��Ȣ^��*���!5�2�-,���)�,�L��J�z��;�uS���T�LbI)g��y�M�sT�Su�M�@��	
x	������s�F��p	]i��'v��qؖS�1Y��_��9�7m�x�_�^K�:ّ
�Y���jy��bg��b��N4��6��h�u]�[VI���I
ưX|�[U���w�gTy�!+<���S�8vB�`I(�E�8O��3�!u� u<�:_a�����%�~W��I�"����� 3nB��͈�e�1
���?}�<��'
����y���-K!n�Q#G�bEM���`�(��*|��p����npk�i�?٨J�ݬ�S�C� �/@�G6��J��-̧&��盯�֛��7g�_?
_��������6�SiL��"�6��N��d葻��k�;���b��㮪v[L�l�w�Тd�*�A���Pe����K:������-��0+�Gz�Rz�(~?O}R��(w߫�zG��u�}�A��y����l��^�8F�ޗ�O_�j�*-��f)�<#/��8�l�*��n�*�s���I��rz{Z����0`y�6�|�ag�Ā
�Y��P��7�-R��dTt�e���S�*��\qX���Q1�ugU�$q���@���,M�t`k�!s�S�<Y�`�~�$�]"��.�N9w�^p�N�R++1Y.������fI�lƪ��%���/���?��f�V�1�� ��|��D�1ُ�t��k��N�t��ҌӷWWo�V������R�t�%3�=	���C�1P�	�ZD��`6��+�@4��fe�Y���L�MS?��+6W��n��k��������l�	!���	4؟<�/��B������I�~ʒfW���}����JmHq��|n��`�'ꧣS���my����Ur���2���a1�xXw���$�b��„pzl���ZU�ƤzK�������u�zZ/&rxk��������'�������$��LN�byB�V��?TQj���&Yq�������53G�t����<N����`5f*��<��l+%k�g���H�&���\���{�5s�~Va���J�y{�E>O��l!��v�_�`��C�Rw�b]�Jo+�:Gi���	>��K
�_�U@g^޼�˳��j!�8'���&H��Buj�PP�:o<X����}YR��i���0�����T�̸2}�-'�׿���Q��[�Q�p¥y��E�]<~��ԝ��8pS�Z�j]'*���`�K�V,��3��ϷinQ�tX��4;�ƀҐ�C�[��Yi�|f5��^��w�"��z+��̺^LH
�)�m�{�M2�3�1M x5n�Q8��ي$�i^��~x�E�9�92{ta_��P������8=~��7�_|�͵Mz)�k�D��R�k�p�G�Ν6��Dz�d`�[�1q����3�`kH9��*�����I��x�v�fυ~K�~�
�O�1�8:��������=����ʊ��!i���ߦ��6[~�Gcl1�҈�˶�Y�s�7�A���L��j�&����y�'���̃����+1Æ��B��b��P���������sK/�Y�N�Kl����Ϙ���!�D�}�w�(���&>e��(^5g4�z���U�����^4���tn�t�:���e?�����r�0��y
nȞ��]�d�5{��?�(���?"�1��K�-��'�H9��3Y�qf��TW����x�eg6g�r=�S���E-�1�h�`�zU٦$,�JۈL:�=8
?""*Φ���py�Qy��T�1�]v��z��H��A�����^6T��1á�'R��V�`�7h���{p_0����e���!�œ�`�E�r��"]J�_�$wq�)�t{�!�V�4"��epٴ,�S���)&���w+��$��$��?YVܶ����e����ze����1ŋ�U�=�/��ҷGq}{�>3@3;�Y�M�l3���>7f�N�u���΍<�U*���s�{��@N`��r����k
��v��c�N�tUF��Nx	�,����^��C���|0�T�}5��z�ä���B�KݞE�}�3��S-s��5��H�b���W�#-�o�~�D��C�����"���iW�J2���FɄ;{|ñ̖�2��6�j��3I+d�j��R�
��RfP;�q9
���ۛJ�z������D������Ƀ��L����x� ]����v�]�Z�%�<Wb?l��`C��bn��Z)�>)0}�4��y� i�����B���A�iO���B��T��uP^��c�Bx������5J KR�������b���&z���fp.z§��C6�w�
:����qF���F����O2���ڝ!���K8�5���\#����1a��mJ�p~��9vƟq��H�İծқ���olr�5k,ڟ<K>�%3/�F�7,pc�����vTs��h.�XQ<��5״x�n��G��4Vсqs�%�=���*�`���J&jv����p�R�ܩ�ǟ���������f�ٵ��k��A@F�U��[��C ���A<���b�HjE�px�:��1��;�j}1Mq�o%)@�y�����BJ���y�[��`�q^σam�x��;���]�	�\�{���9�#�J;
8:
d�����r��O\�j�6��Q,<σx���kĞƌ]x�,�8��$z<��J��<m"����E]������Ρ�2�A�0�e�D�O�� �v C"��f�3�,W �Ȫ�-�F� 8�8@�dC���L����-���5dۛ���{��-��?�MmLX��rBnu�f�A[�Y-��H�h3
<�jMuy�nx��"cn&s1�K���̮x��63����r��<��1>��+�'C���[��
�:����g��J�V-�*�	�Ђ~�:� ����xxf4��ĈG��ܙ܁��罿ŕX.O|L�
�3�12��R����u��P��o�D �.���pW-L��\1$!�����t_'{���oH
�Έ+8Fթ9QB|���L5���HB��[�5[��q�y7w*O±=}��,�)��T�m�Q����mG<{�	���&_{owï}�!ܡ\񮜻HP��/ȝ�R�wH�y��:�4;,z��2�,ԟh��r��Yʒgi-w^�2fa7��*�c��x�$�H>�;��Y��T���X=��u\��2�F��
4Tۊ��U^[��et븸#�(����=�$S�3��#�}��߽h��߽����W
��pzʩ��eu���vbcH��?�-N�M:�͐kϳSv�f��CMaԵ�\�Y���:�W�.���7I�4N�vQ��@�ʮ�
�V��YC��i1y����8�pkV�b,���բuM��	�62��Ԣ�ʯ+��(������>(V{`�(ڈ�W�ǿϝ�7��c1�Sα0Wٵ'Y�u��9�8���+M�g[�	�w�Q�kX����y2��[	�����M������8�%sVT޹��ښ
@K�0\h�y���hZH`n�Yz$~͹q|�qN���^x�>7Z�?�cϽNL�$�w�Qpɼ&�a�lb_�4�@^}p�L��P:�8�ow�x�
��N�f����g�K�$U�4�甓��\ ��j�ފ4[��v�f��|%����	�'q�����υ�T�6��)�L�r'	����ؚ�[
%d���V��k�b~V�e�µ��-PG��	|ӧ�H�3H�c�+g�Pvj
s5�^��)'%aF�%��'>�̡��3ԣǴ�`h�~�D��V�ljfFL�*}�p�B�a����I_�P�l��0�Wʠ�"�1u��I�b�e�)M�fnLB�Ȧ*��0l�)��9����̇1�%��ÀN��e�_�C<��PK�F�A�a9{��'�iR��qGv���[o��.]5hT%�|Y���}EiQ�饾.�_[�P�ji���FtޛCNu	N�ug4Yj�8�D\,��F꾮�3�q?8Ϳ�L�mX�IE�+L~w9�
R�$[뀚"5kj����ˤZ�Eq-�����٦��.�3Q]�iATo���Ll�q��X(qZ=��*��GS99'�#�H3"$"�M�V�Ϟ�9�8�]y���v5	Y��U]��~ڨ��C
�=<Ҋ�uO�=�/�������dmWR>nL��%�~�R�r/�����jٜŸǪ#�jD�����>߸!pX�B)t�$B��O�9�!Kޚ�f�b+��
9��G2aޚ
m�A�}a�N B���O:�ٚ�Rn�ͪ��Ǝ��g�W�ZwͥIC
W]~)%�Mn�}Ɩ$TD�v�O����^��8R翶͡��I�b������m�\�G?���?��`Z�r��q��/�h���b'�`�W�Ә:�X���L<I	�W��r[ ��1%����k�4�K�v@�ν�)8K���&6Q�:R3�H�X�9���̘?	�Ɩ�2�>[D)@&��XvĨǠh;����J`P�Y��tS8����m'W�A�XUi��l�Q"��)�I�+�n=h~�6�+�ר�5�q�C)�ۉO��
|:[�@�W9��Uٵ�ON��w��ޒ��-dF�6�� �ȹOV��`,���2P�'��*(�–2���u��n)�J\2/j�yG�4ty�R�\r7)yW�@���ꍊ�Y>i�����r�aH=��p�9���]4��4��߇5%����v��ʐ`K�B�1�(EY]�[&�~�;o�8��|���w�?��4/�	�A85tt�,
,�
��e�&��zY�y�#���J
(�s⼥e�6p��9]ݶ��Ѫ��7�ƑƆ)T����6�W�`<��"���06��|�M�7-Ȕ+���=1��r�bV�F~���;\-�hL�d������7E-�j���̭+�����-y��������\���g�~�}����������������*s{fιY-�.~��Z���׊
&>��
���?C���(�5�(Y�؞�y�3Bvz>�*�/���+�߄b�CDJ'-���G2Ao�R?�I�$&�#F�kw`$���;�D��D��t���I�(����@]=,�YC��)%�$2��k/Pw��.�K/�U�\��mI���HZ6+�0��(�QD���h��Qw
�����Ki��-öe��A��.L��k>�U���O7��#�է�^�l��!3E4nj��?h�Ac��&�f֭� ���۫W/)�c7s+�{�˸�=jD��C;�q
�ؖ�m���܆ m��x��(��N��>H�H���(�$B���'N󦊂xO:H��'�6�6:�|N�%r|���jL��"Z9s�;�׸-N�[N���Xf��F�rTv8=��{>���F%hJ�rE���0�~�G��ǽ7��>@6����깥���r��O{~=e)ٞ�N�~=�gR�n$��=�#}�'{#��G���'�G'#�>20��?�>U�X��}���O�!�w�ɯס&�	NG�?6�<����޼����8�Y�{��&���D=�HHy���	*���ž�W�{S~��P���2&���ޖ�L��sN+�T��vޮ|�)�ȥ����;C�u���9��4�9�����ƌT�}�6O�mm<Tş��I���iX|T��*�����9;���ΐk�b�"�{�Wđ.���9م:SD�L�&,w%�����*\9�㻝pR$���9n�S韋�8:8��0�D��4c~k	ݠ�KzSir]�rP�t�BvH�(�x;�9�DE6��3�t��Sz��f�=�T�֤�~�˿+1�_�c{H��E,�˚,�e3iB6���B6ⰌdG�#c1��"%�	��Cm�=�q�e���.��֓8�q�F��g����N�R��4�ꍣ#�ꗃUD��"J�N�8
gR}�R�N���Z�7l�~�WԄ����2w4I&�((��'YΪ���Y��$�	>��UY�#��+�ԯlŵ&�	9j7+�(��E�a�� �r��p��w��^>����k���`f���a�_m�R�W��_��;�]O�6�S��/��j]��ܵd�=]R��XY�K���Xu��;o�w�Us��`�L���W��VPE�ƕ��}@h�M?Kcq�ӃO��sy�D��ޢz� u�J7�P�G͞��R8sgUz��&̟����j���K=���m�r%�Ksx��� �|(������8��́��95�����þ��E]��2���1	�����~�9�܉��bV�d���
v���Ny6j}��U7�<��
Ǵ�;CG�V���ZM��ckԈ��_#Z�{z�hEpŒ�=:j�2�����M�.����`�t�����=�n�~���#qo�kR7�&7����oT��Dw�1��o�c��;n�*�ɗ-�t�;��N"oҢ�i�
��5ec�@��/��8���6]!�	?�P�̀��3��N�խ�{Q���Y��q<���^�pu[֙*1�W�{�P�T�P��Z�<4��W �t@�ԗ�×���Lӓ9�Y"��˭��)z���W6�W�����Xl�e����ܨ�j40$)_Rq� �w�L9"Z���	�BĊ���[V�p$���Dx_�28[���
|įJ�nHb��٠��m{�Q`gD���A�ފ���{`\��@<r����/�t��֣�A����k�&S��o�V�
}�m�}A�k�v����Qd��T��ȺezGy�{)n������y��_J
�����<;�;L���W_�/��Erq�"����́j�G�s���;3�_�R���Y�p�
�m
���h�XxB�e0�����m$�qC��&iE�l
`��E�={�X�&5���^����H��5�jS�jgc�����a"%�F`���n ��t2�=?�5P�k��K��g�*d�^s$fB	<���jz=��<J�B,x3� ՅC�y�@�Ú��k���*�zI�D� �;�5:�
�lq�?{xe7��N�wN֎<�8�p��ź��k8'��r���L�)��W��0{(҅L��y{]�7l��@b�D@�~1au���Oʿ��s�t�tX&/
9]E��2��ɜ�K3n�P〆����j�Ή��ŭ0��S=0h郂H.��?l������}�l��Zt%as4|δ�O4:eE$�i[��ԙ���_8vNi����3ds�p��+�nx�N��2�����ND�۴�Ѐ���7P!���uf��?��L�[��5����%$�7]�D�y&�|�8�ԟ�����A,�4K���#����i����C'?����:��aE�[�q��0P�������4c�ikw�����ƃ�ǩ�;Q�5�ZV�Q=7����M���0{x�>���Z�+���i�����#o�;8��,⧂PS/R��M����ny�-�%_�y���=�Y�ц؊����d�|>���g��i��;s�Ёh�''��2\e���"ǃ�y
5�t��#e��yD��ɓ�;��>Q*��4���g�3jU�t� a�V�ѩ��/ҏ�b�0����THt�tR���K��,V�WR#����Z�/4N�\�w�X����M��6(fT��jΫk�'�{���<ö�l|�!�S4Ah�E��6lNϞ�
WQ^�dݓ
!�7St,�q�T��k_W������,H.��[�&Qf�0��
M-+!b�<�w���i-Y4�m�D��(�o��3N��䒤�h��Jg�J����/���#,AEB9�V��'#�}��݉n/K�ISss�pg3�$���q|��r,`L�<(Ҍw�W$�d��|�m���c���Ms_��LB��4+`=7Ѷ��[�Ⱦ���֔��T|�H�"��Ryˬ�1�*;R��H�B�*,AW��,�t�r��JU�v����������UI�4�s�ZI&AR,|%T����og-U�R�W5����_l���k���[P��wp��M�nָ�y�h�w���LX�km4`;��.m��n�ު
�h�Q�~Ch*�2��E;�R�M��;�y/=V:a�RF�_��`
�z{G}(��'�2f�F}v6���W���6N�հ]���pw��<�������o��`�y�hc���F}_@��Jx��Y� #�"������B��4Ma8�.<刮gYj��{�7��:s�c��T�&y���5�
���r�
�C���Vt����k������2N�[
�_�Ƿ���ڲ,\�d���kOȅ�Ɗ�,+���8�]���&d�t0���2I$�?��C�`�o���f/qi��0t��:,�L�:�Y���f[�(�c+��j��s�4t?��.���LG	cO�zՇ /�� �cԭQ����,�9h�Q���o��$vb`�f��@�;1a����c��?��	(�m多K��c�W5��ߟ� ��Q!@���h��+�\���S@Kӵ���g)�w��{'c����F�p��-�*_��ے���%��b���o��?D��K�y���-�n����HS�eT˓�f�L̈́W0�|�sa}�ԩVIc?`C��&�E^X֠&B�g8�l�F��%�3��y�j�	gq:ɠ�[�X���
W�t‚�څ_g��lP�!�zm�>+-/��,�q��e�C�t�=�O�J��<&L���u�3z'��A⨥K��[ҐAAagb}kN��$K�h����x��W_�t���LG����x}	8�K�;�z�<��ͤy�o�J�f�$_���ӵ�����.'��l��%�x_�.����"2E�)6�g�}��mj��(ץ0y�S��G_L�󳢁�6e���pۡ�xMu�W�~†�4�U�ί�E�����Vf�V���7���Օ�
�di׮
�I�'�s�˺�Ф��]���`͝�lev�U�oY�ց���Up/js�{��"�q;�GAE�>$~�æ��z/�'�}�՗�����<K�NNvv̗4��N>?1��Ǿ�?b#��N Z�K7��/�*���r����G'=�Rm��g�A����|Z�&��L|0�E�z�#-��sin*L�x�X��|��;��8���~d;����c�~�b�9��EڡJ%3t�I�|��Ş�g=7��\$�_�K�-�?8(
%�%
��6��Et����=E�`��,�]�1��;�[iK�n:��A�N�ks��Z(��6�_�M�>����"<Jm�4����e�b��\m-v�i���5�6:Ƽ3�^���p��}jh��<��<BJ,������.��A>��������Y�g�#�-��8�����>e�����g�^�x���+���������g�3p����oc33s�O~G�9f}}^+��y����"���~�3T�Ѿ^E�qe�RF�L�lz�JB30ц���[2A�d�
p�T"t`6��f$Ǐ�O��u�
��K�����@3����h����k��%n��gQ�����9@54�����5�q��t�R�*~f�7h���vԶޢ��7���Vh}���dS�hv�gI��x&{p��K�?8�0)�
���×A:��]̃�u{{c_6jr�QS�!�Y9'MK�n[ޓ7�3������Z��i,�,*�9��
R�LcV��!;��蹿�9%L/�ֱ7��Uh��Ss�t�h�̺/g@�)`Z�T���j� ����π�	1uɒ��@x�9��={�v��C���w@K	�'�&Q���*�k�������}�o��e-�m���ߠ��Nmۋ9:/-�1���d�3ijc��g"���֝W~�No�i� A� ��ea�&YhkJ�hײeR�	}��]7��o(d'/��]:ׄL��82�Y�Wؖ7���U��ݺ��
�[$��o������u^[r���)����>�Vt	Z�a'��\�@�R��f:��M��iWo��*]2�7�m<��`�E���=��u��%�y�s�_W�eC��74hP/���m!͸"Pj�@S���kR�>j�|�W߿�zq����8��1�' +K�2���Ӽ�^|���}�[â��w�Ų̯�I�W�;#�)���t僤�\��س�C�i��Y����?�����s�y���Dz�I��8��>�_>�6�������v�JMJ/�g/`1�O��+���L�g�?�#U�������u�TqG��܆�*R(a��T��$%���2�N�O�c׳���W;G̷X��v|��yev�֭{�`��"�J��
_���<0�X��b�㥚_��Ib���֡��rس�B�ŋR�fΙm1�>LaN�ɢ^P���J>5G�1��Ӈ����Ak[�SK��7�����23]�Ɋ������~U�[����c���_�Ś�o�Z�^X�uA?Ǥ���y)�0�Pp�]f�l�:�#��J�������1e��fL���"�ZL�;O����^`�A���C@ul�n�u��|Dk
-���y
NWN�RP=b�:V%��7��2�2�F!--1Vs��7�$���od�o��R\W��q���j.�3EjV����V��t�R�D܊:�;��XȊGY����R���q�o�-@&g�wY�A�kD�	�P<$d��
a��*K�*�}�P'��r�@)�E}��~�:��`IIX9�E�?�ޜ�r�7t��`��RB+�$71�|��6����͓�����Ñ�����&����P�$n�dez�k��m#��ms
EÁ�,|�rZ�_l��ղ~�������@�Ze���i�x��J��j�i\H0��D�l�\�Um'�<�^����6���ȦL٧��"��DSo-EB}u��3GY�b���t\qK����œ����^���)�����-Dz|{x�T�#�<Jpty�W��Eˆq���Ux�f�޵�=5��4��g�h�����t���F����ڣ�8�Ob	�pI����"����l�j�n7���m�Ӳ��2��^e�$�ȅ����G���n~S휙��"k�c�7=m����^���fm�l�O�y��wOC�+dU��|I���A���"O���^~�Y���SEN��MO���}�Y�wJ�f��2��:w���
w6����"(��<f{s�8�b1a���k�F%o�Y�
��[�s���uE��i�]�[ʉ +�gD��ֵ���	R�2��q��&E��'��Y/��"6%�M���c�gbG>U�G�(�jm��D��v���7�2��7�s���FӴI�Rs�R��	�k��.1���-M�$a0���Rd�%�q� �{>d��|�J3۳�,p�P��PI�6��?��u9YX!5���;Kݙ������N1=6�T���xH��ٜ��������֨��1��IJ�L3
0�>�_#"1Ue-	o吐��G����RGf�H�9���Ս����W�����f��M��j
	@I7���R�W���uR�t�I�����E�@iH80�	nMO�,��T׫8+��y|��YFJڠ�Pɥ]�rb�)}f�ظ�G�r�ݴ�8��Z�Lw�*�!/<Rq���%B\�^�(g��ЏΣ��V��|�+f���"[!��V
�0.�.���>���"[ZF���1�?>V0���_�!�|k�g ��[�/VXN������ݛ�߼�aK*��c�Y�K��0���
ې�0K"����V�;Vn�Ϋ
��%5��ٻ����^]����v����¸u���f�'Z�2)���@�+ʰ�rDiy��xQS#.���i/�+޷�ڼ`�[��oj��}�3����QkB"�H�d�|)��504;}?
�t�A����Ƙ���O/d']����cJ��17@��U�s*_���ys�1oV�M�ss8d�7ے
��y	rV&p���dV�Y��N��L2,k"�#���2��n�SC���3�U��~|f~J�0��kdv:FF�U~��)�k;�
��CUV���)5&)�5�h���w����U�$
wj�ҫ$.q��"�m���ަ76��m��@kQ����E>>�Z�0�ޚ��s�Fu^�M�)�}ͺ%�����4��n�Qs�jp�pH1f���+�\���2�-�G����e�Ѩy�!������ܕ�DC�����P�y�B�<  ��y{�>?���n���Q��ѱϐ���9��U`���+{���@�@�է	�S��e�
JR�;L$��0y��^�ܜ/CmOT���0��0*𴁔R���4|����޴ý�
�(M'=���}S�b�~�p�{��d���$x
5��n70�zvj�L.Kc�^0�-J��c��fRD:.�8�6di7~:��w&����.��*`��o�#C�Ip\���q����wQ������#F,`_�j���)J�|�扞�t��S��V�XϜ	�ґh���i��I��rE]v1��O+}~_���1�\J��\2
�:�N��Kzs��{`^��P�����S� I	����#��<�����/�������pm0ejP�(�O��<c���D�6eq�$?<��
;�%��fb���x����iH���J2�f6��8�*��w��y������y�P(4�|C2:z>����Y@Ɠ�2�v�351�(�{�R
�0�mA��'����Y-��$%�� 5V��Ⓢ���A˝��G����a�B�Z��U��t0`�o�9�,z��Z��I`����?�?5 ����Y���4���2Xm��g�+>�i;?�*�Jv9�d��/���^a�B���POfU���|x�E�,d.��>7��0"2*$�����
�_�t�N��G�����Nt ��p3rR���Үי��ZLؘ���nuB9�ٽ�ź]���\k?��j8	6x�\���ٽ97��dω��ey�HC�yF'�x<�"�x��	��,
�f�h���00]M�R�� �K,��Ll�<��M��└�����F��E�x'y�՚��'v��S��������o����p;�>T�bcT�=���C2gf�^��-59I'���^��r^��L|�eU�L mn��ɒ4�v�l�n����e��~���"�MG;�>gr���#�w#칊�
y$õ��Y��T8�-i�=e�(.��Q��Ý�gNNǡsv�{�fWk�1�l��
Ч�����*�6cJ�#��l�gJU���?�xP���ɵѢ%@�(�*9X)��Kk9�M�U�*�g#��xo�l�?8%UN�>�"3�9��aw��%rZ�;J��W&G���Y �`�`���יw�7腐k�#m��	��g�,e�\M���F�IT�� �io��{n~�k}���j���$Ih*��X�Esչ�I0��F�z�R��t�X̉��R����@�4���7� YIJ����"����u]N��Ctl3��W�Q�S�(�����:w#/���4����꘎{�rE�O�oo\ҝ��#���%P./�	8���`T�&��
P>��mj�����}����D��1��c�6쭋{=g~��?۹ץg������H�vF�E�Ȕ��nz�Kך�eN�_�MX�(��Wi�q{�3l�tͨ�q}9
���������Jg��6�)��K:�:�<ꍐ6�q�~����V̒��9�(u.���E+�7-��?�p1bK3�ͲȨw�9:��P���	dH��\���c��"���J���Z\�Bj߸'Ywc� o�!.��\���T���L�mc�=F��F�}����� ��y����:~{����pM���NF7E�W�n��ZIX��
���g��Ѽ����
i���
����E��M��&�8�+s�B�s���X9���"���U�Q{�N��<����\-��>u<�C��ج!N�9��Y��#}����J`ᛩ}Vc��(�-�8
�V�D�(و<&�-L�c:a.E�T�%6?"X����>cf�3��Wl���_���׊��l��]5,p���w�O������"�UA����q6��m����Ev��
����/^�[%��򅢲�Y����cȣe^�g�C�̡�5S�	�y��A��t��W@!�eٿk��
l�H�)ެã�����l;+ ��c�x��҉`�/B+IF�v+�ٳ�e6��W�Њ��:�q�he�=\�;�����	&�G��O$�/�?g��N�q0�Z+�R���)�:�o!ExAyv�#/‘��qZV餉x�<7�k���UVQ�S#��u�Z��	Vy�Ea��,��W=(Uþ��Ah2�_7�����k#?���'}#�^-aE� ��$��k��j9
f�DX�4Nq�#ͨ4�$v��U���ߛ5�$"��Ԏׯ�<ׂ��!�N��[�:��0�
�
s�`�-VhL[|�,~^h�Z����mJż^��R}�<��C̪��Vv�O�0�ԥYQ��z����@��X�9�DX�z������V�Wu���q��X��Ym�M\�\�0d%�ϋ��:��'���ń�!�o,��	�MQ��_^%_]$߿~��/��߽y������]���W��۷/_��]�x�R[�K���__�C�A�¼���Ҽ�7���(�SZw��%�K���j
l�w!�g��E��Ua#7=�!Y������y�I�/�z}u�oό�4�X�Sjݟ�>'�|�_\��k<���
&�{�=����I�-�>�GǠ�����1����lSV~[ksV�<)V��R��hg��b�U,k�+%J��[)���P�d�ON%Dz%����x��Ef�e�!������{3S/�7�_�)~�d̸�%b�h�囗o��g����ߟ�{���kS�9{��M+`���;&�f�ۊ���\\�|);j	�pL���L-�a޲ݱҖ{����’�:�/�N�c?�qCX��I�jh��F����k�.A�9L�9��z��n�?�|��{ibL�D��m�N:���n���w/ِ���U�4�#3���L�/���\��Q�kő5}��^�1	���z����ų�K[�&��~���_\��np�wV�v:/jdO��}Elw�E�v]�6#1�,����8Ԃ�l�T_i�;�����"U\��X�C���LyG�~��!�3��v7]�Ba�^aT�j���m�Hpˣv=�z4�rL���Z��9�����ʩ�j5�i p2��y�Ct��c$M�b�n������ǐ�?�ٽ/0�3�U����_���Y+��4��D^�^Z��l"�h�⾆|1�c�7-��$"4�D��c�Ÿ�L3+�ɛ���L^�V��!�"H�*I����Z&D5�����Pl){|�i0�r���i]�	�K
5ѯ�2��0mIaY�x�Lf��eIc-7�_�ԗq]��-��#�'Q*̷,��VjK��$Xkw�ջ�sg�r�p�No�@�������GN���s�����4�e�۩I�0ت�Pz����$+���2�.$<�uן#�Ea��=���ᘒ<���:���UM�D
�L�/YdM�ϴ�˿_Q�)<)������fA������!}�A�r�V��:�������F�c5����h�^^��,��\�~g��`8�i����H��IQ|�<Wߩ�)��?��j��ˎL�ӣ�n�0��J�g���)�@7��P�<:Nw�q��?$��9� ��2���O���Y>��՝�ԱLF��辜DF��6+�Q|�l��k�&�n��x���n�"���f�ch.A���z&��H�M�%J-"d���PS|L��z�ߠ4�ߤ�NŊ}o������+���8lx^�)��"�#���2��dB��`�^�y3�Y�e6q�!�j�P��*�g�%�.�����{��J0$/����S-��Jq飦a����q
Y�Q|Ŏ
��j���6}��>���C��pX�`珜g׫d]�A����K0:X��|�P49j�[��iV�v�b�{���#tJ�z���(��Ryr�gb��1�C��;���A	a
VN0��*b�觴����]�ڐ���ǁ� .
���#ˍ��ut�X����@a#�
�U�rɗ͝��,��8('?��q��P�Z�jVnRb��8�{8+�L?O�\ߕ�p�y�������vr�^ݒ��p�djj���+�NQƒ�&h��E��Q�2���(������/�؎_�ϲ�λ���g�d�|��^ΡI��ui�~225��*?ȘGW��/�s�O|�l��Ы*�wn���H��D�ٝ��}
�Sgg'���a��G#(rO�^�ψm����`!{B�b7�P���y�;ј������[y�j���%����`Jnq�L����l�R�~��+[�
&��eQ.̟��L�å9Ps�Ζf�1�-���L��m_�ȧ]k&����-�'���K�cK�
40�z"#�H ��[�[β_�T��x�XR�CO�*^��y�m��P�v�ʀU`����o������,�8�T1�̳͒�ߒ�8�vT�l&���ܛ��)1��.6��߼sI�&�F��#�1��Ԁ�3/)�����]t^��̤RHSޭaفN�-w�)gI�sI��˾j1�kҰ��	������[��[�]u��C^k1
i��nG��æ����x���я���W��VEw�AC.ԅk!8����`����e_����:��o���gF�7���z����t����Z//�5��?�)k畒
:�����;�i��I���M'�N��v�[��{-��5�vp��a�ѣ�f���w�^?�?i��٢�����<z���O��?�i���Q��Z���I��@��x���Q_��;���>�ۓ��O��P?;D�����ք��=k����(�YG��7�PKe�4W�{�)k��litespeed-cache-es_ES.moUT	]e]eux����̽�\e�7>)XTDAa
&������&ٰI��&��ww����;̝�d��*EP��*���"	i��"E�"E@��?�|�S��$�������{���yN?O}i����52�
)�VS&��әL�n�L�3GQ:��S�
J��tJ���d>C麔~��
)]��M4ݜҵ(ݑүPڦ�>Z�������)��?�4G��P��ַ�Կ�������S�/�[R:Di?��S�1��-E�
�s)]H�O�v�~L)e�l7��)�%�S��e��N��I�XJ��t[�O�(J��?��E�������t��LJס�BJ�@�o)��wP�EJ���۔�C�����f��֔�G��P�J�Q�G)-]�8J���DJ��G��J��>�	�˿��q �qsJ'S��1_?>��} ڽ�@��1_oQ��{��)�4�tJo�t*�ߤɢ-��>�鑃�N��q�<$�ي��)���(-���Ii;�����ᡙ�J�Q���I馔���v(�3�0��ҽ�s?�ߤt	��9�kJw��6J�Q���؇JcJ����{8ƻ����G`}n8������#P��?�~��X��R�>��������wS�����G"��H�c<�YJ�:��H���#1���Ĺ{�H�ǏD�^:��0���e��C�����ۥ��ҟ�Ɍ�t��X�O�}��Ѩo}}?�h��-(�)�-GKՙǏƸ�Ǡˎ�|z�_p��c�V���;��
}~������M��my,����<��z�:�8�u�����cQ����?R�.��X�g���᱘����߈�M(]t���0�WR����(]D��㱿x<��|Mo=p����_<�	x?����0�"�G�:��ҏ�o6�t�+?�8��y�_��,J�N�u�������k��~���}����Q:�����>���c�h�o�$��I錟 ��61\��[��}<�D�ϝ��枈~�{"�y�8?g��y��D�ӛ'b?8�IX�Nºy�g�nN�U�>w��WN���d����Dz��~F�BJ/=�b�)h78�_<���?���%�`������S0/ϝ���Oql�S�����)��
J3�)��ϩ���<�"ߓ�b�q*��i�߯��q�x��:
�q��0O���|q��i8?;
���Ӱ��zn?
��C�}�g���R:�a^��q��7����9J�a��s�3��X�y?��9�Y�ҍ(=�瀏gQ��w�N�{����ӑo��1����'���t��؇w��}�����30��8�?��>��{��g`��8�?8��ʙk){&�}�31���8z��8�<�;�L����D?�?�-��31��i=�����s&����P�F�n~�m�Y(�~���,��ga=�輳0��;�yH�~��9�*{6�u�٨w���ޔ�Oi���?k�C{���9�G�9h��ܷ����|�5�
�y������w>o�n^s.�y�\���������O��S(���/�9�=�<��}�C��R��G���c��{>�r>�;Zߟu>��5�c��9��M�:��t��z\�u���p�W/�:�ܓ�^���>�B��qoN�巼�l*�;���\�u��E��s/B�����#/�|�x1�=�b���c^.F��_�v~~1��}�b���K0Og]�}q�%�S�]���]��~�ҟ0�r)��KQ��"ߛ��|t)���/�8�\����N|�a����q����a��_����2������a|�i=�O]�����O�_�q�s9�c/����}K��W����oK�@��_�����]8��+��߹B��+1�m���U��>z�ؿ^���땀g_�%��D}?��t��{s�U(�U�ߞ�
��r5���j�{��x_����Wc?�{5���1_j�'�F�q5���`����58G3��y>��w��N�o���5�oo_�q}�W�c3~���W�W���_a^��}���W��5}�W�g��
�}��H7�5��_c��5�K�?u-�/{-��k���kџ�ko���>��Z�g�]���z-��kqN�O^�s��^���o@ϴ�������߀nq���=�J?�[�����[������=��e�����'�݀�q�
�7�y����P���a�}@�9�?O����{��o���?�x����F��(=�F��>�G��:��7N��q�'-�
,����'�1�+��XϿi��c=����7(ݙ������>�r�ߦ�ϭ��}_�u3���ط���܌����$}��f�?O܌}1��o�<n�����[��n��\�V�
)���|��[x�nE�/�
�����o�<�E)]���ߎ}u����۱Oo��=v;���q����ּx�W4m����@��)-�y��Ν(7�N����<]z'�!���wǝ8މ~��N����;�X�.�+݅u8�.��w���]8�߅z_�K��^��q�?�O����O��'��͔6�y��4���я��F�~u7��n��]wcݟ�x��w��
�mz���t�=Jߣ����{@��w�;�>���Oߋv7�x��{1ѽ����ź��^��b>�kz�����{��>�W��}�lv��ù��>����O8Ù��߯��߹��m�����sz�q�3���?c�k?��r�X��~����9�����ypy����A�nj��Q�b}O}�
�/�{�t�_0��/��<�!���(�3���=�!�s��{�!����>����mc~>��}>�a�)?y�p���_+�އ�/��|�j}�}��z��d>�#��>��=�=zp�G��'=�y?���+A}w=���GЯ'A?_�t�GQﺚn�(�k3M�<��m{�?�u�ž;�Q�%���{�|R�?�(�}�Q��G���>�|<�}��c(��c�@����:�>���<��;�q��ɏ�����=�~�8���DZ�+�9zL߯���&���ױO`=��q�(�7}��H�|�X�$֣�I��ß�|ӓ��מĸ�}
阧Pn�S������0ޟP�3>�O��i�{��1/;?�z§��qO��4��g����_��X�W�+�y�_�ﵿ�����g���t�g�����=�}S}�s�3�W^��<�~M}�Y�#�g1g>�~�x�1�9��|��]|�sh��P�3�a�=x���qnr�c}�=�}��yԷ�~?�y����c��x�A�?�<��<�s5�oX��߰n��
�oX�'��s���a����^�zm���7_��7�t����NJ/�\��K^�x�|����/�4����z�-{���1�����q鋘��^T��E�/���1�7(��x��q��w����w������K8��/)?�%��e/a�?��
_&���ȗA�^�2޿�2ƙ}x�w(=���
�ͭ_���Wq����#J��}��ӟ��y��k��_�|l�Ɨ{
��;�a?�꿜�9\�k�3_G�ホ��y�ïc����s�������o�N��
�ӭ��i�M���7Q��71ow��}��>��&��ޛ8�?�'�{��z^�'�}÷�����䷰�Z����[X���O�|����/n�k�W���oM?�6��r��F�Io���ƹ��6�k�m��oc��6�{��86x�|�w�~�<��;�G�xph�a|����\@i���_��=�.������
�E���f�����]���w1����yyW�E���]�/���#�����{���������޿��l��c�p���q����p������|��{8�?z�?�=����~������aߌz�����}���>x_������i�+�>���}�����Ǿ^�Է��3����m��>D�~���Ňw߇���Q��b�^�!�{Ӈ���?D?����&�r��0��?B;g�x�G����P���0_�>�8��t�����?�c�{>�N���\����_����>�<�/�!��$J���M��i(�M)����_����Z#GH�v���1�R��<�"���a���)�q>��ߥ�����Q�/K)��[�B�%Jy���'�B��)�}s#�^�T�J>o8�9D�S(e8x)�,_��h��{k�Ȱ(�Jy�>E)÷ɟ!��O)��'Q���0�>=B���~��i���������(e:�uJY��ό��Y��>X���o�Ϣ�	�N�,�kOJ~�G� ��R��]s����D��X�>g>7B���(��簞ݔ2_cP��D)�'��9����0�G��}p�ZX���:�f-�s��Ϟ���Ϯ=B����F�-�F�w������(�ژ�?R�|�7)݇���GȽy�O^����V_@�S(�sx/��F�������2��8�|o}v�¿ْR�o^�/]����qԗF���%��)��2^�_^w�Ћ]�2�<c]��c��\��.����onF)Ç}(e����؏����=_F��_�~_�+�_�
�w�Wp�
�A��s�~��R�7��
�y�+8OP�x���9Yw=<o@i���0���v�Z��p^^���ۮ?B��ٔ2돔��WGm��b�n�tOֻ���=7���H)�?��ڈ�2>ה2\|�R�o���Π��b�6�y�ц�~݆h�o`�gS����s�
��G}q#��m��;k#��ua=���vÍi�F̧���dGȽ��,��,��B�����1h�1�/���~�`,�{�X������X|K�㛨g��_\�M��7�>�&���[�GR�|�S���Zk���q���Џ�ơ�Oo8���:n��6�~����S��~\@�	/���R�G^0��9���?m�rJ�r6E{Gl��=�)��&�a�{n�}p�f8�/m��������NoP�GO�}46������o����I�ӻO�x���s�4��g�9�+��Aw�d��@;���}��8�{P�x��2~�Җ��=�B�Gn���z+�{~+���֘���1C[cn����ƾ�q�=��}q	�|?�
�Y��ݲ-��;�b���]B�)�7m���G?k{<(e>�~ۣ�N��:��)h�+;��w�9:t��7s�1�mv�vB�g��o'��oOE��T����}8��3�Κ;���θ�;c�7�x�����;�X�3��;~������ڕ;���(�ã�1o��`N��� ̄�R�|@)��G4����e�;�RƟϙ�y�l�y�4�����~m�L����n<�ۂ��[p��n�pX��+�j��j:�MiE���2>ש�ݭW����V��	����[�_/h�{����~
f���׫������ļn:�q'J+�gb�{d�,��=���x�,�k��xt�m���چs5z6�[�q��f�.��v.����h�c����w�<�d�)���8w��v��Ml�>ܮ�߷�wT;���v�ߕ���v���v�ǿڱ>5�>�gkM��^2�p��ه�y�\��t.�s繀��s�
s��d�w�\�ë��~{b.�Giڏ�q��/�a�<�<��<���ý����ܫ7u�j��Q�t�-�b�>�+��[�b���xW���b���sىv�:��͝��A'��vb�ى�}���9J�V��M]����¾�Y���XJ��q-�}q�B�߻��k-�z/Z��s�"���E�������n��/�
p�����w�z�;����ѯ�vW�x��������S����m���^|��z̞؇'��g�}p�8W7�y�gO�����P�{{~�\��^�n���Y���~y�R�C{Q�G{c��PJWt氽Q�e��>��wяQ�_�l�[�������x~���>�g�y�t��]Z�u-�oMG~�Y�{�g|O�^J�u��{�{��0�}���a]7�:췛�+��W���}�1��)=����{(����<���!�������p���cf/�G�Žx���	���W���K/��z�6��yٱ�k��}�����?���|���Y?������R@��ߜV���}n_�?~_���|��y9{_��{��kZ�h�Ũ��ŀ��Gd��~��/bk
��1�[6�308~��'@�S�z,+����0���~��<D��7#��Qe���˸Ǧ�Q�PY��2��e��q�a]���҅��\��}��j�}��Wb죟��W�ƀ;���ޓ�8'�Vq��SŸ�*��=U�����M5���k��5�y<���\Vú�Rþ�� �w,�,7�v��r?���dDf��R�O�Y���R���R��g�b?�m)���R�ӵ�p6�}s��K��'���X���m�}t��e��ǹ���������q����:����q�]��o��<�?��k��~����h���]�}ףi���=��y��y���I��9Z�}�V|�c��ؗ����Y���ك��;��� ��c�|-?��nJ/az� �뤃1���y��`�c�!ؿ�C0��CP_���ه߹��/�5�>�x(��u¡8�7������0�k?�<�Ðo��x���x�p�ۣ�����|�r8���#�/�9�����9��ۛ���~��������?�}~�@7|�H�H�jGb��9R�X�W(e;��)��i~��_�(�
���B�>
��r���B~~�����Ni7�Gc�y4ڻ�h�S(�å�1��njȔX/�����7�E;ӏ�]t,�/;v�귣_������W��s��Ϩ�P���Ἄ=��8��S��q����������<�}<�x<��Ǹ�:�a�	�g��s5x���'��3O�����'N��������G����#��c��F?�l�1�G��h�g?ƺ]�c���?�9��ݖR�����֟`���	���O0o�;��1�9'b�:p��D��ډ8�?9������O��D��o}�����o���z����'a]�hz�I���=	��I��#'a��<	�u���~�OF=e}>�d�s������?�S0Oۜ��2�R�[��{�O�6�)����ȟ�]�S��
�p�S�Gi?�}�T��7�4��᧡'�����i����0�o��Ѩ��ȼ�x��0���[�s�Q�t�?>�=���t��7�c��8�<{:����c~?w����|��[t��~9��ǟ�g��g��L��S�T>���Og��}qә�7�<��31��)%�)�љX�yg����(�ó��w6��F��>��v�Up���s�/:��s���t������\��碾����/P�^��x��^���-�\�<Կ�y�G��{�y�����0o��q�?s>��~ns>��r>��~>��G;����������1�+�G��9���h�p��p����m⅘��Qo��X��/���B�{Å�So��k�0�]5�����_~��?�p��bে\�{�ދ�Nk\2�U�3�\>��(�2\����.ż|�2��F���/��u�a��p��/�9�2��W��=�����||��7.�ϸ\�?�c�u_�}}��X�[/Ǻ=w9�[��\|�
�����W��C�@;'_���\������߻�+1�߼�ͼ����9?�J�������տD�O�����>X�*�g��0��Wa��\�*��*��G�4��U�ח�¼��*࿣�����X��W��j܏���נ_�]��8��M�|/�t�9��\i�_���s��א��x�����Z�-�r�,/��u�ˇ]�|�^��x��b_�[���7��G�7�G};ހv����W~����4��{�p/?���ވ�w�1��܈���F�۟n��΍����|L�����q�G�����݄��z�C�M�ߏ�	�.�	|�?ބ}����c�cm��k�r��Öc?\��ă˱���Z�p��G~���7��f����q_uQ�2�g�������3nE{܊�~&��7|�h��P�o��n�>��mh���0_݆�៷a�enG�|;�顷��O���X���@��w�?�;����\8O��s��;�.#�D����M�D��މ}�z'��MwN��Nſ�B�6��c��0��]�7���#}>�.����¹��.�gF�	���?aM)ۡ��'��k�F�?ލy��n�g���=�[܃s��=x��>z���ˋ��z��{�����:���<�^�b�?����_���p���o܇yYv��	܇�_}��w���;�S�C�}�~�{�X���r��?L�3�?���-��]�g�y���_?�~|�A<o� ����A�wۃ�_���t��ྚ��s�_��_���g����g�CX���p����u_�!�w͇GdF<�a�)�(�����#�~��~�#�7ޫ�=�v+�b�Ny��%�?{�Q��v��ǰ�{<���cX���a_\��ǟþ��c���>�}4�q��](e}��㘗�G���x�z�����+����<�yZ�	���8/3��~i�	����;�	���	���@{��?�s3�I�ǵ�D};��'Q��O��ɓ*�z��,���'�?ny��˓�{�`�S���x
�x
r�}�B��<�z�|
r�?��v?��.}��4��Oc|��7��>�䯠�:�
�ǩžz�����=��;��<,y�r�3(��3h�3�b���,��.���\�,�ŗ�Ÿ&=�����lJ�.$|����a�/Q��_�a�7?��w>��z���z���@�,��|�
�݋��}��/`<7��z��uڋ���"��!���u|��E����z�s㋀/�~��Ǻ�������;�3/�o��{D)�;���i�˘��˸7{�꒗q_<�2���q�>xp�+������W�O�
�����S^����
��`?�*�ꫀ;W��z��b�?p����#���]�}��k�@?���?�\�?����}
�[��J�k�#�������0O�{���:�=WӾ����c=�z]�Y^W��u��-��_O�yؿ_��{o`�_|x��7U��&��7�O��7�w����_�����?��\�O�{뾅}��[���(=��-�W�8�F����t�;��{x�W�5"s/��a_�y��w�?.z�]����~~�]�7�7�Ȳ����6����>:�R����f���s�{اx���>[�:i��x�����p���{�>I�ټ�>������UO�C�㨏�o���G�S>���܏0~�}y�G8�+>�z?����?�1�+�1��>F��|��]�1���4���q���1?F?��1�_A	����y��O)�ۗ)=�#�<�R�׻(�}��H<�R������4���#��CJ��\w�H��;Q��/�tMѓ	:�|9������}'�[���H��5z�������#(e:�jJ���R>���<�<��Q*vMk�޵?5R���2�륔�57|
���4�1�R��i�� Jy]~�饔2�����׿4��� m��R*|qJ���g0?�}��G��,�M���e��+��'z�����y��,O\wM��:Jެ���r���ϡ�c(��sX�g(�}���0ޑk��aݵP~J�^j����?Z���h-�c�����ڨw���˔2?~m����8n���G���xm����c|s)=��pJY�4�؇�}���0��~�9�#�.k�"��Jlj>%�͈u0�-)e���:�w�:�ߵ렿���߷�|4	�%�~	�=�K��������	J�^�ϗ�:�	:n]���u�/�����(eyϨ/��:;|�ޤ�c�2}�R��f~�ZA)�O�P����7R�OwS��z����R�k����<�>����&_)����|��U��e��}�&�L7vo0R��7�8v�����=R�+���_�9|�R�?���H���u�?�!��
�oo��
�/����@}�o���G�����7)��m���k#���~�￶������7�|�dc��7�<�1�a�,��w��{�L�^E)ۡLxz9���5�1O)�+~K�^�G9R��e�D�(�s�oa�-����9�n�q�3��þ��R��ߥ��V��9�	�w�L>G)�uӾ����m��߿�qm7~��Cߧ�񛟌G���|oS���	8��L�9�������?��}������7<؞R�{�7��m��>mS���Q�ڳ�b�_����֫�R�k�T��l��r��p�f�__h�yMhg�&�)e>�M�gy�H�7�p"�qZn��7�P.3i��IX��)e��w&�>�#�q?�9���2�ӹ�H�}sK���)e=�����
�}4������ެ�G
^Q���[�l�
�F�6X��m�J�M�Ô2����������v�o��o�~�y{�Sf
��b
��w�`ߟ0�y
��십v���{��o����C)�]g�8�莘�WwD��wB�wR��֞:R�æ��1�!��׷��#ϻwg����<���	J/g8�x�z3���F
_f�i�7'L��m�觔��(e<�m�H��|c|+�黭8�Ƕ�gg`�;Sz'㽔��i�̑���>��}v�,��)e��:m�+�����۰N��a�_��~�S��/f�?���~�d���7����.�_����;���/�)x�<�ë�[v`?��<���G:gr��!�L_�dW�oW��)�ޛ�u�h>���Α�O��N�Cwb����P��]X����\����1��,�ؒҧ��[x��E���"�EX���{-�
p�dJ���#3O3>�;��Y{�>���k{b^�=1_����k{a_���o)e������?����̯yi/�?7����X��{��p�G{>��7��U��:J�@��я���t�>��m��\B�D�
�y���܃��
��m�2��V8<���f�2=1�砫��n�u�vc�\K)�O�k7�o�C��X�!��b�s~`�z�Y!�{I�����緆8�O����b�"JO���x�����|~��>��\����tA?깭p|��H�WV(�����3�)t���b��c��c��]�u�}1�뇋1�[��(�;
`��
`��`�D)�k~4���������ZB{ǔ/~U��K��J�_�Пu"��m#�As"����H�-=�������ۧ�}{k��Wƾy��y��8��~(��~x�h?��(e���p��T��fU��T�,����5�F��Y���T���
�1��pn�*�뫸/׭��)5���0��j��_��~�c��w�<�� ����g���K�_/]�|����^X�둥���4��������2�l����s��y:y���f�Pn�_?��;N�}�;�g��>���ĺ.8�������������ؿk�uފҋX�� ��O�`���<=��?��q0�������!x��!ϲCP��C0o>p쯔2��E�>�P������~(�]7�G3�8���t�a#�OI�F�^�X_�Ct�(�>MS�߿I�6�I��1<��O�6����E�ܭyנ�9���S�y_��{:��s�w3�/��<����53n
��6Z̚忟z�_5
6��<P}=�I�]De7��>F���R�m�ۓ�~M��
���D�T�̥<?���\������h��~lY����S�K�`�V�H߿I�h}��?:ʙm��'�z��H����%2��~���'�N�z������ܢߪ��+���{�������|�Sz����~�G�Rޅ����Le4l����o|	��K�|��Ě�ț̲Q�Ì���J�9�~7�
�]K�k��F�:_��7�=��uW��Qn.���Q���Y2�󇌂O�O<��J�Ji���ܢ��G�_'�>���n2�mH�,����0��t�ˣa_5��.��%�=�}���M[)��}<�Ꙭc�������$���|����'Sz��{��]7��wh���(ߕ��6}f<��~/����^��z>���ն���/|f
�{�з�x<�(�7��\����>�����v��w�vc�D�]����<�
�̃h��kR�^��:n�t_�3�2R��:�<<�mƦ������o�uT������G��He�ɜH�~�s�w�٣�S��C�_�>S�S���%��8�X-�������ۦT�f�{w*��7'}����Lǐ�w��oR�g����з3��6z�����b:)�}~$۩�����_���	g�<,�k�>R"I3�����Y6�t}���|rd�Ξ`�ߒ�v�<cuϝN�gR��Ss�����z~O����=�;x:/�|};��oS}G�lK��׀?�1^��P^����U��d4|U�J�?����ޭAu~L�U���t��~
��H�Gk��mL׵������:���Y���A����|��Τ|Uz��7�7Jo��-��O)��]��g:�m��}ߛ���=Oy�����S��{
�-�Z����Z�m����긛�6�����qc����]�qţ�L���|�R��������6ֻˏ��ĸ�(�;>@{q�(�Hm�q��5/�/�Q,G�������w!�cy�ITOQ�܎Ƽ�b�!�����+�ӻS�oM*��i���}g�۟ޟ�u���#��T��o_N��׽�7�:�����޹���7j$��p�6�5�>���R��Dci���3^J�O���<��{��A�Z(}k��#�Otr�n�㦼��
���G��D�[�/րo�c����Q����to�!�9�5�C��-�S]���(]������z��(���|���?�<=L�^��(�C�9-w)���O����a����Cec�;t+����r}w�7'�<S/?B��^�2����@_��F���ڇ�G�_�I����L��v>�o{���Gu|Y�¼����r-�<����5�����s������F�����|���0l�`�a�m��B��|�m��N�<�P}�S��Q�W�_BsAϳG�������RJ�Of�����V��Mi����h�P��ӻkR{�V���)/4�z�Π~ɐY��:�<4>cJKu�ػK�������"+�����'��I���䑈����h��N�7��O�w�����޽���a���N�����n�����Q��4�ӯ垠|����Q��;ƙ���w�=>J�@��K��̞a܋�H�N��{�d�o>�E�ӌ���m��R�ߌ�/��V��߹?Q�/�]�w��y������\}��E�
�~}O�m�Q�]��E�{J��Id��
Q������8v$�^�2�}��e�w�ۙa��[|t1��ƿ2�Y�F܍y�S]�s�;�˚���:j���WL���<�]��ߧ�o#�sG��o��~�ʜ������~��8���U���_�wsF�g��K�]���ooh���ί��Rz%�?U�]@ﶡ�e^o��o�r~j���)-ѻ�4O��U�.��0�Ԟc���D>G��3#᷍y�=O�N/^�����ݙ��t���v�w���b���о�փ��Q���������y�3=��!`\�a�r[i�?ԔykC�{��^��K���i��Y�z
�;��뽹�K�/���g|�����^������L����"-?�io��5�LѷgynW�uړ�@����^�E��N��;~�~�x:�_L��(߯t����_��ߵ/_�r�0�¼��G��{��wsһ�.2��t=��|��C/�6v�6�J�m��z�����ߙ�_����Em�M}�J�?��e�v��x���+���<?��Z��
�7߽^?���0|�;����:o�:.�ֵ{4�����t�:Loyu���F�&�o�Cݎ���y*�9��k��s�o������w�(����g��i�׳|)���#��o�(߫�f#����x>��P.K�z�ϒ⋽��5�]����q*_��uz~�a'���FS�����=�7z��c��}�`���7�m�A�8"�Gt,��}m`�u�%�k�iH��s��|���A�����S��w��G����[�]O��ˣ�grݔ�Gyv��=�sD�}�qDz�:������#�KhR�c��y��O��g�m���W�hJ��oE��+(=���mL��sMo��<ۄ2�Im�:�,�;���`�0�G	��Ө|�q���=C韨�ʹ��b�e�y9���8�/��������ߥ����:�z�!�:�ͻ�w
#w����0L`��U�}�:�m5ϩ������{�=�S���Y�����Q?f��w=��,���9?������k��}�Y+����A�?��όf]1���:'�(���׺��|��ߨ5�;������/��s�>/ղ�3��g��GP���
̛`|U�0
>w	_��N�%�S�7���u\���k�ü2GP�f��T�
*s
�@tl����6�1-=����+z>f$|hNb��>�����\c>4��|e���s�9�I��[�:�3��:�����L�X-��}��:�-�<m����}8
��j�+�ۆ�������Q�}�j}�T�
�Y�y�o���i�"�1�d�h{*W��i���(���ѷ���J���g��4�nM�7��v���g�]��>�}��m�]�U���wG�ק�è��o=j�qz�Z���<p��ݽ�_�t��&E�[)�_���T���:�_
߱GR�+�
)���
N�$*�F��ž2]�[�D�
YO�km��%�[#Wb� �;��)�Y����u�b��\g�P����O��s�7����4��y&�3S8�B�~�?�޳?�7�Ǥ��zN{����:�f<�~/��37���N��{�z>J�B��紭�������xl;�fS;��R(��/��vкY&Yfޡ>���-�`?���}_���c�8��g�*�K��؋�ͦ�KG��Q��#��a��y@LӉmr>[��k:��F֟�[5�	[��T�l�o�S=�zy{X��}�M9��Pٿ0><��e-���,S=�#��N�����?���h���t>�~���י�+t>:�졣����i�=��jz~���W�ޥ>���C�7��h�C݈��i8Jwc���U̿e=�]̟�o���(�~#��uz�Dy/��I�7��3��[��L���e��٠/�d[���0[���Z�X�X(e���ﴠ�m�l�v��Ź̸Ϳg�mA���a�-���,eۯ�B|-k}�f0�ą��̕p�Z�泽Q�Z)P�=U�J�Q�bҘP��j�~��8�Jy�g[�V�W�܏l)�RA>�.����%�Bվ�D���!u����+�oO40��a^
��j��&�V)�(��u��j�P��V�쒨BS�I�;.��֛펪�2�=�����ف�T��J����A��
�ٸ0P(�4Wa�$%zj���6%5��P,f���0[����C�_��q0H=�'�CibT��O$��j���q�#��gvhŧv���ڦ1�v�L��5_�
�)�K���߸L%��i,��XYϩ���[�
��jP(�RM�+��ښ��8���Nc��.��c����ʫ��K�2;vOmh�=�`I1�O�qR��,�|����5�����0��l��O���bЃ=���^��(O��P�����V-�7��J�Se�����h ���K8�{{L�1���!v-m�\v^�8���BO������e�Šf�oD�P��c�m-��bT�g�R�P�
V��+)ب;��\,��jt\�"��v�e�X�-�+� �U�s���!��{��'n���S��,�^J5���ĥ�����V�NL�-0��Z�
C+Dg��[T�t�h�f��ɡ�C.
{jr
��RvQT�wT�T�A��~�G�b)����S<�Z�zh���d��9Kwг�V�\!����I�6��^�h�_�d�t�e��4Ê��+�Qt�-7�tԲ�g��H{r>A��בm�o�W�J���a~��ٓ�����|>;��\m'��M��~������s���0�Maz��F�W��TT*J��	�gۃeCۣ�m�
�N[��'���yy�#;~����N@dWB���e1����*���譆���k,{k���'�9i��T	�F��%Y����lOX�ze�����jѼi���U*����v��{��[(��o��!�}U���l�.��k|UPv��f�z��\[�t�%%_auP�&����~3�*US
5�/t}I����L����ԇ�	jU:�t��6����>>c�A�L�B 3��a��&�e�-M%�E�P )q���1:�=4���,*�U	� 8�#/__T)(�鑃�{�ZQ[)c˚_4X��i[28��j�]T�ӭ'Y�A��*���Q���~ώ���i�|	L�e
+d�1�E�
�*��
�B+�2B4̎MqI0DpS �`&�5Z^o���BqV/�jA�Z��W�83JR�q%�aQ�P�g4
��9�!���\P��F�>���JT�e�uM媦\!W��\�s�KV��*�W��.Ѿ�-׃>v��8N��T�X�ջN�.岊-,	
�q��~��;5�m�}o/�*w��\S�O�ǡl����m3ʹ��%�U�	�3ܠfå�x���
��ܠ�P4$��G>��,	�}�R����J�k߼�E\��t��s_�b"�L2psh��ѕV6�79w�%.�x�Ex����;�V^eN�[�X�7�M���H5�C��~B�Z�m����%Ƌ%����+�%�\��S�6I�|6*�D�܀d�2������CY ���0;��;"ԪU��j?�bP���A%����J��p�w�e�R����5�A�:jݴ��'-ly�����|B�xm}r(�ȝ'����mA�iB��c=X��3]4��0М��Z�@9��ɱ]P���z���4۽aUQ�G���b>�1�H�������֔�M�W'
�LY���S�O�Ģ���ߎGO�\�Q2A�hd�����
��>�!}
vߨ�
�4R�_ ��3Pu�i��)Լ�E���M�Q�7A�/�G�[��=t��(@U���9�e��2D��_E�:�쏊yB�IiM�6�j�C�~$��WqT��Q��m���jbvG�#3�j�-@[��l�
��[
�]4��2�_܌�����[��7pf_�2A��dB��4�ee�H�������_�r��T_���~�Ug�aR��'��'_�:�C���d3#���k��K��P��o���e�j��])�+C�P��Q�2��nrP�~4������Tv������m!�n�e��"���,�j

Z�O��I���B����<�"\���Ws�P�WBy���һ�I�&�+rw�3=c�q4j�`+�:�!�^^�:���Wj�<��z���	+}#8Ȩ��B���""{q�)�d�.���eZ�^��4�LIҡ��4��%�<�
=F�1�����{�ܐ�e���f *�\vnT
�pO�r��
=�3�|<�B,æ���("���0����n�6c�V�)�|���)���\x��ͩ��Ȃ
�K���M��3�<�dgw��&D^4�-��
_>ܧ6aZ�Vl+�4����!��VU��N)7�kN;2)�_'q�I�gZ�e�������/��ږ׳
U�����yf|/�]1zKo:�G��1?�n��1���#�J���ή,3m��Ε�Ee���K���o�:��[����A�b/3Q�+��#ď0�TA>u�•��lJĨ�cj�~g2Ŧ@B8�O�/hQ�
��̀�Q���WJ��3B�FA�h���,D��z@���,���[�nUv�"L���l'S���y�6�Iw6�f�[|+A_R��h�^�M���s�V�����aw��	g�in7G�'Xt9�� jf��(�e8�B�B�Ӂb>oo�T}R߻7�a)8��,�&L4�k^0WF_���$�|��dX�a8�@�p7a����B�Ҟy �i��rA}��K�%�B���W@�FhA��4�|\����Գ�x�W�*�9AY�,(g���Fw����+�[��y�Z�[9�y�,�?��nv������
m+�Z�����S2�V:#
��+kAFנS�S92�
x]��Ǐ�7�<\Z�~���}o\Mr*fq_��ѭY������#�|b,Pbq�4�r�91�+͔��Fy)W t�GZ+����߄�l�~�#�|�[hFxi<�*t�ɨ���L�C��e�ٮR�P��9*c����Ѧ�mZ�
!w,Lu�8�K�n�Z�D�;N*L�z9��M�o��2�V�J�y
�c/�C�r_�~%BT�֨��l�^P�[�Hg
LX��DLxrO?�r��Z�2��Zɖ��aTS��m/�J������/��+
�\f��*>��*R�T��"��*䋲X���>f��2Vr���Z�e�qa*����5��i�y?��%���d{{�r�t/����1��A������;AgnlO��$���%�9�͞4F��_��t���b(�$;�	7C�Ϩ{'t	DT2+0�r��Y���IFTW+��*��K7��	��.�|D�0q��@�2�C�l�y�u�$�
��6p*RB䷄��#��`�Đ
��W側䉆<��-�]�P,�.�x\�� ��(P6��lW�%��gtd\��f��MA;��ÔG�SMXV�?Q�e��^7}�yH�wu!�ֹ4f�2W���faP��]ՊyA�8[�+� W�l'�{�%:��3��|^�02A�����oי�|�,��
>(⧏�B,��Ë�pB��\}.0#c#�#�{h�T��th0�5U��H��ף�u��ȣ�!�q��\�MDv,U�„M�:Y?�0��Bz��=�ׯ;!��i�)��}5$_������'`]���"�	�@8�^7�#Z��A�6�}(<WubhYDc?������|1����s�|s��;d�5e���j�]YQ]y�T�'e�1�X�����F�V�m���;����O�s���ǽ/����	�A�����î4��>��$��(\E��Eaw��V'�0YW�9���U6��*Q}z�3�Z0��C0�+"H�Lso3ӃO����f��|�)7���}�k���6�ԣ{�%��R���
���qF���L�k}�Ya���#<���M@�ܐ�����m�^�'z%<g�*�b�f0�`ƺ}!p�Y�׳��:��(�a}�y����@�Nþ行���÷_@������R���ISt6�r@���g�Zԛ,�f>��O���������e"1��
sZ�����\�
D��OK�J�(绠�V��c<1Ý+%t,ZB�dF����6�i�.,T�b�i�{&p���Z)	u�މqO��a����]!|]��U�����p޼f�0���"C�d(��8��QO���6�����]լkCԑQ')��ΉU)�W_��%٠������R�R^�\��#��+C�íә�ʂ�Ρ-]���o����N�b�Т��Vr����dI�JF�� �����P�P�R�>��Ȫqr=���|1�����mW#8uB/=I3�,�N�1�pĊKٮ�23�	c�"tb�*�+G�p�?�eYX$<{�'���jQ5h��f����������E��qu�(b�^O���j����k�����Ȼ�)��$�e;!���j/��� �ͳ�wº�EN�婺<yX)������@]A�.R���7��i)	R�ua���l#I=�Q�}Z�4�LZ`鄦h��	���Jar��J��!�r&T�n������+Hg��,�����}���L�j��f�뎦�$ɻ�,M[F5��&_��e��j.2K}:��ӣ%%�"Q}pg'��c�Y/��"x*�/Bwla	2�?�B{Aۖu��g8����4]%.�O�B�C�AV,�2I>�,�p/'+?Dt2��*=��Bj=���"��M�al8 ���°����_�OK� ��d�otˆ��^ѽ�>={���Z�P6.?{�p��H/�9fNN$��E�J��-z���-������A<�C(*zKJ�d4ArV5Q�����"�×�g�2zc�Q�^�jne�\��\ݵ��;
zq��w�����du�8lI�1�ls>�p��X��J�������f` ������Հ�&���ɠ�� [?��C/�g���g1,���Յ\��|���a0��KB�|�e�h�\���b�W�5�����T�Z��*�,D�]�FM��74�$�9�]�s>���jŀ�h� �bޤ��3�]�]��Win䩅��z�=6?��*�Z��SL�+(J��(��1�,>�r�N�9��|���␈9��`f�q�	f��M2m\���V�53\��B�H�]�M��g�6�J�����	��֘�d��fZ�́]�<TE�+ffP�o�vkq��Uo�Yt�~qm��Pl0��
{���b�/� lUN��_3��U%Z�9�b.�H�
N2����H��k�گp�����r^�ǺMsnW�+�O��|.��ʘa�‚J��@��Oc_���G�1w���p�7H���o�� jL�s�)�7�<}a�L��ߍ����נ��a�@����U�,؟Q�Tٻ3!�!���
E�`�j���r�Vv`2װ_׊�[����co����p�i;ϖ���N$������	�+��"�l
�j�=�\�UYz� ������d�i�(�n��i��P&�I$�ذW�XG�(Vm:A�o��8�*��1�c�\�����RE��X�m�dM<���"']>��3a�Dz��~b�@�@��tNH9�MYQE��]�h��9����	u�e��5n4�9���h�0b��Q�y��LY�֬Rl�k��:�YX�	��
��j!R�\���͈���㦇�C�͠)���X_�ToO�Sx�`9y�7�ϼ�);���񳁞�}_�����*��	If&t��J�k=o���ʆY���̠�>�{fB%6��π~j�K2v����ْ�����Q��٠ �L,M�_��h>)I8�U��'�s�'X�Cm�^Eb+�Q�zQ�>� [�;�Zf5�3��0e.F5��\���\���:I�=J��`(H5�}��Br?E�=����>=�fX�� �r��;�*����ք��
��!��(�^v�g��*�*�����TRu}\˷����>X1��fj��2�+P�@s�x�{��vS?����ْ>]l]"_��%V5t���3NIt��)�o����q�[�)�U���smev����n0�J�:���TA�̛jV�5��@mMk����(,�vT"Z�"����CY�q��%g���GL
�*_�������������
�6�2Ր(G1�L="���Ҏ+�"j��l�2�0_�Y�%)�:�c^�
��
AJھ-�Z�G�h]�K2m�	~��80:����1�{�\(���1��?/��3��[�1m�0UV�ò�[T,G��Y��/pf�)v��3�e�O3f�S�֕͒0�a�q�)m��`&��¥�RZ���0�n�;&,MZ	�b��7�E��s�*3�`{HK�-��-�P�-����(YMLj���z5Bt��j�2m9�Q��I���j��	U��C5�̎z��~�h2�`l��E�5ӗ�*��ڛ�����g�Q��>[�3Jn�y�W��TE7��qqC�Λx�錈��Kyވ�;��o�U�_%L���5$�����+��gD��j��������S;d���a�(д��F�Q
��B�����Z
���A?��'�"��_i(+$�o��0��˫�N�K1��%��&N;3�ưPF�#[�
t��	��n9��~�5�w�E���y�dA~�*��]�������YՌ�"#�����@5"��Ҥ����f�h�/:@7k���ꀐ�	�H^N1v��Wp�@P��`q��6ql��t/�Z�A��*굃�Fq����BX¥�����ːUq�v�*�2Vq������!��>X��	��EG��e�0B��e#ʊ�6e�e�̫W�G������6�Zh� V�_W�en�V@Y;��4�Z�b�b	��?fw9��JP�+���؛m��rN� �\@ަ�g��#�\�EoP��0�P��}�k�j�t�W�眀�'����%��	���%��Xw����8m��	�|�O��"���J��<ﲹ�j !:0.䊬�|A$�!�*����B3��Av!������3WcʂJ����l=#rM��o�F�X8.V6cD}D��D�'Qo�}��Og�2�iؔ
�=��؛
�	��]'��{��	��bg��Sd�r�`�ȸ{Qܺ���ʚ�2��T�W�j��	�!�5��޹�����4!!i[	�&<�}�4x�H�F�T]����L�X,��_9�&���N*��ဌ��ٌ
V:D��<��s���T��gc�z$�f
�v,�6Z�9���}�r�G��wR��Л����m�dG���U��>{�,�
eL�����J�*8)�iS��7'��d�h�jw��i6Ò�D9�CS��"��n���8,�egX�1�N3�T�$b��Ą��A�7]���b�ƠE���w5u4A��:�{o.>�LiF2�P��8�h�o�][,c��H)^%^ߢ/Sj2j�5P�m\d&��2����*&�}����l�94��B'���z�u�2(�b��Aܥ�
+w1ˬ ��X�E�'����c@���*�K��RC���\}�g'�?��`�n�,S�O<����g��Xz#mn�J�����y
c/�f�<�'ar8�%M\%�\qRrv���AYc]��S����x�@q,F�AJ��7�'��E�
kCN�` �IS]�ӯ�FK�[��=�3F�>;-�.a����W����'�X�o��`�DFi��
�_�u=j*ə�_	!�bVM�-�`����Ι6A�w���5�ܙ��E���9
�A��,�yj�2�7\"����@c��V�@�o�?�p����g&��4�ڙ�� ٳP��r�t�,J����Q��ڌ�'eU��q|�3�/�O���3�g[�ٞ<�SQRy���Ù�F
OK�6t�����J���ov�`�m)\C~��W�svD�Ée;�L�d���|^ K%��B��͖�����^s'К��+��[�=X�!�({?�>S�ET�K;E�ēĮ*���U��Zu<��?��Pg�6N�Z�v8�*�3uK��� �C�Q���lJ�I�m�h|�:.��姕Z_$P��X+֠/Y��L;�E��L�lu2��cf��s�y����v��0RЩYQ���X-g����&O�l�qm �o�2���k�x2�z�QT�RGPxX����W��D^�ՊL�V�5�lc��|�R cx�lT<��F�Ob�bj��)�w�"
�,3��&��20#~�B{��g���vl:SG��5�Λx#�y�$ϰV�e�X�E����U�良� R��aOJ�9���ޓ��^��<�,�L�U,�b���'1�;�^S����G�7F�Ot��ʡBᯰ��JR�S
+֋{R�3�4Pc�2���X�����$�;�g@|���I�kPEZ�7�������-���ݹ���OV��+���@�l���ݙT;��F[�":Լ�2���'�b��Z�
UJ@`�5�x�����,n���Z��F$vJY0��|��w	|H��Ԃ,���B�I�D���U�Ґ�Ѐ���2W%�)O`�l���
}�[i'��y���E��hi�{qsn5C�>��{�H(h?+ә��Χ|�Ν��:%;��9$P�|���M�J�η��bk��Ϙ���{K� ���I.坐�pDž�J�a6w@���5�j��ƾ��{-���0�:O݂�7�O��
{�K�9����_3�v�?+��6$��.��+&�((���m��gq�UO����<�/
��^��*��lUU��e� ��]��:��C���W�|��sXe_Y:Ⱥص��ڸ}�^�C��Di�򎏏��Q+�N�����'Τ�%=,1X~��s�e�,���Nk�.�۶�����d�u�j��]�:-���������6o.��9L��1�N@�<��+�Ki"�W��J\<̱gǰ.�v��Fm��́���q�^��~�Fپ���`��m��������C��hWr�6éT�!�>����\�+
ͥV��g^�nPR/�����
��FS�N�R�L�W���P;��ծ �s�����)�՜e�4`���MF���nI<y5@?��{��Z��q@9��S�[����/�%/O���^�_�����,�*#i4\gq�iki�d�I�u��'t�'xB��N�1���	̛��\���[��B��nvD+g�cZ�!qB׆C~�$k%��eXZ��5o&�dw�7n���;N�����+��A�0��|�*r�"�>`��I��b8XKZ��?c.��3���I��)�*��R��=;��b�|�͍�j�,~�cu�.��;F��<�Kz~���p�Pj�~�a�Uf6N�[,�1&�T�4t�0��*y�\��u~2��s���"��3�Sm��,ը�K;��X����巘l��^�A#X�H���!߳Av,Ƙ9�������kd�jA���12��H�k1��ƜH�x�����zɕ"�)�S�e"�cl��	�0ٹ�|��QÔ��A�n�J�6��֡�jof�w�oʪ��j�������]$�M����ys3��g�A��C ��Ş3_��X�Ix.܈(�WEA����1�0�������P&�����&��u[�3 �@~k�����*a�j�a2����DThT��F�V�S`���mA?Drq���L�i#j��El�dN���T�N��HyֻӾ���P�:DK;;^\���	���؇���M�zפ�z�R>��J�I=QI��a_(_�ϝ�Sa��bxドʕ���
�l+_�Nڎ���z��\��2I�x�j���x�4��<7|.s�u{ǬXr��^�:���{�j�uu��q6c3��̈́4B���
_o8�q�W��ҵ�,�h���$+g��BLW�4 �5DR���e�R4�ev����<
c�0�A	��B�Vy�u-Ͽ���I���'Y6[sO�Oȍ��cN�xf�L��y�l��h�w
�U�����=�>�|��j�����o<ts����gf�EVe�C7d�jB�q�#D/�T�N�dX�,��WO�췂���+n�T��ƃ�IB�	�����Գ���	9Z�<��o�JJ�4��(�t�]�$l�o�Ndn�M�����c5C��
�b��B��Zg�*����!�r�[e/,�����r)m�OPD�'�ˢC3(b~��DfΌ�O�\���{hv���E�y$�Y�ٺ�L
g�`�N#�o⦄
eLhڪX��s�i�(e"\�q�z�Ѝ_����؀��P��ֈin�Qv��[�D)�b��9��C/C�1+^!�x1 w{%5���:}��/����a�d��rsϷu��@I%l��T�]Ɩb��q���!��P�Ŕ>ղ�c�x�k3.;�b��u�0;�d�b���"��Wk#���IB!���Q�mP�7#Qe3�I;��/`J.۬�w�>
�T
b�QԨ�Fȳއ�hBz�>��;��b���*�L��CV��n2E��K�!�u��� �Z!�LZ�~�*�w��@�����੬���:�t�'[%zO���:&~R��h���Ӟ����ٓ�v�ƻr,z�i�
�"����ϑ�
o~�,�ӷ��VV�e�m^8A	��,�;�6�|럻�H-�����^������DR�
uK&5�\�tx1����#>�E�9���!w�E�A��	��J�ɏoH�Bp�c��F�ԅ0*���̀�a<���OSvf5Û�k��tX}�Mi!,�M�mN\�)W�E�Y�x��o��<$c�ɝ��G�?���aA��F+p(7\���a��%6��BuV�[�Z��뤸
�,���[�
W�l��H�]�5q�ɒ�����f_<#�V�A�EsĿ��P�"t��d~6+�]y����9Y	8{��r-��b�$�`���YFh�t6�`��S�ܦ�R�v�{���L�d�)C|���Qtq M�^����qr��^��SMN�EqȚ�s�oh��M�1�w�wц�Bu�j�!�3eE����l�\,�jT��2�G��
��i�㥒�0PwK�Q��$�)ɬ�,ݷ�����c�e���ьx_�ҵ���r�P.��d��}�|��v�b��\^��ayz���Js#].�����-�f�`6	���O���2�{F"1���a�/�6�M�Ⱒ]�>��ʸ�ދ���X�V���3��֓H�tzL��g_������ �JG��WEP��[32���dgݬ�M҄��M�@���Gb�Y��>�*E��<�1淍�p#�%8��1���<s*�8
eU{��Ӥ!ü"��"^��4j�|9I�d@c�	a
�W-H���*r���Ɍ���Q�����z��>����o�S8n~�\ie�WU ܳ���/�x��F%F�x�
5vMغ�q<7?����lf>��lL�`��̷�ZdV]uq,� \��
�*���-�Pĵnv�N8f�͚��)3�tV���(��s�O��k�ϱ�E�`Jv��<�z���L@�J^��o‰�^a�����ά�m�7�nK��<w��Q�<;�"�`��!��/���S��Լ��l�T�9g�['"O����7?ЭG�2���2ud�꣏C�ws�X����X��V�z<��I���^�GT�w�*�fs�G�@�o���� �@kh���y"�
�T=Q��?��N:�A��Fm{q�V�
[VU8b�C?��H��6i�*yD�]�c�<����aAI.{���7�oh>6]���@����B��d%��|߮<cD'�0^	�i�z�"���<���75�T=5?v���ci�1�1\���=�:ü��x��&f�k�X��X�2ga�[�g��{V1���dhr}N}�a,�ب�*v�yB���&�����dCp�a4a���r�d|�L4�iC���d��8�c���<5�q7��G�Ď6��
%�=Q���&�� ����
q�=��nl�:�†U�}�\8�T�8vQ�Y�*��I����EVB��N5��Ė�u5�;ER`�פ�Tݮb�l����xl/tW��0��<�d,��.ҥ�o�z3�@'�.q�]�$��@l�a�s1c��.�a���L�S�Ϫeʓ�i~Mx�p*jTD�w��i�����J=�ؠl��`t�4<RC�R�9)jm��Ee���WvB��s��w�B��L�B�a�.��c�!d���2,^��B�ʽ�̸38{��5��oPx�ʶunR8)7ox��]���x�[`�XO\̌�ZY���i���ah��Ș;C�Ѯ�45E[K��L�8�u×x�<EVjW썲c�*�:�/j��/)�������JJك�o�Uc(b��	�m�ApB��X��{h���i3Y�[�\W;+�
�3Z��$�=��ڍ��ɵ�氜��4І//l
�YQ�'�@M��j�F�F�[I���x5˩���OB�Ę8v��YB�C�b��g��,Ƙ����6�]Wi��3�C���	�7�,<���,�tG,�TB�}c.k'{��ߞ�ϥd�ݾ�;SX—�n6�_�����48X�,�]���'u�&��t�[o�
�zUo�5�*͆
pD��e�A�R<Vⰺh�K��/Qπ��Q�v�n2(٧?��J|K��x�:�O�S%a��p���AwU�z��QL�JG�=x���F�_���&^RK{gv|�6*R��	��a����2ف���ku"a�6������/l땱;D��%%��t:W��&&�t�^����P섻.���Ƒ�d�JRL ‚rV���
��2���g����#!N^Ŷ�:��c�C��/���1ˡ�E�)���i�2��<]1�\r��8�KL�x��Dx�P�T���4-�Z�'=�c��:n�ư��n�p���E]z&a�"�T�& ��S���>v���<�hd�u����"�#�,d�`J���J�
Yk��Ňu�� ��W})b ���	�U��$�*�d��.�3��YV$�:���D��'�.`�L�w���K�������<��A�X���Hl��j��}%����-!���W�"�}4|A�ʍ%8�И�L���&���tw����g��XWU�M���K�\�N�/��:�Kj�^�A�btŒ��vj�<��q�`��g	{��ַ��5є�,�P��+/(z'�s�	
�3����`@&N��sn�>I��ȯ�r�����Փ�=����#�.]�{���mi_����Oœ�ī_�Q�þF�􏘊���'��Yԕ�Yql�r�c_1��r�$Ǝ�ǪUC:#�J��j[">3�����._K�F���R�-�c}��ֵL�V��V�F}]u�X�ٽ��]��򸢵2b���*���[>��4v�gȘ�h��`�.N��w�P��%�,Y��z�Ӆx�b�ۭq�"�&�|���򏥺rQ�v�QOJ�饼vVO�I\sT�S��������{/P�/CÀh<�nv��a۷ٟנF�c.טL璠L�X��0,ӑ~�Ÿ�=�"�0�j��y�4��u��?����/*�.J�/
F���eT#����Ŷ����t��߇(�$�~𥂠�A{��Ԕ���6��b��(���B>H9j�2`Y�ΕQ�hb�M# K'd��e�颦��5)��9��jL���7��d[GBkI�.��W��,�1`khq��]
Zr>(`8`p�hR�Q<jA@��@������yzm�=7�|�ʈ�6yY<O��eHFV�:`&^�JV�@#g�������i
����}ؕK��lQ:��(�B�k�a�7���"bF>��WFQWP&4:�h	�J���;	И�����_��^`��I�"�6��:x
�T�j����j,�._��[c�yI���~d2R���O��Q�Yӆ��
L0Y_�9�k5t��aI8_���%dv�D86��Nk9���TV�1ahZE����"O������r��<��a�Su���)]q�Vl��52{�[������89����3��Î1�_v��@뱯&	TU6oulX���dϋ%l]��Ĕ��FX��TT�?�|�4�m�S���]s�#�<�gc������oGj�p�qx�m�'v}�R�Xo,�<ݟB��GG���*%h���$�>�tE�v��]ԪpV��������_����"j@M�N��3<�n�&��^gV㉊��cJ*�J(�Q9�pqh�����3�rDz�0�)=CHK�W�`�<z����~qpe�,ku)�c1r\U�Fx1�[C6�!�0V�eg��w�1�l�֦mD���b	��ˣ�6�G�1�&ە��i�*���NLӣ���M��i�^��8*j�#�&����J�᠙�V�Д�:0�c
�k���uy!��ɶ��S�J�Qj��clMƵnqB۸�l)K<�<8Qb�$֓Tl�|L�i�o"mё�`�bę@���(�)6� !�����3!�&�*{P挻Gq�Zư�}Vae��ٛU9��Qw}� �o�^����<��L����NXh����ٌ¦@���?����A^�VQ�fW���S@�]���~v<��Y�������:A��uY�+-��'d���0��2
�cU4REՃ�ZS#�w�^�zn+n#H���u.��XSr�s���)^K��D�1��b�p��&:޹C؇p���J�\�qͅ�a�i���a���>?�aN3�0>J�[Hڔ�%N':}�u&X�ℊ�@������綴N�.�l�ߙ�7�}w.A�,.�4�+�JH��v����z`��
m�-��
M؟
_���m*�V&�`�Ҭ�*V��;�jb�4���:��ؔOĐg����Е<&�݄�E6�}?�e����
kM�J!�X$">��ټ��!�◄��fȘ�K0��=[g��!�zC[]Z�n%ctǃ���FI]-�`���{�gf='�����
/d�Z�r��D�h�X.ȁ8Tsޥ��k:�8mڦ��.�.���k�~�rn�۱Ӕ��K�5_2�����|A+-cX�K՚d����mX67$d^�D&��m��UB:�5�5Ŷ�0v��HY�+:j�Á�E����u�Iw����	�!d\pw�6���+{���)h)�s��Ӯ�L�h�Dz���0J�}�o�z�Tu����6�N��L�/�\��u`�����ҁ���фv�@,���G�ؐ� -3	j��-�c@�R|c���{ȷ��Kk*E����z,��nY	&˯EA����,�K3���c"/��u�6��'_QҘ��ŔhM�-5Q`b��K��ҫ�ҋ_�9DqO*�1i�~
�؅���:�b�CV>\!�ŒsN��IX?���naٻ���F�r���@�<I���6�)��*{w�N�C{�c��4�"���i��Hô+�!S^�4���֋ݹa���{�,��e�3�=��f>%�B"�9�f�.M�Ż�Nt�~���+vVd��b�\���۠~4��ȓJ�N�`�?K�Kdչw�N�vՠ��=�+�R���͒�+_k݆A{�1�N�I�7��=O=�����~�F`p`�Mꓥ�bܴ6I(�=��=_̗D�����Hָ�K�^�"l�ͺ:
ߌCM͵:EX��a.��I��5����R���K��r��d���@�N:)Ω�Z~�f�zq>f�p;�Y��3�a8�r��l[���77��C#���vܙ$#�y��_��ץ"}F�<ŵj�(��F��g��=���^83�^���Z��i��s��h2���g)_�t���.f0�\�i��Ҋp��#�e��D���QU!���0�B��{�M�z0%�|�0��T)���)�����t���Ul�6���j�.���S��%
�zؾ��,A"�a�Ŭ�~-�`R���O���]`:��qs�c�����)u��L�9���n�MtT�Ԃ��d��܅����a}~g*����)�:����3�`[�ݡ�^�BU��'d0�3��¡�j~0�T���*���ȍy���D"t�h"8x,|��)��x�Xw63��Y�)�sႲ�#�ep�\��k��ua�ݻf�͝�x�qƠ*�.�g�vRݩqV�B]�g���/����!�Zek��|%�m�k���gT�q�M�@�:;G�b�h`�S:b�(NN�V�V`���Y��a��>:��H[�I�b?@�_�z�0�b��Ck��--<O���i�	-ݚ�Jg��*3���"-%�M7�1�\6?nTpJ���)H<�~}W��S/w�!n�4� ���V|u�,Q�( 5�גJ%���U`���=P���pY	E�`�~=Ρo]���g�4\5C���U��h��~3�=���(�
�����!�>�0x��2�?�ņ�;��M[	��M�K��1t�]F{�h.w�p�BJ�u^`����7y�%T��h�F���*�^���B|u*��F�Ȟ<�7sg3�w.4D��Q�h��ɹQ8��Oj�E�?H6�K`[�T>"_zP���j��Y0��I�NQV���,8��Ӝ~&��^�¨>��{Q�T9.nX�]�x���ʸ�vbB�̛���P���f�FF}EY�t�����	����KF�/d��s]a0��g�`�b��
�W�V�}t�:��U�)�n:��VӫTu����-���A0ߧ�t�J��t��A�.��^�tڴ���R"[z�DB�Z�@�m��ʴ�
F��{\�DD���+({~���|�6f�h?�}��Li��N���-�F�0rQW����B5�=����x%�͘���n:�Ҍ�G���Jq�L���U���Z��|IQ��3����J���e��]a_��|��Gu��^(���L��V<e�/�ɩ���1�`J"�f�j]��*��߅t�m��'�]���Z�'1[_~�K�Ca�6�6!�!�Oyd�}���t	ș1C�5��m��;�iY�6
	\�U�N�4V�+���π��Μ\��7�b=��ӟ*)�^+	�0�Pb��K�1b�y1��/�8�`fM�B�J�G6��3���Y���C�Bh.��DU���c��:/�Mrf@���DY�S�yѿ'�*tῘ�Sc��a:���\��8�8Tey�G���R��\x���T�LS1���"5�u=��0rk"��ll�/��5�����-�m<�	"�d��h�E���֤F8�KBv��k}?�|Q�[k?��|�w��f�^��6�V�A4+38wش�8t�;�aݶΐ��姱&#�=�Aق��nH)����J�EWC8ց�b~�O�g@m�ҹ��v�"�nWa�P!�
?��L�A(Y�8ˈV�g6���|�Z�����z����=��(���ߕ�3�������T�Mw%G���;�o�-�OuqV�j��q.����8AM�f�~�5�d�Y�0aM�/�F�d�B�B��+	����C�sE)��g�q?T����CL;��Aq�U
�k�b
�[���l�+�8%�^�~gT�N}+��'V��@� �c�	|_<�y6נ޳���T��+yg���W���DpP��7�0�_ih�	f�<w�pÛ�-�h�Ěa���@ޛ��%H����l�b]���~�'����P�����	Y^��-�"9&�5C�k�,?�� ~�Q��\��	ګ{"��B� `�x�I�2�J�wE�݅��@��He�K�4KI):�X�j�j���H����F��m'|�z��X���*k�Ȅd�#�X�"������N���3�w�Wg<C+ԖLi/b�=�1�&QbC\��
�+8�㍥�E��ℜ�D�<-0Ʋ�5��vEί6]j	�I�}t���-�E��.p���u���o39-�p���ޘ(�,H�����<ܖ��m��0�E��B���Bc�??��z�R�w5�\�:*�4y�w���2�?c�m!ٙL*g$��P�>B�o�F�x�����6� ���I��G���Ń���	󿤱Q�Qc'7���?w���-�:��a�˜!�1)���7f��bQ���C��?y[|���cx�0`�H4萪D5�Y�<n�ܙ&�"��NЛ0[`�?L�ȹ��:��&��:�K�TO����W.r�S!��T��)��栔��˩����1̚����>\2�i�l�CǻO�iNebnT�vw�Ԑ��|Y���.�x�B%?YA��P�fqeP���jJU%�@+��[��?�f#`P�.�n��`#��Њg\��a�*I�iQX��v��d:�kg���s��=+s��K9�H\�;J���?���w�c/+�H��!+�Ρ�d��ך|��X�,���M�V��&O��H�D�K��>��F4��z�o=c�MU�Z]�m\���lvUX���t�CV��Ucw�Ш	��R=�l�G��W3�$d�����DW�j�Bo��>��lD��x�)����F�CCHVȮ{��`���	�_�
�%�En+&\;��W���3[i|k��s���7�Ф$�*)�!��6g:�L��-!\BV��бP�_$��	��hW.�"�U�x�ߎ#�6n�۷�!�}�0���\�ji��٨?�ES����A։�c��
.�3�H3]�o�oa��a4���گFX0k�����9P3w���E�&@v�N,�5i=����j�5e�#1����8�	�ˎ=P�u|-�o�RȪv��)��WE����MT�c,8{uM�Q�S�48r.`n�.��)�G���h1fgR���f�gX����s��P��q���D&��A���jA.�%k���J�?������U[FUt�VD���'�徤���Bo��h#I�v�Q����נ�yq��}��P�f�}(�<��7�aUe-�HQ�"^H�!O�hG�o���tȚUU1N��u��/"ub��՜�j���J�GB�)�6j~�d�H#"���q�QO��tu���������XM��|�+��ۆq1�~����?\��VR���98	U{��=le+��m��_�	]�H����x�]��
[m���q�N)�D�^������I��ٸαL$��x��<ֽ*����̥�T���Y*e㛺��y��Qߍ2�$��﹤Px���*]�:�@��u �4ME.�Ʃ��Pf�5ɆǾ��*��H�����8�	B�=C�9F�ޫz�ž�����&�v���ж��&��!��f�6����`^۵���GC�M�zث�\���YQlM� ċI�%��R�
�|,B�%��r;մ�7�)��� �20�
X�]��W��xʤIK�,�Y�/1V�d^��I&��50��
b25��X�P�����;tʔKC�����Tߚ]�T�
*(vwm�UT�\�0>+j-�$c�2��X[3#
NDL�A%���Y�螚0.JB���%V�E~�8ħ����Y��#�Y1���d
����I�Z�,�c�D�{"�<c�[N����-&��)[l?e�V�M��֜�6�u����d7�M^SEp�
�����IDKJ;�N��iA׌�۹|��7�Ll%ʔ��)���5;���;���l�,��N[��ϝJ�1;e7�a��&�4,�)ٙŨ*X뤭r�s�'����vk���
oJ6���D��ؖw]�Po�����g`=^Y��h��f��Z<8d����Y
����V\�
����m��B�t��X�)����i!�2r����9�E�,(��6@��#���˻E�Ռ����W��2���/�xN��DNW��Cn����1���<�n]Ze�Tg���C�G�#Yq�hz,��r���B]}���8cp�~�8�/bv*>>
a)��t�B��
g#	{ÂM~K�����0�6)u��:Y�Έ{#�L�ވg,��Q�\B,�#�e"Ą�z��=(���ߋbp�T*�k
�"})_Yq�ړ�Y�s<�6Yډ�|P��_�&u2@��̯UY'3E�/�̲�7dT%�0���#�`ŭ�J��W\dū;��\����4��}�l���!������v��Rk�uE���[��m�Л����]J��N��gsY�
@`��=u��ؙ+���);N�ʾM����'�l��� h�8��<����|����h�I�Pb�,c-?^������[qM����TV7�L�j/O�)����ѩ}<
<m{Mdd�/wZG�P���6�~�e;��ln�t�(�\���|�q����C�j��8��%��A����j���3��
Ql��|��d[W��Rcz��q޻t���J���9���uD�U�t�K���-CBqxk�C��*�Pفp_'/���.�_f=�_�:��-�ŗ�6��1^�~���wb
\���qZ%�][����a�i��s㊄�XYW��%
��
��
��z�y��D����\iưٟ�gV�/�UT.�U�C�t�'���Y\Yޞ�����g����!���^�l�l�Q>
}js�B<�KlW�,e��@�L�e������I�AҴ�%��`�-ә��d���Nw�@K���sZ��x��Z8�h���ߍv�d�}�bׂ��	�΢!�,C�Gd�5���t�J��"�e�P%���=a��<���%0~�L��������|4!�,�Y<��g��
�+���:۫#��N�xm�ű��=����Vͦ�[�0�>�S����F͗'T�u�)9����=;�ජ��K�)w>���!*IH��'1�~�덿SYY�K�xY�ʲ�9�-KEF�*5e�A\�7�l$k]����4�[�R�4S#�B5���"�l3f��
tb��ʐ�H��4;�<DL�8�//9Bv����.BExW�/ϐ;Q#�y��!=n�{����J�n����������%�">�|.��)��aXM����������Њ��e0{7�yl�
^��j��Mk�Q �ȅW&��JIu�v���u.�T�?�/���+./���lxQ`C�X�z�#b��3=þ@�:��=IoH�π�!;1�Ri������ݗ��`X�	��,X�V4۲���a��d���f���q�X���iO	�oTb��a�e�F�0d�
s��v�b@��ȇX���@"U��07#�]!굊��F�L�^�E{�Ǒ��ˀ(���E6�d9�`�����
0�^�'!��0NE6�+6��A�X�/�,�+�x��D�ϗ���.������/nj
��1X����gg��UNr��x04g�Z��ӆ�m�����x͗��W�cw�P��1�:�h�}��j@\���(�؋�AW
mv�7���dp�
!k�^���]�^�c�j��V`PK$zT�j��"x�:�O0w�<
E����9��!T�91L芺���!X@ۓ�zI�	ó��{Ӫx%� [7G@C+r���r�Ha�GT��v����%jѧ�7�����3tl*�i�*��ݞ#�圯h&FP�w�2��>�P��z߰�P��>����`K��~i���޴*�UP����A�?����Eޙ��3ڬ�p�b�P�UPTKV?@��Xq}I�7u�њ�TCh��LP�nwβ��P6'7�|2�*����#5���&��b/��䆝L�a���H���@�h"����7…�=�EK�XQ4M- �+A;���4D��ث7$n�;�7r�@=/��Fv�Y��O�pz��Ia�NN/Kq(3-�vV-��*��l-�d��*R�C>
.B\�ӄ�e�����C�eu��i$��Tl������d���b����ϓ}qIg��7F͵0��,h�y��x�d��<n@V���@���B)ĢY�i��J����c��g�i��Peh%�O��~�Kأ�
�2����M9���,|�br�
�A+�&�+E#�e2"�ϐru�2s
�i��g�aK��e*�I��{ߪ
^Q��D8&��)������
���q�lF�x�e�y�h�pXћCp�J�y�yi�$Ͷ��9(��va�dVq�*�:QM��Y~霂��74�cG�-���a��- E�7�X��i��B�4��t "Ǧ�]	K	<'�zpN�	[��/�A���?�8�N��
5*r�(�ካ�&c&[�Ȅ���M���(���9V�8Y0.�)
��2��i������6����8��|v�0?�jlx�a�%ބU�5��a�-ZJ���(4�B�U�)�42��C9��i��d�`�XD1(όqV��_����K�-�=j�5�Hl��z$xtN��H�\ў3�����~(;�3��<�9�2h!E׎u<	9�=�2s
%�����)�Q�H߈Ǻ!�:3~/�Iv��@ i�,f8�0�����l����[����falD�S�L�_�0V�(����\F� �I��6�O�G��5���-fyy�f߳V
G �W
��E��͇�h�\{�@KT��2I��7���D#��<�]"�QEX&,�Ǵ�J~=�$�ƿH�EX,2����0��#VO�]v;�F~�>���@��~J)_AGdـ�y
����#RZt����f�W�D��Q�'*ixS���ր.p��=�$��*��,zPC^�9S	�:��ҹ|�"����-�2[��s
p�vH�bS��:�����.EI9I��ǖR��!ۇ�Q�b�"Zq
t�x��Q�8�|�t��x����#Z�{EB�@�K��Bo�н,\�v��8�ɥ^�����!�8�Oe�gXZq�*43r���VQ���b�����녵��A��0'�mx��t�B��P6�S�F�����텁��e�93���	w��&+�j����|V]�c�@���WL�!;0T���}XAgi��ybʐwFLP��p�:��;�l�X�u�gt���6����3��'�0+�AYd���1��}�1[��ߣ��|��ά|��0���2���6�W^^ᳲ@�6Ql�.�y�ٜB�r0}��\q�h��U$z��7���p�.7�&��ҬH��v������t�mK��?�^�6k�E
\yFDNXe��Z�o�O�C��G �8���a�19����S��$eDlL;Q$S��,;�ѡ�pح8�����JX�/��L|��M�S=�b$�8�"z`���;N*LeU�e���
������T�
���asx�����+���~������ ���k@���@�"��$ ��:�lR'�q"W3�5�)E^�	�L+�~�F��
��b2bD�4�Ô�+�p�F����`��Bq1`.�cf	�k��KW��{B�G�Պ��܃l`]� �&.�pCba����N8�Z�0!h��\
y?)a�<��O�3Ι+���›v 􉗊��
�w�ۛ�����*�L��#��j��A�Qê���x�дI�3d���9���"�U��]��Ra�f�!�hU�Gl�8!�
��N�P]��Bk�!fs�B��n�1q#H���[i���NC�\�(����yo��c�]5��I�k?�����7V��ь6a�xK%�kC1�'�TQtbw9�L�U�V�S��nR ������Д�
2�����Sc����I!��-�F	,�#��2�~5��G%�B�@6-�3�LDZ�T��O����]=eœa�m�˕�.N�v�
\Y��'X�/ȆHP���^hr��2�j�iS�J9y�lf���U˜��
�EU�T���0�\�r��a�;'Fְ&�
U�$���)���۟��A�(�+ �����Yij��w��"5�^:b��q�B�l5�g�6>�'	�(�IBJN'�^Axө��}!�k�24�����mT�/ñr�����Q�™g�8��N0s��)ʲ=�Q��͕�o:�Yf5�A��n���C����+8ٹ�:�ݙ(�E���Z��䭎�ܘz/�%�b����^��p�~BiC���6���w�&1�(�r����܌O.
�LDΝ鰢����GA%��\'�T�t�b���*0#�o�F�t4��8��ܸ׭��P�M%\
31@K�	�
Bq7V
�!�1τ���WeW]l��j�D��~,S���\|�Z��JmL�N�^������]���CG#-�2C�[S�}+��Ɩ��-��gё
�R��a��K�õ��@T5
�Š��D�Y��2��4Ք�ˇe�)d���������_�"Ԍ����gZ0�-�$�k]c�e�8~O�j�lO!K��޳,���R��k�Ћ��\�RQ���� �l����"��B[��\�8��j�/��_f��`����(��t�jQ���ToVXDc�.��7dށ�R5�2^#K�~:4�#V�5���1	5�J��+-�8��5�i��Q:j�W�v0b|�t�V��FF�D�4�6�D�0�0�m:.(a�Xq1{��t�5��H�mdR�h�E��;�Oq<�[+��)%�".��l<YS'��i+�ʬg���P~R�����3M�aӰ�N�����k8�@�_�9ﴥ�S���b�$�&��C���rjת� ��9Q�(��
{s��u��m6��P�8�T�C��[]K��6���_씵���i��_���`�/';��c
�i�J*&ʜ9SB��k�'.l#
3F�d5��w;�0��@�k�,:�%"��~hk��v�(B{i�ϱ���
4�^@YU.�(#A!�1]#V���(�6%�?b�`�t�y#f(��8	���y��Q�s����0Vm��km*qn�ݼ}�8�Z��t�i��/���'ӥ��	��� �.�=m,mi�{N�30�Jń[�*3�h��fC��O礭� ϗ�`!�<1(�:Ί�p&q��|9Sl�S�b
�ڟ�T\��Z��DVA_�oX��Y,��j-׬u�o8-ox��F��XoyA�3G������H�{`���0
����� vV��)Ƴ���֠�����5��7��|\�gUB�.���Z)x��L���	=���i�l��z�����Y���,�EHB����e�%@��S�)�V�3��\o���Ϙz0d7@X�3��o�}k�I �06*>d���J*C!�3�MY�1�
��Mv<��S���,�*Ŗ3_`�R�) �V�����A
�)@��{��&��h�D����̦l�2���7�G���{r#Ep�fy�JQ��7�`��:C%*�^Jb[ʘ�MQ�
Ts_���~�*L���@��k|x|�
��DZ�#�t��)�"�O������q��P޳�]*3mKˎ6^]+X-�F�
���t��ٜ����U(���(�l��.a�Q��$���k�����t��
��Pg�p�r�W���@!�|���%�����QO�U���r�K��D�/�le�
9�b8qF��S�L7�Q�=�	w�G#��P�n���'gU����	����Dcʓaj��cTAQe�W�J�����8�+���cz,6|�!lM�}��K�Ɔ��+f"Ҙ0ۍ�u��TGX3":��P>d�,�O²�}W�/*ojT��:�ʶB�Ԥb�GS̳�7��)VO��g�N	-��dQQ�0#�/�$�w����ơx��50i�p4t	�{|i�X�҄��ح��y����X���~���F���̖j�R�/"c�!��jL���
�V��M
Q\y��-�
ԼX�1\���c����OW�q���̧�砾0���ւ7V�P�Z��y�TgA���n�8��$���QX3vG(7�Q�,��V�vg���5�Ou9~iHN�n{���ˊ����uu~C�xl�U'ERTy|��ȩ,�j^��K��gS�v�@��j��2y��"TN�հ�
�e���:�Y�8:2V
���Ij���/A�j�zԱ�����e�=3�mA�q8��,���Z���J,��C�^�~Hn���Z�L"�[�;H�8��h�e�5�
8�]�&�>���j��W����n�~�&��5�~�+�)}���S7 ���5s��.}��1n��2'JI�� 1�H`�(Cx�k�$i�ހ
�,FQ��{��,������T��Vt �U�k+�d��{��+�1Q�h�*A��o��\�{[]���Y���s�T�a�S���M+��嫝k��]��ʤh`�~X�3�6#�V}JB��]P4.{��>f<1�F��n�u�]���yݬDUT}g�A@f*�d����QwPtT��u�=����C�I^s[�oN��
'ĭ&6{��)��6^��4wt��j�C	�ڀ�+I
Lk�������?�`���y-F�%Hy[���2\�y�>~��U�%{ivg�<���f�F�|�FY^���lxU���/hX��ى��6l����%��E0.)
��nM*����	`��j7n�E{o�ɲ�E�c�֝�� [�8-k�^�r��9��=;��Q\j0�I�A:o�40�HlK��q��&TqN�c(g&&_�ȃ8�b��B���Çt�K��}�F�ڜ�U�P�(��
y���CDe�*��m�h��2n���dؗp�e�5bxR�����An��J��<��ݾU���a����o:�;g:}�|�Uن��r��X�A�6��_�;O>���]#>8X��:����������Y��0u� ���}y���(�q��s:	!)��;�l>���;�$Ὁ:"�O��	K��!��
�#���G�����t�&8�<�)�h�ž��%:η��=�sY7�r�v�M~�l4a�9f���Nȶf�gj��?�U;���r^8�H)�ì������3-2��cWM�/
�F���F��LuH{PK��h*��
��lq%֬���X$��b�rm���\KEc����$:��ܳW	M-��p�S}"�Ѡ(���PBK�6�k��.{�Ay��&h�j�˜&��S*�}j��3�f�'�!��a\^�9�=Dv�����e)��h��_��%���V�Ҕ|�]#�ڄ�e��aR7�҈UCu��V�V������z=V�����W��rX�_�3��#�	5�~�hM��'��i����\�S�ǿ�I1�^�w+	Ƽ��Ŕ�V��4���z_�9�2��¾�(�-��^��%�q%�얓A!���ʣ��tZ��l�WK�RlJ�+3���k�eΡ����O@���N�:�|k��8<CUO���e_�_rG�\X��'�
6��>��Y�t6e�'�`M|u�-��bo�h��<��sӜP�d�o,鰞�!H,O����}��,jp��;f�W�3�JF��,���4�$|�~���y��(�6eS>���N&�+�sH��u�it�-�[/Zu���H��L�J�8]4���k�@�qM
�	�q�0Ʀ֏P���9�	Y�{Z��	ÃЏ*�N�)��Z:��`k>`A���7��C�*��z�R�\�b
�j'����n������V`EZ(G�\KgM9<_0B�
v^���5���Ӵ|B����eFgCy�SW�=�Qu Ʊ�{T�%�y;j����Z	~ԅ	*ƒ*�mPmʁ�jT�va��	��
��;fJ~kN�2���*�+eo���Wv5:�e�Ae,��Mhr��&��4�n�4k��Z���N��d	c��+%�6��=�f���	��f��K00�j-�V8h�1\lTY9�;K�
r�
*���-��*KĭE�9;��sQ��N��	�6�����[��v�V���r%5�W���x^f�hw�S�a��+�*�%��	�<ʰ+���H��f�% 6ToO��΂���Q)E��Է�ݣ��_wo/
�R�o@�i%>��� N9-�2�JOC6G�"�͜�Ɗ��,~��ױx5�+���%Fo,pJ�4jPɤ����m$�,x��6�c]�����b���T��ϓu�C'@fmN��5��'��2IX-�#��*YR���n�N6n��CCə�A��V�ƴN<A��Y˖D�X#����]>L��4��\�	z�HSUQ\�Ey�k`E�`5�UÖ���AF�Zl��X�j'�"ƞ�{M�u{��䫄���徺C2�ӗ���|}3[K
%.
%mS�7�m���d�gtD�[�2�΂�vEQ\"� ���	b�75e�K���夊ܼ��ʊ~��\�`=��rv�����7P/�J�{��>jf�M�"[�(�L#"�@59��n�o\1��&i3Ha|wef�*Âd���|A�d�m+r�Ԭ��r�ꁧe�Y&-��t3�ĕH�H`�T���&��J��d~0��f��O��9N��H@���+�$d��зued���o���@�v���p�X#Qt�U	�"�$�J+�>\[Y���0��[����B^��8Cb�%휱�XT�=�unK�֖��D]��j�`6�+[ֿ#�~���U��$���Ɔ��@��
���N߹p�`m���3�
r���z_t����A��0&5���̕��HO�WU�ȉ�P�"1]�kmB���D�1����l���;<z�(��S[���q�[��b��������� ��X������#h��a�Qr_�Rh�ܠ�����h��I���[5�y��Bp
�S�k��-e6���=7�=DXR�X��v��ȇ+捧��^A)0�i}�����1[Tq�</ޞ�RLھ�)#���+.���_�}ۙBr��E�m\/�ic{щ�	O3`t�$S�Q¸�n@4E��Z�!db�:Q�Z6���y�#*�'��'�p.�4����	�N���?����W��U�i�)�L7�I�e�╙�b�J���䮚Ds�A����-FR�3E��,KeQ%�}�}��2&�KژZ3ϖ$�������"c����Y(h5zM	��>�R���L_��!�
as%(	�˚#�l����*�fB73�[۲��2���������L��Mʴ��]DhN��|c�0�J֪���(V�A�ް[��F��0\�ӵ}C�=����ԵѦ#O}I�L;�>���2K�SO8(��{jb�UBS��${�u��{�v�����8I㯖�IZ�֕H^UUZܡѲT�ۘ�93��P�H(Th.zo���٦iF��.��:�դ5�|�O��E$g�,M��R(С���u���m+�w}�W4�y7�R�آ-a	,�dl�Ñ!�Wȃm�
����4\���L�#Nb��M\?��U��3�iP�O�a
��+v1f���v�Be7.�
�1uKP��k��[�zN�>H-[��eK��b-��㒰�Ȩ��$�`�� n�[˸	�:iSϯC�����H8fXIG�Zu	{�t�a<���J•�ב�6<�t�J^�	���R7�-+_'�ty��K=Ua�t�F�ca2Bn"�k�a,?���M��Sٝgl2��9Jk�f���j���n����u��:k��fa2���魝�-]m����L��Vi@EbE��8��P2��x1��j�11�Q?Cn����WVr~�V���O�a߶��2��-@�%���8Nz���p�9��6OPI��lAYMY$\$���Z�0J=��'Ւ��Ap*��Ŀŭď��32�x�5E�:����"�8�I�ۭ�)�US���+Ϗj!_���鋉���<��y��
�#׸�|$SUq���$D�����A���W]"ė�b�\�g|%b�(�->y�
՘�3-3�uZk��u~vzی�̳�3���5��3��������6onkgvQ�4k���9�w��r^�=���0w�$��{2�)4l*��Í��6ʘ���^0�$u.�L��G.�Cԟ��FF�D�B�|?y�RD�u�ľ�7s��Cc��9+.��&��j��t1G�ڸ���^=q3��t��Q?��Tp��y����'c��\6G�#��4`��|1��+�n;%�������]����b\�3[��.��Fn4�|�%�A����|�X*:I�+��ȫ�I�s��M�y��m����M�,Ӝcg�et�aoi�b�;WR���Mᐄ�ef̦��
P#~������kņ	����?څS_��n��ׄӚ����4��V\#!Ϋ�#�g,i�O����é~��q��%�9�/J��T�,�J��V}�<=6P�0^iV�Z��k�Ţ,=Cٹƈq��5�r�������"ۻ��׌��=�PM�*@䞒Džce��J+"pȆW��8؊�w+��<���:#��h�[�ä(M>�Z���	'ԅ�:�:ϴ�ު�Ye�QY�� �Qe[�U�-�\�����YR/
�e��Jz
5��Èɠ��SEW�Q�R�t���)�pO��Xm�5����?N$e�(
� �1�5��^���HW�?I�g�Yh<�,�T�{�Jd�I�q����yp;U�m2NyNFc���hJveA�buc$.�],,/�\�Ē�;����<غr�YG"i�7L4�}��.p�m̏�M{�D��bkk��ϕ��qT��ۣv��өd%io�1�_���:���I1a'��~��}5��z0oƌ̼��y�yp�x"�qX���ो-d�r���nx�M����Ei�mv�;�Ac����q@c�%�JO�c�]���#��\$u� �r��%���Š�c]3����`|'l5�3�Z�|J�[�t.���N2~��l[�.`��a�S�	XXf`�Hي%5��n����@U"�%;���f������9{�D'_�W��'t�L��D�a5C�2��_�OW�8u*��g@�M�>�k����0�n����s!�I��A��Y�&�=hC��mMb8��l�ìS1��.O��C��-]E��W�,�r�z�t���a!*>��~wC��1���3v��v0��a��F~'�Q[��R�����FLF�(2r�� �A�Q��I�RoM!�#�ʚ��D�q�%��`>SqTL9�DJ� ��
�?[]��6�3l�(˰U�+�Z'�`2��_�"l��
6����O�St�����f�gn��<��lg�D�]�2W�y��-��A@eQ�P�n��+��A��}M��ĉ%A�8�.�W�\�t4�>��6Z��m�l4Q�e�F",���$�nGkxQQ}�h���5���cX�gbY�</�
��d:�.���t��C!{f!C�}��b�mL��QoE����*�y���H����x���g�u����+��U�*��mCl#T�)т�-��j��*y�JW�i���� $�DM7��,�L��H���v�F[׏���ۍ:��`%#H�B'�Иƪ��؇r�w@�6á��eB]�'��W΋��bb����Y�L���N����Y2^
Sr����&F��jIN�x��y8%��a�І�\�8M��~�OrB��.��$n��Ek�U_����l�Zb�f?���s4;����}1Hͩ�~1�70.o���B\q}%�N7
l����.��G�*��M�U}��#�c����]o��ָ�R���q㬰3��<�RG��]��Ti�:�h��]A�8�ISG�V����(�L������yl�x겘9*\y���7�j)o�ɰ����A�B�u.��
m�4�߯|w);��W��"5`/��t��(~��:e7�3t!�����%��̞�ҕ�oz�U/��,�	��A�<n+c��e8�ƴ����Y�F��U����q���	��NWkqJO[)��Kz_k��؅�h�M�1�^��G�Y+�PtIL3�}χ�x�M�N�s�p�a\�=Fb��1N�e���[�9Se5^?�{
ץǐ����0l�u�yTgl�ht��=���	�}U1C��r�*��b��ԭ�E1Pn�
���U�����X�(�Z��$����,Ӏy�Zj共�[����`S��a�զ�̎�&?x]�u����N/���a	oIku�~�y�ns:<]Z�"H%��Y@c�c�x7���·�by�����͉1�N�[S��;P�h3�Y�n\�-E.;'`ól�
mgz����N�.�\�z&�r�2��:�v5�Po`���3h
9���bNI��z��43Ѡ�Z6y��)n��Q���G=ꈧ���7tu�'B�����qb����i�4 ��n?Tg�V��LX|%Zu�
cӒ�j#z��NxOg5��<�;e
�՗�
*l)�X�Z��'b��ej�ŷ��㮄����9�q�����uو���z��
�u�L��z����&�ֳ���z`L"��8t�(a"���|֏��gי��Ʊ���;p}�W\[�f���+È
�wQ�)f*��B_{Y��{��s�\�*�l�P�~�d���P��_����H�U�����հ��I�CL�����D�L;�y#��&�	vLj�wgi��Nɖs��r�?����訑){酺F�ZXP�,p��)p9�۽qf�'i�=�˱�kz
��:ܤb[7�buh�3��Q�i\U���5�W}�H��.@xB���3����2L
N�5L9�^��QzS��M	���Tfp:_��,el�ʱS�n��O���	��r��.ϨX1�S�M�{Df�V4J�`!-t��H*�9@4/�n[n�b�H�o�"o&1*�T�*EI_ݲ�ȩN��o�(A�Ֆ�%+O�8�����	\�;�&J�̘�q%\���Z�a�fe���1o�)����E�	SG��Kҵ���P'^1C�O��2M�S��C����Io3����y��ѺT�
;C��=NM��D7ꁁbm%��u�:�ʅ(�xw���jc:+� ��ɨ�%�q�
h�,�9g
n����5�L���"CO����RKC�@�'��(gV\[S�[l����Ι����rK�IE��lϒN�)�,L�����@�82.��2�0_`�e��Ի�T�%v^J�0�O�!?�����~��VYʏ`�{�WY���;m��9�&^��
[����/_���$&����l��'���h������z��s#��U���4��z�"��1mA���4��R�����Ccz�jm�p ڷ�d-���Y��!�'%�Çw2t�P���.sT�ۆ��<G�2N*�fϬ �R.�I�XXݞ9n�
� �%�D2`�x�f�|T5��/,�����4;#�E3T$]��z���Q�[��qH\��YMfF��x~3s�\Z�J}�8��sN�A���.~M�M�զO�����K@x۴Y��Pb��ԙ�����	-|�d"�s[F�5�����(�7v���̸|B�)\Z.B��`��͘��`F�g7�ѕ��MAc�a���^Z�.�q�u*�U�tʀO�s\�B��H�-����,L��<\7!�ܯNB�p&)��
�}�
�u���eF����"�[*��f���1tU�[y�,c�Q���բI�Q�`��W�!�\��
y����V.1�a���^,h��e0C��ye`9�����1�񅢜���(�3�W�w�J�aqj���PJB]�Z%m�{k�zE{��Ek��ء1�+L�7H�Z8�����5Q��>DBI�Y0[��W��x�#!�2���x�@ڊ�	Y�U�z��D�P@T>�+�l,;�N��_\�d#�v&/�JTlh2fC^����*�����RO�}�`�}HV[Lx�eR�w����dg��.�:fg7�;��Y�)^m�vq�;��v5���9�@E/us`��p4��36���%1!}V" \�To��;���g�*����vpR.�m��**3I�C�2�j�ҋ� 6�V�3�x�6,������2���W���v�Mx:B��}`�p#�E*o�Nӭ�ӆ($��J\w���^;�ly��]�C�Z�l�������
|�ဖ�a9b!-�Q�,�2�b�W@wm�C	e_���±���+e�_��؀��r�ֆF��P�G�°$�wl�.�-�-v���YY�Z��=ݳ	����*�D:�ϑgw��
�8�M{J�pT�漎tHR&��"��Ҋ��GL�U!��9�+nO�)��c�vs������I0�TS~�S�bm1����I�tE��Z���S��8-2�N�mf@3����S�Iߪ����<�)�9����K5�;�n|l�
�L1��
)Z���.]��SXI������A{�?ysI��6�G�&�����%R�gl����F�2l=�8��03i��
��[�OL�W�������A��xB��8.�SF�2ߦ8'�j��ϵ�������T),�%��k&]�&e=�3���pv��ޙ����ju�J�6�م�͋��2�I�X�U�����-���(!*��R�N@d<_�P	dqY�-���jNg�;��h,�Һԫz]/�_hXnXr���OZ�,�a��L=A7ӼAR)�Ic3�=p{]���pV��L]:�Q>�AJ�&ʗ�y�T�]�f�2Ɍ���E=?���3aH����s����se�5���K+��25�(/��8����p�L��w���:�V5𵌯:{�Da�u��r�[:4�7ںO]��0�U~R�uZ�o,yDX�#�'��I%V.��t0N�M�`/�����k�wxd(���c���e^���y��bf�Y��[D^(!�+K�Oa�����]��D���C��+�H%�/�-cc�f�t��Ld������j���AYc�b@lF�ذ�1���(e��3��c5$���ATM9���R���"��5�8*�ؖ�6DFŤ,ˁ%~�q�8�27�a�:&�;{���!pF�8�'�
�'Q�.����%�L�Q����;�ntDi����z3Q��*���V�����|IhRZ�$��j��2k('*��?)��BI���_�o����@��`�_�lauk�
;	X
���C(�u�ם.iG9�Y�����lx֚V�Kˢ�K�J=k�5��hƒF�{^��Z�V�
��b��SOY;&��Up���t3,�V�`�_�[k���bf7�f�"1z��8�A:2L�#&$XX��;
��4��$�
ݞɐ�ӱ����2�չ���5q�S3�EV�n�����]�)K��x�~/+��8�M���"�nX����
#�*����Uר&ƀT����Gf�ˡK"6���ȩ�:�z)��.��1�0G�
f�a�����XNl���t
Ȫ�B�Ջ�sQ��#+�`B���@7���Q��N�s���<��f���Oo�0Nz9�����jʽLgm@<(/?��qB؎�}������D�fQ���t.	�N���w��RX�/	��pG&�f��E(f�ҙM���:�
���p��y��1^�ʊ��jZRi��)*��$C����_�2�C5��]2��X���V�]�%�;��1��|Ǣ�`�"�2\�ڃ��S ���\‚h�ŌG��6��:�*�ѕ������@':������dh�J��"EE�
\�c2��O�G),�U��ȪH�V�J��RW\WY�U�Ȗ���f]�
3Q��VK�iH�@��=�v{�[a�v��삯�^��7�[@�+<�eª���N��a"𵹘m{�u�x��уTNᬻ. �u��t���i���p	3�ӎ�E�
W�Dž��B�-��B����zbk��#S'�h���I�ml�����q>���r4�>��+K$�L�2���v%�;1������bT6ER��60�І��z��	���$�[� rV �Kݠ`����E?���V��U���
��Oܿ��D�]�F�%���Y\kd��h�T�^��}3P����_�ۯl����g	�d3�%νv��[a4ouI���l0kR�ji͑�u����'�jdPԛƦBB��Dn�<r�
e��Źls���(r�����.�<#�U�RI�M�:���8rnr,��,�#�󅞰-�5g�Ϊ|j
V`d\G�xk�f�X@�����ee��SΪi#.���d�u�-�łT�^d�X��C�$&@�N�=�`�V�W^]�t�ո�
��%�%y�6W�^�n���4eΗ8/xN��U��l��W��e��!�RB� %S��>XI��1��ͬ+��$�(R���7J�B���q:m/`��)6������	n>yr��'����z��!(�9%�z0G�]�5'L��vF鑡�*���Uu(#��%M�
�fDA��VP���
s'�&7��
8��v�
Pm�2�/��RM6�ɾ%���[č��Wn�_�A�y%�<4/H颲C�L5�?�s�q$�pX��Ȏ������p�� LG��k���ڏ
�Pf���(o�@Bœ��ĘDx��H� �.�J�(F�'��W��b8�P���j@0�YU�`�.$�d;�Hx$�v'T�)�h�I���&(3�}N]f�vE���̺�˪�h�[յ�j`,k{$"�5y�k�7�
+*�1":�Ai�p3�9)!�_���yw!_u��ϝ����������m��@���%��2�g�
�
�űn`�]+1賓�$��I4�FmZ�5�q5��\�ƌ�XZn��~�n*�D�x�sF�|�'�|��n�׼8�(��P1���	4���[�?X�Ȉ؀)�ֱ�1O+F�
�EX_i�b�3�!��U�r�{^P �H�&<�Y_�ɻ0鍪�	5:+1�Xe��/�����)�j�eFKx�t�k���h�ߜ]й�y~ۼ�l���{Hhަ�i��k�{S��O��s.$�M�4rO��m��)O��a�����D%���3�Uf���T)(�#�$���3b�>�˯��8ڱ�,;I��X��~�x��:<
���J��a������"��V�MѥO�i�U���-�
 CI�����;�w�����$T�[�D�q���"l��f!�r�ѢM�[�RK7E(BӼ��q���q�ڝ$HqI|�ci"����K�`�<:�ϳq����
Fհ;fK�j’��^��A��cSvf���Ai]+��uW�(�̡.k��F��i����0��c�H�93�E��^Uqwđ��#k)�6K�D�'����kda��թ�alqŸ�!�)a���ʋ*��ۤ{�T��:'u��F���}��C�L���S���z�Ͳi�ڣ�0�h�J=�L	�i��ql%]��&t�U���O�r��y��-���\�į���O�J�th�	�L�'H���� �q���+�,��V+�$�7%�I��	/i������B�g�kaI���11l�LFoF��{z��c�ԖU|���(��X��M�S�('�"o��T����`PZf0�]��Qu��K���,��
=���$%��T�}��.Vakҍ�������p�|J�X4.��Wm������y<4�ofwf�
�i���ϋ(��3I�X�&�ZW�q(�6p���.^&1]��.�ލ")�yE�'�;�!'C�!��&�:6Y��|�1��!H��X> .��b��*���J��Ũ/;�`��U\!@]d"̈*��w�R^�\��3�8:P�D�B�zo�e[�O3��x>������8��E:$ⰱ�rxn���& w�
'�E�l�ʁ
K�����"�"� GWnL���#g�c�J--BoA���Wp�KƢ�DzO�B;ѿ����g�R�R��a�^�
ql����V��saF#�ʙ��ȁ޻�%%~T`�&9��W�
J��%ۃ����h�	�g,;K�d�Ƥ���j��8-Q����A�BY�%���P�}�G�֯��*K0�A�3��5�9�\M�������S��x���ޥ/qJ��q�/e��ԥ�}
|{*$�H�y������k��9�#_��*h+�)D�W�֌ 
����U����1�zy�Y�Lh�p[�y�5V�߫�{.���nų�af�jF��j��Q��c�UÊj�:bM�8(ZGX�#^ҋ���������K����]���˶�UH|KY
�d,����
��A��6����+ΡUW���'7����q
�T�$��E���I�a'�yM`�	RkA�	1�mgE���Z��M��{U�(�Òt>��D�9���l�ϡ7�FFKu���7S2�#r�����W\��ѣ]��$]��m�����`3�m�r��&� Jj�Q��$f95��a���"X��i�8�7��S3���ǃA��we�*]�Aeg���5o�<����0�%��	�G�z�]�[ת˛�uc0f���hc��k@�ʭ�V��ka�b�Fqm%���O�O����DŽ���Ŵ�h�\qM\Pe4�F)נ�b#q�:�m �Im5+���\qպk[�M�
��C�Z����R!dRs���
�rA
�*��V��o鵔o���%��48Iөkn2U�
�u��:l�Ȝ���ڹĆ�&ኗ�3CԆv����P7r����B�m0�f��ڹ��t��)�)��i�i\��n�#8[�+6��"�l��	T�S�2zK��Y�8y&LL��>4WI�A���/S ZX�V�j�e����@�u���hZ>[YM��a&|�:�����Fq�z,|�<�ep>���&�
&��Q�I���e:ĂU�r�&5��	�(j(׎5�hK�(s�7<�`c����e����MJ�,.�z��/��!ͤ`��t��s5��͔�3�,2Z'�u���T+� ��BAٻ�ړQL�g�%�Ƴq�C��EV�ڴ
_]���5���1���'��kQ����F���縨�e�5V��4���O
�h�w���9�J��,c"B:�'��d�X�0��t�J����*�~:ē�*Z��h�R7��z^��TeăC12:��dL9����n��n��j#7��:{�6��4��x��Z �r��D,�z`&6 �ﶥ�Ԧ��)�V'6�Ǭ�G�9.��;��ҎM�``��}96����G68�	�o�1�����㏙m�;�h�S$)t�#�V\����b�>� �1�1�c�C�$����3�	�V��_���0`�
Ն��*��/��z��)vpa�8�T+WY,cdA�YG~d8љѼ+\U�@�U�~Jn��/gw��@�T=\W�ĵޓqΏј���mv�j��T�ł8�_ư{x�1�Egq7�œʅR��J5{jg"\,�ŐA:�>���~��!��#c���ȯ�.�=��ֹ-�s���g/�+.�/pڜu�
0�Kz!D���hD'��Z*���65`���Z�g�Y
F+�(���.���g<=@r���2J֤�C`mTL��ໂm|*�����)���깊b��6�;6�A��5W2���7�YѪX�xxN����q�`���4L�km�Ú�0#Q,���]ߝ��E��q��8^n��
O#�RlƱD�`�I��%k��`
+���F}uZ�M�����k#
1\�����(�n�P�u:lP��1L
��������t���
��Zw"X�+���α{.�ЄmTu��0�f�j����z�s:��ƭ?Y��J��jfAKK���8.� �Ux��@:��?��9�q�z�
�ؒ��
����Ġq��˝j�����Շ(�?H���w�B|c�u�yFo��u�O�sQ=�&V�S�� ˣlr�11;�+�7��K�Ͻs6�{�Ot_0Q��-���l$�E���&�$s
Z�I�Cu�鎟g�U��d���2b��1��Z��q���Zu=梄�<�7M�Ą�	C�5|n�`�ʑˎg,h�o�S�K:�ۄ����5��S�&����H4�g��(!6���܆~,��\�Ϧ^��ήe�m+��S�EP�MW��È_˂��X	%��d׿�]�����9���āė��{gΜ9gf�ہ;���>1��DE�k���n���Vm�&J���ږ�#��z�3j���0N�����T����%��rzruv3�_uH'�8���X��}� �zb8������5񢟥�|�2R���`<ⓗ)�������U+K��"�^G�|P�7�'>U_]����á�����|K��tZ�����%�ˆ2��)��u���;�h�[����'�����'�I�_��!���UԨb*-ȃW�P#nz[�����9;[��3wHA��p!�A��30�RQ�'>:�k�����8M!��f�hG�vb0�`�+ ��yY�^��8"��(��"�Wo�j�y�L�L	����W�������2�k/��8�&�6>���UQ.n�8�2&�n�[
��䪻�AcA�^�6�J q@	��x�֤V5�>��)#���Mv�f�\2D���	̳oY�c3�0gK�����PWt\����N���U��^I��k��
̖���,H������׸,n.Ί��6�9v֦{��z
*��U�G���E��+�Ө��G35�&�h�޶:�z��{���I��ܴ�����W!WG^�9j̺��dm�]�����qw���c=��/E�on��C�x-ΰ���ح�=OپF=�A�$��^��r|{�lX���˓��d�~҇y
�ox��S���\�p��뎹��4��_���*!�Wl4U=�ݰ�y�W�̌wzz���ջ�i��Q9�L��>m��\$���b��G����S���4���IV1*�J<�)�F�g`Y�����[�c�
|R*E@+����\��(�f�^���}x:��~�)���vFyN&2J�7't�B!&v�gK�X�'BĩDD�L�����#��k ,d�r*�R���K�&]���PO7�1�~Y�=��;����_K9�o�@O��5=2Ҫ�V�<|������V`�a��U4�����	��1r3��Jʈ1d�א���@����Y[;:'[���z,�ttt94�G�l/��	�Y��!���C��Ȥ�Gnl�}Wn����0�h���g���]���Œ�ܥ�\ErF��{�~�x�鲨R��m�e�cn
w�*�G�wHxMJ�� �*��NyG�>�hU2O���\DQ̗-ʕ�>1�02��/�B!9�Ց��_D�Y��]���r�Nw
��G=�ڹ�X��.x��7��֘�7�g��+;�\�k���d�n��܏�)
��hܶm�b�
J��H�Ͳ���-H�]a�]A,�u;������ۣ2��&bJώY�L݋�RО�˛ɆU�*	*�B}!�J��A��&�-;,�	G����S�2]NI��{�D�����sD��5V����iϕA�Y�����|ˈV�n8�5�1/�&c�_Ƭ$��n�[���p�,x`R)�����w�� ��Ɇ��"�Rkŵ��U٥5rC~]�"�b�n듘���Qܝ⤭��E�d�=2�>��XR�*��Cg�J�r�I���[����O���vj���M�!P�H�J�ݏ�|@�FBd!��!F�o�y�p
��#�!����8Ws���C�86�Oz�֊P�X�o˗�o���4S�l8��n-2�ߧiR�jDݙr��ܩ�&���o�SB���
��O��ӳ�3��]-��,��BAΠC_��U�v�p��4q1�A#u���%��G�
QR�.S��P�1 �n��_���sַ�:�G���A�T~)>"���|S\Ųm��
P�
ʄg/3B;�8#V.
�Ӆp�r�V<
���z��e���7_GE�@WI�l�V0	�饥��*Hb&���J��	��o���d�p`�j�@n��=����(
)�����@r�����u{?��F[���&�V$���
�m���ܺU�p�m�����'+��ۖ�h�\)�է-QxJ����C�)
��31SQn���)����@(s��=0�X�2�x'��t��b����~i:%<H{7Z{�
�e+�?Z�N��Ge[�^iWT��tj\����_�J.1
颴F���ӈ���6F��E����f�M&����&����)H��p��o'+=7݄��Ҧ;yLa$�0toi�SvI̸�b�O�p��u���U7�Ϛ�&�v��h��=����r�B����>�xna��]�5�
��9��Z��`�M�H�]�%E�=�ޥiB��b�{<��4m,Usb~,�n���o��?PKe�4W1�Z���^��litespeed-cache-es_ES.poUT]eux����PKe�4W�{�)k����-�litespeed-cache-es_ES.moUT]eux����PK������$,W,X�u�u(�u�u2�uvv	v
&v
1v<vIv_vuv	~v�v	�v�v.�vm�vKw
Xwcwjw3ywh�wx6xNVxY�x8�xw8yl�y�z=�z"�z7�z7{H;{�{�{�{�{�{�{�{'�{
|	+|5|>|U|%g|�|j�||�|F{}c�}
&~.1~0`~�~%�~	�~"�~�~PdTsZ�>#�ub�؀���4�-@�/n�0��Lρ2�)O�Iy�*Â^�M�\�h�#w�����QǃO�i�s�E�P9�0��'������3*�^�d�|�I��͆+�	�	�(� 4�"U�/x�*��Ӈ
ۇ����4���͈f�����
�%�2��C��ۊd�z�#������Ë�
����&�3�9�I�\�m�	������
����͌�����8�&W�0~�*��UڍW0��� �� Ǝ(��"�(:�c�l������K7�	��������Ԑ��"�@�"\��!����ܑ&��"#�GF�!��,��$ݒ+�.�N�j���'��(ȓ
���W�q�����1��1�%�2;�n�z���V��^�
a�l�{�������̖&�.
�N9�*����/×k�_�]�ݘ��!�<�H�
Z�h�����������șԙ�	�%�B>�
��!��4��'�6�B�O�	b�l�����;��:��0�K�j�{��� ��"˜��/�*M�<x�7������"�7�
U�	c�m�v�������Ξ
՞�	�����1�D�
L�Z�k�!������֟�� �0�
O�]��f��9�L�T�)k���+��}ߡ]�Dn�8����
	��.�;:��v�5� >�K_�8��q�V�^�r����������C�b�
i�t�(����H����/�
3�>�<K�������9Ȩ9�
<�J�]� m���
��,��Yөq-�����NǪ�#��*�(��
�����:�T�s�{�������ˬԬ�����+
�%9�,_�s��#�$�D�d�w�������6��)���7�Q�m�L��ԯ9�:�0U�)�����GM�L��W�:�K�
c�n�
�������Բܲ�	�
(�6�8F����
��Ƴ� �0�F�U�i�#|���
������״!��+��F�ٵ�� �9�
E�S�	g�q�B��
ƶѶٶ	ݶ�2�)�ZI�,��ѷ�-��/�i�Zq�I̹;�YR�K��V��UO�L��l�B_�Y��:���7�Jٽs$�N��]�VE�`��J��gH�=��@�=/�m������������
�<�?Z�����������?�L�S�c� s�&�� ��D��!�-�l9�G������
�
��'����������������
������
����

�/�/E�u���p��<�
N�Y�x�(����
������	����c
�n�����.����
����
	��/�<�h[���A������	��������'��
�*�
9�
G�"U�x�����$��+����#�+�*D�o�������
��
��$�����P+�H|�B��@�5I�2�B��@��>6�"u�=��&����
�%!�G�_�%y� ��"��&��!
�,�F� _�����$�������������$�d;��� ����/��.�I�V�i��������������	��4�+7�c�o���
��������������
���+�:�I�h�%o���$��
����������	��@�
_�%m������!�(�>0�o�{��� ����*�� �2&�2Y�����"��*��"�"3�V�f�<��,��$��
�
!�/�F?��������2�8�%?�
e�.s�?��6��;�1U�3��2��6��0%�V�Z�]�`�g�t���Q��D��
>�#L�-p�$��?�����7������%��	$�.�B�W�j�������$����E��+B�*n�,������������#�
+�
9�$G�!l�������?���/,�\�z�����������������R�cY�2��?��0�
7�E�d�dz�<��5�SR�C��5�� �p@����K5�O��'��D���>�E�����.�;@�0|�K��M��G�^�pf�|��/T�&��&��)��8��75�4m�����
����
�����F����4���#�0�E�AQ�������	����������	�
�	%�/�;�%J�p�0����I���$1�DV�@��9�1�H�8U�a����
��9�J�Z�+b�
������+��(�#�#6�<Z�0��1�/��=*�
h�v���G��Q�+E�q�}�������.�����*�J�a�t�����������&
�4�{K�;���42�g���������
��A�S0�	������!������"�1�E�+c�&�����oHB��/YJ���$�2?RdIy
���
�
 :3n���.��'�d��M�f�$`X�Q�70+h�g�(GQ`�0�P�^@m�	
		)	B	[	9q	v�	}"
(�
�
�
>#bUv�N�Y/���
��&�	
#
2
9?
8y

�
0�
V�
_HC�G�a48�4�/746l7�-�)	L3*�)�-�(,,.YK�?�?HT<���(3+_Rf����-22e(��5���e-��/�M�h7�]�=i\8�[�c[C�jznA�q+��`/'�q�*HJW�$�O>`��K�;E@ 1� -� 8� M!Ym!$�!,�!)"9C"N}"&�")�"9#YW#%�#$�#X�#1U$�$s�$A%?N%K�%,�%&&^.&E�&U�&()'SR'Y�'�(�(J�(,�(z)(�)I�)x*^�*A�*4&+)[+c�+0�+.,�I,��,��-".&=.Vd.2�.2�.7!/+Y/Y�/*�/F
0XQ09�0�23:3RZ3;�3p�3,Z4*�41�4;�4/ 5(P5Jy54�5B�5<6N[6Q�6o�6Xl7/�7G�79=81w8��8@9 H9i9�q9J7:^�:3�:N;d;W�;��;�q<*6=<a=1�=V�=L'>*t>]�>�>?
?? ?$,?Q?f?
w?�?�?�?�?�?��?/d@(�@)�@�@��@��A�B
�B
�B�B�B�B�BC@
CNC
RC%]Cg�CH�C4D
:E
EESE
bEpExE�E�E:�E>�E@ FpaF�F�F�FG*G=Gr\G]�G5-H_cH��H(aI8�I�I#�IJ$$J.IJ2xJr�JHKgK!pK�K�KC�KF�K
-L18LjL�L�L�L�L�L�LMM 5M VMVwM�MK�M"N*N?NSN+iN�N�N)�N��NnOsO�O �O
�O�O�O�OePJvPj�PM,QJzQ�Q�Qg�Q[RRrRZ�R S,SAS&aS'�S#�S�S%�S�	T/�Tq�T(cUE�U��UA�V@�VJWFWW.�WZ�W6(XL_X-�XG�X3"Y-VY+�Y�Y/�YZZ)"ZZLZw�Z[\.[�[
�[�[�[�['�[�[K\`\i\v\J}\	�\�\�\�\��\o]w](�]�^+�^#�^0_9_@_	H_
R_]_i_u_�_�_
�_
�_�_�_=�_�4`�`�`�`
�`6�`g#a"�a#�a>�avbH�b��b�oc�dI�d3
eWAe�eT�e�ef	f f9f&Qfxf/�f�f�f�f�f
g=g\gl_g��g^Sht�h	'i71i.ii�i,�i
�i,�i$js5j�jq�jj4kB�ky�k$\l�l�lC�lI�l74m9lmU�m@�m<=nUzn%�np�ngovo�o�o&�o�oipdkp�pz�pMiqh�q9 r'Zr�r�r�r>�rs/s>sfCs�s/�s�s
tt)+t!UtNwtC�t
u
u u;u�Mu?�u�+v�w�w�w�w�w�w�w��w��xKygyBwy�y
�y�y�yz"z3zOz\zbzsz�z�z	�z�z�z
�z�z	{{,{9{I{D[{(�{B�{/|n<|o�| }2<}o}%�}	�}+�}3�}	~ &~�G~�~�~^v��/���(�&E�l�&��(��2܀-�(=�*f�'��J��$�.)�0X�:��(Ă#� �&2�1Y�'����&��V�=�W�)s�?��@݄5�.T���$����nʅx9�
����̆���	��+3�/_�]��%��0"�hS���MՈ#�,3�`�$s�������ȉ������-�9�X�u�,��T��
�.�D@�+��;�����	��*�$@�Pe�Q���$!�F�X�p�$��"��ʍ�2�##�OG�5��͎#���%&�L�	^�h�q�������ӏ
ۏ�	����6�V�	f�p�����#����ؐ���(�8�"I�l�
}����
a�Nl�	��Œ5� �,<��i���9�6A�x�����!��ԔA��'�
�#�^3�H���ۖo�v�"����̗ߗ����.�XF�����)��.ߘ�T�j�#����
����˙ ���>'�>f�����ƛ&ٛ��=$�_b��œG�"T�`w�؝���7��Ϟ����4�	N�X�l�����
��˟	ߟ���T�(e�:��nɠ'8�.`����� �����	�9�8Y�����Ģ �b�e�;r�F��<��32��f�b�Qx�Uʥ �5�
T�_�
t������ɦҦ�$�
-�;�?M�"����Χާ��$�09�j�{���"��Ϩ
Ԩߨ�	�  �!A�"c����;�S�f���
������ѪڪA�
0�;�H�L�X�F]�/��bԫ57�m�'��/��-۬}	�i��O�FA�g��e�bV�W��_��q�O�qP�C²��V��z�Y{�cմP9�o��L���G�P׷<(�>e�����'Ӹ$��# �%D�j���I��R�9�W�2u� ��ɺA�	+�
5�C�!Z�+|�*��`ӻ
4�
B�sP�Hļ
��1�
F��Q��P�K�b�!w� �����v�
����
��
����2�2�R�l�v�8��	/�9�
W�.b�!��
����������s�0z���!��;��'�
,�7�O�b�{�+��i�� �9(��b�
�� �0�M�/]���������%����$�(?�6h���0��'��*
�5�L�f�}�����)������\�Lx�M��L�@`�:��U��K2�M~�2��W��8W�����-������&�%;�.a�*��$������%�?� W�)x����������������p�������C��.
�9�E�[�t���������
�� ����/�72�j� v�������&��
������
�)�9�I�Y�n� ����*����(���$�+�2�
G�U�i�<n���/��	���������D�������#�$>�,c�$��=��>��2� O�,p�C��(��&
�1�$D�@i�2��+��	��)�LI��������a�j�.r�	��C��G��:7�<r�<��G��04�<e�T���������	��"0�VS�S����.�1=�,o�=��!�����@����"��0�	7�A�!V�x� ��%��#����)�'=�Pe�B��4��;.�j�	��	��*������������+
�'9�*a�>����K��#�><�"{��������� ����
��&�QF����>6�Gu�
����!���l�=��6��P��BJ�:����d���G�S��a+�"��H�����C����
������R�@X�Q��J��6�P�{a����5e�E��A��-#�JQ�;��D���=�D�Q�e��r�P �q�>������(���S�o�{�������������
��/�<�O�+k���B����W�!f�5��R��I�F[�9���;�g)�������%��	��4,�
a�l�{�+��2��-�"�8B�-{�5��9�F�`�&r�$��C��]�*`����������6�!�@�]�%t����������(�-D�r�1������Tm���>��*:�e�������
����S�],�������)�� &G
Zh|,�2���|�Jd!|�i�$=&W,~9���J1|
������J�E]d�C�
�/�}��`�y%2�i�c<=�5�	|3	�	%�	�	a
n
6�
c�
y"n�	(EbG|���a
2�
 7XuJ��e�GR^Q�
&6E#`�,��F�F
SOaj�mS�`�^?K�?�9*@dO�H�->.l2�1�8293lI�P�C;<J�N@V��4�HOTV�"���$A-J!x2��0�#':>DZH4��7�R�k'��>�q�>WA�s�RLi�x	 S� r� �I!b�!%A"cg" �"W�"KD#$�#a�#_$w$�$\�$!%+3%O_&G�&-�&@%'If'[�'*(,7()d(@�(S�(+#)-O)@})d�)6#*-Z*f�*;�*++>+U�+6,\K,5�,(�,v-W~-q�-(H.Tq.s�.�:/%�/W0.\0��001WL1��1p22C�22�2*3kE3+�37�3�4��4��5K6$h6]�6=�67)7Ia7-�7h�73B8Sv8U�8: 95[;!�;F�;Z�;7U<~�<=/,=7\=;�=:�=5>RA><�>o�>#A?Xe?M�?}@c�@2�@o!AK�A>�A�B�B�BC�Cu�C�`DT�Df:E$�Er�E�9F��F'�GB�GJ.HjyH_�HEDIe�I�I�IJJJ(*JSJhJ�J�J�J�J�J�J��J<�K=$L6bL�L��L�XM��M�N	�N$�N�N�N�NOZOtOxO"�Ol�OKPMeP
�Q�Q�Q
�Q�Q�QR
RCRQbRf�R�S�S�S�S"�ST%7T�]Td�T>GUm�U��U-�V6�V#W*4W'_W �WC�W8�W�%XY�XY0YFY
JYDXYZ�Y
�Y8Z<ZZZkZ �Z�Z�Z�Z�Z$[!+[)M[[w[�[W�[8\A\_\v\8�\�\�\6�\�]�]�]�].�]^*^?^Q^yn^X�^�A_M�_U`'h`�`{�`ag=aj�abb*5b/`b0�b#�b�b/�b�'c4�c�d-�dR�d�"eI�eA"f\dfU�f8gOPg<�gU�g63hMjh=�h3�h3*i^iGzi�i�i�iij�nj�jo
k}k�k�k�k�k4�klKlkl
rl�lR�l�l�l�l�l��l�m�mS����#1�����b.���m�AH:nh%B���2��o�W�de'[����N���uq.+CCnxR#�a�q7���K�SB�/��t�8|��n�
����Vr,��\�s&z��4�,r���/���a-l��wI����dg�k `>	�~��8���EM�0���M�
0����;|��JLWkMU��g&c���#��}PcK�/U��$L
fm�jo~�!6�: �~K����fv����@!�L�~��zUD�*+Y9g/+.�#����I��(��K�_�,�5��g��XC|�3X"�G�.:�V����'�7(^!�\4�&��eb���'F�-��D�9���
 ���t4�;�3�oI:�i]Gm>����
���'���F��E�A��"��O5�\t��nR����l8o��r�
���?{���*v���^?#�1�d�L�<��� FC��s�06�x[�CUM��<X)Ty	�(
�%F��b�������"�x�$�$����)��*i;

�]�A��Z�{>�T@:�������`c�6V�7�������*J3z�{Q���r�����h4F��Bs����H��h=S�0��,S�Q��������(��a�h�6������Z�OT&���RjW� �*�l3�j��g�-�`R��K�Yy�b�����?	����j"�a?m�2ug�|�:�.������EPM'���������6pO��~�kn�it)p�'B1�S���Y[GX��P���$��m�e��4�{4�Ey(t��vz��N��L�21�W�{&l��P9[�f-��N�k������������+X����x=���2��)q�H]�������9���f�����7��bJs�xDc�)8I{1���M�=����	���^H���A�"H�f|�hq��jn����"���N���_�(�b�o*��~$Tl�D��9��0��2����<��E#Q�m��	�q�_�!r����U����}�5�^����C%Bd=7.�+��8��-����^��)riuc�=�9][7�����<������	�`/��pN�a�VY�O��Z�U��j_�x�R8����YS���0��;���AQ����K�%\$��</H�Au�W�G�a��\@���-��_
2O�o�fV�pQP���L���%�W�wiuBv�uwZ�z}
�`�e�<�����5�Y��l;���|�QeDw��I��3Z_kI��N!����vT�wsZ���t�^G�V�v�5O]�6]������>!�yi�DT�?J���&;�p �3�5��%e?�}�d\J�����[�dE����@J�czs@��y�wh����@}�>�P�F�y���R�����}pX��>��`q=�,�
+G,k1 %s ago Cache the built-in Admin Bar ESI block.%1$s %2$s files left in queue%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.%s must be turned ON for this setting to work.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is not required to use this preset. Only basic caching features are enabled.A Domain Key is required for QUIC.cloud online services.A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores.A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores.A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).Account is linked!ActionActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdd to BlocklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced (Recommended)Advanced SettingsAdvanced level will log more details.AfterAfter successful DNS detection, QUIC.cloud will attempt to generate an SSL certificate and enable the CDN.After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.After you set your nameservers, QUIC.cloud will detect the change and automatically enable the CDN.AggressiveAlias is in use by another QUIC.cloud account.All QUIC.cloud service queues have been cleared.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.Applied the %1$s preset %2$sApply PresetApprovedAre you sure to delete all existing blocklist items?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to delete QUIC.cloud data?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset CDN Setup?Are you sure you want to reset all settings back to the default settings?Asynchronous CSS Loading with Critical CSSAt that stage, you may re-start the verification process by pressing the Run CDN Setup button.Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto QUIC.cloud CDN SetupAuto Request CronAutomatic generation of critical CSS is in the background via a cron-based queue.Automatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBackup created %1$s before applying the %2$s presetBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are allowlistedBegin QUIC.cloud CDN SetupBenefits of linking to a QUIC.cloud accountBeta TestBlocklistBlocklistedBlocklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.CCSSCCSS Per URLCDNCDN BandwidthCDN SettingsCDN Setup StatusCDN Setup Token and DNS zone deleted. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately.CDN Setup Token reset. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately.CDN Setup is running.CDN URLCDN URL to be used. For example, %sCSS & JS CombineCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS, JS and HTML MinificationCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatusCache WP-AdminCache favicon.icoCache key must be integer or non-empty string, %s given.Cache key must not be an empty string.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCannot delete, site is not linked.Cannot request REST API, no token saved.CategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all Unique CSS files.Cleaned all localized resource entries.Cleaned up unfinished data successfully.Clear LogsCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick the refresh button below to refresh status.Click to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloud REST API returned error: Cloud REST ErrorCloud server refused the current request due to rate limiting. Please try again later.Cloud server refused the current request due to unpulled images. Please pull the images first.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Completed at %sCongratulation! Your file was already optimizedCongratulations, QUIC.cloud successfully set this domain up for the CDN. Please update your nameservers to:Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestContact QUIC.cloud supportConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.CountCrawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler LogCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler disabled list is cleared! All crawlers are set to active! Crawler(s)Crawlers cannot run concurrently.Create a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent image post id positionCurrent limit isCurrent server loadCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDNS Prefetch for static filesDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug HelpersDebug LevelDebug LogDebug SettingsDebug String ExcludesDebug URI ExcludesDebug URI IncludesDefaultDefault CacheDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDeferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).DelayDelay rendering off-screen HTML elements by its selector.DelayedDelete QUIC.cloud dataDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable CacheDisable Image LazyloadDisable VPIDisable WordPress interval heartbeat to reduce server load.Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDomain key and QUIC.cloud link detected.DoneDowngrade not recommended. May cause fatal error due to refactored code.Drop Domain from SitemapDrop Query StringESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Elements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blocklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable Viewport Images auto generation cron.Enable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Error: Failed to apply the settings %1$sEssentialsEvery MinuteEverything in Advanced, PlusEverything in Aggressive, PlusEverything in Basic, PlusEverything in Essentials, PlusExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsExtremeFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s available for UCSS per page type generation.Filter %s available to disable blocklist.Filter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must allowlist all %s server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode IPsGuest Mode JS ExcludesGuest Mode User AgentsGuest Mode and Guest OptimizationGuest Mode failed to test.Guest Mode passed testing.Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.Guest Mode testing resultGuest OptimizationHTML Attribute To ReplaceHTML Lazy Load SelectorsHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHigher TTLHistoryHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.How to choose an UCSS allowlist selector?However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If it does not verify within 24 hours, the CDN setup will mark the verification as failed.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using a %1$s socket, %2$s should be set to %3$sIf you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you have custom DNS records, it is possible that they are not detected.If you have not yet done so, please replace the QUIC.cloud nameservers at your domain registrar before proceeding. If you have this enabled for your domain, you must disable DNSSEC to continue.If you prefer to use the CNAME setup, please <a %s>set up the CDN manually at QUIC.cloud</a>.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage groups totalImages PulledImages containing these class names will not be lazy loaded.Images having these parent class names will not be lazy loaded.Images not requestedImages notified to pullImages optimized and pulledImages ready to requestImages requestedImages will be pulled automatically if the cron job is running.ImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn ProgressIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.In order to use QC services, need a real domain name, cannot use an IP.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInline CSS added to CombineInline JS added to CombineInline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.InstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIs something missing?It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Defer for both external and inline JSJS Deferred / Delayed ExcludesJS DelayedJS Delayed IncludesJS ExcludesJS MinifyJS SettingsJS error can be found from the developer console of browser by right clicking and choosing Inspect.Join LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast Verification ResultLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLazy Load for IframesLazy Load for ImagesLearn MoreLearn moreLearn more about when this is neededLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed CSS files will be excluded from UCSS and saved to inline.Listed IPs will be considered as Guest Mode visitors.Listed JS files or inline JS code will be delayed.Listed JS files or inline JS code will not be deferred or delayed.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed User Agents will be considered as Guest Mode visitors.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache Configuration PresetsLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache Standard PresetsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed LogsLiteSpeed OptimizationLiteSpeed OptionsLiteSpeed ReportLiteSpeed TechnologiesLiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.Load CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.Main domainMain domain not generated yetManageManage CDNManage DNS ZoneManually added to blocklistManually runMapMark this page as Maximum image post idMaximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobileMobile Agent RulesMobile CacheMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.NameserversNetwork DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node after checked server load.No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot blocklistedNot enough parameters. Please check if the domain key is set correctlyNot runningNoteNote: For 15 to 20 minutes after setup completes, browsers may issue a "not secure" warning for your site while QUIC.cloud generates your SSL certificate.NotesNoticeNotice: CDN Setup only reset locally.NotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Online node needs to be redetected.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not allowlisted.Outputs to WordPress debug log.PAYG BalancePAYG balance and usage not included in above quota calculation.PAYG used this monthPHP Constant %s available to disable blocklist.PHP Constant %s is supported.Page Load TimePage OptimizationPageSpeed ScorePagesPartner Benefits Provided byPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.PausedPay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please make sure this IP is the correct one for visiting your site.Please read all warnings before enabling this option.Please see %s for more details.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please thoroughly test all items in %s to ensure they function as expected.Please thoroughly test each JS file you add to ensure it functions as expected.Please try after %1$s for service %2$s.Please update your domain registrar to use these custom nameservers:Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePredefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Prepare the site for QUIC.cloud CDN, detect the DNS, and create a DNS Zone.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPresetsPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Prevent writing log entries that include listed strings.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blocklistPrivatePrivate CachePrivate Cached URIsPrivate cachePrivately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalProvide the nameservers necessary to enable the CDN.PublicPublic CachePull Cron is runningPull ImagesPulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge LogPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud CDN SetupQUIC.cloud CDN/DNS does not support DNSSEC.QUIC.cloud DNS settings are not changed.QUIC.cloud Detected Records SummaryQUIC.cloud Service Usage StatisticsQUIC.cloud account has been created and successfully linked.QUIC.cloud account has been successfully linked.QUIC.cloud will attempt to verify the DNS update.QUIC.cloud will detect most normal DNS entries.Query strings containing these parameters will not be cached.Rate %s on %sRead LiteSpeed DocumentationReady to run CDN setup.Received invalid message from the cloud server. Please submit a ticket.Recommended to generate the token from Cloudflare API token template "WordPress".Recommended value: 28800 seconds (8 hours).Record TypeRecord names foundRedetectRedetected nodeRedis Database IDRedis encountered a fatal error: %s (code: %d)Refresh CDN Setup StatusRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove Query Strings from Static FilesRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlocklistRemove query strings from internal static resources.Removed Unused CSS for UsersRemoved backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescanned %d images successfully.Rescanned successfully.Reset All SettingsReset CDN SetupReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resets all LiteSpeed Cache plugin settings related to CDN setup back to the initial state and deletes the DNS Zone, if one exists for the domain.Resets all LiteSpeed Cache plugin settings related to CDN setup back to the initial state and disables the CDN.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore SettingsRestore from backupRestored backup settings %1$sRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Review DNS recordsRevisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun %s Queue ManuallyRun CDN SetupRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedSaving option failed. IPv4 only for %s.Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe a separate cache copy for mobile visitors.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Set up QUIC.cloud AccountSet up a QUIC.cloud account.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Standard PresetsStarted async crawlingStarted async image optimization requestStatic file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.SyncSync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)TestingThank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The Viewport Images service detects which images appear above the fold, and excludes them from lazy load.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The current server is under heavy load.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following actions are available:The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe queue is processed asynchronously. It may take time.The selector must exist in the CSS. Parent classes in the HTML will not work.The server will determine if the user is logged in based on the existence of this cookie.The setting %s is currently enabled.The site is not a valid alias on QUIC.cloud.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domainThere is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.There was an error during CDN setup: These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action is not available if there is no domain key, the domain is not linked, or the DNS Zone is in active use.This action should only be used if things are cached incorrectly.This action will not update anything on the QUIC.cloud servers.This allows you to try Auto CDN setup again, or abandon the setup entirely.This allows you to try Auto CDN setup again.This can be managed from %1$s%2$s tab.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This enables the page's initial screenful of imagery to be fully displayed without delay.This is a three step process for configuring your site to use QUIC.cloud CDN with QUIC.cloud DNS. This setup will perform the following actionsThis is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This last stage could take 15 to 20 minutes.This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development.This option can help to correct the cache vary for certain advanced mobile or tablet visitors.This option enables maximum optimization for Guest Mode visitors.This option is bypassed because %1$s option is %2$s.This option is bypassed due to %s option.This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.This option will automatically bypass %s option.This option will remove all %s tags from HTML.This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images.This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools.This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning.This process is automatic.This process may take several minutes.This section will automatically populate once nameservers are configured for the site.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is passively %1$s due to %2$s!This setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This setting will regenerate crawler list and clear the disabled list!This setup process will create a DNS zone on QUIC.cloud if one does not currently exist.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google Fonts to establish a connection earlier.This will also generate an API key from LiteSpeed's Server.This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page from the combined file.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.Tweet previewTweet thisUCSS File Excludes and InlineUCSS InlineUCSS Selector AllowlistUCSS URI ExcludesURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL SearchURL list in %s queue waiting for cronUnable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict.Unable to automatically add %1$s as a Domain Alias for main %2$s domain.Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unique CSSUnknown errorUnknown error.Update %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %1$s to bypass UCSS for the pages which page type is %2$s.Use %1$s to bypass remote image dimension check when %2$s is ON.Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.Use %s API functionality.Use CDN MappingUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between.Use external object cache functionality.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.Useful for above-the-fold images causing CLS (a Core Web Vitals metric).UsernameUsing optimized version of file. VPIValue rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupVerifying, waiting for nameservers to be updated.View %1$s version %2$s detailsView .htaccessView Site Before CacheView Site Before OptimizationViewport ImageViewport Image GenerationViewport ImagesViewport Images CronVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.Visit your QUIC.cloud dashboard after the DNS Zone is set up to confirm your DNS zone.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.When you use Lazy Load, it will delay the loading of all images on a page.Who should use this preset?Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible.You don't have enough daily quota left for current service today.You don't have enough quota left for current service this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You need to turn %s on and finish all WebP generation to get maximum result.You need to turn %s on to get maximum result.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.You will receive an email upon status update.Your %1s quota on %2s will still be in use.Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more.Your server IPYour site will be available, but browsers may issue a "not secure" warning during this time.Zero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.unknownuser agentsPO-Revision-Date: 2023-09-06 20:02:20+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/4.0.0-alpha.7
Language: nl
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 %s geleden Cache het ingebouwde beheer balk ESI blok.Nog %1$s %2$s bestanden in wachtrij%1$s plugin versie %2$s vereist voor deze actie.%d uur%d uren%d minuut%d minuten%d seconden%s extensie%s bestand is niet leesbaar.%s bestand niet schrijfbaar.%s groep%s groepen%s afbeelding%s afbeeldingen%s wordt aanbevolen.%s moet ingeschakeld zijn om deze instelling te laten werken.&nbsp; Als een handmatige run van de crawler samenvalt met een run door een cron-taak, dan heeft de run die het eerst start voorrang.(geen besparing)(niet-optm)(optm).htaccess pad<a %s>Support forum</a> | <a %s>Dien een ticket in</a><a href="%1$s" %2$s>Toon details versie %3$s</a> of <a href="%4$s" %5$s target="_blank">nu updaten</a>.<b>Laatst gecrawld:</b> %d item(s)<b>Laatst gecrawled:</b> %s item(s)<p>Voeg de volgende codes toe aan het begin van %1$s:</p> %2$sEen domein sleutel is niet nodig om deze voorinstelling te gebruiken. Alleen basis caching functies zijn ingeschakeld.Om QUIC.cloud diensten te kunnen gebruiken, heb je een Domain Key nodig.Een domein sleutel is vereist om deze voorinstelling te gebruiken. Schakelt het maximale niveau van optimalisaties in voor verbeterde pagina snelheidsscores.Een domein sleutel is vereist om deze voorinstelling te gebruiken. Bevat veel optimalisaties waarvan bekend is dat ze de pagina snelheidsscores verbeteren.Een domein sleutel is vereist om deze voorinstelling te gebruiken. Bevat optimalisaties waarvan bekend is dat ze de sitescore verbeteren in gereedschappen voor pagina snelheidsmeting.Een verwijder alles wordt uitgevoerd wanneer WordPress deze hooks draait.Een TTL van 0 betekent dat het niet wordt gecached.Er wordt een back-up van elke afbeelding opgeslagen voordat deze wordt geoptimaliseerd.APIVerhoogt de snelheid door Gravatars (Globaal herkende Avatars) in cache op te slaan.Account is gekoppeld!ActieActiverenOntbrekende afmetingen toevoegenVoeg nieuwe CDN URL toeVoeg nieuwe cookie toe om te simulerenToevoegen aan blokkeerlijstStijl toevoegen aan je lazy-loaded afbeeldingenAlleen beheer IPAdmin IP-adressenGeavanceerdGevorderd (aanbevolen)Geavanceerde OptiesDe optie "Geavanceerd" geeft een logbestand met meer details.NaNa succesvolle DNS detectie zal QUIC.cloud proberen een SSL-certificaat te maken en het CDN in te schakelen.Als de optimalisatie op de LiteSpeed server klaar is, krijgt je site een seintje om de geoptimaliseerde afbeeldingen weer op te halen.Nadat je gecontroleerd heeft dat de cache in het algemeen werkt, kun je de winkelwagen testen.Nadat je je nameservers hebt ingesteld, zal QUIC.cloud de verandering detecteren en automatisch het CDN inschakelen.AgressiefAlias is in gebruik door een andere QUIC.cloud account.Alle QUIC.cloud dienst wachtrijen zijn gewist.Alle TransientsAlle categorieën worden standaard gecached.Alle pagina'sAlle pagina's met "Recente berichten" widgetAlle tags worden standaard gecached.Lijst met toegestane IP-adressen (één per regel) die het toestaan om bepaalde acties uit te voeren in de browser.Reeds in cache opgenomenVerwijder zowel de product-cache als de categorie-cache wanneer de productvoorraad of de voorraad-status wijzigt.Een optionele tweede parameter kan worden gebruikt om cachecontrole te specificeren. Gebruik een spatie omVoeg query string %s toe aan de bronnen om deze actie te omzeilen.Succesvolle domeinsleutel aangevraagd. Wacht op resultaat. De domeinsleutel wordt automatisch naar je WordPress gestuurd.Pas de %1$s voorinstelling toe. %2$sVoorinstelling toepassenGoedgekeurdWeet je zeker dat je alle bestaande blokkeerlijst items verwijdert?Weet je zeker dat je alle geoptimaliseerde afbeeldingen wilt verwijderen?Weet je zeker dat je alle cloud knooppunten wil wissen?Weet je zeker dat je QUIC.cloud gegevens wil verwijderen?Weet je zeker dat je opnieuw de dichtstbijzijnde server voor deze dienst wil bepalen?Weet je zeker dat je alle afbeeldingen back-ups wil verwijderen?Weet je zeker dat je CDN instellingen opnieuw wil instellen?Weet je zeker dat je alle instellingen wil terugzetten naar de standaardinstellingen?Asynchroon CSS laden met kritieke CSSIn dat stadium kun je het verificatieproces opnieuw starten door op de knop uitvoeren CDN instelling te drukken.Auteur ArchiefAutomatische ConceptenCron-taak voor ophalenAutomatische verwijderregelsAutomatische QUIC.cloud CDN instellingCron-taak voor verzoekenHet automatisch genereren van kritieke CSS gebeurt in de achtergrond via een op cron-gebaseerde wachtrij.Het automatisch genereren van unieke CSS gebeurt in de achtergrond via een cron-gebaseerde wachtrij.Voer automatisch upgrades uitSchakel automatisch DNS prefetching in voor alle URL's in het document, ook voor afbeeldingen, CSS, JavaScript, enzovoort.Genereer automatisch LQIP op de achtergrond via een cron-gebaseerde wachtrij.Verwijder automatisch de originele afbeelding back-ups na het ophalen van geoptimaliseerde afbeeldingen.Automatisch optimaliseren van verzoeken via een cron job.Avatarlijst in wachtrij wacht op updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBack-up gemaakt %1$s voor toepassen van de %2$s voorinstellingBasisEenvoudige tijdelijke opvulling voor afbeeldingVoorVoordat je de sleutel genereert, controleer je of alle IP's in deze lijst op de toegestane lijst staanBegin QUIC.cloud CDN instellingVoordelen van verbinding met QUIC.cloud accountBeta testenBlokkeerlijstStaat in blokkeerlijstOp de blokkeerlijst wegens niet cachebaarZowel %1$s als %2$s zijn correct.Zowel het gebruik van de volledige URL als een deel ervan kan worden gebruikt.Je kunt zowel een volledige als gedeeltelijke aanduiding gebruiken.BrowserBrowser CacheBrowser Cache instellingenBrowser Cache TTLBrowser caching slaat statische bestanden op in de browser van de gebruiker. Schakel deze optie in om de laadtijd bij een volgend bezoek fors te verminderen.Standaard wordt een grijze afbeelding plaatshouder %s gebruikt.Standaard worden de pagina's Mijn account, Afrekenen en Winkelwagen pagina's automatisch uitgesloten van caching. Verkeerd geconfigureerde pagina associaties in WooCommerce instellingen kunnen sommige pagina's abusievelijk uitsluiten.Deze instelling kan het vertonen van verlopen inhoud tot gevolg hebben. Als je dat niet wilt, activeer deze instelling dan niet.CCSSCCSS per URLCDNCDN bandbreedteCDN instellingenCDN instelling statusCDN instelling token en DNS zone verwijderd. Opmerking: als een my.quic.cloud account moet worden verwijderd, bestaat dat account nog steeds en moet het apart worden verwijderd.CDN instelling token opnieuw instellen. Opmerking: als het verwijderen van een my.quic.cloud account gewenst is, bestaat dat account nog steeds en moet het apart worden verwijderd.CDN Setup wordt uitgevoerd.URL van het CDNTe gebruiken URL van het Content Delivery Network. Bijvoorbeeld %sCSS & JS combinerenBundel CSSCSS Combineer extern en inlineUit te sluiten CSS bestandenVerklein CSSCSS instellingenCSS, JS en HTML verkleiningCSS/JS cacheCacheCache WP ToolbarCache WP ReactiesCache ReageerdersInstellingen voor cachebeheerCache HitIngelogde gebruikers cachenCache Login PaginaNiet in cacheCache MobielCache PHP ResourcesCache REST APICache statusCache Wp beheerCache Favicon.icoCache sleutel moet een integer of niet-lege string zijn, %s gegeven.Cache sleutel mag geen lege string zijn.Cache verzoeken die door de Wordpress REST API worden aangeroepen.Cache het ingebouwde reactieformulier ESI blok.Door deze pagina's te cachen kan de serverprestatie worden verbeterd door onnodige PHP-aanvragen te vermijden.Door deze resources te cachen kan de serverprestatie worden verbeterd door onnodige PHP-aanvragen te vermijden.Bereken schijfruimte van backupsBereken de opslagruimte van originele afbeeldingenBerekenen back-ups geslaagd.Kan geen map maken: %1$s. Error: %2$sAnnulerenKan niet verwijderen, site is niet gelinkt.Kan REST API niet aanvragen, geen token opgeslagen.CategorieWijziging instellingen geslaagd.Veranderingen aan deze instelling gelden niet voor reeds gegenereerde LQIP's. Om bestaande LQIP's te regenereren, ga je eerst naar %s uit het beheerdersbalk menu.Check statusControleer mijn publieke IP vanControleer deze optie om de configuratie van de primaire site te gebruiken voor alle subsites.Alles OpschonenCrawler-map opschonenOnafgewerkte gegevens opruimenAlle automatisch opgeslagen concepten opschonenAlle bericht revisies opschonenAlle spam reacties opschonenAlles succesvol opgeschoond.Alle trackbacks en pingbacks opschonenOpschonen alle transient optiesAlle transients succesvol opgeschoond.Alle reacties in de prullenbak opschonenAlle berichten/pagina's in de prullenbak opschonenAutomatische concepten succesvol opgeschoond.Opschonen alle verlopen transient optiesVerlopen transients succesvol opgeschoond.Bericht revisies succesvol opgeschoond.Schoon revisies ouder dan %1$s dag(en) op, behalve de %2$s laatste versiesSpam reacties succesvol opgeschoond.Trackbacks en pingbacks succesvol opgeschoond.Reacties in de prullenbak succesvol opgeschoond.Berichten/Pagina's in de prullenbak succesvol opgeschoond.Alle kritieke CSS-bestanden opgeschoond.Alle gravatar bestanden verwijderd.Alle LQIP bestanden opgeschoond.Opgeschoond alle Unieke CSS bestanden.Alle gelokaliseerde bronvermeldingen opgeschoond.Opruimen onverwerkte gegevens geslaagd.Logs wissen%1$s ongeldige afbeeldingen opgeruimd.Verwijdert alle cache van deze site, <i>inclusief de cache van andere applicaties</i>.Klik hier om te wijzigen.Klik hier om in te stellen.Klik om hier om naar instellingen te gaanKlik op de verversingsknop hieronder om de status te verversen.Klik hier om om alle nodes in het netwerk opnieuw te detecteren.Klik om gebruik te maken van geoptimaliseerde versie.Klik hier om de originele versie te gebruiken.Cloud foutmeldingCloud REST API gaf een foutmelding: Cloud REST foutCloud server heeft de huidige aanvraag geweigerd vanwege beperking van de snelheid. Probeer het later opnieuw.De cloudserver heeft het huidige aanvraag geweigerd vanwege niet opgehaalde afbeeldingen. Haal de afbeeldingen eerst op.CloudflareCloudflare APICloudflare API staat uit.Cloudflare CacheCloudflare DomainCloudflare ZoneQuery strings samenvouwenCombineer CSS bestanden en inline CSS code.Bundel alle lokale JS bestanden in een bestand.Reacties worden ondersteund. Begin een regel met een %s om er een reactie regel van te maken.Communicatie met Cloudflare geslaagd.Voltooid op %sGefeliciteerd! Je bestand was al geoptimaliseerdGefeliciteerd, QUIC.cloud heeft dit domein succesvol ingesteld voor het CDN. Update je nameservers naar:Mooi, alles aangevraagd!Gefeliciteerd, je domein sleutel is goedgekeurd. De instelling is geüpdatet.VerbindingstestNeem contact op met QUIC.cloud ondersteuningZet om naar InnoDBSuccesvol geconverteerd naar InnoDB.Naam van cookieCookie simulatieCookie waardes%1$s niet gevonden in %2$s.TellenCrawl IntervalCrawlerCrawler CronCrawler algemene instellingenCrawler logCrawler simulatie instellingenSitemap instellingen crawlerCrawler StatusCrawler uitgeschakeld door server beheerder.De lijst met uitgeschakelde crawlers is gewist! Alle crawlers zijn op actief gezet! Crawler(s)Crawlers kunnen niet gelijktijdig actief zijn.Maak een nieuw bericht (zorg ervoor dat de voorpagina is ingesteld).Met ❤️ gemaakt door het LiteSpeed team.Onvoldoende tegoed om met de huidige aanvraag door te gaan.Kritieke CSSKritieke CSS regelsCron NaamHuidige %s inhoudDraaiende Cloud NodesIP-adressen servers momenteel onlineHuidige dichtstbijzijnde cloud server is %s.&#10; Klik om opnieuw te detecteren.De huidige dichtstbijzijnde cloudserver is %s.&#10;Klik om opnieuw te detecteren.Actieve crawler begon omHuidig afbeelding bericht id positieHuidige limiet isHuidige serverbelastingServertijd is %s.Crawlen van huidige sitemap begon omHuidige status is %1$s sinds %2$s.Huidige status is %s.Actieve crawlerGeoptimaliseerd WebP bestand momenteel in gebruik.Geoptimaliseerd bestand in gebruik.Originele (niet-geoptimaliseerde) versie van WebP bestand momenteel in gebruik.Originele (niet-geoptimaliseerde) bestand in gebruik.Aangepaste SitemapDatabase optimalisatie instellingenDNS PrefetchDNS Prefetch beherenDNS prefetch voor statische bestandenDagelijks archiefDashboardDatabaseDatabase OptimalisatieDatabase in het kortDatabase Table Engine ConverterTe gebruiken databaseDag(en)Debug helpersFoutopsporing niveauDebug LogDebug instellingenDebug string uitsluitingenFoutopsporing URI uitsluitingenDebug URI bevatStandaardStandaard cacheFeed TTLVoorpagina TTLStandaard HTTP-status codetabel TTLStandaard object levensduurPrivé Cache TTLPublieke Cache TTLStandaard REST TTLStandaard TTL voor objecten in de cache.Standaard pad isStandaard poort voor %1$s is %2$s.Standaard waardeUitgesteldUitstellen tot de pagina geparsed is of uitstellen tot de interactie kan helpen om de contentie van gegevensbron te verminderen en de prestaties te verbeteren, wat een lagere FID (core web vitals metric) veroorzaakt.VertragingVertraag het renderen van buiten-het-scherm HTML elementen door zijn selector.VertraagdQUIC.cloud gegevens verwijderenVerwijder alle back-ups van de originele afbeeldingenWis alle optimalisatie gegevens!Verwijderen optimalisatie gegevens geslaagd.Bepaalt hoe wijzingingen in de productvoorraad en de voorraad-status invloed heeft op de product-pagina's de bijbehorende categorie-pagina's.Ontwikkel modusOntwikkel modus wordt na 3 uur automatisch uitgeschakeld.Ontwikkel modus wordt automatisch uitgeschakeld in %s.UitschakelenSchakel alle functies uitCache uitschakelenUitschakelen afbeelding lazy-loadVPI uitschakelenZet de WordPress 'heartbeat' uit om je server minder te belasten.Schakel deze optie uit om CCSS per berichttype te genereren in plaats van per pagina. Dit kan aanzienlijke CCSS quota's besparen, maar het kan resulteren in onjuiste CSS styling als je site een pagina bouwer gebruikt.UitgeschakeldUitschakelen WebP bestand geslaagd.Dit uitschakelen kan ervoor zorgen dat door AJAX getriggerde WordPress taken niet meer werken.Het uitschakelen van deze optie kan de prestaties negatief beïnvloeden.Als je dit uitschakelt, stopt de cron-taak die verantwoordelijk is voor het ophalen van geoptimaliseerde afbeeldingen van LiteSpeed's Image Server.NegeerNegeer dit berichtCategorieën niet opnemen in cacheBewaar cookies niet in de cacheCache geen groepenQuery strings niet cachenNiet cachen regelsTags niet cachenURIs niet cachenUser agents niet cachenVerwijder de categorie-cache niet wanneer de productvoorraad of voorraad-status wijzigt.DomeinDomein sleutelHash voor domeinsleutel komt niet overeenDomeinsleutel en QUIC.cloud link gedetecteerd.GedaanDowngraden wordt niet aanbevolen. Kan fatale fout veroorzaken door geüpdatete code.Verwijder domein uit sitemapZoekopdracht string laten vervallenESIESI NoncesESI InstellingenMet ESI kunnen delen van een dynamische pagina worden aangegeven. Met andere woorden, met ESI kun je gaten op een pagina aangeven en die gaten vervolgens invullen met inhoud die privé kan worden gecached, met een eigen cachegeheugen worden gecached of helemaal niet gecached.ESI voorbeeld voor ontwikkelaarsEditor HeartbeatEditor Heartbeat TTLElementen in de HTML code met attribuut %s worden uitgesloten.Elementen in de HTML code met attribuut %s worden uitgesloten.E-mailadresVerwijder alle cacheLege blokkeerlijstSchakel %s CDN API functionaliteit in.Caching InschakelenESI inschakelenViewport afbeeldingen automatisch genereren cron inschakelen.Schakel vervanging van WebP in in %s elementen die zijn gegenereerd buiten de WordPress logica.Schakel deze optie in als je gebruik maakt van zowel HTTP als HTTPS op hetzelfde domein en merkt dat caching niet altijd goed werkt.IngeschakeldInschakelen WebP bestand geslaagd.Als je LiteSpeed ​​Cache voor WordPress inschakelt, schakel je de cache voor dit netwerk in.Reden beëindigingEngineGeef het IP-adres van deze site op, zodat clouddiensten dit direct kunnen gebruiken in plaats van de domeinnaam. Dit bespaart het opzoeken van DNS- en CDN-gegevens.Fout: niet gelukt om de instellingen toe te passen %1$sBasisbenodigdhedenElke minuutAlles in Avanced, PlusAlles in Aggressive, PlusAlles in basis, plusAlles in Essentials, PlusVoorbeeldVoorbeeld use case:Voorbeelden van tests zijn:Bestandslocatie uitsluitenInstellingen voor UitsluitenUitsluitenVerlopen TransientsExporteerExporteer instellingenExtreemMisluktFout bij het maken van back-up van %s bestand, de wijzigingen zijn niet doorgevoerd.Kon geen verbinding maken met CloudFlareHet is mislukt om met de QUIC.cloud server te communicerenAanmaken Avatar tabel mislukt. Volg de <a %s>Table Creation gids op de LiteSpeed Wiki</a> om die te voltooien.Creëren van tabel %s! SQL: %s mislukt.Kan de inhoud van het bestand %s niet krijgen.Aanvraag via WordPress misluktUpgrade mislukt.Mislukt om te schrijven naar %s.Snel wachtrijgebruikBestand %s is niet schrijfbaar.BestandenFilter %s beschikbaar voor UCSS per paginatype generatie.Filter %s beschikbaar om blokkeerlijst uit te schakelen.Filter %s wordt ondersteund.Map bestaat niet: %sMap is niet schrijfbaar: %s.Optimalisatie lettertypeweergaveBij URLs die wildcards bevatten, kan de start van een geplande opschoning ietwat vertraagd worden.BijvoorbeeldVoorbeeld: %1$s stelt de TTL in op %2$s seconden voor %3$s.%s kan bijvoorbeeld gebruikt worden voor een transparante placeholder.Bijvoorbeeld, voor %s, %s en %s kunnen hier worden gebruikt.Bijvoorbeeld, voor %s, %s kan hier worden gebruikt.Bijvoorbeeld, als elke pagina op de site een andere opmaak heeft, voer je %s in de box in. Voor elke pagina op de site worden afzonderlijke kritieke CSS-bestanden opgeslagen.Als je bijvoorbeeld parameters wilt laten vallen die beginnen met %s, kan %s hier worden gebruikt.Om online diensten correct te laten werken, moet je alle %s server IP's toestaan.Controleer daarom de site om ervoor te zorgen dat alles nog steeds goed functioneert.Forceer Cachen URI'sOpenbare cache-URI's afdwingenStart cronGeforceerd cachebaarVoorpaginaFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLAlgemeenAlgemene instellingenMaak LQIP aan in de achtergrondGenereer link voor huidige gebruikerGenereer UCSSGegenereerd op %sGegenereerde links kun je beheren onder <a %s>Instellingen</a>.Verkrijg het van <a %1$s>%2$s</a>.Globale API sleutel/API tokenGlobale groepenGa naar QUIC.cloud dashboardGa naar de plugins lijstGoed nieuws van de QUIC.cloud serverGoogle reCAPTCHA wordt automatisch overgeslagen.Gravatar CachingGravatar Cache door cron-taakGravatar cache TTLGroepen in cache op netwerkniveau.GastGast modusGastmodus IP'sGastmodus JS uitsluitingenGast modus user agentsGast modus en gast optimalisatieGastmodus kan niet worden getest.Gastmodus is geslaagd voor testen.Gast modus biedt een altijd cachebare landingspagina voor het eerste bezoek van een geautomatiseerde gast en poogt deze dan via AJAX te updaten naar de toepasselijke cache variant.Testresultaat gastmodusGast optimalisatieTe vervangen HTML attribuutHTML lazy-load selectorenVerklein HTMLHTML InstellingenEnkel HTTPS bronnen.HartslagHeartbeat instellenHoge-prestatie pagina caching en site-optimalisatie van LiteSpeedHogere TTLGeschiedenisHitHome paginaHostHoe problemen op te lossen, veroorzaakt door optimalisatie van CSS/JS.Hoe kies ik een UCSS toegestane lijst selector?Er is echter geen mogelijkheid om alle mogelijke aanpassingen te kennen die zijn geïmplementeerd.Htaccess komt niet overeen met de configuratie-optie.Htaccess regel is: %sIk heb al een beoordeling achtergelatenAls %1$s, %2$s is, dan moet %3$s zijn ingevuld!Als deze optie is ingeschakeld, wordt de verouderde kopie van een gecachte pagina aan bezoekers getoond totdat er een nieuwe cachekopie beschikbaar is. Verlaagt de serverbelasting voor volgende bezoeken. Als deze optie is uitgeschakeld, wordt de pagina dynamisch gegenereerd terwijl bezoekers wachten.De server raakt in de war als iedere web-applicatie dezelfde cookie gebruikt om te zien of een gebruiker is ingelogd of niet.Als de verificatie niet binnen 24 uur plaatsvindt, markeert de CDN instelling de verificatie als mislukt.Zo niet, controleer dan de instelling in de <a href="%1$s">Geavanceerd tab</a>.Gebruik Purge All als alleen de WordPress-site moet worden verwijderd.Indien ingesteld op %1$s, voordat de placeholder is gelokaliseerd, wordt de %2$s-configuratie gebruikt.Als je dit op %s zet wordt het in de voorgrond uitgevoerd. Dit kan het laden van de pagina vertragen.Als de categorie naam niet wordt gevonden, wordt de categorie bij opslaan van de lijst verwijderd.Als de login cookie onlangs is gewijzigd in de instellingen, log dan uit en opnieuw in.Als de tag -slug niet wordt gevonden, wordt de tag tijdens het opslaan uit de lijst verwijderd.Als er vragen zijn, dan is ons team altijd blij om te kunnen helpen en eventuele vragen te beantwoorden op het <a %s> ondersteuningsforum</a>.Als je dit instelt op minder dan 30 seconden dan worden de feeds niet gecached.Als je OpenLiteSpeed ​​gebruikt, moet de server opnieuw worden gestart voor de wijzigingen van kracht worden.Als je een %1$s socket gebruikt, moet %2$s worden ingesteld op %3$sLaat deze optie UIT als je meerdere domeinnamen gebruikt voor 1 site en er meerdere domeinnamen in de sitemap voorkomen, zodat de crawler alle domeinen mee neemt.Als je aangepaste DNS-records hebt, is het mogelijk dat deze niet worden gedetecteerd.Als je dit nog niet hebt gedaan, vervang dan de QUIC.cloud nameservers bij je domein registreerder voordat je verder gaat Als je dit hebt ingeschakeld voor je domein, moet je DNSSEC uitschakelen om door te gaan.Als je liever de CNAME instelling gebruikt, stel dan <a %s>het CDN handmatig in bij QUIC.cloud</a>.Bij problemen graag het rapportnummer vermelden in je melding aan ondersteuning.Als je een van de bovenstaande instellingen UIT zet, verwijder dan de gerelateerde bestandstypen uit de %s box.Je kunt deze plugin deactiveren, als je niet bij LiteSpeed wenst te blijven.Als je site publieke inhoud bevat die bepaalde gebruikersrol kan zien, maar andere rollen niet kunnen, kun je een Vary-groep opgeven voor die gebruikersrollen. Bijvoorbeeld, door een groep met beheerder te specificeren, kan er een aparte openbare cache-pagina zijn die op beheerders is aangepast (met koppelingen "edit", enz.), Terwijl alle andere gebruikersrollen de standaard openbare pagina zien.Iframes die deze klasse namen bevatten zullen niet met lazy-load geladen worden.Iframes met deze hoofd klasse namen worden niet lazy-loaded.Negeer bepaalde query strings bij het cachen (LSWS %s vereist)AfbeeldingsgegevensOptimalisatie afbeeldingenInstellingen optimalisatie afbeeldingenAfbeelding optimalisatie in het kortAfbeelding thumbnail groep-groottesAfbeeldingsformaat veranderen in WebPAfbeelding groepen totaalOpgehaalde afbeeldingenLazy load wordt niet toegepast op afbeeldingen met deze class benamingen.Afbeeldingen met deze hoofd klasse namen zullen niet met lazy-load geladen worden.Afbeeldingen niet aangevraagdAfbeeldingen notified to pullAantal opgehaalde en geoptimaliseerde afbeeldingenAfbeeldingen klaar voor aanvraagAantal opgevraagde afbeeldingenAls de cron job loopt, worden afbeeldingen automatisch opgehaald.ImporteerImport/ExportImporteer instellingenImport mislukt door bestandsfout.Import van instellingenbestand %s geslaagd.Verbeter de compatibiliteit van HTTP/HTTPSVerhoog de reactiesnelheid van beheer pagina's. (Je kunt te maken krijgen met verlopen gegevens)Verbeterd metIn uitvoeringOm fouten bij een upgrade te voorkomen, moet je %1$s of hoger gebruiken voordat je kunt upgraden naar %2$s-versies.Om QC diensten te gebruiken, heb je een echte domeinnaam nodig, geen IP.CSS opnemenBestandstypes insluitenAfbeeldingen opnemenJS opnemenNeem externe CSS en inline CSS op in een gecombineerd bestand als %1$s ook is ingeschakeld. Deze optie helpt bij het behouden van de prioriteiten in de CSS uitvoering, wat potentiële fouten zou moeten minimaliseren veroorzaakt door het bundelen van CSS.Neem externe JS en inline JS op in een gecombineerd bestand als %1$s ook is ingeschakeld. Deze optie helpt bij het behouden van de prioriteiten in de JS uitvoering, wat potentiële fouten zou moeten minimaliseren veroorzaakt door het bundelen van JS.Inbegrepen Directory'sInline CSS Async LibInline CSS toegevoegd aan CombineInline JS toegevoegd aan CombineInline UCSS om het extra laden van CSS bestanden te verminderen. Deze optie wordt niet automatisch ingeschakeld voor %1$s pagina's. Om het op %1$s pagina's te gebruiken, zet je het op ON.InstallerenInstalleer %sInstalleer DoLogin beveiligingInstalleer nuInstant ClickTijd tussen de runsOngeldige IPOngeldige login cookie. Ongeldige tekens gevonden.Ongeldige login cookie. Controleer het %s bestand.Ongeldige omleiding regelOntbreekt er iets?Het wordt <b>STRENG</b> aanbevolen om de compatibiliteit met andere plugins op een- of meerdere sites eerst te testen.Wordt on-the-fly omgezet in een base64 SVG plaatshouder.Bundel JSJS Combineer extern en inlineJS UitstelJS uitstellen voor zowel externe als inline JSJS uitgesteld/vertraagd exclusiefJS uitgesteldJS uitgesteld inclusiefJS uitsluitingenVerklein JSJS instellingenJS fout kun je vinden in de ontwikkelaar console van de browser door met rechts te klikken en Inspecteer te kiezen.Sluit je aan bij de LiteSpeed community op SlackSluit je bij ons aan op SlackSluit je aan bij de %s community.Laat dit UIT om effen gekleurde plaatshouders te gebruiken.LQIPLQIP CacheLQIP genereren in CloudLQIP uitsluitingenMinimale afmetingen LQIPKwaliteit LQIPLQIP afbeelding voorvertoning in formaat %sLQIP-verzoeken worden niet verwerkt voor afbeeldingen die lager en smaller zijn dan de opgegeven waardes.LSCacheCache functies op deze pagina momenteel niet beschikbaar!Een groter aantal genereert een plaatshouder van hogere kwaliteit, maar resulteert in grotere bestanden die de paginagrootte vergroten en meer punten verbruiken.Groter danLaatst opgehaaldLaatste verzoekLaatste verificatieresultaatLaatst berekendLaatste volledige verwerking voor alle crawlersLaatst geëxporteerdLaatst gegenereerdLaatst geïmporteerdLaatste intervalLaatste pull gestart door cron op %s.Laatst uitgevoerdLaatste aanvraagLaatst aangevraagde kostenLazy-load Iframe klasse naam uitsluitingUitsluiten lazy load iframes op hoofd klasse attribuutLazy-load IframesUit te sluiten afbeelding klassen voor lazy-loadAfbeelding(en) uitsluiten van lazy-loadLazy-load afbeelding naam van hoofd klasseLazy-load afbeeldingenVoorkom lazy-load per URILazy-load voor IframesLazy-load voor afbeeldingenMeer informatieMeer informatie overMeer informatie over wanneer dit nodig isLink naar QUIC.cloudLijst van mobiele user-agentsSorteer berichttypen waarbij elk item van dat type zijn eigen gegenereerde CCSS moet hebben.Maak een lijst van de CSS-kiezer waarvan de stijl altijd in UCSS moet staan.Vermelde CSS bestanden of inline CSS code worden niet verkleind/gecombineerd.Opgesomde CSS bestanden worden uitgesloten van UCSS en opgeslagen in inline.IP's op de lijst worden beschouwd als bezoekers in de gastmodus.Opgenomen JS bestanden of inline JS code worden vertraagd.Laden van vermelde JS bestanden of inline JS code wordt niet afgewezen of uitgesteld.Vermelde JS bestanden of inline JS code worden niet verkleind/gecombineerd.Opgesomde JS bestanden of inline JS code worden door %s niet geoptimaliseerd.In de lijst opgenomen URI zal geen UCSS genereren.In de lijst opgenomen gebruikersagenten worden beschouwd als bezoekers in de gastmodus.Opgegeven afbeeldingen maken geen gebruik van lazy-load.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed cache configuratie voorinstellingenLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache database optimalisatieAlgemene instellingen LiteSpeed CacheLiteSpeed Cache optimalisatie van afbeeldingenLiteSpeed Cache Netwerk cache instellingenLiteSpeed Cache pagina optimalisatieLiteSpeed Cache verwijderenLiteSpeed Cache InstellingenLiteSpeed Cache standaardinstellingenLiteSpeed Cache toolboxLiteSpeed Cache bekijk .htaccessLiteSpeed Cache plugin is geïnstalleerd!LiteSpeed ​​Cache is succesvol geüpgraded. OPMERKING: vanwege wijzigingen in deze versie zijn de instellingen %1$s en %2$s UITGESCHAKELD. Schakel ze handmatig weer in en controleer of je site lay-out correct is en of je geen JS fouten hebt.LiteSpeed Crawler cronLiteSpeed logsLiteSpeed optimalisatieLiteSpeed optiesLiteSpeed rapportLiteSpeed TechnologiesLiteSpeed cache plugin opgewaardeerd. Vernieuw de pagina om de upgrade van de configuratiegegevens te voltooien.CSS asynchroon ladenGoogle fonts asynchroon ladenStel laden JS uitLaad iframes pas als ze in het zichtbare deel van het scherm komen.Laad afbeeldingen pas als ze zichtbaar worden.LokalisatieLokalisatie bestandenLokalisatie-instellingenLokaliseer bronnenLokaliseer externe bronnen.Gelokaliseerde bronnenLog CookiesLimiet LogbestandBekijk logLog aangevraagde cookie waarden.Login CookieLow Quality Image PlaceholderMBMOET UNIEK ZIJN TEN OPZICHTE VAN ANDERE WEBAPPLICATIES.HoofddomeinHoofddomein nog niet gegenereerdBeherenCDN beherenBeheer DNS-zoneHandmatig toegevoegd aan blokkeerlijstRun handmatigKaartMarkeer pagina als Maximale afbeelding bericht idMaximale waardeMisschien laterMisschien laterMedia uitzonderingenMedia instellingenBericht van de QUIC.cloud serverMethodeVerklein CSS bestanden en inline CSS code.Verklein HTML inhoud.Verklein JS bestanden en inline JS code.Minimale waardeGemistMobielMobiele agent regelsMobiele cacheMaandelijks archiefMeerHier vind je meer informatie over de beschikbare commando's.Meer instellingenMeer instellingen beschikbaar onder het %s menuOpmerkingOPMERKING: QUIC.cloud CDN en Cloudflare maken geen gebruik van CDN Mapping. Als je alleen één van deze twee gebruikt, laat deze instelling dan %1$s.Let opLet op:Let op: Database login cookie kwam niet overeen met je login cookie.NameserversNetwerk DashboardInschakelen Netwerk CacheNieuwe ontwikkelversie beschikbaar!Er is een nieuwe versie beschikbaar!Nieuwe ontwikkelversie %s is nu beschikbaar.Nieuwe release %s is nu beschikbaar.Volgende beschikbare moment voor aanvraag: <code>Na %s</code>Geen beschikbare Cloud Node na gecontroleerde serverbelasting.Geen beschikbare Cloud Node.Geen beschikbare CloudFlare zoneGeen back-up aanwezig van originele bestand.Er bestaat geen back-up van het niet geoptimaliseerde WebP bestand.Momenteel geen cloud diensten in gebruikNog geen crawler meta file gegenereerdGeen optimalisatieGeen spaties en hoofdlettergevoelig.De Cloud server trof geen geldige afbeelding aan in de aanvraag.Geen geldige afbeelding gevonden in deze aanvraag.Geen geldige sitemap geparsed voor crawler.Niet-cacheableNiet beschikbaarNiet op blokkeerlijst geplaatstOnvoldoende parameters. Controleer of de domein sleutel correct is ingesteldDraait nietNotitieOpmerking: gedurende 15 tot 20 minuten nadat de instelling is afgerond, kunnen browsers een "niet veilig" waarschuwing geven voor je site terwijl QUIC.cloud je SSL-certificaat maakt.NotitiesMeldingLet op: CDN Setup wordt alleen lokaal gereset.MeldingenCloudflare met succes op de hoogte gesteld om alles te verwijderen.Melding aan Cloudflare om ontwikkel modus in te stellen op %s geslaagd.LiteSpeed Web Server gemeld om alle CSS/JS te verwijderen.LiteSpeed Web Server gemeld om gehele LSCache leeg te maken.LiteSpeed Web Server gemeld om alle pagina's te verwijderen.De LiteSpeed Web Server zal de cache van de error-pagina's verwijderen.De LiteSpeed webserver zal alle cache opschonen.De LiteSpeed Web Server zal de voorpagina cache verwijderen.Er is een melding naar de LiteSPeed Web Server verzonden om de lijst te verwijderen.UITAANOFObjectObject cacheObject cache instellingenObject cache is niet ingeschakeld.Eenmaal opgeslagen, wordt deze gekoppeld aan de huidige lijst en automatisch voltooid.Een of meer getrokken afbeeldingen komen niet overeen met de gemelde afbeelding md5Eén per regel.De online node moet opnieuw opgespoord worden.Alleen hier genoemde attributen worden vervangen.Alleen beschikbaar als %s is geïnstalleerd.Alleen bestanden in deze mappen zullen verwijzen naar de CDN.Log alleen de opgegeven pagina's.Optimaliseer alleen pagina's voor gast (niet ingelogde) bezoekers. Als dit UIT staat, worden CSS/JS/CCSS-bestanden verdubbeld voor elke gebruikersgroep.Klik alleen op de button als de pull cron taak is uitgeschakeld.Opcode cacheOpcode cache is niet ingeschakeld.Gebruikers van OpenLiteSpeed graag dit aanvinkenBewerkingOptimalisatie statusSamenvatting van de optimalisatieOptimalisatie gereedschapOptimaliseren van afleveren CSS.Optimaliseer zonder kwaliteitsverliesOptimaliseer originele afbeeldingenOptimaliseer TabellenOptimaliseer alle tabellen in de databaseAlleen voor gastbezoekers optimaliserenOptimaliseer afbeeldingen en sla een kopie van de originelen op in dezelfde map.Optimaliseer afbeeldingen met compressie zonder kwaliteitsverlies.Optimaliseer afbeeldingen met onze QUIC.cloud serverGeoptimaliseerd WebP bestand was verlopen en is verwijderd.Alle tabellen geoptimaliseerd.OptienaamOptioneelFacultatief bij gebruik van een API token.Instellingen opgeslagen.OrigOrig %sOrig %s kleinerOriginele URLsOriginele bestand verkleind met %1$s (%2$s)Andere selectievakjes worden genegeerd.Onze %s stond niet op de lijst toegestaan.Stuur de uitkomst naar het WordPress foutopsporing logbestand.PAYG balansPAYG saldo en gebruik zijn niet opgenomen in bovenstaande quota berekening.PAYG gebruikt deze maandPHP constant %s beschikbaar om blokkeerlijst uit te schakelen.PHP Constant %s wordt ondersteund.Pagina laadtijdPagina optimalisatiePageSpeed scorePagina'sPartnervoordelen aangeboden doorGeslaagdWachtwoordWachtwoordvrije linkBestandspad moet eindigen op %sPaden die deze string bevatten worden gecached, ongeacht niet-cache instellingen.Paden die deze tekenreeksen bevatten, worden naar openbare caches gedwongen, ongeacht de instellingen die niet in het cachegeheugen kunnen worden opgeslagen.Bestandslocaties die deze tekst bevatten worden niet gecached.Bestandslocaties die deze tekst bevatten maken geen gebruik van de CDN.GepauzeerdBetaal wat je verbruiktBetaal naar verbruik statistiekenBlijvende verbindingOverweeg het uitschakelen van de volgende gedetecteerde plugins, omdat ze kunnen botsen met LiteSpeed Cache:Deel de bovenstaande link zonder wachtwoord NIET met anderen.Schakel LiteSpeed Cache in bij de plugin instellingen.Schakel de LSCache module in op de server, of vraag dit aan je hosting provider.Zorg ervoor dat dit het juiste IP-adres is om je site te bezoeken.Lees alle waarschuwingen voordat je deze optie inschakelt.Zie %s voor meer details.Bekijk <a %s>Hooking WP-Cron Into the System Task Scheduler</a> Om de systeem cron taak te creëren.Test de werking van je site grondig als je deze opties gebruikt. Leeg alle caches na wijziging van instellingen voor verkleinen en/of bundelen.Test alle items in %s grondig om er zeker van te zijn dat ze werken zoals verwacht.Test elk JS-bestand dat je toevoegt grondig om er zeker van te zijn dat het werkt zoals verwacht.Probeer na %1$s voor service %2$s.Update je domeinregistratie om deze aangepaste nameservers te gebruiken:Controleer of je andere plugins geen REST API aanroepen blokkeren, onze server IP's toestaan of neem contact op met je server beheerder voor hulp.Ga naar de <a %s>Informatiepagina</a> voor het testen van de cache.PoortBericht IDBerichtrevisiesBerichttype archiefVooraf gedefinieerde lijst wordt ook gecombineerd met de bovenstaande instellingenPrefetchen van DNS kan de wachttijd verminderen voor gebruikers.Bereid de site voor op QUIC.cloud CDN, detecteer de DNS en maak een DNS zone aan.Behoud EXIF gegevens (copyright, GPS, trefwoorden, etc) bij optimalisatie.Behoudt EXIF/XMP-gegevensVoorinstellingenDruk op de %s knop om het beta testen te stoppen en terug te gaan naar de huidige versie van de WordPress plugin directory.Druk op de %s knop om de meest recente GitHub commit te gebruiken. Master is voor release kandidaat & Dev is voor experimenteel testen.Voorkom het laden van Google fonts op al je pagina's.Voorkomt dat opgegeven pagina's bij debuggen in log worden opgenomen.Vermijd het vertraagd laden (lazy load) op de opgegeven pagina's.Voorkom optimalisatie van opgegeven pagina's.Voorkomt het schrijven van logvermeldingen die opgesomde strings bevatten.Vorige aanvraag werd net gedaan. Probeer het opnieuw na %s.Vorige aanvraag vond (te) recent plaats. Probeer het straks opnieuw.Stond voorheen op blokkeerlijstPrivéPrivé cachePrivé cached-URI'sPrivé cacheIn afwachting zijnde reacties van reageerders (via privé cache). Het uitschakelen van deze optie zal niet-gecachete pagina's laten zien aan reageerders. (LSWS %s verplicht)Privé cache voor de voorpagina (voor ingelogde gebruikers). (LSWS %s verplicht)Product Update IntervalGeef de nameservers die nodig zijn om het CDN in te schakelen.PubliekPublieke cacheCron-taak om bestanden op te halen looptHaal afbeelding opPulled WebP-afbeelding md5 komt niet overeen met de aangemelde WebP-afbeelding md5.VerwijderenVerwijder %s foutOpschonen %s foutpagina'sAlles opschonenAlle Hooks VerwijderenAlles opschonen bij upgradeOpschonen op...Schoon alles opOpschonen voorpaginaOpschonen lijstOpschoon logOpschonen pagina'sInstellingen voor opschonenOpschonen van alle object caches succesvol.Schoon alle object caches opSchoon categorieën alleen op wanneer de voorraadstatus verandert.Opschonen categorie %sOpschonen pagina's op categorienaam - bijv. %2$s moet worden gebruikt voor de URL %1$s.Opschonen pagina's op bericht ID.Opschonen van pagina's op relatieve of volledige URL.Opschonen pagina's op tag naam - bijv. %2$s moet worden gebruikt voor de URL %1$s.Opschonen product en categorie alleen wanneer de voorraad-status wijzigt.Product opschonen bij wijzigingen in de hoeveelheid of voorraadstatus.Product alleen opschonen als de voorraadstatus verandert.Opschonen tag %sSchoon de LiteSpeed cache items op gemaakt door deze pluginSchoon de cache items op gemaakt door deze plugin, behalve voor kritieke CSS & unieke CSS & LQIP cachesSchoon deze pagina opOpschonen url %sAlles opgeschoond!Alle caches met succes schoongemaakt.De blog is opgeschoond!De url is verwijderd!Opgeschoond!%1$s verstuurd naar cloud server, geaccepteerd %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud CDN instellingQUIC.cloud CDN/DNS ondersteunt geen DNSSEC.QUIC.cloud DNS-instellingen worden niet gewijzigd.QUIC.cloud gedetecteerde records samenvattingGebruiksstatistieken QUIC.cloudQuic.cloud account is aangemaakt en succesvol gekoppeld.Je QUIC.cloud account is succesvol gekoppeld.QUIC.cloud zal proberen de DNS update te verifiëren.QUIC.cloud detecteert de meeste normale DNS vermeldingen.De query string met deze parameters wordt niet in de cache opgeslagen.Waardeer %s op %sLees meer in de LiteSpeed documentatieKlaar voor uitvoeren CDN instelling.Ongeldig bericht ontvangen van de cloud server. Dien een ticket in.Aanbevolen wordt om het token te genereren uit het Cloudflare API token template "WordPress".Aanbevolen waarde: 28800 seconden (8 uur).Record typeRecordnamen gevondenOpnieuw detecterenOpnieuw ontdekte nodeRedis database IDRedis heeft een fatale fout ondervonden: %s (code: %d)CDN instellings status vernieuwenVervers sitemap voor crawlerVernieuw domeinsleutelVervers Gravatar cache met cron-taak.Ververs laadtijd paginaPaginascore vernieuwenOverblijvend dagelijks quotumVerwijder CDN URLVerwijder Google FontsVerwijder Noscript tagsVerwijder originele backupsVerwijder back-ups van originele afbeeldingenVerwijder query stringsQuery strings verwijderen uit statische bestandenVerwijder WordPress emojiVerwijder alle vorige afbeelding optimalisatie aanvragen/resultaten, maak voltooide optimalisaties ongedaan en verwijder alle optimalisatie bestanden.Verwijder alle eerdere niet-voltooide aanvragen voor optimaliseren van afbeeldingen.Verwijder cookie simulatieVan blokkeerlijst verwijderenVerwijder query strings van interne statische gegevensbronnen.Ongebruikte CSS voor gebruikers verwijderdVerwijderen back-ups geslaagd.Vervang %1$s door %2$s.RapportRapportdatumRapportnummerVraag domein sleutel aanVraag WebP versies van originele afbeeldingen op wanneer je optimalisatie uitvoert.Aanvraag ingediend. Wacht even en vernieuw dan de pagina om het goedkeurings bericht te zien.AangevraagdAanvragen in wachtrijZoek naar nieuwe thumbnailsOpnieuw scannen %d afbeeldingen geslaagd.Opnieuw scannen geslaagd.Herstel alle instellingenCDN instelling opnieuw instellenReset instellingenReset positieSuccesvol hersteld.Reset de volledige opcodecacheReset van de volledige opcodecache geslaagd.Reset van de opgeoptimaliseerde gegevens geslaagd.Zet alle LiteSpeed Cache plugin instellingen over CDN instelling terug naar de oorspronkelijke staat en verwijdert de DNS zone, als die bestaat voor het domein.Zet alle LiteSpeed Cache plugin instellingen over CDN instelling terug naar de oorspronkelijke staat en schakelt de CDN uit.De hier vermelde bronnen worden gekopieerd en vervangen door lokale URL's.Responsive plaatshouderKleur van responsive plaatshouderResponsive plaatshouder SVGResponsive plaatshouders verminderen de herschikking op de pagina wanneer de afbeeldingen worden geladen.Instellingen terugzettenTerugzetten uit de backupTeruggezette back-up instellingen %1$sTerugzetten oorspronkelijk bestand geslaagd.Resultaten kun je controleren in <a %s>Media Library</a>.Beoordeel DNS recordsMaximale leeftijd revisiesAantal te bewaren revisiesRevisies jonger dan dit aantal dagen worden bewaard tijdens het opschonen.Uitgesloten rolRol simulatieStart %s wachtrij handmatigDraai CDN setupActieve runRun FrequentieStart wachtrij handmatigDe run frequentie kan worden ingesteld bij de optie "Tijd tussen de runs".Looptijd vorige crawlerActiefSYNTAX: alfanumeriek en "_".Wijzigingen opslaanSla transients op in de database wanneer %1$s is ingesteld op %2$s.OpgeslagenOpslaan van optie mislukt. Alleen IPv4 voor %s.Scant naar nieuwe niet-geoptimaliseerde thumbnails van afbeeldingen en verzendt de benodigde optimalisatie aanvragen opnieuw.Geplande Verwijder TijdLijst met (geplande) urlsBekijk <a %s>Introductie voor het inschakelen van de crawler</a> voor gedetailleerde informatie.Selecteer "Alle" als er dynamische widgets zijn gekoppeld aan berichten op andere pagina's dan de voorpagina of homepage.Selecteer hieronder de opties voor "Opschonen op".Selecteer alleen de archieven die momenteel worden gebruikt, de anderen hoeven niet te worden aangevinkt.Selecteer de pagina's waarbij de cache automatisch wordt verwijderd bij het publiceren of wijzigen.De gekozen rollen worden uitgesloten van alle optimalisaties.Geselecteerde rollen worden uitgesloten van de cache.Verzend optimalisatie aanvraagStuur dit rapport naar LiteSpeed. Gebruik het rapportnummer als je een bericht plaatst in het WordPress ondersteuning forum.Verzend naar LiteSpeedAfzonderlijke CCSS cache berichttypenAfzonderlijke CCSS cache URI'sEr worden afzonderlijke kritische CSS-bestanden gegenereerd voor paden die deze strings bevatten.Serveer verlopen contentServeer een aparte cache kopie voor mobiele bezoekers.Gebruik alle CSS bestanden vanaf een CDN. Dit betreft alle door WordPress ingesloten CSS bestanden.Serveer alle JavaScript-bestanden via het CDN. Dit is van invloed op alle in de wacht geplaatste WP JavaScript-bestanden.Laad alle afbeeldingen vanaf de CDN. Heeft betrekking op alle afbeeldingen, HTML %s tags en CSS %s attributen.Server IPServer Load LimietServer toegestaan max waardeServer toegestaan min waardeServer afgedwongen waardeServer variabele(n) %s beschikbaar om deze instelling te overschrijven.Stel een expliciete breedte en hoogte in op afbeelding elementen om lay-out verschuivingen te verminderen en CLS (een core web vitals meting) te verbeteren.Kies om %1$s toe te voegen aan alle %2$s regels, om aan te geven hoe lettertypen moeten worden weergegeven tijdens het downloaden.Stel in op %1$s om 'heartbeat' uit zetten op %2$s.Maak een QUIC.cloud account aanMaak een QUIC.cloud account aan.Aangepaste headers instellenConfiguratieKort de Query Strings in in het debug-log om het overzichtelijk te houden.Toon crawler statusVerbeter de laadtijd aanzienlijk door afbeeldingen te vervangen door hun geoptimaliseerde %s versies.Simulatie instellingenURL van je site die de CDN moet laten zien, beginnend met %1$s. Bijvoorbeeld %2$s.Site niet herkend. Domeinsleutel is automatisch verwijderd. Vraag een nieuwe aan.Sitemap lijstSitemap instellingenSitemap timeoutSitemap totaalOpschonen sitemap geslaagdAanmaken sitemap geslaagd: %d itemsGrootteAfmetingenlijst in wachtrij wachtend op cronKleiner danSommige geoptimaliseerde afbeeldingsbestanden zijn verlopen en gewist.Sommige thema's en plugin's voegen resources toe via een PHP-aanvraag.Spam ReactiesSpecificeer het aantal server threads dat je wil gebruiken tijdens het crawlen.Stel een base64 afbeelding in om te gebruiken als een plaatshouder terwijl de afbeeldingen worden geladen.Geef een HTTP statuscode op en het aantal seconden om die in de cache te bewaren, gescheiden door een spatie.Geef een SVG op die moet worden gebruikt als plaatshouder bij het lokaal genereren.Geef benodigde stijlregels (CSS) op voor above-the-fold deel van de pagina als je %s inschakelt.Geef aan (in seconden) hoe lang de crawler moet wachten om de hele sitemap opnieuw te crawlen.Geef op hoe lang Gravatars in de cache moeten worden bewaard (in seconden).Geef aan (in seconden) hoe lang REST aanroepen worden gecached.Geef aan (in seconden) hoe lang de feeds gecached worden.Geef aan hoe lang, in seconden, privé pagina's worden gecached.Geef aan (in seconden) hoe lang publiek toegankelijke pagina's worden gecached.Geef aan (in seconden) hoe lang de voorpagina in de cache wordt bewaard.Geef de %s heartbeat interval op in seconden.Geef de maximale omvang op van het logbestand.Geef op hoeveel revisies te bewaren bij opschonen.Geef wachtwoord op voor het maken van verbinding.Geef de kwaliteit op van de te genereren LQIP opvulling.Geef de kleur op voor de tijdelijke SVG opvulling.Specificeer de tijd om de "%s" lijst op te schonen.Geef aan (in seconden) hoe lang de crawler maximaal per URL mag besteden.Geef aan (in seconden) hoe lang het verwerken van de sitemap maximaal mag duren.Geef de wachttijd aan (in microseconden) tussen de crawl aanvragen.Geef aan (in seconden) hoe lang de crawl (steeds) actief is.Geef (in seconden) aan hoeveel tijd de crawler steeds pauzeert na een run.Geef aan welke attributen van HTML elementen worden vervangen bij CDN gebruik.Specificeer welke element attributen worden vervangen door WebP.Standaard voorinstellingenGestart met asynchroon crawlenGestart asynchrone afbeelding optimalisatie aanvraagStatische bestandstype links die moeten worden vervangen door CDN-links.StatusMaak geen gebruik van de WordPress emoji, maar van de standaard emoji in de browser.Opslagruimte optimaliserenSla Gravatar lokaal op (in cache).Sla transients opMet succes gecrawldSamenvattingTuurlijk schrijf ik een beoordeling!WisselenGebruik opnieuw geoptimaliseerde afbeeldingenAfbeeldingen succesvol gewisseld.Omschakelen naar geoptimaliseerd bestand geslaagd.SyncSynchroniseren tegoed met Cloud Server geslaagd.Synchroniseer gegevens van de CloudSysteem informatieTTLTabelTagNegeer tijdelijk de Cloudflare cache. Zo worden aanpassingen aan je site direct zichtbaar.Term archief (inclusief categorie, tag en taxonomie)TestingBedankt voor het gebruik van de LiteSpeed Cache Plugin!De beheer IP optie zal alleen log berichten op aanvraag van beheer IP's uitvoeren.De LiteSpeed ​​Cache plugin wordt gebruikt om pagina's te cachen - een eenvoudige manier om de prestaties van de site te verbeteren.De bericht-callback naar %s is mislukt.Urls die hier zijn genoemd (één per regel) daarvan wordt de cache automatisch verwijderd op de tijd die is ingesteld bij de optie "%s".De urls worden vergeleken met de REQUEST_URI server variabele.De dienst Viewport Images detecteert welke afbeeldingen boven de vouw verschijnen, en sluit ze uit van lazy-load.Bovenstaande nonces worden automatisch geconverteerd naar ESI.De duur (in seconden) dat bestanden in de browser worden bewaard.De cache moet kunnen onderscheiden welke gebruiker is ingelogd in welke WordPress-site om correct te kunnen cachen.De callback validatie naar je domein is mislukt doordat de hash niet overeen kwam.De callback validatie naar je domein is mislukt. Zorg ervoor dat er geen firewall onze servers blokkeert.De callback validatie naar je domein is mislukt. Zorg ervoor dat er geen firewall onze servers blokkeert. Reactie code: De cookie die hier wordt gezet zal worden gebruikt voor deze WordPress installatie.Deze crawler functie is niet ingeschakeld op de LiteSpeed server. Neem contact op met je hosting/server beheerder.De crawler leest de sitemap en slaat deze op in de database alvorens echt te beginnen. Weglating van de domeinnaam scheelt opslagruimte in de tabel.De crawler gebruikt je XML sitemap of sitemap index. Voer hier de volledige URL van je sitemap in.De huidige server wordt zwaar belast.De database wordt in de achtergrond geüpdatet sinds %s. Zodra dat klaar is, verdwijnt dit bericht.De standaard login-cookie is %s.De domein sleutel is niet correct. Probeer je domein sleutel opnieuw te synchroniseren.Het rapport bevat gedetailleerde informatie over de Wordpress configuratie.De volgende acties zijn beschikbaar:De volgende opties zijn geselecteerd, maar kunnen niet worden bewerkt op deze instellingenpagina.Instelling van de kwaliteit van gecomprimeerde afbeeldingen in WordPress op een schaal van 100.De afbeelding lijst is leeg.Het nieuwste gegevensbestand isDe lijst wordt samengevoegd met de vooraf gedefinieerde nonces in je lokale gegevensbestand.Logboeken worden geplaatst in %s.De maximale gemiddelde serverbelasting die is toegestaan ​​tijdens het crawlen. Het aantal crawler threads in gebruik wordt actief verminderd tot de gemiddelde serverbelasting onder deze limiet valt. Als dit niet met een enkele thread kan worden bereikt, wordt de huidige crawler-run beëindigd.De netwerkbeheerder gebruikt de primaire site-configuraties voor alle subsites.De instellingen voor het netwerkbeheer kunnen hier worden overschreden.De volgende volledige sitemap crawl begint omDe wachtrij wordt asynchroon verwerkt. Het kan enige tijd duren.De selector moet in de CSS bestaan. Hoofd klassen in de HTML werken niet.De server zal bepalen of de gebruiker is ingelogd op basis van het bestaan van deze cookie.De instelling %s is momenteel geactiveerd.De site is geen geldige alias op QUIC.cloud.Site is niet geregistreerd op QUIC.cloud.En een andere WordPress is geïnstalleerd (GEEN MULTISITE) op %sEr zijn twee redenen waarom we mogelijk geen verbinding kunnen maken met je domein.Er is een WordPress geïnstalleerd voor %s.Er is een wachtrij die nog niet is opgehaald.Er is een wachtrij die nog niet opgehaald is. Wachtrij info: %s.Er gaat iets mis met het ontvangen van je Domain Key. Klik op de %s knop om het opnieuw te proberen.Er is een fout opgetreden tijdens de CDN installatie: Deze afbeeldingen zullen geen LQIP genereren.Deze opties zijn alleen beschikbaar bij gebruik van LiteSpeed Enterprise Web Server of QUIC.cloud CDN.Deze instellingen zijn alleen voor GEAVANCEERDE GEBRUIKERS.Gebruik deze maandDeze actie is niet beschikbaar als er geen domein sleutel is, het domein niet is gekoppeld of de DNS-zone actief in gebruik is.Deze actie moet eigenlijk alleen gebruikt worden als elementen onjuist gecached zijn.Deze actie zal niets updaten op de QUIC.cloud servers.Hierdoor kun je de auto CDN instelling opnieuw proberen, of de instelling helemaal afbreken.Hierdoor kun je Auto CDN instelling opnieuw proberen.Dit kan beheerd worden via %1$s%2$s tab.Dit kan ook in %2$s vooraf worden gedefinieerd met behulp van constante %1$s, waarbij deze instelling voorrang krijgt.Kan de laadtijd van de pagina verbeteren door het aantal HTTP verzoeken te verminderen.Dit verbetert de kwaliteit, maar kan resulteren in grotere afbeeldingen dan bij compressie met kwaliteitsverlies.Kan de laadtijd van pagina's verbeteren.Dit kan je snelheidsscore verbeteren in diensten als Pingdom, GTmetrix en PageSpeed.Hierdoor kan het eerste scherm vol afbeeldingmateriaal van de pagina zonder vertraging volledig worden weergegeven.Dit is een proces in drie stappen voor het configureren van je site om QUIC.cloud CDN met QUIC.cloud DNS te gebruiken. Deze instelling voert de volgende acties uitDit kan niet ongedaan worden gemaakt.Dit is om compatibiliteit te garanderen voordat je de cache voor alle sites inschakelt.Deze laatste fase kan 15 tot 20 minuten duren.Deze voorinstelling met laag risico introduceert basisoptimalisaties voor snelheid en gebruikerservaring. Geschikt voor enthousiaste beginners.Dit zal een zware belasting zijn voor de server.Dit bericht geeft aan dat de plugin is geïnstalleerd door de hosting/server beheerder.Deze no-risk voorinstelling is geschikt voor alle sites. Goed voor nieuwe gebruikers, eenvoudige sites, of cache georiënteerde ontwikkeling.Deze optie kan helpen om de cache variërend te corrigeren voor bepaalde gevorderde mobiele of tablet bezoekers.Met deze optie schakel je maximale optimalisatie in voor gastmodus.Deze optie wordt omzeild omdat %1$s optie is %2$s.Deze optie wordt omzeild door de optie %s.Deze optie kan bij bepaalde thema's/plugins een JS fout of lay-out probleem opleveren op frontend pagina's.Deze optie omzeilt automatisch de optie %s.Met deze optie worden alle %s tags uit HTML verwijderd.Deze voorinstelling vereist vrijwel zeker testen en uitsluitingen voor sommige CSS, JS en lazy-loaded afbeeldingen. Let vooral op logo's, of HTML-gebaseerde slider afbeeldingen.Deze voorinstelling is goed voor de meeste sites, en zal waarschijnlijk geen conflicten veroorzaken. Eventuele CSS of JS conflicten kunnen worden opgelost met Pagina optimalisatie > Tuning gereedschappen.Deze voorinstelling kan out of the box werken voor sommige sites, maar test het zeker! Sommige uitsluitingen van CSS of JS kunnen nodig zijn in Pagina optimalisatie > Fijnafstemming.Dit proces gaat automatisch.Dit proces kan enkele minuten duren.Deze sectie wordt automatisch ingevuld zodra de nameservers voor de site zijn geconfigureerd.Deze instelling wordt overschreven door de netwerk instellingDeze instelling werd overschreven door PHP-constante %sDeze instelling wordt overschreven door de primaire instelling op je siteDeze instelling is passief %1$s vanwege %2$s!Deze instelling is handig als er meerdere web-applicaties gebruik maken van cookies op hetzelfde domein.Deze instelling zal het .htaccess bestand wijzigen.Deze instelling zal de crawler lijst regenereren en de uitgeschakelde lijst wissen!Dit installatieproces maakt een DNS zone aan op QUIC.cloud als deze nog niet bestaat.Deze site gebruikt caching om een snellere responstijd en een betere gebruikerservaring te bereiken. Caching slaat mogelijk duplicate kopieën op van elke webpagina die op deze site wordt weergegeven. Alle cachebestanden zijn tijdelijk, en worden nooit benaderd door een derde partij, behalve als dit nodig is voor technische ondersteuning van de leverancier van de cacheplugin. Cache bestanden verlopen op basis van een schema dat wordt ingesteld door de beheerder van de site, maar kunnen indien nodig eenvoudig worden verwijderd door de beheerder voordat ze verlopen.Dit zal alleen de cache van de voorpagina verwijderenDit zal alleen pagina's opschonenDit is van invloed op alle tags die deze kenmerken bevatten: %s %s %s.Dit voegt tevens een 'preconnect' voor Google Fonts toe om eerder een verbinding te maken.Genereert ook een API sleutel voor de LiteSpeed server.Dit maakt een back-up van je huidige instellingen en vervangt ze door de vooraf ingestelde %1$s instellingen. Wil je doorgaan?Dit zal ALLE cache verwijderen.Hiermee verwijder je alle Gravatars in de cacheDit verwijdert alle gegenereerde kritieke CSS bestandenHiermee verwijder je alle aangemaakte placeholder bestandenDit zal alle gegenereerde unieke CSS bestanden verwijderenHiermee worden alle gelokaliseerde bronnen verwijderdDit schakelt LSCache en alle optimalisatiekenmerken uit voor debug doelstellingen.Dit zal de instellingenpagina uitschakelen op alle subsites.Hierdoor worden de ongebruikte stijlregels op elke pagina uit het gecombineerde CSS-bestand achterwege gelaten.Inschakelen cron-taak voor crawler.Dit zal alle huidige LiteSpeed Cache instellingen exporteren en het als bestand bewaren.Dit leidt tot meer serververzoeken en dus een hogere belasting van de server.Hierdoor krijgt de placeholder dezelfde afmetingen als de afbeelding, indien de attributen breedte en hoogte zijn meegegeven.Hiermee importeer je instellingen uit een bestand en worden alle huidige instellingen overschreven.Hierdoor worden geoptimaliseerde bestanden groter.Hiermee wordt de asynchrone CSS-bibliotheek in de pagina (HTML) opgenomen, om weergave blokkering te voorkomen.Dit zal alleen alle geminificeerde/gecombineerde CSS/JS entries verwijderenDit herstelt alle instellingen naar de standaard instellingen.Hiermee worden de back-upinstellingen teruggezet die zijn gemaakt %1$s voor toepassing van de %2$s voorinstelling. Alle wijzigingen die sindsdien zijn aangebracht, gaan verloren. Wil je doorgaan?ThreadsBenodigde tijd vorige verzoekTime-outAls je wilt crawlen voor een bepaalde cookie, voer je de cookienaam en de waarden in waarnaar je wilt crawlen. Waarden moeten één per regel zijn. Er wordt één crawler gemaakt per cookiewaarde, per gesimuleerde rol.Als je de site wilt crawlen als een ingelogde gebruiker, voer je de gebruikers-ID's in die moeten worden gesimuleerd.Als je een aangepaste TTL voor een URI wilt definiëren, voeg je een spatie gevolgd door de TTL-waarde toe aan het einde van de URI.Om een exacte overeenkomst te verkrijgen, voeg een '%s' toe aan het eind van de url.Om onderstaande functies te kunnen gebruiken, zet je Cloudflare API op AAN op de tab CDN instellingen.Voeg %2$s in om %1$s uit te sluiten.Installeer %s om een link te genereren, waarmee het LiteSpeed Support Team zonder wachtwoord beheertoegang krijgt.Genereer a.u.b. een link, om het LiteSpeed Support Team zonder wachtwoord wp-admin-toegang te geven namens de huidige ingelogde gebruiker, die je mee kunt sturen met het verslag.Om ervoor te zorgen dat onze server zonder problemen kan communiceren met jouw server en alles goed werkt, is het aantal afbeelding groepen dat in één aanvraag is toegestaan voor de eerste paar aanvragen beperkt.Om QUIC.cloud opties te beheren, bezoekVoeg %s toe aan het begin van het item om het begin aan te passen.Om te voorkomen dat %s in de cache wordt opgeslagen, voer je deze hier in.Als je site goed werkt zou deze instelling UIT moeten staan om te voorkomen dat de schijfopslag vol loopt.Om de CDN-hostnaam willekeurig te maken, definieer je meerdere hostnamen voor dezelfde bronnen.Ga naar de <a %s>Veelgestelde vragen</a> om de winkelwagen te testen.Om de cachefuncties te gebruiken, moet je een LiteSpeed webserver hebben of QUIC.cloud CDN gebruiken.GereedschapToolboxTotaalTotale reductieGebruik totaalDeze maand geoptimaliseerde afbeeldingenTrackbacks/PingbacksReacties in de PrullenbakBerichten in de prullenbakUitproberen GitHub versieFijninstellingInstellingen verfijnenZet UITInschakelenSchakel IN om openbare pagina's voor ingelogde gebruikers in de cache te plaatsen en de beheerdersbalk en het reactieformulier via ESI blokken te bedienen. Deze twee blokken worden uit het cachegeheugen verwijderd, tenzij hieronder ingeschakeld.Zet AAN om de 'heartbeat' te beheren voor de backend editor.Zet AAN om de 'heartbeat' voor beheer-pagina's in te stellen.Zet AAN om de 'heartbeat' voor de frontend te beheren.Zet automatisch upgraden aanZet deze optie AAN om LiteSpeed Cache automatisch te laten updaten, wanneer een nieuwe versie wordt uitgebracht. Indien UIT, update handmatig zoals gebruikelijk.Zet deze optie AAN om automatisch het laatste nieuws te ontvangen, zoals over hotfixes, nieuwe releases, beschikbare beta versies en aanbiedingen.Zet deze instelling op %1$s als je een traditioneel Content Delivery Network (CDN) gebruikt of een subdomein voor statische inhoud met QUIC.cloud CDN.Voorvertoning tweetTweet ditUCSS bestand uitsluitingen en inlineUCSS InlineUCSS selector lijst toegestaanUCSS URI uitsluitingenURI uitsluitingenURI-paden die deze tekenreeksen bevatten, worden NIET als openbaar in de cache opgeslagen.URLURL zoekopdrachtURL lijst in %s wachtrij voor cronKan niet automatisch %1$s toevoegen als domein alias voor hoofddomein %2$s, vanwege potentieel CDN conflict.Kan niet automatisch %1$s toevoegen als domein alias voor hoofddomein %2$s.Onverwachte cache regel %2$s gevonden in %1$s bestand. Deze regel kan ervoor zorgen dat bezoekers oude versies van pagina's te zien krijgen, omdat de browser HTML-pagina's tijdelijk bewaart. Als je er zeker van bent dat HTML-pagina's niet door de browser zijn gecached, kan dit bericht worden genegeerd. (<a %3$s>Meer informatie</a>)Unieke CSSOnbekende foutOnbekende fout.Nu %s updatenUpgradeUpgrade geslaagd.GebruikGebruiksgegevensGebruik %1$s in %2$s om aan te geven dat deze cookie niet gezet is.Gebruik %1$s om UCSS te omzeilen voor de pagina's waarvan het paginatype %2$s is.Gebruik %1$s om de controle van de afbeeldingafmetingen op afstand te omzeilen wanneer %2$s AAN staat.Gebruik %1$s om één enkele UCSS te genereren voor de pagina's welk paginatype %2$s is terwijl andere paginatypen nog steeds per URL zijn.Gebruik %s API functies.Gebruik een CDN mappingGebruik Netwerk InstellingenGebruik geoptimaliseerde bestandenGebruik de originele bestandenGebruik de primaire site configuratieGebruik QUIC.cloud om LQIP (Low Quality Image Placeholder) opvulling te genereren, voor gebruik tijdens het laden van de afbeelding.Online service QUIC.cloud gebruiken om kritieke CSS te genereren en overige CSS asynchroon te laden.QUIC.cloud online dienst gebruiken om unieke CSS te genereren.Gebruik de Web Font Loader bibliotheek om asynchroon Google Fonts te laten en overige CSS ongemoeid te laten.Gebruik een officieel door LiteSpeed ontworpen voorinstelling om je site in een klik te configureren. Probeer no-risk caching essentials, extreme optimalisatie, of iets daartussenin.Gebruik externe object cache functionaliteit.Gebruik de keep-alive header om caching te versnellen.Gebruik de laatste GiHub dev commitLaatste GitHub dev/master commit gebruikenGebruik de laatste GitHub master commitGebruik laatste versie WordPressGebruik de originele (niet geoptimaliseerde) bestanden voor je siteGebruik het formaat %1$s of %2$s (element is optioneel).In deze sectie kun je een andere versie van de plugin kiezen. Om een versie vanaf GitHub te testen, moet je hieronder de URL invoeren.Nuttig voor boven-de-vouw afbeeldingen die CLS veroorzaken (een core web vitals metriek).GebruikersnaamGeoptimaliseerde versie van bestand in gebruik. VPIWaarde bereikDe variabele %s wordt vervangen door de ingestelde achtergrondkleur.De variabelen %s worden vervangen door de overeenkomstige eigenschappen van de afbeelding.Vary GroepVerifiëren, wachten tot de nameservers zijn geüpdatet.Toon %1$s versie %2$s detailsBekijk .htaccessBekijk site voor cacheBekijk site vóór optimalisatieViewport afbeeldingViewport afbeelding generatieViewport afbeeldingenViewport afbeeldingen cronBezoek het LSCWP ondersteuningsforumBezoek My Dashboard op QUIC.cloudBezoek de site terwijl je bent uitgelogd.Bezoek je QUIC.cloud dashboard nadat de DNS zone is ingesteld om je DNS zone te bevestigen.WAARSCHUWINGWAARSCHUWING: De .htaccess login cookie en de database login cookie komen niet overeen.WachtendIn afwachting van goedkeuringWachtend op verversingWachtend op crawlWil je in contact komen met andere LiteSpeed gebruikers?WaarschuwingBekijk Crawler StatusAlles OK. Geen enkele tabel gebruikt de MyISAM engine.We doen er alles aan om je online dienst ervaringen te verbeteren. De dienst is niet beschikbaar tijdens onze werkzaamheden. Excuses voor het ongemak.WebPTe vervangen WebP attribuutWebP voor extra srcsetOmvang WebP bestand verminderd met %1$s (%2$s)WebP %s bespaardWelkom bij LiteSpeedWat is een groep?Wat is een afbeeldingsgroep?Wanneer een bezoeker over een pagina link hovert, laadt je die pagina vooraf. Dit zal het bezoek aan die link versnellen.Wanneer de cache wordt uitgeschakeld wordt alle cache records voor deze site verwijderd.Indien ingeschakeld, zal de cache automatisch worden opgeschoond wanneer een plugin, thema of de WordPress core wordt geüpgraded.Als deze optie op %s gezet wordt, worden ook Google Fonts asynchroon geladen.Als je lazy-load gebruikt, vertraag je het laden van alle afbeeldingen op een pagina.Wie moet deze voorinstelling gebruiken?Widget Cache TTL:Wildcard %1$s wordt ondersteund (match nul of meer tekens). Als je bijvoorbeeld %2$s en %3$s wilt matchen, gebruik je %4$s.Wildcard %s wordt ondersteund.Met ESI (Edge Side Includes) kunnen pagina's worden weergegeven vanuit cache voor ingelogde gebruikers.Ook als QUIC.cloud CDN is ingeschakeld, kan het nog zijn dat je cache headers ziet van je eigen webserver.WooCommerceWooCommerce instellingenBeheer kwaliteit afbeeldingen in WordPressEen geldig interval in WordPress is %s secondenEen geldig interval in WordPress is %s seconden.WpW: Private Cache vs. Public CacheJaarlijks archiefJe kunt ook een deel van de domeinnaam opgeven.Je kunt makkelijk schakelen tussen het gebruik van de originele of de geoptimaliseerde afbeeldingen. Je keuze heeft effect op alle afbeeldingen op je site, ook de WebP-versie indien beschikbaar.Je kan maximaal %s afbeeldingen tegelijk aanleveren.Je kunt ook browser caching in server beheer inschakelen. <a %s>Meer informatie over de LiteSpeed browser cache instellingen</a>.Je kunt shortcodes in ESI-blokken veranderen.Je kunt deze code %1$s gebruiken in %2$s om het htaccess bestandspad aan te geven.Je kunt deze DNS zone niet verwijderen, omdat deze nog in gebruik is. Update de domein nameservers en probeer dan deze zone weer te verwijderen, anders wordt je site ontoegankelijk.Je hebt niet genoeg dagelijkse quota over voor de huidige dienst vandaag.Je hebt niet genoeg quota over voor de huidige dienst deze maand.Je hebt te veel aangemelde afbeeldingen. Trek eerst de aangemelde afbeeldingen naar beneden.Je hebt te veel afbeeldingen aangevraagd, probeer het over een paar minuten nog eens.Je hebt zojuist een promotie van QUIC.cloud ontgrendeld!Klik op de %s button als je deze site wilt koppelen aan een QUIC.cloud account.Voordat je koppelt met QUIC.cloud moet je eerst %1$s hebben.Je moet %s aanzetten en alle WebP generatie afmaken om maximaal resultaat te krijgen.Je moet %s aanzetten om maximaal resultaat te krijgen.Je kunt de optimalisatie niet terugdraaien zodra de back-ups zijn verwijderd!Je moet %s aanzetten om de dienst online te kunnen gebruiken.Je ontvangt een e-mail als de status is geüpdatet.Je %1s quota op %2s zal nog steeds in gebruik zijn.Je %s hostnaam of IP-adres.Je API sleutel/token wordt gebruikt om toegang te krijgen tot %s API's.Je e-mail adres op %s.Je IP-adresJe aanvraag is in behandeling.Door een eerdere schending van ons beleid is je domein geblokkeerd om van onze diensten gebruik te maken.Je domein_key is tijdelijk geblokkeerd om misbruik te voorkomen. Je kunt contact opnemen met ondersteuning op QUIC.cloud voor meer informatie.Je server IP isJe site zal beschikbaar zijn, maar browsers kunnen gedurende deze tijd een waarschuwing "niet beveiligd" geven.Nul, ofcategorieëncookiesmomenteel ingesteld op %sbijv. Gebruik %s of %s.favicon.ico wordt op de meeste pagina's aangevraagd.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationnet numicrosecondenpixelsgeef hier meer informatie, die het LiteSpeed team kan helpen bij de foutopsporing.nulooptsecondentagshet automatisch gedetecteerde IP kan niet juist zijn als je een extra uitgaand IP ingesteld hebt, of als je meerdere IP's op je server ingesteld hebt.onbekenduser agentsPK�&W2 �r���Ilitespeed-cache-nl_NL.poUT	��d��dux�����\�r�F���(_3v,��rx&(J���A���3��j��l�)�j���G��Y�B�fÚ=&b,�#��YY�R�72/SY%:z*n�z����I�n�bq-��“�JNR%��hUV¨T�R}+�\<��h�ٗ�<)�4�(�'ee�I]a�:���)e�D�D*/��%?��]-�L�?��Y�/���!���ͻ��j�����3L����G����)~��?�<��}��?s�����/��Kq0�O�u^���_X�R�'E*��;ͥ)U����?�λc��SeF��H�I>�瓤�1�J#���d�������;a�>�/��1z�red�ͥx���ƨ�|r<��dZ������#�bj�1�NE��U�~�'0���K|w�>)��o���'��
_U�V�9����GǍ^C�X��[փRhI�\�#�D�U��b�D�R�V�ܻb�r����N@��ڰ^��І^,����3Z��52r�*�$�����S�����VI��]�ٽV]�<��Z������8JK^���Yd<�ċWy�ֱ*���N��Wi��LԴ]5Ju�e�N��e��k#b�A�~[����<&
�Y���F�$]�I��Ej�\iQ���	9�K5XBdr
.啌*Q�f�u%~���z�{�<��"�F��Q��m��;H)�[���Ƌ�R&:YRNL�,@�Xjm$�����4��"W$�L�gr �oB�h	R�+S���o���Iñk�]*M��N���=JTCl1�5iu\+��:/�4Ř$�J�c)���<�>��Ҁ1ϰ"m�v�+5��_��N�dG&�%i"��Rx.-e�Rx�'���칔)tWN!Ӕ|q�%��S��Q��A��:ˤY{վ8�p��hL���x��/'Pޒ�e���ӈ�)xN�5����΅�W�|����
�+c�G}]�o�6�S�m���gF��s����iĒ��?��Еd�yO��YC<�!3��:���*ɒ{М�[j^�O!s�s���v��m��y����:�dy�s�s~�l��e�,L�냯�F�>���<T�{([N>"
穩��(���
�j�����p33x ���d���Ev�<�B�S���ѹ__.i#�{<�n�ǐ#>fv�9p���Sx�"��֋j,�`���̦�7[����iCC�1dĚ�Ȳ�"D�),y
|�/:��i�dO[���P@#�d)�Q�E��;��N��4�k3�I�����³ӳOu���˲���;�ʬ��! 	�& ����o���p�
e�K��S�*����2Q�\e����z8B8Ez���ě��1��̹�B�+���k�B��O�I�y܀���^����������p�xz����	��Yf}�vF���X��2��X�s��DK_v��g>S���������9>���`��f�G�?22C��燏�]IK�y�T��7�La�#"�;�{|�(�w	�̫�-xK��m��V�n���BL$�,R�꒴7וū1!��R/��G�+)"�F��'���5�<0"c��.oa��X�VCē�ݪ��P�I�a��C��̀6�=�-�i3�4S�rZ���������m�«�X�K�@ٸ�ѼdW�GsQ�u��`B`�bhp�U�>\���S�����{��WrYY�M6��b�A����u�	E�!yqd���?A [*�(M�D,
���8!��%N&���>�~���/�"�ƠMI8�R�G��USfG!i���8!E�1��q�L,9��u3Vd5����]�9�~dL�ZP"����=��+����:�T��t�LY�G)�,��]�j[)=�B)�؄�N�n��C(���1ޖ�����)�9��OX�|4a}�sj�>>H]C|pr�B`�;�c�&��@QBٺ.�5�bŹi%��n�ը�u��� ��KHiA��	dPv
�b:��A��S��_��4T|��t�U*�WF��N�Ȟ�O��^�6I
�q>!��Lh+�'�W@ц�h�\���1�rO�2��D.3���I�h�$�����~���%��I����r)3�0�̞UK^�GS����'\���6���J�:�����gCL��g����럟w�1�0�9���u�di�G��a'jJ�dQ�k2/�����t%_Sɏ�,�kB��r_�J�������9{vR�$��_�(�)_��-m��H|���"5.զ6?$TWi�Ic��lz׮f�-�yw����$f�%	�.�)DŽ�_�,�mʤ�LK����1��7$��O-��[n=����*�Ӈ�V8�@M�r$��N�p�$/V-!A��n�}�?PRڣ��W����(��{�So,�m��N�IaY"�L����.-��)J��.!`�'��d�x�^&đu�v�!��AK�X[��.������y�kq���_��~�Oz,���T�T�|9�	�p�QE*���0��?�V��
�E�
�\f���"{�k3��dm�#f���.��O� �-u$�S?͍x.�:�
r�`Ƹ��>�W*2�c��3O݆�ܖU?�Щ��$J^�� *��0����dDbe���(���I���f�:2I�`�K�Z�pd�H�>VFe�:������J�j�:p��˽�jhU*�j�|��;I�����*.��"M�f�4��=>��E,��j��C��Y{��=��uC�/�i��P#����̉aտۃ��$�:͞>���N���f�JQ)���
��i�2/�U#D�t�BBXM}Nq�1��
�#�Q%�s�U>�tcq�P�=�ȚX��H־J�%F�kC-����!��ؕ�̝�<��;�d�Q�,B����:���t�Yt�gd
�v���ky������$`'��$(ɥk:��3]�U�|��h")[)ӄ൛�+���}�|eQ�#���:I�SeZs)�Q��?m���4�RKs�T�5x�N5�$��s�&��B������"��6��UP%d[����Ch�!�!��bŒ���[��q��?�+?<�ݒ�Y���_��3U��
wL�)��!A�w��
"ݟ�x�f�����5
䪼���Ǹ���.W���/�Q�@�-��������;��6@���l�"G���j^QF�|�h�J��u+5��#��\�))HC��f?�Ν�K �l�
,0<WTӐ�������/�}�w�8���.zRa��"���'�6�����<Y�?%�u��!��6��D���q�E���r

�l�
�]�[�sjd��v��;wh-~VG�9W{�i+`2S�Ŕ�:j���5��p�\Q#�b�mr��x]�T#�k�Gp�xXH[����]�Â�C�v�n*�!��I����o"�����j׳�xI��v��߽�����������+_����O�iM�-_�p���a�g����ZJ�|��=�� �i+��I�|m�c�
���|*~�im-�1Z�A�%�F�^P��=��K�����%�֟��;�:%�fS��O��Nw�1&U9/�d��z�E��+%6R�.w�Lt��ȲY-f�K�sꨪU���u��U�舋�l�[����D�bP!�b�l���P�T�f��.	L
�iy:_;�t��ؔ�*))5�]vC�����[ʺ����6�Z"�]"hX��!��6��i�
�A��LN�Բ��}������{M��NDr��ἝĴ-1a�A�\�I��w
��GA��bX��mwz��o���v���fT$)����e%w�:9d�-q�,�hk�@b���a!��m����g�p���H�F�)�~`��	~�4����ſv�.��ۥ��D�$A�Lq��������
��6:�]�d�V��b��n,I��։���WJ	(͊m(�X�ٞ���X(�(�bJ�&�F%
�΁ҩ�1�7�f`�]�"��"9�+�tK�B����c�u[�A���J(��
[�^ؤ�	Ӗ2�!l7�|��FO����WA��R\�����m6��A�n�%?2�da�������?V'���Tɪ&8C��Kj�N#�	���#׉Ȃow��e�r�I�Jg��Γ�
4��Wɞ�4��
�Ԡ�\�����&
�X�fi2:W�����7}h(��:j+��S�*�rR���Q}x��8HU��l��La��$qy�
����?�3���������T����v/�1��ӪoK�MQx�5��f�6£J��D���s��`R�wp���}��?R޶L���}u�M�i�@����r�ŷ]���]ጞ�4��k@cp����G+��uX�ֻ4R�,�h��5���re^��2�3����j�}A����4L��WwJZz���u���f�p�QK���+���ۦl �)+[0�6�vgI>���H������@�l����w#M�����)�����	�t�O�y�T����mx��H�i�?>I��e�Vʴ�tGm赞m4���X�e˵�%<��z6h�6,��>��ػ.��EWkli�I=V<
�V����!�a>���S�+C.#w%�Й�2���-��`�%��4��8���5�儰h�Ihw���-�觶'�礟����9�|�����n�9q��?��ٖ8����>x,^����,��y�x`Cr{,m�E�0������#	�N�	2<L�l^n�rr@S��B�n��q*{Y�
�Ci�	_&>�n�>�i�'�|�f���8`oL8��*ET;�[��nCsSq}�]���?��	�7�~lF�
�r庆\�sύ}�>�O�4��tad�e�m�CqvH�e�t��rD�y�h��I�Z��sS��{�Qhl��0I'�|��R�s���u�xV*]�.�q����W�[6��@��B��rJ��}DS�l	�:�$u�PB���f<����O]�zBx�q	*Y���=]A�t���-����1��A�a��o�^/8<>
{G��TzM�AȂ2]�{���z�v:W�@�R���y�vC{�f[����h��T��^Nm�n��NwHm����UB�v%��B�y����T���Ư�aV���y���������P�T�#̾.}+8�Fj�y���*��A�9a�Y���6Ѧy6�k�n�H��rwl7����7�7�j�4H]�me/���.���]���̝C�훶����	�N�J`ב<V�\���^\�p�@M�� ��Iʡ
�������@n픉�b't\
�5��-&7e���(�a>3�yyC�YP��ȣ�Q0񓉌�	�m��x��-uT�Ep�}��+�֦�[IS�"T{O�v���򰛐{ս"+��)(-ܬ팡:�]g�������@��N�l��se]]�۴���8�bi�Y��
�Wi���ԕH}����8_��9C�P羽WYҽ�u�W0cFT:�Z������� �I�:����A��5M��~[6�$w�c�]�ۛ;�Z����>�!��,:�C1Nu5�ּn�0ʾi���{�.���f��rY�^ұ�߉�	W2i�%��R���Q�l�(
�7�MU�=��N�iis9� J�D��9m2��vēr<�O�VI��:E]+��W�Isy����,��{jt�m�xG�*��Ͱ��v_͂ac�3��?
a@�u��0ԝ�0�o�
��à���B	��`�ђ�_ �_�h?�{��#�������*a�ʎV�n�`�G�s�0B�R���
���-�u=]��1�oq��$K��%ؘ/�j(�\G��~��JG@&� e�\F��H�j�6<�HO�$u�;�L����nJ�N7Y=c|��T�Vd��io���k�t��sw�]�qo�e�NR>�����f5���
q���� `l��W�:f�3c�Q\��:�i�	��9��?2a��
c����M�tl����?n|G�m�p[���4t�hN5�2wTG�ĕT����N�`��_P��YX"/w��p���X}Ss�$�y
]��r:0� �A����]��>ԴH�ts�^�F����!����v~G��Q�ws��7��
����nUHf$�%:;�(QR0R�HET���N�N��/������ٙ����ś��+������ko���m�U!:�}���y���f��Y;cs�?
�"�d�����Dl�l2z$ae��>���-	�ց!�|F��)4+�S{��r��\�[7�1��y73�5��$�_c{$�by7�J�>Q�o�K*g��H�;�'w��[#�Vv?�!@�b�.�C�Vn&�p3���,�
��2�,��l�봮�Y��ySx.�l�Ѩ$\��f@Ǐ[f^�5��H!�A�r_S�'4.3{/X�@��ڶ�ti윸�	��ԮS8�|�`�eev��)�|���8��ѳfr��)Bo7��a@�1����}e���}	L��f��ۻ�f�gK���
�
�(�K��9l|a��۹����`�۟��͹cN��d�����_��$R}��S�K��o)��_�ٜ2R�Pܐ�n�5��-F�7��,ƓJoƹ�͌Z$��PjL�:-�I1��S|���m,�M�I�P#�#�M�T�	�K��������L��s�
�+x�[�ϙ�Tڜ��8]�YǍ�Fcɑ����P��o9��kY��L����6a����}�K@A���A׽Bd���2n!o(�U�d�A�pQUr��>��s4d��>���a8���"�U�,E�y%�{�v|��d�9���5�j;^^>s�pU��cX�L�ʡC� �Y�=����K}tPR"o��x�.9aH�
�kχU���#a�&�ez'��iZ.�Q~;H;���Gac����SϜ��½`d�һ��I��,��|9ѱ��}o�77_1�^/�}��b{Y�m��̋)�`�[z���u}��V���5�AQƱ{F����l����"��ۂ\��3,��Of{H�ӏN]n�ob?U��=�`I�H�A�cH��~9T��5��n�(��p&��|'J�G� �ܼ>+�?�ױ��;�m�ٯ�����w��qF�?�ɓ�G��D柦�%)~.ퟟ�?�8r��{f�o���Od���nE��5,�@N�/�4+���Q�izau6�61 [�e�{����!�u0}'��VǀΙ�Qڛhp����Q����#�nW��vR�72/ϲ� j-���f�v�ꥆ��j�F�"�Z!��A7��JD���fA�/9A���^���9��͈�H�*��\h����9�>�i��^�s��V���J?�H:�>Aw�e����~�3�b"{����K�����i�AJgpt�p@�c�q�D�Bv���	u�E�x�Z��:k�dꮡv
��'\=���ټ�N7#�Q���I�%�q��"���B'��$Z�.�Q�iM"�1��hdvLU�+��ŋ��"�A����r���V5�8\����^E���a[�DZ-.u�R�r+w�Ԙ�+�YF0��Yo�W�_��\�mC�b+)l��7�O���N�����w�J�6ڷ7�@���S:�U��:<�6�)b��ɂ��o�t�@����ދͰ�؜�g�H��j\X:���i��5XTPa���Č�"��?��<F�ڃ��e�"�J!�����DI�k�8�6�/4�G"lD@0Ϣ �O��"�@=ÉZiY����f����P�j	��z�f7F���j���[�@�>T��E^�&C���p�q�K���$���ú� ��c��7�+˰������Eй��@0��B5��H�ҳ��gJ�aT/B|ܤoX��_����o��ޖu��������L��k��=���|̫�֨|'*���^1��W�B�E�s!+�}0�7��c��w��dR܉��}�+r��d���)c[�7�̷o$
�#!�>��O�c��N��<�Z��6z����������@ڡ/�y��F0v��@[��AU|$�L�,����#N������|�ݶ�cN��E�ނ�_��E��6����T9)�Xd暯�O�sGt5��y|��x{�H�P��Yߢ�p��C<�w��:"$2�y�WZ�dWޠЛ��
46	Mv�Fhv��SIT�����7�Y��i2O�Q����=i�}�G���%E�]��,�T�8	wŗ>�P��8V:��X
b�)ʇ�.��+�)���㸒(�C*�[��I/Sт8͏�:Ȏ�ʉ;9i�A�����-Ie�,��}w�VŰ��ݎ�����*�uR��D6B���P"Vr�������dM��O�~�^@{{|��̆C�&�4��r��<��)�?)��w��T‘��A�(	
�T63�2YV��(���>L�?���Ee^֜LW�=@�K:��U�R8J�Zm�~ܭ��#-1
F��f�|�G9c��"RՐ.y�9���b(��B�e׬.K�8�º�ĭb?�FN��5�يYJ	�Cѕ��F��Mqm��D{�8i��H8C�b��ĺ��r��)�jAJ��n�"�I�!9l���T"�:��x_Gk1��E����,���f|ُ�69ơ{!5���?)�>���JNͥ��%�F�b. ��8�a��rY��ᇤ�B���!h��Pjwaޕ��.k�9���@8y]�JD9���t��MJ�9cL,�(�S�0f�M��}��9^������P��d���oM*(�+��bܭ˽�{R��aֱiP���j�F�����8�K:En%*��m��H���w�OH@Dȼ�b�>�ϱMMyF��L�� ���8��g���c���獽���>��=�4|�A�/xE8";���`
�3w���D��WuO�Z�*�͔��'^:N��t���%z"���2"̤�CNG���
{-�S��E��"l
Az���/��ج'ab
�E��㒕(?S�����:i��?h��L�uAj[P��.Ɠ�yW�3QR�>t00����1�ȯU �	����8�[�M�ւʜ����gar�Y��A��V��(V02�w���)��ƥ�l�ة�7��r4-p��{��[!�)�lG'v9�J���	ᒒ�'9�����H��nPߖ�r9��#��ܨ��ї���}�yg�IR^hWQqE�L�L)�E<�"����7����k��������8qz�x�
�n��ƽ�<�:����R&���Sv�.cH��x�>���xV��D�OL��2X�#v.�oD��JC�Btb�
���=&&���%�}�.�u�9)��|cF}x�$B�uh��*;s�㧏oW�����voG��h4���9.�V�q��L���M6��he�5a*��s=
G�7�:����s��+r�To)]�[�x��"�Ƒ�`3o�ؘ�yge�%��S�nK�D�Y��ֺ}mBDkLhD��U���r�s��O�ZR�~K_,	�"��X!�Q�ؐ�zﰂ�[���f�����9gt�+���S�ڪDgv��@W1"�n����nȻ�����,|'X�</�%y�'o1�S>�<����E��<#,���:o	�#�.�����#s��L���T�O�y�u�?�~$o�S�ß��~L�dt]=��*��QGb^ny7FE�B�#��ۚ�9
�%��Q�����x�s7����O�qܒ�Al��l[�>��>���'�*��0��yʬtaܷBhu�`H�w�`,������%~���
o�Ob�F�/�&� ���.<��[R�E�Yb���t���\��
)�e	@s�v�Bј1=�<�%CK&��Ŵ��5݅��-��gM3�Γ�����x3F���e��È�\�|�8Й��YlM���u���7L��,�{�q�-�F�5U�V��LG�O�E�����p?�M-_�R���y7�9伄�s00'��8݁��G�r}7�-�GվV3E��2�\bԾI��H+�eOK����i9J������(��h	u�73��T���^#�֐�8�AEyS:"Lf��\�V"
-�K���
m�JAZ�?�;�1c;�֬���t�X�0�'g�r�E�K�Q�o�X�=w�3�=���WJC ��}���0�Ŷg�e��<
O�M�[�E.�$�5�@�	r�ę��0- �[	LiT$��j.���ܖޫu)�2	�Y ��N��$)2yJv�r<&{ȳ��'��J�o,$�^��1����/��Y�����#����AZ��1LLvN�b����T��iX�?3�#i@	��%��S�7��ڶu�r4r-B��Ȧ��|��=9��p�CR8G�Er�C�9j@�'U+����bT��ϢO���T�����oG���ܷ۩�P�D�\�k=[<>�J��\{�>�v�|, y�,X.],d����[��G����p�}D�
�/�ܙ.����F��=J�k�݄)Q�.�-=���{�
����Rғv�N?_%�
��-ܟ8��d2^�*v�	�Ks� G�~r�rX�v)���?�_����&E�:��r���&@4-v$�b���L��F�5�į�(���	 7��3�nn�b̛�@27�|�@2�`�x�L}?e��a����א�=[\ҟƈ����9����̌���mN�hp^Q��̢���ف�1qUT�ōx�,���Ḥ\�ܵ�ҩ�:������\�$Ic8��4cS�,�Ž���ܴb�ٜjU� �o��'-�G}#���/�㛰hhdV��ɑ��:�����=�0W��םtt��{z��@�4[�;	�;�ь�2Ҵ98�����������#a ����M��+��&-f�8e�w��eY
�&�uD�86F��ζu�@�Zb퉾��fu1as#���*��������&fJ/�ɓ�]��t��3���kY��,�{
V#4�>?K����O�;H�c2����4�e�=��\��'s�a��e�V��N��G� �g>�`�#t�c��`�B�j=h���)�hX=qZG�(44�lhY������k��a��!�̂�Y�[3’��gA�1*[~X�����m�X�CF@r��`GP��n+W����$Ģq���;�8�>�27�׾�G��ސ�栲=A`�`%���
)��t�s��y�,�[f� ��]���g��	�
�Ȭ�t�QS#iۯh�a6Se�u�M�|j����tkH`_=\��t�R�w�&��KrI��(fg��T�K��ץ\~�D##��k2��0�y���"��`�d�`w�����ʧ\���Yc��&PJ���FW}d����}����,C���l
�-X�i��W� �ħ<2'�e����˴J9'U��N�^�����&��^Z���W��=���uLI&�
Do%``�4#�S	��,�t�H�5N�z�3s:.�>�:�~d��v���ϰ���H
�����43�z �{��@P���F�{��ȯi���k����w�{2#�Ϧ�b��̖^ξ,�|�K9����d#�.�Q�>�*[HE%�e��U�I��S+����8�u��gO�u�i��V�3.���7Z�$t�[�>��f4��[�JM��pH�Kg)f�h�q��jJ��-=��$׊t��=�_ NjR��gE[D<}�
�z�a�,c�T._AQsW-���F���Q6��+�%^EaX��-&P,$䢡Z�J��9M��ܒ�᤻"&��Gb���l�sf��b+kAʛ�tb��-`�
W���f�PȔ�O�)!�M��<�¡]ܲ�6xXd7��lW�7�C�e�d襳8$C��#��,��.ssl�h�����(����������6О]�y��yzr���X�
9�y��Z5�t�5*�i議Κ��H!X��gs��O���иѢRA2��x�Y1�ra-i�����)�#�����Rr�ܬ�߽g٢d���''��
��>����hC��&V����/h�
�'���V��(�M�R6hJ���lc�� a�[�p�]�;�[�����HT�>�� ���x��Wf����ٴ6Z��d8�S\s�����͌'���_kF�m�s����Y-��@k�x��59
)�tu�Nd�?����/����i"6�JT�󡨳fv���TEc������C����Y�ɻ'�A���X�ohz��߻P�QQ{H��GmП9�d�b����]���r��z�O��	����<�R��
���iU񝹋�k-�hm����)D�O-�2�>T��m."�>�N��9?���P1���0���9՛��F*����-���X(�;�<��Lؚ�V9IY��C6�Sd�J���]�
�C�0(��&06d&��x?�6���ϧ���J�m���.�R};*�������M��ˣ��~��ܘP�`Ng�Yh�9��yoq��2'���HߋtV�+��q8��@,8�٬���V��ݢD�-�5�H�h��b�0�#���}'��f��Ppg�"�
k�S+Ȳns�%����`e���%)U��=ò�L��3ۻ\�㒌���]ý:5zwZ^��
���I�9F��mC����
�JC�6Q�����fJ��*ǂ1	��ޟ�
��u�%�E
�� �!��#1j�elt�1*(,k��5]hّTXXb~/�˩�,���JNgFG�iAHAa�9c�'�F�<d�8T�`�8��ur�ӱoj�J�ڮ˥h�	�i�����6\�BG�<�C�K�j.�"�m;BL���V=����)`_hK��p�}���쨯�xW.�0��	W'Y��YZ�� B�ф�V��H�,f,��H��5��s��/&���i��,�;�t��OF�`�E��K��t-�[�T��TST��y�ű�M��{�w8��?a��}+y5�8��=�F�]�n ����0`�Vd53l������_J�:�{Є�As�N�m�JN�@�ьPb
�BG�1��B��Y�5�b��'Ɗ�Vnp�V��?��Ȉ��F��K��7�2�y����?�j�?���O:t��9C��s��[�w��V�R���#3�(�/�c�E��J��w�ZA�~��[U�r"�)aR�Of.OG���\k�Xw��F���X�����իb�4��jh%��Oߥ�9�.��a9�β�\�����Ĉ�1��J����|���ǿ���h�:|��N����ZTf��㬫{Q?�����A�|�3۾���9� 	4�g%F4��0~�V~���̜�`4~�׈K���<#�6�Jf.nmr�_۰��`��(�5�*qѵ�pAV7��%#7p�r{�S����ݢA� �oEJN9��|��#����-�Llz�E�ǖ�;�*�(Y���	�����/U\�sV�E�n���K�SJ�������iu円�q�ʒ��u�%+�%��ţY�=��:�-��F��`F�a=�%��@�<DGXh.�wf��|�б��Y^��	�ײ|)��t_S�����0��E���yގ�\
�H1��<�!�A�~���$��V������_r��"�'g!t��
x�¬B<�X5:��q-�s��W�H�7�\�:o�S��G�r"kN�Z26�:q��	�4�0�t�]_uv3��1�g�v�E]��L�6|�)+U���0�-Wj�7����EwU�mɠ?_����dL�x
��Y�k��Sq����_����SdSw��ɥDW�VwOdn�/��IC��0�f�ݣA}��<����쏭%�D�A���1-�=��;j�o�M��s�î��E벀���TYeo�R&C*�;��<����g(yF������!&�a�>�$,�%�Α�$�i'�I@(L�nd:@Х�F�{$�w؀�eA*���b��W�p�Y�G��&+g��lc3��r|k7(�l}�q��ުy'����i�P�%�af(�c�֖/\Ƹ`l��P���
�Vg�o�Qd%�r����v^�f��o� �?cf�W�j؏�Y�_ª,�S(�i�P�r�UFϾ���Jz�+#�%}�� �#��� �~*�����xY�.xXy�NI���Fs���X�ؗ"bӫ>`��9��f�* w����#�%L��g�mbb;��!���],m��4��1p%P>��9��m�����zl����
��{�?�}N{Z��gu��չ<n/p�G��/���/�"��AȊ�������<W쟋�{
����0�>�L\ozO�r�z7�BhI^�)�o9���nEp�ד"�|��h'% }�
09޵�Q�Ϋ�q�$r.Q#�g���=c����lPE'�J���	�3�%���$S)< 
2 d2B}?,�t�;Ӵ#��*\�盐��j�_��:�jIu
�U��&����D�~�h�f:	ߧ�D�h�[�D�����Ծ�=*	D���a�1QvɅ	S�E���jB������J����I^Ƕ���H�<�0��M�l�8�Z���7��+�B����|Q�>H9��
ݩn��dZ�$y�ᤒ$��X�ѨA'_!���x�
��*T>��șI%�Q��!�C<�~C�j��JƋ9�<��t//|t(*�H���!����%#����$�mc`����[�ꅠ5�{Ã���~g��y�b<�Q�1��	>a�`8�k'��xo�,�ݣ5�@���Zoh��X�F*���9'g!�ϙ44�|�Hoȉ�'_|>"���,�)��8uЦa�!U]�\Pߗ�7���j?'���rW~ϯ��0����s��>/~��x\��_}Z�|98�hO����䀉|*���FPU��_P�llQ$H<�1��:9<�z����D�@M~�⡝�5 SކC��+��z�(�x�O�*�3d�" ��!X�m��P/�9��(�v(��ힲ|�`�Ś��ڔ�3/ 	}Lga�#���yv��f� (	�00 �r�_��.(�'!y
	����d��)�D2�.B+�P���y�R
)�4����5���&\�j��������\�%o�_�ϰ=���?cNRmɼ1"?
g|x��-���N�CtuB�~�01ЖL>�UڒK��aYl�w�J���V�!�����?�6DY(W���ʣg���/_�1O\!�8��P��DN#�4֧�7�._�t��Wo϶�^e���–P���3�m��M8�iD^)/�Ur"�:Y
v��r$���/��J��̊�胏ކ��Ί
��&�k3���K��D��i��5�"������˵��VU�lx	
^�*7k�|�;IkV΄���,_3��[-�>z�/�P��N��o��|_�m�p��,��
�
�~5�c����=̣�?�4E.��M����!?�D�
ֻ�!��y��J�a;�Ź�
��eϵ�6��nZ���N�
���/qh����`	�Đ�϶(((q�x���/ouۄE�ad��6Csf�0mm�5�S����_������!wn*9�1�����K�o����Ն9d�[� ;�)���=tNT���i��)ʔEC3$m'�%O�#��廇
9�ל��5Z��aZ߮��^�%Ն�W֥���5R�w;36�;�Pvj:Eqp`v����.��Fn����pYO��9��A9jf�a������r>_r��d�|�s��{���&�z�ï�X���F�}Y]/
�O^�������:Hd��Hd�g�Ĩ�2�\����At�DŽ�{t����$Z���2dȨ82N���;��9�*�]!8��-���π��e)�Rx�V,ɇ5�'t�k~�9?���q�A�%<0����H�Ţ	B~!�/�[d���v[<.��)O�3�aG�#ވ��T���+��ɧy�rY�8�B��
�:��[~��gz�NOV�61��0Qs���P��,`Bi�r�6~;<9\���x��yx�ڞoq](q�����NrNO<A8H�[�8f�]�
��%���ƗK^�c1Q�+���I%D�����!E����fsuq�X��Z5���~E��[�$���YQ���j�_�B��������U���>��J���4g�="�%��~4�J�ȸ������A:RoVŐ�$hBVZ8>�Lr�mő/�8<|w}$��Z�TBI�
������{�A4�1�Xo�s_z�����S#��h/��y��p�^%�
ν��g������t��9�祆;�'��O,�S�U�8����+%\�So4'�k=�m:�������LEƝ_���Ӵ'~�W�o�tΏ\J�t,˵���*S�^�.��غ�!7��<����{��j7�/�~P
�*��V@����N6�^f׊�C.����_/q�C�ڳ��峊�r����3�R�A�:�V�t��뒂4'�A�Q�����b�F����0�@�l��".^�CL;�T`��BMI�H/6��Ξ\�l}��|B�r��J3� |C�b/������N���y�(�e�	!v����b��
d=����ć���k�یp'�?�I9�����l:AMz:X�a��F�=��1EK�w����
C�y���q���v3dߵL��r���e�(��Y+�G,0TP��S@��m�M$��>D�Ì (VqӇC��ʜ�ب׷ޚ�^'�^2�� �-
k�ZI���}���y6ѩ\�	C��e
&�
��5]"��Cbs�`�{Z=#�,�}^,$�q��/�Տ�u{*o�#��['��ש�`���sk������y�|�ix��o0�AK�+!:�u*Ml��E~'��Y����W�	{��f�D�mv	����p�7F6�(�ժ��Q�ɿ�m8J�[YM�l]*�9�̏:�����"v�[������B��W5��/j3\��u�P���V�Cg��s���o6oKJ�ċg��@P�Lū4`�A�?�;ML�!#d�Eym>Gs)���LN�GP�2���~1�=?�������q�������o6�Q%������]Ӝ����j�`pֲw]*� )G��+Ȃ�� o�)X3>kv�9�JB;�]����4ء����o���o�p[>$�q)�Mf��Y�F|1K\N���7�rͷY��%���&S8���^�;Ն�‹��>tjr%�z��5@�L.�^g�&�]��%�U��ѡN�B�r�#R��Tm�أ���֧ ��i�t�Y�8�;��Vf� ZW�8��]A���ga�+��#����,�YD�*��G+
�>���4�9��3�.�fkܹ�壥�J���א��ۼf�Ff7�<��_�{�Y�1��كЀ���@i��fQ��7��&�J�h��rl3����e�+�1P�̴@&�f�BH��3

�&�0%S��̱�櫦���M*ӻD�͙�����&��m�I�ޤ��k�r�6�Xߊ�k�ft�@xf�Xl�
]�4rR�!K<$���ѓ���rc��I
V
ػͱ3�pj��멪A�h�s����e૴X�WɁ#:���m:głl����NG)���)�"j�_��9Ϧ�ے�#�,}#İ��F�U8<�*��WjE���I
6�AZ��8�?���o}Jħʁ7\[���h{��!sj@�u�b��uk&=�`.��H����i�Lʇ�k�U����hLN��G�6+��Nzc�T�t<�<�@I�2D����S�?���ƿ����I1=sl|{^�m�B~��/���{}^`�ت7�&�-G�7�	(<ĝ���-eoȉ��9���l�4��z�o��U��nq��LJ��H���{=!�kx`K���8=}/ �߻��g��ۀ�QJ��{^���O���!e���g�Z޿:SǕ�n؈�ҍ蠡pI�l:��e��q�'}�}�_���&[����bTda/#�f�Gb�#K���87���W�k����K`Xs����h�0�J��-z_�7�f��O8�c�~�
^ۖ�d���rπ��A��z�e�P�g���1�ۓzHH�/P���-����ށmv[�'׮�<�:*�OZg�G�b�˖lG�MyG�V�uT�����)��Y�
�1VEMC�
�NAJ��R(���Q����M�}�Ęp!�%9��rx��iӕ���ݱ�U�y�X���'x��kE�v����Բf.��N��P�
��i�0��!��d��p�hV�49���b<˧j{�<{oJ�!�t5Y�{8%Ŀ��W��M���W�6�ZUԏZT�70	���Q7�	�\�oU�9��O���|9����֦��]~��zNp��}�IhUm��qp����d�(�]|�z�ق� q�e�Ȗ�>)!���'��pTf�	:�q	�,�Zz�|R��0����g�9+�tF߾[��f��H�/�F�N�s�F`!sVLj4(��Pg�ݔy��ef�`�dz�4v�����o�T��fn~E��o�R��,	F�Z�ʭ@G�M[�ȶ="WR��k�q�6�o/8�ig����Е��r�.Ҹa�)�
�RQ�� ����W��@��n˵��{дq�[�V�@��$UˏQ#���`����`*�V]�F�f�m�9��'�$�`h�%�����2�/s�r���6
��|\ҫ�~Daqo��T2���ts")˴�u�r�Ҡ0t���G9�q��yHsw��w˃[�	�^p�9�}-�$�v!9p&����.�m�U{R�Й�Z���E��M��<	<u[�'^�rm��6�q����z��X�Z�s^G�s:�)���|������@�%��n�w�<�6�U͹�鱺���������ņ;�m��`'��	t�W<Q���(��IWܬ}����������&Skm��r"p0��H����@C�i�]"l�u�w:�<yZ���X��k�(�s�C^��ؑ�*Pb�gĴ�S�gB��ݬ| ��~`'����A^01���c�0.���,m��~8�NJ�Jr�c�?��B���[��a'�:�鱤A'M
�'oWZ� �2��
v�t���zKn�FP��f��"M;�γp�,�q�Q58$ɶ	n���>װtrL#�:����O~����l����O  �_:���0%�u�$���;����F��Gd��٨��ofW�J	ǃ�G3�
<��[j��2:�@�F��V�C87��j��Q������Lq��	����T�%ʲ�/��ex�%
Z̵L�A�f>nh��%��p��Ți`;���hN������)�� �ý*J���!2}1��}�S���3��G�.��/�;���FDS?��7���הiyx��dy�9�l6*m����݃�޶�L�v��C��f�E٬W��WA�մV����y6#�&3Ҝ��x��G�l�RNi��<ɬ���L���O��a�������E�;lԴ�4x�A���n�U.M����0|�my��@ZT�	�J�2J�)���������65ҽ�KP��IwU�i�R�Ѷ���|��i�gVȩ���O^���g�S�1g)� �R�}��2���:�?���bޢ7�k�g�{�R�~����2$�	�UP�.8����)���I:�<�'��4�����((�w8�M���G�( =t7y([.��	�$��P*1���Z/?wO��3��>ue�kƒ�]���x7�����{�8��e
;I�t���:�Y����GԷ.#QDX`9�&�Q3o�̒#vs�04+>g�Y�r�3:��'�1H:LY;�"��*�H�#d!Ah���[@g�5��?��+e�@-f>ij���KEO�b!��,
��;.~m��X��
R�(��RjVy���`��ȧ��y�;�Ģj"H�
�e��q��b�YX�WBYa��� ��|���|��ɓNg�vR��c���&[6��>!�$�C[�l��d�yz-��3�԰�o�7��fkA�H��oa��LwU_\3շ�O��=O�;}`��C��1uI�"Ӌ����<�DЩr�"��G�-�'L��ي�:��3��i1��i�8^z�������F-j�{8_�����*�����3�79�=�
Hj������8�w�1�A�:��Zy'�b7��H�'��e�J��̖�C�Y'�BL�a�nRN�l��
�}���ZJ�Z�gjn����)�ȃ$�X<�C��t��E�+-�7�֠Q��s8H�G�	�IUG
�jW�F�q�b�$�*�z����
�1(��GQ��$�����"���4Nh�E��Y��Ɉ�����T(�t+�H6�@=�(�o7%\�d�B���}x�z�{�ڳ�Y:��1����5�QH��Z6.E���Bi�K��Fa�r��פv:�#"��t;�&.���q�J��դ0 \�����e���٨2�قD_�r̾I�/т�4�����Ĩ ��Du���`��T�A��Ӥ.#,�8����g.��0��$C���ٕ��$�K��7%�[|
�h�n��H�B�(b��Bx�S[w�iΕ�@\�hr�܈w:
����&t���~#-EזoIS�>����NSa�=��b�1�� �HU~!����`�6��Ǿ4�j$��c웷~��E�I�Y�Fg�oN�>�sC#R�F�n)���2ݥ9i>:@��Ǫz6�VXǓʈ������iR\E.���iaI
��b����;�V�n�ہLy9I�㻔�?�ږ<�& !a�|�k�Dz�T�����@O��V�:L6�e��F�e��kοwş��?Rd1�h�F-�!�3Sd�J��TT��]
r�	����Y%�6-u��B'���E�.%F%����]X��UPS�)2�E�)8��Jf�%�RMq��L4򬘚�rQB��M��$�)��+�q�Jt:�\MR�h�Q��4y�ހ��a^�nNQ�\���0�6]��"���:,�[3p�G MMCߜ�D����m91����,Z#8�)��K����F�_0AJ�'_Y�6Ba��J��,�E�/��n�`{1�/���"�Y{% �����0�s����g�-Q1��E���|ӛ�&F1����#�֚��֘t;���g9���a��xt�3����!�1m�r~�$�g�z#�_�#��g7�`]�Ĭ~�
����Z�W��vs�|C�|Iėj�*n����N�u��[sZ�U��1�.|s��A.����v�8��W��,�Jd H��՚=tN�tX�s�!�R��w&�"��G�:�֞,����4���
�t��d���j(<�9}�M��:InJ��L�z�Y�¨�Q2�٩K:N�6�A3Ay9²�Q^��S���B��Οe�ӵz��v/<�sa^97'U�W�ٞ4ٻ�ܢ�ܕӊ��d���C���:v��y�n�KT��B�
��m�yHW�2�{d�����#(˝k5y�Ŧ��qM��Ԩ�Ac㳸):�
/x�@(74�����RxL��6@�a(�>sO#�ڕ�+�����D���y�
x&���AM����X����{F�)%�\�����P�s
�N[���?��&3g�)$O8HJo��6��m�G5��6�;��v�	Zm�6<��?�]@<	MV�mP|��9���l�jaxՔ�C}��w���/p��sǯZ��&K�JҬ�5V�sE�Q^=��,��_��u8�\���[�D�7��â��b��
���p��>_�bU>��L��f�cJZ�Ň���[1��`;Ȥ@hb1E�`�
�"1��D��
6�BFi��]^2�6�!h��9
��%�	FF���k6�@�%�w�JJ(�邑+ԉ#��.��ާ��ρ��,׷[T*�ho[\w!���&�Q�T�-EZC�niF>�Z�=�:Jg�B}>�>���,�oI�x�?��3��¢R$��}��,@�xφjs�?w���͖�l�F�vu��\�~�&���|��U�w��IC�l��l	�� V��Gw�7�T3�#
�A������\���C�eŰ�'}'�YwĈ�t��A+��<]����9�$\+vO~YVu��!��fB�Y��v^���	\�����}����[,�z���;�4���u�t��aNp0KT��cቌ0�s���g~���3�,ڐ��T��� �1&�!���쳼D}�5z���x���Z|럛�z=cw�%k9��=�q4��������l0SW�H�z�[:,
lL)3�9q�<����B6��U�5�4Z�r�T�m6d1�8O$�,8��f[JaC_9*���9}X �ڬ�!��E��u����)m=�٧˙�g=]��T�h�Qx��tK���ݗ8!5�۲��3���D��Y�7��� ���6�^��-��
BB�3��G��	��`���Hm H�|4w���;����0�|�l���_�ʙ���a��Kl+A%��%6��sBҮ�@�D�eQ_E4@�uκ5h�	w�N�
�$��|���iH
P�’��@�U-+�;�ג��Z��_��Y�Ƌ���g#���au�+˂���C7�:wZ�*�#`��V9��2?�t�0���;~����`���ye�C�-����g����`�<�v�|�L:����4�H�w�%b�t2�\n�A(�Th��d@�G�����ª��k%O{K���ӡ�0�O�:��.�H!F�%������~��q��w/�He�)~)<�
A���g�x�`��-�b
��r��c�y�%�**�@��ނn���i���.��m�=A�?E�ڮ�?V�/����!V����W�r
�6��k����;��1���9޹3(_,g�o~��kȩ�C��-牺,8�]��|%Ѡ\ǷK:���യs�)C'��^�ٲ��h�(rC�����V�#޲o���ɏ����F�
1��l�5��w%�x�~^�����o�YaR_��2���?�/;�[�q�e��kig��tU��U��.�]�Y�k+��0��h�Q�ⲧ��faj#���Jֽs�f]A>6��~�u�7��� �`�q�ے��[;8]��xв��i�H_����|�l@�{m�P�MK:��֎��LJ��_N�.;@>X�|A�:)�G]�3��<����;���o�P�~��O+>kmA�-��h�f��Ct��}:���*G�vI�f�@/pO�\y�+u��C�~�)i\��V��/�������;s��C�S��>��rGI����Ȉ��k����d�-���lV�����iC�}�W�wIBA�{�E#�,���r�bt�wo	޸"�\a�z�?9i��4}3���S�_�t�vH�M!�x�4+=E�
V����_��Bg�<:0	F��e�-T�IW�4p��������'��������׿�J�?8^Y��q#?6R����W>>>�����^�|��B
�
\[�Z~�m����tg��z��G�nؘ� *Un^��v��l�No�V>�Խ�|�y���_/k	+����BK4 eԋ� �#���K��bQ�C�"��i~���1�Cgq����M��,*���"L��>�_�a�d�ヽM�9��0��R�=�����������;���69��A�G;qx?��^ަ�ӏX'l��߹�'}�@��9J�
�{�z8|NT�@ib�qPxg��*TY�6&E�;�Oa_Y;�%'�7�{~��W��g���]{l7Xw��ʫaow��8\}����-�=��vp~8cn|�����靽�=K�Jmhf⸐��b�;�X�Fٷ���o���ʧۊ�aE�f�Y�Z߂�Y���k�H�NB�,Ϯo���6'8�H�����>5p����B�qyE�閫*yF�i_B��j��z��Gp�:}��;�Ҳf�rV�F��Ӕ�s��(;�x����4`M�a=�U�nߠ�(`�G��†jvG�D�v�4���M�H�E�j�v'�z���k�@�*v�{q��o���\J&��#�Z
���I��5F��>;^�"̎��[�>R��q�O��5�yf��j����9�V�/�֚=��B^���43%G��Lu>d�|*�ˀ�e�s�}o����GgT�P����m��Ux��ܥ���(���+�}c�;�>���Jx6��ɢF&݀��p��CZ�}N|#f`��]0g�қ���:��� ��D5����6e�,,�LF�O��n�nCe9�FnGͬ��%�7�jzT��MQW��0��T�3�5`�¨��b*��{Tp�<Nm��h[s	$�%�4]c]�`�H�e�p�u��J>������(�lA�� �auN��$�灰�
��F	��}��H5
���BR�$n\���Cc�M�A���T]}�؎1�Nro��Q,�甆�8J���˫���(8��|�d��%�Nڸ��9�q<4���V1W�E�%�Dr�Atd�F�io3CH.S�b����B�xCH��]f�Ly0�u��ʬ�y��̇���>,	��A���^z4$M5�9����	���}��J/>�����h<S�
���ڬ�o�WI��j��>��C��\1	ҎaJ�}L��F9��B�z"bj��`��X����F�L��9��Kqʏ�I�V����2Ɍ#<�_�a�8_�C&����;9e�P�=%�Ch;�ȾP���cB�k|j.9hg�$
ܙ�#<�4񦺤�_=�����sd|fp�G�Zm>�U��W���q��o�H��(8D��4�����])��'y��!�0�U�� j�W�������*†����C�g�T�xzS�柟ӟ��pp<o�����%�b��%�Ou1���sʺ�V�2��F�[�b��.���
!:���q�p5[�9�HA���eB�r/��#6�v�{6P
,;�{�2|�}Z2��c8Y��}��|g7x����A��&�xxp��ՇqL	`�t��m�S�p��Ym�+/�仔������]�K��X��m|r8"MP�h3��������Ƿ�(���B�11O�d���x�3��%�/!��,g��Yԏ-�j�"m�����k��J�kGq��-�|#����t��	E�[��[�a%HZTK.���bV�
��b�J7۟�#��K�p�jU��Ϙ��T<2��C-��,t z�F@ݲ|̰j�[�ߴ���m����~|�P����0B�5�c�q6�Z�/孖s@?mX�Yy����2έ�a6A�ȥSV�E!�oA���a��%}�Վ]�v������G?]�q1��F�zK:��Z�B����<�z��t #�?�pױv!�Rt�����{W�vT���7�!��J��v>�
��Cȫ��o9*�Y��0�[���(�X��3�]ժ穣v�,\?��m����d�!d�χ"8��կ�j�^�a�����I�WCK�ՙ�C��b:�DW��m�WD���%��,C<�_|v�Oa���춲�=?V.O��:�UX�2E�@�.3S����Q�ѡ��>��U�{��N�6eX��*�����q�0�e�j$�A���j���~�,g�>���0GJ
Z0�@pk��HOh^>���5��Gv02Ќ�O��O7�񷒌G���!w��
E߷�YǾY�I^��1�K�ht{��X���}�^Q��2��8��|��1��`p1�[4���u���%�P��eت�����a����mo:�a�L���k͞��.��X-ګ��'X��MoC���K{~|	��KKat�9�k����I3��]�{r��p�(u�iH]DP�
A�,�����h�pD�8�ޒ}����Fq���Z�k�;ˢ�&Kұ����,�|��OWa~�-��ś"#���MKb���+�V{�)�wUp��a�~i��k��l�Z41z�GV`Ua�R>�}QXW��)%��ϙ�ب#�BG��-��6�o/�i_e��N<�|)���̣�2���,��i&��v<�(���Tq��*ٽ�Q�[���u6��yG�{+�m4{�;1ݺ��ϷBL�V��(m�w0�4�(~>������UQ��#��k�k�'���o���a6<��Zȳ�B:�@�*��!@<J���&��������Y�NP�؂W�P�;
U�o,�.�^�3J�f�J}c���%�x0��Z�]�f�`z�ЍU
x�R.�4�[�*�,z7(Z�S9���,e'TF�}cAX#����*��:-�*3��0�1Lu~��9�p��R{Z	m��%�F��������ZYgEG����UQ���ٽ)�B]�p�lVg�>\��c�!��B�/L-����Me��,z�Y4�SHbM-�d���>��e�AY�H�
S�O��񨲍Ƭl�[�[yہ�S-vֻ�R/��1�+���f�k?]����9H+�Y#��[u�{#���2z�1ѷ�v��;��a[(P��zNhU��&���vv���z���]�]���ɻ����}�Q̯A�s�^�������k�Fz߹n����d:U�>��<r���(�V)K>��}Y�@�X4�Z��,�AEE�I�|d& ��`�{6*���Ȝ8��{�kd���}:J��Z;>��T��Eg��$�U�oV�g�����#�,��[����C�d�����:
-Jc�:��3�?��9!	�|O\�%ua��'m�٩��f3-��-ƻ�I�>�Ώ88ko#3M�V���3��k<1�h-V��Yݮ�'
��(���s�47�H�[��31
G.0%����%���l��$��)pE+��3����������qw_�mL��I�To����K ��fn��= dv#��`9eB��羄�&�%�B��_-��lD9�y��@�*�S���1�
�[0�u���n�)=ٓ��j+0[~""F�-�37��AM#�t����ߔ%�T1�e���X���Cf�kZν�s�mx�w�[=�Z>P���4��&itPס7��*���~��)
�U�����r`fI�U:K�w�k�?�A�>x�m�i���^���~[��G�io��Q���Ι?z�}��u�7岞�:�9m�+���Hs�f�Q˾���
�;O�������x��Ɍ�5���m^�b���΁��2ۚ��h��$E�eq&+�EJ�F�'V�
 ���eVkd^5u�1vSw���O�?�:��v��	��,w�t�<R:�vt��7h��� R@=j�XQ��@�@�5{{�
�
R^'�ȕ�ì{��k��8�AE[�)��35[w葻��wX����[�=��
(�g������ibyn6�<�4�Ǚ���!�V�F�c�ή��tn��� ������;���JD1 �A��ӱ����g
B}�������v��;d�1�GOy�=������v�H0�]mQص��t�}_�ћшR�ׂc\ж[+�^}`|�^Y����U��nF-���M���(���;��梻�m]���&?t�*|���:6mM�xͿ���m�zª\R�u�V4��Ͼ������n�n���bF�z}ZP��cG��'=Gi�l���,��U6@�Zk�:�{��u��d8h��.�9n���M�bҡa��"��c���ܩȅ����)��M!��K���㝞�_o#a׋n��9_�@���.O��LU�8�A���]��9އ��r�]Y�[���ْT�4�X�m��'�:�C�9$<�3H�W輤~�ݰ�+G8VO�0|\��xF��c��;MՍM��y���Er��P���r?P0�y^��Jh�37�Wխc\����֦Y��lT��o�����<��af��*�*�kۿ�����`Z�	*)�/��n@i�b��\�.^@��3��5,�
s�+ʵ�o��D��Jd_N�7��x'�;�ǐ��S1l�^��D�Xⶆ��o9�ad�zr�9o$eI��RH�>��j:ڍ�"X Q��m˱�����u���]UxQ�cTy�Y���x�԰N�x�cQ�=����4���=b�ً�.�	��Փ*BzQ��ܣ(��pb�c'��~�~��#��9*W�������&����_��JT��I�v�I�j{�tTx��&.E�GA6�Q����^jbL�P�tTXs4���g�
��O���~Mw5��Q͈�v�L&�Qe��}��<ڢ�����۪"���z�C��07�e���0�)߹����ʇY����Q���7A�bTΑf`�����g$�Q��Ud�v��$�2g�
�8/�H���?X/׆=lCB饔}@���M�����	��+Fцȃ�կ*�$֭�����o�\z:?9��:Dd($�zY<�@Mi�������$,肇O�����ɛ�C:MȝcDz����������r����P9��F1�[�5<����	����o������;F����\���" p��uA:��P��ʅN%�:$Tд�t�[�J����νX]��e)��n���g��GO�����t���L�!O,�n
�P�ݼ��ok��+چ��i�?�����|��U��+�c*�e2������4��&���>9&"c�'�HYQ�v��T7�`R}�\����l�\���BlY&�^�`IZ��z��riZ�����Ng��-?C�>=$r�Eu(��Hx��|V.�d12�]�SU>̌쑕t�J���[�Q�:2�t��a���3�.䃳�I��ℭ��'�h#/Z#<�ϗ*�ɠI� >��+G��L�XS�� 7ΒǼ=U��d1�yV���P,�qw�[���<EhbM��y���9\����ʏN`+P3�����(ڜX:K2�f���d������΃��� U�Ӂ����ݧ�'��UVξ�+�[�uj���(�
�G�#ln5�7eK΀u��
X�,�G��l쾾ńZ;�c	S�b�BF�қ��j�����]˶^i�|ۂ�ݶ`�Z�������H���Q�I�1@�Y�iu���ې�cL��=�}���my.,D�/5��+`i�[���FF�/W�r����u�ޖ���c��$M�|[�7��W��"�
3�1��j�4�L��xc�R���['x{��H�Ĵ���S��i#�Z��V�jC{���X�8�)1fݨȳP†�.�9x��Ѯ�0��ٍ�MFc��3��~�/�s��\�����mb���ҪBH�_����
?)�F��d�٠s#^�vj�$��rk�E9
߰W�
��ft�?@�u܄m�䂁	g�"UC'F���;itm��l��dU/-A�ɘ�$�U��HKɨK`zĐ0�F�,����E�����`x,�C�K!�mh��;3~��������GQTY���pe�YʚX��!Ӝ|g�=��0��H0:�H�Tz�9a��_]��2�߀e����u���X9��n�VF��``'-k�.L^V�D�A�]����*��v��G��c�i�qʩ��=�^�4{�p�"��ͼ�\{Z**�RP"���NRZ���̽��/�ԇ(\��/��oEfXA�!@��N� �4�ko}7��&&�VB�iC��q�[B�Dg]�����w%U͞��:�r��Q�|��O�gXѾ�����o5���n��r�+�����QosvWr��D>aR֊��JPhdU�䤫��@L��@q8ή����6�g��GpW^������U�s�D�T��9*�G�e;w�w�%K!byx�YX�T�X�ͭ�*+G�G��B�%����ywA!�A��)�v�7�X�>�T��cƘ_��O�Q��A֜E״�lևX��`�wLe ��`�^�ɇׯ��`�6�6�"��h$�n��=�TvN$�:��5�V��
�f�;�̒�2�J5Y|��]Ԫ��G����7<2,b���H'�nQ��)R�9ka��Z>����\��L�I���LtlY�G��V�=}��VQ�
�XR�xM9�3ʔd��1n]eЃ�.���Iѥ��y��\
�WR2��kҩ�[r w�r �@�4#I���)�����Q;e�Sa3xi_��%��)�7�)/{2�w���/8�*��2����Vz65�.˚&�/��BvjH��Tʽ0��6G�١h�̑޷���;��[`���R���\��	�q��t�(�޺ɐmL��Ԡ�l�f���"_�F0ē�Yc1���mr�V+E�J�An�nMt?9�
�#q�炤�f��M�;�]QA���X�[�GB#��YBH�8 �ֵn.�4R���t<���J�W�Jo����E��,b��|P+�}`S��gK-H�����X.���V�]��U�����n� ��sFD����l��r.�4��뻼�3ߌ��ϊ���cs8�+��L�t�����������	v�wꜼj>Ŷ���i��S.����оK8EϿ��mr�3�8"$�4\-�FG�J��&�Q����Z5
:s'5.�8�8<�q����e0#6�	��-�t����(�ő���Ngvމ�P'l�<o�4m+x{���qӝ%GHK}M7��jnT��g���A�9�oGG~�ܘ�Y����GsW�G��IE�,M�9�r�-"�{{�
�ˬ~(��r$BU�jTX!n�72G����_�J�|��wW�Ⱥ?�X��I��nͶ�n3_��T-e�2^�d�>�4-Q�Z����,��=�F�D��^^!����Iw��|y�ߖ0óp-�V �r���#fl]Oc~�_��’T�EI��\��C`�~�͎�����L�1%i�<��z�ө�;�"J�����e#]v�U#��ɭ��$)�D%��"͑4S��w��b��8�B���#�vU@z�
�J~�@���@h6aNP0p2!-��)dP���yg�~»R/մA�H��s8�"$��\���`�L'Y�f�ƅ��O���ӂ`aQ��Ӆ
M�%#ћ_����珿��5��I�淕i�'���[������EYO5��^��!ӯx�yhy�4�
��
����˃���`�A���1܍J�t-o��vj�3EQ~�*A�@ä9Z�L@�l@�b����ć�ۂ*)�O؆^^^�N�C7���k�7*��OsJ��5�4�فG�l�6aSUi.P��̽���s1��"�{�A9��L��-s(D�|�5�RD9'm�@aYp϶��6q�I~G�,�e{�ۢOD7X\:�1̩�/Zdyޒ#d&��>p�\�n]j	�:�bi�	��P��yt��������B��V>��3��z�� �o�y?#��5F,9�|���U@(Ao��-�`�I����?��-o���v:�	��€���&3��TMN����5׌���t>g�.�:\����餍��'nG�+O�z	�[H�탰/s��LcQЊ�mN���;�+n�yZ߶����	�Gz�^;�/ޡ���./7}���{g�򜓥�d�'A��+ly���ށ���4h�vm_��Z{`��ZMr�M�SD�0JFl .=Dxg��MN>J����r��[ɐ�"����J54|�ũ+d&����R���v�u����9$�+��3O�-�I��?�u���.^
�u��#�!�k^"Ԕ�$�f�)��-�)?�r#]B��0��v�>�JJ��lԇ��?�O��-���y1�,?���-+�`�
�@7����\7��ȯ�G���F��$�P�7_Q��S��T����aRÚ�m�UoS��R�a�#��U�*��f!+x�]?0o��P���Զ[*�ȍ&YQe�>`<�!2w6�xC䀌k�T�:�`��V�w�o�q���Ċ�/R��{���'�5�HIT�g��ˆ�řn��Logx�5ooיx2�4R�E�9 Y�v���4'0nr��ؐI��͉`��\���T���㘒xRq)Mn��'h@k� :Z,Y��%���o��]˙0�sq��5T�-Я�������|2g�'��j4h�XW�˛��ba���)
O\4m�d�����W�q�	-��pѿ�K�l�ݞ���@��Mm
e�qs�շ&�%
��^��n�p!���-y�H����2x󺄝	�W����g>�6aײ��|��,s�v��.�[I�K��]�-10�N����J��iu����úB\N��!��/uʥ�3�����%E� �GLLK��`G;m`G>��[�m��G��R�%�E?��p���H|�!���±�cls�/H��N
ϒ*X��,6���Z��r�oڵ��H��-K�7Cn� �l���N��Q���XEj��ba�ٲ��&@�=V�ҷ� ��Ag��'Q�;
�ſa�Q�`dI�`k1��\�z/�^k�E��n���e��'��G��U���#�]I����}��L,��͏�G�t���O?��C4�^/�E�r�1�s�7���-�0���(x��s^�]:�4�i��h�~Y~9�J�aefi��r�]t�|u��P�Jӫ���MZ7r���Ka�v/D�[YzHd��.�!��}�y(�_yD���:�
�>� �QF��AZ.�����g*�L�\�V����C� ����	H>�q��/A��P�*(�&�/yȕ��UBG#�]b�F@'�g����cg	˞��ל������[2�B�]�d1M��-9��\K�C(ī�5���‡e~�N���X�k�'�tIE19�8�~9ӓ��Z1��4����:`�ܗ��*86�R�hzl�x4�:�BܽP[�/�H;v����fZ:N�@�"�
\N������S�Y�6	VZ���갅$���6mmu�K2���PoMQ��Wk���t%?ݡ��.	�+�c�+"�PTUh�����:�=t�M\��E�!��P1��H�c��z$�SH[Vُ,��L ���l i�h�̝a�� c��D�BzvU���J���W�հ��Ĥ|�S}�^Qކ��V�>)�qĤj�dYt5�e[6�V��=�tU�j 8��!�>:�H����8�2X��f�:*c��_H"��U�����V�%�X�E
i=h~�O��Dx$�/j�횳��چ�<��O��r^��D�UꞰ���p_��`��w�s(pG��Gv�$0�z��_1�ڥh������!J��~�k��W~A�U2gh���ܰ���k/�l3n��5
s^cּlX�c�U���f�X�4- �$�����Z����}IX��-��V��쟮0i��O�?A����{F�A���F�"�"`Q�i�V�|(�9��8�t���H�mOW��ؔ������]�q9K�J�tG�x�K�YΝ�x�~�>�$l������*ڧ�o�;�l�>���Ž�:u_��~?�n����(��JQ��P�;��dM�`�YY�T��Z��?\��踧�����i��C�dwАl�w5���Kb?gg8m�r����8n�H$^�pș�yB|f��E
#aC@�&�y�a�*>.�fP��|ػ��T!>��H�A1��7b���X:��*� ��.��;n�3vH�*����[�=?E��З�T�r�F	`�!q��	
��ࡦ��
�v��c��x���'[}���������6��*!#��7�S瑲����N�M���J�S�CHX��u�h�lc0��;�&�6Ok��A���R	����YG����d��Fc�!�
��\@�R�d�,�G�)���rI;�\�Y�$*��(��hؿͱ��#���)EJ�C7F�*���d�Ypj�y5�4�p&�r�&rN9B��)�vF�]�|	�I��;��,C`�K�&�PG�S��#'�1�3�)����Ufp6�j��U1!�Z.�A)�˻/�~M�::+(���k(I�cL!1� d���^1�L�vP��c��N��l��$��2�>���!�m�+a3������Y��S�]B���Q)���3�;D�Ցጥ�̵��v�)�	��lM}�25yj�%u��?+K�6��ģ���6>9� (��=g^�r��YA0o��T�E�Q��}E�-��-�]-]~���B�+,�D�#a�U�z,M�yq�,-����3��5�Xf��8Y���{�;�[�O;"���L1@}�]+[��[Kvܒ�pF&}B+�:�:�n4 �o�K���F9���_���������LKkG7��~5�}Α<�*j�K�YX�呛B���8�H�t�U<��.((!pI͖����\��C�,�#U<�%���b�F�!�l������KW��G=�ד&�{ �#
Je�h�/&Y����\��fjL�8g|E��&�i�2MR���t��M�ݠ��u6�����Q��h�c�3�匡}\�*l
ZI�]F~Ω^a�wC�mn��F�.�b4T�I�nO�*�g�?kW#2|5�#���
mBsm6��^>��fz�h�2���L�>�sU��D���4��4��Y����/ZbQ�'�>6;���e��8P����/m��z�4�Q��_p��	qtIbZ�آ��Ra'���2p
��*�_�W���#�bc��~�X"~`�ɪ)岮
������D�n����LB+i�:�j$�)�=b��z�n;�I@[�h�W�)�VyҲI.U�|5R��ʬ��c��#6�i*�D�H�<��'Κ�N��d�@�wl)T�MWf�=��m�Qo�=��G�F���lT9n����l��ÂҾfe>
C�Ǹ{��;�h�r�_7�bn�à����81�zyR)F!	
|��fSY6��:��q��Nma�.j�&Te��{�D�Hm�&�o�ՙ$Nd�I͡��d^3������N����⛁_��W�Z)�JR�]����A��h*?�
��Q>63f�����Nk�H�=@�ir�G���^���KB��%�嬒��-� ���1$�C�X���\s�D.*+!Y���@��>��/�[�;=<���{jmݎs��V���v�rY:���d�o��PQ4]F9���
�/X�3n(��0�L�95fW�tg�eD��5N��Ƴrӵ�-�-�ȥy�� �薉:�Z�dQ�Mϓ��a�����<X�l�"�pY�-�L/�D�&ؕu�|ъ��%�Lca�m��hȌz48ep�ŭ(Ay.V�,s Usذ�J`L�0{��*V^Dg�]q9�����������Ь�'�S�{p��mL�gS��4��kiS�ƹ�A��رBY�XQr�
‡*P�1n��z�bc���+�T�����?_�uʯ+�<��S�<<�G��9ʓ��L�E
��8�:��0��6�}91���X�n�-~��ȷ�k}jz�O>͓O�?gJ߇Yz3�aR�U�s9�Α7��*h�QP��F�H>�
����ľ&T��q�P�ܾ�Y���NOX��tWC��Ԃ���Z|�(��и\dN���<*�Qѿ�_�.�E
(�\��7A�s���_�9(��?3)�����j��(����8���S�n��}zqN��͘�p+*�[��F�6Cl^�p\���?�m,�X���� ��fؔ���}��ҝ����45��f	cd�ڔo��~�[��ɞ��e.���[Զർ��#�_x��ݑg�)o�J�n�������!|S��Ði@���6��tJ������뵬JRG!�fS{jٚf>���d&J�!W��!�Q�m_�����7��m�?s���
��UA���ޱ 2m�A�-��{�����W���$�VbL�(��!�^(���ne�œ��Qiyg���#B��Z��ӳ�*.�Q�˹>�tH�(��s/�ܮ7� �{����=��U5-(�Z�_��Aܠ��E�l@i�q��f�tA1w�'"}C�4iU���oh���ϐ@#%����*K`�Z�Z��S#Q���57�h��7�Ͼ�"�hDNUrHB݂���I;�yІ���a,�>��lF+�5)͞Qq#�C��,6G:�=`Y-�zH��W�n�x�nF�jZ]F&���?���HݮZU����*}��a\Z�kW�[���O�j<>X]�N����*�.��v�)��{�5��p�M��qt��%)�@J�F ߩ�b ��Y���5�~�d�'���U�H�s��C�OAH�C�qUs=�3�c9'i�T@z����-���c��q4���K���8��_��l`� ̨r��X-�#�ImD�� �GA�xboe�!�U1N�?�g6�]},6B�}���E�=�ʓ+W͊�Wv���D	޲(�o�^x��~R=ُ�|���RA����)�˄�ɭ�~�/'��ܸ��K�u�=	s�	�4�=&r�7��@��%��<�����|v��
�/g%#
�[���"����EK�4�S�`>{�B%�����}�dߩ6��f�\Ε�q����7$��]7:>�{kL��#����W��5���h�_[2�<��i����\�*b�؇jř��X	\DnʘQ:���~*B2���2��rؓ:[�݇�zr04�dw0������v{���~u2�݃5�=�����/�n�c�҇��@Tߦ�<6�,�/�{���\�&���w���A����΃`� ß�-QtԸ�R�<�������r�\����vSPI��&��'��=~����G����FO��}���R!S�8�Q��9v�$�)�������䃟�4�u�;q�N�i��L�|-��)�?�9�G�X��$D�b�����7�I��n0�4�pJ�?�!Pq0��(XG�E��ɛ�p��l�$x�@�^�A�E�E�[��5��A��fO�Ɔ��k�m�0ȖL�{X�Y@w�+��C�F��dI
4��q��R��}���d��1��k
Π�QGd�C��"���G-�7�׉q|������l���ri�]M�B����<LL0"F�y9)�7$�yu
�GpXy�Ň]�A7?�%a����9%D��'��&)�]����)��\�ؠPT�U��
�'���F�o��a��t;T��Em�e�w��lh�{ѹ��y�X{Q>VK���v`מ
���ϯ�]�\n�딭�X'�9���`'L�(�O.Ҝ3�`_�kb�?��5�z'-��[���_w�������T��}ͩ>	Kj�iWd�/aW�̈́i�P(��v���<����۟��^v���_�.��)2�ו �La������ܿ
�\t�2�9�l���'���z��3k�ac8d� ��q�9#P��gG!�+q%��V[��Gk4��QٰI�x&V��}ˎz�h���͈�|'�?DC�V3�Ey6�e�(fN�Z�ܶ��z��Ʃ*��|&�J�����e��t��uw�P���,`x���%o�%g�i�O�xE��ul�.m�s�7 ���N�x�׷eP"���.�g�(Y�p*�BO��9"
g6���Z��h!��M�A}�B���лZ���#�V���T}�(��[{�l%O�!�rv].ɍ�I��C�,�N+N���8�nA�pO���i��ʔj������ML���s�l�γN�'����b���1�~�K:r��y?@10"�;•_}BV�,W�Eg�n���余_n̛ȃ�Rtv�p�Ln=A�o�
���*�����(L�>r%ѻ��nf��tٽ��3)GF�;�?����?�
\ƿ�q��Z�>�Y�]��~�{ͰɁ�;�_�u��ܓﴷ��@��ȗuZ/����^c��H�3�y�,������[��$�d����tW)����&��b_��:��s+{i�"��.J'۵|��M0z��_��'-1�Gme��a��.�QF)UUW�zn��7`˴к��Q ��ވ�n=1�y*̩� ��s�����:�����c�Q�\�
�����n&FWSa�+�6!�%���)L�P�T@V�%U�<qi������S�U��5w�A���S���c;��!ߗJ�U�}5�V �+yw��˛}5z��{;�j�02�8���_W�&�-@��/>�|�:�9�Ƨ@����^4r��ܴ���Uk��-�������1$l~#&GJ+���ջ�h�N�4aiTe��pT�9�<91)�^Ӡ�3�c�> �@=z�r%�nҪ&�1���,6r����U>���D��zj����r>�l_���0`,z
,��w�(f�$��FJ��6�L�Ŭ�v{���Un�y9/f�_�c����/��&e�ºl����̮�#
8�L|t��
�ǭ�u=�R�nK��L�Ɠ���3�O�a�إ(�f׆+Mp��ҕ�X.�h�h��{��%F�	ʐ�צ���'yhKҩ���0(����*�9�'n�6R��P'�4Y������P�F}+�-<��M�����	��W��D�-��Zg�)fg'�5WEy�>#��_ռ�F�����l�X�xU�;+�&
�g	�R���U
��f�>7�%��XA�_�XMi�1��~R~:�Z��a����ce�kV�ߵ�;����ڎſ2N��[���Gm���QW5;-�H[��)?��[H��9��(�K���������������[��I��X���]*�����XE�C�����FS�7�)�֢n���QC�w���uY?r�^ߦ_7��4k@_��L�w�0<w�N�	S��"�������JI��$6�A���l-�PH�k����Mp�
��8{��B;�01��UD3�?�W@��-�7�5[�s�n�
�A�iޅ�N����)�)�������!��f��Hm4]%=0c�}J�9�ʵ���:�5`�@�Kj�ٚ;�Ú��%��KJ&W�{	�:#�W�i.͡�I�I�ɱ����7�x�ӑ��G�����.H?�?.�p��=>�љ�����5;Kw!�rM�%��]p>��hK�w�����0�p3�p�浤��0��l,ӓzAr@�2�ո��W�<�b��{ΕUn�����B,�
St�W�;�K�����2gyE��s�0kq�xd^���Wh��J��/<�y�<��#B�N��gi
3�ϐ>�<vX�#*܁����V���J�H�H[�&�+�q����ݐ�:/`_�ȱ�3��^�"���������b^��7����R�Q[��-B!MY�
�We�HE��j��z�`�t>���S]��~Nڂ�l���}%�)?H�Rt��|�:�؁�[cX���D�[��_�_3`�S@���F���r�L����@�4�a�e�g젖����9��P�|�(�6�˱_�Dʧ�#��2)ǟ����`9�>��'�_	1��[�^��TO�[\�[Hw7�l�3��IPks'!|�o$�W?�>�k���&u�B��/fՉi0Ox51�4?9!�<�µ��z�0�EJa���W�V�I�i��%G��#N	��Yt��^���sH\͉0�S�&��op�"��!�\TUe��F2gjCȺkG��٦���6�y�Caq2�8�1� �c����)�
�7�'��V� :N����B�hs-�s5�YX��-�*��A�1U���)l�����Q���~�R�ҡM��Bv}#������b���u��YHx0�tVxep;�.@mE�U]���

&�Em����(9u�c�C<
8��m�vp%u6�Bo�KiY�,R�ђR	}kQ�r�L��rH{�!��e����d��Ze�4�b~��:R�������XC,�s9�+�.5�[��{�;=���ԧE,lE-ɛ��_�A���n�p/h��Ⱦ����0;"O�D~�C��8����Hi������2��R����tCυ�U��GZ/��@ޖ�o2U�FuO]Qi�SG��B-L<x���w�V���ʧ�ᨕm�������pN!.卉5?j\�����x���v��Ju�F;��W]j��� �:
����/�ĔN���Q��D_,ʇ�B�!�D��G�Zɑځ�#Z{1��d�g����E�>����N��_
+R⢜XF��"�8$��?Y$�6O�Q_�Hb�7���zU44Fz�%�Jm�}Ǒ���C���ޛ�}�C����b��81z�b+4���vtV{�	Z�<:�O�v(�[9��J�.���;�0F�qtI�m�DI�7Y$�vN��xO��Dd@�Lv��N=|?���ȸ<���FS�nC��)W5�
h�_s��4bge��A����
�V��ahWխ�@��z5�E$C���YVչZ��+�w�\3�6�P�̞�?��I��N;�1��D�ceF�?y2#���ڊ�$��zL���[h࡬�!��ѱ�ƭNj��ʋ� �)qW[�TN����Q\$GY��J���'��<2(:k)e�2k�ЯE>cO8��~�y�M�]����o��AxӲ������BuӬe��ç������0��(n�J��2-92���3��$G���<M��3��S4O�Zӄ�g-�����
�H�ѓ^_f>ai�/�w�?Zk�bvQLP�W�X����<�`��
�5W���9	��Gi]P��p�z1{�ō����&\ȡ�x�S�--�6����#��'G晰(͜հ�5M �t��%ǎ��'�$�F�Y�u>Tq�p�if#�<u���hQ�(�E���1���fo��o�|N��������k����F�vNo,t\�B�*%`�U�=}L">�y�L\��Tݔ�2*�O��L��0��@�x%��.j���bV����} �a��y��g�ǂj�6�=VKo�Ĥ�!j�nh�Lέ�cu�YO���vOՇ'%��]����A΁)��ØC����S`��]! ���Ae�5�Ӫ����o32����cb=�ɓf�������v�S�?t�y�HL�.�����pa%�Cx|nG��o�O���)E�v�����i��u8�b�bI�lqF�ͣ�7�)�/�K�;@TM�WL�ŖI�
��*���uN�;�6i�%�E.,�6���DF�,�%�M࿥�T&r]
�#ĉ��Q��fGM\�*
��-i|>�p���^]�W�Qt�(�]N���V�ۚ�(1�p������c�!�`6�:b~�o��.A����4�ڇ[����5H�S�?ن�x5�`N�&�N;�p����t�O��ue�R����ZC=\��xw���5a��u�ʲ\Ѻt�?�>K&�\�g�O�D�`�	|`������nh+dI��v�ޜ
��5���x�xز�u&{wg��>X��@��|^��L��_����Gp�I�
���0�ӄcL�BG�_���6N��NE�ک�{��Gn�͛꫗��gd�b新��4P���(s�C�VTn%��R�G�7��l)�����W
a�tC���;-n^?}<o3�_��@Aܶ"����Rn
�'�*���_����A?�cM$H���X8b�`�l�����
�^����������ɣ�_ �F���Ƿ�F$Ǡ�R&%�m�X�B��Z�Q�L�4/2����;�R�`l��fA�%$ȝlt�G��P,rmnz���i&I+�#��!nX�N���^L�l�sz����\��_6�4<�~g���m���t̸p���	٨z,��(��%��/b���b�{��&�dg��&*���f+����q�����\���%K���9�8�[��OuܓaC�1r��۴#���`U}�5��	�?(|�/8�+��u���w�-	��8��mg�hw��j���d�8T9�̊$�S��5dQ)���9\��HKx��ĉ�>�k�=hH�7�䴅6�[�l9�EJ �5v�l˕�-�8eKp��lÝ�_\#���U���Š٤�
�%a%\�g{H0��?���;�؏�b�Z|m�?�{5�i
T>��[�ߴ^qy�,SKwumG�>�.}q��"��b@>�V��
��S���FV�o`�@>B�x���42oI���6bjN�|U�^�5�(~'����W2O!�A돢�ZwNV��<P��Zx��$��,�HB��}4�Gtb#�$>%�8��Eq� �?���|{
�a�F��ޱR�ﭥ(��tq����M�%�ŝ��+���������U�Hn'��T�QH�Tý��29C��B/(2Ð����p�r�g�Z��5r���fxyy�,���JGf�m�Sj�d��سA`g�/O���'bTHT\=��SS�3����T|+�
P�5�s����e@��J�˹�Ԭ��O�mDi�P|W�����
ҷvbm2�#�]S�S�����YJ�H�W���E9�ts�Σ�P��h��Fz2��;��?;��+��%�������0�e�t#ys5͍&�;�/�B��mZ���D��UzL�he�i�x�@�>t(t%�
��:��
Q"�H��T�6�>?ya��p��m�#.��kY9qޠN'�zk_��+��gP�!+�
����衪,�q@�eyW�W�<�E�VkmNK=��d�o��-o��Q�x�uYnI|+Dž�<nNݥJ֥�[?
�հ4��
Hd���\|m��x�;l��2b��Cv%۶Rhce:s�OJ�j�9���+g"J�d�CgQi	�O):)���`��Lj�7>��7�q���al%�)��,�9	p���sB�&y�ƪݺ�ؤ�ǫ��vz��^
�;����q6�:է��~�(D
�y��8f���NDёR��̒F�X�º�U�ܑ~���j�
{�8o�v15���ﳵ�>�tZ�cg�蹈AO�B�.�?S��X��@��{��&[<n�(EL
<��D�mG�n�}�yL�`��l���jvx��%HZ|�5�RNB�kp[!t1�pc�[#�������K.EQg|�n���~��u��n�(ua��i�*�ാm[��Ay!�"�@a�4*u~G4u��mj�8w�t�N�`|�x�k:�n�\�|���{\!����#̗5#n��#�F;��J{2�@v��x��#9�AS���|���g�;�h�g G
��C£5dv����|i�Z�4iJڜ���'8�-r3�d9�yvɭ��_]�l����!|/��%7/\ڎ�m�g�W}$�^Xc�x�b?_����m��
�l�P�۞p��S���z��:n�
��2�˦��2�pI<��ݠ�V������A�T�3@|Q�&(�}�V�"l����F,���\�//�S�
�n@H#�sz�^^/�y-����k#i�|f��%�l.EĜ�Kſ��e�"%�U�b����<�~3�gi��xx�T�ѥ��{F�3���!�[��}�B?B��j��YzC���Q���&O�7A��t��~<J���5p�����Ql댔�Xf���B��P1������ܞn8>1&q�@9���r�����b5�	kNd,u�+�s/��mz�[�m�]��	piA𱁑{N��l2��z�^�=�,Ӎ���s��V�"�U��܍��]U�����g�^"\�M����y���+�PY�
�8��,&f�3$�m8�5��_�.�����6(Ju���I.��	�䇫��7������}�b~N��*�_�'+��05�v�W==�&Z�����=�-�ǻ�؇'�cBv�j	ރ��:��US�r�������b]bo���:��)�?�Xgz֟��NO�w��z��M����qz����(	�[?�S�o?n����;��}�hc��+p�M��Hϋ"�;u*��Ios�eu�+\�L��A�싍c(i��u����F�ܺY�5'�m
=P��,��B��X1lB"hG?��睽��-+����8J��6�#]fW�H`�(�P��+Wª�1�3�Xf
W�x`�o�F�3��n%�ZH��x��\:�)1-+�4�`:���/(�H_a&�@�/�YV��?�[�U
M�6�Ǽ���d�����bl��+�/#G~^�$#��V��0Zl���ӓoL1�y~�ÑE
E"�soZUs�P!ה�|�KQ�������vx�{��co������<�0F�K���x5v�8�EIW�AP�fzG�Q¡� f�rH}����4q��|�V2J�j�^�WT{GeWRO��3��(#��>�;�j����oj�lGu����~^�|�����Xb��p,{��@��R�m=�Ŗ�N�v[���$Ao �+;����[��^�W�ۮ����ڟ�����U��Z�ըG�IQ6�|���(�[�Oޙ}%��lT�1�����_�~�S�<�v����n��%��]��m?�������T��`�����l\�?29&�N�j�VW��QKه�>�Q�^�EzӘ�I�����9a4
��&@�gqu��V .��Ԗ�F��Ux���k�9��I1��Q�̎-���o��J>��#�"O�����[y+>���=l��ag���I�u\�������v��F���M�-�Gk�����2��m���q�!�-�Հ����M���L�28�ׯs���с�U�;*�_t��k��8>D�D����s�͟��W-���ޭ]��Q˕޽�k?�c���E����sU��r��(���Z�E�oA��/�{����sRַ��YYo�9��0~wQ!S_}[V�*1r�wl#����:��W�$Bʹ�kh�bHM�8C�����qS�(;��dB��^��V�SrU�����YQ���?�ʆ�7ā�Ũ�j40�8(�&�8��%W�ƛ�@�<��]-D2s���I��rf�e�2�E1�`Nd۰P��1�jI
G����h�0�(�H(��o��`A6*���vf���I���gX�MI:�Z|�H�r�cDm��́l�u1s$[S~�&�?!��떙�+��`� Eܟ0AٵƵc�{p�`��y%HA�N�w���h\�{E���[>��=Z8�^L�M��–�&�.ϓѤ��ۊ9�)���\>x�z�/'�͓/�r/l����AѢ���aNZzH4�ɋt�ڽ��a=J'w��v�U�ү+ػ4�n�G�~��JR�
BO��1yp���Kj�$���9G���
n~�'���⑈frv.g�q�X#6�-N���6�m��)�ڴ98ۂ�-�ZJ��gܜ�i��a�X��?w��=ʑ�s�¥p[�c��B�Q�cS�r���g��E�RF,�n�0���q�5�4P.,\���̋�]U�̬���6��Y:��FԜ��n阥L����ud�NG̖=��z��;^	�@���(9��%d5h�$��M�)�M�A�+��%�.�� T>\ෂ�i��@d���*�o�R��q�"W3Z��3H1�mFh������?��6K�6��OP4p$\�A��R%of+A	ri8���/�H�R��aI��PĽ��¾Z
��J�'Y�
�{/�YP�'l�4^EyA��`!F/cuܚ��r[�k�B��f��ۧ�2���Ka*s��#3��y���gӞ<-��V��3w*H�h�V�Lb[rU��������TV�����Q�K�=��[Z��k���Pz�]A��[����CS6
"Q�k$\��[V2��*z�Q�ᚎ����q\3~�'��}۩�����>tk����XYY?��\���&O�Ss��'����F4_[�q�MB;���#��O�I+�����I�AV�ˉ9�����4I�)�æ�1�n��C%F	W�%D1��H��iV�lṠ͵kZ�ZH,��Ik}7��*Yҭ)�ݩ�_	��VS�B�zo���7%��p���=˱�S�UZ�94�8;���Ÿ�FxI���sA`��dN�o����F
�:gKtP2-�d�������������ư�A�g�UN4�5clH��|wa�	���[�D��]� �o��Z�����{�wwL�v$��-��q$�GO�4�%8�w	~�4#8 -����Q�!��j()Ї"�&���ϵ$���]��{[F\��}P�}F����!�a�nS�$峌�5ٲ����@"'�׀�Y9�
r�Cp�o%O�^�Jq�rX���&Io(�u@Wϔ�힘�ӱUڟBꞫ4�g�G��ǁ�\�W�]6Ev����#<	qEU�Zm�{>��Y���*�������q�	�o�Pϼ��r�u��#��E�|�)=[ot��Z��
��MYk�k�?�^v"ijFLB�� *�5Ÿi?����T:����N�'���
�?̣	c��� -��Vr��V�pUd��&�%�fH�Ag�[���a0��v\I?Z�#���|)/(< ��fx�nˇ�^�l4��K�M�f��s��]�w9}���)#�H���z��u
1��O)��$�0�W,�	�+>�e�Ъ��u��d<��ܳoWKR����_�ے�����d�'�n���L��91���Z��
@Hf0�X�$�X�7&"3����d�0�Я�b,9��$���Ŗ���	w�9_������S���q���c/ �kLf^��ڨ�D�LF�Mr�ld��z:��QZ{��n>��
Q#�1ȰRU~�K�xE�&��"J��a�"(���������X8�i��ozR�B2�'S,�3A�32�{�̎ 
��y77����"�:����5|��o�����xz�f�4�xݍk�{<�M�J�a	;+�Wf�t��9.!2�@�+�]?кa��_�i��x�)��Ÿ���~*+N���L�G'�,&�=I����ge>͒��=�~���r/�F퍶:,��N����hYd;�s��N�Fu���z:��0��-�L�PO�2Yϒ�bR
�=�;�Uu`�Y�##N_�-��(}]-1W�B�"��(%�$,���T
/�g8Hp���w�bGQX�=)_�P<�y��.Pa�qڶ�I^N@��\8�(OkMλ�L5�����ez|��9�ѽ��K˾�IB�Һ�:�/�N���[|pߟ�?J�{�eϙ
��ϛF��2
=iC�ı�ß���s�7ǔK&l��\�i��˱m�E����~���OX�!��aQ�G�w���i����o����Y��ԥ�v�*���y��UTz4��Pa�;�W�-*"�)��䖇�6yCN?q�jWPS����@�mVjoB9��+i;�MP4R"�EC?��f���[�NX*�j
Ȥޅ�f(�:�3���������ms�;����8����##L�%�G�g��r�x�ӌC���'>.��t�x������G�3�f����Ŕ�yƕK�00��9T_�D"K«�3�͘K�\I�:M~`���<�ᒈK�=��j��Tu�{ aA5N��m��P�/���$O�y0��g�SDv}���	z�$�i�C)����FF�s|y��o�O�~`}�F�s�Aa�7�2/Y0�9ɶ�<�e��!��Xs�'�)�Q��F�q���3�\{xju)�V�>ϧvMb;�/���y@R �8����w�z�����c�׊�ώՊ�� Âu��垮�I!�;!�h�������oԹtz����O�~�_�FgǗ��яo2ůf��H([f;=��6O/��9ֻ^�pO/�Y�{
��|+n�;�[b�v�\�hA�LI2~����<c���,dp���=#SAN��J�j����:��{K�„5���5�7�N���Q5��v�)i�UU�+��/�ENT�j@	p?Dr�_R����O���kH}�[V�rN�n�d
�ı�%��	�wY�GkfA[�K-��PSׄ����ZQQ�aDǩ���̌^i~���dˣFګ�ݮt-Rl�9�o���q�k�$�M]'��r���%���t���E���㌄������|����^Κ�U��ְ0Gݪ��kj�=��L3�� �5
�ڙ��J0��*�%�e���i2�D"�v�f�`�H���:�����{�+��J򑇎�v{��#��=)��+4�6?��z�m=V뤴��,��H�):��dB�R�^�KF_(��N�i1�!�1�O]�-��:+�]��l�0"�\��ܜ:ˇĶ`E̮?~H>6zT
��C��Q��-�7�9�g�ǥNo�e/�����%]��	��d��K^?+$�'�r�H��1,�i�7�{�Ԝ	yV=�A
E�Κ�;�j���^�����d<���ozE��ܤ�Y�R�S�T��z�sߎ�� ;A7޷&�s%L�1�ڂ�pEQ�3��TH`W#�=K�-�ݧ�W��W��%��.Gq��Š�q���b`z}��ի��$#�?�Z��
�7��|�>%5�m���&�t/��Rd�w7�5��h~���ds��Q��u1���s�[�7�
�sgynx�q���և}ⴢ`~_�3���l"�Ŋ��1W�r��_��
����݆k����Q_�A��a�>ڔH{�j�\F��y"~ܫy0h��*g>�	�y�/����V���
�>Wiu�X?�8�r��4'�8>���k�T�/�L+�P���_Cz��]�ǿ/���Px֚��Ho8cg׏	C��:�f�^gI%��[�b`KP�e�.���0�Y���g��-ɇe>Vi��-��̃�<Rޡ7G����ݤ�=P��@[^��
���
א}
+�}����S:`~�
d��/tO�_�J��3K6-?-���7ʩ�Cl��|4_�r�\.q6e�hk�=["޸�8���S�q�J�]ΰƽ�ﯸX�ҫ��%�B��/�*?�Sk��JJ�����/1��u�-9d���A>�C�!��1!	�>��y:����C�h4�t>���Y�����`��j=��i�Ɂ�XH�$����f��P��Y &�(d���'s�!�%T)����'�'X/��A�u��nWO`��A�|�E�C�d@��?/�B���s��~m��y����[����ίo�����9;���I�V�l�&��<^O�����zs�@�T��L>�4�ɻ��h.��m�1��s�`Ov^E��fd~���X��� �
k�O}	�],l@���]���cI��&S��IGuA\�j/��퇰����.Ձ��tN�[�v�:���DV��.�� �
��T��
�藨�V�Y/ֿ���$9��2��M�N�:_�h�m�޳j$d:ĝ�"Mf���ho�ˁ��>y_>�����&�%q=)���sB�e�%��|���B+w1H�u���T�#�Ç%�:�=tCg���&E���]��,���:�[�آ`��u����悷��L%���3�]��u��-s[/���|07���oj1xN��[&48��3z�;�a>r�B��՜pǛ0
A��c�7ز�rl�!хm�o���;$G���-R�9h���S��mx���*�b$�����?�w�۟~t�lu:������~� '- '`���v1�7�U�n��.EXB.��,\6Ȁ�)�l��������?I`/��xsK���N&�ӆ�
*#�#��<���.j�ȴ��k�
�7��g:���n�q\�	������ �^��y������"
\q�c
�w�(���a^�51\�$�I�5���&�\5��Gڙ�,q���Q�1�ߤ,=TK�"ilد�5gJ�&޺A�6�w3FEKX��bAyp�E~dS#�Xُ0����-e��Rkfȡ�A]�~o��rl���b����f1�Y�K!Wl'�:r�	�r��jr]+���.�φr1l���%[é 86�L��H�6N��OT׭�F���6Ґ���p|H���d:yA���S�<�����o�+[,l��5g���2�`���I :��JJ���1�5G����������_�Cu�>Ўw��9/إ+�W7 lZ�wz���S�:u/��"z�"���lk���hA�yA�� 	Ǭ���̢��7c+)ȥ��-�ҍࣤ���p�RH�殐�1�^�𰧏�
�d%�
�`&�*r�]z�kd:���Z��eL�̸��7F�N2�ql��8�C�B��J��P�L�*�Bө)tT|��R�Om�������^t{����i+a8�kن�P�ؓ��mw�PS>�珖#���2��h�P,7j�w~ҥ�91����[8�T��R��I�Nx�r�3jw]�
�>�m��z�G�W�<���l5u���j�ڻX0?P�-�mo�q��k�$*�
��&b���i�a�X�P�@wp�U�8�[g�y�D
��/A�%�R�o��C�i�v/a?$��H���+=6��ы�J��9�z�l��p
j�E[����V��U|0G>��h/Y/��^i6�qb�P����
�2}����9���fOj��"��LrGW1梎8� Q�*)�	��H�.��4 ��8��m�m��啪w���^R��UK�,���K9w㥳�WսvV�~g��΍��¢�n�鏮����3���!Ow���
’��{��L�$}h�%OO|���������$z58ʿ,��'��*0JB�H�V�y%���H�\�Xl��k3H:������q�e�k}M8���ت�(+��H���ܖ�wA���s�o���ʙ�������B�C����˾��4o�k|��W����o���J��kt���+;6
Shl�>8��r�:1�ۡ�*
�9GOB_�d�5�n�:��8�-�h�γ�y3�s�����A������d�G��*D9tP"DK+3�
����0�y��K�II1�`C�?��
�d�������'�Z��),�@	(}D''?[��N8����y͡��it� f���H�_rF'0�î�ъ�=B�ɤ1P<�uZQ�)A��<�_,̯ػk��Ė�ap�'>�`��3qU9sV__In��J/�&f��M�iK���r�/��[KI�f�
5��9b�ǘH��2+Q<B]�1�km%��z���E��y�Βcm����=j����yc�(C�V%�ӛ`��NU1 ?��o����n��w�gXWK���?Nq��?���Z���(��m9�w��imR?�=�H>��S�{~1��=�\���D!�'pB^Cd�sєt���`�Z�@�DjAy��O��A�c<���N�f�=hB&4Bf�62}o�3"�
���E�����|v_�+����E�lߖ'��#8�B�B��E��E�1C��ޙK6��N��[뇒��w��Y}�1gqX@����A&��0��ʝsP�\U����:�H�$
�ޚ���@�J�)<�T'��Jšl��s|2,�egoE�fM�Va�2��:�V!��8U�G��aFC�s&M�ư��G�l�k�:]hA�}*C �df�׈\!6�ӎ&�Z"��\�uL�oxn$@-��,P����%�lF��h��_�Yђ��aS�'H<�eB�L)�;ޜ욕��Qs>�w��F;h��\���A8`�gՌT�~�
����t`�D�?̒O�]3H��Z!]/�Kk�:E�ȁt��Ru3+��5�;�,��,�躰�fJD_�o�tV��E�5�cU��w�[`���3��1�x��yy]��&��8��%�t�P�L�T�󆊆�}��sS�Q��'yGq�|�#e��X|1��Y��b-��fN1!R<+����`,\=$E������`h۬Flt��l���+[�ey�ģ�����Og�b£��閞��oe����&n�U��$�A���Vs׊X*��Jςxf�w�m�Q{Sp��+G��F��R�퐚���A?{�����'�}�ǿ������îu�
+߮��j�ao|2��>�'�t�d�P�
��C��$3�����BW	kMZ�_ݕS'�d��B�&�$�h�~sxܫ�pEe��\`!Ӊňr�do{#�!c�8�m�Ї$zX��M`ĕ�3�}���+�U.} �C�ׁ5\�7�q�y�@O6��vc��װ'g��T1�e�@��d1�dK��5I����I^����0��ZTP]kb��6XNt,/72��}Y���(,~����㟟�x�ftܝ�Q.N9�)N�I�lVR��f�%RK�ܔ0�q,<A9�Y��B	1J�,q��OJ�È>�IYp4�}uB:�!K�<���w*��Mz_\k���W*���RՕ��s�g��O�K�JaH�j��T�?`݉�j��V^�Lv#�G����~4(��؝����Y>N��*,~�#��*@�;��w�\�9nG0���7U�#�r>3�����jZ�H��{�p����-��S�;�z<�oh�a��Q�lY��00G�YZ�#�+�O�Ċ�vh���΂���Z�6‡
�c���Q�`oN���j��+?�-�ru��)��:ր�-YA��eQ݂:,�%l�0�[�E0u7YN�6/�<$�D\p��5�N�NM��}�i���kSY�|h~����6�o�9wn��=�_�_��7�zR}��$��Q�\|m�=�p�����/
���!��Ӎ��g�$�7m
h_sv�w�~�[K�&+�f�%/dV�nU��"Z����`��|b������<v�V����~F�93��M�A���x�e�aQ򍢦Xb�
\�2Va&�K_�����D�z�����U\p)
kVNC�0�
���s��ǟ�T9�%£ە�QIn����1/��4��՛�2��C����g�����u�P2>]^%/^%�ޟ��ӫ���W?������Erzq�������:*�ë+|��/���~�\�z�|���˟�^%���ONߟ���
E�^]~K;��M5O�Eڿf��07��P�$�t�J佔�M61���H��b�-��
￾�:���*������UJ-��O�$|�⍼�ݨ}�ݑ���ʼnX��կ]�GN�xGΎVwez�^�@3zQ
�-IAb��(��'fI5��Lj���R�1k3�Z~��U"��Ŗll&�uQ�(q
�:N�̚{��,�t���e����>
~����Nx��Jx������O�1%���gE�ف�7�ۖf�S/�Z�M�Ӏ�J�v�~������1š�3.��7?�1EGC��؄�R-ABn��ܑ�pٿ�a��<L`��Ha������V����Ӄ84I����K�X0G=}�W槏ʐE�|�OΫT��\��"ğ�T ΥҎ0�4՟���V�Vӊ�ؼ��
;���~���;0�^�:D�wͻʹ{H�M��<.�=��0Z�xҚ?e�t;K�I�^�}�Q��v��Ᵽ4�;y2���X��>SF��6|�r�"����1�
�ָ�'ą6d��ȅ%�*#5r�UJ�ZY7:�z����W��/3?-Yy�YhZ�a�14t޴i�te*���Z��%�N��z�yx��K�?����F�b���2m�7��ο�[+�$�th��^Ct��	=��:J�4%������d��E���<����2y_Zʇ���s�@滥�)�m���t
�cJ?r��ġ�s�?�5��i��(�4��>�%�
��i#)9F)�/E���#�<�G83ٲI�kgO{�ɋ��(��\�UX��~�Fd��`�vw��a1������lGڀ�:���y�m܄Cc��x~ #�M�y��b<3*F��<�E*���K^5��6a7r�
1N��IB�-{��S��1RP�gw|��	�����a����c�7�

�*�M�bK�*�G�*%)쮜�q=��J�ZI�wq?����!�g^��o$O����>���a`v�S�S�@��T^k�8�n�щpD����	�P+�:m�@Д�r'��ɹ��e�b~l�7�tN; ~�����*��Fm�?T�1���6dT
��;
�O�|�x�#Ȩ��o _��4�Q�Ԃ�ʏ��1"	������Զ�z�Vv��(���nmAu{z����Fh~u0���3"~��8z��í��ޔ��
��;
�~�S�]�ӠfQM}�YD�p��J���;x�H�� ��(������Os��ݕS���a�w�R}0��0wI�Qކ4~���ioJ�6O�������3P3Ū�.��tdT�J����`���K������%�p��-H��ǹ�T��F/�|8�ܠ���'y]�Hb��z��H��ٙ�E�p�Ho%I
4��v!�7��Ջ�x|�J�:����%�����n &X���|�&j�%X�t8����刃<�o��$PTu�b��w��D�Q�U�6�>]����E�A��`#�5	�ҒǞ�k�� 6n�,Co{X�̈�/�JH\bS��G�����+�+�L�S1,�鲾5#�m���v��Zk�S{e������ք��yT�L����Y���&]�O?g�}�Z65��g��S�U�3Y����4��"�9�vF��dxΡ+��ѥ緃#֧k�\��lY�|�u.3�!@��ye�;l�#���Gݎr)��;	�2����/��\����O@����S���������Bv��E���C:UN�U�����h��k���1���]Y���]�O%�ۙ�7 Jnp�L������7��?8���L�0�{9+�E>��އS��"�qJ�IDz�
Z�w���۶�ߥ�%��p'�k�.����o*y'��@�j.>�px�n#ˉ�(����t�b}|�O֎�|��S���.Λ���٦�-n��ށ�>����&��lv���Ō�D�$1��/+�=_R�\���i8L���8�=!�Vg+g�N��-��!X�]O�fG)�$����p��x��J�-SJ��OZ.�[���:�e��¸��~֣�m�i�_j��>NĶ?�գ���{{�|�n7��B��؄��@o��1��?��D��K��������`��Ь���k8��|���S9�s"���vݔ\U�?�G��ߎ�[~;n���i��n�m�զ�����a�������6;t������q�f�Zx���Q�o�ퟟ4������
�-�v$��q�'�co�Ã�����h�Ǯz�
�x��'G��k�{`hwv����}'��q��o+�V|��� ��?PK�&W	CiY���mlitespeed-cache-nl_NL.moUT	��d��dux����Ľ�\e�7>)� (
�X�&HdwB/��d�lHY����pw�����άsgv�A)ҋ���J��(�
H�"�W)"�T���yʽ3����g��}�S�s���c������5r�/S�IS.���\�9���Z.G��#��L���
���r+*����>A�zT�I嗩\��M�ܒʵ�ܙ�
�l�r_}���}W���P�Y*Be�ʋ���Qmo�a�������OQ��ʭ�����_R�U*?��vT.�r)�{R�*w��TR��#�\��_Qy �_Y���B�TN��*��T��r��s��T�?�{����c<gP�*ϥ��T���/R�*ץ�*7��M*���}���x[*?G��o��%TN���JZ��1T.��*����l*���	��}G�㻘�-�܂������w��Y��wo�.���b�^�����/P�IeB�^T�L�t*7��"��uxz�@�ӛbc���m��Be3�_�r*���?gP9��;����A��*Q���I�ר���oR��A�ς��M*�9�}TnL�0�2��y�5��Sy������aLeB�T��x�xw<�:�P��Շb�>�s(�_�����}��M*?���}�������}���TnN�߿��^�0��qL�2�r�ðK�<�8�?�0�{�<|���ag��\�������S����Ke�?>"�O�#�>;p�ޑh��zґ�ϭ�<�ʙGJӹ��ĸG�+��|t�s��?����>
p��^�{��'���Gc��>�dǣ��ڎF���q��:�h��X}������?R���h�œz�U�~�h����`�oD�T.;��c0ߗP��ʇ�\F���?��-o<x�c�������q�?�8���0�"��1|�~}�x��W�܍����ǣ��P�*Ϥ�KT^���{��r��_��}]�����*'0���{-��������*g�������"��0�!�x�	x?����c�	�A'`��u����N���y|���'b=�u"����?�rK*/�����6���N?��~�~�����T.���_�=	�
O�OB��?	�O=	�|�I��ߟ���v��铀?�:�ǎ'>?�/?��z*������{J.�
��SP��S��8�ĩ��/��q�|*��=�q�S1O}�bz*�ԩ�?>�s����K���O�zܫ�_��1��T��s�ǘ���8����4��1�	�3�'X�E?|v���H�FT���3�܉�;*��9��{��Po��0��O�����ǝ��t�i��[O\�r�1�t��WN�/�rgƏ��\����?NG��NG�78�p-���o�w�G�؟g`|Cg�G��u��������C���淋����}���3��FZny&�m֙x����^g���:t&�����|��L��>���3ѯ�Y���,��g��Ega<ߠ�T���Y����o~�~�)��S���?����ߗSI$D����8����l����F;/���}�l|͟�����a���L雟c���xoߟ�����G?G�K����/0/�_�{G�3�����;~�}����9t��z��u�:�����s���9��瀾�Z��?�}�\��S��[�8�N��ch,�b�?�v�y����a�o�r����G�睏�����������;?9x���A��s>��ә.νx���.�x7��L�\�q^s!�}�B�{�B�.<}�"�c�E���I.�<��w�Ex��a����{�E׽��_���|��?�K��:�~��羿}v�/Ag�.�6�r��h�p1�m�b|�؋���p��c�^8�b=o/�����rw����a�~���%�g_��%�B{ߧ�4>�ss��x�G��|{�R�k�e��n�a޻/��^�Ϗ��|�e�5�a����\����2�˚��&_����r�ٗc?p9�;]�]��7^��{�r���c\\<6�
�%W�^|���W`^Ϻ�>G�_z��G-���+�u�r�_g�����z��+�~�����D�[�D:���p��+q�|%�s㕘����>}P�?z%���W�~x�J��W~��7�������ߠ��|˘�hL�社���o�޷~:����}�w؟��v��@���w�']
�����7�u5������ٿ��G�O>�!���a�k��O����ע��?oG�i@����%|4���c�'�	y=����a���p���a��_��z>��޻����q�~��]�����Ǘ\��o�맯����׾��
��-�o<&7��:Q�����#7.&�e�1�;�����ʟ��w��\�F�Ǘ����mF�y�nD�y��nB��	��:�t��>u3����Ε7N�t3���͘��n����[�/�[6в�/�N�/�w$���������-xo�-��{�|��������_n�����������n�<`�[�^�V��1�b]ϸ��o�x�V��­z�ߪ�mX���|?�6���m���}��*[x?Py*�����y��_W܎����w��X�gn���ޗ�}�\��;�?�C�E�}����w�O��8W�r��;��>~'�����#g݉�(߉�8�N���w*\܉��N���D��	�z�N�o��`�n��_����W�O�E4㙻���/��߼����jwc��r7��}wc�޿�\����̹�s_�?r�͙���?ޣ��=��k݋�M�b>fߋ��ދ���{ʽ�o�|��߽����y�o�~�o��1�a>׻�7�����}h���𝫴ރ�a_�x��>���.�_�5z}���S~x?��_���.��z/k{k>���sT�e9�����������1`�O|�~���<��n}���_�<�~��������ꃘ�͵�� ��A|��A�[�A�ݏļ_� ڻ�A��G��S�/<���� ���C���C�����>���	A�s�Cho��ؿ�n�0�]~X齇ѯc���0������k<��T�=|�����{�=���>�r�G1���b=z^<�Q��z��ʣ�z����ޛ�䠻>���1���T����c�_�z���q�ˮ����q�a�8Ω�����8�7|�%O@�w���O��+O����$�c铀����Ɠ��~Ob�z��T���$��>����'ѯ�O�
���S��3�B?�
�1�i…���_|��νO��'��x?x�x�g�o��`}g<�Z��[�Ͽ���G�`�/~߿V�?���=�}5�Y�o�Y�۩�b�7>�uy�Y�ӿ?�u~�Y�O?����9����a��k��s���NJ�a_�����xoy�r�s���iz���y|o���#�Ǹ~�<����1_�>�|����ߴ�c�c<�R���ֿ���k���w����/`߷�����W�8��_~�h"�#_�z΋���g�膯Sy0��%Л۾9��^�yz��
GT�p���m��<����_�||��/�
�����
�%���Ws�����O���G�O�w�8w���WAw�*���^�n��O�a|g��v�{
�v�k�����0�w^�~?�_8_��y�_��/�x�u����Z_����X�^�O�z罎�q�뀋���˯���k����o�Io���7��No`��{�:���70�׼>��70�
��o�&�o��?y��#o}����c>�P�~�7���>Ͻ�����w÷���B�yoa��z���-��طt^��y��׼z􅷀�>���p��0����~���;�]󵷱�}oc�
��q��6��|�m|���[�?}�����A�O}�x�;��W����;��q��Ͽ���]��<���x�]���w�ީ�*�.�wݻ����^�=��
��3����M���G�_~��w�h����n�>���1O���~>�>�����@�"`��~������>���~���_�s=-'�����O�1��������e����_����.�<�ώ#��T*���G��i��M%��*�������c�H�v��DZ�J��������z*��wQ��|R�E%��p��qh/������%*Ώ����˨d����^�R�*?y<��=-O����T�~����~k�ɱ*�P*~����#��G%��'R�����0��}|����dx��q����Q��Z*��'����'ƈ~�L*�Y�}~M�3E�kb�����Ƿ��S�rމk���|�Z��_��z>�׹O����E*E�I�g�,���ۨd����O]�{�ڀ������6��7k�;����)*�\Zs�1�O>���j�{W*ύ���/[��G*Y���2|~j����Q��e*/n�i���裸��u�N�P�t\Q�F%�[S��֚�#򛭩d�����A��}�8�c��i�,�jO*��<�J���r�����I%�����<=���K롽��zss*?�K%�=�K%��;���������`�
0��`�m��A��s�>��J�7.��<���{T2]���a���9\oHe���a��{��0�����T��`�Ϗ<|�,�#�|.l�1"_��X��ܛ�.�d�j�
������}qLn%�k*/�@%��7���W�S�r��_�~>��x~՗�}�?�J�מ��㗨d:jݍ�m��;s#��Ua=���헿J�6�p>�L_}=#����U��\�y��쏁	��M//O<m8�>s"��w&b�6�_��_��,���K7F{�o<����ǒM�Q�r�S6�|�=	p�p�s�$��I���7��o�q�)��=�^�l6t�f��9T�b2���T�<��h���X����S��_G�
����C���=�5��M7Ǹ��pp���/l���Ŧ1�s�����N�R�G6�<���xv�O��|%��>a*��S1�C�b�?N%әkm�yݝ����`��3[�;��y�խ�?����_R���[c����
��mP�m�_�m1?��b�F��<ܰ-�ݷ����c��p^\@%���m�~�G{�x���7���Sy�M;`�~}�1�����1�,'�֎��Ӱ>M>zr���N�#�����	�>D�
����v�υ��g���.���MG��t�3��?��+��Z��YwW�������]��v��޳+Ή�]�����}��]q�]�+ڿ�ʟ1>��V�:��į�����C*Y~���o�2&w���	T2������f������o��Wf�|��#�:3�O���gb_c&腃g_�D%��mf�޴V|��J��:��l�y���w\+��G���sZ��lE?�ـ�p6��gc�^��f������w���{���98G���\��t���b^�6��#�@\߆s��6��󰮛��>o����b�s�<��F�a{�d�wp7��wü��΍�w�>~n7�[�|������1G��|�2�w�޿}>��|�ǿ�>�����g[-�.|/�:ܱx�>����m!�sׅ����Ⅸ�#�w�B��eq�=�����O�c�?[8�a޿{��E��,¹�n;��P;��?��j��WR�|�w�>�;���1O{/��P�z�?/�}ف�6u`=[:����LJw`�Ձ����4��az���O�8�_��t/�yt4�W��8b)�֥��˰�˖~�X��ݾt��=�w����E{O>����=q�X�C��8~�'���=�>���Ž�>��w�S�����}u�1�}�<��z�ހ���g�
88wo쫫��<ݱ7���{~�����G����>�w�?p�>h�n-����l����/�5L%ѹ����ob�W}���7q�~b_|o�}���ߛ���}�7�����i��}�j���U�n_���<�/��S�������~h��Џ�����u}y?�����+����sw��>��qx��]T���������u"�o-�˩T�]���ݿ"��O�`>>Ճ}���{���`?���؃q�Ѓ�������{k�*�L%˓������R�}�{q>w��UO��Šo�����|Jz��7�~:�]w9��m���=9��uˁ'��=r&�#W�xo�"���q���{N�bQ���#�Е�`��7:a��,/���s��%��2�gH�cʀ���1�*�/��3~��鯃�G_�����7�B��
��^�P���
��
��/]���lz���x�}~K�yy'�����ׯl^�9��
�j��������VM�5НA
p�S
p����%*_�ƈ]��ѯ���7N�?x��0��a��*/�}O�|����6���#X�����F����y����?#��+�ĕhg땸�h%�o}޵�I�<t%��䕀�_�X	<��J��+��{+џ5��|e�o���q��F%�W��_��c<�����JLgt����~��w@���������A�.������w�����M�<��<�E�^�.���b�~��s����|�v�u������'D9�@�}�x^���.?�~�@�k�����=��=����{8G~�=���oL9���@7q޿� ����}�`|w��A_�y0�=�`����>z�`�]��.;� 9p|�!��zr�Cџ�C���~��P���ź�r(�������k����}��|�}���ax��aXǭü�{����z��0���ᘗ��t��ÁW�v8���׭���w�������#��o��|�|ιg�KG�s�g���>��|$�e�#{��jG��s��#1/;
���~�}�Q�K/=
��Q�W����ј�/
8����׏��2:|�Gc>>q�O8��>��z=��:�Ǡ�[���<q��co9͜c'�y��X�#�E��z�3�a�6=ߛ����@��<�-��q�G��~\s��o�z/h;���x��/���;�_z<������+�q<�}��X��xx�x������}���?�|��u�X��P��C���<)������ߟ��{����N��L%����߷N����Ag����]q"�ˡ'�g����џ{O}�,�2=�#�ߘ�0�O����I��~H�	<�'��'�ݡ�1�#NF�/�����?��o���}
ʯ�8˟���S�`��9��ק`<��?u*���b-?�=�T����y��T�K�\���[O�<>�c����gza3-{~���}~�O����O��r�a��?
��&�������N�:�9��y:�ç��N�x^���L�����3��3Џ����r�s�3ѯ����m��,<���L�i�L���gb�~v&��Z�V}��3�gb��B���0������r�Y��9��?��S��~�������?��}⧀�7��np6�gCް��ʇ�����
g��'��b��3�k�3���O^�3Чo��V?�&ʹ���
~����_o����~o{����W���N8�y�9�������9�Cw�����O����|�ҁ���\p.��sq>��\���b������hg��p��x�u�yxo��'����.:t�����}�y�+��k����>h9�w�z��c�;]��;.<�\x;���0�.�|����]����П-.ĺ�t!�����/D����q���B�۽n�y�"���ޅT6�~�"��ּ|�a�z�b��r	���/�|��K��_���?s�ܱ|�\��s���j��u��N��堓ο�J�
ȧ����]��v�_�N=�אk�C%I�9W���N�
�'�
��nW]���s��ݫ����ܜ�[����b��-���~��s���;��~��;��y���w������Wc���p3�j��^W���ՠOϻx�����Q�=�����X�u�A?7�p��5���T~�|8���{�⻻��������>�ʫ�����=�����%Z^�G�{>�G���Z~�O�����y�~���0/S����^v�_�u����.���uط^�~�x��)��|�z��ף��G;����?6��k��n��������s�
�W�|��v2�l��g�7�F���7�_���C[��Ͼq#���ݳ����-7�xa�M���M��Mn�9��M�S�nB�3o�/�	p��M���n�o{3�e�^��|�ѿSoF?ο�µz���1����ޗ�����/�������>f�[p��������V���wo��v+��o\,�
�8�6��Y�����6��S������a��1O;��	o�x������1�'n�:���7���z���
*��C��w.�����pߝ����D����fݿ��_1_'������7��~�u�wǻ��[���}�z�}�]h�gZ�ww����=p���]�܍�~�n�Ϧ�
:h����Q�n���z�̻1�ލy��n컧���ջ����`�{P��;j�vƿ�=G�|�{��{g߃�����o��_�׿t�&Zn~/���^�gν�ǒ{���{��K�b^.���{�_�q/�toi{�M�
x�ߔ.������p.|�>���/t��N��}8g^����Q�~���c�Oޏ�]��ϖ��Y`��`_\��Σ��|p��q�Ly���A�<�� �<�!|��?��<�y��C�ׅA�χ�_��Y��վ�a�m���гg?��--�}p��G0�c\��(�s��>��Q���B�~��X�E??��*�<�y,?��>�1��<���c��=���8��q�cO`��?8jy�/}�Y���O/\���'��?��ޓ���<�|����]�$��o?��%���ٞ�w�����?�}~�S��'��<���SX�����4����x?|�v�Ӫxx����������`�����^_���g0�G�gT^����m�,���B�zʳ��v�>j��k����9��ϡ���C���籎�<�s��1�o?����w��1��wȳ��;�.�x���;m���/�.��������_���K��}/a�O�<��K���xp����/C>�����v���k����@���?@OG�@_��W@�=�
έ���vv�'���<�O��W^�>��U��Wѯ�:��_�<�a~����?7����k�3���r�a���/�K�_�s���:�_j��/�3��Ν;�Z��/��Z����S_�wv~�-zp�:��ɯc]�x�:�O���y�w�X�k����7�g�&謳��?�&��o����o�����7�sտ��o�7��5���[�W�¾mzK�Foa��oa^���[��z��[X����2�?���0��>��÷1��
�_y��Է�׾
y��w���{�t�;���x.z���;�?{��w0���������o���W����/{W�S�U�E■��}�8�=�k�{�_y���0?���}��xt�u�G�|��>�5�����>ܞ�����|���?|�}��O�1/G��p��ϋ��|�ѯi�6�B�����o�w�J�_}Tr�M%�/?���f*�{߱b�ژ��7;�o��6���3�d��wTr�77r~*%��8��]*..����,�<_�j���ΖT�x���Ώ���T�<�H%������'��wƣ��k���
*.
k`�ߣ���GT2�?H%�K�P����?��q�̏�@%�?'}�t��1d�|�O��~����w�51�[S�p�+*.oZ�A%����8JT2\�ڽv-|w�'NJ��4*�<���X�
��&kٺ6��E%�Kߦ���o�� ����P����l�)�����Oa>���v*Y���0�9�+��T�yq駱^���ss]�צ�b��[��J%��Q��Ⱥ����ź��J��r�Ϡ�*Y~R�z�K�d��/v��#?�uz�J�3��X�Π��d/����c�+���~A%��oR�}�c��*n�y�	����]�s��#�,,R��,*�|z�s���>?V��>�y�=�,����_�|����eT2>�����6�.�����
Q�B*����J�_/l��ywC�ۧ�8V�뗩dz��׼/b߮�"��c*����J��"�eܗW�Q���4*�~��׳�d���_B�%��T2��ė_��X���R��<������ϡ��`����
�p�,�x`#�3���ggR�z�5��AT�}�}T��|���"{l�W�D�މ��[��s�剀�Yc������T����`o��q"���_�	��3���6C�y�g�M��.��֦X�I�.z�d��_Q��ړ��S�x�0����q�I%��OA{���w�d:��)�
�������~
��cs�Q��k7�{�7a<�5O�G%�K�Q��7c��ی���������c}n���(�M�|?6���g*�^=j�ח���T����T��`���_~���0O_�z��[j��q�ր�G�d{�
�+��n�����ź�ֵ�J>7��x�����.���d}��c?���0���*�C��{'��v~�|'�wvB�Kv��.wg��ڻ�|i����t"���.�~r:�e:�ƉT�����ؗ-���VD%ˏ�����_��u��+_�{Z�?h��z���y��~}�J�S�>x�c3��b�A%�{�J�;�7��,�ٴV��O[��n��2Ƈ�����Q������9�����#s�Ϟ����Ym8W�l��
�{�
�o�<�#���s�K��_��s�cλ�y����Z�7�p^�8�>:�y�J�s�6�n��M�c�t�<�J%�7�����=�����-�y|�B��Y���ߵ�u!��^6\|Z�����׏���ċa�6l��&|��^�|w����1/������1��v�w^��5��uc�m��u�b��T�]�:@������כ�:�߷�||�x�N�ٜ%8�����%�ϖb^\
x^w��6�/�.�>l�y�2��/S�vo��+������?�'��{bg�y�G%�{�y>}O���D{����e���>�{��u����^�W���륽���x`���
<?�7��{��{bo��A{-��{��u��:|���}�;��|=���K�y}�7@��h�o߾�
�g�ob_|�h�obw�&���7�G��MЃ-��ܰ/��g��z����������o��s���!�}�.�ϗ����v��ׅu:��.���>�����=�"�lo������;��5��腉=8�
=�z0�����ދ�}V/�?ڋyݺ�^އ}U��Z�y�f��}e���.�x�1�ƠO�/+z��r����ӏ}��~��z��~��c�]я���8S��jx�����E��aT���"�G������������������^��*�K��q�|��,w٘�m96���X��ϩ�/������G�]Zw
���������xܧ��~��[8~��泰4�f&��{3Ƌ[��w���K���_�^��o��.�w7��>D�
�?�܌����_S�L�<B��=b5r��O�����>�t�5>�L��\õ=�NI�X�}[5F =�x�x�g~�ڣ��kۏ�qt�������t���TN�v��>���>�R�
��e���w&��������Py���K��W����.�{D��*��Cܤ�`;��>����D���[9Nc���ӻD��Φ�Mt�BW��!گ/Ry���T�MuLׇ���\�87�E�w:����CL�3x�y]�/P�K�A4��q���8�P��M�/�x�����0��v�/���e����1���u�j�J���	��:Ʒ=xx[��Q��`
�&YG�߂�˴�T�1�u�������m�w	ݻI����O��Q�~n�����AG�{�M��5���M�^��0�N�7������t�;T�S�n��M߿u��T�G�w�m�w�x�+0�1����עz=�7�m�����fy<�}r�PĖ	�e\4��Z�7:���>x0�ĸ\�oPW{ן�6�֬���g'P������M�߯p��������a�����E�ҳ�Q����=��9��8���:�<�;[�mL�=E�_�����N����Nj�����N����g�e
��'ڀ�0M��}�:���~GaXgޙ�����#'~�����o�3Qa�4�?��QfN��~�ޙF��h߿2��r�O���Ϥg�RI�l�H����z���;�k�(��g�6T�L��G��+���/k����������@�7�r�>���e��#��o�7f��]J���XF��Y�a�� *��:���T�J����F�Mt���2�e����A�?M���b�7��a��L_#=�'y�{9�-��:z����F���q;������:^�U��7���Y�i�#�Vﻏ�JuDzV���D�,?ҫ�2�Et�-�}'���}��c�;�k��e��|~6��-��b*���;�޻�ۥv���h�k3^���?>+�ӽ��o-z���7����?����/�Gz�k��=[?�/��]���_ձ|S�w��5Ӧ_�ƍ��ٖ��ׇ�c~�e��gi,��a~���D���u����O�pn&���C\�d�n�ه���
��[�~���Ծ,Y�y��#�;����{-�(lK���/��"�G}�ښL�~�ʵ���TN�`b6]�M����T����G�����sl�J���O�{2\�G|���޿���N�*_�C�p=�ֵ�N�]���	<�����!��ߨ�W蝯����~L��Nc�f�Ëc/����ym����w�Kψ}�ܛ�,jc}��8ө�/�}�y|�����������P��� ^�x>�̙E����|��w3n�p��l;��R}�����-�[�D�ڽ��'$~	�]��1O���_H�tow�
�w�޿��
�<��7��>E�.��Û#Hx��Q9��q�X�P�w�x�8L��-���,9P_��;�~��i+ާz����B�;��]��b,�r03�2�nb�|���MwQ���]:G?�{���2]K?��c��l��_��C�q�N����ێ�?�����3�4FL�sǰM�8qM��]/20ô�����;�G��b���Ǚ�����>�w~3��Nc\9q�n�r9�]�w�~�j��CO�{���^�s�i�_��}fb�}�t�ލ�3>�x�#T�"�缯�6����/��9�s���+����1���r��1��CΒ5�n,Cz��
�S�j�*�㨍�xIJ��y1��m}�5�f����o#�s�!�c~��(���x�~�O�odB�ت�l�r��`,b�ɾdޕ�)z���;����@*/����s��v�{�כa�����\���o�u*Kt��ӳ*�ES�"���̓��H�}b,ⶱ�����t�y}~�ޓ�X*�x0�����V�����o=�~���x��~�����q��^���0�s��iQ�1\���F�}��,��ߓ��U��O�o��^I�~��~���Bz�<j�wL�S=��p2�
�?�uĄW2�p��?�yo�
��Z���E���S<7L+�:�Mu��g��u��}��-�8j?c:��S�(� �w���l��k����e]z�3̫�lE��A��޼�ݜ�tosƋL�3�E�w�\"���+���7_Ϝm��to+z�}�|f�|���o���D_�=��E�w��XC��K��e<?z�J��ջ͛�����{����|�i�7P�{��5���yA}��i淼���^�gS�X�ہ���zzgK��Ӝ/|�����;=�E���8�WN|b7����5���گ�xR����h�9�}�J�^�5�Xl�c>��Xf:���a9KF.�.˯�@�����<w���}��_���D׏3�dޟq#���~����gأw�ax���˶�R���Cl��0�fݡ���爎��7�^gZ��:�!����{�a8��`���n�z/1����r>�}(�ߊ��lB0:�m@8��ٙ��$���%��^+=�x,�q�}	O��~��Iu���o�:����;���O�<˭�~�1�gR�����
�k�{������C<�G�[�Թe��QT�js��9�4�X�o�A��6a�3T�F��\��~�ϼ�^�� �����j���	z�M�;��}��O�����mE�n��x�n��u���	,��ʴ/��[Ǿ��9�e���Jz~�~�<^��Y����Q?`��g=�^���Ĝ���I��5��Az�Ь=� � ���'��R>���:'��<��ֶ��z�߸5;�ձ�����ꜫ�+�]��/�=M�c���,�`zU�<71��X����%�P�ט���?踮����h݃�w�:-��ݩ����Y�c�V�ߍ���}c��to}~]514�2N�S�������C��A�2��չ�$�$t�+��h�_SOo�|���Lzu��#W˱zo_����u+z�H�w�xă���\cK����ٗ���=���#�,7��S[�{f{�?ѳI�}��b��{1�W���q�MY�gгa*����<�W��Z�o`���>���O�H�}���������w��O�?O�S��������Z�.��{����5)2�Ju���>C�~[�s��{��S݈�Yk ���,O��ۨ�#�8V�k{��W!���a�F�{���X䕘@��K��ay
����K�:
_A�?d�;�I��a�ԃ�[YnĴ	�W��ǩ�7u�sX���Q���3��>ۗ��2&�/��}c�mMm|��(�}�=�i��?�h
���X'��{dru<���k��g�'�;� ۮ:�y�=�R���/��vҶ_cDzC��X1[��v����=���'��6lgv��U���W��c�7o�@r�Q�#��?0��2 ���n1=����+:�S�����q�[����<�o�P;�yu�Y��=O�{,�w����xĦ��`�O���L��A~�[�6Χ{��o|]�����;t���T^��Ѯ�41������#^?/��W�a~��]��
�?����G>ԍ�w���r�?Y_��[��3���izv��G��5���I����9ڟ�����k�֧�yӷ`R���\03�*�u��b�9.-��wFX	Z;ڂ�b��?����&I0i+��'.FIP�z�U�V-�Ex:X��ҝ�����*W�o��JTz��JL_��Sj��kS&���[�F��L��r�@?��uE5*q�|��J�*}#,�]�(��;\���no�\�?��x ����v��R!*ȋ��t��*%Ţ�n IT�ƥޠZ����MK]��Nm=AW��'S�]�yK� �R-,�Z)H�a��� ��"Ms5��&y�'���I��ԣ���bP
��`���R7�jr�$�� �����`u�~��U���(I���ڗ�9���Q,ӷi�����Ӄo�I�@L���t�GU~���U��]&��N����4���
oM+\��a\L�5���6�ҶT���Uw��oW1,�O�^,�U^�a~+�۹k�����]	��Qa��S����q5�L�k�<q����0���P�Z��a7`��\,��y����ڸDS+����A�'��Q���e���`Vy $H�-a��)��$�r�E��H�&qw�Mۉ[�B�bX���ĀH�m9�;v_�63�],�
A�T�KQe(�5\ŋ���*�Kd��x�6@�u(*�X	:�V��	�n<0X)Q[���d0��Iw���V�.�x�	�G2��.�[�����}�w|�����Z!����E�@{� 5h��&��6a�"��.�J��r��^�]EYf���W.��۝��y���/�nq�e���t���A��-�+�d�FW�#��-��M{[��vs1�H���E׈�9�p(��L�S,w�E��ń�zK�F�"ϒ)yn�\+�'����ų'U�r-�B� Nn��^O�N����Y�%����n{�2���t=�ύb�T��4T)J�=	��Õ#���!!ڠ
�N[��'{��BBy�#��ء�)�v0�{C�^ֲX�
xva�D�T�
�
�� ˞Z1�����D2'M���v�*a�A�ѽQI�P|��1?�*ոGV^�>���͛~P.�Fe�"�e�SŞ�'}ob萎\�=#�Ϧ@9�h��G}��o���.�$�V�@rH	�G�GT���sA�o�^�j�����B:���I�ta&�@_X��̄�*mu:kL�橷��X<D�T�C9��g��Cx_�—!@�ޤ/z���HI�>�d��hw��*����JHD�D.y�z˕X��L�l�B�֊��A���E��3����I{9�&���@��T����j�<�[1a,C�L.���!0E�5�bc	��w�<��W��
�B+�
2A4ʎ6Mq8!�)�M(B���	/�7X<�P�!��ZX���>ד*mg&I�5�FI �\"��MC��c a�I�%��U7*��V+�b>X��5=���jE����A�׼d��^�au����\7��52&I���׋����q�wq$(�0�Bq�����!5�i�����*w��SJO�Ñ�]����Ftq���7��
w���B�$�6x�f�<"oe�|�6��}y	�����*�k߼�E\��hoy��XN��=��͑ѲGW�����]��8D�U�³χ�	����m+=�H��t�ڇ�R2R��#¾\K��b�X�f���Or-U`Y�5�Q�|��F%j���G#~
!�	?
<��k��!F�ZP�U�h�
���*	R�Y�����n��`f�v\2X\c�p6��^�"�꛺D�q��V�~O1ƋhۓMa�@�<�4���i�Mʌm�8�]�|Q3�Q�9?j��RL5�ړm�d��B�F�;|��l�DU%���D��/��5������a�5qߚ�yD{u���
�դ��T��=�$�݉���Gw��8�0�5�P�i;��@�A��OiH_��]^�@\)�/������#�jn�%�S�"�(��������.�z7�e|.
RU�8d|j��H�m�b��U��	���"�f��ZX0�f��K�>��磸\��Q��i���ZbqG�-3�Z f"[�a���Và�f?�Hf��?�~���}�R0�f�.Đ'"]��T�T��P⼮�||��P{%sj��?�*S��H_9�<}[�Y�.��f��РUTYSP�ۅ�[�,1O>�UJv�<�B�n&C
��z�� ,AFkD�bD�Ӡ�&BQ�#�/Av�`$Pފ�B_��_�)6���t��L
�N�jN�!��J=qo�aCa_��)w����̓�g23DT�;����bN��~b��B{:����&�{KM�G�wҎ��<aE�o��T(���}�Pd�=�,�
G#��L>������9I�4�̠���*tbܱ�!��w��LxC�Q�J��A���r5��=��w�����D�M���8"S��0C�a�i�~��DS�K��v$1K�pW��K�d����&�/Ϧ��B�]ăȍ�E[�Ç��&B+y�
�BK�����nU����v.��JJ�ө�u�$޿N2���4?4���-��
9f�o��qU�/��F|/I�kt��7Xb~��m�E��v"��+�{�[;:�(�Sȕ�e��2��	��%j���;t��i$��Qh�X�˂��J�D�%�y�w]�H%�L5��$bR�	�L��L�y!�����T�
��̀�Q�Á�WN��3���c!�L#&Bb�xF��U�b��W�-v��*��Ӭ8�:��.2���:�Z�`�IJ8��za)4 �������YÙ��"\��	�Ş��MC���j�J����+
GON���=3]�Y}��T���XB�@��lׂP�4�N>`-9kYVyj�)QȰF�H*�P�pQ�F| �Aiw�\�üI7��E��KV$�J:�YV@�FdA��4�|R����Գ�x��LQ*T���Y2,)���"{�7�g�Jk�ܳ�r�+4�v���t�c��ޯV���T����t�tF>KV�]�N�G�es�@֥5x�y�ƣ��ُҿ�獛IOe�*�)�3:5K ����dJ�R7"@b��wl�J-N�/���UN��*+e�Q]�
��J��ϭ�3�5�_��O����"^�
]="2jn��P��*|�b�+���KCԸcG�a��:�)�6��S1cȝ���8x8���DD���x:����7A����tZ�-%�6$�=4}*}��Ap�oD���/d񚠢�ZE:k�c"��o$D'w��/ǯ���q-s<M���S�W�Ԕ�F���F;�i�?�_��	q.��j�
�ks)O*�@��P�EE�UB�a/Uy+���l��:
'�0
[M����{�h�O�b��G��bO���!;�
H��;{���-�� uewUw�9����*��14�|�5�y[��4&�Q_�Դ���b$��:�	>��I����lVh����&�):��h�VMUA�nt�\f���S��A�Dr���	����p�r�p�~ZC�	�[�)<���2��Y�
yZ��xv�X�Y�\Z�}aQ�b�	Ag�e��ctl\��f��M!;D�ÜG�]MXV�Q��ڈ��5���ý��U�B������L��4,��.׊!�9[�+� 7�b'�{�K�+	�2%��bt����߮3��:X6x���^�DL%��%7����ZF&F�7A4����V�g��P4!0M���LS�[I�Z��G�C2� �C9�����T�ŒM�:�������K���:��글�3���Ct��(�z�X74$)�Z��u�4Ɗ���`H"���)�諄fBj��{���&��Et0��"`��>�����I�q��$���[n�S`�)s��W��U��+oL�ª}��:�c!�b�},'}�����a!{��C�B���q��k��kwGf��Wqw	�*���$-�7W�`Y��n΄թ?J�UR��}ټ�T��ӽ�#���r����w�I]XA�fVz���<���E�uW9�r̹��0ߧ���:j�=��"�l-��y�X�{�	����YQW�7�Y|���lxb~��/7d\B�m�e��dq[�[��n��ٔJ���ٌ9X�no�bAV����vž4�BT_cQ�r��Ώi�ic��1�d��	���BV�7�R��Q�!��)��`H�3NܵZ-�I��3�����+�fy]��?ոh�� ���
KZB��X��R�
D��GK����;V�Nk��	�X�΍9V&|2�mV0y&k�h7K�jXL���V�{
w����+%baa��ӜtW���hT�@����EB7��劾/�m��7��2B�rO�!O2���L��Yh���Op{����j��!�Ș��%ksbMJ��՛�mI��0ؙg�5)���h?"k�2�:�u�s�A!sH�ݰ��}h�3��P-�h�a��nu�o$���$Z�"�S���V�P{S7�^A�Ȧqr<��K�}1���6Vҍ��(N���;�lO�4+�}��R�92Ȃg��Â(�X�J��)C��򯀕E"�gz�[�V�\
�x�#9٫j�5<)t2�iҢr�:R5z�g�Fh5azKTٵ��:��v>
�p�ŸT�c�s�V
�~���@oT��2�ea���A��ay�-OV�zC>�^�	Խ(�"M[����.��AbAb^Fl��6���EħuF��������e�@"�f�Y�8y������!ssL�S�Ҭn���r1�Bg��DY�+[z�:U�"L���iʬ;�.�f��"ڶLj��M�x��Bw�\d��,f�g��KbE����O X`ᬇpb2+�3�����U!X�o˺Z��3�k�h�?��+���%!�"�� ���$ohV����U!>��e�[e!}=���"��M�ql4 �Z�D`E��Ó?�GK�(��d�o�È��^ѹ�>=u�i���l�B�ԁ�3��n2(���%9e��.SJ=n�3�(TjaHq���£8�W��b��DF4gUS1S��L^"
O�|�x&�Z�)�;����1��T�ȥJ��U���#փ��?+��}�o�U���ISZ
�ctŚ�V�Vd�[�f0?�f-�W��6i��M}r�ɾBx�>��<�q�mD�.�4���������
���j�p�����޸۶�_� �ĠUhY��;�;���oddIbsF;�wA>1G��b�l4S�b����3�\�]��Wmn�3�49�1�m%�*EU8�2a7��WpT�Q��f	+�B,>�r,N�9'A!��8"j�@��1�3�"3=�#�K֡���J�Vf�KWp�t8�A@݄�x6�!�T�$���N�>ϵ&l'��kbt�~]rQ�����H�)h/֒�Ck���x5|�mð���6�&Fn���XT�D�U�q�\~�~�\8�kX�V�hyf�t��|(�W��p����D�_���c��wͱ���v;�mVr��Z�x�h�ʐs��Lƌ�T�%�X$\�{kqA9��^X���FmC9�R����(jBб��iB7�:�Q�L�9Rύ��
���`���^�r,�K���bȸ$a���Ru�΅p���*��!j14��C?�	[e�١�|���V��"l�&o{+��͆��P��1Ѷ�l�'��D2�O4� s�>c�c�1Р�����]���m6�;aHXK&|�֊r�VX��Y�ҖD���z��w��bէ,�֛$�̛)C(�1&ʅO�./󪴘Hb
�n��7�R��HЙ�J�z�0<�^�/ �V@�|S �Hz��MyE��`�uJ]{�' �w�?��h�~�n���(˼�Af<�Sk��Zb���E�Vd��l�Y�4&=��z7"���C�0t3d
�2U�G.���\n�DN�}�M��Y�ζ2{�l`�l��*7xĴ�*GruJ�9)[ﶒ����{Ƭ��3C�3j�WF箙QI�~%�3d��˒�_�v��s"�$���A��~ԧ�6(�"3KS�3�G��a������\���0��[e�L�X=��B�P�3[�;g�m�{�=Q�]�:jl@��/���ܓu��{��G��Q�Z���B��~�Ļ��9z�}~ֻ͸�)D���gTU=�#��/�	�Q�<DBF�Q<�,�E�*�*9����TRs���f�@KtlS�X3�uLp���$�P(�9�,=IuI����\�Q�bY�N�.��',���Jv&9g$:��v���7^a��@�V���ƽ};�Vfǘ���c���3M�H��TscF�ԧ��e,��W—b2;^�WʴĈ��w�F�q��%o^��+37̦h|08|k���rMF��Ė�?����}�e,j!1XN g�����v�X�g����1���B�HK2vu�Ǽ�"	�B��m&�Z��@�X]Eù����	p&����`yƕ����0�7��2��r��x���S�o�c���pUV��Aq.��X���E���pf�)vli3�ܧٳѩ��U̒r�a�q�)m��a&��¡�1Z���2�p�n�;&"MZ	�b�� �	�#B��Ŕ�i
�=�K��-��-LP�������Y�LLj�J��:@T�45����AC��HL���D��ࡖx�Je�=�s�O,,��$f�Gn���]��s�M�GHV�sވg�����@�v��ZV��ئ�"3.���&^f�#�-��R�Q����Uc�\�!�{�B��	�
�|V�@x�lQl����p*��r�6"E�v��)�\�+�0�lf��VC��� o�O~��N/�W	�e���4��qx��n��q)aZ�
C���I��L�cX(c��j]��En�&�[oAD?��ĺ�;٢4�Ң��dQ~z*�"(Us��0�*��E�L�F�#��Ӳ�P-�q�I#��5ֿ:@'k��Hu�H1h�<��S����Ŏ�-�G�`J�F(�}����+	Xw6�C�vp�Q3"Cb1�0�iaO"��2b�_���o���DUl��l���x�J�,��*���JpY!�P1�Zو�b�2
�E��k���N��h�	��6�Zd� ^��V}�–���v,
�4�ڠE��&�~�B9��J0�+�Ԣě�0,We��F����M��{G�N�ݠp��f�>9��W��1�Y
K@\pF������K���fS"�۸3��(Ԙ$�EӔ*
y���k �:0!䈬�~A4�+������@37��`)������3�bƃJ�9	�5=V#qK��(o���X$.V7cT�>�ÁK�'�nL��ف��U�Z�5l
�j��&�BD�/�f�g�t�IT�`iBb��9�t9��-2�^��.��>	Se]��lu�-�V5k�DŽH�ǺKN�߱��A�D
������y3��V�r�E�gj.�G�}��J��p V���`�ӊ�m �$z6���v�p6W�ù��������D��v��6���Z�9R���~�qCG��wڪ"�Ik�}�ƶ���*t�koA%��V���)QӚv<G���u>mj���T0�lM]�Y�f+6��	��}1�t����$��Q�:İ9������3����t���s��oc ���e��/��9�z3o3������%�����}�6+ū��[�uJMƌ�ε��ہ΄eX淈���$��4�����*GƿT���P�bC�����\�E�^L�5����a�.�ŲˌY*@>��7�Rc�hΉ~�B��)O��7��q���^���/���F�2q��ØW?�B0KԊ�is+ �P��q�3,�(��p��h�D��L�xL4q��J�I����Ge�m�J�d&b,jb���Aq,E�@@J�Y��'��ES�hC�*�A����"�_,,�XY��9cb̈��l׷�V����n�l[V�.�l��$�p`�Q꫾�[]%#�9s�+�_,�ɵ%b��z�5�&d��]�;:/Z8g��j��xA�|��(#�eY���L퉆�Rخ
�7�:mU{t�!�S���&�X:'�ȗK���Fɞ���U;��c1
�?2�x ��
j+2j�������c�_���F�ϳ.��<xާb&��Y[G3[�����mhok�ާ����Ov0#��!_�
�9�L��ԲE��U3L +���R�#�Pб���s��c�Z�"ۮ���Ӄ����S�3U\�+�i�H�x�8T�xA^���51W��Z�C�Sp�h����m��C�J9cQ7,�,���Ɍ���md�P
J�`�D���q�t!?����"��U�zq�}�
'��s\Ԋa̤��&�2f6?.
2g�7�l�l7	#/:3�"ZUu�ðrf�{bBo�	�P�kb#��]{�3��ЫL�����R_6��j�.�z�^dµ���xfwԋV�Õ��2��W\�?���5.�߭�*\�T�`
���^�����.���S�Al�R{��5^7uG�Cޒ:�>X�/��r7R^�6�J}/家��R��#)��@�'�&��1�8&y�YՙRҭD��Q#�<�G��qv-��V��'B<5��o����$[ʣA�����jR4R
�KxR'3�4pc��2�����������;S�g@b�D����k�D��'�C�"���-��s�靟lJ�V��B�(�[��;>�#mvX���گ�P��4>���gk5p\)!�In��^��`wU���5��F,v�X0{�r��{)bH&��ԃ,{�B�?I�DA��UgҐ��@����P5�H`�j�ڐU��=��"�4�Q'��\.v�W�ݗ0��2��F����B���2[I��B&���E��ӂY5/ ���c˃7�U��n.��	J?{��g�-�<u�x,Ir��tF:.Tڧ��ٹ�>� xR����I
�}_aw[�=��Qu��qw��ڻ�u�����D~�n
�,�0��~֐�>���[J������v���(���W;6�KV�x܈U*�M=�5
ݪ�X���VuQf�zLS��P���޲|�
�k�"k�^�"�[:,�$Nc ��=�>��'�D;)�z�r���t1l��q��-X���h
�,l�}Ik0{���ι���e�3�����m3[:�-$T������)�_`�=e{)-��O�\I��v�х���ψ��q�P�[�?	���|��]x-.G��狝L��Q!��K����ͤj1�e����Bk��������n�J�H�Ic�)A'g�z��-�}�;}�׮����땖-���e�4d���KFi��nI]y-�>��{D�Z��qH9�S�]X����/?�%�����?ټ��*^SM�*�i4Rg	�i�٪�4S��:��O�>OɄr�>4g�aG�;)7��t�Ͳ‡�����V�0�m'��B���
���K�Jd�5�����3f��6Nvf؛�0���ena�{�E7P�N�E��W�(�4z�����p����'H|�|���"﹓xU3.NT��T�sv�#��iD���2W�k���h�wl�80����^���TX�R��
_���&��:`��7�ĕJ��.;Z���./�B'��9gD��2*8�>����Ҍ����|� ���[n�X~�-L" �E2�͌4�>b��=����G�a�MhdGjA�!��	*e�H�k	��Μ(�y��� ��FɕW�P&ѫ(��D���t}�Q��
YOh�F���u�P"��j�h���k�L�n��w�S|5߀��#�c��W��t4����F��-Z�[�8��
Z(F�/�w�.�j\�L"sp�F��*�"�w<�D�h�E�M��8�
��^�6��m�*��i
�J#&/7)�W	��ol��` bB���6ˆ����HTmm����KRl�V2B1�4"b�$s:m���u��D�g�;틂��6G�F=`�!V�d	j�;�8�S�
5!�9�\Sg֋�
�	�$�4��� �%�ĹSt*�U_
ob0�{�"�Q`��(`��ɷ�x�>�x�\����Zc�n2Oo��-DŘ�e�ݞ_N�	,��{�p�^��]�e5�:�9U����x��@!	��|#�-<G�rd�Qg�l+�4�:ـ�8���ٺP��*
�E
�X&pG٪�&�q��Dஉ=�H����L�P�`�0�U�	]��/��>GJ�=�J����ܕ�zc��XR2��$Sr�D)��U^�m�X���{5Du�^l~V���$$��|��e�9���Ȧ̸�…LWM�3n46J�t&�*Hd��}���q+�9�q��eU%���`�~څP�k"d��`>��6��zBΖ&�	�[��؄�p8�v�K�����D���إ
6)�=V74����v�+,�*Qo�m����9��.��M��#L�P�
�/#cM�^���i��h�*FX��'��s��+x�
v���4��{%b�"����l �Eù9���(�S"�2�4mU,eF�9�|�8eb\��O#J(���!!6�4R��\_֌Yi�1v���[��[\�Ї��j���4�D��~`�2��ԕ�b���������a�d��rs�ηm��`Iel��T]ƾ�6��p��S�y�a6<�9}jeY{�D�k3	.;F֒u�0;�e�b������So#���I�Kr�s��A��,�)�N�!�t�L.x	S�A�r�!�4�U3���P����v.�I�e��>/ݑ|P�K�LT�dʄg��x�_:ɔ �-!�T�i�j��3i��
۫��Qr�]��C���K�ӝ�xb��=�v���i�cQ/GO{:���O&�j�we[tk����Ea�0jA�#�~�-ó�pT�e�6/����lg��ĝj��r����n��VL���}��ce����r��S���
,�s�^�'��vKq19c�k�{�mfQt���	���J���oH�Bq�m�A���4*�{�͆�a2���OS0��^5ÛXj��t�|�Mya,S�M�cA;B�-W�%���t��o��2$�ɝ�-��9!��0瑣�ځ��U�H~���s�܈s���Z��5�r褤
�,���S�We�l��H�]�-q8Ȓ����I˾zF��f�b��S���%萨�g�jV���j)��Qk�h�^�Vj5��)��c�6g��Ng�8ۊ�>�{�ۼ$ɁT�]���1����*����k]H���E#g~D�f�|�8
b���(�X�y�\�
]���1����.ڴ0¨���"����D2��O��ER-�e=E(��� gS�y�︩,*\4ܒ�de*)qJ�*��[�˃C�w{�rN��h�?�'���d{�9c$�׏.R��p�I��|1�,�Z��׭�����ʞ$++�t����k�T�9C٤R�<�F���;����w6Q�7�u�M��b��}2-
�@��/nV3Xr	 �[]%���`�ܰ�Fz��c�(1��o��x�v�����j�JTq�F潸:��6+�%i*�~"�M�#cV)�׵J����f��m�_4d�'\�;��A͙k.%���lj�	y�4%`TP��3�K�5��I
�7�J�l�h�7!�!���rZX%N�19]Ѱ���5j�{^�T^��'Vt��z���O9`�+���{!���瑃�C�F!�JL0#�Uj��u�� xa~��)(*��bfB�ޘ��L!�Yl�4ɬ���\���P�
�&���–%(�Z\'3f�fi�D�L��o�J���x“*��&Z�sb�E�<�l��[la�JM�q
��n� G�7�DsI���G�d�|M{֪݉7��%NP^�O|�$}��oi�X͐���^�)sϋZjn�@6@Qjל��m�Q��o'"�[
(� P��,�����z������r"�m�UoZ	��O��;���t��F75"*»ÔI�9��u��<6���7�.Țn<��@�X*&�+UOU��O��yɸӁ`�&�ѷ�<H��}WM8��C��L�z7�*u�]�c�<����aII{�q�7�oh6N]��8@ ���B��P��w��W�3	�S0�[Br�”݄��`;-/��
�M�*U�̏�h�F,!C����ow�ͨ`~%6�1�IX,�*ַ7ѻ,Y�dՖ�Y35��GU!�-�8��\�3�m\6j�
��ÿ�=�۪��ڒ3Ri�]�!9�(���|��u�x2�|.���k�=1Y`"��X��9O
�j�M�_��+��ͬ�cC
rwy0V��(��u�؉UV҄�J[76��dǪ�v,��?�KU��,έR�|y��zz�z��"+�5S��9�`
$�``
s�`�LX�4m UU�����Ѣ�� ���
р�|�n_^d����A���
3w�dn��a��%A�YĮf9���GtNs�Xf�:����Y�\yi��D����DT�z;��f���\̖ӡԍ�
��1�-��Gj�Zj�"/�Z_+{P�t3�U�б��Ζ=��f�I!ʰB�	���}���`��&Ņ��1.Y�wځgW/���	��QA[��6`���j3  J݈��M��Uo����q	n�he��o��^
VL��ٛ�cD�
��$m-y�3��D֍X�U��Y��oL��`��T�����>z����$�,������8%��P��W&����ro&bD]#MN[Ɇ�R�Y�P��bb" I얕�n�]v�m>����im���h
̊�<aj��W3-���<��T�JKV�=�@t0��,H��c\�%���:�(���q6Ȏ�b�9�м8h^h3?t���o;g#Ċ
�����I��"s]�Ȳ�vT��*5��7��vp�=����B�AW���3/K�R�
���Y24�׏JB��e�~~R��<b�:���O��6�7����Z��P��ҳN2�U���F�M�ƚ7�K�3�E�wDUG���F��[�QImRw9^'�4��)u�$��iu�tV��[���0�*]V��%6���G�ۚ|I3�w��`ԬH&$��G%'˒,��V�nܯ5��	��'P��Z�g��mTƮ��K���p�%LL���;e�C��<�NG�I���5�K͎67
�b�Yj���-v����8}��ꔲ�A�Hy~}�O��"�����2�[��L?
��lŐrɝ“�(1��=r*�)�SmZ�6ЌLdjɋ���Y��L��JF�
�u��
I蹄��DP�ǚ���p��Nin0u@p�%j����$�>Y����8M�G6YȱÔ��9,���X�K�/A����,Q�H��u��ɛ��T�5(��Έ�lHfm�;8;��>KW�]������c�K��K�X��P�xJ��$zlN��B$7��-�쾒E�āq͖����L�e�x�>� ���ih�Y&�~��9I���~��p���U�g�F�(�*��˄�A�Җ5B{�X9aF�E;�{�΄B�k��?�h~���}�)�Y����W��؝���Gx	�9W��&2y�V�=�V��5��ZA�3��is�k�?���(ې��ǯ�@�7���)éD��y�3�x�k�����S��d`�U]�'�LK,+&][N��C��I�D�j�VDX	��lKT��Wf�#�
�^u�Z"2������mQ냵��e
�
��J7�۪k����q�BŇ��#Z{!#�ȟ���v�I#}χ�����3
�v,ݥ����&U�D	3K��=:���p)^a�\��C{�~k����I'��aC'c�c��|�Bú"@4��	z)�����5�\�ԙLw�X��G��得���!B`@<�j7;�°m3��5��X�5!�1�?1�p�e6ӯ�w���J4���>���v��:h���e
��Nj���;d���_� ��rj�������[A���:#��C�
MR?�ZAp��4tj��F��Y)�H�R9\!o�<}�2`E��͕1�hb�M3 �+��:ae��O���5)����jB��Ʒ��d[{�jI�.eq.$�ZUYB�b ���	�;|�Š�〡mp�5;���x܂�~/��b%X-���m`n����	�Mm6��9dM�"y–!�Y�ꐙD�+Y���Ѿ׺���u�Zܺ�"*��P.I����ٔu��]�����3V���
��Ҁ1��ė�VI36a'	�^p�����63M]���y��Oq�*�Ռ�	~�ޝ֌�:�b����}�T�N�#��	�{�?�xG�f�72�* 4�d}��t��T�͏؆e�|[|�𢇈�a�pll���r��S��c����x	�S�"�������J�;=��i�3u&��[	�Vld�]n��Q�*��>��|�b�g`�FcX�`��@멯&IT5h��"ش³f̋'l]��Ŕ��AT��T�bƥB�"�ڈ)�Hή������ų�|O4@Q�C���#�R���$�]6���d-z�'�1���O�(��&o�X���R'���]Q�N���Y�jʼ��b|� /9o��u
[8S3nB�
��H���p���v�[Qh�'*^,�i�J��@F��#ġ1c:D�����-����!-�bBm����@�Ɩ[l��L�U�">V#'U%kD6��uD`��
��<��0��
���e�YM�MV��q��O�����pFt��F���*��y�S�tkbk�S�	t|�G{lu��~��C�AK�}q4df�D��.4��L��ñ��%�<�A�^�.
�m4=��3Im�<&6�dR� ��[d�bKEⅨ��G%���+�cnN�|kC��Ԇ8/N�gY�R!�h���X��(m��Ȅp�\��A
\�7�%�{d��YK@���tno�䐧22N�i���s���F�2�^�x�:e����4n3��B
B��B�:y}exE��]}M�Om�wxzN��dv?\�d~g[G[g�M��iu���IBN�D
�4Īj�.���C�9�F��p=�u�V H��:��#l)��5�D��4�ÐM"��[a�J4d}���	C��w��I�\�y�E�a�i@�$Q]��^?�a^+�8������)�C�vt��/�\�L�)�(Ԙ�-���,��:+X�Ѻ�#X�p���Ͳ���į�*��7�j�e�����0���J�4>���˧��B[�C!�g��Q��
�w-�YWð�)5u3׹�'�Ty&Zj)[)��2�E�_٦��g�'���V[ZYq��Z)Lk�D�G�|��w��P±(~8�>C�]��	��"<zW��x�����Ju���4��D��,J�Z1��-���"3�>K�0�"Vx!�j�M�$�D���r�t#���.U��i��	h��9��v]!d����6�����g)�]!�Hk>d4 3�@o���VZ��D��-��ӟ��hМ��y)��y(�^	ټִה��ة�#����'�ͦJp�9���Y.�ȸ��BmR��W�2M�)d)�s9򳡦L��p3!�~	�"�X�ƛ���M]�j,����q��;��
,�7T�Uڰ}�_Bv�����?G�x�r�e.���%�c��X�Owv��>�BriK�rz�	�v���|��[ �d����=s��si%�1�b4����BW�U��J�~����I�R3�&w����5]z�3z�7���icr &O�o!N\ܮ���.�9t壽�R�I.Ȁ_3��B�Yc4,,G7CT�IR�������Z9�
Xʤ��*��S���ث!
��t��MXm�v�8b�/͔�����oX).�^4?��xn��Lo���$��OɈ��j.ظK� ���D�ЗSݤ_�z��`�@��)�����j��H�
�GK	�<�m	��L�gI`����.���.���h_a���T�n�\_�X�22��O:t&�w�<k�<���*zg���с���#�9%��im�X4��G�=�_—T����HѸGK0��+��Ͷ:��L@M��:�����\��y%��)�^��Y$@�bB]]4>�]f;�m�Gf�:��2f���e�Eq�\�u#��V%��0F��ʱ�m�;&��Xj����R!8pg��4����_W��
�תqQ�����/"�	��&��z̠bd�BBJjU�ɺ��3�E���8�?SH���e=v9���"A��V��f���J��FU�l#�:"X��T�V1����¨�R���f\��]@��[L\�a���uUCtx�+yU`�O�X�tAj�훸��r6Yʚ�������t�mLL���W�?"9��M�xLi3CgZʙ��6�QٸovRc�		f�܅��{�nc~������:���N2�`�*�Ca�.�Dj��O�`�5aڅ�C���`�%�cK�&��ȍe�����"t�d"$x�|��)��d�Yw>3еY�)�sဲគYe�et�\�� pE����{v�m[8��P�AM�]e��O9촹S�΄����ހ|Y��}��z���WQ�&�v�}~E�g�d	��s��)Q�6:�-6XNғ�M���x?Y��}��{H�sbY
[��~�<�	��aN	8�z�%��T�-�<O�_�X�|"@�~��=��Y%�*��o}�LK�x�
Z�f)�ljjNi�5��X���U�y���&�AüJ~�Z��Δ�6���Zڨ$S_B�
����E8z���HtF�����e��D��U�1�l��\m��XQ�7���݌���*=o�J12�S���7&+��P|X���X�i��r���u��R=Fι�XO��N��[Xi9�c�;YQY~��]B���i�h���ᣢ�5���3��-BD����۳�9d�s�!��zE��Nލ�Q�S�!z��@�aC��)��Ѓ	~g�|��%�ۚ��C`�9ʂ�J?��gvX�%z͗�7�Q���MNJ�3_��b9!�	9'��&�vY�0)!���t��|EE�t��û�	���AHF�/e��s�Q8���g6�y1�n��զ�Ur_ݸM��C��
7�Zwk�U�:�Zl閳��� X��X�c5f\��� �F�/�e:��!g��̖�1�ҿ�~h���]�L�`�
����2Jj��A/���O]��"����CVf�w5H�$=%�"���`F/�� d/�PMbO�ASZ�Ģٳ���M'�[�Q`�2'�#�R8t��
�n^˘�'���Й
:X�6Յ,�ݲ;��;]̺����3=�f�,��)�}�NOU.s&�\I��`q�ޥz�:)�gSm�	�Б��R2���oJ
�an�!_��0|��#���SP���c�)=kCߌޅML�4$�V�6�3��d;Ȯ?�|�6sr����XU�;�~���z�$8˜C��k>��2ϋ)c|9��h�
�WY�l�xE#55K�~�xh�H��ĜhJ��>wX!����${̺ȿM��>,P�	�z@���=56�#�x<�ȅZO���,�G_���@2p�ʅ�ڪL%ʤq�<PV�\�?�
�&�vP���XC��T�Y����&��"
J�8�U_�b"�Xߚ���r8�0��+�C/�%���3
�S�w���h1�Uq?�h��buD�1��M�M��q��m�؞Y~o2�ߣ8�-)놌�nA�X!��P�El5Db�+���]2qF�F.���7d��*�a*T��gu�7(��SgՊ��W~<���#�|[[�=1���^�'����*���rt��vz"�����ܼ{'�&�t�g���)9b�~��8��(j�W4[��X�9�3�gI�\�94u�Ԗ�Y
I<
U�o$|(��
U޽�D�<KL����Nw��a�X
^g=Pհ��-ք:��Np�v�KS2����wF
�4��y�ybU��}	�X1%������k��p�9+O\ND��{&z��ծ��M%��r	��U�֛b��W�0���2��fN�f�e���)	Rr2F��[���dr;m�Zwr1��B,�.����u�ӟ5C�4j�,?�.���h?dg��Xt���n&���.PJ'@��3����vW��8\�*�
�a9��T��J�����#��F��a�����;m��+��a����g�jP�-��,�E�JP"�#4#�s�S5��uF}���Ldh��R)El�0fJ�%jIb�k�`Vz�|��t�QX���W<U"O���:C]��M�Z*�uZ��w�]�6{�h)�%N����i&��C�(p�7f�rK2�b�b�3�eni{[N�8�q�a�T�iD�����O�����]]<W��
0M��`*q�ӟ1㶔��f�s�g~D8Y����m"�H_Yg��P�
dR�e�ʥ����!�r��_��(s���TL��ȟ�T��3������#.ucZ���l� ia�ʵj^+�dR�ls���WL� 1b�`C��|nY��m�r�ؚ;Eo�m�q�(Y,�.T5���5%l85�_�F�����ƹr�������g2P�Ju%5���M\N�%]�a����0��7Z������{%��T!�F���w�L
�3��k���*���b��ø�Օ��F�TS"�*�Z	M��3W�	Z�^�Q��x����*����M+�s��Fɫ$lb�eQ��a�_�L5�!$]��%_�٘����X�V.�Ņ�c\�g/��JL�?�=��"Y�BU��<��Nx#�Z���3
똅���iԦT���i�ٙ��b��#zh4�Rʘ��300����jڪKS�MJ\^>��~U��1����sr���4kB����@A'�e}e#˫�C:ZP�bf��wΟFw��n�C6#U0rʕQ�l3vӦ!"+�н�x0U#ׄ�/Gښe�b�
��;��W�x�Xirk��Vs���7�Ҥ,�)�)��5g6��آZ�)!��U�g�D�,/����	�
�XW.+�E&V���~;���2���	���\Ӵ��r���jV��.���;Cl��(ؓ
\&g��f�vy�$oa��4���V��`�zQ7w
s�n��);KvM��A4�D|k�vWy�hk
���(�+Z1	�u
:�@���Z��.��5��Wu-��u��/ʛr�N��ա4���y�JC ��v��J�u$dة/&LJ�u�cӓ�ڊvK�,ߟx�5R&\9ζ�����jm��&k���m��d]PTT��c��'�4̯�2���|E����q�Z���"@���v��f*�פ�	��}�P�f�(���7n��޵�{4 �rZ�B�Ny�T;�|�Ôek@�Ԩ��	r�m�%|�+���$7#۶Vb�`B�b�l��	R]"�\�T�kt�a���c+?��w�Fq�L�ZT��j5U��D��Ư�������ϛZ#H1"�ג�$T�F�9���G���s1b��l]˪��%
�@�N*|y��L�OJ�tJi"2�]A�~�?p��� ;!8��D�'o�I[&
��J�Z�A�n�U-��m�,Õ�*xn���j�~/$���L�V隶�����gi*zA��7A��
�[�lD�+��z��*ΐO����� 2:�!ʱl|ヲ����U�%.19�5T���=�0��KG'��6�y��MȦ�>jO"��^�,�괇Ȋ�k�^,Hʹ4/9pdTZkX�c�/�dTک��=!M)����9�X�����ZL�M�:<<�/�=bl4�'̼�S5+L2�`0�
�e��A�h8m�^,��:����G���.V*@R�*��Y[e�AUb�+�ϊz��LR&�-��̉�1�6�m^#��]��bIh�ٽ�*����&-���lU��nkO|Q��y)9Y�n 'f��n_�l�a7C��3��j��-vl�b;�9m���m���[�k-h[�ڬ*�i���-�R\3���FS��:�xɸ������]�t�n���H=Q���8S�*�;t�յڋl���z�dZP��d��v
�s�R0a�`˝�ڣy�QO��U�Z�n��"�E�D��o����[��QKŵ�+e�z6�\��5�as�����|F֓U䨂�)k��{銐INk��?VoD��p���}[���~CY�s�vUg
	��V���
S+�e.���#�B�~G�Ce��\	�|ڭ��תU����%�ڵ��U�M@!�ND�����B�TcD1���0$�ʓ���xy�}H�z4h�將�a��3}���5	υ��h�\d��$�yt���e�+��t`�g�#UM�Hdx���޴ԕ��iH�O]�}�I��!�6/�!R�����P�ϕ
<��DP_
�&��x�3�V@K�LK
w�
ց���^~�������d��fb?�7
'�9P��(O��[�Y1��P�L94��_�D=�Ld�(`1���6�]Zx!�W�#�ý�����x�V�N�e�]Ű�?qz��@	|��]��a5a?m��´��vM7!J''S�D�N��N_Z�8o0MV��m60�r�P s*G�V<*jdp��,�*�?"惊�q��h�F��^�4��6��bV���I�d,w�#i>��s�R�PZ	�t���>� ��x��+X�Jy�g�w�Q�o��ju����D	Y>*�dʄ�%6=	e8<���.��PE&�7AR��}Q\H��7�_�݌�xz%*f�1L(bH�bNC
t+���C�˼�����%��"is=��Q���#Ncz�C |"G?��������ʫ��^By�"l�[�R�)d4}�-1(TB"h�JK�,��K��h���Fm��-�{wsmP������iVދ|��p�Q�i��u��ma5PT��
B4��4>I0��`:��3�l��)�q���׉>�2kXl�~���4�E�rZxgʿ��ܢR�����S���������ڰ�Y�OS�U��x�=��W��4
	F�s���]��K��xy�}Jj,�$�[3₧�8�lp��n�5���P�9Q(~�4��{H��
�dw&N�@�Dd�,�y�`��t"��R��b���|�
DQ��_�j�A)B�
��\I���<"���vt�of�Y	Ύ܈�ƒnE�q��
�������}�>"Y�O���f��~�.��
�#q��<žςf��|"
��R�/�n,���j�ǯ��]�^�2�`B:�"%0��&�ϯ��*�؆e�01�j~y�W�N%h7���[Ä��]�T0�FO@��M�?��
"��0
�C�9jF��
PH�8K���r*�F���(ս��rm��/,	ސ̨���'Ie��͒��������JLߏJ5�	*���*ڟ��TZ���*��݂�ן��%��a'��K��T=B�+$�UP�:at�`��@��}q��ѱJ#��ê�HRQ���pT��,*��>&(x���͉�ꃶDN�B��f��WVƽzL@�d�(x����.�����U�!d� 7��7���$�o[w��O<��8L�PG�t�����+�X@���?8����}�
����1 �F����N>��}C9	o���,��f����2��gȆr�4�4��	�@(�D�G�Tnۀ�WVҵxx���`�xۥ��wd+�Fm�C\\����ҪZ��&��UNJ)o��5�=%��V�J"�[�/���).�.N�]��y2L,V˵te�W=��(Q���Rܩ*[�������z�ߢ]U�]�Ͻ���%����ղ{&>l!oC�T�l�F���6I��m�ڀ9p?I�X�tF�.���3R��*-� c-�X��.,Tj��2��a�,��q;H�%	p)7�0�X�򠜨��v�&���L�ijee�ɻ��(��E/�a"֟5�f4��bf�Q���-��@$K
��j�������/�J�;��f%�U���S�.U�i�A�գ�U�	(U+a�6
���) �V+y�I#��$Flh������Y�霘��>�0��5W0&xQj�L�DK�}��/#,�Y0Ju9X^�7�
Ql�$m�����#7C�?���M���֡�h��p���z)IP^u��;R�h
��ԹC�'�?�h�(���K��gD;TÖά�^�/�KzT��z8*X�v@���%��H�h*ܖ.')zV�åQѭLW;>�~�)�����fd��PsR�I����03h*�Ŕ����OAQŮBݚh�Z�a��к6B��0C����ҎH�
��|n����JF�b�v��ވ[��z2�P�en��"�L�����ɔy$0��%`��
��!�<��o��M*V
�+�G�ZX`
��7�eI}��#�6!�%�h�K�;�E/�ȕ)\1�}fc"F."p7��~_Vűxy�������Z�1q�~
E��&)�ۊ̃N_���wN:_�ft�*���sR4��6��:͚A��`��H��Oլ��_���;.��+��S�ꐡ�W�y�.�AA�-٤1'�J���%�\/��4���k��n翀#>vUD!�˒Z�&�X�.)� �F�4��i�E1dv�H����
��@�R���M�R�;#�W� P����|�B�Ґu��%2*�p��Xm��Y��i$��J�1Lz�…\�'6
RGq��3��|��Fe�/Ǧ�<&�X�6��?�K�<��'�=Vxȁ�V���b'�.��,6
��L�E%8Y
im!3���g�9��8���`o,�������]I�@�����8]Dħ��A�F��^sj��֚/����sc$��,(w�QQ/8��M-m��Y�X�a7tSa�A�O���TWz@��O�Q/|�EaU�z�{��M���
泍�|d��1����r�'̹���X��zD�DF�Z�"�n��Q�<��,�]Z�jR�✶�(�*2
�o�*Qv�$���f��PEE~8�h���Ϲ�x�7�7#�C�%����~����� 2W�{u��A#s0Z�\�,���&�8�p��i����]	�A`�R*�}7=.|���v�B]�aVm�ŗGv�M��A�FK����2}�;�6��R'ZU�}�l���B��e�ic��B��L��p
xr���xtfo ��E&0	D(7���%�l5��'���H��\ā��O��h������K��MB�D~)���L��K-��Z4H���DN]�%y������!U�U8Td0S�G���4L�F��5�y�H|5��7R��.�{>�0q�|���KF�\���d4���_������fL2�U}�v1��`쥮��G��I��_��&q��dd	º�-�{2��fdh�z��[G!��Ч����z��b��"�
�_U�=N^�Z�Q��9��R}���q�:���N�_R��3Zي�&����SqRG�2�4��]���I��+�[D��;�
K����L��؁T�n{�k�#%���7�Dx]_nˍs�O\TU9�SV4
�����Q��\NGǕT�e�@�d��t:T�ĸ�1Q�.4$<��UT*юgt�<�:Wx�,�@�A��	��z����e	G��:���Y���H0��J��8ʮ������!�U�6��a?e>��ɩ�P�h"��}=�ZUC���7�	`Jk�L�J�@�U�o�X���i/��pD7*��������2��15����bV1�,2��r����}���E��\�f�japЗu�$�V.x+s����a��D�w&D�v����
+6�����\Uj�;�J��U�0dx�
"�R&�j��7<��t��8�jF�tÄ�e�֠�������D^Q�y��׊#y��G˕��2��mF|木'�����yV��$$��>H���*㪵3��*�A/)��4zFF��(cZn��I
~<]�l�G
�z�zQ��*�1�^�\䩢Ԅť��Q4`��i�2�U�d�����ǵ�1k�S�B�%�	ywxu�ʁ�d��

-R�i�w{���8t�J��
li�9A� 2�p,34�)��l.`�Q�H<�S��oۣt������ݙO�G���И�
�����w�� ���9M��lH1!��y�A��{��ʈ����LSU����Z��׸׼�{��"ԣ�ÐדWJn�
��y��*���)�}���ϫ��ꋂ�i�w�
e1�b����d2a{iF�S:�|��2�a `���ՖذTě�Yl$'��I���ќo�av��eT�@�&�X���O�y�6�x�-v
�;ʹ<�
�q��M~H�b�6�̖�hjYڮ}Oi�t�	C��D;@(��t�+�#�mY�Ev�yp )̠L.�L/,�ï��n�y���TI��E�1���zeM���9�|�+�tݫ�Ȓ8����FS�ã\�o~x{�z�‡� �.	��l���U\
W��]5���;�at�8�(u�[�	\o����a��:����i�Ru7%%s�*q
XD,gF%-E.�/�G���Ds.���&�����a̬U���_�i�[*d4�<J7�a����*��b�`�:�H���f�ƺ��;��ٝ�	U4J�t��SV��~�"}���n��Hx�-��P��[b,�Bi��i�rWq0���`�?ޅ�١�MNm��!�?�A=��q1@W$��F���Oq�|��;���8{��/�lhF;�:��M
'�&��E
^9�T�n�L�m�9��v����W�9&�S��C�՟a�8�I+��-D3�o�=UAR������m�1�ms�\#*O&�[K�HȈ^��EV��Ӳ��|a�k6*�Rǣ�g��#�Ge�y3�Z�ʚ F�F&�qi��'>ip���ъ�X�/'�U����>�*LET��~�K��\���ok�rj��u�
���B���Zg�óm�D�`G�o���7�cٚ�s��+{�:r6���0���Иv�rk4�=�y,ۢ;�W��{VI�d�X�F�u�Ju����x2�AM�%�l%�V�N��x�Dݛx0w '�;`M�z����^�B�%�abB���M����P�V��:��M������J���e�g�l˼�=�;�vX��H�TE�"䵘�ﲹQ�y+�¼��YTU�zC!ɻ��/�1�����[m�|.�0B�6q�,���0�h�  N/��SR�Ͽ�� &�ˆU�ZH�l���m�U@Rb���3">7�#Tn�;�t��®��i)�3�)A��3��;�L:�37��j�C�
�a��Jk�QM�g	߮�a�ss9�=X��yry@
-8`Q���(e?%���2H��Ή
,w�U.��`� BU�ʀ�i=Dp1��H ���7g� D*
���a��~n�2��*b�$�.��[g,�����xq�j��Ʌ��ʸ:[0��)� X�`(�nAe���w\���B����^���M�X%ɱ%2|iL�e�� ���I�	�j�[,:�
�K�x�7����Ǵ�_��Y�ug6�ΜX��h%�3&��!ta��D��<��,�OM�Q���9Ϩ)��z3h>;K�`��9nڈOO,j�
S��P#���:qjw�.2g������Bt�My�3�:c:"�,D�c�]��ǞQ�a��g8GZ��H���!T���DPR�r���LX~eT�)XY��k�6AƢ��(���^DM�;{�zs9��g��<u�Q�q0��2X��K[�nW�����u]�g ���R�o����9ӌ�&���ʲ�Ѥu��m,�8�.���a)@��vS8L��p(Fh���
ٜs�����4�&*��ƽ�k���+�B�D
he?L�͇��[#kh"H�۽����Oē�c��7[���R}��4���&�|���C�J:
�it��$}L�K��j`��=�~Z%��6�*���䰿�L>G���܂8�i���R�>�U�[]��&��m�qa�U�C�Z��VV��*YڶJ�٢Й����'جK�-�?���%,�I؝hK�`)�eL~	�Sfr�7�ˉi���������3M4#�J���2�+�5)�t�>_r���ݍ��zC�a��Q�)4�ܲ=�Cڜ��_�f
���А�a>���n[j{���w�Q&fX����]rB��\A��0>���11���i�&{������;/܋��|Xn�E���~�d���&��E��}e���p��j�%��'����0�����,C�	��z9dg	�_l"z#¿!��E.�gy>�n:,0Me�U5P@*�Xh+��0�CT��5K�hR�7]�)��14�n�UlM�-�==��f�4i���B���]T�u����,��xG�++���g9U�@˃|hC��$N�|�M2f!���`��qk���Y)@�zU�"j���sj��g�@�΅4����i<#����gdр�fX��:o�	���9N�Aj<���O�O���Y����=��C���3s��P���q�;2Nl�ܶYB{��q*J�4�M��°�d�Hn�9l8*^�{���f���{����#��[ԉ\dU����6N��,s�Y���W���,v��ѕ#P���3f��6�"�L!�\G��f4
Cv�'W$1��H���8���ʿ�z�>5�'A��a���M�Y�[�3-=Ww��4�m%����9snK�3�nS�4��r�o���ɸ��V^?�JŵP���H�Y=,rM�	�$��r^GFe�^
��\�m޿a�	o�5�o�q�fg/�Ո�@X]�4�����8R�e3t�p��V��pJlc"��N(�H�<s�R���Cx�j�~:'[�:�i�*q�
:���Y\Zws����Ȱ�i��9���[+���
���W��:��ss	)0���z)�Te��[�q�N���P|ٜ��z�BE�Q��1X��H8��"6��H����K�[
�Q,3���+I�Kq��p��K3"���By�{	����!i�"�njP^�fR�C8sS�$=�1�#TRJ���_�Q���e�~���u"7C��V�2�����bɗ�k뗈NaQM�T�2l �H�C9��?Q�� d���L��RC5	iSLRB�$r�I��z�=�˃:��0U#OХ�����bZ-W�4U�+���
Z���8�6FU�`��9ۄ��o�#Yz,)��7����(U�Ak�&JWT&qDsf�6�9�}��
Tz$"
�ㇻ`R�㩕{t*�5�^;�Ɔ���T] ���F�P�1Ye��8ʠ3�b��D7i8����r�+�`�4gVRfы�6݋�,��*aB����
�X5-��k�HLzfpLQ��`Q���r�x���hNy)8��S����1���:�?	Otχ�j�`Zp���<��׋Dd5|���g�H�뵫��q�	�'���v��T�
��C�s���%
:$�l�dљ�Ly�v�ă7��~H�������m����f_x�ዻ��}N�#y]q�wy"� x��G��R�&6��w�;��*�HSIʹQbbC��S�F�@�_[o�8т�8�*�y���BV�i�P��1t���0!&�hIs�_�T$e	ޘ����MF'Gn~h���.i�4�:���G����m\0h����~6{2�V/\f����Yq���qCg�ĒSb�,���WMC"�Ӄ=�1��d����֟A�(��zE�d�6�#=F�7��-��l�x��6���l�`e��������2f2��E�Ӡ;Zg�������b,�9�|Xز�5�f��o��SL�/�T��4:7pl9ڮ�ٵ�^�TcG�@�=M0V�X��L��"=�8U2np)�7��J>�\�Â	 Pr	�&*Tfy�EI,�+�p1�ȷ�(4���sxy*�.�M3�)���v^����S��H�TD����.�l�C�i5rP�O�,��G���p<G���Y�\��W!�4/�ڴ��k���`62W��7�%c�oɾ��?�򳀐{�Q��ML�PDt+9���N�H1�)MA�h�„�Ȏ&����ף��")�J�q�?�;�##�V��ȱn�0&�V��u�ș=�t��`��k4Vn����J0�5F�<�cYC�F��k�j��h�2bݔ�V[:�Ԩ�Z�؜i�Pg��U����J)_����L�������j�C	跤��hBģ��'LN��jxV�
��N+d��t��l3�Q|�k����&�}�q��<5928(?}���I���>Ĭ&� �W±V&~��C�%I5>�k�#4Y�(�m�G�F��_S�Rs��Gܶ�,�9!�H8�1$I���J9X�-&X����`)�T�����s޷�c�W¤Z[�`�9	�w����S��zSl_$�)�R�h,�[4 1QɆ��\ПY�ǜ�p`�!X�ufi^����7m�h���Q�UĎ����8X�HD<�4BF��{[{^B]�ՕU�"�,�A�ڒv�D�y�=�B�
����G�Ƒ��ԇ*�c��)Y
�9��ecϚϑUb�8,��w��^�}��j����d�����%?�WV^%��6��${M
�?�y�?~�����vnoE�,��(WF6�P&v�%8!�Q]�MA�� T�z��>��ٛ���6���i��L<(B}+7��S�H�`QǢez�2[p%�����|D3�S��Z�%��Ye�n!j%"T'6,��R
W%� ���s��3Wkb�l�l\��ڽ_j@���%�wb�����xʶ>��.���@1B�1�wjL�_d�4�ɮb��߹kzG��օs$���5���i�?�L���Fy͌M-*�&�yVS@߰L5��g[���+��G
�h�m���sR�?�Fy�/DOգ!��uZP+a	ӦXB�ڵ�2�S�.=Z�����:���<V������y0�T��%�w��,4L8|�P���&Ha@��M$6E~I�t�<�i��.���,�ಔ��ڶTGxY;�!��}A�c�Ld�S��I�k'�B�vL�#�{zӬ�*�.ڕN2>�9��Z~�L�Ŋ����4F^��m�"��={~��[S����	Kp�f��g<L�������hz)צ� �J��Zx���&���
|�9��[v�	-�~��BШ64$�h��{b S��e���?B`T����=RބgCj�9#�}�K�Z��s�;���f�T�ް���k#_�:@�v�y/�`��:.����M���X��M����]2���̙��$�3BE�e��;o�r�n��e-���߰�Hgη�d�My���NOx*�u�2�,��y1�Ͷ�d�y/+�u�0�`��0ΰP���s���,7t�
�JJ!�=��ۼ�sf,�۩���Ҝ`Q�Zԍ
o:W�ؤ���Sl֑���8�C�D� p�F�Ҭ����<� �l��c'A��U��b=�J|z4��D�t~�E���r>Tl��@$�a�Jkj��T�����L@�,���0է�5�My���z�t�er��S����c#%�di�X�"(�#�����8s�1z#��Ӂ3��楇f)����m:XBo�D5Gax��z�Yͩ^��
��3J�Lʘ6OUf�#��J9u��=�G{�Ie+���H���4-��B��N#!N-�J�����j�./ [*�3��l�	���|��O

}��6�z3���/S}���w���V���~'��|��쳶U��0�~]�*�,������B�Z��w
�^��ry�	��>�yL��4K{��}A����Ιf�
�Dq[���ˬ�0���\&jyNk�̹-��Ο��2���ꈆq��g8C��F'RG���06����
��oW5�T3(���6�,������P��w��x�R���T�n]7�&S6��;aS���$�v�����B
]�^�ž2;�=�`����Bs��`���+�$%��]��A��`+ή�"�̣����Š�χ�����Axw�ӛ�Zm�5��a��Eۜ� rx�7���a�#��|��*7�#�p��������-��9����Nrf�,j��,lk�-ثm� �u!��f��l
��,Z�j]�,k����>�mfKg[�X�	�۩�}
�ސ��{׬��չ�v�e$diG��5/Een7�B"�Kl��]-2�[a���^�c�ݰ N����h������=7D-�LG��O�jh� ��	�
�!Q�R���������3�[�]�:'�i"5P�%��40���&���:
�I��\��g銱��#���\.>�V�c,�S���I���
���8lΆ�y�D&�BT򣢍B�p��H%J��̀�2_Y�:��Y��I&������L�80)k��acS�^.ψ*s��F�P���}�S.a�h�_z`�e�4uf��*�Ґ:��ySY���Ri�3�t�LZ+8-ؙAz�B���y��f�R�M�*��+^ֺ:��^�8�I�}���t!�'D�d"F[Qrk�:;�f�Kڄ�uzS��v�MI���.z�dIF%88AHO\�R�yN�ժ�r�	Y#�xZ	Z.r^�Yf���^��c6V6x�+�S۠��9��b��l@���`�4a�"<�t���)�5qc�P*.��Ji
�V.��]b�a}i]�c��u�j���h�-L�i�`�(K4dv�-:��)��T�s4Q�TV�L�O�
����r�F*�Gٔ����ݧ#B����M����i�V+����ѲF>Zf�M��-H�T	b	��un��8�i�=���c�
Z���^^�&uit���}\���!�r��@�3��"x��w}-\�˳R�����"�8�b
���pԕ�f���6���~��؝eR��3��-iϴ)�jHQ�l#;���ZZ���-��^Z(�_�I���ŏ���$��9{ᕑK�kr8������`�S*h�I��$�NY�K)�E8�����(l�kMe锅R�Ē�(#��z2�mV�Loeˊ�#ˎ"�d��ړYן�K���4�'���_�E˕)@Vh5V�®�ܖ8r,�k��T;^,��4U�K�ٳk,�F�8���e�JMjkQ��?uf�˔
`k]]V�.��N�&�a@Z;�F�Y-�L*S�h�C�e�Axd"5T`�.F�9.y
��6l[y�|�r2'�Z�
%��giz�	�L��E�N��2��l�ooU�{}�Á�*�����
ܕS�%l���M��(�Ru:ى����L�HiiQԂ���R�eZL��fB����Υ
SW���*�ζHW<��|X��ʆN����ᠭ�XT����v&�גq��M�ݏ���a7k�+^�b�xʬ�k>k���N9����zc-�i<.�(G�.͘��^�,��R�)�_��.����.l7�˽:.�Ivڮ�?���&u�%A;9$��r�؄)}
�'z�����[��C,B1,%���D����s8Y?�v�yΨp�ᑶ�ǃ"`�1q�$6����_��� �RA�tw�:�J��m�)s&��TK�|���H���F���B��$��x�x?�8-��q[c@���DNU���%��_i3Y3��V��A�XJ��H��l�b�ĶC�g�m���Q��<.���~.+�.?;���l)�`B�{�*�&IuT,�#�8	��룈_�?�X��J�)�X����j�����W�@p�K�a�ϠF��-C�.
�:Mߝ��bє0��znu����֌�cQ]H[�ڇ�@����`a[k�g�����jTbkdt+)sa�,���O1�$V��$�|@���pX���b1
�+�\�1ilJm*NL�MM�d�\�5�4�ς���Sa�L`,�:$JC0�Ab5��I�H���3��b��e��뼭T-U{�H���0�gO�3Q��?�H��s�Kuq"
_x�U�2i�!�'el#r�x�5��l�{�T�VmUg"n�8� ��v*��1I� ��$BG�5�d�@�m��fP��;B��=��m���<Kњ��t�����Z_`���V�&�H)��2�ݑ�Pv�  GQW�Ц�Z���}�|��i��Y=]ƚR��M�BM��N�
��ʨa0�kn�%�Řu�Fj�8��r�!F8�D�ц}�1�U�!.u;��J��Y��e��\����p'�T���%�\�*�)�me+G�P˙�.ʛ��$k-�,~�i�Ж
A���`c�hB􌴾)�ȗk�W��P���Tȫb'���6�h��]!���8�9�M�T�
~I#�����a��J[S�X�n#��T���Wj&����H���\f��ʃJ9K�{��ha��	�H����Ƈ�؞�G��D��L�X4̉�sk]�k��?���*6���s(���6
fEC�y�b���H����1K{������$a
{�o!c=���[W�W�����*%�u�"��M�kb�b�5ś���HL`z_o����U�aրlb�R�Me�������pJ�pS�T2�a���tz&#�aܙԿ�2�`r5����f��6�J�>���!</l��"ҪU�7��!m�/

����� ���sT�y��D��dO3�?%|X���Y)Ϊ'Ed-�L�?�Oyr����T׭G�'��,��ih��֠D?6��l:	�YH�XB��#����HF:�1Sp�ui4$�
q]H����JQ�4k9I����[�
�ߜ���E�^����C�{�l'����)��lr3�ڑ��$��T�&)^��|�&P��[^�& �e���C��X���_�PK2x�dϠ)չL%�>�#�;i�iۄ�֨��)��g�ta7X>R7"n�Vk�f����q��$� 2�k7n��R)���ğ]r�H�pcIN���.�������$�<7����f������3BE���BGs���.�h����3B˫��v4�(\By0��
ཻ�o���2�~�E"j%�B\?��;+=�Fo(�
GZ�;��Ϝ����S�RT]L)ę��>7�ZN�}N@�5F�,��|m�x�=Iټq���x��i�5s�ϙ'S��ub1�@ �}��Jq�i��ɧӥ��M$��F7��B߈~�Zܭ�����A���ʟk�_���n��^U>�9�0J�#r]`=S�/���V-̧kE,��	�68��8�y?�3��0�$e��hR�4��P�j��ފ�rw�Ig�j��|��uA�=8q���-�Q�[�'�p� 9��$'F�a�j����Oe21��3�6ḾA�����%��n]�bZ��;l������!��đB�`;0��h�NM�6{��]����[r��8qf�����H*U/w�l-|Bb7Ofu�*Lɥ�;	����1B���}l�5g&맡��dB\����ky[��MdA��E��w�%����2&��k��C��λ�|�l�ü��Iw%��������ڠ�,�Yi����
�IU�i�(�A�5גc�����8�$aH���~�K��MU_�������I���@n��Ey9�3�2N�«����^�����]�5�%+V:��0Bv��'+�hPQ8�3�M%ʲ ��m!!���\\\��\���Z�~&H^��W�-�,�)�*N����8��I�l^�]?žU/8;��&t�| �d?�>O1*�W愳��ck�DM^h§X�K6z�$�ա֖6"Mba���aRƖ��v��{2W(5�I'~M�Wt��L`��l��~�L�L��_�d�I��Q
U_[�x��-�U���*��1�l��m�HE���T�C�;�i��Έ�n�J8&�U�ݦ���Xa�$�k��N�p��A�E1�4%e6�X��f��Pb����o�����a��b�*qV���3�8�T�Ӹ�(or`�ў%)�2�WQE���\o[zL\j����0c[ s���[K�N��DWÙ�'R�j�
��H/O��1���d�Ceu���>��JX�Xu��K[��O�|��Pd��)�$�`J���s��b�,�P��A/ȯ�^�]Ph�l�Lc���$���	;��Q�'%�y^b+�����r[����cv%�3��iԆTzlU?��:TH'6�12�M�1k4@h�O�Փ��sag��h/��tn�'<�V��һ�<y��uCdo�$.��Q�rM~�tD˭6QL0!�<�X��M��Lm�CۘT,|b���i���;~���	+�ĶД<�h��:�1�5}³���L$O6�7�0˞�5�m�%X`���ֶN��k�Tj�
�`���9�Є��O�D����`Q�
Dž�H��dL<���a��6YgX�H�%�k�R_fdk��UK�'��͉�+���!�9�hq���1q�D,��/��P)q�E)�KoD�C޲þ9+8LG� N4�9zTH�l8��J����n�w°��>�i��P�p�j�k̴b�[���Ą��� ��Tc��X�T|�@b����?�kI�8�p��x��^j���*2����Y������̠|���h�����&(�� ��ZE�Y���9�[|���{*Z����TH���r�jb�f��Y`H��,o�#��C�bߨ��[U��C�a���Wt�0�1�o�8��6k<R���a���
�LC�fI��w��	8)f>�Aҥ3�ց�%��5�#s����r���0�
ƥ�Cv@Q���I(�E+;�4��a�[�
OA�Z��X��`-[�
?�U@Pf�
�Y�'p9%f	��r-��2Y�g��&GHד�~M�LI'���va��j�XǶ2��DN�O���I�8B�
{i�J&B��TIc�Jh��*��K~�̏f���zu	�

j������)�y��,lp�S�k�ř�[xn�2#�:g 3���U��,�W6�W_��A(�$�_>�)j1u_SSt?p��y	��R�e���Z�����"e�![�<0��|S0��Ą����6���r����&�<��a��L�##��ܲ��w q&��"��&̎Ut�yC�*5s�����^���qNvjYk��e���J$�?���x2� ��d&O� S���L�%jU[�H��QC�&]����j���f�}���M��wٲtV�kV+�Vf�ϳ�>���yv��b5h�+�%�6�'/Ⱦ
����
spa��πj�i�>��%��B5d��}�+&	Q�಺�ĕ�#
�ң�v>Wq�҆8&��cLF�6��s���Q�O���:[Sj<�����6����x	�<L�P�~�0̖l��X.\�',P�mR�2;�0����G��)��!2�XwZK���DE�j�j��-�4/��=�2HRS�>ם�҇wUl��c�f}����6-�q�o��M��D�1�q�G��F�$��y{i�̟i�/:�yk��i��tS0�Q�ݴ�j�Ky@��e���sx��V�e4U����+����t2Wg��d=�Lo���DG_�D��E�g>�o1��
`'�W|T�u#L��L�Q�Բ��jn0�V�
KԹ�t�W���:-���#4�Ӷ�m��g�jZ��r�p�"�z����H�8%�c��I����^�K�h�Gu�`�U�m��cX<=N'��Y�N�B�iE�W-�۫�U�,�j�S��7���5G#9��
�8�>6�J���>�]��ߚ��D�v�SWKU�7�B7r[�(*5����g-M�S8��!����Q���V��� m��&S�|�L��B�<}���f��V	�I�k��y)�&�ŜP&#5��G���|K{��p2;�vdl !�%�x�Uaʆ[Q�%�vN�[���WE�q4#�u��Rr
@��{M����0��d)ث���\ʽ0�"H8p��.*�T��T#;��&��3��R���)�k8#"��S.e2�Zj�W̡4Q��}cVk�4�fĚ���e�k�����rSu�ɱ�r��4;H3}R�[&����p��Ԏ����,�,+k��z�$����sK*��E�Jv��=��0?�u~���
K~>����{B��&l�q��
�%��oF���vq��K�~ۗ�=&�����/��8����J|�(����PC��!�YψBв�PMsPxag��!�r���3"�v�*_6��AkG:�B����LR&�����}�G'<HT
2�v�O%&���L��򀟦Y�h�7�����cȣr�����ٯ/L�����#7�&�g2��Z!��;-%�8����K�5`f%���jpDz�:�X�R\�^RR�G�v7}���%c)������=Nͺqa���H�
�/�b.���C��9[A�C�'r�����(x�K����#д�٧:e'�F��s���?Yʹ�3���)mw��e��	�c�N
Vo%o�q�����R�ץ�FO��$����QA�
�P�I8�+� DZ����rd0���@kV���-�D�RȀ��i�
����Ǟ')
#/I�*��F�%� w��!#S�h]��%FO(>-UIU�z:9u�������]�/M{��Ɖ�<�s"�g�A��#�$�Sb
B�������-��B��Q�*�K$���ǫ�ݙR{q�/�Ήb�l�?���z!���d���1]��VS'Z���{���P��l*_=�=�h�FR=qiRY�ٰF4�B��@Y��^B2k���:c4�+y�$V(��_c~	u�"�H;�[E�ŵ��-�c��v��-*���/��8�5C��x�BI��g �5QI*gm�%Hj]��Dګ���Px�Wl���QFga����3x
,� a�C��Dc
�iN`%Y`I��B��*6�2�s� q9��4�G0׋�o�a�U"�D�.M3��Q��ya4R�m�DU��;8Z�9)25����"7d���Cq���W��$�*��F-���fk��:]�$��=*�<��ua�`�ζ����)j\ߪt��ݔ�Vu#n�.�9:��`` #ӳޘ�d�C��X�W���4ƭz�hF��m�J��e�'���$�*'b�L�.:���M%��`j�h$Hx��.��!g,�^�\~���EOA�e�VL躕��A�u�ܧ�(��ea}��l G���ȕpI���hW�=i�3)�L�qNk�Җ�3[[�j������ֺ��xp0�u�
mf��:ʣɳ����,���M�c+�s�A���kX�^�j�,�5����K��I�y2R�W�DlLh���P��+�0�N,��
F16֤C���^d@R+
�m�e5Z��h�r=|,�#���݉*u%�~W�K�lH	�1�V���A�4e�3�J�.�U��
'X$l��f77z麄�*�pY�H��K��I�&�1oWSԛ!at�	��x�$JgL�\R^D1I`[N��H��N��3�l���L�3���1������)M��N�~%^�,����C��q��,2�Y���5��cC����`;���ʠ���x�N	�BA�$��%N]c=8����n���7�җ	�0��t��l��7����x�X�6.���6�Y�$��d����ăH�Ts�rT�j��z4lD����HZ�Mߡ9h�ހp{�]fݚXw��JȚ�[BƘ|��\&,��H��9��*H \�W�%��(��������JV����
�j�Tf���Q�=����\��U�8�{���?;AҞ?�4β	s��n2�|�T<l�*��_XR�IW�x^�H���R�!d+�,��p^�낼xI��+h�}ԃ*�_��F~���A�K"�[Ej6�
ɨ�h�r]�VF���YԠ��0���`x6)��Ƙv�jL2���}�p��R�Ge������"��/���-t(��3կ��Y�YS@��
��jl�5w�Q�%�I���$�\.��O�����Ӥ�`���i7���Bˉ+�+�\ʛ$�w������b\Ȅ�l�c�v8�_v��0.T���]��UPo+�j-RSS�dL�u����j��(na0=�i��tp��q��pe]��/LM�N�x^�?ᥚ��Ji�XLj�\Б�4Z�g�㰇æ
1�Us
S�e�!Xd14:��i��L6ڡm���	�c�Xd�Xc�\���ڛR��F.0dȬ��Y�>�uo�Z�2��y�`�Q�j�!)��u-Œ�FT��L�َ}MhT�}_4]Tq9b���f��b��
��F  @�¨��h
{���*�:����������, ݫD�j�T�c+d�1k,�ρ*�i�L0�L$1D�X�q��g@2v4���@�Y�$��qb�W��A�6�A �gi#���"�VHQ�aQ�
�ü�q���hݔrE )5���f��j�cd,!��Zp�	Q.1S
�F�/I�
�-�#4RDͶ��X�R��H�2(�-�\XꎣJ�'e�f�bg�d3%�R�2�Bi�Q�����s�ᴌ�EA�Y��ӹ�m�6�2F^1饣�N*¾ga�{eg���ژ8B��0�#�_l
�0�`�jC�G���U<��6d�@����f*��ѫ���:#CsY
����O�H�F�a0u��M��6���d�5��7�G&���
{D�)�G@
��E������������[e"`.�����i�e.�8�J�TZ�TL�`�︨*��j�ry���q'��,��dbo��c�o?�:�H�Q#,�b0��ꪱ�~T�CӚ1�ґ��;
�����0�&R�o̺��5��M�@�)�'�V�!�F�Uu����;2�eR�b�>^����G�~�� U�O4�9��RKP�%'�
�[K;.֠B�~N�"�)p��lz/��Ơr�x�A��L��8r�P��<ŀ_lR:3ԧ&��K�W���s�7�V=p�٨y�m"˧vB�9�B������&��u�Ȁ̸Lq�(ųG��p(2ado!hd�SCw!�jOY����Ta�h����,�p��60�Ӛ�CDgB�z��u��(Ė�wQ|��P{7uV��4��H+H@�R!���^��Wx36!B�����8�Z����;j����@�lxNs�
3[��Y	�)Oz�IdoF&��,#R7�P=��1��[f�*�yiƨ�՘T�3���/�d�ܡ��]���k�ͰH�!7�q,S�t�ls۬���f�c�OۯF�u.a���ݴ�͚�v��W{͛p�Q���_�J3�,�Ihd�q�e ��ٔT��n��KdX��\���B����Z5��*EiT�ZX���Q��Y�m;��h2���jiYh�î�FA`�G�W��#[��Js
�%�؀f/��l����ݗ
C�Q��JgD�[rd.|+����xA����MF����6�Bp���Q�%��ACeD>I�x������ȎYeM�h8��8��=��8�X��D>�=]��l�oD&�����I�m���թ{MAEtK[�ٴ��!�U�1(*E0�����<^Vu����MmRY�BR��jw[�Iho�S��D���Z�(&%
<d��W�T�>	;������Nm�ɕ�hx��(�d8^�k8�Hh[�54��,c=̶Y���-M����"�KQ��
��f�/�ն��K�L@H>�)��á��� ً��G%���F	؈��1HF���G�m]��NM��	/N.�b5!�3��[�<gY�����w���ϔB2��v�+g�!V�+b�������e�=ZWm�G
R���=�\:�nT�+e	�ę�<��h[(Y�LҔtޯF�N��
��)+H��b���5�5��ՊH~����%�S�m�nOLW�c��A~Dž5Q;���i���|�L�I#@�{;Da�
�+�_�reU/�B�G�r�2'~��|r-�����YP�<��|���_���	vM6�N}�Z�06���m`j��L�Q��i,��(-?J�!>���v���p�I��Ѿr�'^���R*?nҔJ6+L�;LUW��RZ�,���J�k.�^�n[�hXC��9�	��	�L�5�Kl��@+aݪ��:�����:������N��E��%��"�����Q��m��I��)�T[��w�?J&��#+&8%����o�55�����ܰn�~�+%�˻��`d�J��̐c	`�#/�:ӒMVY0�!OBy��0����8T���b�����~�^iߘ����@�y���o�V�R�}�!��oI|h|=�Q0��փ�$U��;�Ц�w7�~[f�ʇ�F�ɿ�5b�1��Lf2b�M8�[*E:SrK� �&��a�i���e>��Ɛ�/�D�k�y��IoC=�l&�P�),��`��^�<W�E[>��+;�j��ޱ�� eH���k[j���g�R�*l�䉗�.�"���@�ǔA2`�e��~k?a,s�6ݲ�$o ɣ�h���\x#�1y4�b���t����"�I��ML
�c���O�4�K�R�"��vo^I��o�A
��]PR�����g��ѺQļC���թv���I������_�kLww`3�Q~y�d��އ�q��8�g&���r�q?��{+X�22��Lx�|��Vm�����d��
���b%�(H�����錋����9\
ޟ�CK	��b�/��E�/���g���ozWK�-�PzD�3�|�$����
��v�062d��ow��wO�dT.iٴ�RrSϠuT=m�i���� �)��L���e?�6��Ő/�m��]U��30�EDP7�Nq7�	
Ύk,<��A���%;6�g�d�$�P��>��*�ŽӃ$5���'Cm���}}��^���C>�yp�S�~�h(���^��2C3��ђJ�ni.xAG��[>f6ׇ`�߼�
:��F	ğ��ۼ��t\Vc��F�j:T�v�U�.Hq�{�cr�=��d�ɨ�rv"J�R�'��p��iO8��|��q�HTci��]��2�4��\EC��Y
揑��B�&�@�P�<�F�%�ܖ�b�2É�rD7d;7����߾~���g9_��6O_��·�rd��IN[�]�E�BGڋz���ѯ�nq���="��y���8\�%�
=�6�G�5��$F5�Jy�!�Ѳ���7ˉ�o�<?��˓O���Q;XQ$5h�"#5�۵���Mn
5{v^�
�2�vW��7S
���M��Ϛ�N�ܔ�2��g�N�ڗ��D"j��w�
�U �}|>9�1���nu$������x�_��L���h�B�gDi/i�YAm��z�)�y!��%|! �R\x�:R��bkZ��=����[_wiM��ņ�e������8VcD�L��pk����2ۿ�-N}�v朋.�8Ñ�.\�X`��	�=�3/��,��h3n�׵��y�2k}�<u@�)�АRf��	�<L9��d�|���l����̶B!��I^L&��%�4�2Njl.�DL8Y��і�'D�.�4�7Y�Rש�"��!��U)��/��T�[-^J=�t�%�wq��#Cy�A�z�I�h/=��d��=a (Q>�����"�;,���H
�<H�y���|�A{r૑��{�.zt�ȳ�U��5��
��LO�]ǤJ<�%L{G���cT��v�~�2��vo���K-N	�'�B��=j!U|]����;a�%�U�w��ȡY-ĉ�o"���t����\���n�[Kғ�
�i��GoO�T��4/���pD�O#���gԏ�{
���H]	�ߩ�LF8I�E��}����'��[�0��oQ1��Ɇo�e{Y��Q�T`�i
�$<'Mg�ʉ�YWū�Ǒ $�L� �����ػ@��[��
�!��J_�Xk$�x�W�Q
�˫p����c��\W��V�I��h2wX��Wqdj�ݧu�Y3��V˥���,�<�����xdL�Ƌ�U/���&��~��"[��
�[i�]������?�$�����Ih�.�0F����
�aa����;��Cg�S��j��S�[���V_Zf�
�o٪�oH�ln@vJg����ꫴbm���7����a-e���(��o�E�\�s��΅`��#Ů��2
�l�P�L�T6D�֌Ŏ8��J���g���$�0��ޔ�� �y!x�Y�j��1�kQZ�}�C�"�6Q�/ӚUь���T=[�b,��C(�czt�ٺo�Ӷ�,
���4���g��.�P�S6���@s�y��6�D�O܎^>��6�𷇘�D��0"�>Eb)�%;�t�eH��0S�8+㤫Q'Z��/Uf�Z�ր���gʅ[���ڲ���9�N����J���dl '#��NE�!,s��!���5�L�
�t��NEܥRK�D��	]��������N-���Hv�ɷ�M��7��KW���+	 �^�|�P�3QVa8��f��'�b�Yu�������\�"��br�.��w*�ݔ&�P���m4��zOL�p.o�EG-V�Su���26�����d���T�P�jWݪ%�o�N���v.22\�J��5��K��/�V�55֍�ADZ׃)���r�A�H
Qb6�p�G����]�E0�:�+�PK�&W2 �r���I��litespeed-cache-nl_NL.poUT��dux����PK�&W	CiY���m��*�litespeed-cache-nl_NL.moUT��dux����PK��# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in Spanish (Spain)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2023-09-20 20:29:04+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/4.0.0-alpha.8\n"
"Language: es\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/page_optm/settings_tuning.tpl.php:34
msgid "Listed JS files or inline JS code will be delayed."
msgstr "Los archivos JS listados o el código JS en línea se retrasarán."

#: tpl/crawler/map.tpl.php:44
msgid "URL Search"
msgstr "Buscar URL"

#: src/lang.cls.php:159
msgid "JS Delayed Includes"
msgstr "Inclusiones de JS retrasadas"

#: src/cloud.cls.php:760
msgid "Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more."
msgstr "Tu domain_key ha sido bloqueada temporalmente para evitar abusos. Puedes ponerte en contacto con el servicio de asistencia de QUIC.cloud para obtener más información."

#: src/cloud.cls.php:755
msgid "Cloud server refused the current request due to unpulled images. Please pull the images first."
msgstr "El servidor de la nube ha rechazado la solicitud actual debido a que no se han extraído las imágenes. Por favor, extrae primero las imágenes."

#: tpl/crawler/summary.tpl.php:91
msgid "Current server load"
msgstr "Carga actual del servidor"

#: src/object-cache.cls.php:473
msgid "Redis encountered a fatal error: %s (code: %d)"
msgstr "Redis encontró un error fatal: %s (código: %d)"

#: src/img-optm.cls.php:837
msgid "Started async image optimization request"
msgstr "Se inició la solicitud de optimización asíncrona de imágenes"

#: src/doc.cls.php:31
msgid "This setting is passively %1$s due to %2$s!"
msgstr "¡Este ajuste está pasivamente %1$s debido a %2$s!"

#: src/crawler.cls.php:222
msgid "Started async crawling"
msgstr "Se inició el rastreo asíncrono"

#: src/conf.cls.php:538
msgid "Saving option failed. IPv4 only for %s."
msgstr "Falló el guardado de la opción. IPv4 es solo para %s."

#: src/cloud.cls.php:1396
msgid "QUIC.cloud account has been successfully linked."
msgstr "Se ha vinculado correctamente con la cuenta de QUIC.cloud."

#: src/cloud.cls.php:1395
msgid "QUIC.cloud account has been created and successfully linked."
msgstr "Se ha creado y vinculado correctamente la cuenta de QUIC.cloud."

#: src/cloud.cls.php:767
msgid "Cloud server refused the current request due to rate limiting. Please try again later."
msgstr "El servidor en la nube rechazó la solicitud actual debido a la limitación de cuota. Por favor, inténtalo de nuevo más tarde."

#: tpl/img_optm/summary.tpl.php:251
msgid "Maximum image post id"
msgstr "ID de entrada de imagen máxima"

#: tpl/img_optm/summary.tpl.php:250
msgid "Current image post id position"
msgstr "Posición actual del id de entrada de la imagen"

#: src/lang.cls.php:27
msgid "Images ready to request"
msgstr "Imágenes listas para la solicitud"

#: tpl/dash/dashboard.tpl.php:259 tpl/general/settings.tpl.php:130
#: tpl/img_optm/summary.tpl.php:43 tpl/img_optm/summary.tpl.php:45
#: tpl/page_optm/settings_css.tpl.php:101
#: tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:182
#: tpl/page_optm/settings_vpi.tpl.php:48
msgid "Redetect"
msgstr "Volver a detectar"

#: tpl/dash/dashboard.tpl.php:41 tpl/dash/dashboard.tpl.php:212
#: tpl/dash/dashboard.tpl.php:270
msgid "Sync"
msgstr "Sincronizar"

#: tpl/dash/dashboard.tpl.php:127
msgid "PAYG balance and usage not included in above quota calculation."
msgstr "Balance y uso de PAYG no incluido en el cálculo de cuota anterior."

#: tpl/dash/dashboard.tpl.php:127
msgid "PAYG used this month"
msgstr "PAYG usado este mes"

#: tpl/cache/settings_inc.object.tpl.php:80
#: tpl/cache/settings_inc.object.tpl.php:95
msgid "If you are using a %1$s socket, %2$s should be set to %3$s"
msgstr "Si estás usando un socket %1$s, %2$s debería estar en %3$s"

#: src/root.cls.php:185
msgid "All QUIC.cloud service queues have been cleared."
msgstr "Se han borrado todas las colas de servicio de QUIC.cloud."

#. translators: %s: The type of the given cache key.
#: src/object.lib.php:519
msgid "Cache key must be integer or non-empty string, %s given."
msgstr "La clave de caché debe ser un entero o una cadena no vacía, %s proporcionado."

#: src/object.lib.php:517
msgid "Cache key must not be an empty string."
msgstr "La clave de caché no puede ser una cadena vacía."

#: src/lang.cls.php:167
msgid "JS Deferred / Delayed Excludes"
msgstr "Exclusiones de JS diferido / retrasado"

#: src/doc.cls.php:156
msgid "The queue is processed asynchronously. It may take time."
msgstr "La cola se procesa de forma asíncrona. Puede llevar un tiempo."

#: src/cloud.cls.php:1064
msgid "Contact QUIC.cloud support"
msgstr "Contactar con el soporte de QUIC.cloud"

#: src/cloud.cls.php:1060
msgid "Unknown error."
msgstr "Error desconocido."

#: src/cloud.cls.php:584
msgid "In order to use QC services, need a real domain name, cannot use an IP."
msgstr "Para poder usar los servicios de QC necesitas un nombre de demonio real, no puedes usar una IP."

#: tpl/presets/standard.tpl.php:190
msgid "Restore Settings"
msgstr "Restaurar los ajustes"

#: tpl/presets/standard.tpl.php:188
msgid "This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?"
msgstr "Esto restaurará la copia de seguridad de los ajustes creada %1$s antes de aplicar el preajuste %2$s. Cualquier cambio realizado desde entonces se perderá. ¿Quieres continuar?"

#: tpl/presets/standard.tpl.php:184
msgid "Backup created %1$s before applying the %2$s preset"
msgstr "Copia de seguridad creada %1$s antes de aplicar el preajuste %2$s"

#: tpl/presets/standard.tpl.php:173
msgid "Applied the %1$s preset %2$s"
msgstr "Se ha aplicado el prejuste %1$s %2$s"

#: tpl/presets/standard.tpl.php:170
msgid "Restored backup settings %1$s"
msgstr "Se han restaurado el respaldo de los ajustes %1$s"

#: tpl/presets/standard.tpl.php:168
msgid "Error: Failed to apply the settings %1$s"
msgstr "Error: No se pudieron aplicar los ajustes %1$s"

#: tpl/presets/standard.tpl.php:158
msgid "History"
msgstr "Historial"

#: tpl/presets/standard.tpl.php:147
msgid "unknown"
msgstr "desconocido"

#: tpl/presets/standard.tpl.php:128
msgid "Apply Preset"
msgstr "Aplicar el preajuste"

#: tpl/presets/standard.tpl.php:126
msgid "This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?"
msgstr "Se va a hacer una copia de seguridad de tus ajustes actuales y reemplazarlos con los de los preajustes %1$s. ¿Quieres continuar?"

#: tpl/presets/standard.tpl.php:116
msgid "Who should use this preset?"
msgstr "¿Quién debería usar este preajuste?"

#: tpl/presets/standard.tpl.php:91
msgid "Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between."
msgstr "Utiliza un preajuste oficial diseñado por LiteSpeed para configurar tu sitio en un clic. Pruebe el cacheo esencial sin riesgos, la optimización extrema o algo intermedio."

#: tpl/presets/standard.tpl.php:87
msgid "LiteSpeed Cache Standard Presets"
msgstr "Preajustes estándar de cache de LiteSpeed"

#: tpl/presets/standard.tpl.php:80
msgid "A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Activa el máximo nivel de optimizaciones para obtener puntuaciones de velocidad de página mejorados."

#: tpl/presets/standard.tpl.php:79
msgid "This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images."
msgstr "Este preajuste es casi seguro que requerirá pruebas y exclusiones de algo de CSS, JS y carga diferida de imágenes. Presta especial atención a los logotipos, o a imágenes de carrusel basadas en HTML."

#: tpl/presets/standard.tpl.php:76
msgid "Inline CSS added to Combine"
msgstr "CSS en línea añadido a Combinar"

#: tpl/presets/standard.tpl.php:75
msgid "Inline JS added to Combine"
msgstr "JS en línea añadido a Combinar"

#: tpl/presets/standard.tpl.php:74
msgid "JS Delayed"
msgstr "JS Retrasado"

#: tpl/presets/standard.tpl.php:73
msgid "Viewport Image Generation"
msgstr "Generación del viewport de la imagen"

#: tpl/presets/standard.tpl.php:72
msgid "Lazy Load for Images"
msgstr "Carga diferida para imágenes"

#: tpl/presets/standard.tpl.php:71
msgid "Everything in Aggressive, Plus"
msgstr "Todo lo de Aggressive y además"

#: tpl/presets/standard.tpl.php:69
msgid "Extreme"
msgstr "Extremo"

#: tpl/presets/standard.tpl.php:63
msgid "This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning."
msgstr "Este preajuste puede que funcione tal cual en algunas webs, ¡pero asegúrate de hacer pruebas! Puede que sean necesarias algunas exclusiones de CSS y JS en Optimización de página > Retoques."

#: tpl/presets/standard.tpl.php:60
msgid "Lazy Load for Iframes"
msgstr "Carga diferida de Iframes"

#: tpl/presets/standard.tpl.php:59
msgid "Removed Unused CSS for Users"
msgstr "CSS sin uso eliminado para los usuarios"

#: tpl/presets/standard.tpl.php:58
msgid "Asynchronous CSS Loading with Critical CSS"
msgstr "Carga de CSS asíncrono con CSS crítico"

#: tpl/presets/standard.tpl.php:57
msgid "CSS & JS Combine"
msgstr "Combinar CSS y JS"

#: tpl/presets/standard.tpl.php:56
msgid "Everything in Advanced, Plus"
msgstr "Todo lo de Advance y además"

#: tpl/presets/standard.tpl.php:54
msgid "Aggressive"
msgstr "Agresivo"

#: tpl/presets/standard.tpl.php:49 tpl/presets/standard.tpl.php:64
msgid "A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones de velocidad de página."

#: tpl/presets/standard.tpl.php:48
msgid "This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools."
msgstr "Este preajuste es bueno para la mayoría de webs, y es raro que provoque conflictos. Cualquier conflicto de CSS o JS puede solucionarse con las herramientas de Optimización de página > Retoques."

#: tpl/presets/standard.tpl.php:43
msgid "Remove Query Strings from Static Files"
msgstr "Eliminar cadenas de consulta de recursos estáticos"

#: tpl/presets/standard.tpl.php:41
msgid "DNS Prefetch for static files"
msgstr "Precarga de DNS para archivos estáticos"

#: tpl/presets/standard.tpl.php:40
msgid "JS Defer for both external and inline JS"
msgstr "Aplazar JS para JS externos e incrustados"

#: tpl/presets/standard.tpl.php:38
msgid "CSS, JS and HTML Minification"
msgstr "Minimizado de CSS, JS y HTML"

#: tpl/presets/standard.tpl.php:37
msgid "Guest Mode and Guest Optimization"
msgstr "Modo de invitado y modo de optimización"

#: tpl/presets/standard.tpl.php:36
msgid "Everything in Basic, Plus"
msgstr "Todo en el básico, además"

#: tpl/presets/standard.tpl.php:34
msgid "Advanced (Recommended)"
msgstr "Avanzado (Recomendado)"

#: tpl/presets/standard.tpl.php:29
msgid "A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools."
msgstr "Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones del sitio en las herramientas de medición de velocidad de página."

#: tpl/presets/standard.tpl.php:28
msgid "This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners."
msgstr "Este preajuste de bajo riesgo introduce optimizaciones básicas de mejora de la velocidad de página y experiencia de usuario. Adecuado para principiantes entusiastas."

#: tpl/presets/standard.tpl.php:25
msgid "Mobile Cache"
msgstr "Caché móvil"

#: tpl/presets/standard.tpl.php:23
msgid "Everything in Essentials, Plus"
msgstr "Todo lo de Essentials y además"

#: tpl/presets/standard.tpl.php:16
msgid "A Domain Key is not required to use this preset. Only basic caching features are enabled."
msgstr "No es obligatoria una clave de dominio para este preajuste. Solo se activan características básicas de caché."

#: tpl/presets/standard.tpl.php:15
msgid "This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development."
msgstr "Este preajuste sin riesgos es apropiado para todas las webs. Es bueno para nuevos usuarios, webs sencillas o desarrollos orientados a caché."

#: tpl/presets/standard.tpl.php:11
msgid "Higher TTL"
msgstr "TTL mayor"

#: tpl/presets/standard.tpl.php:10
msgid "Default Cache"
msgstr "Caché por defecto"

#: tpl/presets/standard.tpl.php:8
msgid "Essentials"
msgstr "Básicos"

#: tpl/presets/entry.tpl.php:14
msgid "LiteSpeed Cache Configuration Presets"
msgstr "Preajustes de configuración de caché LiteSpeed"

#: tpl/presets/entry.tpl.php:6
msgid "Standard Presets"
msgstr "Preajustes estándar"

#: tpl/page_optm/settings_tuning_css.tpl.php:41
msgid "Listed CSS files will be excluded from UCSS and saved to inline."
msgstr "Los archivos CSS listados se excluirán del CSS sin uso y guardados para que se incrusten."

#: src/lang.cls.php:142
msgid "UCSS File Excludes and Inline"
msgstr "Excluir archivo del CSS sin uso e incrustar"

#: src/lang.cls.php:141
msgid "UCSS Selector Allowlist"
msgstr "Lista blanca del selector de CSS sin uso"

#: src/admin-display.cls.php:121
msgid "Presets"
msgstr "Preajustes"

#: tpl/dash/dashboard.tpl.php:169
msgid "Partner Benefits Provided by"
msgstr "Ventajas de colaboración ofrecidas por"

#: tpl/toolbox/log_viewer.tpl.php:93
msgid "LiteSpeed Logs"
msgstr "Registros de LiteSpeed"

#: tpl/toolbox/log_viewer.tpl.php:21
msgid "Crawler Log"
msgstr "Registros de rastreadores"

#: tpl/toolbox/log_viewer.tpl.php:16
msgid "Purge Log"
msgstr "Purgar registro"

#: tpl/toolbox/settings-debug.tpl.php:166
msgid "Prevent writing log entries that include listed strings."
msgstr "Evita escribir entradas del registro que incluyan cadenas listadas."

#: tpl/toolbox/settings-debug.tpl.php:17
msgid "View Site Before Cache"
msgstr "Ver sitio sin caché"

#: tpl/toolbox/settings-debug.tpl.php:13
msgid "View Site Before Optimization"
msgstr "Ver sitio sin optimizar"

#: tpl/toolbox/settings-debug.tpl.php:9
msgid "Debug Helpers"
msgstr "Ayudas de depuración"

#: tpl/page_optm/settings_vpi.tpl.php:91
msgid "Enable Viewport Images auto generation cron."
msgstr "Activar el cron de generación automática del viewport de imágenes."

#: tpl/page_optm/settings_vpi.tpl.php:28
msgid "This enables the page's initial screenful of imagery to be fully displayed without delay."
msgstr "Esto permite que la pantalla inicial de imágenes de la página se muestre completamente sin demora."

#: tpl/page_optm/settings_vpi.tpl.php:27
msgid "The Viewport Images service detects which images appear above the fold, and excludes them from lazy load."
msgstr "El servicio de viewport de imágenes detecta qué imágenes aparecen antes de hacer scroll y las excluye de la carga diferida."

#: tpl/page_optm/settings_vpi.tpl.php:26
msgid "When you use Lazy Load, it will delay the loading of all images on a page."
msgstr "Cuando usas la carga diferida, se retrasa la carga de todas las imágenes de la página."

#: tpl/page_optm/settings_media.tpl.php:246
msgid "Use %1$s to bypass remote image dimension check when %2$s is ON."
msgstr "Utiliza %1$s para saltarte la comprobación de dimensión en imágenes remotas cuando la %2$s esté ACTIVA."

#: tpl/page_optm/entry.tpl.php:10
msgid "VPI"
msgstr "VPI"

#: tpl/general/settings.tpl.php:189 tpl/page_optm/settings_media.tpl.php:240
#: tpl/page_optm/settings_vpi.tpl.php:32
msgid "%s must be turned ON for this setting to work."
msgstr "%s debe estar activo para que este ajuste funcione."

#: tpl/general/settings.tpl.php:122
msgid "Main domain not generated yet"
msgstr "No se ha generado todavía el dominio principal"

#: tpl/general/settings.tpl.php:119
msgid "Main domain"
msgstr "Dominio principal"

#: tpl/dash/dashboard.tpl.php:536
msgid "Viewport Image"
msgstr "Imagen de la vista"

#: tpl/crawler/blacklist.tpl.php:57
msgid "Filter %s available to disable blocklist."
msgstr "El filtro %s está disponible para desactivar la lista de bloqueos."

#: tpl/crawler/blacklist.tpl.php:54
msgid "PHP Constant %s available to disable blocklist."
msgstr "La constante PHP %s está disponible para desactivar la lista de bloqueos."

#: tpl/cdn/entry.tpl.php:7
msgid "QUIC.cloud CDN Setup"
msgstr "Configuración de la CDN QUIC.cloud"

#: tpl/cdn/auto_setup.tpl.php:255
msgid "Are you sure you want to delete QUIC.cloud data?"
msgstr "¿Seguro que quieres borrar los datos de QUIC.cloud?"

#: tpl/cdn/auto_setup.tpl.php:252
msgid "Are you sure you want to reset CDN Setup?"
msgstr "¿Seguro que quieres restablecer la configuración CDN?"

#: tpl/cdn/auto_setup.tpl.php:248
msgid "If you have not yet done so, please replace the QUIC.cloud nameservers at your domain registrar before proceeding. "
msgstr "Si todavía no lo has hecho, antes de proceder, reemplaza los servidores de dominio de QUIC.cloud en tu registrador del dominio. "

#: tpl/cdn/auto_setup.tpl.php:247
msgid "This action is not available if there is no domain key, the domain is not linked, or the DNS Zone is in active use."
msgstr "Esta acción no está disponible si no hay ninguna clave de dominio, el dominio no está enlazado, o la zona DNS está en uso."

#: tpl/cdn/auto_setup.tpl.php:243
msgid "This allows you to try Auto CDN setup again, or abandon the setup entirely."
msgstr "Este te permite probar de nuevo la configuración automática de la CDN, o abandonar completamente la configuración."

#: tpl/cdn/auto_setup.tpl.php:242
msgid "Resets all LiteSpeed Cache plugin settings related to CDN setup back to the initial state and deletes the DNS Zone, if one exists for the domain."
msgstr "Restablece todos los ajustes del plugin LiteSpeed Cache relacionados con CDN al estado inicial y borra la zona DNS, en caso de que exista una para el dominio."

#: tpl/cdn/auto_setup.tpl.php:241 tpl/cdn/auto_setup.tpl.php:256
msgid "Delete QUIC.cloud data"
msgstr "Borrar los datos de QUIC.cloud"

#: tpl/cdn/auto_setup.tpl.php:236
msgid "This action will not update anything on the QUIC.cloud servers."
msgstr "Esta acción no actualizará nada en los servidores de QUIC.cloud."

#: tpl/cdn/auto_setup.tpl.php:231
msgid "This allows you to try Auto CDN setup again."
msgstr "Esto te permite probar la configuración de CDN automática de nuevo."

#: tpl/cdn/auto_setup.tpl.php:230
msgid "QUIC.cloud DNS settings are not changed."
msgstr "No se han cambiado los ajustes DNS de QUIC.cloud."

#: tpl/cdn/auto_setup.tpl.php:229
msgid "Resets all LiteSpeed Cache plugin settings related to CDN setup back to the initial state and disables the CDN."
msgstr "Restablece todos los ajustes de LiteSpeed Cache relacionados a la CDN al estado inicial y desactiva la CDN."

#: tpl/cdn/auto_setup.tpl.php:228 tpl/cdn/auto_setup.tpl.php:253
msgid "Reset CDN Setup"
msgstr "Restablecer configuración CDN"

#: tpl/cdn/auto_setup.tpl.php:226
msgid "The following actions are available:"
msgstr "Están disponibles las siguientes acciones:"

#: tpl/cdn/auto_setup.tpl.php:214
msgid "This section will automatically populate once nameservers are configured for the site."
msgstr "Esta sección se rellenará automáticamente cuando se configuren los servidores de nombres del sitio."

#: tpl/cdn/auto_setup.tpl.php:210
msgid "At that stage, you may re-start the verification process by pressing the Run CDN Setup button."
msgstr "En estas etapa puedes volver a iniciar el proceso de verificación pulsando el botón de «Ejecutar configuración de la CDN»."

#: tpl/cdn/auto_setup.tpl.php:209
msgid "If it does not verify within 24 hours, the CDN setup will mark the verification as failed."
msgstr "Si no se verifica en 24 horas la configuración de la CDN marcará la verificación como fallida."

#: tpl/cdn/auto_setup.tpl.php:208
msgid "QUIC.cloud will attempt to verify the DNS update."
msgstr "QUIC.cloud intentará verificar la actualización DNS."

#: tpl/cdn/auto_setup.tpl.php:198
msgid "Please update your domain registrar to use these custom nameservers:"
msgstr "Por favor, actualiza tu registro de dominio para que use estos servidores de nombres personalizados:"

#: tpl/cdn/auto_setup.tpl.php:193
msgid "Nameservers"
msgstr "Servidores de nombres"

#: tpl/cdn/auto_setup.tpl.php:181
msgid "Note: For 15 to 20 minutes after setup completes, browsers may issue a \"not secure\" warning for your site while QUIC.cloud generates your SSL certificate."
msgstr "Nota: En los 15 a 20 minutos después de que se complete la configuración, puede que los navegadores muestren una advertencia de «no seguro» al acceder a tu sitio, mientras QUIC.cloud genera tu certificado SSL."

#: tpl/cdn/auto_setup.tpl.php:176
msgid "Review DNS records"
msgstr "Revisar registros DNS"

#: tpl/cdn/auto_setup.tpl.php:174
msgid "Is something missing?"
msgstr "¿Falta algo?"

#: tpl/cdn/auto_setup.tpl.php:171
msgid "Record names found"
msgstr "Nombres de registro encontrados"

#: tpl/cdn/auto_setup.tpl.php:159
msgid "Count"
msgstr "Recuento"

#: tpl/cdn/auto_setup.tpl.php:156
msgid "Record Type"
msgstr "Tipo de registro"

#: tpl/cdn/auto_setup.tpl.php:150
msgid "QUIC.cloud Detected Records Summary"
msgstr "Resumen de registros detectados por QUIC.cloud"

#: tpl/cdn/auto_setup.tpl.php:136
msgid "CDN Setup Status"
msgstr "Estado de la configuración del CDN"

#: tpl/cdn/auto_setup.tpl.php:130
msgid "Begin QUIC.cloud CDN Setup"
msgstr "Comenzar la configuración del CDN QUIC.cloud"

#: tpl/cdn/auto_setup.tpl.php:129
msgid "Domain key and QUIC.cloud link detected."
msgstr "Detectada clave de dominio y enlace de QUIC.cloud."

#: tpl/cdn/auto_setup.tpl.php:127
msgid "Ready to run CDN setup."
msgstr "Preparado para realizar la configuración de la CDN."

#: tpl/cdn/auto_setup.tpl.php:121
msgid "Manage DNS Zone"
msgstr "Gestionar zona DNS"

#: tpl/cdn/auto_setup.tpl.php:117
msgid "Manage CDN"
msgstr "Gestionar CDN"

#: tpl/cdn/auto_setup.tpl.php:114
msgid "Account is linked!"
msgstr "¡La cuenta está enlazada!"

#: tpl/cdn/auto_setup.tpl.php:109
msgid "Set up QUIC.cloud Account"
msgstr "Configura una cuenta en QUIC.cloud"

#: tpl/cdn/auto_setup.tpl.php:104
msgid "Visit your QUIC.cloud dashboard after the DNS Zone is set up to confirm your DNS zone."
msgstr "Visita tu escritorio de QUIC.cloud después de que esté configurada la zona de DNS para confirmar tu zona de DNS."

#: tpl/cdn/auto_setup.tpl.php:103
msgid "If you have custom DNS records, it is possible that they are not detected."
msgstr "Si tienes resgitros de DNS personalizados, es posible que no sean detectados."

#: tpl/cdn/auto_setup.tpl.php:102
msgid "QUIC.cloud will detect most normal DNS entries."
msgstr "QUIC.cloud detectará la mayoría de registros normales de DNS."

#: tpl/cdn/auto_setup.tpl.php:98
msgid "If you prefer to use the CNAME setup, please <a %s>set up the CDN manually at QUIC.cloud</a>."
msgstr "Si prefieres usar la configuración mediante CNAME, por favor, <a %s>configura manualmente la CDN en QUIC.cloud</a>."

#: tpl/cdn/auto_setup.tpl.php:97
msgid "This setup process will create a DNS zone on QUIC.cloud if one does not currently exist."
msgstr "Este proceso de configuración creará una zona de DNS en QUIC.cloud si no existe ya actualmente."

#: tpl/cdn/auto_setup.tpl.php:94
msgid "If you have this enabled for your domain, you must disable DNSSEC to continue."
msgstr "Si lo has activado para tu dominio, debes desactivar DNSSEC para continuar."

#: tpl/cdn/auto_setup.tpl.php:93
msgid "QUIC.cloud CDN/DNS does not support DNSSEC."
msgstr "La CDN/DNS de QUIC.cloud no es compatible con DNSSEC."

#: tpl/cdn/auto_setup.tpl.php:85
msgid "After you set your nameservers, QUIC.cloud will detect the change and automatically enable the CDN."
msgstr "Después de que configures tus servidores de nombres, QUIC.cloud detectará el cambio y activará automáticamente la CDN."

#: tpl/cdn/auto_setup.tpl.php:80
msgid "Your site will be available, but browsers may issue a \"not secure\" warning during this time."
msgstr "Tu sitio estará disponible, pero puede que los navegadores muestren durante este tiempo una advertencia de «no seguro»."

#: tpl/cdn/auto_setup.tpl.php:79
msgid "This last stage could take 15 to 20 minutes."
msgstr "Esta última etapa puede durar de 15 a 20 minutos."

#: tpl/cdn/auto_setup.tpl.php:78
msgid "After successful DNS detection, QUIC.cloud will attempt to generate an SSL certificate and enable the CDN."
msgstr "Después de una detección correcta de las DNS, QUIC.cloud tratará de generar un certificado SSL y activar la CDN."

#: tpl/cdn/auto_setup.tpl.php:76
msgid "Provide the nameservers necessary to enable the CDN."
msgstr "Facilitar los servidores de nombres necesarios para activar la CDN."

#: tpl/cdn/auto_setup.tpl.php:75
msgid "Prepare the site for QUIC.cloud CDN, detect the DNS, and create a DNS Zone."
msgstr "Preparar el sitio para la CDN de QUIC.cloud, detectar las DNS y crear la zona de DNS."

#: tpl/cdn/auto_setup.tpl.php:74
msgid "Set up a QUIC.cloud account."
msgstr "Configurar una cuenta en QUIC.cloud."

#: tpl/cdn/auto_setup.tpl.php:71
msgid "This is a three step process for configuring your site to use QUIC.cloud CDN with QUIC.cloud DNS. This setup will perform the following actions"
msgstr "Este es un proceso de tres pasos para configurar tu sitio para que use la CDN De QUIC.cloud con las DNS de QUIC.cloud. Esta configuración realizará las siguientes acciones"

#: tpl/cdn/auto_setup.tpl.php:68
msgid "Auto QUIC.cloud CDN Setup"
msgstr "Configuración automática de la CDN de QUIC.cloud"

#: tpl/cdn/auto_setup.tpl.php:62
msgid "Refresh CDN Setup Status"
msgstr "Recargar el estado de configuración de la CDN"

#: tpl/cdn/auto_setup.tpl.php:60
msgid "This process may take several minutes."
msgstr "Este proceso puede llevar varios minutos."

#: tpl/cdn/auto_setup.tpl.php:60
msgid "You will receive an email upon status update."
msgstr "Recibirás un correo electrónico cuando cambie el estado."

#: tpl/cdn/auto_setup.tpl.php:59
msgid "In Progress"
msgstr "En curso"

#: tpl/cdn/auto_setup.tpl.php:56
msgid "Last Verification Result"
msgstr "Resultado de la última verificación"

#: tpl/cdn/auto_setup.tpl.php:54
msgid "Click the refresh button below to refresh status."
msgstr "Haz clic en el botón de recargar, debajo del estado de recarga."

#: tpl/cdn/auto_setup.tpl.php:54
msgid "Verifying, waiting for nameservers to be updated."
msgstr "Verificando, esperando a que se actualicen los servidores de nombres."

#: tpl/cdn/auto_setup.tpl.php:50
msgid "Paused"
msgstr "Pausado"

#: tpl/cdn/auto_setup.tpl.php:44
msgid "Completed at %s"
msgstr "Completado en un %s"

#: tpl/cdn/auto_setup.tpl.php:42
msgid "Done"
msgstr "Hecho"

#: tpl/cdn/auto_setup.tpl.php:35
msgid "Run CDN Setup"
msgstr "Ejecutar la configuración del CDN"

#: tpl/cdn/auto_setup.tpl.php:34
msgid "Not running"
msgstr "No está en ejecución"

#: thirdparty/litespeed-check.cls.php:111
msgid "Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:"
msgstr "Debido a que puede haber conflictos con LiteSpeed Cache, por favor, considera desactivar los siguientes plugins:"

#: src/metabox.cls.php:59
msgid "LiteSpeed Options"
msgstr "Opciones de LiteSpeed"

#: src/metabox.cls.php:32
msgid "Mobile"
msgstr "Móvil"

#: src/metabox.cls.php:30
msgid "Disable VPI"
msgstr "Desactivar VPI"

#: src/metabox.cls.php:29
msgid "Disable Image Lazyload"
msgstr "Desactivar la carga de imágenes diferida"

#: src/metabox.cls.php:28
msgid "Disable Cache"
msgstr "Desactivar la caché"

#: src/lang.cls.php:266
msgid "Debug String Excludes"
msgstr "Exclusión de cadenas de depuración"

#: src/lang.cls.php:199
msgid "Viewport Images Cron"
msgstr "Cron de imágenes de la vista"

#: src/lang.cls.php:198 src/metabox.cls.php:31 src/metabox.cls.php:32
#: tpl/page_optm/settings_vpi.tpl.php:12
msgid "Viewport Images"
msgstr "Imágenes de la vista"

#: src/lang.cls.php:52
msgid "Alias is in use by another QUIC.cloud account."
msgstr "El alias ya está en uso por otra cuenta de QUIC.cloud."

#: src/lang.cls.php:51
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain."
msgstr "No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal."

#: src/lang.cls.php:48
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict."
msgstr "No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal, debido a un conflicto potencial con la CDN."

#: src/error.cls.php:177
msgid "You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible."
msgstr "No puedes eliminar esta zona de DNS porque aún está en uso. Por favor, actualiza los servidores de nombers, luego tratar de borrar de nuevo esta zona, en caso contrario tu sitio será inaccesible."

#: src/error.cls.php:84
msgid "The site is not a valid alias on QUIC.cloud."
msgstr "El sitio no tiene un alias válido en QUIC.cloud."

#: src/cloud.cls.php:1066
msgid "Cloud REST API returned error: "
msgstr "El error devuelto por Cloud REST API: "

#: src/cloud.cls.php:1040
msgid "Cloud REST Error"
msgstr "Error de Cloud REST"

#: src/cloud.cls.php:1014
msgid "Cannot request REST API, no token saved."
msgstr "No se pudo solicitar la REST API, no se guardó token."

#: src/cdn-setup.cls.php:202
msgid "CDN Setup Token reset. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately."
msgstr "Token de configuración de la CDN restablecido. Nota: si quieres borrar la cuenta de my.quic.cloud, la cuenta aún existe y debe borrarse aparte."

#: src/cdn-setup.cls.php:200
msgid "CDN Setup Token and DNS zone deleted. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately."
msgstr "Borrado el toque de configuración de la CDN y la zona DNS. Nota: si quieres borrar la cuenta de my.quic.cloud, la cuenta aún existe y debe borrarse aparte."

#: src/cdn-setup.cls.php:167
msgid "Cannot delete, site is not linked."
msgstr "No se pudo borrar, el sitio no está enlazado."

#: src/cdn-setup.cls.php:164
msgid "Notice: CDN Setup only reset locally."
msgstr "Aviso: La configuración de la CDN solo se ha restablecido localmente."

#: src/cdn-setup.cls.php:132
msgid "CDN Setup is running."
msgstr "La configuración de la CDN está en ejecución."

#: src/cdn-setup.cls.php:112
msgid "Congratulations, QUIC.cloud successfully set this domain up for the CDN. Please update your nameservers to:"
msgstr "Enhorabuena, se ha configurado correctamente la CDN de QUIC.cloud para este dominio. Por favor, actualiza los servidores de nombres a:"

#: src/cdn-setup.cls.php:63
msgid "There was an error during CDN setup: "
msgstr "Ha habido un error durante la configuración de la CDN: "

#: src/cdn-setup.cls.php:58
msgid "Received invalid message from the cloud server. Please submit a ticket."
msgstr "Recivido un mensaje no válido del servidor en la nube. Por favor, envía un ticket."

#: tpl/page_optm/settings_localization.tpl.php:131
msgid "Please thoroughly test each JS file you add to ensure it functions as expected."
msgstr "Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera."

#: tpl/page_optm/settings_localization.tpl.php:98
msgid "Please thoroughly test all items in %s to ensure they function as expected."
msgstr "Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera."

#: tpl/page_optm/settings_tuning_css.tpl.php:88
msgid "Use %1$s to bypass UCSS for the pages which page type is %2$s."
msgstr "Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s."

#: tpl/page_optm/settings_tuning_css.tpl.php:87
msgid "Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL."
msgstr "Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL."

#: tpl/page_optm/settings_css.tpl.php:77
msgid "Filter %s available for UCSS per page type generation."
msgstr "Disponible el filtro %s para la generación de UCSS por tipo de página."

#: tpl/general/settings_inc.guest.tpl.php:35
#: tpl/general/settings_inc.guest.tpl.php:38
msgid "Guest Mode failed to test."
msgstr "Prueba fallida del modo de invitado."

#: tpl/general/settings_inc.guest.tpl.php:32
msgid "Guest Mode passed testing."
msgstr "Prueba superada del modo de invitado."

#: tpl/general/settings_inc.guest.tpl.php:25
msgid "Testing"
msgstr "Probando"

#: tpl/general/settings_inc.guest.tpl.php:24
msgid "Guest Mode testing result"
msgstr "Resultado de la prueba del modo de invitado"

#: tpl/crawler/blacklist.tpl.php:60
msgid "Not blocklisted"
msgstr "No está en la lista negra"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Learn more about when this is needed"
msgstr "Aprende más sobre cuándo es esto necesario"

#: src/purge.cls.php:334
msgid "Cleaned all localized resource entries."
msgstr "Limpiadas todas las entradas de recursos localizados."

#: tpl/dash/dashboard.tpl.php:602
msgid "<b>Last crawled:</b> %d item(s)"
msgstr "<b>Último rastreo:</b> %d elemento(s)"

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr "Ver el archivo «.htaccess»"

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess»."

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr "Es compatible la contante %s de PHP."

#: tpl/toolbox/edit_htaccess.tpl.php:52 tpl/toolbox/edit_htaccess.tpl.php:69
msgid "Default path is"
msgstr "La ruta por defecto es"

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr "Ruta del archivo «.htaccess»"

#: tpl/general/settings.tpl.php:166
msgid "Please read all warnings before enabling this option."
msgstr "Por favor, lee todas las advertencias antes de activar esta opción."

#: tpl/toolbox/purge.tpl.php:80
msgid "This will delete all generated unique CSS files"
msgstr "Esto borrará todos los archivos CSS únicos generados"

#: tpl/toolbox/beta_test.tpl.php:59
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "Para evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s."

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Use latest GitHub Dev/Master commit"
msgstr "Utiliza el último commit Dev/Master de GitHub"

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales."

#: tpl/toolbox/beta_test.tpl.php:49
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "No se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado."

#: tpl/page_optm/settings_tuning.tpl.php:135
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios."

#: tpl/page_optm/settings_tuning.tpl.php:97
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Los archivos JS listados o el código JS integrado no serán optimizados por %s."

#: tpl/page_optm/settings_tuning_css.tpl.php:80
msgid "Listed URI will not generate UCSS."
msgstr "Las URI listadas no generarán UCSS."

#: tpl/page_optm/settings_tuning_css.tpl.php:62
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "El selector debe existir en el CSS. Las clases principales en HTML no funcionarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:58
msgid "Wildcard %s supported."
msgstr "Compatibilidad con el comodín %s."

#: tpl/page_optm/settings_tuning_css.tpl.php:57
msgid "How to choose an UCSS allowlist selector?"
msgstr "¿Cómo elegir un selector de lista blanca UCSS?"

#: tpl/page_optm/settings_media_exc.tpl.php:24
msgid "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr "Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:235
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:131
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr "Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración."

#: tpl/page_optm/settings_js.tpl.php:71
msgid "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."
msgstr "Aplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals)."

#: tpl/page_optm/settings_js.tpl.php:69
msgid "Delayed"
msgstr "Retrasado"

#: tpl/page_optm/settings_js.tpl.php:44
msgid "JS error can be found from the developer console of browser by right clicking and choosing Inspect."
msgstr "El error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar."

#: tpl/page_optm/settings_js.tpl.php:43 tpl/page_optm/settings_js.tpl.php:77
msgid "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."
msgstr "Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "This will also add a preconnect to Google Fonts to establish a connection earlier."
msgstr "Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes."

#: tpl/page_optm/settings_html.tpl.php:64
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr "Retraso al mostrar los elementos HTML fuera de la pantalla por su selector."

#: tpl/page_optm/settings_css.tpl.php:262
msgid "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."
msgstr "Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas."

#: tpl/page_optm/settings_css.tpl.php:199
msgid "This option is bypassed due to %s option."
msgstr "Esta opción se omite debido a la opción %s."

#: tpl/page_optm/settings_css.tpl.php:193
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en el código HTML."

#: tpl/page_optm/settings_css.tpl.php:186
msgid "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."
msgstr "Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante."

#: tpl/page_optm/settings_css.tpl.php:150
msgid "This option will automatically bypass %s option."
msgstr "Esta opción omitirá automáticamente la opción %s."

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."
msgstr "UCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala."

#: tpl/page_optm/settings_css.tpl.php:129
#: tpl/page_optm/settings_css.tpl.php:246 tpl/page_optm/settings_vpi.tpl.php:74
msgid "Run %s Queue Manually"
msgstr "Ejecutar manualmente la cola %s"

#: tpl/page_optm/settings_css.tpl.php:82
msgid "This option is bypassed because %1$s option is %2$s."
msgstr "Esta opción se omite porque la opción %1$s es %2$s."

#: tpl/page_optm/settings_css.tpl.php:75
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr "La generación automática de CSS único está en segundo plano a través de una cola basada en cron."

#: tpl/page_optm/settings_css.tpl.php:73
msgid "This will drop the unused CSS on each page from the combined file."
msgstr "Esto eliminará el CSS no utilizado en cada página del archivo combinado."

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr "Ajustes HTML"

#: tpl/inc/in_upgrading.php:5
msgid "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."
msgstr "Actualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración."

#: tpl/general/settings_tuning.tpl.php:51
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr "Las IP listadas serán consideradas visitantes en modo invitado."

#: tpl/general/settings_tuning.tpl.php:29
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr "Los agentes de usuario listados serán considerados visitantes en modo invitado."

#: tpl/general/settings.tpl.php:181
msgid "Your %1s quota on %2s will still be in use."
msgstr "Tu cuota de %1s en %2s seguirá en uso."

#: tpl/general/settings_inc.guest.tpl.php:17
msgid "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."
msgstr "Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas."

#: tpl/general/settings_inc.guest.tpl.php:16
msgid "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr "El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX."

#: tpl/general/settings.tpl.php:221
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr "Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio."

#: tpl/general/settings.tpl.php:220
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server."
msgstr "la IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor."

#: tpl/general/settings.tpl.php:203
msgid "You need to turn %s on and finish all WebP generation to get maximum result."
msgstr "Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:196
msgid "You need to turn %s on to get maximum result."
msgstr "Necesitas activar %s para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:165
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr "Esta opción permite la máxima optimización para los visitantes del modo de invitado."

#: tpl/dash/dashboard.tpl.php:333 tpl/dash/dashboard.tpl.php:413
#: tpl/dash/dashboard.tpl.php:441 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:505 tpl/dash/dashboard.tpl.php:537
#: tpl/dash/dashboard.tpl.php:569
msgid "More"
msgstr "Más"

#: tpl/dash/dashboard.tpl.php:158
msgid "Remaining Daily Quota"
msgstr "Cuota diaria restante"

#: tpl/crawler/summary.tpl.php:189
msgid "Successfully Crawled"
msgstr "Rastreado correctamente"

#: tpl/crawler/summary.tpl.php:188
msgid "Already Cached"
msgstr "Ya en la caché"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio."

#: tpl/cdn/settings.tpl.php:214
msgid "Optional when API token used."
msgstr "Opcional cuando se usa el token de la API."

#: tpl/cdn/settings.tpl.php:204
msgid "Recommended to generate the token from Cloudflare API token template \"WordPress\"."
msgstr "Recomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare."

#: tpl/cdn/settings.tpl.php:198
msgid "Global API Key / API Token"
msgstr "Clave/Token global de la API"

#: tpl/cdn/settings.tpl.php:194
msgid "This can be managed from %1$s%2$s tab."
msgstr "Esto se puede gestionar desde la pestaña %1$s%2$s."

#: tpl/cdn/settings.tpl.php:54
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s."
msgstr "NOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %1$s."

#: tpl/cdn/settings.tpl.php:49
msgid "Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN."
msgstr "Pon este ajuste como %1$s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud."

#: tpl/cache/settings_inc.object.tpl.php:42
msgid "Use external object cache functionality."
msgstr "Usa la funcionalidad de la caché de objetos externos."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Serve a separate cache copy for mobile visitors."
msgstr "Ofrece una copia de la caché separada para los visitantes móviles."

#: thirdparty/woocommerce.content.tpl.php:24
msgid "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."
msgstr "Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente."

#: src/purge.cls.php:262
msgid "Cleaned all Unique CSS files."
msgstr "Limpiados todos los archivos CSS únicos."

#: src/lang.cls.php:197
msgid "Add Missing Sizes"
msgstr "Añadir tamaños que faltan"

#: src/lang.cls.php:172
msgid "Optimize for Guests Only"
msgstr "Optimizar solamente para invitados"

#: src/lang.cls.php:168
msgid "Guest Mode JS Excludes"
msgstr "Exclusiones JS del modo de invitado"

#: src/lang.cls.php:150
msgid "CCSS Per URL"
msgstr "CCSS por URL"

#: src/lang.cls.php:148
msgid "HTML Lazy Load Selectors"
msgstr "Selectores HTML de carga diferida"

#: src/lang.cls.php:143
msgid "UCSS URI Excludes"
msgstr "Exclusiones UCSS de la URI"

#: src/lang.cls.php:140
msgid "UCSS Inline"
msgstr "UCCS integrado"

#: src/lang.cls.php:98
msgid "Guest Optimization"
msgstr "Optimización para invitados"

#: src/lang.cls.php:97
msgid "Guest Mode"
msgstr "Modo de invitado"

#: src/lang.cls.php:85
msgid "Guest Mode IPs"
msgstr "IP del modo de invitado"

#: src/lang.cls.php:84
msgid "Guest Mode User Agents"
msgstr "Agentes de usuario del modo de invitado"

#: src/error.cls.php:100
msgid "Online node needs to be redetected."
msgstr "El nodo online tiene que volver a ser detectado."

#: src/error.cls.php:96
msgid "The current server is under heavy load."
msgstr "El servidor actual está bajo una gran carga."

#: src/error.cls.php:52
msgid "You don't have enough daily quota left for current service today."
msgstr "No tienes suficiente cuota diaria disponible hoy para el servicio actual."

#: src/doc.cls.php:57
msgid "Please see %s for more details."
msgstr "Por favor, consulta %s para más detalles."

#: src/doc.cls.php:44
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr "¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!"

#: src/gui.cls.php:78
msgid "%1$s %2$s files left in queue"
msgstr "%1$s %2$s archivos restantes en la cola"

#: src/crawler.cls.php:133
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr "¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos! "

#: src/cloud.cls.php:775
msgid "Redetected node"
msgstr "Nodo detectado nuevamente"

#: src/cloud.cls.php:477
msgid "No available Cloud Node after checked server load."
msgstr "No hay ningún nodo de la nube disponible después de comprobar la carga del servidor."

#: src/lang.cls.php:155
msgid "Localization Files"
msgstr "Archivos de idiomas"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "¡Purgado!"

#: tpl/page_optm/settings_localization.tpl.php:120
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Los recursos listados aquí se copiarán y reemplazarán con URL locales."

#: tpl/toolbox/beta_test.tpl.php:36
msgid "Use latest GitHub Master commit"
msgstr "Usar el último commit maestro de GitHub"

#: tpl/toolbox/beta_test.tpl.php:34
msgid "Use latest GitHub Dev commit"
msgstr "Usar el último commit de desarrollo de GitHub"

#: src/crawler-map.cls.php:329
msgid "No valid sitemap parsed for crawler."
msgstr "No se ha analizado ningún mapa del sitio válido para el rastreador."

#: src/lang.cls.php:138
msgid "CSS Combine External and Inline"
msgstr "Combinación de CSS externo e integrado"

#: tpl/page_optm/settings_css.tpl.php:164
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS."

#: tpl/page_optm/settings_css.tpl.php:36
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_tuning.tpl.php:62
#: tpl/page_optm/settings_tuning.tpl.php:83
#: tpl/page_optm/settings_tuning_css.tpl.php:27
#: tpl/page_optm/settings_tuning_css.tpl.php:66
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La lista predefinida también se combinará con los ajustes anteriores"

#: tpl/page_optm/entry.tpl.php:12
msgid "Localization"
msgstr "Localización"

#: tpl/page_optm/settings_js.tpl.php:58
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS."

#: tpl/page_optm/settings_js.tpl.php:39
msgid "Combine all local JS files into a single file."
msgstr "Combina todos los archivos JS locales en un único archivo."

#: tpl/page_optm/settings_tuning.tpl.php:76
msgid "Listed JS files or inline JS code will not be deferred or delayed."
msgstr "Los archivos JS listados o el código JS integrado no serán aplazados ni diferidos."

#: tpl/general/settings.tpl.php:97
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación."

#: src/data.upgrade.func.php:119
msgid "Click here to settings"
msgstr "Haz clic aquí para los ajustes"

#: src/data.upgrade.func.php:118
msgid "JS Defer"
msgstr "Diferir JS"

#: src/data.upgrade.func.php:118
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS."

#: src/lang.cls.php:146
msgid "JS Combine External and Inline"
msgstr "Combinación de JS externo e integrado"

#: src/admin-display.cls.php:503
msgid "Dismiss"
msgstr "Descartar"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "El último archivo de datos es"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La lista se fusionará con los nonces predefinidos en tu archivo de datos local."

#: tpl/page_optm/settings_css.tpl.php:50
msgid "Combine CSS files and inline CSS code."
msgstr "Combina archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_js.tpl.php:25
msgid "Minify JS files and inline JS codes."
msgstr "Minimiza archivos JS y códigos JS integrados."

#: tpl/page_optm/settings_tuning.tpl.php:54
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:20
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán."

#: src/admin-display.cls.php:998
msgid "This setting is overwritten by the Network setting"
msgstr "Los ajustes de red sobreescriben este ajuste"

#: src/lang.cls.php:186
msgid "LQIP Excludes"
msgstr "Exclusiones de LQIP"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "Estas imágenes no generarán LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "¿Seguro que quieres restablecer los ajustes a los valores por defecto?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "Esta opción eliminará todas las etiquetas %s del HTML."

#: tpl/general/settings.tpl.php:130
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "¿Seguro que quieres vaciar todos los nodos cloud?"

#: src/lang.cls.php:170 tpl/presets/standard.tpl.php:45
msgid "Remove Noscript Tags"
msgstr "Eliminar las etiquetas Noscript"

#: src/error.cls.php:88
msgid "The site is not registered on QUIC.cloud."
msgstr "El sitio no está registrado en QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Haz clic aquí para cambiarlo."

#: src/cloud.cls.php:946 src/error.cls.php:48
msgid "Click here to set."
msgstr "Haz clic aquí para configurarlo."

#: src/cloud.cls.php:945
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva."

#: src/lang.cls.php:154
msgid "Localize Resources"
msgstr "Recursos localizados"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Configurar cabeceras personalizadas"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all localized resources"
msgstr "Esto borrará todos los recursos localizados"

#: src/gui.cls.php:536 src/gui.cls.php:696 tpl/toolbox/purge.tpl.php:88
msgid "Localized Resources"
msgstr "Recursos localizados"

#: tpl/page_optm/settings_localization.tpl.php:125
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario."

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "HTTPS sources only."
msgstr "Solo orígenes HTTPS."

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localizar recursos externos."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Ajustes de localización"

#: tpl/page_optm/settings_tuning_css.tpl.php:56
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Lista el selector CSS cuyo estilo debería siempre contenerse en UCSS."

#: tpl/page_optm/settings_css.tpl.php:72
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Usar el servicio en línea QUIC.cloud para generar CSS único."

#: src/lang.cls.php:139
msgid "Generate UCSS"
msgstr "Generar UCSS"

#: tpl/dash/dashboard.tpl.php:472 tpl/toolbox/purge.tpl.php:79
msgid "Unique CSS"
msgstr "CSS único"

#: tpl/toolbox/purge.tpl.php:116
msgid "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"
msgstr "Purga las entradas de la caché creadas por este plugin, excepto las cachés de CSS único, CSS crítico y de LQIP"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "Informe de LiteSpeed"

#: tpl/img_optm/summary.tpl.php:182
msgid "Image Thumbnail Group Sizes"
msgstr "Tamaños del grupo de imágenes en miniatura"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "En el caso de las URL con comodines, puede haber un retraso en el inicio de la purga programada."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Por diseño, esta opción puede servir contenido obsoleto. No actives esta opción si no estás de acuerdo."

#: src/lang.cls.php:126
msgid "Serve Stale"
msgstr "Servir contenido rancio"

#: src/admin-display.cls.php:995
msgid "This setting is overwritten by the primary site setting"
msgstr "Esta ajuste es sobrescrito por los ajuste del sitio primario"

#: src/img-optm.cls.php:933
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificado"

#: src/img-optm.cls.php:919
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Una o más imágenes optimizadas han caducado y han sido borradas."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos."

#: src/img-optm.cls.php:988
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Leer la documentación de LiteSpeed"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "La cola aún no ha sido recuperada. Información de la cola: %s."

#: src/lang.cls.php:255
msgid "Sitemap Timeout"
msgstr "Timeout del mapa del sitio"

#: tpl/crawler/settings-sitemap.tpl.php:50
msgid "Specify the timeout while parsing the sitemap."
msgstr "Especifica el tiempo límite de procesamiento del mapa del sitio."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar."

#: tpl/general/settings.tpl.php:115
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Hace falta una clave de dominio para usar los servicios online de QUIC.cloud."

#: src/img-optm.cls.php:576
msgid "Cleared %1$s invalid images."
msgstr "Purgadas %1$s imágenes no válidas."

#: tpl/general/settings.tpl.php:18
msgid "Request Domain Key"
msgstr "Solicitar clave de dominio"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "Ajustes generales de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:107
msgid "This will delete all cached Gravatar files"
msgstr "Esto borrará todos los archivos Gravatar almacenados en caché"

#: tpl/toolbox/settings-debug.tpl.php:152
msgid "Prevent any debug log of listed pages."
msgstr "Evita cualquier registro de depuración de las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:138
msgid "Only log listed pages."
msgstr "Solo registra las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:97
msgid "Specify the maximum size of the log file."
msgstr "Especifica el tamaño máximo del archivo de registro."

#: tpl/toolbox/settings-debug.tpl.php:49
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione."

#: tpl/toolbox/beta_test.tpl.php:54
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress."

#: tpl/toolbox/beta_test.tpl.php:38 tpl/toolbox/beta_test.tpl.php:54
msgid "Use latest WordPress release version"
msgstr "Usar la última versión de WordPress"

#: tpl/toolbox/beta_test.tpl.php:38
msgid "OR"
msgstr "O"

#: tpl/toolbox/beta_test.tpl.php:29
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Restablecer ajustes"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "Caja de herramientas de LiteSpeed"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Pruebas beta"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Vista de registros"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:22
msgid "Debug Settings"
msgstr "Ajustes de depuración"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Actívalo para controlar heartbeat en el editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "El intervalo válido de WordPress es %s segundos"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Actívalo para controlar heartbeat en el escritorio."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Ponlo en %1$s para bloquear heartbeat en %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "El intervalo válido de WordPress es de %s segundos."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Especifica el intervalo de heartbeat para %s en segundos."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Enciéndelo para controlar heartbeat en las páginas públicas."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Desactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Control de Heartbeat"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "proporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Opcional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generar el enlace para el usuario actual"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Enlace sin contraseña"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Información del sistema"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Ir a la lista de plugins"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Instalar la seguridad de DoLogin"

#: tpl/general/settings.tpl.php:219
msgid "Check my public IP from"
msgstr "Comprobar mi IP pública desde"

#: tpl/general/settings.tpl.php:219
msgid "Your server IP"
msgstr "La IP de tu servidor"

#: tpl/general/settings.tpl.php:218
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Introduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN."

#: tpl/crawler/settings-general.tpl.php:124
msgid "Specify the timeout while crawling each URL."
msgstr "Especifica el tiempo de espera mientras se rastrea cada URL."

#: tpl/crawler/settings-general.tpl.php:80
msgid "Specify time in seconds for the time between each run interval."
msgstr "Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución."

#: tpl/crawler/settings-general.tpl.php:25
msgid "This will enable crawler cron."
msgstr "Esto activará el cron rastreador."

#: tpl/crawler/settings-general.tpl.php:11
msgid "Crawler General Settings"
msgstr "Ajustes generales del rastreador"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blocklist"
msgstr "Eliminar de la lista negra"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blocklist"
msgstr "Vaciar la lista negra"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blocklist items?"
msgstr "¿Seguro que quieres borrar todos los elementos de la lista negra?"

#: tpl/crawler/blacklist.tpl.php:61 tpl/crawler/map.tpl.php:84
msgid "Blocklisted due to not cacheable"
msgstr "En la lista negra debido a que no se puede cachear"

#: tpl/crawler/map.tpl.php:73
msgid "Add to Blocklist"
msgstr "Añadir a la lista negra"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:59
msgid "Operation"
msgstr "Operación"

#: tpl/crawler/map.tpl.php:39
msgid "Sitemap Total"
msgstr "Total del mapa del sitio"

#: tpl/crawler/map.tpl.php:35
msgid "Sitemap List"
msgstr "Lista del mapa del sitio"

#: tpl/crawler/map.tpl.php:22
msgid "Refresh Crawler Map"
msgstr "Recargar el mapa del rastreador"

#: tpl/crawler/map.tpl.php:18
msgid "Clean Crawler Map"
msgstr "Vaciar el mapa del rastreador"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Ajustes del mapa del sitio"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Ajustes de simulación"

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blocklist"
msgstr "Lista negra"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Mapa"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Sumario"

#: tpl/crawler/settings-sitemap.tpl.php:37
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Si utilizas varios dominios para un sitio y tienes varios dominios en el mapa del sitio, mantén esta opción APAGADA para que el rastreador sepa cómo rastrear cada dominio."

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, si se deja caer el dominio se puede ahorrar almacenamiento en la base de datos."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Ajustes de mapa del sitio del rastreador"

#: tpl/crawler/summary.tpl.php:196
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;Si tanto el cron como la ejecución manual se inician en momentos similares, el primero que se inicie tendrá prioridad."

#: tpl/crawler/summary.tpl.php:195
msgid "Crawlers cannot run concurrently."
msgstr "Los rastreadores no se pueden ejecutar de forma concurrente."

#: tpl/crawler/map.tpl.php:83
msgid "Cache Miss"
msgstr "Fallo de caché"

#: tpl/crawler/map.tpl.php:82
msgid "Cache Hit"
msgstr "Acierto de caché"

#: tpl/crawler/summary.tpl.php:187
msgid "Waiting to be Crawled"
msgstr "Esperando a ser rastreado"

#: tpl/crawler/blacklist.tpl.php:62 tpl/crawler/map.tpl.php:85
#: tpl/crawler/summary.tpl.php:166 tpl/crawler/summary.tpl.php:190
msgid "Blocklisted"
msgstr "En lista negra"

#: tpl/crawler/summary.tpl.php:165
msgid "Miss"
msgstr "Fallo"

#: tpl/crawler/summary.tpl.php:164
msgid "Hit"
msgstr "Acierto"

#: tpl/crawler/summary.tpl.php:163
msgid "Waiting"
msgstr "En espera"

#: tpl/crawler/summary.tpl.php:132
msgid "Running"
msgstr "En curso"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida."

#: src/admin-display.cls.php:215
msgid "Add new cookie to simulate"
msgstr "Añadir una cookie nueva para simular"

#: src/admin-display.cls.php:214
msgid "Remove cookie simulation"
msgstr "Eliminar la simulación de la cookie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Ajustes de simulación del rastreador"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr "La regla de Htaccess es: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "Más ajustes disponibles en el menú %s"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Marca esto si eres un usuario de OpenLiteSpeed"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Ajustes de la caché del navegador"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Los nonces anteriores se convertirán en ESI automáticamente."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Navegador"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Objeto"

#: tpl/cache/settings_inc.object.tpl.php:93
#: tpl/cache/settings_inc.object.tpl.php:94
msgid "Default port for %1$s is %2$s."
msgstr "Puerto por defecto de %1$s es %2$s."

#: tpl/cache/settings_inc.object.tpl.php:28
msgid "Object Cache Settings"
msgstr "Ajustes de la caché de objetos"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Especifica cuánto tiempo, en segundos, se almacena la página de inicio."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan."

#: tpl/page_optm/settings_css.tpl.php:289
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:288
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "La lista de avatares está en la cola esperando ser actualizada"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refrescar la caché de Gravatar por cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Acelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Almacenar los gravatares localmente."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:146
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "No se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones."

#: tpl/page_optm/settings_media.tpl.php:144
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:128
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos."

#: tpl/page_optm/settings_media.tpl.php:127
msgid "Specify the quality when generating LQIP."
msgstr "Especifica la calidad al generar el LQIP."

#: tpl/page_optm/settings_media.tpl.php:113
msgid "Keep this off to use plain color placeholders."
msgstr "Mantén esto apagado para usar marcadores de posición de color."

#: tpl/page_optm/settings_media.tpl.php:112
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Usa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga."

#: tpl/page_optm/settings_media.tpl.php:97
msgid "Specify the responsive placeholder SVG color."
msgstr "Especifica el color del marcador de posición SVG adaptable."

#: tpl/page_optm/settings_media.tpl.php:83
msgid "Variables %s will be replaced with the configured background color."
msgstr "Las variables %s serán reemplazadas por el color de fondo configurado."

#: tpl/page_optm/settings_media.tpl.php:82
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen."

#: tpl/page_optm/settings_media.tpl.php:81
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Se convertirá en un marcador de posición SVG base64 sobre la marcha."

#: tpl/page_optm/settings_media.tpl.php:80
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Especifica un SVG que se utilizará como marcador de posición al generar localmente."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Evita cualquier carga diferida de las páginas de la lista."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Los iframes con estos nombres de clase padres no se cargarán de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Los marcos que contengan estos nombres de clase no serán cargados de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida."

#: tpl/page_optm/entry.tpl.php:21
msgid "LiteSpeed Cache Page Optimization"
msgstr "Optimización de página de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:11 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Exclusiones de medios"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:20
msgid "CSS Settings"
msgstr "Ajustes de CSS"

#: tpl/page_optm/settings_css.tpl.php:289
msgid "%s is recommended."
msgstr "Se recomienda %s."

#: tpl/page_optm/settings_js.tpl.php:69
msgid "Deferred"
msgstr "Diferido"

#: tpl/page_optm/settings_css.tpl.php:286
msgid "Default"
msgstr "Por defecto"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "Esto puede mejorar la velocidad de carga de la página."

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "La nueva versión de desarrollo %s está disponible."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "¡Nueva versión para desarrolladores disponible!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Ignorar ese aviso"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tuitea esto"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Vista previa del tweet"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Aprender más"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "¡Acabas de desbloquear una promoción de QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:156
msgid "The image compression quality setting of WordPress out of 100."
msgstr "El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Ajustes de optimización de imágenes"

#: tpl/img_optm/summary.tpl.php:306
msgid "Are you sure to destroy all optimized images?"
msgstr "¿Está seguro de destruir todas las imágenes optimizadas?"

#: tpl/img_optm/summary.tpl.php:298
msgid "Use Optimized Files"
msgstr "Usar archivos optimizados"

#: tpl/img_optm/summary.tpl.php:297
msgid "Switch back to using optimized images on your site"
msgstr "Volver a utilizar imágenes optimizadas en tu web"

#: tpl/img_optm/summary.tpl.php:294
msgid "Use Original Files"
msgstr "Usar archivos originales"

#: tpl/img_optm/summary.tpl.php:293
msgid "Use original images (unoptimized) on your site"
msgstr "Usar imágenes originales (no optimizadas) en tu web"

#: tpl/img_optm/summary.tpl.php:288
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles."

#: tpl/img_optm/summary.tpl.php:285
msgid "Optimization Tools"
msgstr "Herramientas de optimización"

#: tpl/img_optm/summary.tpl.php:258
msgid "Rescan New Thumbnails"
msgstr "Reexaminar nuevas miniaturas"

#: tpl/img_optm/summary.tpl.php:241
msgid "Congratulations, all requested!"
msgstr "¡Felicidades, todas solicitadas!"

#: tpl/img_optm/summary.tpl.php:246
msgid "What is an image group?"
msgstr "¿Qué es un grupo de imágenes?"

#: tpl/img_optm/summary.tpl.php:193
msgid "Delete all backups of the original images"
msgstr "Borrar todas las copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:175
msgid "Calculate Backups Disk Space"
msgstr "Calcular el espacio en disco de las copias de seguridad"

#: tpl/img_optm/summary.tpl.php:74
msgid "Optimization Status"
msgstr "Estado de optimización"

#: tpl/img_optm/summary.tpl.php:58
msgid "Current limit is"
msgstr "El límite actual es"

#: tpl/img_optm/summary.tpl.php:57
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited."
msgstr "Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de grupos de imágenes permitidas en una sola petición es limitada."

#: tpl/img_optm/summary.tpl.php:52
msgid "You can request a maximum of %s images at once."
msgstr "Puede solicitar un máximo de imágenes de %s de una vez."

#: tpl/img_optm/summary.tpl.php:47
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiza las imágenes con nuestro servidor en QUIC.cloud"

#: tpl/img_optm/summary.tpl.php:43 tpl/page_optm/settings_css.tpl.php:101
#: tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:182
#: tpl/page_optm/settings_vpi.tpl.php:48
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectar."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Las revisiones más recientes se guardarán cuando se limpien las revisiones."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Día(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimización de la base de datos de la caché de LiteSpeed"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Ajustes de optimización de la BD"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Nombre de la opción"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Resumen de la base de datos"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "Estamos bien. Ninguna tabla usa el motor MyISAM."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Convertir a InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Herramienta"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Motor"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Tabla"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Conversor de motor de tabla de base de datos"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones"

#: tpl/dash/dashboard.tpl.php:576
msgid "Currently active crawler"
msgstr "Rastreador activo"

#: tpl/dash/dashboard.tpl.php:573
msgid "Crawler(s)"
msgstr "Rastreador(es)"

#: tpl/crawler/map.tpl.php:58 tpl/dash/dashboard.tpl.php:568
msgid "Crawler Status"
msgstr "Estado del rastreador"

#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:488
#: tpl/dash/dashboard.tpl.php:520 tpl/dash/dashboard.tpl.php:552
msgid "Force cron"
msgstr "Forzar cron"

#: tpl/dash/dashboard.tpl.php:454 tpl/dash/dashboard.tpl.php:486
#: tpl/dash/dashboard.tpl.php:518 tpl/dash/dashboard.tpl.php:550
msgid "Requests in queue"
msgstr "Peticiones en cola"

#: tpl/dash/dashboard.tpl.php:449 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513 tpl/dash/dashboard.tpl.php:545
msgid "Time to execute previous request"
msgstr "Tiempo para ejecutar la solicitud anterior"

#: tpl/dash/dashboard.tpl.php:419
msgid "Private Cache"
msgstr "Caché privada"

#: tpl/dash/dashboard.tpl.php:418
msgid "Public Cache"
msgstr "Caché pública"

#: tpl/dash/dashboard.tpl.php:412
msgid "Cache Status"
msgstr "Estado de caché"

#: tpl/dash/dashboard.tpl.php:384
msgid "Last Pull"
msgstr "Última lectura"

#: tpl/dash/dashboard.tpl.php:332 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Resumen de la optimización de imágenes"

#: tpl/dash/dashboard.tpl.php:271
msgid "Refresh page score"
msgstr "Actualizar la puntuación de la página"

#: tpl/dash/dashboard.tpl.php:259 tpl/img_optm/summary.tpl.php:43
#: tpl/page_optm/settings_css.tpl.php:101
#: tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:182
#: tpl/page_optm/settings_vpi.tpl.php:48
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?"

#: tpl/dash/dashboard.tpl.php:259
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectarlo."

#: tpl/dash/dashboard.tpl.php:254 tpl/dash/dashboard.tpl.php:324
#: tpl/dash/dashboard.tpl.php:464 tpl/dash/dashboard.tpl.php:496
#: tpl/dash/dashboard.tpl.php:528 tpl/dash/dashboard.tpl.php:560
msgid "Last requested"
msgstr "Último pedido"

#: tpl/dash/dashboard.tpl.php:213
msgid "Refresh page load time"
msgstr "Actualizar el tiempo de carga de la página"

#: tpl/dash/dashboard.tpl.php:194
msgid "Go to QUIC.cloud dashboard"
msgstr "Ir al escritorio de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:55 tpl/dash/dashboard.tpl.php:504
msgid "Low Quality Image Placeholder"
msgstr "Marcador de imagen de baja calidad"

#: tpl/dash/dashboard.tpl.php:42
msgid "Sync data from Cloud"
msgstr "Sincronizar los datos de la nube"

#: tpl/dash/dashboard.tpl.php:39
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Estadísticas de uso del servicio QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:149 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Total de imágenes optimizadas en este mes"

#: tpl/dash/dashboard.tpl.php:148 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Uso total"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Estadísticas pago por uso"

#: tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "El uso de este mes"

#: tpl/dash/dashboard.tpl.php:126 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "Balance de pagos"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pago por uso"

#: tpl/dash/dashboard.tpl.php:113 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Uso"

#: tpl/dash/dashboard.tpl.php:113 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Uso de la cola rápida"

#: tpl/dash/dashboard.tpl.php:54 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "Ancho de banda de la CDN"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Uso de las estadísticas"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "Escritorio de LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Escritorio de red"

#: tpl/general/settings.tpl.php:142
msgid "No cloud services currently in use"
msgstr "No hay servicios de la nube en uso"

#: tpl/general/settings.tpl.php:130
msgid "Click to clear all nodes for further redetection."
msgstr "Haz clic para borrar todos los nodos para volver a detectar."

#: tpl/general/settings.tpl.php:129
msgid "Current Cloud Nodes in Service"
msgstr "Nodos de la nube actual en servicio"

#: tpl/general/settings.tpl.php:110
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Beneficios de enlazar con una cuenta QUIC.cloud"

#: tpl/general/settings.tpl.php:109
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud."

#: tpl/general/settings.tpl.php:104
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Debes tener %1$s antes de enlazarte a QUIC.cloud."

#: tpl/general/settings.tpl.php:90
msgid "Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance."
msgstr "Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la API REST, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda."

#: tpl/general/settings.tpl.php:89
msgid "Our %s was not allowlisted."
msgstr "Nuestro %s no estaba en la lista blanca."

#: tpl/general/settings.tpl.php:88
msgid "The POST callback to %s failed."
msgstr "La llamada POST a %s falló."

#: tpl/general/settings.tpl.php:87
msgid "There are two reasons why we might not be able to communicate with your domain"
msgstr "Hay dos razones por las que no podemos comunicarnos con tu dominio"

#: tpl/general/settings.tpl.php:86
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Hay un problema al recibir tu clave de dominio. Por favor, haz clic en el botón %s para volver a intentarlo."

#: tpl/cdn/auto_setup.tpl.php:132 tpl/dash/dashboard.tpl.php:196
#: tpl/dash/dashboard.tpl.php:198 tpl/general/settings.tpl.php:78
#: tpl/general/settings.tpl.php:80 tpl/general/settings.tpl.php:109
msgid "Link to QUIC.cloud"
msgstr "Enlace a QUIC.cloud"

#: tpl/general/settings.tpl.php:76
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visitar «Mi Escritorio» en QUIC.cloud"

#: tpl/general/settings.tpl.php:37
msgid "Next available request time: <code>After %s</code>"
msgstr "Próximo tiempo de solicitud disponible: <code>Después de %s</code>"

#: tpl/general/settings.tpl.php:33
msgid "Approved"
msgstr "Aprobado"

#: tpl/general/settings.tpl.php:30
msgid "Requested"
msgstr "Solicitado"

#: tpl/general/settings.tpl.php:25
msgid "Waiting for Approval"
msgstr "Esperando aprobación"

#: tpl/general/settings.tpl.php:22
msgid "Waiting for Refresh"
msgstr "Esperando a la recarga"

#: tpl/general/settings.tpl.php:20
msgid "Refresh Domain Key"
msgstr "Actualizar la clave del dominio"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:9
#: tpl/general/settings.tpl.php:44
msgid "General Settings"
msgstr "Ajustes generales"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN."

#: src/admin-display.cls.php:237
msgid "Add new CDN URL"
msgstr "Añadir una nueva URL de la CDN"

#: src/admin-display.cls.php:236
msgid "Remove CDN URL"
msgstr "Eliminar la URL de la CDN"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Activar la funcionalidad %s de la API de la CDN."

#: tpl/cdn/manage.tpl.php:25
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN."

#: tpl/cdn/manage.tpl.php:16
msgid "To manage QUIC.cloud options, please visit"
msgstr "Para gestionar las opciones de QUIC.cloud, visita"

#: tpl/cdn/manage.tpl.php:14
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "Ajustes de WooCommerce"

#: src/doc.cls.php:143 tpl/general/settings.tpl.php:89
msgid "Current Online Server IPs"
msgstr "IPs del servidor en línea"

#: src/doc.cls.php:142
msgid "Before generating key, please verify all IPs on this list are allowlisted"
msgstr "Antes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blanca"

#: src/doc.cls.php:141
msgid "For online services to work correctly, you must allowlist all %s server IPs."
msgstr "Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor."

#: src/gui.cls.php:546 src/gui.cls.php:706
#: tpl/page_optm/settings_media.tpl.php:131 tpl/toolbox/purge.tpl.php:97
msgid "LQIP Cache"
msgstr "Caché de LQIP"

#: src/admin-settings.cls.php:245 src/admin-settings.cls.php:279
msgid "Options saved."
msgstr "Las opciones han sido guardadas."

#: src/img-optm.cls.php:1489
msgid "Removed backups successfully."
msgstr "Copias de seguridad eliminadas correctamente."

#: src/img-optm.cls.php:1397
msgid "Calculated backups successfully."
msgstr "Copias de seguridad calculadas correctamente."

#: src/img-optm.cls.php:1332
msgid "Rescanned %d images successfully."
msgstr "%d imágenes reexploradas correctamente."

#: src/img-optm.cls.php:1270 src/img-optm.cls.php:1332
msgid "Rescanned successfully."
msgstr "Reexploración correcta."

#: src/img-optm.cls.php:1209
msgid "Destroy all optimization data successfully."
msgstr "Todos los datos de optimización destruidos correctamente."

#: src/img-optm.cls.php:1133
msgid "Cleaned up unfinished data successfully."
msgstr "Datos incompletos limpiados correctamente."

#: src/img-optm.cls.php:974
msgid "Optimized WebP file expired and was cleared."
msgstr "El archivo WebP optimizado caducado ha sido limpiado."

#: src/img-optm.cls.php:874
msgid "Pull Cron is running"
msgstr "Pull Cron se está ejecutando"

#: src/img-optm.cls.php:654
msgid "No valid image found by Cloud server in the current request."
msgstr "El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual."

#: src/img-optm.cls.php:631
msgid "No valid image found in the current request."
msgstr "No se ha encontrado ninguna imagen válida en la petición actual."

#: src/img-optm.cls.php:341
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s enviado al servidor en la nube, %2$s aceptado."

#: src/lang.cls.php:269
msgid "Revisions Max Age"
msgstr "Edad máxima de las revisiones"

#: src/lang.cls.php:268
msgid "Revisions Max Number"
msgstr "Número máximo de revisiones"

#: src/lang.cls.php:265
msgid "Debug URI Excludes"
msgstr "URIs excluidas de la depuración"

#: src/lang.cls.php:264
msgid "Debug URI Includes"
msgstr "URIs incluidas en la depuración"

#: src/lang.cls.php:254
msgid "Drop Domain from Sitemap"
msgstr "Quitar dominio del mapa del sitio"

#: src/lang.cls.php:249
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:237
msgid "HTML Attribute To Replace"
msgstr "Atributo HTML a reemplazar"

#: src/lang.cls.php:231
msgid "Use CDN Mapping"
msgstr "Usar mapeo de CDN"

#: src/lang.cls.php:230
msgid "QUIC.cloud CDN"
msgstr "CDN de QUIC.cloud"

#: src/lang.cls.php:228
msgid "Editor Heartbeat TTL"
msgstr "TTL de heartbeat del editor"

#: src/lang.cls.php:227
msgid "Editor Heartbeat"
msgstr "Heartbeat del editor"

#: src/lang.cls.php:226
msgid "Backend Heartbeat TTL"
msgstr "TTL de heartbeat de la administración"

#: src/lang.cls.php:225
msgid "Backend Heartbeat Control"
msgstr "Control de heartbeat de la administración"

#: src/lang.cls.php:224
msgid "Frontend Heartbeat TTL"
msgstr "TTL de heartbeat de la parte pública"

#: src/lang.cls.php:223
msgid "Frontend Heartbeat Control"
msgstr "Control de heartbeat de la parte pública"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Ruta del .htaccess de la administración"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Ruta del .htaccess de la parte pública"

#: src/lang.cls.php:214
msgid "ESI Nonces"
msgstr "Nonces de ESI"

#: src/lang.cls.php:210
msgid "WordPress Image Quality Control"
msgstr "Control de la calidad de imagen de WordPress"

#: src/lang.cls.php:202
msgid "Auto Pull Cron"
msgstr "Cron de obtención automática"

#: src/lang.cls.php:201
msgid "Auto Request Cron"
msgstr "Cron de petición automática"

#: src/lang.cls.php:195
msgid "Generate LQIP In Background"
msgstr "Generar LQIP en segundo plano"

#: src/lang.cls.php:193
msgid "LQIP Minimum Dimensions"
msgstr "Dimensiones mínimas de LQIP"

#: src/lang.cls.php:192
msgid "LQIP Quality"
msgstr "Calidad de LQIP"

#: src/lang.cls.php:191
msgid "LQIP Cloud Generator"
msgstr "Generador de LQIP en la nube"

#: src/lang.cls.php:190
msgid "Responsive Placeholder SVG"
msgstr "Marcador de posición SVG adaptable"

#: src/lang.cls.php:189
msgid "Responsive Placeholder Color"
msgstr "Color del marcador de posición adaptable"

#: src/lang.cls.php:187
msgid "Basic Image Placeholder"
msgstr "Marcador de posición de imagen básica"

#: src/lang.cls.php:185
msgid "Lazy Load URI Excludes"
msgstr "Exclusión de URIs de carga diferida"

#: src/lang.cls.php:184
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padre de iframes"

#: src/lang.cls.php:183
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases de iframes"

#: src/lang.cls.php:182
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padres"

#: src/lang.cls.php:177
msgid "Gravatar Cache TTL"
msgstr "TTL de la caché de Gravatar"

#: src/lang.cls.php:176
msgid "Gravatar Cache Cron"
msgstr "Cron de la caché de Gravatar"

#: src/gui.cls.php:556 src/gui.cls.php:716 src/lang.cls.php:175
#: tpl/presets/standard.tpl.php:42 tpl/toolbox/purge.tpl.php:106
msgid "Gravatar Cache"
msgstr "Caché de Gravatar"

#: src/lang.cls.php:157
msgid "DNS Prefetch Control"
msgstr "Control del prefetch DNS"

#: src/lang.cls.php:152 tpl/presets/standard.tpl.php:39
msgid "Font Display Optimization"
msgstr "Optimización de visualización de fuentes"

#: src/lang.cls.php:130
msgid "Force Public Cache URIs"
msgstr "Forzar URIs de caché púbica"

#: src/lang.cls.php:99
msgid "Notifications"
msgstr "Avisos"

#: src/lang.cls.php:94
msgid "Default HTTP Status Code Page TTL"
msgstr "TTL del código de estado de página por defecto"

#: src/lang.cls.php:93
msgid "Default REST TTL"
msgstr "TTL por defecto de REST"

#: src/lang.cls.php:87
msgid "Enable Cache"
msgstr "Activa cache"

#: src/lang.cls.php:83
msgid "Domain Key"
msgstr "Clave del dominio"

#: src/lang.cls.php:82
msgid "Server IP"
msgstr "IP del servidor"

#: src/lang.cls.php:26
msgid "Images not requested"
msgstr "Imágenes no solicitadas"

#: src/cloud.cls.php:1530
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube."

#: src/cloud.cls.php:1404
msgid "Domain Key hash mismatch"
msgstr "Discordancia de clave de dominio"

#: src/cloud.cls.php:1299
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia."

#: src/cloud.cls.php:1243
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Clave del dominio solicitada correctamente. Por favor, espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress."

#: src/cloud.cls.php:902 src/cloud.cls.php:1224
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Fallo de comunicación con el servidor QUIC.cloud"

#: src/cloud.cls.php:836
msgid "Good news from QUIC.cloud server"
msgstr "Buenas noticias del servidor QUIC.cloud"

#: src/cdn-setup.cls.php:322 src/cloud.cls.php:820 src/cloud.cls.php:828
#: src/cloud.cls.php:1235
msgid "Message from QUIC.cloud server"
msgstr "Mensaje del servidor QUIC.cloud"

#: src/cloud.cls.php:625
msgid "Please try after %1$s for service %2$s."
msgstr "Por favor, inténtalo después de %1$s para el servicio %2$s."

#: src/cloud.cls.php:452
msgid "No available Cloud Node."
msgstr "No hay ningún nodo de la nube disponible."

#: src/cloud.cls.php:394 src/cloud.cls.php:407 src/cloud.cls.php:452
#: src/cloud.cls.php:477 src/cloud.cls.php:625 src/cloud.cls.php:1204
msgid "Cloud Error"
msgstr "Error de la nube"

#: src/data.cls.php:224
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado."

#: src/media.cls.php:363
msgid "Restore from backup"
msgstr "Restaurar desde la copia de seguridad"

#: src/media.cls.php:352
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:347
msgid "No backup of unoptimized WebP file exists."
msgstr "No existe una copia de seguridad del archivo WebP no optimizado."

#: src/media.cls.php:334
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Archivo WebP reducido en %1$s (%2$s)"

#: src/media.cls.php:327
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo WebP."

#: src/media.cls.php:323
msgid "Currently using optimized version of WebP file."
msgstr "Actualmente usando la versión optimizada del archivo WebP."

#: src/media.cls.php:307
msgid "Orig"
msgstr "Original"

#: src/media.cls.php:305
msgid "(no savings)"
msgstr "(sin guardar)"

#: src/media.cls.php:305
msgid "Orig %s"
msgstr "Original %s"

#: src/media.cls.php:302
msgid "Congratulation! Your file was already optimized"
msgstr "¡Felicidades! Tu archivo ya ha sido optimizado"

#: src/media.cls.php:294
msgid "No backup of original file exists."
msgstr "No existe una copia de seguridad del archivo original."

#: src/media.cls.php:294 src/media.cls.php:347
msgid "Using optimized version of file. "
msgstr "Usando la versión optimizada del archivo. "

#: src/media.cls.php:287
msgid "Orig saved %s"
msgstr "Ahorrado un %s del original"

#: src/media.cls.php:280
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Archivo original reducido en %1$s (%2$s)"

#: src/media.cls.php:273 src/media.cls.php:327
msgid "Click to switch to optimized version."
msgstr "Haz clic para cambiar a la versión optimizada."

#: src/media.cls.php:273
msgid "Currently using original (unoptimized) version of file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo."

#: src/media.cls.php:272 src/media.cls.php:326
msgid "(non-optm)"
msgstr "(no-optm)"

#: src/media.cls.php:269 src/media.cls.php:323
msgid "Click to switch to original (unoptimized) version."
msgstr "Haz clic para cambiar a la versión original (no optimizada)."

#: src/media.cls.php:269
msgid "Currently using optimized version of file."
msgstr "Actualmente usando la versión optimizada del archivo."

#: src/media.cls.php:268 src/media.cls.php:295 src/media.cls.php:322
#: src/media.cls.php:348
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:139
msgid "LQIP image preview for size %s"
msgstr "Vista previa de la imagen LQIP para el tamaño %s"

#: src/placeholder.cls.php:81 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:1116
msgid "Previously existed in blocklist"
msgstr "Anteriormente existía en la lista negra"

#: src/crawler.cls.php:1113
msgid "Manually added to blocklist"
msgstr "Añadido manualmente a la lista negra"

#: src/htaccess.cls.php:340
msgid "Mobile Agent Rules"
msgstr "Reglas de agente móvil"

#: src/crawler-map.cls.php:333
msgid "Sitemap created successfully: %d items"
msgstr "Mapa del sitio creado con éxito: %d elementos"

#: src/crawler-map.cls.php:268
msgid "Sitemap cleaned successfully"
msgstr "El mapa del sitio se limpió con éxito"

#: src/admin-display.cls.php:1160
msgid "Invalid IP"
msgstr "IP no válida"

#: src/admin-display.cls.php:1135
msgid "Value range"
msgstr "Rango de valores"

#: src/admin-display.cls.php:1132
msgid "Smaller than"
msgstr "Más pequeño que"

#: src/admin-display.cls.php:1129
msgid "Larger than"
msgstr "Mayor que"

#: src/admin-display.cls.php:1122
msgid "Zero, or"
msgstr "Cero, o"

#: src/admin-display.cls.php:1110
msgid "Maximum value"
msgstr "Valor máximo"

#: src/admin-display.cls.php:1107
msgid "Minimum value"
msgstr "Valor mínimo"

#: src/admin-display.cls.php:1089
msgid "Path must end with %s"
msgstr "La ruta debe terminar en %s"

#: src/admin-display.cls.php:1072
msgid "Invalid rewrite rule"
msgstr "Regla de reescritura no válida"

#: src/admin-display.cls.php:1002
msgid "currently set to %s"
msgstr "actualmente establecido en %s"

#: src/admin-display.cls.php:992
msgid "This setting is overwritten by the PHP constant %s"
msgstr "Este ajuste es sobrescrita por la constante %s de PHP"

#: src/admin-display.cls.php:137
msgid "Toolbox"
msgstr "Herramientas"

#: src/admin-display.cls.php:133
msgid "Database"
msgstr "Base de datos"

#: src/admin-display.cls.php:131 tpl/dash/dashboard.tpl.php:53
msgid "Page Optimization"
msgstr "Optimización de página"

#: src/admin-display.cls.php:119 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Escritorio"

#: src/db-optm.cls.php:271
msgid "Converted to InnoDB successfully."
msgstr "Convertido a InnoDB correctamente."

#: src/purge.cls.php:317
msgid "Cleaned all Gravatar files."
msgstr "Vaciados todos los archivos de Gravatar."

#: src/purge.cls.php:300
msgid "Cleaned all LQIP files."
msgstr "Vaciados todos los archivos LQIP."

#: src/error.cls.php:181
msgid "Unknown error"
msgstr "Error desconocido"

#: src/error.cls.php:173
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior."

#: src/error.cls.php:169
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: "

#: src/error.cls.php:165
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores."

#: src/error.cls.php:161
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash."

#: src/error.cls.php:157
msgid "Your application is waiting for approval."
msgstr "Tu solicitud está a la espera de aprobación."

#: src/error.cls.php:153
msgid "Previous request too recent. Please try again after %s."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s."

#: src/error.cls.php:149
msgid "Previous request too recent. Please try again later."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde."

#: src/error.cls.php:144
msgid "Crawler disabled by the server admin."
msgstr "Rastreador desactivado por el administrador del servidor."

#: src/error.cls.php:140
msgid "Failed to create table %s! SQL: %s."
msgstr "¡Fallo al crear la tabla %s! SQL: %s."

#: src/error.cls.php:116
msgid "Could not find %1$s in %2$s."
msgstr "No se ha podido encontrar %1$s en %2$s."

#: src/error.cls.php:104
msgid "Credits are not enough to proceed the current request."
msgstr "Los créditos no son suficientes para proceder con la solicitud actual."

#: src/error.cls.php:92
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio."

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet."
msgstr "Hay una cola de procedimiento que no se ha retirado todavía."

#: src/error.cls.php:72
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "No hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamente"

#: src/error.cls.php:68
msgid "The image list is empty."
msgstr "La lista de imágenes está vacía."

#: src/error.cls.php:56
msgid "You don't have enough quota left for current service this month."
msgstr "No tienes suficiente cuota disponible este mes para el servicio actual."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "Tendrás que establecer %s para usar los servicios en línea."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "En este momento, el ajuste %s está activado."

#: src/task.cls.php:200
msgid "LiteSpeed Crawler Cron"
msgstr "Cron del rastreador de LiteSpeed"

#: src/task.cls.php:180
msgid "Every Minute"
msgstr "Cada minuto"

#: tpl/general/settings.tpl.php:236
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Los enlaces generados pueden gestionarse en los <a %s>Ajustes</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Instalar"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:267
msgid "PageSpeed Score"
msgstr "Puntuación de PageSpeed"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:240 tpl/dash/dashboard.tpl.php:308
msgid "Improved by"
msgstr "Mejorado por"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:232 tpl/dash/dashboard.tpl.php:300
msgid "After"
msgstr "Después"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:223 tpl/dash/dashboard.tpl.php:292
msgid "Before"
msgstr "Antes"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:209
msgid "Page Load Time"
msgstr "Tiempo de carga de la página"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud."

#: src/lang.cls.php:207
msgid "Preserve EXIF/XMP data"
msgstr "Conservar los datos EXIF/XMP"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Try GitHub Version"
msgstr "Probar versión de GitHub"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s."

#: src/doc.cls.php:112
msgid "Both full and partial strings can be used."
msgstr "Se pueden usa cadenas parciales y completas."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Las imágenes que contengan estos nombres de clases no tendrán carga diferida."

#: src/lang.cls.php:181
msgid "Lazy Load Image Class Name Excludes"
msgstr "Exclusión de nombres de clases para carga diferida de imágenes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI."

#: tpl/banner/new_version.php:85
msgid "Maybe Later"
msgstr "Puede que más tarde"

#: tpl/banner/new_version.php:79
msgid "Turn On Auto Upgrade"
msgstr "Activar la actualización automática"

#: tpl/banner/new_version.php:69 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:62
msgid "Upgrade"
msgstr "Actualizar"

#: tpl/banner/new_version.php:61
msgid "New release %s is available now."
msgstr "La nueva versión %s está disponible ahora."

#: tpl/banner/new_version.php:57
msgid "New Version Available!"
msgstr "¡Nueva versión disponible!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Creado con ❤️ por el equipo de LiteSpeed."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "¡Por supuesto, me encantará valorarlo!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "¡Gracias por usar el plugin de caché LiteSpeed!"

#: src/activation.cls.php:512
msgid "Upgraded successfully."
msgstr "Actualizado con éxito."

#: src/activation.cls.php:503 src/activation.cls.php:508
msgid "Failed to upgrade."
msgstr "Fallo al actualizar."

#: src/conf.cls.php:718
msgid "Changed setting successfully."
msgstr "Ajuste cambiado con éxito."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "Muestra de ESI para desarrolaldores"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Reemplaza %1$s con %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Puedes convertir shortcodes en bloques ESI."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Caché privada o caché pública"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Añade la cadena de consulta %s a los recursos para evitar esta acción."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA se omitirá automáticamente."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado."

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Valores de la cookie"

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr "Nombre de la cookie"

#: src/lang.cls.php:252
msgid "Cookie Simulation"
msgstr "Simulación de cookie"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre."

#: src/lang.cls.php:96
msgid "Automatically Upgrade"
msgstr "Actualizar automáticamente"

#: tpl/toolbox/settings-debug.tpl.php:65
msgid "Your IP"
msgstr "Tu IP"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Restablecimiento realizado con éxito."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Esto restablecerá todos los ajustes a su valores predeterminados."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Restablecer todos los ajustes"

#: tpl/page_optm/settings_tuning_css.tpl.php:117
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separa archivos CSS críticos al generar las rutas que contengan estas cadenas."

#: src/lang.cls.php:166
msgid "Separate CCSS Cache URIs"
msgstr "Distintas URIs de caché CCSS"

#: tpl/page_optm/settings_tuning_css.tpl.php:103
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán."

#: tpl/page_optm/settings_tuning_css.tpl.php:102
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS."

#: src/lang.cls.php:165
msgid "Separate CCSS Cache Post Types"
msgstr "Tipos de contenido de caché de CCSS distintos"

#: tpl/page_optm/settings_media.tpl.php:188
msgid "Size list in queue waiting for cron"
msgstr "Tamaño de la lista en la cola de espera del cron"

#: tpl/page_optm/settings_media.tpl.php:164
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s."

#: tpl/page_optm/settings_media.tpl.php:162
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas."

#: tpl/page_optm/settings_media.tpl.php:67
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto."

#: tpl/page_optm/settings_media.tpl.php:66
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes."

#: src/lang.cls.php:188
msgid "Responsive Placeholder"
msgstr "Marcador de posición adaptable"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Por favor, activa LiteSpeed Cache en los ajustes del plugin."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento."

#: src/cloud.cls.php:715 src/cloud.cls.php:736
msgid "Failed to request via WordPress"
msgstr "Fallo en la solicitud desde WordPress"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed"

#: src/img-optm.cls.php:1816
msgid "Reset the optimized data successfully."
msgstr "Datos de optimización restablecidos correctamente."

#: src/gui.cls.php:782
msgid "Update %s now"
msgstr "Actualizar %s"

#: src/gui.cls.php:777
msgid "View %1$s version %2$s details"
msgstr "Ver detalles de la versión %2$s de %1$s"

#: src/gui.cls.php:774
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>ver detalles de la versión %3$s</a> o <a href=\"%4$s\" %5$s target=\"_blank\">actualiza ya</a>."

#: src/gui.cls.php:754
msgid "Install %s"
msgstr "Instalar %s"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!"

#: src/cloud.cls.php:845
msgid "%1$s plugin version %2$s required for this action."
msgstr "Para esta acción se necesita la versión %2$s del plugin %1$s."

#: src/cloud.cls.php:783
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas."

#: src/lang.cls.php:204
msgid "Remove Original Backups"
msgstr "Eliminar copias de seguridad del orginal"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Solicitar automáticamente la optimización mediante un trabajo cron."

#: tpl/img_optm/summary.tpl.php:152
msgid "A backup of each image is saved before it is optimized."
msgstr "Se guarda una copia de seguridad de cada imagen antes de optimizarla."

#: src/img-optm.cls.php:1674
msgid "Switched images successfully."
msgstr "Imágenes cambiadas correctamente."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimizar imágenes usando compresión sin pérdida."

#: src/lang.cls.php:206
msgid "Optimize Losslessly"
msgstr "Optimizar sin pérdida"

#: tpl/img_optm/settings.media_webp.tpl.php:17
msgid "Request WebP versions of original images when doing optimization."
msgstr "Solicita versiones WebP de las imágenes originales al hacer la optimización."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta."

#: src/lang.cls.php:203
msgid "Optimize Original Images"
msgstr "Optimizar imágenes originales"

#: tpl/page_optm/settings_css.tpl.php:189
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google."

#: src/purge.cls.php:243
msgid "Cleaned all Critical CSS files."
msgstr "Limpiados todos los archivos CSS críticos."

#: tpl/page_optm/settings_css.tpl.php:275
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado."

#: src/lang.cls.php:151
msgid "Inline CSS Async Lib"
msgstr "Biblioteca de CSS integrado asíncrono"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:205
msgid "Run Queue Manually"
msgstr "Ejecutar la cola manualmente"

#: tpl/page_optm/settings_css.tpl.php:107
#: tpl/page_optm/settings_css.tpl.php:224 tpl/page_optm/settings_vpi.tpl.php:54
msgid "URL list in %s queue waiting for cron"
msgstr "Lista de URL en cola %s esperando el cron"

#: tpl/page_optm/settings_css.tpl.php:95 tpl/page_optm/settings_css.tpl.php:212
msgid "Last requested cost"
msgstr "Último coste solicitado"

#: tpl/dash/dashboard.tpl.php:446 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:510 tpl/dash/dashboard.tpl.php:542
#: tpl/page_optm/settings_css.tpl.php:92 tpl/page_optm/settings_css.tpl.php:209
#: tpl/page_optm/settings_media.tpl.php:176
#: tpl/page_optm/settings_vpi.tpl.php:42
msgid "Last generated"
msgstr "Último generado"

#: tpl/page_optm/settings_media.tpl.php:168
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página."

#: tpl/page_optm/settings_css.tpl.php:188
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron."

#: tpl/page_optm/settings_css.tpl.php:184
msgid "Optimize CSS delivery."
msgstr "Optimiza la entrega de CSS."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "Esto borrará todos los archivos generados de CSS crítico"

#: tpl/dash/dashboard.tpl.php:440 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "CSS crítico"

#: src/doc.cls.php:56
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente purgados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar."

#: src/utility.cls.php:236
msgid "right now"
msgstr "ahora mismo"

#: src/utility.cls.php:236
msgid "just now"
msgstr "ahora mismo"

#: tpl/img_optm/summary.tpl.php:211
msgid "Saved"
msgstr "Guardado"

#: tpl/img_optm/summary.tpl.php:205
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Última ejecución"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:197
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:196
msgid "This is irreversible."
msgstr "Esto es irreversible."

#: tpl/img_optm/summary.tpl.php:216
msgid "Remove Original Image Backups"
msgstr "Eliminar copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:215
msgid "Are you sure you want to remove all image backups?"
msgstr "¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:166
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:163 tpl/img_optm/summary.tpl.php:208
msgid "Files"
msgstr "Archivos"

#: tpl/img_optm/summary.tpl.php:159
msgid "Last calculated"
msgstr "Último cálculo"

#: tpl/img_optm/summary.tpl.php:174
msgid "Calculate Original Image Storage"
msgstr "Calcular almacenamiento original de imágenes"

#: tpl/img_optm/summary.tpl.php:148
msgid "Storage Optimization"
msgstr "Optimización de almacenamiento"

#: tpl/img_optm/settings.tpl.php:142
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Activar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress."

#: src/lang.cls.php:209
msgid "WebP For Extra srcset"
msgstr "WebP para src extra"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:128
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Usa el formato %1$s o %2$s (el elemento es opcional)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:127
msgid "Only attributes listed here will be replaced."
msgstr "Solo los atributos aquí listados serán reemplazados."

#: tpl/img_optm/settings.tpl.php:126
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Especificar que atributos de elementos serán reemplazados con WebP."

#: src/lang.cls.php:208
msgid "WebP Attribute To Replace"
msgstr "Atributo WebP a reemplazar"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Solo los archivos en estos directorios apuntarán a la CDN."

#: src/lang.cls.php:239
msgid "Included Directories"
msgstr "Directorios incluidos"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Se iniciará una purga completa cuando WordPress ejecute estos ganchos."

#: src/lang.cls.php:216
msgid "Purge All Hooks"
msgstr "Ganchos de purgar todo"

#: src/purge.cls.php:205
msgid "Purged all caches successfully."
msgstr "Todas las cachés purgadas correctamente."

#: src/gui.cls.php:480 src/gui.cls.php:580 src/gui.cls.php:630
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:424
msgid "Forced cacheable"
msgstr "Forzar cacheables"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables."

#: src/lang.cls.php:129
msgid "Force Cache URIs"
msgstr "Forzar URLs en caché"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Ajustes de exclusión"

#: tpl/toolbox/settings-debug.tpl.php:35
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Esto desactivará LSCache y todas las características de optimización con propósitos de depuración."

#: src/lang.cls.php:257 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Desactivar todas las características"

#: src/gui.cls.php:507 src/gui.cls.php:667 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Caché opcode"

#: src/gui.cls.php:488 src/gui.cls.php:638 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "Caché CSS/JS"

#: src/gui.cls.php:735 tpl/img_optm/summary.tpl.php:141
msgid "Remove all previous unfinished image optimization requests."
msgstr "Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar."

#: src/gui.cls.php:736 tpl/img_optm/summary.tpl.php:143
msgid "Clean Up Unfinished Data"
msgstr "Limpiar datos no finalizados"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Únete a nuestro Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Únete a la comunidad %s."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "¿Quieres conectar con otros usuarios de LiteSpeed?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Obténla desde <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:202
msgid "Your API key / token is used to access %s APIs."
msgstr "Tu clave de la API/token se usa para acceder a las API de %s."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Tu dirección de email en %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Usar la funcionalidad de la API %s."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Únete a la comunidad de Slack de LiteSpeed"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visita el foro de soporte de LSCWP"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Valora %s en %s"

#: src/lang.cls.php:29 tpl/dash/dashboard.tpl.php:371
msgid "Images notified to pull"
msgstr "Imágenes notificadas para descargar"

#: tpl/img_optm/summary.tpl.php:244
msgid "What is a group?"
msgstr "¿Qué es un grupo?"

#: src/admin-display.cls.php:1228
msgid "%s image"
msgstr "%s imagen"

#: src/admin-display.cls.php:1225
msgid "%s group"
msgstr "%s grupo"

#: src/admin-display.cls.php:1215
msgid "%s images"
msgstr "%s imágenes"

#: src/admin-display.cls.php:1212
msgid "%s groups"
msgstr "%s grupos"

#: src/crawler.cls.php:960
msgid "Guest"
msgstr "Invitado"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar."

#: src/lang.cls.php:251
msgid "Role Simulation"
msgstr "Simulación de rol"

#: tpl/crawler/summary.tpl.php:176
msgid "running"
msgstr "ejecutando"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Tamaño"

#: tpl/crawler/summary.tpl.php:104 tpl/dash/dashboard.tpl.php:595
msgid "Ended reason"
msgstr "Razón de finalización"

#: tpl/crawler/summary.tpl.php:97 tpl/dash/dashboard.tpl.php:588
msgid "Last interval"
msgstr "Último intervalo"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:581
msgid "Current crawler started at"
msgstr "El rastreador actual comenzó a las"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Hora de ejecución para el rastreador anterior"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d segundos"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Hora de la última ejecución completa para todos los rastreadores"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "El rastreo del mapa del sitio actual comenzó a las"

#: tpl/cache/settings_inc.object.tpl.php:213
msgid "Save transients in database when %1$s is %2$s."
msgstr "Guarda datos transitorios en la base de datos cuando %1$s es %2$s."

#: src/lang.cls.php:123
msgid "Store Transients"
msgstr "Almacenar datos transitorios"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "¡Si %1$s es %2$s entonces debe completarse %3$s!"

#: tpl/crawler/settings-general.tpl.php:150
msgid "Server allowed max value"
msgstr "Valor máximo permitido por el servidor"

#: tpl/crawler/settings-general.tpl.php:145
msgid "Server enforced value"
msgstr "Valor forzado por el servidor"

#: tpl/crawler/settings-general.tpl.php:44
msgid "Server allowed min value"
msgstr "Valor mínimo permitido por el servidor"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/auto_setup.tpl.php:235
#: tpl/cdn/auto_setup.tpl.php:246 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:43
#: tpl/crawler/settings-general.tpl.php:144
#: tpl/crawler/settings-general.tpl.php:149
msgid "NOTE"
msgstr "NOTA"

#: src/admin-display.cls.php:1181
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable(s) del servidor %s disponible para omitir este ajuste."

#: src/admin-display.cls.php:1180 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:192
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media.tpl.php:245
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:39
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:80
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:120
#: tpl/page_optm/settings_tuning_css.tpl.php:24
#: tpl/page_optm/settings_tuning_css.tpl.php:84
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:396
msgid "Reset the entire opcode cache successfully."
msgstr "Reestablecida la caché opcache con éxito."

#: src/purge.cls.php:384
msgid "Opcode cache is not enabled."
msgstr "La caché opcache no está habilitada."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Importado con éxito el archivo de ajustes %s."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Importación fallida debido a un error en el archivo."

#: tpl/page_optm/settings_css.tpl.php:51 tpl/page_optm/settings_js.tpl.php:40
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Cómo solucionar problemas causados por la optimización CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a visitor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace."

#: src/lang.cls.php:218
msgid "Instant Click"
msgstr "Clic instantáneo"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Reestablecer toda la caché opcode"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Última importación"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importar"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Ajustes de importación"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Última exportación"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exportar"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Ajustes de exportación"

#: tpl/presets/entry.tpl.php:7 tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Importar / Exportar"

#: tpl/cache/settings_inc.object.tpl.php:187
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilizar conexiones keep-alive para acelerar operaciones de la caché."

#: tpl/cache/settings_inc.object.tpl.php:147
msgid "Database to be used"
msgstr "Base de datos a usar"

#: src/lang.cls.php:118
msgid "Redis Database ID"
msgstr "ID de base de datos Redis"

#: tpl/cache/settings_inc.object.tpl.php:134
msgid "Specify the password used when connecting."
msgstr "Especifica la contraseña utilizada al conectar."

#: src/lang.cls.php:117
msgid "Password"
msgstr "Contraseña"

#: tpl/cache/settings_inc.object.tpl.php:121
msgid "Only available when %s is installed."
msgstr "Solo disponible cuando está instalado %s."

#: src/lang.cls.php:116
msgid "Username"
msgstr "Nombre de usuario"

#: tpl/cache/settings_inc.object.tpl.php:79
msgid "Your %s Hostname or IP address."
msgstr "El hostname o dirección IP de tu %s."

#: src/lang.cls.php:112
msgid "Method"
msgstr "Método"

#: src/purge.cls.php:437
msgid "Purge all object caches successfully."
msgstr "Purga correcta de todas las cachés de objetos."

#: src/purge.cls.php:424
msgid "Object cache is not enabled."
msgstr "La caché de objetos no está activada."

#: tpl/cache/settings_inc.object.tpl.php:200
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)"

#: src/lang.cls.php:122
msgid "Cache WP-Admin"
msgstr "Caché de WP-Admin"

#: src/lang.cls.php:121
msgid "Persistent Connection"
msgstr "Conexión persistente"

#: src/lang.cls.php:120
msgid "Do Not Cache Groups"
msgstr "Grupos a no cachear"

#: tpl/cache/settings_inc.object.tpl.php:160
msgid "Groups cached at the network level."
msgstr "Grupos cacheados a nivel de red."

#: src/lang.cls.php:119
msgid "Global Groups"
msgstr "Grupos globales"

#: tpl/cache/settings_inc.object.tpl.php:53
msgid "Connection Test"
msgstr "Prueba de conexión"

#: tpl/cache/settings_inc.object.tpl.php:51
#: tpl/cache/settings_inc.object.tpl.php:52
msgid "%s Extension"
msgstr "Extensión %s"

#: tpl/cache/settings_inc.object.tpl.php:48 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:130
msgid "Status"
msgstr "Estado"

#: tpl/cache/settings_inc.object.tpl.php:108
msgid "Default TTL for cached objects."
msgstr "TTL por defecto para objetos cacheados."

#: src/lang.cls.php:115
msgid "Default Object Lifetime"
msgstr "Tiempo de vida por defecto del objeto"

#: src/lang.cls.php:114
msgid "Port"
msgstr "Puerto"

#: src/lang.cls.php:113
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:497 src/gui.cls.php:657 src/lang.cls.php:111
#: tpl/dash/dashboard.tpl.php:420 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Caché de objetos"

#: tpl/cache/settings_inc.object.tpl.php:21
msgid "Failed"
msgstr "Fallido"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Exitoso"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "No disponible"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Purgar todas las cachés de objetos"

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr "Fallo al comunicar con Cloudflare"

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr "Comunicado con éxito con Cloudflare."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "No hay disponible una zona Cloudflare"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Avisado correctamente a Cloudflare de la purga completa."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "La API de Cloudflare está configurada en off."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Una vez guardado, coincidirá con la lista actual y se completará automáticamente."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "Puedes simplemente teclear parte de dominio."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Dominio"

#: src/lang.cls.php:241
msgid "Cloudflare API"
msgstr "API de Cloudflare"

#: tpl/cdn/manage.tpl.php:78
msgid "Purge Everything"
msgstr "Purgar todo"

#: tpl/cdn/manage.tpl.php:72
msgid "Cloudflare Cache"
msgstr "Caché de Cloudflare"

#: tpl/cdn/manage.tpl.php:66
msgid "Development Mode will be turned off automatically after three hours."
msgstr "El modo de desarrollo se desactivará automáticamente después de tres horas."

#: tpl/cdn/manage.tpl.php:65
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real."

#: tpl/cdn/manage.tpl.php:57
msgid "Development mode will be automatically turned off in %s."
msgstr "El modo de desarrollo se desactivará automáticamente en %s."

#: tpl/cdn/manage.tpl.php:56
msgid "Current status is %s."
msgstr "El estado actual es %s."

#: tpl/cdn/manage.tpl.php:51
msgid "Current status is %1$s since %2$s."
msgstr "El estado actual es %1$s desde %2$s."

#: tpl/cdn/manage.tpl.php:42
msgid "Check Status"
msgstr "Comprobar estado"

#: tpl/cdn/manage.tpl.php:39
msgid "Turn OFF"
msgstr "APAGAR"

#: tpl/cdn/manage.tpl.php:36
msgid "Turn ON"
msgstr "ENCENDER"

#: tpl/cdn/manage.tpl.php:34
msgid "Development Mode"
msgstr "Modo de desarrollo"

#: tpl/cdn/manage.tpl.php:31
msgid "Cloudflare Zone"
msgstr "Zona de Cloudflare"

#: tpl/cdn/manage.tpl.php:30
msgid "Cloudflare Domain"
msgstr "Dominio de Cloudflare"

#: src/gui.cls.php:647 tpl/cdn/manage.tpl.php:19
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "Por ejemplo"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "La precarga DNS puede reducir la latencia para los visitantes."

#: src/lang.cls.php:156
msgid "DNS Prefetch"
msgstr "Prefetch DNS"

#: tpl/page_optm/settings_media.tpl.php:35
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Añade estilos a tus imágenes de carga diferida"

#: src/admin-display.cls.php:1043 src/admin-display.cls.php:1048
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Valor por defecto"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s."

#: src/lang.cls.php:109
msgid "Drop Query String"
msgstr "Ignorar cadenas de consulta"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché."

#: src/lang.cls.php:217
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Mejorar compatibilidad HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:311
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización."

#: tpl/img_optm/summary.tpl.php:307
msgid "Destroy All Optimization Data"
msgstr "Destruir todos los datos de optimización"

#: tpl/img_optm/summary.tpl.php:257
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Esto aumentará el tamaño de los archivos optimizados."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar."

#: tpl/toolbox/log_viewer.tpl.php:61
msgid "Clear Logs"
msgstr "Vaciar los registros"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Para probar el carrito, visita la <a %s>FAQ</a>."

#: src/utility.cls.php:239
msgid " %s ago"
msgstr " hace %s"

#: src/media.cls.php:340
msgid "WebP saved %s"
msgstr "WebP ha ahorrado un %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Esto también generará una clave de API del servidor de LiteSpeed."

#: tpl/img_optm/summary.tpl.php:123
msgid "Last pull initiated by cron at %s."
msgstr "Última descarga iniciada por cron a las %s."

#: tpl/img_optm/summary.tpl.php:67
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando."

#: tpl/img_optm/summary.tpl.php:67
msgid "Only press the button if the pull cron job is disabled."
msgstr "Solo pulsar el botón si la tarea cron de descarga está desactivada."

#: tpl/img_optm/summary.tpl.php:68
msgid "Pull Images"
msgstr "Descargar imágenes"

#: tpl/img_optm/summary.tpl.php:108
msgid "This process is automatic."
msgstr "Este proceso es automático."

#: tpl/dash/dashboard.tpl.php:381 tpl/img_optm/summary.tpl.php:275
msgid "Last Request"
msgstr "Última petición"

#: tpl/dash/dashboard.tpl.php:353 tpl/img_optm/summary.tpl.php:272
msgid "Images Pulled"
msgstr "Imágenes recuperadas"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Informe"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Enviar a LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Fecha de informe"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Número de informe"

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr "Optimización de LiteSpeed"

#: src/lang.cls.php:162
msgid "Load Google Fonts Asynchronously"
msgstr "Cargar Google Fonts asíncronamente"

#: src/lang.cls.php:95
msgid "Browser Cache TTL"
msgstr "TTL caché de navegador"

#: tpl/img_optm/summary.tpl.php:279
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>."

#: src/doc.cls.php:74 src/doc.cls.php:128 tpl/cdn/manage.tpl.php:67
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:48
#: tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Leer más"

#: tpl/img_optm/summary.tpl.php:236
msgid "Image groups total"
msgstr "Total de grupos de imágenes"

#: src/lang.cls.php:30
msgid "Images optimized and pulled"
msgstr "Imágenes optimizadas y descargadas"

#: src/lang.cls.php:28 tpl/dash/dashboard.tpl.php:361
msgid "Images requested"
msgstr "Imágenes solicitadas"

#: src/img-optm.cls.php:1719 src/img-optm.cls.php:1765
msgid "Switched to optimized file successfully."
msgstr "Cambio correcto a archivo optimizado."

#: src/img-optm.cls.php:1759
msgid "Restored original file successfully."
msgstr "Archivo original restaurado con éxito."

#: src/img-optm.cls.php:1743
msgid "Enabled WebP file successfully."
msgstr "Archivo WebP activado con éxito."

#: src/img-optm.cls.php:1738
msgid "Disabled WebP file successfully."
msgstr "Archivo WebP desactivado con éxito."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes de QUIC.cloud."

#: tpl/img_optm/settings.media_webp.tpl.php:18
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas."

#: src/lang.cls.php:205
msgid "Image WebP Replacement"
msgstr "Reemplazo de imágenes WebP"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Los perfiles seleccionados serán excluidos de la caché."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:13
#: tpl/page_optm/entry.tpl.php:14
msgid "Tuning"
msgstr "Retoques"

#: tpl/page_optm/settings_tuning.tpl.php:147
msgid "Selected roles will be excluded from all optimizations."
msgstr "Los perfiles seleccionados serán excluidos de todas las optimizaciones."

#: src/lang.cls.php:173
msgid "Role Excludes"
msgstr "Excluir perfiles"

#: tpl/general/settings_tuning.tpl.php:8
#: tpl/page_optm/settings_tuning.tpl.php:20
#: tpl/page_optm/settings_tuning_css.tpl.php:7
msgid "Tuning Settings"
msgstr "Ajustes de los retoques"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar."

#: tpl/img_optm/summary.tpl.php:107
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas."

#: tpl/dash/dashboard.tpl.php:344 tpl/img_optm/summary.tpl.php:64
msgid "Send Optimization Request"
msgstr "Enviar solicitud de optimización"

#: tpl/img_optm/summary.tpl.php:227
msgid "Image Information"
msgstr "Información de imágenes"

#: tpl/dash/dashboard.tpl.php:350 tpl/img_optm/summary.tpl.php:269
msgid "Total Reduction"
msgstr "Reducción total"

#: tpl/img_optm/summary.tpl.php:266
msgid "Optimization Summary"
msgstr "Resumen de optimización"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimización de imágenes de LiteSpeed Cache"

#: src/admin-display.cls.php:129 src/gui.cls.php:613
#: tpl/dash/dashboard.tpl.php:52 tpl/dash/network_dash.tpl.php:27
#: tpl/presets/standard.tpl.php:24
msgid "Image Optimization"
msgstr "Optimización de imágenes"

#: tpl/page_optm/settings_media.tpl.php:52
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Por ejemplo, los %s pueden usarse para un marcador de posición transparente."

#: tpl/page_optm/settings_media.tpl.php:51
msgid "By default a gray image placeholder %s will be used."
msgstr "Por defecto, se utilizará un marcador de posición de imagen gris %s."

#: tpl/page_optm/settings_media.tpl.php:50
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración."

#: tpl/page_optm/settings_media.tpl.php:49
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:61
#: tpl/page_optm/settings_tuning.tpl.php:82
#: tpl/page_optm/settings_tuning.tpl.php:103
#: tpl/page_optm/settings_tuning_css.tpl.php:26
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en código html."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:40
#: tpl/page_optm/settings_tuning.tpl.php:60
#: tpl/page_optm/settings_tuning.tpl.php:81
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:121
#: tpl/page_optm/settings_tuning_css.tpl.php:25
#: tpl/page_optm/settings_tuning_css.tpl.php:85
msgid "Filter %s is supported."
msgstr "El filtro %s es compatible."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Las imágenes listadas no se cargarán de forma retrasada."

#: src/lang.cls.php:180
msgid "Lazy Load Image Excludes"
msgstr "Exclusiones de carga retrasada de imágenes"

#: src/gui.cls.php:457
msgid "No optimization"
msgstr "Sin optimización"

#: tpl/page_optm/settings_tuning.tpl.php:117
msgid "Prevent any optimization of listed pages."
msgstr "Evitar cualquier optimización de las páginas listadas."

#: src/lang.cls.php:171
msgid "URI Excludes"
msgstr "URL excluidas"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Deja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador."

#: src/doc.cls.php:114
msgid "Both full URLs and partial strings can be used."
msgstr "Pueden utilizarse tanto URLs completas como cadenas parciales."

#: tpl/page_optm/settings_media.tpl.php:221
msgid "Load iframes only when they enter the viewport."
msgstr "Cargar iframes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:196
msgid "Lazy Load Iframes"
msgstr "Retrasar la carga de iframes"

#: tpl/page_optm/settings_media.tpl.php:31
#: tpl/page_optm/settings_media.tpl.php:222
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales."

#: tpl/page_optm/settings_media.tpl.php:30
msgid "Load images only when they enter the viewport."
msgstr "Cargar las imágenes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:179
msgid "Lazy Load Images"
msgstr "Retrasar la carga de imágenes"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:16
msgid "Media Settings"
msgstr "Ajustes de medios"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "Por ejemplo, para %s, %s y %s puede utilizarse aquí."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s."

#: src/admin-display.cls.php:1196
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Para que coincida con el principio, añade %s al comienzo del artículo."

#: src/admin-display.cls.php:1194
msgid "For example, for %s, %s can be used here."
msgstr "Por ejemplo, para %s, %s puede utilizarse aquí."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Quizás más tarde"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "Ya he dejado una valoración"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Bienvenido a LiteSpeed"

#: src/lang.cls.php:169 tpl/presets/standard.tpl.php:44
msgid "Remove WordPress Emoji"
msgstr "Eliminar emojis de WordPress"

#: src/gui.cls.php:465
msgid "More settings"
msgstr "Más ajustes"

#: src/gui.cls.php:446
msgid "Private cache"
msgstr "Caché privada"

#: src/gui.cls.php:435
msgid "Non cacheable"
msgstr "No cacheable"

#: src/gui.cls.php:412
msgid "Mark this page as "
msgstr "Marcar esta página como "

#: src/gui.cls.php:388 src/gui.cls.php:403
msgid "Purge this page"
msgstr "Purgar esta página"

#: src/lang.cls.php:153
msgid "Load JS Deferred"
msgstr "Deferir carga de JS"

#: tpl/page_optm/settings_tuning_css.tpl.php:131
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s."

#: src/lang.cls.php:164
msgid "Critical CSS Rules"
msgstr "Reglas de CSS críticas"

#: src/lang.cls.php:149 tpl/page_optm/settings_tuning_css.tpl.php:131
msgid "Load CSS Asynchronously"
msgstr "Cargar CSS asíncronamente"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Evita que cargue Google Fonts en todas las páginas."

#: src/lang.cls.php:163
msgid "Remove Google Fonts"
msgstr "Eliminar Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:185
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:73
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:79
msgid "Remove query strings from internal static resources."
msgstr "Eliminar cadenas de consulta de recursos estáticos internos."

#: src/lang.cls.php:161
msgid "Remove Query Strings"
msgstr "Eliminar query strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "También puedes activar la caché del navegador en la administración del servidor. <a %s>Aprende más acerca del ajuste de la caché de navegador de LiteSpeed</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos."

#: src/lang.cls.php:88 tpl/dash/dashboard.tpl.php:421
#: tpl/presets/standard.tpl.php:12
msgid "Browser Cache"
msgstr "Caché del navegador"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "etiquetas"

#: src/lang.cls.php:134
msgid "Do Not Cache Tags"
msgstr "Etiquetas a no cachear"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "Para excluir %1$s, insertar %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "categorías"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "Para evitar que los %s sean almacenados en la caché, introdúcelos aquí."

#: src/lang.cls.php:133
msgid "Do Not Cache Categories"
msgstr "Categorías a no cachear"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché."

#: src/lang.cls.php:132
msgid "Do Not Cache Query Strings"
msgstr "Cadenas de consulta a no cachear"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Las rutas que contengan estas cadenas no serán cacheadas."

#: src/lang.cls.php:131
msgid "Do Not Cache URIs"
msgstr "URIs a no cachear"

#: tpl/toolbox/settings-debug.tpl.php:51
msgid "The logs will be output to %s."
msgstr "Los registros serán enviados a %s."

#: src/admin-display.cls.php:1198 src/doc.cls.php:96
msgid "One per line."
msgstr "Una por línea."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas."

#: src/lang.cls.php:108
msgid "Private Cached URIs"
msgstr "URIs cacheadas privadamente"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Las rutas que contengan las siguientes cadenas no se servirán desde el CDN."

#: src/lang.cls.php:240
msgid "Exclude Path"
msgstr "Excluir ruta"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Esto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s."

#: src/lang.cls.php:236 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Incluir tipos de archivo"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress."

#: src/lang.cls.php:235
msgid "Include JS"
msgstr "Incluir JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress."

#: src/lang.cls.php:234
msgid "Include CSS"
msgstr "Incluir CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s."

#: src/lang.cls.php:233
msgid "Include Images"
msgstr "Incluir imágenes"

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr "URL de la CDN a utilizar. Por ejemplo, %s"

#: src/lang.cls.php:232
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s."

#: src/lang.cls.php:238
msgid "Original URLs"
msgstr "URLs originales"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "Ajustes de CDN"

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:239 src/admin-display.cls.php:901
#: src/admin-display.cls.php:928 src/admin-display.cls.php:980
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:213 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:82 tpl/page_optm/settings_js.tpl.php:69
#: tpl/page_optm/settings_media.tpl.php:168
#: tpl/toolbox/settings-debug.tpl.php:46
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:238 src/admin-display.cls.php:900
#: src/admin-display.cls.php:929 src/admin-display.cls.php:980
#: src/doc.cls.php:31 tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:189
#: tpl/page_optm/settings_media.tpl.php:165
#: tpl/toolbox/settings-debug.tpl.php:46
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:368
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Solicitada la purga de entradas CSS/JS al servidor web LiteSpeed."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minificar contenido HTML."

#: src/lang.cls.php:147
msgid "HTML Minify"
msgstr "Minificar HTML"

#: src/lang.cls.php:160
msgid "JS Excludes"
msgstr "Excluir JS"

#: src/data.upgrade.func.php:118 src/lang.cls.php:145
msgid "JS Combine"
msgstr "Combinar JS"

#: src/lang.cls.php:144
msgid "JS Minify"
msgstr "Minificar JS"

#: src/lang.cls.php:158
msgid "CSS Excludes"
msgstr "Excluir CSS"

#: src/lang.cls.php:137
msgid "CSS Combine"
msgstr "Combinar CSS"

#: src/lang.cls.php:136
msgid "CSS Minify"
msgstr "Minificar CSS"

#: tpl/page_optm/entry.tpl.php:33
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Purgar todo»."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Esto purgará solo las entradas CSS/JS minimizadas o combinadas"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Error de purga de %s"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Optimizador de base de datos"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimizar todas las tablas en tu base de datos"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimizar tablas"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Borrar todas las opciones de datos transitorios"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Todos los datos transitorios"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Borrar opciones de datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Borrar todos los trackbacks y pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Borrar todos los comentarios en la papelera"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Comentarios enviados a la papelera"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Borrar todos los comentarios spam"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Comentarios spam"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Borrar todas las entradas y páginas en la papelera"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Entradas enviadas a la papelera"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Borrar todos los borradores guardados automáticamente"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Borradores automáticos"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Borrar todas las revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Limpiar todo"

#: src/db-optm.cls.php:220
msgid "Optimized all tables."
msgstr "Optimizadas todas las tablas."

#: src/db-optm.cls.php:210
msgid "Clean all transients successfully."
msgstr "Limpieza de todos los datos transitorios exitosa."

#: src/db-optm.cls.php:206
msgid "Clean expired transients successfully."
msgstr "Limpieza de datos transitorios expirados exitosa."

#: src/db-optm.cls.php:202
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Limpieza de trackbacks y pingbacks exitosa."

#: src/db-optm.cls.php:198
msgid "Clean trashed comments successfully."
msgstr "Limpieza de comentarios en papelera exitosa."

#: src/db-optm.cls.php:194
msgid "Clean spam comments successfully."
msgstr "Limpieza de comentarios no deseados exitosa."

#: src/db-optm.cls.php:190
msgid "Clean trashed posts and pages successfully."
msgstr "Limpieza de páginas y entradas en papelera exitosa."

#: src/db-optm.cls.php:186
msgid "Clean auto drafts successfully."
msgstr "Limpieza de borradores automáticos exitosa."

#: src/db-optm.cls.php:182
msgid "Clean post revisions successfully."
msgstr "Limpieza de revisiones de entradas exitosa."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Limpieza completa exitosa."

#: src/lang.cls.php:90
msgid "Default Private Cache TTL"
msgstr "TTL por defecto de la caché privada"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de \"editar\", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto."

#: src/lang.cls.php:215 tpl/page_optm/settings_css.tpl.php:121
#: tpl/page_optm/settings_css.tpl.php:238 tpl/page_optm/settings_vpi.tpl.php:67
msgid "Vary Group"
msgstr "Grupos de variación"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Almacena en la caché el bloque ESI del formulario de comentarios incluido."

#: src/lang.cls.php:213
msgid "Cache Comment Form"
msgstr "Cachear formulario de comentario"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Almacena en la caché el bloque ESI de la barra de administración incluida."

#: src/lang.cls.php:212
msgid "Cache Admin Bar"
msgstr "Cachear barra de administrador"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite \"hacer huecos\" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privada"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Pública"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Ajustes de purga"

#: src/lang.cls.php:105
msgid "Cache PHP Resources"
msgstr "Cachear recursos de PHP"

#: src/lang.cls.php:106 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache móvil"

#: tpl/toolbox/settings-debug.tpl.php:84
msgid "Advanced level will log more details."
msgstr "El nivel avanzado registrará más detalles."

#: tpl/presets/standard.tpl.php:21 tpl/toolbox/settings-debug.tpl.php:82
msgid "Basic"
msgstr "Básico"

#: tpl/crawler/settings-general.tpl.php:139
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del rastreador será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado."

#: src/lang.cls.php:103
msgid "Cache Login Page"
msgstr "Cachear página de acceso"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cachear peticiones realizadas por llamadas de la API REST de WordPress."

#: src/lang.cls.php:102
msgid "Cache REST API"
msgstr "Cachear API REST"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)"

#: src/lang.cls.php:101
msgid "Cache Commenters"
msgstr "Cachear comentaristas"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)"

#: src/lang.cls.php:100
msgid "Cache Logged-in Users"
msgstr "Cachear usuarios con sesión iniciada"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Ajustes de control de caché"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excluir"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:142
msgid "Purge"
msgstr "Purgar"

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Caché"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Se ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (<a %3$s>Más Información</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "La hora actual del servidor es %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Especifica la hora para purgar la lista «%s»."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Tanto %1$s como %2$s son aceptables."

#: src/lang.cls.php:128 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Hora de purga programada"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "Las URLs de aquí (una por línea) serán purgadas automáticamente a la hora establecida en la opción «%s»."

#: src/lang.cls.php:127 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "URLs de purga programada"

#: tpl/toolbox/settings-debug.tpl.php:125
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad."

#: tpl/toolbox/settings-debug.tpl.php:112
msgid "Log requested cookie values."
msgstr "Registra los valores solicitados de las cookies."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:95
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:261
msgid "Log File Size Limit"
msgstr "Límite de tamaño de archivo de registro"

#: src/htaccess.cls.php:824
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s"

#: src/error.cls.php:108 src/error.cls.php:132
msgid "%s file not writable."
msgstr "No se puede escribir el archivo %s."

#: src/error.cls.php:128
msgid "%s file not readable."
msgstr "No se puede leer el archivo %s."

#: src/lang.cls.php:263
msgid "Collapse Query Strings"
msgstr "Colapsar cadenas de peticiones"

#: src/lang.cls.php:262
msgid "Log Cookies"
msgstr "Registrar cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "Ajustes de ESI"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 implica no cachear."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valor recomendado: 28800 segundos (8 horas)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "TTL caché de Widgets:"

#: src/lang.cls.php:211 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Activar ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Ver <a %s>Introducción para activar el rastreador</a> para información detallada."

#: src/lang.cls.php:253
msgid "Custom Sitemap"
msgstr "Sitemap personalizado"

#: tpl/toolbox/purge.tpl.php:244
msgid "Purge pages by relative or full URL."
msgstr "Purgar páginas por URL completa o relativa."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La característica de rastreador no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:23
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:67 tpl/page_optm/settings_css.tpl.php:180
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "ADVERTENCIA"

#: tpl/crawler/summary.tpl.php:111
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Última indexación:</b> %s elemento(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "La siguiente indexación de sitemap completa empezará a las"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Error al escribir a %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "El directorio no es escribible: %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "No se puede crear el directorio: %1$s. Error: %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "El directorio no existe: %s"

#: src/core.cls.php:347
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Solicitado la purga de la lista al servidor web LiteSpeed."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Por favor, visita la página de <a %s>Información</a> sobre como probar la caché."

#: tpl/toolbox/settings-debug.tpl.php:64
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores."

#: src/lang.cls.php:250
msgid "Server Load Limit"
msgstr "Límite de carga del servidor"

#: tpl/crawler/settings-general.tpl.php:109
msgid "Specify Number of Threads to use while crawling."
msgstr "Especifica el número de hilos a utilizar durante la indexación."

#: tpl/crawler/settings-general.tpl.php:95
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Especifica tras cuanto tiempo debe el rastreador indexar el sitemap entero de nuevo."

#: src/lang.cls.php:247
msgid "Crawl Interval"
msgstr "Intervalo de indexación"

#: src/lang.cls.php:246
msgid "Interval Between Runs"
msgstr "Intervalo entre ejecuciones"

#: tpl/crawler/settings-general.tpl.php:66
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Especifica un tiempo en segundos para la duración del intervalo de indexación."

#: tpl/crawler/settings-general.tpl.php:39
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación."

#: tpl/crawler/settings-general.tpl.php:37
msgid "microseconds"
msgstr "microsegundos"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Y otro WordPress instalado (NO MULTISITIO) en %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Ajustes de la caché de la red de caché de LiteSpeed"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Selecciona debajo las opciones de «Purgar por»."

#: tpl/cdn/entry.tpl.php:15
msgid "LiteSpeed Cache CDN"
msgstr "CDN de la caché de LiteSpeed"

#: tpl/crawler/summary.tpl.php:227
msgid "No crawler meta file generated yet"
msgstr "Archivo meta del rastreador aún no generado"

#: tpl/crawler/summary.tpl.php:209
msgid "Show crawler status"
msgstr "Mostrar estado del rastreador"

#: tpl/crawler/summary.tpl.php:202
msgid "Watch Crawler Status"
msgstr "Ver estado del rastreador"

#: tpl/crawler/summary.tpl.php:197
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema."

#: tpl/crawler/summary.tpl.php:194
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones."

#: tpl/crawler/summary.tpl.php:119
msgid "Manually run"
msgstr "Ejecutar manualmente"

#: tpl/crawler/summary.tpl.php:116
msgid "Reset position"
msgstr "Reestablecer posición"

#: tpl/crawler/summary.tpl.php:129
msgid "Run Frequency"
msgstr "Frecuencia de ejecución"

#: tpl/crawler/summary.tpl.php:128
msgid "Cron Name"
msgstr "Nombre del Cron"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Cron del rastreador"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minuto"

#: tpl/crawler/summary.tpl.php:34
msgid "%d minutes"
msgstr "%d minutos"

#: tpl/crawler/summary.tpl.php:27
msgid "%d hour"
msgstr "%d hora"

#: tpl/crawler/summary.tpl.php:25
msgid "%d hours"
msgstr "%d horas"

#: tpl/crawler/map.tpl.php:29
msgid "Generated at %s"
msgstr "Generado en %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "Rastreador de LiteSpeed Cache"

#: src/lang.cls.php:248
msgid "Threads"
msgstr "Hilos"

#: src/lang.cls.php:245
msgid "Run Duration"
msgstr "Duración de la ejecución"

#: src/lang.cls.php:244
msgid "Delay"
msgstr "Retraso"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>."

#: src/admin-display.cls.php:135 src/lang.cls.php:243
msgid "Crawler"
msgstr "Rastreador"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:664
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Solicitada la purga de todas las páginas al servidor web LiteSpeed."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Todas las páginas con widget de Entradas recientes"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Páginas"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Esto solo purgará las páginas"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purgar páginas"

#: tpl/cdn/auto_setup.tpl.php:223
msgid "Action"
msgstr "Acción"

#: src/gui.cls.php:79
msgid "Cancel"
msgstr "Cancelar"

#: tpl/crawler/summary.tpl.php:131
msgid "Activate"
msgstr "Activar"

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Dirección de correo electrónico"

#: tpl/general/settings.tpl.php:103
msgid "Warning"
msgstr "Advertencia"

#: src/gui.cls.php:755
msgid "Install Now"
msgstr "Instalar ahora"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "¡Se ha purgado la URL!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "¡Se ha purgado el blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "¡Se ha purgado todo!"

#: src/purge.cls.php:683
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Solicitada la purga de las páginas de error al servidor web LiteSpeed."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Si no, por favor verifica el ajuste en la <a href=\"%1$s\">pestaña Avanzado</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "El ajuste de administrador de red puede ser modificado aquí."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Recomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero."

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by post ID."
msgstr "Purgar páginas por ID de entrada."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purga las entradas de caché de LiteSpeed creadas por este plugin"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s error pages"
msgstr "Purgar las páginas de error %s"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Esto solo purgará la página principal"

#: tpl/toolbox/purge.tpl.php:239
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purgar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s."

#: tpl/toolbox/purge.tpl.php:245
msgid "e.g. Use %s or %s."
msgstr "ej: Usa %s o %s."

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purgar páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s."

#: tpl/toolbox/purge.tpl.php:133
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si se debe purgar todo el sitio WordPress, usa «Purgar todo»."

#: src/core.cls.php:342
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Solicitado la purga de todo al servidor web LiteSpeed."

#: tpl/general/network_settings.tpl.php:21
msgid "Use Primary Site Configuration"
msgstr "Usar configuración del sitio principal"

#: tpl/general/network_settings.tpl.php:26
msgid "This will disable the settings page on all subsites."
msgstr "Esto desactivará la página de ajustes en todos los subsitios."

#: tpl/general/network_settings.tpl.php:25
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Marca esta opción para usar la configuración del sitio principal para todos los subsitios."

#: src/admin-display.cls.php:769 src/admin-display.cls.php:774
msgid "Save Changes"
msgstr "Guardar cambios"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios."

#: tpl/toolbox/purge.tpl.php:125
msgid "Empty Entire Cache"
msgstr "Vaciar la caché entera"

#: tpl/toolbox/purge.tpl.php:127
msgid "This action should only be used if things are cached incorrectly."
msgstr "Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente."

#: tpl/toolbox/purge.tpl.php:126
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "Esto puede causar una alta carga en el servidor."

#: tpl/toolbox/purge.tpl.php:131
msgid "This will clear EVERYTHING inside the cache."
msgstr "Esto eliminará TODO dentro de la caché."

#: src/gui.cls.php:580
msgid "LiteSpeed Cache Purge All"
msgstr "Purdgar toda la caché de LiteSpeed"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si no quieres la aceleración de litespeed, puedes desactivar este plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Crear una entrada, asegurarse que la página principal está actualizada."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visitar el sitio sin la sesión iniciada."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Ejemplos de pruebas incluyen:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Este mensaje indica que el plugin fue instalado por el administrador del servidor."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "¡El plugin LiteSpeed Cache está instalado!"

#: src/lang.cls.php:258 tpl/toolbox/log_viewer.tpl.php:11
msgid "Debug Log"
msgstr "Registro de depuración"

#: tpl/toolbox/settings-debug.tpl.php:46
msgid "Admin IP Only"
msgstr "Solo la IP del administrador"

#: tpl/toolbox/settings-debug.tpl.php:50
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "El informe de entorno contiene información detallada sobre la configuración de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existence of this cookie."
msgstr "El servidor determinará si el usuario está conectado en base a la existencia de esta cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning_css.tpl.php:60
msgid "Note"
msgstr "Nota"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Después de que la caché funcione en general, por favor prueba el carrito."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Al activarlo, la caché se purgará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado."

#: src/lang.cls.php:125
msgid "Purge All On Upgrade"
msgstr "Purgar todo al actualizar"

#: thirdparty/woocommerce.content.tpl.php:31
msgid "Product Update Interval"
msgstr "Intervalo de actualización de producto"

#: thirdparty/woocommerce.content.tpl.php:52
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas."

#: thirdparty/woocommerce.content.tpl.php:39
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Purgar siempre productos y categorías cuando cambie la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "No purgar las categorías al cambiar la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Purge product only when the stock status changes."
msgstr "Purgar los productos solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:37
msgid "Purge product and categories only when the stock status changes."
msgstr "Purgar productos y categorías solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Purge categories only when stock status changes."
msgstr "Purgar las categorías solo cuando el estado del inventario cambie."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purgar los productos con los cambios de cantidad o estado del inventario."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr "El htaccess no coincide con la opción de configuración."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si esto se fija en un número inferior a 30, los feeds no serán cacheados."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Especifica por cuanto tiempo, en segundos, se cachean los feeds."

#: src/lang.cls.php:92
msgid "Default Feed TTL"
msgstr "TTL por defecto del Feed"

#: src/error.cls.php:136
msgid "Failed to get %s file contents."
msgstr "Error al obtener contenido del archivo %s."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Algunos temas y plugins añaden recursos mediante una petición PHP."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "El favicon.ico es solicitado en la mayoría de las páginas."

#: src/lang.cls.php:104
msgid "Cache favicon.ico"
msgstr "Cachear favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Desactivar esta opción puede afectar negativamente al rendimiento."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de acceso no válida. Encontrados caracteres no válidos."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden."

#: src/error.cls.php:120
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de acceso no válida. Por favor, comprueba el archivo %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Hay un WordPress instalado para %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Ejemplo de uso:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "La cookie aquí establecida será usada por esta instalación de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "La cookie de acceso por defecto es %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "DEBE SER DIFERENTE DE OTRAS APLICACIONES WEB."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Espacios no permitidos y sensible a mayúsculas."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SINTAXIS: alfanumérico y \"_\"."

#: src/lang.cls.php:221
msgid "Login Cookie"
msgstr "Cookie de acceso"

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "More information about the available commands can be found here."
msgstr "Aquí se puede encontrar más información sobre los comandos disponibles."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Contenidos actuales de %s"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:82
msgid "Advanced"
msgstr "Avanzado"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Ajustes avanzados"

#: tpl/toolbox/purge.tpl.php:258
msgid "Purge List"
msgstr "Purgar lista"

#: tpl/toolbox/purge.tpl.php:177
msgid "Purge By..."
msgstr "Purgar por..."

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:57
#: tpl/toolbox/purge.tpl.php:224
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:218
msgid "Tag"
msgstr "Etiqueta"

#: tpl/toolbox/purge.tpl.php:212
msgid "Post ID"
msgstr "ID de entrada"

#: tpl/toolbox/purge.tpl.php:206
msgid "Category"
msgstr "Categoría"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión."

#: src/purge.cls.php:768
msgid "Purge url %s"
msgstr "Purgar la URL %s"

#: src/purge.cls.php:737
msgid "Purge tag %s"
msgstr "Purgar la etiqueta %s"

#: src/purge.cls.php:710
msgid "Purge category %s"
msgstr "Purgar la categoría %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Al desactivar la caché, se purgarán todas las entradas almacenadas en caché de este sitio."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:32
msgid "NOTICE"
msgstr "AVISO"

#: src/doc.cls.php:127
msgid "This setting will edit the .htaccess file."
msgstr "Este ajuste editará el archivo .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr "Ver el archivo «.htaccess» de LiteSpeed Cache"

#: src/error.cls.php:124
msgid "Failed to back up %s file, aborted changes."
msgstr "Fallo al hacer copia de seguridad del archivo %s, cambios cancelados."

#: src/lang.cls.php:219
msgid "Do Not Cache Cookies"
msgstr "Cookies a no cachear"

#: src/lang.cls.php:220
msgid "Do Not Cache User Agents"
msgstr "User Agents a no cachear"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Habilitar caché de red"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "AVISO:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Otras opciones serán ignoradas."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio."

#: src/lang.cls.php:107 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "Lista de User Agents móviles"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "No se puede escribir el archivo %s."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:9
msgid "JS Settings"
msgstr "Ajustes de JS"

#: src/gui.cls.php:596 tpl/cdn/entry.tpl.php:8 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Gestionar"

#: src/lang.cls.php:91
msgid "Default Front Page TTL"
msgstr "TTL por defecto de la Página Principal"

#: src/purge.cls.php:651
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Solicitado al servidor web LiteSpeed la purga de la página de inicio."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purgar la página de inicio"

#: tpl/page_optm/settings_localization.tpl.php:127
#: tpl/toolbox/beta_test.tpl.php:30
msgid "Example"
msgstr "Ejemplo"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "Todas las etiquetas son cacheadas por defecto."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "Todas las categorías son cacheadas por defecto."

#: src/admin-display.cls.php:1197
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Para coincidencias exactas, añadir %s al final de la URL."

#: src/admin-display.cls.php:1193
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Las URLs serán comparadas con la variable REQUEST_URI del servidor."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Selecciona solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados."

#: tpl/cdn/auto_setup.tpl.php:89 tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notas"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Usar ajuste de administrador de red"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Desactivar"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activar LiteSpeed Cache para WordPress aquí activa la caché para la red."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Desactivado"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Activado"

#: src/lang.cls.php:135
msgid "Do Not Cache Roles"
msgstr "No cachear perfiles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:57 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:48
msgid "Outputs to WordPress debug log."
msgstr "Se muestra en el registro de depuración de WordPress."

#: src/lang.cls.php:260
msgid "Debug Level"
msgstr "Nivel de depuración"

#: tpl/general/settings.tpl.php:85 tpl/general/settings.tpl.php:96
#: tpl/general/settings.tpl.php:108 tpl/general/settings.tpl.php:189
#: tpl/general/settings.tpl.php:196 tpl/general/settings.tpl.php:203
#: tpl/general/settings.tpl.php:220 tpl/page_optm/settings_media.tpl.php:240
#: tpl/page_optm/settings_vpi.tpl.php:32
msgid "Notice"
msgstr "Nota"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Archivo de término (incluye categoría, etiqueta y taxonomía)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Archivo diario"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Archivo mensual"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Archivo anual"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Archivo de tipo de contenido"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Archivo del autor"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Página de inicio"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Portada"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Todas las páginas"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Selecciona qué páginas serán purgadas automáticamente cuando las entradas sean publicadas o actualizadas."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Reglas de purga automática para publicación y actualización"

#: src/lang.cls.php:89
msgid "Default Public Cache TTL"
msgstr "TTL por defecto de la caché pública"

#: src/admin-display.cls.php:1012 tpl/cache/settings_inc.object.tpl.php:106
#: tpl/crawler/settings-general.tpl.php:64
#: tpl/crawler/settings-general.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:93 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "segundos"

#: src/lang.cls.php:259
msgid "Admin IPs"
msgstr "IPs de administrador"

#: src/admin-display.cls.php:123
msgid "General"
msgstr "Opciones generales"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "Configuración de Caché de LiteSpeed"

#: src/purge.cls.php:224
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Solicitado al servidor web LiteSpeed la purga de todas las entradas de LSCache."

#: src/gui.cls.php:472 src/gui.cls.php:480 src/gui.cls.php:488
#: src/gui.cls.php:497 src/gui.cls.php:507 src/gui.cls.php:517
#: src/gui.cls.php:527 src/gui.cls.php:536 src/gui.cls.php:546
#: src/gui.cls.php:556 src/gui.cls.php:622 src/gui.cls.php:630
#: src/gui.cls.php:638 src/gui.cls.php:647 src/gui.cls.php:657
#: src/gui.cls.php:667 src/gui.cls.php:677 src/gui.cls.php:687
#: src/gui.cls.php:696 src/gui.cls.php:706 src/gui.cls.php:716
#: tpl/page_optm/settings_media.tpl.php:131 tpl/toolbox/purge.tpl.php:37
#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
#: tpl/toolbox/purge.tpl.php:79 tpl/toolbox/purge.tpl.php:88
#: tpl/toolbox/purge.tpl.php:97 tpl/toolbox/purge.tpl.php:106
#: tpl/toolbox/purge.tpl.php:115
msgid "Purge All"
msgstr "Purgar todo"

#: src/admin-display.cls.php:287 src/gui.cls.php:604
msgid "Settings"
msgstr "Ajustes"���$,W,X�u�u(�u�u2�uvv	v
&v
1v<vIv_vuv	~v�v	�v�v.�vm�vKw
Xwcwjw3ywh�wx6xNVxY�x8�xw8yl�y�z=�z"�z7�z7{H;{�{�{�{�{�{�{�{'�{
|	+|5|>|U|%g|�|j�||�|F{}c�}
&~.1~0`~�~%�~	�~"�~�~PdTsZ�>#�ub�؀���4�-@�/n�0��Lρ2�)O�Iy�*Â^�M�\�h�#w�����QǃO�i�s�E�P9�0��'������3*�^�d�|�I��͆+�	�	�(� 4�"U�/x�*��Ӈ
ۇ����4���͈f�����
�%�2��C��ۊd�z�#������Ë�
����&�3�9�I�\�m�	������
����͌�����8�&W�0~�*��UڍW0��� �� Ǝ(��"�(:�c�l������K7�	��������Ԑ��"�@�"\��!����ܑ&��"#�GF�!��,��$ݒ+�.�N�j���'��(ȓ
���W�q�����1��1�%�2;�n�z���V��^�
a�l�{�������̖&�.
�N9�*����/×k�_�]�ݘ��!�<�H�
Z�h�����������șԙ�	�%�B>�
��!��4��'�6�B�O�	b�l�����;��:��0�K�j�{��� ��"˜��/�*M�<x�7������"�7�
U�	c�m�v�������Ξ
՞�	�����1�D�
L�Z�k�!������֟�� �0�
O�]��f��9�L�T�)k���+��}ߡ]�Dn�8����
	��.�;:��v�5� >�K_�8��q�V�^�r����������C�b�
i�t�(����H����/�
3�>�<K�������9Ȩ9�
<�J�]� m���
��,��Yөq-�����NǪ�#��*�(��
�����:�T�s�{�������ˬԬ�����+
�%9�,_�s��#�$�D�d�w�������6��)���7�Q�m�L��ԯ9�:�0U�)�����GM�L��W�:�K�
c�n�
�������Բܲ�	�
(�6�8F����
��Ƴ� �0�F�U�i�#|���
������״!��+��F�ٵ�� �9�
E�S�	g�q�B��
ƶѶٶ	ݶ�2�)�ZI�,��ѷ�-��/�i�Zq�I̹;�YR�K��V��UO�L��l�B_�Y��:���7�Jٽs$�N��]�VE�`��J��gH�=��@�=/�m������������
�<�?Z�����������?�L�S�c� s�&�� ��D��!�-�l9�G������
�
��'����������������
������
����

�/�/E�u���p��<�
N�Y�x�(����
������	����c
�n�����.����
����
	��/�<�h[���A������	��������'��
�*�
9�
G�"U�x�����$��+����#�+�*D�o�������
��
��$�����P+�H|�B��@�5I�2�B��@��>6�"u�=��&����
�%!�G�_�%y� ��"��&��!
�,�F� _�����$�������������$�d;��� ����/��.�I�V�i��������������	��4�+7�c�o���
��������������
���+�:�I�h�%o���$��
����������	��@�
_�%m������!�(�>0�o�{��� ����*�� �2&�2Y�����"��*��"�"3�V�f�<��,��$��
�
!�/�F?��������2�8�%?�
e�.s�?��6��;�1U�3��2��6��0%�V�Z�]�`�g�t���Q��D��
>�#L�-p�$��?�����7������%��	$�.�B�W�j�������$����E��+B�*n�,������������#�
+�
9�$G�!l�������?���/,�\�z�����������������R�cY�2��?��0�
7�E�d�dz�<��5�SR�C��5�� �p@����K5�O��'��D���>�E�����.�;@�0|�K��M��G�^�pf�|��/T�&��&��)��8��75�4m�����
����
�����F����4���#�0�E�AQ�������	����������	�
�	%�/�;�%J�p�0����I���$1�DV�@��9�1�H�8U�a����
��9�J�Z�+b�
������+��(�#�#6�<Z�0��1�/��=*�
h�v���G��Q�+E�q�}�������.�����*�J�a�t�����������&
�4�{K�;���42�g���������
��A�S0�	������!������"�1�E�+c�&�����oHB��/YJ���$�2?RdIy
���
�
 :3n���.��'�d��M�f�$`X�Q�70+h�g�(GQ`�0�P�^@m�	
		)	B	[	9q	v�	}"
(�
�
�
>#bUv�N�Y/���
��&�	
#
2
9?
8y

�
0�
V�
_HC�G�a48�4�/746l7�-�)	L3*�)�-�(,,.YK�?�?HT<���(3+_Rf����-22e(��5���e-��/�M�h7�]�=i\8�[�c[C�jznA�q+��`/'�q�*HJW�$�O>`��K�;E@ 1� -� 8� M!Ym!$�!,�!)"9C"N}"&�")�"9#YW#%�#$�#X�#1U$�$s�$A%?N%K�%,�%&&^.&E�&U�&()'SR'Y�'�(�(J�(,�(z)(�)I�)x*^�*A�*4&+)[+c�+0�+.,�I,��,��-".&=.Vd.2�.2�.7!/+Y/Y�/*�/F
0XQ09�0�23:3RZ3;�3p�3,Z4*�41�4;�4/ 5(P5Jy54�5B�5<6N[6Q�6o�6Xl7/�7G�79=81w8��8@9 H9i9�q9J7:^�:3�:N;d;W�;��;�q<*6=<a=1�=V�=L'>*t>]�>�>?
?? ?$,?Q?f?
w?�?�?�?�?�?��?/d@(�@)�@�@��@��A�B
�B
�B�B�B�B�BC@
CNC
RC%]Cg�CH�C4D
:E
EESE
bEpExE�E�E:�E>�E@ FpaF�F�F�FG*G=Gr\G]�G5-H_cH��H(aI8�I�I#�IJ$$J.IJ2xJr�JHKgK!pK�K�KC�KF�K
-L18LjL�L�L�L�L�L�LMM 5M VMVwM�MK�M"N*N?NSN+iN�N�N)�N��NnOsO�O �O
�O�O�O�OePJvPj�PM,QJzQ�Q�Qg�Q[RRrRZ�R S,SAS&aS'�S#�S�S%�S�	T/�Tq�T(cUE�U��UA�V@�VJWFWW.�WZ�W6(XL_X-�XG�X3"Y-VY+�Y�Y/�YZZ)"ZZLZw�Z[\.[�[
�[�[�[�['�[�[K\`\i\v\J}\	�\�\�\�\��\o]w](�]�^M�^'_?+_k_s_	|_
�_�_
�_�_#�_�_	�_	```3+`~_`
�`	�`�`�`6apSa&�a*�aSbpjbM�b�)c��c�ldG5e}eE�e�e_�eGfcfkfsf�f%�f�f0�fg<gQgZgqg,�g�gs�g�-hK�hzi�i7�i9�ij0(jYj3lj.�j\�j,kY<kz�kHl�Zl$�lm!mB*m;mm2�m4�mhnMzn7�nGo(Hoqo�opp>:p2yp�pZ�pe%q�qo�qcrp{rE�r?2s(rs*�s&�sA�s/t'7t_thet-�t/�t,u9uEu2Tu$�u>�u,�u	v"v"7vZv�rvFwawkcx�x�x�x�x�x#
y�1y��y0az
�z)�z�z�z'�z{
{({7{
T{b{i{ �{�{�{�{%�{|.|>|K|c|t|�|�|O�|2�|G/}Kw}d�}c(~7�~-�~-�~2 S.\6�
��������\Ā!�.�L�6i�'��!ȁ�'�/-�1]�+��3��,�/�1L�+~�Y��,�+1�,]�4��+��(�!�)6�5`�*����$օj��f�!����@dž<�/E�=u���&ć�������
��..�]�r�����-��;�b$�%����/����!x�n��	�&�D�"W�z�����'����
�� "�C�%]�(����9`��]�<l�I��-�G!�i�v�����#��܏P��RH�#��/����"�3A�$u�����;đ6�I7�D��ƒ!ܒ���($�M�
\�
g�u���,��ۓ����#�;�$R� w� ����Ŕؔ'�0�%J�$p�%����'ӕ��#�6�H��Q�)�K1�	}���@��)�:��L��N��=F�
��%����)ʙ�U��Y�K�$W�_|�Cܛ� �	����ɜ��� �,�@�W�i�I��̝ԝ �2�:�^@�!����ݞ
��P��#O�s���B��?�!'�I�a�0w�����E��`�}h��!�J�\�t��z�.C�r�{�����Ĥ����6�C�Y�a�~�������E��!��1��I�&ۦ*�%-�S�h���#����HħC
�Q�m�#��*��`ب9�;E�M��5ϩ0��6�Q�t7�[����<�H�Z�'b�)��%��ڬ���(�F�S�Bb� ��ƭ���'+�.S������� Ю����##�'G�(o�$��%����+��ް��!�8�G�T�	j�t�L��	ֱ	����@	�0J�Y{�9ղ�+�1H�&z�o��a�Os�?õf�cj�dζt3�^��{�K��dϸ<4��q�M ��n�K�t<�c��s�J���ԼU��PپF*�q���%��(̿,��"�>�[�Oq�c��%�$>�#c�"����W���!�5�5M�.��!��R��'�4�=�_���)�B�
T��_��J�?�&U�!|� �������� ��������
��@�@A���
��n��F�f�&r�
��)��&�����
�*�
7�{E�+�����@�_�d�s�������1��~���^�����	������%���B�\�q�����,��������2�8D�}�@��+��.�6�$U�z���	��
��,�����^)�F��Y��Z)�@��B��T�W]�P��$�P+�:|�����0���4�;R�$��-��5��+�#C�%g�*��!��/��,
�7� :�[�r����������W�#r���C��I��
8�F�Z�s�������)����0	�:�"K�n�-q���/��	��
����%�2�G�L�f�
�������������.�;�.U�
��������
������J��%�'2�Z��_�����i��b�x���1����4��,&�DS�V��*��%�6@�@w�"��,���0�ZK�B��E��/�
<�J�le������������F���8�NV�A��O��D7�G|�6��F��:B�}�����������'��T��S<���0��6��*�;3�$o����E/�
u�&��.��
�������3�O�f���.��"��V��4?�9t�5������* � K�l�u�����(�� ��(��6 �W�Ch���J��$�0�N�g���'����������g���`�:��L"�o�w�����p��O&�<v�_��K�D_�*������h�_�ax�=�d��}�SM���
�����F�>1�Up�U��
9�tD����4G�A|�;��8��C3�[w�W�(+�T�\�k������_7�'��C�����:�XN���������
 �.�:�V�c�s���/��#�C�,UD"�,�J�K5I�A�
A#re���)=V
n3y
��#�5�1$.V,�?�:�6-?dX��#
41Tfe�,!N_��0�.�%E)e+�'���	)	(I	8r	�	3�	�	�
T�
$
2=M'�-���&NAb�
��
(.
W
p
�
�
�
&�
"�
+"3N��k!I��)�#!E�%�1'3D[���M�ARe"����V�.P��B��7�;��S�{G1�i�m_H�9!Pqr�.�&OD�D�p�nb��Yi'�'��?��5��.v"�$�#�Xre��R
j`���'3.[�1��B�D ^ Ao ~� |0!U�!`"Td"c�"\#@z#`�#a$I~$9�$6%b9%0�%)�%<�%/4&<d&A�&^�&PB'T�'O�'D8(}( �(@�(O�(D)kK)�)$�)�)*1*(9*b*1g*"�*%�*�*X�* G+h+�+�+�+z�+?,O,1X,q�,s�,p-o�-D�-~B.>�.q/lr/`�/�@0��0K�1�1�S2�#3-�3��3&c4a�4[�4+H5_t5J�5#6C6Pb6#�6'�6d�7=d8<�8?�8S9^s9-�91:+2:0^:B�:#�:=�:@4;mu;8�;#<\@<;�<�<~�<^k=B�=u
>E�>3�>s�>]q?t�?7D@_|@d�@�AA�AVB2\B��B07CRhC��C�IDW�D5(E-^E|�E5	F8?F�xF�CG�H�H)�HfI,xI5�I<�I3JVLJ*�JW�Ja&K��K'zN�NM�N\OCmO��O)3P?]P:�PU�P6.Q,eQg�Q?�QJ:R"�R^�RVSx^Si�S7ATSyT?�TB
U�PUV*V3V�;VTWcoW:�WdX!sXk�X�Y��Y1�ZH�ZJ[We[\�[0\mK\�\�\�\�\	�\*�\]"3]V]v]�]�]�]�]�]0�^4_?7_%w_��_�\`�a�a�a+�a�a(b+b
FbRTb�b
�b)�b��bfsc��c
aele~e
�e
�e�e�e�eE�eI%fkof��f#og�g#�g�g�g'�g�$hk�h>3i}ri��i6�jF�j.k.Jk(yk%�k4�k5�k�3li�l=m+Om{mmG�mW�m0nEEn(�n�n�n�n�n%o7oMo"ko'�o)�or�oSpf_p	�p�p�p�p3qKqWq0qq��qCrHrcr$wr�r�r�r �r|�r]|s}�saXtX�t&u:uuQu"�uo�utZv�v�v,�v0w4Pw%�w
�w,�w��w9�x�y+�yX�y�<zI{GM{R�{K�{54|Xj|1�|[�|7Q}R�}=�}:~'U~%}~=�~�~�~.f4��D�zY�Ԁ܀���<�\�Kz�Ɓ
ҁ�Z�B�
N�Y�	b��l����S����#1�����b.���m�AH:nh%B���2��o�W�de'[����N���uq.+CCnxR#�a�q7���K�SB�/��t�8|��n�
����Vr,��\�s&z��4�,r���/���a-l��wI����dg�k `>	�~��8���EM�0���M�
0����;|��JLWkMU��g&c���#��}PcK�/U��$L
fm�jo~�!6�: �~K����fv����@!�L�~��zUD�*+Y9g/+.�#����I��(��K�_�,�5��g��XC|�3X"�G�.:�V����'�7(^!�\4�&��eb���'F�-��D�9���
 ���t4�;�3�oI:�i]Gm>����
���'���F��E�A��"��O5�\t��nR����l8o��r�
���?{���*v���^?#�1�d�L�<��� FC��s�06�x[�CUM��<X)Ty	�(
�%F��b�������"�x�$�$����)��*i;

�]�A��Z�{>�T@:�������`c�6V�7�������*J3z�{Q���r�����h4F��Bs����H��h=S�0��,S�Q��������(��a�h�6������Z�OT&���RjW� �*�l3�j��g�-�`R��K�Yy�b�����?	����j"�a?m�2ug�|�:�.������EPM'���������6pO��~�kn�it)p�'B1�S���Y[GX��P���$��m�e��4�{4�Ey(t��vz��N��L�21�W�{&l��P9[�f-��N�k������������+X����x=���2��)q�H]�������9���f�����7��bJs�xDc�)8I{1���M�=����	���^H���A�"H�f|�hq��jn����"���N���_�(�b�o*��~$Tl�D��9��0��2����<��E#Q�m��	�q�_�!r����U����}�5�^����C%Bd=7.�+��8��-����^��)riuc�=�9][7�����<������	�`/��pN�a�VY�O��Z�U��j_�x�R8����YS���0��;���AQ����K�%\$��</H�Au�W�G�a��\@���-��_
2O�o�fV�pQP���L���%�W�wiuBv�uwZ�z}
�`�e�<�����5�Y��l;���|�QeDw��I��3Z_kI��N!����vT�wsZ���t�^G�V�v�5O]�6]������>!�yi�DT�?J���&;�p �3�5��%e?�}�d\J�����[�dE����@J�czs@��y�wh����@}�>�P�F�y���R�����}pX��>��`q=�,�
+G,k1 %s ago Cache the built-in Admin Bar ESI block.%1$s %2$s files left in queue%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.%s must be turned ON for this setting to work.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %d item(s)<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is not required to use this preset. Only basic caching features are enabled.A Domain Key is required for QUIC.cloud online services.A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores.A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores.A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).Account is linked!ActionActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdd to BlocklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced (Recommended)Advanced SettingsAdvanced level will log more details.AfterAfter successful DNS detection, QUIC.cloud will attempt to generate an SSL certificate and enable the CDN.After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.After you set your nameservers, QUIC.cloud will detect the change and automatically enable the CDN.AggressiveAlias is in use by another QUIC.cloud account.All QUIC.cloud service queues have been cleared.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.Applied the %1$s preset %2$sApply PresetApprovedAre you sure to delete all existing blocklist items?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to delete QUIC.cloud data?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset CDN Setup?Are you sure you want to reset all settings back to the default settings?Asynchronous CSS Loading with Critical CSSAt that stage, you may re-start the verification process by pressing the Run CDN Setup button.Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto QUIC.cloud CDN SetupAuto Request CronAutomatic generation of critical CSS is in the background via a cron-based queue.Automatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBackup created %1$s before applying the %2$s presetBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are allowlistedBegin QUIC.cloud CDN SetupBenefits of linking to a QUIC.cloud accountBeta TestBlocklistBlocklistedBlocklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.CCSSCCSS Per URLCDNCDN BandwidthCDN SettingsCDN Setup StatusCDN Setup Token and DNS zone deleted. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately.CDN Setup Token reset. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately.CDN Setup is running.CDN URLCDN URL to be used. For example, %sCSS & JS CombineCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS, JS and HTML MinificationCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatusCache WP-AdminCache favicon.icoCache key must be integer or non-empty string, %s given.Cache key must not be an empty string.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCannot delete, site is not linked.Cannot request REST API, no token saved.CategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all Unique CSS files.Cleaned all localized resource entries.Cleaned up unfinished data successfully.Clear LogsCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick the refresh button below to refresh status.Click to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloud REST API returned error: Cloud REST ErrorCloud server refused the current request due to rate limiting. Please try again later.Cloud server refused the current request due to unpulled images. Please pull the images first.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Completed at %sCongratulation! Your file was already optimizedCongratulations, QUIC.cloud successfully set this domain up for the CDN. Please update your nameservers to:Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestContact QUIC.cloud supportConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.CountCrawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler LogCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler disabled list is cleared! All crawlers are set to active! Crawler(s)Crawlers cannot run concurrently.Create a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent image post id positionCurrent limit isCurrent server loadCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDNS Prefetch for static filesDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug HelpersDebug LevelDebug LogDebug SettingsDebug String ExcludesDebug URI ExcludesDebug URI IncludesDefaultDefault CacheDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDeferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).DelayDelay rendering off-screen HTML elements by its selector.DelayedDelete QUIC.cloud dataDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable CacheDisable Image LazyloadDisable VPIDisable WordPress interval heartbeat to reduce server load.Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDomain key and QUIC.cloud link detected.DoneDowngrade not recommended. May cause fatal error due to refactored code.Drop Domain from SitemapDrop Query StringESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Elements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blocklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable Viewport Images auto generation cron.Enable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Error: Failed to apply the settings %1$sEssentialsEvery MinuteEverything in Advanced, PlusEverything in Aggressive, PlusEverything in Basic, PlusEverything in Essentials, PlusExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsExtremeFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s available for UCSS per page type generation.Filter %s available to disable blocklist.Filter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must allowlist all %s server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode IPsGuest Mode JS ExcludesGuest Mode User AgentsGuest Mode and Guest OptimizationGuest Mode failed to test.Guest Mode passed testing.Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.Guest Mode testing resultGuest OptimizationHTML Attribute To ReplaceHTML Lazy Load SelectorsHTML MinifyHTML SettingsHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHigher TTLHistoryHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.How to choose an UCSS allowlist selector?However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If it does not verify within 24 hours, the CDN setup will mark the verification as failed.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using a %1$s socket, %2$s should be set to %3$sIf you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you have custom DNS records, it is possible that they are not detected.If you have not yet done so, please replace the QUIC.cloud nameservers at your domain registrar before proceeding. If you have this enabled for your domain, you must disable DNSSEC to continue.If you prefer to use the CNAME setup, please <a %s>set up the CDN manually at QUIC.cloud</a>.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage groups totalImages PulledImages containing these class names will not be lazy loaded.Images having these parent class names will not be lazy loaded.Images not requestedImages notified to pullImages optimized and pulledImages ready to requestImages requestedImages will be pulled automatically if the cron job is running.ImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn ProgressIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.In order to use QC services, need a real domain name, cannot use an IP.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Included DirectoriesInline CSS Async LibInline CSS added to CombineInline JS added to CombineInline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.InstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIs something missing?It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Defer for both external and inline JSJS Deferred / Delayed ExcludesJS DelayedJS Delayed IncludesJS ExcludesJS MinifyJS SettingsJS error can be found from the developer console of browser by right clicking and choosing Inspect.Join LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast Verification ResultLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLazy Load for IframesLazy Load for ImagesLearn MoreLearn moreLearn more about when this is neededLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed CSS files will be excluded from UCSS and saved to inline.Listed IPs will be considered as Guest Mode visitors.Listed JS files or inline JS code will be delayed.Listed JS files or inline JS code will not be deferred or delayed.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed User Agents will be considered as Guest Mode visitors.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache Configuration PresetsLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache Standard PresetsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed LogsLiteSpeed OptimizationLiteSpeed OptionsLiteSpeed ReportLiteSpeed TechnologiesLiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.Load CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.Main domainMain domain not generated yetManageManage CDNManage DNS ZoneManually added to blocklistManually runMapMark this page as Maximum image post idMaximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobileMobile Agent RulesMobile CacheMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.NameserversNetwork DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node after checked server load.No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot blocklistedNot enough parameters. Please check if the domain key is set correctlyNot runningNoteNote: For 15 to 20 minutes after setup completes, browsers may issue a "not secure" warning for your site while QUIC.cloud generates your SSL certificate.NotesNoticeNotice: CDN Setup only reset locally.NotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Online node needs to be redetected.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not allowlisted.Outputs to WordPress debug log.PAYG BalancePAYG balance and usage not included in above quota calculation.PAYG used this monthPHP Constant %s available to disable blocklist.PHP Constant %s is supported.Page Load TimePage OptimizationPageSpeed ScorePagesPartner Benefits Provided byPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.PausedPay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please make sure this IP is the correct one for visiting your site.Please read all warnings before enabling this option.Please see %s for more details.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please thoroughly test all items in %s to ensure they function as expected.Please thoroughly test each JS file you add to ensure it functions as expected.Please try after %1$s for service %2$s.Please update your domain registrar to use these custom nameservers:Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePredefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Prepare the site for QUIC.cloud CDN, detect the DNS, and create a DNS Zone.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPresetsPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Prevent writing log entries that include listed strings.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blocklistPrivatePrivate CachePrivate Cached URIsPrivate cachePrivately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalProvide the nameservers necessary to enable the CDN.PublicPublic CachePull Cron is runningPull ImagesPulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge LogPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud CDN SetupQUIC.cloud CDN/DNS does not support DNSSEC.QUIC.cloud DNS settings are not changed.QUIC.cloud Detected Records SummaryQUIC.cloud Service Usage StatisticsQUIC.cloud account has been created and successfully linked.QUIC.cloud account has been successfully linked.QUIC.cloud will attempt to verify the DNS update.QUIC.cloud will detect most normal DNS entries.Query strings containing these parameters will not be cached.Rate %s on %sRead LiteSpeed DocumentationReady to run CDN setup.Received invalid message from the cloud server. Please submit a ticket.Recommended to generate the token from Cloudflare API token template "WordPress".Recommended value: 28800 seconds (8 hours).Record TypeRecord names foundRedetectRedetected nodeRedis Database IDRedis encountered a fatal error: %s (code: %d)Refresh CDN Setup StatusRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove Query Strings from Static FilesRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlocklistRemove query strings from internal static resources.Removed Unused CSS for UsersRemoved backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescanned %d images successfully.Rescanned successfully.Reset All SettingsReset CDN SetupReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resets all LiteSpeed Cache plugin settings related to CDN setup back to the initial state and deletes the DNS Zone, if one exists for the domain.Resets all LiteSpeed Cache plugin settings related to CDN setup back to the initial state and disables the CDN.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore SettingsRestore from backupRestored backup settings %1$sRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Review DNS recordsRevisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun %s Queue ManuallyRun CDN SetupRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedSaving option failed. IPv4 only for %s.Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe a separate cache copy for mobile visitors.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Set up QUIC.cloud AccountSet up a QUIC.cloud account.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Standard PresetsStarted async crawlingStarted async image optimization requestStatic file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.SyncSync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)TestingThank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The Viewport Images service detects which images appear above the fold, and excludes them from lazy load.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The current server is under heavy load.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following actions are available:The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe queue is processed asynchronously. It may take time.The selector must exist in the CSS. Parent classes in the HTML will not work.The server will determine if the user is logged in based on the existence of this cookie.The setting %s is currently enabled.The site is not a valid alias on QUIC.cloud.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domainThere is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.There was an error during CDN setup: These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action is not available if there is no domain key, the domain is not linked, or the DNS Zone is in active use.This action should only be used if things are cached incorrectly.This action will not update anything on the QUIC.cloud servers.This allows you to try Auto CDN setup again, or abandon the setup entirely.This allows you to try Auto CDN setup again.This can be managed from %1$s%2$s tab.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This enables the page's initial screenful of imagery to be fully displayed without delay.This is a three step process for configuring your site to use QUIC.cloud CDN with QUIC.cloud DNS. This setup will perform the following actionsThis is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This last stage could take 15 to 20 minutes.This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development.This option can help to correct the cache vary for certain advanced mobile or tablet visitors.This option enables maximum optimization for Guest Mode visitors.This option is bypassed because %1$s option is %2$s.This option is bypassed due to %s option.This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.This option will automatically bypass %s option.This option will remove all %s tags from HTML.This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images.This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools.This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning.This process is automatic.This process may take several minutes.This section will automatically populate once nameservers are configured for the site.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is passively %1$s due to %2$s!This setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This setting will regenerate crawler list and clear the disabled list!This setup process will create a DNS zone on QUIC.cloud if one does not currently exist.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google Fonts to establish a connection earlier.This will also generate an API key from LiteSpeed's Server.This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page from the combined file.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.Tweet previewTweet thisUCSS File Excludes and InlineUCSS InlineUCSS Selector AllowlistUCSS URI ExcludesURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL SearchURL list in %s queue waiting for cronUnable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict.Unable to automatically add %1$s as a Domain Alias for main %2$s domain.Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unique CSSUnknown errorUnknown error.Update %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %1$s to bypass UCSS for the pages which page type is %2$s.Use %1$s to bypass remote image dimension check when %2$s is ON.Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL.Use %s API functionality.Use CDN MappingUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between.Use external object cache functionality.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.Useful for above-the-fold images causing CLS (a Core Web Vitals metric).UsernameUsing optimized version of file. VPIValue rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupVerifying, waiting for nameservers to be updated.View %1$s version %2$s detailsView .htaccessView Site Before CacheView Site Before OptimizationViewport ImageViewport Image GenerationViewport ImagesViewport Images CronVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.Visit your QUIC.cloud dashboard after the DNS Zone is set up to confirm your DNS zone.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a visitor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.When you use Lazy Load, it will delay the loading of all images on a page.Who should use this preset?Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible.You don't have enough daily quota left for current service today.You don't have enough quota left for current service this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You need to turn %s on and finish all WebP generation to get maximum result.You need to turn %s on to get maximum result.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.You will receive an email upon status update.Your %1s quota on %2s will still be in use.Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more.Your server IPYour site will be available, but browsers may issue a "not secure" warning during this time.Zero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.unknownuser agentsPO-Revision-Date: 2023-09-20 20:29:04+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/4.0.0-alpha.8
Language: es
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 hace %s Almacena en la caché el bloque ESI de la barra de administración incluida.%1$s %2$s archivos restantes en la colaPara esta acción se necesita la versión %2$s del plugin %1$s.%d hora%d horas%d minuto%d minutos%d segundosExtensión %sNo se puede leer el archivo %s.No se puede escribir el archivo %s.%s grupo%s grupos%s imagen%s imágenesSe recomienda %s.%s debe estar activo para que este ajuste funcione.&nbsp;Si tanto el cron como la ejecución manual se inician en momentos similares, el primero que se inicie tendrá prioridad.(sin guardar)(no-optm)(optm)Ruta del archivo «.htaccess»<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a><a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.<b>Último rastreo:</b> %d elemento(s)<b>Última indexación:</b> %s elemento(s)<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$sNo es obligatoria una clave de dominio para este preajuste. Solo se activan características básicas de caché.Hace falta una clave de dominio para usar los servicios online de QUIC.cloud.Es obligatoria una clave de dominio para usar este preajuste. Activa el máximo nivel de optimizaciones para obtener puntuaciones de velocidad de página mejorados.Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones de velocidad de página.Es obligatoria una clave de dominio para usar este preajuste. Incluye muchas optimizaciones que se sabe que mejoran las puntuaciones del sitio en las herramientas de medición de velocidad de página.Se iniciará una purga completa cuando WordPress ejecute estos ganchos.Un TTL de 0 implica no cachear.Se guarda una copia de seguridad de cada imagen antes de optimizarla.APIAcelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente).¡La cuenta está enlazada!AcciónActivarAñadir tamaños que faltanAñadir una nueva URL de la CDNAñadir una cookie nueva para simularAñadir a la lista negraAñade estilos a tus imágenes de carga diferidaSolo la IP del administradorIPs de administradorAvanzadoAvanzado (Recomendado)Ajustes avanzadosEl nivel avanzado registrará más detalles.DespuésDespués de una detección correcta de las DNS, QUIC.cloud tratará de generar un certificado SSL y activar la CDN.Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas.Después de que la caché funcione en general, por favor prueba el carrito.Después de que configures tus servidores de nombres, QUIC.cloud detectará el cambio y activará automáticamente la CDN.AgresivoEl alias ya está en uso por otra cuenta de QUIC.cloud.Se han borrado todas las colas de servicio de QUIC.cloud.Todos los datos transitoriosTodas las categorías son cacheadas por defecto.Todas las páginasTodas las páginas con widget de Entradas recientesTodas las etiquetas son cacheadas por defecto.Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.Ya en la cachéPurgar siempre productos y categorías cuando cambie la cantidad o estado del inventario.Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separarAñade la cadena de consulta %s a los recursos para evitar esta acción.Clave del dominio solicitada correctamente. Por favor, espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress.Se ha aplicado el prejuste %1$s %2$sAplicar el preajusteAprobado¿Seguro que quieres borrar todos los elementos de la lista negra?¿Está seguro de destruir todas las imágenes optimizadas?¿Seguro que quieres vaciar todos los nodos cloud?¿Seguro que quieres borrar los datos de QUIC.cloud?¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?¿Seguro que quieres restablecer la configuración CDN?¿Seguro que quieres restablecer los ajustes a los valores por defecto?Carga de CSS asíncrono con CSS críticoEn estas etapa puedes volver a iniciar el proceso de verificación pulsando el botón de «Ejecutar configuración de la CDN».Archivo del autorBorradores automáticosCron de obtención automáticaReglas de purga automática para publicación y actualizaciónConfiguración automática de la CDN de QUIC.cloudCron de petición automáticaGenera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.La generación automática de CSS único está en segundo plano a través de una cola basada en cron.Actualizar automáticamenteActivar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.Solicitar automáticamente la optimización mediante un trabajo cron.La lista de avatares está en la cola esperando ser actualizadaRuta del .htaccess de la administraciónControl de heartbeat de la administraciónTTL de heartbeat de la administraciónCopia de seguridad creada %1$s antes de aplicar el preajuste %2$sBásicoMarcador de posición de imagen básicaAntesAntes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blancaComenzar la configuración del CDN QUIC.cloudBeneficios de enlazar con una cuenta QUIC.cloudPruebas betaLista negraEn lista negraEn la lista negra debido a que no se puede cachearTanto %1$s como %2$s son aceptables.Pueden utilizarse tanto URLs completas como cadenas parciales.Se pueden usa cadenas parciales y completas.NavegadorCaché del navegadorAjustes de la caché del navegadorTTL caché de navegadorEl cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.Por defecto, se utilizará un marcador de posición de imagen gris %s.Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente.Por diseño, esta opción puede servir contenido obsoleto. No actives esta opción si no estás de acuerdo.CCSSCCSS por URLCDNAncho de banda de la CDNAjustes de CDNEstado de la configuración del CDNBorrado el toque de configuración de la CDN y la zona DNS. Nota: si quieres borrar la cuenta de my.quic.cloud, la cuenta aún existe y debe borrarse aparte.Token de configuración de la CDN restablecido. Nota: si quieres borrar la cuenta de my.quic.cloud, la cuenta aún existe y debe borrarse aparte.La configuración de la CDN está en ejecución.URL de CDNURL de la CDN a utilizar. Por ejemplo, %sCombinar CSS y JSCombinar CSSCombinación de CSS externo e integradoExcluir CSSMinificar CSSAjustes de CSSMinimizado de CSS, JS y HTMLCaché CSS/JSCachéCachear barra de administradorCachear formulario de comentarioCachear comentaristasAjustes de control de cachéAcierto de cachéCachear usuarios con sesión iniciadaCachear página de accesoFallo de cachéCache móvilCachear recursos de PHPCachear API RESTEstado de cachéCaché de WP-AdminCachear favicon.icoLa clave de caché debe ser un entero o una cadena no vacía, %s proporcionado.La clave de caché no puede ser una cadena vacía.Cachear peticiones realizadas por llamadas de la API REST de WordPress.Almacena en la caché el bloque ESI del formulario de comentarios incluido.Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias.Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias.Calcular el espacio en disco de las copias de seguridadCalcular almacenamiento original de imágenesCopias de seguridad calculadas correctamente.No se puede crear el directorio: %1$s. Error: %2$sCancelarNo se pudo borrar, el sitio no está enlazado.No se pudo solicitar la REST API, no se guardó token.CategoríaAjuste cambiado con éxito.Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración.Comprobar estadoComprobar mi IP pública desdeMarca esta opción para usar la configuración del sitio principal para todos los subsitios.Limpiar todoVaciar el mapa del rastreadorLimpiar datos no finalizadosBorrar todos los borradores guardados automáticamenteBorrar todas las revisiones de entradasBorrar todos los comentarios spamLimpieza completa exitosa.Borrar todos los trackbacks y pingbacksBorrar todas las opciones de datos transitoriosLimpieza de todos los datos transitorios exitosa.Borrar todos los comentarios en la papeleraBorrar todas las entradas y páginas en la papeleraLimpieza de borradores automáticos exitosa.Borrar opciones de datos transitorios expiradosLimpieza de datos transitorios expirados exitosa.Limpieza de revisiones de entradas exitosa.Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisionesLimpieza de comentarios no deseados exitosa.Limpieza de trackbacks y pingbacks exitosa.Limpieza de comentarios en papelera exitosa.Limpieza de páginas y entradas en papelera exitosa.Limpiados todos los archivos CSS críticos.Vaciados todos los archivos de Gravatar.Vaciados todos los archivos LQIP.Limpiados todos los archivos CSS únicos.Limpiadas todas las entradas de recursos localizados.Datos incompletos limpiados correctamente.Vaciar los registrosPurgadas %1$s imágenes no válidas.Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>.Haz clic aquí para cambiarlo.Haz clic aquí para configurarlo.Haz clic aquí para los ajustesHaz clic en el botón de recargar, debajo del estado de recarga.Haz clic para borrar todos los nodos para volver a detectar.Haz clic para cambiar a la versión optimizada.Haz clic para cambiar a la versión original (no optimizada).Error de la nubeEl error devuelto por Cloud REST API: Error de Cloud RESTEl servidor en la nube rechazó la solicitud actual debido a la limitación de cuota. Por favor, inténtalo de nuevo más tarde.El servidor de la nube ha rechazado la solicitud actual debido a que no se han extraído las imágenes. Por favor, extrae primero las imágenes.CloudflareAPI de CloudflareLa API de Cloudflare está configurada en off.Caché de CloudflareDominio de CloudflareZona de CloudflareColapsar cadenas de peticionesCombina archivos CSS y código CSS integrado.Combina todos los archivos JS locales en un único archivo.Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario.Comunicado con éxito con Cloudflare.Completado en un %s¡Felicidades! Tu archivo ya ha sido optimizadoEnhorabuena, se ha configurado correctamente la CDN de QUIC.cloud para este dominio. Por favor, actualiza los servidores de nombres a:¡Felicidades, todas solicitadas!¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia.Prueba de conexiónContactar con el soporte de QUIC.cloudConvertir a InnoDBConvertido a InnoDB correctamente.Nombre de la cookieSimulación de cookieValores de la cookieNo se ha podido encontrar %1$s en %2$s.RecuentoIntervalo de indexaciónRastreadorCron del rastreadorAjustes generales del rastreadorRegistros de rastreadoresAjustes de simulación del rastreadorAjustes de mapa del sitio del rastreadorEstado del rastreadorRastreador desactivado por el administrador del servidor.¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos! Rastreador(es)Los rastreadores no se pueden ejecutar de forma concurrente.Crear una entrada, asegurarse que la página principal está actualizada.Creado con ❤️ por el equipo de LiteSpeed.Los créditos no son suficientes para proceder con la solicitud actual.CSS críticoReglas de CSS críticasNombre del CronContenidos actuales de %sNodos de la nube actual en servicioIPs del servidor en líneaEl servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectar.El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectarlo.El rastreador actual comenzó a lasPosición actual del id de entrada de la imagenEl límite actual esCarga actual del servidorLa hora actual del servidor es %s.El rastreo del mapa del sitio actual comenzó a lasEl estado actual es %1$s desde %2$s.El estado actual es %s.Rastreador activoActualmente usando la versión optimizada del archivo WebP.Actualmente usando la versión optimizada del archivo.Actualmente usando la versión original (no optimizada) del archivo WebP.Actualmente usando la versión original (no optimizada) del archivo.Sitemap personalizadoAjustes de optimización de la BDPrefetch DNSControl del prefetch DNSPrecarga de DNS para archivos estáticosArchivo diarioEscritorioBase de datosOptimizador de base de datosResumen de la base de datosConversor de motor de tabla de base de datosBase de datos a usarDía(s)Ayudas de depuraciónNivel de depuraciónRegistro de depuraciónAjustes de depuraciónExclusión de cadenas de depuraciónURIs excluidas de la depuraciónURIs incluidas en la depuraciónPor defectoCaché por defectoTTL por defecto del FeedTTL por defecto de la Página PrincipalTTL del código de estado de página por defectoTiempo de vida por defecto del objetoTTL por defecto de la caché privadaTTL por defecto de la caché públicaTTL por defecto de RESTTTL por defecto para objetos cacheados.La ruta por defecto esPuerto por defecto de %1$s es %2$s.Valor por defectoDiferidoAplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals).RetrasoRetraso al mostrar los elementos HTML fuera de la pantalla por su selector.RetrasadoBorrar los datos de QUIC.cloudBorrar todas las copias de seguridad de las imágenes originalesDestruir todos los datos de optimizaciónTodos los datos de optimización destruidos correctamente.Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.Modo de desarrolloEl modo de desarrollo se desactivará automáticamente después de tres horas.El modo de desarrollo se desactivará automáticamente en %s.DesactivarDesactivar todas las característicasDesactivar la cachéDesactivar la carga de imágenes diferidaDesactivar VPIDesactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor.Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas.DesactivadoArchivo WebP desactivado con éxito.Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.Desactivar esta opción puede afectar negativamente al rendimiento.Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes de QUIC.cloud.DescartarIgnorar ese avisoCategorías a no cachearCookies a no cachearGrupos a no cachearCadenas de consulta a no cachearNo cachear perfilesEtiquetas a no cachearURIs a no cachearUser Agents a no cachearNo purgar las categorías al cambiar la cantidad o estado del inventario.DominioClave del dominioDiscordancia de clave de dominioDetectada clave de dominio y enlace de QUIC.cloud.HechoNo se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado.Quitar dominio del mapa del sitioIgnorar cadenas de consultaESINonces de ESIAjustes de ESIESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.Muestra de ESI para desarrolaldoresHeartbeat del editorTTL de heartbeat del editorSe excluirán los elementos con el atributo %s en el código HTML.Se excluirán los elementos con el atributo %s en código html.Dirección de correo electrónicoVaciar la caché enteraVaciar la lista negraActivar la funcionalidad %s de la API de la CDN.Activa cacheActivar ESIActivar el cron de generación automática del viewport de imágenes.Activar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress.Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.ActivadoArchivo WebP activado con éxito.Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.Razón de finalizaciónMotorIntroduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN.Error: No se pudieron aplicar los ajustes %1$sBásicosCada minutoTodo lo de Advance y ademásTodo lo de Aggressive y ademásTodo en el básico, ademásTodo lo de Essentials y ademásEjemploEjemplo de uso:Ejemplos de pruebas incluyen:Excluir rutaAjustes de exclusiónExcluirDatos transitorios expiradosExportarAjustes de exportaciónExtremoFallidoFallo al hacer copia de seguridad del archivo %s, cambios cancelados.Fallo al comunicar con CloudflareFallo de comunicación con el servidor QUIC.cloudFallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.¡Fallo al crear la tabla %s! SQL: %s.Error al obtener contenido del archivo %s.Fallo en la solicitud desde WordPressFallo al actualizar.Error al escribir a %s.Uso de la cola rápidaNo se puede escribir el archivo %s.ArchivosDisponible el filtro %s para la generación de UCSS por tipo de página.El filtro %s está disponible para desactivar la lista de bloqueos.El filtro %s es compatible.El directorio no existe: %sEl directorio no es escribible: %s.Optimización de visualización de fuentesEn el caso de las URL con comodines, puede haber un retraso en el inicio de la purga programada.Por ejemploPor ejemplo, %1$s define un TTL de %2$s segundos para %3$s.Por ejemplo, los %s pueden usarse para un marcador de posición transparente.Por ejemplo, para %s, %s y %s puede utilizarse aquí.Por ejemplo, para %s, %s puede utilizarse aquí.Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s.Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor.Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.Forzar URLs en cachéForzar URIs de caché púbicaForzar cronForzar cacheablesPortadaRuta del .htaccess de la parte públicaControl de heartbeat de la parte públicaTTL de heartbeat de la parte públicaOpciones generalesAjustes generalesGenerar LQIP en segundo planoGenerar el enlace para el usuario actualGenerar UCSSGenerado en %sLos enlaces generados pueden gestionarse en los <a %s>Ajustes</a>.Obténla desde <a %1$s>%2$s</a>.Clave/Token global de la APIGrupos globalesIr al escritorio de QUIC.cloudIr a la lista de pluginsBuenas noticias del servidor QUIC.cloudGoogle reCAPTCHA se omitirá automáticamente.Caché de GravatarCron de la caché de GravatarTTL de la caché de GravatarGrupos cacheados a nivel de red.InvitadoModo de invitadoIP del modo de invitadoExclusiones JS del modo de invitadoAgentes de usuario del modo de invitadoModo de invitado y modo de optimizaciónPrueba fallida del modo de invitado.Prueba superada del modo de invitado.El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX.Resultado de la prueba del modo de invitadoOptimización para invitadosAtributo HTML a reemplazarSelectores HTML de carga diferidaMinificar HTMLAjustes HTMLSolo orígenes HTTPS.HeartbeatControl de HeartbeatCaché de páginas de alto rendimiento y optimización de sitio de LiteSpeedTTL mayorHistorialAciertoPágina de inicioHostCómo solucionar problemas causados por la optimización CSS/JS.¿Cómo elegir un selector de lista blanca UCSS?Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.El htaccess no coincide con la opción de configuración.La regla de Htaccess es: %sYa he dejado una valoración¡Si %1$s es %2$s entonces debe completarse %3$s!Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.Si no se verifica en 24 horas la configuración de la CDN marcará la verificación como fallida.Si no, por favor verifica el ajuste en la <a href="%1$s">pestaña Avanzado</a>.Si se debe purgar todo el sitio WordPress, usa «Purgar todo».Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>.Si esto se fija en un número inferior a 30, los feeds no serán cacheados.Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.Si estás usando un socket %1$s, %2$s debería estar en %3$sSi utilizas varios dominios para un sitio y tienes varios dominios en el mapa del sitio, mantén esta opción APAGADA para que el rastreador sepa cómo rastrear cada dominio.Si tienes resgitros de DNS personalizados, es posible que no sean detectados.Si todavía no lo has hecho, antes de proceder, reemplaza los servidores de dominio de QUIC.cloud en tu registrador del dominio. Si lo has activado para tu dominio, debes desactivar DNSSEC para continuar.Si prefieres usar la configuración mediante CNAME, por favor, <a %s>configura manualmente la CDN en QUIC.cloud</a>.Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.Si no quieres la aceleración de litespeed, puedes desactivar este plugin.Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.Los iframes con estos nombres de clase padres no se cargarán de forma diferida.Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)Información de imágenesOptimización de imágenesAjustes de optimización de imágenesResumen de la optimización de imágenesTamaños del grupo de imágenes en miniaturaReemplazo de imágenes WebPTotal de grupos de imágenesImágenes recuperadasLas imágenes que contengan estos nombres de clases no tendrán carga diferida.Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.Imágenes no solicitadasImágenes notificadas para descargarImágenes optimizadas y descargadasImágenes listas para la solicitudImágenes solicitadasLas imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.ImportarImportar / ExportarAjustes de importaciónImportación fallida debido a un error en el archivo.Importado con éxito el archivo de ajustes %s.Mejorar compatibilidad HTTP/HTTPSMejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)Mejorado porEn cursoPara evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s.Para poder usar los servicios de QC necesitas un nombre de demonio real, no puedes usar una IP.Incluir CSSIncluir tipos de archivoIncluir imágenesIncluir JSIncluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.Directorios incluidosBiblioteca de CSS integrado asíncronoCSS en línea añadido a CombinarJS en línea añadido a CombinarUCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala.InstalarInstalar %sInstalar la seguridad de DoLoginInstalar ahoraClic instantáneoIntervalo entre ejecucionesIP no válidaCookie de acceso no válida. Encontrados caracteres no válidos.Cookie de acceso no válida. Por favor, comprueba el archivo %s.Regla de reescritura no válida¿Falta algo?Recomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero.Se convertirá en un marcador de posición SVG base64 sobre la marcha.Combinar JSCombinación de JS externo e integradoDiferir JSAplazar JS para JS externos e incrustadosExclusiones de JS diferido / retrasadoJS RetrasadoInclusiones de JS retrasadasExcluir JSMinificar JSAjustes de JSEl error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar.Únete a la comunidad de Slack de LiteSpeedÚnete a nuestro SlackÚnete a la comunidad %s.Mantén esto apagado para usar marcadores de posición de color.LQIPCaché de LQIPGenerador de LQIP en la nubeExclusiones de LQIPDimensiones mínimas de LQIPCalidad de LQIPVista previa de la imagen LQIP para el tamaño %sNo se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.LSCache¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.Mayor queÚltima lecturaÚltima peticiónResultado de la última verificaciónÚltimo cálculoHora de la última ejecución completa para todos los rastreadoresÚltima exportaciónÚltimo generadoÚltima importaciónÚltimo intervaloÚltima descarga iniciada por cron a las %s.Última ejecuciónÚltimo pedidoÚltimo coste solicitadoExclusiones de carga diferida de clases de iframesExclusiones de carga diferida de clases padre de iframesRetrasar la carga de iframesExclusión de nombres de clases para carga diferida de imágenesExclusiones de carga retrasada de imágenesExclusiones de carga diferida de clases padresRetrasar la carga de imágenesExclusión de URIs de carga diferidaCarga diferida de IframesCarga diferida para imágenesLeer másAprender másAprende más sobre cuándo es esto necesarioEnlace a QUIC.cloudLista de User Agents móvilesLista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.Lista el selector CSS cuyo estilo debería siempre contenerse en UCSS.Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán.Los archivos CSS listados se excluirán del CSS sin uso y guardados para que se incrusten.Las IP listadas serán consideradas visitantes en modo invitado.Los archivos JS listados o el código JS en línea se retrasarán.Los archivos JS listados o el código JS integrado no serán aplazados ni diferidos.Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán.Los archivos JS listados o el código JS integrado no serán optimizados por %s.Las URI listadas no generarán UCSS.Los agentes de usuario listados serán considerados visitantes en modo invitado.Las imágenes listadas no se cargarán de forma retrasada.LiteSpeed CacheCDN de la caché de LiteSpeedPreajustes de configuración de caché LiteSpeedRastreador de LiteSpeed CacheEscritorio de LiteSpeed CacheOptimización de la base de datos de la caché de LiteSpeedAjustes generales de LiteSpeed CacheOptimización de imágenes de LiteSpeed CacheAjustes de la caché de la red de caché de LiteSpeedOptimización de página de LiteSpeed CachePurdgar toda la caché de LiteSpeedConfiguración de Caché de LiteSpeedPreajustes estándar de cache de LiteSpeedCaja de herramientas de LiteSpeedVer el archivo «.htaccess» de LiteSpeed Cache¡El plugin LiteSpeed Cache está instalado!LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS.Cron del rastreador de LiteSpeedRegistros de LiteSpeedOptimización de LiteSpeedOpciones de LiteSpeedInforme de LiteSpeedLiteSpeed TechnologiesActualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración.Cargar CSS asíncronamenteCargar Google Fonts asíncronamenteDeferir carga de JSCargar iframes sólo cuando entran en la ventana de visualización.Cargar las imágenes sólo cuando entran en la ventana de visualización.LocalizaciónArchivos de idiomasAjustes de localizaciónRecursos localizadosLocalizar recursos externos.Recursos localizadosRegistrar cookiesLímite de tamaño de archivo de registroVista de registrosRegistra los valores solicitados de las cookies.Cookie de accesoMarcador de imagen de baja calidadMBDEBE SER DIFERENTE DE OTRAS APLICACIONES WEB.Dominio principalNo se ha generado todavía el dominio principalGestionarGestionar CDNGestionar zona DNSAñadido manualmente a la lista negraEjecutar manualmenteMapaMarcar esta página como ID de entrada de imagen máximaValor máximoPuede que más tardeQuizás más tardeExclusiones de mediosAjustes de mediosMensaje del servidor QUIC.cloudMétodoMinimiza archivos CSS y código CSS integrado.Minificar contenido HTML.Minimiza archivos JS y códigos JS integrados.Valor mínimoFalloMóvilReglas de agente móvilCaché móvilArchivo mensualMásAquí se puede encontrar más información sobre los comandos disponibles.Más ajustesMás ajustes disponibles en el menú %sNOTANOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %1$s.AVISOAVISO:AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.Servidores de nombresEscritorio de redHabilitar caché de red¡Nueva versión para desarrolladores disponible!¡Nueva versión disponible!La nueva versión de desarrollo %s está disponible.La nueva versión %s está disponible ahora.Próximo tiempo de solicitud disponible: <code>Después de %s</code>No hay ningún nodo de la nube disponible después de comprobar la carga del servidor.No hay ningún nodo de la nube disponible.No hay disponible una zona CloudflareNo existe una copia de seguridad del archivo original.No existe una copia de seguridad del archivo WebP no optimizado.No hay servicios de la nube en usoArchivo meta del rastreador aún no generadoSin optimizaciónEspacios no permitidos y sensible a mayúsculas.El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual.No se ha encontrado ninguna imagen válida en la petición actual.No se ha analizado ningún mapa del sitio válido para el rastreador.No cacheableNo disponibleNo está en la lista negraNo hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamenteNo está en ejecuciónNotaNota: En los 15 a 20 minutos después de que se complete la configuración, puede que los navegadores muestren una advertencia de «no seguro» al acceder a tu sitio, mientras QUIC.cloud genera tu certificado SSL.NotasNotaAviso: La configuración de la CDN solo se ha restablecido localmente.AvisosAvisado correctamente a Cloudflare de la purga completa.Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.Solicitada la purga de entradas CSS/JS al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed la purga de todas las entradas de LSCache.Solicitada la purga de todas las páginas al servidor web LiteSpeed.Solicitada la purga de las páginas de error al servidor web LiteSpeed.Solicitado la purga de todo al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed la purga de la página de inicio.Solicitado la purga de la lista al servidor web LiteSpeed.OFFONOObjetoCaché de objetosAjustes de la caché de objetosLa caché de objetos no está activada.Una vez guardado, coincidirá con la lista actual y se completará automáticamente.Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificadoUna por línea.El nodo online tiene que volver a ser detectado.Solo los atributos aquí listados serán reemplazados.Solo disponible cuando está instalado %s.Solo los archivos en estos directorios apuntarán a la CDN.Solo registra las páginas listadas.Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios.Solo pulsar el botón si la tarea cron de descarga está desactivada.Caché opcodeLa caché opcache no está habilitada.Marca esto si eres un usuario de OpenLiteSpeedOperaciónEstado de optimizaciónResumen de optimizaciónHerramientas de optimizaciónOptimiza la entrega de CSS.Optimizar sin pérdidaOptimizar imágenes originalesOptimizar tablasOptimizar todas las tablas en tu base de datosOptimizar solamente para invitadosOptimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.Optimizar imágenes usando compresión sin pérdida.Optimiza las imágenes con nuestro servidor en QUIC.cloudEl archivo WebP optimizado caducado ha sido limpiado.Optimizadas todas las tablas.Nombre de la opciónOpcionalOpcional cuando se usa el token de la API.Las opciones han sido guardadas.OriginalOriginal %sAhorrado un %s del originalURLs originalesArchivo original reducido en %1$s (%2$s)Otras opciones serán ignoradas.Nuestro %s no estaba en la lista blanca.Se muestra en el registro de depuración de WordPress.Balance de pagosBalance y uso de PAYG no incluido en el cálculo de cuota anterior.PAYG usado este mesLa constante PHP %s está disponible para desactivar la lista de bloqueos.Es compatible la contante %s de PHP.Tiempo de carga de la páginaOptimización de páginaPuntuación de PageSpeedPáginasVentajas de colaboración ofrecidas porExitosoContraseñaEnlace sin contraseñaLa ruta debe terminar en %sLas rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.Las rutas que contengan estas cadenas no serán cacheadas.Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.PausadoPago por usoEstadísticas pago por usoConexión persistenteDebido a que puede haber conflictos con LiteSpeed Cache, por favor, considera desactivar los siguientes plugins:Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior.Por favor, activa LiteSpeed Cache en los ajustes del plugin.Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio.Por favor, lee todas las advertencias antes de activar esta opción.Por favor, consulta %s para más detalles.Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema.Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Purgar todo».Por favor, prueba a fondo todos los elementos en %s para asegurar que funcionan como se espera.Por favor, prueba a fondo cada archivo JS que añadas para asegurar que funcionan como se espera.Por favor, inténtalo después de %1$s para el servicio %2$s.Por favor, actualiza tu registro de dominio para que use estos servidores de nombres personalizados:Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la API REST, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda.Por favor, visita la página de <a %s>Información</a> sobre como probar la caché.PuertoID de entradaRevisiones de entradasArchivo de tipo de contenidoLa lista predefinida también se combinará con los ajustes anterioresLa precarga DNS puede reducir la latencia para los visitantes.Preparar el sitio para la CDN de QUIC.cloud, detectar las DNS y crear la zona de DNS.Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.Conservar los datos EXIF/XMPPreajustesPulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales.Evita que cargue Google Fonts en todas las páginas.Evita cualquier registro de depuración de las páginas listadas.Evita cualquier carga diferida de las páginas de la lista.Evitar cualquier optimización de las páginas listadas.Evita escribir entradas del registro que incluyan cadenas listadas.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.Anteriormente existía en la lista negraPrivadaCaché privadaURIs cacheadas privadamenteCaché privadaCachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)Intervalo de actualización de productoFacilitar los servidores de nombres necesarios para activar la CDN.PúblicaCaché públicaPull Cron se está ejecutandoDescargar imágenesEl md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP.PurgarError de purga de %sPurgar las páginas de error %sPurgar todoGanchos de purgar todoPurgar todo al actualizarPurgar por...Purgar todoPurgar la página de inicioPurgar listaPurgar registroPurgar páginasAjustes de purgaPurga correcta de todas las cachés de objetos.Purgar todas las cachés de objetosPurgar las categorías solo cuando el estado del inventario cambie.Purgar la categoría %sPurgar páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.Purgar páginas por ID de entrada.Purgar páginas por URL completa o relativa.Purgar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.Purgar productos y categorías solo cuando cambie el estado del inventario.Purgar los productos con los cambios de cantidad o estado del inventario.Purgar los productos solo cuando cambie el estado del inventario.Purgar la etiqueta %sPurga las entradas de caché de LiteSpeed creadas por este pluginPurga las entradas de la caché creadas por este plugin, excepto las cachés de CSS único, CSS crítico y de LQIPPurgar esta páginaPurgar la URL %s¡Se ha purgado todo!Todas las cachés purgadas correctamente.¡Se ha purgado el blog!¡Se ha purgado la URL!¡Purgado!%1$s enviado al servidor en la nube, %2$s aceptado.QUIC.cloudCDN de QUIC.cloudConfiguración de la CDN QUIC.cloudLa CDN/DNS de QUIC.cloud no es compatible con DNSSEC.No se han cambiado los ajustes DNS de QUIC.cloud.Resumen de registros detectados por QUIC.cloudEstadísticas de uso del servicio QUIC.cloudSe ha creado y vinculado correctamente la cuenta de QUIC.cloud.Se ha vinculado correctamente con la cuenta de QUIC.cloud.QUIC.cloud intentará verificar la actualización DNS.QUIC.cloud detectará la mayoría de registros normales de DNS.Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.Valora %s en %sLeer la documentación de LiteSpeedPreparado para realizar la configuración de la CDN.Recivido un mensaje no válido del servidor en la nube. Por favor, envía un ticket.Recomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare.Valor recomendado: 28800 segundos (8 horas).Tipo de registroNombres de registro encontradosVolver a detectarNodo detectado nuevamenteID de base de datos RedisRedis encontró un error fatal: %s (código: %d)Recargar el estado de configuración de la CDNRecargar el mapa del rastreadorActualizar la clave del dominioRefrescar la caché de Gravatar por cron.Actualizar el tiempo de carga de la páginaActualizar la puntuación de la páginaCuota diaria restanteEliminar la URL de la CDNEliminar Google FontsEliminar las etiquetas NoscriptEliminar copias de seguridad del orginalEliminar copias de seguridad de las imágenes originalesEliminar query stringsEliminar cadenas de consulta de recursos estáticosEliminar emojis de WordPressEliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.Eliminar la simulación de la cookieEliminar de la lista negraEliminar cadenas de consulta de recursos estáticos internos.CSS sin uso eliminado para los usuariosCopias de seguridad eliminadas correctamente.Reemplaza %1$s con %2$s.InformeFecha de informeNúmero de informeSolicitar clave de dominioSolicita versiones WebP de las imágenes originales al hacer la optimización.Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación.SolicitadoPeticiones en colaReexaminar nuevas miniaturas%d imágenes reexploradas correctamente.Reexploración correcta.Restablecer todos los ajustesRestablecer configuración CDNRestablecer ajustesReestablecer posiciónRestablecimiento realizado con éxito.Reestablecer toda la caché opcodeReestablecida la caché opcache con éxito.Datos de optimización restablecidos correctamente.Restablece todos los ajustes del plugin LiteSpeed Cache relacionados con CDN al estado inicial y borra la zona DNS, en caso de que exista una para el dominio.Restablece todos los ajustes de LiteSpeed Cache relacionados a la CDN al estado inicial y desactiva la CDN.Los recursos listados aquí se copiarán y reemplazarán con URL locales.Marcador de posición adaptableColor del marcador de posición adaptableMarcador de posición SVG adaptableLos marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.Restaurar los ajustesRestaurar desde la copia de seguridadSe han restaurado el respaldo de los ajustes %1$sArchivo original restaurado con éxito.Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>.Revisar registros DNSEdad máxima de las revisionesNúmero máximo de revisionesLas revisiones más recientes se guardarán cuando se limpien las revisiones.Excluir perfilesSimulación de rolEjecutar manualmente la cola %sEjecutar la configuración del CDNDuración de la ejecuciónFrecuencia de ejecuciónEjecutar la cola manualmenteLa frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.Hora de ejecución para el rastreador anteriorEn cursoSINTAXIS: alfanumérico y "_".Guardar cambiosGuarda datos transitorios en la base de datos cuando %1$s es %2$s.GuardadoFalló el guardado de la opción. IPv4 es solo para %s.Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.Hora de purga programadaURLs de purga programadaVer <a %s>Introducción para activar el rastreador</a> para información detallada.Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio.Selecciona debajo las opciones de «Purgar por».Selecciona solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.Selecciona qué páginas serán purgadas automáticamente cuando las entradas sean publicadas o actualizadas.Los perfiles seleccionados serán excluidos de todas las optimizaciones.Los perfiles seleccionados serán excluidos de la caché.Enviar solicitud de optimizaciónEnviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.Enviar a LiteSpeedTipos de contenido de caché de CCSS distintosDistintas URIs de caché CCSSSepara archivos CSS críticos al generar las rutas que contengan estas cadenas.Servir contenido rancioOfrece una copia de la caché separada para los visitantes móviles.Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s.IP del servidorLímite de carga del servidorValor máximo permitido por el servidorValor mínimo permitido por el servidorValor forzado por el servidorVariable(s) del servidor %s disponible para omitir este ajuste.Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals).Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.Ponlo en %1$s para bloquear heartbeat en %2$s.Configura una cuenta en QUIC.cloudConfigurar una cuenta en QUIC.cloud.Configurar cabeceras personalizadasAjustesAcortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.Mostrar estado del rastreadorMejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.Ajustes de simulaciónURL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s.Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva.Lista del mapa del sitioAjustes del mapa del sitioTimeout del mapa del sitioTotal del mapa del sitioEl mapa del sitio se limpió con éxitoMapa del sitio creado con éxito: %d elementosTamañoTamaño de la lista en la cola de espera del cronMás pequeño queUna o más imágenes optimizadas han caducado y han sido borradas.Algunos temas y plugins añaden recursos mediante una petición PHP.Comentarios spamEspecifica el número de hilos a utilizar durante la indexación.Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.Especifica un SVG que se utilizará como marcador de posición al generar localmente.Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.Especifica tras cuanto tiempo debe el rastreador indexar el sitemap entero de nuevo.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.Especifica por cuanto tiempo, en segundos, se cachean los feeds.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.Especifica cuánto tiempo, en segundos, se almacena la página de inicio.Especifica el intervalo de heartbeat para %s en segundos.Especifica el tamaño máximo del archivo de registro.Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.Especifica la contraseña utilizada al conectar.Especifica la calidad al generar el LQIP.Especifica el color del marcador de posición SVG adaptable.Especifica la hora para purgar la lista «%s».Especifica el tiempo de espera mientras se rastrea cada URL.Especifica el tiempo límite de procesamiento del mapa del sitio.Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación.Especifica un tiempo en segundos para la duración del intervalo de indexación.Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución.Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.Especificar que atributos de elementos serán reemplazados con WebP.Preajustes estándarSe inició el rastreo asíncronoSe inició la solicitud de optimización asíncrona de imágenesEnlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.EstadoDeja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador.Optimización de almacenamientoAlmacenar los gravatares localmente.Almacenar datos transitoriosRastreado correctamenteSumario¡Por supuesto, me encantará valorarlo!SwapVolver a utilizar imágenes optimizadas en tu webImágenes cambiadas correctamente.Cambio correcto a archivo optimizado.SincronizarSe ha sincronizado la asignación de créditos correctamente con el servidor en la nube.Sincronizar los datos de la nubeInformación del sistemaTTLTablaEtiquetaOmite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.Archivo de término (incluye categoría, etiqueta y taxonomía)Probando¡Gracias por usar el plugin de caché LiteSpeed!La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores.El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.La llamada POST a %s falló.Las URLs de aquí (una por línea) serán purgadas automáticamente a la hora establecida en la opción «%s».Las URLs serán comparadas con la variable REQUEST_URI del servidor.El servicio de viewport de imágenes detecta qué imágenes aparecen antes de hacer scroll y las excluye de la carga diferida.Los nonces anteriores se convertirán en ESI automáticamente.La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar.La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: La cookie aquí establecida será usada por esta instalación de WordPress.La característica de rastreador no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor.El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, si se deja caer el dominio se puede ahorrar almacenamiento en la base de datos.El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio.El servidor actual está bajo una gran carga.La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.La cookie de acceso por defecto es %s.La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio.El informe de entorno contiene información detallada sobre la configuración de WordPress.Están disponibles las siguientes acciones:Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.La lista de imágenes está vacía.El último archivo de datos esLa lista se fusionará con los nonces predefinidos en tu archivo de datos local.Los registros serán enviados a %s.La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del rastreador será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.El ajuste de administrador de red puede ser modificado aquí.La siguiente indexación de sitemap completa empezará a lasLa cola se procesa de forma asíncrona. Puede llevar un tiempo.El selector debe existir en el CSS. Las clases principales en HTML no funcionarán.El servidor determinará si el usuario está conectado en base a la existencia de esta cookie.En este momento, el ajuste %s está activado.El sitio no tiene un alias válido en QUIC.cloud.El sitio no está registrado en QUIC.cloud.Y otro WordPress instalado (NO MULTISITIO) en %sHay dos razones por las que no podemos comunicarnos con tu dominioHay un WordPress instalado para %s.Hay una cola de procedimiento que no se ha retirado todavía.La cola aún no ha sido recuperada. Información de la cola: %s.Hay un problema al recibir tu clave de dominio. Por favor, haz clic en el botón %s para volver a intentarlo.Ha habido un error durante la configuración de la CDN: Estas imágenes no generarán LQIP.Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.El uso de este mesEsta acción no está disponible si no hay ninguna clave de dominio, el dominio no está enlazado, o la zona DNS está en uso.Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.Esta acción no actualizará nada en los servidores de QUIC.cloud.Este te permite probar de nuevo la configuración automática de la CDN, o abandonar completamente la configuración.Esto te permite probar la configuración de CDN automática de nuevo.Esto se puede gestionar desde la pestaña %1$s%2$s.Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.Esto puede mejorar la velocidad de carga de la página.Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.Esto permite que la pantalla inicial de imágenes de la página se muestre completamente sin demora.Este es un proceso de tres pasos para configurar tu sitio para que use la CDN De QUIC.cloud con las DNS de QUIC.cloud. Esta configuración realizará las siguientes accionesEsto es irreversible.Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.Esta última etapa puede durar de 15 a 20 minutos.Este preajuste de bajo riesgo introduce optimizaciones básicas de mejora de la velocidad de página y experiencia de usuario. Adecuado para principiantes entusiastas.Esto puede causar una alta carga en el servidor.Este mensaje indica que el plugin fue instalado por el administrador del servidor.Este preajuste sin riesgos es apropiado para todas las webs. Es bueno para nuevos usuarios, webs sencillas o desarrollos orientados a caché.Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas.Esta opción permite la máxima optimización para los visitantes del modo de invitado.Esta opción se omite porque la opción %1$s es %2$s.Esta opción se omite debido a la opción %s.Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins.Esta opción omitirá automáticamente la opción %s.Esta opción eliminará todas las etiquetas %s del HTML.Este preajuste es casi seguro que requerirá pruebas y exclusiones de algo de CSS, JS y carga diferida de imágenes. Presta especial atención a los logotipos, o a imágenes de carrusel basadas en HTML.Este preajuste es bueno para la mayoría de webs, y es raro que provoque conflictos. Cualquier conflicto de CSS o JS puede solucionarse con las herramientas de Optimización de página > Retoques.Este preajuste puede que funcione tal cual en algunas webs, ¡pero asegúrate de hacer pruebas! Puede que sean necesarias algunas exclusiones de CSS y JS en Optimización de página > Retoques.Este proceso es automático.Este proceso puede llevar varios minutos.Esta sección se rellenará automáticamente cuando se configuren los servidores de nombres del sitio.Los ajustes de red sobreescriben este ajusteEste ajuste es sobrescrita por la constante %s de PHPEsta ajuste es sobrescrito por los ajuste del sitio primario¡Este ajuste está pasivamente %1$s debido a %2$s!Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.Este ajuste editará el archivo .htaccess.¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!Este proceso de configuración creará una zona de DNS en QUIC.cloud si no existe ya actualmente.Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente purgados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché.Esto solo purgará la página principalEsto solo purgará las páginasEsto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s.Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes.Esto también generará una clave de API del servidor de LiteSpeed.Se va a hacer una copia de seguridad de tus ajustes actuales y reemplazarlos con los de los preajustes %1$s. ¿Quieres continuar?Esto eliminará TODO dentro de la caché.Esto borrará todos los archivos Gravatar almacenados en cachéEsto borrará todos los archivos generados de CSS críticoEsto borrará todos los archivos generados de marcador de posición de imágenes LQIPEsto borrará todos los archivos CSS únicos generadosEsto borrará todos los recursos localizadosEsto desactivará LSCache y todas las características de optimización con propósitos de depuración.Esto desactivará la página de ajustes en todos los subsitios.Esto eliminará el CSS no utilizado en cada página del archivo combinado.Esto activará el cron rastreador.Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo.Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.Esto aumentará el tamaño de los archivos optimizados.Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.Esto purgará solo las entradas CSS/JS minimizadas o combinadasEsto restablecerá todos los ajustes a su valores predeterminados.Esto restaurará la copia de seguridad de los ajustes creada %1$s antes de aplicar el preajuste %2$s. Cualquier cambio realizado desde entonces se perderá. ¿Quieres continuar?HilosTiempo para ejecutar la solicitud anteriorTimeoutPara rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.Para coincidencias exactas, añadir %s al final de la URL.Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN.Para excluir %1$s, insertar %2$s.Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de grupos de imágenes permitidas en una sola petición es limitada.Para gestionar las opciones de QUIC.cloud, visitaPara que coincida con el principio, añade %s al comienzo del artículo.Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione.Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.Para probar el carrito, visita la <a %s>FAQ</a>.Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.HerramientaHerramientasTotalReducción totalUso totalTotal de imágenes optimizadas en este mesTrackbacks/pingbacksComentarios enviados a la papeleraEntradas enviadas a la papeleraProbar versión de GitHubRetoquesAjustes de los retoquesAPAGARENCENDERActívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.Actívalo para controlar heartbeat en el editor.Actívalo para controlar heartbeat en el escritorio.Enciéndelo para controlar heartbeat en las páginas públicas.Activar la actualización automáticaActiva esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.Pon este ajuste como %1$s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud.Vista previa del tweetTuitea estoExcluir archivo del CSS sin uso e incrustarUCCS integradoLista blanca del selector de CSS sin usoExclusiones UCSS de la URIURL excluidasLas rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.URLBuscar URLLista de URL en cola %s esperando el cronNo ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal, debido a un conflicto potencial con la CDN.No ha sido posible añadir automáticamente %1$s como alias de dominio para el dominio %2$s principal.Se ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (<a %3$s>Más Información</a>)CSS únicoError desconocidoError desconocido.Actualizar %sActualizarActualizado con éxito.UsoUso de las estadísticasUsa %1$s en %2$s para indicar que esta cookie no ha sido establecida.Usa %1$s para omitir UCSS para las páginas cuyo tipo de página es %2$s.Utiliza %1$s para saltarte la comprobación de dimensión en imágenes remotas cuando la %2$s esté ACTIVA.Usa %1$s para generar un único UCSS para las páginas cuyo tipo de página es %2$s, mientras que los otros tipos de páginas se mantienen por URL.Usar la funcionalidad de la API %s.Usar mapeo de CDNUsar ajuste de administrador de redUsar archivos optimizadosUsar archivos originalesUsar configuración del sitio principalUsa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga.Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante.Usar el servicio en línea QUIC.cloud para generar CSS único.Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto.Utiliza un preajuste oficial diseñado por LiteSpeed para configurar tu sitio en un clic. Pruebe el cacheo esencial sin riesgos, la optimización extrema o algo intermedio.Usa la funcionalidad de la caché de objetos externos.Utilizar conexiones keep-alive para acelerar operaciones de la caché.Usar el último commit de desarrollo de GitHubUtiliza el último commit Dev/Master de GitHubUsar el último commit maestro de GitHubUsar la última versión de WordPressUsar imágenes originales (no optimizadas) en tu webUsa el formato %1$s o %2$s (el elemento es opcional).Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo.Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals).Nombre de usuarioUsando la versión optimizada del archivo. VPIRango de valoresLas variables %s serán reemplazadas por el color de fondo configurado.Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen.Grupos de variaciónVerificando, esperando a que se actualicen los servidores de nombres.Ver detalles de la versión %2$s de %1$sVer el archivo «.htaccess»Ver sitio sin cachéVer sitio sin optimizarImagen de la vistaGeneración del viewport de la imagenImágenes de la vistaCron de imágenes de la vistaVisita el foro de soporte de LSCWPVisitar «Mi Escritorio» en QUIC.cloudVisitar el sitio sin la sesión iniciada.Visita tu escritorio de QUIC.cloud después de que esté configurada la zona de DNS para confirmar tu zona de DNS.ADVERTENCIAADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.En esperaEsperando aprobaciónEsperando a la recargaEsperando a ser rastreado¿Quieres conectar con otros usuarios de LiteSpeed?AdvertenciaVer estado del rastreadorEstamos bien. Ninguna tabla usa el motor MyISAM.Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.WebPAtributo WebP a reemplazarWebP para src extraArchivo WebP reducido en %1$s (%2$s)WebP ha ahorrado un %sBienvenido a LiteSpeed¿Qué es un grupo?¿Qué es un grupo de imágenes?Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.Al desactivar la caché, se purgarán todas las entradas almacenadas en caché de este sitio.Al activarlo, la caché se purgará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.Cuando usas la carga diferida, se retrasa la carga de todas las imágenes de la página.¿Quién debería usar este preajuste?TTL caché de Widgets:El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.Compatibilidad con el comodín %s.Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.WooCommerceAjustes de WooCommerceControl de la calidad de imagen de WordPressEl intervalo válido de WordPress es %s segundosEl intervalo válido de WordPress es de %s segundos.WpW: Caché privada o caché públicaArchivo anualPuedes simplemente teclear parte de dominio.Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles.Puede solicitar un máximo de imágenes de %s de una vez.También puedes activar la caché del navegador en la administración del servidor. <a %s>Aprende más acerca del ajuste de la caché de navegador de LiteSpeed</a>.Puedes convertir shortcodes en bloques ESI.Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess».No puedes eliminar esta zona de DNS porque aún está en uso. Por favor, actualiza los servidores de nombers, luego tratar de borrar de nuevo esta zona, en caso contrario tu sitio será inaccesible.No tienes suficiente cuota diaria disponible hoy para el servicio actual.No tienes suficiente cuota disponible este mes para el servicio actual.Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas.Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.¡Acabas de desbloquear una promoción de QUIC.cloud!Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud.Debes tener %1$s antes de enlazarte a QUIC.cloud.Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado.Necesitas activar %s para obtener el máximo resultado.¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!Tendrás que establecer %s para usar los servicios en línea.Recibirás un correo electrónico cuando cambie el estado.Tu cuota de %1s en %2s seguirá en uso.El hostname o dirección IP de tu %s.Tu clave de la API/token se usa para acceder a las API de %s.Tu dirección de email en %s.Tu IPTu solicitud está a la espera de aprobación.A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior.Tu domain_key ha sido bloqueada temporalmente para evitar abusos. Puedes ponerte en contacto con el servicio de asistencia de QUIC.cloud para obtener más información.La IP de tu servidorTu sitio estará disponible, pero puede que los navegadores muestren durante este tiempo una advertencia de «no seguro».Cero, ocategoríascookiesactualmente establecido en %sej: Usa %s o %s.El favicon.ico es solicitado en la mayoría de las páginas.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationahora mismomicrosegundospixelsproporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración.ahora mismoejecutandosegundosetiquetasla IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor.desconocidouser agents# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in Dutch
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2023-09-06 20:02:20+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/4.0.0-alpha.7\n"
"Language: nl\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/page_optm/settings_tuning.tpl.php:34
msgid "Listed JS files or inline JS code will be delayed."
msgstr "Opgenomen JS bestanden of inline JS code worden vertraagd."

#: tpl/crawler/map.tpl.php:44
msgid "URL Search"
msgstr "URL zoekopdracht"

#: src/lang.cls.php:159
msgid "JS Delayed Includes"
msgstr "JS uitgesteld inclusief"

#: src/cloud.cls.php:760
msgid "Your domain_key has been temporarily blocklisted to prevent abuse. You may contact support at QUIC.cloud to learn more."
msgstr "Je domein_key is tijdelijk geblokkeerd om misbruik te voorkomen. Je kunt contact opnemen met ondersteuning op QUIC.cloud voor meer informatie."

#: src/cloud.cls.php:755
msgid "Cloud server refused the current request due to unpulled images. Please pull the images first."
msgstr "De cloudserver heeft het huidige aanvraag geweigerd vanwege niet opgehaalde afbeeldingen. Haal de afbeeldingen eerst op."

#: tpl/crawler/summary.tpl.php:91
msgid "Current server load"
msgstr "Huidige serverbelasting"

#: src/object-cache.cls.php:473
msgid "Redis encountered a fatal error: %s (code: %d)"
msgstr "Redis heeft een fatale fout ondervonden: %s (code: %d)"

#: src/img-optm.cls.php:837
msgid "Started async image optimization request"
msgstr "Gestart asynchrone afbeelding optimalisatie aanvraag"

#: src/doc.cls.php:31
msgid "This setting is passively %1$s due to %2$s!"
msgstr "Deze instelling is passief %1$s vanwege %2$s!"

#: src/crawler.cls.php:222
msgid "Started async crawling"
msgstr "Gestart met asynchroon crawlen"

#: src/conf.cls.php:538
msgid "Saving option failed. IPv4 only for %s."
msgstr "Opslaan van optie mislukt. Alleen IPv4 voor %s."

#: src/cloud.cls.php:1396
msgid "QUIC.cloud account has been successfully linked."
msgstr "Je QUIC.cloud account is succesvol gekoppeld."

#: src/cloud.cls.php:1395
msgid "QUIC.cloud account has been created and successfully linked."
msgstr "Quic.cloud account is aangemaakt en succesvol gekoppeld."

#: src/cloud.cls.php:767
msgid "Cloud server refused the current request due to rate limiting. Please try again later."
msgstr "Cloud server heeft de huidige aanvraag geweigerd vanwege beperking van de snelheid. Probeer het later opnieuw."

#: tpl/img_optm/summary.tpl.php:251
msgid "Maximum image post id"
msgstr "Maximale afbeelding bericht id"

#: tpl/img_optm/summary.tpl.php:250
msgid "Current image post id position"
msgstr "Huidig afbeelding bericht id positie"

#: src/lang.cls.php:27
msgid "Images ready to request"
msgstr "Afbeeldingen klaar voor aanvraag"

#: tpl/dash/dashboard.tpl.php:259 tpl/general/settings.tpl.php:130
#: tpl/img_optm/summary.tpl.php:43 tpl/img_optm/summary.tpl.php:45
#: tpl/page_optm/settings_css.tpl.php:101
#: tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:182
#: tpl/page_optm/settings_vpi.tpl.php:48
msgid "Redetect"
msgstr "Opnieuw detecteren"

#: tpl/dash/dashboard.tpl.php:41 tpl/dash/dashboard.tpl.php:212
#: tpl/dash/dashboard.tpl.php:270
msgid "Sync"
msgstr "Sync"

#: tpl/dash/dashboard.tpl.php:127
msgid "PAYG balance and usage not included in above quota calculation."
msgstr "PAYG saldo en gebruik zijn niet opgenomen in bovenstaande quota berekening."

#: tpl/dash/dashboard.tpl.php:127
msgid "PAYG used this month"
msgstr "PAYG gebruikt deze maand"

#: tpl/cache/settings_inc.object.tpl.php:80
#: tpl/cache/settings_inc.object.tpl.php:95
msgid "If you are using a %1$s socket, %2$s should be set to %3$s"
msgstr "Als je een %1$s socket gebruikt, moet %2$s worden ingesteld op %3$s"

#: src/root.cls.php:185
msgid "All QUIC.cloud service queues have been cleared."
msgstr "Alle QUIC.cloud dienst wachtrijen zijn gewist."

#. translators: %s: The type of the given cache key.
#: src/object.lib.php:519
msgid "Cache key must be integer or non-empty string, %s given."
msgstr "Cache sleutel moet een integer of niet-lege string zijn, %s gegeven."

#: src/object.lib.php:517
msgid "Cache key must not be an empty string."
msgstr "Cache sleutel mag geen lege string zijn."

#: src/lang.cls.php:167
msgid "JS Deferred / Delayed Excludes"
msgstr "JS uitgesteld/vertraagd exclusief"

#: src/doc.cls.php:156
msgid "The queue is processed asynchronously. It may take time."
msgstr "De wachtrij wordt asynchroon verwerkt. Het kan enige tijd duren."

#: src/cloud.cls.php:1064
msgid "Contact QUIC.cloud support"
msgstr "Neem contact op met QUIC.cloud ondersteuning"

#: src/cloud.cls.php:1060
msgid "Unknown error."
msgstr "Onbekende fout."

#: src/cloud.cls.php:584
msgid "In order to use QC services, need a real domain name, cannot use an IP."
msgstr "Om QC diensten te gebruiken, heb je een echte domeinnaam nodig, geen IP."

#: tpl/presets/standard.tpl.php:190
msgid "Restore Settings"
msgstr "Instellingen terugzetten"

#: tpl/presets/standard.tpl.php:188
msgid "This will restore the backup settings created %1$s before applying the %2$s preset. Any changes made since then will be lost. Do you want to continue?"
msgstr "Hiermee worden de back-upinstellingen teruggezet die zijn gemaakt %1$s voor toepassing van de %2$s voorinstelling. Alle wijzigingen die sindsdien zijn aangebracht, gaan verloren. Wil je doorgaan?"

#: tpl/presets/standard.tpl.php:184
msgid "Backup created %1$s before applying the %2$s preset"
msgstr "Back-up gemaakt %1$s voor toepassen van de %2$s voorinstelling"

#: tpl/presets/standard.tpl.php:173
msgid "Applied the %1$s preset %2$s"
msgstr "Pas de %1$s voorinstelling toe. %2$s"

#: tpl/presets/standard.tpl.php:170
msgid "Restored backup settings %1$s"
msgstr "Teruggezette back-up instellingen %1$s"

#: tpl/presets/standard.tpl.php:168
msgid "Error: Failed to apply the settings %1$s"
msgstr "Fout: niet gelukt om de instellingen toe te passen %1$s"

#: tpl/presets/standard.tpl.php:158
msgid "History"
msgstr "Geschiedenis"

#: tpl/presets/standard.tpl.php:147
msgid "unknown"
msgstr "onbekend"

#: tpl/presets/standard.tpl.php:128
msgid "Apply Preset"
msgstr "Voorinstelling toepassen"

#: tpl/presets/standard.tpl.php:126
msgid "This will back up your current settings and replace them with the %1$s preset settings. Do you want to continue?"
msgstr "Dit maakt een back-up van je huidige instellingen en vervangt ze door de vooraf ingestelde %1$s instellingen. Wil je doorgaan?"

#: tpl/presets/standard.tpl.php:116
msgid "Who should use this preset?"
msgstr "Wie moet deze voorinstelling gebruiken?"

#: tpl/presets/standard.tpl.php:91
msgid "Use an official LiteSpeed-designed Preset to configure your site in one click. Try no-risk caching essentials, extreme optimization, or something in between."
msgstr "Gebruik een officieel door LiteSpeed ontworpen voorinstelling om je site in een klik te configureren. Probeer no-risk caching essentials, extreme optimalisatie, of iets daartussenin."

#: tpl/presets/standard.tpl.php:87
msgid "LiteSpeed Cache Standard Presets"
msgstr "LiteSpeed Cache standaardinstellingen"

#: tpl/presets/standard.tpl.php:80
msgid "A Domain Key is required to use this preset. Enables the maximum level of optimizations for improved page speed scores."
msgstr "Een domein sleutel is vereist om deze voorinstelling te gebruiken. Schakelt het maximale niveau van optimalisaties in voor verbeterde pagina snelheidsscores."

#: tpl/presets/standard.tpl.php:79
msgid "This preset almost certainly will require testing and exclusions for some CSS, JS and Lazy Loaded images. Pay special attention to logos, or HTML-based slider images."
msgstr "Deze voorinstelling vereist vrijwel zeker testen en uitsluitingen voor sommige CSS, JS en lazy-loaded afbeeldingen. Let vooral op logo's, of HTML-gebaseerde slider afbeeldingen."

#: tpl/presets/standard.tpl.php:76
msgid "Inline CSS added to Combine"
msgstr "Inline CSS toegevoegd aan Combine"

#: tpl/presets/standard.tpl.php:75
msgid "Inline JS added to Combine"
msgstr "Inline JS toegevoegd aan Combine"

#: tpl/presets/standard.tpl.php:74
msgid "JS Delayed"
msgstr "JS uitgesteld"

#: tpl/presets/standard.tpl.php:73
msgid "Viewport Image Generation"
msgstr "Viewport afbeelding generatie"

#: tpl/presets/standard.tpl.php:72
msgid "Lazy Load for Images"
msgstr "Lazy-load voor afbeeldingen"

#: tpl/presets/standard.tpl.php:71
msgid "Everything in Aggressive, Plus"
msgstr "Alles in Aggressive, Plus"

#: tpl/presets/standard.tpl.php:69
msgid "Extreme"
msgstr "Extreem"

#: tpl/presets/standard.tpl.php:63
msgid "This preset might work out of the box for some websites, but be sure to test! Some CSS or JS exclusions may be necessary in Page Optimization > Tuning."
msgstr "Deze voorinstelling kan out of the box werken voor sommige sites, maar test het zeker! Sommige uitsluitingen van CSS of JS kunnen nodig zijn in Pagina optimalisatie > Fijnafstemming."

#: tpl/presets/standard.tpl.php:60
msgid "Lazy Load for Iframes"
msgstr "Lazy-load voor Iframes"

#: tpl/presets/standard.tpl.php:59
msgid "Removed Unused CSS for Users"
msgstr "Ongebruikte CSS voor gebruikers verwijderd"

#: tpl/presets/standard.tpl.php:58
msgid "Asynchronous CSS Loading with Critical CSS"
msgstr "Asynchroon CSS laden met kritieke CSS"

#: tpl/presets/standard.tpl.php:57
msgid "CSS & JS Combine"
msgstr "CSS & JS combineren"

#: tpl/presets/standard.tpl.php:56
msgid "Everything in Advanced, Plus"
msgstr "Alles in Avanced, Plus"

#: tpl/presets/standard.tpl.php:54
msgid "Aggressive"
msgstr "Agressief"

#: tpl/presets/standard.tpl.php:49 tpl/presets/standard.tpl.php:64
msgid "A Domain Key is required to use this preset. Includes many optimizations known to improve page speed scores."
msgstr "Een domein sleutel is vereist om deze voorinstelling te gebruiken. Bevat veel optimalisaties waarvan bekend is dat ze de pagina snelheidsscores verbeteren."

#: tpl/presets/standard.tpl.php:48
msgid "This preset is good for most websites, and is unlikely to cause conflicts. Any CSS or JS conflicts may be resolved with Page Optimization > Tuning tools."
msgstr "Deze voorinstelling is goed voor de meeste sites, en zal waarschijnlijk geen conflicten veroorzaken. Eventuele CSS of JS conflicten kunnen worden opgelost met Pagina optimalisatie > Tuning gereedschappen."

#: tpl/presets/standard.tpl.php:43
msgid "Remove Query Strings from Static Files"
msgstr "Query strings verwijderen uit statische bestanden"

#: tpl/presets/standard.tpl.php:41
msgid "DNS Prefetch for static files"
msgstr "DNS prefetch voor statische bestanden"

#: tpl/presets/standard.tpl.php:40
msgid "JS Defer for both external and inline JS"
msgstr "JS uitstellen voor zowel externe als inline JS"

#: tpl/presets/standard.tpl.php:38
msgid "CSS, JS and HTML Minification"
msgstr "CSS, JS en HTML verkleining"

#: tpl/presets/standard.tpl.php:37
msgid "Guest Mode and Guest Optimization"
msgstr "Gast modus en gast optimalisatie"

#: tpl/presets/standard.tpl.php:36
msgid "Everything in Basic, Plus"
msgstr "Alles in basis, plus"

#: tpl/presets/standard.tpl.php:34
msgid "Advanced (Recommended)"
msgstr "Gevorderd (aanbevolen)"

#: tpl/presets/standard.tpl.php:29
msgid "A Domain Key is required to use this preset. Includes optimizations known to improve site score in page speed measurement tools."
msgstr "Een domein sleutel is vereist om deze voorinstelling te gebruiken. Bevat optimalisaties waarvan bekend is dat ze de sitescore verbeteren in gereedschappen voor pagina snelheidsmeting."

#: tpl/presets/standard.tpl.php:28
msgid "This low-risk preset introduces basic optimizations for speed and user experience. Appropriate for enthusiastic beginners."
msgstr "Deze voorinstelling met laag risico introduceert basisoptimalisaties voor snelheid en gebruikerservaring. Geschikt voor enthousiaste beginners."

#: tpl/presets/standard.tpl.php:25
msgid "Mobile Cache"
msgstr "Mobiele cache"

#: tpl/presets/standard.tpl.php:23
msgid "Everything in Essentials, Plus"
msgstr "Alles in Essentials, Plus"

#: tpl/presets/standard.tpl.php:16
msgid "A Domain Key is not required to use this preset. Only basic caching features are enabled."
msgstr "Een domein sleutel is niet nodig om deze voorinstelling te gebruiken. Alleen basis caching functies zijn ingeschakeld."

#: tpl/presets/standard.tpl.php:15
msgid "This no-risk preset is appropriate for all websites. Good for new users, simple websites, or cache-oriented development."
msgstr "Deze no-risk voorinstelling is geschikt voor alle sites. Goed voor nieuwe gebruikers, eenvoudige sites, of cache georiënteerde ontwikkeling."

#: tpl/presets/standard.tpl.php:11
msgid "Higher TTL"
msgstr "Hogere TTL"

#: tpl/presets/standard.tpl.php:10
msgid "Default Cache"
msgstr "Standaard cache"

#: tpl/presets/standard.tpl.php:8
msgid "Essentials"
msgstr "Basisbenodigdheden"

#: tpl/presets/entry.tpl.php:14
msgid "LiteSpeed Cache Configuration Presets"
msgstr "LiteSpeed cache configuratie voorinstellingen"

#: tpl/presets/entry.tpl.php:6
msgid "Standard Presets"
msgstr "Standaard voorinstellingen"

#: tpl/page_optm/settings_tuning_css.tpl.php:41
msgid "Listed CSS files will be excluded from UCSS and saved to inline."
msgstr "Opgesomde CSS bestanden worden uitgesloten van UCSS en opgeslagen in inline."

#: src/lang.cls.php:142
msgid "UCSS File Excludes and Inline"
msgstr "UCSS bestand uitsluitingen en inline"

#: src/lang.cls.php:141
msgid "UCSS Selector Allowlist"
msgstr "UCSS selector lijst toegestaan"

#: src/admin-display.cls.php:121
msgid "Presets"
msgstr "Voorinstellingen"

#: tpl/dash/dashboard.tpl.php:169
msgid "Partner Benefits Provided by"
msgstr "Partnervoordelen aangeboden door"

#: tpl/toolbox/log_viewer.tpl.php:93
msgid "LiteSpeed Logs"
msgstr "LiteSpeed logs"

#: tpl/toolbox/log_viewer.tpl.php:21
msgid "Crawler Log"
msgstr "Crawler log"

#: tpl/toolbox/log_viewer.tpl.php:16
msgid "Purge Log"
msgstr "Opschoon log"

#: tpl/toolbox/settings-debug.tpl.php:166
msgid "Prevent writing log entries that include listed strings."
msgstr "Voorkomt het schrijven van logvermeldingen die opgesomde strings bevatten."

#: tpl/toolbox/settings-debug.tpl.php:17
msgid "View Site Before Cache"
msgstr "Bekijk site voor cache"

#: tpl/toolbox/settings-debug.tpl.php:13
msgid "View Site Before Optimization"
msgstr "Bekijk site vóór optimalisatie"

#: tpl/toolbox/settings-debug.tpl.php:9
msgid "Debug Helpers"
msgstr "Debug helpers"

#: tpl/page_optm/settings_vpi.tpl.php:91
msgid "Enable Viewport Images auto generation cron."
msgstr "Viewport afbeeldingen automatisch genereren cron inschakelen."

#: tpl/page_optm/settings_vpi.tpl.php:28
msgid "This enables the page's initial screenful of imagery to be fully displayed without delay."
msgstr "Hierdoor kan het eerste scherm vol afbeeldingmateriaal van de pagina zonder vertraging volledig worden weergegeven."

#: tpl/page_optm/settings_vpi.tpl.php:27
msgid "The Viewport Images service detects which images appear above the fold, and excludes them from lazy load."
msgstr "De dienst Viewport Images detecteert welke afbeeldingen boven de vouw verschijnen, en sluit ze uit van lazy-load."

#: tpl/page_optm/settings_vpi.tpl.php:26
msgid "When you use Lazy Load, it will delay the loading of all images on a page."
msgstr "Als je lazy-load gebruikt, vertraag je het laden van alle afbeeldingen op een pagina."

#: tpl/page_optm/settings_media.tpl.php:246
msgid "Use %1$s to bypass remote image dimension check when %2$s is ON."
msgstr "Gebruik %1$s om de controle van de afbeeldingafmetingen op afstand te omzeilen wanneer %2$s AAN staat."

#: tpl/page_optm/entry.tpl.php:10
msgid "VPI"
msgstr "VPI"

#: tpl/general/settings.tpl.php:189 tpl/page_optm/settings_media.tpl.php:240
#: tpl/page_optm/settings_vpi.tpl.php:32
msgid "%s must be turned ON for this setting to work."
msgstr "%s moet ingeschakeld zijn om deze instelling te laten werken."

#: tpl/general/settings.tpl.php:122
msgid "Main domain not generated yet"
msgstr "Hoofddomein nog niet gegenereerd"

#: tpl/general/settings.tpl.php:119
msgid "Main domain"
msgstr "Hoofddomein"

#: tpl/dash/dashboard.tpl.php:536
msgid "Viewport Image"
msgstr "Viewport afbeelding"

#: tpl/crawler/blacklist.tpl.php:57
msgid "Filter %s available to disable blocklist."
msgstr "Filter %s beschikbaar om blokkeerlijst uit te schakelen."

#: tpl/crawler/blacklist.tpl.php:54
msgid "PHP Constant %s available to disable blocklist."
msgstr "PHP constant %s beschikbaar om blokkeerlijst uit te schakelen."

#: tpl/cdn/entry.tpl.php:7
msgid "QUIC.cloud CDN Setup"
msgstr "QUIC.cloud CDN instelling"

#: tpl/cdn/auto_setup.tpl.php:255
msgid "Are you sure you want to delete QUIC.cloud data?"
msgstr "Weet je zeker dat je QUIC.cloud gegevens wil verwijderen?"

#: tpl/cdn/auto_setup.tpl.php:252
msgid "Are you sure you want to reset CDN Setup?"
msgstr "Weet je zeker dat je CDN instellingen opnieuw wil instellen?"

#: tpl/cdn/auto_setup.tpl.php:248
msgid "If you have not yet done so, please replace the QUIC.cloud nameservers at your domain registrar before proceeding. "
msgstr "Als je dit nog niet hebt gedaan, vervang dan de QUIC.cloud nameservers bij je domein registreerder voordat je verder gaat "

#: tpl/cdn/auto_setup.tpl.php:247
msgid "This action is not available if there is no domain key, the domain is not linked, or the DNS Zone is in active use."
msgstr "Deze actie is niet beschikbaar als er geen domein sleutel is, het domein niet is gekoppeld of de DNS-zone actief in gebruik is."

#: tpl/cdn/auto_setup.tpl.php:243
msgid "This allows you to try Auto CDN setup again, or abandon the setup entirely."
msgstr "Hierdoor kun je de auto CDN instelling opnieuw proberen, of de instelling helemaal afbreken."

#: tpl/cdn/auto_setup.tpl.php:242
msgid "Resets all LiteSpeed Cache plugin settings related to CDN setup back to the initial state and deletes the DNS Zone, if one exists for the domain."
msgstr "Zet alle LiteSpeed Cache plugin instellingen over CDN instelling terug naar de oorspronkelijke staat en verwijdert de DNS zone, als die bestaat voor het domein."

#: tpl/cdn/auto_setup.tpl.php:241 tpl/cdn/auto_setup.tpl.php:256
msgid "Delete QUIC.cloud data"
msgstr "QUIC.cloud gegevens verwijderen"

#: tpl/cdn/auto_setup.tpl.php:236
msgid "This action will not update anything on the QUIC.cloud servers."
msgstr "Deze actie zal niets updaten op de QUIC.cloud servers."

#: tpl/cdn/auto_setup.tpl.php:231
msgid "This allows you to try Auto CDN setup again."
msgstr "Hierdoor kun je Auto CDN instelling opnieuw proberen."

#: tpl/cdn/auto_setup.tpl.php:230
msgid "QUIC.cloud DNS settings are not changed."
msgstr "QUIC.cloud DNS-instellingen worden niet gewijzigd."

#: tpl/cdn/auto_setup.tpl.php:229
msgid "Resets all LiteSpeed Cache plugin settings related to CDN setup back to the initial state and disables the CDN."
msgstr "Zet alle LiteSpeed Cache plugin instellingen over CDN instelling terug naar de oorspronkelijke staat en schakelt de CDN uit."

#: tpl/cdn/auto_setup.tpl.php:228 tpl/cdn/auto_setup.tpl.php:253
msgid "Reset CDN Setup"
msgstr "CDN instelling opnieuw instellen"

#: tpl/cdn/auto_setup.tpl.php:226
msgid "The following actions are available:"
msgstr "De volgende acties zijn beschikbaar:"

#: tpl/cdn/auto_setup.tpl.php:214
msgid "This section will automatically populate once nameservers are configured for the site."
msgstr "Deze sectie wordt automatisch ingevuld zodra de nameservers voor de site zijn geconfigureerd."

#: tpl/cdn/auto_setup.tpl.php:210
msgid "At that stage, you may re-start the verification process by pressing the Run CDN Setup button."
msgstr "In dat stadium kun je het verificatieproces opnieuw starten door op de knop uitvoeren CDN instelling te drukken."

#: tpl/cdn/auto_setup.tpl.php:209
msgid "If it does not verify within 24 hours, the CDN setup will mark the verification as failed."
msgstr "Als de verificatie niet binnen 24 uur plaatsvindt, markeert de CDN instelling de verificatie als mislukt."

#: tpl/cdn/auto_setup.tpl.php:208
msgid "QUIC.cloud will attempt to verify the DNS update."
msgstr "QUIC.cloud zal proberen de DNS update te verifiëren."

#: tpl/cdn/auto_setup.tpl.php:198
msgid "Please update your domain registrar to use these custom nameservers:"
msgstr "Update je domeinregistratie om deze aangepaste nameservers te gebruiken:"

#: tpl/cdn/auto_setup.tpl.php:193
msgid "Nameservers"
msgstr "Nameservers"

#: tpl/cdn/auto_setup.tpl.php:181
msgid "Note: For 15 to 20 minutes after setup completes, browsers may issue a \"not secure\" warning for your site while QUIC.cloud generates your SSL certificate."
msgstr "Opmerking: gedurende 15 tot 20 minuten nadat de instelling is afgerond, kunnen browsers een \"niet veilig\" waarschuwing geven voor je site terwijl QUIC.cloud je SSL-certificaat maakt."

#: tpl/cdn/auto_setup.tpl.php:176
msgid "Review DNS records"
msgstr "Beoordeel DNS records"

#: tpl/cdn/auto_setup.tpl.php:174
msgid "Is something missing?"
msgstr "Ontbreekt er iets?"

#: tpl/cdn/auto_setup.tpl.php:171
msgid "Record names found"
msgstr "Recordnamen gevonden"

#: tpl/cdn/auto_setup.tpl.php:159
msgid "Count"
msgstr "Tellen"

#: tpl/cdn/auto_setup.tpl.php:156
msgid "Record Type"
msgstr "Record type"

#: tpl/cdn/auto_setup.tpl.php:150
msgid "QUIC.cloud Detected Records Summary"
msgstr "QUIC.cloud gedetecteerde records samenvatting"

#: tpl/cdn/auto_setup.tpl.php:136
msgid "CDN Setup Status"
msgstr "CDN instelling status"

#: tpl/cdn/auto_setup.tpl.php:130
msgid "Begin QUIC.cloud CDN Setup"
msgstr "Begin QUIC.cloud CDN instelling"

#: tpl/cdn/auto_setup.tpl.php:129
msgid "Domain key and QUIC.cloud link detected."
msgstr "Domeinsleutel en QUIC.cloud link gedetecteerd."

#: tpl/cdn/auto_setup.tpl.php:127
msgid "Ready to run CDN setup."
msgstr "Klaar voor uitvoeren CDN instelling."

#: tpl/cdn/auto_setup.tpl.php:121
msgid "Manage DNS Zone"
msgstr "Beheer DNS-zone"

#: tpl/cdn/auto_setup.tpl.php:117
msgid "Manage CDN"
msgstr "CDN beheren"

#: tpl/cdn/auto_setup.tpl.php:114
msgid "Account is linked!"
msgstr "Account is gekoppeld!"

#: tpl/cdn/auto_setup.tpl.php:109
msgid "Set up QUIC.cloud Account"
msgstr "Maak een QUIC.cloud account aan"

#: tpl/cdn/auto_setup.tpl.php:104
msgid "Visit your QUIC.cloud dashboard after the DNS Zone is set up to confirm your DNS zone."
msgstr "Bezoek je QUIC.cloud dashboard nadat de DNS zone is ingesteld om je DNS zone te bevestigen."

#: tpl/cdn/auto_setup.tpl.php:103
msgid "If you have custom DNS records, it is possible that they are not detected."
msgstr "Als je aangepaste DNS-records hebt, is het mogelijk dat deze niet worden gedetecteerd."

#: tpl/cdn/auto_setup.tpl.php:102
msgid "QUIC.cloud will detect most normal DNS entries."
msgstr "QUIC.cloud detecteert de meeste normale DNS vermeldingen."

#: tpl/cdn/auto_setup.tpl.php:98
msgid "If you prefer to use the CNAME setup, please <a %s>set up the CDN manually at QUIC.cloud</a>."
msgstr "Als je liever de CNAME instelling gebruikt, stel dan <a %s>het CDN handmatig in bij QUIC.cloud</a>."

#: tpl/cdn/auto_setup.tpl.php:97
msgid "This setup process will create a DNS zone on QUIC.cloud if one does not currently exist."
msgstr "Dit installatieproces maakt een DNS zone aan op QUIC.cloud als deze nog niet bestaat."

#: tpl/cdn/auto_setup.tpl.php:94
msgid "If you have this enabled for your domain, you must disable DNSSEC to continue."
msgstr "Als je dit hebt ingeschakeld voor je domein, moet je DNSSEC uitschakelen om door te gaan."

#: tpl/cdn/auto_setup.tpl.php:93
msgid "QUIC.cloud CDN/DNS does not support DNSSEC."
msgstr "QUIC.cloud CDN/DNS ondersteunt geen DNSSEC."

#: tpl/cdn/auto_setup.tpl.php:85
msgid "After you set your nameservers, QUIC.cloud will detect the change and automatically enable the CDN."
msgstr "Nadat je je nameservers hebt ingesteld, zal QUIC.cloud de verandering detecteren en automatisch het CDN inschakelen."

#: tpl/cdn/auto_setup.tpl.php:80
msgid "Your site will be available, but browsers may issue a \"not secure\" warning during this time."
msgstr "Je site zal beschikbaar zijn, maar browsers kunnen gedurende deze tijd een waarschuwing \"niet beveiligd\" geven."

#: tpl/cdn/auto_setup.tpl.php:79
msgid "This last stage could take 15 to 20 minutes."
msgstr "Deze laatste fase kan 15 tot 20 minuten duren."

#: tpl/cdn/auto_setup.tpl.php:78
msgid "After successful DNS detection, QUIC.cloud will attempt to generate an SSL certificate and enable the CDN."
msgstr "Na succesvolle DNS detectie zal QUIC.cloud proberen een SSL-certificaat te maken en het CDN in te schakelen."

#: tpl/cdn/auto_setup.tpl.php:76
msgid "Provide the nameservers necessary to enable the CDN."
msgstr "Geef de nameservers die nodig zijn om het CDN in te schakelen."

#: tpl/cdn/auto_setup.tpl.php:75
msgid "Prepare the site for QUIC.cloud CDN, detect the DNS, and create a DNS Zone."
msgstr "Bereid de site voor op QUIC.cloud CDN, detecteer de DNS en maak een DNS zone aan."

#: tpl/cdn/auto_setup.tpl.php:74
msgid "Set up a QUIC.cloud account."
msgstr "Maak een QUIC.cloud account aan."

#: tpl/cdn/auto_setup.tpl.php:71
msgid "This is a three step process for configuring your site to use QUIC.cloud CDN with QUIC.cloud DNS. This setup will perform the following actions"
msgstr "Dit is een proces in drie stappen voor het configureren van je site om QUIC.cloud CDN met QUIC.cloud DNS te gebruiken. Deze instelling voert de volgende acties uit"

#: tpl/cdn/auto_setup.tpl.php:68
msgid "Auto QUIC.cloud CDN Setup"
msgstr "Automatische QUIC.cloud CDN instelling"

#: tpl/cdn/auto_setup.tpl.php:62
msgid "Refresh CDN Setup Status"
msgstr "CDN instellings status vernieuwen"

#: tpl/cdn/auto_setup.tpl.php:60
msgid "This process may take several minutes."
msgstr "Dit proces kan enkele minuten duren."

#: tpl/cdn/auto_setup.tpl.php:60
msgid "You will receive an email upon status update."
msgstr "Je ontvangt een e-mail als de status is geüpdatet."

#: tpl/cdn/auto_setup.tpl.php:59
msgid "In Progress"
msgstr "In uitvoering"

#: tpl/cdn/auto_setup.tpl.php:56
msgid "Last Verification Result"
msgstr "Laatste verificatieresultaat"

#: tpl/cdn/auto_setup.tpl.php:54
msgid "Click the refresh button below to refresh status."
msgstr "Klik op de verversingsknop hieronder om de status te verversen."

#: tpl/cdn/auto_setup.tpl.php:54
msgid "Verifying, waiting for nameservers to be updated."
msgstr "Verifiëren, wachten tot de nameservers zijn geüpdatet."

#: tpl/cdn/auto_setup.tpl.php:50
msgid "Paused"
msgstr "Gepauzeerd"

#: tpl/cdn/auto_setup.tpl.php:44
msgid "Completed at %s"
msgstr "Voltooid op %s"

#: tpl/cdn/auto_setup.tpl.php:42
msgid "Done"
msgstr "Gedaan"

#: tpl/cdn/auto_setup.tpl.php:35
msgid "Run CDN Setup"
msgstr "Draai CDN setup"

#: tpl/cdn/auto_setup.tpl.php:34
msgid "Not running"
msgstr "Draait niet"

#: thirdparty/litespeed-check.cls.php:111
msgid "Please consider disabling the following detected plugins, as they may conflict with LiteSpeed Cache:"
msgstr "Overweeg het uitschakelen van de volgende gedetecteerde plugins, omdat ze kunnen botsen met LiteSpeed Cache:"

#: src/metabox.cls.php:59
msgid "LiteSpeed Options"
msgstr "LiteSpeed opties"

#: src/metabox.cls.php:32
msgid "Mobile"
msgstr "Mobiel"

#: src/metabox.cls.php:30
msgid "Disable VPI"
msgstr "VPI uitschakelen"

#: src/metabox.cls.php:29
msgid "Disable Image Lazyload"
msgstr "Uitschakelen afbeelding lazy-load"

#: src/metabox.cls.php:28
msgid "Disable Cache"
msgstr "Cache uitschakelen"

#: src/lang.cls.php:266
msgid "Debug String Excludes"
msgstr "Debug string uitsluitingen"

#: src/lang.cls.php:199
msgid "Viewport Images Cron"
msgstr "Viewport afbeeldingen cron"

#: src/lang.cls.php:198 src/metabox.cls.php:31 src/metabox.cls.php:32
#: tpl/page_optm/settings_vpi.tpl.php:12
msgid "Viewport Images"
msgstr "Viewport afbeeldingen"

#: src/lang.cls.php:52
msgid "Alias is in use by another QUIC.cloud account."
msgstr "Alias is in gebruik door een andere QUIC.cloud account."

#: src/lang.cls.php:51
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain."
msgstr "Kan niet automatisch %1$s toevoegen als domein alias voor hoofddomein %2$s."

#: src/lang.cls.php:48
msgid "Unable to automatically add %1$s as a Domain Alias for main %2$s domain, due to potential CDN conflict."
msgstr "Kan niet automatisch %1$s toevoegen als domein alias voor hoofddomein %2$s, vanwege potentieel CDN conflict."

#: src/error.cls.php:177
msgid "You cannot remove this DNS zone, because it is still in use. Please update the domain's nameservers, then try to delete this zone again, otherwise your site will become inaccessible."
msgstr "Je kunt deze DNS zone niet verwijderen, omdat deze nog in gebruik is. Update de domein nameservers en probeer dan deze zone weer te verwijderen, anders wordt je site ontoegankelijk."

#: src/error.cls.php:84
msgid "The site is not a valid alias on QUIC.cloud."
msgstr "De site is geen geldige alias op QUIC.cloud."

#: src/cloud.cls.php:1066
msgid "Cloud REST API returned error: "
msgstr "Cloud REST API gaf een foutmelding: "

#: src/cloud.cls.php:1040
msgid "Cloud REST Error"
msgstr "Cloud REST fout"

#: src/cloud.cls.php:1014
msgid "Cannot request REST API, no token saved."
msgstr "Kan REST API niet aanvragen, geen token opgeslagen."

#: src/cdn-setup.cls.php:202
msgid "CDN Setup Token reset. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately."
msgstr "CDN instelling token opnieuw instellen. Opmerking: als het verwijderen van een my.quic.cloud account gewenst is, bestaat dat account nog steeds en moet het apart worden verwijderd."

#: src/cdn-setup.cls.php:200
msgid "CDN Setup Token and DNS zone deleted. Note: if my.quic.cloud account deletion is desired, that the account still exists and must be deleted separately."
msgstr "CDN instelling token en DNS zone verwijderd. Opmerking: als een my.quic.cloud account moet worden verwijderd, bestaat dat account nog steeds en moet het apart worden verwijderd."

#: src/cdn-setup.cls.php:167
msgid "Cannot delete, site is not linked."
msgstr "Kan niet verwijderen, site is niet gelinkt."

#: src/cdn-setup.cls.php:164
msgid "Notice: CDN Setup only reset locally."
msgstr "Let op: CDN Setup wordt alleen lokaal gereset."

#: src/cdn-setup.cls.php:132
msgid "CDN Setup is running."
msgstr "CDN Setup wordt uitgevoerd."

#: src/cdn-setup.cls.php:112
msgid "Congratulations, QUIC.cloud successfully set this domain up for the CDN. Please update your nameservers to:"
msgstr "Gefeliciteerd, QUIC.cloud heeft dit domein succesvol ingesteld voor het CDN. Update je nameservers naar:"

#: src/cdn-setup.cls.php:63
msgid "There was an error during CDN setup: "
msgstr "Er is een fout opgetreden tijdens de CDN installatie: "

#: src/cdn-setup.cls.php:58
msgid "Received invalid message from the cloud server. Please submit a ticket."
msgstr "Ongeldig bericht ontvangen van de cloud server. Dien een ticket in."

#: tpl/page_optm/settings_localization.tpl.php:131
msgid "Please thoroughly test each JS file you add to ensure it functions as expected."
msgstr "Test elk JS-bestand dat je toevoegt grondig om er zeker van te zijn dat het werkt zoals verwacht."

#: tpl/page_optm/settings_localization.tpl.php:98
msgid "Please thoroughly test all items in %s to ensure they function as expected."
msgstr "Test alle items in %s grondig om er zeker van te zijn dat ze werken zoals verwacht."

#: tpl/page_optm/settings_tuning_css.tpl.php:88
msgid "Use %1$s to bypass UCSS for the pages which page type is %2$s."
msgstr "Gebruik %1$s om UCSS te omzeilen voor de pagina's waarvan het paginatype %2$s is."

#: tpl/page_optm/settings_tuning_css.tpl.php:87
msgid "Use %1$s to generate one single UCSS for the pages which page type is %2$s while other page types still per URL."
msgstr "Gebruik %1$s om één enkele UCSS te genereren voor de pagina's welk paginatype %2$s is terwijl andere paginatypen nog steeds per URL zijn."

#: tpl/page_optm/settings_css.tpl.php:77
msgid "Filter %s available for UCSS per page type generation."
msgstr "Filter %s beschikbaar voor UCSS per paginatype generatie."

#: tpl/general/settings_inc.guest.tpl.php:35
#: tpl/general/settings_inc.guest.tpl.php:38
msgid "Guest Mode failed to test."
msgstr "Gastmodus kan niet worden getest."

#: tpl/general/settings_inc.guest.tpl.php:32
msgid "Guest Mode passed testing."
msgstr "Gastmodus is geslaagd voor testen."

#: tpl/general/settings_inc.guest.tpl.php:25
msgid "Testing"
msgstr "Testing"

#: tpl/general/settings_inc.guest.tpl.php:24
msgid "Guest Mode testing result"
msgstr "Testresultaat gastmodus"

#: tpl/crawler/blacklist.tpl.php:60
msgid "Not blocklisted"
msgstr "Niet op blokkeerlijst geplaatst"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Learn more about when this is needed"
msgstr "Meer informatie over wanneer dit nodig is"

#: src/purge.cls.php:334
msgid "Cleaned all localized resource entries."
msgstr "Alle gelokaliseerde bronvermeldingen opgeschoond."

#: tpl/dash/dashboard.tpl.php:602
msgid "<b>Last crawled:</b> %d item(s)"
msgstr "<b>Laatst gecrawld:</b> %d item(s)"

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr "Bekijk .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "Je kunt deze code %1$s gebruiken in %2$s om het htaccess bestandspad aan te geven."

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr "PHP Constant %s wordt ondersteund."

#: tpl/toolbox/edit_htaccess.tpl.php:52 tpl/toolbox/edit_htaccess.tpl.php:69
msgid "Default path is"
msgstr "Standaard pad is"

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr ".htaccess pad"

#: tpl/general/settings.tpl.php:166
msgid "Please read all warnings before enabling this option."
msgstr "Lees alle waarschuwingen voordat je deze optie inschakelt."

#: tpl/toolbox/purge.tpl.php:80
msgid "This will delete all generated unique CSS files"
msgstr "Dit zal alle gegenereerde unieke CSS bestanden verwijderen"

#: tpl/toolbox/beta_test.tpl.php:59
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "Om fouten bij een upgrade te voorkomen, moet je %1$s of hoger gebruiken voordat je kunt upgraden naar %2$s-versies."

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Use latest GitHub Dev/Master commit"
msgstr "Laatste GitHub dev/master commit gebruiken"

#: tpl/toolbox/beta_test.tpl.php:53
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Druk op de %s knop om de meest recente GitHub commit te gebruiken. Master is voor release kandidaat & Dev is voor experimenteel testen."

#: tpl/toolbox/beta_test.tpl.php:49
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "Downgraden wordt niet aanbevolen. Kan fatale fout veroorzaken door geüpdatete code."

#: tpl/page_optm/settings_tuning.tpl.php:135
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Optimaliseer alleen pagina's voor gast (niet ingelogde) bezoekers. Als dit UIT staat, worden CSS/JS/CCSS-bestanden verdubbeld voor elke gebruikersgroep."

#: tpl/page_optm/settings_tuning.tpl.php:97
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Opgesomde JS bestanden of inline JS code worden door %s niet geoptimaliseerd."

#: tpl/page_optm/settings_tuning_css.tpl.php:80
msgid "Listed URI will not generate UCSS."
msgstr "In de lijst opgenomen URI zal geen UCSS genereren."

#: tpl/page_optm/settings_tuning_css.tpl.php:62
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "De selector moet in de CSS bestaan. Hoofd klassen in de HTML werken niet."

#: tpl/page_optm/settings_tuning_css.tpl.php:58
msgid "Wildcard %s supported."
msgstr "Wildcard %s wordt ondersteund."

#: tpl/page_optm/settings_tuning_css.tpl.php:57
msgid "How to choose an UCSS allowlist selector?"
msgstr "Hoe kies ik een UCSS toegestane lijst selector?"

#: tpl/page_optm/settings_media_exc.tpl.php:24
msgid "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr "Nuttig voor boven-de-vouw afbeeldingen die CLS veroorzaken (een core web vitals metriek)."

#: tpl/page_optm/settings_media.tpl.php:235
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Stel een expliciete breedte en hoogte in op afbeelding elementen om lay-out verschuivingen te verminderen en CLS (een core web vitals meting) te verbeteren."

#: tpl/page_optm/settings_media.tpl.php:131
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr "Veranderingen aan deze instelling gelden niet voor reeds gegenereerde LQIP's. Om bestaande LQIP's te regenereren, ga je eerst naar %s uit het beheerdersbalk menu."

#: tpl/page_optm/settings_js.tpl.php:71
msgid "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."
msgstr "Uitstellen tot de pagina geparsed is of uitstellen tot de interactie kan helpen om de contentie van gegevensbron te verminderen en de prestaties te verbeteren, wat een lagere FID (core web vitals metric) veroorzaakt."

#: tpl/page_optm/settings_js.tpl.php:69
msgid "Delayed"
msgstr "Vertraagd"

#: tpl/page_optm/settings_js.tpl.php:44
msgid "JS error can be found from the developer console of browser by right clicking and choosing Inspect."
msgstr "JS fout kun je vinden in de ontwikkelaar console van de browser door met rechts te klikken en Inspecteer te kiezen."

#: tpl/page_optm/settings_js.tpl.php:43 tpl/page_optm/settings_js.tpl.php:77
msgid "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."
msgstr "Deze optie kan bij bepaalde thema's/plugins een JS fout of lay-out probleem opleveren op frontend pagina's."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "This will also add a preconnect to Google Fonts to establish a connection earlier."
msgstr "Dit voegt tevens een 'preconnect' voor Google Fonts toe om eerder een verbinding te maken."

#: tpl/page_optm/settings_html.tpl.php:64
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr "Vertraag het renderen van buiten-het-scherm HTML elementen door zijn selector."

#: tpl/page_optm/settings_css.tpl.php:262
msgid "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."
msgstr "Schakel deze optie uit om CCSS per berichttype te genereren in plaats van per pagina. Dit kan aanzienlijke CCSS quota's besparen, maar het kan resulteren in onjuiste CSS styling als je site een pagina bouwer gebruikt."

#: tpl/page_optm/settings_css.tpl.php:199
msgid "This option is bypassed due to %s option."
msgstr "Deze optie wordt omzeild door de optie %s."

#: tpl/page_optm/settings_css.tpl.php:193
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr "Elementen in de HTML code met attribuut %s worden uitgesloten."

#: tpl/page_optm/settings_css.tpl.php:186
msgid "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."
msgstr "Online service QUIC.cloud gebruiken om kritieke CSS te genereren en overige CSS asynchroon te laden."

#: tpl/page_optm/settings_css.tpl.php:150
msgid "This option will automatically bypass %s option."
msgstr "Deze optie omzeilt automatisch de optie %s."

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."
msgstr "Inline UCSS om het extra laden van CSS bestanden te verminderen. Deze optie wordt niet automatisch ingeschakeld voor %1$s pagina's. Om het op %1$s pagina's te gebruiken, zet je het op ON."

#: tpl/page_optm/settings_css.tpl.php:129
#: tpl/page_optm/settings_css.tpl.php:246 tpl/page_optm/settings_vpi.tpl.php:74
msgid "Run %s Queue Manually"
msgstr "Start %s wachtrij handmatig"

#: tpl/page_optm/settings_css.tpl.php:82
msgid "This option is bypassed because %1$s option is %2$s."
msgstr "Deze optie wordt omzeild omdat %1$s optie is %2$s."

#: tpl/page_optm/settings_css.tpl.php:75
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr "Het automatisch genereren van unieke CSS gebeurt in de achtergrond via een cron-gebaseerde wachtrij."

#: tpl/page_optm/settings_css.tpl.php:73
msgid "This will drop the unused CSS on each page from the combined file."
msgstr "Hierdoor worden de ongebruikte stijlregels op elke pagina uit het gecombineerde CSS-bestand achterwege gelaten."

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr "HTML Instellingen"

#: tpl/inc/in_upgrading.php:5
msgid "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."
msgstr "LiteSpeed cache plugin opgewaardeerd. Vernieuw de pagina om de upgrade van de configuratiegegevens te voltooien."

#: tpl/general/settings_tuning.tpl.php:51
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr "IP's op de lijst worden beschouwd als bezoekers in de gastmodus."

#: tpl/general/settings_tuning.tpl.php:29
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr "In de lijst opgenomen gebruikersagenten worden beschouwd als bezoekers in de gastmodus."

#: tpl/general/settings.tpl.php:181
msgid "Your %1s quota on %2s will still be in use."
msgstr "Je %1s quota op %2s zal nog steeds in gebruik zijn."

#: tpl/general/settings_inc.guest.tpl.php:17
msgid "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."
msgstr "Deze optie kan helpen om de cache variërend te corrigeren voor bepaalde gevorderde mobiele of tablet bezoekers."

#: tpl/general/settings_inc.guest.tpl.php:16
msgid "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr "Gast modus biedt een altijd cachebare landingspagina voor het eerste bezoek van een geautomatiseerde gast en poogt deze dan via AJAX te updaten naar de toepasselijke cache variant."

#: tpl/general/settings.tpl.php:221
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr "Zorg ervoor dat dit het juiste IP-adres is om je site te bezoeken."

#: tpl/general/settings.tpl.php:220
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server."
msgstr "het automatisch gedetecteerde IP kan niet juist zijn als je een extra uitgaand IP ingesteld hebt, of als je meerdere IP's op je server ingesteld hebt."

#: tpl/general/settings.tpl.php:203
msgid "You need to turn %s on and finish all WebP generation to get maximum result."
msgstr "Je moet %s aanzetten en alle WebP generatie afmaken om maximaal resultaat te krijgen."

#: tpl/general/settings.tpl.php:196
msgid "You need to turn %s on to get maximum result."
msgstr "Je moet %s aanzetten om maximaal resultaat te krijgen."

#: tpl/general/settings.tpl.php:165
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr "Met deze optie schakel je maximale optimalisatie in voor gastmodus."

#: tpl/dash/dashboard.tpl.php:333 tpl/dash/dashboard.tpl.php:413
#: tpl/dash/dashboard.tpl.php:441 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:505 tpl/dash/dashboard.tpl.php:537
#: tpl/dash/dashboard.tpl.php:569
msgid "More"
msgstr "Meer"

#: tpl/dash/dashboard.tpl.php:158
msgid "Remaining Daily Quota"
msgstr "Overblijvend dagelijks quotum"

#: tpl/crawler/summary.tpl.php:189
msgid "Successfully Crawled"
msgstr "Met succes gecrawld"

#: tpl/crawler/summary.tpl.php:188
msgid "Already Cached"
msgstr "Reeds in cache opgenomen"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "De crawler gebruikt je XML sitemap of sitemap index. Voer hier de volledige URL van je sitemap in."

#: tpl/cdn/settings.tpl.php:214
msgid "Optional when API token used."
msgstr "Facultatief bij gebruik van een API token."

#: tpl/cdn/settings.tpl.php:204
msgid "Recommended to generate the token from Cloudflare API token template \"WordPress\"."
msgstr "Aanbevolen wordt om het token te genereren uit het Cloudflare API token template \"WordPress\"."

#: tpl/cdn/settings.tpl.php:198
msgid "Global API Key / API Token"
msgstr "Globale API sleutel/API token"

#: tpl/cdn/settings.tpl.php:194
msgid "This can be managed from %1$s%2$s tab."
msgstr "Dit kan beheerd worden via %1$s%2$s tab."

#: tpl/cdn/settings.tpl.php:54
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s."
msgstr "OPMERKING: QUIC.cloud CDN en Cloudflare maken geen gebruik van CDN Mapping. Als je alleen één van deze twee gebruikt, laat deze instelling dan %1$s."

#: tpl/cdn/settings.tpl.php:49
msgid "Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN."
msgstr "Zet deze instelling op %1$s als je een traditioneel Content Delivery Network (CDN) gebruikt of een subdomein voor statische inhoud met QUIC.cloud CDN."

#: tpl/cache/settings_inc.object.tpl.php:42
msgid "Use external object cache functionality."
msgstr "Gebruik externe object cache functionaliteit."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Serve a separate cache copy for mobile visitors."
msgstr "Serveer een aparte cache kopie voor mobiele bezoekers."

#: thirdparty/woocommerce.content.tpl.php:24
msgid "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."
msgstr "Standaard worden de pagina's Mijn account, Afrekenen en Winkelwagen pagina's automatisch uitgesloten van caching. Verkeerd geconfigureerde pagina associaties in WooCommerce instellingen kunnen sommige pagina's abusievelijk uitsluiten."

#: src/purge.cls.php:262
msgid "Cleaned all Unique CSS files."
msgstr "Opgeschoond alle Unieke CSS bestanden."

#: src/lang.cls.php:197
msgid "Add Missing Sizes"
msgstr "Ontbrekende afmetingen toevoegen"

#: src/lang.cls.php:172
msgid "Optimize for Guests Only"
msgstr "Alleen voor gastbezoekers optimaliseren"

#: src/lang.cls.php:168
msgid "Guest Mode JS Excludes"
msgstr "Gastmodus JS uitsluitingen"

#: src/lang.cls.php:150
msgid "CCSS Per URL"
msgstr "CCSS per URL"

#: src/lang.cls.php:148
msgid "HTML Lazy Load Selectors"
msgstr "HTML lazy-load selectoren"

#: src/lang.cls.php:143
msgid "UCSS URI Excludes"
msgstr "UCSS URI uitsluitingen"

#: src/lang.cls.php:140
msgid "UCSS Inline"
msgstr "UCSS Inline"

#: src/lang.cls.php:98
msgid "Guest Optimization"
msgstr "Gast optimalisatie"

#: src/lang.cls.php:97
msgid "Guest Mode"
msgstr "Gast modus"

#: src/lang.cls.php:85
msgid "Guest Mode IPs"
msgstr "Gastmodus IP's"

#: src/lang.cls.php:84
msgid "Guest Mode User Agents"
msgstr "Gast modus user agents"

#: src/error.cls.php:100
msgid "Online node needs to be redetected."
msgstr "De online node moet opnieuw opgespoord worden."

#: src/error.cls.php:96
msgid "The current server is under heavy load."
msgstr "De huidige server wordt zwaar belast."

#: src/error.cls.php:52
msgid "You don't have enough daily quota left for current service today."
msgstr "Je hebt niet genoeg dagelijkse quota over voor de huidige dienst vandaag."

#: src/doc.cls.php:57
msgid "Please see %s for more details."
msgstr "Zie %s voor meer details."

#: src/doc.cls.php:44
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr "Deze instelling zal de crawler lijst regenereren en de uitgeschakelde lijst wissen!"

#: src/gui.cls.php:78
msgid "%1$s %2$s files left in queue"
msgstr "Nog %1$s %2$s bestanden in wachtrij"

#: src/crawler.cls.php:133
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr "De lijst met uitgeschakelde crawlers is gewist! Alle crawlers zijn op actief gezet! "

#: src/cloud.cls.php:775
msgid "Redetected node"
msgstr "Opnieuw ontdekte node"

#: src/cloud.cls.php:477
msgid "No available Cloud Node after checked server load."
msgstr "Geen beschikbare Cloud Node na gecontroleerde serverbelasting."

#: src/lang.cls.php:155
msgid "Localization Files"
msgstr "Lokalisatie bestanden"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Opgeschoond!"

#: tpl/page_optm/settings_localization.tpl.php:120
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "De hier vermelde bronnen worden gekopieerd en vervangen door lokale URL's."

#: tpl/toolbox/beta_test.tpl.php:36
msgid "Use latest GitHub Master commit"
msgstr "Gebruik de laatste GitHub master commit"

#: tpl/toolbox/beta_test.tpl.php:34
msgid "Use latest GitHub Dev commit"
msgstr "Gebruik de laatste GiHub dev commit"

#: src/crawler-map.cls.php:329
msgid "No valid sitemap parsed for crawler."
msgstr "Geen geldige sitemap geparsed voor crawler."

#: src/lang.cls.php:138
msgid "CSS Combine External and Inline"
msgstr "CSS Combineer extern en inline"

#: tpl/page_optm/settings_css.tpl.php:164
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Neem externe CSS en inline CSS op in een gecombineerd bestand als %1$s ook is ingeschakeld. Deze optie helpt bij het behouden van de prioriteiten in de CSS uitvoering, wat potentiële fouten zou moeten minimaliseren veroorzaakt door het bundelen van CSS."

#: tpl/page_optm/settings_css.tpl.php:36
msgid "Minify CSS files and inline CSS code."
msgstr "Verklein CSS bestanden en inline CSS code."

#: tpl/page_optm/settings_tuning.tpl.php:62
#: tpl/page_optm/settings_tuning.tpl.php:83
#: tpl/page_optm/settings_tuning_css.tpl.php:27
#: tpl/page_optm/settings_tuning_css.tpl.php:66
msgid "Predefined list will also be combined w/ the above settings"
msgstr "Vooraf gedefinieerde lijst wordt ook gecombineerd met de bovenstaande instellingen"

#: tpl/page_optm/entry.tpl.php:12
msgid "Localization"
msgstr "Lokalisatie"

#: tpl/page_optm/settings_js.tpl.php:58
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Neem externe JS en inline JS op in een gecombineerd bestand als %1$s ook is ingeschakeld. Deze optie helpt bij het behouden van de prioriteiten in de JS uitvoering, wat potentiële fouten zou moeten minimaliseren veroorzaakt door het bundelen van JS."

#: tpl/page_optm/settings_js.tpl.php:39
msgid "Combine all local JS files into a single file."
msgstr "Bundel alle lokale JS bestanden in een bestand."

#: tpl/page_optm/settings_tuning.tpl.php:76
msgid "Listed JS files or inline JS code will not be deferred or delayed."
msgstr "Laden van vermelde JS bestanden of inline JS code wordt niet afgewezen of uitgesteld."

#: tpl/general/settings.tpl.php:97
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Aanvraag ingediend. Wacht even en vernieuw dan de pagina om het goedkeurings bericht te zien."

#: src/data.upgrade.func.php:119
msgid "Click here to settings"
msgstr "Klik om hier om naar instellingen te gaan"

#: src/data.upgrade.func.php:118
msgid "JS Defer"
msgstr "JS Uitstel"

#: src/data.upgrade.func.php:118
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed ​​Cache is succesvol geüpgraded. OPMERKING: vanwege wijzigingen in deze versie zijn de instellingen %1$s en %2$s UITGESCHAKELD. Schakel ze handmatig weer in en controleer of je site lay-out correct is en of je geen JS fouten hebt."

#: src/lang.cls.php:146
msgid "JS Combine External and Inline"
msgstr "JS Combineer extern en inline"

#: src/admin-display.cls.php:503
msgid "Dismiss"
msgstr "Negeer"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "Het nieuwste gegevensbestand is"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "De lijst wordt samengevoegd met de vooraf gedefinieerde nonces in je lokale gegevensbestand."

#: tpl/page_optm/settings_css.tpl.php:50
msgid "Combine CSS files and inline CSS code."
msgstr "Combineer CSS bestanden en inline CSS code."

#: tpl/page_optm/settings_js.tpl.php:25
msgid "Minify JS files and inline JS codes."
msgstr "Verklein JS bestanden en inline JS code."

#: tpl/page_optm/settings_tuning.tpl.php:54
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Vermelde JS bestanden of inline JS code worden niet verkleind/gecombineerd."

#: tpl/page_optm/settings_tuning_css.tpl.php:20
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Vermelde CSS bestanden of inline CSS code worden niet verkleind/gecombineerd."

#: src/admin-display.cls.php:998
msgid "This setting is overwritten by the Network setting"
msgstr "Deze instelling wordt overschreven door de netwerk instelling"

#: src/lang.cls.php:186
msgid "LQIP Excludes"
msgstr "LQIP uitsluitingen"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "Deze afbeeldingen zullen geen LQIP genereren."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Weet je zeker dat je alle instellingen wil terugzetten naar de standaardinstellingen?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "Met deze optie worden alle %s tags uit HTML verwijderd."

#: tpl/general/settings.tpl.php:130
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Weet je zeker dat je alle cloud knooppunten wil wissen?"

#: src/lang.cls.php:170 tpl/presets/standard.tpl.php:45
msgid "Remove Noscript Tags"
msgstr "Verwijder Noscript tags"

#: src/error.cls.php:88
msgid "The site is not registered on QUIC.cloud."
msgstr "Site is niet geregistreerd op QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Klik hier om te wijzigen."

#: src/cloud.cls.php:946 src/error.cls.php:48
msgid "Click here to set."
msgstr "Klik hier om in te stellen."

#: src/cloud.cls.php:945
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site niet herkend. Domeinsleutel is automatisch verwijderd. Vraag een nieuwe aan."

#: src/lang.cls.php:154
msgid "Localize Resources"
msgstr "Lokaliseer bronnen"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Aangepaste headers instellen"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all localized resources"
msgstr "Hiermee worden alle gelokaliseerde bronnen verwijderd"

#: src/gui.cls.php:536 src/gui.cls.php:696 tpl/toolbox/purge.tpl.php:88
msgid "Localized Resources"
msgstr "Gelokaliseerde bronnen"

#: tpl/page_optm/settings_localization.tpl.php:125
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Reacties worden ondersteund. Begin een regel met een %s om er een reactie regel van te maken."

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "HTTPS sources only."
msgstr "Enkel HTTPS bronnen."

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Lokaliseer externe bronnen."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Lokalisatie-instellingen"

#: tpl/page_optm/settings_tuning_css.tpl.php:56
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Maak een lijst van de CSS-kiezer waarvan de stijl altijd in UCSS moet staan."

#: tpl/page_optm/settings_css.tpl.php:72
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "QUIC.cloud online dienst gebruiken om unieke CSS te genereren."

#: src/lang.cls.php:139
msgid "Generate UCSS"
msgstr "Genereer UCSS"

#: tpl/dash/dashboard.tpl.php:472 tpl/toolbox/purge.tpl.php:79
msgid "Unique CSS"
msgstr "Unieke CSS"

#: tpl/toolbox/purge.tpl.php:116
msgid "Purge the cache entries created by this plugin except for Critical CSS & Unique CSS & LQIP caches"
msgstr "Schoon de cache items op gemaakt door deze plugin, behalve voor kritieke CSS & unieke CSS & LQIP caches"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "LiteSpeed rapport"

#: tpl/img_optm/summary.tpl.php:182
msgid "Image Thumbnail Group Sizes"
msgstr "Afbeelding thumbnail groep-groottes"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Negeer bepaalde query strings bij het cachen (LSWS %s vereist)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "Bij URLs die wildcards bevatten, kan de start van een geplande opschoning ietwat vertraagd worden."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Deze instelling kan het vertonen van verlopen inhoud tot gevolg hebben. Als je dat niet wilt, activeer deze instelling dan niet."

#: src/lang.cls.php:126
msgid "Serve Stale"
msgstr "Serveer verlopen content"

#: src/admin-display.cls.php:995
msgid "This setting is overwritten by the primary site setting"
msgstr "Deze instelling wordt overschreven door de primaire instelling op je site"

#: src/img-optm.cls.php:933
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Een of meer getrokken afbeeldingen komen niet overeen met de gemelde afbeelding md5"

#: src/img-optm.cls.php:919
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Sommige geoptimaliseerde afbeeldingsbestanden zijn verlopen en gewist."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "Je hebt te veel aangemelde afbeeldingen. Trek eerst de aangemelde afbeeldingen naar beneden."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Je hebt te veel afbeeldingen aangevraagd, probeer het over een paar minuten nog eens."

#: src/img-optm.cls.php:988
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "Pulled WebP-afbeelding md5 komt niet overeen met de aangemelde WebP-afbeelding md5."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Lees meer in de LiteSpeed documentatie"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "Er is een wachtrij die nog niet opgehaald is. Wachtrij info: %s."

#: src/lang.cls.php:255
msgid "Sitemap Timeout"
msgstr "Sitemap timeout"

#: tpl/crawler/settings-sitemap.tpl.php:50
msgid "Specify the timeout while parsing the sitemap."
msgstr "Geef aan (in seconden) hoe lang het verwerken van de sitemap maximaal mag duren."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Geef op hoe lang Gravatars in de cache moeten worden bewaard (in seconden)."

#: tpl/general/settings.tpl.php:115
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Om QUIC.cloud diensten te kunnen gebruiken, heb je een Domain Key nodig."

#: src/img-optm.cls.php:576
msgid "Cleared %1$s invalid images."
msgstr "%1$s ongeldige afbeeldingen opgeruimd."

#: tpl/general/settings.tpl.php:18
msgid "Request Domain Key"
msgstr "Vraag domein sleutel aan"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "Algemene instellingen LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:107
msgid "This will delete all cached Gravatar files"
msgstr "Hiermee verwijder je alle Gravatars in de cache"

#: tpl/toolbox/settings-debug.tpl.php:152
msgid "Prevent any debug log of listed pages."
msgstr "Voorkomt dat opgegeven pagina's bij debuggen in log worden opgenomen."

#: tpl/toolbox/settings-debug.tpl.php:138
msgid "Only log listed pages."
msgstr "Log alleen de opgegeven pagina's."

#: tpl/toolbox/settings-debug.tpl.php:97
msgid "Specify the maximum size of the log file."
msgstr "Geef de maximale omvang op van het logbestand."

#: tpl/toolbox/settings-debug.tpl.php:49
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Als je site goed werkt zou deze instelling UIT moeten staan om te voorkomen dat de schijfopslag vol loopt."

#: tpl/toolbox/beta_test.tpl.php:54
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Druk op de %s knop om het beta testen te stoppen en terug te gaan naar de huidige versie van de WordPress plugin directory."

#: tpl/toolbox/beta_test.tpl.php:38 tpl/toolbox/beta_test.tpl.php:54
msgid "Use latest WordPress release version"
msgstr "Gebruik laatste versie WordPress"

#: tpl/toolbox/beta_test.tpl.php:38
msgid "OR"
msgstr "OF"

#: tpl/toolbox/beta_test.tpl.php:29
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "In deze sectie kun je een andere versie van de plugin kiezen. Om een versie vanaf GitHub te testen, moet je hieronder de URL invoeren."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Reset instellingen"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "LiteSpeed Cache toolbox"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Beta testen"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Bekijk log"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:22
msgid "Debug Settings"
msgstr "Debug instellingen"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Zet AAN om de 'heartbeat' te beheren voor de backend editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "Een geldig interval in WordPress is %s seconden"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Zet AAN om de 'heartbeat' voor beheer-pagina's in te stellen."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Stel in op %1$s om 'heartbeat' uit zetten op %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "Een geldig interval in WordPress is %s seconden."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Geef de %s heartbeat interval op in seconden."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Zet AAN om de 'heartbeat' voor de frontend te beheren."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Zet de WordPress 'heartbeat' uit om je server minder te belasten."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Heartbeat instellen"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "geef hier meer informatie, die het LiteSpeed team kan helpen bij de foutopsporing."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Optioneel"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Genereer link voor huidige gebruiker"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Wachtwoordvrije link"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Systeem informatie"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Ga naar de plugins lijst"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Installeer DoLogin beveiliging"

#: tpl/general/settings.tpl.php:219
msgid "Check my public IP from"
msgstr "Controleer mijn publieke IP van"

#: tpl/general/settings.tpl.php:219
msgid "Your server IP"
msgstr "Je server IP is"

#: tpl/general/settings.tpl.php:218
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Geef het IP-adres van deze site op, zodat clouddiensten dit direct kunnen gebruiken in plaats van de domeinnaam. Dit bespaart het opzoeken van DNS- en CDN-gegevens."

#: tpl/crawler/settings-general.tpl.php:124
msgid "Specify the timeout while crawling each URL."
msgstr "Geef aan (in seconden) hoe lang de crawler maximaal per URL mag besteden."

#: tpl/crawler/settings-general.tpl.php:80
msgid "Specify time in seconds for the time between each run interval."
msgstr "Geef (in seconden) aan hoeveel tijd de crawler steeds pauzeert na een run."

#: tpl/crawler/settings-general.tpl.php:25
msgid "This will enable crawler cron."
msgstr "Inschakelen cron-taak voor crawler."

#: tpl/crawler/settings-general.tpl.php:11
msgid "Crawler General Settings"
msgstr "Crawler algemene instellingen"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blocklist"
msgstr "Van blokkeerlijst verwijderen"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blocklist"
msgstr "Lege blokkeerlijst"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blocklist items?"
msgstr "Weet je zeker dat je alle bestaande blokkeerlijst items verwijdert?"

#: tpl/crawler/blacklist.tpl.php:61 tpl/crawler/map.tpl.php:84
msgid "Blocklisted due to not cacheable"
msgstr "Op de blokkeerlijst wegens niet cachebaar"

#: tpl/crawler/map.tpl.php:73
msgid "Add to Blocklist"
msgstr "Toevoegen aan blokkeerlijst"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:59
msgid "Operation"
msgstr "Bewerking"

#: tpl/crawler/map.tpl.php:39
msgid "Sitemap Total"
msgstr "Sitemap totaal"

#: tpl/crawler/map.tpl.php:35
msgid "Sitemap List"
msgstr "Sitemap lijst"

#: tpl/crawler/map.tpl.php:22
msgid "Refresh Crawler Map"
msgstr "Ververs sitemap voor crawler"

#: tpl/crawler/map.tpl.php:18
msgid "Clean Crawler Map"
msgstr "Crawler-map opschonen"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Sitemap instellingen"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Simulatie instellingen"

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blocklist"
msgstr "Blokkeerlijst"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Kaart"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Samenvatting"

#: tpl/crawler/settings-sitemap.tpl.php:37
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Laat deze optie UIT als je meerdere domeinnamen gebruikt voor 1 site en er meerdere domeinnamen in de sitemap voorkomen, zodat de crawler alle domeinen mee neemt."

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "De crawler leest de sitemap en slaat deze op in de database alvorens echt te beginnen. Weglating van de domeinnaam scheelt opslagruimte in de tabel."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Sitemap instellingen crawler"

#: tpl/crawler/summary.tpl.php:196
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp; Als een handmatige run van de crawler samenvalt met een run door een cron-taak, dan heeft de run die het eerst start voorrang."

#: tpl/crawler/summary.tpl.php:195
msgid "Crawlers cannot run concurrently."
msgstr "Crawlers kunnen niet gelijktijdig actief zijn."

#: tpl/crawler/map.tpl.php:83
msgid "Cache Miss"
msgstr "Niet in cache"

#: tpl/crawler/map.tpl.php:82
msgid "Cache Hit"
msgstr "Cache Hit"

#: tpl/crawler/summary.tpl.php:187
msgid "Waiting to be Crawled"
msgstr "Wachtend op crawl"

#: tpl/crawler/blacklist.tpl.php:62 tpl/crawler/map.tpl.php:85
#: tpl/crawler/summary.tpl.php:166 tpl/crawler/summary.tpl.php:190
msgid "Blocklisted"
msgstr "Staat in blokkeerlijst"

#: tpl/crawler/summary.tpl.php:165
msgid "Miss"
msgstr "Gemist"

#: tpl/crawler/summary.tpl.php:164
msgid "Hit"
msgstr "Hit"

#: tpl/crawler/summary.tpl.php:163
msgid "Waiting"
msgstr "Wachtend"

#: tpl/crawler/summary.tpl.php:132
msgid "Running"
msgstr "Actief"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Gebruik %1$s in %2$s om aan te geven dat deze cookie niet gezet is."

#: src/admin-display.cls.php:215
msgid "Add new cookie to simulate"
msgstr "Voeg nieuwe cookie toe om te simuleren"

#: src/admin-display.cls.php:214
msgid "Remove cookie simulation"
msgstr "Verwijder cookie simulatie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Crawler simulatie instellingen"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr "Htaccess regel is: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "Meer instellingen beschikbaar onder het %s menu"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "De duur (in seconden) dat bestanden in de browser worden bewaard."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Gebruikers van OpenLiteSpeed graag dit aanvinken"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Browser Cache instellingen"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Paden die deze tekenreeksen bevatten, worden naar openbare caches gedwongen, ongeacht de instellingen die niet in het cachegeheugen kunnen worden opgeslagen."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Ook als QUIC.cloud CDN is ingeschakeld, kan het nog zijn dat je cache headers ziet van je eigen webserver."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Een optionele tweede parameter kan worden gebruikt om cachecontrole te specificeren. Gebruik een spatie om"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Bovenstaande nonces worden automatisch geconverteerd naar ESI."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Browser"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Object"

#: tpl/cache/settings_inc.object.tpl.php:93
#: tpl/cache/settings_inc.object.tpl.php:94
msgid "Default port for %1$s is %2$s."
msgstr "Standaard poort voor %1$s is %2$s."

#: tpl/cache/settings_inc.object.tpl.php:28
msgid "Object Cache Settings"
msgstr "Object cache instellingen"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Geef een HTTP statuscode op en het aantal seconden om die in de cache te bewaren, gescheiden door een spatie."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Geef aan (in seconden) hoe lang de voorpagina in de cache wordt bewaard."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Als deze optie is ingeschakeld, wordt de verouderde kopie van een gecachte pagina aan bezoekers getoond totdat er een nieuwe cachekopie beschikbaar is. Verlaagt de serverbelasting voor volgende bezoeken. Als deze optie is uitgeschakeld, wordt de pagina dynamisch gegenereerd terwijl bezoekers wachten."

#: tpl/page_optm/settings_css.tpl.php:289
msgid "Swap"
msgstr "Wisselen"

#: tpl/page_optm/settings_css.tpl.php:288
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Kies om %1$s toe te voegen aan alle %2$s regels, om aan te geven hoe lettertypen moeten worden weergegeven tijdens het downloaden."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Avatarlijst in wachtrij wacht op update"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Ververs Gravatar cache met cron-taak."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Verhoogt de snelheid door Gravatars (Globaal herkende Avatars) in cache op te slaan."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Sla Gravatar lokaal op (in cache)."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Aanmaken Avatar tabel mislukt. Volg de <a %s>Table Creation gids op de LiteSpeed Wiki</a> om die te voltooien."

#: tpl/page_optm/settings_media.tpl.php:146
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "LQIP-verzoeken worden niet verwerkt voor afbeeldingen die lager en smaller zijn dan de opgegeven waardes."

#: tpl/page_optm/settings_media.tpl.php:144
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:128
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Een groter aantal genereert een plaatshouder van hogere kwaliteit, maar resulteert in grotere bestanden die de paginagrootte vergroten en meer punten verbruiken."

#: tpl/page_optm/settings_media.tpl.php:127
msgid "Specify the quality when generating LQIP."
msgstr "Geef de kwaliteit op van de te genereren LQIP opvulling."

#: tpl/page_optm/settings_media.tpl.php:113
msgid "Keep this off to use plain color placeholders."
msgstr "Laat dit UIT om effen gekleurde plaatshouders te gebruiken."

#: tpl/page_optm/settings_media.tpl.php:112
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Gebruik QUIC.cloud om LQIP (Low Quality Image Placeholder) opvulling te genereren, voor gebruik tijdens het laden van de afbeelding."

#: tpl/page_optm/settings_media.tpl.php:97
msgid "Specify the responsive placeholder SVG color."
msgstr "Geef de kleur op voor de tijdelijke SVG opvulling."

#: tpl/page_optm/settings_media.tpl.php:83
msgid "Variables %s will be replaced with the configured background color."
msgstr "De variabele %s wordt vervangen door de ingestelde achtergrondkleur."

#: tpl/page_optm/settings_media.tpl.php:82
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "De variabelen %s worden vervangen door de overeenkomstige eigenschappen van de afbeelding."

#: tpl/page_optm/settings_media.tpl.php:81
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Wordt on-the-fly omgezet in een base64 SVG plaatshouder."

#: tpl/page_optm/settings_media.tpl.php:80
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Geef een SVG op die moet worden gebruikt als plaatshouder bij het lokaal genereren."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Vermijd het vertraagd laden (lazy load) op de opgegeven pagina's."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Iframes met deze hoofd klasse namen worden niet lazy-loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Iframes die deze klasse namen bevatten zullen niet met lazy-load geladen worden."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Afbeeldingen met deze hoofd klasse namen zullen niet met lazy-load geladen worden."

#: tpl/page_optm/entry.tpl.php:21
msgid "LiteSpeed Cache Page Optimization"
msgstr "LiteSpeed Cache pagina optimalisatie"

#: tpl/page_optm/entry.tpl.php:11 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Media uitzonderingen"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:20
msgid "CSS Settings"
msgstr "CSS instellingen"

#: tpl/page_optm/settings_css.tpl.php:289
msgid "%s is recommended."
msgstr "%s wordt aanbevolen."

#: tpl/page_optm/settings_js.tpl.php:69
msgid "Deferred"
msgstr "Uitgesteld"

#: tpl/page_optm/settings_css.tpl.php:286
msgid "Default"
msgstr "Standaard"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "Kan de laadtijd van pagina's verbeteren."

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Schakel automatisch DNS prefetching in voor alle URL's in het document, ook voor afbeeldingen, CSS, JavaScript, enzovoort."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "Nieuwe ontwikkelversie %s is nu beschikbaar."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "Nieuwe ontwikkelversie beschikbaar!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Negeer dit bericht"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweet dit"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Voorvertoning tweet"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Meer informatie over"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "Je hebt zojuist een promotie van QUIC.cloud ontgrendeld!"

#: tpl/img_optm/settings.tpl.php:156
msgid "The image compression quality setting of WordPress out of 100."
msgstr "Instelling van de kwaliteit van gecomprimeerde afbeeldingen in WordPress op een schaal van 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Instellingen optimalisatie afbeeldingen"

#: tpl/img_optm/summary.tpl.php:306
msgid "Are you sure to destroy all optimized images?"
msgstr "Weet je zeker dat je alle geoptimaliseerde afbeeldingen wilt verwijderen?"

#: tpl/img_optm/summary.tpl.php:298
msgid "Use Optimized Files"
msgstr "Gebruik geoptimaliseerde bestanden"

#: tpl/img_optm/summary.tpl.php:297
msgid "Switch back to using optimized images on your site"
msgstr "Gebruik opnieuw geoptimaliseerde afbeeldingen"

#: tpl/img_optm/summary.tpl.php:294
msgid "Use Original Files"
msgstr "Gebruik de originele bestanden"

#: tpl/img_optm/summary.tpl.php:293
msgid "Use original images (unoptimized) on your site"
msgstr "Gebruik de originele (niet geoptimaliseerde) bestanden voor je site"

#: tpl/img_optm/summary.tpl.php:288
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Je kunt makkelijk schakelen tussen het gebruik van de originele of de geoptimaliseerde afbeeldingen. Je keuze heeft effect op alle afbeeldingen op je site, ook de WebP-versie indien beschikbaar."

#: tpl/img_optm/summary.tpl.php:285
msgid "Optimization Tools"
msgstr "Optimalisatie gereedschap"

#: tpl/img_optm/summary.tpl.php:258
msgid "Rescan New Thumbnails"
msgstr "Zoek naar nieuwe thumbnails"

#: tpl/img_optm/summary.tpl.php:241
msgid "Congratulations, all requested!"
msgstr "Mooi, alles aangevraagd!"

#: tpl/img_optm/summary.tpl.php:246
msgid "What is an image group?"
msgstr "Wat is een afbeeldingsgroep?"

#: tpl/img_optm/summary.tpl.php:193
msgid "Delete all backups of the original images"
msgstr "Verwijder alle back-ups van de originele afbeeldingen"

#: tpl/img_optm/summary.tpl.php:175
msgid "Calculate Backups Disk Space"
msgstr "Bereken schijfruimte van backups"

#: tpl/img_optm/summary.tpl.php:74
msgid "Optimization Status"
msgstr "Optimalisatie status"

#: tpl/img_optm/summary.tpl.php:58
msgid "Current limit is"
msgstr "Huidige limiet is"

#: tpl/img_optm/summary.tpl.php:57
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of image groups allowed in a single request is limited."
msgstr "Om ervoor te zorgen dat onze server zonder problemen kan communiceren met jouw server en alles goed werkt, is het aantal afbeelding groepen dat in één aanvraag is toegestaan voor de eerste paar aanvragen beperkt."

#: tpl/img_optm/summary.tpl.php:52
msgid "You can request a maximum of %s images at once."
msgstr "Je kan maximaal %s afbeeldingen tegelijk aanleveren."

#: tpl/img_optm/summary.tpl.php:47
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimaliseer afbeeldingen met onze QUIC.cloud server"

#: tpl/img_optm/summary.tpl.php:43 tpl/page_optm/settings_css.tpl.php:101
#: tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:182
#: tpl/page_optm/settings_vpi.tpl.php:48
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "Huidige dichtstbijzijnde cloud server is %s.&#10; Klik om opnieuw te detecteren."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Revisies jonger dan dit aantal dagen worden bewaard tijdens het opschonen."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Dag(en)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Geef op hoeveel revisies te bewaren bij opschonen."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "LiteSpeed Cache database optimalisatie"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Database optimalisatie instellingen"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Optienaam"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Database in het kort"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "Alles OK. Geen enkele tabel gebruikt de MyISAM engine."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Zet om naar InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Gereedschap"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Engine"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Tabel"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Database Table Engine Converter"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Schoon revisies ouder dan %1$s dag(en) op, behalve de %2$s laatste versies"

#: tpl/dash/dashboard.tpl.php:576
msgid "Currently active crawler"
msgstr "Actieve crawler"

#: tpl/dash/dashboard.tpl.php:573
msgid "Crawler(s)"
msgstr "Crawler(s)"

#: tpl/crawler/map.tpl.php:58 tpl/dash/dashboard.tpl.php:568
msgid "Crawler Status"
msgstr "Crawler Status"

#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:488
#: tpl/dash/dashboard.tpl.php:520 tpl/dash/dashboard.tpl.php:552
msgid "Force cron"
msgstr "Start cron"

#: tpl/dash/dashboard.tpl.php:454 tpl/dash/dashboard.tpl.php:486
#: tpl/dash/dashboard.tpl.php:518 tpl/dash/dashboard.tpl.php:550
msgid "Requests in queue"
msgstr "Aanvragen in wachtrij"

#: tpl/dash/dashboard.tpl.php:449 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513 tpl/dash/dashboard.tpl.php:545
msgid "Time to execute previous request"
msgstr "Benodigde tijd vorige verzoek"

#: tpl/dash/dashboard.tpl.php:419
msgid "Private Cache"
msgstr "Privé cache"

#: tpl/dash/dashboard.tpl.php:418
msgid "Public Cache"
msgstr "Publieke cache"

#: tpl/dash/dashboard.tpl.php:412
msgid "Cache Status"
msgstr "Cache status"

#: tpl/dash/dashboard.tpl.php:384
msgid "Last Pull"
msgstr "Laatst opgehaald"

#: tpl/dash/dashboard.tpl.php:332 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Afbeelding optimalisatie in het kort"

#: tpl/dash/dashboard.tpl.php:271
msgid "Refresh page score"
msgstr "Paginascore vernieuwen"

#: tpl/dash/dashboard.tpl.php:259 tpl/img_optm/summary.tpl.php:43
#: tpl/page_optm/settings_css.tpl.php:101
#: tpl/page_optm/settings_css.tpl.php:218
#: tpl/page_optm/settings_media.tpl.php:182
#: tpl/page_optm/settings_vpi.tpl.php:48
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Weet je zeker dat je opnieuw de dichtstbijzijnde server voor deze dienst wil bepalen?"

#: tpl/dash/dashboard.tpl.php:259
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "De huidige dichtstbijzijnde cloudserver is %s.&#10;Klik om opnieuw te detecteren."

#: tpl/dash/dashboard.tpl.php:254 tpl/dash/dashboard.tpl.php:324
#: tpl/dash/dashboard.tpl.php:464 tpl/dash/dashboard.tpl.php:496
#: tpl/dash/dashboard.tpl.php:528 tpl/dash/dashboard.tpl.php:560
msgid "Last requested"
msgstr "Laatste aanvraag"

#: tpl/dash/dashboard.tpl.php:213
msgid "Refresh page load time"
msgstr "Ververs laadtijd pagina"

#: tpl/dash/dashboard.tpl.php:194
msgid "Go to QUIC.cloud dashboard"
msgstr "Ga naar QUIC.cloud dashboard"

#: tpl/dash/dashboard.tpl.php:55 tpl/dash/dashboard.tpl.php:504
msgid "Low Quality Image Placeholder"
msgstr "Low Quality Image Placeholder"

#: tpl/dash/dashboard.tpl.php:42
msgid "Sync data from Cloud"
msgstr "Synchroniseer gegevens van de Cloud"

#: tpl/dash/dashboard.tpl.php:39
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Gebruiksstatistieken QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:149 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Deze maand geoptimaliseerde afbeeldingen"

#: tpl/dash/dashboard.tpl.php:148 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Gebruik totaal"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Betaal naar verbruik statistieken"

#: tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "Gebruik deze maand"

#: tpl/dash/dashboard.tpl.php:126 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "PAYG balans"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Betaal wat je verbruikt"

#: tpl/dash/dashboard.tpl.php:113 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Gebruik"

#: tpl/dash/dashboard.tpl.php:113 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Snel wachtrijgebruik"

#: tpl/dash/dashboard.tpl.php:54 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "CDN bandbreedte"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Gebruiksgegevens"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "LiteSpeed Cache Dashboard"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Netwerk Dashboard"

#: tpl/general/settings.tpl.php:142
msgid "No cloud services currently in use"
msgstr "Momenteel geen cloud diensten in gebruik"

#: tpl/general/settings.tpl.php:130
msgid "Click to clear all nodes for further redetection."
msgstr "Klik hier om om alle nodes in het netwerk opnieuw te detecteren."

#: tpl/general/settings.tpl.php:129
msgid "Current Cloud Nodes in Service"
msgstr "Draaiende Cloud Nodes"

#: tpl/general/settings.tpl.php:110
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Voordelen van verbinding met QUIC.cloud account"

#: tpl/general/settings.tpl.php:109
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Klik op de %s button als je deze site wilt koppelen aan een QUIC.cloud account."

#: tpl/general/settings.tpl.php:104
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Voordat je koppelt met QUIC.cloud moet je eerst %1$s hebben."

#: tpl/general/settings.tpl.php:90
msgid "Please verify that your other plugins are not blocking REST API calls, allowlist our server IPs, or contact your server admin for assistance."
msgstr "Controleer of je andere plugins geen REST API aanroepen blokkeren, onze server IP's toestaan of neem contact op met je server beheerder voor hulp."

#: tpl/general/settings.tpl.php:89
msgid "Our %s was not allowlisted."
msgstr "Onze %s stond niet op de lijst toegestaan."

#: tpl/general/settings.tpl.php:88
msgid "The POST callback to %s failed."
msgstr "De bericht-callback naar %s is mislukt."

#: tpl/general/settings.tpl.php:87
msgid "There are two reasons why we might not be able to communicate with your domain"
msgstr "Er zijn twee redenen waarom we mogelijk geen verbinding kunnen maken met je domein."

#: tpl/general/settings.tpl.php:86
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Er gaat iets mis met het ontvangen van je Domain Key. Klik op de %s knop om het opnieuw te proberen."

#: tpl/cdn/auto_setup.tpl.php:132 tpl/dash/dashboard.tpl.php:196
#: tpl/dash/dashboard.tpl.php:198 tpl/general/settings.tpl.php:78
#: tpl/general/settings.tpl.php:80 tpl/general/settings.tpl.php:109
msgid "Link to QUIC.cloud"
msgstr "Link naar QUIC.cloud"

#: tpl/general/settings.tpl.php:76
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Bezoek My Dashboard op QUIC.cloud"

#: tpl/general/settings.tpl.php:37
msgid "Next available request time: <code>After %s</code>"
msgstr "Volgende beschikbare moment voor aanvraag: <code>Na %s</code>"

#: tpl/general/settings.tpl.php:33
msgid "Approved"
msgstr "Goedgekeurd"

#: tpl/general/settings.tpl.php:30
msgid "Requested"
msgstr "Aangevraagd"

#: tpl/general/settings.tpl.php:25
msgid "Waiting for Approval"
msgstr "In afwachting van goedkeuring"

#: tpl/general/settings.tpl.php:22
msgid "Waiting for Refresh"
msgstr "Wachtend op verversing"

#: tpl/general/settings.tpl.php:20
msgid "Refresh Domain Key"
msgstr "Vernieuw domeinsleutel"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:9
#: tpl/general/settings.tpl.php:44
msgid "General Settings"
msgstr "Algemene instellingen"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Geef aan welke attributen van HTML elementen worden vervangen bij CDN gebruik."

#: src/admin-display.cls.php:237
msgid "Add new CDN URL"
msgstr "Voeg nieuwe CDN URL toe"

#: src/admin-display.cls.php:236
msgid "Remove CDN URL"
msgstr "Verwijder CDN URL"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Schakel %s CDN API functionaliteit in."

#: tpl/cdn/manage.tpl.php:25
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Om onderstaande functies te kunnen gebruiken, zet je Cloudflare API op AAN op de tab CDN instellingen."

#: tpl/cdn/manage.tpl.php:16
msgid "To manage QUIC.cloud options, please visit"
msgstr "Om QUIC.cloud opties te beheren, bezoek"

#: tpl/cdn/manage.tpl.php:14
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "WooCommerce instellingen"

#: src/doc.cls.php:143 tpl/general/settings.tpl.php:89
msgid "Current Online Server IPs"
msgstr "IP-adressen servers momenteel online"

#: src/doc.cls.php:142
msgid "Before generating key, please verify all IPs on this list are allowlisted"
msgstr "Voordat je de sleutel genereert, controleer je of alle IP's in deze lijst op de toegestane lijst staan"

#: src/doc.cls.php:141
msgid "For online services to work correctly, you must allowlist all %s server IPs."
msgstr "Om online diensten correct te laten werken, moet je alle %s server IP's toestaan."

#: src/gui.cls.php:546 src/gui.cls.php:706
#: tpl/page_optm/settings_media.tpl.php:131 tpl/toolbox/purge.tpl.php:97
msgid "LQIP Cache"
msgstr "LQIP Cache"

#: src/admin-settings.cls.php:245 src/admin-settings.cls.php:279
msgid "Options saved."
msgstr "Instellingen opgeslagen."

#: src/img-optm.cls.php:1489
msgid "Removed backups successfully."
msgstr "Verwijderen back-ups geslaagd."

#: src/img-optm.cls.php:1397
msgid "Calculated backups successfully."
msgstr "Berekenen back-ups geslaagd."

#: src/img-optm.cls.php:1332
msgid "Rescanned %d images successfully."
msgstr "Opnieuw scannen %d afbeeldingen geslaagd."

#: src/img-optm.cls.php:1270 src/img-optm.cls.php:1332
msgid "Rescanned successfully."
msgstr "Opnieuw scannen geslaagd."

#: src/img-optm.cls.php:1209
msgid "Destroy all optimization data successfully."
msgstr "Verwijderen optimalisatie gegevens geslaagd."

#: src/img-optm.cls.php:1133
msgid "Cleaned up unfinished data successfully."
msgstr "Opruimen onverwerkte gegevens geslaagd."

#: src/img-optm.cls.php:974
msgid "Optimized WebP file expired and was cleared."
msgstr "Geoptimaliseerd WebP bestand was verlopen en is verwijderd."

#: src/img-optm.cls.php:874
msgid "Pull Cron is running"
msgstr "Cron-taak om bestanden op te halen loopt"

#: src/img-optm.cls.php:654
msgid "No valid image found by Cloud server in the current request."
msgstr "De Cloud server trof geen geldige afbeelding aan in de aanvraag."

#: src/img-optm.cls.php:631
msgid "No valid image found in the current request."
msgstr "Geen geldige afbeelding gevonden in deze aanvraag."

#: src/img-optm.cls.php:341
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s verstuurd naar cloud server, geaccepteerd %2$s."

#: src/lang.cls.php:269
msgid "Revisions Max Age"
msgstr "Maximale leeftijd revisies"

#: src/lang.cls.php:268
msgid "Revisions Max Number"
msgstr "Aantal te bewaren revisies"

#: src/lang.cls.php:265
msgid "Debug URI Excludes"
msgstr "Foutopsporing URI uitsluitingen"

#: src/lang.cls.php:264
msgid "Debug URI Includes"
msgstr "Debug URI bevat"

#: src/lang.cls.php:254
msgid "Drop Domain from Sitemap"
msgstr "Verwijder domein uit sitemap"

#: src/lang.cls.php:249
msgid "Timeout"
msgstr "Time-out"

#: src/lang.cls.php:237
msgid "HTML Attribute To Replace"
msgstr "Te vervangen HTML attribuut"

#: src/lang.cls.php:231
msgid "Use CDN Mapping"
msgstr "Gebruik een CDN mapping"

#: src/lang.cls.php:230
msgid "QUIC.cloud CDN"
msgstr "QUIC.cloud CDN"

#: src/lang.cls.php:228
msgid "Editor Heartbeat TTL"
msgstr "Editor Heartbeat TTL"

#: src/lang.cls.php:227
msgid "Editor Heartbeat"
msgstr "Editor Heartbeat"

#: src/lang.cls.php:226
msgid "Backend Heartbeat TTL"
msgstr "Backend Heartbeat TTL"

#: src/lang.cls.php:225
msgid "Backend Heartbeat Control"
msgstr "Backend Heartbeat Control"

#: src/lang.cls.php:224
msgid "Frontend Heartbeat TTL"
msgstr "Frontend Heartbeat TTL"

#: src/lang.cls.php:223
msgid "Frontend Heartbeat Control"
msgstr "Frontend Heartbeat Control"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Backend .htaccess Path"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Frontend .htaccess Path"

#: src/lang.cls.php:214
msgid "ESI Nonces"
msgstr "ESI Nonces"

#: src/lang.cls.php:210
msgid "WordPress Image Quality Control"
msgstr "Beheer kwaliteit afbeeldingen in WordPress"

#: src/lang.cls.php:202
msgid "Auto Pull Cron"
msgstr "Cron-taak voor ophalen"

#: src/lang.cls.php:201
msgid "Auto Request Cron"
msgstr "Cron-taak voor verzoeken"

#: src/lang.cls.php:195
msgid "Generate LQIP In Background"
msgstr "Maak LQIP aan in de achtergrond"

#: src/lang.cls.php:193
msgid "LQIP Minimum Dimensions"
msgstr "Minimale afmetingen LQIP"

#: src/lang.cls.php:192
msgid "LQIP Quality"
msgstr "Kwaliteit LQIP"

#: src/lang.cls.php:191
msgid "LQIP Cloud Generator"
msgstr "LQIP genereren in Cloud"

#: src/lang.cls.php:190
msgid "Responsive Placeholder SVG"
msgstr "Responsive plaatshouder SVG"

#: src/lang.cls.php:189
msgid "Responsive Placeholder Color"
msgstr "Kleur van responsive plaatshouder"

#: src/lang.cls.php:187
msgid "Basic Image Placeholder"
msgstr "Eenvoudige tijdelijke opvulling voor afbeelding"

#: src/lang.cls.php:185
msgid "Lazy Load URI Excludes"
msgstr "Voorkom lazy-load per URI"

#: src/lang.cls.php:184
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Uitsluiten lazy load iframes op hoofd klasse attribuut"

#: src/lang.cls.php:183
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Lazy-load Iframe klasse naam uitsluiting"

#: src/lang.cls.php:182
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Lazy-load afbeelding naam van hoofd klasse"

#: src/lang.cls.php:177
msgid "Gravatar Cache TTL"
msgstr "Gravatar cache TTL"

#: src/lang.cls.php:176
msgid "Gravatar Cache Cron"
msgstr "Gravatar Cache door cron-taak"

#: src/gui.cls.php:556 src/gui.cls.php:716 src/lang.cls.php:175
#: tpl/presets/standard.tpl.php:42 tpl/toolbox/purge.tpl.php:106
msgid "Gravatar Cache"
msgstr "Gravatar Caching"

#: src/lang.cls.php:157
msgid "DNS Prefetch Control"
msgstr "DNS Prefetch beheren"

#: src/lang.cls.php:152 tpl/presets/standard.tpl.php:39
msgid "Font Display Optimization"
msgstr "Optimalisatie lettertypeweergave"

#: src/lang.cls.php:130
msgid "Force Public Cache URIs"
msgstr "Openbare cache-URI's afdwingen"

#: src/lang.cls.php:99
msgid "Notifications"
msgstr "Meldingen"

#: src/lang.cls.php:94
msgid "Default HTTP Status Code Page TTL"
msgstr "Standaard HTTP-status codetabel TTL"

#: src/lang.cls.php:93
msgid "Default REST TTL"
msgstr "Standaard REST TTL"

#: src/lang.cls.php:87
msgid "Enable Cache"
msgstr "Caching Inschakelen"

#: src/lang.cls.php:83
msgid "Domain Key"
msgstr "Domein sleutel"

#: src/lang.cls.php:82
msgid "Server IP"
msgstr "Server IP"

#: src/lang.cls.php:26
msgid "Images not requested"
msgstr "Afbeeldingen niet aangevraagd"

#: src/cloud.cls.php:1530
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Synchroniseren tegoed met Cloud Server geslaagd."

#: src/cloud.cls.php:1404
msgid "Domain Key hash mismatch"
msgstr "Hash voor domeinsleutel komt niet overeen"

#: src/cloud.cls.php:1299
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "Gefeliciteerd, je domein sleutel is goedgekeurd. De instelling is geüpdatet."

#: src/cloud.cls.php:1243
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Succesvolle domeinsleutel aangevraagd. Wacht op resultaat. De domeinsleutel wordt automatisch naar je WordPress gestuurd."

#: src/cloud.cls.php:902 src/cloud.cls.php:1224
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Het is mislukt om met de QUIC.cloud server te communiceren"

#: src/cloud.cls.php:836
msgid "Good news from QUIC.cloud server"
msgstr "Goed nieuws van de QUIC.cloud server"

#: src/cdn-setup.cls.php:322 src/cloud.cls.php:820 src/cloud.cls.php:828
#: src/cloud.cls.php:1235
msgid "Message from QUIC.cloud server"
msgstr "Bericht van de QUIC.cloud server"

#: src/cloud.cls.php:625
msgid "Please try after %1$s for service %2$s."
msgstr "Probeer na %1$s voor service %2$s."

#: src/cloud.cls.php:452
msgid "No available Cloud Node."
msgstr "Geen beschikbare Cloud Node."

#: src/cloud.cls.php:394 src/cloud.cls.php:407 src/cloud.cls.php:452
#: src/cloud.cls.php:477 src/cloud.cls.php:625 src/cloud.cls.php:1204
msgid "Cloud Error"
msgstr "Cloud foutmelding"

#: src/data.cls.php:224
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "De database wordt in de achtergrond geüpdatet sinds %s. Zodra dat klaar is, verdwijnt dit bericht."

#: src/media.cls.php:363
msgid "Restore from backup"
msgstr "Terugzetten uit de backup"

#: src/media.cls.php:352
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:347
msgid "No backup of unoptimized WebP file exists."
msgstr "Er bestaat geen back-up van het niet geoptimaliseerde WebP bestand."

#: src/media.cls.php:334
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Omvang WebP bestand verminderd met %1$s (%2$s)"

#: src/media.cls.php:327
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Originele (niet-geoptimaliseerde) versie van WebP bestand momenteel in gebruik."

#: src/media.cls.php:323
msgid "Currently using optimized version of WebP file."
msgstr "Geoptimaliseerd WebP bestand momenteel in gebruik."

#: src/media.cls.php:307
msgid "Orig"
msgstr "Orig"

#: src/media.cls.php:305
msgid "(no savings)"
msgstr "(geen besparing)"

#: src/media.cls.php:305
msgid "Orig %s"
msgstr "Orig %s"

#: src/media.cls.php:302
msgid "Congratulation! Your file was already optimized"
msgstr "Gefeliciteerd! Je bestand was al geoptimaliseerd"

#: src/media.cls.php:294
msgid "No backup of original file exists."
msgstr "Geen back-up aanwezig van originele bestand."

#: src/media.cls.php:294 src/media.cls.php:347
msgid "Using optimized version of file. "
msgstr "Geoptimaliseerde versie van bestand in gebruik. "

#: src/media.cls.php:287
msgid "Orig saved %s"
msgstr "Orig %s kleiner"

#: src/media.cls.php:280
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Originele bestand verkleind met %1$s (%2$s)"

#: src/media.cls.php:273 src/media.cls.php:327
msgid "Click to switch to optimized version."
msgstr "Klik om gebruik te maken van geoptimaliseerde versie."

#: src/media.cls.php:273
msgid "Currently using original (unoptimized) version of file."
msgstr "Originele (niet-geoptimaliseerde) bestand in gebruik."

#: src/media.cls.php:272 src/media.cls.php:326
msgid "(non-optm)"
msgstr "(niet-optm)"

#: src/media.cls.php:269 src/media.cls.php:323
msgid "Click to switch to original (unoptimized) version."
msgstr "Klik hier om de originele versie te gebruiken."

#: src/media.cls.php:269
msgid "Currently using optimized version of file."
msgstr "Geoptimaliseerd bestand in gebruik."

#: src/media.cls.php:268 src/media.cls.php:295 src/media.cls.php:322
#: src/media.cls.php:348
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:139
msgid "LQIP image preview for size %s"
msgstr "LQIP afbeelding voorvertoning in formaat %s"

#: src/placeholder.cls.php:81 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:1116
msgid "Previously existed in blocklist"
msgstr "Stond voorheen op blokkeerlijst"

#: src/crawler.cls.php:1113
msgid "Manually added to blocklist"
msgstr "Handmatig toegevoegd aan blokkeerlijst"

#: src/htaccess.cls.php:340
msgid "Mobile Agent Rules"
msgstr "Mobiele agent regels"

#: src/crawler-map.cls.php:333
msgid "Sitemap created successfully: %d items"
msgstr "Aanmaken sitemap geslaagd: %d items"

#: src/crawler-map.cls.php:268
msgid "Sitemap cleaned successfully"
msgstr "Opschonen sitemap geslaagd"

#: src/admin-display.cls.php:1160
msgid "Invalid IP"
msgstr "Ongeldige IP"

#: src/admin-display.cls.php:1135
msgid "Value range"
msgstr "Waarde bereik"

#: src/admin-display.cls.php:1132
msgid "Smaller than"
msgstr "Kleiner dan"

#: src/admin-display.cls.php:1129
msgid "Larger than"
msgstr "Groter dan"

#: src/admin-display.cls.php:1122
msgid "Zero, or"
msgstr "Nul, of"

#: src/admin-display.cls.php:1110
msgid "Maximum value"
msgstr "Maximale waarde"

#: src/admin-display.cls.php:1107
msgid "Minimum value"
msgstr "Minimale waarde"

#: src/admin-display.cls.php:1089
msgid "Path must end with %s"
msgstr "Bestandspad moet eindigen op %s"

#: src/admin-display.cls.php:1072
msgid "Invalid rewrite rule"
msgstr "Ongeldige omleiding regel"

#: src/admin-display.cls.php:1002
msgid "currently set to %s"
msgstr "momenteel ingesteld op %s"

#: src/admin-display.cls.php:992
msgid "This setting is overwritten by the PHP constant %s"
msgstr "Deze instelling werd overschreven door PHP-constante %s"

#: src/admin-display.cls.php:137
msgid "Toolbox"
msgstr "Toolbox"

#: src/admin-display.cls.php:133
msgid "Database"
msgstr "Database"

#: src/admin-display.cls.php:131 tpl/dash/dashboard.tpl.php:53
msgid "Page Optimization"
msgstr "Pagina optimalisatie"

#: src/admin-display.cls.php:119 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Dashboard"

#: src/db-optm.cls.php:271
msgid "Converted to InnoDB successfully."
msgstr "Succesvol geconverteerd naar InnoDB."

#: src/purge.cls.php:317
msgid "Cleaned all Gravatar files."
msgstr "Alle gravatar bestanden verwijderd."

#: src/purge.cls.php:300
msgid "Cleaned all LQIP files."
msgstr "Alle LQIP bestanden opgeschoond."

#: src/error.cls.php:181
msgid "Unknown error"
msgstr "Onbekende fout"

#: src/error.cls.php:173
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "Door een eerdere schending van ons beleid is je domein geblokkeerd om van onze diensten gebruik te maken."

#: src/error.cls.php:169
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "De callback validatie naar je domein is mislukt. Zorg ervoor dat er geen firewall onze servers blokkeert. Reactie code: "

#: src/error.cls.php:165
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "De callback validatie naar je domein is mislukt. Zorg ervoor dat er geen firewall onze servers blokkeert."

#: src/error.cls.php:161
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "De callback validatie naar je domein is mislukt doordat de hash niet overeen kwam."

#: src/error.cls.php:157
msgid "Your application is waiting for approval."
msgstr "Je aanvraag is in behandeling."

#: src/error.cls.php:153
msgid "Previous request too recent. Please try again after %s."
msgstr "Vorige aanvraag werd net gedaan. Probeer het opnieuw na %s."

#: src/error.cls.php:149
msgid "Previous request too recent. Please try again later."
msgstr "Vorige aanvraag vond (te) recent plaats. Probeer het straks opnieuw."

#: src/error.cls.php:144
msgid "Crawler disabled by the server admin."
msgstr "Crawler uitgeschakeld door server beheerder."

#: src/error.cls.php:140
msgid "Failed to create table %s! SQL: %s."
msgstr "Creëren van tabel %s! SQL: %s mislukt."

#: src/error.cls.php:116
msgid "Could not find %1$s in %2$s."
msgstr "%1$s niet gevonden in %2$s."

#: src/error.cls.php:104
msgid "Credits are not enough to proceed the current request."
msgstr "Onvoldoende tegoed om met de huidige aanvraag door te gaan."

#: src/error.cls.php:92
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "De domein sleutel is niet correct. Probeer je domein sleutel opnieuw te synchroniseren."

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet."
msgstr "Er is een wachtrij die nog niet is opgehaald."

#: src/error.cls.php:72
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "Onvoldoende parameters. Controleer of de domein sleutel correct is ingesteld"

#: src/error.cls.php:68
msgid "The image list is empty."
msgstr "De afbeelding lijst is leeg."

#: src/error.cls.php:56
msgid "You don't have enough quota left for current service this month."
msgstr "Je hebt niet genoeg quota over voor de huidige dienst deze maand."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "Je moet %s aanzetten om de dienst online te kunnen gebruiken."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "De instelling %s is momenteel geactiveerd."

#: src/task.cls.php:200
msgid "LiteSpeed Crawler Cron"
msgstr "LiteSpeed Crawler cron"

#: src/task.cls.php:180
msgid "Every Minute"
msgstr "Elke minuut"

#: tpl/general/settings.tpl.php:236
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Zet deze optie AAN om automatisch het laatste nieuws te ontvangen, zoals over hotfixes, nieuwe releases, beschikbare beta versies en aanbiedingen."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Genereer a.u.b. een link, om het LiteSpeed Support Team zonder wachtwoord wp-admin-toegang te geven namens de huidige ingelogde gebruiker, die je mee kunt sturen met het verslag."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Gegenereerde links kun je beheren onder <a %s>Instellingen</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Deel de bovenstaande link zonder wachtwoord NIET met anderen."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Installeer %s om een link te genereren, waarmee het LiteSpeed Support Team zonder wachtwoord beheertoegang krijgt."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Installeren"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Deze opties zijn alleen beschikbaar bij gebruik van LiteSpeed Enterprise Web Server of QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:267
msgid "PageSpeed Score"
msgstr "PageSpeed score"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:240 tpl/dash/dashboard.tpl.php:308
msgid "Improved by"
msgstr "Verbeterd met"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:232 tpl/dash/dashboard.tpl.php:300
msgid "After"
msgstr "Na"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:223 tpl/dash/dashboard.tpl.php:292
msgid "Before"
msgstr "Voor"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:209
msgid "Page Load Time"
msgstr "Pagina laadtijd"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Om de cachefuncties te gebruiken, moet je een LiteSpeed webserver hebben of QUIC.cloud CDN gebruiken."

#: src/lang.cls.php:207
msgid "Preserve EXIF/XMP data"
msgstr "Behoudt EXIF/XMP-gegevens"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Try GitHub Version"
msgstr "Uitproberen GitHub versie"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Als je een van de bovenstaande instellingen UIT zet, verwijder dan de gerelateerde bestandstypen uit de %s box."

#: src/doc.cls.php:112
msgid "Both full and partial strings can be used."
msgstr "Je kunt zowel een volledige als gedeeltelijke aanduiding gebruiken."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Lazy load wordt niet toegepast op afbeeldingen met deze class benamingen."

#: src/lang.cls.php:181
msgid "Lazy Load Image Class Name Excludes"
msgstr "Uit te sluiten afbeelding klassen voor lazy-load"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Voorbeeld: %1$s stelt de TTL in op %2$s seconden voor %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Als je een aangepaste TTL voor een URI wilt definiëren, voeg je een spatie gevolgd door de TTL-waarde toe aan het einde van de URI."

#: tpl/banner/new_version.php:85
msgid "Maybe Later"
msgstr "Misschien later"

#: tpl/banner/new_version.php:79
msgid "Turn On Auto Upgrade"
msgstr "Zet automatisch upgraden aan"

#: tpl/banner/new_version.php:69 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:62
msgid "Upgrade"
msgstr "Upgrade"

#: tpl/banner/new_version.php:61
msgid "New release %s is available now."
msgstr "Nieuwe release %s is nu beschikbaar."

#: tpl/banner/new_version.php:57
msgid "New Version Available!"
msgstr "Er is een nieuwe versie beschikbaar!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Support forum</a> | <a %s>Dien een ticket in</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Met ❤️ gemaakt door het LiteSpeed team."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Tuurlijk schrijf ik een beoordeling!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Bedankt voor het gebruik van de LiteSpeed Cache Plugin!"

#: src/activation.cls.php:512
msgid "Upgraded successfully."
msgstr "Upgrade geslaagd."

#: src/activation.cls.php:503 src/activation.cls.php:508
msgid "Failed to upgrade."
msgstr "Upgrade mislukt."

#: src/conf.cls.php:718
msgid "Changed setting successfully."
msgstr "Wijziging instellingen geslaagd."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "ESI voorbeeld voor ontwikkelaars"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Vervang %1$s door %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Je kunt shortcodes in ESI-blokken veranderen."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Private Cache vs. Public Cache"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Voeg query string %s toe aan de bronnen om deze actie te omzeilen."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA wordt automatisch overgeslagen."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "Als je wilt crawlen voor een bepaalde cookie, voer je de cookienaam en de waarden in waarnaar je wilt crawlen. Waarden moeten één per regel zijn. Er wordt één crawler gemaakt per cookiewaarde, per gesimuleerde rol."

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Cookie waardes"

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr "Naam van cookie"

#: src/lang.cls.php:252
msgid "Cookie Simulation"
msgstr "Cookie simulatie"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Gebruik de Web Font Loader bibliotheek om asynchroon Google Fonts te laten en overige CSS ongemoeid te laten."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Zet deze optie AAN om LiteSpeed Cache automatisch te laten updaten, wanneer een nieuwe versie wordt uitgebracht. Indien UIT, update handmatig zoals gebruikelijk."

#: src/lang.cls.php:96
msgid "Automatically Upgrade"
msgstr "Voer automatisch upgrades uit"

#: tpl/toolbox/settings-debug.tpl.php:65
msgid "Your IP"
msgstr "Je IP-adres"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Succesvol hersteld."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Dit herstelt alle instellingen naar de standaard instellingen."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Herstel alle instellingen"

#: tpl/page_optm/settings_tuning_css.tpl.php:117
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Er worden afzonderlijke kritische CSS-bestanden gegenereerd voor paden die deze strings bevatten."

#: src/lang.cls.php:166
msgid "Separate CCSS Cache URIs"
msgstr "Afzonderlijke CCSS cache URI's"

#: tpl/page_optm/settings_tuning_css.tpl.php:103
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Bijvoorbeeld, als elke pagina op de site een andere opmaak heeft, voer je %s in de box in. Voor elke pagina op de site worden afzonderlijke kritieke CSS-bestanden opgeslagen."

#: tpl/page_optm/settings_tuning_css.tpl.php:102
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Sorteer berichttypen waarbij elk item van dat type zijn eigen gegenereerde CCSS moet hebben."

#: src/lang.cls.php:165
msgid "Separate CCSS Cache Post Types"
msgstr "Afzonderlijke CCSS cache berichttypen"

#: tpl/page_optm/settings_media.tpl.php:188
msgid "Size list in queue waiting for cron"
msgstr "Afmetingenlijst in wachtrij wachtend op cron"

#: tpl/page_optm/settings_media.tpl.php:164
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Indien ingesteld op %1$s, voordat de placeholder is gelokaliseerd, wordt de %2$s-configuratie gebruikt."

#: tpl/page_optm/settings_media.tpl.php:162
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Genereer automatisch LQIP op de achtergrond via een cron-gebaseerde wachtrij."

#: tpl/page_optm/settings_media.tpl.php:67
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Hierdoor krijgt de placeholder dezelfde afmetingen als de afbeelding, indien de attributen breedte en hoogte zijn meegegeven."

#: tpl/page_optm/settings_media.tpl.php:66
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Responsive plaatshouders verminderen de herschikking op de pagina wanneer de afbeeldingen worden geladen."

#: src/lang.cls.php:188
msgid "Responsive Placeholder"
msgstr "Responsive plaatshouder"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Hiermee verwijder je alle aangemaakte placeholder bestanden"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Schakel LiteSpeed Cache in bij de plugin instellingen."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Schakel de LSCache module in op de server, of vraag dit aan je hosting provider."

#: src/cloud.cls.php:715 src/cloud.cls.php:736
msgid "Failed to request via WordPress"
msgstr "Aanvraag via WordPress mislukt"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Hoge-prestatie pagina caching en site-optimalisatie van LiteSpeed"

#: src/img-optm.cls.php:1816
msgid "Reset the optimized data successfully."
msgstr "Reset van de opgeoptimaliseerde gegevens geslaagd."

#: src/gui.cls.php:782
msgid "Update %s now"
msgstr "Nu %s updaten"

#: src/gui.cls.php:777
msgid "View %1$s version %2$s details"
msgstr "Toon %1$s versie %2$s details"

#: src/gui.cls.php:774
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>Toon details versie %3$s</a> of <a href=\"%4$s\" %5$s target=\"_blank\">nu updaten</a>."

#: src/gui.cls.php:754
msgid "Install %s"
msgstr "Installeer %s"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "Cache functies op deze pagina momenteel niet beschikbaar!"

#: src/cloud.cls.php:845
msgid "%1$s plugin version %2$s required for this action."
msgstr "%1$s plugin versie %2$s vereist voor deze actie."

#: src/cloud.cls.php:783
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "We doen er alles aan om je online dienst ervaringen te verbeteren. De dienst is niet beschikbaar tijdens onze werkzaamheden. Excuses voor het ongemak."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Verwijder automatisch de originele afbeelding back-ups na het ophalen van geoptimaliseerde afbeeldingen."

#: src/lang.cls.php:204
msgid "Remove Original Backups"
msgstr "Verwijder originele backups"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Automatisch optimaliseren van verzoeken via een cron job."

#: tpl/img_optm/summary.tpl.php:152
msgid "A backup of each image is saved before it is optimized."
msgstr "Er wordt een back-up van elke afbeelding opgeslagen voordat deze wordt geoptimaliseerd."

#: src/img-optm.cls.php:1674
msgid "Switched images successfully."
msgstr "Afbeeldingen succesvol gewisseld."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Dit verbetert de kwaliteit, maar kan resulteren in grotere afbeeldingen dan bij compressie met kwaliteitsverlies."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimaliseer afbeeldingen met compressie zonder kwaliteitsverlies."

#: src/lang.cls.php:206
msgid "Optimize Losslessly"
msgstr "Optimaliseer zonder kwaliteitsverlies"

#: tpl/img_optm/settings.media_webp.tpl.php:17
msgid "Request WebP versions of original images when doing optimization."
msgstr "Vraag WebP versies van originele afbeeldingen op wanneer je optimalisatie uitvoert."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimaliseer afbeeldingen en sla een kopie van de originelen op in dezelfde map."

#: src/lang.cls.php:203
msgid "Optimize Original Images"
msgstr "Optimaliseer originele afbeeldingen"

#: tpl/page_optm/settings_css.tpl.php:189
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Als deze optie op %s gezet wordt, worden ook Google Fonts asynchroon geladen."

#: src/purge.cls.php:243
msgid "Cleaned all Critical CSS files."
msgstr "Alle kritieke CSS-bestanden opgeschoond."

#: tpl/page_optm/settings_css.tpl.php:275
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Hiermee wordt de asynchrone CSS-bibliotheek in de pagina (HTML) opgenomen, om weergave blokkering te voorkomen."

#: src/lang.cls.php:151
msgid "Inline CSS Async Lib"
msgstr "Inline CSS Async Lib"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:205
msgid "Run Queue Manually"
msgstr "Start wachtrij handmatig"

#: tpl/page_optm/settings_css.tpl.php:107
#: tpl/page_optm/settings_css.tpl.php:224 tpl/page_optm/settings_vpi.tpl.php:54
msgid "URL list in %s queue waiting for cron"
msgstr "URL lijst in %s wachtrij voor cron"

#: tpl/page_optm/settings_css.tpl.php:95 tpl/page_optm/settings_css.tpl.php:212
msgid "Last requested cost"
msgstr "Laatst aangevraagde kosten"

#: tpl/dash/dashboard.tpl.php:446 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:510 tpl/dash/dashboard.tpl.php:542
#: tpl/page_optm/settings_css.tpl.php:92 tpl/page_optm/settings_css.tpl.php:209
#: tpl/page_optm/settings_media.tpl.php:176
#: tpl/page_optm/settings_vpi.tpl.php:42
msgid "Last generated"
msgstr "Laatst gegenereerd"

#: tpl/page_optm/settings_media.tpl.php:168
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Als je dit op %s zet wordt het in de voorgrond uitgevoerd. Dit kan het laden van de pagina vertragen."

#: tpl/page_optm/settings_css.tpl.php:188
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Het automatisch genereren van kritieke CSS gebeurt in de achtergrond via een op cron-gebaseerde wachtrij."

#: tpl/page_optm/settings_css.tpl.php:184
msgid "Optimize CSS delivery."
msgstr "Optimaliseren van afleveren CSS."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "Dit verwijdert alle gegenereerde kritieke CSS bestanden"

#: tpl/dash/dashboard.tpl.php:440 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "Kritieke CSS"

#: src/doc.cls.php:56
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "Deze site gebruikt caching om een snellere responstijd en een betere gebruikerservaring te bereiken. Caching slaat mogelijk duplicate kopieën op van elke webpagina die op deze site wordt weergegeven. Alle cachebestanden zijn tijdelijk, en worden nooit benaderd door een derde partij, behalve als dit nodig is voor technische ondersteuning van de leverancier van de cacheplugin. Cache bestanden verlopen op basis van een schema dat wordt ingesteld door de beheerder van de site, maar kunnen indien nodig eenvoudig worden verwijderd door de beheerder voordat ze verlopen."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Dit uitschakelen kan ervoor zorgen dat door AJAX getriggerde WordPress taken niet meer werken."

#: src/utility.cls.php:236
msgid "right now"
msgstr "nu"

#: src/utility.cls.php:236
msgid "just now"
msgstr "net nu"

#: tpl/img_optm/summary.tpl.php:211
msgid "Saved"
msgstr "Opgeslagen"

#: tpl/img_optm/summary.tpl.php:205
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Laatst uitgevoerd"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:197
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "Je kunt de optimalisatie niet terugdraaien zodra de back-ups zijn verwijderd!"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:196
msgid "This is irreversible."
msgstr "Dit kan niet ongedaan worden gemaakt."

#: tpl/img_optm/summary.tpl.php:216
msgid "Remove Original Image Backups"
msgstr "Verwijder back-ups van originele afbeeldingen"

#: tpl/img_optm/summary.tpl.php:215
msgid "Are you sure you want to remove all image backups?"
msgstr "Weet je zeker dat je alle afbeeldingen back-ups wil verwijderen?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:166
msgid "Total"
msgstr "Totaal"

#: tpl/img_optm/summary.tpl.php:163 tpl/img_optm/summary.tpl.php:208
msgid "Files"
msgstr "Bestanden"

#: tpl/img_optm/summary.tpl.php:159
msgid "Last calculated"
msgstr "Laatst berekend"

#: tpl/img_optm/summary.tpl.php:174
msgid "Calculate Original Image Storage"
msgstr "Bereken de opslagruimte van originele afbeeldingen"

#: tpl/img_optm/summary.tpl.php:148
msgid "Storage Optimization"
msgstr "Opslagruimte optimaliseren"

#: tpl/img_optm/settings.tpl.php:142
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Schakel vervanging van WebP in in %s elementen die zijn gegenereerd buiten de WordPress logica."

#: src/lang.cls.php:209
msgid "WebP For Extra srcset"
msgstr "WebP voor extra srcset"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:128
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Gebruik het formaat %1$s of %2$s (element is optioneel)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:127
msgid "Only attributes listed here will be replaced."
msgstr "Alleen hier genoemde attributen worden vervangen."

#: tpl/img_optm/settings.tpl.php:126
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Specificeer welke element attributen worden vervangen door WebP."

#: src/lang.cls.php:208
msgid "WebP Attribute To Replace"
msgstr "Te vervangen WebP attribuut"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Alleen bestanden in deze mappen zullen verwijzen naar de CDN."

#: src/lang.cls.php:239
msgid "Included Directories"
msgstr "Inbegrepen Directory's"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Een verwijder alles wordt uitgevoerd wanneer WordPress deze hooks draait."

#: src/lang.cls.php:216
msgid "Purge All Hooks"
msgstr "Alle Hooks Verwijderen"

#: src/purge.cls.php:205
msgid "Purged all caches successfully."
msgstr "Alle caches met succes schoongemaakt."

#: src/gui.cls.php:480 src/gui.cls.php:580 src/gui.cls.php:630
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:424
msgid "Forced cacheable"
msgstr "Geforceerd cachebaar"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Paden die deze string bevatten worden gecached, ongeacht niet-cache instellingen."

#: src/lang.cls.php:129
msgid "Force Cache URIs"
msgstr "Forceer Cachen URI's"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Instellingen voor Uitsluiten"

#: tpl/toolbox/settings-debug.tpl.php:35
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Dit schakelt LSCache en alle optimalisatiekenmerken uit voor debug doelstellingen."

#: src/lang.cls.php:257 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Schakel alle functies uit"

#: src/gui.cls.php:507 src/gui.cls.php:667 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Opcode cache"

#: src/gui.cls.php:488 src/gui.cls.php:638 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "CSS/JS cache"

#: src/gui.cls.php:735 tpl/img_optm/summary.tpl.php:141
msgid "Remove all previous unfinished image optimization requests."
msgstr "Verwijder alle eerdere niet-voltooide aanvragen voor optimaliseren van afbeeldingen."

#: src/gui.cls.php:736 tpl/img_optm/summary.tpl.php:143
msgid "Clean Up Unfinished Data"
msgstr "Onafgewerkte gegevens opruimen"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Sluit je bij ons aan op Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Sluit je aan bij de %s community."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Wil je in contact komen met andere LiteSpeed gebruikers?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Verkrijg het van <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:202
msgid "Your API key / token is used to access %s APIs."
msgstr "Je API sleutel/token wordt gebruikt om toegang te krijgen tot %s API's."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Je e-mail adres op %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Gebruik %s API functies."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Om de CDN-hostnaam willekeurig te maken, definieer je meerdere hostnamen voor dezelfde bronnen."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Sluit je aan bij de LiteSpeed community op Slack"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Bezoek het LSCWP ondersteuningsforum"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Waardeer %s op %s"

#: src/lang.cls.php:29 tpl/dash/dashboard.tpl.php:371
msgid "Images notified to pull"
msgstr "Afbeeldingen notified to pull"

#: tpl/img_optm/summary.tpl.php:244
msgid "What is a group?"
msgstr "Wat is een groep?"

#: src/admin-display.cls.php:1228
msgid "%s image"
msgstr "%s afbeelding"

#: src/admin-display.cls.php:1225
msgid "%s group"
msgstr "%s groep"

#: src/admin-display.cls.php:1215
msgid "%s images"
msgstr "%s afbeeldingen"

#: src/admin-display.cls.php:1212
msgid "%s groups"
msgstr "%s groepen"

#: src/crawler.cls.php:960
msgid "Guest"
msgstr "Gast"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Als je de site wilt crawlen als een ingelogde gebruiker, voer je de gebruikers-ID's in die moeten worden gesimuleerd."

#: src/lang.cls.php:251
msgid "Role Simulation"
msgstr "Rol simulatie"

#: tpl/crawler/summary.tpl.php:176
msgid "running"
msgstr "loopt"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Grootte"

#: tpl/crawler/summary.tpl.php:104 tpl/dash/dashboard.tpl.php:595
msgid "Ended reason"
msgstr "Reden beëindiging"

#: tpl/crawler/summary.tpl.php:97 tpl/dash/dashboard.tpl.php:588
msgid "Last interval"
msgstr "Laatste interval"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:581
msgid "Current crawler started at"
msgstr "Actieve crawler begon om"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Looptijd vorige crawler"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d seconden"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Laatste volledige verwerking voor alle crawlers"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Crawlen van huidige sitemap begon om"

#: tpl/cache/settings_inc.object.tpl.php:213
msgid "Save transients in database when %1$s is %2$s."
msgstr "Sla transients op in de database wanneer %1$s is ingesteld op %2$s."

#: src/lang.cls.php:123
msgid "Store Transients"
msgstr "Sla transients op"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "Als %1$s, %2$s is, dan moet %3$s zijn ingevuld!"

#: tpl/crawler/settings-general.tpl.php:150
msgid "Server allowed max value"
msgstr "Server toegestaan max waarde"

#: tpl/crawler/settings-general.tpl.php:145
msgid "Server enforced value"
msgstr "Server afgedwongen waarde"

#: tpl/crawler/settings-general.tpl.php:44
msgid "Server allowed min value"
msgstr "Server toegestaan min waarde"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/auto_setup.tpl.php:235
#: tpl/cdn/auto_setup.tpl.php:246 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:43
#: tpl/crawler/settings-general.tpl.php:144
#: tpl/crawler/settings-general.tpl.php:149
msgid "NOTE"
msgstr "Opmerking"

#: src/admin-display.cls.php:1181
msgid "Server variable(s) %s available to override this setting."
msgstr "Server variabele(n) %s beschikbaar om deze instelling te overschrijven."

#: src/admin-display.cls.php:1180 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:192
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media.tpl.php:245
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:39
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:80
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:120
#: tpl/page_optm/settings_tuning_css.tpl.php:24
#: tpl/page_optm/settings_tuning_css.tpl.php:84
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:396
msgid "Reset the entire opcode cache successfully."
msgstr "Reset van de volledige opcodecache geslaagd."

#: src/purge.cls.php:384
msgid "Opcode cache is not enabled."
msgstr "Opcode cache is niet ingeschakeld."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Import van instellingenbestand %s geslaagd."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Import mislukt door bestandsfout."

#: tpl/page_optm/settings_css.tpl.php:51 tpl/page_optm/settings_js.tpl.php:40
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Hoe problemen op te lossen, veroorzaakt door optimalisatie van CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Dit leidt tot meer serververzoeken en dus een hogere belasting van de server."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a visitor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Wanneer een bezoeker over een pagina link hovert, laadt je die pagina vooraf. Dit zal het bezoek aan die link versnellen."

#: src/lang.cls.php:218
msgid "Instant Click"
msgstr "Instant Click"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Reset de volledige opcodecache"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Hiermee importeer je instellingen uit een bestand en worden alle huidige instellingen overschreven."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Laatst geïmporteerd"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importeer"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Importeer instellingen"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Dit zal alle huidige LiteSpeed Cache instellingen exporteren en het als bestand bewaren."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Laatst geëxporteerd"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exporteer"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Exporteer instellingen"

#: tpl/presets/entry.tpl.php:7 tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Import/Export"

#: tpl/cache/settings_inc.object.tpl.php:187
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Gebruik de keep-alive header om caching te versnellen."

#: tpl/cache/settings_inc.object.tpl.php:147
msgid "Database to be used"
msgstr "Te gebruiken database"

#: src/lang.cls.php:118
msgid "Redis Database ID"
msgstr "Redis database ID"

#: tpl/cache/settings_inc.object.tpl.php:134
msgid "Specify the password used when connecting."
msgstr "Geef wachtwoord op voor het maken van verbinding."

#: src/lang.cls.php:117
msgid "Password"
msgstr "Wachtwoord"

#: tpl/cache/settings_inc.object.tpl.php:121
msgid "Only available when %s is installed."
msgstr "Alleen beschikbaar als %s is geïnstalleerd."

#: src/lang.cls.php:116
msgid "Username"
msgstr "Gebruikersnaam"

#: tpl/cache/settings_inc.object.tpl.php:79
msgid "Your %s Hostname or IP address."
msgstr "Je %s hostnaam of IP-adres."

#: src/lang.cls.php:112
msgid "Method"
msgstr "Methode"

#: src/purge.cls.php:437
msgid "Purge all object caches successfully."
msgstr "Opschonen van alle object caches succesvol."

#: src/purge.cls.php:424
msgid "Object cache is not enabled."
msgstr "Object cache is niet ingeschakeld."

#: tpl/cache/settings_inc.object.tpl.php:200
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Verhoog de reactiesnelheid van beheer pagina's. (Je kunt te maken krijgen met verlopen gegevens)"

#: src/lang.cls.php:122
msgid "Cache WP-Admin"
msgstr "Cache Wp beheer"

#: src/lang.cls.php:121
msgid "Persistent Connection"
msgstr "Blijvende verbinding"

#: src/lang.cls.php:120
msgid "Do Not Cache Groups"
msgstr "Cache geen groepen"

#: tpl/cache/settings_inc.object.tpl.php:160
msgid "Groups cached at the network level."
msgstr "Groepen in cache op netwerkniveau."

#: src/lang.cls.php:119
msgid "Global Groups"
msgstr "Globale groepen"

#: tpl/cache/settings_inc.object.tpl.php:53
msgid "Connection Test"
msgstr "Verbindingstest"

#: tpl/cache/settings_inc.object.tpl.php:51
#: tpl/cache/settings_inc.object.tpl.php:52
msgid "%s Extension"
msgstr "%s extensie"

#: tpl/cache/settings_inc.object.tpl.php:48 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:130
msgid "Status"
msgstr "Status"

#: tpl/cache/settings_inc.object.tpl.php:108
msgid "Default TTL for cached objects."
msgstr "Standaard TTL voor objecten in de cache."

#: src/lang.cls.php:115
msgid "Default Object Lifetime"
msgstr "Standaard object levensduur"

#: src/lang.cls.php:114
msgid "Port"
msgstr "Poort"

#: src/lang.cls.php:113
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:497 src/gui.cls.php:657 src/lang.cls.php:111
#: tpl/dash/dashboard.tpl.php:420 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Object cache"

#: tpl/cache/settings_inc.object.tpl.php:21
msgid "Failed"
msgstr "Mislukt"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Geslaagd"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Niet beschikbaar"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Schoon alle object caches op"

#: src/cdn/cloudflare.cls.php:250 src/cdn/cloudflare.cls.php:272
msgid "Failed to communicate with Cloudflare"
msgstr "Kon geen verbinding maken met CloudFlare"

#: src/cdn/cloudflare.cls.php:263
msgid "Communicated with Cloudflare successfully."
msgstr "Communicatie met Cloudflare geslaagd."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "Geen beschikbare CloudFlare zone"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Cloudflare met succes op de hoogte gesteld om alles te verwijderen."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "Cloudflare API staat uit."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Melding aan Cloudflare om ontwikkel modus in te stellen op %s geslaagd."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Eenmaal opgeslagen, wordt deze gekoppeld aan de huidige lijst en automatisch voltooid."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "Je kunt ook een deel van de domeinnaam opgeven."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Domein"

#: src/lang.cls.php:241
msgid "Cloudflare API"
msgstr "Cloudflare API"

#: tpl/cdn/manage.tpl.php:78
msgid "Purge Everything"
msgstr "Schoon alles op"

#: tpl/cdn/manage.tpl.php:72
msgid "Cloudflare Cache"
msgstr "Cloudflare Cache"

#: tpl/cdn/manage.tpl.php:66
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Ontwikkel modus wordt na 3 uur automatisch uitgeschakeld."

#: tpl/cdn/manage.tpl.php:65
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Negeer tijdelijk de Cloudflare cache. Zo worden aanpassingen aan je site direct zichtbaar."

#: tpl/cdn/manage.tpl.php:57
msgid "Development mode will be automatically turned off in %s."
msgstr "Ontwikkel modus wordt automatisch uitgeschakeld in %s."

#: tpl/cdn/manage.tpl.php:56
msgid "Current status is %s."
msgstr "Huidige status is %s."

#: tpl/cdn/manage.tpl.php:51
msgid "Current status is %1$s since %2$s."
msgstr "Huidige status is %1$s sinds %2$s."

#: tpl/cdn/manage.tpl.php:42
msgid "Check Status"
msgstr "Check status"

#: tpl/cdn/manage.tpl.php:39
msgid "Turn OFF"
msgstr "Zet UIT"

#: tpl/cdn/manage.tpl.php:36
msgid "Turn ON"
msgstr "Inschakelen"

#: tpl/cdn/manage.tpl.php:34
msgid "Development Mode"
msgstr "Ontwikkel modus"

#: tpl/cdn/manage.tpl.php:31
msgid "Cloudflare Zone"
msgstr "Cloudflare Zone"

#: tpl/cdn/manage.tpl.php:30
msgid "Cloudflare Domain"
msgstr "Cloudflare Domain"

#: src/gui.cls.php:647 tpl/cdn/manage.tpl.php:19
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "Bijvoorbeeld"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Prefetchen van DNS kan de wachttijd verminderen voor gebruikers."

#: src/lang.cls.php:156
msgid "DNS Prefetch"
msgstr "DNS Prefetch"

#: tpl/page_optm/settings_media.tpl.php:35
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Stijl toevoegen aan je lazy-loaded afbeeldingen"

#: src/admin-display.cls.php:1043 src/admin-display.cls.php:1048
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Standaard waarde"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Statische bestandstype links die moeten worden vervangen door CDN-links."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Als je bijvoorbeeld parameters wilt laten vallen die beginnen met %s, kan %s hier worden gebruikt."

#: src/lang.cls.php:109
msgid "Drop Query String"
msgstr "Zoekopdracht string laten vervallen"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Schakel deze optie in als je gebruik maakt van zowel HTTP als HTTPS op hetzelfde domein en merkt dat caching niet altijd goed werkt."

#: src/lang.cls.php:217
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Verbeter de compatibiliteit van HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:311
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Verwijder alle vorige afbeelding optimalisatie aanvragen/resultaten, maak voltooide optimalisaties ongedaan en verwijder alle optimalisatie bestanden."

#: tpl/img_optm/summary.tpl.php:307
msgid "Destroy All Optimization Data"
msgstr "Wis alle optimalisatie gegevens!"

#: tpl/img_optm/summary.tpl.php:257
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Scant naar nieuwe niet-geoptimaliseerde thumbnails van afbeeldingen en verzendt de benodigde optimalisatie aanvragen opnieuw."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Hierdoor worden geoptimaliseerde bestanden groter."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Behoud EXIF gegevens (copyright, GPS, trefwoorden, etc) bij optimalisatie."

#: tpl/toolbox/log_viewer.tpl.php:61
msgid "Clear Logs"
msgstr "Logs wissen"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Ga naar de <a %s>Veelgestelde vragen</a> om de winkelwagen te testen."

#: src/utility.cls.php:239
msgid " %s ago"
msgstr " %s geleden"

#: src/media.cls.php:340
msgid "WebP saved %s"
msgstr "WebP %s bespaard"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Bij problemen graag het rapportnummer vermelden in je melding aan ondersteuning."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Genereert ook een API sleutel voor de LiteSpeed server."

#: tpl/img_optm/summary.tpl.php:123
msgid "Last pull initiated by cron at %s."
msgstr "Laatste pull gestart door cron op %s."

#: tpl/img_optm/summary.tpl.php:67
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Als de cron job loopt, worden afbeeldingen automatisch opgehaald."

#: tpl/img_optm/summary.tpl.php:67
msgid "Only press the button if the pull cron job is disabled."
msgstr "Klik alleen op de button als de pull cron taak is uitgeschakeld."

#: tpl/img_optm/summary.tpl.php:68
msgid "Pull Images"
msgstr "Haal afbeelding op"

#: tpl/img_optm/summary.tpl.php:108
msgid "This process is automatic."
msgstr "Dit proces gaat automatisch."

#: tpl/dash/dashboard.tpl.php:381 tpl/img_optm/summary.tpl.php:275
msgid "Last Request"
msgstr "Laatste verzoek"

#: tpl/dash/dashboard.tpl.php:353 tpl/img_optm/summary.tpl.php:272
msgid "Images Pulled"
msgstr "Opgehaalde afbeeldingen"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Rapport"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Stuur dit rapport naar LiteSpeed. Gebruik het rapportnummer als je een bericht plaatst in het WordPress ondersteuning forum."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Verzend naar LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Rapportdatum"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Rapportnummer"

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr "LiteSpeed optimalisatie"

#: src/lang.cls.php:162
msgid "Load Google Fonts Asynchronously"
msgstr "Google fonts asynchroon laden"

#: src/lang.cls.php:95
msgid "Browser Cache TTL"
msgstr "Browser Cache TTL"

#: tpl/img_optm/summary.tpl.php:279
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Resultaten kun je controleren in <a %s>Media Library</a>."

#: src/doc.cls.php:74 src/doc.cls.php:128 tpl/cdn/manage.tpl.php:67
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:48
#: tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Meer informatie"

#: tpl/img_optm/summary.tpl.php:236
msgid "Image groups total"
msgstr "Afbeelding groepen totaal"

#: src/lang.cls.php:30
msgid "Images optimized and pulled"
msgstr "Aantal opgehaalde en geoptimaliseerde afbeeldingen"

#: src/lang.cls.php:28 tpl/dash/dashboard.tpl.php:361
msgid "Images requested"
msgstr "Aantal opgevraagde afbeeldingen"

#: src/img-optm.cls.php:1719 src/img-optm.cls.php:1765
msgid "Switched to optimized file successfully."
msgstr "Omschakelen naar geoptimaliseerd bestand geslaagd."

#: src/img-optm.cls.php:1759
msgid "Restored original file successfully."
msgstr "Terugzetten oorspronkelijk bestand geslaagd."

#: src/img-optm.cls.php:1743
msgid "Enabled WebP file successfully."
msgstr "Inschakelen WebP bestand geslaagd."

#: src/img-optm.cls.php:1738
msgid "Disabled WebP file successfully."
msgstr "Uitschakelen WebP bestand geslaagd."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Als je dit uitschakelt, stopt de cron-taak die verantwoordelijk is voor het ophalen van geoptimaliseerde afbeeldingen van LiteSpeed's Image Server."

#: tpl/img_optm/settings.media_webp.tpl.php:18
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Verbeter de laadtijd aanzienlijk door afbeeldingen te vervangen door hun geoptimaliseerde %s versies."

#: src/lang.cls.php:205
msgid "Image WebP Replacement"
msgstr "Afbeeldingsformaat veranderen in WebP"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Geselecteerde rollen worden uitgesloten van de cache."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:13
#: tpl/page_optm/entry.tpl.php:14
msgid "Tuning"
msgstr "Fijninstelling"

#: tpl/page_optm/settings_tuning.tpl.php:147
msgid "Selected roles will be excluded from all optimizations."
msgstr "De gekozen rollen worden uitgesloten van alle optimalisaties."

#: src/lang.cls.php:173
msgid "Role Excludes"
msgstr "Uitgesloten rol"

#: tpl/general/settings_tuning.tpl.php:8
#: tpl/page_optm/settings_tuning.tpl.php:20
#: tpl/page_optm/settings_tuning_css.tpl.php:7
msgid "Tuning Settings"
msgstr "Instellingen verfijnen"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Als de tag -slug niet wordt gevonden, wordt de tag tijdens het opslaan uit de lijst verwijderd."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Als de categorie naam niet wordt gevonden, wordt de categorie bij opslaan van de lijst verwijderd."

#: tpl/img_optm/summary.tpl.php:107
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Als de optimalisatie op de LiteSpeed server klaar is, krijgt je site een seintje om de geoptimaliseerde afbeeldingen weer op te halen."

#: tpl/dash/dashboard.tpl.php:344 tpl/img_optm/summary.tpl.php:64
msgid "Send Optimization Request"
msgstr "Verzend optimalisatie aanvraag"

#: tpl/img_optm/summary.tpl.php:227
msgid "Image Information"
msgstr "Afbeeldingsgegevens"

#: tpl/dash/dashboard.tpl.php:350 tpl/img_optm/summary.tpl.php:269
msgid "Total Reduction"
msgstr "Totale reductie"

#: tpl/img_optm/summary.tpl.php:266
msgid "Optimization Summary"
msgstr "Samenvatting van de optimalisatie"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "LiteSpeed Cache optimalisatie van afbeeldingen"

#: src/admin-display.cls.php:129 src/gui.cls.php:613
#: tpl/dash/dashboard.tpl.php:52 tpl/dash/network_dash.tpl.php:27
#: tpl/presets/standard.tpl.php:24
msgid "Image Optimization"
msgstr "Optimalisatie afbeeldingen"

#: tpl/page_optm/settings_media.tpl.php:52
msgid "For example, %s can be used for a transparent placeholder."
msgstr "%s kan bijvoorbeeld gebruikt worden voor een transparante placeholder."

#: tpl/page_optm/settings_media.tpl.php:51
msgid "By default a gray image placeholder %s will be used."
msgstr "Standaard wordt een grijze afbeelding plaatshouder %s gebruikt."

#: tpl/page_optm/settings_media.tpl.php:50
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Dit kan ook in %2$s vooraf worden gedefinieerd met behulp van constante %1$s, waarbij deze instelling voorrang krijgt."

#: tpl/page_optm/settings_media.tpl.php:49
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Stel een base64 afbeelding in om te gebruiken als een plaatshouder terwijl de afbeeldingen worden geladen."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:61
#: tpl/page_optm/settings_tuning.tpl.php:82
#: tpl/page_optm/settings_tuning.tpl.php:103
#: tpl/page_optm/settings_tuning_css.tpl.php:26
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Elementen in de HTML code met attribuut %s worden uitgesloten."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:40
#: tpl/page_optm/settings_tuning.tpl.php:60
#: tpl/page_optm/settings_tuning.tpl.php:81
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:121
#: tpl/page_optm/settings_tuning_css.tpl.php:25
#: tpl/page_optm/settings_tuning_css.tpl.php:85
msgid "Filter %s is supported."
msgstr "Filter %s wordt ondersteund."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Opgegeven afbeeldingen maken geen gebruik van lazy-load."

#: src/lang.cls.php:180
msgid "Lazy Load Image Excludes"
msgstr "Afbeelding(en) uitsluiten van lazy-load"

#: src/gui.cls.php:457
msgid "No optimization"
msgstr "Geen optimalisatie"

#: tpl/page_optm/settings_tuning.tpl.php:117
msgid "Prevent any optimization of listed pages."
msgstr "Voorkom optimalisatie van opgegeven pagina's."

#: src/lang.cls.php:171
msgid "URI Excludes"
msgstr "URI uitsluitingen"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Maak geen gebruik van de WordPress emoji, maar van de standaard emoji in de browser."

#: src/doc.cls.php:114
msgid "Both full URLs and partial strings can be used."
msgstr "Zowel het gebruik van de volledige URL als een deel ervan kan worden gebruikt."

#: tpl/page_optm/settings_media.tpl.php:221
msgid "Load iframes only when they enter the viewport."
msgstr "Laad iframes pas als ze in het zichtbare deel van het scherm komen."

#: src/lang.cls.php:196
msgid "Lazy Load Iframes"
msgstr "Lazy-load Iframes"

#: tpl/page_optm/settings_media.tpl.php:31
#: tpl/page_optm/settings_media.tpl.php:222
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Kan de laadtijd van de pagina verbeteren door het aantal HTTP verzoeken te verminderen."

#: tpl/page_optm/settings_media.tpl.php:30
msgid "Load images only when they enter the viewport."
msgstr "Laad afbeeldingen pas als ze zichtbaar worden."

#: src/lang.cls.php:179
msgid "Lazy Load Images"
msgstr "Lazy-load afbeeldingen"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:16
msgid "Media Settings"
msgstr "Media instellingen"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "Bijvoorbeeld, voor %s, %s en %s kunnen hier worden gebruikt."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s wordt ondersteund (match nul of meer tekens). Als je bijvoorbeeld %2$s en %3$s wilt matchen, gebruik je %4$s."

#: src/admin-display.cls.php:1196
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Voeg %s toe aan het begin van het item om het begin aan te passen."

#: src/admin-display.cls.php:1194
msgid "For example, for %s, %s can be used here."
msgstr "Bijvoorbeeld, voor %s, %s kan hier worden gebruikt."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Misschien later"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "Ik heb al een beoordeling achtergelaten"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Welkom bij LiteSpeed"

#: src/lang.cls.php:169 tpl/presets/standard.tpl.php:44
msgid "Remove WordPress Emoji"
msgstr "Verwijder WordPress emoji"

#: src/gui.cls.php:465
msgid "More settings"
msgstr "Meer instellingen"

#: src/gui.cls.php:446
msgid "Private cache"
msgstr "Privé cache"

#: src/gui.cls.php:435
msgid "Non cacheable"
msgstr "Niet-cacheable"

#: src/gui.cls.php:412
msgid "Mark this page as "
msgstr "Markeer pagina als "

#: src/gui.cls.php:388 src/gui.cls.php:403
msgid "Purge this page"
msgstr "Schoon deze pagina op"

#: src/lang.cls.php:153
msgid "Load JS Deferred"
msgstr "Stel laden JS uit"

#: tpl/page_optm/settings_tuning_css.tpl.php:131
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Geef benodigde stijlregels (CSS) op voor above-the-fold deel van de pagina als je %s inschakelt."

#: src/lang.cls.php:164
msgid "Critical CSS Rules"
msgstr "Kritieke CSS regels"

#: src/lang.cls.php:149 tpl/page_optm/settings_tuning_css.tpl.php:131
msgid "Load CSS Asynchronously"
msgstr "CSS asynchroon laden"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Voorkom het laden van Google fonts op al je pagina's."

#: src/lang.cls.php:163
msgid "Remove Google Fonts"
msgstr "Verwijder Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:185
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:73
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Dit kan je snelheidsscore verbeteren in diensten als Pingdom, GTmetrix en PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:79
msgid "Remove query strings from internal static resources."
msgstr "Verwijder query strings van interne statische gegevensbronnen."

#: src/lang.cls.php:161
msgid "Remove Query Strings"
msgstr "Verwijder query strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "Je kunt ook browser caching in server beheer inschakelen. <a %s>Meer informatie over de LiteSpeed browser cache instellingen</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "Browser caching slaat statische bestanden op in de browser van de gebruiker. Schakel deze optie in om de laadtijd bij een volgend bezoek fors te verminderen."

#: src/lang.cls.php:88 tpl/dash/dashboard.tpl.php:421
#: tpl/presets/standard.tpl.php:12
msgid "Browser Cache"
msgstr "Browser Cache"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "tags"

#: src/lang.cls.php:134
msgid "Do Not Cache Tags"
msgstr "Tags niet cachen"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "Voeg %2$s in om %1$s uit te sluiten."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "categorieën"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "Om te voorkomen dat %s in de cache wordt opgeslagen, voer je deze hier in."

#: src/lang.cls.php:133
msgid "Do Not Cache Categories"
msgstr "Categorieën niet opnemen in cache"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "De query string met deze parameters wordt niet in de cache opgeslagen."

#: src/lang.cls.php:132
msgid "Do Not Cache Query Strings"
msgstr "Query strings niet cachen"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Bestandslocaties die deze tekst bevatten worden niet gecached."

#: src/lang.cls.php:131
msgid "Do Not Cache URIs"
msgstr "URIs niet cachen"

#: tpl/toolbox/settings-debug.tpl.php:51
msgid "The logs will be output to %s."
msgstr "Logboeken worden geplaatst in %s."

#: src/admin-display.cls.php:1198 src/doc.cls.php:96
msgid "One per line."
msgstr "Eén per regel."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "URI-paden die deze tekenreeksen bevatten, worden NIET als openbaar in de cache opgeslagen."

#: src/lang.cls.php:108
msgid "Private Cached URIs"
msgstr "Privé cached-URI's"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Bestandslocaties die deze tekst bevatten maken geen gebruik van de CDN."

#: src/lang.cls.php:240
msgid "Exclude Path"
msgstr "Bestandslocatie uitsluiten"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Dit is van invloed op alle tags die deze kenmerken bevatten: %s %s %s."

#: src/lang.cls.php:236 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Bestandstypes insluiten"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Serveer alle JavaScript-bestanden via het CDN. Dit is van invloed op alle in de wacht geplaatste WP JavaScript-bestanden."

#: src/lang.cls.php:235
msgid "Include JS"
msgstr "JS opnemen"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Gebruik alle CSS bestanden vanaf een CDN. Dit betreft alle door WordPress ingesloten CSS bestanden."

#: src/lang.cls.php:234
msgid "Include CSS"
msgstr "CSS opnemen"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Laad alle afbeeldingen vanaf de CDN. Heeft betrekking op alle afbeeldingen, HTML %s tags en CSS %s attributen."

#: src/lang.cls.php:233
msgid "Include Images"
msgstr "Afbeeldingen opnemen"

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr "Te gebruiken URL van het Content Delivery Network. Bijvoorbeeld %s"

#: src/lang.cls.php:232
msgid "CDN URL"
msgstr "URL van het CDN"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "URL van je site die de CDN moet laten zien, beginnend met %1$s. Bijvoorbeeld %2$s."

#: src/lang.cls.php:238
msgid "Original URLs"
msgstr "Originele URLs"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "CDN instellingen"

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:239 src/admin-display.cls.php:901
#: src/admin-display.cls.php:928 src/admin-display.cls.php:980
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:213 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:82 tpl/page_optm/settings_js.tpl.php:69
#: tpl/page_optm/settings_media.tpl.php:168
#: tpl/toolbox/settings-debug.tpl.php:46
msgid "OFF"
msgstr "UIT"

#: src/admin-display.cls.php:238 src/admin-display.cls.php:900
#: src/admin-display.cls.php:929 src/admin-display.cls.php:980
#: src/doc.cls.php:31 tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:189
#: tpl/page_optm/settings_media.tpl.php:165
#: tpl/toolbox/settings-debug.tpl.php:46
msgid "ON"
msgstr "AAN"

#: src/purge.cls.php:368
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "LiteSpeed Web Server gemeld om alle CSS/JS te verwijderen."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Verklein HTML inhoud."

#: src/lang.cls.php:147
msgid "HTML Minify"
msgstr "Verklein HTML"

#: src/lang.cls.php:160
msgid "JS Excludes"
msgstr "JS uitsluitingen"

#: src/data.upgrade.func.php:118 src/lang.cls.php:145
msgid "JS Combine"
msgstr "Bundel JS"

#: src/lang.cls.php:144
msgid "JS Minify"
msgstr "Verklein JS"

#: src/lang.cls.php:158
msgid "CSS Excludes"
msgstr "Uit te sluiten CSS bestanden"

#: src/lang.cls.php:137
msgid "CSS Combine"
msgstr "Bundel CSS"

#: src/lang.cls.php:136
msgid "CSS Minify"
msgstr "Verklein CSS"

#: tpl/page_optm/entry.tpl.php:33
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Test de werking van je site grondig als je deze opties gebruikt. Leeg alle caches na wijziging van instellingen voor verkleinen en/of bundelen."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Dit zal alleen alle geminificeerde/gecombineerde CSS/JS entries verwijderen"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Verwijder %s fout"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Database Optimalisatie"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimaliseer alle tabellen in de database"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimaliseer Tabellen"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Opschonen alle transient opties"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Alle Transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Opschonen alle verlopen transient opties"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Verlopen Transients"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Alle trackbacks en pingbacks opschonen"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/Pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Alle reacties in de prullenbak opschonen"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Reacties in de Prullenbak"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Alle spam reacties opschonen"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Spam Reacties"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Alle berichten/pagina's in de prullenbak opschonen"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Berichten in de prullenbak"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Alle automatisch opgeslagen concepten opschonen"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Automatische Concepten"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Alle bericht revisies opschonen"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Berichtrevisies"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Alles Opschonen"

#: src/db-optm.cls.php:220
msgid "Optimized all tables."
msgstr "Alle tabellen geoptimaliseerd."

#: src/db-optm.cls.php:210
msgid "Clean all transients successfully."
msgstr "Alle transients succesvol opgeschoond."

#: src/db-optm.cls.php:206
msgid "Clean expired transients successfully."
msgstr "Verlopen transients succesvol opgeschoond."

#: src/db-optm.cls.php:202
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Trackbacks en pingbacks succesvol opgeschoond."

#: src/db-optm.cls.php:198
msgid "Clean trashed comments successfully."
msgstr "Reacties in de prullenbak succesvol opgeschoond."

#: src/db-optm.cls.php:194
msgid "Clean spam comments successfully."
msgstr "Spam reacties succesvol opgeschoond."

#: src/db-optm.cls.php:190
msgid "Clean trashed posts and pages successfully."
msgstr "Berichten/Pagina's in de prullenbak succesvol opgeschoond."

#: src/db-optm.cls.php:186
msgid "Clean auto drafts successfully."
msgstr "Automatische concepten succesvol opgeschoond."

#: src/db-optm.cls.php:182
msgid "Clean post revisions successfully."
msgstr "Bericht revisies succesvol opgeschoond."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Alles succesvol opgeschoond."

#: src/lang.cls.php:90
msgid "Default Private Cache TTL"
msgstr "Privé Cache TTL"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Als je site publieke inhoud bevat die bepaalde gebruikersrol kan zien, maar andere rollen niet kunnen, kun je een Vary-groep opgeven voor die gebruikersrollen. Bijvoorbeeld, door een groep met beheerder te specificeren, kan er een aparte openbare cache-pagina zijn die op beheerders is aangepast (met koppelingen \"edit\", enz.), Terwijl alle andere gebruikersrollen de standaard openbare pagina zien."

#: src/lang.cls.php:215 tpl/page_optm/settings_css.tpl.php:121
#: tpl/page_optm/settings_css.tpl.php:238 tpl/page_optm/settings_vpi.tpl.php:67
msgid "Vary Group"
msgstr "Vary Groep"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Cache het ingebouwde reactieformulier ESI blok."

#: src/lang.cls.php:213
msgid "Cache Comment Form"
msgstr "Cache WP Reacties"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Cache het ingebouwde beheer balk ESI blok."

#: src/lang.cls.php:212
msgid "Cache Admin Bar"
msgstr "Cache WP Toolbar"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Schakel IN om openbare pagina's voor ingelogde gebruikers in de cache te plaatsen en de beheerdersbalk en het reactieformulier via ESI blokken te bedienen. Deze twee blokken worden uit het cachegeheugen verwijderd, tenzij hieronder ingeschakeld."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "Met ESI kunnen delen van een dynamische pagina worden aangegeven. Met andere woorden, met ESI kun je gaten op een pagina aangeven en die gaten vervolgens invullen met inhoud die privé kan worden gecached, met een eigen cachegeheugen worden gecached of helemaal niet gecached."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Met ESI (Edge Side Includes) kunnen pagina's worden weergegeven vanuit cache voor ingelogde gebruikers."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privé"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Publiek"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Instellingen voor opschonen"

#: src/lang.cls.php:105
msgid "Cache PHP Resources"
msgstr "Cache PHP Resources"

#: src/lang.cls.php:106 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache Mobiel"

#: tpl/toolbox/settings-debug.tpl.php:84
msgid "Advanced level will log more details."
msgstr "De optie \"Geavanceerd\" geeft een logbestand met meer details."

#: tpl/presets/standard.tpl.php:21 tpl/toolbox/settings-debug.tpl.php:82
msgid "Basic"
msgstr "Basis"

#: tpl/crawler/settings-general.tpl.php:139
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "De maximale gemiddelde serverbelasting die is toegestaan ​​tijdens het crawlen. Het aantal crawler threads in gebruik wordt actief verminderd tot de gemiddelde serverbelasting onder deze limiet valt. Als dit niet met een enkele thread kan worden bereikt, wordt de huidige crawler-run beëindigd."

#: src/lang.cls.php:103
msgid "Cache Login Page"
msgstr "Cache Login Pagina"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cache verzoeken die door de Wordpress REST API worden aangeroepen."

#: src/lang.cls.php:102
msgid "Cache REST API"
msgstr "Cache REST API"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "In afwachting zijnde reacties van reageerders (via privé cache). Het uitschakelen van deze optie zal niet-gecachete pagina's laten zien aan reageerders. (LSWS %s verplicht)"

#: src/lang.cls.php:101
msgid "Cache Commenters"
msgstr "Cache Reageerders"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Privé cache voor de voorpagina (voor ingelogde gebruikers). (LSWS %s verplicht)"

#: src/lang.cls.php:100
msgid "Cache Logged-in Users"
msgstr "Ingelogde gebruikers cachen"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Instellingen voor cachebeheer"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Uitsluiten"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:142
msgid "Purge"
msgstr "Verwijderen"

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Onverwachte cache regel %2$s gevonden in %1$s bestand. Deze regel kan ervoor zorgen dat bezoekers oude versies van pagina's te zien krijgen, omdat de browser HTML-pagina's tijdelijk bewaart. Als je er zeker van bent dat HTML-pagina's niet door de browser zijn gecached, kan dit bericht worden genegeerd. (<a %3$s>Meer informatie</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "Servertijd is %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Specificeer de tijd om de \"%s\" lijst op te schonen."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Zowel %1$s als %2$s zijn correct."

#: src/lang.cls.php:128 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Geplande Verwijder Tijd"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "Urls die hier zijn genoemd (één per regel) daarvan wordt de cache automatisch verwijderd op de tijd die is ingesteld bij de optie \"%s\"."

#: src/lang.cls.php:127 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Lijst met (geplande) urls"

#: tpl/toolbox/settings-debug.tpl.php:125
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Kort de Query Strings in in het debug-log om het overzichtelijk te houden."

#: tpl/toolbox/settings-debug.tpl.php:112
msgid "Log requested cookie values."
msgstr "Log aangevraagde cookie waarden."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Hartslag"

#: tpl/toolbox/settings-debug.tpl.php:95
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:261
msgid "Log File Size Limit"
msgstr "Limiet Logbestand"

#: src/htaccess.cls.php:824
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Voeg de volgende codes toe aan het begin van %1$s:</p> %2$s"

#: src/error.cls.php:108 src/error.cls.php:132
msgid "%s file not writable."
msgstr "%s bestand niet schrijfbaar."

#: src/error.cls.php:128
msgid "%s file not readable."
msgstr "%s bestand is niet leesbaar."

#: src/lang.cls.php:263
msgid "Collapse Query Strings"
msgstr "Query strings samenvouwen"

#: src/lang.cls.php:262
msgid "Log Cookies"
msgstr "Log Cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "ESI Instellingen"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Een TTL van 0 betekent dat het niet wordt gecached."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Aanbevolen waarde: 28800 seconden (8 uur)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget Cache TTL:"

#: src/lang.cls.php:211 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "ESI inschakelen"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Bekijk <a %s>Introductie voor het inschakelen van de crawler</a> voor gedetailleerde informatie."

#: src/lang.cls.php:253
msgid "Custom Sitemap"
msgstr "Aangepaste Sitemap"

#: tpl/toolbox/purge.tpl.php:244
msgid "Purge pages by relative or full URL."
msgstr "Opschonen van pagina's op relatieve of volledige URL."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "Deze crawler functie is niet ingeschakeld op de LiteSpeed server. Neem contact op met je hosting/server beheerder."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:23
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:67 tpl/page_optm/settings_css.tpl.php:180
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "WAARSCHUWING"

#: tpl/crawler/summary.tpl.php:111
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Laatst gecrawled:</b> %s item(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "De volgende volledige sitemap crawl begint om"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Mislukt om te schrijven naar %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "Map is niet schrijfbaar: %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Kan geen map maken: %1$s. Error: %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "Map bestaat niet: %s"

#: src/core.cls.php:347
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Er is een melding naar de LiteSPeed Web Server verzonden om de lijst te verwijderen."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Ga naar de <a %s>Informatiepagina</a> voor het testen van de cache."

#: tpl/toolbox/settings-debug.tpl.php:64
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Lijst met toegestane IP-adressen (één per regel) die het toestaan om bepaalde acties uit te voeren in de browser."

#: src/lang.cls.php:250
msgid "Server Load Limit"
msgstr "Server Load Limiet"

#: tpl/crawler/settings-general.tpl.php:109
msgid "Specify Number of Threads to use while crawling."
msgstr "Specificeer het aantal server threads dat je wil gebruiken tijdens het crawlen."

#: tpl/crawler/settings-general.tpl.php:95
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Geef aan (in seconden) hoe lang de crawler moet wachten om de hele sitemap opnieuw te crawlen."

#: src/lang.cls.php:247
msgid "Crawl Interval"
msgstr "Crawl Interval"

#: src/lang.cls.php:246
msgid "Interval Between Runs"
msgstr "Tijd tussen de runs"

#: tpl/crawler/settings-general.tpl.php:66
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Geef aan (in seconden) hoe lang de crawl (steeds) actief is."

#: tpl/crawler/settings-general.tpl.php:39
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Geef de wachttijd aan (in microseconden) tussen de crawl aanvragen."

#: tpl/crawler/settings-general.tpl.php:37
msgid "microseconds"
msgstr "microseconden"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "En een andere WordPress is geïnstalleerd (GEEN MULTISITE) op %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "LiteSpeed Cache Netwerk cache instellingen"

#: tpl/toolbox/purge.tpl.php:179
msgid "Select below for \"Purge by\" options."
msgstr "Selecteer hieronder de opties voor \"Opschonen op\"."

#: tpl/cdn/entry.tpl.php:15
msgid "LiteSpeed Cache CDN"
msgstr "LiteSpeed Cache CDN"

#: tpl/crawler/summary.tpl.php:227
msgid "No crawler meta file generated yet"
msgstr "Nog geen crawler meta file gegenereerd"

#: tpl/crawler/summary.tpl.php:209
msgid "Show crawler status"
msgstr "Toon crawler status"

#: tpl/crawler/summary.tpl.php:202
msgid "Watch Crawler Status"
msgstr "Bekijk Crawler Status"

#: tpl/crawler/summary.tpl.php:197
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Bekijk <a %s>Hooking WP-Cron Into the System Task Scheduler</a> Om de systeem cron taak te creëren."

#: tpl/crawler/summary.tpl.php:194
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "De run frequentie kan worden ingesteld bij de optie \"Tijd tussen de runs\"."

#: tpl/crawler/summary.tpl.php:119
msgid "Manually run"
msgstr "Run handmatig"

#: tpl/crawler/summary.tpl.php:116
msgid "Reset position"
msgstr "Reset positie"

#: tpl/crawler/summary.tpl.php:129
msgid "Run Frequency"
msgstr "Run Frequentie"

#: tpl/crawler/summary.tpl.php:128
msgid "Cron Name"
msgstr "Cron Naam"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Crawler Cron"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minuut"

#: tpl/crawler/summary.tpl.php:34
msgid "%d minutes"
msgstr "%d minuten"

#: tpl/crawler/summary.tpl.php:27
msgid "%d hour"
msgstr "%d uur"

#: tpl/crawler/summary.tpl.php:25
msgid "%d hours"
msgstr "%d uren"

#: tpl/crawler/map.tpl.php:29
msgid "Generated at %s"
msgstr "Gegenereerd op %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "LiteSpeed Cache Crawler"

#: src/lang.cls.php:248
msgid "Threads"
msgstr "Threads"

#: src/lang.cls.php:245
msgid "Run Duration"
msgstr "Actieve run"

#: src/lang.cls.php:244
msgid "Delay"
msgstr "Vertraging"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "Als er vragen zijn, dan is ons team altijd blij om te kunnen helpen en eventuele vragen te beantwoorden op het <a %s> ondersteuningsforum</a>."

#: src/admin-display.cls.php:135 src/lang.cls.php:243
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:664
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "LiteSpeed Web Server gemeld om alle pagina's te verwijderen."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Alle pagina's met \"Recente berichten\" widget"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pagina's"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Dit zal alleen pagina's opschonen"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Opschonen pagina's"

#: tpl/cdn/auto_setup.tpl.php:223
msgid "Action"
msgstr "Actie"

#: src/gui.cls.php:79
msgid "Cancel"
msgstr "Annuleren"

#: tpl/crawler/summary.tpl.php:131
msgid "Activate"
msgstr "Activeren"

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "E-mailadres"

#: tpl/general/settings.tpl.php:103
msgid "Warning"
msgstr "Waarschuwing"

#: src/gui.cls.php:755
msgid "Install Now"
msgstr "Installeer nu"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "De url is verwijderd!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "De blog is opgeschoond!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Alles opgeschoond!"

#: src/purge.cls.php:683
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "De LiteSpeed Web Server zal de cache van de error-pagina's verwijderen."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Als je OpenLiteSpeed ​​gebruikt, moet de server opnieuw worden gestart voor de wijzigingen van kracht worden."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Zo niet, controleer dan de instelling in de <a href=\"%1$s\">Geavanceerd tab</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Als de login cookie onlangs is gewijzigd in de instellingen, log dan uit en opnieuw in."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Er is echter geen mogelijkheid om alle mogelijke aanpassingen te kennen die zijn geïmplementeerd."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "De LiteSpeed ​​Cache plugin wordt gebruikt om pagina's te cachen - een eenvoudige manier om de prestaties van de site te verbeteren."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "De instellingen voor het netwerkbeheer kunnen hier worden overschreden."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Geef aan (in seconden) hoe lang publiek toegankelijke pagina's worden gecached."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Geef aan hoe lang, in seconden, privé pagina's worden gecached."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Het wordt <b>STRENG</b> aanbevolen om de compatibiliteit met andere plugins op een- of meerdere sites eerst te testen."

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by post ID."
msgstr "Opschonen pagina's op bericht ID."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Schoon de LiteSpeed cache items op gemaakt door deze plugin"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s error pages"
msgstr "Opschonen %s foutpagina's"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Dit zal alleen de cache van de voorpagina verwijderen"

#: tpl/toolbox/purge.tpl.php:239
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Opschonen pagina's op tag naam - bijv. %2$s moet worden gebruikt voor de URL %1$s."

#: tpl/toolbox/purge.tpl.php:245
msgid "e.g. Use %s or %s."
msgstr "bijv. Gebruik %s of %s."

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Opschonen pagina's op categorienaam - bijv. %2$s moet worden gebruikt voor de URL %1$s."

#: tpl/toolbox/purge.tpl.php:133
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Gebruik Purge All als alleen de WordPress-site moet worden verwijderd."

#: src/core.cls.php:342
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "De LiteSpeed webserver zal alle cache opschonen."

#: tpl/general/network_settings.tpl.php:21
msgid "Use Primary Site Configuration"
msgstr "Gebruik de primaire site configuratie"

#: tpl/general/network_settings.tpl.php:26
msgid "This will disable the settings page on all subsites."
msgstr "Dit zal de instellingenpagina uitschakelen op alle subsites."

#: tpl/general/network_settings.tpl.php:25
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Controleer deze optie om de configuratie van de primaire site te gebruiken voor alle subsites."

#: src/admin-display.cls.php:769 src/admin-display.cls.php:774
msgid "Save Changes"
msgstr "Wijzigingen opslaan"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "De volgende opties zijn geselecteerd, maar kunnen niet worden bewerkt op deze instellingenpagina."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "De netwerkbeheerder gebruikt de primaire site-configuraties voor alle subsites."

#: tpl/toolbox/purge.tpl.php:125
msgid "Empty Entire Cache"
msgstr "Verwijder alle cache"

#: tpl/toolbox/purge.tpl.php:127
msgid "This action should only be used if things are cached incorrectly."
msgstr "Deze actie moet eigenlijk alleen gebruikt worden als elementen onjuist gecached zijn."

#: tpl/toolbox/purge.tpl.php:126
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Verwijdert alle cache van deze site, <i>inclusief de cache van andere applicaties</i>."

#: tpl/toolbox/purge.tpl.php:132
msgid "This may cause heavy load on the server."
msgstr "Dit zal een zware belasting zijn voor de server."

#: tpl/toolbox/purge.tpl.php:131
msgid "This will clear EVERYTHING inside the cache."
msgstr "Dit zal ALLE cache verwijderen."

#: src/gui.cls.php:580
msgid "LiteSpeed Cache Purge All"
msgstr "LiteSpeed Cache verwijderen"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Je kunt deze plugin deactiveren, als je niet bij LiteSpeed wenst te blijven."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Maak een nieuw bericht (zorg ervoor dat de voorpagina is ingesteld)."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Bezoek de site terwijl je bent uitgelogd."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Voorbeelden van tests zijn:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Controleer daarom de site om ervoor te zorgen dat alles nog steeds goed functioneert."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Dit bericht geeft aan dat de plugin is geïnstalleerd door de hosting/server beheerder."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "LiteSpeed Cache plugin is geïnstalleerd!"

#: src/lang.cls.php:258 tpl/toolbox/log_viewer.tpl.php:11
msgid "Debug Log"
msgstr "Debug Log"

#: tpl/toolbox/settings-debug.tpl.php:46
msgid "Admin IP Only"
msgstr "Alleen beheer IP"

#: tpl/toolbox/settings-debug.tpl.php:50
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "De beheer IP optie zal alleen log berichten op aanvraag van beheer IP's uitvoeren."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Geef aan (in seconden) hoe lang REST aanroepen worden gecached."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "Het rapport bevat gedetailleerde informatie over de Wordpress configuratie."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existence of this cookie."
msgstr "De server zal bepalen of de gebruiker is ingelogd op basis van het bestaan van deze cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning_css.tpl.php:60
msgid "Note"
msgstr "Notitie"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Nadat je gecontroleerd heeft dat de cache in het algemeen werkt, kun je de winkelwagen testen."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Indien ingeschakeld, zal de cache automatisch worden opgeschoond wanneer een plugin, thema of de WordPress core wordt geüpgraded."

#: src/lang.cls.php:125
msgid "Purge All On Upgrade"
msgstr "Alles opschonen bij upgrade"

#: thirdparty/woocommerce.content.tpl.php:31
msgid "Product Update Interval"
msgstr "Product Update Interval"

#: thirdparty/woocommerce.content.tpl.php:52
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Bepaalt hoe wijzingingen in de productvoorraad en de voorraad-status invloed heeft op de product-pagina's de bijbehorende categorie-pagina's."

#: thirdparty/woocommerce.content.tpl.php:39
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Verwijder zowel de product-cache als de categorie-cache wanneer de productvoorraad of de voorraad-status wijzigt."

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Verwijder de categorie-cache niet wanneer de productvoorraad of voorraad-status wijzigt."

#: thirdparty/woocommerce.content.tpl.php:38
msgid "Purge product only when the stock status changes."
msgstr "Product alleen opschonen als de voorraadstatus verandert."

#: thirdparty/woocommerce.content.tpl.php:37
msgid "Purge product and categories only when the stock status changes."
msgstr "Opschonen product en categorie alleen wanneer de voorraad-status wijzigt."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Purge categories only when stock status changes."
msgstr "Schoon categorieën alleen op wanneer de voorraadstatus verandert."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Purge product on changes to the quantity or stock status."
msgstr "Product opschonen bij wijzigingen in de hoeveelheid of voorraadstatus."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr "Htaccess komt niet overeen met de configuratie-optie."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Als je dit instelt op minder dan 30 seconden dan worden de feeds niet gecached."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Geef aan (in seconden) hoe lang de feeds gecached worden."

#: src/lang.cls.php:92
msgid "Default Feed TTL"
msgstr "Feed TTL"

#: src/error.cls.php:136
msgid "Failed to get %s file contents."
msgstr "Kan de inhoud van het bestand %s niet krijgen."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Door deze pagina's te cachen kan de serverprestatie worden verbeterd door onnodige PHP-aanvragen te vermijden."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Sommige thema's en plugin's voegen resources toe via een PHP-aanvraag."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Door deze resources te cachen kan de serverprestatie worden verbeterd door onnodige PHP-aanvragen te vermijden."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico wordt op de meeste pagina's aangevraagd."

#: src/lang.cls.php:104
msgid "Cache favicon.ico"
msgstr "Cache Favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Het uitschakelen van deze optie kan de prestaties negatief beïnvloeden."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Ongeldige login cookie. Ongeldige tekens gevonden."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "WAARSCHUWING: De .htaccess login cookie en de database login cookie komen niet overeen."

#: src/error.cls.php:120
msgid "Invalid login cookie. Please check the %s file."
msgstr "Ongeldige login cookie. Controleer het %s bestand."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "De cache moet kunnen onderscheiden welke gebruiker is ingelogd in welke WordPress-site om correct te kunnen cachen."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Er is een WordPress geïnstalleerd voor %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Voorbeeld use case:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "De cookie die hier wordt gezet zal worden gebruikt voor deze WordPress installatie."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "De server raakt in de war als iedere web-applicatie dezelfde cookie gebruikt om te zien of een gebruiker is ingelogd of niet."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Deze instelling is handig als er meerdere web-applicaties gebruik maken van cookies op hetzelfde domein."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "De standaard login-cookie is %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "MOET UNIEK ZIJN TEN OPZICHTE VAN ANDERE WEBAPPLICATIES."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Geen spaties en hoofdlettergevoelig."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SYNTAX: alfanumeriek en \"_\"."

#: src/lang.cls.php:221
msgid "Login Cookie"
msgstr "Login Cookie"

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "More information about the available commands can be found here."
msgstr "Hier vind je meer informatie over de beschikbare commando's."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Deze instellingen zijn alleen voor GEAVANCEERDE GEBRUIKERS."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Huidige %s inhoud"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:82
msgid "Advanced"
msgstr "Geavanceerd"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Geavanceerde Opties"

#: tpl/toolbox/purge.tpl.php:258
msgid "Purge List"
msgstr "Opschonen lijst"

#: tpl/toolbox/purge.tpl.php:177
msgid "Purge By..."
msgstr "Opschonen op..."

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:57
#: tpl/toolbox/purge.tpl.php:224
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:218
msgid "Tag"
msgstr "Tag"

#: tpl/toolbox/purge.tpl.php:212
msgid "Post ID"
msgstr "Bericht ID"

#: tpl/toolbox/purge.tpl.php:206
msgid "Category"
msgstr "Categorie"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "Let op: Database login cookie kwam niet overeen met je login cookie."

#: src/purge.cls.php:768
msgid "Purge url %s"
msgstr "Opschonen url %s"

#: src/purge.cls.php:737
msgid "Purge tag %s"
msgstr "Opschonen tag %s"

#: src/purge.cls.php:710
msgid "Purge category %s"
msgstr "Opschonen categorie %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Wanneer de cache wordt uitgeschakeld wordt alle cache records voor deze site verwijderd."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:32
msgid "NOTICE"
msgstr "Let op"

#: src/doc.cls.php:127
msgid "This setting will edit the .htaccess file."
msgstr "Deze instelling zal het .htaccess bestand wijzigen."

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr "LiteSpeed Cache bekijk .htaccess"

#: src/error.cls.php:124
msgid "Failed to back up %s file, aborted changes."
msgstr "Fout bij het maken van back-up van %s bestand, de wijzigingen zijn niet doorgevoerd."

#: src/lang.cls.php:219
msgid "Do Not Cache Cookies"
msgstr "Bewaar cookies niet in de cache"

#: src/lang.cls.php:220
msgid "Do Not Cache User Agents"
msgstr "User agents niet cachen"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "Dit is om compatibiliteit te garanderen voordat je de cache voor alle sites inschakelt."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Inschakelen Netwerk Cache"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "Let op:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Andere selectievakjes worden genegeerd."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Selecteer \"Alle\" als er dynamische widgets zijn gekoppeld aan berichten op andere pagina's dan de voorpagina of homepage."

#: src/lang.cls.php:107 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "Lijst van mobiele user-agents"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "Bestand %s is niet schrijfbaar."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:9
msgid "JS Settings"
msgstr "JS instellingen"

#: src/gui.cls.php:596 tpl/cdn/entry.tpl.php:8 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Beheren"

#: src/lang.cls.php:91
msgid "Default Front Page TTL"
msgstr "Voorpagina TTL"

#: src/purge.cls.php:651
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "De LiteSpeed Web Server zal de voorpagina cache verwijderen."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Opschonen voorpagina"

#: tpl/page_optm/settings_localization.tpl.php:127
#: tpl/toolbox/beta_test.tpl.php:30
msgid "Example"
msgstr "Voorbeeld"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "Alle tags worden standaard gecached."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "Alle categorieën worden standaard gecached."

#: src/admin-display.cls.php:1197
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Om een exacte overeenkomst te verkrijgen, voeg een '%s' toe aan het eind van de url."

#: src/admin-display.cls.php:1193
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "De urls worden vergeleken met de REQUEST_URI server variabele."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Selecteer alleen de archieven die momenteel worden gebruikt, de anderen hoeven niet te worden aangevinkt."

#: tpl/cdn/auto_setup.tpl.php:89 tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notities"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Gebruik Netwerk Instellingen"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Uitschakelen"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Als je LiteSpeed ​​Cache voor WordPress inschakelt, schakel je de cache voor dit netwerk in."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Uitgeschakeld"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Ingeschakeld"

#: src/lang.cls.php:135
msgid "Do Not Cache Roles"
msgstr "Niet cachen regels"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:57 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:48
msgid "Outputs to WordPress debug log."
msgstr "Stuur de uitkomst naar het WordPress foutopsporing logbestand."

#: src/lang.cls.php:260
msgid "Debug Level"
msgstr "Foutopsporing niveau"

#: tpl/general/settings.tpl.php:85 tpl/general/settings.tpl.php:96
#: tpl/general/settings.tpl.php:108 tpl/general/settings.tpl.php:189
#: tpl/general/settings.tpl.php:196 tpl/general/settings.tpl.php:203
#: tpl/general/settings.tpl.php:220 tpl/page_optm/settings_media.tpl.php:240
#: tpl/page_optm/settings_vpi.tpl.php:32
msgid "Notice"
msgstr "Melding"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Term archief (inclusief categorie, tag en taxonomie)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Dagelijks archief"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Maandelijks archief"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Jaarlijks archief"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Berichttype archief"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Auteur Archief"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Home pagina"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Voorpagina"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Alle pagina's"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Selecteer de pagina's waarbij de cache automatisch wordt verwijderd bij het publiceren of wijzigen."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Automatische verwijderregels"

#: src/lang.cls.php:89
msgid "Default Public Cache TTL"
msgstr "Publieke Cache TTL"

#: src/admin-display.cls.php:1012 tpl/cache/settings_inc.object.tpl.php:106
#: tpl/crawler/settings-general.tpl.php:64
#: tpl/crawler/settings-general.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:93 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "seconden"

#: src/lang.cls.php:259
msgid "Admin IPs"
msgstr "Admin IP-adressen"

#: src/admin-display.cls.php:123
msgid "General"
msgstr "Algemeen"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "LiteSpeed Cache Instellingen"

#: src/purge.cls.php:224
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "LiteSpeed Web Server gemeld om gehele LSCache leeg te maken."

#: src/gui.cls.php:472 src/gui.cls.php:480 src/gui.cls.php:488
#: src/gui.cls.php:497 src/gui.cls.php:507 src/gui.cls.php:517
#: src/gui.cls.php:527 src/gui.cls.php:536 src/gui.cls.php:546
#: src/gui.cls.php:556 src/gui.cls.php:622 src/gui.cls.php:630
#: src/gui.cls.php:638 src/gui.cls.php:647 src/gui.cls.php:657
#: src/gui.cls.php:667 src/gui.cls.php:677 src/gui.cls.php:687
#: src/gui.cls.php:696 src/gui.cls.php:706 src/gui.cls.php:716
#: tpl/page_optm/settings_media.tpl.php:131 tpl/toolbox/purge.tpl.php:37
#: tpl/toolbox/purge.tpl.php:43 tpl/toolbox/purge.tpl.php:52
#: tpl/toolbox/purge.tpl.php:61 tpl/toolbox/purge.tpl.php:70
#: tpl/toolbox/purge.tpl.php:79 tpl/toolbox/purge.tpl.php:88
#: tpl/toolbox/purge.tpl.php:97 tpl/toolbox/purge.tpl.php:106
#: tpl/toolbox/purge.tpl.php:115
msgid "Purge All"
msgstr "Alles opschonen"

#: src/admin-display.cls.php:287 src/gui.cls.php:604
msgid "Settings"
msgstr "Configuratie"PK&9NSg�G쌽+�litespeed-cache-es_ES.poUT	��ga��gaux�����[[oǒ~ϯ�$�=6V����+_��d)�'@�9�$�NO�"��)��� �C���a��WU===u3�r,�=�U�u��2_��R�U�k�r�F�8k�6�Ԫ:��9)�I՞N&ߜ�z�u�MU��dFW枲�:)tn����?l~���Vjd�����K;lj���)U�+=5*���+�t��}��N��|1��6U_}E�@���՗��V�o�	|�6�77V7�W7���G�[�6��k��9���ç�?���?R�v������Y�
j�^+20�O�LtY���W��Vw�kI�#S�>���|�H�m�k�e���g��V�T^����*��\}���'/�q���M�kW>R�3W���ֶ�U�=��:7�#e*9�toMR��K�!`�닯�w����eC�~
�������v+��9W�I��Dv7��ɔ.��=s���aͧ����M� ��s��l������\5Ю���`ԝ���Hc�l��ک�0��X���Do]OǍIM��48�j�����;��]j�̛�K3�ʦ�J_�����܄�͖��o�T��u^�;Ya��+a�WOI,S�j��Al��#�������)ܼ���[
���n����:���@,HA�DzS*�7����1��I���k��.[�}װ��p�1�LE���L��2��jhF�4���
t��X���H��rEej�R�����������߆Nj{&���Yb��K��hJ�Ö���X���d�{�;&��K���ƨ��6�*�\�Е�.��J*�`����m��eC,�H���
��Ng���G�)948��+��b�� Ʋ$�`���ih`�$V6>GfV�Q/�Yk��i���y&N��/���֐j��9^ҍ�쯚e�������Hx#|��!����*����|���!�7�n+�W�Q�7?����P=1gk��'3�ں��Um�`���N�_?Be����]&��z
�!��5j�8z �B����6��|���Jm
��u���}�N�
�'����T@�����|����Z��j:�Pi��@���W�ҤՌij�ec��ɘ8sÛ�ĝ碛�cQ�N`�I3�M�i�۫d�j\�g���V�f�0^ ��	��Z
�[��r4P�x�X��(�May!���(h�”#�
�7�c����
�����F�Gy6c�7��R@��qC:|�x��xn�4�V
�H�M��{v�GϞ���Y��dm/�'�d��k�R5�)$Cj�#J��|��
�*�96�b�HH�k���zmN��|(���D�
ԉ%)�'^�OM�Q���/8�@1ŲD�Z�eS8���j4\Fu+�n<���L�J����WuX>$cȨ��ҝ��$���2�
�k~��Þ����zb����y�`��W/�;��Ȥ^A�1Ÿ3Z(��葵L�_}s*:��RV�D&&�Ƽ�!�ɯ��%��*T���Oߞt����]��nW
$��-	5BƼ-1E{��)-�~An�V��`q��[�;b�v����Y
MM�O.C�{
"r��\LK�������u�佒�s�����	2�� �u�|�����S�A3��"�իa��D�f����)��~c�'��ڎ����-�;3���Ց����_��;8Qw5@5�k3T?�Id����ɽH��E��boH5 �Lɱ��-ȗ�)_�s9��w�o�=��œ�
���w3(�GYp�G�#7M:�:1��Q�S�G=�)δUL�4��mBt�܀��NLMj�׊~nS$	�]M�Oj�,�C�A1���6	�J5���������
x)�fP<(����4��'9|O�k/�	�E�$�/�K�theUj+3��6����������&:'M�|�	�.
�?����j�|��x|J�
�X���_WT! ���%�yT�);E�N����ibN+
�N�
�ñ$QH�	4c	��f��,��@S٭b��]]rUR+�$�%�4��_h,Y�L2U��br�D�o��v'Jk��H<M.~`�5��
E�b���rNH��jIp�1愂gE����)�G"E%Z�3���
j��"��=���^�鏋LSz2�d���Cs�;'�H��-%e���Z�Y�r��_{dU�8�)+\Zg���|��a�G��;$���:u��
%�����p+&���o�n��Vȏ��[Ӆ"ޏ\�[v��3�����.�P�uX�s��g%��&�o�r��9��>���p*�`�YC�,������b}��5VF��33�OM����pO��������X�[n��A�N�c��̀
E��A-'���mUAQ�&-K}�qn3S�Z@��Tk��?\}�g"<9Odp��/��S{rs�Tp	�$|�0
b-)B�x,��
�M�i�y�Uh:�v�*�J��唩�#��Z���h8�Q����e$[��t

=5y�o����Z*�P`�#�`IP��/{��Y�h1��[0{�g���T7�VIiZX�?���U���E3���u�6ZtA�75F�<M9}&Ȫ�7���$�Ann�:�[qQ=�[��r�!�c*�P��L��z"��@g
��B��ʎs.0#�~i�V�����+��� �peI�A��z�EI;�Z����"M�x5l�)�4�I�� _|�C�[[�q��S]�̣KA�Vx;(�81;=�
�(�ӱ��"-$�`�L�Lj�M%c���<��UuC�Z*WqX�ję�;�`�7��ݍe�˒R�$�m��Β
p��}�)�E��dݏwnCӃ�-MO[aw�k߈㞀���Z��i�5i/-<���P����Z�e%�m+t�m_���߿��$�kRJR���yfӳ���}&�3i������p�6�̍��f�����Y�ܫ���/�Ÿ��啕��8u��RxDNM��+d�	��$�.,
wa�-����L���C�S����]�Y�V���z^��\
���*�,1��,���y
|-T P��U�>o�H��JK�^C`�|�
�����b�����Z�A[��'hZn��2��8�jy�:a�E0ߔ!ܻ(Z_S�P��*���E�@+z���<ә���l<�i��R�
�Ͽo�ա���H�������OAwB�w���Zg94R���J�}���oBn>/	:}�bDL� �ǭJ���JD�2��C����3\Й���V����۫b���Hyڰ%
5�e�2C\�����r�
����o5oq"[�*b5}�w�4	KW0[M�D��d"(!$4�b$[%3_����Ss��;DP�HwJ���D3n�ʾ�5 �3�7���^9�5Q:�U�ݙ���Ƀq벫]��	R�o��)�m�
&,1�_�܊1�#;n��q��o'�mK1��?la�g�<Hs!�g��O��f���X��U��q����6�bxg}�ȿ�n(/��g�4�B�GB3�_��?����n��Em(��q�*�[����ؗ������ ��,c�6�}��\`�}.+]�L�'�w6*�8fnz>��scyP&"��� ��f��K�N����J��j��[2';�P�b{�,�́��L�3m&��3*x�ɐP��b���$��)>k,���H�5>�͛�OޣѠA�^R(����?Ϥ!����7RV�NQ��E�s=�D<Z�vr�J�)�B� &�mq��S��+�k*�#+0�BjM��� |k*f��{�c���*����D$���b\:��/�_8��b�L����m/V�Z�{���h$�*Ŀ�ty��i���;u]�ş����k�is}wa�g��j6�O��l�(1N��`~�B��|���qJ�^p���+�l��:nY�!��!r�2]Mq�\5h�x�4L�T	Ԅ
�YiJ�BvM=v\�$�Q�%,�"!�/����!x^䀌�WbȘU"I(bT�&+X�N�*-�Z[q��(�`l��x=�:�w��
�#I�r��W�ܽ�nǃ�9�^��!g�lL
�#�c�4g���c�	,�i��i3��^��&�ډ�;T*�n^�iP�"F���3X7ܰ����1��|�����5�_�u�0�!�1�o"~sY�Yls�<CF�^�Z,�pV�(^?e�b`pim��qɭ��i
���ՠ��L�5�Yf:lU�~#����#~`����e�U��ׯ�y��5lom^�3��5<ܽ�睭 �CW�Nb��յ�m�O�%�'�By�'@�K>��SB���?)�yfʵ��Nu<-�"�I�S����{�>�@i�c(ܵ�����t%-���I�b�=��R���"���2~��IJ�ٷ����?G1����y?PO�gȑ�W�^����VN���h�l�Qr��PXN!�Tt�XΊ���#
�[3P�H���/�#ɀ(hs!��;GF������!ۣ�G�1�����;˽��Q�S�R�D�r,x�ڣ׷;u
s���(IZv�}�J��L�t���R��W�]����_��(؜&��YTmI�|���
�>�6��7�s�;�uz��u�a�`�37��h��13�����}f�!k���p�'�S�ȝ�\Ӹ"ˑJK��.=B#vL�����x�S��a���_�>}����`�ݩ�� [�_uQp�u_`-��8��@\e/��h(��\oh�K�Q?:}�Hh>�_4��T��o*���IxDF*)�r��G��b�z���
��tZKԕR����\`�ŹDm;JQS��۳�G=1�p���&4�{$9@�f�:��q�T8��Ҁ��]/ȗ�E�/�������8�f�ĴLtL�k�?�;G�s/��9ْˌ�K�����!�g�����L��%A*���1 �E\2�����v�,޺7C��:��T��͚���@H*!�M\!u_fX��F����,��t�~�^���*AK�Ė)�ճ�s�؋��x��U��f;1Q����
�0���CA]w��;�=p���ɾf.yW
���S'����Uyע���V���G;�!khT���u�$Y��!&�M[2"���5���@(ra&�����
%�^OL��FH%�KY<��k����v�21M*���.�iA�� D��Vgu3��=������Ùz�$���yob�wH��|C��qv�Z�ʕpEjɁ��V�J3
P�HW�K,�-����yb�]s�@4�?�^��tr�
�em���}��~����@�n���+�x���a�?�D��T���>4���m��
�+��2�խe�fN��P ���R��>�4�B꧳q�ǜTF�DB"8��^�2�oh%Y�/>h�".5R�b�j�}���3�\~��e��H`�q8q��y����N��k_�e����W\%�����0���GHd��ؾ�Q�[���KO�YR"��D=���\�o�WX�,��͐�\�1�yB���i�v�]��~Ӂ�u�h8���U�|�Oҹ#�ڑ)�N��InpӫW����`��n��}�N��Z�0��V��d` ���E}�K6�^�;?��%u*�y\�M�w/*ST2�����_�������F�v�ixԅ���b[��sx�1��~��q�t�֫i�q?!��?-��Uvg.�4�۶����/&4%�\#�a56&HCf<>��V�l}��c
&Pu�ņ.=g3�b�.�G-�k��f<Q)�}�o��Q-���L�EJ���.�/7W��ʻ�m3M�E�1��뉛��������%�������=�U�M
���M�1R)5T[y���:<�x�f<�M�]Fo�� ~��ǖA�TzR��L��/��|><���0яk�w��|h�/��`�ք��`�_vlДC��nT�"g��_.0�it�u�Bxm}U��"��E�)xp[{^8=I����L��zi����S�Ԛ/U,��!"���e�����4���26�\�K����*������c��ώ���s��ͽ�nI�&�*���.	�(2�d���,P$�d�~X"���H@�w���p�r� ���7���E{Sh�� o5�d^`_a��1s�Pe�,��J1���͎���n�f�{�MM��j6Ǩ&�����ט�����wo;P��B�J�Ke���Dg\����ӁC�4C*�4�$�����<k�l�#�gIßT����0����n�n���z�,6K�ya���u˼�F�w�<�f#۝����˾qs�n��I���j�s�
�3�w�#|���<��Tz�[M���*[儠Mʢb/lk�C��Ⱦ�(�-�!>�:�ђ�^�q�d_�4�,7��(Ԕ��K]��N5�S$ _������o��mT��y�����LH�	�&I��b�ĜaG��ج#�I����I,4�	�c��Й��
�S,�ع$N�\�ށ�����X�N�@� � "�9'��lg�3?t'�T��뵽�3�%���v�w���\;��Q��p���Gß=o��nO�0>�qa�ii�^�ux���
!}�8*�%�K.
�fU� v8��X>�jҪ�ho9���K��D����)k�6v�o�����}��>�W=�·]���r;���n���|���[÷����wF?�����j��5��O��{8�$2`�3Θ،�b���(̒u����H�Ap�#1�^���TY1����9_� n�\�Py1�����e���ʈM�%<Nb�$a%���W)ҭ@%�&F�����

��U	���Z\��,Nq�u�:�dR��S�=�'����	Y�>�[�X��b�2��@z��R|n:��Ve:tqJ�U3�r�8��TK�A7�k�5`��K^��)��T��^�4K��0a�@\�ɨ����8.�E��I՘
��T\^�Vס�v8(o��# �&C��KoI�������W'pzvy|ru����Kg}ޭ�9��8�%�܏5
�+ RqnRa	@A�wj��wx07���ʽ1�;<K달�o;�q�s���QM���Z��iV-2�fx
_jY�e[��iZev�K_�����OK_��7+��K��6ǣf�&@/�pS�84�ƺʋ|F�.e:jL��T�Cٱ��ki\���1�X��g�PkY�������D�x�������Wu��ߊ�T��ݎ�7;������䙶;�dr���9��ńDQ��ތ��G�[v�m��Y�l8$�3��:�k���`�TEmw6��KIw�t�8�����{gB�^v4��o�
�v�l�Lu�4�����F��ŴL�nXfS�ȥm;߷g<�t�T%�Ԇ�N�B1���A����M.�?�Բ�<���>�c&��D��{H��<Yp�ao��3��'��Íu�ެJ"H��*K�-��s�%�I<�����q���Qk>r�.��
�x�1�
�p�w�,R-�iZg��_K���oGW[�u�)�$���{������a	l�MOzF�m�Dz���稧1�nX�9du`rf�H��)tK���,�uZ)����
�W�~q;W
����oh��)����C���c�j���J���j��y�c�vtJ�>�����\�
}2Փ�q����$��z�O��e�Pf�Ъ��5J�|���(yq�n���Q�nT�
r�8+6���N��r�._�pb�U���p��G
v����s� i!�YG�.������ciVhzGK2��:�����Hgo�Eq�]��2�.mT��
�G�OV����[I��L
 ��}�ȍ|��9e�M_�n�vL���i�ʅa�F�8s�z%	=m���,� �L��ຶT�<%V�ilg���������L1��&�w�Dle��K�	�HZ�"~:,C���3Xx_W{��P
�n4���-���l��JS��:��.���{[������t���G��@��3���
�P/ed��s$l��]-�y�ͣW@��cή4�6BC�km2H�V�c\��g�8�:j��䀖�y�XB`����@&�������3u�>�FY�8I��Թ��9�떢�b:�n@�!+�����kb#/	z��>�L�Z���L�	��
�Z�1n�$��@���{��PIJ�ɉV�'Ֆ�AN�ꋙ&�Q�����	A&��~�:XXH�r8��{���0$�a��7:�+[�m��w���NىT�Zig֖Gw�����2�v�Vc5*�&5��5%1>�Ҽm�<����K�D	���np�DlH�G�q
DS�;�q�+ �@�U�ˇ��S���j�x
;�@��[(��#�i����!�M��&O�^�[��"�~.Z$��XC�J�9ᒶ�	Q.�;ɾ�z��)0�4٧�]��?��5V/ m���i�x\=AKR]3��uS1H��`�m�
�vL�\բ���_���j5���e�M��\�ko4-�̅������${DƬNj�ʰ��Z������r¼��~����fGj���7E�E^+#]}5��q�u�A[�؇,��
������Y��0�Bvc������kӸ�B�׼���G=~Z����+�m��e�|}�%����uQ�{��֜8-f+L��b�)FcU�g����MX�TÁ6XY����!�G�7���+2��<�X�?)&�ܻ�3����Nڊ�=�I��|d��K6]e��X�r����$�Z�Х4���[4*+��I5��q�h�"��{I�?���V1��k7��M��-����7��(��yU�w10]���d[<	7?Q�!!n~��R_��V��
�\M��r���	���k抲~?�6Ȭ�W��KZ�3f�nA)f���$>��!
!��UAîh_�W��*Yɣ�ӑ�x#�չ�R��ŝ;޾��ФoX+i�ZzM`u�;I<�����Ij��ƼY��E��;��fp��v_ﻯڼ��}-�w����yQ2��t��6��ӕ@���`�@��Ƈ@�Fs
�,��?�,@���9���NL�~z����da��9:p�k�]-����e�A�G�=�����Uq��5���͛�І<ER�a܆�nx۬O�
Ly�:�$^-5��Ӗ�Um�f�^��5���[�z@���tz\LF�N�\�ft!K�cJ$Iet|q���F��*6١�ԙ�z��W���=�E�v�M�mtn���2���%��a���Y�UH�
��[c�)j�ڦ�H�*ΆAW2W�r�qV#7g�،ǃO��m��h0&�s9���A�A6qX�W�^��
��;�S^�3M�T�;&^Ҥ	9H�6k�Х������Eal�2�����6W�D�M�9N�#��RR*��Bj�^Y���O�����|o1�S
|��	���y�^*xY���x�v�^�������VW���ոj�Y�벩N/`�R��x��o0����p�M¨��k�ux/���x��e1Kx�v�NĹ٬\��4��j�3޽%�FXH��<�����0�@����\Ƃ�B���uZ|��f1QY�����nHl��W
���|�p.��J"w&d�̵bH{�
ca��Ə�qeVý��A>�/D$�\R�!���L���G�|�.-�@f6�2f��s-���>m8��N{�ʙ֤I�0O��$d(���oP�0u�1mOq��E���F}^�Z��	>�̯΢���7>�m
W�a����ag�����ه�Icu�JY��t¬�Þ���jNh��(=���<�<4��%7�$���uuױs{.�i� �<M7�}/)bɫ-�j��Yz�^�n|d��m�)'�v�}��&!��_����Y����|1�$�f���|�����ɘ�o���.Դ��U2�������0Q���{�޷;�Z�	u]��>�,�t�_�`�{����d�|�1y�X�Bbb���PY�u[���<A�6l{����W1�XݽT]�h��
Xg�:��mR��"�_�VF\q�U�g˩A�_x��zB�*�̊�k�{����q��-���M�quڍ��9p�nd�j�i �‰h�q�I�T'n��ӷ���d�ZVN���`������*�$j7#IjF��iJ.`L�#
��yip遾��1�̟Ŵ�B4��2������ߪ��Jз5��y���j��׏�������ӏ���8�4��e�ӥI��J�No6��qk�ඨ�W�{�a�K$���4�rN8�����I��96�o��FM/+�4��n8�UN�!�x���>����f>e��ެu�N�O���]_(�F/��N��&1s@�!��x8Y��1@Y	�\����-��:�6+��`���SlL;ލT�y���cE�c�|��cr��46��V4��2`hM3�V�¦F^���`u�8��О2ة�H��<
$d���k����9b�e��=a
2%�4ӆc$T�����nQK��9(��;��}��ڴԑ����V������/����vY��ڐ�.\oC�oK��c����!�t{�f��|���Z�JsE�v;j?l|�����|��(�QW��}Ӟ؄�����o
B$X��s�W�(C�!H��e@�/�*H��؁�U4ϧ4]:�@7U���)/��Z�?P��u��Z���"@��@����Z*J����.�-d`����1��6��9YHC��kI���57���V�vdڑ��2�H1�����A�LYi׈�e�r;B"��d�Ö��l���N+�v�w�a����lt�n�I\[h�K�ā���xnJ
MR�EX��`�RڽH�pEJu$��0�l2=
�n���I�F�P	���O��T�`@%ک�b�F�"�uװ�epOӝ �Z_�Y�9L5�C8�����39�T���P�0�1���6����6@2��	��(X��[-����s�_P<�X*��c{���?1���AV�9��$j���Մa�S�j2g�a"�I���WKUIѯ7NV�˘���$��&nQ�H��cR��*�9T�`�>&�#Z

U�3�f�h6I��A�G���6���a/`��o�1�(o��&�7fj��>60=C
�x���q&c!1�Wy��o�mhS�N�Cz�h3b��A�.A�鳢�������n���g�&��2��J)��$НB?�7�zd�[p[��>.e���i��B��T1$�Q����C��E�!
&�J�� U���f)p*ml��J����7�Mcb��{�6�9��
?g��`P 2O���[)4>��l�ԃp�M̶��DH����ѳr��ln��4�`�?�-ВΌ�=��#^�;b����d1�������+JN�b9}�
8�<pC3���xQ��oj��F�I���>W��
�s�:(]��0=u,�빍�*8��"���k�{O9CT
��ge����)o�6�]�1��	���iM���Q� ���5i�lf��_�u�f{F"�`,(��p�H-��xj�$� �Z���+���nb��،7��RURn
��3��T�8+��L���ˆm$����H��ȴj��0���R�3y%'NC��E1EH^���/+b����Op��AR�˨D��v"7
Ҝ"�]+u���;�C�;�(�d}𑰳^��`y–0��xƙ�$�"Ӹ�|���@#Y
���NY��"W��E�ukf#�Rˁ�q+4Y@��OQlD9p4���"��H(����i@��I�,|~�D�$����"����z.�}���9��T���|ۆ�U��[�r@��E�M�v7xvdlD��\�i"K:�»�`6!���{F��n�Z��uUֵ���4P�jW����ţV��P�� �r�6lB��M�o�os��
����4G-��/�}
_��Y�"�)�`#�>��+�����h.L��n˝ӝ�N+cVuf
���	{��ov��%���
"��A���r~�BO�i����VD�Ovc�B��궖�R��vS&&JW�0r����y��:���3���{8)��
��޽|�e	2u��dD���'�P�Ӧ�%�Q�Y�Y��!�e%�ԉ�����h,�H�>Y��6^�-�elx=a���'��*#-jY��v�5.�ؒͪRK/����	iL#��:JW�|89���.�e<�.F�oPڡ��9D��K��j�'rA�=.j����R;��k�W"]��f�L�0��cX��n�h��'�߽��SDP�H�M�t�7v$�ՑkG�F!w<���z=V�rt�����y"o��+�i]7ǔ{Er�P�_

|�$��h��_�B�B/����-�h�y[���Т��[��GF�g���=<�{�€)6m�e<���9�:���q�6k�T���D�>��?E4����R*�țb�Gb.IoJ3��Y�'�\�	�1��/鬍X��v��c�F�e��o�fm2��Ku|��L�8<~QMg
Sc�����__��<N�PM�g�����O���_#��$�U�V2}���@��q�y�����)K���߬�*F-�׌�_������)6��e�ss��ICy�HĴ��fYa�P^2�!�p1^s�%�c�4�nnkҎY��Y��H25ɔ��ki C5�Z��F�/�;UR���`�6j�n���@�Cbx�J�i7le��V��؜=��s:�����,��ڠ�0�i�#nX�n�hb�iȖ�^�KA�x���$Uj��5"H+�&=�R�'������p�D�vfu�N�2-j�,2u��M��+BM��Ub�]8o+��3t�:��2����S��J=�G�l|j�q��S�+�Ι�\S��Zs��"�e,Wy]l6�<A�`>)O��
2Oc��	3�[�Э�(=�[ds/���\_þ��jU �zv�]!���*��z
Y�RN"�YkZ���~�Zm��$n���'zh����Z���*�cVL���M50�\����6�ry�v�W���f'�1����n�1,��O�#���xԘ�DhRnИ�BKR�����Wf���[Z*�S
}�P��Ȗ���m���߁��"YOW�b;�>��>�g�n�b����׌�1�˷LQ>�'KUg��=�����G��ud�qGJ����k�X�[.���/蝵���Ef�Q1�k��Y�TvB��`�\ZE�Tu��c�]:HV�h_X\4ԡ���F_�$佂�)�.e�Ȧ��v�Pu=TPC9�kY+C��&����m�Dچ^%W�\�2���UqmPTX󦍴)�����GA�9���lע4}i0�g\ڌ4���
������Xh!FQ�E�Ztw7��:��pC\���I�]�:f5e�W	��c���v�d����Б�-�٭��r�D'㡝��Gmy������۝�7�-��`i��>��O=%t�I�HU��h�C�;ܽ��"�)ԗ���r��n�-_Y�̅M+<e�&_�gY����	�����qr]�AF�]j}�l����O͡��"�\���ߖ7��፳�(�W8gAO�Ӛ\Q`\��;P�2�Y��A���h�-R/�6��/�/�`�&�׷.gdE�2j2�.#��MJæh76�O,�Ty���1Tm��@TW�L�\����#��|Lһ��6�W��/�t�g#Z�x�;l)���^��G��)��Û6�M;5M���v�刾�u�ü=�"}�1������|T�wQpr�ADWN`h��M
b8MP(lP�Kru��7_�Vj/&����Dr��B��d�� ߯T�`�O�2G7�X�LDe��aXyc�
;�24Շ���D�,z{�
i��t����pU��zߜn��M��&Cݑ�)�U�Ӫ�(M���PK.	���;;.���eI'��o�"�	��F��lt m�qw�x�A�}=�t䒊KK��p-|��t{��ت4����g�[�G�[5s�D����d�_��C�g
M�3�x��!�q�J�Ac`	l.�KӟQr��y��0�xb7��e.�7&�t:�i��]���=��=?5lX�a�A����x���?i�8�.�j�����n�uaOSH�>g����f:���I7]��Л=Ak"D]
�~��{
��xo�U�)���Z�+�,��tijBv:p=�S뙺�,ՖE�%t#=��	���ret�q�w-��Co^�	��:��a��l��O��.�?c�+�$�=h~G���lv@�&u<=�3g�R��?{��<�h684n�瘂_h�UV�aЗd��"�)Ջ�,W'N����vݗ)0���m�'I0q5D��&=뽉Q>���2]���:'���ke$�ڄ)���55*��AU�z�ߦ3|Ϛx{����K���
0��njr9�Fcq�4��pr���&6��Sۀ~*<bt*
L3,-����>���x>�l���Oߟ�K��I�A|��{���!��Hg�9�)��
~ꗈtu��lӯ��9�����X
E"�j>��)��P���Y��rTj_�T��3o鰢w%�2�$8�y�/D}2�L��>��0�����V+���`���A��2MVZ��h��.4��Bdš#ҭe����qH �g�E�qh��Va���@���XP��ʐ�נ0�z ��l�)"��G��eY�H	}���J+V���b?+&�a�.<����Mʽ�b�L���UO���jX��#�q���P��U.���#���w�O����}�BOR-(XO"
IK����&��Ƽ:|Zƹ�=N����޹���e��_�ju�v"Ɓ������I���:f�'L(�A31!p`0E,�e�?�H�w	*�I-J�-7H��K�G���"f��DD�{�ѹO �E�P@p�D�_��e��)�(�tƱ�*���&�a�Xf���o�e5�׏+�Nu��K��-c4���pG��[�!S���c�F���}�8�GpK
�T'Kgv�瀘��+N5����E�l�O$���i�{V���͡Z�����c)/f7c"I�ު���i������/Tx1�87F�mc��k��� �O�vS	�qՔ��v������^�Q�zʴjm�(W�V
)��\veQ�
��o�u��P8���</N_8�e�ԫ}K��W��Iõ/x�P����Plts@f�\��P��5V�@�9�<E�OC�p24J��A�������e�O���Hp/E�E� l����{��'�/Ѯ����*�������St�g.|YD�,�=�N4%k�i��	�x�P����2��ǩ<k��[{���I�mמp^y�n��a�χ�}C`�/!���I�%���-��?O{۲���T&3@X�ɛ"*1в��Z&6`ut�g <a�`���y��Y#%[hz����ɲ���k��_<�TF%��7i)w|�o�@��'�`�x�/KLZP�U}����8c�����f��}��ne�������+)v�±���V�����.���K�����F92PY��.J�C����,^�:[�����QW��+(�m�	K�5j|�g��|�FIu��Ȭr�Oi2����Ѥ�Z:��y��ox-u�s��j��O��U^��ӓiv�t8eg�"�.��dV�#��!������=�����?��y��M[O����V6�#����e��I��0
�-���!a`�����Ƞ.R�i�I]J��(�~[�ې��ŝ�A�x����O}�C^�3d+$��	����`��&瀸�Â�����_rzć
��.���^���
�_]���@�74��mxZ�s������&]m{,��ŀSiw���;n+q�d��r-�����ȑPGX$\��[:e�+&��U5`�5��~��w��ĸ���谯b+�x��Wыx�"�F@T��_e��ã����&����S�Mmi.�ߴ��p(�bp`iZ`�P��9'=u����[5;y�����4K�s�J�CC�id��06
o��9��j�T�&�? ����������9�Z��j�-u���R�o�Ee�Ⱦ-|C
{�r|��<!$(�9����$8,�پCy���D�cU֔�J6Z�$��%�gؼ0�
]���F��*�o�}�Ă�%'qGDdžs3`C*����묮(o'������5�=��Kzr@�}<�=��,ttw�ȉv.Vx���s�F3�̾�TwRZ*f���p�C�w䩦)+C���2sw���Rj��vtФ[#��Y��Itf���!{Q1Sqzh��h٬y�sa�I)�ׄ(��bDU���	Ccߟ]^E��(pSmA�k�"G�#ģ~)J�a���)?	��:Z�Ӷ��4��a��J�aP�4M�I�㯹��Ӕr d�D|�3�
�"~ԴAH��|�P��"��.tb�5�֣�1����E%�ASbcO+�ؼg�W3�^�-7��x;R$ԯA5;����@��j`����-�^z>����_ո'j,)h��� q����8�$����s���=PQ��>`���RK��B���H�p	j"�������ݎ�S�'P�yeZ�Y�	o�R+�nHAB[ z*jG������B�x
��UC��!���G����������'�(W�wAO�m����տ
�����<�
ՄO�s��&��9�цOi�},2|>�"�G�{�#�<�P�}}|]#����?���ï��>� Z]�iZ-W@��XSZc��x�d��`RL��vٴ#/0#˹�>�A%�|�pTP�Č�S�fz1���P��
���U��Ɔ��
����ۼ�6�}�%GN|o��D�:0r~l�D9��u
m �%z��;EC=�Xd��z�Zm`�3�k����2m#D�k�e8�H`G��*�a3�
W�����금�i!��:X�!3�C�>��K��>%w�]U�xD�$=z��֙Dܽԙ����J����u �RU����u�H�i�mӂm�	^�Ⲯ
�<�@T���4cK�$��w�k�H��ԧ�l�;�Զ�0����gD�E�YN�`
�����但��+���|�^�o�^-%�H��`�b&��\����x���2!������R���2R���(N��n�xЮ����5��{4Ԟַ�w�6��r"���k	��K��m�[�*��	J�O��NݫHS��
�7%X7¸�~.�̨�<�p�½'x/2�|�A��	�y9h��D@=T�qԌKG�h�>BN�8e.q���[ �`V�"�pM
R��?:�l�V�tq�_�a�t�o�;��4D�����6]�4�v0�l�ѵ�h�z����]�,s�������!�".�Q�(Xj巭��T-��0�:��J
5N+��ǣ�
��7�y�>+T��F̮
9P!Lnb�ס�lq������F�霘̟j�B�+��$��Ú��fc��Ew�6�d�z�����Y��]7�N��$ƶԎ��2�>/�E�a�jB7hRKC���,׵wWl�`O�����lK�W��lb�>4ӥ�b��صa�|�n�Rm��%
��M:ņd9��ρٝ��5aǞƀ��AR�?��$�Z~��R���)�ߧ���%�`6��[XFp�P�:��^��,֒X�$�������lt�n@N�G�_�T30ח�`���m݁}�s���n��`0ħ�����VT��.�B��p*�=��1Q��k6
�"]�t`A<�^�-g�h��۳��
���-�.�t	�����\w�X�88�[��
�,)�y�I���Ғ�7<6dD.���5���ss���ˬ�Kk7�ں�LBz��$�?��f��|hx��q�跘�#:��8"an@�6�#��nԅ�<����Z�=K�]�.W��r��f��y�td&ҹ��J���ӲXj�…XuS\�V��*�m���Jl�`���A;��o�yC�˱v�D�j���;¶d�
�jb�)[�ߵ�, ��!����;I�z_��h(|�XR�*RkQ�C8K��}�Ψz��u�Kf@���W��_i-z�V�L�٠<c�Bz8�o+�c��Y�2ݵ�f5'$��$�hݤ/��|/Kt^lڭ%�a�7�k�٤[���E���-�Z��?���Մ�b�u�@�x�׼7it|㪇
�e����(S%�+��R�_[�ط�*M-EN���*A��@:MY��ڻ	�1ʬk���Yk+���_dNYZ��n��6��dWk�N��i)Z�]J��	5����GA��"��=d�L*$�T�Ek����!��H�G�֯l�_r�Lk�l���-ϋ����ˣ��}���+MK���88��@�"�ېw_���a�r;wkE=�O����)��+{�zi(���^Ǐv��sձR����O��5��Ö 3�r�h�Y�;�Ͷֲ۬���վ�`2`΅L�~R�&3��23.��x�[���ڜߤ�-�Ģ�4ɿ�x���2�h��}�L���Ok�㖒�[kOَ�{�uNBm����׶F��Ɛo���6-hX/��뀝�X`nm-���D�)EL�� ���_Xߪ�:����X�!|#U���'޾�L���ƠO�S�@{��:K��E%Q�2$�P'LXX��B��^���ͺ����ר�ӯ��ZJ��"G���G�gR�j+�6*�8	�0��X��E'��R��[-�id�Q̶Nd�!�#Ӓ�,>nS9��[ٕ�
�k~**K@S
�sR�f%\�
3*�a��`���.Sr��L���*�5�1�ʇ��%��iipf�ն����糋�o�EV-b��Hk�JA�+Ӈ���k�eg�ʻ���h
T�1C����n�.���t��\?�3�����)j��l:�5nmO%�W����<c5�(�>�R�F��h�#k�/�:MIDS��Y	�~ZoG���
�qԉIL�8�檵��U���F%p�daU�DTRl��#)T���@��rZ��^h�!�9��E�p�4MG�ܯ%���gW�@,S�D7j�But$��Fu��z)k=�Q�hO�ި�]�c�i����%[��(&'"��p���lWW�jXu��#��P�E�$I���l�ގ�X���4�n�ހ��6�B&�4H�Ս��B��Z�n�x����Q���R��\V��(�Sx�%`�H�#6U�9������J�ێ0oq�K7$5f �H��Ő*3NS=��gQ��d���3`�$Ԃ3ʊԋWU9�>��G�ؖH_}Ŋ��,7�D�k�H6\���ω��Cm#�onT�̟�J�
�Y�T׭�d���Z��@j�$s�ପ=�G�[*��=2U/$,ɓ;̢�m�%�'cP����?i�tT>���;O�U8j�u0\?1����������ZU�JcUl���ƀ���h��b���KiڵA�l|x��Ր{��M��1�P�HN�c`$e�'J�
��l����u�d#�'��́/
��q�[X����2�
m�O��%�1�|�f��.k���{Ƈ���K-r������Ҝ}wr[�L��-��
�a�Eߪt����l�|l��{�!��˴�u����[�y���vG��|���vN�÷+���r����R�=;m`R:�e�j��qot
�@GcF�Mdԃ63Ƹ����M�P��D7����e����	
	�W�Z-���j�aa��	�	c�	aq����H��@�3iGf���	�r��w��c�x��%~=Ooʸ�V{����z�$��s�F̿I0�¬���:޶�o��7�6��pH�_9�+�ӛ9�a�����.�7��#m�V�:,0�"W�#L�^����k$E=��sV��Ix�n��z�M3L*��`
]���x~�U��/�IBG�sB	z�V��0ί�0�g�]<W�2�%��'ޅUE�j+��Br^�����¿��E�{��^�(g>�${,�KZ��/b�Bl"�棿��;��F�
(�:i8��RD��g�f$�D��[L���]�d
z�%%ā��;�GG��",��(ʕ$�O�P�D1���,�#K�b�S���<|[M,N@���Ɗ��M^�"�?�,���:D�[5��������tA��RV��*t9�d{��PE�N�xW�<O��.ϳ���-Ȣ�5Ѳ$zjP&w���Wk_���[�$lj�����~����6��&6����ƌh~�
XLQ��%�ȍ0!d�ג����,������gwfYG��/�JRp4
Ж�����ϣ4올��ڪEkQ���ϖ��z&�8͔
�`]��W���K00�-��B�H���҆Lx2�rY��fwU��U�d+��iJ��nF(خ�b��=aq��8�#�n�Vʓ�� �"�y���eA�W'�Gi%�Scg��!HI�瑼� y	G�2�7I����Ob1�N�tl���5-cC.�&��*��}�X�5�nG'6�^B|���Q������u�,n��ҟ�"�`B��_�߮)�\d��1R�6ϱʎ����#^� ��{As3���<[	^JE��p��,�_��
�u��!+X?Ŭ7����r���	0�G�Z���h�g�815L@�kKbo�˚y��Qۑ�XtI���_6�Q�9y���a��j!@	�3	�UX����^S�mA�	�\3��W��^?wg��?S�:���h>�…�|K��^��'l��rN�R3��`M�ҲH�n�2�ަ�m��ۑX���4CZ��t���e܌�Il��b�,�����{���,�pqv��L6����N��6�O��Z�nΚG!�x����ZwWy�����l�����I�<�f����:e��9Ń
;�@`疔j�N��s��ՂC�ᵢ�njNj�3�*j���_��@O���EZ�顙�nSu�d׬o/gny�S�ɓ鮈��U��s��W�F8�'�sLͅ�C�����)ʍ,���b鐿��>3�G�*��g]���C&E�{�L��˪N��A���0K��~�uF�
f՛P��9��&���y-F�J`MiӃ�|T�24Q�xL��M�}���<�Eh��l����m#9k��B����(u�th�s]�_pO��?�3�O
Q����Q�ՖϦ �Y��$Ě5X��HVBǪv0�jy/�����b"� ���-����b�t[���g��A�l����3M���@oaj�چE��1��\Xo���i�@���((i�7�D�苷A`��V�16yE["��+$��5�w�+�i�x�*�(�^�M	����S��/5����r�ZB�U/�΍�	�t���/�do���(�ü��I���<\��?%� ��Qn��M3���66˽�7L�@)���2������u({��p�I���dyT������VqI��;`?�@�y�!|Y~
ђ��'W%8t�����!6�D�������<Mx�.����h�E�[>�����/TS<qY}���@vj޾�R�bLw�(��Ys);p�.�Rٷ���:f=�8�PZ�gn<4��y΍��K_f��
/}�>�RNU�W�n��Q2�]_��+�o������nO�\UHH���'
ֶ�l4�#":\��),�ٳ��U`�T�\�j�44��y��.�	;�g0��2�0�R���'S�IQA�l�" g�����f-ޠ�~[_�G����?�p��s���~��'l���܉�"x���J<��fG�Z�w�߼N���H��vD5�jG��{�O��{���(�PJdsS\G�F���k����\�+G��j�4��/����#~����q���0<'�+�����o�^}8��>�);�[?T���d�Y}��V�$]���M�*��o[1k�dB|�M��@:�`YK����?��|��o.w��T�wG�G?�<c��Vh��J������T�K&�b���y#�G��X-��h��a���kq��w/_{�$:R2��}qj�z�rꀦ�.>�4���F�Y�Y�O�������2���*�g�_����3ֻ��AhRz&B����-I2D���P����\W�C�>u���v\��U�2�H���S!Ի�*'3Zð��F;�1�<R�^.R�g�?]�Q8�<�ri�fJD�sH�M�Ý���=�X<ob��o
ԏ+�$�����k�eҶ~��g�I��u�l	��dހ��gK�?|���$?f�9�)�bY��:��!�>�x�R5�	e�<7�A����p�����L�r!;�7�S�V�&�����6���P*���,L�ᵎfx��FP�(��.�5!�1���㜲�
���,T���`��jD���ǀ��cM�A�y'��A?j�����&^�o�u������`��e�:��wy�(%$H���h4h2:j���1I�$�z�1b�a��2Oyo{Ɩ��8?��dm�w}��zm'�hN��VY��Sj�%h�ѱ��+sx��j+��æڵ��|A��BV��F���:��ȃU��SZ�o�zzDm!��~���ֿ|��a#�A�1P��_��D�ZӦVw�m�T����8b�~h�����K$��>Qg�]Jz�fu&v�j��m��-`�P'i�Y��q���k2FBI$Vip��NEףD�����t�U�H���eD��)�+�O�Ɖ���}F���r@�۝���׼��q"ڶ�
��I���h�|O+@�ĸ�ۺD~b��B���[��7Ux��|��,�p<��"F�cfs����eY��yb�}�
�|�F�9L�A7n�^3��#�=(����`��ň�t���z�Z`jʠ/�p�8��B�_��TKU��X}���#�^��JAYn|��u�6��%{[/������	u�!���'tw��U����5���C�Zn�d2̵�M8�S��@���l�
�C�C��3�p��}�98'�W'��Tuj1�d�@���&x��ɑ��ɷ�� f��l��_B�Vv��rx�Vg�*�2e�B��Cǿ����G��*G���}G���	�)�߀��g
9�(��C�q�
�}��PM[��]}֩o?rШ�.���ov.H��m��F��_�`�7Z{�J�f�ߎ^��m��H7%�+�˔���+�Y���c��7�����1��	��h~�^6Y��zLS�!������{���MF^#�Jz�ti� ]�7�"J�
����"3�@q�N�������/q�u>�-���W�o���[�"����KXh��+����|��*�2+�tFH.��r������eﱠ���%8�'�~�)G�)jbg�����m�U>j���A�5�[T���
��ߪzIW�:����V�lG��佡"8�f�:������7�Ғ�hIg+�
�3jZ����o�s��%�@��-����PN�ЬX0�FU��3h���Τ���N�Eh����6�e��*�Y\��Xa��n����FӨ�;���>����pa��%V�/�nĥO�RUS���fH��M��fg"�ߛ�}I"����ܽ#w���!%����hH�nV���'U�-�|����� ����F��6�1dg���Ò��Y�(oh�\(�T�\pB��<��^����e򧝂�2d��j���tun�/��RD�`L� Ԝ,~�]_�/��{�Ek��QeXC��`���jФ�+msV���xL%����s#���d͡G�6\�d�LtBc�U\r����nO9@=tc*�dUg�1�{4S5Ř�H�Ę~ն&�J�n|���1�]z��fB�F9i
>B\�Hn���y��+h����+^m˲X��C��K{Ե�/��W�Qrk��.�_73�6�O��&&_΀I	�9�+N!f�:iJ�F�G�Q�s~ux�l���t���[oiyd�D�2��r�
�0z4��8�����?/?���m�Q�UEe.�\@A�-(�D�$i*�y΀�?7�q����c짐ږ�$n���M�'H�a�rÿ1G�"&zC��B�##v�P�&�<5�r�E���RA (1��`�|������v�%��QA���Vҷ��l�0!�+J�l�jh��a�M�Np�!��B���c���n�,���P��6�/ɩ�{���+��W���k@�(�[���+*3��C��D�%�/�d1���܂�D3Lz�F6�ghPM@�u����&��o��;�َ�KRm`) ���Ԛ4D� V)������gc��b䒴e�9�i˫���~�ɱN�+�m�]�kYf_�u�/��J�מ��`��p[�UI��Q�	|j��20����'�M�-*<�G�%NN�'�?��
.L=�C���Vf�/�9d$ @)�yR��)��h��;�x	�^�����"�Ʌ6��O�l"X��-#�f1\�e�m|_*{uY�H���m	�C0��ր����A �	�l��6A�`�^@} �>�������X׷�S�['?��iQ-u�<X���m L1r֩����borc��
�$r���n(�����7E�&�B�)�]�_�!>W
��v9)�/>�.���y����_�Q����bF�6��ho�~꾮>+�τ�`�ƩiC���V��ޖ����~���56ô`l[������=zm�? |�&��?�h�~�5��Ԉx��p�w]�R͠��n�W�:���p��=��Cqn��m,�>Tii��̂�O["�ʠ�=�W�Yc����DjE^���P��1��^�pB��_.���7�<N�d��Z�ww�mH�t�;��(��&��c3��.��ru�2�LL jm?�,
�4��El�%�v�}��v�@�QMm���mf����K\.@��{��
�#�m�����bX+_�Xe~�n�X���^*���1yϓUYpF
�K8�M{4!�Q���3��3Dԅ��^Ʀ�d�]��eP����j�P�Ѵԉ���=�)��(�����Nt��J)�(����%a��N.��a�1S=DZ��C��>�v��S�7\�/�Oy�p�QQ*v���6��
n�я�T:�[<��������"��a�PW��p�X����$w]�Y�X�S2��4��U�������c<��i��Sλ�q,4���>K{0��EƲ{B]�ܞ�v��RWwL�"��S��z��\p����v3�.�1��Ī�a4[���R]�U^|�5�,���V�X>��L,жgv}�\�/�C�0I�m�I^T�62"^62��fP�ͦ���eֳ�R�:���;bנ9�u���Fˣ����ۢϖ��gOvM둊}��N1:Bb��?h��������;;_Yt�&�.�k�yl�h�Z�m�{�t�.�����2���ۦ��n�]����uf���΄֠�d�&VF���
�w�`/DC�Y�_�%ɵ儢+�z�2�m�?��X�R8FD�95%�[)���i%����_r�Z�;�r�<ۃ�x���t����2B��a^�Ȟ���R��D���Nv�e����9��9��/	*��=��]���#���lt,$�Y����):GO\�hx���WvŸ0d��M��|xi�3�0xv��Kv��kLzT�Ɠ^k~x�d�慣Hj�#ɶ�
��̮��	�#�i�=�Wȟ/𯩕�ܒO�7�t�<��)`g<���C�£��+l�㌎q�7F��7	t�q>Fq��K��ة�Q�LY0ͪyq�����u#�g�q/���\fi#浥�@�,�R�1�~����Ɏ�@�K�Nv1:����-|rK�8���;�:8�18��33����qz����@�dw`��	�����_�nW�S�m��%U�)�2�ns�i^!��Et�����ŵ23խ���շ���Q�iHф���ٴt<0'\����Եj��Zl!nKL%�
aoR�fd�Vc���!�aQ�~K@dr�c�j�TZ��[!%��gG�SR�z4�<K�5�сU�}QLԤʜ��8ܕN��٦T���g��-j����T�F�����`
,H
�#}�L�*�#���Gd'Ӑ�QC�tN��ր�#�toA��3�iXe�G�*us�'�qv�o_j昮H�K���S�އ�;{Ш B�����TI�H:'ܐRҝU}ZK���^�}g�����-Z~�&��ږyX:'X�0n��`9�����$�����*H*k{
,l<������zM)�F
��R��(��Μ*��:��3�<.8�(�
�v&ڨ�:�a�&QSjlfy�,����+�i@�q�]K$�W;����O����g5�t��i��`!�T��9xs�X5u�ўf���"I���J��n���ɵ�E�^J��z��[,���r�����qH�9��!"3bř��Y%x`��nvs���}{��HUK��v�#b�L��ʍK��T��q��5�g�a-I�cʂ��p���D�:J�8�7̧�k|1�������4�K�H
S�ɠB��7�eIm��%�>Y�1�*gDM;�	?�i�IGqD:�{8�j�+�t��{̞;'q�V!� �TN�t1���(p�|5��}=v����L�[6����>m�<`��E�?`Ә@��nPc����C�h�13*&%R�Ȁ��b�(��9�lV�,�%�c�����	Ӂ?6�ŒЉhwO�vUKR&�g@��۰��������2v�i���(I,p��~����D$]���.���8<�sJ����d�Pt�t,J���)�6`��ܮc�.)R#�G^FEWd��*�^��U]e
���eg�Mƒ��hq�c
������b�������|���MF��s�sT��lB��Wr��
���\�2�#�a���!�����0��cB��?��G�Wϟl;:t`vi8?�k^���T���=���6���L�k�ߗ�V$u��I�I�d㿬~!yBv�"��rn:�f)F/���^��H��h��@��"�=�����*s �vmڋ9O_�[�cg	릩{H�I��;��ۈmUe߄Z�N�N5Q�l�)>I�S�7�QY��Nt��˥e'P_>RMdʂ_�+�m�#M��6"q���Itj�%3}l�H`�%E{F��vl���������3��a!@��nY�*�x�n������K�&mBߢ��H��/}�04*I�L�
oߥ�P�i�7�O�D�q�m���=�L�ḵ��Y
a�����0���Q�o�;��XZ8�L���C�K1��r���G��6�٢W��e8�H�I�'ə���C@�&fFOu��SSuh�zH������<I�$�Bt�m����s�ZL!0��<;��_3n��?�Z)�rL0u����Q4Ԗ�H�<��L
!���W��l��4�=t?���H�i�D$�L��-��q�1�°�2�·T� ��_pd��X>�Ze|��i�	F�{*�RC ?�����z7hkyɝ
�)���I4��I�[�@�@���'a�t�?�T:�6�ÎJ�����o/[*�[��;=7��ɾwO��d�V9�U��4�H�xrN�)�zk�i&n�3�=��I�
�3����AD��۟S�Ԓ`%;�PFH��w=�0F4�p_�b@c�%L�\�>��ֶ�Ն�ܫ;�M�HeW
���7�*_
yZX���m:�*++����K�Y�Tsfi�"�{k���eMe�,Vy�1��	B�~�A��Y�nmUve�n
���$ש�'���h��P�)a��d1��Ǭ�-my
���7��K��7�M�|���=����sT�x��S�("H,E4�׫�WU����3Q
Q�>��)}���N 9e,�(jo߮��p�P
�2��	pp�%h��
"���|@M���h���=��I����H훞t0��_�D�!��ʧo1ً舘�r�����_*���7C���c�y����|���PUW��JԁV��-�������E�Pn�~����<���}�`��D����6�F�`�|a��[�Kґ�

fxx��6�T⌟"w���؏�Z�F�U7�Vy��o������M��(��tqĶ�vH��Z�F�fp�N�^��C����7b����;i�{Pd�m��zpn�~\-�?�5G	�W,Ϧ�K>��]Q6�)[�_�ޮߘ�k�3�]EY=uݠ�٢�]A��*z��SY�;�yh�!\��I�,��h�X��bC�F�TZ�D�R�Y�o@�7�D,lcP�
�G��\]U���,��|UWY���0.͝�\��y�#NƙҧB�%�6�
���u"�l�,O��W���㟸���Š���:�qX�x�Ǯ���п��a����>aE��O�U;z���jf�֦�,��M�+b���H_��=��VPL�p���l
_�4`����G�f��Jbh��䆥٧z��诣�f��]�ZO���R��:�x��g٠���^����{u.����%APߒp�C�QWLmBk��H$K�U�1)�ʰ�7�tI���[	i�Q#�>;�	42���ڣK���/	�l�ZA�4�2m�+�\i��9�ں(�����k��H��yɨ��.�%��2s�g���Ҭ#�p�¾�8�bP�,�)�2M�"�L잞=�ϰ-�KQ�w�ϰQ��^�)Hd��8X�5�:��m���/`��%�_\��>Z�l)��C���C�<�븥���������6���ՙ`}wu�oZs�g�N�>�}\=A�`�o�|�@�%,0�Mr"&�]����`�"�/!�k�=��}l�G����y��7�#Q��`����g�7(wwgw��;�o���~�dՈ�HM�[��Ź8��H��2$Z2�gL��me�@P�U�/���lm���ӛ�#ܔ}ݨD3 D���ĉ�/�r�ʫ7�,�<J=����]�QĬ�P�������Q*C?����� ��F�d��Kڊ���	���ܞ�{�iN?V��Ҭ5�=4�e�9�y����x�xz��'��<��-�P���0$���<�b�I���t�N�WC
��b���A�|�ەe�rӃ<�7A�bI5G���DY
��5DЇtҚC��Gw�TD�p�Tx� #;
+矶�ƃ	����5����K"eG��L\���L�UN�a��2&,�-�4�V2����džP��ʦBE8���9@��1��xd�ځc�NF�,N晌��?Iq2�������e��ch;$^oK,�t0��A ���P�ъ�60�ow|�j2X����p\�6�_�J����4��j5�œ�I��.h����6�}�	��Ķ8��66�rhI����w"���R�F�zd�۔~�r���ҀM6s ����,)P�?B��1�N��~�N(�54��ҍ�F5�>�~�y�	?r�C�t5r��r�[I�"��zq��څlC>ق�ۧ4]>�!�Ra���g� �
�qb_>��0�~��N��!H��K*!�i��Q�L�O�?���`v��z��B�-�š��Pw�Ȕ{~*F�Js�7��F���(E*@Vk��/z��\x�?��Fk�3��3tT��|<��T���ݨc6�靧�|K��LK<ϛ�]q������&48�Z�bV_O��2o���&]�:pՅot�i
w�46�[Ȑ�9�ԫ�~��MZ�bJ�<����k�ą`��2���k�	�UF�A��5C�D�Cno�.s�Ӊi��
GO�9�W[���nVߖ���V'5oG��@Fm>+V
��\�|�kF{ݼ��(�)���\�Ǥ������H���'mN^������1�"������0SH�� �::1[��ɫ���6!�#3ɧE�V�+5��|���(�`�͎(��5��zJ��ۍj�Ƅ���9%�
)�3�ռ��
��;7�k�ю�o#\f�+'�{Q�ҩ���ب��
�����5�K3�D���4����ya�Qoxv$q�r��px�
��,ݢfy)��	�a{
I:��7A��Z���B�_g�iݢx~���u�H$�U�Ucɭ�P�7e�K{�a#W�+�|=�mǓ@ѣ�1s�������
�e�	�Q4���v���
W�DM��3�U�f&�P�+-a�9'l"�5��M���3_�V���X��q)h¬C��3��;�yb^���l��M�h_ݶ�'��į���9�z]�ۆ��F�
�B������n���25��N���bl��˨�F��*���@���]V!��|���ԣ�`l[�FG�mJD&�0�u}��F��@��p,i��׀�Q�@+X����^��H5Y�PPB��Ez�GU�:mq;7�YJ���@p
<-Dh��Yf���h����v����|[��?eIFN����0�bM�W��
wl��"��+��f�LT����H[eP9�#��l4$C�/�%�t�_��I)TBk*�$�������ݶx�1��@���A��M0����@�ZOЁ
<���Z�עW"\��]h��.Y)`�W�w9|%U�45�� �ө.']�>���u�Z�"��+���(�h
���
��Q���0<2�~�҃`�ɬ�EV�W�C�.��p6��=9�U�jB*�(Ոݥ�12K��{<�BS��S�Σ�����4�r�V�7�`x@ԑׄoz��a֖�-�1P8 ��v]��i�?耈/���r���@��lN��X�*K���0��ک�^������ݯ﹯��|{r����Q�� %���Yd�j��n���$��^�%�l��b�f0T�8d����>@��!!TgܠL{9(S����Ob��Thk�c��(�\b��7���
u�YlSWL0�=E���L�:���@��Z�q�@_/�5��Џ"?OQ�9i�C����3�{!��Mvl����8Q����^��rt�{�(?�>�1����%�Q��0�k������[�Mn�|��t+MX�w���K@~9ؗ)��q8t�R��Xo�: #���E=��p���:�1��f �~D�2B��6
T>u��p	�P��ZɳX �%��QEj�iB�LB���7G�)4�O�?�VK�<�ɑ�_�듓	��CC��}���_�5rJ�6IT��B
�7WWx����t���L�4�]�{��W��
�e�:�zĵ+��6d��cT9��v��0N��Z�o���U[��פU��/����Ug��LH��c(���p�}q@:�Xd!R�;򶟑��Z�%1��;�|�"�SAb��
x�2\c��lD�lp68u��-+��e7�=2��Ck��,���/i�V{�`���<7�[e�IP�lH�
��i�U���i���&[!�.Lh����d���_� ����OiH$����t!,#��@�$��2��1b����6�a�JG!(���Q��O��e��Rfasjc��x�\A��鞎����7����_��c`#F�˭����:;!�b�!���KY+O(��u��{.�D��P��9����<���a�7�ۯ�k���ǻ,�OK��{B���`y]4�j�>VmfS2%?�/
�r�n�LNK�A,��K�_�R�|����?yi�L�:��C��:X�-�T;��f+ͨ
5 �����}��&���F�:�Z$w$���ک����+�J��en
���rۤ/VU+�]��)¥vIPA�k_LQߋ�u��v����'�d\V��y�[nж[h@���z���a��-RJ�� �e�w�zU����җ�G�M��k~�b�j������靖R'����X�-26k.�ǹNS� ɫ�����UggPf1�q�^��D��o&������jH+'
�&S[����d�C�Ba���$W��n�L3������FYh�C�`*[�l�͘ݬ3Z�1PѮꚬPB��s�Fl�C�+d)j6%݆�B����Aբi�g�
Xͼ)%t��7�޴8)� 4�zV����$^��#G�-��ö3�鷸�Yͪ���4VP�I>	��4xΈ/'B�Җ�k�~��Qk��AT���7���د�?���V"L��) ���6���H$��	]�hP�`�;5����遶ʒ5���g�����"���!�U�1�<8I�d,W�9F�v �iW�c��;TEH4�;�OZ��;p'�:�Ng���uy�^y4K"��ɍL1޺(�6X��5���ŀX���!�9!���Ԇ��(�Z���?�0��/fw�0���
#`�I,������n�g1��*؞Ӣ��nǎ����z������0�(�{��A��z�l�)W6�M�vb=��A��P�n�9��o`��<�g��v�Z�a����Ÿ�g0oE��R�f����~k�OU�{<l�f�q�3�׈��Z�y�q��i��魧߁w�ػ1�����{�V^[E{����?㍶Y�r#i:dw��TK�:��+���V6��Q!������������4i���o�"�0&��׀(�~v���ÝH�RTXJ,i|W�Ǻ�p	~�U邦��x-����	�M��X��V^��c0�5�B���8���Bٔ���\�X,q`H?����FI���	�oǚ^U��B��A�p~)ݎ�zO�V`Lz�Jڍ��}J�궉]cF����t�C^f79f��5�j�+O��@Y3]s|
-VA�I�Wv�UF�w��t-0�P��)�6��U�'�ҨV��}4Lmܻ�Ӣ{o���Q�_`k�Z�>
~�]�z�L�j.�b.<	�JB��0�A���UP��Q�ϒ�5��I5�����zW#���rI�0�Nf�*�F���)��|<,��
��.�A�3&��0x,�4�h�s�0L6�p�?��x��u���i#��㛨��nt��5�s꟬�D�����G� ���:=s��M����+���֙�,�xK����*i)�C�uz��~��~T��(�&�5;k~�mz��8�<��_�������e6��k�/�8������r�?�Eb�5;�eG�%��yǦ{(� D�}t]{p��#j�T�SnE1@���qb!si?���A~S�u�[�]�.��� ��;���ݔ���A�Q;p� �v奤៨�z�,��qF钞�eW>28�4
8��\�Ng�y%�25��M勣q�� a�r
� }����D�x�o/�S�C�
��`�€�Uh�|�	�KIT�����<Q�O0�h����1� D�o|*No_�Z`3��oj�+�֐no�3/��N�/ �5 @�e�*���ö��s�1^��f�U �U�e^����nx��|������,�jG�OU�	p�&$id햶�-�2>�\0�k�t�gV��a�*X;����MS��<I�Q�����:σX58��l���c�O�'�ǃ=�1���A�������/:tD�m��B�<�\C�V�C�Q����ᅀ
o<`I��\�`�;gڀ!qy�7�q�r�?܄�mo��j�i�:\�F�	����L���Bj�����X�/\ts��泇_���;lO��w�ٌl0��
��7�w�lB�w0�d���dM{ff�[�䜡_2!i���ӍW�e."�LD���g���f�A��bWl��'Hq{��S7�P]�;�f9�q^U#�*��=��'��h9���a{�-c^^V�6�k�|Z`�
A�/_�(��Z�.�����y�~�/�"Ҽ�ѐ��o[K��y`<?����=��ߵ��K��/��Ey����v��A�X�?�=��H<Ր8�u�鏱��i7��]�h�k;:�W���p���Ĺ�.�����&�ӱѹ�;�,	�ap#.���XMXq~�`n��"��шӊ>��V%��{��}#DQ�ʮK��(҂�Su]^}��a���ӯV�΍�;��9#�a]ǔ���+��޺Ɓ��ꑷ��K�7�[��Pn0j{
�P�u�������B^	2�~ă������`Pv��K�����T�ڌ�dk�u1q���6_���\vO�N�ޥѼٷ9n����]E�N���p��-87�k�Jƛ �+�&��ks��
�y3�vY��[Wtw�[0�j�}��5S	g0j{&z����O�X'���nYg�z��I3�<ݗ`|�p'Z+���	�h��Knxݭ�X��kư��K���ت�U��X�ZWMë����+���ԟ-���c��	��s��Qǔ���6��P�{���ǔ+��b.���DG�:�~=�!-��[�_�P{רVd��������)e
�џV�O0�8��~��¬?�����M�k�Ж��8��e� �linE�ۅ
�#ɞf��BM��/���3>��r,��@�L�^j1��@@7�dz��rc)�2�T�'��|�F��2�3yH�m!�,cg׮��yl�<W���x(�ٜ�h��Ky\6��F6�,���l�)M`�6����q9�����g�o3�-�\^F�jβq�T-��j�yz]���e����&�[�N�ހu%�ʇ_Hڕ�Z,�ݥ��m�ԣ���f�Gw�+!��~5w�l$Q�V��{����A�=`:x$��t����8#o�H?��n�td���qJ�j��ղ}�w�=H�؀ܟ��4
��
 �?����ƭ7��aD���7��B>�х*1)[ѫ+H��>��r�*�	��z�����-�c�k�
�-6�Z;
�ɑ7���l����PT+��.�f��%͔ҁ5��"mv��v��TT��ZoN�;���<��r�����(�r�8��YQ|�$��Ͽآ�:���?%@S��� �~R�F�+��A��f�+�?�W'�Jru�R�]��j�t�Ӓh��>.�e��������dUF]�[v�,Յ8%�.V���T�q�=��	`���Fu�Ù�("T��_n�WJ�N��,�}�Gn;��	qG�&�(�e��[F�NdY�wˁ�nocײ��3���g"`(�x;�i�5C��&�	hs���*�>�n:�ID �����sxձ�=4Ħ�<���Y��)�L�2�Z6к��(���
��= �	r��y�o�@�,�-o�mɀq���>-_���c{�U��`Q=�cn���DH�.w[x�ՃY��
D��.���>�m�b&����^p��&��N�.<{m��s��g9��S�0s��рyA��@^����.*����Hz	�8�)�b��j�N-����a����
����*W�o4�G�#�
��o��n�۝��܉���-�fz���Ս�32,���P��rUse#��- aD��h�#m����������z���Ӥ�_i;_�S�[W�72�o�]��/��9���m8V߾k�7�ˇ�arb��O�|/�	�*0���f�Z��W�0|ݣ�)��D�� �Gv��G�}
d+�<�ᓖ�)��i���t��7!�Ў>���u�5D��8v�O�Ũ��A���Dސk�� �����D�G���a,�[lK�G3jw���%@{��Ky��o�G�-	FΖ_�`��I�o�rVf˚Mh-~��F�4Wð�䙋F�F����K���1�y�����d�y����?���Sz��gQ��O�K�ͼ;h��{��#/o6d;���"�c������m�aS߭� �J盫7�1N�>nb���A��|݃Fԁ�n<�ɏ+@cm���]����lܶV��T�@�W=�DM��$����!��z�<��|d�J/ ���vv���([���L����෭�s��`^x�}��wҽ�Q[�8�^-+`�L)��lw4:ĸG���N�H��iJe�'�7p~��[-ǽ3Tn&�>��1=�&�2�|�����C�v<���E��s0̢<�H�} ����'�C���~q��w=��O��?��j�9U}S��o=U-R���w4X�z���?�m>o�{��UTk�)�`��ߧSN�����˿y���)��U5R��W�Pmt�jQg�<,�፲ί�t�k��(
�QLx��L��,�J�?�F<&"-�=�R[�x#��x{��Q#�n_��2%ͶP�E�'�b�I:k�C�� �f�{�^���������7e��*b"�h�ch�a�lD��(�I�@�A�L]か��y�#�ID�x�Z���g"/�xA#D"�x�iX_h�<P1F�8�.���v	56aGD/ �x;�)��<D�i��f4���*�M̹s�W�$��'$���z2��4�&���� �ѻq�>v�x���;���L1��k+�	�?���_�	�jh�������sL��>})�QC����$����(j��U���%�#d
�-M�p��J���W��a3ƍf\a�5b=�e�H�Q�X`����K�(���|X&{�U��(�]��V�ʯtŕ�|q�7+������aw�� ��7a_c�^��CU��s8�&��W�+�+4�<�╵|��vK4j
xvѬO�:�p��t������`��`�2^�&r��-��Q߉S�q�oT�^���2^l�;x��2KKUtwhX�;���:��q�46s2�m�φ�ei�t]@�2E�렉�7��݃fO��)��2�)�!At�f+n������&�P�i�V�D��f����U���a�u�:�%P j���_V���˱�A}�-����1���u꿳�o����p�{g�vG���c�U[��3�M빨�ƌ�Z09�9���h�
o�k;��H�Ԋ�F+�fH��Q���!�x[���oZw��*:�p׽�{H+�ֽ���#���+ԕ�MnH���oP��Btw�!����!u�&��B�](�e.�����y���M#�C'��/��Z�D���A5��įo�R��G2U>��ʣ���ϋz������w��8��ۢJE�^��#Dž@l֠�%�`I�P
������/�S�G`*���Y!�%˭��R����L�����忑�)Ll1���a��h�H�\'�$ⲡ:`�2s�S��c��D�k`��~� XC��&̺r����Я�I�(�����
j$� �lv.֋�(��f�
�����/&˅qMB�P�NU��'R�6:��6>�:Y��~s�?��g[͏��`J+����:
�2D�G~d휅;�<�;C}�B��~$vټ�a��q�O�x$�(�-����[�+|u����<�΋�'I������F�I��|�S���ϒ����E���m
{�F��8F`�UIh$�aC?M���s�v>
��K�3MjD��N<�+��z��Q��=�������`�c�iղ��I��I]��@VrtV}_�_,;S�;�*�C>aʬ��Tm�P��/�ɛ��j��T���_4{��K���:Z���;gou.t}�FF롂��B}�p��?[0e;\���wF*��p��1���R�Io�[j*���c7E`{�	h�,��M�d��^�&4'�uߐыʇCt!��t1%����EL��Dk�X;���s>7Y
Z��$j�:s�j1�F�BG/��ᛴ��
�p�e�Ru^;��"^@�RS�o���I@�f��l�-�
̠�R"G��T{��󍇐e���teΓ$�~^����I=|��ȍP�t����~%�
-Yd�)�)�MK�)��bX[�n����2�]����w���A���f�9~ClУ��F	4�r����l�?;�:q��R}24���h�t-���W3�||��s�!BUO�x���O���T�h�}kG���B��ńc-}lw���k�s$~$z�~�x��J�`�xdw|#�ri��|�JG�j���#�[��R*����Q0��۰��ax�
�Bs�_�@49~	>�V�dCx�ۆ7��Wy�x��.�ưې�1+��=�N���j}R2\��-�˿�3x0V�A�L�1��Yj��ܥi�k�񮼈+�N^���UD,�2��Հ.�ٕC�J@�/���b�P��L����x���}
K�Tg���:��F��͢b3�j���8gf� �l��ZU��<��0�Hu ]�?��J��f)��d��7(
M`.bVJ���:�&���4΢G#�7h��X ���!q�*ў��`Z�.�t�Gg��-*2#�&�l�Fu1�ϑN��t��+Έ��
sH�,f�)y�_�Lَ.Q�um�N`��D��B�����P��t@+�S�x��������B�l����U̹��0��`2������+҃��*���)"�3�����ZB!X�p�d�P7�Y�.v`�ڥ�Ș��+4�nAEp��	Q���s;�d\B�xMȋ������.D����ח�#���O�*�����c�c+ѼB�ƛ�˜�a���
S*d�x
E*�'m6
�jUw�M����f}�yS�nI�gM�����o����x�6>sn�*8h�5��6�?l��gr*����?��l�-�$v�u͹ut�w��{ls��&ꭻ���&��~]���Kn㣍���Z~�U���|wJ����b-�-�(N�!�+�(ua���#��|Jee��n�>�S��ó��	H
�c���l|�A�,&��6D��4�����*5L`��J��%ba^��W+t��>�?�1o:h@e�V��$^jBY����za�4-B���'��p�mij,�R���*5�UNJ�+�Ey
gp$лtå�N�&5e��ߥ�h�m��J�;�2��X�����v�}����JoVd���=�%�ה0��X�]ǒ�]`B�MN�`豊��$ߒ�<�2��f6ˑ�2���|:Dl#:�h�Ѯ�Ի�O�dJ�H-&�����kQ�A��97	�;�mZ
������v7�f�"�+~��+��%��K�18'�ڊ�}��Q�n������u�'�O]߯����)�1�1�F0���~��@�{\��'Bй�i:ǵ�IU��=aÓ��]QD���㕓��D�b�K!�g��|Tc����Ui[�Y�98�l�zsȞꙃ���u
_�/f��.��[莨CC��xJ
��5_ � ^� �xu>	P/�J~W��
>,�T���p'ƮM�T��UG����W2�=;Nh�^E)�X�]S���un��4�3�O�sh�����-�N2��P��%�_��C|t�G?�Z4���Ԅ��I����x����nI�������$yF�s��^�ߡ�"1y�a���x���4�L(��O�ќ��i�$ �F)}�/\w���$�Wl}Df4�e���o��l����j閎�!�f���P%�V2YԶ
�Ea�|'j:�e�NKR��mpk��rѝ��b�+�j17^-V�w+�Vr�[��1D`��'
�
��†z�|XU��,QI���iާ��=�}�G��Ý5��pM���:VV�:,�;s�XA�`P�K7��/��2Ʒ�r ����'z�&�LV�[����Y ?I�F����/�5V;�=��}{�{
�#{ia�C�,7>'u���*��o�Ak��%�X}?n��2���S,2��^�g�Жx��d�E�݋x)�@��|����� �E���\H?�1R['�l7wlK=i��V����i�sxx��Z�qp#d�>�/Ƞ�	�t؎��`*$F�I�@��ۢ�I�P�G����H���K6:Z�1�Z�sc�n8#��fy���ɡ���[E�G��#|د�=ޕ~z,��h���ُ�f#ei�hUjWB8���HU����o_�]��WgoOΏ����Iu
����ӯ_Ǖ��$�"�~�:7��{\	��z���յ�	�����׼���:��s�?������ZYه��_���q�'�(�`L����:�H�Av�6.间?*�,��A��)���E��d��-W;js��ͥ�^��^��p7�h(��ه�5�	0[N�w�"4+~��:��Q)�(x7yې��VH-�oR�2{�Ym���fo���)���䰤;s۵�鐬v)_ڛ�����+o��-����՜�|�����මG7#e*�
Ll�䀓��+�x���
]���,��v�Er$2,�jI��鹿�OKh��FSte��ԗ��O�;��9��b�F˪�HLg+�Z3��p��6�v?���G��A��&}��d�N������_q,�.(���.�4�\=m��
|�������d�O��0o6ȮL�y‚<��>�6הּ�u|��H����A�,H��Z��чnZ�@�'�*�+������9�����[������e��P6G�����
���U���5�\t۩�d����93�DTߪmf�s{�"�h�%Z��e�6Yl��,�YY4���r����h�j�EP���C�����N����A=�/�P�A��s�|0o��+��,�P��B]7�C%�c �|�������"�S�π�,��&���M��'��Z�����u
���o�I�W��á�#!�
';L��q���B�q��������{�QN=+΄i�c�`0���r#"
Z/����ϯ����m6��R��h�0���F��u*�c���O?�
LN~/)�`G:���Q�[�T�!�@0$���E���ߣ��>4.�J���e�3���|_$h/^<=)զ{����k�z�U\}�t<�<)�9v�d�^��%P*����)l��7�=D�_��xQ�@-5���Q`c+%y��O���Zc^���0��;��#b��
�6x�j���q
@W�(F[�T8���q����Sy��RA�I<�B�.�W�+WB��L۩�٧�m-v�Ka8O�+���Xk�E[6��z�m�/[rH����m�p$�S���WV(no��g�<P�!�:6�h�
�QDB+	����3֔S
�셲E�v����2�^U��@K��`
yev�x��{�����~��Lϕ�Em�G޳�V�`��;��(����]��O�$l6¤�=�_��wl���F}i�"�gb��Gc�y4���?��u�v-�����x�d<���Ut/�k��ͫ{8���LG�=�Y�ZxZ1�}�����%�u��eC.�kL�\`;��]��I��jYЩa��t|fPT�xC�
�0]�G!:�#ooh,((<�+�E�;_}����m]/��Ϟ���o���C%�:��nϊų%�W*�f�ҫ�3H�Z�9�b���.�ߴ�0���Άΰ�
Y�7��>�%~1��>��YK7�o����kb��h�C��d�@j��A�SS�c�B�C�c3�\������`���…���0�p��^�V��zm��X��LM�iBˇAMь���b���R_��!##}P��
�x[,ɡ��f�)O*Gf�W���D�ra�a�U�:Ӥ�4W��}
LU�:hܢ�C���ܧh�	�ƾ ��䣹��¿�!���e:��408���z-���E�ͣ�$!�PsN���T��,S�~�ŵTsR��Rر���'����8j�â�k���1�-�w��4��l�y[��A�
u��W����L�V�5���Uk��P9�7eR��Mk�G�^�j��(��jݶ-��m�%o�ږ_�w_�^%78����}E�in
�/��P+��K�j�r���L���RC"t���%R)b�'
,�Z(�>oTN�{�F*#=*$��(�"�+�;=}F�fxU}ԠY��+K���������6Y��ִ��B��b�����)a)�.a`�{s��'���%�ƌ�}����t���2fp�ݳ�-�A�0�@W9�K�˹\�s�H�ob�Mbs`<�_��O�
�x��$����U:����y�=�Ҷx��>E�2�16�Fa
v⧜@z�o6cQq>BV8z�	`��:��ؑ�	��Ӹ�Q����������Tr�q�`%�/�J4��ݝȀ�#���j��͗���	���+	��`�k�7��������<E�>f)n�eE�|�dHjS�ܫ�Z*&��	Y�?j�P�-�,��vOp�Lz�|@z�-7��H��OY�kh]R�Q[�mK�x�\r�66��D�C�/f���mXmK�x���[>�FdXƓ��a����ܾfz���漆��ӯ/�޿{��'Sj�#�5��.�.B�q�Q���(�I�Ϯ�{��0xS��:+d�{��\؀��'���N�O�ߜ��:�v�������JU���91��@^%DטBZfo�e�Z�xHQw~ڃ�;?tt���}x��Ѧ�I�ɳ���9�vZ��K����JX��b�$!]V���t�x���Q��\���v�B��=����y�v�}	i�x�B�n9�JuPe�xޏ��iY8u|�V�:��mN�!�+3��[�^eZ��y��VwQ.-�
I�0��#ޢ̾.���
�P�4ḋ�?>W?�����I�k����q�Cd�a�}dg���(7-�Wv)�)l�
9���v����$c��,>��mK2-����g�M�n�_�֍Tu�܊A5}��Ϥ�5���cqJh��uv��|�HQ�~�ߔ��v�۰��@v�\)���C�x�2���*@���g��&0��TNVT��%���C��,�{y8�����~KG�Ġ��P-0S�>��F��o�e���K�ib]A��eqBWt�A��RߥݻG/���ZWN�)(]�W�Ue�ΓFKX0�+�^�ܡ�]AR��ٿ����a�6��\%��4����]PGq9ɥ��_u-��y��a���+�晥�(����׳�:vk�5?[,��zF`>� ��&���q��A�Q���٠�2�N�b� �o�v؇1�]K����Y19�a�*������(��=1uP"�sx��
�׵I1��n��3���C�52c"���3!^b�~=x�I�R�D��`�.�1�ݏ�+N��r�قĢcu��T�ξS}�̤�\P7��5�O����>#�c� Q��-��uV4f�<�f0��wg�|���Wmj���5J�GW�Nߩ!�9m7��.��;m�pc�4���^�W_X��峎��CR��mJ����+�	SZv�$�9�!/J�3�po
�
��!nic�P�TH֡Ԗ9�C��&�T���-b�d�
�!�w��rBO״B�	�B���$Г�`���͛Z1��-7��w&7~z3�l��Wz|�`�ն]e��L�kŮ�0��`�L
�'�s�!:�}EͲJt��W|$C���X����z�8��Ψ�����O���x�̴tv{+��w���\�&=�8�h}�
�b�?��kx���큻�1��M�5^ v����;]ˀ
��^d�H�Hͦ¥]�R��Ո�!){=��o�Ŭ#ټ�D��]��E��~՚S�����s�x�����h$H�"?��⦑r�s,�~�2�D�|~�s����P?$�`��P��&I�&��$��LFBLZZ�-4x̲��u�EF(
b[�u��Ѣ0ԙ��*I�����6����tts#���{��
+!T�0� L-y� ֤� $����D(
;��Ns���ҽЫ)�H�2/�[�q[ұ9,t�l�,n�m0r2:yˢ�~J����$�F4u:�+�l8)�#n�E��)2	�[��/�q�I�b.D���

�n��A���g���v�d���3�67^(][��~�ML�ئ�X$ %�'$�aJ��VF�4[�<�!S���V���Ǵ*���{A�(~,�Zg�)7��Qy�0�S�:h�?�|v��3���
�Y u��qR̘�NmM�F��|�Z�x�N	��ް�I]�
J�Sw��bU���G[sݎ�h ����j}��i��r3@�H: E��5���b._-�!�d$hkW�p��k��YA��b�qH�2ѓhF���,6���hRĪAb� �NHq���j�C���cvUe�l��F�t�#:&c{�N�Y�υ
�y
R����3��
QQ���?����E1���o(&%�ʯ�b��DɡA���\�+�m���ب�稐�BY~�Ժ�ApK��eo3o�1%Y�d�)���m6���Q�hp�æ����F�k"�e�u����Or36�qߺO b;Q�=�1u��e�6��C�����²VN�8�յ�
;ñ<�.4��_.z�Z f�qy='���LE:�-�lM\�ɍ�y�VԿ]_<�@��G�[5��m���cm�K��?iw�7Xn��I
[�hG���Ћ�/�Fb��S�cѽh�=$ +�@"8�$�LR�3�6zp�{_;8ʬ�9����EP�I�y4�ي��4a�3�)4n�Z?@��H�C�.uH��*��`��L����c޺�����7��OC�M��m�[�Ǿ��K��H>��VN�q��H4� lA��bZ�]E(�$!���o��-!ef撮Q	�J�h�%ߪ%�r����"���*�S� �Z0m
�R=�J{������O�ɨZP�����"����2-N�ȼ��i1�ͮ.�ҥ�h���
���%3�*8F���Џ��*uH'�=5�Iޮ��$�8���hSݝ�I����c��_@�3�լږ��ذ��>.�qxf�W�G����*�:������A��C�c�{�l��M��;��b'�u��7hF�>Q��4�3�_���4�V��C���U�D�L����W'����#�5M>_B���G�/q1�x�x�Q
i�Nl�qO9O��¼�hcl���G�y�����-pY�V^\�&y;٭�
N���dLR�O��S�PD,��m����sX.�[��P�m'Cb�UV݂ơ��j��L�x�)-�i��&����h����Q���X�6�Qg���Nr�� ��p�o�H�y�sΜQ���o(c/IJ��/�#�r̡^�A���%����r�Z�`�)S>U��?�a�Bb���$�E��]�z�~�����г����Tt��-��&��E]>�ȍ�?�@�T5�[�W����@�:]�ĬZĦRy�3b�U��k`U�EZ͗�ė����lR�0��z5��Vk����<���)��L�E�u�l�*z���Q�^�9_Yu�M�ߢ`�
(>˳/��H.r�c�.���!!/,ݢ�M���7.��gч���p�|��M��꛳��g/�㋋��'�W���^J��L�q��9=y��B��3���K�
�q��8��2��u��3���GN�!�G�a�s�UK�.<,��z��a�~���j���_4`����W��\YQKu/_�{u6��𻏎4��9<x~	�^Ó-�B]�'[���;��CK�����fX�`�)8����6&���6�J簑���v�;����y�$���9tL�o1��>�ȳ�+�s�k�ÀD�
���T]�pCP��ۓ���Z��ѻ����a�*��&���
а�w��E�����ߟ�S�Z��/ǧ�.CbIV4RMD���QF�	{]\�T"�D��H�	�v7)���b�9?�7��1O��:i��S�im��ԣ��h~�l��������g�b��p?+�|;��5U&�'$�6^+��޸�[�W��kG��?a̢Kbk:��mē��D�S&��������Wk'��dt3o�]���=o��9�a$�w�Gb�}w~�λ�Y�鹨�=Q����n�v88�s۪�;Z��QUkA��d���	l]����&$.R�%
Uݴ�a�H�w��W[��ػ��Q�r7l[!��'�f����k[
�xw[�y�����i�')fRf'hO�X��#h����1�!��F�ro^|���E��]���=M[���<��I���4=��-�Zj���;�)Ҍƽ�l�R�X�A�Ǘ^�-��ORT�ݞ=�-�jLCڇ�Ie��2��e��kt|�Z⏁����9�-Cw���V�����`���6C)���V��K4'��$��s#'�OH�E��ɉW���%(}Cbmq)���dVD��6|G�f�;��I�>�n0�u���꟒C1�f0ߡ�����2�5jd:��;L29x�ْ�f�n��=�8�ڸ~�hR&HL�y�P�8�����mKd�+r��Q�d-�
Uti�]ɲ:��_�0+�)�ޢ+J���gU3…@~
o��������6
�0W��)�|g���ÍB�V5lgԾ�»�kԽH�_�5��;�F���N�fOC��G�/y�%
q]��
5�cռ�|{��(��eK�+|5�'�4n�G�+M����`���;[O�o��²+Jˏ�
!1\�u��&_ �b������ K���~A��������(�Y�T���p�[��LoW�b�q�����w�Y�k�j��ajӟ$o���
I�謯)6�v�v��C
o���nR�f�H)�m����@w�-<2X' �a�)W����tN�yE�@
8�2��r�V�`�K���k��QC�W�h�:�7�ޟ������G`���0�x�!d�c1̃���yl^r
����{�j(7h�U_�z�s�p����0�9�85�yz]G��ԤҔ	a��-	Z�}�9�l���L�0A���H�p���m�j0�$���D��2m�r�&�^s��]����'�f�f떪�x?B�!������޿�yo#thiQE��j�n���l���(���~�N�w����7����2���j����)w&~���bg�̝��b�;K{�����ڎ�W�-JP~	c�@j��`-v���;yN�Աÿ�m`��
�џ�y��j��T�a�_����c�޵ޥ���fKeK�2>H��>^��/]~��{��C���i���i�I�p�z��MFK�q�&x �H�=�2a�;If��I���������ߏ�8��{����P��{���t?0�qL�Y8Ѯ卑nѫ�\��1'�O��~[��~�݁$���B�J�o�e�Ȗ�M��"/��O�6�z��pk��@32@-�*�(#���\H3^Iz�}�g�{v���+CK�uB$`uD�fc�)8�����9l�E9��~�R۲S��iO�7�]��P3�/ͽ.Xj�Q��@�R'�ˈ�fZi���@�gB��1�	U+u�y���$���8y��Bk����O��Br���D���eޯ�`����3�qt8��җn�dƝq�fL���?�y'v|������>��6�\��6v4>h��K+�~t�7��ãVk�F����`���)��d�������	��v�r�����-���ŝ4�	N�ȏ��*��@��d��\Va�-���j�`7���&���Ϳ5���stm��6�~�3j�mw'����I�o���}?�<z�[x�[�ǘ$�zts�N:~�Å�:~<���wvQ	O�z8~;~<��@Av��
�a��m6����(�T-��PK&9NSE�r����$litespeed-cache-es_ES.moUT	��ga��gaux�����}|TU�&`�]P0Al�h-@HH�*�fw����.{wb�JS�� UE�ҕ"E����4+���
����ݻ����������̙�3g�ك�W��;+;�	�Z��(;��h������5	�%X�`
�9i��%�
��.&x>��
����n�U~��-wQ!�]U��S�^N�V��[��Ņ�w-A��}��E�V��,�|���Hp�;	� x��v8j����p���!ؖ�;k���˸>���K��w��`.��z^Dpd�?��_���M�m�g���c�%ؚ`���G��~���<��x.���&ب��Lp,��	&؜`Z��@?~&�J�o�
���$؁�^?&�A����J��'
�!x�¸^$؉�R�Y���v'hl�x�~�
;�,c�^&x�!�j��Q���y�F�*��
��kN�fƛ�t�p���n&�d�30?����>��Я���#"�L�C.$؄�M��>�b�������	�r�+}n*�.A�{5�p	���G	�y})�zs)�/}wװ[a���x)�pp)��R��K��R���R��^M?��������Ḃ`վ���}џ�}��Z�s�b>�o�������N��:e�#��0/S�,�8P������G�O�"8�`�G���G��-�3�xt��Q��ߣ��p�W�:#x-�E�(�Qȋ���c�w���=�u���'<<,S��`�S�����6��G�S�����q�㟏�|�~h/�����>��1���N?���~��o�o����W?�F����K�c����]<��f�V{�k2���ys�D��!0�i��~��p��4v�b\E{|j �9:��6�r� � ��5� ��� �d�ÐA���A��A�O
o�Gaܿl�����v�^��z�5�e�ۙ���۟���?����A�'0���C�	��|�`S����`>��p��y����!��!�!�;�`^/J2��e(�N�P��ȿj(���P�狡��_���g��t�Qm��2��g��s�[�a�G�a(��0�7Z�OW�`�^�{o�c�0���@�U�c~G�G����~�᠋��1��G��G����x��l�����`=���ߓ#��.z���=���l�|�I���B��Oa�:>��	�f���h$�U0�e�H��M��3
���y6
�:
�.�ͣ����0����?��h�O*�t����S�A��4}�h�K5����z�_�I�1(�a��fI�w�>���i��1��)�v,��e,��<���|�z�E;�	�`}e,��8��S����W-�r��1�K�c�>��ƣ������(�]�O�G���\��W��W��Ӟ=�}� ���g�olz��	h���P�	����	��O&��|�6�z�D�'"�f"�%�D���'b~ߚ>��D�Ɇς�{�F�I�n�;'A�<5	�����GL��W5�J�7O�}:�c2��)��S0ﭦ�|���)X��L=L����3�`��ݩ)����Wo*�wL�<�LE;ީ�Щ�+˦b}l�|�L>�O�^6
�:
�kMC�)l;
��k�?
�~�t���;��_-����L�����u�/�=��鐛�L~~����s��Ǟ���ƻ�9���C�m!�f@͘	>3~&�˶��+��'��r�y�I�?|ךE��`p���]���P���v�	�c:!X@��ؿ}�ḏ���g�Q�a���_����g����|�|���<=�r�\ȩk�"_���?8�i�{Y����j.������y�KW�k�t��y�g�<���<��S�@��(<�e�[՗��ܩ�^/Cxt��e��
7����[�W@~�o,%���U�	���4y
0�5��!�3x_ú��u�S�u����h���Ǯ�c�<��סQ��u�7�!���1�E��|��E�w�G�}��Ω����>{���P�d�y���K�ϭZ�upl�n�=����
�o�����k����70��	���$8���B�c�B�k�B�߸�۵�������j����EУZ.¸4_h�"���A,_z�r��ϋ��kCߺu1��Ř��b�{�±�A�c}�_��ƻ�!��]�u�!x��%��,������K��	K��/���㯱�o��|��2�1c�y�2���2�?��W���_g9�w�r��c9��g9��i�_3}-�x��	��M��4�����ݛ���[h?��}t:�-��η�Ϥ��W�7���nY|�\=?s�?��`2��
�m�
��wV�/����^���
���J/+�^5��W�.)�o%�!k%�
�ļFW�����,X��>\�u��J�sd%���_�
��t�wZ��z�B���Y��B{W�ƺ�f5��jХk5�7Vc~����[
�\��߮�\��m�{���oc>�zt1�m�{O�?+���6[�q���׀�\��z
���5ץk�S�����k1΁kAC�B~/]����ׂ>v�w��o�b�:�[��}�u_����a=����A'��X��V�}lX�۹�rd=�Og�9���k�;�/�������;�g�
�/���wm���}�i��߻xp#�ڠ�����יA?K6��͚~h#��F���Mh��&ħm�]�MX37��o�~لq޸Y�2���Zo^�6��7O�m�
܌�P��f�;{3�Ȼ��ގm�\;w�[w�m��}���g���?��xr�3V�Mق��J0��`�Q�w��w1ﯾ�~{�wQ��{�ӆ��	�2�y���5���w�}�ͧ	f������x���J�[1?C��w+�=}+�t�V���^}��6�3p��o�zn��p�v�Ƿ����"k������������v�^>؁~}��v�����]��s'��Ɲ���>j�Sv��e��]v���@G�]h��]�ߣv��v��5���@���+�F��QO�ݐM��
y�U�]��>wc�<�t7k7�y�n���n��Ib<�?�x�b=�|���Ϻ�#�a��|�}˰�`_��[e�k�A���Q}`���~��=Ǣ=��=�#�\�n��p���^�k�*ًz6�E�?��8+<_�1��j��t�S�#c=��O�r�~��_�1��Ï�^�k���'�GYo�t��𛓟��s��.�ۇ�P_�}���0_O�S>��zy�e�>�˿��>r�c|=��`?�ِ��w�G�U�1��
�ǸN�G?�`ޜ��:@y�������~i���~�r�A�.�>|�2� �k�A�緃��8��V=:ip�M��ma?��!�o�!��b
��r�������U�B���)��p��+�|���>E�{F���g�������9��s�}�,`{��z��g�/�����[����/�Ϟ$���/q�6�K�P_կPO=�-��<��]�%��`��uv왇ѿ-�!�8���a��毱���k�'|
�Ѽ���_��<����u�	>�G]�r�|���=GP��#��G�Z�s����G��~�`/��|����c�t����-�ɤo��?�x��[�-�C��ŋ��w�>��1��㈏G��c��?9��q�O��t:99]�؇�8	��z�'�^����=xt���s�S��N!>x
��)�w�)���SX7/�]8���q
���P���.��AO��}��G�2��;�ۍ߃�;����.��7��:��&���#���|���O��?�}��)?�.��3�&��}`�/H�=g���W�ݞ���~�6�
���o��g~^^�
��W���(�w���<��~��w���KOc�?|t0�4����h��Ӡ��?���H�O��'��|"�/���_��޿0G�B=7��u��7����X��
�f:����.A�/}J��oNJ~ٙ ��A��O���MN=d�<G��<�R�����"�zA���
��us1M"��ue��I�����E���g%	�:��z��#(�%A�oU�M�u��\�ӏ �ϼs��� �a��0�6�a��~A���'	_�G��h_�A��<�M/@=�	2�XO��t��h�A^_�Y����L�l_�{!�\�y}� ��/F��J���M��O]�$�s/��
.M>0�R��� �˒��t��f�� ����џ[	򺽛 ��4�,/:d:�I�� �L_�d>:� �����l���	2�T�?J�֓.�|M�t��
�͉+P��W&��A�-%��U��;Y�Y�;@���Q��?�APα�J��*A�C�	�~� ��c�U�gxU�;^��U���ܼ*�ekU�{wU��WY�9��x�^��vWc����|�r5��AWk	�y~�>r�%	_}� ˡ��a~�\�$�/D���<�,�6^�u��5h�k��^���е�,A�k���y�׵:�/A�OT�:�\�rI
���׻j`<mk������z���C
�Z�t\��W�|�A�_����C>�:�p�̯^�ly=�͸��ףݲ끯)ף���1��2�J�����c}�w&���Hp4���I��	�9H���S5���O��`]-�W��^�0��	2}���3o~^����ݧ��=�F�j�,N�<���$|yDm��m�A���A�s�?���_�A���)I�MX�	����&�#g]�º��iu���uя#u1�W�>���C��z��@?[�>�h������}�U�pY}��.��G��c}�Z������w^p3ꭢ��͠�������B��u��Q��)���߼A��I�
P�K
��hgY�cm�~������
�dzSQ�~*�ݪ�T��M*�3�~�^*�J�q����T�!�uA���|�����?7�8�݂u;���[@I����4�h��{���G4B�m�@w'�UC7l>һ1���߸���Ɛ��i�'����x�+ʿw+�;r+�^�	�,�	�7�Y�i�x�	�i���u�
��Ap$������o-�r����g7ߑ$z�Cw`~6���r'���N����awb��t'���;A�gݕ$�h�0_�<��.�-9M���M1�7�
:*������ƺOj����twK3ȋ�ʹ�Ͱ�65����V���K���|<�����a�=��/���d�nrs��6�9L���"H*�#��$9�L�t<�>�����k�m%�z��Пo�ú��>�Ґ�a��,
�����Ci(�Oã�@�SӀ�Yi��k��?O����Ui:���4�襠�-m�q>��}��_�����Z�m����U:��t��t����pMK��DK�a�V����@'�|���Vh�t+��֠��hgDk�Dk���1�jm��oo�y,n9<�
��e��
��6����~�-��𶠋�m��h[䫖�|�3��J3�o������vk����@��ۡ?���+��7h|to�,l9:�=�k{���|��C{t@�&�}����ʙ��*���3��q&�ە	:)�^Gf������L�c�����Nǎ�ׯ#�3�`��VG�Ej�k����%�}����,�?+xX��uq(K��,�ߑ
z�,�7��u�F=���?�
��#�Q'��}���v�~j\'�k'��9����y��i�ǰ���s@7����+�r��D��E��\�ϧ��㕝Q�]���N�1��Π��ѿ�������v��>������r�s}�ϻ������ѹ]A�7vE�:u��k8���z�Ԯ��
wu���+�ut��u�<J����a��4���B��
����մ;���X�!���Q������G���= _�z9���k�Or<��u?����9�:�z�3��kAއ�&���A�����=AGw�lO��D?
B��<����q�C��7¼m���0�ߵ�e�P�^�w�^��^H��g��tm/����l��Poȓ����'{�&�%�����������̃�}:�o�����<��~k�Awݘ��]�� �7����ԓ�~�ǃ�Vz �w�������}��m��{��}������]_�������1�C�|�cZ>���|�oN�CT>;����{껤����׼��b����
QߦB���_�뻗��T��G}���Nr���`������(�a}� ����c��1?����_�	?��Q��Q���)=�-F����b�{W����^���!z�%z�7�z���ۚ��d�879sK�
��p���ׂ��	���	G��_G��Hp+�gB(m��;�߹}��h�>X�c��S�`������>�Ya�iU��/��O�0��0�ˑ0�^�@��
��ik�e@�]I{�Q�+#��ai�P��-K���%X��&�y�[��{��E�A}A'_�E��eI�_�{�ڱ�tj��G��
�|Z���K~�>y}�6�q��ˏ������q��N?��E?�_/��~�S�����%��?��G?��=��7��5|�?�[s`���7t��oc�_��7|�򁠓:����E"�!�7=\=(�џ��AX?��o�u0rb?�o�=�?�\���'п*C�Gn��C��׆Q>8�g
}?0t��P���P�����o�mRx�0�uàO���{����k���ߜ�מ~t8�;t��ن����������#��##�V�@׌~���|Ӱ�I�Ɠ��Ob��I���O���{:���:�|$�U�yH���|$�K�H��q?G��5�#A��F��\8
��~�:
��6�`�{d��hƷ}��h��=�A��ѠǧF��Fc���qo��q4��h���cP��c�O�4�v��X���F�)c�4zˬ���cQ��X��C��8ȏ��P~�8譳ǁ�w��x�}��X��ǃ�����>s<�m;��$��]:&���0��&�.:M�ݧP�OM���`"��D�E�������1Q����ׯ!���j�,�j�g�߾Ϣ�#�ѫ�b|�<��|�,�w�$�g�I�ۛ&�ݴIHϚ�v<��NK'��&a=͘�|{�I�Y×NF}�N���9�%w2�T4�?:|w�d���&C>��t��gMA=c�`������~�;�_3��TЫg*����=b*�_L�B�i�7�OS�=
����@��LǼ����/�~1a:�]9x�:����c�����a\_<��8���/���[m�9t���Z��4�}Ʊk��sg�n�̈́�3u&��񙠣&�c�{v�e�c��=��Y��4�I�.f��ֳ0��Y�s�Y�G��2g�|�g��/`��_���}���^�zk�b�c
�_ļ�|�q�l�g�l��ó�w'�>_��u�r6������u�K�;u^�:h����6�%�y�K���_���d�;0��8t�n�Ξ9ǧs��/������������<<0r�h.�?��%s1/�U�a>��C���a|>��桝���\b�{uƻ|ƿm�����e�O^�^V��]�+���+X�O�}c�+��S�`��U�I�^���U���ג��_<�1��_�a8���m�N^=̜��q>��|�X����{�>���W�5����n'�`��|ݵz_`!�i�B�����k/�|���"�[�bȳ�c��cޚ,�5ݵ���Qg2,Ƽ�����/^�]|���U^�v���g����KA��8g��g)�\��ub)�{�2�e(w�2�c�2�'.C{ˀ��P������e���� _�Y�p�r���启/Ǻxg9�����|��&��+ob�zts�[��}���B�?���<�]�r��
���
�_��z�
�y�5��
�����7+0_UWb����ȕ״�h�J䯳
󕫰x�u��9���7�B��[|�X���Z�rh8��Z
zze5�m�j��Eo�^n$�"������u}��[�5X'���~s
���5�O�Z�۹k��a-ʥ�oC0��'k1O�i����~�u�_�u:��@%뀗g֡�sׁ���x?����C��o�z=�\�y^���G�!���y{����=��=w�:0���w��?iƷ|��k�ql��y��e#�٘���F�glT�M?S��c�bꝬp�&��6AOwn�>0m3��x��r��-�Ƿ@ϻ�]�kf����x��.���׾�.z�1�=��l~���އ�7�}�P���ޤp�ƿ��G�~{�V���ފ�3�/�mS��mX's�a�I۱.�o�m�~m�vػ�mǼwہ�!�O�@�K;П�w���w���vb��ۉu��x�ۉq��	|��⏝ؿܳ+I��W���k7�9cvC_9������oU��Zd������x���=X�@�����u/�ڀ���Wi��^���w�?���1�o�O��>�`\k5|�>��@7=������z?�t|�~���1o�>������<܏u�h?��G�����7t9|���6���@���q��K�����A�혃�g$B�����q�0��A�����>��㧘w�g����v��?�\8�����;��ˬ/��n�*�1���W�7���wr��0��Ð77}
z�u>�k�c�Ɵ}���G`��:
~��(�Q�
����8�
�|�oA��BF�E�˿E=���]s,I�F8��-�@�ǏA�hw|`�q������<�������_�:��9�$��IȕN���<�~�=��9��ӧt����0�˾Ǽ�=�y�H?�=�R���~�<��g��y�ڽ�G��hg
��h�X�_����W��_1������+�׵���Z�}s�oX�k~ú��w襙�#ߒ߁�~�������`_����ǝ��>
�6���|g�X���\��[3��o���|���/}�F?��
:�J����|F�����by����'�H���E>l'��V)Y��C��e%A�c���B?�������y<K�!J�?#Aއ%��� �7�;+Y��V�<�]	�>RB����'d>�� �7	^B�c�Y��γ�E�tN��ם���%�~v�dy���d��y�y�"'f��~�$��f�,�d~��yO��^/'�|�K��Gp(�c<Ay��B��}!��q!�[d��}!�d>�'��!y����Od�/�d�_����"��c��D�L��	��~_�>rq����\��%�B�/�}�'Y�ռ0� ��b��^���J��S��0owd:��2�3��d�7].�d�ո�A/�\<7���!(��+��QW����|��H�2Y��_	��d>�J�m•��W	2?�x%���gW]� ���ٞp�
�#A�/�*Y��
W��m�B�W!=D�����&�r�VU��`���tu2��(N�dy��j�3ٞ�� �ɛ�A�]��s	2�z���5���9ׂ��^�|C	�y�"��̮�,�����5�E�. ��y�/�ׁ��d�v�:�����A�[d~�͉rc����	�9k�mk">@���Wkb��[�&�wM�C~-��GkakxL-��� ��_���
(W|���a�5Zӏހ���
��AO�|�����9�Ix"�ѓ�m8�'�S|�S.&��>ۻ)�e�<�#uA����ly��''�,��iU�O5�ē�;)m���GiM4}*�w��W��1���;4��������9ſE�\N���-�ﶕ�A�;�ҺN��|�����B�?ΐ��TfY�p|Aյ��Q�7Ɏ�
������V�V�ޥ����d����J�qO�i�1��@u�Rܹ����p|Dia�{��>���������]Fy~�4b["?��L�,3(m��_Hy��7��k�|
g�jSe����3)��"H*�c0�s\ˍ#؄�^��w����ɸ�y���/�t�CC���Z�J�G�-�������d���w	����qD֎��w1�e�wCJ+���_��dۡwBޣ��cy��n
����/�x/��\	w3.���)n$�C�Fjo�i&��}�:�Ȩ��߳T�ݔV�㢿����xW�/ӆ�k��T�|JIp�]��gS���N����6��&ʷP��+)�^���+�ޭ�)�����i+L����V���?Ѷ�(�[�;�����x� ���,�Gy�&�^����k2ߙ��L[���8R��o��|��Uӆhގߓ�Au�(����k�p/Gւ�ޕ���q:��E��g�}?��k%�����S��:w��<���˵�3��<EӖ�t�˚N��
��\Y�2�5_Sm�E�$2EfE���'J3��{�?�"J+4�6��m������y��;�J��9���7���r�|�C��ŭ�q(w���K�;$������ӹgdh�H� *WDu6��wob�Ҿ�<���=;�hG_ʷ��F�S��p�ꋄ����.Tn*�}����2��mҾf��7���TG���y�񚬄{��)_���J�$�>�u�ݩ>Tnt2ޚ���l�D
��8�q�A�~��~N�	^m����sy��K��$ɓ򯁦?��%��(�p2�OxO�;m���5�9m��7%�`���{��e�AiWj��?���7Rw|��h��O��xD?�Χ����`����q=L����{�_]B�'i�O�{�~g2-R����u��^��~��g���/�;�{�}�5��;���߀��:pw�ʸc������6�>�K�ͨ������oV\�z~w�}+��2�	P�NS�1/N�0�)m��A�E����g~d����֜e���P��(�Z��1��Gl���FO�4/�[}��p#�;�S=	�Fk��Z�kP�<޳Q��)|��n���V%��B���f�	�"m��J����L�J�4B����Jx�O鵴\��_�~�P�<*���
�o���a[�[l�c_��]By.�vj���'�u��^w?�����xG�6���Oeެ��=�I�Š��zfS:۰$�͵����짿���)��;J�yϱ�u��M��Y�0�i_.��$��?m₾W�Ӕg=�=�u�}8�J��Q���p�V�u�E���G��X�/�ߍ��~�A
O��|�'+��sm4�;�o@�W��I��	}��c�o=�tt�*|B��i�C\A+4�Χy��<l��-��S�/޶x[�RY/��N�c]^���	P8�¯1���V����f�l�w��uv2��V����1�w�ֺ��>�`{��N�{��)�|��I�U��W��*�sr۔�6���6ͱ��~`݅q�>_b��`*�yO�m_�mSx���b
?N�S�5I���G�,3(~��=K��Lq�XG�%��]�y'�ʸ��\�S	�E�gh����Aoy�审2���nە�k�<���<�zli��
/lK�e���BQ�i��*w{�f�����Ҏ�U
zM�:�M��Q��r��9�+h��)���3lm����I+��N�u��9�3��T�Q
Ϡ4?�M��eYU	��ϗ��$kms��~?Kp�q��c(<���rP���g{Z�H�؇���N��{'�ߵ�?�����R-��\u�ͷ4�t����_��&�=���P2�,���J�;�ڇ���^A�l����o�����p/]�J�>Ձ���M�|=��'T�Z�36�tоMo��o�j�*�?Aq��߫,#�gP�ìK�ڪFq�(}�-�OX��hfA�ณ�=o�6�ג�ĖI�m�~\�Ǟ��N�k�4n(Ž�ߍ�7U›�"+���|�e�S���ף��2m+�e�#����{$���T�Rs=2���75-I����]����"�Cm/N�Y�G(�
�\	�A�����Ѻ[k��(�Ä�x���z%�
����JӾa�P%������Y�uN�<����6��k}6��c�{Je����w�UW��P�Re�?����(�֗��;��i��}��{}ۘB,W�oOh����_��Lۿ��U�>�Ϡ��%���-��B0E˭��+�7v9�DU;��T»&����(�=k�7�!;k�^�ILsڗ	�=���V�J����)��
�*�벭q
�����Xϗ�����1ͻ���FO{黃�o����s��r��ߤu�����k��\�q��z*�.^{��_`�"�
��:�wP^��<˔A�Gc)Ӿ����Y.���M�68������y/D�=�}��C��N2���K���Ӕv�ug���}�M�:����{L%}CS�F%�-�����E�3Hq�9}g���o���e����������k�.�s.��	{��y���we^�<-�Śo.�U���K(�#�*��Ixs�9�g�]�R#�d�	�u�|-)�����zIxS�n���>�mfj��M�$�i��:��;)��7���9 8�mr���b�B�0A7��˺&�')|�i�"8��\m�wJ_E�T#����h[�w��y?�:<}�j��N�qw!�c����Yϧ�]��K�o+��0���簆O���2��o0����N����r
�������Nߏ�z��7+㭖�l`c�����{�m�|��{)�����6�<���x�>�AM+��!�-o���Guԯ,��R�Z\Oi��z"Ⱦ�#Y�g;3�e[
����k����Fi+x�i����kY_�>4$�PqT��b;4�{��k���3	�>���9~X��h;�q���-���r��ZIx�y?�ML���k��m;Jo�����-�r�'�ݞ+��*Ӣ�M��{��+�r�:�r�_9�Te�}����
�� �p��܅^g���>��/�L��-\ag��g�?�.Ju�nt��ݘ�������͏8)[��7�Ej�-��o��������^�3?�V|Ԫ;B�T��Y��Mh���xc_ix���>
g��o�+���F�
�Ǖ��Ŗ�}+� �����W�*�Z�����ހ��Iu�	���3�y�H�̑;Ls<N�������p4�4"�p��8
_��O��{�)��g$���"�E���wF\E^g���z�7u�n �4\%�@�Q���P��>R#.��k�lW����E(l�
���6�n��YCWs�cN3%��G������N�2�ao�=�]�Aͻ���1��J(�x#.�ߐ�i�BM��m���Q��S�W��(��<�"<�\*��,�y
�v�������5g��E��uit�Bͳ�^��u�<��ao��r��~����z��|�:�N/�V���N�?Uj.cp�9[�]Dz�e@���:u�HOu��Q�3��o��G3�J��4g�C�BH����Bo��-�d�y�	���:]I�Ν;pwn�nz|n����P���g�s���!��(��0Mm�y���p�������Ga��
K�<F��%ʤn��6aW��P����s��e�"߂��L�4�UF+�^G�����ΥL����[vtv��`��4B��ɖH:�7S�����3"!E����bg�#e
:]�~�XX`'����
q|���c}8s���,��-�*j��g1O��'�+?�
�� ��ig&��G�N�}�AX4g[S�
�Η_�,�D�<�P��+5`!Hy�v���ɈF!l�4.bvx�I
�H!{©�/�j���a�6o bH��� �QO]a�O���滢~-��_4bTDT�3;hDg7����d��
���`)quB,c.�p�
�R	��x�ԓy�Z��no8«
��Xn8X̃�ya���	W�l��p�/u�����&�4z��pS�`	S�BW��+�O���"ě�	#棑(��ć!%h®b/#��U��9jx�ni���@卄��Tg�A�(��ry���P��K�p�f�ֶ�D�č>故\�/ܨ�ߧ�ƛ��p�|"��T���R�O8�ʸ�0��+�Hb��
F/�,Tjq(i5,��&$S"��ay��-Sabo�bM���� ;�8X&�i>!7���7�',����!?qh�[�?h�@Qs��J�������.��ǂ�s��7"%e<R�D��
+�j�F
�G�0��/�ΖaW>/Y��fF�N*�dbω��Ԛ�eG�h�vi�<9$�x�V)����[$9ܤ�0�鹹,(�8D$RgY�!:-񹈌Y;i��b��,��5F>��Q��a�PA�8}B�7�j��e�\Vo�H+�%�5��EO�%e+B�7�GE���R�o)�v$�ri�!�Œ�r=��Ğ����H���QV����J &�K��5�
BB���]�H_D�|8�G �y!Z괰sΠ[9ZP�#%��ft[Zz�</I�t��
RH[�X���*$�Y�*�=$K[�:��"�H��̒]�v�K�������Ki!�M�)���"�#9R$22H���j�(By#.gg�.GLǰ���ط�FeiZLq�,Vd'¤"��OWH����/����&oP}Sn���}&�����hA�Ƙ�I:�O"�U��
�������M�)sS���စ�Z�g�nZ!��<�JC���
�R	G��˔�C1"a1h�%�U[��2gpJ����.
Fu���>	��`&�o�e�B��	��TVXIZ�
�1��U8I��>t��t޻�\�1t��.�'��b���ݘ7L�����u0�� ��y��!��P�	�C� ���Z�P����|��Y��C=#�Ͱ�@�z�DI]prLF�N�O�sfӜ�nN::���<�)�yh�s�")S�W�����u�
N!�9�Z��<���߲�3�cde�nI�[azP0�4�2��5��۰]�Ҽ�-AÂ!�ԣ�(���`��%��/�_�^�*��bK1ټ�Gou��`���f��U
N�rZ�vv�K*�
�5ݲȐ4�O�u"�T�Oc��UL��U���l����(.oz�O����\�OPq��N�L}I5t�;qӮ��Odj4��p�2ˣ�u�ʦ3�^�[6��*7[��"g.kٶ�,S�B���4���qz3e�󇙟�ɀ�RSYI��V��9�v�t��.�dec�xcB��m�����E*}�/�l�:�G�j�3�ZK�mI������$d.Y"y���b��I���vN�<�y�5�Ρ�g���P���[H���g��fD�8��-:���S^����خ��I�\,!:aT!
5�F�J3Pؙ�
iL���K@��gKR�4�{�bA�#hױ�mji�K|l��'����O\|<���H�h��K�긄�`G�sRa��O-��*蔙�-:T��k?F^a�޾!�n����+�&~*+�K��'qP��*�k�KQ�)�cַx�V��8�T�ҙ�q��q3���渢���%;7�6K"{�eo� M��w�m�R�!b�� �UA��,��e�
�@���)
�h`�-�fD,)a/����h��8����Z��VK�y��Xa�5k�k����P�,y�dci�W�B[���b�
KӦ	@�&V	��$w!�6Xj��8�)H�FV�z�"��ɀ�|?ͧ��?.�����S���"`����d�)�B�+;�)���lY4!��m�#��jes��ɲ��_��D.T��+q���v�P"Eϴu'���R�#,cizj�p+�&�.�o<�2�	�I�q�
\�?��f�ɪU�.V+������zL�b����\h��dl��_3��X�l)Lh�e��-�,ĕ�1vwt{��\X���Ic���Q����#�-]kE
�X�Q���u��3!l<f�
,�6%WbMW���B$���A���툘xEzC�M#�|.�T�1@#vj�ؼY��4�೜t3��4.`��
���BO����vvŚ4�H���R:��j�W,Ĩ�f��k֤��O.��1v�yɕ㑈�U,�<lu�cw�� 
sK>69��&�r������`*�hQ��ұ4�8p��z|E�ӥ�������A��b�@��&Pm#��
�n��i�>�m���TT�<�tE�$��X������7��X�ҦTWQe��K1^5ĽH�ԅS>K,��nН�S[BԈ7Ù��|������Y�Q���v�ca���̀�n1���+k��I5[M�q�������RuKҀ򂮰�6>���M+*7Z�ۆXDg�i�
�dR>j+31P냎�޼(�x���&�_�aH�KNF̮��XQbR2��5/[��Y�$�u�aE���9[�!�����rd�=̧|4wD�V|vX�ImF9+���	���G�>�=bJSD�fz��&/(+���*I]fr	Ky��<���w��8d�4@n-�'=.�D��ǢgRb�,�C1s��Ք�S�s�o���+u�&RJ�uFKg�t��;��".�A�WRp�����O�h�c��m�I�����{���f^mP�;ky�uje��X�y6q`�r+n��βe��,�V�t��C��Ļ���Q$�q��:��-�F��%���|�/3M�����vK�u�Y�<�:-�`HL@�D��",�k$�MMj�ե��4�𫉯��^I|I[���pA(&��mM�ĴaE��[>U|���#���Y%�?��X'�/,ۉ�=��ϰ���BD�R']���E�&,��D��l-p��֗O�a!�5�#�F�W�aDl[8f�1�
Һ"qn#R��|��?17��9��xlu�c}Ą@"9I˶�F�f-�2h�KK���j^i�Һ�'��XU��^Rlj��A{��[��`_��<���H1�1^�!��CEg\8#�U9�(5�b1_�]v� =�e�t����t��?!^���6�݊���Z�%���5tv%f"��ç0i�ҩq^����ncG�ާ�ISD��Ez�4 '���sEsfZ��OL�/�a����N1��ޱe�����,Ղ�s�hi=�I��0\��Un����VΟ��n#|��*�u�I�pkYI�������X^�7W�������Ez�eaE�^�P��G��.-$�*��VZQ���^��@�>0-
�~���L�U�՜br���{����7�hT,�g�L�R=E�_�bň��/CQ9�,
�2��aS�>�s�*�gȁ�,6X4f����XǶ�"D�heJOi�!d�E#b^���u�Y}��KF��g,I��w�y<̷("roETo�De9�8Z�P�7I-;�Q%���Z+�f-���>�1P��i�h�)��Ro촚%X4b�h\�b��`��m�h��B|�r�=I�H&��5�\	e� K�@����cQ���$J��y��2-zLxFQ!�r^`mf��)hs�
������2�o�W瑣^�8���n���>Np�8���cm!�I������S�+,I�3A���^�2,�ER$Å��7,rL��'�N���Y¼(~��pDiB9gp�F��P܄\��eB��.�01Nen3Z�e��kGQ��+�iM�NH��K�hȩ.��>��UA�j����Mq���&N�-�3�\��"�f0��3�~�س����� ��
/b FZ�|E>��a�fO4�Z�͈.���N��b�C�ٜ�cƥ�0��b�-=
"{v�����p'q��b��`k8��Ǽ�9��#�Q`"�w4��8���('�s<3%�>'�0I�	�Vƾ�p���Wz�.�?b5��1���Lc�$��El�٨n;�w���Q�7_�#.��XNZ�+{�[o4RJ�y���B$z���<:�J��T!~4�5���\�?�$V�/{��TF7[y=>R^�s���JLq�k�J'9+�M�u���ܙ�%�hDܻ�-�9N){EQ1Y������/)	碊r{����"{RB�T
�c���?Nd����N�ưB¢�8J��rÒ}om�܁�Q�T&���_�����F�7I�U���%Յ�Xk90��ֈ�����y�O�͏��e��gnoV|y��
�Xaj#�O�@=�pֶ�6�YM�r��6qކqs���-�(2�����%wasKgar1lav�3L��}����lK1�whgp�
�a��p:�gs&?M����񦣡|uyf�n���69�,�H�8�QTPn�v�*�(C��q�iٝ�ۦYK3��~��@PG�Vh��A��$�	j��6
ۦ���R�ò��-����d���m�l,�y�CM��-Jv�����������L���yĶ5!&�%�ڀ��K6�J\�e���`���]@���wfoca�H�N��A�
ӛ�u�o��c���K�������^(�5=�o��I��-^q�sW[�C����[��:��A��b�G��#�9���>�T���0ț9�3a�ㄦ��^��͔�"���=��E�@r鵏PЀY�-vzm;��1w'6R5ښ����I�l��p���e�B@��$�&�d�9�\�s�K��ԑ�g)N�Ƚ-�y��ܧjr*��m1$CtYWƔ%1y�J(dH�ff��͉�ܱ�U��C
��a?id3���\R�Av�S���T\�j%����[X��Yb��TDz���u�F
��R�a����0-�ē"�Y��]Z"����O�Z���u���I0a���7�ƶs�0h�T�q�
�'Ev>��4)�'��<�ژL��3W�?[�0jQ�)/�w�V���||�-�5��
A��0.����7�A!����!U�6oM�:5ĥ�=�۽'�'k5��U�_�;�b;*��oLխ�ܣ+˲��7ǂQ�4�m�k��3$�*�''�W]d�f��9e�w���*�EQH$W€��)q%L
b�H�੍Q汼3-��e'yvҺ��ˉ�ֵ���J���#+�
XL8~�(7!*գܠl#U)��?YE��Yj�7�G�o�a+�����H��B6ޗ��)�Ů���"�7g�!f��B`��I63p;X>��@�V�M~4�gF�#>U
��z	t��W8P���k�ת�Q�J=�r�V�х�Y�X�MLW-�FG�B�إ:^���1(V�6+�E�=�Y=)�@#��
���ҫ��1hofUz��v�p�0��{�W��A��8*�-^>
���ՊNi6n^�s9��/�(iJ>,�c5&��k9hpY��F�L%\�\�6-���Lvۖaٴ�6��9�6*[Bƺ�^�Y%���ۉE���g�]/Ee�ʀm��3a�,��R��]�aNq́����I��O?�d~�=+](w�-�ou��7��¡�.�����%��r��2��W��9�SRݚ����،v�e��j[ATL��(M��Թ�VZ�-� \TF��NsbVa�ƾ�7�g�e<�Æy�.�?���-c|1�E��YB�P�Go3��/��(axYF���K����/�W����?9�+��@ce3��5	�jL�����c�L���}@A��lu��v�h���W����)0��g�t%���vE _͍���ು�8 H�hy>>ٰ2������#�aqD��;>����ڧ�1��Y	ow|��@*�f�j<E�m��<S��V��&K���5��,ͺ���d��`V78�[�|oXQz����e����x����*J�����Ndnj\~��8��葂�y�]a��O֭y�!�c�ra*�*���(iK$.湩��Tsi^J-�vq�o����T7^���c��0�U0
�SM��ǻ��$���,O18����RN|p*�C\�QpӖ=ό�tUv@�f�l�c ��ذ˲�J�dtN�y���b�@�c
�3l��-�Ot�X��k��Qg�:�Hy7�7�l���e��r	aYɚ�1X�o��������7R�nM9�W���l�Ӿs�kĒͮYl�MG���!�[/�x��X��G&lBpd�'o��湝s�:���C�^�|	l/T��]:�6>�S����B\yD�:�V�ܠ���vWk��}oo����&n�4�v�3#�����k��,�o��I�Ng�ٵ��(���P�%>jY�9�i��<�`�Z�z���W�WP�bه�R�h[�8@d��O� �-vƖ���1��$w���$D(J�l����-N~�yߊfP��Ϯ9��$n�Fh�O���;�ړ�aDZS$!���h1-�b<���r:��^���	���ּ�mG��5�Ǵ����.��ro�>�̨8��3oA
�X}����-�b��������͎��PU�с�-
�[9��rVHݑ)�|a���#K�6�)�둂1/2?j��'aܥp��T���i��G��x�&D���3������+�TsE�mݍ�p�7M��� ��L�}��^��e]C�WlO4����o��R_�'�"r>*Y�f�c*_|�z)����ll�DY�ewza&f�v�O��#d�JI�3&�����"⼚;x]�3��T�g�|�P�1E��k�qG
�$W�`�b�[Ro1�.��
�TL'$�0��
��ϣ��:���sN1��y����l,�Q;�X����o1űVcx���T��*�	�a���.�i;h1M�V�v��mWA��m�3w�_V�9Ѫ��7�����~�#��ab|�=VE����0;蔏ӫ��+�S�o�4�����jb�
��Y:�Q_��ٲ�cE�Ž\�+���}��˳z֡u�d}*Q����Ok3�͓�lTǬέ�:[Fm�2�Z�6q)q��GQ�=ȕ:U��Z���L1`R�b���Ø:����:!v�!�]el`gglx"���;Mi,t���G��q��3 )G,����^wa ���>�n���h
0��'�];�+�(c�q�������[�!����x=�f�!��6�>5����$�e���}a���-��W��H����r����o�ᳵ�T�b_D☌��.��Fn�02e��z(Pj���.��‘�%���E+g�����r����tfun�*�٭UgZvv����Y�f��%?�G]�,S+���.��
�uA�IQ}E��U�LWY�\�����z|���FК�LX�����=�:�ӽ^ͥ.�xEƌlWAI-2�F���0���K��Tg�������d�j��Q��~,[���m��}$Xw��B��Rې�,̨�V�9c�Oq�]O�6x�é�ȐXl�I�'dÖ�Qϰ��'-�o��0w$#����&�������{atq�r�)sb�ό��i�HR�����˯��inI8��c[R�yV#���[M��a���HE�Flq�G&��:�1m5�3���f
%�����g��Eb��z��HE	@�#|E�c�@�u�Y��4R���Q��mY��cAbI:l8F���A�7�Y��;_�~.��X8,�F���X�HE�8��L�.%67���
T|���1�yW/�-D�3lv|��"6	�^\��.sRL�B��^�����.��,?D�Fj&��Brɫ�q�S�Jr~���{B�@B��А7�m�Ikl��y9Cv�'�6|�P��1��3/m[
�����Ƀ!j�_��m�Yf������������1�:Hudutd�8pAW�rR{ &�5Vo^���h�f�Â�#{�W�)#r&,&O������h���O�
��S5���JU2˱ê�:V�R.��&����r�"�ib;찁�l�>���t�^�K@�CE�TVn��b�q{
�d�K3�-Ûe��ұ��|HFD��g�틒�D�,Zo�2#WGg]� �Ǫ^l�ʒ^�"�-�M��azy�nO0j�n!�9���A7Z�e�Hw|Dߏ�e,v�h>�A�B��WbC�de����
�m��Ź��pğu㡎
Ͽ�"yci���}�.Sc����N?��X\��j�:�j�-,���Hd��x�w�L��6����V��xwʆ��+�F�թ|�p�X�:��F �P\$��"�@ϪP9��*w����T[��D �|�#K��>���{:����C�T}ҝ�4r����񖙆5|u$�~��"��uY&�sdə�V^��m�Mj/�79]z�%��*�EBQ��|=����TGvZ�6�.?�*:���q��A#�مv�G�[S8F>ܼ����Go|C�<�)��8���)�!�xiX�+�U�=ao�K���f����MI��U��>�H(xD�?n#��("dn;�V��*�n�)�	ƇpgJ�?F�i孄!^������>��EN�P/�ZȎ2v�ҫ��� K0-�/�&���nXclW���Qf�/G�~��&��6�L�2���
�x_Q=��V����|r�ѧW%��?�2_��UX�,����P�
�48�'����R�
V/��
l���l�H��[vyU(����2���y��zQ,l����)B�z��<�$���	X
�}�����F#k⧨�`m�8�:�t���{�z���<�-�`�����/i���}��R_�3D��T��N�6M�����[N�"*�*�9����`Ӻ�$T#��m�,m�a���E����0m�qm.o���^&Sd�~�A~�#�-��zEFK��M�l�4Dz�d���/�+2Y��L"��7)mX�K�#��:_�u˻��q�����,F�b~e! /����ͺ��/G�)�6ٹ)�ˊ)��ӛ��	ROvq�5잙-5:�-
��W���/Z��ƛ'�<I/�=����V���DX6؉�R�z�ͧJ��إ�0F_�m4O����
F��U��\���3��	"S���:i�Dj�[�����"�������%��F�]��g�9�c��;6�d���(�Y��r-��j�oˉE5VH��֓���x��-9�]���F|����bA�����H8b�ԋ,����h��tAj�L����Kr����_(�"IuV�4Z����S�W�c�W肛؛|�jclc州–����CD�݉�����_Ό���b8�?qa��D��6�vkݩ�G�4
�7����s�f9>+��e���%O+h3p8bGx1yIJ֖B��+٢,5Uq��,{fL#:��g��M�&�m�i�6�D��)�KvK����ތ)������+P&�ĀN�'��wr8���z��:�.�G�n��'��L+/W��>y�?�P._���{p���������7��$���m�@-,�r�p:i>���-�N늆����o�xC�{��n(Ǒ�u:��h�ou��룦�m=)\!��
M��
j�#�:3�P7����n�N����zT���ğك��f�}M���
�6S���m��Z����8r����}A�-�l�Ή�����\���	
#��ʫ��,-�Vj\�r�����;o��z���x��5-�bM�0a�:�"=4G���ﱛq����(�5hP}�R�t�Ƛ%�Gb��+�0e'~��cY�5�B�v�Ɍ�4�,wi�e6�(������42�P�*>�3�ES3U��8���zl'@ҍYGl�c{~��኿	�w�+j�@�?t�*���F��bM����hl�� �#��sj�Y���6��z)K6Y���_2ʱ_�s�?�G�-���w@s,
�a{�N5�#�����K�9���P���ʪ��1���ϟ�x
�v�Q�u}���x`��P.�M��)�$Q�S,s��J"��DW�f���3�;{����}?�$���hg:;2�)1�k{R�� 2b��Ʈ��4��o|�V��r���e<�ٌ�$�A�!�v�=�<'*��N#z	wu�M?�ھ즑��\fd�[�#y����y��%=n��/	0�[?�@
����"!�[�9Q9
��3�g$���;I��p��I��73����x�W"b��cwR�����s��&r{t�ֽ)q�M��01"f��z�D����T�������Η9�Ǒ��cer�ow*�E�;�춍C�s���o��#�Zo<A��yb���zc&�M�gZZ�l�����d`��ln=Ԯ8�:k����^�=c>�X*?
C����2���av3��L7���LC�6���w�7�0���Z揑X��W�ڥ��֋�6g}ü�.}�V�<���8ʂ�*��}(�Ba��!<�R��	��`�
�'����4�$Y��6�e95	�2�ĝ����#?�$���b���u=�ż�`���u	���{��-9eU/X��]��d1�����b^5����v�\~�D�m׹mO����g�,,��buüki���,�x$W~5 ���m���X��s�k��Uث�?���jvE"4j�/B~��U�Z&�_n���56��_r�'O������b�Ip/LL�v�'xzN������QOzay!�Ϩ����x�<���ٰ��M#�PP�����D�o��G~����;�:뺜g|�<Wt޽ď���T�(?^/?ݪ?�#��h>oP(P~�Ȳcx�b��zM��#V0u���k.r9��yl�f͟Q��0K%�-�@�^����	m�~�V-�25c�
n�p�/������rc/i�c?gm�`�a�,����ˋ/l�kۯW��&�0���
����Jh��H���[����._$�x2~=��ߚ��_�>��?��#9�4zE��~�Ō`1O˥w3�֟~����D5������4�n;rY�`<�W�4��$&Tu�9h��TH%SR
�d1�RU�4<3�ɐ"�C�I%1�0�
̃�y
z8��@���O���������\�b������ٶ}Y{�twxS�?���%��IȦ��`��k7�6X�x;��y��xn>寥�.��G<A���yv��D]q��0�:��
�q�!�>����@ty�d��y�ғ�F�4����J�}�mGT���ٖڼt�
\�Z���(m�mJt�i����[��^�ںZ�5�Q�"���"�'���#�i)C��֜ѴlD/�'
�Q��EnY���h������-�zu�B�w]Ȉ.����"a9z��J��о�u���\6,gԿNc�Y�{��O�RS�S�8=���ǖyJ�h.��)	�vړ�3Áȼ�KC��z�%��7��.[���_�.Iv.[s�)����>Ti�!4�R�\���ݍ�����>4g�U҇������.I�)���FϷ�O�0�}
�	��}���x���E�(��Jvջ^�X�%�L��Re����޻���Ź�!���Яz ���9��	PYwkgִ�Ï����7Z&�Q�ϔ�=��l�h;����Y�<H�Ož��z���y$��?���J�5 O����j���*����򌯌Q�K�NE?[�Oqg���㜕�D�'ug�+7���Ut��X�DAK�
Ĭ���^LNk�'� �!�Q1���Q^�^�N�r^~LuŚ���N,1�g�.�{�*9��>�`%)�j�ݽ�i��7�a��5?�
������Y!~:8"-)���_-�Z�A/OS�t�N9+�ֵ�s�g�D�A��p�*7І?Ӎզ�����d2���n��O�D�RC�,nH��r/qzr��{Nc�$��}��z���GVtW�r���V,@2�4�B$%P�^�U�/#���+W�q�p@TTxh�KqP�)�N=*�x���z�B�|��)�D��M��#�\F'�oh���C��{*+�$8m��RY�d~an����eR_����2����VS��T�N���Js�ȉx��w,T�<u��]��T��a���3�WNN���r]،�T�9V�lE�#��uǶ�#�d�~E�Pk�#�ڎ�G�rY��*��Ȉ`��i���T���j^7�z�a>��[K�=
��\�R�E��{u�i���IC�W�u����	׭�d���
_y
�w��(?L�Rc<[t��;��P�j��A���Z-�o�
aw�S���tJs�j���K���u��1�~���ӷHP�~3Ͳzߵj�x���Ƌ�Υąc~=�w�sA���%��u0�t��}/�����;}U[}p�h�wr�Q�HЪ�ko9T댎�m��U�.����h�_�e�&r�����E�j�v���G�M)[(�d�.� ε�et(���^�֕U��kBR��WK��W���ފ�~�!��Y�~/Ȣ��8
�JNhQM���N��Z�B��4`���Р��{�*��r��m�,�u�ˬ6)��4��:���ff=$ˬ��I��Q>R
�4g�`�2��6d�r��{g݊D�c�jə��,O;
eD�;y@l+7�&����Ž���w������ӣ����{Z;��#}�h]@$@���x�m.�C~P�(���4��Ω۪.)i�����3)���u�߻�F�!�{�O�������W�‘=�yk���}\8����œ�X��E���R,1��pSL˨�c�k�X��̣��Au��i����zp�h������������A�!��$!cu�qp��pz{���u/E�\x��
��X���a��[�͂@����r���72ڲ�HW��<P2l�oD%"f���5p����C���,ȃI_n��z�]�_Y�SY���3ڍ���b�Ì��C6>���4EH4�s�����ER���i��M?;eh�;j~�J�}�-1f,D��n@7J��s䋕�B�K�Q�� /
�fe�K%iQ�B�J�G�	%�z�2�bb�}d��H���c%�7CJb]Y]�7Zm���{��g�~�����>�V�a��r5g��$���{�u�Zgwr��i�~k����$	m��*u[���R�R_��jh���G�u�ֺ_��#����W͎�+�c5-"[�6�З�̻�S^I���2S�3u����z�K��"�{�K
�g׭ҧOfN ��9!^��W�${eC���s��
�v�ҕ����I{�
�t�L]����{V��>�nX�8i�D5YD;z"^V� �;�Ԓ՚�M1�*i8ƃ/Q5r��Ƣ\7���U�sϽҬU��5\IB���C�̞te�2�#K�,^�傜��,/Q�t+���9Ӧ�
�Gʴ��/=��^1F�@c)h��UZ�M;�:��T�<W�^"�OPT���)),ٻ�ߦ׈~�Cw�v���Dи]%��i����%Ճ}B\��t�-�ҧr�W8�	1,����Q6�P< P�@ۓ�Ż2ag(�F�0�"�{]��>��S��v��
,w鋨��~��eU�u�VV�ᗇ�r����ϰ�-�uL�̍�[u�28:�4#���w]!�7�>b<�M�@Ҥ���-I�km�d���O�$M�u�����
�BK���~Q��ʷ+�c�ѭ�S�)�u�g�]h���L�e��,?�Z�}�|���;G�D�%�����s��7ϒ`��^���e�������=1I2,6t��|���9���8?�D0�m���>����T�İ�PU�=)r(	�"瀑�{Y���7ŜDZ�L�4�v�19��WK<禽
�;�a|Fz�&��F�:c�uL'tj5��@+v��[�]���-��9��4�R�o:�M�����;tko9���!`$!Dτ�{<�	&
{����D��E�-�u�+1-!���z^<?�ӝ��u{�M9N[fP�5�.����
����N7z�c^X*����e�'ĩϞ���@���#Ť;-P-�q�?�;�FDܗF�7�"ü�'��/&
O(����ou�+����=ާ3<�sL�V��=Z���KW|�V���	��q��{��݄�]\�H��;�J{>B�1�j�Y�]K�i��%h^Z���2))ך�L�����o��b�:�!�}֚�G�`JE�K�Ҝ���$O�خ�.�f���d��bj(�/B0�K�
���pR�y��H$]�nٙ�2�Nڌv�7 �t�O�Gs����>�i�Ua.ô���eq~��YN��Y ���T�8�V�/���,�r	��䴭οA��{� ��i���_�FN�����-sb䟌7=����S���
��W�LSc
�-D�	6�l��jE.�� O�ع�2��%��r$�[W��nW�>e�Ȭ�T�-@o�A�������wC�Xˤ�oS[#8��PR�ӯ�
�)]${\3bu1l��Lנ��§Z�7�jñ�0k�@:"%r�r˽����U�y��uoV���]��^1H�́d^6�ϒG�s�?�UYK~�PV���>R�:���M��I���
�i-��1��U��F�����H�ǺBZ����<�qM�s���B�%��UVq6A�2�܆�N�x��
�F�dA��/}���*|H0$v�&��Eo51�ߘ+k{���\�`	�
I�KY!im��^��J���va�_���%�0��B\��t����[0�2�DYΕx7'�Er��[�/F�'"v9�/�kA@��/�t4|��j�)griG�P��L9�o?r+�G�ĴSrw�JF걌5;.E�����<�)�l���|�X}�Lj8�A����[���跄﨟g+�� �#�{�l�(��"�Aᴀ�a4�u..��I��I!W!���hڸE��򗷵G���]�F�¤�9Z�f
��+H��}�4W��Z�m���U����)��?�@��v��y>�q��J�	����{%�Eg�`*^e�k�}���fz	��s��u}ug��	���S������*
b!�ȊU/ꥫ/����:�O)���T1Tc�&;y���6�d�H�	
n��I|�0F�4Ǒб܄R+(�I����G+�x�	Y���<ې[:W�0	�����)S�W��K*�O�:.�I�̓�̀_B��{L�P	M��l���GO?�e��RdS�I�R��
ۿHW>�⠒��11R
��,e�&�l��z̿LmLK�b2��"տD�EӤ]�i#�J�R���d�I���֖ji�-��G��"�R1F^�8��Ud�f�J��՚�S��v�ڕt9L����KS�>�R������N2��>[6pBܯ��y#������Ɓ*�t�c>`��~`�I�,1�閤��BR
��SK�%q��Z��R?��*�l��gr�y xS�p/z��o�`S��zZ�R�h/��F���|-h�k��{坪�����b7r������=!���Bg$�\t�w��'<�S�H���V��a6X�M�������r%���evv�e޵k��Ha`�N?LG��s,��Y��w���n'nυ7�rH7�HR�C���{.ߧ�F�
�O|�p^q-����S
���A�od�y���^��:�xT��x��� ؾ$I�-NҀ_5
��8��ޅ<�D�4��@��p^�Tx��)Eٿg�4��W�%��JND^¿ ����Ek�5*U���ifQvk��vq�
Bњk��Q�kczOTx\�'���Z�T�Ap����f(kO�_��}�L����ٚK���<����rCXsno˰o��q�n�f��\�P��y+� l-�?��c�t�(�z�p۹I6Zm]H�+����^����ŧ�I����bBB�;���t�W׻zx׵�Γx)�O��S�v�^@���U�v��k��ʤ�tE��>�D��
�v��]K�\}9�RU�9��c�Hu�X���|�f�nf���2lf�k>�z5Z"'d�*Y��",{X���E��RH�p��!ة����:�I
�}.,nG,��g��a�\_��F�ֈ��"�p���wv����)#&�e����su�cK�~5�3�Q�x�R	��1]J����`6�>��P�˿�D�P��M�P��gj��ܨU�n�<QU���I]�_'嫱���ޓK�7X�'��sr���2ںSN�nBnQu�(L�e2��v3K���-8@���F�6�u��ׯ_ϖ!@4Kz��g(Mh���B� XFD�}|����҅�+�O֋��d�i��樯1b++��f��A����mZ�~��]��@�	��I����i~A��ă�-�.*"$� ��ӶqA�te��[��B��`�CA��
+�y{��1��OVH/?��_��G����G���o��_~�?���WO����`���g�J���`�0���6X;�wT����������!��e��?L����=[l~u���>" ���j�?�?����������w���}/��p�ٲ�P�y��G����l�/�z\�.���N��W�mW��y���k���Ø����~����$�b�>M�����sU��m���g�0��Ew��9<AI���\�G��槕��j6���V�C4%nr��V'�I�&�
��}t�@��V5Ѐ��cX��G�}�̓��V�o��ޚ����8���7*ï�ˎ%ذ��x�Xĥ���>���$z��I"�ݮ��ML�Zɯ���p��2��<�W���Vg�w'�)^M��Y�!�i��u��[y/�h�+O;+���ap5�_/�dI(*�|6�8�ռ��^!�s@��&�:M���W���Us?驗��|�����q�ս+o�6�k�q1��2d��_T7<\]�XMIڗ�
N�Wm���~���U-ttK8�d��/�,(��L���������?[V�o>�8f[�*�^W�j����@�w%I�2[�����$�������~���Fu�ߓ�I��p��-R���i��h��W�s�����&�gR-Q6-��%�ڜ6F�2
���6Gz�Nw�E�ٶ?���X���{��&O
|��-���$���L���!�t����G���n��Y�iF�3CFݬ\�XH�=S&Ƨ�2ӧ���ϰ]&A���ɾ�Y�Q��ɫ+��"q@f���B�p!�/�6qmjp���"]��p/��rU;��Z��>]������ó���UE���40D���b3~��;�Y��	��i�r��x�G���mX��ڋ�i�H/`r�,��ӎ��t���t�|���j�&���c�ɍ�I�%��~H��ZΈ4��W�l�()ۛ:��[�U�b�W���(�I��q�o�p��#b��x{��)yf�e�Y��E˗�;�k�U��-�H��,�4s^�e2v|Ѯ�m}VQ��mj�i���g�WXB��u�ե��� ��0	��
��%ή�B`�Koz�:�<���!�)ʓ�'8\�V��"<�5����w=�;&z
�`~p���]�Y4^����{��\ ������w밄��\%!t�iE{���'_B� RS#����ӛ�.^�J����l�_h���$5�!��U�mS��f*)��͘7�#fڑs�ע кO���!4�aZ$m]zD�5�}6݄m���+��s�u_�i�3$}�m�5��j�����@��%xאx�P�*ʦ��7�=>Dˉ)&dz=�����$oY;p��|�.{�Ŕ	k&��f�Px�������u�mڬ >�Ҹ��᳎ӧ���.W���i��x��Zŵ'rU��̡���Qb��]��j���B>��&���-�
��yݦ���\�Ծ��=H��-���{\7��w<i+YIi��2�̿���앰��8�W}
�@�v�	��\�\��'��B)�g(�DI���y}��!�R��"����SW�x��_')4�^̒�,d-�$x�:��%��%X�W����Lh,�.�
�O3_���np����
nB�Е�#7����Ӷ��0�a
�Bl)"�U׬�ŗ��LY�R��Q��5?�&�;�8[Y�j��ez�K_bZ�i�^V�WCG¶y(�zx�[��U8wd�W+�"��}�DE_;v˞
	w8��n�dej�j��WcQ%(^-}��I�rC%�z�� o�7�T��w5�$I�4M'O��d_��Ak�=c��(r��7eY�@�g�FT�=�g���rJ�C�J���~X黒C����>I��{��`ǰ��̫-v�s?���>1y��U���[�F����nV�brJ��ڷR��Zd�i��c\�r�P^�ŧO��>έ:�>�E���Y
L�sɸ7hr �%f�+F�fG5��s�O���m��n�d��8%�D�d�����xB���ؒ}N�Q��ު$����c�T��[�ƠmJ�%�מ��.�ۧ�E�7E7����O:��m/�y\]4o����ۿ�~���$`F���/Hzz�
�,�ų��p�q�w�P�U�;��ΑK��p�����2	�$]]�A�m�nZ���7�m䯓�'kJ,F&}S'i����D�9>��F	_��n�e$t�I��&%ĩ�g1��e�Lrc)����P�qJ�?�����)ؾ���O5��Oi�&��Ql����Rz�;IOaTE���#\���Ƞ�U��kX!�>��CB���$�J��?H�qGښ�ix�a�/�/��~
q�s�3�0ڧEՄ#։.O1���S(�2i�V:�8XlS��S$��Kj�OW��_�Fɜ��~a0�Nam�PkՅ��
�݋���>a��=�Fo�%�ي*�\B��L:�HdYe��|�˝ߨ3�r2mL5�_���.믑m,��j��3N��[
Hus�ǎ,�Ŋ�f���&���w�b��ﱔ�t�Y�:oL���j�:�Ft��E[%����w.=�y�h�~nd�qps������Y6�5���؁�t�G@<��������'����PQ���n�V|mFB2I�T9uA�[ImPhT��d^�;�H�����w�1f�_4�[uc��x��7?Ө��E�����٩��k�^��ϑ�eI`^`�f�m�{Z/oԷ�%K�����p�����
����,.�f�����Z�^��
S�\���K#��JDC2W?q7�>�Y�kś�S쓾w��kU[�}6�>����.et���<̎4�j6�x�	VIY{��`0⌒��x���:t>lx�H�c��\Wk:͇����1G�&\Gt6�X�T��y�qok�������jr����&Qg1�i�򪻀�Q/3�V�����.�Q�������C�&�m{Ҿ�xc�|��E켈�S���!P�|g�y���������⡁����_�H1�U���4*\4>Ѱ��>�>�����f�,WmX>�N㹺��)�7�����i�ߐ�Fg����&�Wo�o�V�no~�,�Y�lv�6�E0<�y�9�q���:�]�㚖���y�_\5��{�	�{�4�n���t����#�E
,��ߐ����/gA
}<Rxy����¡�fY�;V�}��h?�@��zm[��3d�G��'b�l!�����)慶ßy�����?��(K�_�}0=�zH=�8�`��wߔ�t��c�����-6:��.��5؝+�"T0 Qj+�&�ۦR���a٧�<S��MIn��
`8�K�V���'~�~"96�D/�Z���ղ?nN��/ճ^4E�bsܦ^ъ�Z�/�UE�:��j0��s�/-�
C�9�]_1
�cWxW+׮D�5<��p�ĮE�ZA��G��S�/���s�7� �������s��hƕ���d�ݺ�Gu�h\����k���$8�	���t-I���$��޴�mC7����J�0{�{]�����_��j��ל�x�.���)�ǀ���WUp fּ�j��F�\7�͎u܄�U��?&^#k��:�G��K��Y�K$A�_�#��%���5&�����G���;�����[�a���|T���$�p�IO$�q}�"���H�
�g�}��ŝ�Ҹ��JQڗ"YF��j�$i�hpJ|��^[ɢ����>���}�e;T��c��S.��N�5fEF9���{|�(m7���������^�e]��w����'@ƛ�2y�n+��x%{/��9��:���X,�lY
;*���X0��D�0꾶�2�:r�xx?�0�j�x�0�f4�����F�Y��~�ܺ�	ts�r����ϖ�si�Jܑ.��7�ٴP��͑<=:��Yde�y��F�kEoj�8�ܾ3|��$eZc�$|����z�Ø^��O�H�ai��%F�����JG�ᄁ�ꊦ��B�14-��$��s��#��#
�uv1_�pt�%
���<i�Ѕ?=z$�ܻ�7? �YT�2�
Yc���_)`���3f'�/�uk1�u2�Ql���:���	�1�w��P�J��`8��.����F��1~)i|���%T��څ��V�9�B�ܙ��&�+��-��Ѿ~��
�S%�o�l��]�N�:�����y��m���=�{��%��7
?���|L�h���V���/ˀ~F�1T~	��D��=��5����6�I�>��x�G�fӤ�[��z%Y����鬒*o<�J�{��֗gi�͞^���V-U������
���D���^B-ث&<1S��#z����S�'�jUBu�V)߿���/����-�B>���?�*+�"��K1s� �}$�e��,4t|��^F�T�p�
���Ɣ*g�����Gæ;N�.V"v!�]+�26;��\*~�ԃ^��q�c��d�/�:�hJ�<�>n�*�����N�N��‹�?h��L�%��爡�ߡ��PO@ȷH���=SR� f�V���/�
�ų���t5��i�8��V}�?��#�Z����p��J�O�҃�b͜�Ҩ��ODP7d�	��e�_3M*i�������/�Cs�y�V���.�,5�A�S�z�F�s��ۨ�X���Ե���,�؛2�k��P����t���~���b].�0_ IA[R�d1J%� �����%���'���-�M�GK��޴�3�	��D������Zҕ1�<l!K%�Ë���Z�.�Rݡ�E�I��p��$u�	�/�®��\���`np���|�H��ė�d=NOMҏ�l�����%�p䈥h�k��9���%�p��í?<$�9�VجrL�P�7?]��!#v�k���*3�����(��:��+Wio&�՜|q�H�{��9�MJ:b�}�QUC�Q#(�)+o?���w�جh�O`��I�P��<-���&����]��]$(/��0dmW�mu��Bys��;U�G��;; ܳ���oa�tɽ�Iu��Y���d��5�oU��h���@�%+W�k�!�1�C2Wm��ɛ�Ɲ�}�[I8�U���>8�
O��\�m/�`E�B>�

WL�"�����j��.��H����Ž�T?\�⅗v{�0�Z|�(|���ă�C#(	�Lv��N����O�����Ȯ��\;ż��)��=��8�|��7�>�6�ų@%��E��@��p^#��}�FM�m�4��@U�����0�p�S	��>r����k��<�;Вf�]KFҡ�:U�($���55���(Nl�ە� �Ļ�k�(CT�fpR�ŇJ�߭�%
>X�ve� tV^��}��_}���E�������. �I�X��L�{�U�u,�a�Xv?�#T��êvSVe����|�T��;!ZZV=��̀!�!�i٘I������}UH�k�24�u"���eX����ʰ�o����VT�&ʀ(���: {�P�e�$<Y:���k-�pU:k ��࿠���q���q@�(>�W��X�Fr�k1,�7*_M�b�]�F���/��{�l>za���Գd���Tz�������
ZىzKFE�厄�^��56ť�>;$��f��`L�n5�ϼ�P�W ���2�����
����'���ԏpu�U�Rp���E�i)��U�֟�!�c� C�Hk�c�i@���)[.��Y��ʷ��xz棼{�~Q���tV��'[� ":_���[k��Ӄ��j�#~���0D����d�|6�GN�úo���P#>Z��0�t.��__���
ȹ���x�>D۳�1���MЦ�
�V�e^.g��<m���[+!�$	.�nT����s�����M��/VL��|�"�n��N�ٍ�j3#�n��
�
V���k����s���ntG������j�J��}=)�"�G*�?��#��Q��tɬ߭�%��h%����Y}�w7I`H��J�\,4Z���r��p���$z{W�\�D�_2#��!e���!��_�y���x8B��O����c��%��u!%��Q΢�_c�az3
V���ߟ,�x<
��:�ݡ�����A/��X��1�M��r�̴W�4����E3��Ɂ��@���~`*�Rء���"#�f�0�
�]���R�H���S�ރj^$������j���U.
�,������K�k2�e�4|R��ߪPp<a1#�Ex��/��6�wZ�䫐
-��!�
Rv{pb�ߧ��#o��eN3�7類zB��R=��I�ԣ�v�<�D8��b�EG��)ڂ��$�l�U��jҞ�ڨ�&���R�����יg}��o
���R�d/,I
P��ıs9+�1��Q9o�G��5N�Mr.t�n~���,��5˝O�%�C�i�{�_�L��:M�($���2�S���2��F��`Ï��G�{j抮�r�{4SAŇ{����H���gf�,V��X��7��2m7���c7�d���}��W�A�ZH�o����YOuh~��Nz�I7�;��[�r�[Ѳ������~�aw����x�?�l��~Xn$U�֗�mE��������o~^����e-�W�~��Q�qo�h�U_��;�ż�	$�2u��gX�����h�Jv�b�h[�d�z�u��ō$K�%�f.�I�d\��	0M�V�]��Ew��\bjg)7���:���6�
�}#�v%�gB@A
�UB
�t��}��ɝQ*�jH)�N/�c��J4��c�����TͶt��������^ނm�r�{>xLw- ��4V��P�>�N
|)��Nঐ��F8��Ȝ��$Zӣ���˖ų4b��u5��\!eB�#z0S)��{�x,�>lz���W'��L}Q��g�ZO��Ñ�T��~�|�6�`nU�nixj�af>��=&
��^C�*�!^�S2��7�.G����o�G�?)�e�>���T
�����ln��3�'3Q�ظ_2���6
�r�\;2�����8��Fg�Q��o머q��a�z��R(B#o0څ�/�.� /�"���[��6PF�H��7�
q���W��'�j���`YH*iQO߯��w�g��n7�7����ؖ��>��Ż�ث�xG��)Q�HQ�W��4!j2�}Ʀ�D��/YH����j��x0u�,����%���iuB�	�%4�v))J_*�P�G�d�dK�̖,{�c�z��)�f)n�q0gDXK&P��}��O�E�G�Ы�K���2?J�X��1�7>���{�N��n�D%�J�}�G�|{\�xi4f n/�V�BF*�+�K��r>$����~���4���1��S�Eډ���?2��LT5�����H4�m���ܱ�
�V�͏+��&6+�_l�=���q�f5_([`����>�m,�E
MwܸQ��-��\��
����񪂩{�����1��0t'?j�0QnP��Y2,ŻB�U݄�5��>���xtrg*L�|x-sD*+�6���
���
���Vs?7a[K��0B|.�D������?9|zzH�^%_�9e}�=4^!k*5S�F�� ��:��D��'>��3�p���
"��3<Z5�|7_�n�g��?���8��/;*�Ȋ�EA��VK�o��2�7.�M[uͲ*`מ�	�^U��^̄���Ԡ
����BN�W���
�{���>�0�|�L�oJ_��]Y�H�]p[Ϟ��|��Oþ�m���JK�!�����s�	�����bp��W���
w��������R�����g�q�\E��V�p\���d��rv��dol�|��٬��h��1g�(��)��{(�p�M���d[v�X�g��gZ�%��f��^��%�����4vY]ë�_7�?/��V���1�;����U܎��V��0�2,p-�K�Y��5ѯ��K�ibl��
����#��$!w�]"n�8E%�������h`b�ߥ�ٍ,��
u�Zy&�73¹����^��+���#��5Ҭ��6��!���P�P{z��+������]�^u^

f%Hة��KS�ޫ�G�5�~o:��(4�Ǩ^��
J�l�u(�����#�_8�H���nF��+�b�L����-�E�WK��p����=���$\i{���œ�2�Z�/��>�)����.UH��r�U@�������sq�ѷ��-�$�GqX_F%6��ݰ��O��/|����e�
�;�t��P�_٪�>|�!`�o>x�ͻ^s���wf�Z�,0֠Gn}��XE���{�);�l${�H
��ct�AA��o���Ta�3Vdp��T��!Gc��/s��y0֪���+��t��G�|Yk)*��
��^;��S~!V�zK�Af��c�P�r���������+�H�&\��I\���}����Ia^yUc>K�
V��]����\��$���r�W�z�aPǁ󟴑q�y�Oi��8���i�.V,�}x���/T��\�%W��I�#A���E�n�r �n�,�>e��S���e�G�w�}��T����n~Z�/�a$clf�������*
���+�a�!�,N<��!S���X�5��w�9�d���K��#�wWp�g��˄�����Pk[�\�d>�&O>�<:��pzr�|������p��4}v�|�d����`�����Ó�W����]�Z�e����q[#�D�jB�4�uU�3���f�)��}�c�抣M�����!|��¡��uS����\��1��@.�'��'V�7d�O�φ}��
u�	�pִ��y#z���Zn�S�j�P�%|{ı�����Bu��b�l�`��؟ӯ�?ƫ��@Or}"����Eo�#�ي���db��b�=%�KME�Y�	��0W0�
Q:K��yt�L��P��.[/�o�1����K{�-]�zN�&�W�m@.;7����)�r�(r'���W���x�a��ق;�U����F��[�e7?aqbT摐��N���ǒDw��?�A8r�DYD�$ΛH���ΝPv�{w�MÝ�x�K�{j�C��yem�x1f��2&7F���G��.�S0a�	�_S�U�ج;7��M�|?�n��3�eKΎC�Y��׌�9�N:��8'�k���Ar��͊�[F��S[���������n��Ee�I>SzDV��wd��f9�?=?��3��=�߈{�}В�2sv�$}>���7Q��_@)�lS�?{���!S��<6��:�`t
�aL� �\��i�c�s:���;q�'�9R�
F|Z�	o �}�l��}�9U����j$K�Vv�'��-������Km��Y2�t�(�}�����ɳ�3!��&��H���㑃�u�&�8
��ȵ�lwgtKA�:^����ZJ��9/H/�e{�G�+
t	���
���g����Q�rS�,<�ԏ�	����s� ˜d4�� yƉ�hqY��j*M~a��V�A��!�]!  ���	xm��N���ʉ3"��FB���]�PC=���5t�D��Iī+y�sCDm?I��JDǭ����_o�J�l�(���t�E�*'�<�+I��9�Џ���ꐸ����L�tH<Hw,���%.6��(w���+O|�s'�g��,�b���<b�Z/�o~h���ã�b��d��.Y���F�	[̘Q�V>�<�k+ܺ�����-^C�v
*��S녻�Z�e���"����Q�
��aO���c�<)�����&���$����&#�~�@���P陔�hvz|wթ��֗�?`@���r��O��f�~O�V���B��������>�w��Gַ|����
Fĥ݈�ێsM��T>�p=�麺uAd+0ZA"��X��Y vIt��_�'1�͇�ӎ"���� ����
����]����q52W�Y'4W���M5��
H��+���[B^aΊf	����a���o�R����,]
a�֎'��SR�m0��>��� %���	z�nEZ�J�R��[&J�qO�
XV0Z�S�(N��z�3��3��L����w	���ԛŝMJ3�uQ�~���\/�*t��|�vՈ��*#���7?���
äW�v
!]6_W�X�O���綒	g�,�Z�4b@E���@�ײ�~5*���.#Q���Nb
]޲Wnz��dP}�����m8B,y����uz×�Ӫ�fz�^]z�u�Ic*pK�P ���rK}L���yUL�T��������I`!6W^�M�W��+w��My탈Ќ�JZ\�>�n�6��.����e�Ja�0K�<.�Vc����!�TI�a�U��۹�5�8�X�+�iJJe�CF�T9��'0K����\�	[��Z�����H
|i���	%�@�+�[5:�K�{'G��A����RD����3�3M3��6�l8rX�/�Nj���Hs�F�R�J���e%�5W�&��5^����|�)R���I�x�ٛ~v|�K��9q�#�7�'b� 4+�5����??9Nop)J�w<m�`ж�P`QK��".>ж��LJ��J�e���ke��C^.�o�l��|{&BʲZg�' �S������>G����f�a���w���$ӂȥ�B��T�,lnQ�vؖ�����ƔB���u���Mut�N�R.�����w�/zm{���w��Xz׳oĹ
����y�d�%���%L�=Eh��K#����~�^�R��/�u���U�
&�EJ�*c�*Wi;�l�T����	�K�{^T��m��IH�����[
l��_�x��%;��e�#���e۬���})E;���ȴR��2���\e��"\Z��p螴%�a��o��o��6���oy�?�a�tR������cy��R� ��'J�<;���l��с� �.��j�zg����o}��)�Q�+��vIfIg,	��Q\�i�V��S5�)�����3�Cn�p���Y5ؐ�b0�Ҁ��'!��;c�B�o"��H��u����F�p��tSM� +s�x��v��b��a��Ze`,��w�M���w�%�V�'���Q��@���1�׿��<�q!�#��MSLm/8d[ךȠr!�Y�#��u�JRX�X=����[r��"��cE��Mq\���h��E?Ɠô{2	��<ɺ��q��O�v��/,��.s�ݢ�ʎ����b�)���y�R>�aU�*=o�%�a��iU��.2��y8;��-�0P`��_]�&�r�-��̧�z8���׏>ʼ�w�UJ@ܛ�bU��H�^s�
��`i���;���G�a�9]����;�������V�ey�u��X����XE��Y��Nz[TX�g���w.V��Ӧc�f>?���Y��h��8�_��z��buח�׋�,�'C:���?��N��$�
�i�W�	���J�r��[�$e���P�iVҌ��Y6��+N�Y�}�J��P�7�!eE�g4�V�L!yef�J6���I���,�(K�T5���ɧ���*�L��t<V��0ة^1��f[���uxT>Y���9�B��&�r[�`���N�J�々�6�+�����<H�$��w�|ʯ.���>��w�DfF޺���/9�F]VL`�.Ƴ�X8�s�����G:_\݃�k77Y�Oӭ��S��isC��h�_zik^�}Q�U/�����$����vv$�����Gce���0W4�=10�m��I�ߗl���1ucA����2Ն��BI�Gh��/ b�,;������B�l[�
d.kxK@�W�ۼ2�)+�H�n��|�|����M��k�,G��N��t�G��,�,~�Z�ڒ~!�i�D���j�rDžj���0�{H�НY�3O
�
1z�ǀ��Brr��t��G'��|��yy�C>�����l�o3{���B�!8xH��B�&�l�Hѥ�Y.�G9D�[dQ��c�Iy���	�wn��$�:(Q��
�%�>~
�B
�������~s�iQRR�ݜ���'���!�W�|��_ԛ��;�
��2����"$�n�	N� ����m��[F\@j��y1�
%}#��� 	��^����$��\�xu�2��]16�]�j0Y-��"�{���T���6�]T��m'^����0�9��W���_�Q0�e:�j}豴�In�!�<�>q�B4�*L��cL�qO��!z�p���0���?�P\Kgc�M��'�U3^nT�jj.�i�)�rZ��^���nx���NX�Fc_��읏XL���֊�r4ZJ���;.V����w���}��oW+���s)��N�b���ċ@�Fy���Ɔ�
erTF��:h�4�w����ٴu$��nw�L���Q4�,ՎBΌ"�=�J�QH-5���sV��e�
�{I]T:&-U3�^=x|2���{MUO��b�\��h�z�Uz��_�w���l��R	윂��owe�۝(�ZC&�cv(J��j��l�W�m�Q���=��IU0�ϳ��.�tBJ3�n�	\E_9���N��PU� ��W���+*sj8q�9r82it
P$��J��%p!�0��*�p܎~���(hseTVE����H!X7+��53�
�54qE�	�;^ԉ2��y�gN=1���9�S��˺�nFO5
�NJ���q�S4Y����D�F���y^�Fj��c\��IgjV�w�FpׁE&���k�j����<=#��S���I�c�k�G"g�=ENtH�\�'"<� ��uu�d)]�=��W���.��F�yZJj����r!�I��L���r�H���#ef��w��n��/0A��.n?R�����{�kr��>]��G.!�L�PV�e�Y��p?D��M~����>!1[�$�W��A��B�#�;=n�2k�N� ��s�|g|�P�7�������k��ԟf�Z�Ef�Eѣ͓�mҥ�׽�����H�5���#܀m+:g� ��a���XeV���r�U!$���0
�޷�	U�T�5��
���b�+�� ;��cd��bl��JW�h8���")��a�o��w�b�WR���;���5k>�������-���� ���o�ʖ���w:�zo�5�ĢV��)I$J�Ȏ��Y�_�
�7���}�i"B?m�e@js@r�S-�k�g7
ݗ=/e
�t�b��v�L+�z��0T������D�
����"hެ
�NIu��Jo�n^_�W��n�'�?:�\��r���'[5�ғ�89�~N�����#�ǣ�]�M��i/XT��JY������EJ���r���)��I����X&�Z�(���h�I�<7m/y�d{	�
��خ�Fi�YT�D����e��D>�Ґ��m�k��7��>�\�Z�em9�љI����r���-Hp#A#�r|���b��ԘͰ&�k�m��cL����G���t�-+/O?yF��kc  ;�2PA\V5"4uTq1c]�����JFmV��o~�B�L�z��P��A@�i�.�V���4#>��Q������({��G6��� ��K�<����V6��H�sow�tV���P�FY�i��}j�Z��c�1�:��M�K����y����NN%}��7?�$���K�HN(��ns�c@�.ʜن(�v�+ݥx;˩�R�R���"�����Ã�R�,b
b�a(4?��f��"�(G�.+����m ��;���lg!a���'�b��c4�:`���U��
����Mf��KQ�y�/��努P��D`j������Wo����`5@�@���7�'+e�	���W�
2��ߖ�M���.f�h�K瓂����kz��d�B���t�9�d���#t���ß��T?�?�	&<�
���D,��A_@���XVY5L#���Y��h�@�49t=*��c��f���:V�Ӽ}�	%��$��b�p��Q��u���U�,N�"
�$'��zL�y]i�T�J�$d
��m4gG> c���_-��|��L�z���ڕ��t���q�Cͮ�B�s��J�񭔦�;-�`1�l���UFF���ȥX��O���]�Q��ՃH�5.2c">x+�B�1�Δ�&�r���#V���|���,��J_Z�¨W�Ǟ��;��yI}x <�~�$ۯ?�h���ʚ�P�i���n�ͯ%k����F�H���8'�5�>:��o%3�X����i���~:Y=H�<�������p��*4Y3�^�	�)jN�a�,VD�δ��\j�[iR��ZD��o��Kў&�rŔ�����j�2�)� ��	x��@�dVճ��ͩ>Gz�=���8z;��HL�l�&C�'	g�R�g��tr�@�YѺ��"X��g�X���=��<��J�PY�ƿA�~�������M_ʢ���H�~J�T�+	��#����>��i�^�09w�W��,Z$��F$w���&!^$���n���g�'/���=�����AcG�7����ҙN��H��Z�]���R_EV���4Y�n��ř�ɱ�e�G�nF4�>�&9TW�A��Bc�3^������,d�����^�rJ���lю�qsyU��2�zٮ�L�{P�l��ҕ����m��MA,┕e}��l¦I���4�H����	�����8��ɳ�Ϧ���/N^�??zv2�r�鿑�MD��Q`х�*��F�5��v��;����:i�fɡ�oIqaD�![�j#�*�Sq.�h	��Ŵ�����qN�\�"E�6�_�+EY��j�W���[�t�������Ib���ժ'��`k25̵A
��c��.��ߴ��6Z)y�:�i�Y��z�(9��d�ն7���:���t3�?8�Z� t���Q]�;�E7����x�=,?�{�B
�Fi�
E�d�x�)����(�z���}�01,4�˅���
��G��ـʪ�ڷ�^�`l�X�൒��ҹ��S����K��,�2���e63!?��:C�T	��*:$��n�Z��9���8�6�~A�Zc�2��������PǨ2;���
j���G��h}�kҡcJ�%TҜ��?��Sg�32�:",�;�
C�Bz�B�4$_q�k⩈̈́T���\�)�>��˛�7��ʀ�˥�$��S/��f!3��Y�DjɱE��ۀ�[DŽ&^�ɓ�qZ����^vKH�õF�zm2w_�} C��5�.0扈�e�yi0��.$���|�^�B�0Ĵ2g�V�աo��^����d<���!j��-{ ��z�#�?�lz:
��Sh�u�]m�w��ì����r�V�i2�M�jy�ĆhoJr�nn~8_!�6S�y��Q�dW��xvW2�*��{�;�vo
��>7��˛��W��h�n��������K:�����B�/�R�Ki��A�T��[B2-JV#���2�{��%�̩bf��N��ae�<��D`�@��La�tTN�pN�p���S:����Q���s�j���	Tv�E��!��ed,�ۊ���G�R��",�/�p5����p#��k��ޘ�=��p��ҝ�.��w��1$��Hx��\���)�u�,_��G�b�/���n��Ӏg���g9�S�J��*x�;B��n�Ò��U�� �q����._�qaћ4Z͈>�.8�
H�դ�}����~���a��b��u��#q�N�U��f	),2�@q���\j�7ֲ~3�%�2
����ƴ�#/�^�}��&z��|�l�RD�`(:\��Qq%�S��^��`�S,¨��t�Ƴ'YB6M6�Y,��3�NV��滻.ᯁ�XLe�!apHRe�e)n�!��8� �����F_������(�#e�;�����@�k􈬚Ⱥ=E�۶V��G�
�>ă�[��3� �Xt|���2�Z��t���x�ż��Ű B�X���>�Fyz����7F7�1���\��DZjC3�u���Qc��v{9}��L奏��`�g���X�"Q�j�6#����m%%e�5V<C��a�)�cd�خ�Mtj�����b��sI`���Z�������eM/������u�P,["<î�g���sޖ���4�fL�3+����9)��b��ΑL��$ѵ����>KS`/o�++9��s]����saa�δun�X}�8�T�t����f��1�
�A9�yS�\h���d�7���l77?���MN��?����=-.�l��o~>��F�?�
H�%vB)_w�`D0u%�ҡ���g�I�Tk*~
��˺@O��n�bmy�퉘���n���M���y&�v�ܡ�j��/��J���{���׊�Z�+.���<1��Ѓ�V�ك�R]�=;߽��L�מ���]��,�f7�Н�i�s���{�^�.��H$	1R��j]/kP����E����^c�'!����iL��'�O�>:|������LN�x7�=��;�5�����2ZIH�K�k���v����j�SrD���b� ��DܻW��t	q穧�G_��f��el��g�a����%x�0��aZ��w\�+�`?�=G�Gj����A�#xE�
��y���A��W�h�����뼅���
�)���w�-t����+~s��Y����Z V�9]9�8K`�T��3�)�$��kH����⏛�x9:����vەW�
�3rF��$��7=_h�I�ڞ���”�劸0�ʹ�$)��Lۼ����t�f���N^�ʄE}��ltR55Q٫q�����_�2R����v�����;�'{�A(ƍ����Ds/�Y�)�'��a��/�!���^�<c��H�:�,P���ZQ|�q�6�C����&O��f�
k<DCPnj^����_i�0�4��
�:6t-��*!����<r��3Z��B�M�b����>f�f�A��$�x&���,m62��	�mۢ�m��I�/�`}�u$#L'�����JI2����X����-D�J���6�=[������l:�*;��U_v��g��|�H� JGی��g2CO��d�荺r_t%9�����e�
�X|vz��{c�is�_�Y�T� �V)N�?D��5r��4}��RebM�J�54&B���fX5��Y��3�#��g.3��^�� �	����l���ү�;��r�i�m�E����i�wF����i�9N��M]���jc�>
��:`Ѣo�^��3�|�����9�ֻ�Q}�@��C���/�ڈb�4,U
�9�1��(��ݒ��^�'҉H���}_�IL�B�����J��<'j�aF�%���,��eT���d#�`G� �>�t�9����˾�n��k@%�&7���bQ�+_Z�Y�=�9r*5"�F�r����>z�g���j%`|��Q���5�{�{���,_T��`��{����1�s���6�E�VZ]J���3T�S�-Å�w�j�h�\�W��9��0h)o������z�����W�ڤM>YLs���U�v�bAEa@)?������dN��߽���÷��_;���r�+�b�i(���)�Q%#�$-���~����
:�n�R�)�����9���~�$_eH��^��fӧZ���׬��e(�룓�'3� mu�<1�9T���%��$���Ǵ�Y[�v�Dr�KԤ=I��Bp�%.�o��� �u����(
�--��h��\H����5�xҪsB'�$��JL��Ѕ/�?d��?�+T�?N�j{e�=
R>�U��	d���$T���2��ˆ�d䒕��V�v���j�ވ�b�=�<o�x�O��
�w`�#�W�2��6t`�$fu���zV&�C����"9iO���|U����;�e������#���/k.A�;9�����1��s�>�􄽲쐐�r_h�<����47]l����fÇ��⁒��ar��]͗��7�$7ޮQĴ`!��8-��8����@�;�^�\��<����r�0�4����L|����zN�ggk�VVy�w���|a��}�Z[�!�B-����y��
l,��Y)_5Mz�E��x�@�n��2Ghw�-�U/V�)
�w�~H$!�x|���ᴬz3muUL�ҁ��\s�k�ZB�wZ�U+��"��XQ��d
��!`u4�8I^T����� _4]�Q�O�Z�>�������)mzC�J�����t���mߞ�s�m�
3Oo1�?j��V"�2�'����M�2B��R�O�<ty���_L�|���h�D������UR��JM�����\z�*5�u�?��vK�Z�P=��<�%��������m�=yc����B?���ewh�������� �宖�wi�k.�P]�_� K3c˼Է��'iV):�s�?E »��i�L!�'��h�KZߪ*[u͹S��@b�Z�4�����p"�'��-��Wdr����͘5��qo����
��=5"�M�/����~��	P6<�R}�|ς
��b�
j|09����,j��K�����NW�����L'Y��6R�O�*I4b�>
yO�| �G�,�:e��gRX�^:Ɨ��KI*�٣c�7#uT��v��+��G�ĥ�{O-^-����)�����o~�E����R��B���U~NWz����i3	�&bLv�@����&��_?��gLG�dD���К�����
U}Y]K)��+6y�٬���~�z�L���dN��Yڨn?�@�'u����	^'�?�}|L�@0L*�r0�>)H�&��w�2������0&F�[r�e�h�JĠ��J����x�P��G��ɒ�����hD䀾��XcB�Jo�#BGa�
�NP85�l��'���	�dЦ���PK&9NSg�G쌽+���litespeed-cache-es_ES.poUT��gaux����PK&9NSE�r����$��޽litespeed-cache-es_ES.moUT��gaux����PK��# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in Spanish (Spain)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-10-14 06:43:24+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: es\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/toolbox/entry.tpl.php:14
msgid "View .htaccess"
msgstr "Ver el archivo «.htaccess»"

#: tpl/toolbox/edit_htaccess.tpl.php:56 tpl/toolbox/edit_htaccess.tpl.php:73
msgid "You can use this code %1$s in %2$s to specify the htaccess file path."
msgstr "Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess»."

#: tpl/toolbox/edit_htaccess.tpl.php:55 tpl/toolbox/edit_htaccess.tpl.php:72
msgid "PHP Constant %s is supported."
msgstr "Es compatible la contante %s de PHP."

#: tpl/toolbox/edit_htaccess.tpl.php:52 tpl/toolbox/edit_htaccess.tpl.php:69
msgid "Default path is"
msgstr "La ruta por defecto es"

#: tpl/toolbox/edit_htaccess.tpl.php:41
msgid ".htaccess Path"
msgstr "Ruta del archivo «.htaccess»"

#: tpl/general/settings.tpl.php:151
msgid "Please read all warnings before enabling this option."
msgstr "Por favor, lee todas las advertencias antes de activar esta opción."

#: tpl/toolbox/purge.tpl.php:80
msgid "This will delete all generated unique CSS files"
msgstr "Esto borrará todos los archivos CSS únicos generados"

#: tpl/toolbox/beta_test.tpl.php:54
msgid "In order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions."
msgstr "Para evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s."

#: tpl/toolbox/beta_test.tpl.php:48
msgid "Use latest GitHub Dev/Master commit"
msgstr "Utiliza el último commit Dev/Master de GitHub"

#: tpl/toolbox/beta_test.tpl.php:48
msgid "Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing."
msgstr "Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales."

#: tpl/toolbox/beta_test.tpl.php:44
msgid "Downgrade not recommended. May cause fatal error due to refactored code."
msgstr "No se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado."

#: tpl/page_optm/settings_tuning.tpl.php:213
msgid "Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group."
msgstr "Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios."

#: tpl/page_optm/settings_tuning.tpl.php:179
msgid "Listed JS files or inline JS code will not be optimized by %s."
msgstr "Los archivos JS listados o el código JS integrado no serán optimizados por %s."

#: tpl/page_optm/settings_tuning.tpl.php:97
msgid "Listed URI will not generate UCSS."
msgstr "Las URI listadas no generarán UCSS."

#: tpl/page_optm/settings_tuning.tpl.php:79
msgid "The selector must exist in the CSS. Parent classes in the HTML will not work."
msgstr "El selector debe existir en el CSS. Las clases principales en HTML no funcionarán."

#: tpl/page_optm/settings_tuning.tpl.php:75
msgid "Wildcard %s supported."
msgstr "Compatibilidad con el comodín %s."

#: tpl/page_optm/settings_tuning.tpl.php:74
msgid "How to choose an UCSS whitelist selector?"
msgstr "¿Cómo elegir un selector de lista blanca UCSS?"

#: tpl/page_optm/settings_media_exc.tpl.php:24
msgid "Useful for above-the-fold images causing CLS (a Core Web Vitals metric)."
msgstr "Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:229
msgid "Note: this option only works when %1$s is %2$s."
msgstr "Nota: esta opción solo funciona cuando %1$s es %2$s."

#: tpl/page_optm/settings_media.tpl.php:227
msgid "Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric)."
msgstr "Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals)."

#: tpl/page_optm/settings_media.tpl.php:125
msgid "Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu."
msgstr "Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración."

#: tpl/page_optm/settings_js.tpl.php:65
msgid "Deferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric)."
msgstr "Aplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals)."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Delayed"
msgstr "Retrasado"

#: tpl/page_optm/settings_js.tpl.php:38
msgid "JS error can be found from the developer console of browser by right clicking and choosing Inspect."
msgstr "El error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar."

#: tpl/page_optm/settings_js.tpl.php:37 tpl/page_optm/settings_js.tpl.php:70
msgid "This option may result in a JS error or layout issue on frontend pages with certain themes/plugins."
msgstr "Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "This will also add a preconnect to Google Fonts to establish a connection earlier."
msgstr "Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes."

#: tpl/page_optm/settings_html.tpl.php:64
msgid "Delay rendering off-screen HTML elements by its selector."
msgstr "Retraso al mostrar los elementos HTML fuera de la pantalla por su selector."

#: tpl/page_optm/settings_css.tpl.php:242
msgid "Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder."
msgstr "Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas."

#: tpl/page_optm/settings_css.tpl.php:181
msgid "This option is bypassed due to %s option."
msgstr "Esta opción se omite debido a la opción %s."

#: tpl/page_optm/settings_css.tpl.php:176
msgid "Elements with attribute %s in HTML code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en el código HTML."

#: tpl/page_optm/settings_css.tpl.php:170
msgid "Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously."
msgstr "Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante."

#: tpl/page_optm/settings_css.tpl.php:135
msgid "This option will automatically bypass %s option."
msgstr "Esta opción omitirá automáticamente la opción %s."

#: tpl/page_optm/settings_css.tpl.php:133
msgid "Inline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON."
msgstr "UCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala."

#: tpl/page_optm/settings_css.tpl.php:117
#: tpl/page_optm/settings_css.tpl.php:227
msgid "Run %s Queue Manually"
msgstr "Ejecutar manualmente la cola %s"

#: tpl/page_optm/settings_css.tpl.php:71
msgid "This option is bypassed because %1$s option is %2$s."
msgstr "Esta opción se omite porque la opción %1$s es %2$s."

#: tpl/page_optm/settings_css.tpl.php:67
msgid "Automatic generation of unique CSS is in the background via a cron-based queue."
msgstr "La generación automática de CSS único está en segundo plano a través de una cola basada en cron."

#: tpl/page_optm/settings_css.tpl.php:65
msgid "This will drop the unused CSS on each page from the combined file."
msgstr "Esto eliminará el CSS no utilizado en cada página del archivo combinado."

#: tpl/page_optm/entry.tpl.php:8 tpl/page_optm/settings_html.tpl.php:7
msgid "HTML Settings"
msgstr "Ajustes HTML"

#: tpl/inc/in_upgrading.php:5
msgid "LiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade."
msgstr "Actualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración."

#: tpl/general/settings_tuning.tpl.php:50
msgid "Listed IPs will be considered as Guest Mode visitors."
msgstr "Las IP listadas serán consideradas visitantes en modo invitado."

#: tpl/general/settings_tuning.tpl.php:28
msgid "Listed User Agents will be considered as Guest Mode visitors."
msgstr "Los agentes de usuario listados serán considerados visitantes en modo invitado."

#: tpl/general/settings.tpl.php:165
msgid "Your %1s quota on %2s will still be in use."
msgstr "Tu cuota de %1s en %2s seguirá en uso."

#: tpl/general/settings_inc.guest.tpl.php:14
msgid "This option can help to correct the cache vary for certain advanced mobile or tablet visitors."
msgstr "Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas."

#: tpl/general/settings_inc.guest.tpl.php:13
msgid "Guest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX."
msgstr "El modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX."

#: tpl/general/settings.tpl.php:208
msgid "Please make sure this IP is the correct one for visiting your site."
msgstr "Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio."

#: tpl/general/settings.tpl.php:207
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server."
msgstr "la IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor."

#: tpl/general/settings.tpl.php:184
msgid "You need to turn %s on and finish all WebP generation to get maximum result."
msgstr "Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:190
msgid "You need to turn %s on to get maximum result."
msgstr "Necesitas activar %s para obtener el máximo resultado."

#: tpl/general/settings.tpl.php:172
msgid "This option only works when turning %s on."
msgstr "Esta opción solo funciona cuando se activa %s."

#: tpl/general/settings.tpl.php:150
msgid "This option enables maximum optimization for Guest Mode visitors."
msgstr "Esta opción permite la máxima optimización para los visitantes del modo de invitado."

#: tpl/dash/dashboard.tpl.php:300 tpl/dash/dashboard.tpl.php:389
#: tpl/dash/dashboard.tpl.php:432 tpl/dash/dashboard.tpl.php:465
#: tpl/dash/dashboard.tpl.php:498 tpl/dash/dashboard.tpl.php:530
msgid "More"
msgstr "Más"

#: tpl/dash/dashboard.tpl.php:160
msgid "Remaining Daily Quota"
msgstr "Cuota diaria restante"

#: tpl/crawler/summary.tpl.php:183
msgid "Successfully Crawled"
msgstr "Rastreado correctamente"

#: tpl/crawler/summary.tpl.php:182
msgid "Already Cached"
msgstr "Ya en la caché"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here."
msgstr "El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio."

#: tpl/cdn/settings.tpl.php:214
msgid "Optional when API token used."
msgstr "Opcional cuando se usa el token de la API."

#: tpl/cdn/settings.tpl.php:204
msgid "Recommended to generate the token from Cloudflare API token template \"WordPress\"."
msgstr "Recomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare."

#: tpl/cdn/settings.tpl.php:198
msgid "Global API Key / API Token"
msgstr "Clave/Token global de la API"

#: tpl/cdn/settings.tpl.php:194
msgid "This can be managed from %1$s%2$s tab."
msgstr "Esto se puede gestionar desde la pestaña %1$s%2$s."

#: tpl/cdn/settings.tpl.php:54
msgid "NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s."
msgstr "NOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %1$s."

#: tpl/cdn/settings.tpl.php:49
msgid "Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN."
msgstr "Pon este ajuste como %1$s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud."

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use external object cache functionality."
msgstr "Usa la funcionalidad de la caché de objetos externos."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Serve a separate cache copy for mobile visitors."
msgstr "Ofrece una copia de la caché separada para los visitantes móviles."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings."
msgstr "Cuando la opción está activada, la información del carrito se implementará como bloques ESI. NOTA: Para que funcione, debes activar %1$s en los ajustes de ESI."

#: thirdparty/woocommerce.content.tpl.php:31
msgid "Use ESI for Cart"
msgstr "Utiliza ESI para el carrito"

#: thirdparty/woocommerce.content.tpl.php:24
msgid "By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded."
msgstr "Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente."

#: src/purge.cls.php:241
msgid "Cleaned all Unique CSS files."
msgstr "Limpiados todos los archivos CSS únicos."

#: src/lang.cls.php:164
msgid "Add Missing Sizes"
msgstr "Añadir tamaños que faltan"

#: src/lang.cls.php:139
msgid "Optimize for Guests Only"
msgstr "Optimizar solamente para invitados"

#: src/lang.cls.php:135
msgid "Guest Mode JS Excludes"
msgstr "Exclusiones JS del modo de invitado"

#: src/lang.cls.php:120
msgid "CCSS Per URL"
msgstr "CCSS por URL"

#: src/lang.cls.php:118
msgid "HTML Lazy Load Selectors"
msgstr "Selectores HTML de carga diferida"

#: src/lang.cls.php:113
msgid "UCSS URI Excludes"
msgstr "Exclusiones UCSS de la URI"

#: src/lang.cls.php:112
msgid "UCSS Whitelist"
msgstr "Lista blanca UCSS"

#: src/lang.cls.php:111
msgid "UCSS Inline"
msgstr "UCCS integrado"

#: src/lang.cls.php:69
msgid "Guest Optimization"
msgstr "Optimización para invitados"

#: src/lang.cls.php:68
msgid "Guest Mode"
msgstr "Modo de invitado"

#: src/lang.cls.php:56
msgid "Guest Mode IPs"
msgstr "IP del modo de invitado"

#: src/lang.cls.php:55
msgid "Guest Mode User Agents"
msgstr "Agentes de usuario del modo de invitado"

#: src/error.cls.php:96
msgid "Online node needs to be redetected."
msgstr "El nodo online tiene que volver a ser detectado."

#: src/error.cls.php:92
msgid "The current server is under heavy load."
msgstr "El servidor actual está bajo una gran carga."

#: src/error.cls.php:52
msgid "You don't have enough daily quota left for current service today."
msgstr "No tienes suficiente cuota diaria disponible hoy para el servicio actual."

#: src/doc.cls.php:37
msgid "Please see %s for more details."
msgstr "Por favor, consulta %s para más detalles."

#: src/doc.cls.php:25
msgid "This setting will regenerate crawler list and clear the disabled list!"
msgstr "¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!"

#: src/css.cls.php:581
msgid "%1$s %2$s files left in queue"
msgstr "%1$s %2$s archivos restantes en la cola"

#: src/crawler.cls.php:99
msgid "Crawler disabled list is cleared! All crawlers are set to active! "
msgstr "¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos!"

#: src/cloud.cls.php:665
msgid "Redetected node"
msgstr "Nodo detectado nuevamente"

#: src/cloud.cls.php:432
msgid "No available Cloud Node after checked server load."
msgstr "No hay ningún nodo de la nube disponible después de comprobar la carga del servidor."

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "¡Purgado!"

#: tpl/toolbox/beta_test.tpl.php:31
msgid "Use latest GitHub Master commit"
msgstr "Usar el último commit maestro de GitHub"

#: tpl/toolbox/beta_test.tpl.php:29
msgid "Use latest GitHub Dev commit"
msgstr "Usar el último commit de desarrollo de GitHub"

#: src/crawler-map.cls.php:317
msgid "No valid sitemap parsed for crawler."
msgstr "No se ha analizado ningún mapa del sitio válido para el rastreador."

#: src/lang.cls.php:109
msgid "CSS Combine External and Inline"
msgstr "Combinación de CSS externo e integrado"

#: tpl/page_optm/settings_css.tpl.php:149
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS."

#: tpl/page_optm/settings_css.tpl.php:30
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:83
#: tpl/page_optm/settings_tuning.tpl.php:165
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La lista predefinida también se combinará con los ajustes anteriores"

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localización"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combina todos los archivos JS locales en un único archivo."

#: tpl/page_optm/settings_tuning.tpl.php:158
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Los archivos JS listados o el código JS integrado no serán diferidos."

#: tpl/general/settings.tpl.php:94
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación."

#: src/data.upgrade.func.php:84
msgid "Click here to settings"
msgstr "Haz clic aquí para los ajustes"

#: src/data.upgrade.func.php:83
msgid "JS Defer"
msgstr "Diferir JS"

#: src/data.upgrade.func.php:83
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS."

#: src/lang.cls.php:116
msgid "JS Combine External and Inline"
msgstr "Combinación de JS externo e integrado"

#: src/admin-display.cls.php:450
msgid "Dismiss"
msgstr "Descartar"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "El último archivo de datos es"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La lista se fusionará con los nonces predefinidos en tu archivo de datos local."

#: tpl/page_optm/settings_css.tpl.php:43
msgid "Combine CSS files and inline CSS code."
msgstr "Combina archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minimiza archivos JS y códigos JS integrados."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán."

#: src/css.cls.php:60 src/root.cls.php:176
msgid "Queue cleared successfully."
msgstr "Cola vaciada correctamente."

#: src/admin-display.cls.php:924
msgid "This setting is overwritten by the Network setting"
msgstr "Los ajustes de red sobreescriben este ajuste"

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr "Exclusiones de LQIP"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "Estas imágenes no generarán LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "¿Seguro que quieres restablecer los ajustes a los valores por defecto?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "Esta opción eliminará todas las etiquetas %s del HTML."

#: tpl/general/settings.tpl.php:116
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "¿Seguro que quieres vaciar todos los nodos cloud?"

#: src/lang.cls.php:137
msgid "Remove Noscript Tags"
msgstr "Eliminar las etiquetas Noscript"

#: src/error.cls.php:84
msgid "The site is not registered on QUIC.cloud."
msgstr "El sitio no está registrado en QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Haz clic aquí para cambiarlo."

#: src/cloud.cls.php:763 src/error.cls.php:48
msgid "Click here to set."
msgstr "Haz clic aquí para configurarlo."

#: src/cloud.cls.php:762
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva."

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Configurar cabeceras personalizadas"

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Ajustes de localización"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Lista el selector CSS cuyo estilo debería siempre contenerse en UCSS."

#: tpl/page_optm/settings_css.tpl.php:64
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Usar el servicio en línea QUIC.cloud para generar CSS único."

#: src/lang.cls.php:110
msgid "Generate UCSS"
msgstr "Generar UCSS"

#: tpl/dash/dashboard.tpl.php:464 tpl/toolbox/purge.tpl.php:79
msgid "Unique CSS"
msgstr "CSS único"

#: tpl/toolbox/purge.tpl.php:107
msgid "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"
msgstr "Vacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS y LQIP"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "Informe de LiteSpeed"

#: tpl/img_optm/summary.tpl.php:222
msgid "Image Thumbnail Group Sizes"
msgstr "Tamaños del grupo de imágenes en miniatura"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "En el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien."

#: src/lang.cls.php:97
msgid "Serve Stale"
msgstr "Servir contenido rancio"

#: src/admin-display.cls.php:921
msgid "This setting is overwritten by the primary site setting"
msgstr "Esta ajuste es sobrescrito por los ajuste del sitio primario"

#: src/img-optm.cls.php:965
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificado"

#: src/img-optm.cls.php:948
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Una o más imágenes optimizadas han caducado y han sido borradas."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos."

#: src/img-optm.cls.php:1026
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Leer la documentación de LiteSpeed"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "La cola aún no ha sido recuperada. Información de la cola: %s."

#: src/lang.cls.php:221
msgid "Sitemap Timeout"
msgstr "Timeout del mapa del sitio"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Especifica el tiempo límite de procesamiento del mapa del sitio."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar."

#: tpl/general/settings.tpl.php:112
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Hace falta una clave de dominio para usar los servicios online de QUIC.cloud."

#: src/img-optm.cls.php:548
msgid "Cleared %1$s invalid images."
msgstr "Purgadas %1$s imágenes no válidas."

#: src/img-optm.cls.php:510
msgid "Bypassed %1$s duplicated images."
msgstr "Saltadas %1$s imágenes duplicadas."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Solicitar clave de dominio"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "Ajustes generales de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all cached Gravatar files"
msgstr "Esto borrará todos los archivos Gravatar almacenados en caché"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Evita cualquier registro de depuración de las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Solo registra las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Especifica el tamaño máximo del archivo de registro."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione."

#: tpl/toolbox/beta_test.tpl.php:49
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress."

#: tpl/toolbox/beta_test.tpl.php:33 tpl/toolbox/beta_test.tpl.php:49
msgid "Use latest WordPress release version"
msgstr "Usar la última versión de WordPress"

#: tpl/toolbox/beta_test.tpl.php:33
msgid "OR"
msgstr "O"

#: tpl/toolbox/beta_test.tpl.php:24
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Restablecer ajustes"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "Caja de herramientas de LiteSpeed"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Pruebas beta"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Vista de registros"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Ajustes de depuración"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Actívalo para controlar heartbeat en el editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "El intervalo válido de WordPress es %s segundos"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Actívalo para controlar heartbeat en el escritorio."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Ponlo en %1$s para bloquear heartbeat en %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "El intervalo válido de WordPress es de %s segundos."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Especifica el intervalo de heartbeat para %s en segundos."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Enciéndelo para controlar heartbeat en las páginas públicas."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Desactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Control de Heartbeat"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "proporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Opcional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generar el enlace para el usuario actual"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Enlace sin contraseña"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Información del sistema"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Ir a la lista de plugins"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Instalar la seguridad de DoLogin"

#: tpl/general/settings.tpl.php:206
msgid "Check my public IP from"
msgstr "Comprobar mi IP pública desde"

#: tpl/general/settings.tpl.php:206
msgid "Your server IP"
msgstr "La IP de tu servidor"

#: tpl/general/settings.tpl.php:205
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Introduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Especifica el tiempo de espera mientras se rastrea cada URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "Esto activará el cron rastreador."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Ajustes generales del rastreador"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr "No está en la lista negra"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr "Eliminar de la lista negra"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr "Vaciar lista negra"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr "¿Estás seguro de que quieres borrar todas las listas negras?"

#: tpl/crawler/blacklist.tpl.php:56 tpl/crawler/map.tpl.php:69
msgid "Blacklisted due to not cacheable"
msgstr "En la lista negra debido a que no se puede cachear"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr "Añadir a las lista negra"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr "Operación"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Total del mapa del sitio"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Lista del mapa del sitio"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Recargar el mapa del rastreador"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Vaciar el mapa del rastreador"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Ajustes del mapa del sitio"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Ajustes de simulación"

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blacklist"
msgstr "Lista negra"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Mapa"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Sumario"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Si utilizas varios dominios para un sitio y tienes varios dominios en el mapa del sitio, mantén esta opción APAGADA para que el rastreador sepa cómo rastrear cada dominio."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, si se deja caer el dominio se puede ahorrar almacenamiento en la base de datos."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Ajustes de mapa del sitio del rastreador"

#: tpl/crawler/summary.tpl.php:190
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;Si tanto el cron como la ejecución manual se inician en momentos similares, el primero que se inicie tendrá prioridad."

#: tpl/crawler/summary.tpl.php:189
msgid "Crawlers cannot run concurrently."
msgstr "Los rastreadores no se pueden ejecutar de forma concurrente."

#: tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Fallo de caché"

#: tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Acierto de caché"

#: tpl/crawler/summary.tpl.php:181
msgid "Waiting to be Crawled"
msgstr "Esperando a ser rastreado"

#: tpl/crawler/blacklist.tpl.php:57 tpl/crawler/map.tpl.php:70
#: tpl/crawler/summary.tpl.php:160 tpl/crawler/summary.tpl.php:184
msgid "Blacklisted"
msgstr "En lista negra"

#: tpl/crawler/summary.tpl.php:159
msgid "Miss"
msgstr "Fallo"

#: tpl/crawler/summary.tpl.php:158
msgid "Hit"
msgstr "Acierto"

#: tpl/crawler/summary.tpl.php:157
msgid "Waiting"
msgstr "En espera"

#: tpl/crawler/summary.tpl.php:126
msgid "Running"
msgstr "En curso"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida."

#: src/admin-display.cls.php:209
msgid "Add new cookie to simulate"
msgstr "Añadir una cookie nueva para simular"

#: src/admin-display.cls.php:208
msgid "Remove cookie simulation"
msgstr "Eliminar la simulación de la cookie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Ajustes de simulación del rastreador"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr "La regla de Htaccess es: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "Más ajustes disponibles en el menú %s"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Marca esto si eres un usuario de OpenLiteSpeed"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Ajustes de la caché del navegador"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Los nonces anteriores se convertirán en ESI automáticamente."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Navegador"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Objeto"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Puerto por defecto de %1$s es %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Ajustes de la caché de objetos"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Especifica cuánto tiempo, en segundos, se almacena la página de inicio."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan."

#: tpl/page_optm/settings_css.tpl.php:269
msgid "Swap"
msgstr "Intercambiar"

#: tpl/page_optm/settings_css.tpl.php:268
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "La lista de avatares está en la cola esperando ser actualizada"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refrescar la caché de Gravatar por cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Acelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Almacenar los gravatares localmente."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:140
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "No se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones."

#: tpl/page_optm/settings_media.tpl.php:138
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:122
msgid "Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos."

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Specify the quality when generating LQIP."
msgstr "Especifica la calidad al generar el LQIP."

#: tpl/page_optm/settings_media.tpl.php:107
msgid "Keep this off to use plain color placeholders."
msgstr "Mantén esto apagado para usar marcadores de posición de color."

#: tpl/page_optm/settings_media.tpl.php:106
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Usa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga."

#: tpl/page_optm/settings_media.tpl.php:92
msgid "Specify the responsive placeholder SVG color."
msgstr "Especifica el color del marcador de posición SVG adaptable."

#: tpl/page_optm/settings_media.tpl.php:78
msgid "Variables %s will be replaced with the configured background color."
msgstr "Las variables %s serán reemplazadas por el color de fondo configurado."

#: tpl/page_optm/settings_media.tpl.php:77
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Se convertirá en un marcador de posición SVG base64 sobre la marcha."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Especifica un SVG que se utilizará como marcador de posición al generar localmente."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Evita cualquier carga diferida de las páginas de la lista."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Los iframes con estos nombres de clase padres no se cargarán de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Los marcos que contengan estos nombres de clase no serán cargados de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida."

#: tpl/page_optm/entry.tpl.php:19
msgid "LiteSpeed Cache Page Optimization"
msgstr "Optimización de página de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Exclusiones de medios"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:16
msgid "CSS Settings"
msgstr "Ajustes de CSS"

#: tpl/page_optm/settings_css.tpl.php:269
msgid "%s is recommended."
msgstr "Se recomienda %s."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Deferred"
msgstr "Diferido"

#: tpl/page_optm/settings_css.tpl.php:266
msgid "Default"
msgstr "Por defecto"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "Esto puede mejorar la velocidad de carga de la página."

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Automatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "La nueva versión de desarrollo %s está disponible."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "¡Nueva versión para desarrolladores disponible!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Ignorar ese aviso"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tuitea esto"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Vista previa del tweet"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Aprender más"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "¡Acabas de desbloquear una promoción de QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Ajustes de optimización de imágenes"

#: tpl/img_optm/summary.tpl.php:373
msgid "Are you sure to destroy all optimized images?"
msgstr "¿Está seguro de destruir todas las imágenes optimizadas?"

#: tpl/img_optm/summary.tpl.php:365
msgid "Use Optimized Files"
msgstr "Usar archivos optimizados"

#: tpl/img_optm/summary.tpl.php:364
msgid "Switch back to using optimized images on your site"
msgstr "Volver a utilizar imágenes optimizadas en tu web"

#: tpl/img_optm/summary.tpl.php:361
msgid "Use Original Files"
msgstr "Usar archivos originales"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use original images (unoptimized) on your site"
msgstr "Usar imágenes originales (no optimizadas) en tu web"

#: tpl/img_optm/summary.tpl.php:355
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles."

#: tpl/img_optm/summary.tpl.php:352
msgid "Optimization Tools"
msgstr "Herramientas de optimización"

#: tpl/img_optm/summary.tpl.php:325
msgid "Rescan New Thumbnails"
msgstr "Reexaminar nuevas miniaturas"

#: tpl/img_optm/summary.tpl.php:317
msgid "Congratulations, all requested!"
msgstr "¡Felicidades, todas solicitadas!"

#: tpl/img_optm/summary.tpl.php:290
msgid "Congratulations, all gathered!"
msgstr "¡Felicidades, todas reunidos!"

#: tpl/img_optm/summary.tpl.php:287
msgid "Images not yet gathered"
msgstr "Imágenes que aún no se han reunido"

#: tpl/img_optm/summary.tpl.php:282 tpl/img_optm/summary.tpl.php:309
msgid "What is an image group?"
msgstr "¿Qué es un grupo de imágenes?"

#: tpl/img_optm/summary.tpl.php:233
msgid "Delete all backups of the original images"
msgstr "Borrar todas las copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:215
msgid "Calculate Backups Disk Space"
msgstr "Calcular el espacio en disco de las copias de seguridad"

#: tpl/img_optm/summary.tpl.php:100
msgid "Optimization Status"
msgstr "Estado de optimización"

#: tpl/img_optm/summary.tpl.php:84
msgid "Gather Image Data"
msgstr "Recopilar datos de las imágenes"

#: tpl/img_optm/summary.tpl.php:72
msgid "Current limit is"
msgstr "El límite actual es"

#: tpl/img_optm/summary.tpl.php:71
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de imágenes permitidas en una sola petición es limitada."

#: tpl/img_optm/summary.tpl.php:66
msgid "You can request a maximum of %s images at once."
msgstr "Puede solicitar un máximo de imágenes de %s de una vez."

#: tpl/img_optm/summary.tpl.php:61
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiza las imágenes con nuestro servidor en QUIC.cloud"

#: tpl/img_optm/summary.tpl.php:57 tpl/page_optm/settings_css.tpl.php:90
#: tpl/page_optm/settings_css.tpl.php:200
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectar."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Las revisiones más recientes se guardarán cuando se limpien las revisiones."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Día(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimización de la base de datos de la caché de LiteSpeed"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Ajustes de optimización de la BD"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Nombre de la opción"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Resumen de la base de datos"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "Estamos bien. Ninguna tabla usa el motor MyISAM."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Convertir a InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Herramienta"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Motor"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Tabla"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Conversor de motor de tabla de base de datos"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones"

#: tpl/dash/dashboard.tpl.php:537
msgid "Currently active crawler"
msgstr "Rastreador activo"

#: tpl/dash/dashboard.tpl.php:534
msgid "Crawler(s)"
msgstr "Rastreador(es)"

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:529
msgid "Crawler Status"
msgstr "Estado del rastreador"

#: tpl/dash/dashboard.tpl.php:448 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513
msgid "Force cron"
msgstr "Forzar cron"

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:511
msgid "Requests in queue"
msgstr "Peticiones en cola"

#: tpl/dash/dashboard.tpl.php:440 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:506
msgid "Time to execute previous request"
msgstr "Tiempo para ejecutar la solicitud anterior"

#: tpl/dash/dashboard.tpl.php:417
msgid "Cache Stats"
msgstr "Estadísticas de caché"

#: tpl/dash/dashboard.tpl.php:395
msgid "Private Cache"
msgstr "Caché privada"

#: tpl/dash/dashboard.tpl.php:394
msgid "Public Cache"
msgstr "Caché pública"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Status"
msgstr "Estado de caché"

#: tpl/dash/dashboard.tpl.php:360
msgid "Last Pull"
msgstr "Última lectura"

#: tpl/dash/dashboard.tpl.php:325
msgid "Images Requested"
msgstr "Imágenes solicitadas"

#: tpl/dash/dashboard.tpl.php:310
msgid "Image Groups Prepared"
msgstr "Grupos de imágenes preparados"

#: tpl/dash/dashboard.tpl.php:299 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Resumen de la optimización de imágenes"

#: tpl/dash/dashboard.tpl.php:238
msgid "Refresh page score"
msgstr "Actualizar la puntuación de la página"

#: tpl/dash/dashboard.tpl.php:227 tpl/img_optm/summary.tpl.php:57
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:200
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?"

#: tpl/dash/dashboard.tpl.php:227
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectarlo."

#: tpl/dash/dashboard.tpl.php:222 tpl/dash/dashboard.tpl.php:291
#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:489
#: tpl/dash/dashboard.tpl.php:521
msgid "Last requested"
msgstr "Último pedido"

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh page load time"
msgstr "Actualizar el tiempo de carga de la página"

#: tpl/dash/dashboard.tpl.php:169
msgid "Go to QUIC.cloud dashboard"
msgstr "Ir al escritorio de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:497
msgid "Low Quality Image Placeholder"
msgstr "Marcador de imagen de baja calidad"

#: tpl/dash/dashboard.tpl.php:45
msgid "Sync data from Cloud"
msgstr "Sincronizar los datos de la nube"

#: tpl/dash/dashboard.tpl.php:42
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Estadísticas de uso del servicio QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:151 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Total de imágenes optimizadas en este mes"

#: tpl/dash/dashboard.tpl.php:150 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Uso total"

#: tpl/dash/dashboard.tpl.php:131 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Estadísticas pago por uso"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "El uso de este mes"

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "Balance de pagos"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pago por uso"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Uso"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Uso de la cola rápida"

#: tpl/dash/dashboard.tpl.php:57 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "Ancho de banda de la CDN"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Uso de las estadísticas"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "Escritorio de LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Escritorio de red"

#: tpl/general/settings.tpl.php:128
msgid "No cloud services currently in use"
msgstr "No hay servicios de la nube en uso"

#: tpl/general/settings.tpl.php:116
msgid "Click to clear all nodes for further redetection."
msgstr "Haz clic para borrar todos los nodos para volver a detectar."

#: tpl/general/settings.tpl.php:115
msgid "Current Cloud Nodes in Service"
msgstr "Nodos de la nube actual en servicio"

#: tpl/general/settings.tpl.php:107
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Beneficios de enlazar con una cuenta QUIC.cloud"

#: tpl/general/settings.tpl.php:106
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud."

#: tpl/general/settings.tpl.php:101
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Debes tener %1$s antes de enlazarte a QUIC.cloud."

#: tpl/general/settings.tpl.php:87
msgid "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."
msgstr "Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la REST API, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda."

#: tpl/general/settings.tpl.php:86
msgid "Our %s was not whitelisted."
msgstr "Nuestro %s no estaba en la lista blanca."

#: tpl/general/settings.tpl.php:85
msgid "The POST callback to %s failed."
msgstr "La llamada POST a %s falló."

#: tpl/general/settings.tpl.php:84
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "Hay dos razones por las que no podemos comunicarnos con tu dominio:"

#: tpl/general/settings.tpl.php:83
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Hay un problema al recibir tu clave de dominio. Por favor, haz clic en el botón %s para volver a intentarlo."

#: tpl/general/settings.tpl.php:75 tpl/general/settings.tpl.php:77
#: tpl/general/settings.tpl.php:106
msgid "Link to QUIC.cloud"
msgstr "Enlace a QUIC.cloud"

#: tpl/general/settings.tpl.php:73
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visitar «Mi Escritorio» en QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Próximo tiempo de solicitud disponible: <code>Después de %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Aprobado"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Solicitado"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Esperando aprobación"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Esperando a la recarga"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Actualizar la clave del dominio"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:42
msgid "General Settings"
msgstr "Ajustes generales"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN."

#: src/admin-display.cls.php:231
msgid "Add new CDN URL"
msgstr "Añadir una nueva URL de la CDN"

#: src/admin-display.cls.php:230
msgid "Remove CDN URL"
msgstr "Eliminar la URL de la CDN"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Activar la funcionalidad %s de la API de la CDN."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "Para gestionar las opciones de QUIC.cloud, visita"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "Ajustes de WooCommerce"

#: src/doc.cls.php:119 tpl/general/settings.tpl.php:86
msgid "Current Online Server IPs"
msgstr "IPs del servidor en línea"

#: src/doc.cls.php:118
msgid "Before generating key, please verify all IPs on this list are whitelisted"
msgstr "Antes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blanca"

#: src/doc.cls.php:117
msgid "For online services to work correctly, you must whitelist all %s server IPs."
msgstr "Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor."

#: src/gui.cls.php:526 src/gui.cls.php:677
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:88
msgid "LQIP Cache"
msgstr "Caché de LQIP"

#: src/gui.cls.php:83
msgid "Private Cache Hits"
msgstr "Aciertos de caché privada"

#: src/gui.cls.php:82
msgid "Private Caches"
msgstr "Cachés privadas"

#: src/gui.cls.php:81
msgid "Public Cache Hits"
msgstr "Aciertos de caché pública"

#: src/gui.cls.php:80
msgid "Public Caches"
msgstr "Cachés públicas"

#: src/admin-settings.cls.php:242 src/admin-settings.cls.php:276
msgid "Options saved."
msgstr "Las opciones han sido guardadas."

#: src/img-optm.cls.php:1462
msgid "Removed backups successfully."
msgstr "Copias de seguridad eliminadas correctamente."

#: src/img-optm.cls.php:1400
msgid "Calculated backups successfully."
msgstr "Copias de seguridad calculadas correctamente."

#: src/img-optm.cls.php:1341
msgid "Rescaned %d images successfully."
msgstr "%d imágenes reexploradas correctamente."

#: src/img-optm.cls.php:1276 src/img-optm.cls.php:1341
msgid "Rescaned successfully."
msgstr "Reexploración correcta."

#: src/img-optm.cls.php:1244
msgid "Destroy all optimization data successfully."
msgstr "Todos los datos de optimización destruidos correctamente."

#: src/img-optm.cls.php:1173
msgid "Cleaned up unfinished data successfully."
msgstr "Datos incompletos limpiados correctamente."

#: src/img-optm.cls.php:1086
msgid "Pulled %d image(s)"
msgstr "%d imagen(es) obtenida(s)"

#: src/img-optm.cls.php:1009
msgid "Optimized WebP file expired and was cleared."
msgstr "El archivo WebP optimizado caducado ha sido limpiado."

#: src/img-optm.cls.php:889
msgid "Pull Cron is running"
msgstr "Pull Cron se está ejecutando"

#: src/img-optm.cls.php:650
msgid "No valid image found by Cloud server in the current request."
msgstr "El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual."

#: src/img-optm.cls.php:627
msgid "No valid image found in the current request."
msgstr "No se ha encontrado ninguna imagen válida en la petición actual."

#: src/img-optm.cls.php:473
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s enviado al servidor en la nube, %2$s aceptado."

#: src/img-optm.cls.php:181
msgid "Gathered %d images successfully."
msgstr "%d recopiladas correctamente."

#: src/img-optm.cls.php:148
msgid "No new image gathered."
msgstr "No se ha reunido ninguna imagen nueva."

#: src/lang.cls.php:234
msgid "Revisions Max Age"
msgstr "Edad máxima de las revisiones"

#: src/lang.cls.php:233
msgid "Revisions Max Number"
msgstr "Número máximo de revisiones"

#: src/lang.cls.php:231
msgid "Debug URI Excludes"
msgstr "URIs excluidas de la depuración"

#: src/lang.cls.php:230
msgid "Debug URI Includes"
msgstr "URIs incluidas en la depuración"

#: src/lang.cls.php:220
msgid "Drop Domain from Sitemap"
msgstr "Quitar dominio del mapa del sitio"

#: src/lang.cls.php:215
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:203
msgid "HTML Attribute To Replace"
msgstr "Atributo HTML a reemplazar"

#: src/lang.cls.php:197
msgid "Use CDN Mapping"
msgstr "Usar mapeo de CDN"

#: src/lang.cls.php:196
msgid "QUIC.cloud CDN"
msgstr "CDN de QUIC.cloud"

#: src/lang.cls.php:194
msgid "Editor Heartbeat TTL"
msgstr "TTL de heartbeat del editor"

#: src/lang.cls.php:193
msgid "Editor Heartbeat"
msgstr "Heartbeat del editor"

#: src/lang.cls.php:192
msgid "Backend Heartbeat TTL"
msgstr "TTL de heartbeat de la administración"

#: src/lang.cls.php:191
msgid "Backend Heartbeat Control"
msgstr "Control de heartbeat de la administración"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat TTL"
msgstr "TTL de heartbeat de la parte pública"

#: src/lang.cls.php:189
msgid "Frontend Heartbeat Control"
msgstr "Control de heartbeat de la parte pública"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Ruta del .htaccess de la administración"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Ruta del .htaccess de la parte pública"

#: src/lang.cls.php:179
msgid "ESI Nonces"
msgstr "Nonces de ESI"

#: src/lang.cls.php:175
msgid "WordPress Image Quality Control"
msgstr "Control de la calidad de imagen de WordPress"

#: src/lang.cls.php:170
msgid "Create WebP Versions"
msgstr "Crear versiones WebP"

#: src/lang.cls.php:167
msgid "Auto Pull Cron"
msgstr "Cron de obtención automática"

#: src/lang.cls.php:166
msgid "Auto Request Cron"
msgstr "Cron de petición automática"

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr "Generar LQIP en segundo plano"

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr "Dimensiones mínimas de LQIP"

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr "Calidad de LQIP"

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr "Generador de LQIP en la nube"

#: src/lang.cls.php:157
msgid "Responsive Placeholder SVG"
msgstr "Marcador de posición SVG adaptable"

#: src/lang.cls.php:156
msgid "Responsive Placeholder Color"
msgstr "Color del marcador de posición adaptable"

#: src/lang.cls.php:154
msgid "Basic Image Placeholder"
msgstr "Marcador de posición de imagen básica"

#: src/lang.cls.php:152
msgid "Lazy Load URI Excludes"
msgstr "Exclusión de URIs de carga diferida"

#: src/lang.cls.php:151
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padre de iframes"

#: src/lang.cls.php:150
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases de iframes"

#: src/lang.cls.php:149
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padres"

#: src/lang.cls.php:144
msgid "Gravatar Cache TTL"
msgstr "TTL de la caché de Gravatar"

#: src/lang.cls.php:143
msgid "Gravatar Cache Cron"
msgstr "Cron de la caché de Gravatar"

#: src/gui.cls.php:536 src/gui.cls.php:687 src/lang.cls.php:142
#: tpl/toolbox/purge.tpl.php:97
msgid "Gravatar Cache"
msgstr "Caché de Gravatar"

#: src/lang.cls.php:125
msgid "DNS Prefetch Control"
msgstr "Control del prefetch DNS"

#: src/lang.cls.php:122
msgid "Font Display Optimization"
msgstr "Optimización de visualización de fuentes"

#: src/lang.cls.php:101
msgid "Force Public Cache URIs"
msgstr "Forzar URIs de caché púbica"

#: src/lang.cls.php:70
msgid "Notifications"
msgstr "Avisos"

#: src/lang.cls.php:65
msgid "Default HTTP Status Code Page TTL"
msgstr "TTL del código de estado de página por defecto"

#: src/lang.cls.php:64
msgid "Default REST TTL"
msgstr "TTL por defecto de REST"

#: src/lang.cls.php:58
msgid "Enable Cache"
msgstr "Activa cache"

#: src/lang.cls.php:54
msgid "Domain Key"
msgstr "Clave del dominio"

#: src/lang.cls.php:53
msgid "Server IP"
msgstr "IP del servidor"

#: src/lang.cls.php:33
msgid "Duplicate image files ignored"
msgstr "Archivos de imagen duplicados ignorados"

#: src/lang.cls.php:23
msgid "Images not requested"
msgstr "Imágenes no solicitadas"

#: src/cloud.cls.php:1184
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube."

#: src/cloud.cls.php:1073
msgid "Domain Key hash mismatch"
msgstr "Discordancia de clave de dominio"

#: src/cloud.cls.php:1002
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia."

#: src/cloud.cls.php:951
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Clave del dominio solicitada correctamente. Por favor, espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress."

#: src/cloud.cls.php:754 src/cloud.cls.php:932
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Fallo de comunicación con el servidor QUIC.cloud"

#: src/cloud.cls.php:702
msgid "Good news from QUIC.cloud server"
msgstr "Buenas noticias del servidor QUIC.cloud"

#: src/cloud.cls.php:686 src/cloud.cls.php:694 src/cloud.cls.php:943
msgid "Message from QUIC.cloud server"
msgstr "Mensaje del servidor QUIC.cloud"

#: src/cloud.cls.php:551
msgid "Please try after %1$s for service %2$s."
msgstr "Por favor, inténtalo después de %1$s para el servicio %2$s."

#: src/cloud.cls.php:407
msgid "No available Cloud Node."
msgstr "No hay ningún nodo de la nube disponible."

#: src/cloud.cls.php:359 src/cloud.cls.php:372 src/cloud.cls.php:407
#: src/cloud.cls.php:432 src/cloud.cls.php:551 src/cloud.cls.php:907
msgid "Cloud Error"
msgstr "Error de la nube"

#: src/data.cls.php:213
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado."

#: src/media.cls.php:335
msgid "Restore from backup"
msgstr "Restaurar desde la copia de seguridad"

#: src/media.cls.php:325
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:319
msgid "No backup of unoptimized WebP file exists."
msgstr "No existe una copia de seguridad del archivo WebP no optimizado."

#: src/media.cls.php:306
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Archivo WebP reducido en %1$s (%2$s)"

#: src/media.cls.php:302
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo WebP."

#: src/media.cls.php:297
msgid "Currently using optimized version of WebP file."
msgstr "Actualmente usando la versión optimizada del archivo WebP."

#: src/media.cls.php:281
msgid "Orig"
msgstr "Original"

#: src/media.cls.php:278
msgid "(no savings)"
msgstr "(sin guardar)"

#: src/media.cls.php:278
msgid "Orig %s"
msgstr "Original %s"

#: src/media.cls.php:275
msgid "Congratulation! Your file was already optmized"
msgstr "¡Felicidades! Tu archivo ya ha sido optimizado"

#: src/media.cls.php:266
msgid "No backup of original file exists."
msgstr "No existe una copia de seguridad del archivo original."

#: src/media.cls.php:266 src/media.cls.php:319
msgid "Using optimized version of file. "
msgstr "Usando la versión optimizada del archivo. "

#: src/media.cls.php:258
msgid "Orig saved %s"
msgstr "Ahorrados %s del original"

#: src/media.cls.php:252
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Archivo original reducido en %1$s (%2$s)"

#: src/media.cls.php:248 src/media.cls.php:302
msgid "Click to switch to optimized version."
msgstr "Haz clic para cambiar a la versión optimizada."

#: src/media.cls.php:248
msgid "Currently using original (unoptimized) version of file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo."

#: src/media.cls.php:247 src/media.cls.php:301
msgid "(non-optm)"
msgstr "(no-optm)"

#: src/media.cls.php:243 src/media.cls.php:297
msgid "Click to switch to original (unoptimized) version."
msgstr "Haz clic para cambiar a la versión original (no optimizada)."

#: src/media.cls.php:243
msgid "Currently using optimized version of file."
msgstr "Actualmente usando la versión optimizada del archivo."

#: src/media.cls.php:242 src/media.cls.php:267 src/media.cls.php:296
#: src/media.cls.php:320
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:138
msgid "LQIP image preview for size %s"
msgstr "Vista previa de la imagen LQIP para el tamaño %s"

#: src/placeholder.cls.php:80 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:981
msgid "Previously existed in blacklist"
msgstr "Anteriormente existía en la lista negra"

#: src/crawler.cls.php:978
msgid "Manually added to blacklist"
msgstr "Añadido manualmente a la lista negra"

#: src/htaccess.cls.php:326
msgid "Mobile Agent Rules"
msgstr "Reglas de agente móvil"

#: src/crawler-map.cls.php:321
msgid "Sitemap created successfully: %d items"
msgstr "Mapa del sitio creado con éxito: %d elementos"

#: src/crawler-map.cls.php:265
msgid "Sitemap cleaned successfully"
msgstr "El mapa del sitio se limpió con éxito"

#: src/admin-display.cls.php:1086
msgid "Invalid IP"
msgstr "IP no válida"

#: src/admin-display.cls.php:1061
msgid "Value range"
msgstr "Rango de valores"

#: src/admin-display.cls.php:1058
msgid "Smaller than"
msgstr "Más pequeño que"

#: src/admin-display.cls.php:1055
msgid "Larger than"
msgstr "Mayor que"

#: src/admin-display.cls.php:1048
msgid "Zero, or"
msgstr "Cero, o"

#: src/admin-display.cls.php:1036
msgid "Maximum value"
msgstr "Valor máximo"

#: src/admin-display.cls.php:1033
msgid "Minimum value"
msgstr "Valor mínimo"

#: src/admin-display.cls.php:1015
msgid "Path must end with %s"
msgstr "La ruta debe terminar en %s"

#: src/admin-display.cls.php:998
msgid "Invalid rewrite rule"
msgstr "Regla de reescritura no válida"

#: src/admin-display.cls.php:928
msgid "currently set to %s"
msgstr "actualmente establecido en %s"

#: src/admin-display.cls.php:918
msgid "This setting is overwritten by the PHP constant %s"
msgstr "Este ajuste es sobrescrita por la constante %s de PHP"

#: src/admin-display.cls.php:131
msgid "Toolbox"
msgstr "Herrramientas"

#: src/admin-display.cls.php:127
msgid "Database"
msgstr "Base de datos"

#: src/admin-display.cls.php:125 tpl/dash/dashboard.tpl.php:56
msgid "Page Optimization"
msgstr "Optimización de página"

#: src/admin-display.cls.php:115 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Escritorio"

#: src/db-optm.cls.php:243
msgid "Converted to InnoDB successfully."
msgstr "Convertido a InnoDB correctamente."

#: src/purge.cls.php:275
msgid "Cleaned all Gravatar files."
msgstr "Vaciados todos los archivos de Gravatar."

#: src/purge.cls.php:258
msgid "Cleaned all LQIP files."
msgstr "Vaciados todos los archivos LQIP."

#: src/error.cls.php:173
msgid "Unknown error"
msgstr "Error desconocido"

#: src/error.cls.php:169
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior."

#: src/error.cls.php:165
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: "

#: src/error.cls.php:161
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores."

#: src/error.cls.php:157
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash."

#: src/error.cls.php:153
msgid "Your application is waiting for approval."
msgstr "Tu solicitud está a la espera de aprobación."

#: src/error.cls.php:149
msgid "Previous request too recent. Please try again after %s."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s."

#: src/error.cls.php:145
msgid "Previous request too recent. Please try again later."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde."

#: src/error.cls.php:140
msgid "Crawler disabled by the server admin."
msgstr "Rastreador desactivado por el administrador del servidor."

#: src/error.cls.php:136
msgid "Failed to create table %s! SQL: %s."
msgstr "¡Fallo al crear la tabla %s! SQL: %s."

#: src/error.cls.php:112
msgid "Could not find %1$s in %2$s."
msgstr "No se ha podido encontrar %1$s en %2$s."

#: src/error.cls.php:100
msgid "Credits are not enough to proceed the current request."
msgstr "Los créditos no son suficientes para proceder con la solicitud actual."

#: src/error.cls.php:88
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio."

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet."
msgstr "Hay una cola de procedimiento que no se ha retirado todavía."

#: src/error.cls.php:72
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "No hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamente"

#: src/error.cls.php:68
msgid "The image list is empty."
msgstr "La lista de imágenes está vacía."

#: src/error.cls.php:56
msgid "You don't have enough quota left for current service this month."
msgstr "No tienes suficiente cuota disponible este mes para el servicio actual."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "Tendrás que establecer %s para usar los servicios en línea."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "En este momento, el ajuste %s está activado."

#: src/task.cls.php:139
msgid "LiteSpeed Crawler Cron"
msgstr "Cron del rastreador de LiteSpeed"

#: src/task.cls.php:120
msgid "Every Minute"
msgstr "Cada minuto"

#: tpl/general/settings.tpl.php:223
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Los enlaces generados pueden gestionarse en los <a %s>Ajustes</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Instalar"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr "Puntuación de PageSpeed"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr "Mejorado por"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr "Después"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr "Antes"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr "Tiempo de carga de la página"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud."

#: src/lang.cls.php:172
msgid "Preserve EXIF/XMP data"
msgstr "Conservar los datos EXIF/XMP"

#: tpl/toolbox/beta_test.tpl.php:20
msgid "Try GitHub Version"
msgstr "Probar versión de GitHub"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s."

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr "Se pueden usa cadenas parciales y completas."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Las imágenes que contengan estos nombres de clases no tendrán carga diferida."

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Exclusión de nombres de clases para carga diferida de imágenes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Puede que más tarde"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Activar la actualización automática"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:57
msgid "Upgrade"
msgstr "Actualizar"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "La nueva versión %s está disponible ahora."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "¡Nueva versión disponible!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Creado con ❤️ por el equipo de LiteSpeed."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "¡Por supuesto, me encantará valorarlo!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "¡Gracias por usar el plugin de caché LiteSpeed!"

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr "Actualizado con éxito."

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr "Fallo al actualizar."

#: src/conf.cls.php:701
msgid "Changed setting successfully."
msgstr "Ajuste cambiado con éxito."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "Muestra de ESI para desarrolaldores"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Reemplaza %1$s con %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Puedes convertir shortcodes en bloques ESI."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Caché privada o caché pública"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Añade la cadena de consulta %s a los recursos para evitar esta acción."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA se omitirá automáticamente."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role."
msgstr "Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado."

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Valores de la cookie"

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr "Nombre de la cookie"

#: src/lang.cls.php:218
msgid "Cookie Simulation"
msgstr "Simulación de cookie"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre."

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr "Actualizar automáticamente"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Tu IP"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Restablecimiento realizado con éxito."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Esto restablecerá todos los ajustes a su valores predeterminados."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Restablecer todos los ajustes"

#: tpl/page_optm/settings_tuning.tpl.php:131
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separa archivos CSS críticos al generar las rutas que contengan estas cadenas."

#: src/lang.cls.php:133
msgid "Separate CCSS Cache URIs"
msgstr "Distintas URIs de caché CCSS"

#: tpl/page_optm/settings_tuning.tpl.php:117
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán."

#: tpl/page_optm/settings_tuning.tpl.php:116
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS."

#: src/lang.cls.php:132
msgid "Separate CCSS Cache Post Types"
msgstr "Tipos de contenido de caché de CCSS distintos"

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr "Tamaño de la lista en la cola de espera del cron"

#: tpl/page_optm/settings_media.tpl.php:158
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s."

#: tpl/page_optm/settings_media.tpl.php:156
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas."

#: tpl/page_optm/settings_media.tpl.php:62
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto."

#: tpl/page_optm/settings_media.tpl.php:61
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Marcador de posición adaptable"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Por favor, activa LiteSpeed Cache en los ajustes del plugin."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento."

#: src/cloud.cls.php:634 src/cloud.cls.php:650
msgid "Failed to request via WordPress"
msgstr "Fallo en la solicitud desde WordPress"

#: tpl/page_optm/settings_media.tpl.php:242
msgid "Include the lazy load image JavaScript library inline."
msgstr "Incluye la biblioteca integrada de JavaScript de carga diferida de imágenes."

#: src/lang.cls.php:165
msgid "Inline Lazy Load Images Library"
msgstr "Biblioteca integrada de imágenes en carga diferida"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed"

#: src/img-optm.cls.php:1779
msgid "Reset the optimized data successfully."
msgstr "Datos de optimización restablecidos correctamente."

#: src/gui.cls.php:753
msgid "Update %s now"
msgstr "Actualizar %s"

#: src/gui.cls.php:748
msgid "View %1$s version %2$s details"
msgstr "Ver detalles de la versión %2$s de %1$s"

#: src/gui.cls.php:745
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>ver detalles de la versión %3$s</a> o <a href=\"%4$s\" %5$s target=\"_blank\">actualiza ya</a>."

#: src/gui.cls.php:725
msgid "Install %s"
msgstr "Instalar %s"

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr "Imágenes optimizadas anteriormente"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!"

#: src/cloud.cls.php:711
msgid "%1$s plugin version %2$s required for this action."
msgstr "Para esta acción se necesita la versión %2$s del plugin %1$s."

#: src/cloud.cls.php:673
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas."

#: src/lang.cls.php:169
msgid "Remove Original Backups"
msgstr "Eliminar copias de seguridad del orginal"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Solicitar automáticamente la optimización mediante un trabajo cron."

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr "Se guarda una copia de seguridad de cada imagen antes de optimizarla."

#: src/img-optm.cls.php:1659
msgid "Switched images successfully."
msgstr "Imágenes cambiadas correctamente."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimizar imágenes usando compresión sin pérdida."

#: src/lang.cls.php:171
msgid "Optimize Losslessly"
msgstr "Optimizar sin pérdida"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Solicita versiones WebP de las imágenes originales al hacer la optimización."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta."

#: src/lang.cls.php:168
msgid "Optimize Original Images"
msgstr "Optimizar imágenes originales"

#: tpl/page_optm/settings_css.tpl.php:173
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google."

#: src/purge.cls.php:222
msgid "Cleaned all Critical CSS files."
msgstr "Limpiados todos los archivos CSS críticos."

#: tpl/page_optm/settings_css.tpl.php:255
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado."

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr "Biblioteca de CSS integrado asíncrono"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr "Ejecutar la cola manualmente"

#: tpl/page_optm/settings_css.tpl.php:96 tpl/page_optm/settings_css.tpl.php:206
msgid "URL list in %s queue waiting for cron"
msgstr "Lista de URL en cola %s esperando el cron"

#: tpl/page_optm/settings_css.tpl.php:84 tpl/page_optm/settings_css.tpl.php:194
msgid "Last requested cost"
msgstr "Último coste solicitado"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:81
#: tpl/page_optm/settings_css.tpl.php:191
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr "Último generado"

#: tpl/page_optm/settings_media.tpl.php:162
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página."

#: tpl/page_optm/settings_css.tpl.php:172
msgid "Automatic generation of critical CSS is in the background via a cron-based queue."
msgstr "Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron."

#: tpl/page_optm/settings_css.tpl.php:168
msgid "Optimize CSS delivery."
msgstr "Optimiza la entrega de CSS."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "Esto borrará todos los archivos generados de CSS crítico"

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "CSS crítico"

#: src/doc.cls.php:36
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily."
msgstr "Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar."

#: src/utility.cls.php:249
msgid "right now"
msgstr "ahora mismo"

#: src/utility.cls.php:249
msgid "just now"
msgstr "ahora mismo"

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr "Guardado"

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Última ejecución"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr "Esto es irreversible."

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr "Eliminar copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:255
msgid "Are you sure you want to remove all image backups?"
msgstr "¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr "Archivos"

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr "Último cálculo"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calcular almacenamiento original de imágenes"

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr "Optimización de almacenamiento"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Activar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress."

#: src/lang.cls.php:174
msgid "WebP For Extra srcset"
msgstr "WebP para src extra"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Usa el formato %1$s o %2$s (el elemento es opcional)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Solo los atributos aquí listados serán reemplazados."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Especificar que atributos de elementos serán reemplazados con WebP."

#: src/lang.cls.php:173
msgid "WebP Attribute To Replace"
msgstr "Atributo WebP a reemplazar"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Solo los archivos en estos directorios apuntarán a la CDN."

#: src/lang.cls.php:205
msgid "Included Directories"
msgstr "Directorios incluidos"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Un vaciado completo se iniciará cuando WordPress ejecute estos ganchos."

#: src/lang.cls.php:181
msgid "Purge All Hooks"
msgstr "Vaciar todos los ganchos"

#: src/purge.cls.php:184
msgid "Purged all caches successfully."
msgstr "Vaciado de todas las cachés correctamente."

#: src/gui.cls.php:469 src/gui.cls.php:560 src/gui.cls.php:610
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:413
msgid "Forced cacheable"
msgstr "Forzar cacheables"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables."

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr "Forzar URLs en caché"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Ajustes de exclusión"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Esto desactivará LSCache y todas las características de optimización con propósitos de depuración."

#: src/lang.cls.php:223 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Desactivar todas las características"

#: src/gui.cls.php:496 src/gui.cls.php:647 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Caché opcode"

#: src/gui.cls.php:477 src/gui.cls.php:618 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "Caché CSS/JS"

#: src/gui.cls.php:706 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr "Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar."

#: src/gui.cls.php:707 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr "Limpiar datos no finalizados"

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr "Imágenes fallidas con otros errores"

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr "Imágenes con metadatos erróneos"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Únete a nuestro Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Únete a la comunidad %s."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "¿Quieres conectar con otros usuarios de LiteSpeed?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Obténla desde <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:202
msgid "Your API key / token is used to access %s APIs."
msgstr "Tu clave de la API/token se usa para acceder a las API de %s."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Tu dirección de email en %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Usar la funcionalidad de la API %s."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Únete a la comunidad de Slack de LiteSpeed"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visita el foro de soporte de LSCWP"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Valora %s en %s"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr "Imágenes notificadas para descargar"

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr "Faltan archivos de imágenes"

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr "¿Qué es un grupo?"

#: src/admin-display.cls.php:1154
msgid "%s image"
msgstr "%s imagen"

#: src/admin-display.cls.php:1151
msgid "%s group"
msgstr "%s grupo"

#: src/admin-display.cls.php:1141
msgid "%s images"
msgstr "%s imágenes"

#: src/admin-display.cls.php:1138
msgid "%s groups"
msgstr "%s grupos"

#: src/crawler.cls.php:826
msgid "Guest"
msgstr "Invitado"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar."

#: src/lang.cls.php:217
msgid "Role Simulation"
msgstr "Simulación de rol"

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr "ejecutando"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Tamaño"

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr "Razón de finalización"

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr "Último intervalo"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr "El rastreador actual comenzó a las"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Hora de ejecución para el rastreador anterior"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d segundos"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Hora de la última ejecución completa para todos los rastreadores"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "El rastreo del mapa del sitio actual comenzó a las"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Guarda datos transitorios en la base de datos cuando %1$s es %2$s."

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr "Almacenar datos transitorios"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "¡Si %1$s es %2$s entonces debe completarse %3$s!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Valor máximo permitido por el servidor"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Valor forzado por el servidor"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Valor mínimo permitido por el servidor"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTA"

#: src/admin-display.cls.php:1107
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable(s) del servidor %s disponible para omitir este ajuste."

#: src/admin-display.cls.php:1106 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:175
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:162
#: tpl/page_optm/settings_tuning.tpl.php:183
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:333
msgid "Reset the entire opcode cache successfully."
msgstr "Reestablecida la caché opcache con éxito"

#: src/purge.cls.php:321
msgid "Opcode cache is not enabled."
msgstr "La caché opcache no está habilitada."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Importado con éxito el archivo de ajustes %s."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Importación fallida debido a un error en el archivo."

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Cómo solucionar problemas causados por la optimización CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace."

#: src/lang.cls.php:183
msgid "Instant Click"
msgstr "Clic instantáneo"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Reestablecer toda la caché opcode"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Última importación"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importar"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Ajustes de importación"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Última exportación"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exportar"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Ajustes de exportación"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Importar / Exportar"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilizar conexiones keep-alive para acelerar operaciones de la caché."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Base de datos a usar"

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr "ID de base de datos Redis"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Especifica la contraseña utilizada al conectar."

#: src/lang.cls.php:88
msgid "Password"
msgstr "Contraseña"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Solo disponible cuando está instalado %s."

#: src/lang.cls.php:87
msgid "Username"
msgstr "Nombre de usuario"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "El hostname o dirección IP de tu %s."

#: src/lang.cls.php:83
msgid "Method"
msgstr "Método"

#: src/purge.cls.php:374
msgid "Purge all object caches successfully."
msgstr "Vació de todas las cachés de objetos correctamente."

#: src/purge.cls.php:361
msgid "Object cache is not enabled."
msgstr "La caché de objetos no está activada."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)"

#: src/lang.cls.php:93
msgid "Cache WP-Admin"
msgstr "Caché de WP-Admin"

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr "Conexión persistente"

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr "Grupos a no cachear"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Grupos cacheados a nivel de red."

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr "Grupos globales"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Prueba de conexión"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "Extensión %s"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr "Estado"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "TTL por defecto para objetos cacheados."

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr "Tiempo de vida por defecto del objeto"

#: src/lang.cls.php:85
msgid "Port"
msgstr "Puerto"

#: src/lang.cls.php:84
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:486 src/gui.cls.php:637 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Caché de objetos"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Fallido"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Exitoso"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "No disponible"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Vaciar todas las cachés de objetos"

#: src/cdn/cloudflare.cls.php:262
msgid "Failed to communicate with Cloudflare"
msgstr "Fallo al comunicar con Cloudflare"

#: src/cdn/cloudflare.cls.php:253
msgid "Communicated with Cloudflare successfully."
msgstr "Comunicado con éxito con Cloudflare."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "No hay disponible una zona Cloudflare"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Avisado a Cloudflare el vaciado completo con éxito."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "La API de Cloudflare está configurada en off."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Una vez guardado, coincidirá con la lista actual y se completará automáticamente."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "Puedes simplemente teclear parte de dominio."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Dominio"

#: src/lang.cls.php:207
msgid "Cloudflare API"
msgstr "API de Cloudflare"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Vaciar todo"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Caché de Cloudflare"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "El modo de desarrollo se desactivará automáticamente después de tres horas."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "El modo de desarrollo se desactivará automáticamente en %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "El estado actual es %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "El estado actual es %1$s desde %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Comprobar estado"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "APAGAR"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "ENCENDER"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Modo de desarrollo"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Zona de Cloudflare"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Dominio de Cloudflare"

#: src/gui.cls.php:627 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "Por ejemplo"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "La precarga DNS puede reducir la latencia para los visitantes."

#: src/lang.cls.php:124
msgid "DNS Prefetch"
msgstr "Prefetch DNS"

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Añade estilos a tus imágenes de carga diferida"

#: src/admin-display.cls.php:969 src/admin-display.cls.php:974
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Valor por defecto"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s."

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr "Ignorar cadenas de consulta"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché."

#: src/lang.cls.php:182
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Mejorar compatibilidad HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:378
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización."

#: tpl/img_optm/summary.tpl.php:374
msgid "Destroy All Optimization Data"
msgstr "Destruir todos los datos de optimización"

#: tpl/img_optm/summary.tpl.php:324
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Esto aumentará el tamaño de los archivos optimizados."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Vaciar registro"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Para probar el carrito, visita la <a %s>FAQ</a>."

#: src/utility.cls.php:252
msgid " %s ago"
msgstr " hace %s"

#: src/media.cls.php:311
msgid "WebP saved %s"
msgstr "WebP guardado %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Esto también generará una clave de API del servidor de LiteSpeed."

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr "Última descarga iniciada por cron a las %s."

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando."

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr "Solo pulsar el botón si la tarea cron de descarga está desactivada."

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr "Descargar imágenes"

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr "Este proceso es automático."

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr "Última petición"

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr "Errores al descargar imágenes"

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr "Errores al obtener imágenes"

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr "Imágenes recuperadas"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Informe"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Enviar a LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Fecha de informe"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Número de informe"

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr "Cachear carrito privadamente cuando no esté vacío."

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr "Cachear carrito privadamente"

#: src/media.cls.php:192
msgid "LiteSpeed Optimization"
msgstr "Optimización de LiteSpeed"

#: src/lang.cls.php:129
msgid "Load Google Fonts Asynchronously"
msgstr "Cargar Google Fonts asíncronamente"

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr "TTL caché de navegador"

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>."

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Leer más"

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr "Imágenes optimizadas y descargadas"

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr "Imágenes solicitadas"

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr "Imágenes aún no solicitadas"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr "Total imágenes"

#: src/img-optm.cls.php:1716
msgid "Switched to optimized file successfully."
msgstr "Cambio correcto a archivo optimizado."

#: src/img-optm.cls.php:1709
msgid "Restored original file successfully."
msgstr "Archivo original restaurado con éxito."

#: src/img-optm.cls.php:1693
msgid "Enabled WebP file successfully."
msgstr "Archivo WebP activado con éxito."

#: src/img-optm.cls.php:1687
msgid "Disabled WebP file successfully."
msgstr "Archivo WebP desactivado con éxito."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes en QUIC.cloud"

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas."

#: src/lang.cls.php:187
msgid "Image WebP Replacement"
msgstr "Reemplazo de imágenes WebP"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Los perfiles seleccionados serán excluidos de la caché."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Ajustar"

#: tpl/page_optm/settings_tuning.tpl.php:225
msgid "Selected roles will be excluded from all optimizations."
msgstr "Los perfiles seleccionados serán excluidos de todas las optimizaciones."

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Excluir perfiles"

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Configuración de ajustes"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar."

#: tpl/img_optm/summary.tpl.php:117
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas."

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr "Enviar solicitud de optimización"

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr "Información de imágenes"

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr "Reducción total"

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr "Resumen de optimización"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimización de imágenes de LiteSpeed Cache"

#: src/admin-display.cls.php:123 src/gui.cls.php:593
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr "Optimización de imágenes"

#: src/lang.cls.php:134
msgid "JS Deferred Excludes"
msgstr "Exclusiones de diferido de JS"

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Por ejemplo, los %s pueden usarse para un marcador de posición transparente."

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr "Por defecto, se utilizará un marcador de posición de imagen gris %s."

#: tpl/page_optm/settings_media.tpl.php:46
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:164
#: tpl/page_optm/settings_tuning.tpl.php:185
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en código html."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:163
#: tpl/page_optm/settings_tuning.tpl.php:184
msgid "Filter %s is supported."
msgstr "El filtro %s es compatible."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Las imágenes listadas no se cargarán de forma retrasada."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Exclusiones de carga retrasada de imágenes"

#: src/gui.cls.php:446
msgid "No optimization"
msgstr "Sin optimización"

#: tpl/page_optm/settings_tuning.tpl.php:199
msgid "Prevent any optimization of listed pages."
msgstr "Evitar cualquier optimización de las páginas listadas."

#: src/lang.cls.php:138
msgid "URI Excludes"
msgstr "URL excluidas"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Deja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador."

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr "Pueden utilizarse tanto URLs completas como cadenas parciales."

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr "Cargar iframes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Retrasar la carga de iframes"

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales."

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr "Cargar las imágenes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Retrasar la carga de imágenes"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr "Ajustes de medios"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "Por ejemplo, para %s, %s y %s puede utilizarse aquí."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s."

#: src/admin-display.cls.php:1122
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Para que coincida con el principio, añade %s al comienzo del artículo."

#: src/admin-display.cls.php:1120
msgid "For example, for %s, %s can be used here."
msgstr "Por ejemplo, para %s, %s puede utilizarse aquí."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Quizás más tarde"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "Ya he dejado una valoración"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Bienvenido a LiteSpeed"

#: src/lang.cls.php:136
msgid "Remove WordPress Emoji"
msgstr "Eliminar emojis de WordPress"

#: src/gui.cls.php:454
msgid "More settings"
msgstr "Más ajustes"

#: src/gui.cls.php:435
msgid "Private cache"
msgstr "Caché privada"

#: src/gui.cls.php:424
msgid "Non cacheable"
msgstr "No cacheable"

#: src/gui.cls.php:401
msgid "Mark this page as "
msgstr "Marcar esta página como "

#: src/gui.cls.php:393
msgid "Purge this page"
msgstr "Vaciar esta página"

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr "Deferir carga de JS"

#: tpl/page_optm/settings_tuning.tpl.php:145
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s."

#: src/lang.cls.php:131
msgid "Critical CSS Rules"
msgstr "Reglas de CSS críticas"

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:145
msgid "Load CSS Asynchronously"
msgstr "Cargar CSS asíncronamente"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Evita que cargue Google Fonts en todas las páginas."

#: src/lang.cls.php:130
msgid "Remove Google Fonts"
msgstr "Eliminar Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:169
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
#: tpl/page_optm/settings_media.tpl.php:243
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:79
msgid "Remove query strings from internal static resources."
msgstr "Eliminar cadenas de consulta de recursos estáticos internos."

#: src/lang.cls.php:128
msgid "Remove Query Strings"
msgstr "Eliminar query strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "También puedes activar la caché del navegador en la administración del servidor. <a %s>Aprende más acerca del ajuste de la caché de navegador de LiteSpeed</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos."

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr "Caché del navegador"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "etiquetas"

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr "Etiquetas a no cachear"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "Para excluir %1$s, insertar %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "categorías"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "Para evitar que los %s sean almacenados en la caché, introdúcelos aquí."

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr "Categorías a no cachear"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché."

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr "Cadenas de consulta a no cachear"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Las rutas que contengan estas cadenas no serán cacheadas."

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr "URIs a no cachear"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "Los registros serán enviados a %s."

#: src/admin-display.cls.php:1124 src/doc.cls.php:74
msgid "One per line."
msgstr "Una por línea."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas."

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr "URIs cacheadas privadamente"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Las rutas que contengan las siguientes cadenas no se servirán desde el CDN."

#: src/lang.cls.php:206
msgid "Exclude Path"
msgstr "Excluir ruta"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Esto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s."

#: src/lang.cls.php:202 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Incluir tipos de archivo"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress."

#: src/lang.cls.php:201
msgid "Include JS"
msgstr "Incluir JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress."

#: src/lang.cls.php:200
msgid "Include CSS"
msgstr "Incluir CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s."

#: src/lang.cls.php:199
msgid "Include Images"
msgstr "Incluir imágenes"

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr "URL de la CDN a utilizar. Por ejemplo, %s"

#: src/lang.cls.php:198
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s."

#: src/lang.cls.php:204
msgid "Original URLs"
msgstr "URLs originales"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "Ajustes de CDN"

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:233 src/admin-display.cls.php:827
#: src/admin-display.cls.php:854 src/admin-display.cls.php:906
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:71 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:232 src/admin-display.cls.php:826
#: src/admin-display.cls.php:855 src/admin-display.cls.php:906
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:173
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:305
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minificar contenido HTML."

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr "Minificar HTML"

#: src/lang.cls.php:127
msgid "JS Excludes"
msgstr "Excluir JS"

#: src/data.upgrade.func.php:83 src/lang.cls.php:115
msgid "JS Combine"
msgstr "Combinar JS"

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr "Minificar JS"

#: src/lang.cls.php:126
msgid "CSS Excludes"
msgstr "Excluir CSS"

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr "Combinar CSS"

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr "Minificar CSS"

#: tpl/page_optm/entry.tpl.php:31
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Vaciar todo»."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Esto vaciará solo las entradas CSS/JS minimizadas o combinadas"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Vaciar error %s"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Optimizador de base de datos"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimizar todas las tablas en tu base de datos"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimizar tablas"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Borrar todas las opciones de datos transitorios"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Todos los datos transitorios"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Borrar opciones de datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Borrar todos los trackbacks y pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Borrar todos los comentarios en la papelera"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Comentarios enviados a la papelera"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Borrar todos los comentarios spam"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Comentarios spam"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Borrar todas las entradas y páginas en la papelera"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Entradas enviadas a la papelera"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Borrar todos los borradores guardados automáticamente"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Borradores automáticos"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Borrar todas las revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Limpiar todo"

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr "Optimizadas todas las tablas."

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr "Limpieza de todos los datos transitorios exitosa."

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr "Limpieza de datos transitorios expirados exitosa."

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Limpieza de trackbacks y pingbacks exitosa."

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr "Limpieza de comentarios en papelera exitosa."

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr "Limpieza de comentarios no deseados exitosa."

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr "Limpieza de páginas y entradas en papelera exitosa."

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr "Limpieza de borradores automáticos exitosa."

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr "Limpieza de revisiones de entradas exitosa."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Limpieza completa exitosa."

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr "TTL por defecto de la caché privada"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de \"editar\", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto."

#: src/lang.cls.php:180 tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:219
msgid "Vary Group"
msgstr "Grupos de variación"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Almacena en la caché el bloque ESI del formulario de comentarios incluido."

#: src/lang.cls.php:178
msgid "Cache Comment Form"
msgstr "Cachear formulario de comentario"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Almacena en la caché el bloque ESI de la barra de administración incluida."

#: src/lang.cls.php:177
msgid "Cache Admin Bar"
msgstr "Cachear barra de administrador"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite \"hacer huecos\" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privada"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Pública"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Ajustes del vaciado"

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr "Cachear recursos de PHP"

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache móvil"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "El nivel avanzado registrará más detalles."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Básico"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado."

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr "Cachear página de acceso"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cachear peticiones realizadas por llamadas de la API REST de WordPress."

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr "Cachear API REST"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)"

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr "Cachear comentaristas"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)"

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr "Cachear usuarios con sesión iniciada"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Ajustes de control de caché"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excluir"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:133
msgid "Purge"
msgstr "Vaciar"

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Caché"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Se ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (<a %3$s>Más Información</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "La hora actual del servidor es %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Especifica la hora para vaciar la lista «%s»."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Tanto %1$s como %2$s son aceptables."

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Hora de vaciado programado"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción «%s»."

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "URLs de vaciado programado"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Registra los valores solicitados de las cookies."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:227
msgid "Log File Size Limit"
msgstr "Límite de tamaño de archivo de registro"

#: src/htaccess.cls.php:785
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s"

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr "No se puede escribir el archivo %s."

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr "No se puede leer el archivo %s."

#: src/lang.cls.php:229
msgid "Collapse Query Strings"
msgstr "Colapsar cadenas de peticiones"

#: src/lang.cls.php:228
msgid "Log Cookies"
msgstr "Registrar cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "Ajustes de ESI"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 implica no cachear."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valor recomendado: 28800 segundos (8 horas)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "TTL caché de Widgets:"

#: src/lang.cls.php:176 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Activar ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Ver <a %s>Introducción para activar el Crawler</a> para información detallada."

#: src/lang.cls.php:219
msgid "Custom Sitemap"
msgstr "Sitemap personalizado"

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by relative or full URL."
msgstr "Vaciar páginas por URL completa o relativa."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La característica de crawler no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:164
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "ADVERTENCIA"

#: tpl/crawler/summary.tpl.php:106 tpl/dash/dashboard.tpl.php:563
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Última indexación:</b> %s elemento(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "La siguiente indexación de sitemap completa empezará a las"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Error al escribir a %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "El directorio no es escribible: %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "No se puede crear el directorio: %1$s. Error: %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "El directorio no existe: %s"

#: src/core.cls.php:288
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Solicitado el vaciado de la lista al servidor web LiteSpeed."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Por favor, visita la página de <a %s>Información</a> sobre como probar la caché."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores."

#: src/lang.cls.php:216
msgid "Server Load Limit"
msgstr "Límite de carga del servidor"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Especifica el número de hilos a utilizar durante la indexación."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo."

#: src/lang.cls.php:213
msgid "Crawl Interval"
msgstr "Intervalo de indexación"

#: src/lang.cls.php:212
msgid "Interval Between Runs"
msgstr "Intervalo entre ejecuciones"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Especifica un tiempo en segundos para la duración del intervalo de indexación."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microsegundos"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Y otro WordPress instalado (NO MULTISITIO) en %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Ajustes de la caché de la red de caché de LiteSpeed"

#: tpl/toolbox/purge.tpl.php:170
msgid "Select below for \"Purge by\" options."
msgstr "Selecciona debajo las opciones de «Vaciar por»."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "CDN de la caché de LiteSpeed"

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr "Archivo meta del crawler aún no generado"

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr "Mostrar estado del Crawler"

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr "Ver estado del Crawler"

#: tpl/crawler/summary.tpl.php:191
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema."

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Ejecutar manualmente"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reestablecer posición"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Frecuencia de ejecución"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Nombre del Cron"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Cron del Crawler"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minuto"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutos"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hora"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d horas"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generado en %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "Crawler de LiteSpeed Cache"

#: src/lang.cls.php:214
msgid "Threads"
msgstr "Hilos"

#: src/lang.cls.php:211
msgid "Run Duration"
msgstr "Duración de la ejecución"

#: src/lang.cls.php:210
msgid "Delay"
msgstr "Retraso"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>."

#: src/admin-display.cls.php:129 src/lang.cls.php:209
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:580
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Solicitado el vaciado de todas las páginas al servidor web LiteSpeed."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Todas las páginas con widget de Entradas recientes"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Páginas"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Esto solo vaciará las páginas"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Vaciar páginas"

#: thirdparty/woocommerce.content.tpl.php:78
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "Por ejemplo, si la página de inicio de esta web se encuentra al %1$s, la página de la tienda puede encontrarse al %2$s."

#: src/css.cls.php:582
msgid "Cancel"
msgstr "Cancelar"

#: tpl/crawler/summary.tpl.php:125
msgid "Activate"
msgstr "Activar"

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Dirección de correo electrónico"

#: tpl/general/settings.tpl.php:100
msgid "Warning"
msgstr "Advertencia"

#: src/gui.cls.php:726
msgid "Install Now"
msgstr "Instalar ahora"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "¡Se ha vaciado la URL!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "¡Se ha vaciado el blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "¡Se ha vaciado todo!"

#: src/purge.cls.php:599
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Solicitado el vaciado de las páginas de error al servidor web LiteSpeed."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Si no, por favor verifica el ajuste en la <a href=\"%1$s\">pestaña Avanzado</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "El ajuste de administrador de red puede ser modificado aquí."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Recomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero."

#: tpl/toolbox/purge.tpl.php:226
msgid "Purge pages by post ID."
msgstr "Vaciar páginas por ID de entrada."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Vacía las entradas de caché de LiteSpeed creadas por este plugin"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge %s error pages"
msgstr "Purgar las páginas de error %s"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Esto vaciará solo la página principal"

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s."

#: tpl/toolbox/purge.tpl.php:236
msgid "e.g. Use %s or %s."
msgstr "ej: Usa %s o %s."

#: tpl/toolbox/purge.tpl.php:221
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s."

#: tpl/toolbox/purge.tpl.php:124
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo»."

#: src/core.cls.php:283
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Solicitado el vaciado de todo al servidor web LiteSpeed."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Usar configuración del sitio principal"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "Esto desactivará la página de ajustes en todos los subsitios."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Marca esta opción para usar la configuración del sitio principal para todos los subsitios."

#: src/admin-display.cls.php:695 src/admin-display.cls.php:700
msgid "Save Changes"
msgstr "Guardar cambios"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios."

#: tpl/toolbox/purge.tpl.php:116
msgid "Empty Entire Cache"
msgstr "Vaciar la caché entera"

#: tpl/toolbox/purge.tpl.php:118
msgid "This action should only be used if things are cached incorrectly."
msgstr "Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente."

#: tpl/toolbox/purge.tpl.php:117
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>."

#: tpl/toolbox/purge.tpl.php:123
msgid "This may cause heavy load on the server."
msgstr "Esto puede causar una alta carga en el servidor."

#: tpl/toolbox/purge.tpl.php:122
msgid "This will clear EVERYTHING inside the cache."
msgstr "Esto eliminará TODO dentro de la caché."

#: src/gui.cls.php:560
msgid "LiteSpeed Cache Purge All"
msgstr "Vaciar toda la caché de LiteSpeed"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si no quieres la aceleración de litespeed, puedes desactivar este plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Crear una entrada, asegurarse que la página principal está actualizada."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visitar el sitio sin la sesión iniciada."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Ejemplos de pruebas incluyen:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Este mensaje indica que el plugin fue instalado por el administrador del servidor."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "¡El plugin LiteSpeed Cache está instalado!"

#: src/lang.cls.php:224 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Registro de depuración"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Solo la IP del administrador"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "El informe de entorno contiene información detallada sobre la configuración de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "El servidor determinará si el usuario tiene sesión iniciada en base a la existencia de esta cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr "Nota"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Después de que la caché funcione en general, por favor prueba el carrito."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado."

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr "Vaciar todo al actualizar"

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr "Usar TTL de la página principal para la página de tienda"

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr "Intervalo de actualización de producto"

#: thirdparty/woocommerce.content.tpl.php:77
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Marcar esta opción forzará a la página de tienda a usar el ajuste de TTL de la página principal."

#: thirdparty/woocommerce.content.tpl.php:64
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas."

#: thirdparty/woocommerce.content.tpl.php:51
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Vaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "No vaciar las categorías al cambiar la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr "Vaciar los productos solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr "Vaciar productos y categorías solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr "Vaciar las categorías solo cuando el estado del inventario cambie."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr "Vaciar los productos con los cambios de cantidad o estado del inventario."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr "El htaccess no coincide con la opción de configuración."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si esto se fija en un número inferior a 30, los feeds no serán cacheados."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Especifica por cuanto tiempo, en segundos, se cachean los feeds."

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr "TTL por defecto del Feed"

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr "Error al obtener contenido del archivo %s."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Algunos temas y plugins añaden recursos mediante una petición PHP."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "El favicon.ico es solicitado en la mayoría de las páginas."

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr "Cachear favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Desactivar esta opción puede afectar negativamente al rendimiento."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de acceso no válida. Encontrados caracteres no válidos."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden."

#: src/error.cls.php:116
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de acceso no válida. Por favor, comprueba el archivo %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Hay un WordPress instalado para %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Ejemplo de uso:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "La cookie aquí establecida será usada por esta instalación de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "La cookie de acceso por defecto es %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "DEBE SER DIFERENTE DE OTRAS APLICACIONES WEB."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Espacios no permitidos y sensible a mayúsculas."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SINTAXIS: alfanumérico y \"_\"."

#: src/lang.cls.php:186
msgid "Login Cookie"
msgstr "Cookie de acceso"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "Aquí se puede encontrar más información sobre los comandos disponibles."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Contenidos actuales de %s"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Avanzado"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Ajustes avanzados"

#: tpl/toolbox/purge.tpl.php:249
msgid "Purge List"
msgstr "Vaciar lista"

#: tpl/toolbox/purge.tpl.php:168
msgid "Purge By..."
msgstr "Vaciar por..."

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:215
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:209
msgid "Tag"
msgstr "Etiqueta"

#: tpl/toolbox/purge.tpl.php:203
msgid "Post ID"
msgstr "ID de entrada"

#: tpl/toolbox/purge.tpl.php:197
msgid "Category"
msgstr "Categoría"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión."

#: src/purge.cls.php:684
msgid "Purge url %s"
msgstr "Vaciar la URL %s"

#: src/purge.cls.php:653
msgid "Purge tag %s"
msgstr "Vaciar la etiqueta %s"

#: src/purge.cls.php:626
msgid "Purge category %s"
msgstr "Vaciar la categoría %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr "AVISO"

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr "Este ajuste editará el archivo .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:36
msgid "LiteSpeed Cache View .htaccess"
msgstr "Ver el archivo «.htaccess» de LiteSpeed Cache"

#: src/error.cls.php:120
msgid "Failed to back up %s file, aborted changes."
msgstr "Fallo al hacer copia de seguridad del archivo %s, cambios cancelados."

#: src/lang.cls.php:184
msgid "Do Not Cache Cookies"
msgstr "Cookies a no cachear"

#: src/lang.cls.php:185
msgid "Do Not Cache User Agents"
msgstr "User Agents a no cachear"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Habilitar caché de red"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "AVISO:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Otras opciones serán ignoradas."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio."

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "Lista de User Agents móviles"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "No se puede escribir el archivo %s."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr "Ajustes de JS"

#: src/gui.cls.php:576 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Gestionar"

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr "TTL por defecto de la Página Principal"

#: src/purge.cls.php:567
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Solicitado al servidor web LiteSpeed el vaciado de la página de inicio."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Vaciar la página de inicio"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Example"
msgstr "Ejemplo"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "Todas las etiquetas son cacheadas por defecto."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "Todas las categorías son cacheadas por defecto."

#: src/admin-display.cls.php:1123
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Para coincidencias exactas, añadir %s al final de la URL."

#: src/admin-display.cls.php:1119
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Las URLs serán comparadas con la variable REQUEST_URI del servidor."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notas"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Usar ajuste de administrador de red"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Desactivar"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activar LiteSpeed Cache para WordPress aquí activa la caché para la red."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Desactivado"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Activado"

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr "No cachear perfiles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Se muestra en el registro de depuración de WordPress."

#: src/lang.cls.php:226
msgid "Debug Level"
msgstr "Nivel de depuración"

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr "Nota"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Archivo de término (incluye categoría, etiqueta y taxonomía)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Archivo diario"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Archivo mensual"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Archivo anual"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Archivo de tipo de contenido"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Archivo del Autor"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Página de Inicio"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Página de inicio"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Todas las páginas"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Selecciona que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadas"

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Reglas de vaciado automático para publicación y actualización"

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr "TTL por defecto de la caché pública"

#: src/admin-display.cls.php:938 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "segundos"

#: src/lang.cls.php:225
msgid "Admin IPs"
msgstr "IPs de administrador"

#: src/admin-display.cls.php:117
msgid "General"
msgstr "Opciones generales"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "Configuración de Caché de LiteSpeed"

#: src/purge.cls.php:203
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Solicitado al servidor web LiteSpeed el vaciado de todas las entradas de LSCache."

#: src/gui.cls.php:461 src/gui.cls.php:469 src/gui.cls.php:477
#: src/gui.cls.php:486 src/gui.cls.php:496 src/gui.cls.php:506
#: src/gui.cls.php:516 src/gui.cls.php:526 src/gui.cls.php:536
#: src/gui.cls.php:602 src/gui.cls.php:610 src/gui.cls.php:618
#: src/gui.cls.php:627 src/gui.cls.php:637 src/gui.cls.php:647
#: src/gui.cls.php:657 src/gui.cls.php:667 src/gui.cls.php:677
#: src/gui.cls.php:687 tpl/page_optm/settings_media.tpl.php:125
#: tpl/toolbox/purge.tpl.php:37 tpl/toolbox/purge.tpl.php:43
#: tpl/toolbox/purge.tpl.php:52 tpl/toolbox/purge.tpl.php:61
#: tpl/toolbox/purge.tpl.php:70 tpl/toolbox/purge.tpl.php:79
#: tpl/toolbox/purge.tpl.php:88 tpl/toolbox/purge.tpl.php:97
#: tpl/toolbox/purge.tpl.php:106
msgid "Purge All"
msgstr "Purgar todo"

#: src/admin-display.cls.php:281 src/gui.cls.php:584
msgid "Settings"
msgstr "Ajustes"PK
�MS��Iq�]litespeed-cache-en_GB.poUT	8ga8gaux�����irI�.��O��Ŕ��vV>�%QM�HLV=I�G��d�{���(y?�
���!�<�s�1U�77sd��tKua��ⶨ��~���E��:m�Hʫ�l��΋:y��ɛ�|�e��8]�d$�I�,yLJgu�T�:K��$/���:�o��������&����&����Ů!�v�*������M���eV�Y�֘v�Ʒ��Sz��˦��W����A��wO�g����R�Y2�
�Oz�'�yҟ?�����[���o)�����'�f���i�qY4Y�<��o	�&��<ݮӼ��dy�Vu���ū'3�,��UV=yY,�U^\?Kf���2d�U�~�6������σO�.�������Ȫ�)�g��uٜUY]?�{O��&=`�7iq�#�,Ɋ���iKU�{�l�����0�@�_��Y�\�O���L�r]no���)��3�X}'�_$@�f�~�%��,���)����I}���C����=N�m^�W���P��Ŋ,�u^d�Hf4;�
E��A>T����7�2]�=!���5Km��rL��yR,׻U��ՓUE�N�r����"�hYn�׊n�ۛ�H��K
�����|Y�>�C��H��io���N6dA6�qm����&'sA�4��}ɖ;(}@��˛��)w�U�!S��Aj��lsү��ʪN��&Y�1�2��é���#�YM�u�����#�-�4�Ie2XHS��k��~5���+W�x&�-9g��R>l��6'�e�,�d���"�����ݽƣj-:+z93�>��Ζz���M_�O��6͛��9x��)wC?>���LQ����n��s�]ȯ�%�Ee_�8���OWi���UJ���]�đ��� ��'�|+F�N��<��CN�|�0咢L��a�����rI�z�?LN�]�|���aO�%W\�B%SF��gz��[�
�nl8
�7�猬2�ͮ��ݫW�[@T�$rw'd�o�bG��	�p�77i���]E�FC8����ѱ,ɪ[��	�I"m�(�`�ݮ-����5黸�����z�!��@�7���Z��v�9l�֎�B{��h,.�yM�be��~Z,ወ��IV��+����Xܜ��d�b�h͐㏞p�t�d����
;)�I�]�mV�Œ.�Z�<m]{(��\�hh�U�lTl��;s�7���8��k����@�Qr`�n7`%��l��31w�']��?����G6˿N�܋?	`��?�aRU��<����e��#vIN��<�e�Z�?�Hnhrr�I�C�$��mLA\ �Ӭ�-�O���o��u��cy�rrFNT䚕��HnY�l���ٗ�d���E�|�½%>e��]���RDiޗ�,׋���|�-����q�#���T���i�}J���A�W\�x�,�Jr��u#2�����l�ٛf���:hK�I%8KU�!K�}T'MJZ���M����7����P/�=+׸wFp�`�u����,����U�9��g#��DF��O�]á{����'LJHи#��[W.7���ۡ������V8��d�jk�e�[���V��:�9��,�"A�E	2o�ٞ�w5�%�]CR"��H���i*&�I�ݒT'�l�~�&�|�eN��EU��Y�l&1dv�~�&ǻ��ş>�R�–"-�w��jd�S�*'9�d2U��d�_�ӡz=��h��	�^V���r�4{—2=���t�=�92`r���qI���C�Q$�]D#�lj�b��[�|{����/q�����Y%��;V��1B�x�k��dkF�yuQ��X=]i�s��9� ���U�6T_�"���	�}�m�\��p
)����ޙ�Fmh@��9�*�.�Q���c�T�s8�|s�V�n�I��@2'�8$7�͢H�u�*w��c��[�!�t���-Y�vV,̓�$��2�PA��xa.��@6i���s�s���=�����H��J�y�_�����
�-X-�jU�R�tc���T �aha����S<k��j�&�����xX�Qc����|O��5jF$���>'��I��4"+�����W�r��W�P������"|�2�o՞��O�Um�C[��$���~!e[�)�tI�M�w��'��e�&bɾ#6Y_�&["�}Be�U�щ#���F�3�攗K6�����P�[�k��&�/
/�6������!"�b�-ܒ�L�T�'I�v����4`�I"n�Uެ�*<r��&po��l�-e�`����f	җ�V�Ї������&ڍ5d��)<��"L$��FS�<=���y����-��2������~oR��-�iqyU�D"2$�FXy�}Q.wr���<�\O��*�̶U�$��D�;�b`0l��PM^\��ȥ��ww%�<s�yf�n��|���Ft�q�U��:��5VӒ�Q���lI5�d�Q:𮸆��
���W��X��3�zxS�&벸>��_Ѯ��u�~N"�3�i�Ε���)D�'�H�1s�0!S��5tD6R�ԕ�w��UQ�j�3t��9?c4�����)�<�oӺ�$V���3G[������#�o�j�IZ7��|φT�Z��`�v�l>�x#T��5k���.Jc��Pd��Xe���>�pVe��%pCa!����"aM��[��Ɩ�퉼���=��ˏli6v����K��m�y��FiІ��աJdw����(��'��X�	K�J��'&pvX�Z޽zE%:R��77�Y>�w��J�́.�&��'K�e��]�&8��!"��r�@��A�y^���{��*�<3ܢZf�XV+J��%/�
�I{}�~���2FOh��C�l������p��M�^ـ�c�4e[\Kjaމ DH�b]��H�� <��y�[�
�����,i
�fGExP\������}�#ߖ��b����1�M���6�.�Z����-����L�r�ˤ��T__'��٭���)è;E�k�eϰ�n�zCX�f�������^ޝ�LIzW�Q� 9K��@����h5�ݚ��=�{���~���4��G5g�ecˇ{9���RL^쬕r֢�k4��<L�ߛ+@�1�rɿ��_�d�`Hu��EֈM�O{���b��i̜N]�銺ExLj:Vwi�h	[��.��D/[�p�ר���OO�GS��nI��R�s�"qT��,��9�]pd^�fBN��|�Q�+h[�Mʌ��5=�#���,�P-,^�:���4C��h�ۧʴȔ�ɴ5wn�,�ɋO���A�O��r����LVkXV@L���ٱ<�D��$'��(;ߑ <��u	_w��G@�T&ő",�
x�Y'/J����O���٫��A�Ƞ'v��MF.��>���|�������}|"Z��1��P��Ȥ��JPI���ֆk��x	B�*�il@�K�f�+�M�<%�u��^p����
+��a�8%�P�i�UO�;�����yU�l�H/��E* �f�s$Jc��/i�( ĕk�	�(�P�`{�MU�B\*��ޕPt�[���LY]��f*ݴ8|��b�_�lm�&|.A�p��l��<_7��G��m�P����� ��/7�f�,l�VFձӐ��T�f_r���}v��"��D+�>���Y��%V�MޔP�KP���%�.�-Jo���
�:���$�c��)\pڍ�$�u[�H�{X٨쒑�Jkh�z�
_Om�$O������V�#��6�ro�KM���2i��?��S��	Д�U�٭}f�����[��Y[DZGB��J�ڈɔ"�#S���j�����=�<��U2mM�%7�B�X�ѕ:L�e�U�i%YS¾�S�m5�"P��L�͖ҧ��E��Ο�Ud����ƪ�7'�<tgj�p 5[��$m�ty�]��c����h�x+?H�p�S��$�)�x�Uzm:[��u-z�->��KX����8���X��'KtQ2[+��p~R曈�$���&I2�M�N+�:�u!�����h9tl#�ޤ�гm���b�~�o�lpBf漃�x�V�;�^/ث��Q���H[|Xx��H�i�T�:����$�I�)���4G�N-�JQ���#ػ�w�^��^��#��d#&c<�>��Wq������R��fښ�"�B�(4""��P�L��v}�����P�g��b��*�Zq>�о�:
f��+s�&����9��0R�IǕ���L���!�1r�,��Q��7p�
-�dk����\�e��L��I�
��v�]
V{���g���/�M�u�o�}�甜��_��A��d�;e_���4���M�+4\!�n1����Z�{w��O}nY�x�6�M�f#]����ZH������1�KԎ�>��S����|���#�9�����x1�Oe���&mn�#���L����'ӻ�P�g�afWVe�)�ԓoX�O��A,M���[45R���e�JP�2h�b�â�0ˠ�t��P=��R��C����ۈz��h�
&0!	�h�槛T��a���Z`JX��<y=�سM���h�Wl#j��1�(/&�
#
��kh^��莠�u'
zO
���̺,�K�Cw�v���M��M�3��pҔs��n9�J,��EŗH��/c��X�-D�\|ۃ�>f����,��Q^iz��(���8����_�>��md[��q�����W�@�I�1�%�����>|C�P��(ƢU�O���Z��@ۆ�� �l/�(��r
��D�w���S�v3��{.���G"_��k#,Q�fn�dܢC�`���huQ3\&az�䪄�L�E�f}�@�^�:��_��վH7��{%�س�����o0�O| �f�oU�0�Me�ه����-�q�/��y��Z��w.zH+�(�+�5j�>�Iqb��.�fS�xl7�zI��un@�)�μ��w����v��(���i42_}��U��r�`�>HԤ#"��qųm���b/>�h���u��=�^�r$t��T��S�u��G%_�@
�
ai�k���!.�W�X���/`#IzV1�z,%?�D���%�c(���]�J	IYy)7~�?�?>MB3O"��@:�S]��ChL.'!�j`�����U�[	m1�%4�CU�m�"��'�,��i�٨ސO��:i���U��
j�o@H}���c(�m�%[+l%�OKqU�w��#k��S�v���3��:T����wu+h�k|*�d�����\��t+PogU�й�����7d��&�bt�ɖ~��83��9��d	�jzI��m�n2��t���v����4�L~r��k�-=�*PmWu��T�_�*���9#We؄� I$���z*A0○���f�M��(��GQ�iD�q���mV��]�?i{и5iȓ~qu��җ'Wڽ|?*��vI�@�>ߡ�)%��֔y.:��� �
�P>�����{*
Ź߶�����tr
=D��z�m����uZ�h�_Ȣ��qJ�� QxÖ:�n��#�N���4'��y��/�``������w�ƌ6�/�A`�uX�	�@�fz��I������񚩥vWM<�)���Q^�쮼8hc���A�k�Z��ۉ�������f�
VI�v2�b�[M���7�� ��"��d—����f�	���pso�~�j[h^�]��vh�v� �B��HI�~�w����8�d7�Ì�a�S�`�����gF��O���_)�UI� �x`E�m��DrI�3K�=ǔ�NI�!6Ta�~��M�+s�	��ˢ��R��@��ᦺԳ�m����F�Mr�l���rɓCG&Dz�
I�zƫ�}�X�v=x2�����٥�#05s4R���Z��ꅨJ0V�K��/���5���V��Z�V�H�+ �-��qkdf-3#�Kx]��9�ű9P��%T���n��7�t�]�_�����A���.y}��ǻB��Ϙ[��v�p����/p��}�/?��K��j��卫�@?�f�a�<L�L���֦�n�5*GU_�]��".��@���M�y�Ԟ��l_i�z���=jݷX@,/L[b��j�?��Z��� /�㲸&�53�pj�wjP�@�0�4w�Nk6بR.��lj�y x�	��X�] ��A`¥Y�G���1�eP�m���[ ܍�"Og:8�wۚ�f��*#DW	�DZb��%Z�&�U~J�B�4o+l��*��x�����3�ԥi�k\L�"mR�q��
��C�{���s�E%�s�d�
����
�K���é�ꮠ6��X�`A�E$������H�9\�+1��R�
񊤛˰��é�W��5�.R��|�O&ew~gʀ	���R+k M���6�b�S}cS)�^�<�4+/3tƭ�U'��P��{���^/�Lj�^$��a���AP����~��̃¹�Cu�������#&I�]��� ���y!��'@����Eūk�F2<�����
�>�$1�^��.ޔ�×n��L8zD���a���1D�O���{Ʃ��
��z�}���!�\������R5�<$)fOr�n2ȇ%�h)�4>!�����*�j>fhq]���䴤�%��U'o�'�Go����#�v��ԽӷAX'EQ�x�1�fV��|CaF��U4)o����bE��A
b\�X
: ���|n}tj�C�O،��X�`�I��(��<��&����޲ޡ�mEmV��%x�bi}��Y�i�R�3���F�
*0�3�vs��22�ӴC_Mk�g�Z�Np��`��=�Z�g�и���ꠡ��E��2n͞΂]��ߵ0��լ`�z��:��{@+"'
��lx�]��^�H�u�o�F�\�Yb��p>���g�U��jd�%�d
��2�i�!j��=ҝs�[BѪ�I�I�-~D&���'��\�d)m��UɫPY�I��Y�i;;@0��=�Lڞ1L��a�"�ng��4>��K��̕�<��d�H)l���ZK�O*MQ�.&���(S �5Z�����Lw�<B�l�;}=���-8b�]�kt�"�q/�0�}T���
���K�<�=�H���`�"쥢�MhLw���3)s%�e�a���Z,��%�h�d���W�
2��
��2S���C
}�{��
U8�=�}����"�(��F�*t\�R͍*`Y�k�t��`�zz�p�n��Pk��l��=~�
��r�W
�ui0uI����՚��:v.�P�28���^'��5��(#�R���fs��z�2<��8Р487�+r�:4�
r��h��	��@�����|�b�/ʭ�'���@��Z��c-�l��k��'����}	�iiB
�<ܽ��#+�J��ii�
$-8'wu�´��v	�.X&��S��]�O����5��;T����d)�w����m3��r�6�v�9)sQ��D���оR�wI�K@�Qc�t���Am�CngZ�J�Sp�[p֣���2(R�߭\�0�޾Vc�[cEH��wL�c�L�l�5����}�fg"0}:I�`[�B��Gy0��߿<�H��N8�>��&C�c���m���F{	F.�T4�@�����u+<��-d�U��L�@{@o-nL��<{G���~��z�f��Í��0�� gaZ����f��f��N�;��\zl(��33��j�ꖺ;U%���ZT�vG$.�,
�d�)��zS�(�z���tȟv9�18�vި̈���bE�v/9�t5.lv�81|i�n�*�gɏ4���U��s?>ş*�Խn�k2��=6��˔p芹�z��q(h��F&�(���'*�;7"Ć�<�ḩ���ʵԮ��v^;��%��=�j�ez-�g��I݊?�BKX�U�bୈ�rZ�$?_�}�d��B�ˆ�Z�����)�m�h���S�y*(!�x�Ɔ
!�=Ԣh����P	+�G9ۡ&�.W�bI1��f�y	�T�4����Eɣ{�m�@҈$
߅��neh�lh��F@|h�-��4�J��BHo�y2�D($�z1�N['�M���ɫ�6����۲D�Ċ��K���,�Y)Ƕv��5�*�b��X֕��h�s�.�r����q���,��l/��2�4
��4��;,�CVe�#�;��e���J�L�N�-��/bh��j��o�q����<b�<'�������J�nv��r��hy����-ָ8�G���a�V#�&���`��d�_+a�_�M�j��/��4%���~��pI��Q_�����•�;<(�Z��"�4��A|����cH��-��$�N����_�ߑ�����ɮ��V���5����D�ϨY���Z�J�<�1[��/E����0"0�2�ڏ��-���#3�a� 9��`��s�t'�c���f��b�,��{aD[G��PS�߃���Ҧ����ս#���v�H9:�:���f[8��N���R^a���Y�x�l9���G��#�ϳ3��^�D0����v;x�~I��3�����P������� �����?�?q����<�z6���OO��I�ċ��r�>�=
U(�RJԼ���|���*u+ILp��/�����"Ӽ����_�I�/�N��Z��u�j-�Ci� ����#��K�Ƞ���;�Cs���%X��,佧��y`��.��d�8��Z@iy��_��ݾn��1��-/Sa��.��P�D�j.y8�j�%C�@D�,��M���Z��r5eO�����S��WV���?�*B���I�5����A�Z��b�9�;+�MS�:ڑ�[�Y���H�Йht�~�EJ��P���A"?)�!�(�B�;
yZЁe��|C_XVC�*�,�]aE�m
r"�C�PN�9���x�j
3�CSq�Țg:��&�y�x�O�<3��1�bzQ�"���2�<��`���
����"_��nߦK��ȩ�lL��Z����A�ۃnMwhs4w�I?E�A�xڗ������Օ�7���8g�S�9t�6gSW�����i��u�7B�]����t�8�uw�s=4%�9��/裎�3�QD�Ƶ�K;���6�֬M�1G'婢;h�+0o�o#�ID"T�3��:
��[1�ImAFu762CK'm��$%���e�&=�MB������>e��o,���GB$9++�/��Z�( II~]�:�d{1���@ѩ��XF.'I�Ŕ�����������O�a�M>��F��=��IՐ��J�&!;t��s����>꽁ɰ���2eV�%7"@�̦6��`���N���J��{6��\�G[��2kF��1���
�`�d���;���& \6J����Ѽ{Z��k������Y�J�Z��Ʌ��,�X�6A,���%ݍMfW��9;�yK�Ϭ@�B�ܝ�5��CS퓔�S�-�Q���Vp7=�jqi�%ͱuլ����p<w�N���{8�����hh�^V�*	i����l��R5���Օ���i���8u���0AW�
[��W���n��t��|Vn���f�~�lЗ}yɫ����6}O�DL;�CR�7QaHg�J��,B��Г��X^7��p�:�����0T֩0��N�{[�}D�%}�
l����4���F]�-З^*�N�So'M8��~�0��]��YŪ���/O%���(��,%�����@[ZLi��:v�c߁o\E�
�P��,]�arpR�VKE:�ޮH���S�2��U����7��:•��5ޕËz:1ֿ��_P&��T2rB�C\iO��Y����]���eͦ��,^kŽ���qu�dM���W�~�O��i>�����֩|��Yh���}��90���:go�c���������Q̧t���2�0��|�h)���,��>��C�FF��K�V�9dxB��1K���/���S�Z�ۘ��ަ���t�������B���(���uޖ8��A�}���]yFǟ�$+��Q�pQ��{�V,$_i*�|[����m�J�Ѩ�T���j�vRP�$uM�i!Jt��t�#RZ�64Zb���Yϕ��ʘ�� ��|⨮-bZb�����[V��)	ɔ�S��A�~��Qw���'
�Ӥ�'��I�x�����N���G��3���|>3]��V�O������K�z�_g
u㔴����F���!Q=#İ$7�!b�����|����h-ߥn�
�*���#\bB��4o�ȑ6�d�H+��|wn�����Ҩ
��,s�6`
��Y�F�*��F*���^K�pQq��K�cg9XD�GA;�6Yv�4!V�6�+m��tj0��ELև�S��3]yf${�Hh��)�~��"|�"'\�d�宒��]F�n�$�>!?����|�6|�|҅�9�t��k幡$�<�~�'���	F����C p�_&̄b)��g��)��������?bB� �:u��J�9�#��uy���tK�js�p�x$����܄qU<�K#�3,���d���c�[�5���x�1S�D�׵�ݺ~G՝��k�:�3фAǿXS�Q�o�����4+�^+�}�<v�K�y�L�$Q�=M��G��z�/�Wy� �L�a�<��Ts�`q���(wר�!Kx	�S�N"�2³�gD��l�=H��sb�F�^��G`�`>���2ߙ��������l�l@glqK]��Yc��DU�>P����ئ`a���qGn2r��4�> [��Pe�����df�bDg^B �l��3ʢY�M[�w�
���+�������k{I}�9�d�5u����@-��h�T)�Q�{�'\��٤�'� s�3fG�ng��wӕ�ʗ�l�wj�>=5�`��uS�}�i�)o9�>ZChF"����7es����2\��L<�/�&��зP�8�?�+��f�m˪q���(��
�����x�H�a���{����"K7³����I!��۲Z��6����M� _�����	��Xhy4�g>맆��Oٿ��M���	�x�@�"H��]��?�d����~|��th�t����0�Y����PS��'�pL왣�xž,Hmw�謪
V��`k��R/9��%_�g�c8
l�@�8rB)��D� �J�0V�O�:w`^�[�2L�d�^�+G
~%9ܗ�ʷ���-��f�;~q��C_�c>%�1��cUO�>��oex�����Q����˩d�ZaD��U��yz7��54�@�ֺ����
G��i�G�y��G�ۉ����0-}�~��|�C�-��\h8�f��W,�"�{��񒋕Fl��B9+��g	B��N�%ۣ�c�1M�'~�f<��
�L�d��=y��o�ЄO�8�͛��K`��q�}|�7?���P�#�M���P�X����z,+��x��ݫW���(�(�
ڱ4�mƌr9�c�E�H_�%<���}�A�O�ʴj�t���a��W�&jt�M�̾,��B�{"�����{e��X1^�]��D|�:z?*������g�ץ�q��O]���H񀪒�K
��, YaV����
F%�xduF�iEm�
5-�=HDi3$�'� �/�!F�<t���_u�
�3D:�܃��p̥
x�e��T�OЯڎqC���0�`�o�=Y�oR�ꥉ��u[����H�%��}6�Y"Â��-��ħ}O��*����Ov�T`��Cdg&C��*�i��LhQު�����F%3��u�q"��Mqs�T�2+}��ʤ>&��U�ۀ�w.��:M�|�)k O6|��-��L������_�{[@r
��M���2V�c�9�S����x/�	�QS&�_��#*��)�A������}�~�g�M��*	A�=���V���0"6�gW���;Ëy��o�>���
��Gv08�4d�0+�+ŻI�멕�Z�ڋE���@5j����)[�[�u�
O����X4���%�$ҟf�"���;<�82��
��K3�|��֎���1��ۏ�w�3�8�"Fnao��ځcz�������)?ʴ�[��]���ۃ���mS3�}�D�\��A돏�.�>^��>ح���C��c��qo��_��^��Y�
�[���,A�HFO�<6��q��D��̠p.:m�Q�b?��4��)�={"/��E���A�>Ǿ
!�o���&ȷ7 ��c�����
S-\�Wo��r��CX<��L���0�T0�9ᶬ?�@$�_��3G��HY��aB�d�)	P�3�ܫ;�⟧Gn�
�H�/[��'���\�Y3`Q��E�D'DջO'kZ�U�L�{�6�5���xO�
Ɂ�\h=�;�v��w�׻�\��څ���k9F��Ԡ|k��.�����I� �Y~-��'٦͍C��0*�Óv+E�Ck4F�	��/�a�dHhM7�_%�)����n��	�!W��U�od�do�"�S�'�E\~9Lbf]|鴹�iP��z�e╀0u�lK0�B��-ڧd�{�_�t�4�L0D�S�����w�<4eϪ���3�t�}���!�%�wnT�Z�r׬�0�Q��{!��}��<r��5(�J�4��/�BW��g��x������|�j�M��Mt��}�^kH~6���<% ��'�:���軯�L.z$��}��V�9E�e�J���s)r&�
�?��A4Q��a�-��y���'��d��w��&[oY����rf�����
ޫ	7���9�ze��Mxp��퀇!�C�2"T����,�1���W?:^@�er"QO�RɌRX<��g��*�\<��ǽ��ݝD��9m�m�ڑ��Q��נ���i��Z�ސ;�|�	�W�a�� ��`�|��V�p�	t&���S0z���C��ъ�=���~N�	״m�,����z_ݱ��U�wPKP�E�&�
	���=L^d5�����*��9�d�U�M�
̡�H,�����,���,ޅV��şN
��f�g~[��|�v��_N����J��VU�k�N"�]�Wp�G�.� �ʈL���`����͌�נ�*���o��߾��?!QAo(��cO����ڈVC�pnH��,�O�}�Sl��ߺ]�4Ɔa�撪���MC���β#�
�j���_�eৱm��U�6@p����<t2N8�Ov�i��K�n5�]�zn���$((b��FN��X�`����dU�AD_�HӅQ(։�-��
&�ڶ\�� w�'��bJRŷ�c�V��&��Z�6r�.�(fFn��}<xuC<^B�r�^�莔k��玝���sJ�
�hϘ�B0�EY�&>ļ�r�2#j��Y���n�I���;�DE�&T�bQ̸䝣���nj�����&�F��|�P|�@���"2Hb|/��> �%Z�S��]
>��	(���=�3��� ���#F�7�iq���H�%�B�K+������V_�-����{f,c
�}a4�56�W�r$�^�w'U����룹�� ��J~�1���.t��7��xJ��vGr�tf�Z��rt�*�"�-��*
��G�i�Վ�
5w
ވd4�O�F~X�
�J�8�t�4
g��)�Ƕ��J�ԎX�W^���%�ѠGw�w���IЃ��7b�v�^�D���`#�e~��Z7U��u���H~A-;��RNG^�W�������&�$wr0�pc�̀w�h8m͞�ƽa�H��g�����=mb�.ј%=��d�xa>����@�>���6���^����mA�/8V܏ �';��S��*[��$�\��v���0��)��Į��E�o봂r I�f�j�97<r��&�J��<���\qd�-�&�%�5��\쓣����r�eH5��݈��~q�'��1����\K��/�LI� �;xi�eJP�HӲs�8���S���j�$8RuT=�!RO]ڨT�G�=D*�-
Q�b��WD��Fw��;��`E0b���0'ڱ�����:39
;;b�L|?��	��F���uT�J��$��)
A��p|ij�����w�+�q�a��U:�|OqAlҵ��?�:�yhiK5�+�xe��j�p)���Q����
�n���R�3\2B)#�<h%N��[v�-�\�,@RE��7`A����N�ކԚZ�܂Q��_�]S������C+��h£^ia���嗦J�(�#��������[fW��}`���(��ۀ���a'B�L�?&�]�z>
�\�w�/�(�|(�J����w��T%��6[�W{���P3��$�UὨx�P[p큖[��>����-�gW0��U�He�+�ؖy��8a5���&�	<=6��W�I�z,7r=$:#���%g��f���ٗl�C1P�ȃ��5�MYj..�$�q,�񟡆���p+���kX���p����`A�3�h2�@NzvH�M���GFO�#�h��0b j9�N���o�,>1��u�\�MS�OD�N���@�6�����NjtEӹ����9�K���e�|�qظ�9��
P����{�0G�5,g��HԄ'��������-�̩�l�YG�t�z���3�%�K7�.�����a��f�s�!YG���Dyt�=ӽNOu�9�:N�YK�
x�ӿ��m�N��^@`T"���r��$�Wd���EP_9L�{XF�-"�LC#�jOɇm�A��B@�p۬�
��l�<
u�B$�ڲ[�t742Š�UI�M����ozU��j�!,H�-U�![�s��)Vb�',�����| ��Q�F�Fi 
r��ߩR+�8���YOVhPN�D��	dA��X{k}�q�冬@�@^	�wj��]����2�
�ptv"̗��ܐ�<EZ[�ք�1���PR��S4q����٭�|�yN-���T���� �j�TU32􏽼*K@=�m�q!+pt�`�6|K���Җ�&K�\��é`G�f��"���G6f[�KG9��d�E��a(�]e@�*�� �"&�G�@#��.���� jf�uU,f���P���j��K��h��@VN0�8M��l���dJ�J_��MkTXJ�ʨo���;$���m�vwj觙��8唥?M�l�����7� =� >�Iʝ��B�櫚ÔR�:���x׋e��\�}�k~,�IHED/��#�;߂n
���S��3��-��|��-�^+�Z��ll�ژ|>C7�i�Ϫ��H57k�`32�&��S��6V<g�PG��Ma��ͪ��Y=ݼ��X��A{���G+[�JZ�!�ѐ����?�m(��|ƈ����=����n���c�K�	�
Q.~D|�5���ڤ!|Q��;9wD�fԼ����ӵ��3�~�B��Z�qRK�
��s|�+�[�ʼ[U�[z�~�ـt��b`���H�f��!�m�/f5�����*�܍���-�����Z�>0YB���.��{�U4��:�I?��|�"�̢'b8��uz�
����K���,ɏ���V9h��?/} x+)P��W'�Z��.$�������h��q4�Ӹ�`�0Ǘw���;n��4φ�B�\�p��7�($�⣳�~��^��D��{ �r�6��v4�����T���,܌ڣ���G�Q!G��C��G޷���5$s�h!�h@t�yb6�V2r_��������α�-��*���U%��M��YZ�1��;�A���߀q����N�jEH �8p]5ť��h��mC��Z:{붨_�t�$��&�i�9����vC�1` ���Hh��v%��r��5U�n���Q�=O�m:|��<�C�g�����p[���6��N��H�<����&w�w�*�S�{�AN��(�0���Vh�z�"ǪKv9;MY\$�Q��y��L�S�~��2")��oL�DͯtH"kmC�P�_�a�ƍ���Vh��=er$Ց|G׿'�Gg��q��>�-��3���졕/�+6,�>�)˶ORp�O^�S����@�f��S����Ȍ���:[���L�>S|�����'/�S����g%�ٺ!��Q����>e�$ա�{�J$Z]���)�#}$�A�PB��)x��1T�=���N�BC��)�c�δRҋ����t���P󙴭���]x�57�2���G����e� cc.�iV1JQj�H5��:,��Ԉ�$��ѣ���06%��8L�M!(���c9���?X!��Iͭ���m��P7p��cO�$�l7Q�^�	���k��˙�a����V�qW�Y�Q`)�*!��{\�"{�.����?��M�Onr�=�Y��:�U�;_~i(T��T����efd~��� �B7P��i��t��w��#�_0|^Q��ZA=>�����l�8o���yy�	K7��:�]e$�
��Y��Z�y3�M�p� =8A�)R�6xӒPK��"d`��Po���T�B2��Hk��@Z�P�Jr�.
��Չ���_��ª��GW�R@������<K�ܠ�ٱ��7�V<Ծ�$�2�x�xt��I_	�S*L�B�e�}ҶR�֔�n��@3!�U=c�Z/ԣ�\ژ
�`�j��Օ6�Z,�^���⤠��J�ý۔�j7b(b�2��E���Rd!+�<B+���?�o|ҁQM͠/�P�(�����뎈/���й�.���P����{�������G�Wӳ���ӵyʪ9m��ޙ��VN����ȅ�2_!��l>}0�3"_d`1��t&�!��u\j�2P�UN���6�P'��7v��c�&�Z@������
�``����R��ߦ����'�o�QgY�Ze�s�$���:8��{��F
Vȝ�BZ�9ꂑJ��9gX�ĔmkTBo`fb�zj!	�@��ze���6#���Y�������;����n�o;ce���9ș�#�%�L�ϱ����wя�$��9�N�͡�X�K�8=��Q`�){�GA�J��^�~%�ф
��,-5�HꋏV+��y��&3��$�'Bje��EWh7��3�SO����2�sSh7����vbUo�/e�d|��v��9�_�ҼC]�ѹrЦpU�[�/�����HF�,�l�p�UM�%��Ұ���5ɸ���>s�n�8�_�_0j�9��*�Ί����Kj����pxQ�������ym��\@��.��2t�XB=��&����Uy�k�>@�+���톆��ֈ��%�u��L�&�_2�2T�n�-�O)�)YSE!��Z����(�_�c���Dݱuk'j��%�w�|U��XtҝA�b�Z,ܢ������!�ݮ0��ɒ�m���$�>�C5�O����
��l�Fkno�vt���2�)Q�� �읹��*�Jň^��E���_O^�����v��j���TЁM�A�)���*��p?�O�q�������X�w���K��U�#n���uf)�"�k��%ac7y�u��mYbO�evx��n�)NU+��7�"�i$�WG��j�EZ�Zky��-��KقH�)_&}���E�V��d�;>C��� �%�#�A��웃dKC�Y��h�Q�	�_E��~�،י�W�U�k�����L���m���D�7��$��"�j;���w F��Xe�1J�L.p�s���I=gb�۞M-/}�sCߐS]Ǔ�X�Ի����WB:�[
[	�r�4��Bc��?�&D,
�$�.���+�k�ZK/i�k�0bp�g.�Xs�zʄ��p�����`Ѝu)R��ܩ���Omf���isoC�����LC��3\�i���S�t3;�;p��/�bEE
v��Q��|"q��"���+}�"x1�C�]i�����7j04��ܑ>A�+D�#+��h�8�2�����A�N�E�'w�u�Y�&�Y��\�hB��j�fi���;tE�VH�Ԝ�8�,"���ش�G�K�(i��4�U�L��M�Z�GĿ�B��;�����Uy��t�o$mGV��R)J�\=�!�@�*#�f�Lj3���]�K	"7������iiꞷ�^:����� �K��R$oKUO���爫q_HQDڭ���b�Z����������Ur�k�?�aR�}ִ�w��L'!\��ёF�)�S[	�(�"��;h�0쐨Q{j�t@�[�"p��2m�Ǖn��$����rE�y��liN2��.��pɰ^EB����C��51�b�pA����%W�2�ۦ"�/N����>���C4]wk�?3ԑ�6[l�n�u�_C�(U��
 '{���L���FF�W�,=�*5�C��-��~
�U�^"R��Kv~��~_j�γu�9�*׊�̪��g��
*+ڡ�s�7����g�2��N�����2�fT�MM}�uL-���K��b褵�>$��)�
y��}]�i����
1Q�zp�4�uR�w��;�F��Y��B�lb�b�4#��uU�R�������'�
cwB��q|N?B�#���+��e�����Vb������9!���
����l����n�EݽVl�v-�.�kc)��"�Q$�qN��⤠��4�Ȋ�M�P�S���ceDP����i9+L��k��o��C��2��@]��]֔�=�+���B>��)�e�~8���o�~�H����'/@�|�}ɸs�Mt�)�U�ao��k����/7f0�Јﲘ��{�6E��L���Bz!՚�ި��Վ���
�
��;!+�90�FJ��H�jcY2�0a<�|��"�"�s�V9�4���n'~�c�O8E_6�'x��L����6�4�4��镀,�ۧ���w�H�u�H�ݍg]P�F]�F��G� ���;s���b�T�9��
�$~�x��K�ǵ�X�nߢ�;@P��p�.T�a�7R�Y5��Ż��Y��ͧD�wr�UX����c�{Gk?��G����AR���@	�/�<�OK���|�Jg䫈O$�F��B{�n���ዶ�lW�}U<l���?�?q̕�k�ܗ64�Qb�|Y;,��.��	P�+&����1���x4��A�^ �v���$���PS0xp�ӵ���0*�еb��`��ί*�j/���F��
p2�;᳟�^ԥ�'��б	)U���Y�c�u����Oq՞B�|�P�I���]��a2�@��G2տ/{��y��y�؉���o��u���#	'�|���L���HQX�F@�`��Y;X�GՌ�d�,\K{�~�=V�|�1_��DFe�N��O��g�*��e�I�J�`]��ab����TF�A �X��F���7k0�*U�]q�����֥���LdZ7ȼ�`o{�y��زy�%�����t���A����BEj8�����a	#�]�
V�]���7��\�����&�ոs=��WZ����L��N/�N�T=�Id86,WL�D#�Id�`H��wF��H�/WH��*�$⳺P�<���@�uL�h%�c-�3C��˸��캭��B�W�5��.��xB����r�J��z(
NͰ��zVv�1>y��������s�S�[-�\�E��ؔ�4C(|&��X,��G�����q���sDό����e�y��dϗ��^�����o�����K�)K��U�9H^_l2"}����4J�6[�� �9=L/1���dFn��$�:/!h
�E��6����%F4�,�O�j ȳIZ$��]P�����Q9
�+�q��i@�皲<dfz�R
�>r��T�T���
3�?��.S45�(y��6�F���ÙcB!����}9L.�uM{ɝ��l��������Bm��6�����y�y;��i��1J�`� N�&U�7�剃;v�^hY�}�*�
�e�.yQ��f(ۮFd&�a��u���t���%�e7�#v�/2�ѼR��mL1�U=�i�\MǎO�-��+�^\B�hF�V|�U=<�2�$㙑�sF<7q[��y�o1Ѵ}�q���8g@��Ȋ�n-��.�Z�T„�q�k(f�Ɓ��j4F�J]z��+�J�y�irZr\�����EN�](�щ���AJ�i�?%�W��MY����?�3�]�P�_��0)Fd�/Nﶶ݄<�j3�;4dp���h)3����@T"be�P�չ~���\�w�����
R��c���V=�]y�s2��Z� ��~NϗU�m���J�c�
�����"a����x�oN�_��i����p�r���k�E]�=eϔ��)!u�9��Iٓ�+q��:O�
9��Zx����'
X�����3�M�u���Ϝ��e��_�
�'�.}x�F1A2�?T���ž!�-ZTC��t?;3Z�v�[�乁�D���F�������^J�&��z�:+���
pT�n��RO
Y��ۂя�����p8lɝQӨ��QVZodz�;j�O�x�3��c��h=�@0�y˕�B=
�ǶO5h�T�Ч�O�5�^�yt���b<��_�ݿ���ޝz���l�m�h��-�G���f��xс��Z?�U@>6�%\�՞�_R�y�)ϙ�y�$,N�*a�D�~��;m�m�=�:�m��t�^�Ȓ�ah\+���"WJ�4�U[{sxJ�gpB�����Q�T��D��J������gQ��U�xmsk#�B�M˂j��-���P�6��
C(�nӪL҄�
�\�4�[�St�=���N��o�M���.i�+c��)�Kf�L����ם9�WV�
"�@HT�a_�ǚ]l&����\gT#��„����Կ��C���3S�t����r��3B${*�}��٢�u`;o�@SR�����L��}�A���o)jr�D0D�q��B�������%���9<eC
K,:A��ݔ;7@\I=�AI�]�!�P�	�3U�ԏ-�ϻ��}��馵�F�P���}6�C�z���*nP��$�I�JZ��`|�π�5�,5Dmb���l�J��3�(jJ��#��� �%�H9v/�#�&־#�,jD^�%b�Y����%�w�H��S��0�Q����ۡ})�^³A˥䍷S���t�K͆��6�Q�ށ�Z�n�nh�t{�Ɖ��������dkQ��0�c/j��:�>��kq�x�p�����1cy�N{{�e�M���3�i=�u蹾:A{��!�Z��U(1̯\���n��ms�6�2� -����b�&es��es���XF��
H��
��TZg
EC���Q1���ѴJ�����+��)�_4�z���K�!6�a�Y�['�Q������������ICBP�����78`e6`&0�6l�.<��>��^�µ��Uªɩ�_[M�ؘS'
74F�����_l��<?I�r�I=o:�qώ�)P+��َ�18y;%������r-��g`S}`��9*%#bH2�6�Q:����躼������,��oԆ�ì��>�b
/�`z�ܖ,Enl��5��h�$���C+2�?wg��1�� -�S	�@�$H��ϣ�",E���վH7l�`�$���*������4��v������A��N��
`�ᙓ��b1�W묡}"ܖ��&�
5�sJk���֮r�e�S��a���Q�6�^1��r�����_Z5������!)��d�T\����{�b̂HWTBF���
�!s���5���Nd}T
��~�[�	ߢ������#����	���k^�����^�����IW5��>�M��쳹6KiZy�>�Lw�0N�{��g����Yj�(W������[�6橑���ህ�"��s��G7Y�}d�S������ڟ���*�O+�='��"]���n�/�f�I��h�=e�O?��\'R?>��8^>9Y��5]�요�B�M�PөS�pM�v�wE�I�
���ۆ��s��S�7y���%����A�@ż{�ED��*re���W����ۇ#}c�)!F��k�D������&]!p��~���܀ORm��]j�G9Ի�k�
��N��(�xߤ��+
�F�]����ާ)>32�EY<��FnV�?L�9��֍0K����S�����!��0'�HCs"<��$/�ib�J�=#}kO2JjǴX�.�إq{�FES�k���'_o�@��)�ƥ�כ�9�l�Ҧ��:�-��@�f�&��v&m�C�����6so�'�AY]�y:��Zi҅||�~Y�
��&����� .��rE��F�Ӈ"�����t�AY���^	h3`&ά±0��nf��&С�Gm�����.8.��,گQ��DQ�w(��S�R�s��b�5�*�Z���5Zv?����^ˀ��ʁ�Ӂ�%�<�;���)Ҷ;��Ld{=)A��M&�6!��տ}O��l0��:q���VF���W	<��l�o�&p]����c�$�T`
�@EBE�2f5L�+7rܚ���{��\*.�?(q�k+n`��A����_�-�jC��u[�Ɯ�N��H�/u��7�U$�|�ٰ�
�dusxbR�Y����s�9E8( (���4r�
��T ��D~&GZ��R9^I��LL����s�#�
,xM�
���
ȝ��LN�I�qW��+���O�7]���X�J���x�B{If�:�~|��	�١���ǒ����J��o�赊�m���'�Ә�IS��%�%�d{��x�9&3�nk��/�Cw���cYFK�y�S2l�AOmӥJ��(��c��"X�_Q���P]�������%jv!:�ϒ�l�둣��:y<Kn���`B*��c�@=B���x��ǭ,ϣ��ې4ϥ��]BS�,-�2b,o����>)�E�@��e!�D������L�X��:Cs}P��� _��w5��pdܤ[����ۍ�
�^��{FT�u

Ex��h‡��>T:�QF@� ^��xz��?X����I�a>L�
q�<��}��L�S7,�*\��}�͛�8���(��~pZg��þ*
�b�ե� B�^“c �5��84�6JĆb���ՏG�OON_+'
OM�LZC��s���O�RZ�K|�"֓m��V�`�P�&Cu1�=�v�5/�]L��y�Ve�:V�
��Z�W">4�����w�%�,F�`;��)��m��-�[�wYe�D���1�m�yf�w�5�m�����U�b~f_���Ls�o)©#����=����cru��TjF�c%�N@T� ~��o:4` ��My���+�Y����c�ŝ�1X$���ڔ�a��
z!��]-h�+������a
&~FE��
	ˑ��۳iO���{�$��GI�%�V6�׌����ձ.9N#eq�UI�eĥ_�w�b�l9:�䑚^����Wl���"��'�0�Y
l�{�(�@�d��YV$�w��;�̎�<�,Q(Q�)��f�jW��"b�@��]�˻��p��&_V��0a���N�x>&�A�_ڑ��܋h���Rۓ��S[��4�P�/�0���f��<�1J
q���j��Û��󓋗?�vR�;�A"�%J���(~��$�ekb���==�,���O����߾�>�V��py?���0���83C��@�Ӝ������蒄�q�5Z��`�`�=U3|+��x���3����A��30�>97��s��M��Zh~�mQ�ΞC���y<�c�\�����ԩ��X�Kc���jZ	�p7��͊�[����H��\>�;�3�X����켩8�����`W�02i���jW���0���A7�%a��`fz�����x�'B�%9LPZ�G=M�w5%)��h�
�-W�H��5)�=ZL�N��U��t���A(bw���U#C�4���"��	a+���jܺV�I��d��|�e�x�T���3`	��}u��`���e��FOzL�ğ�Y	������Np��6��O��������
�G�6���M���ѡ��oA����IzD��G��6���m547w��͍�o�y�Z�؂^.�췘�k�4Ͷ~������ᚬ4���d˛�e�y����r�Oh�)xAl��|���\)Jԍ�5��:j|\1E�P5μa�b�lY���&y�-�~���㱄��5/�t�3b��a;�(�|&�չ��2�v��Bf_��7|&�-��s��o�M�1.*��kN�,���1��R�MQK�0�ߤ�V,P�Lx�I�ur�Z�~R�dN�	�.�d�+x�W�u��5���	=ؓ�R�+�&��:76���S��}Q��3����w^RuI�� ����q��
Zd��dh�������%���+[0fs���xDnAf��6+D#l��V6��Ȃ�W|�[��Pm����a����k5�T(��3�8�*7���Trq���Ͽ}����EM��y��#��1%�h�O�)���uf�8c+޼�[�L�$Ѵ�_�|$c(m��یL������c\Χ��!6
p<e]�`����Z�*n�:�谠�"ݧ�:�F�x�ꃧ)	P�	��$��4^�O�	�>+6x�_���3�p9o�ߦŨg4i"Iq��Z�
�̓I�U��VYaE��^�ӹ�Q�Z�הE�~����da�+�k��N���d�-w寧@'o�C�4��~\�t~����7CÁ�[h�=�P��-�wԼ�2�T
�d���^e��Q5�PKѫ�Ҟ��}����c���A'/�fG�@tfF�T���9P)UQ��"b��`���)��q�P^�o�)�*���y�I��"�d�����->{��}9� �h/�Hw��X4H�C�Ȯ�X�+/���Ya��85�!�C��an0;ԗOg(��V���u-Ѕu��D<�-î��ont%�]�2�yh;�0a
�U9�`Ѷ\��kK�*���>�Q�Ƃ
S���3�`�K�nJ'k0!�v�E�IlJ���0���r��%ڮ����"L����������Zj'�Jy�\h���:��3/l.�$��m`'��4�#e�&ڃ�6�V6���_U���{�m����R�y|��N�%��1�V]y!��O���y��-?�Q���/yO�mȁJ��FCC|R�nkЌU�ө�@hN�)�|�L$?�?刏���b��:�n��k�ǧ�O��Wi t{����M�~�S��P4:�������0!��__�����'����p�\���j�T��I��'�w���R$��l��e&��~ɑ�&��M��#�WB�P��v[��C3v@�z��)�,��y.3�z��]�-�~ʻՎ�X�
�[<2�-&è+w�.�x_b$�C���A�2�ѳ����	���M��7�z�,�e!�z¬�f��r�%?��
l1�Co�mUn�J;��Z�#��s|�.hB�g�0�}Jú�^U]�=kwB2r4cߙ$5y��w���]��8�j��/?�٭�}*m�C�My��	���q�(��Y�N����X�3�4T��X�]��_�=2�:إ���ɐ= ��,RO��J�t����9�U��������1<iA	L��L��)�"�&�3�U�j�;����hF�2����r�QP!����AF����6���+5e�0����q�
���s���i3Ut'��
�:H�ơ�/z�#!U|j$�� 0��}�-Ic���}��)k�W N�eY\�plv`��"�e�Y�	�AUE���|�.��A�Vs��3ִz�|�6��J�p��Z��G��]S��L�@��;�Z�����W�CGd\�3j�E����v���2�rbՑ1�i�����o�'?<���$C���/Gn�@�.3zK��K�ވ0�K��r����P�<�=�Q���r��]���Mː?��nܗ�rhJI���x��(k�F��l>�7�)+m�g�נ�e��0�bXЮ�w\B�N�`�3l�gœw���X?엝.U��nsw�}�߅R�/�Φ�:ܥ�=:(��V�=Ht
|,⦅@R�"�P���G���E���t�!�MfA�m��u�5w�ks�x��
�X$��ArE�v��d���b�isB[�����d44��3~���B
����A��vqAx
�r�A�]���c�q-$�>��bR�j�� 7��2G�(2X��x�.`�@�.C����&��?��l��*�0�G��2�����L!���s�T�X���O���V�@�A���$y����rVI&�]�
�l,R����ZV��L�.���0�Ev�2|y�D��Vy�;S�g)�Dz#��ބ����J��9�H��ѵb�>�'f�3��w�fq;V���rD�̇����\�ךs�83��E�斊��F�n�oQ��#��.�o ������p;�Iw���G�w����:υjLB�E��� �`�L[����s���fg��Y�ۙh��.r�q\"�4�#C��R�ߓT�q�A#��4b��k*��� ��������)���:��4Ē�D�&;ϋ��'N�n�j�V/����h�o؁H�5Ϫܤ����i����A��܄��i���E�e����/�W�߽M�]���}�������������ɻ�s�?�*u��}���]R�>g��hk���K��o�G}���-�5w��ʗ��o�_j�������NBG44\%5ML�[|\p>�������@I��9�P��%�<�kʼ���4��S�y��z�'G/~=:=~�"�p��y�������ҵ���ʛKQm?Ns���3	َ�e�F,	��;���.zv������]��pj�@�A�Y#~S_���e�z��l�&�Z���R�Dc�N��UQ2g^8��00$)px�hx�G���H���*�ը��2v��¹��>��"+O	;��񟾻89~��'�hjLD����'�'�d6җ̮Zk�*"ʁ�i8�Dc�"�c�xԲ)iYq�S�}��L,:�v�+a�+�ej7�E�0_��f�p��ĕ�Rt՘�H�d_.Ud'ϊ]�+&%wCp�RLJ�߳��蠼�r��ng�A��\:U�0-#������;�Cs�	�ǒ�k�r����9׾d��>��VSw��VyY�\s�J������6,��(�������bhԏf�-8��U
kW�
e��l�m�z���k&��
���"
f2w~]�X=�"��5>0$�߾gvp�����a���D��y�N�B����I�IJ�d�j�۵�֍���@���a{ݧG[7&���JƷyT����-a����g=�{m��9wp�Z��#��aD�~��\l����񉂕������Ё��Y�9�A�|��dz�uitu7�u�~;Km�Ԗ�2�:5�$�Ț��-�G���Գ��,��j�>Us7[�zJJo/۶|u9B^Q؋�� �x(,�b]�+9Ҳ/钉��H؂���C�ܩr�o�����8�qTܧ������%��1��ʍ��d�.��q�	W�Z�@ؙf��>'�ըB�=US�#�M��Iv^��m�Wk!����Iw��t�
e��-gڨG;�u\O���O�R�>�f��o֕�jA���5}u�Ǖ,�]P���`��|h�z@�-j����l� |ǚ�UrF8��k哘dHNMz_��2��ͣ]sC&�n����ZK�V�ǻ u��1��]�W C�� ��~�EV��z{ɂҪ����U��+�l�~)}7�b6#�\xD_^�d{W:��J�.l�~_��C,�?�A-U�$T��(71�����򄣉A��٠=>�@{
La"L�����D����v.u��|�V*�.�j#.���?V����:����%�U�jq���4 J^YzrQ��N��Y+#���������G��)Ӂ��);���wz�Z���8���D'd��
&(�∉�JH;�૤E����ÑĦ���p�b��:|�V���3�5DD��H
Ow�`��.�t��FSeq�����M?�t�R�(mń�e�)��Q�?Ԗ�����|8�d���a|��^t��(��l��*�ʊ���q\�c�K��=��PhDX����ù�!?/��6�������c-�n��6�Bl4�;��v�t�>��is;mLx�:��(:p�
��'�����9�f�ꃩ�6t���c��E'�4��Mf^}�l�T���x�iKf�a~<hɜ���^[�<�9kɜO��=�E��:<3{��g���<D�PK
�MS���1��z�litespeed-cache-en_GB.moUT	8ga8gaux�����}�\U��K��J���I ��f:�H�$6���@av���y3�l�H/R���C �����( 

R,(E��s��73����χ͝w߽��z���w���^#6��i� �͚A0uv �]�� X�ҕ����vJw��E��7�`mJGS�yJ��tJ�k���Q:��є�iF�
j����}>��
)���Jo�v�<�nO��(ݕҝ(ݓ�>J�t+��m�~H�Le(=�ұ�>H�n����Q�n�	���nE�(��.�t}���Qz5�_����b�~��
(�+��(��R��`\w�����zJ�H�;�(��n��M�Jg�����x(��aJ��t��%�eJ��9|���R:�҉�D�$JO����B��:=4<_=�lj��K�y�|%�[s�=�/{�^�S�L�zЯ���-J��ż<F�y��nJ�}��e�agJ7�tJ֭��XB�^ՇyxV�_��_�4��Շ�Y?�q�D��(����Ǻ��G?�Σ��Pz<�OS�3���
!8�m��5��~��hg�~������������Џ�8���izV?�}i?��������~�Q?��B?�N?��}���M���nD���Sk�8@�0�J�rB�s'��(}���\����fM���~g��+� ؂�1E��W��J�>�������.�_�tJ7����k���B�ݯ�/F8w��t����0E�)ݖ��%����9�>ZB��%���mx~�:�PԿ�P|�Cя7Ÿ�2�1���٩��j/c]�/c��/cݞ�t�_�9�j��w�u�c��Q1���ya���3�|=c��ݿ�߈
��
�q�>K�|>+�O)%P�[A;mU���*�TE��K��߷U1����o����b��Vź}R�|}e)�w^���b�.�8�]��N�Ɣ޺��ѥ�P�+�A��� �3ļ/�>v�;op��p��)���a�^�y��sy���˰/nY�u{n���2��`�9�ҩ�?�p\0�q�t�?�~�{�Ys9�������qNv\�q��i[�u9h9�s�r��s�c.��.�n�h���X�?j{]�}����чa��v�g�a�o�0�?�0|���0��=���a��ˇ.���	|�þ��p���(=����h�Jg�~8��nG��#0/ˎ���~��X��8�#Po�#�.��G�>;��#1�����<
�;�u�s�(�ߪ�'�q_H�LJ�8
�Q؏��k�t�Ѩ7�h���h��C�F���X�!J�� �y4�c0/���M��)u,�u�cѿ}�����X�wƱh�bJ�Pzݱ����<���z�-�++��z���/J�����C�K��x�=��:�_8���qX���C�>9�mx<����x�p<�}��z���<�Ҙ���>ߙ�i�	h���?/:߽���'`�����+'`>?8�d��<�D�'-'*r"��q�{"�MN�~�K��|�)��=y2�|2�='����ns
��)ȟ����)�g���q�w
��S�����~Y�q
���)8_�O�>�T��S��;N�>;U߯<߹�T=秢�?���}�4���N��}����4��Y�a��?
�u�i�'���~����?������x�:x��N�=5�t�ݧc��;��/�����<����y�)�s;go;���_��}���8�P�/�?8x���f)-0�;���l�;��+(��٨w�9��p��y�n|.�5:����GD����<<�>p���0���ü�t���0�����a�7<�<�|=��c}�9��܅���Ǿ�ҽ(����m/�>���N}.\�������{/�9}������W/�y��B��5�{!��~/���/\~�B��]�tË0�-/�~��"�)}��w��
V��s5��
�������w�
��h������������^���M'\�v�PZbxx1�����lw	���KP~�%�N��ے>/��'\�y����.^��%��_��G\��ֻ�s)�eҥ��9����KA7Ɨbܿ�t:�s���^�~�x�M���r�%���c.�|��ϗjz�e�G~x�����e���x��/N_�}���8���1�g^�e���/.��x9���k]����
�qWO�
зg]����{���iѕ�_�]���w%���
��T�}%��>��U�W��WO��*��*����Wa�\M8�Wc[^�t�k0�V}��5�W��;M��|
���`�߾�ŵؗ_���G뵘���ޛ��O�p�JG2<���kq_��u-?�:����<o|�y���]4�~��ɚx�[�uh���0�g]�}z�u��������~�D���X�M��zmw=�]�v�^��_��������/��z�w��F��|~y%�y���_m�?���E+�~O�ļ�i%�{�
(��
x^�i��w�
��-7`~��7���F���]�v�>I�F���q��{#�����X��o��M�k�o½t�M���	��7o�x���:nƽ{��X�ތ��_Ӈn�����
�n�<�M�B�Gn��-�ו��޼����nA�F݊y�y+����ݳoE{�݊u��V��Wož}�V�Wp��������~���޹
�]�
�=�6�k��
���۰^ݎ��v;��;��1��|�~;��y�c������1�;4}�v|��q�~;���;p��pƷ����;���@?���z����܁�_�容�����w�K}�x�w1�w~���wq���m�=�)���|FJ;n|�ш������>����p����~�����~�q|���wb��(����rٝh�w>mw��bM��x�5wa<{���ƼM��;�n�+w7ֽ|7���я���wc��n�Ǔwc�ލst�?�!�b]^�!����Ψ{����w���=���z�x��=ا߃��V�@�?y���q�������ž��^��{1��{ѿ���y����b����n��K��n��>��7���~��_�|����]����?������Pn��c�9��Ǿ���pO�>z���������Z�1������<�?��� �ѥ����'���b�|pu�C��1�ޮ���C��?~�a͇��0��0��x�␇1�>�~�0���X�K�y�a��Ώ`�A�����y�8�Կ��vM|�x����`^F<��1�Q��z��(��pգ���G�x�`��П�c���þ9�1���ǰ�o<�|�_�q�s��Aon�8��y�~�>��8�]�8�;�yx��������!�pa�o~�G��O.��O|��a�o:��^���q��c������OP��`ݎ�	�)�&��'��|�I��uO��۟D�G4��X�>���S�4?��#O�?o=�����O|�i�C�Ӡ�����x�i��f�`ު�(���9�`��z�|�3X�g���38Wj�-�E���9|V��g/nz��K������S�^�4��9�?�9��{��~�9�C�g��������p��?=���q�~����r�\��?�=��_`�4��q����4�%������__y��8���߈_a_u�
�6�+��1�Rz�WXϋ~����p.��B�>�<���G{}�c��<�3�Ǿ>W�/�4�y~�[��׎/`w����6�5��_�5���|�����|��!/b}����Ͽ!������|�)�%���x���s�K�����Ϧ�#ڑ���?��#�=�k��c�w�=����1���+��2��_�87}�w�+8�W��u~���w_������#^�+^�'_E�5�����?�;/�A�<�a���pn�_Cz
�j�?bݾ�G�������yW���'��ܟ��n���K�>���ۿ�}���ѿ�^�>~�u��fo��o��~~�
���
�cܟ�~�џs��s��?c�7���:�҈ҟ��1�M짋��9}�M���o�������~��I���-|�0o��ss�_�3��}���b|L�y|~�&�����
����|o�wGf��s��]�{�]����:�=�c�{8/G��v�{��羇u��=�����z���֛���}��zC���8����~�W1<��酿a��;��G�Pz�!����9��WN����t�?p�_�tM:�ʿ�O���_�}��뿏qn�>�1�}�i��~z_��U����^}�}�}��KDn�����s�����h�c?��o����z������3>\Y������o�!��Ç�W���O�hz��MN|O���0�k�ql���ᾞ����aa]�p�a��~��.�X鮏��c>V��cԿ�c��cn��c�o�����K������^_�_����x���n�	��O����_�	�փ���y�ܷ_
F�����Ϡ�N�'(�1B�p;������&�<߻�!�u����(�t�Q#�|O����	�r?~H)�ˋ��<��R���G����y������5P�;��z\B)��)�q<J)���(�u\gM�ߗR�Q�筰&�S��k��'4�)��n/P�����9����ƿ��/g�������k��S�B����Џ(�Vӧ����[���>����G^���h电��kc\W���]I)��/��y���{(��}J�~~�R��4�3B��2\8�R�_O���/(�{�5Jy~��{�uG��}]�s���w;��/���}�O��/(e}���E�������P���9{=����(e����27���S��˔�>�V_���E��K)��/b�~D)��u[F)ߛ7~	��痰�k���)�s�����^�(�{�}��vJ��e'J����-����7�<\��o�����O(e��񆘇�5��!��E)Í�7��!�u5�|O�bC��O6ĺ���;z#�Rև�F���)e�䃍�ݍ�������)c�]�1ڿfc����_��6�~��>�Sӑ�1�/��~=�y�h��G��-�1ރGc��G�F�g�F{��_9�t�h��)}��h�����.������WuR�x�JJ���	ƿ��{m��}�&�O'o�r�&h��M�~�m8��M��|�/�?�R�C�M)����G������_�z��)�M��l
�X��:iS������R�����pv'J�^<�R��.�*��'_�<��U��t3|�뛡�6ø6�8���s�f���6ú����X�i�2��hs��7��ys��˛c�����1�������]������]��W��;[���n�u}�R��S[b<{Q�x�A[����D�Oo������ψ���������
㜸�7o+��%[a�3[a݊[a�N�竴��[a�On�q����1��א�y�)���Q�x�9)��l
�����)��c��Ơ�lJ�:v��}c0�/���`��1�b�X��ܱ�7�n�E������=�1�9[���[������[c�����lk���[cwl��<�5��W[c<�o
x��6X�
�A�-������wմe�Á۠��6��m0��m�}{�6��ǷA_��l��3�q�w�8�w�8�������}y�8��P��ߎC{�o;B������m[����b^���������l8Q����x�{ۡ~v<�<�s�x�w���4��x��o�c���i0�ސR����y�&`?.��hz������	����O�z��Rև�d�w��}�G�z)ez���1�?��{t{����_��݄�GS��g�	�	��V��M�W6��zىO�RVX�/�Q�i�gl�wN�}W�ͤ��4�wX�};�~~G��I�)��B�󿔲>��G/���<��&��Q��?�<ߝ8�=m2����X�oL�|V'����7N~��d��
w��n��~;�룔�>�۔2_������z��Џ3v�w/�	���?�Ͽ�	���N�Ͽ���;+ް3�q�Θ�vF�ޝQ~��8_��}�ݝ1������g���w�~�u���]�~n��]~���cZ�׻`������/���+���]��ٔ��{�]��W��v��rW�S��
|�]q���n��ѻ!���cJY�݁���u��E_Ǿ>��8�oR��ݦ���k��>�{���z�P�0{LE��(e}�����JY��=����k���'���~��7ƿ�ޘ��{c����9P���~=go��
{c}����޸^�r_���w��}?�R�c�N<�n:�ͽӱ�~�����9�h�8�m3��3�3p}t��?��}���>��13�g��>8Q�sfb����~�c&��C��>�S3A��=��������}��Fͨ�Y3Ƶm3�߫�O3�e����q�.��f��"�,|��z�l��d6����~4�:��l���#-����s0o�����`9�k���9X���`�<�j�����9w��'{����E?�7�uyr.���E��Z0���9�i������ -�ׂ�7H)�}Nm�����-8�o��=7x���>�����x����yX�s�a�_7x���p>7���}��\��Ӌ�`m֊��hE�:Z1o=��;G�➸���V���?r>�	�Q~���8�9�=�Rև�g>�qU��a|���m��A�����q�}�����ϕ�/o]��{l�����}[˯�8�JYb�v����q�v��B;ʟ����v���X���j�x;�g��Ҏ���������//�>���p!�[���������./�zݤ��|���t��m;��'v�_�K�U��;���|o���5���'���utb�;��'u�����+M?�D{�w��;ua~gv�g��_\څ�?��5}�|�va<S�ޛ�㚳��a�\8z�"��'�^�/�i��?T��z_�{~_ܻ_\���k1�����{-���틱����S��3����n?ܛ��������p�~���d	��f	���%�7}K�o�Kt��`�X�vn��-���z	�oK�ݑ��_�����c�.����{�c��u��F`�n~����&�|/Mg��t��>t�Ɋp��y������?�\�@���1ϛ��=�?�ۓR��v|�����|��7П#���u�7P�o`�=H)��Ci����>:�Rև��7�?h��\}�mǃ1�ec�G�q0�w��?�R�|��ƺ�ˠ�����3Xח4]�x�����A'�ލy{��{��K7���X�u���VY�_����,���b˳8Gk�?�0Ͻ9�K1�q�C;���V�n���p>��zm��اۆX��!�����P�Mˡ������E!�������f��m�|3݃q,�;���=����nأ�ڋq^�|�{���W�>���C��������)���z�ԇs�>���>��>����2�q�Ǽ.��|��G���׳y��+y��?�ڇ`=�����w:A��!���!����y�Q�=H)��<�`g?���8����ʏ�Ǿ�G��Y��G-�X����C
*?(`O����whw����������G4�y9}�����e}���1���&Q��"���E��G���E�������a=��x�?;B?/�@o~7�wߎ����q	�v,��٫��P���U���kM�..�:�慇��wQ�r���kp�2��2�(e���b���c=/�Q���Nxޗ)e�por��+X���hgZ��5�W�~�Vq~.����*���Kџ�����,>q�R��o���{G����X2���~P���p����Z�����c�2���w�]�su�2Կq��]�p����'^�1��@)�U_h����R�0�.G�
ܝw��Q�an=������=p���A��r8�ӏ4�#�/ڏ��u���5��G�^�H�[횞y$�B?=�զG_�(��S��w�Q�W����Q��
��>{4��kGc�f�s1�h��ÎF�.<���G������c������F��F)�ä��<�{���c���v觽�U>���G��X����)e}�K��{��oa}�y���^I)��|�x������'��\y�	x~�|g�1o��r
JY?e�I؟O�|�y�k�I���NR���#D��d�;��{c��s�)ؿϟ�s�éX�}O�99�T|b߮s��p�p��9
�K��;}�c�/:�t��wNGھ�sun�6��Fg����g�g޽w��gnr&����u&���gb|[��}|�Y����B�'�<��Y8w[������(���g�kg�?�sp���<_~��^}���s𹘏����4�;8�K�����;h�7����y�KF���]�����y;�<��7��6?���|쏓)e}�W(e}�e`�]�s�}!�wم�#�]�s>�"��z����|+Џ5W�|a��F+��^�u���K��W�
������B}�
��۴��)e}��V΅c��w1����h�MJY&�d��Ü|	�㺗_��R|w�K�/�p)�w�RևYz)�~��?/�/����a�w^�s�e��\����[_�q�t9�\��u��c_\H)��u9��Wng��x�
�����[]���v%�s%��W�ϕ����^��U�KWa�w^��>|���U�Oi����WN4��YWc~/���j�����}���[��[��Ϙk�����k��W�A����w7��ӵ�?�Z��\��{-��~�Z��I��^t�7����u�/�����c^�_��7_�s��J���+A�,[�����]	���+��J���o~����ѯ�o�|��F��o���	��7�|?{��&7��܌y��x�͘��oF�;o�:ox��#oA�mo�z�o���qƱ���#n�:���_����[p�s��ƭ��ܪ�OM3�b��b�����{��y��7��t��!j��ȑ�M:������>?2��q����B�-}>���Q��n���5��)���Z�Vz�5�M��k���](M��P���~w�[Hu��{a$�F���͔���/����w��nG-�'���H���i�i��q�+�8��z�߆�#z�s**�az^D���籣�?[��#����2�+(����vߠ�T��Ӽ/�3���Eڗ����2_�2�m�~ysDrM�T�g��P�e_�}���������R�/����qbm��鳔?N�y��W��=~$t?����ۍ�,��j_6պ��,}�翍��֣��/��7��}����
��o��╹��Y�+E�L�[��P�ߦ��/��PM)��Bz�gJצ�W#Y��Dz�2�s��{�e�otG�n����}+�}E�׹��χ�{:�o{���:�7����
`��M�N��Q�^�f��=���ѧu���K�W��S�#�ZQ�z��y�o����Ee��rE�=��(%p�Ke�a��?B-�����GB�p�&���?��|���l�{Z�lGy/�����ޣ��j	��#�?l�{��j,׾�4
z���YW@��p��?9:Ќ�n��>G�w��,�2��#�W�{�c��y�r?���W�2w����S�w<��5��:�~�oj�F�{}_����y+�}4���O�s"��5`�!{��b�F�F@����׀��z�n޾��>oK� �?t���_��%ڗ����չ�O��2
O�_�w;P��i-���]��ol?d��ޟE�;�����J���͊���r*�5��kt�ף��ڇ�(� j�e�l�3���S:��c}�
=w��
�7���#a7f�;N�=������+��T���o?������W5���|����B�/��x��Y���Q�3x��k@/�dj�������C���h]歆������+�.�(�hv��kF�^�?�����0�~���`�;��)�=O׺�6���azj���'u��~/�9�#�B��߯Q[_�����:��{K�[G�t2�}���[���ܞ�{���X���{���D���3�y�n{��N�f�w%���B�^���,���@��9�~�B��<N�z�i����)�Α��>\����ò<�Oޥ��N�~?��oּ�R���'(dsl�bzw�ׯ�Nyp��WǤ2���]��1�ޘ�J�-Z.3:��P��OSz����҃�칼?���`W��Û�_е7��K�[��'t�7�67]CH����{��ΣX����uXGe%��v<Su�t<;ӻ�����Q��3�)|���뼬K�����_G@�=��t$���+5{y>��&��匿�(��Fm�A��	��N���j�R���93
:����T����2��m�Au�7�a����i�}t^f��_��.z��Hج\<
>��S��H1M>Gm5��鯟���F�7���x9���H��X�'�/�/����RJϢ��~;�8!�򦏀��b�=�~��#�-��:�k�
���������0>�:T��#`Wq�_�J�ڔ�O`�8��xl���6��dz��
��K��Dz��y��OҾ<�����to*w���[}��ҧ��
�w0�_����u��޵jY�E�
����w��?k���9To�U�~�����Ƿj�*��.`��~c�����
`�#���@�}�w3㻣`O�/�}c����w�ޢ�^}���;�ď
������;��L��)o#�},�_к�e��ib�#�I�U3'-�^�w
�_I�Q�s)��������{t3,������[��'�ٌ��wG%�3������2��#a�j����ɺc����Пw�z�{���݋�3����'PZ�r!�]L�k�Oi������x����L�����A��=�_{������y�T�/�<��ލ~�Oy���=B�y(��\uQ��3��������ֆy^�:s�>�����idpo�K�e\��o�w�9fXA߽^�1nCo�2
�Q��x���b��Of<��d��4������Tn�!xO��S'������k�뛆n��5��C��J��w�i��7���f͹�'�<�w��oh�M��wy^�o+����F��o�9����0��Zf�q��M�^��u���y�vQ�O����7����z���uP�Q��yX�8;��;Z����lz>��d�w�W��f���6[R�c�]>�T�@*s5��0,�=�_�c���=��W|��M�ٗ��8���ߚn�w����/i?���s�~��W(�J����g-�m7��=���7İ��1=���KyY�M�x�d�k�{󙎤4�|�E��>��𹦼~�;�`�}�9�F���;gk�ԗ/R�u�7�W�s�c�u
�Q���)�}ȸ���I�F���^3*7u$l0��;�(����߇�X���+ǥ����:V�K�v���1]M�zO�ާt}�}��Gϳ�̇��76��q[�4�1�G�0^�8�ֿԛO�#���6v�WP�2����k����o��C�#P�7��0�R��л��[����L���i�~��s�>��E��	�7D������>��]L�Q�!�{z���#aw�(��3��;�ʟ�ӟ��^��1?����g�]�4���#�g�g���< ʯ�}��Wb���*7�~?@�F�^�(�q�t:�?�x�H؝���3
v��g>�~��r���5��Oxi�Q:�2��=�`��N��l����?��������Q��]����9a]魘g�W■)*7�q{J7���~�yU��i��76�w2C�΃iEp=�uO��-�6�����Gm�G�ޢ�Wtojٿ3|�������Ee�a8@�:
���k�Ŕ���@j\���FAjf&��*��]�*������;#SN5w���Q�?��a�8U*T{��Ұ�bj܎�W���a.����<����[��K�EղIc�A-W+��%�q���9����U�"7�=�B�*F�F&��.��D�`9_����Z�?���@�7�?���Fa1����GKO�;���,d�4�L1�ʤ2�j��*W����)WR�J*��43��@7I��|9��*Q�;D9���|���d��T����b��9�����|�7��ʼnQ�2@?�L�ЪL묖J}���:0uRfZ��y�=��^�dz�a��q��rس�X^���"�͇�n�v�5ʅ�L�Kk�J���Ri*B�
+{�=���)���V-�2��A���vOk��8���`!�M�:�{o�|%OÙZ��^3q���r��a���b_�D�B4H�Ne�\H5�4W��B�LE~�����hi��!���
dh��aռ]�pQ��t�Us��X�i����|6��T��J#IM��U�U	��٪,K_XL-�ʹ�rǼ�1��:�E�R�����3����gi
h�"�nY>)\�;���THY�]�GZZ�FwH]��
g��҆Y�[mz{K0=�
aYZ��K!���y"�3K3���s
Qw�PJu�~�-r���.�@��r�"���Ym�E��9K�ȇ�i�V�!yE�3h=��������PAJ.���j�,��e�T�Zp\Z�S��!��K3��s�G�3�TxS��B�4�/D���݄��JXƿ2�rʧS0k#��T�'_�ǴTfJ�eO�|�(�3��Ĵ'y`�*B��]��>#T�'��Gg[�������5�i�
M�do�™r�
5C�*g`��J,��ez�r�z�)k{�Ĺ�'S-h�f��1����fR�Q\�S��9:�R���]Uc�`���k�S�#:%�	2a���@*�+|��	���L���.S+1����Az9DK�(W�V(z����e��{=χV3�J�2� &�Э��R�F��Q��)�=���y2C|H�q(��D��+Ae+娐N-b�B/�P����]*,�o��!�^�Ws��s�Y�{�����E�y+ĉ�tR㸇v�P:��m0��̭����T+�IZ�n��I_�mi�|�-�#D�J/�{eV��m^�L@�֔G�mN�^
�ӈ�!)_��kJ�����N]���*�ܥ^eu���O���i�~īll��._�8]���"5b�4R�,���Z�V��G�2Aե!?F�Y�L�Q��ΐa&���7{G�@�d6�k�v�|�MZ$w �t��ö��*/*��	p��t�b�.$J�D�<�6#(�c��3��ݘ؝�O�W�~I���%P����2S3m����������i���E�C�n��+���[�%����n̠��K�U2r\R�J�͞K���`��C��
ݶ��W�;�}Q!G���N51����,X �� 0*b3�p�ѕI-Þ<AX��	D���h)�k��CkT���L���+pק��m�ߩ\U���3
f0ԙ���������R�
_�(G���gP)�,���B��?�(��I��'��ݝ̖����L��(@����p���J�7}��]l��t��Z.������e�\�]@���2����ao;Z#:hC��Kn�0�7XGΕ�|o�	���#W�@,�F��h��pa��įBF���"��eM�?�7
�_�8W��$+�1go���΀�4�#�������x��i����C�Q�,3@���FPst���j���˲�*�T���3$?]㝝��u��{�:"O�g
QT�/$�-�r���%{n���Z���0�4��U�\�igb��y7?�eև���g��ּ��ή�κ]io���y�!���3M�h��S�ir��i4ś������ç�g�a��m@6�\��BT���a�tfi���Z,�*3���p��U�u0�'��B�f�u1+��:��^.0W�o't�����&�Q�"^��1Szt��iH�������	��6���9j���Z7�*C���u�eJ�1V��5��j��+���1&H�툞|o��k���`�n~���ksJ��үq_T����C=��!�L1�p�A���L|ꯙB.�S�3%�YTJ-**5�K͢�V_p�}T:2|Ž+]@{ci��z�!ń�c�&�sk�+eZL^P�m���,�F��xU_��5�yU*W�BZ�Ǐ�7l<\V.�p��{߸��T6,��⊡;��`>34>��D�b�+���|N,Pbq~i���pbfWY�f���R��� ���Ћ�o�
�	~[�_-D�����L����f�/s��K3��w�����h�P��pIH�-�<7����fUO�u�S�.f^����Ӹ�<�z/�tlm.��Yz�Iv��"J@LO�,�6d���FL�C��9T]�u�K�<�Z�5&�Uc`��=�O�'n��c
ؘ4�ӓ��*��2@�9�G�}D�B�D�p�Pޝ�?EN�>����3����2� �7ϔ� mj�J������N�Ɗ��$V�ڢ��3����<�S/�XS<n��fx��ܘƯ�h�^(}�/�G��"�A!�Ǥ��N��ϾIʣ��W�R�Bϴ�l-�b4k��A@^�|G�-3�ߝ`
2�]s�����j!':]{"�QC|��7�3��fR���a�f��/ܧ����R���c.3�.|0���e�M�R̒֟B��Zd� [-�	���oYv���Ł�MfF�g!a��2\���p���[��%ݜ�^r�;w����Ҡ:��[	3R.��'o\PQ�W�9m���c�hvWs�9��E���k�U�$�	�&�ymʅ��^�}����ɬ^���|f�<��8���;L�#eᖁy�ծ�����F����W���p�m�6�rmݽҍ%�5jlJ��[�@�~��닸\�{���44=�^T�$7��c�l7l�S~����>�;�Z��#��̀�K�7o�ꬶ��V…J<X�ϬL��K9r�A�2�\�0����M��Y`��et	��\�kE��W��Д��Z0+��ZY.a~�_n򸨣��.��h��a��l>��0�$ڕ8��s����Q��&�+���f���i�h#��r~)�$Ǜ�o@տ��`2��"D�)���:*؏���K��৐v�*�_C��aW1�i���9����-$Ьz>6�6�g�Ѐ@=���h�� �A��C櫙�@"����y6�siHC2qe��U�1�2�u�@QIX�i
�2,#�R-3&L�U�P ���rB.�lu�o$Y�k��e���Ф2���&��*�����ۛZÁu�8���(��
��Mj�C
X�y���LL�a����V�8}��ϭq��6��k��vŐ�2�2X<�	��(�'M[��!Q73VJt��yRx���������&q;����)��RH�PgEt�V�Pδ"��|A�j2�@y!��D��:�Bm]��B�js��;�Wp�|B�?���Dpho�Ā�R4E���n(Ӣ�[�`{����,�NU����ňPsg�Ѩ��,���C�Q#APF�-f��L=7T���.[�"�-�[���E
လ�J�
�G���s4�G+"���0$("
�W.ѧW���T-���W���OtFj6HT�!�;���+�=S�B�.��P�͑�0��"�,�e���h���e�b�8��417��0Wʱқ��o�!&N>���bvWiF�	����3�Z%��L������1Р��f�r�*E����`�3�;�M���Sși��M���8��Z*v
�$�5�A��N���Z��4�ba\!��g�}𕗽&[ȗH����F~B�r8��2!��9�y�{��b"�o$|1g�aᴼ�fI���ȓM��9H�iD@�K�	+�����m21�}@�(�ͦ���b��f��"c�3�	�Yc�ȹ2����S"*%�:�ל�	:�t���ݐ��U�!��ܧ���9�P �J�����!�|h�5C�bRa�f	]�br���t��y�����N���A�����P!V��*�i�Ӣ!t���j)�
n�#�S
���Y��冬��w����U�/D�F�
\���[�]�ܽ�|N����Z��ϋ��
> �<��t�7+z�Ǥ:�N�ƕ!k����{#�f	����*d�~V
_��E½(f���< �����!����
��ɡ�ǰk6�Ĺ(D=���75��8�N ���P-X�'�`Y9���lFn�L��a���H_i�+yH�c��Ղ�2�5=)b��(
?;�l:ct߄��:��v�&N��L��!Yם.P���x����K"O����§�$Pʁ�*R���͌�\�0G� �r�R"���I$�Ѳ4�S��u�q{q�8Co����h tÀT�_�t0&d]�j�O��~��E�'RC��bO�R��*'Rn;��z�7�V�b2����L�ߘI+��ޙ-�4EF�p��Y�Ϝ�G1۲��ډͯ�;i�1�9��U�^��9�M���@�U�fP���i)���>޻|�_��p�w�1so�E3x�cUb�
��ɰ���F?X;��99Y_��2��-5�w���RCỏxa��!g�3x�oh�PV$ڦq���
��j��s��#�m�%t-�ƈ���%�Z�ɓ���{����@�Z��!��5�55ݢ�]��%
oTq�!��[hn��o�/|�3i4c���H0/�Wb�js��cύ�_t�����/K��#����f�P�������*|��E �Jj�6�"�3��Z�b�Ya�i>R�g�!Jt��5�)��@H�:�Z�p�n��u-ۉfd,���UvX -=	�R�N����(E%h������NI���t
Ͽ�}L��L��rL���h�$-�&9m�|�M�0>b_����ֺ�=G}�=�J|]�Ȅ��3&a;�si��$��QP�n�;&|Z	�Y�@yfD�
w+���N�Di��\œ=�}�� �fU�	M����bu� ۝�%F�v�i���
�RW匸�T9^�����ۯ�<�Zp���Kjxy-+�%Ϛ��Ќ�?��kAY�����n�%���G)�1�a���xoz�̜U���!�g���ق�?�f>!ˢ���*��O�]4V�'bS���,��V+�t	*7�'��L]d�D�+���(S�
3rh��G[vH(�b<�ЯaP\Fq��~�KG�:���N(DV��i2!|.c�����h���hAk�(4�]���H�Ŷ|�#2�p��$�>P-T�L%�&���&}4����Ȕ�b��a)� `��#�PB��<iĢ*�
�k{�RL�ȋ��j�6]�N�]@g�z�]�V�
m��[�&��O��R�%��W�N�Q���2T
�U�Kƥ�T��s��"j�,�#���3ͅ"W�g�iJ-<��	W��[��:�,��CV�(c���47�Ծ�I&X�nfĹk�3�����р��RnI,�c�btJ���|Gî��_sl7#����n�����X�و�%US�Nh�;H�*2`o6x&|�y�Ē�	&b3�N�1[`�����g!�|H�))j����ՔTi��4 <^���mG.E�ҩ񭝋;y��	�yE��/�4��ҏI�z[�Y�o�NŒx��G'��,Ll�N��L5a�u8v�f��d�3�aw%�	�ñ�;p�㚠r��@T[��"��\�a�?!k������Κ�q��F�6�Q�|O���N�#b�Ĥ�)��qa�3��>P�5�^E{5�9��)/&�Em��Ρt��Dq�{IjRJم��m>\�X55�+K���bm���k�j3�y8�3����;�,s[`�4Q ��(V�ʢ����|B�¢�I��P�'�k'�F��	Tj.�+��غ���Yjsh���2�@b�.�<�g�G���Ced
t����S�^�}a�Ąt^�Q��P�چɨyTT��/o"V��a�
=�n�gu��v�z�3��yD�tf�߁�e�"08[-��%�q�[���x��%ڲ�d��f��7u&�]Y`S�	��I�Jӟ�"h�w�P˲���-�o��g�����A�5�uT���5[��O�er	�*Ӎ��(�S�ÔW�sV5�C�u��!طLu-b�1�{ZgWǂ�9�K�(�x{V�����k�ͷ�N�!�Q�ù��x���d}ͻL��Nv�9չ�a'�w&���s��)ﲽyoc1��(Z�|���a^g�2/�yF�"�SNj�d���2��E2hy��n[,��0֞��N��+��܍4N�������R&VTF��<����`����"�Ã���+!>�㴬����XY���7((�H��8|��타7��oT�q��l�h|�:.���㘞��	����c����;�	Z���	Ĩ��|���Yk��c�����t3
J@�(.�e�'˒�c~�i4B�$�*IP�tq�Pi�)�>�{2�H���[x$� mFXE�[��B��S����RK��b���K�e$4�Z��P��Z?�'�|�UʊE�ۧ�6���Sزp3@�$��ޚ+I�P#�g�3��i4�G��� ������8pl���k���h�E�V��*�֝8||Q2Z6�\Ѷ�y�-�k�@N�g�7���
�-���>�`�>O?k�c����#(��Ru��
���"m�
�1�-��
Y�^ݛa튢Q�u��A��@@6��[[H���3��]�SR���͆r[�9U]mJp�jLo夈��j�-�=�"���`����)@��2P��8D!3��<�2cj`1+A>V��1��|�y�=�*t'���
�}ňq'�;�,RH�zQ(�(��q�����R�����&eHŤ<�|s�Z^ɭ�).,^���m���*��o���&tf _�<vo#?�+G������,H%ڡ�A�J40/�?#����+5�9���e�����S��6w�7�HMooom�9��eAA��"v�DwF.��V)ɾ�K:`����r���)�Z&(�j���f�5���a.�q��T�o8����`��f���Dfl�M�5��(䍄5"�Z�M��S�}���|��x1�m�➲h�`�VAPY�P*���5V��k�QBj	��>����&�bR���LN}�^	�u���$4��e�e�茡	�����m��G�8!�bMi)ZɆ)������"����jN�S�q��I��E^g;�n��X��0�-�$Y5p�*X)&N'�x��W�F_���`�J��RA}'�
+\�� "gI���,fb�u
A�>����u;��6a�Rll�Ӱ������M!O�E�3!r*5t�r�T����X�W�Ԍ�LG�
*�m�US�I}�{�-���/�75�83W���0�=}���&��|\MBW��ج*
���UK�լ!w�g�c�jV�J�6�3U㍔
�:�h��pW��^j�Рõ��nb��t��JE„�w?��s�ʭ�YPd�8S��"V��ڶmy�8u�]�����[�(�X?ZBu9��9r���|`7�	dVM1^D�J��<�E�����Z�%���:�]�&����T�[,�˪����HR��PH��xf�|����b#��Z�\
� )
��fC�H"�	[8H.,�yǧ]vk�,.����
�
QI��E�
�F�3Vf���������R����Q}��V 1.h�e�J��LmYp��8ۂ�!8��QV��\>�v�E�1]�.��:(�246���g���>���{���LH�<!��3M5!X �T�!D�y�[-5�{Ux�ɨ
�s���*�jEd�N�$'6wt�A��%sR32�I	�R������	W�Q�g��/�Q�E�L6Ű?d��?�!�m�z���@�f��Im9��h���L�7�EMӫ�d�LC�������PE���O"0�=3�t�"{�D�'�U|`vY�V�cc�;�@Q�\�d~*�S��C(�K�"n�.)EƵ��o�e'X�D%jq�̏Xڨ�0F]�j&���Ep��⮼@m���Ѓ�ˤY�>Q��[���Ρ�9z]�X�jl���|A�}P4z��TP�Vu�������P�1���F�|��S@�����@�M2��:���:�U�D��l�>�X��*���VJRcL����*魩���5W���M�5<�5x�1o=��ް������j�T�[��*�`ۙ3�.;S-��vX0톑k	_c��b{��x��K����!��Ls8,kޯe6�adz&c��M�9�M�L#�jl��J�2�hm�~�ۥŠݢ�����fv3IŃ6z��Q��#^�X���q�(sH���+%�SR�y�b�Y�qmS������Ǒ�bNغ�b	�݆%YO���Q��{�oȻ�W��~������*����w�XR#� a�|bWlq2+�D�{�mЇ��j��e��,{��%X#���Y�q8��e�p��}�N5��ծ�O����ax�7���M��G|�
�C� ��4�p��t.O`�����}/���Ө��L�b��c
�U�f��.�4N��I�ea�yhp����{��֛)2g���^�ْ���hF��S������c�%�#�t�%�])����.a�ln������KT�Nr�%����;1�{�je�b�Ʃ"�*��pW�R	�@]�(I���
G�u�Xi��p�=��*��4�Y��kk��x�v��Z��WV]ꈛ��U\��l^����-,u��2�Z.خ�|�1��C��{N|��gPs�Sq�&�͵�DlR��aN�&Ov��,��՛O=��0�>Y��{�b�H�F*�Y3؎캅)t��[�YQ���Y���Y��Ԏ��>y��3�;�aL�f���e�^��&ї�h�<�&��
a��Cھ����Nf�B8v@�ٸf�G]1y�FV�u��9ռM�t�L�15D��M��A��O`-F�eܒ��M��1��1D������5����oݰuU�;oc�B=���P��.FUi���	��"I�?�_�=0��Yr]�8%N�)��P�.\�7�Z_�b	��9�5�u?YC!�}��.��
��n�s�Wl�nSN�$Kw�zq���0S��Ê��FFV�#]dy]0~l�H��}3DSq�o�m�I�8��P�-K����٩���6���}��IC����_���V{z���ˡ����$�����j$au#�k��K���_��-�%2	.cYkMN�9&�:�6��ô+��S?ߓЮg/����3S� ;6��hy�vT��SC-y�-��Yy�%b$��c
i�z�k�i��v��o2�k�`w.i뚾�_%0]Ce���=hl:�d���c<x�b�E�,N��p�\��+%���H}!&vU�Z��"�L}�t�xj^%�f��F��Y�)|���1/*@Ȍ�c�┕���.(�{�x��h�����53�r%6	qʦO�QQ�Y0t��
���ؾ�Z?��E�f,F�=4�8�������QT;κ���,cc&}�gJ�Q��-�0t�K	��N?�ԟnY�t�&���;M�̤�|/ƽ
�B�u�f=e6u�I�S��h'��{�܂�(cKWk抨e��g��y�v|���J�CUcJ
��^Gbu\,8)��Ur��o�:�d{a�-��m�ƈ���a �R�bw�(W/��7dנ�����[ۄ߼��j�Z�T*4��6���*�ǃ`_Vʩ_c���%B�Xi���Qo�2�rO���*�H�.͔���O�^X�)���|.L����U�Ú��c�$�`��s�E͉�&6�ԋ �'�E�d[::g+�>�;�lln�Ng�,F6Q�;���E�!�"M��]�d�%
���-:��Ǫֵlz�#�>c�#�]�:��s����|oQ�G��h5K̀�(��fO�׆�gu&y,
��g6/ �
~���"�?�+ӕ��`~&�Y����p�m8�0��q,ܧ:/�&��O��ܳ�u���:.�3�RY��)�|�{���P�YE�qk���|�b
|��d+������h���r^�+��XV���}��4>�;��Ud2����_lL=pBd��\Z�X�vQL�Ze��шs-�-�nTwP��-�)�a1٠���U�X~s�5jG��~��0�4XX�}6ϩ�n��aя1��m\��
0H�@R�҇���I!:=�T�pߚy���2v-|�x7YB���O4���}ZE�����3T���W�����s�˟�Z�?��z*s��:Pu�$K�f�X'E��Z��%ݖ@4�,�h�`�}*.���ƌ|�UT��1���
�f�3;4Y��(�R����W���>	Ų��ⱪ]V[�	�$x���pƇ/L�;6�_��W\\	1!`�/�e[�I�)��X�*3�F}[u�X78=��]��qEk/d��Ρ�>�������V���Ng�1c��Xq4��m0g�*�\_� ������j�ߡ�',36B\�0*�3S���*fH��c�3u�-K4���O�pZ,8s�Z�=��F	����l��KCpw�2aL�9�)�?n��k��[g��U�a8p�m"�G�O'�f%*Pk�.�:����W&䡔T��q�n�D=���
�B��#���*
��i����N*j�A�aYW����TB�C�ww��R���xu�i�lML����̲	A}�_t���,�ǻ�I��1A��]�Ҟ� u2Ĝ�}���/'D�	e��ֆ7Q2!I�h�z��0�����=a
"�	�?Ծ@�P���x/���R��9��)�N�� �є�Щa��-�Yَ態�?�
�$��P�*����6��t9��+�E�L����T;Ud�/�`h�#���uY`Q��|���U�.���_,��)��ƃ�x��a7Պ7������7�R�c��ʐ�w�۰TN"�u��C�ޠ8�7�QN�)�����2�C�ҧ��i���L�O{�kj�wF/:��u����x���P6���yEw����o�zկ�����E�+c��[8�`���
�PG���F�GP��#g���"��!n���C����@���1� ��$V��0�a�R��S�,5���"��E���O褫�pD<��$T���—��Ӹ��%]B�,��=<W��ևS#V�g�vM�'�u���ok~�6��'o'��VҚ��������-�l��$<s)c�ɓ��`�FQ��/4�pmA#��Z���fc�P�8=b�����#n�mM�yj�z���.�<��'8���0�j�~�W�sb*�+�&�c�g5J��WG�
��#�$l�T%u _?��Q��Ѿ|��̊�
�.4%�M����8$^��]��Pupc������[-n6�Q+�*nP�f.,��"j,�|8$�i�
ֱ�T�.�u��lb���z���!� R�"G�~�1��8ى����c���e|��HI�y��=���xV螿�������y����R%�F�9̂wv�I�'��0����:�����1�Z����4���u��!��8��j�T�&�)�7�]�[Wt����8ͪ���0DêU�嚀"qX�� i��AaTc��}q��x����X�0P-4��l�y�Q+�g�;�mf�Ԣ���Ԃ��%\��O�ջ:��'��%�3h�loۺZ=���dy+��`���c��`H�
�1�b�
T�Pԙ~ ��o�`�VWH�[;7��y�%�K'��k�\ |�R��D�W|�蚊Ȕ툆�/u�V����8�jPp�,l��Am!O`;U��Ԕ��5��t��>֞F��ˢ]$~�]n�]m	�t�$���څ��j`j"zP_�Yj����)��N���;gOJ��s�a���Z���zR(Ff�hq�q���Wֱn,�U��G?m,õ��T�@�vǫS%q�
�)�ߞj��i�t��7�ڸ��]�QR3n�Badp9��`'FtY�<, ��}�u+4�z��x�`��b(�����?8*9Hs{�`�I7���6ē��(��6w,���6�7V>�v ���Y�,�uo\ԉ����V���ں��X9I��:�?��
",�,U�%�%�M%��K�Z\�TRC+��A'�{�)2o��ղf��c3q�"7m�.�KMXW9�X@J�U[p��3e���"�5h��}��+8�_w�b����!�$JT��1O6�O]n�`^�t��V|�:S�h�d*$I.eMy�!
8�٠�s!�9=M�`�o��l��4��מ���
��2�!Q�@��c�$�Ra�8�NSL�A`��]�ײ�p!�)i&�乳�3�p�n�2�P*,N�B����a��&ЪXR�Vw3qQQ�0����H��<;}f�zV�@�丸a�V��Y7::9&�	����j�D����f72jI�PdEc��|��b�'�sJ�zE]�a\0�n�z�D�e��OR�WtЍ۴6��ڧ��ĺ[7���\H����81�՘T�]�Պ�[N�L����k�Y<v{�^(=H� ̍B�n���hiu&���1D|4_�5��Q���p2�{�ř���|���v��A�w�w���jp�;.[E G�u������aw����d�abKR���r�оf� [�4�ckq�鱺ҘgZ�4ՙ�Ξ���]P��4�i7� _o/3�[R��x���ɢ�gkPi��2 yV�K~�k=$f��jAW9��g&c<���ř��o�GL���PjN�2��m]U��E��q��̞�?�L�	Z|q�3�K�=H�`(X���2���AVA%L�m$\R&a��Ǥ.*�V-
t0<gQOM'���0	�a�2�
%"⧔�l�O/hLMIB[��Fz]pZ�h�bi�\ˆ���4MrfB!�D��x�5Q�9�Mx�񘖨��z��Ģy��D��8���?��JO~�2(:WV�Ԗm!��Fe����T��k0d�
7�'�X�p�����yVηC�Hl��H�*��رG�ֱL�'k^�8��ƅQ�V�-R��s��a�g�
�*uʋ]���L�+�,��&k9����V�JQmy��3<�i�x��oʀm���(��Q�Ʋ�c8�����'����RmQ�v>����U%�}6� �P(��4�ƍb��O5B���-���`k��#�^~��zA%��w��v��E�q�/���(�m�*=N0���U��]�3g�	���o��j>�7MU<�6�)q��H������E(mQ�B���L�Ǥ�D�P�3ِ/
h�՜&f��UZR(����1����8~�qB�'I
��v%#�'T:�Qf	�"�y+�7:4�e
�ZE����P&Q>�U��c֛A[�.Wd�1Gb GToM,�|X�w�f�$XT��b@7��`_!(ʬ�A�!��Hc�|�T
�TΨ�^��F�2g��5  Bֺ�*;��D[��;ncā1�f���s��%���?�|/&eZ��u�4&A�w:X<����m�I����q��P�l��9�|j*�&g\��jsj�@i�@'G�Ŋ�E1Sq�k<t�Ee�E|�7���Uu����FA�Hc�J���C-���Ӷ�OhZR�e��圯�?-I��� ��L%e$V��'�/���$@>�N��J�vyh
���_$�M��&�4��'oXϼY�;q9KA�g
�J
XW��B6��Y�,�����={���q!i�Y��wyE4xWF#y��j�!�󍦲o�aA|�ʞ�P�k���0C��&��h�&V�{>�7�M)f��q��7{=�KX���^��P�2�Y?�������8��]"Ԛ��ЏS(q��6oj<(��a9��]�	5�	C�BvĆ&;1_�1�q;3Sc1�<� �7�Yav��'4)~�19}�XN�Q�qM&�8�(Br���Q�
�̤�X��'<%#YEB���|�ߎ�rKà&̥{��J����|��Z�bԟ��)�����������J�5���uH�N*�P<򝘦m�C��l?��+�h֪�����+����Cm`��u�N�P�J�9�I<	
�[����p�|�q��Y����[&NEtv\y��E�:*�ic�3V���2 \գq7GR�.N��M|1f�%��
(����Bg�o#�&Nz�t\$�N)1kJ��*�M9��5m9�I��b�؀w�ɶ!>ꌣk�d����{i$s�k�:�%d�vGټ%C��2�w�	s`eǴkZF��`Y���Cv��}m�%�E{y��C�9$�>E��肱�1�ِ��!t3cDQ�8VT�*�䉗ƹ�b�IDI&�n�o`�f̓�}�Ҏԏi��&P���P1��C;֘���#\-;A�R���'"��k32j���g?p��dա��t��C�ģ����B�+M��b�"�`S
5`�TJ�I��6�a%$4�P�U���ns�Ir'��$fN��"#��iU65�վiCP�/	EV�F�t_{��ϻV���,2�^!˪v3OU�[,l
�%�A����o����;��;�0q��w�zj��O�y�);�d�o��-�'*SpJj���uf�>j"[O��,�L��B{�UM��碮�ww�X��',Ol&�i�)�ݻ�u�DO&2�/��*��1�s�=R��g15f��{���D�hJjN!���5i������$ ��:�D&UixS�6>hΌu��{��ؒs�oWS��uܵ��r��T�Ң�	��7
�$���	����t #I>�ի�(sx�q�8.'�sL�F�K2͊�[�e+
���^l�ʗ���j6W�_�C�0m +v��%ܶ���h�i�ZY���g��X���K��n���@Q�hxW�t˵�FT9P���|�M��D���'��^�6u���.^�c���~$#%ˊL�ծ�N�t�֢�^yg����X秲�؃��b��i�V���;xj�4�{98Eš�V�v7�4M��OR��F����u��?5Z�&c�ר�&vٰ,#���=_��o�H\��c�T%�83Z����f�ug��ţ�*UL�� ҀZꁂ��4o�2y	=��%�n �	�
�g��NV+c<A�n�z:`�̚h�������h���yV_�*�W��|Q�?$������GM^�
)e-Z�ͷ}�|D�?*os�/-�_�^"AdR��'%��Y�ӏ ��P\R�<�)� �!����h�MϕOl17�:}���ħ;����P=#`������m�YvM��z�����j*�0���\��*S��^��Y�:	����ᙀ	��^�Qv�q��/����@m\֗��{�^�J��ɛ�U�i��`l_�Fd4�au0�|���3���Y▚�ء��?��s�e8�<�~�ƮZDNo�]��a��0�TH��T�1-�sv�jP�F
y:Sn�ה�0�DyL�5r��WQ��Z+Lu�)�'4�d�qy�W٘�h�T�a�U�tm|���J7�R�O[
^��ʙ>���@5���%0�pc��Kg$H(c���Zn��h)��Ёn`(o�pL����r�kZ�"�'���`f}87�v5
b> ���`
TA-X�u� `����X�,�t�s���ps�b���8�ſ
"b͐;U�@���޼I
F�Sq����j��H|���mD9S�J&��
Z����-�ې�]3��� qQ߸?p�	V�?��A���ո��LHA��L��^�ݤ��J<�<�-S��c�Xບc����lq�ɶ�͍�Nu)�(��n}��W&�"6*'>@���p�áz?y��GGΕ�|o�)��V�(j�>Wh��0�L��*M�Ý�,�ǪP�gJ�K�����?�2�gT��fЂ��e������R븆�v�����*��埮q�1b���Ͼ�J2�]����֍�i��j��,�].� [�p\6ڀ���+�w�K[�}}dAR���M�9vO
��!�M�O��O
(�ގG���`�����L��[^���Eձ�s�'�����[�O�Ր���+�:�Ou2&彬��.\�ἡ������@<�)�tI�|OM7S���9tq�kړ�>f]�a`�(`�E�H����c$��՘g6����:~�a��X
�8N5���0�h���d�(���|��YTJ-r�kY��/2*�Rb2�Ž+�/����^��G�x���sk�+V�W�U�K]ct0���������듾Qׅ��)��Ǹ6m\P
׻����INd�"�-.1����gQ4����[�rْ˓X��_n1���U����FE�q��:���H򝠷5�Ւ�ݙB�Э�_������^9vbe+U��Y��?�RS�Ӝ��j���N�O�vY�b�� cksE��.K/=�g|JJh(/=ղ|�PMBg�*�NXb'l\�Nd���W��U�Sp��ARq>�գ���!��I�o?p�q���9��̨PȔ�Z��&NϧDw5�2�!�gc�
��Äf�S^�y�hН������x�[�4��3�����V��	�9��k+�i��ۀs"�4���o��TP]X�;ʼ�u4�|d&ܛ�µ�Ѭ&Gyu3"LA����=7ɚ#jY�|����9�\B��{��O�6u�­P���]����!�hB	66��R֟̕�p�y��X��ETpT��̌Ц�;��l�Z�Y��%ݞ�^r�;w�a���qI�\��`5\*s�`�]��:L�!u�A�K`��V%�H�V��s�se}5P�}���du
�'aV��z��{�,3�/��uWU�y�����Wb>�~+L��%��`ri_%4hL=�5L��2��/�rY[D�LX��3=��I���iU�ҫW~����!>�;�Z���1=�A���Y!fB�%,hV&�)׸8�F��0_�ٴY�w��Wb�fQL`�Up�4�1���VQ�߄���<&��]�Ѷ�,aJ�45��.�MlFB��f�m>��9֗�8��y�;v�n�K~�D�'���~��/Wi��^6���ϼy
_ʳ�}w�g���o=L�R#���,k���o!!��m��X�,�$�FA��,�HBm3$3H��̻���
��U�ɹ�L�m1�=�V�.ù{��!�Z���T
VCɓ���$kzM��f�Ie�g��������3�qL�������^,ؚ�HQs�%�"���M�+�[芜~Hf�
�g��d�&�aoF]���s�����&*9�>G$6F
<)�ɽ
��Z�9
5�Z�G�:��`�bR|���峢GD7Q�P2_Ձ�s�ɐ�K"ۉW��&�+S[H��'s��;4�-�4[}I���,$j;Gt��2-����˅_�C
f�j����
�;[��F�ި���2R�(AfF�Էpv
%!�]&�F�[����� Au��; ����/��bR�i��4��E,L�U��Up�^=��ǁHq��գ/�"!H+$�(H����P�֯��L�
�K&�`�͑+�M`���?�|H�R+�`���,-��Y}/hb�n�X:)N]��8�0PѾZ��8R�9X�q&�}Y��C���J�ך�]*�\(�f��ٝ����Jhm<��OUY�k0&��S���`X��@DՊ��H�_c#���bB�ܙ�������3�[��h$�Z�g��5{�-�<�X�ŜI���6K������= �k��T��1n.'�v���vHy3�ŞꦆM�ےy��#&���I�q��3�����j�2�_�
5l����[vL�`)��
�YH�Zh���T��Y����0"�f�O5
��p9 �N��@�����i�4�GM\���iP�Y�֩�R����
�B��Ѕ�l�i��ZE��`�^aP�*���hA@�K�Ҁ~�����ω\"�&�8ߟ7����~V��t�7+z�Ǥ:��{�+��a��
��p���v{��į�j��qH8�u��<
�l:�^�:����`W8j��ނel��.Ƽ�iO����,��N����[nE\È�	4ˡ��).���_�+6>�\��(I�0�����.�~z^�Y�0]S3!uV#‚g���/q�ښ�p�'M�|<��/W�SJ��ƥ�3�c�[.Oȣt
�� ��q6$Jw�,�Z��@�&�{�����7J0��A�2[�	�l��C��v�[�H
P��&6ʪ&R.<��z8�f�c���
9�0��g���<l	��˗ %��ǩT̶<8��@	Ž��Bi��9�U�^��9�6��2:�:�眄�OKQ��P����/����{���|s,�7��>�u'�uJN����pŽf��4�{�U�x��[�85Tǜ(i	BԷ����"�ל(��B-��7��ҕÙ�ۻfΝnOM�ў���mN�ג�`5���I�=,�CS��J-��%�=q�U�p�m�������KpV!����`a$oŀ�&�s���?�<����R���ImF�%7�&�5��J(~�|g���`7�C��*l)�A����᣶�G^T>�sG*��y���"u�~i�,��wA�v����ļ�h����'�b�X���.�Jl'��}0�K/hS0��;%d��7��t���AQ�~-��/4�U��$���Nj�~���{V�]ڌ����1�P4~�m�X�.��…Q#��M������wL�+���
4�/�;���s��<s�%�
�Y�n�U,�%��}�s_��Z�|���fM~�!_�K��BކOD$���_^�ʄɳ�~1�N�C��˞h�1:+ƀ�s����ŮX[ZH�w�:��VC1�ku�l�^�咈��d�*�"P!�]4֧��.(�X䥭r��r�~���E��̖��RC�)M����E�>ڲ�W�9�k���pŵ�-�1,�.]�8�G�t��d��Q8pj��RX��5yP��.U��X+ZWks���P���r�Z��@���q��pYj��I����M)�h��T%n1Gl1ZT�c�F�<n�eg3�	�iܶ�uQ�;�Y1��&����V[ ���US6�6V�34kVB��T��u�"��,�S�D��3z�E�f
^������?:����X�=f�@"���<Cq���Hi>�8s�Q��ֵX�����@@Mg
.s�rKb�f��g"���?��D��cc�Hå$ڍS�!�>�b�23;Q�D"m*�	Mz�tE��τ�O�y=�y.���:'U�U�9�>��C6����;FsR�«Ӏ�z�&�W"�P�tj|k�b�/j��&��=��J"�h�����A����S%^��e8$��&̹�v�lP�,G`�7���^�t8N����?��Z�[V��u�,�������ؼ����a�Y3<���h���7�����;ᎈ�j,��r����@E��$�4����.ߓ�;��5!�Ӯ>�t�{���e�IjRJy���m>\��P?teI�Z�S��QfV��mQ�bf>Oz��1���Na�h®�s7?��l�7�r?Yn;�4�dL��sQa1��ц��&K
��<W8\Va�S�5���޹���/?`��v11%R�����PbR:/ɨG`��ǎ�ŎT�<*����+|ٰ)��B�ͳ:�i;
A��P����4��l�\j���!Flq�u�%�Mk��d�Q'�(�FkE��^\ٚT�4�9+��~'
�,��/ڢA��|�?0�`��⤣Z䆠���n��.��\�OMS�D�P����]�r.S�A�XiL���ձ�mN��T�Vߞ�g"*��g#r�j'�SQ�A𽠞BZ*���ِ���'l�"²��s��)V�yoc1���\�|���a^gⷲ/�yF �"�S�/1ΌL��Y^/�A�+d�t�b�`����ex� ٪e�q:`����֐��L�y���Y�{9��;�a6�λ�iYk��_:�2|m���DW���K��z�9��4�N�:����k,� V.�^t�٘�Q7$����_z��!k
2��D�a"@�ތ��R1����eyx��/�j�Ď�����8I���B��M��E�|�^J�-@t�6c���-m����,~z�D�l�O�%e�}�z_�-�2Jc�Ci��M�W�V��{�*��!��`��,�pt�H���5��IB�	?[��O�A��N�6�gG}�q�X�h[J�w[�
�E⍳��N�G+��8un�m��[�נ����Zo��/�EMk���,a��S5��|��X�&��ꣶT����@
����"[c�Y��S�L��7�6j�����Ի�n亗#7OIͪz������Mɸ Is\9,���Zuf�v��F�Ι��D��.�5S���3��=�ĉsh�x+F�P
���`�.��f:���et�پ���d���"��u!��
��d䕂�� |)�C��X�����ⳫY\ؼ::��FQ�U���B-01M(�@�"y�F~���0XEc��YK��ҵq0F0QgWjFsjQ[��Eͩ��t�m�H-n�������2szW˂6���E�Ɖ�\N�8���}G�t����3�~5�S��{P�%r�����a�}ț+�v����a$q��J_��!~����RE-�I��y
j*܍Q�	kG��&��+H6O|~��0n�mel4ú*��sH��k��x�Z��t�/V�O�L�L1�pv�0uz��,���ڛ��Za���N�1?a���y��2�l���\=�	Q�nJKQ�z��*^�Q�aDrJj*��4x�O�$�A[�Up�$�/`���
��"�s�U
���c�t��g���yEkt�Z
�Qp�l�w�����EX�t��$��b[~�3����xLD�����u;��6a�Rll�Ӱ����ڽ"O�AE��*r�5�t�_jm�Ɔ6�f�e:�mPgnΚ�R��[n���f�*%9M��o�j��!����X��C�'�6�v5�eU2���V�YC��Z�*جv����g��)pX�m���&)�(���������M
��M�۝�.Q_��p���
\��;�:]���:VV�"V��ڶ�t����"��Yܤ��7!Ќ{�Dq�dޔ���[dV�1^D�M��<�I������Ց�,�վ�֑��j�w��+,̪���XNR��PH��xf�|��	wSJr��1SߠIyL7�H�L�r@Br!G`�(�6�5�c�\^�s�׆(�zψ��]�"V��殐�wl�
c�'Դ{T������i?�j}Y� ��Hۂ�7!���ߙ��,���^a7^����M��B*Cc���&��Jo瘵P�Ӫ��/n�����ݭf�=����)��&~ǁ�E��L��A:h��dNjF���)���Bup���r�QcS��^�c��U�$a��C֊y4kB{�yǪ1�N�g�Q{3�f�
8��E	\�&{�	)p��o��V|�*��y��3���?ω�O��X;���"�wv��,�H �}j~�����`jR��ke��T�O0����J��N㪈5��f��c�ELh2q?�
�kCg�\�m���0s�V�"��'�Ͷ���93W���T��Q�/�Z�Fc���J����~P�u#��R܆>�5M���S������@�M2�:�$�y^5��=� "��/J��5
i����ؘQdzƅS� ~�Ö�X�F6q���{q����#5۽H�����' �ab��bx���Ql;�fؕg�e����0s-�k��yXl���b��D1;$�4��i�/f��̆m�xVg��M�9�M�GLc�jy�J �J�6�hm�~�ۥŠ�����bMi�u��(��Q/j6b��p]m�C����`OIMO\��*�c��>�����H�_�I\WY,��۰��U�@��1m\�����{\%:�B����8Kj$lÓO�-Nf�f��s�Y�
�0Z�!no�l`��]%�#���e�/9/�7;o�sh��t���/�xe���lw��T!�k��
PmoLú��..J�f`'���70�8"	�����O���
A�b�P����@�`�h��ZB'A�$�Ҳ0�ƿ<4xr�|�����E���3��im/�liӠ6��f��^u�����-%y�c-��l�/������K��[�D�!A�$[Bs��S�QV��Z<i�c���m����._�%�q�8��кB���?�`8��_~��c�,V�5W�[<P�
I�9I�_Y��#v�6�Wqu���qX�:@•ζ0�Il+˩�g�g}���1�������t�5c�j�<s*~�[���9�M�86�)��ɐ���Gu�S�s/L�Q�!���X#���Jy��Cco
g:�`�\����l��5����)�w�}�dku8~wxǘ@͆9Z˗'�J��%�,�<�{�fY�!���ΐ��
��ٱ��u6>[��GYL�����f]>O5o�N4�aM��!y�-��A*���с������q�����B��_���F������JRb�L_���j����j�⠀:�3��Q$)�U��k�ƙwb K�K?�mm�Nd��s��X��Xu0�w��Me�O�bH��PDzog�m�9�+��)'f2�E<V�8���*L]��|���w2�j�*���c�F*���!�x��~;lKN�P��6�pg�f���po;��㿪s2
�#�z�rT�ϫZ��1�_�F,�V��Zfa�8/���j$buC�k��R�`��]��5	.c�kMN�9&�:-7���$��S?_�дg/�����S� ;;�2iy�vT��3���a�@"k�	����KV�)`�R�K��֩���+�Y�d��u(�ݹ��k�~SRg�@BX&���؃Ʀ�N�K�8ƃ�L6_�<�n1 ���R&�(K�h�Uk�:��73^dCZ��y�����!�gm��k;C�è'3���'��SZ���T�\��黢0�K�b�
�X�x���%��)�R<�FEEi��1*�*��x�j��H�a��X��{h�q�kY[De����u��\ZkB�=Sb��Nx�hن��]J��7�J�����nYMv�2��n=M�̫�|���
�B��f=�9u�IHU��h't�ų�\�~xY�z�Fb��Z�١y��ͧoӧ=H����DQǘ����˜X�N�/�}��j�s:�vX��c۪1h0�k/$�t3,��Ktu��-�5����6�7�;�Z��3�
M�rE���c3���� ���v��$����
T�4GL֨�t�@ɧ�G��_�E�^$r�j����酕��ob*P���D��]9�e��?�Rk	K'�\Դ�(e�H�C}Xć�%�s�bm��%�-�[���.���Ĉ��E�]�bM��]�g�E���S��4��f�3�^�k���åU�8=t�QY�ڙ�-
�U�f����q�c+ϗ=Tk\�������+P/X�����# �<ӕ��h&�Y"���� >�C�][�wEd�
��ǰ����8�,&^�)���}�̽T�r����<�VQG��tz�A'߅5����I�iB�w�K]	���ߍ%��"b!G��F��~�q�ߩ�"�B]}�m�V�ف8��LVm_ױ>XY��F5�o�7�AK6�x�R���,�ޕJ��rP�x沊z,ӀY��C��7Y�Z�i4�D�l�S��d?â�Hc߸6��� �,���5d풓�8�tz���x���)��z@.c�a�§���c*���DS��/�ܧUa��>C%X��~y�ih���~=g�Y�������1�]��:�6ѵ�T)�� Ԧ�/���Ud!O3$�Sq 0,M�7f��ר�Bv��)[6q5{�y�ɒeG+��d�Z�%����1;.��f���N���|��t�c��u�{��'x1�-��s�N3�ڭ�X�*!3�F}[u�X�8=��m��qKk/d��ݡ�>HA��C���V����g�1{��Xr4��m0�*��\d�@���Z��~�ߡc(,=6�\1*�3k�P
:f�H�s�cQ4u
�-K����O�0[,<s�Z�=��F�����l���]��	:3%�G"rw��vk��@�J8ξM�i���d�ެ�v-�G��٠��˄B����.�o�(�ѿ�AWȖ���j��2=e]���2�gE�Hl,�_1�P�Ku(��N�W��V�n5������|�Y6!�O�^
b���؆hL�eC���'���&�D�qia*!���	n�ݦ��᭕L�R`�_&:��pyػb�e��x��/�K�l�q��ދH��Dyu> �Jz�8�¬4%0tj{�;c��aV��y�"��b��8I��6��⃹�I��bN��J�� �A=���3�ƎY�N�H�bp]VX4C��
����`_�p�ž@�8�Z9�f�Ƞ
���^�ɟ1��@0I'
	7؟�
K�$��X�o=��
�~�$�ԝ��J)=4}J
�V��*�'���}��>���.��c�ee�nʝWt�Y>P��F�W�)�_��2v������{�=l��<J-NZ=��$^:K&WA�q��zd?��b��?煙�&��m�y���J�J�a�}%�!�/�E����(]u6$�HG$��Ĭ��j#$)]�%��<��@t��h]:5�F{bn�$\ġ]�OYǰ�W�j����xr��k5"�Y�.�ZO��"���J�!8��2v�<ٯn@lԥ��BB׶P�1�5��r6�%���#f�
}�v;Bk�����P����?����y�S�N
o��V�Z1'����S9�yV�7�q����{=BN�\O�S�q�(��I�ˇKͬ��a�BSB!�t��j�Cˆ�Q��U7�/�.�蒺��Q%����en�¢�.��2ϣC2\�� B�#u9�ce
��~Ի�D�i��I�9�0^��ʼnO�QH��L�^�L,�N�DJ�9�|<��ǤƳj��E�]-�-]���m�,�4�b���L�>�C�Y}e�8�@�m�Q�+F�=(���x��Cp)<�W��
8pM�1����YWI�gI���]_��U���5@|kU�I�!7�|(�X/�T��Ӟ�C�P,JX���?vֶ�<̨�����6�yVjQgsGgjA[��AS'&����n�ē�ڒ�A��m_������y�Q��1Co0����x4�'R��~��L?0q�7oPz�.$�-�� ����Nt[׊�=�b����I�����U�)�
%.^��Z�?q�ՠ �! LY�`;��B���v�N�)5�k���2A|�Y����E�H���
��2�vI&o=9�3!0��DD��0���q=kSPќ|1'� v���x����H�]���e���"4��̅��
�,������X�?;�b�~�X�k�թ"A���W�J��S4�=Ղ��ҩk[Ϧ�qU��z��f�2����r�[�AM��VX@@�v�^"h(������ ��_�pXr�AO�N�	Tu�M�"
l��K�涴�ፕυ�9�+�)�)K��u��zy����)*�>�����3�Nt�NP#����(K�r�vI�AS	�+�`�Q2�����gP��^#f�̛�r�|w��L��5[���R�U�8��RqF�,�A�LY����h
Z�ue-�
΅uƝ�XR��|E�9�U�̓ͻ�i�48W�����Δ%6�
9E�EYS^����JF6��b��yTO-�a��8[�:gM5F���,�����lH�/����$	�T�����mip��lC^�fJZ�4ynm�v�+\\册4�
��`"1fX�Iij*�T���L\T'�e��Re4��Y��UC49.nX�U�xF��HN��j��m�� �E��w�ٍ�Z�"TY��.�60����^Q{�Ew�b����+�n�o@�T�t�6���)� ��7�8��-�7��M�w5�S,9G�n�����EWa<A��
G�= �GJ�%�r����*�[Z�	C`�nED�W��E`sD5fG6�L��s�gt2q+�)���8aй����C'���Vܑn���$�4{ص:��n"|�x��,�\�����F7M��Z�Ǽ�Az�f�4f�Aa�TgO:{�B��vA����}���~e���Xlɱn㣾�.��B`ܮA�E�E����Y)0�����lxaL�]�L��y��$&�W0#/:�Ɛ�<��\����̭v?GAWUtq�8}�.6�g�6�zR_���R�n�#�
V�,hF�u7�U�D��r	���Xf7 �q����U��Y�SӉ>">LB%RC����I��
����%{L,#-AC�0s���1���z���A�i��؄B�R�q8%��r.
��|�19Qe��0�E�|O	!T�qHy��E���2mPt^�x�-�Bl���Z���;�*m�`��}O�$ᲓV��󬜗���9��(hQ��U0
�i%$�� ��'�3Z
ּq�
�"�7�ۥ`��F�øϢm��B9��W����M�r
R
I�̕���ڏg���6�4��!���^Q���@Mf�1�p00���:u�����j�c:,]U�gc
.���zM�j�(4�"���!�����wr�vt���0
��s‚@��|?5.�]�qQ~���-�˅z�J��.�W�~��,Zpb��[=��OF@�MS#�M(CJ<�.R֠D/dEaJ[��P�n2�p7i:"r��L9��_�g=���d��T
\+Bp�"�(FE,��k��I�B�^�=�s�*�b�+�
[��Ƽ��2�	i�"8I�[c(�(+���r2�W���ޘ|����2�#ڷ&�Q>,�눽3�B?�Z*t��	����J��|�4��DZO�,O�F�k�)c_�"�F	D([g%`Ǟ�i��p�m�<0�׌W�v�\ܞ�F�7�ƤpBX���&O��w����1��t9�UBʷ�0�"#g�OmB�פ��_"SMOm�
��(�XQ��(�*΃}�����l��O�3�����2��("P�iV	>6��s�|�w��MK*�L ���[�%	4�$�������*��$�E�o�l��)�ZI��ơ5�b^�p4�2���8���a]�f����,���5��*)`]_-��gղX<e3+@"���2�Ɲ��g�_�Q1�-,���-t&+����7�ʾ-��q�+{V�us�4>��f(Z��s
���Y`�'��)�n�<n<x���O��xi̚�w��җ�CVf�8�ѱc〙Ò�˜��[�Z�3r
� L.��F�M���<,G�o��F1��:�b�[ȏ��d'�m0�6ngfl,��T��c+�r�`�&E�4J��%ˉ9j���$%�EHB�[W1Q����8KU���`�#��HH�2���`nɀa|��t��s��x���[�Y��SZ<%�tV��]���T�^�	^�Q��7J%��G�CӴ-uh5���z��ZU�4W���y��
�0����j�@�BG`8	/����\���|����Y���[FNE�v\��R�d�S�w�EieA���H�n��n]�$��b�6L�*P9-��d7GbQ���8I�Rb0֔0aV�rn�k�r���Ŝ����=�mCt|$V�G"��#Ņ��H�� v�L���8��yK�(tm�$�ڎi״�Ji���)�1��z��K��TŇ8uH�~�J�Qc�	b�+�!tB(g��^q̨�U����s���Г��L.'�x�<�F͚������4'̠���JbV�
�v�2#+�G�Zv�j%�3��O(D>;D�fd��'��.��'Ȫsy��b#��rG�G��!b��W���lE��j���J�I��6�a%$4�P�U����s�Ir'�
�$fP��"#��tU65�վmCP�/	EV�F�t_}����v���,r�^�˪w3�U�[,p
�-�Aܒ�PK
�MS��Iq�]��litespeed-cache-en_GB.poUT8gaux����PK
�MS���1��z����qlitespeed-cache-en_GB.moUT8gaux����PK�n��b,#�<F�]�](�]2�]
^^	^
(^
3^>^K^a^w^	�^�^	�^�^m�^_
+_6_3=_hq_�_N�_8I`=�`"�`7�`aHahaxa�a'�a
�a	�a�a�a%�a%b|+bF�b�b%�b	$c".cQcPqcT�cZd>rdu�d'e.0e-_e/�eL�e2
fI=f�f�f�f#�f�f�fE�fPCg0�g'�g�ghh4h:hRhIYh+�h	�h	�h�h �h"i/3i*ci�i
�i�i�i��i4Sjf�j �jkk
k'k4k#<k`klk
yk�k�k�k�k�k�k�k	�k�kl
 l+l8lLl[lgltl0�l*�lU�lW8m�m �m �m(�mn!n?nLnKdnP�n	ooo6oRoko�o"�o�o"�o�o!p:pZp&zp"�pG�p!q,.q$[q+�q�q�q�q(r	)r3rWPr�r�r�r1�r%s2@sss
s�s�s�s�s�s�s&t.(t*Wt.�t�t�t]�tNu^u!pu�u�u
�u�u�u�u�u�uv4vMv%\v
�v!�v�v4�v'�v6!wXwew	xw�w�w�w;�w:xFxaxrx �x"�x�x�x/y*0y<[y7�y�y�y�yz
z	(z2z;zNz_zz�z�z	�z�z�z�z�z�z�z!{7{O{i{�{�{�{
�{�{�{)�{|+7|}c|�|D�|87}p}x};�}�} �}K�}8?~qx~�~�~3Gbu��C��
��!�:�L�j�
n�y�<��Á݁�9�
=�K�^� n���
��Y��q�s�{�N����������������؄�������)�+0�%\�,��s��##�G�g�������†ۆ����/�LI���9��:܇0�)H��r�c�Gs�W���$�
<�G�
X�c�{����� �������
4�B�8R���
����ҋ �0�7�F�Z�#m�������	��njBٌ�	 �*�2/�Zb�,�����-��H�i �I��;ԏY�Kj�V��U
�Lc�l��B�Y`����V\�`��J�g_�=Ǖ@�=F���������ۖ���)�
=�K�<\�����Ɨ?�&�;�S�l�������͘?ژ�1�8�H� X�&y� ��D�����1�
@��K�6�H�]�r���
������
ʛ؛
�/��/)�Y�pn�<ߜ
�'�F�O�d�	p�z�������.͝��
��
!�/�G�T�hs�ܞA�&�	2�<�I�'Y�
����
��
��"��ݟ���$	�+.�Z�#l���*��Ԡ�
��
��%�P@�H��Bڡ7�@U�&����͢���%� 9�"Z�&}�!��ƣ���$��6��5�L�]�t� ����/��.��*�@�L�`�i�������+�������
'�5�A�M�\�k���%����$̧
�����@'�
h�%v�������>���� �7�*N� y�2��ͩ�"�*&�"Q�"t�������<ܪ,�
F�
T�
b�Fp�����«
ɫ.׫?�6F�;}�1��3�2�6R�0��������ĭ˭ح�Q�D]�
��-��$ޮ?�C�7Z�����%��	����(�?�S�l�$|�E��+�*�,>�k�����������
��
��$α!��1�Q�^�m������������RͲc �2��?��
���$�<:�5w�S��p��r�'����E��������0 �MQ���p��/'�&W�&~�)��7ϸ4�<�\�
d�r�����
����$˹��F~�źݺ��
��&�2�AE�����	������˻׻�
����%�E�0a���I���$�D+�@p�9��1��8*�Tc���Ⱦվ���"�+*�
V�a�#p�=��ҿ
���+�E�W�k�~���������!�6�{M�;���4�R�j�q�
}���A��S��	4�>�P� f�������������+�&-�T�k���Y����$�26�i�{�I��
������
��:&�a������.����d��L�a�Mv�f��$+�XP�Q��7��+3�_�gy������Q+�}�P��^��m9�	����������9�}E�(�����>�N�Ub���N��Y�u�����
����&����#���9+�8e�
��0��V��_4�C��G��a �8��4��/��7 �6X�7��-��)��L�*l�)��-��(��,�.E�Kt�?��?�H@�<��3����R�T�i���������2����(	�52�h�}�������e��-�/2�Mb�h���]9�=��8��[�cj�C��j�z}�A��q:����q>���H��W�Oq�>����K1�}���E��1��-�YG�$��)��9��O*�&z�)��9��Y�$_�X��1���A �^b�E��U�(]�S����J��(;�Id�.����2��2+�7^�Y��*���;�:V�;��,��*��1%�;W�J��4���N2�Q��o��XC�/��G��9�1N��� ����J��^��3[�N����W���T����*��<��1�VD�L��*��]�q�v�~�����$������
������#�,��4�/��(�)1�[��p����
{�
����@������
�
����'�-�:>�y���$������	�r(�5��_�81�$j�.��2��r�d�!m���C��F�
&�1�P� j� ����K�����1�+G�s�{�)�����L�Q�k� ��
������d�JS�j��M	�W�gi�R�Z$������&��'�#3%B�h/ qP(�J�F6.}Z�6G>3����)�Z&�
����'��K
V_lJs	�����+�(2Fy�	�
�
�����	��	�	m�
��3�h�F	Nf	8�	=�	",
7O
�
H�
�
�
�
'
8	FPY%k�|�H]%l	�"��P�T0
Z�
>�
u�.�-�/�L+2xI��#CUEkP�0'3[s����I�+	@	JT `"�/�*��
,�>4�f� `��
���#���
��%8I	`j�
�������0�*(USW�  ?(`����K�P!	r|�����"/"Kn ���&�"G3!{,�#�*�9U(m	��W�+>1U%�2��
��$5GW&n.�*�0� ?]_��!�

-JYan���%�
�!� 43 *h ;� � � 	� � 
!,!;F!:�!�!�!�! ""%"H"^"/w"*�"<�"7#G#V#o#|#
�#	�#�#�#�#�#�#
$$	$'$6$I$\$d$u$!�$�$�$�$�$
%*%
I%W%`%)f%�%-�%}�%Z&Dk&8�&�&�&;'B' K'Kl'8�'q�'c(k((�(�(�(�(�())C+)o)
v)�)�)�)�)�)
�)�)<�)<+V+g+9|+
�+�+�+ �+,
,Y ,qz,�,�,N-c-p-�w-
..".4.T.a.r.{.�.�.�.+�.%�.,�.s+/#�/�/�/00-0>0W0]0u0�0�0L�0191:X10�1)�1��1c�2G�2W73�3�3
�3�3
�3�3�34,4 >4_4g4x4�4
�4�48�4
5
(565Q5 d50�5�5�5�5#�56606	<6F6BX6�6	�6�62�6Z�6-<7j7�7-�7��7i�8I9;U9Y�9K�9V7:U�:L�:l1;B�;Y�;�;<V�<`4=J�=g�==H?@�?=�?@@-@@@\@w@�@�@
�@�@<�@A1AGA?gA�A�A�A�AB!B=BNB?[B�B�B�B�B �B&�B !CDBC�C�C�C�C
�C��C6�D�D�D�DE
E&E?E
KEYE
oE/zE/�E�Ep�E<`F
�F�F�F�F�F	�F�FG&G7G/NG~G
�G�G
�G�G�G�Gh�G^HAfH�H	�H�H�H'�H
II
 I
.I"<I_IhIwI$�I+�I�I#�IJ*+JVJgJ
~J
�J�J�JP�JKKB_K7�K@�K&LBLRLfL~L%�L �L"�L&M!)MKMeM~M$�M��M�N�N�N�N�N O2O/CO.sO�O�O�O�O�O�OPP6P+9PePlP�P�P�P
�P�P�P�P�P�PQ%Q<Q$QQ
vQ�Q�Q�Q@�Q
�Q%�Q!R&R-R>5RtR�R �R�R*�R �R2SRSkS"�S*�S"�S"�ST3TCT<aT,�T
�T
�T
�TF�T<UAUGU
NU.\U?�U6�U;V1>V3pV2�V6�V0W?WCWFWIWPW]WsWQ�WD�W
'X-5X$cX?�X�X7�XY$Y&AY	hYrY�Y�Y�Y�Y�Y�Y$ZE'Z+mZ*�Z,�Z�Z[[[+[0[
8[
F[$T[!y[�[�[�[�[�[\\\"\+\=\RS\c�\2
]?=]
}]�]�]<�]5�]S3^p�^��^'|_��_E2`x`}`�`�`0�`M�`%ap<a/�a&�a&b)+b7Ub4�b�b�b
�b�bcc
.c<c&Sc�zcFdOdgdnd{d
�d�d�d�dA�dee	&e0e@eUeaere
�e�e�e%�e�e0�efI.fxf$�fD�f@�f9;g1ug�g8�gT�gBhRh_hkh�h�h�h+�h
�h�h#�h=i\i
xi�i+�i�i�i�ij(j?jRjajuj�j�j�j{�j;Sk�k�k�k�k�k�k
llA(lSjl	�l�l�l!�lm*m=mLm[mom+�m&�m�m�mnY0n�n$�n2�n�noIo
gouo�o
�o�o:�o�opp2p.?pnpdtp�p�pMqfQq$�qX�qQ6r7�r+�r�rgsns�s�sQ�s
tPt^gtm�t	4u>uPuiu�u9�u}�u(Pvyv�v>�v�vU�vEwNYwY�wxx x
0x>x&[x�x#�x�x;�x8�x
-y0;yVly_�yC#zGgza�z8{4J{/{7�{6�{7|-V|)�|L�|*�|)&}.P}(},�}.�}K~?P~?�~H�~<3V�R����"�*�C�2H�{�(��5€��
� �$�*�e.�-��/M�h@���]ɂ='�8e�[��c��C^�j��z
�A��qʅ�<�qΆ@�H`�W��O�>Q�����K��
�,�E1�1w�-��Y׊$1�)V�9��O��&
�)1�9[�T��$�X�1h���A��^�EN�U��(�S�g�J}�(ȏI�.;�j�2��2��7�Y#�*}���ȑ:�;�,Z�*��1��;�J �4k���N��Q�o`�XД/)�GY�9��1ە
� �6�J>�^��3�N�k�W�����x�*7�<b�1��VљL(�,u�]����
��#�$/�T�i�y��������������0e�)��*��������
�
�$�@1�r�v�
|�
����������:Ο	�#�$3�X�r�����r��5+�_a�8��$��.�2N�r���!���D+�Fp�
��£� �� �=�KE�������¤+ؤ��)!��K�ݥ��� �
3�A�V�g�d�J�j/�M���g��Rb�Z����1�&Q�'x�#��ĩ%ө���/��q�(S�J|�Fǫ.�Z=�6��GϬ3�K�k���)��Z���
�&�.�B�'U�}�K������J�	O�Y�a�i�n�{�]�U��p�	�gJ�}�|bf:��#���25���KQ�j>� �Qu2=��>��?�����/U�"=l�E����#�"�de�N�*�9�r�'x�N�LV��u�%��
�G$�7Q�QDT��$�R��dO��+ CfoVI������(R����F�LA�����6�t�{��x��
h�v�G}��B��T�nG�����3'���@~'#'���N�m\X��z�����	�Y�3zM�N��z?����K��$_Gn���S�n�p:X	���&�Z��&wq�@��Y��sM�11. T��0�[:6PP�*��0_��"�Ds�S��D��X�<� ��V��y�M���>�5������pe"�E��8�H�t�2�d����;��>Z����9���
����[=Ji��3��+P�E5�'�O�5����	�J|��0��n�����w�ms�|!��w����ar
.�R`�H�6��L����4�����q<O4A<��Wb�i���#e�4tM�^��c��)S��-1�ag8=���+FF*KF�����u(�,�kyH�]�3�l
�v�l.9�AaWCo=�$�&���B
�k��*�����i��-��/�?�@�Y��`Y
�Ld��E��YG/uh7���y���[�1O8V�����9Ul?3C��
�����I������,���)���D�+f-}�7!�
���Z����re�Z�S���h(�_��wi�:7��qITBkz��H�o\"q��}C���������0�\KUv%�����8|��W��;� ���>�^����Q��,�/������&!9FA�R%�������<�27���\�a[���@L�[�V~�$g��x_��jb��6y�\Hc��m�E�ojB
b�k�^2�R�;��A~6c�;���ps)<��-?�;�@b�J��]�5	���%D�h1�]��a���T��O�r�W�����]{v�{�-��)�,�^�I`�*:��j4��I��X���KN!`��(����t��(�!��`g4�P�cM�,�S&���8f.P�x_�^CU~��/#Z%�.��X+���)�J�����0���B��m���W� %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm)<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Communicated with Cloudflare successfully.Congratulation! Your file was already optmizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDrop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization SettingsLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually added to blacklistManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.Non cacheableNot AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlacklistRemoved backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisURI ExcludesURI Paths containing these strings will NOT be cached as public.URLUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Zero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsuser agentsPO-Revision-Date: 2021-04-19 19:44:47+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: en_GB
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm)<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA domain key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimised.APIAccelerates the speed by caching Gravatar (Globally Recognised Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images.After verifying that the cache works in general, please test the basket.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimised images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimised images.Automatically request optimisation via cron job.Avatar list in queue waiting for updateBack end .htaccess PathBack end Heartbeat ControlBack end Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a grey image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all binned commentsClean all binned posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean binned comments successfully.Clean binned posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimised version.Click to switch to original (unoptimised) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Communicated with Cloudflare successfully.Congratulations! Your file was already optimisedCongratulations, all gathered!Congratulations, all requested!Congratulations, your domain key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️ by the LiteSpeed team.Credits are not enough to proceed with the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimised version of WebP file.Currently using optimised version of file.Currently using original (unoptimised) version of WebP file.Currently using original (unoptimised) version of file.Custom SitemapDB Optimisation SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimiserDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimisation DataDestroyed all optimisation data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by Ajax to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain keyDomain Key hash mismatchDrop domain from sitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services to directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimisationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFront end .htaccess PathFront end Heartbeat ControlFront end Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHeartbeatHeartbeat ControlHigh-performance page caching and site optimisation from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimisation.However, there is no way of knowing all the possible customisations that were implemented..htaccess did not match configuration option..htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localised, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimisationImage Optimisation SettingsImage Optimisation SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimised and pulledImages previously optimisedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain colour placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector so that its style should always be contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimisationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimisationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimisationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimisationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalisationLocalisation SettingsLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually added to blacklistManually runMapMark this page as Maximum valueMaybe laterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New version available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimised WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimisationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.Non cacheableNot AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users, please check thisOperationOptimisation StatusOptimisation SummaryOptimisation ToolsOptimise CSS delivery.Optimise LosslesslyOptimise Original ImagesOptimise TablesOptimise all tables in your databaseOptimise images and save backups of the originals in the same folder.Optimise images using lossless compression.Optimise images with our QUIC.cloud serverOptimised WebP file expired and was cleared.Optimised all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePage OptimisationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimisation of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache BasketPrivately cache basket when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge URL %sPurged All!Purged all caches successfully.Purged the blog!Purged the URL!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files.Remove all previous unfinished image optimisation requests.Remove cookie simulationRemove from BlacklistRemoved backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimisation.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescanned %d images successfully.Rescanned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimised data successfully.Responsive PlaceholderResponsive Placeholder ColourResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimisation requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimisations.Selected roles will be excluded from cache.Send Optimisation RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimised %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognised. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimised image file(s) have expired and were cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an http status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG colour.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimisationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimised images on your siteSwitched images successfully.Switched to optimised file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank you for using the LiteSpeed Cache plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month's UsageThis action should only be used if things are cached incorrectly.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will disable LSCache and all optimisation features for debug purpose.This will disable the settings page on all subsites.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimised files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomise CDN hostname, define multiple hostnames for the same resources.To test the basket, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimised in this monthTrackbacks/PingbacksBinned commentsBinned PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in back end editor.Turn ON to control heartbeat on back end.Turn ON to control heartbeat on front end.Turn on auto upgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisURI ExcludesURI Paths containing these strings will NOT be cached as public.URLUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimised FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest WordPress release versionUse original images (unoptimised) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimised version of file. Value rangeVariables %s will be replaced with the configured background colour.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologise for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimisation once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Zero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsuser agents# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in English (UK)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-04-19 19:44:47+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: en_GB\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Purged!"

#: tpl/page_optm/settings_css.tpl.php:30
msgid "Minify CSS files and inline CSS code."
msgstr "Minify CSS files and inline CSS code."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localisation"

#: tpl/page_optm/settings_js.tpl.php:52
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combine all local JS files into a single file."

#: tpl/page_optm/settings_tuning.tpl.php:158
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Listed JS files or inline JS code will not be deferred."

#: tpl/general/settings.tpl.php:94
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Request submitted. Please wait, then refresh the page to see approval notification."

#: src/data.upgrade.func.php:84
msgid "Click here to settings"
msgstr "Click here to settings"

#: src/data.upgrade.func.php:83
msgid "JS Defer"
msgstr "JS Defer"

#: src/data.upgrade.func.php:83
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."

#: src/lang.cls.php:116
msgid "JS Combine External and Inline"
msgstr "JS Combine External and Inline"

#: src/admin-display.cls.php:450
msgid "Dismiss"
msgstr "Dismiss"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "The latest data file is"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "The list will be merged with the predefined nonces in your local data file."

#: tpl/page_optm/settings_css.tpl.php:43
msgid "Combine CSS files and inline CSS code."
msgstr "Combine CSS files and inline CSS code."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minify JS files and inline JS codes."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Listed JS files or inline JS code will not be minified/combined."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Listed CSS files or inline CSS code will not be minified/combined."

#: src/css.cls.php:60 src/root.cls.php:176
msgid "Queue cleared successfully."
msgstr "Queue cleared successfully."

#: src/admin-display.cls.php:924
msgid "This setting is overwritten by the Network setting"
msgstr "This setting is overwritten by the Network setting"

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr "LQIP Excludes"

#: tpl/page_optm/settings_media_exc.tpl.php:122
msgid "These images will not generate LQIP."
msgstr "These images will not generate LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Are you sure you want to reset all settings back to the default settings?"

#: tpl/page_optm/settings_html.tpl.php:142
msgid "This option will remove all %s tags from HTML."
msgstr "This option will remove all %s tags from HTML."

#: tpl/general/settings.tpl.php:116
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Are you sure you want to clear all cloud nodes?"

#: src/error.cls.php:84
msgid "The site is not registered on QUIC.cloud."
msgstr "The site is not registered on QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Click here to change."

#: src/cloud.cls.php:763 src/error.cls.php:48
msgid "Click here to set."
msgstr "Click here to set."

#: src/cloud.cls.php:762
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site not recognised. Domain Key has been automatically removed. Please request a new one."

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Setting Up Custom Headers"

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Localisation Settings"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "List the CSS selector so that its style should always be contained in UCSS."

#: tpl/page_optm/settings_css.tpl.php:64
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Use QUIC.cloud online service to generate unique CSS."

#: src/lang.cls.php:110
msgid "Generate UCSS"
msgstr "Generate UCSS"

#: tpl/toolbox/purge.tpl.php:107
msgid "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"
msgstr "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "LiteSpeed Report"

#: tpl/img_optm/summary.tpl.php:222
msgid "Image Thumbnail Group Sizes"
msgstr "Image Thumbnail Group Sizes"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignore certain query strings when caching. (LSWS %s required)"

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "For URLs with wildcards, there may be a delay in initiating scheduled purge."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."

#: src/lang.cls.php:97
msgid "Serve Stale"
msgstr "Serve Stale"

#: src/admin-display.cls.php:921
msgid "This setting is overwritten by the primary site setting"
msgstr "This setting is overwritten by the primary site setting"

#: src/img-optm.cls.php:965
msgid "One or more pulled images does not match with the notified image md5"
msgstr "One or more pulled images does not match with the notified image md5"

#: src/img-optm.cls.php:948
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Some optimised image file(s) have expired and were cleared."

#: src/error.cls.php:64
msgid "You have too many notified images, please pull down notified images first."
msgstr "You have too many notified images, please pull down notified images first."

#: src/error.cls.php:60
msgid "You have too many requested images, please try again in a few minutes."
msgstr "You have too many requested images, please try again in a few minutes."

#: src/img-optm.cls.php:1026
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "Pulled WebP image md5 does not match the notified WebP image md5."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Read LiteSpeed Documentation"

#: src/error.cls.php:80
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "There is proceeding queue not pulled yet. Queue info: %s."

#: src/lang.cls.php:221
msgid "Sitemap Timeout"
msgstr "Sitemap Timeout"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Specify the timeout while parsing the sitemap."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Specify how long, in seconds, Gravatar files are cached."

#: tpl/general/settings.tpl.php:112
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "A domain key is required for QUIC.cloud online services."

#: src/img-optm.cls.php:548
msgid "Cleared %1$s invalid images."
msgstr "Cleared %1$s invalid images."

#: src/img-optm.cls.php:510
msgid "Bypassed %1$s duplicated images."
msgstr "Bypassed %1$s duplicated images."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Request Domain Key"

#: tpl/general/entry.tpl.php:20
msgid "LiteSpeed Cache General Settings"
msgstr "LiteSpeed Cache General Settings"

#: tpl/toolbox/purge.tpl.php:98
msgid "This will delete all cached Gravatar files"
msgstr "This will delete all cached Gravatar files"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Prevent any debug log of listed pages."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Only log listed pages."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Specify the maximum size of the log file."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "To prevent filling up the disk, this setting should be OFF when everything is working."

#: tpl/toolbox/beta_test.tpl.php:49
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."

#: tpl/toolbox/beta_test.tpl.php:33 tpl/toolbox/beta_test.tpl.php:49
msgid "Use latest WordPress release version"
msgstr "Use latest WordPress release version"

#: tpl/toolbox/beta_test.tpl.php:33
msgid "OR"
msgstr "OR"

#: tpl/toolbox/beta_test.tpl.php:24
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Reset Settings"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "LiteSpeed Cache Toolbox"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Beta Test"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Log View"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Debug Settings"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Turn ON to control heartbeat in back end editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "WordPress valid interval is %s seconds"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Turn ON to control heartbeat on back end."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Set to %1$s to forbid heartbeat on %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "WordPress valid interval is %s seconds."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Specify the %s heartbeat interval in seconds."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Turn ON to control heartbeat on front end."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Disable WordPress interval heartbeat to reduce server load."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Heartbeat Control"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "provide more information here to assist the LiteSpeed team with debugging."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Optional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generate Link for Current User"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Passwordless Link"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "System Information"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Go to plugins list"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Install DoLogin Security"

#: tpl/general/settings.tpl.php:206
msgid "Check my public IP from"
msgstr "Check my public IP from"

#: tpl/general/settings.tpl.php:205
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Enter this site's IP address to allow cloud services to directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Specify the timeout while crawling each URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Specify time in seconds for the time between each run interval."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "This will enable crawler cron."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Crawler General Settings"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr "Not Blacklist"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr "Remove from Blacklist"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr "Empty blacklist"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr "Are you sure to delete all existing blacklist?"

#: tpl/crawler/blacklist.tpl.php:56 tpl/crawler/map.tpl.php:69
msgid "Blacklisted due to not cacheable"
msgstr "Blacklisted due to not cacheable"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr "Add to Blacklist"

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr "Operation"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Sitemap Total"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Sitemap List"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Refresh Crawler Map"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Clean Crawler Map"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Sitemap Settings"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Simulation Settings"

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blacklist"
msgstr "Blacklist"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Map"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Summary"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Crawler Sitemap Settings"

#: tpl/crawler/summary.tpl.php:190
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."

#: tpl/crawler/summary.tpl.php:189
msgid "Crawlers cannot run concurrently."
msgstr "Crawlers cannot run concurrently."

#: tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Cache Miss"

#: tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Cache Hit"

#: tpl/crawler/summary.tpl.php:181
msgid "Waiting to be Crawled"
msgstr "Waiting to be Crawled"

#: tpl/crawler/blacklist.tpl.php:57 tpl/crawler/map.tpl.php:70
#: tpl/crawler/summary.tpl.php:160 tpl/crawler/summary.tpl.php:184
msgid "Blacklisted"
msgstr "Blacklisted"

#: tpl/crawler/summary.tpl.php:159
msgid "Miss"
msgstr "Miss"

#: tpl/crawler/summary.tpl.php:158
msgid "Hit"
msgstr "Hit"

#: tpl/crawler/summary.tpl.php:157
msgid "Waiting"
msgstr "Waiting"

#: tpl/crawler/summary.tpl.php:126
msgid "Running"
msgstr "Running"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Use %1$s in %2$s to indicate this cookie has not been set."

#: src/admin-display.cls.php:209
msgid "Add new cookie to simulate"
msgstr "Add new cookie to simulate"

#: src/admin-display.cls.php:208
msgid "Remove cookie simulation"
msgstr "Remove cookie simulation"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Crawler Simulation Settings"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:44
msgid "Htaccess rule is: %s"
msgstr ".htaccess rule is: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "More settings available under %s menu"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "The amount of time, in seconds, that files will be stored in browser cache before expiring."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "OpenLiteSpeed users, please check this"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Browser Cache Settings"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "An optional second parameter may be used to specify cache control. Use a space to separate"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "The above nonces will be converted to ESI automatically."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Browser"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Object"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Default port for %1$s is %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Object Cache Settings"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Specify an http status code and the number of seconds to cache that page, separated by a space."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Specify how long, in seconds, the front page is cached."

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."

#: tpl/page_optm/settings_css.tpl.php:269
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:268
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Avatar list in queue waiting for update"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refresh Gravatar cache by cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Accelerates the speed by caching Gravatar (Globally Recognised Avatars)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Store Gravatar locally."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."

#: tpl/page_optm/settings_media.tpl.php:140
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."

#: tpl/page_optm/settings_media.tpl.php:138
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:121
msgid "Specify the quality when generating LQIP."
msgstr "Specify the quality when generating LQIP."

#: tpl/page_optm/settings_media.tpl.php:107
msgid "Keep this off to use plain color placeholders."
msgstr "Keep this off to use plain colour placeholders."

#: tpl/page_optm/settings_media.tpl.php:106
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."

#: tpl/page_optm/settings_media.tpl.php:92
msgid "Specify the responsive placeholder SVG color."
msgstr "Specify the responsive placeholder SVG colour."

#: tpl/page_optm/settings_media.tpl.php:78
msgid "Variables %s will be replaced with the configured background color."
msgstr "Variables %s will be replaced with the configured background colour."

#: tpl/page_optm/settings_media.tpl.php:77
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Variables %s will be replaced with the corresponding image properties."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "It will be converted to a base64 SVG placeholder on-the-fly."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Specify an SVG to be used as a placeholder when generating locally."

#: tpl/page_optm/settings_media_exc.tpl.php:108
msgid "Prevent any lazy load of listed pages."
msgstr "Prevent any lazy load of listed pages."

#: tpl/page_optm/settings_media_exc.tpl.php:94
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Iframes having these parent class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:79
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Iframes containing these class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:65
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Images having these parent class names will not be lazy loaded."

#: tpl/page_optm/entry.tpl.php:19
msgid "LiteSpeed Cache Page Optimization"
msgstr "LiteSpeed Cache Page Optimisation"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Media Excludes"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:16
msgid "CSS Settings"
msgstr "CSS Settings"

#: tpl/page_optm/settings_css.tpl.php:269
msgid "%s is recommended."
msgstr "%s is recommended."

#: tpl/page_optm/settings_js.tpl.php:63
msgid "Deferred"
msgstr "Deferred"

#: tpl/page_optm/settings_css.tpl.php:266
msgid "Default"
msgstr "Default"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "This can improve the page loading speed."
msgstr "This can improve the page loading speed."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "New developer version %s is available now."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "New Developer Version Available!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Dismiss this notice"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweet this"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Tweet preview"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Learn more"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "You just unlocked a promotion from QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "The image compression quality setting of WordPress out of 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Image Optimisation Settings"

#: tpl/img_optm/summary.tpl.php:373
msgid "Are you sure to destroy all optimized images?"
msgstr "Are you sure to destroy all optimised images?"

#: tpl/img_optm/summary.tpl.php:365
msgid "Use Optimized Files"
msgstr "Use Optimised Files"

#: tpl/img_optm/summary.tpl.php:364
msgid "Switch back to using optimized images on your site"
msgstr "Switch back to using optimised images on your site"

#: tpl/img_optm/summary.tpl.php:361
msgid "Use Original Files"
msgstr "Use Original Files"

#: tpl/img_optm/summary.tpl.php:360
msgid "Use original images (unoptimized) on your site"
msgstr "Use original images (unoptimised) on your site"

#: tpl/img_optm/summary.tpl.php:355
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available."

#: tpl/img_optm/summary.tpl.php:352
msgid "Optimization Tools"
msgstr "Optimisation Tools"

#: tpl/img_optm/summary.tpl.php:325
msgid "Rescan New Thumbnails"
msgstr "Rescan New Thumbnails"

#: tpl/img_optm/summary.tpl.php:317
msgid "Congratulations, all requested!"
msgstr "Congratulations, all requested!"

#: tpl/img_optm/summary.tpl.php:290
msgid "Congratulations, all gathered!"
msgstr "Congratulations, all gathered!"

#: tpl/img_optm/summary.tpl.php:287
msgid "Images not yet gathered"
msgstr "Images not yet gathered"

#: tpl/img_optm/summary.tpl.php:282 tpl/img_optm/summary.tpl.php:309
msgid "What is an image group?"
msgstr "What is an image group?"

#: tpl/img_optm/summary.tpl.php:233
msgid "Delete all backups of the original images"
msgstr "Delete all backups of the original images"

#: tpl/img_optm/summary.tpl.php:215
msgid "Calculate Backups Disk Space"
msgstr "Calculate Backups Disk Space"

#: tpl/img_optm/summary.tpl.php:100
msgid "Optimization Status"
msgstr "Optimisation Status"

#: tpl/img_optm/summary.tpl.php:84
msgid "Gather Image Data"
msgstr "Gather Image Data"

#: tpl/img_optm/summary.tpl.php:72
msgid "Current limit is"
msgstr "Current limit is"

#: tpl/img_optm/summary.tpl.php:71
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."

#: tpl/img_optm/summary.tpl.php:66
msgid "You can request a maximum of %s images at once."
msgstr "You can request a maximum of %s images at once."

#: tpl/img_optm/summary.tpl.php:61
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimise images with our QUIC.cloud server"

#: tpl/img_optm/summary.tpl.php:57 tpl/page_optm/settings_css.tpl.php:90
#: tpl/page_optm/settings_css.tpl.php:200
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "Current closest Cloud server is %s.&#10; Click to redetect."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Revisions newer than this many days will be kept when cleaning revisions."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Day(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Specify the number of most recent revisions to keep when cleaning revisions."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "LiteSpeed Cache Database Optimisation"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "DB Optimisation Settings"

#: tpl/db_optm/manage.tpl.php:166
msgid "Option Name"
msgstr "Option Name"

#: tpl/db_optm/manage.tpl.php:151
msgid "Database Summary"
msgstr "Database Summary"

#: tpl/db_optm/manage.tpl.php:130
msgid "We are good. No table uses MyISAM engine."
msgstr "We are good. No table uses MyISAM engine."

#: tpl/db_optm/manage.tpl.php:122
msgid "Convert to InnoDB"
msgstr "Convert to InnoDB"

#: tpl/db_optm/manage.tpl.php:108
msgid "Tool"
msgstr "Tool"

#: tpl/db_optm/manage.tpl.php:107
msgid "Engine"
msgstr "Engine"

#: tpl/db_optm/manage.tpl.php:106
msgid "Table"
msgstr "Table"

#: tpl/db_optm/manage.tpl.php:99
msgid "Database Table Engine Converter"
msgstr "Database Table Engine Converter"

#: tpl/db_optm/manage.tpl.php:51
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"

#: tpl/dash/dashboard.tpl.php:537
msgid "Currently active crawler"
msgstr "Currently active crawler"

#: tpl/dash/dashboard.tpl.php:534
msgid "Crawler(s)"
msgstr "Crawler(s)"

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:529
msgid "Crawler Status"
msgstr "Crawler Status"

#: tpl/dash/dashboard.tpl.php:448 tpl/dash/dashboard.tpl.php:481
#: tpl/dash/dashboard.tpl.php:513
msgid "Force cron"
msgstr "Force cron"

#: tpl/dash/dashboard.tpl.php:445 tpl/dash/dashboard.tpl.php:478
#: tpl/dash/dashboard.tpl.php:511
msgid "Requests in queue"
msgstr "Requests in queue"

#: tpl/dash/dashboard.tpl.php:440 tpl/dash/dashboard.tpl.php:473
#: tpl/dash/dashboard.tpl.php:506
msgid "Time to execute previous request"
msgstr "Time to execute previous request"

#: tpl/dash/dashboard.tpl.php:417
msgid "Cache Stats"
msgstr "Cache Stats"

#: tpl/dash/dashboard.tpl.php:395
msgid "Private Cache"
msgstr "Private Cache"

#: tpl/dash/dashboard.tpl.php:394
msgid "Public Cache"
msgstr "Public Cache"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Status"
msgstr "Cache Status"

#: tpl/dash/dashboard.tpl.php:360
msgid "Last Pull"
msgstr "Last Pull"

#: tpl/dash/dashboard.tpl.php:325
msgid "Images Requested"
msgstr "Images Requested"

#: tpl/dash/dashboard.tpl.php:310
msgid "Image Groups Prepared"
msgstr "Image Groups Prepared"

#: tpl/dash/dashboard.tpl.php:299 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Image Optimisation Summary"

#: tpl/dash/dashboard.tpl.php:238
msgid "Refresh page score"
msgstr "Refresh page score"

#: tpl/dash/dashboard.tpl.php:227 tpl/img_optm/summary.tpl.php:57
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:200
#: tpl/page_optm/settings_media.tpl.php:176
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Are you sure you want to redetect the closest cloud server for this service?"

#: tpl/dash/dashboard.tpl.php:227
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "Current closest Cloud server is %s.&#10;Click to redetect."

#: tpl/dash/dashboard.tpl.php:222 tpl/dash/dashboard.tpl.php:291
#: tpl/dash/dashboard.tpl.php:456 tpl/dash/dashboard.tpl.php:489
#: tpl/dash/dashboard.tpl.php:521
msgid "Last requested"
msgstr "Last requested"

#: tpl/dash/dashboard.tpl.php:181
msgid "Refresh page load time"
msgstr "Refresh page load time"

#: tpl/dash/dashboard.tpl.php:169
msgid "Go to QUIC.cloud dashboard"
msgstr "Go to QUIC.cloud dashboard"

#: tpl/dash/dashboard.tpl.php:58 tpl/dash/dashboard.tpl.php:497
msgid "Low Quality Image Placeholder"
msgstr "Low Quality Image Placeholder"

#: tpl/dash/dashboard.tpl.php:45
msgid "Sync data from Cloud"
msgstr "Sync data from Cloud"

#: tpl/dash/dashboard.tpl.php:42
msgid "QUIC.cloud Service Usage Statistics"
msgstr "QUIC.cloud Service Usage Statistics"

#: tpl/dash/dashboard.tpl.php:151 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr "Total images optimised in this month"

#: tpl/dash/dashboard.tpl.php:150 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr "Total Usage"

#: tpl/dash/dashboard.tpl.php:131 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr "Pay as You Go Usage Statistics"

#: tpl/dash/dashboard.tpl.php:129 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr "This Month's Usage"

#: tpl/dash/dashboard.tpl.php:128 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr "PAYG Balance"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pay as You Go"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr "Usage"

#: tpl/dash/dashboard.tpl.php:115 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr "Fast Queue Usage"

#: tpl/dash/dashboard.tpl.php:57 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr "CDN Bandwidth"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Usage Statistics"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "LiteSpeed Cache Dashboard"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Network Dashboard"

#: tpl/general/settings.tpl.php:128
msgid "No cloud services currently in use"
msgstr "No cloud services currently in use"

#: tpl/general/settings.tpl.php:116
msgid "Click to clear all nodes for further redetection."
msgstr "Click to clear all nodes for further redetection."

#: tpl/general/settings.tpl.php:115
msgid "Current Cloud Nodes in Service"
msgstr "Current Cloud Nodes in Service"

#: tpl/general/settings.tpl.php:107
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Benefits of linking to a QUIC.cloud account"

#: tpl/general/settings.tpl.php:106
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "You must click the %s button if you wish to associate this site with a QUIC.cloud account."

#: tpl/general/settings.tpl.php:101
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "You must have %1$s first before linking to QUIC.cloud."

#: tpl/general/settings.tpl.php:87
msgid "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."
msgstr "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."

#: tpl/general/settings.tpl.php:86
msgid "Our %s was not whitelisted."
msgstr "Our %s was not whitelisted."

#: tpl/general/settings.tpl.php:85
msgid "The POST callback to %s failed."
msgstr "The POST callback to %s failed."

#: tpl/general/settings.tpl.php:84
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "There are two reasons why we might not be able to communicate with your domain:"

#: tpl/general/settings.tpl.php:83
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "There was a problem retrieving your Domain Key. Please click the %s button to retry."

#: tpl/general/settings.tpl.php:75 tpl/general/settings.tpl.php:77
#: tpl/general/settings.tpl.php:106
msgid "Link to QUIC.cloud"
msgstr "Link to QUIC.cloud"

#: tpl/general/settings.tpl.php:73
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visit My Dashboard on QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Next available request time: <code>After %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Approved"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Requested"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Waiting for Approval"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Waiting for Refresh"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Refresh Domain Key"

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:12 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:42
msgid "General Settings"
msgstr "General Settings"

#: tpl/cdn/settings.tpl.php:126
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Specify which HTML element attributes will be replaced with CDN Mapping."

#: src/admin-display.cls.php:231
msgid "Add new CDN URL"
msgstr "Add new CDN URL"

#: src/admin-display.cls.php:230
msgid "Remove CDN URL"
msgstr "Remove CDN URL"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Enable %s CDN API functionality."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "To enable the following functionality, turn ON Cloudflare API in CDN Settings."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "To manage QUIC.cloud options, please visit"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:16
msgid "WooCommerce Settings"
msgstr "WooCommerce Settings"

#: src/doc.cls.php:119 tpl/general/settings.tpl.php:86
msgid "Current Online Server IPs"
msgstr "Current Online Server IPs"

#: src/doc.cls.php:118
msgid "Before generating key, please verify all IPs on this list are whitelisted"
msgstr "Before generating key, please verify all IPs on this list are whitelisted"

#: src/gui.cls.php:526 src/gui.cls.php:677
#: tpl/page_optm/settings_media.tpl.php:125 tpl/toolbox/purge.tpl.php:88
msgid "LQIP Cache"
msgstr "LQIP Cache"

#: src/gui.cls.php:83
msgid "Private Cache Hits"
msgstr "Private Cache Hits"

#: src/gui.cls.php:82
msgid "Private Caches"
msgstr "Private Caches"

#: src/gui.cls.php:81
msgid "Public Cache Hits"
msgstr "Public Cache Hits"

#: src/gui.cls.php:80
msgid "Public Caches"
msgstr "Public Caches"

#: src/admin-settings.cls.php:242 src/admin-settings.cls.php:276
msgid "Options saved."
msgstr "Options saved."

#: src/img-optm.cls.php:1462
msgid "Removed backups successfully."
msgstr "Removed backups successfully."

#: src/img-optm.cls.php:1400
msgid "Calculated backups successfully."
msgstr "Calculated backups successfully."

#: src/img-optm.cls.php:1341
msgid "Rescaned %d images successfully."
msgstr "Rescanned %d images successfully."

#: src/img-optm.cls.php:1276 src/img-optm.cls.php:1341
msgid "Rescaned successfully."
msgstr "Rescanned successfully."

#: src/img-optm.cls.php:1244
msgid "Destroy all optimization data successfully."
msgstr "Destroyed all optimisation data successfully."

#: src/img-optm.cls.php:1173
msgid "Cleaned up unfinished data successfully."
msgstr "Cleaned up unfinished data successfully."

#: src/img-optm.cls.php:1086
msgid "Pulled %d image(s)"
msgstr "Pulled %d image(s)"

#: src/img-optm.cls.php:1009
msgid "Optimized WebP file expired and was cleared."
msgstr "Optimised WebP file expired and was cleared."

#: src/img-optm.cls.php:889
msgid "Pull Cron is running"
msgstr "Pull Cron is running"

#: src/img-optm.cls.php:650
msgid "No valid image found by Cloud server in the current request."
msgstr "No valid image found by Cloud server in the current request."

#: src/img-optm.cls.php:627
msgid "No valid image found in the current request."
msgstr "No valid image found in the current request."

#: src/img-optm.cls.php:473
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "Pushed %1$s to Cloud server, accepted %2$s."

#: src/img-optm.cls.php:181
msgid "Gathered %d images successfully."
msgstr "Gathered %d images successfully."

#: src/img-optm.cls.php:148
msgid "No new image gathered."
msgstr "No new image gathered."

#: src/lang.cls.php:234
msgid "Revisions Max Age"
msgstr "Revisions Max Age"

#: src/lang.cls.php:233
msgid "Revisions Max Number"
msgstr "Revisions Max Number"

#: src/lang.cls.php:231
msgid "Debug URI Excludes"
msgstr "Debug URI Excludes"

#: src/lang.cls.php:230
msgid "Debug URI Includes"
msgstr "Debug URI Includes"

#: src/lang.cls.php:220
msgid "Drop Domain from Sitemap"
msgstr "Drop domain from sitemap"

#: src/lang.cls.php:215
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:203
msgid "HTML Attribute To Replace"
msgstr "HTML Attribute To Replace"

#: src/lang.cls.php:197
msgid "Use CDN Mapping"
msgstr "Use CDN Mapping"

#: src/lang.cls.php:196
msgid "QUIC.cloud CDN"
msgstr "QUIC.cloud CDN"

#: src/lang.cls.php:194
msgid "Editor Heartbeat TTL"
msgstr "Editor Heartbeat TTL"

#: src/lang.cls.php:193
msgid "Editor Heartbeat"
msgstr "Editor Heartbeat"

#: src/lang.cls.php:192
msgid "Backend Heartbeat TTL"
msgstr "Back end Heartbeat TTL"

#: src/lang.cls.php:191
msgid "Backend Heartbeat Control"
msgstr "Back end Heartbeat Control"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat TTL"
msgstr "Front end Heartbeat TTL"

#: src/lang.cls.php:189
msgid "Frontend Heartbeat Control"
msgstr "Front end Heartbeat Control"

#: tpl/toolbox/edit_htaccess.tpl.php:64
msgid "Backend .htaccess Path"
msgstr "Back end .htaccess Path"

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Frontend .htaccess Path"
msgstr "Front end .htaccess Path"

#: src/lang.cls.php:179
msgid "ESI Nonces"
msgstr "ESI Nonces"

#: src/lang.cls.php:175
msgid "WordPress Image Quality Control"
msgstr "WordPress Image Quality Control"

#: src/lang.cls.php:170
msgid "Create WebP Versions"
msgstr "Create WebP Versions"

#: src/lang.cls.php:167
msgid "Auto Pull Cron"
msgstr "Auto Pull Cron"

#: src/lang.cls.php:166
msgid "Auto Request Cron"
msgstr "Auto Request Cron"

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr "Generate LQIP In Background"

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr "LQIP Minimum Dimensions"

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr "LQIP Quality"

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr "LQIP Cloud Generator"

#: src/lang.cls.php:157
msgid "Responsive Placeholder SVG"
msgstr "Responsive Placeholder SVG"

#: src/lang.cls.php:156
msgid "Responsive Placeholder Color"
msgstr "Responsive Placeholder Colour"

#: src/lang.cls.php:154
msgid "Basic Image Placeholder"
msgstr "Basic Image Placeholder"

#: src/lang.cls.php:152
msgid "Lazy Load URI Excludes"
msgstr "Lazy Load URI Excludes"

#: src/lang.cls.php:151
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Lazy Load Iframe Parent Class Name Excludes"

#: src/lang.cls.php:150
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Lazy Load Iframe Class Name Excludes"

#: src/lang.cls.php:149
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Lazy Load Image Parent Class Name Excludes"

#: src/lang.cls.php:144
msgid "Gravatar Cache TTL"
msgstr "Gravatar Cache TTL"

#: src/lang.cls.php:143
msgid "Gravatar Cache Cron"
msgstr "Gravatar Cache Cron"

#: src/gui.cls.php:536 src/gui.cls.php:687 src/lang.cls.php:142
#: tpl/toolbox/purge.tpl.php:97
msgid "Gravatar Cache"
msgstr "Gravatar Cache"

#: src/lang.cls.php:125
msgid "DNS Prefetch Control"
msgstr "DNS Prefetch Control"

#: src/lang.cls.php:122
msgid "Font Display Optimization"
msgstr "Font Display Optimisation"

#: src/lang.cls.php:101
msgid "Force Public Cache URIs"
msgstr "Force Public Cache URIs"

#: src/lang.cls.php:70
msgid "Notifications"
msgstr "Notifications"

#: src/lang.cls.php:65
msgid "Default HTTP Status Code Page TTL"
msgstr "Default HTTP Status Code Page TTL"

#: src/lang.cls.php:64
msgid "Default REST TTL"
msgstr "Default REST TTL"

#: src/lang.cls.php:58
msgid "Enable Cache"
msgstr "Enable Cache"

#: src/lang.cls.php:54
msgid "Domain Key"
msgstr "Domain key"

#: src/lang.cls.php:53
msgid "Server IP"
msgstr "Server IP"

#: src/lang.cls.php:33
msgid "Duplicate image files ignored"
msgstr "Duplicate image files ignored"

#: src/lang.cls.php:23
msgid "Images not requested"
msgstr "Images not requested"

#: src/cloud.cls.php:1184
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Sync credit allowance with Cloud Server successfully."

#: src/cloud.cls.php:1073
msgid "Domain Key hash mismatch"
msgstr "Domain Key hash mismatch"

#: src/cloud.cls.php:1002
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "Congratulations, your domain key has been approved! The setting has been updated accordingly."

#: src/cloud.cls.php:951
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."

#: src/cloud.cls.php:754 src/cloud.cls.php:932
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Failed to communicate with QUIC.cloud server"

#: src/cloud.cls.php:702
msgid "Good news from QUIC.cloud server"
msgstr "Good news from QUIC.cloud server"

#: src/cloud.cls.php:686 src/cloud.cls.php:694 src/cloud.cls.php:943
msgid "Message from QUIC.cloud server"
msgstr "Message from QUIC.cloud server"

#: src/cloud.cls.php:551
msgid "Please try after %1$s for service %2$s."
msgstr "Please try after %1$s for service %2$s."

#: src/cloud.cls.php:407
msgid "No available Cloud Node."
msgstr "No available Cloud Node."

#: src/cloud.cls.php:359 src/cloud.cls.php:372 src/cloud.cls.php:407
#: src/cloud.cls.php:432 src/cloud.cls.php:551 src/cloud.cls.php:907
msgid "Cloud Error"
msgstr "Cloud Error"

#: src/data.cls.php:213
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."

#: src/media.cls.php:335
msgid "Restore from backup"
msgstr "Restore from backup"

#: src/media.cls.php:325
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:319
msgid "No backup of unoptimized WebP file exists."
msgstr "No backup of unoptimised WebP file exists."

#: src/media.cls.php:306
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "WebP file reduced by %1$s (%2$s)"

#: src/media.cls.php:302
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Currently using original (unoptimised) version of WebP file."

#: src/media.cls.php:297
msgid "Currently using optimized version of WebP file."
msgstr "Currently using optimised version of WebP file."

#: src/media.cls.php:281
msgid "Orig"
msgstr "Orig"

#: src/media.cls.php:278
msgid "(no savings)"
msgstr "(no savings)"

#: src/media.cls.php:278
msgid "Orig %s"
msgstr "Orig %s"

#: src/media.cls.php:275
msgid "Congratulation! Your file was already optmized"
msgstr "Congratulations! Your file was already optimised"

#: src/media.cls.php:266
msgid "No backup of original file exists."
msgstr "No backup of original file exists."

#: src/media.cls.php:266 src/media.cls.php:319
msgid "Using optimized version of file. "
msgstr "Using optimised version of file. "

#: src/media.cls.php:258
msgid "Orig saved %s"
msgstr "Orig saved %s"

#: src/media.cls.php:252
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Original file reduced by %1$s (%2$s)"

#: src/media.cls.php:248 src/media.cls.php:302
msgid "Click to switch to optimized version."
msgstr "Click to switch to optimised version."

#: src/media.cls.php:248
msgid "Currently using original (unoptimized) version of file."
msgstr "Currently using original (unoptimised) version of file."

#: src/media.cls.php:247 src/media.cls.php:301
msgid "(non-optm)"
msgstr "(non-optm)"

#: src/media.cls.php:243 src/media.cls.php:297
msgid "Click to switch to original (unoptimized) version."
msgstr "Click to switch to original (unoptimised) version."

#: src/media.cls.php:243
msgid "Currently using optimized version of file."
msgstr "Currently using optimised version of file."

#: src/media.cls.php:242 src/media.cls.php:267 src/media.cls.php:296
#: src/media.cls.php:320
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:138
msgid "LQIP image preview for size %s"
msgstr "LQIP image preview for size %s"

#: src/placeholder.cls.php:80 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:981
msgid "Previously existed in blacklist"
msgstr "Previously existed in blacklist"

#: src/crawler.cls.php:978
msgid "Manually added to blacklist"
msgstr "Manually added to blacklist"

#: src/htaccess.cls.php:326
msgid "Mobile Agent Rules"
msgstr "Mobile Agent Rules"

#: src/crawler-map.cls.php:321
msgid "Sitemap created successfully: %d items"
msgstr "Sitemap created successfully: %d items"

#: src/crawler-map.cls.php:265
msgid "Sitemap cleaned successfully"
msgstr "Sitemap cleaned successfully"

#: src/admin-display.cls.php:1086
msgid "Invalid IP"
msgstr "Invalid IP"

#: src/admin-display.cls.php:1061
msgid "Value range"
msgstr "Value range"

#: src/admin-display.cls.php:1058
msgid "Smaller than"
msgstr "Smaller than"

#: src/admin-display.cls.php:1055
msgid "Larger than"
msgstr "Larger than"

#: src/admin-display.cls.php:1048
msgid "Zero, or"
msgstr "Zero, or"

#: src/admin-display.cls.php:1036
msgid "Maximum value"
msgstr "Maximum value"

#: src/admin-display.cls.php:1033
msgid "Minimum value"
msgstr "Minimum value"

#: src/admin-display.cls.php:1015
msgid "Path must end with %s"
msgstr "Path must end with %s"

#: src/admin-display.cls.php:998
msgid "Invalid rewrite rule"
msgstr "Invalid rewrite rule"

#: src/admin-display.cls.php:928
msgid "currently set to %s"
msgstr "currently set to %s"

#: src/admin-display.cls.php:918
msgid "This setting is overwritten by the PHP constant %s"
msgstr "This setting is overwritten by the PHP constant %s"

#: src/admin-display.cls.php:131
msgid "Toolbox"
msgstr "Toolbox"

#: src/admin-display.cls.php:127
msgid "Database"
msgstr "Database"

#: src/admin-display.cls.php:125 tpl/dash/dashboard.tpl.php:56
msgid "Page Optimization"
msgstr "Page Optimisation"

#: src/admin-display.cls.php:115 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Dashboard"

#: src/db-optm.cls.php:243
msgid "Converted to InnoDB successfully."
msgstr "Converted to InnoDB successfully."

#: src/purge.cls.php:275
msgid "Cleaned all Gravatar files."
msgstr "Cleaned all Gravatar files."

#: src/purge.cls.php:258
msgid "Cleaned all LQIP files."
msgstr "Cleaned all LQIP files."

#: src/error.cls.php:173
msgid "Unknown error"
msgstr "Unknown error"

#: src/error.cls.php:169
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "Your domain has been forbidden from using our services due to a previous policy violation."

#: src/error.cls.php:165
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "

#: src/error.cls.php:161
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."

#: src/error.cls.php:157
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "The callback validation to your domain failed due to hash mismatch."

#: src/error.cls.php:153
msgid "Your application is waiting for approval."
msgstr "Your application is waiting for approval."

#: src/error.cls.php:149
msgid "Previous request too recent. Please try again after %s."
msgstr "Previous request too recent. Please try again after %s."

#: src/error.cls.php:145
msgid "Previous request too recent. Please try again later."
msgstr "Previous request too recent. Please try again later."

#: src/error.cls.php:140
msgid "Crawler disabled by the server admin."
msgstr "Crawler disabled by the server admin."

#: src/error.cls.php:136
msgid "Failed to create table %s! SQL: %s."
msgstr "Failed to create table %s! SQL: %s."

#: src/error.cls.php:112
msgid "Could not find %1$s in %2$s."
msgstr "Could not find %1$s in %2$s."

#: src/error.cls.php:100
msgid "Credits are not enough to proceed the current request."
msgstr "Credits are not enough to proceed with the current request."

#: src/error.cls.php:88
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "The domain key is not correct. Please try to sync your domain key again."

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet."
msgstr "There is proceeding queue not pulled yet."

#: src/error.cls.php:72
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "Not enough parameters. Please check if the domain key is set correctly"

#: src/error.cls.php:68
msgid "The image list is empty."
msgstr "The image list is empty."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "You will need to set %s to use the online services."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "The setting %s is currently enabled."

#: src/task.cls.php:139
msgid "LiteSpeed Crawler Cron"
msgstr "LiteSpeed Crawler Cron"

#: src/task.cls.php:120
msgid "Every Minute"
msgstr "Every Minute"

#: tpl/general/settings.tpl.php:223
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Generated links may be managed under <a %s>Settings</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Please do NOT share the above passwordless link with anyone."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Install"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:235
msgid "PageSpeed Score"
msgstr "PageSpeed Score"

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:208 tpl/dash/dashboard.tpl.php:275
msgid "Improved by"
msgstr "Improved by"

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:200 tpl/dash/dashboard.tpl.php:267
msgid "After"
msgstr "After"

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:191 tpl/dash/dashboard.tpl.php:259
msgid "Before"
msgstr "Before"

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:178
msgid "Page Load Time"
msgstr "Page Load Time"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."

#: src/lang.cls.php:172
msgid "Preserve EXIF/XMP data"
msgstr "Preserve EXIF/XMP data"

#: tpl/toolbox/beta_test.tpl.php:20
msgid "Try GitHub Version"
msgstr "Try GitHub Version"

#: tpl/cdn/settings.tpl.php:102
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "If you turn any of the above settings OFF, please remove the related file types from the %s box."

#: src/doc.cls.php:89
msgid "Both full and partial strings can be used."
msgstr "Both full and partial strings can be used."

#: tpl/page_optm/settings_media_exc.tpl.php:50
msgid "Images containing these class names will not be lazy loaded."
msgstr "Images containing these class names will not be lazy loaded."

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Lazy Load Image Class Name Excludes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "For example, %1$s defines a TTL of %2$s seconds for %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Maybe later"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Turn on auto upgrade"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:57
msgid "Upgrade"
msgstr "Upgrade"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "New release %s is available now."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "New version available!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Created with ❤️ by the LiteSpeed team."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Sure I'd love to review!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Thank you for using the LiteSpeed Cache plugin!"

#: src/activation.cls.php:504
msgid "Upgraded successfully."
msgstr "Upgraded successfully."

#: src/activation.cls.php:495 src/activation.cls.php:500
msgid "Failed to upgrade."
msgstr "Failed to upgrade."

#: src/conf.cls.php:701
msgid "Changed setting successfully."
msgstr "Changed setting successfully."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "ESI sample for developers"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Replace %1$s with %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "You can turn shortcodes into ESI blocks."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Private Cache vs. Public Cache"

#: tpl/page_optm/settings_html.tpl.php:86
msgid "Append query string %s to the resources to bypass this action."
msgstr "Append query string %s to the resources to bypass this action."

#: tpl/page_optm/settings_html.tpl.php:82
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA will be bypassed automatically."

#: src/admin-display.cls.php:206 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Cookie Values"

#: src/admin-display.cls.php:205
msgid "Cookie Name"
msgstr "Cookie Name"

#: src/lang.cls.php:218
msgid "Cookie Simulation"
msgstr "Cookie Simulation"

#: tpl/page_optm/settings_html.tpl.php:100
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."

#: src/lang.cls.php:67
msgid "Automatically Upgrade"
msgstr "Automatically Upgrade"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Your IP"

#: src/import.cls.php:156
msgid "Reset successfully."
msgstr "Reset successfully."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "This will reset all settings to default settings."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Reset All Settings"

#: tpl/page_optm/settings_tuning.tpl.php:131
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separate critical CSS files will be generated for paths containing these strings."

#: src/lang.cls.php:133
msgid "Separate CCSS Cache URIs"
msgstr "Separate CCSS Cache URIs"

#: tpl/page_optm/settings_tuning.tpl.php:117
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."

#: tpl/page_optm/settings_tuning.tpl.php:116
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "List post types where each item of that type should have its own CCSS generated."

#: src/lang.cls.php:132
msgid "Separate CCSS Cache Post Types"
msgstr "Separate CCSS Cache Post Types"

#: tpl/page_optm/settings_media.tpl.php:182
msgid "Size list in queue waiting for cron"
msgstr "Size list in queue waiting for cron"

#: tpl/page_optm/settings_media.tpl.php:158
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "If set to %1$s, before the placeholder is localised, the %2$s configuration will be used."

#: tpl/page_optm/settings_media.tpl.php:156
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Automatically generate LQIP in the background via a cron-based queue."

#: tpl/page_optm/settings_media.tpl.php:62
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."

#: tpl/page_optm/settings_media.tpl.php:61
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Responsive Placeholder"

#: tpl/toolbox/purge.tpl.php:89
msgid "This will delete all generated image LQIP placeholder files"
msgstr "This will delete all generated image LQIP placeholder files"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Please enable LiteSpeed Cache in the plugin settings."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Please enable the LSCache Module at the server level, or ask your hosting provider."

#: src/cloud.cls.php:634 src/cloud.cls.php:650
msgid "Failed to request via WordPress"
msgstr "Failed to request via WordPress"

#: tpl/page_optm/settings_media.tpl.php:242
msgid "Include the lazy load image JavaScript library inline."
msgstr "Include the lazy load image JavaScript library inline."

#: src/lang.cls.php:165
msgid "Inline Lazy Load Images Library"
msgstr "Inline Lazy Load Images Library"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "High-performance page caching and site optimisation from LiteSpeed"

#: src/img-optm.cls.php:1779
msgid "Reset the optimized data successfully."
msgstr "Reset the optimised data successfully."

#: src/gui.cls.php:753
msgid "Update %s now"
msgstr "Update %s now"

#: src/gui.cls.php:748
msgid "View %1$s version %2$s details"
msgstr "View %1$s version %2$s details"

#: src/gui.cls.php:745
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."

#: src/gui.cls.php:725
msgid "Install %s"
msgstr "Install %s"

#: src/lang.cls.php:30
msgid "Images previously optimized"
msgstr "Images previously optimised"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "LSCache caching functions on this page are currently unavailable!"

#: src/cloud.cls.php:711
msgid "%1$s plugin version %2$s required for this action."
msgstr "%1$s plugin version %2$s required for this action."

#: src/cloud.cls.php:673
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologise for any inconvenience."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Automatically remove the original image backups after fetching optimised images."

#: src/lang.cls.php:169
msgid "Remove Original Backups"
msgstr "Remove Original Backups"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Automatically request optimisation via cron job."

#: tpl/img_optm/summary.tpl.php:186
msgid "A backup of each image is saved before it is optimized."
msgstr "A backup of each image is saved before it is optimised."

#: src/img-optm.cls.php:1659
msgid "Switched images successfully."
msgstr "Switched images successfully."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "This can improve quality but may result in larger images than lossy compression will."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimise images using lossless compression."

#: src/lang.cls.php:171
msgid "Optimize Losslessly"
msgstr "Optimise Losslessly"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Request WebP versions of original images when doing optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimise images and save backups of the originals in the same folder."

#: src/lang.cls.php:168
msgid "Optimize Original Images"
msgstr "Optimise Original Images"

#: tpl/page_optm/settings_css.tpl.php:173
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "When this option is turned %s, it will also load Google Fonts asynchronously."

#: src/purge.cls.php:222
msgid "Cleaned all Critical CSS files."
msgstr "Cleaned all Critical CSS files."

#: tpl/page_optm/settings_css.tpl.php:255
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "This will inline the asynchronous CSS library to avoid render blocking."

#: src/lang.cls.php:121
msgid "Inline CSS Async Lib"
msgstr "Inline CSS Async Lib"

#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:198
msgid "Run Queue Manually"
msgstr "Run Queue Manually"

#: tpl/page_optm/settings_css.tpl.php:84 tpl/page_optm/settings_css.tpl.php:194
msgid "Last requested cost"
msgstr "Last requested cost"

#: tpl/dash/dashboard.tpl.php:437 tpl/dash/dashboard.tpl.php:470
#: tpl/dash/dashboard.tpl.php:503 tpl/page_optm/settings_css.tpl.php:81
#: tpl/page_optm/settings_css.tpl.php:191
#: tpl/page_optm/settings_media.tpl.php:170
msgid "Last generated"
msgstr "Last generated"

#: tpl/page_optm/settings_media.tpl.php:162
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "If set to %s this is done in the foreground, which may slow down page load."

#: tpl/page_optm/settings_css.tpl.php:168
msgid "Optimize CSS delivery."
msgstr "Optimise CSS delivery."

#: tpl/toolbox/purge.tpl.php:71
msgid "This will delete all generated critical CSS files"
msgstr "This will delete all generated critical CSS files"

#: tpl/dash/dashboard.tpl.php:431 tpl/toolbox/purge.tpl.php:70
msgid "Critical CSS"
msgstr "Critical CSS"

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Disabling this may cause WordPress tasks triggered by Ajax to stop working."

#: src/utility.cls.php:249
msgid "right now"
msgstr "right now"

#: src/utility.cls.php:249
msgid "just now"
msgstr "just now"

#: tpl/img_optm/summary.tpl.php:251
msgid "Saved"
msgstr "Saved"

#: tpl/img_optm/summary.tpl.php:245
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Last ran"

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:237
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "You will be unable to Revert Optimisation once the backups are deleted!"

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:236
msgid "This is irreversible."
msgstr "This is irreversible."

#: tpl/img_optm/summary.tpl.php:256
msgid "Remove Original Image Backups"
msgstr "Remove Original Image Backups"

#: tpl/img_optm/summary.tpl.php:255
msgid "Are you sure you want to remove all image backups?"
msgstr "Are you sure you want to remove all image backups?"

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:200
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:197 tpl/img_optm/summary.tpl.php:248
msgid "Files"
msgstr "Files"

#: tpl/img_optm/summary.tpl.php:193
msgid "Last calculated"
msgstr "Last calculated"

#: tpl/img_optm/summary.tpl.php:208
msgid "Calculate Original Image Storage"
msgstr "Calculate Original Image Storage"

#: tpl/img_optm/summary.tpl.php:182
msgid "Storage Optimization"
msgstr "Storage Optimisation"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."

#: src/lang.cls.php:174
msgid "WebP For Extra srcset"
msgstr "WebP For Extra srcset"

#: tpl/cdn/settings.tpl.php:128 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Use the format %1$s or %2$s (element is optional)."

#: tpl/cdn/settings.tpl.php:127 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Only attributes listed here will be replaced."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Specify which element attributes will be replaced with WebP."

#: src/lang.cls.php:173
msgid "WebP Attribute To Replace"
msgstr "WebP Attribute To Replace"

#: tpl/cdn/settings.tpl.php:165
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Only files within these directories will be pointed to the CDN."

#: src/lang.cls.php:205
msgid "Included Directories"
msgstr "Included Directories"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "A Purge All will be executed when WordPress runs these hooks."

#: src/lang.cls.php:181
msgid "Purge All Hooks"
msgstr "Purge All Hooks"

#: src/purge.cls.php:184
msgid "Purged all caches successfully."
msgstr "Purged all caches successfully."

#: src/gui.cls.php:469 src/gui.cls.php:560 src/gui.cls.php:610
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:413
msgid "Forced cacheable"
msgstr "Forced cacheable"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be cached regardless of no-cacheable settings."

#: src/lang.cls.php:100
msgid "Force Cache URIs"
msgstr "Force Cache URIs"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Exclude Settings"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "This will disable LSCache and all optimisation features for debug purpose."

#: src/lang.cls.php:223 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Disable All Features"

#: src/gui.cls.php:496 src/gui.cls.php:647 tpl/toolbox/purge.tpl.php:61
msgid "Opcode Cache"
msgstr "Opcode Cache"

#: src/gui.cls.php:477 src/gui.cls.php:618 tpl/toolbox/purge.tpl.php:43
msgid "CSS/JS Cache"
msgstr "CSS/JS Cache"

#: src/gui.cls.php:706 tpl/img_optm/summary.tpl.php:175
msgid "Remove all previous unfinished image optimization requests."
msgstr "Remove all previous unfinished image optimisation requests."

#: src/gui.cls.php:707 tpl/img_optm/summary.tpl.php:177
msgid "Clean Up Unfinished Data"
msgstr "Clean Up Unfinished Data"

#: src/lang.cls.php:31
msgid "Images failed with other errors"
msgstr "Images failed with other errors"

#: src/lang.cls.php:34
msgid "Images with wrong meta"
msgstr "Images with wrong meta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Join Us on Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Join the %s community."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Want to connect with other LiteSpeed users?"

#: tpl/cdn/settings.tpl.php:203
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Get it from <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:213
msgid "Your Email address on %s."
msgstr "Your Email address on %s."

#: tpl/cdn/settings.tpl.php:193
msgid "Use %s API functionality."
msgstr "Use %s API functionality."

#: tpl/cdn/settings.tpl.php:79
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "To randomise CDN hostname, define multiple hostnames for the same resources."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Join LiteSpeed Slack community"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visit LSCWP support forum"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Rate %s on %s"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:347
msgid "Images notified to pull"
msgstr "Images notified to pull"

#: src/lang.cls.php:32
msgid "Image files missing"
msgstr "Image files missing"

#: tpl/img_optm/summary.tpl.php:280 tpl/img_optm/summary.tpl.php:307
msgid "What is a group?"
msgstr "What is a group?"

#: src/admin-display.cls.php:1154
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1151
msgid "%s group"
msgstr "%s group"

#: src/admin-display.cls.php:1141
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1138
msgid "%s groups"
msgstr "%s groups"

#: src/crawler.cls.php:826
msgid "Guest"
msgstr "Guest"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "To crawl the site as a logged-in user, enter the user ids to be simulated."

#: src/lang.cls.php:217
msgid "Role Simulation"
msgstr "Role Simulation"

#: tpl/crawler/summary.tpl.php:170
msgid "running"
msgstr "running"

#: tpl/db_optm/manage.tpl.php:167
msgid "Size"
msgstr "Size"

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:556
msgid "Ended reason"
msgstr "Ended reason"

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:549
msgid "Last interval"
msgstr "Last interval"

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:542
msgid "Current crawler started at"
msgstr "Current crawler started at"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Run time for previous crawler"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d seconds"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Last complete run time for all crawlers"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Current sitemap crawl started at"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Save transients in database when %1$s is %2$s."

#: src/lang.cls.php:94
msgid "Store Transients"
msgstr "Store Transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "If %1$s is %2$s, then %3$s must be populated!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Server allowed max value"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Server enforced value"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Server allowed min value"

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:61
#: tpl/cache/settings-excludes.tpl.php:94 tpl/cdn/settings.tpl.php:78
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTE"

#: src/admin-display.cls.php:1107
msgid "Server variable(s) %s available to override this setting."
msgstr "Server variable(s) %s available to override this setting."

#: src/admin-display.cls.php:1106 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:175
#: tpl/page_optm/settings_html.tpl.php:85
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:101
#: tpl/page_optm/settings_tuning.tpl.php:162
#: tpl/page_optm/settings_tuning.tpl.php:183
#: tpl/toolbox/edit_htaccess.tpl.php:54 tpl/toolbox/edit_htaccess.tpl.php:71
msgid "API"
msgstr "API"

#: src/purge.cls.php:333
msgid "Reset the entire opcode cache successfully."
msgstr "Reset the entire opcode cache successfully."

#: src/purge.cls.php:321
msgid "Opcode cache is not enabled."
msgstr "Opcode cache is not enabled."

#: src/import.cls.php:132
msgid "Imported setting file %s successfully."
msgstr "Imported setting file %s successfully."

#: src/import.cls.php:75
msgid "Import failed due to file error."
msgstr "Import failed due to file error."

#: tpl/page_optm/settings_css.tpl.php:44 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "How to Fix Problems Caused by CSS/JS Optimisation."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "This will generate extra requests to the server, which will increase server load."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."

#: src/lang.cls.php:183
msgid "Instant Click"
msgstr "Instant Click"

#: tpl/toolbox/purge.tpl.php:62
msgid "Reset the entire opcode cache"
msgstr "Reset the entire opcode cache"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "This will import settings from a file and override all current LiteSpeed Cache settings."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Last imported"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Import"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Import Settings"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "This will export all current LiteSpeed Cache settings and save them as a file."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Last exported"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Export"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Export Settings"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Import / Export"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Use keep-alive connections to speed up cache operations."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Database to be used"

#: src/lang.cls.php:89
msgid "Redis Database ID"
msgstr "Redis Database ID"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Specify the password used when connecting."

#: src/lang.cls.php:88
msgid "Password"
msgstr "Password"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Only available when %s is installed."

#: src/lang.cls.php:87
msgid "Username"
msgstr "Username"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Your %s Hostname or IP address."

#: src/lang.cls.php:83
msgid "Method"
msgstr "Method"

#: src/purge.cls.php:374
msgid "Purge all object caches successfully."
msgstr "Purge all object caches successfully."

#: src/purge.cls.php:361
msgid "Object cache is not enabled."
msgstr "Object cache is not enabled."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Improve wp-admin speed through caching. (May encounter expired data)"

#: src/lang.cls.php:92
msgid "Persistent Connection"
msgstr "Persistent Connection"

#: src/lang.cls.php:91
msgid "Do Not Cache Groups"
msgstr "Do Not Cache Groups"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groups cached at the network level."

#: src/lang.cls.php:90
msgid "Global Groups"
msgstr "Global Groups"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Connection Test"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "%s Extension"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr "Status"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "Default TTL for cached objects."

#: src/lang.cls.php:86
msgid "Default Object Lifetime"
msgstr "Default Object Lifetime"

#: src/lang.cls.php:85
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:84
msgid "Host"
msgstr "Host"

#: src/gui.cls.php:486 src/gui.cls.php:637 src/lang.cls.php:82
#: tpl/dash/dashboard.tpl.php:396 tpl/toolbox/purge.tpl.php:52
msgid "Object Cache"
msgstr "Object Cache"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Failed"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Passed"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Not Available"

#: tpl/toolbox/purge.tpl.php:53
msgid "Purge all the object caches"
msgstr "Purge all the object caches"

#: src/cdn/cloudflare.cls.php:262
msgid "Failed to communicate with Cloudflare"
msgstr "Failed to communicate with Cloudflare"

#: src/cdn/cloudflare.cls.php:253
msgid "Communicated with Cloudflare successfully."
msgstr "Communicated with Cloudflare successfully."

#: src/cdn/cloudflare.cls.php:159
msgid "No available Cloudflare zone"
msgstr "No available Cloudflare zone"

#: src/cdn/cloudflare.cls.php:145
msgid "Notified Cloudflare to purge all successfully."
msgstr "Notified Cloudflare to purge all successfully."

#: src/cdn/cloudflare.cls.php:129
msgid "Cloudflare API is set to off."
msgstr "Cloudflare API is set to off."

#: src/cdn/cloudflare.cls.php:112
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Notified Cloudflare to set development mode to %s successfully."

#: tpl/cdn/settings.tpl.php:228
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Once saved, it will be matched with the current list and completed automatically."

#: tpl/cdn/settings.tpl.php:227
msgid "You can just type part of the domain."
msgstr "You can just type part of the domain."

#: tpl/cdn/settings.tpl.php:219
msgid "Domain"
msgstr "Domain"

#: src/lang.cls.php:207
msgid "Cloudflare API"
msgstr "Cloudflare API"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Purge Everything"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cloudflare Cache"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Development Mode will be turned off automatically after three hours."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Development mode will be automatically turned off in %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "Current status is %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "Current status is %1$s since %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Check Status"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Turn OFF"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Turn ON"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Development Mode"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Cloudflare Zone"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Cloudflare Domain"

#: src/gui.cls.php:627 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:34
msgid "For example"
msgstr "For example"

#: tpl/page_optm/settings_html.tpl.php:33
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Prefetching DNS can reduce latency for visitors."

#: src/lang.cls.php:124
msgid "DNS Prefetch"
msgstr "DNS Prefetch"

#: tpl/page_optm/settings_media.tpl.php:31
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Adding Style to Your Lazy-Loaded Images"

#: src/admin-display.cls.php:969 src/admin-display.cls.php:974
#: tpl/cdn/settings.tpl.php:99
msgid "Default value"
msgstr "Default value"

#: tpl/cdn/settings.tpl.php:96
msgid "Static file type links to be replaced by CDN links."
msgstr "Static file type links to be replaced by CDN links."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "For example, to drop parameters beginning with %s, %s can be used here."

#: src/lang.cls.php:80
msgid "Drop Query String"
msgstr "Drop Query String"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."

#: src/lang.cls.php:182
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Improve HTTP/HTTPS Compatibility"

#: tpl/img_optm/summary.tpl.php:378
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Remove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files."

#: tpl/img_optm/summary.tpl.php:374
msgid "Destroy All Optimization Data"
msgstr "Destroy All Optimisation Data"

#: tpl/img_optm/summary.tpl.php:324
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimisation requests."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "This will increase the size of optimised files."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Clear Log"

#: thirdparty/woocommerce.content.tpl.php:23
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "To test the basket, visit the <a %s>FAQ</a>."

#: src/utility.cls.php:252
msgid " %s ago"
msgstr " %s ago"

#: src/media.cls.php:311
msgid "WebP saved %s"
msgstr "WebP saved %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "If you run into any issues, please refer to the report number in your support message."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "This will also generate an API key from LiteSpeed's Server."

#: tpl/img_optm/summary.tpl.php:133
msgid "Last pull initiated by cron at %s."
msgstr "Last pull initiated by cron at %s."

#: tpl/img_optm/summary.tpl.php:87
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Images will be pulled automatically if the cron job is running."

#: tpl/img_optm/summary.tpl.php:87
msgid "Only press the button if the pull cron job is disabled."
msgstr "Only press the button if the pull cron job is disabled."

#: tpl/img_optm/summary.tpl.php:94
msgid "Pull Images"
msgstr "Pull Images"

#: tpl/img_optm/summary.tpl.php:118
msgid "This process is automatic."
msgstr "This process is automatic."

#: tpl/dash/dashboard.tpl.php:357 tpl/img_optm/summary.tpl.php:342
msgid "Last Request"
msgstr "Last Request"

#: src/lang.cls.php:27
msgid "Images failed to pull"
msgstr "Images failed to pull"

#: src/lang.cls.php:28 src/lang.cls.php:29
msgid "Images failed to fetch"
msgstr "Images failed to fetch"

#: tpl/img_optm/summary.tpl.php:339
msgid "Images Pulled"
msgstr "Images Pulled"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Report"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Send to LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Report date"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Report number"

#: thirdparty/woocommerce.content.tpl.php:91
msgid "Privately cache cart when not empty."
msgstr "Privately cache basket when not empty."

#: thirdparty/woocommerce.content.tpl.php:86
msgid "Privately Cache Cart"
msgstr "Privately Cache Basket"

#: src/media.cls.php:192
msgid "LiteSpeed Optimization"
msgstr "LiteSpeed Optimisation"

#: src/lang.cls.php:129
msgid "Load Google Fonts Asynchronously"
msgstr "Load Google Fonts Asynchronously"

#: src/lang.cls.php:66
msgid "Browser Cache TTL"
msgstr "Browser Cache TTL"

#: tpl/img_optm/summary.tpl.php:346
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Results can be checked in <a %s>Media Library</a>."

#: src/doc.cls.php:53 src/doc.cls.php:105 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:49 tpl/img_optm/summary.tpl.php:62
#: tpl/img_optm/summary.tpl.php:102 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Learn More"

#: src/lang.cls.php:26
msgid "Images optimized and pulled"
msgstr "Images optimised and pulled"

#: src/lang.cls.php:24 tpl/dash/dashboard.tpl.php:337
msgid "Images requested"
msgstr "Images requested"

#: tpl/img_optm/summary.tpl.php:314
msgid "Images not yet requested"
msgstr "Images not yet requested"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "Images total"
msgstr "Images total"

#: src/img-optm.cls.php:1716
msgid "Switched to optimized file successfully."
msgstr "Switched to optimised file successfully."

#: src/img-optm.cls.php:1709
msgid "Restored original file successfully."
msgstr "Restored original file successfully."

#: src/img-optm.cls.php:1693
msgid "Enabled WebP file successfully."
msgstr "Enabled WebP file successfully."

#: src/img-optm.cls.php:1687
msgid "Disabled WebP file successfully."
msgstr "Disabled WebP file successfully."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Significantly improve load time by replacing images with their optimised %s versions."

#: src/lang.cls.php:187
msgid "Image WebP Replacement"
msgstr "Image WebP Replacement"

#: tpl/cache/settings-excludes.tpl.php:123
msgid "Selected roles will be excluded from cache."
msgstr "Selected roles will be excluded from cache."

#: tpl/general/entry.tpl.php:7 tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Tuning"

#: tpl/page_optm/settings_tuning.tpl.php:225
msgid "Selected roles will be excluded from all optimizations."
msgstr "Selected roles will be excluded from all optimisations."

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Role Excludes"

#: tpl/general/settings_tuning.tpl.php:7
#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Tuning Settings"

#: tpl/cache/settings-excludes.tpl.php:96
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "If the tag slug is not found, the tag will be removed from the list on save."

#: tpl/cache/settings-excludes.tpl.php:63
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "If the category name is not found, the category will be removed from the list on save."

#: tpl/img_optm/summary.tpl.php:117
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "After the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images."

#: tpl/img_optm/summary.tpl.php:84
msgid "Send Optimization Request"
msgstr "Send Optimisation Request"

#: tpl/img_optm/summary.tpl.php:267
msgid "Image Information"
msgstr "Image Information"

#: tpl/img_optm/summary.tpl.php:336
msgid "Total Reduction"
msgstr "Total Reduction"

#: tpl/img_optm/summary.tpl.php:333
msgid "Optimization Summary"
msgstr "Optimisation Summary"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "LiteSpeed Cache Image Optimisation"

#: src/admin-display.cls.php:123 src/gui.cls.php:593
#: tpl/dash/dashboard.tpl.php:55 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr "Image Optimisation"

#: src/lang.cls.php:134
msgid "JS Deferred Excludes"
msgstr "JS Deferred Excludes"

#: tpl/page_optm/settings_media.tpl.php:48
msgid "For example, %s can be used for a transparent placeholder."
msgstr "For example, %s can be used for a transparent placeholder."

#: tpl/page_optm/settings_media.tpl.php:47
msgid "By default a gray image placeholder %s will be used."
msgstr "By default a grey image placeholder %s will be used."

#: tpl/page_optm/settings_media.tpl.php:46
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Specify a base64 image to be used as a simple placeholder while images finish loading."

#: tpl/page_optm/settings_media_exc.tpl.php:28
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:164
#: tpl/page_optm/settings_tuning.tpl.php:185
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Elements with attribute %s in HTML code will be excluded."

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:102
#: tpl/page_optm/settings_tuning.tpl.php:163
#: tpl/page_optm/settings_tuning.tpl.php:184
msgid "Filter %s is supported."
msgstr "Filter %s is supported."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Listed images will not be lazy loaded."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Lazy Load Image Excludes"

#: src/gui.cls.php:446
msgid "No optimization"
msgstr "No optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:199
msgid "Prevent any optimization of listed pages."
msgstr "Prevent any optimisation of listed pages."

#: src/lang.cls.php:138
msgid "URI Excludes"
msgstr "URI Excludes"

#: tpl/page_optm/settings_html.tpl.php:128
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."

#: src/doc.cls.php:92
msgid "Both full URLs and partial strings can be used."
msgstr "Both full URLs and partial strings can be used."

#: tpl/page_optm/settings_media.tpl.php:213
msgid "Load iframes only when they enter the viewport."
msgstr "Load iframes only when they enter the viewport."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Lazy Load Iframes"

#: tpl/page_optm/settings_media.tpl.php:28
#: tpl/page_optm/settings_media.tpl.php:214
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "This can improve page loading time by reducing initial HTTP requests."

#: tpl/page_optm/settings_media.tpl.php:27
msgid "Load images only when they enter the viewport."
msgstr "Load images only when they enter the viewport."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Lazy Load Images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:14
msgid "Media Settings"
msgstr "Media Settings"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "For example, for %s, %s and %s can be used here."
msgstr "For example, for %s, %s and %s can be used here."

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:143
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."

#: src/admin-display.cls.php:1122
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "To match the beginning, add %s to the beginning of the item."

#: src/admin-display.cls.php:1120
msgid "For example, for %s, %s can be used here."
msgstr "For example, for %s, %s can be used here."

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Maybe later"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "I've already left a review"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Welcome to LiteSpeed"

#: src/lang.cls.php:136
msgid "Remove WordPress Emoji"
msgstr "Remove WordPress Emoji"

#: src/gui.cls.php:454
msgid "More settings"
msgstr "More settings"

#: src/gui.cls.php:435
msgid "Private cache"
msgstr "Private cache"

#: src/gui.cls.php:424
msgid "Non cacheable"
msgstr "Non cacheable"

#: src/gui.cls.php:401
msgid "Mark this page as "
msgstr "Mark this page as "

#: src/gui.cls.php:393
msgid "Purge this page"
msgstr "Purge this page"

#: src/lang.cls.php:123
msgid "Load JS Deferred"
msgstr "Load JS Deferred"

#: tpl/page_optm/settings_tuning.tpl.php:145
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Specify critical CSS rules for above-the-fold content when enabling %s."

#: src/lang.cls.php:131
msgid "Critical CSS Rules"
msgstr "Critical CSS Rules"

#: src/lang.cls.php:119 tpl/page_optm/settings_tuning.tpl.php:145
msgid "Load CSS Asynchronously"
msgstr "Load CSS Asynchronously"

#: tpl/page_optm/settings_html.tpl.php:115
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Prevent Google Fonts from loading on all pages."

#: src/lang.cls.php:130
msgid "Remove Google Fonts"
msgstr "Remove Google Fonts"

#: tpl/page_optm/settings_css.tpl.php:169
#: tpl/page_optm/settings_html.tpl.php:129 tpl/page_optm/settings_js.tpl.php:67
#: tpl/page_optm/settings_media.tpl.php:243
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."

#: src/lang.cls.php:128
msgid "Remove Query Strings"
msgstr "Remove Query Strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."

#: src/lang.cls.php:59 tpl/dash/dashboard.tpl.php:397
msgid "Browser Cache"
msgstr "Browser Cache"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "tags"
msgstr "tags"

#: src/lang.cls.php:105
msgid "Do Not Cache Tags"
msgstr "Do Not Cache Tags"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "To exclude %1$s, insert %2$s."
msgstr "To exclude %1$s, insert %2$s."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "categories"
msgstr "categories"

#: tpl/cache/settings-excludes.tpl.php:57
#: tpl/cache/settings-excludes.tpl.php:90
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr "To prevent %s from being cached, enter them here."

#: src/lang.cls.php:104
msgid "Do Not Cache Categories"
msgstr "Do Not Cache Categories"

#: tpl/cache/settings-excludes.tpl.php:35
msgid "Query strings containing these parameters will not be cached."
msgstr "Query strings containing these parameters will not be cached."

#: src/lang.cls.php:103
msgid "Do Not Cache Query Strings"
msgstr "Do Not Cache Query Strings"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Paths containing these strings will not be cached."

#: src/lang.cls.php:102
msgid "Do Not Cache URIs"
msgstr "Do Not Cache URIs"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "The logs will be output to %s."

#: src/admin-display.cls.php:1124 src/doc.cls.php:74
msgid "One per line."
msgstr "One per line."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "URI Paths containing these strings will NOT be cached as public."

#: src/lang.cls.php:79
msgid "Private Cached URIs"
msgstr "Private Cached URIs"

#: tpl/cdn/settings.tpl.php:179
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Paths containing these strings will not be served from the CDN."

#: src/lang.cls.php:206
msgid "Exclude Path"
msgstr "Exclude Path"

#: tpl/cdn/settings.tpl.php:98
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "This will affect all tags containing attributes: %s %s %s."

#: src/lang.cls.php:202 tpl/cdn/settings.tpl.php:102
msgid "Include File Types"
msgstr "Include File Types"

#: tpl/cdn/settings.tpl.php:92
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."

#: src/lang.cls.php:201
msgid "Include JS"
msgstr "Include JS"

#: tpl/cdn/settings.tpl.php:88
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."

#: src/lang.cls.php:200
msgid "Include CSS"
msgstr "Include CSS"

#: tpl/cdn/settings.tpl.php:84
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."

#: src/lang.cls.php:199
msgid "Include Images"
msgstr "Include Images"

#: src/admin-display.cls.php:228
msgid "CDN URL to be used. For example, %s"
msgstr "CDN URL to be used. For example, %s"

#: src/lang.cls.php:198
msgid "CDN URL"
msgstr "CDN URL"

#: tpl/cdn/settings.tpl.php:142
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."

#: src/lang.cls.php:204
msgid "Original URLs"
msgstr "Original URLs"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "CDN Settings"

#: src/admin-display.cls.php:121 tpl/cdn/settings.tpl.php:194
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:233 src/admin-display.cls.php:827
#: src/admin-display.cls.php:854 src/admin-display.cls.php:906
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:54
#: tpl/page_optm/settings_css.tpl.php:71 tpl/page_optm/settings_js.tpl.php:63
#: tpl/page_optm/settings_media.tpl.php:162
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:232 src/admin-display.cls.php:826
#: src/admin-display.cls.php:855 src/admin-display.cls.php:906
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:71 tpl/cdn/settings.tpl.php:49
#: tpl/page_optm/settings_css.tpl.php:173
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_media.tpl.php:229
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:305
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Notified LiteSpeed Web Server to purge CSS/JS entries."

#: tpl/page_optm/settings_html.tpl.php:20
msgid "Minify HTML content."
msgstr "Minify HTML content."

#: src/lang.cls.php:117
msgid "HTML Minify"
msgstr "HTML Minify"

#: src/lang.cls.php:127
msgid "JS Excludes"
msgstr "JS Excludes"

#: src/data.upgrade.func.php:83 src/lang.cls.php:115
msgid "JS Combine"
msgstr "JS Combine"

#: src/lang.cls.php:114
msgid "JS Minify"
msgstr "JS Minify"

#: src/lang.cls.php:126
msgid "CSS Excludes"
msgstr "CSS Excludes"

#: src/lang.cls.php:108
msgid "CSS Combine"
msgstr "CSS Combine"

#: src/lang.cls.php:107
msgid "CSS Minify"
msgstr "CSS Minify"

#: tpl/page_optm/entry.tpl.php:31
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."

#: tpl/toolbox/purge.tpl.php:44
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "This will purge all minified/combined CSS/JS entries only"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purge %s Error"

#: tpl/db_optm/manage.tpl.php:72
msgid "Database Optimizer"
msgstr "Database Optimiser"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimise all tables in your database"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimise Tables"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Clean all transient options"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "All Transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Clean expired transient options"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Expired Transients"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Clean all trackbacks and pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/Pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Clean all binned comments"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Binned comments"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Clean all spam comments"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Spam Comments"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Clean all binned posts and pages"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Binned Posts"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Clean all auto saved drafts"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Auto Drafts"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Clean all post revisions"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Post Revisions"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Clean All"

#: src/db-optm.cls.php:192
msgid "Optimized all tables."
msgstr "Optimised all tables."

#: src/db-optm.cls.php:182
msgid "Clean all transients successfully."
msgstr "Clean all transients successfully."

#: src/db-optm.cls.php:178
msgid "Clean expired transients successfully."
msgstr "Clean expired transients successfully."

#: src/db-optm.cls.php:174
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Clean trackbacks and pingbacks successfully."

#: src/db-optm.cls.php:170
msgid "Clean trashed comments successfully."
msgstr "Clean binned comments successfully."

#: src/db-optm.cls.php:166
msgid "Clean spam comments successfully."
msgstr "Clean spam comments successfully."

#: src/db-optm.cls.php:162
msgid "Clean trashed posts and pages successfully."
msgstr "Clean binned posts and pages successfully."

#: src/db-optm.cls.php:158
msgid "Clean auto drafts successfully."
msgstr "Clean auto drafts successfully."

#: src/db-optm.cls.php:154
msgid "Clean post revisions successfully."
msgstr "Clean post revisions successfully."

#: src/db-optm.cls.php:127
msgid "Clean all successfully."
msgstr "Clean all successfully."

#: src/lang.cls.php:61
msgid "Default Private Cache TTL"
msgstr "Default Private Cache TTL"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."

#: src/lang.cls.php:180 tpl/page_optm/settings_css.tpl.php:109
#: tpl/page_optm/settings_css.tpl.php:219
msgid "Vary Group"
msgstr "Vary Group"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Cache the built-in Comment Form ESI block."

#: src/lang.cls.php:178
msgid "Cache Comment Form"
msgstr "Cache Comment Form"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Cache the built-in Admin Bar ESI block."

#: src/lang.cls.php:177
msgid "Cache Admin Bar"
msgstr "Cache Admin Bar"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Private"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Public"

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purge Settings"

#: src/lang.cls.php:76
msgid "Cache PHP Resources"
msgstr "Cache PHP Resources"

#: src/lang.cls.php:77 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "Cache Mobile"
msgstr "Cache Mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Advanced level will log more details."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basic"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."

#: src/lang.cls.php:74
msgid "Cache Login Page"
msgstr "Cache Login Page"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cache requests made by WordPress REST API calls."

#: src/lang.cls.php:73
msgid "Cache REST API"
msgstr "Cache REST API"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"

#: src/lang.cls.php:72
msgid "Cache Commenters"
msgstr "Cache Commenters"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Privately cache frontend pages for logged-in users. (LSWS %s required)"

#: src/lang.cls.php:71
msgid "Cache Logged-in Users"
msgstr "Cache Logged-in Users"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Cache Control Settings"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excludes"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:133
msgid "Purge"
msgstr "Purge"

#: src/admin-display.cls.php:119 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "Current server time is %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Specify the time to purge the \"%s\" list."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Both %1$s and %2$s are acceptable."

#: src/lang.cls.php:99 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Scheduled Purge Time"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."

#: src/lang.cls.php:98 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Scheduled Purge URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Shorten query strings in the debug log to improve readability."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Log requested cookie values."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:227
msgid "Log File Size Limit"
msgstr "Log File Size Limit"

#: src/htaccess.cls.php:785
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"

#: src/error.cls.php:104 src/error.cls.php:128
msgid "%s file not writable."
msgstr "%s file not writable."

#: src/error.cls.php:124
msgid "%s file not readable."
msgstr "%s file not readable."

#: src/lang.cls.php:229
msgid "Collapse Query Strings"
msgstr "Collapse Query Strings"

#: src/lang.cls.php:228
msgid "Log Cookies"
msgstr "Log Cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "ESI Settings"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "A TTL of 0 indicates do not cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Recommended value: 28800 seconds (8 hours)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget Cache TTL:"

#: src/lang.cls.php:176 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Enable ESI"

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."

#: src/lang.cls.php:219
msgid "Custom Sitemap"
msgstr "Custom Sitemap"

#: tpl/toolbox/purge.tpl.php:235
msgid "Purge pages by relative or full URL."
msgstr "Purge pages by relative or full URL."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:18
#: tpl/page_optm/settings_css.tpl.php:59 tpl/page_optm/settings_css.tpl.php:164
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr "WARNING"

#: tpl/crawler/summary.tpl.php:106 tpl/dash/dashboard.tpl.php:563
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Last crawled:</b> %s item(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "The next complete sitemap crawl will start at"

#: src/file.cls.php:172
msgid "Failed to write to %s."
msgstr "Failed to write to %s."

#: src/file.cls.php:153
msgid "Folder is not writable: %s."
msgstr "Folder is not writable: %s."

#: src/file.cls.php:145
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Can not create folder: %1$s. Error: %2$s"

#: src/file.cls.php:136
msgid "Folder does not exist: %s"
msgstr "Folder does not exist: %s"

#: src/core.cls.php:288
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Notified LiteSpeed Web Server to purge the list."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Please visit the <a %s>Information</a> page on how to test the cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Allows listed IPs (one per line) to perform certain actions from their browsers."

#: src/lang.cls.php:216
msgid "Server Load Limit"
msgstr "Server Load Limit"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Specify Number of Threads to use while crawling."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."

#: src/lang.cls.php:213
msgid "Crawl Interval"
msgstr "Crawl Interval"

#: src/lang.cls.php:212
msgid "Interval Between Runs"
msgstr "Interval Between Runs"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Specify time in seconds for the duration of the crawl interval."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Specify time in microseconds for the delay between requests during a crawl."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microseconds"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Then another WordPress is installed (NOT MULTISITE) at %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "LiteSpeed Cache Network Cache Settings"

#: tpl/toolbox/purge.tpl.php:170
msgid "Select below for \"Purge by\" options."
msgstr "Select below for \"Purge by\" options."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "LiteSpeed Cache CDN"

#: tpl/crawler/summary.tpl.php:221
msgid "No crawler meta file generated yet"
msgstr "No crawler meta file generated yet"

#: tpl/crawler/summary.tpl.php:203
msgid "Show crawler status"
msgstr "Show crawler status"

#: tpl/crawler/summary.tpl.php:196
msgid "Watch Crawler Status"
msgstr "Watch Crawler Status"

#: tpl/crawler/summary.tpl.php:191
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Please see <a %s>Hooking WP-Cron into the System Task Scheduler</a> to learn how to create the system cron task."

#: tpl/crawler/summary.tpl.php:188
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "Run frequency is set by the Interval Between Runs setting."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Manually run"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reset position"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Run Frequency"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Cron Name"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Crawler Cron"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hour"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d hours"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generated at %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "LiteSpeed Cache Crawler"

#: src/lang.cls.php:214
msgid "Threads"
msgstr "Threads"

#: src/lang.cls.php:211
msgid "Run Duration"
msgstr "Run Duration"

#: src/lang.cls.php:210
msgid "Delay"
msgstr "Delay"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."

#: src/admin-display.cls.php:129 src/lang.cls.php:209
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:580
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Notified LiteSpeed Web Server to purge all pages."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "All pages with Recent Posts Widget"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "This will Purge Pages only"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purge Pages"

#: thirdparty/woocommerce.content.tpl.php:78
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."

#: tpl/cdn/settings.tpl.php:209
msgid "Email Address"
msgstr "Email Address"

#: tpl/general/settings.tpl.php:100
msgid "Warning"
msgstr "Warning"

#: src/gui.cls.php:726
msgid "Install Now"
msgstr "Install Now"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purged the URL!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purged the blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Purged All!"

#: src/purge.cls.php:599
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notified LiteSpeed Web Server to purge error pages."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "If the login cookie was recently changed in the settings, please log out and back in."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "However, there is no way of knowing all the possible customisations that were implemented."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "The network admin setting can be overridden here."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Specify how long, in seconds, public pages are cached."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Specify how long, in seconds, private pages are cached."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."

#: tpl/toolbox/purge.tpl.php:226
msgid "Purge pages by post ID."
msgstr "Purge pages by post ID."

#: tpl/toolbox/purge.tpl.php:38
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purge the LiteSpeed cache entries created by this plugin"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "This will Purge Front Page only"

#: tpl/toolbox/purge.tpl.php:230
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:236
msgid "e.g. Use %s or %s."
msgstr "e.g. Use %s or %s."

#: tpl/toolbox/purge.tpl.php:221
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:124
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "If only the WordPress site should be purged, use Purge All."

#: src/core.cls.php:283
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Notified LiteSpeed Web Server to purge everything."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Use Primary Site Configuration"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "This will disable the settings page on all subsites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Check this option to use the primary site's configuration for all subsites."

#: src/admin-display.cls.php:695 src/admin-display.cls.php:700
msgid "Save Changes"
msgstr "Save Changes"

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The following options are selected, but are not editable in this settings page."
msgstr "The following options are selected, but are not editable in this settings page."

#: tpl/inc/check_if_network_disable_all.php:20
msgid "The network admin selected use primary site configs for all subsites."
msgstr "The network admin selected use primary site configs for all subsites."

#: tpl/toolbox/purge.tpl.php:116
msgid "Empty Entire Cache"
msgstr "Empty Entire Cache"

#: tpl/toolbox/purge.tpl.php:118
msgid "This action should only be used if things are cached incorrectly."
msgstr "This action should only be used if things are cached incorrectly."

#: tpl/toolbox/purge.tpl.php:117
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Clears all cache entries related to this site, <i>including other web applications</i>."

#: tpl/toolbox/purge.tpl.php:123
msgid "This may cause heavy load on the server."
msgstr "This may cause heavy load on the server."

#: tpl/toolbox/purge.tpl.php:122
msgid "This will clear EVERYTHING inside the cache."
msgstr "This will clear EVERYTHING inside the cache."

#: src/gui.cls.php:560
msgid "LiteSpeed Cache Purge All"
msgstr "LiteSpeed Cache Purge All"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "If you would rather not move at litespeed, you can deactivate this plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Create a post, make sure the front page is accurate."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visit the site while logged out."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Examples of test cases include:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "For that reason, please test the site to make sure everything still functions properly."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "This message indicates that the plugin was installed by the server admin."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "LiteSpeed Cache plugin is installed!"

#: src/lang.cls.php:224 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Debug Log"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Admin IP Only"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "The Admin IP option will only output log messages on requests from admin IPs."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Specify how long, in seconds, REST calls are cached."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "The environment report contains detailed information about the WordPress configuration."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "The server will determine if the user is logged in based on the existance of this cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
#: tpl/page_optm/settings_tuning.tpl.php:77
msgid "Note"
msgstr "Note"

#: thirdparty/woocommerce.content.tpl.php:22
msgid "After verifying that the cache works in general, please test the cart."
msgstr "After verifying that the cache works in general, please test the basket."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."

#: src/lang.cls.php:96
msgid "Purge All On Upgrade"
msgstr "Purge All On Upgrade"

#: thirdparty/woocommerce.content.tpl.php:72
msgid "Use Front Page TTL for the Shop Page"
msgstr "Use Front Page TTL for the Shop Page"

#: thirdparty/woocommerce.content.tpl.php:43
msgid "Product Update Interval"
msgstr "Product Update Interval"

#: thirdparty/woocommerce.content.tpl.php:77
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Checking this option will force the shop page to use the front page TTL setting."

#: thirdparty/woocommerce.content.tpl.php:64
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."

#: thirdparty/woocommerce.content.tpl.php:51
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Always purge both product and categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Do not purge categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:50
msgid "Purge product only when the stock status changes."
msgstr "Purge product only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Purge product and categories only when the stock status changes."
msgstr "Purge product and categories only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge categories only when stock status changes."
msgstr "Purge categories only when stock status changes."

#: thirdparty/woocommerce.content.tpl.php:48
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purge product on changes to the quantity or stock status."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess did not match configuration option."
msgstr ".htaccess did not match configuration option."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "If this is set to a number less than 30, feeds will not be cached."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Specify how long, in seconds, feeds are cached."

#: src/lang.cls.php:63
msgid "Default Feed TTL"
msgstr "Default Feed TTL"

#: src/error.cls.php:132
msgid "Failed to get %s file contents."
msgstr "Failed to get %s file contents."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching these pages may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Some themes and plugins add resources via a PHP request."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching this resource may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico is requested on most pages."

#: src/lang.cls.php:75
msgid "Cache favicon.ico"
msgstr "Cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Disabling this option may negatively affect performance."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Invalid login cookie. Invalid characters found."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "WARNING: The .htaccess login cookie and Database login cookie do not match."

#: src/error.cls.php:116
msgid "Invalid login cookie. Please check the %s file."
msgstr "Invalid login cookie. Please check the %s file."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "There is a WordPress installed for %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Example use case:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "The cookie set here will be used for this WordPress installation."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "This setting is useful for those that have multiple web applications for the same domain."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "The default login cookie is %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "No spaces and case sensitive."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SYNTAX: alphanumeric and \"_\"."

#: src/lang.cls.php:186
msgid "Login Cookie"
msgstr "Login Cookie"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "More information about the available commands can be found here."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "These settings are meant for ADVANCED USERS ONLY."

#: tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Current %s Contents"
msgstr "Current %s Contents"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Advanced"

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Advanced Settings"

#: tpl/toolbox/purge.tpl.php:249
msgid "Purge List"
msgstr "Purge List"

#: tpl/toolbox/purge.tpl.php:168
msgid "Purge By..."
msgstr "Purge By..."

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:215
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:209
msgid "Tag"
msgstr "Tag"

#: tpl/toolbox/purge.tpl.php:203
msgid "Post ID"
msgstr "Post ID"

#: tpl/toolbox/purge.tpl.php:197
msgid "Category"
msgstr "Category"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "NOTICE: Database login cookie did not match your login cookie."

#: src/purge.cls.php:684
msgid "Purge url %s"
msgstr "Purge URL %s"

#: src/purge.cls.php:653
msgid "Purge tag %s"
msgstr "Purge tag %s"

#: src/purge.cls.php:626
msgid "Purge category %s"
msgstr "Purge category %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "When disabling the cache, all cached entries for this site will be purged."

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:30
msgid "NOTICE"
msgstr "NOTICE"

#: src/doc.cls.php:104
msgid "This setting will edit the .htaccess file."
msgstr "This setting will edit the .htaccess file."

#: src/error.cls.php:120
msgid "Failed to back up %s file, aborted changes."
msgstr "Failed to back up %s file, aborted changes."

#: src/lang.cls.php:184
msgid "Do Not Cache Cookies"
msgstr "Do Not Cache Cookies"

#: src/lang.cls.php:185
msgid "Do Not Cache User Agents"
msgstr "Do Not Cache User Agents"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "This is to ensure compatibility prior to enabling the cache for all sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Network Enable Cache"

#: thirdparty/woocommerce.content.tpl.php:21
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr "NOTICE:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Other checkboxes will be ignored."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."

#: src/lang.cls.php:78 tpl/cache/settings_inc.cache_mobile.tpl.php:71
msgid "List of Mobile User Agents"
msgstr "List of Mobile User Agents"

#: src/file.cls.php:160 src/file.cls.php:165
msgid "File %s is not writable."
msgstr "File %s is not writable."

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr "JS Settings"

#: src/gui.cls.php:576 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:194
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Manage"

#: src/lang.cls.php:62
msgid "Default Front Page TTL"
msgstr "Default Front Page TTL"

#: src/purge.cls.php:567
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Notified LiteSpeed Web Server to purge the front page."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purge Front Page"

#: tpl/toolbox/beta_test.tpl.php:25
msgid "Example"
msgstr "Example"

#: tpl/cache/settings-excludes.tpl.php:89
msgid "All tags are cached by default."
msgstr "All tags are cached by default."

#: tpl/cache/settings-excludes.tpl.php:56
msgid "All categories are cached by default."
msgstr "All categories are cached by default."

#: src/admin-display.cls.php:1123
msgid "To do an exact match, add %s to the end of the URL."
msgstr "To do an exact match, add %s to the end of the URL."

#: src/admin-display.cls.php:1119
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "The URLs will be compared to the REQUEST_URI server variable."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Select only the archive types that are currently used, the others can be left unchecked."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notes"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Use Network Admin Setting"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Disable"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Disabled"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Enabled"

#: src/lang.cls.php:106
msgid "Do Not Cache Roles"
msgstr "Do Not Cache Roles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Outputs to WordPress debug log."

#: src/lang.cls.php:226
msgid "Debug Level"
msgstr "Debug Level"

#: tpl/general/settings.tpl.php:82 tpl/general/settings.tpl.php:93
#: tpl/general/settings.tpl.php:105 tpl/general/settings.tpl.php:172
#: tpl/general/settings.tpl.php:178 tpl/general/settings.tpl.php:184
#: tpl/general/settings.tpl.php:190 tpl/general/settings.tpl.php:207
msgid "Notice"
msgstr "Notice"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Term archive (include category, tag, and tax)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Daily archive"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Monthly archive"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Yearly archive"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Post type archive"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Author archive"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Home page"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Front page"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "All pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Select which pages will be automatically purged when posts are published/updated."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Auto Purge Rules For Publish/Update"

#: src/lang.cls.php:60
msgid "Default Public Cache TTL"
msgstr "Default Public Cache TTL"

#: src/admin-display.cls.php:938 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr "seconds"

#: src/lang.cls.php:225
msgid "Admin IPs"
msgstr "Admin IPs"

#: src/admin-display.cls.php:117
msgid "General"
msgstr "General"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "LiteSpeed Cache Settings"

#: src/purge.cls.php:203
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Notified LiteSpeed Web Server to purge all LSCache entries."

#: src/gui.cls.php:461 src/gui.cls.php:469 src/gui.cls.php:477
#: src/gui.cls.php:486 src/gui.cls.php:496 src/gui.cls.php:506
#: src/gui.cls.php:516 src/gui.cls.php:526 src/gui.cls.php:536
#: src/gui.cls.php:602 src/gui.cls.php:610 src/gui.cls.php:618
#: src/gui.cls.php:627 src/gui.cls.php:637 src/gui.cls.php:647
#: src/gui.cls.php:657 src/gui.cls.php:667 src/gui.cls.php:677
#: src/gui.cls.php:687 tpl/page_optm/settings_media.tpl.php:125
#: tpl/toolbox/purge.tpl.php:37 tpl/toolbox/purge.tpl.php:43
#: tpl/toolbox/purge.tpl.php:52 tpl/toolbox/purge.tpl.php:61
#: tpl/toolbox/purge.tpl.php:70 tpl/toolbox/purge.tpl.php:79
#: tpl/toolbox/purge.tpl.php:88 tpl/toolbox/purge.tpl.php:97
#: tpl/toolbox/purge.tpl.php:106
msgid "Purge All"
msgstr "Purge All"

#: src/admin-display.cls.php:281 src/gui.cls.php:584
msgid "Settings"
msgstr "Settings"����&y<M g!g()gRg2pg�g�g	�g
�g
�g�g�g�g
h	h h	)h3hmFh�h
�h�h�h3�hhiiN�i8�i='j"ej7�j�jH�j
kk(k8kSk'dk
�k	�k�k�k%�k�k|�kFhl�l%�l	�l"�lmP1m�mT�mZ�m>Anu�n�n.�n-.o/\oL�o2�oIpVpepqp#�p�pQ�pOqXqsnqE�qP(r0yr'�r�r�rsss7sI>s+�s	�s	�s�s �s"�s/t*Htst
{t�t�t��t48u�muf:v �v�v�v�v
�v�v�v#�vw+wKw
Xwcwpw}w�w�w�w�w	�w�w�w
�w
xx+x:xFxSxbx0tx*�xU�xW&y~y �y �y(�yz
zz�4z�z�zK�zP-{	~{�{�{�{�{�{|"|;|"W|z|!�|�|�|&�|"}GA}!�},�}$�}+�})~I~e~}~(�~	�~�~W�~CYl1�%�2��
�%�4�R�c�u���&��.À*�.�L�k�]�����!�-�9�
K�Y�v���������ς�%��B�
`�!k���4��'׃6��6�C�	V�`�t���;��:�$�?�P� k�"����Ņ/ޅ*�<9�7v�����ֆ�
��	���,�=�]�q�x�	��������ǡ܇!��-�G�`�q�����
��Έ�׈}�9����)ʼn�+
�}9���DȊ8
�F�N�;c����^� g�K��8Ԍq
��������ȍ܍��
��.�CG���
����H�����*�H�
L�W�<d�����̐9�9�
U�c�v� ����
��Y��q�����N������������Г�����*�1�A�+H�%t�,��sǔ#;�_������ɕڕ����+�G�La���9��:�0/�)`����c'�G��LӘW �x���
����
��ș���� $�E�M�^�z�
����8����
)�7�R� e�0����ƛڛ#��
�"�1�H��_����8�
D�	R�\�Bn���	����2ĝ)��Z!�,|�����-ٞ��iߟII�;��YϠK)�Vu�U̡L"�lo�BܢY��y�V�`r�JӤg�=��@Ħ=�C�Y�k�~�����ѧ�
��
�<�X�o���?������+�C�_�{���?��٩���� �&8� _�D��ŪlѪ>�J�]�
l��w��7�6��4�I�^��~��
&�1�J�
V�d�
z�/��/���p��<k�
����үۯ�	���c�v�����.���
���
��7�D�hc�̱AԱ����	��ƲӲ'�
��
(�
6�"D�g�p��$��+���#���*3�^�o�
��
������PʴH�Bd�5��7ݵ@�>V�"��=��&���-�A�Y�%s� ��"��&ݷ!�&�@�Y�q�$���������˹ܹd�X� p���/��.Һ��$�0�D�M�j�w���+��Ļ˻����
��%�1�@�O�n�%u���$��
ռ�����@�
Q�%_��������>"�a�s� ����*�� �2�2?�r���"��*˿"��"�<�S�c�<��,��$�
�
�
,�F:���/������
�.�?�6@�;w�1��3��2�6L�0����������������Q�DW�
��#��-��$��?!�a��x�7��2�?�%\�	���������������$�A�EZ�+��*��,��$�:�F�O�m�|���
��
��$��!�����(�5�S�b�t�����������R��c�2y�?��
�����</�5l�S��C��5:�p�p����'�����E;���������;��0��M�j�p��|��/o�&��&��)��7�4O�����
��������
����$��8�F��
�%�,�9�
K�Y�n�z�A��������	����(�4�E�
V�a�m�%|���0����I�K�$c�D��@��9�1H�z�8��T���%�2�>�^�o��+��
����#��=��/�
K�Y�Qv�+������*�=�]�t�������������� �{7�;�����4�S�q�����
����A��S��	S�]�o� �������������+ �&L�s�����Y���$0�2U�����I��
����-�
:�H�:[���������.���d�����M��f��$`�X��Q��70�+h���g���(�G�Q`���0��P��^@�m��	
��)�B�[�9q�v��}"�(������>��+�U?���N��Y��R�_�p�
����&����#����9�8B�
{�0��V��_�Cq�G��a��8_�4��/��7��65�7l�-��)��L��*I�)t�-��(��,��."�KQ�?��?��H�<f�3����R��1�F�^�o�������2����(��5$�Z�o�������e��-��/$�MT�h���]+�=��8��[�c\�C��j�zo�A�q,����`0�'��q��+�HK�W��O�><�{���K�����E�1b�-��M�Y�$j�)��9��O�&C�)j�9��Y�$(�XM�1���A�&+�^R�E��U��(MSv�J�(+IT^�A�4?)tc�*0-.^�2�2�7YF*�F�9Ll:�R�;,Q*~1�;�/	JG	4�	B�	

N)
Qx
o�
X:/�G�91Ew ���Jn
^�
3NL�W����*g<�1�VLX*�]�.3;AQ$]��
��������/�(�)��-���8
�
����
@X%\�
�
�
�����:� :J$[����r�]S5�_�(G8p�#��$
./2^r�HM!VxC�F�
9H b ��K��)+?ks)���DIc y
����d�JK j� �!M�!�!g�!X"Ro"Z�"#)#>#&^#'�##�#�#%�#�$/�$q�$(`%E�%A�%@&JR&F�&.�&Z'6n'L�'-�'G (3h(+�(�(/�()2)):)Zd)�)�)
�)�)�)�)'*9*KW*�*�*�*J�*	+++%+�*+�+(�+�,M�,'>-?f-�-�-	�-
�-�-
�-�-#.*.	3.	=.G.T.~f.
�.	�.�./6#/pZ/*�/S�/MJ0H�0�0E1G1_K1�1�1�1%�120/2`2}2�2�2,�2�2��2K3�30�343,4.`4\�4�4Y�4zV5H�5�6�6>�6;�62+7h^7M�7G8]8o8�8@�8�8Z9e`9�9o�9cR:p�:E';?m;(�;*�;&<(<'0<X<h^</�<�<==2=$R=>w=,�=	�=�=">%>�=>F�>,?i.@#�@�@�@�@�@�@
�@)A/A'<AdA
pA~A
�A�A�A �A�A�AB%'BMBgBwB�B�B�B�B�B�BG�BKECd�Cc�C7ZD-�D-�D2�D!E
*E5E�QE�E
F\,Fd�F�F�FG66G'mG!�G�G'�G/�G1*H+\H3�H,�H/�H1I+KIYwI,�I+�I,*J4WJ+�J(�J!�J)K*-KXK$hKj�K�K!L9L<YL/�L=�LM
M M.2MaMvM�M�M-�M;�M%(N/NN~N!�Nn�N.OBO"UOxO�O�O'�O�O�OP P%2P(XP�P9�P_�P1Q<@Q}QI�Q-�QG
RRR_RwR�R#�R�RP�RR1S#�S�S"�S3�S$T9TQT;cT6�TI�TD UeU!{U�U�U�U
�U
�U�UV,$VQVfVnV�V�V �V �V�VW'W0AW%rW$�W%�W�W'�W#X#:X^XpX�yXQYKYY	�Y@�Y)�Y:Z�UZ�ZN[=O[
�[%�[U�[�\]$]_7]C�]��]	g^q^�^�^�^ �^�^�^_#_I<_�_�_ �_^�_! `B`'^`�`
�`�`P�`#�ab1bBMb?�b!�b�b
c0cNc[c`gc}�cFd!OdJqd�d�d��d�e�e�e�e�e�eff-f6fNfEVf!�f1�f��f&�g*�g%�g�gh'h#>hbhkh�h#�h*�h`�hSi;_iM�i5�i0j�Pjy�jQykt�k[@l�l�l�l�l�l'm)(m%Rm xm�m�m�m�m(�m#n0nB?n �n�n�n�n�n'o.0o_oro�o �o�o�o�o#p'$p�Lpq8q!Squq�q	�q�qL�q�qrr@r0]rY�r9�r"s>s1[s&�so�tO$uAtuf�ucvd�vt�v^[w{�wK6xd�x��xc�ys�yJnz��zUh|P�|F}V}u}�}%�}(�},�}&~B~_~u~O�~�~�~$c<�$��$�#!�#E�i��W��!�	��&�5>�.t�!��RŁ�%�����ʂ
܂���҃MDŽ�&+�3R����F�O� [�|�����
��@dž@�I�ni�F؇�&+�
R�]�
{���
��{��+�I�`�@z�����ω���1-�~_�ފ^��E�	��,�>�BO�������͌,ߌ��.�2G�8z���@Ѝ+�.=�l�$��	��
��Ȏ܎^��FY�Y��@��G;�W��Pې$,�PQ�:��ݑ��&�;D�$��-��5Ӓ+	�"5�%X�!~�/��,Г�� �!�<�Q��h��#�/�CC�I��
іߖ��)
�4�0G�x�"����-��	ݗ%�
�"�'�
A�O�d�w�������.ǘ��.�
?�M�S�k�{�J��˙'ؙ�������i����12�d�4��,��D�V(�*�%��6М@�"H�)k�&����0ΝZ��BZ�E���
���l���5����ǟ̟4ӟN�CW�Q��F�I4�8~�H��<�=�A�D�F�M�_�'�T��S��P�0`�6��*ȣ;�$/��T�E�
5�&C�.j�
������ե��&�E�.V�"��V��4��94�5n���§ק*� �,�5�A�[�(k� ��(��6ި�$&�K�i�����������ϩg��S�:ڪL�b�o���O��<�_-�K��D٬*��I���=���ЮS���
��	� �F=�>��Uð�t6����49�An�;��8�[%�W��(ٳ�
��4�P�a�p�4���´_c�'õ��� �2�P�d�X~�׶޶���3�
M�[�g�������5��#�C�R�Yj�"ĸ,�J�K_�I��A��7�BM�e����
��+1�]�v�
��3��
ͻػ,�X�p���#��e��,&�S�m�����)ǽ+�'�E�[�u���(��8Ծ
�$��A�T�$;�`�={�-������,�NG�b��
����(4�]�v�����&��"��*	�34�h�)��#����%V�'|�D�����M&�t�����������V	�.`�������B��
�������P��{ �1��i��k8�H��9��!'�qI���.����O�k�D��p��n9����0�@�'^�'����?�������.M�#|���X���e���R��j��W�p�����'��.���1�P�Bb�D����A��~=�|��U9�`��Q��cB�\��@�`D�a��I�9Q�6��b��0%�)V�<��/��<��A*�^l�P��T�Oq�D��O�V�k]���$���+�C�(K�t�1��"��%��X�� U�v�������z��?�1]�q��s�u�k��D��>C�q��l��`a�����Z�K	�|U�������-$��R�&��a	�[k�_��J'�#r���P��#�$*�dO�=��<��S/�e��-��+�0C�Ct�#��=��@�m[�#��\��;J���^��3��s,�]��t��7s�_���V!�0x�R�����W��5��-�|?�/��5��8"�[�,x�5��<��V�*o�W�����'��M,�\z�C�)�?E�:��U��6�gM�?��J��"@�^c�V�x�i��7��S4�?��B��*�<��D�T#�cx�:�d!|k��
��1�H�JWd\�0mJ�
���	�*�"3Vv�����0�4?8%x���]�	�	�	�	�	�	

R
e
)i
��

%
7
EPhlE�#��
:
#X
|
�
'�
��
kz>�}%6�F�.!.P(%�4�5�9i�C+U�G�W�2(Gp"�'�)�f	u��3��0�N��$#HYp �|�`"}��a�u"�o�t'��,�0�4%R
x,���9���+�X�I	GSR�K�5:Xp1�[�7W R� =� ' !%H!=n!�!�!.�!f�!f"{"�"�"�"�"<�"#K!#m#
y#�#Z�#�#
�#$		$�$�$]5��Cb�m�1�$���U��pA�������4�V�37(�F>�~�H���jWv(�}���|�t����jiv=52�w�r��LFc�S�����A�O%y]�������4���4
�������!���#��O/g��2�Lq���ge�z+����aQ�I�;m!p��G!�
������'�_$;,�&�)q�k���s�):"$�������A�N]�p�h�oC���I�8�K�Z�P���m����:a+t�r��}�h�^x���&�R��wN�I�_�<�Ks�k:�^��bx�����U���3�����A��IQ�A��=
�<q�����7~7~a����t�-{D
���94H`�i�%
�G����9���?~f�����+=�����MRy/Q�f�I�x�����|���699�E	1�<�0�+����n��
�*�7v;l�/>��K������Jv�H1��T�i�����N����@iM������l"o�v����rO���z!:�8X_Zdn�rX��0�4s��-sB��5�u���Co1���������)�,��@��W���fw�S�-����V�b�=?? ����we6D�F�nS�Z3Q�P80��u�KX�\��d�' ��"�������.\�
K�}�������J��[<��M�.�haPV	D�\S:��EU;���&��s�����YeNB�`{�l�Hf�
�����0��ER��kqX��S��w{&���O`���N��VC�qt($���`���]��L�,-c�|�z6j���a���8�VD��kl�������2ZZ���2#Y[��C�x��T�������R�g�G��ct�dF��6_����e�Y�����x/��iF!z)f5�H�Q]@.zp���^y����&�W�,���j�Gm��u�'T���(�Bn7����������g�L3����'#@�|W	����$������P�y��	���=���?^W��c�*���}5�g<�J�d�1���O���T����� �|#�Bm�^�
�E`E>��( ��UD"�)�;o\M�>u� ��"��+���rc���k�������oh�._�U�G��9���y����M����u[0X{��-�%d#lY���8��{�*�h��.*b*P���
���n%�~���T�3,/�%�?L�'}��j�Y��>@b����[�J2[R�e6�BJ	�\p��� %s ago Cache the built-in Admin Bar ESI block.%1$s %2$s files left in queue%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended.&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.(no savings)(non-optm)(optm).htaccess Path<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).ActivateAdd Missing SizesAdd new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Already CachedAlways purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAppend query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatic generation of critical CSS is in the background via a cron-based queue.Automatic generation of unique CSS is in the background via a cron-based queue.Automatically UpgradeAutomatically enable DNS prefetching for all URLs in the document, including images, CSS, JavaScript, and so forth.Automatically generate LQIP in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By default, the My Account, Checkout, and Cart pages are automatically excluded from caching. Misconfiguration of page associations in WooCommerce settings may cause some pages to be erroneously excluded.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCCSS Per URLCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS MinifyCSS SettingsCSS/JS CacheCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache WP-AdminCache favicon.icoCache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCancelCategoryChanged setting successfully.Changes to this setting do not apply to already-generated LQIPs. To regenerate existing LQIPs, please %s first from the admin bar menu.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean Crawler MapClean Up Unfinished DataClean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned all Unique CSS files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Communicated with Cloudflare successfully.Congratulation! Your file was already optmizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler disabled list is cleared! All crawlers are set to active! Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default path isDefault port for %1$s is %2$s.Default valueDeferredDeferring until page is parsed or delaying till interaction can help reduce resource contention and improve performance causing a lower FID (Core Web Vitals metric).DelayDelay rendering off-screen HTML elements by its selector.DelayedDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.Disable this option to generate CCSS per Post Type instead of per page. This can save significant CCSS quota, however it may result in incorrect CSS styling if your site uses a page builder.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.DomainDomain KeyDomain Key hash mismatchDowngrade not recommended. May cause fatal error due to refactored code.Drop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Elements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all %s server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API Key / API TokenGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestGuest ModeGuest Mode IPsGuest Mode JS ExcludesGuest Mode User AgentsGuest Mode provides an always cacheable landing page for an automated guest's first time visit, and then attempts to update cache varies via AJAX.Guest OptimizationHTML Attribute To ReplaceHTML Lazy Load SelectorsHTML MinifyHTML SettingsHeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.How to choose an UCSS whitelist selector?However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byIn order to avoid an upgrade error, you must be using %1$s or later before you can upgrade to %2$s versions.Include CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInline UCSS to reduce the extra CSS file loading. This option will not be automatically turned on for %1$s pages. To use it on %1$s pages, please set it to ON.InstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS MinifyJS SettingsJS error can be found from the developer console of browser by right clicking and choosing Inspect.Join LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger number will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLink to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed IPs will be considered as Guest Mode visitors.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed JS files or inline JS code will not be optimized by %s.Listed URI will not generate UCSS.Listed User Agents will be considered as Guest Mode visitors.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache View .htaccessLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLiteSpeed cache plugin upgraded. Please refresh the page to complete the configuration data upgrade.Load CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.LocalizationLocalization SettingsLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually added to blacklistManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMoreMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %1$s.NOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node after checked server load.No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNot AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNote: this option only works when %1$s is %2$s.NotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Online node needs to be redetected.Only attributes listed here will be replaced.Only available when %s is installed.Only files within these directories will be pointed to the CDN.Only log listed pages.Only optimize pages for guest (not logged in) visitors. If turned this OFF, CSS/JS/CCSS files will be doubled by each user group.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize for Guests OnlyOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptional when API token used.Options saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePHP Constant %s is supported.Page Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please make sure this IP is the correct one for visiting your site.Please read all warnings before enabling this option.Please see %s for more details.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePredefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit. Master is for release candidate & Dev is for experimental testing.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge %s error pagesPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended to generate the token from Cloudflare API token template "WordPress".Recommended value: 28800 seconds (8 hours).Redetected nodeRedis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemaining Daily QuotaRemove CDN URLRemove Google FontsRemove Noscript TagsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlacklistRemove query strings from internal static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun %s Queue ManuallyRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe a separate cache copy for mobile visitors.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set an explicit width and height on image elements to reduce layout shifts and improve CLS (a Core Web Vitals metric).Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSuccessfully CrawledSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The crawler will use your XML sitemap or sitemap index. Enter the full URL to your sitemap here.The current server is under heavy load.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe selector must exist in the CSS. Parent classes in the HTML will not work.The server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from %1$s%2$s tab.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option can help to correct the cache vary for certain advanced mobile or tablet visitors.This option enables maximum optimization for Guest Mode visitors.This option is bypassed because %1$s option is %2$s.This option is bypassed due to %s option.This option may result in a JS error or layout issue on frontend pages with certain themes/plugins.This option only works when turning %s on.This option will automatically bypass %s option.This option will remove all %s tags from HTML.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This setting will regenerate crawler list and clear the disabled list!This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary. We may use QUIC.cloud services to process & cache your data temporarily.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google Fonts to establish a connection earlier.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all generated unique CSS filesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page from the combined file.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a traditional Content Delivery Network (CDN) or a subdomain for static content with QUIC.cloud CDN.Tweet previewTweet thisUCSS InlineUCSS URI ExcludesUCSS WhitelistURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in %s queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unique CSSUnknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse ESI for CartUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate critical CSS and load remaining CSS asynchronously.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use external object cache functionality.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Dev/Master commitUse latest GitHub Master commitUse latest WordPress release versionUse original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.Useful for above-the-fold images causing CLS (a Core Web Vitals metric).UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsView .htaccessVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When the option is ON, cart information will be implemented as ESI blocks. NOTE: To make it work, you need to turn on %1$s under ESI settings.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.Wildcard %s supported.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You can use this code %1$s in %2$s to specify the htaccess file path.You don't have enough daily quota left for current service today.You don't have enough quota left for current service this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You need to turn %s on and finish all WebP generation to get maximum result.You need to turn %s on to get maximum result.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %1s quota on %2s will still be in use.Your %s Hostname or IP address.Your API key / token is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IPZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server.user agentsPO-Revision-Date: 2021-10-14 06:43:24+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: es
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 hace %s Almacena en la caché el bloque ESI de la barra de administración incluida.%1$s %2$s archivos restantes en la colaPara esta acción se necesita la versión %2$s del plugin %1$s.%d hora%d horas%d minuto%d minutos%d segundosExtensión %sNo se puede leer el archivo %s.No se puede escribir el archivo %s.%s grupo%s grupos%s imagen%s imágenesSe recomienda %s.&nbsp;Si tanto el cron como la ejecución manual se inician en momentos similares, el primero que se inicie tendrá prioridad.(sin guardar)(no-optm)(optm)Ruta del archivo «.htaccess»<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a><a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.<b>Última indexación:</b> %s elemento(s)<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$sHace falta una clave de dominio para usar los servicios online de QUIC.cloud.Un vaciado completo se iniciará cuando WordPress ejecute estos ganchos.Un TTL de 0 implica no cachear.Se guarda una copia de seguridad de cada imagen antes de optimizarla.APIAcelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente).ActivarAñadir tamaños que faltanAñadir una nueva URL de la CDNAñadir una cookie nueva para simularAñadir a las lista negraAñade estilos a tus imágenes de carga diferidaSolo la IP del administradorIPs de administradorAvanzadoAjustes avanzadosEl nivel avanzado registrará más detalles.DespuésDespués de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas.Después de que la caché funcione en general, por favor prueba el carrito.Todos los datos transitoriosTodas las categorías son cacheadas por defecto.Todas las páginasTodas las páginas con widget de Entradas recientesTodas las etiquetas son cacheadas por defecto.Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.Ya en la cachéVaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario.Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separarAñade la cadena de consulta %s a los recursos para evitar esta acción.Clave del dominio solicitada correctamente. Por favor, espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress.Aprobado¿Estás seguro de que quieres borrar todas las listas negras?¿Está seguro de destruir todas las imágenes optimizadas?¿Seguro que quieres vaciar todos los nodos cloud?¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?¿Seguro que quieres restablecer los ajustes a los valores por defecto?Archivo del AutorBorradores automáticosCron de obtención automáticaReglas de vaciado automático para publicación y actualizaciónCron de petición automáticaGenera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.La generación automática de CSS único está en segundo plano a través de una cola basada en cron.Actualizar automáticamenteActivar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.Solicitar automáticamente la optimización mediante un trabajo cron.La lista de avatares está en la cola esperando ser actualizadaRuta del .htaccess de la administraciónControl de heartbeat de la administraciónTTL de heartbeat de la administraciónBásicoMarcador de posición de imagen básicaAntesAntes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blancaBeneficios de enlazar con una cuenta QUIC.cloudPruebas betaLista negraEn lista negraEn la lista negra debido a que no se puede cachearTanto %1$s como %2$s son aceptables.Pueden utilizarse tanto URLs completas como cadenas parciales.Se pueden usa cadenas parciales y completas.NavegadorCaché del navegadorAjustes de la caché del navegadorTTL caché de navegadorEl cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.Por defecto, se utilizará un marcador de posición de imagen gris %s.Por defecto, las páginas «Mi cuenta», «Pago» y «Carrito» son excluidas automáticamente de la caché. Una mala configuración de las asociaciones de páginas en los ajustes de WooCommerce puede hacer que algunas páginas sean excluidas erróneamente.Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien.Saltadas %1$s imágenes duplicadas.CCSSCCSS por URLCDNAncho de banda de la CDNAjustes de CDNURL de CDNURL de la CDN a utilizar. Por ejemplo, %sCombinar CSSCombinación de CSS externo e integradoExcluir CSSMinificar CSSAjustes de CSSCaché CSS/JSCachéCachear barra de administradorCachear formulario de comentarioCachear comentaristasAjustes de control de cachéAcierto de cachéCachear usuarios con sesión iniciadaCachear página de accesoFallo de cachéCache móvilCachear recursos de PHPCachear API RESTEstadísticas de cachéEstado de cachéCaché de WP-AdminCachear favicon.icoCachear peticiones realizadas por llamadas de la API REST de WordPress.Almacena en la caché el bloque ESI del formulario de comentarios incluido.Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias.Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias.Calcular el espacio en disco de las copias de seguridadCalcular almacenamiento original de imágenesCopias de seguridad calculadas correctamente.No se puede crear el directorio: %1$s. Error: %2$sCancelarCategoríaAjuste cambiado con éxito.Los cambios en este ajuste no se aplican a los LQIP ya generados. Para regenerar los LQIP existentes, por favor, primero %s desde el menú de la barra de administración.Comprobar estadoComprobar mi IP pública desdeMarca esta opción para usar la configuración del sitio principal para todos los subsitios.Marcar esta opción forzará a la página de tienda a usar el ajuste de TTL de la página principal.Limpiar todoVaciar el mapa del rastreadorLimpiar datos no finalizadosBorrar todos los borradores guardados automáticamenteBorrar todas las revisiones de entradasBorrar todos los comentarios spamLimpieza completa exitosa.Borrar todos los trackbacks y pingbacksBorrar todas las opciones de datos transitoriosLimpieza de todos los datos transitorios exitosa.Borrar todos los comentarios en la papeleraBorrar todas las entradas y páginas en la papeleraLimpieza de borradores automáticos exitosa.Borrar opciones de datos transitorios expiradosLimpieza de datos transitorios expirados exitosa.Limpieza de revisiones de entradas exitosa.Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisionesLimpieza de comentarios no deseados exitosa.Limpieza de trackbacks y pingbacks exitosa.Limpieza de comentarios en papelera exitosa.Limpieza de páginas y entradas en papelera exitosa.Limpiados todos los archivos CSS críticos.Vaciados todos los archivos de Gravatar.Vaciados todos los archivos LQIP.Limpiados todos los archivos CSS únicos.Datos incompletos limpiados correctamente.Vaciar registroPurgadas %1$s imágenes no válidas.Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>.Haz clic aquí para cambiarlo.Haz clic aquí para configurarlo.Haz clic aquí para los ajustesHaz clic para borrar todos los nodos para volver a detectar.Haz clic para cambiar a la versión optimizada.Haz clic para cambiar a la versión original (no optimizada).Error de la nubeCloudflareAPI de CloudflareLa API de Cloudflare está configurada en off.Caché de CloudflareDominio de CloudflareZona de CloudflareColapsar cadenas de peticionesCombina archivos CSS y código CSS integrado.Combina todos los archivos JS locales en un único archivo.Comunicado con éxito con Cloudflare.¡Felicidades! Tu archivo ya ha sido optimizado¡Felicidades, todas reunidos!¡Felicidades, todas solicitadas!¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia.Prueba de conexiónConvertir a InnoDBConvertido a InnoDB correctamente.Nombre de la cookieSimulación de cookieValores de la cookieNo se ha podido encontrar %1$s en %2$s.Intervalo de indexaciónCrawlerCron del CrawlerAjustes generales del rastreadorAjustes de simulación del rastreadorAjustes de mapa del sitio del rastreadorEstado del rastreadorRastreador desactivado por el administrador del servidor.¡Se ha vaciado la lista de rastreadores desactivados! ¡Todos los rastreadores están activos!Rastreador(es)Los rastreadores no se pueden ejecutar de forma concurrente.Crear versiones WebPCrear una entrada, asegurarse que la página principal está actualizada.Creado con ❤️ por el equipo de LiteSpeed.Los créditos no son suficientes para proceder con la solicitud actual.CSS críticoReglas de CSS críticasNombre del CronContenidos actuales de %sNodos de la nube actual en servicioIPs del servidor en líneaEl servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectar.El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectarlo.El rastreador actual comenzó a lasEl límite actual esLa hora actual del servidor es %s.El rastreo del mapa del sitio actual comenzó a lasEl estado actual es %1$s desde %2$s.El estado actual es %s.Rastreador activoActualmente usando la versión optimizada del archivo WebP.Actualmente usando la versión optimizada del archivo.Actualmente usando la versión original (no optimizada) del archivo WebP.Actualmente usando la versión original (no optimizada) del archivo.Sitemap personalizadoAjustes de optimización de la BDPrefetch DNSControl del prefetch DNSArchivo diarioEscritorioBase de datosOptimizador de base de datosResumen de la base de datosConversor de motor de tabla de base de datosBase de datos a usarDía(s)Nivel de depuraciónRegistro de depuraciónAjustes de depuraciónURIs excluidas de la depuraciónURIs incluidas en la depuraciónPor defectoTTL por defecto del FeedTTL por defecto de la Página PrincipalTTL del código de estado de página por defectoTiempo de vida por defecto del objetoTTL por defecto de la caché privadaTTL por defecto de la caché públicaTTL por defecto de RESTTTL por defecto para objetos cacheados.La ruta por defecto esPuerto por defecto de %1$s es %2$s.Valor por defectoDiferidoAplazar hasta que se analiza la página o retrasar hasta que la interacción pueda ayudar a reducir la contención de recursos y mejorar el rendimiento, lo que provoca un FID más bajo (métrica de Core Web Vitals).RetrasoRetraso al mostrar los elementos HTML fuera de la pantalla por su selector.RetrasadoBorrar todas las copias de seguridad de las imágenes originalesDestruir todos los datos de optimizaciónTodos los datos de optimización destruidos correctamente.Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.Modo de desarrolloEl modo de desarrollo se desactivará automáticamente después de tres horas.El modo de desarrollo se desactivará automáticamente en %s.DesactivarDesactivar todas las característicasDesactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor.Desactiva esta opción para generar CCSS por tipo de contenido en lugar de por página. Esto puede ahorrar una cuota significativa de CCSS, sin embargo, puede resultar en un estilo de CSS incorrecto si tu sitio usa un maquetador de páginas.DesactivadoArchivo WebP desactivado con éxito.Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.Desactivar esta opción puede afectar negativamente al rendimiento.Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes en QUIC.cloudDescartarIgnorar ese avisoCategorías a no cachearCookies a no cachearGrupos a no cachearCadenas de consulta a no cachearNo cachear perfilesEtiquetas a no cachearURIs a no cachearUser Agents a no cachearNo vaciar las categorías al cambiar la cantidad o estado del inventario.DominioClave del dominioDiscordancia de clave de dominioNo se recomienda bajar de versión. Puede causar un error fatal debido a código reprogramado.Quitar dominio del mapa del sitioIgnorar cadenas de consultaArchivos de imagen duplicados ignoradosESINonces de ESIAjustes de ESIESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.Muestra de ESI para desarrolaldoresHeartbeat del editorTTL de heartbeat del editorSe excluirán los elementos con el atributo %s en el código HTML.Se excluirán los elementos con el atributo %s en código html.Dirección de correo electrónicoVaciar la caché enteraVaciar lista negraActivar la funcionalidad %s de la API de la CDN.Activa cacheActivar ESIActivar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress.Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.ActivadoArchivo WebP activado con éxito.Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.Razón de finalizaciónMotorIntroduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN.Cada minutoEjemploEjemplo de uso:Ejemplos de pruebas incluyen:Excluir rutaAjustes de exclusiónExcluirDatos transitorios expiradosExportarAjustes de exportaciónFallidoFallo al hacer copia de seguridad del archivo %s, cambios cancelados.Fallo al comunicar con CloudflareFallo de comunicación con el servidor QUIC.cloudFallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.¡Fallo al crear la tabla %s! SQL: %s.Error al obtener contenido del archivo %s.Fallo en la solicitud desde WordPressFallo al actualizar.Error al escribir a %s.Uso de la cola rápidaNo se puede escribir el archivo %s.ArchivosEl filtro %s es compatible.El directorio no existe: %sEl directorio no es escribible: %s.Optimización de visualización de fuentesEn el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado.Por ejemploPor ejemplo, %1$s define un TTL de %2$s segundos para %3$s.Por ejemplo, los %s pueden usarse para un marcador de posición transparente.Por ejemplo, para %s, %s y %s puede utilizarse aquí.Por ejemplo, para %s, %s puede utilizarse aquí.Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.Por ejemplo, si la página de inicio de esta web se encuentra al %1$s, la página de la tienda puede encontrarse al %2$s.Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s.Para que los servicios online funcionen correctamente, debes hacer una lista blanca de todas las IP %s del servidor.Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.Forzar URLs en cachéForzar URIs de caché púbicaForzar cronForzar cacheablesPágina de inicioRuta del .htaccess de la parte públicaControl de heartbeat de la parte públicaTTL de heartbeat de la parte públicaRecopilar datos de las imágenes%d recopiladas correctamente.Opciones generalesAjustes generalesGenerar LQIP en segundo planoGenerar el enlace para el usuario actualGenerar UCSSGenerado en %sLos enlaces generados pueden gestionarse en los <a %s>Ajustes</a>.Obténla desde <a %1$s>%2$s</a>.Clave/Token global de la APIGrupos globalesIr al escritorio de QUIC.cloudIr a la lista de pluginsBuenas noticias del servidor QUIC.cloudGoogle reCAPTCHA se omitirá automáticamente.Caché de GravatarCron de la caché de GravatarTTL de la caché de GravatarGrupos cacheados a nivel de red.InvitadoModo de invitadoIP del modo de invitadoExclusiones JS del modo de invitadoAgentes de usuario del modo de invitadoEl modo de invitado proporciona una página de destino siempre en la caché para la primera visita de un invitado automatizado y, después, intenta actualizar las variaciones de la caché a través de AJAX.Optimización para invitadosAtributo HTML a reemplazarSelectores HTML de carga diferidaMinificar HTMLAjustes HTMLHeartbeatControl de HeartbeatCaché de páginas de alto rendimiento y optimización de sitio de LiteSpeedAciertoPágina de InicioHostCómo solucionar problemas causados por la optimización CSS/JS.¿Cómo elegir un selector de lista blanca UCSS?Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.El htaccess no coincide con la opción de configuración.La regla de Htaccess es: %sYa he dejado una valoración¡Si %1$s es %2$s entonces debe completarse %3$s!Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.Si no, por favor verifica el ajuste en la <a href="%1$s">pestaña Avanzado</a>.Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo».Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>.Si esto se fija en un número inferior a 30, los feeds no serán cacheados.Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.Si utilizas varios dominios para un sitio y tienes varios dominios en el mapa del sitio, mantén esta opción APAGADA para que el rastreador sepa cómo rastrear cada dominio.Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.Si no quieres la aceleración de litespeed, puedes desactivar este plugin.Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.Los iframes con estos nombres de clase padres no se cargarán de forma diferida.Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)Grupos de imágenes preparadosInformación de imágenesOptimización de imágenesAjustes de optimización de imágenesResumen de la optimización de imágenesTamaños del grupo de imágenes en miniaturaReemplazo de imágenes WebPFaltan archivos de imágenesImágenes recuperadasImágenes solicitadasLas imágenes que contengan estos nombres de clases no tendrán carga diferida.Errores al obtener imágenesErrores al descargar imágenesImágenes fallidas con otros erroresLas imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.Imágenes no solicitadasImágenes que aún no se han reunidoImágenes aún no solicitadasImágenes notificadas para descargarImágenes optimizadas y descargadasImágenes optimizadas anteriormenteImágenes solicitadasTotal imágenesLas imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.Imágenes con metadatos erróneosImportarImportar / ExportarAjustes de importaciónImportación fallida debido a un error en el archivo.Importado con éxito el archivo de ajustes %s.Mejorar compatibilidad HTTP/HTTPSMejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)Mejorado porPara evitar un error de actualización, debes usar la versión %1$s o posterior antes de poder actualizar a las versiones %2$s.Incluir CSSIncluir tipos de archivoIncluir imágenesIncluir JSIncluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.Incluye la biblioteca integrada de JavaScript de carga diferida de imágenes.Directorios incluidosBiblioteca de CSS integrado asíncronoBiblioteca integrada de imágenes en carga diferidaUCSS integrado para reducir la carga adicional de archivos CSS. Esta opción no será activada automáticamente para las páginas %1$s. Para usarla en las páginas %1$s, por favor, actívala.InstalarInstalar %sInstalar la seguridad de DoLoginInstalar ahoraClic instantáneoIntervalo entre ejecucionesIP no válidaCookie de acceso no válida. Encontrados caracteres no válidos.Cookie de acceso no válida. Por favor, comprueba el archivo %s.Regla de reescritura no válidaRecomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero.Se convertirá en un marcador de posición SVG base64 sobre la marcha.Combinar JSCombinación de JS externo e integradoDiferir JSExclusiones de diferido de JSExcluir JSMinificar JSAjustes de JSEl error JS se puede encontrar en la consola de desarrollador del navegador haciendo clic derecho y eligiendo inspeccionar.Únete a la comunidad de Slack de LiteSpeedÚnete a nuestro SlackÚnete a la comunidad %s.Mantén esto apagado para usar marcadores de posición de color.LQIPCaché de LQIPGenerador de LQIP en la nubeExclusiones de LQIPDimensiones mínimas de LQIPCalidad de LQIPVista previa de la imagen LQIP para el tamaño %sNo se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.LSCache¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.Mayor queÚltima lecturaÚltima peticiónÚltimo cálculoHora de la última ejecución completa para todos los rastreadoresÚltima exportaciónÚltimo generadoÚltima importaciónÚltimo intervaloÚltima descarga iniciada por cron a las %s.Última ejecuciónÚltimo pedidoÚltimo coste solicitadoExclusiones de carga diferida de clases de iframesExclusiones de carga diferida de clases padre de iframesRetrasar la carga de iframesExclusión de nombres de clases para carga diferida de imágenesExclusiones de carga retrasada de imágenesExclusiones de carga diferida de clases padresRetrasar la carga de imágenesExclusión de URIs de carga diferidaLeer másAprender másEnlace a QUIC.cloudLista de User Agents móvilesLista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.Lista el selector CSS cuyo estilo debería siempre contenerse en UCSS.Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán.Las IP listadas serán consideradas visitantes en modo invitado.Los archivos JS listados o el código JS integrado no serán diferidos.Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán.Los archivos JS listados o el código JS integrado no serán optimizados por %s.Las URI listadas no generarán UCSS.Los agentes de usuario listados serán considerados visitantes en modo invitado.Las imágenes listadas no se cargarán de forma retrasada.LiteSpeed CacheCDN de la caché de LiteSpeedCrawler de LiteSpeed CacheEscritorio de LiteSpeed CacheOptimización de la base de datos de la caché de LiteSpeedAjustes generales de LiteSpeed CacheOptimización de imágenes de LiteSpeed CacheAjustes de la caché de la red de caché de LiteSpeedOptimización de página de LiteSpeed CacheVaciar toda la caché de LiteSpeedConfiguración de Caché de LiteSpeedCaja de herramientas de LiteSpeedVer el archivo «.htaccess» de LiteSpeed Cache¡El plugin LiteSpeed Cache está instalado!LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS.Cron del rastreador de LiteSpeedOptimización de LiteSpeedInforme de LiteSpeedLiteSpeed TechnologiesActualizado el plugin LiteSpeed Cache. Por favor, actualiza la página para completar la actualización de los datos de configuración.Cargar CSS asíncronamenteCargar Google Fonts asíncronamenteDeferir carga de JSCargar iframes sólo cuando entran en la ventana de visualización.Cargar las imágenes sólo cuando entran en la ventana de visualización.LocalizaciónAjustes de localizaciónRegistrar cookiesLímite de tamaño de archivo de registroVista de registrosRegistra los valores solicitados de las cookies.Cookie de accesoMarcador de imagen de baja calidadMBDEBE SER DIFERENTE DE OTRAS APLICACIONES WEB.GestionarAñadido manualmente a la lista negraEjecutar manualmenteMapaMarcar esta página como Valor máximoPuede que más tardeQuizás más tardeExclusiones de mediosAjustes de mediosMensaje del servidor QUIC.cloudMétodoMinimiza archivos CSS y código CSS integrado.Minificar contenido HTML.Minimiza archivos JS y códigos JS integrados.Valor mínimoFalloReglas de agente móvilArchivo mensualMásAquí se puede encontrar más información sobre los comandos disponibles.Más ajustesMás ajustes disponibles en el menú %sNOTANOTA: La CDN de QUIC.cloud y Cloudflare no usan asignación CDN. Si solo estás usando QUIC.cloud o Cloudflare, deja este ajuste como %1$s.AVISOAVISO:AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.Escritorio de redHabilitar caché de red¡Nueva versión para desarrolladores disponible!¡Nueva versión disponible!La nueva versión de desarrollo %s está disponible.La nueva versión %s está disponible ahora.Próximo tiempo de solicitud disponible: <code>Después de %s</code>No hay ningún nodo de la nube disponible después de comprobar la carga del servidor.No hay ningún nodo de la nube disponible.No hay disponible una zona CloudflareNo existe una copia de seguridad del archivo original.No existe una copia de seguridad del archivo WebP no optimizado.No hay servicios de la nube en usoArchivo meta del crawler aún no generadoNo se ha reunido ninguna imagen nueva.Sin optimizaciónEspacios no permitidos y sensible a mayúsculas.El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual.No se ha encontrado ninguna imagen válida en la petición actual.No se ha analizado ningún mapa del sitio válido para el rastreador.No cacheableNo disponibleNo está en la lista negraNo hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamenteNotaNota: esta opción solo funciona cuando %1$s es %2$s.NotasNotaAvisosAvisado a Cloudflare el vaciado completo con éxito.Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed el vaciado de todas las entradas de LSCache.Solicitado el vaciado de todas las páginas al servidor web LiteSpeed.Solicitado el vaciado de las páginas de error al servidor web LiteSpeed.Solicitado el vaciado de todo al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed el vaciado de la página de inicio.Solicitado el vaciado de la lista al servidor web LiteSpeed.OFFONOObjetoCaché de objetosAjustes de la caché de objetosLa caché de objetos no está activada.Una vez guardado, coincidirá con la lista actual y se completará automáticamente.Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificadoUna por línea.El nodo online tiene que volver a ser detectado.Solo los atributos aquí listados serán reemplazados.Solo disponible cuando está instalado %s.Solo los archivos en estos directorios apuntarán a la CDN.Solo registra las páginas listadas.Optimiza solo las páginas para visitantes invitados (no conectados). Si se desactiva, se duplicarán los archivos CSS/JS/CCSS por cada grupo de usuarios.Solo pulsar el botón si la tarea cron de descarga está desactivada.Caché opcodeLa caché opcache no está habilitada.Marca esto si eres un usuario de OpenLiteSpeedOperaciónEstado de optimizaciónResumen de optimizaciónHerramientas de optimizaciónOptimiza la entrega de CSS.Optimizar sin pérdidaOptimizar imágenes originalesOptimizar tablasOptimizar todas las tablas en tu base de datosOptimizar solamente para invitadosOptimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.Optimizar imágenes usando compresión sin pérdida.Optimiza las imágenes con nuestro servidor en QUIC.cloudEl archivo WebP optimizado caducado ha sido limpiado.Optimizadas todas las tablas.Nombre de la opciónOpcionalOpcional cuando se usa el token de la API.Las opciones han sido guardadas.OriginalOriginal %sAhorrados %s del originalURLs originalesArchivo original reducido en %1$s (%2$s)Otras opciones serán ignoradas.Nuestro %s no estaba en la lista blanca.Se muestra en el registro de depuración de WordPress.Balance de pagosEs compatible la contante %s de PHP.Tiempo de carga de la páginaOptimización de páginaPuntuación de PageSpeedPáginasExitosoContraseñaEnlace sin contraseñaLa ruta debe terminar en %sLas rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.Las rutas que contengan estas cadenas no serán cacheadas.Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.Pago por usoEstadísticas pago por usoConexión persistentePor favor, NO compartas con nadie el enlace de acceso sin contraseña anterior.Por favor, activa LiteSpeed Cache en los ajustes del plugin.Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.Por favor, asegúrate de que esta IP sea la correcta para visitar tu sitio.Por favor, lee todas las advertencias antes de activar esta opción.Por favor, consulta %s para más detalles.Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema.Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Vaciar todo».Por favor, inténtalo después de %1$s para el servicio %2$s.Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la REST API, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda.Por favor, visita la página de <a %s>Información</a> sobre como probar la caché.PuertoID de entradaRevisiones de entradasArchivo de tipo de contenidoLa lista predefinida también se combinará con los ajustes anterioresLa precarga DNS puede reducir la latencia para los visitantes.Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.Conservar los datos EXIF/XMPPulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.Presiona el botón %s para usar el commit de GitHub más reciente. Master es para la versión candidata y Dev es para pruebas experimentales.Evita que cargue Google Fonts en todas las páginas.Evita cualquier registro de depuración de las páginas listadas.Evita cualquier carga diferida de las páginas de la lista.Evitar cualquier optimización de las páginas listadas.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.Anteriormente existía en la lista negraPrivadaCaché privadaAciertos de caché privadaURIs cacheadas privadamenteCachés privadasCaché privadaCachear carrito privadamenteCachear carrito privadamente cuando no esté vacío.Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)Intervalo de actualización de productoPúblicaCaché públicaAciertos de caché públicaCachés públicasPull Cron se está ejecutandoDescargar imágenes%d imagen(es) obtenida(s)El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP.VaciarVaciar error %sPurgar las páginas de error %sPurgar todoVaciar todos los ganchosVaciar todo al actualizarVaciar por...Vaciar todoVaciar la página de inicioVaciar listaVaciar páginasAjustes del vaciadoVació de todas las cachés de objetos correctamente.Vaciar todas las cachés de objetosVaciar las categorías solo cuando el estado del inventario cambie.Vaciar la categoría %sVaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.Vaciar páginas por ID de entrada.Vaciar páginas por URL completa o relativa.Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.Vaciar productos y categorías solo cuando cambie el estado del inventario.Vaciar los productos con los cambios de cantidad o estado del inventario.Vaciar los productos solo cuando cambie el estado del inventario.Vaciar la etiqueta %sVacía las entradas de caché de LiteSpeed creadas por este pluginVacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS y LQIPVaciar esta páginaVaciar la URL %s¡Se ha vaciado todo!Vaciado de todas las cachés correctamente.¡Se ha vaciado el blog!¡Se ha vaciado la URL!¡Purgado!%1$s enviado al servidor en la nube, %2$s aceptado.QUIC.cloudCDN de QUIC.cloudEstadísticas de uso del servicio QUIC.cloudLas cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.Cola vaciada correctamente.Valora %s en %sLeer la documentación de LiteSpeedRecomendado para generar el token desde la plantilla «WordPress» del token de la API de Cloudflare.Valor recomendado: 28800 segundos (8 horas).Nodo detectado nuevamenteID de base de datos RedisRecargar el mapa del rastreadorActualizar la clave del dominioRefrescar la caché de Gravatar por cron.Actualizar el tiempo de carga de la páginaActualizar la puntuación de la páginaCuota diaria restanteEliminar la URL de la CDNEliminar Google FontsEliminar las etiquetas NoscriptEliminar copias de seguridad del orginalEliminar copias de seguridad de las imágenes originalesEliminar query stringsEliminar emojis de WordPressEliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.Eliminar la simulación de la cookieEliminar de la lista negraEliminar cadenas de consulta de recursos estáticos internos.Copias de seguridad eliminadas correctamente.Reemplaza %1$s con %2$s.InformeFecha de informeNúmero de informeSolicitar clave de dominioSolicita versiones WebP de las imágenes originales al hacer la optimización.Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación.SolicitadoPeticiones en colaReexaminar nuevas miniaturas%d imágenes reexploradas correctamente.Reexploración correcta.Restablecer todos los ajustesRestablecer ajustesReestablecer posiciónRestablecimiento realizado con éxito.Reestablecer toda la caché opcodeReestablecida la caché opcache con éxitoDatos de optimización restablecidos correctamente.Marcador de posición adaptableColor del marcador de posición adaptableMarcador de posición SVG adaptableLos marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.Restaurar desde la copia de seguridadArchivo original restaurado con éxito.Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>.Edad máxima de las revisionesNúmero máximo de revisionesLas revisiones más recientes se guardarán cuando se limpien las revisiones.Excluir perfilesSimulación de rolEjecutar manualmente la cola %sDuración de la ejecuciónFrecuencia de ejecuciónEjecutar la cola manualmenteLa frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.Hora de ejecución para el rastreador anteriorEn cursoSINTAXIS: alfanumérico y "_".Guardar cambiosGuarda datos transitorios en la base de datos cuando %1$s es %2$s.GuardadoBuscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.Hora de vaciado programadoURLs de vaciado programadoVer <a %s>Introducción para activar el Crawler</a> para información detallada.Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio.Selecciona debajo las opciones de «Vaciar por».Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.Selecciona que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadasLos perfiles seleccionados serán excluidos de todas las optimizaciones.Los perfiles seleccionados serán excluidos de la caché.Enviar solicitud de optimizaciónEnviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.Enviar a LiteSpeedTipos de contenido de caché de CCSS distintosDistintas URIs de caché CCSSSepara archivos CSS críticos al generar las rutas que contengan estas cadenas.Servir contenido rancioOfrece una copia de la caché separada para los visitantes móviles.Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s.IP del servidorLímite de carga del servidorValor máximo permitido por el servidorValor mínimo permitido por el servidorValor forzado por el servidorVariable(s) del servidor %s disponible para omitir este ajuste.Establece un ancho y alto explícitos en los elementos de la imagen para reducir los cambios de diseño y mejorar CLS (una métrica de Core Web Vitals).Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.Ponlo en %1$s para bloquear heartbeat en %2$s.Configurar cabeceras personalizadasAjustesAcortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.Mostrar estado del CrawlerMejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.Ajustes de simulaciónURL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s.Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva.Lista del mapa del sitioAjustes del mapa del sitioTimeout del mapa del sitioTotal del mapa del sitioEl mapa del sitio se limpió con éxitoMapa del sitio creado con éxito: %d elementosTamañoTamaño de la lista en la cola de espera del cronMás pequeño queUna o más imágenes optimizadas han caducado y han sido borradas.Algunos temas y plugins añaden recursos mediante una petición PHP.Comentarios spamEspecifica el número de hilos a utilizar durante la indexación.Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.Especifica un SVG que se utilizará como marcador de posición al generar localmente.Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.Especifica por cuanto tiempo, en segundos, se cachean los feeds.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.Especifica cuánto tiempo, en segundos, se almacena la página de inicio.Especifica el intervalo de heartbeat para %s en segundos.Especifica el tamaño máximo del archivo de registro.Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.Especifica la contraseña utilizada al conectar.Especifica la calidad al generar el LQIP.Especifica el color del marcador de posición SVG adaptable.Especifica la hora para vaciar la lista «%s».Especifica el tiempo de espera mientras se rastrea cada URL.Especifica el tiempo límite de procesamiento del mapa del sitio.Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación.Especifica un tiempo en segundos para la duración del intervalo de indexación.Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución.Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.Especificar que atributos de elementos serán reemplazados con WebP.Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.EstadoDeja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador.Optimización de almacenamientoAlmacenar los gravatares localmente.Almacenar datos transitoriosRastreado correctamenteSumario¡Por supuesto, me encantará valorarlo!IntercambiarVolver a utilizar imágenes optimizadas en tu webImágenes cambiadas correctamente.Cambio correcto a archivo optimizado.Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube.Sincronizar los datos de la nubeInformación del sistemaTTLTablaEtiquetaOmite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.Archivo de término (incluye categoría, etiqueta y taxonomía)¡Gracias por usar el plugin de caché LiteSpeed!La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores.El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.La llamada POST a %s falló.La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción «%s».Las URLs serán comparadas con la variable REQUEST_URI del servidor.Los nonces anteriores se convertirán en ESI automáticamente.La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar.La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: La cookie aquí establecida será usada por esta instalación de WordPress.La característica de crawler no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor.El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, si se deja caer el dominio se puede ahorrar almacenamiento en la base de datos.El rastreador usará tu mapa del sitio XML o el índice del mapa del sitio. Introduce aquí la URL completa de tu mapa del sitio.El servidor actual está bajo una gran carga.La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.La cookie de acceso por defecto es %s.La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio.El informe de entorno contiene información detallada sobre la configuración de WordPress.Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.La lista de imágenes está vacía.El último archivo de datos esLa lista se fusionará con los nonces predefinidos en tu archivo de datos local.Los registros serán enviados a %s.La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.El ajuste de administrador de red puede ser modificado aquí.La siguiente indexación de sitemap completa empezará a lasEl selector debe existir en el CSS. Las clases principales en HTML no funcionarán.El servidor determinará si el usuario tiene sesión iniciada en base a la existencia de esta cookie.En este momento, el ajuste %s está activado.El sitio no está registrado en QUIC.cloud.Y otro WordPress instalado (NO MULTISITIO) en %sHay dos razones por las que no podemos comunicarnos con tu dominio:Hay un WordPress instalado para %s.Hay una cola de procedimiento que no se ha retirado todavía.La cola aún no ha sido recuperada. Información de la cola: %s.Hay un problema al recibir tu clave de dominio. Por favor, haz clic en el botón %s para volver a intentarlo.Estas imágenes no generarán LQIP.Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.El uso de este mesEsta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.Esto se puede gestionar desde la pestaña %1$s%2$s.Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.Esto puede mejorar la velocidad de carga de la página.Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.Esto es irreversible.Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.Esto puede causar una alta carga en el servidor.Este mensaje indica que el plugin fue instalado por el administrador del servidor.Esta opción puede ayudar a corregir la variación de la caché para ciertos visitantes avanzados de dispositivos móviles o tabletas.Esta opción permite la máxima optimización para los visitantes del modo de invitado.Esta opción se omite porque la opción %1$s es %2$s.Esta opción se omite debido a la opción %s.Esta opción puede resultar en un error de JS o un problema de diseño en las páginas de portada con ciertos temas/plugins.Esta opción solo funciona cuando se activa %s.Esta opción omitirá automáticamente la opción %s.Esta opción eliminará todas las etiquetas %s del HTML.Este proceso es automático.Los ajustes de red sobreescriben este ajusteEste ajuste es sobrescrita por la constante %s de PHPEsta ajuste es sobrescrito por los ajuste del sitio primarioEste ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.Este ajuste editará el archivo .htaccess.¡Este ajuste regenerará la lista de rastreadores y vaciará la lista de desactivados!Este sitio utiliza el almacenamiento en la caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El almacenamiento en la caché, potencialmente, almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de la caché son temporales y nunca acceden a ellos terceras partes, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de la caché caducan en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su caducidad natural, si fuese necesario. Podemos usar los servicios de QUIC.cloud para procesar y almacenar tus datos temporalmente en la caché.Esto vaciará solo la página principalEsto solo vaciará las páginasEsto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s.Esto también añadirá una preconexión a Google Fonts para establecer una conexión antes.Esto también generará una clave de API del servidor de LiteSpeed.Esto eliminará TODO dentro de la caché.Esto borrará todos los archivos Gravatar almacenados en cachéEsto borrará todos los archivos generados de CSS críticoEsto borrará todos los archivos generados de marcador de posición de imágenes LQIPEsto borrará todos los archivos CSS únicos generadosEsto desactivará LSCache y todas las características de optimización con propósitos de depuración.Esto desactivará la página de ajustes en todos los subsitios.Esto eliminará el CSS no utilizado en cada página del archivo combinado.Esto activará el cron rastreador.Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo.Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.Esto aumentará el tamaño de los archivos optimizados.Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.Esto vaciará solo las entradas CSS/JS minimizadas o combinadasEsto restablecerá todos los ajustes a su valores predeterminados.HilosTiempo para ejecutar la solicitud anteriorTimeoutPara rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.Para coincidencias exactas, añadir %s al final de la URL.Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN.Para excluir %1$s, insertar %2$s.Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de imágenes permitidas en una sola petición es limitada.Para gestionar las opciones de QUIC.cloud, visitaPara que coincida con el principio, añade %s al comienzo del artículo.Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione.Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.Para probar el carrito, visita la <a %s>FAQ</a>.Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.HerramientaHerrramientasTotalReducción totalUso totalTotal de imágenes optimizadas en este mesTrackbacks/pingbacksComentarios enviados a la papeleraEntradas enviadas a la papeleraProbar versión de GitHubAjustarConfiguración de ajustesAPAGARENCENDERActívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.Actívalo para controlar heartbeat en el editor.Actívalo para controlar heartbeat en el escritorio.Enciéndelo para controlar heartbeat en las páginas públicas.Activar la actualización automáticaActiva esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.Pon este ajuste como %1$s si estás usando una red de entrega de contenido (CDN) tradicional o un subdominio para contenido estático con la CDN de QUIC.cloud.Vista previa del tweetTuitea estoUCCS integradoExclusiones UCSS de la URILista blanca UCSSURL excluidasLas rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.URLLista de URL en cola %s esperando el cronSe ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (<a %3$s>Más Información</a>)CSS únicoError desconocidoActualizar %sActualizarActualizado con éxito.UsoUso de las estadísticasUsa %1$s en %2$s para indicar que esta cookie no ha sido establecida.Usar la funcionalidad de la API %s.Usar mapeo de CDNUtiliza ESI para el carritoUsar TTL de la página principal para la página de tiendaUsar ajuste de administrador de redUsar archivos optimizadosUsar archivos originalesUsar configuración del sitio principalUsa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga.Usa el servicio online de QUIC.cloud para generar el CSS crítico y cargar asíncronamente el CSS restante.Usar el servicio en línea QUIC.cloud para generar CSS único.Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto.Usa la funcionalidad de la caché de objetos externos.Utilizar conexiones keep-alive para acelerar operaciones de la caché.Usar el último commit de desarrollo de GitHubUtiliza el último commit Dev/Master de GitHubUsar el último commit maestro de GitHubUsar la última versión de WordPressUsar imágenes originales (no optimizadas) en tu webUsa el formato %1$s o %2$s (el elemento es opcional).Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo.Útil para imágenes de la mitad superior de la página que causan CLS (una métrica de Core Web Vitals).Nombre de usuarioUsando la versión optimizada del archivo. Rango de valoresLas variables %s serán reemplazadas por el color de fondo configurado.Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen.Grupos de variaciónVer detalles de la versión %2$s de %1$sVer el archivo «.htaccess»Visita el foro de soporte de LSCWPVisitar «Mi Escritorio» en QUIC.cloudVisitar el sitio sin la sesión iniciada.ADVERTENCIAADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.En esperaEsperando aprobaciónEsperando a la recargaEsperando a ser rastreado¿Quieres conectar con otros usuarios de LiteSpeed?AdvertenciaVer estado del CrawlerEstamos bien. Ninguna tabla usa el motor MyISAM.Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.WebPAtributo WebP a reemplazarWebP para src extraArchivo WebP reducido en %1$s (%2$s)WebP guardado %sBienvenido a LiteSpeed¿Qué es un grupo?¿Qué es un grupo de imágenes?Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas.Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.Cuando la opción está activada, la información del carrito se implementará como bloques ESI. NOTA: Para que funcione, debes activar %1$s en los ajustes de ESI.Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.TTL caché de Widgets:El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.Compatibilidad con el comodín %s.Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.WooCommerceAjustes de WooCommerceControl de la calidad de imagen de WordPressEl intervalo válido de WordPress es %s segundosEl intervalo válido de WordPress es de %s segundos.WpW: Caché privada o caché públicaArchivo anualPuedes simplemente teclear parte de dominio.Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles.Puede solicitar un máximo de imágenes de %s de una vez.También puedes activar la caché del navegador en la administración del servidor. <a %s>Aprende más acerca del ajuste de la caché de navegador de LiteSpeed</a>.Puedes convertir shortcodes en bloques ESI.Puedes usar este código %1$s en %2$s para especificar la ruta al archivo «.htaccess».No tienes suficiente cuota diaria disponible hoy para el servicio actual.No tienes suficiente cuota disponible este mes para el servicio actual.Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas.Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.¡Acabas de desbloquear una promoción de QUIC.cloud!Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud.Debes tener %1$s antes de enlazarte a QUIC.cloud.Debes activar %s y finalizar toda la generación de WebP para obtener el máximo resultado.Necesitas activar %s para obtener el máximo resultado.¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!Tendrás que establecer %s para usar los servicios en línea.Tu cuota de %1s en %2s seguirá en uso.El hostname o dirección IP de tu %s.Tu clave de la API/token se usa para acceder a las API de %s.Tu dirección de email en %s.Tu IPTu solicitud está a la espera de aprobación.A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior.La IP de tu servidorCero, ocategoríascookiesactualmente establecido en %sej: Usa %s o %s.El favicon.ico es solicitado en la mayoría de las páginas.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationahora mismomicrosegundospixelsproporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración.ahora mismoejecutandosegundosetiquetasla IP autodetectada puede no ser exacta si tienes establecida una IP saliente adicional o si tienes varias IP configuradas en tu servidor.user agentsad19ae65d681b6bcbbbaf4d41803bfcfPK`�oRO>{QQ�6�litespeed-cache-es_ES.poUT	��O`��O`ux�����\[oG�~ϯ�$�E��h��XR�e;�ؖb��.����]$�nvu��%�Əy��`����wNUwW�"њ�p,�է��Z\Z��L���Œ�EVMt�Ķx�K5,�J�c�L>�r�)�-N+W
�2%�z t.��̵��o��|񵸜j'���w�]i��*��SeE	�NΔ�t�r��t��}�/d�^NT��T|���駯.η_�+�@�)<��A{g���������`�_w���8���'ۿ(K�E��?}l�R����R}(�N$Si�*�s�t��{�;Vv�I��T�cq8�%��Vf�O���c��O���;��>_~/�����~�reei�x����*��vz;�2+��7�/d>���c���ƚw*)���-I�`0����c�l�0��$s�bZ��j��0���G�GO!v�J��&S}e�P�T��t`��Ee!��`��xA_�_�`��}$S��,��I�?�K����;�a\V6�ZA�!�M�/N豘�JH�D��S)��ĩ��s�J��ƾ�>>}��'^�_>9?�y���
<;}%d���_�`�F�H�߾�E�=񼽎��<��{#x�F��8�P��Zv0%����/�fT��K�۠Ȫ��&Pǖ��%��1=�!���$�SOr���t�'�Z8�cLF��T��U^�QK��¾5E9k�6�t�j�[K�L�o�w�o޿��Ap։k�eb-��,��5T��S
9�Ꮼ󷊩���7�$r��� �?�~���l�p+!D3U`o�lb
��H���[I�k]N�o^����Z�T�����U7@S�dR�8�f���
@�<T�Z�/�֎�;2�U%��6U�J���p��l(�զ�o��91K��Ɖ�ʫ��i���:"��f�R��5Рr|��J����-�s��Oܰ	5���{0��\���b�b��:�f�c����L�EN~�q&�k�2%���O�LP�`�th�3D8�B
E��؝�|B!�+�?�M��CO\T
ߑֲ�zN̬�f��І�8�E�f0dH�D�	2U���W��̇�#Uʷ��6�{Ɇ�L�?U#x:h�%f�l�|》��͟�0�{�O���~���?UW�ލ;S���ɲ%(�%V^g�3Y4Ai�Ժ�m���'� �@�O��FR�i ;�s� �7�`BA���qu�)#�\�e�S�Z�lo]��i���k6ҹO�,ncw�<��Y��?t	�Ӄ�0NbB��V_��6��7�y�dU�4\O�	�(�?5� �2���zJ�2<X�DNV��|�H�˛���A�U���
l�8��1�0�L���*K�L�d58h(�k � s���k4�"�1!�.k���2Q�T�&�<���=E�ħ7���n>	���
gz�	<6(�2��*�v�8
�0���Ka�.i��;U#�?dM]p�L�2�p���L%�r�p$ɲ�{KyФS/q��s��%�<7��ˀgg��\$7�H5bC����SVd8�78����g�'�;Uc�U
�>X��r�j|���Q�
4���Gh��C�T[�p5 ���9'�D�X��$ٍuи)6F9��`���x��2~A�"qA3��D�1Rފ}����|B!7����� �e����w�k��<
�-��8T�ʴw�j�%v��`g���|
r::}Ovv�#;�����S�D�������;\Z$�ݽ&t��)a*>�>�}e@�i5}�[����j	)v�0½NL}��a�_�¡�<h���7w�?G��1X�)�^,�X�d�K�(HN���<�'q�8�D�\~�ud��������W�R�[d	9R�1D=�f�PV�DR iE�E4�N|uUt&Ӊ.Qs��J�1x[(W;�|V)��/I$)N�_>�B�O�
p�JN�Y��̋��^U[To\��BE����Uc�~��ّ�:�o����
� �S�m��Ec!�͡,v~�Qd�U�*Ս�,��=��J�B�'���J\��Җ����� �IU���F
B.+K^���FJߛQ3~����Q���)�(�����r�
����-�5TlP":�_9������/?V�y$QJ��n�����^J	9A_�)r{L:d����yM8�;8}2<y|������aG?�*�Q	\�%H�~���P{��P�T;u�wVҲ
e�j�@޽�b�ү���k\�"���jݫ�8�����d
߾
���xo�qm���P&G*M�jKi�>��q5���9�崩���s��`�� ��C�g�v۠s[����5,}���&��M�x�aU������"c���+2�Nr���ʲZ����<���/��M��:��I~�����l2!�[K��׉o�B��~����V��:u�%&���A��m�D��D�D�y�T��V�-]���G=���ne�!iܨ����d��q�tj�T��6�\)j�Q#s1��꜅�d*b�]>�hg�S�Ս{��ͯ-�@9e���C8���T�7�Ռ��W�z�P�P_��L^����k���'�_�%t�V���T˷�C5�+���LR���OK�[g�<�3�a� t��/v�i	�Fy�ԋ�W��Q�Pނ�J��$��
|ER��UV6_�͛�s�&�5W���hj)@��(�-�_HWC�b9G\��V�N�Y�rt��?�|d�Z53W�N���2�1�f&~�|�b��MY��S�s*�T�AI��
��δ��t'������Ӡ���],
�����'���:�=l���+C�Q��RN��Y�3�@ys��͹R�p'��wj�*���L�i�^�N��s3ʇ�h��PrwZ}���§���
NV)�\��;Pơ����.3w�h�T.]����Cb��fb&��Huᩡ�����#yv�h�U�OK�TxhKH�K)ru
qČ��+r�hjY �J2*H�SCQ���K����D��� Jڝ/9%�X�J]ɈޅAv�D��~�ʴUȯj$��R�	�"M���Ƿ��߄��u)a�����C$��04�xLH^�^�V\������`���D3�l�z��u��[�ztd�50�\_�!h�)�c�Vrq
��uq���>"WL�&1a�"�r��i+��R��2jud���#d�g
nˮe�uR�6'�.}vppt���T���r�|�d�祮*(��
Q���qz���d|Y�˺}�x|�3��CQ:�8 -*�x2+���
,��#W�^��起�ٔڒG�ー�P��L������P�S{����Av|��_����v��dYM�Ѻ�r�ܶ���{�S���.��N�L4��]�������.��
���-
s�{h|��������2�]��Jxh�ZC�Z��s��<�
f���sX����m�7�5
k�Ƴ:�E9E�Lpq�^N������-�X�o�$u��$�߃�X�>1=6Ԁ�;������k�ͱ>8�g��/�8$$�'�d�����L0�*��d�����flE��N���22��F�r�B19�y¦OϮ��pIlo��~l��,>�hP7�H (�r���G+�X
������X�8��9T@�W�a�%$
I0�#<�Sf�…��Y�/2!��� �U�P��ɛ���*�;�=[�"Ï�����te=���r�~G�k�ۍL0\��*KZ�1�UG�o&&T������Zg��#SR-T��*�p��r���k�����Sy���H<��f�9�ֳI��j6�јs�.�=��Z\N��(�:Ϡ��"VD2��3y�w㫹��
�!m}

�\W"2�[�2��-M�a����T�y�N ��I&�N�OC	/=~�b��Я6��C�� bo�!{���{H�v�*-3���F��(����`�^�acK��jJJh�!��f2�tx�ڪ/o96&_1:�(
�z�CF�Ε��(y]1*14-�\IV9y�¤�h؅�ʕ�L�i�Ο�̖���Ҭq�JL�%�e�>�h�0���DW(,��-kF;߸{xئ	2�fV��cZ�:=IL�62#sF��4n��
�#��r�*Qͬ���i��]�+�\�S�z��N�Is����ּ���RX�cFANe=aI$/ӓDC�+u3��5�ϗk�I��r/�Q׶;_���\��a�u--�������;v��������&TO�:��)8��w���r�-*RE�?j�
b���ኴ3}��0r���OD���(1<�Uv�<����,��V���Y\��a[�B�'��3��Σ��8'q�	O���G�4R�3���	�_��?�E��>��
��z��Mg?���'n[~�Ww�<��h��"�����W����ԏ�h�M�K���ץDGQ5L�
���.��nO�|F{�����o-����X�t;ߟ&�D�wF�G1�!p�\O�b#���fgo
8���7�e2m�my�g�sb��G�kNs��A��H�-P��Ӹ^D��y�e���@�f!�����V��HkcoP��ʷ�w�ԇ��#{�kr~<�[�{�t�?i�6����v��=����]���+�<@G�Cs�7]��M������ʺ8��s�–fD�`��Z�����\K��z:B�p���-'��"\�X]S�T����6�n Ӡs�ðS�zyXo�r��P#����6�gU�U�.Z=^T���w�v;�Aw͂���V���{��ˏG�z_�vl����k�Q���$�g�/����u��e�?:�����3	� �Ƶ6s-���Bl�C@��ؿ7�޹ʖ��
�L����[=�3��P��o ,��`7�ig�Rϔ��X������(T���6X�
�"i�\�,�3���z�}���0נ�c����	�/�_b���>]HB�$���Y��=�P�����k��|B&����|晕W��ذ`C9��F?E��9^�l�4�����LJ����p����P�v���(��6��-��	���ߓ^%�h��̣N�9�nk;.��6�\g���g���x�L3�i�t¶n4�b�VЖ\��Q4�������7|0�s>~�P�=��tڿ�!ou�{���l�����U���Zq�����L*7ڷ��3�#�VH˓#����+�����
��VvK�8@K���n���:�����4�<X�Kئ�ֲ��J	#��6a�~H|��'��_���D_m���ʥSY![l��h��j��U�}tHЭ���@oS�m�u�)�/��G��/�l��*�b�����(k��Nd����K�؍1=Xź���syG?^�9n�e ��vޢpDb�E��� U�j��v���uN)3�C0�	��^L-<��Qs#�m�f��_���ƹ��W��SW�Z��v�|�s+i�)���[�콇��e&?�Y5C^�Q{�3�ha]s!c�X*�>Ў)I+�ˬy�9n���p� :��QW��zP���(�N�Ο>��5Eﴗ�P���5i���
�2��q� �-�G�Q�铋�g'��u�����s�726����/='�9~]<1�=�����~g�_��/~56���o>������3�jZ@�ȿ��Wj$=sqe2Z�`'Q����r�^.����w.�:��t��1��b[�kn�e��Ip���
1��a�X���U���,�һ�뼛�B<��*XL�_]k*��-0�ĥiu���G�w~�I��:�a�ꜭ03�q7��T�� �M�hu��S�L��`#�ʄ;�]��f�W�-a
���pK�ٗ
mޙɑ|g6߼܍~��*W���Ѧd�=�N��d��k�P����;�u���tkm��4�#1���Db�c��	(�㘈_���ƫ�4D��Nv7
�M@?� ~k�����i�V��,W��oO9ū��)�qR�:�L��⦅$���۬�����q�|͓w����є�u���#+�W�4o����)�����ǞP��/�7��`36�����_��o�ý���|t7�h7jǿ��5���{��H�,M�U\���)�b��M�T&%eM&��d���Nҕ���dR؋y���\�7��.�Y�\,P|�y�}���cv����D��g�F���n�nv��|�߹��������`���Xa����>m8��N{��פ��a>3�G1�ԴE���e�{�q*=�]��S��.�Q}�����0� �؜E�+�3���k\�$F��h0(��M*�D<'��B${�KI��5��o�`�l�}p�
�J�;��[��U����Ⱋ��S�I-���1�V�����	�6��ɹ������h����LS�A8�Ҟs��qp�$�J$KD*���T�`���н��o:�3��@!��#�����zU�u�cc�m���%@0�˺YCP�/�
�
3-�"��a�A����*$,Xı��Ņy�`���
w�� �xx�x�*|��P�VwvU<ߪ��t�dž��R	x�y�2�^�X=�>�djöW[�
�2��z�l0�Y��/�oe���"��L�tf�E�i�R�dYA+8�n*�ښ7MU[�v�.��ҳ4[�ˋ�e[P

eF��#釜Rs�cJ,��`6�J�RVD�O��j���1o�'�G� �#�3��*�)���?����C�e4������-�=E9e���Sge�>�<�X�>�z&�$>N��NC�Ѻ��k12�#���tN#�\
^:,�p-
��y�����*���.M����ѣ��0���>�3���M��?�b1���0x٫{N岱vm�H�f��	"��5D �P�%�(�YW�3]��_��
�Ϋ��z�x�%��uҎC�Ή�pe#F˼6Wڂ�W~�B`�z
.-X��^Ƹ�Z1��I�!�\Y-���� ����@/�XO��iL����= SbO��H�@w�C�X
|�H�c��C\-�W�5i�=Ec��C��n�Q۷n���P�]l��}�\��z]:�)�r�:�+�ԝ��KM�=�Vhf6��$���1~�B��s7W<��mU�3'�se��4]\�֩�>�i�m;7��w���R�ۡ����1����苍T�3uv��j$�y��i��?0��D�\	�`���ǂ|��}/�����,�	��T9���Z�c���ib=����
9���X$���jD�Y8�`�
��4��gLv#�v�!Mfd�O�Ijv�$�!�#�r0�!�|�^���\a�Z$��@;�V���(��W�^X�+oL^�ѻY�rl�e.%���N�^r��J��v]�|m�(�5�6��.�8;6}^��
J���0��l���X+1��0P�;xշ�zܢ�F�c�M9�)�DS�
�;
h�'�)!�����!H�\7��j�o4�9�pU��!ϗ��
G�x~(�{�V���r���dM�pB��5�lbP�䃽������_v[�y�y����)��6�|	f35e�YT��5�2���d64Y��`��V�+N@�ٹ>NW)�&+�S{ؼ�N���q0����K�W6�!�K~�5l�Z��>���0�B�?�!Č�@���ڈ`™3b�u�t�J�M��cb?��K�o����e�b�c��LO˴���c2���d����r�,���P����N���2���
%t�`�+�3�;%����iN�!����jfƯ��	�j�G�Jq�<����2Hn��@�a��
�8j
���i����;���'�nj�A01��S"+y.P�%~#����SR�Vd΢�L��i��I��'����ӾI��:��uWu�]Ց_�w:�){��
�>%-%�̿"{:�n����JN�{�Ϻ9�2��"F�o?����*N��L�y_�
"�3���`R��/���H��,�b���w�������ΐ]"U4��(3�ҒM0��E�Y4�iE��OX�28�H2�R���R��]0�� ��D]�m�h�@��P���\1P�P��z����Eɐ�I��U����f)r�mlTw�j]�ɋj
𻶠�wIY����1<Wi�ߐ��{2�J!�^��e�)��$�%�ޥ�G��؅������4Ve1er�\,6b��H(�E�.W�R4ǣ�^����\`i*�:#.
.����|4?��1*9�u`��]������D��/��x� �Jb��7���Rb��u�H�L���T���1�̘����Ls��6j��`x��(��F�3Y��FA#�խcMa3��%M�ׁ��i�p(��� �QE�����/r��[
B��I�:y���F�TI�t�kܽ
��S"���<��]���a�#IB��C�:�>���-��bn��~29f��wrKtT��Tt�����0�P���bY�S�D�:.U��橛�'�Xv
�q�/��p���q8-�f��M��E�!NG�y�H��O���mt�|.���A+/]���p�w�*�;��U_qp�]�.��|����`�5�,�̆������wS�r`�]�hB�)��˗>5]pC�wE�������BW�����Ÿޗ�!�r�ƣ|�]JP�`%n�y3��K�{�g{�����?�ى`����a�!�l�wEƉh.�Mf�
�;��zR�t�L�V*���K0�*P��|�n����
�^�ٰmb�>4 �b�}����l<|w`f�h+�c��5�/�H��:��܉o^�}�Se[`U��5(B�ڟT�R}HP�hz�*�fSj퀌�#~��I���+]��"�?�����9��3��VDjOvg�B��6"@P��Ŝ�4���4Og�n'o%�0뿃��gx
�Z�pRb�
*���-�v��g�`#bO�9�q��5D"|��B���id=���4���@��nY����6��N��@�"��䊼�����rĆ������X?�͚�.ܲ��3f\�����y���W�ҙF.�t�����M�d����ppq.���{�`��C�|���E#}1����8�3qF!c��3�۾��|R����
�-��L�C��P2�	m�wo��PX� �w�w��̎h�:X�e��;�J�J��^��k�E�7C�͙��)�"Y�q�IZ��2�L�W
WGɯDS��Ȁ�;?Z�N+#ݼ���ah�e���!DV�e���?<�{˪�m��ݟ�f�w����8}pk�U���y5�}ꭣ+Nh��=�>H�;s�N�^L��NĿ��<u�%t�f���`���?���������S�Ơe�hh����u4U�`�Ld-�񳚚�[��#�-�ѿ���sx�Jf��r�XE�\|(~�,�
�
��6�ZkVr���ٜ�&���w6���7k��QK�5�/�W�->F�v��M��a���2��NⒺx�խ����g2��bh0+���q��/2�慰k^��s]�0#����d�@V,XB��^��Jxk!j>���T�48gO����Y��\�'��)�Tm��ۑu�6Ҍ��l��I�,>�se���/K���m��LkrǏzk��j��m�)��)�-�b���
\Y
!,��r���O8�<4�0�&�,�f�`t��*�y�7�oh;���ĭ!�V�����)܂�T�s�ݣ�H�h	F>5�y�ϫ���%�7��Gt�2��l�w�d7v
0噧
6����}O玴�4>��n�������-u)����
���O�F��5��B���I�b7k�~%0~�O_�}��<��Az!m��mU;�`�~Lˌa�wL���E~߰�6'� <�鄩\^�=�UL)@��L�Sh�灿
ǰ��C�v�6�Rcz+m��y�ɘ�D��jPԴ'����Z�KK��N�oJ0&�r8@�)��?�u�b,≸�|	rJp��:l�+ָ���D���􍉮�_mԑ��;R�t�)��j	~������{VJ%;�,r'|��F}�d�U�I���}\ziU���_\������)��w"�5��F_��^�}ES�}��M��껨�<ƂX�2��-����=~�i>��LM�b��n@��^R�L[,*
�i#E��5���tO���v�Lu
�k�&��KKի�Ґ,�Y��2%(~7'�%lANQCԢblw7���qإV�k�:�"��X�D������S�&����_a�<�J4�{���1z�T'ӱ�x:�.`���_��[;��:ŧw6XZ.�?
˥A	qe�v;J CԈ//��	�t�x�^�����|<5��F��/�=T��计
���1��胗��H���~�[;�k��y�9�4�)����=B�tH!���mΦ3���,�s�����9��l����[�fEA~�1��s�̹�,��L����Y[�w���.�K/�Ğ0�
rGx<l��Z����*��,L�q�m�>v������k�8��#-0}P#2MKc <+�L�>��"y���z	�
z6�OMPA�G��ʆ4ߒ�hҺ�1�7V�7m����5�ܴSۨ�T�ҟ��0���޿\k>k��X��z]Tk��uX�gy[N:�U�]��s5���ڜ��U�����R��u$3�F��4��.х�V�)!c�Wޞ���S���S��t�ϒb�H��M�����
�I�����ޖ,is��hݭ@AR��w�r�Y�2 ��awg��pls�AťF}�H���Q�2[��}?�Q�fD��0�Ӊ/좭����%�=BPf��;�X�00��7�F�ψ/���%���1�;8�ި7����H�܏��j����,{ e.��r�B�`y��)N�Ot��tT�<"�7u��|���Ըp�컶�Oץ����U_]��Ӳ�]�|��k9�i`����샱4���f��4٦�6;���њ��-�)�5h�⃩6M�<5���f�C"
3�ӥ�h<�p�"?s�Z�-�,�VG���S���A���B�
��vrz�T��}�}�4���KR>��Ӌ������6
��=j~5����O���?o�S���B�L�r�Y+a�1��Zb�hc���v�4fyS�	�nN��<�6������-�$%��M0Q��{����`�u�Ř�u��	p;<#�֦L9��`%P\�������p`�Eb�{��|��^z�����@Xw[m��4�����c�l,/p��J��@�XԜ#
�Mv����=O�3L5AMCh�1�?$��Ӽ��1Q1d)Q��S{�4sDS�7�7k��+�ަ�����Ǒ�)pt�$w�z� 劆�;���[./ȟYy�;�8���;��E�,<M���.pӘ/��:�{��2��Y�N(E��)���$�D,�nCi�B��F�(D���\��f.B�EC�y ��6�u����(�hY*4����n���
�Z�/w�t�ZY[r�_V3��A2�l�ణx����W�Al��}����
�ܻ�sov��Nh���%7�
�Y�ݚ����2�K���Ob����Oc�wp|��C����������~�`g�	kͫ'i?�e�#C�G���Γ�Q^֓��6Mn`ƞ�A ����vw�����;�9�Ϳ��1�Sh�~���5��.��TX̘���#�ԁ��l�q{0����`����@y��4�2�M�Q��Kڜ��;Dm_y��y��b@��䗖��v����o��t�O�ϵ"��)�a���^,�.��֊u}��D^��1�#�
��=P�$�E���*��*p>u�Q^X↑���B���t�h�N��(r��i��/ڍ1+<�*1G�>�grn.]�f��掟c�P�H�qn1������ڃ;\����ʻ���#W�Mjv�������f{1����J��&
���)
k\�fQ<�
�ќu��|%/˲z񵇨&�ٷ�oC���|�߈B���Ba����h�,@؊}�+��H��-�R{}�ҟ�2U,ZNs���M��@��}I63N�OrS���<7G^���
�=M?ۘh[K��a�K��hk��)��峎�.Bu*mn�M+�J��.��kI�4mn�ɉuґ+�Q��np��X��R��X1�#�p񊎃J�0)�i�c]��w���2��S�
��Q���A�
�	#�^A�!���?�t�_S�^ָTe*�8Ge:�ޝ�z�
�E����°�j�X��S�I��l/��7��9ؼ����5�V-ҭt�{����;�B2^B<x�/k̡.P����(��G���y�C0���Bb��U�R��#������p�&�d��[�ԋ���#o�h�d���[pY5�E
i���o�]����M����/�u���7s�����&�}��Em��.�K�Om2�a�����Mt<^���2�E��?����]嫪���s��d�x��3�G\g9�m�;�?���M�����w��Uo��N�I�	(TL�{��݆�03fQf��"w�>4�GL�c��#���j�X!��arO�D��(��:��U�V{s6s:@�\0lrHz�C9CjE�b<�I"s	�mq�˫�8,����j�/9�]}�C�g}6E#UF�[��C]�v{׃����p��g�Ӫ*W�mn���:nB�֙��ʝ�VN�V��7�啖���d��*�S.������|+c��|�Dg�n�Q��q�!��5�B�3��d�O��\@W��6�:�Cn�
��l�<������H�f���]}/W{�������G����[���''�[��/���摪Ss:q{,m����Z�=�fv����9�x��j�4D]b?�������jm^gޱՉM�T#�s��p��v�zLN��?�pl����?
4J/C�!��5�(�x�b�
<�5���
Bs���W�6KX�e��ƚ��pwY9���IO#[�]2Aϱ}(�å'�G�{K7`c*e¯�3�Ū������>=���v�/���(�T�dz����Ӣ#�\��j���`�=�ՓX5+�&��(�k���6�Y�痨Ek�)��$�j-����Q�.��S� G&�ę�D͇W��EôtD bYBxJPMf����)�R+]Qؿ��jeA����}{vy��^�D5�fRmW9�x�A
*Ja��l��	�_?N�yK� ��#`� �)Ek��A��5�$ѐ?�V���ׁ������6x��XP�!�S8�)��OYCP��<��Gp6�5%����Bs��Dh����y��nh=�97��t�z�)ԯQ5j��3P0��jj�F"
?�����O���Q5j�Q�P�������=pw�U3��Ǫ�@���zS6~��	��6m�uE�f�P���
�D2E��c:��w�rK	QBͫ�U]�wN������1�Ķ@�C�<�p��Z�*p���@U���-���[{ą[����Q�':;Ϡ��ߏ79P�p��a�
O������b��6V�X����H�����t־�2v>�Tj��G�����e�=i~����Ah��H��/�X[�NDS�
7֝V�K�˼��j걡w39	�*��K�U�~H�G5N��(�vlfg�.'V>�����pա,�1�q�
����l�`'Ѯ'���mw7|�3{丿+�{�/�(�(�0�2���;E�Ԃk��z��l`���Wfg5�e�E����)j�D�5@��gS�f.n��u��Br�.�J	�P�|�ҴC�޽}�f�D=�sx��"�>kՠ��#ew�Ğ�@��e�(L?�I�o�z��P�
,������;
��Z��7!� (gQe�@Y�H�fl���t��u
X���ݗm*i��J�m��-~F�_Uai�4���.*��s���5D��8q"$_��`��1���-�m�oˤ�╺Z�mQgƄX=<��*L�O��H����T?*K=(�?�fn�������M9�̥�����E�h�|>�\�iW�r��[����?�dѽ�$K1���xS�u��{��4��4��-�{��"��K
L�M��G��AW��4G͹t����#���?0q9�p���}�&�w���ESq����ZtS�����K���#!F$С��[w=?���v��8V�٧���=X�!
�Z�S�Bn�o����Bd�@�V���R��m�-��(g/��8��*u+5�8.�	O@���#����٠jXH_�6N��� Ai!�M�P,n���|1�Y�8s�:��?��>���HJk�f��ɮ�ު��e�|R�3z{��wv�8S����Q;>`#lƲ���W��Ov�~9>n5��!om�t\��{+E'���Jb&,F`;�r~e~
�-��U�Ǯ���&�,�Hܤ���Ӥؐ���90�3j|�&�蚩@-�h�XF��df�9�}��VZI�|�O/0ǖ�c��2faA��+���WzMr�Y�%	&���K4	��<�9��	Ũ��&����+�58Z��uΫ�,P�U�,xӇ�B(n�.�aIO�%�\�(��f(����%=|M2�(&�7L⁉�b����9����n_.�k�H,]�Z0�g�6�@���`�$it|���
XR�"+�-����IkN<�l���1;��r*+��Φ
����.c�ݨ��A;u�u�19�b�p�P
���ܑ���E�c���Ϩ��+����\�_Fع�_����������z����.�e-��l���E��E]-��	A,�.tk�vZQ�.}�v%*��X���C+��o��,�։����[r�(Ӓ]3�I�Sw�{r�)'�(� N��������	�w�T(��Y��Q2p)'ߙ3j5��U*p@���W��_�,z��h���Ayn#��n�Q�V��v���e�+�:�j��꒗�be�>�:�U|S�{b�n-1�ھ����T�I��U'�#;�۷Vj�ؔ��f�wy`����ul��I��A��U��y�*W�@�kg��dɞ�i�}S�ȹ=P�+���C�O�zhl2��ޢ"�p��c�e
� �ΠԥU%�<�Ya�G�:�=���xMG�ʬQ������e���s��Dž��J�͔Zu��]^���/����{t�����t��K�/^rO�x^4��]����!<?��$��0����ʍ������O�GwpywVt8P�s`��R?��p������Ƃ��v�h��jzV��z�F�W�S�[z��ʥ�e&huf��e�]1	�}��`������m�fd�e]�;�w6g��9�J;�[ �[�4ɿ�xt�Ar�>
�6c�@T��低��[�feO�>뽈�ژ��p[���s]�Ib�@�za�Y{عP��W:˕�:\ L����"Ƿ��Vn�4�</$��
���Xs[�0��kkuTwd�z�s�<Z)���8�y��u�|C+��#�HM�'��V��)�L[�TّagTl�ː��]�^X7��ZUҙ�PG�rr|:X��&ѯ�"�$�xe�KQ:t���E/��Q�x4^��sB�)*���Z/N����Jo�����M|?B�V���Z�v
��T�O���Y
N�x�
g��!3X��˜ܲ6o)#1��tM��Y��g���/Ռ�嶻�~�>�@��6Y�"5[�6,!��
{�x��J������Pu2ʔaY�%W�N[~&�=�@�@��
���[����7��:8����U��q>ʌ/�p�f(:�x_���ENꝪ��*��H��:?f���/X؏'�L�df�t���oZ-��A��O��$M�U�8F�H*����2�e��V�G�p�06�� q��C�E�t�͆��o%���[r �o�
qMM�ݪ��5ʲ#!7 7���$����H�n�ڌ3��{m����ڗ�4/�U�����D���
��eu�µJqz�J�h�0�D��
ړ+�y����u�����>�gf�N<i�G��9��ur�Ѵ�A���H,)j�Y]�&������c����{f�KGm�`=�^�����>{�N0[q��	�3:�4��ȱ�Ő�3�Rs3�3aQ\��N���@`9dԂ3ʅ���T���3L�G��TJ��aQan��"�7E�[yt�58)�V)�/r��N�����Dn�������}N��@B��d�Q�Y����\�3��A�XS ���s���1P�_�S�b?o�nT>\��{OwT89j���T�T"���6q;�!��n8�F��P���րu�d���M�S�ڵA�v�%��Q����/�cƤA�$=�O�X�i�>Q
Th��v�]������ ��>)!e�z40D8�\�ƴ\�q3{�����j�D�+އ�ί�Aڲ�{ѿg��^o��/B8n}�K�9�'�f���B�)�Ԟ�%T
���ё.RFv�f��c�
gr�7�
��[&�_U�q�L���i�xo�4���_�i�$:|�j)��w����(��x`��LJ�l:Cc����N�_��i�Qt�O�n�E�L������&�?w�y�tme�i�@JDV����>=b-8��=��mʘ��^�$~�]0�hx}$u�Ru�!�m�v�\ς�F�����P;���f]�c5b�M�9ne����`�2b�쿮���ހ����Py���)����/wżՏ/��Q��ph�5�}0뗈3�7:(�<���&��X�*|ǥ9�7c"�f�Ɨ�fx8C@�ؚQm�h�ݑK�˒���C�l:��.lG${��T����5��[����F]JNץR�Ws����K���_��"���DLU�����d�+��e��}ʹ�w0tj'������s��;ʃ�`y'z�	e�&�_z�4���(S$�)�i>{ˮ�:���}�^k6_��	XH�b�Z���<�?�@�:%�衢&jf�#(��B���+���Su�"�<w���k���4��
c��0=�_|w��d��ڀneC�K��qN9�߽f%LQ�KR��+
��,�Nh���^1����Y3N��*ڕE����`��.�C�@e�r�M}��D�ϵ�8�yw'��7&_�]g
o˩�fC@���u�2��xf�� �?Z)˾�]��	��"ۤ.xAU�Zo+�5	����鿬��$ź?t��v̿��/σ�s�*��[w��eu_&y�ۘ�$`�΢4���G��y��1��̗�u-�&;&��%/!v���C_�"�q]��m1�u�nH��AF�E5�e�^U(X��j��3Ds��vwg����q��QB�B6J��<+6�%J=�OP�ȃ�{ԃ�d<B��l'�҂O���;2�p�������/�1��a����Y��%�1�j�^��PZ�Q�u;y.��p�|�t������~�G��F�~f^�{�a��[��9����yU�f��9�>�*{����钀�_�+.���Bt��Z��P66��pC��6��pP��!�X�ŭ7��rH�W����'�l[�
fY�o�x�B�	��=KB�Q7k>d��NmG"es�fyw�'���ߦsr|�ns�Zl;*�13De����f��MُD�	�b��ϒ�߿�ҟ������F˕�9��;j���<C��uQrޚ�� ��R��UF&;%�qX:/�0�_�R
@����e��A���\f�?ٟ�
�9��(��l��-H�E�²Pn_� ����Ewi��?�־�F����-
�$���+��Eޢ�!�5I7�6�k٭�KWW��&>�X���
u*�sKʵ}�W-�0�g����MeO�ַ*0�x�N;[$��sY0s�|���e3���	S�H�?p�t�m.PE<��l�9o|Q�{�Oa���I6��]UDOg��B��da��/���+�!��t�7�-dV�����<���n M���"G�J�V��� Q7��u(H��G�
&���=�N�=�9�y0�OR�&Z��-D�y�հ���Ӄ�!�m�6���Ĺ@�Ps�m��n��+�n�A@�'v&�A�*_��u�G�{�h����TND��]�����&乬WJ�,��q��]I.&b�$�����j6!���mQ6*n@���PB��s��Aء���*u��[��o��E�
����|5��FT��j!�,��G�P��	ت����]�ՖJ��*����;�,��΍!$Gjî��|X��/�攳���7"��r��2��<]8ʠ�5	sMs_����X'�jw�yus�g_�r������	�G����Kp�b��*r1����e]X�A(-���GKD͇�KN��� ã��-u�ϺY�5�����`P�(畅&�5ĆF��A�~��ЁF��1^e���߂����p�^X�:��R8���2�PaLc�e
5w?�q8se>Ŕ��I:F��R ��*;�s���q�֫�ETӬ@9x�����s�6z�/>IX�CK7��PDR�s�s�|f�3J�����҆V/QJQ�i-68t{���B�%��=Q1�
< �ӗ���d(�=���)"L��krK��9oԦ�kB��qY
��Z���jez:-��x��
�U�퍰��i�2�Դ����߼�|��_��=7,s�+�1��
��4��`Z?Q��77T�3�3`�n�Q���do��y�͓���j�q� 7��Q���F���.� �lx#ć��O��CنW���8�!c_<û�{�V�[�C >{%�0<�*����O�7to>��}�Ӝ}ߝ*n��b]��l>[˙�R�r�ڈ�|]
�]*&��ZAj����(ɳ�U�$l}r�O/�y�O�/e�s�wOy�>ڵ	�7#�Mc�@|ED��M��{b65C���2��ߧ�)�11��N(�Ħ4���>m.a�cZ�9��a�BX�KC�
T��$���UBB4D#�����@��~N.�&�g��A4x�
��m��`kX�/rȃ1���v�\D�-V߭���@�UWSKm�;1=:@3{"Ҁ$��,��)^]+#Ⱦ����g/�DyK�.��!*r���9%�R�W�l��ͺ���"�!M뺘��*��_�8�^��h�����͔�����ӄ�G��_W�8(]���V�Ԫ�N�Ғ6�*{�[�$�gi�)6�]s+�k����%=�>�8��I�!�2ꖯ��a�v	��� ��9$v��[�bQ�%��O�&��8�A5�Qi�fZV�9(�\��]IDd��1��l�-a(d�n�l9��V��86��5���n�r~]���8��5�̌���쵲���9���SܹL;�r!#;�?�S���M}3�l�m z�{�?�%X��,~~x�/�F
��(���)�5!�6��y쒲+��	���7@�h��	�!�wOq]��&�*lsxo�>���|�R�躀�?	����yrޔ	�����(w��"r��h���Y~�)�O�4cMe.�����\�O��PY�>[bVwg�s�)'izk,��)~h��ɩ��3�9�k��>kU#F��0������Y/������u��. ��D��
~������ۯ��Y	NX�����M|�#�����������*�����}�#F����ܽ����8����Ys��f
C���׬W`����$]av.~�`�M�D���*��NE	%�G���&�Z�-��҆�I��$��+�3���O�-��-�g�uRܺ�ʃo��	�њ#�ǜ��f�m�m::�
9�b���[��f΍��%�ӓ��ր;E�/��Ɋ�i6�|^�����H�o�F"�u5O癠��*UI�ħs��~���8�G�{*N;P��`��ň�tc��Ռ��̔A_��	pa�����[���j�ݑm��_&>�������
\]r�K�v��GtN�K0L'�
��j�^�ݡ��53�O�I�4�<%�an�m���H	ҽ��gkch�x�mb�#�i�ɨ>�\��z~zq���SG�@-�٨V��O�99�K��`}qS�N4�\�a^`S�0@+Q��CaLX(�c��=P|��v]�����?Яfab
�O`����̅���8�����m����7�o.�b��vR;��/�a���к�^�w|9/U�PW���>],��*>��+���4�\4�\�v�J=N��@�3A�I��^�6��7���rVm'�9�O0m\�$��|o�赳�~1bn�<&^p�C�fw2z	S�s���7��
7 ,�:zޚ�N�ۓ��K��V��	;�*Q�ƀ�y�R�܇����Q>I ���Tv:����qȮ]Q@���:F��@.Q�h��gWh�߱�y��j���Q�A�w�j�P�|(g�uUR�-�f�Ŏ�x�2��)��F�:��?�7rj��Z�3B��C�Lą�S�����Y���ᘱn|~$��rY񱴢O��s�]��f�x�����
ME���G��oM�$�v�	�t�ɶ���䖢"8�m�"�0��1Av�k�&5Vo`'��l�C׀��L �U��c���ޮ�.ݲ����8�2�fՂj����.G�O�*�?=W�Vw��۠2�施i���d��u��!�H��	4�U���,1L���]��n/U�>��e�_7<�j�ªΏ�K��ؚ�2�Y��pX3�*k��� +�N�%),c�����7w����yLF
�һ��--(�{�2O �VnĶf��"�Fm��m��.Z�-�ߗ�퀂g5�@��J۩���C�����u
ٻ�(�G�_�^9d4�t�������E]��u�#H	�l��T3dwd�u���q�X���4�v����� /
�H��.�gS(�(>.���@��Y��w%��X.~��a�1�
�UF���c��g.�%�c���p��
��GC77�����M�Wk;�a���%-�е�a�.ġ"^x�%�$p�OL̐9��vj
�%���N�����6�ؽ�w��t�
:�C�����u7�a~?��,$�d��7�y��+N��t�ac�@�交�9�:�M�wnL����wưaIq�
T�?�
��	�]06!�����b��0�T�v
�I�U9r.�\ZQ��-(�^�i�$΍�ߋ��7�x��(R�/ 3�I�y��&O��<�V���f��^L����1CN <q�M�y9�]�FGR���q��!�r`f�?+܋�o�E��1�䨲-b���/���8�	��P�P#M�ˬ�T��;,�Zw��jn�Ĵ<+gp�N"��L�!�C���|�$'1n��X�!_��]__z����pU;�Y5nh��X����5���N��|/:W
��f�3.�5^chP]��s�<8�h"L(�{x�w�K�l`9 ���*ODI�V)��R`Z��T0�Yޱ�<���v�Z��D^�xaW}�H��|t�
��R`��=\to+�.����8��JgB��
f+�@�.�U�G�Ҋ�K�j�>��_L���'��BM�Ʀ��U����<O�Z�#��W����1���$�`��`'Wj~�!����0���(�#�g�u�^�K��Kc�.W�R`Ķ|"8=�fX�r4T1Q^��}@rX�-=�?��ڧ:��Zʈ�v�Ƚ��wZ�N��+_��Li`�Dg��ĥȬ��}�D먬�6�2��0K�t�M-)E6��mY�����)-��jXD���X+Όn�6M�$��;r�<�}ԝ��*Do�K
#I։�������J�V!�2��s�J���b:*�K�o��ί������o���{��FWķ���k�p��|e��=�?��+�v�	���z�e�AՏ�����T�[�19
����K��wq��Ы��h��h�ơ�OW�Y�h�x�o�X��5~�`(I�����(�W!<�ӽЇ��c�Q�y�'o}�I�-RsĢLg����RXWB<܇Q���4W�!��������c�HQ�xU V�O����tn��u�yj�67��63����%�TI�r��
��mi����bL�|@����ܜ�H?���c�NSr�g�ڢ\�^é��c9<9�������|Ò!�>���:uU- �������e<73�R���^����a.�I������ːNt+�L�(U��%��WE��x��,"��q���q r�t��"�iw�Ǿu�B��>��\w4�Hi�O����6��
n�ɏ��\#4�/8V�ݛ�K�EF��za�
"�>�SEVK�G܈���)f�������MaK�1�h�4�ݩ�rӇs�D�|HV�F�t�O��Ļ�aP���a	=suǔ:CH�!��}�_���`{[7S�b���ND�������m v�.3�9p��C�|�s�	px`vC�i�/J̀�an���v���Vm��,�X�ɲ�i5�׮��J]꘾*9`���6{��r�Q@_IV�m1$_��s th~վ�E��M!�~��L�H��u<�vg�+���E ЅvM$��U�~�~��^y�K)���:��W��-���n'k��I���	��+���B�p�H���tP��C��!N�1�^�U�*O񨖶Y�n�R(��p�N���I;���	x���X��d�EE^�?�tQ�XB�sU0+a��ʌC �x0F�=g;��ux�Xk�\K�tb���mN]��/�{��<��"��o�Q��k>�a����g��Ƃ@!&�F��?�����SxΔ��IL�ws�����{ފMzQ�Ų���n�;��^��D	Rj��I�*�.ńwKp�����rRAaj�<8�Q����bAho����S��yUL�~�,�����T�D��{��1,�f�
#�F��o�A�{�
Z
j5�?�~�ċ�e�:шwo_��G��|5�%��U����P�QH݌��Q�‰RXm���{�u��
�<*�k.b\�`���Q��{���9G�}gTߏO������m��(z2����fJ�]u42�_pY���ND!U����׀�������Ev�_ܱ1�h����[������=S��ҙ��D�
�
u��=�ɯH�{��eu����'���vo�60ږ+9�P:1�v�re��跇��G{#��m�Ч��FQK�w'"�{pҷ9�
nn��aP�X1�.�f�w<���A���y@>��SQ]K�\�����lj�ˠ��"�{��,
d%�k�M��K\V��_�T�
��-E����	�E�ޛ�L�����Ј�B� qT�s��� J
@�BBբ�2J��iʩ)��<�����'��۰UM�gʜݖ8܍�ɳ)�T�s3��!�1`j��I[5	���fk	,a
��iV�f�Ӧ�#���KS�1W�24���C��y�7��:���n@�c�zz�`��ٯ)Y�rf8�^��i	�+" D�N�f(::�qȈe�X��i�Kۦ-4,8)�ݗ�l����\E���w�F�+)��\`S�;,�cw��Oh�Y�3��a��[I���*�QFb+5�j�|�2��<+a�%l����l�4���px,҈nE������E{�(���Of�i�,Qy���l�����-�%�FJp��;PS��y��䯽��Al"���"�	��A�����k�"Nw�O�d���6�����^��A�����6l��hЀ%�N�%��Y��uw�D�5⭼�.��w�U IJ�u�O���� @�V6����MoT��C�-pB�p
P�h�j��P��^I�1�T�[8V���yZ��@� &F��vþE	
TN�\:eΜ�-|�~6��;C=>�u�����	;���?o�<܄��� �llj���Z���=�1VJ��@��4��:��{����9C%6�b.�,�t��wt�u���N���8'O�FYr*W�����bwh�dķ�����hڑ�M��~Fْ�����Q�ˎ����p�]�(���P�kj����E����o���u��\�0*#��3ڜjJ���i�D[A`����{�˭�Z��"���h�l��Rs�9�x�!�50�����+��^�珿�䦋����=O*H�>��f5C��3oV=3ƪN(�v'��!��ٕa����p<��'·��?��A��)"�{U2!rˣH�4~w��;�����[e7���BB3w����g�NȈy�6vQ\=mۓ 52�=�_Ȏ�jl�@�հL��LL��V����i/FY��`	N�%xj�f�	s3��+�o#���	=�)�l���eK��
�ɛ�I�ʲ7wf9	|�?�@{%�-o�+~]��ݤL,�_�`LvB�k���f��1)�r˳����wT�|��~»��r��� r$[V�.�۪�*ޕ�vb��Ѝh�'���᫘�F%)��o�
�w)�Js��62N:���
#��yeR	ǭ�RQ�="�^�AI��vێ��I�Q%�|��S���h�L7[9|�t��ju<�xm�/��&Z�;��-%|]7)�C���pU����_RH��*�,.Ġ�u��XV��]kM�p�y�<�.r�+ D��*L,Lp'�.ʖ����_"��������Υ��<�BuPP�י�����y�t=�Lp�-��u�qY��2��6@zb��t!Cu�|��)��1�n��:�Tf���־7���wn���
w*��np�y�C��L���~B:��W�c�>sҮt��S���_^>��eG��c�z�x�z?<	�����lܺV���Ƒ��S��2�in%ȕ�"�a�G2�v��wN�.&�(!y�L�I^xԻ�F��t��,�a'�|��Ym5��@�&;��"c�
���ἳ���6���\9n�E�����U��Q�L�f�sm�X7�W�����P�%��/�%���ƚ���P���B�g��H�f�+��m��W��m�=�� ��'B�͐��i��4Z`+�jJ�΍���Vً��+�`�㷔�܁���7S�Œg�Š<9P�G�qz��j	A�2�[H[������ޜڒi�J LK���}�X����z�)�֜-�gL�hc&-��r��x^���I�*���o30��H��h�s�0����S1�*ADo_�c� Qt1c�b=_��gi�*	�'�Z�C���
��*n_熚�ZU4��20���-�jA%�)�_W��ɓ��*
���[�T��7��d�u�I�1"���B���Jȵ�R��7j�?g�U��u��Y)�WtfMz���vãx��A�,�[�33��0�"5u	{^-|}63�k/�seN?"�Ŀ79��`Ox���s��bl�����^V�8���D��d�1�_���b�a^1ؚ�R&;ac��5ޘ�%̤�AM�E��+.tW��p뜹�6�Rn��b&�@;Q5j%MO��"k���e�$t�.��Ж7
�Ơd	�'�-/|��|N>�j>�z���jY��L��e�}^�5��@����)�<)-"�a$���y"Rhe�����}���ݶ�mC쪗�q���Fp��w:c���]=:��X.G��ey*!k��V�Z�YBk��f@�k�W��ܼEpǂ2�e��S
�$Z�Ԗtk��3������?�,ӽ�W2G]?�&?�����qt�QM���.`�9�+�@!�A�|D�D �N>�U�tɻW� T�yX3L
-���H5��R�,�F@�]�����l
���9"+�+(���dJ��0�kEɞ��ԑP�����]�\��)g��׊Կ��dc��Sb�X�s�Q���K:4<�e�
����[G�+�}�s�1;��IĒŐY:a�~$N���Gؿ8qE�,��F���� ���h�����j����/@������Ui2ʉ*�CO��O.�:vn���<��E�9#&mg�g��t���L�边:�w���yglp�>m>G�l��Q{�@]d���M��#�톂T^9��('!����ڃ.p�j
���A*x��p��';�	�7���Et�����qz�Rm��x,lor�fYH0@c�MH�N�T�q"	�.V8����Noz���z��Z�Xj��6�",6��}؉��;���VՓ�tnx�g�E8&�Me��9ySA���X�nF":��VnUM�
{uሂ=�^��N��ga���1Ƭ?A(}W�CC�)>& 26�M�<]3���o���Y��|M8M�@	U� �\[�=*�[�q��D��Ȃ��U�ͤ�>�go���ϥ	X�T�jH5?���f~��t��?#On�I�10�3Eq�
��E��6R���z�a���p%�;p���i�w�$�t��Ȥ+|���.�1L�Y���A_ ����]�a	?�8ql�<o$o(��4O��4O��$E"S*�*0�x~���|^����eK �ɫ��!���c�!�"[b��Y�#)��]8�ht���a@�֝�xe�+K�Q<�-M�㢔�yCr\v�{�IE��i��ڼ}t��7������m�r��ű�����d�%)b)�����5H�U@���c�Z0+wAN6X--��G7�Rq���̒X�/ ��me���箟�I��&�[�� J`��?�g7����!0F_S!�Ny�v���,	�j���[�:�8��a�b}���)��8&��x˞d[���M[c��G:�T���M��"dc�5_�8^X'����P���"E����Xi�G��}�B��(�w���5^�,&9Y��§貱sPX&36;QuN��ΰ���Q\�\�'	lݨc����x��Z��6�U]g�R�l",�^�N_����CE���t���+�.|gc�HM��F��i���/�`g����_��JM���?�^�ym:
���¾��2>�G2rƔ�����!>�7��1�7U����Ԯ����@�=�7[�b�n�����ͭM��N���,�rV�1�D��D*�y(O���jfCϮp�$ns���(ߓur��l
t���]��_K����PC[;��ݵ��	uID
d�&���}�f��P�{�Kk�X�����*5�� ��-��T���P���d!eeU��v�Z���
0�М�a;�������;7�k��~ �2n�+/�zQ��U���ب��
��Ua೏+���F��dX7i�Q4SDh�3��v�JWk���0� (�`!+d�K�^�A B��k��<a���\D{a��	�*�s`iU��}g��m���UvU#�k�$4�M�Ү�k�ʣm0�^��>a>	����6�c�?�jŻ��9�����W�*��(Z���ņ�H�o��3pD6��
�SK�F��φ�$�/'�R�i{$���i~(TJV[�<��$�'�0���|�^��ZJ8�b�G��Zj��*���\��G�۰=��0^)�[��9Z��5V������m�]�E��*xf�@�h�]� w�~�݃<��HrW��,[�
�K
Xa�ڷD���22C7��{C
��c`��k��x�
m�Ct�ڪ=4�(;�
"�ē�C�9���YN���8�"�u�����g(���n��w����[��?YA��R4�,�@lU�ȍvL�KV�IP�hC,ifZ\�m榀�)�h���`�#�x\ã+ҧ/��bB%¯w�V����!��������0N4�2A�{?�$D���uǍ�x(�#��Ŏ����E0���W�;:�3�/�lϛh�`Y���u�#x�U�^�~`�5��4[��)1����^ׁ'"�4���բBˀ6���U�H�:
q�a�3��NȈDZ�j�(��bL�1���]Ѝl|��9
'��&��:�aQ����q��"s��$B�0A)g�*�BFMȕ
��;�ifn%hG�xƦt��ԟG5�E�����f[ق36x�B�TЄ/`v�1�…�#R8`��Ε��8V�����S�R�V�1�H‹�s�6{a���w�	����	�~{����}��s����g�/�ޟtm�+�Z�Ej�\�U��g�sU��^��v�q�Ŋm�'�tU%6U̒��w�#�RL�
��/S�E�;���x�:�; U{@wF���O}��8��L�"WG��$߸�{�$���L��u�
E�*7���,��^�(�Ns����ȳI��㿥���*0Ș��SZj[�I�*w�P�;�!U�(���"@ l����ˋs�M�jU���W]�H��G�Y@>;R���gD/46��%�$=DD�=q`�8�gq-@ �12'0&�i�O�1��) 4����c���	Sjmi�RNR��4b-"���t�GĒ{M�=��,��3�^ޔ�Ua�ȩ���4��YA?ś~�V�ϑ�Ĵ2������z�?.=��I�e� �G��x�H�1/�i���۝f|�U��v����dzWss�7M���Tl�^�h'�plV�FW��gT-��3A��C9A��3���a{���IF�$f��('�R�|CL����'8��uιM'��'ͳ����׶�VW�NMW�,E�˼]�αV��Ud�^`b�2x�{~�:>�.t���ޘ�%b|	��ռ*�d]�N�{Z/�%d�6H��e�<7�#t���^C�#$���(��Lͷ�L�~�"��������]�RPN�rp�-�f:���$�� Dʗ�	�d�Z+At24�Ji`��z8�^J�@�W���^~Cr�O�/)5��o/.���[�(��_����\�v�b]�K����i���)L��s
�|�u�4�n���}^+0����Ы��P0,�Z3�����}U�pԳ|��mtV�ʌ\��Qצ�ü%J��7���0��h�8@dT���ڲ�I�ÇovӚ:s
Sn*����u�2ل�&|�y�j��y�?[��k�cn�*
�:�<�pC^�ƓL^Ӭ�"xI:�`��֧@��}1E�:�����9nr����qY�����/��&o��z��e�1C]>�e�S~x�5�����P������05~Y�7�/����,�l6J˶�˲�C�P�F��;��&#{��f�ĕ:J�m�sMB�9�~�
��e�Я�n�l�9�qD�^���I3�ǻ-�&o[�(p���zw��<ۀ�J6o����E%���b,4�!S1�mM�D�v7����īԷ�Պ�P����s�N34�W���VlJ�
%/��aC����C�-l�xZ�mE��Z`3��]_��|�H+R42�!m:=�D�2?zԻ��-���`�m
�9���W4��
j{���<>-��3"�I�#�c�ڥ�D�v:k��Jˑ�Ʉ�Mr��_�~�
jfi3�U�I�6�D�a�`3╎�3�ߙYu��<§�*K�j�K��z"�ME�r�gC��|��x$r���X��sP��.�EҼ�
�^��PU1�o�T#]�(w�ПD0�t0>�ݦ������,�0wk$72ńf��6��*�?��1Z�l\,=̋�e6$�D鄰r�3D�v��Ȇ�F@��6��e�M��*���ʑ�0�/�ݙtX<i�%�er-���FuN<�:�9������3���D#H��ڢ<"-��ZJtV��������w�)��½=Pݳ�n�H����{ G��pu��ǶIX�4��M��Two�U])��Z�p?/�R��Ł�Kp1y�H�����c0����5�`uVa�X����t2�U�����	w>rr8,�.	���Z&�+�x��H�y�g���-��<q}'��d�*:�5�vB�)'$���ǥ����6�U�+I�VVV69�x�$�U��?f�E��œ�WU����a��"��cc	��W�>��3�sdB��W��>\�oz]�ص��aI�����TKL�t_�~�[�q�r	��n����ʯ%�
ʒ]�C�Ӯ��=�d��_��B������U9`���3��h���Զ�u�o9�)��K�ƌ����2K�,nJ�y*Wps���.3��cph�+�R�ݒ�{�8���VjGck��f�\	j�=�t��sK�Y7JS��7F��C�Q�[����EBj�:C[-R�݉���fʮj��%�
����f9�_%��E������"�xb�}�3L��$��;oT?ÈO��}(���\�9f���X|���@���S}"Hm��e�NGrL�қ���ol��5ɒڟDm�y�H�!z�%c��>YR�6e0���+�U��
c��-��x��(�(��\�������7U��`�_���_�ǥKg�/�~��z-�ܼ�=�7w�<����S�2x�Y��1R�>�/Q|�"`p���'� D�u��<Iw���;�V��u�'�6���3��Q��o�Z�D������X�<9M�˂�<��=h�~;� �D��C������7	5ki�.�9]v��1��7"c2�u���[`AI�\V�vbӁ���
H�?�}�W�ֿ�mܓN���U~w��7)\:Ϋ� ��v��6�����-p$�
y��T#���m5�<K��)A�sC��a�ϺL���$'8{^�RC��I/�?WnB�]qj�
���('�����[ۂ���ٓo3�*P�� �6��X>���9����y͎x��6
�Vȸ��-k�U�1>��00��ɂg��	~,[������%�E����J��m�?R7B(�~��F�27A�ᾅ�8
�W�\oz�o���w:"���ұ<@�����b���XV!4<�P�p,qQ�
,|�L��ļ�;ڀb�x���f�yG����g�p�:)4d�(pR'3
ٷm��_���""h���N"���g��d�M��o6��l0)'��
�a�����~�6�…Ǽ<C�Hz<A�U���b��	O��
V��O��4ڢ#ս�a������1��K����C�1
@G��ai�\Eǹ�eB����m}�(���Wȝ#�C��G�U�V�p�gw��ٓ����=D�&��\q��wo_F����W�>�6ġ�~	�9ޔUP��osy���Nl�Ş�g�Q�����#�E�c*[/m�/k
um'g�RJ�n&��^�ʷl5XiH�B;�a�p��$3����BpSfV�	Y:���C�b,b�����M� "�q�������l�:G�Y��{(8(��|]C��=Ǐ�(�ހ�y+��|�T�}񡀰�l�Il��z��I#F=���0�����9�k�y�T+�|���8̷y�-x,�ܦ���-"�r�j'�nb�(�^܆��e[*�a�\����1�ފM�W��_��i���(={CJ�C�"���ίYT��NI��+fȴ��d(7����k��D��ۃ��!9A!~B�ɏ�����``|��L����Z�
^��ln�od܋�5-�#n�*|ȯ�6�;N���v_t�5'�FK|���%����x���Q�{���x݅�y�$~��]s����6�bW{G#TdwwFX�ʄ���gf�2N�6a�����ZP
�ݲ�b�v&.��t)��ك����äR8��ǟKG�/f&��8`3��V�1���ck���̱�[5
��~H�gG㼩/���W[�y�R�%/�
@~"D~S�r(��b�����4>���'
S��=�'2���3h���_ɗ���)up�v(����f�~�_���L���`Z��Kmaо� �0c���oAq�&� Aɴ(SO⤫�G�8�O��qkV2���~��nja™�VB���ÔMU��_?���5n�rMA)L�:��W��b�'�^��6�	R��h3�}�\�)$_Vux�hi)�H��29:І_��jN�8`fh�N��dg�lX<�3"1S�@s�s��I'Cbpw9
��;z�|$�,r;�
����f��S�Ze��Ԛ�-H�Q��P.�eLz�����!��@D�������.J�w��;���T���6��˝$��l�M�;�m>_��o+�Ȃ�xA����y�N�r�7��Rs8ͫv"8�"�b��h61e\֠����;9|�3�_�]��_��5���G-���^g)~�I���be:5#�9�0׺̎��H"
c�3T����o�"�g��Ϥ!M�;��q3v 떁�RX��
�,����!�+o�s�F���ߪ�Bw���H������B3p��H~:ʗ�{:�<\+^��
���9�6"{ƴ��W\PD�}G�Ӵl���Ȟ�<��{;c����W���^����*E���g{�:�����”�U����+��/>�ta��`=�����\�Ż!�������Ԯ�h���N0��v�V���l��޺��_�;�cf�YVaN��$h�j�q�;�{к��O��u0�GU���̪�C��a�x�E�v�)vJ��9�e[�#��IKÜ��)��j��h����9�Z�@�"&O=���%Q�ٍ]3E)�)�+�������(��t	gkN�4��3o!#��r*U����F�(D��QD<oc�>!���H���O��Ǝ�vr��h+1X�9fq:}8�u�U�_��MY�OR����9�*o"`(��};>�O�c�ZC�+m^��}�ʮ�ฟ:vͳ�P��c	�:�X�z��`�N{A�%��Wʙ-e'w�u��[��r��(�������Q�Av�l�;pu3��ߖ��o�R?i�����U�� `9=��l�;ҘL�!/Zx
����H��.��!f����ȏ��H	�\/��]p�#��\&��`�~��`ͧEI����;La�C�4`A�7�Į3�"ܤ�����v	�;�2gg':Z���H�>m�$~��n#fGrp��5���Q�cC�UD��m�����wo_z1ܗ]�Ŧ���g�t}��5�!k�F�T�rX�WD��JL#�t���r����*���취ngnYy����O�������7W2��?�T��,g8=�
���t�y�|�&)wsx��4�Yl���v�jw�B�,{�<&�hֆ���)n�f�����/"C����Eho�DN�Wh~;�1�ZK����W�W����O͗pN<	�?�?�Մ����2Q��QJ�r�������H�LI#�
@�����߀��XR�}c���.�K/gu�\�mc��H�㚗fր+�h�A�`]��~wI0�;F�3�_��Ȼ�M;OcD����
��p0�/>|�����S�ͽ;j��G��#/o6d�ᐙ"�c���>n�G76�ٚ�����z�
C���&";�����=jD=8��C������E����~�m��p�à��0.~@O� ��s*)�nY~`�\���V1�'�w3�v��V���ax٤ QFZ��Vk�|Px��W�I��Fm�s�KʇW�
X,s�~DO,����L�󘿱i��Ҹc��d���n�1��q�Ek�	�K�8E��E9K~����Iϯ�;;����z|л���GB_NFz����#�z��w7���ġ��ɨk�(i�o��М��ztr24���!s:z�OF�LJ���� �񢚂~�;Ww��er���S�P�~��`�����E�A�]��������"7(�B,���
O�M
1>�� ����@f��RA���k"�G;]����Xy�sg!;�.w��dVRу�D�1�*9�;�z f�"u��d)��f��;g�28�=�����gGU��<��΢Ή�ُ'�����
��Gz�s�j󞪮��<�%�b�d.����jl�9f�]e�y��쫡�^��o�eQ@�HQr���t{��1k<�)���w�
�,O�a�a����w/ÞE��aϪ��M��Gݎ�CV��t��v��F\�z��Y }E��"��H����q���Vh[䴃��$����[A�-�	eң�
<G�z�sQL�f��7�+;w�������$%�&�X�
Ţ�o\�AN�q����zTǁe�@͌z�wII�Є���X������U�J��C���kё�s�a���}��,\WX��
�[��L5�s����l���GGBV|T�h���M'�f z�����c��2�2~�_{@����0ؔ=�)P'���At��ENv�~<h�d��<i�����TX���^�b����a��8���}k�2�Z�Ð�`ٳ�';ǵ�q��J��'gEi����k5���h�X�p�;m1R����uU��U]{݁m�1  t��^Uu1�KȂ=��V�h�9��Y�~��p��E���x�+�����T�$:�����)�fk�Ŧ��W��_�]���g�ԯ���\��Y���.)�c/�e>��t��#�-��y���^�.��Q5�L����La�M�W�N����M����&��9�6�.aζ�u�k�!��&*�t�v�=�uV}���w���qkV�M�?�
���B�/b�R%�~�3ۍ� 0}�����,�\�)�@�,��~Z�A�ѩf������jvOB;��ߎ�p�g�vO�G=�nӛ����2�^�h��GO{[�7p4�jE��8�G'~+���Q#=�F���
�S{p��}eT��~���i�%8Z�|�Żl�cZ����7��`Q�K[�L��ߘ�����~c*�o�c��oCZ�H�>m�N��A�ڎh�iC!��d��Dh�zILj��c�Y.�iu�� 3~D�6�����Q&�V���e��B�$|�1U��Ѿ���ܫ۪�U�A���#7��¯@�J���X�`� zXL�gc_�_0��LO�H:
@]n�<�p�����g����_�;)i���Sg!Q+vX�����L� .[�N�ԑ/�*��5V�GѬ0㮹_Q�rM�	3����u����e���uS������F\���6^lIQ  �� ��
\C/n�r�H��9����;MU��H|	��j�TK��J�
�QZ����m3?�b�i9���(�A�t;���u���h�5-��-�R�ӨOS�u���R1_}a>=��G�H�._&�y5��I�m����Ҽ��w2�mY��f�O�$����G~u�ښ]��uH"�q�:_�Jb#��
�i��ȭ�J���f� )��5�=�Jz3�0��3Kx#V��J��W77ĉðHq�H�,��̭K���TW��E!K�H��r�s�П�f��c��{��-fݟ�v�!wER�mu���WFy������{Hz:b`ߡ��@�	Y
.����ʻ��t~�ē1�'��E�n�%���e���58Eqn��2���U�ɝ=����w]�7d��R`��i�Ŕ(�nr<Ő������jN�B��˒�9�ʄV���d�ȥY�	��I	�&�;��@:e8�o�����e�H4|iń��_��W�}	��p�zڢ���qæ�t��q�C������Q���|�������ܱ���s�T�	i�b�|�k	"�Z�G���Jp@m�~�
Z���:7V���E���-|����ӛE���D�/��֗]�R�aR�H��|24Ē��-����N>=�@� %*�Ϸx���w��dG���h�c|O��Bv�Z0��xt��5湆��T=7���/L���`�*l��x`�Gߗ�\��u��Α�#8G�S����i/��)tH����=�0��$$8�} ���*tS�׆�sPy�x�官�����S�h7{�<����,�KE��Z�`j^�ؖM�00���Ks�4m�5��_��^'_����A-�:��͍-��W�k �)-ҏ�b�0���D�	�
'x���K��*�9��F��͢a3�Yt2Ι�-�U1��wm*4��ai�Y0{�9���täBo��
"�M��y�sX�`]##�m���61��*�7cz4x�&2�rs���8QXx��5�s��������S�5�G�ú!�+�(RK�<bM�D�6m85p�7̓����/�&��3e;�D�WV�C*f��
n]�Z�E]�X�:��В5M�x����Y��ګ��Ȯ����U��>���%�/�Wl���ޞ]^��0d�7uD/aa#�����,�
����i���mF�~[�Ȯ�v�A�1��hTݦH�SfĆN���$�bdiA�5���/-ЫJ��<}u�=&v�	�>���V�l��)��$1��*EY�#���lr������*\��+4�� c�'�[��nD�RW2r�?\0o���-k]����|��d�D�-�M���s��5�A�9Ė�|��v�pF!�|����C��,��Q�5����I��{�d1��m4h
ǃ5�K�!��|�4��r����H�Zm��.!�E���*�
4��R��9? �yt*.��Ys[ݿ���@�lL�ߨwe�qIb_�ó�҉�L�X����:|�A�,&U�3�y��ՌC���l��^K���xb�J�ŏ��f�Ns<��S�Gf�TΒ��)5̈́.��֞���Y~ �*��=y�[���ei� �8�k����WVW�R���H�w�K7f�0��F�⻜s�E~���i��H�ka��Za�Z`�7�͚�=2قG����>H��α���%���y����H���3�}c?5H����x>F�U�s���,G��"��6��-����٣y��2P�N�ˇ*m�"�����y��0G����$<�s+�c��'���o�ΡGS�-��"�oMf�H�5�����x_���g�ڇ�y)Ǵ����G��b�6��*r��'�Y��w?ĤH��=�����.�og�M��p�2��Kņ'M���H�_��k���s능.�m�N"�G3�HBL_��%�UО��͖k0�Dҁ9���S��X�ˀ0�G�BwĪr�{p	N���W8:�UH��h�=�6^�F�0�|�񻲼{�a�砂,��;1��%�$!�#`�]{@���8�m8}��s�vtK��nI`�9�;sn��y�$�ԟF�G�:��V�_w% n��T��~^�1�-����U�T�@
4IR��
�ҍdk
,��˯8e$Ͳg$VK�*)W�M��2�
[ڗ�}��
�4i&��/���S���%�=�ȿ)�0,�v��ZS��G�
���*�g��"ܚ��F�~�YmVn�Yzg+��*����9h�wU�	�ff#]6��L���v���枇Ċ����E?\��U�W+�R�W���v�Z�PD%���(����0|/�MN{qY���R���|�L��wv�L�5k����TY�����1����n��_�[u�o�5D�U��/���҇��#=�|��>�M`���x��Sv����Зx�E���X^��Ω	���`��	m�ɘ���&����ɬ܇��́�ീl�L��>?#m���1rFd��*wA���pr�f���(Rh�j	W��	�C��s�l��4��sV:��aI��s�(�����W��_�:��m�K���*!z��&
Gn>�ja'PÚhh,�sy����]HQ�f�b�^��9S`"z�U��Ӵ[�����2�)[�CE֖���ȉ@1a/XM&k�x[5+R���%����}<�܀AK�M�{g�I%�V߶$5_A	{�<@hyD�>�I�C�ۯ��ߓ���������ci��Ο����=v�S���{
f�7��92ʿC����-=��~2��o�_��6�8{{uv����ǹ\�O�z[�����~�*ml+3v��+�34��F9[̃��mn.[^�=o�!񝡑;�ӟE�\��+w;!���s�X%ڎ~���煔2U��"��9�5�,z�"�+�eC/oQ*b�",|g�4�~�J�ER���V�A��$+@lP�]���xM�*�P�QC�r�X����20��mIbp�nH�ݎV��ͪ�w��f��ң�j��ɿ�H�P���IWbe���h�A���(�$x�>Dl�=X��ǧi�9n�{t�R�}�2L�.LnI
ʂҝ���i�u�<�u5����BpJ2V�|yф�~R�poJ�o��r�)�Q+3j	�V,�i���6���l�3��f��7�Ӭ�sv{�&�ċ�$�/�V#D�&��gc��C:\1�aU��ED�y dn]�
,�Ͷ��F�嵧��P|��l�������Բ_�7f��;��6݃ς�����=pӲb�����]�=���3�%�g�j����":K��?z3�ڜ����ޮ�&V0�>9-g}�5=�!:7��ej(#"ǥ`�l�<��iE�B��R��M�D(:j�Ŷw�՛E1��V��5 ?^�0����∞q�{�1;=ʕ��TB3��%
��K�>$3�G��BhnIp[�
^�$�%O�D���WW//_^�}�u}J��~߄3Ӽ�^|��s�o�!�V�U\�r~�{✞��z<�9�%(N--D1Hoq��^�@D��s\i?�5r���o,u�G9j���g�4��jQ$8�sz�q���Gᰄ���G��e��#��x/]���.HZ�p�?��<ew�|�I�&'��U�-P졗p��Cce��Z׍t�1�����1u`5(�qT��O�@z��k�C�;�"Ac����t_Z��Y���*m>$6�S[��9���d�^j�%�J���!n�{�'7�<<��R�S}�C��b�D�j�#��,.
� �=�*�_�]�k�
�6z�Z&)��q
�_ЌC[�T8���q]��I`9ϝ�M�I<��;N�5�'��?�v���;��72�,a���u���9L�*Z(!`࿱/%�1�cʖ�VXt���G\L�v
~�D�x���z���>ZqS?ɀk�A��O#v09c]9M��f�n�[����(c/(�ii��jw{ٷn�,�oy{o��\\W0�u�ٹ�Y��|<�ie+ޙT��@��M���&���Q&-�y�ҏ�(�1`����U��ȵ���F����	ڵ`v�|���$�}��$��r��)�es��~�z��H`Ij0k֋@JR�bG���]�t�"� �Kt��Φu׹�gR̸YVtj86>[��S5��
ű�BX�o� 6�;���ZPP.��׀���,�/����j�|�������,?\���Y�x���JC���j�Rז`�q�:�үZh���`�pCgXL�������X`fk�/��`��[s��+��� ���d��rjB��.�c�c�#�Q>[�W4xo�o:�m�16bz��mԽ�, '����Z��WޣJ(�{��9z(��y
���᏷Ւ�����
��4%@S�LrW��V\�#0MV��˵����
�� Q^��ڢ�ru8[��<9�2��v8��I�����cm��eL��?R��oo�~�ke��E��%�#A���s$9��{	o��8b6/�=d�ħf�HG��&%��O��{E�?�,Rb��鼺�)�2�o:
ĭ3 x�)x�>��76�7��8B�&��y:_�n�8�XkHGK�,��Ÿ5|an6���x\�0�<���y���s�^�M����z��k�����n�����P#�.�����0�;}����/�l�h��Vճpf����������|�+�E�m�f��b٩ηC�x�J]�>�[��rf t�ݥ��K�g��t���
yp�2۳u2`2A1��@z�x�˂4Ա\�
�H�tbA�Rwb:�R ��M�
�X����<$w�|��<��t{��+0��>G��w18jF��%a�%
����4C�p������u8��#�7f�-�i}c&��!x��x^3�VY�r�l�ٌ���/�U�TGt�HG����~�u�Q$h?|���P-����P�
�5m�d��\AX���IB�O����c��6(qlt��Y��8����
�
0�p��%L���91�t���r��-q�Pte�����Ԉi�7t��Gha�kKY�|�����&U�f��?I\kKY��"g9��d\5�&�_�!J9����b��a���(��Z�������P�"�`��<�9Uŧ:cGS��(<�J"��0���f%ʍ��
6��N���z���WD�Mm!���(gwi�F�����?|����hv��㞁1��寋�L��X�E�
8;~�������ίΰ
V �gi��V����	H��B+�q�0_�. �=ȡ�`���^�@�|�����}c6@��Vm��a��㺰�Z�s����UX�Mnj,[Vk��n��@>0^LjwYm��b�·1���IY�7I�.rs���7ۜ�D�V�s�)�-j�?�V���d�m��\&ڢ
��aN�U�C]p��
}� Q=�ѫ�?~i~J�'?�k��u��{?�
��o�H_Ď�D4����7�݉�daMa%J�.�eqm!���}WX|.�\Jr-�+�vHo�cG�^�̿V�~p��KV���Y/@��GX�a�]��Q�yU^7-g���t��7Abpj~��n�A{a��w	qx5b-��	*�f�t�\1��A�QS9�(�h��[��aTh)�pBC���Asx����N�Y�sF0�=�F����e��PrW.�v�9�)*���ֲh��� ��ϭ�\-F8Pf7z��2V�ҍ�$��,ui���06Q�!'2�-[b�񀎓���A����޴û}7�(.�Xx���Er6��=\��4B�X�V��K�~,���bi�3B�\�pԕ�N�w�oc 0���q�����q1ȥ8/�C:[y�Ƙwo��p����<�0n
2�u�n�䞸:(gwĈy��u���[t��A�rZ�����J�w���������B��������ǀV3�}8�R%��_���Z2
�:�f�������'�*�71��&���bXx=BP��>2�1���&#9����?^}��[��_�
ʁū�S��͋7fHK�0AΡ�@Г�{��(�o&qy5�=񙲓{���yt���|<�B�b��{��t�"6�]3B�fBw�܀"��ؖB��!��r)sl��QK)�ƶ��	B�����Efp�	}�`�52c�����|��e&+k�N$�i�d[�ܙ�p}�	}�Է�Z_��I86۶�LC�z��Z�+�<{CBL��`�,�҃A܌�tQ�q�^_���D�ЅH��tnf���p:�̨X�I��O�/�x��Ǽ�v{����ǝ5�|:);�8�h_�
�c�?�>w|��/�g�g$�P�iz�j���AY���"G��EZ�.�z�+𬅡�I���A�.&�e��5�v��Z�Yg灷����]�ߛc����$^U7���btJ�(�ˋ��޸d�����_˱6]M��M �I,���ܝ�����p�����R�Ķ���E�X>i�5��e7Hs` �&,,�*>�FBdB���;E�6ba�9�:�pA�A�ON�:E,):I�b�=��ѿЫ9;�8����b;��95+v�lBn�0��,yˢ�|Nt��Ew���9,�;(:+��$�TX:��*$�l��-�
#�8��$L1J"�UE)�yڬR�n��`g���q� �
Ϋ�c]��k�D����d�Te�#���a�G�6��6E����rŏ��K�Ji��הX����ȼ��V�-N��S�p�S��iB�D��{JNy�3�Y`r~��Ql���<i
KH��t��ũ�bs�l2�!�h����O9u�Ry_!(I+�3��$p���M������V͘J�����\?�B!�Ï�k�2��yC�V��6���B�x���i{��/NX�m�`��X��%��|N_�p2K��^~�"��f���QE`���n1�n��(2���|7�|�Q]3H̪$�:��T+�vv:2�[S��Ʒ�0a7��+�3�-	9�_��Aâ�����4�� ���d�Gs��}�$E����֤9�MS͊��39�¹l3��[��R�0���9�t�PQ�1��i\O8�Y��ܛ����P�ipE\t�
� �O	N�x���pM�)��nsm�;� ��Nn�"*҉�m�0��7�öao���h���k��+axl�����;v�Ä<]x���?~��۸���p����"��*Mޏ7���6�A׊���KphG�?r�U����X����fY2��I�K��z#�Mjܪ�@_C���c�0�A1q��ѱ�_?�m�,mH����Y�a��_��/�{��hl#��X!T�2�~���l%�y����'Z�f��`NxH\$،#{0�I�6@y0IT�(KYu���Ñ�0�f�
���}ɧ���N9�I(g�
8�T,�T'�\Ʉ��I,
#lQ�j���RG�bl���@mElbb�̷�B�4�3��O��k���GwU�!�uY��1@�r�T*�
区�r���:��3�)�ZP&����j��u��h;�fY��Cu��f�w34K
d�͝��m	�$Z�R��lÜ7t��naJ�	s�.f���=����m�w���vgh�,���-E�k�epe�,p���w<.^�����YtJ�L|�U~DVR�8
�,q��2�IY���Rd�}ONT��f���-��R{��C�{"ْD��mn+S�	.G9�_��l�C'7&���&�H����Z��`N���?�(<-��H
IJ��>�Ozp��}��S�Π�4`+z���)'`�/L$���v�����U$!>I��!��aE�\�ו�Sv���O�L3t*����)��'�R{��k�=�L�nK4:`+��r]4��)����0�b�BD�̌0~V֨�Fy圇������h:#�L}�<�������UD*�w��O<`9zP4x�ܡi��g�`Q���ك����A��'͑�>s�=Q�nG�I���j9�V�D0�q�t�`dͨ��$�_3�hF�##�C�S;^�NXFK�c�<�Aw�),�����c.2DGR�i$�C*���׫A�v��k�,RW�6���|?��lh����ˀ]�SFLJ��>̍�^ϕ����-̅����%��0�Y�H��z���$��@ Ce>��-����Y�e�I��p�V��;\")�CB_~�ER��"����.���ϒw�/��,����ɛ����&ߟ}��^\�z������Km���7.�3/^~s�RC�g海���x�y�����+Ҫf�r��jB���;�����Ҫ-�G	+��if�y�I&w�?�_��ӗ�"[�;���ы��߼��H._ƒ//��kx���5X���8��"�G�vhI�9=���
�k��E��靹$�$�0�k���<�
��NqgQ��O�^$���$��"�\�����
)'�F�Hd܁��U���7c���??{��3+�2ys����x:�M�����]�y�&�8}{j^~w�����Mi�|�����t���P�]������o��0�=:���G2L����(�͢V3̉���gHB8�B(��Mh�p94&>�A���xm/(@�9�ܰ���#�lc�oo��/YJr�ij���Z�̿�n�N���+O)hpD{x�*l�gY
�/�������:�np<O�5���:��d��Û���Ͼ캴y^f���Gj������'�$�2pQC{b��+b����0LD\�s��K�����t�sd4�7�<����'Ѹ�CG�*�d�ʩ0�!�$S��_m	t?s�}w# 4��&�#H��!H�b`�@RO����ԇߥu��/�p���(њ֮L`V͔W(jp�`��C,�5�YА��'u�w/�>��׋7	�Ҟ�xy���s*��/���u��9}����8M�ν�5�9.�rI'�g��}'B�:O?ĸ����(���'���j��F>z��N��g0i�5U8=��<{��&A����:���ND��vH��x�!�l�jI�>�x3�B���\�qG�\��"&��WVߨ%B�H��Sg���2A89��M4��H��S�O���@?�19�u�˿Ĉ�n���K�̛Z$�;҂�>��H���uQ���v�QAz�w�*��jo�]^͸�����ä�����>���$�ro��_$2�VIh^�E���|���ޚ*�Ɲr(��so0e�e`�)E��Y:ZQ� ����~�
c���2{(Ӆ��Ch8�h�X"�_UrP���0*.(6T4Z�m�-!��^a�7x����V���L͈��@�>�y�B��*�L�0����t�ѥ��pr_�K��_����J�dޯ�˝y�S�p?��/��	Uh>E˰Gӭ�Q�Fr���{G���3�~w�O��ˎt���Z�����c��4�5�P�C{��o����,:�m�<�l�4sX��&��OP��i�'�������u��7�إ�U|�z���M��M���=��#&8EZ��n�ˏ�ާ�D;�)��Ѽ|��uo�hR�ō��� Y�o�)�>�[�ƍo���oR
����@��Gc��
~�!O�
X�����@�3>5ˤ�b���!��`_�u3�UJe4q�严nmOe4�j�N�'o�~�����=0sl(��H���R\��<u/yvI����x]h�7��ҦI���<A8�R�����z��K�Q|x�=�sf�N�$��KF���T7�Kv�b�@oD-e�,p������Y�9!�ݎwu�O��uR��ʥ\A>����~�~e�cw��`$���G�~+�.��%�1$����4�Ed%�m
�V�*|�*v���Dx!���HM5��L����n?v��@�6{�U]�˝���m5�ם�1�������5I?��|$7�WS���+�NY��4��T!��y�iY�Y����~��;�Iǯ���B�0� ��ߛ�E�����ו��k�D��#i�P9O�$���S����7���d��ڒk���0!��&c�w�Jn:�Zg.v'���^��'�#���c�Qg�l̡N���w�=ev���k��ҏ��ar�!|�3�U�������90�}��ja����fJbKZn��iF英��N���o�ʅ��f�/��j4{V_�(�3��]/��G�@�h<0Ɵ�c�K�6��J�1V�Xu��9fFKa��KI�n�q�h��F���F��U#x��} �8��Q�
9���Dv��\4��113����Zt�� ә�ExHH ._�w�Ie�v[ia�0���5�I��rA�yF9�Ɯ�Q�v,Mf��l��~�iǦp�.���l��k�1����d�h�!�P��{�3Rsg�����G�ݸ��}e��1{Ғh��%��R�XaR���������Q�i���I���VRbK�Ӽ�|�)�6�R�p��� �?�k��h7��������v�s�A�F�D��}�pg����I�o���듓��"ۏ��� ��a�o�;<>�q��05�x����^��q2�������N��'}}V��!��	$�6��q{����.��PK`�oR�t���litespeed-cache-es_ES.moUT	��O`��O`ux�����}|T��&�������((MH� �@��fw�,lv���	�W��t,�� UzE��
��"bAy*����޽�	>}���m�sO�3g�̜9����d��Z�ḍ౪G���9��S��q�#�<N���z�A�b�m	^B��K	vS؃���	�@p�§5�bͷFÛ4��`��>��l���%XDЭ��(�@>� 5�q��M�����G!�t�	."�Ep�zo���H�2���'��`
�o	�"���6�9�|����	V#XB�
�/�ЏE>�k5�kn H(v�!x�χ���K���G��	^��#���(�h�5=Џ:�	��%8��#%؀��w8|�`��.?ړAHL#�E�&�~k\@�
���0��G&�=���&x��@�
�@�~`|/Ro%ؖ�+�v.&x7V��M�F�]���!�~^a�0�o�О�	���U=���
3z�}�:��=���=ѿ������kO�Wr�:�~T#8�`}�u�'H��)��G.�}2P�0�8�@�/��\��n`�k�3����
kF@_
"��C�o��p�H����s��Z�-w?��~�8�A�.��Q�W�w��`�(��'�Hp���+�Q<�P8��ck1��G������R�q�F�YO������`	��E	�����V'x+�^��By���:xM���0�o/���W��yDao�w|��7l�|Rӧ���#�w��t�bo������v\�xp�A�2�_9}��P�ۖ>�C}��ks���
�b~v�q���B_�����}1��޾����/ʽ��W��A�~�%�0��h��~g�	��	v���G�;�/���]I�̏��ߚ���0O��`�������_��o�����~'x=�;b��;����}�����׽��/b���]0|�N�
	6>�{�d� ��=
��}����ݝ���/l��`0֗���_M� }���`��v����v��y�a����������_W߬4�Q}(���zE��
�
�xCQ^����1C��YCA�o�>�v���WC�����M���݆���a�c%k�3t��0̛�	�����OКMp�X��~�;��s�p�ӭ�Q~���n�G
G�{r���k�3p�3i�[��G`|��^�:N	x�H���<�#��
	|o	�ܭ�*�Y�_9
�v���x�7��oK�Q�Q���������
�����3_
<;Ǡ�ic0/��>ڏA��1�g�.�Ύ^��^:=�����D�O�_��t���7h,�5r,�?;�_��n��90�;:�<�]×�\7��8�W/A����<�Oa]�ꛡp�S(��S�۟�B����o�yPw<�c��G�x�Ax<�=j<��K�0r�G�����	�E�.Ν�>@�9���$��z0�F�IX��L��>	�y�p2��Ɉ�����>c2�����_�������1�4����GO�NNF�n���Y{
�&{
�=rp�)�5S0�L�&MV��|iSўFS���Sю�S��њ����W�4��h�S���ϷM~�ͦ�^1
��F���4̛����i��ޜ�uq�4��M�tz�e��hﴧ!7,'�!�A����*ς�=�y2�Y��N,_>�g�s���	�y=������|������3�n<�/������g^޻Q�	>?��30~��D��	�e��x=<��hx�L�ł��ߦ��f����󳦻g�Ϝ��ӕ`������@w{ga����/����	�w|	�>�%�c��z���|�%��n�G^��|	rȵ��?|��٠�.�����
��:�����?�o󼝃u�������^F?���y��������ٗQ�Ms��*s���s���\����r���Ʊy.�[o�G�a�
����<��;����~�;t�_�j�o��W��y��|лg>���Wya>�=r>�i�|���(�Ѓ?����/ ��H�H�1v꯱���,�x�Y�걅�g�B���g(\��к����B�噅��/_~_{��E��E�����.R9v���"��K_�<����W^���ͯ��}z���1O�.��~1���Š�zK�߮K����s��g�`}Z�x�x	��%�KQN㥐��K�o�R�k�R��v)��\�R���2�S�t���/G���Q_��k`9�[��t���,.�8�]��\�~N��V@.{�{t���Wbo\�tW��F+�.dLf�u%Ƴ�J�)+Ѿ�+�'j�-+����D�V�nN�D��*�p�_���*��U(��*�C�U�������PުU�'o�R9y��*��	MWs5�i��]�Q~�j̓�հ�DW�NW�F}��8|���j��uk�x
֣�k0��րN��A�o4|㫀�_Ey������C^��*ֵC�����E?�^��kا�d-�J�֢��b�ݽ��P�Z�9�����G}
��נ��|
v5���_��1�
^G���c�?�:��u��޼�޶�Pe���u�O���η��uh߯�n_��}��׏���.|x;��u�z��p=�m���]�6Z�O^��g���Y��ݾ^��*O��6`<+n���ۀ���=�h��
��0^�nD=�o}�݈y�e#�;o#Ƨ�F�]�F��1Q�3�W�oļ:���џ�7��n��߄v>�	��&�ߵ	�j����NK��i7A~=�	�&�<�M���71w��|����� X���a��-��W�
>�m�'��8Or{��ּ<�}xHٌ�\�����/�Ѿ�A�?o����c��ے-�>o��^�]�����3��.����ܲ��[���[ў���:��n+�⽭h�1}��V�Q�6�ۍ��φ�0��~~�v�G���Z���F�QN�v���v�M���v��OmǸ�َ��o�x�t~Z�I;P�5;P�];�nܣ����������cƱ�̟%;@w��؁�Vى�uw���<=x'��}'�pl'�%����va\��yw���.���v�Џ)�������a|ֿ�~�t߿��r��|�x7�Wg��]vC���
y;��Z�x߾|����i-�=�݃qo�����#�t7V�g�A}k4�f��^���~����#�}X��}�K�b�Uދ��ۋ���(o�^��3{��{џE{ў��nv�ż�z�ij�
�C��a���Y��w�C�(�~�sn�q�*�}:x��C?@9�?^}���/�!�	}:�!�μѮ�?�~�Jُ~�ݏ�~t?袇�ڏ�>�z��Ѿ��A?h����? �X���r��@�;~v|������^D�a��a����'�>^V~y����� �i� �y�A�_t�x� ֻ�>!]���'�{��_�C�'B���>��,9�y��!��6�=:�0�8��`�a�;�+_;}���|
�P֧��o�?��p�q��C�#�{����������{�_<��-:�y���w�I;
=�+��,������`_y�����g�C*C9
���G����;��8p��V�C��9���*��u����+}�u=�����<��[������/�>nR���f_a���-_a�����㠷N�1�{��O:�q~�8��8�����G�.�|���(��ט���6�k�
?G����5�w�7�_�o@��o�O.�|���hx������e>����`��#؝��������-�үߢ�F�>9��x�˿Gx�Z�I��I�ӆl�|�$�7������0��y��
I��!w\�֟?��C}/�I�՟1޵�>�3�3�s}�)����N!��S�ߝB=�Nc{�F�G�]�8��}�4�����3�πo��u�ؓ���w����/����E;��|wӯ��O^��A����>��=�~��	�����9��z���,֩UgA�?�E���������9�s�9���9��TG��GA�'	r�	2��`��}R��qA����d�� �xK���BP�y	�:���p������)�܎�D��	�<<W��{A�̣���^$8�LJ�,�\�$�̺(I�q�E�A�W_d���b�C���j�<_o�� Ͽ��V'�|�A��t�<o}�n�d�8� ����o,��	2?߬�Gpˇ�o}/M�qXH��vߥ(��<//Kr�r	��q���@��(�I2�.#(zA���&��'A�g�	U�iW ��W.��ZK��MW���D�d��� �O��
�ʸ
��x�{�ui�U��ܫ@?�d?��2�k{u��C2_�� �K�]�$t]� �.נ���O%��g5A�'_\�ro��C�����b�Vd��&A��/��ʺ��r���:���˯>�d>uP�կǸ�}=��A��}��1_��#ݳ�n��5�o�t���ހ�o@��n�xl���������Y�,��x#�I�̷�!��@훒d�@���	�\s� �_]��$��e�~����|3�F��RA�WQ���N'�r�F��L�Y�h}K�c5�[@��oM�u��[A�[o�x+�[�6�À�0��܆��L����?�ߎy��v�+������Cw��;�ߢ;P��;���=T���"��"��Y�Y�"�mY|%X�dE�?P��hE���*�����ԉrR���>Jp�#8���J��w�*�\We�Ww�,����g*㽣
ʿ�
�]�sG��?�/��`|��|}5�0�㪠�Od��*�O�;Q_K���~��w���D�cw����	���N�ӍU�D�o[|�
����~=pW����B;��>��]�G
�a�7����W=�Q
�{� ˙g��/Ԫ:mS]�W��N�׷�?�:��2���S�驁r��@�;j`����]�O�c��x~�uw7A�����$ћ��:Np�멨w=A�s��u����O�	��T\x9\�]3
폦a^O?z!
��4��9���S+I��@��k�gj���AG��Ƽ��n��?jc>7����^��
��Lm���ژ���z���=���A\��O��}���=����b�j݋�&�^���<����V'I��u@���`�^�T���������5�b�׫�v��E�u�ީu1��ꂎWi��4�~]��H]�����uA߷��y�>�K�}��}����>�އ�o�}hǞ�����_����#�TX�~�f���N����:}�~��a��E?"�r�5����x�^^�:YP�l��~�z>]��6@{_m�zG��orC�Mb�?������kY�D��4�8A��n�upp#̫W�>�6B��@�& ]�0Ϧ?�t�5���gdy�_c�/k�>��	�F�GnЧ�	�őM���� �u���}�� �5� �I��M��k�b�ok
�����xS�I�)�mDS��lS��ڦ�_5�8���=��{��j�v�A0�xo����l�y�R�7G�'�������1_��c�?��~tK]�LG�ҁ�5�(�H:����'�3��3P~?���L�@�f�^/m:��t޵�_��cx��-@/od{ɧ- ��n��C[���-��u-A7���8^�
��o�qh�
xu�}��
� �1���7x퓉vN�~�g��73����/3U���<p�V��tX�5��~�hxHk�oZk��KZߛ~�|钇P�
a���:��!�����E���=��n|�k<<��N�
�S��ƀ6��@^���T��mAO��B�z�-�b��x�-$���,��X�}���A���|��~F6��.�te?��A�㲁�Y~+�گ���|I�1������i��-n�t�ۣ�w�c|�n�q���T�֏����<�T��g�qS��9h��-'�h�\�_��q���1�2t�E.��#A�'9G��y�:b|uD9_vD.��r;a����|��i�Y�ΘO�:�?w��u}��t/v������w�/:C>��3�Q�a��NCAp���]�O?�z����_�����=��|�2��m�#h����*��Q���Q��Q�+�(������G��t�c����3	���c�??;������$�k�7��Ϯ�ۃ]Q�������oW��خ�/�����v}]�
��uøgtC���ݻ!�M7����0N'4��n�7�@��.ȑn���|���x�º����<�{�<�����C�O�a�䡼-y���<���P�n��67�km
7t����Lw���ݐ�V��W^wc��Í����:ރ�y@W[	�����P��$��M$�v���}�j��1�K�'�s��l%�-5|��f���tЩ;�_�#I�}=0�>!�
�_�>�a֝�ȝ�����3������ ƱI|�0�~N��K����
�ѿ_�}��/�o>B;�0�W�D|��������)�+z���=A����lO��Na�s�0�gP�sr�fQ��Y�5���1@��
̋I���q�z����</	��z�rU�P~qK1���hO��/=�*�-(F�k�������_��N)���Y��C�J�n��f�B���B;��hx~/Գ����������^�_W�b�����&�����h�R��R�w���.�x-��P
���ޘ?�z�~����ۇ}��H��d�?)}���ع/����'�=���w_��X_�ߏ}�\���&���^�п����.���Nk��e�G;�����!�>Ip��+�����!0>G�?��p�@�북�C�B��=��0��h��A�o�$
F�*���r0�::�X0�⇃1o:w��L&>���CQ�ġ��+CAoj�GC1�~�~�<��0�;M�A.6v�]À�g�@�yO`�=��?x��F��8�>�M���.ñ���cܧG�^!�9����{�c|�G`�_>��s�o=��u��3���nj@}3F`����l��vp���
#Qν#n;�	�e�H�㩑׹#�׌ļK�r�(���(�{`��棠���v�����yuh�w�h�5Gc\�FC�7r���ù�����?6x�>F��1�_�A}�<	�Wy���'1?	y�'яzcQ^�X���I��x�X��q�_�qW�~��C����p�i�8�G���)�פ�0=��t�x؛z���v<����A����Q�c�w����0�	�߆k�t�&`�.���2�lO0��y"��ቘ��N^��x�|N��xm�����I�)�1��MF��d]�&c�1�p�d��'c���rwNƾ�����)�?FN?xs��YS@�7M�:�:󾮆;M��u*��T��T���5�><x�x��d�ɞ�~���_���3o�Y:
�Z7
��;
v��	>�r������u�3���g@_�g0O�=�v�3�3������g!�Kp1��9�u�OOr�b~9��<����1>/>����kσ���z����^��/�E�SM_D��/B^[�"�M���y3f�~>�z�8�xx&օ3���gouga={`��f�V0���'�B��f��
_dz�|Ly	�~�%���1��f���gc~���ul6���٠������t6�u��f�Qi��9��s���൧�0����q}Y�Y1G��9�+�瀎o~�O�����1oV�>��e�E�\�{悿����x.������?1�a<��=����a>������1��3�>��u����g�hO���@�six���hϲ����C��j�[�~z"���H��B�q�B�#
��WZ��<��[��_X�����k��?�@w7�:o�
�&��K<ޯ�V_��o1�n�b�u���X��߲tz�����m� _�%�w���xI]�t�/U�`)�W��>�ힷT���h��K�_X�q�y�s�e�{�2��ˀ�ϗO,~k-�^����ˁ�_�c����6������hw�J�h��+я̕��+_+1�N�D�?��^�
�~�*��}���� ���
�_���j�k�WC��t���zy
���^�z�ث�������5����\��=������Z������$�p���ݏ��|�_�F(\��_������߸o�;��p����o`>�����ߢ70�׭�~���[�[|��6޶�o@;�7��^P�������#��7`��ۈ��|a�F�/;	�m7��o����M�)�ބ�����g�y�
S��ݷ����I�5�m���1>M߁~����W����;�/wl��t�l3ֹ����ܼ��-h�[О-[@/���|�.�wǻ���[��
~�l+��խ�7U�a�gl]w�<߆y:n���m����0Ooü�e;����ގ�Y�r��!~�t��v�'~�t�ځrg�ݾ�����hϫ;��v�?�va=���مu��{���`�p7�$���z�vO���۷�|����z�^�o�b�n؇��d���a}���u�0�g~�o�k?$|�@z߇��<��Ȇ����A�
���8�����X�R?By����G��=����~�Ǡ��C�H>�y� �A�ϒ�����	�e�`��!��!�'����;�v��|�0�k�a�����Ƿ~��j�)�3��Xן���)ʻ��������G0���X��p�cX��>�9�z�砛.�C~|�s�׽���~9��H������ۻ�^r�D{���v�_|��
r��QN���#k���;�~$}����5��!�~|#��||��ߠ�-N�.������$9ֱ�Kp�o�狿�o��o�w�w~�q��{�o����C��|�X�I���I�f'�G�D�?	�a�I�Ob6��|��I�[�p��#����\��UI�߈v4�riя����'������:��'�7�3��Shw�)ԟ}
���?~���e�'��?N��=��S�@�x�ַ�g�o��mg��;����_�?��O�_��/��_��/���3��
>��W�w��+�޿a=����/�;���w��;�4�w̓���x��y��`�����?0���b�F�E=ϟ�m>�v~}���s�k�s�;�:��_|N��s���s���0��t�C��?H�Ƿ3A�7Fd=�FR���iY~�$�����݃�����OP�L�̇d��Xr��qA�
S��~>=����,��Y��d�u�h��n4A�3/@{wd<;.L�y�L'�d ߅H��I^/J������ENnO�������,�؝ �+��]ri���M�v)�m%����P�������� ��	2] ��t���B�A��_�~���#��ˁ�������@�j^�|�W����H��>��	�I�2Y���Nn x���+����RL����p?�P
J�7��8���?�~_h���QJin'��n忉�;	֡���<��]Fi��d�����rGлW��7m�{��0
8����1���a�3��@���Ix�	�����L��c
�@i�$��y������)�Om��/S|$x1�Q���wʆ��)�y��§������D�]��Z����|^G���*�?���7�����3�83d�{:	~�w���H
|���R�Q,7k���ϝ5��ק��ș$�n_��'���Ee��őh�8˼Z�p<��TFw�-�t�:p���u���7��?���;�o���s}��	T�[�M2|��ߔ�R����Z���yY�
h�;�#������h	w��L�nS�i*���Q!�W�_��:����7,���X��z2Ώ���/P����q�rz��x��M����!���ܫ�MNf�q�[�Qy������H���Y�=�O�A�+(�S�8�66	�{Pܓ72��o9�]G�5�/�;�-�����VP��cJ����JO*�c9�}�ҝѴ�a��c��q�zM��v>^#B�8r!�Ii�i�K��UZ�z��cGi&��D�{)��~��S�+�����)���Z���e?,^�0�����)Ϗ��'һ7Y?���L^��3/	$ى�c�k�}Dy�ӯ
=�$8��o�u.��
�V�1�GX����V��&�������u��-<^!�ikٳ(�%�Ϩ�n�~��o<�y}�C�2�5��Z^ez_��g+����(JӶΓfP�V�S
΍�I�(��Q>7=����(mԧw�9?�b���z�Qܿ(|H�}��%nK���=�c������_�f(>��qzf?�y���Nzf�Gc*�"���|��h۞���(�ӏ~˴�]n��:�#���~5)�v�%��Q�g����u3��ix>��>&�5��5��%�����jj�T�;��@4�Sd�Cl����w1�^�wo��,���&�\�g����Q���_i?���F�_Q|sm�!����?(�(M�O!g�y�h�X��j\���߭��?)�?��Jq���J�C���Y��S}?�ֶ��������e̋�7W��g}%	珖R��}>�Cs�~#�W��vh=,>���䰎A�F�
)8[id���<�?@?���u��L^Hq�Rt�c��I��{���9C��c����p����ky{(��d���?��3Βp~x=�dZ!XD�n�߇Z_%�B���F?��6����K����;(m��o)=�:�XL���}6E\B=(�5�]�e���G(ޗ�sv|b$ӝ���w�4܆�����'k9��4}	�-�9,�������
^'G����Z�b}����t�cc���7�iVQ��̋(lT����(ܙ~��]+����)���Y����v��W��N�q��qm����S�Z�K�>Tb�j��<)�&g�H�p�q�7鹳����Tf�}F�����v�e�6��,�bJS���P�=T�w�|��
��S�t��ü.��[(�d�K}�mgL�{��RX6��v%�9=��E���,+h�s�h
�M��ā3|�S�ǵ���H��\M�&��k����$����IZ���8�����
�l{+J��y��G��){��$���k�>�A�������3X����[���s�����eb[�<)�b~�u���4��u�7�Vn;Ms1��*�#�
�*
���+~��ƍ��[RpV��Smt��֦y�C��4\@��(�r�ݣe͡���e<E�(�x���~��%xU
�����蹋�O��i̗l��f��MZO5J�B
�eR���b�`F��K�V��1�_έ;p�U�;����g���Z�'W������u�(} �/#��FW9��N�tI������4�b��һ״N�NT���Y��^�K��z�J�>��e�$�Y�O�4ų��H��G%�|���+�YF��Z�%�o����Sp�w?���S��qf�_ڶ)��͠4#�}?����o.�˶fz^����Ķ���8�-{�L��?�~s4]��?��mbc��<�nv�`^Hi�X�&�1ˎ�tQ�c/s�w9̗y���1
Q�S�#��Lƽ�Q�I8�\�i]�~��7�<D�=���I���>@e�S|
��wj[Fh�.�u%	���|Q������K�y@�
���w��#=��-��~_r��</˺���'�<��l��%	c��i�`I�;Ci�%��-�c�׺�Q�ffi&�h�߬�ӯ��e���
�p.=gj7�C+E��Z���F�3�����9@�bGD�FMׅ����O�=��K��R�K,7��z�Bp%�c���([=��{Y_K�����3�5�i�`}?�������^��Yǡ��y��-ű=q0����I����L��ڧ�T�B�]��f�/����}��ƫ?�r�4��9g؎�q�-��E�潤(n5�7�8��i{P��ɸ�y
�Q�i���.��ĸ������_ӷ"�<�+��j�X6�_KM��y֛��vDX6�4/��$���4�i�SI�{Q\�"J���_O�y(���c���=���'.浉�
�9G�z?��>�4����֥tcXNն���{r��(�#�w7�;�6����i��N�}�l�s=_J�w�v(�C���{�܋eT��"XL�Zo�$�5!:��w�
��Kq]�9ˆ�w��_	~�눖��–���M[�5�kA�̃4�Z}4Ls��zw]
�S8�vG~갬�}����;�@2�U�˦Z>��Q�c,��s&	w�4ѲJ��CL[�=�:�����rh�.�c(�lg��)�<�2�n�wgM&��=�Ǿ��4�w����\>�+`���C	��#�"����	>��iޢ�3��3	w��Y�g{�i�r�.X��v�+���
�e*�%=?�m:���T�wSڡ<��>�8k+k��(�S���Q
�D	R������Sp��*�|.�1Jw#�X�p
�=����{_�)�+�-��y�؆�,m�'�vQ�4_��ߡt�m8v���@�̤�lCb9�u7~G�)|5��Ĵ�vN�
�<��+�MTqЇ��>��X����V��me��0�#)��uV5��������.�:#�ˋ�����������7s��9��<��#�Q����3�Ыbo��Ϊ�P\��3�{=�`���Q����,ga06��Tr4�=I��uz4��"�΁|���#T�����{��bK¾�[FCփ��+rx�Dq{��"o�CMv�#Բ�BgI0�8ݮ�\�%6�^C�e�þPĠw����&\n*���%�t}g��(pz���0�$�l�i������`C�]�<#�03ߙ�J��0���f9�\����GN#�
S���+�iP"�"��*9�}aj'՞�E:jR���wF\=��T���
�	Cw�Qk�@�i����F
jC�"zH+���n�a8�]Ԫo$�I�\D0�s��P�C�5��j���4������8wo��q�°7���L:��Xw�yKb�s/���q����F��e�#��R�X�7�@�y~W�G��ѐ�a(�\i�Fy�۸��4hT+�1ӷ/�-�N�lj��hh]O��W�����2w�CC�.e.x���"���S����GSgz��E��!o)F�6�w�l���g�ax��>Bie̎RO�Mi�d�hԼ���[�7��{�Ì~y�6/5�0�!�ss�ps�fz|nBa/(3�͓����=�!N�(>������IM�0�����7�d��LGSv�7,�2���s�Jٌ��aW����Y��?���K���\����3jPa�3@��<=�ٱC+�n�d�!G�T���p3�~���*'Rꗔ]�m8۸z��lt���L���v��K�����=�C�����ث��h�F���o�����R]�R
3Vl�+Mq�]��d�)a�/�3h�L��TF��J��/u�r��Q�h(ʓ�*�FE��6��eb�v!��$��,�h���Ě��i �t�C�]�[���!A&��`�G-e�&�ɐ�rE��)��O�b4�T�3�ؤ������$W��,1�<�<�ن�z��G�z����&-r���O1,%ă�"�/��S)�A��W)-J2�����AO�&j�
�������u"�H)�#B��H�
��~�.Q�î"/�B���'-�B�4G�<�	J	�iΎ�i�pJ�����V;�����Ę�,mR	�x=0�B�U�-�lo���fB�j��8���+
�#~%��~�r(�2�Rm>_i�Syd��'�K�q�g0��+�H��&�Y(�baRk8X̳��^R}a鴇8
�=e&�G��3�@�r�S����>q~$�����%&l�Y���'N�r��
�@�jNlS�Q����Qץv0ap�?���F$��LK2�����zI%EIz���A{9t��]�<��9��Js*� ϓQ?�Iʗ�#|��(�)�t����m劍r�PA��6!\��M{b�D&�zR�Y#�-��h.�dS3��ӆʏ2A�_
�Y�l���?���v��B�J�Kxj�7�����P �b����غ�(�F&`n��K���t��ьZ�39^в�[�F��ᛃ�����5|n�ׅ(��� �C�W3Y������Z�V�7��H[z����8�5���Փ`A����C$���C��Q��F\�\B�#��[O\V�����D��͘����l\tn�+��$a�������gs4���ɪ��{R,/&�~�	��20cJM��м�Յ���;�8�R��z��s]Ks�F�k8t�+���ه�
yJ����*�NX�.�M�R��P�Hx�0ٹ��3��@*��2(ˑ�?�Ïe�>�2p���=�:�S(���{Rq;���'j��'J+�[�cν�4�$=�Ѐ���)�!�p�PU ��6o/W�y*����y�(�d����a�
L�"���^n�0!�V��ٵ�!^iJ�-�v���kLNN��9J)��P�FK�Ҭ5�\��7�(>�+B��:�n��S�`A��Ê{G#��b)&�5`D�%u�|��h �U6�} 4�CFN����w".�5�C5�K�'Œ�#��iL��D��[bX�	��"a�HX�)@f�<W3C��Ž=�����=�O�Z�d�<b��*k�V�U��٢���9��D-F��(Ut> �J�~��C�f�:����m/ۙ+�}���&�X�[�TG	�a�����o �/͙9�jms��D�"�z,֓P^��d�
$PTJ28�n��XR�x;�	j�VBa��,��B|�&�W
cUe^&"P4��Z��x-N8�U=�(�d��PK�8$�5g�H�_��p}����~�kB���Ҙ�!gǀ*wg:-�������D�I˽+wVj�U)�@b����)�-�����4
Ҍ@�q��$&�`���z/��$���3���E9�2_�DEIJˊ����������W�}��ģ��$��Xi�
���*�n�H��x=��e�l�P��[���|��0���p\^Z1v�6`��UX����<�	?!>"�fM��|�#<�˾/P��lk>�4��	��>��������1�Tg#_c_���h�J�yNW�K�Z��\�����;1�C9Q��Jt�2)j��hX�6GQ���<�B~��j�,?���GV��,,e��s���i{ĂtB�������oU,�E@ͷ�<d�(�B�Rۋ�!2���,:�Ss8G�A5�J�k^k3��Z�\�8�W�$9���7`mf�.6p�A�t���٠��t�HB
�x)�l�K��`���/���J�<�9���t�;�<�2,	ɍT�`����T�kv�}/�����*��zL�bC����uN�d�5�J(_a�
ڗ�z����
2�`z33�
qe�!��,W��|΁ٖ�f4���e�.�',d'�&�pK*��Q��$Z��]UMC�h	�M�����{��B�PE������$Ef���b�5�L���(z�l>E,����0�� �Tgo^���aF����`�ë�xYD�rn�w�fIJ�G���ݚqNn`�T�X�#^W���t^@�m+����nI�F+4Ѥ4�c�q���}c�J��9<Ê���B�����0�s�O6ÛoL#Zs���_�H��J�:-6h�д���ϲꈛ;b�����+��+B�=5-=�J	K�+�0��%�<q2G���&�Œ�φ�b��Rۋ�o�2�ʂ� 7�%�y���2�����|F$XdNMq��}k��g�8I�C\\�2��sf��uf�g�6��%�UfVKg�L��ۧ�|�M����8�t�=��Bh=��{+*'ZĊH,"W,�YĔG�2Ĭ�¡#ݛ-p��-%�D<�z)��2c��XTf����	�-xV��������
�u�fR�ˤh�ם��m|�Z�s+>;�+f��UXo�Ε}!Z�=�5+��t�'(U����b]���b^A8$����w��s{��i���sg�୧8
�,��ޖ#������
�%�6
�;sO��29[#�{GNW~>��|Y�Sc��eA�Oؽ�M�"
�N��ҖưL�e�cy�񜟟�	��=ʰ�o��R����ɫ6g�RiBAoZ�h53�Ș�Ƨ�;�Ϧ�:f�T��<V��!�l�CXj?�Y��6�2Hy"y����.^6��n��HՑ`HvFE�O(�f�xIf#�!���Ō7e2
��h�[�{0�mA!|��t��-oW�9��Yf���X�v:���7�i�M��I����L��,!�%\b�����W���r]���w%ưݻi��j�����SP��^(fW㛚�}�6c����jML�vċمNB4M^��4��V��Z���a�t�l��uUi
Afc9��#�ئʏ�b�v�y�ۛ����	�u�xJ�"��"5�b�Sj��j��a�6�ɬ����R�"�2�K
i\��4ZuL�����*b�h�сυ�Z�9�qt�t�.əj�w�]���7tH�2�.׵!���_�j��2�/EV�_*	���`�
���8K�bٗ���c�w�DZM5	RkӬL�,b~/��2Bc�%W�_)�ks֑��Y�����	KmE!"��DK�F�����.	���Y�����g@ԟf&���Q�����2�pk��선����c��>�g��?X�s[5�y�OHO(
�xU�����ֶ,����l�5�&>��S	G�Ѣ^@�+�̡F�	���=S�t�!hs0���O��#���o��.�#�e.�tMHw�\�I����k�S�6y��v�ك�T�0��R1�;e���y��&&h�����r��l,�*�L�BM̢.�i�O��35��L[8Hf`˄b�v����L$.
�+������f �~L	4C-�6� �"iMA,K"u4��y����I<!O�4&kO��u�L0��?Ke[ !@�C��w���+p�S�D��b3qD}ٔ�#�ξ>q?��a�d;K4�V�NK���[mDyG%gN�6
DD��!No���}�ޛ��`��(�:�YرV��D�ۋ?CG���Z���ts7�+/rxSC��f���gĬ/�@����?�]i������fyOЋ��a�q`�Ih���U%��i��i���3���K�@�ݙK��}�\�EOC�}���(ꗕ+̆d�V�#~�Y6���P�L�M�?Pgg(E��i�%��G�~�9h�g�o��O�*%R�xNė��;������'Q.��5ML�	��8���o�:e[�Rٷ
�J#��B���N��̊��^~�e�o
�E^���@�烿L72.�	[�:�T��ٮ��h�|�����	��2�hm��ƒ"&`gQ���x�5��5(�=�����Wi�)x��G�읪�a��J/�-d?�&�#"�`�g���N�҉�r������N�bA��X�UWݾ��ڝU-�*^�P[���M���kg-7���f��Y,�석�/�C(�4�Z{�1�����V^A���p--ɏ�ذ��m�0i�t#o�SQް�¯�O}KZU���,~O�1O}+�"ƲF�AU3[��l+��2��N��Ռ���n�ьu�"7o��ۼUS�M䙎Dq�j���	Y:>�
��8!1i�Mᰉ����y!u��m����Rr�kR�2ި�de�/�f1�,�����V��šv��M��s��qv�x��.A��	b��
r[I*!���rf��4?�Hq	s�+M�|�嘲0�0DY^�%D7���ഄK��CAv�|��*�c�)M���2ـLJ�"ѻ<@����iťfȚ�YM�j���� ��{K��q6�Th�r�D�j77_�J��]�����.�,��o-I���&yӟ�'���QJ-G�;$�A��|~���`a�����c�쉔i�RNmj����]-q��|b�U� v6M�~a�L��Ɉ�m8��jo���h$X�()���%ΉXC�Ɍ94s��`�;iĶK�l+�Pc� �k�&T�I���	W�c��'U!����
n,�z�EPhsvT)���8�Zd�xʋw����v8c�Ă��+;N� BWIV<L-2��{f�~�f_�M�5%Ľ7[Of�u�޹|҄�l�X����ޮ���y�c����A�0�(�K�V�[�Zj�E�q�r�ɯ�V�}��R�(#���"�48�QH$[*�w�(a��0E@�WF�a4��CG�3Z���N�z��n|�]�i���J���]��Xk�DQnBT�{�AQ�T��7Y��aYJ���E��0@#`����I!�l:_L.r������9�L�|
c5�D���,yS��Z-�n�SJ��Uoυc�Nd��*i�q)bW��U�xjp����ʃϤu�g�b9�?��FJC��Y ���S��g���.r�7}I2�0r:��=^ف�1��,J�e�6-W��8ۦyBIdX�\��eՈZW�x�f��!���A������X�	�̚�h�Q�)Q1�$G_M�r�tfu�2�6ך�e�O���ţn/�pV�k��X�g[����E�5Ru
=E:l�c�~nE�R�`5�0Q��u���R@^���ջT�)&)r�AV��W��Jb����~��IL�Ҝ���t�aR3�y�p@
Q��+�٣����lj({B����bR�;ݡƫ�B�i6<�drh53��)�C�H��P�y+�w-pzR��
6�#?���qL�9�2"aS�L4�%�
��~���f���E~O�G���`zk%Ɨ����+�����!5�Bi0j�Kc��we*�I5溊��j��am=��p@v9��l֢��xIQ�,�.���S���S�����+C��	ln�j�W�3uN�M@j,
Q�|��a%(	�N��#�a�h�ͻ�$Lyr��	C�ռu_�,���:P�o>��1�W+JO��ֱ�^���	^�"W��.A�L=���5����ە�m�d*�n�Al��
H��R�ʸ�u�NHK�MMjf6�M��<��V������a�l\��>���酈���]�֤J������y�C�lg���`'<36pM�Ҁ�t�<3�O�;��R�o
��7�h����)��jX�W_dK�,�q>w����l捔�gf�h���sf��h�y�$4�I"a����i�I��
n=_�5-���a/���5;2�V���9��e�l�E�F�����%��Q;C6m5�����I��\xDXn�H�
M����l����3�S�8�,�I���g�#�c�Ǵ�Y�����9q�#\��\�m�Z	ű��޵5��h��uG���B�b�J��x(&���'Q��2~~��u�Hs�Q���
�b�R�]0�H�7�E���pU�Ʒ��V2z����IYU�Z��K��|ӠZ"�l�<�$^_A!��"��	,��MԿ��eˊ���C��p[��o��(�m���*�f��p!�G��_���Н*B�dıv�~����$�/��nztx����"/n�	�>�6�Q�KHX�“
V��sZ�L/�4�S�䓪j�y{a�E�2� �+��4ݰ�%t�J/��e"�?&I�f�cI|�Z)�8���D�,��۰�2e��w�������/�$�y_���!�"��3�x]����C�x,�G\���<M�0�ﱾ�+߲��	�
n������O���Cb
4�Obˌە��Y�"hLy�!��NQ����g������QЪ1�qkL�[-݅���.��MGW��>�#~Y��0�_�;]b�<5���o�� �����#�,�CK,��2e���eKh]N��^��W�����'	~-�a�)����1��o�}���&�J�J|]f�,1A9Znb�,�FI8=��,��d~˼9o����?/ثL�^e��Bu�+��H}#<	7�d���h�L����U��Sg��8�k�}2���:߶k����PF��`�WU�
��c��N+f��Jِ�3�-e��$��"��$G�s8���B���"r���@�eT��G-���h���m<v�0�M�iN4m�"|j�QdG��e��fI�����UK�kɱ_aNu�u!T]����,�@��]pf�����m�
a:v>X��ԧZdS���F���p�S&.*F���a;�oEY�uQ�U�j,C��@��p��������.%�΃��K�r8�#)Pb
��\TҶ��mǜ\g�gǬ�3�-:����������4;�Mf󦹙�heh+��
,��֚�:�Yn��;�|���+��.tN��%�4�"�u�汶��K�s˳��s�$-췅��|{�m�� ��㿝��T��l^�aF�.'�.M�zŽ��ˢ����R���S3m�N��ݒ-�Q,�.��ݖԿE�Tup��#�q![	�5 ��4���Y(��ln�&��[q[�{���tc����D3&η6��t�q�<��ބ���	�m9��04�|�R�4I����'A��-�t�c=����fc\�V�hTK����-C�D^Z9/p��7���
ڮ�N��ǎtFZ|۱.�w�-i�GlLa�V�$�%�͏�۳.�F8	o�CC5��R��9rX�P3�67CTZ�|�����#[���?Yn��<r�M�<�*'
�|�(T�[Zw���>��4f�Փ�1#2	�nMʊ􌹝%؀�"���=p#%��g#%����I�,�h�Ay
�,#1u��U�~��$�:=���y~��6WXo�y|ԪX}S����M.*P���Wd��X�f��/g�\bG_�n��!��lL�i�P��:8p�P�2U{ �*j�0l�E��Ms�%v5���Ed_�ґ���]C/vT�Iǯv>!��l��hyc�ʶ�v��<u��JJ.�J��˺�Rt�.6S[��v#N��Dzi�m��j^�kb����SA�THU��uڬ�hz�2aY�8�2�Ub��y��虚�=A�sJ��y�u)�	����*�
e�wS��(�J���.�ul�n�!N�G�RR�j|,.(wG5.�uD+D1���㉚�n4v#����oe��!�la��I�Q�c�Q�)����h��~5���+xb)p2�k�e��`�o]bZ���rD�v��،ㆲ��W�����X�vz��>��Ĕ��&��D-�#iHp�n����ʖ���aWg������[BD��{�Yw�Eq�KO�.;�w�P4"ֻ�;�GNl�4Isd7������g76�-D����em��
n�"f�d��>�g=�X�%�!p���Ԩ��Ė�Eo�.��/p�{\Zf��jZ2�%����"���-K�a�/ב�7���\Є�e�JY���:[�C8�"��o�uZY�7Ļ'v{�Ô�����!#R�~u��qX��ǜ��1(��	�F���Tק�}�٫F�!J���hf])-S�,�X6D���$�4�6�GWL�f��%69m�2z�-q�'���΢e�C\�Z��EI:gהD2�k�sJ
��ra9zX&lr�%����&n
2�j�g��
�<CP<L+��<(�dzl�vwi������\��N,����������f���z�/���GO�d'���V���S�����[�a��Ї���262	ܦ��N|�id0�ⴳ�v
��Jڼ�d4Bz�F�vU��#��F>��ۙ����,��2���k^Ѡl�H���VԘwn��IJ!�9�w��
ݳ%��A�r*i�����@�#^����%��q_t������N�\-'�@�ܥ2V��vg���g����ك<�۫�Ζ�9���o����Im��S�"VQ$�J��0��\�#���W�y=B��<���`�}�1EX�8��5�&f���.�i�0��Nv��EZE��N9�%�n'�:�j�
����ـ�6�~b�kOs/��dq&�rS�gW�hj�b|fr0Z�87��c�Xc�[K�ySopq����b��(Nq��łn{T�y�D8b��|+�Т��1�V6�u�-��lG�m���(<�Y�%�rC(��U-B�9g+�\_�����P�I�u�� �)w����uf8���(�m1�k�m�{�T%����6�gH�p���U��8�6>)
�p��]�=�ֽ��0��D^�
[�]��
��J�Ҵ|g�e�ЈإE�F�VU�gK�˶L1��[����l5-D`tV����hz��uʞR��]Ub�q��Ą;{�R��mB���-�U
��OS�Pؓ�J�+,��#5�޴�4=Olm�[�#rP�
.�M,)�u�L�xڳYAn����e�ɏ���8�m��Oqm�w.�I�W��ZC*b�%��_P����VA�$�-�_I�7�xC0�Ĺz܅��q4j�^i8�[M���d>[ש�;pg I���T�f(���,v�z����$l�;����gكzy`Y
�}�~��v�<e��"��\��Evk�E�`��Q^?��w�}�heb8�W�f�y��z=\�U�*�zhd��+��;x�I *��Kڌ��HdFY�RA3곕f��N��NQ|�!ƅ89c^��A�Le�e�M3��Ɍ�l+zy�x��&���IJ#cBbFQ��όΔ��:ʼn[�_b-x�od�,�}��
x9ؾ'���ˊ˫�vk�4�ʫ{�F�
T}!jl�Fc��H�@�m����+��v=ˁ���2u�p�7E:��a9�O����D&НK#nG0�� ��v{�
6K0�;o�L�>�gm�J��U����.���;Yez=�a}9�b֠x#�:�bh������FDx��D%ii���r��B"��|�S�f���-)��ZΕ��_F���+��kn@�Lp�2�J�s���vQ~��9;)��eN���We�'bĮi�]��^IL�|sK�4s���C�̗~`�`B�q��}�2Hb>a�%��Z,��P_��lĎ{�gDBL�9��Ȁ�$��,����ދ�`�����X`�c�O�k�爄lw)w���G�%�B�O�]*!�l��D�	̽^�Ѹ�3��t�{[�м���*"9]�r�>܀�e�:Lkc��SY宕�|���YP��^�l��G��02�(ȑ�'V�@���=@d���bJ�b�}P�O�x�uo$&��'F��B�7f2�@h4�Ja]J�9c�1
7�Epr��GC����2q�ʺs�'�ͻ�J��y0��q]��T����-�`X.�1MZM��=��5�ѣ����g�D�A{�ީ��u����0�=K�)&�.�2Ӭ��?�;�x
'�A
�ł��G�u���en��[A��@��{`�����3��'n�t����ȋ��4(���W:X'�cI���5���
�ֵ����H�Z�����$[y�Ő�W�T�����ӽn[\r�b}�O��&W=�gn���쥸GU�������m��D�@������"��ۯ�k%�"��
��*x|���@�L�_�e�hml�7�d+�#'��E��@�H|��T���t�-.�����QCZa���(A����}4�[AD�'$m����A@���gt���\
c�ϐX����Y�觏�%sQω]�!�I��<��vIp�F��a���9�ii|��r
��K�Qm�c1�/Uc��oF�p�f�\����r|Gῦ�,�
6�pd6�6�q�sl��j9}s_�T�#k�L�nW�!�f	��'��/��|���w��xD9�E�I�!w�Ȟ��-1ҕ�����'�u���_6Cn�4�]N��T�e��=���+���C�r�X���#���D���=�F�y�$'�ګXam�y<����-�d����_�1�VB!LH��X�2���f���u��TIǺ_�������i?/�����H� �����i����\�������q5WDo�5��C�~�6�|>Ǚ��vz�/O�7ceĭU�A"�����ʍ��_�Oɱ�&��#�%@֜�2�YcaW�LOق)[C���T�����)�ϳ�`�od�
c�,��p��_O�W4�W��|��=�N��_FI̧;��5úk>VN|�2Xea'>M~ً	�&*�cr�3hݴ�ǭ�)cSʾ�������
��0�+�
Y�#�>�����	s�M��)mN��x�'��S���Z��QY�@�~��p�PvΟ������Ζ\�� ������T,�~��*�u����b�Ќ�e�)ƺo.?�(,��!"h+��zoRB~�E"K�M�v�DR�#9=�Mš�GA���Q��gaᴁk ����7�7Q�;�a�̽��W��a`6钼��
?����l.Y>Z��#��/�
��]Om�n���j�b/�M|���#����A5ӓ!�8֩���9��=�M�z�%�rLQ9|�[>��^�q�]zm:W��K���JJ��Q�/�;*ũ��\/�&���:���:.T�
*a�&5��G*�zŕ�$?Sw�.���qk+2�5#� ��W
G.U�C<�x�t��w�C�"dUr�Z��̎��EP�0���Mb2j���@���SS쌧0SK�:U3&a�6�A���*Ne�z�+�n���IfU�ˌ�^.�cO��͟���vl���%�,l�S�FQ�<�Vz�\$�O�#�!�}G��yv#^qDn8.���_�!���w���E|� �Z����"����*�ob{M�Ldrap��&i@�>U�J��ے�`��|u��„�"�jJ���<�#0f:^r��e~���Տ����7˰����Y��擼Y"82c�}�Ϫ�j������u��h0n�����{���,M���ϨG�
ɮ�AAU�B*3l�����)��oz�T�*&&#RN�ù`.̍��E�7�E�79/p^��o��IFJ��ƙF�Innn�{��~���з/D�
�<sj7|�0�h���s�
�t�W`�/,EWa�ܪ�sޡ����r�12
~�D%��1���B�;�K�\0��D�~��Xs���E���ǚЌ���zT�6Q�gk䝔Gd7pe!�q^HG-e�z�D��� �c�F�S����w�*��Qv�$AS�ܝ��Ѩ����v??�q��_gd�]UAY�d��ܧ��8�sw��qz�
��)��8ș�F��c�W\Y�`Ɩܺ�O���˱0�\�Ғ
,c8�ك�r�y�
�;{Sj�a�����S�2U�c]����*b^SN86h��=Z��mWj?�9;(�<R�<��z0�
�U�"]1q�0�.F	�R�K�9�Zy�~���LbA|<�+�T�N�T啾+3�C�%W�w+�F��8q���N
D��ʙ�T�'ʘO��3C�*��]��o
��+(�H)�Ȩ2�&;��~^�Z�NS��L��/"��Qۡ%�yվ�,g�� ��r��z욼@к�D�,�����ȗx������l�'d�g>�Q����O��J����Gue��y(�AG�e���"�fRj�ݒ\�_���G���.�Cw�w�Fc�vpW7F4���q�J�C�5�d)җ#B�_�@yQ�R1����&~_���6��$�8� Q�,�fl���Ӄ�a��t�4��/�"�?�(�r3l�pV�x48�Ghz[�8��U���V��s6�L��N�J5c�9ߕ��U	�(�z\�o� ���q'��X�:EtQs�:9țwE��̍��Q/��`����L>?���x�lU���G�GL�
Yyb�j�d�!���Rz.�n�uv�	�-�I�'}�Ὠ�@<�O%)�)�
�X>�b�
I`�I�7eq���K�҆�U͊�G�Ŧ�R��b���g�d�i��=�k
�8�ݻ�W��#OW8����K�b*�V�A��r���tr�H�{�y@���<�2gH����"���$�:w�*<O�?v�"0f�A���sE��Mo�|5h��Ia�|t��hh�ۙ��%f"�~]`�S_���Ĭn����-�@G�9)H>(Sj}�V3v��U�������Y��"�j3>ErT�Mւ�6�7��Ś}%�Yzz��4N�VT�24t2re
po�9�Â�B9�p�T��w�\�ͪ��Zʏ�đ9a@��4�'H�g&���W�> ��&I��Xm�L��]���a����91�[��;:b�R�$��V�XD-6|���+��!���?^��T1�'X�!��v�$��&d5R
a[�%c�so�g��/ϥ�v�sժ�	������֛F���F4���+�V"X��e�r�>#i(��5O���I�L]�� L�uG��7͵�vQ'��
�3x���Զ��kޕ�m��\��>�7C�hT��OALs�x:їR�#�+��U��0Ŝ�T}��qX��t'�� �Am�8��!"ղ��:LN��Ƈf�1[Ҹ�`3�ʒ��AYHq�0��U�'�}G[��ʹj�™\��~"Q��|(�4Ȧ�@�4	�m});r�3����I�y���i�)
��A���@|:�Q�uK��h�o:�9�BV-<��S�0��RE��O�M�C�z��>Dž@�6޸�K>�K�-?���F���Q#�A$0�Y�ŕq2�=y��l$�g�;�]���M����?�m<2����^<?��^B�
�v�Mi���� G���G� ���^�]��'�9�k�@t�%u�g�n��Waoc��S�qwR��ͫ�!Dtf��M0)�E8Bo�K�Pl�5Wo�2�wk�	D-����3N��)!4J���ps��˓����U�9;��0WPЙ�Wʇ�+�F�kZ:B������GO�2��Ho�2u��le�����!5��j2�U�νXzSf ct��$r�aϨDVM�ҺT[����v˻q��:K�(=PY�!I�EBІw�����e:�0�J`y%��L=3�Y\��YB��mf#z�/��$j?f[�	O�S��2l��|8�Z�j��i�:S>]����G��oq���jX,E����dg]��+��}8	�Rf������Z���1;�R���g$l��R~<�](�#�b6x���7p��֏���<@�4/	&��)��^���J>�h���ۆ����?O���!��!�J*i������pC�Ei�`5��\��Ϙ���{�Qҫq�]��iyFk��Mœ*�&�I
�bD��q���f�@z�q��
�n��ߴ��շȼn"S'>��;�CA�<�A���iG`�qr�K�T�3�P��̳r7,�=��NWO��?��>[�l��]E9sَV.2���Hx���yG}W"N�i�_ĿF5j_=ͩ0�g	a>���&��#=U�����U��E
�^x�RqP���'����'5��?+�)ى����H��y�CX.N��@�a)���������E}��u��u]
����S�E,G1���5L"�	'�^�e�Z_LR�g,�G��/z�4UO7�0��� 2���J�`�Ҟ��D��3n���ί�
+G��	-zY؊4�3�`���阦�C'�X$�����i�<ȏp�V��=U��Ӏ�1���K8��2�[����/�5��*W��=�J�Z1S���	����jn�V��K�W@2�T����/�VI{�PĬ�‡��L�|�^����'b0N��d}R#O�15�9�w]F�^
�{ѫ��/���*�Ҷ��ޛ�%$=�
��rhnNIAeh#Y
[A�=�#t�ҲUY�>����,�n�Ah����̅��KA}��q#�7��!��T�G���bXY�����Gm,s��>�_�1h�m3�������:I���̓�H�����ֺI�&�<{�����ӯ�߇�R���˂x
ywB��A�֔t��p5�1��8�t�6Q����
p
R��v
��N�%���U���
��Ӗ)8�����'a�]����%�n�!��a�J*�P�A�t��s�R�9��<���T'�}i��6���.3 ��?��������e�~�HJ��
��諲^��؊y��$�Rp�?�����q@�Al�)L>D��/]�,����4��g�`�4g[n���|��c�ui����30�]*]�u1s��s٦ŧaY6�ܨ\6i��b���G�[y�a[�mr�������z�VedI��Z��[��	����Y�ϸ�b�[�2��񊒯�N����p�^-�h��}�ˮ5��X�oo���Qc�t�kx��}�
��WX߰�.VP������Lt�KJsH�Mch{HZ�]���d��8�F��e�$��ÉiH�Uے��a���̎��'U���t�vߒxhc�G6�Y�z��$wW��$l	*��q�Q҃��Ue��m	REr>N��Ix�	ю�ה�!W�}+�þ�t�φi��9���ۭ�f·�~+
Mk�o���K��H�j6^�1}c�#i��S6�� �]y�uǩ�_W^��2&��u���s���㎹�
x�7G���=y��fd[Ŝ��n�v.N�X�M@�qgL��`�Xr�Y�T,���]C
Wm��?&��ٶK����ză=Y�]
fG�I�士������2��b��A_�3���p݆ǁ0tC�n��!K�.�cX��jN�)D��w��}�.+�e�!��BA�B�<vMO%:����'j��
���hڅ���3%T��@xeE:�M�'�'c웬a����4�u��E���Ŋ�b�ZQ�װ�K1u�Mbm���\�Ldr��u�r%;�Q���
AJ؛���/*�b�E�83���X���G����$���S��@?�E��l)ա"T���7@�����
B{��N>��(j�\Ia0y�٬����{�n^#@�e
\�<hk���/�~�}Z��$��>b/�p��Rk
Z���l]}[�C��,d<���<��a�>D�h�0�l�N��2e��{�Q 8(`��~d����(|y�%���f���ZUl�¦� ��pe�DmM-�pt�{���4
�g���D�?ZvDSF�b�rBE�
�*y���&����|�ٽ��{�Y����뇟��|��WO��,��a�����Wzt'�k�vs���t��xq����v�
|]v�����0��y���I
��=8�y��?�?|������?�C���~��{Vh�a�U�nH������{D�4��W��ކ�{����N�އ{G�8�!
�7�߃Y�uW<���U>ead�~}~6E�q�=���|8��G��	��������͏��VH�C�p�3��%Ü�p��6���]�ۂ�:flY��o�����샂��>[pq#겧�M��J��ޭ�
����ըM�v�ڏ>SM��_7�cv�e�UA�([P���n~���*h�<,�����@�8k�C��DB�3���
f���H`� 6�^�U��0la��S:�y�u��e�М��ߝV9��-���C�c+Ü����p�
_8l��߂<���b�����xM�IX$2��&<�w�:^���n��0��U��ew��^P/�/�g��Ͷn�)h�D�/�6����"�8��/Q��^<1��c����M0��)�ا��*�4���qj����y��KC��#\�4o���?F��/������u�:��Ͽ��o�a-����>���a��g�����_���
�ͿK�~W���+���w~�E2 �7?�����\�3�	<W�}�=[�5a.�z�Vt
��"e?|���ж�d�^v��UY����@a&�ZMi��^na~8뜦ӆ�q��u�SGp�����m��̩�����n�	��N�̲�y)��H&�M]$PPz�}�p��͓�Fwu`8RA�Wp!�Axk�� qmhpdM��g���w
��l��UA�S�E��,D���3���V's,"*��g�U^�o�N��{�.�۩��.;mkZ�a�Ċ��y�'l�������y~٢+�@��AMEB��d���vEo+g�mh{�}o?p+.��:9J�����R;��X� ��?�S�5��m�K���7�w&��x8�����N��Uᆮc����T㵨��c�t�m��h��Mh�	>֪��gB�
/4���k�AD�ug%�pvM/�1�&��ȃ��O�Z%�}x�E�/[мeq�)7��ln��	�1a�p	f
�I�������MY��:�
�`dKzcx�=m��M;�l삇�ߨDއb�7u���%���/"fKj�;��)��%���9#�,;U0n�C���������
���r� �#:,�d����D]v�7A8w<�6��Aԑ�}������f��f�\�:�t-leI��QФ
�t���߫Y��@�|mb���U��]�Z�N�����2'�7<Ϗ'6���ay��u{�|��#���ё�C��t���A���g)��R��ַ0. 7m�Ҍ�Y�����azm�m寙\޸����7��i�����/2��h�ښ}�l4��1q��s�E��X�]���N�Mi;��s�W�&F��O�x����ОzǓv�A�\���*��`�S���e�by�e��}V�b�<H4�Y|��2$�ݜȞ�5Y5w5��]���M���:�q��ڸ�Č
���8{�C�os	vކ�X$d��X0�[@�m�<�,d��^��c�=��r�c��^��_��}�L�M#2m�
Xh`qߺ	����n9؟�����V��/+���
TIS\�J</����+��HחX��A��:6�Tt�5{�j�^(̽�
n��л=�va��ֺ��'�d��tzŒ�rA��`��E!#�ͯM,>~W|�E�ݣ�kV�qI��
r�4�b�Q��Mz
�g�N�\4���p��#pUT����v�(��َ�;%Ñko ��YRk��4�ùI�Q�L�B:��6� %�<�o��C1n�_�>�1�
Fv�zf�isr9�s�N��	t��a�t{�9N2�cV�rxE��pS`������2KDκ�D�.Օ�cE(��[R�4��L�������S���t�o�-o����̄���<	h���$,�%忉@�O/�+L"fZ�P�9�(`����}�6$�z��(��y�����şb|���.�5}!���5L��w�Fi+a��{A�䨚݅G &����ް�kP�Dk��%��#��Q�<�8Ч�i��&�Z&�m:�q�a�U�J㥨��A���q�. l���[wD;�y��F_����������f_�?�/hF?^U�]fz��w�8� ���o~H��]o���ռ���b��]��Ƀ-�u����g�Qv*n[�P

-:Z���r��;�c�~U7��n& ����-rjY�oVC�-M9E�)[
6v�KW
�f��ꓛ��i>t��ߣ洪p��T�7Y��:'��x��`��<^%�y�)-����C�SU48�^
�bB�e��v`6��+��I��7�Kn��K������Y�Dz0�ͬ��ot��IH%U�^�.̕j��m�o8��fA�wi�a�J�ޭ�
;���p�c�Ju�v��	V�k���2f�b����@8yY�Y�j��� ��Z���XË0�|�=&�ZM�h����)�G+��81�,
mU%P-E5c�˸{��Ì��ї��e@~�_L�mc�)A�Y[��h0���L��얫r��|�[F��%ںX��u<}�ʪ�5~D��f�h0�?�dׯ�{[�x����ʵ%��0�zu��a�*�TEل��'��'��.�Q���@6���!OO�鶃�_d��}�k�"v^D�S�tVo�3pG�U�b��!3����C��'�{�7��n��ܔ.^���w�<��L��r!�W�eo��,�}�m��[�̋5�>hڼ+���b�}]�'�K^|����9�*]��8������ә��gW�y�惋e\yӍ���lo���u��3�ke��K-�9D��N������!v���_ϣ��8?gz�Z�ݡ��.�=�c��T-�dJ�s�ZCw�����ZO��q�IY҂���O
KҀle��b�%�Y�p��^�\��
LUWܷ5L��<�(�7�k�g|#����,�F
;g���m�}]�o�Z��ۦ�g���rò�d�t�f�YDH�֙����{��Oȱ��P�&z�r�<�KxW�Ș�SE,� ����0�飦i�!�𱱪yyN�0����f{�ї�M������nS6d�R�Ԃ&Z����Ag�Wk��}�%�U�C}̙�}2�]�L�c
u�p�9��s�����
h�k�Ll����n��e���!��,z���|W����t@6� Nõ���d��0�2.��%�ÑB,R��.�^������?�o}>T{^�'����I��=�m�1`�o�dP��A��*�3"�� �JZ�[�sл�E�'�����K?�i	h�j{'��<��9�!��A���l�P������.Ow������!�Ӆ���|$���QR�	O�aSy=�#���H�
��f}��������JTL
��ʟl����V�(�F��齜!"Й�o��×�P��|DO���:\֪q�E�����0l�r���E$�$�O��ã�����|���Bly��}�Q�=R͕왳b��O���e�*ϟ�=���.ۍF���b�QrO���C6X������Z�KR����K�Q�
�*��F
>�6�o�<��3uKz�_"�j|ݜ�0>Qa,N�ڔ1	°#�d��#�
t6��bts��N�����ͪ�@#qM�"?��8I-�}�x���/ݦv�ʁ�=�f�<�!㈰/�>i�V���cX�UW���M��Fș�eG]Mt�B1\��^p��\�%!NvI��􋙽��k���S����\�p��+�*����b�rt4�˨�L�*V���C����]ɸ�Ck�~��-�e�w�V�+‰TN����j�&-��WKT�è�\�lI��yo�,���$%k`����Ho�����p�-KP�zݰ�a��G�hi�F�|Iⱏ��ž��D!��E��"���,~�i�ʏ	ڧ
E�+���CB��;fG
������9�!�#3l �a���`Ѓ��5�R���b&D��0 ZҔ��� ���* �!���>
8�lP���&+i���[��zGd�΃1+�VP�,er`�f�R�de6ho9~�nz��P*�bt%a:O�›#.�E����?��%)�a	������V�¶�@��|w��	��]q!qB��]B�p��Ł��R#dwu�hRo8*p��,l��y�1�)Z����]�f[.�SuaH?��juM8�U챴$a#؄���m��a��òE�`�H�G��,o�,�g�	2�8|KCX*��&�4[���G���N��B�4d�s�R^�
Ⅸ�
\.�HԔ�\v�:�gCt�7��`"��\,b���1��/u�Y���,�3�U�Z���#����R�^���)�	O;�
�����G|��V���g8�x�����%�Ya$����bQ0r���i��ש�;P���U{�W6�.�8e��+	�݇��䞧obTZ
���p����^Y0
���>/��w�Pk`O`%dZo�U�8-R�<��o��Xɶ�d8�q`
�F��=��ū��)P@c�N��)U�q��-T���o~���Ŭ@��5O�쪒3�`�����۾}��zLj)��?4�2P����F�6��Î(Ԃ�p�.탎�Fj7c%�[`�6���s�f��.��^��o�,�i�
��!-���0�©�Or�Sr�4I�<�<[�Ü���L�Х�L��U�뢔_�Z?�z��tL�f��+���c���7���v��;�'�韎��G6�?	�l�!U�A"�Wz��?�9;wKr㄰�Y�@d�]c����I�SY�!rB}�m�^a�PsZ�!`oL��3A=�[�٩Ze��K�bJ�̉s�?\���Ї�_5f��%�-zC�N��D���P�;��7�H�
U9��+.�?�"�#��qv�A�R<��skiR��DG��HM���B���l�hF����.���7�K�\�گ�s�Vs�UuA�k7㌖���S�/��'j%�O٦��]�m��wƛ���8(�,]��f�Uj<�c�U&0E8fK��<f
N/�H``��5�����?3~�߰��YX���%����D�>,b�	�ɝL���ӄ�&u�@T���@��	6Y�$�;L-}z��g"�ʩQQ�t+�[�I�
J�@_���Ŗ���@=txx��,1:�oR܁a�N��y7<���轻�>h��>h���*P
j�qC"t'm&pm�.cA�q�O��d�Le4X���
;c�A��d�Z6,k����}⤄�)����P��+8I�+�؆���w�����^�+D���
k�9��9`������g(��sR>u{��e_
�>�QܧyK2�t�꯴�I�=ڒ7.�j�r�UW쟜|�)ђ�>�"����X6�G�dz8qR�<���h\�����Q�Bj�{ia�_�$ªq��]��a�Ye�r�����y�mQS���g��|4z��,��
p�d7?^R�ݖ�.џ|�4��n�_�pEĥ�2qy,� 1����/6-e%��_���H] KV>�&<�J��&��h�>y8���j�"D�Z��b2�_��jr����.A�eb��i� �@PO����+
��'��cԜ�GJm�󁲥S�*���i�1e��
Tukq���M���&���%s��U�1KJ(��ӎl5��L}Y?��ì$�$�1��̩�v2�H��*IT�%��(�z�h^�9�����3���GFf;�r�-�`��m�z�I�Z��d�즈f�,�[�b
��_�h�|r����+�4��͠��S�hR�g�
�󿼌ٛ?���
�9��\F �wd<�
s�'���լ��m�YR� ,β�SPʝ{m��q��&���T�,�S��SW�,�o
�v�)�D�0��"�t��L
�@	���r9����
�K�ն���_�!�OևMLƩ��3��/y&�� /0o
���Lt���C��y"�XX�ʭ�I���1��\=���@����'bE�U� ʯ������� ���$ӵ�l]6����	D�+o��tҫ�Z
e}�Nx��7�;�T�*%{�z�y-^�[6�g��aw�F�O�?�
�X����x�/[=ڱ@S �_�|�
��pP�l;�S�d�V�|��rh��lѨ/ޖ�;�ż�	Ħ�˗&�FPM��.���$��a�պ��a�ۘ����0�$4Q9��Wa&J2&���u��J Oe��s(�!!=�����c��dx��KE�侞&a�0�uwU�T$�2�� ��#:&�Y�'٪-j$d���B�I��q�;��=�7��
mw��An��Y܂u��j'���1Q]0AjbOB�����R�B{F�A�'��DT��s�!�J�½V�;*�"�����*"!�=OthG!�!�)#�6����S��}Q�����ҕ����wc�.��
�[��[��A5��!��I@���7�^]4*�!x�Hlm�4�x�#k��}$
ţ�m���YB�T ̀H<��=��9̝��9S�~M�
Ioh�U��}N�|�����br����������E��F�`�&C]2P$�r�<��Z��6PF�p��7�JE���W*���j��a%�K��M���un��w�g�,q�
ʰ2J��K	Y�~>��†b��?t�D:���	�ЗrU�Y�b��`l�Oz�*0#0F	���)�W��*���H�}NX�	�%�Ğt���%�[�};��y,W]����iJ�(��<��HdIo�����d�F����R'�3Z��+PV>KL��ҁZI���%�*q�s�`�`:1���=�c�����{PGq�¨��O��=4��U�	��������?�qK6
�fHPY3���Q�X����
��%�O����"��p��o!=��=F]�ؠ ����+.��Vٺd�S�)([��ĥ�	�̙��@A�L	*E��+��\H���k��9����+�#�ߍ�Kp.�>�b��`�����p����ق%��爗Uq�.�8X���Tm%֤/��b.��1�ӗ_�������9��G���c����L	�+{��[���x<b�x�	1'|ᯛ�֔
a8�̫Ӡ��5u�Zۆ@U-���m�m���2�
�`j)<���sӟ?�􈃺_]p���)9����}��`����� ��"eu�R�;ٰ��n����|:@�*Y�3FK����-�t
�
�"������W���������ݎյ.�=�R#~��yZ{iU*��'d܈E/)�(����
=�md7J�k��-뭸����uU:%>�)�[΍���c���k�g^2&��X��c	=e��l���+9>M=�m���$w��j�%0 ��Ypv���7� ��J�<me�ok������IZ(�ű"��6b�q]"�1>oKX3U�����bawc+��/!#�_�	G�W�Wc3L2�wn���bI�Qmw=®�{��ǰx���0���\��:���-��by�1�j�ܘ)���H�\
4�=�B�4P.�|��י}1��F�f0����c
�z����YS�WM�d�SDI���)钨Y*A\D�����sAK���؅��y�Ĥ_p7C؋w�3�T湼0S{!�L	g��0�
��ǣN�X%���s���#٨jw��l���'`Z����-�>���jTf���M�}6�>�$��r�!4|�T��G��+��r8*;M2��=�ix��+v��!�Q~0ժ��D��O[��Ԓ����ٚ��a�}2�._{�7B����z7Ig$�4
u�H^s�)��.N�Ύ^�>;M,��ۿ&�qcI��)�$V{��jpH�4L�o!v�Ȏ�b�#@�s�o���ԑ�Y��񝞕�7
�?;!��\�}CN
*�M��"�7l�ؾGTz���x�cm���+�&��lM��s�#M�_�)�]��sH��CX���Ǖ UO�ئ-�ǧ���L�G�Q���3��T�a�ߤ��1�8K�<�$ ���2e����5�JW��-�JR��'�x�t�:�|r�N�<�F��R�|=�K�����GZ:���ːp�jr��jwdOe��G��t�<?<�r���gg�O�㣃���gO����#�����
��j�Ph]��\�U�H��\V�K�p�����)]iz�-�Z�H[{��ܡ��
wk�L9��°Ӏ�'7�{��?�J'�����|��Ǯ�>&����f8�*4dD�
��],�>an#��\��*�/
3��v�p5щ	u��cd/׸��O��S�����������7:m#zY�S�� v�[���� ������ky�ho~J@+�kH��ju��c~2�Ÿ<V�V<��E߱��隸h��4At�#��N!p	�a�{���W����>��H>��0Ԫ�*~p��
!�8�t�����`J�njr���]F�i�D���E �{
JAhݺ��R�h�����(�$ZG�AJ�1�)q���Ci��U��$�>*�x��ԃ���ICK[����Iz8�c�B�c��n>�E�L$6S�0��6�`��1�:<vʶ�e��b�
r�ثXI�����z�S�捣t���Έ��H�v��9f�խ����_
�W��m
�O�?�����?IH��q�$�r�i��	�B��NMk�w�$�BIZ��Ц#|r}�l5�}��P���j"���v3$�(5���D)��H�htIҾS��o}*#�ַዻF���/�gO�g�3f����p������As��Ÿ5��|3��)�$xp/I]3
V�ړ���
Q��!_F�V����lH�������R�
S4��S₲�W�2��zS(z���fv���r��jb�w�@��n~xmuM�}H.I��EA���V%!>��L*^f墾���*,i����f�kO�`�h�������H�{�aq�v�(k�rA�57��r�ؼz#�.2�@(��
&[�gkE>���H/��w�����'QzV�J[ �����AK���[�QO��ӜU��ĕ�cF��O��ޯ�4�."�֏@vh�������ڔ��O:�oǯf�Z
�z�ʙq��5HC��\9{��/k@�)�Is�ױ�6�H8\�Lސ� J�7�>�3MEm�1��B�]���xY$����e�ȣbC�=��C^����y1Q���B$–^7M�6��xT�zzQ��%��n�H?���
�d�>	™W�֥[�s�YW�c��L��;|l5=�˘I/�x ��n�	ģß�V���g^��b����8����}�D���W�`�&�����<��k��q����%
�<� )�C���pEj1�%�2Yl����ڟ:P�[�U�v�"��R��c��7m��kEh��0^
��3g1<}�nN�"C�᛻���L9_&�	K�((��Ym(����Xn~\m�.��
Q�����������U�]+�'��B��H�$�|
�Ks��:�G�#�Q��:��2?+����a(e�*

�r��#���Ku3�3�y�L��B�m�o���s�����<��#wnAq�ѵ�=��gxH	�Yhm�QF�oE�
��9w�E�}�9&�OV��ܖ(>�7R�EH�X���	*
�r4�ʾ� ��m�d�n��,��5Ea�$	Q��L�����d�)�a�4��1I�`e�"&�̎�U�=����	jL<�fA�z��K���%
k����5��=:����%��
k�i�0�������j�%H��`��m(�b���3��b����h�R����*g<�1K�s�@͋?}����uP^�lf�W'�3�?3�5-dWn�{�6�z#"��	;��??9	S#��ڸ�G��rU��8"�ʺ�{i��v�y�M�h���Z�&<�e�a�TS)I��|�=�gd����D���>r��EQ�ݢ��0ц=�>C��j�rm*yGP�ɛ'��2�r��E_q�g~E��.����տs�1�4�Z��A��k�b�^���=H�w�5����)B�rȎ�Oz����[���5���:���DW�
��Ƽ��*l���)�=������	�Q-	�T�s)]]�ڴAd�Mp��G��-��O��%a=o�>�pe@�<��ӶQu�!���^@eI�����	QwV�B��n�Z[��\X�Kfo�{�r{Eg�r�ZcŲȵ���|��Hݭ��*�����1L�}k>��v�r��LH �5
��&-~Pms-��Z��2�,R�R7?���|Y��.�s�%�9�e�ܣ����	Y���ǯ5r��rW������cy�07"�@��|=S}�`$c[��o�ս�
�o�	s�	(��!��k��#6���vT���NJ����Q����
�B��5~�Xx���i,��'�ӎ*T	���]���]]�PŽ�|Y�޴���!��t-�"���=}��0��	$�'Z�kz�V��.�y����ǹ�W���˹�����$����M:� F��sX�tۻ��02=�8M�6�*�׳�5#���,�S�cc!V�̓ϭd�|�.9�a��X�N��H��<�?��o<�D�w�4�{s1SX��rUt�4L�T�GW�}*H���=M<e)s�R6nu��w]��O�Nʴ�t����7"������=%Ƴ��}x��!�����1؅P������./۷UjZœ.���dŸ��d������2���b�)cQ��a����Q0��<��h;�hl��=���k���\).k�C���|�IT��*Vk�7#��$�Vb�5���}Y.���${:�C� u7��S��W�M��\<$[�px�Yئy�Lfup6��zxQ'DT��d:Z =�6 �Tz����˲&҆o�%�#����1B]~��9D3�����Y��d�d�
lϟ���A�T�M��NkN������^ⴱI5<M��؝�W��I;��TZ��t/�H��v�k��GA�p_K�j8O`�1e�����$xp���Ov���6ʽ�#�S�.�!j�'5L��a�^Pm��S�N�O�t��L!rS���Sػ�#_6�lj8�a/��4���7�g.X- j�k'W�V���Ҹ�T�U��ꄣ�>����$5^=�4b�2��صuv�z�|.ᗝVkL��#�YYA=���_�P��R쟯�}KN��5]oc��m?���Ք�==����� P_�a^�|�Xr��ϟγ��}�rzD��{��q3�z�+���G[Ү��+���5,?�4)����g�{�wnWܗ}�x}�c6m��O�zd�7�.�}s�Y��6�RJ�M02��k�C����9�`�-�<��V�7�Fa��YZ4٬y&�6ۋ�P�����{{�xێ�}[,�C��z��~M�I}���tK�q���b�L|��)�'c#�C}@	[�!2�W#s/�C)Բޒs'EY��׈�z��C|I�9~N_���_ڑ��<�=���-�rV�9j��O��M&��ȗw��9�AD��n���sV7g�*):J�l�e�]�ļj���A�(	���`0e�vC�P���;��gW�$��\�	��bQ/n�
�/���/�]j���������ʞJ���I�E JC�\��çN��m�L���
qԎrf>؎�5Sg�����~/���A$��i䴌x_���Q�G����@r��Bg)=��Ѩ��-�(X��yw�������Qj➕(�(��$<ISG�WcgA�(᭚�=v�sh�E����lɴ]���?�!ckL.�C;�,DQCN�sK�-�[�Fo&VǛp��M@e�@!�+F��N£6�Q�:c��UΕ`׎ut�.��_���R	7\N&�vN	T�TI�c}L��֡Q�ژ��FA0*��'�Sg�e�n7���Hn��bTcXu��A�$m��������*V�R�D�7�h���b�s*P�pB��?\F�.{D�!G�#���4E��5(;D�~m�F�4�l5*8b�\���O�,ɢ����D��,��웪油R�$_��$\���e	[��a� B.[�ᅞ��i���x�[`*����~��-U8�<��s��F=���1	9#2����@���YÛ�$����;l|�`�o N׫�񤐹P�x�����q��Y32aHo����qz��D�E��1*�ڝp�SQi*�
I�:O�۠mZ�3�#�ϼ�?��*�Խ�]��r��%���޿�q�_h"���{t1<)����( !����#
)Z�f��0�l��;��6�vR���sC츄P]�S.��.ttZ��TO���wK��(:����ּ�F���<�X�֪�R{
i��n̉�0RG��_~�ə81��A�M<�^������0xæ��~�T�M1�QP�v\\G�aݵpՈ�z�v��JO�_AHK��b
ȗ��| �c6V�}�s��5�r&�a�C�T�գ?���+Kz��??J����Va�)U���^#y�l�2j?����TO��W����
�յf�)]5c?�ҦǴ4��b�/�E�Mu\������\�D��wi�u�R��;Q�Oe"OȠ��B(���>�$b���4;�^Bp�k��Q
NΓr7]�~�6��g/�j
�b�9`��sO�,�8F��FZ�"f��}�?�Q�p	�T�9r]v7ߣ����z�Ay�ҥ�G�!��%�NT���Š�g�H�l��:%0I�1)[� Z
�S.���8)�Xt"̫+Ny����<���|���ZWj���a�6�����^�_A�RF���7]h�#�
��euSH?9kc�#)W�����>��S_����	v`�R#BZ(�N�I"E�z�"�;桴���@��^��<;=�yp��H'�k�»�$�w��^��g�Ԯҍ��w���B9�	&�ަ���EPA����A�B"�bU-���j���|�cW����*�[L�
�J��b����]�����ދ-k���̊;��*b�3WT��u2�9E_�eE�\����s:(�)�W�4�z#5�+q8�	�7��*Vud���_�Ayɛ����!�@gK!�M�0��'�H^No��|�{�+?��=*�I�0�"�/<�x��Ҷ�('&���Oe�."�KZ�UH��]Y�����-�s�'�����Q_R=�&v�P�;eDp0�\f*ٮ��X�b`1��i����1�=w�U�e��~m�N�W�+�]�O��0��ߡ�4�n�M
�^f:$�cҺԐ�ۥu�d����n\��J}�r�K�LB-�
W��{��c�/�4FUɼ�'% &]��g9,��%���;��2L�f5�>ч�"�!^`�p"8w��#��5Ư��4A�������/5U*ir�K�ر�_`E4��Opt�>��jã������yLaK�
�d��n�,ԭ�ѥ�H�@q4b�K�dS�)r�����HYW��2�h����T7?V�c��ZJh�ԭ0��m�|1��ev��Њ�1�bu%��Ӂ%��s)IF�,1��n�No��I�o۰���$��VLj�j"�O��+��LRл���Q�m2��i�=]Efѐj�ߞ3��`2Nގ���(�.�/Q��JI���Ҿ`�EIA)
Z�	�R�I�|�a^�ü�\��0M�����ʩ9Պw<�329+WBcҠ�S����:�/��i�>}�?yq|vtztv�lOp�_�)����Ӈ�#�Z����m�^��O�C�#L�����p.mbH���r7�r�����+��r��)�G̏�N�V���Cw{���6nY�Wݤ,����}hP-e��D-
U��`ȳ;�O�M�ހ:�6	�U3�4����vDXA�E�*�s���馀�S\b�t�Ɔ�o}��Y~��|?q�b��ѳ�|���"aL7S2G�g&'��zqK�66�go��Ī[M2.†����ɫڪg��؟�0�gZ��ynа71�J8�7�46)�˵^7̝�h�bT����ٱ�&�\/�������ƣޣX�s>��*Vm�o�y6*9!$�����";��M��W��f'�AE���)G�HC?	eXi���3��T����a������W�棌� �븠�i�����p�ѽ&>i�#��H��*��邨���őh��$�[^
��6!ɷ��(��b)܉2H�Ф�ԑ��=BL�l��r�,�A�m!�{yb�J�Y(��� ]-E|ε ���s�
)2T��X�Dy����J�
mZ��7?�S�Px?u-��eXK՚��"6�S0�Iݤ�GP�t}�-��A�
h��h!xu��W3�4Ɛ^��2�mHxs\�R7߭+B1��
KPJݚ�a�S��	����1@G�]3~R�Bq��E�C�SJ٣��Il�<�Ԗ�-k��0�q��U��
%>�'�� �}Q_Y�b|۔�D!����
B�a�9c�<?�px����s]h���\ ��7[�Qt��_�|�1�ӝ�,�2�{C��� jP�U߇�3�Ai%�K���)[#��ܶv�}X9�
�$K�j�&��w�dT�bR\�&��}�)i�A�M���s��"7�9�p�9�Z�I�M�ug�B����Ф����%!�D�g�ez�/�|>|���e�;�YE]�rmw�:E�ʍc-�p��W]'�*@ZH׮o~�+��8 �|�>���B�U&���f�J&�:�S�&�MPf	52�)�L���;d1O�F!�^�{�Ӳr��}��t�-dm�8�v��|ݦ�bѦu��'�4z�|L*��)�� r��M9T�Q��54'}�F��4h�r����7;�B�e뷋obPXͯ���넸_ޠ�����=��p�xx-�5�(M⦓·�7=E��)T�v1Eoz�a?�Bd��{v.<MJ���v9Lc�Ńf'b��<\RN����$�(A�	̹O�S��A�Z��9��v��7*��)��\{��\t����!�i]��Nމ+)��1�9�n@�T��Jݡ��et'��b��x�sCd�I����e۔�IZ��U�UR%˰"��	�0zIW<;;N0ݭr�E0%9�����׈���#*Gr[�0�\?��xJ�H/=�K�	�qj؈a+���	��	�z3�W�ݤ��?��+�a�%Z(�j�|��Q�9�h[�fL�h�����s}	�4��z���E�	^ۇ��V?�{�]#�(��rJ��[iH�B?��Mkv#bA�����c�������g��ٲ�a
�T�wYh��A�_����:�{��6)�@��.�LZ������o�i��|��4�>Q4gh�x�7���
77?�ڦNN�14HG�����*o~Z��fE��D���e��p;k�<s�C���������M�k�7��p%��gŲ�:���)�����HH�qT�s!��>�Lf�J�S,����vU
�����s^yl�m����t��'����7�6�oN�Ȟ���I���}+�4Kb7�ܦga��<��Z��d�fq�.�1�󪊄�v��߫/X�t���Qtu�@����l��`��p��%7?"��a�q��������z
(��q.�P^K�"�K�j�u�k�:W���z
[���v�{u�A��<��P|�٪�1x$c�z�Z�=��\`h��0XW�.��ޏ{� B�pD�*��3h��K�B��)���@��dQ�i%��몃Ox�Ȓ�K��>D��l��w_Pn�Q�uIu㞘�$�gy�RH�����f.��G}L���Ք`uКV���mc�/]m��Xr7��=-
��p�=�*Ħk3DaRZ���Ҡ;�NZ���~��J�;����dg�0?8��7�����@����G�����ło��h{�l�S.�q���z���i�,#х^�r�N����+\P����I�E�x��]��}�y�kY�a���#e.P��Z�q��1���$p�@y��-~ɑo+�g��V5�QSW*�g7�IȢ�8�G��@��>�]�߿�O���7�����-	'�$Azz,N��I���R�\�w�핞#-�#��	�ʀ�.��C��y�[�M���H��S��@9|�G`6��>�Z�sZ�m�����w��̈́�bx&Rtщ��S��>�.W�a睆��6��KS�w�G�K���-Oi<B�e��O�$���Lj)�&��j�[s�SC�bI�9+�A/�Q5�a�Xx��Mx�X�����^��B;��xw��,�Z��{�m]�J!BZ��J���~f}���~X�v4�,JMԾ��A�l�����n[5��Q�4��_wS֗=�� 3���Fxf�j?�eJ˦�����/<�[�v@�<��i��a���H6�~����~+c�3�p�N�M%;�+��h�xN1SlT�$�y�=/�犣��Z��}9��),���bR���C(?��ZSJ���X@�e�e����W�V�D�wιIy��?Z�XE��[�sC3�6���ӃW'Ҥ���'UK���o�rB�.&�W�񍘥��×��g�<:��5Pſ��	��RN���8j#h�5~��8�:T�� ����u��2���D5�#y$�<f�yg���R��G_h����|�q�֪�Zd�@���B5�����]$<�uU%���l��k��mS����vL*ui�՘�η�D���p��d�*a��L��#�!�-ۗ03:����K�nɡ�~��NtR��A�y�x�Z�'��B����]`��q�X��1;`[,�54�?�_:Gw!�E���.!_�bxw��[�?�*�#d��М��'�H͸5D�0m�n`��fnG��Z�e����ÀY�$�.�r��җ΀�$<��~�_6
��r��Gb��0�<���4D�=�uevk�$�)U�P7�0��ƴ�&�͋4�Y���*N��jp̑9��+&{H���

uc$n
�
�d<�K��YCC�e�7�>a�;L�Z��A�:����o������.�0�
Cdx�Y”ڛ
�3�^��w܇�@�@��_��F���
�+ܔ+��3�^d�j9�����_��AP`�3���{��:������u�Z�7�ƺisZ��]�.옹�j��a�V���Q�~乡�wG�{�Ơ{�+yo�:S(�z�P",�l��״�.��z)�`'l�r�!����ה�X��`����V(�!bVF�N�my=6Z�C��:�!�'!5�y�
0�L��-�{�+���'��t�rMX��X��7�^��"9g2�I.�=,��%0FW�����ǁ/�M��>�c��[��h"'�-��k/A�Yreއٹ�m���@F�i�Z��t�=���g��q�/��}V��5зT�(������w���K+%�^MW�F�J�`^��,�������Mo4ai�S��(?�A��zS��0�����ۥQj`�sR��G]]��tsd�ˎ�t�?��r�{�\9��Dі4戯�Rqc��yg��CN
?՚�T�S) �p1��kL�8%;�]���\J�x��\��l	�Hi��4_��;�,���4���	�!�&��t�m��Sg6$�hh�"�#=j��d�@ܓ�^��%s�ۚY�\u�`��Ǵ�>;��,o3WT#c��_��ȵ��R�}����l~�z]�ѵ��N�4K��)g�<{�٬����{�n^��Cf����<����ޗ�}rN�N����N
T}_
3b�YA�!C���$[Wߖu�����p&+�I+�`�D(�=J��`�&A�{�BD6�mf�|�
Eꊱ6�*��H1������i�92���/BK�U�T^����\�C������#��í�ͤ���H@�H$G�|����ʫAvn��PK`�oRO>{QQ�6���litespeed-cache-es_ES.poUT��O`ux����PK`�oR�t�������litespeed-cache-es_ES.moUT��O`ux����PK��r# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in French (France)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-05-16 14:21:52+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: fr\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: src/lang.cls.php:127
msgid "Localization Files"
msgstr "Fichiers de localisation"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Purgé !"

#: tpl/cdn/settings.tpl.php:48
msgid "Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s."
msgstr "Définissez ce réglage %1$s si vous utilisez un réseau de diffusion de contenu (CDN). Remarque : QUIC.cloud CDN et Cloudflare n’utilisent pas le mappage CDN. Si vous utilisez uniquement QUIC.cloud ou Cloudflare, laissez ce réglage %2$s."

#: tpl/page_optm/settings_localization.tpl.php:123
msgid "Non-`.js` file extensions will be ignored."
msgstr "Les extensions de fichiers autres que « .js » seront ignorées."

#: tpl/page_optm/settings_localization.tpl.php:116
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Les ressources des domaines énumérés ici seront copiées et remplacées par des URL locales."

#: tpl/page_optm/entry.tpl.php:45
msgid "To clear the outdated CSS/JS optimization data, please go to %s menu."
msgstr "Pour effacer les données d’optimisation CSS/JS périmées, veuillez vous rendre dans le menu %s."

#: tpl/page_optm/entry.tpl.php:43
msgid "You are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not."
msgstr "Vous avez maintenant %s enregistrements dans le tableau d’optimisation CSS/JS. Vous devez vérifier si vous avez un problème de chaîne aléatoire ou non."

#: tpl/toolbox/beta_test.tpl.php:33
msgid "Use latest GitHub Master commit"
msgstr "Utiliser le dernier commit GitHub maître"

#: tpl/toolbox/beta_test.tpl.php:31
msgid "Use latest GitHub Dev commit"
msgstr "Utiliser le dernier commit GitHub de développement"

#: src/crawler-map.cls.php:319
msgid "No valid sitemap parsed for crawler."
msgstr "Aucun plan de site valide n’a été analysé par le robot explorateur."

#: src/lang.cls.php:106
msgid "CSS Combine External and Inline"
msgstr "Combiner les CSS externes et en ligne"

#: tpl/page_optm/settings_css.tpl.php:55
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Inclure les CSS externes et les CSS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par CSS Combine."

#: tpl/page_optm/settings_css.tpl.php:28
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiser les fichiers CSS et le code CSS en ligne."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:93
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La liste prédéfinie sera également combinée avec les réglages ci-dessus."

#: tpl/page_optm/settings_css.tpl.php:69
msgid "This will drop the unused CSS on each page."
msgstr "Cela supprimera les feuilles de style en cascade (CSS) non utilisées sur chaque page."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localisation"

#: tpl/page_optm/entry.tpl.php:8
msgid "Optimization"
msgstr "Optimisation"

#: tpl/page_optm/settings_js.tpl.php:48
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Inclure les JS externes et les JS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par JS Combine."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combiner tous les fichiers JS locaux en un seul fichier."

#: tpl/page_optm/settings_tuning.tpl.php:86
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Les fichiers JS listés ou le code JS en ligne ne seront pas différés."

#: tpl/general/settings.tpl.php:95
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Demande envoyée. Veuillez patienter, puis actualisez la page pour voir la notification d’approbation."

#: src/data.upgrade.func.php:43
msgid "Click here to settings"
msgstr "Cliquez ici pour les réglages"

#: src/data.upgrade.func.php:42
msgid "JS Defer"
msgstr "Différer le JS"

#: src/data.upgrade.func.php:42
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "Mise à niveau réussie de LiteSpeed Cache. Note : en raison de modifications dans cette version, les réglages %1$s et %2$s ont été désactivés. Veuillez les réactiver manuellement, puis vérifier que la mise en page de votre site est correcte et que vous n’avez aucune erreur JS."

#: src/lang.cls.php:113
msgid "JS Combine External and Inline"
msgstr "Combiner les JS externes et en ligne"

#: src/admin-display.cls.php:446
msgid "Dismiss"
msgstr "Ignorer"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "Le dernier fichier de données est"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La liste sera fusionnée avec les nonces prédéfinis dans votre fichier de données local."

#: tpl/page_optm/settings_css.tpl.php:41
msgid "Combine CSS files and inline CSS code."
msgstr "Combinez les fichiers CSS et le code CSS en ligne."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minifier les fichiers JS et les codes JS en ligne."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Les fichiers JS listés ou le code JS en ligne ne seront pas minifiés/combinés."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Les fichiers CSS listés ou le code CSS en ligne ne seront pas minifiés/combinés."

#: src/css.cls.php:552 src/placeholder.cls.php:542
msgid "Queue cleared successfully."
msgstr "File d’attente bien vidée."

#: src/admin-display.cls.php:903
msgid "This setting is overwritten by the Network setting"
msgstr "Ce réglage est surchargé par le réglage du réseau"

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr "LQIP exclut"

#: tpl/page_optm/settings_media_exc.tpl.php:121
msgid "These images will not generate LQIP."
msgstr "Ces images ne génèrent pas de LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Confirmez-vous vouloir réinitialiser tous les réglages aux valeurs par défaut ?"

#: tpl/page_optm/settings_html.tpl.php:143
msgid "This option will remove all %s tags from HTML."
msgstr "Cette option retirera toutes les balises %s du HTML."

#: tpl/general/settings.tpl.php:117
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Confirmez-vous vouloir vider tous les nœuds du cloud ?"

#: src/lang.cls.php:138
msgid "Remove Noscript Tag"
msgstr "Retirer les balises Noscript"

#: src/error.cls.php:80
msgid "The site is not registered on QUIC.cloud."
msgstr "Le site n’est pas enregistré sur QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Cliquez ici pour modifier."

#: src/error.cls.php:48 src/cloud.cls.php:655
msgid "Click here to set."
msgstr "Cliquez ici pour paramétrer."

#: src/cloud.cls.php:654
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site non reconnu. La clé de domaine a été automatiquement supprimée. Veuillez en demander une nouvelle."

#: src/purge.cls.php:280
msgid "Notified LiteSpeed Web Server to purge localized resource entries."
msgstr "Notifié LiteSpeed Web Server pour purger les entrées de ressources localisées."

#: src/lang.cls.php:126
msgid "Localize Resources"
msgstr "Localiser les ressources"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Paramétrage des en-têtes personnalisés"

#: tpl/toolbox/purge.tpl.php:82
msgid "This will delete all localized resources"
msgstr "Cela supprimera toutes les ressources localisées"

#: src/gui.cls.php:518 src/gui.cls.php:669 tpl/toolbox/purge.tpl.php:81
msgid "Localized Resources"
msgstr "Ressources localisées"

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Les commentaires sont pris en charge. Commencez une ligne avec un %s pour la transformer en ligne de commentaire."

#: tpl/page_optm/settings_localization.tpl.php:117
msgid "HTTPS sources only."
msgstr "Sources HTTPS uniquement."

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localiser les ressources externes."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Réglages de localisation"

#: tpl/page_optm/settings_css.tpl.php:115
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Indiquez au sélecteur CSS que son style doit toujours être contenu dans l’UCSS."

#: tpl/page_optm/settings_css.tpl.php:82
msgid "Generate unique CSS in the background via a cron-based queue."
msgstr "Générer un CSS unique en arrière-plan via une file d’attente basée sur le cron."

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Utilisez le service en ligne QUIC.cloud pour générer des CSS uniques."

#: src/lang.cls.php:109
msgid "UCSS Whitelist Selector"
msgstr "Sélecteur de liste d’autorisation d’UCSS"

#: src/lang.cls.php:108
msgid "Generate UCSS in Background"
msgstr "Générer l’UCSS en arrière-plan"

#: src/lang.cls.php:107
msgid "Generate UCSS"
msgstr "Générer l’UCSS"

#: tpl/toolbox/purge.tpl.php:109
msgid "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"
msgstr "Purger les entrées de cache créées par cette extension à l’exception des caches CSS et LQIP critiques"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Press the %s button to use the most recent GitHub commit."
msgstr "Appuyez sur le bouton %s pour utiliser le commit GitHub le plus récent."

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "Rapport LiteSpeed"

#: tpl/img_optm/summary.tpl.php:216
msgid "Image Thumbnail Group Sizes"
msgstr "Dimensions de groupe de la miniature d’image"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorez certaines chaînes de requête lors de la mise en cache. (%s LSWS nécessaire)"

#: tpl/page_optm/settings_js.tpl.php:89
msgid "%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred."
msgstr "%s est recommandé, bien que ce soit pour les scripts qui sont mis en ligne que cela pose le plus de problèmes pour éviter d’être différés."

#: tpl/page_optm/settings_js.tpl.php:88
msgid "Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled."
msgstr "Le chargement du JS en ligne après le chargement complet du DOM peut augmenter la compatibilité JS et réduire les erreurs JS lorsque d’autres fonctionnalités d’optimisation JS sont activées."

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "Pour les URL avec des jokers, il peut y avoir un retard dans le lancement de la purge planifiée."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Par conception, cette option peut servir du contenu périmé. N’activez pas cette option si cela ne vous convient pas."

#: src/lang.cls.php:94
msgid "Serve Stale"
msgstr "Servir le périmé"

#: src/admin-display.cls.php:900
msgid "This setting is overwritten by the primary site setting"
msgstr "Ce réglage est surchargé par le réglage du site principal"

#: src/img-optm.cls.php:901
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Une ou plusieurs images tirées ne correspondent pas à l’image md5 notifiée"

#: src/img-optm.cls.php:884
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Certains fichiers d’image optimisés ont expiré et ont été effacés."

#: src/error.cls.php:60
msgid "You have too many notified images, please pull down notified images first."
msgstr "Vous avez trop d’images notifiées, veuillez d’abord retirer les images notifiées."

#: src/error.cls.php:56
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Vous avez trop de demandes d’images, veuillez réessayer dans quelques minutes."

#: src/img-optm.cls.php:962
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "L’image WebP md5 tirée ne correspond pas à l’image WebP md5 notifiée."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Lire la documentation LiteSpeed"

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "Il y a une file d’attente qui n’est pas encore tirée. Informations sur la file d’attente : %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Délai d’attente du plan du site"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Précisez le délai d’attente lors de l’analyse du plan du site."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Spécifiez combien de temps, en secondes, les fichiers Gravatar sont mis en cache."

#: tpl/page_optm/settings_html.tpl.php:21
msgid "Specify how long, in seconds, CSS/JS files are cached."
msgstr "Spécifiez combien de temps, en secondes, les fichiers CSS/JS sont mis en cache."

#: tpl/general/settings.tpl.php:113
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Une clé de domaine est nécessaire pour les services en ligne QUIC.cloud."

#: src/img-optm.cls.php:495
msgid "Cleared %1$s invalid images."
msgstr "Effacé %1$s images non valides."

#: src/img-optm.cls.php:457
msgid "Bypassed %1$s duplicated images."
msgstr "Contourné %1$s images dupliquées."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Demander la clé du domaine"

#: tpl/general/entry.tpl.php:19
msgid "LiteSpeed Cache General Settings"
msgstr "Réglages généraux de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:100
msgid "This will delete all cached Gravatar files"
msgstr "Cela supprimera tous les fichiers Gravatar mis en cache"

#: tpl/toolbox/edit_htaccess.tpl.php:107
msgid "Save .htaccess"
msgstr "Enregistrer le .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:81
msgid "Specify the backend .htaccess path."
msgstr "Précisez le chemin d'accès de l’interface d’administration au .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:67 tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Leave empty to auto detect"
msgstr "Laisser vide pour la détection automatique"

#: tpl/toolbox/edit_htaccess.tpl.php:66
msgid "Specify the frontend .htaccess path."
msgstr "Précisez le chemin d'accès de l’interfeace publique au .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:54
msgid ".htaccess Path Settings"
msgstr "Réglages du chemin .htaccess"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Empêcher tout journal de débogage des pages listées."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Journaliser uniquement les pages répertoriées."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Précisez la taille maximale du fichier journal."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Pour éviter de remplir le disque, ce réglage doit être désactivé lorsque tout fonctionne."

#: tpl/toolbox/beta_test.tpl.php:46
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Cliquez sur le bouton %s pour stopper le test bêta et revenir à la version actuelle depuis le répertoire des extensions WordPress."

#: tpl/toolbox/beta_test.tpl.php:35 tpl/toolbox/beta_test.tpl.php:46
msgid "Use latest WordPress release version"
msgstr "Utiliser la dernière version de WordPress"

#: tpl/toolbox/beta_test.tpl.php:35
msgid "OR"
msgstr "Ou"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Use latest GitHub commit"
msgstr "Utiliser le dernier commit GitHub"

#: tpl/toolbox/beta_test.tpl.php:26
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utilisez cette section pour permuter les versions d’extension. Pour tester la version bêta d'un commit GitHub, saisissez l’URL du commit dans le champ ci-dessous."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Réinitialiser les réglages"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "Boîte à outils LiteSpeed Cache"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Bêta test"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Vue du journal"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Réglages de débogage"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Activez pour contrôler les battements de cœur dans l'éditeur de l’interface d’administration."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "L’intervalle valide de WordPress est de %s secondes"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Activez pour contrôler les battements de cœur dans l’interface d’administration."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Réglez sur %1$s pour interdire les battements de cœur sur %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "L’intervalle valide de WordPress est de %s secondes."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Précisez l’intervalle de battement de cœur de %s en secondes."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Activez pour contrôler les battements de cœur sur l’interface publique."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Désactivez l’intervalle de battement de cœur de WordPress pour réduire la charge du serveur."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Contrôle des battements de cœur"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "fournir plus d'informations ici pour aider l’équipe LiteSpeed dans le débogage."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Facultatif"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Générer un lien pour l’utilisateur actuel"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Lien de connexion sans mot de passe"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Informations système"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Aller à la liste des extensions"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Installer DoLogin Security"

#: tpl/general/settings.tpl.php:150
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site."
msgstr "l’adresse IP détectée automatiquement peut ne pas être exacte si vous avez un réglage d’adresse IP sortante supplémentaire, ou si vous avez plusieurs adresses IP configurées sur votre serveur. Veuillez vous assurer que cette adresse IP est la bonne pour visiter votre site."

#: tpl/general/settings.tpl.php:148
msgid "Check my public IP from"
msgstr "Vérifier mon IP publique à partir de"

#: tpl/general/settings.tpl.php:148
msgid "Your server IP is"
msgstr "L’adresse IP de votre serveur est"

#: tpl/general/settings.tpl.php:147
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Saisissez l'adresse IP de ce site pour permettre aux services de cloud d'appeler directement l’IP au lieu du nom de domaine. Cela permet d’éviter les surcharges des consultations DNS et CDN."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Précisez le délai d’attente lors de l’exploration de chaque URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Précisez le temps en secondes pour le temps entre chaque intervalle d’exécution."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "Cela permettra le cron du robot explorateur."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Réglages généraux du robot explorateur"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr "Pas sur liste de refus"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr "Retirer de la liste de refus"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr "Vider la liste de refus"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr "Confirmez-vous vouloir supprimer toutes les listes de refus existantes ?"

#: tpl/crawler/map.tpl.php:69 tpl/crawler/blacklist.tpl.php:56
msgid "Blacklisted due to not cacheable"
msgstr "Mis sur liste de refus car impossible à mettre en cache"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr "Ajouter à la liste noire"

#: tpl/crawler/map.tpl.php:45 tpl/crawler/blacklist.tpl.php:33
msgid "Operation"
msgstr "Opération"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Total du plan de site"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Liste du plan du site"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Actualiser la carte du robot explorateur"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Vider la carte du robot explorateur"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Réglages du plan du site"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Réglages de simulation"

#: tpl/crawler/entry.tpl.php:8 tpl/crawler/blacklist.tpl.php:21
msgid "Blacklist"
msgstr "Liste de blocage"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Carte"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Résumé"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Si vous utilisez plusieurs domaines pour un site et que vous avez plusieurs domaines dans le plan du site, veuillez laisser cette option désactivée afin que le robot explorateur sache qu’il doit explorer chaque domaine."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "Le robot explorateur analyse le plan du site et le sauvegarde dans la base de données avant l’exploration. Lors de l’analyse du plan du site, l’abandon du domaine peut permettre d’économiser du stockage en base de données."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Réglages de plan de site du robot explorateur"

#: tpl/crawler/summary.tpl.php:186
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr " Si le cron et une exécution manuelle démarrent tous deux à des moments similaires, le premier qui démarre aura la priorité."

#: tpl/crawler/summary.tpl.php:185
msgid "Crawlers cannot run concurrently."
msgstr "Les robots explorateurs ne peuvent pas s’exécuter simultanément."

#: tpl/crawler/summary.tpl.php:179 tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Cache manquant"

#: tpl/crawler/summary.tpl.php:178 tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Occurrences de cache"

#: tpl/crawler/summary.tpl.php:177
msgid "Waiting to be Crawled"
msgstr "En attente d’exploration"

#: tpl/crawler/summary.tpl.php:159 tpl/crawler/summary.tpl.php:180
#: tpl/crawler/map.tpl.php:70 tpl/crawler/blacklist.tpl.php:57
msgid "Blacklisted"
msgstr "Bloqué"

#: tpl/crawler/summary.tpl.php:158
msgid "Miss"
msgstr "Manquer"

#: tpl/crawler/summary.tpl.php:157
msgid "Hit"
msgstr "Occurrences"

#: tpl/crawler/summary.tpl.php:156
msgid "Waiting"
msgstr "En attente"

#: tpl/crawler/summary.tpl.php:125
msgid "Running"
msgstr "En cours d’exécution"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Utilisez %1$s dans %2$s pour indiquer que ce cookie n’a pas été défini."

#: src/admin-display.cls.php:215
msgid "Add new cookie to simulate"
msgstr "Ajouter un nouveau cookie pour simuler"

#: src/admin-display.cls.php:214
msgid "Remove cookie simulation"
msgstr "Supprimer la simulation de cookie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Réglages de simulation du robot explorateur"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess rule is: %s"
msgstr "La règle htaccess est : %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "D’autres réglages sont disponibles dans le menu %s"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "La durée, en secondes, pendant laquelle les fichiers seront stockés dans le cache du navigateur avant d’expirer."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Utilisateurs d’OpenLiteSpeed, veuillez vérifier ceci"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Réglages du cache navigateur"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Les chemins contenant ces chaînes de caractères seront forcés à être mis en cache public, indépendamment des réglages qui ne peuvent pas être mis en cache."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Si le CDN QUIC.cloud est activé, vous pouvez toujours voir les en-têtes de cache de votre serveur local."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Un second paramètre facultatif peut être utilisé pour spécifier le contrôle du cache. Utilisez un espace pour séparer"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Les nonces ci-dessus seront automatiquement convertis en ESI."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Navigateur"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Objet"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Le port par défaut pour %1$s est %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Réglages du cache objet"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Spécifiez un code d’état HTTP et le nombre de secondes pour mettre cette page en cache, séparés par un espace."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Spécifiez combien de temps, en secondes, la page d’accueil est mise en cache."

#: tpl/cache/settings-ttl.tpl.php:7 tpl/cache/entry.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si activé, une copie périmée de la page en cache sera affichée au visiteur jusqu’à ce qu’une nouvelle copie de cache soit disponible. Réduit la charge du serveur pour les visites suivantes. Si désactivé, la page sera générée dynamiquement pendant que le visiteur attend."

#: tpl/page_optm/settings_css.tpl.php:275
msgid "Swap"
msgstr "Échanger"

#: tpl/page_optm/settings_css.tpl.php:274
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Définissez ceci pour ajouter %1$s à toutes les règles %2$s avant de mettre en cache le CSS pour spécifier comment les polices doivent être affichées lors du téléchargement."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Liste des avatars en attente de mise à jour"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Actualiser le cache  Gravatar par cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Accélère la vitesse en mettant en cache Gravatar (avatars mondialement reconnus)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Stockez Gravatar localement."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Échec de la création de la table Avatar. Veuillez suivre les conseils <a %s>de création de tableau du wiki LiteSpeed</a> pour terminer la configuration."

#: tpl/page_optm/settings_media.tpl.php:137
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "Les requêtes LQIP ne seront pas envoyées pour les images dont la largeur et la hauteur sont inférieures à ces dimensions."

#: tpl/page_optm/settings_media.tpl.php:135
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:120
msgid "Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Un plus grand nombre générera une meilleure qualité de résolution de remplacement, mais donnera lieu à des fichiers plus volumineux qui augmenteront la taille des pages et consommeront plus de points."

#: tpl/page_optm/settings_media.tpl.php:119
msgid "Specify the quality when generating LQIP."
msgstr "Précisez la qualité lors de la génération du LQIP."

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Keep this off to use plain color placeholders."
msgstr "N’utilisez pas cette option pour utiliser des textes indicatifs en couleur."

#: tpl/page_optm/settings_media.tpl.php:104
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Utilisez le service de génération de LQIP (Low Quality Image Placeholder) de QUIC.cloud pour une prévisualisation responsive des images pendant le chargement."

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Specify the responsive placeholder SVG color."
msgstr "Précisez la couleur SVG du texte indicatif responsive."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "Variables %s will be replaced with the configured background color."
msgstr "Les variables %s seront remplacées par la couleur d’arrière-plan configurée."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Les variables %s seront remplacées par les propriétés de l’image correspondante."

#: tpl/page_optm/settings_media.tpl.php:74
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Ce sera converti à la volée en un texte indicatif base64 SVG."

#: tpl/page_optm/settings_media.tpl.php:73
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Spécifiez un SVG à utiliser comme texte indicatif lors de la génération en local."

#: tpl/page_optm/settings_media_exc.tpl.php:107
msgid "Prevent any lazy load of listed pages."
msgstr "Empêcher tout chargement différé des pages listées."

#: tpl/page_optm/settings_media_exc.tpl.php:93
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Les iframes ayant ces noms de classe parent ne seront pas chargées en différé."

#: tpl/page_optm/settings_media_exc.tpl.php:78
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Les iframes contenant ces noms de classe ne seront pas chargées en différé."

#: tpl/page_optm/settings_media_exc.tpl.php:64
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Les images ayant ces noms de classe de parent ne seront pas chargées en différé."

#: tpl/page_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Page Optimization"
msgstr "Optimisation des pages de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Médias exclus"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:14
msgid "CSS Settings"
msgstr "Réglages CSS"

#: tpl/page_optm/settings_css.tpl.php:275
msgid "%s is recommended."
msgstr "%s est recommandé."

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_js.tpl.php:89
msgid "Deferred"
msgstr "Différé"

#: tpl/page_optm/settings_js.tpl.php:86
msgid "After DOM Ready"
msgstr "Prêt après DOM"

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_css.tpl.php:272
msgid "Default"
msgstr "Par défaut"

#: tpl/page_optm/settings_html.tpl.php:66
msgid "This can improve the page loading speed."
msgstr "Cela peut améliorer la vitesse de chargement des pages."

#: tpl/page_optm/settings_html.tpl.php:65
msgid "Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activer largement la pré-recherche DNS pour les URL dans le document, y compris les images, CSS, JavaScript, etc."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "La nouvelle version développeur %s est disponible dès maintenant."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "Nouvelle version développeur disponible !"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Ignorer cette notification"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweeter ceci"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Aperçu du tweet"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Apprendre plus"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "Vous venez de débloquer une promotion de QUIC.cloud !"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "Le réglage de la qualité de compression d’image de WordPress sur 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Réglages d’optimisation des images"

#: tpl/img_optm/summary.tpl.php:367
msgid "Are you sure to destroy all optimized images?"
msgstr "Confirmez-vous vouloir détruire toutes les images optimisées ?"

#: tpl/img_optm/summary.tpl.php:359
msgid "Use Optimized Files"
msgstr "Utiliser les fichiers optimisés"

#: tpl/img_optm/summary.tpl.php:358
msgid "Switch back to using optimized images on your site"
msgstr "Revenir à l’utilisation d’images optimisées sur votre site"

#: tpl/img_optm/summary.tpl.php:355
msgid "Use Original Files"
msgstr "Utiliser les fichiers originaux"

#: tpl/img_optm/summary.tpl.php:354
msgid "Use original images (unoptimized) on your site"
msgstr "Utiliser des images originales (non optimisées) sur votre site"

#: tpl/img_optm/summary.tpl.php:349
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Vous pouvez rapidement passer de l’utilisation de fichiers d’images originaux (versions non optimisées) à celle de fichiers d’images optimisés. Cela affectera toutes les images de votre site web, qu’il s’agisse de la version normale ou de la version webp si disponible."

#: tpl/img_optm/summary.tpl.php:346
msgid "Optimization Tools"
msgstr "Outils d’optimisation"

#: tpl/img_optm/summary.tpl.php:319
msgid "Rescan New Thumbnails"
msgstr "Scanner à nouveau les nouvelles miniatures"

#: tpl/img_optm/summary.tpl.php:311
msgid "Congratulations, all requested!"
msgstr "Félicitations, tous demandées !"

#: tpl/img_optm/summary.tpl.php:284
msgid "Congratulations, all gathered!"
msgstr "Félicitations, tous recueillies !"

#: tpl/img_optm/summary.tpl.php:281
msgid "Images not yet gathered"
msgstr "Images non encore recueillies"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "What is an image group?"
msgstr "Qu’est-ce qu’un groupe d’images ?"

#: tpl/img_optm/summary.tpl.php:227
msgid "Delete all backups of the original images"
msgstr "Supprimer toutes les sauvegardes des images originales"

#: tpl/img_optm/summary.tpl.php:209
msgid "Calculate Backups Disk Space"
msgstr "Calculer l’espace disque de sauvegarde"

#: tpl/img_optm/summary.tpl.php:94
msgid "Optimization Status"
msgstr "État de l’optimisation"

#: tpl/img_optm/summary.tpl.php:78
msgid "Gather Image Data"
msgstr "Recueillir les données des images"

#: tpl/img_optm/summary.tpl.php:66
msgid "Current limit is"
msgstr "La limite actuelle est"

#: tpl/img_optm/summary.tpl.php:65
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "Afin de s’assurer que notre serveur peut communiquer avec le vôtre sans problème et que tout fonctionne bien, pour les quelques premières demandes, le nombre d’images autorisées dans une seule requête est limité."

#: tpl/img_optm/summary.tpl.php:60
msgid "You can request a maximum of %s images at once."
msgstr "Vous pouvez demander un maximum de %s images à la fois."

#: tpl/img_optm/summary.tpl.php:55
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiser les images avec notre serveur QUIC.cloud"

#: tpl/img_optm/summary.tpl.php:51 tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "Le serveur Cloud le plus proche est actuellement %s.&#10; Cliquez pour le détecter à nouveau."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Les révisions plus récentes que ce nombre de jours seront conservées lors du nettoyage des révisions."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Jour(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Précisez le nombre de révisions les plus récentes à conserver lors du nettoyage des révisions."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimisation de la base de données LiteSpeed Cache"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Réglages d’optimisation de la BDD"

#: tpl/db_optm/manage.tpl.php:174
msgid "Option Name"
msgstr "Nom de l’option"

#: tpl/db_optm/manage.tpl.php:159
msgid "Database Summary"
msgstr "Résumé de la base de données"

#: tpl/db_optm/manage.tpl.php:138
msgid "We are good. No table uses MyISAM engine."
msgstr "Nous sommes bons. Aucune table n’utilise le moteur MyISAM."

#: tpl/db_optm/manage.tpl.php:130
msgid "Convert to InnoDB"
msgstr "Convertir en InnoDB"

#: tpl/db_optm/manage.tpl.php:116
msgid "Tool"
msgstr "Outil"

#: tpl/db_optm/manage.tpl.php:115
msgid "Engine"
msgstr "Moteur"

#: tpl/db_optm/manage.tpl.php:114
msgid "Table"
msgstr "Tableau"

#: tpl/db_optm/manage.tpl.php:107
msgid "Database Table Engine Converter"
msgstr "Convertisseur de moteur de table de base de données"

#: tpl/db_optm/manage.tpl.php:57
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Révisions propres plus anciennes que %1$s jour(s), à l’exclusion des %2$s dernières révisions"

#: tpl/dash/dashboard.tpl.php:503
msgid "Manage Crawler"
msgstr "Gérer le robot explorateur"

#: tpl/dash/dashboard.tpl.php:471
msgid "Currently active crawler"
msgstr "Robot explorateur actuellement actif"

#: tpl/dash/dashboard.tpl.php:468
msgid "Crawler(s)"
msgstr "Robot(s) explorateur(s)"

#: tpl/dash/dashboard.tpl.php:464 tpl/crawler/map.tpl.php:44
msgid "Crawler Status"
msgstr "État du robot explorateur"

#: tpl/dash/dashboard.tpl.php:417 tpl/dash/dashboard.tpl.php:448
msgid "Force cron"
msgstr "Forcer le cron"

#: tpl/dash/dashboard.tpl.php:415 tpl/dash/dashboard.tpl.php:446
msgid "Requests in queue"
msgstr "Demandes en file d’attente"

#: tpl/dash/dashboard.tpl.php:410 tpl/dash/dashboard.tpl.php:441
msgid "Time to execute previous request"
msgstr "Délai d’exécution de la demande précédente"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Stats"
msgstr "Statistiques de cache"

#: tpl/dash/dashboard.tpl.php:360
msgid "Private Cache"
msgstr "Cache privé"

#: tpl/dash/dashboard.tpl.php:359
msgid "Public Cache"
msgstr "Cache public"

#: tpl/dash/dashboard.tpl.php:354
msgid "Cache Status"
msgstr "État du cache"

#: tpl/dash/dashboard.tpl.php:325
msgid "Last Pull"
msgstr "Dernier tirage"

#: tpl/dash/dashboard.tpl.php:290
msgid "Images Requested"
msgstr "Images demandées"

#: tpl/dash/dashboard.tpl.php:275
msgid "Image Groups Prepared"
msgstr "Groupes d’images préparés"

#: tpl/dash/dashboard.tpl.php:265 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Résumé d’optimisation des images"

#: tpl/dash/dashboard.tpl.php:213
msgid "Refresh page score"
msgstr "Actualiser le score de la page"

#: tpl/dash/dashboard.tpl.php:202 tpl/img_optm/summary.tpl.php:51
#: tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Confirmez-vous vouloir détecter à nouveau le serveur cloud le plus proche pour ce service ?"

#: tpl/dash/dashboard.tpl.php:202
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "Le serveur Cloud le plus proche est actuellement %s.&#10;Cliquez pour le redétecter."

#: tpl/dash/dashboard.tpl.php:197 tpl/dash/dashboard.tpl.php:257
#: tpl/dash/dashboard.tpl.php:425 tpl/dash/dashboard.tpl.php:456
msgid "Last requested"
msgstr "Dernière demande"

#: tpl/dash/dashboard.tpl.php:156
msgid "Refresh page load time"
msgstr "Actualiser le temps de chargement des pages"

#: tpl/dash/dashboard.tpl.php:144
msgid "Go to QUIC.cloud dashboard"
msgstr "Aller au tableau de bord QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:55 tpl/dash/dashboard.tpl.php:433
msgid "Low Quality Image Placeholder"
msgstr "Texte indicatif d’image de faible qualité"

#: tpl/dash/dashboard.tpl.php:42
msgid "Sync data from Cloud"
msgstr "Synchroniser les données depuis le Cloud"

#: tpl/dash/dashboard.tpl.php:39
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Statistiques sur l’utilisation des services QUIC.cloud"

#: tpl/dash/network_dash.tpl.php:101 tpl/dash/dashboard.tpl.php:133
msgid "Total images optimized in this month"
msgstr "Total des images optimisées ce mois-ci"

#: tpl/dash/network_dash.tpl.php:100 tpl/dash/dashboard.tpl.php:132
msgid "Total Usage"
msgstr "Utilisation totale"

#: tpl/dash/network_dash.tpl.php:93 tpl/dash/dashboard.tpl.php:125
msgid "Pay as You Go Usage Statistics"
msgstr "Statistiques sur l’utilisation du paiement au fur et à mesure"

#: tpl/dash/network_dash.tpl.php:91 tpl/dash/dashboard.tpl.php:123
msgid "This Month Usage"
msgstr "Utilisation de ce mois"

#: tpl/dash/network_dash.tpl.php:90 tpl/dash/dashboard.tpl.php:122
msgid "PAYG Balance"
msgstr "Solde du paiement au fur et à mesure"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Paiement au fur et à mesure"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Usage"
msgstr "Utilisation"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Fast Queue Usage"
msgstr "Utilisation de la file d’attente rapide"

#: tpl/dash/network_dash.tpl.php:29 tpl/dash/dashboard.tpl.php:54
msgid "CDN Bandwidth"
msgstr "Bande passante de CDN"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Statistiques d’utilisation"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "Tableau de bord LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Tableau de bord du réseau"

#: tpl/general/settings.tpl.php:129
msgid "No cloud services currently in use"
msgstr "Aucun service cloud n’est actuellement utilisé"

#: tpl/general/settings.tpl.php:117
msgid "Click to clear all nodes for further redetection."
msgstr "Cliquez pour effacer tous les nœuds pour une nouvelle détection."

#: tpl/general/settings.tpl.php:116
msgid "Current Cloud Nodes in Service"
msgstr "Nœuds cloud actuels en service"

#: tpl/general/settings.tpl.php:108
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Avantages de lier vers un compte QUIC.cloud"

#: tpl/general/settings.tpl.php:107
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Vous devez cliquer sur le bouton %s si vous souhaitez associer ce site à un compte QUIC.cloud."

#: tpl/general/settings.tpl.php:102
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Vous devez d’abord avoir %1$s avant de créer un lien vers QUIC.cloud."

#: tpl/general/settings.tpl.php:88
msgid "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."
msgstr "Veuillez vérifier que vos autres extensions ne bloquent pas les appels à l’API REST, mettez nos adresses IP sur une liste d’acceptation ou contactez l’administrateur/administratrice de votre serveur pour obtenir une assistance."

#: tpl/general/settings.tpl.php:87
msgid "Our %s was not whitelisted."
msgstr "Notre %s n’était pas en liste d’acceptation."

#: tpl/general/settings.tpl.php:86
msgid "The POST callback to %s failed."
msgstr "Le rappel de publication vers %s a échoué."

#: tpl/general/settings.tpl.php:85
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "Il y a deux raisons pour lesquelles nous pourrions ne pas être en mesure de communiquer avec votre domaine :"

#: tpl/general/settings.tpl.php:84
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Un problème est survenu lors de la récupération de votre clé de domaine. Veuillez cliquer sur le bouton %s pour réessayer."

#: tpl/general/settings.tpl.php:76 tpl/general/settings.tpl.php:78
#: tpl/general/settings.tpl.php:107
msgid "Link to QUIC.cloud"
msgstr "Lier à QUIC.cloud"

#: tpl/general/settings.tpl.php:74
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visitez mon tableau de bord sur QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Prochaine heure de demande disponible : <code>après %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Approuvé"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Demandé"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "En attente d’approbation"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "En attente d’actualisation"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Actualiser la clé de domaine"

#: tpl/general/entry.tpl.php:6 tpl/general/entry.tpl.php:11
#: tpl/general/network_settings.tpl.php:8 tpl/general/settings.tpl.php:43
#: tpl/crawler/entry.tpl.php:9
msgid "General Settings"
msgstr "Réglages généraux"

#: tpl/cdn/settings.tpl.php:120
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Spécifiez quels attributs des éléments HTML seront remplacés avec CDN Mapping."

#: src/admin-display.cls.php:237
msgid "Add new CDN URL"
msgstr "Ajouter une nouvelle URL de CDN"

#: src/admin-display.cls.php:236
msgid "Remove CDN URL"
msgstr "Supprimer l’URL du CDN"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Activez la fonctionnalité %s de l’API du CDN."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Pour activer la fonctionnalité suivante, activez l’API Cloudflare dans les réglages CDN."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "Pour gérer les options de QUIC.cloud, veuillez visiter"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:14
msgid "WooCommerce Settings"
msgstr "Réglages WooCommerce"

#: src/doc.cls.php:106 tpl/general/settings.tpl.php:87
msgid "Current Online Server IPs"
msgstr "IP actuelles du serveur en ligne"

#: src/doc.cls.php:105
msgid "Before generating key, please verify all IPs on this list are whitelisted"
msgstr "Avant de générer la clé, veuillez vérifier que toutes les IP de cette liste sont sur la liste blanche."

#: src/doc.cls.php:104
msgid "For online services to work correctly, you must whitelist all online server IPs."
msgstr "Pour que les services en ligne fonctionnent correctement, vous devez inscrire sur une liste d’acceptation toutes les adresses IP des serveurs en ligne."

#: src/gui.cls.php:528 src/gui.cls.php:679 tpl/toolbox/purge.tpl.php:90
msgid "LQIP Cache"
msgstr "Cache LQIP"

#: src/gui.cls.php:85
msgid "Private Cache Hits"
msgstr "Occurrence du cache privé"

#: src/gui.cls.php:84
msgid "Private Caches"
msgstr "Caches privés"

#: src/gui.cls.php:83
msgid "Public Cache Hits"
msgstr "Occurrences du cache public"

#: src/gui.cls.php:82
msgid "Public Caches"
msgstr "Caches publics"

#: src/admin-settings.cls.php:259 src/admin-settings.cls.php:294
msgid "Options saved."
msgstr "Options enregistrées."

#: src/img-optm.cls.php:1422
msgid "Removed backups successfully."
msgstr "Sauvegardes bien supprimées."

#: src/img-optm.cls.php:1360
msgid "Calculated backups successfully."
msgstr "Sauvegardes bien calculées."

#: src/img-optm.cls.php:1301
msgid "Rescaned %d images successfully."
msgstr "%d images ont bien été réanalysées."

#: src/img-optm.cls.php:1215 src/img-optm.cls.php:1288
msgid "Rescaned successfully."
msgstr "Bien été réanalysées."

#: src/img-optm.cls.php:1180
msgid "Destroy all optimization data successfully."
msgstr "Bien détruire toutes les données d’optimisation."

#: src/img-optm.cls.php:1109
msgid "Cleaned up unfinished data successfully."
msgstr "Bien nettoyé les données non finalisées."

#: src/img-optm.cls.php:1022
msgid "Pulled %d image(s)"
msgstr "Extrait %d image(s)"

#: src/img-optm.cls.php:945
msgid "Optimized WebP file expired and was cleared."
msgstr "Le fichier WebP optimisé a expiré et a été effacé."

#: src/img-optm.cls.php:828
msgid "Pull Cron is running"
msgstr "Le tirage du cron est en cours d’exécution"

#: src/img-optm.cls.php:597
msgid "No valid image found by Cloud server in the current request."
msgstr "Aucune image valide trouvée par le serveur cloud dans la demande actuelle."

#: src/img-optm.cls.php:574
msgid "No valid image found in the current request."
msgstr "Aucune image valide trouvée dans la demande actuelle."

#: src/img-optm.cls.php:420
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s poussées vers le serveur Cloud, %2$s acceptées."

#: src/img-optm.cls.php:143
msgid "Gathered %d images successfully."
msgstr "%d images bien collectées."

#: src/img-optm.cls.php:109
msgid "No new image gathered."
msgstr "Aucune nouvelle image recueillie."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Âge maximal des révisions"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Nombre maximum de révisions"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "L’URL de débogage exclut"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "L’URL de débogage comprend"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Supprimer le domaine du plan de site"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Délai dépassé"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "Attribut HTML à remplacer"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Utiliser le mappage CDN"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "CDN QUIC.cloud"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "Éditeur Heartbeat TTL"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Éditeur Heartbeat"

#: src/lang.cls.php:189
msgid "Backend .htaccess Path"
msgstr "Chemin du .htaccess de l’interface d’administration"

#: src/lang.cls.php:188
msgid "Frontend .htaccess Path"
msgstr "Chemin .htaccess sur interface publique"

#: src/lang.cls.php:178
msgid "ESI Nonces"
msgstr "Nonces d’ESI"

#: src/lang.cls.php:174
msgid "WordPress Image Quality Control"
msgstr "Contrôle de la qualité des images WordPress"

#: src/lang.cls.php:169
msgid "Create WebP Versions"
msgstr "Créer les versions WebP"

#: src/lang.cls.php:166
msgid "Auto Pull Cron"
msgstr "Cron de traction automatique"

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr "Générer LQIP en arrière-plan"

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr "Dimensions minimales de LQIP"

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr "Qualité de LQIP"

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr "Générateur de cloud de LQIP"

#: src/lang.cls.php:67
msgid "Notifications"
msgstr "Notifications"

#: src/lang.cls.php:57
msgid "Enable Cache"
msgstr "Activer la mise en cache"

#: src/lang.cls.php:54
msgid "Server IP"
msgstr "IP du serveur"

#: src/lang.cls.php:24
msgid "Images not requested"
msgstr "Images non demandées"

#: src/admin-display.cls.php:1065
msgid "Invalid IP"
msgstr "IP non valide"

#: src/admin-display.cls.php:1037
msgid "Smaller than"
msgstr "Plus petit que"

#: src/admin-display.cls.php:1034
msgid "Larger than"
msgstr "Plus grand que"

#: src/admin-display.cls.php:1027
msgid "Zero, or"
msgstr "Zéro, ou"

#: src/admin-display.cls.php:1015
msgid "Maximum value"
msgstr "Valeur maximale"

#: src/admin-display.cls.php:1012
msgid "Minimum value"
msgstr "Valeur minimale"

#: src/admin-display.cls.php:994
msgid "Path must end with %s"
msgstr "Le chemin doit finir par %s"

#: src/admin-display.cls.php:977
msgid "Invalid rewrite rule"
msgstr "Règle de réécriture non valide"

#: src/admin-display.cls.php:948 src/admin-display.cls.php:953
msgid "Recommended value"
msgstr "Valeur recommandée"

#: src/admin-display.cls.php:907
msgid "currently set to %s"
msgstr "actuellement défini à %s"

#: src/admin-display.cls.php:133 tpl/page_optm/entry.tpl.php:45
msgid "Database"
msgstr "Base de données"

#: src/utility.cls.php:875
msgid "&raquo;"
msgstr " »"

#: src/utility.cls.php:874
msgid "&laquo;"
msgstr "«"

#: src/error.cls.php:161
msgid "Unknown error"
msgstr "Erreur inconnue"

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "Le réglage %s est actuellement activé."

#: src/task.cls.php:119
msgid "Every Minute"
msgstr "Chaque minute"

#: tpl/general/settings.tpl.php:166
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activez cette option pour afficher automatiquement les dernières nouvelles, y compris les correctifs, les nouvelles versions, les versions bêta disponibles et les promotions."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Pour accorder un accès wp-admin à l’équipe de support de LiteSpeed, veuillez générer un lien sans mot de passe pour l’utilisateur actuellement connecté qui sera envoyé avec le rapport."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Les liens générés peuvent être gérés dans <a %s>Réglages</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Veuillez ne pas partager le lien sans mot de passe ci-dessus avec qui que ce soit."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Pour générer un lien sans mot de passe pour un accès à l’équipe de support de LiteSpeed, vous devez installer %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Installer"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Ces options sont uniquement disponibles avec LiteSpeed Enterprise Web Server ou QUIC.cloud CDN."

#: tpl/dash/dashboard.tpl.php:210 tpl/banner/score.php:68
msgid "PageSpeed Score"
msgstr "Score PageSpeed"

#: tpl/dash/dashboard.tpl.php:183 tpl/dash/dashboard.tpl.php:241
#: tpl/banner/score.php:55 tpl/banner/score.php:94
msgid "Improved by"
msgstr "Amélioré par"

#: tpl/dash/dashboard.tpl.php:175 tpl/dash/dashboard.tpl.php:233
#: tpl/banner/score.php:45 tpl/banner/score.php:84
msgid "After"
msgstr "Après"

#: tpl/dash/dashboard.tpl.php:166 tpl/dash/dashboard.tpl.php:225
#: tpl/banner/score.php:34 tpl/banner/score.php:74
msgid "Before"
msgstr "Avant"

#: tpl/dash/dashboard.tpl.php:153 tpl/banner/score.php:28
msgid "Page Load Time"
msgstr "Temps de chargement de la page"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Pour utiliser les fonctions de mise en cache, vous devez avoir un serveur web LiteSpeed ou utiliser un CDN QUIC.cloud."

#: src/lang.cls.php:171
msgid "Preserve EXIF/XMP data"
msgstr "Conserver les données EXIF/XMP"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Only enable for AMP or mobile-specific design/content, not for responsive sites."
msgstr "Activer uniquement pour AMP ou la conception/contenu spécifique mobile, pas pour les sites responsive."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Cache mobile views separately."
msgstr "Mettre en cache les vues mobiles séparément."

#: tpl/toolbox/beta_test.tpl.php:22
msgid "Try GitHub Version"
msgstr "Essayez la version GitHub"

#: tpl/cdn/settings.tpl.php:96
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si vous désactivez un des réglages ci-dessus, veuillez supprimer les types de fichiers correspondants de la boîte %s."

#: src/doc.cls.php:76
msgid "Both full and partial strings can be used."
msgstr "Il est possible d’utiliser aussi bien des chaînes complètes que partielles."

#: tpl/page_optm/settings_media_exc.tpl.php:49
msgid "Images containing these class names will not be lazy loaded."
msgstr "Les images contenant ces noms de classes ne seront pas chargées en différé."

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Le nom de la classe d’image de chargement différé exclut"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Par exemple, %1$s définit un TTL de %2$s secondes pour %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Pour définir un TTL personnalisé pour une URL, ajoutez un espace suivi de la valeur TTL à la fin de l’URL."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Peut-être ultérieurement"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Activer la mise à niveau auto"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:48
msgid "Upgrade"
msgstr "Mettre à niveau"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "La nouvelle version %s est maintenant disponible."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "Nouvelle version disponible !"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Forum de support</a> | <a %s>Soumettre un ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Créé avec ❤️ par l’équipe LiteSpeed."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Bien sûr que j’adorerais évaluer !"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Merci d’utiliser l’extension LiteSpeed Cache !"

#: src/activation.cls.php:417
msgid "Upgraded successfully."
msgstr "Bien mis à niveau."

#: src/activation.cls.php:408 src/activation.cls.php:413
msgid "Failed to upgrade."
msgstr "Échec de mise à niveau."

#: src/conf.cls.php:782
msgid "Changed setting successfully."
msgstr "Réglage bien modifié."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "Exemple d’ESI pour les développeurs"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Remplacer %1$s avec %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Vous pouvez transformer les codes courts en blocs ESI."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW : cache privé vs. cache public"

#: tpl/page_optm/settings_html.tpl.php:87
msgid "Append query string %s to the resources to bypass this action."
msgstr "Ajoutez des chaînes de requête %s aux ressources pour contourner cette action."

#: tpl/page_optm/settings_html.tpl.php:83
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA sera automatiquement contourné."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."
msgstr "Pour explorer un cookie particulier, saisissez son nom et les valeurs que vous souhaitez explorer. Les valeurs doivent être uniques par ligne, et peuvent inclure une ligne vierge. Il y aura un robot explorateur créé par valeur de cookie, par rôle simulé."

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Valeurs de cookie"

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr "Nom de cookie"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Simulation de cookie"

#: tpl/toolbox/edit_htaccess.tpl.php:44
msgid "This page is meant for advanced users."
msgstr "Cette page est destinée aux utilisateurs avancés."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utilisez la bibliothèque Web Font Loader pour charger les polices Google de manière asynchrone tout en laissant les autres CSS intacts."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activez cette option pour que LiteSpeed Cache soit mis à jour automatiquement, chaque fois qu’une nouvelle version est diffusée. Si inactif, mettre à jour manuellement comme d’habitude."

#: src/lang.cls.php:66
msgid "Automatically Upgrade"
msgstr "Mettre à jour automatiquement"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Votre IP"

#: src/import.cls.php:146
msgid "Reset successfully."
msgstr "Réinitialisation effectuée."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Cela va réinitialiser tous les réglages à ceux par défaut."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Réinitialiser tous les réglages"

#: tpl/page_optm/settings_css.tpl.php:247
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Des fichiers CSS critiques distincts seront générés pour les chemins contenant ces chaînes."

#: src/lang.cls.php:121
msgid "Separate CCSS Cache URIs"
msgstr "Séparer les URL de ca CCSS"

#: tpl/page_optm/settings_css.tpl.php:233
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Par exemple, si chaque page du site a un formatage différent, saisissez %s dans la case. Des fichiers CSS critiques distincts seront stockés pour chaque page du site."

#: tpl/page_optm/settings_css.tpl.php:232
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Énumérer les types de publication où chaque élément de ce type devrait avoir son propre CCSS généré."

#: src/lang.cls.php:120
msgid "Separate CCSS Cache Post Types"
msgstr "Séparer le cache du CCSS par type de publication."

#: tpl/page_optm/settings_media.tpl.php:178
msgid "Size list in queue waiting for cron"
msgstr "Liste des tailles dans la file d’attente en attente de cron"

#: tpl/page_optm/settings_media.tpl.php:155
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si défini à %1$s, avant que le texte indicatif ne soit localisé, la configuration %2$s sera utilisée."

#: tpl/page_optm/settings_media.tpl.php:153
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Générer automatiquement LQIP en arrière-plan via une file d’attente basée sur cron."

#: tpl/page_optm/settings_media.tpl.php:60
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Ceci générera le texte indicatif avec les mêmes tailles que l’image si elle a des attributs largeur et hauteur."

#: tpl/page_optm/settings_media.tpl.php:59
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Les textes indicatif d’image responsive peuvent aider à réduire le remaniement de la mise en page lorsque les images sont chargées."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Texte indicatif responsive"

#: tpl/toolbox/purge.tpl.php:91
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Ceci supprimera tous les fichiers indicatif LQIP d’image générés"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Veuillez activer LiteSpeed Cache dans les réglages de l’extension."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Veuillez activer le module LSCache au niveau du serveur ou demandez à votre hébergeur."

#: src/cloud.cls.php:548 src/cloud.cls.php:560
msgid "Failed to request via WordPress"
msgstr "Échec de la requête via WordPress"

#: tpl/page_optm/settings_media.tpl.php:216
msgid "Include the lazy load image JavaScript library inline."
msgstr "Inclure la bibliothèque JavaScript de chargement progressif de l’image en ligne."

#: src/lang.cls.php:164
msgid "Inline Lazy Load Images Library"
msgstr "Bibliothèque de chargement progressif d’images en ligne"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Mise en cache des pages haute performance et optimisation du site à partir de LiteSpeed"

#: src/img-optm.cls.php:1740
msgid "Reset the optimized data successfully."
msgstr "Bien réinitialiser les données optimisées."

#: src/gui.cls.php:755
msgid "Update %s now"
msgstr "Lettre à jour %s maintenant"

#: src/gui.cls.php:750
msgid "View %1$s version %2$s details"
msgstr "Voir les détails de la %1$s version %2$s"

#: src/gui.cls.php:747
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>Voir les détails de la version %3$s</a> ou <a href=\"%4$s\" %5$s target=\"_blank\">mettre à jour maintenant</a>."

#: src/gui.cls.php:727
msgid "Install %s"
msgstr "Installer %s"

#: src/lang.cls.php:31
msgid "Images previously optimized"
msgstr "Images précédemment optimisées"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "Les fonctions de mise en cache de LSCache sur cette page sont actuellement indisponibles !"

#: src/cloud.cls.php:604
msgid "%1$s plugin version %2$s required for this action."
msgstr "Extension %1$s version %2$s nécessaire pour cette action."

#: src/cloud.cls.php:570
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Nous travaillons dur pour améliorer votre expérience de service en ligne. Le service sera indisponible pendant que nous travaillons. Nous nous excusons pour tout inconvénient."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Supprimer automatiquement les sauvegarde d’image après récupération des images optimisées."

#: src/lang.cls.php:168
msgid "Remove Original Backups"
msgstr "Supprimer les sauvegardes d’originales"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Demander automatiquement l’optimisation via tâche cron."

#: tpl/img_optm/summary.tpl.php:180
msgid "A backup of each image is saved before it is optimized."
msgstr "Une sauvegarde de chaque image est enregistrée avant d’être optimisée."

#: src/img-optm.cls.php:1619
msgid "Switched images successfully."
msgstr "Commutation d’image réussie."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Cela peut améliorer la qualité, mais peut entraîner des images plus grandes que la compression avec perte."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimiser les images en utilisant la compression sans perte."

#: src/lang.cls.php:170
msgid "Optimize Losslessly"
msgstr "Optimiser sans perte"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Demander les versions WebP des images originales lors de l’optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiser les images et enregistrer les sauvegardes des originaux dans le même dossier."

#: src/lang.cls.php:167
msgid "Optimize Original Images"
msgstr "Optimiser les images originales"

#: tpl/page_optm/settings_css.tpl.php:167
msgid "This option only works if %1$s is %2$s."
msgstr "Cette option fonctionne uniquement si %1$s est %2$s."

#: tpl/page_optm/settings_css.tpl.php:166
msgid "Leave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated."
msgstr "Laissez cette option %1$s pour autoriser la communication avec le service QUIC.cloud CCSS. Si défini à %2$s, le CSS critique ne sera pas généré."

#: src/lang.cls.php:118
msgid "Generate Critical CSS"
msgstr "Générer le CSS critique"

#: tpl/page_optm/settings_css.tpl.php:149
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Lorsque cette option est définie à %s, elle chargera également les polices Google de manière asynchrone."

#: src/purge.cls.php:229
msgid "Cleaned all Critical CSS files."
msgstr "Nettoyé tous les fichiers CSS critiques."

#: tpl/page_optm/settings_css.tpl.php:261
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Ceci mettra en ligne la bibliothèque CSS asynchrone pour éviter le blocage du rendu."

#: src/lang.cls.php:122
msgid "Inline CSS Async Lib"
msgstr "Librairie CSS Async en ligne"

#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_css.tpl.php:216
msgid "Run Queue Manually"
msgstr "Exécuter la file d’attente manuellement"

#: tpl/page_optm/settings_css.tpl.php:203
msgid "URL list in queue waiting for cron"
msgstr "Liste d’URL dans la file d’attente de cron"

#: tpl/page_optm/settings_css.tpl.php:93 tpl/page_optm/settings_css.tpl.php:192
msgid "Last requested cost"
msgstr "Dernier coût demandé"

#: tpl/dash/dashboard.tpl.php:407 tpl/dash/dashboard.tpl.php:438
#: tpl/page_optm/settings_media.tpl.php:167
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:189
msgid "Last generated"
msgstr "Dernier généré"

#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:181
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si défini sur %s, cela se fait au premier plan, ce qui peut ralentir le chargement de la page."

#: tpl/page_optm/settings_css.tpl.php:180
msgid "Automatically generate critical CSS in the background via a cron-based queue."
msgstr "Générer automatiquement des CSS critiques en arrière-plan via une file d’attente à base de cron."

#: src/lang.cls.php:119
msgid "Generate Critical CSS In Background"
msgstr "Générer le CSS critique en arrière-plan"

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Optimize CSS delivery."
msgstr "Optimiser la livraison CSS."

#: tpl/toolbox/purge.tpl.php:73
msgid "This will delete all generated critical CSS files"
msgstr "Cela supprimera tous les fichiers CSS critiques générés"

#: src/gui.cls.php:508 src/gui.cls.php:659 tpl/dash/dashboard.tpl.php:53
#: tpl/dash/dashboard.tpl.php:402 tpl/toolbox/purge.tpl.php:72
msgid "Critical CSS"
msgstr "CSS critique"

#: src/doc.cls.php:24
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."
msgstr "Ce site utilise la mise en cache afin de faciliter un temps de réponse plus rapide et une meilleure expérience utilisateur. La mise en cache stocke potentiellement une copie de chaque page web affichée sur ce site. Tous les fichiers de cache sont temporaires et ne sont jamais accessibles à un tiers, sauf si cela est nécessaire pour obtenir le support technique du fournisseur de l’extension de cache. Les fichiers cache expirent selon une planification fixée par l’administrateur du site, mais peuvent facilement être purgés par l’administrateur avant leur expiration naturelle, si nécessaire."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Désactiver cela peut entraîner l’arrêt des tâches WordPress déclenchées par AJAX."

#: src/utility.cls.php:250
msgid "right now"
msgstr "tout de suite"

#: src/utility.cls.php:250
msgid "just now"
msgstr "juste maintenant"

#: tpl/img_optm/summary.tpl.php:245
msgid "Saved"
msgstr "Enregistré"

#: tpl/img_optm/summary.tpl.php:239
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Dernière exécution"

#: tpl/img_optm/summary.tpl.php:231 tpl/img_optm/settings.tpl.php:67
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "Vous ne pourrez pas annuler l’optimisation une fois les sauvegardes supprimées !"

#: tpl/img_optm/summary.tpl.php:230 tpl/img_optm/settings.tpl.php:66
msgid "This is irreversible."
msgstr "C’est irréversible."

#: tpl/img_optm/summary.tpl.php:250
msgid "Remove Original Image Backups"
msgstr "Supprimer les sauvegardes de l’image originale"

#: tpl/img_optm/summary.tpl.php:249
msgid "Are you sure you want to remove all image backups?"
msgstr "Confirmez-vous vouloir la suppression de toutes les sauvegardes d’image ?"

#: tpl/img_optm/summary.tpl.php:194 tpl/crawler/blacklist.tpl.php:25
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:191 tpl/img_optm/summary.tpl.php:242
msgid "Files"
msgstr "Fichiers"

#: tpl/img_optm/summary.tpl.php:187
msgid "Last calculated"
msgstr "Dernier calculé"

#: tpl/img_optm/summary.tpl.php:202
msgid "Calculate Original Image Storage"
msgstr "Calculer le stockage des images originales"

#: tpl/img_optm/summary.tpl.php:176
msgid "Storage Optimization"
msgstr "Optimisation du stockage"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Activer le remplacement de WebP dans les éléments %s qui ont été générés en dehors de la logique WordPress."

#: src/lang.cls.php:173
msgid "WebP For Extra srcset"
msgstr "WebP pour srcset extra"

#: tpl/cdn/settings.tpl.php:122 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Utilisez le format %1$s ou %2$s (élément est facultatif)."

#: tpl/cdn/settings.tpl.php:121 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Ne seront remplacés uniquement les attributs listés ici."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Spécifiez quels attributs d’élément seront remplacés avec WebP."

#: src/lang.cls.php:172
msgid "WebP Attribute To Replace"
msgstr "Attribut WebP à remplacer"

#: tpl/cdn/settings.tpl.php:159
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Uniquement les fichiers de ces répertoires seront dirigés vers le CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Répertoires inclus"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Une purge de tout sera exécutée lorsque WordPress exécute ces crochets."

#: src/lang.cls.php:180
msgid "Purge All Hooks"
msgstr "Purger tous les crochets"

#: src/purge.cls.php:193
msgid "Purged all caches successfully."
msgstr "Tous les caches ont bien été purgés."

#: src/gui.cls.php:471 src/gui.cls.php:562 src/gui.cls.php:612
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:415
msgid "Forced cacheable"
msgstr "Mise en cache forcée"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Les chemins contenant ces chaînes de caractères seront mis en cache sans tenir compte des réglages de non mise en cache."

#: src/lang.cls.php:97
msgid "Force Cache URIs"
msgstr "Forcer la mise en cache des URL"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Réglages d’exclusion"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Ceci désactivera LSCache et toutes les fonctionnalités d’optimisation à des fins de débogage."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Désactiver toutes les fonctionnalités"

#: src/gui.cls.php:498 src/gui.cls.php:649 tpl/toolbox/purge.tpl.php:63
msgid "Opcode Cache"
msgstr "Cache Opcode"

#: src/gui.cls.php:479 src/gui.cls.php:620 tpl/toolbox/purge.tpl.php:45
msgid "CSS/JS Cache"
msgstr "Cache CSS/JS"

#: src/gui.cls.php:708 tpl/img_optm/summary.tpl.php:169
msgid "Remove all previous unfinished image optimization requests."
msgstr "Supprimer toutes les requêtes d’optimisation d’images inachevées."

#: src/gui.cls.php:709 tpl/img_optm/summary.tpl.php:171
msgid "Clean Up Unfinished Data"
msgstr "Nettoyage des données inachevées"

#: src/lang.cls.php:32
msgid "Images failed with other errors"
msgstr "Images qui ont échoué avec d’autres erreurs"

#: src/lang.cls.php:35
msgid "Images with wrong meta"
msgstr "Images avec fausse méta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Rejoignez-nous sur Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Rejoignez la communauté %s."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Souhaitez-vous vous connecter avec les autres utilisateurs LitePeed ?"

#: tpl/cdn/settings.tpl.php:206
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Obtenez-le à partir de <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:205
msgid "Your API key is used to access %s APIs."
msgstr "Votre clé d’API est utilisée pour accéder aux APIS %s."

#: tpl/cdn/settings.tpl.php:196
msgid "Your Email address on %s."
msgstr "Votre adresse de messagerie sur %s."

#: tpl/cdn/settings.tpl.php:187
msgid "Use %s API functionality."
msgstr "Utiliser la fonctionnalité d’API %s."

#: tpl/cdn/settings.tpl.php:73
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Pour rendre le nom d’hôte CDN aléatoire, définissez plusieurs noms d’hôte pour les mêmes ressources."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Rejoindre la communauté Slack LieteSpeed"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visiter le forum de support LSCWP"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Évaluer %s sur %s"

#: src/lang.cls.php:26 tpl/dash/dashboard.tpl.php:312
msgid "Images notified to pull"
msgstr "Images notifiées à tirer"

#: src/lang.cls.php:33
msgid "Image files missing"
msgstr "Fichiers image manquants"

#: tpl/img_optm/summary.tpl.php:274 tpl/img_optm/summary.tpl.php:301
msgid "What is a group?"
msgstr "Qu’est-ce qu’un groupe ?"

#: src/admin-display.cls.php:1133
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1130
msgid "%s group"
msgstr "%s groupe"

#: src/admin-display.cls.php:1120
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1117
msgid "%s groups"
msgstr "%s groupes"

#: src/crawler.cls.php:767
msgid "Guest"
msgstr "Hôte"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Pour crawler le site comme utilisateur connecté, saisissez les ID utilisateur à simuler."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Simulation de rôle"

#: tpl/crawler/summary.tpl.php:166
msgid "running"
msgstr "exécution"

#: tpl/db_optm/manage.tpl.php:175
msgid "Size"
msgstr "Taille"

#: tpl/dash/dashboard.tpl.php:490 tpl/crawler/summary.tpl.php:99
msgid "Ended reason"
msgstr "Raison pour laquelle c’est terminé"

#: tpl/dash/dashboard.tpl.php:483 tpl/crawler/summary.tpl.php:92
msgid "Last interval"
msgstr "Dernier intervalle"

#: tpl/dash/dashboard.tpl.php:476 tpl/crawler/summary.tpl.php:85
msgid "Current crawler started at"
msgstr "Le crawler actuel a démarré le"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Durée d’exécution du précédent robot explorateur"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d secondes"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Durée de dernière exécution complète pour tous les robots explorateurs"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Le crawl de plan de site actuel a commencé le"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Enregistrer les transients dans la base de données lorsque %1$s est %2$s."

#: src/lang.cls.php:91
msgid "Store Transients"
msgstr "Stocker les transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "Si %1$s est %2$s, alors %3$s doit être renseigné !"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Valeur max. de serveur autorisée"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Valeur imposée par le serveur"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Valeur min. de serveur autorisée"

#: tpl/cdn/settings.tpl.php:72 tpl/cache/settings-excludes.tpl.php:62
#: tpl/cache/settings-excludes.tpl.php:95
#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "Remarque"

#: src/admin-display.cls.php:1086
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable·s de serveur %s disponible·s pour surpasser ce réglage."

#: src/admin-display.cls.php:1085 tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_html.tpl.php:86
#: tpl/page_optm/settings_media_exc.tpl.php:25
#: tpl/page_optm/settings_css.tpl.php:151 tpl/cache/settings-esi.tpl.php:95
msgid "API"
msgstr "API"

#: src/purge.cls.php:329
msgid "Reset the entire opcode cache successfully."
msgstr "Bien réinitialiser l’ensemble du cache opcode."

#: src/purge.cls.php:317
msgid "Opcode cache is not enabled."
msgstr "Le cache opcode n’est pas activé."

#: src/import.cls.php:121
msgid "Imported setting file %s successfully."
msgstr "Fichier de réglages %s bien importé."

#: src/import.cls.php:83
msgid "Import failed due to file error."
msgstr "Échec de l’import du à une erreur fichier."

#: tpl/page_optm/settings_js.tpl.php:35 tpl/page_optm/settings_css.tpl.php:42
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Comment corriger les problèmes dus à l’optimisation du CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Cela va générer des requêtes supplémentaires au serveur, ce qui augmentera la charge du serveur."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Lorsqu’un visiteur survole un lien de page, préchargez cette page. Cela accélérera la visite de ce lien."

#: src/lang.cls.php:182
msgid "Instant Click"
msgstr "Clic instantané"

#: tpl/toolbox/purge.tpl.php:64
msgid "Reset the entire opcode cache"
msgstr "Réinitialiser l’intégralité du cache opcode"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Cela va importer les réglages via un fichier et remplacer tous les réglages LiteSpeed Cache actuels."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Dernier importé"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importer"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Importer des réglages"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Cela exportera tous les réglages actuels de LiteSpeed Cache et les enregistrera en tant que fichier."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Dernier exporté"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exporter"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Exporter les réglages"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Importer/exporter"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilisez des connexions persistantes pour accélérer les opérations de cache."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Base de données à utiliser"

#: src/lang.cls.php:86
msgid "Redis Database ID"
msgstr "ID de base de données Redis"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Précisez le mot de passe utilisé pour la connexion."

#: src/lang.cls.php:85
msgid "Password"
msgstr "Mot de passe"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Uniquement disponible lorsque %s est installé."

#: src/lang.cls.php:84
msgid "Username"
msgstr "Nom d’utilisateur"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Votre nom d’hébergeur ou adresse IP de %s."

#: src/lang.cls.php:80
msgid "Method"
msgstr "Méthode"

#: src/purge.cls.php:370
msgid "Purge all object caches successfully."
msgstr "Bien purger tous les caches d’objets."

#: src/purge.cls.php:357
msgid "Object cache is not enabled."
msgstr "Cache d’objet non activé."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Améliorez la vitesse de wp-admin grâce à la mise en cache. (peut rencontrer des données expirées)"

#: src/lang.cls.php:90
msgid "Cache Wp-Admin"
msgstr "Mettre en cache wp-admin"

#: src/lang.cls.php:89
msgid "Persistent Connection"
msgstr "Connexion persistante"

#: src/lang.cls.php:88
msgid "Do Not Cache Groups"
msgstr "Ne pas mettre en cache les groupes"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groupes mis en cache au niveau du réseau."

#: src/lang.cls.php:87
msgid "Global Groups"
msgstr "Groupes globaux"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Test de connexion"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "Extension %s"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/summary.tpl.php:124
#: tpl/crawler/blacklist.tpl.php:32
msgid "Status"
msgstr "État"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "TTL par défaut pour les objets mis en cache."

#: src/lang.cls.php:83
msgid "Default Object Lifetime"
msgstr "Durée de vie de l'objet par défaut"

#: src/lang.cls.php:82
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:81
msgid "Host"
msgstr "Hébergeur"

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use object cache functionality."
msgstr "Utiliser la fonctionnalité de mise en cache d’objet."

#: src/lang.cls.php:79 src/gui.cls.php:488 src/gui.cls.php:639
#: tpl/dash/dashboard.tpl.php:361 tpl/toolbox/purge.tpl.php:54
msgid "Object Cache"
msgstr "Mise en cache d’objet"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Échouée"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Réussie"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Non disponible"

#: tpl/toolbox/purge.tpl.php:55
msgid "Purge all the object caches"
msgstr "Purger tous les caches d'objets"

#: src/cdn/cloudflare.cls.php:259
msgid "Failed to communicate with Cloudflare"
msgstr "Échec de communication avec Cloudflare"

#: src/cdn/cloudflare.cls.php:250
msgid "Communicated with Cloudflare successfully."
msgstr "Bien communiqué avec Cloudflare."

#: src/cdn/cloudflare.cls.php:164
msgid "No available Cloudflare zone"
msgstr "Aucune zone Cloudflare disponible"

#: src/cdn/cloudflare.cls.php:150
msgid "Notified Cloudflare to purge all successfully."
msgstr "Bien notifié Cloudflare de tout purger."

#: src/cdn/cloudflare.cls.php:134
msgid "Cloudflare API is set to off."
msgstr "L’API Cloudflare est définie à inactif."

#: src/cdn/cloudflare.cls.php:117
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Bien notifié Cloudflare de définir le mode développement à %s."

#: tpl/cdn/settings.tpl.php:220
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Une fois enregistré, il sera harmonisé avec la liste actuelle et complété automatiquement."

#: tpl/cdn/settings.tpl.php:219
msgid "You can just type part of the domain."
msgstr "Vous pouvez saisir juste une partie du domaine."

#: tpl/cdn/settings.tpl.php:211
msgid "Domain"
msgstr "Domaine"

#: tpl/cdn/settings.tpl.php:201
msgid "Global API Key"
msgstr "Clé d’API Cloudflare"

#: tpl/cdn/settings.tpl.php:188
msgid "This can be managed from <a %2$s>%1$s</a>."
msgstr "Ça peut être géré à partir de <a %2$s>%1$s</a>."

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "API Cloudflare"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Tout purger"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cache Cloudflare"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Le mode développement sera automatiquement désactivé après trois heures."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Ignorer temporairement le cache Cloudflare. Cela permet de voir en temps réel les modifications apportées au serveur d'origine."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Le mode développement sera automatiquement désactivé dans %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "L’état actuel est %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "L’état actuel est %1$s depuis %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Vérifier l’état"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Désactiver"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Activer"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Mode développement"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Zone Cloudflare"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Domaine Cloudflare"

#: src/gui.cls.php:629 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "For example"
msgstr "Par exemple"

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Le pré-chargement des DNS peut réduire la latence pour les visiteurs."

#: src/lang.cls.php:128
msgid "DNS Prefetch"
msgstr "Pré-chargement des DNS"

#: tpl/page_optm/settings_media.tpl.php:29
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Ajout de style à vos images chargées en différé"

#: tpl/cdn/settings.tpl.php:93
msgid "Default value"
msgstr "Valeur par défaut"

#: tpl/cdn/settings.tpl.php:90
msgid "Static file type links to be replaced by CDN links."
msgstr "Liens de type de fichier statique à remplacer par des liens CDN."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Par exemple, pour supprimer les paramètres commençant par %s, %s peut être utilisé ici."

#: src/lang.cls.php:77
msgid "Drop Query String"
msgstr "Supprimer la chaîne de requête"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activez cette option si vous utilisez HTTP et HTTPS sur le même domaine et que vous remarquez des irrégularités de cache."

#: src/lang.cls.php:181
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Améliorer la compatibilité HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:372
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Supprimer toutes les requêtes/résultats d'optimisation d'image précédentes, annulez les optimisations terminées et supprimer tous les fichiers d'optimisation."

#: tpl/img_optm/summary.tpl.php:368
msgid "Destroy All Optimization Data"
msgstr "Détruire toutes les données d’optimisation"

#: tpl/img_optm/summary.tpl.php:318
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Rechercher toute nouvelle taille de miniature d'image non optimisée et renvoyez les requêtes d'optimisation d'image nécessaires."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Cela augmentera la taille des fichiers optimisés."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Conserver les données EXIF (copyright, GPS, commentaires, mots clés, etc.) lors de l'optimisation."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Effacer le journal"

#: thirdparty/woocommerce.content.tpl.php:21
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Pour tester le panier, visitez la <a %s>FAQ</a>."

#: src/utility.cls.php:253
msgid " %s ago"
msgstr "il y a %s"

#: src/media.cls.php:336
msgid "WebP saved %s"
msgstr "WebP économisé %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si vous rencontrez des problèmes, veuillez vous reporter au numéro de rapport dans votre message de support."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Cela générera également une clé d’API à partir du serveur LiteSpeed."

#: tpl/img_optm/summary.tpl.php:127
msgid "Last pull initiated by cron at %s."
msgstr "Dernier tirage initié par cron à %s."

#: tpl/img_optm/summary.tpl.php:81
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Les images seront tirées automatiquement si la tâche cron est en cours d’exécution."

#: tpl/img_optm/summary.tpl.php:81
msgid "Only press the button if the pull cron job is disabled."
msgstr "N'appuyez sur le bouton que si la tâche cron de tirage est désactivée."

#: tpl/img_optm/summary.tpl.php:88
msgid "Pull Images"
msgstr "Tirer les images"

#: tpl/img_optm/summary.tpl.php:112
msgid "This process is automatic."
msgstr "Ce processus est automatique."

#: tpl/dash/dashboard.tpl.php:322 tpl/img_optm/summary.tpl.php:336
msgid "Last Request"
msgstr "Dernière requête"

#: src/lang.cls.php:28
msgid "Images failed to pull"
msgstr "Tirage des images échoué"

#: src/lang.cls.php:29 src/lang.cls.php:30
msgid "Images failed to fetch"
msgstr "Les images n'ont pas pu être récupérées"

#: tpl/img_optm/summary.tpl.php:333
msgid "Images Pulled"
msgstr "Images tirées"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Rapport"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Envoyez ce rapport à LiteSpeed. Référez-vous à ce numéro de rapport lorsque vous publiez sur le forum de support WordPress."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Envoyer à LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Date de rapport"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Numéro de rapport"

#: thirdparty/woocommerce.content.tpl.php:76
msgid "Privately cache cart when not empty."
msgstr "Mettre en cache privé le panier lorsqu'il n'est pas vide."

#: thirdparty/woocommerce.content.tpl.php:71
msgid "Privately Cache Cart"
msgstr "Mettre en cache privé le panier"

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr "Optimisation de LiteSpeed"

#: tpl/page_optm/settings_html.tpl.php:102
msgid "This will also add a preconnect to Google for faster Google Fonts downloading."
msgstr "Cela ajoutera également une préconnexion à Google pour un téléchargement plus rapide de Google Fonts."

#: src/lang.cls.php:133
msgid "Load Google Fonts Asynchronously"
msgstr "Charger les Google Fonts de manière asynchrone"

#: src/lang.cls.php:65
msgid "Browser Cache TTL"
msgstr "TTL du cache navigateur"

#: tpl/img_optm/summary.tpl.php:340
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Les résultats peuvent être vérifiés dans la <a %s> bibliothèque des médias</a>."

#: src/doc.cls.php:40 src/doc.cls.php:92 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:56
#: tpl/img_optm/summary.tpl.php:96 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Apprendre plus"

#: src/lang.cls.php:27
msgid "Images optimized and pulled"
msgstr "Images optimisées et tirées"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:302
msgid "Images requested"
msgstr "Images demandées"

#: tpl/img_optm/summary.tpl.php:308
msgid "Images not yet requested"
msgstr "Images pas encore demandées"

#: tpl/img_optm/summary.tpl.php:270 tpl/img_optm/summary.tpl.php:297
msgid "Images total"
msgstr "Images totales"

#: src/img-optm.cls.php:1677
msgid "Switched to optimized file successfully."
msgstr "Commuté pour bien optimiser le fichier."

#: src/img-optm.cls.php:1670
msgid "Restored original file successfully."
msgstr "Fichier original bien restauré."

#: src/img-optm.cls.php:1654
msgid "Enabled WebP file successfully."
msgstr "Fichier WebP bien activé."

#: src/img-optm.cls.php:1648
msgid "Disabled WebP file successfully."
msgstr "Fichier WebP bien désactivé."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Désactiver cela stoppera la tâche cron responsable de la récupération des images optimisées à partir du serveur d’images QUIC.cloud."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Améliorez significativement le temps de chargement en remplaçant les images par leurs versions %s optimisées."

#: src/lang.cls.php:186
msgid "Image WebP Replacement"
msgstr "Remplacement de l'image WebP"

#: tpl/cache/settings-excludes.tpl.php:124
msgid "Selected roles will be excluded from cache."
msgstr "Les rôles sélectionnés seront exclus du cache."

#: tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Accordage"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "Selected roles will be excluded from all optimizations."
msgstr "Les rôles sélectionnés seront exclus de toutes les optimisations."

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Rôle exclu"

#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Réglages d’accord"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si l’identifiant d’étiquette n’est pas trouvé, l’étiquette sera retirée de la liste à l’enregistrement."

#: tpl/cache/settings-excludes.tpl.php:64
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si le nom de la catégorie n’est pas trouvé, la catégorie sera retirée de la liste lors de l’enregistrement."

#: tpl/img_optm/summary.tpl.php:111
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Une fois que le serveur d’optimisation d’images QUIC.cloud a terminé l’optimisation, il demandera à votre site de tirer les images optimisées."

#: tpl/img_optm/summary.tpl.php:78
msgid "Send Optimization Request"
msgstr "Envoyer une requête d’optimisation"

#: tpl/img_optm/summary.tpl.php:261
msgid "Image Information"
msgstr "Information d’image"

#: tpl/img_optm/summary.tpl.php:330
msgid "Total Reduction"
msgstr "Réduction totale"

#: tpl/img_optm/summary.tpl.php:327
msgid "Optimization Summary"
msgstr "Résumé d’optimisation"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimisation d’image LiteSpeed Cache"

#: src/admin-display.cls.php:129 src/gui.cls.php:595
#: tpl/dash/network_dash.tpl.php:27 tpl/dash/dashboard.tpl.php:52
msgid "Image Optimization"
msgstr "Optimisation d’image"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "JS différé exclut"

#: tpl/page_optm/settings_media.tpl.php:46
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Par exemple, %s peut être utilisé pour un texte indicatif transparent."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "By default a gray image placeholder %s will be used."
msgstr "Par défaut une image indicative grise %s sera utilisée."

#: tpl/page_optm/settings_media.tpl.php:44
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Cela peut être défini dans %2$s comme utilisant la constante %1$s, en prenant ce réglage en priorité."

#: tpl/page_optm/settings_media.tpl.php:43
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Précisez une image base64 à utiliser comme indicative pendant que les autres images terminent de charger."

#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:92
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_css.tpl.php:152
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Les éléments avec l’attribut %s dans le code html seront exclus."

#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/cache/settings-esi.tpl.php:96
msgid "Filter %s is supported."
msgstr "Le filtre %s est supporté."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Les images listées ne seront pas chargées lentement."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Exclut l’image du chargement lent"

#: src/gui.cls.php:448
msgid "No optimization"
msgstr "Aucune optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:107
msgid "Prevent any optimization of listed pages."
msgstr "Empêche toute optimisation des pages listées."

#: src/lang.cls.php:139
msgid "URI Excludes"
msgstr "URI exclut"

#: tpl/page_optm/settings_html.tpl.php:129
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Stopper le chargement d’emoji WordPress.org. Les emojis par défaut du navigateur seront affichés à la place."

#: src/doc.cls.php:79
msgid "Both full URLs and partial strings can be used."
msgstr "À la fois les URL complètes et les chaînes partielles peuvent être utilisées."

#: tpl/page_optm/entry.tpl.php:35
msgid "Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Impossible de créer la table Optimizer. Veuillez suivre <a %s>le guide de création de table du wiki LiteSpeed</a> pour finir la configuration."

#: tpl/page_optm/settings_media.tpl.php:202
msgid "Load iframes only when they enter the viewport."
msgstr "Chargez les iframes uniquement lorsqu'elles entrent dans la fenêtre d'affichage."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Chargement différé des iframes"

#: tpl/page_optm/settings_media.tpl.php:26
#: tpl/page_optm/settings_media.tpl.php:203
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Cela peut améliorer le temps de chargement de la page en réduisant les requêtes HTTP initiales."

#: tpl/page_optm/settings_media.tpl.php:25
msgid "Load images only when they enter the viewport."
msgstr "Charger les images uniquement lorsqu’elles entrent dans la fenêtre d’affichage."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Chargement différé des images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:12
msgid "Media Settings"
msgstr "Réglages des médias"

#: tpl/cache/settings-excludes.tpl.php:37
msgid "For example, for %s, %s and %s can be used here."
msgstr "Par exemple, pour %s, %s et %s peuvent être utilisés ici."

#: tpl/cdn/settings.tpl.php:137 tpl/cache/settings-purge.tpl.php:110
#: tpl/cache/settings-esi.tpl.php:107
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s pris en charge (correspond à zéro ou plusieurs caractères). Par exemple, pour faire correspondre %2$s et %3$s, utilisez %4$s."

#: src/admin-display.cls.php:1101
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Pour correspondre au début, ajoutez %s au début de l'élément."

#: src/admin-display.cls.php:1099
msgid "For example, for %s, %s can be used here."
msgstr "Par exemple, pour %s, %s peut être utilisé ici."

#: tpl/db_optm/manage.tpl.php:48
msgid "Purge all and clean all minified/combined CSS/JS data"
msgstr "Tout purger et netppoyer toutes les données minifiées/combinées."

#: tpl/db_optm/manage.tpl.php:47
msgid "Clean CSS/JS Optimizer"
msgstr "Nettoyer l’outil d’optimisation de CSS/JS"

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Peut-être plus tard"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "J’ai déjà laissé une évaluation"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Bienvenue chez LiteSpeed"

#: src/db-optm.cls.php:204
msgid "Clean all CSS/JS optimizer data successfully."
msgstr "Bien nettoyer toutes les données de l’outil d’optimisation de CSS/JS."

#: src/lang.cls.php:137
msgid "Remove WordPress Emoji"
msgstr "Retirer les emoji WordPress"

#: src/gui.cls.php:456
msgid "More settings"
msgstr "Plus de réglages"

#: src/gui.cls.php:437
msgid "Private cache"
msgstr "Cache privé"

#: src/gui.cls.php:426
msgid "Non cacheable"
msgstr "Impossible à mettre en cache"

#: src/gui.cls.php:403
msgid "Mark this page as "
msgstr "Marquer cette page comme"

#: src/gui.cls.php:395
msgid "Purge this page"
msgstr "Purger cette page"

#: tpl/page_optm/settings_js.tpl.php:74
msgid "Doing so can help reduce resource contention and improve performance."
msgstr "Cela peut aider à réduire la contention des ressources et à améliorer les performances."

#: src/lang.cls.php:124
msgid "Load JS Deferred"
msgstr "Charger le JS en diféré"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Spécifiez les règles CSS critiques pour le contenu au-dessus du pli lorsque vous activez %s."

#: src/lang.cls.php:135
msgid "Critical CSS Rules"
msgstr "Règles CSS critiques"

#: src/lang.cls.php:117 tpl/page_optm/settings_tuning.tpl.php:73
#: tpl/page_optm/settings_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr "Charger le CSS de manière asynchrone"

#: tpl/page_optm/settings_html.tpl.php:116
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Empêcher les polices Google de charger sur toutes vos pages."

#: src/lang.cls.php:134
msgid "Remove Google Fonts"
msgstr "Retirer les polices Google"

#: tpl/page_optm/settings_html.tpl.php:130 tpl/page_optm/settings_js.tpl.php:75
#: tpl/page_optm/settings_media.tpl.php:217
#: tpl/page_optm/settings_css.tpl.php:148
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Cela peut améliorer votre score de vitesse dans des services tels que Pingdom, GTmetrix et PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:80
msgid "Remove query strings from static resources."
msgstr "Retirer les chaînes de requête des ressources statiques."

#: src/lang.cls.php:132
msgid "Remove Query Strings"
msgstr "Retirer les chaînes de requête"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "agents utilisateur"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "Vous pouvez aussi activer la mise en cache du navigateur dans l’admin serveur. <a %s>En apprendre plus sur les réglages du cache navigateur LiteSpeed</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "La mise en cache du navigateur stocke les fichiers statiques localement dans le navigateur de l'utilisateur. Activez ce réglage pour réduire les requêtes répétées de fichiers statiques."

#: src/lang.cls.php:58 tpl/dash/dashboard.tpl.php:362
msgid "Browser Cache"
msgstr "Cache navigateur"

#: tpl/cache/settings-excludes.tpl.php:91
msgid "tags"
msgstr "étiquettes"

#: src/lang.cls.php:102
msgid "Do Not Cache Tags"
msgstr "Ne pas mettre en cache les étiquettes"

#: tpl/cache/settings-excludes.tpl.php:98
msgid "To exclude %1$s, insert %2$s."
msgstr "Pour exclure %1$s, insérez %2$s."

#: tpl/cache/settings-excludes.tpl.php:58
msgid "categories"
msgstr "catégories"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings-excludes.tpl.php:58
#: tpl/cache/settings-excludes.tpl.php:91
msgid "To prevent %s from being cached, enter them here."
msgstr "Pour éviter que les %s soient mises en cache, saisissez-les ici."

#: src/lang.cls.php:101
msgid "Do Not Cache Categories"
msgstr "Ne pas mettre en cache les catégories"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "Query strings containing these parameters will not be cached."
msgstr "Les chaînes de requête contenant ces paramètres ne seront pas mises en cache."

#: src/lang.cls.php:100
msgid "Do Not Cache Query Strings"
msgstr "Ne pas mettre en cache les chaînes de requête"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Les chemins contenant ces chaînes de requête ne seront pas mis en cache."

#: src/lang.cls.php:99
msgid "Do Not Cache URIs"
msgstr "Ne pas mettre en cache les URI"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "Les journaux seront sortis en %s."

#: src/admin-display.cls.php:1103 src/doc.cls.php:61
msgid "One per line."
msgstr "Une par ligne."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Les chemins d’URI contenant ces chaînes ne seront pas mis en cache comme publics."

#: src/lang.cls.php:76
msgid "Private Cached URIs"
msgstr "URI mises en cache privées"

#: tpl/cdn/settings.tpl.php:173
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Les chemins contenant ces chaînes ne seront pas servis par le CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Exclure le chemin"

#: tpl/cdn/settings.tpl.php:92
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Cela va affecter toutes les balises contenant les attributs : %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:96
msgid "Include File Types"
msgstr "Inclure les types de fichier"

#: tpl/cdn/settings.tpl.php:86
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir tous les fichiers JavaScript via le CDN. Cela affectera tous les fichiers JavaScript WP en file d’attente."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Inclure le JS"

#: tpl/cdn/settings.tpl.php:82
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir tous les fichiers CSS via le CDN. Cela affectera tous les fichiers CSS WP en file d’attente."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Inclure le CSS"

#: tpl/cdn/settings.tpl.php:78
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Servir tous les fichiers d’image via le CDN. Cela affectera toutes les pièces jointes, les balises HTML %s et les attributs CSS %s."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Inclure les images"

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr "URL de CDN à utiliser. Par exemple : %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/settings.tpl.php:136
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "L’URL du site à servir via le CDN. À partir de %1$s. Par exemple : %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "URL originales"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "Réglage du CDN"

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:188
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:239 src/admin-display.cls.php:800
#: src/admin-display.cls.php:833 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:181
#: tpl/cache/settings_inc.object.tpl.php:210
#: tpl/cache/settings-cache.tpl.php:19 tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "Inactif"

#: src/admin-display.cls.php:238 src/admin-display.cls.php:799
#: src/admin-display.cls.php:834 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:156
#: tpl/page_optm/settings_css.tpl.php:149
#: tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:167 tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "Actif"

#: src/purge.cls.php:301
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Serveur web LiteSpeed notifié de purger les entrées CSS/JS."

#: tpl/page_optm/settings_html.tpl.php:36
msgid "Minify HTML content."
msgstr "Minifier le contenu HTML."

#: src/lang.cls.php:116
msgid "HTML Minify"
msgstr "Minifier  le HTML"

#: src/lang.cls.php:115
msgid "CSS/JS Cache TTL"
msgstr "Cache TTL CSS/JS"

#: src/lang.cls.php:131
msgid "JS Excludes"
msgstr "JS exclu"

#: tpl/page_optm/settings_js.tpl.php:61
msgid "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pré-envoyer des fichiers JS internes au navigateur avant qu’ils ne soient demandés. (nécessite le protocole HTTP/2)"

#: src/lang.cls.php:114
msgid "JS HTTP/2 Push"
msgstr "Pousser JS HTTP/2"

#: src/lang.cls.php:112 src/data.upgrade.func.php:42
msgid "JS Combine"
msgstr "Combiner JS"

#: src/lang.cls.php:111
msgid "JS Minify"
msgstr "Minifier JS"

#: src/lang.cls.php:130
msgid "CSS Excludes"
msgstr "CSS exclu"

#: tpl/page_optm/settings_css.tpl.php:128
msgid "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pré-envoyer des fichiers CSS internes au navigateur avant qu’ils ne soient demandés. (nécessite le protocole HTTP/2)"

#: src/lang.cls.php:110
msgid "CSS HTTP/2 Push"
msgstr "Pousser CSS HTTP/2"

#: src/lang.cls.php:105
msgid "CSS Combine"
msgstr "Combiner CSS"

#: src/lang.cls.php:104
msgid "CSS Minify"
msgstr "Minifier CSS"

#: tpl/page_optm/entry.tpl.php:52
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Veuillez effectuer un test approfondi lorsque vous activez une option dans cette liste. Après avoir modifié les réglages Minifier/Combiner, veuillez faire une purge totale."

#: tpl/toolbox/purge.tpl.php:46
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Cela purgera uniquement toutes les entrées CSS/JS minifiées/combinées."

#: tpl/page_optm/settings_html.tpl.php:7
msgid "Optimization Settings"
msgstr "Réglages d’optimisation"

#: tpl/toolbox/purge.tpl.php:34
msgid "Purge error pages, including 500 pages"
msgstr "Purger les pages d’erreur, y compris les pages 500"

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge 500 Error"
msgstr "Purger les erreurs 500"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge error pages, including %s pages"
msgstr "Purger les pages d’erreur, y compris les pages %s"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purger les erreurs %s"

#: tpl/db_optm/manage.tpl.php:78
msgid "Database Optimizer"
msgstr "Optimiseur de base de données"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimiser toutes les tables dans votre base de données"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimiser les tables"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Nettoyer toutes les options de transient"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Tous les transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Nettoyer les options de transient expirées"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Transients expirés"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Nettoyer tous les rétroliens et pings"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Rétroliens/pings"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Nettoyer tous les commentaires mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Commentaires mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Nettoyer tous les commentaires indésirables"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Commentaires indésirables"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Nettoyer tous les articles et pages mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Articles mis à la corbeille"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Nettoyer tous les brouillons auto-enregistrés"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Brouillons auto"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Nettoyer toutes les révisions d’article"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Révisions d’article"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Tout nettoyer"

#: src/db-optm.cls.php:197
msgid "Optimized all tables."
msgstr "Optimisé toutes les tables."

#: src/db-optm.cls.php:187
msgid "Clean all transients successfully."
msgstr "Tous les transients ont bien été nettoyés."

#: src/db-optm.cls.php:183
msgid "Clean expired transients successfully."
msgstr "Les transients expirés ont bien été nettoyés."

#: src/db-optm.cls.php:179
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Les rétroliens et pings ont bien été nettoyés."

#: src/db-optm.cls.php:175
msgid "Clean trashed comments successfully."
msgstr "Les commentaires mis à la corbeille ont bien été nettoyés."

#: src/db-optm.cls.php:171
msgid "Clean spam comments successfully."
msgstr "Les commentaires indésirables ont bien été nettoyés."

#: src/db-optm.cls.php:167
msgid "Clean trashed posts and pages successfully."
msgstr "Articles et pages mis à la corbeille bien nettoyés."

#: src/db-optm.cls.php:163
msgid "Clean auto drafts successfully."
msgstr "Les brouillons auto ont bien été nettoyés."

#: src/db-optm.cls.php:159
msgid "Clean post revisions successfully."
msgstr "Les révisions d’article ont bien été nettoyées."

#: src/db-optm.cls.php:132
msgid "Clean all successfully."
msgstr "Tout a bien été nettoyé."

#: src/lang.cls.php:60
msgid "Default Private Cache TTL"
msgstr "TTL cache privé par défaut"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si votre site contient du contenu public que certains rôles utilisateur peuvent voir, mais que d’autres rôles ne peuvent pas, vous pouvez spécifier un groupe variable pour ces rôles utilisateur. Par exemple, la spécification d’un groupe variable par l’administrateur permet d’avoir une page distincte en cache publique adaptée aux administrateurs (avec des liens \"modifier\", etc.), tandis que tous les autres rôles utilisateur voient la page publique par défaut."

#: src/lang.cls.php:179
msgid "Vary Group"
msgstr "Varier le groupe"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Mettre en cache le bloc ESI de formulaire de commentaires intégré."

#: src/lang.cls.php:177
msgid "Cache Comment Form"
msgstr "Mettre en cache le formulaire de commentaire"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr "Mettre en cache le bloc ESI de barre d’administration intégré."

#: src/lang.cls.php:176
msgid "Cache Admin Bar"
msgstr "Mettre en cache la barre d’administration"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Activer la mise en cache des pages publiques pour les utilisateurs connectés et servir la barre d’administration et le formulaire de commentaire via des blocs ESI. Ces deux blocs ne seront pas mis en cache, sauf s’ils sont activés ci-dessous."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI vous permet de désigner des parties de votre page dynamique comme des fragments séparés qui sont ensuite assemblés pour créer la page entière. En d’autres termes, ESI vous permet de « percer des trous » dans une page, puis de remplir ces trous avec un contenu qui peut être mis en cache en privé, mis en cache publiquement avec son propre TTL ou non mis en cache du tout."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Avec ESI (Edge Side Includes), les pages peuvent être envoyées à partir du cache pour les utilisateurs connectés."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privé"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Publique"

#: tpl/cache/settings-purge.tpl.php:7
#: tpl/cache/network_settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purger les réglages"

#: src/lang.cls.php:73
msgid "Cache PHP Resources"
msgstr "Ressources PHP de cache"

#: src/lang.cls.php:74 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "Cache Mobile"
msgstr "Cache mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Le niveau avancé enregistrera plus de détails."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basique"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La charge moyenne maximale du serveur est autorisée lors de l’exploration. Le nombre de threads de robot explorateur en cours d’utilisation sera activement réduit jusqu'à ce que la charge moyenne du serveur tombe sous cette limite. Si cela ne peut pas être réalisé avec un seul thread, l’exécution du robot explorateur actuel sera terminée."

#: src/lang.cls.php:71
msgid "Cache Login Page"
msgstr "Mettre en cache la page de connexion"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Mettre en cache les requêtes effectuées par les appels de l’API REST WordPress."

#: src/lang.cls.php:70
msgid "Cache REST API"
msgstr "Mettre en cache l’API REST."

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Mettre en cache privé les commentateurs qui ont des commentaires en attente. La désactivation de cette option servira les pages ne pouvant pas être mises en cache aux commentateurs. (LSWS %s nécessaire)"

#: src/lang.cls.php:69
msgid "Cache Commenters"
msgstr "Mettre en cache les commentateurs"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Mettre en cache privé les pages interface utilisateur pour les utilisateurs connectés. (LSWS %s nécessaire)"

#: src/lang.cls.php:68
msgid "Cache Logged-in Users"
msgstr "Mettre en cache les utilisateurs connectés"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Mettre en cache les réglages de contrôle"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Exclure"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:135
msgid "Purge"
msgstr "Purger"

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Règle de cache inattendue %2$s trouvée dans le fichier %1$s. Cette règle peut amener les visiteurs à voir d’anciennes versions de pages en raison de la mise en cache des pages HTML par le navigateur. Si vous êtes sûr que des pages HTML ne sont pas mises en cache par le navigateur, ce message peut être ignoré.(<a %3$s>En apprendre plus</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "L’heure actuelle du serveur est %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Précisez l’heure pour purger la liste \"%s\"."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "À la fois %1$s et %2$s sont acceptables."

#: src/lang.cls.php:96 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Heure de purge planifiée"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "Les URLs ci-dessus (une par ligne) seront automatiquement purgées à l’heure fixée dans l’option \"%s\"."

#: src/lang.cls.php:95 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Purge planifiée d’URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Raccourcir les chaînes de requêtes dans le journal de débogage pour améliorer la lisibilité."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Valeurs de cookie de demande de journal."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Battement ce cœur"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "Mo"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Limite de taille de fichier journal"

#: src/htaccess.cls.php:843
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Veuillez ajouter/remplacer les codes suivants dansle début de %1$s:</p> %2$s"

#: src/error.cls.php:92 src/error.cls.php:116
msgid "%s file not writable."
msgstr "Le fichier %s n’est pas inscriptible."

#: src/error.cls.php:112
msgid "%s file not readable."
msgstr "Le fichier %s n’est pas lisible."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Réduire les chaînes de requêtes"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Activer les cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "Réglages ESI"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 indique de ne pas mettre en cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valeur recommandée : 28800 secondes (8 heures)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget de cache TTL :"

#: src/lang.cls.php:175 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Activer ESI"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."
msgstr "Le robot d'exploration peut utiliser votre plan de site Google XML au lieu du sien. Saisissez l’URL complète de votre plan de site ici."

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Voyez <a %s>Introduction pour l’activation du robot explorateur</a> pour les informations détaillées."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Plan de site personnalisé"

#: tpl/toolbox/purge.tpl.php:237
msgid "Purge pages by relative or full URL."
msgstr "Purger les pages par URL relative ou complète."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La fonctionnalité de robot explorateur n’est pas activée sur le serveur LiteSpeed. Veuillez consulter votre administrateur serveur ou votre hébergeur."

#: tpl/cdn/manage.tpl.php:21 tpl/page_optm/entry.tpl.php:34
#: tpl/page_optm/settings_localization.tpl.php:11
#: tpl/page_optm/settings_css.tpl.php:143 tpl/cache/settings-esi.tpl.php:35
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:19
msgid "WARNING"
msgstr "Attention"

#: tpl/dash/dashboard.tpl.php:497 tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Dernier crawlé :</b> %s élément(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "Le prochain crawl complet de plan de site débutera le"

#: src/file.cls.php:176
msgid "Failed to write to %s."
msgstr "Impossible d'écrire sur %s."

#: src/file.cls.php:157
msgid "Folder is not writable: %s."
msgstr "Le dossier n’est pas inscriptible : %s."

#: src/file.cls.php:149
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Impossible de créer un dossier : %1$s. Erreur : %2$s"

#: src/file.cls.php:140
msgid "Folder does not exist: %s"
msgstr "Le dossier n’existe pas : %s"

#: src/core.cls.php:262
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Serveur LiteSpeed notifié pour tout purger."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Veuillez visiter la page <a %s>d’informations</a> sur la façon de tester le cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Autorise les IPs listées (une par ligne) à réaliser certaines actions depuis leurs navigateurs."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Limite de chargement du serveur"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Spécifiez le nombre de threads à utiliser lors du crawl."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Spécifiez combien de temps en secondes avant que le crawler initie un nouveau crawl entier du plan de site."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Intervalle de crawl"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Intervalle entre chaque exécution"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Spécifiez le temps en secondes pour la durée de l’intervalle de crawl."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Spécifiez le temps en microsecondes pour le délai entre requêtes durant une exploration."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microsecondes"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Ensuite, un autre WordPress est installé (non multisite) sur %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Réglages de cache de réseau LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:172
msgid "Select below for \"Purge by\" options."
msgstr "Sélectionnez ci-dessous pour les options « purger par »."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "CDN LiteSpeed Cache"

#: tpl/crawler/summary.tpl.php:217
msgid "No crawler meta file generated yet"
msgstr "Encore aucun fichier méta de crawler généré"

#: tpl/crawler/summary.tpl.php:199
msgid "Show crawler status"
msgstr "Afficher l’état du crawler"

#: tpl/crawler/summary.tpl.php:192
msgid "Watch Crawler Status"
msgstr "Voir l’état de crawler"

#: tpl/crawler/summary.tpl.php:187
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Veuillez voir <a %s>Connexion de WP-Cron au planificateur de tâches du système</a> pour apprendre comment créer le système de tâche cron."

#: tpl/crawler/summary.tpl.php:184
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La fréquence d’exécution est définie par le réglage d’intervalle entre exécutions."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Exécution manuelle"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Réinitialiser la position"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Fréquence d’exécution"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Nom du cron"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Cron du crawler"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d heure"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d heures"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Généré dans %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "Crawler LiteSpeed Cache"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Fils de discussion"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Durée d’exécution"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Délai"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "S’il y a des questions, l’équipe est toujours heureuse d’y répondre sur le<a %s>forum de support</a>."

#: src/admin-display.cls.php:135 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:536
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Notifié le serveur web LiteSpeed de purger toutes les pages."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Toutes les pages avec le widget des articles récents"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Cela purgera uniquement les pages"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purger les pages"

#: thirdparty/woocommerce.content.tpl.php:63
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "Par exemple, si la page d’accueil du site est située %1$s, la page de la boutique peut être située %2$s."

#: tpl/cdn/settings.tpl.php:192
msgid "Email Address"
msgstr "Adresse de messagerie"

#: tpl/general/settings.tpl.php:101
msgid "Warning"
msgstr "Avertissement"

#: src/gui.cls.php:728
msgid "Install Now"
msgstr "Installer maintenant"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purgé l’url !"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purgé le blog !"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Tout purgé !"

#: src/purge.cls.php:555
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notifié LiteSpeed ​​Web Server de purger les pages d'erreur."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si vous utilisez OpenLiteSpeed, le serveur doit être redémarré une fois pour que les modifications prennent effet."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Si non, veuillez vérifier le réglage dans l’<a href=\"%1$s\">onglet Avancé</a> ."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si le cookie de connexion a été modifié récemment dans les réglages, veuillez vous déconnecter et vous reconnecter."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Cependant, il n’y a aucun moyen de connaître toutes les personnalisations possibles qui ont été mises en œuvre."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "L’extension LiteSpeed ​​Cache est utilisée pour mettre les pages en cache - un moyen simple d’améliorer les performances du site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "Le réglage administrateur réseau peut être remplacé ici."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Spécifiez combien de temps, en secondes, les pages publiques sont mises en cache."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Spécifiez combien de temps, en secondes, les pages privées sont mises en cache."

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Please consult the host/server admin before making any changes."
msgstr "Veuillez consulter l’administrateur d’hébergement/serveur avant d’effectuer des modifications."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Il est <b>fortement</b> recommandé que la compatibilité avec d’autres extensions de d’abord tester sur un seul/quelques sites."

#: tpl/toolbox/purge.tpl.php:228
msgid "Purge pages by post ID."
msgstr "Purger les pages par ID d’article."

#: tpl/toolbox/purge.tpl.php:40
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purger les entrées LiteSpeed Cache créées par cette extension"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Cela purgera uniquement la page d’accueil"

#: tpl/toolbox/purge.tpl.php:232
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purger les pages par nom d’étiquette - par ex.,%2$s devrait être utilisé pour l’URL %1$s."

#: tpl/toolbox/purge.tpl.php:238
msgid "e.g. Use %s or %s."
msgstr "par ex. utilisez %s ou %s."

#: tpl/toolbox/purge.tpl.php:223
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purger les pages par nom de catégorie - par exemple,%2$s devrait être utilisé pour l’URL%1$s."

#: tpl/toolbox/purge.tpl.php:126
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si seul le site WordPress doit être purgé, utilisez « Tout purger »."

#: src/core.cls.php:257
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Serveur LiteSpeed notifié pour tout purger."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Utiliser les configurations du site principal"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "Cela désactivera la page des réglages sur tous les sous-sites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Cochez cette option pour utiliser les configurations du site principal sur tous les sous-sites."

#: src/admin-display.cls.php:674
msgid "Save Changes"
msgstr "Enregistrer les modifications"

#: tpl/inc/check_if_network_disable_all.php:22
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Les options suivantes sont sélectionnées, mais ne sont pas modifiables dans la page des réglages."

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The network admin selected use primary site configs for all subsites."
msgstr "L’administrateur réseau sélectionné utilise les configurations du site principal pour tous les sous-sites."

#: tpl/toolbox/purge.tpl.php:118
msgid "Empty Entire Cache"
msgstr "Vider tout le cache"

#: tpl/toolbox/purge.tpl.php:120
msgid "This action should only be used if things are cached incorrectly."
msgstr "Cette action doit être utilisée uniquement si les éléments sont incorrectement mis en cache."

#: tpl/toolbox/purge.tpl.php:119
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Efface toutes les entrées du cache liées à ce site, <i> y compris les autres applications web </i>."

#: tpl/toolbox/purge.tpl.php:125
msgid "This may cause heavy load on the server."
msgstr "Cela peut entraîner une charge importante sur le serveur."

#: tpl/toolbox/purge.tpl.php:124
msgid "This will clear EVERYTHING inside the cache."
msgstr "Cela effacera tout dans le cache."

#: src/gui.cls.php:562
msgid "LiteSpeed Cache Purge All"
msgstr "Cache LiteSpeed Tout purger"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si vous préférez ne pas avoir des affichages à la vitesse de la lumière, vous pouvez désactiver cette extension."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Créez un article, assurez-vous que la page d’accueil est exacte."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visitez le site en déconnecté."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Les exemples de cas d’essai incluent :"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Pour cette raison, veuillez tester le site pour vous assurer que tout fonctionne encore correctement."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Ce message indique que l’extension a été installée par l’administrateur du serveur."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "L’extension LiteSpeed Cache est installée !"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Journal de débogage"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Uniquement l’IP de l’admin"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "L’option IP d’admin ne génère que des messages de journalisation sur les requêtes provenant des IPs d'admin."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Précisez combien de temps, en secondes, les appels REST sont mis en cache."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "Le rapport d’environnement contient des informations détaillées sur la configuration WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "Le serveur déterminera si l’utilisateur est connecté grâce à l'existence de ce cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
msgid "Note"
msgstr "Remarque"

#: thirdparty/woocommerce.content.tpl.php:20
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Après vérification que le cache fonctionne en général, veuillez tester le panier."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Lorsque activé, le cache sera vidé automatiquement lors d’une mise à jour de tout extension, thème ou du cœur WordPress."

#: src/lang.cls.php:93
msgid "Purge All On Upgrade"
msgstr "Tout purger lors d'une mise à niveau"

#: tpl/toolbox/edit_htaccess.tpl.php:92
msgid "File editing is disabled in configuration."
msgstr "L’édition de fichiers est désactivée dans votre configuration."

#: thirdparty/woocommerce.content.tpl.php:57
msgid "Use Front Page TTL for the Shop Page"
msgstr "Utilisez la page d’accueil TTL pour la page boutique"

#: thirdparty/woocommerce.content.tpl.php:28
msgid "Product Update Interval"
msgstr "Intervalle de mise à jour de produit"

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Cocher cette option forcera la page boutique à utiliser les réglages de page d’accueil TTL."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Détermine comment les modifications dans les quantités de produit et états de stock de produit affecte les pages de produit et leurs pages de catégorie associés."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Toujours vider les produits et les catégories lors d’un changement de quantité disponible ou de statut de stock."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Ne pas purger les catégories lors de modification de quantité ou d’état de stock."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Purge product only when the stock status changes."
msgstr "Purger le produit uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:34
msgid "Purge product and categories only when the stock status changes."
msgstr "Purger les produits et catégories uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge categories only when stock status changes."
msgstr "Purger les catégories uniquement quand l’état du stock change."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purger le produit au changement de la quantité ou de l’état du stock."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:42
msgid "Htaccess did not match configuration option."
msgstr "Le htaccess ne correspondait pas à l’option de configuration."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si vous configurez une valeur de moins de 30, les flux RSS ne seront pas mis en cache."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Spécifiez une durée en secondes, pour la mise en cache des flux RSS."

#: src/lang.cls.php:62
msgid "Default Feed TTL"
msgstr "Flux TTL par défaut"

#: src/error.cls.php:120
msgid "Failed to get %s file contents."
msgstr "Échec de récupération du contenu du fichier %s."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "La mise en cache de ces pages peut améliorer les performances du serveur en évitant les appels PHP inutiles."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Certains thèmes et extensions ajoutent des ressources par requête PHP."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Mettre en cache cette ressource peut améliorer les performances du serveur en évitant les appels PHP inutiles."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico est appelé sur la majorité des pages."

#: src/lang.cls.php:72
msgid "Cache favicon.ico"
msgstr "Mettre en cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Désactiver cette option aura un effet négatif sur la performance."

#: src/htaccess.cls.php:910
msgid "File Saved."
msgstr "Fichier sauvegardé."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de connexion non valide. Caractères non valides trouvés."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "Avertissement : Les cookies de connexion du fichier .htaccess et de la base de données ne correspondent pas."

#: src/error.cls.php:104
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de connexion non valide. Veuillez vérifier le fichier %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "Le cache doit faire la distinction de qui est connecté dans quel site WordPress afin de mettre en cache correctement."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Il y a une installation de WordPress pour %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Exemple d’utilisation :"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "Le cookie réglé ici sera utilisé pour cette installation WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si chaque application web utilise le même cookie, le serveur pourrait ne pas savoir si l’utilisateur est connecté."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Ce réglage est utile pour ceux qui ont plusieurs applications web avec le même nom de domaine."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "Le cookie de connexion par défaut est %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "Doit être unique d’autres applications web."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Aucun espace et sensible à la casse."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "Syntaxe : alphanumérique et \"_\"."

#: src/lang.cls.php:185
msgid "Login Cookie"
msgstr "Cookie de connexion"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "Plus d’informations sur les commandes disponibles peuvent être trouvées ici."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Ces réglages sont uniquement destinés à des utilisateurs avancés."

#: tpl/toolbox/edit_htaccess.tpl.php:98
msgid "Current %s Contents"
msgstr "Contenus actuel de %s"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Avancé"

#: tpl/cache/settings-advanced.tpl.php:7
#: tpl/cache/network_settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Réglages avancés"

#: tpl/toolbox/purge.tpl.php:251
msgid "Purge List"
msgstr "Purger la liste"

#: tpl/toolbox/purge.tpl.php:170
msgid "Purge By..."
msgstr "Purger par…"

#: tpl/crawler/map.tpl.php:43 tpl/crawler/blacklist.tpl.php:31
#: tpl/toolbox/purge.tpl.php:217
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:211
msgid "Tag"
msgstr "Étiquette"

#: tpl/toolbox/purge.tpl.php:205
msgid "Post ID"
msgstr "ID de l’article"

#: tpl/toolbox/purge.tpl.php:199
msgid "Category"
msgstr "Catégorie"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "Remarque : le cookie de connection de base de données ne correspond pas à votre cookie de connexion."

#: src/purge.cls.php:640
msgid "Purge url %s"
msgstr "Purger l’URL %s"

#: src/purge.cls.php:609
msgid "Purge tag %s"
msgstr "Purger l'étiquette %s"

#: src/purge.cls.php:582
msgid "Purge category %s"
msgstr "Purger la catégorie %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Lorsque vous désactivez le cache, toutes les entrées mises en cache pour ce site seront purgées."

#: tpl/page_optm/entry.tpl.php:41 tpl/page_optm/entry.tpl.php:51
#: tpl/cache/settings-cache.tpl.php:27
msgid "NOTICE"
msgstr "Notification"

#: src/doc.cls.php:91
msgid "This setting will edit the .htaccess file."
msgstr "Ce réglage modifiera le fichier .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:100
msgid "DO NOT EDIT ANYTHING WITHIN %s"
msgstr "Ne rien modifier à l’intérieur de %s"

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid "Any changes made to the .htaccess file may break the site."
msgstr "Toutes les modifications apportées au fichier .htaccess peuvent briser le site."

#: tpl/toolbox/edit_htaccess.tpl.php:39
msgid "LiteSpeed Cache Edit .htaccess"
msgstr "Modifier le .htaccess LiteSpeed Cache"

#: src/error.cls.php:108
msgid "Failed to back up %s file, aborted changes."
msgstr "Échec de sauvegarde du fichier %s, modifications interrompues."

#: src/lang.cls.php:183
msgid "Do Not Cache Cookies"
msgstr "Ne pas mettre en cache les cookies"

#: src/lang.cls.php:184
msgid "Do Not Cache User Agents"
msgstr "Ne pas mettre en cache les agents utilisateur"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "C’est pour tester la compatibilité avant d’activer le cache pour tous les sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Activer le cache sur le réseau"

#: thirdparty/woocommerce.content.tpl.php:19
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/report.tpl.php:29
#: tpl/toolbox/heartbeat.tpl.php:14
msgid "NOTICE:"
msgstr "Remarque :"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Les autres cases à cocher seront ignorées."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Sélectionnez \"Tous\" s'il y a des widgets dynamiques liés aux articles sur les pages autres que la page d’accueil."

#: src/lang.cls.php:75 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "List of Mobile User Agents"
msgstr "Liste des agents utilisateurs mobile"

#: src/file.cls.php:164 src/file.cls.php:169
msgid "File %s is not writable."
msgstr "Le fichier %s n’est pas inscriptible."

#: tpl/toolbox/entry.tpl.php:14
msgid "Edit .htaccess"
msgstr "Modifier .htaccess"

#: tpl/page_optm/settings_js.tpl.php:7 tpl/page_optm/entry.tpl.php:7
msgid "JS Settings"
msgstr "Réglages JS"

#: src/gui.cls.php:578 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:188
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Gérer"

#: src/lang.cls.php:61
msgid "Default Front Page TTL"
msgstr "TTL de page d’accueil par défaut"

#: src/purge.cls.php:523
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "LiteSpeed Web Server a été notifié de purger la page d’accueil."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purger la page d’accueil"

#: tpl/page_optm/settings_localization.tpl.php:124
#: tpl/toolbox/beta_test.tpl.php:27
msgid "Example"
msgstr "Exemple"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "All tags are cached by default."
msgstr "Toutes les étiquettes sont mises en cache par défaut."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "All categories are cached by default."
msgstr "Toutes les catégories sont mises en cache par défaut."

#: src/admin-display.cls.php:1102
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Pour avoir une correspondance exacte, ajoutez %s  à la fin de l’URL."

#: src/admin-display.cls.php:1098
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Ces URLs seront comparées à la variable serveur REQUEST_URI."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Sélectionnez uniquement les types d'archives qui sont actuellement utilisées, les autres peuvent être laissées décochées."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Remarques"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Utiliser le réglage admin du réseau"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Désactiver"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activer ici LiteSpeed Cache pour WordPress active le cache pour le réseau."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "D&eacute;sactiv&eacute;"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Activé(e)"

#: src/lang.cls.php:103
msgid "Do Not Cache Roles"
msgstr "Ne pas mettre les rôles en cache"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "Technologies LiteSpeed"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Sorties du journal de débogage WordPress."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Niveau de débogage"

#: tpl/general/settings.tpl.php:83 tpl/general/settings.tpl.php:94
#: tpl/general/settings.tpl.php:106 tpl/general/settings.tpl.php:150
msgid "Notice"
msgstr "Notification"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Archive de terme (inclure catégorie, étiquette et taxinomie)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Archive quotidienne"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Archive mensuelle"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Archive annuelle"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Archive de type de contenu"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Archive d’auteur"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Page d’accueil"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Page de garde"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Toutes les pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Sélectionnez quelles pages seront purgées automatiquement lorsque des articles sont publiés/mis à jour."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Règles de purge automatique pour les publication/mise à jour"

#: src/lang.cls.php:59
msgid "Default Public Cache TTL"
msgstr "Durée de vie par défaut du cache publique"

#: src/admin-display.cls.php:917 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/esi_widget_edit.php:70 tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89
msgid "seconds"
msgstr "secondes"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "IP d’admin"

#: src/admin-display.cls.php:123
msgid "General"
msgstr "Général"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "Réglages LiteSpeed Cache"

#: src/purge.cls.php:212
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Serveur web LiteSpeed notifié de purger toutes les entrées LSCache."

#: src/gui.cls.php:463 src/gui.cls.php:471 src/gui.cls.php:479
#: src/gui.cls.php:488 src/gui.cls.php:498 src/gui.cls.php:508
#: src/gui.cls.php:518 src/gui.cls.php:528 src/gui.cls.php:538
#: src/gui.cls.php:604 src/gui.cls.php:612 src/gui.cls.php:620
#: src/gui.cls.php:629 src/gui.cls.php:639 src/gui.cls.php:649
#: src/gui.cls.php:659 src/gui.cls.php:669 src/gui.cls.php:679
#: src/gui.cls.php:689 tpl/toolbox/purge.tpl.php:39
#: tpl/toolbox/purge.tpl.php:45 tpl/toolbox/purge.tpl.php:54
#: tpl/toolbox/purge.tpl.php:63 tpl/toolbox/purge.tpl.php:72
#: tpl/toolbox/purge.tpl.php:81 tpl/toolbox/purge.tpl.php:90
#: tpl/toolbox/purge.tpl.php:99 tpl/toolbox/purge.tpl.php:108
msgid "Purge All"
msgstr "Tout purger"

#: src/admin-display.cls.php:281 src/gui.cls.php:586
msgid "Settings"
msgstr "Réglages"# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in Spanish (Mexico)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-02-02 15:01:11+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: es_MX\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: src/lang.cls.php:127
msgid "Localization Files"
msgstr "Archivos de idiomas"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "¡Purgado!"

#: tpl/cdn/settings.tpl.php:48
msgid "Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s."
msgstr "%1$s este ajuste si usas una red de entrega de contenido (CDN). NOTA: QUIC.cloud CDN y Cloudflare no usan la asignación CDN. Si solo usas QUIC.cloud o Cloudflare, deja este ajuste en %2$s."

#: tpl/page_optm/settings_localization.tpl.php:123
msgid "Non-`.js` file extensions will be ignored."
msgstr "Serán ignorados los archivos que no tengan la extensión `.js`."

#: tpl/page_optm/settings_localization.tpl.php:116
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Los recursos listados aquí se copiarán y reemplazarán con URL locales."

#: tpl/page_optm/entry.tpl.php:45
msgid "To clear the outdated CSS/JS optimization data, please go to %s menu."
msgstr "Para vaciar los datos obsoletos de optimización CSS/JS, por favor, ve al menú %s."

#: tpl/page_optm/entry.tpl.php:43
msgid "You are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not."
msgstr "Ahora tienes %s registros en la tabla de optimización CSS/JS. Puede que tengas que comprobar si tienes o no un problema aleatorio de cadenas."

#: tpl/toolbox/beta_test.tpl.php:33
msgid "Use latest GitHub Master commit"
msgstr "Usar el último commit maestro de GitHub"

#: tpl/toolbox/beta_test.tpl.php:31
msgid "Use latest GitHub Dev commit"
msgstr "Usar el último commit de desarrollo de GitHub"

#: src/crawler-map.cls.php:319
msgid "No valid sitemap parsed for crawler."
msgstr "No se ha analizado ningún mapa del sitio válido para el rastreador."

#: src/lang.cls.php:106
msgid "CSS Combine External and Inline"
msgstr "Combinación de CSS externo e integrado"

#: tpl/page_optm/settings_css.tpl.php:55
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS."

#: tpl/page_optm/settings_css.tpl.php:28
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:93
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La lista predefinida también se combinará con los ajustes anteriores"

#: tpl/page_optm/settings_css.tpl.php:69
msgid "This will drop the unused CSS on each page."
msgstr "Esto eliminará el CSS no usado en cada página."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localización"

#: tpl/page_optm/entry.tpl.php:8
msgid "Optimization"
msgstr "Optimización"

#: tpl/page_optm/settings_js.tpl.php:48
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combina todos los archivos JS locales en un único archivo."

#: tpl/page_optm/settings_tuning.tpl.php:86
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Los archivos JS listados o el código JS integrado no serán diferidos."

#: tpl/general/settings.tpl.php:95
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación."

#: src/data.upgrade.func.php:43
msgid "Click here to settings"
msgstr "Haz clic aquí para los ajustes"

#: src/data.upgrade.func.php:42
msgid "JS Defer"
msgstr "Diferir JS"

#: src/data.upgrade.func.php:42
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el layout de tu sitio es correcto y que no tienes errores de JS."

#: src/lang.cls.php:113
msgid "JS Combine External and Inline"
msgstr "Combinación de JS externo e integrado"

#: src/admin-display.cls.php:446
msgid "Dismiss"
msgstr "Descartar"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "El último archivo de datos es"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La lista se fusionará con los nonces predefinidos en tu archivo de datos local."

#: tpl/page_optm/settings_css.tpl.php:41
msgid "Combine CSS files and inline CSS code."
msgstr "Combina archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Los archivos CSS de la lista o el código JS integrado no se minimizarán o combinarán."

#: src/css.cls.php:552 src/placeholder.cls.php:542
msgid "Queue cleared successfully."
msgstr "Cola despejada correctamente."

#: src/admin-display.cls.php:903
msgid "This setting is overwritten by the Network setting"
msgstr "Esta configuración se sobrescribe con la configuración de red"

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr "Excluye LQIP"

#: tpl/page_optm/settings_media_exc.tpl.php:121
msgid "These images will not generate LQIP."
msgstr "Estas imágenes no generarán LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "¿Estás seguro de que deseas restablecer todas las configuraciones a la configuración predeterminada?"

#: tpl/page_optm/settings_html.tpl.php:143
msgid "This option will remove all %s tags from HTML."
msgstr "Esta opción eliminará todas las etiquetas %s de HTML."

#: tpl/general/settings.tpl.php:117
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "¿Estás seguro de que deseas borrar todos los nodos de la nube?"

#: src/lang.cls.php:138
msgid "Remove Noscript Tag"
msgstr "Quitar etiqueta Noscript"

#: src/error.cls.php:80
msgid "The site is not registered on QUIC.cloud."
msgstr "El sitio no está registrado en QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Haz clic aquí para cambiarlo."

#: src/error.cls.php:48 src/cloud.cls.php:655
msgid "Click here to set."
msgstr "Haz clic aquí para configurarlo."

#: src/cloud.cls.php:654
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva."

#: src/purge.cls.php:280
msgid "Notified LiteSpeed Web Server to purge localized resource entries."
msgstr "Solicitado el vaciado de los registros de recursos localizados al servidor web LiteSpeed."

#: src/lang.cls.php:126
msgid "Localize Resources"
msgstr "Recursos localizados"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Configurar cabeceras personalizadas"

#: tpl/toolbox/purge.tpl.php:82
msgid "This will delete all localized resources"
msgstr "Esto borrará todos los recursos localizados"

#: src/gui.cls.php:518 src/gui.cls.php:669 tpl/toolbox/purge.tpl.php:81
msgid "Localized Resources"
msgstr "Recursos localizados"

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. "

#: tpl/page_optm/settings_localization.tpl.php:117
msgid "HTTPS sources only."
msgstr "Solo orígenes HTTPS"

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localizar recursos externos."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Ajustes de localización"

#: tpl/page_optm/settings_css.tpl.php:115
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Enumera el selector CSS que tu estilo siempre debe estar contenido en UCSS."

#: tpl/page_optm/settings_css.tpl.php:82
msgid "Generate unique CSS in the background via a cron-based queue."
msgstr "Genera CSS único en segundo plano a través de una cola basada en cron."

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Usa el servicio en línea QUIC.cloud para generar un CSS único."

#: src/lang.cls.php:109
msgid "UCSS Whitelist Selector"
msgstr "Selector de lista blanca UCSS"

#: src/lang.cls.php:108
msgid "Generate UCSS in Background"
msgstr "Generar UCSS en segundo plano"

#: src/lang.cls.php:107
msgid "Generate UCSS"
msgstr "Generar UCSS"

#: tpl/toolbox/purge.tpl.php:109
msgid "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"
msgstr "Vacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS y LQIP"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Press the %s button to use the most recent GitHub commit."
msgstr "Presiona el botón %s para usar la confirmación más reciente de GitHub."

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "Reporte de LiteSpeed"

#: tpl/img_optm/summary.tpl.php:216
msgid "Image Thumbnail Group Sizes"
msgstr "Tamaños de grupo de imágenes en miniatura"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorar ciertas cadenas de consulta al almacenar en caché. (Se requiere LSWS %s)"

#: tpl/page_optm/settings_js.tpl.php:89
msgid "%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred."
msgstr "Se recomienda %s, aunque causaría la mayoría de los problemas para los scripts que se colocan en línea para evitar diferirlos."

#: tpl/page_optm/settings_js.tpl.php:88
msgid "Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled."
msgstr "Cargar JS integrado después de que el DOM esté completamente cargado puede aumentar la compatibilidad de JS y reducir el error de JS cuando se habilitan otras funciones de optimización de JS."

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "En el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien."

#: src/lang.cls.php:94
msgid "Serve Stale"
msgstr "Servir contenido rancio"

#: src/admin-display.cls.php:900
msgid "This setting is overwritten by the primary site setting"
msgstr "Esta ajuste es sobrescrito por los ajuste del sitio primario"

#: src/img-optm.cls.php:901
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificado"

#: src/img-optm.cls.php:884
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Una o más imágenes optimizadas han caducado y han sido borradas."

#: src/error.cls.php:60
msgid "You have too many notified images, please pull down notified images first."
msgstr "Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas."

#: src/error.cls.php:56
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos."

#: src/img-optm.cls.php:962
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Leer la documentación de LiteSpeed"

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "La cola aún no ha sido recuperada. Información de la cola: %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Sitemap Timeout"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Especifica el tiempo límite de procesamiento del mapa del sitio."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos Gravatar."

#: tpl/page_optm/settings_html.tpl.php:21
msgid "Specify how long, in seconds, CSS/JS files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos CSS/JS."

#: tpl/general/settings.tpl.php:113
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Una clave de dominio es necesario para usar los servicios en linea de QUIC.cloud."

#: src/img-optm.cls.php:495
msgid "Cleared %1$s invalid images."
msgstr "Vaciar %1$s imágenes no validas."

#: src/img-optm.cls.php:457
msgid "Bypassed %1$s duplicated images."
msgstr "Saltadas %1$s imágenes duplicadas."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Solicitar clave de dominio"

#: tpl/general/entry.tpl.php:19
msgid "LiteSpeed Cache General Settings"
msgstr "Ajustes generales de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:100
msgid "This will delete all cached Gravatar files"
msgstr "Esto borrará todos los archivos Gravatar almacenados en caché"

#: tpl/toolbox/edit_htaccess.tpl.php:107
msgid "Save .htaccess"
msgstr "Guardar .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:81
msgid "Specify the backend .htaccess path."
msgstr "Especifica la ruta del escritorio en el .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:67 tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Leave empty to auto detect"
msgstr "Dejar vacío para detectar automáticamente"

#: tpl/toolbox/edit_htaccess.tpl.php:66
msgid "Specify the frontend .htaccess path."
msgstr "Especifica la ruta de la vista pública en el .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:54
msgid ".htaccess Path Settings"
msgstr "Ajustes de la ruta del .htaccess"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Evita cualquier registro de depuración de las páginas enumeradas."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Solo registra las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Especifica el tamaño máximo del archivo de registro."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Para evitar llenar el disco, esta configuración debe estar APAGADA cuando todo funciona."

#: tpl/toolbox/beta_test.tpl.php:46
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress."

#: tpl/toolbox/beta_test.tpl.php:35 tpl/toolbox/beta_test.tpl.php:46
msgid "Use latest WordPress release version"
msgstr "Usar la última versión de WordPress"

#: tpl/toolbox/beta_test.tpl.php:35
msgid "OR"
msgstr "O"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Use latest GitHub commit"
msgstr "Utiliza el último commit de GitHub"

#: tpl/toolbox/beta_test.tpl.php:26
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utiliza esta sección para cambiar la versión del plugin. Para probar un commit de GitHub, introduce la URL del commit en el campo de abajo."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Restablecer ajustes"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "Herramientas de LiteSpeed Cache"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Pruebas beta"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Vista de registros"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Ajustes de depuración"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Actívalo para controlar heartbeat en el editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "El intervalo válido de WordPress es %s segundos"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Actívalo para controlar heartbeat en el escritorio."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Establécelo en %1$s para bloquear heartbeat en %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "El intervalo válido de WordPress es %s segundos."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Especifica el intervalo de heartbeat para %s en segundos."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Enciéndelo para controlar heartbeat en el frontend."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Desactiva el intervalo del heartbeat de WordPress para reducir la carga del servidor."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Control de Heartbeat"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "proporcione más información aquí para ayudar al equipo de LiteSpeed con la depuración."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Opcional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generar enlace para el usuario actual"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Enlace sin contraseña"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Información del sistema"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Ir a la lista de plugins"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Instalar DoLogin Security"

#: tpl/general/settings.tpl.php:150
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site."
msgstr "la IP detectada automáticamente puede no ser precisa si tiene un conjunto de IP saliente adicional o si tiene varias IP configuradas en su servidor. Asegúrese de que esta IP sea la correcta para visitar su sitio."

#: tpl/general/settings.tpl.php:148
msgid "Check my public IP from"
msgstr "Comprueba mi IP pública desde"

#: tpl/general/settings.tpl.php:148
msgid "Your server IP is"
msgstr "La IP de tu servidor es"

#: tpl/general/settings.tpl.php:147
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Ingrese la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a IP en lugar del nombre de dominio. Esto elimina la sobrecarga de las búsquedas de DNS y CDN."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Especifique el tiempo de espera mientras rastrea cada URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "Esto habilitará el cron del rastreador."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Ajustes generales del rastreador"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr "No lista negra"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr "Eliminar de la lista negra"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr "Vaciar lista negra"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr "¿Estás seguro de que quieres borrar todas las listas negras?"

#: tpl/crawler/map.tpl.php:69 tpl/crawler/blacklist.tpl.php:56
msgid "Blacklisted due to not cacheable"
msgstr "En la lista negra debido a que no se puede cachear"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr "Añadir a las lista negra"

#: tpl/crawler/map.tpl.php:45 tpl/crawler/blacklist.tpl.php:33
msgid "Operation"
msgstr "Operación"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Sitemap Total"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Lista de Sitemap"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Actualizar mapa de rastreadores"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Vaciar el mapa del rastreador"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Configuración del mapa del sitio"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Ajustes de simulación"

#: tpl/crawler/entry.tpl.php:8 tpl/crawler/blacklist.tpl.php:21
msgid "Blacklist"
msgstr "Lista negra"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Mapa"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Sumario"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Si está utilizando múltiples dominios para un sitio y tiene múltiples dominios en el mapa del sitio, mantenga esta opción desactivada para que el rastreador sepa rastrear cada dominio."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, soltar el dominio puede ahorrar almacenamiento de base de datos."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Ajustes de mapa del sitio del rastreador"

#: tpl/crawler/summary.tpl.php:186
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;Si tanto el cron como la ejecución manual comienzan en momentos similares, prevalecerá el primero en iniciarse."

#: tpl/crawler/summary.tpl.php:185
msgid "Crawlers cannot run concurrently."
msgstr "Los rastreadores no se pueden ejecutar de forma concurrente."

#: tpl/crawler/summary.tpl.php:179 tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Fallo de caché"

#: tpl/crawler/summary.tpl.php:178 tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Acierto de caché"

#: tpl/crawler/summary.tpl.php:177
msgid "Waiting to be Crawled"
msgstr "Esperando a ser rastreado"

#: tpl/crawler/summary.tpl.php:159 tpl/crawler/summary.tpl.php:180
#: tpl/crawler/map.tpl.php:70 tpl/crawler/blacklist.tpl.php:57
msgid "Blacklisted"
msgstr "En lista negra"

#: tpl/crawler/summary.tpl.php:158
msgid "Miss"
msgstr "Perder"

#: tpl/crawler/summary.tpl.php:157
msgid "Hit"
msgstr "Acierto"

#: tpl/crawler/summary.tpl.php:156
msgid "Waiting"
msgstr "En espera"

#: tpl/crawler/summary.tpl.php:125
msgid "Running"
msgstr "En curso"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida."

#: src/admin-display.cls.php:215
msgid "Add new cookie to simulate"
msgstr "Añadir una cookie nueva para simular"

#: src/admin-display.cls.php:214
msgid "Remove cookie simulation"
msgstr "Eliminar la simulación de la cookie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Ajustes de simulación del rastreador"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess rule is: %s"
msgstr "La regla de Htaccess es: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "Más ajustes disponibles en el menú %s"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "El tiempo, en segundos, durante el cual los archivos serán almacenados en la caché del navegador antes de expirar."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Marca esto si eres un usuario de OpenLiteSpeed"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Ajustes de la caché del navegador"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Con el CDN de QUIC.cloud habilitado, puede que todavía estés viendo las cabeceras de la caché de tu servidor local."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Los noces anteriores se convertirán en ESI automáticamente."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Navegador"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Objeto"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Puerto por defecto de %1$s es %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Ajustes de la caché de objetos"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Especifica cuánto tiempo, en segundos, se almacena la página de inicio."

#: tpl/cache/settings-ttl.tpl.php:7 tpl/cache/entry.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan."

#: tpl/page_optm/settings_css.tpl.php:275
msgid "Swap"
msgstr "Intercambiar"

#: tpl/page_optm/settings_css.tpl.php:274
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Establece esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "La lista de avatares está en la cola esperando ser actualizada"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refrescar la caché de Gravatar por cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Acelera la velocidad al cachear Gravatar (Avatares reconocidos mundialmente)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Almacena Gravatar localmente."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:137
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "Las solicitudes LQIP no se enviarán para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones."

#: tpl/page_optm/settings_media.tpl.php:135
msgid "pixels"
msgstr "píxeles"

#: tpl/page_optm/settings_media.tpl.php:120
msgid "Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero generarán archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos."

#: tpl/page_optm/settings_media.tpl.php:119
msgid "Specify the quality when generating LQIP."
msgstr "Especifica la calidad al generar el LQIP."

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Keep this off to use plain color placeholders."
msgstr "Mantén esto apagado para usar marcadores de posición de color."

#: tpl/page_optm/settings_media.tpl.php:104
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Usa el servicio generador de QUIC.cloud LQIP (Low Quality Image Placeholder) para obtener vistas previas de la imagen mientras se carga."

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Specify the responsive placeholder SVG color."
msgstr "Especifica el color del marcador de posición SVG adaptable."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "Variables %s will be replaced with the configured background color."
msgstr "Las variables %s serán reemplazadas con el color de fondo configurado."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Las variables %s serán reemplazadas con las propiedades de imagen correspondientes."

#: tpl/page_optm/settings_media.tpl.php:74
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Se convertirá en un marcador de posición SVG base64 sobre la marcha."

#: tpl/page_optm/settings_media.tpl.php:73
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Especifica un SVG que se utilizará como marcador de posición al generar localmente."

#: tpl/page_optm/settings_media_exc.tpl.php:107
msgid "Prevent any lazy load of listed pages."
msgstr "Evita cualquier carga diferida de las páginas de la lista."

#: tpl/page_optm/settings_media_exc.tpl.php:93
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Los iframes con estos nombres de clase padres no se cargarán de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:78
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Los marcos que contengan estos nombres de clase no serán cargados de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:64
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida."

#: tpl/page_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Page Optimization"
msgstr "Página de optimización de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Exclusiones de medios"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:14
msgid "CSS Settings"
msgstr "Ajustes de CSS"

#: tpl/page_optm/settings_css.tpl.php:275
msgid "%s is recommended."
msgstr "%s es recomendado."

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_js.tpl.php:89
msgid "Deferred"
msgstr "Diferido"

#: tpl/page_optm/settings_js.tpl.php:86
msgid "After DOM Ready"
msgstr "Después de DOM ready"

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_css.tpl.php:272
msgid "Default"
msgstr "Predeterminado"

#: tpl/page_optm/settings_html.tpl.php:66
msgid "This can improve the page loading speed."
msgstr "Esto puede mejorar la velocidad de carga de la página."

#: tpl/page_optm/settings_html.tpl.php:65
msgid "Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Habilitar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "La nueva versión de desarrollo %s está disponible."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "¡Nueva versión para desarrolladores disponible!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Descartar este aviso"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tuitea esto"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Vista previa del Tuit"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Saber más"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "¡Acabas de desbloquear una promoción de QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Ajustes de optimización de imágenes"

#: tpl/img_optm/summary.tpl.php:367
msgid "Are you sure to destroy all optimized images?"
msgstr "¿Estás seguro de destruir todas las imágenes optimizadas?"

#: tpl/img_optm/summary.tpl.php:359
msgid "Use Optimized Files"
msgstr "Usar archivos optimizados"

#: tpl/img_optm/summary.tpl.php:358
msgid "Switch back to using optimized images on your site"
msgstr "Volver a utilizar imágenes optimizadas en tu web"

#: tpl/img_optm/summary.tpl.php:355
msgid "Use Original Files"
msgstr "Usar archivos originales"

#: tpl/img_optm/summary.tpl.php:354
msgid "Use original images (unoptimized) on your site"
msgstr "Usar imágenes originales (no optimizadas) en tu web"

#: tpl/img_optm/summary.tpl.php:349
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles."

#: tpl/img_optm/summary.tpl.php:346
msgid "Optimization Tools"
msgstr "Heramientas de optimización"

#: tpl/img_optm/summary.tpl.php:319
msgid "Rescan New Thumbnails"
msgstr "Re-escanear nuevas miniaturas"

#: tpl/img_optm/summary.tpl.php:311
msgid "Congratulations, all requested!"
msgstr "¡Felicidades, todas solicitadas!"

#: tpl/img_optm/summary.tpl.php:284
msgid "Congratulations, all gathered!"
msgstr "¡Felicidades, todos reunidos!"

#: tpl/img_optm/summary.tpl.php:281
msgid "Images not yet gathered"
msgstr "Imágenes que aún no se han reunido"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "What is an image group?"
msgstr "¿Qué es un grupo de imágenes?"

#: tpl/img_optm/summary.tpl.php:227
msgid "Delete all backups of the original images"
msgstr "Borrar todas las copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:209
msgid "Calculate Backups Disk Space"
msgstr "Calcular espacio en el disco para copias de seguridad"

#: tpl/img_optm/summary.tpl.php:94
msgid "Optimization Status"
msgstr "Estado de optimización"

#: tpl/img_optm/summary.tpl.php:78
msgid "Gather Image Data"
msgstr "Recopilar datos de las imágenes"

#: tpl/img_optm/summary.tpl.php:66
msgid "Current limit is"
msgstr "El límite actual es:"

#: tpl/img_optm/summary.tpl.php:65
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "Para asegurarnos de que nuestro servidor pueda comunicarse con tu servidor sin ningún problema y que todo funcione bien, para las pocas primeras solicitudes, la cantidad de imágenes permitidas en una sola solicitud es limitada."

#: tpl/img_optm/summary.tpl.php:60
msgid "You can request a maximum of %s images at once."
msgstr "Solo puedes solicitar un máximo de %s imágenes a la vez."

#: tpl/img_optm/summary.tpl.php:55
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiza las imágenes con nuestro servidor QUIC.cloud."

#: tpl/img_optm/summary.tpl.php:51 tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "El servidor cloud más cercano es %s.&#10; Clic para volver detectar."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Las revisiones más recientes se guardarán cuando se limpien las revisiones."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Día(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimización de la base de datos de LiteSpeed Cache"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Ajustes de optimización de BD"

#: tpl/db_optm/manage.tpl.php:174
msgid "Option Name"
msgstr "Nombre de la opción"

#: tpl/db_optm/manage.tpl.php:159
msgid "Database Summary"
msgstr "Resumen de la base de datos"

#: tpl/db_optm/manage.tpl.php:138
msgid "We are good. No table uses MyISAM engine."
msgstr "Estamos bien. Ninguna tabla usa el motor MyISAM."

#: tpl/db_optm/manage.tpl.php:130
msgid "Convert to InnoDB"
msgstr "Convertir a InnoDB"

#: tpl/db_optm/manage.tpl.php:116
msgid "Tool"
msgstr "Herramienta"

#: tpl/db_optm/manage.tpl.php:115
msgid "Engine"
msgstr "Motor"

#: tpl/db_optm/manage.tpl.php:114
msgid "Table"
msgstr "Tabla"

#: tpl/db_optm/manage.tpl.php:107
msgid "Database Table Engine Converter"
msgstr "Conversor de motor de tabla de base de datos"

#: tpl/db_optm/manage.tpl.php:57
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones"

#: tpl/dash/dashboard.tpl.php:503
msgid "Manage Crawler"
msgstr "Gestionar el rastreador"

#: tpl/dash/dashboard.tpl.php:471
msgid "Currently active crawler"
msgstr "Rastreador activo"

#: tpl/dash/dashboard.tpl.php:468
msgid "Crawler(s)"
msgstr "Rastreador(es)"

#: tpl/dash/dashboard.tpl.php:464 tpl/crawler/map.tpl.php:44
msgid "Crawler Status"
msgstr "Estado del rastreador"

#: tpl/dash/dashboard.tpl.php:417 tpl/dash/dashboard.tpl.php:448
msgid "Force cron"
msgstr "Forzar cron"

#: tpl/dash/dashboard.tpl.php:415 tpl/dash/dashboard.tpl.php:446
msgid "Requests in queue"
msgstr "Peticiones en cola"

#: tpl/dash/dashboard.tpl.php:410 tpl/dash/dashboard.tpl.php:441
msgid "Time to execute previous request"
msgstr "Tiempo para ejecutar solicitud anterior"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Stats"
msgstr "Estadísticas de la caché"

#: tpl/dash/dashboard.tpl.php:360
msgid "Private Cache"
msgstr "Caché privada"

#: tpl/dash/dashboard.tpl.php:359
msgid "Public Cache"
msgstr "Caché publica "

#: tpl/dash/dashboard.tpl.php:354
msgid "Cache Status"
msgstr "Estado de la caché"

#: tpl/dash/dashboard.tpl.php:325
msgid "Last Pull"
msgstr "Última lectura"

#: tpl/dash/dashboard.tpl.php:290
msgid "Images Requested"
msgstr "Imágenes solicitadas"

#: tpl/dash/dashboard.tpl.php:275
msgid "Image Groups Prepared"
msgstr "Grupos de imágenes preparados"

#: tpl/dash/dashboard.tpl.php:265 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Resumen de la optimización de imágenes"

#: tpl/dash/dashboard.tpl.php:213
msgid "Refresh page score"
msgstr "Actualizar la puntuación de la página"

#: tpl/dash/dashboard.tpl.php:202 tpl/img_optm/summary.tpl.php:51
#: tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "¿Estás seguro de que deseas volver a detectar el servidor en la nube más cercano para este servicio?"

#: tpl/dash/dashboard.tpl.php:202
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "El servidor cloud más cercano es %s.&#10;Haz clic para volver a detectarlo."

#: tpl/dash/dashboard.tpl.php:197 tpl/dash/dashboard.tpl.php:257
#: tpl/dash/dashboard.tpl.php:425 tpl/dash/dashboard.tpl.php:456
msgid "Last requested"
msgstr "Última petición"

#: tpl/dash/dashboard.tpl.php:156
msgid "Refresh page load time"
msgstr "Actualizar el tiempo de carga de la página"

#: tpl/dash/dashboard.tpl.php:144
msgid "Go to QUIC.cloud dashboard"
msgstr "Ir al escritorio de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:55 tpl/dash/dashboard.tpl.php:433
msgid "Low Quality Image Placeholder"
msgstr "Marcador de imagen de baja calidad"

#: tpl/dash/dashboard.tpl.php:42
msgid "Sync data from Cloud"
msgstr "Sincronizar los datos de la nube"

#: tpl/dash/dashboard.tpl.php:39
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Estadísticas de uso del servicio QUIC.cloud"

#: tpl/dash/network_dash.tpl.php:101 tpl/dash/dashboard.tpl.php:133
msgid "Total images optimized in this month"
msgstr "Total de imágenes optimizadas en este mes"

#: tpl/dash/network_dash.tpl.php:100 tpl/dash/dashboard.tpl.php:132
msgid "Total Usage"
msgstr "Uso total"

#: tpl/dash/network_dash.tpl.php:93 tpl/dash/dashboard.tpl.php:125
msgid "Pay as You Go Usage Statistics"
msgstr "Estadísticas pago por uso"

#: tpl/dash/network_dash.tpl.php:91 tpl/dash/dashboard.tpl.php:123
msgid "This Month Usage"
msgstr "Uso de este mes"

#: tpl/dash/network_dash.tpl.php:90 tpl/dash/dashboard.tpl.php:122
msgid "PAYG Balance"
msgstr "Balance de pago"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pago por uso"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Usage"
msgstr "Uso"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Fast Queue Usage"
msgstr "Uso de la cola rápida"

#: tpl/dash/network_dash.tpl.php:29 tpl/dash/dashboard.tpl.php:54
msgid "CDN Bandwidth"
msgstr "Ancho de banda CDN"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Uso de las estadísticas"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "Escritorio de LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Escritorio de la red"

#: tpl/general/settings.tpl.php:129
msgid "No cloud services currently in use"
msgstr "No hay servicios cloud en uso"

#: tpl/general/settings.tpl.php:117
msgid "Click to clear all nodes for further redetection."
msgstr "Haga clic para borrar todos los nodos para una mayor redetección."

#: tpl/general/settings.tpl.php:116
msgid "Current Cloud Nodes in Service"
msgstr "Nodos cloud actual en servicio"

#: tpl/general/settings.tpl.php:108
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Beneficios de enlazar con una cuenta QUIC.cloud"

#: tpl/general/settings.tpl.php:107
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud."

#: tpl/general/settings.tpl.php:102
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Debes tener %1$s antes de enlazarte a QUIC.cloud."

#: tpl/general/settings.tpl.php:88
msgid "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."
msgstr "Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la REST API, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda."

#: tpl/general/settings.tpl.php:87
msgid "Our %s was not whitelisted."
msgstr "Nuestro %s no estaba en la lista blanca."

#: tpl/general/settings.tpl.php:86
msgid "The POST callback to %s failed."
msgstr "La llamada POST a %s falló."

#: tpl/general/settings.tpl.php:85
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "Hay dos razones por las que no podemos comunicarnos con tu dominio:"

#: tpl/general/settings.tpl.php:84
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Hubo un problema al recuperar tu clave de dominio. Haz clic en el botón %s para volver a intentarlo."

#: tpl/general/settings.tpl.php:76 tpl/general/settings.tpl.php:78
#: tpl/general/settings.tpl.php:107
msgid "Link to QUIC.cloud"
msgstr "Enlace a QUIC.cloud"

#: tpl/general/settings.tpl.php:74
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visita Mi Escritorio en QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Próximo tiempo de solicitud disponible: <code>Después de %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Aprobado"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Solicitado"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Esperando aprobación"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Esperando a la recarga"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Actualizar clave de dominio"

#: tpl/general/entry.tpl.php:6 tpl/general/entry.tpl.php:11
#: tpl/general/network_settings.tpl.php:8 tpl/general/settings.tpl.php:43
#: tpl/crawler/entry.tpl.php:9
msgid "General Settings"
msgstr "Ajustes generales"

#: tpl/cdn/settings.tpl.php:120
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN."

#: src/admin-display.cls.php:237
msgid "Add new CDN URL"
msgstr "Añade una nueva url de la CDN"

#: src/admin-display.cls.php:236
msgid "Remove CDN URL"
msgstr "Elimina la url de la CDN"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Habilitar la funcionalidad %s de la API de la CDN."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Para habilitar la siguiente funcionalidad, activa la API de Cloudflare en la configuración del CDN."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "Para gestionar las opciones de QUIC.cloud, visita"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:14
msgid "WooCommerce Settings"
msgstr "Ajustes de WooCommerce"

#: src/doc.cls.php:106 tpl/general/settings.tpl.php:87
msgid "Current Online Server IPs"
msgstr "IPs del servidor en línea"

#: src/doc.cls.php:105
msgid "Before generating key, please verify all IPs on this list are whitelisted"
msgstr "Antes de generar la clave, por favor verifica que todas las IPs de esta lista estén en la lista blanca"

#: src/doc.cls.php:104
msgid "For online services to work correctly, you must whitelist all online server IPs."
msgstr "Para que los servicios en línea funcionen correctamente, debes hacer una lista blanca de todas las IPs en línea del servidor."

#: src/gui.cls.php:528 src/gui.cls.php:679 tpl/toolbox/purge.tpl.php:90
msgid "LQIP Cache"
msgstr "Caché de LQIP"

#: src/gui.cls.php:85
msgid "Private Cache Hits"
msgstr "Aciertos de caché privada"

#: src/gui.cls.php:84
msgid "Private Caches"
msgstr "Cachés privadas"

#: src/gui.cls.php:83
msgid "Public Cache Hits"
msgstr "Aciertos de caché pública"

#: src/gui.cls.php:82
msgid "Public Caches"
msgstr "Cachés públicas"

#: src/admin-settings.cls.php:259 src/admin-settings.cls.php:294
msgid "Options saved."
msgstr "Opciones guardadas."

#: src/img-optm.cls.php:1422
msgid "Removed backups successfully."
msgstr "Se han eliminado las copias de seguridad correctamente."

#: src/img-optm.cls.php:1360
msgid "Calculated backups successfully."
msgstr "Copias de seguridad calculadas correctamente."

#: src/img-optm.cls.php:1301
msgid "Rescaned %d images successfully."
msgstr "%d imágenes re-escaneadas correctamente."

#: src/img-optm.cls.php:1215 src/img-optm.cls.php:1288
msgid "Rescaned successfully."
msgstr "Re-escaneo correcto."

#: src/img-optm.cls.php:1180
msgid "Destroy all optimization data successfully."
msgstr "Todos los datos de optimización destruidos correctamente."

#: src/img-optm.cls.php:1109
msgid "Cleaned up unfinished data successfully."
msgstr "Datos incompletos limpiados correctamente."

#: src/img-optm.cls.php:1022
msgid "Pulled %d image(s)"
msgstr "%d imagen(es) obtenida(s)"

#: src/img-optm.cls.php:945
msgid "Optimized WebP file expired and was cleared."
msgstr "El archivo WebP optimizado caducado ha sido limpiado."

#: src/img-optm.cls.php:828
msgid "Pull Cron is running"
msgstr "Pull Cron se está ejecutando"

#: src/img-optm.cls.php:597
msgid "No valid image found by Cloud server in the current request."
msgstr "El servidor cloud no ha encontrado ninguna imagen válida por en la petición actual."

#: src/img-optm.cls.php:574
msgid "No valid image found in the current request."
msgstr "No se ha encontrado ninguna imagen válida en la petición actual."

#: src/img-optm.cls.php:420
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s enviado al servidor cloud, %2$s aceptado."

#: src/img-optm.cls.php:143
msgid "Gathered %d images successfully."
msgstr "%d recopiladas correctamente."

#: src/img-optm.cls.php:109
msgid "No new image gathered."
msgstr "No se ha reunido ninguna imagen nueva."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Edad máxima de las revisiones"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Número máximo de revisiones"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "URIs excluidas de la depuración"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "URIs incluidas en la depuración"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Quitar dominio del mapa del sitio"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "Atributo HTML a reemplazar"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Usar mapeo de CDN"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "CDN QUIC.cloud"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "TTL de heartbeat del editor"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Heartbeat del editor"

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr "TTL de heartbeat del backend"

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr "Control de heartbeat del backend"

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr "TTL de heartbeat del frontend"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr "Control de heartbeat del frontend"

#: src/lang.cls.php:189
msgid "Backend .htaccess Path"
msgstr "Ruta del .htaccess del backend"

#: src/lang.cls.php:188
msgid "Frontend .htaccess Path"
msgstr "Ruta del .htaccess del frontend"

#: src/lang.cls.php:178
msgid "ESI Nonces"
msgstr "Nonces de ESI"

#: src/lang.cls.php:174
msgid "WordPress Image Quality Control"
msgstr "Control de la calidad de imagen de WordPress"

#: src/lang.cls.php:169
msgid "Create WebP Versions"
msgstr "Crear versiones WebP"

#: src/lang.cls.php:166
msgid "Auto Pull Cron"
msgstr "Cron de obtención automática"

#: src/lang.cls.php:165
msgid "Auto Request Cron"
msgstr "Cron de petición automática"

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr "Generar LQIP en segundo plano"

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr "Dimensiones mínimas de LQIP"

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr "Calidad LQIP"

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr "Generador de LQIP en la nube"

#: src/lang.cls.php:157
msgid "Responsive Placeholder SVG"
msgstr "Marcador de posición SVG adaptable"

#: src/lang.cls.php:156
msgid "Responsive Placeholder Color"
msgstr "Color del marcador de posición adaptable"

#: src/lang.cls.php:154
msgid "Basic Image Placeholder"
msgstr "Marcador de posición de imagen básica"

#: src/lang.cls.php:152
msgid "Lazy Load URI Excludes"
msgstr "Exclusión de URIs de carga diferida"

#: src/lang.cls.php:151
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padre de iframes"

#: src/lang.cls.php:150
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases de iframes"

#: src/lang.cls.php:149
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padres"

#: src/lang.cls.php:144
msgid "Gravatar Cache TTL"
msgstr "TTL de la caché de Gravatar"

#: src/lang.cls.php:143
msgid "Gravatar Cache Cron"
msgstr "Cron de la caché de Gravatar"

#: src/lang.cls.php:142 src/gui.cls.php:538 src/gui.cls.php:689
#: tpl/toolbox/purge.tpl.php:99
msgid "Gravatar Cache"
msgstr "Caché de Gravatar"

#: src/lang.cls.php:129
msgid "DNS Prefetch Control"
msgstr "Control del prefetch DNS"

#: src/lang.cls.php:125
msgid "Load Inline JS"
msgstr "Cargar JS integrado"

#: src/lang.cls.php:123
msgid "Font Display Optimization"
msgstr "Optimización de visualización de fuentes"

#: src/lang.cls.php:98
msgid "Force Public Cache URIs"
msgstr "Forzar URIs de caché pública"

#: src/lang.cls.php:67
msgid "Notifications"
msgstr "Notificaciones"

#: src/lang.cls.php:64
msgid "Default HTTP Status Code Page TTL"
msgstr "TTL del código de estado de página predeterminado"

#: src/lang.cls.php:63
msgid "Default REST TTL"
msgstr "TTLpredeterminado de REST"

#: src/lang.cls.php:57
msgid "Enable Cache"
msgstr "Activa cache"

#: src/lang.cls.php:55
msgid "Domain Key"
msgstr "Clave de dominio"

#: src/lang.cls.php:54
msgid "Server IP"
msgstr "IP del servidor"

#: src/lang.cls.php:34
msgid "Duplicate image files ignored"
msgstr "Archivos de imagen duplicados ignorados"

#: src/lang.cls.php:24
msgid "Images not requested"
msgstr "Imágenes no solicitadas"

#: src/cloud.cls.php:1049
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Asignación de créditos correctamente sincronizada con el servidor cloud."

#: src/cloud.cls.php:964
msgid "Domain Key hash mismatch"
msgstr "Discrepancia de hash de clave de dominio"

#: src/cloud.cls.php:893
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia."

#: src/cloud.cls.php:842
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Clave del dominio solicitada correctamente. Por favor espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress."

#: src/cloud.cls.php:646 src/cloud.cls.php:823
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Fallo de comunicación con el servidor QUIC.cloud"

#: src/cloud.cls.php:595
msgid "Good news from QUIC.cloud server"
msgstr "Buenas noticias del servidor QUIC.cloud"

#: src/cloud.cls.php:579 src/cloud.cls.php:587 src/cloud.cls.php:834
msgid "Message from QUIC.cloud server"
msgstr "Mensaje del servidor QUIC.cloud"

#: src/cloud.cls.php:465
msgid "Please try after %1$s for service %2$s."
msgstr "Por favor, inténtalo después de %1$s para el servicio %2$s."

#: src/cloud.cls.php:356
msgid "No available Cloud Node."
msgstr "No hay ningún nodo de cloud disponible."

#: src/cloud.cls.php:308 src/cloud.cls.php:325 src/cloud.cls.php:356
#: src/cloud.cls.php:465 src/cloud.cls.php:798
msgid "Cloud Error"
msgstr "Error de cloud"

#: src/data.cls.php:197
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado."

#: src/media.cls.php:360
msgid "Restore from backup"
msgstr "Restaurar desde una copia de seguridad"

#: src/media.cls.php:350
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:344
msgid "No backup of unoptimized WebP file exists."
msgstr "No existe una copia de seguridad del archivo WebP no optimizado."

#: src/media.cls.php:331
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Archivo WebP reducido en %1$s (%2$s)"

#: src/media.cls.php:327
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo WebP."

#: src/media.cls.php:322
msgid "Currently using optimized version of WebP file."
msgstr "Actualmente usando la versión optimizada del archivo WebP."

#: src/media.cls.php:306
msgid "Orig"
msgstr "Orig"

#: src/media.cls.php:303
msgid "(no savings)"
msgstr "(sin ahorro)"

#: src/media.cls.php:303
msgid "Orig %s"
msgstr "Orig %s"

#: src/media.cls.php:300
msgid "Congratulation! Your file was already optmized"
msgstr "¡Felicidades! Tu archivo ya ha sido optimizado"

#: src/media.cls.php:291
msgid "No backup of original file exists."
msgstr "No existe una copia de seguridad del archivo original."

#: src/media.cls.php:291 src/media.cls.php:344
msgid "Using optimized version of file. "
msgstr "Usando la versión optimizada del archivo. "

#: src/media.cls.php:283
msgid "Orig saved %s"
msgstr "Ahorrados %s del original"

#: src/media.cls.php:277
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Archivo original reducido en %1$s (%2$s)"

#: src/media.cls.php:273 src/media.cls.php:327
msgid "Click to switch to optimized version."
msgstr "Haz clic para cambiar a la versión optimizada."

#: src/media.cls.php:273
msgid "Currently using original (unoptimized) version of file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo."

#: src/media.cls.php:272 src/media.cls.php:326
msgid "(non-optm)"
msgstr "(no-optm)"

#: src/media.cls.php:268 src/media.cls.php:322
msgid "Click to switch to original (unoptimized) version."
msgstr "Haz clic para cambiar a la versión original (no optimizada)."

#: src/media.cls.php:268
msgid "Currently using optimized version of file."
msgstr "Actualmente usando la versión optimizada del archivo."

#: src/media.cls.php:267 src/media.cls.php:292 src/media.cls.php:321
#: src/media.cls.php:345
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:141
msgid "LQIP image preview for size %s"
msgstr "Vista previa de la imagen LQIP para el tamaño %s"

#: src/placeholder.cls.php:83 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:909
msgid "Previously existed in blacklist"
msgstr "Anteriormente existía en la lista negra"

#: src/crawler.cls.php:906
msgid "Manually added to blacklist"
msgstr "Añadir a la lista negra manualmente"

#: src/htaccess.cls.php:355
msgid "Mobile Agent Rules"
msgstr "Reglas de agente móvil"

#: src/crawler-map.cls.php:323
msgid "Sitemap created successfully: %d items"
msgstr "Mapa del sitio creado con éxito: %d elementos"

#: src/crawler-map.cls.php:267
msgid "Sitemap cleaned successfully"
msgstr "El mapa del sitio se limpió con éxito"

#: src/admin-display.cls.php:1065
msgid "Invalid IP"
msgstr "IP no válida"

#: src/admin-display.cls.php:1040
msgid "Value range"
msgstr "Rango de valores"

#: src/admin-display.cls.php:1037
msgid "Smaller than"
msgstr "Mas pequeño que"

#: src/admin-display.cls.php:1034
msgid "Larger than"
msgstr "Mayor que"

#: src/admin-display.cls.php:1027
msgid "Zero, or"
msgstr "Cero, o"

#: src/admin-display.cls.php:1015
msgid "Maximum value"
msgstr "Valor máximo"

#: src/admin-display.cls.php:1012
msgid "Minimum value"
msgstr "Valor mínimo"

#: src/admin-display.cls.php:994
msgid "Path must end with %s"
msgstr "La ruta debe terminar en %s"

#: src/admin-display.cls.php:977
msgid "Invalid rewrite rule"
msgstr "Regla de reescritura no válida"

#: src/admin-display.cls.php:948 src/admin-display.cls.php:953
msgid "Recommended value"
msgstr "Valor recomendado"

#: src/admin-display.cls.php:907
msgid "currently set to %s"
msgstr "actualmente establecido en %s"

#: src/admin-display.cls.php:897
msgid "This setting is overwritten by the PHP constant %s"
msgstr "Este ajuste es sobrescrita por la constante %s de PHP"

#: src/admin-display.cls.php:137
msgid "Toolbox"
msgstr "Herramientas"

#: src/admin-display.cls.php:133 tpl/page_optm/entry.tpl.php:45
msgid "Database"
msgstr "Base de datos"

#: src/admin-display.cls.php:131
msgid "Page Optimization"
msgstr "Optimización de página"

#: src/admin-display.cls.php:121 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Escritorio"

#: src/db-optm.cls.php:256
msgid "Converted to InnoDB successfully."
msgstr "Convertido a InnoDB exitosamente."

#: src/purge.cls.php:263
msgid "Cleaned all Gravatar files."
msgstr "Vaciados todos los archivos de Gravatar."

#: src/purge.cls.php:246
msgid "Cleaned all LQIP files."
msgstr "Vaciados todos los archivos LQIP."

#: src/utility.cls.php:875
msgid "&raquo;"
msgstr "&raquo;"

#: src/utility.cls.php:874
msgid "&laquo;"
msgstr "&laquo;"

#: src/error.cls.php:161
msgid "Unknown error"
msgstr "Error desconocido"

#: src/error.cls.php:157
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "Se le ha prohibido a tu dominio usar nuestros servicios debido a una violación anterior de la política."

#: src/error.cls.php:153
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores. Código de respuesta:"

#: src/error.cls.php:149
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores."

#: src/error.cls.php:145
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "La validación de la llamada a tu dominio falló debido a la falta de coincidencia."

#: src/error.cls.php:141
msgid "Your application is waiting for approval."
msgstr "Tu solicitud está a la espera de aprobación."

#: src/error.cls.php:137
msgid "Previous request too recent. Please try again after %s."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s."

#: src/error.cls.php:133
msgid "Previous request too recent. Please try again later."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde."

#: src/error.cls.php:128
msgid "Crawler disabled by the server admin."
msgstr "Rastreador desactivado por el administrador del servidor."

#: src/error.cls.php:124
msgid "Failed to create table %s! SQL: %s."
msgstr "¡Error al crear la tabla %s! SQL:%s."

#: src/error.cls.php:100
msgid "Could not find %1$s in %2$s."
msgstr "No he podido encontrar %1$s en %2$s."

#: src/error.cls.php:88
msgid "Credits are not enough to proceed the current request."
msgstr "Los créditos no son suficientes para proceder con la solicitud actual."

#: src/error.cls.php:84
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "La clave de dominio no es correcta. Por favor, intenta sincronizar tu clave de dominio nuevamente."

#: src/error.cls.php:72
msgid "There is proceeding queue not pulled yet."
msgstr "Hay una cola de procedimiento que no se ha retirado todavía."

#: src/error.cls.php:68
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "No hay suficientes parámetros. Compruebe si la clave de dominio está establecida correctamente"

#: src/error.cls.php:64
msgid "The image list is empty."
msgstr "La lista de imágenes está vacía."

#: src/error.cls.php:52
msgid "You don't have enough quota for current service left this month."
msgstr "No tienes suficiente cuota restante este mes para el servicio actual."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "Deberás establecer %s para poder utilizar el servicio en linea."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "La configuración %s está activado actualmente"

#: src/task.cls.php:138
msgid "LiteSpeed Crawler Cron"
msgstr "Cron del rastreador de LiteSpeed"

#: src/task.cls.php:119
msgid "Every Minute"
msgstr "Cada minuto"

#: tpl/general/settings.tpl.php:166
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Los enlaces generados pueden gestionarse en los <a %s>Ajustes</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Por favor, NO compartas el enlace de acceso sin contraseña de arriba con nadie."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Instalar"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN."

#: tpl/dash/dashboard.tpl.php:210 tpl/banner/score.php:68
msgid "PageSpeed Score"
msgstr "Puntuación de PageSpeed"

#: tpl/dash/dashboard.tpl.php:183 tpl/dash/dashboard.tpl.php:241
#: tpl/banner/score.php:55 tpl/banner/score.php:94
msgid "Improved by"
msgstr "Mejorado por"

#: tpl/dash/dashboard.tpl.php:175 tpl/dash/dashboard.tpl.php:233
#: tpl/banner/score.php:45 tpl/banner/score.php:84
msgid "After"
msgstr "Después"

#: tpl/dash/dashboard.tpl.php:166 tpl/dash/dashboard.tpl.php:225
#: tpl/banner/score.php:34 tpl/banner/score.php:74
msgid "Before"
msgstr "Antes"

#: tpl/dash/dashboard.tpl.php:153 tpl/banner/score.php:28
msgid "Page Load Time"
msgstr "Tiempo de carga de la página"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud."

#: src/lang.cls.php:171
msgid "Preserve EXIF/XMP data"
msgstr "Conservar los datos EXIF/XMP"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Only enable for AMP or mobile-specific design/content, not for responsive sites."
msgstr "Solo activarlo para AMP o diseño/contenido específico para móviles, no  para sitios adaptables."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Cache mobile views separately."
msgstr "Cachear vistas móviles por separado. "

#: tpl/toolbox/beta_test.tpl.php:22
msgid "Try GitHub Version"
msgstr "Probar versión de GitHub"

#: tpl/cdn/settings.tpl.php:96
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s."

#: src/doc.cls.php:76
msgid "Both full and partial strings can be used."
msgstr "Se pueden usa cadenas parciales y completas."

#: tpl/page_optm/settings_media_exc.tpl.php:49
msgid "Images containing these class names will not be lazy loaded."
msgstr "Las imágenes que contengan estos nombres de clases no tendrán carga diferida."

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Exclusión de nombres de clases para carga diferida de imágenes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Puede que más tarde"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Activar la actualización automática"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:48
msgid "Upgrade"
msgstr "Actualizar"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "La nueva versión %s está disponible ahora."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "¡Nueva versión disponible!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Creado con ❤️ por el equipo de LiteSpeed."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "¡Por supuesto, me encantará valorarlo!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "¡Gracias por usar el plugin de caché LiteSpeed!"

#: src/activation.cls.php:417
msgid "Upgraded successfully."
msgstr "Actualizado con éxito."

#: src/activation.cls.php:408 src/activation.cls.php:413
msgid "Failed to upgrade."
msgstr "Fallo al actualizar."

#: src/conf.cls.php:782
msgid "Changed setting successfully."
msgstr "Ajuste cambiado con éxito."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "Muestra de ESI para desarrolaldores"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Reemplaza %1$s con %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Puedes convertir shortcodes en bloques ESI."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Caché privada o caché pública"

#: tpl/page_optm/settings_html.tpl.php:87
msgid "Append query string %s to the resources to bypass this action."
msgstr "Añade la cadena de consulta %s a los recursos para evitar esta acción."

#: tpl/page_optm/settings_html.tpl.php:83
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA se omitirá automáticamente."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."
msgstr "Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea y pueden incluir una línea en blanco. Se creará un rastreador por cada valor de cookie, por cada perfil simulado."

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Valores de la cookie"

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr "Nombre de la cookie"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Simulación de cookie"

#: tpl/toolbox/edit_htaccess.tpl.php:44
msgid "This page is meant for advanced users."
msgstr "Esta página está pensada para usuarios avanzados."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente las Google Fonts dejando el resto del CSS intacto."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre."

#: src/lang.cls.php:66
msgid "Automatically Upgrade"
msgstr "Actualizar automáticamente"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Tu IP"

#: src/import.cls.php:146
msgid "Reset successfully."
msgstr "Restablecimiento realizado con éxito"

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Esto restablecerá todos los ajustes a su valores predeterminados."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Restablecer todos los ajustes"

#: tpl/page_optm/settings_css.tpl.php:247
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separa archivos CSS críticos al generar las rutas que contengan estas cadenas."

#: src/lang.cls.php:121
msgid "Separate CCSS Cache URIs"
msgstr "Distintas URIs de caché CCSS"

#: tpl/page_optm/settings_css.tpl.php:233
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán."

#: tpl/page_optm/settings_css.tpl.php:232
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS."

#: src/lang.cls.php:120
msgid "Separate CCSS Cache Post Types"
msgstr "Tipos de contenido de caché de CCSS distintos"

#: tpl/page_optm/settings_media.tpl.php:178
msgid "Size list in queue waiting for cron"
msgstr "Tamaño de la lista en la cola de espera del cron"

#: tpl/page_optm/settings_media.tpl.php:155
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s."

#: tpl/page_optm/settings_media.tpl.php:153
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas."

#: tpl/page_optm/settings_media.tpl.php:60
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto."

#: tpl/page_optm/settings_media.tpl.php:59
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Marcador de posición adaptable"

#: tpl/toolbox/purge.tpl.php:91
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Por favor, activa LiteSpeed Cache en los ajustes del plugin."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento."

#: src/cloud.cls.php:548 src/cloud.cls.php:560
msgid "Failed to request via WordPress"
msgstr "Fallo en la solicitud desde WordPress"

#: tpl/page_optm/settings_media.tpl.php:216
msgid "Include the lazy load image JavaScript library inline."
msgstr "Incluye la biblioteca integrada de Javascript de carga diferida de imágenes."

#: src/lang.cls.php:164
msgid "Inline Lazy Load Images Library"
msgstr "Biblioteca integrada de imágenes en carga diferida"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed"

#: src/img-optm.cls.php:1740
msgid "Reset the optimized data successfully."
msgstr "Datos de optimización restablecidos correctamente."

#: src/gui.cls.php:755
msgid "Update %s now"
msgstr "Actualizar %s"

#: src/gui.cls.php:750
msgid "View %1$s version %2$s details"
msgstr "Ver detalles de la versión %2$s de %1$s"

#: src/gui.cls.php:747
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>ver detalles de la versión %3$s</a> o <a href=\"%4$s\" %5$s target=\"_blank\">actualiza ya</a>."

#: src/gui.cls.php:727
msgid "Install %s"
msgstr "Instalar %s"

#: src/lang.cls.php:31
msgid "Images previously optimized"
msgstr "Imágenes optimizadas anteriormente"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "¡Las funciones caché de LSCache de está página no están disponibles!"

#: src/cloud.cls.php:604
msgid "%1$s plugin version %2$s required for this action."
msgstr "Para esta acción se necesita la versión %2$s del plugin %1$s."

#: src/cloud.cls.php:570
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas."

#: src/lang.cls.php:168
msgid "Remove Original Backups"
msgstr "Eliminar copias de seguridad del orginal"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Solicitar automáticamente la optimización mediante un trabajo cron."

#: tpl/img_optm/summary.tpl.php:180
msgid "A backup of each image is saved before it is optimized."
msgstr "Se guarda una copia de seguridad de cada imagen antes de optimizarla."

#: src/img-optm.cls.php:1619
msgid "Switched images successfully."
msgstr "Cambió las imágenes con éxito."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimizar imágenes usando compresión sin pérdida."

#: src/lang.cls.php:170
msgid "Optimize Losslessly"
msgstr "Optimizar sin pérdida"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Solicita versiones WebP de las imágenes originales al hacer la optimización."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta."

#: src/lang.cls.php:167
msgid "Optimize Original Images"
msgstr "Optimizar imágenes originales"

#: tpl/page_optm/settings_css.tpl.php:167
msgid "This option only works if %1$s is %2$s."
msgstr "Esta opción solo funciona si %1$s está en %2$s."

#: tpl/page_optm/settings_css.tpl.php:166
msgid "Leave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated."
msgstr "Deja esta opción %1$s para permitir la comunicación con el servicio CCSS QUIC.cloud. Si se establece en %2$s, no se generará CSS crítico."

#: src/lang.cls.php:118
msgid "Generate Critical CSS"
msgstr "Generar CSS crítico"

#: tpl/page_optm/settings_css.tpl.php:149
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google."

#: src/purge.cls.php:229
msgid "Cleaned all Critical CSS files."
msgstr "Limpiados todos los archivos CSS críticos."

#: tpl/page_optm/settings_css.tpl.php:261
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado."

#: src/lang.cls.php:122
msgid "Inline CSS Async Lib"
msgstr "Biblioteca de CSS integrado asíncrono"

#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_css.tpl.php:216
msgid "Run Queue Manually"
msgstr "Ejecutar cola manualmente"

#: tpl/page_optm/settings_css.tpl.php:203
msgid "URL list in queue waiting for cron"
msgstr "Lista de URLs en cola esperando el cron"

#: tpl/page_optm/settings_css.tpl.php:93 tpl/page_optm/settings_css.tpl.php:192
msgid "Last requested cost"
msgstr "Último coste solicitado"

#: tpl/dash/dashboard.tpl.php:407 tpl/dash/dashboard.tpl.php:438
#: tpl/page_optm/settings_media.tpl.php:167
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:189
msgid "Last generated"
msgstr "Último generado"

#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:181
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página."

#: tpl/page_optm/settings_css.tpl.php:180
msgid "Automatically generate critical CSS in the background via a cron-based queue."
msgstr "Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron."

#: src/lang.cls.php:119
msgid "Generate Critical CSS In Background"
msgstr "Generar CSS crítico en segundo plano"

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Optimize CSS delivery."
msgstr "Optimiza la entrega de CSS."

#: tpl/toolbox/purge.tpl.php:73
msgid "This will delete all generated critical CSS files"
msgstr "Esto borrará todos los archivos generados de CSS crítico"

#: src/gui.cls.php:508 src/gui.cls.php:659 tpl/dash/dashboard.tpl.php:53
#: tpl/dash/dashboard.tpl.php:402 tpl/toolbox/purge.tpl.php:72
msgid "Critical CSS"
msgstr "CSS crítico"

#: src/doc.cls.php:24
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."
msgstr "Este sitio utiliza sistemas de caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El cacheado potencialmente almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de caché son temporales, y nunca son accedidos por ninguna tercera parte, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de caché expiran en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su expiración natural, si fuese necesario."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar."

#: src/utility.cls.php:250
msgid "right now"
msgstr "ahora mismo"

#: src/utility.cls.php:250
msgid "just now"
msgstr "ahora mismo"

#: tpl/img_optm/summary.tpl.php:245
msgid "Saved"
msgstr "Guardado"

#: tpl/img_optm/summary.tpl.php:239
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Última ejecución"

#: tpl/img_optm/summary.tpl.php:231 tpl/img_optm/settings.tpl.php:67
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!"

#: tpl/img_optm/summary.tpl.php:230 tpl/img_optm/settings.tpl.php:66
msgid "This is irreversible."
msgstr "Esto es irreversible."

#: tpl/img_optm/summary.tpl.php:250
msgid "Remove Original Image Backups"
msgstr "Eliminar copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:249
msgid "Are you sure you want to remove all image backups?"
msgstr "¿Estás seguro de que deseas eliminar todas las copias de seguridad de imágenes?"

#: tpl/img_optm/summary.tpl.php:194 tpl/crawler/blacklist.tpl.php:25
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:191 tpl/img_optm/summary.tpl.php:242
msgid "Files"
msgstr "Archivos"

#: tpl/img_optm/summary.tpl.php:187
msgid "Last calculated"
msgstr "Último cálculo"

#: tpl/img_optm/summary.tpl.php:202
msgid "Calculate Original Image Storage"
msgstr "Calcular almacenamiento original de imágenes"

#: tpl/img_optm/summary.tpl.php:176
msgid "Storage Optimization"
msgstr "Optimización de almacenamiento."

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Activar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress."

#: src/lang.cls.php:173
msgid "WebP For Extra srcset"
msgstr "WebP para src extra"

#: tpl/cdn/settings.tpl.php:122 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Usa el formato %1$s o %2$s (el elemento es opcional)."

#: tpl/cdn/settings.tpl.php:121 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Solo los atributos aquí listados serán reemplazados."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Especificar que atributos de elementos serán reemplazados con WebP."

#: src/lang.cls.php:172
msgid "WebP Attribute To Replace"
msgstr "Atributo WebP a reemplazar"

#: tpl/cdn/settings.tpl.php:159
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Solo los archivos en estos directorios apuntarán a la CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Directorios incluidos"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Un vaciado completo se iniciará cuando WordPress ejecute estos hooks."

#: src/lang.cls.php:180
msgid "Purge All Hooks"
msgstr "Vaciar todos los hooks"

#: src/purge.cls.php:193
msgid "Purged all caches successfully."
msgstr "Vaciado de todas las cachés correctamente."

#: src/gui.cls.php:471 src/gui.cls.php:562 src/gui.cls.php:612
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:415
msgid "Forced cacheable"
msgstr "Forzar cacheables"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables."

#: src/lang.cls.php:97
msgid "Force Cache URIs"
msgstr "Forzar URLs en caché"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Ajustes de exclusión"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Esto desactivará LSCache y todas las características de optimización con propósitos de depuración."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Desactivar todas las características"

#: src/gui.cls.php:498 src/gui.cls.php:649 tpl/toolbox/purge.tpl.php:63
msgid "Opcode Cache"
msgstr "Caché opcode"

#: src/gui.cls.php:479 src/gui.cls.php:620 tpl/toolbox/purge.tpl.php:45
msgid "CSS/JS Cache"
msgstr "Caché CSS/JS"

#: src/gui.cls.php:708 tpl/img_optm/summary.tpl.php:169
msgid "Remove all previous unfinished image optimization requests."
msgstr "Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar."

#: src/gui.cls.php:709 tpl/img_optm/summary.tpl.php:171
msgid "Clean Up Unfinished Data"
msgstr "Limpiar datos no finalizados"

#: src/lang.cls.php:32
msgid "Images failed with other errors"
msgstr "Imágenes fallidas con otros errores"

#: src/lang.cls.php:35
msgid "Images with wrong meta"
msgstr "Imágenes con metadatos erróneos"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Únete a nuestro Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Únete a la comunidad %s."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "¿Quieres conectar con otros usuarios de LiteSpeed?"

#: tpl/cdn/settings.tpl.php:206
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Obténla desde <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:205
msgid "Your API key is used to access %s APIs."
msgstr "Tu clave de la API es usada para acceder a %s APIs."

#: tpl/cdn/settings.tpl.php:196
msgid "Your Email address on %s."
msgstr "Tu dirección de email en %s."

#: tpl/cdn/settings.tpl.php:187
msgid "Use %s API functionality."
msgstr "Usar la funcionalidad de la API %s."

#: tpl/cdn/settings.tpl.php:73
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Únete a la comunidad de Slack de LiteSpeed"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visita el foro de soporte de LSCWP"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Valora %s en %s"

#: src/lang.cls.php:26 tpl/dash/dashboard.tpl.php:312
msgid "Images notified to pull"
msgstr "Imágenes notificadas para descargar"

#: src/lang.cls.php:33
msgid "Image files missing"
msgstr "Faltan archivos de imágenes"

#: tpl/img_optm/summary.tpl.php:274 tpl/img_optm/summary.tpl.php:301
msgid "What is a group?"
msgstr "¿Qué es un grupo?"

#: src/admin-display.cls.php:1133
msgid "%s image"
msgstr "%s imagen"

#: src/admin-display.cls.php:1130
msgid "%s group"
msgstr "%s grupo"

#: src/admin-display.cls.php:1120
msgid "%s images"
msgstr "%s imágenes"

#: src/admin-display.cls.php:1117
msgid "%s groups"
msgstr "%s grupos"

#: src/crawler.cls.php:767
msgid "Guest"
msgstr "Invitado"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Simulación de rol"

#: tpl/crawler/summary.tpl.php:166
msgid "running"
msgstr "ejecutando"

#: tpl/db_optm/manage.tpl.php:175
msgid "Size"
msgstr "Tamaño"

#: tpl/dash/dashboard.tpl.php:490 tpl/crawler/summary.tpl.php:99
msgid "Ended reason"
msgstr "Razón de finalización"

#: tpl/dash/dashboard.tpl.php:483 tpl/crawler/summary.tpl.php:92
msgid "Last interval"
msgstr "Último intervalo"

#: tpl/dash/dashboard.tpl.php:476 tpl/crawler/summary.tpl.php:85
msgid "Current crawler started at"
msgstr "El rastreador actual comenzó a las"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Hora de ejecución para el rastreador anterior"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d segundos"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Hora de la última ejecución completa para todos los rastreadores"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "El rastreo del mapa del sitio actual comenzó a las"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Guarda datos transitorios en la base de datos cuando %1$s es %2$s."

#: src/lang.cls.php:91
msgid "Store Transients"
msgstr "Almacenar datos transitorios"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "¡Si %1$s es %2$s entonces debe completarse %3$s!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Valor máximo permitido por el servidor"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Valor forzado por el servidor"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Valor mínimo permitido por el servidor"

#: tpl/cdn/settings.tpl.php:72 tpl/cache/settings-excludes.tpl.php:62
#: tpl/cache/settings-excludes.tpl.php:95
#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTA"

#: src/admin-display.cls.php:1086
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable(s) del servidor %s disponible para omitir este ajuste."

#: src/admin-display.cls.php:1085 tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_html.tpl.php:86
#: tpl/page_optm/settings_media_exc.tpl.php:25
#: tpl/page_optm/settings_css.tpl.php:151 tpl/cache/settings-esi.tpl.php:95
msgid "API"
msgstr "API"

#: src/purge.cls.php:329
msgid "Reset the entire opcode cache successfully."
msgstr "Reestablecida la caché opcache con éxito"

#: src/purge.cls.php:317
msgid "Opcode cache is not enabled."
msgstr "La caché opcache no está habilitada."

#: src/import.cls.php:121
msgid "Imported setting file %s successfully."
msgstr "Importado con éxito el archivo de ajustes %s."

#: src/import.cls.php:83
msgid "Import failed due to file error."
msgstr "Importación fallida debido a un error en el archivo."

#: tpl/page_optm/settings_js.tpl.php:35 tpl/page_optm/settings_css.tpl.php:42
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Cómo solucionar problemas causados por la optimización CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace."

#: src/lang.cls.php:182
msgid "Instant Click"
msgstr "Clic instantáneo"

#: tpl/toolbox/purge.tpl.php:64
msgid "Reset the entire opcode cache"
msgstr "Reestablecer toda la caché opcode"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Última importación"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importar"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Ajustes de importación"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Esto exportará todas las configuraciones actuales de LiteSpeed Cache y las guardará como un archivo."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Última exportación"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exportar"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Ajustes de exportación"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Importar / Exportar"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilizar conexiones keep-alive para acelerar operaciones de la caché."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Base de datos a usar"

#: src/lang.cls.php:86
msgid "Redis Database ID"
msgstr "ID de base de datos Redis"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Especifica la contraseña utilizada al conectar."

#: src/lang.cls.php:85
msgid "Password"
msgstr "Contraseña"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Solo disponible cuando está instalado %s."

#: src/lang.cls.php:84
msgid "Username"
msgstr "Nombre de usuario"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "El hostname o dirección IP de tu %s."

#: src/lang.cls.php:80
msgid "Method"
msgstr "Método"

#: src/purge.cls.php:370
msgid "Purge all object caches successfully."
msgstr "Vació de todas las cachés de objetos correctamente."

#: src/purge.cls.php:357
msgid "Object cache is not enabled."
msgstr "La caché de objetos no está activada."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)"

#: src/lang.cls.php:90
msgid "Cache Wp-Admin"
msgstr "Cachear wp-admin"

#: src/lang.cls.php:89
msgid "Persistent Connection"
msgstr "Conexión persistente"

#: src/lang.cls.php:88
msgid "Do Not Cache Groups"
msgstr "Grupos a no cachear"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Grupos cacheados a nivel de red."

#: src/lang.cls.php:87
msgid "Global Groups"
msgstr "Grupos globales"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Prueba de conexión"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "Extensión %s"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/summary.tpl.php:124
#: tpl/crawler/blacklist.tpl.php:32
msgid "Status"
msgstr "Estado"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "TTL por defecto para objetos cacheados."

#: src/lang.cls.php:83
msgid "Default Object Lifetime"
msgstr "Tiempo de vida por defecto del objeto"

#: src/lang.cls.php:82
msgid "Port"
msgstr "Puerto"

#: src/lang.cls.php:81
msgid "Host"
msgstr "Host"

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use object cache functionality."
msgstr "Usar la funcionalidad de la caché de objetos."

#: src/lang.cls.php:79 src/gui.cls.php:488 src/gui.cls.php:639
#: tpl/dash/dashboard.tpl.php:361 tpl/toolbox/purge.tpl.php:54
msgid "Object Cache"
msgstr "Caché de objetos"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Fallido"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Exitoso"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "No disponible"

#: tpl/toolbox/purge.tpl.php:55
msgid "Purge all the object caches"
msgstr "Vaciar todas las cachés de objetos"

#: src/cdn/cloudflare.cls.php:259
msgid "Failed to communicate with Cloudflare"
msgstr "Fallo al comunicar con Cloudflare"

#: src/cdn/cloudflare.cls.php:250
msgid "Communicated with Cloudflare successfully."
msgstr "Comunicado con éxito con Cloudflare."

#: src/cdn/cloudflare.cls.php:164
msgid "No available Cloudflare zone"
msgstr "No hay disponible una zona Cloudflare"

#: src/cdn/cloudflare.cls.php:150
msgid "Notified Cloudflare to purge all successfully."
msgstr "Avisado a Cloudflare el vaciado completo con éxito."

#: src/cdn/cloudflare.cls.php:134
msgid "Cloudflare API is set to off."
msgstr "La API de Cloudflare está configurada en off."

#: src/cdn/cloudflare.cls.php:117
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito."

#: tpl/cdn/settings.tpl.php:220
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Una vez guardado, coincidirá con la lista actual y se completará automáticamente."

#: tpl/cdn/settings.tpl.php:219
msgid "You can just type part of the domain."
msgstr "Puedes simplemente teclear parte de dominio."

#: tpl/cdn/settings.tpl.php:211
msgid "Domain"
msgstr "Dominio"

#: tpl/cdn/settings.tpl.php:201
msgid "Global API Key"
msgstr "Clave de API global"

#: tpl/cdn/settings.tpl.php:188
msgid "This can be managed from <a %2$s>%1$s</a>."
msgstr "Esto se puede gestionar desde <a %2$s>%1$s</a>."

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "API de Cloudflare"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Vaciar todo"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Caché de Cloudflare"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "El modo de desarrollo se desactivará automáticamente después de tres horas."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "El modo de desarrollo se desactivará automáticamente en %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "El estado actual es %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "El estado actual es %1$s desde %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Comprobar estado"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "APAGAR"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "ENCENDER"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Modo de desarrollo"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Zona de Cloudflare"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Dominio de Cloudflare"

#: src/gui.cls.php:629 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "For example"
msgstr "Por ejemplo"

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "La precarga DNS puede reducir la latencia para los visitantes."

#: src/lang.cls.php:128
msgid "DNS Prefetch"
msgstr "Prefetch DNS"

#: tpl/page_optm/settings_media.tpl.php:29
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Añade estilos a tus imágenes de carga diferida"

#: tpl/cdn/settings.tpl.php:93
msgid "Default value"
msgstr "Valor por defecto"

#: tpl/cdn/settings.tpl.php:90
msgid "Static file type links to be replaced by CDN links."
msgstr "Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s."

#: src/lang.cls.php:77
msgid "Drop Query String"
msgstr "Ignorar cadenas de consulta"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché."

#: src/lang.cls.php:181
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Mejorar compatibilidad HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:372
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización."

#: tpl/img_optm/summary.tpl.php:368
msgid "Destroy All Optimization Data"
msgstr "Destruir todos los datos de optimización"

#: tpl/img_optm/summary.tpl.php:318
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Esto aumentará el tamaño de los archivos optimizados."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Vaciar registro"

#: thirdparty/woocommerce.content.tpl.php:21
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Para probar el carrito, visita la <a %s>FAQ</a>."

#: src/utility.cls.php:253
msgid " %s ago"
msgstr "hace %s"

#: src/media.cls.php:336
msgid "WebP saved %s"
msgstr "WebP guardado %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Esto también generará una clave de API del servidor de LiteSpeed."

#: tpl/img_optm/summary.tpl.php:127
msgid "Last pull initiated by cron at %s."
msgstr "Última descarga iniciada por cron a las %s."

#: tpl/img_optm/summary.tpl.php:81
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando."

#: tpl/img_optm/summary.tpl.php:81
msgid "Only press the button if the pull cron job is disabled."
msgstr "Solo pulsar el botón si la tarea cron de descarga está desactivada."

#: tpl/img_optm/summary.tpl.php:88
msgid "Pull Images"
msgstr "Descargar imágenes"

#: tpl/img_optm/summary.tpl.php:112
msgid "This process is automatic."
msgstr "Este proceso es automático"

#: tpl/dash/dashboard.tpl.php:322 tpl/img_optm/summary.tpl.php:336
msgid "Last Request"
msgstr "Última petición"

#: src/lang.cls.php:28
msgid "Images failed to pull"
msgstr "Errores al descargar imágenes"

#: src/lang.cls.php:29 src/lang.cls.php:30
msgid "Images failed to fetch"
msgstr "Errores al obtener imágenes"

#: tpl/img_optm/summary.tpl.php:333
msgid "Images Pulled"
msgstr "Imágenes recuperadas"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Informe"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Enviar a LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Fecha de informe"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Número de informe"

#: thirdparty/woocommerce.content.tpl.php:76
msgid "Privately cache cart when not empty."
msgstr "Cachear carrito privadamente cuando no esté vacío."

#: thirdparty/woocommerce.content.tpl.php:71
msgid "Privately Cache Cart"
msgstr "Cachear carrito privadamente"

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr "Optimización de LiteSpeed"

#: tpl/page_optm/settings_html.tpl.php:102
msgid "This will also add a preconnect to Google for faster Google Fonts downloading."
msgstr "Esto también agregará un preconnect a Google para descarga más rápida de las fuentes."

#: src/lang.cls.php:133
msgid "Load Google Fonts Asynchronously"
msgstr "Cargar Google Fonts asíncronamente"

#: src/lang.cls.php:65
msgid "Browser Cache TTL"
msgstr "TTL caché de navegador"

#: tpl/img_optm/summary.tpl.php:340
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>."

#: src/doc.cls.php:40 src/doc.cls.php:92 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:56
#: tpl/img_optm/summary.tpl.php:96 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Leer más"

#: src/lang.cls.php:27
msgid "Images optimized and pulled"
msgstr "Imágenes optimizadas y descargadas"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:302
msgid "Images requested"
msgstr "Imágenes solicitadas"

#: tpl/img_optm/summary.tpl.php:308
msgid "Images not yet requested"
msgstr "Imágenes aún no solicitadas"

#: tpl/img_optm/summary.tpl.php:270 tpl/img_optm/summary.tpl.php:297
msgid "Images total"
msgstr "Total imágenes"

#: src/img-optm.cls.php:1677
msgid "Switched to optimized file successfully."
msgstr "Cambio correcto a archivo optimizado."

#: src/img-optm.cls.php:1670
msgid "Restored original file successfully."
msgstr "Archivo original restaurado con éxito."

#: src/img-optm.cls.php:1654
msgid "Enabled WebP file successfully."
msgstr "Archivo WebP activado con éxito."

#: src/img-optm.cls.php:1648
msgid "Disabled WebP file successfully."
msgstr "Archivo WebP desactivado con éxito."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes en QUIC.cloud."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas."

#: src/lang.cls.php:186
msgid "Image WebP Replacement"
msgstr "Reemplazo de imágenes WebP"

#: tpl/cache/settings-excludes.tpl.php:124
msgid "Selected roles will be excluded from cache."
msgstr "Los perfiles seleccionados serán excluidos de la caché."

#: tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Ajustar"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "Selected roles will be excluded from all optimizations."
msgstr "Los perfiles seleccionados serán excluidos de todas las optimizaciones."

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Excluir perfiles"

#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Configuración de ajustes"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar."

#: tpl/cache/settings-excludes.tpl.php:64
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar."

#: tpl/img_optm/summary.tpl.php:111
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, notificará a tu sitio para descargar las imágenes optimizadas."

#: tpl/img_optm/summary.tpl.php:78
msgid "Send Optimization Request"
msgstr "Enviar solicitud de optimización"

#: tpl/img_optm/summary.tpl.php:261
msgid "Image Information"
msgstr "Información de imágenes"

#: tpl/img_optm/summary.tpl.php:330
msgid "Total Reduction"
msgstr "Reducción total"

#: tpl/img_optm/summary.tpl.php:327
msgid "Optimization Summary"
msgstr "Resumen de optimización"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimización de imágenes de LiteSpeed Cache"

#: src/admin-display.cls.php:129 src/gui.cls.php:595
#: tpl/dash/network_dash.tpl.php:27 tpl/dash/dashboard.tpl.php:52
msgid "Image Optimization"
msgstr "Optimización de imágenes"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "Exclusiones de diferido de JS"

#: tpl/page_optm/settings_media.tpl.php:46
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Por ejemplo, los %s pueden usarse para un marcador de posición transparente."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "By default a gray image placeholder %s will be used."
msgstr "Por defecto, se utilizará un marcador de posición de imagen gris %s."

#: tpl/page_optm/settings_media.tpl.php:44
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración."

#: tpl/page_optm/settings_media.tpl.php:43
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes."

#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:92
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_css.tpl.php:152
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en código html."

#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/cache/settings-esi.tpl.php:96
msgid "Filter %s is supported."
msgstr "El filtro %s es compatible."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Las imágenes listadas no se cargarán de forma retrasada."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Exclusiones de carga retrasada de imágenes"

#: src/gui.cls.php:448
msgid "No optimization"
msgstr "Sin optimización"

#: tpl/page_optm/settings_tuning.tpl.php:107
msgid "Prevent any optimization of listed pages."
msgstr "Evitar cualquier optimización de las páginas listadas."

#: src/lang.cls.php:139
msgid "URI Excludes"
msgstr "URL excluidas"

#: tpl/page_optm/settings_html.tpl.php:129
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Deja de cargar emojis de WordPress.org. En su lugar se mostrará el emoji predeterminado del navegador."

#: src/doc.cls.php:79
msgid "Both full URLs and partial strings can be used."
msgstr "Pueden utilizarse tanto URLs completas como cadenas parciales."

#: tpl/page_optm/entry.tpl.php:35
msgid "Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "No se pudo crear la tabla Optimizador. Por favor, sigue la <a %s>Guía de creación de tablas del Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:202
msgid "Load iframes only when they enter the viewport."
msgstr "Cargar iframes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Retrasar la carga de iframes"

#: tpl/page_optm/settings_media.tpl.php:26
#: tpl/page_optm/settings_media.tpl.php:203
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales."

#: tpl/page_optm/settings_media.tpl.php:25
msgid "Load images only when they enter the viewport."
msgstr "Cargar las imágenes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Retrasar la carga de imágenes"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:12
msgid "Media Settings"
msgstr "Ajustes de medios"

#: tpl/cache/settings-excludes.tpl.php:37
msgid "For example, for %s, %s and %s can be used here."
msgstr "Por ejemplo, para %s, %s y %s puede utilizarse aquí."

#: tpl/cdn/settings.tpl.php:137 tpl/cache/settings-purge.tpl.php:110
#: tpl/cache/settings-esi.tpl.php:107
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s."

#: src/admin-display.cls.php:1101
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Para que coincida con el principio, añade %s al comienzo del artículo."

#: src/admin-display.cls.php:1099
msgid "For example, for %s, %s can be used here."
msgstr "Por ejemplo, para %s, %s puede utilizarse aquí."

#: tpl/db_optm/manage.tpl.php:48
msgid "Purge all and clean all minified/combined CSS/JS data"
msgstr "Vaciar y limpiar todos los datos CSS/JS minimizados o combinados"

#: tpl/db_optm/manage.tpl.php:47
msgid "Clean CSS/JS Optimizer"
msgstr "Limpiar el optimizador CSS/JS"

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Quizás más tarde"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "Ya he dejado una valoración"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Bienvenido a LiteSpeed"

#: src/db-optm.cls.php:204
msgid "Clean all CSS/JS optimizer data successfully."
msgstr "Limpia todos los datos del optimizador CSS/JS correctamente."

#: src/lang.cls.php:137
msgid "Remove WordPress Emoji"
msgstr "Eliminar emojis de WordPress"

#: src/gui.cls.php:456
msgid "More settings"
msgstr "Más ajustes"

#: src/gui.cls.php:437
msgid "Private cache"
msgstr "Caché privada"

#: src/gui.cls.php:426
msgid "Non cacheable"
msgstr "No cacheable"

#: src/gui.cls.php:403
msgid "Mark this page as "
msgstr "Marcar esta página como"

#: src/gui.cls.php:395
msgid "Purge this page"
msgstr "Vaciar esta página"

#: tpl/page_optm/settings_js.tpl.php:74
msgid "Doing so can help reduce resource contention and improve performance."
msgstr "Hacerlo puede reducir la contención de recursos y mejorar el rendimiento."

#: src/lang.cls.php:124
msgid "Load JS Deferred"
msgstr "Deferir carga de JS"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s."

#: src/lang.cls.php:135
msgid "Critical CSS Rules"
msgstr "Reglas de CSS críticas"

#: src/lang.cls.php:117 tpl/page_optm/settings_tuning.tpl.php:73
#: tpl/page_optm/settings_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr "Cargar CSS asíncronamente"

#: tpl/page_optm/settings_html.tpl.php:116
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Evita que cargue Google Fonts en todas las páginas."

#: src/lang.cls.php:134
msgid "Remove Google Fonts"
msgstr "Eliminar Google Fonts"

#: tpl/page_optm/settings_html.tpl.php:130 tpl/page_optm/settings_js.tpl.php:75
#: tpl/page_optm/settings_media.tpl.php:217
#: tpl/page_optm/settings_css.tpl.php:148
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:80
msgid "Remove query strings from static resources."
msgstr "Eliminar query strings de recursos estáticos."

#: src/lang.cls.php:132
msgid "Remove Query Strings"
msgstr "Eliminar query strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "También puedes activar el cacheo de navegador en la administración del servidor. <a %s>Leer más sobre los ajustes de caché de navegador de LiteSpeed</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos."

#: src/lang.cls.php:58 tpl/dash/dashboard.tpl.php:362
msgid "Browser Cache"
msgstr "Caché del navegador"

#: tpl/cache/settings-excludes.tpl.php:91
msgid "tags"
msgstr "etiquetas"

#: src/lang.cls.php:102
msgid "Do Not Cache Tags"
msgstr "Etiquetas a no cachear"

#: tpl/cache/settings-excludes.tpl.php:98
msgid "To exclude %1$s, insert %2$s."
msgstr "Para excluir %1$s, insertar %2$s."

#: tpl/cache/settings-excludes.tpl.php:58
msgid "categories"
msgstr "categorías"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings-excludes.tpl.php:58
#: tpl/cache/settings-excludes.tpl.php:91
msgid "To prevent %s from being cached, enter them here."
msgstr "Para evitar que los %s sean almacenados en la caché, introdúcelos aquí."

#: src/lang.cls.php:101
msgid "Do Not Cache Categories"
msgstr "Categorías a no cachear"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "Query strings containing these parameters will not be cached."
msgstr "Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché."

#: src/lang.cls.php:100
msgid "Do Not Cache Query Strings"
msgstr "Cadenas de consulta a no cachear"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Las rutas que contengan estas cadenas no serán cacheadas."

#: src/lang.cls.php:99
msgid "Do Not Cache URIs"
msgstr "URIs a no cachear"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "Los registros serán enviados a %s."

#: src/admin-display.cls.php:1103 src/doc.cls.php:61
msgid "One per line."
msgstr "Una por línea."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas."

#: src/lang.cls.php:76
msgid "Private Cached URIs"
msgstr "URIs cacheadas privadamente"

#: tpl/cdn/settings.tpl.php:173
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Las rutas que contengan las siguientes cadenas no se servirán desde el CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Excluir ruta"

#: tpl/cdn/settings.tpl.php:92
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Esto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:96
msgid "Include File Types"
msgstr "Incluir tipos de archivo"

#: tpl/cdn/settings.tpl.php:86
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Incluir JS"

#: tpl/cdn/settings.tpl.php:82
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Incluir CSS"

#: tpl/cdn/settings.tpl.php:78
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Incluir imágenes"

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr "URL de la CDN a utilizar. Por ejemplo, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/settings.tpl.php:136
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s"

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "URLs originales"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "Ajustes de CDN"

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:188
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:239 src/admin-display.cls.php:800
#: src/admin-display.cls.php:833 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:181
#: tpl/cache/settings_inc.object.tpl.php:210
#: tpl/cache/settings-cache.tpl.php:19 tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "APAGAR"

#: src/admin-display.cls.php:238 src/admin-display.cls.php:799
#: src/admin-display.cls.php:834 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:156
#: tpl/page_optm/settings_css.tpl.php:149
#: tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:167 tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ENCENDER"

#: src/purge.cls.php:301
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed."

#: tpl/page_optm/settings_html.tpl.php:36
msgid "Minify HTML content."
msgstr "Minificar contenido HTML."

#: src/lang.cls.php:116
msgid "HTML Minify"
msgstr "Minificar HTML"

#: src/lang.cls.php:115
msgid "CSS/JS Cache TTL"
msgstr "TTL de caché CSS/JS"

#: src/lang.cls.php:131
msgid "JS Excludes"
msgstr "Excluir JS"

#: tpl/page_optm/settings_js.tpl.php:61
msgid "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-enviar archivos JS internos al navegador antes de que sean solicitados. (Requiere del protocolo HTTP/2)"

#: src/lang.cls.php:114
msgid "JS HTTP/2 Push"
msgstr "Push HTTP/2 de JS"

#: src/lang.cls.php:112 src/data.upgrade.func.php:42
msgid "JS Combine"
msgstr "Combinar JS"

#: src/lang.cls.php:111
msgid "JS Minify"
msgstr "Minificar JS"

#: src/lang.cls.php:130
msgid "CSS Excludes"
msgstr "Excluir CSS"

#: tpl/page_optm/settings_css.tpl.php:128
msgid "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-enviar archivos CSS internos al navegador antes de que sean solicitados. (Requiere del protocolo HTTP/2)"

#: src/lang.cls.php:110
msgid "CSS HTTP/2 Push"
msgstr "Push HTTP/2 de CSS"

#: src/lang.cls.php:105
msgid "CSS Combine"
msgstr "Combinar CSS"

#: src/lang.cls.php:104
msgid "CSS Minify"
msgstr "Minificar CSS"

#: tpl/page_optm/entry.tpl.php:52
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción \"Vaciar todo\"."

#: tpl/toolbox/purge.tpl.php:46
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Esto vaciará solo las entradas CSS/JS minimizadas o combinadas"

#: tpl/page_optm/settings_html.tpl.php:7
msgid "Optimization Settings"
msgstr "Ajustes de optimización"

#: tpl/toolbox/purge.tpl.php:34
msgid "Purge error pages, including 500 pages"
msgstr "Vaciar páginas de error, incluyendo páginas 500"

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge 500 Error"
msgstr "Vaciar error 500"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge error pages, including %s pages"
msgstr "Vaciar páginas de error, incluyendo páginas %s"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Vaciar error %s"

#: tpl/db_optm/manage.tpl.php:78
msgid "Database Optimizer"
msgstr "Optimizador de base de datos"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimizar todas las tablas en tu base de datos"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimizar tablas"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Borrar todas las opciones de datos transitorios"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Todos los datos transitorios"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Borrar opciones de datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Borrar todos los trackbacks y pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Borrar todos los comentarios en la papelera"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Comentarios enviados a la papelera"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Borrar todos los comentarios spam"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Comentarios spam"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Borrar todas las entradas y páginas en la papelera"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Entradas enviadas a la papelera"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Borrar todos los borradores guardados automáticamente"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Borradores automáticos"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Borrar todas las revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Limpiar todo"

#: src/db-optm.cls.php:197
msgid "Optimized all tables."
msgstr "Optimizadas todas las tablas."

#: src/db-optm.cls.php:187
msgid "Clean all transients successfully."
msgstr "Limpieza de todos los datos transitorios exitosa."

#: src/db-optm.cls.php:183
msgid "Clean expired transients successfully."
msgstr "Limpieza de datos transitorios expirados exitosa."

#: src/db-optm.cls.php:179
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Limpieza de trackbacks y pingbacks exitosa."

#: src/db-optm.cls.php:175
msgid "Clean trashed comments successfully."
msgstr "Limpieza de comentarios en papelera exitosa."

#: src/db-optm.cls.php:171
msgid "Clean spam comments successfully."
msgstr "Limpieza de comentarios no deseados exitosa."

#: src/db-optm.cls.php:167
msgid "Clean trashed posts and pages successfully."
msgstr "Limpieza de páginas y entradas en papelera exitosa."

#: src/db-optm.cls.php:163
msgid "Clean auto drafts successfully."
msgstr "Limpieza de borradores automáticos exitosa."

#: src/db-optm.cls.php:159
msgid "Clean post revisions successfully."
msgstr "Limpieza de revisiones de entradas exitosa."

#: src/db-optm.cls.php:132
msgid "Clean all successfully."
msgstr "Limpieza completa exitosa."

#: src/lang.cls.php:60
msgid "Default Private Cache TTL"
msgstr "TTL por defecto de la caché privada"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de \"editar\", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto."

#: src/lang.cls.php:179
msgid "Vary Group"
msgstr "Grupos de variación"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Almacena en la caché el bloque ESI del formulario de comentarios incluido."

#: src/lang.cls.php:177
msgid "Cache Comment Form"
msgstr "Cachear formulario de comentario"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Almacena en la caché el bloque ESI de la barra de administración incluida."

#: src/lang.cls.php:176
msgid "Cache Admin Bar"
msgstr "Cachear barra de administrador"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite \"hacer huecos\" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privada"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Pública"

#: tpl/cache/settings-purge.tpl.php:7
#: tpl/cache/network_settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Ajustes del vaciado"

#: src/lang.cls.php:73
msgid "Cache PHP Resources"
msgstr "Cachear recursos de PHP"

#: src/lang.cls.php:74 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "Cache Mobile"
msgstr "Cache móvil"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "El nivel avanzado registrará más detalles."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Básico"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado."

#: src/lang.cls.php:71
msgid "Cache Login Page"
msgstr "Cachear página de acceso"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cachear peticiones realizadas por llamadas de la API REST de WordPress."

#: src/lang.cls.php:70
msgid "Cache REST API"
msgstr "Cachear API REST"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)"

#: src/lang.cls.php:69
msgid "Cache Commenters"
msgstr "Cachear comentaristas"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)"

#: src/lang.cls.php:68
msgid "Cache Logged-in Users"
msgstr "Cachear usuarios con sesión iniciada"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Ajustes de control de caché"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excluir"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:135
msgid "Purge"
msgstr "Vaciar"

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Caché"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Se ha encontrado la regla de caché inesperada %2$s en %1$s archivo. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas HTML debido a que el navegador almacena en caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en el navegador, puedes descartar este mensaje. (<a %3$s>Más Información</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "La hora actual del servidor es %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Especifica la hora para vaciar la lista \"%s\"."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Tanto %1$s como %2$s son aceptables."

#: src/lang.cls.php:96 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Hora de vaciado programado"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción \"%s\"."

#: src/lang.cls.php:95 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "URLs de vaciado programado"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Registra los valores solicitados de las cookies."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Límite de tamaño de archivo de registro"

#: src/htaccess.cls.php:843
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s"

#: src/error.cls.php:92 src/error.cls.php:116
msgid "%s file not writable."
msgstr "No se puede escribir el archivo %s."

#: src/error.cls.php:112
msgid "%s file not readable."
msgstr "No se puede leer el archivo %s."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Colapsar cadenas de peticiones"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Registrar cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "Ajustes de ESI"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 implica no cachear."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valor recomendado: 28800 segundos (8 horas)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "TTL caché de Widgets:"

#: src/lang.cls.php:175 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Activar ESI"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."
msgstr "El crawler puede utilizar tu sitemap de Google en lugar del suyo propio. Introduce la URL completa de tu sitemap aquí."

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Ver <a %s>Introducción para activar el Crawler</a> para información detallada."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Sitemap personalizado"

#: tpl/toolbox/purge.tpl.php:237
msgid "Purge pages by relative or full URL."
msgstr "Vaciar páginas por URL completa o relativa."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La función de rastreador no está habilitada en el servidor LiteSpeed. Consulta al administrador de tu servidor o al proveedor de hosting."

#: tpl/cdn/manage.tpl.php:21 tpl/page_optm/entry.tpl.php:34
#: tpl/page_optm/settings_localization.tpl.php:11
#: tpl/page_optm/settings_css.tpl.php:143 tpl/cache/settings-esi.tpl.php:35
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:19
msgid "WARNING"
msgstr "ADVERTENCIA"

#: tpl/dash/dashboard.tpl.php:497 tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Última indexación:</b> %s elemento(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "La siguiente indexación de sitemap completa empezará a las"

#: src/file.cls.php:176
msgid "Failed to write to %s."
msgstr "Error al escribir a %s."

#: src/file.cls.php:157
msgid "Folder is not writable: %s."
msgstr "El directorio no es escribible: %s."

#: src/file.cls.php:149
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "No se puede crear el directorio: %1$s. Error: %2$s"

#: src/file.cls.php:140
msgid "Folder does not exist: %s"
msgstr "El directorio no existe: %s"

#: src/core.cls.php:262
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Solicitado el vaciado de la lista al servidor web LiteSpeed."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Por favor, visita la página de <a %s>Información</a> sobre como probar la caché."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Límite de carga del servidor"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Especifica el número de hilos a utilizar durante la indexación."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Intervalo de indexación"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Intervalo entre ejecuciones"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Especifica un tiempo en segundos para la duración del intervalo de indexación."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microsegundos"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Y otro WordPress instalado (NO MULTISITIO) en %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Ajustes de la caché de la red de caché de LiteSpeed"

#: tpl/toolbox/purge.tpl.php:172
msgid "Select below for \"Purge by\" options."
msgstr "Selecciona debajo las opciones de \"Vaciar por\"."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "CDN de la caché de LiteSpeed"

#: tpl/crawler/summary.tpl.php:217
msgid "No crawler meta file generated yet"
msgstr "Archivo meta del crawler aún no generado"

#: tpl/crawler/summary.tpl.php:199
msgid "Show crawler status"
msgstr "Mostrar estado del Crawler"

#: tpl/crawler/summary.tpl.php:192
msgid "Watch Crawler Status"
msgstr "Ver estado del Crawler"

#: tpl/crawler/summary.tpl.php:187
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema."

#: tpl/crawler/summary.tpl.php:184
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Ejecutar manualmente"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reestablecer posición"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Frecuencia de ejecución"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Nombre del Cron"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Cron del Crawler"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minuto"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutos"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hora"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d horas"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generado en %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "Crawler de LiteSpeed Cache"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Hilos"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Duración de la ejecución"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Retraso"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>."

#: src/admin-display.cls.php:135 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:536
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Solicitado el vaciado de todas las páginas al servidor web LiteSpeed."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Todas las páginas con widget de Entradas recientes"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Páginas"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Esto solo vaciará las páginas"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Vaciar páginas"

#: thirdparty/woocommerce.content.tpl.php:63
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "Por ejemplo, si la página de inicio de esta web se encuentra al %1$s, la página de la tienda puede encontrarse al %2$s."

#: tpl/cdn/settings.tpl.php:192
msgid "Email Address"
msgstr "Email Address"

#: tpl/general/settings.tpl.php:101
msgid "Warning"
msgstr "Alerta"

#: src/gui.cls.php:728
msgid "Install Now"
msgstr "Instalar ahora"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "¡Se ha vaciado la URL!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "¡Se ha vaciado el blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "¡Se ha vaciado todo!"

#: src/purge.cls.php:555
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Solicitado el vaciado de las páginas de error al servidor web LiteSpeed."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Si no, por favor verifica el ajuste en la <a href=\"%1$s\">pestaña Avanzado</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "El ajuste de administrador de red puede ser modificado aquí."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas."

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Please consult the host/server admin before making any changes."
msgstr "Por favor consulta con del administrador del host/servidor antes de hacer cualquier cambio."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Recomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero."

#: tpl/toolbox/purge.tpl.php:228
msgid "Purge pages by post ID."
msgstr "Vaciar páginas por ID de entrada."

#: tpl/toolbox/purge.tpl.php:40
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Vacía las entradas de caché de LiteSpeed creadas por este plugin"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Esto vaciará solo la página principal"

#: tpl/toolbox/purge.tpl.php:232
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s."

#: tpl/toolbox/purge.tpl.php:238
msgid "e.g. Use %s or %s."
msgstr "p. ej. Usa %s o %s."

#: tpl/toolbox/purge.tpl.php:223
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s."

#: tpl/toolbox/purge.tpl.php:126
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo»."

#: src/core.cls.php:257
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Solicitado el vaciado de todo al servidor web LiteSpeed."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Usar configuración del sitio principal"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "Esto desactivará la página de ajustes en todos los subsitios."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Marca esta opción para usar la configuración del sitio principal para todos los subsitios."

#: src/admin-display.cls.php:674
msgid "Save Changes"
msgstr "Guardar cambios"

#: tpl/inc/check_if_network_disable_all.php:22
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes."

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The network admin selected use primary site configs for all subsites."
msgstr "El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios."

#: tpl/toolbox/purge.tpl.php:118
msgid "Empty Entire Cache"
msgstr "Vaciar la caché entera"

#: tpl/toolbox/purge.tpl.php:120
msgid "This action should only be used if things are cached incorrectly."
msgstr "Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente."

#: tpl/toolbox/purge.tpl.php:119
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>."

#: tpl/toolbox/purge.tpl.php:125
msgid "This may cause heavy load on the server."
msgstr "Esto puede causar una alta carga en el servidor."

#: tpl/toolbox/purge.tpl.php:124
msgid "This will clear EVERYTHING inside the cache."
msgstr "Esto eliminará TODO dentro de la caché."

#: src/gui.cls.php:562
msgid "LiteSpeed Cache Purge All"
msgstr "Vaciar toda la caché de LiteSpeed"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si no quieres la aceleración de litespeed, puedes desactivar este plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Crear una entrada, asegurarse que la página principal está actualizada."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visitar el sitio sin la sesión iniciada."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Ejemplos de pruebas incluyen:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Este mensaje indica que el plugin fue instalado por el administrador del servidor."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "¡El plugin LiteSpeed Cache está instalado!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Registro de depuración"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Solo la IP del administrador"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "El informe de entorno contiene información detallada sobre la configuración de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "El servidor determinará si el usuario tiene sesión iniciada en base a la existencia de esta cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
msgid "Note"
msgstr "Nota"

#: thirdparty/woocommerce.content.tpl.php:20
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Después de que la caché funcione en general, por favor prueba el carrito."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado."

#: src/lang.cls.php:93
msgid "Purge All On Upgrade"
msgstr "Vaciar todo al actualizar"

#: tpl/toolbox/edit_htaccess.tpl.php:92
msgid "File editing is disabled in configuration."
msgstr "La edición de archivos está desactivada en la configuración."

#: thirdparty/woocommerce.content.tpl.php:57
msgid "Use Front Page TTL for the Shop Page"
msgstr "Usar TTL de la página principal para la página de tienda"

#: thirdparty/woocommerce.content.tpl.php:28
msgid "Product Update Interval"
msgstr "Intervalo de actualización de producto"

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Marcar esta opción forzará a la página de tienda a usar el ajuste de TTL de la página principal."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Vaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "No vaciar las categorías al cambiar la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Purge product only when the stock status changes."
msgstr "Vaciar los productos solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:34
msgid "Purge product and categories only when the stock status changes."
msgstr "Vaciar productos y categorías solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge categories only when stock status changes."
msgstr "Vaciar las categorías solo cuando el estado del inventario cambie."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge product on changes to the quantity or stock status."
msgstr "Vaciar los productos con los cambios de cantidad o estado del inventario."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:42
msgid "Htaccess did not match configuration option."
msgstr "El htaccess no coincide con la opción de configuración."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si esto se fija en un número inferior a 30, los feeds no serán cacheados."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Especifica por cuanto tiempo, en segundos, se cachean los feeds."

#: src/lang.cls.php:62
msgid "Default Feed TTL"
msgstr "TTL por defecto del Feed"

#: src/error.cls.php:120
msgid "Failed to get %s file contents."
msgstr "Error al obtener contenido del archivo %s."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Algunos temas y plugins añaden recursos mediante una petición PHP."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "El favicon.ico es solicitado en la mayoría de las páginas."

#: src/lang.cls.php:72
msgid "Cache favicon.ico"
msgstr "Cachear favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Desactivar esta opción puede afectar negativamente al rendimiento."

#: src/htaccess.cls.php:910
msgid "File Saved."
msgstr "Archivo guardado."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de acceso no válida. Encontrados caracteres no válidos."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden."

#: src/error.cls.php:104
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de acceso no válida. Por favor, comprueba el archivo %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Hay un WordPress instalado para %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Ejemplo de uso:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "La cookie aquí establecida será usada por esta instalación de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "La cookie de acceso por defecto es %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "DEBE SER DIFERENTE DE OTRAS APLICACIONES WEB."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Espacios no permitidos y sensible a mayúsculas."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SINTAXIS: alfanumérico y \"_\"."

#: src/lang.cls.php:185
msgid "Login Cookie"
msgstr "Cookie de acceso"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "Aquí se puede encontrar más información sobre los comandos disponibles."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS."

#: tpl/toolbox/edit_htaccess.tpl.php:98
msgid "Current %s Contents"
msgstr "Contenidos actuales de %s"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Avanzado"

#: tpl/cache/settings-advanced.tpl.php:7
#: tpl/cache/network_settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Ajustes avanzados"

#: tpl/toolbox/purge.tpl.php:251
msgid "Purge List"
msgstr "Vaciar lista"

#: tpl/toolbox/purge.tpl.php:170
msgid "Purge By..."
msgstr "Vaciar por..."

#: tpl/crawler/map.tpl.php:43 tpl/crawler/blacklist.tpl.php:31
#: tpl/toolbox/purge.tpl.php:217
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:211
msgid "Tag"
msgstr "Etiqueta"

#: tpl/toolbox/purge.tpl.php:205
msgid "Post ID"
msgstr "ID de entrada"

#: tpl/toolbox/purge.tpl.php:199
msgid "Category"
msgstr "Categoría"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión."

#: src/purge.cls.php:640
msgid "Purge url %s"
msgstr "Vaciar la URL %s"

#: src/purge.cls.php:609
msgid "Purge tag %s"
msgstr "Vaciar la etiqueta %s"

#: src/purge.cls.php:582
msgid "Purge category %s"
msgstr "Vaciar la categoría %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas."

#: tpl/page_optm/entry.tpl.php:41 tpl/page_optm/entry.tpl.php:51
#: tpl/cache/settings-cache.tpl.php:27
msgid "NOTICE"
msgstr "AVISO"

#: src/doc.cls.php:91
msgid "This setting will edit the .htaccess file."
msgstr "Este ajuste editará el archivo .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:100
msgid "DO NOT EDIT ANYTHING WITHIN %s"
msgstr "NO EDITAR NADA EN %s"

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid "Any changes made to the .htaccess file may break the site."
msgstr "Cualquier cambio hecho al archivo .htaccess puede romper el sitio."

#: tpl/toolbox/edit_htaccess.tpl.php:39
msgid "LiteSpeed Cache Edit .htaccess"
msgstr "Editar .htaccess LiteSpeed Cache"

#: src/error.cls.php:108
msgid "Failed to back up %s file, aborted changes."
msgstr "Fallo al hacer copia de seguridad del archivo %s, cambios cancelados."

#: src/lang.cls.php:183
msgid "Do Not Cache Cookies"
msgstr "Cookies a no cachear"

#: src/lang.cls.php:184
msgid "Do Not Cache User Agents"
msgstr "User Agents a no cachear"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Habilitar caché de red"

#: thirdparty/woocommerce.content.tpl.php:19
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/report.tpl.php:29
#: tpl/toolbox/heartbeat.tpl.php:14
msgid "NOTICE:"
msgstr "AVISO:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Otras opciones serán ignoradas."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Selecciona \"Todo\" si hay widgets dinámicos enlazados a entradas en páginas distintas de la página de inicio"

#: src/lang.cls.php:75 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "List of Mobile User Agents"
msgstr "Lista de User Agents móviles"

#: src/file.cls.php:164 src/file.cls.php:169
msgid "File %s is not writable."
msgstr "No se puede escribir el archivo %s."

#: tpl/toolbox/entry.tpl.php:14
msgid "Edit .htaccess"
msgstr "Editar .htaccess"

#: tpl/page_optm/settings_js.tpl.php:7 tpl/page_optm/entry.tpl.php:7
msgid "JS Settings"
msgstr "Ajustes de JS"

#: src/gui.cls.php:578 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:188
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Gestionar"

#: src/lang.cls.php:61
msgid "Default Front Page TTL"
msgstr "TTL por defecto de la Página Principal"

#: src/purge.cls.php:523
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Solicitado el vaciado de la página de inicio al servidor web LiteSpeed."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Vaciar la página de inicio"

#: tpl/page_optm/settings_localization.tpl.php:124
#: tpl/toolbox/beta_test.tpl.php:27
msgid "Example"
msgstr "Ejemplo"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "All tags are cached by default."
msgstr "Todas las etiquetas son cacheadas por defecto."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "All categories are cached by default."
msgstr "Todas las categorías son cacheadas por defecto."

#: src/admin-display.cls.php:1102
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Para coincidencias exactas, añadir %s al final de la URL."

#: src/admin-display.cls.php:1098
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Las URLs serán comparadas con la variable REQUEST_URI del servidor."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notas"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Usar ajuste de administrador de red"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Desactivar"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activar LiteSpeed Cache para WordPress aquí activa la caché para la red."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Desactivado"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Habilitado"

#: src/lang.cls.php:103
msgid "Do Not Cache Roles"
msgstr "No cachear perfiles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Salidas al registro de depuración de WordPress"

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Nivel de depuración"

#: tpl/general/settings.tpl.php:83 tpl/general/settings.tpl.php:94
#: tpl/general/settings.tpl.php:106 tpl/general/settings.tpl.php:150
msgid "Notice"
msgstr "Nota"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Archivo de término (incluye categoría, etiqueta y taxonomía)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Archivo diario"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Archivo mensual"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Archivo anual"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Archivo de tipo de contenido"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Archivo del Autor"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Página de Inicio"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Página de inicio"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Todas las páginas"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Seleccionar que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadas"

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Reglas de vaciado automático para publicación y actualización"

#: src/lang.cls.php:59
msgid "Default Public Cache TTL"
msgstr "TTL por defecto de la caché pública"

#: src/admin-display.cls.php:917 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/esi_widget_edit.php:70 tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89
msgid "seconds"
msgstr "segundos"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "IPs de administrador"

#: src/admin-display.cls.php:123
msgid "General"
msgstr "Opciones generales"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "Configuración de Caché de LiteSpeed"

#: src/purge.cls.php:212
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Solicitado el vaciado de todas las entradas de la caché de LSCache al servidor web LiteSpeed."

#: src/gui.cls.php:463 src/gui.cls.php:471 src/gui.cls.php:479
#: src/gui.cls.php:488 src/gui.cls.php:498 src/gui.cls.php:508
#: src/gui.cls.php:518 src/gui.cls.php:528 src/gui.cls.php:538
#: src/gui.cls.php:604 src/gui.cls.php:612 src/gui.cls.php:620
#: src/gui.cls.php:629 src/gui.cls.php:639 src/gui.cls.php:649
#: src/gui.cls.php:659 src/gui.cls.php:669 src/gui.cls.php:679
#: src/gui.cls.php:689 tpl/toolbox/purge.tpl.php:39
#: tpl/toolbox/purge.tpl.php:45 tpl/toolbox/purge.tpl.php:54
#: tpl/toolbox/purge.tpl.php:63 tpl/toolbox/purge.tpl.php:72
#: tpl/toolbox/purge.tpl.php:81 tpl/toolbox/purge.tpl.php:90
#: tpl/toolbox/purge.tpl.php:99 tpl/toolbox/purge.tpl.php:108
msgid "Purge All"
msgstr "Vaciar todo"

#: src/admin-display.cls.php:281 src/gui.cls.php:586
msgid "Settings"
msgstr "Ajustes"PKv�R.�G�f��litespeed-cache-fr_FR.poUT	�0�`�0�`ux�����\�rGz��)r��Mtc!�<!"E7�dG8��]��]Tmʬj�y�;��7�qĜ|��"~��YYY����/V�$�;���_�K-s��*)rQ��˴'���iR��R�X<��DᓋJS%��2��*UҨ{"��#��h"�>�H��q9I�%8��lj�t2�+@��XiQ���i��(!
v��K�,Ǫ�Yf�I,>��~�����/_�R�Ā��3<x*{�����n�H�N���?���q�ٓg��4�?����a�W*�v/g%T�]u�Le�%���FU_��|�{�=K�)��]q��O��0����2�}T�̜���_�׃�����\����g�e��ʕ�U�O�㴨^je���^ooW��D�|���5�p*F�ޢ��*�v��-E��/���Satt?��(5�rR���?-"�&�=��M+�GI4Ip��!m>g�������_vp��/�ߵ������Wez?��@�>`�
��Z��,(�;$��oD2��R+Q�T
'8q��d��L<W�U�w�=���_\~w*~x��!P-j��칐9�O��R�"/*�T��3Y��O����"Og��^�P;ܟ���7��g��Q�'ƨ�"RBϯ�)�Rh1-j#�*�q���Q�&I��hT�N�/�^7��R�Կ���%zU���Ͽ���ƕ�a�O�	e,@��|Hz�%]� ��ވ��xS�U�&
��kB�ߨ�s��?�ޚ?[�+��Y#��4C��q^h,~�Lx�5�,�
�(@����?������5�V�¹��J������}N���e��H	��G���URM���ׯ��Z�w8�1�[dpc�a~����D$Q�PA$w�2��-���q��k
����Vy譲��+i�@QW�$�^\�?�x2�g�o��"�"1.DU�;F@ꀲ� I���PA�+��j�Y���Q��$�#;b�j��ƚ�H�%�{�6�]�ي:�h��L=/��DN�r	pT��P�\E(;ߞ�g399yf��ܸ�	y��MPD`
�~'�ȏD
N�$`评4��ʵS4f4�L��<�j~��A��F��c�"��R�t�+�:9����-��K�׈^	��h�/��H�Ż�CU�7u<7�=7_C�.$=N���!�*LAC9�,�Z�_[C��u��3̓0�[��_�����rr���J��d�a5��*E�����~��u\b
/��\sI�g�#��=���:"Q Tӕ�}ںk	S����2��@��!9.��L��ֽuQ�;'��f6��Ij�dg�$O�Y��;dm��R|��÷�s��OF�
�ލ<ɣ�����	6!�0�+�-�����_Mp�M���)�iܳI+�?���X��J�:��T�w�@�IQ����a�8XP&�!�u�Xɚ6���g�̘�*�����ͺH�ȃ(!:Cሉ#}E�k�`+�*���C�T5DJR����I$VB�N��Ի�uT[o\�sP���K��;�
n�6N� �c&��>$����R����YN�@͢đn��}�·of)q��w8��
)�;�����l��;@$���S`�?+.�N���a��
����;��m�H���Q%E.=b�5	d��"��l/�#��ش�X%�Z�l�y��B"\ ��*���%2#LY�6Zs.f�%r�pi"���=�1.�d�3H��2��By����	��T�l���E�[`/�p���oW�7K.����9�)e=�-<�M��|���r��[z�@�>���+aQ6�?o�!h(P�Ry��I;&Մ���G�T�##�0�N�o?�%��-Z<jHXZ�d��.�j�!�M#��b��AI �$��D��ʅ�Q�qmM�?�nJ��389l�.����C�o�K[�\A�;d
��������`�Q�U����B���.(ڑ��d����A�Z7�G����Q��d�QUK[6��%%U:ӂ4Tvn`廇͍M�F%T�.��7��h�\y�&(1��dC�?�s]�w���{ �3�p�+ �5�_lj�y�"C�#ԶfT��iٜ��VRHc�<lSej{b;�騶N�(�l�5TwUkr�/=��P�֒��P���$��3���TYQ�m*�J�\��E5���D�}u����,;I�a�'S*��ژ��^�jxqJF�dl�'+b�*���z.tc�����ٓ��8�BM���Y��$6��#��T���3Cw�Q���@pZ�0�,"�s�Q�=�e&�/TjJ*q�s����Z��(ߧ�*�*�M�p��qbPn����%���[L:�_�м7�U&Y�^N|
J��4�C?��&R�ٴA��v7:7�lsH������|V�|+���znÑdz�"	���٦$�N[�~�����>%=�/��m	w��oTGa}�_�m�W`�"�Y(mب�K��| ?)�n�3�U|�I;�xn�&�3�V��j%�R��v$��+h����ŝ!hn�V�7z'E
�o�kc������b@�2ԧ"ZQz� ��CL��2������~��k�T;��_iJ�r���Q4cw*����M�4���AS��:����:O�Qz�Ó���\��>V�q�Qg2'�
#�~����c�W�R��tG�|5�Y�t��_u3)����fd������o�5~GH����W��E��|�O�Og83�W$�kY����k�G���]��OJ9&x���_2�yUHvm�CC8mYW?�q#�'U���=誓+ʘ�Ze�� ��QI�4�E&��|���頚ӪJ4�[)��I0�䞾�$���t;� �(+'�{3kaj!G��7�����m�¼y^�H'e%.e`\�,:�7'[Мgz��{a��\,1��vh�ȡ���������5���iL��0�W㰮,��{oCUbS\�׃>�.��o><j��KuЦ۠�2CR�;.����9�<yOE�O�ğ����u��VHթ����֟�U����D2�]��y^�ҭ(��]5�>���f�l�zTQ�ժ�o�E=��> xat�j�s�M�/my��������t�9/L
j�%�4���+aYq4�x�+mg*w�Ճ`$�b��h�龍�.u��u��2�7	�ס.��H��j��kS�sS�eup��F�l�D4�V�s+qҶ���`b�;3��X��*h$u�a�7cﺚ�-��u�f*��ώ�N6!�؍~+��j��1VvLJ�\"��񢒚��F��$������E\H�W2�%�٠N7�)	���#�*�;r�T�t�m�@�hT ��9��n���C���//D�[�]	����j�;nq�����������v�k�ې�z��b�)�ʧ@+ך�(D��ð���{��B��Q�c�Z��^ə��8��k<���6`I�,�k�H��O��
Y�q�PS�-(��O��:��#�;�[�:��Mbl��������uQS�,�d*��v����P�2gnּ�Ѐ�p�uBI�.ϻ	��h����8��Lw�n�a���Ғ-���$�a�LooiE���!o�\6챧9v�_s}���6��i�`���P�Ѷ+גav!+���G�����%1�v��w��Z��ڛ��i�a�-^2d������[I\��3��:I%�B�M�i���?p9ga������^�w?��X�lF�ޔ�Nt�]�3|�t�7�۬��+X�F�d#�몢��W�ì�Ј��[`��,�IY�3�3�!��
Mu��݄�`&��Q7T4�kթ}�ˍ�W|$pȒ�s�#�P�l���2Lf������Ά�LR��[�!�+�`�4��P��<��d7\�o���74���ѳ��S��<�cn���.��һO/~��;f�Ԉ��ņ��]�r	�/5%�<4��7T�q�]�e�9��J(�m��<�fv���T�PZB��Vi㉸�Ɠ�V�x�Ͱ�٪�؀H��[ut;ʴ�EB����S�;vl/G=3�ޱ
/r��C(�m5��l����e�Q�GhW�b�S�X��oN���ӄ��Hl\]9����m>"cn��ƫ��ψ���y
!B�4׌ܢ�h�8�AV3�.ב�&�O��c��b�H�^�$����6a�D�'�-�d���>8Cؠ䠳�|�jH�g<�$�E�g��4 ���ydm��.~i֙<"ԩ*���V����euRŅ��B�h��G`m���TI�'j�K���Q}���Ҹ�3�"��H[�.���n���}r�o��Q��8&f׌5��!
�c�
��Vl̶̦��%�ږ��r��
玍���F�QC[82m�Ɗ��谚>�Ck�6��]�����e^��4rEao����Is��e��:oO<'5�9�{nAu�6�5��
�4q
�uy�IP��Dm�JY\�8n��}B���mI�?��?�Bg�GI)�O��]�@�^�/r�.�(��1�vmK;.�c&�h�����D)p�K��26`�Jlf�+;�5e��:�.���
x`	�ǭ܊L5.ͣE%�]s�o�]IA��錝�t��<�A�����O^Y`�?\V;7����d�ۛ<���y�M�g5~��)\�'��6���+Z�󸛖��<��a�㦕�i鉵��'�u0�����r,�O�k���T�b�@�j��@BJX���Q&��S�?���m������l�z�:��=�K�7|��X�����^�+�I[o�fT��[����gETskha���+V��b>�,�G��@���P�'ȫq-�\r�c�#�2�Gũ}��g�)Ŷ�E<�c��BD^ɲ�'���s.��a�Mwֺ��`��i�QW�w�R�t�k�mo=l`�n~b�~[�����w�F%���E�ʍd� XR
�4�e�|ZO������=X�{R\�|�C�khA��c-��I�̠]��֋�(�Ѽ��<t���#��,9x�a�n+��'�m�w3�}�ߞ
x
��~T�M8JJ�2�������(0/Ί�΂�/(���W�<�I0k��	v
9���X�`��
��Tr�>�F�}p��M`�-LsY\�)-©��+� 2_��A�ܭ��hq������-x��u��;��O��A�X��_�:�4�_���o��q�d
c��7ΐ���a+�
�,y�%������^s"P)�����8�r���V����N�iP�P-�/q��c�i�\�;�փS8'Dm�u��-�G���]��7�ᳪ7Uj�'�d�*\�Ws�A!��)��,o���*��4�v�	O1���<Ŀ+�Q~��K�y4T7xm�3��jX��F�^Ъ���9��8�5�70�;�����_���/��vh�f_@�f��Ϲu5���Pk��/r�:�סrn��>p��w�o�KW�N>
���UJ��wIVg�k�+b}F�-��$�V��R#Bk�L��j�A�s�Ć�S��j��S���w������^��?APM\c��ӻ�'�-Fe�ζ�\>�tޞ�1��B�;ܾy�z��fj�7t�%�5�S�D��=�d�<.:KiQ�y%��	��E_������B�%��X�k9�'�@i�<�N�i_e��[>T`�f�_�����w�m����ҟ���<~۽�|�57���[4�q��z�X�
p��y�‏ۡ�
�U�Z�i���7�?�m�m.tX��F!Ҿ���r7�s1=qY�:�J�� ���4jú�5�{6Ҵ�Z5յ�����tVW�Ҡ�^&s��lɄ�b#:���u��̎@6n����i'�N(�i��Dfe��fQ���L��?=����-\
]�2P'�v2��o�\���5��U��KA�Dss�ڽj���[�%��3s��kk�K)c�c���nT���E�!�o[}�?�H���˷OPaUC%�6�Wq^<��J�Y�H�?N��䳔�?.д�Ii���~��4���]�-�r~
@ͺ�
�noR�p XOh��+3�rzC/�}`W�/��ܙ��Еri���U�����v�/<��a��>8���ޭ7�$K�+^5�V&@Qd��KvM����jJb�TfW#�#܃�T�{�_H1��}Y4�a�uH4;����]�[�G��_X;3;fn~	e�4�3�b���͎�������B�B�hdq����EQβ���s�+�Oy|
;��`h�y�6������_�`�5�ph�nj�a�VVm�߼�c蠰�ݮ&�x��R��٬�{��}5����ס����j���Y�qN;�f(m�17�a�!N�yU:h9v�m��g�9֎�]��)G��|�ߘv?��wd8�h
v�cs�!M:��ԒB�7���4.Ҟ�u�(ֈ��{+Z�Q�{�d<�dH�@�cL��q~��c��e��~2��08��D_c�9�"�7K�,��|5���-�y��'_��\v�&��&o��lC����β��iQ��d	K� H�����p��\�r�	;X�u�^�+�x%�:�*c=�A���mo7_#�ؚ��w!��%lt5dh�s���B�r�F,��B����u7��eG�	��v4O����/��uj%�]�%0�sU*��$�;o�3\�`f_pKWo��� �o]�e��Շqv���Ev�p6��f�TV�R��Z�J�*�Ua^7����fNt
�y�5c�*�=��^F���W��5E/G�!��q���:Dܲ+5�1�9�|����[Wp
��~�����p>;�6��
�`lJƒ��Q4L��f�1�RZ��Qak�<C��=rs��,�&c��WjF���Y����:n�nV���LrbSw��t����^���P���D�mrL�(�8A�D�t(-�#ȵ�&��"�ł#1Q�Rf�I��2���A���[7���+����eQ�o��x����n��2g|����|�L����x�Na��v�#U�$t��-��#?/V"�D7���	��>�%-T��
R-⊎+�V�W@�y�j�'�ͳ#|�;�1m,�z$}z��#ښ�NӘ��7�Ň��j�0�q�ҝ��$�a��&7�^W0,�aH5�`��]Z~��&=�������'.�W`�s$0�pTC����4>��]�l�n�pR_���ҿK�!CD�|6��S�~��@:�`��Wd���1 7kW�m���O(}Llƀ�	�*�����fܕ��ؾ�4�
��r�us%D�3{�ڌ������� ��w�tӯ�,#�{|+@F;r;j��}'	r�V��:��y�Cx����(X����l1���&��j��+*jy��Z�Pځwr����<w䜦`B%��'�������x����F��R=#6Y������2�&�tQ�q,���W�=�3eɏ�i�̓C�
�M��
|����z�+f�:��}�U{�S���1��Qн=�9�Sɛ��`d?��� �/�N���8We����t�@�!H\q�����CK�@�c.ס����e�0�S�V�T\�}˻����D.H�]2`���:j���!�*�؀[lIql�95�����d����B�"ZJH�,'g��ìn���u���\`����w7Hj��ln!��Z������%�~��ҥ?=��Fqz#�TU�ܦ�q�h~�8�vJ¬�6曃�����a���8�\��mo0t�P�nA|��z]�J��~�6���I9j�L]>�q��-�k}��Ϫ�_�/_r�" �B���԰�fK�W��H>�YJ�!��Z�58O֐{�@��X����`m��	G<KK�y���R-G�`M��ʘV&\>Vyl�E�>��k�LWDϗ��յ.�eB�3JSo���ʑ�c�9C>�&�)��`B�Z[�:��w"���-4��]3�m��݆�����ҡ������zLMG�5�5}#���4<s�'<�:S�w19�ha�$�ܺ���ez<0�;}���ΐ)0�E�~YwL;W��ŗ0�O�6�kv�r�MJhF�c�o�<�˙#s��-��P�]g���:`H6Q�U��	����,Ŵ)r-�c�bn
��A[�ЮO])��V��� �D�c՝H��D@QO��ɉ�(n������t��p!�d6&����Z߉~k��
��C�_W������-x�FĖ
�B���Y>�	��
r6�jJ��k�`�;�ߘ���E){�5��1�����È�M��u�q[�pׯ|��������xU4�p@��ywI0���H4�*�}D���27[��N�9�x&i�2K�i��eF1���)'�Üh���q�f�lc����CV:��c���3"��զ��𭆄m`O�>��z�}��c��t�m�8�.��Cxƍ�!�̢��;�f$�og_��:�rP�>'���pFE�V=]��ʋ'ƭe>�`
���H�=�y\�KF���au(c��h2
��K:`�Zn+�%�o��\��]������ ��ˑ��1#�֟U�d��"T#_��(樥sA^�t����tYݢ����,m�;�l����{�wwL�Or�;c��"Z��…���5��
p�q�Ifı
��X�s&8���6w�~�R.��h*���:���^H��$"o�
]JM�7�:���a��-J�0c��D�Ք�4�/�\BE��w����
��2J�Wښ=��6�z�	n�#�ې`;��d�Z�k1����N����6|C�A�vb!��8��<�Ӫ#��<�G�,-#���a�)��l�E��<�k��i���9r��n����ެf�Q�-���D�Rb�̇��S���SM�>�h����&WP^�f����GC��5�d�[�9�Sa���Q�a���iMv՞U�*���10D�ngi����j�a�f�z��E4�1�LźD���W,9��)�{X�>�7�8�z�H:eZ�����ט�ka��a��q���,��Xf�⤯_�زJ&���>�W�D�����$�{�����Y���-jV��H
 ^��J�F���CS��W�#s�K&Z.��H�d�z5����H��L�AL0�Ű$
�
'�]g�VQcp�,�Lp�f�n�]?�@����+w2���wD�\nPԾ���K< b��V��F�m���
�2nm"C�9aW�g�(Љh��l�sq��K�T�����wsl��nI/��Gv#��$�c�h��v���`�oI��"CӔl��*�4Q��q�J0�U���`=H'�Ќ\��hHIF>�f�8vعAR.4��k��ަ�������OM�5�<�}x���O;�䅃����XE����M_U�qvo֠�����7�K;�1�>w=�Y�a��Tё֐Y9�h=�+u�dZ3�����;h#�pϷU��.�.���'�>��o��/Ա�Z��h�c�g�I�B�; 2��
���qp]7Y�bt$���wO�/1�����6���+�0�4���3o�j��H�.�Y�HK!��ڕ�nF��Qg��6
[��ĺrEz>�i��/]*��K0�Q�h��6|�Zq� ����o�]��a�"௲�rv$�_�%�L4�Q~�
"ZI�����Bw��?����u��k���Nu���Mq�%`�h��dάu�!]
[�{|Y�q#�*��<�g�F���ء��6��>")[����$���e_j��6�N{�#�yCh䊓�E�?�=�2�A�Yކ���V)�nYQ�klm�t���Y9kg$e�ڗ����q�a���X��t�*E�|�o�	�)^h+8i
iKݭ�Ӵ$0�s���<W��{�(N�AD����g��7����b(�s���1U�r�8�V�>�'����א'P�I� ��2�\�䈦�w�N��ٹګ���LԵ���A/JC4
q�U�-K� CA��Ul�-�bt��:I��Iǵ)i�\�wR_�Nn��lfb�2�ݖ\���q�,*K ���kZ]�����N�(v�&Z(�q���xd}[e�ķ�kQdbBu��p��������0P�n�u��Vui�q�4r_�:-���U�+ԓ+�0Bl���ճ��o���4�:�~$��>.������꓅c�=�˥v6jv�b	�L�d���-����V�F��Ymu��f3��c
�S=0�#��Z���YlX�/��es]%k�2��ȑdz�HRc���Ϛ3��V��l�{��� p���yWf��6��GK�.���{�Qf��@�.�5�,���L77���ߧV���;䆯�N�[��f����g� *�s~�_?E�D'��l|�b�b���u���l��Ll~
���	��U�TÕ�R`�jڗ���GQb���y��I?��`#�S&�o�.K,�P��OcH�T�ޱ���ք��_�wP���K�Q��ԟN�2� %=�~p����Ζ����e�Xd�cJ\J|�m@Lz0�Q�$]���-��SF�"j��&�gܸ��h|?�~"ӭ��m|���B��}���;a	�i>�?>>QU���}`#$M�I�7
�G�2��7"��
1(�n�O���� �K��@&ƫ�N��m���&��f�@�C�t۠�a�R7(d
/�6x�~V+��t�l�҉l�i�\�n�o��]_�l�~��7�v��Z��"��c	j��y�<m�Q�V
ʏ���[��R�.������)N$.bq|?��3i�����Y���R��W�9�pu�&%	y�+pO��T��^����,)g����y��+��։l������+�3�VҦ�>{,A����F�7I�&T���W�awg��C0y��Iܲ-+��P�vTd��^���G5��xx���Q:vu�1ԏ�D��b����awڥ����@��U0BM�J�a3�8�>��m�����=�6�y�
?ᒴr��:�qN���ܐ�J叄��d���s�&ΊtBR48�s=-u�
_��uX�qcBO7FU�x�
]w�&7��y�p��I�y.�
m1��hX�z��z����¼�:M��Q�B6�0"~��HH��	�\���ᭅ�tF�Ik)��2mP�#��-�b�	o/fD_����b�b��:gI�1��g���Hc��y��������۞ު�b֠�[&Oe�댭QA+�o�UX�p��L�'F-��~d�P�s�$�(R8���
l��MZ�B��贉:.�xb�kp?*k�aUY��Q;ӮP�ͯK�"��c$�uLĩ�.���q���`���M:+\��:F}��z��`�e6��]��>�{e��*��h��Y�CT7��Ã���16�w��74�PwO��hH�Em>�e�;�&6xjy�Lj֕&����P���VmFfޏ�4˲'>��s�jA�Mh����G�ӓ�j���1ޖh�h�4�nK�Io��~��n��7n��_�J���i\���Fg��f����~M��>�KN�SK��u>�ߖK� �c"�mrʨ��g�����fD8�8��`Y��Ӽ4��D٤��M�� �k�H9��hEy��c�VE�̆����@;zB�[x�A�:��>�>����s�=�q�cܲ~�Ԅ��������$�՞��^K��lГ�,��%�kA?w[���f���pͫ�}dݻ@m6�2/�����u"���)�(�jL�S��L
�����k�z]u/�:wzmc��;2�}8�N=>��=>�l��
f��=Q�n����K�CFw
u�!k�{������'H[ݤ:'�4e�HI�I����1L��&������M��dzgCYE�j	h���{�&&qX�+��ԯ��"��c�R���=@�Z9e�pP1Y孃�T��׺��Q�\��g��x�a���^(�o7@�fl���5���!��"����0��Oc���G��~v�sN5Ũ�N��3��і���$�_�*�
4����v{�ʏ�,��K���W��m"����Čo'oLǰW�gI�S^E��*�����˓��о&��2�D�� g�mp���̣ws]���AT����k�s9����+��X����ǡ��#n��%q��S�x�jY&HX�YS�%X�i����%X��Y���&E<.��C���D���a����� sb��{�6��<|�[�(���!DӳL�y�Y��x����|�,���	,�ڧ��d=��w�1�$r�݋���f������[�K츦�rh�Yʫ'������]�hX�S�����f��?���Q��P΁�u�*���=���年�oQ��nͧ���a�ϖ
��5c���[��JMh3��ie��^e�-Z�{����AG�`��f=�n(l���j(�EnlZPPTP�Ё���>&��w�1�|K/��*Ln
Q�t�z �Ȳ[�����R�Kȗ.����.
Q�~��%>���q�<V�#��%D�E��s�:
�X�)���h�aˡf����Z�	�K��W]��>*���d\P��9\��/(w�H붗ƄѺ���'0V��u��%�Q$ײ3��s��]v�0"��]���NK�Z�
KG{�2#�:.��_e52�y�L�>�a��~����]޿ʫ��lvBMRo��C�ͤ����R�G��M����A2���A��B�,��t}_De�|��)�� �V�i_�A�=��yVetUu����kik{���6;H�E��"���3l&�}>G�I�<����\�z�L'��^q-a�l�pX ��K�x[A?��0�%*O^D��˾sz4��!.Y��k�N�;ԟ��M^�"�oZ$�A�lT�"��H�R_w��8q��٦;"�B�S��^o��t�����k�U��Il�w��=���I���p�jt�\Z��1_Œ���'�L����,����_G_�KHv����c���S#����&���u�uퟵ�p0���'��e��c�39��������<�t\�+Iw���bN�W���^� n�'.޳};�1�q&����w��ŭ��;H����,P�urL�mP����-�29�z���a��������P��H��p�=Mf5�)����&'DJ
�f��JS֔�L�h��mH�2]��\I�
D���i��fHܲ�Y����
v���
[�RS84£L5�P��r	?8\���J=���R��LJK�.�ρ,Q��{hp�2cx7��u�!zZs(㷫�@8m�X5�b��	���P��
"�����^���`(�%L�������U�?qmii� k.��QsnoN���5�~Z�0�����@gpW��6F�;,��#�P��ڬ��auaT�)���(�c�zm(�|+�\C�<���N.�Pɩڂt�:E�G��BM3�M����^��%�؋�y'�A�+��������F�J�ǡ���-�"Q�慫&V��$Dm��	��=��E
QWu�}*�Yr¶�@�;K1�3�8��.K�FywLl����º�c9��e��"ܿQM8����j�a�5xXU�@�ĎӀ�v�W�����]��hdHw��@I�;u�E@����>�����"|p	DQ����>�e�oH�^���1���F�c�מ����td���ϡ%�����Ř>�}��$a@��,�Y�jͥ�F��t�*�7L3�
7`T��3�>eՓ[ �)��o֒��z5_RLֈ���s_�"�����N�p0�����M(��t6cGX}n~6$�-АE/�a��PE��&P�+U��{"a�C-2�4�
J_D�
�/)��Q����O	�(�7(2q��Z�a����DQ�p;͙	�@ŭt��_��Q���؋?��8��)g��򇃉�&՘<*��y��JvB��ӯ�v���e��w'�
�S��x۵�2}ÿ���v&�wd�_[ȓ��p'�#�<t�iq�U�7W/ϣT��k���p�Հ{���g�t
?����!L-2�T��k0V�-{�8�b�4[?����y��_\|0�T\���Z5F~����ƽ��bO�NpS��
�ܢ!+z����d�+'�=2<$P�`�m���>�B�#��z:�؊j�Q�[�b	
ԥ�>h�e�5�� Tg�ڬ�1�")Ve�*8X�vMr9�Hq�"�Ve��V�k��Ɓh���͞���$��ߢI�.2�c�&+�ɽzW��_*[��+�@7�+�g�T�N!��+?)�f����5ֵ�u�����܊��ya#�$JES�:�l����n)hbާ�v��ZGj�����k������# H��!���rξ�B���L�
d�C�O�/��kH�۽��h=�~R��X�zy�\�p��P��oҸ�_�Ɗx�v�G�mi�������j</!���(FG�9u��t�bL��̌�tr��k+iQt��b �+,��_��˖�=�*$�c��%�U�~�T_���B��R�B@�Φ	�q	ni�:	�h�Z�Ǣ�̹8=����V(K'���i^���]�GPr��~�����
�ʼnɤ�ԁY4��ȕB�oV��J��L��������vvݔDU�#���Q�#��\Su$u|���7X�dw���Q�E��Sja/���S��7��*
�ۀ���o�ȇ�+hˬՖG$� �;���ݤl�3. +/�6T5�5�@:��K�x9?v�z��J�I������H�'��f�ȃ���bz�Ķ���V�����%����
6��F����3�V#_��<eD�p�PX�L�!P�pj�M��H�x3��솳{D�7�΅m/��0�<�R�է��A��t�v4h��o����l��k槴h��/�,4ۻ?0�8��]U|z���F��t�a�����>��D��6Nڣ�mGY?ß��M�s������&=h�E5�P�W�i;C�e�!:����:�\?���@���r_a:���yH"�pDقFk�\���Y�m�\_�����F�x��,x�]�Y>�`"�ɓ���~�iY��	�P,���RX��]��KQ%M�
�٪��[��+���D{f"u�}C>��W�<�l؟ˎ�w��$5�p�	H��X#z��x%p_��141��r�w$]��u2ճ4�#G3���R��~�(u��Ծ�J��H���m#H�l��(���>�Yc�Y{���n��9Լ�mD�.������f�:����Z»6���^$Tj7������;�^
M�D�G
�|F�b^X+~��Peg
�@h[�N0̙&o>o^��#<�Y��.l��g�Y"�	�زB���ԉ���,GbbbvҔ�y�O���dW�Ž6�T�
��SC�/9�ߐ�d�T?��v��IX<ϯdְ4_����{�E���Q�u�[[��kв�9��s��'��[�ai]ᨮℤ{s'�u�u����3-$�馆t��ww,�YN���@(�L��¬�R(V�B��:C^���{���HHaTq���oҲ��-�o�b�?5��yY����ıoc$FgSnDìY�%��:T�=
�� #�%�qwS����YH�����9�B�z��]	�$P��>jT�%�S���#
�r�.���_�"����v������F�-r�Jk��آ� �Q+헟��pwo���x�'K,j(�B�bmk9��_Q�?6�_�R~����{�,��X�o�w�^Z�E)�"����A��5�h��\R�U����Y(���N	+�v�P2Yk+���e�q�^8��a��t�0m$k޳�M�ϱ�GA�0D�H]��^�B�4�?��d6-RI�{Sԋ�0�U�L1^�_31Kk��V}��	�!ǶN	ɜa⌫nJ����6�i>�/��Hf5�.�*�=��j�T�Nk-�`[�Z��@-�E�P�PGw�'�cY
5�V,hn��'z��+}2�A(4_�,�@HC���3��:M���daTx2B��V�T
S���,�i.�>��dkb��J~uֲ!/��D.%5v#�9�Nfl�R��sD�	���KF�&@�Qg�fc꛽	`�5�)���;�v�'�ry$4Щ��)VF5� l�WtQa&8ʥ
5x�Ö&E���6�gd��K���}������o|M�����8�0	̰r��]����Vq�+�OE'�H������[uv��^�N��&s�Q��A����?<`KΨla���F�L�Iti�@��"��-�"�C�n�a��U�؋��-w��-`C��d��s����iW4�M�#����e�j}�rS��y8��7um����N�l��X\���$����A�<���=��
���u6p���6ȌG�,��p�z�4�v6io?�w�%\��Z�H�<q�LtI�WN��U0M����,�� ��~��ԗ@��.uE:nxp�L��@Uv���X|<wꋩ̧��G�j�7z�ȼ!�s�k�r�VC[�q�.�IH)Q�v��RBe�'��]�p�G����ӿ~y�qO�-���d�S?�+�N�*f�2
$��έ(�SU���'$���g�]�O��nO���
b��khX��Mj������mآ�Y�I��sP�mt�=Z�9"=��^���qy|�je��=);m��n!�u��:��if�E*.b�a�I�;ӣ��!S�"�c��o�T��j8[�%�-�0&����{��`���\�p�`��6��%��XP�6�D���j$��#�f��?֩�8|���
��!IW-e�e�2RMƞ(+�m;	p�[UE"��
n]�K٣���?�x�Z��Ҽ�Xު6խ�?�|�.[R�W��^U{7�Q��
<3(��[<~�%�0j]aVВ�A�6�؀�O�I?�!��t`�!V��6�\K��rd��Α'b��I'�&�hω���Q�!�E��	�B,�bm!Z�٭�1ݒw���\�jԡ!�+Qޭ(N@��H�	�L���ã�ӗtpX�n�^�Y�n���V_2��b2b߾9�b�x�-���ə��'� ¤�De̘�^18�2�W�y�oiS?�Kj����2���w���<���u'=A	 �ɐs<8����*���:�m���8Ӵ�V�Im$�t}�v{�<SX���6���L��W��û6��^��/�Y�@����#�H������~�
�G^�K�^�_4+��e�4n�[9��������#��ך�u����v������v_,��%��'��M)̪�x����	%���A�
�>�S���D$/�{��@��Ȩ%���ƿ����g�Nt����`����	�h<�L�?�~��*�엶�_��Qw�{���dQn��ߖ�
����M�^�����,?S>@�����Q�*�9�9ɷ=.��C��.N�х�$�T
|����V��wdž��C�4��\������j4���ۆf�Gc��Q��	ԼAw0
�ꠜ��8��hC��Hf��\A1#�e�!�ネ\8�m����Ð�)1���<��8��h��5ȂÞ��Cd�������U?9Kcv�K���>!�	��e����4l���H�SV����(��>=�`_,$�(H�����ճoNL2�`�2|$Z�z}�~�G���8��Lv��Xo&p�P� ����U樶4/���2Z!S�#)��mP�
��u�m���o�W�ƛe=/���.���$X!�k/a'_b�7����7��t­S�Nj���;�~/G

R"�%���{�v�RP:��[��p���ϊy"�]�vt.L�L>��搉b�&8�#�O��!��KH���3�Qӯ���E��j9I��_	Ņc�\�:�-w'�W�T�)�8�l���ʶh�v�� �_��<�ʸ4M�N
�7�@i8�y�N���Hm��L �K�f��(��#���_@eR��e�ÝHD���Rr7�wvm�["��+<\�񋛕��S��܏��#���yպ^bJ2�R��&�Tΐ�d��ME��LYЙz��O����zC� �KL��v$h$nK�֔��5�U�%�C�mQ�C��?�9�i��z����f�m�f����E�Aq"E����E�(Q��lT��7����
���m����%���{Rl��Ë�C�����r���Շ��iЉ׆��X�]��W+��n�YV7I'��En��zn�����T�O%�U�[��uuA}�"��)f+�ZG�H<<Q����̰(@N:��vK��wj��鎳��Wb��5�Y�E�l�7_�ITL�$
�u��h��s�Vh{tS���a9Yvp#�a�����+�O>p,�PV��	��[�:�o~S��nK6��	�b��l}��e�ST���y�cU[���R�	a�\��]�}s&�1��
�n�E�6�����w3[�$�~)����n�
��Q4p\m>2j���LQU%�O��.j��l�Yi�D4��e�g��g��G�I����x;�d�U����|ڰ��L,A�jvܡ����� ���1��mh<����.��b�s�ρ���c)�%�x�uO3Ӱb��ލy��c�TC�V�
t/흾�}ݾ�v8�#�Eށ}�%�0"�"�V�t�0�_�IDw�2Ǖ�8��{�8#^F-~�TP�
���o�N���Xmi~?�:֖��
��AJ��� �>��a-��y���L@`��#΂��دs�2��
�(p+��8\U�3�h��i�Z�N>��mLN��*��P���	��v(WÿBs7�@0�Z3��s�jh�lһ��	o:�O-z�*�%6	$&H
��)�jܜ�o������,��c�3��C���Au�y���X�*L4N��h7�]X��%���r|�FZ��&#4���P�bl(T{�.�,��!<t�j@q��V@,�p,;_)��A_��,!�6��%�����H؋Ǝ0�~Yi���{:�ڹ{N����So�޶�<
���L�H���hL�[��t�*���2A���|攵�IJ�p[�j$bH��S���+�͈7�
����Y���Gt4Q��0�i������^	ț�$�a�>ꞆT�q��ho�
,�����j�a����сG�	�☌�,s"^�y�8K�a�3�ܩ��_v�A	��HlG(�
R{j��G�'"���qL
6����չw�l�um|$�H��Zn�QP�r
�]En�/A���^�CQ��#�R��d���aՂ$�Z���
�1���Ly�NK����77
Ѓc�p�=B�c7{����"t`D�u���B�aSF�m�@����w�;+�~:�An�B�`��D�ҡ��ߒ��s�;y9ގG���w��c�@�;
H�H:���-��Efbd�g�W;j������M�.��H(�o�/���=��l�:�_ۧצ@^K�V|�����%���y��v�K6��ЌnB�ۥgC�(�hr�՝�3���mZ���"�9e���J%5Rr+���zy,��M>��[��>T6������S�_.W�ƴu��}�d���``�N�=q,W�С�|p�d��>7���G��pU�`��V+F8
w<QX ��,1`�U�bFPw�Fw� ړ�0�aH����r�����;�`;���Ų��/F&@����EKEz�u��-q�4�x̘{��G�@5	�Q9q����-:���������{��Rn�$��yc)�1@mW�b��k������Y��R�[�2��(�4�X��ŋ��oA��w��(	%�U��L�Ljܢ�Iu�
G3�kݓ��a�$���-�sH'{]CJƝc���Q?��hg`�|A(�~�{ܖ�+w��� 7;����k+�!�v���t&����ԙ�T��؜Ìm˟�E:�a_;���F6jy�.��t�E	XD&��և��JNG}G��xވ~db ��<@eBB�!��_�ơ�*N,K��N~`Bݣk��V�-8a+z2��i^��am8�3"v*D����|�'e�Q����D�-v���M�!\X�n�0�N6/���j�9�by�ږ9�ǂ>��̉�Ť����+r�$��b�4�q������b����}��'��
�q�y�5F�lb�S[��bp>ŗ�7mǚ�K@n35f�
���a�#f�>c��޶�6�!�Q[镈tc�#X����*��LF�-u���2z���l���L���	�k~�@�Bf�6�ۖi^-`��ڑ>�3�����yL�#'����*
ý�0���M �}X��wlP؈ �``N�`��"�ِ+ܫp�|���;� �t��P#��.e5
����A'r��k�<bh��b��A%@�y/��5
`"�|����EH#͔Ք�� m{>����ƒ����S��%��(�����ZXɏ�E7���-*�8�􁓰��rjj���ϭ�@��ϒ�6ՁL�-�.Y��X��Aϳ6s�lc%��_�M���K��{$R�2�I����aǘ���0����—cb�����8i�IX�Xm�U��`��\n�aaݝ�~�ߣ�k��pl�wF���b��!����7
��l�Ѹ��F�87_�����S��D��-�/�KBgt�#19W���R�Z��)�B���W���9���x+(�Ξ�AB����v3;Е?k�9I}��س:�f�%%.�S���3�-�0��(K�m�B�I����}��[RG�������{#��mD�wC�]���,[z
;=�i�����V7���2�ڶ��*=qq�k��O�dc����
Im�x<d�]�P[\jxR��{����X��/���.`}g�	"2�k�f�$9�y��luB��n.���1�(r�F<���L�3$JѨ�#J=@�I���\�G��/eR�����y��_���`
U���[��x΅�n�<���g�M�
W�|>
�j�kK�6�H[�[�#��U�D�&\&?���,dH�y��r�@�����8F���*m�gF1g���SE�I@�A����{��4lh+ �F�7�>����ܯ
qw�^"V�7�u�I�
XĊf`:�(��Z_t�gC�6����9���]S�@����\k(��q��� -�"в�KK�Dk�����nLpդ�
7�P��2K,���\�ӥzF�gÝ���`�[��:�j�os���a&&,/�>�K!�'f��EK�A�bL���y�ʝb����Q��c`��L�	1�����wp�F���X�X˶�]il�ܸ&���Y����C�� <Cf�\f42P�v7C���kK�_�m`*�Cf�S�@��I[q�^?���V^ƎH�s��S���-�;D��{��#_]b��C� G;Z��X�
�u�Z�/����B�J0/��x	�|?.A�T�Y�jrBh��(}�B�I}����P��C�O5]�3'9�먫�!��>܆�NW�h?6	FI��qr�Z���=)1��N.�%���#l�N��?;�J��\�?=�?��-]��!{�G���aٿ��������l��R�n�bpm�f-�B��#��9�w���/��q;t�繑l
\�Y�i̬Z�s#寮Ke�׎�<I���?��w��1��9�C�c�J\����W�d�Ot,(��E���wi)3^Ԣ���W�Y�y���Ы�����
�Q�>��*���?���Pf�t���,,BU	)(���A���3S�������dh���Ivl��:����@�iYV�玗�� ��~ߦW���f	����ۃ]��ŽC�&�cIv1r�����������Ex�B�l��
�����nGK��܏ԸE�=��\\ǂ�8r��>�{�թK�������s~Z�/�کİ�0�M���u'̹�v"��nxdT�Zʲ�dp|(m��6:i�"Lj�f�p�2�#����
�{�~H���PP��ne�W<h7E�ft��63%�Q	#
Ϸ��4js*O��
�H�q���k
)"�ۧ.�+�{��Ia�9iCv@A�Ֆ����[�?�m{�&m�U?`�0�?+��w���w�̈́s��vѹa��6�2
��f1��
q��̋'�a�L��,O��������֣�+9 ©eNn(.8n���g��p`�I��K[kEmw�}5�')�Y?c�L�Am��/��Ȥ%ۅs�H\�m��yҖ�\�蟨�`���W�.���ZK�u�216b.��v[��we������������T'��t}#�����=��f���>9`��z
�DaA`��k#:n�9��Ӻ/�]^>��e�N����s4`�{�[XK�-J��*W�:�PQ1':�%�rD�P1ܤ�}�;�C��]��]GomN�aB3�˓�w�肱O<���М#2��ZPv{ǘ����� Q~�(H�Y�ԫk�S��5�V}X�x\�����lsp#����+C,z���K�Y��PP�'��3?�Y����b�Q��D��3����̘ ۾��^����r>l�R��ȥ&92�Jq�.���p�@��L����y���[3�����S��[��
���QK/(��@�S�!�����ӈ�!I5+�G��
��[�K^����}f���3J�Q�\���!X�fl����mT��l�������k�q�}�>�yKܝ����H�� e�'f ��a���IA���W��H,c�S�R����/��wA@����ɾ�D���-5�TS-���o*[��x?]e���ټd�>87�R�y	�!y�(
��x����A�L���}��v�c�7γ��%�5��4�J}Wʂ���F*��T,$x�<C���^�̦#p��T��I���-�.��W!aow����~��Ƒ	����Wt*�Z~r/��\�Ǖ#�¤4�S�8��V�1N�����w�#�k���r$�D� �=c]�=zf�����B��e��Q
��B�.f��7�j�fX�mג��ʫ@{DA�wd񦄯�r�o;�f$���ɢ��Ô��T�i�YRi�*Mh�oo�q�����2JQ�
V�٩�*��n��e��1�z�<���m��}(���!]*��"�]�w),�����j��C��2�+�7�X�C	�M栚��0�
���z��p���#|+�B:ʢ��Ã�:��5����jex���v�*�g��4�����?Fc�%�y�8��.�K�'��`���A�p��`�:sDC&�?��(��ʽ��Q�G�:��#�
�ڝO�⟈�[1
�E�wN�J�LjfZ�]�*�k�o= u��l����@��h����^&��$|���3�WF��8�aܑ���K�Eh�����4N�P�K�E�+Çite*�&���l.gc3���L$��|�O�hšΔ�8]�S[j�A\������Aj�T]E>:(�֡�T�"Xu�,Ǭ-��?t��n��Ԧݸ���w���|A��p��|X�T�j?��r���Y�-<���Uj2�!k��<��O���5.�w�*&|�GĂ�F���Ϛ�����[{\��>��m\f�Z���y�M~=�>�e�p�7K���_�G%'�Q%u&�'��[2�#NQ�G�xڅ�����O{�Y޳Ӄ��C?�H�h2.��Q���qrq&��p�mor�&���p�_��8�ŀY�6�
H5\�֙~��{��鵌��Zʲ�(g��h-e��v"�G�!��y�:c�|f�/Gs@,C6(���=�b�+NH_+'�� Kz�I��!\n�>b���Ah�NǬ:�������>DʘZ��*z7"���p��b���j+1��P�ß���4F��g@����4�x/���tA��Shh�����9��2���=�y�
�&N\�H� �ulh�L�O�\��
���|=�]�f&���e�X�u(���r����\-0=1U�M���/�&���8�5���[%_>���e���T}�.'�˟��v�c�^��i��8�g�r�1	��H��g�L)�ի&ù�vD��Gm������j�.����GOra��7�7��F����/O|iiѧwSiS����
�����`�	�m��էO��^�Ql��p�,#f�t�R�ǖ$ȯhJ��~]��x]�~{��Qsk)"�]�V�?�T��f���ᝋ$3z���kMt�>������r�SN���rp|�����6��c�������ߍ�F^K����F~S�Rz���<�7ص
��z���'1d$jo)��@����n�RvK��z��zU�ZYHl�8��}��H���
��jg9��
F��C�cx�ȑ�>P��Ȕv*&�Jm�G�ay�4F)(���(
ĢGϏsẀsT�oI{��NY;?]��uu^p��&�ި{�q�ړ�G�%e0;`�t
�4�~"?
��M
�,�2o���;�+:س�#'J�Z�
�g;}v�#֭X�
�jrYK�60{��n���2�o
9E�i���l"0;5�ċ���r�+�Q�8@Q�b�9}-���1��.1��5n��;��2R{ݩ�sDi{�oʢ���	���g/!�4�
ƣ(ɐHR?�hM�E�� �M��)��|��y�Z�.�1�����������`��_�wyUw\����ON��n�nݪ�%eβڷ�{fN'A�v��wj��蕚fj��^`��)Z`Ǒw�#'ܮ4�H�]�Q��D)-9�*���DC�����ֻ,f��O]�5��|ؤSS�d�$�r�W$�e��������]d6\�A�Ѝ&n��?Jje}���,��Ɓ^�q��:���SV�"Ѽ�������U�����չ���jy�<�)��B��[�_>��R����w�J�W��]�q���h���#y}�ů�O��q�m���_��B��8��޹�At_�[�Q��w�#��\;�&�,�
sknf���:��4����/�&
Z�y�
ӓ|�}'���Y�Xƥ A��J���rݥ!}f^�h�x�أ�֛���m܂
�ؾ�=���������"�ia����G��?�}U�>��6Qb���[�ޜfp&��#�o�E)���F��e�xܧ�cQ��ۏ�c$�	,��U�=�	X�

7R+f�BN�1~l�LDJ&Џ��%C�Z�~
��v^!���2�[!����ê�%����J��J�x$U��b��*��`���S5�E��Z�HH�]���I�B�H+#"�@��q�ϟ�K�۱kMlxCT� �{׳Za�Uz/�����\=���2�<`�o�\x��IIpq���m���vG��Q�v��=�Pv����X� q��IG�LY����Sx�5�@��vKx	���TmY��l��2�ʼ)�̿�n��6�b�U�{]�wz�G���w�����
)�H�\ߢqe!�s��Ԅ��@G�F�BHҒ�%X�R��:GNnK�ĩ�l��3b2�r�[o�ꀩ��|I �"1DD��k�R;�?0D��i��LB���N����K��ԹD8أ���������Uy�$�i��\
�n)N�n���� n�vQ�e�XH\_��
�ȿ\~l^��c}XYoy{�����/�i��e�e�j\�>��*�÷�Nz˔���S��8��*�/.�owsA��M�<���X!C>��!ȏ�_��lP�u|�v�_���8}u�G����|~�^
���>A�'�h���?���\�H���-_��S%�f���@ݛ(�Y��$��_��JC<(�=A���E#���WP��P�9B$s!�\Q�8�-OM����t��#�Wٜ�hT�B�C~�ٜ����4+CjZ1V��a�DjI�A�C�x͒`�Bo��X����nV�n�,���'3e�c�]����1��-]Ȍ�ZX�ß0����
���3.]�&*f9\��!�'�B�=U��t�<A�kā1�g<`���ϵ"��_ ��~$�1+Ԩ}suu�W%��KGށ.��S����\��yݨ
-Sw��ŋ��W��6:̋�*ˇ���R�>�^�R��+�J�a�V�ʑ( �w�JJf��@�O��g��I��L`Rsn_���g�pB��=�OI/F���8��V>_�`�uY<~����@f%�p9���,#k�AR��~�h�}�2�:�Z�z}�ǃ2&��Z٦S5Veq�렛��l��ăI��D�|΀1M�!�K�w�4X�ީ���t�>�f5�!�B*`�25���K�;���M�V{	���B_�� �ard��Y�i���Q"�U~[���	�����jk�qi������١��*��H��X>�[#6Vޢ��}��,?�dd݊��������=�@2��N�n�'
콬9+�V�U>��@/*̆�Z�?�b?]߈vr/��w�Yz��51􄴏Suҝ�lz�X���sÕ�����(��<�&>�Z$r7k��C>�Ru�!�7䂩�|q��{����5`
�%�H�r��n�Wcda"�uakQ��};I�d-�T��Ό�dB61�}T�/p:!K=��ܒ���T	��rԲ�@\��Xk8��>	*(��n�	��v�̙���3�at�Z��R-u�2��֍:��r>���2����w����
P������#\���UD)%�� T؅l
�ZK��Y��)}���e���5�Ш�׮�B�Uը�/�*&m��'�����'��5w�7���` x68'�#���xİU\��Q���Qd�>�s���0�Yoʵ&j`n�lU��5��i;a�VE��Z�
�alD�ԁX��K��p����`�vL�����h�7��JG^l̲�u��G�,)����K+�O4[3�=����b������"g����{9i{ˏ��E-b�+�
�+�I��J>�M�t��Ě�9����eD=������*����ś�� bWdM�@�7���*�v	v%���P�aw<5��D���fͺ�j��O�R;:�'N0��s{R��MV��"�I��
�/��O���2�w�O�g�����_�ݑ+B�������`���)�71%��#���i���&v�֐nd�Y��2�U�[���6Z�\�\�TW�[�EgÍ�����:��63�{c���nG�b��5��ڛX?��M�U���Đ;vwg�a�I�Ue�i�Ԋd	>�f�L�#�Q����
ܖ+	o����5��1 M@��p�JA���N��%�[�'�x�h5��i�v2�?�Q��d~Uw���ruu���L*U�f���{�������G����w���Ȣs���9�ա�.ZA�Τ[

�����DO`0AB���?�-���wZ:�t�Q�O���fBw>r|`�
8f��/�
=7Y�\]P��e!#+' (�_kÒܶ���z�
��B<�J�)ޮb�k{�d[F��U��g���Y�����v^�"Zg��&�;��\�r�r$J��wn��$�x��E�u�
�PB���"�j����u$���}��Tn�0֯l�:nJ/��U�z�?!Z�1��XW(Q�UӾ'�iU�+�(ϛ�ax�D�#BC�͕u�0eًT�����w��`���]-�"�w�݋�ȵc,�T�A��VClA�࠵M�4�u�Kg��2�&����?�5(���f��C+^�����GVr|;��R�`�4��h�	��9�)n&�����F��3dݡ��H������8*Kv[��1�g��D\�@ϚDe�~��g:����6j)�"�㛝,D�m,� ��w-�6b����&�8�(Ü#�'pT�xR�)�ub.N��s�q��L�О�Ӓ�Q����$T�q��/!q�����j�\�<�)�꟬`+|�8V��Ʒ�C� ���K��H��@u��%uY4�j]�� T�Lɨњ3ne����cY�������(�#�il���SF�� ��5~�����0��a�q�;��BsQ�N%'P�"�����b�n}�~�`wA�1r������I�M�E��Pi�!�v�34�F�D[~�P��X��8c��Nj�\l��SºB-���,'="�/�h�m��p��"�D��K�|*J�#SyL�_%��vI�9�W�"34�AdB|چ���r�Y:��A��I;�jj	��ڥU7���ҫ�^�6�B��Ø,���N��
w����~5 1:��
@l֭��<B�Q�`�Q6�M�L��Fu��StU�,O�$\�ҷ7�u��C9b߀�9�0�Th�Q��\
_�*	�>����l��2#6v��
��Fm��!�ռ"�::zP�L�6w�j&A��sPxK�ߖ�N��Q��T��������,h�wPCUK1�۱�/�
��_j��B��[��(���y��!.�6��a��3�w7p��Ӏλ��dvF�&���C �z�N	M#��::�z@��b3��p��
h'����&���@-x�����!oF�S:��L}�}!fHQ`k�G�G�RYX�s�l�7 R�n03ǻ���A��+9��gM�Uf�e>��B=S�~hԷ���Y�Ha&�`c����?��T��$E���.���˼蕰}75��P����������<-\��ai�Zi��a��p�V�hبq3�9�0t��A��������?�1D�<װF���h�	�}s@��c�
3Y�%��x��Ӣ��ԥ�l;ҡ}$�;�vyj��Kr��/�p��2��H���� lF/I�F_1
)AK(�@���	m��D�\�4Zv�X���K�,.�޶�&)3zu�p�D��1�F5��cI�D�x��V/���U|�����d�q@���
Xr��I�A���D���_�h���KV��J�����?��lG�j�X�d��F�g�r�	��	h���l��5h\r�02��)}��pj����6�-JԹ)g��kuW���d�{$P�~_*�R���9��i��cZ�=�t�V�M�T����ҷ��6m��9�`�Z��1�'o!�׬n�A�JB���ְ��>�P&�̚mV�+��k�╱*�7�6Z.Sw���b���8Zk6���f��z�?�8gG-�ֵ
�9딦�v��Ʀ�{���[��r2l�f��i͗�f�2��Gh���0���]�L�q�p�6�ϐ� R{n�p�#��I�q��ۑ�+E�ӍFin�
܂���V�Bu)$f!"
�x�1�������F({	�VՈ�h/��bJJ���&�| nא4ю�S'6�S��7���o�1fR�����l�t=|T��-��KM��K�4�c�
�t��OY���h=�>�Gm���@!K�$�E�Se��й�,܉�M#�	`>�V���M*2�T&�'���D]�=tu6]:p�*��:]���ۮ���y,��2�2��Q.���B��w�Bձ�����ǘ��̳D]���� ,�A8P,�4s�
��4!+ԻѴD*�m��R�s�c���5�S��ǭ�9=s���}w&`��l�8��^�=K��t��u_��,;�Y}�)�q	�f�q���	>2l�b]p��c�m�w�}��g��Q��^��
����2�;
���˸|O^J4��*�J��,�:��…�{<[����-p���e�-`��
�Ho��Z�k=K�'�<��lZb'��a5K�+3�EY��^	��zֱj+YGO��c���A�Є�)���/�p�<�sH��5Ge�dM�x��:1��;f�;MF1Ҭ;�.�kp�.2�M��k�_(뀋����u�>I(�dƖ���9��Q���R�Ȏ�i�.R И�"w��H7��C��f_�>��(�����r���w����.�/�b��-*�z���;�"�b:&n�ۭe��[�[�c��3f?���5�v��u^�)��>4"&�>.��it��K��V������^�J���{��P<�<-�p�ӕ�TV?|u�
՞&��V���.�<�����)B��r֍�-�Q}w�Ռ=��O��\��{9-��tG��!�J�$�E���h,��g^�3�]3��/��bg�
Фhv: ��]���dב��"��(��H�m��Ɛ�'<��kSy�x�t
�Y���>��8&�����7ܬ�9pi	�8gI��@R����l8�d=|�.��AR�˂S9s#e���C�]�L����Z>�S�&���
u]��Q;��ı?9	p[�z;�� 6�V���ߞ����;l��듟���N��!�!��'E˽ł�:m�v�ί�rz��[U�j�p�� ȀƠ����k���A��kѠ
�=5u3�ݵX��������xQ�A^�)����Yj�u!`�j��`�>ޢ���8��Ȑ�O}Ŗ\HU?A�t7O��9��Y`NzV߈�
�y����F�+B�� �V��~�n5/�4��A`���
}���=f;�1�0,��m;�=~p�7�q�:b�RuRV�8��5`��eݠ�h�}s6n�ԃ��X3*I:k��D�1�!Rum�c�Y75Q{�'����YU�5u��(��^+} h��k���Ԉ�:�-zBk�G!0f�_����ŜV=��A��{��E�w̭cZ
�����^1gs	�f��c�O
D9'�
�w\�r�_^�X��
�����3hq��B)ŋ�#�}�n�
V}G�#�bU+�Q	��v�҄r@s�V�S`G�z:bSr����_��c��
��80R�`1����r^f�
q-��D�4W�q�V�I�"�&�QD^2,b�C���jN����5x��������F2^�I{�w���g�3p��F#/l:T��P�B�c��?j�6.�b�#2+�7W/�1橾lb�>>�ħ=f$-4�<�׿��4�s3#@�%�6���@M���}����%���l���W�@e/v��9��1���c'΍[\��hM�6T� ��Q�Sc��Uk�|�Ѣ����6�5�����׊ֈ\+H�Po&��gZ����ΊD�; :a�?�]|�A����nD

@��K99�L�E��r����qϯG;;����z4�]P�G#�=��>q1���>��
T�:!6��|<��`e�$��	���Qϯ���C�?e^G������Hؘ��^36���؛��`��~ѩ9iO#�#д����"`��ZG/xE��K�#�������lI�_��`7�tk"%)��܀
�£�K���@yP <�Y�
��PXy̟�N ��+��9v�	�"
x ��'H��
0�B؝m4���x�. ��Xј��xe;��T��_@��	P��żX~�qڧ���0���@�·�,�t�mI�OrjNuDƜ�p�/SS�n��3�/F��}�T7�+��Λ�;���_$���f}]�I�
�|��{�I��CuO�����ٳ|v�R����r�8�}�^B�Z�?q
A������Ud���=�g��X��}YD�bq�p](i�Xǩ�n\�5���)�ӈ��z%mGD��C�5�)���D
pRDqDX* ;��a��:!#�[�r�.P����-�<����)�5A �Y�뤚IL1��$���p�@�R�
��Y��C:��q+��	T�q�>F�Xb�ŕ�;sa�C'qGF��H8}-<B֠�U��%�$AY�����tg����-Mf�i�����{Lw*9��~We�f�m
T�Z��*U�d��ǃ�VMF�ѣ�WQ���K	8���t�#�nG@9ypte�:`��'�	�g�X3	���)��b��0�{�Xv����1O��j�3�%��7o�^�=�AW���u���FJ#C���V�ǏT���~s�^��J�W9�}=��P�no����uu�
�W?���8�1�7]�'�i��"9NU��+<[�>�� �#�̦�}�r0U>�hW���t\ɮ���V�5�c���E��=J���,��|���kX�V��~u%�l�j�6�b�6nV���'>�j�نe�t��q���봷wࣝ/	�N�ҧ�e"׳xM.]�'�~��*0ٳ�FRƋ�)T�&0,QS��D����>�@��^m_�e�H`�0����K��%"Ƣh`����@�T����|Z�^�Չ��N��ӝ-�{���:0��v�Uw����S��a��)Y8�"�#�)	8S߬�P����3���n���V���:���:�>�1�Vc�#��CGΧ5h�m�s:�n���R;����]-:��S��5�[����~�7(�~�I#1�֫�G��F�Ո��#d�uo�����A~��Ky:�6�#M�����1IH1)$c{4���n�71 �J����
��*E흨�o����Bq*|�p~}Ju_�5�FXy}ST�(�7�{��8���e��k,����H,V��f�1e�'�a��CP�C^nP͒�V�g��׿�?�$���o�+���n���!�-vX���Y5�
�:��e�.a��iژ@
�n6sÔ+��k[�*f�N\��]�/!���]� �%�"*�z��>��6C�D���P�^�>0asQs�u*2.mj
:u�����������k)�}��x
����n�j�e���~�[�>��e}�-�������!�%�&1��_g����J�%��h�F}����q!�lY?Q�)�'�ZE�/Ϣٲ���Q]��@=��&H��j��|MR�l�vٽ��Z~F�����Qb33����`6�Wj�>a8fq��V�:#���`��a��Sy�Yᨁ�Zݬ͎�P�㙳I{𲸾&J��Fʖ�l-������
�f����
�����y�m�%$է,P0K����g?���*�.�P���
�ƠKh���$�Y���NB�Х
��6�J�-��֍j�<�fU"����$TK3L`.�����6-5�|�	vX
L�x�)������g;Bh1��2�&����ꌭ�t5#
��&�Xu����pwS,i_ގ�r>Y�Z�Lkj�:>�j�o"x��S��MZ`X�"Cj�n�F^��ձ���|�����_�t�W3�]����@[C��(s�U{�(��Ra9J�l耤��#R<����R3��>�^���h����Q�C�ѹj�ј���\���y.q`Myx�����sn.P�W�/�L�m}~n��8C����,�Mnh�`�q�D��T�������:
��uI�@=�y)i��>r�O,Ǒ�b�Ϟ' �Dq����YηZ0�O�ڽ�����M�.�j\�'���;xlv(���ww���~f�Ga�w��$���d	�Fd���s���ѡ�����|�	4�#�"��<q�=�ܓ�����m�ymҹ�$��J�B�7�9mx�?�h��u$��ʺ�$�@��M�tb�UJi�I
�7�(��7����(cJG��L�9�E��_ŕ\,�Ow������tA$»�.!�j�V�
6����@g����<ݪ�d��KBKJ���k�r'�*ƺ ’����P}U!�	��P���\"T���ŕ
��R�A��8Rn��&��DS"%�n�0�6_t��ƚmUܧj�����RK+hq֒��A�k�Ob���Q�bF���Y��2|K�r�z/b툘��oJ�����$�M�m5\��V��Oc�jL�9�n�(�D�O���ZjL�c���fiw�C]�>�QYR��Dg�p���z^\�5t�	L�5T�Ñiv�_��3��8A�KK/���*WC�~�{��������*@�/(�eNۃ�mp�I=m�M=<���%c�fh�����N4��wݎ<�/���^V����0Z�a
�S�v���w��R..�|��u��
VR�07���3�E�S7�f���>n9]MbaY�h1 ��~*^#8:��N1���;8�����<�ʑ3.��_�hp&�K�5�>u��DD,.�y�:̱̆͆򨵧p�V����d[���όۍ�)�!p0̂[�`b�{z�vz�c;��ܷ��;�y���"^�k�Ju��h���~��>|֞KY�[��9C�Άz�j��f�,�^��:�Y���m�3~@���?͟|���)��	�; �V׍�m�[u��I1�V<K��(�2(�$gN]�G�>7��ރHz�!ܟ��t�XM@e&2�]�BZ��`�q�E�@�Gՠ�C=���LAx��B�/��C�!����\e஁)h�?j
# ~ҟ�}Z9sU��V�-��1aݱ�0�0"����IBDy���p�fq�pgAQ��Ժ�m!�M�(&����8���q��.UZz$̎�I���D1⽈� QF��-0=��Dv��k5#�bc�u�) �ؘ��r�g^B;�;ޤ�Z�l��z|y~�;>�"��e�Ԧ�_������;�r�4���M�i=:z}t�v�"������tMRA�|#%����ot��,�<�4��^�G؀��|W�JlQ��`�(�{`$��1p��(�����
A�����	^�@Ӎ����N��Gsq��g&Eƪ�"v
�o�F2||n�,��r�ڵ��.�E��n����ga�ٲ�f��ʽ���AΫ��]��2�ܣ�1ŷ�g��͐�x��,G�
�q6�<�f�:DD�dwʬ�6|c����krTx�:g�Օ�hsv""����ف;}�.�a�H�%��?���xƙ���QgS=K�Z�zj���w�/�ER�
t�"�^~%Lʢ+�ۢM����q	@�sp�}	����С�lk��c�c��W���KN����)��KJ(t�L��`��}��=]�;�m�*�d��{��d9a^eX*Ȝ�!��L'�_��
�؏s��H�|D��,we����‚���,��$�-��įh������w����tjF�u�ʹ)���q�;���Oui�8m���n ^F�rt�;P�io]G'=YD;Z��mH�!�‡���d|�C�͉5u�>�7)]�A���/����Ύ:�����#�(����}J���i��� �K�E8��;�X��w��EC}!�(�'cK�P|���vVf�c|:r��zm��X���*^tO�nR�)��h0F����,�Kz[�c��sD��ZJF�R�yg�[�G�w�}��c�8&k�� rdS
 b�D���3
|�����
G�J�Iei�"�0O�v*�ŵ�8*��-8����jUX*@��+A �Q�u�`�U��W����.�q�RS�td*�t�e�'�6 ��R6��l) �Mٙ�z��M>���E��օ�JK��T#���vO��0������y�?����2�,e�n
�(Ȁ�|t�2e�I
@:Z�%X�榨j@-n3W���"9	��h���"�tbXF�d��Vg'$˸]���l�U5t�:�S5�M�i�y��*o�=ɣH��i��?��co�ۛ����R���Q<5Aǽ@N_N#z,[�3����;@j��$ߝ�yu��k�׬� �„��LJ�����;<�+�K�Y6��8է�Y%�7�Ӵ��g>��y�h��+C�v�'?�<�P��֩���]v��l���~����R=���%Xn*dt�u��z�h5�%e�b��Z�>*+��i.I�[�THs��/o	�d��'�T&��#-;mV5�}GN�	#.��/ء�ɰ_x�}P̰�u��f�����ߎ	�5e��{R��!~P��������Q����:P0Ȝ29�q6`Ϸt�o}�gϿ��7���٬;���G���#ٜ�t��e[�7�zs�"!mY�fO&���SQ�HL'�j,wxuD����%��M\6��<p�T'�c}׳��������CexC�R��`A��]�CDj31�[S%ie�IRD���zZ�-+@ŋH:/�R|�xE7��{D_���0"��ŋtH��R��
��AK-!�n(,�e���vdyY�T���2a���v�Ӭ�[~|��/�3$�Hy��e�ۻ��e!�W�k���CtP@�iI
:���^؀�����6^J�3���2�S���Y�Fz)�J���̛&��e�
&�4蟅�l0wv�4nwt��y��p�F��L"��o�e�k�]b(����#��ܛv�c��ˢ�e�.���RT�0���?�'Q��dRf�2�xr�#U
�Z��KI��&�4KDvʶ�iN/�?��(�
��9�-:'CS��IJ�π
����˳�矃�_��	�BwE9pzqA�����G��l2#׭�u��ә|"��I�W���	�Q�v�6�Er(�{�@-�P~\n��tv��o5��\Yj��t7��̀���Z?������Y���_�y����nN��,�ݽ���Y��0��*�cr��…��>��@���[t��ͫ?\?|�=9�Ϋ�%���3�,��`KG&
��%�W��.-�Tc1ר��Ζ�ҫ�[�.�:�
같�lV���
|� 2��Y�>�3풿�W��*������?�Z�|��v��ʇ�*zi%��͠��ʟi�tG� nt,kn�iꇿWM@�x��*�N"�f����i[6n{̠Y�3XR����|��=���s��Va��Kش �M�&@otw���߾\��`_�y�aӲ�%�Ǵe�H~��Rw���D]�2��NȊ�d���-�L�=��]:�p�b��U,�گ�-?�1E�OK
��J9X�&[�u�?J�ܬ���O���ʩU#�d�"�C8�`|aD!{^!U��@[��Ǿ6��g|�wx
.?
���m�ez��L�ϴ��-�
x%+7#�p�Us�K��,P�D~���L�%���X��¬���4+03Fν3��G
�h~@l `%���څm���u�`nj�w�}ݨ�����\��
���u��iV���%f�E��Ʊ����l��Z������Y�{,#)qrBS�X^ͨr!�&ܛ��z��Z���{y�Q�����߾��u��ӧwww�KІ�uW��mu�=]Sp�"C�	�Z=�4�5��O J�L�E�g-4L�<�;��=5}��a"L��2[:f)z DM�q6G���b3���&��1��JE>]�	Y�W,!U�C���	d.�[�l:�Guh�z.�m:N�&��#�6M����$/��{������w�*2�Pn�U�H}� (��u��ǛbM�JN[�Oy�y�n��l~
�.�M
���������D6$C�R:Xd�y�S�*���U�*>I�@7�7��(�2�1_�%[���5�~sR4AV�µ�
?���3:�Wŝt%щQ_+QI�e�m��.gfBj���7�B�����/?���0��͖�u�4���4O=���x�34�6��t��P����C����O���3P�1�nNx�I�k\�2u�7���^����?'�m�T�ç� �0�<�_$R&3�6$�S2�O���,
u;��~Rd�*Su[R�%�y��B8,���"��5��9-U���Q8��;��:��Z�53f�2�����>�o�4��u<�
�r���Y
Ϳ��iPi��R$��2S�.<�[����N��b���
�p�ݻ�5�@�{)O"�0�\zFz>i��F4M��ǕԦ�0r�`��y�5TiM�m{�
k���]z<�d�b�T
�=�c�s�+"u��s�r��p6���&z��ߐe�v@ux-1��+9�0�S�Q��52+Y�¢S�j�F�8Q
��ܖ�8�Qq�D�1	r�Y�`�.���	X0���+��-=$�?��N���5j��?����9���g��DfH�]xj1��nW�O��U��$���|5������,�$Qm	���G�AZ��X�rUS�!��v�2���f["��R���9�ے����0�`ZBP�u�f5��n�s��E,:`��IV�3�h��ݮeE�kU?u�V�\���!/�F(�`�k$�EO�JKt��?.�7̍������;��z����D�N����M֔��V�Q�ݶ( ė�
"x�H��� QM�EV:@��%n���/@�E��5�n�/H`�nD�a�n���N��
\�*���I@|:�,�g�Ch��SI�8����Ps͐���j�1�������I^w�&O	�f0��z�ug}��8�Quqm_ֆ1�������(�Wp����ۜjE��&4�.`9�40�98�)��*��5^9����$�-cc����gEMC3��[�AQ��/����L�f�u-齎�c�����K���=����Q�;�3,@l�
7����Զ8c`\��7�쬰��
]'��t@t��"�Dx��J�nz�T���o<l�'�Ҵ��?/��/��Ά\�Ev�ro�5"R0���
��|����&-��7F�:���#
ڙ��]��O �ӸdJ�bt��?�ό�&[D`yn�j��Ѐ�
�?��?���j��%��n6����v{�l:�%��<#�G�
�R���^u��n���J�pLUG�|̐<�s���E����⥙��8!M[���e�qɄ�N�6�M�������Poq�%�3^�-���o1N_�R���F���tl�� }�Z+��9��<��o����:|�8��=���ǃ>��G���I@ƨ(�IZ;��0�e�s��y�y��T��yM���)I8b����yv�CLR��?-{�_�.��*31C�:b�z����=ͤ���bBj^��o��,�yj+��Z�Ua�\��<�ۿ%��I��{"0+r���|��C�1#�8���+[A��w/�eD���9LI���o�x��٫�ݖ%i��MKq�YܤX˥������ƈ�Y���2@>vIѣ;���fk6����mф'-�y�r�X*�*��Z-����Rk��I���C���D�U:l�lVH�Rx��޿��Id/�So�+3�0s���a�t&>��I�-�=U�������V�
���Ս
<�6���&�����kL<�v�'~2�.�]���I��|�ra)h0OaW�!�E_��/_�ɲp@4Eϫ�����݈c�D?���
|�kGZ�;��|q:��U5|Ӡ��#�:-����u�b�ܦO�aY S:���̗�]��Yy0�����w�5M�M�6.����;���"����)ڎ���	�x��v��T��ݛvm|��m^�Ͱ��:�ms�����:uN�����;uܴ��O�z�A��X3F��XIJb?��^;���¥�z{v���8���9�F��Kr
�ݤ��,1�c�5�N@��̝�_��O.
ڨ;>�}�&n�Lɖ���s2"�b�1���L?�@�c��G8��Fz�))��kK?4�y�ĔX��\��e
�JGJq��f�"�R|Ъ��R������1�HL/ܘ���)Q�TG_���.s��>	�&Y
'?�w-�
��|�j�	�� �DS�����1��ƽ2Mrᎀ	m�^Q�e�� ��|W��ˇ�W����"���e�h�3����8̒5^��&UwI�j<�c�Y$�LQwJߊEz"�Gz"v���㹪L�F2��Y@E�p1y�89u��8��1�%��4�wE�N몷%�32�^���Xsϲ]��h��wV�<�}���d���l�-;H�{�A�ħ��<>��!�TX�?҇�ߜ��&D��i�G��Ǟ? y���-�?��1Ʌ�e���{l��B��	B\G�]��}w�d��O2M=k��_�!�����a=��D� c���K@����o�;9t)�wu���qk�}���1�j���e/�K	!�Y�Xp�G���jx������Tܹ`@�Y�$-]')�)���$�����l��TN�t��Cy�����������{�g��0���8�N�!�ʬ��<��S�#;>:�Ԝb&�
�2nht�	H�7����Wj��}��R�ڦޙ�_A�cb>!;m�3 l�C��cBr���&��_�Θ�*vSG~�u��~U�3�܆�2�O�vTa�Z9��`N��ڌ�aΪS�Ţ����~EnXlw3uV��I�L��U=�&O+�J���B~+mX��T��(\����M�⨜
��nnk~J��U'��߬;�y���{4�.�O���OZ�+�O=�7A�j+6o�6�Ԟ���3Q�{�v�E[RQ��%�r�#��ϒ5�0z�o�G���=ҚU:A����	J���C��lE�4Mػ�$m���u��ъ\����*����[,�ћ�����]�|�^!�T�1�[���6���H�~���O}�a)���@�җK
^�˞�A�M���l����U?o�pC�trZbK�����}�Z�($�μ�5��Y�+�ve_����1܀�����|Rf�&�$��@�0��UGCVM�
2��ğ�G*�l�l�~�XX�b�҅����'Id�C1��e��e�U�"�i#pwD����*N�b�9(yLG�m6�<m��f�i��sR}����{Lkk4�5�Q�_�U�%R‹�nY���Q����r+5�%��	ymU��+�!J�L�Q�mK�ַ��������N�{���\H� �M@��[�Aq��R>�ɣ���:��֪��U
.'�6��i��\�k�?d2�N�_!�
�’�#��p;�W�EU�3|\��\���)�̶�)�d���t��3V�/L�vG�[�Etn��n���֝j�
냸c|\�塻)�w���F����r���6�y4��s��;�����h��l*jK_7YuҦ��hoT�>��G	�c���sñЙ*�(�Ŭ͝1������\(f��rʦ��pu��H��ecI�d���{F��`��S�*l�G����2us|�aZ�B2��&�F��9!��8�V*��8.F�آ��P�*P���F�2��v�_;��bFSq��H�����Tt,4��fQ�H�4�o����@��dv�k
3���~��V� ��0�ftLE�ԧ�l2���T�h�<�E�
a:����2Sf�a<�b���\�s�R=��^���@�&C�aE���i�rN���}o���9�Z8��Iq�R��n�E_�|{y}�<z���o�G/޼~������_E'�g�N��^���Ə�(�D�o�g�����	�j��1'��nS���(S|���s��$d��?��"��WW'�E/�7qެ�2�c����;G\��>��H�����)k�t�.�h*� ��DϞj��%F�A��V]���9S�Nd$�0/��p=�W���"�J8�}Eg��U��5ƜG�����`�3d��	v���oO^={~��|��2z���.������&�(�CpB��ėdA�jt&��/~�,�g�אS���JK��dI5�8,�g��G��uic��OҐ�u�_���YQO�`��ԥ��Ε]�����0��S���v۝�v������J��O�e<����^��ݟ޾�7��Ы����[M��
�`�/(yQ���*F��Q=��\�pc���o`y6^_�={�E���qt��s�j�W�]�Mh`n��=�
ס��>��Er��p6�ҡ;��WgV�%�{٠�u���"/�����$����P죱����
�1����o�f*$&U�\��H��/�V��9?�V0K�WS$������:q�t�ҙ���n8P��}˜��ԕs�k
Z�8lp��`[��e�6EiI��}T
����??=��N^q��wg��2{�Z�H�y���/��<�F��ۨ�M�'Eq��B�Re�Q\�0
A�G\Uqț���Y�����{�]���0��)!�O�mF'ۡ�:j�q��Yk��X��Ԏ�ڐ�qk�ng�?$E-�պ�-����i��As;�zd��^my�@
��@�::�v
��Zb|Tڙ��0;_r�n7ujJ�oa]fEI��;�M���C�&f�12@���%b��&wJ���e�롅�r�"��y�}'~ݜ��I�E�w�G�J&=LV���'�'~�$�6u�6K�s���}��'�,�z���(잠6
��p c�r|���x.Ʃ�u�=�2~�[F]3�hr��+u'�E�����~�F�F�`v�އ�V���r�ҿ�}Ԁ�ǂiT�H-@��V�q�`���At4D�X�A��F`{/��
��_��m�n�����%�s����zT�bC���٣�j��q&~�����V���~�{E��eG���Q��a�ё�ޚ�Zu ���אYv�9v[`P,�R�l�V��0��$ƕ�'�N3���뾎zv@B�n����q�}�=����!0�9Fӊ�t��~��H�ڑ������:l���a�K����m������-��q-�!u�ݱ>������Y�l!�呁��3�y���P�q��E����p���;��$_�ۻs|ԒR�G7i���O�7����; ���m\f�>�L��aN��ؼc�I�����w����Tg�ޯu�)�򟪇 >HQ4<捳z�.���&���sx�똪Is�ĭ���|�D�h9t��_{gUE���<��L���hWfPUm{n���� CD�ʔ{�V�a��$DmV�d�P��?r�5i(����H�-ſ��]�ƅ�<�$�ʻ�Ԗ�d�}M�8q+����J�$�z�{��.������Eb��"��j#�K3��MJ�����?K?�����o�e�M�[�i)6Z"�?iꛢ�Db��T�NM�ZM�z'/��+;#�j�C�� ^�<�X�$�Z�w��:B�ӎ;~}�����ŕ�]�o�]��d�8��|�(
��ux�Z^����!7Օ�mV�kL�ƣN�a>�8����,#����������wOoS�4�
�:�;�Ώ��?���~0�U�w���`OE;Wi�2G�gLta��[`�mQ�V�Ah���*^��̉��D�U	Y^���󱭴9Aq�I��݊5I�c��zE���+|..O���h��1�˾���Q��ND��2l8
A߱�X㝶��*�p$v�pO-%6�G\��=��L3�/�u�/4���;�Ľ�\G�*��2[{G�Z dE��O"�S�ԍ�R��e�i�����珸���ȋ�5��u3�+3�@=�DΠk|[~bP�e��7
�
,7ԙ���+=�f^Vn���҂�,���S��۱�O�}G�QS�
�"N���m�\�,��f��7��4��:걁wF���<�����p���8r|"�+U��vg%u�eK�+^��Y�CV}~����RZ(�_>�Dx�TW�(�
����B������w;�~t��q�oӝ��r7��$���;���N���_������~������������3�w<��=�q���^�Or2�������N���}}q�`���{�������_�o�PKv�R�%"��	�litespeed-cache-fr_FR.moUT	�0�`�0�`ux�����y|\U?�O[D����V�iY�ŴI۔�
M�����$C'3�ܙ�)[�Q���ddk�dqaS�U�ME���<��,��$-~>����g��<�ٟ�>���)�׽^*��M�H�~��Tj�Y)�w�>���)]E�DJ��tJ��O�J}���S�IJ7�tJ'j�-���t:���t7M�nP�[�����V(=���Q����7(�t+}>��/Rz��R�SJ�(�+�_�t��|J(ݑ�{)݅�R:�ҝ�T�[��G�JϤt��R��/R�Jߦ�nԝJM�4M�)�Ӎ�.�F���tcJ󔎧� J?��F}WPz0��P�S�]6���ˢ�qY��,�w[�x��J?�����Tj/J/�t����~;D?�Q���pJ's}�N��9J�)�L�񻔶QzR���R��>�E)m���^�ۖ���Q:��#zѯ�(�J��>��BJ�@��>������ۇ�.�t+J_��x7��ɣ����y~�Ey����}���:�u�]���H����s�nG�Y��PR�<@�]�J��.ź�������-�_�~]��q��{|)�����oh��5]��}�I�E�Y�������}��Z�}��?���//���)݄�;X�_п?�j�{��'��lN�W��N�1�K)]D��.��/��-E�S��E��K��_S�5J[D{oqS%:�|��}�+a<?)a|w�П'(��	�sT��F�2�w+������N�r����8��R:�ҍ�l�i'�[R���P:��;D���i�t�[P�U�����*����
��_���#�S��<2�8ϠtkJa�a=�a�a]�X�|L�b_L��U�;���
8vK�~
�u
���r
���a?�P�/�a���~�Y��e
����?�����:�q�:�y�K�|Np����y�=7��x}����O�ߛQ�eJw�t'>���c?�z><��yE��5�}��2��v�0�K������ϣ���e�ǵ�����0�g�a������2������C��C�WmC�ǎ!�c�!��3��k�~�y��d�x���CCп��/,G�vX��-Z��e�^(�Die9��y˱?o��J_^��rљ��{П��:�� ��gF��c>��:p0�[M�\�`|��v�q�!��"Ϳ��σ�`^:��_�np(ƻ�3y^�1t(�.}ߡ(��C��q(��;�bS�ѝ3���0���X��
�?Z�~}��o3^�����W�|���^�p�;�p��
�{R������c��<��8[��V���H�.i��#��vGb<;������#�߃��:�p$�w�����#����#��	��MJ#��ߣ5�ᅦ����G���Ga�->
��y>�(��3���(�G����(��_�X�h���w��1���q���h�ӱ��e�Mi���1�����}p�7_�>��˱�����yO}>�X�v,���c�n���[��,����۱�&��\M9�`�q��8�ˎ�<�|��}��|}x��׎�wM�cO;��x���x�w��;�Ǽ�9����8������OH�fP����>�?��'/+����p?}p��7ODv=��^�>���<�s�O�y��d�뎓qί�t1ߗ'�ޟw
�J������߭��"�#~��Σ;?�J��}yj*�K���S1�'j�;�����O���t����1�9�����W��g`�.<�?�p�X��)ݙ���>����Ϥ�a<�L�Wϙ�G����>_s&���ϟ���?���g�����v�:��o�i����/�:��O�����G���0KӅgc����}v����+(���G�|~Ρ�`�s.�1G�}��8+����\|ι�e碝;�ż=x.��)-�ƹ������P�>�����y(��8G���u>�/8����8��c����w���y��|���������P�.@�������_zn�0�_P�L飔���s!ڻ�B��n��X�G/^�Q��W���_��-4�f%���W�Vb����8���|߻�{n%��7M�[�}�1:<G2�x�ҋ��E������7.ƹ+\z�q�^��j�%ςKП�.�<E��	��.��?t	��/��6��d.���R|7x)��KQ�U�^M�+��X�G/�8_����?s9���r��}9���+�J�I<�˱.���<t^�}٣�_���+0�k���ޭ�_�uy^˽v��WWnoB�h����}�ݕ8��_�u����=�J�{̕X�s�D{Wjz�~w���j}�]�y~�J��
Wa�ҫPO�*���UX�=Va��U��-��*��*���V����*췩W��Wa��\��_v��5���po��*��g�ƺo���݁W+ܺ�v��8�7_�{歫u<��x�A;��|��'\���s
���8.��\������׮<��#�K����y?�������9�Z�_v-���ź=-�EM_��Z��?�ž�ﵘ�M�#��:��#�C�����a���qҏ���?�|�c�����?y=��X�m����z��^����c�}=���߮����O_����.�߀�|���;݀�|�
X�݀uz����_�z#�DŽ�^���F��y7�+݈���߫���7��_܈�|�F��Z�7b?��F��!���<��&���7a�>�I�	�Ѽ���O�`߭�t{.Oi'��͸���p�=JO�}w��S�b�-��eɭ�~��EJs|�ފ~�t+�[�O����)�V7���mh﫷�=�6���n�|Wӯ����v�[����۱�gގ�\��o����X�go�xF���S~8���0����ݟa<c�@=���|����w�ݖ;p.��v�h��;���ށ�y�>߯�<������k������z'�oy'���N�S���wb?�'�w����߉yw�Ѷ�0�S��<\}��cw>~�n��N�[�񻁟?z7����������\~���`�k�[�Q����G��sƵ�j��_
|�۫1��՘�SW�_��s5�yL��_�u���Ǹ5��k��i~a
�;l
ʟ���k0/7�<~d
��/�������ϱ�O�9��c?�yz���χ?�[݋����~
���݋�T�E�����{q�d��0���C������}�ϡ�)�z�s���܇��w���}�׿��>�������������_~lq?�_r?�!?�ϡ�+ܾ��X��5���ѯQ�.���c����������=u�8?�=���h��A��>�=>�=���;���C�g.�ſ��><koJ{^<��=�0����zn�K|?񗺟���hJ��%�;<�u���s�#��nM�~��#8O�x|����y����k���y�Ƨ�����'����cX�/=�y�<�sv��X�S�:�|���q�n��O>����8���B�%����J�c��+����P�~
�`�ߠ��o���7�����ߢܜ���⾿���K��}�	������x��e�����'0������7�>	��GO�^����~
x��Sz�=<�çp.�}�紧��N|��1��=�}���X�_?�y���8'�x�y�gЯϠ�����x�ҩ�`_����S2<{��0o��;��8�����3������e��Yܳ���<�,���9����Lw>��V�����.�s��9�c��<����y���)]o��?�����^@��y��'/`=7��m�?a��'�s֟�^��^�wm/�K^�9��E�?�%�C�KW�%��_�y|�%�g��8//c~��q�^�d�W�W�~�
�ү��}�*�W}�ṯb�o~���W�߱��Q�w���_ü���ҕ����u��O������=�/��޿`�����W��\�ꯀc���w��W�!"��[o`���~���pn��7�vG{ſc_��;�+����c>��O,w���`�g���sٛh��7��'���4��3X�A靼���8�~�������9�����A�m��>��]����Ź��]����\~�]���y��?�O6�'������O�����	x�S�GJ/�}�O��W�����/���_��|J�O�
����ք���F{��|�p~V�x{�{��y�~���܄ҏѾ��?�~��}���}���������>��I��x�}��O�c>��/}�{c�0�>������}<������Ϻ���O�p�E���P�q^}���Q�-b~��%�ƶ�2~=H)�ϝ�r?����*���F�B�
Jy�-�2�i��(�uXI�܇��~�R>�r�F�M(�H)ý���ދ���)��tʏ���[��͡��)�/��	2|>�R��P��ZL�+�)�d��7~�RޯK�G;YJy��Q�p�,J��E)߇�P�xц��H)��Qz���O+�%p�bJy�n�I�s�Ob��O)�ϣ�D?�K)��{n0J�)�Om�����'�!�qچ�Jy=�6���6�:�)�kC�s&����~?�S��<lC)��]?��΢��|
����%��҇X^�)���v��|���ǟ%��m���3hoǍ�Y��6B�m�z���)P��qh#�<-�s-��F��i��R�3�e#���ώ�ǩ��x�g��/o�y�|c�k��~pc��(e�r��aj��9�ۆ�`��Q�p�hJ�>;n��s�`��w��MG	\�uS��hS�b>/��t���ݶ)��M��ߤ�L�C??J��s?��R��>��ۅR���Q���U��_%t�i_�>�%���07P���(�|�/��3�R�_���翌�N�
�}8��N���ӥ�2�r�W0��WGɽ�uJ�.���#��߼�(�w��^��叔2|}m3��mx��װ�G
��P�⯡�W}
���z�Q���9�����ͱ�p�ϔ�|a��G�}���e'���_Kc���ƺ_���8��ߚF���q���:�����X�󔱘�o�����w{�s�X�:�?j,�}�X��-�2��EJE�a����Pn�|T�^�9�^>�q��8�5-�!�|�|������
��zW(e~�}��l1J�B˷�x_���t<���㱞{�Ǽ�6�_8����8'Q�ܛ�.��q���޽%�->7�q�	�ߊ	h��	��g&������1��;�E��x�D��7���I��i�2�3	��,Jd��6��K��}~�7Q��ob�m���e+�s~+ܟo��>����ׄu�z��.M��{7a�.lº\Մ�~ڄ}�R�}�	�1/_��~�<�,M�=t�d엯d0�;gP~��#3X��3��U�[�����ٛ��^��`
�}�)X�`
�w����S�o�L����T�c�b�é؟�N�~\9����z�އS1����}����F���2^���q�>�
�3y샽�A�Gn��q�6��=���m��Q�b�|y[�{ƶ����b�z�E����˷�~�ݶ���w��0��n�~M���;�a���\����s�v��]ۡ������5y{܇������W������O\�=����w���dz�����P�x��o�?�K�J��p׷0/cw���#�;bo��ޏ;b�G~�z��1��헚����6��}9sʅ�P�	�0Ϋ)e:�iJ�����?a'��i;a����3;�<���_)=�����u��?����.؟��m�t������鸗���s�t��M�2^}7�����z���߾+�'v�~���J�0��;��&���f|7�窥�،~��rg5�+����Ԍq�ь}�J���\3�q��R��@�)�'���fb�]>xʃ3u��D��Z�V-؟�-X��{M��OZpo�G��f���C)e��q�2��~J���x��<J����wgc�Ϡ�l�7��ϟ0�9�6���6������6�6��6��5m��m�Cm��Km���s�����w.���3���z�>�價���a}
�.~o7|w�n؟��q>��۰���X��Q�v�+߮���J�opk;�s�y�G_������{�۔������<���:����P��5��~ԃp�7w�^=�R֓y�pv��D���A�l�ߝ��Q'��!�h�7��������E���^���[<*��	�2��w�Q�'�y��=���{Ȟ�ߧ�q\�'�c{���'ƹ�^8��{a��5��9h/���¼���������]��wQ��E��5��X�����F{�{c���F?n���7Z�ٽ1���~�����`�����^��}ЏO�}����ߦ�=�?P�Oއ�a�|8i|w�����q߮`\8M�Us��0@;���`����ën��k��?����׍��,�3%�����|�gQ~�,�s@�i0���(��ߖ]�d�}|�05����Pn��?H)���\?<����vB��=Hg�`^��|�r}���}B�_���}��m/����:�Ջ� ��_�a/�£��7o���M�����ܚR68٧�Շ�\??J�϶�c����/y����st���w�sK1��N���_
������؇�/Ÿ�����Kk�T�:���]V�9��R"�R��/1S���E��g�+��uE�JY~��Ҩ�/�Q¾ر���ZF�}�yY��e�S�|��y�C�:�@�s�;�w:���8�@����|�z�i���~�@������*8?�V��S*h��8�Y�~�W0ϕ
�y�����V�tL���0]�5}.F��+"�ws�y�+�8�x*Bv�b}��b?-��������*�O�pnw��<TC��5�ϣ��a
�0v���(�9������A��:��8v�s� �� �Э���A��G�N��>[�6J��}�>�r�ІCX�yC�?ˇp/?��/ǼN_�����ݮ���<,Z�u�_8r�r�;.Y���0���a~�;|Ň��;x�!��r�߿���!�7�y�X�!x��m�!��kz�!���`?�����~�P<os(�}(���y�P����s�V�}u�a��u�a}n;�|�0���a?|z�]W`�X��t�
���V`>�Z���w��
��߭@�?\��W%|�3���엣�@�<��+G(>~$��G��s���<���{�D�J���Q���^�(�m�
�����7;���yo=x��Oy��7��?�����n;J즊�b��>�r��0�iz�q�'�����1/�G�S�Ǽ�=�ޣ�k��q<��%�>���x�S?:�ى��'��ND}{����'~y"��O�9^}"�'ND��q�'a^�s���O¹Ȟ��>	��b}��0����}��Ih畓�/�u��'�^�d����8�g�������>t��S�������O�<�t
��������F?D���'G�R��~�u�T��8��W��4=�T��SN|;�T����ߟ
���*��4���i��O=
�4�}�.<s�����M<��~:�Q:���q�֜���t��N�_8�o{�����_{�׃g`����L|�ԙ�Wx�Y�7��R��YX��Yϊ�P�g�^G)˯�;�/{6�-���{6��Q�g��j�/����p�����t���s�ou�Թ(�?�,�;�\�w��p�ǟ��t�?�<�/7��}���X�o��}>�|��|����>��ؗM�h���{��������(e=�w.@�C"=�B��G���J��)=��؟�]�{떋0��/�y�\<*���y1��o/<�����.��|���ٗN^s	��]:*u4��Kqn?}��W/�z��>�a�v������2ܳg^����q.�\���W`>JW�|����^��+1�았�G�ļ�t%�C��
ph�U��]W��
�U��O��>��UؿӮB��� ��U����}���7��t�5�?���f?�<��G���ޏ�廮�/���kq��p��ׁ/��뀟m�c��?�?��+o�1�y��X���������
h���s�
*�����ϝ#���7b�?}#�޻7�<~�&��/܄��~�᜛�������&��n�:��h��	�~��9�,W���	��}��ͣR�3}s3��o���v��z���`������nż����q�?��-J_c���p>�n�<_z;��O����g�G����ϰ�w����C����.n���Vwa}�(ݛ��wa޿���1O���={�݀C������ܞs��WV�}g5�k�j��˫qO}��پkN]�{�5��s�#����^|_����{��w/��_�����a~w��F��>���7��c�/�|?�O���|ʃ���=�{�!g��!��<���>����C�Ϸ�x+^�0���c��|������/�6y�7���s�`ܝ���(���XߖǰNz�헏��=��G��(C�}�㘧�~�u�Wע_c��5��ޯ��m��aO��9�K�q��]Y��<y�	�[���=Ob��$�g�)����GԞB��y
���_���<���S���{��i�������8�K(��Ş�<����g�^��p|J�fxN�y�~T�M�����y�{�s8�S���9��S��:��h~�<���+_�y���<���y�����c��?��a�?�n�G���?b>��G��UD�����G���/�J�p��eK�������'��_���E�gϋ�s/x|��(����K�����K8w_Ƹ}���2��˨�w/��뿂���
��֯����SW��y�W�_x��Wp���u_�*�k��x����ޯ������/~
����~
�3�C�πS��3�p��S��:�v�4�/�K�����b�n�+��W���
���X���|�
��y����������O�堿���w�����D��`���i����G�����7����~|�-��
o�<�-�w�{�_}���G��87�����ۘס��oN{�x��8?/���l��g�;�Kv|�=4��w�η����;h�J�J�~��Ͼ;*5����f:P{z{
:Z]�q�GA�zOh[�P���R�ߧ^O�w�t�o���!�ѻ�;����SG#��>_J�}��9��u�&w�$J?A��S�1c`_y8��)o�`�h����z�ؿ?i�����Զw��w��>���W����ڟ��A��1�3�۔��E�
����F���篎��?)��h�RJ!0�H��)�kZ/���8���Dj?�ی�>E�{��Iڗ�׳�Kc\���}����[�S�t���௦F�gj]t��&_�}��̧��Q�g��1�6�s�/R���ޠ�[�ڐ�}itb�����i��k����V�f�>ϡ��G��gc`w���D�΢�'j��Q�=鯅�.����7zޅ�v䊨�w)
���������E��w��P��o3zޝ�?��ߛ[B��o��]L�?C�g��<ͻ�~韚�{��Q�J*�=�Gx���)��gN�Xo=q� �^�wߣ�Q�W��c(%T 5Z��һ��]R�W�2wQ���(�@*�W�����L���o_*Gdk�P2���i�bSDV�֧2/��J���w0���2�����1>̼��>����aX�[��"�M��H��r��Q��~�;����c)�f��z��]��H�O��aTn=J�
����K�F�)}��*TfGmG�4�sz{��T�ϩ�S|���壡�|�C[���f�����Y6�����x�Bo,_��˩ln��?:�;�~(�?dL�a�r�h�3����A��ʟO�x�٫�9��/���#����"i�ƺ�߷S�Ѣ�
�����Q�S}�	�ng�3��b��Sm���h��Q����1���KF����8*{��pE��4mh����
��?P�-���wO��������
�awg�����ўc�K���v`�Jߧin�<"�Sw�����������2��}A��x�3߯�3��3�����۹�w$������8��'T'���f�'�6�@y��>���o�w�K��Q=�+��|����.�Ǵ��^���/��0��Л��xXoa�(跧DG�?�������;&~�2޵-�/�GT�����-�;��E�t��}��~�`�K�H)�H>�����ʱ��ᔾGy���/�Ae�ߧ��}���������a�����W��-}�=JW0,�wp�|^F�N�::>V����{���׼����s���Gy�P�_���oL��M��D�ez��'�?�t
��K�_k>�P���b��i��
叧狴�Y��x�;��y|���&����t��|n��7��1�<�}��N��+��_���|�>����W��f��w����Y3]��7��ޘ����0l�y|�҃�3�O�����|�P~!1����>�<Z�L龼o��#��a#��a����)T�4}�kl����my�<LOhݗ��7ߡ�w��I�ߦw[�7��y�=�C�л��Ϙg1���f��������~�1_��q]�;��7����g�asa��>�>A�Oe�ߝ�ն����5?�,��;��9d~�����x�Iϥ|��=L�x��1��!��C�Z��Z���̼3���sO���<0N㻊�LW$��{���9� ��Zn[����J�D�~����r��=�w=�G�Wj�'t�G�vպ�&}fۅ�ոZvw�g�ޒ��5o_������vv2-}�g�ƁL���(|L˰>�����9�mP�nv;�(��W��T�oT�Dʻ�qm}7y쬏��n�s�[��.گ�)�Ӽ(�e�D�2o�2JϢ�_3?#1'Дi���y�y�JS���6��Q���*��]~��H������z��>�=�,{�Ѱ��wS�=�ݞ��6����Y�������
z�(�mo��+(=���E�3��u�o`
�-��!���Q�Ք��[�|/����ɟ��}�>���/x-O�����;O�;��޼��A�yk=^�"�Yo>Y��e}މ��Je?���~�گw(�=_�Ͽ�:�y&}{��g��ڎޝ����#ߙ�c����Z7�wK�i#��Tn<����f}�'�|��i�7,wzA�6����6>��M�nO�F�7.���`z�i<o,,��=o�y�k�}s%}�}���򧌆]�_)�4�gG�H[2�a�9�"ƍ���:��zm���o6�w��N���1����
c�K㻣`cz���1������ʜC�7��Y�y'J��o�T�{zl;f��Fϫ�f\�~w��t��׶����a�{��7i=s��+��}|��+�c��/xsQ~=�i[���3KyӇ��e�
�P��=�|֝�?ƍƈ6�y�]2��[Dy�3N��>�_������#)=@�'���T�]����>�������:{Kփ-�Ɔ��r�t����[Է�3Q���׭嶦�^��NJ��G���~3t,�����M�=������{nl��J��%:�Q�����/ұ���U�ۊ���_d>=�2
����$���L�Q���76��2����<�ݘ��A�
����+_����=��T.�����oN�w�ڄ�;�GF�M&��J�wT�I�3������b����a*�~�y�|/R�h4|��@���a��g��H�6��k=���=�7���q����v��z�?���4<
J���/�t�������Q��e4l�_��������暞�8�*��}#�W��]aw�m�?��~O�7���6�=����G��f�ô
��2���y��Ѳ�R�c|w0�U�7�,;b��蚳���R��c��%c�/�_������2����4%�/d��ހғ�9��|g�ף
c4|
\C�Wk��d}�_0=��� z�<q���}V��s͛@�O0?׃�?�����(�����u��#m�1���]��ߥ����Q:�-��3�l_���_w-_�N��͹~�����n�lKwJ٥�������B��^
��(_*��oCy��Z���=�
Փ�z�UzK���}�ZŤ���k����(̖�9��[�U�"W�=�B�.���F��a&�;X�Wmno�T+�RW�?�
�dq�������.�*���/=X�r�lP�0���J��Zɸ�l%_�F�.���JH3d��|��/�'�t0P����a�؛΅=a��$S�d&�e!8�V�)�e�;*��֓�.U���l��4(R��A�ҕZ1U�
�YMG��|�����&��'_�~R��!�Q��B�,�>R�a.,fi�����L_5�f�(Jw�lgX�R�����靵r�D�ѐk�;O	��N�7�y���]V��W	{v�{c��������ȅ� _��6�I��v��T�z�Vw�_w!(.7�V�U^�A�*�ڹ{z{@�V��B�����鼁�հb4)�syzG!h�\nJ%���
�� �I�����i�d�������ԓ�S���2�Ts����>�-��y;|�Em33�B��K���QX�Ӕf�Î�$�L+ �@�.�5Y����^R��:*<�����B�t_��T���j��L�n��Y����l�,�R.�d���\*�,�l�c�������{7]*�N�/�=��іj�e/���g *��Ő��1��鉳��PJ/���[�:���.�D��r�"��̖��E��s�����@;�V���=Ϡ�XZ�GU��:�C)�'��t{�|hr{)�ن�
�֑^P,�'�h?����mN!u��^:�4#�	��=հ���[̣�!}�Y�W��^�Y��RS��|1�ҙ)��M<��*-X�g(=�c�h��@�5>�Ԁ]�J�%>3�O����K���qӽa����D�G�:-�)W�R5�@W% ���<��-U��S�YR�,9��VЏʘq��@��V��Iw��K�9:�R��TYi0J�B�JvD�%:e�I2a��h:V�|�pW����y0�J��B��
�!�u�P	�,WJ�Z�*P�-M�/(r�|X��|u�ANT���c�ƕe
JE���xhܕ�?�U�����5 ��H��+Ae��R!�^Đ�^
��R!W�۽8d��O��t�]����Җ���^��t?P���u��a�
A�LY�{�DQ����+�>�4���Q�"�������L�����6�q�ũ�Ґ�O��Di�1H�̟eiGV�#�"��0�^eu�Joe|j��A&��XY?
]Z8���(������L��h��j��@#�����n�=|�w�t�GޱkZ�Y�]G���o�"�ؤL?���E��
m�D.N;-]���ȭE�d��v�@>�=�(��+m�o�Ƶ�"y陝��sm:��*y�@�Ĕ��e=aWJ`���ڡ����EP�J���$ޮ�o��c^v2� ��>Aq���|65C�EM̤pK�!O�eW0�*��e�x�}tRܨ�bؓ'�H1����		����m��V�t
3��A���r�ӹ�C{�3z����O�o{�tsx�eE��HoB��Q�`R5�0N�ID�
h�˯�(��IA0ğ�%�&|��,��1�>����C�����Kj�2!2�@&�U��r�T(R�2p,�O��&�ؽh���5��6��V0žR!G=Y�MG�E��b�Ƶ!�[��Q��@we��FY���k�B�A�u��"v�-K0��axN��%�����ܙ�Ig6E��YV�
�s����N�A�4U�@�!(\��>o�Q��,�wӝ�ګ�g��D� ��uY�P����9]]S�!����<…z���Lg甹��S���-ϖ���B'U���,Bl�\�^s�='_�_���0ǔ��}F���$!2�}g~��i��CǜB��ռ���]iƢu��押�5�<Y���=�]t?�4�_Z"Fq(e��‚>r�Ӆ4���|#���i��z�@n��3 X��s7c,����?��!CԀP���Uh$L��zY!�3�Vi�GKӝ�ny/�xz'�����K)�Ʌ��N&��Za��"�ir�2��J��L�~I{[P��=���B��.���!�Y���2Ø��P��a6�+t����m��|o��ېa� *�n~i�v�:�\TV�ި�T���ۡ���\�4u8T!�E&Z���X�|�k�Pߕ�9���EE%�r����wXk1(@%M�t��;[:`�	Dlx�{WffL%�3S�A8Q��a�VhG���F/O�"��tb��FjA�A�̫��T�v���<~��a�Ჲ� ��_���ħ�a��"�[E�����Ѥ&j���P���`�b�Ӱ��c�±��Pb�����^�Ȃy_+���{��[����/��w���m꿐���J��m�7�w�O���Fk0v��2�❧�s�y*�^N9�d.�YzoJv�|�M`NO�"MRM�̙��h��O܋��45�����g��^���W��R��	r�.$q'PӔ�U�r�*+�3�ϗ��a��5�H+I�Bɓ��T�|&(cN��
�[`�r�I�φ�tWJATW+*'�y�Kl�R���*�X��M��ހ�>̍m�Z�}_�� g�qe�ۊ�R�����?4�;��c&��,
5E��CB�h���y�
n����W{�wհ?(7x��'���?�@��7c�V��D���_vw�����@@@a#KCen�/@�d��
MM�T/���n=9͘J;u�Sؤ�0��rX�@�x�t��M�,3AD6O�Bz��i.��a_/�^���LO��0Jf���(��7���S�hsh3��H��CP��
�~�5���EZ�{�k/�5�:���(PBf���4*�r�pd6�@hzJ/���7�-�2#�ŵ��e~g��kaW�Z��/�J����=Ϯ9m�g���q�DSK�熔ĸ3J�[�Y��~��\F����^V8���h�<�kS-aw�7��m�n�rÐ�E���ڊ6K�_��g�fz�f���P��f/�>�9u�y�&ZV��Q��Qs��}ܷ�c�|�(�$5�B��F���h��o^0��'�яB0�7N��z��x��d6vl?��R����~�ʣ�W�,_:̆?m�ς�h�χN==<���.
&xE�l^���P�[��P*�}3��H]�ec�%����#���*宅!D��Z��J�_zU�p�q&\*Mezg<%��LG��v!t� @wT=V���B)�يs�@����!,I�$(D���jbIHDo/߬ݛ�6�!�P�h%��1����C�����a�a[��L�TmE����N.�=��I��r�F�R�E*R'��� -�3CS���'�MZJt�T�δ��D����ِ����8X���R!YCW�,D�(��<��^��o1�(�i)	e^�e_X(;�2&�M�W��Q���hK��Me���&��d�Z;��FVdn��p���X��J���P�Y��DJ�*�25	c�Zz��Z̓*ˑ�a�/g�Z�
Q����y�U��2t"�a��+���+�+׊پ4���|>Ձ|�d�Q��/K"�.�N(z��3��e�
��&�#w�T8�E��x--�����L^$<K9'9�'f���l~y�s8�ː+��b��Wi��k4��l�U�B9xb{�6	��6(��s����_���J���2ȲB�T+������j���GڻS@�ƃ�#�T��ĴA�	�M�f2僡�e0H�U�<��?�`�P��gm�>D��֓U�D*�"��ʺ�+(�u�9��O���3�X!�9OWr/��%�s&t�{�����:�%t����ȓ�CJH�	�������H Z��S{B�\��)B>���u9�9Z�,��Yȃh*��
��33AG��W�2"\��W*}Z�qL�3���[��B�A��y�
�.K��4��FD���V�&���t�~2ت�!O;�����}2��:-AG���ӪvE0�[Hc�3^٬�z�D�_
��� �J���uT�Ȳ�f�_{k��p� �ݲ$�4/�ET7x5�y��3�mZ��G�`6g�elŒ��v�{�k���ʛ�	�&�xw�.���=+��R&�'/:������y��]�q�3�F��*�c|�,s$5��\)Ds�_0�i%}���4t����(e���e����a���V��F|C�
r�T���I�Rq)��+����X%�JU6���Q&�eL�	�;��t%3H�D��O��H�Am�&����$A�P`��g���I�����J����ܔ��^p"&*-��QW�"[��w��h1�ƍ�w���CA`T���!��/�Ҕ�P����[����y*|��F�Ȅ��%�0h�W��6�щ�r~Ђ�K�cP���g���җ�>�<VU.�E	"�	��p��o<�L;�g�S
�eyY��@�a���h"w�2��-����������6�$1X�\�8gX�WFY�{�/.�}c8=L�׋b�-R�F�D@�#j�̶Ho��{fݎ��P"�RUa����AQu6A|BN��ۧ�fַ�V)�n�yTzkv�w�G�储��D�Q_A��(�U�TqfsG��9��ve��NmK+��MИ�2|��t�kO7[���^�oT���h��!�6
�po֧��{�&��`9�F)�����%~�X�?�`6�����m��Y�e�J��E?!݁�}"��rL���>�澑;*=HL���"t���,�"P�Ya(j>��g�$�	t!�1�/����G��K�s�~{�+t�Q7��l� �l��>D��ò�������W�	��hX����!�˥�W@�J*eb`	2����dA���8�)*-����Xm�`���O��VubǺ���j^K��ԧY�ЩX�J���X_��!V���p%%$b�#G�@���0�h%������(Va�jTZ�4��
���%�?ݪ!΃cO5�Ž���N��v�v�����J����ps���L�����l�H��:�Wn�jV�ガ����7�x-h#��c�9�-���Ե�(M��J���׃b�MO�O��ʿеc=kBUm�Q�Q��@�)��Ϫb�!S�Ec�o"��%�/�Z�]�R�_}�.�2��҂�CT'U�A�h2�і��
��0.�(i���a�t��|����	-˒�m�^I�2���/#U��_P����Bڥ*�)	��H�ϑc�&V���'��
�<ӳ ��p��פ�氾\�!��A�.��0,�8L���*DT�#P|,d�@���,H�Զ8�&>�
�U�ҵ,��0�

��.�����jE �U����%�l+V��h�X*�N��%���(U����"Z�,�#����΅"c�Hf���J��$�	W]�?�����ӏ+�BV7�*G���4��� ��������DWcB3Q�>�X���
�

pMb�e8�U�� Ԣe�>�d��c�!ix�z��D�|W��1�?�#⩚�Ԥw��2`o6x&|]q�IJ�	�R"3�N�.[`�����g!X>$��_���T��.���0k�D�CR�+���޹����1r����#]V�rNsۊ�0Yw��>�A�� �S)^u��I+2�[��n3�:ƨf�ne���a;$����}��&�\|�c91�e�<'�+;�'d��ȼ�����221<����$�}�����I�D���2#��ZDw�-f��5P-j̽���Ee$XaY^��"���3׈
�E��/�L$�)iel곷�p�bET�^��,IFxJ�=�K���m*5-h�@3K�eAw�����`y�@5���U��ԝ�y�L�E��,Z6O2�0�R����淰��Yj7g�¡��f�8�,%x�hJ�$���A��W0�s��֫�lL��(%���|R�kT��.��RDG�i���lF=S������{�f������1��(u4gX��)�)��t�tW�����g�t��! �ms�
�Dw�L��L�
��~W�Zd�`R�2�gK	:�4Ԋl^}1�4�ߢ���.M���:�,/��"(:�u؟>�βG��X!���v�gg�)���jK��}��WB���jN��A����;�.�?�}O1��֞%�F}�l�*,V��)=D�5W^PC�7hXV�w�T�����v��ųc�Y�8�ڙ�ð�m�gC�z-Z.��+Ι���d̵�s=s��%�b'��dI���Ъ��E2�
:��X&��C�{z�^9
V֯��n�Q&%�>�8�S�Z�Z+U�i"O��Z?m�~8��k"9Ń5���H�߆�9(ء�4�X�F���=�}n��q�l��N�8R˧r\[c��=#[V�V�,���v6m�(�}�Fy}�Q��J6�� [ԛ�&A��C*Ȩ&Mx�*�^���Y֥F����0��.�C�B�iyY�]�)H�y=#N��H�֢B�K���,B���((�\�W*�,c��~��Q
“�J��GM��3BUHR�b�찍�#�R�o�"p�TNҮd|�u6���(3�����m!~��O�BQ`� ���T��|*V�+'��2Tpl�3��fc0#�����S0Ƈ���~�@��x͔���b�9�J�@��d��� w�5���F�C:k^�$HA�7��c�~q
�c�9Q���"V��+>�qE����͈��4�*���0�Aέ�G�n���R��O(E$�Y��>O�`��-V�P�&��
Z.Y*�v�|]'1Jh@.&��WyD¨4Y�c�Yjݛa+�*�
ݥeu����n�����,���\�Z`}��i閚g���-�N��4�X�	3_9H݌o���Y�,�$'���M�Rd�1h�Z�5,��)C��GF�	N�n��bI�_Ai��7�t/���f��%��<2���*�@E���"�Y%VhjT�C~��W��p�ק����g�%ܟ��WBv݊��oq`=��T�r���f��%O�j�yD�7�A���TQVPC�Pw�����=����r;Z%��ͲD��$a[�Ut�Z�P�
����U�%�]�����(hKͽb�ʙ�0h8��I͛�����+=�5�h~��ZӳҤ/�Ӻ0��uF�����mfsWۂ���V��}OI�����>~�)k��P"'껛���|=$pW~��|�.|<��V�J�P쵙 i)�q�9���zsD(�u�U|�Q}���<q��q�n��Z�ȧ ���N��^�!XK�ؓW$�Dj\K18��4�4��;$&��B
������r291%�D��
Pc��:d���d[�Q�*��1��TF�VB@�a
,�zyFy��i�y�Ó�h�)�_�>�L�����RR�Б`�K�l0�L'!
�\�E�`(�_��}8���&R�9��Lt#�Y�Eo=�E�'̏��&�N����Zk�rP1jV:T.T�]�i����_g�9^b^��2�[}yr7�I��Tχ��|a|�E�>���I8��I�S���\Ғ2�a��T
�nc�eV5]�ϸ��v�_�UK�u���G��*D��'V��t�?���F��3�D��_��S�`���)�����zґ�#������ݻ�&�FU_Y
0k-�"�~�Tx��ς"�>)�.�"BVS���m%8����㷋��ǨY_B	:A9\"���)�0h-��R��7��@���Q`>�S�lRI}Ś�@Ni�F��7�e�X�>0��]�߳€N��d��*.�6�U(�׸&L'�0���]Y�@�xf��x�0FFP��^#��8R1L���-��چ��X&S@�0�\X��A͸�R��Aa���]qxu�2��,�UP�7����t��N��?����uB�*�&k�.BA;-��ST��e���|<��E}C#�ᎲZJ>2^a7^����N��F*c&�5�S�d�M@�i���[P�ۢ@5���*~W-ת�[rZG9��m�Iu4�9;=#(��RJHj!���Ɠ�Y�e�V�,k�hJ¶D���,s�R�STH���j���@�j҆��}%�
���`M����P3�Ze�f�C��r	����l,O�H�PG0��ʞD��.ş��/���eiZ��DeùH
s|UU̎�S��PR����жr��}�$��Q����>K�_rV�P{��P�/
�X�z�Kbdm�x����e^�����Q1d�J�Ƃh)���G�bӼ����4�O5�)*��c���O��C�1���N50�ӎ�pu��f�f$�|$��MKm��^q��;���I���s/�I�r�E�r �Q�b[�EN�׬�ّ�U4����K����[�{�j��md5�e�esg
K��T"�xK˜��58=�6O�Df���:ɞWSqy��%vC�nkA��:��0liK���B�xRo���:�s��C2%���IO\e�*`��U-eK�I
����
����	����U�=8���Yʸ4�e�x��s9��!Y+�Z���Юu��Y0x�����5�gwt6Y�;M�3QMIYIJ�[�����6eB��T�E�X�
x����f�W�(���b9�[j���P��ˇ2�5s�
U���|uN�[��Z���d�,Ji����Rѧ�Ly>���kH��9]��Ř�
J��_*�!��n�xV�%�<���� f,��L�g�8���в�+S_Ⱥ�@.3���Snl�L���=��e3KE�.�f�W}C]�doz��*�cP����xi��V�!�.R�Ë؃ξ��O�*�SoB�b��_�&:�D�`
l��$=#��EiY����yh��N��:5��bw��y���a-2ge2Z��R���|�h��"��ے.�!D���V'C3���U�#��<WJ�����90�w�m�Ó���M2C��Ώ�Hݽ�X���/�]*>�}���0ӛQsF+)���U�k�K�dMe\�u������#ٺB��?�`8�ݞtfĹ6|��/׵-�]R�H-.w�U�Q<9N��p]������FL��%��b{Ԋ5�V)خ��5��ù�!L���X?��3Ϝ��;�����p�SsMO��WWh��?���zbf���r�}6��`�xb��y����{��R���7e�—��i�mvܑN��"��#�L��������0�!�/�9��6�`��Q���}o-nD�ώ�N_��X}4���/!�	;k1y���~W��!�K�����L�����țl��TwXo��ct��@Ӊ`#�B������G^{>���U�slԶ��q�n�oU�9�y�B�B'd�ܸ½�QwԞ�u�Z5�R���8z`��)S�;��x>_�۩�Tu+���%8�
����И+y���h��I�_��c�<�E��~��}"	�L���@�b�����̯�w������Y��HsG�^��ê /�@V⑮Ƽ..?6��
X��_JSw����T�8�B���v"���{4�wlx�d��Ta����ˮ�9J�-�*����zzO��i+��W���;��._�l���7����7K�]ƚi���f��b8�;�%�f�Hf&p)_���a$����`K
��$� O��̅5"4լRf	� �Z�p���1��^7�A�U;��}
K���ÅJ<t�9��y�i��4`��*ixg��o\&�n?<�-y�Gk}�\狖W��"�N^8a��D�\+&���Ќ)��F�M�g�\~�x;��`9–Nf
��3t��*=�7�:�:�8�9��T� ��+
��q-Ʃ�G�;���A	�����p��x2�mF�X卥���0��6���'�fF�=4�8v����2�T�:�4�#c�)}�GL,��͗�4[1��1���A���ԧrEm���F欗|O"Ƌ����w�	����X5�N(��z�iQ,��f�֪�Q�N;4Ϣ�3��p�~�)�NE�\U��),X�4z-̗uq��=��(Z�1�������:a7�I�@2�XĀ�o�#�(p.�����*�lV��z�U���=��u�9�d�S֤([�={Ы�!���Xᵶ�m�K�^�o�QƦ���B ��� �/¢ʚb�A%����$���cl*P���XX�]9���P����\��B�\6�	<R/dU�q�n�s�O���4Zai�h.�N�l@,�J��|�sթA���E�z۝C��[����5���z����1��1/y��Z�f!vg��(($���3K���،�fO����o�oy,
<V��G/��J��䌄"	"�'���WM$KQ/�Gd/N��4��m�t�"r3.���V�_�d�I(�{�LV��^I�uz�2�N�ǒ7>Y��<�a��%k,+J`%R���^z8 �U��X�I;=a��cB����Nd��ݲwp��E��i)�b�-������o���t'��7�x��7Ѱ��Wߙ�)�X�3�5tKPUO��|]CY.V?ە%��gX��ZiD%WG���%G0Q+r�@\j�V7�X)�pW�yNI�y�1F<v-|ɨ��!�B��D���lű~F�̲T>�"y�G�~7ֽ��I5Ο�;�k�|V�?��
���ޚ]=���ua�Q���OV_�_���f�d=����_�)_��–�9_!�w~eF��
��2�ĕ����Ycm�����R>�b)/-7WL�p�h�*&2o��n��Y��?=w^q��_$�����uA���<�Ɨ����Ѝ��ꪱ��z���k���z�^ȈՏK�{�4���\_q1���~J[�3k�[qT��u0o�>vA砗�q��֬fo���0j�rp#^�H�T�f*��T`<�H�s�eq;�T�5KH���g�.��B�=�FG����M`S�L!6�����<����vu��KEg���������jɫ���-�o&D��&R���)a�Ϣ��bVwWȆ���v��T=
nP� 4��LB�Ɩ�s��a(�<��x�f��J�%�'��^+�kb�D�k�&�������Ż}�=�uVm�.���&p^[GLR.����!�1|���B�����mx�7	(n��Wb�y/�s�>C���z��
3޸I�{�+,�D�`�7��x8����\SC����W���g��[w_D��~4#��o�Z6Eq���
�8|�kcˇ���C&�z����jc�������
�%ص��.+^,
�f��[c<u��sm�>O�%�Љӻv���P��چJ?hfc<hO�K�!D�[9j]Z�(F��XjՆ,�l��p&�j�X�;j�	�&�!��K([kn�c���	՚�Wn+5R2�[�Ik��uZ�6�e��ݐ)�%‹�����m��qq��5�̐-#
]�G��%�����{ OY?�&�oYW`����m�[ㄧ设��LxZP��C��%��|<�k��\�4Oc�b`�GO��=��2��:�kX:�B�Eȷ�tlg��iL!�N�N��S�\�֦m�<ec�ꜻ��ii��"�}dNR�VMw�0\���J�BK�qk�����q�٠��e`Ч����6N5̖Tڗ̬�Hi�BSL�t�q1tFB�-��9�UwH��+�C������/Ղ
��me��¢
�l�g}UģOip	�V��:U�"g�;�z/�p��D���Nl�a����	�c�[�.�U6XD�,��<!%�� ��,k�Ym{ޢ���ζ��I�Ѹˊ1h�o5�{ّ*��Ŭ��'��ZC`�4����z����#��%x���Hᡐ�!dfu�y_��׾�F%dMq�&=rL4��,���_�F��:��p릐�J	�&G䒢���Y)fJ"��ؙڲ~������g���u�.�L/�߾'A�'�����)�\�g�ΙY6��]-�/���
���g�6�zk��/��|Q���4������QpV�P��
����Ć�1:.R��t	�A@��[�ns�ºZ�E�W{��s���/B:6��3�+�jL�ķ[��@�`da��|�����t��ҳ��yC/D���h��_E4`�
�˭�g3q,�> ������J�j�j,RV_��gma
�����$D�
|T��-6hkM��C� z�5.f�JjW��
w�]���↣�S`1C�W�1ȴ����n�#�O��K/t$�,]K��'��m��s��z�Q���u�����,��<�Aȴ1�%��͠.']#tA$�F��=A���i�|'֖[�X��4�Q�6		:��Gڄ���
C m��(��1�s�
�!�$��r6��-�&E�G7�e�V��jra�Bـ2ze�E����\CMF��m�n3������
���A֧��b�Tɘ�E�'BԹ��.���1��Md�M�PW�W��pA�UdZ�rs�ҡ����=�T˖�X���:NI5���dю=Ʒ7��[����e*��'Yi@q�
��0�I%wc���c�w��YJ"b��Ȇ�s�"�q��օⓀV>�&G���Y��h\�и���K�����Y�#|[o+��E���:EI�z1,��MW&p�iPU�_���Jb��F@�9�()אz��ZfA�T��F�*Y�?�|+�W�[�#	遾�>�*��)�n��9׋��lPc�=� B��� w�j��<3<Dx*��\z��=��s�g�.l5�e�b��HA g�&ʋO�#'Yl�ٔ�J�ShPc}���Pk�a���":��	�l��=pB�1
��R�ܼ�N�N�A�̻Ltta(֪��d:S'�h����Ɏs2R��'�O�}*Vl�
�J6lfaC0�g%��g�^ի0��=E�wڤE7����8�s�tW���_�c����$9���[�����.n^�TuΈGl}R
�/A�ĄX�I���+��ݐ\T�i�2��M�zv��JY��B�㣆ߴ�7�}�cu�B;6�'ۂ��L��&���2ߪe�:��Z�n!�sWؿ��\�Dx�\/��X�t�hVy��V?�ީ-�A7��m�)�$��VRf���-)���m̆��™kU/���u/�(�9����W��z0?�t3�ͺ���7�U�1�3ݭ �}b_Y.~ۢ��ճ�˒{�6�ȼ+i������C���w��
�}�!\�l
�1��K�ⴹ�X n"К�T-�\	nBh_3g�J��%]̛��At�L�+զ:��Yͻ+/���;�^h����LSD�!�m��qfJ�B
zQ�D7�Q���"��I����ό�TW%�.eW4�)}�řbpb��L+��Ӑ�CVOf����w#qJ]]df���M���|g�6F��`X[���A:�� ��6˵侎予�ED��E�*���8gb}DL����U$	%z�Zʗl��4�'�$Q���v���VF��]T���L��$gd���7s�k,�?�_�
�S'�j��0LG"��,�j���;�ѾR�'��
J�Η/�eZ����{l2��K���z`y�—IF�	$���d�#�(M2�O�'[�݋9D���+`��@B��Zwb�P�V��n:�D�q��lأ1��$��$����S��X�k�>�a]\�0��9�	LD�L���X`���EEf��X�Wb�	�պӓ��	R���l�45�bm>��� �"_�̝�X'�K w�0c\�AD����:���a*�8������[Dӝ�l�h8|S��)5��2���9��:�M4��.�Ԁΰ�YUA9���F/(�R�F��w/�oXy��)Q�2�]s,D[����9��W�3T.�C��L<���k�x�`∞W't�T1��g55��TRi�1�&�V��.&'�b		�wD�^�K"�<1��!B�@�H&������!���S�@��	�1+�j>T0��pK8�A��nհ��_89��b��S
�����D��jR\�jQd����<��D��f���0)���\��
�]�����Ժk�� 6�8�9��a"
�Â���<c��Ūd#l���u��]-f5���S�sl��Z�╥��1��z��f��k�Q�;g.�	�yCΥm\��,�lN��gD�dRK��o�?ۤ�D%���cj|��z��\�P��rL
i����2ը��n��\�r�UE����ERI�0ܕ�V�h���1�Wm�%��{K%���$A<�
�u6ϣ��+�'���+9_����ǗB�>�;L�N)���@&ͭ��}����8��HT�L�u���?Z��U�t� W��$~IXȖ�|rfdKT� �ݮ.�h\��|��۾*I�9��'4y/NY�<�Q�11�,�tٍ%�3h$�9�QԦ�g�F���n���iUJ	4yB���m
Aw��4�\$�����y_���g���k>��>��v�Pm�\�<����zՂ�&kS&�!����M���ޔ��*V�_"��&AW�4�)䲼��(ha��
�������*MJU
�Bz�!ۖ�L�)�ߎ�%|r���ؚc����t*�Ԥx�ƽ�]:Yr�o�L�v�<�U��:�lb{.Mx�VF��T��‡�v$��@t�c�O�����5ȕ���X��S^2-��5@Wc�Ԟ��z�T���Y�O\Leٕ�0𔫈���N^1Te\��t�P���(U^��d����<�f��1���ؔ:���.eQ�*v�ʽ*v,�G?,n0	R��aLST뤈	���a%lS%�����eG�и]j�ogg��h��#�̫J[W^8��b䔻�!��JeD�?���n
k1b�H���P��"e5�Mx,�{fv�Dq<,Q�%L����\��D]U�y��N�Ҹ!k�jd�Ԋ��\�ഺ?V����nW#�����[BLoQ8�`�<�;�qU˨��H�b���ͥ���1���h�}�m[�21[r	rl,����(D̊����9����E$V�ˉ��)��6�8(IS���=#��K�o�:�Z������|v��r^�RY����	m0�x�R�U��z������2{��ư��%�V�Ѵ)S36�0k@dg��u�M�30Ym;���@�&�\�k�UL�FG�r~YHصjX���&�/܌&dk[����{�J��n�`ʸ�3m�CJD���LF|��c�]�lMhX�Jt�\����2���E'���e��uD>	c	�����ȡ��w������N�	�
����ձ`�q�2��v[5u��'O�~��;���n�6[O�~���ҿ
��k���i�3S7P��d�a0��uYu����I0�.��fM�ѕc����2��eF��w��W7�(�Z�df#G��Ų<F�l�S?w)�����i�=&ۨ��ҳ��\�S��L�L�,NM2�l�{k4�iv6訔�\�ܖs=�Pc��ul��Lu�џ����6H�9d���ۥ*1x��7ZVt��B��+��u�Ƿ�fUoeͪL�Մ�h@8׬m���5˲ڔ��;�E���GĿ��/����^s���!+n�*R?C9��=ʃ��i���P����MjH&S�̬YEWw�i�jP�W1V��--D�_���gu���'��]q���aj��k�d	�T�f�@�9�k����{z֬��2
��I��:�zeg>]��!�fL$Ҋ �"3��G�_��?���Z��k��kVr�E"�a15�츷I�Y	�yFyX�s�(D��`��*�X����B�)e�2���̣�.�"���5+�Y"JC��8�Y��}D��2�7�8��..�1��-aZp���m�m��K,��N�ߞy��)[�e�~�,0n�6L�q/���%�X��s��(�P��Y�z�4��J��f=�3ӝ���5�������B�($4z�(�~-Z`^�:��"s��<]F��s�8֬�W@gC�ugq�U��=_�@�Jܖ��Z�fY���,��w�#�%o`��T��e��EE�S=S����X!Q�\ܠ�(�
�gz)I����O}�T�ύw�vG�*�"\#՜��_Y���u->֥e��B:��6�1s�@9��׫���f���"���0�/�P��=^5Í*��g��m%�x7��Jx#�_�@R���E�������SO�S+]-�lН���?ۇfV	�o�A�#���.k��n���D�Q�����&��y�xq��=�|$0���s
KI�(C��c�j@C($�hJ�Y�wIf���d��b���Ӽ'l�4k��飡�v.�>���N�5�D C��DC�����Ԝ�E��8���ĈZ1ߎ��j�>��VxJ{������7���MٴX_�$'�(��\�§=�<-o�ju]�g��Xp𗌯�Δ�6�VDY�x橵��3�#R�A����mR����:ݳ�z��Q�R��'�8��R	��Ǝ4��1��mR3.oe���[�yyfh��̀\�NP5��h6D��Eu͕�gz�,���	z�吊��:8�=�e�R�.e�E���&�5c(�H��Ơ���—kV�mm�_�~B
m�-�g��Mf����K<aM�V�+2�cDر\���d͵<�9(����	��fȬ�d�nQ�K�
Lb^��ѩH�D��.�<����W�+���J�_t��`hi�=�Ș�Q�ꕻWÎ
{�k�?�#ԀmS5g�x冀�	�ki���6{�	���]e���j���/�&����F�n���*���v>��m�횸���a��Y����إf���]GG<%��s��.Ç>�=�������UmT��!���V�� �`E��0H��1���l�԰�
$���T�|i�Ld&+�0��^�T��¤��I_3O�D�d]t��?B34�,�Bm���d3�vm�Fϵ2_(�����Z�z��?y}r��k.{u��TƝ�xTG���f����`��
���aXVO�f���$��?�k����ޥ�7�	��T�X��Q��/b�[�Ci
���p�x��꣱�	!���"�,�o3
%���8�(Z2ȲAE��#!y��jj�
�`8B�Uu�}�Op�x���2�(��t��3@\���t�?~)q�m��m��r�%�[�rA�Ʈ�Q9Ŷ�Lj���S���:A�%�
n� �=�F�8r�q'��K/�oh9�"��cK�d�[^�	�dd��b�������R�F�ލr���ͅ
z�!�,<���	Кa��+8�HC	���/��F-Y��Va� r�TdڄuTK3@�����gM��R�kZV�P�`y,�\2���턷@�G����u;�L1�2����/
8׬5���=����`6[&��
������R�I�Q�CA�/"0c��3��B-�AÊT���+8����(�#(�H�RVz˨gh�2�1���ZF�)���c�‘}/xn���y�djA,쬾h�u��}d��nk0L��T�g�SD7����QbM�;j�)���;A��~����"=���5�R�uU������j�@w�U!�k�S2����P�mr@���z�{ۙ!y>���vkD>7��CJN�#�
���Z=�As
rJ5�/P4C���lQX#%��aɀ��
�
Yfg�,*�C�y*�T����?*T�U�{,+����e��(WX-9�
+�WNS���t�jxf��LKQ:0'��"�ZlQ�8�^^I<M	���#0(w(�H�h��'�=_A�Z|�1�y1������z�>-Y4YM	��J�~q��,V
�T�g�fc@`A��l-�d���E��!�W����\W�����A�b� wG����m���t>�͒�$�a��q
���^�A������C�;��q�g��D�b�M�����d��Ҡ��'�!�W�U&5�.|C��{���
��%�i�r;�E��Q׌?��紾*ͨh�ƣ�چ�B	�%��Jw�|�O,�)�M�ߵ���tl��¼[6L{|��b�a����}$!J��&�$���AQ�i�����ȚC<���������~W�g�蘆�n�哵-��7�˲�ۺ����hw�,�p���>(J8VVB���G�%2�KX�80'�L��@���d
yy�Ae�rkJ�V�(J��V��Zt>)��j�)����X��g�	p�0���8������m����*��'ya�z|�������lFXF♐���T�{QB�(��� ������}ܢB'/k�R�y�O�5b\Z�ay�R~��Qɇ��2���N�&k˸x�Y��fo���e��"$-��CJd����LX�5��5
��?�Z.���VkN&�P���Lj�f�|Մv��[�j:���c��H�ӱ�.Y���y�][�Xj���_�G!O��]�b�0���``�`!����U���,�0�Z���BI������0�rFԨ�%H��9���d�U~�o"\*_���H�<$�*�#|�P%3��
�b�X/D^��O+��*�	,��W�'�k���l�ο�o���FP�k����I�@ֲwc���[,(��D�S"n��.F)���IQ�8K�[��$@�;^��F�vQ]��a����){��X�����d���6 �g:��r���<�A����u��5��OJ$���붲m$�m�ļ�z���
�`�׸��tJ���pOu�� ���޺��k��Ӧ������U�?-��e~'a銣�T�
f3�Y�ޣ�f�J�|N�,f:�Pn:���b�_u'_SO�Z?"
A�{#SC�0�(ը�d'|b+5�_j>D��w�z��<�I<3�\6/�2�l&8d���ත��Y����C)Uƨ�,~����V��."��
��u����`a�5xo�e��T���6#�!�
"��ڭT�>2�#pm�;e�%Z��g89]C�DK#�#R�W~�#}��6���
������(��,��%�����o��zj�O�\��*-�Du���W�6$�T.C����.|�:��"�n�� !#J&��_��L���]�ɤ����*|���\��Nf�n�
�,݈1�"TB�(�~�Ֆa�(�Nh�<�f��Ku��1��
F�����`Ҹ��V�
 �A�)5UG�F1�gy��s��H��1�D���h��.Y�hK�t�c6��/+�ʓQ�Zc��:�E}�[-�PT�?�I����iR�{�/�:hI������E���H�4���A�T�vF��S��آ�m#���/r0�E'�2��N�Rq5�ͱ���͙i�r �Dh�
k�3<�q+G�ggU���ӏ�}�\~���KlYZ;i�����'
O���,9Œ�V�����<Ao
W��U�_�R����:<�av|
�RQ��]�wPTQ�C��6f6�y�
„._.��۠���懬v��1�]}; *4�8V���23��B�"2
�5��nr�=�*�:����9J�F�P4�������*�í*��r��ED>g�P�|���\^p�9�wJ�,�ЇV�ר�AgD,b�3`��²��%�,��3�f�}�Z<E�xb�Qo�Z�D�c�+*���[4bטt�	� ���RUL.e_�&��t}�����f���7�9yx`*��;ST�:�Z>�=�I9~\�-��f���qX���Mݚ��=��P�`��&t��(L��9�E��l�;1�������f�Յ
�-�Y\�N�Ԓ�Ԯ��|dDDVpf�"��F��v�@�N*�T
-�@��њQM��r���y��ixs1��sD��;�f41maV�#�K�4��	ͤ:>��`������#?e{a���}7j�jˡ'4vR�=C��^9M�*�R�*;l���\R�T0ۢϔ�Q-ޔLu�K
��W��uͱپ�����\\S�晕4%uA +D�	��}�ܺ	�gz�2bU[����,*^���$`k�^e�l��	��:��@|0����b
!J)���~���RX�-�ɥA��*�[�����^��'�C7ꐛ�$.��lbk��ϯ՜e�:{��2Fo����@MV��$U/r{Y�S*�e��u6G2p�n9Q.����&�2�
�b�HL�V��S.��Cjz#
�F��..�[�z)��}�!�d�U|*VN�<�JK�!s"W7�"د�U�`.S���&�Oe,N�������ݤ\2�2X��X�@qO
ʔ���Q&�u4��8�!�j���8�տ��
DRcX�zh�E|ӌ�m����Jc��e��s���R�oD�7D���8�#�
Z���i̥l52H��/��C}G��M�eG�E�G��z:N��3�޴���ԭ&�=� ���Th�A���N9W3�F�UΦ����5����n��qQ0Y� {�
�(U�D�u�؀*�F�(�<�X�3����А�a�#��n�(F���� ("�(uX�t�ݿ����ڭ��E/�b���T���e�̊�J��ÅF6VIj�8M��D�BA��6�m|ʪ<��B��ÿ��,��6Tp���x�B�zX�c�
3/�5!����P�d���}!�k�;�� n�E�(�8���\���|�Q.�&��q=+)�5�f�Ƅf�)&�ur��l0^ҽ�R7/d��n&��">�1E��1�2�A^N�P�0�R�,��l��9��1#2k5q3�1J�ZW+;�I�`Κ�56.��i�9!�(ԩ�����T��A@լ
`&5�r)�ʥ���.�I0"��L˜���j<�!�[qяB��b9�N�~��r�iܫ�9�t��߀�|��
3�ϹZdDF����̐��∨ ����l��NCa�HŃ5�V�xOХ��A񒴭5��i�@,a�T�w��
y�6���LP�ʺz8+z5�gK,���I�3u��(�bA��1M�q!;�b��q�ys�h�0�-�m�X�J��&�1[*��F5����$�مw}cb�[�'�QԢk�����顠zCz�:��e���6�;F�����Y�3�c�;��ZH�q�d��^1�v�8x�Ş<5��Q��c@��=���;@͝# ���$@;��U�f����Y�<# gTU��}z��tW�j�+ē�)�/��no06-;�p\V_�z��1����R��Ѽ����[�1�u��#����ǭ)��"�|!Z`mq�bլ�������H��Yg�F��!��u	8��Z1�O�Taٔ("�%�$_q'��a�����hV/��S�!8��EU�a���[�x,	{I���X�jX`6-��$��ғ���V\0̠�e���zL�ۄ���%#U\�U��e,�E��~�r��b��i� �z8��A�����,%!�@���S� dA�Bˆ�=���=q�sg���`���b�>k��H͘ė}b!�)b)�	"ok�*k�䡐��U�S2�c�?0�4D5Up��I0�Mz��h�N���\�OA?�o<xZ2���7`�DY���OnrDK&Wd�JI�>����������'᭩T�b��dʈj~�qJ����MǼ_1*!I	���a.S3Bh/7w��הU�Ը��#V�$]I�2ߨ˽���誶j}#��
�oy_}p<SA�[4�דA߹�M��*j�@I?���Ż��ӜC0j�K3�F�Ǭ����·D�*U�3�
-��W&�aL(#��D����v���5F�3DY�|��qMt"��I�n��P�1
�N��"1�1W
Li�{*X��
��g�`�5� �.�*p�ֱFߗ{�!:+(8�P�{�IO��;�t�Nl&Y���󹂈4�E�w%��X2{Dm6�?p�d#jqA�r�ًfT�<"q{-'k�	�1�PÔU�Sc�G�ӈ�j��N����bF��G��D?�.���fX��tW�����"31�tD��H(6[�Q�su3:[o��\ely���-W�o}Z�Y��x�1�|�vL_5޳�����
7XW��w%��:t������~'J�=j# 3N��,���)9�7����;D>f~L	�%r�/_�]��&��G��v�F‘��x����Ha=e� �����3ĕ[��Jmԧ�
MJ�wm�0XI%n�fm�&�f���E2_�=�#
��
C���ƿNO�<ki�H��&!d���.�`.Oۗe��1�/�̱�87�6��qKn^ӹ���ʅB�2��6�z�MT��s���ƣQK�Ll�s�G>���>�Ѹ�l��R�o͕<�=[��j�P�^�8��N�2kT@���/�]�S�l"�4,O{3��vZ�3b-ߜ�~�m���~1�=����?'AY~�r����)��mE1��mNX�Ѻ�s�����+5�y�^s�Z�{;<�<��br;r
��f|3�,���Xp����c�n�e��g���Fc��tu7�eR���L �m�DJ"����6���-V�>���(�ŵ�M%:���v��ų=�	�s��ؘ0����{ڨ��M���[�b��������A֭�]a�����|h��R����gGʸ�*x=�;7+
�s�ͽe/��#7k�^������ʘ��������!�fՎ��p��|� ��q��8+W�Z5nCJ ?$R|M�I��gRPA�{�hØJF^dW�lWza䇑U��"����U�u_:�u
O����ۢ"�{8�c�1���r�~�H�w�7AL+�
5Î��ܔ���^��Y/J��Z�_Z�#Rc
��j����e�|���QBa�F�_���w�m��2;�PX�h<�V�ƣ�����ר:H�/������Rk{^o�f���uk�e�������H�O3�l���񪾻^��{t.���j�c�.��]Ir�����ɫ��+�W\,���w���Z[���#��;�6�'ە�&���A�3ٍ�fCل���8e�lM���
.����R�|}�!%��E�-|؝�n� 9����'�:Mr�Dž�p�5Ϸ\���澷
���(����)̣�;��˙yH�+�� ���K�\��eF�صZdF�HBy�'Ub�/3b�F��uLf�-ES�%�۰ʹ���{��?�hخ�a�G�P@B_�}P�����2�ߕ�'�/��AL���}cu�~P�d�����Zz`����Y�g���mX�-V��������k3��p��̊C���B���I���EU��x^LC��Ş��=�`WU�F;JII�RƩ�tS™M��{�����[�+7��qߋ5C�C��0Zf/�Zh@�d.E�*��z\�LH�S��P�.�+�%��rz�X����qC��M�W*��wZky������gX�5�ӴP�@�
]f�B����'X�F&�7�#u�[K�<ˮ���]�5�+�ˀ
�l˂yj{dз��\�d��4�������ǒF���c�� �"Uc�
�8�9,�A��"Fbo�{��n�}a鳌��J���3q�n�uum�p-�kܰ,�	�d�^$��
R�?�\C��C���!n=��`Ԟ {���_U��[���Qac��lK��{�h��@P�(��<10��-�;j�%S��ȴ�&k�
����+�X�95���D�آG̒�\��G���Ď�nnS,]p�
k������T"�+3�U�����b
��,ļ	�#K�5�Uo��(�����hB� �T��<��rI3or�J
㰟>>b��,fj�o%jr������^�#k�z�S3�`F�n�g��$�[fe-�����ge�[�&o���/{�8��������z=ǀֱ�2
���\1_�+��:Đ�3|0�uoZzgބ����v�"ϩf\��㎇�oQ��@ ��K��`ԐR��@��:��X81�X�`GX��JS"�'�R�!۸��a(�G�KT	.�=��2���\�f��R�Z>��*я�Q4, p>)����LhxXn��jZH�g�O"�e�X/�!y�:�B��թ����gw�͏(��P�~�=���3#T2��
(W�SW�m�4��+q7fFv��n�Myr�8��;+^cÊ4����a������D���0�̙�ʍ����y�漆`&�`�r��y��O�z�M�h%�mX>���aM`}OjA-���$�������bf����1����y��ia���Og&2����)��=.tF����|��).įD�L�8��Cn{'ZGD"z��	�î|[ư}:Bb]B�>�\��@9��ee�Q��uV�^�d��:��x޾�4��'�ɫ0���9a�/����2�W�R�_��c��+�^���/���UGC�&�G�TU�+�d��ڐh�	@bS*��S�=�;&��hD�|Q�����UK�6�Y��UZ�
��a6O��1��#��'pa�����=t��3R�����$@��t�"�By�C���>���:����*�����Ŋ5V�PN
]i��ePc5����0
cR��B7�|,Х���H����J�Ƿ*2��`�4��6o������#5�F�/��=��v�ڝ��EB�͍p��-�瓼��5��ۢ�.B,����M�,`|^��PK�@^'8U$��$����j��:�e�p�:�қ���AZ����/�e���2�|t :����My�TP�U��t^g4f@%mBCC�~�~��=H��?�
EY�NL �h��^1(�N�\�X@�pY_׺�ѪN����U�?��x��e�1Ҷ�y����3⾜i7�^i쨔e٪7���/��>�����B�������׊�a��Z�\P1����N1`�W���Ui��I�y�
��qJ�u��D���<f?h�-qτV[�}ֶΫX�d0�p+��]:&��֠f��V%�������?tN+�4��G�Жv����[&Q4a2����p�E�������;�'&h�Ik�?�%M|�
�k��W�0�	�P�!0�r�O_LN���up�+�9�^��rMĉ&!|y���#����Ϯ`�78S��
�9��·�+u�r;�&
Wnn�b��%����NP�p=��+M���
�:�^K���Ȕ�SacW�6����.%܋���S�����
2jb��I�4��Lz����[)UKْX۲�ѤZ�����vC��ְ��-Ě��h����7�k���.Z�r���Ѣ��0i|)�g�����X�g�m�����oJ��`5I��6{ȩF#,R	g0!�s�F��1��zD�S/�3�:!�U"��n�
�œp@��j�)w�y�5�+}�+as`Ր�2���q�<Z4;_�S��5pg&��_^s��B��
�JB�x���X!��2R~��Zx

�G'L6"���é����.5Z����M)E�~��=��x�ha[]��
�e�#��(^e2����![�Z��6ن|�![Y='3���P��!�t3�"�e��#���4�x|QN�@��#Ø��e���S��Qܚf��5�s#ff��0!��k.�=ޏF�9�Mu�3=;&+�H8kw�<�—�)ԥ�Hfl��K9����!���e��6��[~��gtx�H�'�� w��SS�^G�e�j����R�:A� c��sBz_Xqy���1�Wr��D�b/�	��d�\6ď�9
�ґ�	RN+n�Q�~V��W�:�;.��dlg�s���Ɉ<��&�3��Yٹ���kJ)�i�G��wA�GL��r�ץɒo�&5���y�*�����j�#n=�3J*a1GU���������gֹ��^{�O�s�]Kğ�M�m6��QM�K?&xs��Vf��7�bw�S��nX��K�K/�QX��5�8]sZB�rJ�u����_���N$BA]u\�Dp��&������_FO6���a�ǂF4A���Ǔd�E�q�<�!X��9K'Ϊ��1{B��3��]��,r߬9��� <i���ϕ�5�	1=?���٢���������ԩ΃�������{u*�\^��jF/i��q��H�ԋ@�����?���D�jC�����e#��t,S���c@�ԅa��q�=��[���K�sO],��8|A��~k���q�@�_: �l"���La�a���՜������tP,֌6�_>�No!����O�t�%�Ñ��f�٭y�3q��Q�XHf�|�'�����]�E�x���s�4^���GC�M��}�_��E��fϏ{�T�8F̻M"n�j��"O��)E�R�ms–;7p@���~�5�
v����u�R�ـmx�A����9����&��Ve��6|�p�*1oQ��GvT\8Qb���	�}�	q!m�ڵuz+�ܩ�b����1X�:�?�4��G�c����;���|f�*|�@��h��~+�W�C�Hj\p�?����
����F]I+�ir@��
�!z1ep�$��^hm�9�96�Q�~5�Y�
���8*��:I����0��A�h��/B�N�����8y�I��^lL�'��V��ة�n�O8t0��P�����j���>a�9�`�Ɔ-N�Ϫ��(0��oZm��F~�}E�WO<ҡ�Z����q``��>f�F����Ò�"�l��:�2�rj౳��߸}���0�	AL�U�֋�j�Z�VgK��Չ��k_X�,DO��i�{�P?`1��8��^_����o��3��&�B���2d�	�D���NW-+QhYg�+�
�7�;ur0�VsN�
]�	�3q��<=�)�q�h��m0���W�Ia$�H#82�W��4�hO���Y�U�[�x�]֥,[Ɛ���}��'Rk�	D5^x����a��=�C<�j�;D(J���,��O@
6p}b�2�`���\B�l�е�D�I�˛fy�cq;����٢����!�ZU��l:�,&U�Z�Td��3긋�Ȟ3�Y!$ဳ����DU&�I-��|���*/;��/���	����<cΌ�	�ua:�G���_�.lv����Äҭqpj��%fWȪ
�05��Fxhf�V<��1ﻏܦC�FnҪ���\�'�yPq>+n��[�,N뒧�u��5��R�l��[�3���>4J�j�X��k)�V�Q�Z<���շD~�}�~�.�+��Q���؀�:c<A
�M����!rK�3(?�<B�����A�-�6����!
S!W�{��:�uXUl��,g�����V�3Vm
�B��q��@�������cQB={%"R���d�Ó�����s�D�ۼL�YV�\T��s�a�0�XC>�`�L� ���c/1�f	��	�g�H�.r��
�^��Y�y�ƶ�0=MW�3_��5$&cV1��'�e/x�yh������c�_�9���� �fO�b����k]�(z��9:���w�T��0_[�ռX�f��
��]6��J�3'V�R�51�կ*�N���9�w���;�td���@2I|�
T~;͡_�~��ܪ�U� �6k�l􌨦d���z�M�����X�`���Ό�>b=�Sl��)����Ξ	�@<���=�hҀ�&/�Ϝ5�J6ڹxv�q%�y�%�	?h�"�	���;8G>L�.��Ԍ&�l�a��Ă�U/�PU��H�l����lcR&��E��+D�Gb�����&���:�e��FN8=��*���U�m�5���ɭ�{5��XQ�U��L�>,��QG��K�B��
��y�U���a�'���B�k���-��i|O�&Y��H#��H.���6�i�Q��0��b=0#l?��8�5����5���D�ߪ����k#�S�h�pl(�w�p �:�R��g�nL�%#��rN��1�9#�7>�S��ʏ��Wn����!C�0�밉wе?OA��q���硠�
�`q��;l݉j}��j�S�=BM���Я.����G|,�)�Z�����O�#p�/��\�\��	�0���H\B�nװ��3��Xt��m�>��T����iF����2S��lĘQ2𼧓�7d��.]IzjQ����{�A$�a�e��j�� C�����2=þ�Dž�k�����QI-�TT�jN��{�D�f���Y�&��<}o��\*%�L�9��Tg1���'+�����*��8d��5�UU=��w|��Z���3�N�!
!&�zX���S4�!��m��	�ʰ1��e�u�'����j�j�g�N�ȋ�$�^�R#H�m�8Vpq��7b�EV��~�x*T��D����A�r�4�Ą@X�\ufX_N��v�,�6��;$�bP��6���&�����n/2,$���6!�uv*��=㛉5�x�=�	"ײ����B��/s�
�B�J�i�r�~!E\DZ�줅��/"�t�E���"�����;�lU����M|e�
I�s�>�a�c�v2آ�9m��u��?ʬ��qF����J�2[m�|<B��$c	Ih���x��v�DXj���cBT_sl��%�n�J�&���0��Q�}w�L�]�^�c�י�lY�5�i�����&f���s���4���N\����;�l�Ѓ�5�gVo��ި#�JāQ�ݏl<�L�)����v�
���kV�r.�5�
z	7�w��J���W1U�ed����Շ�|�?���3�DϘ<��X����Pe �b�!��a4��NoE�O.2����;��F0+�c�BL[k��,wdy[O��(��_��9�w^3C���#a��F
=3���z����."���\��d`���
'7O1Nٙ3 �V0ˆb[�C3�0��ZvrE��I�	&^�E�3��KC7�{�2��DܱJ�3{0��+�{�쭃hҡ�:
οHh1�{D![���ؖ���E�`oz���rPHx�NV����]/�%4�F���RΘ�뗀�,L��\� ��d��r�5.�1bb`aZ�5p'> �&�[���5�F��ȱt��,%°�V��;�1�%�b�N���M2��mFπ�V8ɩ��b@Ř��M���m{�����Ao��,M�f��`�Ƴ���b:�%QDž�M&�V�G�^P`��/*��b�6B��sU��ͥ�����s��O�(b|k�Oǡ��so�����Q*��|v2��oe&[����"B	|G�LWϬw���J�^�J���Jd�(���"��:Ӎ�o��\�I���}|1��]sL����
�	�چ	�h�2~����� $\� ��8���W�dk���54���\�Gd$������^"bC�&�ů؄�`6�H\+�2�s��T�|TAv�:n�5/�N#�a>T�Q����(n+Qe�w�#_�3ה��Exa%��qT뭄�QА�(�"�O�&w�ڢ7��ah� �Z1qi�`fL��J�\��p�/{&��K�
�0G�inD�ε�pa��IŢ�x���'-�����އQ�/W:\���Dv���7P��5
z�`gJ�[w��U��^	�9�h_�ё����6�s0��,�5�҇�$5��a-�L(���	,f*`���ʐ�=A�7����Q#cE��cXMD� �O\��V��5oM��W���Li�264"x�ѓ��<rq�9d��E�E��@/�.:	�f�'Aa�M{x;n������Z�"[�j�p�NQL�C�?����$���	�D8߅R^B��9|�/�pf�3�YTxda���9�%�?��(���M�7'h�'��p60���5��NW��p
xq�0���JU�b^,dV+�x�Z*���Mj7Ŷ.��=צ��0�ƀ٩S��5`ɠ.�
1�2�t�ւ��������:|�Jp��)��F����6��b��u��S5t.�z1h�(������
������Ng��������LK:�:Z�C�!��1��y�hW9�e�6�,*fU��a�m�k4bb�6H��F�n��/чQ�bs4�VWe$�H�$(�
��"6��u�xl�8�Ak����-7H�G��e��<S�І���ŜҀSndyk2>y�A�9gvFD
��&X����xQ��ar�c:�lЁ��}|r]��1VPI�|��	����0���^U��y������Ӡ3N�O,��<6%�ٚP����f
}Ѿ��U�X˟��UM���Ag���c	w�m�D=5a
t��
y6E�,�?��~��
h���E�/ȳ�-S'0S0������������ߋ7�@����4� 5Y�\;��K�.�=��MC1��S&Fe�:Y��(]TkX\���,���ʱ�*WͰF��~���]]�q-`sY��G�^�˝J����ot8\	dm���F�s�����0}�Bs��1b=�ث�F}���3��|����/{��]h��*�\��Zq8o��Q(�b��Z��G��]q=r��^N;n�7h���m<�un���uE��c�:��X�n�aKd���5���#��"�L� +�y��C��IʉWZ�����U�vfm�&gZb�f��f��=��:DI3����*���Z���a�E������hh���c������!�
��;6n�,�M[6���fW�TWF��䂍���`*�����l���<Ơ�C���&C�WH_�ߘ>ZQQ�O4�@��5�$P���n?�+�8��p�5�.��t��;k�Yͻ��ؑp�6R���5m�����
ŝ�d���gd,�2Ơ�,ջ���=�!��N�湲j�$�XSX',�+��ٜ��*��eH5�F/[�����w�f�H�\��
HŘ����+v��ZoR�vm~�jfa,�T��B,΂�Z!�;�N� �⾁�H:�3B:���]���:��BE����E�\9U��o�ʰ�;��&�}x��u�����6��Z�K��j�4S�\�9�����Z��?��M{v�IU�&C�I�q���b�3b���Hdo��ȡ�(Ø|�tE�,�j-fF@`L��l]e�i�T��Eҏ��U�=�{�\a{������N� �J7�ھ���<(s����gC'׊V�+tE�<�D��̟�I{��B,�����K�\6��Uu��N�W5\Wm����<��P�5W��Pu0��.���O�颋�b.|�8�L"*^.5֬�&�m��;��J}!��zcTelІ3�2VT.v9j���%r5�?'�|.&k��ƈ�B�:����<�y�g�o��B�v��D��E�Y��N��-�rA�n�Ø�M��h�N�f�8Ǔ+���DF��"��Z��c32�äT+�B���X䨾q1ޏ�e\t:���J�0Y1ql�+YBiE2Fȧ�	@�4�Y=~(͌�N�`�l�7�6��Gu|䗋�KיFV+BQ�z��dɺ�����B�E1���y3\#�~mZ.�X\��\��Ҁ�?=��4�F���t���:�]��*��(�#�˰*�95`ϣ�/�5J��l6Ӱ��g�l/�Dd�252�U��X���R�3!��^��z��
B���1��bX&��o�[���ɮ
"?��	�M�.<��2���R�}����}��u����~������'�����tgF>zaF/��;��w�MJ���7�$tu
���C'��U&y��&
=W+�J�U�n�r��鎸4�L�b)����g���쯵�������=_�K�hH��WQ���Q���a�9�+8L��"N�4D�l��5�*s�&HO|6��	�J(ΊF��K����^�W�����
�HK�Zl�7p��9sI��XN�bu�8�q�5[԰�"\�(�E(�����бi�W�h�qM^πυ��Å�nf�5�Ѹ�3�b��k���+Mu>1���tЎe�Y�*eҤ�(��+w�O�.�so`m�9�'������fd<�aeu|�Xmy_�j�l����UF��K�R�nG�� ����Nk2��ǘ������r4�\s��r�D�f1/WX����з KI|gT���+��9����zbh��sh�{
jC�E&��#^���z|?.�nY׊�]C��`����6AV����M�q���jW��H5mM�NR��ʤ����8n�)o$}+�6�1�䅠厉�ن�G����q��ޤnďrM��.����c.�$ffD��q�$��}��^�(G̨/g�a�K��
�?�$����K���/RK��#���F��\6 �
-%� ���9���/OO���^,�I1?"�؆�O�s,W8u���&G-��N�^�^��m鉭�["���m,ˢ�sR̘=���x���޶)�@�3��Q|U��Tm��<m+8'0מsRcg�.�� ,)���Y��H?w�a]�l��h�qS`���K�nø��|�o_Q��K�Q�0@�5'�<�'^�ǽ���V����}m�~�7`�n�Ƃ�Lz��n�PI�	 ~�'~�>�4<>o�D��VVP�
WT5@o��3 ���6P��Qh�q��
<��'ZT�1y��x7�ĩ	��^K�-��w0$�UcA�՛We[�-2�]��y��>/�����<���@��ި촔����OdF��в�A�
��qF�Ik}H[�V{YC��N̮�&�$;��Z�*��q�m_%��_5���4P�܊���zm�rgx;�gT)l��Z��H�T�MxY�0�����w�5P0��)7�A)egպ�U�a}�W��ȳ�Q�z9�`p�3ߺ�T)�"��#u^�s1
��^���s�g6F�g��	�9$�
�&�ס��{ʵj`-�XN����T���ԙ�lA���yʴu�}��|�b#���"o�����)��R1�1cX�r�JBk5r�wm�,�����"C�Kk����fF|��`��+�U��hڔ)����<��Ա&m����o���H5�"痈���h� m�2����0�&�t��sݑ*病�(��
�EnB�03o��?g_���TnP4�]N�E!z�s�kw�Q��X>6c,%�7?g�p�~JTT�n˜�a����Ĕ�xc�+��Խ���!����1%*_�(��QR��4�k&.���2)�	>��PKv�R.�G�f����litespeed-cache-fr_FR.poUT�0�`ux����PKv�R�%"��	�����litespeed-cache-fr_FR.moUT�0�`ux����PK��c# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in English (South Africa)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-02-02 07:13:21+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: en_ZA\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: src/lang.cls.php:127
msgid "Localization Files"
msgstr "Localisation Files"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Purged!"

#: tpl/cdn/settings.tpl.php:48
msgid "Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s."
msgstr "Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s."

#: tpl/page_optm/settings_localization.tpl.php:123
msgid "Non-`.js` file extensions will be ignored."
msgstr "Non-`.js` file extensions will be ignored."

#: tpl/page_optm/settings_localization.tpl.php:116
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Resources listed here will be copied and replaced with local URLs."

#: tpl/page_optm/entry.tpl.php:45
msgid "To clear the outdated CSS/JS optimization data, please go to %s menu."
msgstr "To clear the outdated CSS/JS optimisation data, please go to %s menu."

#: tpl/page_optm/entry.tpl.php:43
msgid "You are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not."
msgstr "You are now having %s records in CSS/JS optimisation table. You may need to check if you have random string issue or not."

#: tpl/toolbox/beta_test.tpl.php:33
msgid "Use latest GitHub Master commit"
msgstr "Use latest GitHub Master commit"

#: tpl/toolbox/beta_test.tpl.php:31
msgid "Use latest GitHub Dev commit"
msgstr "Use latest GitHub Dev commit"

#: src/crawler-map.cls.php:319
msgid "No valid sitemap parsed for crawler."
msgstr "No valid sitemap parsed for crawler."

#: src/lang.cls.php:106
msgid "CSS Combine External and Inline"
msgstr "CSS Combine External and Inline"

#: tpl/page_optm/settings_css.tpl.php:55
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimise potential errors caused by CSS Combine."

#: tpl/page_optm/settings_css.tpl.php:28
msgid "Minify CSS files and inline CSS code."
msgstr "Minify CSS files and inline CSS code."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:93
msgid "Predefined list will also be combined w/ the above settings"
msgstr "Predefined list will also be combined w/ the above settings"

#: tpl/page_optm/settings_css.tpl.php:69
msgid "This will drop the unused CSS on each page."
msgstr "This will drop the unused CSS on each page."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localisation"

#: tpl/page_optm/entry.tpl.php:8
msgid "Optimization"
msgstr "Optimisation"

#: tpl/page_optm/settings_js.tpl.php:48
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combine all local JS files into a single file."

#: tpl/page_optm/settings_tuning.tpl.php:86
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Listed JS files or inline JS code will not be deferred."

#: tpl/general/settings.tpl.php:95
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Request submitted. Please wait, then refresh the page to see approval notification."

#: src/data.upgrade.func.php:43
msgid "Click here to settings"
msgstr "Click here to settings"

#: src/data.upgrade.func.php:42
msgid "JS Defer"
msgstr "JS Defer"

#: src/data.upgrade.func.php:42
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."

#: src/lang.cls.php:113
msgid "JS Combine External and Inline"
msgstr "JS Combine External and Inline"

#: src/admin-display.cls.php:446
msgid "Dismiss"
msgstr "Dismiss"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "The latest data file is"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "The list will be merged with the predefined nonces in your local data file."

#: tpl/page_optm/settings_css.tpl.php:41
msgid "Combine CSS files and inline CSS code."
msgstr "Combine CSS files and inline CSS code."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minify JS files and inline JS codes."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Listed JS files or inline JS code will not be minified/combined."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Listed CSS files or inline CSS code will not be minified/combined."

#: src/css.cls.php:552 src/placeholder.cls.php:542
msgid "Queue cleared successfully."
msgstr "Queue cleared successfully."

#: src/admin-display.cls.php:903
msgid "This setting is overwritten by the Network setting"
msgstr "This setting is overwritten by the Network setting"

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr "LQIP Excludes"

#: tpl/page_optm/settings_media_exc.tpl.php:121
msgid "These images will not generate LQIP."
msgstr "These images will not generate LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Are you sure you want to reset all settings back to the default settings?"

#: tpl/page_optm/settings_html.tpl.php:143
msgid "This option will remove all %s tags from HTML."
msgstr "This option will remove all %s tags from HTML."

#: tpl/general/settings.tpl.php:117
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Are you sure you want to clear all cloud nodes?"

#: src/lang.cls.php:138
msgid "Remove Noscript Tag"
msgstr "Remove Noscript Tag"

#: src/error.cls.php:80
msgid "The site is not registered on QUIC.cloud."
msgstr "The site is not registered on QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Click here to change."

#: src/error.cls.php:48 src/cloud.cls.php:655
msgid "Click here to set."
msgstr "Click here to set."

#: src/cloud.cls.php:654
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site not recognised. Domain Key has been automatically removed. Please request a new one."

#: src/purge.cls.php:280
msgid "Notified LiteSpeed Web Server to purge localized resource entries."
msgstr "Notified LiteSpeed Web Server to purge localised resource entries."

#: src/lang.cls.php:126
msgid "Localize Resources"
msgstr "Localise Resources"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Setting Up Custom Headers"

#: tpl/toolbox/purge.tpl.php:82
msgid "This will delete all localized resources"
msgstr "This will delete all localised resources"

#: src/gui.cls.php:518 src/gui.cls.php:669 tpl/toolbox/purge.tpl.php:81
msgid "Localized Resources"
msgstr "Localised Resources"

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Comments are supported. Start a line with a %s to turn it into a comment line."

#: tpl/page_optm/settings_localization.tpl.php:117
msgid "HTTPS sources only."
msgstr "HTTPS sources only."

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localise external resources."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Localisation Settings"

#: tpl/page_optm/settings_css.tpl.php:115
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "List the CSS selector that its style should be always contained in UCSS."

#: tpl/page_optm/settings_css.tpl.php:82
msgid "Generate unique CSS in the background via a cron-based queue."
msgstr "Generate unique CSS in the background via a cron-based queue."

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Use QUIC.cloud online service to generate unique CSS."

#: src/lang.cls.php:109
msgid "UCSS Whitelist Selector"
msgstr "UCSS Whitelist Selector"

#: src/lang.cls.php:108
msgid "Generate UCSS in Background"
msgstr "Generate UCSS in Background"

#: src/lang.cls.php:107
msgid "Generate UCSS"
msgstr "Generate UCSS"

#: tpl/toolbox/purge.tpl.php:109
msgid "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"
msgstr "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Press the %s button to use the most recent GitHub commit."
msgstr "Press the %s button to use the most recent GitHub commit."

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "LiteSpeed Report"

#: tpl/img_optm/summary.tpl.php:216
msgid "Image Thumbnail Group Sizes"
msgstr "Image Thumbnail Group Sizes"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignore certain query strings when caching. (LSWS %s required)"

#: tpl/page_optm/settings_js.tpl.php:89
msgid "%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred."
msgstr "%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred."

#: tpl/page_optm/settings_js.tpl.php:88
msgid "Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled."
msgstr "Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimisation features are enabled."

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "For URLs with wildcards, there may be a delay in initiating scheduled purge."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."

#: src/lang.cls.php:94
msgid "Serve Stale"
msgstr "Serve Stale"

#: src/admin-display.cls.php:900
msgid "This setting is overwritten by the primary site setting"
msgstr "This setting is overwritten by the primary site setting"

#: src/img-optm.cls.php:901
msgid "One or more pulled images does not match with the notified image md5"
msgstr "One or more pulled images does not match with the notified image md5"

#: src/img-optm.cls.php:884
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Some optimised image file(s) has expired and was cleared."

#: src/error.cls.php:60
msgid "You have too many notified images, please pull down notified images first."
msgstr "You have too many notified images, please pull down notified images first."

#: src/error.cls.php:56
msgid "You have too many requested images, please try again in a few minutes."
msgstr "You have too many requested images, please try again in a few minutes."

#: src/img-optm.cls.php:962
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "Pulled WebP image md5 does not match the notified WebP image md5."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Read LiteSpeed Documentation"

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "There is proceeding queue not pulled yet. Queue info: %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Sitemap Timeout"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Specify the timeout while parsing the sitemap."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Specify how long, in seconds, Gravatar files are cached."

#: tpl/page_optm/settings_html.tpl.php:21
msgid "Specify how long, in seconds, CSS/JS files are cached."
msgstr "Specify how long, in seconds, CSS/JS files are cached."

#: tpl/general/settings.tpl.php:113
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "A Domain Key is required for QUIC.cloud online services."

#: src/img-optm.cls.php:495
msgid "Cleared %1$s invalid images."
msgstr "Cleared %1$s invalid images."

#: src/img-optm.cls.php:457
msgid "Bypassed %1$s duplicated images."
msgstr "Bypassed %1$s duplicated images."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Request Domain Key"

#: tpl/general/entry.tpl.php:19
msgid "LiteSpeed Cache General Settings"
msgstr "LiteSpeed Cache General Settings"

#: tpl/toolbox/purge.tpl.php:100
msgid "This will delete all cached Gravatar files"
msgstr "This will delete all cached Gravatar files"

#: tpl/toolbox/edit_htaccess.tpl.php:107
msgid "Save .htaccess"
msgstr "Save .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:81
msgid "Specify the backend .htaccess path."
msgstr "Specify the backend .htaccess path."

#: tpl/toolbox/edit_htaccess.tpl.php:67 tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Leave empty to auto detect"
msgstr "Leave empty to auto detect"

#: tpl/toolbox/edit_htaccess.tpl.php:66
msgid "Specify the frontend .htaccess path."
msgstr "Specify the frontend .htaccess path."

#: tpl/toolbox/edit_htaccess.tpl.php:54
msgid ".htaccess Path Settings"
msgstr ".htaccess Path Settings"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Prevent any debug log of listed pages."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Only log listed pages."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Specify the maximum size of the log file."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "To prevent filling up the disk, this setting should be OFF when everything is working."

#: tpl/toolbox/beta_test.tpl.php:46
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."

#: tpl/toolbox/beta_test.tpl.php:35 tpl/toolbox/beta_test.tpl.php:46
msgid "Use latest WordPress release version"
msgstr "Use latest WordPress release version"

#: tpl/toolbox/beta_test.tpl.php:35
msgid "OR"
msgstr "OR"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Use latest GitHub commit"
msgstr "Use latest GitHub commit"

#: tpl/toolbox/beta_test.tpl.php:26
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Reset Settings"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "LiteSpeed Cache Toolbox"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Beta Test"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Log View"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Debug Settings"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Turn ON to control heartbeat in backend editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "WordPress valid interval is %s seconds"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Turn ON to control heartbeat on backend."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Set to %1$s to forbid heartbeat on %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "WordPress valid interval is %s seconds."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Specify the %s heartbeat interval in seconds."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Turn ON to control heartbeat on frontend."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Disable WordPress interval heartbeat to reduce server load."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Heartbeat Control"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "provide more information here to assist the LiteSpeed team with debugging."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Optional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generate Link for Current User"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Passwordless Link"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "System Information"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Go to plugins list"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Install DoLogin Security"

#: tpl/general/settings.tpl.php:150
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site."
msgstr "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site."

#: tpl/general/settings.tpl.php:148
msgid "Check my public IP from"
msgstr "Check my public IP from"

#: tpl/general/settings.tpl.php:148
msgid "Your server IP is"
msgstr "Your server IP is"

#: tpl/general/settings.tpl.php:147
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Specify the timeout while crawling each URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Specify time in seconds for the time between each run interval."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "This will enable crawler cron."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Crawler General Settings"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr "Not Blacklist"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr "Remove from Blacklist"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr "Empty blacklist"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr "Are you sure to delete all existing blacklist?"

#: tpl/crawler/map.tpl.php:69 tpl/crawler/blacklist.tpl.php:56
msgid "Blacklisted due to not cacheable"
msgstr "Blacklisted due to not cacheable"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr "Add to Blacklist"

#: tpl/crawler/map.tpl.php:45 tpl/crawler/blacklist.tpl.php:33
msgid "Operation"
msgstr "Operation"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Sitemap Total"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Sitemap List"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Refresh Crawler Map"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Clean Crawler Map"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Sitemap Settings"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Simulation Settings"

#: tpl/crawler/entry.tpl.php:8 tpl/crawler/blacklist.tpl.php:21
msgid "Blacklist"
msgstr "Blacklist"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Map"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Summary"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Crawler Sitemap Settings"

#: tpl/crawler/summary.tpl.php:186
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."

#: tpl/crawler/summary.tpl.php:185
msgid "Crawlers cannot run concurrently."
msgstr "Crawlers cannot run concurrently."

#: tpl/crawler/summary.tpl.php:179 tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Cache Miss"

#: tpl/crawler/summary.tpl.php:178 tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Cache Hit"

#: tpl/crawler/summary.tpl.php:177
msgid "Waiting to be Crawled"
msgstr "Waiting to be Crawled"

#: tpl/crawler/summary.tpl.php:159 tpl/crawler/summary.tpl.php:180
#: tpl/crawler/map.tpl.php:70 tpl/crawler/blacklist.tpl.php:57
msgid "Blacklisted"
msgstr "Blacklisted"

#: tpl/crawler/summary.tpl.php:158
msgid "Miss"
msgstr "Miss"

#: tpl/crawler/summary.tpl.php:157
msgid "Hit"
msgstr "Hit"

#: tpl/crawler/summary.tpl.php:156
msgid "Waiting"
msgstr "Waiting"

#: tpl/crawler/summary.tpl.php:125
msgid "Running"
msgstr "Running"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Use %1$s in %2$s to indicate this cookie has not been set."

#: src/admin-display.cls.php:215
msgid "Add new cookie to simulate"
msgstr "Add new cookie to simulate"

#: src/admin-display.cls.php:214
msgid "Remove cookie simulation"
msgstr "Remove cookie simulation"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Crawler Simulation Settings"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess rule is: %s"
msgstr "Htaccess rule is: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "More settings available under %s menu"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "The amount of time, in seconds, that files will be stored in browser cache before expiring."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "OpenLiteSpeed users please check this"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Browser Cache Settings"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "An optional second parameter may be used to specify cache control. Use a space to separate"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "The above nonces will be converted to ESI automatically."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Browser"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Object"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Default port for %1$s is %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Object Cache Settings"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Specify how long, in seconds, the front page is cached."

#: tpl/cache/settings-ttl.tpl.php:7 tpl/cache/entry.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."

#: tpl/page_optm/settings_css.tpl.php:275
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:274
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Avatar list in queue waiting for update"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refresh Gravatar cache by cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Accelerates the speed by caching Gravatar (Globally Recognised Avatars)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Store Gravatar locally."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."

#: tpl/page_optm/settings_media.tpl.php:137
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."

#: tpl/page_optm/settings_media.tpl.php:135
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:120
msgid "Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."

#: tpl/page_optm/settings_media.tpl.php:119
msgid "Specify the quality when generating LQIP."
msgstr "Specify the quality when generating LQIP."

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Keep this off to use plain color placeholders."
msgstr "Keep this off to use plain colour placeholders."

#: tpl/page_optm/settings_media.tpl.php:104
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Specify the responsive placeholder SVG color."
msgstr "Specify the responsive placeholder SVG colour."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "Variables %s will be replaced with the configured background color."
msgstr "Variables %s will be replaced with the configured background colour."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Variables %s will be replaced with the corresponding image properties."

#: tpl/page_optm/settings_media.tpl.php:74
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "It will be converted to a base64 SVG placeholder on-the-fly."

#: tpl/page_optm/settings_media.tpl.php:73
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Specify an SVG to be used as a placeholder when generating locally."

#: tpl/page_optm/settings_media_exc.tpl.php:107
msgid "Prevent any lazy load of listed pages."
msgstr "Prevent any lazy load of listed pages."

#: tpl/page_optm/settings_media_exc.tpl.php:93
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Iframes having these parent class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:78
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Iframes containing these class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:64
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Images having these parent class names will not be lazy loaded."

#: tpl/page_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Page Optimization"
msgstr "LiteSpeed Cache Page Optimisation"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Media Excludes"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:14
msgid "CSS Settings"
msgstr "CSS Settings"

#: tpl/page_optm/settings_css.tpl.php:275
msgid "%s is recommended."
msgstr "%s is recommended."

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_js.tpl.php:89
msgid "Deferred"
msgstr "Deferred"

#: tpl/page_optm/settings_js.tpl.php:86
msgid "After DOM Ready"
msgstr "After DOM Ready"

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_css.tpl.php:272
msgid "Default"
msgstr "Default"

#: tpl/page_optm/settings_html.tpl.php:66
msgid "This can improve the page loading speed."
msgstr "This can improve the page loading speed."

#: tpl/page_optm/settings_html.tpl.php:65
msgid "Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "New developer version %s is available now."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "New Developer Version Available!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Dismiss this notice"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweet this"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Tweet preview"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Learn More"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "You just unlocked a promotion from QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "The image compression quality setting of WordPress out of 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Image Optimisation Settings"

#: tpl/img_optm/summary.tpl.php:367
msgid "Are you sure to destroy all optimized images?"
msgstr "Are you sure to destroy all optimised images?"

#: tpl/img_optm/summary.tpl.php:359
msgid "Use Optimized Files"
msgstr "Use Optimised Files"

#: tpl/img_optm/summary.tpl.php:358
msgid "Switch back to using optimized images on your site"
msgstr "Switch back to using optimised images on your site"

#: tpl/img_optm/summary.tpl.php:355
msgid "Use Original Files"
msgstr "Use Original Files"

#: tpl/img_optm/summary.tpl.php:354
msgid "Use original images (unoptimized) on your site"
msgstr "Use original images (unoptimised) on your site"

#: tpl/img_optm/summary.tpl.php:349
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available."

#: tpl/img_optm/summary.tpl.php:346
msgid "Optimization Tools"
msgstr "Optimisation Tools"

#: tpl/img_optm/summary.tpl.php:319
msgid "Rescan New Thumbnails"
msgstr "Rescan New Thumbnails"

#: tpl/img_optm/summary.tpl.php:311
msgid "Congratulations, all requested!"
msgstr "Congratulations, all requested!"

#: tpl/img_optm/summary.tpl.php:284
msgid "Congratulations, all gathered!"
msgstr "Congratulations, all gathered!"

#: tpl/img_optm/summary.tpl.php:281
msgid "Images not yet gathered"
msgstr "Images not yet gathered"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "What is an image group?"
msgstr "What is an image group?"

#: tpl/img_optm/summary.tpl.php:227
msgid "Delete all backups of the original images"
msgstr "Delete all backups of the original images"

#: tpl/img_optm/summary.tpl.php:209
msgid "Calculate Backups Disk Space"
msgstr "Calculate Backups Disk Space"

#: tpl/img_optm/summary.tpl.php:94
msgid "Optimization Status"
msgstr "Optimisation Status"

#: tpl/img_optm/summary.tpl.php:78
msgid "Gather Image Data"
msgstr "Gather Image Data"

#: tpl/img_optm/summary.tpl.php:66
msgid "Current limit is"
msgstr "Current limit is"

#: tpl/img_optm/summary.tpl.php:65
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."

#: tpl/img_optm/summary.tpl.php:60
msgid "You can request a maximum of %s images at once."
msgstr "You can request a maximum of %s images at once."

#: tpl/img_optm/summary.tpl.php:55
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimise images with our QUIC.cloud server"

#: tpl/img_optm/summary.tpl.php:51 tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr ""
"Current closest Cloud server is %s.\n"
" Click to redetect."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Revisions newer than this many days will be kept when cleaning revisions."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Day(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Specify the number of most recent revisions to keep when cleaning revisions."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "LiteSpeed Cache Database Optimisation"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "DB Optimisation Settings"

#: tpl/db_optm/manage.tpl.php:174
msgid "Option Name"
msgstr "Option Name"

#: tpl/db_optm/manage.tpl.php:159
msgid "Database Summary"
msgstr "Database Summary"

#: tpl/db_optm/manage.tpl.php:138
msgid "We are good. No table uses MyISAM engine."
msgstr "We are good. No table uses MyISAM engine."

#: tpl/db_optm/manage.tpl.php:130
msgid "Convert to InnoDB"
msgstr "Convert to InnoDB"

#: tpl/db_optm/manage.tpl.php:116
msgid "Tool"
msgstr "Tool"

#: tpl/db_optm/manage.tpl.php:115
msgid "Engine"
msgstr "Engine"

#: tpl/db_optm/manage.tpl.php:114
msgid "Table"
msgstr "Table"

#: tpl/db_optm/manage.tpl.php:107
msgid "Database Table Engine Converter"
msgstr "Database Table Engine Converter"

#: tpl/db_optm/manage.tpl.php:57
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"

#: tpl/dash/dashboard.tpl.php:503
msgid "Manage Crawler"
msgstr "Manage Crawler"

#: tpl/dash/dashboard.tpl.php:471
msgid "Currently active crawler"
msgstr "Currently active crawler"

#: tpl/dash/dashboard.tpl.php:468
msgid "Crawler(s)"
msgstr "Crawler(s)"

#: tpl/dash/dashboard.tpl.php:464 tpl/crawler/map.tpl.php:44
msgid "Crawler Status"
msgstr "Crawler Status"

#: tpl/dash/dashboard.tpl.php:417 tpl/dash/dashboard.tpl.php:448
msgid "Force cron"
msgstr "Force cron"

#: tpl/dash/dashboard.tpl.php:415 tpl/dash/dashboard.tpl.php:446
msgid "Requests in queue"
msgstr "Requests in queue"

#: tpl/dash/dashboard.tpl.php:410 tpl/dash/dashboard.tpl.php:441
msgid "Time to execute previous request"
msgstr "Time to execute previous request"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Stats"
msgstr "Cache Stats"

#: tpl/dash/dashboard.tpl.php:360
msgid "Private Cache"
msgstr "Private Cache"

#: tpl/dash/dashboard.tpl.php:359
msgid "Public Cache"
msgstr "Public Cache"

#: tpl/dash/dashboard.tpl.php:354
msgid "Cache Status"
msgstr "Cache Status"

#: tpl/dash/dashboard.tpl.php:325
msgid "Last Pull"
msgstr "Last Pull"

#: tpl/dash/dashboard.tpl.php:290
msgid "Images Requested"
msgstr "Images Requested"

#: tpl/dash/dashboard.tpl.php:275
msgid "Image Groups Prepared"
msgstr "Image Groups Prepared"

#: tpl/dash/dashboard.tpl.php:265 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Image Optimisation Summary"

#: tpl/dash/dashboard.tpl.php:213
msgid "Refresh page score"
msgstr "Refresh page score"

#: tpl/dash/dashboard.tpl.php:202 tpl/img_optm/summary.tpl.php:51
#: tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Are you sure you want to redetect the closest cloud server for this service?"

#: tpl/dash/dashboard.tpl.php:202
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr ""
"Current closest Cloud server is %s.\n"
"Click to redetect."

#: tpl/dash/dashboard.tpl.php:197 tpl/dash/dashboard.tpl.php:257
#: tpl/dash/dashboard.tpl.php:425 tpl/dash/dashboard.tpl.php:456
msgid "Last requested"
msgstr "Last requested"

#: tpl/dash/dashboard.tpl.php:156
msgid "Refresh page load time"
msgstr "Refresh page load time"

#: tpl/dash/dashboard.tpl.php:144
msgid "Go to QUIC.cloud dashboard"
msgstr "Go to QUIC.cloud dashboard"

#: tpl/dash/dashboard.tpl.php:55 tpl/dash/dashboard.tpl.php:433
msgid "Low Quality Image Placeholder"
msgstr "Low Quality Image Placeholder"

#: tpl/dash/dashboard.tpl.php:42
msgid "Sync data from Cloud"
msgstr "Sync data from Cloud"

#: tpl/dash/dashboard.tpl.php:39
msgid "QUIC.cloud Service Usage Statistics"
msgstr "QUIC.cloud Service Usage Statistics"

#: tpl/dash/network_dash.tpl.php:101 tpl/dash/dashboard.tpl.php:133
msgid "Total images optimized in this month"
msgstr "Total images optimised in this month"

#: tpl/dash/network_dash.tpl.php:100 tpl/dash/dashboard.tpl.php:132
msgid "Total Usage"
msgstr "Total Usage"

#: tpl/dash/network_dash.tpl.php:93 tpl/dash/dashboard.tpl.php:125
msgid "Pay as You Go Usage Statistics"
msgstr "Pay as You Go Usage Statistics"

#: tpl/dash/network_dash.tpl.php:91 tpl/dash/dashboard.tpl.php:123
msgid "This Month Usage"
msgstr "This Month Usage"

#: tpl/dash/network_dash.tpl.php:90 tpl/dash/dashboard.tpl.php:122
msgid "PAYG Balance"
msgstr "PAYG Balance"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pay as You Go"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Usage"
msgstr "Usage"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Fast Queue Usage"
msgstr "Fast Queue Usage"

#: tpl/dash/network_dash.tpl.php:29 tpl/dash/dashboard.tpl.php:54
msgid "CDN Bandwidth"
msgstr "CDN Bandwidth"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Usage Statistics"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "LiteSpeed Cache Dashboard"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Network Dashboard"

#: tpl/general/settings.tpl.php:129
msgid "No cloud services currently in use"
msgstr "No cloud services currently in use"

#: tpl/general/settings.tpl.php:117
msgid "Click to clear all nodes for further redetection."
msgstr "Click to clear all nodes for further redetection."

#: tpl/general/settings.tpl.php:116
msgid "Current Cloud Nodes in Service"
msgstr "Current Cloud Nodes in Service"

#: tpl/general/settings.tpl.php:108
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Benefits of linking to a QUIC.cloud account"

#: tpl/general/settings.tpl.php:107
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "You must click the %s button if you wish to associate this site with a QUIC.cloud account."

#: tpl/general/settings.tpl.php:102
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "You must have %1$s first before linking to QUIC.cloud."

#: tpl/general/settings.tpl.php:88
msgid "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."
msgstr "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."

#: tpl/general/settings.tpl.php:87
msgid "Our %s was not whitelisted."
msgstr "Our %s was not whitelisted."

#: tpl/general/settings.tpl.php:86
msgid "The POST callback to %s failed."
msgstr "The POST callback to %s failed."

#: tpl/general/settings.tpl.php:85
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "There are two reasons why we might not be able to communicate with your domain:"

#: tpl/general/settings.tpl.php:84
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "There was a problem with retrieving your Domain Key. Please click the %s button to retry."

#: tpl/general/settings.tpl.php:76 tpl/general/settings.tpl.php:78
#: tpl/general/settings.tpl.php:107
msgid "Link to QUIC.cloud"
msgstr "Link to QUIC.cloud"

#: tpl/general/settings.tpl.php:74
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visit My Dashboard on QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Next available request time: <code>After %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Approved"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Requested"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Waiting for Approval"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Waiting for Refresh"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Refresh Domain Key"

#: tpl/general/entry.tpl.php:6 tpl/general/entry.tpl.php:11
#: tpl/general/network_settings.tpl.php:8 tpl/general/settings.tpl.php:43
#: tpl/crawler/entry.tpl.php:9
msgid "General Settings"
msgstr "General Settings"

#: tpl/cdn/settings.tpl.php:120
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Specify which HTML element attributes will be replaced with CDN Mapping."

#: src/admin-display.cls.php:237
msgid "Add new CDN URL"
msgstr "Add new CDN URL"

#: src/admin-display.cls.php:236
msgid "Remove CDN URL"
msgstr "Remove CDN URL"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Enable %s CDN API functionality."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "To enable the following functionality, turn ON Cloudflare API in CDN Settings."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "To manage QUIC.cloud options, please visit"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:14
msgid "WooCommerce Settings"
msgstr "WooCommerce Settings"

#: src/doc.cls.php:106 tpl/general/settings.tpl.php:87
msgid "Current Online Server IPs"
msgstr "Current Online Server IPs"

#: src/doc.cls.php:105
msgid "Before generating key, please verify all IPs on this list are whitelisted"
msgstr "Before generating key, please verify all IPs on this list are whitelisted"

#: src/doc.cls.php:104
msgid "For online services to work correctly, you must whitelist all online server IPs."
msgstr "For online services to work correctly, you must whitelist all online server IPs."

#: src/gui.cls.php:528 src/gui.cls.php:679 tpl/toolbox/purge.tpl.php:90
msgid "LQIP Cache"
msgstr "LQIP Cache"

#: src/gui.cls.php:85
msgid "Private Cache Hits"
msgstr "Private Cache Hits"

#: src/gui.cls.php:84
msgid "Private Caches"
msgstr "Private Caches"

#: src/gui.cls.php:83
msgid "Public Cache Hits"
msgstr "Public Cache Hits"

#: src/gui.cls.php:82
msgid "Public Caches"
msgstr "Public Caches"

#: src/admin-settings.cls.php:259 src/admin-settings.cls.php:294
msgid "Options saved."
msgstr "Options saved."

#: src/img-optm.cls.php:1422
msgid "Removed backups successfully."
msgstr "Removed backups successfully."

#: src/img-optm.cls.php:1360
msgid "Calculated backups successfully."
msgstr "Calculated backups successfully."

#: src/img-optm.cls.php:1301
msgid "Rescaned %d images successfully."
msgstr "Rescaned %d images successfully."

#: src/img-optm.cls.php:1215 src/img-optm.cls.php:1288
msgid "Rescaned successfully."
msgstr "Rescaned successfully."

#: src/img-optm.cls.php:1180
msgid "Destroy all optimization data successfully."
msgstr "Destroy all optimisation data successfully."

#: src/img-optm.cls.php:1109
msgid "Cleaned up unfinished data successfully."
msgstr "Cleaned up unfinished data successfully."

#: src/img-optm.cls.php:1022
msgid "Pulled %d image(s)"
msgstr "Pulled %d image(s)"

#: src/img-optm.cls.php:945
msgid "Optimized WebP file expired and was cleared."
msgstr "Optimised WebP file expired and was cleared."

#: src/img-optm.cls.php:828
msgid "Pull Cron is running"
msgstr "Pull Cron is running"

#: src/img-optm.cls.php:597
msgid "No valid image found by Cloud server in the current request."
msgstr "No valid image found by Cloud server in the current request."

#: src/img-optm.cls.php:574
msgid "No valid image found in the current request."
msgstr "No valid image found in the current request."

#: src/img-optm.cls.php:420
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "Pushed %1$s to Cloud server, accepted %2$s."

#: src/img-optm.cls.php:143
msgid "Gathered %d images successfully."
msgstr "Gathered %d images successfully."

#: src/img-optm.cls.php:109
msgid "No new image gathered."
msgstr "No new image gathered."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Revisions Max Age"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Revisions Max Number"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "Debug URI Excludes"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "Debug URI Includes"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Drop Domain from Sitemap"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "HTML Attribute To Replace"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Use CDN Mapping"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "QUIC.cloud CDN"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "Editor Heartbeat TTL"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Editor Heartbeat"

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr "Backend Heartbeat TTL"

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr "Backend Heartbeat Control"

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr "Frontend Heartbeat TTL"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr "Frontend Heartbeat Control"

#: src/lang.cls.php:189
msgid "Backend .htaccess Path"
msgstr "Backend .htaccess Path"

#: src/lang.cls.php:188
msgid "Frontend .htaccess Path"
msgstr "Frontend .htaccess Path"

#: src/lang.cls.php:178
msgid "ESI Nonces"
msgstr "ESI Nonces"

#: src/lang.cls.php:174
msgid "WordPress Image Quality Control"
msgstr "WordPress Image Quality Control"

#: src/lang.cls.php:169
msgid "Create WebP Versions"
msgstr "Create WebP Versions"

#: src/lang.cls.php:166
msgid "Auto Pull Cron"
msgstr "Auto Pull Cron"

#: src/lang.cls.php:165
msgid "Auto Request Cron"
msgstr "Auto Request Cron"

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr "Generate LQIP In Background"

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr "LQIP Minimum Dimensions"

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr "LQIP Quality"

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr "LQIP Cloud Generator"

#: src/lang.cls.php:157
msgid "Responsive Placeholder SVG"
msgstr "Responsive Placeholder SVG"

#: src/lang.cls.php:156
msgid "Responsive Placeholder Color"
msgstr "Responsive Placeholder Colour"

#: src/lang.cls.php:154
msgid "Basic Image Placeholder"
msgstr "Basic Image Placeholder"

#: src/lang.cls.php:152
msgid "Lazy Load URI Excludes"
msgstr "Lazy Load URI Excludes"

#: src/lang.cls.php:151
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Lazy Load Iframe Parent Class Name Excludes"

#: src/lang.cls.php:150
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Lazy Load Iframe Class Name Excludes"

#: src/lang.cls.php:149
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Lazy Load Image Parent Class Name Excludes"

#: src/lang.cls.php:144
msgid "Gravatar Cache TTL"
msgstr "Gravatar Cache TTL"

#: src/lang.cls.php:143
msgid "Gravatar Cache Cron"
msgstr "Gravatar Cache Cron"

#: src/lang.cls.php:142 src/gui.cls.php:538 src/gui.cls.php:689
#: tpl/toolbox/purge.tpl.php:99
msgid "Gravatar Cache"
msgstr "Gravatar Cache"

#: src/lang.cls.php:129
msgid "DNS Prefetch Control"
msgstr "DNS Prefetch Control"

#: src/lang.cls.php:125
msgid "Load Inline JS"
msgstr "Load Inline JS"

#: src/lang.cls.php:123
msgid "Font Display Optimization"
msgstr "Font Display Optimisation"

#: src/lang.cls.php:98
msgid "Force Public Cache URIs"
msgstr "Force Public Cache URIs"

#: src/lang.cls.php:67
msgid "Notifications"
msgstr "Notifications"

#: src/lang.cls.php:64
msgid "Default HTTP Status Code Page TTL"
msgstr "Default HTTP Status Code Page TTL"

#: src/lang.cls.php:63
msgid "Default REST TTL"
msgstr "Default REST TTL"

#: src/lang.cls.php:57
msgid "Enable Cache"
msgstr "Enable Cache"

#: src/lang.cls.php:55
msgid "Domain Key"
msgstr "Domain Key"

#: src/lang.cls.php:54
msgid "Server IP"
msgstr "Server IP"

#: src/lang.cls.php:34
msgid "Duplicate image files ignored"
msgstr "Duplicate image files ignored"

#: src/lang.cls.php:24
msgid "Images not requested"
msgstr "Images not requested"

#: src/cloud.cls.php:1049
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Sync credit allowance with Cloud Server successfully."

#: src/cloud.cls.php:964
msgid "Domain Key hash mismatch"
msgstr "Domain Key hash mismatch"

#: src/cloud.cls.php:893
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."

#: src/cloud.cls.php:842
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."

#: src/cloud.cls.php:646 src/cloud.cls.php:823
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Failed to communicate with QUIC.cloud server"

#: src/cloud.cls.php:595
msgid "Good news from QUIC.cloud server"
msgstr "Good news from QUIC.cloud server"

#: src/cloud.cls.php:579 src/cloud.cls.php:587 src/cloud.cls.php:834
msgid "Message from QUIC.cloud server"
msgstr "Message from QUIC.cloud server"

#: src/cloud.cls.php:465
msgid "Please try after %1$s for service %2$s."
msgstr "Please try after %1$s for service %2$s."

#: src/cloud.cls.php:356
msgid "No available Cloud Node."
msgstr "No available Cloud Node."

#: src/cloud.cls.php:308 src/cloud.cls.php:325 src/cloud.cls.php:356
#: src/cloud.cls.php:465 src/cloud.cls.php:798
msgid "Cloud Error"
msgstr "Cloud Error"

#: src/data.cls.php:197
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."

#: src/media.cls.php:360
msgid "Restore from backup"
msgstr "Restore from backup"

#: src/media.cls.php:350
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:344
msgid "No backup of unoptimized WebP file exists."
msgstr "No backup of unoptimised WebP file exists."

#: src/media.cls.php:331
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "WebP file reduced by %1$s (%2$s)"

#: src/media.cls.php:327
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Currently using original (unoptimised) version of WebP file."

#: src/media.cls.php:322
msgid "Currently using optimized version of WebP file."
msgstr "Currently using optimised version of WebP file."

#: src/media.cls.php:306
msgid "Orig"
msgstr "Orig"

#: src/media.cls.php:303
msgid "(no savings)"
msgstr "(no savings)"

#: src/media.cls.php:303
msgid "Orig %s"
msgstr "Orig %s"

#: src/media.cls.php:300
msgid "Congratulation! Your file was already optmized"
msgstr "Congratulation! Your file was already optmised"

#: src/media.cls.php:291
msgid "No backup of original file exists."
msgstr "No backup of original file exists."

#: src/media.cls.php:291 src/media.cls.php:344
msgid "Using optimized version of file. "
msgstr "Using optimised version of file. "

#: src/media.cls.php:283
msgid "Orig saved %s"
msgstr "Orig saved %s"

#: src/media.cls.php:277
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Original file reduced by %1$s (%2$s)"

#: src/media.cls.php:273 src/media.cls.php:327
msgid "Click to switch to optimized version."
msgstr "Click to switch to optimised version."

#: src/media.cls.php:273
msgid "Currently using original (unoptimized) version of file."
msgstr "Currently using original (unoptimised) version of file."

#: src/media.cls.php:272 src/media.cls.php:326
msgid "(non-optm)"
msgstr "(non-optm)"

#: src/media.cls.php:268 src/media.cls.php:322
msgid "Click to switch to original (unoptimized) version."
msgstr "Click to switch to original (unoptimised) version."

#: src/media.cls.php:268
msgid "Currently using optimized version of file."
msgstr "Currently using optimised version of file."

#: src/media.cls.php:267 src/media.cls.php:292 src/media.cls.php:321
#: src/media.cls.php:345
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:141
msgid "LQIP image preview for size %s"
msgstr "LQIP image preview for size %s"

#: src/placeholder.cls.php:83 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:909
msgid "Previously existed in blacklist"
msgstr "Previously existed in blacklist"

#: src/crawler.cls.php:906
msgid "Manually added to blacklist"
msgstr "Manually added to blacklist"

#: src/htaccess.cls.php:355
msgid "Mobile Agent Rules"
msgstr "Mobile Agent Rules"

#: src/crawler-map.cls.php:323
msgid "Sitemap created successfully: %d items"
msgstr "Sitemap created successfully: %d items"

#: src/crawler-map.cls.php:267
msgid "Sitemap cleaned successfully"
msgstr "Sitemap cleaned successfully"

#: src/admin-display.cls.php:1065
msgid "Invalid IP"
msgstr "Invalid IP"

#: src/admin-display.cls.php:1040
msgid "Value range"
msgstr "Value range"

#: src/admin-display.cls.php:1037
msgid "Smaller than"
msgstr "Smaller than"

#: src/admin-display.cls.php:1034
msgid "Larger than"
msgstr "Larger than"

#: src/admin-display.cls.php:1027
msgid "Zero, or"
msgstr "Zero, or"

#: src/admin-display.cls.php:1015
msgid "Maximum value"
msgstr "Maximum Value"

#: src/admin-display.cls.php:1012
msgid "Minimum value"
msgstr "Minimum Value"

#: src/admin-display.cls.php:994
msgid "Path must end with %s"
msgstr "Path must end with %s"

#: src/admin-display.cls.php:977
msgid "Invalid rewrite rule"
msgstr "Invalid rewrite rule"

#: src/admin-display.cls.php:948 src/admin-display.cls.php:953
msgid "Recommended value"
msgstr "Recommended value"

#: src/admin-display.cls.php:907
msgid "currently set to %s"
msgstr "currently set to %s"

#: src/admin-display.cls.php:897
msgid "This setting is overwritten by the PHP constant %s"
msgstr "This setting is overwritten by the PHP constant %s"

#: src/admin-display.cls.php:137
msgid "Toolbox"
msgstr "Toolbox"

#: src/admin-display.cls.php:133 tpl/page_optm/entry.tpl.php:45
msgid "Database"
msgstr "Database"

#: src/admin-display.cls.php:131
msgid "Page Optimization"
msgstr "Page Optimisation"

#: src/admin-display.cls.php:121 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Dashboard"

#: src/db-optm.cls.php:256
msgid "Converted to InnoDB successfully."
msgstr "Converted to InnoDB successfully."

#: src/purge.cls.php:263
msgid "Cleaned all Gravatar files."
msgstr "Cleaned all Gravatar files."

#: src/purge.cls.php:246
msgid "Cleaned all LQIP files."
msgstr "Cleaned all LQIP files."

#: src/utility.cls.php:875
msgid "&raquo;"
msgstr "&raquo;"

#: src/utility.cls.php:874
msgid "&laquo;"
msgstr "&laquo;"

#: src/error.cls.php:161
msgid "Unknown error"
msgstr "Unknown error"

#: src/error.cls.php:157
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "Your domain has been forbidden from using our services due to a previous policy violation."

#: src/error.cls.php:153
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "

#: src/error.cls.php:149
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."

#: src/error.cls.php:145
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "The callback validation to your domain failed due to hash mismatch."

#: src/error.cls.php:141
msgid "Your application is waiting for approval."
msgstr "Your application is waiting for approval."

#: src/error.cls.php:137
msgid "Previous request too recent. Please try again after %s."
msgstr "Previous request too recent. Please try again after %s."

#: src/error.cls.php:133
msgid "Previous request too recent. Please try again later."
msgstr "Previous request too recent. Please try again later."

#: src/error.cls.php:128
msgid "Crawler disabled by the server admin."
msgstr "Crawler disabled by the server admin."

#: src/error.cls.php:124
msgid "Failed to create table %s! SQL: %s."
msgstr "Failed to create table %s! SQL: %s."

#: src/error.cls.php:100
msgid "Could not find %1$s in %2$s."
msgstr "Could not find %1$s in %2$s."

#: src/error.cls.php:88
msgid "Credits are not enough to proceed the current request."
msgstr "Credits are not enough to proceed the current request."

#: src/error.cls.php:84
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "The domain key is not correct. Please try to sync your domain key again."

#: src/error.cls.php:72
msgid "There is proceeding queue not pulled yet."
msgstr "There is proceeding queue not pulled yet."

#: src/error.cls.php:68
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "Not enough parameters. Please check if the domain key is set correctly"

#: src/error.cls.php:64
msgid "The image list is empty."
msgstr "The image list is empty."

#: src/error.cls.php:52
msgid "You don't have enough quota for current service left this month."
msgstr "You don't have enough quota for current service left this month."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "You will need to set %s to use the online services."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "The setting %s is currently enabled."

#: src/task.cls.php:138
msgid "LiteSpeed Crawler Cron"
msgstr "LiteSpeed Crawler Cron"

#: src/task.cls.php:119
msgid "Every Minute"
msgstr "Every Minute"

#: tpl/general/settings.tpl.php:166
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Generated links may be managed under <a %s>Settings</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Please do NOT share the above passwordless link with anyone."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Install"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."

#: tpl/dash/dashboard.tpl.php:210 tpl/banner/score.php:68
msgid "PageSpeed Score"
msgstr "PageSpeed Score"

#: tpl/dash/dashboard.tpl.php:183 tpl/dash/dashboard.tpl.php:241
#: tpl/banner/score.php:55 tpl/banner/score.php:94
msgid "Improved by"
msgstr "Improved by"

#: tpl/dash/dashboard.tpl.php:175 tpl/dash/dashboard.tpl.php:233
#: tpl/banner/score.php:45 tpl/banner/score.php:84
msgid "After"
msgstr "After"

#: tpl/dash/dashboard.tpl.php:166 tpl/dash/dashboard.tpl.php:225
#: tpl/banner/score.php:34 tpl/banner/score.php:74
msgid "Before"
msgstr "Before"

#: tpl/dash/dashboard.tpl.php:153 tpl/banner/score.php:28
msgid "Page Load Time"
msgstr "Page Load Time"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."

#: src/lang.cls.php:171
msgid "Preserve EXIF/XMP data"
msgstr "Preserve EXIF/XMP data"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Only enable for AMP or mobile-specific design/content, not for responsive sites."
msgstr "Only enable for AMP or mobile-specific design/content, not for responsive sites."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Cache mobile views separately."
msgstr "Cache mobile views separately."

#: tpl/toolbox/beta_test.tpl.php:22
msgid "Try GitHub Version"
msgstr "Try GitHub Version"

#: tpl/cdn/settings.tpl.php:96
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "If you turn any of the above settings OFF, please remove the related file types from the %s box."

#: src/doc.cls.php:76
msgid "Both full and partial strings can be used."
msgstr "Both full and partial strings can be used."

#: tpl/page_optm/settings_media_exc.tpl.php:49
msgid "Images containing these class names will not be lazy loaded."
msgstr "Images containing these class names will not be lazy loaded."

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Lazy Load Image Class Name Excludes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "For example, %1$s defines a TTL of %2$s seconds for %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Maybe later"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Turn On Auto Upgrade"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:48
msgid "Upgrade"
msgstr "Upgrade"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "New release %s is available now."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "New Version Available!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Created with ❤️  by LiteSpeed team."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Sure I'd love to review!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Thank You for Using the LiteSpeed Cache Plugin!"

#: src/activation.cls.php:417
msgid "Upgraded successfully."
msgstr "Upgraded successfully."

#: src/activation.cls.php:408 src/activation.cls.php:413
msgid "Failed to upgrade."
msgstr "Failed to upgrade."

#: src/conf.cls.php:782
msgid "Changed setting successfully."
msgstr "Changed setting successfully."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "ESI sample for developers"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Replace %1$s with %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "You can turn shortcodes into ESI blocks."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Private Cache vs. Public Cache"

#: tpl/page_optm/settings_html.tpl.php:87
msgid "Append query string %s to the resources to bypass this action."
msgstr "Append query string %s to the resources to bypass this action."

#: tpl/page_optm/settings_html.tpl.php:83
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA will be bypassed automatically."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."
msgstr "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Cookie Values"

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr "Cookie Name"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Cookie Simulation"

#: tpl/toolbox/edit_htaccess.tpl.php:44
msgid "This page is meant for advanced users."
msgstr "This page is meant for advanced users."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."

#: src/lang.cls.php:66
msgid "Automatically Upgrade"
msgstr "Automatically Upgrade"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Your IP"

#: src/import.cls.php:146
msgid "Reset successfully."
msgstr "Reset successfully."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "This will reset all settings to default settings."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Reset All Settings"

#: tpl/page_optm/settings_css.tpl.php:247
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separate critical CSS files will be generated for paths containing these strings."

#: src/lang.cls.php:121
msgid "Separate CCSS Cache URIs"
msgstr "Separate CCSS Cache URIs"

#: tpl/page_optm/settings_css.tpl.php:233
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."

#: tpl/page_optm/settings_css.tpl.php:232
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "List post types where each item of that type should have its own CCSS generated."

#: src/lang.cls.php:120
msgid "Separate CCSS Cache Post Types"
msgstr "Separate CCSS Cache Post Types"

#: tpl/page_optm/settings_media.tpl.php:178
msgid "Size list in queue waiting for cron"
msgstr "Size list in queue waiting for cron"

#: tpl/page_optm/settings_media.tpl.php:155
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "If set to %1$s, before the placeholder is localised, the %2$s configuration will be used."

#: tpl/page_optm/settings_media.tpl.php:153
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Automatically generate LQIP in the background via a cron-based queue."

#: tpl/page_optm/settings_media.tpl.php:60
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."

#: tpl/page_optm/settings_media.tpl.php:59
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Responsive Placeholder"

#: tpl/toolbox/purge.tpl.php:91
msgid "This will delete all generated image LQIP placeholder files"
msgstr "This will delete all generated image LQIP placeholder files"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Please enable LiteSpeed Cache in the plugin settings."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Please enable the LSCache Module at the server level, or ask your hosting provider."

#: src/cloud.cls.php:548 src/cloud.cls.php:560
msgid "Failed to request via WordPress"
msgstr "Failed to request via WordPress"

#: tpl/page_optm/settings_media.tpl.php:216
msgid "Include the lazy load image JavaScript library inline."
msgstr "Include the lazy load image JavaScript library inline."

#: src/lang.cls.php:164
msgid "Inline Lazy Load Images Library"
msgstr "Inline Lazy Load Images Library"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "High-performance page caching and site optimisation from LiteSpeed"

#: src/img-optm.cls.php:1740
msgid "Reset the optimized data successfully."
msgstr "Reset the optimised data successfully."

#: src/gui.cls.php:755
msgid "Update %s now"
msgstr "Update %s now"

#: src/gui.cls.php:750
msgid "View %1$s version %2$s details"
msgstr "View %1$s version %2$s details"

#: src/gui.cls.php:747
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."

#: src/gui.cls.php:727
msgid "Install %s"
msgstr "Install %s"

#: src/lang.cls.php:31
msgid "Images previously optimized"
msgstr "Images previously optimised"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "LSCache caching functions on this page are currently unavailable!"

#: src/cloud.cls.php:604
msgid "%1$s plugin version %2$s required for this action."
msgstr "%1$s plugin version %2$s required for this action."

#: src/cloud.cls.php:570
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Automatically remove the original image backups after fetching optimised images."

#: src/lang.cls.php:168
msgid "Remove Original Backups"
msgstr "Remove Original Backups"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Automatically request optimisation via cron job."

#: tpl/img_optm/summary.tpl.php:180
msgid "A backup of each image is saved before it is optimized."
msgstr "A backup of each image is saved before it is optimised."

#: src/img-optm.cls.php:1619
msgid "Switched images successfully."
msgstr "Switched images successfully."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "This can improve quality but may result in larger images than lossy compression will."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimise images using lossless compression."

#: src/lang.cls.php:170
msgid "Optimize Losslessly"
msgstr "Optimise Losslessly"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Request WebP versions of original images when doing optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimise images and save backups of the originals in the same folder."

#: src/lang.cls.php:167
msgid "Optimize Original Images"
msgstr "Optimise Original Images"

#: tpl/page_optm/settings_css.tpl.php:167
msgid "This option only works if %1$s is %2$s."
msgstr "This option only works if %1$s is %2$s."

#: tpl/page_optm/settings_css.tpl.php:166
msgid "Leave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated."
msgstr "Leave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated."

#: src/lang.cls.php:118
msgid "Generate Critical CSS"
msgstr "Generate Critical CSS"

#: tpl/page_optm/settings_css.tpl.php:149
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "When this option is turned %s, it will also load Google Fonts asynchronously."

#: src/purge.cls.php:229
msgid "Cleaned all Critical CSS files."
msgstr "Cleaned all critical CSS files."

#: tpl/page_optm/settings_css.tpl.php:261
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "This will inline the asynchronous CSS library to avoid render blocking."

#: src/lang.cls.php:122
msgid "Inline CSS Async Lib"
msgstr "Inline CSS Async Lib"

#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_css.tpl.php:216
msgid "Run Queue Manually"
msgstr "Run Queue Manually"

#: tpl/page_optm/settings_css.tpl.php:203
msgid "URL list in queue waiting for cron"
msgstr "URL list in queue waiting for cron"

#: tpl/page_optm/settings_css.tpl.php:93 tpl/page_optm/settings_css.tpl.php:192
msgid "Last requested cost"
msgstr "Last requested cost"

#: tpl/dash/dashboard.tpl.php:407 tpl/dash/dashboard.tpl.php:438
#: tpl/page_optm/settings_media.tpl.php:167
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:189
msgid "Last generated"
msgstr "Last generated"

#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:181
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "If set to %s this is done in the foreground, which may slow down page load."

#: tpl/page_optm/settings_css.tpl.php:180
msgid "Automatically generate critical CSS in the background via a cron-based queue."
msgstr "Automatically generate critical CSS in the background via a cron-based queue."

#: src/lang.cls.php:119
msgid "Generate Critical CSS In Background"
msgstr "Generate Critical CSS In Background"

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Optimize CSS delivery."
msgstr "Optimise CSS delivery."

#: tpl/toolbox/purge.tpl.php:73
msgid "This will delete all generated critical CSS files"
msgstr "This will delete all generated critical CSS files"

#: src/gui.cls.php:508 src/gui.cls.php:659 tpl/dash/dashboard.tpl.php:53
#: tpl/dash/dashboard.tpl.php:402 tpl/toolbox/purge.tpl.php:72
msgid "Critical CSS"
msgstr "Critical CSS"

#: src/doc.cls.php:24
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."
msgstr "This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Disabling this may cause WordPress tasks triggered by AJAX to stop working."

#: src/utility.cls.php:250
msgid "right now"
msgstr "right now"

#: src/utility.cls.php:250
msgid "just now"
msgstr "just now"

#: tpl/img_optm/summary.tpl.php:245
msgid "Saved"
msgstr "Saved"

#: tpl/img_optm/summary.tpl.php:239
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Last ran"

#: tpl/img_optm/summary.tpl.php:231 tpl/img_optm/settings.tpl.php:67
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "You will be unable to Revert Optimisation once the backups are deleted!"

#: tpl/img_optm/summary.tpl.php:230 tpl/img_optm/settings.tpl.php:66
msgid "This is irreversible."
msgstr "This is irreversible."

#: tpl/img_optm/summary.tpl.php:250
msgid "Remove Original Image Backups"
msgstr "Remove Original Image Backups"

#: tpl/img_optm/summary.tpl.php:249
msgid "Are you sure you want to remove all image backups?"
msgstr "Are you sure you want to remove all image backups?"

#: tpl/img_optm/summary.tpl.php:194 tpl/crawler/blacklist.tpl.php:25
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:191 tpl/img_optm/summary.tpl.php:242
msgid "Files"
msgstr "Files"

#: tpl/img_optm/summary.tpl.php:187
msgid "Last calculated"
msgstr "Last calculated"

#: tpl/img_optm/summary.tpl.php:202
msgid "Calculate Original Image Storage"
msgstr "Calculate Original Image Storage"

#: tpl/img_optm/summary.tpl.php:176
msgid "Storage Optimization"
msgstr "Storage Optimisation"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."

#: src/lang.cls.php:173
msgid "WebP For Extra srcset"
msgstr "WebP For Extra srcset"

#: tpl/cdn/settings.tpl.php:122 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Use the format %1$s or %2$s (element is optional)."

#: tpl/cdn/settings.tpl.php:121 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Only attributes listed here will be replaced."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Specify which element attributes will be replaced with WebP."

#: src/lang.cls.php:172
msgid "WebP Attribute To Replace"
msgstr "WebP Attribute To Replace"

#: tpl/cdn/settings.tpl.php:159
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Only files within these directories will be pointed to the CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Included Directories"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "A Purge All will be executed when WordPress runs these hooks."

#: src/lang.cls.php:180
msgid "Purge All Hooks"
msgstr "Purge All Hooks"

#: src/purge.cls.php:193
msgid "Purged all caches successfully."
msgstr "Purged all caches successfully."

#: src/gui.cls.php:471 src/gui.cls.php:562 src/gui.cls.php:612
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:415
msgid "Forced cacheable"
msgstr "Forced cacheable"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be cached regardless of no-cacheable settings."

#: src/lang.cls.php:97
msgid "Force Cache URIs"
msgstr "Force Cache URIs"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Exclude Settings"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "This will disable LSCache and all optimisation features for debug purpose."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Disable All Features"

#: src/gui.cls.php:498 src/gui.cls.php:649 tpl/toolbox/purge.tpl.php:63
msgid "Opcode Cache"
msgstr "Opcode Cache"

#: src/gui.cls.php:479 src/gui.cls.php:620 tpl/toolbox/purge.tpl.php:45
msgid "CSS/JS Cache"
msgstr "CSS/JS Cache"

#: src/gui.cls.php:708 tpl/img_optm/summary.tpl.php:169
msgid "Remove all previous unfinished image optimization requests."
msgstr "Remove all previous unfinished image optimisation requests."

#: src/gui.cls.php:709 tpl/img_optm/summary.tpl.php:171
msgid "Clean Up Unfinished Data"
msgstr "Clean Up Unfinished Data"

#: src/lang.cls.php:32
msgid "Images failed with other errors"
msgstr "Images failed with other errors"

#: src/lang.cls.php:35
msgid "Images with wrong meta"
msgstr "Images with wrong meta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Join Us on Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Join the %s community."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Want to connect with other LiteSpeed users?"

#: tpl/cdn/settings.tpl.php:206
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Get it from <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:205
msgid "Your API key is used to access %s APIs."
msgstr "Your API key is used to access %s APIs."

#: tpl/cdn/settings.tpl.php:196
msgid "Your Email address on %s."
msgstr "Your Email address on %s."

#: tpl/cdn/settings.tpl.php:187
msgid "Use %s API functionality."
msgstr "Use %s API functionality."

#: tpl/cdn/settings.tpl.php:73
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "To randomise CDN hostname, define multiple hostnames for the same resources."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Join LiteSpeed Slack community"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visit LSCWP support forum"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Rate %s on %s"

#: src/lang.cls.php:26 tpl/dash/dashboard.tpl.php:312
msgid "Images notified to pull"
msgstr "Images notified to pull"

#: src/lang.cls.php:33
msgid "Image files missing"
msgstr "Image files missing"

#: tpl/img_optm/summary.tpl.php:274 tpl/img_optm/summary.tpl.php:301
msgid "What is a group?"
msgstr "What is a group?"

#: src/admin-display.cls.php:1133
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1130
msgid "%s group"
msgstr "%s group"

#: src/admin-display.cls.php:1120
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1117
msgid "%s groups"
msgstr "%s groups"

#: src/crawler.cls.php:767
msgid "Guest"
msgstr "Guest"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "To crawl the site as a logged-in user, enter the user ids to be simulated."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Role Simulation"

#: tpl/crawler/summary.tpl.php:166
msgid "running"
msgstr "running"

#: tpl/db_optm/manage.tpl.php:175
msgid "Size"
msgstr "Size"

#: tpl/dash/dashboard.tpl.php:490 tpl/crawler/summary.tpl.php:99
msgid "Ended reason"
msgstr "Ended reason"

#: tpl/dash/dashboard.tpl.php:483 tpl/crawler/summary.tpl.php:92
msgid "Last interval"
msgstr "Last interval"

#: tpl/dash/dashboard.tpl.php:476 tpl/crawler/summary.tpl.php:85
msgid "Current crawler started at"
msgstr "Current crawler started at"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Run time for previous crawler"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d seconds"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Last complete run time for all crawlers"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Current sitemap crawl started at"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Save transients in database when %1$s is %2$s."

#: src/lang.cls.php:91
msgid "Store Transients"
msgstr "Store Transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "If %1$s is %2$s, then %3$s must be populated!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Server allowed max value"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Server enforced value"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Server allowed min value"

#: tpl/cdn/settings.tpl.php:72 tpl/cache/settings-excludes.tpl.php:62
#: tpl/cache/settings-excludes.tpl.php:95
#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTE"

#: src/admin-display.cls.php:1086
msgid "Server variable(s) %s available to override this setting."
msgstr "Server variable(s) %s available to override this setting."

#: src/admin-display.cls.php:1085 tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_html.tpl.php:86
#: tpl/page_optm/settings_media_exc.tpl.php:25
#: tpl/page_optm/settings_css.tpl.php:151 tpl/cache/settings-esi.tpl.php:95
msgid "API"
msgstr "API"

#: src/purge.cls.php:329
msgid "Reset the entire opcode cache successfully."
msgstr "Reset the entire opcode cache successfully."

#: src/purge.cls.php:317
msgid "Opcode cache is not enabled."
msgstr "Opcode cache is not enabled."

#: src/import.cls.php:121
msgid "Imported setting file %s successfully."
msgstr "Imported setting file %s successfully."

#: src/import.cls.php:83
msgid "Import failed due to file error."
msgstr "Import failed due to file error."

#: tpl/page_optm/settings_js.tpl.php:35 tpl/page_optm/settings_css.tpl.php:42
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "How to Fix Problems Caused by CSS/JS Optimisation."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "This will generate extra requests to the server, which will increase server load."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."

#: src/lang.cls.php:182
msgid "Instant Click"
msgstr "Instant Click"

#: tpl/toolbox/purge.tpl.php:64
msgid "Reset the entire opcode cache"
msgstr "Reset the entire opcode cache"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "This will import settings from a file and override all current LiteSpeed Cache settings."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Last imported"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Import"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Import Settings"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "This will export all current LiteSpeed Cache settings and save them as a file."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Last exported"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Export"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Export Settings"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Import / Export"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Use keep-alive connections to speed up cache operations."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Database to be used"

#: src/lang.cls.php:86
msgid "Redis Database ID"
msgstr "Redis Database ID"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Specify the password used when connecting."

#: src/lang.cls.php:85
msgid "Password"
msgstr "Password"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Only available when %s is installed."

#: src/lang.cls.php:84
msgid "Username"
msgstr "Username"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Your %s Hostname or IP address."

#: src/lang.cls.php:80
msgid "Method"
msgstr "Method"

#: src/purge.cls.php:370
msgid "Purge all object caches successfully."
msgstr "Purge all object caches successfully."

#: src/purge.cls.php:357
msgid "Object cache is not enabled."
msgstr "Object cache is not enabled."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Improve wp-admin speed through caching. (May encounter expired data)"

#: src/lang.cls.php:90
msgid "Cache Wp-Admin"
msgstr "Cache Wp-Admin"

#: src/lang.cls.php:89
msgid "Persistent Connection"
msgstr "Persistent Connection"

#: src/lang.cls.php:88
msgid "Do Not Cache Groups"
msgstr "Do Not Cache Groups"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groups cached at the network level."

#: src/lang.cls.php:87
msgid "Global Groups"
msgstr "Global Groups"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Connection Test"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "%s Extension"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/summary.tpl.php:124
#: tpl/crawler/blacklist.tpl.php:32
msgid "Status"
msgstr "Status"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "Default TTL for cached objects."

#: src/lang.cls.php:83
msgid "Default Object Lifetime"
msgstr "Default Object Lifetime"

#: src/lang.cls.php:82
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:81
msgid "Host"
msgstr "Host"

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use object cache functionality."
msgstr "Use object cache functionality."

#: src/lang.cls.php:79 src/gui.cls.php:488 src/gui.cls.php:639
#: tpl/dash/dashboard.tpl.php:361 tpl/toolbox/purge.tpl.php:54
msgid "Object Cache"
msgstr "Object Cache"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Failed"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Passed"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Not Available"

#: tpl/toolbox/purge.tpl.php:55
msgid "Purge all the object caches"
msgstr "Purge all the object caches"

#: src/cdn/cloudflare.cls.php:259
msgid "Failed to communicate with Cloudflare"
msgstr "Failed to communicate with Cloudflare"

#: src/cdn/cloudflare.cls.php:250
msgid "Communicated with Cloudflare successfully."
msgstr "Communicated with Cloudflare successfully."

#: src/cdn/cloudflare.cls.php:164
msgid "No available Cloudflare zone"
msgstr "No available Cloudflare zone"

#: src/cdn/cloudflare.cls.php:150
msgid "Notified Cloudflare to purge all successfully."
msgstr "Notified Cloudflare to purge all successfully."

#: src/cdn/cloudflare.cls.php:134
msgid "Cloudflare API is set to off."
msgstr "Cloudflare API is set to off."

#: src/cdn/cloudflare.cls.php:117
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Notified Cloudflare to set development mode to %s successfully."

#: tpl/cdn/settings.tpl.php:220
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Once saved, it will be matched with the current list and completed automatically."

#: tpl/cdn/settings.tpl.php:219
msgid "You can just type part of the domain."
msgstr "You can just type part of the domain."

#: tpl/cdn/settings.tpl.php:211
msgid "Domain"
msgstr "Domain"

#: tpl/cdn/settings.tpl.php:201
msgid "Global API Key"
msgstr "Global API Key"

#: tpl/cdn/settings.tpl.php:188
msgid "This can be managed from <a %2$s>%1$s</a>."
msgstr "This can be managed from <a %2$s>%1$s</a>."

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "Cloudflare API"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Purge Everything"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cloudflare Cache"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Development Mode will be turned off automatically after three hours."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in real time."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Development mode will be automatically turned off in %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "Current status is %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "Current status is %1$s since %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Check Status"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Turn OFF"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Turn ON"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Development Mode"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Cloudflare Zone"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Cloudflare Domain"

#: src/gui.cls.php:629 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "For example"
msgstr "For example"

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Prefetching DNS can reduce latency for visitors."

#: src/lang.cls.php:128
msgid "DNS Prefetch"
msgstr "DNS Prefetch"

#: tpl/page_optm/settings_media.tpl.php:29
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Adding Style to Your Lazy-Loaded Images"

#: tpl/cdn/settings.tpl.php:93
msgid "Default value"
msgstr "Default value"

#: tpl/cdn/settings.tpl.php:90
msgid "Static file type links to be replaced by CDN links."
msgstr "Static file type links to be replaced by CDN links."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "For example, to drop parameters beginning with %s, %s can be used here."

#: src/lang.cls.php:77
msgid "Drop Query String"
msgstr "Drop Query String"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."

#: src/lang.cls.php:181
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Improve HTTP/HTTPS Compatibility"

#: tpl/img_optm/summary.tpl.php:372
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Remove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files."

#: tpl/img_optm/summary.tpl.php:368
msgid "Destroy All Optimization Data"
msgstr "Destroy All Optimisation Data"

#: tpl/img_optm/summary.tpl.php:318
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Scan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "This will increase the size of optimised files."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Clear Log"

#: thirdparty/woocommerce.content.tpl.php:21
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "To test the cart, visit the <a %s>FAQ</a>."

#: src/utility.cls.php:253
msgid " %s ago"
msgstr " %s ago"

#: src/media.cls.php:336
msgid "WebP saved %s"
msgstr "WebP saved %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "If you run into any issues, please refer to the report number in your support message."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "This will also generate an API key from LiteSpeed's Server."

#: tpl/img_optm/summary.tpl.php:127
msgid "Last pull initiated by cron at %s."
msgstr "Last pull initiated by cron at %s."

#: tpl/img_optm/summary.tpl.php:81
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Images will be pulled automatically if the cron job is running."

#: tpl/img_optm/summary.tpl.php:81
msgid "Only press the button if the pull cron job is disabled."
msgstr "Only press the button if the pull cron job is disabled."

#: tpl/img_optm/summary.tpl.php:88
msgid "Pull Images"
msgstr "Pull Images"

#: tpl/img_optm/summary.tpl.php:112
msgid "This process is automatic."
msgstr "This process is automatic."

#: tpl/dash/dashboard.tpl.php:322 tpl/img_optm/summary.tpl.php:336
msgid "Last Request"
msgstr "Last Request"

#: src/lang.cls.php:28
msgid "Images failed to pull"
msgstr "Images failed to pull"

#: src/lang.cls.php:29 src/lang.cls.php:30
msgid "Images failed to fetch"
msgstr "Images failed to fetch"

#: tpl/img_optm/summary.tpl.php:333
msgid "Images Pulled"
msgstr "Images Pulled"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Report"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Send To LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Report date"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Report number"

#: thirdparty/woocommerce.content.tpl.php:76
msgid "Privately cache cart when not empty."
msgstr "Privately cache cart when not empty."

#: thirdparty/woocommerce.content.tpl.php:71
msgid "Privately Cache Cart"
msgstr "Privately Cache Cart"

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr "LiteSpeed Optimisation"

#: tpl/page_optm/settings_html.tpl.php:102
msgid "This will also add a preconnect to Google for faster Google Fonts downloading."
msgstr "This will also add a preconnect to Google for faster Google Fonts downloading."

#: src/lang.cls.php:133
msgid "Load Google Fonts Asynchronously"
msgstr "Load Google Fonts Asynchronously"

#: src/lang.cls.php:65
msgid "Browser Cache TTL"
msgstr "Browser Cache TTL"

#: tpl/img_optm/summary.tpl.php:340
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Results can be checked in <a %s>Media Library</a>."

#: src/doc.cls.php:40 src/doc.cls.php:92 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:56
#: tpl/img_optm/summary.tpl.php:96 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Learn More"

#: src/lang.cls.php:27
msgid "Images optimized and pulled"
msgstr "Images optimised and pulled"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:302
msgid "Images requested"
msgstr "Images requested"

#: tpl/img_optm/summary.tpl.php:308
msgid "Images not yet requested"
msgstr "Images not yet requested"

#: tpl/img_optm/summary.tpl.php:270 tpl/img_optm/summary.tpl.php:297
msgid "Images total"
msgstr "Images total"

#: src/img-optm.cls.php:1677
msgid "Switched to optimized file successfully."
msgstr "Switched to optimised file successfully."

#: src/img-optm.cls.php:1670
msgid "Restored original file successfully."
msgstr "Restored original file successfully."

#: src/img-optm.cls.php:1654
msgid "Enabled WebP file successfully."
msgstr "Enabled WebP file successfully."

#: src/img-optm.cls.php:1648
msgid "Disabled WebP file successfully."
msgstr "Disabled WebP file successfully."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Significantly improve load time by replacing images with their optimised %s versions."

#: src/lang.cls.php:186
msgid "Image WebP Replacement"
msgstr "Image WebP Replacement"

#: tpl/cache/settings-excludes.tpl.php:124
msgid "Selected roles will be excluded from cache."
msgstr "Selected roles will be excluded from cache."

#: tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Tuning"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "Selected roles will be excluded from all optimizations."
msgstr "Selected roles will be excluded from all optimisations."

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Role Excludes"

#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Tuning Settings"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "If the tag slug is not found, the tag will be removed from the list on save."

#: tpl/cache/settings-excludes.tpl.php:64
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "If the category name is not found, the category will be removed from the list on save."

#: tpl/img_optm/summary.tpl.php:111
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "After the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images."

#: tpl/img_optm/summary.tpl.php:78
msgid "Send Optimization Request"
msgstr "Send Optimisation Request"

#: tpl/img_optm/summary.tpl.php:261
msgid "Image Information"
msgstr "Image Information"

#: tpl/img_optm/summary.tpl.php:330
msgid "Total Reduction"
msgstr "Total Reduction"

#: tpl/img_optm/summary.tpl.php:327
msgid "Optimization Summary"
msgstr "Optimisation Summary"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "LiteSpeed Cache Image Optimisation"

#: src/admin-display.cls.php:129 src/gui.cls.php:595
#: tpl/dash/network_dash.tpl.php:27 tpl/dash/dashboard.tpl.php:52
msgid "Image Optimization"
msgstr "Image Optimisation"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "JS Deferred Excludes"

#: tpl/page_optm/settings_media.tpl.php:46
msgid "For example, %s can be used for a transparent placeholder."
msgstr "For example, %s can be used for a transparent placeholder."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "By default a gray image placeholder %s will be used."
msgstr "By default a grey image placeholder %s will be used."

#: tpl/page_optm/settings_media.tpl.php:44
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."

#: tpl/page_optm/settings_media.tpl.php:43
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Specify a base64 image to be used as a simple placeholder while images finish loading."

#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:92
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_css.tpl.php:152
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Elements with attribute %s in html code will be excluded."

#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/cache/settings-esi.tpl.php:96
msgid "Filter %s is supported."
msgstr "Filter %s is supported."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Listed images will not be lazy loaded."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Lazy Load Image Excludes"

#: src/gui.cls.php:448
msgid "No optimization"
msgstr "No optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:107
msgid "Prevent any optimization of listed pages."
msgstr "Prevent any optimisation of listed pages."

#: src/lang.cls.php:139
msgid "URI Excludes"
msgstr "URI Excludes"

#: tpl/page_optm/settings_html.tpl.php:129
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."

#: src/doc.cls.php:79
msgid "Both full URLs and partial strings can be used."
msgstr "Both full URLs and partial strings can be used."

#: tpl/page_optm/entry.tpl.php:35
msgid "Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Failed to create Optimiser table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."

#: tpl/page_optm/settings_media.tpl.php:202
msgid "Load iframes only when they enter the viewport."
msgstr "Load iframes only when they enter the viewport."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Lazy Load Iframes"

#: tpl/page_optm/settings_media.tpl.php:26
#: tpl/page_optm/settings_media.tpl.php:203
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "This can improve page loading time by reducing initial HTTP requests."

#: tpl/page_optm/settings_media.tpl.php:25
msgid "Load images only when they enter the viewport."
msgstr "Load images only when they enter the viewport."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Lazy Load Images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:12
msgid "Media Settings"
msgstr "Media Settings"

#: tpl/cache/settings-excludes.tpl.php:37
msgid "For example, for %s, %s and %s can be used here."
msgstr "For example, for %s, %s and %s can be used here."

#: tpl/cdn/settings.tpl.php:137 tpl/cache/settings-purge.tpl.php:110
#: tpl/cache/settings-esi.tpl.php:107
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."

#: src/admin-display.cls.php:1101
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "To match the beginning, add %s to the beginning of the item."

#: src/admin-display.cls.php:1099
msgid "For example, for %s, %s can be used here."
msgstr "For example, for %s, %s can be used here."

#: tpl/db_optm/manage.tpl.php:48
msgid "Purge all and clean all minified/combined CSS/JS data"
msgstr "Purge all and clean all minified/combined CSS/JS data"

#: tpl/db_optm/manage.tpl.php:47
msgid "Clean CSS/JS Optimizer"
msgstr "Clean CSS/JS Optimiser"

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Maybe later"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "I've already left a review"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Welcome to LiteSpeed"

#: src/db-optm.cls.php:204
msgid "Clean all CSS/JS optimizer data successfully."
msgstr "Clean all CSS/JS optimiser data successfully."

#: src/lang.cls.php:137
msgid "Remove WordPress Emoji"
msgstr "Remove WordPress Emoji"

#: src/gui.cls.php:456
msgid "More settings"
msgstr "More settings"

#: src/gui.cls.php:437
msgid "Private cache"
msgstr "Private cache"

#: src/gui.cls.php:426
msgid "Non cacheable"
msgstr "Non cacheable"

#: src/gui.cls.php:403
msgid "Mark this page as "
msgstr "Mark this page as "

#: src/gui.cls.php:395
msgid "Purge this page"
msgstr "Purge this page"

#: tpl/page_optm/settings_js.tpl.php:74
msgid "Doing so can help reduce resource contention and improve performance."
msgstr "Doing so can help reduce resource contention and improve performance."

#: src/lang.cls.php:124
msgid "Load JS Deferred"
msgstr "Load JS Deferred"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Specify critical CSS rules for above-the-fold content when enabling %s."

#: src/lang.cls.php:135
msgid "Critical CSS Rules"
msgstr "Critical CSS Rules"

#: src/lang.cls.php:117 tpl/page_optm/settings_tuning.tpl.php:73
#: tpl/page_optm/settings_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr "Load CSS Asynchronously"

#: tpl/page_optm/settings_html.tpl.php:116
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Prevent Google Fonts from loading on all pages."

#: src/lang.cls.php:134
msgid "Remove Google Fonts"
msgstr "Remove Google Fonts"

#: tpl/page_optm/settings_html.tpl.php:130 tpl/page_optm/settings_js.tpl.php:75
#: tpl/page_optm/settings_media.tpl.php:217
#: tpl/page_optm/settings_css.tpl.php:148
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:80
msgid "Remove query strings from static resources."
msgstr "Remove query strings from static resources."

#: src/lang.cls.php:132
msgid "Remove Query Strings"
msgstr "Remove Query Strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."

#: src/lang.cls.php:58 tpl/dash/dashboard.tpl.php:362
msgid "Browser Cache"
msgstr "Browser Cache"

#: tpl/cache/settings-excludes.tpl.php:91
msgid "tags"
msgstr "tags"

#: src/lang.cls.php:102
msgid "Do Not Cache Tags"
msgstr "Do Not Cache Tags"

#: tpl/cache/settings-excludes.tpl.php:98
msgid "To exclude %1$s, insert %2$s."
msgstr "To exclude %1$s, insert %2$s."

#: tpl/cache/settings-excludes.tpl.php:58
msgid "categories"
msgstr "categories"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings-excludes.tpl.php:58
#: tpl/cache/settings-excludes.tpl.php:91
msgid "To prevent %s from being cached, enter them here."
msgstr "To prevent %s from being cached, enter them here."

#: src/lang.cls.php:101
msgid "Do Not Cache Categories"
msgstr "Do Not Cache Categories"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "Query strings containing these parameters will not be cached."
msgstr "Query strings containing these parameters will not be cached."

#: src/lang.cls.php:100
msgid "Do Not Cache Query Strings"
msgstr "Do Not Cache Query Strings"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Paths containing these strings will not be cached."

#: src/lang.cls.php:99
msgid "Do Not Cache URIs"
msgstr "Do Not Cache URIs"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "The logs will be output to %s."

#: src/admin-display.cls.php:1103 src/doc.cls.php:61
msgid "One per line."
msgstr "One per line."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "URI Paths containing these strings will NOT be cached as public."

#: src/lang.cls.php:76
msgid "Private Cached URIs"
msgstr "Private Cached URIs"

#: tpl/cdn/settings.tpl.php:173
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Paths containing these strings will not be served from the CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Exclude Path"

#: tpl/cdn/settings.tpl.php:92
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "This will affect all tags containing attributes: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:96
msgid "Include File Types"
msgstr "Include File Types"

#: tpl/cdn/settings.tpl.php:86
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Include JS"

#: tpl/cdn/settings.tpl.php:82
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Include CSS"

#: tpl/cdn/settings.tpl.php:78
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Include Images"

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr "CDN URL to be used. For example, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "CDN URL"

#: tpl/cdn/settings.tpl.php:136
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "Original URLs"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "CDN Settings"

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:188
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:239 src/admin-display.cls.php:800
#: src/admin-display.cls.php:833 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:181
#: tpl/cache/settings_inc.object.tpl.php:210
#: tpl/cache/settings-cache.tpl.php:19 tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:238 src/admin-display.cls.php:799
#: src/admin-display.cls.php:834 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:156
#: tpl/page_optm/settings_css.tpl.php:149
#: tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:167 tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:301
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Notified LiteSpeed Web Server to purge CSS/JS entries."

#: tpl/page_optm/settings_html.tpl.php:36
msgid "Minify HTML content."
msgstr "Minify HTML content."

#: src/lang.cls.php:116
msgid "HTML Minify"
msgstr "HTML Minify"

#: src/lang.cls.php:115
msgid "CSS/JS Cache TTL"
msgstr "CSS/JS Cache TTL"

#: src/lang.cls.php:131
msgid "JS Excludes"
msgstr "JS Excludes"

#: tpl/page_optm/settings_js.tpl.php:61
msgid "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"

#: src/lang.cls.php:114
msgid "JS HTTP/2 Push"
msgstr "JS HTTP/2 Push"

#: src/lang.cls.php:112 src/data.upgrade.func.php:42
msgid "JS Combine"
msgstr "JS Combine"

#: src/lang.cls.php:111
msgid "JS Minify"
msgstr "JS Minify"

#: src/lang.cls.php:130
msgid "CSS Excludes"
msgstr "CSS Excludes"

#: tpl/page_optm/settings_css.tpl.php:128
msgid "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"

#: src/lang.cls.php:110
msgid "CSS HTTP/2 Push"
msgstr "CSS HTTP/2 Push"

#: src/lang.cls.php:105
msgid "CSS Combine"
msgstr "CSS Combine"

#: src/lang.cls.php:104
msgid "CSS Minify"
msgstr "CSS Minify"

#: tpl/page_optm/entry.tpl.php:52
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."

#: tpl/toolbox/purge.tpl.php:46
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "This will purge all minified/combined CSS/JS entries only"

#: tpl/page_optm/settings_html.tpl.php:7
msgid "Optimization Settings"
msgstr "Optimisation Settings"

#: tpl/toolbox/purge.tpl.php:34
msgid "Purge error pages, including 500 pages"
msgstr "Purge error pages, including 500 pages"

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge 500 Error"
msgstr "Purge 500 Error"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge error pages, including %s pages"
msgstr "Purge error pages, including %s pages"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purge %s Error"

#: tpl/db_optm/manage.tpl.php:78
msgid "Database Optimizer"
msgstr "Database Optimiser"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimise all tables in your database"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimise Tables"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Clean all transient options"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "All Transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Clean expired transient options"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Expired Transients"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Clean all trackbacks and pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/Pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Clean all trashed comments"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Trashed Comments"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Clean all spam comments"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Spam Comments"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Clean all trashed posts and pages"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Trashed Posts"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Clean all auto saved drafts"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Auto Drafts"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Clean all post revisions"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Post Revisions"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Clean All"

#: src/db-optm.cls.php:197
msgid "Optimized all tables."
msgstr "Optimised all tables."

#: src/db-optm.cls.php:187
msgid "Clean all transients successfully."
msgstr "Clean all transients successfully."

#: src/db-optm.cls.php:183
msgid "Clean expired transients successfully."
msgstr "Clean expired transients successfully."

#: src/db-optm.cls.php:179
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Clean trackbacks and pingbacks successfully."

#: src/db-optm.cls.php:175
msgid "Clean trashed comments successfully."
msgstr "Clean trashed comments successfully."

#: src/db-optm.cls.php:171
msgid "Clean spam comments successfully."
msgstr "Clean spam comments successfully."

#: src/db-optm.cls.php:167
msgid "Clean trashed posts and pages successfully."
msgstr "Clean trashed posts and pages successfully."

#: src/db-optm.cls.php:163
msgid "Clean auto drafts successfully."
msgstr "Clean auto drafts successfully."

#: src/db-optm.cls.php:159
msgid "Clean post revisions successfully."
msgstr "Clean post revisions successfully."

#: src/db-optm.cls.php:132
msgid "Clean all successfully."
msgstr "Clean all successfully."

#: src/lang.cls.php:60
msgid "Default Private Cache TTL"
msgstr "Default Private Cache TTL"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."

#: src/lang.cls.php:179
msgid "Vary Group"
msgstr "Vary Group"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Cache the built-in Comment Form ESI block."

#: src/lang.cls.php:177
msgid "Cache Comment Form"
msgstr "Cache Comment Form"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Cache the built-in Admin Bar ESI block."

#: src/lang.cls.php:176
msgid "Cache Admin Bar"
msgstr "Cache Admin Bar"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Private"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Public"

#: tpl/cache/settings-purge.tpl.php:7
#: tpl/cache/network_settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purge Settings"

#: src/lang.cls.php:73
msgid "Cache PHP Resources"
msgstr "Cache PHP Resources"

#: src/lang.cls.php:74 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "Cache Mobile"
msgstr "Cache Mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Advanced level will log more details."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basic"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."

#: src/lang.cls.php:71
msgid "Cache Login Page"
msgstr "Cache Login Page"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cache requests made by WordPress REST API calls."

#: src/lang.cls.php:70
msgid "Cache REST API"
msgstr "Cache REST API"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"

#: src/lang.cls.php:69
msgid "Cache Commenters"
msgstr "Cache Commenters"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Privately cache frontend pages for logged-in users. (LSWS %s required)"

#: src/lang.cls.php:68
msgid "Cache Logged-in Users"
msgstr "Cache Logged-in Users"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Cache Control Settings"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excludes"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:135
msgid "Purge"
msgstr "Purge"

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "Current server time is %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Specify the time to purge the \"%s\" list."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Both %1$s and %2$s are acceptable."

#: src/lang.cls.php:96 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Scheduled Purge Time"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."

#: src/lang.cls.php:95 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Scheduled Purge URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Shorten query strings in the debug log to improve readability."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Log requested cookie values."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Log File Size Limit"

#: src/htaccess.cls.php:843
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"

#: src/error.cls.php:92 src/error.cls.php:116
msgid "%s file not writable."
msgstr "%s file not writable."

#: src/error.cls.php:112
msgid "%s file not readable."
msgstr "%s file not readable."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Collapse Query Strings"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Log Cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "ESI Settings"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "A TTL of 0 indicates do not cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Recommended value: 28800 seconds (8 hours)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget Cache TTL:"

#: src/lang.cls.php:175 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Enable ESI"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."
msgstr "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Custom Sitemap"

#: tpl/toolbox/purge.tpl.php:237
msgid "Purge pages by relative or full URL."
msgstr "Purge pages by relative or full URL."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."

#: tpl/cdn/manage.tpl.php:21 tpl/page_optm/entry.tpl.php:34
#: tpl/page_optm/settings_localization.tpl.php:11
#: tpl/page_optm/settings_css.tpl.php:143 tpl/cache/settings-esi.tpl.php:35
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:19
msgid "WARNING"
msgstr "WARNING"

#: tpl/dash/dashboard.tpl.php:497 tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Last crawled:</b> %s item(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "The next complete sitemap crawl will start at"

#: src/file.cls.php:176
msgid "Failed to write to %s."
msgstr "Failed to write to %s."

#: src/file.cls.php:157
msgid "Folder is not writable: %s."
msgstr "Folder is not writable: %s."

#: src/file.cls.php:149
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Can not create folder: %1$s. Error: %2$s"

#: src/file.cls.php:140
msgid "Folder does not exist: %s"
msgstr "Folder does not exist: %s"

#: src/core.cls.php:262
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Notified LiteSpeed Web Server to purge the list."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Please visit the <a %s>Information</a> page on how to test the cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Allows listed IPs (one per line) to perform certain actions from their browsers."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Server Load Limit"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Specify Number of Threads to use while crawling."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Crawl Interval"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Interval Between Runs"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Specify time in seconds for the duration of the crawl interval."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Specify time in microseconds for the delay between requests during a crawl."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microseconds"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Then another WordPress is installed (NOT MULTISITE) at %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "LiteSpeed Cache Network Cache Settings"

#: tpl/toolbox/purge.tpl.php:172
msgid "Select below for \"Purge by\" options."
msgstr "Select below for \"Purge by\" options."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "LiteSpeed Cache CDN"

#: tpl/crawler/summary.tpl.php:217
msgid "No crawler meta file generated yet"
msgstr "No crawler meta file generated yet"

#: tpl/crawler/summary.tpl.php:199
msgid "Show crawler status"
msgstr "Show crawler status"

#: tpl/crawler/summary.tpl.php:192
msgid "Watch Crawler Status"
msgstr "Watch Crawler Status"

#: tpl/crawler/summary.tpl.php:187
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."

#: tpl/crawler/summary.tpl.php:184
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "Run frequency is set by the Interval Between Runs setting."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Manually run"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reset position"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Run Frequency"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Cron Name"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Crawler Cron"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hour"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d hours"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generated at %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "LiteSpeed Cache Crawler"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Threads"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Run Duration"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Delay"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."

#: src/admin-display.cls.php:135 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:536
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Notified LiteSpeed Web Server to purge all pages."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "All pages with Recent Posts Widget"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "This will Purge Pages only"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purge Pages"

#: thirdparty/woocommerce.content.tpl.php:63
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."

#: tpl/cdn/settings.tpl.php:192
msgid "Email Address"
msgstr "Email Address"

#: tpl/general/settings.tpl.php:101
msgid "Warning"
msgstr "Warning"

#: src/gui.cls.php:728
msgid "Install Now"
msgstr "Install Now"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purged the url!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purged the blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Purged All!"

#: src/purge.cls.php:555
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notified LiteSpeed Web Server to purge error pages."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "If the login cookie was recently changed in the settings, please log out and back in."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "However, there is no way of knowing all the possible customisations that were implemented."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "The network admin setting can be overridden here."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Specify how long, in seconds, public pages are cached."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Specify how long, in seconds, private pages are cached."

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Please consult the host/server admin before making any changes."
msgstr "Please consult the host/server admin before making any changes."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."

#: tpl/toolbox/purge.tpl.php:228
msgid "Purge pages by post ID."
msgstr "Purge pages by post ID."

#: tpl/toolbox/purge.tpl.php:40
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purge the LiteSpeed cache entries created by this plugin"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "This will Purge Front Page only"

#: tpl/toolbox/purge.tpl.php:232
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:238
msgid "e.g. Use %s or %s."
msgstr "e.g. Use %s or %s."

#: tpl/toolbox/purge.tpl.php:223
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:126
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "If only the WordPress site should be purged, use Purge All."

#: src/core.cls.php:257
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Notified LiteSpeed Web Server to purge everything."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Use Primary Site Configuration"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "This will disable the settings page on all subsites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Check this option to use the primary site's configuration for all subsites."

#: src/admin-display.cls.php:674
msgid "Save Changes"
msgstr "Save Changes"

#: tpl/inc/check_if_network_disable_all.php:22
msgid "The following options are selected, but are not editable in this settings page."
msgstr "The following options are selected, but are not editable in this settings page."

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The network admin selected use primary site configs for all subsites."
msgstr "The network admin selected use primary site configs for all subsites."

#: tpl/toolbox/purge.tpl.php:118
msgid "Empty Entire Cache"
msgstr "Empty Entire Cache"

#: tpl/toolbox/purge.tpl.php:120
msgid "This action should only be used if things are cached incorrectly."
msgstr "This action should only be used if things are cached incorrectly."

#: tpl/toolbox/purge.tpl.php:119
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Clears all cache entries related to this site, <i>including other web applications</i>."

#: tpl/toolbox/purge.tpl.php:125
msgid "This may cause heavy load on the server."
msgstr "This may cause heavy load on the server."

#: tpl/toolbox/purge.tpl.php:124
msgid "This will clear EVERYTHING inside the cache."
msgstr "This will clear EVERYTHING inside the cache."

#: src/gui.cls.php:562
msgid "LiteSpeed Cache Purge All"
msgstr "LiteSpeed Cache Purge All"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "If you would rather not move at litespeed, you can deactivate this plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Create a post, make sure the front page is accurate."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visit the site while logged out."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Examples of test cases include:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "For that reason, please test the site to make sure everything still functions properly."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "This message indicates that the plugin was installed by the server admin."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "LiteSpeed Cache plugin is installed!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Debug Log"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Admin IP Only"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "The Admin IP option will only output log messages on requests from admin IPs."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Specify how long, in seconds, REST calls are cached."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "The environment report contains detailed information about the WordPress configuration."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "The server will determine if the user is logged in based on the existence of this cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
msgid "Note"
msgstr "Note"

#: thirdparty/woocommerce.content.tpl.php:20
msgid "After verifying that the cache works in general, please test the cart."
msgstr "After verifying that the cache works in general, please test the cart."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."

#: src/lang.cls.php:93
msgid "Purge All On Upgrade"
msgstr "Purge All On Upgrade"

#: tpl/toolbox/edit_htaccess.tpl.php:92
msgid "File editing is disabled in configuration."
msgstr "File editing is disabled in configuration."

#: thirdparty/woocommerce.content.tpl.php:57
msgid "Use Front Page TTL for the Shop Page"
msgstr "Use Front Page TTL for the Shop Page"

#: thirdparty/woocommerce.content.tpl.php:28
msgid "Product Update Interval"
msgstr "Product Update Interval"

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Checking this option will force the shop page to use the front page TTL setting."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Always purge both product and categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Do not purge categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Purge product only when the stock status changes."
msgstr "Purge product only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:34
msgid "Purge product and categories only when the stock status changes."
msgstr "Purge product and categories only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge categories only when stock status changes."
msgstr "Purge categories only when stock status changes."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purge product on changes to the quantity or stock status."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:42
msgid "Htaccess did not match configuration option."
msgstr "Htaccess did not match configuration option."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "If this is set to a number less than 30, feeds will not be cached."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Specify how long, in seconds, feeds are cached."

#: src/lang.cls.php:62
msgid "Default Feed TTL"
msgstr "Default Feed TTL"

#: src/error.cls.php:120
msgid "Failed to get %s file contents."
msgstr "Failed to get %s file contents."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching these pages may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Some themes and plugins add resources via a PHP request."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching this resource may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico is requested on most pages."

#: src/lang.cls.php:72
msgid "Cache favicon.ico"
msgstr "Cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Disabling this option may negatively affect performance."

#: src/htaccess.cls.php:910
msgid "File Saved."
msgstr "File Saved."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Invalid login cookie. Invalid characters found."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "WARNING: The .htaccess login cookie and Database login cookie do not match."

#: src/error.cls.php:104
msgid "Invalid login cookie. Please check the %s file."
msgstr "Invalid login cookie. Please check the %s file."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "There is a WordPress installed for %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Example use case:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "The cookie set here will be used for this WordPress installation."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "This setting is useful for those that have multiple web applications for the same domain."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "The default login cookie is %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "No spaces and case sensitive."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SYNTAX: alphanumeric and \"_\"."

#: src/lang.cls.php:185
msgid "Login Cookie"
msgstr "Login Cookie"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "More information about the available commands can be found here."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "These settings are meant for ADVANCED USERS ONLY."

#: tpl/toolbox/edit_htaccess.tpl.php:98
msgid "Current %s Contents"
msgstr "Current %s Contents"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Advanced"

#: tpl/cache/settings-advanced.tpl.php:7
#: tpl/cache/network_settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Advanced Settings"

#: tpl/toolbox/purge.tpl.php:251
msgid "Purge List"
msgstr "Purge List"

#: tpl/toolbox/purge.tpl.php:170
msgid "Purge By..."
msgstr "Purge By..."

#: tpl/crawler/map.tpl.php:43 tpl/crawler/blacklist.tpl.php:31
#: tpl/toolbox/purge.tpl.php:217
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:211
msgid "Tag"
msgstr "Tag"

#: tpl/toolbox/purge.tpl.php:205
msgid "Post ID"
msgstr "Post ID"

#: tpl/toolbox/purge.tpl.php:199
msgid "Category"
msgstr "Category"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "NOTICE: Database login cookie did not match your login cookie."

#: src/purge.cls.php:640
msgid "Purge url %s"
msgstr "Purge url %s"

#: src/purge.cls.php:609
msgid "Purge tag %s"
msgstr "Purge tag %s"

#: src/purge.cls.php:582
msgid "Purge category %s"
msgstr "Purge category %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "When disabling the cache, all cached entries for this site will be purged."

#: tpl/page_optm/entry.tpl.php:41 tpl/page_optm/entry.tpl.php:51
#: tpl/cache/settings-cache.tpl.php:27
msgid "NOTICE"
msgstr "NOTICE"

#: src/doc.cls.php:91
msgid "This setting will edit the .htaccess file."
msgstr "This setting will edit the .htaccess file."

#: tpl/toolbox/edit_htaccess.tpl.php:100
msgid "DO NOT EDIT ANYTHING WITHIN %s"
msgstr "DO NOT EDIT ANYTHING WITHIN %s"

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid "Any changes made to the .htaccess file may break the site."
msgstr "Any changes made to the .htaccess file may break the site."

#: tpl/toolbox/edit_htaccess.tpl.php:39
msgid "LiteSpeed Cache Edit .htaccess"
msgstr "LiteSpeed Cache Edit .htaccess"

#: src/error.cls.php:108
msgid "Failed to back up %s file, aborted changes."
msgstr "Failed to back up %s file, aborted changes."

#: src/lang.cls.php:183
msgid "Do Not Cache Cookies"
msgstr "Do Not Cache Cookies"

#: src/lang.cls.php:184
msgid "Do Not Cache User Agents"
msgstr "Do Not Cache User Agents"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "This is to ensure compatibility prior to enabling the cache for all sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Network Enable Cache"

#: thirdparty/woocommerce.content.tpl.php:19
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/report.tpl.php:29
#: tpl/toolbox/heartbeat.tpl.php:14
msgid "NOTICE:"
msgstr "NOTICE:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Other checkboxes will be ignored."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."

#: src/lang.cls.php:75 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "List of Mobile User Agents"
msgstr "List of Mobile User Agents"

#: src/file.cls.php:164 src/file.cls.php:169
msgid "File %s is not writable."
msgstr "File %s is not writable."

#: tpl/toolbox/entry.tpl.php:14
msgid "Edit .htaccess"
msgstr "Edit .htaccess"

#: tpl/page_optm/settings_js.tpl.php:7 tpl/page_optm/entry.tpl.php:7
msgid "JS Settings"
msgstr "JS Settings"

#: src/gui.cls.php:578 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:188
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Manage"

#: src/lang.cls.php:61
msgid "Default Front Page TTL"
msgstr "Default Front Page TTL"

#: src/purge.cls.php:523
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Notified LiteSpeed Web Server to purge the front page."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purge Front Page"

#: tpl/page_optm/settings_localization.tpl.php:124
#: tpl/toolbox/beta_test.tpl.php:27
msgid "Example"
msgstr "Example"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "All tags are cached by default."
msgstr "All tags are cached by default."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "All categories are cached by default."
msgstr "All categories are cached by default."

#: src/admin-display.cls.php:1102
msgid "To do an exact match, add %s to the end of the URL."
msgstr "To do an exact match, add %s to the end of the URL."

#: src/admin-display.cls.php:1098
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "The URLs will be compared to the REQUEST_URI server variable."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Select only the archive types that are currently used, the others can be left unchecked."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notes"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Use Network Admin Setting"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Disable"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Disabled"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Enabled"

#: src/lang.cls.php:103
msgid "Do Not Cache Roles"
msgstr "Do Not Cache Roles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Outputs to WordPress debug log."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Debug Level"

#: tpl/general/settings.tpl.php:83 tpl/general/settings.tpl.php:94
#: tpl/general/settings.tpl.php:106 tpl/general/settings.tpl.php:150
msgid "Notice"
msgstr "Notice"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Term archive (include category, tag, and tax)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Daily archive"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Monthly archive"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Yearly archive"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Post type archive"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Author archive"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Home page"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Front page"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "All pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Select which pages will be automatically purged when posts are published/updated."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Auto Purge Rules For Publish/Update"

#: src/lang.cls.php:59
msgid "Default Public Cache TTL"
msgstr "Default Public Cache TTL"

#: src/admin-display.cls.php:917 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/esi_widget_edit.php:70 tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89
msgid "seconds"
msgstr "seconds"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "Admin IPs"

#: src/admin-display.cls.php:123
msgid "General"
msgstr "General"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "LiteSpeed Cache Settings"

#: src/purge.cls.php:212
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Notified LiteSpeed Web Server to purge all LSCache entries."

#: src/gui.cls.php:463 src/gui.cls.php:471 src/gui.cls.php:479
#: src/gui.cls.php:488 src/gui.cls.php:498 src/gui.cls.php:508
#: src/gui.cls.php:518 src/gui.cls.php:528 src/gui.cls.php:538
#: src/gui.cls.php:604 src/gui.cls.php:612 src/gui.cls.php:620
#: src/gui.cls.php:629 src/gui.cls.php:639 src/gui.cls.php:649
#: src/gui.cls.php:659 src/gui.cls.php:669 src/gui.cls.php:679
#: src/gui.cls.php:689 tpl/toolbox/purge.tpl.php:39
#: tpl/toolbox/purge.tpl.php:45 tpl/toolbox/purge.tpl.php:54
#: tpl/toolbox/purge.tpl.php:63 tpl/toolbox/purge.tpl.php:72
#: tpl/toolbox/purge.tpl.php:81 tpl/toolbox/purge.tpl.php:90
#: tpl/toolbox/purge.tpl.php:99 tpl/toolbox/purge.tpl.php:108
msgid "Purge All"
msgstr "Purge All"

#: src/admin-display.cls.php:281 src/gui.cls.php:586
msgid "Settings"
msgstr "Settings"����%M�K�d�d(�d2eEeMe	Ve
`e
keve�e�e�e	�e�e	�er�eHf[fmcf�f�f
�f�f�f3ghDg�gN�g8h=Uh"�h7�h�hH�h;iKifi'wi
�i	�i�i�i%�i�i�i|jF�j�j%�j	k"k4kPTkT�kZ�k:Ul>�lu�lEm.Nm-}m/�mL�m2(nI[n�n�n�n#�n�noEoMaoP�o0p'1pYppp�p�p�p�pI�p+q	;q	EqOq [q"|q/�q*�q�q
rr'r�9r4�rf�r [s|s�s
�s�s�s#�s�s�s�st
t t-t:tKtQtattt�t	�t�t�t
�t�t�t�tuu!u0uBu0au*�uU�uWvkv �v �v(�v�v�vw'wK?wP�w	�w�w�wx-(xVxrx�x�x"�x�x"�xy!8yZyzy&�y"�yG�y!,z,Nz${z+�z�z�z{( {	I{S{Wp{�{�{�{1|%:|2`|�|
�|�|�|�|�|�|
}&!}.H}Nw}*�}.�} ~?~]_~�~�~!�~

-JYan���%�
�!��43�'h�6��ǀԀ	���$�;>�:z���Ё� ��"�@�V�/o�*��<ʂ7�?�N�g�t���
��	����Ƀ܃�
�!�(�	4�>�M�`�s�{���!��ń݄���!�A�
`�n�w�)}���+Ņ}�o�D��8ņ���;�W� `�K��8͇q�x���������Ո���'�C@�E��ʉ
щ܉��� �>�
B�M�<Z�������ы9�
 �.�A� Q�r�
�Y��q�V�^�N~�͍ڍ��t���������Ȏَ������+�%?�,e�s��v�#}���������5�*A�l�r�������Lڑ'�93�:m�0��)ْ��c��G�PL�W�����
�)�
:�E�]�x��� ��•ʕە#��1�
P�^�=z���8Ȗ��
.�<�W� j�0����˗ߗ#���6�B�	V�`�Br���	��Ø2ȘZ��,V�����-����i��I#�;m�Y��K�VO�U��L��lI�B��Y���S�V��`L�J��g��=`�@��=ߡ�3�E�X�t�����¢
֢�<��2�I�_�?���ԣ���9�U�f�?s���ʤѤ� �&� 9�DZ�������ʥ
٥�����6j�����˧�
����
#�1�
G�/R�/����pǨ<8�
u���������ɩ	ة��
��.5�d�
i�t�
��������h۪D�AL����)�	5�?�L�'\�
����
��
��"������$�+1�]�#o���*��׭�
��

���0���ǮP�H3�B|�7��@��&8�_�o�����%��۰ ��"�&>�!e�������$ұ���߲��
��5� M�n�}�/��.����|�������Ŵ������<�I�g�+j�������ȵյٵ
�����!�0�O�%V�|�$��
��Ķɶܶ@�
-�%;�a�f�m�>u���Ʒ ۷��*� >�2_�����"ȸ*�"�"9�\�s���<��,޹$�
0�*>�
i�
w�F��̺Ѻ׺
޺.�?�6[�;��1λ3�24�Bg�6��0�����#�0�F�Qc�D��
��-�$6�P[�?���7�;�H�%e�	��������̿����8�$H�Em�+��*�,
�7�M�Y�b�q�v�
~�
��$��!������*�9�K�[�a�h�q���R��c��2P�?��
������?�<F�5��S��p
��~�'��*�E�������d,�c��;��01�Mb���p��98�/r�&��&��)��7�4R�����
��������
���$��;�F���(�/�<�
N�\�q�}�A��������	����&�2�C�
T�_�k�5z�%����0��#�%5�&[�I����$��D	�@N�9��1����8�TA��������������+�
4�?�#N�=r���
������+	�5�G�[�n��������������%�:�{Q�;��	�"�+8�d�������
����A��S�	d�n��� �������������+1�&]�B��������Y�p�$��2������I�
M�[�k�
x���:���������'�.4�c�di�����M��fF�$��X��Q+�7}�+����g��c�u���Q����P�^\�m��	)�3�E�^�w�9��}��(E�n���>����U��:�NN�Y������
%�3�&P�w�#|���9��8��
 �0.�V_�_��C�GZ�a��6�8;�4t�/��7��6�7H�-��#��$��)��L!�*n�)��-��(��,�.G�Kv�?��?�HB�<��3����R�V�k���������2����(�54�j��������e��-�/4�Md�h���];�=��8��[�cl�C��j�z�A��h<�q����q���H;�W��O��>,�k���K�����E�1R�-��Y��$�)1�9[�O��&�)�96�Yp�$�X�1H�z�A��*�^��EW�U��(�S�p�J��(�I��'D�.l�&���2�2�7C�Y{�*�����:,�Ng�;��,�*�1J�;|�(��J�4,+a�N�Q�oMX�/GF9�1�� #E+�qJU^�3�N3�W�����*N<y1�V�L?*�]�		"	(	8	$D	i	~	
�	�	�	�	�	�	��	/|
(�
)�
�
����
�


#
@0
q
"u
�

�
�����:�+E$Uz���r�5M_�8�9Y$r�.�2�r�!��C�F
NYx � ��K�(0EY+o��)���ty� �
����dJ{j�M1e�g�R_Z�
.&N'u#��y�%J�p/(qX(�@�J4F.�Z�6PG�3�'#Ke)mZ��

 4'GoK����J�	A K S [ �` ,!+8!d"Ml"?�"�"#	#
# #
,#:##Z#~#	�#	�#�#��#*$=$wE$�$�$	�$�$ �$6%p;%*�%S�%Q+&F}&�&E�&*'M.'|'%�'�'0�'()(>(G(,Y(�(�(��(KD)�)0�)�)3�).%*\T*Y�*z+B�+H�+�,�,>�,<�,@#-gd-R�-g.�.�.�.@�.///cK/Z�/p
0E{0?�01  1A1^1'f1�1g�1/�1,292E22T2$�2>�2,�2	3"3"73Z3�r3F4ia4#�4�4�4�45
5)%5O5'\5�5�5
�5�5
�5�5�5�5 	6*6@6]6%o6�6�6�6�6�6�67$757&I7Gp7K�7d8ci85�8-9-192_9
�9�9�9�9\�9dF:�:�:�:�:<;6N;'�;!�;�;'�;/<1B<+t<3�<,�</=11=+c=Y�=,�=+>,B>4o>+�>(�>!�>*?F?!V?jx?�?!@$@BD@/�@=�@�@
AA.!APAeA{A�A-�A;�AcB%{B/�B�B!�BnC�C�C!�C�C�C�C$	D.DGDOD `D%�D(�D�D9�D E</ElEI�E-�EG�EAFNFfFvF�F�FE�FLG#]G�G"�G3�G$�GH+H;=H6yHI�HD�H?IUItI�I�I�I
�I
�I�I�I,J=JRJZJoJ�J �J �J�J�J'K30K%dK$�K%�K�K'�K#L;LMLVL@^L)�L:�L�M�MN�M=�M
<N%GNUmN�N$�N_�NCTO��O	%P/PDP]PrP �P�P�P�P�PI�PJGQ�Q�Q(�Q!�Q�Q'R:R
>RLRP[R#�S�S�S�S?T
RT`TxT2�T�T�T`�T}8U
�U!�UJ�U.VFV�LVWW&W6WTWaWwWW�W�W�WE�W!X1-X�_X��X%�Y*�Y%�YZZ.Z#EZiZ?{Z�Z�Z�Z#�Z* [`K[�[;�[M�[5B\0x\��\yX]Q�]$^[�^__5_A_S_e_!�_�_ �_�_``)`%>`d`%�`�`�`H�`aB+a na�a�a�a�a'�a.bBbUbsb �b�b�b�b�b	�bcLcecmcc@�cY�c9dYdud1�d&�do�eO[fA�ff�fcTgd�gth^�h{�hKmid�i�jc�js?kJ�k��kU�mPnQTn�n�n�n%�n( o+Iouo�o�o�oO�o*pGp$fpc�p�p$q-q$Kq#pq#�q�q�qW�q!6rXrarur5�r.�r!�rRsgsts�s�s
�s��s��tM�u�u&�u3!vUv^vjv�v�v�v
�v@�v@wQwnqwF�w'x&3x
Zxex
�x�x�x
�x+�x�x�x@yYy^ymy�y�y�y1�y��ytzI|z��z	�{�{�{�{B�{|$|5|J|,\|�|�|�|2�|8�|3}@P}+�}.�}�}$~	0~
:~+E~�q~�~^1K�X�G5�W}�:Հ� �>�Y�4w� ��$́-�5 �+V�"��%��˂,�� �;�V�k���#����ՄC�I-��w�
:�H�\�u�������)Ά��0�<�"M�p�-s�	����$Ç����
�)�>�Q�g�y���.��Ј.�
�'�.�F�JV���'��։ۉ�i�R�g�1���4Ί,�D0�(u�%��6ċ@��<�)Z�&����0��U�BD�E��͍@ڍ
�)�`8���������4��N�C<�^��FߏI&�8p�Y��H�<L�������������'ԑT��SQ���6��*�b�;z�$��Eۓ
!�&/�.V�
��
������ϔ��!�8�W�.h�V��4�7#�5[�����Ė͖����(� A�(b�/����˗���$�,�8�O�gk��Ә:Z�L����
�[ �P|�<͚_
��j���=����S���
�(�?�l\�kɞF5�>|�U���t.�I��4�C"�;f�8��[ۡW7�(������Ϣ���&�4C��x�_�'y�������֤���X4�����������إ
���(�5�E�@Y�5��#ЦC�8�0P�1��Y��"
�,0�J]�K��I�A>���B��e٩?�S�d�+z�����
ת.�
��,+�XX���ϫ#߫�,�B�\�|�)��+¬'��/�E�(^�8����׭��T��$��..�7]�������ǯگN��bD�
����Ű)�
�"�@�T�%k�"��*��3߱I�]�)}�#��˲&K�'r�D��߳��M�j�{�����´Vܴ.3�b�k�����B������~���P��n�/t�i��l�H{�9ĸ!��q ���.��ԹO�B�pZ�n˺�:�»һ'�'�@�?^����5F�#|���X���e���Q��j�V�!g���
��'��.Ͽ��1�8�BI�D���A�~$�|��U �`v�Q��^)�`��\��@F�`��a��IJ�9��1��7�68�bo�0��)�<-�-j�:��A��^�Pt�T��O�Dj�O����g� n�������(����1�!:�%\�J�� �������z�?��1��q�sy���i
�Dt�=��t��ll�S���-����KU�w��������f�&��b�[��_��J<�#����P��#�$?�dd�=��<�eD�/��+��0�C7�#{�=��@��e�#��\��;�A�^Q�/��s��]T�t��7'�__���V��0,�R]�1��7��3�N�?j�5��<��V�*t�l��'�4�MT�Y��C��)@�?j�:��U��,;�gh�?��0�(A�fj�V��x(�i��7�SC�?��B���' �H�SP���T��c��:b�d��!�k$�����N�14�Hf�J��Y��\T�0��m��P�\�i�o�	��*����"����
�'�/�I�P�Y�0i�4��4��%��*�������O�e�q�
��R���'�x���
��
������E��#;�_�:q�#����'��+�@�����Fv�.��(�#�%9�._�4��5������+���G�T�s�(��"��"�)��!�f-�	�������3�� �07��h�	)$=bs� �|�`<}�aq}�uo|v�co,�0�1�%
<�J,��:��3+�E�RCK�5�X	1q	R�	@�	%7
3]
�
�
.�
i�
Nfnz��<��K[
guZ~�
��	��
�
v/[��zl���y�E 4����������
�i,�8�0��2�����e1:X�?��7��C+E`f�&��}�A~����*
�.|��ARW�+�&D&|�����j���xh��{U����c�[�!X���n���%�Q��")a��zOhkv�V=��*q��i�8�U��>�s�d�@��T�"k��D���
#*"������\�����A�}p���������3�����0��	,P#2���7���Y�~�[��L��C�;/�&�����N��	:`��t�F��"���MFE2Q$��c{491MvP�+��wM��]�+�f���� n>&#��}�|�[�-�.����:���_�(��$��6����Kd�s��z0��C������uuK�s%6�k\���������@���'�,Q�N�!�aKVS���fs�mb�i!*Ogw�f���h/~�2396
��(m�!��<��	��b���o��Ak��Zi=��3OL�Z@�w��)u���������c�*J���1s;GWjHeW��Y�V�B1�7��!��dL
���W��F�S�c�7 �5���q�rJ�#�^A���x)�[H��:]p���?�L����<�'t-m%~��D����1���IVE�(M��(��j�����J5�O%�Le-���)=�`�'ygB2��z��%�����Y.�	'�rolH�b��#��0��/��URnG?S�E�?���d�l�3.���
�j9����H5=����	^��^���+���}����T��;�e(g-f�`��.Op��b�Pux�S�w�o��$��7B�������n}�$�h;h6upyZ���Nr�e�����,8��X<V����o�B����xm���TI�m"S�n���Y�lP����Y�6/q��v�{�$:��9Q�3����R^i�=<��BT^w����>I@����k��C]�_PZ��J�H��)�GD��
t���C������8d8�K��t���\I5���<`Z��U��z��
�RKR�x�av�>>a��� _N�����G�j�F�r�;�4��4�a���_��9���?y�����@5�
���Q-�I
g�pU|�]���qM�Fl���GX��0�J\��_��qo���g��\{��]y���N�X�t�~c����bW���4D�, T{����|�r�' %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred.%s is recommended.&laquo;&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.&raquo;(no savings)(non-optm)(optm).htaccess Path Settings<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter DOM ReadyAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAny changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS SettingsCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimizerClean Crawler MapClean Up Unfinished DataClean all CSS/JS optimizer data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optmizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDO NOT EDIT ANYTHING WITHIN %sDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDomain KeyDomain Key hash mismatchDrop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all online server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate Critical CSSGenerate Critical CSS In BackgroundGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate UCSS in BackgroundGenerate unique CSS in the background via a cron-based queue.Generated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLeave empty to auto detectLeave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated.Link to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache Edit .htaccessLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad Inline JSLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManage CrawlerManually added to blacklistManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNon-`.js` file extensions will be ignored.Not AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge localized resource entries.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimizationOptimization SettingsOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consult the host/server admin before making any changes.Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Predefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended valueRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Noscript TagRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlacklistRemove query strings from static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save .htaccessSave ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, CSS/JS files are cached.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the backend .htaccess path.Specify the frontend .htaccess path.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This option will remove all %s tags from HTML.This page is meant for advanced users.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo clear the outdated CSS/JS optimization data, please go to %s menu.To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s.Tweet previewTweet thisUCSS Whitelist SelectorURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Master commitUse latest GitHub commitUse latest WordPress release versionUse object cache functionality.Use original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not.You can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You don't have enough quota for current service left this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IP isZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.user agentsPO-Revision-Date: 2021-02-02 15:01:11+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: es_MX
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
hace %s Almacena en la caché el bloque ESI de la barra de administración incluida.Para esta acción se necesita la versión %2$s del plugin %1$s.%d hora%d horas%d minuto%d minutos%d segundosExtensión %sNo se puede leer el archivo %s.No se puede escribir el archivo %s.%s grupo%s grupos%s imagen%s imágenesSe recomienda %s, aunque causaría la mayoría de los problemas para los scripts que se colocan en línea para evitar diferirlos.%s es recomendado.&laquo;&nbsp;Si tanto el cron como la ejecución manual comienzan en momentos similares, prevalecerá el primero en iniciarse.&raquo;(sin ahorro)(no-optm)(optm)Ajustes de la ruta del .htaccess<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a><a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.<b>Última indexación:</b> %s elemento(s)<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$sUna clave de dominio es necesario para usar los servicios en linea de QUIC.cloud.Un vaciado completo se iniciará cuando WordPress ejecute estos hooks.Un TTL de 0 implica no cachear.Se guarda una copia de seguridad de cada imagen antes de optimizarla.APIAcelera la velocidad al cachear Gravatar (Avatares reconocidos mundialmente).Añade una nueva url de la CDNAñadir una cookie nueva para simularAñadir a las lista negraAñade estilos a tus imágenes de carga diferidaSolo la IP del administradorIPs de administradorAvanzadoAjustes avanzadosEl nivel avanzado registrará más detalles.DespuésDespués de DOM readyDespués de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, notificará a tu sitio para descargar las imágenes optimizadas.Después de que la caché funcione en general, por favor prueba el carrito.Todos los datos transitoriosTodas las categorías son cacheadas por defecto.Todas las páginasTodas las páginas con widget de Entradas recientesTodas las etiquetas son cacheadas por defecto.Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.Vaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario.Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separarCualquier cambio hecho al archivo .htaccess puede romper el sitio.Añade la cadena de consulta %s a los recursos para evitar esta acción.Clave del dominio solicitada correctamente. Por favor espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress.Aprobado¿Estás seguro de que quieres borrar todas las listas negras?¿Estás seguro de destruir todas las imágenes optimizadas?¿Estás seguro de que deseas borrar todos los nodos de la nube?¿Estás seguro de que deseas volver a detectar el servidor en la nube más cercano para este servicio?¿Estás seguro de que deseas eliminar todas las copias de seguridad de imágenes?¿Estás seguro de que deseas restablecer todas las configuraciones a la configuración predeterminada?Archivo del AutorBorradores automáticosCron de obtención automáticaReglas de vaciado automático para publicación y actualizaciónCron de petición automáticaActualizar automáticamenteGenera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.Solicitar automáticamente la optimización mediante un trabajo cron.La lista de avatares está en la cola esperando ser actualizadaRuta del .htaccess del backendControl de heartbeat del backendTTL de heartbeat del backendBásicoMarcador de posición de imagen básicaAntesAntes de generar la clave, por favor verifica que todas las IPs de esta lista estén en la lista blancaBeneficios de enlazar con una cuenta QUIC.cloudPruebas betaLista negraEn lista negraEn la lista negra debido a que no se puede cachearTanto %1$s como %2$s son aceptables.Pueden utilizarse tanto URLs completas como cadenas parciales.Se pueden usa cadenas parciales y completas.NavegadorCaché del navegadorAjustes de la caché del navegadorTTL caché de navegadorEl cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.Por defecto, se utilizará un marcador de posición de imagen gris %s.Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien.Saltadas %1$s imágenes duplicadas.CCSSCDNAncho de banda CDNAjustes de CDNURL de CDNURL de la CDN a utilizar. Por ejemplo, %sCombinar CSSCombinación de CSS externo e integradoExcluir CSSPush HTTP/2 de CSSMinificar CSSAjustes de CSSCaché CSS/JSTTL de caché CSS/JSCachéCachear barra de administradorCachear formulario de comentarioCachear comentaristasAjustes de control de cachéAcierto de cachéCachear usuarios con sesión iniciadaCachear página de accesoFallo de cachéCache móvilCachear recursos de PHPCachear API RESTEstadísticas de la cachéEstado de la cachéCachear wp-adminCachear favicon.icoCachear vistas móviles por separado. Cachear peticiones realizadas por llamadas de la API REST de WordPress.Almacena en la caché el bloque ESI del formulario de comentarios incluido.Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias.Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias.Calcular espacio en el disco para copias de seguridadCalcular almacenamiento original de imágenesCopias de seguridad calculadas correctamente.No se puede crear el directorio: %1$s. Error: %2$sCategoríaAjuste cambiado con éxito.Comprobar estadoComprueba mi IP pública desdeMarca esta opción para usar la configuración del sitio principal para todos los subsitios.Marcar esta opción forzará a la página de tienda a usar el ajuste de TTL de la página principal.Limpiar todoLimpiar el optimizador CSS/JSVaciar el mapa del rastreadorLimpiar datos no finalizadosLimpia todos los datos del optimizador CSS/JS correctamente.Borrar todos los borradores guardados automáticamenteBorrar todas las revisiones de entradasBorrar todos los comentarios spamLimpieza completa exitosa.Borrar todos los trackbacks y pingbacksBorrar todas las opciones de datos transitoriosLimpieza de todos los datos transitorios exitosa.Borrar todos los comentarios en la papeleraBorrar todas las entradas y páginas en la papeleraLimpieza de borradores automáticos exitosa.Borrar opciones de datos transitorios expiradosLimpieza de datos transitorios expirados exitosa.Limpieza de revisiones de entradas exitosa.Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisionesLimpieza de comentarios no deseados exitosa.Limpieza de trackbacks y pingbacks exitosa.Limpieza de comentarios en papelera exitosa.Limpieza de páginas y entradas en papelera exitosa.Limpiados todos los archivos CSS críticos.Vaciados todos los archivos de Gravatar.Vaciados todos los archivos LQIP.Datos incompletos limpiados correctamente.Vaciar registroVaciar %1$s imágenes no validas.Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>.Haz clic aquí para cambiarlo.Haz clic aquí para configurarlo.Haz clic aquí para los ajustesHaga clic para borrar todos los nodos para una mayor redetección.Haz clic para cambiar a la versión optimizada.Haz clic para cambiar a la versión original (no optimizada).Error de cloudCloudflareAPI de CloudflareLa API de Cloudflare está configurada en off.Caché de CloudflareDominio de CloudflareZona de CloudflareColapsar cadenas de peticionesCombina archivos CSS y código CSS integrado.Combina todos los archivos JS locales en un único archivo.Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. Comunicado con éxito con Cloudflare.¡Felicidades! Tu archivo ya ha sido optimizado¡Felicidades, todos reunidos!¡Felicidades, todas solicitadas!¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia.Prueba de conexiónConvertir a InnoDBConvertido a InnoDB exitosamente.Nombre de la cookieSimulación de cookieValores de la cookieNo he podido encontrar %1$s en %2$s.Intervalo de indexaciónCrawlerCron del CrawlerAjustes generales del rastreadorAjustes de simulación del rastreadorAjustes de mapa del sitio del rastreadorEstado del rastreadorRastreador desactivado por el administrador del servidor.Rastreador(es)Los rastreadores no se pueden ejecutar de forma concurrente.Crear versiones WebPCrear una entrada, asegurarse que la página principal está actualizada.Creado con ❤️ por el equipo de LiteSpeed.Los créditos no son suficientes para proceder con la solicitud actual.CSS críticoReglas de CSS críticasNombre del CronContenidos actuales de %sNodos cloud actual en servicioIPs del servidor en líneaEl servidor cloud más cercano es %s.&#10; Clic para volver detectar.El servidor cloud más cercano es %s.&#10;Haz clic para volver a detectarlo.El rastreador actual comenzó a lasEl límite actual es:La hora actual del servidor es %s.El rastreo del mapa del sitio actual comenzó a lasEl estado actual es %1$s desde %2$s.El estado actual es %s.Rastreador activoActualmente usando la versión optimizada del archivo WebP.Actualmente usando la versión optimizada del archivo.Actualmente usando la versión original (no optimizada) del archivo WebP.Actualmente usando la versión original (no optimizada) del archivo.Sitemap personalizadoAjustes de optimización de BDPrefetch DNSControl del prefetch DNSNO EDITAR NADA EN %sArchivo diarioEscritorioBase de datosOptimizador de base de datosResumen de la base de datosConversor de motor de tabla de base de datosBase de datos a usarDía(s)Nivel de depuraciónRegistro de depuraciónAjustes de depuraciónURIs excluidas de la depuraciónURIs incluidas en la depuraciónPredeterminadoTTL por defecto del FeedTTL por defecto de la Página PrincipalTTL del código de estado de página predeterminadoTiempo de vida por defecto del objetoTTL por defecto de la caché privadaTTL por defecto de la caché públicaTTLpredeterminado de RESTTTL por defecto para objetos cacheados.Puerto por defecto de %1$s es %2$s.Valor por defectoDiferidoRetrasoBorrar todas las copias de seguridad de las imágenes originalesDestruir todos los datos de optimizaciónTodos los datos de optimización destruidos correctamente.Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.Modo de desarrolloEl modo de desarrollo se desactivará automáticamente después de tres horas.El modo de desarrollo se desactivará automáticamente en %s.DesactivarDesactivar todas las característicasDesactiva el intervalo del heartbeat de WordPress para reducir la carga del servidor.DesactivadoArchivo WebP desactivado con éxito.Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.Desactivar esta opción puede afectar negativamente al rendimiento.Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes en QUIC.cloud.DescartarDescartar este avisoCategorías a no cachearCookies a no cachearGrupos a no cachearCadenas de consulta a no cachearNo cachear perfilesEtiquetas a no cachearURIs a no cachearUser Agents a no cachearNo vaciar las categorías al cambiar la cantidad o estado del inventario.Hacerlo puede reducir la contención de recursos y mejorar el rendimiento.DominioClave de dominioDiscrepancia de hash de clave de dominioQuitar dominio del mapa del sitioIgnorar cadenas de consultaArchivos de imagen duplicados ignoradosESINonces de ESIAjustes de ESIESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.Muestra de ESI para desarrolaldoresEditar .htaccessHeartbeat del editorTTL de heartbeat del editorSe excluirán los elementos con el atributo %s en código html.Email AddressVaciar la caché enteraVaciar lista negraHabilitar la funcionalidad %s de la API de la CDN.Activa cacheActivar ESIActivar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress.Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.HabilitadoArchivo WebP activado con éxito.Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.Razón de finalizaciónMotorIngrese la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a IP en lugar del nombre de dominio. Esto elimina la sobrecarga de las búsquedas de DNS y CDN.Cada minutoEjemploEjemplo de uso:Ejemplos de pruebas incluyen:Excluir rutaAjustes de exclusiónExcluirDatos transitorios expiradosExportarAjustes de exportaciónFallidoFallo al hacer copia de seguridad del archivo %s, cambios cancelados.Fallo al comunicar con CloudflareFallo de comunicación con el servidor QUIC.cloudFallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.No se pudo crear la tabla Optimizador. Por favor, sigue la <a %s>Guía de creación de tablas del Wiki de LiteSpeed</a> para terminar la configuración.¡Error al crear la tabla %s! SQL:%s.Error al obtener contenido del archivo %s.Fallo en la solicitud desde WordPressFallo al actualizar.Error al escribir a %s.Uso de la cola rápidaNo se puede escribir el archivo %s.Archivo guardado.La edición de archivos está desactivada en la configuración.ArchivosEl filtro %s es compatible.El directorio no existe: %sEl directorio no es escribible: %s.Optimización de visualización de fuentesEn el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado.Por ejemploPor ejemplo, %1$s define un TTL de %2$s segundos para %3$s.Por ejemplo, los %s pueden usarse para un marcador de posición transparente.Por ejemplo, para %s, %s y %s puede utilizarse aquí.Por ejemplo, para %s, %s puede utilizarse aquí.Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.Por ejemplo, si la página de inicio de esta web se encuentra al %1$s, la página de la tienda puede encontrarse al %2$s.Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s.Para que los servicios en línea funcionen correctamente, debes hacer una lista blanca de todas las IPs en línea del servidor.Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.Forzar URLs en cachéForzar URIs de caché públicaForzar cronForzar cacheablesPágina de inicioRuta del .htaccess del frontendControl de heartbeat del frontendTTL de heartbeat del frontendRecopilar datos de las imágenes%d recopiladas correctamente.Opciones generalesAjustes generalesGenerar CSS críticoGenerar CSS crítico en segundo planoGenerar LQIP en segundo planoGenerar enlace para el usuario actualGenerar UCSSGenerar UCSS en segundo planoGenera CSS único en segundo plano a través de una cola basada en cron.Generado en %sLos enlaces generados pueden gestionarse en los <a %s>Ajustes</a>.Obténla desde <a %1$s>%2$s</a>.Clave de API globalGrupos globalesIr al escritorio de QUIC.cloudIr a la lista de pluginsBuenas noticias del servidor QUIC.cloudGoogle reCAPTCHA se omitirá automáticamente.Caché de GravatarCron de la caché de GravatarTTL de la caché de GravatarGrupos cacheados a nivel de red.InvitadoAtributo HTML a reemplazarMinificar HTMLSolo orígenes HTTPSHeartbeatControl de HeartbeatCaché de páginas de alto rendimiento y optimización de sitio de LiteSpeedAciertoPágina de InicioHostCómo solucionar problemas causados por la optimización CSS/JS.Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.El htaccess no coincide con la opción de configuración.La regla de Htaccess es: %sYa he dejado una valoración¡Si %1$s es %2$s entonces debe completarse %3$s!Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.Si no, por favor verifica el ajuste en la <a href="%1$s">pestaña Avanzado</a>.Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo».Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>.Si esto se fija en un número inferior a 30, los feeds no serán cacheados.Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.Si está utilizando múltiples dominios para un sitio y tiene múltiples dominios en el mapa del sitio, mantenga esta opción desactivada para que el rastreador sepa rastrear cada dominio.Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.Si no quieres la aceleración de litespeed, puedes desactivar este plugin.Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.Los iframes con estos nombres de clase padres no se cargarán de forma diferida.Ignorar ciertas cadenas de consulta al almacenar en caché. (Se requiere LSWS %s)Grupos de imágenes preparadosInformación de imágenesOptimización de imágenesAjustes de optimización de imágenesResumen de la optimización de imágenesTamaños de grupo de imágenes en miniaturaReemplazo de imágenes WebPFaltan archivos de imágenesImágenes recuperadasImágenes solicitadasLas imágenes que contengan estos nombres de clases no tendrán carga diferida.Errores al obtener imágenesErrores al descargar imágenesImágenes fallidas con otros erroresLas imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.Imágenes no solicitadasImágenes que aún no se han reunidoImágenes aún no solicitadasImágenes notificadas para descargarImágenes optimizadas y descargadasImágenes optimizadas anteriormenteImágenes solicitadasTotal imágenesLas imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.Imágenes con metadatos erróneosImportarImportar / ExportarAjustes de importaciónImportación fallida debido a un error en el archivo.Importado con éxito el archivo de ajustes %s.Mejorar compatibilidad HTTP/HTTPSMejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)Mejorado porIncluir CSSIncluir tipos de archivoIncluir imágenesIncluir JSIncluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.Incluye la biblioteca integrada de Javascript de carga diferida de imágenes.Directorios incluidosBiblioteca de CSS integrado asíncronoBiblioteca integrada de imágenes en carga diferidaInstalarInstalar %sInstalar DoLogin SecurityInstalar ahoraClic instantáneoIntervalo entre ejecucionesIP no válidaCookie de acceso no válida. Encontrados caracteres no válidos.Cookie de acceso no válida. Por favor, comprueba el archivo %s.Regla de reescritura no válidaRecomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero.Se convertirá en un marcador de posición SVG base64 sobre la marcha.Combinar JSCombinación de JS externo e integradoDiferir JSExclusiones de diferido de JSExcluir JSPush HTTP/2 de JSMinificar JSAjustes de JSÚnete a la comunidad de Slack de LiteSpeedÚnete a nuestro SlackÚnete a la comunidad %s.Mantén esto apagado para usar marcadores de posición de color.LQIPCaché de LQIPGenerador de LQIP en la nubeExcluye LQIPDimensiones mínimas de LQIPCalidad LQIPVista previa de la imagen LQIP para el tamaño %sLas solicitudes LQIP no se enviarán para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.LSCache¡Las funciones caché de LSCache de está página no están disponibles!Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero generarán archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.Mayor queÚltima lecturaÚltima peticiónÚltimo cálculoHora de la última ejecución completa para todos los rastreadoresÚltima exportaciónÚltimo generadoÚltima importaciónÚltimo intervaloÚltima descarga iniciada por cron a las %s.Última ejecuciónÚltima peticiónÚltimo coste solicitadoExclusiones de carga diferida de clases de iframesExclusiones de carga diferida de clases padre de iframesRetrasar la carga de iframesExclusión de nombres de clases para carga diferida de imágenesExclusiones de carga retrasada de imágenesExclusiones de carga diferida de clases padresRetrasar la carga de imágenesExclusión de URIs de carga diferidaLeer másSaber másDejar vacío para detectar automáticamenteDeja esta opción %1$s para permitir la comunicación con el servicio CCSS QUIC.cloud. Si se establece en %2$s, no se generará CSS crítico.Enlace a QUIC.cloudLista de User Agents móvilesLista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.Enumera el selector CSS que tu estilo siempre debe estar contenido en UCSS.Los archivos CSS de la lista o el código JS integrado no se minimizarán o combinarán.Los archivos JS listados o el código JS integrado no serán diferidos.Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán.Las imágenes listadas no se cargarán de forma retrasada.LiteSpeed CacheCDN de la caché de LiteSpeedCrawler de LiteSpeed CacheEscritorio de LiteSpeed CacheOptimización de la base de datos de LiteSpeed CacheEditar .htaccess LiteSpeed CacheAjustes generales de LiteSpeed CacheOptimización de imágenes de LiteSpeed CacheAjustes de la caché de la red de caché de LiteSpeedPágina de optimización de LiteSpeed CacheVaciar toda la caché de LiteSpeedConfiguración de Caché de LiteSpeedHerramientas de LiteSpeed Cache¡El plugin LiteSpeed Cache está instalado!LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el layout de tu sitio es correcto y que no tienes errores de JS.Cron del rastreador de LiteSpeedOptimización de LiteSpeedReporte de LiteSpeedLiteSpeed TechnologiesCargar CSS asíncronamenteCargar Google Fonts asíncronamenteCargar JS integradoDeferir carga de JSCargar iframes sólo cuando entran en la ventana de visualización.Cargar las imágenes sólo cuando entran en la ventana de visualización.Cargar JS integrado después de que el DOM esté completamente cargado puede aumentar la compatibilidad de JS y reducir el error de JS cuando se habilitan otras funciones de optimización de JS.LocalizaciónArchivos de idiomasAjustes de localizaciónRecursos localizadosLocalizar recursos externos.Recursos localizadosRegistrar cookiesLímite de tamaño de archivo de registroVista de registrosRegistra los valores solicitados de las cookies.Cookie de accesoMarcador de imagen de baja calidadMBDEBE SER DIFERENTE DE OTRAS APLICACIONES WEB.GestionarGestionar el rastreadorAñadir a la lista negra manualmenteEjecutar manualmenteMapaMarcar esta página comoValor máximoPuede que más tardeQuizás más tardeExclusiones de mediosAjustes de mediosMensaje del servidor QUIC.cloudMétodoMinimiza archivos CSS y código CSS integrado.Minificar contenido HTML.Minimiza archivos CSS y código CSS integrado.Valor mínimoPerderReglas de agente móvilArchivo mensualAquí se puede encontrar más información sobre los comandos disponibles.Más ajustesMás ajustes disponibles en el menú %sNOTAAVISOAVISO:AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.Escritorio de la redHabilitar caché de red¡Nueva versión para desarrolladores disponible!¡Nueva versión disponible!La nueva versión de desarrollo %s está disponible.La nueva versión %s está disponible ahora.Próximo tiempo de solicitud disponible: <code>Después de %s</code>No hay ningún nodo de cloud disponible.No hay disponible una zona CloudflareNo existe una copia de seguridad del archivo original.No existe una copia de seguridad del archivo WebP no optimizado.No hay servicios cloud en usoArchivo meta del crawler aún no generadoNo se ha reunido ninguna imagen nueva.Sin optimizaciónEspacios no permitidos y sensible a mayúsculas.El servidor cloud no ha encontrado ninguna imagen válida por en la petición actual.No se ha encontrado ninguna imagen válida en la petición actual.No se ha analizado ningún mapa del sitio válido para el rastreador.No cacheableSerán ignorados los archivos que no tengan la extensión `.js`.No disponibleNo lista negraNo hay suficientes parámetros. Compruebe si la clave de dominio está establecida correctamenteNotaNotasNotaNotificacionesAvisado a Cloudflare el vaciado completo con éxito.Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed.Solicitado el vaciado de todas las entradas de la caché de LSCache al servidor web LiteSpeed.Solicitado el vaciado de todas las páginas al servidor web LiteSpeed.Solicitado el vaciado de las páginas de error al servidor web LiteSpeed.Solicitado el vaciado de todo al servidor web LiteSpeed.Solicitado el vaciado de los registros de recursos localizados al servidor web LiteSpeed.Solicitado el vaciado de la página de inicio al servidor web LiteSpeed.Solicitado el vaciado de la lista al servidor web LiteSpeed.APAGARENCENDEROObjetoCaché de objetosAjustes de la caché de objetosLa caché de objetos no está activada.Una vez guardado, coincidirá con la lista actual y se completará automáticamente.Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificadoUna por línea.Solo los atributos aquí listados serán reemplazados.Solo disponible cuando está instalado %s.Solo activarlo para AMP o diseño/contenido específico para móviles, no  para sitios adaptables.Solo los archivos en estos directorios apuntarán a la CDN.Solo registra las páginas listadas.Solo pulsar el botón si la tarea cron de descarga está desactivada.Caché opcodeLa caché opcache no está habilitada.Marca esto si eres un usuario de OpenLiteSpeedOperaciónOptimizaciónAjustes de optimizaciónEstado de optimizaciónResumen de optimizaciónHeramientas de optimizaciónOptimiza la entrega de CSS.Optimizar sin pérdidaOptimizar imágenes originalesOptimizar tablasOptimizar todas las tablas en tu base de datosOptimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.Optimizar imágenes usando compresión sin pérdida.Optimiza las imágenes con nuestro servidor QUIC.cloud.El archivo WebP optimizado caducado ha sido limpiado.Optimizadas todas las tablas.Nombre de la opciónOpcionalOpciones guardadas.OrigOrig %sAhorrados %s del originalURLs originalesArchivo original reducido en %1$s (%2$s)Otras opciones serán ignoradas.Nuestro %s no estaba en la lista blanca.Salidas al registro de depuración de WordPressBalance de pagoTiempo de carga de la páginaOptimización de páginaPuntuación de PageSpeedPáginasExitosoContraseñaEnlace sin contraseñaLa ruta debe terminar en %sLas rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.Las rutas que contengan estas cadenas no serán cacheadas.Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.Pago por usoEstadísticas pago por usoConexión persistentePor favor consulta con del administrador del host/servidor antes de hacer cualquier cambio.Por favor, NO compartas el enlace de acceso sin contraseña de arriba con nadie.Por favor, activa LiteSpeed Cache en los ajustes del plugin.Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema.Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción "Vaciar todo".Por favor, inténtalo después de %1$s para el servicio %2$s.Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la REST API, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda.Por favor, visita la página de <a %s>Información</a> sobre como probar la caché.PuertoID de entradaRevisiones de entradasArchivo de tipo de contenidoPre-enviar archivos CSS internos al navegador antes de que sean solicitados. (Requiere del protocolo HTTP/2)Pre-enviar archivos JS internos al navegador antes de que sean solicitados. (Requiere del protocolo HTTP/2)La lista predefinida también se combinará con los ajustes anterioresLa precarga DNS puede reducir la latencia para los visitantes.Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.Conservar los datos EXIF/XMPPulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.Presiona el botón %s para usar la confirmación más reciente de GitHub.Evita que cargue Google Fonts en todas las páginas.Evita cualquier registro de depuración de las páginas enumeradas.Evita cualquier carga diferida de las páginas de la lista.Evitar cualquier optimización de las páginas listadas.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.Anteriormente existía en la lista negraPrivadaCaché privadaAciertos de caché privadaURIs cacheadas privadamenteCachés privadasCaché privadaCachear carrito privadamenteCachear carrito privadamente cuando no esté vacío.Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)Intervalo de actualización de productoPúblicaCaché publica Aciertos de caché públicaCachés públicasPull Cron se está ejecutandoDescargar imágenes%d imagen(es) obtenida(s)El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP.VaciarVaciar error %sVaciar error 500Vaciar todoVaciar todos los hooksVaciar todo al actualizarVaciar por...Vaciar todoVaciar la página de inicioVaciar listaVaciar páginasAjustes del vaciadoVaciar y limpiar todos los datos CSS/JS minimizados o combinadosVació de todas las cachés de objetos correctamente.Vaciar todas las cachés de objetosVaciar las categorías solo cuando el estado del inventario cambie.Vaciar la categoría %sVaciar páginas de error, incluyendo páginas %sVaciar páginas de error, incluyendo páginas 500Vaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.Vaciar páginas por ID de entrada.Vaciar páginas por URL completa o relativa.Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.Vaciar productos y categorías solo cuando cambie el estado del inventario.Vaciar los productos con los cambios de cantidad o estado del inventario.Vaciar los productos solo cuando cambie el estado del inventario.Vaciar la etiqueta %sVacía las entradas de caché de LiteSpeed creadas por este pluginVacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS y LQIPVaciar esta páginaVaciar la URL %s¡Se ha vaciado todo!Vaciado de todas las cachés correctamente.¡Se ha vaciado el blog!¡Se ha vaciado la URL!¡Purgado!%1$s enviado al servidor cloud, %2$s aceptado.QUIC.cloudCDN QUIC.cloudEstadísticas de uso del servicio QUIC.cloudLas cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.Cola despejada correctamente.Valora %s en %sLeer la documentación de LiteSpeedValor recomendadoValor recomendado: 28800 segundos (8 horas).ID de base de datos RedisActualizar mapa de rastreadoresActualizar clave de dominioRefrescar la caché de Gravatar por cron.Actualizar el tiempo de carga de la páginaActualizar la puntuación de la páginaElimina la url de la CDNEliminar Google FontsQuitar etiqueta NoscriptEliminar copias de seguridad del orginalEliminar copias de seguridad de las imágenes originalesEliminar query stringsEliminar emojis de WordPressEliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.Eliminar la simulación de la cookieEliminar de la lista negraEliminar query strings de recursos estáticos.Se han eliminado las copias de seguridad correctamente.Reemplaza %1$s con %2$s.InformeFecha de informeNúmero de informeSolicitar clave de dominioSolicita versiones WebP de las imágenes originales al hacer la optimización.Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación.SolicitadoPeticiones en colaRe-escanear nuevas miniaturas%d imágenes re-escaneadas correctamente.Re-escaneo correcto.Restablecer todos los ajustesRestablecer ajustesReestablecer posiciónRestablecimiento realizado con éxitoReestablecer toda la caché opcodeReestablecida la caché opcache con éxitoDatos de optimización restablecidos correctamente.Los recursos listados aquí se copiarán y reemplazarán con URL locales.Marcador de posición adaptableColor del marcador de posición adaptableMarcador de posición SVG adaptableLos marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.Restaurar desde una copia de seguridadArchivo original restaurado con éxito.Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>.Edad máxima de las revisionesNúmero máximo de revisionesLas revisiones más recientes se guardarán cuando se limpien las revisiones.Excluir perfilesSimulación de rolDuración de la ejecuciónFrecuencia de ejecuciónEjecutar cola manualmenteLa frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.Hora de ejecución para el rastreador anteriorEn cursoSINTAXIS: alfanumérico y "_".Guardar .htaccessGuardar cambiosGuarda datos transitorios en la base de datos cuando %1$s es %2$s.GuardadoBuscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.Hora de vaciado programadoURLs de vaciado programadoVer <a %s>Introducción para activar el Crawler</a> para información detallada.Selecciona "Todo" si hay widgets dinámicos enlazados a entradas en páginas distintas de la página de inicioSelecciona debajo las opciones de "Vaciar por".Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.Seleccionar que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadasLos perfiles seleccionados serán excluidos de todas las optimizaciones.Los perfiles seleccionados serán excluidos de la caché.Enviar solicitud de optimizaciónEnviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.Enviar a LiteSpeedTipos de contenido de caché de CCSS distintosDistintas URIs de caché CCSSSepara archivos CSS críticos al generar las rutas que contengan estas cadenas.Servir contenido rancioServir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s.IP del servidorLímite de carga del servidorValor máximo permitido por el servidorValor mínimo permitido por el servidorValor forzado por el servidorVariable(s) del servidor %s disponible para omitir este ajuste.Establece esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.Establécelo en %1$s para bloquear heartbeat en %2$s.Configurar cabeceras personalizadasAjustesAcortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.Mostrar estado del CrawlerMejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.Ajustes de simulaciónURL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$sSitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva.Lista de SitemapConfiguración del mapa del sitioSitemap TimeoutSitemap TotalEl mapa del sitio se limpió con éxitoMapa del sitio creado con éxito: %d elementosTamañoTamaño de la lista en la cola de espera del cronMas pequeño queUna o más imágenes optimizadas han caducado y han sido borradas.Algunos temas y plugins añaden recursos mediante una petición PHP.Comentarios spamEspecifica el número de hilos a utilizar durante la indexación.Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.Especifica un SVG que se utilizará como marcador de posición al generar localmente.Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos CSS/JS.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos Gravatar.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.Especifica por cuanto tiempo, en segundos, se cachean los feeds.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.Especifica cuánto tiempo, en segundos, se almacena la página de inicio.Especifica el intervalo de heartbeat para %s en segundos.Especifica la ruta del escritorio en el .htaccessEspecifica la ruta de la vista pública en el .htaccessEspecifica el tamaño máximo del archivo de registro.Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.Especifica la contraseña utilizada al conectar.Especifica la calidad al generar el LQIP.Especifica el color del marcador de posición SVG adaptable.Especifica la hora para vaciar la lista "%s".Especifique el tiempo de espera mientras rastrea cada URL.Especifica el tiempo límite de procesamiento del mapa del sitio.Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación.Especifica un tiempo en segundos para la duración del intervalo de indexación.Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución.Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.Especificar que atributos de elementos serán reemplazados con WebP.Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.EstadoDeja de cargar emojis de WordPress.org. En su lugar se mostrará el emoji predeterminado del navegador.Optimización de almacenamiento.Almacena Gravatar localmente.Almacenar datos transitoriosSumario¡Por supuesto, me encantará valorarlo!IntercambiarVolver a utilizar imágenes optimizadas en tu webCambió las imágenes con éxito.Cambio correcto a archivo optimizado.Asignación de créditos correctamente sincronizada con el servidor cloud.Sincronizar los datos de la nubeInformación del sistemaTTLTablaEtiquetaOmite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.Archivo de término (incluye categoría, etiqueta y taxonomía)¡Gracias por usar el plugin de caché LiteSpeed!La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores.El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.La llamada POST a %s falló.La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción "%s".Las URLs serán comparadas con la variable REQUEST_URI del servidor.Los noces anteriores se convertirán en ESI automáticamente.El tiempo, en segundos, durante el cual los archivos serán almacenados en la caché del navegador antes de expirar.La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.La validación de la llamada a tu dominio falló debido a la falta de coincidencia.La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores.La solicitud de validación en tu domino falló. Por favor, asegúrate de que no hay ningún cortafuegos bloqueando nuestros servidores. Código de respuesta:La cookie aquí establecida será usada por esta instalación de WordPress.El crawler puede utilizar tu sitemap de Google en lugar del suyo propio. Introduce la URL completa de tu sitemap aquí.La función de rastreador no está habilitada en el servidor LiteSpeed. Consulta al administrador de tu servidor o al proveedor de hosting.El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, soltar el dominio puede ahorrar almacenamiento de base de datos.La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.La cookie de acceso por defecto es %s.La clave de dominio no es correcta. Por favor, intenta sincronizar tu clave de dominio nuevamente.El informe de entorno contiene información detallada sobre la configuración de WordPress.Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.La lista de imágenes está vacía.El último archivo de datos esLa lista se fusionará con los nonces predefinidos en tu archivo de datos local.Los registros serán enviados a %s.La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.El ajuste de administrador de red puede ser modificado aquí.La siguiente indexación de sitemap completa empezará a lasEl servidor determinará si el usuario tiene sesión iniciada en base a la existencia de esta cookie.La configuración %s está activado actualmenteEl sitio no está registrado en QUIC.cloud.Y otro WordPress instalado (NO MULTISITIO) en %sHay dos razones por las que no podemos comunicarnos con tu dominio:Hay un WordPress instalado para %s.Hay una cola de procedimiento que no se ha retirado todavía.La cola aún no ha sido recuperada. Información de la cola: %s.Hubo un problema al recuperar tu clave de dominio. Haz clic en el botón %s para volver a intentarlo.Estas imágenes no generarán LQIP.Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.Uso de este mesEsta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.Esto se puede gestionar desde <a %2$s>%1$s</a>.Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.Esto puede mejorar la velocidad de carga de la página.Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.Esto es irreversible.Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.Esto puede causar una alta carga en el servidor.Este mensaje indica que el plugin fue instalado por el administrador del servidor.Esta opción solo funciona si %1$s está en %2$s.Esta opción eliminará todas las etiquetas %s de HTML.Esta página está pensada para usuarios avanzados.Este proceso es automáticoEsta configuración se sobrescribe con la configuración de redEste ajuste es sobrescrita por la constante %s de PHPEsta ajuste es sobrescrito por los ajuste del sitio primarioEste ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.Este ajuste editará el archivo .htaccess.Este sitio utiliza sistemas de caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El cacheado potencialmente almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de caché son temporales, y nunca son accedidos por ninguna tercera parte, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de caché expiran en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su expiración natural, si fuese necesario.Esto vaciará solo la página principalEsto solo vaciará las páginasEsto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s.Esto también agregará un preconnect a Google para descarga más rápida de las fuentes.Esto también generará una clave de API del servidor de LiteSpeed.Esto eliminará TODO dentro de la caché.Esto borrará todos los archivos Gravatar almacenados en cachéEsto borrará todos los archivos generados de CSS críticoEsto borrará todos los archivos generados de marcador de posición de imágenes LQIPEsto borrará todos los recursos localizadosEsto desactivará LSCache y todas las características de optimización con propósitos de depuración.Esto desactivará la página de ajustes en todos los subsitios.Esto eliminará el CSS no usado en cada página.Esto habilitará el cron del rastreador.Esto exportará todas las configuraciones actuales de LiteSpeed Cache y las guardará como un archivo.Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.Esto aumentará el tamaño de los archivos optimizados.Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.Esto vaciará solo las entradas CSS/JS minimizadas o combinadasEsto restablecerá todos los ajustes a su valores predeterminados.HilosTiempo para ejecutar solicitud anteriorTimeoutPara vaciar los datos obsoletos de optimización CSS/JS, por favor, ve al menú %s.Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea y pueden incluir una línea en blanco. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.Para coincidencias exactas, añadir %s al final de la URL.Para habilitar la siguiente funcionalidad, activa la API de Cloudflare en la configuración del CDN.Para excluir %1$s, insertar %2$s.Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.Para asegurarnos de que nuestro servidor pueda comunicarse con tu servidor sin ningún problema y que todo funcione bien, para las pocas primeras solicitudes, la cantidad de imágenes permitidas en una sola solicitud es limitada.Para gestionar las opciones de QUIC.cloud, visitaPara que coincida con el principio, añade %s al comienzo del artículo.Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.Para evitar llenar el disco, esta configuración debe estar APAGADA cuando todo funciona.Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.Para probar el carrito, visita la <a %s>FAQ</a>.Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.HerramientaHerramientasTotalReducción totalUso totalTotal de imágenes optimizadas en este mesTrackbacks/pingbacksComentarios enviados a la papeleraEntradas enviadas a la papeleraProbar versión de GitHubAjustarConfiguración de ajustesAPAGARENCENDERActívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.Actívalo para controlar heartbeat en el editor.Actívalo para controlar heartbeat en el escritorio.Enciéndelo para controlar heartbeat en el frontend.Activar la actualización automáticaActiva esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.%1$s este ajuste si usas una red de entrega de contenido (CDN). NOTA: QUIC.cloud CDN y Cloudflare no usan la asignación CDN. Si solo usas QUIC.cloud o Cloudflare, deja este ajuste en %2$s.Vista previa del TuitTuitea estoSelector de lista blanca UCSSURL excluidasLas rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.URLLista de URLs en cola esperando el cronSe ha encontrado la regla de caché inesperada %2$s en %1$s archivo. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas HTML debido a que el navegador almacena en caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en el navegador, puedes descartar este mensaje. (<a %3$s>Más Información</a>)Error desconocidoActualizar %sActualizarActualizado con éxito.UsoUso de las estadísticasUsa %1$s en %2$s para indicar que esta cookie no ha sido establecida.Usar la funcionalidad de la API %s.Usar mapeo de CDNUsar TTL de la página principal para la página de tiendaUsar ajuste de administrador de redUsar archivos optimizadosUsar archivos originalesUsar configuración del sitio principalUsa el servicio generador de QUIC.cloud LQIP (Low Quality Image Placeholder) para obtener vistas previas de la imagen mientras se carga.Usa el servicio en línea QUIC.cloud para generar un CSS único.Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente las Google Fonts dejando el resto del CSS intacto.Utilizar conexiones keep-alive para acelerar operaciones de la caché.Usar el último commit de desarrollo de GitHubUsar el último commit maestro de GitHubUtiliza el último commit de GitHubUsar la última versión de WordPressUsar la funcionalidad de la caché de objetos.Usar imágenes originales (no optimizadas) en tu webUsa el formato %1$s o %2$s (el elemento es opcional).Utiliza esta sección para cambiar la versión del plugin. Para probar un commit de GitHub, introduce la URL del commit en el campo de abajo.Nombre de usuarioUsando la versión optimizada del archivo. Rango de valoresLas variables %s serán reemplazadas con el color de fondo configurado.Las variables %s serán reemplazadas con las propiedades de imagen correspondientes.Grupos de variaciónVer detalles de la versión %2$s de %1$sVisita el foro de soporte de LSCWPVisita Mi Escritorio en QUIC.cloudVisitar el sitio sin la sesión iniciada.ADVERTENCIAADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.En esperaEsperando aprobaciónEsperando a la recargaEsperando a ser rastreado¿Quieres conectar con otros usuarios de LiteSpeed?AlertaVer estado del CrawlerEstamos bien. Ninguna tabla usa el motor MyISAM.Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.WebPAtributo WebP a reemplazarWebP para src extraArchivo WebP reducido en %1$s (%2$s)WebP guardado %sBienvenido a LiteSpeed¿Qué es un grupo?¿Qué es un grupo de imágenes?Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas.Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.Habilitar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.TTL caché de Widgets:El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.Con el CDN de QUIC.cloud habilitado, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.WooCommerceAjustes de WooCommerceControl de la calidad de imagen de WordPressEl intervalo válido de WordPress es %s segundosEl intervalo válido de WordPress es %s segundos.WpW: Caché privada o caché públicaArchivo anualAhora tienes %s registros en la tabla de optimización CSS/JS. Puede que tengas que comprobar si tienes o no un problema aleatorio de cadenas.Puedes simplemente teclear parte de dominio.Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles.Solo puedes solicitar un máximo de %s imágenes a la vez.También puedes activar el cacheo de navegador en la administración del servidor. <a %s>Leer más sobre los ajustes de caché de navegador de LiteSpeed</a>.Puedes convertir shortcodes en bloques ESI.No tienes suficiente cuota restante este mes para el servicio actual.Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas.Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.¡Acabas de desbloquear una promoción de QUIC.cloud!Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud.Debes tener %1$s antes de enlazarte a QUIC.cloud.¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!Deberás establecer %s para poder utilizar el servicio en linea.El hostname o dirección IP de tu %s.Tu clave de la API es usada para acceder a %s APIs.Tu dirección de email en %s.Tu IPTu solicitud está a la espera de aprobación.Se le ha prohibido a tu dominio usar nuestros servicios debido a una violación anterior de la política.La IP de tu servidor esCero, ocategoríascookiesactualmente establecido en %sp. ej. Usa %s o %s.El favicon.ico es solicitado en la mayoría de las páginas.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationahora mismomicrosegundospíxelesproporcione más información aquí para ayudar al equipo de LiteSpeed con la depuración.ahora mismoejecutandosegundosetiquetasla IP detectada automáticamente puede no ser precisa si tiene un conjunto de IP saliente adicional o si tiene varias IP configuradas en su servidor. Asegúrese de que esta IP sea la correcta para visitar su sitio.user agents��b,#�<F�]�](�]2�]
^^	^
(^
3^>^K^a^w^	�^�^	�^r�^_#_m+_�_�_3�_h�_V`Nv`8�`=�`"<a7_a�aH�a�a�ab' b
Hb	Vb`bib%{b�b�b|�bF4c{c%�c	�c"�c�cP�cTNdZ�d:�d>9exe.�e-�e/�eLf2[fI�f�f�f�f#g&gE<gM�gP�g0!h'Rhzh�h�hI�h+�h	i	i(i 4i"Ui/xi*�i�i
�i�ij�j4�jf�j 4kUkZk
^klkyk#�k�k�k�k�k
�k�kll$l*l:lMl^l	ull�l
�l�l�l�l�l�l�l	mm0:m*kmU�mW�mDn an �n(�n�n�n�noKoPdo	�o�o�o�o-p/pKpdp|p"�p�p"�p�p!q3qSq&sq"�qG�q!r,'r$Tr+yr�r(�r	�r�rWsms�s�s1�s
�s�s�st(t:tJt&at.�tN�t*u1uPupu�u�u�u
�u�u�u�u�u�uv0v
?v!Jvlv4�v'�v�v�v	�vww;w;Uw:�w�w�w�w x"4xWxmx�x�x�x�x
�x�x�xyy5yIyPy	\yfyuy�y�y�y�y�y�y�yz6z
Uzczlz)rz�z+�z}�zd{Du{8�{�{�{;|L| U|Kv|8�|q�|m}u}�}�}�}�}�}�}
~~C5~Ey~�~�~�~�~
�~<
J�d�s���9��
Ӏ�� �%�
2�Y=�q��	��N1��������'�4�<�N�n�{�����������+ƃ%�s�v���#�C�V�m�~���*��΅ԅ��L"�o�9{�:��0�)!��K�c�GL�P��W�=�
N�Y�
j�u��� ����ȉى#��/�
N�\�=x���8Ɗ���
,�:�U�0h�#����Ë݋�	���B�\�	`�j�2o�Z��,��*�?�-Z����i`�Iʎ;�YP�K��V��UM�L��l�B]�Y�����V��`�JT�g��=�@E�=��ĕڕ����6�R�i�
}���<��ٖ��?&�f�{�����ė���
�?�Z�q�x��� ��&�� �D�F�R�^�q�
������K�6�H�]�r���
������
ʛ؛
�/��/)�Y�pn�<ߜ
�'�F�O�d�p�	�������ŝ.ܝ
��
+�9�Q�h^�ǞAϞ����	��Ÿϟ'ߟ
��
$�
2�"@�c�l�{���#��Šޠ
�
���� �����PҡH#�Bl�7��@�&(�O�_�s���%��ˣ �"�&.�!U�w�����$¤��ϥ���� &�G�/X�.�����F�S�f�|�������̧����1�+4�`�g�v�����
��������Ϩި%��$ �
E�S�X�@h�
��%��ݩ��>�0�B� W�x�*�� ��2۪�"+�"N�q�����<��,�$ �
E�*S�
~�
��������
��.��?�6)�;`�1��3έ2�B5�6x�0����������Q1�D��
ȯ-֯$�P)�?z���7Ѱ	��%3�	Y�c�p�������±ٱ��$�E;�+��*��,ز��'�0�
?�!M�o�������dz׳ݳ����R�ch�2̴?��
?�M�l�?��<µ5��S5�p������~�E�R�W�_�n�d��c�;I�0��M���p�9��/ƺ&��&�)D�n�
v�������
��Ȼ$ݻ��F��׼����
�#�8�D�AW�������	��Ƚؽ���
�
�&�2�5A�%w���0���%��&"�II���$��Dп@�9V�1���8�T�]�m�z��������+�
���#�=9�w�
������+�����"�5�U�l�������������{�;������+��+�I�a�h�
t���A��S��	+�5�G� ]�~�����������+��&$�BK���Y��$��2$�W�i�I~�
������
���:�O�m�u�����.����d��I�^�Ms�f��$(�XM�Q��7��+0�\�gv������Q(�z�P��^��m6�	����������9�}B�(�����>�K�U_���N��Y�r����
����#����9��8�
W�0e�V��_��CM�G��a��6;�8r�4��/��7�6H�7�-��#��$	�).�LX�*��)��-��((�,Q�.~�K��?��?9�Hy�<��3��3�R:�������������2��$�(B�k���������e��-�/5�Me�h���]<�=��8��[�cm�A��h�q|������W��O��>H���K����
�E�1U�-��Y��$�)4�9^�O��&��9�YI�$��X��1!�S�Ad�*��^��E0�Uv�(��S��I�J_�(��I��'�.E�&t���2��7��Y!�*{��������:��N
�;\�,��*��1��;"�(^�J��4��+�3�NR�Q��o��Xc�/��G��94�1n��� ����E����J��^F�3��N��(�WF�����5�*��<�1\�V��L�*2�]]�������$���
-�;�N�U�e�n��v�/�(J�)s�������;����
��
������@��"�6�
<�
J�X�`�w�}�:����$��2�F�Y�rx�5�_!�8�������$�5�.U�2��r��*C3Fw
���  #DKL����+�)(�R��
"7Hd`J�jM{e�/gAR�Z�Wcx&�'�#�y%���/rq�(	J=	F�	.�	Z�	6Y
G�
�
'�
 :BT
]hp�'��K�)2?JF	������|
'�
	�B�:�8	A	K
U`l"y'�	�
��	������:<�w)�P$JuJ�.K:�S��&�%3?s���0����U��7=5N7�b�t{�PPa	�I�A8H^�L�S-���>�Yfy`�:A,|7���j�+Z
���8�)�R
O`
�����9�x�#u � � � � 
� (� � %	!	/!9!L!
Y!g!t!�!+�!,�!!�!*"1"+F"$r"�"�"�"�"�"�"#'#.C#Sr#D�#n$pz$(�$*%?%7\%
�%�%�%&�%_�%_R&
�&-�&#�&"'J5'.�'*�',�'(&#((J(-s(2�(7�(-)+:)1f)5�)c�)82*2k*>�*5�*)++=+i+ |+f�+,,=,B\,
�,�,+�,�,�,	-"-2<-8o-q�-!.#<."`.�.�.
�.�.�.�.�.�.)
/,4/.a/�/�/D�/0C!0-e0�0�0�0�0�0 �0_1Uy1 �1�1%2.-2&\2�2$�2�2$�23(3B3V3g3�34�3�3�344)4@4\4z4�4#�4$�4�4+5--5'[5�5	�5�56�5.�54
6�B6�6L�6@J7�7'�7a�7!898YX8C�8��8�9�9&�9"�9"�9/:!C:&e:�:-�:V�:[0;�;$�; �;�;�;
�;��;&=�=�=�=D�=(>>>R>0j>�>�>r�>|3?
�?�?K�?%"@H@�O@
A!A)A)DAnA�A�A�A�A�A	�A?�A'B�FB��B2sC#�C�C�C)D'+DSDChD�D�D�D*�DaE~E=�EH�E;F1MF�Fm(G[�G��Ge�H�HI!I
7I'EI"mI�I	�I�I�I*�IJ-0J^J#qJU�J�JD�J)BKlK�K#�K �K1�K*L6L<LWLiL�L!�LX�LMM
.MB9Mu|M@�M3N%PN5vN�Nv�OSAPJ�Pi�P_JQs�QyRv�RmSV}Su�S�JTn*Ux�UuV��VNgXQ�XVY_Y}Y�Y%�Y$�Y.�Y$ZAZZZiZN{Z+�Z�Z/[SA[�[�[�[�[\!\A\S\Xb\�\�\�\�\.]&5]'\]f�]�]�]	^&^
9^�G^�B_S:`�`�`:�`	�`aa,aAa"Ra
uaA�aA�a!b�)b?�b�b$�bc/cCcLc^cjc)wc�c�cM�c
%d0dNdZdwd}�de[e�je8fGfVfifJzf�f�f�f�f&g3gHgZg qg<�g#�g�gh"h+1h�]h�h$il+iS�iS�iH@jQ�j6�jk"k6kNk3nk%�k'�k&�k-l)Elol�l �l/�l�ln0nBn%Yn/n�nQ�nTo�po8pEp^pxp"�p�p�p#�pq(q;q,Oq|q.q�q�q�q�q�qrr/rDrSrir3rr�r2�r�rssPsns5�s�s�s�sf�s?tZt+zt�tC�t1	u?;u!{u1�u/�u!�u!v%5vK[v6�vH�v'wCEw�w�w�w	�w�w
�w(�wBx=IxE�x=�xAy,MyQzyD�y,z>zFzLzOzUzmz�z^�zO{R{:a{/�{g�{H4|0}|I�|�|$}7*}
b}m}z}�}�}�}�}�}~2~7G~X~<�~27H��
���,�1
�*?�%j�������ŀ΀#ۀ��{����J;�C��ʂ@�(�e>�R��E��X=�����%��ՅU����.�E�y`�xڇMS�G��d�N��n�H�==�7{�7��/��"�/�J�f�u� ��:���ދn��%�B�K�X�t�-����L֍#�*�@�W�c�%|�
������׎���C
�'Q�y�B��܏3�4(�b]�$��/�`�Nv�Iő=�M�@d�k���#�5�'D�l�~�	��6��
ѓܓ8�P$�u�����Ɣ0ڔ�((�Q�'o�+��Õ����(3�0\� �����ʖGn�!��ؗ:��0�N�h�p�����J��h��c�l�+��'��ݙ!���6�Q�0o�1��-Қ_�`��{� �U%�{���i���*�>�T�*n�[��6��,�"D�g���J������y���i��u�=��ˠkK�D��1��%.��T�բ2��_9���e��s����

��!;�!]��C����A��)٦	�a
�o�p����L�kc�Ϩ�"��"�8�=?�}�I��H֩�::�ku�t�UV�^��l�Px�RɬK�Fh�Q��R�PT�A��N�E6�0|�c��5�6G�7~�.��F�D,�[q�JͱT�Rm�E��A�H�qN���ٳ��
�'�	>�@H���(��)Ҵ����
��)�>��3�s����,�lK�>��=��t5�v��F!��h������*y�c��d�Im�"��[ڼ!6�bX�o��<+�6h�\��(��/%�@U�n��-�f3���%�_@�E����`��4^�i��b��m`�8��f�n�U��:��Z�4q�4��3���5-�<c�`��+�b-�+��!��G��j&�K��!��7��:7�Er�1��c��@N�V��,��e�dy�t��fS�2��V��ID�>����0���c"���Z��o��GU�\��!��x�����Y�78�Ap�A��^��mS�0��v��i�o�u���'���� �����	,�6�K�W��_�dX�V��K�`����@��������-�
0�T;���.��_��#�3�P�a�u���L��'���6+�%b� ����-�����G�����Ok�3��)��!�*;�7f�?��;������Q��U(�~�)��!��*�� �	'�m1�
��������F��
D�R�<l����\�w�������(��m�cp���lT�r��4��J�u��jO�����-��5
�6@�$w������/K�{�8�����6m�W��Q��7N�_��H��T/�-��;��#���#�	?�I�U�]�y�3����K��2�
C�Q�SX�
��
�������o�\�T������:�]Du�aZ0��#���4)����>�`@.�E&<����!A�����-I�?��G�����"�_Y�B��;�\m�'|uC�N��,h�����I
+I�E>H��%�,F��YD��=8[eJI�����Q���H
�FM��)��5��,�o��p�c�n��Gq���C��^��p:����|)(~�Br����z�P[��uE�����X�-�r8M������W�$^Ai���Rzd�f+<H	�f��'� �N�grl���X��nL��+%�L��AO40OWD"��*�B#�7f�G��F~�Y�6 ���U��}�<����2K�J������re���,�M�v���X�=�����/��8N��3�����~��O7?k��'�����d/�!�C�3�����Jt�2��d���}�z�okp"�k�	7�Vt�
%�F|�;�*���NA����.����s0O*A>�VM�d�{%�$`�(lG]|^��*K��!/�Zh23��w�*@�99$@@]����w"��#xbmH�Q�5�n�q�c"/�4`O6�q1��� ������a��,�����_���)�3�?s�M��_��?c��8PQ:&m^	-���q����S�(:U�����-T�b>1=�
�������6��� �����#��~j���g$��X6�
���Y���jZ�Y�Gzy�i �X��H{
^@V91�}�i<\S{�fn���;�U����wC��4������$[Kj%����	����V��5yb!����4�]����P��
&�#�����&F;�p�[&��t���;�
0�9���Q�SZ�I6K�Z�J��\�sT	���a[���8����t�oBU��h��?�jl<
T�m���WQ�:i�7v5b1g���ku!�2��/5�=�W�=��\�+�_��Dh]3�V��`���S��N�e�L�����Rsx�v�'���+xS��>U�.��e2�}�Cv�PPa���E`R��y�)����g��(���_�79���ELy�.�RT�����.a0�l��WD�xb��1R
�(��L-����J{���'���B��c���Kw %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred.%s is recommended.&laquo;&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.&raquo;.htaccess Path Settings<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter DOM ReadyAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAny changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBasicBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS SettingsCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimizerClean Crawler MapClean Up Unfinished DataClean all CSS/JS optimizer data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulations, all gathered!Congratulations, all requested!Connection TestConvert to InnoDBCookie NameCookie SimulationCookie ValuesCrawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCustom SitemapDB Optimization SettingsDNS PrefetchDO NOT EDIT ANYTHING WITHIN %sDaily archiveDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDrop Domain from SitemapDrop Query StringESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.For URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all online server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate Critical CSSGenerate Critical CSS In BackgroundGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate UCSS in BackgroundGenerate unique CSS in the background via a cron-based queue.Generated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGoogle reCAPTCHA will be bypassed automatically.Groups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load ImagesLearn MoreLearn moreLeave empty to auto detectLeave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated.Link to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache Edit .htaccessLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManage CrawlerManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloudflare zoneNo cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNon-`.js` file extensions will be ignored.Not AvailableNot BlacklistNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge localized resource entries.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimizationOptimization SettingsOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptions saved.Original URLsOther checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consult the host/server admin before making any changes.Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Predefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.PrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended valueRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Noscript TagRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlacklistRemove query strings from static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save .htaccessSave ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, CSS/JS files are cached.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the backend .htaccess path.Specify the frontend .htaccess path.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The default login cookie is %s.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This option will remove all %s tags from HTML.This page is meant for advanced users.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo clear the outdated CSS/JS optimization data, please go to %s menu.To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s.Tweet previewTweet thisUCSS Whitelist SelectorURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Master commitUse latest GitHub commitUse latest WordPress release versionUse object cache functionality.Use original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebP Attribute To ReplaceWebP For Extra srcsetWebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not.You can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPYour server IP isZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.user agentsPO-Revision-Date: 2021-05-16 14:21:52+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n > 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: fr
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
il y a %sMettre en cache le bloc ESI de barre d’administration intégré.Extension %1$s version %2$s nécessaire pour cette action.%d heure%d heures%d minute%d minutes%d secondesExtension %sLe fichier %s n’est pas lisible.Le fichier %s n’est pas inscriptible.%s groupe%s groupes%s image%s images%s est recommandé, bien que ce soit pour les scripts qui sont mis en ligne que cela pose le plus de problèmes pour éviter d’être différés.%s est recommandé.« Si le cron et une exécution manuelle démarrent tous deux à des moments similaires, le premier qui démarre aura la priorité. »Réglages du chemin .htaccess<a %s>Forum de support</a> | <a %s>Soumettre un ticket</a><a href="%1$s" %2$s>Voir les détails de la version %3$s</a> ou <a href="%4$s" %5$s target="_blank">mettre à jour maintenant</a>.<b>Dernier crawlé :</b> %s élément(s)<p>Veuillez ajouter/remplacer les codes suivants dansle début de %1$s:</p> %2$sUne clé de domaine est nécessaire pour les services en ligne QUIC.cloud.Une purge de tout sera exécutée lorsque WordPress exécute ces crochets.Un TTL de 0 indique de ne pas mettre en cache.Une sauvegarde de chaque image est enregistrée avant d’être optimisée.APIAccélère la vitesse en mettant en cache Gravatar (avatars mondialement reconnus).Ajouter une nouvelle URL de CDNAjouter un nouveau cookie pour simulerAjouter à la liste noireAjout de style à vos images chargées en différéUniquement l’IP de l’adminIP d’adminAvancéRéglages avancésLe niveau avancé enregistrera plus de détails.AprèsPrêt après DOMUne fois que le serveur d’optimisation d’images QUIC.cloud a terminé l’optimisation, il demandera à votre site de tirer les images optimisées.Après vérification que le cache fonctionne en général, veuillez tester le panier.Tous les transientsToutes les catégories sont mises en cache par défaut.Toutes les pagesToutes les pages avec le widget des articles récentsToutes les étiquettes sont mises en cache par défaut.Autorise les IPs listées (une par ligne) à réaliser certaines actions depuis leurs navigateurs.Toujours vider les produits et les catégories lors d’un changement de quantité disponible ou de statut de stock.Un second paramètre facultatif peut être utilisé pour spécifier le contrôle du cache. Utilisez un espace pour séparerToutes les modifications apportées au fichier .htaccess peuvent briser le site.Ajoutez des chaînes de requête %s aux ressources pour contourner cette action.ApprouvéConfirmez-vous vouloir supprimer toutes les listes de refus existantes ?Confirmez-vous vouloir détruire toutes les images optimisées ?Confirmez-vous vouloir vider tous les nœuds du cloud ?Confirmez-vous vouloir détecter à nouveau le serveur cloud le plus proche pour ce service ?Confirmez-vous vouloir la suppression de toutes les sauvegardes d’image ?Confirmez-vous vouloir réinitialiser tous les réglages aux valeurs par défaut ?Archive d’auteurBrouillons autoCron de traction automatiqueRègles de purge automatique pour les publication/mise à jourMettre à jour automatiquementGénérer automatiquement LQIP en arrière-plan via une file d’attente basée sur cron.Générer automatiquement des CSS critiques en arrière-plan via une file d’attente à base de cron.Supprimer automatiquement les sauvegarde d’image après récupération des images optimisées.Demander automatiquement l’optimisation via tâche cron.Liste des avatars en attente de mise à jourChemin du .htaccess de l’interface d’administrationBasiqueAvantAvant de générer la clé, veuillez vérifier que toutes les IP de cette liste sont sur la liste blanche.Avantages de lier vers un compte QUIC.cloudBêta testListe de blocageBloquéMis sur liste de refus car impossible à mettre en cacheÀ la fois %1$s et %2$s sont acceptables.À la fois les URL complètes et les chaînes partielles peuvent être utilisées.Il est possible d’utiliser aussi bien des chaînes complètes que partielles.NavigateurCache navigateurRéglages du cache navigateurTTL du cache navigateurLa mise en cache du navigateur stocke les fichiers statiques localement dans le navigateur de l'utilisateur. Activez ce réglage pour réduire les requêtes répétées de fichiers statiques.Par défaut une image indicative grise %s sera utilisée.Par conception, cette option peut servir du contenu périmé. N’activez pas cette option si cela ne vous convient pas.Contourné %1$s images dupliquées.CCSSCDNBande passante de CDNRéglage du CDNURL de CDNURL de CDN à utiliser. Par exemple : %sCombiner CSSCombiner les CSS externes et en ligneCSS excluPousser CSS HTTP/2Minifier CSSRéglages CSSCache CSS/JSCache TTL CSS/JSCacheMettre en cache la barre d’administrationMettre en cache le formulaire de commentaireMettre en cache les commentateursMettre en cache les réglages de contrôleOccurrences de cacheMettre en cache les utilisateurs connectésMettre en cache la page de connexionCache manquantCache mobileRessources PHP de cacheMettre en cache l’API REST.Statistiques de cacheÉtat du cacheMettre en cache wp-adminMettre en cache favicon.icoMettre en cache les vues mobiles séparément.Mettre en cache les requêtes effectuées par les appels de l’API REST WordPress.Mettre en cache le bloc ESI de formulaire de commentaires intégré.La mise en cache de ces pages peut améliorer les performances du serveur en évitant les appels PHP inutiles.Mettre en cache cette ressource peut améliorer les performances du serveur en évitant les appels PHP inutiles.Calculer l’espace disque de sauvegardeCalculer le stockage des images originalesSauvegardes bien calculées.Impossible de créer un dossier : %1$s. Erreur : %2$sCatégorieRéglage bien modifié.Vérifier l’étatVérifier mon IP publique à partir deCochez cette option pour utiliser les configurations du site principal sur tous les sous-sites.Cocher cette option forcera la page boutique à utiliser les réglages de page d’accueil TTL.Tout nettoyerNettoyer l’outil d’optimisation de CSS/JSVider la carte du robot explorateurNettoyage des données inachevéesBien nettoyer toutes les données de l’outil d’optimisation de CSS/JS.Nettoyer tous les brouillons auto-enregistrésNettoyer toutes les révisions d’articleNettoyer tous les commentaires indésirablesTout a bien été nettoyé.Nettoyer tous les rétroliens et pingsNettoyer toutes les options de transientTous les transients ont bien été nettoyés.Nettoyer tous les commentaires mis à la corbeilleNettoyer tous les articles et pages mis à la corbeilleLes brouillons auto ont bien été nettoyés.Nettoyer les options de transient expiréesLes transients expirés ont bien été nettoyés.Les révisions d’article ont bien été nettoyées.Révisions propres plus anciennes que %1$s jour(s), à l’exclusion des %2$s dernières révisionsLes commentaires indésirables ont bien été nettoyés.Les rétroliens et pings ont bien été nettoyés.Les commentaires mis à la corbeille ont bien été nettoyés.Articles et pages mis à la corbeille bien nettoyés.Nettoyé tous les fichiers CSS critiques.Bien nettoyé les données non finalisées.Effacer le journalEffacé %1$s images non valides.Efface toutes les entrées du cache liées à ce site, <i> y compris les autres applications web </i>.Cliquez ici pour modifier.Cliquez ici pour paramétrer.Cliquez ici pour les réglagesCliquez pour effacer tous les nœuds pour une nouvelle détection.CloudflareAPI CloudflareL’API Cloudflare est définie à inactif.Cache CloudflareDomaine CloudflareZone CloudflareRéduire les chaînes de requêtesCombinez les fichiers CSS et le code CSS en ligne.Combiner tous les fichiers JS locaux en un seul fichier.Les commentaires sont pris en charge. Commencez une ligne avec un %s pour la transformer en ligne de commentaire.Bien communiqué avec Cloudflare.Félicitations, tous recueillies !Félicitations, tous demandées !Test de connexionConvertir en InnoDBNom de cookieSimulation de cookieValeurs de cookieIntervalle de crawlCrawlerCron du crawlerRéglages généraux du robot explorateurRéglages de simulation du robot explorateurRéglages de plan de site du robot explorateurÉtat du robot explorateurRobot(s) explorateur(s)Les robots explorateurs ne peuvent pas s’exécuter simultanément.Créer les versions WebPCréez un article, assurez-vous que la page d’accueil est exacte.Créé avec ❤️ par l’équipe LiteSpeed.CSS critiqueRègles CSS critiquesNom du cronContenus actuel de %sNœuds cloud actuels en serviceIP actuelles du serveur en ligneLe serveur Cloud le plus proche est actuellement %s.&#10; Cliquez pour le détecter à nouveau.Le serveur Cloud le plus proche est actuellement %s.&#10;Cliquez pour le redétecter.Le crawler actuel a démarré leLa limite actuelle estL’heure actuelle du serveur est %s.Le crawl de plan de site actuel a commencé leL’état actuel est %1$s depuis %2$s.L’état actuel est %s.Robot explorateur actuellement actifPlan de site personnaliséRéglages d’optimisation de la BDDPré-chargement des DNSNe rien modifier à l’intérieur de %sArchive quotidienneBase de donnéesOptimiseur de base de donnéesRésumé de la base de donnéesConvertisseur de moteur de table de base de donnéesBase de données à utiliserJour(s)Niveau de débogageJournal de débogageRéglages de débogageL’URL de débogage exclutL’URL de débogage comprendPar défautFlux TTL par défautTTL de page d’accueil par défautDurée de vie de l'objet par défautTTL cache privé par défautDurée de vie par défaut du cache publiqueTTL par défaut pour les objets mis en cache.Le port par défaut pour %1$s est %2$s.Valeur par défautDifféréDélaiSupprimer toutes les sauvegardes des images originalesDétruire toutes les données d’optimisationBien détruire toutes les données d’optimisation.Détermine comment les modifications dans les quantités de produit et états de stock de produit affecte les pages de produit et leurs pages de catégorie associés.Mode développementLe mode développement sera automatiquement désactivé après trois heures.Le mode développement sera automatiquement désactivé dans %s.DésactiverDésactiver toutes les fonctionnalitésDésactivez l’intervalle de battement de cœur de WordPress pour réduire la charge du serveur.D&eacute;sactiv&eacute;Fichier WebP bien désactivé.Désactiver cela peut entraîner l’arrêt des tâches WordPress déclenchées par AJAX.Désactiver cette option aura un effet négatif sur la performance.Désactiver cela stoppera la tâche cron responsable de la récupération des images optimisées à partir du serveur d’images QUIC.cloud.IgnorerIgnorer cette notificationNe pas mettre en cache les catégoriesNe pas mettre en cache les cookiesNe pas mettre en cache les groupesNe pas mettre en cache les chaînes de requêteNe pas mettre les rôles en cacheNe pas mettre en cache les étiquettesNe pas mettre en cache les URINe pas mettre en cache les agents utilisateurNe pas purger les catégories lors de modification de quantité ou d’état de stock.Cela peut aider à réduire la contention des ressources et à améliorer les performances.DomaineSupprimer le domaine du plan de siteSupprimer la chaîne de requêteESINonces d’ESIRéglages ESIESI vous permet de désigner des parties de votre page dynamique comme des fragments séparés qui sont ensuite assemblés pour créer la page entière. En d’autres termes, ESI vous permet de « percer des trous » dans une page, puis de remplir ces trous avec un contenu qui peut être mis en cache en privé, mis en cache publiquement avec son propre TTL ou non mis en cache du tout.Exemple d’ESI pour les développeursModifier .htaccessÉditeur HeartbeatÉditeur Heartbeat TTLLes éléments avec l’attribut %s dans le code html seront exclus.Adresse de messagerieVider tout le cacheVider la liste de refusActivez la fonctionnalité %s de l’API du CDN.Activer la mise en cacheActiver ESIActiver le remplacement de WebP dans les éléments %s qui ont été générés en dehors de la logique WordPress.Activez cette option si vous utilisez HTTP et HTTPS sur le même domaine et que vous remarquez des irrégularités de cache.Activé(e)Fichier WebP bien activé.Activer ici LiteSpeed Cache pour WordPress active le cache pour le réseau.Raison pour laquelle c’est terminéMoteurSaisissez l'adresse IP de ce site pour permettre aux services de cloud d'appeler directement l’IP au lieu du nom de domaine. Cela permet d’éviter les surcharges des consultations DNS et CDN.Chaque minuteExempleExemple d’utilisation :Les exemples de cas d’essai incluent :Exclure le cheminRéglages d’exclusionExclureTransients expirésExporterExporter les réglagesÉchouéeÉchec de sauvegarde du fichier %s, modifications interrompues.Échec de communication avec CloudflareÉchec de la création de la table Avatar. Veuillez suivre les conseils <a %s>de création de tableau du wiki LiteSpeed</a> pour terminer la configuration.Impossible de créer la table Optimizer. Veuillez suivre <a %s>le guide de création de table du wiki LiteSpeed</a> pour finir la configuration.Échec de récupération du contenu du fichier %s.Échec de la requête via WordPressÉchec de mise à niveau.Impossible d'écrire sur %s.Utilisation de la file d’attente rapideLe fichier %s n’est pas inscriptible.Fichier sauvegardé.L’édition de fichiers est désactivée dans votre configuration.FichiersLe filtre %s est supporté.Le dossier n’existe pas : %sLe dossier n’est pas inscriptible : %s.Pour les URL avec des jokers, il peut y avoir un retard dans le lancement de la purge planifiée.Par exemplePar exemple, %1$s définit un TTL de %2$s secondes pour %3$s.Par exemple, %s peut être utilisé pour un texte indicatif transparent.Par exemple, pour %s, %s et %s peuvent être utilisés ici.Par exemple, pour %s, %s peut être utilisé ici.Par exemple, si chaque page du site a un formatage différent, saisissez %s dans la case. Des fichiers CSS critiques distincts seront stockés pour chaque page du site.Par exemple, si la page d’accueil du site est située %1$s, la page de la boutique peut être située %2$s.Par exemple, pour supprimer les paramètres commençant par %s, %s peut être utilisé ici.Pour que les services en ligne fonctionnent correctement, vous devez inscrire sur une liste d’acceptation toutes les adresses IP des serveurs en ligne.Pour cette raison, veuillez tester le site pour vous assurer que tout fonctionne encore correctement.Forcer la mise en cache des URLForcer le cronMise en cache forcéePage de gardeChemin .htaccess sur interface publiqueRecueillir les données des images%d images bien collectées.GénéralRéglages générauxGénérer le CSS critiqueGénérer le CSS critique en arrière-planGénérer LQIP en arrière-planGénérer un lien pour l’utilisateur actuelGénérer l’UCSSGénérer l’UCSS en arrière-planGénérer un CSS unique en arrière-plan via une file d’attente basée sur le cron.Généré dans %sLes liens générés peuvent être gérés dans <a %s>Réglages</a>.Obtenez-le à partir de <a %1$s>%2$s</a>.Clé d’API CloudflareGroupes globauxAller au tableau de bord QUIC.cloudAller à la liste des extensionsGoogle reCAPTCHA sera automatiquement contourné.Groupes mis en cache au niveau du réseau.HôteAttribut HTML à remplacerMinifier  le HTMLSources HTTPS uniquement.Battement ce cœurContrôle des battements de cœurMise en cache des pages haute performance et optimisation du site à partir de LiteSpeedOccurrencesPage d’accueilHébergeurComment corriger les problèmes dus à l’optimisation du CSS/JS.Cependant, il n’y a aucun moyen de connaître toutes les personnalisations possibles qui ont été mises en œuvre.Le htaccess ne correspondait pas à l’option de configuration.La règle htaccess est : %sJ’ai déjà laissé une évaluationSi %1$s est %2$s, alors %3$s doit être renseigné !Si activé, une copie périmée de la page en cache sera affichée au visiteur jusqu’à ce qu’une nouvelle copie de cache soit disponible. Réduit la charge du serveur pour les visites suivantes. Si désactivé, la page sera générée dynamiquement pendant que le visiteur attend.Si chaque application web utilise le même cookie, le serveur pourrait ne pas savoir si l’utilisateur est connecté.Si non, veuillez vérifier le réglage dans l’<a href="%1$s">onglet Avancé</a> .Si seul le site WordPress doit être purgé, utilisez « Tout purger ».Si défini à %1$s, avant que le texte indicatif ne soit localisé, la configuration %2$s sera utilisée.Si défini sur %s, cela se fait au premier plan, ce qui peut ralentir le chargement de la page.Si le nom de la catégorie n’est pas trouvé, la catégorie sera retirée de la liste lors de l’enregistrement.Si le cookie de connexion a été modifié récemment dans les réglages, veuillez vous déconnecter et vous reconnecter.Si l’identifiant d’étiquette n’est pas trouvé, l’étiquette sera retirée de la liste à l’enregistrement.S’il y a des questions, l’équipe est toujours heureuse d’y répondre sur le<a %s>forum de support</a>.Si vous configurez une valeur de moins de 30, les flux RSS ne seront pas mis en cache.Si vous utilisez OpenLiteSpeed, le serveur doit être redémarré une fois pour que les modifications prennent effet.Si vous utilisez plusieurs domaines pour un site et que vous avez plusieurs domaines dans le plan du site, veuillez laisser cette option désactivée afin que le robot explorateur sache qu’il doit explorer chaque domaine.Si vous rencontrez des problèmes, veuillez vous reporter au numéro de rapport dans votre message de support.Si vous désactivez un des réglages ci-dessus, veuillez supprimer les types de fichiers correspondants de la boîte %s.Si vous préférez ne pas avoir des affichages à la vitesse de la lumière, vous pouvez désactiver cette extension.Si votre site contient du contenu public que certains rôles utilisateur peuvent voir, mais que d’autres rôles ne peuvent pas, vous pouvez spécifier un groupe variable pour ces rôles utilisateur. Par exemple, la spécification d’un groupe variable par l’administrateur permet d’avoir une page distincte en cache publique adaptée aux administrateurs (avec des liens "modifier", etc.), tandis que tous les autres rôles utilisateur voient la page publique par défaut.Les iframes contenant ces noms de classe ne seront pas chargées en différé.Les iframes ayant ces noms de classe parent ne seront pas chargées en différé.Ignorez certaines chaînes de requête lors de la mise en cache. (%s LSWS nécessaire)Groupes d’images préparésInformation d’imageOptimisation d’imageRéglages d’optimisation des imagesRésumé d’optimisation des imagesDimensions de groupe de la miniature d’imageRemplacement de l'image WebPFichiers image manquantsImages tiréesImages demandéesLes images contenant ces noms de classes ne seront pas chargées en différé.Les images n'ont pas pu être récupéréesTirage des images échouéImages qui ont échoué avec d’autres erreursLes images ayant ces noms de classe de parent ne seront pas chargées en différé.Images non demandéesImages non encore recueilliesImages pas encore demandéesImages notifiées à tirerImages optimisées et tiréesImages précédemment optimiséesImages demandéesImages totalesLes images seront tirées automatiquement si la tâche cron est en cours d’exécution.Images avec fausse métaImporterImporter/exporterImporter des réglagesÉchec de l’import du à une erreur fichier.Fichier de réglages %s bien importé.Améliorer la compatibilité HTTP/HTTPSAméliorez la vitesse de wp-admin grâce à la mise en cache. (peut rencontrer des données expirées)Amélioré parInclure le CSSInclure les types de fichierInclure les imagesInclure le JSInclure les CSS externes et les CSS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par CSS Combine.Inclure les JS externes et les JS en ligne dans le fichier combiné lorsque %1$s est également activé. Cette option aide à maintenir les priorités d’exécution du JS, ce qui devrait minimiser les erreurs potentielles causées par JS Combine.Inclure la bibliothèque JavaScript de chargement progressif de l’image en ligne.Répertoires inclusLibrairie CSS Async en ligneBibliothèque de chargement progressif d’images en ligneInstallerInstaller %sInstaller DoLogin SecurityInstaller maintenantClic instantanéIntervalle entre chaque exécutionIP non valideCookie de connexion non valide. Caractères non valides trouvés.Cookie de connexion non valide. Veuillez vérifier le fichier %s.Règle de réécriture non valideIl est <b>fortement</b> recommandé que la compatibilité avec d’autres extensions de d’abord tester sur un seul/quelques sites.Ce sera converti à la volée en un texte indicatif base64 SVG.Combiner JSCombiner les JS externes et en ligneDifférer le JSJS différé exclutJS excluPousser JS HTTP/2Minifier JSRéglages JSRejoindre la communauté Slack LieteSpeedRejoignez-nous sur SlackRejoignez la communauté %s.N’utilisez pas cette option pour utiliser des textes indicatifs en couleur.Cache LQIPGénérateur de cloud de LQIPLQIP exclutDimensions minimales de LQIPQualité de LQIPLes requêtes LQIP ne seront pas envoyées pour les images dont la largeur et la hauteur sont inférieures à ces dimensions.LSCacheLes fonctions de mise en cache de LSCache sur cette page sont actuellement indisponibles !Un plus grand nombre générera une meilleure qualité de résolution de remplacement, mais donnera lieu à des fichiers plus volumineux qui augmenteront la taille des pages et consommeront plus de points.Plus grand queDernier tirageDernière requêteDernier calculéDurée de dernière exécution complète pour tous les robots explorateursDernier exportéDernier généréDernier importéDernier intervalleDernier tirage initié par cron à %s.Dernière exécutionDernière demandeDernier coût demandéChargement différé des iframesLe nom de la classe d’image de chargement différé exclutExclut l’image du chargement lentChargement différé des imagesApprendre plusApprendre plusLaisser vide pour la détection automatiqueLaissez cette option %1$s pour autoriser la communication avec le service QUIC.cloud CCSS. Si défini à %2$s, le CSS critique ne sera pas généré.Lier à QUIC.cloudListe des agents utilisateurs mobileÉnumérer les types de publication où chaque élément de ce type devrait avoir son propre CCSS généré.Indiquez au sélecteur CSS que son style doit toujours être contenu dans l’UCSS.Les fichiers CSS listés ou le code CSS en ligne ne seront pas minifiés/combinés.Les fichiers JS listés ou le code JS en ligne ne seront pas différés.Les fichiers JS listés ou le code JS en ligne ne seront pas minifiés/combinés.Les images listées ne seront pas chargées lentement.LiteSpeed CacheCDN LiteSpeed CacheCrawler LiteSpeed CacheTableau de bord LiteSpeed CacheOptimisation de la base de données LiteSpeed CacheModifier le .htaccess LiteSpeed CacheRéglages généraux de LiteSpeed CacheOptimisation d’image LiteSpeed CacheRéglages de cache de réseau LiteSpeed CacheOptimisation des pages de LiteSpeed CacheCache LiteSpeed Tout purgerRéglages LiteSpeed CacheBoîte à outils LiteSpeed CacheL’extension LiteSpeed Cache est installée !Mise à niveau réussie de LiteSpeed Cache. Note : en raison de modifications dans cette version, les réglages %1$s et %2$s ont été désactivés. Veuillez les réactiver manuellement, puis vérifier que la mise en page de votre site est correcte et que vous n’avez aucune erreur JS.Optimisation de LiteSpeedRapport LiteSpeedTechnologies LiteSpeedCharger le CSS de manière asynchroneCharger les Google Fonts de manière asynchroneCharger le JS en diféréChargez les iframes uniquement lorsqu'elles entrent dans la fenêtre d'affichage.Charger les images uniquement lorsqu’elles entrent dans la fenêtre d’affichage.Le chargement du JS en ligne après le chargement complet du DOM peut augmenter la compatibilité JS et réduire les erreurs JS lorsque d’autres fonctionnalités d’optimisation JS sont activées.LocalisationFichiers de localisationRéglages de localisationLocaliser les ressourcesLocaliser les ressources externes.Ressources localiséesActiver les cookiesLimite de taille de fichier journalVue du journalValeurs de cookie de demande de journal.Cookie de connexionTexte indicatif d’image de faible qualitéMoDoit être unique d’autres applications web.GérerGérer le robot explorateurExécution manuelleCarteMarquer cette page commeValeur maximalePeut-être ultérieurementPeut-être plus tardMédias exclusRéglages des médiasMéthodeMinimiser les fichiers CSS et le code CSS en ligne.Minifier le contenu HTML.Minifier les fichiers JS et les codes JS en ligne.Valeur minimaleManquerArchive mensuellePlus d’informations sur les commandes disponibles peuvent être trouvées ici.Plus de réglagesD’autres réglages sont disponibles dans le menu %sRemarqueNotificationRemarque :Remarque : le cookie de connection de base de données ne correspond pas à votre cookie de connexion.Tableau de bord du réseauActiver le cache sur le réseauNouvelle version développeur disponible !Nouvelle version disponible !La nouvelle version développeur %s est disponible dès maintenant.La nouvelle version %s est maintenant disponible.Prochaine heure de demande disponible : <code>après %s</code>Aucune zone Cloudflare disponibleAucun service cloud n’est actuellement utiliséEncore aucun fichier méta de crawler généréAucune nouvelle image recueillie.Aucune optimisationAucun espace et sensible à la casse.Aucune image valide trouvée par le serveur cloud dans la demande actuelle.Aucune image valide trouvée dans la demande actuelle.Aucun plan de site valide n’a été analysé par le robot explorateur.Impossible à mettre en cacheLes extensions de fichiers autres que « .js » seront ignorées.Non disponiblePas sur liste de refusRemarqueRemarquesNotificationNotificationsBien notifié Cloudflare de tout purger.Bien notifié Cloudflare de définir le mode développement à %s.Serveur web LiteSpeed notifié de purger les entrées CSS/JS.Serveur web LiteSpeed notifié de purger toutes les entrées LSCache.Notifié le serveur web LiteSpeed de purger toutes les pages.Notifié LiteSpeed ​​Web Server de purger les pages d'erreur.Serveur LiteSpeed notifié pour tout purger.Notifié LiteSpeed Web Server pour purger les entrées de ressources localisées.LiteSpeed Web Server a été notifié de purger la page d’accueil.Serveur LiteSpeed notifié pour tout purger.InactifActifOuObjetMise en cache d’objetRéglages du cache objetCache d’objet non activé.Une fois enregistré, il sera harmonisé avec la liste actuelle et complété automatiquement.Une ou plusieurs images tirées ne correspondent pas à l’image md5 notifiéeUne par ligne.Ne seront remplacés uniquement les attributs listés ici.Uniquement disponible lorsque %s est installé.Activer uniquement pour AMP ou la conception/contenu spécifique mobile, pas pour les sites responsive.Uniquement les fichiers de ces répertoires seront dirigés vers le CDN.Journaliser uniquement les pages répertoriées.N'appuyez sur le bouton que si la tâche cron de tirage est désactivée.Cache OpcodeLe cache opcode n’est pas activé.Utilisateurs d’OpenLiteSpeed, veuillez vérifier ceciOpérationOptimisationRéglages d’optimisationÉtat de l’optimisationRésumé d’optimisationOutils d’optimisationOptimiser la livraison CSS.Optimiser sans perteOptimiser les images originalesOptimiser les tablesOptimiser toutes les tables dans votre base de donnéesOptimiser les images et enregistrer les sauvegardes des originaux dans le même dossier.Optimiser les images en utilisant la compression sans perte.Optimiser les images avec notre serveur QUIC.cloudLe fichier WebP optimisé a expiré et a été effacé.Optimisé toutes les tables.Nom de l’optionFacultatifOptions enregistrées.URL originalesLes autres cases à cocher seront ignorées.Notre %s n’était pas en liste d’acceptation.Sorties du journal de débogage WordPress.Solde du paiement au fur et à mesureTemps de chargement de la pageScore PageSpeedPagesRéussieMot de passeLien de connexion sans mot de passeLe chemin doit finir par %sLes chemins contenant ces chaînes de caractères seront mis en cache sans tenir compte des réglages de non mise en cache.Les chemins contenant ces chaînes de caractères seront forcés à être mis en cache public, indépendamment des réglages qui ne peuvent pas être mis en cache.Les chemins contenant ces chaînes de requête ne seront pas mis en cache.Les chemins contenant ces chaînes ne seront pas servis par le CDN.Paiement au fur et à mesureStatistiques sur l’utilisation du paiement au fur et à mesureConnexion persistanteVeuillez consulter l’administrateur d’hébergement/serveur avant d’effectuer des modifications.Veuillez ne pas partager le lien sans mot de passe ci-dessus avec qui que ce soit.Veuillez activer LiteSpeed Cache dans les réglages de l’extension.Veuillez activer le module LSCache au niveau du serveur ou demandez à votre hébergeur.Veuillez voir <a %s>Connexion de WP-Cron au planificateur de tâches du système</a> pour apprendre comment créer le système de tâche cron.Veuillez effectuer un test approfondi lorsque vous activez une option dans cette liste. Après avoir modifié les réglages Minifier/Combiner, veuillez faire une purge totale.Veuillez vérifier que vos autres extensions ne bloquent pas les appels à l’API REST, mettez nos adresses IP sur une liste d’acceptation ou contactez l’administrateur/administratrice de votre serveur pour obtenir une assistance.Veuillez visiter la page <a %s>d’informations</a> sur la façon de tester le cache.PortID de l’articleRévisions d’articleArchive de type de contenuPré-envoyer des fichiers CSS internes au navigateur avant qu’ils ne soient demandés. (nécessite le protocole HTTP/2)Pré-envoyer des fichiers JS internes au navigateur avant qu’ils ne soient demandés. (nécessite le protocole HTTP/2)La liste prédéfinie sera également combinée avec les réglages ci-dessus.Le pré-chargement des DNS peut réduire la latence pour les visiteurs.Conserver les données EXIF (copyright, GPS, commentaires, mots clés, etc.) lors de l'optimisation.Conserver les données EXIF/XMPCliquez sur le bouton %s pour stopper le test bêta et revenir à la version actuelle depuis le répertoire des extensions WordPress.Appuyez sur le bouton %s pour utiliser le commit GitHub le plus récent.Empêcher les polices Google de charger sur toutes vos pages.Empêcher tout journal de débogage des pages listées.Empêcher tout chargement différé des pages listées.Empêche toute optimisation des pages listées.PrivéCache privéOccurrence du cache privéURI mises en cache privéesCaches privésCache privéMettre en cache privé le panierMettre en cache privé le panier lorsqu'il n'est pas vide.Mettre en cache privé les commentateurs qui ont des commentaires en attente. La désactivation de cette option servira les pages ne pouvant pas être mises en cache aux commentateurs. (LSWS %s nécessaire)Mettre en cache privé les pages interface utilisateur pour les utilisateurs connectés. (LSWS %s nécessaire)Intervalle de mise à jour de produitPubliqueCache publicOccurrences du cache publicCaches publicsLe tirage du cron est en cours d’exécutionTirer les imagesExtrait %d image(s)L’image WebP md5 tirée ne correspond pas à l’image WebP md5 notifiée.PurgerPurger les erreurs %sPurger les erreurs 500Tout purgerPurger tous les crochetsTout purger lors d'une mise à niveauPurger par…Tout purgerPurger la page d’accueilPurger la listePurger les pagesPurger les réglagesTout purger et netppoyer toutes les données minifiées/combinées.Bien purger tous les caches d’objets.Purger tous les caches d'objetsPurger les catégories uniquement quand l’état du stock change.Purger la catégorie %sPurger les pages d’erreur, y compris les pages %sPurger les pages d’erreur, y compris les pages 500Purger les pages par nom de catégorie - par exemple,%2$s devrait être utilisé pour l’URL%1$s.Purger les pages par ID d’article.Purger les pages par URL relative ou complète.Purger les pages par nom d’étiquette - par ex.,%2$s devrait être utilisé pour l’URL %1$s.Purger les produits et catégories uniquement quand l’état du stock change.Purger le produit au changement de la quantité ou de l’état du stock.Purger le produit uniquement quand l’état du stock change.Purger l'étiquette %sPurger les entrées LiteSpeed Cache créées par cette extensionPurger les entrées de cache créées par cette extension à l’exception des caches CSS et LQIP critiquesPurger cette pagePurger l’URL %sTout purgé !Tous les caches ont bien été purgés.Purgé le blog !Purgé l’url !Purgé !%1$s poussées vers le serveur Cloud, %2$s acceptées.QUIC.cloudCDN QUIC.cloudStatistiques sur l’utilisation des services QUIC.cloudLes chaînes de requête contenant ces paramètres ne seront pas mises en cache.File d’attente bien vidée.Évaluer %s sur %sLire la documentation LiteSpeedValeur recommandéeValeur recommandée : 28800 secondes (8 heures).ID de base de données RedisActualiser la carte du robot explorateurActualiser la clé de domaineActualiser le cache  Gravatar par cron.Actualiser le temps de chargement des pagesActualiser le score de la pageSupprimer l’URL du CDNRetirer les polices GoogleRetirer les balises NoscriptSupprimer les sauvegardes d’originalesSupprimer les sauvegardes de l’image originaleRetirer les chaînes de requêteRetirer les emoji WordPressSupprimer toutes les requêtes/résultats d'optimisation d'image précédentes, annulez les optimisations terminées et supprimer tous les fichiers d'optimisation.Supprimer toutes les requêtes d’optimisation d’images inachevées.Supprimer la simulation de cookieRetirer de la liste de refusRetirer les chaînes de requête des ressources statiques.Sauvegardes bien supprimées.Remplacer %1$s avec %2$s.RapportDate de rapportNuméro de rapportDemander la clé du domaineDemander les versions WebP des images originales lors de l’optimisation.Demande envoyée. Veuillez patienter, puis actualisez la page pour voir la notification d’approbation.DemandéDemandes en file d’attenteScanner à nouveau les nouvelles miniatures%d images ont bien été réanalysées.Bien été réanalysées.Réinitialiser tous les réglagesRéinitialiser les réglagesRéinitialiser la positionRéinitialisation effectuée.Réinitialiser l’intégralité du cache opcodeBien réinitialiser l’ensemble du cache opcode.Bien réinitialiser les données optimisées.Les ressources des domaines énumérés ici seront copiées et remplacées par des URL locales.Texte indicatif responsiveLes textes indicatif d’image responsive peuvent aider à réduire le remaniement de la mise en page lorsque les images sont chargées.Fichier original bien restauré.Les résultats peuvent être vérifiés dans la <a %s> bibliothèque des médias</a>.Âge maximal des révisionsNombre maximum de révisionsLes révisions plus récentes que ce nombre de jours seront conservées lors du nettoyage des révisions.Rôle excluSimulation de rôleDurée d’exécutionFréquence d’exécutionExécuter la file d’attente manuellementLa fréquence d’exécution est définie par le réglage d’intervalle entre exécutions.Durée d’exécution du précédent robot explorateurEn cours d’exécutionSyntaxe : alphanumérique et "_".Enregistrer le .htaccessEnregistrer les modificationsEnregistrer les transients dans la base de données lorsque %1$s est %2$s.EnregistréRechercher toute nouvelle taille de miniature d'image non optimisée et renvoyez les requêtes d'optimisation d'image nécessaires.Heure de purge planifiéePurge planifiée d’URLsVoyez <a %s>Introduction pour l’activation du robot explorateur</a> pour les informations détaillées.Sélectionnez "Tous" s'il y a des widgets dynamiques liés aux articles sur les pages autres que la page d’accueil.Sélectionnez ci-dessous pour les options « purger par ».Sélectionnez uniquement les types d'archives qui sont actuellement utilisées, les autres peuvent être laissées décochées.Sélectionnez quelles pages seront purgées automatiquement lorsque des articles sont publiés/mis à jour.Les rôles sélectionnés seront exclus de toutes les optimisations.Les rôles sélectionnés seront exclus du cache.Envoyer une requête d’optimisationEnvoyez ce rapport à LiteSpeed. Référez-vous à ce numéro de rapport lorsque vous publiez sur le forum de support WordPress.Envoyer à LiteSpeedSéparer le cache du CCSS par type de publication.Séparer les URL de ca CCSSDes fichiers CSS critiques distincts seront générés pour les chemins contenant ces chaînes.Servir le périméServir tous les fichiers CSS via le CDN. Cela affectera tous les fichiers CSS WP en file d’attente.Servir tous les fichiers JavaScript via le CDN. Cela affectera tous les fichiers JavaScript WP en file d’attente.Servir tous les fichiers d’image via le CDN. Cela affectera toutes les pièces jointes, les balises HTML %s et les attributs CSS %s.IP du serveurLimite de chargement du serveurValeur max. de serveur autoriséeValeur min. de serveur autoriséeValeur imposée par le serveurVariable·s de serveur %s disponible·s pour surpasser ce réglage.Définissez ceci pour ajouter %1$s à toutes les règles %2$s avant de mettre en cache le CSS pour spécifier comment les polices doivent être affichées lors du téléchargement.Réglez sur %1$s pour interdire les battements de cœur sur %2$s.Paramétrage des en-têtes personnalisésRéglagesRaccourcir les chaînes de requêtes dans le journal de débogage pour améliorer la lisibilité.Afficher l’état du crawlerAméliorez significativement le temps de chargement en remplaçant les images par leurs versions %s optimisées.Réglages de simulationL’URL du site à servir via le CDN. À partir de %1$s. Par exemple : %2$s.Site non reconnu. La clé de domaine a été automatiquement supprimée. Veuillez en demander une nouvelle.Liste du plan du siteRéglages du plan du siteDélai d’attente du plan du siteTotal du plan de siteTailleListe des tailles dans la file d’attente en attente de cronPlus petit queCertains fichiers d’image optimisés ont expiré et ont été effacés.Certains thèmes et extensions ajoutent des ressources par requête PHP.Commentaires indésirablesSpécifiez le nombre de threads à utiliser lors du crawl.Précisez une image base64 à utiliser comme indicative pendant que les autres images terminent de charger.Spécifiez un code d’état HTTP et le nombre de secondes pour mettre cette page en cache, séparés par un espace.Spécifiez un SVG à utiliser comme texte indicatif lors de la génération en local.Spécifiez les règles CSS critiques pour le contenu au-dessus du pli lorsque vous activez %s.Spécifiez combien de temps en secondes avant que le crawler initie un nouveau crawl entier du plan de site.Spécifiez combien de temps, en secondes, les fichiers CSS/JS sont mis en cache.Spécifiez combien de temps, en secondes, les fichiers Gravatar sont mis en cache.Précisez combien de temps, en secondes, les appels REST sont mis en cache.Spécifiez une durée en secondes, pour la mise en cache des flux RSS.Spécifiez combien de temps, en secondes, les pages privées sont mises en cache.Spécifiez combien de temps, en secondes, les pages publiques sont mises en cache.Spécifiez combien de temps, en secondes, la page d’accueil est mise en cache.Précisez l’intervalle de battement de cœur de %s en secondes.Précisez le chemin d'accès de l’interface d’administration au .htaccess.Précisez le chemin d'accès de l’interfeace publique au .htaccess.Précisez la taille maximale du fichier journal.Précisez le nombre de révisions les plus récentes à conserver lors du nettoyage des révisions.Précisez le mot de passe utilisé pour la connexion.Précisez la qualité lors de la génération du LQIP.Précisez la couleur SVG du texte indicatif responsive.Précisez l’heure pour purger la liste "%s".Précisez le délai d’attente lors de l’exploration de chaque URL.Précisez le délai d’attente lors de l’analyse du plan du site.Spécifiez le temps en microsecondes pour le délai entre requêtes durant une exploration.Spécifiez le temps en secondes pour la durée de l’intervalle de crawl.Précisez le temps en secondes pour le temps entre chaque intervalle d’exécution.Spécifiez quels attributs des éléments HTML seront remplacés avec CDN Mapping.Spécifiez quels attributs d’élément seront remplacés avec WebP.Liens de type de fichier statique à remplacer par des liens CDN.ÉtatStopper le chargement d’emoji WordPress.org. Les emojis par défaut du navigateur seront affichés à la place.Optimisation du stockageStockez Gravatar localement.Stocker les transientsRésuméBien sûr que j’adorerais évaluer !ÉchangerRevenir à l’utilisation d’images optimisées sur votre siteCommutation d’image réussie.Commuté pour bien optimiser le fichier.Synchroniser les données depuis le CloudInformations systèmeTTLTableauÉtiquetteIgnorer temporairement le cache Cloudflare. Cela permet de voir en temps réel les modifications apportées au serveur d'origine.Archive de terme (inclure catégorie, étiquette et taxinomie)Merci d’utiliser l’extension LiteSpeed Cache !L’option IP d’admin ne génère que des messages de journalisation sur les requêtes provenant des IPs d'admin.L’extension LiteSpeed ​​Cache est utilisée pour mettre les pages en cache - un moyen simple d’améliorer les performances du site.Le rappel de publication vers %s a échoué.Les URLs ci-dessus (une par ligne) seront automatiquement purgées à l’heure fixée dans l’option "%s".Ces URLs seront comparées à la variable serveur REQUEST_URI.Les nonces ci-dessus seront automatiquement convertis en ESI.La durée, en secondes, pendant laquelle les fichiers seront stockés dans le cache du navigateur avant d’expirer.Le cache doit faire la distinction de qui est connecté dans quel site WordPress afin de mettre en cache correctement.Le cookie réglé ici sera utilisé pour cette installation WordPress.Le robot d'exploration peut utiliser votre plan de site Google XML au lieu du sien. Saisissez l’URL complète de votre plan de site ici.La fonctionnalité de robot explorateur n’est pas activée sur le serveur LiteSpeed. Veuillez consulter votre administrateur serveur ou votre hébergeur.Le robot explorateur analyse le plan du site et le sauvegarde dans la base de données avant l’exploration. Lors de l’analyse du plan du site, l’abandon du domaine peut permettre d’économiser du stockage en base de données.Le cookie de connexion par défaut est %s.Le rapport d’environnement contient des informations détaillées sur la configuration WordPress.Les options suivantes sont sélectionnées, mais ne sont pas modifiables dans la page des réglages.Le réglage de la qualité de compression d’image de WordPress sur 100.Le dernier fichier de données estLa liste sera fusionnée avec les nonces prédéfinis dans votre fichier de données local.Les journaux seront sortis en %s.La charge moyenne maximale du serveur est autorisée lors de l’exploration. Le nombre de threads de robot explorateur en cours d’utilisation sera activement réduit jusqu'à ce que la charge moyenne du serveur tombe sous cette limite. Si cela ne peut pas être réalisé avec un seul thread, l’exécution du robot explorateur actuel sera terminée.L’administrateur réseau sélectionné utilise les configurations du site principal pour tous les sous-sites.Le réglage administrateur réseau peut être remplacé ici.Le prochain crawl complet de plan de site débutera leLe serveur déterminera si l’utilisateur est connecté grâce à l'existence de ce cookie.Le réglage %s est actuellement activé.Le site n’est pas enregistré sur QUIC.cloud.Ensuite, un autre WordPress est installé (non multisite) sur %sIl y a deux raisons pour lesquelles nous pourrions ne pas être en mesure de communiquer avec votre domaine :Il y a une installation de WordPress pour %s.Il y a une file d’attente qui n’est pas encore tirée. Informations sur la file d’attente : %s.Un problème est survenu lors de la récupération de votre clé de domaine. Veuillez cliquer sur le bouton %s pour réessayer.Ces images ne génèrent pas de LQIP.Ces options sont uniquement disponibles avec LiteSpeed Enterprise Web Server ou QUIC.cloud CDN.Ces réglages sont uniquement destinés à des utilisateurs avancés.Utilisation de ce moisCette action doit être utilisée uniquement si les éléments sont incorrectement mis en cache.Ça peut être géré à partir de <a %2$s>%1$s</a>.Cela peut être défini dans %2$s comme utilisant la constante %1$s, en prenant ce réglage en priorité.Cela peut améliorer le temps de chargement de la page en réduisant les requêtes HTTP initiales.Cela peut améliorer la qualité, mais peut entraîner des images plus grandes que la compression avec perte.Cela peut améliorer la vitesse de chargement des pages.Cela peut améliorer votre score de vitesse dans des services tels que Pingdom, GTmetrix et PageSpeed.C’est irréversible.C’est pour tester la compatibilité avant d’activer le cache pour tous les sites.Cela peut entraîner une charge importante sur le serveur.Ce message indique que l’extension a été installée par l’administrateur du serveur.Cette option fonctionne uniquement si %1$s est %2$s.Cette option retirera toutes les balises %s du HTML.Cette page est destinée aux utilisateurs avancés.Ce processus est automatique.Ce réglage est surchargé par le réglage du réseauCe réglage est surchargé par le réglage du site principalCe réglage est utile pour ceux qui ont plusieurs applications web avec le même nom de domaine.Ce réglage modifiera le fichier .htaccess.Ce site utilise la mise en cache afin de faciliter un temps de réponse plus rapide et une meilleure expérience utilisateur. La mise en cache stocke potentiellement une copie de chaque page web affichée sur ce site. Tous les fichiers de cache sont temporaires et ne sont jamais accessibles à un tiers, sauf si cela est nécessaire pour obtenir le support technique du fournisseur de l’extension de cache. Les fichiers cache expirent selon une planification fixée par l’administrateur du site, mais peuvent facilement être purgés par l’administrateur avant leur expiration naturelle, si nécessaire.Cela purgera uniquement la page d’accueilCela purgera uniquement les pagesCela va affecter toutes les balises contenant les attributs : %s %s %s.Cela ajoutera également une préconnexion à Google pour un téléchargement plus rapide de Google Fonts.Cela générera également une clé d’API à partir du serveur LiteSpeed.Cela effacera tout dans le cache.Cela supprimera tous les fichiers Gravatar mis en cacheCela supprimera tous les fichiers CSS critiques générésCeci supprimera tous les fichiers indicatif LQIP d’image générésCela supprimera toutes les ressources localiséesCeci désactivera LSCache et toutes les fonctionnalités d’optimisation à des fins de débogage.Cela désactivera la page des réglages sur tous les sous-sites.Cela supprimera les feuilles de style en cascade (CSS) non utilisées sur chaque page.Cela permettra le cron du robot explorateur.Cela exportera tous les réglages actuels de LiteSpeed Cache et les enregistrera en tant que fichier.Cela va générer des requêtes supplémentaires au serveur, ce qui augmentera la charge du serveur.Ceci générera le texte indicatif avec les mêmes tailles que l’image si elle a des attributs largeur et hauteur.Cela va importer les réglages via un fichier et remplacer tous les réglages LiteSpeed Cache actuels.Cela augmentera la taille des fichiers optimisés.Ceci mettra en ligne la bibliothèque CSS asynchrone pour éviter le blocage du rendu.Cela purgera uniquement toutes les entrées CSS/JS minifiées/combinées.Cela va réinitialiser tous les réglages à ceux par défaut.Fils de discussionDélai d’exécution de la demande précédenteDélai dépasséPour effacer les données d’optimisation CSS/JS périmées, veuillez vous rendre dans le menu %s.Pour explorer un cookie particulier, saisissez son nom et les valeurs que vous souhaitez explorer. Les valeurs doivent être uniques par ligne, et peuvent inclure une ligne vierge. Il y aura un robot explorateur créé par valeur de cookie, par rôle simulé.Pour crawler le site comme utilisateur connecté, saisissez les ID utilisateur à simuler.Pour définir un TTL personnalisé pour une URL, ajoutez un espace suivi de la valeur TTL à la fin de l’URL.Pour avoir une correspondance exacte, ajoutez %s  à la fin de l’URL.Pour activer la fonctionnalité suivante, activez l’API Cloudflare dans les réglages CDN.Pour exclure %1$s, insérez %2$s.Pour générer un lien sans mot de passe pour un accès à l’équipe de support de LiteSpeed, vous devez installer %s.Pour accorder un accès wp-admin à l’équipe de support de LiteSpeed, veuillez générer un lien sans mot de passe pour l’utilisateur actuellement connecté qui sera envoyé avec le rapport.Afin de s’assurer que notre serveur peut communiquer avec le vôtre sans problème et que tout fonctionne bien, pour les quelques premières demandes, le nombre d’images autorisées dans une seule requête est limité.Pour gérer les options de QUIC.cloud, veuillez visiterPour correspondre au début, ajoutez %s au début de l'élément.Pour éviter que les %s soient mises en cache, saisissez-les ici.Pour éviter de remplir le disque, ce réglage doit être désactivé lorsque tout fonctionne.Pour rendre le nom d’hôte CDN aléatoire, définissez plusieurs noms d’hôte pour les mêmes ressources.Pour tester le panier, visitez la <a %s>FAQ</a>.Pour utiliser les fonctions de mise en cache, vous devez avoir un serveur web LiteSpeed ou utiliser un CDN QUIC.cloud.OutilTotalRéduction totaleUtilisation totaleTotal des images optimisées ce mois-ciRétroliens/pingsCommentaires mis à la corbeilleArticles mis à la corbeilleEssayez la version GitHubAccordageRéglages d’accordDésactiverActiverActiver la mise en cache des pages publiques pour les utilisateurs connectés et servir la barre d’administration et le formulaire de commentaire via des blocs ESI. Ces deux blocs ne seront pas mis en cache, sauf s’ils sont activés ci-dessous.Activez pour contrôler les battements de cœur dans l'éditeur de l’interface d’administration.Activez pour contrôler les battements de cœur dans l’interface d’administration.Activez pour contrôler les battements de cœur sur l’interface publique.Activer la mise à niveau autoActivez cette option pour que LiteSpeed Cache soit mis à jour automatiquement, chaque fois qu’une nouvelle version est diffusée. Si inactif, mettre à jour manuellement comme d’habitude.Activez cette option pour afficher automatiquement les dernières nouvelles, y compris les correctifs, les nouvelles versions, les versions bêta disponibles et les promotions.Définissez ce réglage %1$s si vous utilisez un réseau de diffusion de contenu (CDN). Remarque : QUIC.cloud CDN et Cloudflare n’utilisent pas le mappage CDN. Si vous utilisez uniquement QUIC.cloud ou Cloudflare, laissez ce réglage %2$s.Aperçu du tweetTweeter ceciSélecteur de liste d’autorisation d’UCSSURI exclutLes chemins d’URI contenant ces chaînes ne seront pas mis en cache comme publics.URLListe d’URL dans la file d’attente de cronRègle de cache inattendue %2$s trouvée dans le fichier %1$s. Cette règle peut amener les visiteurs à voir d’anciennes versions de pages en raison de la mise en cache des pages HTML par le navigateur. Si vous êtes sûr que des pages HTML ne sont pas mises en cache par le navigateur, ce message peut être ignoré.(<a %3$s>En apprendre plus</a>)Erreur inconnueLettre à jour %s maintenantMettre à niveauBien mis à niveau.UtilisationStatistiques d’utilisationUtilisez %1$s dans %2$s pour indiquer que ce cookie n’a pas été défini.Utiliser la fonctionnalité d’API %s.Utiliser le mappage CDNUtilisez la page d’accueil TTL pour la page boutiqueUtiliser le réglage admin du réseauUtiliser les fichiers optimisésUtiliser les fichiers originauxUtiliser les configurations du site principalUtilisez le service de génération de LQIP (Low Quality Image Placeholder) de QUIC.cloud pour une prévisualisation responsive des images pendant le chargement.Utilisez le service en ligne QUIC.cloud pour générer des CSS uniques.Utilisez la bibliothèque Web Font Loader pour charger les polices Google de manière asynchrone tout en laissant les autres CSS intacts.Utilisez des connexions persistantes pour accélérer les opérations de cache.Utiliser le dernier commit GitHub de développementUtiliser le dernier commit GitHub maîtreUtiliser le dernier commit GitHubUtiliser la dernière version de WordPressUtiliser la fonctionnalité de mise en cache d’objet.Utiliser des images originales (non optimisées) sur votre siteUtilisez le format %1$s ou %2$s (élément est facultatif).Utilisez cette section pour permuter les versions d’extension. Pour tester la version bêta d'un commit GitHub, saisissez l’URL du commit dans le champ ci-dessous.Nom d’utilisateurLes variables %s seront remplacées par la couleur d’arrière-plan configurée.Les variables %s seront remplacées par les propriétés de l’image correspondante.Varier le groupeVoir les détails de la %1$s version %2$sVisiter le forum de support LSCWPVisitez mon tableau de bord sur QUIC.cloudVisitez le site en déconnecté.AttentionAvertissement : Les cookies de connexion du fichier .htaccess et de la base de données ne correspondent pas.En attenteEn attente d’approbationEn attente d’actualisationEn attente d’explorationSouhaitez-vous vous connecter avec les autres utilisateurs LitePeed ?AvertissementVoir l’état de crawlerNous sommes bons. Aucune table n’utilise le moteur MyISAM.Nous travaillons dur pour améliorer votre expérience de service en ligne. Le service sera indisponible pendant que nous travaillons. Nous nous excusons pour tout inconvénient.Attribut WebP à remplacerWebP pour srcset extraWebP économisé %sBienvenue chez LiteSpeedQu’est-ce qu’un groupe ?Qu’est-ce qu’un groupe d’images ?Lorsqu’un visiteur survole un lien de page, préchargez cette page. Cela accélérera la visite de ce lien.Lorsque vous désactivez le cache, toutes les entrées mises en cache pour ce site seront purgées.Lorsque activé, le cache sera vidé automatiquement lors d’une mise à jour de tout extension, thème ou du cœur WordPress.Lorsque cette option est définie à %s, elle chargera également les polices Google de manière asynchrone.Activer largement la pré-recherche DNS pour les URL dans le document, y compris les images, CSS, JavaScript, etc.Widget de cache TTL :Wildcard %1$s pris en charge (correspond à zéro ou plusieurs caractères). Par exemple, pour faire correspondre %2$s et %3$s, utilisez %4$s.Avec ESI (Edge Side Includes), les pages peuvent être envoyées à partir du cache pour les utilisateurs connectés.Si le CDN QUIC.cloud est activé, vous pouvez toujours voir les en-têtes de cache de votre serveur local.WooCommerceRéglages WooCommerceContrôle de la qualité des images WordPressL’intervalle valide de WordPress est de %s secondesL’intervalle valide de WordPress est de %s secondes.WpW : cache privé vs. cache publicArchive annuelleVous avez maintenant %s enregistrements dans le tableau d’optimisation CSS/JS. Vous devez vérifier si vous avez un problème de chaîne aléatoire ou non.Vous pouvez saisir juste une partie du domaine.Vous pouvez rapidement passer de l’utilisation de fichiers d’images originaux (versions non optimisées) à celle de fichiers d’images optimisés. Cela affectera toutes les images de votre site web, qu’il s’agisse de la version normale ou de la version webp si disponible.Vous pouvez demander un maximum de %s images à la fois.Vous pouvez aussi activer la mise en cache du navigateur dans l’admin serveur. <a %s>En apprendre plus sur les réglages du cache navigateur LiteSpeed</a>.Vous pouvez transformer les codes courts en blocs ESI.Vous avez trop d’images notifiées, veuillez d’abord retirer les images notifiées.Vous avez trop de demandes d’images, veuillez réessayer dans quelques minutes.Vous venez de débloquer une promotion de QUIC.cloud !Vous devez cliquer sur le bouton %s si vous souhaitez associer ce site à un compte QUIC.cloud.Vous devez d’abord avoir %1$s avant de créer un lien vers QUIC.cloud.Vous ne pourrez pas annuler l’optimisation une fois les sauvegardes supprimées !Votre nom d’hébergeur ou adresse IP de %s.Votre clé d’API est utilisée pour accéder aux APIS %s.Votre adresse de messagerie sur %s.Votre IPL’adresse IP de votre serveur estZéro, oucatégoriescookiesactuellement défini à %spar ex. utilisez %s ou %s.favicon.ico est appelé sur la majorité des pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjuste maintenantmicrosecondespixelsfournir plus d'informations ici pour aider l’équipe LiteSpeed dans le débogage.tout de suiteexécutionsecondesétiquettesl’adresse IP détectée automatiquement peut ne pas être exacte si vous avez un réglage d’adresse IP sortante supplémentaire, ou si vous avez plusieurs adresses IP configurées sur votre serveur. Veuillez vous assurer que cette adresse IP est la bonne pour visiter votre site.agents utilisateur# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in Spanish (Spain)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-02-01 22:33:24+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: es\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: src/lang.cls.php:127
msgid "Localization Files"
msgstr "Archivos de idiomas"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "¡Purgado!"

#: tpl/cdn/settings.tpl.php:48
msgid "Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s."
msgstr "%1$s este ajuste si usas una red de entrega de contenido (CDN). NOTA: QUIC.cloud CDN y Cloudflare no usan la asignación CDN. Si solo usas QUIC.cloud o Cloudflare, deja este ajuste en %2$s."

#: tpl/page_optm/settings_localization.tpl.php:123
msgid "Non-`.js` file extensions will be ignored."
msgstr "Serán ignorados los archivos que no tengan la extensión `.js`."

#: tpl/page_optm/settings_localization.tpl.php:116
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Los recursos listados aquí se copiarán y reemplazarán con URL locales."

#: tpl/page_optm/entry.tpl.php:45
msgid "To clear the outdated CSS/JS optimization data, please go to %s menu."
msgstr "Para vaciar los datos obsoletos de optimización CSS/JS, por favor, ve al menú %s."

#: tpl/page_optm/entry.tpl.php:43
msgid "You are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not."
msgstr "Ahora tienes %s registros en la tabla de optimización CSS/JS. Puede que tengas que comprobar si tienes o no un problema aleatorio de cadenas."

#: tpl/toolbox/beta_test.tpl.php:33
msgid "Use latest GitHub Master commit"
msgstr "Usar el último commit maestro de GitHub"

#: tpl/toolbox/beta_test.tpl.php:31
msgid "Use latest GitHub Dev commit"
msgstr "Usar el último commit de desarrollo de GitHub"

#: src/crawler-map.cls.php:319
msgid "No valid sitemap parsed for crawler."
msgstr "No se ha analizado ningún mapa del sitio válido para el rastreador."

#: src/lang.cls.php:106
msgid "CSS Combine External and Inline"
msgstr "Combinación de CSS externo e integrado"

#: tpl/page_optm/settings_css.tpl.php:55
msgid "Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine."
msgstr "Incluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS."

#: tpl/page_optm/settings_css.tpl.php:28
msgid "Minify CSS files and inline CSS code."
msgstr "Minimiza archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:93
msgid "Predefined list will also be combined w/ the above settings"
msgstr "La lista predefinida también se combinará con los ajustes anteriores"

#: tpl/page_optm/settings_css.tpl.php:69
msgid "This will drop the unused CSS on each page."
msgstr "Esto eliminará el CSS no usado en cada página."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localización"

#: tpl/page_optm/entry.tpl.php:8
msgid "Optimization"
msgstr "Optimización"

#: tpl/page_optm/settings_js.tpl.php:48
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combina todos los archivos JS locales en un único archivo."

#: tpl/page_optm/settings_tuning.tpl.php:86
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Los archivos JS listados o el código JS integrado no serán diferidos."

#: tpl/general/settings.tpl.php:95
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación."

#: src/data.upgrade.func.php:43
msgid "Click here to settings"
msgstr "Haz clic aquí para los ajustes"

#: src/data.upgrade.func.php:42
msgid "JS Defer"
msgstr "Diferir JS"

#: src/data.upgrade.func.php:42
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS."

#: src/lang.cls.php:113
msgid "JS Combine External and Inline"
msgstr "Combinación de JS externo e integrado"

#: src/admin-display.cls.php:446
msgid "Dismiss"
msgstr "Descartar"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "El último archivo de datos es"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "La lista se fusionará con los nonces predefinidos en tu archivo de datos local."

#: tpl/page_optm/settings_css.tpl.php:41
msgid "Combine CSS files and inline CSS code."
msgstr "Combina archivos CSS y código CSS integrado."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minimiza archivos JS y códigos JS integrados."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán."

#: src/css.cls.php:552 src/placeholder.cls.php:542
msgid "Queue cleared successfully."
msgstr "Cola vaciada correctamente."

#: src/admin-display.cls.php:903
msgid "This setting is overwritten by the Network setting"
msgstr "Los ajustes de red sobreescriben este ajuste"

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr "Exclusiones de LQIP"

#: tpl/page_optm/settings_media_exc.tpl.php:121
msgid "These images will not generate LQIP."
msgstr "Estas imágenes no generarán LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "¿Seguro que quieres restablecer los ajustes a los valores por defecto?"

#: tpl/page_optm/settings_html.tpl.php:143
msgid "This option will remove all %s tags from HTML."
msgstr "Esta opción eliminará todas las etiquetas %s del HTML."

#: tpl/general/settings.tpl.php:117
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "¿Seguro que quieres vaciar todos los nodos cloud?"

#: src/lang.cls.php:138
msgid "Remove Noscript Tag"
msgstr "Eliminar la etiqueta Noscript"

#: src/error.cls.php:80
msgid "The site is not registered on QUIC.cloud."
msgstr "El sitio no está registrado en QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Haz clic aquí para cambiarlo."

#: src/error.cls.php:48 src/cloud.cls.php:655
msgid "Click here to set."
msgstr "Haz clic aquí para configurarlo."

#: src/cloud.cls.php:654
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva."

#: src/purge.cls.php:280
msgid "Notified LiteSpeed Web Server to purge localized resource entries."
msgstr "Solicitado el vaciado de los registros de recursos localizados al servidor web LiteSpeed."

#: src/lang.cls.php:126
msgid "Localize Resources"
msgstr "Recursos localizados"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Configurar cabeceras personalizadas"

#: tpl/toolbox/purge.tpl.php:82
msgid "This will delete all localized resources"
msgstr "Esto borrará todos los recursos localizados"

#: src/gui.cls.php:518 src/gui.cls.php:669 tpl/toolbox/purge.tpl.php:81
msgid "Localized Resources"
msgstr "Recursos localizados"

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. "

#: tpl/page_optm/settings_localization.tpl.php:117
msgid "HTTPS sources only."
msgstr "Solo orígenes HTTPS"

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localizar recursos externos."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Ajustes de localización"

#: tpl/page_optm/settings_css.tpl.php:115
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "Lista el selector CSS cuyo estilo debería siempre contenerse en UCSS."

#: tpl/page_optm/settings_css.tpl.php:82
msgid "Generate unique CSS in the background via a cron-based queue."
msgstr "Generar CSS único de fondo mediante la cola basada en cron."

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Usar el servicio en línea QUIC.cloud para generar CSS único."

#: src/lang.cls.php:109
msgid "UCSS Whitelist Selector"
msgstr "Selector de lista banca de UCSS"

#: src/lang.cls.php:108
msgid "Generate UCSS in Background"
msgstr "Generar UCSS en segundo plano"

#: src/lang.cls.php:107
msgid "Generate UCSS"
msgstr "Generar UCSS"

#: tpl/toolbox/purge.tpl.php:109
msgid "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"
msgstr "Vacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS y LQIP"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Press the %s button to use the most recent GitHub commit."
msgstr "Presiona el botón %s para usar el commit más reciente de GitHub."

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "Informe de LiteSpeed"

#: tpl/img_optm/summary.tpl.php:216
msgid "Image Thumbnail Group Sizes"
msgstr "Tamaños del grupo de imágenes en miniatura"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)"

#: tpl/page_optm/settings_js.tpl.php:89
msgid "%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred."
msgstr "Se recomienda %s aunque podría provocar la mayor cantidad de problemas en scripts que estén situados incrustados para evitar que se aplacen."

#: tpl/page_optm/settings_js.tpl.php:88
msgid "Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled."
msgstr "Cargar el JS incrustado después de que esté totalmente cargado el DOM puede mejorar la compatibilidad con JS y reducir errores de JS cuando están activas otras características de optimización de JS."

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "En el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien."

#: src/lang.cls.php:94
msgid "Serve Stale"
msgstr "Servir contenido rancio"

#: src/admin-display.cls.php:900
msgid "This setting is overwritten by the primary site setting"
msgstr "Esta ajuste es sobrescrito por los ajuste del sitio primario"

#: src/img-optm.cls.php:901
msgid "One or more pulled images does not match with the notified image md5"
msgstr "Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificado"

#: src/img-optm.cls.php:884
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Una o más imágenes optimizadas han caducado y han sido borradas."

#: src/error.cls.php:60
msgid "You have too many notified images, please pull down notified images first."
msgstr "Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas."

#: src/error.cls.php:56
msgid "You have too many requested images, please try again in a few minutes."
msgstr "Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos."

#: src/img-optm.cls.php:962
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Leer la documentación de LiteSpeed"

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "La cola aún no ha sido recuperada. Información de la cola: %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Timeout del mapa del sitio"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Especifica el tiempo límite de procesamiento del mapa del sitio."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar."

#: tpl/page_optm/settings_html.tpl.php:21
msgid "Specify how long, in seconds, CSS/JS files are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos CSS/JS."

#: tpl/general/settings.tpl.php:113
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "Hace falta una clave de dominio para usar los servicios online de QUIC.cloud."

#: src/img-optm.cls.php:495
msgid "Cleared %1$s invalid images."
msgstr "Purgadas %1$s imágenes no válidas."

#: src/img-optm.cls.php:457
msgid "Bypassed %1$s duplicated images."
msgstr "Saltadas %1$s imágenes duplicadas."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Solicitar clave de dominio"

#: tpl/general/entry.tpl.php:19
msgid "LiteSpeed Cache General Settings"
msgstr "Ajustes generales de LiteSpeed Cache"

#: tpl/toolbox/purge.tpl.php:100
msgid "This will delete all cached Gravatar files"
msgstr "Esto borrará todos los archivos Gravatar almacenados en caché"

#: tpl/toolbox/edit_htaccess.tpl.php:107
msgid "Save .htaccess"
msgstr "Guardar .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:81
msgid "Specify the backend .htaccess path."
msgstr "Especifica la ruta del escritorio en el .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:67 tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Leave empty to auto detect"
msgstr "Déjalo vacío para detectarlo automáticamente"

#: tpl/toolbox/edit_htaccess.tpl.php:66
msgid "Specify the frontend .htaccess path."
msgstr "Especifica la ruta de la vista pública en el .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:54
msgid ".htaccess Path Settings"
msgstr "Ajustes de la ruta del .htaccess"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Evita cualquier registro de depuración de las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Solo registra las páginas listadas."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Especifica el tamaño máximo del archivo de registro."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione."

#: tpl/toolbox/beta_test.tpl.php:46
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Pulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress."

#: tpl/toolbox/beta_test.tpl.php:35 tpl/toolbox/beta_test.tpl.php:46
msgid "Use latest WordPress release version"
msgstr "Usar la última versión de WordPress"

#: tpl/toolbox/beta_test.tpl.php:35
msgid "OR"
msgstr "O"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Use latest GitHub commit"
msgstr "Usar el último commit de GitHub"

#: tpl/toolbox/beta_test.tpl.php:26
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Restablecer ajustes"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "Caja de herramientas de LiteSpeed"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Pruebas beta"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Vista de registros"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Ajustes de depuración"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Actívalo para controlar heartbeat en el editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "El intervalo válido de WordPress es %s segundos"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Actívalo para controlar heartbeat en el escritorio."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Ponlo en %1$s para bloquear heartbeat en %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "El intervalo válido de WordPress es de %s segundos."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Especifica el intervalo de heartbeat para %s en segundos."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Enciéndelo para controlar heartbeat en las páginas públicas."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Desactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Control de Heartbeat"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "proporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Opcional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generar el enlace para el usuario actual"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Enlace sin contraseña"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "Información del sistema"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Ir a la lista de plugins"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Instalar la seguridad de DoLogin"

#: tpl/general/settings.tpl.php:150
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site."
msgstr "la IP detectada automáticamente puede no ser precisa si tienes un conjunto adicional de IP salientes, o si tienes múltiples IPs configuradas en tu servidor. Por favor, asegúrate de que esta IP es la correcta para visitar tu sitio."

#: tpl/general/settings.tpl.php:148
msgid "Check my public IP from"
msgstr "Comprobar mi IP pública desde"

#: tpl/general/settings.tpl.php:148
msgid "Your server IP is"
msgstr "La IP de tu servidor es"

#: tpl/general/settings.tpl.php:147
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Introduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Especifica el tiempo de espera mientras se rastrea cada URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "Esto activará el cron rastreador."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Ajustes generales del rastreador"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr "No está en la lista negra"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr "Eliminar de la lista negra"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr "Vaciar lista negra"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr "¿Estás seguro de que quieres borrar todas las listas negras?"

#: tpl/crawler/map.tpl.php:69 tpl/crawler/blacklist.tpl.php:56
msgid "Blacklisted due to not cacheable"
msgstr "En la lista negra debido a que no se puede cachear"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr "Añadir a las lista negra"

#: tpl/crawler/map.tpl.php:45 tpl/crawler/blacklist.tpl.php:33
msgid "Operation"
msgstr "Operación"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Total del mapa del sitio"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Lista del mapa del sitio"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Recargar el mapa del rastreador"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Vaciar el mapa del rastreador"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Ajustes del mapa del sitio"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Ajustes de simulación"

#: tpl/crawler/entry.tpl.php:8 tpl/crawler/blacklist.tpl.php:21
msgid "Blacklist"
msgstr "Lista negra"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Mapa"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Sumario"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "Si utilizas varios dominios para un sitio y tienes varios dominios en el mapa del sitio, mantén esta opción APAGADA para que el rastreador sepa cómo rastrear cada dominio."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, si se deja caer el dominio se puede ahorrar almacenamiento en la base de datos."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Ajustes de mapa del sitio del rastreador"

#: tpl/crawler/summary.tpl.php:186
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;Si tanto el cron como la ejecución manual se inician en momentos similares, el primero que se inicie tendrá prioridad."

#: tpl/crawler/summary.tpl.php:185
msgid "Crawlers cannot run concurrently."
msgstr "Los rastreadores no se pueden ejecutar de forma concurrente."

#: tpl/crawler/summary.tpl.php:179 tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Fallo de caché"

#: tpl/crawler/summary.tpl.php:178 tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Acierto de caché"

#: tpl/crawler/summary.tpl.php:177
msgid "Waiting to be Crawled"
msgstr "Esperando a ser rastreado"

#: tpl/crawler/summary.tpl.php:159 tpl/crawler/summary.tpl.php:180
#: tpl/crawler/map.tpl.php:70 tpl/crawler/blacklist.tpl.php:57
msgid "Blacklisted"
msgstr "En lista negra"

#: tpl/crawler/summary.tpl.php:158
msgid "Miss"
msgstr "Fallo"

#: tpl/crawler/summary.tpl.php:157
msgid "Hit"
msgstr "Acierto"

#: tpl/crawler/summary.tpl.php:156
msgid "Waiting"
msgstr "En espera"

#: tpl/crawler/summary.tpl.php:125
msgid "Running"
msgstr "En curso"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Usa %1$s en %2$s para indicar que esta cookie no ha sido establecida."

#: src/admin-display.cls.php:215
msgid "Add new cookie to simulate"
msgstr "Añadir una cookie nueva para simular"

#: src/admin-display.cls.php:214
msgid "Remove cookie simulation"
msgstr "Eliminar la simulación de la cookie"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Ajustes de simulación del rastreador"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess rule is: %s"
msgstr "La regla de Htaccess es: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "Más ajustes disponibles en el menú %s"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "Marca esto si eres un usuario de OpenLiteSpeed"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Ajustes de la caché del navegador"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separar"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "Los nonces anteriores se convertirán en ESI automáticamente."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Navegador"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Objeto"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Puerto por defecto de %1$s es %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Ajustes de la caché de objetos"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Especifica cuánto tiempo, en segundos, se almacena la página de inicio."

#: tpl/cache/settings-ttl.tpl.php:7 tpl/cache/entry.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan."

#: tpl/page_optm/settings_css.tpl.php:275
msgid "Swap"
msgstr "Intercambiar"

#: tpl/page_optm/settings_css.tpl.php:274
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "La lista de avatares está en la cola esperando ser actualizada"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refrescar la caché de Gravatar por cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Acelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Almacenar los gravatares localmente."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Fallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:137
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "No se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones."

#: tpl/page_optm/settings_media.tpl.php:135
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:120
msgid "Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos."

#: tpl/page_optm/settings_media.tpl.php:119
msgid "Specify the quality when generating LQIP."
msgstr "Especifica la calidad al generar el LQIP."

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Keep this off to use plain color placeholders."
msgstr "Mantén esto apagado para usar marcadores de posición de color."

#: tpl/page_optm/settings_media.tpl.php:104
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Usa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga."

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Specify the responsive placeholder SVG color."
msgstr "Especifica el color del marcador de posición SVG adaptable."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "Variables %s will be replaced with the configured background color."
msgstr "Las variables %s serán reemplazadas por el color de fondo configurado."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen."

#: tpl/page_optm/settings_media.tpl.php:74
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "Se convertirá en un marcador de posición SVG base64 sobre la marcha."

#: tpl/page_optm/settings_media.tpl.php:73
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Especifica un SVG que se utilizará como marcador de posición al generar localmente."

#: tpl/page_optm/settings_media_exc.tpl.php:107
msgid "Prevent any lazy load of listed pages."
msgstr "Evita cualquier carga diferida de las páginas de la lista."

#: tpl/page_optm/settings_media_exc.tpl.php:93
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Los iframes con estos nombres de clase padres no se cargarán de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:78
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Los marcos que contengan estos nombres de clase no serán cargados de forma diferida."

#: tpl/page_optm/settings_media_exc.tpl.php:64
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Las imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida."

#: tpl/page_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Page Optimization"
msgstr "Optimización de página de LiteSpeed Cache"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Exclusiones de medios"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:14
msgid "CSS Settings"
msgstr "Ajustes de CSS"

#: tpl/page_optm/settings_css.tpl.php:275
msgid "%s is recommended."
msgstr "Se recomienda %s."

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_js.tpl.php:89
msgid "Deferred"
msgstr "Diferido"

#: tpl/page_optm/settings_js.tpl.php:86
msgid "After DOM Ready"
msgstr "Después de DOM ready"

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_css.tpl.php:272
msgid "Default"
msgstr "Por defecto"

#: tpl/page_optm/settings_html.tpl.php:66
msgid "This can improve the page loading speed."
msgstr "Esto puede mejorar la velocidad de carga de la página."

#: tpl/page_optm/settings_html.tpl.php:65
msgid "Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "La nueva versión de desarrollo %s está disponible."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "¡Nueva versión para desarrolladores disponible!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Ignorar ese aviso"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tuitea esto"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Vista previa del tweet"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Aprender más"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "¡Acabas de desbloquear una promoción de QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Ajustes de optimización de imágenes"

#: tpl/img_optm/summary.tpl.php:367
msgid "Are you sure to destroy all optimized images?"
msgstr "¿Está seguro de destruir todas las imágenes optimizadas?"

#: tpl/img_optm/summary.tpl.php:359
msgid "Use Optimized Files"
msgstr "Usar archivos optimizados"

#: tpl/img_optm/summary.tpl.php:358
msgid "Switch back to using optimized images on your site"
msgstr "Volver a utilizar imágenes optimizadas en tu web"

#: tpl/img_optm/summary.tpl.php:355
msgid "Use Original Files"
msgstr "Usar archivos originales"

#: tpl/img_optm/summary.tpl.php:354
msgid "Use original images (unoptimized) on your site"
msgstr "Usar imágenes originales (no optimizadas) en tu web"

#: tpl/img_optm/summary.tpl.php:349
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles."

#: tpl/img_optm/summary.tpl.php:346
msgid "Optimization Tools"
msgstr "Herramientas de optimización"

#: tpl/img_optm/summary.tpl.php:319
msgid "Rescan New Thumbnails"
msgstr "Reexaminar nuevas miniaturas"

#: tpl/img_optm/summary.tpl.php:311
msgid "Congratulations, all requested!"
msgstr "¡Felicidades, todas solicitadas!"

#: tpl/img_optm/summary.tpl.php:284
msgid "Congratulations, all gathered!"
msgstr "¡Felicidades, todas reunidos!"

#: tpl/img_optm/summary.tpl.php:281
msgid "Images not yet gathered"
msgstr "Imágenes que aún no se han reunido"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "What is an image group?"
msgstr "¿Qué es un grupo de imágenes?"

#: tpl/img_optm/summary.tpl.php:227
msgid "Delete all backups of the original images"
msgstr "Borrar todas las copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:209
msgid "Calculate Backups Disk Space"
msgstr "Calcular el espacio en disco de las copias de seguridad"

#: tpl/img_optm/summary.tpl.php:94
msgid "Optimization Status"
msgstr "Estado de optimización"

#: tpl/img_optm/summary.tpl.php:78
msgid "Gather Image Data"
msgstr "Recopilar datos de las imágenes"

#: tpl/img_optm/summary.tpl.php:66
msgid "Current limit is"
msgstr "El límite actual es"

#: tpl/img_optm/summary.tpl.php:65
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de imágenes permitidas en una sola petición es limitada."

#: tpl/img_optm/summary.tpl.php:60
msgid "You can request a maximum of %s images at once."
msgstr "Puede solicitar un máximo de imágenes de %s de una vez."

#: tpl/img_optm/summary.tpl.php:55
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimiza las imágenes con nuestro servidor en QUIC.cloud"

#: tpl/img_optm/summary.tpl.php:51 tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectar."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Las revisiones más recientes se guardarán cuando se limpien las revisiones."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Día(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "Optimización de la base de datos de la caché de LiteSpeed"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "Ajustes de optimización de la BD"

#: tpl/db_optm/manage.tpl.php:174
msgid "Option Name"
msgstr "Nombre de la opción"

#: tpl/db_optm/manage.tpl.php:159
msgid "Database Summary"
msgstr "Resumen de la base de datos"

#: tpl/db_optm/manage.tpl.php:138
msgid "We are good. No table uses MyISAM engine."
msgstr "Estamos bien. Ninguna tabla usa el motor MyISAM."

#: tpl/db_optm/manage.tpl.php:130
msgid "Convert to InnoDB"
msgstr "Convertir a InnoDB"

#: tpl/db_optm/manage.tpl.php:116
msgid "Tool"
msgstr "Herramienta"

#: tpl/db_optm/manage.tpl.php:115
msgid "Engine"
msgstr "Motor"

#: tpl/db_optm/manage.tpl.php:114
msgid "Table"
msgstr "Tabla"

#: tpl/db_optm/manage.tpl.php:107
msgid "Database Table Engine Converter"
msgstr "Conversor de motor de tabla de base de datos"

#: tpl/db_optm/manage.tpl.php:57
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisiones"

#: tpl/dash/dashboard.tpl.php:503
msgid "Manage Crawler"
msgstr "Gestionar el rastreador"

#: tpl/dash/dashboard.tpl.php:471
msgid "Currently active crawler"
msgstr "Rastreador activo"

#: tpl/dash/dashboard.tpl.php:468
msgid "Crawler(s)"
msgstr "Rastreador(es)"

#: tpl/dash/dashboard.tpl.php:464 tpl/crawler/map.tpl.php:44
msgid "Crawler Status"
msgstr "Estado del rastreador"

#: tpl/dash/dashboard.tpl.php:417 tpl/dash/dashboard.tpl.php:448
msgid "Force cron"
msgstr "Forzar cron"

#: tpl/dash/dashboard.tpl.php:415 tpl/dash/dashboard.tpl.php:446
msgid "Requests in queue"
msgstr "Peticiones en cola"

#: tpl/dash/dashboard.tpl.php:410 tpl/dash/dashboard.tpl.php:441
msgid "Time to execute previous request"
msgstr "Tiempo para ejecutar la solicitud anterior"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Stats"
msgstr "Estadísticas de caché"

#: tpl/dash/dashboard.tpl.php:360
msgid "Private Cache"
msgstr "Caché privada"

#: tpl/dash/dashboard.tpl.php:359
msgid "Public Cache"
msgstr "Caché pública"

#: tpl/dash/dashboard.tpl.php:354
msgid "Cache Status"
msgstr "Estado de caché"

#: tpl/dash/dashboard.tpl.php:325
msgid "Last Pull"
msgstr "Última lectura"

#: tpl/dash/dashboard.tpl.php:290
msgid "Images Requested"
msgstr "Imágenes solicitadas"

#: tpl/dash/dashboard.tpl.php:275
msgid "Image Groups Prepared"
msgstr "Grupos de imágenes preparados"

#: tpl/dash/dashboard.tpl.php:265 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Resumen de la optimización de imágenes"

#: tpl/dash/dashboard.tpl.php:213
msgid "Refresh page score"
msgstr "Actualizar la puntuación de la página"

#: tpl/dash/dashboard.tpl.php:202 tpl/img_optm/summary.tpl.php:51
#: tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?"

#: tpl/dash/dashboard.tpl.php:202
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectarlo."

#: tpl/dash/dashboard.tpl.php:197 tpl/dash/dashboard.tpl.php:257
#: tpl/dash/dashboard.tpl.php:425 tpl/dash/dashboard.tpl.php:456
msgid "Last requested"
msgstr "Último pedido"

#: tpl/dash/dashboard.tpl.php:156
msgid "Refresh page load time"
msgstr "Actualizar el tiempo de carga de la página"

#: tpl/dash/dashboard.tpl.php:144
msgid "Go to QUIC.cloud dashboard"
msgstr "Ir al escritorio de QUIC.cloud"

#: tpl/dash/dashboard.tpl.php:55 tpl/dash/dashboard.tpl.php:433
msgid "Low Quality Image Placeholder"
msgstr "Marcador de imagen de baja calidad"

#: tpl/dash/dashboard.tpl.php:42
msgid "Sync data from Cloud"
msgstr "Sincronizar los datos de la nube"

#: tpl/dash/dashboard.tpl.php:39
msgid "QUIC.cloud Service Usage Statistics"
msgstr "Estadísticas de uso del servicio QUIC.cloud"

#: tpl/dash/network_dash.tpl.php:101 tpl/dash/dashboard.tpl.php:133
msgid "Total images optimized in this month"
msgstr "Total de imágenes optimizadas en este mes"

#: tpl/dash/network_dash.tpl.php:100 tpl/dash/dashboard.tpl.php:132
msgid "Total Usage"
msgstr "Uso total"

#: tpl/dash/network_dash.tpl.php:93 tpl/dash/dashboard.tpl.php:125
msgid "Pay as You Go Usage Statistics"
msgstr "Estadísticas pago por uso"

#: tpl/dash/network_dash.tpl.php:91 tpl/dash/dashboard.tpl.php:123
msgid "This Month Usage"
msgstr "El uso de este mes"

#: tpl/dash/network_dash.tpl.php:90 tpl/dash/dashboard.tpl.php:122
msgid "PAYG Balance"
msgstr "Balance de pagos"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pago por uso"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Usage"
msgstr "Uso"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Fast Queue Usage"
msgstr "Uso de la cola rápida"

#: tpl/dash/network_dash.tpl.php:29 tpl/dash/dashboard.tpl.php:54
msgid "CDN Bandwidth"
msgstr "Ancho de banda de la CDN"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Uso de las estadísticas"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "Escritorio de LiteSpeed Cache"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Escritorio de red"

#: tpl/general/settings.tpl.php:129
msgid "No cloud services currently in use"
msgstr "No hay servicios de la nube en uso"

#: tpl/general/settings.tpl.php:117
msgid "Click to clear all nodes for further redetection."
msgstr "Haz clic para borrar todos los nodos para volver a detectar."

#: tpl/general/settings.tpl.php:116
msgid "Current Cloud Nodes in Service"
msgstr "Nodos de la nube actual en servicio"

#: tpl/general/settings.tpl.php:108
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Beneficios de enlazar con una cuenta QUIC.cloud"

#: tpl/general/settings.tpl.php:107
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud."

#: tpl/general/settings.tpl.php:102
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "Debes tener %1$s antes de enlazarte a QUIC.cloud."

#: tpl/general/settings.tpl.php:88
msgid "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."
msgstr "Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la REST API, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda."

#: tpl/general/settings.tpl.php:87
msgid "Our %s was not whitelisted."
msgstr "Nuestro %s no estaba en la lista blanca."

#: tpl/general/settings.tpl.php:86
msgid "The POST callback to %s failed."
msgstr "La llamada POST a %s falló."

#: tpl/general/settings.tpl.php:85
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "Hay dos razones por las que no podemos comunicarnos con tu dominio:"

#: tpl/general/settings.tpl.php:84
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "Hay un problema al recibir tu clave de dominio. Por favor, haz clic en el botón %s para volver a intentarlo."

#: tpl/general/settings.tpl.php:76 tpl/general/settings.tpl.php:78
#: tpl/general/settings.tpl.php:107
msgid "Link to QUIC.cloud"
msgstr "Enlace a QUIC.cloud"

#: tpl/general/settings.tpl.php:74
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visitar «Mi Escritorio» en QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Próximo tiempo de solicitud disponible: <code>Después de %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Aprobado"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Solicitado"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Esperando aprobación"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Esperando a la recarga"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Actualizar la clave del dominio"

#: tpl/general/entry.tpl.php:6 tpl/general/entry.tpl.php:11
#: tpl/general/network_settings.tpl.php:8 tpl/general/settings.tpl.php:43
#: tpl/crawler/entry.tpl.php:9
msgid "General Settings"
msgstr "Ajustes generales"

#: tpl/cdn/settings.tpl.php:120
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN."

#: src/admin-display.cls.php:237
msgid "Add new CDN URL"
msgstr "Añadir una nueva URL de la CDN"

#: src/admin-display.cls.php:236
msgid "Remove CDN URL"
msgstr "Eliminar la URL de la CDN"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Activar la funcionalidad %s de la API de la CDN."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "Para gestionar las opciones de QUIC.cloud, visita"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:14
msgid "WooCommerce Settings"
msgstr "Ajustes de WooCommerce"

#: src/doc.cls.php:106 tpl/general/settings.tpl.php:87
msgid "Current Online Server IPs"
msgstr "IPs del servidor en línea"

#: src/doc.cls.php:105
msgid "Before generating key, please verify all IPs on this list are whitelisted"
msgstr "Antes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blanca"

#: src/doc.cls.php:104
msgid "For online services to work correctly, you must whitelist all online server IPs."
msgstr "Para que los servicios en línea funcionen correctamente, debes hacer una lista blanca de todas las IPs en línea del servidor."

#: src/gui.cls.php:528 src/gui.cls.php:679 tpl/toolbox/purge.tpl.php:90
msgid "LQIP Cache"
msgstr "Caché de LQIP"

#: src/gui.cls.php:85
msgid "Private Cache Hits"
msgstr "Aciertos de caché privada"

#: src/gui.cls.php:84
msgid "Private Caches"
msgstr "Cachés privadas"

#: src/gui.cls.php:83
msgid "Public Cache Hits"
msgstr "Aciertos de caché pública"

#: src/gui.cls.php:82
msgid "Public Caches"
msgstr "Cachés públicas"

#: src/admin-settings.cls.php:259 src/admin-settings.cls.php:294
msgid "Options saved."
msgstr "Las opciones han sido guardadas."

#: src/img-optm.cls.php:1422
msgid "Removed backups successfully."
msgstr "Copias de seguridad eliminadas correctamente."

#: src/img-optm.cls.php:1360
msgid "Calculated backups successfully."
msgstr "Copias de seguridad calculadas correctamente."

#: src/img-optm.cls.php:1301
msgid "Rescaned %d images successfully."
msgstr "%d imágenes reexploradas correctamente."

#: src/img-optm.cls.php:1215 src/img-optm.cls.php:1288
msgid "Rescaned successfully."
msgstr "Reexploración correcta."

#: src/img-optm.cls.php:1180
msgid "Destroy all optimization data successfully."
msgstr "Todos los datos de optimización destruidos correctamente."

#: src/img-optm.cls.php:1109
msgid "Cleaned up unfinished data successfully."
msgstr "Datos incompletos limpiados correctamente."

#: src/img-optm.cls.php:1022
msgid "Pulled %d image(s)"
msgstr "%d imagen(es) obtenida(s)"

#: src/img-optm.cls.php:945
msgid "Optimized WebP file expired and was cleared."
msgstr "El archivo WebP optimizado caducado ha sido limpiado."

#: src/img-optm.cls.php:828
msgid "Pull Cron is running"
msgstr "Pull Cron se está ejecutando"

#: src/img-optm.cls.php:597
msgid "No valid image found by Cloud server in the current request."
msgstr "El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual."

#: src/img-optm.cls.php:574
msgid "No valid image found in the current request."
msgstr "No se ha encontrado ninguna imagen válida en la petición actual."

#: src/img-optm.cls.php:420
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "%1$s enviado al servidor en la nube, %2$s aceptado."

#: src/img-optm.cls.php:143
msgid "Gathered %d images successfully."
msgstr "%d recopiladas correctamente."

#: src/img-optm.cls.php:109
msgid "No new image gathered."
msgstr "No se ha reunido ninguna imagen nueva."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Edad máxima de las revisiones"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Número máximo de revisiones"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "URIs excluidas de la depuración"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "URIs incluidas en la depuración"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Quitar dominio del mapa del sitio"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "Atributo HTML a reemplazar"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Usar mapeo de CDN"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "CDN de QUIC.cloud"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "TTL de heartbeat del editor"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Heartbeat del editor"

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr "TTL de heartbeat de la administración"

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr "Control de heartbeat de la administración"

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr "TTL de heartbeat de la parte pública"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr "Control de heartbeat de la parte pública"

#: src/lang.cls.php:189
msgid "Backend .htaccess Path"
msgstr "Ruta del .htaccess de la administración"

#: src/lang.cls.php:188
msgid "Frontend .htaccess Path"
msgstr "Ruta del .htaccess de la parte pública"

#: src/lang.cls.php:178
msgid "ESI Nonces"
msgstr "Nonces de ESI"

#: src/lang.cls.php:174
msgid "WordPress Image Quality Control"
msgstr "Control de la calidad de imagen de WordPress"

#: src/lang.cls.php:169
msgid "Create WebP Versions"
msgstr "Crear versiones WebP"

#: src/lang.cls.php:166
msgid "Auto Pull Cron"
msgstr "Cron de obtención automática"

#: src/lang.cls.php:165
msgid "Auto Request Cron"
msgstr "Cron de petición automática"

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr "Generar LQIP en segundo plano"

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr "Dimensiones mínimas de LQIP"

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr "Calidad de LQIP"

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr "Generador de LQIP en la nube"

#: src/lang.cls.php:157
msgid "Responsive Placeholder SVG"
msgstr "Marcador de posición SVG adaptable"

#: src/lang.cls.php:156
msgid "Responsive Placeholder Color"
msgstr "Color del marcador de posición adaptable"

#: src/lang.cls.php:154
msgid "Basic Image Placeholder"
msgstr "Marcador de posición de imagen básica"

#: src/lang.cls.php:152
msgid "Lazy Load URI Excludes"
msgstr "Exclusión de URIs de carga diferida"

#: src/lang.cls.php:151
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padre de iframes"

#: src/lang.cls.php:150
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases de iframes"

#: src/lang.cls.php:149
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Exclusiones de carga diferida de clases padres"

#: src/lang.cls.php:144
msgid "Gravatar Cache TTL"
msgstr "TTL de la caché de Gravatar"

#: src/lang.cls.php:143
msgid "Gravatar Cache Cron"
msgstr "Cron de la caché de Gravatar"

#: src/lang.cls.php:142 src/gui.cls.php:538 src/gui.cls.php:689
#: tpl/toolbox/purge.tpl.php:99
msgid "Gravatar Cache"
msgstr "Caché de Gravatar"

#: src/lang.cls.php:129
msgid "DNS Prefetch Control"
msgstr "Control del prefetch DNS"

#: src/lang.cls.php:125
msgid "Load Inline JS"
msgstr "Cargar JS integrado"

#: src/lang.cls.php:123
msgid "Font Display Optimization"
msgstr "Optimización de visualización de fuentes"

#: src/lang.cls.php:98
msgid "Force Public Cache URIs"
msgstr "Forzar URIs de caché púbica"

#: src/lang.cls.php:67
msgid "Notifications"
msgstr "Avisos"

#: src/lang.cls.php:64
msgid "Default HTTP Status Code Page TTL"
msgstr "TTL del código de estado de página por defecto"

#: src/lang.cls.php:63
msgid "Default REST TTL"
msgstr "TTL por defecto de REST"

#: src/lang.cls.php:57
msgid "Enable Cache"
msgstr "Activa cache"

#: src/lang.cls.php:55
msgid "Domain Key"
msgstr "Clave del dominio"

#: src/lang.cls.php:54
msgid "Server IP"
msgstr "IP del servidor"

#: src/lang.cls.php:34
msgid "Duplicate image files ignored"
msgstr "Archivos de imagen duplicados ignorados"

#: src/lang.cls.php:24
msgid "Images not requested"
msgstr "Imágenes no solicitadas"

#: src/cloud.cls.php:1049
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube."

#: src/cloud.cls.php:964
msgid "Domain Key hash mismatch"
msgstr "Discordancia de clave de dominio"

#: src/cloud.cls.php:893
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia."

#: src/cloud.cls.php:842
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Clave del dominio solicitada correctamente. Por favor, espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress."

#: src/cloud.cls.php:646 src/cloud.cls.php:823
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Fallo de comunicación con el servidor QUIC.cloud"

#: src/cloud.cls.php:595
msgid "Good news from QUIC.cloud server"
msgstr "Buenas noticias del servidor QUIC.cloud"

#: src/cloud.cls.php:579 src/cloud.cls.php:587 src/cloud.cls.php:834
msgid "Message from QUIC.cloud server"
msgstr "Mensaje del servidor QUIC.cloud"

#: src/cloud.cls.php:465
msgid "Please try after %1$s for service %2$s."
msgstr "Por favor, inténtalo después de %1$s para el servicio %2$s."

#: src/cloud.cls.php:356
msgid "No available Cloud Node."
msgstr "No hay ningún nodo de la nube disponible."

#: src/cloud.cls.php:308 src/cloud.cls.php:325 src/cloud.cls.php:356
#: src/cloud.cls.php:465 src/cloud.cls.php:798
msgid "Cloud Error"
msgstr "Error de la nube"

#: src/data.cls.php:197
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado."

#: src/media.cls.php:360
msgid "Restore from backup"
msgstr "Restaurar desde la copia de seguridad"

#: src/media.cls.php:350
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:344
msgid "No backup of unoptimized WebP file exists."
msgstr "No existe una copia de seguridad del archivo WebP no optimizado."

#: src/media.cls.php:331
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "Archivo WebP reducido en %1$s (%2$s)"

#: src/media.cls.php:327
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo WebP."

#: src/media.cls.php:322
msgid "Currently using optimized version of WebP file."
msgstr "Actualmente usando la versión optimizada del archivo WebP."

#: src/media.cls.php:306
msgid "Orig"
msgstr "Original"

#: src/media.cls.php:303
msgid "(no savings)"
msgstr "(sin guardar)"

#: src/media.cls.php:303
msgid "Orig %s"
msgstr "Original %s"

#: src/media.cls.php:300
msgid "Congratulation! Your file was already optmized"
msgstr "¡Felicidades! Tu archivo ya ha sido optimizado"

#: src/media.cls.php:291
msgid "No backup of original file exists."
msgstr "No existe una copia de seguridad del archivo original."

#: src/media.cls.php:291 src/media.cls.php:344
msgid "Using optimized version of file. "
msgstr "Usando la versión optimizada del archivo. "

#: src/media.cls.php:283
msgid "Orig saved %s"
msgstr "Ahorrados %s del original"

#: src/media.cls.php:277
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Archivo original reducido en %1$s (%2$s)"

#: src/media.cls.php:273 src/media.cls.php:327
msgid "Click to switch to optimized version."
msgstr "Haz clic para cambiar a la versión optimizada."

#: src/media.cls.php:273
msgid "Currently using original (unoptimized) version of file."
msgstr "Actualmente usando la versión original (no optimizada) del archivo."

#: src/media.cls.php:272 src/media.cls.php:326
msgid "(non-optm)"
msgstr "(no-optm)"

#: src/media.cls.php:268 src/media.cls.php:322
msgid "Click to switch to original (unoptimized) version."
msgstr "Haz clic para cambiar a la versión original (no optimizada)."

#: src/media.cls.php:268
msgid "Currently using optimized version of file."
msgstr "Actualmente usando la versión optimizada del archivo."

#: src/media.cls.php:267 src/media.cls.php:292 src/media.cls.php:321
#: src/media.cls.php:345
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:141
msgid "LQIP image preview for size %s"
msgstr "Vista previa de la imagen LQIP para el tamaño %s"

#: src/placeholder.cls.php:83 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:909
msgid "Previously existed in blacklist"
msgstr "Anteriormente existía en la lista negra"

#: src/crawler.cls.php:906
msgid "Manually added to blacklist"
msgstr "Añadido manualmente a la lista negra"

#: src/htaccess.cls.php:355
msgid "Mobile Agent Rules"
msgstr "Reglas de agente móvil"

#: src/crawler-map.cls.php:323
msgid "Sitemap created successfully: %d items"
msgstr "Mapa del sitio creado con éxito: %d elementos"

#: src/crawler-map.cls.php:267
msgid "Sitemap cleaned successfully"
msgstr "El mapa del sitio se limpió con éxito"

#: src/admin-display.cls.php:1065
msgid "Invalid IP"
msgstr "IP no válida"

#: src/admin-display.cls.php:1040
msgid "Value range"
msgstr "Rango de valores"

#: src/admin-display.cls.php:1037
msgid "Smaller than"
msgstr "Más pequeño que"

#: src/admin-display.cls.php:1034
msgid "Larger than"
msgstr "Mayor que"

#: src/admin-display.cls.php:1027
msgid "Zero, or"
msgstr "Cero, o"

#: src/admin-display.cls.php:1015
msgid "Maximum value"
msgstr "Valor máximo"

#: src/admin-display.cls.php:1012
msgid "Minimum value"
msgstr "Valor mínimo"

#: src/admin-display.cls.php:994
msgid "Path must end with %s"
msgstr "La ruta debe terminar en %s"

#: src/admin-display.cls.php:977
msgid "Invalid rewrite rule"
msgstr "Regla de reescritura no válida"

#: src/admin-display.cls.php:948 src/admin-display.cls.php:953
msgid "Recommended value"
msgstr "Valor recomendado"

#: src/admin-display.cls.php:907
msgid "currently set to %s"
msgstr "actualmente establecido en %s"

#: src/admin-display.cls.php:897
msgid "This setting is overwritten by the PHP constant %s"
msgstr "Este ajuste es sobrescrita por la constante %s de PHP"

#: src/admin-display.cls.php:137
msgid "Toolbox"
msgstr "Herrramientas"

#: src/admin-display.cls.php:133 tpl/page_optm/entry.tpl.php:45
msgid "Database"
msgstr "Base de datos"

#: src/admin-display.cls.php:131
msgid "Page Optimization"
msgstr "Optimización de página"

#: src/admin-display.cls.php:121 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Escritorio"

#: src/db-optm.cls.php:256
msgid "Converted to InnoDB successfully."
msgstr "Convertido a InnoDB correctamente."

#: src/purge.cls.php:263
msgid "Cleaned all Gravatar files."
msgstr "Vaciados todos los archivos de Gravatar."

#: src/purge.cls.php:246
msgid "Cleaned all LQIP files."
msgstr "Vaciados todos los archivos LQIP."

#: src/utility.cls.php:875
msgid "&raquo;"
msgstr "&raquo;"

#: src/utility.cls.php:874
msgid "&laquo;"
msgstr "&laquo;"

#: src/error.cls.php:161
msgid "Unknown error"
msgstr "Error desconocido"

#: src/error.cls.php:157
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior."

#: src/error.cls.php:153
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: "

#: src/error.cls.php:149
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores."

#: src/error.cls.php:145
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash."

#: src/error.cls.php:141
msgid "Your application is waiting for approval."
msgstr "Tu solicitud está a la espera de aprobación."

#: src/error.cls.php:137
msgid "Previous request too recent. Please try again after %s."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s."

#: src/error.cls.php:133
msgid "Previous request too recent. Please try again later."
msgstr "La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde."

#: src/error.cls.php:128
msgid "Crawler disabled by the server admin."
msgstr "Rastreador desactivado por el administrador del servidor."

#: src/error.cls.php:124
msgid "Failed to create table %s! SQL: %s."
msgstr "¡Fallo al crear la tabla %s! SQL: %s."

#: src/error.cls.php:100
msgid "Could not find %1$s in %2$s."
msgstr "No se ha podido encontrar %1$s en %2$s."

#: src/error.cls.php:88
msgid "Credits are not enough to proceed the current request."
msgstr "Los créditos no son suficientes para proceder con la solicitud actual."

#: src/error.cls.php:84
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio."

#: src/error.cls.php:72
msgid "There is proceeding queue not pulled yet."
msgstr "Hay una cola de procedimiento que no se ha retirado todavía."

#: src/error.cls.php:68
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "No hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamente"

#: src/error.cls.php:64
msgid "The image list is empty."
msgstr "La lista de imágenes está vacía."

#: src/error.cls.php:52
msgid "You don't have enough quota for current service left this month."
msgstr "No tienes suficiente cuota disponible este mes para el servicio actual."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "Tendrás que establecer %s para usar los servicios en línea."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "En este momento, el ajuste %s está activado."

#: src/task.cls.php:138
msgid "LiteSpeed Crawler Cron"
msgstr "Cron del rastreador de LiteSpeed"

#: src/task.cls.php:119
msgid "Every Minute"
msgstr "Cada minuto"

#: tpl/general/settings.tpl.php:166
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Los enlaces generados pueden gestionarse en los <a %s>Ajustes</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Instalar"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN."

#: tpl/dash/dashboard.tpl.php:210 tpl/banner/score.php:68
msgid "PageSpeed Score"
msgstr "Puntuación de PageSpeed"

#: tpl/dash/dashboard.tpl.php:183 tpl/dash/dashboard.tpl.php:241
#: tpl/banner/score.php:55 tpl/banner/score.php:94
msgid "Improved by"
msgstr "Mejorado por"

#: tpl/dash/dashboard.tpl.php:175 tpl/dash/dashboard.tpl.php:233
#: tpl/banner/score.php:45 tpl/banner/score.php:84
msgid "After"
msgstr "Después"

#: tpl/dash/dashboard.tpl.php:166 tpl/dash/dashboard.tpl.php:225
#: tpl/banner/score.php:34 tpl/banner/score.php:74
msgid "Before"
msgstr "Antes"

#: tpl/dash/dashboard.tpl.php:153 tpl/banner/score.php:28
msgid "Page Load Time"
msgstr "Tiempo de carga de la página"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud."

#: src/lang.cls.php:171
msgid "Preserve EXIF/XMP data"
msgstr "Conservar los datos EXIF/XMP"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Only enable for AMP or mobile-specific design/content, not for responsive sites."
msgstr "Solo activarlo para AMP o diseño/contenido específico para móviles, no  para sitios adaptables."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Cache mobile views separately."
msgstr "Cachear vistas móviles por separado."

#: tpl/toolbox/beta_test.tpl.php:22
msgid "Try GitHub Version"
msgstr "Probar versión de GitHub"

#: tpl/cdn/settings.tpl.php:96
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s."

#: src/doc.cls.php:76
msgid "Both full and partial strings can be used."
msgstr "Se pueden usa cadenas parciales y completas."

#: tpl/page_optm/settings_media_exc.tpl.php:49
msgid "Images containing these class names will not be lazy loaded."
msgstr "Las imágenes que contengan estos nombres de clases no tendrán carga diferida."

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Exclusión de nombres de clases para carga diferida de imágenes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "Por ejemplo, %1$s define un TTL de %2$s segundos para %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Puede que más tarde"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Activar la actualización automática"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:48
msgid "Upgrade"
msgstr "Actualizar"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "La nueva versión %s está disponible ahora."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "¡Nueva versión disponible!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Creado con ❤️ por el equipo de LiteSpeed."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "¡Por supuesto, me encantará valorarlo!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "¡Gracias por usar el plugin de caché LiteSpeed!"

#: src/activation.cls.php:417
msgid "Upgraded successfully."
msgstr "Actualizado con éxito."

#: src/activation.cls.php:408 src/activation.cls.php:413
msgid "Failed to upgrade."
msgstr "Fallo al actualizar."

#: src/conf.cls.php:782
msgid "Changed setting successfully."
msgstr "Ajuste cambiado con éxito."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "Muestra de ESI para desarrolaldores"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Reemplaza %1$s con %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "Puedes convertir shortcodes en bloques ESI."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Caché privada o caché pública"

#: tpl/page_optm/settings_html.tpl.php:87
msgid "Append query string %s to the resources to bypass this action."
msgstr "Añade la cadena de consulta %s a los recursos para evitar esta acción."

#: tpl/page_optm/settings_html.tpl.php:83
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA se omitirá automáticamente."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."
msgstr "Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea y pueden incluir una línea en blanco. Se creará un rastreador por cada valor de cookie, por cada perfil simulado."

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Valores de la cookie"

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr "Nombre de la cookie"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Simulación de cookie"

#: tpl/toolbox/edit_htaccess.tpl.php:44
msgid "This page is meant for advanced users."
msgstr "Esta página está pensada para usuarios avanzados."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Activa esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre."

#: src/lang.cls.php:66
msgid "Automatically Upgrade"
msgstr "Actualizar automáticamente"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Tu IP"

#: src/import.cls.php:146
msgid "Reset successfully."
msgstr "Restablecimiento realizado con éxito."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "Esto restablecerá todos los ajustes a su valores predeterminados."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Restablecer todos los ajustes"

#: tpl/page_optm/settings_css.tpl.php:247
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separa archivos CSS críticos al generar las rutas que contengan estas cadenas."

#: src/lang.cls.php:121
msgid "Separate CCSS Cache URIs"
msgstr "Distintas URIs de caché CCSS"

#: tpl/page_optm/settings_css.tpl.php:233
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán."

#: tpl/page_optm/settings_css.tpl.php:232
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "Lista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS."

#: src/lang.cls.php:120
msgid "Separate CCSS Cache Post Types"
msgstr "Tipos de contenido de caché de CCSS distintos"

#: tpl/page_optm/settings_media.tpl.php:178
msgid "Size list in queue waiting for cron"
msgstr "Tamaño de la lista en la cola de espera del cron"

#: tpl/page_optm/settings_media.tpl.php:155
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s."

#: tpl/page_optm/settings_media.tpl.php:153
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Genera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas."

#: tpl/page_optm/settings_media.tpl.php:60
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto."

#: tpl/page_optm/settings_media.tpl.php:59
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Los marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Marcador de posición adaptable"

#: tpl/toolbox/purge.tpl.php:91
msgid "This will delete all generated image LQIP placeholder files"
msgstr "Esto borrará todos los archivos generados de marcador de posición de imágenes LQIP"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Por favor, activa LiteSpeed Cache en los ajustes del plugin."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento."

#: src/cloud.cls.php:548 src/cloud.cls.php:560
msgid "Failed to request via WordPress"
msgstr "Fallo en la solicitud desde WordPress"

#: tpl/page_optm/settings_media.tpl.php:216
msgid "Include the lazy load image JavaScript library inline."
msgstr "Incluye la biblioteca integrada de JavaScript de carga diferida de imágenes."

#: src/lang.cls.php:164
msgid "Inline Lazy Load Images Library"
msgstr "Biblioteca integrada de imágenes en carga diferida"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "Caché de páginas de alto rendimiento y optimización de sitio de LiteSpeed"

#: src/img-optm.cls.php:1740
msgid "Reset the optimized data successfully."
msgstr "Datos de optimización restablecidos correctamente."

#: src/gui.cls.php:755
msgid "Update %s now"
msgstr "Actualizar %s"

#: src/gui.cls.php:750
msgid "View %1$s version %2$s details"
msgstr "Ver detalles de la versión %2$s de %1$s"

#: src/gui.cls.php:747
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>ver detalles de la versión %3$s</a> o <a href=\"%4$s\" %5$s target=\"_blank\">actualiza ya</a>."

#: src/gui.cls.php:727
msgid "Install %s"
msgstr "Instalar %s"

#: src/lang.cls.php:31
msgid "Images previously optimized"
msgstr "Imágenes optimizadas anteriormente"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!"

#: src/cloud.cls.php:604
msgid "%1$s plugin version %2$s required for this action."
msgstr "Para esta acción se necesita la versión %2$s del plugin %1$s."

#: src/cloud.cls.php:570
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas."

#: src/lang.cls.php:168
msgid "Remove Original Backups"
msgstr "Eliminar copias de seguridad del orginal"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Solicitar automáticamente la optimización mediante un trabajo cron."

#: tpl/img_optm/summary.tpl.php:180
msgid "A backup of each image is saved before it is optimized."
msgstr "Se guarda una copia de seguridad de cada imagen antes de optimizarla."

#: src/img-optm.cls.php:1619
msgid "Switched images successfully."
msgstr "Imágenes cambiadas correctamente."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimizar imágenes usando compresión sin pérdida."

#: src/lang.cls.php:170
msgid "Optimize Losslessly"
msgstr "Optimizar sin pérdida"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Solicita versiones WebP de las imágenes originales al hacer la optimización."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta."

#: src/lang.cls.php:167
msgid "Optimize Original Images"
msgstr "Optimizar imágenes originales"

#: tpl/page_optm/settings_css.tpl.php:167
msgid "This option only works if %1$s is %2$s."
msgstr "Esta opción solo funciona si %1$s está en %2$s."

#: tpl/page_optm/settings_css.tpl.php:166
msgid "Leave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated."
msgstr "Deja esta opción %1$s para permitir la comunicación con el servicio CCSS de QUIC.cloud. Si se establece en %2$s, no se generará el CSS crítico."

#: src/lang.cls.php:118
msgid "Generate Critical CSS"
msgstr "Generar CSS crítico"

#: tpl/page_optm/settings_css.tpl.php:149
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google."

#: src/purge.cls.php:229
msgid "Cleaned all Critical CSS files."
msgstr "Limpiados todos los archivos CSS críticos."

#: tpl/page_optm/settings_css.tpl.php:261
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado."

#: src/lang.cls.php:122
msgid "Inline CSS Async Lib"
msgstr "Biblioteca de CSS integrado asíncrono"

#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_css.tpl.php:216
msgid "Run Queue Manually"
msgstr "Ejecutar la cola manualmente"

#: tpl/page_optm/settings_css.tpl.php:203
msgid "URL list in queue waiting for cron"
msgstr "Lista de URLs en cola esperando el cron"

#: tpl/page_optm/settings_css.tpl.php:93 tpl/page_optm/settings_css.tpl.php:192
msgid "Last requested cost"
msgstr "Último coste solicitado"

#: tpl/dash/dashboard.tpl.php:407 tpl/dash/dashboard.tpl.php:438
#: tpl/page_optm/settings_media.tpl.php:167
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:189
msgid "Last generated"
msgstr "Último generado"

#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:181
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página."

#: tpl/page_optm/settings_css.tpl.php:180
msgid "Automatically generate critical CSS in the background via a cron-based queue."
msgstr "Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron."

#: src/lang.cls.php:119
msgid "Generate Critical CSS In Background"
msgstr "Generar CSS crítico en segundo plano"

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Optimize CSS delivery."
msgstr "Optimiza la entrega de CSS."

#: tpl/toolbox/purge.tpl.php:73
msgid "This will delete all generated critical CSS files"
msgstr "Esto borrará todos los archivos generados de CSS crítico"

#: src/gui.cls.php:508 src/gui.cls.php:659 tpl/dash/dashboard.tpl.php:53
#: tpl/dash/dashboard.tpl.php:402 tpl/toolbox/purge.tpl.php:72
msgid "Critical CSS"
msgstr "CSS crítico"

#: src/doc.cls.php:24
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."
msgstr "Este sitio utiliza sistemas de caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El cacheado potencialmente almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de caché son temporales, y nunca son accedidos por ninguna tercera parte, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de caché expiran en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su expiración natural, si fuese necesario."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar."

#: src/utility.cls.php:250
msgid "right now"
msgstr "ahora mismo"

#: src/utility.cls.php:250
msgid "just now"
msgstr "ahora mismo"

#: tpl/img_optm/summary.tpl.php:245
msgid "Saved"
msgstr "Guardado"

#: tpl/img_optm/summary.tpl.php:239
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Última ejecución"

#: tpl/img_optm/summary.tpl.php:231 tpl/img_optm/settings.tpl.php:67
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!"

#: tpl/img_optm/summary.tpl.php:230 tpl/img_optm/settings.tpl.php:66
msgid "This is irreversible."
msgstr "Esto es irreversible."

#: tpl/img_optm/summary.tpl.php:250
msgid "Remove Original Image Backups"
msgstr "Eliminar copias de seguridad de las imágenes originales"

#: tpl/img_optm/summary.tpl.php:249
msgid "Are you sure you want to remove all image backups?"
msgstr "¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?"

#: tpl/img_optm/summary.tpl.php:194 tpl/crawler/blacklist.tpl.php:25
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:191 tpl/img_optm/summary.tpl.php:242
msgid "Files"
msgstr "Archivos"

#: tpl/img_optm/summary.tpl.php:187
msgid "Last calculated"
msgstr "Último cálculo"

#: tpl/img_optm/summary.tpl.php:202
msgid "Calculate Original Image Storage"
msgstr "Calcular almacenamiento original de imágenes"

#: tpl/img_optm/summary.tpl.php:176
msgid "Storage Optimization"
msgstr "Optimización de almacenamiento"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Activar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress."

#: src/lang.cls.php:173
msgid "WebP For Extra srcset"
msgstr "WebP para src extra"

#: tpl/cdn/settings.tpl.php:122 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Usa el formato %1$s o %2$s (el elemento es opcional)."

#: tpl/cdn/settings.tpl.php:121 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Solo los atributos aquí listados serán reemplazados."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Especificar que atributos de elementos serán reemplazados con WebP."

#: src/lang.cls.php:172
msgid "WebP Attribute To Replace"
msgstr "Atributo WebP a reemplazar"

#: tpl/cdn/settings.tpl.php:159
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Solo los archivos en estos directorios apuntarán a la CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Directorios incluidos"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "Un vaciado completo se iniciará cuando WordPress ejecute estos ganchos."

#: src/lang.cls.php:180
msgid "Purge All Hooks"
msgstr "Vaciar todos los ganchos"

#: src/purge.cls.php:193
msgid "Purged all caches successfully."
msgstr "Vaciado de todas las cachés correctamente."

#: src/gui.cls.php:471 src/gui.cls.php:562 src/gui.cls.php:612
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:415
msgid "Forced cacheable"
msgstr "Forzar cacheables"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Las rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables."

#: src/lang.cls.php:97
msgid "Force Cache URIs"
msgstr "Forzar URLs en caché"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Ajustes de exclusión"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "Esto desactivará LSCache y todas las características de optimización con propósitos de depuración."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Desactivar todas las características"

#: src/gui.cls.php:498 src/gui.cls.php:649 tpl/toolbox/purge.tpl.php:63
msgid "Opcode Cache"
msgstr "Caché opcode"

#: src/gui.cls.php:479 src/gui.cls.php:620 tpl/toolbox/purge.tpl.php:45
msgid "CSS/JS Cache"
msgstr "Caché CSS/JS"

#: src/gui.cls.php:708 tpl/img_optm/summary.tpl.php:169
msgid "Remove all previous unfinished image optimization requests."
msgstr "Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar."

#: src/gui.cls.php:709 tpl/img_optm/summary.tpl.php:171
msgid "Clean Up Unfinished Data"
msgstr "Limpiar datos no finalizados"

#: src/lang.cls.php:32
msgid "Images failed with other errors"
msgstr "Imágenes fallidas con otros errores"

#: src/lang.cls.php:35
msgid "Images with wrong meta"
msgstr "Imágenes con metadatos erróneos"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Únete a nuestro Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Únete a la comunidad %s."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "¿Quieres conectar con otros usuarios de LiteSpeed?"

#: tpl/cdn/settings.tpl.php:206
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Obténla desde <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:205
msgid "Your API key is used to access %s APIs."
msgstr "Tu clave de la API es usada para acceder a %s APIs."

#: tpl/cdn/settings.tpl.php:196
msgid "Your Email address on %s."
msgstr "Tu dirección de email en %s."

#: tpl/cdn/settings.tpl.php:187
msgid "Use %s API functionality."
msgstr "Usar la funcionalidad de la API %s."

#: tpl/cdn/settings.tpl.php:73
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Únete a la comunidad de Slack de LiteSpeed"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visita el foro de soporte de LSCWP"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Valora %s en %s"

#: src/lang.cls.php:26 tpl/dash/dashboard.tpl.php:312
msgid "Images notified to pull"
msgstr "Imágenes notificadas para descargar"

#: src/lang.cls.php:33
msgid "Image files missing"
msgstr "Faltan archivos de imágenes"

#: tpl/img_optm/summary.tpl.php:274 tpl/img_optm/summary.tpl.php:301
msgid "What is a group?"
msgstr "¿Qué es un grupo?"

#: src/admin-display.cls.php:1133
msgid "%s image"
msgstr "%s imagen"

#: src/admin-display.cls.php:1130
msgid "%s group"
msgstr "%s grupo"

#: src/admin-display.cls.php:1120
msgid "%s images"
msgstr "%s imágenes"

#: src/admin-display.cls.php:1117
msgid "%s groups"
msgstr "%s grupos"

#: src/crawler.cls.php:767
msgid "Guest"
msgstr "Invitado"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Simulación de rol"

#: tpl/crawler/summary.tpl.php:166
msgid "running"
msgstr "ejecutando"

#: tpl/db_optm/manage.tpl.php:175
msgid "Size"
msgstr "Tamaño"

#: tpl/dash/dashboard.tpl.php:490 tpl/crawler/summary.tpl.php:99
msgid "Ended reason"
msgstr "Razón de finalización"

#: tpl/dash/dashboard.tpl.php:483 tpl/crawler/summary.tpl.php:92
msgid "Last interval"
msgstr "Último intervalo"

#: tpl/dash/dashboard.tpl.php:476 tpl/crawler/summary.tpl.php:85
msgid "Current crawler started at"
msgstr "El rastreador actual comenzó a las"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Hora de ejecución para el rastreador anterior"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d segundos"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Hora de la última ejecución completa para todos los rastreadores"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "El rastreo del mapa del sitio actual comenzó a las"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Guarda datos transitorios en la base de datos cuando %1$s es %2$s."

#: src/lang.cls.php:91
msgid "Store Transients"
msgstr "Almacenar datos transitorios"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "¡Si %1$s es %2$s entonces debe completarse %3$s!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Valor máximo permitido por el servidor"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Valor forzado por el servidor"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Valor mínimo permitido por el servidor"

#: tpl/cdn/settings.tpl.php:72 tpl/cache/settings-excludes.tpl.php:62
#: tpl/cache/settings-excludes.tpl.php:95
#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTA"

#: src/admin-display.cls.php:1086
msgid "Server variable(s) %s available to override this setting."
msgstr "Variable(s) del servidor %s disponible para omitir este ajuste."

#: src/admin-display.cls.php:1085 tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_html.tpl.php:86
#: tpl/page_optm/settings_media_exc.tpl.php:25
#: tpl/page_optm/settings_css.tpl.php:151 tpl/cache/settings-esi.tpl.php:95
msgid "API"
msgstr "API"

#: src/purge.cls.php:329
msgid "Reset the entire opcode cache successfully."
msgstr "Reestablecida la caché opcache con éxito"

#: src/purge.cls.php:317
msgid "Opcode cache is not enabled."
msgstr "La caché opcache no está habilitada."

#: src/import.cls.php:121
msgid "Imported setting file %s successfully."
msgstr "Importado con éxito el archivo de ajustes %s."

#: src/import.cls.php:83
msgid "Import failed due to file error."
msgstr "Importación fallida debido a un error en el archivo."

#: tpl/page_optm/settings_js.tpl.php:35 tpl/page_optm/settings_css.tpl.php:42
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "Cómo solucionar problemas causados por la optimización CSS/JS."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace."

#: src/lang.cls.php:182
msgid "Instant Click"
msgstr "Clic instantáneo"

#: tpl/toolbox/purge.tpl.php:64
msgid "Reset the entire opcode cache"
msgstr "Reestablecer toda la caché opcode"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Última importación"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Importar"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Ajustes de importación"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Última exportación"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Exportar"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Ajustes de exportación"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Importar / Exportar"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Utilizar conexiones keep-alive para acelerar operaciones de la caché."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Base de datos a usar"

#: src/lang.cls.php:86
msgid "Redis Database ID"
msgstr "ID de base de datos Redis"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Especifica la contraseña utilizada al conectar."

#: src/lang.cls.php:85
msgid "Password"
msgstr "Contraseña"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Solo disponible cuando está instalado %s."

#: src/lang.cls.php:84
msgid "Username"
msgstr "Nombre de usuario"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "El hostname o dirección IP de tu %s."

#: src/lang.cls.php:80
msgid "Method"
msgstr "Método"

#: src/purge.cls.php:370
msgid "Purge all object caches successfully."
msgstr "Vació de todas las cachés de objetos correctamente."

#: src/purge.cls.php:357
msgid "Object cache is not enabled."
msgstr "La caché de objetos no está activada."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Mejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)"

#: src/lang.cls.php:90
msgid "Cache Wp-Admin"
msgstr "Cachear wp-admin"

#: src/lang.cls.php:89
msgid "Persistent Connection"
msgstr "Conexión persistente"

#: src/lang.cls.php:88
msgid "Do Not Cache Groups"
msgstr "Grupos a no cachear"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Grupos cacheados a nivel de red."

#: src/lang.cls.php:87
msgid "Global Groups"
msgstr "Grupos globales"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Prueba de conexión"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "Extensión %s"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/summary.tpl.php:124
#: tpl/crawler/blacklist.tpl.php:32
msgid "Status"
msgstr "Estado"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "TTL por defecto para objetos cacheados."

#: src/lang.cls.php:83
msgid "Default Object Lifetime"
msgstr "Tiempo de vida por defecto del objeto"

#: src/lang.cls.php:82
msgid "Port"
msgstr "Puerto"

#: src/lang.cls.php:81
msgid "Host"
msgstr "Host"

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use object cache functionality."
msgstr "Usar la funcionalidad de la caché de objetos."

#: src/lang.cls.php:79 src/gui.cls.php:488 src/gui.cls.php:639
#: tpl/dash/dashboard.tpl.php:361 tpl/toolbox/purge.tpl.php:54
msgid "Object Cache"
msgstr "Caché de objetos"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Fallido"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Exitoso"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "No disponible"

#: tpl/toolbox/purge.tpl.php:55
msgid "Purge all the object caches"
msgstr "Vaciar todas las cachés de objetos"

#: src/cdn/cloudflare.cls.php:259
msgid "Failed to communicate with Cloudflare"
msgstr "Fallo al comunicar con Cloudflare"

#: src/cdn/cloudflare.cls.php:250
msgid "Communicated with Cloudflare successfully."
msgstr "Comunicado con éxito con Cloudflare."

#: src/cdn/cloudflare.cls.php:164
msgid "No available Cloudflare zone"
msgstr "No hay disponible una zona Cloudflare"

#: src/cdn/cloudflare.cls.php:150
msgid "Notified Cloudflare to purge all successfully."
msgstr "Avisado a Cloudflare el vaciado completo con éxito."

#: src/cdn/cloudflare.cls.php:134
msgid "Cloudflare API is set to off."
msgstr "La API de Cloudflare está configurada en off."

#: src/cdn/cloudflare.cls.php:117
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito."

#: tpl/cdn/settings.tpl.php:220
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Una vez guardado, coincidirá con la lista actual y se completará automáticamente."

#: tpl/cdn/settings.tpl.php:219
msgid "You can just type part of the domain."
msgstr "Puedes simplemente teclear parte de dominio."

#: tpl/cdn/settings.tpl.php:211
msgid "Domain"
msgstr "Dominio"

#: tpl/cdn/settings.tpl.php:201
msgid "Global API Key"
msgstr "Clave de API global"

#: tpl/cdn/settings.tpl.php:188
msgid "This can be managed from <a %2$s>%1$s</a>."
msgstr "Esto se puede gestionar desde <a %2$s>%1$s</a>."

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "API de Cloudflare"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Vaciar todo"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Caché de Cloudflare"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "El modo de desarrollo se desactivará automáticamente después de tres horas."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Omite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "El modo de desarrollo se desactivará automáticamente en %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "El estado actual es %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "El estado actual es %1$s desde %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Comprobar estado"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "APAGAR"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "ENCENDER"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Modo de desarrollo"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Zona de Cloudflare"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Dominio de Cloudflare"

#: src/gui.cls.php:629 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "For example"
msgstr "Por ejemplo"

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "La precarga DNS puede reducir la latencia para los visitantes."

#: src/lang.cls.php:128
msgid "DNS Prefetch"
msgstr "Prefetch DNS"

#: tpl/page_optm/settings_media.tpl.php:29
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Añade estilos a tus imágenes de carga diferida"

#: tpl/cdn/settings.tpl.php:93
msgid "Default value"
msgstr "Valor por defecto"

#: tpl/cdn/settings.tpl.php:90
msgid "Static file type links to be replaced by CDN links."
msgstr "Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s."

#: src/lang.cls.php:77
msgid "Drop Query String"
msgstr "Ignorar cadenas de consulta"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché."

#: src/lang.cls.php:181
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Mejorar compatibilidad HTTP/HTTPS"

#: tpl/img_optm/summary.tpl.php:372
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Eliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización."

#: tpl/img_optm/summary.tpl.php:368
msgid "Destroy All Optimization Data"
msgstr "Destruir todos los datos de optimización"

#: tpl/img_optm/summary.tpl.php:318
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Buscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "Esto aumentará el tamaño de los archivos optimizados."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Vaciar registro"

#: thirdparty/woocommerce.content.tpl.php:21
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "Para probar el carrito, visita la <a %s>FAQ</a>."

#: src/utility.cls.php:253
msgid " %s ago"
msgstr " hace %s"

#: src/media.cls.php:336
msgid "WebP saved %s"
msgstr "WebP guardado %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "Esto también generará una clave de API del servidor de LiteSpeed."

#: tpl/img_optm/summary.tpl.php:127
msgid "Last pull initiated by cron at %s."
msgstr "Última descarga iniciada por cron a las %s."

#: tpl/img_optm/summary.tpl.php:81
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Las imágenes serán descargadas automáticamente si la tarea cron si está ejecutando."

#: tpl/img_optm/summary.tpl.php:81
msgid "Only press the button if the pull cron job is disabled."
msgstr "Solo pulsar el botón si la tarea cron de descarga está desactivada."

#: tpl/img_optm/summary.tpl.php:88
msgid "Pull Images"
msgstr "Descargar imágenes"

#: tpl/img_optm/summary.tpl.php:112
msgid "This process is automatic."
msgstr "Este proceso es automático."

#: tpl/dash/dashboard.tpl.php:322 tpl/img_optm/summary.tpl.php:336
msgid "Last Request"
msgstr "Última petición"

#: src/lang.cls.php:28
msgid "Images failed to pull"
msgstr "Errores al descargar imágenes"

#: src/lang.cls.php:29 src/lang.cls.php:30
msgid "Images failed to fetch"
msgstr "Errores al obtener imágenes"

#: tpl/img_optm/summary.tpl.php:333
msgid "Images Pulled"
msgstr "Imágenes recuperadas"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Informe"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Enviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Enviar a LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Fecha de informe"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Número de informe"

#: thirdparty/woocommerce.content.tpl.php:76
msgid "Privately cache cart when not empty."
msgstr "Cachear carrito privadamente cuando no esté vacío."

#: thirdparty/woocommerce.content.tpl.php:71
msgid "Privately Cache Cart"
msgstr "Cachear carrito privadamente"

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr "Optimización de LiteSpeed"

#: tpl/page_optm/settings_html.tpl.php:102
msgid "This will also add a preconnect to Google for faster Google Fonts downloading."
msgstr "Esto también agregará un preconnect a Google para descarga más rápida de las fuentes."

#: src/lang.cls.php:133
msgid "Load Google Fonts Asynchronously"
msgstr "Cargar Google Fonts asíncronamente"

#: src/lang.cls.php:65
msgid "Browser Cache TTL"
msgstr "TTL caché de navegador"

#: tpl/img_optm/summary.tpl.php:340
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>."

#: src/doc.cls.php:40 src/doc.cls.php:92 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:56
#: tpl/img_optm/summary.tpl.php:96 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Leer más"

#: src/lang.cls.php:27
msgid "Images optimized and pulled"
msgstr "Imágenes optimizadas y descargadas"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:302
msgid "Images requested"
msgstr "Imágenes solicitadas"

#: tpl/img_optm/summary.tpl.php:308
msgid "Images not yet requested"
msgstr "Imágenes aún no solicitadas"

#: tpl/img_optm/summary.tpl.php:270 tpl/img_optm/summary.tpl.php:297
msgid "Images total"
msgstr "Total imágenes"

#: src/img-optm.cls.php:1677
msgid "Switched to optimized file successfully."
msgstr "Cambio correcto a archivo optimizado."

#: src/img-optm.cls.php:1670
msgid "Restored original file successfully."
msgstr "Archivo original restaurado con éxito."

#: src/img-optm.cls.php:1654
msgid "Enabled WebP file successfully."
msgstr "Archivo WebP activado con éxito."

#: src/img-optm.cls.php:1648
msgid "Disabled WebP file successfully."
msgstr "Archivo WebP desactivado con éxito."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes en QUIC.cloud"

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Mejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas."

#: src/lang.cls.php:186
msgid "Image WebP Replacement"
msgstr "Reemplazo de imágenes WebP"

#: tpl/cache/settings-excludes.tpl.php:124
msgid "Selected roles will be excluded from cache."
msgstr "Los perfiles seleccionados serán excluidos de la caché."

#: tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Ajustar"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "Selected roles will be excluded from all optimizations."
msgstr "Los perfiles seleccionados serán excluidos de todas las optimizaciones."

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Excluir perfiles"

#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Configuración de ajustes"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar."

#: tpl/cache/settings-excludes.tpl.php:64
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar."

#: tpl/img_optm/summary.tpl.php:111
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "Después de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas."

#: tpl/img_optm/summary.tpl.php:78
msgid "Send Optimization Request"
msgstr "Enviar solicitud de optimización"

#: tpl/img_optm/summary.tpl.php:261
msgid "Image Information"
msgstr "Información de imágenes"

#: tpl/img_optm/summary.tpl.php:330
msgid "Total Reduction"
msgstr "Reducción total"

#: tpl/img_optm/summary.tpl.php:327
msgid "Optimization Summary"
msgstr "Resumen de optimización"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "Optimización de imágenes de LiteSpeed Cache"

#: src/admin-display.cls.php:129 src/gui.cls.php:595
#: tpl/dash/network_dash.tpl.php:27 tpl/dash/dashboard.tpl.php:52
msgid "Image Optimization"
msgstr "Optimización de imágenes"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "Exclusiones de diferido de JS"

#: tpl/page_optm/settings_media.tpl.php:46
msgid "For example, %s can be used for a transparent placeholder."
msgstr "Por ejemplo, los %s pueden usarse para un marcador de posición transparente."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "By default a gray image placeholder %s will be used."
msgstr "Por defecto, se utilizará un marcador de posición de imagen gris %s."

#: tpl/page_optm/settings_media.tpl.php:44
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración."

#: tpl/page_optm/settings_media.tpl.php:43
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes."

#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:92
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_css.tpl.php:152
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Se excluirán los elementos con el atributo %s en código html."

#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/cache/settings-esi.tpl.php:96
msgid "Filter %s is supported."
msgstr "El filtro %s es compatible."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Las imágenes listadas no se cargarán de forma retrasada."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Exclusiones de carga retrasada de imágenes"

#: src/gui.cls.php:448
msgid "No optimization"
msgstr "Sin optimización"

#: tpl/page_optm/settings_tuning.tpl.php:107
msgid "Prevent any optimization of listed pages."
msgstr "Evitar cualquier optimización de las páginas listadas."

#: src/lang.cls.php:139
msgid "URI Excludes"
msgstr "URL excluidas"

#: tpl/page_optm/settings_html.tpl.php:129
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Deja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador."

#: src/doc.cls.php:79
msgid "Both full URLs and partial strings can be used."
msgstr "Pueden utilizarse tanto URLs completas como cadenas parciales."

#: tpl/page_optm/entry.tpl.php:35
msgid "Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "No se pudo crear la tabla Optimizador. Por favor, sigue la <a %s>Guía de creación de tablas del Wiki de LiteSpeed</a> para terminar la configuración."

#: tpl/page_optm/settings_media.tpl.php:202
msgid "Load iframes only when they enter the viewport."
msgstr "Cargar iframes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Retrasar la carga de iframes"

#: tpl/page_optm/settings_media.tpl.php:26
#: tpl/page_optm/settings_media.tpl.php:203
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales."

#: tpl/page_optm/settings_media.tpl.php:25
msgid "Load images only when they enter the viewport."
msgstr "Cargar las imágenes sólo cuando entran en la ventana de visualización."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Retrasar la carga de imágenes"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:12
msgid "Media Settings"
msgstr "Ajustes de medios"

#: tpl/cache/settings-excludes.tpl.php:37
msgid "For example, for %s, %s and %s can be used here."
msgstr "Por ejemplo, para %s, %s y %s puede utilizarse aquí."

#: tpl/cdn/settings.tpl.php:137 tpl/cache/settings-purge.tpl.php:110
#: tpl/cache/settings-esi.tpl.php:107
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s."

#: src/admin-display.cls.php:1101
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "Para que coincida con el principio, añade %s al comienzo del artículo."

#: src/admin-display.cls.php:1099
msgid "For example, for %s, %s can be used here."
msgstr "Por ejemplo, para %s, %s puede utilizarse aquí."

#: tpl/db_optm/manage.tpl.php:48
msgid "Purge all and clean all minified/combined CSS/JS data"
msgstr "Vaciar y limpiar todos los datos CSS/JS minimizados o combinados"

#: tpl/db_optm/manage.tpl.php:47
msgid "Clean CSS/JS Optimizer"
msgstr "Limpiar el optimizador CSS/JS"

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Quizás más tarde"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "Ya he dejado una valoración"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Bienvenido a LiteSpeed"

#: src/db-optm.cls.php:204
msgid "Clean all CSS/JS optimizer data successfully."
msgstr "Limpia todos los datos del optimizador CSS/JS correctamente."

#: src/lang.cls.php:137
msgid "Remove WordPress Emoji"
msgstr "Eliminar emojis de WordPress"

#: src/gui.cls.php:456
msgid "More settings"
msgstr "Más ajustes"

#: src/gui.cls.php:437
msgid "Private cache"
msgstr "Caché privada"

#: src/gui.cls.php:426
msgid "Non cacheable"
msgstr "No cacheable"

#: src/gui.cls.php:403
msgid "Mark this page as "
msgstr "Marcar esta página como "

#: src/gui.cls.php:395
msgid "Purge this page"
msgstr "Vaciar esta página"

#: tpl/page_optm/settings_js.tpl.php:74
msgid "Doing so can help reduce resource contention and improve performance."
msgstr "Hacerlo puede reducir la contención de recursos y mejorar el rendimiento."

#: src/lang.cls.php:124
msgid "Load JS Deferred"
msgstr "Deferir carga de JS"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s."

#: src/lang.cls.php:135
msgid "Critical CSS Rules"
msgstr "Reglas de CSS críticas"

#: src/lang.cls.php:117 tpl/page_optm/settings_tuning.tpl.php:73
#: tpl/page_optm/settings_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr "Cargar CSS asíncronamente"

#: tpl/page_optm/settings_html.tpl.php:116
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Evita que cargue Google Fonts en todas las páginas."

#: src/lang.cls.php:134
msgid "Remove Google Fonts"
msgstr "Eliminar Google Fonts"

#: tpl/page_optm/settings_html.tpl.php:130 tpl/page_optm/settings_js.tpl.php:75
#: tpl/page_optm/settings_media.tpl.php:217
#: tpl/page_optm/settings_css.tpl.php:148
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:80
msgid "Remove query strings from static resources."
msgstr "Eliminar query strings de recursos estáticos."

#: src/lang.cls.php:132
msgid "Remove Query Strings"
msgstr "Eliminar query strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "También puedes activar la caché del navegador en la administración del servidor. <a %s>Aprende más acerca del ajuste de la caché de navegador de LiteSpeed</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "El cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos."

#: src/lang.cls.php:58 tpl/dash/dashboard.tpl.php:362
msgid "Browser Cache"
msgstr "Caché del navegador"

#: tpl/cache/settings-excludes.tpl.php:91
msgid "tags"
msgstr "etiquetas"

#: src/lang.cls.php:102
msgid "Do Not Cache Tags"
msgstr "Etiquetas a no cachear"

#: tpl/cache/settings-excludes.tpl.php:98
msgid "To exclude %1$s, insert %2$s."
msgstr "Para excluir %1$s, insertar %2$s."

#: tpl/cache/settings-excludes.tpl.php:58
msgid "categories"
msgstr "categorías"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings-excludes.tpl.php:58
#: tpl/cache/settings-excludes.tpl.php:91
msgid "To prevent %s from being cached, enter them here."
msgstr "Para evitar que los %s sean almacenados en la caché, introdúcelos aquí."

#: src/lang.cls.php:101
msgid "Do Not Cache Categories"
msgstr "Categorías a no cachear"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "Query strings containing these parameters will not be cached."
msgstr "Las cadenas de consulta que contengan estos parámetros no se almacenarán en la caché."

#: src/lang.cls.php:100
msgid "Do Not Cache Query Strings"
msgstr "Cadenas de consulta a no cachear"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Las rutas que contengan estas cadenas no serán cacheadas."

#: src/lang.cls.php:99
msgid "Do Not Cache URIs"
msgstr "URIs a no cachear"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "Los registros serán enviados a %s."

#: src/admin-display.cls.php:1103 src/doc.cls.php:61
msgid "One per line."
msgstr "Una por línea."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "Las rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas."

#: src/lang.cls.php:76
msgid "Private Cached URIs"
msgstr "URIs cacheadas privadamente"

#: tpl/cdn/settings.tpl.php:173
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Las rutas que contengan las siguientes cadenas no se servirán desde el CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Excluir ruta"

#: tpl/cdn/settings.tpl.php:92
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "Esto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:96
msgid "Include File Types"
msgstr "Incluir tipos de archivo"

#: tpl/cdn/settings.tpl.php:86
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Incluir JS"

#: tpl/cdn/settings.tpl.php:82
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Servir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Incluir CSS"

#: tpl/cdn/settings.tpl.php:78
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Incluir imágenes"

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr "URL de la CDN a utilizar. Por ejemplo, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "URL de CDN"

#: tpl/cdn/settings.tpl.php:136
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "URL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "URLs originales"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "Ajustes de CDN"

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:188
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:239 src/admin-display.cls.php:800
#: src/admin-display.cls.php:833 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:181
#: tpl/cache/settings_inc.object.tpl.php:210
#: tpl/cache/settings-cache.tpl.php:19 tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:238 src/admin-display.cls.php:799
#: src/admin-display.cls.php:834 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:156
#: tpl/page_optm/settings_css.tpl.php:149
#: tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:167 tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:301
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed."

#: tpl/page_optm/settings_html.tpl.php:36
msgid "Minify HTML content."
msgstr "Minificar contenido HTML."

#: src/lang.cls.php:116
msgid "HTML Minify"
msgstr "Minificar HTML"

#: src/lang.cls.php:115
msgid "CSS/JS Cache TTL"
msgstr "TTL de caché CSS/JS"

#: src/lang.cls.php:131
msgid "JS Excludes"
msgstr "Excluir JS"

#: tpl/page_optm/settings_js.tpl.php:61
msgid "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-enviar archivos JS internos al navegador antes de que sean solicitados. (Requiere del protocolo HTTP/2)"

#: src/lang.cls.php:114
msgid "JS HTTP/2 Push"
msgstr "Push HTTP/2 de JS"

#: src/lang.cls.php:112 src/data.upgrade.func.php:42
msgid "JS Combine"
msgstr "Combinar JS"

#: src/lang.cls.php:111
msgid "JS Minify"
msgstr "Minificar JS"

#: src/lang.cls.php:130
msgid "CSS Excludes"
msgstr "Excluir CSS"

#: tpl/page_optm/settings_css.tpl.php:128
msgid "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-enviar archivos CSS internos al navegador antes de que sean solicitados. (Requiere del protocolo HTTP/2)"

#: src/lang.cls.php:110
msgid "CSS HTTP/2 Push"
msgstr "Push HTTP/2 de CSS"

#: src/lang.cls.php:105
msgid "CSS Combine"
msgstr "Combinar CSS"

#: src/lang.cls.php:104
msgid "CSS Minify"
msgstr "Minificar CSS"

#: tpl/page_optm/entry.tpl.php:52
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Vaciar todo»."

#: tpl/toolbox/purge.tpl.php:46
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "Esto vaciará solo las entradas CSS/JS minimizadas o combinadas"

#: tpl/page_optm/settings_html.tpl.php:7
msgid "Optimization Settings"
msgstr "Ajustes de optimización"

#: tpl/toolbox/purge.tpl.php:34
msgid "Purge error pages, including 500 pages"
msgstr "Vaciar páginas de error, incluyendo páginas 500"

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge 500 Error"
msgstr "Vaciar error 500"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge error pages, including %s pages"
msgstr "Vaciar páginas de error, incluyendo páginas %s"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Vaciar error %s"

#: tpl/db_optm/manage.tpl.php:78
msgid "Database Optimizer"
msgstr "Optimizador de base de datos"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimizar todas las tablas en tu base de datos"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimizar tablas"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Borrar todas las opciones de datos transitorios"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "Todos los datos transitorios"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Borrar opciones de datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Datos transitorios expirados"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Borrar todos los trackbacks y pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Borrar todos los comentarios en la papelera"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Comentarios enviados a la papelera"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Borrar todos los comentarios spam"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Comentarios spam"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Borrar todas las entradas y páginas en la papelera"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Entradas enviadas a la papelera"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Borrar todos los borradores guardados automáticamente"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Borradores automáticos"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Borrar todas las revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Revisiones de entradas"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Limpiar todo"

#: src/db-optm.cls.php:197
msgid "Optimized all tables."
msgstr "Optimizadas todas las tablas."

#: src/db-optm.cls.php:187
msgid "Clean all transients successfully."
msgstr "Limpieza de todos los datos transitorios exitosa."

#: src/db-optm.cls.php:183
msgid "Clean expired transients successfully."
msgstr "Limpieza de datos transitorios expirados exitosa."

#: src/db-optm.cls.php:179
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Limpieza de trackbacks y pingbacks exitosa."

#: src/db-optm.cls.php:175
msgid "Clean trashed comments successfully."
msgstr "Limpieza de comentarios en papelera exitosa."

#: src/db-optm.cls.php:171
msgid "Clean spam comments successfully."
msgstr "Limpieza de comentarios no deseados exitosa."

#: src/db-optm.cls.php:167
msgid "Clean trashed posts and pages successfully."
msgstr "Limpieza de páginas y entradas en papelera exitosa."

#: src/db-optm.cls.php:163
msgid "Clean auto drafts successfully."
msgstr "Limpieza de borradores automáticos exitosa."

#: src/db-optm.cls.php:159
msgid "Clean post revisions successfully."
msgstr "Limpieza de revisiones de entradas exitosa."

#: src/db-optm.cls.php:132
msgid "Clean all successfully."
msgstr "Limpieza completa exitosa."

#: src/lang.cls.php:60
msgid "Default Private Cache TTL"
msgstr "TTL por defecto de la caché privada"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de \"editar\", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto."

#: src/lang.cls.php:179
msgid "Vary Group"
msgstr "Grupos de variación"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Almacena en la caché el bloque ESI del formulario de comentarios incluido."

#: src/lang.cls.php:177
msgid "Cache Comment Form"
msgstr "Cachear formulario de comentario"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Almacena en la caché el bloque ESI de la barra de administración incluida."

#: src/lang.cls.php:176
msgid "Cache Admin Bar"
msgstr "Cachear barra de administrador"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Actívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite \"hacer huecos\" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Privada"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Pública"

#: tpl/cache/settings-purge.tpl.php:7
#: tpl/cache/network_settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Ajustes del vaciado"

#: src/lang.cls.php:73
msgid "Cache PHP Resources"
msgstr "Cachear recursos de PHP"

#: src/lang.cls.php:74 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "Cache Mobile"
msgstr "Cache móvil"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "El nivel avanzado registrará más detalles."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Básico"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado."

#: src/lang.cls.php:71
msgid "Cache Login Page"
msgstr "Cachear página de acceso"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cachear peticiones realizadas por llamadas de la API REST de WordPress."

#: src/lang.cls.php:70
msgid "Cache REST API"
msgstr "Cachear API REST"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)"

#: src/lang.cls.php:69
msgid "Cache Commenters"
msgstr "Cachear comentaristas"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)"

#: src/lang.cls.php:68
msgid "Cache Logged-in Users"
msgstr "Cachear usuarios con sesión iniciada"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Ajustes de control de caché"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excluir"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:135
msgid "Purge"
msgstr "Vaciar"

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Caché"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Se ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (<a %3$s>Más Información</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "La hora actual del servidor es %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Especifica la hora para vaciar la lista «%s»."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Tanto %1$s como %2$s son aceptables."

#: src/lang.cls.php:96 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Hora de vaciado programado"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción «%s»."

#: src/lang.cls.php:95 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "URLs de vaciado programado"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Acortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Registra los valores solicitados de las cookies."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Límite de tamaño de archivo de registro"

#: src/htaccess.cls.php:843
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$s"

#: src/error.cls.php:92 src/error.cls.php:116
msgid "%s file not writable."
msgstr "No se puede escribir el archivo %s."

#: src/error.cls.php:112
msgid "%s file not readable."
msgstr "No se puede leer el archivo %s."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Colapsar cadenas de peticiones"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Registrar cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "Ajustes de ESI"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "Un TTL de 0 implica no cachear."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Valor recomendado: 28800 segundos (8 horas)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "TTL caché de Widgets:"

#: src/lang.cls.php:175 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Activar ESI"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."
msgstr "El crawler puede utilizar tu sitemap de Google en lugar del suyo propio. Introduce la URL completa de tu sitemap aquí."

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "Ver <a %s>Introducción para activar el Crawler</a> para información detallada."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Sitemap personalizado"

#: tpl/toolbox/purge.tpl.php:237
msgid "Purge pages by relative or full URL."
msgstr "Vaciar páginas por URL completa o relativa."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "La característica de crawler no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor."

#: tpl/cdn/manage.tpl.php:21 tpl/page_optm/entry.tpl.php:34
#: tpl/page_optm/settings_localization.tpl.php:11
#: tpl/page_optm/settings_css.tpl.php:143 tpl/cache/settings-esi.tpl.php:35
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:19
msgid "WARNING"
msgstr "ADVERTENCIA"

#: tpl/dash/dashboard.tpl.php:497 tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Última indexación:</b> %s elemento(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "La siguiente indexación de sitemap completa empezará a las"

#: src/file.cls.php:176
msgid "Failed to write to %s."
msgstr "Error al escribir a %s."

#: src/file.cls.php:157
msgid "Folder is not writable: %s."
msgstr "El directorio no es escribible: %s."

#: src/file.cls.php:149
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "No se puede crear el directorio: %1$s. Error: %2$s"

#: src/file.cls.php:140
msgid "Folder does not exist: %s"
msgstr "El directorio no existe: %s"

#: src/core.cls.php:262
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Solicitado el vaciado de la lista al servidor web LiteSpeed."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Por favor, visita la página de <a %s>Información</a> sobre como probar la caché."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Límite de carga del servidor"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Especifica el número de hilos a utilizar durante la indexación."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Intervalo de indexación"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Intervalo entre ejecuciones"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Especifica un tiempo en segundos para la duración del intervalo de indexación."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microsegundos"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Y otro WordPress instalado (NO MULTISITIO) en %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "Ajustes de la caché de la red de caché de LiteSpeed"

#: tpl/toolbox/purge.tpl.php:172
msgid "Select below for \"Purge by\" options."
msgstr "Selecciona debajo las opciones de «Vaciar por»."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "CDN de la caché de LiteSpeed"

#: tpl/crawler/summary.tpl.php:217
msgid "No crawler meta file generated yet"
msgstr "Archivo meta del crawler aún no generado"

#: tpl/crawler/summary.tpl.php:199
msgid "Show crawler status"
msgstr "Mostrar estado del Crawler"

#: tpl/crawler/summary.tpl.php:192
msgid "Watch Crawler Status"
msgstr "Ver estado del Crawler"

#: tpl/crawler/summary.tpl.php:187
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema."

#: tpl/crawler/summary.tpl.php:184
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "La frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Ejecutar manualmente"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reestablecer posición"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Frecuencia de ejecución"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Nombre del Cron"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Cron del Crawler"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minuto"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutos"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hora"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d horas"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generado en %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "Crawler de LiteSpeed Cache"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Hilos"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Duración de la ejecución"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Retraso"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>."

#: src/admin-display.cls.php:135 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:536
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Solicitado el vaciado de todas las páginas al servidor web LiteSpeed."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "Todas las páginas con widget de Entradas recientes"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Páginas"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "Esto solo vaciará las páginas"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Vaciar páginas"

#: thirdparty/woocommerce.content.tpl.php:63
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "Por ejemplo, si la página de inicio de esta web se encuentra al %1$s, la página de la tienda puede encontrarse al %2$s."

#: tpl/cdn/settings.tpl.php:192
msgid "Email Address"
msgstr "Dirección de correo electrónico"

#: tpl/general/settings.tpl.php:101
msgid "Warning"
msgstr "Advertencia"

#: src/gui.cls.php:728
msgid "Install Now"
msgstr "Instalar ahora"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "¡Se ha vaciado la URL!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "¡Se ha vaciado el blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "¡Se ha vaciado todo!"

#: src/purge.cls.php:555
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Solicitado el vaciado de las páginas de error al servidor web LiteSpeed."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "Si no, por favor verifica el ajuste en la <a href=\"%1$s\">pestaña Avanzado</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "El ajuste de administrador de red puede ser modificado aquí."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas."

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Please consult the host/server admin before making any changes."
msgstr "Por favor consulta con del administrador del host/servidor antes de hacer cualquier cambio."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "Recomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero."

#: tpl/toolbox/purge.tpl.php:228
msgid "Purge pages by post ID."
msgstr "Vaciar páginas por ID de entrada."

#: tpl/toolbox/purge.tpl.php:40
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Vacía las entradas de caché de LiteSpeed creadas por este plugin"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "Esto vaciará solo la página principal"

#: tpl/toolbox/purge.tpl.php:232
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s."

#: tpl/toolbox/purge.tpl.php:238
msgid "e.g. Use %s or %s."
msgstr "ej: Usa %s o %s."

#: tpl/toolbox/purge.tpl.php:223
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Vaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s."

#: tpl/toolbox/purge.tpl.php:126
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo»."

#: src/core.cls.php:257
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Solicitado el vaciado de todo al servidor web LiteSpeed."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Usar configuración del sitio principal"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "Esto desactivará la página de ajustes en todos los subsitios."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Marca esta opción para usar la configuración del sitio principal para todos los subsitios."

#: src/admin-display.cls.php:674
msgid "Save Changes"
msgstr "Guardar cambios"

#: tpl/inc/check_if_network_disable_all.php:22
msgid "The following options are selected, but are not editable in this settings page."
msgstr "Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes."

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The network admin selected use primary site configs for all subsites."
msgstr "El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios."

#: tpl/toolbox/purge.tpl.php:118
msgid "Empty Entire Cache"
msgstr "Vaciar la caché entera"

#: tpl/toolbox/purge.tpl.php:120
msgid "This action should only be used if things are cached incorrectly."
msgstr "Esta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente."

#: tpl/toolbox/purge.tpl.php:119
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>."

#: tpl/toolbox/purge.tpl.php:125
msgid "This may cause heavy load on the server."
msgstr "Esto puede causar una alta carga en el servidor."

#: tpl/toolbox/purge.tpl.php:124
msgid "This will clear EVERYTHING inside the cache."
msgstr "Esto eliminará TODO dentro de la caché."

#: src/gui.cls.php:562
msgid "LiteSpeed Cache Purge All"
msgstr "Vaciar toda la caché de LiteSpeed"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "Si no quieres la aceleración de litespeed, puedes desactivar este plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Crear una entrada, asegurarse que la página principal está actualizada."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visitar el sitio sin la sesión iniciada."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Ejemplos de pruebas incluyen:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "Este mensaje indica que el plugin fue instalado por el administrador del servidor."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "¡El plugin LiteSpeed Cache está instalado!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Registro de depuración"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Solo la IP del administrador"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "El informe de entorno contiene información detallada sobre la configuración de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "El servidor determinará si el usuario tiene sesión iniciada en base a la existencia de esta cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
msgid "Note"
msgstr "Nota"

#: thirdparty/woocommerce.content.tpl.php:20
msgid "After verifying that the cache works in general, please test the cart."
msgstr "Después de que la caché funcione en general, por favor prueba el carrito."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado."

#: src/lang.cls.php:93
msgid "Purge All On Upgrade"
msgstr "Vaciar todo al actualizar"

#: tpl/toolbox/edit_htaccess.tpl.php:92
msgid "File editing is disabled in configuration."
msgstr "La edición de archivos está desactivada en la configuración."

#: thirdparty/woocommerce.content.tpl.php:57
msgid "Use Front Page TTL for the Shop Page"
msgstr "Usar TTL de la página principal para la página de tienda"

#: thirdparty/woocommerce.content.tpl.php:28
msgid "Product Update Interval"
msgstr "Intervalo de actualización de producto"

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Marcar esta opción forzará a la página de tienda a usar el ajuste de TTL de la página principal."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Vaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "No vaciar las categorías al cambiar la cantidad o estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Purge product only when the stock status changes."
msgstr "Vaciar los productos solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:34
msgid "Purge product and categories only when the stock status changes."
msgstr "Vaciar productos y categorías solo cuando cambie el estado del inventario."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge categories only when stock status changes."
msgstr "Vaciar las categorías solo cuando el estado del inventario cambie."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge product on changes to the quantity or stock status."
msgstr "Vaciar los productos con los cambios de cantidad o estado del inventario."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:42
msgid "Htaccess did not match configuration option."
msgstr "El htaccess no coincide con la opción de configuración."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "Si esto se fija en un número inferior a 30, los feeds no serán cacheados."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Especifica por cuanto tiempo, en segundos, se cachean los feeds."

#: src/lang.cls.php:62
msgid "Default Feed TTL"
msgstr "TTL por defecto del Feed"

#: src/error.cls.php:120
msgid "Failed to get %s file contents."
msgstr "Error al obtener contenido del archivo %s."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Algunos temas y plugins añaden recursos mediante una petición PHP."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "El favicon.ico es solicitado en la mayoría de las páginas."

#: src/lang.cls.php:72
msgid "Cache favicon.ico"
msgstr "Cachear favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Desactivar esta opción puede afectar negativamente al rendimiento."

#: src/htaccess.cls.php:910
msgid "File Saved."
msgstr "Archivo guardado."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Cookie de acceso no válida. Encontrados caracteres no válidos."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "ADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden."

#: src/error.cls.php:104
msgid "Invalid login cookie. Please check the %s file."
msgstr "Cookie de acceso no válida. Por favor, comprueba el archivo %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "Hay un WordPress instalado para %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Ejemplo de uso:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "La cookie aquí establecida será usada por esta instalación de WordPress."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "Este ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "La cookie de acceso por defecto es %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "DEBE SER DIFERENTE DE OTRAS APLICACIONES WEB."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "Espacios no permitidos y sensible a mayúsculas."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SINTAXIS: alfanumérico y \"_\"."

#: src/lang.cls.php:185
msgid "Login Cookie"
msgstr "Cookie de acceso"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "Aquí se puede encontrar más información sobre los comandos disponibles."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS."

#: tpl/toolbox/edit_htaccess.tpl.php:98
msgid "Current %s Contents"
msgstr "Contenidos actuales de %s"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Avanzado"

#: tpl/cache/settings-advanced.tpl.php:7
#: tpl/cache/network_settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Ajustes avanzados"

#: tpl/toolbox/purge.tpl.php:251
msgid "Purge List"
msgstr "Vaciar lista"

#: tpl/toolbox/purge.tpl.php:170
msgid "Purge By..."
msgstr "Vaciar por..."

#: tpl/crawler/map.tpl.php:43 tpl/crawler/blacklist.tpl.php:31
#: tpl/toolbox/purge.tpl.php:217
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:211
msgid "Tag"
msgstr "Etiqueta"

#: tpl/toolbox/purge.tpl.php:205
msgid "Post ID"
msgstr "ID de entrada"

#: tpl/toolbox/purge.tpl.php:199
msgid "Category"
msgstr "Categoría"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión."

#: src/purge.cls.php:640
msgid "Purge url %s"
msgstr "Vaciar la URL %s"

#: src/purge.cls.php:609
msgid "Purge tag %s"
msgstr "Vaciar la etiqueta %s"

#: src/purge.cls.php:582
msgid "Purge category %s"
msgstr "Vaciar la categoría %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas."

#: tpl/page_optm/entry.tpl.php:41 tpl/page_optm/entry.tpl.php:51
#: tpl/cache/settings-cache.tpl.php:27
msgid "NOTICE"
msgstr "AVISO"

#: src/doc.cls.php:91
msgid "This setting will edit the .htaccess file."
msgstr "Este ajuste editará el archivo .htaccess."

#: tpl/toolbox/edit_htaccess.tpl.php:100
msgid "DO NOT EDIT ANYTHING WITHIN %s"
msgstr "NO EDITAR NADA EN %s"

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid "Any changes made to the .htaccess file may break the site."
msgstr "Cualquier cambio hecho al archivo .htaccess puede romper el sitio."

#: tpl/toolbox/edit_htaccess.tpl.php:39
msgid "LiteSpeed Cache Edit .htaccess"
msgstr "Editar .htaccess LiteSpeed Cache"

#: src/error.cls.php:108
msgid "Failed to back up %s file, aborted changes."
msgstr "Fallo al hacer copia de seguridad del archivo %s, cambios cancelados."

#: src/lang.cls.php:183
msgid "Do Not Cache Cookies"
msgstr "Cookies a no cachear"

#: src/lang.cls.php:184
msgid "Do Not Cache User Agents"
msgstr "User Agents a no cachear"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Habilitar caché de red"

#: thirdparty/woocommerce.content.tpl.php:19
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/report.tpl.php:29
#: tpl/toolbox/heartbeat.tpl.php:14
msgid "NOTICE:"
msgstr "AVISO:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Otras opciones serán ignoradas."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio."

#: src/lang.cls.php:75 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "List of Mobile User Agents"
msgstr "Lista de User Agents móviles"

#: src/file.cls.php:164 src/file.cls.php:169
msgid "File %s is not writable."
msgstr "No se puede escribir el archivo %s."

#: tpl/toolbox/entry.tpl.php:14
msgid "Edit .htaccess"
msgstr "Editar .htaccess"

#: tpl/page_optm/settings_js.tpl.php:7 tpl/page_optm/entry.tpl.php:7
msgid "JS Settings"
msgstr "Ajustes de JS"

#: src/gui.cls.php:578 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:188
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Gestionar"

#: src/lang.cls.php:61
msgid "Default Front Page TTL"
msgstr "TTL por defecto de la Página Principal"

#: src/purge.cls.php:523
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Solicitado al servidor web LiteSpeed el vaciado de la página de inicio."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Vaciar la página de inicio"

#: tpl/page_optm/settings_localization.tpl.php:124
#: tpl/toolbox/beta_test.tpl.php:27
msgid "Example"
msgstr "Ejemplo"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "All tags are cached by default."
msgstr "Todas las etiquetas son cacheadas por defecto."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "All categories are cached by default."
msgstr "Todas las categorías son cacheadas por defecto."

#: src/admin-display.cls.php:1102
msgid "To do an exact match, add %s to the end of the URL."
msgstr "Para coincidencias exactas, añadir %s al final de la URL."

#: src/admin-display.cls.php:1098
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "Las URLs serán comparadas con la variable REQUEST_URI del servidor."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notas"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Usar ajuste de administrador de red"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Desactivar"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Activar LiteSpeed Cache para WordPress aquí activa la caché para la red."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Desactivado"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Activado"

#: src/lang.cls.php:103
msgid "Do Not Cache Roles"
msgstr "No cachear perfiles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Se muestra en el registro de depuración de WordPress."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Nivel de depuración"

#: tpl/general/settings.tpl.php:83 tpl/general/settings.tpl.php:94
#: tpl/general/settings.tpl.php:106 tpl/general/settings.tpl.php:150
msgid "Notice"
msgstr "Nota"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Archivo de término (incluye categoría, etiqueta y taxonomía)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Archivo diario"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Archivo mensual"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Archivo anual"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Archivo de tipo de contenido"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Archivo del Autor"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Página de Inicio"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Página de inicio"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "Todas las páginas"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Selecciona que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadas"

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Reglas de vaciado automático para publicación y actualización"

#: src/lang.cls.php:59
msgid "Default Public Cache TTL"
msgstr "TTL por defecto de la caché pública"

#: src/admin-display.cls.php:917 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/esi_widget_edit.php:70 tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89
msgid "seconds"
msgstr "segundos"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "IPs de administrador"

#: src/admin-display.cls.php:123
msgid "General"
msgstr "Opciones generales"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "Configuración de Caché de LiteSpeed"

#: src/purge.cls.php:212
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Solicitado al servidor web LiteSpeed el vaciado de todas las entradas de LSCache."

#: src/gui.cls.php:463 src/gui.cls.php:471 src/gui.cls.php:479
#: src/gui.cls.php:488 src/gui.cls.php:498 src/gui.cls.php:508
#: src/gui.cls.php:518 src/gui.cls.php:528 src/gui.cls.php:538
#: src/gui.cls.php:604 src/gui.cls.php:612 src/gui.cls.php:620
#: src/gui.cls.php:629 src/gui.cls.php:639 src/gui.cls.php:649
#: src/gui.cls.php:659 src/gui.cls.php:669 src/gui.cls.php:679
#: src/gui.cls.php:689 tpl/toolbox/purge.tpl.php:39
#: tpl/toolbox/purge.tpl.php:45 tpl/toolbox/purge.tpl.php:54
#: tpl/toolbox/purge.tpl.php:63 tpl/toolbox/purge.tpl.php:72
#: tpl/toolbox/purge.tpl.php:81 tpl/toolbox/purge.tpl.php:90
#: tpl/toolbox/purge.tpl.php:99 tpl/toolbox/purge.tpl.php:108
msgid "Purge All"
msgstr "Purgar todo"

#: src/admin-display.cls.php:281 src/gui.cls.php:586
msgid "Settings"
msgstr "Ajustes"PK\�oR�W"{w{�litespeed-cache-en_ZA.poUT	��O`��O`ux�����kr�H�.��W��nu)m(*�UV^c������RU[��"R@� Ų���`60��,b���-���o�;�A�ʜ��V�b������;�]�q^m�:+�XE�u�Wѳ�MV��4M��x�NI�E/6i�N�:*�MW�wQ�G/��MV���ž^GG�2[���?G�묊V�F�M��.�ž&D�y��QMW�6�6�2ͫ4�+L�O7v��S|��Ӷ�Β��o�� ���g�ӛ�"�|vB*���A�Yo@���/������#��KN��=}���_�ʿ���4����4��]���:�\?�m�,�c�\�e���p���L/�J�g/�e�d���h��j,CFYƛg��r[������4�cD��S}�G,��g��<-�(_D�7E}^�U�|x�;�=�7�u|8��o�zO&�E��W�~D[*�_�e��4�������QU.�oH3��Mu�[�^�S>�o�e��Aw�+��\�Wiy@o�ɞ�%Y<Np0�!#�FR	P��m�/��9����nuH��h�	\�˜�*�Y��I�_�([Ew�>��4�W�GlѢ�t�ݤ�]t�ַE�)zz|r��at������N�IG�=����(�ɿ�k�ZI�EMH���6�����T6�_�;֮B�(R������_�C9��ƗuG6�U���bq�6��+��R�����Z�wz�/��*�l�f�M� ��u^�i�La�:��֟�O�b_.ӊ�u���LobY�2��]��PY��9J�l��u��Vs(dw�w��� h�Ӛ��IM_\<��""5�-��IN|@/8,��"���Im�|�nY?�*����bS��mͼ����
LͲ(�
n/�P�<���6��r8I��x\~��v09ߓb��FgU�Oa���Ds�.T�>OuQl��狴���T353���3;�_g�O����*ɖ�n�Z��[0�վ�Փ�&�I����e|�!��6މ�d؟��!�!_iU��#e�@��$Z��bU��!���B��,-9|��,O���p)s���y�oH�l�[���YV���/�4_n�	=Ӑ43��?��[�FzޮӜ�"UD������C��%�s�nv�c$�OM�?�]�eVg�\"�$!~@�e�uT���&��Y)X�U���eY�U���0���H�e%~��:$p��iyK�XQ*0��-a&�	
,�ҍz��].>�Yx��<��\6�M�.�b��e�;����s\�xQ���Ux�/!�(q|�&���!�}�sL�RJ��ȩ�]�J�[�߷��v�OM�w��'��Sn�����v7�ٟ�O��G�b	��s��C�{�A?A���T��	[��H�^�B�������!�-���|2XHS��k��d&n�7���ɵ,WN<������ S����&�{{�O�M�9K���{`Z���p*5,�9�ho�>���	'�"��5]{2��U)��ݮ,]�Vْ�.ԇ�#�
�߇��u��c�ϗ_}��#�O�h�ͮ|��O���\R�)�4L�+JX�������~���ߓ}Jl���>���*19��*6�]��Vʇ/R2�5y���^�kQ�Gz��1���o�|O��;$@���]��x��M�뒿k89�#���jBa������k[�����P�=A\��L7�'�}�dyQ߉G#q�d9���/��
VD���*��E�k�΁�ͅ�*?�(��@kFpL�tۦ U��z	�*/�%��Z�8m]{(���٨o^U�<sh��+s�7X��-TٵR59wO���~�#p�,M�s����R��G��\�,_��#�"ZB�@v�������m]l���y���>%G-��̣X���P�14�
�7
���IN�����A�
�䗕2�*�����ϛ?�����gU�'��m�d�U�y�|��1F�l�%��e�N�V��)��)�ʶ���I��wvD���=��6�k�W	ו���K�C�SIN�x��E��}@�-3���9�#}��	�R�n���>��:&���b�t������P��E��S�$SY24A�9��!S�h��Ùd�qPgE�,�]]��*Cn���w$g=�.F�Ll�2���
N2�R�bܴ�U쭻�x���x��:�'$6�'R �x�<�#� (��0t��uN��	tR�c:���p��R�}MRk��.�nL�Z*�;*���̠:f��5��g�>��8×YT��L�EZހ����f�tO)(|�f(AO�1�hUvZ���J���P5DSZ��e���;nQ��M�$֜]Pv���<I��T�j)b��t�pa`�����V$�DWVA�Y��k�i��g�[��i�ɼ���,�4�2�m��u�*��%;�B�V�������K���T!��_��`Vs�ϒ��:;��t��j�e����E�u���V�i����|�d�`Ql�C��c-�y�vk���G3ظ�*8��*/�
p��<�uQR	@F�����#��4����w @�h
/���jp�C1p4�hx�F�r!�:�>Ag��.�=H9�6eY��1|~�^��	�^�T=�j�A�?䌽ɖx�^7;t�+`�Qݡ:X����I(9�`+���*�<k,�6�?�Y�,�������Mߍ�L6��}��]��)�H���1;��"G�2%,&h��AY�dz�Ň�QfSNݯ藆$h��= �b_�`�P�9$n45[��T�T����K��i�j�Q�)3~�El�U�Éf�k�
��XQ�
��)�;��~���l�&�l]��_Y��B-�&]���|z��P\4�h�-��LX�ٌTTU4О�雋��B��<*�S:�ed„i3�M<A���p�� ;���T�^G�x���K.>Z�T�m���w0���}�g�)2��U���~���g&/�8Ai����+0�9y�:��#„�
`v)��b���\�l��w�^,�/S!g��Y���i �"�yRSv��5U��k��j�C8n�ŒayEZK9�q�>Y�eR�N��,�*��'f0rH��Hɞ�K�Tʬ<,ՠ1�Ź���[eרؑ�hnqr���&E������g/�C��X�QN�J��]��}�����\y.B[Ж�@T}��^����™�X�x�=�N�wb}��h����yG�/8n��3)R:q۸^��:&�",m��b�� Ԝ����۔�-�6H�Vߡt%����O�[��U�$Qu$adMz��(�	�j�;c���P�Y"�s��%HO��4}(����'�3IT���l��:�c�B��� �Z{�>=���$C���c�8������Ӌ��㗓�^Ύ��UQ�;�0�z�ƪ��X�A,a�V���/�t�H�K����bI��q��B�\�Rr�R�R�����%�%a=p��*�s��l��Z�j��ִ�c��;!��%� ����M�ֹ0���ơ��v�z]e*�F��-�p����"s��_��M\�%W���=�X�ڝB��G����bv�~��G�(�Ty{&��j;e�n�?�95�+j
����~95�����h+�ng<��.�*N"��6`��Z�����4a�Sش@S�L҆	��e�E�&��[�'d���4�,�d�Q��9Yk��Ũ�W:$�.�C^B����0³��y"y�Jr�Ы׎��Y8��iH7��
����y�xO���9^�r��2���ئeU��#p^ܥ� ����9!`���fK��L��Z�����
�ÀS�B䔾�b�:�3N���=��w9>��]-��[��mK��?g��\�Ha�m�k�vg8U��vlR	�
�{�@���tH��x���s��Y�ٓ�o@��9�=
����#ڭ�bA��#*�~��he�/K�<�2�&"��(J��*G'Y���;�D�[�mO���&�a��V'���!�{�|�M��t��;�;�9b�xI=#��f�bc�
6��0�,䪓7����<�Ma׹�G~����z}�
І�kqZ[n3�qMi|��i4I˻�1Q�����9?�4]�iR8V�䡢�ί��d�*u�)à�K\�'x6g�L7[]��^�qmQ���3��"�EYl"Q�gÀ�(J��KE��3OE�*���}
n$�#yR��nhy/'asW�)�4�����o:�~"�ޗ��m����<IY�wπ}�0��+{�ui�z1���4dN�6�tE�@xsˈ:V�wi�g��æU�L�X�TA�\>1:I��Q�VQAP�j�-�'pN
[,A�N�b����(��� ��eIJ� �,�1�Ƥ�qUq#y��i��
�)�uF�!i�2V]w�<��n�4�C�x����˛,�D-B�L���b��(��t
'E�!��S�f����]ܑw�6:�+�|��<a�D�Fl�T��2)�<ai����t�����<Y��NuKv���Ƃ�A�}]<�R�+O�)�u����*��
;�Q�7 �\��"5IS�<E��M���iqz�6x��z�lթ ��VzJ��>�ބbV1�=�|� z��N�*���A�WS��Lj���v��&[BS�U$Ѯ]Z��#��#4�(���%{)�����8YdU�K��kq˼6��>J����[%_(يU�P�toS�z�n�m��˔����Y�3��W����ߩ��oN-�lE��ѐ
l?ĥ �� %��Vp��M�,!��Z�]�F�}�T���a��}	w~`q`6,�.Z�ZA�傛7�1#�֠�K��-6�)��P茜�?�|͵DM�SMo*��Y(;��-H��KT,��T�V4TG�P�9�GQ��P�쓪g�!-'&A����� �`*roɶ.��p� Z�eM�9mGc� %|ٻ����HjkD
녉BQ�<���Jkh�z�
_Om�$O�ƒ�o��X2���oTҹ��%ˤ�&�#l�B�My_e��r��X3�)�<�JHXvp���[�J�ڀɔ"�'W���mg��݄,,�B�|(Р�:���1�5kJX|}Jӝf�	J��)[�V����*a�>1�*��→�0V=}9qdQP�����Wj��:�®���Z��GP�Y̗jl�S�	f�H��GP��&L��k����'��D�5Ó�/�G��/���]�87���A� ;YQ�Ś~�m�p��ڛ�o��Z��⤐y�᝸'�$͗�}�f�26�P�rt��Z��d@Qo�ӹ�'��`TM�� y�4+3w+S���T����oC��G?]:K���#��x�Y�^�0�8̩�ô2�!}U�/�U\/�m9�B��l�S@D*8���\#"Z5�����0r�� ��"� �4ꣷز(>e)�S�V�_B��Eb���s�h��R��*�khd<
9y����D�5��--�hk!��޶X��Q�'nV����n��[�ĕ�\�v�7�[���L|���4V��V>˰�0F<Y�-�y�X�����Zs�1��_7#�\k� ���c6��B}��R3���d�*����T{݆��)0`ã�Ys���>i�S��y��p�g\a�J�R6�dv�������m�^�LD�0/�	9�ؙ����h,h���#h����m��@�/W��(�tk�iB�c
�S<(7�#��:����칅$�;�GB�MA����.&¥a
�C�%z�.^2�  �]/��F�h�SA�ڡѐ�٫i^^���A�u/
zO
���̺�)��E�¾�Ƨ�ib�mB���j��w˹U`��5��@ZuQ�4P��8�c5�6�r�m�09t���Ց��~u��xz
;h��x����£����,�y�5$ �f�#�� J�0,ʖGk(`����#IX�S,d�z��4�����H{��7�?���k�t�;c���zw3�{.x�5����@�3`��(�0�2~2��oJpy��{4�H���dU�n�Ya��w�^Hj�zr��[���d�T4k]8��s��a"���U%��W0��f�/@�`�v`=�m�^�𸨄��b| "�r���*�K��7�3�� KB�L��߮]]>��ሺ�!@E�Svh��~��<Jh��}�L��pPc/�;S�-ص���K7���g��ŝX8���כb���{���Y��S9�O��)v��E�#P6��5��Y�;�#!����xMl$<H�1��R�= �p�/�c(r��}�Ą�����}ʾ�����YDv��^���M�A+�ɩ6��*
йB�(@}f�h�����,PAP ����T[�dh��왘d[��1�*-v�q;���Fa+��pZR�&&�F�86T��&� �J��8%�H��GA�>�,�\GM��
%��,�K@ �L�&�0a�~�llwEFyu5~�}���w}�ؠ�30�;T	�|S��T��Vz
���ao�nW�R]O�}�b�΍��m>}CΤ?����j粥���2�o�����bv�����2Ko+�=l(���<Gs�ݟҐ2���_^ӵt�*O�}٥g���/q�����#�y�XRkYah��d���bbG1�<��N#Ic�\�Ҳ�Q��^�P��ym�6���'#\qu�3җg+��2*��Z�@�*LQ���֔y.Z8�� �-���aR]�7�?(^^��~[�N���iNW D�xSʢ�bt�Xn�B#f�	���y_N���3s
���O2�:/�O)����|qNW�s8���[���3�:l
���,K�3��${����菵���di�i8��f�	�3�$�,%�A!A������A62�t(���J��6 kk2��t���2���3LW����K�c�n���Fs�����2�Ʉ�Ӂ$��dP�����&�@�[j�Y�S�����sr?���+��p��7��6"9��%��яE5�*D�:��:�ˆq����h/i4�o�+�����Ȉ���4�A\��hvzfy�꿼M�|W��JZ1��+���IO$�Tb!�q��]C�"io1-��t��}UG��0���a��,))�|-~��kv�� o��U}4}�2���RDF��
^$���Z�/��贡	k�$Sl�f��fV���uhv�/���j!gH'�p2u����8ܪ�uȬV��=�U��;��+�NfV23��L�/�#/Q{~s��m6S%-u+W݀�iF���:k���ښ8��YO��s1��cn�W5�$�S�|~��l��\�ˈ{B��卫�@G��kl5(���Z��Mc�n�u�@Qx�^�D����N�^�R���@�@���J[<vDW��Q�y����)�O+�?�D�	4ʖЂ!*�.���-Fi:C��F
��)��1��z#���Q�\@�}�I��;�wp*��v������3�2��G������ ��)W�����d�D���q��U�8�ԷRpO$`�q�Y��8F���;�]�����V�۞D���mr|�<�K\��^�`ځ����f���|lr�@�5x�f���XA��H
� Y��ԡ�h �@�N�H)pf*���}N�V����gI(Yuk2v8#��̎#�62�bVѡ�/��ÿd=�Η!(9�)i��i� Y�����N���G���%�Ӭ(��7���:������A�n>Χ�'Jz^��+#�j�����#��i!���H�S�_rR�J�.Y8^IҼ�}
k����4U -` �"�qe�'�F�A�'9|%��=I�@$Z|��R�Z��^��M�*�b5��L8����a���1^�S�������I�⦴��z�}���}/sQ�,�͐M���ӑ�����ԄRc�>Z�9-&�����Q���?�h't]�atVP�+PFV�ۻӋ��Q�_�1U;T�0ڠƅ�w���ɏomf��JA,�e�Y��s�K�(�
�D{)H�F�RG;q՗�Z����v bS�^cނ�6��)�G�D�J?�v��mh$��g�~<A1��Z�E\&r���ǑFT�=�Cq4����.��5��,M���V�rZE�G�4/���f�p:5^f�����5[����74�բ։4oC�̠"�0n�Q���ڛ{B��~N����V�����-���pf`�b5�X���D	������Z���X�:�>�&9-�Km���:Ԁ�:�n�obr�@�.��S$y���ü碥��F��Q��v�0��Ut^��R�t3�G2nSL�T&�a�X4�G7�Cӑ��.5��-�G�7�=��m?�m�i[��8�է��c/.����3�:]:�/���/�zh��3�%S�:���wگ��GH�<�t_���'�Vw�&�L�|_��0Š�C�6���e|�X��IL�V�f5Ck1�RJ��|�(ST���Mm��q�)3u��?T�W���q�\aA����Z~(�~�˙F�A�{��6.)�z�>���f���7��s`v�%�[�[���y|� �$�ܽJ�r]j_)BӬ�0��Ih�4�>�����o���
xS)��R����֙uLdE������<C�
��c�-5�j��[�M�������R8_=9�=�h8��Pᯀx�M��+�|�1o�-&l\A-EZ����3:$iK�T|0���&*����Sr_�*���l@�REL��!;��мHR�a�ڗ5�K��R�9�ޣj@�JB�ȝ!e�"��n�]�m�B?�2����gB�����*�/��ˤ���P)�7SU9��#��3��c�n�/���(���K���u�У=Vc4ƊH�(У:I�N�L�l�6����}���sˎ�A�*_��<���3l$��//.���SDد�S�Nѻ^EPat�X֚V���AZb]�;�B%����n��聦o-�oL�K��#c��r�=Bx��ikA�c=:�=� "p���.�M�-�W� n�`J6�>Ţ}a�H@�A��A�R/�� �Y��2��,��Ad�e�o;e�-^�w��҄w�̸ɝ?�r�c�!��Q9�f��{b�-��;�v���!Io�C�)�s�xp����`��̓��Se���wM\"G;�DQF.S�dsC��ұa݄F&p.��'*p�=�O�g#��8v�"ӿsg���Y���Y}�u�o�uZ���{?�C�a�l�HZ��$���o��S��.߾�Rrn��kMN-r�.?ix���{�bq��=еҌ���B���4�qE���F�A�Lo�硢Lǣ���P��>_RLŬ���!�J�M�lE�Rp�04��Z���f����M��Z�h"~>4ݖ�(�`Z��k�c�����?��_�9b`��N��M��Yge����mQ�_hI��%F��-#�XǬ�島��=�K�s��I(��_���
XI\���8��7��!�w��)���M�}���I��;l�MV�F�����'p�BNA���r�;��
�6��@�!Y�N֡��`�|(�Le<�5�&S=��q(��b���4[{�Š����r��Y����J�E�EehSÛ]jfYi
l�t*�r���]����a:Wa�Ui����3��M=��mzc%�_��#��j�sx���R,)����5ɖ{}��y"<ל��t78�]9�Y�+�7�$��Há�Z����b�R���
�M��}�s�.A�Z�^�݁���!��5�L�lyN��Q�n>�>��s�Z����*>h�=���ƧH5�!����I��?:��3*a����:鎥��Y���S�<DdZ��'�I��P��w?�`����ս#�":���8��@L����2�;Uj9���S���/��i��x(1g6FR�gk>���ɓM���M������:�y*�,�������\M�d��&��Sd�-�A�ߤw����<;=.�,v\f�V,ҖB�Y�N[��!guML�ה�2��{>"����%�DQq�R��g���"�=�����$�ԳZ�`���|�'�+�DN�z��u����s4G.�nzNZ��L�wvtБ�:pS=��(�"�bg�*�]��+�A��B���2v��ƒ�p��A�攘���F�]��씥O,ij8�x�S��1���g��1�ނ��&JP(�CF����hV��\M	y�'W�`�頑�3��0������6Х�d4��>�ѩ�f��]G!G���-a����D@|[;ei����D���L�8�	��ö��3�AS�H��:���s�qПx�X���cDAu62��K�-�lA��%x ��kY;���w��7�R Gr*1�?g���*9z�s��[�ڔ�/
����h_Z0s8|*�ҮN[����AO?ଙ���drh�L�����ɹ�g�N��#U���w�1�w�=�ASz��bR	�������3��g�N�B��&l)��7��
'4M�I����H���(…:[�y�~��v"#3l�:�>Md��X��뀢�ƆfchId�-s���m�TuƦ�S�$�߼EOm꧛Օ03L%��|I���1}��m�e���e�y�C���?G@���,f�r���MQ��5/�%i?�)�� *d�Q@f�!2�gu{���F+!_��>�19Mlkk����^f�0%�(�a6f�#�D�kIQf�H8���c]b���8�9R�a6YJ�B)�jK��� �G�'_�Z�ha�hª��c�P3��-��O�d4�M�ri�82��\�K�Z����h�uQ��Ee�i6��t46��RgS����-�[<�<��wj$�l?��]SC0��U�P����
����ErV(�iҘ\��:J8��f������XR��#�yY���IK�z���${p�$�A9u��E�@	CQep�?�#t(ڲe�O5!��n adh0�b��5��+7�g�����}��� Y���NU{�63$�
�,*����Yi��qh�X��]�z��ҢY�T�:�H���Sb�ATS�>�����t46�6�1Z�>��ր��=��g��m:��:9pv�D 
�ؕ���$#S����UI�rO�L�ZBY==�K�҂��W՞��|�h�*j�)/&'��J�֫T�W��@
̵�Dl��o�Q��`�'����pD��ƹoxQG'f�ʡ�Ks�d���t���s�;�J�zN
�ưv�_�ٴ����+���3�?����j=Ӂu�&ʇ���Z��E���d�9-��:��h��Önv:��s6�O�dj����w��~j���JJl'EX���Z|6���Si�R�������;Ԕ'z�
�L��@�Q�3P#��F�"�����s걥Z��(H_{|W�IBt��Z�F�>Qaź�-p]��^Ct��@\rI�Gj��"��vq/И��+M��ok~ %���PS�Y��j�&���4�VJ�R�|�F=o�'R���4Z����P"�*c�R��FF<S����%o�O�|8%!��"!�2p��������^z���R�K�7������ޠ�G��
zÚ�!/�����g���}z���h֖;V�DL,s�,Y�F�[�
�Қ:�J���v�3U��@PT�	AU�-
S�����Ǟ�t��hk@�R[�O]Ϧ���%Ս�8���#1l��6�0�M<M}���q�q�Z��.`���t���@��B7xH�ٱ;�b�:���EӁLy�M�i0�jK!�i-m-�hB@���Ij#��u�>f��|�Z����D���8�ucV��S��)6,b_}�?��m����Hv����m\
�۸�SĬ&�/��N�O)(�����p��U��9<Z�Ui�p�Ǔ��se���	؏�F"��CLp�	�PF̼bU%�H��V}pL�h��'跘���5|WjJ���E�����;�Ψ�í�!3�s�#��h~85�r��(j�X,T�\�X�"nj|/��
��5p�*��/^�ѩ�	�
�ņ���u�A�6!�=�]͎,JPjZ3�o��?�y�/IPaG��Dx�I�la����̔��k/eoD�8F������Nd/��3��iz7�yJ���Ts/Vm���,-���2�iB��w{���l
�T@@llqG=��Һ�T�޺��U��`wX�]�`�)9K�تN<h���fe� ��5�\�K2!�nw��5~�Y�N{�!h%E��ņC�C� '�?�^|��j���2J���4d3�;�G�㓊�Q�����ѽΕ=R��xx�`��LaL�(i�fW���gf-d�n)�ʷӕ�/!�X���Ѝz�	F�

����(`���-���(��� y]ԫ�3�HϷ2��
��	k�EJ�OH'��w�4�-�]QJD
�,�����g,�y���&��{����2����;,��L\U�E�l�6 ى�]�S���i�"@�(�N��J��(맆���o�Ǧ�G�mBX�; KqG�h�����1�B��?�8l:�t����ȰhJ����%٨1}�D��o�3G�"���ݓ���R�[·��m�����������OЛ�i����S@j�N)eU���
�$�C�YZe�4rK@�\5KF�;�U��}��cWB��邛�Z��3�z��1z�lbx�Ga%[F=0C#�5?k��������0�F�\������ɤS+���M[��á�w#G������UQOn��
��
G�ty�Q!S(  ��Ny����s�(0�E��|�9�+������v)�B(�"lU�,AF7V��[�yT��X�L����[i_�b ���_O_=���s�����|�yvE������w��u)�!�I���U]�-!|v�?g�]�
O
��g��w��S�<J#:͎�B�|�D�S����y�y��Y�K���Y��~�=s�mf�kΛ˨<��� ~%�vL9^/z����J��G�3
1�6\��.e��f���L��d�������A�D�����x��a�5?4�Eץ�/�U�y)��sÁ��3�Y�D��<�r0G�ܻG�Ȣu�˨8�g.O�N.�N�KDŽ?�p��kP���1�t��)5����7��U)����<��	$wO�C�Ie�iH�KrW�-�@I;x��^��.RJz�(���:��T�/�Gm��-�}��t�ķ�ٞo�Z��x�{V�s\�����]!v�j�o���Ӿ#�*IoT�_�.?�F�B;#��gRh�O��ϋ[�j�[�Ө�(R춉�8�o�l�N6SQ9��5{�]���;��ٽ_@$�8��姴�<��*��j�cg0S���_�������|�q�ɓ�Є���n]F�����rlߤ�X
e��%���:&/m���GO��uy�f�1t�7�k�cEa��L�^H^e�8�\�mԙ畵a����j�d���,�d;$����!v��1H�>�����5!gS�)v�[��iEB�Rܢ��ޕԆNW�94#9n�^�n!�X�ɇ�d!]�Z�XPko��j�tD"��>��t���	Yc�n��vcA>����D��e��*Wžd��;��Q�xl��R:�=*�����q|t~y�ӑp��vJ�j��k���ba�l�\�,�eAC+3�Y~@R�h'ŧ�p�)H��S���HD>��"���Ԅ�����H�҈|v �dD`�R�0c�
�������
j��	�m��z��8�6`�_�����@���D��f�U�-�ײI�H
b4�487(\�N7�Y&{
�W�E��
p1(�ւvwLr�	jot����H_"`Bj�j�W&n�ES�U��
(BN+0hX�EN}An� A 0F��ѐ�/.�Z��౏ސK׊(8̮8�!ť�+
M�K�D����5i�P�ɝ�������tE�1�(���KE�p�م�~zdǧ��$`D����6�qL$�8*O��fZ�z�����6)nQQ�Һ纙iv�ҾJ?k=�y�(��%�����(@�����{հލ��6�H,�����iir����.�p��Ӥ�;�ʹZ`8�vq���ט(Pžyx�h�~c4r�
?�.:wáUʖ��-HPSP\�I�Z���'�$_��<œJ�8���iC�:g�F]���]/�g]B��׮[R�~�"{���D�<*m�i.������9]y��U{����د���z����Z��O�hcg�-�܈.gv����R3�
*���I�1�DE��<%�ŭ�>�H�7�|@u |ICv�/�6�w��kUxF<�_���j��&�AM��I%t�]����db�:E�朢���G"0_�C��'9��H�P�Z��Q��^�_�����-��̃\������fGE����Q���j�_��4�0�f,W��Gl��:nG����6�����ZI
�D�[I^�����x�ض�=�YQ(�B�"�i�M6�}�4֬���g�0S����(���-�-�=I��M�El@��m��5�_�;�|0�����1�;@�F6ܰ��\s�8�
�M��(��+�X���.��s|_�iW�'t����}u��ni�E��
�tE�R;�)�O�|������
*�6�s��.-���1�p����T2��b�+�Ъ�ܱI�����By���u�,_yb���Sy�~���'�r�jv�d;��%�\�d`����6�����b�>��e���/��_���? QAo(�±@+a^mD��!�
�6�$�
%��|��g���_�]�4��
�枯��!q����Nb��
װei��8�������N��d����Wc��}��r��ʨ/�?ٍ�mS8�3���ks�S��@�(�E���ϖxod������j JWZf)�}g��4]<"r�������Z����](1��_>@NI�肿���͹�֯M���D������w�G�W<]������mtOʕJ�q�Ό`���GJ�շY�?c��k�(�ݤ��3/��X�̈Z���l�k���jxj<�H�b�-S}P�<����oO��ڽ�*O|ʉT
] �Z�s�)�_��@{Ǡf�}�gQj���i(�s���_��#�U�B�3���C�����o�4䔩}6�F���%�aP%�iw�у7���*ZR3��S���P;>���4�K6|L'�r$���'Uņ����Ry`.
�� ���c�y�B��r�ųs/�=�9N�i��∤\��#���d��KEO��Ap�U �>�i�\!�/��&��z�
� �9@�P��*�T}!@:̮r�r���Ǫ�^5�������i%bV��,!���Е�_�G�չ �5��u�# {ޯW���%�m�m�M�
���ii+���X$zT^A=�! }Ŭ �)3]L9�U��:��!6jG	�&[4d%Fn�^`6i)�T��
a�g_������Ϩ���ʭd�mA�^x�&X�R6��aЧ<W�UJr����L��ި7m���7�����l�
[�ƈ��
�y`_gaK$YJ�`v��	ؽ1��T��2y&�[�����p`ڕ�_N4�Q^Fv-�v�>���d�����l+|7�C����,ll��߮z�UO��0X�d�j2�{�v�y�)3zO�A���#��L�n!��x�i���19!ىE�Px�U�G�s�"�P*<S�U���/d3���PEVnj��֌F<k�NKD�e�C�Jj}���G��Jf�*�h��FU(Le-�&����%��.b]Q=�P0�:%��$E���4�y
�/R,�‰�\�s�؊��pWNڼb�	�+}"ӑ!�����tlp�ql3X��%7-5=b�4��
"y�>�k�D�Gde�DŽ#%��A#"1�#�+_���g_y�L]����TKP���"�,c����������Ӓ���磿"�Q]츀[�rJ�/;�*�mC4��@�W@9�����u !6/@��,�O?���sC��ܱ��SZ�M�3��@{�y
���3
cŹ���K/��"��`D0`�=�0'�M	�+����%Ş��¸��FP7t�N�(�/�xT����ʢ3LL�2�pD���)��=����""R(�%=��x���π&������:��06r�X��WH��%��1>F5ÿn=��z�.� �G����FBQ�J<w=�2|vZ�Ҳ���-���l�y$1H%��S+�܂ůdً}]eI�Uč���a#�c4��}�t`��3��(�#�\3��?�fw�� ��3y�R1�@���)v$���;í�k]O�ޞ�4xi���?W;�����^-`��z�{��πҘ���"���/���pm�qb�%ܢH��t�"��7ֱ��/��r��d$[���Ʈ�r0v��:�ń�ކ=��/�N$ņ%����֟�xtY�6�M?��=*�A�>���E���!�ΐ.I�'����v=E_Ɵ>�O���Ŝ�zoA�xe4�7E.�AS�"��0�����iq����9�$4�#'5g���q;K�%������$�i��h�j����H��	��l5s����$^W��-�A� gh����9�����0�F�I׍bSx���� 4��+�Ԫk�Yдz�	�
����K���O?�W�
�n�Z���E:���0%л�[�z��`�7��Zڔ��㋋�?_�m�V�����+O��k�Rp��+�k%}�0U�BL�j��`���:���>�O4Fw	�=��ea@�����h^5lj��
�����mY��q��#p�C�5΅�	}@��dK��'9	Ђ�, 3�Р�]�n���^���	c�N�t^Al�}ߩR+��0`��%Pz
�V��<!@֭�<��5_���S��Ѷ����$��$&�B;k,Q*���-ٽ�C����4ڴioE
>PP4�87�F�B��(�ڊ�i+@v�T�wr�@U�!�m��:`&�S	�t4*�<:��Z=U��e�W��� 5�g~J
.7|2�2>��r��
��GE63��?�K����N�"��HKf�y�[G�?�d;�Њ�<웇v^��*��9i���Cz�f?���� jf��e�Q{���f���Lqz�z6r<
�HL��dq2�K��P��5*,�Ge�3�R5;�9ٗ�v��ٝ��x*u��7Q�y����`�@��Z4X)=6�����,�x��d�z��#��;�Q#�1?
�S\8�>ϵ�G$��� hT�]�б�fU����ù��^�4��!멾Ƙ���1�|�D卪*0�}�M'����F�v�U�1F��Fxvk�:K4�D�;������7h���$�����yҵ��Q�9��jފ*S�P���/Q%�Éж��-X���Wc�ĠP��QM��*CE9wy�����]��e<}UۓF������s�b�K��S��<�o(@Y��h�]�9��b�(����d������]�C{}��4_Qi��13;��Q�50�\i�,�Z��M���|��ܒ}'$�W�]��Z�'BZU�N�CYq���|�J�/_4����n�2����;`᥇'�%�e�0�֥��݇���c�AJ�NCN��x�(;�������['�bơ���xw.�yr+Z�aר�&�́���R[3/�A@%G�SC*K+������\��ŭr�h��ĩA
-�hy6�6�#1Q�l��d˦�U	�5�Y����Zz�}��˂�越��=�_d��wv��u��ƞ�Ч�X�’=E�.��Y�!�����V_F7�ҡ��?�{��M����
OMDƐ���`����E \�y�+*%�Q�a�`��k��e�ޚC-<�`2C{��T����n�/!lZ����+�sb�]�߮@�DyrL�^г�+_
��7�Z�D�����ϥ����W$�QU�&�a���t�:;M�l##��ƴH�Jh�׶T�+e]ه�6���Es�)����z\_O�;��\'cU�{��̞*���yd�������x����g1�qM��=9?-)�A$b3@�)t��+?�u*M�W�&�fZ��L�H�<=QO�FV�>Kh$n���b,*U��ȁO��<�P�>B��Ǫ��0<��x�X��r�
Դ��EY,}��cP�i�k�2%|ә�u$���i�P��M�c[A{���6�ׅ2����y15����b9�/�hVJ��)�[^5��:l��Ԉ�*cSӣ�^���9^FO߂�O�,��a��C��F@�/�f����X�wώ�	36�L�oqi��/D�_ѱ8=���gۉJ�":#�B����HY3;���.�2��c���~�Bb�6!���
n�E�i��H�Xz�ɍ.5\#��^��}E���sMA~55��Nw4m׌ɐvn�i�tQ�^�s��v��>9ax<B�3h����;��d���b;�	K�U�';�X�J_�-��S�mG�
�Y�j��Z��a���hf�a��b�yĤ�����Ǵr�R;��\"�ӎ���Tj0Ri���	,�'*�p=�]� ݂��U*`c,��mB�S���&.��� A�%h�<,*�0�[�{ۗ��$��t�1�:���DA >+�V!��"ז����59�3n5��@"����w����`U��Ւ��d���Z��ړߟc$@��9D�-��(2J�)	'�n`9Pܲ�)�z��W�nD��� ��Oc
{wܼG �>*)������H�K�,�l���ޗ�-TP�Y��c��7xH؊���5�H��1.�5@1q��f(�����jx�~�K�����>;}<�m�t�_$/f�ˮ��C�i#ط���&h��(\��@���w>��#����.y��`#�/u��!��u\�d�VШ��P�(��@��?0p�P�P J��a�t)D���x��������2��Ķh[u���U&=3���O���
˴
4h4�!ڳ[HKK]�˩28�
���m�J&	�#󹦧�N�X�^���!���H'pf�?k�>p}��O����)>���FF9��k^L�,���d0w5#Ygm��!��T�Y���Ӕ[��L����p"XO���;|�������58�RF�p�ʦ�R�áHD�$�>^�w�J%�Z��M�Z��yC�a����z�<'[Ru,rf���£l"N�hޡ.��\�k���W[��j�� $%)�d�%�lY�vɕ��4yu��`��B�	 ��	~	A�E|�'@��������kf��b�S�%S���tN�G�(�~��<�W�q�AZSF\b��7��11?���!�tVg���oд�H�o*��紵c��!�u�HVME���בf(�$lΨ-n��)�=�S%�n�/3�|Eq�Fݝ�;�u��؉����	�l��'����C�i
Kw�m��b����>\�"�s#�ْ��"_�
�a���#q��\���U�o�����2��p0�����sa��R1�Wc�i�GF�򯧯h����w�Ht�����8���E���>�u\W�?0YS�)��n��6-����6�1a�k�W�%ac�����o�{Z.�C� ]V#��W
�(�bI��,��o+T?�:��)��P�
(x���.$}��+S�Jz8N4$E��4��U \�[]�+�]��!�OU��� ���~����K	E9��_-�Q����>��T�_~��3�.�"����G�@���6�1[��*�����D��h�
|\ɘ���w�b@@�RO���޶g���Cڃ��!.Ȩ�������p_B:��2;��	�����Z��aK6!b��6�!���L
	7�0&Z���B�
CG�5����O��3y�dam�})R��ؙ���nfۉ�->�=gC�Kו�g���*:�� ͓=ƌ�׆n��{ui$t�>4�qJF%N�C�D�E؉���EdeO��!
h^B_�A�[sG�����uY�D[Ȏ&������}��):I
b<��#�7���tfsǞ����e@���N3�+ݥ#�fG���q�Y�Xs��@
�m�[��7�E}B�~o��0�$�2�@7d���=�a��Z,�0^�7C�.��כF��#-Ɛ2yޒֶ�R�Dz������o$mK���"���˜02*�sƟ��
�C�}�ڢ!�z�������&탗���"�?T��{C�Uy�Pe�j�����|�+}g��KX-do`�ʵ�LTǧѨ���Y�Y�&�K����2=O��9��W���ĔRV�lK4a�76��Q9j�u@�X��?��+�Ұ���B؄�4���-����~Ҟ��_T$�s#>�部�ۋE��y��AZ�E�E�u��U�1�o��MWݚv�u;M;�e�Ev�g+�.�8�<�*u���S� g����8r�����X�!�W
���D���]�^"��(X�P ��@�7���b���Yf�C
(T��C�&Sf��$/��ъ��p4�*������:HS9�^]��D'E[@O2�àg�Z|���SE�__G�f�]aV4�ϒ堘Idd��#�7u��R
��Sb탭�uQ�E���ȿ��~��I<юV��q�j�(f�İ[+�Ðf���w�D�����:Ԏ�%���U[/��h�~o�/�/��mbB2�He�3�]h��4���µdȲzZ4ҩdoxX52�Tf�>:�Z����m��	�n�S77���,��Z�kM����‡
�&�
���O�8���]�}/X��/���ݼ;�?R��و��ޥ�b�-���X��ƿ�Fx��8��a��9c�DVC/D�JS!�Ӱ����,�wd���5%&m��
jC�,�XDp�R"3�[�F�+3���֏�N�Ї�Sx�s�d�
��:EI�2�2��߮��kz%DMY�c�g����V��V�n�U�`�*iM���X3跞G 6���	2��w��It���`��1�w�≋�T�&J̰�� �P�hs�,ЭW�5�5.�0-��nn����G���&�Q�Lo���.a
� 0g�Ɗj�fE���|3���I�
�Y��t3�b�CD�^�Y�rUq��s{��2Wzj�ZCZ�^����dRwX��yY��F\T�o?L�(��� �����M/e�J��E޿��c��� +k�0��޵�OX!a�W�2Őz��C9 <�Ωi̪�������P���	��(���S:

/��Y����j��_=v��f�R��_}�*���
T>��ڝ��
�c�I5tU]*�?7_F9�(U�ij��:�0-�K��"N=�^B�HkT����E�b�
���X__�꼼����q	�/�����&AJ/���){3�C�Té�Q/(f��Y����펠�i@�~/�ER.��&Y�W4s��<P��{#r�Eh��W�KpW��02hy�́�M���4dz�֠/�BO�g��Ў�;b���(=4�?1 ���_@Ň�+a�]��;�e:b�fM t���S������e�]�뗡�&���=���7�#f�ପ�%�R��y�%ه&.��nA���Zb)�:On !�~��Q�J��2�hSsi�!��:�칂\�J�Ao�O-,��B0_h��BưW�����p���n/��mx�4���?�NRY]=�Jd85�LtU#�Jd0�/����H��\�۸�D�Jȏ�U���f���pn���:��d�A1O%�bgbU�N7;�ɃJE�8g82���(�'���Dr�ϑ�{)�_���r���ӆ�n	i�?���oX�xA����"��;#�C����$h��F��yJ7w���{-x�-�N�?
��@ᛌ��K]h5ֳ�	�'��C��Ç#�pt�;�+:Vfd�*�Ʃ�gw����Ꮬ~�Lu4s>쨞��xGl"[b�OitN�%� z}�M�2��G�9i��_�<��xp�����,�)�)*�*m�ש�c���;qs�-��vA��,�6 3�JKZb@ˢ����8�<ˑ�EB��Y�9�'�JrH�H"�P�к(��������{�Z�"��7h��MM[f�/4R��n�q7s{�E��?T�/��%��7+�m�KѻKD+�[Nm�i?�w��g�Ї�}��6���x#ױ�}�_�3BJ5��K��%+�O3���r�
5�+p,7�n<�B��v���~X(i�=��uz���󚓉�1��	�)�@KH��[S�p����Է�c�8���g�68�rj��V��ۡ*��ؔY�B2��Yg�q��	���<��e |���q��v`�u>�?u��f��cb�I��_�1�'	�ki�B.�ݾ�@�S�^�+�6�o�O�k�j޷Z�c)����T�gȂ����"�ݞ<U��/�dG�1���R&�2[3����u�aG"��X����ok�	9��2����!5؇���d�[��azc�|f$�8��T憿?
�P�-}���9�+0��۩��-�uJ�(8���bYf���{ȟ/Udz�vn���	3�#��ځ9}?_4�
�ڧkМ.��ܷ���u���cJ�攐:�9��(���dJ��Γ/�_�˷oP_D>'
�������3�U�uLgϜNSl��߈����GsBC�B��3U��`DT��Yy��I��;�k�F�&fw���Lױ�B���;����y����J�IȲ:�M����&��'�Z�]8oɝ�z��g�a[�lܺ�F�@��<PB�"�{��P���-�v�:��e,.V Ŷ��%w:���t�U�4x
F�`��$\A�N��2�����|��Μ1��e.��[�t��\e$�~��J��o�P���"ނ���t9������:4d�&�U��/j�����сY�%�9�@_q��z��*ڢ�v�>C��DGp�,xDf[Ä��tl4e�O'p=_��L)f�q�.���;M��9�c��!�t����4j�:*U��p��.�$=��<f��D
�6Z"�A\]hs�)I�m�S��e�詡���j���
{�1Zs��6�����p��c��%�D��J��j��S:�03jY ��MU�A�(r���*t8���+��r���lB�%p�"�#j������L{�&[�e�i\��2���y:������n�O�d%�<b�xj'J 8_`%ƽM4͙��=�����K�i6�d�S��2'�����I�i6d��
�������u�Qh�H��1��v�b$j�i�.ԑ��Y4�֫k�76�����a�q�9�,���^��=�3��у��yZ
y���8�.y}5��#8�Σ�z��R���X	э4l�����>̹�|��˱�����:X�x~�lʞ�!��T��V���َ�e|
M�Q`���f����$����֮|M(���^��F��\�=�!ʽ��?���Y����(4��%��M���^ߝ���>��B���|uO�Z������D���u��%|�ȋ�@,�i3�wQ�>R!��$�ۀx���5W�a�b2���gӖ���;!�˺�z�O���Φ�s�i�q�ށ�Z�n����ao����f�3���֢�'S�8��/l��J�N�
O/zny����������s������&m,���
����V���.�l)�I)>��!b1;n�"<)�u\G˴�L�ew`�[����ZMϋ�C@`����؂q�ш�^U�P4T~�PP�ߌ?�!�P�FJ,@#t�C�Ĥ_`�V�l,��g݆̈�H6�-
�)T�U����?��4������梁O�b�ပـ����lm�$�l�1�k�}���>y%ə����|G�ł��(�m�gd�{��^^�F�M����83��W����y���ّ��Gh��c\Z�^�1��>0Q���0$���D,$��j߾)��)�8f]B#&�j���D]��,�C������ۂ�Hd��}!�|��)^���:lD�}w6��b�";D�Ȃ�����K��L��x��
���Y��5e�𰌩��ZU�n��:�#��?ѩ�]f*�i���
z�Ik�'r�Ș�T��X�|X�N/���@�5�|%g�v�o�;ńt���v\Ҫ��6�����[���
��_����ap�P��=}�ufa�<�"��YUcY���O��D5l����GFsu���ܮ���ɞ���']g�ߎ�ե�S���t��D�M]��n����O��ͻ�ȴu�'����f�<5�D�<bP�w�n��M���KR�4|ݰ��c�1��]�~��.��
@?p24���:�m�9��Q|��G�	���#�L"R�j��x�!r�1(}�T요җuvg���pu����"
V$?Aj�$ݒ�"B�����:K�S�����B�3fλ��x��$Wv\n��5�ﰯXo�k2�s
�d�'�(����ǒ`�_^\b�@p���~���Q��e6$ӃF8�;cDQV|��^�6�'	�ʧ##�3$�1 �	͋����`7p���a����G4�.�EI�]K0�߶[v���#D/1�	Z�Ș���4���4���g��Y�d�>T�iid{��+
���5����L��z+FT���Ѹ�zs3犍UZAUUÛ�ӵ���i{��I���PG�1x2�%����eP���c
[c���Bj��_Ǭ�£��j�j]�^�y���[�}����w4(�Ġ,��`��
�r`y�\^�0��nf9�2P�i7<2\��[M��i��!��D�2�|���9?e_��=k�	xQ��h�����6��m�)�1��2� -(�MNG�I�K>f���33�����3�0�J�M�9�����o��`�)�NXz
���&"z"�},��B����v�IH��Yw{`"��$cV���rǭ��%�O�}�;%�ry���r!H;���@t5��ţ6d��q�]i̩��e�
|���l�b
О��8Ć���Lv7GS�GL��Qߕ�|!�ОK?F�AI�숢nD7�f��,���+��O�H�i���Q��.M��8�����W0�s�7���G����u��X�%�������$yNô��"b��E�F�6dT8u^|�|�;�CM���[՘��D���	�U�>�-3��td��R⓫��v�U����X���w�!ĕ��8su���YZb��O�c4zj�(U��@V
k�#{ ���Jɵ*�(���P�ѷ.��#�E4��z=r�v6����h]��X�I�P���T�#�H+��t������
I�Z�3�hJ�SH	�m��D��\�Bh< �tap�%���ͣ��1�a�R���p'�f�}��a�"Vb'�����,XJ^�B
q�F
�L*fFݥ\�!<(Y�� O�}Ex>y*o��{������%I�xtR|�M���oQFs��\��^8,� W������ BA@�'����C��#�ZUMc=7���7hZuc6-���!:F-�?��||T��Pg��6��+:����U�-���DD:Z�
t��q�ǣ�g�g���'��ϧ��V�o�/~xW\��^f�0"���J�x��j2T7�~�A��ۤu*7��C�5R�؎����
�����<U�@�r��鎕��}R�_{ao+doa���s�Q�X1+���!s�����
��h�g�.)Xx��sV�/4ؔ�"�:�׋S^�3z����}핚Abi��>�q!~��[�8�� �纸E)��L���|�I�#j��[��W�H��b�3G�+Z	�����6Mg���<��x�a����%+\˭H����L�h/�n�u��B�)s��?	���ݱ)8/e��k���+�o+���c!��/�_������r,�T��)
,2yܨ��z���P�Jђя�N�<z��5l)kv����L�]Q�+狚��Q�/E�91y�럴o�ޗPp�cW�ٲ,
>���D	-:�*ӎ�䋈�J,�ڞ앞ڂD��k�~��y9���Y�o=��AX"��|����������@H�ޝ_@"D!'��f��3Z��jJNB�{���
�����H����Z��-���ޛa��a�$1�AyY3}̭r+��ܒ�.���-	�]ZkA/�e}M+Xsp:�#�&o�J�z73�ĥ�%�b�� n���^w�!��X�'�� (�㒜m�\{qG8�mtW�"�Z(y��
*����]�T�JK�T��MV�+��]c���|yQx�@e�Mő?T����vU~Uo�|���r��Q��T?����B7wa�@�f����y��x�'B�%�OP:����ŪzQI�
kp��:R=�GM�R�$��W͇�$/�a�Ne!�u���Y#C�4���A��M,����`5n�F�Iϥkk��|�e�8�TE����3`	��u��0�P��2�ACb���4�φu
3����N�榠�F5~!+5�,��x�Q����h�vw膖W� RTkp�$=�Y�G`�[#\��m�cB5�&�g|��o肸u&���8������U/�?���=ܐ��q��t�>\��;*��(G��V���3���g�nݤ�NyP�v���p�Q�c�du��aV37f�b����}�3����Kǒ�
k^:q�IA�H�&`��Ed^"W��������n���(�Bb�5��]lS���"��f4�?�1$f���1����Uk�{����m�m��$��IQ��ɜ{�Z(J ӏ�3%y*��l��Ҙ���Y�U��r�x�l%4�Q����"j����=+5�)n��r�Čȓ	��4��D��5w<���^�qc6H�x-�܃3G�n���Yi+�}�> dC��K��Z�aN�{a�P�E�XM�G:U��琴�my��L�ᄇZ��o�����U/�<�����"4q��,��:o���7߀y�5�����iR�G"�J��6%Sz��4Ԃ�~���)�VW��OQUX�,Q��Խ̽��ñ�~�K֗�Qy��TUx�/�9A�0\�� �+��bA��g��+��r�.'C�uZR�I�1�ĥ�Cj2�?(f�MZ,�,I��f\ӱ��su����*�E�~�{��ˢ��:)�V<�0Й���M�a�d����lFL7lE(KU��5{�:�Ɵ8�-�����$������?\\�w�������6v�t���ێ��>���T��^GQ�yV>_����P������Ԕ�_�e�ٔ��B!T���RJ�
�̘��F*	L��	aB�pl3xxw
�}���V��9_;��U���\m�:���x��c;=�>��L��b�&���ùH���뼘/$��B<]BF����v��1+,h��N͗��*���K��7e+��������ݟ��0g<��!��굮~�O]�uk�R�C�e�c4�Uvݐ��ʅ7=n�̘Oc��ś[�l�~ץvx7��j��9<6%@�xON
nnG��h�0u"��/������
o��v��ԭƥ�S,S?DTA��(o�� \�L��\��rN���m,8m�M]3�bU�x r��R�e/�;�뼤6D�c�-�w
����Z��T~£\�_��\_��3�5|� �
_��p:u&���C�n2���l��C��8��6�{���X�4�[�|�~��4���@'E�H�����E���	�^���]�tz�ls�f�٭�M;�e�^��n��R$T}7�H�[ܿ�І���iR��!	o���RCmc��|��R,�*#�W�Mc��a�޶��.�R��~�C;)xڿ�`<2��(�,��3�_2�񾄱@%�룱�<�+�#}��[x
6=W�=��%�\��8
����y�cT��A8*z���b��ڙ�h
�T��ñ	���x�39�e����N��=�8��d�hƮ3IJE�o�Ǔ���l��d�_�d�-9�ޟ'����VmDR�ȁ���<z����P�3�4T$�X�w�}�+��a�6�1�n2dH6@<9��"��h�G6�m�{������.�o2rT#�*-(��m��Q�}�����1��?J]m������3��m)Ws#j3j�9P-�|:�H�?`�Ѧ�Qq��� ��q�_f6�����Y����_䳂�i�D�+><��	�'�C�y/-Ic����k�S8)WE~��<6×|A�Ɨ5���(���wn�e�;��hͭO�u�i�x��m�QQ�#��ˣ��)C4s�(��2���+.��uu��a7KA H�)6�p�����a��|V
����M�+o�9t1Gh�3+`!��6@�Ly����O����x�O�
�_n�A�
3�������Lz�%Vu����	��7DS"R,���b��b���M��߸�N�0QCRz�,�7
��6h,K�Ⅼ�LQjc�*�z���C��"�Ю|��ؽ��T<l�+ƛ�4u#Yt�ݫv������B߻���e�im*��]j~A�J�c����O�a W{B%g�y��V�-�ZCu���̼�¡fԖU��L�9�5� l
{�*M&-e�ԍ'�C�
^��
m��YKE;T�=�
�'֐S2�
&%� �8�Z�(��ޝ\r�~[�E�YclO����g�j}� �M��va��)�j�/AL��#��ϐ�_u�M�;��pc�:q�D���Q&�Q7ֽ)x;��o��
�3n�ྲVg�����0�!���J�f$���L�5��D~��`+�L�k-+�Sz���a���:f18-'[e��M���8�>Q ���[��U&o�Ӝ<��4ʡ��.�%��#�z�t�ص�����C�ҍ���ĵ�6���a:�a�:��ި}��!'�I�u�斊��F~L9���)C�}V�!��&��uFx&ö
A�j��c ��Bc��B5	��X����i�Z���zn("Q��Ŧ�Q����D�t�?���դ]jc�6���<5Z(j+M[h���;0`��u�� �
JD#���=
֥��_����[m�t}X�7J�M�dKx��s��I�m�T�>N�ǭY����Qn��{v탴y���2��e�����^F�޿{������������7��G����.��t�Թo3����K�B/)H�7�f��Z�s��Y���ˣ����͎�X�۴̖��/�^i��ނv���X�U���
XYI
���5&V-f|C��h�R�����#ax�|9%�3G<��2
�)�)��M��������<�>\�|�;{�7�s�Z5P�33CJ&瘽���$����7�3258��rl��__�AK3�^�ʒ��&���—�2>��ö2\X~�;<lHYb`	ǥeY�M�����
��>$y�|x�ȉ��	c�zx�J��s��'x�p�`�R͌���)~Z�����׳F�"����P�/�cw&��^O�r���"���:_[��T�[�l`���Y(iYa(�S�l Q��Yt ͋a_,�ejި�:1��f;Z?MG�p��~�����gr��b��H�L-���|�/�.u�n,%��ɻ@	_��^FGg̾��)��m _�@S�y�~�4t#Ӽ�#��e��J	����.cɗ��!���Y�%��5�西�q���W��Լu��`;�������!q=��#+M�E]�쑻D7'��e(�!|?�>��2+J�k�?�����@4�
KZ�1�a�p���vP���L���
Ű���m�����9�y�#�l���+>��PL�;_�l���V�Rɮs�Qo���a��(����/�2�K}�C�Ә+�̝���Q��[��Ĩ�jN�]Frئ
��kѮ#�3�7��``JCx�O��2v`��Ȗ8�TO*���kXKx�}���Clw�#,Ư򮚶�7�o�������Lә�wڂ�5��p[�&
�f}���b]3T��׍|'=�#����_L�~�#ˈ�#Ge�jN�(,��ًEZ�W`�la��H�!�w�b�u�������ǎ�Z���2N=`A{�ж�u�>8��RH�{ &�=)�-@UGN��s�d��4x"��@�A��1��U�ӷ�|ֈ��/=dzJ�?
��������]2E�M\fƁ��d��בq�
`��\�!�S}��U�jT*G
����:��M���}�w�n&�h-x�bf}�ա�}B_��QSo�7R�#v���"m��d�ujw���iW6x���|p�-�t��Pǃ���k�~h�{@�-<r�� �.p��1YIrFx�Č͗�m=�C�}�q>Y���5����B�j-Y[��wI����R�+]�W�{� ��~�yZ��z{�bdӣg�ȽJ��iK^b�_��N���R<��V��K��إN9D����7������E�]�m�+�p
5}>ӛt��^��ٰ=>
@]�x
�Ȍ��-u'�l�Z�2-���x�<����x��V�u��)�*g`F�+�'��C���md�g��Ҹ��5���5=\�Mʖ�0�ϥ'W����8�؜�	�Bi��0bb�^�g���U���
x���@b�4�Ί#wS���K�P*���+«?ߣ����{H�A���d���@?8�t�S�8m�[����|D�S�K���n�hC��@f����ʽ�^���R�Qpљ��F�)-�力�8U���>��iG�]l��vC��-�)҅&J����o.�U<���h�I�F�a3mڷ�ͭ�g�fڼ�6�ͬr����6�V��Fʹ���6�Y��ʹ�%md�dl):��٧n2����s��%s<j�<�����~K��^y�6fE�g�2���`�ܾ��D^��G-R�?PK\�oRF:�'A���litespeed-cache-en_ZA.moUT	��O`��O`ux�����}|T���`y��ʳ���g] I$���M�d����M�R��P��(UAT@D�����>�f�?��&����﷙{�=uΜ93s���5�x���ϥ?����:��Y~�G��{<�<J��O	� x���L���E��<��@���I����*�[�=���kx��_!%�:�s	v/B}7,#X��E(�P� 5��-���`K�g{<%3�&��`6�]���^^K���g���Z���"؝�w�"�.��\L�z�g,"ؐ`�3>@?VЯu�!�� �س��Iܾ���p�g�x��B�LN7�By���}產���'�O��7<F�-�'��t 8�`��A�'���N0�`�#6%����a��<�,�{�y���Wkx3�z\n��>��=)Lu��`/��0��fLX�9�Z����#�?9�<�8>��>A{^"x%��/�fF�rz�݃���ѿ	���;�sl0ƫF�8;�~4$8��5[�D�H��CT�5=��\�	�c���&�q���2��%&ڵ�ĸ�t����b��b��*l}���ǐ���O��bh���p_x|T�?����r<��1��1���8ޟG|�8�ь��;�1~�8�8�`�	�#x^9�Hi9�4Q��r�堿�	^F�r�wqƹ!Af=+@/S*П#��Gh�^��?�ۈ�%�� >:�MQ�p�`��{[�dž`_VI}%ئ�s�¡���'؍���OJ?�G� 8l(��ȿs(�b(�q�0�;��|�
�"�0nۇa|��~K�9�~�v8������1�Ǹ-�>=�`8��p�ϱ�(���_���G�/V���n�oG`��#ѯ�o%8`$��8��	��3�J��3Fa~���6�v��y��7
��M��BM��(�Q�﷣P���'x�h�ז��_J^�o4��6x�?��x4��ѿ�ƀ]A��c�G����|����1���ǀ>.��w��hw��w·�l���v�/��E�:�E��hg�X�'6�4�[2�^;�h�X���hב��/Ǣ_g�߬3��h��z;�C�^
��x��Pްq������@�/����v�������G�;�G��G{C��*6�ug<�t�x̛�������wКMp�X�_������	�K&��~0'�����|�����D�g�D�箉(o��??�D�囉���I�LB����=	�ݸI���I�Ͻ���5����o�d�&#}���^ۧ�<ϛ��zr
�y
ڻ��5���ީho�T��NS������T�3�`^g�/L^�މ��N�w"߮;ѯ7	�b���4�3
��4
�����ۧa|MC�ޛ��~��v���N�7��t�W����
�r�XWG�@}+|~�?:t����L�ҙ��gb>v�	z�Dgߓg��,��晐���
g�-g�?��º�d����^f����l�5�º��.��B�~���<�s��7�p�9x�9ty��o��}����s0[4��9�G��_��A�.����|.�&w.�o�9x�\����?��^S�k�C��yhO�y�{�yhǠy��M��<̫W4�;�О�����ϗ�~�����^1�H�3��|̛5����^��uq�|������e��h�!7�"x��`�˹�e�{�W���<Yz/�I*
j_�/����}���	y=��[{?�J�a^�@�	����>��<��A�} %���#�������-�0^7.@b��t���o���@,���k��g-�@�#�צ����1���I�P�e
�Y��,¼/Z�r�E�g�"勋@W{]z�v�sA��G��oz����A��=�����!���_�y�(�A�я��]�~��������b��Ũ�_K��zK���K�����޾�>�DT϶%�o��H_�y6z)�߃K�~�RԳq)���R��A�O�}�x=c�x�2�c�����PO`�����I�0N�a<�X��]=��2�?�1�L���=�C����=��#�����!Wݲ��[������
�Xyh�r�]M��r��/�!/�s�}���[W�/�W`<f��^�B����'+���
O{���cY_yt�Z�=������[>�y:�	�a������	�a���hox%�9v%�Խ+�>�Y	�^	�=����I���I�MƓ�7�I���'Q�3O�~�?�����OO���_�|�W��^����*��
t9m��9��X\�q�x��t}���Z
������{�A?i���c�5HW{
�k��B�,���xZ��>w
�w���o����נ�Ck@7_�A������UXg-��l-��Y�q��?|-�9s-�[���ŵ*'�ŸY��B�5Y�rڭCz�:�_��l�(�u����P��u���0>�������c=��>k=��z���H���k=
x��(�^�i�y���/?�u����ӟA?�=��:h8���ؕ�?���|���g�����g@7_<�}��ћ7`=��z��
��y�E�Z=��T�,�/{��g1��n}�Rx�F�{�F�C����f���o`;�F�k6�}�6b�>�9��0�o~�]���s�ש�P~�M(��&���	�m����	�/�z_�	�s�ʓ�T���o�x�ތ�i���z@�f̃U�1�l�x��<�y�w��1��?�.x�3�y�]���H�S�G=�<���y̫��c]�����e[P޿��^�قv^��~��߷��h��[�NK�7�i�@~�b�9��y�h�/`>�}���'�:�J�5�'���ՋX'�x	|z�KXOjl�x��n��o��
<�nCN߆v^L���mh��m�����o�ݱ`;�m�v]��Cno�2�d�e��
_~�7/�~.�{B���h�����}l��س�@��t��
ƭ�+�g�W0_~����F;1~Mw���w���(疝���;QX�g�ĸ�ۉ���x�t���Sv��sv����n�P�e��|}?`�+݅q��g�.������v���v�}���ͻ!O߾�ܹx�`7�?^�~�2�U�_~{�ǩ{`������݃v�ڃ�ٴ�xG�}���ً�x�^��^��셼���vt/��r/�s/�ƛ{ѿ����C��>�{�}�����}��i��>Է^�oSxx��>�S^��
����k��]���c?�[�hO����ߏ�n�z�g?���~�g�~�g�~����g�:�~�^G��_�:6�u�g��ȿ�u���o^G���v����uo�n}�ø7Pζ7�׷߀|��Зj@9���q�w�@��~�:�J=�~�:�� �T�D{�8=��h�����4|� �q�!�ox�`�C�W���o�P�n���������v� x#��7��]y�d�a�e�aȃG	s���G�O�G0�wA�G0�Ǐ`�;�-�ՙ����
oa���z��ȟ��1�oc��6�l�ކ=:��'�փ��@ޙ���w��~����>��.��w������y�q�Q�C���GA�G��+�b�
?��E�Vż�X�{��Iz��X�{��Z�þrA��!���|<����0�>@�s>D����/F�v=����b]��C�u>º��w�|/||~���?u����>nQX��#�?�z9��U�?�����é���~��]�)�<�S��]�b��x]�)��3������:�3��V���A�a~��rڬ�@�s5|A���3���ρ�V���C�|�s�K���@�/�O��?@�f�3_b�~�q�Cp�7}Ek��+�c_��_�>��������o��o��v�ž6�`�oA�i�/��o��8���'k������������T_���G���?��9?��?���	�	�#?!������	�t��8�g�{�Ϡ�]?c~��3���̿��8~�����b^G~�=�_�~���~�|�qt<�v�{|w�1��[
�
��oh���О�	~��	���?��մ?����:���w ���o��x?�8ڹ�8�}�8�g�'E��� �ϝ�����F0�>%E� �c�)2��d�O#�m'(��y���p=���+	���AnG"�Cy���[��"��v�Lg���C�9�[NN�~f��"��Կ� �O2��x*�M%��dA���� Ͽ��6"�|�
A���<o�nFd�8� ��	2�X���d~�M��Cp!ˇ�ކ��"㰜 ��맡��'�<=�3��%�����;�,Gy�H�yu:A���<׌ �Y��$Ty柁��	��L���,l9�?t&��A��o�t�Y�W�Y�G��?� �Kw�<,9� ���I��^��Sd�K���y]����k2��ʏj�<�<��y��9(��s�ߩY�s.�kA�o/d9�����Ю���C�]�R��<�c?A�SG4��|�K����L�<���>���t��x�'�|��Ag�Po��?�Ի��ǎ������`|� ��O�Z�'�2��J�ׁ�J�ubA�?>$�r��y�pa��㟺�9�"�s�E�o:A�K��_�	�{?A�˞'X��K����x�1߻t��Yn��������.�8���R��G����^�1�2�W/C�R/G{�]�]9�l\��]�r�]�~w9�fm�������7om�g��(�[m�pm������Pm̧�jc>]��� �y��(�z�y^���_�}/�V���]�:H��낎��E����wO]��.��¯�=��ݜ\��z�ע��p����a��X�~��{� ˭i8�
���/p���7�
��l�,l��Ӭ>�sn}��	��q�>�N�)��]�@�A��
�G�#������O`\�5�|���h��j��ܥ!�OC�a
Q����5�!���F��>�����Mn�����XG��Y�m�t5�1��A�,Ϝ�����o�g��A�{	��ƒ��!�J�7�]�q~� �o_��4J}\��p�4̷�i�_y�wb���0�?HC;[4Iy|l�ku��#M0O�o��g�?��1���1���ў���_�ҁ��nOG����?��|OG��6�:ڻ)�gDS���h����2���,A�/:7K=�������x3�G��(����Z�U^h�\���i�q�Y�
k����;_�*\��9�[��o�y��9�j�v�q�����@�7�_)i�q�훢��i���ǪX^j���xA��/�k	�fnK��_��No��
��W+�_y+�Q�P��0��Z��miz9�5�3�5�h���n��vVk��c�rH�l��μ
��U��W!�O�#��<~�*�������?Wa}��j�ϸ���j�� ˫{�ƺ��ՠ�zm�?�
��A;���A�v���h�}��v�5_�5�w�ȅS�?�x
���`�j���m�qk��m��S[୴-�gD[�{g[�oQ[�Wڂ/k���j��X;���v�זv�C�k��k��s�/�Ѯq?�=�ǂ����h��'Gڃ>h��=�vڵ7��;^��g_��ƮE}���\�𵘯k���Z���u@�=:��:��:`�:�;�-���|��YG�����]��1�#�oCG�{oG��:�_9?�:��u��3�!����}��uhW�N�_�Nhw�N�G�:�?�Ю~�0>%�Я���7���X����z�����J�������A��u�n�vG;#��Ψ���h�����Ý��O;��}�r�/�A�u�`�\G��K�.(�3�l����2о��gA��f��}���#�g _�L�yc2���L��L�笮(�aWķ����
��v�T8�+���+�
]���
|gv}��t�F�!��n�ݰ~<��7v�o'�~\�w����x�e/��ޞY�[}Y��Yh��,��g����Y(��,�s� ��'�^�^�����>�k��~=�Շ �q�r=⿾�~�����k���z��]zb|�{�}��Dy��hg��'�L�y�LO��w	���RďkL/����B}�f��F��d�n�٨��l�^6��l��g�A�g����O�����p��E}r�A�x�Or�.��]�d?���nu�
X7F݀um�
��F�"�Q�����5~����ͽA�{���O��8_���6�3��_�<�kF���<��+(r�y����?]�A���A���#��|�g]>�/�0�8��_��k����S����x���}R�o�~���y� �|��Y_�o��X��X��\�W�羘/�E{���!� �q�B���Z����W>����'#��.��?�:7�.*�׋7�}�oF�A���}3�EnI?�m�@/ktk��q���o��y��o��?�|�y�����>m �@��ځ����t+��b��I����_m}���O��G�P�|��}(���|�C=��@W=�Rz	@�Së��_/=\\ؠ�oQ��,��'�~\�Wm?����ǥ`s��j`��2пJ��2��d?�5��.���r���>q�"�wU�S�y�[����H_�X�s��GF1�8O�o-F�@1�:�x����,��[�z>�r�)F�O*�8�W���)�ܯ��L����	��i�H�y2�����U��3�?s—)�r�k�߷h:c��[� /O~�b�� ��a<�*�nT
<��R�{��;J1fd��奠�fA�w	�����D�� �ve�wf�pu�{���<^>��֧�!�_t[B��P�3!�MGCȗF�.����C6A��2�����h����{"�d��^?�t�F@�
��ޖ �qc��]_E8=
��S��-
:�jxd�8K��Ey�X^"�9�G1�E1��5Ѿ�L�F&�e���7����	�)1Qo���5�4����n�(�����b�g�P^���u1ԓø��x�h��1��NӿC���0O>����m,E�5���q�C�8�gH�:]㟉c=:Ǹ�Y�5,W}��5<K�r�w��x>^�rYֵ�*��	j�@y�h�C��W���2��>�n�!�g���i�d���!��`=<�zh�J�ՆW�++1�ޯD�C���:�<m(�c��9CQ����*�
�l�}�w�bh>�+�u{�0�aj���6��Ǽ5��r_�q>:��x����{���#T^�r#�~���#0>�G�=/����̃�#17��x�1��	�~y$���#A�o��|9t��H��SG��Z��Wڍ¼�uֵ�Q��ݣPޣ�@�kF���Fa������?�t_�B�������ѐ_KFc�w����F{:��|�5��c�1��-c�r� �;�������ݎ�d���ozt,��j�0t�0j�3a�9w���C���<t�b<�o�Ǹ�݁z���}��_�>}���	�߃@?s'���{��'�]o��sA�L]�v�በ�1n�&���&b>fN?�:	�h��I��I��2I�W&�n���z������1�ٓQ�d�w�dй���QΝ�U���u�q��&c=ݣ�kyO�8�4�'m
��;4�}p
�?9�<0��S���S���S1��O�1�r���/�wwB�w'���D?Ν��u���M�a|�MC?n��t�i���0�MC�VNC�6L���c���_iӁ���7�NG���(g�����qa:��t��頻�f ����j�wQ�o�R:�}��c�@��ُk��w�L��31�����������}����Z����f�?�g�=W���y9u���Y��g�P�ﳰ��;�i9�{�FnU�����vL��r�l���X<w��.w!�MwA>r��w��/�����i0��?�)��=G�����9��O4��9ho�\�����.����~̙����b|r.�ջs�o>�����8p�L|�^��v�{>�r�c[2���|��ݐo���C�F�޽��1��܃����8��w��{���^�ߣ�����"�����x�p/��i��Ζq��[�C{>��I�C�9�~�G����4��~؇^��v��[�̿1`<f=�v����a���?<������A���b�D���y�A��G�~|ˇ`���+�W�!��y�|�ۇ��,�x�]�t�4����Y��61�9�.�B�`!��5��"��u����"���5��E�����u��~���G�^��Q�U]��(��1���?����s�b��1�/^[.Ƽi��]�횴|���(�Ř�Y9��%��� |���K���K��UK@��/�>�|)��=K�/��R����}	���eX�?_�q�y��	����/U.G���>y�
�#�]�p�ǵ�ǁ�g�=-���	��cO/�=����8\�� �qݱrǔ'���}�M}
��)���0�+�����;�ڿ
溺�5����Uȟ�|!��l[�z�j�5���k0�+֠]o����t-�1�|�޵��_��=�ux����r�ց?_�v^�|��z��-
���<ز�>���:E��F=
�G6 ��
૏m?�h֩�ς�?��<����,��,�y�F�{�F���6�?������P�ρ}~\;��o=�ل���&�ͨ��f�/،ul��l^�m��7�ю��ﵷ`�܂��ڂy�����x~\g��~�z�Q���_�x�%�;}+��U[1_�ڊvݽ������_�V��[u�n�g+���0�/���t�_�
���6���
~\��o�m�8\�]���Q����㚽~\��?�^F}�w@���j���; �=����g�?���v��*?�D���	���N�Ɲ��m;A_�X���D�^�	|��_wb]:o��p��.������s֍���
v�=c7�z�n�Q��_�U̟�^�<1^E��_~O�}�=���@��r��=���=hס=h�/{T���r������E�K�b\V�E?_ڋyh/��ך�}j_܇�l�|�`����_�����Po��0=^C�_��^��|
����0O~{
|��~�O���?��!�T�����a�o��s����7����_��Տo`����N�Ǖ{�Ŏ����x�A���{R{�!�w�!���CǮo�=�7���y��Ø�9�Ѯ��ў����W�~�<�r�u��=�;�����?�q{��s�������G0�g������|*x�9��Q����B��(|�-������[���S<�~[^�x%��&��G�wi����T�����G��#
��s%����t��(��(��`+�=KϏһ�)�hz^Z��r�˵\Ru=�׀ߴ��!�{��J|�_��J�Fe��g��5��)x��[��rz�%�3��֤4��9)�3��������u��+>F<��~��W��'NH4�tIa�_�Tt�����yP�s�J��x�	���k�?{��7����=5pf�Gb���w���h*|��n�S�ɼ.h�;��4�>�����/)��>3ũ'��4�����ޡ�?��c8��T� �=����7��B?�w_j�a�C�������P�����k��_�Mi�Ԅ�;�=�9����}�BZ�n����}}�?�~���
�i4�m*�b#M]z>�~�k:}�Q�լGP��Zn�����+�w�ڇgk���Zz� ŏKe�p7-g0=Ϥ�3��0��Q��Zޜ�3N��j�����%zo�p���~����@p5�Q�ۦ��o)��Iq�j�����鷞ޝQ�}�I�Ҳ��(n5�m�:�x��͢��{VQ�[(�/��K�<�<�w*��D�����ِ�)�J�ֽ��Z�句�<v��.��R�%����1s�srM�78Mq֌��y���N�Y&�;s]x�����C�<�k;G�M�^`9��1=P�Du�}	$ه�FZcĺŽIy7ѯ'=�!8���u>E���s�T%b�ˬsR�{k�|�]Nϟ���F��+<S!˟�k�)�?��QY�y�Ρ�L
�X���gM���W��צ�GW���dJӫ&ΓfR��S*΍]A�=
��)��aZ^+��k�]s�O���r���j�+��mM���WP�=����n��H_�1e���"z�H��Y����6{�9�{�T�)���Ӷ���ɔg���zط�"W���8���ׄ�/cZ�_:���WYQ���Im���1������<�~���gS{�iީ�|��P�Rpf�����.��ߞRq���
ε}Cq&=�%x�9������u.:���h�&x!�/��5��
9�ͳ^����<�_�⮧�%���Tܟd�է��\|��&O�>�B�)���~��mG(�k�'��4��#�˘�o�ƿ�F
�=Ie�ѻj���D�:�K�a{�̟)M�����7��l�Ip��(���6��O�x!����:�E��{�+�9�>Y,��sI
δ��H-��jϹ5p&��X���q����+�y
�
�2Jw1�h}u���>���?��6����O����)m���Iz>F�'�]���Ϥw�xl(n��Ҳ�S�M��sv,COb�s�{Kz����η���(���s�ߠ�+(�I�ìGP|��FyH5�ܮ��uRqt�F��P�B�ߧuR���ظ�.�oi���g�"����3bݘ?P��ѻ����(�-�vM��Q��O�k=}	n���qs����WS�/��E�>�a��/x�R�g
�y;��z��y���i����J��)�G��h9l'{�צT��~�Ҵ�織f��5�)�&=�6�A�Q^���]�Rg�NʹA��(.�e*��zNO����טe����oNŹ���xp��|Jw����V��4��(ܑ~cx�����3��4|���q
�e���7�̅c�ŕ���<X������{��]��
7��}��
�j]YI2N_
g���k�k��o���J���a����	~�u���4�­�w���Ms*��>�#�
6����*~e{��M���SqV�Z��\t7�զ��C��4\Lϝ)��k�e=J��`P˘A�=��w2�~�K�T܍�&����_ӧ��|�K�z/u��_ZOCJ�`*�eS\��wg�`F��K�֣���_έ{p�U�;���Q��W�M�O(��i9}��N��T��>�`G]��{?��L�=����������m�:�2[qԲһ��N����C�u�)8�|
��)�3�,0�J���k)�',��Bq���P�mZ�GI�9߃��S�wy���l_�m�"�s¿�)�Dz?��m��[��퉞Wj�?lG�e5p��m+l�iB������s��j�m�1��͞/�R���	f�ѕ.�}b�}�.��2�3T��LC��'���~W���Q��Sp�6Ӻ��gz���������'����9B�5��_�m��q�S��ו�+�����j�;����Q)�7�z�������L��M�,�������|�{�̓�W&�ݝ���y$��Kp*����̷�������;�)|Z�7���+����A��S8���������2Js.��y��Y���y���.�W4�yMן�{x��
�o����&z�L�	��#��X�r�1X۹���T��y=��z������87����8���u�{��,���Rܷ�n�Z�m)����C�k�ڧeT�r����Κ/�����}�>�r��7��
�k��#h����e�-�A�[G��u״��a
��%�(,p��J�K�na\���C�?��|��Ms6�,Я����<�,��s{b,�P���{1�4��t�3Ӄ��$۽(.�y�}N�o��׆~{X'�wק��Sym�|�y��s���c���B�xp�AkJ7��Tm˞Tܓ�HinҼ{�ݷl�a9�������7��5?_����2���^��u�����J�|��K�퐂�&D��5��aY��w)n=g���{���hY�+�F�?�[�e�b�Fq])��y��{�E�ضB�_��y��O��]�iŲ�A�ԅ�ߙj�^��l���^�x��|,o�I�%��Jm�X�Dy?eK��p}]5�Ӛ�1���3��E�f��Y����
��}Js�W�૚������Y\>�+f���#I���"�������i^���op
�>��j�����]���e�W���D�T^7z�Q���]
7���x>�}Nq4�U�N�P��g+�?%w��)����w��^ٵ'x�����)�Ji������Ge*�Jy��^z7ͅ�lm�[�vQ��4_���R��.�����Y@�o؆�r"�n��~Q�lʻ�i���y�XWb���`��}L�o�N��L+l�ֶ���GR\CN�oz}�a���������WcM!o'���z3��pai��~�+Lo$/�W�F��C�-(.j����[�R9*�0Fo)��[�G-h���ΓD�Fa8�Gӛ9$f��p��7�Q>�� h�'�VD1;�8�G�)+P�+6�Dq{�eeF�OM�cԲ�oE8�{}q�(�1Jl�
S�eF��I�|1�/j&|�T@ �(K��+��#*���"#J(I�Ze��A�78n�i*0#���X�TZ%��B�,o�/���x�k�|Q�3�5e� 
J,Pf�i��(�vR��Q�*��7�+�6R����DQk�P�k�ʩ�fc���#�2zH/��

���UyF,�I=�}D0��H�C���o��������Ը�R#��8OI�(��.�N]!�}F�C>-�|�F��R!���J2��$Աb#vm�A_��n�x��1	Tp�tO��=}��¨�"h�۶oZЁ�;3�Q7�G:�

���o5d쀿p0��!+�i�!¥���<�/�E^n?� }�t�f��|4
�7*1��	pC��.�p��
�6L#Z ��S��8��ۉHF�F�b�e�J���_8�ύ2�i��jtI8\*���{rs�Q3��BBa/,3��'1')���#�ʠ(>����`�&R�I�KN5�I�Sn��
{ЈJ��3bp�J)��-�+��Pxu�|�`��7�uq���v�wfc*��h��dd{���i���*D�� U$�(ܙƣ40c�U��*���?�
oO���&=�>��Y���PY�ޜP��q|����o?8l��rC��L'�(R�bF��9���>��+�ᕦxs�Es<jJXL:��2��.�Ҁ�*���7�h�;��
�QQ��M�9C�9‚�]�GK�p��F��/�F�Ih��J�Q1TA~�G���L	2	��j)�4)O����/�L`�z�>c���b���&Mo����$������p�����5���4?"�;�(�F�H��[hDc<Ű���˸3��� J��+|��(ɤ.����˜0QW�hh
K|!n���q_(�U2�1c��1��ŹА�A8D���;�+3x�|�<ii�¥9R�C�����h8���Ü�^
��T�����QF�l5�a���I%��b�P�"Z>��F���eB�o��8S!�WP�f�JLك�P.�eƥ�""��t���
_@8<�����`q-_<F���
�L
T�P��¤�h��g#�����i?q�{�L��ȁ{S`1���$��+%}�HJ�>4����L��!f���X8��P'M0l�BVkb[���?-���.��	�3�y����2-�d
��#�%�'�z%]np0�͈��xz�s.3�.$TXA�'��A����/7^@�.i�G�S��Mkw���r�Hq��6)\���
Ď�Ld��f�F[��\`ɦI���
�g����$��%/�.Mq/�4��ܗ4^���"#�����T ��������(�F&`n��K���t��әZ�39Qв����
��]�M�yCbŚ�B�ׅ(����p�O�WgY�X�冔����E�yq8Җ0�(!�fM%����z,�W��:D2�{=����(m���'ty�u�~Ⲝg�?.�aX��tfN.��q�1�=�������KHG<6`�-�Ѥ�B�v���I��X�Qb�*�e`4ƒ�hq�y-�
�wBqd��M�F�ֺ��͏GC�p�lW�/df!* �)U��⪀:a/�4F4m+��#���a�s�9g2š4T�eP�#�\G�1|^d���;�:ES(���\���W���_�����P�cͽ.4�=$=�А�"�)�!�p�PU ��6c����<�z�aV�%\V@2��YT�(���,��}��`�0!���M[�4K$܋d��Jyt��״G�R�; ���5k
w�0�M.K�"ǎF�N��b��3\\l�Yq�c:�(�brYFD/Rg��pщr���WB�zg��{Y+Pz'�2]�q+�/�D���"R,�<��ƔIM�+�
��H���6	�8D¢�YM��\1�	v
7�ܦ�.:��>Aj-�9 򈵚���ZW-
<g��Bsf�Z�WP��|@��r���y;��0K�y,>�^�X+�}���&�ۋ[�TG	B�Q�����o+�/ݛ��9�jm��D�"��m֓T^�A2�E(�$�d�B��XR�x7�	j�V"Q��,��B|��(P�bUe^&"P��ߛZ��x-N8�U=�,	Gd��PK�8$�5g�H�_��p}����~�kB���ј>o��*w~o-�����X�D�K˽/wvj�U)�Cbs�E�5�l$q� ��4#}B�	*�E�"�*t���K(1	4BEl���?�ApQM��WQ��"�)���y��C"bR9Q������DTV��y�e�֭�.M��Ff�4���ѸX��V�%N�5�h8N�8��(	�եc'k.�Z��{��S�;����bk��8�Gy1“��B�`����Kʚ0z골�Q�M� ���)�y�:B֨�lG�Vax}<,�:p�bD�^8���Xb�D�Z+�	ʤ��§��Q��REնs�$���^��T�o�9����-�EA§�vB�	R�/*Jw�U�ĉ��)�Q8�E��� ��<��K���H�O����t;�O�mLx=��bk%r�₆�IrP;Wo���"]l�b'�(��,,�A��t��(.R�R��z�D����1^J	�u`ysL���w *y$eX���i�b���S�kv�}/�����*-0����P�x�y��%�~
��W�g��%r�Fa�"���P(��ي��B\|��6�WfX�y0��ތ�����e���nI�2Ju�DKSޣ��ah��`�t���©��w1�����(�LVT�&)2�5˯�V*�.�G�e�)b!�0�i	r K�3
r�}1?M+�'�8��RC-X�����
Y�1���8߻���{��=�Syb���2I�輀�%�Vl1��%��D��8���0y�:ƚ�fU(x�Γ�;$�h1~ٯs0��O6�[o,#Z���_�LoP�y�v^�
Z,4�/��:�֎�/f�
�d�ÎЂyOMKw^)aIq���dc�'NF�R}�$N,��l�-7���^��D���W.�)��+�O��O���V��l�3c�2kjz��$��S5#;�K����+#Ǜ������"m0�~���n�~YY����j� q� �=,����~p��vT^��'"_,��bYĔG�28V�c�Гaċ�=yK�z&QON/%اw�cZp��Bv�l,��ʳ�
v��\�g�h�P(��6�]%EN� 6k�j����h��Y�c���@���B�rwkV,�~OX�"R��[�ź*�:?��异pH���!�����ӆ��1�2ΰ3�[O	&�YF�}��FN��Z	�ŕ�+�mbw֞��e$r�F������"Ƴ��8��ƕ�4Åa��7U�4\;P8"�K/�*�����sQQ�&�O�(��o��R�܅$�tɫ6g�RiAAoWZ�h53�H�T�ŝ�g�F�+���>�]��~p�M�xH[�g3�3�jc>��'�G��Y��e�S�N7�TGdgT���\v͐A2q��1�T�(蓢mo�A��EH0R��y/��]���Nf�md,�Rc���^�0��6#LkpL'e{w3)^$���np�I�K�^��K�%'"ޕ�v�N�":�m[���NlFX�Oa�ϗ��cW㛚��6c���j�#[{��/!�&/@QZ}+�d�_�0O�e�Vú�4š0��̼,�nBlS�G{1�;���M��e�Ƅ�:Q��!_qa�}�����+��d�#��{���e2�b�bCTS*^Q�tE	����N���6�t"��[ELmzo�}�x�a�`�7�~�>əf�w�]���tH�2�.׵!��&X�f��2�DV�_����`�
���8K�bٗ���c�w&��Φ�)��iV%B�̠<B�����	�����ʂ�ƺ�ud�&F�ID�v�R[Y�8�(�V�eoj{2�K��uF���E�b���[	47BGxT�%�喌&��kX��WΎ3�x�P8��8���@�]��'�� �W�H<�`o��8^?f�8�A5	�;�p�-�Ť����j�[��_�s1��a���5�~2]1إ��1^�8�l��L�5!��r�&��&ۮ}O���)��g.R!��F+�t�n��}�vZ��)K�+��5X��Uę�%��E]��B�86qgjf93�^p����Ũ]H2h[+2��(P4��&���+[��Xh�ZP]>AEҚ'KW"u4��y�G��I<�@�4kOw�-tL0��?K�Z !@�C��w�[�+p�S�D��b3q�~ٔ��V�@i@��l�2����W��V"��VS�QǛwC϶"�9i��[#aq߄����+�s�>�wv�m5Q�ğ���[N]`d���x�ʋ<���g�Y�4���%J��AR��ǰ+�S�6�y��,��N�֛�f(zXU"!��fe�f���aq:#��/��(�;k�򱏒O��ihb�O��Ń�rEِ��j�$n;��Q$
���ܔ�uv�R��
3=)g�?�ð�A�?s�~RV)є"�s"�$�މ3����0žD��l�41E�$<K�D����]l]Ke�6<$���
1�Uv"�eV|&��+��8~S.3DV�i_�0�ȸ�%mꐻS��2,�]%9��t�)�)"�|�e���DS!�%EL�޲8�5������5(�=�����W�c�<��#E�NU�0Y]%	��ݮ�����`pų�G��{��m��c5�Nv|Uo�j^���M,�+�n�Mm���z�(C�-�SŦ���5K0�V�brg��I#;a'z�
Z&@V���}*�nn�D�!1���͖���MW�ݶL��I7��?eD-~E|�Ѫ�~��f�{�7xZ�[�1�5*
���-̴�Z���Y�p��f�p��f�?%(�K��.�;�l��r$J0gP�=L�҉Al8$�	�I�]
�K���8����{~���N����^�”�F=� +[~�4��e�:R���K��]G�7Ynd��eV'ر%
�u'&���=�m%��0�50ě
�,#�'̩�2��A�c����Zey�V��V�i	�z�G�&��b��2ܪH�٧84�Z��b���D�N��*�J���!k~VCq��n\�(�MAމ7*<YE	6�4h�r�D�j77_�:�:'[Wuk�H}�r�����L	���O˓IS��(���
��� DZ� ���b�0�Ml��}�D�4I)�6u�F%Ԯ��WY>1�*m;��s��f&��d:zc��&&6	�4*J`>�s"�Pv2cN�\j"��Ns�R*�J<�>�A��	���C;ڝ�;�y�X��"d�������]��
]Ύ*��^�,�Hy����b,�X�~qE`�i<D��*Ɋ���E�vϬ"�O���Z�%�����VK��췏?�;�O���mW?=_���Q9��N�m�]Y�=h|&�y	��x+TK��HV N]M;���j"���/T�e��R��+�I��%D�����
&@wK�ze&F��0P:t4?�e<�D�gߞ��H�%viڧq��GN�٬5q�(7!*�=���w*u��,bX��m+e�`,��=L������cRB8��.�H�e��=���I��3a�)���enB��MM�
�k�����N��3�v�=u���(��U8Ҥ�RƮ�ņ]�xjp����+�Ϥu�g�b;�[�?���*#�s��%�V8���(�����M_��1���%t�!;��\3� �XE�,֦��ݘ`۴N(	����6
vP��uՎNiUn�y���HJ>lMuJL�e�|��@s�:L�ʹ$9�jY�c�3�����ز�6q/s|�Mt.uw���\F���<ۂE�$�.V�8M� �S��.l0&��V��	V�LŎ�na�/��{~}C+��b�"w�d��|�o� �z{�ǪL��T�+�ۨg^�<&5�gc�i����
̦��'��r����5^��L��$�G���ML��#�FC��$޵��I9d5ش��8�� s�mD¦~�h�K�
���fZ��E~O�GV��`yk%�W�!P��zgOv��a�47��N2�]�
ba�@��������Z�t�[�9(�]N;?��(-0)�Yeb��6���W�.��b��s9�teH�5��-�H̀�jw��ɹ	�@]�e�AA�7:��&�i�q�$*Mμ�E”�3ELj���V!��xԁB�x�Y����Z�Qzr�
�p�9V���E�F]��9Xz�/H�+6 �j�ץ��+Y��T�������
��F�q��2���"��� �l|[
�u|%�j�{$4����S�8�.�}�v7zT��9���=H�ʓ�h�)�������ٓ�Nx�3p���P!��V$�"��)r�~�b0hA�2�1#�S4y�ը���W�Y�������وU�gf�x���sV����y�$4FI"a�����'H��
�z�°,�N���=k͞,9�վ�C^~��n=����u����9�fȖ�����W�i��r8��	+�M�\��
�>�>/���j����-A1��P=M��w8d�z�����!��Y����#/��}���}����W�0��ٙ��][kO�F]^��+D(��d�����:�B����g��q3��VD���*<��K�v�("��H�;P/#�/�U)C\����~��� O���>x�^BM��[�
� eX��A%1�%p:0�h.XG&�H��6Q��_��-�1=[����X��0d�Q�xz� QU4����j�8��0$v)2v�;M�rɈc���(V7��I�@������&
P��en��	�>�6�Q�KHX�“
V��4f�^�iާ��'U�L�3�`�E�6� (s��ܰ�%t�J/��eb�?&I�V��$1H���ۜS�n�Q��m�E�ɉr}�;���&���\��/�Z����̞����^|��e�H��!�������+��-���H`op�Ф7����|���S�e|[f®�{��Ac�;	�w�2�]><�䕜��V�Ɏ[cbF�t�Zk��#,7ipB�����eU�c�|~I�tq�yj�Qe6*�AA��a�2GJ<X���8X>oj�:v=��У���^�Wp����'I~-�a��������s�7���PA�S%yN%������-79I�n�$��ON��_�
�Uޜ��p8XR%^�2ck!�:�HN�����R�s�3�z3�Cej����>-��t��L$9��η9]���(sL��ʷ��zl�ib9�����
���R��MNRY(,B�H�	��>��D�`z����o���,�2�d>jߤЅDF�n�c�Ym�,k�!��P��l�"C8�T/�5K:ܼtM�Z�_K��
k�����2�:u�~g��܂3�\�T-l�n��`ݿS�j�},M��#�{W�O��(��u{�u�ߎ�5D�� �T'C��@��p��z�����-%�΃��K��r8�#)Pa	��\Tҫ��W��|o�Lo���dz��&���w�������)7�gV�N�Y9ٴ2�mk6C�e��_�l�K��Y>���-u������<���|��-Ƥ�J���l�>GB@��~/�O���ˈ������̤���d�
+�G59ui2���v$ו_}=�Ջ�,q���%w�9vK��DZ��2�0>v[R��R�E
���&�\%�׀4&��f��/���Z�Y�6�����%��k�qD+&��6���q�:��ބ���	Nm;;w�	[�|)a�$���'H0$抳\�Xh�mϣ�׾�7�7��';����K��η�ӻ�aו����ؑ�LOL�:����u%M�u6l�H]R���Ξu��$�i
ղ�J�n��a�B����LQPi���׮�J�l!K8.��Xd���kb�<`��<󴫜(��P���́��NSǺ�'8c�!2	9�&e;=��$�Z���7R��`{�q1R2M�l�$������񈩛e���K� 9��O>p����w����Q�b�M�{�r6��@
�K^=��s`���ylW����v]p���ݾ%B�[٘�=$�zr�=9�=8N�@��;ଊ��L�uQD�9�i.W�8Wc�kZL�%m��>�k�Ŏj:����j����
���0�l{k����Z
����"y��|���+EWv< p���fư��	:�&�K���tꕋV�B�{��B=�T�4u��ڧ���`j��-�m��-�ή����4D���	��Sr���CȭK�N��v@\,U�6���M�"�(+] p
p�X�ֱiy�q*��x���Pcq@�;�	��#�� ���`�'j��3l��F�t�oer�!�\a��I�Q�o�Q�)����h�՟~5���+xr)p2	j�e��`�o]rZ���jDלj�l�qC�ߨW���;�E�u�@�ޭ�z31����?6Q��H�۾��@ْ�_4�F�^7�䈺%DD��Qͺ��
x>==�\v��b�xL�w�;�_Nl�4I��v�����d76�-D����Um��
�lE�B��U|�~��bK�G.�_#ީQs��f��]�6_��5�}Zf����2�-����"���-K�a�/ב�7���\Є��*Y���{��C8�"��o�-$��8o�w�s{�ǒ�����!3��}u��qX�+�cN�sJ��r��Y�'5�)�r���c���0/=�YW�d˔�-+��	�8�%
�
��˳��Fe�MN[��R�%�!��w��Y�Lv��]wָ(I��&r�H�umz^�ɶ�|.,O�D�CNA����#�:��MA&YM�L�]��g�g�e�1����J��]w��{�9� p:h�M���*>�~ޝt.f��L�������4(?zJ$7�ղ�%n�Z���
�ܪ��
�\�>Ĥg�����IPh����'�F&�.N;[�a�`����+IF#�jt0\W��=�l�㻽�Y�����r�-�~@���i��r��@b]����:޹��ۆ��m��U�6tϖh0.WSI��u�Ȗ¦���lu��hZ���Ǻ��ǖOw��rb	d�Q��R����N��U5�Ƭ����{�Gy{5��-7/;�-�;=��~wjS�*#�DBiMo$��K�����JB���G(`��G�:_PN�o�Q�����]�51��r��L?Q�	�Հw��[ �=^ }d�u�Y.�n;��T�l8��Ь������Xw2ǽ�O�%�h�Mɞ]��&�.9|f�r0Z�87���L�1ѭ��˼�7�xnrI�E�fb����`���غo"sE���MhQ�z�M��Ⱦ��Q�#�6{|v���\�!���*qD��zι���W3�5E�3�s2hߟ+*�	���.�+ݹ�g�<�#r	ž+�Cz-��}��D�?�>��i��[�j�Z���&&�a���k�G��͚%�y�Yy�7]ᜐ}<";W��k��L۸�ΥE�S�VU�g[�˵M1����V�l�,D`tv����lzrR�:�N���*�D��K~�Ν�Rd�d�P�׹������i*
w2P�|��}t���H/N�����}`8&5{���"X׫ċ�=��fK\�^%����[p��s�6��V����.�=�"F�x���z���*h�$pe�+�f#O��G�5M�Q{�J��h�n���h�پN�ډ�;I"-�㎠�0C���rfq[���F~ï������ג����U5�|�}�s��)���@�I���Õ.�[��/��3#\��zo׷���V%���E�64K�c���ອ�T�᧑�w�Hv�m�@T�p��纑Ȋ����f�g+�~o�(����hS��qrƺ_�n�ʊ��f|��g�V�&�*��Mz�x��F:BbfYxP��Β��:%�[�_bSx�od�,s}��Mx9��'����ˊ���uk�4�Ϋ{��s��	�ٲ���%�F?��ځ�'窿�]�r`�#�L]0��M���sX�.	�(�	t��L�t<>C$U�n/�C�V	�|�M�)���mT��>�*�B��a��/_龓]�ᷞL��)c�����Sc��п��J���3���1����
����EOa�m��ߞ�$g���+	m��jwHW�	�ڀ��e��J�f���hovR>�˼��ܯ�|O�t�is.�S�$��xQ��%b�����G%��*�V�?iߺ
��OXn	b���4���Dm[��!���m�#+2dT8^�r!��h
F)/�87�+��~x���]�=G$�K�w�4h=�,���}B����f��HT��������=��|������f����U�럝��ƶ�-#�aZ�ĵ��������}\΂�"4ຐ?��8����EA�<8�b�*�-��"������T�c��A�?e�y��=���R�)�y�c2�Ah��Ja_Js�1Ř���b89��z��[�8O]�9ӓ���~��<�ո.w��C*sÌhy��n8*��X&	���`OcnM]����;�}�^�w�k_$��7�s��{�ɭ|=��4�`��Gΰ%^�	~��~� ��Qyn�w�[%��B�}-�u��D�bo��|j��c�I����p0F>�"�*
�-/��	h'������u�������]�ǾI\��㕵5�d��r�ʝJ���?�[ᶱ�%�/��g�ĉer��z�fN��^�{T��~!Y��~���M8��w���&�.�}5�_+�#�V�6Wq��|�*gr'�r-�@kcK��$[�p��9@�-��JE�������Ͷ��r_4���Ffci��g�_w�р�H�h�.�>��OH��%�僀j5���pO]�,�"�!�u}?nW�/"�O�+B֢��\�!�I�т��uIp�F��a���9�;ii|���J��K�Qm�c�����n��7��]3O.uv�g���@qH�Q��i6[��M�%�ͮ�r\��,S�m�o�K5�*�{d]�)���*$�9�B1�DS��p@W f}��nz���泈��n�q���9Z�R#]�+X�|�X��*�Oø�4祚?�/ۊ8O﹆�����)ʵcy��g�<^����<S'�W���j�b��]�>��˶��]�S`��Z	�0M 9�b�_��gZ{�!B���
z,R%�~yޫ��r����$JRj�k#u��Ulw�Z�-VD��^k�
�6����|1��׺.BU�-ۄ�grs�i��_��o:e$�U�A"�����~�ʍĭ_�O�s��`��#�%@��߲��c�V�,Oق�ZC���4����Q����?��72ʆ�l��L��毧�+����z>�n�����Q���N��f�w�;�$�.��Uv�U���j�2= �?�MKz�ڝҙR�M��b4O�n�*���,��+dQ��W�7�k'�56'�t9
Fuz�LNL-�_�h�f]�MN�}"{�!B�=8qbv�����;Wr�K�#b��R���C���Af\>��C3��U����"�Q����CD�VH��ޤ��ЋD�ԛ����>�zGrF6��#	#���rl���gaᴁk ����7�7Q�;�a���w���(
0�tI^Q���v.���C�%�K��V&�������B!��-��<��4�!_�Pn���g��x�*|�'T�<���c�
s��i�6E�m—ܪ1E����&��r��s��\]M.���z*)=�G�L���R��
>�M
�u��w�;>t\�8zT҆Lj�׏T,5ĕ�$� Sw:�-�
��q{+2�5#� �oHcO>UQ*v<G��ӻ�!N��x���f�&��",N��q�&15��b��D������fj:X��8_o�R����T������]�-2�o]f��r��{�]��]��`�.�.1���YO�E
�`W��LF�w�
}HT����D����OSTY�|�"ѵ^2��]<�ja�J�U�3�����mX™������MҐ�+|�> 6�8K�%�(��da�IWE�Ք~P��y�G`�:t��8��,-|���	�%|�o�akY	߁��S-"y�B>pd9:�}�Ϫ�j�7DKh�Eպ�E4�����ާ����
j��w��l3dHZ�ې7�Rh郮(���L����`�ے�q��]��M:c`��0��9D���U=+��yºk��Y0��8�,�X�n�X�Oo_��qe�����N�"�����m��HAM�0P,�qQ	�L��\Y ���;�
t��E�zz���{�G��L��Ow��Dedd�Wdċ��ז��S���И\�++շM�@��F�I�A����*S������8V+(���R��%�\�zF��M�����(�"�bu��	�_��8D�_S��>,��~-5ݧ��8�s���{v���u �U�ڨY�b\kq.�3��֕�Y��7΍.�P`�5����=���ϣ5 ��6�a���o���H��űnYM��c�a�RN$6��9����iW��a�z���cl̎�Z�yUd_�F�"���Q�3��d�V8�9׿�I��o�GGF����l�rQ���2�r	��j���e�('�i W�:4��)șkWkḋZ���qu���eޖHv��R�R�Ȩ�����/��	�Y�V��Y��u�$�4[;��%�:
�J6[y.�4�-�k�A뵜 �X<��
sHH�=F�ě������%��z�,=F?fd�i�-��}u��te�P���F��e:��G �Tj�Aܒ"q��w�~pM��b���7����k��H����s�(�v1�8RF����\D)��¦�ʈkɳ(�����:f�6E��p����D�z�4c;�?����������G��G����U��aՋNj3{���[פ�4�E�o��KS>pa��!l�	ĪaU5c�9o��eU	��B=��o� ��,��㕸T�!�Xݣi��{AE:ss8�׊�5���Aޣ8���022
�b�U�����s��Ob^�	�Df�Z$��0��������'�I��m�5�^ȥ�TҰ-�V�`eo��g0��6�*�����,CB�UT�h��s�h3S��)��bPR:2j
�4��-�k	��v���W��tW8����K��43Z}�k5�C2���Nw9I˙�����s��z�!���/�}�!��yߩ��u@���YΌ�;�^� R׹o>i�jP/;��.Ra��M�E;��h\g����E��|�	�|���'�~:�qc�eo�t$k�I��R��dՌY`�
��L�u\Gf5:E���|�tT�߂�6�7�g;�}�w��%���9)SUE'#W�7�zXp@1��K:�n��rެ'&��k�Ȝ��* 'B��

F�ri�[�<��=�H˔X��C0��t3a�Mߡߍ�p��n����C'����j�"�k1���L3C���<d]4S1D:X�!e�v���$��j�bmUJ�|ٺ�l>�����{G*��ƹż�	��r����[F���f4J��#d�DX|�e|��>}FQQ��-O��EIlL]�� u�U�&M�o�k�]�Ak�YҞ��h4�`L��i��]Y7�b�(7�e���ͦ��)�4G�3}%�jZ��g��~
KbN-T�Z���v���dqQ_/�!���Z�=>ڀ�����|��4��4v��CYѰݨR!,�������������
)���5]l'�ܛe�&��iM�1;�=
җ�#'�#��T����]g��v��P �FG��o6����d�=�Q�9�&l��Z<�ija�ڥ�2s������z��>'B poB����7���[~�)IKQ.�
������G�P�,h)��Y��
H��g6|ve�a�QY��-^��)Y� �)�)hL��;9��\B�z�����N��� G:X����Gg�^(M>j�y�c�@v�:�ca�|{�U����{�X#iN�key�f!$���g�&<�@�v�bCb���K�k�.O�f���p��S�
B��{'7O��<yYٹ\���>w%��f�|�׃�,J�����a�/<z���n����*3�VYwG��z��R㥪%���f��e�M�p��<+M�~�����4	�ֵ����3G����\�~\.���e%�$���6=K��k��J�������YB�д hXo�=z��;T�EN�ﳭ{���i�2���pޙ@Uϙ�4W���
��̝D�����^t�R̋~
O5]���#:�>����P��,�Y��غ3��i��7L^�?�8�`��8��!�K9|d��27H����gk��yM� B���^���J)�a����7K��"�R\��C�'G8Ք��D��������fZ5��ܲ���K��$J��yW,F��&1�F�I =G�yVA�&�1\7���s!-Af0��h��9��ٜ/~B�23u�U�����>�J�I���
�1N�NW�mFyO�]�s����I=1*��K�����4�g�/;"�FAQ�]��/���$<�Υˌz[#N�4e��kԨ=uz�cev�
�|l<��	~�LO53i�I�lUDz?��=Y�؋|��o�Y<��k�p�Jv��`�f'fs"e(�g�(�p1�rI�M|xO�R��y8
@���.�kT�s�w �E����C�m�#�0�$=�-�D�RN�G��V���R�W24���OZ�45O7�0�� .��jF�&rhK#�0�dO��~3XI5�C���}��VGs��s…�2K�E��X$R�E�rw�<�Gx�Q��'f��c���j8��2�S�Z�x�}�g9
�J�#���_*^�H�g��]D-jnI+pII���n�029�T���O��|f��0�r��:����g`��Zݻ��#�{H�OV��C=���8d>)�'�-V�A?|�
i������D��yf��V ����T(C;�R�
��-׳(!�Ťe���P퀅X�t��6}�AK����\���C�AQ_t6cD���uh"��D��6��1�=UFe�7��2����A;�6��`9ڴ������e���ys����V�}����hR�������D)d��e�|
y�wR�2A�_	kj�{Q�\
^&�=I#����F�2�}�W� ���z)�D�3f	힊)p�4i�8h��S������I��̶ZS�,i\_�#R8�ʑ*�.n�8�e侥ޜ�`2��Vԉ���t_i�i�%MV@,�aqu�A6����,M?U&%��
��K�:kı��.O5�2�?䂥��[9�� 6���Ӈ������EQK����lCXE��}���8z"'�6,5����nN>�I�/Хڔ�.�! #!�~r��i�jd,Kn�H'鈨���詢M���h�<j3�3����Rk�y�Y����R~=�k�J��{��"��3Du-�LDd{�2��tb���S��_{�@���O��z�8�t��{���ۘC0H��,X��~
c��7֊���0��VE��Xm�k�9�9��%-�&;��\�C�|c��:�E�$�Opb?m.t�
����C�'3�^�*3�W�}O��Ģ(�VK׳:��$w��I�~L&sи�Q��d!��,���@�H�〿��焈v<�e�r#�wq��JG�l�&i����0�zc���m���B�V�o7���k��h�Y6Ѥq{�D4� �N��"��L����S�o]_�Ό��*���}�(��;�\0����Js}z��eom�s��i��:����<��X�-�!.��-��)�"���a�y��R�c*��`I�?�mk�y�'K�`v$GHI/�]�dOG�[�d4�Me��N[�3�^X�nӃ�@�a��Y�&k�.���U�9��A8�(�n��Y�6g_��C�e��i���In�w�+t8�5L��O͢���gt�BQ}GB	U�7�lHg�)�q��ޙ`��F,�Q�IK[G)¿S-��V���̃��V)&jNʒ���]��D�&2ݳ(|���`;��Hi{K^=p�|�:Vܬ3K���K����.����,x��3�s��@?\e���Lա2�d
ۊ���
P��yjӠ=I����:1D͐+�&��ͪ�~��vr�9>k�J&�Z��ާ���>�׿�)�O{!�m/��4�9�Os���:�>�/�LD�3(��T��AT�}������
G������dH�@p2��D?��D�L2_>��G N3`œ��Ś�L]���H�U=����%�/�4��9���^ّ6���F��(F�f�*y�v�x���	lyϾ�j����ѳ����7�_�?���}�f��ޖ��G_M�}���-Нl����)�sK[+���O�/�~��!7�^o����o�-6�^��|�=Z�����ߎ���?�귟�i˅v�G���
����L�M�m�i�g��j�&��v������
[��|�����s�oae�q�:7ԥ�䳊$M�5Edcq��Q��>EM*���A)<��6/��ќ�����/Z�5��U*.��n�i`Ώ��y)WI��mq��R�fjrT"B�f�[��G�\��$�:m�@U�^�VzByH\ӳw�I���Y��[�j��]�v�\l�R 
<0+�@���/`�g���4x�zt���.�t�����Z�x�`A
�	6�[�h�N?�O�HPl����S��S�2�=��K��t��
��˴p���:_ؙ�>�d�[K:�k�pG���!.�o58��7��~��[�5��6u���7�5����V��4�=UR(�^�ן]}�{�v"�ɢ���jM�N`��PD�h�}p>�=Mb��@���Y��y���Rd�NS1�k��B흅���W�V�vl�R�zq��s�ءu��`���#�����} "ݙ��2P�V���pW�����!T��=� ���Z0���3w��[(���=�K�:!ϟ��
m5v�t�L���	��;��h&G��Vfj�`����a>7����,�J�ㅶ����^�J<�Of����u�U��c�>5�N����<�!{�ݝ�� a��_bl	�C�#qe�
���7�dp哄m��O�s����Y��Ia�A�.ֶ�“g�q�����;K��뼔��+bֶ1TY�/b�����٤�]�%�4�_������}����H@)�-S�d�3��{���U
NU1������,�L�P�/_�>]5��e�Ó6�a�z���.c�ѩ�U���	�ߒ�C�G�#�fC�3^�U�Ϲ
����)c�G�4
�ui��Cz �(��EK��n�O�n&�%v׳s|��\����2�t
��S	�J����[��nYZ�r
$�
},�-�cl}r_+"��mM�}T-+_�*c�f���iP�J�y-&B�P�{b�T�{A0���;�Ę���d�g��L�P6~�y^�Dr���]���h���&�Ip&������9s�ϣ�d�ݒ�nf�)@�y^�_h+�6߀�0�y�(�\�,'ʄ��bﳊ%�+{@����]
74pr�OW����G���FEY���)jJM��pZc����%역�k��Tݓe6��'�Up����Y'H7��.�J�]�29U���T�q\�R�'
H��U�Ӽ��!cI��0���'��4+���+�L���a�s?,���o_E�neƥ�
lp]��T���S���Ԥ����s�㊰�:M�"�z�g�q�KO��Z�m_Y�v��E�A��ә���z����\�J�jQ	6(r��>u�sY�]�L L7�m���8]m�t3xܴD�EG�L1CA6��]��P2���(�
?E��
Km3��gYxYg�H���3,�]�D3��p� ���h���!�6���1�ǰ�#��lV��}T�/f"���w"ع����ٖe�eV��R{���e{@Y/���!Y�	K]��(��1���A�w��f"O��@p뿝'��a�켴/(��!��_����Я�A6CJNV�������P~��#1Y�T?׆���Xly�Jx�L�.�h��i�U����l�,ӞC��*�"4D�о�cg��(ۥd�&ze5p�r烍i�}���?�L�(��2-2M]����c�%��#w��/�x9�g��u�W�x���y�CuM����X�/�'�}��;�7�(frO�/����i��(����f��cL(ec��~��6.������ŷh�D����[J i�H�Z	F��$���{��m�ȥ��Qt'�ks�|�V/��3��-RiT]��LU7���Ys~>�{�,��̏%n`5WW�U�U�1#*Ӳϖ�G!��晰Y9��V�ܑ�O˹PL�"`&�n����"�����Xk��������4\�rw�~�,��v��ٟ����\!AuF��N�V�Q3R��?��ȁ�z����>��G�	'pmi���$x�r/���u������_.���V"ߕ���������A6DK$�1m!xB���r^@�SCL:t�B�U�8lCb��5���y��a
�m�D�2����	��IF�G�Q���}�k�p��x\��u��-�j-i��?���.���|�ɐ~��c*l?�Te
�rnņ��*
A�;�C�W����d�9�������ѻA>МhQ�M��>�h���A�}�L�Ͼ=�.fW�"i��
��*��SfsF��p�Io�Wɥ���n�uo^����Վ2�<��=U?:�|�<�<؎c6�~�UU����U�hq��n�ݷL����O���8��_��wg��sTve�i��z/2._/ ��h��䑍���]He0
�]�0�F(�~'G~��f����q��許������8�"kŋ��$c\��yݯ�V�^/ң�萕���xD�wp5,F�<�����8q�n�v��Ȯ��ӏ�������e��I�H5%"@I��ø(���2@g��5���4��IÜŒ<T�yx,,�;�h�4�J��V�g!U��5+�,o�;�dN@�3'+��۫��u]ʢl�:6R�\&Ld�k���R�G�0��)D6'rf7eA¡��Gl��TbΙs���Y��%.H�˝�w����=��,hڋ��>���N�ށ�u�L)���wʐ��P4A�8���q�+�w�W΋@q�gw�4�n\
��pe�b��W�)�J3��q�N�t֭Dѧ�ގ�`�Ox��3~xv����ɚ~�V����
�q>���r&Q��u&W�vA��{��|�Ž���]'Ɗ�N��%覫��}�?=��O䵖8�~�L���Zb+���l�g�m��mv!�#�!Q���k~U���6�l ]�e���4��r��1��WЀ�5�ǿ��
�j#�ǿ���zE�E�3�^)ڥJ�%�մRxe&׹ae*�c/�4�4A��˘RƊ\�]�C'|x-=�ʁ���=��eM�=���`Y���؞d��;{1C��m��D��+�.�P��Ҧ�U�{"�"j)�`v�'��ջCy�ZA��
�#��h%��f�q�61���:�57�fĿȀ:�3�2��q�)ha�㇇c�]�q�H�s:@�H�BR��s�{���*�] #^z�zi$��vH7����&Uk%�]e���J��
�jU&���0/�͓.{T3s�>	��5Ӫ�bc�@*�h]je��̯��E���.���o�'�+�Kg�Y�A��Dl"B�`�A�/�5�'�F~��S�i�푹K��C^��Z���<v�)s�T��\�<�����Gj�	R�XY�i���O��b�si��}q��3S�ύN���KQĬ�zs����鋈���nt�|t����՛�\H?#}��ZN����_���!��F���J�
��}d�+s���*��o�*��ƽ.Lb-��%c>���h�"$���⎟7���(�g`{:���K�]e��+�ꥥ�j���h׵MY3U�aFպh��Z+
�IB�Unf�,;H�T�&�Q���I����dZo@aΣ��*\�l����%���O�\�Q�g� �d<��$[aC�$�-�I�&��Ȅ�h�n��������Vr#���Y\7��U�
���Z_�^�T<B1�m��R��d̏�N��p#�|�xդAN�2�����&;�@%闙�Ir�1�d5��RP8B9�P^�FhF�t��9yy�4���+z�u�ĵ�+��߫®>��K~e��):X
3����rF���g,k�IJ(�>)Nv�𶡆2
�/��r�O���hni_7r1P�~���
�?��P�ʿ6�rA~ӌŊJ7u���)3�Fsw��.��a��i�”�]�į9�������w;>L�3QG&�c�bK��h蔱���Â#���O-�s��:��ܣ� ��
�Z�I��#������r+BFV��#`��.�X�EQ
�IrWHL��≿\�4:F����(�r�x��8R�R5�@�*M``���(J}մ��Gm#.E(mE S�˿�a`��g��C�"�2���,���$�V�pL~���Z�_R��e�����$hV������L�p6!�����i�q��%xʼn�TDR��bH�LN:K��"�{�	�l3�s޻��x
���d:�}e���I�
_��i�0��қ�Xq�;,�<�)���H�
[e�Ϸ����5MRK�����l�B'!��>�c۬�<����V����i��=��A���3�
Ə�N$ñ�"��Ӫ]��m�TݾL�U�\Z(�g��%g.s��H0y�5��"�yeYs_���/
�/��)��B���f�l�4R\'v��KTr8�s1"�n6��U*2��2uY!!^����<�L@���n��L^�����㐘�o��$����Z��	�|�]�KZ�EG��K5&ȼogV
�M�_5�l��xz��dE��%��Ji�Vo�,u��eR޵`$|��Ө@��ʹ�2T��^�J�6���ρ��:����6y'{/J)����&5�#������}��xh�"/@ZS�	$ws-�"gf^ ���bd�B�׌�:u��$���u�D�KQ��o�2�8@���6Z]S@��^Α�N޺�v�
����Y�{�$��❤��wyc &.g�yl>׭8�!�Q�Ƣ�v�X 	��oX��LC2��6gO�:q��OO"��S<�5�f{D�gWHZ.�}^�~��H�h%Q1|�b���c:U�r�bxMF�_�O��w>�d�c��(}��Q-��8P�&C�4B-����K[��,]�v]�G�I�Ų�F(	Qɚd>�]pk�>���|'��N$	���1�I�����r���wn�wiv0�V�|��G�\}��1"\<T㸸���l_���u�w�	u����yz$�(}�|<�Zk��_�i��O��3z:R'�n��'�i�=�A��d��\݀�{_cp̗�5Ћ(����\�7�k"��w��*K��d
���?�F���@�U�����iưm~�+ז���v�H�J�
�E��3H$f�s�(��p%Vۋ���ܽ�@f@���ը6.F]�ģ_��m�fi+���_\����W�&�3����wA�Ѿa��f�4'�����]�d$��_�E=_/�Y!���`�=��[�y�r��?wɞ9N��f��ͭ�&*nq��2`�蹲e�,ѐ����g4������&v�����y�y�s�u-�{���}�^��ݷ�ӣ��^�HJ��9䅤Y��W�dv���wbR	Z�KG9��7�j�3�<��_��xU,̚�V:��9Ǝ�-����!����C[��c�����}H��I�8�* jk1��ֹ��π��@��W�T��
��s�@!y�Lo����I7"�QO�����)a��o�[����J��+�ll����GZ�3��ڪߕiB2�׺t��s�+!�tV�I�w����F}5�n�ú�������(�J�+�s��G$Ϛ+�H.E�(v�M)L�ч!^����|��L��h�K�#��>�J~�e%g���ۦ���᧖�k�Vꉜ����\\ǝ�Ò-RIh�J<�+�a��U�v��$)7�U�}��(l0�C��V:�)h��u���O�:��xؙ��>3��w~����jL^"�Xw��7�ٌ$��x���'reb��}��}�3�K�o�{Dz�=��T�/"��D���%�j�؅.fS_�2}�t�:��a8^pqz
?ɍC��"q�d.١�]m��ꄤ�%)<1"�%�#�Py�[�~�����ˎ���]����l�n�/S�x�<���{J�A��:Щ��^�[a`�ۭb\����n��O6��ޞ{5��n�r�E��ϫ��Ȑ��
f�ބl��5e
?.�J"~H��Q��ۗ/�,�{�o�>YbUMd9Ϟ��aeg����\�$0�,D'�[6��i��/&���{��]~�`
�Mrjc��8�ַS)Ky��<Ta�>4���,��#2�B�\�
{X:"U����.��g��(_�~���&��h9�+J՞��[���Qt�9�
��D*�ه
�(�r��FH�"_"E'�9/�p1~���k$ΰ�m����:ǖ/����꣪՛�՛�������`��'{��G顿�~�w4:�{>�9<|��bg��� �o��?> ��c>W���.}_2�*�p����G���"af[ں{'*��w=���Y��O��
���~So.�y%k�O%Kj-F��e�
�8R��V*�;�\g~N���Ea�6��4*��t�;�>�pK
p�A��ϕ-�B6P��
C(��a���}�E�X)��⸲Y&O�VR�k�zhאÖ�8��6P�bGg�¶����pª&rO��6��0zXl�~�����=j����Aȩx����3�v����3������UB^W�熪Hl^�I,�UtJ��Q��A�z�*������a�x�M�Viܨ�����:��.�"Wp9�9x�'+[B�
<�sՃ⭢�2�����?O���=���ɚwDSp�&w2ne�����qg'�"r�
4�-C3l9}��Jr@��f��V]�}��m2������8缛q$��{�X����K%�F�u8�=�jF�����X��؅���K��>�E��/N*(�=��U�O�tP�yV|e�G�f�[D��}�91�M�00��}<w�UFGu��_o��+ch�D�@����m����?��D��(]��X+1^�"��A��	��ZIٲ(���P���yg��T
��b0
�/e�a��E�r_���sX	n+�ѨER��
�7�ݙ�+I� ݒQ�3pCOU�C�;��BY��l��"�B4Dp��A����Ţd8�Z�J�`H�(���)6W��I.~ݴ-p$Ww���c
m0 l2'�*���[��W2�
�E�'��-rp��mEP&Wz�j�2	������z�t};hH4��Ʉ>N�I���WJ�`୒���$Nuҽ����������>&���-v�����ݷ"�p�R����6�ј�x4���3�T�;?�=�]�V�i�'�ȫ�%X�d���/����<��wO^E�m���Q�y��˜s��/f�f�ޖ�(Am��M�ԛS��a���сb��C�<�k�3�Bv�USn�zړ�0�[�{2mJe��W�2h7Oy�^��2�.�A���$�j*����-y�˻S��3E�3eqY�b�]E��cc�C�A�
�
��閳��K�C܉
Q��M z{�V\�����C��/�����x�Ǝ5[fmYNW�_
$�R�p)rg$u�	5��!4��8�%K�y���t2��_�����{ H��Fv�J>�6��`L�ߔ4���ռre��5XAM��*y
�!��@i�n��m
Uu�|QDҝ��yKX��J3j�e�p���R����=r��C�� ��[m�T��e��ӑ����;>�!MF��`%ֆmS�4g�Փ��|�_q�ٚ������V$����be�%x�H�A*z�?Z��e��`1��Nu�O�/���1 �m�^���m����jx�>E��B�h�韒I��C7߲���#�,�%\4�t^k����yN��`�M�;a��!��R��G~`q��aKB^�Y}>71q�bc��/�h��E;X��E�i���w=,:~�q�9惰b�ICK���T
���r)��ۖEsI�*���Yl#��'֛P�)�cc_�]���_əletd84���!=|2f��
�l��d�b�й� X�{5�/�
�7#�.�s�<f�W�Eœ<�P�-�c�=)�E�4=�
DCZ$y��V�.k�mY5��p�/nMe��=+�_�"&�6l�]:�>��L��ў;7� �i�k�[�TK��}w����H�l5�t~T�fr-.�bM�Wp���Q��d�.pGۼ��z��Ze>�h-��XMz)�Wb��ֈBg�P�!u��0S�v[Zɼ�+'�nRZ
�z�R?��+�O�#�>����_�"�=���+-��Jf�3��#����R�"�J<��W�lZ�Q�^���/u�O�s��<����&����X���m�%���Y�w}�T��\-�;)5`㦲�W`,@��e_H�Z,
A��!:7{4NFk*H�����ҽ�V?
�`�M�+�}��ߤ����F�������f<z�lgU�.H��,PY��J�Q���{J#EeqK�‘��/�nF���3����oE)�{����-���0�{��_VL�,!��
s�p�O���Ƶmf�o��
�!ɔ�ua):w�+��e���l3���C6ZZf���*3�����
�k2�|z��W��3���QLĪL���_RD��UtcD0#>�ɪ�e�l-�x�b*�i��Z��'�2,T�v�'ge���~�.��JZ��H���VK?���z��Ƌ�R��LS�B_.6���X��&��?��ޖr�u���q�Q��V\���M�_�R6a���.� J����?���zJ"m&j��
KB��9?�����׵#�Rˠ��oE�+�w׽����p	��2I\�P��䉺3#��?�)9��
��m�9���N��m���-�c�X�93|:!��:­��|t��К�̍�~�gwܒ�̀,,:�
�U.�,��xp��>	푮D�<��i{D��4���4l��}�/&�}Z��������G�z"#���c�8�� V���A�N���7`�[���e)�������#&]��B����3ۈ�hzNK��hLzӄ�n#�SH��K��4�|��3ͅ6v�[��W��d�o�jt�� ��m֤�1����]
�1����ww_�`�W�T{u�)�שߓ�y
���w��ҼaЯ�,�2}Mr��+�V�Z3R1?Usk��&���پ}�q��<F�)����?��ʻpbM/�
F�:xt��I�~k�� PĔu��ih�rv$b����
�'�!�J�ï���\\.Ǡ���*nb>W�׳h�䏉�T�T���l>�F���`��{��6���ky�I#ۥ:]�����B
M���g����b,P�Z��t��in�UEwĔ�z�Ѷ���l����q��W�@�:�
�ż.��pu)A&��G��Un����-Iw�-/9�P���s�Ws*=nn�6�gj�R$>�7��v�u�;���LC�[hǗHu�&k�7���4�+j���<&�sf�0�xq��=*6=��W���ï9Dʅ�9OS���{)�l(�xe�K>�P�Q�����ǵؘ �)�N�e#��n�ha�a��T��I*X��d��mf0�֙��D;-�T�GܹM{>��~���G$I<vrϪc̅]��=�<�{<X{5+<^7�9U�ۂX�����c:%iK>����^�����/��O�K���H�t�a�jd\��3fLJK��8R#$�٥���o+e�9w��*�6�(ϯF�S�*�E����^ny��2jN��an���d����$�6Ws'�(c����骑���(��7/�e���k6Cx2�?�8�bl�g�c��/�㇕�J��@F�-�	����+I���?�����K�k�t��Pb�3�m>�S�~דV��S�9�S�+]k^@�Z҄�X3R1��%��wBv�{��1���w%�($%~����η�qY3�W�^s���
���/	ڭ�~9�I!��W�ھ?��Bu
�,�e�F�H�*��ye�����a��2�m��qʹ�<Rx����b#�U�:�s�,�hL*YwD�vQ�J��{g�x��Ѓۀ�/�a�!L�2t�@΃����G�	X�=z7����M�b.��ř��
D%�F�ԫ,r���g
��jo��t�K�#|��ۄl�ϫ���*�C-5�2t%r</,g��!�=^E�[��
���A:qF�&����y�
^=p�\��f�H��'�J�J+��5��ӊ v����ȕ5�BuBf�Ss$�Kk����r��=I�Y_��౲�{4r�����~zRM�9�d���Ŀ�^'ͬϫ����!z)�09�*�_[<�@O�v:p������M������˰x�H�8u��a���N������'�4�=��)~$FWʸl��Ǟ�o��`�gW�59�����$AJ{[.�h�.-)O1L�A��]����Ç���;��6�L΀�=���3Z��']�`Ab��^�ط��MAB	�d���H�SΥ;�D�`�����33IZ�c��GA�T(���6|�Uh�9��y�8o)rd����k�;O5R�~�u�HN�����C�𧶣��9
�7��X�5��4ڊ0�((��d��Y��D�6]R�4���f`��y`���yT���+�!0l<#
�����źܼ,���c�7���_Y��m��e5�T*W�'����?d��V��V'\�v�ȱZA唴��/����3�_�h��ݴ��F1��\L��b��!��rm�a��k1��@uf�!�{H_�ݳ�90����ȅ�F]�B�:�sQp��緮��
>�Y�yn�i�
�1|��Y<\��a馗�	
����+�QE�T-�uKlZe(��u"�AoM����N���0
+���h�E.c�av<�)��"�b6��]�����s(��ι�db}?:2�WU�d�����=���KW�<�.�FA8	HL���Y��$OA�\�Z; a>Ԋ����w^/��D������*IFU�M5͸~��M�β��l���C�@L���'/��QtV�r��ӹ�AsA��ho-'� �������F��2���t�x��D	�@K�Q[�u���Leo_�=m�0�lk{0��s�Nt�H5�Y�sǤȜ���\S����9nő&d�r���1Rav��&j�]�5��Q$�z)z�"�X�86�lF\K�E9E����1q�)RȘ�#
gB���3e��a�������x��x��8"=?���,c$�~<^��#��޺�%�9.�_����|
q��L� V
è*��y[�G(�J��q�h�ȟ�������wH�L��(ҝ�ڽVl����˙�~��xWLU��:�Ǯ�l��x��L�$2I��"�����ՍG�����?�L��8m��	���@.݀���mɸ�+{Ct>+�q��P���g,`r���E�圃G��uM�O5�rґUS��i�o�_K(Ĵy_gȚ ��‹���c�?��Q��]�a���t�ˉ�[�< �D�M���3��CA�$�C)��N��'�GvN$pv��Av����}�I�Y�z�lv��Ín�-�h�փ�q�y>;CO���&<��:���Ə���uБ�E'�cK���U3f���L�:E�v|���Q_�S*�QAț~mب��n�u�j�Y޽F|��'���LU��tY���N(bA�`�c,[�,�a>��y�����Ibs�0���j�+(X��>ʥ�o!�zS�"3S��K,�F��̈́�6}�~7���'���v{��_���
��ń/�ų2��G�����u�L��`E��E�ՓR4�|��m��U)�e��X�GG{?���v��:���}�So����(}�ʧ�����1��c�EE�4�TY~=0��u	�����Vi8�4U��Y�ew9��UT�fI{�ј�-0��f��we�,�ݢ�ȗ����K4�b� �
�0�,�i��e׫�5,`�<�P~h���B�Ik'��Em|q������(i*'�O8R�M��XV�8؁3ydE�v�2HI��tꓭ��S����6zk�r>4�q��u���UsoJ�%�tƦ5q��4�`*��x�\�WS�
�w�!��
*ÁL1諾��gӓ^���F��`���jE����k�+��}�oB*�k+����m�	
N�-◢[~�YIKR2�
���G�P-h)�Y�	
I��g6|ve
b�QY��-`��)Y� �)�)�L��;9��\B�z�����N��
� G:X���Gg�a(M>j�y�c�@v�Z�c!�|{�U��@�{�h#iNley�f!䂨�g�2<�@�v��Cb��Ņ��K�k�.Q�f���p��S�
N��{'7O��<yYٹ\���>w%��f�|�׃$�,J���䝤�a�/<z���n���+3�VYwG��z���㥪峺�f��e�M�p��<+��~�����4	�ֵ����4G����\�~\.���u%%���6=K��k�aJ�������YB�д�hXo�=���;T�Eζ��{���i�2���pޙHUϙ�4W�Q�
��ԝ������^tS̋~
O5]���#:�>����P��,��Y��غ3�j��7L_�?�8�`��8��!�K9!|d	�27H����gk���yM� B���^���J)�a����7K��"�R\�D(�8Ք��D�������fZ5�����BM4�$J��yW4F��&Q�ƣI(=G�yVB�&�1\7���s!-af0��h��9��ٜ/~B�2�u�U�����>�J�I���
�1N�NW�mF�O�]�s����I=16��K�����4�g{�c�A�FAU�]��/I���<<�Υˌz[#	N5e�lԩ=u��c%w�
�|l<��	~��P53y�I��UDz?��=Y�؋|��o։<��k�p�Jv��h�&(h�"e(�g�(�p1sI�M|xO�R���8
@���.�kT�s�w �E����C�m�!�0�$=h�-�G�RZ�G��V�����W24��OZM65O7�0�� .��jF�&rhK#�0�dO��~3X�E�C���}��VGs��sB�}i�rѡ:��ÿ�>������u���C�X��u�L甥8��E_�Y�Bp�r��+�jŗ�W=^�Y��nQ�����D�
tR�>��[3�L3UȪ��-$�Yc<���ì�»����F�V�����8��"s�P��5?9�OJ��Ik���@��c�Z�43�z2�C8z�$�̡�95�]γ����~�,Jt1y�E}��;`!V'0�M�iВ��2�g��~P���� Q9�|��� �?���|
sϖQm�
yj��e
yy�΢��-`�6�i�����a�2�{��e��2��|mm!͹��T�;G����6a
��_�Y0�CE�d֝Ԧ�P�W⚚�^*_���rO2I�t�Q���ߠ��!I�C��^�)��]Ba��b\4M�@���7w��;oR�� ����5K����r����,�>l�o):''��p��"~�=�Q�eZ|I�0�gXa�{��Gwd�>K�O��I�e�=����l���S
��DE��`iL�V�L�
�a��t"r�!�j$RԒHf)51��GVѡ`�m�*���I�K�q���x��x�6�ˋq��H����+�Z��ƒ5�Y:B��`)z�h�#n+�&��L��ħ���b^g�dpꭔcO��@�Z����D_���(-�$Q]�1	�̿6�����Tr5?×��)��^7�2�u��t�6����.����_��>�����9,1��Uְ}2V���i�mw�ˤ��B�_=�P(�:�Ύ���S����O��+�5��;��s���l�����z��x8�(������N�G%��p�G"���t.~T+=��&-K��3+�8���9!�oY+���]`G�=��G�I�'&<3l���w&��渲ش�����=�Ǡ&��`�M�i��x"!��LH,T6�e'�~'���[��3i�~��K�t�>����餆L7��uOᆈ�\�n�f�[\�q�n�f�^.Y���g�K��3�'V��E"1S��5�8o�_��L��v�-���mm�#BveI<쎤	))泯���vk��f�����i+�F�
�mzp	C3�w7K�d-�e�ct�j>guz� e��-�2k��l��C�~���P2��40�M�t����1��Y��?�n](��Hh�
�
�F%zN�;�~��=j#=ii���#M�w��������P����!�D�IY[��kP���F�{��o��ЗlG�P�#*�hoI�p�oTNJ�ua�7c��x�[��%��1���0��N�(��L�W��BT���Ta[�P���<OCm�'���Y'���%���r�Y��O����N�!�g
`�$Yk�T��ڧ���4��)�/��m�\��?8Jbva�Z�T�Շ"�e���rF�כ�a}6+��p�E�Z񨷕�|ڹ
�	NؖhH��	�I���g7t	�il��B�X�\��+�^ɢ����۸��o�SG�{��+;2�ԙ��Ѩ����L�%�?PK\�oR�W"{w{���litespeed-cache-en_ZA.poUT��O`ux����PK\�oRF:�'A������{litespeed-cache-en_ZA.moUT��O`ux����PK�\*# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in English (Australia)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2019-08-02 00:56:54+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: en_AU\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: tpl/dash/dashboard.tpl.php:210 tpl/banner/score.php:68
msgid "PageSpeed Score"
msgstr "PageSpeed Score"

#: tpl/dash/dashboard.tpl.php:175 tpl/dash/dashboard.tpl.php:233
#: tpl/banner/score.php:45 tpl/banner/score.php:84
msgid "After"
msgstr "After"

#: tpl/dash/dashboard.tpl.php:166 tpl/dash/dashboard.tpl.php:225
#: tpl/banner/score.php:34 tpl/banner/score.php:74
msgid "Before"
msgstr "Before"

#: tpl/dash/dashboard.tpl.php:183 tpl/dash/dashboard.tpl.php:241
#: tpl/banner/score.php:55 tpl/banner/score.php:94
msgid "Improved by"
msgstr "Improved by"

#: tpl/dash/dashboard.tpl.php:153 tpl/banner/score.php:28
msgid "Page Load Time"
msgstr "Page Load Time"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."

#: src/lang.cls.php:171
msgid "Preserve EXIF/XMP data"
msgstr "Preserve EXIF/XMP data"

#: tpl/toolbox/beta_test.tpl.php:22
msgid "Try GitHub Version"
msgstr "Try GitHub Version"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Only enable for AMP or mobile-specific design/content, not for responsive sites."
msgstr "Only enable for AMP or mobile-specific design/content, not for responsive sites."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Cache mobile views separately."
msgstr "Cache mobile views separately."

#: src/activation.cls.php:417
msgid "Upgraded successfully."
msgstr "Upgraded successfully."

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:48
msgid "Upgrade"
msgstr "Upgrade"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Turn On Auto Upgrade"

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Thank You for Using the LiteSpeed Cache Plugin!"

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Sure I'd love to review!"

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "New Version Available!"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "New release %s is available now."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Maybe Later"

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Lazy Load Image Class Name Excludes"

#: tpl/page_optm/settings_media_exc.tpl.php:49
msgid "Images containing these class names will not be lazy loaded."
msgstr "Images containing these class names will not be lazy loaded."

#: tpl/cdn/settings.tpl.php:96
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "If you turn any of the above settings OFF, please remove the related file types from the %s box."

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "For example, %1$s defines a TTL of %2$s seconds for %3$s."

#: src/activation.cls.php:408 src/activation.cls.php:413
msgid "Failed to upgrade."
msgstr "Failed to upgrade."

#: src/conf.cls.php:782
msgid "Changed setting successfully."
msgstr "Changed setting successfully."

#: src/doc.cls.php:76
msgid "Both full and partial strings can be used."
msgstr "Both full and partial strings can be used."

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "You can turn shortcodes into ESI blocks."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Private Cache vs. Public Cache"

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."
msgstr "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."

#: tpl/toolbox/edit_htaccess.tpl.php:44
msgid "This page is meant for advanced users."
msgstr "This page is meant for advanced users."

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Replace %1$s with %2$s."

#: tpl/page_optm/settings_html.tpl.php:83
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA will be bypassed automatically."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "ESI sample for developers"

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Cookie Values"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Cookie Simulation"

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr "Cookie Name"

#: tpl/page_optm/settings_html.tpl.php:87
msgid "Append query string %s to the resources to bypass this action."
msgstr "Append query string %s to the resources to bypass this action."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."

#: src/lang.cls.php:66
msgid "Automatically Upgrade"
msgstr "Automatically Upgrade"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Your IP"

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Reset All Settings"

#: src/import.cls.php:146
msgid "Reset successfully."
msgstr "Reset successfully."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "This will reset all settings to default settings."

#: tpl/page_optm/settings_css.tpl.php:247
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separate critical CSS files will be generated for paths containing these strings."

#: src/lang.cls.php:121
msgid "Separate CCSS Cache URIs"
msgstr "Separate CCSS Cache URIs"

#: tpl/page_optm/settings_css.tpl.php:233
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."

#: src/lang.cls.php:120
msgid "Separate CCSS Cache Post Types"
msgstr "Separate CCSS Cache Post Types"

#: tpl/page_optm/settings_css.tpl.php:232
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "List post types where each item of that type should have its own CCSS generated."

#: tpl/page_optm/settings_media.tpl.php:178
msgid "Size list in queue waiting for cron"
msgstr "Size list in queue waiting for cron"

#: tpl/page_optm/settings_media.tpl.php:155
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "If set to %1$s, before the placeholder is localised, the %2$s configuration will be used."

#: tpl/page_optm/settings_media.tpl.php:60
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."

#: tpl/page_optm/settings_media.tpl.php:59
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Responsive Placeholder"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Please enable LiteSpeed Cache in the plugin settings."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Please enable the LSCache Module at the server level, or ask your hosting provider."

#: src/lang.cls.php:164
msgid "Inline Lazy Load Images Library"
msgstr "Inline Lazy Load Images Library"

#: src/gui.cls.php:755
msgid "Update %s now"
msgstr "Update %s now"

#: src/gui.cls.php:750
msgid "View %1$s version %2$s details"
msgstr "View %1$s version %2$s details"

#: src/gui.cls.php:747
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."

#: src/gui.cls.php:727
msgid "Install %s"
msgstr "Install %s"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "High-performance page caching and site optimisation from LiteSpeed"

#: src/img-optm.cls.php:1740
msgid "Reset the optimized data successfully."
msgstr "Reset the optimised data successfully."

#: src/lang.cls.php:31
msgid "Images previously optimized"
msgstr "Images previously optimised"

#: src/lang.cls.php:168
msgid "Remove Original Backups"
msgstr "Remove Original Backups"

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Automatically remove the original image backups after fetching optimised images."

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Automatically request optimisation via cron job."

#: tpl/img_optm/summary.tpl.php:180
msgid "A backup of each image is saved before it is optimized."
msgstr "A backup of each image is saved before it is optimised."

#: src/img-optm.cls.php:1619
msgid "Switched images successfully."
msgstr "Switched images successfully."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "This can improve quality but may result in larger images than lossy compression will."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimise images using lossless compression."

#: src/lang.cls.php:170
msgid "Optimize Losslessly"
msgstr "Optimise Losslessly"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Request WebP versions of original images when doing optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimise images and save backups of the originals in the same folder."

#: src/lang.cls.php:167
msgid "Optimize Original Images"
msgstr "Optimise Original Images"

#: tpl/page_optm/settings_css.tpl.php:167
msgid "This option only works if %1$s is %2$s."
msgstr "This option only works if %1$s is %2$s."

#: src/lang.cls.php:118
msgid "Generate Critical CSS"
msgstr "Generate Critical CSS"

#: tpl/page_optm/settings_css.tpl.php:149
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "When this option is turned %s, it will also load Google Fonts asynchronously."

#: tpl/page_optm/settings_css.tpl.php:261
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "This will inline the asynchronous CSS library to avoid render blocking."

#: src/lang.cls.php:122
msgid "Inline CSS Async Lib"
msgstr "Inline CSS Async Lib"

#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_css.tpl.php:216
msgid "Run Queue Manually"
msgstr "Run Queue Manually"

#: tpl/page_optm/settings_css.tpl.php:203
msgid "URL list in queue waiting for cron"
msgstr "URL list in queue waiting for cron"

#: tpl/page_optm/settings_css.tpl.php:93 tpl/page_optm/settings_css.tpl.php:192
msgid "Last requested cost"
msgstr "Last requested cost"

#: tpl/dash/dashboard.tpl.php:407 tpl/dash/dashboard.tpl.php:438
#: tpl/page_optm/settings_media.tpl.php:167
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:189
msgid "Last generated"
msgstr "Last generated"

#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:181
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "If set to %s this is done in the foreground, which may slow down page load."

#: tpl/page_optm/settings_css.tpl.php:180
msgid "Automatically generate critical CSS in the background via a cron-based queue."
msgstr "Automatically generate critical CSS in the background via a cron-based queue."

#: src/lang.cls.php:119
msgid "Generate Critical CSS In Background"
msgstr "Generate Critical CSS In Background"

#: tpl/toolbox/purge.tpl.php:73
msgid "This will delete all generated critical CSS files"
msgstr "This will delete all generated critical CSS files"

#: src/gui.cls.php:508 src/gui.cls.php:659 tpl/dash/dashboard.tpl.php:53
#: tpl/dash/dashboard.tpl.php:402 tpl/toolbox/purge.tpl.php:72
msgid "Critical CSS"
msgstr "Critical CSS"

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Optimize CSS delivery."
msgstr "Optimise CSS delivery."

#: src/doc.cls.php:24
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."
msgstr "This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Disabling this may cause WordPress tasks triggered by AJAX to stop working."

#: src/utility.cls.php:250
msgid "right now"
msgstr "right now"

#: src/utility.cls.php:250
msgid "just now"
msgstr "just now"

#: tpl/img_optm/summary.tpl.php:245
msgid "Saved"
msgstr "Saved"

#: tpl/img_optm/summary.tpl.php:239
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Last ran"

#: tpl/img_optm/summary.tpl.php:230 tpl/img_optm/settings.tpl.php:66
msgid "This is irreversible."
msgstr "This is irreversible."

#: tpl/img_optm/summary.tpl.php:250
msgid "Remove Original Image Backups"
msgstr "Remove Original Image Backups"

#: tpl/img_optm/summary.tpl.php:194 tpl/crawler/blacklist.tpl.php:25
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:191 tpl/img_optm/summary.tpl.php:242
msgid "Files"
msgstr "Files"

#: tpl/img_optm/summary.tpl.php:187
msgid "Last calculated"
msgstr "Last calculated"

#: tpl/img_optm/summary.tpl.php:202
msgid "Calculate Original Image Storage"
msgstr "Calculate Original Image Storage"

#: tpl/img_optm/summary.tpl.php:231 tpl/img_optm/settings.tpl.php:67
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "You will be unable to Revert Optimisation once the backups are deleted!"

#: tpl/img_optm/summary.tpl.php:176
msgid "Storage Optimization"
msgstr "Storage Optimisation"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."

#: src/lang.cls.php:173
msgid "WebP For Extra srcset"
msgstr "WebP For Extra srcset"

#: tpl/cdn/settings.tpl.php:122 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Use the format %1$s or %2$s (element is optional)."

#: tpl/cdn/settings.tpl.php:121 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Only attributes listed here will be replaced."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Specify which element attributes will be replaced with WebP."

#: src/lang.cls.php:172
msgid "WebP Attribute To Replace"
msgstr "WebP Attribute To Replace"

#: tpl/cdn/settings.tpl.php:159
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Only files within these directories will be pointed to the CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Included Directories"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "A Purge All will be executed when WordPress runs these hooks."

#: src/lang.cls.php:180
msgid "Purge All Hooks"
msgstr "Purge All Hooks"

#: src/gui.cls.php:471 src/gui.cls.php:562 src/gui.cls.php:612
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:498 src/gui.cls.php:649 tpl/toolbox/purge.tpl.php:63
msgid "Opcode Cache"
msgstr "Opcode Cache"

#: src/purge.cls.php:193
msgid "Purged all caches successfully."
msgstr "Purged all caches successfully."

#: src/gui.cls.php:415
msgid "Forced cacheable"
msgstr "Forced cacheable"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be cached regardless of no-cacheable settings."

#: src/lang.cls.php:97
msgid "Force Cache URIs"
msgstr "Force Cache URIs"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Exclude Settings"

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Disable All Features"

#: src/gui.cls.php:479 src/gui.cls.php:620 tpl/toolbox/purge.tpl.php:45
msgid "CSS/JS Cache"
msgstr "CSS/JS Cache"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "This will disable LSCache and all optimisation features for debug purpose."

#: src/gui.cls.php:709 tpl/img_optm/summary.tpl.php:171
msgid "Clean Up Unfinished Data"
msgstr "Clean Up Unfinished Data"

#: src/lang.cls.php:32
msgid "Images failed with other errors"
msgstr "Images failed with other errors"

#: src/gui.cls.php:708 tpl/img_optm/summary.tpl.php:169
msgid "Remove all previous unfinished image optimization requests."
msgstr "Remove all previous unfinished image optimisation requests."

#: src/lang.cls.php:35
msgid "Images with wrong meta"
msgstr "Images with wrong meta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Join Us on Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Join the %s community."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Want to connect with other LiteSpeed users?"

#: tpl/cdn/settings.tpl.php:206
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Get it from <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:205
msgid "Your API key is used to access %s APIs."
msgstr "Your API key is used to access %s APIs."

#: tpl/cdn/settings.tpl.php:196
msgid "Your Email address on %s."
msgstr "Your Email address on %s."

#: tpl/cdn/settings.tpl.php:187
msgid "Use %s API functionality."
msgstr "Use %s API functionality."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Join LiteSpeed Slack community"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visit LSCWP support forum"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Rate %s on %s"

#: src/lang.cls.php:26 tpl/dash/dashboard.tpl.php:312
msgid "Images notified to pull"
msgstr "Images notified to pull"

#: src/lang.cls.php:33
msgid "Image files missing"
msgstr "Image files missing"

#: tpl/img_optm/summary.tpl.php:274 tpl/img_optm/summary.tpl.php:301
msgid "What is a group?"
msgstr "What is a group?"

#: src/admin-display.cls.php:1133
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1130
msgid "%s group"
msgstr "%s group"

#: src/admin-display.cls.php:1120
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1117
msgid "%s groups"
msgstr "%s groups"

#: tpl/cdn/settings.tpl.php:73
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "To randomise CDN hostname, define multiple hostnames for the same resources."

#: src/crawler.cls.php:767
msgid "Guest"
msgstr "Guest"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "To crawl the site as a logged-in user, enter the user ids to be simulated."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Role Simulation"

#: tpl/crawler/summary.tpl.php:166
msgid "running"
msgstr "running"

#: tpl/db_optm/manage.tpl.php:175
msgid "Size"
msgstr "Size"

#: tpl/dash/dashboard.tpl.php:490 tpl/crawler/summary.tpl.php:99
msgid "Ended reason"
msgstr "Ended reason"

#: tpl/dash/dashboard.tpl.php:483 tpl/crawler/summary.tpl.php:92
msgid "Last interval"
msgstr "Last interval"

#: tpl/dash/dashboard.tpl.php:476 tpl/crawler/summary.tpl.php:85
msgid "Current crawler started at"
msgstr "Current crawler started at"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Run time for previous crawler"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d seconds"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Last complete run time for all crawlers"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Current sitemap crawl started at"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Save transients in database when %1$s is %2$s."

#: src/lang.cls.php:91
msgid "Store Transients"
msgstr "Store Transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "If %1$s is %2$s, then %3$s must be populated!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Server allowed max value"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Server enforced value"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Server allowed min value"

#: tpl/cdn/settings.tpl.php:72 tpl/cache/settings-excludes.tpl.php:62
#: tpl/cache/settings-excludes.tpl.php:95
#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTE"

#: src/admin-display.cls.php:1086
msgid "Server variable(s) %s available to override this setting."
msgstr "Server variable(s) %s available to override this setting."

#: src/admin-display.cls.php:1085 tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_html.tpl.php:86
#: tpl/page_optm/settings_media_exc.tpl.php:25
#: tpl/page_optm/settings_css.tpl.php:151 tpl/cache/settings-esi.tpl.php:95
msgid "API"
msgstr "API"

#: src/purge.cls.php:329
msgid "Reset the entire opcode cache successfully."
msgstr "Reset the entire opcode cache successfully."

#: src/purge.cls.php:317
msgid "Opcode cache is not enabled."
msgstr "Opcode cache is not enabled."

#: src/import.cls.php:121
msgid "Imported setting file %s successfully."
msgstr "Imported setting file %s successfully."

#: src/import.cls.php:83
msgid "Import failed due to file error."
msgstr "Import failed due to file error."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "This will generate extra requests to the server, which will increase server load."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."

#: src/lang.cls.php:182
msgid "Instant Click"
msgstr "Instant Click"

#: tpl/toolbox/purge.tpl.php:64
msgid "Reset the entire opcode cache"
msgstr "Reset the entire opcode cache"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "This will import settings from a file and override all current LiteSpeed Cache settings."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Last imported"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Import"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Import Settings"

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Last exported"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Export"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Export Settings"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Import / Export"

#: tpl/page_optm/settings_js.tpl.php:35 tpl/page_optm/settings_css.tpl.php:42
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "How to Fix Problems Caused by CSS/JS Optimisation."

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Use keep-alive connections to speed up cache operations."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Database to be used"

#: src/lang.cls.php:86
msgid "Redis Database ID"
msgstr "Redis Database ID"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Specify the password used when connecting."

#: src/lang.cls.php:85
msgid "Password"
msgstr "Password"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Only available when %s is installed."

#: src/lang.cls.php:84
msgid "Username"
msgstr "Username"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Your %s Hostname or IP address."

#: src/lang.cls.php:80
msgid "Method"
msgstr "Method"

#: src/purge.cls.php:370
msgid "Purge all object caches successfully."
msgstr "Purge all object caches successfully."

#: src/purge.cls.php:357
msgid "Object cache is not enabled."
msgstr "Object cache is not enabled."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Improve wp-admin speed through caching. (May encounter expired data)"

#: src/lang.cls.php:90
msgid "Cache Wp-Admin"
msgstr "Cache Wp-Admin"

#: src/lang.cls.php:89
msgid "Persistent Connection"
msgstr "Persistent Connection"

#: src/lang.cls.php:88
msgid "Do Not Cache Groups"
msgstr "Do Not Cache Groups"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groups cached at the network level."

#: src/lang.cls.php:87
msgid "Global Groups"
msgstr "Global Groups"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Connection Test"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "%s Extension"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/summary.tpl.php:124
#: tpl/crawler/blacklist.tpl.php:32
msgid "Status"
msgstr "Status"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "Default TTL for cached objects."

#: src/lang.cls.php:83
msgid "Default Object Lifetime"
msgstr "Default Object Lifetime"

#: src/lang.cls.php:82
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:81
msgid "Host"
msgstr "Host"

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use object cache functionality."
msgstr "Use object cache functionality."

#: src/lang.cls.php:79 src/gui.cls.php:488 src/gui.cls.php:639
#: tpl/dash/dashboard.tpl.php:361 tpl/toolbox/purge.tpl.php:54
msgid "Object Cache"
msgstr "Object Cache"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Failed"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Passed"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Not Available"

#: tpl/toolbox/purge.tpl.php:55
msgid "Purge all the object caches"
msgstr "Purge all the object caches"

#: src/cdn/cloudflare.cls.php:259
msgid "Failed to communicate with Cloudflare"
msgstr "Failed to communicate with Cloudflare"

#: src/cdn/cloudflare.cls.php:250
msgid "Communicated with Cloudflare successfully."
msgstr "Communicated with Cloudflare successfully."

#: src/cdn/cloudflare.cls.php:164
msgid "No available Cloudflare zone"
msgstr "No available Cloudflare zone"

#: src/cdn/cloudflare.cls.php:150
msgid "Notified Cloudflare to purge all successfully."
msgstr "Notified Cloudflare to purge all successfully."

#: src/cdn/cloudflare.cls.php:134
msgid "Cloudflare API is set to off."
msgstr "Cloudflare API is set to off."

#: src/cdn/cloudflare.cls.php:117
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Notified Cloudflare to set development mode to %s successfully."

#: tpl/cdn/settings.tpl.php:220
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Once saved, it will be matched with the current list and completed automatically."

#: tpl/cdn/settings.tpl.php:219
msgid "You can just type part of the domain."
msgstr "You can just type part of the domain."

#: tpl/cdn/settings.tpl.php:211
msgid "Domain"
msgstr "Domain"

#: tpl/cdn/settings.tpl.php:201
msgid "Global API Key"
msgstr "Global API Key"

#: tpl/cdn/settings.tpl.php:188
msgid "This can be managed from <a %2$s>%1$s</a>."
msgstr "This can be managed from <a %2$s>%1$s</a>."

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "Cloudflare API"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Purge Everything"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cloudflare Cache"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Development Mode will be turned off automatically after three hours."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Development mode will be automatically turned off in %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "Current status is %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "Current status is %1$s since %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Check Status"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Turn OFF"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Turn ON"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Development Mode"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Cloudflare Zone"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Cloudflare Domain"

#: src/gui.cls.php:629 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in real time."

#: tpl/page_optm/settings_html.tpl.php:50
msgid "For example"
msgstr "For example"

#: src/lang.cls.php:128
msgid "DNS Prefetch"
msgstr "DNS Prefetch"

#: tpl/page_optm/settings_media.tpl.php:29
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Adding Style to Your Lazy-Loaded Images"

#: tpl/cdn/settings.tpl.php:93
msgid "Default value"
msgstr "Default value"

#: tpl/cdn/settings.tpl.php:90
msgid "Static file type links to be replaced by CDN links."
msgstr "Static file type links to be replaced by CDN links."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "For example, to drop parameters beginning with %s, %s can be used here."

#: src/lang.cls.php:77
msgid "Drop Query String"
msgstr "Drop Query String"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."

#: src/lang.cls.php:181
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Improve HTTP/HTTPS Compatibility"

#: tpl/img_optm/summary.tpl.php:372
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Remove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files."

#: tpl/img_optm/summary.tpl.php:318
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Scan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Clear Log"

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "This will increase the size of optimised files."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising."

#: thirdparty/woocommerce.content.tpl.php:21
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "To test the cart, visit the <a %s>FAQ</a>."

#: src/utility.cls.php:253
msgid " %s ago"
msgstr " %s ago"

#: src/media.cls.php:336
msgid "WebP saved %s"
msgstr "WebP saved %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "If you run into any issues, please refer to the report number in your support message."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "This will also generate an API key from LiteSpeed's Server."

#: tpl/img_optm/summary.tpl.php:127
msgid "Last pull initiated by cron at %s."
msgstr "Last pull initiated by cron at %s."

#: tpl/img_optm/summary.tpl.php:81
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Images will be pulled automatically if the cron job is running."

#: tpl/img_optm/summary.tpl.php:81
msgid "Only press the button if the pull cron job is disabled."
msgstr "Only press the button if the pull cron job is disabled."

#: tpl/img_optm/summary.tpl.php:88
msgid "Pull Images"
msgstr "Pull Images"

#: tpl/img_optm/summary.tpl.php:112
msgid "This process is automatic."
msgstr "This process is automatic."

#: tpl/dash/dashboard.tpl.php:322 tpl/img_optm/summary.tpl.php:336
msgid "Last Request"
msgstr "Last Request"

#: src/lang.cls.php:28
msgid "Images failed to pull"
msgstr "Images failed to pull"

#: src/lang.cls.php:29 src/lang.cls.php:30
msgid "Images failed to fetch"
msgstr "Images failed to fetch"

#: tpl/img_optm/summary.tpl.php:333
msgid "Images Pulled"
msgstr "Images Pulled"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Report"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Report date"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Report number"

#: thirdparty/woocommerce.content.tpl.php:76
msgid "Privately cache cart when not empty."
msgstr "Privately cache cart when not empty."

#: thirdparty/woocommerce.content.tpl.php:71
msgid "Privately Cache Cart"
msgstr "Privately Cache Cart"

#: tpl/page_optm/settings_html.tpl.php:102
msgid "This will also add a preconnect to Google for faster Google Fonts downloading."
msgstr "This will also add a preconnect to Google for faster Google Fonts downloading."

#: src/lang.cls.php:133
msgid "Load Google Fonts Asynchronously"
msgstr "Load Google Fonts Asynchronously"

#: src/lang.cls.php:65
msgid "Browser Cache TTL"
msgstr "Browser Cache TTL"

#: tpl/img_optm/summary.tpl.php:340
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Results can be checked in <a %s>Media Library</a>."

#: src/doc.cls.php:40 src/doc.cls.php:92 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:56
#: tpl/img_optm/summary.tpl.php:96 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Learn More"

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr "LiteSpeed Optimisation"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:302
msgid "Images requested"
msgstr "Images requested"

#: tpl/img_optm/summary.tpl.php:308
msgid "Images not yet requested"
msgstr "Images not yet requested"

#: tpl/img_optm/summary.tpl.php:270 tpl/img_optm/summary.tpl.php:297
msgid "Images total"
msgstr "Images total"

#: src/lang.cls.php:27
msgid "Images optimized and pulled"
msgstr "Images optimised and pulled"

#: src/img-optm.cls.php:1670
msgid "Restored original file successfully."
msgstr "Restored original file successfully."

#: src/img-optm.cls.php:1654
msgid "Enabled WebP file successfully."
msgstr "Enabled WebP file successfully."

#: src/img-optm.cls.php:1648
msgid "Disabled WebP file successfully."
msgstr "Disabled WebP file successfully."

#: src/lang.cls.php:186
msgid "Image WebP Replacement"
msgstr "Image WebP Replacement"

#: tpl/cache/settings-excludes.tpl.php:124
msgid "Selected roles will be excluded from cache."
msgstr "Selected roles will be excluded from cache."

#: src/img-optm.cls.php:1677
msgid "Switched to optimized file successfully."
msgstr "Switched to optimised file successfully."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Significantly improve load time by replacing images with their optimised %s versions."

#: tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Tuning"

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Role Excludes"

#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Tuning Settings"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "If the tag slug is not found, the tag will be removed from the list on save."

#: tpl/img_optm/summary.tpl.php:261
msgid "Image Information"
msgstr "Image Information"

#: tpl/img_optm/summary.tpl.php:330
msgid "Total Reduction"
msgstr "Total Reduction"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "Selected roles will be excluded from all optimizations."
msgstr "Selected roles will be excluded from all optimisations."

#: tpl/img_optm/summary.tpl.php:78
msgid "Send Optimization Request"
msgstr "Send Optimisation Request"

#: tpl/img_optm/summary.tpl.php:327
msgid "Optimization Summary"
msgstr "Optimisation Summary"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "LiteSpeed Cache Image Optimisation"

#: src/admin-display.cls.php:129 src/gui.cls.php:595
#: tpl/dash/network_dash.tpl.php:27 tpl/dash/dashboard.tpl.php:52
msgid "Image Optimization"
msgstr "Image Optimisation"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "JS Deferred Excludes"

#: tpl/page_optm/settings_media.tpl.php:46
msgid "For example, %s can be used for a transparent placeholder."
msgstr "For example, %s can be used for a transparent placeholder."

#: tpl/page_optm/settings_media.tpl.php:44
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."

#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:92
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_css.tpl.php:152
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Elements with attribute %s in html code will be excluded."

#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/cache/settings-esi.tpl.php:96
msgid "Filter %s is supported."
msgstr "Filter %s is supported."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Listed images will not be lazy loaded."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Lazy Load Image Excludes"

#: tpl/page_optm/settings_media.tpl.php:45
msgid "By default a gray image placeholder %s will be used."
msgstr "By default a grey image placeholder %s will be used."

#: src/lang.cls.php:139
msgid "URI Excludes"
msgstr "URI Excludes"

#: src/doc.cls.php:79
msgid "Both full URLs and partial strings can be used."
msgstr "Both full URLs and partial strings can be used."

#: tpl/page_optm/settings_media.tpl.php:202
msgid "Load iframes only when they enter the viewport."
msgstr "Load iframes only when they enter the viewport."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Lazy Load Iframes"

#: tpl/page_optm/settings_media.tpl.php:26
#: tpl/page_optm/settings_media.tpl.php:203
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "This can improve page loading time by reducing initial HTTP requests."

#: tpl/page_optm/settings_media.tpl.php:25
msgid "Load images only when they enter the viewport."
msgstr "Load images only when they enter the viewport."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Lazy Load Images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:12
msgid "Media Settings"
msgstr "Media Settings"

#: tpl/cache/settings-excludes.tpl.php:37
msgid "For example, for %s, %s and %s can be used here."
msgstr "For example, for %s, %s and %s can be used here."

#: tpl/cdn/settings.tpl.php:137 tpl/cache/settings-purge.tpl.php:110
#: tpl/cache/settings-esi.tpl.php:107
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."

#: src/admin-display.cls.php:1101
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "To match the beginning, add %s to the beginning of the item."

#: src/admin-display.cls.php:1099
msgid "For example, for %s, %s can be used here."
msgstr "For example, for %s, %s can be used here."

#: tpl/db_optm/manage.tpl.php:48
msgid "Purge all and clean all minified/combined CSS/JS data"
msgstr "Purge all and clean all minified/combined CSS/JS data"

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Maybe later"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "I've already left a review"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Welcome to LiteSpeed"

#: src/gui.cls.php:448
msgid "No optimization"
msgstr "No optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:107
msgid "Prevent any optimization of listed pages."
msgstr "Prevent any optimisation of listed pages."

#: tpl/page_optm/entry.tpl.php:35
msgid "Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Failed to create Optimiser table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."

#: tpl/db_optm/manage.tpl.php:47
msgid "Clean CSS/JS Optimizer"
msgstr "Clean CSS/JS Optimiser"

#: src/db-optm.cls.php:204
msgid "Clean all CSS/JS optimizer data successfully."
msgstr "Clean all CSS/JS optimiser data successfully."

#: src/lang.cls.php:137
msgid "Remove WordPress Emoji"
msgstr "Remove WordPress Emoji"

#: src/gui.cls.php:456
msgid "More settings"
msgstr "More settings"

#: src/gui.cls.php:437
msgid "Private cache"
msgstr "Private cache"

#: src/gui.cls.php:426
msgid "Non cacheable"
msgstr "Non cacheable"

#: src/gui.cls.php:403
msgid "Mark this page as "
msgstr "Mark this page as "

#: src/gui.cls.php:395
msgid "Purge this page"
msgstr "Purge this page"

#: tpl/page_optm/settings_js.tpl.php:74
msgid "Doing so can help reduce resource contention and improve performance."
msgstr "Doing so can help reduce resource contention and improve performance."

#: src/lang.cls.php:124
msgid "Load JS Deferred"
msgstr "Load JS Deferred"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Specify critical CSS rules for above-the-fold content when enabling %s."

#: src/lang.cls.php:135
msgid "Critical CSS Rules"
msgstr "Critical CSS Rules"

#: src/lang.cls.php:117 tpl/page_optm/settings_tuning.tpl.php:73
#: tpl/page_optm/settings_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr "Load CSS Asynchronously"

#: src/lang.cls.php:134
msgid "Remove Google Fonts"
msgstr "Remove Google Fonts"

#: tpl/page_optm/settings_html.tpl.php:130 tpl/page_optm/settings_js.tpl.php:75
#: tpl/page_optm/settings_media.tpl.php:217
#: tpl/page_optm/settings_css.tpl.php:148
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:80
msgid "Remove query strings from static resources."
msgstr "Remove query strings from static resources."

#: src/lang.cls.php:132
msgid "Remove Query Strings"
msgstr "Remove Query Strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."

#: src/lang.cls.php:58 tpl/dash/dashboard.tpl.php:362
msgid "Browser Cache"
msgstr "Browser Cache"

#: tpl/cache/settings-excludes.tpl.php:91
msgid "tags"
msgstr "tags"

#: src/lang.cls.php:102
msgid "Do Not Cache Tags"
msgstr "Do Not Cache Tags"

#: tpl/cache/settings-excludes.tpl.php:98
msgid "To exclude %1$s, insert %2$s."
msgstr "To exclude %1$s, insert %2$s."

#: tpl/cache/settings-excludes.tpl.php:58
msgid "categories"
msgstr "categories"

#: src/lang.cls.php:101
msgid "Do Not Cache Categories"
msgstr "Do Not Cache Categories"

#: src/lang.cls.php:100
msgid "Do Not Cache Query Strings"
msgstr "Do Not Cache Query Strings"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Paths containing these strings will not be cached."

#: src/lang.cls.php:99
msgid "Do Not Cache URIs"
msgstr "Do Not Cache URIs"

#: src/admin-display.cls.php:1103 src/doc.cls.php:61
msgid "One per line."
msgstr "One per line."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "URI Paths containing these strings will NOT be cached as public."

#: src/lang.cls.php:76
msgid "Private Cached URIs"
msgstr "Private Cached URIs"

#: tpl/cdn/settings.tpl.php:173
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Paths containing these strings will not be served from the CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Exclude Path"

#: tpl/cdn/settings.tpl.php:92
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "This will affect all tags containing attributes: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:96
msgid "Include File Types"
msgstr "Include File Types"

#: tpl/cdn/settings.tpl.php:86
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Include JS"

#: tpl/cdn/settings.tpl.php:82
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Include CSS"

#: tpl/cdn/settings.tpl.php:78
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Include Images"

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr "CDN URL to be used. For example, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "CDN URL"

#: tpl/cdn/settings.tpl.php:136
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "Original URLs"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "CDN Settings"

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:188
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:239 src/admin-display.cls.php:800
#: src/admin-display.cls.php:833 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:181
#: tpl/cache/settings_inc.object.tpl.php:210
#: tpl/cache/settings-cache.tpl.php:19 tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:238 src/admin-display.cls.php:799
#: src/admin-display.cls.php:834 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:156
#: tpl/page_optm/settings_css.tpl.php:149
#: tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:167 tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:301
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Notified LiteSpeed Web Server to purge CSS/JS entries."

#: tpl/page_optm/settings_html.tpl.php:36
msgid "Minify HTML content."
msgstr "Minify HTML content."

#: src/lang.cls.php:116
msgid "HTML Minify"
msgstr "HTML Minify"

#: src/lang.cls.php:115
msgid "CSS/JS Cache TTL"
msgstr "CSS/JS Cache TTL"

#: src/lang.cls.php:131
msgid "JS Excludes"
msgstr "JS Excludes"

#: tpl/page_optm/settings_js.tpl.php:61
msgid "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"

#: src/lang.cls.php:114
msgid "JS HTTP/2 Push"
msgstr "JS HTTP/2 Push"

#: src/lang.cls.php:112 src/data.upgrade.func.php:42
msgid "JS Combine"
msgstr "JS Combine"

#: src/lang.cls.php:111
msgid "JS Minify"
msgstr "JS Minify"

#: src/lang.cls.php:130
msgid "CSS Excludes"
msgstr "CSS Excludes"

#: tpl/page_optm/settings_css.tpl.php:128
msgid "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"

#: src/lang.cls.php:110
msgid "CSS HTTP/2 Push"
msgstr "CSS HTTP/2 Push"

#: src/lang.cls.php:105
msgid "CSS Combine"
msgstr "CSS Combine"

#: src/lang.cls.php:104
msgid "CSS Minify"
msgstr "CSS Minify"

#: tpl/page_optm/entry.tpl.php:52
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."

#: tpl/toolbox/purge.tpl.php:46
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "This will purge all minified/combined CSS/JS entries only"

#: tpl/toolbox/purge.tpl.php:34
msgid "Purge error pages, including 500 pages"
msgstr "Purge error pages, including 500 pages"

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge 500 Error"
msgstr "Purge 500 Error"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge error pages, including %s pages"
msgstr "Purge error pages, including %s pages"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purge %s Error"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Clean all transient options"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "All Transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Clean expired transient options"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Expired Transients"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Clean all trackbacks and pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/Pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Clean all trashed comments"

#: tpl/page_optm/settings_html.tpl.php:7
msgid "Optimization Settings"
msgstr "Optimisation Settings"

#: tpl/db_optm/manage.tpl.php:78
msgid "Database Optimizer"
msgstr "Database Optimiser"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimise all tables in your database"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimise Tables"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Trashed Comments"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Clean all spam comments"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Spam Comments"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Clean all trashed posts and pages"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Trashed Posts"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Clean all auto saved drafts"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Auto Drafts"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Clean all post revisions"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Post Revisions"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Clean All"

#: src/db-optm.cls.php:187
msgid "Clean all transients successfully."
msgstr "Clean all transients successfully."

#: src/db-optm.cls.php:183
msgid "Clean expired transients successfully."
msgstr "Clean expired transients successfully."

#: src/db-optm.cls.php:179
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Clean trackbacks and pingbacks successfully."

#: src/db-optm.cls.php:175
msgid "Clean trashed comments successfully."
msgstr "Clean trashed comments successfully."

#: src/db-optm.cls.php:171
msgid "Clean spam comments successfully."
msgstr "Clean spam comments successfully."

#: src/db-optm.cls.php:167
msgid "Clean trashed posts and pages successfully."
msgstr "Clean trashed posts and pages successfully."

#: src/db-optm.cls.php:132
msgid "Clean all successfully."
msgstr "Clean all successfully."

#: src/db-optm.cls.php:163
msgid "Clean auto drafts successfully."
msgstr "Clean auto drafts successfully."

#: src/db-optm.cls.php:159
msgid "Clean post revisions successfully."
msgstr "Clean post revisions successfully."

#: src/db-optm.cls.php:197
msgid "Optimized all tables."
msgstr "Optimised all tables."

#: src/lang.cls.php:60
msgid "Default Private Cache TTL"
msgstr "Default Private Cache TTL"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."

#: src/lang.cls.php:179
msgid "Vary Group"
msgstr "Vary Group"

#: src/lang.cls.php:177
msgid "Cache Comment Form"
msgstr "Cache Comment Form"

#: src/lang.cls.php:176
msgid "Cache Admin Bar"
msgstr "Cache Admin Bar"

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Private"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Public"

#: tpl/cache/settings-purge.tpl.php:7
#: tpl/cache/network_settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purge Settings"

#: src/lang.cls.php:73
msgid "Cache PHP Resources"
msgstr "Cache PHP Resources"

#: src/lang.cls.php:74 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "Cache Mobile"
msgstr "Cache Mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Advanced level will log more details."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basic"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."

#: src/lang.cls.php:71
msgid "Cache Login Page"
msgstr "Cache Login Page"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cache requests made by WordPress REST API calls."

#: src/lang.cls.php:70
msgid "Cache REST API"
msgstr "Cache REST API"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"

#: src/lang.cls.php:69
msgid "Cache Commenters"
msgstr "Cache Commenters"

#: src/lang.cls.php:68
msgid "Cache Logged-in Users"
msgstr "Cache Logged-in Users"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Cache Control Settings"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excludes"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:135
msgid "Purge"
msgstr "Purge"

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Privately cache front end pages for logged-in users. (LSWS %s required)"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "Current server time is %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Specify the time to purge the \"%s\" list."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Both %1$s and %2$s are acceptable."

#: src/lang.cls.php:96 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Scheduled Purge Time"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."

#: src/lang.cls.php:95 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Scheduled Purge URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Shorten query strings in the debug log to improve readability."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Log File Size Limit"

#: src/htaccess.cls.php:843
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"

#: src/error.cls.php:92 src/error.cls.php:116
msgid "%s file not writable."
msgstr "%s file not writable."

#: src/error.cls.php:112
msgid "%s file not readable."
msgstr "%s file not readable."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Collapse Query Strings"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Log Cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "ESI Settings"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "A TTL of 0 indicates do not cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Recommended value: 28800 seconds (8 hours)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget Cache TTL:"

#: src/lang.cls.php:175 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Enable ESI"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."
msgstr "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Custom Sitemap"

#: tpl/toolbox/purge.tpl.php:237
msgid "Purge pages by relative or full URL."
msgstr "Purge pages by relative or full URL."

#: tpl/cdn/manage.tpl.php:21 tpl/page_optm/entry.tpl.php:34
#: tpl/page_optm/settings_localization.tpl.php:11
#: tpl/page_optm/settings_css.tpl.php:143 tpl/cache/settings-esi.tpl.php:35
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:19
msgid "WARNING"
msgstr "WARNING"

#: tpl/dash/dashboard.tpl.php:497 tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Last crawled:</b> %s item(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "The next complete sitemap crawl will start at"

#: src/file.cls.php:176
msgid "Failed to write to %s."
msgstr "Failed to write to %s."

#: src/file.cls.php:157
msgid "Folder is not writable: %s."
msgstr "Folder is not writable: %s."

#: src/file.cls.php:149
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Can not create folder: %1$s. Error: %2$s"

#: src/file.cls.php:140
msgid "Folder does not exist: %s"
msgstr "Folder does not exist: %s"

#: src/core.cls.php:262
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Notified LiteSpeed Web Server to purge the list."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Please visit the <a %s>Information</a> page on how to test the cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Allows listed IPs (one per line) to perform certain actions from their browsers."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Server Load Limit"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Specify Number of Threads to use while crawling."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Crawl Interval"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Interval Between Runs"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Specify time in seconds for the duration of the crawl interval."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Specify time in microseconds for the delay between requests during a crawl."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microseconds"

#: tpl/toolbox/purge.tpl.php:172
msgid "Select below for \"Purge by\" options."
msgstr "Select below for \"Purge by\" options."

#: tpl/crawler/summary.tpl.php:217
msgid "No crawler meta file generated yet"
msgstr "No crawler meta file generated yet"

#: tpl/crawler/summary.tpl.php:199
msgid "Show crawler status"
msgstr "Show crawler status"

#: tpl/crawler/summary.tpl.php:192
msgid "Watch Crawler Status"
msgstr "Watch Crawler Status"

#: tpl/crawler/summary.tpl.php:184
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "Run frequency is set by the Interval Between Runs setting."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Manually run"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reset position"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Then another WordPress is installed (NOT MULTISITE) at %s"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Delay"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Run Duration"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generated at %s"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Cron Name"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Run Frequency"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Crawler Cron"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "LiteSpeed Cache Crawler"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Threads"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d hours"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hour"

#: src/admin-display.cls.php:135 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "All pages with Recent Posts Widget"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "This will Purge Pages only"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purge Pages"

#: thirdparty/woocommerce.content.tpl.php:63
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "For example, if the home page for the site is located at %1$s, the shop page may be located at %2$s."

#: tpl/cdn/settings.tpl.php:192
msgid "Email Address"
msgstr "Email Address"

#: src/gui.cls.php:728
msgid "Install Now"
msgstr "Install Now"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purged the blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Purged All!"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purged the URL!"

#: src/purge.cls.php:555
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notified LiteSpeed Web Server to purge error pages."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "If the login cookie was recently changed in the settings, please log out and back in."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "The network admin setting can be overridden here."

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Please consult the host/server admin before making any changes."
msgstr "Please consult the host/server admin before making any changes."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."

#: tpl/toolbox/purge.tpl.php:228
msgid "Purge pages by post ID."
msgstr "Purge pages by post ID."

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "This will Purge Front Page only"

#: tpl/toolbox/purge.tpl.php:232
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:238
msgid "e.g. Use %s or %s."
msgstr "e.g. Use %s or %s."

#: tpl/toolbox/purge.tpl.php:223
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "However, there is no way of knowing all the possible customisations that were implemented."

#: src/core.cls.php:257
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Notified LiteSpeed Web Server to purge everything."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Use Primary Site Configuration"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "This will disable the settings page on all subsites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Check this option to use the primary site's configuration for all subsites."

#: src/admin-display.cls.php:674
msgid "Save Changes"
msgstr "Save Changes"

#: tpl/inc/check_if_network_disable_all.php:22
msgid "The following options are selected, but are not editable in this settings page."
msgstr "The following options are selected, but are not editable in this settings page."

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The network admin selected use primary site configs for all subsites."
msgstr "The network admin selected use primary site configs for all subsites."

#: tpl/toolbox/purge.tpl.php:118
msgid "Empty Entire Cache"
msgstr "Empty Entire Cache"

#: tpl/toolbox/purge.tpl.php:120
msgid "This action should only be used if things are cached incorrectly."
msgstr "This action should only be used if things are cached incorrectly."

#: tpl/toolbox/purge.tpl.php:119
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Clears all cache entries related to this site, <i>including other web applications</i>."

#: tpl/toolbox/purge.tpl.php:125
msgid "This may cause heavy load on the server."
msgstr "This may cause heavy load on the server."

#: tpl/toolbox/purge.tpl.php:124
msgid "This will clear EVERYTHING inside the cache."
msgstr "This will clear EVERYTHING inside the cache."

#: src/gui.cls.php:562
msgid "LiteSpeed Cache Purge All"
msgstr "LiteSpeed Cache Purge All"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "If you would rather not move at litespeed, you can deactivate this plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Create a post, make sure the front page is accurate."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visit the site while logged out."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Examples of test cases include:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "For that reason, please test the site to make sure everything still functions properly."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "This message indicates that the plugin was installed by the server admin."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "LiteSpeed Cache plugin is installed!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Debug Log"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "The Admin IP option will only output log messages on requests from admin IPs."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "The environment report contains detailed information about the WordPress configuration."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
msgid "Note"
msgstr "Note"

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "The server will determine if the user is logged in based on the existence of this cookie."

#: thirdparty/woocommerce.content.tpl.php:20
msgid "After verifying that the cache works in general, please test the cart."
msgstr "After verifying that the cache works in general, please test the cart."

#: src/lang.cls.php:93
msgid "Purge All On Upgrade"
msgstr "Purge All On Upgrade"

#: tpl/toolbox/edit_htaccess.tpl.php:92
msgid "File editing is disabled in configuration."
msgstr "File editing is disabled in configuration."

#: thirdparty/woocommerce.content.tpl.php:57
msgid "Use Front Page TTL for the Shop Page"
msgstr "Use Front Page TTL for the Shop Page"

#: thirdparty/woocommerce.content.tpl.php:28
msgid "Product Update Interval"
msgstr "Product Update Interval"

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Checking this option will force the shop page to use the front page TTL setting."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Always purge both product and categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Do not purge categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Purge product only when the stock status changes."
msgstr "Purge product only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:34
msgid "Purge product and categories only when the stock status changes."
msgstr "Purge product and categories only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge categories only when stock status changes."
msgstr "Purge categories only when stock status changes."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purge product on changes to the quantity or stock status."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:42
msgid "Htaccess did not match configuration option."
msgstr "Htaccess did not match configuration option."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "If this is set to a number less than 30, feeds will not be cached."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Specify how long, in seconds, feeds are cached."

#: src/lang.cls.php:62
msgid "Default Feed TTL"
msgstr "Default Feed TTL"

#: src/error.cls.php:120
msgid "Failed to get %s file contents."
msgstr "Failed to get %s file contents."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching these pages may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Some themes and plugins add resources via a PHP request."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching this resource may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico is requested on most pages."

#: src/lang.cls.php:72
msgid "Cache favicon.ico"
msgstr "Cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Disabling this option may negatively affect performance."

#: src/htaccess.cls.php:910
msgid "File Saved."
msgstr "File Saved."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "WARNING: The .htaccess login cookie and Database login cookie do not match."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "There is a WordPress installed for %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Example use case:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "The cookie set here will be used for this WordPress installation."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "This setting is useful for those that have multiple web applications for the same domain."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "The default login cookie is %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "No spaces and case sensitive."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SYNTAX: alphanumeric and \"_\"."

#: src/lang.cls.php:185
msgid "Login Cookie"
msgstr "Login Cookie"

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "These settings are meant for ADVANCED USERS ONLY."

#: tpl/toolbox/edit_htaccess.tpl.php:98
msgid "Current %s Contents"
msgstr "Current %s Contents"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Advanced"

#: tpl/cache/settings-advanced.tpl.php:7
#: tpl/cache/network_settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Advanced Settings"

#: tpl/toolbox/purge.tpl.php:251
msgid "Purge List"
msgstr "Purge List"

#: tpl/toolbox/purge.tpl.php:170
msgid "Purge By..."
msgstr "Purge By..."

#: tpl/crawler/map.tpl.php:43 tpl/crawler/blacklist.tpl.php:31
#: tpl/toolbox/purge.tpl.php:217
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:211
msgid "Tag"
msgstr "Tag"

#: tpl/toolbox/purge.tpl.php:205
msgid "Post ID"
msgstr "Post ID"

#: tpl/toolbox/purge.tpl.php:199
msgid "Category"
msgstr "Category"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "More information about the available commands can be found here."

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "NOTICE: Database login cookie did not match your login cookie."

#: src/purge.cls.php:609
msgid "Purge tag %s"
msgstr "Purge tag %s"

#: src/purge.cls.php:582
msgid "Purge category %s"
msgstr "Purge category %s"

#: src/purge.cls.php:640
msgid "Purge url %s"
msgstr "Purge URL %s"

#: tpl/page_optm/entry.tpl.php:41 tpl/page_optm/entry.tpl.php:51
#: tpl/cache/settings-cache.tpl.php:27
msgid "NOTICE"
msgstr "NOTICE"

#: src/doc.cls.php:91
msgid "This setting will edit the .htaccess file."
msgstr "This setting will edit the .htaccess file."

#: tpl/toolbox/edit_htaccess.tpl.php:100
msgid "DO NOT EDIT ANYTHING WITHIN %s"
msgstr "DO NOT EDIT ANYTHING WITHIN %s"

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid "Any changes made to the .htaccess file may break the site."
msgstr "Any changes made to the .htaccess file may break the site."

#: tpl/toolbox/edit_htaccess.tpl.php:39
msgid "LiteSpeed Cache Edit .htaccess"
msgstr "LiteSpeed Cache Edit .htaccess"

#: src/lang.cls.php:183
msgid "Do Not Cache Cookies"
msgstr "Do Not Cache Cookies"

#: src/lang.cls.php:184
msgid "Do Not Cache User Agents"
msgstr "Do Not Cache User Agents"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "This is to ensure compatibility prior to enabling the cache for all sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Network Enable Cache"

#: thirdparty/woocommerce.content.tpl.php:19
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/report.tpl.php:29
#: tpl/toolbox/heartbeat.tpl.php:14
msgid "NOTICE:"
msgstr "NOTICE:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Other checkboxes will be ignored."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."

#: src/lang.cls.php:75 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "List of Mobile User Agents"
msgstr "List of Mobile User Agents"

#: src/file.cls.php:164 src/file.cls.php:169
msgid "File %s is not writable."
msgstr "File %s is not writable."

#: tpl/toolbox/entry.tpl.php:14
msgid "Edit .htaccess"
msgstr "Edit .htaccess"

#: src/gui.cls.php:578 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:188
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Manage"

#: src/lang.cls.php:61
msgid "Default Front Page TTL"
msgstr "Default Front Page TTL"

#: src/purge.cls.php:523
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Notified LiteSpeed Web Server to purge the front page."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purge Front Page"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "All tags are cached by default."
msgstr "All tags are cached by default."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "All categories are cached by default."
msgstr "All categories are cached by default."

#: src/admin-display.cls.php:1102
msgid "To do an exact match, add %s to the end of the URL."
msgstr "To do an exact match, add %s to the end of the URL."

#: src/admin-display.cls.php:1098
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "The URLs will be compared to the REQUEST_URI server variable."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Select only the archive types that are currently used, the others can be left unchecked."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notes"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Use Network Admin Setting"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Disable"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Disabled"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Enabled"

#: src/lang.cls.php:103
msgid "Do Not Cache Roles"
msgstr "Do Not Cache Roles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Outputs to WordPress debug log."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Debug Level"

#: tpl/general/settings.tpl.php:83 tpl/general/settings.tpl.php:94
#: tpl/general/settings.tpl.php:106 tpl/general/settings.tpl.php:150
msgid "Notice"
msgstr "Notice"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Term archive (include category, tag, and tax)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Daily archive"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Monthly archive"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Yearly archive"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Post type archive"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Author archive"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Home page"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Front page"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "All pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Select which pages will be automatically purged when posts are published/updated."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Auto Purge Rules For Publish/Update"

#: src/lang.cls.php:59
msgid "Default Public Cache TTL"
msgstr "Default Public Cache TTL"

#: src/admin-display.cls.php:917 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/esi_widget_edit.php:70 tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89
msgid "seconds"
msgstr "seconds"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "Admin IPs"

#: src/admin-display.cls.php:123
msgid "General"
msgstr "General"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "LiteSpeed Cache Settings"

#: src/purge.cls.php:212
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Notified LiteSpeed Web Server to purge all LSCache entries."

#: src/gui.cls.php:463 src/gui.cls.php:471 src/gui.cls.php:479
#: src/gui.cls.php:488 src/gui.cls.php:498 src/gui.cls.php:508
#: src/gui.cls.php:518 src/gui.cls.php:528 src/gui.cls.php:538
#: src/gui.cls.php:604 src/gui.cls.php:612 src/gui.cls.php:620
#: src/gui.cls.php:629 src/gui.cls.php:639 src/gui.cls.php:649
#: src/gui.cls.php:659 src/gui.cls.php:669 src/gui.cls.php:679
#: src/gui.cls.php:689 tpl/toolbox/purge.tpl.php:39
#: tpl/toolbox/purge.tpl.php:45 tpl/toolbox/purge.tpl.php:54
#: tpl/toolbox/purge.tpl.php:63 tpl/toolbox/purge.tpl.php:72
#: tpl/toolbox/purge.tpl.php:81 tpl/toolbox/purge.tpl.php:90
#: tpl/toolbox/purge.tpl.php:99 tpl/toolbox/purge.tpl.php:108
msgid "Purge All"
msgstr "Purge All"

#: src/admin-display.cls.php:281 src/gui.cls.php:586
msgid "Settings"
msgstr "Settings"PK١�R�	PzǍlitespeed-cache-en_GB.poUT	��}`��}`ux�����irI�&��NaU�dȀ��3*Z@�d ����l	���9��f�f�=��
���s���\a�=��TMհ0r��$+���b�<}��9�,�\�U�gQ���׻�4+���J.�I����*!)U<['�sR:)��H�I\&?Di�ɮ�i������韣�UZF˔&�.Ҳ*�ٮ"�v�")���+�M��y��I��v�Ʒ�&�N�iS^������ �������۴$�{qB*��z�^�Eg�;���W��������5#�?�~x���I�_E�C�z�gU�U/.�[B�J�V/��8��WqQ&տ}�|�b���Y]&ŋ7�<_���h2K+,CFY��o�bS���-�,���Lj��oY�ݿE�?bῼx�dIWy�*z�Ϋ�")˗���a�E�ޮ��|g�;2��$�z���T�%����B��s���_E�u�r�+�d����v�}�����C��;9�"�V��-��U��6/ɜUdNʫu>����q��2H��q���2��$+����J�$�K��h�D�|���8[���O2'?��j!������c�jʼ,�z>�i�.����n�H�u�%�HG��1�x`7FS�
܏8�E�oq��]	��P%;?!+ rJgZU�w�l�b�|Tޗ��7���Ԓ���������M�Mu�������y��׻E������\�߁�"�<��ȯ=��VI=�K	���9ل����($���J��2ڐ��"��3�-ҼH��|kr����d����jJ&�\�"ڐ�AFJj�p¤�_IQ�E�c�(�=T?��R>�?�p���}��EV�t��/|S���Q��2,�)�ն^C��]F���Vk��$��5`��m��M��\$�|e�ܗ��5^*k�W���P���-P�f������}��iu�;#g��G+���Dd�ʄ��v[�1v!]�sz«�������"�������i��es���bi���H�N����=N�|��rIQ���0/gVtAflN�r�[�������7������#�5�S2ed���;���[lt_��G�Xŷ	Y#d��]�Ƿoŷ�$���f�˂#g;�3�H�Ї۪Z�U�'w+���b�w'�<'�nN�&&���,�s7����70_k�w�Hu�}e��3�
?���)npmM5����r־ L8�j����@�F'iINbe��~Z�ወ��ER���K�GXܜ�W�	G��fzZ3���&>�2k�
Jȁ��Y�gs�<�k��\�}ht�rg��yU�r���î�^�`V�Pe�JY�U=�ï�a�~�#pK»��<̽�I��F������v��OX}|��=Lç�*_�g�̓�Пv	9j��t,̣X���P�14��7
�\8Lsr���d��.<K����᥌�J˺�sx(��O���dE�Y9Ō��Ii|�|��G��k��!�M�����e�N�V��)�4�K���Y��e���EEz�X��ap�*w쏻8��^%\WR!,.Q�IL%9	�ݺ��Mv�I6��ڬ��%�'8KE�!K�}VFULZ]�&����{�ۢ����v��I��M�����B��UѾ�������r^��*���U�ܒ�)"�"HN:�]�,�>X�Er
��d&����hܴ�U쭻�x���x��:�'$6�Gá��p��\P�\��x�^��	���yؓ'�I���ߓ=�Kʥƻ��V�\(]��T�wTe��Au�&��k�ϐʕq�/3�Q%[�%�EIq��<š��% t�ҹ=��h��U�i�Fod��HH	k�)-�β^��7+�ܦ�|ߜ]P�����<I��P�j(b��t�p�g��%�R$�D�VA�Y��k�i�ޥ�[�Nji�Ѵ���,�4�0����{*��!+�p�d���-܊��/����Lr�1��9}���),���J���\\6?_^�_D\Νg�f�l��tP�2B�(ʡe�XK���&E�.j"U��d>ͺݡ��#��vI�Ǽ�*H�'/�=y�2��v�]�A�DxE�IU���S,sQFUu�����;�3��9ױLv��u��@Бư.�<{1�a�
X|e$����g��$s�69fo�9^��)ݽgu���j�ї��Pxp�>�Ү����>��}-f��l�-��-8h�.e*Pۇ��D~�����磈n��Gr��e.��?}�P`��oJ�4t��N��,��+�OI�8P�= G�lWU�\!�fW�nmrԗ���V?�fx��*��fO�D{�
�u��',b���N4�\�=��lbE�֓��SxzF���f���:zGV�6� ǿ�5pL�tJF��T���kN���\��@M���ޑ�� ������r3|kJ�?(|�0y�D�g�?��w�e�늜�׫��vTuɏ��%�q��WXI��+�J��~�m��S�r�[�h�~���g"��x�!����I�N>~�Σ���DŽc�`��Lx�ْ�}���j����<�v�=s2��rEQ-ɩA^Քc�M�y��*�吏g��YޒV�`�2���_��bQ�Z���{dU��'�0rH��(I�i����Yy\�Ac��s��-�k��Ha
4
�8�˫xMY$r~�3_�t�*Q�d�@|�w:�}�S��ڳ��S��m]@[�QI�W;-ī�"���g�#c��]$��8�މ��3��6p<o���J;yB'nW���d\*���b��<
5g�'���M��Q���P��|���'��ͤ䪘F�(-$n��5I�.����W��$��2��H��R1�����,A�R�*�4���g�zcYx�u�9���(Cv��},z�5=�I�Wޗdv.����ŧUYLJ��^���e��[Ͱ��Ī��$��@6aX5����H(���ԇ_�8�a�	9V�f)͖�+‹�b����^O��n�mt�n�|W��T-C�aE|�N
y������KH�kNM��t�.j
.Q�V_i�e����q������8�,�����6���|�"[X�ڞB��G���"o��R?ݾ�� ��8R��|Q ��J����lu�pӖ��L�U�R��얬~jZ��R�v�c��m��$��L�K[�����vl�#����<��a�:uYhQ���&���Y:��}�*����;�!'kE�^�*}�C�^�ez�K(�H#<��J�(�7�$G�j�8Q�l-օ�8���V%Am�%�=x��d��襡L`�F�yY���,�����KI���xg�%qe.���Z��t��-�ĀW�B䜾�bfſ5Ύ��=�:>��]-��[�m�xM7�
����( 
�0�ZT	�N_l����pR	�50;�@��7���R���[*� U�}�b�F0�	�r>=����#�-�|A��A���5ە��(���]�Z�@Ɨ�XP���&:I���R�'l�?/�a�āf�u�Fy�=�����ؔ��
���L_�&p���(�o���[�s#���K���l��aD6����թ�zz�>GS@ �n�هc����o�v�Z_��J*�-b�׮)�3�;m�/iy7C&
4��+�5L�%�&�g�I*��:�s�ܩ�g������%z�a}��t���YW��%1|<C�*�Y�:�a]p�
���P����V�߭��S@ѭʓ�=b`a�;	�%�J����
-���(l�r1y����Y����7�S?E�KVt�k�_�,����|q�:�M�O{�ۆ�b��qȜ�m\ 銺Ex3ˈZV�w��h�{�Ū����H�IZ��E~?1<I͎Q�VR[A��j~.�'pT
�,A�΁b�U���!8�����9@�Ylb�IMQ��F�ƫ�xC�xY\�c��
d�:��Y��xi����Z7s�5k��ivC
C�L��b��(���i��D���b
�
�)=�CV��.��i��N�Qv�%�CX���r��e��U&Œ�#,M72P�����07)�WKZ�UeW	��o(XX� YyA%+dU�����9��sB�l���yq��e�b��]u��S��$M�Q���U�%���9�-���Z���x:��M|�P�}�	Ŵd�3��!5�/@����p(T���A����ȏW	ag6�h����94�[E�*Ц���1�h�B3+��اo�c	^d���"_�>�s��w����>���U�3@Ӗ/� �7	s�O��&��q����+V�䌺�����*��mU�^}���vϩMc��:~uR�� ��L��
�׸.�%�v�o��w�}�M�L0��ޗPp�{�f�����^.�iqI3nM�����lM�CpU�Kt�8�D�y��g�&�)F�k��,����
jfuڵ��C�sj%��(��R�����M�g�IU�3W��'&A���.B�e�T�1ޒM]��h����oZ�i�8z��Kn8P�F$55"E��T!�T��Hn��7i�׆��6Q���'��w�x��Kf]�7@5�٩Z�L�.�">�)T��Д�UJ8.�ϊ5���ij����e7,]�����
�Ly!R�re�<!؆�/m�)��;4}\,�B��(Р`:���1�5kJX~�$�V3�US�T.l)�d�rE�@uP��������0T�~9qd�)Q��)a �↺����	��+K4�g��a��x3����T�b��5R>y
J���,���Z�� �	�.Qk����J�ѿf�r�G�Dg9���
�'f�7�N�ԏ�"�ߤ�@���}S;NX[���C�2�<��βH�����q��	�d�M�-cZV͗2�������ɇ0*�>h�<j���������Ϫ�SI�!}�黟~:K�ǚ#��p��&Na��q�c�ie&C���?�_-�{ɾh�#�CHV��tm��H5�]�iDDBáƙ9�]U��)Yi�@�>z���&M�r�����@[x�fg���."�=�0R�3��J��������pd4���ގ�m���ni�Dy�6�,���G�$~�Fa���� �f3�e�́^�J"0�[ˣ���e&�����	�=���6I�S�eX��
�,�们BC,r����D͋9�0�ś�e.��7A_�~�)it�>a3�ڕpQ2�u�r[ا���,~`+ߢ/Rd��G���Rw�;���2b�W+���2�Υl���+%���ܚ���u�4B�f�!�KS���̀��|��b��]��x�� �L�y����8��1T�i�;�	�!�v�h�2��B���o�3WH���k�	qiG���&���7h��4Z���e��5;#�W�>��8ա��3�^�����u�Q�7������41�6!΀���4�o����ʱ���^�'��(xh`Q����
�_��{c}���Ց�X~U�hy:5{h�x�U��b³�v���<�:x`�x��1�����6�E�BZU��
���k�M�&��|o;��;w���|��#��[��O���3��ܭ�{����d�s�Ԭ�Ӕ|
�>�8a��5.�'�=��w}B랒a� �t�p� ��0�>�}{ 1�y�}o�G�Y0����[�����0�{�N�-�_�T�"�A��݂)�0D,Gx/���>����0�5
;f����7`�81fA>	��0��n�u��"�#��`E eG١
X/��B�QB+���``j���{��M���`�>HD�#�0]�g�_*���p�������'��Y*P]:�O��)���F�+P6��5��Y�=
��&!�e�(vITѳ��c)��~�ė�1I�.]Ą�����	�ޤ?��Bsb�,"+�tj�zQ�.������X�f����\���@30`4�DQ�]��AP!%�b������'��3q�n���|��ߤ��!n�m�5Y+l%�NKj��DŽ�(dž*��Vd$0
���i1B�(@��Ł�K��ѷ�d��C�`	��)��&��m���6O�!�~���|�N�Oz׊{�{��{lTp���-���H>*�]jN�K�Æq�Ȱ�d����t�SoW�آs�!n���ɡ�'6j�\��������iɷߒ���2�pt�L����k�u��J�&m���j��4�L~t��w�[:V��ڮh�3i���H��@�=�AŨͬ0�U 3�>�X�Q[����H��gηIQ�(ΏE/|(���������~qu��җK�z��n�-b Mu�(��Nk�<-��ck�@�2�>���</Ї��|���H5�K��b( )<����1_�e�v�:$��=�N���s5���O2�:/�O)#��PB�8�=�O�9L��
EC�v;-��{B�%b���k|�-�]\�T�Zj{yP
��	�4{t�
���a�j"t�ڠ!QOSL!k�>��������4�>݀�`"�������[ �Fpo�R��H�{��%��\&�q�䠥�~r���@�A0�� �%��/�Zc�蛬��|��<��\�/���A5\-�[��Yr��d
��u��f�f
�ѦNh�zj�Nq�d.��wz7�K���䊬�Mn�3b��3
 �I-���@^�/�&�Uַ�@Lq����ed��$��I\d�h�0�DZ�����ۮ��]F�`#,K�A&_���H�m�����nSU!M����k��c�Q�v��I�v:�Z�!tj�6TaM�d���L�|U��Ꙛ��Ӯ�%��Y-���D���n�!B?ߣ���-���j�Z�ߣ�T�|-�Ձ�df)3�O��
�s85�7*�gSUS�P�t�
�f�H�S0�
������r^���.#��1��ze���OI��'��K�7�:f�F���/o\�@<��\z3�A�s?^.��֦����@Yx�\�J��4϶��͖�X����J��o6���4��gG������iK�򧤄��AĜ�ѣl�-(���"��
,��b��3����P���X�Ac��1��{U���5���H���S�=�����G�	�1@�0�||'�ZA�V�:��ݐ6K'�[��ݶ�0��a������{"q���M�1tP%��Mt�B�+FS)o{�K�иɱy���I��%��'q+"�,/a���,(Pi 
�?١k)�,�84@��˨O�� 
@p� �daS��T`(��������U��ےв��d�pF�j�Gp�eƴ�C�_�?���u�;_���X��]x����dn�k�+z;5�J	�K��YQ����:��t���^�n:	N��%=/a~��P(����n���J1��氾��E��l1s<��qŧ�Հ�ɒ;i�@Z����5=7G�F�Or����=I�@$Z�^*�o/�^ߦE�[X
E&�����x\��p�g��%�?�n�abz��)�w��i�i���Y.J8����b~<СԢ�x��hj,�GK��ńԼ��9>�2
������|q���
4�e�azq�!J�k=�j�*�~t.t���N�,?y�1�f������CF��UH?g�č���XM�iԁP.u�W}��ߖZ��DlJ�;�[�Ӧ�:� �H�jh<Ci<� �#���-f�LԏG (��+��,����|�|��q�%CO�P��Ɲ��G���I�]�׊�_N�h����4pc�jN�Ɠ�L�5�7fK`���f�Z�:��mh�ܐ\��ϵ�"j���Ns�bm@"8����|W1ê|WrW�ޒ�N�'|�K��)a�[x�`u��CK��*�g���$��z�
�#�Y��X�ҍ�}LN�x�$��4yc2�O\�T��(9>�R�N_�����p\���g�菆M��Q����6l����F�o�P׹���(wz�WY����=�4U�qg��t�Fw�ť><ك#�I�K��`���n��|�Wf�#��S2��}@��ޑ�x~���L��x8����$�Q�}-H.��+Qڄ���1c�s'�m��X�ż�RB6gs���Jo\o*h�-�w��kO��fy�����-@�s�
*�5���Cy,t���i�Z'�g㲑<�V�[�V����_��=�8f7X���i��1���{��Q$Y���+Х��#�?h���6	"�e��h�xi�r~��w��x
�T�ȵTs��unSB��e� �9�t�Ppo� ��K���9�f{�ƓS�'g�dt�R�L=9�=�f8��Pᯀ-<�&ںO<;�0����K��HCRm|F�d#m��Ê�������spN��D�3��
c�HiC�ѧQ�勄BX.wEE��(��j����г����rgH��묟���MD�5)�L��z%d7�.Vy�x>T&5FT�J�����ym�i-��
pN�4�G>OZ�jG������k�6VJEy�G2_zebe[�q��������vTWT��B�4@��^	`	-~zsq��"�~y^rU���Z0�c8��Ƽ�4�7����i�u-�?X��*Qfv��v� �D4Exc!cjx��#3�����K�7�G��1�a���3.��V��.�6�\�c~���)�t����)�	�5�uG=̊��ga���*��VD�����xU�k��&N�;Ff��Ο�9�1ؐvި�H=��=�	��,ч��8���֐���پ��R���^E?��O���Y��K���H��&-:�(#�)^2��!�W�XįnB2�G��ߞ�'߱�g2;u��_�Shd��^�k��>j���5�:��'ͽ�A던a�0$
�G����y�S셟/?��rd��kEN-r%.�hx�}�u�bk�p��Zi@Ño���O�됸"�G��R�h�7�s_Q���A�v�	��r��)�bZ�`H��j��
[����m���F� �X8D|�,�p+C�d{@�u��Ǧ�0ń,
Qm�0��R�"�a�X����d�&�dDVi���E�y���Z�r�a(+�Ⱦ�1+e��\���\��ngʺ�G��l
��]��K-E�+q��ɢ8��${9ݔѧѺ��_cȺ�Q8d���h$�(JzB���C�(��3\Wx��w:
ɚt�5U�#S�C�ޥb(�ޤ�6�uuhC��ETCY���ړ�MK��C����Vj.J.*}���R=�J�g��S���؂�vN����\��;����L7�/@�*�@��鍵n�A͗;��S�ݔbC!����K64���7��3���l,�n���r&�Z_�=n�H��'#�<@U��IV	\]�'��ZCG0eT�m��(��4k�Ex
w:���V>�f(f�s�j&��K2;G�5�9S�g�9����v�*��Z�~L�r�C���0�]�s�t����,��ĩC�1����`By��=�����X[�_��c _E�;\�#U�H��-�\�u�J
Gw_w`
9�%���́��cc$�y��s��<��[jX�o��������rPة��5�� �u�T�Hf�k�;������uz����̳ӓ��N�|��h���l)T��B)Q�vڊ}8
8�[hb�����m���yq}��y%J����zw:Q}�y��ĭe8(�-6)����t�#~�����D�fI\E��=�As���%�p�hgG!;��;��d�i8�FҢ���X�o|;���-��i \븍����ȃO�qP,�bp��z�,�FZ:�BD�3�x��4%�Q_Xp�j��
�j3�-hoi��BDdd��f�o�uД�W;r16J��:C����H�Yj=]�KF�����)b�)�ur����?�<LO���Է�S�f�X�}[��HuИ�<��q�VS
a�:h*>�J�\�R�^d�2�#�c@K��p�0��F�)�y�I�����D��`4kgz\���:]��HN%f������X@%G:��k�E��E�B?E�A{�8ڗ���J���Ӗ��w��8k��b�.��[d��Jex��rjS��He)��s����e�uД^5�1�����n[Ow��K14Y'T5�p�Q݃kԧ�#�&%;�4��,��G���J�`��_,F����Q��_���,��u@Q{c}�14'�Җ9VR�aJ;cQ�v�wޢ�fi7��*�f�r@
�"����d�]S��)J��\�m.f.,�>��a���$�ɛ���j�s�~ZQ��A��±�̂Cpr��~M��,�&�}]Ednbr�Ծ�����D��j8K�QF��(�13$�.�\�X�2��¡v���r[k3�&،c��.f�&4,�28�Sp�)���!���=T+pS-��"BXu�x�jF8�G�i
F��R.
Iƴ�k�}iW�޵����s��(M8�Z�����S[�dl�y�} s�'��[�r�N
�����G15	Cs^%�)4�`o�/_$g�b�&-�u�����xgbK�
qM�%u,9ڑ7E�>��D��'�M��΂�?(�9�(�1U(q(���g�a�~E��q�.+�݂[�D�0�luͰ���M�٠.�b��c�<:1L.b�]�^��LI��1�
2;wV���x�p���,-�8C�:����R
/�q�U���æ�AQsIGc�q����h
���C�Fܦ����=g'M��~�П�]�H N22E���\��-�<���&����z�@[Z�w��ڱs^߁#
^E
������:Y���tV]]�I���S�2	�U����7�g�:•�z���E�����_�_P&;Ȍ�*9��!���Ѿ���hn��U�M��Y�Ԋ;;s���'U������4R�~��k}�4���s"Z�q*<ߢq��ꈾ���<���u��?J�u�>��������wRą]M#��h�,1�Z>3�
嚚��=>�}M}�7����f_
�=�9�6��_i�(��H_n��S/�X���H�����2^,���Pc!��(*�������G��|���@�myF�_�\G��+�(����+4j!�JS�囚�I٥ �,�Tr�F���=��F<ͨ�����4�AG��[�ȅg�I���%}(.�(�ʘ�T/���T'�%�h��'E����L�Q�@���-L��#�d/=qqpe�IOOn�7�v ����ߠ�G	�3
�Ú�!/�����g�]_}z���`Ҕ;Tp�DX,s�,Y�F����(����J���f�U��pPT�	qU�-
S�����Ȟ�|��h+��R[�O]Ϣ�{�j�t4OL��7XM��:�����\��Pt��s
d{]��Hv�ka�Y��h�>����X
�IV������@��n��	5e�%
�Q���r4!a ���$5��
pһ*E3�?$@߿��v�%1��,�]���F��~��XW���,�ˢD��2C�B�1�Ȏ����0E�z��ѻB��,v	����ۜ<��A�:�Ó��`_��
<٩�?W7p3Q�
�u�
{#FH�F���G�<�����Z$�"]0�{��1A�鷟��cB�0���U��)�;21W��ڮ��T�R�;�[<f���&��h�?6�r�?�v��X�Ĺ��2U�B�^\]�߯k�tUܻ_���S=�U�5�U�DC`9�/{���XԠ�@�b���Ez�J�$A�M�2��z���4c�d�=_s){#
�1Z(H(�$�w�(p"+x�`�2��2޹�a���@S�I�Ē��jkDe`pa��2�j�B��w�����l�h@lllqK��IUx	�bo]�����`~X��!aV	9P�%ܪN�j�߰fl�(��ԣ]��2!�l�����,a�=�дy��ņC8D@$<'�>�z|�,+���z%{_����s��YI�)R�����^�ʎ��Y�>i�\���
&^��4o����X�)�����t%����F�;5���ꇆQbD&~_
�0��GZ@��PG
��ʫe�B%�\�ං0w¨b�������"Ĭ���]1-n�d��B9"��Q��Nc'�ðH���m�Ft���p�ȣ&.˻�X��6�ډ^|+����d�A(�N�����X?5����&xh�,�M�д��d�2p�1&;�'����úoH{
�NæE�}�$5�O�(�N}�(�b��3��=�x:+P�$|�վ,��Q�8RԑS�����4
X#a�Q�@�x
H��)���yY���dqh�H���Fn	�˰'�{i�5���p�d���M�K2���K��L����o8��:�i���@b�>�������4s�]����0$�Z�T1����ݤ�T+��ލ��{���wG������eXOn�������ty�QP!d( <A�N�����s��+0�E�l�9�+܌W�lDk��\!�S!�Jy� �+;�l�Rl�Y„����8�K��(�Do�r���_>��q�&����ϳ+2��tV7����y��K!
	M�-��D,�t����%�:�yj�����^�#�r�Q��hvf��'b��<�����+`W�m)V,a�ߥ�ϻw�U��%�Io*�P`g��P�,�1� x���۷��+(de�(�rU�m���9�j�U���oɆG6#}
A�A�D�����x��a�=7���kS��*�:�*©�ǃ��)�Ƭ��bo8�#C�]��#�g�:�0*wÉ�!��'����1�O5�F@!�ZX��k��,`��;���=��8�eB�iA�����D��'��!
B���޴��9�+Ȓ�n��	��0C�p�)ŽP
��
�ؾ#����I�1x�a_q#>N�C�'��}\�A��f5>�E��	(>fB|���� �P&�]���]G��"�U����\��}�Ԁ�I�<I^?��T�eoIO��H��&:�D�ӛ����d3�{\��Y��
������ݻD���*��$�Ɇ�U��W=B�	�������F�$�V�'顉��W`[�V����4��X���6�x�U(��.��S��1yl� �=�/�J�s�$��{Vq笸���
�5��x!|�I�FpB��3,k��?v0X�\2O�E��Rr��x�!v�4�2H+?�)��oB��d�o�v�qjEB�R���^�ԖNW�94#�nX��q!Y��ޞ�/�[�XP{o��j�tDb�l���t�[PY#�n`W�fmA>�n�����e��-���`���=Ԩx<6#�<�Np��S�5�}�_�|$z)}��R�􇚓k˚&���e�a�C��2�����\?��B�&%�a3���d��R�*��9��a�g�K�#��g �#'#��)J-UN?6[��
����0��&���J�W؏La&�E��:�o1XL}��J$4�1m�P5LВ}-���T#F��S�…�t���er�`�p%\�!��c���-(�p�,n�a�
�>+�|�ҕ(ş��Q[ࡉ�iV�Ԁc������
lVE�Q����dhp���b-��7�R��
�+�cH��G���D������nE�E{ T{rf�p�aq�.�H���x)�'�i�a�8=�#�h�u:���rd�;F@ �'D_3�S�RD�D�E�����xhI�}]�4�Gi_%_5���A�
�gk��@g&�p�����h_5�w��>���-:�-/0�vO�\0A,�KR�ָ5)�r��"ήm\�,"6&
TQp���[
D�Q�K��]�o���(A#T���#���"].T��q�]t9O�����(d�m��Q�,�����.A��k��M)
��=JȗD�<*p�i.���ň�w��b��&E�Mٱ^;M�:p	h^�j9��]Q�N�{�߹]�L
U3�fmT8���\cܙ�<�xt�
�$����d����Uw��$
����|�ڋ�M��M�q�~�^k�u`��4Y4���/���躦�M.x$#��)Z5��%�<�8�Jr�)���4���ϡU�1el/������Ԃ��<�e��l���T4	�y�;0�.W���S�a��x���z�&p��f�ZBm��19����H�y+�+���W?:�>�er"A�J��K`�y��g���}m��=��Y{�D��m�C�ؑ$�ۤ{�$��6.o�-���9p�P��=>����m`C�:u�5w?�sO��٤؎��;_	}�0�h���-�_����L�J<�S4�V�{�w�uKk.j�m(�K�ܐ��O�����$)�D.Pǁ��/�I��$�����ZV%z�!4f�_	�ІVi��U2t�Z����(Df���H(���3}�?��;U��%ۉH�*A� �H�kj]�p��Y��/��hU$���{���X�'$*�%=�9�h(̫
h�!D��$^�����b�2`��[�k����0�����4;8nװw�J���j�,�B�{���W�3�i\7���
qO �5vYlQi?)�����x�2��:��J�6�>u]��
X!���7���{#�ְ,¼�YQ��"M <������)��($��
F��6_����B�q'�p2JR��}�V��&��Z�6�;�g)�n���}<��bEuʊr�η�=)�*e�;1�
l�הr-�o���z}׌Q�E�I���g^�[>k��fi�Y��n��Ր�2��H�&���(z�坢�nj��(=1+GR5t��j�/왧��CMz�;5{l/��ū!/K����@#�kЌ�W�{if��̇��a׌q�)S� �~+
uK�àJ��N��Y}�wU��f�ǧ���Aw��{�i��l��^�ʑd�wܟT��K�i�Mq%?���[^��,)����ݓ���z-�H�Y:R+(LVZ�T�t�w\	�!�K_�F<���"ލ��'���10u�W�k���av�����={ �<V%���U����Z��P"z�J��J��2r'}���������#Y�~u�ʷ=.Y|Soj�o:��m0Nւ�Z��E�G���A�W�
�����˔#�X��$�����	P;BT���&+1r��QCY���mo�8�R$�i�EB�
��Tn%K^h���ʤ���=�����T	QV*�`�1��Z3=�{�θ1�?	_�^
v'hؓ�6lq�#V�[(���}��}"�R*W��$�[��c(�
@�Y`*��g�%\KPâ�L���DCo�ed��i���S�ݗ�㾝6޷�ВM����:��:��j�7���@�S��!X�d�j2;�`v�i�)3�{O�^���#U�L�žn!��x�k�;��19!Y�y���x`��`IN�D8���<%/x_��bH

������m�)�}�&࠶��,��	��.F#����U.�*��P��ZP"[-�KPs]ļ�6z(�^` 
#t
�$I�&_!@;h���1^$����9_e8�%w��ޜs�S����+}"ӑ"�����tlp�q�3�hoKnZoz �I\�k�u �(Љ��H�(�	GJ:��!#�FDb4&G&�|�__�?��7���vm�[9A�5�K)��<T� ��ɫ�:)hߎ~9�bU����%wO���_-D]0�=�b+�6D��)I~���L�JZ{j�ġ�Ȓ��S�O�>7�(�����<%��O!P@���'�����!@ӀV��A	>Y���]|gEs,����H�)�E��4p���س�]v\����I�֥��
�7QpYt��iDB�|�Hӹ�7���G]�vb:мZDd
e���S�U� ��D�7?�7_���Fn�Xۅd�Ωo����w�H���3W��>b5���4��Ur�빥�� ���,ZnA}/7`��c�P*�MטZR��,~%˞�2]$XE�(�����>E�G_�E�o������0�ճ1Q���ov�{<�g((۟�aGB��0܊�����yGC�F�(�J��Sq�c_ta��WX�}��D�=�>�P3�bw�Ȫ��AT��-�#N,��[���^���
u�$�K@8��9�,R����[@c����I�z0!��aǴ�[D'�b͒��uxY�Or�`<:�,|���&_��1@� �b��l��<��Hƾ2��K�j(��f�]Oѕ�����$�o1���[�&^��u�˨W�Ȩ<��f�h@Z�b��\�W����Sc�����'������$�i���h�j����H��	��l�s��a�$^�W��-�A� gh����ٳ����0�F�I׍bx�'%�� 4����Īk�Yдz�	�
����K���ʧ�-k�|����=4��@�����|�BO��z��NC��=~|q���M=�jPڙxx���x���\v��<�ZI_9L����)kD�#��������>o�ϲ�
��]�nO�3�iY8di��9b��5�ZwA{CC�!�xW��l�$�\�&��C�s�D�Q:yْh=�IN�`%���544}W���|w��9�!2�ب�(�W�@y߷���**ػ�C	���yE�O��uc1OkC͗��G87@�-���d"Ifi�	���K�J$�fCV/@�!��9�6�E�[�B��
:΍�Ѱ�x�9�4��h�r�.r��;9C ���@�6�u�0�)v:�	`ɅQ-��jd�2�e�C�ݳ
���
[F�)c�5�kn�/==J�����\��Mu�pilDZ23�\:��'�Y�F��~�<���J�)��v����F�=��B�R����������S3�蹷�X��*T"2��F���/��B�֨��^��KY�?�dWb���zwJw�����D9���6�W�~
�Jj��K��T$(�N����l�K6`�G��>�[6_ہ�j���q���)vY�m� LftC�*��
5�c	�ͪ�����S��I\�C�S}�1%gc��ȉ�[UU`$���������b�W�0��2��,� �
����_��n,�P��^�9[|�g�-�J��!]k	h�S��G�%P�z��
�>�ؠ��"�8�M�]��=���̔0��8�_T��� �΂Eॢ?��{�zvOW�$ѥ��kz���!�T��G,��qPֻ���w��`�j�+���)J��bql�&�jƮv�h�^�h/ɖT�ho��ni�q
,W�&K4�zAr;i�+9�%7d�	��y(���V_�Ӣ���>^�Q0��/���\w�q����y������H�"]0�֥���	o?�.��j����a��Qv8
/;�㷎Z�7�
C�[�]��T���V�:�îQ�uX0��1*
��f^l��J�.tdžT�Vf�7��K�{�[=�(��)�S�Z���7l�#Fb4���dSɆE��k��������6��9��M�;f��D�힋-��\�5͡O��%{��\�u�C���3' �-%��n���C�'���V���%���8�QM��`����E \�y�K*%�R�a�`��
k��eOޚC-��`2C{�NU����l�/!l����+�sd�]�{W�|�<9���l�
ė��M8�F(��n!p��s)e�����aTU�	d�g`(t��N]+[��<�cZ$h~�4Yk*ف/e���C7l\]���־�L�:��q�{��at�:����9��⪎�@^Ffk���9J��$پ����k�Ѝ��iI�"�1z�O�E�%^�	�Si�T�5�z�ODf�G���z�ֲZ�YB#q6�cAP��E|���I�:�J�<V]���)-�#Ų���(V���/�ba�+m��N�L�З)�cO4�#���Lc����\�h��
�;.�Z����ߎ���0?C;D�嘿��Y)���nx�4�j���c#4�OM��jU`<z�xu=�^?�<ߡ���Q��j1]H�.����"�l_AfxH�n_"��8_����cqz*_֞m'*����|ڕw�Fʚ����B+s�9�����($�j�R�>.��:���ڈ����ǀ���RS��2ZP�(�Ut�o�V�WS#*��t�f͘�j�v)�fIU\�497��b�H�P��$d+�VPOaoA���
�s�}�L*-찳����Y�x�s��իt��B]\?��V�����-����&F)*v�G��
O��yL+G-�����5!r[�ر�J%#Ւ�/��"��"
ד�	�-H�Y��6&�RH�&,2
�\Dž�#�$ȰMb��EE&qcqo��ޕd&g�u<=Q��r��U�=ϴO�T�ך��Rh����������`U��Ւ��d�����ړ��1����s�dc�ݔ�j6��)nY�b=J��D7���g�KPFç1��;n��n�������C$��-�4�l���ޕ�-TP�Y��c��5xHX����kL�H��Nj��8�`3������jx�~�M���ľ]�N�a�4������k�Ps�v-�3�	j9
G
�(7�ؠ|�3�9r������_6��Bg-�ZSǥH��n `���L����
�* ��
U��ZfN�@�pj����K��4�0����6�,�S��yj�ߟBSk�i%�g�fF�g7����`�S�p~�I!e��<�G�kMOm ����߾5�bJ��N�̬�\������HP�{�klZ-�����5�%K���hԛ�������6����M*aԬ���iʥ~^$l���/8��J����x͵c�}M̥��*���h���h(d��>^T{j$�b�,�#�.j�ٍiM�aأ���:�8'�Sm,2f���¡L"N�hޡ.�i]�k�(�-ƭ�G�B�ADJRx�xC�٢$��{i8��}�(���6p�|A�El���'��}�>�ʇ�g�Zb�S�
�R�`�.sN
G>��~��<�G�q�!ZS>\B��'��1)?���!�tZ����д�F�k�����5�ߒ�:C ����]��Gӗ`6_�/֗͞���"7ɇ�Z��0m
��Mm`�:Q��D�؉R��dh��|���yZ��=h��J���E������#|@ �]f� Kr��e�jX"�#��$�]�g�S�fwanFd���~�	��;��ޙk*�b�T��Pa�����[l�9�"�A���%�`F~���&�+��Nf�5�E��JvU�ί�n��.)����6&1a�k�U�%ac��؋/��{Z̓C�� ]V�"��W�(�bA����o�*�?�=��)�P����&i����	Q_���+S�J�8�4(Eu�4���@�-�������x(CT��$�� ���~���K	Eّఖ�0C��t��:������ͺM���d����I_���{f��PF��ݺ��Aď�����ɕ��\�(�'<!F��,��	)�m{ҭA0@����
!y� �IO-�%Ԣ�h/��P��+wUEY*4ڡǖlBG3n�C��ɉ���qL�D���Q�#� ��k�WG���g�������R���;r���̶�Z��;Ά���+��2��et�+�F�'{��
݈�����J�X#|j�㔌J�P���Wa'.^�[��=>$@�)��	}�}S�o����b�Z�<�F��.*1�K���$Ո����</�[ҙ��=���
�6[�.�,M��z�6]�ֻB���c�P��}�M�x��Jk;���oB��Dy�N�eċ�Y	G�!+���7�=��@�	p�pŹy�va�<���
i����󖴶%5S�����G��|/i[��ǰ��\��Q��1�,�����S�aЩ%M{N��ȇ0j��wt����b���{�ʢ�*AW���ظ���[��(��j!{�FΥcBˈ`>�F����L�5�>��[J`�t<��W:f���S�ZE�K00�D���F���u����B�Alj<�tC�҄��b���Mo���F����%�#ɣA�c�>��_,��SpҒ-�.��ӷ��A�����h�l״{f��]2�Z�/��,]��)���T�g$��LE�ܩ��G�e�Yz&ªk��� _��;$�#W�'	OnBa��C��=��^v0w��gU����Py���L��n���N�,��!���>�j��� M���*\�:1<��@{��-=�'��W���+�F�U|���5��Y��k<K���zf!��Y98@ĩ��j訤�kf��b��S�"���{t�r'�H;Zr����)��	p-��!m/�o�ĺ��d;Ԙ�!���eS/����o�/�4�mbj�2�Hi�3�#]p�f4���µdȳ:ZHҩ��p��e����~t��\-���[����t��/P��^V�4����C	2�P?^�1����qt����^��\D' ��~w�s��~�L�1l@P�KaŶ1��!�2#�?�Fx��8b�h�1W%+��"�T����IX��nl��[���:%&m$�
jI2���Ep�R�3�[���)yOU{��S�>����1
�Y�p_�P	e
KF���<�cM���.k{*��,X��j����j\%m�x�#��"�:�g�M��j��_���H����$ZLqd�a��1�⑋�TA�FJఊ� �P�hs�,ЮW�F6JU.�300����~hyǣF���(Z��[��r��Fu���\cE5��<T�o��:c�0�c-e{��)_�8Q[���W)]U��T`?�̕��֐�� �a'�T���uD^��������e�^d<(�SжI�%��k0�Z��{j?Z�ⰲ�6
����m+��I�,����>�R��蜚�,s�;aZ�K�	5`���cW�%��ޤ���sx-�O��Z�M�˧n?ܘ\J�qק�A�s0�@�#y��m�"Cm���jSѾ�d���T���
�Ŵ�k,!,�`��z	#y�Q�z�+-�-���D.|$C��2�P��^�q	�����)�;}6	RzI�uٛ�*�ꏭ�2xA1}8�Z��l��B�u;,�rI׋9yE3'0�E���7"'jxD��{E<��#ӭ����`�4V��@s?�f
�*tT�VJmٸ;��
<���O�9ܸn�*>�_���ZV�X�
K��`0��A��7Ơ�_B��_���_��t���߳��{c=l��Ъ�Y�K��r��uh��}��3�3���H��Ѕ�p��'K���3E�:o*�95���k2���V˞+x�����u����bӗ�M�]��j����w�0���
�5�Z���#���PC`J*_WO��
�,b�H����+��4��D$��!.n�P	�����[ϳ��O
Q���JF�X�.�p&�9�I�d�宙<�T��s�#C�YI�rz�H�J��!�ph��"�5�+-'�}<�	���6�q�D�n��o�3���yA�>$��!VL�f��h�S:��
|�i�myvz�q��
�d$�DЅFc=[�`�@wd
:4�?|��7BNG��#������S�W;5����;!{~����T�Î�)�i�q�'�9#�I�sBo�o�w���*үx$��&�
v�3�1�GR��}��0EI�mQ�ZUr�"�Uu*�/##��/�=�� ���̆f�Q�0SiIKh`��7�j�#ȳIZ$4��Qa�ʼn�ZlQV��F����Vy~��D�d_@�@ީ��*ɐָ�C�m�hl�2�~��b�W#
6�Ι�S&"����}9�.�u�Y.o�m�^"d�rj�u��߹;֝7�4�������H�\����g��<j��KVp�&ʻ��2j���^n�x���;�2�!��P��{����
�}�oN&n˸�g즘%3a�D`ܘ�{Tu���u5[>��@��Opk��H`��4�&�I����Ҏ�M���q�H�:#����L�H�y\�,�#l���Ե�cO��өk�4�t^$�ݵ�Lp� ���(�B��*�֨1��弒�~M�6R|u�Q
�6�恫%;>%5�b߉��� g/��vG�����)�qmL�;�)�g�f6����ŊD~I�=>9��Ҷr�/�e�zACj�5����s�\�3b���$�H�Wp~?+�����.M�3:�`8t�ߪ��-�qJ�P8�_��b^�ۊ�{͟��:�$#��T��5f<�'l�1�=s�~��O�5OW�>] �o�E]�=eǔt�)!u�s��͡6'�II�P�a�';�_%-�@_D�D���P�'�}�f��1������7bOA>9�Ŝ�P�0.A��L��)�U�vV'`/��N��7ymྑ���]#��#�u|L!�ȝ�|G�<�duVt%��	iY���^O�Y��� �	M��*�6�N:���~�)w2l\N�I��p(!e�ڽ��Q��u�mV;�C�q�2��
+�b���!w<�����|��o0��=F�
���t�P��/�q�����XJ^�q_��Kf��U�#`�g8�t������+�X9�u6�P��\��L��⴪�EMtP�:;:0�D=ǡ�*.3VO� �ZE[4R�N�[���.�_��lk��s�,A���l��)����+�	ŭBH�@>U�<_��iݞ�1�(s�*��ʕ6�Z��N�J�*>�m��x�BX���#S��� �~hs�)I�e�Q��e�詡��Ǫ=�=�
��S���LZWK-�!VT�����*sQ�i>�O� �̨�d��.7U	� Ϩ^&-��0�n�s���_�a��R\�QQK@���FD���4Gk�`�Ax��u�.C;`���5��+���Z{����dHV��#Ɗ�v����İӡ��9�������>T|4͆��f��NS��ӝ^�t<+[͆,�ܺ��]z��ջ�
m)�=��Rp#b�Z�D�<�@�e�:0V4��z��d]0µ�)�k�_k}NJK;<�G�S7�D�t{�+mF��B�����K^_�s`�����Ы�7�59T�t#
�8ly>�=�w���s�"�9>����a�$^�כ��z��`բ�%�r8p�m4��ɴ"�v�� ��q���4-��6�4v�(�kB1%��}6�}�:��Q��I���*�Y�ܟ��ijT�Q}����E��ϼ���)�����AZK��^�G4�/]G�Y�׈�$s���6�}����#bXIr�(��?JHCq��/%#�Ix2n��J�����ɾ�.�4�/�lz<՛v�����ư�
�nn�8��[��jhs��E�
��a�^�h=u�}0�]���,nwAgcCcy�Ns{�e�Mژ�
�u�V���.�l(�C)Y=��aa1n�"|(�U\E�L�e�v`�[&����JM���@`���g�؂a��|�Z�e�P4�}�MP�ߔ?� �P�FJ,>#t���Ĥ_`�V%l,�f��Cd$kD��*�2z������W�H�������梁O���ပـ�����۰I���b�ׄ?���}�B�3#?�����k��'����1�&x��8�f�|~�-�83��W����y��vّ��Gh}�:.�C���H��k�J����Ȃl"
R��l_����
V�+��*�ajo�~��4�C,��ꪻ��HL���]�/τ����kA��;t�i�"pd��O
^gx|��rvL.�Y�ac�Kq�,���rGxX�T5A��L63�pr���7t*�V���GDt��3����^������G[2�UJ8� ֤Ӌ�-S���Cu��^�Y��x��nyh��ŽKZ5���ep���^r�S4}R�k0�!�'�&U��7@�N� ���䒢;��Q5���Un�|�j��O�����.%d�+�]
��=�L�=��y3N�*Ȧ�S����z)��,�	��Z3�n������y�w��i'8hkI����͆yj�Չ�y�"���w����M���[$��iȺa�C�!�:.�U�~��]�wk}�dhl���u�	��k��m��ݎ��b���G@�D���p��0C�d-bL�xQ�kRFH�W�-���np�U���ޒ4X��RC���њS·S��4��J�
!D�5���.0�f̜wB��>UIA��2x�k6\���o���5׹��P�	��8�����ƒ0��\\bx@p�,k�~���Q��e6$ӃF8�:#DQV���^�3�-(,OFF�fB@�? �����n4�f����/h�]P[���PT�s��⛩�-F�8^b��}�"c"<Ң���@���/=��Lj{�Q�\Z������]���o�UE��q;�V�x�y�q���f���6|�ʚ��ko����&눾��c�d~����#ˠj]�e�7l�OW�3�+�~��
��&�!h�U~w 4W乲$�o���s�|��p t�AY���a_���9�``��1��pe�L��mxL���^]��b���!-�X�Ne�r��=r~�<�<�x�p�&�c�x9����D�������S���8�58A$�"��1G��BH��pll*�^��n�8*�&������_����ux��:a��4_\�����1�'[
Zk@�z��}�G!}g����H���Y�no�
���Ab��?����p��u-�r\�A����_�xZ<iC��[�Ɯ�]���kW�&/V�XClXX�dus%x��3�]���\z0JZeGo#���;�`���'T��D~&GZ5Kb%����wi����B����'M�`�-}����ݩ����)��u��IZ�����INj�K��_�>/h�h�D�S�Տ/�?�#;��t�XЬU�6ZOT�l��[ﳻ"5�MG��-%:�Z��`'Y%���
21�tb���g�.�c-KK��z���AOm�J��Ȫ�[w�X���|��Z���ml�/���[����*�M&�9�	;�(��h���XHkQ���T��H+�W�t�����
IcZ�3�hJ�SH	�M��ğ�\%Bh< �ta@�!�������c*���,���N6P�(�f-֦ÌB�DML�)��Y�0� �Ʉ" %��Ť�K�L�xT���A�:���6|�T�ZO�x:�
m}K ��:�*���:_i�GLmKsI.fx��\}�S~Dz���������y�tj����ߦz,�ߡiՁٴ�6�4�� l��Q�UCݜ��ۤ?�~щ?�w���%h�ty%b�ѲW���-��}:;={���<��|:n��~�q������ef?a�"�����|�[�7U������k���:�q�a]����Ŷ��O�WX�Wd�੒��+�Nw��v�8dlKq~�A������"��(GA��,��+�Ɂ�J�67����1�E��'_Ӳz��4���^��Ҟ)�W�GOm�e��KKwv����O�bxš9?W�J��WgR��\�sN��Q����4E
0U�\�9R/�R�����i:�G�l�	d��qP�xhZ�µ܊$�I�΄����f�`P7�+t�2���P��X�c�RV_:��۾$��z��U�q,���<R�k�},�y¦�[*y�?�<nT�w=�A�/�h��5���$�>�2
Uʚ�y�i&�(��E�}�h�+D�91y�ߟ�o�ޗPp�CW�7��k
>���D	-:�*ӎ4�AD�%>�ڞ앞ڀA��k�~��y���i�o=��A@"@��������@H�ޝ ���RB3��-�~�%'��=��c�o
�qh����W�Ț���{�j�Ͱ�n�0y����@���>�V���rq
n�[���蒄�q�TZ�KoY_�
�������ۮԤ�L?qih�a��s>�0��s���c�J!V����<q\���`/����D�qyq�B�C�Q���%��B��V���Ԭ�b���n�?-2��.#����|Q�w�@e�M�1?T��hx�*wՇ8ۡ��ej< 5�O�+%���mN�-D���%)��a"����GI���f�Q�bU��$y�=�� �B���&E����S͇�$/�~�Ni!��{j�@�	^}�FY#b�&G�;q��n-ä�ҵ��
Z��2�L��_�ׂ��G͞��OC��q��!Q�S}�gͺ�]	��p�GsSP[��?�G��EM-K�$�y���}���v�nhYy"E�J�#�ExF`�1�|�V=&T��m�;�Ư�y�����:�췘�k��j[�z�����pMVF����p�o^n�T���Z�|	� [�*_��u��+�Q�����QK��-��=��YyLTĘ-��^��O��xR"��/E�W6�y��a&"
�P]�O>1ymX\�2�v�s���c�����5�ה��U�IP"Ɵ�誛�:���`,��ʷT��\t�R:�7i��Y2�o6q����O�2TO���c�BQB�~!�)�S�u�`��8����`��r5|�������ݩ���q���w���?���IJʞ�3���b9vbF��@����D��5�<������^�vc6H�h-�܁3G�q�d��Xi+�]�> dA��s��T��M�{a� �E�TM�G:V��ᐴ�my��T�ᄇZ�ۯ�ö������U��<�����"4q��,��:o��o���ka
,,�%Ҥ�OD>�1�&j�]B���i�#���s�Q�+D��'/��@��g�^�^r����F�
�%�!m��6�;V��K�rN�/�-=��
~��X�(�Y1E��p��1���P����h�z�*q�쐚�
Ŭ�I�E�.If3�iY�ѹ�Z[̅Lǁ"j?�=��eQEu���f+�F��{�&P�?]�Օ�٬�J7lE(KUV/5{�:��7�]	u��	�rW��i{���O��>��{�W4y(��=*��%'���?����e��/��n�W��w��2�۷�1�R@�uC(�j:=q[J���
\=��A���puAE�[ޞBs'���[p��׎�}U+�3W�9潊��,�$��N��3S��(5��+B��p~�{R�u^��\"�.!�Y���|���.s��S���tO�`9`}����l��x��@��y�����m�:�׾Z���5_��mA�5t^� =FsP�]��5I��\x��y���4�Y�P����ָwmj�wSP���q�lQ��cS�!����v�Q�6SG�(��ʏ�
��6Zj+�K�j\:0�2�CD4l@y����WK�ͥ�/���
��Ă��ߌ}��i<9�a)ٲ7�-�u�P"ñؖ�;�;�.�i������(��|1@����*
_�H��C��,J�N��A#u�Уˇ��A�c����g�P�4���5������e����$
���~�J?�U��)�I�)�&���u�"O�ÄDo����_/>={�9
e��lW�&�J�2�E/np��Q)�������_rhç��iR��!	o�H���>ƺ��84C�X�UF���
�Ɯ���mq���R?�j�vR�&�xdR;Q#���g��dh�]	c�Jt�Gc�9yz�,0G�JE��lz��{�]Kf��3!q&�%3—�.9ƨ�`�A *z�n�|�ڙ�d
�T��ñ	���x�39�e���l����w�B2p4Cי$����w���^��6�j�Яn�䎜�5��t�~�_�6"�u�@��yz}�^�Fr(ىʈ	*�
,�;¾�/��a�6�1�n2d�H6@<9	��"��h�G6�m�{������.�nSrT#�*-(��m��Q<}�����1��?Imm�{�����Pȶ��������	>	�w����hS����� ��a�_f2
�����Y����_-䳂Fh�D�+><��z���!_���1�������$U��i�ʳ+���P�u��)��"�H���ڶ�١�u6�Bk.~��cM�ķlӎ�b����c}��L)���B�� ��P�\r�n!�ԦN��,E� ?S��x�e�`�C;��n���=4E#ӻ����,�� ��IϬ��d@4DZ)B0�iï�g?>����	?�K���mY7��/��.�*�4a��XV���9D1p�<�F�h�i��<�)����1�s7ZL��b<����̙�oem�8�����b0y��A�|
�m*��eB���q=
�{
�)y�,"_�7�4u!Y�������ڇ�w��C�����TP���|@嗼�
~����όa W�����JW��[D���U��W�h�}�5�����G`mρ�1fab���9��I�`S�P]{%>������V��T������SoA�b�:%s�`�]"�-ʼn����b�p�.�c��.2��
ÛȐ
���,U���o��,K`U��	��𽟀�}�,]��MB",�3։�H��/16�d3�º7oǗ�m:W�t��/Я����V��@�A�k��Di��3��r�M&�\��#��q�j&��d�)�m��0�Yr�0������n���{�J�(�	aU͗-Ol+���iFހ��b��Tr����X�w�Vl����@~z�"�ͭ�mþ�ĵ8���a
=�q�:��Πy��-'3I�u�憊�
n��b�Ӕ"z�.-WKI[�*%<�a^��gj��� �l�Ac��B�
�"�Xŝʢ�i�Z���zj�"Q��ź�Q�j��H[t�?���դijm�6�I��0����\���0���J�w�%�A�b�؞���Y�o�d�y�
7��z?,wk%覌T�!<t�.�Ŋt��,�M\׿>M�ǭ����Qn��{��4!���2z�&�|v���o���>~�>^���S������������dz�?�*���Dj)���s����m���6kݾ|V�����/��x�%/��&)�9���W���vw2T��1�)tD�VVRC����}@��U�ߒ'#�.�&p'�CCI�=��`c�g�Z��4�E%��7I��ott�磳�7'��7�.��g�o��U?3�ar��;�NB�l�2#QS�c�qG�zԺ���4h�`ԫCUY�<C�[9zO�2S�G�|�V����aM\��0K84-˚��
�V*|[��1�"'����'���*�ϩߏ2v��©sJU3�×��]j�������7�\�M�����C�H��O>2�v�Zæ!34U�HgjxO��"<���>�YE�{%-+Hu��
,�{H�01�2�p��v�D�����f��a��|�ue�3���\�X�Z�)8r��7^�m��XJ������99���Θ��S�W[@�r�n�R�*]=i�F�z�GDQ9�$��yK?�FX�S�����!���Y�%����訿�r���W��PW����`;����,�"j�=��+MG]�쑻D;?੶�R���u��m���5���b�z$��%
ܘ��ax��s[�Y��`����bp�J�&[���܎+��"�g7z��;S��(�$m&��T�댼mԛ*�hX�&�ꯀ@���撡����4�
�sg7t{o�����J����Ta0�MRSq|��:��=#{6�4����h*c��
l�SM��4��M����'�XȮ;�vg8"c�&�q##��_.,o/-���4�8�y�
�X���x1�uj�`�j��]�ޭ)�5KE�z��wpҽ�=Hc���5��7?�� 8rT&��������%U|v�6���k2~w�/_W�O:*ny�hޕ�=�q�1���-�c��!L�BzP܃2��H�o�:r�&_�9{��a�3a�"�Gst�ʞ�u��Z�L~�!�SpR����o..��)
n�"5��	�_�*��b���O�~�]��Q�)���;NH,�ɲ�v���Г��q��tUo�Rww}�KFl�9�H��]���;�4ţ�q֩�Ab"$m��wl�l���!�C=J��������6���7@ͫ{�1��d-ڐ3"�-��|ף�c~���g ��ۣ]�"�p?��@4[�%k+��]�:Y2��J���^�7�����Y�d��]�0���:r�ɭ�մ!��گ�t�Xp	Q)�W˜l�B�42V�S��(��G�8�C�{fW}�
:�BM���6Y�?i�5u�o�WG�28#�ws��,������L���6�3'l!�=�?�_��n-��uJ�
�)؀Q��ГÈ� �!]���2��3�I\���ad��.�:eKVq��ғ�F�L�}JxN�W�4ER1�ފg���U���k����@b�4�Ί�wS���L��.T�B:��W�C3O����'��"��ǧp�pN龤.qڊ���é��>�H�".p�]/���vǁ�
0M�;�1�:���ƃ�1U�TZ�)�72��:A�}��ӎF�X�!0�͆n-�?`T],�M�-���_��D��P'b�\
F�zڸkI�Z�O&��i=mؙX�f]Kў%�o�>��i�^=�ױV�M�i}K�:���RtdI�O�h2mf��d�aC�p�\y�o��<x�݆�i���i̊�ςe`>��ޤ�|�����M-R�?PK١�RP�V�U�litespeed-cache-en_GB.moUT	��}`��}`ux�����}|T���`{6�goJ5AQD@ � �@BSQ7�7ɚm��M( E��R�PM��"� U:�Y�b���ܲ�����/��f�=��̙3gΜs�>��t�-���\@pb]�����o]=���9�����`3�u�M�x��@����!x���I�^��i���o����7�	&x:�~�+#&h���@}?��{2�=��	O�
�^��	^Lp�<�olA0���M� X��|�W|�`&�?v!X�
9���#x#�Z�	�'8�������Jѯ-O#�� ����c�}A�w
��	^D���	���H�u�}�W�6��|���W����<����m>L0I�2��w���&x3��'lB�Y��~�[�s�a�g�	n�=/�r��_f�=�`G���Np`�\O�r����W;�g<���(�ώ?ˢ���(�+��$x��c��
{�о[z��1�kb�[J��7���@���h�w �q5��s	^Ip7AbO͸�K�&�L����q��8�_~��Ѯ75��8�}|{���Z
/4�W�L��Z�ۙ=5>`��I��h34�I��r�<��g�~��h�O_3�������E�%@��	�o����tOB~ܘ~)����X�߽O�B�G���_����'ؤ|2���Y��*G{>'x�?���Tx<��T��
�7D����n��Z��{� K�x��6������	v&x@�_PI2�`��2?T��T"�s����J��J��`���W�`����ۚ�����r�����`\��F}'�f~�o��:���������!Z�yXr;�Z�߽�u�Մ��=�@y��@���^v߁v}��߁qq�P�¡hgˡ�C�=��~7�*�^M��P�١��CQ���f�9��a�+�^��d�z�i��0��w�������pk��C~�6|��p�s����>2�q���w�ݝ��N�s2�V<�ļ���W�H�f��w��vU����v/�q�l����k������# /O	z�3�/�z�G"k��#A�H�W6|r�H�ޑ��U#���G��iz�(��(���(�;�{�(ȱ�
	�G�Og�¸YE���(�w	��G���j4��h��ѠӉw���w��wA�������B��1�Ol�3jʛ���ǀ���/�>�V�1c��	�0��b�K��׎n�t;���E�k�ü�=雍�[l�Arh�<f<�5w<�l<ڻ��5,�ϵ&��M��l:�h7�M@=Q��	����t���M��LD�uѯ��a���$�8	�����&!��Ih�I�϶Ih߾I(��$��6	|�y7�y��!_{4y�!X�t��ix2ꛪp�d��w2���ɨ����IS0�N�xl:�x��A��{�ȟi��l
����%S!Lżx�T�6�s�_�y>���w�`^ku/�{Ѿ����}N���s���4�7���>
�+���:O�z<���N�<�1
�zw�u�t����7m�#<o:��ۦ�.�N�Y3���t��3��hO������ǐ*�g`\=��v�@{ޛ�;x>i&�[o&�7�	y�i&��O�=�i&��#��L�a+fb^\3��g3�?���x1�C{���a>�W�_��Y�+Ϙ
�2`6�ɬِ'��C��̸|q�`���9h��9�	��<�?�|�	�����6���8��A�=�a�����A�����������E�>l.����SsA�����sX�ՙ�򯙇�Ӄ�u,�_K��6��yS߿���N��p>��8��|�㟏z��W�8|�Q���w�C���
@�w]~����૵0>���[��~�#h�^�>��������W�B��y!�U�x�i�����G(|j!�}�`���k�"�d�ײE�{�!���P�������?�|=
|�~��{z��(�|ڣ�g֣(w��h�3��>[���<�u��	��x^'H,�y�1��q��x����N�?}j��g��h���W�;�C��q��Hw���O@On���	�' z�x�	��7��{x8�I�–O��;���4��'!oO_�u�1�瓋�}���_��w����%��%�O;�`^:�x=q)���R�('������R�k�R���R��2ҝ��e�ߩ��-W��{�r�3���;��j�����/�|A�nֳ��|
���S*����S��O��g����+@�+V ]�(��
��k�޴t��{�
�+ �i��+ ��Y��X~9a�Χ
/Y����6+���+Q~h%�o���Z	<.Y���xw%�p%��J��UH�u��
釮B�#Wa|�_{�=���{W���W�?�]�]
>�|5�o\���ՠ�������Ú����~��>O��ʧ��)O�?
��Ә�~}�o��*��^�k
�3k
��נ_4�k�Ϭ�|�x
�e�g0���֙�?{��Ϡ?k1n�\��k1�/Y������ע�Oւ�_�����8�YZ�1ޞ���,ڷ�Y���]3��m��[����s�{�C�ǯC�g�]����N��u�?��=z���:�ɒu(w�ƿ��;��8�y�����||?�y����A�W�G=5׃��[�qTo��zЧ�z�Y�z�z��ף�����c-Y��k�z��S-����c7���l�l��7�������/�`/���>�t�p#�홲��ȷN�o_�����	�}�̇��y|���7v���}��	xر	xس	�yu����Mh�͛�o/l���͠W��P_����o{	r0s��
o����-�'��N���hG���o_�m?���}I���s�V�k�V�o�V���A^��:<�
t۰
�{y�Η�P���/5���S�c~����oG�������~�v�3o;�yz;�؎������;q�M�ි���h�J�i�yd���;��;���N���;!o��	�x_�\��e�a��XW�z��}/��w!��]hg�]�O�.�#����zM݅q8k��y�ڣw�=z�����W����ݐe�ѿ��Q�l}i�ʁݠǑ�hǟ��w�A�U{P_���0�x�r��=���=ȿ����@�޼�f�^��{ўm{����(�}��?��?m��=��onه�8w��}�ן�P�i�1_�ߏ�tُ���G�
�܏�Lُv,؏v��|��~�g@9���п&�:h���qP��Aț�Ѯ�A�g�A�մ�����>p|񛆟p�=��ߍ�}�!��H}�p�x��9��o�!���A�r���
`�șq����+hw�W��<_��ܫ�'���tz
�^�`	��5��� G�}t��:�yt��:�9ofy�:������}�lz�)��
��71�.z��~o��|�M���71���:o�\{�ؤ��xv�w�ݲ��ƾ��7�m�c�۠��A�Mo��}r��w0�N~������y�~�;ȿ�ș��`}��[x����v���X���c��(g绐�Ǽ���=���n�������G��{��ya�X�?�>��?5���W��9���O|>z���;�y�@὇�����B��!��1�N���ч߿}<��#�qݏ@����>¸��#�ЏЮ9A�o���G����]�1����7&h0]>F�f~�m�|���X/�|���'����ѧ�)�Y�|�y��OA7�gD^��8�4��}��W}N2��L���Z����/`';�K��ˉ/���^~�x;�+С�Wj/'X3���W�7���_��g~��|�7��߀O�|���}�.��|��-�"�w��w�ÿC=�}:��=�}��૛���=���?���~��^��uƏ���#�~�|��#�?����	r��'�ID�ܟ0��v��3�SL�+��ԟ���"��_!W�
y�ӯ��:����/�
�}�7ğ�;ڙ�;���s�����?Pn�? '����x����O��W��/�dH}�	�@��{�}%��Y.���|F��_�R�P�<~^&�������Y%��EL��wSMԛqL�ȩ+��ҽB��G�c3d��z,�c�q&�r�$(�u�o&�� ��6�,_'��c�,/~�5��9~�q(�|��y|d|m!��� �x�ߕ�X������zn;!C�Ay�$��~���=J���'ŮC���/�?�D�KOD{�d=���w�ѯ���J	�|4�D�g݉����
A��N:	��d~�� ���"(r� ��d9t��"����d~�G���7y�>��<n!��=��.�d��A��۟
��;�v*ڹ�T���
�8�?�V�ȡ�k��_�/��~
'��zA�k�C���Z�۷Y.^x�i�i�w�iȿ�4��i��1�#���
N=�!�M��1Vd��qF��A���}�g��Ҍ �O�	���?]�D=�g�A�,w�dy�� ϯ���A^7�xV��i�o��~B��g�_'�
~[y6����s@�1��	�~ڹ"���q=�\�gӹh��_'���;x�>��;�]q�`�y��.M��y�׻��?�>�����y�#���1n柏��|��i���ո垤�����|y�9��h|����^�4����"����N��Ͼ�_�p�Eh�ڋ�/[�����|���ԋ1>ν��x1�{� 룋�L/ʿЋ�y���^�]+/�RH��^��k/��i�1no%�Ĭڐ/��y�ڐ;��d�pUȋay~�\|�x���:��A?���~�Zt�y	��K �Z]���d�^���ݗ�oϹ��_��_�����L����y��٥૶u!��'�z�!��ouf=�gB=��4����X���z�Oj��#y��[�>��}?��ٙ
пk���d����{Q��{��gwj|U4�j|>�r{_C�����!�z\#��F�[�/�����҂F���F��Ǎ0O�s�'�2���Po��ЏA��A����2d��:K��¸ٜ�؞�rve���B��d?_g�]g6F|�Ơ{vc�m
�Uا1���xHh���1�k����%��͍���X�A��Ȇ<9%�v5�F|k
�
<���|S�
�����%����[Z5ɐ�״&��r���@n|�|w��[u/G}9�����C��^>Yy9�sLS��ԦhO���_[4�$(��~S��R�Φ����fx���r�fh��0��T8�操���f��'^�y�� ��+@�yW//]���
�wڕhG�+���W�_�+��AWӯ�>���l�~���^���4Ǹ�t[����t���}�9�[s���?_�r�\��u�
r |�ᜫЏϮ�Ϻ��|5�U|5�˻�Fy\��x9��ՠ¯l�qѩ�[����cx�������}߮��o����=��w�5�:^�qz�5h�d��X{
���kK��ޖ�ߕ-�-�/��󱖐K�>��Zׂo.����Z�/z-�=�Zț�E{v]���k1�\�
���B�;Z��3Z�?�[�]kZ��B���8����S+���֠��ѯV�!/�[�}[#��5�
�F��Nn
z�k��Yk�ɳ���}���ߵV}�
�]�
�_���A�cm���m���@�-l���6��Cm0��#��:ס��	��v�u����k����-�ԭ-����r䩶�G[�wW�C���?�ۡ?�ۡ��4��v��큗�핏vj�~�k�|`{�s���=��Fҝ��^�_��~����Az3�J���&��[;�^�u^����!�г;�=;���tĸ�w>FtT}�#�YF����v^������M�9����	�:�s���O��G;#ߪ��׺�ȿ[���3�sr��.(�a��r}o��y�.�f��Y���%��o�2�vy.�;��\�fW�m��ʗ]�������ɮ�LJ��v���
�����)�#����%�C>̽r����'w���	��@7�-�c^��~ow��a�o����C�}���yh�=�~I�R�j�����ytz�A���㳴�f��O��wy���?������G>#������G;��/h�o�1�j�T��D{����T���
�D�ʞ�W�z��3	�}���7G4�����~�y�Ϟ����\��xx�ڻWÏd��
2����7B�,,�8y��Uo�[����No�E�>�o5��e�k�7C��&�E��~�o5��cd���u�q֝�܀�snD��܈��n���zM��Y��[o�p#�덠ө7�.�	�O�MHWv�q��}�^��&ȗ�n��<�Ww��@}}����`�?4�<9���y3��_
ϻ���f�!��{�f�{o?�����n_eނ�q:A������߿�?�V�&��n�܊|�[ѯ�[Q��[��9�/�k�
�bߡ�W-�2_�����}H����g��9EH_��\U���/�������������Y�z����.B=�k�_�ݙ~��4?��Џ��c��ۏ�?O��/���5Կ ��,�z=:m	`��J��@�O6�~��F��}��t�h���1 �4�ׯ����)Ő����^�����pt1�
A����Ѥ��K o�`�.)�����W�R��d)�ou)��V)�y)��|:7�y� ��?~D�gQ�sA�K�k�cnC�.�
嵸
x�'�V��пe��2�{���)C�e�oG�zD�Z�8)=�A��*������Dž�����/���à�O��a��NM7>�r�1�$�~5� �0�wF�:>�pv���@^�����K��5�w(�����c|�Qx�M˫�hE=WFA��Qйo����~g��b|����?Q���1��4�w��.%1��P
,��g{�=��5�q�@���w*\0�m���=x�b ��Iq�A�q��\�(���a�|8��|Ǽz$�~}��~��?�3!��2!/�M�w�M�3?1a/;?���H`܌H �����k�$����+����$��&���$��#�,C���{�hߙ嘗/)]{�c�����[ʁ��*0~/�P;I�W`�
��[���+P���������+Pn�A��?�v�Q8�	��?n�~� ���A�O�J�SP�zf%�Q��<��T	>�������JԳ���J���+1�;��f0��4��{0�Y2t���1���t��}
�=}�`���CC�燆�=����|�t;����,���}ƒ�c>lx���;0o\44C��:
��<\<��?�j�	�C���6v��A�)�Qߢ���Ϲr�ם�
�z��;՞{'��F�%#t�3B׫#��?,��m��#P��#P�O#п�Gb.��䑠�I�@�3F��(��l���(�K�Q��7
�sb�z�n�c��
}?��|��k4慳�����h��Fy=F�~7��<�6��v4�}h4�{�]�?�.��'߅~.�|��.���m6t1�@�,<�3�#c`��;V�c?~,�9s,�3,��;0�`,�ᑱj�~]2�D�qУ��C���ޗ���x~���8�󹾟;t�l<�q�x���x�=���ƣ�9��	���/��C�6�9a�_D����O��]>���	g�ND{.���]&���ৡ���џ�ў�&�o�����D�I�I�W�I(?0	�e�$�;g򯜄�lQxh�sx���$���9wc^��n�k��H��n�_�ݍu��w�����'e�!o�LF�^�����t2�u�����5�LA{�S��>�>;E����)�ǟ������Ο�q�u*�L�TԿJ��3�L����=h�4����=��N��$p/�2�^��܋}��E��N��i�<d�O�:~8
��7���3�[�~�f���f �Ž3@ϛg`�%f�~�d��Y3ў�31DgB�4�xz&ֱ;�}��4�tu�}��z�v�p�,���f����~�,�?�,�3|>m��Y��lș�gc}�e6���
�ڟ�a7ɹ?C��&����QΥs �́ܿg�����Eߛ>�"��8�ȳ�����Xǟ� ��"|ԃ�%�o=�y�؇~�CXW=�yq��/�]�Ø'+�>��a�ߏ�����s1����s�.>t;x�;�f�\�ksտb.�w��3�l���#�}�<�O��|3�������z�{�-���������	���o0O�{t{���{f��U�Bȥ���`w��~���}��Z�c�_��`'�d������yx�8�{t�8����o����7~z�O�'��ؓ���?��$�}�b��΋Qߝ���{#�'�����MK��ȅCKPO��:�/�y|)�j�R��w��]m�a�ݵt|s�1�1��/��(��k�C>��zU����B;G=���S����A�
�;��y� �[}�x}�
r��Ր��1~Z
�cu��A�x���h�ܧ���Oc|����Ч|
ʝ�r���ou�3���g��>���d-�^��-_���Z��>�����տ�E�?=���9��yϡ�C���:�W�:�[ݿ�V͞G��~����rj�zȋ��M6`|ܴ�t��g���- 7_�y����'0^Oو�K6�zy#���Fȋ��a#�mQ���VC6B�^��4���(���o���[����E�M�_�8z�E�'{�[�&ȋ��N�	�Ve���f�a�ўI��Lߌ~?�����7c>�c3�s�K�C���%�C%/��C^���@��rn�>[ �Vo�<�r�;~+���V���[1nߊr�n�l�t�6Х�6��A�p�sx���6����ໆ
�nG�˶C���~;�e;���v�믶c<�C��v ]��_����;�O'�D��v"�����N�߷��;��Q;A��;��,މ�p�ː�^���2恳vA��}�wa~�a�蹻�>��,�
�n�
�sx7��I{0�_�zW�=�gK���j���{!�{!/>�~��������{�q�~����c\ُ�x�m_������P���������A�o~�j}|�� �
�ܘxt~\�p��σ��;�~�q��͇Pn���!�u�!�[�q��}%Ó�ϩ��$�E���|�����P|#��~n&�x��t�0)~lM<�̀���τ���Nx���~��;��N"�3��O�����,?���O�rW��C/%�o
��~o�;�{ϭ��\
�S���VP�%#X;�c�y��%��F�R
���I��L�<�����⯢gbs�\��Ez����
��S�l
�A�AW���֍]�;�G�BZ���A������Q�b��;�~��

�A�-��d�ӥ�Ct̄�<������8�M�����,Js"=_Ae���5p��TKϫ�������O�o�p��ePإ�|@�`z*NS��
��_5�Bz_P��|����|,�G����7��yNp��z���=L�!���~_�;-3=!�^����A���އ3M�n-c�7(��7��T�_����\q%X[�t�|�Y�lI�����(ͳ��J�߳�Gq7i�^�f����-�Zh�}\4y����3G�w��j�����Φth����k|�~5虖����:�!�{&�1�ߝZ� ʟMi�����!և~�4myF*�4�d�s�Lyo��5�e*-Y<�#U�s-��P�Z���~��%����y\�ҍ`oJ;��4���Ǡy��^F�΢���Je}�s=_��'ؽ&�-��hj�ԣ�"��Q|#�w[Z�^��rn�o���]�=��Qw�k��q��q;�͠�c\|����<Aa�h�Gj଀G���R��b�M(��=7ղH��La�dy���f��6��땃�~���[��������Jחޏ�߿j��$Le(l���o虖���<9���+�ޥ����'�I�3�mĔ�{
�o��{�B���m,�'Ai��'��T*g�~b��陁�2~\�N��o�y�է�3pƨ��gZy��8JSL�T��Z��Y����(Os�MW�����f0�_L�'j�^��5�<�Gx�gT��\Ϸ��c��:_Z����T�=~
��_'����F�	��1�viځ��z��~W���Ĺ춮|�(,��
Q�7�޼�Oih9,�!�'��%J{"=�'uk��������r�;���!�K(�ʳ�~Ө�r>'Q�݌Om�/�!z��ڮ���5J���\�`������d-�e�Gj��F��>��iTG��^��蹃�� ��w�;�`.��_M
���Vh:^��Z�o^�|�q��2q>�+��?��)�
��gzoG�M)��L��z�u$��;kXMr?����#�+�1��a��ò^�Y��s{�w-=M�'�٦є��5pт�VC�!���q��TJ;Gӯ��F<?���ܑ~9�k���_�(}=����qB�7��ƒ�;L�h�1��D���ڗe$��gMs��Sfj�WXge���d��e����A���q���<��>��Oqy���7�ާS�Q}��� �Cae74m��He�)�yJ�Z
�S�څ�L1sy�����]��Ba�0��3����u4z>A��:�u��J�T�#�3q�����~�e�{7��2M/<C�Gx��6�L韦��kG��|L��)�/�kOac3p������uԳ�8��9�~-跖�;ը*;Rx���Ji����Y�x�u3�U�4dzNX���9Q��y������(�ʃ�������3�ϥ��>�}Ji��3�T�u���SwX��y�[4��[k�
�w���WkXYM�K��-�~�\����u��B/�C�����3YWK��lg[5�Q˾��Cz~��L�窣!����P{<�Yw�|+(�?�Ne���o�i�nS�%�{2q���N�.��@�QZϮ�1�>�m�w6�
����x^����G�S�߲l�u���Sx}��l�<Cy}�Dž���y�
��TJ3����y}�h�;xM�2��ϡ_%��P\L��=�׹�Sk���9����4Ŕ��=J�R��3ym�黲�O����s��jz?��-�|�����6��9I�q��م�J�ӎi��2���k����σm������h�һA�$x�����HM���m�1��j��ݣe�Hi�ո~lW`�S�VK��=eK7������o�s�q(���X_c9����2�!8��$x��󴦙���
?��#5q�8���{�~[���P9߲�I�A���gX�~�
�t�	��߹�����ȩ́�9�&�
�6mÞL�y tr�l�/�='*��{R�Js�������m�l�\Ķb�W��Q~��N�<y��w�ўFp"ſ�c���)�fR��l�`}��4���s�)n5��7.���R�A��~�6��J��H�x����J�g�^���(]fq�5}o
A����a�|��)}�c�3)�<Jw���v������8��o��k�m����%�6�&�#؛��v��}Ms��L����:���^�Y?��#�=J���N�rOe=���c=�m�,��mZ�
Z�0Jߟš�|\w������Z��<G�6w��
G����v��;��J��/�]Hy�_l�#���M���6<@�2�+ϭ��kz�e~�r��x��W��)��e�hy�]m��)�%M֟��4��
����ߣ߽�o)�@��is��6��ws�Y���y�׮7F߿���yg�s�i��7�連�Sd���G�L��ИujJs=��To+�5�9�^�[nK
�ӂ�l�f�U�<ҳ�֏m<7e�n	{-Xwnt�.��ܽ��
ٶ�v�<�X���.���Z�X���2(�^{S��������	Oi���a����@��Y��zj�2���p��M� �9it��������`o�W<�|�}�x�I�K�v�8䶰��Y��h]'��F��s�z���iݹ�ƞ������⃞�>��ץr�M��x���ݛ2pO��|Ӭ5.�2���&X?�_�����6��Ga|��UZ�q�~��k���i���9R��hy�4�.>���N�^����o��u�6e;0ף�u�4��{j�|7�VM���EOXiYVS���o�u��j���5q�O�7��y��Ei��ݞ�TTWc˞�k:�߲��Ľ5�)�WJ�$�_�(�,
CaO�o�濅��.o]��+�z�9>��MЯ(%#�v�0�o�{;�z�BQY��n�KMo,�,��r#n�o�f7&�q#�-�Ʃ� ��OP,e	xK�ɸM~���	�y�@��G#z4�%��/���DT�/�+
�)��`�-�G�1�A�
�}%��� n�?�5�JP�JJ��d(��&p��	Jl&
S�e��X¤8_���	��
FB�e�z}��`�[d#%ހQl�	%�U����&��z�E��ص��ޢh�T*��	��5��E���7��ẍ́/Nu&�f0Q��afI��`��I�HGM��Bބ���H�#�'Ջ������S+͆�i�%���]��iz�}Ԫ#�ञV>b�6�X,J�!�$í���xo�Z1E� ���/3�yJ�Fq�:�:u�Y��	�\A�0�`Ȕ��N�+%SsJB+1���R�E��I���@���*j��Gx��}!#вU��6���n@�lk�2|DZ_ �$n퀿h(�`���"u0B���`�G8"Z��S��6�O;o�h�G��z��u
���ss���h2�7L#^$�fS�$��ێ$T"��R�VjD�}��@~��O�gn3�ѥ�h��.,��͹���	����?bNR��%c�ʠ 0>��Hn0wR�Y�K'��,�.?�ӎ�2�R*c����R�fDt���}D
o�Ρh�/��"�.�p�vg6��o����!�ۻW7��O��P!FN��"����D��P�LpWU��I�$6��|�+w��x��b$CB��{{DB����������vH�(7��h	�tˆ2!5�8a���ۡGw�/P��y�)����%���#A�Hg�X"��R+,X\�侙ģ��X�-U`SE��6��eb�q!��"/c��"_(�D��:�JOP1TAa�G�Ո$Lye*�ƃ�RiR����/�L1`�z�>�` �S1�|���o0@�S�$|%UX���2������A��G�z�������~#��!���dp<���ޢ8�B���UҤ$�J�h,
$�	���i����^���/�&*Y�	��X|&�\hDh���żD����S!��AK��0.�?�����x4���͒�"E�P*�`v�T��;[�q��LmR	�xe��!ԪX��j����ƙ�ڽ!�A��G��*c>�L��){(��%�̤T[L�W��UY����R�n����%H�^Āɬ@5G�"Lj�G�y4CP$��NH��Sf��ܛ"K\WMr�q�Rҧ����P�Cs�ԟ�d€������$©U~4���Y��mi8*���0u]j��d��M#!9LZ��"��#;�JJ��B=���.7�5�������|*9�TX�<Nz%C�'�(_~���]ڤ�L�HӋ�2ˡr�XI��6-R��٭'�cb�=�٬�ǖ}4X�i\��aC�'���/��,	���ϥ)�E�ƃ4��҈�L-6�ڪ�i+ny.m��he�����v�P��o��x�Sx$�*Zvpb�D�A>Ҥ�R(���_'�|VjJ���_�e�W`!�RfT��f�7���X[z����$�5�1��$�I� Y]&����C4JPڄ�[H��8��e9��@R��°6�iϒ\�,�e���at�Tߗ$,�X�@:��� �l�&��D�;�O��łX��9JEj�FC,��&�2��X���`+�o�7^ߴ�loa2�ɡ�]�S���>F\@�S�����=��h�V*��&�����s�dK"Y�ӠLG"����9�</��ĝ�T�b�)�Iz\���W���_HH���Xc/�ƾ��G��*4�h��xK�T�K ��6c�/L|�E��(ɉ��Hǐ玃��$�T^��7iF��,��WʣSYAA���	���˻�r�Y�%�I�� R`���$�K0�Oݢ%%F��M'�RH>�pН���c���@_��XWA�zu,(�֯�L�c����K�Xc钾�‘ȟM�4$,5�,4*L[�!eB�mu��Ag�c5��c��2��!��s�"rtlay�4,<.��5[�.�Z?W-tΖ�D��>R�9��TY�a�W�
�e��m��O��Y�-`���Ú� �Hn��� `O^)Z%�@~�Y*�wK\�ގ�x�_xٚ}�x[TЀ-Z��+5H簸@^•�c����k��4-�I,N#��T�?H��K�q̚,�D�Iq��ڈ��D2QZ]���ј�]���CBye�ݡi~��"[�t��J�D��� ���iHwDoo��5���X�B�Kӹ/wvjV�u��F���ض7ʃlqGЊ�V>`���T��G0W�H����$X�)b��3���E5���b�Ĵ�EM��Gϫ-�����W%��bRQYm'��K�z|�
̆YT���b]�[5J!N�5�GK��ٿL����Ҋ1��}���ʀ;�6�T'|Zx2Fb�Ga�8OFx���`��
��t�4�AO}��y܀p�E�;$����m��*���*�"�/e��ҪI�
�$AD�"��N%�PM�ε��X�e�ȩ�d\������s���K��Y>�e��T��o���9���-��!§�vʫ�_\��U��	�2�rC�5�h(䋑H�)����U�>�Ss7��4�N�k3^W+��R�]���!a���՛�&��V�؁�*�,�+�l�Di:\$!�KFT}�l�ޥ�i4Bzp��R�vmX��R�c���J���%-��%,�1;���G��Sm��F\��R���0"��b#��-�yN�d;�F,��<�/�#�Y�N\$\��D;��B0�Vb���
�fY�{ѐ>�P�E�l���A���"-� �F��hi�{tV� 	�Kg�(]��F8UW�0¾X5���k h�BDl��3@[�m���}�u�l.%#�����8�� �T_�(���Ӵ}"��H1,3�B��������a�����\3��
�F�*{��%] ���*ٖb�h<�tl�B-N�l��Oy�����WkVU9X��v$O���ŸeG���/>��n�XF�����_�̮wI�˯��b���;�_eU�[;^��
�ew�Ђy�LKw������
�IX�1˓$#uT��j'���lx-7���"�f�������TN���GI������f��h���.)� �P�W���R^l�V�޼�ގri5�׿�Kn^go�\��v��26��فԡ��/�r�@�����A�0/D��B�Tt���$�2ҕ��"P+��FQ��ۍ���gRu���R^{��uLNPn�����xT�����;�-*�ʹ����G�ml��$�����`9�,�Va�`9W5BV��^Y�.��9Q��X݊���uV0u|X��<����C�W�-󿵦�Wc�e����[K)&��U�[��ځ�oh& W���aH�Y{F���������VtqN��)�iF�A���T�4\;1P4&�Kw�a���㹸8m�ŧ{�qÀ7Ej�aw!�9]E��1UZP�ۉ&*��L;�1�ur'�ٲA;�H���/`�a�NI`/�����ڄϤ��%%�u�ٮk�~�U'�1��ZY.�e� ��$���s�7U2
��h��hۂb�)��W[ݮvkd���61&O�1�v:���7�i���98��2�޽L�,-�3\^R�R���^�Pz	���D$��CخݮDT��b��i��ST��F(�X����栺�Xv�TbY��֞T5��K����P�H��B&{��7�<,���uIS���X��?�M�m��hO���N7o�a��2rY�� �N��ʈ/LRX�F�c>���J�L�ݍ��f󰌪D�Đ�)/�(c����*�eӬc-�i8��[EBmzo��X2B�0g0�����̲�Y���.	Q�@	Y�J�L��un�a�	Uf�!2̈́*�U��*"<�d17ػ>�t1βy�X�e� ���ݑ�cg�L^)��)V%@&��!xĒ2A�-J���/M�C��u9��\M��#1I��.�Km�1pG�D{a� {���� �^wȓ�y1�~��V͍�#<�W��rKGi�5�N�+gG��z2a�����hI�o�薉Aa=�((|�5!ӝ�mW���
`��S�&A��K�DҤ^B7^x�4�<��x.�Y�C��@k
��L��v�1F��.. �a>�֚��`�T�R}�m�>�S�.y��v��C���q�#B�b���~6��}<wZ��!Kë��5x���H2�K51���3�Il����r0���T���tЖVt"qA�`fX�M���[/���4ЎjAu��Pik
�,��Չh��<��y�גdB��i,ў�J�wL0���J� �@�c��;���SధN�P�e���]�dSFd��Z}�eAq/��a�d;K2�]�N{�ڄʎ�ނ��Z���!IoQ’�)�s�#�c���߆;;��j5Q�����-�NA2ݼu�l%��75�m<���c}	FRw|���	�:�M�N0���� Ɓ��E/�H�"�Y��2���8��d�}2��Κ�|��-x"M"��'�dHf�8�][ɞ�me�@0�eA�<3e�@���(��R3;-g���ð�A�?K�}ZV)є"�3"�$���3���41"�dq�خgb�Iy�Ɖ�%r#�+��:�ʾmtP6IUb�Uv"�iV|"��+��8�)��
ѕ�	@��?L7B���-C%�;U�*d��*ɡ�~��XX�/���+���&
qL)b���4�l�,\�����@��1�U�贼F��1�'�w�ڇ��UҠx��$��.�)�W8/��py�t�-�x�ƙ����TM+j�Ų�k%Y�wV[�����J�!Ԗ�bS�l���G�
e5���]椑����#e�	��ENt��z��|H��:�u�5?fc��nY���6��?e�-}E|�;Ӭ�~�<gq<��6<,4V<�E�����2�s�y�5�l��pJ�d�o���X'~JP"
pN��œ.�l1Qd9
��3�q�&t��Wl8��	�I�]�
	�p*�'RO���ݼ���B!{E�PF�zAW��niS˜�HU��,)m�v�d���<�Q�b�J�(<�ԅ� F_�(����x�� o~<J�3L����4���)KkB���[A|CXY�!|����{���e��"A���DsyK��/�uw��"��q�q�2����Y�ƅ�b��x�“[�bc��*Uΐ�X-����+S�S��ә@��b�E��8e��SR)�L	���OӓIC��(��������Z���^b�0�Ml��}�D�4iQNm��	�J�]-)��|"�U� v&��~a�L��	�t�m8l��n��؈�Ҩ(���'·�C�Ɍ%V�R�twфk�R�V�9�6�AR� M�$��Y�	��yo�i�W KB�1ɫܘ�����̨Z@��q��b������*Y�p����Wq�Ŵ FWH^�[���{��T;�J��b��o����x�o�$	i�v�!q���3�]��!�4A�^������\�I���Uo�j�	�
$��i'G��&�{.�"�^Y�`�[�2|a48�QJ,[)��Y���a�������fZ�����u=��\q9)�$.M���c��"`��3"�hM(*M�KuO0*�;�:�Mֿ1,Kɩ��p2����������4)%VMt4�/f��0b)�&l>��[�,�M�,yS���-�n�SD*���]o�ŝc%B�0�
G��.avu,1�b�S��Խ_|&�(�H>��A���m�2f8g}x\�ªg4�Pev���K�1���XC�+�k�T�(=wūiA�z7��6�H" �b�M�Tj]��ERZ�[ǂ|�>�)���[S��|�5�8.�X�S�r.I��Z����$�Y�xl�\��9>�&k.���\���	���b�m��H��.�o��s��S��.l0&��R�1�	^F��o]�'E$�=>C���"L1H��T��~��7�w
C�MC��)'-U��6�Vз�Y�:��Ѓe�*�4Yq�
͍`	̦��'�	r&���5�
Ki�E���)����&��^��X����$޵��H9�c5ش��8�#M���6"aS�J0�
��vo3�����ȏ��i��J�,o����2��U[���Ɏp
Rc��F�f��If�U� %
�z��U���U��{�1(�#��i�g�%�	Ơ�rnX���&^5�껋�0��"z�F���$[��‹������=897�5PN4�y��NPk,�F'J���䌻�L93Č��j޺oh‹�:P�*�z�c!�v���^�:��ATA��.'Ʈ�U��N@"�U�/D�+�j�׉�7+y���d9�G�
������rʣ��,|�]h�"{��.
�˺��}`%�^��]ɮ�)��	Hj�y�@��lo��Nr���ά��imYd�)k/��VLr\\dS�P!�*M;Dq
����kD^���]�y,Ao{Zr�gc�d���pn���Vvy��t�iFg����GI��z��O0,˹�>n��ͫNO�QjUԦ��W�������u
���nw4��[���ڤ���r��O�(�M
�\�%�nM���<W]�-��9ea�4�z��s��(7f{3o��->7�-{k�kAʳ�TW�TW���QB���Q���֞Q]�{$
�};Y��zG�-.�NrPg�~!��p:nf{�
'��ЃG1��+G��y���a�0���Iيŋ���m'�xP�մ��%�d��2HV�&[�rD
*�,)Ŧ���`9�$��D�+�~ڶ �tk��@�ve��m�����d�UQ�6�GjK�=��nFC"��%C�؅�,Qj%#�}�l�X5ދ���[��+�M�S��a7*Ĉx�J��(��%���I���sN�e�X�iޛ��!]�Hg´�7�x��`�i�1�Mn\н��B�_I��$�[mvf��Wj��ߖ�����
�n�.�LO��S���6%D����4G��{5c:uR��>Z�u�C�x�#M��xF�L�3@⻫Q�ū̲�F��AC�ވ��PkELi��Fl�)V}���9�hʖ��5��n��)N%狰*�`ǭ*�.�*ׇXkn����"
N�^woБ���zL��ȝ'�=L
&������	(�=&�}5�H�3RP��M,]�.�k��VS�s��?�w�.]�:�>�/$���*����uz��4\5&�wK��Ti�G��U���T�JLO���i��ӓ�ׂl�i���Z��������U_lm�R�V��D�[H�I$�Gaǖ�Iס,�jQq�L��b�L;�/I���j�N�l�NM�9���z�mY!��چjX��'�dChд�da�c��T���.�x
��ϱ8�G�B/���

i$�:*KM����M��� ��`��`V� �hxuiv��DL�!U�.=�5n^���U��K{�5�}�I�P!�]������(W'Oۨʴs�V���'Ytk%F�C����br�p|����}k�]�P��Pb{��3�_��n|�D�:3yp�b��w)�DN�s �TXZh5�vto��޻��۾��w^n����z�{v���۷c{o���n�9�
s{��4�]�x�ү�=��}�8ҩ<|칻/^��0M/
����F/�aBJ�1-�F �s��������6|���h��u�;`��d�պy�
�ZMN��L$r����u��^OHu�2K]GL��i�����I�۶�-ڊ�}|�D���
"��KS�\%`c��G�HzX^�����3I���n���KY{�)ř���G�<Z�t��l��n�zg--8�Q�m�\�B?3e�o�˖�q��(	%\a�?+�-����mpZ]�Uy��E]��k��D�0�`>�uݏg5�������$�3P.WVW�4�Qgu�}I�������4��w���L�R�[��'f��f��Fif��׮��ʎ���r�.R��j3=q���gl��7�ʟ<���S�f�Qs��֖�:E��m�).FJ����cyb��S���Cl��"T��$�:�i�3|��.?O��:iW��z�og�S�j
�_��i�����?�c����,���s��-���?�Ƽ��!���#�ӣ�g��t�8���������g���=�{��*!�n��o�K5�VB�kT�j���oj<�ހjh�k,��]��o��4�B���H��,G&��EY�:����JmO��͔�&��� Ӯ{>Z�kcl`�z䥉N�Y�_��R�cw��-�Pf,�Pf���-�)YwE�"P󳛃vN�Y�cp��+�	[}R�H���L�b��U���Q8��? ������o��Tp>��� L
��j�Syg���0BA��Np��i��D��	K�r�U�x�����0,/��u�N��*�l�|��h��r��X���K�EH-���)�c�ia�OƫQ5{T;c����4~�[��J����!�z1�>赺���&��~,W���}ҝ7i	VB2S���}zz�ZH���.���gT_׷��5޹����dBLk��U@�#�0�������b-�Xd5X���8D��~6����_�>_f?����ۣő��Q�ZB���7歝x.č��e_�ƶ�ak����b�1��_���u����,ª.�*k��J^���&����o8�!�N�ZY�6�uŹ�ciZl�%ԃ�L4qߋa�Ӆ}e�:�t�h�@T蛥zQ�zbn��ˈ���TFy���:S����=S��\�N��I,m�{��eXn���%klr��g�A,q�'�}ɢe��
�ʺ�
����o,�c�Zw~T�l�-��
�$H�:�3w)�m�c;�d�ل,���~T��-�a|?)=��x3ۋ����a��������C�Vq�_�
q�ܸ����bE�@�vZ&�ԽM�R�~�[�zw_��D����B~��f>��1�uq��j
{��].7B���Qb�K����S{s;����ʷ�z��ccӐ�����u�^�鸞V
Jl�O��A/8A��
U�D�
5�����/����~��LLml���+ߖ;q6g�����v•	
��9��Y��Y��dY�8ӣ���F;��H)�I?R�DO����3�0�~/��z�|I4��cg��,	��k�� ��Ce��*L���g����.�"�#{VS�r	vb�ΐ�?��*�J�Cٞ_qA�[u's�7�2Y�
�ڔ�z�J�Q�c"�_"'w�r�O����Z� ݻ��L�zň'媑�7���L
�QJ���w�A["��@u��kÄE7��쪉�W!����ש���lo��H�N�l�X���Ե�U|�΄�)�N@��!��WYF�\:�˺���px��>Õ��w�����/C�.�@h��p4�ҭ�f��4eU����³�s�p�^�_~y�;o`9�Oئ�Gľ���+���|oG�@�έ:�M�VU��g{�o�Sd�n_xYe7Ӳ�@�ٹ�.�A���I%K"wJ�K�K�RRn�q4w�Jѯ��:Y^�ź�������d�R���lCc��]��^�=k�DkBNv�-��%�07W	Wp6
�Ջ�ۻJ">��?��h_�p�%����-'�9�n]�Q���
�Jt�
�~�bN���]�]�Nr��ˆ�H��KQ�!Sx��1�d<d75�C���l�Y�@��v�U��vPq�;C�y��q[���Jx#�ڬ˱��8�!����U]E�Lq��ts�n���jKH�l/��R�E�Q����{�>N���*!-��Z��Qj�3o��A5���Q��1"���QL
Qi�e�V���+�>7	�Q��l;�>�$�3���z�h�u?���u*+,/��j��CV�mѫ���c�4-6��#
t�Ď��mA+X8K�씢nY�M�G���x�e�u�7�F�I�6nӭ�n׵��;����!����'$�~!����K�vU��6�ЃGF��8x����<�7DR�A��n����TFH�p]���V�L�И,�\߫�àq�G���l�zɪO?��{Gv�F�z2�OwP��+(޼��e�����U���(/�����W��J\~���d9�Du٧�:��%9��ܙg�BT�s@kŠ�Q�M�	�f{�a�ݮ�{s��h�}:���|��t�sn�S��dq���a����qF%�*VX m��
�XNX�b��*	��F�3=�1�ǃ�!-$�GV`Ĩp܈�<^s�{�E�2��q��V?��T!_f{kț��^IZA�Yy�$�'⯔7�l��[	��Z�r�Z'�b�^nW^[Zw��҅HA���v�Z���Q�in���b.�sK�l_?��ƓW|�@_\7�#�6E��2���S��KT�R��ݻ�`��}.�}�Mey1�8_|�K!^`_,�I��遲CP`8f��F�	��Y	��Qb�*-��=.��W�L�uH����/=�k]>W!�n�	W
�r�|4�:7L���n�F�r�e��j�v����A��*�X��ۉ��j�S�Z��;���i̕6�CL���d���A=�r�*�t����J����y��^�m���Q��5�p铽�7󩙲��'e#��/���
�̫D[_�;�#�N=�kw�u<�u��}�Z[�.�c_�#���Rʫ5��.Z9����EF�_�p���R�77�~��2��q2k�dz�.��S>.��<��� �S���Znz���wG���}	�l�js�7���W�z&w�o���6��[O��E
{jm��,*�#����#�f)��x�m_
̆�
�W�??@	����*n]!��o�����E:�|[�`���/,��`��d�k����o��o�F+"֤^��!���`�u�mԺ�^�0��^m݅Vi|��V�
J�(I�Ybc������)�G�����@nv..��`ID�Q��i6{y�k82�]�ݸoؙ���^�ܗj���N]���-�*,�>��+��P��e@W0a}��lv�_7��|��n�qɊ�Z�������VO���9�r��z��K�z���wdKQ�)�klȿ����܋U�:��)�0]k�a�#��qT��ɾ�V�[n��뫞�
��)e;���h��i��	4G^X�2����F��ƥ}E��;TMǾ����@�\N�>�����^C� q����i�"z��5UE�m��_��^Ck�g �*��jJ�|P2����4"�O�G��2R�*� Qy{g.���}'D�-��DS(�����{�CnY'�lZ��l�	d�j
Y�*�,�z@�S�_gK��?�(����2�"���^���V�����'�I����Hϧ;�Μa_�����>Y�IMS\�漪���/,��U@z�ٝ�R�M��W4N��.݅Y�WȢ^%�!�Vo��Nkl2NM�r�����q�75��~)n�u�uԗ3=!��S�N�����x1���Ε\>!ň���BOL�!�eK\��p )_e��U˪R�}!Z�#(l���"h+��z�OZ~��D�ԫ��>��~�z�o�<6�R(���vl���wI�x�{
!����W%s�z�N�޻�Y�h��&]�W�kº�F��[�l�P�q�嫊�>nb���3QH��d���o�̭�w�06�a�ڞ�
_����,O����Ǯ��i��8�MюM��X5����/_�j/�:�2[����,O%�G}�ܷ��%���a�}��g�iA@z�~q��R�5.�8z]QچLj��yT-5��4�sw6�ۆ�z����+#���7�����(/9#���]唤(Y�=��[s�S���FGJ��zՕP��4;qma559�(�O�C�<��Ѱ��E��A��H��+���fu��v/7 ���A����u�6�R�1�p$��tu��a�*ݱ��$���:��M��-|`�L]8"7#���oÐo(���K�0_#Ƞ���D������̆���N.���$�������U�$k��є�n_�iw�݉p��y��X�:�^r��g}7��Y���yR>_�˰WY)*�/�,&}�B��c9�9�y�Ϫ�j�7d��ҋ�u��x0e���Oe��P#'��Y�R��f� i�nC����Z�n�׃��ގ�X�
��㬟�"=��vN�����sJ�s�zGF��fu�(Ha5�p+1�~�rl����Zz�����&�%�aǬP���m�%��1��Ev������
��X��f������S�\���8���W�Qg��C����*G��K#�)�nl`����ҜE�_��2+���B-�S���l��{�]�_Xj�n�U9n�Q2�c�?�����}�4f��w�9	[9���J�D���^~�;;l��HWXjX_Å~ +��>�d��n�L��7���GJżul{�viZG�婯Ӯ~��е"���}Ѯe�L�o��4�U�5bj����K��oDY2���j�+��/N��6;�z��I���Rhi�(��bM�Jqp�����0�Z�#
]7U��޾-;���2�k�QE��Ҍ*�H�,T� $*��$� E #�� ������f���la�^{�yD�D��N�����xy���]�W9�,�@����]���jEz��Uԅ;�ax[ 9��xJ�D�ˢt뺚d`�|ʦ�fiW}�a�6�!���l��\樌*i9H�X�  ���Wr�bM�J`+�!!�m�9�߾���O��*���g�1*;?0`cN�4x���[�'|��mm6r.ӉN?��Z�x�
.V����kjT�v8ǭ�фI\.xU7F�Ǝ�m��D����Ƒ2��u���"r�[�86�tD\K�E9E����1�)r��H#
�|$��S����i��������������qDz~�P=Y�HV�x�8�Gؽ�uM,Js\4���4j~g��_�~��Q�ۅ��N�PV�0ȱ'��:��	�b?��0^�k����=��A���d(�37��{��\�Y$�=1}�##�ﮘ��+Zu�]�$*��$�ՙ8��y2J������\�C����m�&�[�E�\�$
ےτV���|���l�o!sxYO�[.�"$5YE5���6S��j*5�#e�O��ߢ��@�I��x5
?Jw�I���4LS�}�V�8$��/�t��ȷ�y�ʈ��މ�Uh����H�"ڇRL���*�OZ�E���]u��Q�U�:��'M_
�eG��E�\6�I�a'�����z�S�O1ᙯU��~O�4���Ӏ��+:)8>�՝��1�\Ѥ���H]F���ڜ���
���[�X�Z�FwYT�f���k�gAp�jF��TU���wu�
�a�¿
�%�r�`�Bg�
�^̚�ش�xM�S�N�DH_AA���\���2�7E�)R+%V���T�8�Tha�w�w�/�}����o����ٛ�A$����ZL��_<+�nv�_��Y͔��VdHY�]=)Es>ɧ��X[��&_�.���ett���ޑ�A�qn>�c�_���:�����҇�|�Y+c9�O�QTT�]�u�w�C���7H�n����@S���Kv�~�Joo�g� 
)���jj�{WV͢�-҂|���D�)f~
R���C_�a�!�iv��_����IY��"��d�v�V\���sx����j��5`r�4ߴ8�e%��6�GV4l7*��D��@�>�8<r9�l�(�}C�d.p�_��d3��CY�IglZt�NhO����ȉ��Ez5� �i�0�ݠ2���.DKS�\�+W�ɤv�)B�K�*W�hL��
�G?�ތ;��
M&Z�>'WC��e4)ܗ82:DAK�3n�%��W(�8�c�����Fe�=�H��ǦdU�P���L�}
8߆��\��*�m��봏Ql
O���yH�3t������v�W<&�g�X!��!ďob�	�
��v%$ͩ.�,����v�4�c���բ�@�Fl� �7wNtiw�ә�ՠӛn�3�?yM�P��=|���N�����Nf��a�;q��{�*1��AiP���
�}N��0Z�8��k��g�tǃ�[M{�����^�Y�
I�R��P]�������@��x���`?�aZ�bT�O�ڼc�He��̣i~�Q.������!���S���!�I�A��E���6B�Ϥ�GX�7z�
/v�����$�'"��U�4�e�Z�����Q�
�4W�Q�
\������.��wu8�}
�L5YM��!��nay�_(dN�C�8fl�Y޿�V��ȟ�5�p�y�B��č����=�<n�$w|��gӕ@y���&�AOθ��k'����B�ܛG3z?.�Qt�c�j���~�?]�MV3�`��<�P���o�����_�7���B�hQ��$���,�I����b��0	uP��s�}٬���3�ȼ�x��$���q�,�p�h���F�����¨z�L*��^���x��יIijW�
I�h~�v?C��)�H�D
�Lv	�J�p�p�&�MS�仙eK"F�q1�,I��(��i|9��\!S�p�.�3�ͥ���4HC6��*
��U�}��ǘ�4=�-$W�R�Lj/�Vֵ�R`W2����߶�Pi]�>���\g�
�Ԍ�ЖOaɞ���vp�uG�#�"ʥe'��L:�qO�B�n�Y\.:T���c����,��� ?5(�uHՎV�~�}蜲�d)�����%ő<A��WDW=r�iA�mQ���D�D��G�>З�S��9�Rq��N��|f���r��IUMܑ�Fƒ��+E���N�;}rߞ�����tKFx
}��a}X�^=�!4��<�
8�r���]�J#|q��
%�d�J缾�����ԝMiܑ���V�~R|�b�hF9�tpM�V8��W��J��̓:T�{MFԬX�\\��+�+C�i7,�W��O��.��.�?�!P��KI��h�$�\������ی�gu���wIu��aR�2��_	�ibvQ��^&�Ix����Z�z(�S�����j!�D�3���H$��i�p���达�?�y���yT����ih^�"XO��&z�-0>?@�EdZ��`<�ٖ��{퉩'.�ZC�����?�:�܃��=����Y�A�L�y�$+8s�I}uֈ&g���*Z��㰶r�a�	dB�������_K��e~ļ8E��}���8z,'��&�x6�;��Q�>_� �)��7B�@��4RY����X�!Y<#�g#�G"�&����6(�"s��t��j�I��gu����R����e�)�H�ge�g6�F�eԵs搗p�4�,���J�fg�؃trB���W��g����|����%���oు��[�kN�}cm�do[
�R�k�n������J3a��Z�d�Bͯ�K]�<�
FZg?=��)�ɂ�'MÅ�
_a�����c��c֐���J���&�X�j�z�'ۣ���=X�#]����
?���_o�+U�X(�j��f~�aCE�k>���;����O�>�6�݋hu��)S�mU_�����t������םs
^�n�q��5��>}�͢�H�v�f��������<?��d�}�#�8c��S
Z�38	Xq�,�P������9u��ü��?�x(��)QR�g�)zީa�����"J���1H���I�Ͱ��,p��D#u���y��tK
!���Gڶ��ܗY:	���d�c>�M�t���08ú���8�ز�yF��v$BE�?񭆌�Y3�;�T-�x�N��ʲ�8���ub�M���lƼ�oaؐ��F��-���5�.�Xa��=���7��������up��ag�7�c��*cv�+0�A�d������k��?�9��U&w��T�'#M7��H ��j�ڝ�U\:��q-Y'��r���r�^��[[���c�a�l����R.�v�_����n��OD�&^ȕ���s��!�U��:�.�LD!�6���v�k�2�H���y�����!�\@T&3hS�jh�r�t���
��ى�*泹���� �S:2��{Uwj��q���63
�{���+Ҍԙ����@Ø�Td��l��fZŀ]�˯����ͯ�i��?m����������{��5�}5����	z���X?��(g�;Z<��v�b�r�����^2�a~m�~{:_vxp�&\��h��f���7���_��~���>�Ӧ+�n�^^5k�[ߌ��Iœ�ן�Jkڛt{�iJ���g���6�g��5�|��~����u1�c��gI.�Jk���j
�*;�}�W6˵�R>(�i6ʍ���lv�����/Z��臵D�+U�U0�0��R���k���8Y�)j�"09
K3�-C:��tna���j��t��Q_���-ڮ�.��;���4�뿫~�8m���?�ǥ‰Qw7Q��F�w�P0�w�4�!Cԣ{���w�k�U�Wr�'��B�(O���LF�u�)�_���n�t]�+�����[��zW���\����?G�\���x��&�@�Zz��oy�o�W�t����h���kH �obe}w���̊[a���x��|��-�ס&�`[��鄧�]֋,�S���y�N'#���Y��f'��g>!""49;���%��Kp��h8��|���Q$�N�u�k�v�'@흹{���p�W�V�vl�RRrY��޹u�P�'i�:��H(C`{�p�+wf3�S�6ҶՑ�Gܕ�3�a*`��i���n�IB%5�LOh����?r�*
��g>hC[��0]<(��_J"���N�;"�Q���Z-%��Gl��C摂��,�o<�Vt��KRZ�L�ѩ!8`�ٿʶ��O��;��B� :�97��O��#	���s�H�	��K�U�U��1�+!��NF+���ʎΒ�M�s��t�������轼�g��Y��[g�Lk�	�����rD��C�P74��%5������Jİ�$�y�B��0.Eʢ���2�$����w`���}J���i���x�0�*�W��+�	�{\ѷ�f^��b�φ�?TOw��(e�B:��N4�2����]`��H}�h�	��˼J:ףAx/;eT�hc��aX�=���"
]|]j��$��a�~w5=����o��N(�I�ݡ��mI4T�9��߲�I��"�g ET�`�lJ����Z)0��hk��VU�TK�U6��N��T��k1�t�RN������䋁���p0�9v���ٴ��ɿ��8����̖���t9�MЯ�8I��J--�s&V�G�ɐ�%�]OG ;����V�m�c�K�QҲ,$���p1�YŲ��rxQ��-��Z9�����cչZleˢ,��85��)�Q�X�:��֦��h�>�2̹p�+��LaѬ����!���ϳ�z�w*��Q�5�E'�	 ���{��R��!�K'%Ty�ώK�i���W��)��-e�w����#H�����,L�(ĺLw�.X.��ߎ��
�ۢ�ğ�d���7�Ƶ�۾|��+�@Jh�ʧ3��������4���Z�F6�-�8������n"�چ�7�q���-�fp�i�(F��a��Y�ۻ(-�d�UN)>eΈ[���d��:�H�Nؑy�HX�޹��GL6��1�q������<�w��w�cX�ag�_)�r���ݟOE5G��D�q[I�Ʋ-k��J�S	��,�Z��zi���w�L�<�q-��D�h�l�/:�		�lkP���b�dT�v����屓�>���g�~��\KC�-)y���t�C�%��ra{�U���sm�Ⱥ�Q��-������d��d��9�ڑ�2�9z��"�>[�k�=C3��&ݣ�˦�dp�r߃M��}W��?�L� ��2�1sY&���D�%ŀK*X�--_O�j�t����y���y�CUU��y/��_&ԕ�h�w�o�Q������eS�|�ȵ�U���R�1Ni0oc����kDP7-�����h�B��ں[J�e�H�Y�6Ƶ"W��#y��m]ȕ��argrks<|�V/����-�Y9-�*3d�n�LkA��|��I�dK��j���˶+�b2���{�p7
�1{5O��r�t�zB���_ѿ
4c����n �w��|m��ע���s��,����u�i�H�׵�)��ķHw�2�c�˯�{��.�dÚ=��1Ɓ�]b�L��N�G�H��C��V+|z7�<�U�s�\��_,��gV"_�����TC��AIBK$c.m!>B��bV��SC�fs;�S�xlCb^��5$��u��!��lӴ��)�"��9~gI&��Q��atik�p��x��H�p�Z�Z�������_v}e�Ug�uF�+^Q���;�t��
�T��w����K�����t�����o��w��|�yˢ���x���}���F> �`:~�;4����O׾�ig�<ؙz���2�
.��Ɣ��"'�g��Ur)�Xd�ri��A��<\��;��OՏN8�:�'��v��h�F�"$�,Ќ�k[l��k�
S]�v�Ӛ�@�N��+���< �]^�#ߋ����~:�#*xdce8 �R��j����=����_�.�Y���"�:�"�e���>m�����bR�Ș��yV�k��,�W��h�Kc�%l0Q��\���=��$$��n�-4�a���"?������jz�-`+['v�RM	P54�0.�to�t��ͺktf-��-"�<ytHS�XXH<*��i�d��W�6�j��7�Ej�4c^���+��q�$N�]��U���hE��ul�<249 �h�����2Txa�4Stj��nɂ�A����<�t�G)כ���i�Ǟ�M��<pi���P{���/�M��T���e'N�@%�S:
s�{өҨ p;@��M�hn�Jښ���":�f��&��k�Kv\Y������_��Ҵ/vAA�S4�v+Q�,��cGpW�^�Eot�%��m��{��	�.�bd��x����u+�*�L2o��������`�X���IQh~�'q�w����gvL������F�O"��@�EXI,E��E�q�ݨ�ڦ�dr���>��W�n.j�Rzr�\6*l=N�-�E�Wu�0\���-!�5�����W�;t<���2f]�V2DMP�W��q��&���%�h�d�C���
����مg6��k�W�pp~�i+��1:�z��$�M/�)^ZH��Y7M�+]�;��M[�ԁ�D�C�R���${�`(�S+�Ѳ�~$?�ıܬ4���د��^E1��fMn���Gg~�"U%���Gm�w��l�>�\_�r:��۟K���qf��]
��^�K�Aύ���3�:�����b��ľ��Z�K_�K��U0|�1W �l.��������a��yN5VP!A�R+��%Q�Ҡ��t��`{-��=�U�_��ϒ!�m%b��,u�~�Ga�6�df螺Sh�O�'�D���0����H��H���e�s�
I�d}�V�#ņ��eխ�u	�TE|
B���m���񙒦lt27'��{"z����N_I�מv��ǣ��_	�k�s!���t.�T��|�~M^��H[M�@)�RVߑ"�\�%�;�����Pw�0���̖����Z��r����~��J�x����\�>��v��0.��8�~v��n��]�6kMU	��,Tu�9⪞�m�U�*We���r� �R��"h�^�xw�,�J�Ę��Q��Ρ�)�&�([f���D͹1D*iaN0�_r6O�3/N������Ǟ�x�|�"'�����/{�ZJs�s�2~h��(gT=�Wk}�{-�]���?�(�}�Av������Dx�16�v�G��M�|/�Z�i(���D����$C3��V��/�G ��L�hIf��w{��hS���6
탹���v]1q��R}�
v�o��_��p���X~�p�\���������8ʻ�'{�����2��/@��t�O����3iw7�j�W�~���*1�Lf�Ȭ�62k}Ә�
�n�b�eS&ύf]��H�e�̄���>ֹ_��W�����v|�85�PGQƣ�bQ���蔱���ò#�O-�������|�Q��X��e�ʋ�~�a~q��$K�
���aެҨ���ԛ+d�n��_�?���=-C�7J�[� tFN��dߌR/�1JsXsx9
P_6�x?�oPۈ� ޔ��<��L!��Ȋ$�&ќ�����J����S��K��
Y�2��c+X��`g�����&l�S_��z�)��[�Z��H�$$�A!�K&��d�A�,��7���'���6�\9A�K��G�@ǚ8�_�c�W�s���d��Qh���-�
�7�t@�AV�<S�ۅ��Z����=�"�l2���\>�#��	���A(<w�ǶYx#JtFp��Ws�AVv��ZVlY$)EM:���UKh$V̩v�{�%�Tu�2�W��si�؟�f(����i4�����,�`�R�%�|鮃��4d����F�j��i2�X=p���.Q�5�@������V)'����e��v��֫��e�j�hz2yQ��FQIZ=�}����K]��4��&��fY/|p-?MR/�� ����3�9a��t0����⹱�?�e���^HB\��Z���uҗI-Ђ���Q�\-��63��Pa�z��7��P?�*����z�����l�,�hR�:���
��,��7L�+M�������@7Wb,rza�¿��-�6��Y�X���QbM�\tG��X�8-)�䊎P
i�5������)�䭫4gZ��C�[�`��8�J�zh��I��y��p�֝��{݌�R��+�mGO��=|�4%�o}�tC� .Vx��i�I�T�����"�i����
�JB�ϫ��EWC>R9�R������4@����R�]�q�����:>9FW��Χ�,D�dL�u�4Jk�����dh�ƪe��2}i8���@���K�(;��XV�)!z!)�L�n-�'���D�Cܓ$�^1�d���EJ�����W��|����.���� �(���q>F���jWF��z'X�8w?H)�֦�T�l��e��tD����m��\~]���>���hk��^��O&�B���._�X+����˅����G!���Q[�+8��d�/W8���5�8�!}���j�`S)���x�M$�Z/�ta�1W�?�A/H�b6�x,Ke�x ��� ��	������Xm�"d" �F�!��@��lofLj�._t��ޢ���r��X�~4����d&�r�K�9?l6�e`C"�ҹC�W�S+D�5y4�Ibߊc����_����n#Y)��VW|��㠹��ę���U=S��������.�R����N�Sߤ�4_�6�y�����Ug�ϔ��N�?��9x��g�	8�CH�.�€fގ&�o���d7"%\�_K�N)��?���z\�4��t��s|{�[����`�Fߖ���D�|Z��S�~�CBԏMzā�O줷��o��K
��{�q��ـ=?��2����f�Wp�����Oz��OE
�v��;5خK�H����F�I+)u`n|�u=�)�A���]�&c�}a���!�Y2�e��t�z_� �'p��@�
�ꠠ�(U�D�M,��f�e�їj�8"��[|ܢ�d������Zxa|p�‡*��-S'@�J�
Ϡ"w�����l�y�n�z%�+DrZ.�.vZ�'�5v��Ods~w�I�HĠ! � +˚a&VY�5�9��LW����k�0b�
]�[�p�8�O�-J�q?q�ܻ�ag�	5P�̹]e�<��1՘D���Wγ9$�qbq�(�9�=b��0�i澡7���Ǐ�{Dz�����T�x!)�։��s$�R�څl%��e�;U�E�ݹ�7�/�8�q�F�(^V�ȝE^�P�-u���BU=oI�J�s�
�R��Q<���7�c���DG��O�����Hw�~�B���C��SB�e׭Ձ!uw��P�
K�ncu卵w�~�!�����ۨI|t˕,j�>���CT�x�m�voB�V�R �-�(%�J~K̋Q$�/��(B�ϐ~M�>M6b1����:8|��w���Y��9�ݢ��Ns��1�%����6�'�R���X���
����f0�`���
��.0�����W��xpuq�ۧ>u��@���5a-18(D��\�����bQ�ێ���Qa�ۯ�>l�N���
�E�&�;�sVp��[��W�9a��#ZY�-_0���G���Ϫ�o�'�g{���|�7zq����{G���g����W��w&�o�4�^���k�f3�u9`�%��B.����]�2�Q*n]���(����7fȦ?�ת�qO�u��lf�,6>�y���)tV��:�R)�	 �:�s�ׄ)�F����]^N!�W��a�L��QX��.�
x�i�Z���ch�,n*���g���ٶ���aV����ʦ�<�YI�J=H�]��Z
@x��8L~Ӳء���-������I]�S��:��
v���;����q��7��&����;$K��ȁ=hs�g��'��v\V	)Q��v��y�&�V�;9>Gy��5� ̬L��d�q$�6y�Z�<�^�D���C�vG��T��pJ��W^T��p+���ƌ��xi摡܈a�;�
Ͱ��H��}���[���˦3�D/K�=�q�Y7�F���Y��O\�j>�0��G�9VS�x�L���G�=���$�_zoe��/:}q\A��A�樒�9���`�ȳ؛(ţ�r�A� ,Lҏ�H�՚��^���'�F��fQ����Bs����vI�>������"����*���X��ލ�'�
��JJE9�ׇr՘X7%�9?��-��7dPC)%4�(:�;��w��&p+�D-2�<X�9��,^
�<CF0O��
=I9�b0�tܒ�X��qO� �\�>�y�jJ^,�Äe�d�
�B�༞�N��U)��WM�)qu��J"����a[��O��AS�,!�+���Dߓ���&�
y�"8�+�h~6x�ďu�O�f5`k���%�D�d�	��8T�+��T�FC��2�:�����<��O�[S�y��;QZ��@���D7�V%����7"��W�?���qu����ѳ��Z]
\B���{P����p�M���?�6�|Wp�U$�&���RWB��e��b�m6@�m��ħ�� �97��?���/8$j�v8�&T%^6�֨�Qx��%�%S�Tfj�3�V0}��*�OTw=}'ؓ�����&췗���螾�d�-��=z�N]��EN��tq�3���)�5�%L6&N�w2,�q'����6�Yt�X"�*'����p:����	;֤��%�\��})�[���A�N���'T�~��XjK�#ZJ3��x$K�ԓ��E�z0?(w�q#>�-�v�J�i�l����|fe�ӵ:U^����
�����ٺ����Ǩ�.$��0�C8`��m,5qD_F�K&?�!\p`�����#��:4��/�����dZ�+��@��#q��x��H DbnhX5��us�\=8ɏ�?��D��D�$���Y��ey
:913��s�O�/�@�	�����<<�pڲ
��4��0���L��@��֟�]��C���Ώe�~��/��	9�>5�F�<��*�#�����|m�Y�#�
^xbyN�+e�?/��>>e�_�67���ZFq|�Z��I���4��R���d�~���8:��A0�?h�f|�J9R�#��M۲h&GEY�<�m�K+�Hp��.�{�4�����9��rt��k]d!���Gü���
-�l",���v��ķ{R�Y�n��!Q]c��\��Ј+��
�l)ix@�I�.J�iX ��"�T�Egw}Z,M˪�`��qkB�'�����bQ�<�a�n����K᳻�X��B2ӎ�b��O�h��Wb��S�ݹ0{!Ms��`�GE߮)��(��}���/M6��w���Ν(��U�Ώ�«�դ�R%$f9l���%�����	�k&�~�nKK��{���?@bFa��UB��?|�IG�0�G��5�KxO�G>�\�Q�%�\ɯy��s��s�{8�!�A�Q/�SS`*~-��E���n�9��>�G���@?���?i�{Rs����%5�Htko(Y|=S�6<J�и��w����xo��}�O������=�$g���U�WYs�*�^�J�G_����+���'�����D�,�%X�d+��9^�9�:�
8j�=��!������H�<��]7�]ee�hn�����G�$ڽr	�v���GZ�
Ž��s+�g֐�N��e�-�å�q%z��{뷂%j'e[�v��Hw?r~����ߩ;h��؋���B$�!�}�I^Ô�v ��xq��)�A���xqS�*)���&p������E�*�f�Z-uȸ(
b6���詖���.q���Y�f=�_��z���(D0=A����GR�s�^y2Ua���!E��49��bs�����`'j����{�m)�9x�1@H+ƹ:S-� Ex��d������s"���{��˸��v�fr�LY��t���so��zU;�,��
�Z䛰�Y'f�{J*@�,�ĉ!	E�KN��%҈���NɁ}JV��o3��zXz)ho��o�r�͊O���	��
n.ࣛ��քYn���8��Ln�!aѹU���2�"�3k�QD��XhԩG�9��`���E2ӨR���n��_>W �	�<n�ځnB��£e���e䶩���萂�r���t��'i��j��_'�A|t?v�1��t�2Pp\g��Z�F�Tp*�uF=�/&�ik��	�t^"NG����s��iޮ1��R�M<��''}�P�[<�g�pl�"?�y&�4�5P�����N�>7���i��S������'v��#GH�yÂU_We���KWP��fOb*�R.nkQ�&2�g���}�q�<F�)�y�?�4J�pjM/�MFx�n��	�~k!W?����j���v�t>�1+�6ɻ�M�Ch�2��_�G�$�68]�A㠿U�ü��[fq����������aTL�
�l���n��H(�����4�]���70L/���M��c�z6j}�/F���%Dۧ��Ns��+�;��w����匿9�_Oڧ�
�@� UX�gu!i��S!{��E�0���0��n	1�Ӡ�xɁ�:�ܟ	!��f�:os��I�8�H0��j�ڶ1�{�� ���?���M�B;�DVI7�X���N�1�R�5�'�1��3�9B���-R���a���,~�!�-$��x{��j���>�����F{]�Y��C%��<��ڔ�M"������}�x7�0�0|hZ�����g2��6�mm�L�M���w�$�ܦA������G��Ȕu�c̅�`~��R�q.���|�c�jW��co�Y�z(HN9$�z5�����C����%:`kA�F���t�MCT[Ǚ�xF~#	+c~����Q�5R�M��z�t��"�7k�Us�nx�Ul�VvZ�7��J�V���7ٽ��:�ETFTM��F1[�(DCqnI�l�fNQ�qX9��U#3��Q ��^F.K?�wWm&U�XL���V,�*��>~X)�d��_p��<��R�Ï�\�䰾�G�8
)�Y�9�s;e�Ӿ(읲��^�ֵ��o�87�&8ǚ�����,�����ܻH���C�,9D&�#W�$Hw�6x�˚�,��\V�X`:?�~���nE,��N��E��raZ����)%�H�Q�#ϧ�Wdޓu���n(�<����k�9���X�=��Nj��W�;V����8�A�$� ��*���\���KCn>�tpV.�p����e�c`#0`q��=ݬ��k7-��0Rg�57��-Sw�Ļ��Cc�+Xh�
�y"�/�F��2�UǷ�e���`�j芻xV�T�C�{\���$�G���RCbߓ{0�5Zz�(��Fe�JqQ��Ċ�Vp�Oj�Z�UA2�T�<��e�+�%0��į��=j�քF%��
�{�β�vo�e����G�e?�𴚤S&��y�9>�&��X��h�䐫�W|kY���=<��ɽg��b��b��T���,p2����C�P��D�ot>�n��wd?����y����@H#��R}d�G��t���cph={��I�do�h�o���$����Q�0Ⴊ
�TW(��<��1|�
���t=�>�J�m��>�]�n��-�ӑr���)8A�ˡ��nH6ř�fC�hN��C��o�����JƞB����K�B��I@ϓ�yKu�e�^�_y��:�k.�Grj�z�>XDB�?��k�����I���8��W���?������_�ǣ=O�58�߷�O�����#9���wΊR�n)�![��P`��ш�`|��'�-���iط�6ȑ��R}�d�C�P��T��O�
�	��w�k��:��� -c��`'Y5�\r�%�g��ȐT��I/��$�-�7x�0�uu	6���<���bQӇ�D�C���<��g�'rY�X����z�����gˆ�a�.]�+�%|șp���
�\c*���/���h
P7��M1W�.�[)GUρ�ŻniJK�+�ü��H��[�s4��ӮjL�B(�<o�z�ܘ7�Ⱦ���Eq�Cg�e��<p�s.�%�W�����Te'���~oO��R�6
��]�wW����$&��ZY�,�@N��ȭ]�P�jEz�Wԏ;�ax[ S��yJ9EUҢ�뺚d��|ʦ�f9X}�a�;�!�X�l���樞*�i9R��Y�� ����Wr�bMP�Jt+�!!�m���߾���O��*��ch�1*i?��gN�4����o�����mm6r.ӉN?��b�x�u.V���kjh�v8ǭx҄]<� �c$m�eg7o��D���Ƒ2�Ĕ-EO]D�}�G������'P�ΩϷu�m�T0��H�99/�T9�vv�9x��;z{�wt<zs��g���hU#E�0�U//ό�mo_3��-���/��ߩ���WF���1T�x�漭�C��
,R�	U��yv_��*�W�k�bu�;�APf�9	)�ڽVl�������v���wW�S��:�Ǯ�̒�r��L�r~��<Y������m�^N�ѥ?�F�47m���"
~.]��Vm�l�+{Ct>�Wq����P?����-)`����ZD�Ō#G��	uA��4���ȑ�RЧi�o�_K(Ĥz_eК ��ƒ���_�?����]�a���Ws��I�[N; iD�M��x+��CA|$�C)��N��'-�sN%p&ﮀ}֭��j��擦���،"4�$Cd�֭G�"�|z��(���S�v�i�E<���)��9�y�4�#�
��Lzu'KfL3WF4%��C ;���#�~6�/����7�<ְV���F֚��gy��Y���QH1UU�2_rWةб�n���8X��Y��f56	:^����S!9��WP0ho�(������J�c�K��.�2�+N7������g��&/����?t�jK��6@,������J�[�1�����C�3.���RqW7JќO�i�F� V��I�d���c�w�B�i�����+��N�e�k�jƣ�A+�:BJ���H�G��aU�ג^�]���F�%p/R�[��h<�TA�f��ݵ��R!ܛ�<�F�	������뮕U�(v�� _��l���l�����n�:��W2���j����԰\�!��B�x�Ů�m'��������!�7��ڣ
��|>�#�7-cYF�`�<�
ۍ� %�24ЩO�,O�f�/ۨ��yߐ2��[s��v2�̽IQ�n��V���� Y�xq�=r�^M4(��u��j7�21���Ô1���Eq2�����F�
���&��C���O�7#��7}C3���	D�b$cM
�%�̟�@Q�Rd��`���L8���$|0e�`�QYi�,���)YU N)p'S�з��!��s��:�#D[c�`iJ#@
�iv�4��<��	��/V(�n䛃e¬����	Is��*�4 �C��8/
�A�k�(&��%�͝"]�]��t"|5����O^SA,T�w�����O%/+�䃇}v�5��d�ެ�h�zP���9?�BP���<�օ#��ڭ�F�a�S��*+渶WOA��Bv�T�\Tt���=�,�g��؏u�D��Ӻ6�X>
ڨ{#�h���m��<z@�G�D�Ab�4���l�E�FX}R�F@�+�l}�a{:����3	<	�2���Yx��Gu=�|�>1�wy�{��7c=к��Đz������vV {�W$�$��mu��+�a��kxh��jz�a�v|���͙�c�ݶ
$s�T �#J{XMn�x 2�p����q`C7b�r2�Ȓ�en��Ǚ�MW����?D<9�2*�<�R��_5ro,�D�F",�K�TSE�4��O�tD�Vm�i�),Ĭ$���3W(~��g#kEBF��8x�,�'M�`��o���BZ"�$�A����s��e�>�@��"�\�m����ɕn�L#J�����^*s([�
�~艳�+cxU�c�!<Cp_gV���^�+$g"��	���\1H�l#���)�2��%��*���R���@eL�Og�������$i&� ������r�LW�a����t46���W�8
!%��`,��W������������J)#�p[��A>�J�^���V+ͧЇ��bЃK
���������)L#�[�3��w��C���g��IG?�ɼh"�6R��Cu��<F9�;L\1?�(�S3�eQ�A���h5����)K�fQX����Q$Pi��}Qt�c�L�v��[ITI�~A�$�~�9A��)�)��d;�g�w`+�T���9ld�9���R$��4�,�'���i	Q{ۚ}�@��a��Ї�&Ї���ӱB;��#����'���uj�4��[.�PBH��v��+�!��(�(Qw6]�qGF��+;X[�[�I�I�
����5uZ�`}p#+��3O�P��5�Q��`�qy�ζ���vЦݰ�^??9,�t��L]�@��/'�;���qu�st���n3�����3�=��M&�Im�$c%��E��x��p$�q�Jk5D��Lr�?��������_z"�܋�Is�A#쏢���n�x�u�wdU՚j���y5�h=�O+G��i���, ��w�jdr��g[R@��==!�EZoH����gX��{���G�Y�:KSH��0�a�d��<���q��<���OE���`a��V�(;��5�L���xq�{!@``�k�z�쏘烣��Ϫ~
��If��IM���6���Ƥ�@HmJ-�>�v?�T�qx52�mH&�H'�����	g詢� ��^<n3�0�蟚~Rk�Y�zA�TZ8�1������#Ѡ���%!�Q�/̜Cf�	����v*����K`��	Y���^5�n�ݞv��ֶn�7������o�9����ѓ��)8LU�}����5��f�vy���r��_=��~^��ξ,{H8�SH�pO������;/-s���!ӎ����SN8�(���,O�G%7�{p�Gް����~Vaۿ�q"���1�p�����B�
{ׄ����-����| y����@�o�S�V�$۪���W��N�y�1?"�~�9��e���Z���u]�]�d����M3V�J��RT`��JD����S��E�)�-��8k_�_F���v�]���:m�a�|��H<��d�(	Ƴ�����A��0��~SY��V&��N���$x�f��n��Z"��z<bu:��pH��«?m��l��,���CA2p2�yW��]Q+��]L@j�Dp��<���
;.�"�W�Ƃ�����	b�L<�'���kYZ������1��U�t6c��Pl�IP�N�Vo��z�PX�C� tbΈw���::X��4�ձ�f�q;���O���gw�
h�sA<`�Ӝ��*��Ug��!�&$�Vd��u�b���2.
����Cs
�u�{��v{k�v��"�����[J
�n���Դ�-x������2y~�8�d�j9�P�5�"�e��0d���Nb�x�>��\=��x[5��h����dm��_
WΓ�w=���Z?;qC�|6�%!V�xJG��F�g�Uݱ��ƕ��BK�|L5H��?��H6Rg�[�0J
�&S��PK١�R�	PzǍ��litespeed-cache-en_GB.poUT��}`ux����PK١�RP�V�U����zlitespeed-cache-en_GB.moUT��}`ux����PK��&PK`�oR��9�W��litespeed-cache-es_MX.poUT	��O`��O`ux�����\[s�F�~ϯ�$���V�E�bI�TJcَ5���r2[�U�&�$��H�L�?��[󖗭Z�������E����S�X&��}+��̊D��dŒ�URMtV�]�L�j�+��2�*|2,�(Q�{�VE)�J�,�=�31�e������z�#s�o�Tb����uQZ=�J���XYQd!S%��PB�ٗ ��譜��Wi1ѱ����O�\]�T3]���s<x*{���������^����=��?2���_����s�>4Y��r�z�@�ޕ��D��M�-T���ǻ�ݳ�ٱ������:����.���2�}llZ��,�?~��3������)+KcOœĔWV���^ooW&�T�|��&q*T���MּQQ��4n�����=���'��%E/�������L$����cH�hqf���h�!�&��%�~^YH��88h ^���-���@��|�.��~g�!�.z����0�+�A���������B豘�JH�DUЧRx��s�虲s�B�7ƾ�?<q�'^\^?:��z���
<;!d���_�`�Fd�H��>�y�=񴽎��,��{x��v8?SK��T�Zv0%����B*,��$D�A�UI?FL��-Eg+�Cz2C3�H��d2ҋdt�'�Z&1�Ɛ��z#;8��&��`�}m�2m�:	t�j�_K����7�ߝ��A‰�l!nt���l�� ��P�Ň�}*D�?�V��+�p&�^��图�Q��KU��F
��B4S���F&����*x�����T0X���P�π�UQe�15�j�	��$�:�1��{�o(�rP�z���[;:l��V�t��Te,��������:�M��82rb��]!R�U
W�J1�:"����J�'j�^�&��������sx�n؆�F��cfn�T�ض����E�u��k�	z6�s���qp���ڡL�f�c�
�y������M�����텻|BQ�+�?�Mn�CO\U
ߑֲ�:�L�[3O�	<h�F�	�"Q)�A,ц}��U&C��$#��H��5��}�
�^A�>B<�����Zm	�T�-��
���#��)"�p�ou}��j��ݸ3V�ʚ$Y���[d�M���ʼ	J����@o�T x��d�C��@�8
d��z���b�G&�$߄A�Ň�|sN��O-8j��M�w�q/�
įt�3%�qY����i��w����?`�&Ą�㭾.*�@{�8��Y�T���p=�&4�������9�)���`I$2����H�}X�T%9\2���P`Ƒ��	���h*����X�:#��ACQ]!��*_��Fsp-2�f���!�I���i�ϣ�L�QTJ|���Q�[|2*�gz�<6(s2��*�v�8
�0��숋a����w�Fb�dM�w�L�2�p���L%�r�p$Ѫ�{[KyФS�q��q�X,K�n����6�ҡ����5bC����SVd8�78����gO'�4;Vc�U
�.X��r�j|s��Q�
4���Eh��A�T[�(j@�9<sN‰�ʧI�[�qSl>�rlM�8V+>�7)d����fB���a���,Щ=�Y|@!������ �eܧ��w�k��2�-��0T�ʴ7�j�v��`���|
r::����6Gv����?7�P�V�����;\Z �&t��)a*.ݾ�}e@�i5}�[���Wj	�)��0½�L}��q㟹¡�<h���3w�?G��1X�)��-�X�d�K�(HF���<�'a�8�D�Z~��ud�YT#$_%�ŕ�n�.w�2��c�z�����PI���Ѥ�:r�UPљDG�Dͩ���c�<PE��I�@��$��8��\�>я*��|Pr
�Jd^T��آz�*��*��@孫���@�|O͎��i|s���hP_���l[��,�me���"��"T�ŸJ�y��8��+t�}�Y����5�v\3�S�yM��]=4RrYY򚗏7*P�ތJ�����GC�3��\��ʒj+�7ć�Kr�(�P�A��pS|e���C�ʿD0�XUg��D)Y��-r�F��;)E�]i���1�P��N�f��5��������_��/���U*�ֻTK���1���'����8�հ��{��p�_�BCϸZD�������1\�n��44��\)��@��Pm)m��#�5�fWzM�v=m
C2���$8m9XG=����Y��6���d�𹩢~��ܸ�d���"g:��.�48��$���qE���
=�6�tJYV������券m�_G�}��A��X��|ſ��8|Y$��f�U|��o	�1�W�;�r�/Qx6A!�}^!�_"�{KW-�/#����R�m�n�K��N�&��m�k��/��&�1�#]���vC��J�nl�˩���w
��qO�����(����C=`�:uݜ�����т/�Q
c5��K�;��e����6�=����<�;�{|�*��VJU��k�.
��/Y�JJ�q�b�wkN�
:EJ�Q*�����NQ�@��Zc�gH�(#(*��
��a�?Ur��$,�{�+��������`��_��"����g]�R �!���h�ib|BP C��5"cW��I5w,����2MZ�tu͗��p�R3s5�wT̱5������%�7%\P���R�J��w�HxwV���;e��	��e�ʷ��)mP~e���3Y5R?m2���:a6�0dTy)�e`��T����@s��	V�x/L8W���k�+r:P;*�u��QŅ���2����7�".m��^�p�K9�f����2��Gm�w�������.�o��!1�q32�L��Z��POE�U͑p�АU�OK��TH8Kh�N�R舺�8B�k	���4�9��E	Ԫ�
Ŧ���-���s�.�ED���L�<��*5��K��V�^p��i+���H�������GE�C7b䑯�$E�Pf]J��-f{JL8x��Q�}c�G��-���84m,*GKm?%�	h���5�m�_k԰#kn�I���U.�#W�P��"��A�G䩩E�#Əfd�h�x�f�`M{U%��GYK�U紜��n�nd�uR�6���|vttr���W���r�~<Vd�X�*�(M68�C%�㜒�$��ɸV�.�[���_P�E)N���{�Q�k��X���)v/�y���lJmi���y1���_2�oB����WCQO�iˣk�)���s����vr�bYM��Ѻ�j�ݶ��/Z�X��3\iw���H�x�-��a9���u	ggTG0��4ֵ�4t�(��}�|D�x#�{Q�]Q�(^�qWc�Y�*7fm�p�W�5dUh���u���c��ݒ��w<�3abt������N�������Y��$����% �}Ye�*Q�UIF��b���r ����8�lȈ�ɶ���8��?�H�q������L���f��1@�l}%@��ҹy�L�H4�)<7h�^ȡ'�b��/JG�I�F��+"|��Fp���̲l6��`������.���:I�
(���1-��@��H!!����4���@��\�9���*#�pŐQ�*�L�N.>�5�!Mnx�ݳ�/2�\Ⳅ��]Y��|�"ݼ$�.,�$�0�ʒ6x��ч��ƈ��_"q"�@P��udJ*��xR�rI]����r)U+����얬)`��T����K>Fi��9���ěn��2��%��T���i��2��
��!bH �k����lpb���Ķ<�S
,�孹��p�D�	`OyEO �(�KS��ޟ����ے���(��cN^�o���W���c�r�v����/��w�*Me���޶-��Ƹ���/U
���E&%�d*n8,��;^	+غ\MY�pF�_��7ʆfFS`��v�T�)��й���#/�Ѵ�:���5�?����+�IT�	=ˋ	���9�ͤW�nH3��;���m� c�5MS9������G��%�G
P'���W�I�H'����ɸ�T3�q�c�k��u7�Ɗ�V������i�I�V>��1�I5�GFٿ���*�&�0��<Y����k�c����a�y��Pw_��;טL�$z�Z�A��$��.���&Kq�M��Z�/u�8*�d���$Zt������I���W�x�j�N��-^�&���i�rr����np|���UD#gx�D���֫�Y�$��o��q���$����m��ȣ4_ʤ^�.�����#�#;���rO�ܹ��c��t�[ɴ+z�A��a�is�s���V�t{�q#AUt+4�&��S�#���\�$����!��م^w�����ho�VS$r���=�z'�h{���06��;�b�'��.y��F��ݦdr��)儗�2������9�ƇAҚ��#�W�6(RiE���d4����.��.���5��md�DuZ{�
h�/�q�K��)$�3�������H����i50�+1o��ܯ����ծ��^�R�x�84Ǟ/q�hv�I�M�|T�"L��� ;�@��pN��(���K�	Nn���h3�e�JH	��N.r�n(7��N~
ug�i@�Y|D���̯GWmP"���G�6�gU�M��Z=^V���w�v��^wļ���V�7�{�嫏�:_�zlr�������蹉\T]Z"T�p��MH\J�W��(h�[��#�Dx�����5�?�
���u66�`v����n�e*���ꉧx��|��gN�7V|�`0��s~�Se��Ӻ�~��G���FH��ޖMFEn�����&�8��R��|��AZT��K���QG$2CIj�"zw���PV���ČlBv�`M�$払3II�_����ף���L�Z| \-;A���%2���/r;K��ս�'zm�v���)�z���'[��i�Y8��m	����.R���L3�!w�H��M��&�J�7�ܫ4�wy׎�V�I0�r�n�7so}���>�%&w(�b�yy��>8|�&��,������wTk.���8�t�&�[�h�����X+���]��K��'�V
]+��i�!�2g��[^{��h��,9���4+f�؋�r沊I	+��k`�~H|��'�>_�:�_m���ΡSgY!Al��f��z��U�<��ɭ������6H��U��+|��MV-HDe����Q��۾;AbY��n���:��-WH��6�q�^�X�1J82~��w��0�c��+�� V�jt�&�:���!Ä�W�o��K��u����pO��-����pO�_p{�d@<��׾��	�v�|�q�h�	-��ݛ����{|�NSR�N�U���"�g���z�R��z�T����T�W��Yso{����^x@!��r�����}���]>~�h�^�/����55j�.��뛁H�3��%`Gu�ce5����]�=9;?�]�e�֖��M�vuxC�^<��~��t����Z�%nC������v�*A�kް��8eV�n2@�ȽTj$s13	mn�������-�ss�K�����=ܚy�{�-�57�v�����-P4�(n�ac�/�w�>o���������a�+�ۿv<�˛M�^���h*������kӪD�A�r���uG�9�bbnzk�q��o$�[�"}r8�[�-��Vx��k���	=�)��M�H����>�~��T�&f��&;o�t"c'���˵;����we��.���4h��/$�k��ɶ�򝀂����U���|�4!p�w2`��Utlb�9��[� 4��>ET��,���oW�|�k���(�qR�:��Ƅ�şE��ӌz]�z=
mw��<y7Z��8�[��:�Hz�L�/�;���H��~����z|��c�i�E�k�xxpr�O��@��𛤆J�����-�R�G�#x@Q�\�D��Ju�ƥ_&si�)��i��v#9�4�Wq�vvI�I�55jP���5�LV�Y�jHx�;IWF�G�G�Ia/�
�~�sQ���h�fQ{�@�M���Ώ�9fn�Y�]J����ٱs��}۟>���s44�Gc��(f������v���ͳH���sE�?i��hT�F/q{��3H<���U��1f*��{2�n�����!�-D���d5���O�-�
�����a(�lG��}d߹j��y�Wk��ۧ�(�s�����ZA�kNh'�w�4�'��*OT�3�ƿ9�2Mm�搔v�+�8攃�%�! R	'���kf#W�7�M�;`�($�g�����[���!���aɺ
��K@~8��u�F�&��[%�fN�}-��R����U4Hc8-�N��e������0Ad����p�r�٢����x�:ͭ�ď
/������Ee�0�-Dl�z�}�'�d���8�A֫�)���j}yA�Q�9��L��44kTj��.�b릂��y�T��l��bm�3K�q���$#�.�Diܨ\��"��S�
^_L�E÷Ln�4\�����e�n��[3��Mv��C�icXQ��afvWGDEW���5ŀ�[���Ӭ�q��;��Sl�s$d)�@k�'�Ss=�
ҺB���[Q'�CS�f������9r}-L_��Հ�˅�[���_��/˛,߬�?�TҜy�F�L�����S����
7Z3տ�6K�\*�˫{�ͲQ�R�H��f�O���5� �P����'�!��3]��_��
pΫ��z�x�%78���C���P�s�:\ٸ���V�(��o�(,��a�r�y��(�3k�}��UV�i���s�Hq�4D��#���ǿ5�n�B��"�'
�󣜙;�aX,>O��17���5���h!0���!c^1"�2F���$7
Tv%�"��p7���,ln�.�u4�neg���ˆ�i�g�
��&=�D2z���Z��!��<&I�Gp��H�F5™Ϲ��Bd��v�Ss��C3��vn�����i��%� ���T�/5R�'�z�࣫���Ƈ��
8�i��lU�+��a�� _�{8Y���:[�k��
����v5D�s�zfԍ�r`%��90�	�ڃh��:1�0�Hc�tz��o�;�N3�Ō���6���2]s�AT�/̔o`�I��o+V��N��Z�B��޲�²^y����sir6�e�$�Q��W�Oh͹^�Q��n�C>-�=����������
ΎI{{{ƌB��`%r��J����s�#`�X��߉��W}�ݯ�-Do��?ߔ�@��]+��(`؞䍄d��A�p��2��ɿ���8�U9 �<_z�lC6������,�?P|��R�9}~M�/.0���Ò�:��S���w�ؓ�`�W���ݤ>B;�����l��Gb6US��&3�Z���́��C�����Q��h`:0�C��*��Bc�]c
���������Fri�ʖ>$g`�/���k�Izg\���[��'7�x��l�::#B�ʞw��+56GM5_qX�1c��qK��E�8`�_�&�Ѳື8���0����]���r�,���N�C��$��O�T
��W����;��=|
�4���j(��e53�W��S��[��r�0�x ��>r(O�'.0��k�DV׹1�!H��y���Ž=fh�����#���/C��Չ����z�"�=]��Qm::���À����7)SU� ���:�N��O1�nú\�ߧ�=�5D��W=�FNM١Q��|��7G;C�QĀ�m���\E��g�"��|̧-
��Ϙ�Y�p*F#1���AB��m��`2��;Ck�2�,����J���>9渐��� ��T0�<u��Z��\���[�A����^u;4W��B]�ۗʷ�����F���u�7j.J�4r���ڜu���f�9�6���ϳ�d�E5�\[��;}��H���3��oH,�=��C~��z/Lx�2�x
�cK�Rs6�?���X�B��p��0�UYL��7y��xm�=��tQ���
�a�`&"%XJ0Ĉ������0[̏ȝ��Y6u�u8�= 4�0hI@o��
o����{Ycx~�ກ��/����3�3��1���s��Кi�W�Fm��2�C����tf��?�(�C��u'l�A�M��`&|F"%�`�;(q�Ь��z�Cn�{iM
‰��H�"9y���y=�*)���x�<l,�|��$�$������t1�$
�9H�Ё��|o�}�W���1��>�[�"/�"l帚�@�|S��a��Ye�[���;�����&���}�}a)��u�xBN����7�%߫��s�Y��A��L��c�����]�3�w�V^F1��/ވ5t�'p�3�C��0;����i3A+�!0u3�q�vp)�Q���G�����\��
rD�8�]���{B	9mJ��(�d
>��]�.ln�:z_Kh���;�r�w�(A%��������G/����흲�Wt��g'�Z$&N�{Ɋ,p��5^X�Ȟp�<�ەy�Æ rv��Mw����馒^�T�o��J`�U ��j��.��1_w���c�hxð}h@�Ö�4�҇?�8�.�L�KQUH����c4v^����cq��)"�F��]
�m��i��v{Ԡ�k�K�!ɀ��͂���� eY(�5���{����W*1�1��B�/��7�L�τ�X�=�q0�)xY���{�cHs&��[��2�����E�[ü���5�f��Q�e6�m��o�D��֞=�o�h8-!Xơl� ����o�g�[ Ρ�<�Ɂf%ݴ��;@n��I;��Q��+r�ަ����;ގF���9`�7kD�ؖ5��ȝ1ウ�j��Y�cS_iHg�`}�Q��o@�69��^^�ř����z�8��0�㋤�p��Z�\�D�t^�̀o���H�A⻰[+L}d�2q���@��6>���MB*䊗Dܱ�y�J�~g�:X��e����������zMs�f�
�����sJ��cG,YkO�A�/r��<K���Q�*�8�:r���f�S�H7o�~�tI�|�|AoY���O�޲�G�F[#|���Y>�]��2�3N�Zt�}���>�֑'4����T�9�@�e�S;�B%l�9o
����S�&�M��Ku��g�����&4A�s�:�(sJ��%2�0YqLF�)��@�_]���9<�#�Of�1��v�؍��_a�@�zҦQk�4A�pp��9�Lj�O�l�cܴo�pᢖ�k�5������=�16w&g������$��~��3�L�I*4��	�̞�8k����Bh5/nn�,�Y�A_Z� +��\���d��Pt����B�S��7�;��y��\|'� -K�s�5�\iH�l6N��Z󹲹��?�?���	v�ً�P����xJo͐b��%a3I�bNiJlA��%�bAؐ�T,��P�
�p�uhaZ0LR.Q��
s�7K����&�_8Ok��3��j
�������h�z4#��%��$���B#����&+�ʾe����/��|�f�%��Ï��<M�g��#t���w:w̱���p��Z�_�p}m�CQ��k�:<�ɜ�*a�O����#�Û@,v���w���G��+����@/��_ء�jG�ۏi����Y�0.[�
�dsbp���ry�n�(�jJ�;B�a�{�٤�����&#w�ܪ���M.�����x�-�,žN(��W�U��l��n��x.<���N�~�����Ùp�d���H�D�
luL���j��lܑ����By%VKp��ͧ�d)Qn��R�RRu�)�Q�$�dw'��pW�^WU�����O�YD�{Uq�L'�W��o�)�EQP4���9�>}��pkn[���	�crY�$Fe�E��7����^#�D�!��L̢ ��
�L��OJ�i��DA�7m�Hؽ��|cU�ɦ�O����
�jt}iIp\~��
�֐�@��s2O2��`I�ӂ\lw7���qإV�j�:�"q�X�D���y���S�����_a�<FH��{�e	�մ�N�c;p
t�*\��W[�?i����j�S(zg���B��S��Y㘒����I��%L!�����������&�V�k�o��������F��/�i<���h��
�#Ʊ{�烗:�ȵ��~�{;�kR�Ez���xx�%
!E�R�sq���LN�0}�"���G$���IY��ܲ^����H��6�	�Ҍ
}�_͵e�f@�eN�|L��"�ɭ��]z���n��cB���D%���
ve#
���a+��[@�ZT}�?`X�튑6�^�1���1����{��y��w�܆��T����=��'H�ң�yeC����u
^.�E@�
�o�D7�k��i��Q��T�����a�)n��X��|�j
^�ޛ��"�<��{/���4/�a�j����ru�s�@��� �Ψ�T���ӐW�.��Ơ�QE+��<�K��h�M����c\a{�W�c	�o��	>K���k�7ۧ3��s$(��ݙ���i3��hHݮ@���̲�CY8, +�awg��9�v��RmCg���@O�*�Ձ �����m8�ok�Ӊ���M��ӿe�n�Pm�;<��H���������i�Q:����vz��O���q���*�F
���/�g��QR�{�?(t@쏖x�A��$���}�OG5�c�{SpL�z�O�[�_Ͼk����t����X�ꫫ>���t׿ج�B��?�~<�`l
�ó��<M��͎+��'b��-`wJz
�\�T�&S�Ij��!������L�p��C�U���H-͞E�%�#q��i�v0=�\]˼�}��NN�����o�P�[z!{I��~�z���0��Ԩ��Q�{�ir�n�z�Ǯ����nL-�6E���ĩ<�����zh�5"A5�K�U”�Mm^$(;h%a,���S���e�%��IRr
��Q�
�h�7)j��W�
�k�hY�n����lm
�y�h����1U������9xc��|�K�����nˏ�9�&��{!�pr�����
�Si��a�>�����I������{��g�>���>c|H.��u���_)��v-3Z��#"<��U��CdC|w�~���W�z^�����gM�{���z�Bn)� #f�Q���jR0�n�|9��E�,LJ���.�՘s���{��2��Y�
(E��)�ߔ� �* 'C9�*�@�$D�J����f.*�EC#� �6Ņ����(�hY*pp�@װg5!�=<:����{���3�c��3iUm��Y�0ɝ>4a����~h�1��jp�i*���a�ަ�ϳ{fwB3F�-��f��HS���Ebq���逐Wa�m;�Ә��g�`!��`���*�5M{A�j�S��&�%��߮ݑ���H����(���Q���670a����?�/�;�)!Uz�pD�2���F��!3F�Qz�b�@�.Vo@�W6�A
��m`N0G�^`;ECBS�����_%L �]�����9����H1,��K%,h>�e�y{Tg�<3}��Q:�/N?�ꙝeL�b�w�ش6��3L"�D���W8���$A;- R�`��G;0P��+���R/�c*oB�A��/��ј���PT�_�=���_�[b�u��Y��}���ܶ4�_�;V��B��F��b�k�k�p{B�#�2j\Qj�ل��//O_������ɬh�kL��x��E��5�fp�����Q�
@	���,�_{�i �;�m�`q��]/J�>��!��P��j�S�:�`��
�9��wˁ �Ԟ�GF��4!��l�`��JI�0�M�O2O���6]�κ�=M"ێh3���\���hC��)��峂�.Bu*mn�M+�J����k�4�m�I�uґ��Q��np��X�Rۨ�X1�#�p�\�J�-)���;��J���)�o��w]�6�ݣޟ�2�H�E�MCFn��頿�P5�q9	��bU�L1⪼o��ޝ�z�
�C������j�X����HJ��-rY����m�;�Y`R�9}��q��.�a��C��T��Ot��cnIJ�d���(�������J;���v��΁
�-�"�|]%�X*%>�7җ����(m"8Nvy�����K9�Py.�wU�\Ԑ��\U�kxY�D����Y�}1�~KgL��Q�{aba�g^DT�B�]�j�!���L���A�~WO/�qov}�$�*_L�ݜ=;�%(·�C����o#XN�N� *�c���k�ܡ��i�$lz�u��ߥ?�'�[�tx��Nm7��۵���Sh��	�n[u{��{��@�������G��T�{�~h�s/4\��*D��<I�i�|�ӂ����c��
[jo^@@��pa�o����K�8$���!#"�0�S�$!�ˉ�7���G����a�Nd5ė�k�>™
�³>����*âs�-���nE���A��m]�U��SU��[ee��~Hԏ���h�7���o��o%��x�Z��y��:��Jl������$6���)3_1�R��jTs��G|f�9|
����9�'��-0���?}�|��!sSE���7�S��It\uxb��c�î.�w�=Z�j���@���y��׌2S��w[�Ź��2�$Qub`�&n�e�MѨJ徃fww���=�7��o�
IC�#��	�P�;�^�֑u�V�.�v58��
?G=�1��!��5')l����O���7bS��cW>)6��^cl�� ~���zEy�dx^�w�M��4�g��ʄZ9�\T.*̗�ij+�K��9�5yp���dnHll�t�5�N��<s]�J*?0�i�
�t6F>�
�K81����qVc�
�I��,v^���H'k�K��yZ�, t��$�U�
G�	�(
���i�M�2�8�0eۦpJ)�Pk�Ύ��o�q��"y8�0)�"j>�:t/&�#��:HS��/�5O�?N�"V銂�~1V�
��� _h�۳˫���%
�4[�@�ʑ�Ó�iP�	S�f+=���u��Zꇠ�6
�:_�5z��ix�´d[�9��a�>���o�
�Lᬧx2�Ne�@e{���Ql=�n����^�/ʽ����Z#!�=ĺ������'v�i�wfݯQ5j���3P0��jj�Fz?{����O���Q5j����O�L�L�"
���=#�U�XǪ�u��zW}`��	}�`zY��"�m�WRV�Ł0���c:��w��I	3Bͫ�U]�wN�������Ķ@�<�<m����
P���l��\R���v������#@r����fd\��Ǜ�#��/~��߆��Dc�$S��1ua�	�L��E�L��ܬ�=���q�Ro,<_&����(}�I�g�O�����l�"�}��rt��*m���:]b���S����� v�˹�^�Q%퇌�p:P�`�"\�f���wb�{*��0:���ǡ�K>���+�\�u�9����v���wc�_�%P%��2v}hqV��wW�_�}+_`~��l�fw̻��:E9�(l���j�bت���?����=.�e^)���s�EYZuh׻��.�\��k��.�}5��d�
�D�/Rt�<�)��[栀����#����h~������"��z�}׆m��@9�*�㉰QG��5d�{�����k����g-�l�>#N�V�ڑ���b�F�U�%�k);
vQAz��u�!N�Ʃ!Qb��I��ȇ�J m1�b[&m7���:�n�:3�����}Ua"wm�v�,XE:�}U=�QW�AY�Y5s�~w�p��l��o�9�b.�]D9�/��f���2O�j?��4^�Aȇ�A&��Q$"��<xcŋ�e�k��l�� )�
[���5(�9?_YP��~���]]�W0�b4�1���Xov��$�p��;&�ɛ4��7�1�Qw���	�b��B���~��ٲp$����8��|������Y�Ɗ.����G��8�r��x�r�� WӴ�P���R���6a�[L�Q�^f1�qL��Q�$Vj�q\L���cwG�I��'�A=/}�}c�LB�B���Z,n�B�\>�}	Й��ԛf����yHv�8Vصt���o��6B�j\��`;�Ǫ���=jt�;�~f�����Q����e�mV�d�����V�:Z���*[s�[)h/�|�Vj2�T0��Qߕ���jZ��e���]�d(LPY����EA��I/�!E	y�s�sg�fM�Q�3S�Z���!y���sH�h�'��ܐ,�>�^`�,������
W�OC2����$f�����N+�����4��&�AXlB�(���-+1��J{��Vp ��*��Ӧ
#���!��	�T�_��B�Py�*0%c�bp��0w�� ���<8��7B�l�v`��眛9����n_.�k�>,��U0�g�6�@��E��`�$i8�[̸
�,�]Q}��3VGm�5gn�a��h�@9+�k��>'ƆC��SU���n�E��:����0��8�8���B�v��x��N�:�i0*3mD�<i��1w��-�׆@�E� �Y�\{�ˑ�wۥ�,��#-�M�W��񾨫�u1!�ǩ.�����V'�Kw�]�ʘ(y�������r�@ʩ��$���5ʔdO�^Rq����k���	�!�_��?%(�(a���d��r�k���8��K�i���PZt�~�i��΢����Y,��v!H�y�M�:�w:�t��$������Y%n�S��a�.\�K����?�C�Z�����4e��W��#FI�b׍
+���9JN�c%�̸�_;�Pn"˿D�H���pŋ�%]Y]�*H��GK������}�,SHa;s֠.�*IHɌ*�/���Y�W.GX:�V�ш�'�E^sP!g�+�$(�L�3��@3�V�u���������_�0:V}s��\bW˓�/I!X</�_�GoǾGπo-yx����A𰲑�U��#߾�ɷ���v�Ί*z<�+���p_�/��XL���_���/M�2٬W@3�
��qk��Q�t��DΔ����k!z_�Y2V�o!�w���ͧ��Ln�}'�����t6�Wi�p�
K��&����6�ߊ��;2v�G�v:K��(9��nV���gދ����Q�W�I��1w�P�$D<��-��t���y��\�w�B��kl-o�?!��N���B߀��
z��07>�����tUGu'An���ͣ�h*;J���+�P�uV�Y�����*��V7u)Y��_�D֑/bA�-�ɭ���v�{a��k�˂Z౎2�P�s��O)�:8s����+�GA�B���txЋu!.���i��/)n@;H�<�=2X�M���VپZ�G(�꾜P�=�B�XB���44��IL�A�
��c��auژN�'8��
��u�J�|�9@��Y��j�$����m�(�Ejv,mT63HV5�6;�?Kį�X��-���e'S �LL�Yru�t��g��#�r
��Z���o���\�&�S�~��j!�3"�Gi�e���I� �khؼ�I#S�֛�b�>+�c6�m���x�äf�58������ﲠ���� �5`K�7�C��	k)���kT|��cC��3����=<W�	G$�Mk��ļS~K�=�mU! �	y�[��F�sdɦ��fu��z|)�F_�q��s�u��U1�1ߴU�r������`���WrQ�����Z�8=
z	%Pn��fTJ������RhQI�n��XZ:HJ����P�ݕ��:9�hX�F�z$�5����}���`(�h��ca��,Ǎ�9�~D
�))(8Q���`��:fl@�5��压!ee���>��祢舷���#t��RȨg��h���<�/�c �r��DH�TJ�o�a�^n�Q""7A�Zy��54��HV)�!r�DR�ͩ�E.������}�A֑&I�!ݢ��+�[W[�b����g�$*#�ר��QV�|?�����F���ͽ�tG���6�Os�N��m�C�0�M놳\D-A
�X��h
X�M&�-��?���]4kGx�M�%���;a<�3�S�9p|��Ƅ��Q�e�n�r�C׫;q��3H&]MJ��:�pi��&�n�Rg����j�D"&���˯�ڲ�{ѿU��^f��/�7nYm'��9�'�a����k��~l;�<:�E�Ȏ�c�|l��L��v��,���=��[3�X
��c��{����߯��s�C�}��ЛGY�?u�zx<��F&�wX6���1��i�F�����4�(��ħj��q�������'w�
y��tU�b�i�<J�K���:�O�X��	����2b��g�E�A�2rZI,��4ZsH��G��KH�� ?�1�%�w�j=TD�k���YF�X��"S�V5@„]iR�
]+��M��j
���
8ޮ=!���͜�0M`�?�rW�[�x
|����7,�cO�D������0����Hw6y���bU�;.%���1�f0$T7Ã��G����j�P���ܣ_�����f�a��pa�;��;7��:-5z�'^tME�-�*P�.�����\7W0����G�����!Ĩ��T���� 7^���/Å�k�s���S��Eč(ϝJ6B�Q���;�M(S(���ۥ�k�>��:(���dp�O�ڲK���k�ך[?p͗�o�<O���~=PL�N�2>zJ�r�Rɍ�&_Q.���3�繳G�X�[���ՠ	o�m�����t�l��tv�8�P��+�s�	��MQ�KR>�+
�F9������^a���QYS@����*ڕ53��c��)}����s(��Q�������&f�����i~4���ia�)�-G�^��9.�M�X�әQv���h�*�^w}B��Ckl���U	
��Է$|��X�^W�I�u�~��8_�/��IU+��ޕ��L��1_!(�V�EhbK�!�Wc�Nc�1Ҙ/�Z3LKLR�.^B��!1� ׇ�5G�겮n�)�$aހ+DmiXt 9*�Y�B��Xb���EV�ǟ!�����=�mvt'x�Pr��K�P0�
v�db��^��u�,O�0�4�	ó ���_&�Q�(rn�-N��R�$*�7�C�U��C��^�����"�^TW�N�h����+_v��� ��oк����~J^T���*-y���}F�q�j C?���U���Hp؅]o[H�t((
�^�h��ӡS�֞��
�積�­K<�� �E��nF�bE��0�w�ɑ��%�6
��-��|�x��\��&����U ��5�;���#]�99���ݓP_#i�9�2W�����2��z2⾌0gEӴæ�G���^1O�g��^}�����οt�O�9J����y���<C��uQr
��� DZ��fd�S2G��2���).~��Z^V���OeL���t�m�p7�*�4~$	�^(,��p���Z9uAC�� -m[�ںW��-g�r�H�t�
.s��Ħm��F^�FQG8�(�-�K�^M|����
��@`���}�1���M�ƶ�;Je��d�*0�X���x�{.��nH�F��nss��,w��n����͹�/�ǿ��͹f,�^Õ�)�O�nu���٣��,7rG��拥�)�ʺ�<f��.��
܁G��U�o�w�����@�
@3��,�c�_���e�
RYp�f^���/����
���=FLD,�9mq0�O�&���# ��aW��G�|�N&Z7<������ן�����&v%��� 0@�=�3�N��ͽ��:<�#ܸ|E��Z��c��Ah}�@��T�+fmV��8�rU2�����1�IL�muo����A�(%���ju]| ���9~� ��B�|�:-�-̋7�ϢZ�q�E�����tpH��o�wzJƍ#�%��xl�
�JR�.ojK�Pa{�ls�@흅�s_��jb!�OW�M
Ψ��Sb��53���j�\/���*O�����<��#m������6P�:�R�A̫��<{J��5�+r�.�K�v�73���mc\�g��2^��J˽嫨����@�A"���h��M�&�n�iMT��A�o�@�㼲�¢��ψy8��2:||��!��̴��;0����O�{�~,����k >Z
�UC�[�*���������?3�o�̧���3I�@��^
D2\>Te7��k�5ȅC�-�\mh�ÙA����L�b�x�{��ڍ�}�@}S�Ys�<i15Y*Y`��Kmh��ՙ�rc�nO��TH���)*:��$����Q\�"@���i?͛"B�iι&�,lh��S�A�(d���*���3I-B�C�2'�VTP�m
��5�q�VӮeP�hG)�&'��y��H�
�{nX��W�b��,i����~��!qo��#�#fS��9ܼ�^%���^g�;�'%�yՆ�
�ux�ۨ�Ag�������X�
��>{�'�ڡ|�+O��j���10���=~���!Pt���Ӵ��lph����7N��i�~���BY�
�-Z�:����Ft��R �R1t�
C\�m�H����a듳~�ͳ~}�(i/.�{�>�ѮM��m�%"zoJg�%����SK�
�|�l�[�0�t���M(4N��C�,��a#�=��.���gS?HX
��������F��!3�߁."���.�P�*��a�p���v��ְX�v�>�~�Q�n�"����SKM�	����&୘�w=�=�W@�T�议�d�K�|󍳘kb�%c���޸zX�Ob�˫�z�F��f]��̑��A�r�b]��k��U�:�r
�@�֬u�S��y.�\翮�
1M�0ۭj�U����%��u�2�&)h���c̻�^D���K�K��}�q&Q� ��
�_�-2�d���A@��s��E����(�	����IQ�
�� GݨLl3-@�Ar�^�v�$�a����p^��0�1���;��S�\�xH�@}�La
�Xf8�.`S�w�����fF�BO�Z)B��@`TyE���Y�\�pW������)}Y�&�����6�5�ϼ<��L|bX�><�P{�o���Ě��v	��%eVVr�PB�n���F�C�t�L-�U;���Bc}����6^���u/~�.s���)dayGD�{����Xzj;��}��i���SD>�XS�}~�=��8�{��2TV��׏����~r����txJ����`rj��Lz�Z���ZՈժ�J���B��-$��u^��ȉ6��C��ߤzz�l!���~V��ֿ~��a����s�����%�m�2��m���1��8brAw�n��Adr/!B��9k�r&kț��5����œ�+L�ŏ��ɘ��@Z~@�<ة(3��av�@^+��Zڰ���I'HQ7�r>S�+����<�".ƟQ'����<0�v��9�<�y��a���&ݦ�C��}�G8����6s���.��l�X��)�t~�OV�O����
�uYGTE�|at0B踮�y:��;T�ʊDD=�Ä<���o-� =�Sځz��,F�����f��f����L��+D]��ʭ�U�l���-��2�i�� RULLJ}v�����tX����<¾�\��`:an0dTs��M���X~�L����*kḓ�M���@����14l���.1Α�������o0u������N}�`�:h�Z�z\���(bz�Yj�MqS,8c0rQ���y�M9���7���1a�x�b�_�@"�#�u����
�N�H���	��)8@�]��P!k�"U`\���Q��侹$�en�I��¿p�����C뒃z5G���T=G<@]A�l�t�p���#�:����z�:�́�eB3�����
{+��o�����/sB�`޷�JBQ3�ޜ�kg�b�ܮyL���I����e$dg�i\h��z�x�7܀�T���zk>:�gO��.]�[�&L3�Dm��KrҾ}Gard
��"~R��d�kϽ�P"�v	���A8ކr��A�?�B�����H�Wk���ƈB8
���V��|�C9�������o�7c,v��#)���•zJ���25�rQ��e����̥��S���r�Y��QQc�YY�#�% ˊ(��!}js蠃�|�=bG�oh-:�?�~k�%<���G�x�O����&��hsTy�	�����v6�ɭ�6��!����ϓ�(@��M�l3��`9�]�e�9�͉}���c�3�j
�g���g7����e�;�o��Q�d���!Nuf��:щ������4���[�B��e����n.�>��Ef�!�<�j�"�Γ�+�(Ԛ�"�Y��p�3�*	�������&�r-���7w����yL����һ��-�'�x�5O #�Ēf-��$�F	��m��NZ�1���KՀ�g5����s���`�Y�%
�����v
���G	_�*8�'���������E���u�#P	#mQ�"2$kd�u���r�X���4�9����� ��H��.�gS(e&>0�y�x��Y��7%��XR|��i�1�
��$��R];g��%Xd�����
����GS77��y��M�Wk=�Y���%-�е�ю.ȡ�^z�%�n�L��9���j
�%���N�����6�ؽ�w��t�
:�������u7Á�?�d�,2�d��3�y��+Υ�$@ce>��d�9�:�M�Cn,����͖U@e��`��p���ar.m�m����ch�MR�ʉ}s��Ԋ7oA	�2H[�0po��^�ؿ���d\�~��`?��ʌ&q;$�n[<Qr�[U:"�92t1�!�V�
Y8�4�7��a�w]g]I��hV�e1;p�0�f.V����df#�Q�ZDLC�?^�VwsZ����F���Yᛀ�vX:��ީ���V	hYy��(�D8ƙCƇ§��|Inb���=�ZC�Bs����-\�)�	��v�j���Q��-�kT✚E{+�^t��m�0\Lk��Р�c�~yp�ϳ>�z�?ﶗ��r���i���]D�R<ă�5B����ǩ�.��c�yH|!��(�0
 1�$��6���������g���{,�� �V>\R%��q!��΀��O��V��\n��,�������	|��+WO��|���M�3���*������\~������`?Fy ۟�l~��JO�<�A�1���%7�:I8�����]zi����B
̇�֘O��K>��P1Qr��}@RY��<@@��ڧ�:��[ʈX�v�"��2�|#Nf�+O�_�4\�;ˢ�R$�\�n!�uTfD�R^��xT�%Q������!��|��>�����G35�a�S�F�R�f�?���u��>��x�t"�5@��$�CB��\��g����H�RٹX%XNo`1ʥ�wir[���T���7��W�ׂ=iƣ+���鵃@@�M�2|���~�;�̈��x�w}�2͠�G��\V�C�@����o��䥠ͻ8�w��R(�܂�q��Y�qGW�Y�8�x�oY�z4~�`(I•���8�WBU.f��̪S�r���Iv-�n�wLǵ����(�� �Ð��ҁ)V�[O�x���Pk�	w��jIn��?�z�[APq:��d:P5���-t������V���S�	Զ4�
\]1�P>��jyg.�X�CX��N�)�dzum1�[�DV�˼�){����L��0�q6�]ש�j����o�o�๙)u-���f��m�3M�WC�u�tx[�bJ�Gi�[����)*'�s�bB�㞫��K�,b_q�i�+?'���k�S��uG�ET����d�k��6�t0���XM}x5��G��T]�y�TXdt=������;U��[px�HV�sR`ޯ�}iK���ij�
�v�۝z����J���7�!���y�%X;QDL�|O�;�y7�3�ݙK:&БjA��7���9��4�6+�:�Bgލ�n"Zyk�?g�R��$��!Nr,3�.p���|�k�	Hx`vCmg�/�€�a"���v�=�Vm�t
�,HO�I��i5�׮S�J]꘾*^�هl�6W�#`�Q@�HV�]�Śğs JhEuն�E��M!�~��L�E���|�vc�ˉ����YvM̦�U�~��}��^y��'z���4�g�~�������_gR�谁��J�1�����$҄ش3=��@6� ��	E��a�W�o��i��S<��mV��X	�1��s����Vɭ�|~��:���b���A�\�4��\L&�%�2�`�ΨJB�:��3r��UǓ:W����d��d[,S�:~��v=C�h�\�[p�⸚�m��3�~z��X�'�@v�����G���S�N���L�w�����{ފ?z��Ų���n�;��WɕDiPj��I�*$��vKP�����8�rDAaj�<�✱�L���A�n����S��yUL���,����T�D��{��q*tf.#�F|�o�%���Y�h5�?�~���<�	=�"wx�����+�Kc^"�]���4f��8��)�(�Fɾ!xGZ��߀��¿梕U
f������w<~u��od�wF�����;?�ݶq����'#[{<n���U'"���e��e�nB3Za.K`�7p�f@�l�0���v�i}D1E��@�2E�OFm̘r��<�%co`M�k_<B�AK~�H��7��[m�?�=��{��
�6XY�����i؅ʕYPv���2퍌2�B�[l[D-�ܝ�X�I��t�7��M��A�ZŬ�x�uj���c��ض�ˢeU�е1`͍�H\�ͦ��,y��,r�^M��@恼���Ϲ�ey�))�0R�ZAQ�w.1���[ݽ�	�T�s�A��ό�.��a��#��"�?�j&�4
NOSNM9����,_���݆M�j
�>S����nlڝ�"��s�rH�R��pH��H��@L6[�L	S LK+��Z�J�6�Y�p�|W��d��q�)��T4��s����)
�Dk�_
�2x��`��ٯ)��b8�]r���i	�*"DON�f�9��qȈ�d�0�ׂ޴7�5g�\	�@��)YyI�vص��*J�ͽ�I^)H���ޚ��a�d��$�tB����&�J�t~WYt�2�WᨙU��]h���Y	�,�UK0������4���FQd�1��b8��.�a�N5��~���c��;K,-Ĺ/�57�j祇HJsò������i��")j/0�Dڂ�f)���P}�x%(nn򚾈�ߟ�3�խ��
�xv��d|�m�5{�b%`�8Gk��s��&/G�õ>��k��*/d�����FP��z��x���2З��*d�d�����u@ˑ�1�w���4�
�C!�6O%�!S%o�<Xy�$�im>��`����
�%,P9E�a��3s��Xtq�]�٨����;���:G��t��w����pv�BKĤ�i���
<j);���)1�c�`J:���Ћ����\�DsA	�*�.��pxGO\/�iL��d�KszRj�%wr�*�8��*v��O�D|�ʾ�
�y���g���?�~��숍kK�ڥ1����tN9�ք`�[�iY��&<\�X���
�yF[TM�p&;�҂�)Sߐi|�~��T�US@t�Zb�m�	@jN*�e�5���B�r1�?�K���Sv���q�=O��D�>��f5C��2CV=3vƪN��v'��!��١�0C��{ �����Ĺ��۞�'XE6��u�J�Cn���6~�c7X6zs�k�4f^<YH]�ë�?��$��$"WcE���Ӷ=	P#��{��H�Ɔ
�@
����ml�y�pY���b�%P�
���[���i榐0	��N�b�6R�������f)���԰�ȟٜԨ,+�tg�|�'��	���d�����hL�IJ�u
�d'ıf�i����)�<��.|w�N�H.�'���.��1�G�e��ᑺ�*���]i�(�����b�^��IahZ��-/�@�G(�����t��-��"��y%R	Ǭ���N� "�^ǡE��vۮ��I�U%bz�S���h>7�8|�t��j5;��m�/���&Z��;��-#|�\7)�������c�WcR,)�����Me�ab����&,+�箕&�v8���L@����Z�f��a/K�Ak��/�d�S�f��FgKOb>\™:�'z���}x��aNS&�ÖUӺظ�r�
l��wT� ��i��X��Z>��|�Y��i��)����bgߛ����7h_��;�St7��<�x��Oz<�˜�f	�>!���+��k�9iW:��T<�//�����R��E�s<`��UXON�m]�_�t�J�Xeک�d��ƀ��m�ȥւ�a�G/2�v�wN�n%�&!y�L�I^x�F��Z��,�a'�|�Y��4"�@��&2M�"K��Pw�;k;j�j��u�&Y�+/=#�F�2�!ϵ9b���Rl:�7V��	�𳾥�H��i���B��
e2YF!y�0�h�A�P^�.7%�e�n�&��I(C�ϫ�@J�h��P�)q�/:��,Ze+~��˃я�Q��Wp�	�.�LA���!�*��@�����K��Ȉm!	
3����rs2@��*�/-�
z��DE^�7腋[s�0�Б�}	`��~4��v���y��z�&q��#�Jh�M�@�EϣuE����OEU�1!�}q�9���Ŵ���|U1���q�#�tlia�Dj�*�?p6�}�j�jUѨ:p��B7���y��x]U�C��G�'�t&�;�ou�S;�h�u׽'�VƈC��a�2�L$!�BK���M ��V�^bRd�LQљ\4�%���
��ٹ.�[���nM��(��<����u$�y�����<����Ε9�t�l���h���=!���#�i(�e��BXL
��zY�Ӡ8��W����ô)G�����y�`k�K�섍i��xc�W�Џ�5��r���]������T�޸�^�~PB��Ǩu�4!B����I�ꯓ��Ѷ`zB[�HXb`��%����e��9����(~���G�e%�3�^���y��NśҧBbIZ�DS���N��|���j�(��^=iu�ߦ?q��yD��e�\g�>�\s�����Ȇ�eDW�{�<���yY2JȖC:����h�FV�2+0/̀�!��!�y��e�����#+r�K��i*���gD&�?���Y:{��d��~DM~���9���蜣�v��]�2s��VK�B��2��扤��|ث�w��%@��&�Zm��j�#ȡ*�%��D��)0��s�$�n;�CX�WPz�=ɔ�`r׊�<�u�9#���?���<�rmS�*K��s�I�z��� w������thx������9: �V��@>
����c�I!�p%��>�"�Hĵ�=����qƊ�X����
��A��Ѻ����wո���_���s9��ѫ�d�Ur��<9�\�u�ܸ��=Hy�G���sFL��Ϻ���ՙ��}su:h������>�����]�:���u�q�7��ȻZ�
R��ãd,��~{Dk��M�5J2�=P��ك��Ϟ�f?�H�gr0�}�;D�~�V���K���?Ɒ��I�H@��%4ai;�P5�����8)B�Hv��7��z�qa`�KA�ܦS�f~���:Q�x�)�z���}�Wd��T�����"��x�o���f���� 
�V�dݰW�(�3I���)?��ӟ��<����]u
�������<_4��t�(n�"��� ?�e���5!5!�%`T��sm����nIK��ˬ��J��"6�Ol\6��������.?�& �SA�!�\s�&��YC�ұ,r�<�A'��\�%�*`!����Z��-�F`�'B���Ub��!��(��M�#����v
躤�0Yf�}����vQ�%9#ű!��̡��<=@�<�ғ�J��n��ģ�1��y�C
�O�-��&��\���ws�m��|l�U��&Z>�d��v�H���҆1ZwJ㕉�,m��8}4��R�
in�
�&ŦE�f:kS�ѭ'߀eڿ�O�!ʅ���C\�Ck��ǖ���hfz���� 1W=2j��d���9�`������k\�c�
��bl��
�_@�z���I���]?S�~�M<�x�����G��>n6�'~AC����Bʝ��+�Y��.R�S�>ú�+�����˧)$�x&���˞dc����M[�c��GZ&�D���f^S	�w�F����A>a0?Tʺ��H�Ը��8V���⑸r_�P��J�]#��F��8��D:Fa�0*�n�\�����NB��2�7l�����W�	�B7�8��R�`.�r����Uęc�0�K��������쐌a�&]::��˦��i�6��R$�Z�x�Kd�Y����>���RS��p�v^��x$��/# �������1e�z�0�f���|�-N��.r6�k����(PtO��V�Y����n�j}skSj���_C>g9��j��P��"��'Z�y5�!hW�K�ق��Z(ߓuv��l
���]�_9����S���m��ZN�t��|��n��>x�qc�=�%�t,�Urnf��mY�ÊI*���(YIT���2c2�+�2y�U�Mc��ChN������v^M��ѝ�5�h�?��7�ɕI����J��LlT����p���1�k#�D���4b��?�)����U�r�\�����G��W��^�f�U-�D/x!PF �5�m�0o�vMu.���B�_�9���M׾�y��N�w�*���g�ݦ�~iW�6z�ѿ6�e/YG�0���jm�]c���G���e���\����+����n�(�}&�b��}��7]�8$��
s݆
�I#k#J�gC�ə[9��=K��4?:%+���z�֊L{�~^��r�g>w/F�o-'A2���u�y-5fa����\��O�۰=�E&^)�[��9Z��5V����/�Љm�]�E��*�f�@�B�]� ��~�܃\��"rW��[�
�K
\a4�ڷD���22C���轡��10�
1�l�E�6xO�!:Rm�T��dՏQ��I�l�;Q����hw�,p
Dz�8�
9�Pݕ��:��8��i��;f*���G��11h�x�8 ?���x���2�7���X
�̴�(ے�M�S��*��G��
X9�GWtN_`5*ՄJ�a�+���?h?7C��2\1��-ra�h�e�,�~�K��3�#���PlG��ُ��O׋d��߯wt�Gg@d�7����v#m�F6�P������~kL�i��Sbts�����ODdhr?�E�������u���.���)������PQ>!Śb
ɻ���8=sTIF�M��u6âX9^���$�E��J�2a�R��UP����+�U3bw���,KЎ��88�M�BO�?�j�� k��1����kl�څ���	9^��.�c��H�p�Z5�+!gq����Q���8V�c������@�m�š��-l�ȓ~��7z:���m���窟����_�
�?���W��4z��Թ��2���L7ؽ&���P��NS<�Jl��%k�JG�W%��"_�,��:w
/�/�<ubv@�����nW��-�qx�97E���/RI�q��Yqݙ2m���Un��%�?Y}�\=`��j��dzK��㿦�%S`�8�
�e�������&
8Tw�C��Q�ME�B�LG��������@'*)��`:^1�擏!���v�&�ވ^�lVWKS�v�Du���d��u�-��tȜ��ԏ�=�x?q� F��ԤK���M$&\B'L��՞�H>I�z҈���oD|�K�4��?��jϔ{yS�X��	 �*
S����{f��}�5�Y�>G����wWWx���d�&!�����{1��
0$ƼhD��iw���WT9�۩v2j0/�^I�͉�4��R��z�"��±x�n]��Q�p����wa�EB����Gd��	CL,w�'a�ɒ�U\��\K��
q�*�Z��  �׹�6��ʟ4�F��S\ۊZ=L�[|��Rd�����\�ai�pXE��&X? �G��'��c�B� ��鍩]"Ɨ��Xͫ2�O�e �d���bZB�n���0]f�s�?B;�9��5d;BR9܊2�H��|+ș��.BKk���N^�,��+'��o��H�Nb0F�����UL��RL'`C�1��ܵ^A��#)�i�>peK���7���90#��V�����c!d�q`�˘_<��\���b鱂�s�!-�y:���Ts�!����������"��kfzB��zU�
f��Vkf�1�?��*�z�oÍ��Q�+�!2���ᘷ�Oi�����3 ��js�T[Civ���n�SgNa*�M%� E��X&�P��=>/�ҩ�g��B�vȍQ��V��_H}xR�k�5p/Iq�ں� �/��RG�}6�{�M�s�C2�*pT�<��t�-�Qy׼̂:f��ǿ-rJ/ �f�w��j�s�?f�/����u��Q�Ł��>iI|��6	%q��Sa�2�8ka8A\����&>�$d��ת�H���QU8���6���3WD��^�4cZq��b-a��5��KA^^+wn	N�
��d�ff;�\���.�@3�RS��bK$ww�� �jI���^��E��z>����Ax�y�ay�jŖ��Pr"X46��9�:���&��u�V�za6�����W��"E#���3�(�3�������p��&[{A���l����8���"l8#��iR;��]�I��a���	���\���^@�$���H(��f�6��X�� ai�<?v	#^�d0� ۝�Uwv�#|x���dMv��	��G#�]��P�\7{4������G"����z:��4��"�$!�k�`���U��N�1ꕎr��I�N����m�z=\�AP͒
r�Fr#CL��/j������ŀ���r�}<�m/��J��% ��_!���;F6l��0��=O���א.�m"^V���dX�,�!o��Τ��I�,!7(Sl��2�5`�w�iՁ��5E�Ԝ
�� %�@������h��R��T]��D��W-9�SONOO���x[�2%|�u]�E
-���W>�M�b�1�nR/��{C�W���H��@%��y�W�װ�@4$^�k�+�AbE.f6�y]\�/4��
#�Z6g����Ig��p�
�8$[���a�vI�|e>�2y]�Pƫ<G���(8c�N�e��0�!�U�A���RO9A�X�NG.eH��y���|�_I
W��ڰ����'ᐯ"1�,�-~l���N��te�뱑q���V��(:2�����c��3��}�Z݂�$�zF�c�%�o����p?ЯٸF�U�Ju�m!�Ρ,[P��n�,݅`<�1튉ۣ\���.�/��\k.�YeqƘ�8�.�V�(Km+0�1�A���@�2{���4�D�ϧ�*���)1�\�͝��A���Y�(KIK�I㴳�[�����As��E��ϕ��9��f�(M�'� uT}b=\uoEe�K+Y�^�l��Mv'ʸ��-������+��"Ď���@�
��7%T�������0��%��i�0�R'�3u(
�Q�>ͧ�Y��~,�s	(���[g?`�k�Fq�j$M�y �i�㗕:�1�Jo�f����_פOj�	��e�ه�Q�����dIl�ܔ��&b3��VY�*�U�J��?hzD�Ɋ��tnS���S�n�O�z�T�C�	�κ���.��,,��g�s�~����]���1��/^��=&�n��J��@���x��P����h�����z˼��w�ߩ�/*B�yO�m>Ej�Q8fD%��+�е<��eq��O��*�r�-r��y�c{�F9�v<],H�^9��'*}5R,ko���(]�s���c�?rD�"�2h�����Ƃ�Y�&�Ԧa ë�����;K���5۸'��
g���2y�R�@tY��@0�M��o.��[
I A�J��j�yְ�T���R�ޟu��6cyNp��r��|{�^���݄M���"T{�QN���m��g���7+�f�U /6�A,m������s�G�2&��>7m&D ��{��[��8c|@�a�"���D|Y�*X;����gK�f8�4��J!8���X�LG��1��x��
D�y�oA*����V([ě�[�|�5�N�$�t<��)�+kV�4Fpx|!�� #X�t�X�ޙ�����w����d{��(�FS�	��j��
u�h�UQ&�Nf�o��N�x�=E��p�͝P��Ɋ�
��l�7`*<�`RNv7��.kY�*�mj��y#x�~'�x��&8��-�(R�+�)���s�(�EG�{i�8}#�'�Ac�×�S�:�05b$�����:���s�˅?�y��BQvYG#n�;G
�u��像������2�����w�����=D�&��`q��wo_F����W�J�6Ģ�~	�9ޔU`��os���Nl�Ş�g�Q�����-�E�c*[/���[C=��x�sŅ@�,*�fՆ�#��Q��NG�Dx���2�>I�i�*���eܔ��A�� "����Wm�T�(lS2��w�,�Q.�l*���Ql���
����^א�r��+�|�7`Y�*�T#-�|_|( �Dl�x
�e�^n{I҈PϨ59L��q��4��@f�U˹)߮�6sm^w�� �)4»4`����%��)��,J����F�
PE�6��%�(G���b������D�&0)JƎþ�R��]Ѭ���K�3�KR=�z�;a�y2mk6��
Fm�e�Z�3�h�� �gH�APH��"�c�eb�.q2���7D.<����c-������dM˂㈛�
��k���Îtpi�]]{�ɸ��4Ÿ{��(b=ާ�w��^#q6^uao�4�_}pW\�ac�͠�����ݝ֠2�/晙���@�=�|�|�O��d-h�nYb��b;	Ӗ�y���o
��aJ)E��ϥ#�����L�+�C��5[q
��X������V?�˳�Q���w��-�<q�ђ�� B�)�
R{�0�_��ea�R�ݓ�	O̞��
���d�G����K�z���:�F;tn���l3H>�2��/H��g��StZ09u�%�0d�\X�1Lpᷠ8N�H��d��W3��#_"ҧ�ָ5+��UT���7�<��|+!���aJi���?���`y�7�&"�&1��b�h���ɯW(�
g����4�c�"#t
��U�4Z��'�'0�<����f��������S?�?��x�H�S�@�D��bs�ɏ�[��6����AI/��:���9`"��9$����V{G�0��frv�29��h�>��_�e��:�?��-/cn�.���R����}�н���ʕ��t�c	􏄔��}��p#���K��m�Y��'�Y9�2�ѿP��]jΦy���RD^���l�d��Wug��{֠r��k+��k1������9�A��,��2��s��L�f$���ev��*EQ[��B\�u~)�8�&!i:ޱA��m����
,n��g��'=n���]y���&�
��Vu�{4~@G�;E�g�1C�G���Qn����W�Z�n/Pm�Q��3�E���~"���6Ꞧ�`��eE�\��ѽ���G����vh�w�V)��<�&�)f��'���Zl%�^A�~�w�S��깻����j-�
!��mME�ޠvU^E��uv�E����aCL��ʹ���A-Cϲ
�5A3T[/�_߃�%�}bL�(��?���?��`VU
�s��/R��CO�S�F�A,���7�OZ�D(��LyUU��C#�4��Ѱ�:��x�E�/���n�kޫ<D<{+����H��0�k��Y�$п���[���͆�(D���Coc�<��gH���O�mc�l;���ò�X*��7�:�ͺ��ʔe�$�\>+j���Ҟkl&k�N�����<�f��A�W(t���K>8�'��D�+"�o�Xb� r�V��6,���PǮG�}�rfK��iݱ�R�_/��4/tCp@�{��%`�\݌l�#�v�;��O�!�7�%pU!#�LO���*&Sbȋ�c�m`71����/}�Y峼l����f9�^��Yp���<29�er>q�	���!
f|Z�������E:�KDx#�@�2���M���x�(lG�оc�rvv���a$<����Nb���62`v$G�^þ�5�86�SE���V�8
��x����}ٵ^l
��x�O�7Z]�Y���oBeL��zEԺ��4��7�-I6��('�^+�z���Bl`y�y��v�z�wk[<%�xЏu�{�ܞ�����	�Gg9é�l8U�ߴ������09���+̤���b�/e��U�c�^�`٣ɩ��D�6�
 �Oq�.0��H�4“��-Bv{$"Rt�B���h�W],���s[V����;5_�9�$��D֠k�",��p;�D�G'��a��_lG�z�#y1%��7��zX�2�bI�l�
�U {���.����r��Չ�+#��k^�QX��U��u��%AW���$Il"�b�<�D|*8��Ԏ���M��.�O7��C�ԧ���ِ�Cf�h���_���=h��d��gk�G����+�o���{�s��� �m��Ў[jc@��d�s���{�w��v�#`��=Q2/����AD�I�s�O��ZĂ�t�����z[e����e���i=[��u@�in_a'���e�I.)^+`��)��;�l4Lٝs�<�ol�0�ż�4.���2���!�}��z�{An��23�Fq�cQΐ.w�w�����N���{{}��㑈�������qA�ñ����
4u:�'��|2�!�?]T�}�z������д�L��i�?_:�3U��Ƌj
���d�{K����b���	�\�4�rֽ��0(�-��ҲRTZ�EWȃe_U��ɽ�!F�7%���5 `�\�\B*�^P�{�b��h�kC�{X"�+~�,D������k�K$��ӺS���*Tw�H��H3[��
��;[��Y�����@�$P=;����s��,�X���x���آ_x��O�YV��Tu��-�a/�8�� s9u�'Uc��1ax�*���/:�f_
%��b�h�x�/��BD����$]����Y�6�$8�G�hgyJ
S������{�,��{V�g�mr���^8���r����
蘵�6�B�[D��+b_ѽD:&ط<%o�����B;�"�F�&�T%��
�l�N(��o�9j�3�c:2[ļ`	��SL� ��~�$!�4���RW0�{�b��r�l��D�գ6,#jf�#��HJ����e���/�l�������܏P^��\'��[��n,<g���
FVp�:Lg�1���ud��]A:���"���h:	6Qظ`-���[�6�]����z�ܯ�����M�:�5����F�(r����@{&���I�L��:�Ÿ��`��~/@��gP�������#Xc�����4�˞�>��8�팫oW�e?9+�8�7l�^���Dk�z���i�1���������l�������]���W��F3���͊?�{g5χ{��/*h^Гg\y��/��*&�9�}5Ny4[�+6�<����P��w<�hק~_��>��@P�
-�tII&p8{�.�y^��5�na}�[�=��w1Ս����e�شw��pe
�l���иw���m­w �6g�<�9��t	s����^Sq4Q��{��)Ю��CV�׽�5�?d�_�zm^��V����~��*Q��ß�nd����f����fi�r�N�*d�o���
�N5�+��ԝV�{ڹ�,p'�vĬ��=8�{*8>�9v��d�����:�Esv�8z�ۂ���qT+���1�8:�[�ul���5��Vx'̘ڃ���+�������M�.����c'��(�`��
�u?Ȇ��H�7X�ZǴ`���|,D�Sy|Sw�~��PD�i�wB�H��vD+�H���O�J���d�����9�岞V��
2��G�p3�)`��`�ju��^V�-H�gK�A�ۺZ/ɽ���\���=rc)4�
�J��,�5����
�Ȁ��6�e��!h��gz2G�i�r��s[������Y�������&Ixm1m�b��h�H�d;�$ⲥ�����"�acNp�
3�u*״�0k�]^7J,�]Z
l\7��(�@�|a�#Y�n�����
"\᭼5��6} W�K�dh���޼�Te:������^����k!RS���9J�~�ӳm��ы1+'Ѓcs#6�ogۣ?������e���Qj�a�i��7[*櫧���|$����e2�W��4��:hp0�-�+x'#ݖjnV�K��z�}�7P�����UѨ����$2����$6ɸ����i����t�nv-�R�\����7AC
�H9��7Ra�j��ԘyusC|��11�4W������ܺd �}^uu_�_���t]�!g<g�inva_8��gH��o�b�	�(��W��Vg>}�}e�XQ�:흽��w�#"�Z
t�f��Ҹ?��;�I�wN:cp��^��[R��Qf*�\�S�0��O)��\���C�.x��|�uzC6*��)�L?�&_L���&�S�L>������/���,��c�Lh�1k�M�\��p��
�� /�oҺ�ڮdS�s�������Y��AAėVLh��Opz���ߗ`mG��-�щ?l�KGG<�(	��H��?+�ǿ,`�G8�>X�K8k:�KŸ��,���P�� 2�Ux4YqЭԶ�Գ���un��~�L��[(�:��7ħ7=�X8�!��B]ʧ�/������$ �֥�dh�%�
�[���13���,a���l��⍋�_��i{���Ѷ=�������$�`������k�s
��zn~y_�JW�hU؀��2��/�	����<A�#�Gp���,is��^��/R�B]�{�ax�(Hp�s�@tI�>�U�,�
����d��]1��#�ߧ��n��;3x"��Ii�Y�� !�,�Լ�-��a`�م��>i�Pk\�N�N�6�y��:��͍-��W�k �+-ҏ�b�0��E�
�'x���K��*�9��F��͢a3�Yt2Ι�-�U1��wm*4��ai�Y0{�9���täBo��
"�M��y�sX�`]#�mh��61��*�;c~4x�&2�rs���8aXh��5�sP��������5�G�ú!�+�(K�|bM�D��6m8Ep�7̓����/�(��3e;�D�WV�Cf��
n]�Z�E]$X�:��В5M��gg�ծ������
�-��0�P��,4���:\r�xŦ������*CzQG��6�9_p��Q���ϡ,mL�F��f��Ŏ��n�$󐁊F�m�L>eFL���N(F�^ʪ|�h���^U�����W��c�GM���ȸj�ɶ)���J3L�R�e?�8!��&gzYI;�•
9�AC���2vx�՚�Ft,u%#�M���f�0ܲ�%NL��\�I�Z<����d��[�97�]�ޚ�Al-��?n�g���`�?��a���u]�n����K:C���F���p<X�Q���a�h�g0�A�)-�
?���v��r`�خҩ@#�-����R��G��RΞ5��{`
{���4_��zW����E�8<K,�(Ʉj@
�HN��G�4K�b�P:�!���	P�Y�80�h���y�T,�':��\�x�o��0ǃ<�?�1ozl6h@�,i0јR�L�h0{�s`��K��@)�'Mp^8��Rd&�4�/J�2CD��)�b1�e�[t��������",�]��Ѣ�?�Z޴H�q��M���3�p��e�a�	
lc!O~�&;����&�[��焍e��t�ΣO�O+��mv�Ƙzj�RQ+'���/����l'�!���E��mL�[�)d�г@�@�e�ޝ��eيE.),�~��!Z���͹Ix��Vt���э�9��i�/��d�.��]�;�<>�7|�D�}����pL��~{	�|wta�*j��"W�M�q����{7ḂĨ�畢���ݞ�팢�)r�!�Vf��c����t�VQ��K��#���:_�Ki����ь5����Z��*h��f�5��H�\�w�
|y��e��#�o�bU9�=����b����*�A������cyH8�/�#~W�j>,�T���x��b�1��$�$Dm<�k��]%����o��Vn���-	l5gR}gN��4O������>��*����cAJB��D�¯���>���>�"}��J�I��&I�]�幑,M"�n�'��Y���iiW%�
�f���1|Ö���-��j�L(ץ[��3'I�3��IHiH�}S�aX��B˵�z��*��	�Qh���E�5[�=#�ڬ\$ݳC�Q��Lb���Y����*�ׄ�2��.�nb�
~�~;�܉^s�C.E����������˔w
���ŏs
�Xp;�z�c(��؎�\�pF�lz���7�8������]�|�L&��;;f&���5����TY鿾��1�]���n�e_�[u�o�5D�T��/������#=�|��>�M���x�x��Sv�����{�E���V^��΍	7��`h�9l��X���"���@Ƭ�����ീf�L��>c?ck��q�1�Fh��*pA���jr�f��(6h�jIU��	�B��s���4��sV:(aI��s����
���W��_�:���.��"|eU;��Mr�|���N�2��X�f��X�'���v�<�9�+������D�櫲%�#�i�$�v��d�O�����-I�����}b�<^��?ִ�jV�1Y�K�'j_HBv��k��N{M4�\��R2h�]KR��T}���kؾ���h%�+�.�`	�v����{��_��5�|,����q�w08���scJ�}xO���f�8IF9x��S��g����f������o�^��go��Ο�<UH�8���Qo��m�wӯ^���K53f��+34�������ܽ�(�{ުB�;C#w����2����[�6F|��悱J�Y�*;Ћ)e���Ej�u�k�Yt�E0W��v_��V��EX�������*��6`��/���IV����9�����U��$��宱�/���e`ykS���rݐ���	��U9o|���E��-<��O�h�;A�7����Џa*�:�%�a����}��{κs�OS�Vs&�V��}��e���xrOjTP���v��M��u5��b��u��T8N	Cƒ�//�Е�Oz�M���c�4_{�=�e�-�׊%;�Җ'�1���hf���\�&�p�u#��ng�DĀx�D�ڪ��"���n�<wP�+�8�*�8�����2��խ?�A���ٶ�輲�t������<c�����Z����,�x��{�Y���X�୲�nZ�@�g�:����^��x漄���M3��_BCg�{�Go&_�?7���u��
�'���ޣ�G6D��F�L
�D�����'bP1���vc^�u�p�)�(E�@m���z�(fu��1��G���]��A]�3.\w]��#f�Gy6���Jx&t���^�z9���a*�H�W��-	o+���;3�IJ�s`S~�����˗Wg_��]���i�_�7��4o�_��#lM4�܊���T�o�V�ӓ��^g��,��{��Srj=��#�:FRD��J��o�Ӈ~c�<�Q�<�8��U�#��Ę��� e?
�%�bl�?��.\y�W�{�f�H�r���!Wg�){��wI��709���n������+s[��n��Q���L�FJ{h\����*��^6���Hؾx��6��K�
�|0�w�\�͇�}j+�<�x7�l��K
��U��t>�-BG���M ��t���“�6��.	@�C~�� (|��d�Xԫ�v|��w9{HH��7���1j����A5ma>P�|"��u�#f�U�K'ŕLj���c�!���\c��^+u�3k�.����]�*�p�җ����$�,��aFXW��	��x)����S�$�¢;O�:�bʼk����ij�@���C�ul�ъ�I�Xk��������i"5#vc�"�xŀ�D{AM��HK<ϻ�˾u�`	|��{���b����Ε̢����N+[A
�Τ®p�|o�W�6�'�2ia��~�D��k4��"0/���w&X@6�xtH 6�|HЮ����<]�&���Ӈ&�M���9.�{8����LGkR�Y�^bb�C\M����5��q܀]����v6����=�B�Ͳ�S�����̠&����T�����z�}{���	��ւ�r����8����g��o߮V���g�����f����*��nϪų%�Y�f�ҫ�3�][�9��u�/�_��8y���ΰ�e�7�-C�)~���>��_�����+W���1I�,l���ㄠ�%^0��ƶG�|���h�ް�ft���l��ۨ{5XY�Nx��׋X�T�m��ǕP�r[-r�Pڋ7;�tg
D�o�%949O?H�iN�������'��\G`��0��k�_S� �iQ���>oI�E)���p�H�yr�e�O���-�/���i�{c��t�=�/���G��yI�Er^�k/^�ͮ/��l^[��O���nb=�LJ�����n����Hq��"��ꦧLʔ��,4P�΀ȩ�8�C��s{<8�p{T���M�`s��,|�zo|�,c�!�,y��KWa����U㩼¨�L>Rd�e:f���Qj�?��r���r��2+�3��.���/�Ժ�?��–f�����3R�0;��E�Z��Y3���?�6�~�K�4���]SV���e�9_	��*u	���irʹ���iw�[.A7��%��Ie61H�Y�l�Zɀ�iX�U�9�/K�r]�|#
�ω�8K��TI����ԩ˥yH���x���h�V���}�t2d�bԌ��cJB"�fU���0?����p6aG2o$̚[L��Lv	C��f�������
5a���@�����l�w2�� �6�Lx�9�P-�B��P(
��`����\AX���I+�O����c��6(l�Y�8��~���
����%$���9�t���r���,�ִ�(5�9Xj�E���
y!��o�j5����(ז��l��(p=k�K����֏��Ֆ��li�r�ɸ�"j�?L�?�C�Z�Xg��C ;WP�l�)�P��3&��E����y��t��p�ͥ�����!���)��a��\�^�`����˫�oο}�'D��XJ��rs�fo$T>ݢ(�÷I����g�=��YH���=\�[�@]T؀���oϞ�|q����ۡ�R}�f8n���h�J*$�B�
�r��Ճ\�
�����������o���7flmՖ�������a�5�?�>�m<*�E��p�òe������
��p�X�p���h+��|i9阔Uz���"7�I�}���J`U:g��E�3h5��L����e�-� If�p,Z�9�7z��w
�#�jW��I�W?�k��uz?�
#���d�z"��#V�
��D�����Fg�t�ҷ���=�[�?�D.%���-
I��?��ƿ���]ذ��M�{�_�[?����F�� ��#ڰ�.̆d����*����[�]CV�`.8����ᠽ�0"ջ�8d�N�	�t3ǯ�-������}�؋�sl4j�(�G5��)4�y8���md�P��#��z����n`ϻ�ѧ�{���>���K`�xN���� {�5.�J2�,��*$I���č��n�w�fo#&,	���-�@PZeg9�MLv�ʖ��<`��*(a���z�7��nߥ�:�F/��o�����׿�_8�-��ղ@��ҳ��x�X�tm�;/K%D����~���i�w��a��a\roz˪L�Ga���V5	w�PJ��� ٠]7�"AAG���uP������7�0σ.�� ��]��0i���%f����g��6u��	uُ
g4�p��J��!n���d�uͤ���m��=%VU*�b��3 <�-u���W?sdDc"��LFr�dz������,½��aW���՛o̐��Z™C7���$C��QZ�L� �j(�{�b'��!���p�;��
�u�ӱ�( w�}�	��rnJ[
��K�c;���OJ�B�E\���Dd<�.2�#XO�s������$E�t03/Y��H"�@^�
Z���?:4>n���f��j������m�ܧ�a=D�C����!�
�gf�,9˿�D!�]��k��ח�+>�>�"f�*���%4��"3*�rҬ�Ӆ32 �1����z��tg�>�9�N8N7��`C�V�,���z�+�Y��vn��ާ;}�q<��1�p���K�^�
&kg-�Rd���A�.&�e��8���Z�Yg�恷����]�ߛc���9$^U7���bt���ˋ���d�����_˱6]M��M �I,���4����������Ӎ�Ķ���E�=i�5��6�] W&,,�->�F�A$=��p;�D�6ba�9 �:�oA��AHEN�E,:I�e�=��ѿЫ9�������b;��9	+v�lq?n��x	��e�}>'f���8PWa������we*,��sf�N��g5h�C��Ѫ�d?�1mV�T7
�s�3����8������Z`�H �\�H
�bؔ����> ?���;�h�ϥ�^��:�V�X��ĸ��9zM�u������|oE��:d�;1`�H�>,�&�M�i��4�>��f������S��L`XH�\��-'�B ���|��=g�!���h��1;��N�/��ޔ�;j}�>a����zl�K�HH�!��>;����+s�7DU�*h���.���ߟ�7Z��ߦ�G�uo_B̧�E'S�D
��W�!Bym�y*�T�`����3���̍"C8��`vχe�5��tJ�S�Mu���j�A�#3 �5eJ|{vszY=��ْ����=�40,@�,]M���♨B�4W��N
JRD1��8pM����4լH�'��.!��6���5v�!�
��j��J��3
����3�5̽����'	՘WDB�٠
���P��N�`Ў
�
�D��$�6���S
r;�d�޶O��"�h�FØ{C�1l��=/���z��v�j������R��cg8L�Ӆ7<)��׋�
]��]���9!m/o*���x�[+l�t�����v��#G?X5��]���}m�%�韴�t�
�7Bܤƭ�
�4$��;6q���S4�p�����FH�V��D�>�̙�6L�5��x���:���*B��լ@+c����Vr����Y\�um�r
愇EB�8Zs�D�aS��De����y�?	�j�n�p��ڗ|j_)m�T���ʕ߀�j@�r�Ou2.ʕL�} q��/��e���+�P)!�,F��
�V�&�+���+F�"���F�N�qtW�Z�e�0A�K���P���)W|p�ߡ�9c�����O!z�9]Yz��ci�%�=�K�n��y7C��@����Pؖ����9u6�nC���1�0��b�	�ړ�����i�mw�&q���bk�Q`�ѢQ<�f[Wf�7��~�#�e��A�E�:�ėfP�G$���p̒�;��.�ň�-E&��D�HhF�>Q��,!�7��=L�'�I���U��fq����r�c�ein��?t~`�_�mb`��A�Og-HY0����_L
ܝ��*�T��S����ޗ(4��
/G���*�r����h�lG9��L^Er2���yV;��Eh]�9e7���~��X�4C�r{����fb!.űGa��f�c���D���i$�Es���nc/(D����g��h�W�y� ����j��3�Է�S�=A�ʪ\�@�RZp)����E������w��0�ߙ=��1��}�	�3ǫ���v��d��/?��Co%�J�����
F֌JkL"~O�5����'�11�:���e�:��C�t���2���}?� ;�"Cdp���F�8$X��(p�Z��j��@p��"u�js�a?P�9p���ʆv�i��%>et|8�K����\	�����\
̑
0X���U�����~M�7$�1T�s�����x+����UP|Q��i�iݽ�%���:$��_��)Kz���*��,yw���Βo޾y������m������ū��O�^�9��̙y��<���7go!;$yqf^{{zi^�7��7�.��Oiݱ��j���N�&�X*a���aK�.<,��"z��a��A���f����4`rg����?i,�������a�~��{O���%<����'�Z����S�(�}h��t���	<ݰ��8[4��ޙKrJz�c�f���#�� 5�wVQC����D�E�9�M�z)R�ȥ*����rno����(\��\�pC0����;�R/�7�
���t	hh��Wo��ӷ���w�o_�1�ڔ�/�/�\��X;9E�����
��0�3ڣ�IO}$�${���Dj5Ü�<~~�Ԃ#/�Z�ݴV�v�-cr�s$������a�0H��a{;��6��v?͒%矦���������D�޾�$�GD��W��f�q����]{A9x*Z�����D�US�N�ѭC}L��p<��z���ˮK��eFR}�~���_^�	npBDb!-5�'V�"��x+�\�u=�h�ُ9\MgA;'ARcz�Q�M��)��x��<t�B�O�
�
"L2�i�Ֆ@�3��w7B�z2b>�D���d+�$�.P�PDL}�]��������`��f�Ly��7�^8��\�
	;pyR����QIw�x��ً�W��9�|���[[�o�ӷ������[X��.�Lp�v��w�.���C�n�y��m���-A{�a����\`䣇i��{��QS�ӣ�ɨz���a$Y/��h�D$�i�D�5wN����C�7�)��h˅gp��U�*b��ye��Z�S��D�7u��-�����DS��=>���s�s]��K����(�i�T̼	��A���-h탭��0m\H�iw,��}�"4��[k�W3.*�{2��0���z�f<9	��[�����U�c�n0ߠ����ʼq�\qS���>��`ʘ��S
�����CB�����0���)��2]��/q�ZC����%R�U%5)y��bC)�Eަ�J����2�6R�؊��|���1[ ��'9�"�W��]�M�gsfYWH�`#p�\���@|Ky�J#����4�rg��W9܏��ċ�<iB��OQ.�Ѽt�{�3��p�(��Q�u䬞�_�����#�踃u���	��	.Mc�:T����[b`�<�w[X-ۇx�U������#��d�Dsg:R:�M�8�,!~A��d`b7���y#��~ؠ���,~���HH+�ѭu�s��khG�����D=}��������4��$k��
5Eۧx�rh��
�1p�M�a���9���
�h��o!&䉃�ӡ��~Htfc�f�4TP (���,�k�n�~���&�����Q��Vms�����ޝ]^��a�R�#sc�\X�K
���%����#}?8��m���X��H�}r[�� �F�)<ȝOx�_��u����i�Gx�lC�)��,t��b�fy�O��ҍ(��~�Qq�Y�=��%��N�i�ܞ��	��!����� ȇQ���OXׯ��M�vdS��Sk�+Ex����U�ƣ$�&�}��Uc����JM��Q�1b@�o������?�i;�3a"c�����f�KK�e1���/�o����1���ŷ���W��A�)T�#�ǽ����^�w�
<��g��Wd� ���?M�2��j�ov�NaܛN:~}��w����������/
���������_��i-�H���g2&ح�7�!�g��o��dz�(�Cu<G�C"tfg���]�����֙{��Z}������ÁD���Y<�r�l��_��h�3���Vo���E	C��/ڰ8�>�҃*~�A��l��H�>Ve�0�bl3%�%-'H�4����RE��ʷ}�B>�Z3��춳?�ͪ�\��[�F��g r��O�ұ���M�]O%s��z�n��P����@�B�}��P7�߸�W��b�R�Z�}�
#Kmɥ�*:�A��(���C`b"�nc��֘��!�!�9t��Kgޯ�i ��{�ߕf��o!�����Ao�`"����%�z�sr?�;�4��yܲ�n�	����I�B� ~b�:F8�����C���ݣ�FXB=���Hy˝њ�G��=v��R^�E#��a�C�%=#�WJ�cI_I��o��;�@B��Em���	��.���KI�(m =����\�L�F�\\ꐷ)t��v���I����N�;�9�:#w#�N"ۋ�~�������N��I�o{���G�~xy�0����N��z~<���p���8�]���d��哾>��k/]5��L����P���o�?PK`�oRQQ-���
litespeed-cache-es_MX.moUT	��O`��O`ux�����}xT��$��^{/ ��
��(���@�0�L����0g&!�&]��i��*"E�PTDAVPEŷ��)3	^��{/�7Yg�^{���>/�4�E/Tr��'x�����l�kI;��}�u��!x�`-�G	�B�R�3�K���v%x>��
���`	�+�T8S�-�|�4�E��	F�#x)�6��'�b���]�����	R�]�	^E�������*"�N�
����$؈���N�]V#�(��	�!�B�;�m�@�"�M�.׵���`��K	^H�i?��ԏ~�%x	�Mi�]{������W���	��� ��>(h�%}я�	��%8�`��6�\�f&#�v�ɠAL#�E����\L�=�Ř�ZA�+��=���#X��*
o"X��
�?1�g�����@�B;��Lj�x�'x%�����0�c|�	c�
c^_�=[	���E�0.Mf�C�:ts��a��C��&�ono?�ϩ~����qq��I��wl@p#AB%�O-�p�*q��c��r0���(��@�v���5�/�(�(��
�D�_���vQ��ź��h� �qx"�q|V߿����r�'x�Ϣ��_�h߹1��<���1�G=�7l�yb�Gv!��`7������-�8�U���c[	��G�7���][�y�I�I�]���	��χ����h������E�:�?���&(��x�^���X�7�Q_	6*��P8���+C��[3�������M^>3�w@}�@;��qpD�2b�rb��1oo��~'X��=h<� �ۣ�0�O¼-��}a�A�/N
B��F��=h3t�t0�5�?>���~�E�>�����
CP��!�CCЮ����p(�G���o��hgۡX'݇<C1���1���_��o����~'x9��a��:��mL����ׇa\��1��0���C7lB��p��Á'��c<wi��p��Á7����=��:t'4�4���F���3��k$�g�D;G�?ёh׸��#��5#��6�D��v}8���H���Q��UGa>j�B��Po�Q��Aa�Q�c�8
x2q�y�(���Q��F��'5��������@�{?��+%X�����`�l%8����M<�����[G�}�Gc|��y�n��6��{���1ȷ�`?N?������L��h�汘�}c1.���S�^1��I�%�8�Q�0���?wk�����~�ǃ4��-�c�;l�Dth<�y��׊	�M����`�8�있��Mĺl>��i"ʍLD=C	vg>;�rd"ƥ냘��� ��|����#����|�'�_�&!���~�$���I����оO&������5|�C����:��!�WA��
��LJ�W?��f)�0�?�0�Q����'c4����|2�10x���?�g��7M�\����G@�_\��z?�'_%Y�����������z�������T�ύS_[Í��}�T��}Sѿ�S1�M�<Ϛ��آ��M=:0�u|*�u�4��Ӏ7���4��a^�M�yc�5i:��t�K���4��q�6��3�1Aӿ4�j��;4�a:����g`|o���-f�^1��M����������^��������t���2r&�;c&䆕�c|!��r�|Y�qЕ�DZN>z�B�ڕ��' �<���w���O�}k�D�_	�b��� ؛�i�}�,�u����ޔ�n�O�B��,��
��[gc�2fc��D5��l�����-�1O��>�
�sB��2�g���E�.�s0^�����F�g�E}7(�c.��2�`.�1梞�s�.�^�Vxx.��\�!��C��y��=��V�x��v�j�<���7r�n�u�,�~����,�k棟��c�|=�������z�Z�q���Sҵ^~�Y�(���Ҹ^_��m��c�Ά-�{z!�/X�z6,D?�\<~_�?�|�-ĸ^��x�"�c
߽�P������q�0O�a>�-By/-�|`����h �#AB}פŨ������k	��U�.A=�����hx��eK mX�~��.^����KA��/~߷t!����R��%KU�]�q�r)������:���H�W����ן��9��.�:�r��eXw'�-G{-G{C�1�#��N=��i�r����S����V��f+ 7�V ߘ�׬(���=��W�����y���:�+���J��a%�5���^NZ	<y��$�Wb�¸�[�~B�ϯ�\�u���*��N^�y�r5�UY��_�$��r�j�g��X��V�}O��X���X
��o5�߿x��j�{J��k��R�U�`��A��`���Z���Y�u�����`^?\���F��Y�r��Ez�Z�_��x-�(����UkQ�kk1�b~~_|�l⛭?���:���u��7�!�����;^@y����/`�G��2��/���_D?꽈�iد��Eؕx���"�����4��7߼�}�z�ў�Y=���^B����T��/z	���K��K7?�Tx��{��C�
��z0>�vb;���оS���}���e��/��K^Ƹ}�2�u�F��d#�m�����6A�O݈�go��ۈ�ݱQ�ɍ*O�ʛ0�U6a~mB{�l�P�	�`�&�ǡM���7���7�;lƺ������o3�d3�=D��ͨ�͠+7c]����f��-(��[��wlA;�m���܂�lA�E�������v�-�_�قy�~�<���W�w��|��ٯO[l��	�|�*��[A��l?I~��z���o�k�ӯaR^G*��v^K����Ѿɯ?O�����yo`ޖ����
������	:=[�oB~?�&���m�'tކ��
홿M��6�džm��]���#���m���혷+���M�c=������Z;0uw��Mw���(����~;P������ف��߁��b��v��Kv���w�oܢ��N��\}�k'���8`'���wwb�؉�V�������o��;��8y��A���Ƽ<�6�˛oc~{�ǹ�`�n�����݅v�܅�ٸ�8����|�vc=���k�[�.�!od톼ٍ~-ߍq߱t����I-�=7܃yo���s�������u��u��`\���~�;��� c�Y���Н�b�Uۋ�4ڋ�޽(o�^��c{1>���?K��=�o�ڋuy�>�w�܇�����Y���ڇ�Vxl���>��wU�{xp߻���E9���q=�.��ޅ�t�{('��d�{�;�C�>|���{����ѯ�c�{�����G{G�=}�h���?h��������~����������~�t��h�ڽ��=�?��Г�0.�@<L������4�!�yʇȿ�C����U��tu�a?l�G���UO<��
�?��,=�u��A��^?{t�!�'x�`�!�;�)];}����P�ǘ�'?Ƹ����a���15c�o=|�>�^z�o�a��0ڷ�0���	�L�'У{����'��]�)�+=z��
9������x���#���G���n��a��]�}��g�'?��_�s��爟�9��9�����~<j��%_�?nQ��%�_�_N�r�_b���%�p�Q�[ףX�}�b�GO9�y~�(�u�Q�����=�vU�
t��W(��WXC�����W��i~�����+���1~
��{��>��נ{�}�}�&߀�����Lg��|�y�E��7}G�����ҩ�Pn��a��Gp2���^xL�;��kr��Q;2�8�M����ۨ0O��u�%�JI4�?B��'��?���~~?���'0�OO{�@}SO�?��������៑�Ϡ��zڜ�<8�~O8	��y��hW�_������/����u���ѿ��_AO�
�*��0p
�|���S���^��A����=�Kb�ĸ��/9
��z��4�Ԛ��N#�?�߶�?��u�݇��Lu%	}��y� ��� �����'%�8n �xer���Vy�'�� (����%� \� ��~��AnGB�g�:����$YG#2�=Cp���Yn9;I��uN���sP��L��$�t�s�n"A^'k	�z��<��Z����d�Y� �F�	�d�B���Cy?I���rͿ� ��׵�]�|x�m�I2K2��;�Ip,���I��\.�=<�����0I�Ue���dy�A���>#HC�q!�?�/�%�B�^$�r��������"�u� �\�~e\���r�d�4�"�Â��?�	����u�8I��H�L�>%�|�K��� ��%(?���	�YK���痠�k.�N$���K1_k	2}{� ��\��ʺ��~��2��#
W^���K��ԇ�u9����gA^��/�z	]�t�k�9�c>�d��������
��
Ի�
�Ƕ+���+0��^��=M��+��:H��k�Կ*I��P�,|F�嚓���:I���_����s�5�4�L��2��d��$A��6,c�%�E�k�\k��]<�u]��{�>o�x��uho��1C��<�v=�s� ��@?�܀u��
hWʍhO�1n�n�8�n�߈r�߈~�p#�R��U���*�7w�g�*(�uЕP��U���O�`=_��� �y��(���7�'����8�V%��uר*�y�a�Y�x����j�7�:ʯ\�:�qW~�VǸ4����Q��h�1
'WG�����:���PߝK�5��&��z��	���&��7a�*�H=�I
��%��W��?7c�ߌv�z3��A��]�O��u8�&�����Y�<Pt�Z��ڵ��f�0ϭ	2��ka==D�)�Wja>�k���k�ܥ�1kώ�>�w��^ֻ	2�]A���4y�7�&�rΛ'�=-�>E����;��������ۡ�*ih��4��i�iȷ+
�xI�$у�dy�]]�����a\�m��r��c�����1�����}�T�R�����[�ow܂u�q�m�-��cnA�܂���շb���
~s���_���
���A���y�7��������_���
��m��^�!�ٱ!�soC�wTC�{�!�ɜ�ȿBÛ�}o5^��UC��y��}����0O������z�߲�Ў����;n�>B�����\|;�o�ᆷ��f�z�x��v�J�0�F�;	��r`�;0��<r���;P�w�_��>��j��.n�Z������O����4�:�j��}�	���&����U�ͥM!g�h
>m�u�LS��ަH�t'�տ����:{�N�;��W6C�A�GC�?��ʮfhϯ�@�����.�w�|��]�O5>�nУ���zN��C����w_N܍q���QsЇ�́?�́'����QϤ星�Y�>��xU���oV����:F0����1�%ʝ��h�����`K�㧖X��C^JK�:o�<�����c�槣�]��?OG�����(?@����������歀�Y�0���>JZ���,k:����[c������bzk�͋�ѯ�Z����`���zg�gY�o9A�c�j����D�]2��h&�gx&��X&��,�r&�Û�X�eb=��	<��-�����Y�=ڢ}����Ǵ�x?�pc[��q[�}[��sۡ���a^�����^�㸯���uU{�C���;ڣ=]ۃo�������$8����У�u���7�B��	�~[�z�J�v�� O�vLrMd�����5�1u���t
ߗ
��dc<Fkx~6�k}6��G���|��
9�u'��N���:wº��	��s'�ӥ��?w�|6��oO��t��q\���v堝�s����Ks��s.�w.Ư.��\��˹��ٟ�=�l�k�㺦ڹ���i�����A��h��\�
�������@�o�r��=����uh7���P�<}�����nhG�{@��}��,�܃���tyw�t�$�@�W������8f�{`��@;��x���cM�{����j��^��z]Oȅ?��kq/��c��^���9s��L��O���1>�^X�W�B�
{������¸<��<��t��?�y�����rho�O��H���ޘ���7��wz����ǃz����<��9�{��a�x����<��E��7�P��y�y��/��}yh��<��_5��z|u��S��gq>䱡��+���_T�b^�{Q��z� ���W��}�K�\ς$��-&��o�s!��#��"�}!�-Nj ����/���?�]}��V|��?�tliq���S���� �� ��� ��P�w*��A������99�zN�!��}��0�o�,���J�5��~��:�n��#�pJ?�����~�w�|�-�y�'��D�>c��#��W"H�C�������h�0�>��ZL�+�_by%�u9-�v�A~=�Z��t)A���`|���F���GK0��J@_7���Vxq)�e�R�C�J�/|\�rk�G���G;{��8�4<�?���|�?�Y��?���Ѿ�Q��e���eh�e���2�3^��5������0�o�a�D�
"��7`�=4�8s ڷp ����;b=^4H��A7��mA�w�8�b��A�K��=�� ����_�`��`�ņ���o�*A;�
�86��y����ٟC0ޗ
�:�?��ᡰ8�a�a��� ����_<��ñ�i��p���AǖG�v���p�{��u��#�n��l��(�$�W�Dy׎B}MFa\�������5
�ܬp�(�;GGa^�<���"~�ƣ���h�ý�Q~l4�����|�4��[�U�
�Vy���A��	�A��1��Yc������2�9����#y,�w�X�WcQ_��X��Ƣ=�c1nec��3�?f��إ᯴�k�Ao�9N�q�w���:�c�8��ơ]�s@����qh_��(�p<������o�Ǽ�L��_o�tl�	�^�|�m��D�w����&�ߋ'b�7L��n��B^�`��ۣ����P{�F�п��п�4<W�-��������I���a�{���C����
?~��a�)�������7�a��4S����͞�y]5� �m�>v�N�`��=�q[��o汜�(����<�q9�(ơ��g�)���S@7���O>5�V�oO��~9|଩X�U��5��u�m*�-��}��S1���}���@zN�<O�<Z6
���4�˝�0���?���n��t����A'�k8o:��	ӑn�tԳ}:�qTa��w������@��@?;΀��/��,�]�1��ԙjg�	z�L����\�~r̠ǀ;�>v���\*~���V|��y��I��eOa~�}
���.��7/���7>�l�4�|���:Y�4�_�䵴g��s���|���,�O�,���Y�ǁY����8?4�n6�˦�j_��q�j6���9x����ג�3��x\3�^6�2k.�o�\���\��w�b>��<9{���y�c
�a����S�s�a~W��m�|���8}�z�]�,�ֳ(�ᳺo�,�J�g�Ǐ=���Y��O�b�4�:�=tq�|Ѕ��'.\�Xo��}��,����rw����aA�-�>��h�]�п�EH�]>;`��Eh��EX��-��D×,V�f1����{c�W,F��^�~Z�yHY��W,�8�X�u��ߠ%��3��=[�`~�[�v]��ጥ������,�<mZ�v�sy\���|N�L��.[�~�-��oʝ�x��2�Ӛe৯/C�����X����29�=��u9���rЫW ��
���+����k}W`�'�}^����˞�x�<��<�w��Ћ�?:�n%�-��󱕠��V���+!�_�
��J횫пI�0Wa���]�p����Xoy�Qn�՘��1�O��-�t��sݿ�F�C��\:�j
�ւG�B^��t�_���>��:�9��a����h߼�Ͻ/@_���s�����EԷ����֣�[�#ߞ��c
�~	�w���/a㩗��[m�<��yf�Â
�g��X׿���2�ә/�n��˘��ѯhϸ��337��7�ooD=�7�N��	�m¸gn¼O�ݛ@>!8����$��`�f�y��7%[Ю��@^��
�Ǿ��
����z�c��ח�?�n�Lيv�����F�a��^����8�u�:�C���:�����w^G{�x�}�y���k�D����7A�||��mjنy|h���m�m�@G�l��m��v�G��X��n����܎u��v�!������%;��x����(w���9;a�(ۉ�|�x�[�O�-���=��C�m�o�_��.���~�e7�yg�ƾ�5{�\��6���w@'~~�q�^��a{�W?܋~6����|�>��6���]��$��.�5���7��|��>�>�}��E�>�����Gy�#���g�G�?��Q|y�X'�?:@=�`\?>��1~�|�����#�����J=��}1_�"�'A��=~�u����C�LJP�
��G	H�{�c��>o�)�p���?�x��)���G��#X��`�~v|��g��ϐn�gh�ş���[��ў���|��l��W�/�O-�D9ӿy�K��G�n�Q��6G�>� ���=����+ؿN���}
�x�kݏ���M7��@�3�o1�
��/����;�˩�t��{�oA����{�_�ǰn�=�����A�v�0����c�ێa�=>w�q��q���<���M�"�o��h��ȥ�)|�ЉJ?�?��?�O������	��w��	�';�{��ɱ����z��|v�I��r���o�N"�'A�><	=��I��&� �_0?�~��_T��������
��_�W�
�׉_�/��R��)��7�P��a�
�{������+�����o��;����1o[�]��߁W7��y3�@=c����P�����`\����9���r��i��U�����?;�y��O�w�����O�EB�<ϕ,��_Y~�M���;	r��r~Cߏ'(����n$�|�iR��=I���u���'#���ޠ�S�Ů>� ���� �/�҅2M�ۻ� ��#y��<+Y�)A>��,��O�8�v��/�d��d���o� ����d�+��}B�囫�C}��C�9O~>��~~���}Eo'��sAƋ��!(�ʕ�e�TF?�P�GTƸ>C���*�?^����y�]H��m� ����	�L�#(�$�e���> ����u	zV�\�(�1-��2��vP�0�}�a�^W��� ����wl@���YzW������Ǘ�ݨ厥w�%�o���-f����[5��ҧRُ���~�t�(�J�D�[�y	=�h�Fy+Q�_�qN��|Z^}�����L���u<�<��~�����gǘ<E�-���>ս}(��$
�n����/���Np0��S	��C�����>?��3Cο�I�{�󵍇S��6(��$�Mmws������ۣ����%	��J��I�<7SY�q�x�e����S}�Xӽ��9�_)��p���ݷ�o ����}��g�~�7�x�#�u2|��ߔ�j%���ߋ.�#xM�����r�����נ���G,�Չ21}OJa_l��F��_�Jv_=�~��3@���"XDq}�]���d�q��I�Q)�N������{1>�~��;���75�}�	m"��L�o��F����{	>�r�U���d�o����})�A���sr����n��:zwa%�a'�M�7磸U���1-�U��JO��g�Q(�/��[��<�<�G��՜~l�cN�ِ�)�lJ�]�^Ne���G��n�;J3E��r
���)�s�sv%�78IǬ����^�{4g��?d;Ƶ:ӋJz���J�Qz�
�y����+�p�a�@�Y(n�9GL�)�ʻ�~��y5�qT~K��yJ߄��(��m����J8��7��W:���q�'+d;�-{�9���՛�7���M�0��YgM���W��W��y:VG�y<��P	�I3R���8����M?��BʗO����wл���`	�ek=�S�
�t�i|)�;���~6�Ӕx�z��+����Xz��x���nzf�G3*��]�t��k�F;�v|2�"���e�ku�|Oz�)��P�
�K�K��	�Mp�u
����"���?&�u���z�~���S{�kމ�|��R�$�������]̿�����c9���sm�(Π���<3��~�c^��/)���� ��)|5���)�,c4�:���.���1�kG��(�)�?��Aq�9��&J�W���9��c}?�Ѷ)�{�'��4�1�#L˘�o�ƿ�v�$�?ZAe�һN�������_U�۩���َ�3�ɡwP��QxS
�VY�a}+���ϯm#�R\�ep,{���cOq�f��},��sQδ��-o�]��3Q�Dz�<fI8?���W3�,�t���=��*ŏ�|G(���Og���~{��}#�����gR[\��]��6�c�]s��[O����?)���qΎ�B�c�s���S;?�zzP|��s7�_��K)n�a�'(>Fy~�<o��M�2�I�?���gZ�2}��֝O��s�X��W�i�P�mL�(lT���L(܍~}�]�����(���Y����r�S�sZOW���p��>�A��)�7Z�\G�2]u�7�~)�>g�H5p�sវW蹛ֱ^�*��>�p�ۥ��y�M)8K���4��i�f�󽹞)�=��6�����m��3�q.�a��2n���Kaل�{;Y�����WS\m�4�	zs��2=q����>�;Le-��I�R�.�
g^��=��3��4<E�"gY��5��9Ƙm��I�#`���(:��to�By��p}�T�F��L�q�R8��~G\-�Y�[��Y��u^_,;���Hy��{��W��y�)ܐ~O:��iΥ��`yą��>š:���gٮ�q)������t�v�i!�!�n.��w�nѲ�����e<L���)���.���E)���[�swM�F�3�.9���ϫ�����������o�8�4��~/M[��&j~9���9W�w�+R9C)�vG�u�N�X��r��;��Ϣ���L�.^�8�$��H�=���vęL�yߊޭ�:����A@˚C�n��4��A�_j��ڮ�Y�O™�;��x�WDzӨ$�����}ɲ �(�J�9���׺>'8/�|�g]��|�6�d�������fQ���~0��L跀�e%=/�z"؄‹�q��mWl��C�*ɶ1p/�k�ϒ�9�#�nv}ô���\M�ˎ�t1�c��ѻ���g����C��g���~7%�^��(ݬ$�A�¸�}?I��t��{X�a�I�%�>He��C�oҶ�ո�)\�|%	��o�|1�������yh�
<���r��Gzf�[�?���~Sy>�u	~�xG�s�y�=��A����A�~�4��w%8��~Gp4�-zf;�Z����:h����:;��)�i�;���L��
p���\�z�s�h{8�z=鷓��߬�Sx��$�Ca��e}����Dϛ�;��l�c���(G���{Y_K�����3��i>g}?���
��yL���`����5���[�c{��Z�I����J�;y��O���%�;K�-4_�����R}��A�ߥr�4���f؎�q�-��E�f�����›u�Ӵ})�d��2�(�v�U/J�M���X9��V�_ӷ!��+��b�X6�_kM��y6���vEY6�4��j�i࿇4�I�SI�{Q�?N��/k�����o�$�]
�8�y�{��=G�t��h�	�{.��ې�Md9U۲+��:�zS��w7�;�6����i��&ᾉ����6=�O�7w(};Mۙ�=�g��y��o���,	wM��<��gY��w)�=g9��M�����hY�*lM���Ǵe1]��V��4Hӽ�&l[�߯��ܧ�!��Ӏe���1n�3$�^��l���^����|,o�I�%wiYe�֑�-��eKÏ;��
p�!�c(υlg��k(�B�2���w�M&����L�mM{��]��&�O�
Y'��p}�¸H��F���<k�W)�,��K��'�_���^cڣ\������$���p��kM�h���~��z�v�g���Mr��ä��a���?'w��*�>�˵��;Rp���|.�^Jw%�X�p
�=����{_e)�+�U����$��di;?b�Ey�|Qz~��
q�q>=_N�5�l
cˉ���;�=C�)��U�s�o��Ie]�m�:y��c潑�)�P��k[e_#�GR\MN�a�=�!���'����//�D����b���qg�d�����i��o2��@��^��"�?t׸��"�~1��u�"T���͏�[��u�b�@%Ǣ>�I"
_~(�GÝ�?�r�(�|�`(Jux����/-.�4�Z���P,l=HY�bO��z@�7?T\�z�ɞ@�ZVX�.
�^w�'f`,�CF�1�!�2�#�pԠw�����Hx�0�R���S�{�y>����"4$i�Ls��􋅚�n��&��P�H*͏Иz��,w�'�ܑX�mD=�3�6��MJ�_�3R%G�?B���|HGM*�/���y}�|��#��V0�6<%�J�6�uB�h1=�E=��>�pg{�U9�h����za�����5�F$Vܴ���{��|�W�VR�����E|wVcԩ&�Ҭ��Wj�ϭ�>^_��R
����djHI�c����z�<��՚��^O�Q��s����5k�qȏxJ>o�u�1~����Z�ͦ�f������֍�d�0~�@ T�S���T��4��|��A~*ps���p3郫�;=T�e��W��u,�N]2[��B1�;�0|�?
ie̎QO��i�d�h�|�}�1��"_��-�fGx�i��|��P�����m�ͩG���ih�B��ys�<O~�X�S�(
��m�)�1vR)̨�	'��(�<;�՜�=�H�<F��9ʤl��O����]�u ��	�ܝ	��\����3jSa^�;H��2=�ݥs{+�O���R!D��"yE�4}~#�\UN�, )��p��(��>�����
�����Y!�/��{������ħ��J�Q$��D}�w�w�@=�x�4̣�^i��#F��O����~���by���.�҄���e�7�p�;��
�YQ��M�5C�xp�	��]��e�u��4}�T"M��4�f�H���
r#���`Ԑ �Pa(⧖2I��dʉ~yb�ƈ�O�"4�T�;�Ȥ�����$QO�_*5�<�<�ن�V��G�z�����/B(Z��E���J�GB��ĝ�R��p���2bJ�����#!o,?*D��;���"O�[��_����eLr�(18&���9���/Q�#�b�B���-q	A\Z#�<��	J��i�.Li�PJ��݃eV;�	����DWX�TB�/�!a�*&�A�Eʨ�F�Vo�b2�{yea�a�sb��+�r/#&�򕥹�F�z�B�T�7g�jybQ�$Z/d�`T���-&�FB%�	!�%��N{���Sf��ܛ<��UAr�q�L�'����P�As�?Ʉd�鉄S��u�B/ d5�)�(M��Š��R;�0(�_�o����P�%��I�ud���b$�P#D�K|��#�^���D�%	f��I�X���ˎ��x��"�i:/�n[��Y�.��&Ă��d��D��D�'5��0�����K6u�<�l��#tť��%q�99�si:�BN#~b䞄Ip{����`m݄1*Nz.m��O(�2�72s��]���|�-��^��݆P6��#
�Ԥ�7$P����eD�,��^�_-��+0���Wf�p�7�š P[z����(�5����ԓ`A����!�y����Cs��Q�;���e�u�˲��ޘ,pK�ai�Ղ)��L�E���p�Uޗ$L�X�@:��Q?�l!��4I�3�O
�bB�G�![������Sj"�B�Z�M�w��J���4L���΍E��t�jW��gb&,��S�T�Qu�b�4G�l���6�0�0ɹ��3��`*�v$�����g� ��8���S1��8I�v���q5̟��2��q�|鏹�Z��w���?�B��R������7�K��I?����{�	�S��.&%-C�y$c8�EՌ0m`��a]�g���h$$�&77��-D+�"	w ٮ�L�����m����Fh��-�Z�-E-�r���H��"�8���6��>�����w1�lK1٬#����c(��D�m����q�3rrݬ(�r����#]�`)��i�Oc��&���R��H���
�8D¢��Mp�Z1�qv
��9M-u�A}��Z,k@������ZW-
<g��>���xp
@���a�����u��B�S�����a�����@�s��`n5��bnqR%��F�j��K���,�4wF$���-!/n���HOByE>�IL,�@q��$K�Fƒ��;�-PӶ��Jg1���=B�a,�ʴLD�X�7�Bk�8�\�V�x�(��v�C-!�X֜�;T � +�+V59"�-ք���'�1]��.AU��tb�������D�M�ޓ8vVj�U)�Bb�߅���H�|AiF@���3T�F0V(���K(>	4B�
�U��E�2_�EE�eERSp���
���I�L�+���b⇲�$�[�E�[AeM��ZF�T����h\,��b�`��&�š�4gJ7��(a�+J+�N��
�����w"�'���D֬%q��03“���O���Ҁ�&���,�{��&J�CDR�M��AsVH��y+��=a<-M�q�~"D�^(���X"D)���8eR�H�S��Tm*��j[9y��V/��Yq*��׊���YX�������;.�)��9ߪXbG@�w���D
<a"������e
Q	��9�#٠�f%󈵍���^l��.T\�'q�����6�H��؉ JzL��l�Di�\$!��U��l��%�i(Hrr�Y)�vUX�S�a���2�I����F�t������V���
;�Ӊ��RD��|AFi��Tu�2�S�l��V	�+«A�:B�0a�`Af0Joa�`]!��x��6�S�3�s`�����	Ę���	D	�.Ԓ
b6Ju�DKKޥ\Մ04���0a:D]}aW]ѻ������(�
VT�&)2�5˯if*�.�G�e�)d!%?�j��@�����vw�4�H�P�T��Ԃ/��Y.���Y�"�'O�~�Cnn`{�T�X�>O���u]@�m+��FB����Vh��i��&�q��\<�:ǚ�VUK(x�ʓ�;$4�b��^wĢ�x��|c�Z:�h�F�����k�ȠIB�v޿ʪ3n�y�֫��Xv?�-��Դt��"�WQa0K6Fy�d$�*֗Obǒ�φ���RNj�o�2��B@7��'���%��o����f>#*6����K�>��Tӳrܤ�!..`���;��:�3�3I���&3���[&C���=~M����8��D�.��Bh=8�{+*'V̊��+���`�01�������X8t���b���d>���'����9�6-�Q�A+J6&t��U�+BhH��3V4[(��Q�I�.��c^6k�����[��	�,�Va��:W��h��֬X���TE�n�7���+�>��%�A8$�����s{��iC�sy̰3�[Oq&�Yz�}��@NM��D�B��6
�;sO��29[#�{GnOA����8��ƕ�0B�~!��7U�4\;!P(,�K��r����炂�M��QF|>x[ėZ�,$>��H�ڜ�҄2���Q73�H�T�W�N�i��͕J`!��*�k=��&q>$������v�Q�A�ɣ��,u1�l޶�="UGCa��?�,�]3�#��(��&�6ޔ�(�'E[�}Byl
���AaL�܊v��#;�嶑�<��b��)D��aL�6=D<8�������/�YBdk����ŋ�q�:��%�z�J�a�w�B�6���q'6=$֧���|��mW㛚���6c����j�-[����"7
4-f@�Z}+�d�/~�0W�i�Vú�4������L���٦ʏ3�;���M��e�Ƅ�:Q�eAO1Qa�=�����)��d�#E�{���Ų���B���T��<ҥE4�RZqSm��D����.��ɰ'± 1a�`|2�I�əjҳ w�]B�0tJ�2�.W��	��Z1�fe�*�K�Af)��
֮]<fi2x�X�e�yA���Aⱽ�&AJ`m���&��a�RFin�b4�5��E���:�u�W!� $	��{���8L�A�h)ֈ�6�]�%a�:=KT�b����	47�GxT�%�妌&���3;!C^�w���Ǣ��z�Y,����4�/�'�O�*D��y�k[���b���T��S	E�S/$ōfs��k�3y���j�n0���`��px�`���2�⼲]�1HׄtG�RMJ5
�]{0����KԱ��\�BF�G��t�n��=�;͑�%K�+�������2E�41��<f���D���%L`:�A2X&�v>ɠ���D�@ь����^��ll�cJ�jAu�QIk
�,��i�Df>���hB��iLҞ�H�o�`-0�� !@8C��w���+p�S�D��b3r�^ٔ�n�V7_��R�0e��%N+_��D���6����;�S��"��i�қ3aR߸����+Xk��>�gv�m5Q�N�����-�V~2�ܵ�p�Eoj�3�,x�
���� ����ؕ�%i��\�`���|�N�x�7	���aU��("�eq���w��i@�(�7�#,Plw&�򰏒G��ij�~�Ǒb�\6$;��]��β��+��czn��:;C)��&#-!g�?�ð�Aܟ��c?!��hH�9_w���KJb>!O�\���k��"�~��q"w	�Hu�.��Rٷ
�O#��BL~���͊��^q���o�B�>��L �������Ԅ-C�rg�[�M�lWI�4>‚J9�	���Ȉ7�R����	�]��f9�@q�sº��ك����4�Jm��cT=Rd�T���U�����T�x��8c�#� <z�;�,K'+pv���{;U���bYW]It��jkwװԫxBmɮr6�֦�Y�q��X�[X�gv�	;�;��`�id��~�%��.��VQA��p�CG�֖��hl8��e��N������(_�t���O}k�*��<��Ӻi��Bߊ����QiP���!�=�Zf9��)��QTH�Ír��2~JP(p��ٹ-�4��D��HgΠƙ{�����pH���;�	�q*���Mn���斲��^�B��F=� +�~����e�:R����8]G�6�ndL�eU�ٱ�%
��!"���&�m%��F����;;��YL
�G�S^Y�烲c����d��^ݥ�7��qZ£����G�|��*�g�)M��ۘd���~���	 PE�#�q���3k�S-v����x_�+� �Ƙ
-UΘY����+S�Sw�RN�nma��RNy�-�TĚ)�$o�{2h���r�A���r�P��x�Y�s��
a�=�ΞH�)�ԦV�Ш����*�'F�Z�
bg�4�xf�~83$���p#��01��L��QZ�G��C�Ɍ)4s��`�;iԱK�d+�P3� �k�&T�Ilkw��4�s��7U!����
n�v=�"C�pvT) ��8�Zd�x̋w�t��v8c�Ă��+9N� DWIV��-2��{f�~�f_�M��%Ľ7[Of�u�޹|҄�l�؀���ޮ��錀y�k��J�I�0��K�V�[�Zj�C�Q�
�ɯ�Q�}��2�(#��|�bY48�QD([&�w�(et�0E@�+#�0�V��ҩ��+��e'z=���Z�_"��uǶQI�|t��i�_(JMKuO0$�J�N�&�_>1,K���X �g��h�_�q�9)�1,��oK�Ş�5�}}�p�5��	�Oa�Ɩ(p�%oj�T�\����
w�`�������}�D&@G�Z�#M:/���X賊O
.R�r<y�ԣB��Z,~�G��hY�g��u�:�Y�pF *
w���K�1��ӱ����(�<bI̢�\k�2���g�4O(	����6|�U�/�Ҭ�<6�qwe?H�<}ؚj���ˬ� �q��u��pIr�մ.GMg&Qg-�is��ds|�Mt.�ug���\�=��<ۂE�$�.�_;Uy��)�a�h�H8ϭ� �'X�2�!��u�|x)(/��3�P&����� ���~�1�[s�<Ve�$�
^i�Z�s��0���<k�����H̊k�jlf*0�ʟ� �VL*z�;�x�[D+-Ȇg�Lq33��R;�Fb��b�[I�k�ӓr.�l�a��#��9A�ˈ�M�rѼ;�+��{�a�����qt<�{YF���J��(���_�������
j���P�����w�*��H5&_Ey	[�j鰶�rP8(��V~6kQb0>R�3�Ũ��V#���f��s9BteJ�4��-�@̀�jw��ɹ	�@-C�a�A��7:���:Bi�q�("M���@”/(g�1�\�[���BX�q��h��Xs�[XQzr�����s �j'x1�\%.�ʂ�8�z�'@�^5�+���Jֶ���L��6B�R�Ԩ2.S]��RdS��Հ�oSa3����o۸��z*���?�F�
z!����uW�-�R9r�q���8t���u�˞v�3�kn��I7�3#���O�+&��� +������!��ɡ�Fy�EV�������2�-|�R���rAps�̶��:��"���I$lV9;��u�!_�W�L˿�>���fW��j��,'�sǬ�����u����5�$Ȧ�����W�n��r8��
)�Mi\�I��>�7��nk����:N1�P=u
�v�h�x����!�I����6'��y���u����W�
��3�û��ͺ��"c ���o%Ks����$
uV�/��!vǍ4[���(�/5ۅ"��z#!�@q��0�W�h|��l%#��`�	A^�54�u���B
���R� eX��A%���t`�Z0�L�I{�6Q�r�_��-�6=�����X��0h�Q���� U4��֑�"j�8���$v)4vw���ڙ6P�n>�� ���1��\(@M��pcD�P��ٴi<.����+<�`�@�uNK�!��e��}j�|RU�@:_�]�,���b�K�
!�QB���"�^&*�c�$b�ٖH��Ji�E9E�&e�݆���(ۣ��=m\����%i����q���s�l��ځQ�XIp�g�49�$��ʩ|��	�
n������O���Cb
4�Obˌەp�Y#hNy�!��NQ����g������QЪ��qkL�W-݃�&os��#
��^w�Б�pe=���N۞�U6`����־ S���%qC���uMY�*�m��VP�}]�?�w�Y�"�$��%1�~!���W<1�vz.�&�*hb�ϩ����T��&&��m����ɲ�kA��ܛ3�
�B����Ufl-�Pǻ���7›pSJV�܌����P�Z�8u�O���&�g I��m�V�,�Ne��&YqU��p=��l[U�SƆ\�an)À�&'�,�]$�8�s�ñ��0������C,�2�d:j	ߤ�EF�n�c�Qa�Ls�!���W��l�"CcT�^<�,�p��4�j�/9�+̥�.���Iץ+�;K>���y��I�m�
a�>��w�S-����Qsd�B��p�S&.��{��p�巢,
Ѻ(ȪE&��Ph9�3z���|nF�7ypJ	�� ��Rr���H
���i�th���%'��"��%+�S�w��4�s�dtvw�h�n���>�e��̎Y�:ȶ�� v�V�׫j�ۥ���,�����u
������<��<ey�-F��2�����=����5�`�>�v_�(�uA��og&5�l&��m��m+ȩ��@"GOؑ\9�0}=�Ձ�,r��� w��vK����-\�-��h���"XGf�B��k@i1�P�����Mh󭸍��=c�|q����26C4c�|k�HJ7���{�Mhj��іñ}����˗�I҈�	�Gq�����My6��ڷFӺte��yi����|z7+��:=�;�i�IǺ޹��	��†�I�,�͏�o�Y�����7͡��VX)�I9,W�z��!
*1;	z�8A��������EV���&6��=�3O�ʉ�(
�����m��ij[w��g��H&!�֤,����v�`R��z�ō��:X�e\��LK?'I�Ģ��5IJ��<b�fY���gH�uza�����<�U����=;�\T���%���9��a��og�\�/��o�Q6��4I���Y���]8N�@��3`sE�����(���i.W��Wc�kZT�%-9�:�k�Ŏj:)��1�'�>��-�a0�lkk����P
1���"�Q��^�啢+���LmcXۍ8C�YLC�w�F��Q��?_O�U U]0"�i�8Z��Aˈe��,˸���f+�:
�35?{�h��%:��r�R4�"�K��
e�wS��(ʊ��.�ul���B�
�9�8���=�X\P�j\$�V:�b^_��5͎n2v#	��q�29ʐC��x�ᤊ�(�5�([�[��O4ĊO�qGp
�<�8��Ѳjx2ŷ.1-��H�k�
�l�qC��(W��9�E�y�@G�[U�fbJC}�l��ۑ4$c�n�vHZeK8�hصX����(� �
�n�n������C~
Ǣb���Ѽrb��I�+�y��������h!
g.��.o���W�g+b� J���
�#xփ�[�\r���N���Kl[��玈�Уe��]��%�Xz��-��������O��EP��&d-�S��]�P��:�A�|�l>
+��x�ط��LI�
���20�u�W���Ş�p�)��Ai~oH�00��>��S�^5z1Xb֣��S$Z��mYX������P�]1=�MoT��䴥����=���_(���=p�k�%�]Gn�4�M�)3�v�˅��a��y�) ��"x$�'��)�$܄�t[�y��x�V�y6P\��آ���474'�N͹���X��˻������f"��z�/���GO�d'���V���S�����[�a��Ї���27��Ms��d��`��ig�5���tx%�l��@�N��p�G>��||��;3��u�Y��e`��>�1|�A9) ����뭨�wn��eCJs���*H�gK8
��+���:pd�aSH�xI�v�:R�֭�}�e^\�s˧;��j9���(�_&sezk�qܪ�qOf+�HQ�=�#����n���j]��ʊ���f�;�)�ˈ"WZ�{H��]ٖ�ƾ������X=�7���a=�hRW�'f���.eig�0��Nv��G����N9K$�i'�:j�
����ɀśq?�S�u&��K�2Y���”��emB!�m�g�Q(�Պ�O�����C�Z
:̛z��+�&��_k�Gyq�+.��;ˠ��&"QG��x�[�E��Ѵ�mAe;�o��g7��i�/����[��眣�
}5[S`0C�&�������邻����p6��<"��w�pH�ew��!R��gZ'��!�±SWMTk�4��4-��🻆{lX�^\���l����p�;���٢,-M�wgX�
��/-҈���򨒰<[\�e�]ߺO��f�i!��r�6�Dӓ�J�)gJ}wU�)r�]�cw�e"�'ڄR�-�5��/S�T8�K�+,Σ#uܾ��4=Olm�[��rP�=.�M,)�^.^<�٬ 7[�j�r����܂3}�ñA��cm�O.�I�w��ZS*b�%��_P��7�ɭ��IGƿ��o�a�s��gM�p�ڽ�p,����%Z�|��S�p!��@�H�:#�83�P.v5�Y��T����UI��w��kI�r���X�8�rj���uE�"�'P;DBg;{p���ָ��>��L�ǘ@W��66���4v�Ҩ�R��F�n�6U����X�W$;w��@Tw��縑Ȍ���g�g+�zo�(����hC��qrƼ_�N�ʌ�
�f|��g�V�&�r��Mx��F�BbFq��ߌΔ�����-�/�.��6�`�:�����ߓ��_�e����/�a��=HþU_��jo�hl��I�hp�w֓s�ۮg9��`��U�.n��Hg�9,��	�8�B���si����A�*���`�C��&ʔ�sAz�6��h�_�m!��a��/_龓U��k>֗S(�`
�7R�S/��š+A�h_T�K�@TB�X�_'��-狞B�_�=cI�fkWZ~�:���W��4�5�l+�"����E����|��9][;_����a_�f_��^I���sK�4sG|�C�̗~`�`A�qބ}�r��t�tK�/�$X>ৡ��8%j�2��gψ��,s��A_���,����ދ�d�e�sc,��
��5�sDB���;�H��#�h%�'�_&!p6ӏE�
��^��h\�������!4���HN����4&j�o��b,�֫Z��o�q8JߋЀ�B~���?xB&�rx�Ċ,���,j{cWlCQ^�A�5����X��@bK}b��.�l�YB��U
�R���)�4�D��)�
�+^��jDy��Ι��6�+�O���u��?T�fD��^�pC���4Ih5y>�4��TC��ʪ��M�Y��z�޿�E�|�<�,m���ܺ���J�
��|8�[��5��*�"z��p]���,��B�k���@$���7�3��'n�t����ȋ�U�K^�+��v=mu�q���B�um��l�u7��V��+kk8�V�k1�;�lY����mc�K_�����䪧��������ʷ���̽�n���M�:�w���&�,�y5��+�%�V�6Wq��<�*gr'�r-�@kcK��$[�p��9@�-&��"�R���Ͷ��O�϶�ZFmi��g�_w�����0n]1|��t�K��7��jn���:>pY$�E>Cb�^ܮf]D��>�M��c_�!�IC�<��qIp�F��a���9�
ii|��r���K�Qm]c����1o��7���]3G.u��g��aP�Q��i6K��M�%Y͎�r\�l����7���O�=��ϔ�ve9�l�p��|�)�r8�?j~��nZ���ೈ��n�q���9��R#]�+��>I���r~���a�r��R�Η�E���\�����)ʵc9��g�慉R/{^)<g�W���j�b��]�:>��˶��]�S`��Z	��L 9�b�[��g�{X!�X��
z,R%�~yޫ��r���$JRl�k#u��Qlw���-VD��^�U�
,��j����k^!�*��m\�|�3������_��o�e��*� y[
GBC�u�F��/��8HS ~k��q	���A��q�\8U6�S�`�א�"մ>�7v�6E�u��,����a,�� ���f���Ͼ��d+�e��|��h��y����y�>���N|����OT���gȺiI�[;S�Kʹ�iX�։��sF�Y���u�,��\�j��q턵�&���p�N����Ź�V�aTS?�Ą��Ǔ7"�݃3'f'js��s$���I0"b�/�> �Bŵ2{c�Ql�Q��r�X��؄�B���"��Bz��&%�^$������'M�!�;�ӳ�T��q��`[e�?�
\	�me`�y����!�G�$`��_�Eh�٤K�z\�7�H�}i�%�-�\�|�2�?.G?]���;��6]7s�B�̚|5B��&>�UՕS�	�?����ɐ�}�T�}vN���`S���}ɭST�8�/j�h/�8ڗ^����럨��ҥ~T�˄��Jq*u��>��G�I! �N?��pLJ�Go�J�0�I�����>q�"�%�؝F�D�-CA-�a�ڊLe�H?��_ەKU�;^#]��]��YU]��q3���F'L��z��̚��c1hv���
j��x
1��:����[:T�Î�8�D��a�(��2c�j���\0-ƞZ!�?ym��>ؠ���KԦ,l�S�F��i��t�\,�O�3�9�Sz�yv#^qDn8.��_�!���w����|��0��{����*�ob�L�Ldr!p��&iP�>U�J���ҢP��|u��„�"�jJ/���<�#0f:_r��c~���Տ����˰����Y����Y*82m�>�gUn��DKh�Fպ�E8����ާ����
����[���Ҭ�~
X��cK%�{z�C��Y��(6IY�s� �� P�(S�����dž/&|�὘�M��6��'%{zbw��*�D�<y~���z�;�>C@4j	C�)l�j�
�+0����0{n��9���HRi{9�?wL�h�Yٌ!a��P.�Wb"x��Xs���E��%���Д���zT�6Q�gk䝔Gd7pe!�q^HG-e�:�D��� �c�F�S����w�*��Qv�$AS�ܝ�Ѩ����v??�q��_�d�]���~�
5�O��q���rW����8]:�]q�3��8��-�j-\Y�`Ɩܺ�O���˱0�\�Ғ
,c8����r�yt
�;]j�a�����S�2U�c]����*b^SN86h��=��mWj?�;;(�<R�<��z0{�
�U�"]1q�0�.F	�R�K�9�Zy�~���LbA|<�)�T�N_��k}+Vf��0M�:<��Vf���q8���e���ɕ3��֍�1�g��Uą[��o5��+(�H)�Ȩ2�frA�������l
���9^D$�K��CK��}�Y�f�A"��:w��5y��u�7� j	Xl�=�%�e�/�������bO���-|^�?fd�a�-�~}q���8Q�D���<��d��E�ͤ�*��%��5�A�n)Q]�'�o؍�D�<�n�h0{5��ƕP��k\�R�+�4����6��2b,q�-:L���Y�M�?FI8�qd@�L������� {q�8=˞�W��GRn���Ê���Mo�]���畿�E/��6�%
|��
|S'F��1ܜo��
٪��@�L=.�7n�f����H�T�"���E���{E��̍��A/��`����L>?���x�lU�#��G�GL�#
Yyb�j�d�!�Z��$\V�4��
�R�,3N��Z�{QQ�xt�JRlS�z�|���c0��*~�*���Zsj��
E)Z�	�.2%�M��E�hIiϨ�� �;��q�ǻ��&�G��p"Is���Ŕ+�>�إ�W3�䔑�w��4�5yeΐVr	�#qEtrI�u�Ux�`8~�E`��b�K�����4�j�.:�U/��p�6�";�Ш�3_�K�D���*dž��V��Y?�R����[��d-rR�|P��ꆭf��U�������Y��"�j3>ErT�Mւ�6�7��ƚ}%�Yzz���Nn*H�
:����7��a�E�C8h��һa�˺hڙ��1qdN�E��!M�	F�I����xo�\��er���q&Z�.g�ڰ�i�Ӝ��-���?1r��(��V�XD-6|���+��!���?^��T1�'X�!��v�$��&d5R
a[�%c���ʳ�Z��f�/�Rn;ȹUQ����Aoe�M#\�M#eYy�l+,��2�vH��4�zƚ'K�b�$V�.{n&�:���HW	��Z�������ۚ���FB
j`j[I�5�J���i��HC���K4�b� �9R<��K)V����*~
McNM�>��د�B�kc�Š6f��!"ղ��:LN��Ƈf�1[Ҹ�`3�ʒ��AYHq�0���U�'�}G[��ʹn�™\��~"Q��|(�4�ɦ�@�4	�m});r�3��>9�  �|�0*�`�(��F$�����`e�-��9�f�Y�\��
����*��}�oB��#�9.���u8˾�����SII���*p�D��'NP\ �YГg����@�{Ƹ�a٥���A�d/4^g�QWl� �ɐ)Ԙ���p*{	7��wH4�q�RF,\��b��_�<ZJz!wy��戮q����9�2���c�����c�qwR��ͫ�!Dtf���0)�E8Bo�K�Ql�5Woqe���o���Z(=�g���SBh�|w�����c�'
+:���sv��a���3o7���uW���W�t� x'Bw'���"�eZ�"9����9'���n�oC, ��xn�ɬVa�?�b�M��p��}֒�}_�=�Y5qK�J}l�
�3G�-��a/��45��@e%�$�	A�%���E�tBa^#���J���.z�g��<�󄠡�L���(j?d[�	O�S��2l��|8Z�j��i�j�|����r�;�R��⸡߫~���_��39o��_���I@�p�2�`����_7� <���-%/�?�xN���O�DZ��B����3�罁3�7�~����yE0A�Niߦ�
|_pU�F�EU��$4XE�Y2F.���TRI���o���*,J[���}μĮ��1GI���w��a�)�67	s�$��')P�*�܅�>�+`h͎�t2�	��<fY�n6�V� �L�����$r��Xq�H�A�9�ɥ�/�SyO̐�3�ʃ����J:]i<���b�l��=2(s��e;X��(��� �.{C��M�8)���ը}i�4g��>I��LJ6���r-�6� [���~_�p�P��/%߬�x2Ql�pR��������ωdQPD���0�rq�xK)6��?�
%@�Bv�5��9�;(�Et5����'��^x��W3��D8)�#��f����(u��E� ��E'����F��>D?PI�_ڑ��z|�MX��UTa%�(T�>�E�#[��t&�16��x�D�����_:����R��j��~�11&�V:	��[�w˴8����3_��
��GV	Y+f*VR�<!U�A�\C��m\�
\R�?`�sH&�
`��A�e�(	c����]��������k���D�)���Oj�i;�f\?����(�K�/:5V����EZ�6�W{3����R!9C��)� �m$Ka+H�7�gq��.ZZvUV��j4�ɋ�Q�� �X�M�̅�җ��"g�8F�oΫC�$"�����PX�����Gm,s9}<�hc���f,GNC�=:�y���əg7��;
,K3�u
�6L������3��	���?��`�AC�DƝ�'oP�/�5%�=9(\
v��=N#-��z#j�}]�A�B۶�[b�)���v_�*p�4a�8n���k??�9<�?�m���,A����@2�]*�|�B�����՞�����
f:oKK�E���w9b��3^\�� jA�Ȯ]��gIIwP�R�}YVˆ[1��DRr.���x�V�r=�4�
��0�ɇH��%���EQr���lC�\���l�Mq��oR86,Q���ɮN>��OХҕXS���09�mZ|�eS΍�d���*�9h}�������&��H�Lq��m]��UQF�d�魅_����j��x��%���,�Q��(�/)�Z�Ĝ=	G�b��@3H�(�x[��1Lǒ}{�,���03���_����?@�~��
[�"�T4��;^Q�CBnC�}�2�gGا'���7
�-�_F 8�-NLC�/����0��fv��<�*��V�;/����C���?�Y��,%��/�'a�sP�]��?��4d�*K�nK�*��q�_M�sF�v�����[q�����~6L��O���P��*o&|���д��z�Z�a`�b���bP�ƫ4�o�qDc$
v�f��eB�)/��8�k�Kr�S�dy��Rxn��q�1�T���w�(��4�'/pSl������M�����	�3�)�\c�K��!����0<׹k�a��/�1)��X���mu�#�����R0;GHJ/]�Ğ��m����v����䅅�6�8���w�YrtY��Z5Qsr�!�d�kl%�f�2�P��Z:!T+��b��Tb��,azl}�y��鎦]��)���++�lJ�8��<c�d
#v��Ԥ���/�(�?-Vt��<(>�au�b"�$���nq��������	���+�Jv���'���6�7��7J_TdŶ�,qf�1�t���&�������g��a���$��M�R*"@�La7!B@�t�U�Ah���ɧ�E͐+)&�7�u��ѣ7o��*ȱ��+�m��ۯ{D����p?B�n�A*�!@�~�[8Y��)��!@2UN@��Z�0J�
�J4�	pI6+p�7e��{2�@pP�r��%�y�Q��rK�̀	�(Vl�¦�$��pe�DmM-�px�y���4
�g���D�?ZvDSF�b�rBE�r�*y��&=�����㇏��}��'�?~����q��_<;|�x(��'�dzǿ_�CН<	����#���[ҵ�3�����!7�U�>\C�ߓ�7��/N*�}�)�=��5�����������g��zh�v�d�U͆��G��=�=~HH�_��(X���xO���˳?��m�xxX�џo�Á#�!,3ȭ�����/&��ޭ�d��*����dUN���YI;pa�*�	­
�O�!Q����^9h�C�p�s��u%�V�X%^mûR�su�/�a��o���4�삊Ԟn���F�eGe��Õq	�[%Z���%(/V�6A�\��uc?���5��}��A��u0!��,�|v����w��aa5�cj:EX����CL���Q^T���wu�s�0��l*Va֭�p��dM,�y��&W�Am�����n�۳UHd��$��в���0����8ȑ��^��
�v98�)?��@����;�%lJ�\��� ��Z���*A��m�7yP7�rx~�?s�Bl4���&��ɽ$�ش���l!b��/��-�k�U���'q��`�����=X_�L�UUv�8
�����@���h �7���Bd�$�\[*�������F�j�5�	�:��a?^�߭?9! �5���	vϣ�,�ٖ��y%ҍ����X]6s˗)�M�B��O��&/��]V����C4����6�ASӑ�@���hr�0��2�z^�(|̢��Z3�×_nap8{���Z&�k06S7p���í���̡���2��-�s���`]�A��V34�y��G��Im�MPr&s�`����CW��*B��_Y05Z��^9��+���=�w�A��0߉�'
�d�t�<hFQ3z͌�i���9^�&݃��#�6['Q����\y�O΂,��î�Eot#쯉<��a���\atPd;�!ɔi�ÆQt�Pf����lo���n����h�$G!�J6��;m�gb�4>��NK�D!�i�F։q�%eč�o��fxI-��د^^�n�:����k��Ja�U�m�0���I^��n�i=�D��*rLq�Dq��N�I|c����RXgV�g��N`�ror�:�<����!�M�χ'X��9�\�r�����56�`�дD���h̛͞,h��V��LlIo/��"
s�2��]�
����P���n��"�c�_]���Z�
)
$�W$‹��֌�ϱ�t��l�}��p#,Y1�R�崻+ޠp� �#:,�T����C�d?H���8ny�M�×�A]fڂ#p�1h�:�V&t�:VaI�9��Ѥ
�t�vM���^��M�E�W&�;�P+|@U�saA�������T����Ȇ�q�+�6xfo�5K���9ȗ�u�m 3Hh7��蝁�-�L��4�:���.�k�nW����]������ۚ~񧨷�:�n*v�������k��efЈ�Lnt�mJ�f�w�(�:yK�v������l1s.HMKz�0�,d�.�AiJ9���"��d.��X�v����&AR=	�����4����?�j�j~k�Đ��d�g��Dݰ��6n�w�&�pRS�t����_o�)e{'���C$
o��U.[t	l5��AE��䣧���bt���ǰ�;fJe:��l��b���m�L�J;v�ަ�w�ȿjd�Aư�SPgV�JLZ�2�,��FȆׯ��Ӂ=@	�l��y����y��|�N�"(ƽ�O	�m���ۻ�vaz�v;W��U���r��T��������'j�t~/x���2�,�p����W�������y�����'��t�9MsQ'���݊��_���c_S�p4�Eq����H�R����I��%�OpIm�3��tE�Āȥ�i�b@�R���2���M�#X�sL�Y��g5E�gS.ǚ`b�	w|!�B�{��FdǗILB��T�4x���pS���ds0Ⱦ��Y�q�m+B��r[⏂��#���h�ҁ&�^{XX[�w���VX2�M�E�������L�P�
�$��
D̓�R�xT�&΄.��[a1�Z�|����0�X�d|W�8��d�'d\�P�
���P�C��O�Tҟl��������†i�~؝(G%'��a�B%��0x�M���
�W|
�h�6���ݳ~���(q�a�Sa�Lr�6�kM�9N��rհy%��5�Cа�p����%����NdƲ�ѕ���`�����B��B47�O���4��W�]fJnAɺv1�KN0n�"0O�0�j�cz��J�w��v�5ORɖ��Ј��({7�*l�6.4����R����SOj0tL%���B^�W�Wȣe;.Vp�'5��lI�ؑ#���3D+/ޤ�/�[T?��R����2��F�x��`���4^%�z�	-���6o %N`�P�<�W
N�>��dO�ͶoV�,.�	�IVg��~C��}��s��?�j���sِf�'}��n��jY���Z��h�p��
{uަ����V|*�{��7�Ö[�CďY���s���A�[]�Wbj�e�_�4�'N�p�*_�z��
�IA���a!氚�`�/��{LnU�ި�������hŰ'��Ӿ�����hf�v��s��W<��mn��n��m,#%�>k�I��<���ݲ(o�7�c$�1X���5yZ��ї�1���]�Gt1nFs�CJ>}�{ܻ�;�+�?l���M�-��p`�Iԩk>[X�0*��!�=)η?P��w��¿�ak~�ǧ�x�އ�/2��>ߍ{;/��)c*��|�=��i�W�n�\A�u������@z�^�x������W����y�7*$Wc!NZ��@�N�߭>��?{Cfw�f�͙7����>�M>���%˿��~'� m)m��8�����X��/sn@�vx�x��%H��H��v?�,
�F��7Yݸ��f�n�E�]ӆ�!�:9b,9(�{K�Ii^��Ek�q ����?6��C�M��;���֩9��=ȠH'����4遭�����a�"���̹�jx����Pu7D�mk:(*�|�%^�.��S��U[�ܷ5L�T��yņ~�72�����~��u��G��\�7y�q��}�&m?��o�-���P�k����Ln(��[�:���ݩem��)c��w%Ȉ�8U�~
"�|��Ì>����"/
Si���A�X�C�Pjt�*G��+����:��-ʚ�9a��/��[4�]z"�|��V
�7�P�_e�WƜ�%����4:VO{
1�㎞�Olv�S@+�[�@gbv�ܕ�nor��d�X�w�W�`V!�6��� _h���k)�nɒ�`��dY��K‰mX$��Yܽ����������U�ŝ���by'z��o~��Z~X�[���r�j%{�@d��qC9�~�u�ww8����zГ}u�t�ZB��*�J�bw6�8$
݋��x�_͎�I��R{f�>~�� _t��^f?��tDq�q.�$��!���{��Mx����vO������Gfǚuγ��,v�L��v/Q%)�ʋ|�Q�{����_2sPD�7l���f��u�/۱�|@O���:\֨�������9���������ϳ��4;�̳�1����V�[�E���)�j�L�;S����$JI^��A�9�g:���h��ʇ%��~r�V���i]�Ar��{c�0���u���A��!���@cCR�U���)R��'�Ӊ�����a�L�X���No
�58�y��f���z5E��F��A�thG���$�x��9����+V�Α��dr�H"��G����3��D	e镄�(}��.�pfd�QW#�ہ�(A,ҫ�3�`G�8م#�r��\�/f�+o��OE�J�r�ë�
Uȃ�RU
d���h֕Q��U����B�����dX��5r?�ǖ�1���VY+����S��K�W�%���hQ�3�Hɐ^��S7X�-I�Hָ:�������Q?�b��p�+�����~��hϏ�������c���Ƥ��%� �E��"J �$}�`�D�S�"�͕)����6������W]�<��"�2l&�D���pν���5�R���~R��?X-iJ[Bz1�9��^�����#L';>;�y4�J��������o���Q��:��&g��a�/׈��^LU;ȉ�k��-������'��5�{9|ﺄ:��*�at%<��$���M~ǟAm�|��۰���aq�`X[\`U߾�B��d�6�T8�S�$!�:�/h_벯�Ԉ��\�����Z�#�x~~L3�����!I��^o�e��Sυ�3͐�VUeM���k`��%ɕ��-�m���޴ҧ���,(�%:����F=͚8Y��y��"�����Jb;���,
���yLa*�qЊ�;�B« i�Dۀ��D�X�Z'VC84Dz��
!g��9L=�.D	���q����rk����>j�x�ᱛpe���\���[1��Ѧ@{�{$|�WA�i��Y��ܨ�����hI�Ր	,�d���O!Rs��u&AI��il���u��K�N���J¼3{U�ot��w1(���67r���ʜ��TF�4+�LCf�|=��09�/A�I*8B��VM�\��X�u���v�- �G�z�$ �k���f{����6ϗ�ΰ�;�CaD�-BUH�_�Ѕ{�Y���S��M%h���-�]�D���QQ�bx��x�Hˊ�Km"1������m���4�mFE�=���h��O<��~��z�:����l�s�:��/,R�T	�}��������SJH��s��̉7��6O���ʺ|���*�iQn
ǨY��kLj<I:&g3�����V�F�F�g��w�����G������G�����\������c�>~!�%��.���S�/:39��;��#��rJ���[�����wø�^�**�b�F��i���/<��)�)�M>r���k�^��&h�.̚?gI,L��;��h)�pA���6zI�s�nk�]�xO HE/G0C�l6I�g��#�ͭ%C1�R�y�!m�^)v�s�H��%V��G�
�;����.�pA�j��I��W}�a���X��N�ʩʞ��0:�
/Eu�}�)K�>�)P�X��
1NAAm7��؇f�iIu�R+����� <#kM�4t{q����l��z8�o�)�ѷC���pr'c�4G�4ͩN=+��p6ЮD�@?���-�S�����I�rJ�N݈�Ve�2�R�ϧ�RbqY+�ώ�x����45�o�ҁS����.��Ґ��[�Q��Ξ���+�4�=j�bn��H�b_,H7�I�A���у��k5�ag�?_�艘fٖ�H:�?vuHc��� !"����HR�|&��1�Av�T�y�4K�h�JauA�$g�>��L��e�~�e��臡sY5xtv��_�KƝ�w�$ɑNG�}�UI���-�Hw\���ׁV���|��9�BC��/�#\c94�F���IyXsE�a��2A�k1|�%��L��IDL��±��-�¢]�W�;hC�~ڼ�zc�z3�hX��	�K�C��\���~EYv[� ��}rJ�4k�aV��
���E0o���{�L{�a)�8���VNd�.l%"��H���,�"�A�O�������%G�>�.�(���yF�5�����X#6?�;[%����$u���J�>�Qx�'����|�^i��"�zpzwL�^���`����8���:NJ��^p����Z�Kj'���k5��|Y7��ìsdx$:�1���e�v1�Hx�z*�O�%��(J���Z�����3���GF;�o����WM�l�I�L��f4e)b~YK�>YC)���)u�ec��J�=?�.hbtT���)����?��U���=��EI�Y.Z�%�K��(��
����!~X���)��8�@�k��`C��q�
��� 7��Jc�	��ԟ=M�ě"Z��_���6�������M �0�$���2�-:�Ё~@R�s'���۲"�~�|�v>Y61��O�?��:���r���/��PLt�Y�B�oy"�W�ݖ������!��L=ܫ�W�������dU#zJ�M~��
�WT'�^yc]��'����벶�f�#H *[�Ma�[�U۠L����	�!��&��>��W�.^d��m��uy�ox��8?�p��UPd/{�T���&�.ʬѿ[o����+mg�>h����W%���sʌE3z�E�.��t_Ud*V�L�F�w���������c��2���M� ������	�DS�+��0m[�Q����s�\vIJJȋA�.��Jb�4w	"����bp��T.ф�T��ד#lk�8���v��$���t�K�����m�I6n�	�E/���ەM��S�m��S�p�{T>���Y��qC�iKk����D���;	�,�Jf�󪩅��'1��LG{�s����½�^�T�EP�c���"�=�th�E��X�Ew��0�*�,{pƕu0�����ga��U�Ĩ׭d����/C�]<uH+�J�Rw4<ϯ��ƒ�i�D�1}�<c��E�bƒ~�,�:IZ�79���GZP<��A�q��/�qcP�ȁ�'Lۦ�����H�36�W��|��|Q%_;2�g�r��y��z>:�}2�[�ɍsl��k���]#k0څ2
J�f��5�H�k�v��`��z�)c��\+�{O_��w�!��]��.!7
j*���':�����7�)��(�$�$v�?�G�X<���w�Й��RDt�`�Ui��>����>�	��UXF��r��5�-R��ЉUJ32
Z'�;V�pal	5�']2�|Bؒﭿ���p�H�|!Wݤ�7i��(��2��Hdao��;���9~���fK��������Z��f��T�a.J22 �؆���K�B߹�����Q��O���ud�F�7�/�C�)�
�@�|��#�q�w�r2�%��lr`A����M�Ǝ�_i��~Wc�7�Yr�dk��R�A,~����>h�����P��M<�!'��W\_;ȫ�qi'Ш�PN��	��ݾ�2ę�U�9`�x}T����GM`V�ف
/-ۺ�<U�W[��7�S%м������t�x0�8>_��$v���B*n������˵dSF��eR"�ed1%�ΰ�ٗ���?��%�P4<Z>��_i-�g�`00]�`���
L�/6����/<��	�E���RX�� ��,��M=�ֶ&U�mvtA�&ˋF]q.a^� &!@��2v8/2���V�8���iy�Ł)�����y��}AE�_�����󔒉+GK8e��)�1b��0p�:af�,Y�X2�������uK��dM��"�(��W��'?��P4xعp���.4�R�Z|���v�	#v�$K��ia�z��Xk8'u)/�=�'���ד)�ɭHq�r�#Z���:�o��b���&#��z�(�+��fп��L��/$�r[!�`�5����1�h|:��%��4�e��M[�ۚ��i/���v�~p,8�����GnN��oӗ0��Pl\l�~�%d_�9����*�jhaI����z|X�?��G�5�~o2��N��#0]c�N��B?ʯr��~g���e8�@���G
Z

4q<1r<N���]���:��&>T�Z:'4gG8��q�󑳦�Go�����q#���+钨'*�[D��������!���
����ɷK��t /����ę�[���>�o�Y�(S��r��%'z��=���)�7��o6���5�ٝ�+[^�H@��
��Z�EɊAaX��7vv��'�v��v�%[���	[�.��������w�1�|�k�se�#�>Gp������na%�Xh�2�@z�c��˴�C�P�u�$;P7E/}�D�f�N��	��q��DA����|��������X�x�+rז�z�RB��Seb��Dv���-l�ScUlPK�o}�{��w~ٰ�P|$=_�y�|]S�<�Z�����N�+�T���h/!�æ�mrĂ�>Iqtw��W�" ?�RdRR���9�>Ҍ�KO�\+�,�@'�N��$W���Q&J���ٍe$!ĩ�'���
'*��Q�i2Q+[�_��tI�P�j�Rn�*i|�YPz���,�nIRbV�U=rũ�gZ��H2�	�m��sF���H�‘uL���͆����US��3�U���������";[�f��.Na�E�=??��e��������Y�r� 4��_Y��UHXW�t@�SS��ςa�p����F�{�<�&��L�J���UQ"��-�r�z:)|�M2��3����О�~KDo�d��@қ�/�
@`��ڑ>=l���E�:~*d̓
n���✰�o�azQ+�W����v�m6Q	Ӓ��7Ӱz�`b�[�d����s����Ijt�F�"2��>�+�%wt1�)>�'�ܮ����	Ae�IR[�.{ҏ�W��G�Ȋg���]�Z#�4c�$�zn��z��)I�.�š?�~��{������=��ĵ�X����H�c�?4i膁�[ \Zαf5�o}��\?�i�Qz�g�hlt�@i�[~^����3s'��q6z1��P�:�rLs�L�IsTlǂrk;8���s�Cz�n�݅В�@���-S�p�>�����ݼ��\IDlv�]�Um����b�tx���[���2����V�bq��}��'��ɚ��S� �/�e�F�ő�AT�}կ-n���?��$�.n�yШ(R�вU�zBI&��E�ܧ#���ݝ�n���y�%4w��KGô��qf��@/鿭{�7��n��&���5?o��&J\�c�tş�p#9;?�#"�x~2�l~:Y�/������M]�i�i�����97��
z�)yS��)T$o83A�0�Uأ���N=SɁVj�\�k�9���>cѠ���W��^6G���,'�!����j���?c���m��g'Y�D����
����^Y����Q�uQX.<�U3�a��
u)\�6Gh@���N׶f��E��.i��V²|�l$I=x��cSy�zi�����Z�	�WjA�"#�n?��ްn�	^u�|���ԩ���h��������L|C�I�)탈0_�?�s����۶�<�-��91�0�+9Ì.���r��h�]J��h���5X0FG-\�3�?�̿���h5�:b����h�Qu4d�AɕY7�
/���z$�@���`v�D6�h��yx%��O{�t�3JT��&��>༧.�E���{����9�K�>�K�.����*��|�կ�z��g=>���b�4Dž�2����z���I�/�x�$�ĉ��8"N��!�r
�`�,��#+�yQ�lwɟ!�v���H���0���ȷ��C�u���n����K=WA��@��E�Ɠ2(x��3�CLJc����x�^�P҇TQ�_A�0��2������ڟ�W�Y?�.�+�tw)~�!m���<�%4�FX)z5�f��>~ΞK��I��+�pz���I�a�$
���_�>ZeX���PIn�/�aUU�L�.�г����dl(�wn�>��j�ʕ�)ɫ�\���N�/��'��~��!�R�݄Q^e�y���,�>�l#�D�F*"^(%:�l�w�s����*��PVJ�_���*S��{:���y��F�>�7��!�P�!�U��$�{�hW��0���X<�G�cr��S�Zۮ����Z*�Ah돐�@�Y�'�S������]M��fI��&_ʚYR�I�zMP��yVZ��-<�<>��;	��fB.�܏��g�NN�+Rĺ}ߎ~Wpo>dDQ�s%�H�F�+���+S#}��f0Sj�i������;�w��՜#��W+��"ĔM$�F��D�¸	��x�р<�ԉ��(�c^'\�%��:�Y)뛠���L��NΦ��}j�gZN��,�Яz!����4��?=;	S#XΘ��E��eU��FB�J��u���_���=�-���Y��&�k̥NƧ�$Rv�j�"h�H�Fb�$�=|�ы���C7K����XC�Nߑ�ڡ\�
�v`�;J�e�e4��n�%��%%��D���'_��}��ьJZ�����)�ä`B��w�j��CN��U,v�|ҋ��Z�3.�<�x�I�1�n" �X+i�k<���+��"��v;�1�Z`�^+�2�I
� �$ъ2���7>��Y�w�s�?)%��`�d��
��$\�5��iۨ�w�\�=/0�$�EhMӜ���x�@��nX�`�^��*�m���]���^�ed�z�R�w�߿~��Af��]���6��)���	J�l6�j���5Zj Ν:-nOms#����Y|�2|,2{R�ߧ��|W����s�%�9�u�������g	�����o5�O3W������O�>T���$[��D�1��h(EP�RFe�cA�D
o�4g�.��eH��ƚ��Ȅtr8�������>a�v�'������-z����g��1�|�Q*����SFj�۽��0�q!U+כ&Y=V�Cs�n$�@D���G��ׁхb��$�Hp�/�ު�u./?���ɖ RM���5���<���0����sP5t۹"��1=�xG��X�'f�\r=�W��"u�9�P��HG���s+Y+/�%��F�z�ti5/�h�G�d���o?�l�~��{3�S��iY�:_,]��i��;?�>-_��)��DY�����;���-���O�n�c�m��D�IT�m[��
g����>{�������$؅P�n��vW��;\^5_�R�*�tI %M���#W����x�9�U��jU�1��ȞP���F�Y����;͒A�M��#�6��m��:%jZ+V²F>r+��G�vt�%��8}\Ii��%0z�X�r���o!���r�:w%��i�E�G���բ�k�Ev�>
�Ž	�s��3��
��6l��E��N�.��Rɜ�()@6y��[@8��Y@���S�e
{��B]$[E>������c�5�$�����g�1w���bS%������^��K66Y�O���v0^��Uh�qf
���
i��KӍ�ܣF�/�|)-8K�1�΂���$rp����vf��6ʎ�#/S,-a�!�i�%�E��a�^&P��s`i�Z�t��D!�Q�����"�|]���(�:}f�I�囹��eƩ�Cx���ª��oZ���P�"��ա@��jѷ��C���ƫg��k�;z�	ۦ���4��i�5�,��l&Oo>ʳW;�X����Pߑp>�4K���g{h�i-M����:<{d�0̫�o[`Fn�{�7�|�/ӕn�#b��ߣU��!n��Xͦ��3y�%�<p���-RÒ3�T�2h/~��W���7g_�]_���㧾�QL�쾂yŬe��R��M�1"�ȴc�{�#u��߬��r�բ0�
�,-[l<�E��5���7���پ�4���k�1L��#H��Xߎӎ8��U��>��ο�P���5�1��m��I�����*��Vgwv�-�����{5s�S;r�Ԃ'�g�����J��ʳ�Qǡ�y\�������
�w��M&��l��@ٰFS�BA2{�h�1��q�sP%Jjj�!�x���ZT(j��	��ڸj���"�����{q�o�ſ�~_��ۥ��O�q�%��fNvTX���o�/����>j�=�&�Dмn��v����v��;�|��t{i��}��!�mN��b����"�ܝV+�%݉6�܉�֒sإ�1^�R�/���x�v�����/�V��u&��9�����u���.�*ĸ:�ZG�nՔ-�[��<�d.�k}2_2��hap�+�"�J�+X���$�� ��9���n,���Ս8Z���E	J���y?�5��(��ߗ���֎�t�.�
��_~�6��Z����^͌��<�,7A�9�l����0jL�,RH}�a�$�V�=_]��v�����<մo���޳��2���O�`
[�+%-���]a�'V<��4u��j�ڸ|%�=^m��}�Ą��d�L ՠ�����YSG��؈�ӒiN>?!�"�v�
IB��{쮯WW��Z#Y�zEX.�6��\J�P%���	��!"\hH7lM��k��u��ٕ��G
�R}���Ù��Xi"�fR��S��m��D{�Yտ9n�g���Âw���bp���N�K�Wv�7�5�
����O��g��Kڋ2�O��[a�eGe�"H!�Q��rtK�u�X�����.��:C��Nݫ��oz��-��m�e8B��֣�G�s���@�>��Q�p֓X�N��"�f��;��2$vR+�5��c���ZpS�;�s<WяT�e��v��~&�7���.���
~��<fXDV�s�������$W)����/��L���� z&~o��{�~w/�"��m�Fl;����s((M�QʕU�
�m�8���H_��Ķ������o���i>d?uݧ=W�R�”,��ӗ5�џ�P�%�F��%|!a�GӋ�Z@��ό䛑$o�l���W��n�'�o�ZD�q���:������s^��c"�Q1)�� cA�Y�^R�n+�7��d�U dpQ6�;�`�#��T*H~����^m��3�NζW��Ga��pk� ������L[51M��/�j����Zoʋ�>�}�ɊR>����,�I�.�~Ne�#}d{�-
��2dB�f�կ�)Wg�ƣwY��d�(ݒP�)UnU�'�I^l�^Z�Jb�1�ZJ��ُ�
�y�u,���5�*��DHl���o��\j�V���5���M؂�	F�U8���gn�J�P?Ew�9؈8��5p���O��8�D�7r�uG}u��J�"�E��z[� 1U�xHf�x�b�}�
�{��:+n���s�h��t�|��{�Mrn����ۚ�N�I�(�ێ�4��:�ɕʇ���z��A�ˋ��^Q@��l��h�vK�*e��ոr�[�w`�eZ��s��0v��}ۙK��|촽�R!�҅Y!%2ъ<�s�Q�Y'3��{Q\��>����קT%�v��<먾�"�pf+"h=�7�f�
X0R��e�&Am��ڜu���,(��z�@�Sn$k��O_v��$ۏ�8J�I�dYvx1��u�����%�|��I3U�S�ҨB�F�ja�Ia�n{���,;�ҧ��3Ȧ�Q_Ro�H�zjt6F6G2�����G�}ŏ�қ����!�0|zId5W��@w̤�q���-L�4��:V�(̵
��5#�k�N����^f:�0�zӐ��
U�r���t%��x�<����k.S��wR���X��z�J3��J8�m�=�`�O�Ω!`�t'i�(c�q�֜G%��#���|����Q�.kVa�v�BԈ�Jz���1b-ό�Ip��Aw�O���k��� n?~�x3�Rf}Zf�2���ֹ���b�.FlI�Y�%c�Z���3R����*Ie m'���I�\�'��'("8nf��,�I%�Q,A-��~���
�U:�$�t!U�(�$��^�	.%2�mk�0��$�ҒI�P�k��
��/�@�jP�7�E��$�vE�M����^0�Ho2�ގe@��F.Y(Q��JI�����`�EI����w	��\>�W�����ĕΊ�^�ۨ���V[�z�<<�F�n��),h=Uş	ᴫ���y���������=�UV6"OK��S)�Vk���Y�5e�
y�H�'�G�Zc7��L��0�<S��nJ��^����$1��Be\S����� ��%1�'|���3�fsS�ţ�}�}��
GWKY�M���"���R��#�W��&�٠B��J�=��e�NxA/ˋ{�O�Oo^��+ݮ����=?z���O�ً�����g���?C��Eט,!x�KRrǪIs[r&�H;#���۬j?
a'M��ԏ��lU�]A�_����ZP�
s[�N�k�u%p��	R@�k�n��2���Zq����I�D�8/��Ό��K�����ޣ�V�q>]p��&�(�$�n�\ݸ�t�g��Iy��2�#ׁ$"M<�ݔ�gS��O���4��"�o��k-�?�6���V�j棌� ����7��l��-&>1j���8A�>*��邨��]�qS��#�Y^�	s@,�t�]�������7��3�"�Bs�AG�=�+���.��'UHH$作�\�w���I��+��-Pe�����C�T����H�u�<V��5+�q����$���ވ�ѿ����I^XUɦv��2�ZZ�.��ЪCPH�&��=�r��Z�I���'&.�$�Cz���1���r�+ݾ[��@>4�I�kZ�U��-wc/qv��ځ��k:�8y�"��yEN�\�
y�Yv>
"���A�nؒ@`��"8��T�4ڠ���k�_��˫k�HT�m��(qs��FA�/��Og�����U���
�k�k��^�lwGYNr1{u�.|c����;1��me8|������"��H�!��qP^	j�TZ����������'c辁���J�<�!�/�����E�K�ӱ�O�!M�8f��8��z�~��_�l��c��Ӫ��OR�k�;�[M������&���<�-	�#ҷ?�-��s�r�^��-GUQ�?�ҝE���@���z��Ʊs�@)�n��W�J�LS(=�%m����[Ip�A�f#��ƜBv2bF���@%�F2��#�j8�	�+���ڳ�M�߾��V�h=����9�pe�@�6q.{��7������D�ʕ��zz��vgП����g�d
|��:�=S|"��v�J�G
m�41�$�ٮyÛ;���D����&&ܛ��/��%�/�:aΗ7�V�u=$ϔ6��^�l��2���(���F�{��m̤}9v-��a�����<l�4R�L�y�!�m.�%�h*?IR������}Z�{�8�yˡ�0��U�W��#�2��MRڂ�ve����k�ܐ�Z7.h&o�+)I�1�9�s@}�ԞlKݬ��0b�"t'v�b��x��9�����pe��=L��)�*�ī"���5�"��	o�0�Im<??J؍��EH$9����+D�r�qz(��q4H"��uӈe�ċ��#��d+'-��N�1{��04�
;�E�w��?$��$籭��(�yh�`�m�~rFEۀEm�Ou14�	fn�6�%|� 6��鹢�}�'xmﻋ[Y��v�|8�Ĺ�
(E�j�!��ucs�?��X������4"i�7.�D�>Z�'����A7�\뿦yyS�ۄ�$M�W�}�J{�a�sTF�J؝e>�멟��kJJ�W��K�,�TCٗ��K!���XoI���.u��A�)S�R�ٮ��
����ѩ��wUU���)V�N�c��#�����T���	{jd���Dɪ��0e�S:�Yu��L�SJ�B�U�I�<�#�F~:�#{���([���UwZJ�U�E6��H(WXp��%�I<�[R��K�ONK�����O�׮O�exe>���I�z��{�K�~%������˪}C�׼^EO;¯��a�@NR�ۑJt�����/ä%\!;L"��`�=�"$F��B�-����db�zE�%g)��u��0�������Ļ����A�9í�j���	ݦ�'Fa����)���%�٢|�e�Z����:@{�s�V)۞�F0\����H�%7~����l�iD2%�b�-�z�z��X��"���f=p�{��i�sS�wD\�%�%��D�$@�E%��5u�_D�C67�fW�&��<��P�"T������I"�(��j�i�'�éCl�����2�PF���uҸ��9��ќͽj�Uv�]m&�O�8�z#�+�)5[)�M��sϘ�y�Hą0;~>��ߘ�n�
���٭,�;��:�5�$]����	�!�4�Q���|��EF7�Hh$(��q�8h_��`׆Y���Cߩ�6�����1?G����N��x�:��]��S~�N�p��H�,{�-�W�����ٙ�&)��i��'����{H�W54I���.'�YHC�ŽP8�E�}��9oq���%"�
���ԆA�I��l�4�g�U�;�%`p�S|�Aڌ�)�g"����,"n�]�(�N�6Uz�9�=8j�dħ��d�p�d'�8^7U��R�;�����F���g�cj6vc6��(�=�
~�`KP��JI=5����H���E,[�+��J��!E��e'd!�ΉS�b�Tt��_�r�0���R�<H)�X� 1ޥ�B��
�
�.�(��]Q���*/5kZ���w�";d�4F����ȠF�<�(�փ�~e�%"�t !����@=�:��˫�8J��y
�﯒��J	�7A����xG�@Mijq3������_�E4^<�X6���>�l�MN�1�⹢�S1�b ��jk�Ҹ��	�I~`?�ah�z����K:��n�|�n�΃��t�/)�F��%3�җ��;o�F��l��6y��I⟣��&Ώw,�>w�d~����<�5�s��WJT5��$_�X�;k�"�Q�2B9S��868Th� ���pZ��q����͌"�#�8fby��&�
.0�.#��j`��tN��"��#�hy�n���fvA��QP8n�Ͷ�6��UP�(&mǤ�P�*���|�+T48�VW�
%4����I�'�/��%�t��ԡ��Rˬ]r,��t��z�@��s�^��;^���In�<�Ra�X#9�8�0�gK*�5E2�?yLZ�
G���E���
.5^	Zx�lX,)�*�#���H�7�Gj7���(�#��bC7�tS�ete���2.�V^_�&�F�n�U�K(���W��������@��iZ�Y�H���
ƨ��P�\���
��je�D�(�1U�P聆�UFh�$�͌)�i�E~��+պ�!�ͽ��L��,��4���.���Pʖ$˅�j�n��6��t��Ѓ$��?5��JOz���υg	�jo�s
E{�r��Y�>~�{�{�%r4b����p�\�����"]M_��.l���l�������^��}��XoUtQkuO_�v�n2�u�欮�|A��,��5�**���B��r��v\�@���-��aG�/̠��a�+@D�-\ծ�cr��,�J��:a��ya-��D�\�Cd����>��� V��r�5�h��u֛��'��Bd�t	Vq!g�
o��=^1����9��Õk p�V�ߑ1�nkO�y�Kx�H%{;Y�<��1�߅YC��_�r�q�Y7ɖX�E��"��{�E�<(K�̺0/7��86ݽ(�,�*�qGC���}XQKkW���kq��[�]����qAgU�Z�ݥUjbg��'��#"
�{K6Տ��A\��錐K�i�<��%�G�{�p��=L��E�̻fi���(��	��gaO���dK�����SF9}O�k�O�lY`J[e��4?u縆�/�"����U�]��V�U�x�:�-�?�.A@�B\pT1�_�|�p�p��q��\嫊�.���	��C��D�$U=��pwre���W�1t	�K�;�lH[z��F4�ޑ����y�(��^�m���z�4k&�dń
�n�rV���D)�A;2�9��U���3 5��h��k~�%Izn���f��<z��͛Y�����"��gA��}��Ը���{(�\�ބ}���!�'TfD�'9m���$�!���wߔp��dnZ�c3u��F��Y�(B���� �����cc0$椒���[>ԨY%�H���.��-��D�(�]�_%\��ߒ5�=�(
�\
lt[�%�9M��,M�qt_
�
'�Hb���V���T�4��M7��PK`�oR��9�W����litespeed-cache-es_MX.poUT��O`ux����PK`�oRQQ-���
����litespeed-cache-es_MX.moUT��O`ux����PK��r����%=�J�c�c(�c2"dUd]d	fd
pd
{d�d�d�d�d	�d�d	�dr�dXekemse�e�e
�eff3 fhTf�fN�f8,g=eg"�g7�g�gHhKh[hvh'�h
�h	�h�h�h%�hii|iF�i�i%�i	j"!jDjPdjT�jZ
k:ek>�ku�kUl.^l-�l/�lL�l28mIkm�m�m�m#�mnnE+nMqnP�n0o'Aoio�o�o�o�o�oI�o+p	Kp	Up_p kp"�p/�p*�p
q
q q7q�Iq4�qfr kr�r�r
�r�r�r#�r�r�r�r
sss*s;sAsQsdsus	�s�s�s
�s�s�s�s�stt t2t0Qt*�tU�tWu[u xu �u(�u�u�u
vvK/vP{v	�v�v�v�v-wFwbw{w�w"�w�w"�w
x!(xJxjx&�x"�xG�x!y,>y$ky+�y�y�y�y(z	9zCzW`z�z�z�z1�z%*{2P{�{
�{�{�{�{�{�{�{&|.8|Ng|*�|.�|}/}]O}�}�}!�}�}�}
~~:~I~Q~^~w~�~�~%�~
�~!�~4#'X6���	����;.�:j�����р �"
�0�F�/_�*��<��7��/�>�W�d�y�
��	������݂̂����	$�.�=�P�c�k�|�!����̓���1�
P�^�g�)m���+��}�_�Dp�8�����;�G� P�Kq�8��q��h�p�����������C0�Et���
��̈����.�
2�=�<J���������9֊
��1� A�b�
o�Yz�qԋF�N�Nn���ʌ�ьd�q�y�������ɍҍ����+�%/�,U�s��v��#m�����я����%�*1�\�b�z�����Lʐ�9#�:]�0��)ɑ��c��G�P<�W�����
��
*�5�M�h�� ������˔#��!�
@�N�=j���8����
�,�G� Z�0{�����ϖ#���&�2�	F�P�Bb���	����2��Z�,F�s���-���јi��I�;]�Y��K�V?�U��L�l9�B��Y��C�V�`<�J��g�=P�@��=Ϡ
�#�5�H�d������
ơԡ<�"�9�O�?o���Ģܢ��
�)�E�V�?c�������ѣ �&� )�DJ���������
ɤ�Ԥ6��ѥ����
#�.�G�
S�a�
w�/��/���p��<h�
����ϧا���	���=�N�.e���
����
��Ǩߨ�h�t�A|����Y�	e�o�|�'��
��ª
Ѫ
ߪ"���(�$<�+a���#��ë*ܫ��
/�
:�E��`����P�Hc�B��7�@'�&h�������ˮ%�� *�"K�&n�!����ѯ�$��'��&�=�N�e� }�����/��.�������ϲ�����3�<�Y�f���+������ɳ����
	��#�/�>�M�l�%s���$��
Ӵ����@	�
J�%X�~�����>��ѵ� ���*0� [�2|���ȶ"�*�"3�"V�y�����<��,��
(�
6�
D�FR�������
��.��?�6(�;_�1��3͹2�B4�6w�0��ߺ�������Q0�D��
ǻ-ջ$�P(�?y���7м��%2�	X�b�o���������ؽ��$�E:�+��*��,׾��&�/�>�C�
K�
Y�$g�!����ʿ�����(�.�5�>�P�Rf�c��2�?P�
������?�<�5P�S��p���K�'�����E����������d��c^�0��M��A�pX�9��/�&3�&Z�)��7��4���8�
@�N�a�u�
����$�����FZ���������
������A!�c�i�x�	������������
������5�%A�g�0����%��&��I�]�$u�D��@��9 �1Z���8��T��'�7�D�P�p�����+��
����#��=�A�
]�k���+�����������6�I�X�l���������{��;^�����+�����+�2�
>�L�A_�S��	����� '�H�_�r�������+��&��B�X�o���Y���$�2:�m��I��
������
	��:*�e���������.����d��_�t�M��f��$>�Xc�Q��7�+F�r�g�����%�Q>���P��^��mL�	���������9�}X�(�����>"�a�Uu���N��Y.�������
����&���#
�1�9>�8x�
��0��V��_G�C��G��a3�6��8��4�/:�7j�6��7��-�#?�$c�)��L��*��)*�-T�(��,��.��K�?S�?��H��<�3Y���R�������%�-�F�2K�~�(��5�����#�'�-�e1�-��/��M��hC���]��=*�8h�[��c��Ca�j��z�A��h��q6����q:���H��W�Om�>�����K-�y���E��1��-�YC�$��)��9��O&�&v�)��9��Y�$[�X��1���A�*^�^��E�U.�(��S���J�(b�I��'�.��&,�S�2n�2��7�Y�*f��������:��N��;G�,��*��1�;
�(I�Jr�4��+��N=�Q��o�XN�/��G�91Y� ����J�^�3JN~�W��C��*�<�1V3L�*�]`ems�$���
����#/�(�) J�_��
j	
x	�	�	@�	�	"�	


$2:QW:h��$�� 3rR5�_�8[
�
$�
�
.�
2!rT�!��C�FB
��� � �Kck��+���)����� �
(9dQJ�jMle� g2R�Z�HTi&�'�#��%�1/�q(�@�J�F@.�Z�6GH3��'�&).ZX��
����'0KN���J�	�!�+�%(-2V��	�
�
�����	�	r��m�  
* 5 < 3T h� � N!8`!=�!"�!7�!2"H6""�"�"'�"
�"	�"�"#%#<#B#|R#H�#$%'$	M$"W$z$P�$T�$Z@%:�%>�%u&�&.�&-�&/�&L!'2n'I�'�'�'(#(9(K(Ea(M�(P�(0F)'w)�)�)�)�)�)*I*+X*	�*	�*�* �*"�*/�**+C+
K+Y+p+��+4,f=, �,�,�,
�,�,�,#�,-!-.-
>-I-V-c-t-z-�-�-�-	�-�-�-
�-..".1.=.J.Y.k.0�.*�.U�.W</�/ �/ �/(�/0%0C0P0Kh0P�0	11&181-Q11�1�1�1"�12"#2F2 `2�2�2&�2"�2G3!S3,u3#�3*�3�34-4(E4	n4x4W�4�4551-5%_52�5�5
�5�5�5�5
66/6&F6.m6N�6*�607G7f7]�7�7�7!8(848
F8T8q8�8�8�8�8�8�8%�8
9!#9E94Z9*�9;�9�9:	: :4:S:;m::�:�:�:; +;"L;o;�;/�;*�;<�;76<n<}<�<�<�<
�<	�<�<�<==<=P=W=	c=m=|=�=�=�=�=!�=�=>&>?>P>p>
�>�>�>)�>�>-�>}"?�?D�?8�?/@7@;L@�@ �@K�@8�@q7A�A�A�A�A�AB!B4BFBXBCqBE�B�B
C
C&C?CQCoC
sC~C<�C�D�D�DE9E
QE_ErE �E�E
�EY�EqF�F�FN�F�FG�G�G�G�G�G�G�G
HH)H0H@H+GH%sH,�Hs�Hv:I#�I�I�IJ(J?JPJiJ*uJ�J�J�J�J�JLK[K9gK:�K0�K)
L�7Lc�LG8MP�MW�M)N:N
RN]N
nNyN�N�N�N �N�NOO#(OLOhO
�O�O=�O�O8�O8PVP
ePsP�P �P0�P�PQQ#)QMQSQmQyQ	�Q�QB�Q�Q	�Q�Q2�QZ2R-�R�R�R-�R�Si�SI\T;�TY�TK<UV�UU�UL5Vl�VB�VY2W��WV.X`�XJ�Xg1Y=�Z@�Z=[V[l[~[�[�[�[�[�[
\\<.\k\�\�\?�\�\
]%]>]V]r]�]�]?�]�]^
^^ *^&K^ r^D�^�^�^�^_
_�_6�_`/`D`d`
l`w`�`
�`�`
�`/�`/�`+ap@a<�a
�a�ab!b6bBb	Qb[bgb�b�b/�b�b
�b�b
cc)c6chUc�cA�c�d�d	�d�d�d'�d
�d
e
e
*e"8e[edese$�e+�e�e#�ef*'fRfcf
zf
�f�f��f/gBgP]gK�gB�g7=h@uh&�h�h�hii%3iYi xi"�i&�i!�ijj8j$Pj�uj]ktk�k�k�k �k�k�k/l.<l�kl�lmm0mMmammm�m�m�m�m�m+�mnnn3n@nDn
Wnenqn}n�n�n�n%�n�n$�n
!o/o4oGo@Wo
�o%�o�o�o�o>�op1p Fpgp*~p �p2�p�pq"3q*Vq"�q"�q�q�q�q<r,Ir
vr
�r
�rF�r�r�r�r
�r.s?6s6vs;�s1�s3t2OtB�t6�t0�t-u1u4u7u>uKuauQ~uD�u
v-#v$QvPvv?�vw7wVwcw&�w	�w�w�w�w�w�wx'x;xTx$dxE�x+�x*�x,&ySyiyuy~y�y�y
�y
�y$�y!�y�yz9zFzUzgzwz}z�z�z�zR�zc{2l{?�{
�{�{|?"|<b|5�|S�|p)}��}'~�F~E�~'6dHc�0�MB���p��9�/R�&��&��)Ё7��42�g���
������Ă
ӂ�&����F����� �
2�@�U�a�At�����˄	ۄ���
��'�
8�C�O�5^�%����0օ�%�&?�If���$ȆD�@2�9s�1��߇8�T%�z�������ÈԈ�+�
�#�#2�=V���
����ۉ+��+�?�R�r���������ӊ�	��{5�;����+�H�f�~���
����A��S�	H�R�d�!z�����Ǎ֍���+�&C�Bj���Ď�Y��W�$k�2��ÏՏI�
4�B�R�
_�m�:����ِ����.�J�dP���ʑMߑf-�$��X��Q�7d�+��ȓg�J�\�{�Q���P�^C�m��	��,�E�^�9t�}��(,�U�o�>x���U˗!�N5�Y��ޘ���
��&7�^�#c���;��8Й
	�0�VH�_��C��GC�a��6�8$�4]�/��7œ6��71�-i�$��%��)�L�*Y�)��.��(ݞ,�.3�Kb�?��?�H.�<w�3���R�B�W�o�������2��١(��5 �V�k�~�����e��-�/ �MP�h���]'�=��8ä[��cX�C��j�zk�A�h(�q����q���H'�Wp�Oȩ>�W�p�K��Ԫ�E��1>�-p�Y��$��)�9G�O��&ѭ)��9"�T\�$��X֮1/�a�At�*��^�E@�U��(ܰS�Y�Jo�(��I�'-�.U�&����2Ʋ2��7,�Yd�*����ڵ��:�NP�;��,۶*�13�;e�(��Jʷ4�+J�v�N��Q�o6�X��/��G/�9w�1��� ����J��^C�3��Nּ%�WC�����2�*�<�1Y�V��L�,/�]\��������$��#�3�@�S�Z�j�s��{�0�)P�*z�������C�
��
������@�D�"H�k�
q�
���������:�����$(�M�g�{���r��5 �_V�8����$�-�.M�2|�r��"�!+�M�DY�F��
����� )� J�k�Ks���������+�2�:�)O��y���*� @�
a�o�����d��J�j]�M��e�|�g��R��ZI�������&��'�#4�X�%g����/E�qu�(��@�JQ�F��.��Z�6m�G��3�� �'@�h���)��Z���!�
*�5�=�Q�'d���K�������J�	^�h�p�x��}�I�X�R�P+}S*w���s���rI�PB��t��	<�q��$���`���#�!��m9�?����96�������O�����l�,�X���w�@�
HE=��
	,3�K�#��]����OS$�����x�����$��2)�����)���l �����������75o!�$h:;��n��\��%@8V��	��'������c�x.�7 {V�v2�6z`�6��;�5�:��LU:��0��~�u6VM��&b�*j�v�0���G|���n����/�1�����Wr> ������^�W
md]�x�g�m'�h����lM"5��t�����bY�����&n�]fw�dTi\5�Z�z�s��%�|���:�9"l��-�q+4�!@pl����^�0�p%C/���A����v���S�s��r�+kb
��[;�t��Di{I���<��f���RJ���{��A1����G)u[r��e=���3;�
J��(`<�����*z�EC1�C��sZ�i�������L��x�����bO��Nd"\N~�o[uVk~c��e7g�Af���{�wL#	�Gyp�.
�@L4n����Ax0B�B���� d8�FEuJ�|7)��=����*�u����>��h'�k�~?;}�H_�=Z.�Kk��W&��w����1>K���)�����Y
�Nj��ORFI=���Xij+
�3����4�|a37�]�����}�Ry3�M��c��f����OJS_av/
��_t��yaY���PF�!g@e�4�����(���X�X�W8q1T�>�a��B���I��n8�r��-�������q�U���C(���y����&QS��\'����c�������s�>���hGc����F:y��H��U�����6���(�^99&g�p}dPQ�%���F�������ZY/4��2~�EVM������,��,P�+Q��D�J��v�o� _�o#�T�����������m���?Hp�\���q-K�<.�b�B8��2�e��j|?H��g�T.�f'[`[�Z^M�*-(��]���!e�����h�m�U�
��^$�2�������IQ��N�Q�%�}k���/"At#N0�D,�`zK�5ao�������REj���zDY��TU{�D��?iG	C�����"-��<L����W����_ %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred.%s is recommended.&laquo;&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.&raquo;(no savings)(non-optm)(optm).htaccess Path Settings<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter DOM ReadyAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAny changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS SettingsCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimizerClean Crawler MapClean Up Unfinished DataClean all CSS/JS optimizer data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optmizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDO NOT EDIT ANYTHING WITHIN %sDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDomain KeyDomain Key hash mismatchDrop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all online server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate Critical CSSGenerate Critical CSS In BackgroundGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate UCSS in BackgroundGenerate unique CSS in the background via a cron-based queue.Generated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLeave empty to auto detectLeave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated.Link to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache Edit .htaccessLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad Inline JSLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled.LocalizationLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManage CrawlerManually added to blacklistManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.Non cacheableNot AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge localized resource entries.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimizationOptimization SettingsOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consult the host/server admin before making any changes.Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Prefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended valueRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Noscript TagRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlacklistRemove query strings from static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save .htaccessSave ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, CSS/JS files are cached.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the backend .htaccess path.Specify the frontend .htaccess path.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This option will remove all %s tags from HTML.This page is meant for advanced users.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisUCSS Whitelist SelectorURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub commitUse latest WordPress release versionUse object cache functionality.Use original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You don't have enough quota for current service left this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IP isZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.user agentsPO-Revision-Date: 2021-04-19 19:44:47+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: en_GB
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred.%s is recommended.&laquo;&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.&raquo;(no savings)(non-optm)(optm).htaccess Path Settings<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA domain key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimised.APIAccelerates the speed by caching Gravatar (Globally Recognised Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter DOM ReadyAfter the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images.After verifying that the cache works in general, please test the basket.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAny changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimised images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimised images.Automatically request optimisation via cron job.Avatar list in queue waiting for updateBack end .htaccess PathBack end Heartbeat ControlBack end Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a grey image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS SettingsCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimiserClean Crawler MapClean Up Unfinished DataClean all CSS/JS optimiser data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all binned commentsClean all binned posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean binned comments successfully.Clean binned posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimised version.Click to switch to original (unoptimised) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulations! Your file was already optimisedCongratulations, all gathered!Congratulations, all requested!Congratulations, your domain key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️ by the LiteSpeed team.Credits are not enough to proceed with the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimised version of WebP file.Currently using optimised version of file.Currently using original (unoptimised) version of WebP file.Currently using original (unoptimised) version of file.Custom SitemapDB Optimisation SettingsDNS PrefetchDNS Prefetch ControlDO NOT EDIT ANYTHING WITHIN %sDaily archiveDashboardDatabaseDatabase OptimiserDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimisation DataDestroyed all optimisation data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by Ajax to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDomain keyDomain Key hash mismatchDrop domain from sitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in HTML code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services to directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create Optimiser table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimisationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all online server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFront end .htaccess PathFront end Heartbeat ControlFront end Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate Critical CSSGenerate Critical CSS In BackgroundGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate UCSS in BackgroundGenerate unique CSS in the background via a cron-based queue.Generated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimisation from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimisation.However, there is no way of knowing all the possible customisations that were implemented..htaccess did not match configuration option..htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localised, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimisationImage Optimisation SettingsImage Optimisation SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimised and pulledImages previously optimisedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain colour placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger numbers will generate higher resolution quality placeholders, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLeave empty to auto detectLeave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated.Link to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector so that its style should always be contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimisationLiteSpeed Cache Edit .htaccessLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimisationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimisationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimisationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad Inline JSLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimisation features are enabled.LocalisationLocalisation SettingsLocalise ResourcesLocalise external resources.Localised ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManage CrawlerManually added to blacklistManually runMapMark this page as Maximum valueMaybe laterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New version available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimised WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimisationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.Non cacheableNot AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge localised resource entries.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users, please check thisOperationOptimisationOptimisation SettingsOptimisation StatusOptimisation SummaryOptimisation ToolsOptimise CSS delivery.Optimise LosslesslyOptimise Original ImagesOptimise TablesOptimise all tables in your databaseOptimise images and save backups of the originals in the same folder.Optimise images using lossless compression.Optimise images with our QUIC.cloud serverOptimised WebP file expired and was cleared.Optimised all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePage OptimisationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consult the host/server admin before making any changes.Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Prefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimisation of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache BasketPrivately cache basket when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge URL %sPurged All!Purged all caches successfully.Purged the blog!Purged the URL!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended valueRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Noscript TagRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files.Remove all previous unfinished image optimisation requests.Remove cookie simulationRemove from BlacklistRemove query strings from static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimisation.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescanned %d images successfully.Rescanned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimised data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColourResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save .htaccessSave ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimisation requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimisations.Selected roles will be excluded from cache.Send Optimisation RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimised %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognised. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimised image file(s) have expired and were cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an http status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, CSS/JS files are cached.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the back end .htaccess path.Specify the front end .htaccess path.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG colour.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimisationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimised images on your siteSwitched images successfully.Switched to optimised file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank you for using the LiteSpeed Cache plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month's UsageThis action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This option will remove all %s tags from HTML.This page is meant for advanced users.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localised resourcesThis will disable LSCache and all optimisation features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimised files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomise CDN hostname, define multiple hostnames for the same resources.To test the basket, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimised in this monthTrackbacks/PingbacksBinned commentsBinned PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in back end editor.Turn ON to control heartbeat on back end.Turn ON to control heartbeat on front end.Turn on auto upgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Tweet previewTweet thisUCSS Whitelist SelectorURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimised FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub commitUse latest WordPress release versionUse object cache functionality.Use original images (unoptimised) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimised version of file. Value rangeVariables %s will be replaced with the configured background colour.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologise for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You don't have enough quota for current service left this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimisation once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IP isZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.user agents# Translation of Plugins - LiteSpeed Cache - Stable (latest release) in English (UK)
# This file is distributed under the same license as the Plugins - LiteSpeed Cache - Stable (latest release) package.
msgid ""
msgstr ""
"PO-Revision-Date: 2021-04-19 19:44:47+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: GlotPress/3.0.0-alpha.2\n"
"Language: en_GB\n"
"Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)\n"

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr "Purged!"

#: tpl/page_optm/settings_localization.tpl.php:116
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr "Resources listed here will be copied and replaced with local URLs."

#: tpl/page_optm/settings_css.tpl.php:28
msgid "Minify CSS files and inline CSS code."
msgstr "Minify CSS files and inline CSS code."

#: tpl/page_optm/settings_css.tpl.php:69
msgid "This will drop the unused CSS on each page."
msgstr "This will drop the unused CSS on each page."

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr "Localisation"

#: tpl/page_optm/entry.tpl.php:8
msgid "Optimization"
msgstr "Optimisation"

#: tpl/page_optm/settings_js.tpl.php:48
msgid "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine."
msgstr "Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine."

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr "Combine all local JS files into a single file."

#: tpl/page_optm/settings_tuning.tpl.php:86
msgid "Listed JS files or inline JS code will not be deferred."
msgstr "Listed JS files or inline JS code will not be deferred."

#: tpl/general/settings.tpl.php:95
msgid "Request submitted. Please wait, then refresh the page to see approval notification."
msgstr "Request submitted. Please wait, then refresh the page to see approval notification."

#: src/data.upgrade.func.php:43
msgid "Click here to settings"
msgstr "Click here to settings"

#: src/data.upgrade.func.php:42
msgid "JS Defer"
msgstr "JS Defer"

#: src/data.upgrade.func.php:42
msgid "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."
msgstr "LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors."

#: src/lang.cls.php:113
msgid "JS Combine External and Inline"
msgstr "JS Combine External and Inline"

#: src/admin-display.cls.php:446
msgid "Dismiss"
msgstr "Dismiss"

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr "The latest data file is"

#: tpl/cache/settings-esi.tpl.php:92
msgid "The list will be merged with the predefined nonces in your local data file."
msgstr "The list will be merged with the predefined nonces in your local data file."

#: tpl/page_optm/settings_css.tpl.php:41
msgid "Combine CSS files and inline CSS code."
msgstr "Combine CSS files and inline CSS code."

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr "Minify JS files and inline JS codes."

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr "Listed JS files or inline JS code will not be minified/combined."

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr "Listed CSS files or inline CSS code will not be minified/combined."

#: src/css.cls.php:552 src/placeholder.cls.php:542
msgid "Queue cleared successfully."
msgstr "Queue cleared successfully."

#: src/admin-display.cls.php:903
msgid "This setting is overwritten by the Network setting"
msgstr "This setting is overwritten by the Network setting"

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr "LQIP Excludes"

#: tpl/page_optm/settings_media_exc.tpl.php:121
msgid "These images will not generate LQIP."
msgstr "These images will not generate LQIP."

#: tpl/toolbox/import_export.tpl.php:52
msgid "Are you sure you want to reset all settings back to the default settings?"
msgstr "Are you sure you want to reset all settings back to the default settings?"

#: tpl/page_optm/settings_html.tpl.php:143
msgid "This option will remove all %s tags from HTML."
msgstr "This option will remove all %s tags from HTML."

#: tpl/general/settings.tpl.php:117
msgid "Are you sure you want to clear all cloud nodes?"
msgstr "Are you sure you want to clear all cloud nodes?"

#: src/lang.cls.php:138
msgid "Remove Noscript Tag"
msgstr "Remove Noscript Tag"

#: src/error.cls.php:80
msgid "The site is not registered on QUIC.cloud."
msgstr "The site is not registered on QUIC.cloud."

#: src/error.cls.php:43
msgid "Click here to change."
msgstr "Click here to change."

#: src/error.cls.php:48 src/cloud.cls.php:655
msgid "Click here to set."
msgstr "Click here to set."

#: src/cloud.cls.php:654
msgid "Site not recognized. Domain Key has been automatically removed. Please request a new one."
msgstr "Site not recognised. Domain Key has been automatically removed. Please request a new one."

#: src/purge.cls.php:280
msgid "Notified LiteSpeed Web Server to purge localized resource entries."
msgstr "Notified LiteSpeed Web Server to purge localised resource entries."

#: src/lang.cls.php:126
msgid "Localize Resources"
msgstr "Localise Resources"

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr "Setting Up Custom Headers"

#: tpl/toolbox/purge.tpl.php:82
msgid "This will delete all localized resources"
msgstr "This will delete all localised resources"

#: src/gui.cls.php:518 src/gui.cls.php:669 tpl/toolbox/purge.tpl.php:81
msgid "Localized Resources"
msgstr "Localised Resources"

#: tpl/page_optm/settings_localization.tpl.php:121
msgid "Comments are supported. Start a line with a %s to turn it into a comment line."
msgstr "Comments are supported. Start a line with a %s to turn it into a comment line."

#: tpl/page_optm/settings_localization.tpl.php:117
msgid "HTTPS sources only."
msgstr "HTTPS sources only."

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr "Localise external resources."

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr "Localisation Settings"

#: tpl/page_optm/settings_css.tpl.php:115
msgid "List the CSS selector that its style should be always contained in UCSS."
msgstr "List the CSS selector so that its style should always be contained in UCSS."

#: tpl/page_optm/settings_css.tpl.php:82
msgid "Generate unique CSS in the background via a cron-based queue."
msgstr "Generate unique CSS in the background via a cron-based queue."

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr "Use QUIC.cloud online service to generate unique CSS."

#: src/lang.cls.php:109
msgid "UCSS Whitelist Selector"
msgstr "UCSS Whitelist Selector"

#: src/lang.cls.php:108
msgid "Generate UCSS in Background"
msgstr "Generate UCSS in Background"

#: src/lang.cls.php:107
msgid "Generate UCSS"
msgstr "Generate UCSS"

#: tpl/toolbox/purge.tpl.php:109
msgid "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"
msgstr "Purge the cache entries created by this plugin except for Critical CSS & LQIP caches"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Press the %s button to use the most recent GitHub commit."
msgstr "Press the %s button to use the most recent GitHub commit."

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr "LiteSpeed Report"

#: tpl/img_optm/summary.tpl.php:216
msgid "Image Thumbnail Group Sizes"
msgstr "Image Thumbnail Group Sizes"

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr "Ignore certain query strings when caching. (LSWS %s required)"

#: tpl/page_optm/settings_js.tpl.php:89
msgid "%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred."
msgstr "%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred."

#: tpl/page_optm/settings_js.tpl.php:88
msgid "Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled."
msgstr "Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimisation features are enabled."

#: tpl/cache/settings-purge.tpl.php:115
msgid "For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr "For URLs with wildcards, there may be a delay in initiating scheduled purge."

#: tpl/cache/settings-purge.tpl.php:91
msgid "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."
msgstr "By design, this option may serve stale content. Do not enable this option, if that is not OK with you."

#: src/lang.cls.php:94
msgid "Serve Stale"
msgstr "Serve Stale"

#: src/admin-display.cls.php:900
msgid "This setting is overwritten by the primary site setting"
msgstr "This setting is overwritten by the primary site setting"

#: src/img-optm.cls.php:901
msgid "One or more pulled images does not match with the notified image md5"
msgstr "One or more pulled images does not match with the notified image md5"

#: src/img-optm.cls.php:884
msgid "Some optimized image file(s) has expired and was cleared."
msgstr "Some optimised image file(s) have expired and were cleared."

#: src/error.cls.php:60
msgid "You have too many notified images, please pull down notified images first."
msgstr "You have too many notified images, please pull down notified images first."

#: src/error.cls.php:56
msgid "You have too many requested images, please try again in a few minutes."
msgstr "You have too many requested images, please try again in a few minutes."

#: src/img-optm.cls.php:962
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr "Pulled WebP image md5 does not match the notified WebP image md5."

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr "Read LiteSpeed Documentation"

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr "There is proceeding queue not pulled yet. Queue info: %s."

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr "Sitemap Timeout"

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr "Specify the timeout while parsing the sitemap."

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr "Specify how long, in seconds, Gravatar files are cached."

#: tpl/page_optm/settings_html.tpl.php:21
msgid "Specify how long, in seconds, CSS/JS files are cached."
msgstr "Specify how long, in seconds, CSS/JS files are cached."

#: tpl/general/settings.tpl.php:113
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr "A domain key is required for QUIC.cloud online services."

#: src/img-optm.cls.php:495
msgid "Cleared %1$s invalid images."
msgstr "Cleared %1$s invalid images."

#: src/img-optm.cls.php:457
msgid "Bypassed %1$s duplicated images."
msgstr "Bypassed %1$s duplicated images."

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr "Request Domain Key"

#: tpl/general/entry.tpl.php:19
msgid "LiteSpeed Cache General Settings"
msgstr "LiteSpeed Cache General Settings"

#: tpl/toolbox/purge.tpl.php:100
msgid "This will delete all cached Gravatar files"
msgstr "This will delete all cached Gravatar files"

#: tpl/toolbox/edit_htaccess.tpl.php:107
msgid "Save .htaccess"
msgstr "Save .htaccess"

#: tpl/toolbox/edit_htaccess.tpl.php:81
msgid "Specify the backend .htaccess path."
msgstr "Specify the back end .htaccess path."

#: tpl/toolbox/edit_htaccess.tpl.php:67 tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Leave empty to auto detect"
msgstr "Leave empty to auto detect"

#: tpl/toolbox/edit_htaccess.tpl.php:66
msgid "Specify the frontend .htaccess path."
msgstr "Specify the front end .htaccess path."

#: tpl/toolbox/edit_htaccess.tpl.php:54
msgid ".htaccess Path Settings"
msgstr ".htaccess Path Settings"

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr "Prevent any debug log of listed pages."

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr "Only log listed pages."

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr "Specify the maximum size of the log file."

#: tpl/toolbox/settings-debug.tpl.php:37
msgid "To prevent filling up the disk, this setting should be OFF when everything is working."
msgstr "To prevent filling up the disk, this setting should be OFF when everything is working."

#: tpl/toolbox/beta_test.tpl.php:46
msgid "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."
msgstr "Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory."

#: tpl/toolbox/beta_test.tpl.php:35 tpl/toolbox/beta_test.tpl.php:46
msgid "Use latest WordPress release version"
msgstr "Use latest WordPress release version"

#: tpl/toolbox/beta_test.tpl.php:35
msgid "OR"
msgstr "OR"

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Use latest GitHub commit"
msgstr "Use latest GitHub commit"

#: tpl/toolbox/beta_test.tpl.php:26
msgid "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."
msgstr "Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below."

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr "Reset Settings"

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr "LiteSpeed Cache Toolbox"

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr "Beta Test"

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr "Log View"

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr "Debug Settings"

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr "Turn ON to control heartbeat in back end editor."

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr "WordPress valid interval is %s seconds"

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr "Turn ON to control heartbeat on back end."

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr "Set to %1$s to forbid heartbeat on %2$s."

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr "WordPress valid interval is %s seconds."

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr "Specify the %s heartbeat interval in seconds."

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr "Turn ON to control heartbeat on front end."

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr "Disable WordPress interval heartbeat to reduce server load."

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr "Heartbeat Control"

#: tpl/toolbox/report.tpl.php:86
msgid "provide more information here to assist the LiteSpeed team with debugging."
msgstr "provide more information here to assist the LiteSpeed team with debugging."

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr "Optional"

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr "Generate Link for Current User"

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr "Passwordless Link"

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr "System Information"

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr "Go to plugins list"

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr "Install DoLogin Security"

#: tpl/general/settings.tpl.php:150
msgid "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site."
msgstr "the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site."

#: tpl/general/settings.tpl.php:148
msgid "Check my public IP from"
msgstr "Check my public IP from"

#: tpl/general/settings.tpl.php:148
msgid "Your server IP is"
msgstr "Your server IP is"

#: tpl/general/settings.tpl.php:147
msgid "Enter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr "Enter this site's IP address to allow cloud services to directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups."

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr "Specify the timeout while crawling each URL."

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr "Specify time in seconds for the time between each run interval."

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr "This will enable crawler cron."

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr "Crawler General Settings"

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr "Not Blacklist"

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr "Remove from Blacklist"

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr "Empty blacklist"

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr "Are you sure to delete all existing blacklist?"

#: tpl/crawler/map.tpl.php:69 tpl/crawler/blacklist.tpl.php:56
msgid "Blacklisted due to not cacheable"
msgstr "Blacklisted due to not cacheable"

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr "Add to Blacklist"

#: tpl/crawler/map.tpl.php:45 tpl/crawler/blacklist.tpl.php:33
msgid "Operation"
msgstr "Operation"

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr "Sitemap Total"

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr "Sitemap List"

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr "Refresh Crawler Map"

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr "Clean Crawler Map"

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr "Sitemap Settings"

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr "Simulation Settings"

#: tpl/crawler/entry.tpl.php:8 tpl/crawler/blacklist.tpl.php:21
msgid "Blacklist"
msgstr "Blacklist"

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr "Map"

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr "Summary"

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."
msgstr "If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain."

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr "The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage."

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr "Crawler Sitemap Settings"

#: tpl/crawler/summary.tpl.php:186
msgid "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."
msgstr "&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence."

#: tpl/crawler/summary.tpl.php:185
msgid "Crawlers cannot run concurrently."
msgstr "Crawlers cannot run concurrently."

#: tpl/crawler/summary.tpl.php:179 tpl/crawler/map.tpl.php:68
msgid "Cache Miss"
msgstr "Cache Miss"

#: tpl/crawler/summary.tpl.php:178 tpl/crawler/map.tpl.php:67
msgid "Cache Hit"
msgstr "Cache Hit"

#: tpl/crawler/summary.tpl.php:177
msgid "Waiting to be Crawled"
msgstr "Waiting to be Crawled"

#: tpl/crawler/summary.tpl.php:159 tpl/crawler/summary.tpl.php:180
#: tpl/crawler/map.tpl.php:70 tpl/crawler/blacklist.tpl.php:57
msgid "Blacklisted"
msgstr "Blacklisted"

#: tpl/crawler/summary.tpl.php:158
msgid "Miss"
msgstr "Miss"

#: tpl/crawler/summary.tpl.php:157
msgid "Hit"
msgstr "Hit"

#: tpl/crawler/summary.tpl.php:156
msgid "Waiting"
msgstr "Waiting"

#: tpl/crawler/summary.tpl.php:125
msgid "Running"
msgstr "Running"

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr "Use %1$s in %2$s to indicate this cookie has not been set."

#: src/admin-display.cls.php:215
msgid "Add new cookie to simulate"
msgstr "Add new cookie to simulate"

#: src/admin-display.cls.php:214
msgid "Remove cookie simulation"
msgstr "Remove cookie simulation"

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr "Crawler Simulation Settings"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess rule is: %s"
msgstr ".htaccess rule is: %s"

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr "More settings available under %s menu"

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid "The amount of time, in seconds, that files will be stored in browser cache before expiring."
msgstr "The amount of time, in seconds, that files will be stored in browser cache before expiring."

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr "OpenLiteSpeed users, please check this"

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr "Browser Cache Settings"

#: tpl/cache/settings-cache.tpl.php:139
msgid "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be forced to public cached regardless of no-cacheable settings."

#: tpl/cache/settings-cache.tpl.php:34
msgid "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."
msgstr "With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server."

#: tpl/cache/settings-esi.tpl.php:104
msgid "An optional second parameter may be used to specify cache control. Use a space to separate"
msgstr "An optional second parameter may be used to specify cache control. Use a space to separate"

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr "The above nonces will be converted to ESI automatically."

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr "Browser"

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr "Object"

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr "Default port for %1$s is %2$s."

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr "Object Cache Settings"

#: tpl/cache/settings-ttl.tpl.php:105
msgid "Specify an HTTP status code and the number of seconds to cache that page, separated by a space."
msgstr "Specify an http status code and the number of seconds to cache that page, separated by a space."

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr "Specify how long, in seconds, the front page is cached."

#: tpl/cache/settings-ttl.tpl.php:7 tpl/cache/entry.tpl.php:7
msgid "TTL"
msgstr "TTL"

#: tpl/cache/settings-purge.tpl.php:85
msgid "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."
msgstr "If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait."

#: tpl/page_optm/settings_css.tpl.php:275
msgid "Swap"
msgstr "Swap"

#: tpl/page_optm/settings_css.tpl.php:274
msgid "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."
msgstr "Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded."

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr "Avatar list in queue waiting for update"

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr "Refresh Gravatar cache by cron."

#: tpl/page_optm/settings_localization.tpl.php:31
msgid "Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr "Accelerates the speed by caching Gravatar (Globally Recognised Avatars)."

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr "Store Gravatar locally."

#: tpl/page_optm/settings_localization.tpl.php:12
msgid "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."

#: tpl/page_optm/settings_media.tpl.php:137
msgid "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."
msgstr "LQIP requests will not be sent for images where both width and height are smaller than these dimensions."

#: tpl/page_optm/settings_media.tpl.php:135
msgid "pixels"
msgstr "pixels"

#: tpl/page_optm/settings_media.tpl.php:120
msgid "Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points."
msgstr "Larger numbers will generate higher resolution quality placeholders, but will result in larger files which will increase page size and consume more points."

#: tpl/page_optm/settings_media.tpl.php:119
msgid "Specify the quality when generating LQIP."
msgstr "Specify the quality when generating LQIP."

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Keep this off to use plain color placeholders."
msgstr "Keep this off to use plain colour placeholders."

#: tpl/page_optm/settings_media.tpl.php:104
msgid "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."
msgstr "Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading."

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Specify the responsive placeholder SVG color."
msgstr "Specify the responsive placeholder SVG colour."

#: tpl/page_optm/settings_media.tpl.php:76
msgid "Variables %s will be replaced with the configured background color."
msgstr "Variables %s will be replaced with the configured background colour."

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr "Variables %s will be replaced with the corresponding image properties."

#: tpl/page_optm/settings_media.tpl.php:74
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr "It will be converted to a base64 SVG placeholder on-the-fly."

#: tpl/page_optm/settings_media.tpl.php:73
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr "Specify an SVG to be used as a placeholder when generating locally."

#: tpl/page_optm/settings_media_exc.tpl.php:107
msgid "Prevent any lazy load of listed pages."
msgstr "Prevent any lazy load of listed pages."

#: tpl/page_optm/settings_media_exc.tpl.php:93
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr "Iframes having these parent class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:78
msgid "Iframes containing these class names will not be lazy loaded."
msgstr "Iframes containing these class names will not be lazy loaded."

#: tpl/page_optm/settings_media_exc.tpl.php:64
msgid "Images having these parent class names will not be lazy loaded."
msgstr "Images having these parent class names will not be lazy loaded."

#: tpl/page_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Page Optimization"
msgstr "LiteSpeed Cache Page Optimisation"

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr "Media Excludes"

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:14
msgid "CSS Settings"
msgstr "CSS Settings"

#: tpl/page_optm/settings_css.tpl.php:275
msgid "%s is recommended."
msgstr "%s is recommended."

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_js.tpl.php:89
msgid "Deferred"
msgstr "Deferred"

#: tpl/page_optm/settings_js.tpl.php:86
msgid "After DOM Ready"
msgstr "After DOM Ready"

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_css.tpl.php:272
msgid "Default"
msgstr "Default"

#: tpl/page_optm/settings_html.tpl.php:66
msgid "This can improve the page loading speed."
msgstr "This can improve the page loading speed."

#: tpl/page_optm/settings_html.tpl.php:65
msgid "Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth."
msgstr "Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth."

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr "New developer version %s is available now."

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr "New Developer Version Available!"

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr "Dismiss this notice"

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr "Tweet this"

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr "Tweet preview"

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr "Learn more"

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr "You just unlocked a promotion from QUIC.cloud!"

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr "The image compression quality setting of WordPress out of 100."

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr "Image Optimisation Settings"

#: tpl/img_optm/summary.tpl.php:367
msgid "Are you sure to destroy all optimized images?"
msgstr "Are you sure to destroy all optimised images?"

#: tpl/img_optm/summary.tpl.php:359
msgid "Use Optimized Files"
msgstr "Use Optimised Files"

#: tpl/img_optm/summary.tpl.php:358
msgid "Switch back to using optimized images on your site"
msgstr "Switch back to using optimised images on your site"

#: tpl/img_optm/summary.tpl.php:355
msgid "Use Original Files"
msgstr "Use Original Files"

#: tpl/img_optm/summary.tpl.php:354
msgid "Use original images (unoptimized) on your site"
msgstr "Use original images (unoptimised) on your site"

#: tpl/img_optm/summary.tpl.php:349
msgid "You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available."
msgstr "You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available."

#: tpl/img_optm/summary.tpl.php:346
msgid "Optimization Tools"
msgstr "Optimisation Tools"

#: tpl/img_optm/summary.tpl.php:319
msgid "Rescan New Thumbnails"
msgstr "Rescan New Thumbnails"

#: tpl/img_optm/summary.tpl.php:311
msgid "Congratulations, all requested!"
msgstr "Congratulations, all requested!"

#: tpl/img_optm/summary.tpl.php:284
msgid "Congratulations, all gathered!"
msgstr "Congratulations, all gathered!"

#: tpl/img_optm/summary.tpl.php:281
msgid "Images not yet gathered"
msgstr "Images not yet gathered"

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "What is an image group?"
msgstr "What is an image group?"

#: tpl/img_optm/summary.tpl.php:227
msgid "Delete all backups of the original images"
msgstr "Delete all backups of the original images"

#: tpl/img_optm/summary.tpl.php:209
msgid "Calculate Backups Disk Space"
msgstr "Calculate Backups Disk Space"

#: tpl/img_optm/summary.tpl.php:94
msgid "Optimization Status"
msgstr "Optimisation Status"

#: tpl/img_optm/summary.tpl.php:78
msgid "Gather Image Data"
msgstr "Gather Image Data"

#: tpl/img_optm/summary.tpl.php:66
msgid "Current limit is"
msgstr "Current limit is"

#: tpl/img_optm/summary.tpl.php:65
msgid "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."
msgstr "To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited."

#: tpl/img_optm/summary.tpl.php:60
msgid "You can request a maximum of %s images at once."
msgstr "You can request a maximum of %s images at once."

#: tpl/img_optm/summary.tpl.php:55
msgid "Optimize images with our QUIC.cloud server"
msgstr "Optimise images with our QUIC.cloud server"

#: tpl/img_optm/summary.tpl.php:51 tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr "Current closest Cloud server is %s.&#10; Click to redetect."

#: tpl/db_optm/settings.tpl.php:37
msgid "Revisions newer than this many days will be kept when cleaning revisions."
msgstr "Revisions newer than this many days will be kept when cleaning revisions."

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr "Day(s)"

#: tpl/db_optm/settings.tpl.php:23
msgid "Specify the number of most recent revisions to keep when cleaning revisions."
msgstr "Specify the number of most recent revisions to keep when cleaning revisions."

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr "LiteSpeed Cache Database Optimisation"

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr "DB Optimisation Settings"

#: tpl/db_optm/manage.tpl.php:174
msgid "Option Name"
msgstr "Option Name"

#: tpl/db_optm/manage.tpl.php:159
msgid "Database Summary"
msgstr "Database Summary"

#: tpl/db_optm/manage.tpl.php:138
msgid "We are good. No table uses MyISAM engine."
msgstr "We are good. No table uses MyISAM engine."

#: tpl/db_optm/manage.tpl.php:130
msgid "Convert to InnoDB"
msgstr "Convert to InnoDB"

#: tpl/db_optm/manage.tpl.php:116
msgid "Tool"
msgstr "Tool"

#: tpl/db_optm/manage.tpl.php:115
msgid "Engine"
msgstr "Engine"

#: tpl/db_optm/manage.tpl.php:114
msgid "Table"
msgstr "Table"

#: tpl/db_optm/manage.tpl.php:107
msgid "Database Table Engine Converter"
msgstr "Database Table Engine Converter"

#: tpl/db_optm/manage.tpl.php:57
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"

#: tpl/dash/dashboard.tpl.php:503
msgid "Manage Crawler"
msgstr "Manage Crawler"

#: tpl/dash/dashboard.tpl.php:471
msgid "Currently active crawler"
msgstr "Currently active crawler"

#: tpl/dash/dashboard.tpl.php:468
msgid "Crawler(s)"
msgstr "Crawler(s)"

#: tpl/dash/dashboard.tpl.php:464 tpl/crawler/map.tpl.php:44
msgid "Crawler Status"
msgstr "Crawler Status"

#: tpl/dash/dashboard.tpl.php:417 tpl/dash/dashboard.tpl.php:448
msgid "Force cron"
msgstr "Force cron"

#: tpl/dash/dashboard.tpl.php:415 tpl/dash/dashboard.tpl.php:446
msgid "Requests in queue"
msgstr "Requests in queue"

#: tpl/dash/dashboard.tpl.php:410 tpl/dash/dashboard.tpl.php:441
msgid "Time to execute previous request"
msgstr "Time to execute previous request"

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Stats"
msgstr "Cache Stats"

#: tpl/dash/dashboard.tpl.php:360
msgid "Private Cache"
msgstr "Private Cache"

#: tpl/dash/dashboard.tpl.php:359
msgid "Public Cache"
msgstr "Public Cache"

#: tpl/dash/dashboard.tpl.php:354
msgid "Cache Status"
msgstr "Cache Status"

#: tpl/dash/dashboard.tpl.php:325
msgid "Last Pull"
msgstr "Last Pull"

#: tpl/dash/dashboard.tpl.php:290
msgid "Images Requested"
msgstr "Images Requested"

#: tpl/dash/dashboard.tpl.php:275
msgid "Image Groups Prepared"
msgstr "Image Groups Prepared"

#: tpl/dash/dashboard.tpl.php:265 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr "Image Optimisation Summary"

#: tpl/dash/dashboard.tpl.php:213
msgid "Refresh page score"
msgstr "Refresh page score"

#: tpl/dash/dashboard.tpl.php:202 tpl/img_optm/summary.tpl.php:51
#: tpl/page_optm/settings_media.tpl.php:172
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
msgid "Are you sure you want to redetect the closest cloud server for this service?"
msgstr "Are you sure you want to redetect the closest cloud server for this service?"

#: tpl/dash/dashboard.tpl.php:202
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr "Current closest Cloud server is %s.&#10;Click to redetect."

#: tpl/dash/dashboard.tpl.php:197 tpl/dash/dashboard.tpl.php:257
#: tpl/dash/dashboard.tpl.php:425 tpl/dash/dashboard.tpl.php:456
msgid "Last requested"
msgstr "Last requested"

#: tpl/dash/dashboard.tpl.php:156
msgid "Refresh page load time"
msgstr "Refresh page load time"

#: tpl/dash/dashboard.tpl.php:144
msgid "Go to QUIC.cloud dashboard"
msgstr "Go to QUIC.cloud dashboard"

#: tpl/dash/dashboard.tpl.php:55 tpl/dash/dashboard.tpl.php:433
msgid "Low Quality Image Placeholder"
msgstr "Low Quality Image Placeholder"

#: tpl/dash/dashboard.tpl.php:42
msgid "Sync data from Cloud"
msgstr "Sync data from Cloud"

#: tpl/dash/dashboard.tpl.php:39
msgid "QUIC.cloud Service Usage Statistics"
msgstr "QUIC.cloud Service Usage Statistics"

#: tpl/dash/network_dash.tpl.php:101 tpl/dash/dashboard.tpl.php:133
msgid "Total images optimized in this month"
msgstr "Total images optimised in this month"

#: tpl/dash/network_dash.tpl.php:100 tpl/dash/dashboard.tpl.php:132
msgid "Total Usage"
msgstr "Total Usage"

#: tpl/dash/network_dash.tpl.php:93 tpl/dash/dashboard.tpl.php:125
msgid "Pay as You Go Usage Statistics"
msgstr "Pay as You Go Usage Statistics"

#: tpl/dash/network_dash.tpl.php:91 tpl/dash/dashboard.tpl.php:123
msgid "This Month Usage"
msgstr "This Month's Usage"

#: tpl/dash/network_dash.tpl.php:90 tpl/dash/dashboard.tpl.php:122
msgid "PAYG Balance"
msgstr "PAYG Balance"

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr "Pay as You Go"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Usage"
msgstr "Usage"

#: tpl/dash/network_dash.tpl.php:78 tpl/dash/dashboard.tpl.php:110
msgid "Fast Queue Usage"
msgstr "Fast Queue Usage"

#: tpl/dash/network_dash.tpl.php:29 tpl/dash/dashboard.tpl.php:54
msgid "CDN Bandwidth"
msgstr "CDN Bandwidth"

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr "CCSS"

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr "Usage Statistics"

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr "LiteSpeed Cache Dashboard"

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr "Network Dashboard"

#: tpl/general/settings.tpl.php:129
msgid "No cloud services currently in use"
msgstr "No cloud services currently in use"

#: tpl/general/settings.tpl.php:117
msgid "Click to clear all nodes for further redetection."
msgstr "Click to clear all nodes for further redetection."

#: tpl/general/settings.tpl.php:116
msgid "Current Cloud Nodes in Service"
msgstr "Current Cloud Nodes in Service"

#: tpl/general/settings.tpl.php:108
msgid "Benefits of linking to a QUIC.cloud account"
msgstr "Benefits of linking to a QUIC.cloud account"

#: tpl/general/settings.tpl.php:107
msgid "You must click the %s button if you wish to associate this site with a QUIC.cloud account."
msgstr "You must click the %s button if you wish to associate this site with a QUIC.cloud account."

#: tpl/general/settings.tpl.php:102
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr "You must have %1$s first before linking to QUIC.cloud."

#: tpl/general/settings.tpl.php:88
msgid "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."
msgstr "Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance."

#: tpl/general/settings.tpl.php:87
msgid "Our %s was not whitelisted."
msgstr "Our %s was not whitelisted."

#: tpl/general/settings.tpl.php:86
msgid "The POST callback to %s failed."
msgstr "The POST callback to %s failed."

#: tpl/general/settings.tpl.php:85
msgid "There are two reasons why we might not be able to communicate with your domain:"
msgstr "There are two reasons why we might not be able to communicate with your domain:"

#: tpl/general/settings.tpl.php:84
msgid "There was a problem with retrieving your Domain Key. Please click the %s button to retry."
msgstr "There was a problem retrieving your Domain Key. Please click the %s button to retry."

#: tpl/general/settings.tpl.php:76 tpl/general/settings.tpl.php:78
#: tpl/general/settings.tpl.php:107
msgid "Link to QUIC.cloud"
msgstr "Link to QUIC.cloud"

#: tpl/general/settings.tpl.php:74
msgid "Visit My Dashboard on QUIC.cloud"
msgstr "Visit My Dashboard on QUIC.cloud"

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr "Next available request time: <code>After %s</code>"

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr "Approved"

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr "Requested"

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr "Waiting for Approval"

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr "Waiting for Refresh"

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr "Refresh Domain Key"

#: tpl/general/entry.tpl.php:6 tpl/general/entry.tpl.php:11
#: tpl/general/network_settings.tpl.php:8 tpl/general/settings.tpl.php:43
#: tpl/crawler/entry.tpl.php:9
msgid "General Settings"
msgstr "General Settings"

#: tpl/cdn/settings.tpl.php:120
msgid "Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr "Specify which HTML element attributes will be replaced with CDN Mapping."

#: src/admin-display.cls.php:237
msgid "Add new CDN URL"
msgstr "Add new CDN URL"

#: src/admin-display.cls.php:236
msgid "Remove CDN URL"
msgstr "Remove CDN URL"

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr "Enable %s CDN API functionality."

#: tpl/cdn/manage.tpl.php:23
msgid "To enable the following functionality, turn ON Cloudflare API in CDN Settings."
msgstr "To enable the following functionality, turn ON Cloudflare API in CDN Settings."

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr "To manage QUIC.cloud options, please visit"

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr "QUIC.cloud"

#: thirdparty/woocommerce.content.tpl.php:14
msgid "WooCommerce Settings"
msgstr "WooCommerce Settings"

#: src/doc.cls.php:106 tpl/general/settings.tpl.php:87
msgid "Current Online Server IPs"
msgstr "Current Online Server IPs"

#: src/doc.cls.php:105
msgid "Before generating key, please verify all IPs on this list are whitelisted"
msgstr "Before generating key, please verify all IPs on this list are whitelisted"

#: src/doc.cls.php:104
msgid "For online services to work correctly, you must whitelist all online server IPs."
msgstr "For online services to work correctly, you must whitelist all online server IPs."

#: src/gui.cls.php:528 src/gui.cls.php:679 tpl/toolbox/purge.tpl.php:90
msgid "LQIP Cache"
msgstr "LQIP Cache"

#: src/gui.cls.php:85
msgid "Private Cache Hits"
msgstr "Private Cache Hits"

#: src/gui.cls.php:84
msgid "Private Caches"
msgstr "Private Caches"

#: src/gui.cls.php:83
msgid "Public Cache Hits"
msgstr "Public Cache Hits"

#: src/gui.cls.php:82
msgid "Public Caches"
msgstr "Public Caches"

#: src/admin-settings.cls.php:259 src/admin-settings.cls.php:294
msgid "Options saved."
msgstr "Options saved."

#: src/img-optm.cls.php:1422
msgid "Removed backups successfully."
msgstr "Removed backups successfully."

#: src/img-optm.cls.php:1360
msgid "Calculated backups successfully."
msgstr "Calculated backups successfully."

#: src/img-optm.cls.php:1301
msgid "Rescaned %d images successfully."
msgstr "Rescanned %d images successfully."

#: src/img-optm.cls.php:1215 src/img-optm.cls.php:1288
msgid "Rescaned successfully."
msgstr "Rescanned successfully."

#: src/img-optm.cls.php:1180
msgid "Destroy all optimization data successfully."
msgstr "Destroyed all optimisation data successfully."

#: src/img-optm.cls.php:1109
msgid "Cleaned up unfinished data successfully."
msgstr "Cleaned up unfinished data successfully."

#: src/img-optm.cls.php:1022
msgid "Pulled %d image(s)"
msgstr "Pulled %d image(s)"

#: src/img-optm.cls.php:945
msgid "Optimized WebP file expired and was cleared."
msgstr "Optimised WebP file expired and was cleared."

#: src/img-optm.cls.php:828
msgid "Pull Cron is running"
msgstr "Pull Cron is running"

#: src/img-optm.cls.php:597
msgid "No valid image found by Cloud server in the current request."
msgstr "No valid image found by Cloud server in the current request."

#: src/img-optm.cls.php:574
msgid "No valid image found in the current request."
msgstr "No valid image found in the current request."

#: src/img-optm.cls.php:420
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr "Pushed %1$s to Cloud server, accepted %2$s."

#: src/img-optm.cls.php:143
msgid "Gathered %d images successfully."
msgstr "Gathered %d images successfully."

#: src/img-optm.cls.php:109
msgid "No new image gathered."
msgstr "No new image gathered."

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr "Revisions Max Age"

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr "Revisions Max Number"

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr "Debug URI Excludes"

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr "Debug URI Includes"

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr "Drop domain from sitemap"

#: src/lang.cls.php:216
msgid "Timeout"
msgstr "Timeout"

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr "HTML Attribute To Replace"

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr "Use CDN Mapping"

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr "QUIC.cloud CDN"

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr "Editor Heartbeat TTL"

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr "Editor Heartbeat"

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr "Back end Heartbeat TTL"

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr "Back end Heartbeat Control"

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr "Front end Heartbeat TTL"

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr "Front end Heartbeat Control"

#: src/lang.cls.php:189
msgid "Backend .htaccess Path"
msgstr "Back end .htaccess Path"

#: src/lang.cls.php:188
msgid "Frontend .htaccess Path"
msgstr "Front end .htaccess Path"

#: src/lang.cls.php:178
msgid "ESI Nonces"
msgstr "ESI Nonces"

#: src/lang.cls.php:174
msgid "WordPress Image Quality Control"
msgstr "WordPress Image Quality Control"

#: src/lang.cls.php:169
msgid "Create WebP Versions"
msgstr "Create WebP Versions"

#: src/lang.cls.php:166
msgid "Auto Pull Cron"
msgstr "Auto Pull Cron"

#: src/lang.cls.php:165
msgid "Auto Request Cron"
msgstr "Auto Request Cron"

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr "Generate LQIP In Background"

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr "LQIP Minimum Dimensions"

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr "LQIP Quality"

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr "LQIP Cloud Generator"

#: src/lang.cls.php:157
msgid "Responsive Placeholder SVG"
msgstr "Responsive Placeholder SVG"

#: src/lang.cls.php:156
msgid "Responsive Placeholder Color"
msgstr "Responsive Placeholder Colour"

#: src/lang.cls.php:154
msgid "Basic Image Placeholder"
msgstr "Basic Image Placeholder"

#: src/lang.cls.php:152
msgid "Lazy Load URI Excludes"
msgstr "Lazy Load URI Excludes"

#: src/lang.cls.php:151
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr "Lazy Load Iframe Parent Class Name Excludes"

#: src/lang.cls.php:150
msgid "Lazy Load Iframe Class Name Excludes"
msgstr "Lazy Load Iframe Class Name Excludes"

#: src/lang.cls.php:149
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr "Lazy Load Image Parent Class Name Excludes"

#: src/lang.cls.php:144
msgid "Gravatar Cache TTL"
msgstr "Gravatar Cache TTL"

#: src/lang.cls.php:143
msgid "Gravatar Cache Cron"
msgstr "Gravatar Cache Cron"

#: src/lang.cls.php:142 src/gui.cls.php:538 src/gui.cls.php:689
#: tpl/toolbox/purge.tpl.php:99
msgid "Gravatar Cache"
msgstr "Gravatar Cache"

#: src/lang.cls.php:129
msgid "DNS Prefetch Control"
msgstr "DNS Prefetch Control"

#: src/lang.cls.php:125
msgid "Load Inline JS"
msgstr "Load Inline JS"

#: src/lang.cls.php:123
msgid "Font Display Optimization"
msgstr "Font Display Optimisation"

#: src/lang.cls.php:98
msgid "Force Public Cache URIs"
msgstr "Force Public Cache URIs"

#: src/lang.cls.php:67
msgid "Notifications"
msgstr "Notifications"

#: src/lang.cls.php:64
msgid "Default HTTP Status Code Page TTL"
msgstr "Default HTTP Status Code Page TTL"

#: src/lang.cls.php:63
msgid "Default REST TTL"
msgstr "Default REST TTL"

#: src/lang.cls.php:57
msgid "Enable Cache"
msgstr "Enable Cache"

#: src/lang.cls.php:55
msgid "Domain Key"
msgstr "Domain key"

#: src/lang.cls.php:54
msgid "Server IP"
msgstr "Server IP"

#: src/lang.cls.php:34
msgid "Duplicate image files ignored"
msgstr "Duplicate image files ignored"

#: src/lang.cls.php:24
msgid "Images not requested"
msgstr "Images not requested"

#: src/cloud.cls.php:1049
msgid "Sync credit allowance with Cloud Server successfully."
msgstr "Sync credit allowance with Cloud Server successfully."

#: src/cloud.cls.php:964
msgid "Domain Key hash mismatch"
msgstr "Domain Key hash mismatch"

#: src/cloud.cls.php:893
msgid "Congratulations, your Domain Key has been approved! The setting has been updated accordingly."
msgstr "Congratulations, your domain key has been approved! The setting has been updated accordingly."

#: src/cloud.cls.php:842
msgid "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."
msgstr "Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress."

#: src/cloud.cls.php:646 src/cloud.cls.php:823
msgid "Failed to communicate with QUIC.cloud server"
msgstr "Failed to communicate with QUIC.cloud server"

#: src/cloud.cls.php:595
msgid "Good news from QUIC.cloud server"
msgstr "Good news from QUIC.cloud server"

#: src/cloud.cls.php:579 src/cloud.cls.php:587 src/cloud.cls.php:834
msgid "Message from QUIC.cloud server"
msgstr "Message from QUIC.cloud server"

#: src/cloud.cls.php:465
msgid "Please try after %1$s for service %2$s."
msgstr "Please try after %1$s for service %2$s."

#: src/cloud.cls.php:356
msgid "No available Cloud Node."
msgstr "No available Cloud Node."

#: src/cloud.cls.php:308 src/cloud.cls.php:325 src/cloud.cls.php:356
#: src/cloud.cls.php:465 src/cloud.cls.php:798
msgid "Cloud Error"
msgstr "Cloud Error"

#: src/data.cls.php:197
msgid "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."
msgstr "The database has been upgrading in the background since %s. This message will disappear once upgrade is complete."

#: src/media.cls.php:360
msgid "Restore from backup"
msgstr "Restore from backup"

#: src/media.cls.php:350
msgid "WebP"
msgstr "WebP"

#: src/media.cls.php:344
msgid "No backup of unoptimized WebP file exists."
msgstr "No backup of unoptimised WebP file exists."

#: src/media.cls.php:331
msgid "WebP file reduced by %1$s (%2$s)"
msgstr "WebP file reduced by %1$s (%2$s)"

#: src/media.cls.php:327
msgid "Currently using original (unoptimized) version of WebP file."
msgstr "Currently using original (unoptimised) version of WebP file."

#: src/media.cls.php:322
msgid "Currently using optimized version of WebP file."
msgstr "Currently using optimised version of WebP file."

#: src/media.cls.php:306
msgid "Orig"
msgstr "Orig"

#: src/media.cls.php:303
msgid "(no savings)"
msgstr "(no savings)"

#: src/media.cls.php:303
msgid "Orig %s"
msgstr "Orig %s"

#: src/media.cls.php:300
msgid "Congratulation! Your file was already optmized"
msgstr "Congratulations! Your file was already optimised"

#: src/media.cls.php:291
msgid "No backup of original file exists."
msgstr "No backup of original file exists."

#: src/media.cls.php:291 src/media.cls.php:344
msgid "Using optimized version of file. "
msgstr "Using optimised version of file. "

#: src/media.cls.php:283
msgid "Orig saved %s"
msgstr "Orig saved %s"

#: src/media.cls.php:277
msgid "Original file reduced by %1$s (%2$s)"
msgstr "Original file reduced by %1$s (%2$s)"

#: src/media.cls.php:273 src/media.cls.php:327
msgid "Click to switch to optimized version."
msgstr "Click to switch to optimised version."

#: src/media.cls.php:273
msgid "Currently using original (unoptimized) version of file."
msgstr "Currently using original (unoptimised) version of file."

#: src/media.cls.php:272 src/media.cls.php:326
msgid "(non-optm)"
msgstr "(non-optm)"

#: src/media.cls.php:268 src/media.cls.php:322
msgid "Click to switch to original (unoptimized) version."
msgstr "Click to switch to original (unoptimised) version."

#: src/media.cls.php:268
msgid "Currently using optimized version of file."
msgstr "Currently using optimised version of file."

#: src/media.cls.php:267 src/media.cls.php:292 src/media.cls.php:321
#: src/media.cls.php:345
msgid "(optm)"
msgstr "(optm)"

#: src/placeholder.cls.php:141
msgid "LQIP image preview for size %s"
msgstr "LQIP image preview for size %s"

#: src/placeholder.cls.php:83 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr "LQIP"

#: src/crawler.cls.php:909
msgid "Previously existed in blacklist"
msgstr "Previously existed in blacklist"

#: src/crawler.cls.php:906
msgid "Manually added to blacklist"
msgstr "Manually added to blacklist"

#: src/htaccess.cls.php:355
msgid "Mobile Agent Rules"
msgstr "Mobile Agent Rules"

#: src/crawler-map.cls.php:323
msgid "Sitemap created successfully: %d items"
msgstr "Sitemap created successfully: %d items"

#: src/crawler-map.cls.php:267
msgid "Sitemap cleaned successfully"
msgstr "Sitemap cleaned successfully"

#: src/admin-display.cls.php:1065
msgid "Invalid IP"
msgstr "Invalid IP"

#: src/admin-display.cls.php:1040
msgid "Value range"
msgstr "Value range"

#: src/admin-display.cls.php:1037
msgid "Smaller than"
msgstr "Smaller than"

#: src/admin-display.cls.php:1034
msgid "Larger than"
msgstr "Larger than"

#: src/admin-display.cls.php:1027
msgid "Zero, or"
msgstr "Zero, or"

#: src/admin-display.cls.php:1015
msgid "Maximum value"
msgstr "Maximum value"

#: src/admin-display.cls.php:1012
msgid "Minimum value"
msgstr "Minimum value"

#: src/admin-display.cls.php:994
msgid "Path must end with %s"
msgstr "Path must end with %s"

#: src/admin-display.cls.php:977
msgid "Invalid rewrite rule"
msgstr "Invalid rewrite rule"

#: src/admin-display.cls.php:948 src/admin-display.cls.php:953
msgid "Recommended value"
msgstr "Recommended value"

#: src/admin-display.cls.php:907
msgid "currently set to %s"
msgstr "currently set to %s"

#: src/admin-display.cls.php:897
msgid "This setting is overwritten by the PHP constant %s"
msgstr "This setting is overwritten by the PHP constant %s"

#: src/admin-display.cls.php:137
msgid "Toolbox"
msgstr "Toolbox"

#: src/admin-display.cls.php:133 tpl/page_optm/entry.tpl.php:45
msgid "Database"
msgstr "Database"

#: src/admin-display.cls.php:131
msgid "Page Optimization"
msgstr "Page Optimisation"

#: src/admin-display.cls.php:121 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr "Dashboard"

#: src/db-optm.cls.php:256
msgid "Converted to InnoDB successfully."
msgstr "Converted to InnoDB successfully."

#: src/purge.cls.php:263
msgid "Cleaned all Gravatar files."
msgstr "Cleaned all Gravatar files."

#: src/purge.cls.php:246
msgid "Cleaned all LQIP files."
msgstr "Cleaned all LQIP files."

#: src/utility.cls.php:875
msgid "&raquo;"
msgstr "&raquo;"

#: src/utility.cls.php:874
msgid "&laquo;"
msgstr "&laquo;"

#: src/error.cls.php:161
msgid "Unknown error"
msgstr "Unknown error"

#: src/error.cls.php:157
msgid "Your domain has been forbidden from using our services due to a previous policy violation."
msgstr "Your domain has been forbidden from using our services due to a previous policy violation."

#: src/error.cls.php:153
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: "

#: src/error.cls.php:149
msgid "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."
msgstr "The callback validation to your domain failed. Please make sure there is no firewall blocking our servers."

#: src/error.cls.php:145
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr "The callback validation to your domain failed due to hash mismatch."

#: src/error.cls.php:141
msgid "Your application is waiting for approval."
msgstr "Your application is waiting for approval."

#: src/error.cls.php:137
msgid "Previous request too recent. Please try again after %s."
msgstr "Previous request too recent. Please try again after %s."

#: src/error.cls.php:133
msgid "Previous request too recent. Please try again later."
msgstr "Previous request too recent. Please try again later."

#: src/error.cls.php:128
msgid "Crawler disabled by the server admin."
msgstr "Crawler disabled by the server admin."

#: src/error.cls.php:124
msgid "Failed to create table %s! SQL: %s."
msgstr "Failed to create table %s! SQL: %s."

#: src/error.cls.php:100
msgid "Could not find %1$s in %2$s."
msgstr "Could not find %1$s in %2$s."

#: src/error.cls.php:88
msgid "Credits are not enough to proceed the current request."
msgstr "Credits are not enough to proceed with the current request."

#: src/error.cls.php:84
msgid "The domain key is not correct. Please try to sync your domain key again."
msgstr "The domain key is not correct. Please try to sync your domain key again."

#: src/error.cls.php:72
msgid "There is proceeding queue not pulled yet."
msgstr "There is proceeding queue not pulled yet."

#: src/error.cls.php:68
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr "Not enough parameters. Please check if the domain key is set correctly"

#: src/error.cls.php:64
msgid "The image list is empty."
msgstr "The image list is empty."

#: src/error.cls.php:52
msgid "You don't have enough quota for current service left this month."
msgstr "You don't have enough quota for current service left this month."

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr "You will need to set %s to use the online services."

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr "The setting %s is currently enabled."

#: src/task.cls.php:138
msgid "LiteSpeed Crawler Cron"
msgstr "LiteSpeed Crawler Cron"

#: src/task.cls.php:119
msgid "Every Minute"
msgstr "Every Minute"

#: tpl/general/settings.tpl.php:166
msgid "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."
msgstr "Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions."

#: tpl/toolbox/report.tpl.php:72
msgid "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."
msgstr "To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report."

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr "Generated links may be managed under <a %s>Settings</a>."

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr "Please do NOT share the above passwordless link with anyone."

#: tpl/toolbox/report.tpl.php:31
msgid "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."
msgstr "To generate a passwordless link for LiteSpeed Support Team access, you must install %s."

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr "Install"

#: tpl/cache/settings-esi.tpl.php:36
msgid "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."
msgstr "These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN."

#: tpl/dash/dashboard.tpl.php:210 tpl/banner/score.php:68
msgid "PageSpeed Score"
msgstr "PageSpeed Score"

#: tpl/dash/dashboard.tpl.php:183 tpl/dash/dashboard.tpl.php:241
#: tpl/banner/score.php:55 tpl/banner/score.php:94
msgid "Improved by"
msgstr "Improved by"

#: tpl/dash/dashboard.tpl.php:175 tpl/dash/dashboard.tpl.php:233
#: tpl/banner/score.php:45 tpl/banner/score.php:84
msgid "After"
msgstr "After"

#: tpl/dash/dashboard.tpl.php:166 tpl/dash/dashboard.tpl.php:225
#: tpl/banner/score.php:34 tpl/banner/score.php:74
msgid "Before"
msgstr "Before"

#: tpl/dash/dashboard.tpl.php:153 tpl/banner/score.php:28
msgid "Page Load Time"
msgstr "Page Load Time"

#: tpl/inc/check_cache_disabled.php:10
msgid "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."
msgstr "To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN."

#: src/lang.cls.php:171
msgid "Preserve EXIF/XMP data"
msgstr "Preserve EXIF/XMP data"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid "Only enable for AMP or mobile-specific design/content, not for responsive sites."
msgstr "Only enable for AMP or mobile-specific design/content, not for responsive sites."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Cache mobile views separately."
msgstr "Cache mobile views separately."

#: tpl/toolbox/beta_test.tpl.php:22
msgid "Try GitHub Version"
msgstr "Try GitHub Version"

#: tpl/cdn/settings.tpl.php:96
msgid "If you turn any of the above settings OFF, please remove the related file types from the %s box."
msgstr "If you turn any of the above settings OFF, please remove the related file types from the %s box."

#: src/doc.cls.php:76
msgid "Both full and partial strings can be used."
msgstr "Both full and partial strings can be used."

#: tpl/page_optm/settings_media_exc.tpl.php:49
msgid "Images containing these class names will not be lazy loaded."
msgstr "Images containing these class names will not be lazy loaded."

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr "Lazy Load Image Class Name Excludes"

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr "For example, %1$s defines a TTL of %2$s seconds for %3$s."

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."
msgstr "To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI."

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr "Maybe later"

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr "Turn on auto upgrade"

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:48
msgid "Upgrade"
msgstr "Upgrade"

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr "New release %s is available now."

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr "New version available!"

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr "Created with ❤️ by the LiteSpeed team."

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr "Sure I'd love to review!"

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr "Thank you for using the LiteSpeed Cache plugin!"

#: src/activation.cls.php:417
msgid "Upgraded successfully."
msgstr "Upgraded successfully."

#: src/activation.cls.php:408 src/activation.cls.php:413
msgid "Failed to upgrade."
msgstr "Failed to upgrade."

#: src/conf.cls.php:782
msgid "Changed setting successfully."
msgstr "Changed setting successfully."

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr "ESI sample for developers"

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr "Replace %1$s with %2$s."

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr "You can turn shortcodes into ESI blocks."

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr "WpW: Private Cache vs. Public Cache"

#: tpl/page_optm/settings_html.tpl.php:87
msgid "Append query string %s to the resources to bypass this action."
msgstr "Append query string %s to the resources to bypass this action."

#: tpl/page_optm/settings_html.tpl.php:83
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr "Google reCAPTCHA will be bypassed automatically."

#: tpl/crawler/settings-simulation.tpl.php:49
msgid "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."
msgstr "To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role."

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr "Cookie Values"

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr "Cookie Name"

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr "Cookie Simulation"

#: tpl/toolbox/edit_htaccess.tpl.php:44
msgid "This page is meant for advanced users."
msgstr "This page is meant for advanced users."

#: tpl/page_optm/settings_html.tpl.php:101
msgid "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."
msgstr "Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact."

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."
msgstr "Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual."

#: src/lang.cls.php:66
msgid "Automatically Upgrade"
msgstr "Automatically Upgrade"

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr "Your IP"

#: src/import.cls.php:146
msgid "Reset successfully."
msgstr "Reset successfully."

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr "This will reset all settings to default settings."

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr "Reset All Settings"

#: tpl/page_optm/settings_css.tpl.php:247
msgid "Separate critical CSS files will be generated for paths containing these strings."
msgstr "Separate critical CSS files will be generated for paths containing these strings."

#: src/lang.cls.php:121
msgid "Separate CCSS Cache URIs"
msgstr "Separate CCSS Cache URIs"

#: tpl/page_optm/settings_css.tpl.php:233
msgid "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."
msgstr "For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site."

#: tpl/page_optm/settings_css.tpl.php:232
msgid "List post types where each item of that type should have its own CCSS generated."
msgstr "List post types where each item of that type should have its own CCSS generated."

#: src/lang.cls.php:120
msgid "Separate CCSS Cache Post Types"
msgstr "Separate CCSS Cache Post Types"

#: tpl/page_optm/settings_media.tpl.php:178
msgid "Size list in queue waiting for cron"
msgstr "Size list in queue waiting for cron"

#: tpl/page_optm/settings_media.tpl.php:155
msgid "If set to %1$s, before the placeholder is localized, the %2$s configuration will be used."
msgstr "If set to %1$s, before the placeholder is localised, the %2$s configuration will be used."

#: tpl/page_optm/settings_media.tpl.php:153
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr "Automatically generate LQIP in the background via a cron-based queue."

#: tpl/page_optm/settings_media.tpl.php:60
msgid "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."
msgstr "This will generate the placeholder with same dimensions as the image if it has the width and height attributes."

#: tpl/page_optm/settings_media.tpl.php:59
msgid "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."
msgstr "Responsive image placeholders can help to reduce layout reshuffle when images are loaded."

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr "Responsive Placeholder"

#: tpl/toolbox/purge.tpl.php:91
msgid "This will delete all generated image LQIP placeholder files"
msgstr "This will delete all generated image LQIP placeholder files"

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr "Please enable LiteSpeed Cache in the plugin settings."

#: tpl/inc/check_cache_disabled.php:15
msgid "Please enable the LSCache Module at the server level, or ask your hosting provider."
msgstr "Please enable the LSCache Module at the server level, or ask your hosting provider."

#: src/cloud.cls.php:548 src/cloud.cls.php:560
msgid "Failed to request via WordPress"
msgstr "Failed to request via WordPress"

#: tpl/page_optm/settings_media.tpl.php:216
msgid "Include the lazy load image JavaScript library inline."
msgstr "Include the lazy load image JavaScript library inline."

#: src/lang.cls.php:164
msgid "Inline Lazy Load Images Library"
msgstr "Inline Lazy Load Images Library"

#. Description of the plugin
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr "High-performance page caching and site optimisation from LiteSpeed"

#: src/img-optm.cls.php:1740
msgid "Reset the optimized data successfully."
msgstr "Reset the optimised data successfully."

#: src/gui.cls.php:755
msgid "Update %s now"
msgstr "Update %s now"

#: src/gui.cls.php:750
msgid "View %1$s version %2$s details"
msgstr "View %1$s version %2$s details"

#: src/gui.cls.php:747
msgid "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."
msgstr "<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s target=\"_blank\">update now</a>."

#: src/gui.cls.php:727
msgid "Install %s"
msgstr "Install %s"

#: src/lang.cls.php:31
msgid "Images previously optimized"
msgstr "Images previously optimised"

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr "LSCache caching functions on this page are currently unavailable!"

#: src/cloud.cls.php:604
msgid "%1$s plugin version %2$s required for this action."
msgstr "%1$s plugin version %2$s required for this action."

#: src/cloud.cls.php:570
msgid "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience."
msgstr "We are working hard to improve your online service experience. The service will be unavailable while we work. We apologise for any inconvenience."

#: tpl/img_optm/settings.tpl.php:62
msgid "Automatically remove the original image backups after fetching optimized images."
msgstr "Automatically remove the original image backups after fetching optimised images."

#: src/lang.cls.php:168
msgid "Remove Original Backups"
msgstr "Remove Original Backups"

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr "Automatically request optimisation via cron job."

#: tpl/img_optm/summary.tpl.php:180
msgid "A backup of each image is saved before it is optimized."
msgstr "A backup of each image is saved before it is optimised."

#: src/img-optm.cls.php:1619
msgid "Switched images successfully."
msgstr "Switched images successfully."

#: tpl/img_optm/settings.tpl.php:82
msgid "This can improve quality but may result in larger images than lossy compression will."
msgstr "This can improve quality but may result in larger images than lossy compression will."

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr "Optimise images using lossless compression."

#: src/lang.cls.php:170
msgid "Optimize Losslessly"
msgstr "Optimise Losslessly"

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr "Request WebP versions of original images when doing optimisation."

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr "Optimise images and save backups of the originals in the same folder."

#: src/lang.cls.php:167
msgid "Optimize Original Images"
msgstr "Optimise Original Images"

#: tpl/page_optm/settings_css.tpl.php:167
msgid "This option only works if %1$s is %2$s."
msgstr "This option only works if %1$s is %2$s."

#: tpl/page_optm/settings_css.tpl.php:166
msgid "Leave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated."
msgstr "Leave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated."

#: src/lang.cls.php:118
msgid "Generate Critical CSS"
msgstr "Generate Critical CSS"

#: tpl/page_optm/settings_css.tpl.php:149
msgid "When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr "When this option is turned %s, it will also load Google Fonts asynchronously."

#: src/purge.cls.php:229
msgid "Cleaned all Critical CSS files."
msgstr "Cleaned all Critical CSS files."

#: tpl/page_optm/settings_css.tpl.php:261
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr "This will inline the asynchronous CSS library to avoid render blocking."

#: src/lang.cls.php:122
msgid "Inline CSS Async Lib"
msgstr "Inline CSS Async Lib"

#: tpl/page_optm/settings_media.tpl.php:186
#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_css.tpl.php:216
msgid "Run Queue Manually"
msgstr "Run Queue Manually"

#: tpl/page_optm/settings_css.tpl.php:203
msgid "URL list in queue waiting for cron"
msgstr "URL list in queue waiting for cron"

#: tpl/page_optm/settings_css.tpl.php:93 tpl/page_optm/settings_css.tpl.php:192
msgid "Last requested cost"
msgstr "Last requested cost"

#: tpl/dash/dashboard.tpl.php:407 tpl/dash/dashboard.tpl.php:438
#: tpl/page_optm/settings_media.tpl.php:167
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:189
msgid "Last generated"
msgstr "Last generated"

#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:181
msgid "If set to %s this is done in the foreground, which may slow down page load."
msgstr "If set to %s this is done in the foreground, which may slow down page load."

#: tpl/page_optm/settings_css.tpl.php:180
msgid "Automatically generate critical CSS in the background via a cron-based queue."
msgstr "Automatically generate critical CSS in the background via a cron-based queue."

#: src/lang.cls.php:119
msgid "Generate Critical CSS In Background"
msgstr "Generate Critical CSS In Background"

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Optimize CSS delivery."
msgstr "Optimise CSS delivery."

#: tpl/toolbox/purge.tpl.php:73
msgid "This will delete all generated critical CSS files"
msgstr "This will delete all generated critical CSS files"

#: src/gui.cls.php:508 src/gui.cls.php:659 tpl/dash/dashboard.tpl.php:53
#: tpl/dash/dashboard.tpl.php:402 tpl/toolbox/purge.tpl.php:72
msgid "Critical CSS"
msgstr "Critical CSS"

#: src/doc.cls.php:24
msgid "This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."
msgstr "This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary."

#: tpl/toolbox/heartbeat.tpl.php:18
msgid "Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr "Disabling this may cause WordPress tasks triggered by Ajax to stop working."

#: src/utility.cls.php:250
msgid "right now"
msgstr "right now"

#: src/utility.cls.php:250
msgid "just now"
msgstr "just now"

#: tpl/img_optm/summary.tpl.php:245
msgid "Saved"
msgstr "Saved"

#: tpl/img_optm/summary.tpl.php:239
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr "Last ran"

#: tpl/img_optm/summary.tpl.php:231 tpl/img_optm/settings.tpl.php:67
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr "You will be unable to Revert Optimisation once the backups are deleted!"

#: tpl/img_optm/summary.tpl.php:230 tpl/img_optm/settings.tpl.php:66
msgid "This is irreversible."
msgstr "This is irreversible."

#: tpl/img_optm/summary.tpl.php:250
msgid "Remove Original Image Backups"
msgstr "Remove Original Image Backups"

#: tpl/img_optm/summary.tpl.php:249
msgid "Are you sure you want to remove all image backups?"
msgstr "Are you sure you want to remove all image backups?"

#: tpl/img_optm/summary.tpl.php:194 tpl/crawler/blacklist.tpl.php:25
msgid "Total"
msgstr "Total"

#: tpl/img_optm/summary.tpl.php:191 tpl/img_optm/summary.tpl.php:242
msgid "Files"
msgstr "Files"

#: tpl/img_optm/summary.tpl.php:187
msgid "Last calculated"
msgstr "Last calculated"

#: tpl/img_optm/summary.tpl.php:202
msgid "Calculate Original Image Storage"
msgstr "Calculate Original Image Storage"

#: tpl/img_optm/summary.tpl.php:176
msgid "Storage Optimization"
msgstr "Storage Optimisation"

#: tpl/img_optm/settings.tpl.php:155
msgid "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."
msgstr "Enable replacement of WebP in %s elements that were generated outside of WordPress logic."

#: src/lang.cls.php:173
msgid "WebP For Extra srcset"
msgstr "WebP For Extra srcset"

#: tpl/cdn/settings.tpl.php:122 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr "Use the format %1$s or %2$s (element is optional)."

#: tpl/cdn/settings.tpl.php:121 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr "Only attributes listed here will be replaced."

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr "Specify which element attributes will be replaced with WebP."

#: src/lang.cls.php:172
msgid "WebP Attribute To Replace"
msgstr "WebP Attribute To Replace"

#: tpl/cdn/settings.tpl.php:159
msgid "Only files within these directories will be pointed to the CDN."
msgstr "Only files within these directories will be pointed to the CDN."

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr "Included Directories"

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr "A Purge All will be executed when WordPress runs these hooks."

#: src/lang.cls.php:180
msgid "Purge All Hooks"
msgstr "Purge All Hooks"

#: src/purge.cls.php:193
msgid "Purged all caches successfully."
msgstr "Purged all caches successfully."

#: src/gui.cls.php:471 src/gui.cls.php:562 src/gui.cls.php:612
msgid "LSCache"
msgstr "LSCache"

#: src/gui.cls.php:415
msgid "Forced cacheable"
msgstr "Forced cacheable"

#: tpl/cache/settings-cache.tpl.php:122
msgid "Paths containing these strings will be cached regardless of no-cacheable settings."
msgstr "Paths containing these strings will be cached regardless of no-cacheable settings."

#: src/lang.cls.php:97
msgid "Force Cache URIs"
msgstr "Force Cache URIs"

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr "Exclude Settings"

#: tpl/toolbox/settings-debug.tpl.php:23
msgid "This will disable LSCache and all optimization features for debug purpose."
msgstr "This will disable LSCache and all optimisation features for debug purpose."

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr "Disable All Features"

#: src/gui.cls.php:498 src/gui.cls.php:649 tpl/toolbox/purge.tpl.php:63
msgid "Opcode Cache"
msgstr "Opcode Cache"

#: src/gui.cls.php:479 src/gui.cls.php:620 tpl/toolbox/purge.tpl.php:45
msgid "CSS/JS Cache"
msgstr "CSS/JS Cache"

#: src/gui.cls.php:708 tpl/img_optm/summary.tpl.php:169
msgid "Remove all previous unfinished image optimization requests."
msgstr "Remove all previous unfinished image optimisation requests."

#: src/gui.cls.php:709 tpl/img_optm/summary.tpl.php:171
msgid "Clean Up Unfinished Data"
msgstr "Clean Up Unfinished Data"

#: src/lang.cls.php:32
msgid "Images failed with other errors"
msgstr "Images failed with other errors"

#: src/lang.cls.php:35
msgid "Images with wrong meta"
msgstr "Images with wrong meta"

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr "Join Us on Slack"

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr "Join the %s community."

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr "Want to connect with other LiteSpeed users?"

#: tpl/cdn/settings.tpl.php:206
msgid "Get it from <a %1$s>%2$s</a>."
msgstr "Get it from <a %1$s>%2$s</a>."

#: tpl/cdn/settings.tpl.php:205
msgid "Your API key is used to access %s APIs."
msgstr "Your API key is used to access %s APIs."

#: tpl/cdn/settings.tpl.php:196
msgid "Your Email address on %s."
msgstr "Your Email address on %s."

#: tpl/cdn/settings.tpl.php:187
msgid "Use %s API functionality."
msgstr "Use %s API functionality."

#: tpl/cdn/settings.tpl.php:73
msgid "To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr "To randomise CDN hostname, define multiple hostnames for the same resources."

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr "Join LiteSpeed Slack community"

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr "Visit LSCWP support forum"

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr "Rate %s on %s"

#: src/lang.cls.php:26 tpl/dash/dashboard.tpl.php:312
msgid "Images notified to pull"
msgstr "Images notified to pull"

#: src/lang.cls.php:33
msgid "Image files missing"
msgstr "Image files missing"

#: tpl/img_optm/summary.tpl.php:274 tpl/img_optm/summary.tpl.php:301
msgid "What is a group?"
msgstr "What is a group?"

#: src/admin-display.cls.php:1133
msgid "%s image"
msgstr "%s image"

#: src/admin-display.cls.php:1130
msgid "%s group"
msgstr "%s group"

#: src/admin-display.cls.php:1120
msgid "%s images"
msgstr "%s images"

#: src/admin-display.cls.php:1117
msgid "%s groups"
msgstr "%s groups"

#: src/crawler.cls.php:767
msgid "Guest"
msgstr "Guest"

#: tpl/crawler/settings-simulation.tpl.php:23
msgid "To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr "To crawl the site as a logged-in user, enter the user ids to be simulated."

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr "Role Simulation"

#: tpl/crawler/summary.tpl.php:166
msgid "running"
msgstr "running"

#: tpl/db_optm/manage.tpl.php:175
msgid "Size"
msgstr "Size"

#: tpl/dash/dashboard.tpl.php:490 tpl/crawler/summary.tpl.php:99
msgid "Ended reason"
msgstr "Ended reason"

#: tpl/dash/dashboard.tpl.php:483 tpl/crawler/summary.tpl.php:92
msgid "Last interval"
msgstr "Last interval"

#: tpl/dash/dashboard.tpl.php:476 tpl/crawler/summary.tpl.php:85
msgid "Current crawler started at"
msgstr "Current crawler started at"

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr "Run time for previous crawler"

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr "%d seconds"

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr "Last complete run time for all crawlers"

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr "Current sitemap crawl started at"

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr "Save transients in database when %1$s is %2$s."

#: src/lang.cls.php:91
msgid "Store Transients"
msgstr "Store Transients"

#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr "If %1$s is %2$s, then %3$s must be populated!"

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr "Server allowed max value"

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr "Server enforced value"

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr "Server allowed min value"

#: tpl/cdn/settings.tpl.php:72 tpl/cache/settings-excludes.tpl.php:62
#: tpl/cache/settings-excludes.tpl.php:95
#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr "NOTE"

#: src/admin-display.cls.php:1086
msgid "Server variable(s) %s available to override this setting."
msgstr "Server variable(s) %s available to override this setting."

#: src/admin-display.cls.php:1085 tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:90
#: tpl/page_optm/settings_html.tpl.php:86
#: tpl/page_optm/settings_media_exc.tpl.php:25
#: tpl/page_optm/settings_css.tpl.php:151 tpl/cache/settings-esi.tpl.php:95
msgid "API"
msgstr "API"

#: src/purge.cls.php:329
msgid "Reset the entire opcode cache successfully."
msgstr "Reset the entire opcode cache successfully."

#: src/purge.cls.php:317
msgid "Opcode cache is not enabled."
msgstr "Opcode cache is not enabled."

#: src/import.cls.php:121
msgid "Imported setting file %s successfully."
msgstr "Imported setting file %s successfully."

#: src/import.cls.php:83
msgid "Import failed due to file error."
msgstr "Import failed due to file error."

#: tpl/page_optm/settings_js.tpl.php:35 tpl/page_optm/settings_css.tpl.php:42
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr "How to Fix Problems Caused by CSS/JS Optimisation."

#: tpl/cache/settings-advanced.tpl.php:50
msgid "This will generate extra requests to the server, which will increase server load."
msgstr "This will generate extra requests to the server, which will increase server load."

#: tpl/cache/settings-advanced.tpl.php:46
msgid "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."
msgstr "When a vistor hovers over a page link, preload that page. This will speed up the visit to that link."

#: src/lang.cls.php:182
msgid "Instant Click"
msgstr "Instant Click"

#: tpl/toolbox/purge.tpl.php:64
msgid "Reset the entire opcode cache"
msgstr "Reset the entire opcode cache"

#: tpl/toolbox/import_export.tpl.php:46
msgid "This will import settings from a file and override all current LiteSpeed Cache settings."
msgstr "This will import settings from a file and override all current LiteSpeed Cache settings."

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr "Last imported"

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr "Import"

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr "Import Settings"

#: tpl/toolbox/import_export.tpl.php:24
msgid "This will export all current LiteSpeed Cache settings and save them as a file."
msgstr "This will export all current LiteSpeed Cache settings and save them as a file."

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr "Last exported"

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr "Export"

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr "Export Settings"

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr "Import / Export"

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr "Use keep-alive connections to speed up cache operations."

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr "Database to be used"

#: src/lang.cls.php:86
msgid "Redis Database ID"
msgstr "Redis Database ID"

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr "Specify the password used when connecting."

#: src/lang.cls.php:85
msgid "Password"
msgstr "Password"

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr "Only available when %s is installed."

#: src/lang.cls.php:84
msgid "Username"
msgstr "Username"

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr "Your %s Hostname or IP address."

#: src/lang.cls.php:80
msgid "Method"
msgstr "Method"

#: src/purge.cls.php:370
msgid "Purge all object caches successfully."
msgstr "Purge all object caches successfully."

#: src/purge.cls.php:357
msgid "Object cache is not enabled."
msgstr "Object cache is not enabled."

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr "Improve wp-admin speed through caching. (May encounter expired data)"

#: src/lang.cls.php:90
msgid "Cache Wp-Admin"
msgstr "Cache Wp-Admin"

#: src/lang.cls.php:89
msgid "Persistent Connection"
msgstr "Persistent Connection"

#: src/lang.cls.php:88
msgid "Do Not Cache Groups"
msgstr "Do Not Cache Groups"

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr "Groups cached at the network level."

#: src/lang.cls.php:87
msgid "Global Groups"
msgstr "Global Groups"

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr "Connection Test"

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr "%s Extension"

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/summary.tpl.php:124
#: tpl/crawler/blacklist.tpl.php:32
msgid "Status"
msgstr "Status"

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr "Default TTL for cached objects."

#: src/lang.cls.php:83
msgid "Default Object Lifetime"
msgstr "Default Object Lifetime"

#: src/lang.cls.php:82
msgid "Port"
msgstr "Port"

#: src/lang.cls.php:81
msgid "Host"
msgstr "Host"

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use object cache functionality."
msgstr "Use object cache functionality."

#: src/lang.cls.php:79 src/gui.cls.php:488 src/gui.cls.php:639
#: tpl/dash/dashboard.tpl.php:361 tpl/toolbox/purge.tpl.php:54
msgid "Object Cache"
msgstr "Object Cache"

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr "Failed"

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr "Passed"

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr "Not Available"

#: tpl/toolbox/purge.tpl.php:55
msgid "Purge all the object caches"
msgstr "Purge all the object caches"

#: src/cdn/cloudflare.cls.php:259
msgid "Failed to communicate with Cloudflare"
msgstr "Failed to communicate with Cloudflare"

#: src/cdn/cloudflare.cls.php:250
msgid "Communicated with Cloudflare successfully."
msgstr "Communicated with Cloudflare successfully."

#: src/cdn/cloudflare.cls.php:164
msgid "No available Cloudflare zone"
msgstr "No available Cloudflare zone"

#: src/cdn/cloudflare.cls.php:150
msgid "Notified Cloudflare to purge all successfully."
msgstr "Notified Cloudflare to purge all successfully."

#: src/cdn/cloudflare.cls.php:134
msgid "Cloudflare API is set to off."
msgstr "Cloudflare API is set to off."

#: src/cdn/cloudflare.cls.php:117
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr "Notified Cloudflare to set development mode to %s successfully."

#: tpl/cdn/settings.tpl.php:220
msgid "Once saved, it will be matched with the current list and completed automatically."
msgstr "Once saved, it will be matched with the current list and completed automatically."

#: tpl/cdn/settings.tpl.php:219
msgid "You can just type part of the domain."
msgstr "You can just type part of the domain."

#: tpl/cdn/settings.tpl.php:211
msgid "Domain"
msgstr "Domain"

#: tpl/cdn/settings.tpl.php:201
msgid "Global API Key"
msgstr "Global API Key"

#: tpl/cdn/settings.tpl.php:188
msgid "This can be managed from <a %2$s>%1$s</a>."
msgstr "This can be managed from <a %2$s>%1$s</a>."

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr "Cloudflare API"

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr "Purge Everything"

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr "Cloudflare Cache"

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr "Development Mode will be turned off automatically after three hours."

#: tpl/cdn/manage.tpl.php:64
msgid "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."
msgstr "Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime."

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr "Development mode will be automatically turned off in %s."

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr "Current status is %s."

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr "Current status is %1$s since %2$s."

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr "Check Status"

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr "Turn OFF"

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr "Turn ON"

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr "Development Mode"

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr "Cloudflare Zone"

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr "Cloudflare Domain"

#: src/gui.cls.php:629 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr "Cloudflare"

#: tpl/page_optm/settings_html.tpl.php:50
msgid "For example"
msgstr "For example"

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Prefetching DNS can reduce latency for visitors."
msgstr "Prefetching DNS can reduce latency for visitors."

#: src/lang.cls.php:128
msgid "DNS Prefetch"
msgstr "DNS Prefetch"

#: tpl/page_optm/settings_media.tpl.php:29
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr "Adding Style to Your Lazy-Loaded Images"

#: tpl/cdn/settings.tpl.php:93
msgid "Default value"
msgstr "Default value"

#: tpl/cdn/settings.tpl.php:90
msgid "Static file type links to be replaced by CDN links."
msgstr "Static file type links to be replaced by CDN links."

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr "For example, to drop parameters beginning with %s, %s can be used here."

#: src/lang.cls.php:77
msgid "Drop Query String"
msgstr "Drop Query String"

#: tpl/cache/settings-advanced.tpl.php:32
msgid "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."
msgstr "Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities."

#: src/lang.cls.php:181
msgid "Improve HTTP/HTTPS Compatibility"
msgstr "Improve HTTP/HTTPS Compatibility"

#: tpl/img_optm/summary.tpl.php:372
msgid "Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files."
msgstr "Remove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files."

#: tpl/img_optm/summary.tpl.php:368
msgid "Destroy All Optimization Data"
msgstr "Destroy All Optimisation Data"

#: tpl/img_optm/summary.tpl.php:318
msgid "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests."
msgstr "Scan for any new unoptimized image thumbnail sizes and resend necessary image optimisation requests."

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr "This will increase the size of optimised files."

#: tpl/img_optm/settings.tpl.php:95
msgid "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr "Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising."

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr "Clear Log"

#: thirdparty/woocommerce.content.tpl.php:21
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr "To test the basket, visit the <a %s>FAQ</a>."

#: src/utility.cls.php:253
msgid " %s ago"
msgstr " %s ago"

#: src/media.cls.php:336
msgid "WebP saved %s"
msgstr "WebP saved %s"

#: tpl/toolbox/report.tpl.php:51
msgid "If you run into any issues, please refer to the report number in your support message."
msgstr "If you run into any issues, please refer to the report number in your support message."

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr "This will also generate an API key from LiteSpeed's Server."

#: tpl/img_optm/summary.tpl.php:127
msgid "Last pull initiated by cron at %s."
msgstr "Last pull initiated by cron at %s."

#: tpl/img_optm/summary.tpl.php:81
msgid "Images will be pulled automatically if the cron job is running."
msgstr "Images will be pulled automatically if the cron job is running."

#: tpl/img_optm/summary.tpl.php:81
msgid "Only press the button if the pull cron job is disabled."
msgstr "Only press the button if the pull cron job is disabled."

#: tpl/img_optm/summary.tpl.php:88
msgid "Pull Images"
msgstr "Pull Images"

#: tpl/img_optm/summary.tpl.php:112
msgid "This process is automatic."
msgstr "This process is automatic."

#: tpl/dash/dashboard.tpl.php:322 tpl/img_optm/summary.tpl.php:336
msgid "Last Request"
msgstr "Last Request"

#: src/lang.cls.php:28
msgid "Images failed to pull"
msgstr "Images failed to pull"

#: src/lang.cls.php:29 src/lang.cls.php:30
msgid "Images failed to fetch"
msgstr "Images failed to fetch"

#: tpl/img_optm/summary.tpl.php:333
msgid "Images Pulled"
msgstr "Images Pulled"

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr "Report"

#: tpl/toolbox/report.tpl.php:97
msgid "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."
msgstr "Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum."

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr "Send to LiteSpeed"

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr "Report date"

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr "Report number"

#: thirdparty/woocommerce.content.tpl.php:76
msgid "Privately cache cart when not empty."
msgstr "Privately cache basket when not empty."

#: thirdparty/woocommerce.content.tpl.php:71
msgid "Privately Cache Cart"
msgstr "Privately Cache Basket"

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr "LiteSpeed Optimisation"

#: tpl/page_optm/settings_html.tpl.php:102
msgid "This will also add a preconnect to Google for faster Google Fonts downloading."
msgstr "This will also add a preconnect to Google for faster Google Fonts downloading."

#: src/lang.cls.php:133
msgid "Load Google Fonts Asynchronously"
msgstr "Load Google Fonts Asynchronously"

#: src/lang.cls.php:65
msgid "Browser Cache TTL"
msgstr "Browser Cache TTL"

#: tpl/img_optm/summary.tpl.php:340
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr "Results can be checked in <a %s>Media Library</a>."

#: src/doc.cls.php:40 src/doc.cls.php:92 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:56
#: tpl/img_optm/summary.tpl.php:96 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr "Learn More"

#: src/lang.cls.php:27
msgid "Images optimized and pulled"
msgstr "Images optimised and pulled"

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:302
msgid "Images requested"
msgstr "Images requested"

#: tpl/img_optm/summary.tpl.php:308
msgid "Images not yet requested"
msgstr "Images not yet requested"

#: tpl/img_optm/summary.tpl.php:270 tpl/img_optm/summary.tpl.php:297
msgid "Images total"
msgstr "Images total"

#: src/img-optm.cls.php:1677
msgid "Switched to optimized file successfully."
msgstr "Switched to optimised file successfully."

#: src/img-optm.cls.php:1670
msgid "Restored original file successfully."
msgstr "Restored original file successfully."

#: src/img-optm.cls.php:1654
msgid "Enabled WebP file successfully."
msgstr "Enabled WebP file successfully."

#: src/img-optm.cls.php:1648
msgid "Disabled WebP file successfully."
msgstr "Disabled WebP file successfully."

#: tpl/img_optm/settings.tpl.php:36
msgid "Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server."
msgstr "Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server."

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid "Significantly improve load time by replacing images with their optimized %s versions."
msgstr "Significantly improve load time by replacing images with their optimised %s versions."

#: src/lang.cls.php:186
msgid "Image WebP Replacement"
msgstr "Image WebP Replacement"

#: tpl/cache/settings-excludes.tpl.php:124
msgid "Selected roles will be excluded from cache."
msgstr "Selected roles will be excluded from cache."

#: tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr "Tuning"

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "Selected roles will be excluded from all optimizations."
msgstr "Selected roles will be excluded from all optimisations."

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr "Role Excludes"

#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr "Tuning Settings"

#: tpl/cache/settings-excludes.tpl.php:97
msgid "If the tag slug is not found, the tag will be removed from the list on save."
msgstr "If the tag slug is not found, the tag will be removed from the list on save."

#: tpl/cache/settings-excludes.tpl.php:64
msgid "If the category name is not found, the category will be removed from the list on save."
msgstr "If the category name is not found, the category will be removed from the list on save."

#: tpl/img_optm/summary.tpl.php:111
msgid "After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images."
msgstr "After the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images."

#: tpl/img_optm/summary.tpl.php:78
msgid "Send Optimization Request"
msgstr "Send Optimisation Request"

#: tpl/img_optm/summary.tpl.php:261
msgid "Image Information"
msgstr "Image Information"

#: tpl/img_optm/summary.tpl.php:330
msgid "Total Reduction"
msgstr "Total Reduction"

#: tpl/img_optm/summary.tpl.php:327
msgid "Optimization Summary"
msgstr "Optimisation Summary"

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr "LiteSpeed Cache Image Optimisation"

#: src/admin-display.cls.php:129 src/gui.cls.php:595
#: tpl/dash/network_dash.tpl.php:27 tpl/dash/dashboard.tpl.php:52
msgid "Image Optimization"
msgstr "Image Optimisation"

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr "JS Deferred Excludes"

#: tpl/page_optm/settings_media.tpl.php:46
msgid "For example, %s can be used for a transparent placeholder."
msgstr "For example, %s can be used for a transparent placeholder."

#: tpl/page_optm/settings_media.tpl.php:45
msgid "By default a gray image placeholder %s will be used."
msgstr "By default a grey image placeholder %s will be used."

#: tpl/page_optm/settings_media.tpl.php:44
msgid "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."
msgstr "This can be predefined in %2$s as well using constant %1$s, with this setting taking priority."

#: tpl/page_optm/settings_media.tpl.php:43
msgid "Specify a base64 image to be used as a simple placeholder while images finish loading."
msgstr "Specify a base64 image to be used as a simple placeholder while images finish loading."

#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:92
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_css.tpl.php:152
msgid "Elements with attribute %s in html code will be excluded."
msgstr "Elements with attribute %s in HTML code will be excluded."

#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:91
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/cache/settings-esi.tpl.php:96
msgid "Filter %s is supported."
msgstr "Filter %s is supported."

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr "Listed images will not be lazy loaded."

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr "Lazy Load Image Excludes"

#: src/gui.cls.php:448
msgid "No optimization"
msgstr "No optimisation"

#: tpl/page_optm/settings_tuning.tpl.php:107
msgid "Prevent any optimization of listed pages."
msgstr "Prevent any optimisation of listed pages."

#: src/lang.cls.php:139
msgid "URI Excludes"
msgstr "URI Excludes"

#: tpl/page_optm/settings_html.tpl.php:129
msgid "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."
msgstr "Stop loading WordPress.org emoji. Browser default emoji will be displayed instead."

#: src/doc.cls.php:79
msgid "Both full URLs and partial strings can be used."
msgstr "Both full URLs and partial strings can be used."

#: tpl/page_optm/entry.tpl.php:35
msgid "Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."
msgstr "Failed to create Optimiser table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup."

#: tpl/page_optm/settings_media.tpl.php:202
msgid "Load iframes only when they enter the viewport."
msgstr "Load iframes only when they enter the viewport."

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr "Lazy Load Iframes"

#: tpl/page_optm/settings_media.tpl.php:26
#: tpl/page_optm/settings_media.tpl.php:203
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr "This can improve page loading time by reducing initial HTTP requests."

#: tpl/page_optm/settings_media.tpl.php:25
msgid "Load images only when they enter the viewport."
msgstr "Load images only when they enter the viewport."

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr "Lazy Load Images"

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:12
msgid "Media Settings"
msgstr "Media Settings"

#: tpl/cache/settings-excludes.tpl.php:37
msgid "For example, for %s, %s and %s can be used here."
msgstr "For example, for %s, %s and %s can be used here."

#: tpl/cdn/settings.tpl.php:137 tpl/cache/settings-purge.tpl.php:110
#: tpl/cache/settings-esi.tpl.php:107
msgid "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."
msgstr "Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s."

#: src/admin-display.cls.php:1101
msgid "To match the beginning, add %s to the beginning of the item."
msgstr "To match the beginning, add %s to the beginning of the item."

#: src/admin-display.cls.php:1099
msgid "For example, for %s, %s can be used here."
msgstr "For example, for %s, %s can be used here."

#: tpl/db_optm/manage.tpl.php:48
msgid "Purge all and clean all minified/combined CSS/JS data"
msgstr "Purge all and clean all minified/combined CSS/JS data"

#: tpl/db_optm/manage.tpl.php:47
msgid "Clean CSS/JS Optimizer"
msgstr "Clean CSS/JS Optimiser"

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr "Maybe later"

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr "I've already left a review"

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr "Welcome to LiteSpeed"

#: src/db-optm.cls.php:204
msgid "Clean all CSS/JS optimizer data successfully."
msgstr "Clean all CSS/JS optimiser data successfully."

#: src/lang.cls.php:137
msgid "Remove WordPress Emoji"
msgstr "Remove WordPress Emoji"

#: src/gui.cls.php:456
msgid "More settings"
msgstr "More settings"

#: src/gui.cls.php:437
msgid "Private cache"
msgstr "Private cache"

#: src/gui.cls.php:426
msgid "Non cacheable"
msgstr "Non cacheable"

#: src/gui.cls.php:403
msgid "Mark this page as "
msgstr "Mark this page as "

#: src/gui.cls.php:395
msgid "Purge this page"
msgstr "Purge this page"

#: tpl/page_optm/settings_js.tpl.php:74
msgid "Doing so can help reduce resource contention and improve performance."
msgstr "Doing so can help reduce resource contention and improve performance."

#: src/lang.cls.php:124
msgid "Load JS Deferred"
msgstr "Load JS Deferred"

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr "Specify critical CSS rules for above-the-fold content when enabling %s."

#: src/lang.cls.php:135
msgid "Critical CSS Rules"
msgstr "Critical CSS Rules"

#: src/lang.cls.php:117 tpl/page_optm/settings_tuning.tpl.php:73
#: tpl/page_optm/settings_css.tpl.php:167
msgid "Load CSS Asynchronously"
msgstr "Load CSS Asynchronously"

#: tpl/page_optm/settings_html.tpl.php:116
msgid "Prevent Google Fonts from loading on all pages."
msgstr "Prevent Google Fonts from loading on all pages."

#: src/lang.cls.php:134
msgid "Remove Google Fonts"
msgstr "Remove Google Fonts"

#: tpl/page_optm/settings_html.tpl.php:130 tpl/page_optm/settings_js.tpl.php:75
#: tpl/page_optm/settings_media.tpl.php:217
#: tpl/page_optm/settings_css.tpl.php:148
msgid "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."
msgstr "This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed."

#: tpl/page_optm/settings_html.tpl.php:80
msgid "Remove query strings from static resources."
msgstr "Remove query strings from static resources."

#: src/lang.cls.php:132
msgid "Remove Query Strings"
msgstr "Remove Query Strings"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr "user agents"

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr "cookies"

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."
msgstr "You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>."

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."
msgstr "Browser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files."

#: src/lang.cls.php:58 tpl/dash/dashboard.tpl.php:362
msgid "Browser Cache"
msgstr "Browser Cache"

#: tpl/cache/settings-excludes.tpl.php:91
msgid "tags"
msgstr "tags"

#: src/lang.cls.php:102
msgid "Do Not Cache Tags"
msgstr "Do Not Cache Tags"

#: tpl/cache/settings-excludes.tpl.php:98
msgid "To exclude %1$s, insert %2$s."
msgstr "To exclude %1$s, insert %2$s."

#: tpl/cache/settings-excludes.tpl.php:58
msgid "categories"
msgstr "categories"

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings-excludes.tpl.php:58
#: tpl/cache/settings-excludes.tpl.php:91
msgid "To prevent %s from being cached, enter them here."
msgstr "To prevent %s from being cached, enter them here."

#: src/lang.cls.php:101
msgid "Do Not Cache Categories"
msgstr "Do Not Cache Categories"

#: tpl/cache/settings-excludes.tpl.php:36
msgid "Query strings containing these parameters will not be cached."
msgstr "Query strings containing these parameters will not be cached."

#: src/lang.cls.php:100
msgid "Do Not Cache Query Strings"
msgstr "Do Not Cache Query Strings"

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr "Paths containing these strings will not be cached."

#: src/lang.cls.php:99
msgid "Do Not Cache URIs"
msgstr "Do Not Cache URIs"

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr "The logs will be output to %s."

#: src/admin-display.cls.php:1103 src/doc.cls.php:61
msgid "One per line."
msgstr "One per line."

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr "URI Paths containing these strings will NOT be cached as public."

#: src/lang.cls.php:76
msgid "Private Cached URIs"
msgstr "Private Cached URIs"

#: tpl/cdn/settings.tpl.php:173
msgid "Paths containing these strings will not be served from the CDN."
msgstr "Paths containing these strings will not be served from the CDN."

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr "Exclude Path"

#: tpl/cdn/settings.tpl.php:92
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr "This will affect all tags containing attributes: %s %s %s."

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:96
msgid "Include File Types"
msgstr "Include File Types"

#: tpl/cdn/settings.tpl.php:86
msgid "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."
msgstr "Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files."

#: src/lang.cls.php:202
msgid "Include JS"
msgstr "Include JS"

#: tpl/cdn/settings.tpl.php:82
msgid "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."
msgstr "Serve all CSS files through the CDN. This will affect all enqueued WP CSS files."

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr "Include CSS"

#: tpl/cdn/settings.tpl.php:78
msgid "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."
msgstr "Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes."

#: src/lang.cls.php:200
msgid "Include Images"
msgstr "Include Images"

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr "CDN URL to be used. For example, %s"

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr "CDN URL"

#: tpl/cdn/settings.tpl.php:136
msgid "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."
msgstr "Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s."

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr "Original URLs"

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr "CDN Settings"

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:188
msgid "CDN"
msgstr "CDN"

#: src/admin-display.cls.php:239 src/admin-display.cls.php:800
#: src/admin-display.cls.php:833 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:159
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:181
#: tpl/cache/settings_inc.object.tpl.php:210
#: tpl/cache/settings-cache.tpl.php:19 tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr "OFF"

#: src/admin-display.cls.php:238 src/admin-display.cls.php:799
#: src/admin-display.cls.php:834 src/admin-display.cls.php:885
#: tpl/cdn/settings.tpl.php:48 tpl/page_optm/settings_media.tpl.php:156
#: tpl/page_optm/settings_css.tpl.php:149
#: tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:167 tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr "ON"

#: src/purge.cls.php:301
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr "Notified LiteSpeed Web Server to purge CSS/JS entries."

#: tpl/page_optm/settings_html.tpl.php:36
msgid "Minify HTML content."
msgstr "Minify HTML content."

#: src/lang.cls.php:116
msgid "HTML Minify"
msgstr "HTML Minify"

#: src/lang.cls.php:115
msgid "CSS/JS Cache TTL"
msgstr "CSS/JS Cache TTL"

#: src/lang.cls.php:131
msgid "JS Excludes"
msgstr "JS Excludes"

#: tpl/page_optm/settings_js.tpl.php:61
msgid "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)"

#: src/lang.cls.php:114
msgid "JS HTTP/2 Push"
msgstr "JS HTTP/2 Push"

#: src/lang.cls.php:112 src/data.upgrade.func.php:42
msgid "JS Combine"
msgstr "JS Combine"

#: src/lang.cls.php:111
msgid "JS Minify"
msgstr "JS Minify"

#: src/lang.cls.php:130
msgid "CSS Excludes"
msgstr "CSS Excludes"

#: tpl/page_optm/settings_css.tpl.php:128
msgid "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"
msgstr "Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)"

#: src/lang.cls.php:110
msgid "CSS HTTP/2 Push"
msgstr "CSS HTTP/2 Push"

#: src/lang.cls.php:105
msgid "CSS Combine"
msgstr "CSS Combine"

#: src/lang.cls.php:104
msgid "CSS Minify"
msgstr "CSS Minify"

#: tpl/page_optm/entry.tpl.php:52
msgid "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."
msgstr "Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action."

#: tpl/toolbox/purge.tpl.php:46
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr "This will purge all minified/combined CSS/JS entries only"

#: tpl/page_optm/settings_html.tpl.php:7
msgid "Optimization Settings"
msgstr "Optimisation Settings"

#: tpl/toolbox/purge.tpl.php:34
msgid "Purge error pages, including 500 pages"
msgstr "Purge error pages, including 500 pages"

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge 500 Error"
msgstr "Purge 500 Error"

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge error pages, including %s pages"
msgstr "Purge error pages, including %s pages"

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr "Purge %s Error"

#: tpl/db_optm/manage.tpl.php:78
msgid "Database Optimizer"
msgstr "Database Optimiser"

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr "Optimise all tables in your database"

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr "Optimise Tables"

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr "Clean all transient options"

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr "All Transients"

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr "Clean expired transient options"

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr "Expired Transients"

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr "Clean all trackbacks and pingbacks"

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr "Trackbacks/Pingbacks"

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr "Clean all binned comments"

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr "Binned comments"

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr "Clean all spam comments"

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr "Spam Comments"

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr "Clean all binned posts and pages"

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr "Binned Posts"

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr "Clean all auto saved drafts"

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr "Auto Drafts"

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr "Clean all post revisions"

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr "Post Revisions"

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr "Clean All"

#: src/db-optm.cls.php:197
msgid "Optimized all tables."
msgstr "Optimised all tables."

#: src/db-optm.cls.php:187
msgid "Clean all transients successfully."
msgstr "Clean all transients successfully."

#: src/db-optm.cls.php:183
msgid "Clean expired transients successfully."
msgstr "Clean expired transients successfully."

#: src/db-optm.cls.php:179
msgid "Clean trackbacks and pingbacks successfully."
msgstr "Clean trackbacks and pingbacks successfully."

#: src/db-optm.cls.php:175
msgid "Clean trashed comments successfully."
msgstr "Clean binned comments successfully."

#: src/db-optm.cls.php:171
msgid "Clean spam comments successfully."
msgstr "Clean spam comments successfully."

#: src/db-optm.cls.php:167
msgid "Clean trashed posts and pages successfully."
msgstr "Clean binned posts and pages successfully."

#: src/db-optm.cls.php:163
msgid "Clean auto drafts successfully."
msgstr "Clean auto drafts successfully."

#: src/db-optm.cls.php:159
msgid "Clean post revisions successfully."
msgstr "Clean post revisions successfully."

#: src/db-optm.cls.php:132
msgid "Clean all successfully."
msgstr "Clean all successfully."

#: src/lang.cls.php:60
msgid "Default Private Cache TTL"
msgstr "Default Private Cache TTL"

#: tpl/cache/settings-esi.tpl.php:135
msgid "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."
msgstr "If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page."

#: src/lang.cls.php:179
msgid "Vary Group"
msgstr "Vary Group"

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr "Cache the built-in Comment Form ESI block."

#: src/lang.cls.php:177
msgid "Cache Comment Form"
msgstr "Cache Comment Form"

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr " Cache the built-in Admin Bar ESI block."

#: src/lang.cls.php:176
msgid "Cache Admin Bar"
msgstr "Cache Admin Bar"

#: tpl/cache/settings-esi.tpl.php:49
msgid "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."
msgstr "Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below."

#: tpl/cache/settings-esi.tpl.php:13
msgid "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."
msgstr "ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all."

#: tpl/cache/settings-esi.tpl.php:12
msgid "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."
msgstr "With ESI (Edge Side Includes), pages may be served from cache for logged-in users."

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr "Private"

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr "Public"

#: tpl/cache/settings-purge.tpl.php:7
#: tpl/cache/network_settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr "Purge Settings"

#: src/lang.cls.php:73
msgid "Cache PHP Resources"
msgstr "Cache PHP Resources"

#: src/lang.cls.php:74 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "Cache Mobile"
msgstr "Cache Mobile"

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr "Advanced level will log more details."

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr "Basic"

#: tpl/crawler/settings-general.tpl.php:135
msgid "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."
msgstr "The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated."

#: src/lang.cls.php:71
msgid "Cache Login Page"
msgstr "Cache Login Page"

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr "Cache requests made by WordPress REST API calls."

#: src/lang.cls.php:70
msgid "Cache REST API"
msgstr "Cache REST API"

#: tpl/cache/settings-cache.tpl.php:61
msgid "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr "Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)"

#: src/lang.cls.php:69
msgid "Cache Commenters"
msgstr "Cache Commenters"

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr "Privately cache frontend pages for logged-in users. (LSWS %s required)"

#: src/lang.cls.php:68
msgid "Cache Logged-in Users"
msgstr "Cache Logged-in Users"

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr "Cache Control Settings"

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr "ESI"

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr "Excludes"

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:135
msgid "Purge"
msgstr "Purge"

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr "Cache"

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr "WooCommerce"

#: tpl/inc/show_rule_conflict.php:6
msgid "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"
msgstr "Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)"

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr "Current server time is %s."

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr "Specify the time to purge the \"%s\" list."

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr "Both %1$s and %2$s are acceptable."

#: src/lang.cls.php:96 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr "Scheduled Purge Time"

#: tpl/cache/settings-purge.tpl.php:105
msgid "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."
msgstr "The URLs here (one per line) will be purged automatically at the time set in the option \"%s\"."

#: src/lang.cls.php:95 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr "Scheduled Purge URLs"

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr "Shorten query strings in the debug log to improve readability."

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr "Log requested cookie values."

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr "Heartbeat"

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr "MB"

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr "Log File Size Limit"

#: src/htaccess.cls.php:843
msgid "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"
msgstr "<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s"

#: src/error.cls.php:92 src/error.cls.php:116
msgid "%s file not writable."
msgstr "%s file not writable."

#: src/error.cls.php:112
msgid "%s file not readable."
msgstr "%s file not readable."

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr "Collapse Query Strings"

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr "Log Cookies"

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr "ESI Settings"

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr "A TTL of 0 indicates do not cache."

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr "Recommended value: 28800 seconds (8 hours)."

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr "Widget Cache TTL:"

#: src/lang.cls.php:175 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr "Enable ESI"

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."
msgstr "The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here."

#: tpl/crawler/summary.tpl.php:50
msgid "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr "See <a %s>Introduction for Enabling the Crawler</a> for detailed information."

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr "Custom Sitemap"

#: tpl/toolbox/purge.tpl.php:237
msgid "Purge pages by relative or full URL."
msgstr "Purge pages by relative or full URL."

#: tpl/crawler/summary.tpl.php:49
msgid "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."
msgstr "The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider."

#: tpl/cdn/manage.tpl.php:21 tpl/page_optm/entry.tpl.php:34
#: tpl/page_optm/settings_localization.tpl.php:11
#: tpl/page_optm/settings_css.tpl.php:143 tpl/cache/settings-esi.tpl.php:35
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:19
msgid "WARNING"
msgstr "WARNING"

#: tpl/dash/dashboard.tpl.php:497 tpl/crawler/summary.tpl.php:106
msgid "<b>Last crawled:</b> %s item(s)"
msgstr "<b>Last crawled:</b> %s item(s)"

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr "The next complete sitemap crawl will start at"

#: src/file.cls.php:176
msgid "Failed to write to %s."
msgstr "Failed to write to %s."

#: src/file.cls.php:157
msgid "Folder is not writable: %s."
msgstr "Folder is not writable: %s."

#: src/file.cls.php:149
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr "Can not create folder: %1$s. Error: %2$s"

#: src/file.cls.php:140
msgid "Folder does not exist: %s"
msgstr "Folder does not exist: %s"

#: src/core.cls.php:262
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr "Notified LiteSpeed Web Server to purge the list."

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr "Please visit the <a %s>Information</a> page on how to test the cache."

#: tpl/toolbox/settings-debug.tpl.php:52
msgid "Allows listed IPs (one per line) to perform certain actions from their browsers."
msgstr "Allows listed IPs (one per line) to perform certain actions from their browsers."

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr "Server Load Limit"

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr "Specify Number of Threads to use while crawling."

#: tpl/crawler/settings-general.tpl.php:91
msgid "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."
msgstr "Specify how long in seconds before the crawler should initiate crawling the entire sitemap again."

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr "Crawl Interval"

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr "Interval Between Runs"

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr "Specify time in seconds for the duration of the crawl interval."

#: tpl/crawler/settings-general.tpl.php:35
msgid "Specify time in microseconds for the delay between requests during a crawl."
msgstr "Specify time in microseconds for the delay between requests during a crawl."

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr "microseconds"

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr "Then another WordPress is installed (NOT MULTISITE) at %s"

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr "LiteSpeed Cache Network Cache Settings"

#: tpl/toolbox/purge.tpl.php:172
msgid "Select below for \"Purge by\" options."
msgstr "Select below for \"Purge by\" options."

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr "LiteSpeed Cache CDN"

#: tpl/crawler/summary.tpl.php:217
msgid "No crawler meta file generated yet"
msgstr "No crawler meta file generated yet"

#: tpl/crawler/summary.tpl.php:199
msgid "Show crawler status"
msgstr "Show crawler status"

#: tpl/crawler/summary.tpl.php:192
msgid "Watch Crawler Status"
msgstr "Watch Crawler Status"

#: tpl/crawler/summary.tpl.php:187
msgid "Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task."
msgstr "Please see <a %s>Hooking WP-Cron into the System Task Scheduler</a> to learn how to create the system cron task."

#: tpl/crawler/summary.tpl.php:184
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr "Run frequency is set by the Interval Between Runs setting."

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr "Manually run"

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr "Reset position"

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr "Run Frequency"

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr "Cron Name"

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr "Crawler Cron"

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr "%d minute"

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr "%d minutes"

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr "%d hour"

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr "%d hours"

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr "Generated at %s"

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr "LiteSpeed Cache Crawler"

#: src/lang.cls.php:215
msgid "Threads"
msgstr "Threads"

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr "Run Duration"

#: src/lang.cls.php:211
msgid "Delay"
msgstr "Delay"

#: tpl/inc/show_display_installed.php:16
msgid "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."
msgstr "If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>."

#: src/admin-display.cls.php:135 src/lang.cls.php:210
msgid "Crawler"
msgstr "Crawler"

#. Plugin URI of the plugin
msgid "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr "https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"

#: src/purge.cls.php:536
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr "Notified LiteSpeed Web Server to purge all pages."

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr "All pages with Recent Posts Widget"

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr "Pages"

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr "This will Purge Pages only"

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr "Purge Pages"

#: thirdparty/woocommerce.content.tpl.php:63
msgid "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."
msgstr "For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s."

#: tpl/cdn/settings.tpl.php:192
msgid "Email Address"
msgstr "Email Address"

#: tpl/general/settings.tpl.php:101
msgid "Warning"
msgstr "Warning"

#: src/gui.cls.php:728
msgid "Install Now"
msgstr "Install Now"

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr "Purged the URL!"

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr "Purged the blog!"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr "Purged All!"

#: src/purge.cls.php:555
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr "Notified LiteSpeed Web Server to purge error pages."

#: tpl/inc/show_error_cookie.php:11
msgid "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."
msgstr "If using OpenLiteSpeed, the server must be restarted once for the changes to take effect."

#: tpl/inc/show_error_cookie.php:7
msgid "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr "If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."

#: tpl/inc/show_error_cookie.php:6
msgid "If the login cookie was recently changed in the settings, please log out and back in."
msgstr "If the login cookie was recently changed in the settings, please log out and back in."

#: tpl/inc/show_display_installed.php:8
msgid "However, there is no way of knowing all the possible customizations that were implemented."
msgstr "However, there is no way of knowing all the possible customisations that were implemented."

#: tpl/inc/show_display_installed.php:7
msgid "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."
msgstr "The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site."

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr "The network admin setting can be overridden here."

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr "Specify how long, in seconds, public pages are cached."

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr "Specify how long, in seconds, private pages are cached."

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Please consult the host/server admin before making any changes."
msgstr "Please consult the host/server admin before making any changes."

#: tpl/cache/network_settings-cache.tpl.php:18
msgid "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."
msgstr "It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first."

#: tpl/toolbox/purge.tpl.php:228
msgid "Purge pages by post ID."
msgstr "Purge pages by post ID."

#: tpl/toolbox/purge.tpl.php:40
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr "Purge the LiteSpeed cache entries created by this plugin"

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr "This will Purge Front Page only"

#: tpl/toolbox/purge.tpl.php:232
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:238
msgid "e.g. Use %s or %s."
msgstr "e.g. Use %s or %s."

#: tpl/toolbox/purge.tpl.php:223
msgid "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr "Purge pages by category name - e.g. %2$s should be used for the URL %1$s."

#: tpl/toolbox/purge.tpl.php:126
msgid "If only the WordPress site should be purged, use Purge All."
msgstr "If only the WordPress site should be purged, use Purge All."

#: src/core.cls.php:257
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr "Notified LiteSpeed Web Server to purge everything."

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr "Use Primary Site Configuration"

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr "This will disable the settings page on all subsites."

#: tpl/general/network_settings.tpl.php:24
msgid "Check this option to use the primary site's configuration for all subsites."
msgstr "Check this option to use the primary site's configuration for all subsites."

#: src/admin-display.cls.php:674
msgid "Save Changes"
msgstr "Save Changes"

#: tpl/inc/check_if_network_disable_all.php:22
msgid "The following options are selected, but are not editable in this settings page."
msgstr "The following options are selected, but are not editable in this settings page."

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The network admin selected use primary site configs for all subsites."
msgstr "The network admin selected use primary site configs for all subsites."

#: tpl/toolbox/purge.tpl.php:118
msgid "Empty Entire Cache"
msgstr "Empty Entire Cache"

#: tpl/toolbox/purge.tpl.php:120
msgid "This action should only be used if things are cached incorrectly."
msgstr "This action should only be used if things are cached incorrectly."

#: tpl/toolbox/purge.tpl.php:119
msgid "Clears all cache entries related to this site, <i>including other web applications</i>."
msgstr "Clears all cache entries related to this site, <i>including other web applications</i>."

#: tpl/toolbox/purge.tpl.php:125
msgid "This may cause heavy load on the server."
msgstr "This may cause heavy load on the server."

#: tpl/toolbox/purge.tpl.php:124
msgid "This will clear EVERYTHING inside the cache."
msgstr "This will clear EVERYTHING inside the cache."

#: src/gui.cls.php:562
msgid "LiteSpeed Cache Purge All"
msgstr "LiteSpeed Cache Purge All"

#: tpl/inc/show_display_installed.php:19
msgid "If you would rather not move at litespeed, you can deactivate this plugin."
msgstr "If you would rather not move at litespeed, you can deactivate this plugin."

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr "Create a post, make sure the front page is accurate."

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr "Visit the site while logged out."

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr "Examples of test cases include:"

#: tpl/inc/show_display_installed.php:9
msgid "For that reason, please test the site to make sure everything still functions properly."
msgstr "For that reason, please test the site to make sure everything still functions properly."

#: tpl/inc/show_display_installed.php:6
msgid "This message indicates that the plugin was installed by the server admin."
msgstr "This message indicates that the plugin was installed by the server admin."

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr "LiteSpeed Cache plugin is installed!"

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr "Debug Log"

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr "Admin IP Only"

#: tpl/toolbox/settings-debug.tpl.php:38
msgid "The Admin IP option will only output log messages on requests from admin IPs."
msgstr "The Admin IP option will only output log messages on requests from admin IPs."

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr "Specify how long, in seconds, REST calls are cached."

#: tpl/toolbox/report.tpl.php:49
msgid "The environment report contains detailed information about the WordPress configuration."
msgstr "The environment report contains detailed information about the WordPress configuration."

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid "The server will determine if the user is logged in based on the existance of this cookie."
msgstr "The server will determine if the user is logged in based on the existance of this cookie."

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
msgid "Note"
msgstr "Note"

#: thirdparty/woocommerce.content.tpl.php:20
msgid "After verifying that the cache works in general, please test the cart."
msgstr "After verifying that the cache works in general, please test the basket."

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."
msgstr "When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded."

#: src/lang.cls.php:93
msgid "Purge All On Upgrade"
msgstr "Purge All On Upgrade"

#: tpl/toolbox/edit_htaccess.tpl.php:92
msgid "File editing is disabled in configuration."
msgstr "File editing is disabled in configuration."

#: thirdparty/woocommerce.content.tpl.php:57
msgid "Use Front Page TTL for the Shop Page"
msgstr "Use Front Page TTL for the Shop Page"

#: thirdparty/woocommerce.content.tpl.php:28
msgid "Product Update Interval"
msgstr "Product Update Interval"

#: thirdparty/woocommerce.content.tpl.php:62
msgid "Checking this option will force the shop page to use the front page TTL setting."
msgstr "Checking this option will force the shop page to use the front page TTL setting."

#: thirdparty/woocommerce.content.tpl.php:49
msgid "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."
msgstr "Determines how changes in product quantity and product stock status affect product pages and their associated category pages."

#: thirdparty/woocommerce.content.tpl.php:36
msgid "Always purge both product and categories on changes to the quantity or stock status."
msgstr "Always purge both product and categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr "Do not purge categories on changes to the quantity or stock status."

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Purge product only when the stock status changes."
msgstr "Purge product only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:34
msgid "Purge product and categories only when the stock status changes."
msgstr "Purge product and categories only when the stock status changes."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge categories only when stock status changes."
msgstr "Purge categories only when stock status changes."

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge product on changes to the quantity or stock status."
msgstr "Purge product on changes to the quantity or stock status."

#: tpl/cache/settings_inc.cache_mobile.tpl.php:42
msgid "Htaccess did not match configuration option."
msgstr ".htaccess did not match configuration option."

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr "If this is set to a number less than 30, feeds will not be cached."

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr "Specify how long, in seconds, feeds are cached."

#: src/lang.cls.php:62
msgid "Default Feed TTL"
msgstr "Default Feed TTL"

#: src/error.cls.php:120
msgid "Failed to get %s file contents."
msgstr "Failed to get %s file contents."

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid "Caching these pages may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching these pages may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr "Some themes and plugins add resources via a PHP request."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid "Caching this resource may improve server performance by avoiding unnecessary PHP calls."
msgstr "Caching this resource may improve server performance by avoiding unnecessary PHP calls."

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr "favicon.ico is requested on most pages."

#: src/lang.cls.php:72
msgid "Cache favicon.ico"
msgstr "Cache favicon.ico"

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr "Disabling this option may negatively affect performance."

#: src/htaccess.cls.php:910
msgid "File Saved."
msgstr "File Saved."

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr "Invalid login cookie. Invalid characters found."

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid "WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr "WARNING: The .htaccess login cookie and Database login cookie do not match."

#: src/error.cls.php:104
msgid "Invalid login cookie. Please check the %s file."
msgstr "Invalid login cookie. Please check the %s file."

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."
msgstr "The cache needs to distinguish who is logged into which WordPress site in order to cache correctly."

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr "There is a WordPress installed for %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr "Example use case:"

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr "The cookie set here will be used for this WordPress installation."

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."
msgstr "If every web application uses the same cookie, the server may confuse whether a user is logged in or not."

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid "This setting is useful for those that have multiple web applications for the same domain."
msgstr "This setting is useful for those that have multiple web applications for the same domain."

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr "The default login cookie is %s."

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr "No spaces and case sensitive."

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr "SYNTAX: alphanumeric and \"_\"."

#: src/lang.cls.php:185
msgid "Login Cookie"
msgstr "Login Cookie"

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr "More information about the available commands can be found here."

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr "These settings are meant for ADVANCED USERS ONLY."

#: tpl/toolbox/edit_htaccess.tpl.php:98
msgid "Current %s Contents"
msgstr "Current %s Contents"

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr "Advanced"

#: tpl/cache/settings-advanced.tpl.php:7
#: tpl/cache/network_settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr "Advanced Settings"

#: tpl/toolbox/purge.tpl.php:251
msgid "Purge List"
msgstr "Purge List"

#: tpl/toolbox/purge.tpl.php:170
msgid "Purge By..."
msgstr "Purge By..."

#: tpl/crawler/map.tpl.php:43 tpl/crawler/blacklist.tpl.php:31
#: tpl/toolbox/purge.tpl.php:217
msgid "URL"
msgstr "URL"

#: tpl/toolbox/purge.tpl.php:211
msgid "Tag"
msgstr "Tag"

#: tpl/toolbox/purge.tpl.php:205
msgid "Post ID"
msgstr "Post ID"

#: tpl/toolbox/purge.tpl.php:199
msgid "Category"
msgstr "Category"

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr "NOTICE: Database login cookie did not match your login cookie."

#: src/purge.cls.php:640
msgid "Purge url %s"
msgstr "Purge URL %s"

#: src/purge.cls.php:609
msgid "Purge tag %s"
msgstr "Purge tag %s"

#: src/purge.cls.php:582
msgid "Purge category %s"
msgstr "Purge category %s"

#: tpl/cache/settings-cache.tpl.php:27
msgid "When disabling the cache, all cached entries for this site will be purged."
msgstr "When disabling the cache, all cached entries for this site will be purged."

#: tpl/page_optm/entry.tpl.php:41 tpl/page_optm/entry.tpl.php:51
#: tpl/cache/settings-cache.tpl.php:27
msgid "NOTICE"
msgstr "NOTICE"

#: src/doc.cls.php:91
msgid "This setting will edit the .htaccess file."
msgstr "This setting will edit the .htaccess file."

#: tpl/toolbox/edit_htaccess.tpl.php:100
msgid "DO NOT EDIT ANYTHING WITHIN %s"
msgstr "DO NOT EDIT ANYTHING WITHIN %s"

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid "Any changes made to the .htaccess file may break the site."
msgstr "Any changes made to the .htaccess file may break the site."

#: tpl/toolbox/edit_htaccess.tpl.php:39
msgid "LiteSpeed Cache Edit .htaccess"
msgstr "LiteSpeed Cache Edit .htaccess"

#: src/error.cls.php:108
msgid "Failed to back up %s file, aborted changes."
msgstr "Failed to back up %s file, aborted changes."

#: src/lang.cls.php:183
msgid "Do Not Cache Cookies"
msgstr "Do Not Cache Cookies"

#: src/lang.cls.php:184
msgid "Do Not Cache User Agents"
msgstr "Do Not Cache User Agents"

#: tpl/cache/network_settings-cache.tpl.php:19
msgid "This is to ensure compatibility prior to enabling the cache for all sites."
msgstr "This is to ensure compatibility prior to enabling the cache for all sites."

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr "Network Enable Cache"

#: thirdparty/woocommerce.content.tpl.php:19
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/report.tpl.php:29
#: tpl/toolbox/heartbeat.tpl.php:14
msgid "NOTICE:"
msgstr "NOTICE:"

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr "Other checkboxes will be ignored."

#: tpl/cache/settings-purge.tpl.php:52
msgid "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."
msgstr "Select \"All\" if there are dynamic widgets linked to posts on pages other than the front or home pages."

#: src/lang.cls.php:75 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "List of Mobile User Agents"
msgstr "List of Mobile User Agents"

#: src/file.cls.php:164 src/file.cls.php:169
msgid "File %s is not writable."
msgstr "File %s is not writable."

#: tpl/toolbox/entry.tpl.php:14
msgid "Edit .htaccess"
msgstr "Edit .htaccess"

#: tpl/page_optm/settings_js.tpl.php:7 tpl/page_optm/entry.tpl.php:7
msgid "JS Settings"
msgstr "JS Settings"

#: src/gui.cls.php:578 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:188
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr "Manage"

#: src/lang.cls.php:61
msgid "Default Front Page TTL"
msgstr "Default Front Page TTL"

#: src/purge.cls.php:523
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr "Notified LiteSpeed Web Server to purge the front page."

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr "Purge Front Page"

#: tpl/page_optm/settings_localization.tpl.php:124
#: tpl/toolbox/beta_test.tpl.php:27
msgid "Example"
msgstr "Example"

#: tpl/cache/settings-excludes.tpl.php:90
msgid "All tags are cached by default."
msgstr "All tags are cached by default."

#: tpl/cache/settings-excludes.tpl.php:57
msgid "All categories are cached by default."
msgstr "All categories are cached by default."

#: src/admin-display.cls.php:1102
msgid "To do an exact match, add %s to the end of the URL."
msgstr "To do an exact match, add %s to the end of the URL."

#: src/admin-display.cls.php:1098
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr "The URLs will be compared to the REQUEST_URI server variable."

#: tpl/cache/settings-purge.tpl.php:54
msgid "Select only the archive types that are currently used, the others can be left unchecked."
msgstr "Select only the archive types that are currently used, the others can be left unchecked."

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr "Notes"

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr "Use Network Admin Setting"

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr "Disable"

#: tpl/cache/network_settings-cache.tpl.php:17
msgid "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."
msgstr "Enabling LiteSpeed Cache for WordPress here enables the cache for the network."

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr "Disabled"

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr "Enabled"

#: src/lang.cls.php:103
msgid "Do Not Cache Roles"
msgstr "Do Not Cache Roles"

#. Author URI of the plugin
msgid "https://www.litespeedtech.com"
msgstr "https://www.litespeedtech.com"

#. Author of the plugin
msgid "LiteSpeed Technologies"
msgstr "LiteSpeed Technologies"

#. Plugin Name of the plugin
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr "LiteSpeed Cache"

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr "Outputs to WordPress debug log."

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr "Debug Level"

#: tpl/general/settings.tpl.php:83 tpl/general/settings.tpl.php:94
#: tpl/general/settings.tpl.php:106 tpl/general/settings.tpl.php:150
msgid "Notice"
msgstr "Notice"

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr "Term archive (include category, tag, and tax)"

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr "Daily archive"

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr "Monthly archive"

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr "Yearly archive"

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr "Post type archive"

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr "Author archive"

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr "Home page"

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr "Front page"

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr "All pages"

#: tpl/cache/settings-purge.tpl.php:72
msgid "Select which pages will be automatically purged when posts are published/updated."
msgstr "Select which pages will be automatically purged when posts are published/updated."

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr "Auto Purge Rules For Publish/Update"

#: src/lang.cls.php:59
msgid "Default Public Cache TTL"
msgstr "Default Public Cache TTL"

#: src/admin-display.cls.php:917 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/esi_widget_edit.php:70 tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89
msgid "seconds"
msgstr "seconds"

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr "Admin IPs"

#: src/admin-display.cls.php:123
msgid "General"
msgstr "General"

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr "LiteSpeed Cache Settings"

#: src/purge.cls.php:212
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr "Notified LiteSpeed Web Server to purge all LSCache entries."

#: src/gui.cls.php:463 src/gui.cls.php:471 src/gui.cls.php:479
#: src/gui.cls.php:488 src/gui.cls.php:498 src/gui.cls.php:508
#: src/gui.cls.php:518 src/gui.cls.php:528 src/gui.cls.php:538
#: src/gui.cls.php:604 src/gui.cls.php:612 src/gui.cls.php:620
#: src/gui.cls.php:629 src/gui.cls.php:639 src/gui.cls.php:649
#: src/gui.cls.php:659 src/gui.cls.php:669 src/gui.cls.php:679
#: src/gui.cls.php:689 tpl/toolbox/purge.tpl.php:39
#: tpl/toolbox/purge.tpl.php:45 tpl/toolbox/purge.tpl.php:54
#: tpl/toolbox/purge.tpl.php:63 tpl/toolbox/purge.tpl.php:72
#: tpl/toolbox/purge.tpl.php:81 tpl/toolbox/purge.tpl.php:90
#: tpl/toolbox/purge.tpl.php:99 tpl/toolbox/purge.tpl.php:108
msgid "Purge All"
msgstr "Purge All"

#: src/admin-display.cls.php:281 src/gui.cls.php:586
msgid "Settings"
msgstr "Settings"����%M�K�d�d(�d2eEeMe	Ve
`e
keve�e�e�e	�e�e	�er�eHf[fmcf�f�f
�f�f�f3ghDg�gN�g8h=Uh"�h7�h�hH�h;iKifi'wi
�i	�i�i�i%�i�i�i|jF�j�j%�j	k"k4kPTkT�kZ�k:Ul>�lu�lEm.Nm-}m/�mL�m2(nI[n�n�n�n#�n�noEoMaoP�o0p'1pYppp�p�p�p�pI�p+q	;q	EqOq [q"|q/�q*�q�q
rr'r�9r4�rf�r [s|s�s
�s�s�s#�s�s�s�st
t t-t:tKtQtattt�t	�t�t�t
�t�t�t�tuu!u0uBu0au*�uU�uWvkv �v �v(�v�v�vw'wK?wP�w	�w�w�wx-(xVxrx�x�x"�x�x"�xy!8yZyzy&�y"�yG�y!,z,Nz${z+�z�z�z{( {	I{S{Wp{�{�{�{1|%:|2`|�|
�|�|�|�|�|�|
}&!}.H}Nw}*�}.�} ~?~]_~�~�~!�~

-JYan���%�
�!��43�'h�6��ǀԀ	���$�;>�:z���Ё� ��"�@�V�/o�*��<ʂ7�?�N�g�t���
��	����Ƀ܃�
�!�(�	4�>�M�`�s�{���!��ń݄���!�A�
`�n�w�)}���+Ņ}�o�D��8ņ���;�W� `�K��8͇q�x���������Ո���'�C@�E��ʉ
щ܉��� �>�
B�M�<Z�������ы9�
 �.�A� Q�r�
�Y��q�V�^�N~�͍ڍ��t���������Ȏَ������+�%?�,e�s��v�#}���������5�*A�l�r�������Lڑ'�93�:m�0��)ْ��c��G�PL�W�����
�)�
:�E�]�x��� ��•ʕە#��1�
P�^�=z���8Ȗ��
.�<�W� j�0����˗ߗ#���6�B�	V�`�Br���	��Ø2ȘZ��,V�����-����i��I#�;m�Y��K�VO�U��L��lI�B��Y���S�V��`L�J��g��=`�@��=ߡ�3�E�X�t�����¢
֢�<��2�I�_�?���ԣ���9�U�f�?s���ʤѤ� �&� 9�DZ�������ʥ
٥�����6j�����˧�
����
#�1�
G�/R�/����pǨ<8�
u���������ɩ	ة��
��.5�d�
i�t�
��������h۪D�AL����)�	5�?�L�'\�
����
��
��"������$�+1�]�#o���*��׭�
��

���0���ǮP�H3�B|�7��@��&8�_�o�����%��۰ ��"�&>�!e�������$ұ���߲��
��5� M�n�}�/��.����|�������Ŵ������<�I�g�+j�������ȵյٵ
�����!�0�O�%V�|�$��
��Ķɶܶ@�
-�%;�a�f�m�>u���Ʒ ۷��*� >�2_�����"ȸ*�"�"9�\�s���<��,޹$�
0�*>�
i�
w�F��̺Ѻ׺
޺.�?�6[�;��1λ3�24�Bg�6��0�����#�0�F�Qc�D��
��-�$6�P[�?���7�;�H�%e�	��������̿����8�$H�Em�+��*�,
�7�M�Y�b�q�v�
~�
��$��!������*�9�K�[�a�h�q���R��c��2P�?��
������?�<F�5��S��p
��~�'��*�E�������d,�c��;��01�Mb���p��98�/r�&��&��)��7�4R�����
��������
���$��;�F���(�/�<�
N�\�q�}�A��������	����&�2�C�
T�_�k�5z�%����0��#�%5�&[�I����$��D	�@N�9��1����8�TA��������������+�
4�?�#N�=r���
������+	�5�G�[�n��������������%�:�{Q�;��	�"�+8�d�������
����A��S�	d�n��� �������������+1�&]�B��������Y�p�$��2������I�
M�[�k�
x���:���������'�.4�c�di�����M��fF�$��X��Q+�7}�+����g��c�u���Q����P�^\�m��	)�3�E�^�w�9��}��(E�n���>����U��:�NN�Y������
%�3�&P�w�#|���9��8��
 �0.�V_�_��C�GZ�a��6�8;�4t�/��7��6�7H�-��#��$��)��L!�*n�)��-��(��,�.G�Kv�?��?�HB�<��3����R�V�k���������2����(�54�j��������e��-�/4�Md�h���];�=��8��[�cl�C��j�z�A��h<�q����q���H;�W��O��>,�k���K�����E�1R�-��Y��$�)1�9[�O��&�)�96�Yp�$�X�1H�z�A��*�^��EW�U��(�S�p�J��(�I��'D�.l�&���2�2�7C�Y{�*�����:,�Ng�;��,�*�1J�;|�(��J�4,+a�N�Q�oMX�/GF9�1�� #E+�qJU^�3�N3�W�����*N<y1�V�L?*�]�		"	(	8	$D	i	~	
�	�	�	�	�	�	��	/|
(�
)�
�
����
�


#
@0
q
"u
�

�
�����:�+E$Uz���r�5M_�8�9Y$r�.�2�r�!��C�F
NYx � ��K�(0EY+o��)���ty� �
����dJ{j�M1e�g�R_Z�
.&N'u#��y�%J�p/(qX(�@�J4F.�Z�6PG�3�'#Ke)mZ��

 4'GoK����J�	A K S [ �` ,!+8!d"(l"2�"�"�"	�"
�"
�"�"##2#	;#E#	N#rX#�#�#m�#T$\$
i$t${$3�$h�$0%NP%8�%=�%"&79&q&Hu&�&�&�&'�&
"'	0':'C'%U'{'�'|�'F(U(%d(	�("�(�(P�(T()Z}):�)>*uR*�*.�*-+/.+L^+2�+I�+(,7,C,#R,v,�,E�,M�,P2-0�-'�-�-�-
.#.).A.IH.+�.	�.	�.�. �."�./"/*R/}/
�/�/�/��/4B0fw0 �0�01
11#1#+1O1[1{1�1
�1�1�1�1�1�1�1�12	2)2?2
P2[2h2|2�2�2�2�2�20�2*3U@3W�3�3 4 ,4(M4v44�4�4K�4P5	_5i5�5�5-�5�5�56&6">6a6"}6�6!�6�6�6&7"D7Gg7!�7,�7$�7+#8O8o8�8(�8	�8�8W�8K9a9t91�9%�92�9:
":-:<:Z:k:}:�:&�:.�:N�:*I;.t;�;�;]�;@<P<!b<�<�<
�<�<�<�<�<�<
=&=?=%N=
t=!=�=4�='�=6>J>W>	j>t>�>�>7�>6�>0?K?\? w?"�?�?�?/�?*@<E@7�@�@�@�@�@A
#A	1A;ADAWAhA�A�A�A	�A�A�A�A�A�AB!B@BXBrB�B�B�B
�B�B�B)�B"C+@C}lC�CD�C8@DyD�D;�D�D �DK�D8HEq�E�E�EF'F<FPFkF~F�F�FC�FE�FEG
LGWGpG�G�G�G
�G�G<�GI,I;ILI9aI
�I�I�I �I�I
�IYJq_J�J�JN�JHKUK�\K�K�KLL6LCLTL]LpLwL�L+�L%�L,�Ls
Mv�M#�MN<N\NoN�N�N�N*�N�N�NOO;OLUO�O9�O:�O0#P)TP�~PcQGQP�QWRpR�R
�R�R
�R�R�R�R
S S=SESVS#lS�S�S
�S�S=�S3T8CT|T�T
�T�T�T �T0U7UFUZU#mU�U�U�U�U	�U�UB�U0V	4V>V2CVZvV,�V�VW-.W�\Wi4XI�X;�XY$YK~YV�YU!ZLwZl�ZB1[Yt[��[Vp\`�\J(]gs]=�^@_=Z_�_�_�_�_�_
`&`=`
Q`_`<p`�`�`�`?�`:aOaga�a�a�a�a�a?�a.bEbLb\b lb&�b �bD�bc&c2cEc
Tc�_c�d6�de1eFefe
neye�e
�e�e
�e/�e/�e-fpBf<�f
�f�fg#g8gDg	Sg]gig�g�g/�g�g
�g�g
hh+h8hhWh�hA�h�
i�i	�i�i�i'�i
jj
j
+j"9j\jejtj$�j+�j�j#�jk*(kSkdk
{k
�k�k��k0lClP^lH�lB�l7;m@sm&�m�m�m�mn%1nWn vn"�n&�n!�noo6o$No�so[prp�p�p�p �p�p�p/
q.:q�iq�qrr.rAr^rrr~r�r�r�r�r�r+�rss(sDsQsUs
hsvs�s�s�s�s�s%�s�s$
t
2t@tEtXt@ht
�t%�t�t�t�t>�t0uBu Wuxu*�u �u2�uv'v"Dv*gv"�v"�v�v�v�v<w,Zw$�w
�w*�w
�w
�wFxHxMxSx
Zx.hx?�x6�x;y1Jy3|y2�yB�y6&z0]z�z�z�z�z�z�z�zQ�zD1{
v{-�{$�{P�{?(|h|7|�|�|%�|	}}}4}H}]}p}�}�}�}$�}E�}+/~*[~,�~�~�~�~�~�~�~
�~
$!;]y���������R�ch�2̀?��
?�M�l�?��<5��S5�p�����'~����E4�z������d��c
�;q�0��Mޅ,�pC�9��/�&�&E�)l�7��4·�#�
+�9�L�`�
o�}�$�����FE���������
ʉ؉���A�N�T�c�	s�}���������
Њۊ�5��%,�R�0n���%��&׋I��H�$`�D��@ʌ9�1E�w�8��T���"�/�;�[�l�|�+��
����#ʎ=�,�
H�V�s�+����Ï׏�
�!�4�C�W�k�������{͐;I�����+�������
)�7�AJ�S��	���� �3�J�]�l�{���+��&ٓB�C�Z�x�Y���$�2&�Y�k�I��
ʕؕ�
���:�Q�o�w�����.���d�K�`�Mu�f×$*�XO�Q��7��+2�^�gx����Q*�|�P��^ٚm8�	����›ۛ�9
�}D�(œ��>�M�Ua���N˝Y�t�����
����&͞�#���9*�8d�
��0��Vܟ_3�C��Gנa�6��8��4�/&�7V�6��7Ţ-��#+�$O�)t�L��*�)�.@�(o�,��.ŤK�?@�?��H��<	�3F�z�R��Ԧ����3�28�k�(��5��������f�-��/��M�h1���]��=�8V�[��c�CO�j��z��Ay�h��q$����q(���H��W�O[�>����K�g���E��1ѱ-�Y1�$��)��9ڲO�&d�)��9��Y�$I�Xn�1Ǵ��A
�*L�^w�EֵU�(r�S���J�(P�Iy�'÷.�&�A�2\�2��7¸Y��*T���p���:��N�;5�,q�*��1ɼ;��(7�J`�4��+��N+�Qz�o̾X<�/��Gſ9
�1G�y� ����E����J�^�3~�N���W��w���*��<��15�Vg�L��*�]6�����������$������
��/�6�F�O��W�/��(+�)T�~���������
q�
�����@����"���
�
+�9�A�X�^�:o�����$�����'�:�rY�5��_�8b�������$���.6�2e�r���!�6�DB�F��
������ � 3�T�K\���������+���#�)8��b������ )�
J�X�m�~�d��J��jF�M��e��e�gw�R��Z2�������&��'��#�A�yP�%�����/��q��(J�@s�J��F��.F�Zu�6��G�3O���'������)��Z�r���
��������'����K
�Y�b�o�Jv�	�������������v/[��zl���y�E 4����������
�i,�8�0��2�����e1:X�?��7��C+E`f�&��}�A~����*
�.|��ARW�+�&D&|�����j���xh��{U����c�[�!X���n���%�Q��")a��zOhkv�V=��*q��i�8�U��>�s�d�@��T�"k��D���
#*"������\�����A�}p���������3�����0��	,P#2���7���Y�~�[��L��C�;/�&�����N��	:`��t�F��"���MFE2Q$��c{491MvP�+��wM��]�+�f���� n>&#��}�|�[�-�.����:���_�(��$��6����Kd�s��z0��C������uuK�s%6�k\���������@���'�,Q�N�!�aKVS���fs�mb�i!*Ogw�f���h/~�2396
��(m�!��<��	��b���o��Ak��Zi=��3OL�Z@�w��)u���������c�*J���1s;GWjHeW��Y�V�B1�7��!��dL
���W��F�S�c�7 �5���q�rJ�#�^A���x)�[H��:]p���?�L����<�'t-m%~��D����1���IVE�(M��(��j�����J5�O%�Le-���)=�`�'ygB2��z��%�����Y.�	'�rolH�b��#��0��/��URnG?S�E�?���d�l�3.���
�j9����H5=����	^��^���+���}����T��;�e(g-f�`��.Op��b�Pux�S�w�o��$��7B�������n}�$�h;h6upyZ���Nr�e�����,8��X<V����o�B����xm���TI�m"S�n���Y�lP����Y�6/q��v�{�$:��9Q�3����R^i�=<��BT^w����>I@����k��C]�_PZ��J�H��)�GD��
t���C������8d8�K��t���\I5���<`Z��U��z��
�RKR�x�av�>>a��� _N�����G�j�F�r�;�4��4�a���_��9���?y�����@5�
���Q-�I
g�pU|�]���qM�Fl���GX��0�J\��_��qo���g��\{��]y���N�X�t�~c����bW���4D�, T{����|�r�' %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred.%s is recommended.&laquo;&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.&raquo;(no savings)(non-optm)(optm).htaccess Path Settings<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter DOM ReadyAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAny changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS SettingsCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimizerClean Crawler MapClean Up Unfinished DataClean all CSS/JS optimizer data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optmizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDO NOT EDIT ANYTHING WITHIN %sDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDomain KeyDomain Key hash mismatchDrop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all online server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate Critical CSSGenerate Critical CSS In BackgroundGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate UCSS in BackgroundGenerate unique CSS in the background via a cron-based queue.Generated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLeave empty to auto detectLeave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated.Link to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache Edit .htaccessLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad Inline JSLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManage CrawlerManually added to blacklistManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNon-`.js` file extensions will be ignored.Not AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge localized resource entries.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimizationOptimization SettingsOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consult the host/server admin before making any changes.Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Predefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended valueRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Noscript TagRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlacklistRemove query strings from static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save .htaccessSave ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, CSS/JS files are cached.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the backend .htaccess path.Specify the frontend .htaccess path.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This option will remove all %s tags from HTML.This page is meant for advanced users.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo clear the outdated CSS/JS optimization data, please go to %s menu.To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s.Tweet previewTweet thisUCSS Whitelist SelectorURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Master commitUse latest GitHub commitUse latest WordPress release versionUse object cache functionality.Use original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not.You can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You don't have enough quota for current service left this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IP isZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.user agentsPO-Revision-Date: 2021-02-02 07:13:21+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: en_ZA
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred.%s is recommended.&laquo;&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.&raquo;(no savings)(non-optm)(optm).htaccess Path Settings<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimised.APIAccelerates the speed by caching Gravatar (Globally Recognised Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter DOM ReadyAfter the QUIC.cloud Image Optimisation server finishes optimisation, it will notify your site to pull the optimised images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAny changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimised images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimised images.Automatically request optimisation via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a grey image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS SettingsCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimiserClean Crawler MapClean Up Unfinished DataClean all CSS/JS optimiser data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimised version.Click to switch to original (unoptimised) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optmisedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.
 Click to redetect.Current closest Cloud server is %s.
Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimised version of WebP file.Currently using optimised version of file.Currently using original (unoptimised) version of WebP file.Currently using original (unoptimised) version of file.Custom SitemapDB Optimisation SettingsDNS PrefetchDNS Prefetch ControlDO NOT EDIT ANYTHING WITHIN %sDaily archiveDashboardDatabaseDatabase OptimiserDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimisation DataDestroy all optimisation data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimised images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDomain KeyDomain Key hash mismatchDrop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create Optimiser table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimisationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all online server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate Critical CSSGenerate Critical CSS In BackgroundGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate UCSS in BackgroundGenerate unique CSS in the background via a cron-based queue.Generated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimisation from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimisation.However, there is no way of knowing all the possible customisations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localised, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimisationImage Optimisation SettingsImage Optimisation SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimised and pulledImages previously optimisedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimise potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimise potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain colour placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn MoreLeave empty to auto detectLeave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated.Link to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimisationLiteSpeed Cache Edit .htaccessLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimisationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimisationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimisationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad Inline JSLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimisation features are enabled.LocalisationLocalisation FilesLocalisation SettingsLocalise ResourcesLocalise external resources.Localised ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManage CrawlerManually added to blacklistManually runMapMark this page as Maximum ValueMaybe laterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum ValueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimised WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimisationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNon-`.js` file extensions will be ignored.Not AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge localised resource entries.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimisationOptimisation SettingsOptimisation StatusOptimisation SummaryOptimisation ToolsOptimise CSS delivery.Optimise LosslesslyOptimise Original ImagesOptimise TablesOptimise all tables in your databaseOptimise images and save backups of the originals in the same folder.Optimise images using lossless compression.Optimise images with our QUIC.cloud serverOptimised WebP file expired and was cleared.Optimised all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePage OptimisationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consult the host/server admin before making any changes.Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Predefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimisation of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended valueRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Noscript TagRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files.Remove all previous unfinished image optimisation requests.Remove cookie simulationRemove from BlacklistRemove query strings from static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimisation.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimised data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColourResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save .htaccessSave ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimisations.Selected roles will be excluded from cache.Send Optimisation RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send To LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimised %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognised. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimised image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, CSS/JS files are cached.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the backend .htaccess path.Specify the frontend .htaccess path.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG colour.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimisationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimised images on your siteSwitched images successfully.Switched to optimised file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in real time.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existence of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This option will remove all %s tags from HTML.This page is meant for advanced users.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localised resourcesThis will disable LSCache and all optimisation features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimised files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo clear the outdated CSS/JS optimisation data, please go to %s menu.To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomise CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimised in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s.Tweet previewTweet thisUCSS Whitelist SelectorURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimised FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Master commitUse latest GitHub commitUse latest WordPress release versionUse object cache functionality.Use original images (unoptimised) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimised version of file. Value rangeVariables %s will be replaced with the configured background colour.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou are now having %s records in CSS/JS optimisation table. You may need to check if you have random string issue or not.You can just type part of the domain.You can quickly switch between using original (unoptimised versions) and optimised image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You don't have enough quota for current service left this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimisation once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IP isZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.user agentsPK[�oR)=z�G�qlitespeed-cache-en_AU.poUT	��O`��O`ux�����}is�ȱ�w�
�)����!�g��(��E�Ԍ�1td���hR�����K63�P����;l�]G։���E��:,�,
���l��N�"��'e|���(x.W1����bϡu\�A�㰈�48N��I�
��2�I���\��"�J��%P�,v%@ܥQ�%@-�M��e�qTv�9l���:>�æ�N����������&)`�����`���{��� �^�'/ƣ�у���B�'���sl�"���WYZ�i�q�e��<ܮ�$�s�\�y��|�f���ͽ���t�EIz�"�-���*a���d��x�[�Y�e����4��/A���o�o�4��2�_o�Yy��Eq8<���v��0��F�����3)�/��H��{����GX�v}�Ŋ�o��ytE��Šߣ�E��l�e��T1�Us�cÝc�<�ZE�X��q*�a�6���^>U�<�*�\΍�l��d�8���9���^>3z_i�U�n��l�8�Q�9��c��bN'�m���-��Ĵ¶ٍ��1�}	�ga\$㺨��HI�<�k��r���|	hos���U`/�`�
��O3�ڥKD�Ep��
 �`�VR>��xq~�+˃E@��_?��:X��|D�O�,�x\t�/���CE�?���<�&8��ɛÿ}8���Mt�W�Yf�z�}=\�ex��@��b'��mR��-�]��[�*�t<��7KXZq	�v�Nl�-�ɐwd^��1]�Z#��?8���?��~����U���H���%�{A���ֺ�mO`��t���C�Jq�f�M�p�!�x}�̹�]u7B�m7�2�O��>o��0�+W�KxR�vkmW��5���0�[}G�e�(ا���f�Tksk��L|�<
>��Ѯ̂<{��$��<��ȣѨ���(�JR�엀�Mpq�.S|�t��Q@��\��[B��J��M��bɨ N#$��O��'�x�#q�
�/���᨟	�!��`�w�ܻvtN��V�9��qp�(X����c�v�a�-Z��X ����w��M���(C��[��8Y<+��+0��n�[�}<U|��%zj��Vh���>�����'|�_�âN�8��\��J�^���o��e�-7�n�(	/�K�J�p��E��(x~�`��4F
c�m�^����q.��J�<��+Q*&-�:���^�P"n
ӻ��x;�~��7o��o�c��
����4|�x�`�r�X�0���'���}P��?��
���<�[�1�tB`��g���**�<����?D�+ۛ�`�)����
�̎�8�,uՀ0�+o:��
��5��l�\�zK�j�([�Aĝ|�����=�����$\���
Y�)#Y���K7"��ʏ!ܫ��w�m���x�����Yl��L�_���d���q{�&�Pq�l��k*V0�2�$)���I�Xg�/�%���3�O�nn?���8�v�5P�T ���X���k<�jE��1I��%B8�A`	�s��ٗ>< ��P��ݣ낅D�0��EM�� ���¾��^�h�-�[�ẁ����/L`�F�k��Uo>�jޓ�
��	�!$>+����C}��c���X�v����\�!!yB�|��
��aʘ�0�	�%
�U?���@���I]��	�$��ʨ�
�ƪܬ�X3���f���WGg���M_�m�B�%��il�Y�:v���g%�ؤ��vX�x��+�WC��E�$ݏ�6�N����;�?�]7v��WJ/�җ) ����H5HjU�:��!�Y�
��8��������N�|V�.��ؙC9�$:Rn�C�T3�&��Z�T�%��H)�ӸiKF^��)�C�,�I�m#�ڽ�nW0.�����3��s�%:�.%���6a��Ψ-����������Nu�Z�D8�M�+��(^��g5T��<89ӈV`�J6H
���X��O�ؔ�`�s>��2�u�\���䩵�o�����	l��cJ����u)�̷�[��T��H�s.���7��^��U�ϾK�
o�rea89��	@ۙ�A���W8��>:),����ݻ���%W~�w)��i�{�/�WW@�0��*�[`(a͑C
|��(�a{f��X�����D{M'z�e�*ЖsU�y��`b�'�{� �(�h� 0�
M���"�	�'%��۔�D\p�Dr�JQX
��<���08Wx�w@��	1�xb�\%]���b<VDK���!���U�tC�^ekT�&�3\�4�=&�Aa
 ��]�L�{gp�]�(���^��� TX�	Q�d�%�8-HQ���C�g����b�mA�Vqr�����V���
�9c����Xl<evL@���[&�vKg{���jwu��N�/�N�&0}�!�L�ue�39�ujZ��ZY*CϘ`��M��#�-),ld�=����I�J圍�!�vP���	��^#ﷇ�а��"�<XE�����ɹ�Gn?݉4DHQ�*�vp���j��ְ�z�H���F��r�ݪ�H��D��_`,H�Pq��H��򮶵�#���`��W��{����'*�
%<��9(�F���a~�PxI��߾��3?�`�y�	W���m�Ž��(�|V��@�����Zj[�ɯ��P�6Ή6K3�\�2�@,L�r���w�^��C|�r�N�
;,�^]�#zW�?F=�����y&A��f�K�/�_�o(׶�7�v0�b���֨PWg|�3�0�;}�8" _��/��Ƒ:L��֟EI-�<����*��[0�A�Fb�U\���{�ޫ{Oȅ
�}]��k]@Rm�]ݛ$$�2�G�h��ڳ����k���U4&�����
�!ٓ1�h .ߡ�U��@���i"���@��3Vm��#ji�~PR�GT#	�I�@"�wPy�&�(P��d^�	eEq$4��+�$J��
���O�����4�
]5��'���a!׫��=￾���V����S�j���/Ϊׯ����#l�LA�!�?�"4���K��y4�.!#\!%�NV��0WD>7�=�9^�im�����2�ZO1�2څ"i�Є�6˿Ȩ���rɻ�}�R���b#_)" Ed��]����]R��*��=vP)q�p^�b�\����׻t��׀^xe���iүK�����Djk� C�d�/��q�4����?�C(70X�v��u��7F��ph6ih˥@��%���K�.
�J��\u��9K��=A�|���[����s��5��ΐ,���_�Z�Y*[,�G�ic�p��y.����\[��+V�;H5�s����Q&W��3�M�
���<ۥj�;�x*��-4�M{�X�.}8P_����!/d��>��8���&B�=���e_��?x0X�#8o|����=��I4����^���a����u@CE�Y�2��»�M�1�ƅj�d<o����V�1hZ�41���$5���&A����4�m�����)�2AF!$-p�����*\Bm��#���ܫ��HP$X��@ã ����$N���gIb��_HB��ph@�k���-Y�2����WL�&$�Ҁ�0=��i�I��u|(�.cT~-�̽���-��l�ъ������_��D�Bc3N�dT���*�#,*��ʄ�
�%�7@���+eN�IN
�0(��EQ/�8�J@G@�6��~�{�ό�"�[�x�5WTFI�a���l8"DH�*VcRd������7��*��/ⰴ��&��s@�B��2DW�_�f�smP��f%���q��v����p��Ļ�L������R1L�����&B)���>�˒V��`$�"�(_Sd`�g;��+�!Mu�&��^#����	���yLr��n�k�n�¸�g3��V��Ѭ]�:i���5tE�G��4�.õj�L?=��]鸡Fo$��"1�jW.ɒ&7A�h?��$o�~�N��U̶���v��O�0���,����>���J�M���ތ��]Z^�M:���&����PLu[d�RG{�V�3C�
�T��KbSxT�߂ici���[4�x�+�$�������:Y*��XփA����bS�E�f�nt6�m�+=W?swvf��������|ف��Tg�{�m�y�u�=�}\Zɐ�'F����hd���w�C�S"��;��W;�f�̄�U�Ӄ�8.�@�pG���1.��I��u�ʄ���۟F@[.'$�2�Y���/o�q��N=�ɼj�ൄ�
`m�����K�������&��<��;q仴�k\e��R�@0��!�H�;���6	�hگK5&��T�/��熿�(�0��HF��t���E�;�=N/��d0�̇�D$ࡃw�[Z�'
���WM}�a���O\i��h.��G}�u�G����-���Vs�'�m���UV��z��Ui\"sv)}���������
+R��X|*�5v���N��_e�w	��}M:�˾�712�*ʲ��?�y����(�"�:??�����RO���M�Q�h�u�,�:��0Q�͊ت�k�Yx������m���<[�a|���+���g�Z���na��VZW�Ŝ�>�<��<S=[�9kY�dnp����9p#b5̈G;G���6��5 ��K��3�S�X=W��Ǝ�q�
$�L�s��@�5Np�ٛ:��l�٥(�1�Z�ݠ%߁��膜A�e�^i�L.��S!�tj$�m\��I(�]�����0�P[���6�\��N�/��&�}@�{z�q#������L� �x��!b
Mhkcڛ4�"e)�Y��x�������D�@'���U��qnX���'O[^D�6�kn(
����=��m���X;�4"mQ��7���b���.p�7qu���U�n�(��7�c���sK�ѐ�jV������^_Z1�G�v�"�ZM��v�/��rMN'KZ��(4����A�̹���pd��j�>���W��Jǣ�iY_����;���mv�2A�����5�O���.8�����6LF��{��mϳ�]�����$RS��n�]C�H'5Zi��9��2(�-��#�tD<��'[���*j�S#�ă���T��@,ط�	�P�`LǪ�����n��͈\3�ϥ�7"~0,�%�m�q; �`��ʉ�U#b�
7�47�|�.'/�*(KQ�9�)P�|S��s�N�hiG
nr���f�O7�kh�:ޠ�Z골����8��u ]3�f�d_���'P��"�msO�c��n9Fh:LwˆX��#;��U�lPb���wЗ-����a�ܵ�]��W�=12N�tM�^�5f���?�
�Ʌ�{�Q�]��nV�N��������)��Aj���c�kn¯,���=�j�a��1^�^1ɟ}0��{�Qϵ0�i^�l�L��dh��|����R�K�L���FH����uh+�ӏ�JO��B0�f潻	�eXϋ���?�䨇dGlJ����y�]F�)
�����x��v���4�ct0��|��v��]�[�����a8�ם?�0

����s�z�ztrL�?5�(�sB�)���\q���)�(�,)�3��ŷ�c��P��F,J2#�hmȦ�\Vźkn$�cR�Wr�J���++r��
鄯�?h�ɇ�\���&AsJ�Ѵ��
�SD�$���)9���r��/nYHE���̡)�6��|4�Bu���)�j���`���H]Eh��=�y�@a�g��"lIbCv�Q�"��9lƼh���#x�Ug4�OL�P�AU�
Xab_8J��;u�b��r_w�a��u�bO�#���]���3�XU�-ˆۡ
Dz�F�k
o�?
�}i(�.�EL�&���<���zs�G��p��57�v~�/3�r�Ko�C�̨4>䣌��nd�<F��
C�p?&,�Ѿ��Z&u��U�VZ�L	h�n z��Vql��Üeh��ҋ��Eq��S0k^m�N�w�c_�Ļ�UI��H�%���/0kj��b���ھ����U���a:Ӵs0�w\���'g����55�O\`�q�ʔ��~;��a�E��c���a��һ��ol��RͧFV��0	��0�Q��lw�������%]f;��3?��Z:�B�K�zzΟ_��G8���G�ۯ�x����@O�����ګ�@��L�¡���5�P���&��\�z� a��E	Su�>�����E����(�_�X:��
.4UU���^��}Emx��d�5͡R�w4m� �tNni�t^��N���n���x���Vɍ��`T,���~k��@o�O��R�K�l`,�,5��L���.}I���]��F�&�*�o4ilh���hp4���J���"b�o`|�#��1�w��:�����L����NUR*6����z�4R��X/nH���S<��	�FB������j��8�'���=�-KVb�DG[>�����wW��L8��9���D�`y�)���,Վ��U�hrݧ����l��Su��k��
G��UD�2�M �Օ�����Ɠߟc%�� '�
J�X��n[���q��/-c�NHZ`�n�n"9ls9���T0\��N7���W%EIU�#�;����^E�f�Z�$�4o�/i[젒��w�qhߠ!�*����FD��#�Y-��>��DҀ����ڰs�����4����N_�a4���1�<@?�k�Pk��-�3�j5
'
�(?���V7��"��_l�����v�NZ>����'��oԡt���a1|M�Y1Dԓ��:����Ig�6E�H�0f�i�4�$0�v`�,zi��T�@�捙uK��t�f����וw_�F�RϬ|z�[�UjM�l�DΖ*���d0w
#�ui��.�!��Gb�&,��2G�Q��dX��.
�)�uYiJ��g���;%\#ߨ"�'.��ZFHrRIsb�}�j(�L��YS�c�Jj�����<�"��w�^�d��}�=%�E��М��&.0L���f`=Ub�,e�UR+WV�·�:�OY݁.^�ܹ�"/ʳ-���Ӓ�`�$h��Z��1/`\������{�$3����+��C��9�F���j�䊪\��״A���*7��������3^`��wgDg��ZD\F��P��,��ów��&�2ь��	C;����:d����ۺ��EuQ��e�w�P�5�y6��h�p�rE�>j��E�Rb����M�����:��q�>��ݒ��s��� :���x��pd�Y��VP�=�fO�d�1?oN�h�G��}��uv}����\�U��PI�8��"�ֽsyQ{\��͆�2�b�$�S����u��X(=f%���@;�;y�C<�vrl/x{v�Gr94��C�GT�_�z����|�~���R�M��(���m�Q�|`���7�c���w9���7����&�ݡ�;��ȶ�:��EAՙ9҉o�Eha)TD�ؼ���ki�F�yt����
&E_�������,�(Y���=�Sʲ�TΔ���z��G���kn�K�*��WY\X7��v�D+*fm����=P�@�n�n��fxLI��e��I��Ӷu�Y�������ж�
$L�V%����O��_@&M�![e#��ʒ�7d��#G9�ȍeؗ�@�$gR(���$�
ۯH_�Dy�#�Wml-���M�­�$$��sT�R��ŏ3{H
���Ym:��=��|����`2\���n|
tU�b��X�떇���>Wr�RfyJcLxV%0��@��	Ǹ��nyR6�ȸQ�Ӽ�=�l�5�0���a�F��6Pc�o
XU܁�����&����lG�4j��4�~��L�_���yj
�Z_�Q�7p��a��}W!C������Z:���V���������}-Mɑ��D���-�����{�g��2�v��⽄m�jGZZ�8d/+�	�D�+��$A�d�=|�����^�h>p
c'm�ד��K�1g���=��4�~_|�TɲZf��R4-��R�z5Fj�7��=3Ĉ�6R{����՛�C�wq����#�H���j�r��q��R�� $��2�������ڨ!��T�Y�n�؋��n�=��
K�)&�Xۦ1[672B������!d��n��'�׌uS���1�ˌ����D��	�y��g��Z�Щ�Mk�
�8F�f.=
G�Ԉ9��Ƌ��N�<�N�+���>.�euoaq�D�)A�X��g"#�&4|�E
|��1�tI���)�o��T^]���>FY���,��l_�Z��3�T!a^��A��]W�W,gQU%C��;�y%Ȇ�iP�¡G���Lt�Gp����ړk��`{Z,}�+��0ȯUt8�A��15EW�cj�$J�M��A-F}MV�4)�&�=0�1�]-��Q[���2��<�nF�Vokm�@	����X�� ��
K�?¨1�N�9��4]�	����kd��#4{��Z_r�"�P�ֈ�n�Y�9_�	I��#�ep�,2qG�>��.�/�i`�Ge�h��W=R2��/�u(O��+�րO1�?�N;��u�1��c��C*��
�#"�>9�J2��j3WaJ�D�?�[�!�ɸ�q�ݶx��`&%��Z��&��i{�l�mV�M�elH]�����;���}�;�:E��I��pi#�[��)�À�dW�a3�J���.�S���m�z;����zbY�^jɰp/����L͏R�s��8�
�VԵ��}����%W9�d�Yj�N	�&$I6��]::2_-��A�޲�����2tf��J�U��LƟй�ё����d��/�t>^�~T2q�7
)�ֹgJ݁�<G�m��4�}y���J�!��m��c�`�ճ�c8�H���y<t��Xޯ�:Z�ͭΫ�,xN�5��q�aH�ƺy�D;��ґ�g.p��&|6��ݿـm��{�i
F*��Bs�2τm�4��<S7�y��pt2���Z��&6\AG��Ѭ�I^V��aMt6;\f��<�K�%��gw3�����CxGtP��=��(Rv�'2z��0z*�B��c%eSg�����Z�"cM묚F�j�)O䡜f�E��̬��<�8Y��I'��J�t�H��<��+t�9�K���(��S��-�})��h�� 8cFZW�p��sI�8��͟
S����K��?�s ���X�|������IY�K��`�/���܅.��F:h�Ty�L�=F�\���
G7�>5,�����&�GR3Z��[�鴆�OmMAz��pjX%�A�b+��D~ɩ-Y�Ql"i�a��IK�
�@E��:���p�}Ld�T���@W��EF/�*^o�,���?|0��$��Lת�죀sx�4�[���V�oe2�*,�RI[�5ON.`�@C����%12���&h&����yJ�Ju�O;-�����?��2O�L�@G�Sh���5p,~d�&�|����Jo�$����s�}o��h�䜙�3=^DJ܅/YR.�/qp�l�����e�|����d�v
|�c��l��&�1!����`Nj�4#�:9n��:rկ�Q���9�KL���ڂ�P��TF�
=XfٗD5;�y�-
�.���%vheG�ÛdcRT[�rQ~vԴ�"�ɟ����_r�
�L�ۘ��EPaĒ�u���t��j<k�Y4���9L�:(��]���e����[jq�.4�*�9����r�R��f��4�w,�Ũ<�FJ^�̱/}뾼�s6p@�Y!;OS߽�j��\����u��j���8�[7@O�j�j0
k:���	B�&�1ǚ�V�	W�2���g_N?^(Yk���S]2��l����ݶV6KG%���b�W�b����~0 G,�Zn]��W��6;��lԯ��x�����e��(�{f�<y�R�
s7ӕoЎ��nkIV��5n��_���sx�ӳ-�C\�F��*�.=N�ݡH��LB��8�v`n���mò��Է����_�n�cAvlI���S�*l��3�oJ����<|)���S��I
�s}��6H|O��&�:��gn���3˛_āJ�)�����~Gu�jl�m��΁Ԡ�*�$:�4�r�����hFs�F6�G��8L!��X�́By����b�IS�:u���X��Ͱp��`j���yC��k�>�jg���4�y*��sO���*����yf�n���(Թ�(ZQ.zK1-���;�t�����|�v��or��g0�{�3'��O�s�G~C�!��p���3J�|�E�REG/x�ە�Y�����Wj(�����c�n嵪h\��ѷ�I�YW%��Z� ��laW�z�C*�W���F�^V���z�����������>-�+����Funx�s4�O�EE��K(Pf�l����~���1R��w:�+m�r��*�ex��^�a`�s���g
<����\=h��)E�k�S���襾�K_����O|����9�A�I�m�U8�{*�_	��a�B0/�Z�f�!�׹yN��[Y 
Mce2��L`�d1rQLZ
����|BO/"�DYLE}�����?�_b2͡�m��dDs���ȼ�&���y��g�̼̑�����{=Vh��o�����9�R�q�k���Lg�ϊN�!�7�n�����-S��S�t,����m�I�������?��f-di�2����̖��,o8��^�Mj�Cö!�J�@�a[���
�z�/��@�[F���h�6��� ��C�k[���L�Tq��1��WΚ�C�嬙�;�#�"�ňϨ+b��pd̛'HAk�Bĭ�8��2ZZ�
>�
N&��e�����ʭ��|U;�zMP��c�
7�W�h�6�b���6�����TU�E�+�ѴeX����3�P�z^�nR_F��"�<��・Q�P2m9�}m��
�@Y0*n$��g�l�6�|�3�VWm��a}�Gj;��eܟM������=��n���s��\�
6O���{��4��u����a����k���s��ԾN?�-���s6J��Z{�и˄��j���9�ظ�:�i���sȹI�m� ��Qm�.�3Shf"�h��������������ATV.�D�\�e��s�$�>�
Y���Y�R�Ӭܣ �Ԇf��/�2{�u_�ʊX�h��x?&�H����� �k�ēm��t�!���1_�n��?�dM1�0��
����?���QR���?���E��nW��C�Ђ����X�l�&nm�����O��vq�|�����Q���z�`N��6n̬�z��D�Gi���anS*��p�a��T煷�+4�N��m�odt���h�&�*��G�2d�`�Eo�U�:��!��/�XnW>�N#8I�����8�u\�9��ow�r`�o&���̨�F�J(�%�����F�b6�b�����~3Y��~�"��C�\�u���a��`"����υH�m��+{~��'h��,q
����sT�y>\��:����}�:u��LJ]-Vsy�������
hKiOJ��
(�o����Ωު
X�l�	G�R��n
;���;��DL�fT������?P�9pU�旹k�xr!����n0�(��N�x��}�!�2,�[��I��*am#/V���k��m��h�De����"��� ��Z��x�p@�|DʨF$EØ"��Ln0d5�]Z&k�xW0`�A#}�����&�À����ʒbn�kʰ�S��ҦV���"7d������ֿv����}�9��4��z��!��e�'�&�(��tx�t|~A�>��HK8ٹ�}���z��r�N��(�X�,j�
�Br�M#&����Y��btz,�O���…��h<]7<�+Y��Ly����;-;�<����A�S�Ԭv�����U�<�����ť%�;6sSG�>�*���y��on�\�JKM�루y|�Lm�:Ĵ9WǤI]<��
b��Zw�IJ���u.�8COܡ�1>R�Q�~�d�6:��GO�{lHsQ��-�~���
"]-�o>�o��?bd2g�cK��zf�����6[/"~��Y��̔������|z-XŞ��Q>*G�`oY�#>_K[�K��gNc����r��s��5��m�����W�2H2���h����*��%�
Ky0N�̟0ve���w|��V{��B�k=y��-��0�YjD�ˢ^��� 
�T���@8-)��|VZġ�Z)�\���}x�?�ty�H�
 ���9��G^
�a�� �ʐ�h_����[��Qt���α�L�N�Ȣ��
��?n" '��p���ݗ�W�^�����B������9��c)Y��~�.9�*�V̂ac�m�t.w�;.�\�8���Z���m�
��Ĥ^�$��L�
��{p���1g������e��4`\|��"�f���e���|��UT�t��4���j���*f�U9��c�@�,�g��	v��)�A�&�Z��_�b�����$��{���}p�zc@��<;.�=�E�*�/bg���nF��o7bm;�|SJچ*O�	�P<Q�ǩ`g1�A��uX��u�]�м[�;H��+�ʨ6O�r��S�!�e�?�]�(�B�~���0����bfZw���"��)�7OT��|цmXs8n�N�?�17ٰ�f�e͒�K�8���De�nx��ѧӓӷ
f�
ڒ�ͧ��V8�?Q�P�4�7{�E~�{�P��ֆm[5��'������#��\pTb*E�Z�ح�r�-�i\e�K��
�DW��X��L��y✊.yaojda�ȽXzI��`��^�d��� �{8����2�2.�
��ͥ��I�b�
l&C4yz3V����A*=��.�\���f�q%)�rR��_e��H%3���#��d[�s�Sc��'g����V�@�����"L�W�a����!�߾�T�_����Ce��W�)�.�9J��́Ő2G�ե<�=��'#�U���Xg,YoE�J�=Ay@�#��\N�0`h.Qjx
�cY��8n�",���C�,w����y��%��q��v���Z�}<�	I��~1S�8�v�-6�yd�6��}yO~8vM~�,�60�{h.�6J��`>dD�&Ұ��_�8zu<9+����l:��D1
6N�7N/�~��򆪥yko�FH)�4_��&�`�G$|�Z��ֶmC+1g��Ͻ�]�������,Rpn@�׶��� �;`��b�˻�ţD�o���\]U��`�NU"�a�#�q�K��ji;��������j!���Pk���H��O사�Rf�&��IA�}�yx��X���'�'�?�l\% �e|I�-�!5�t����5DZ�
���!h��ߛ��ZE�JyΫP�i��U��v@Cu�o�;�/T)n(eW�"�ީ�oJQ+o=�^~њ������\j3+$��N)�\<�7��\O|)n����r��N
����!��T�p��:\߆wE�
��;��N�[�K��`�s+6�g��Wd�1��Q����#�W��yA�5֮Qa�G�*$��jpxI+����Վ`8��Uϸ��p1��
�0v)'�TR�^��xqxx{{{��;La��x�:Xf��-E�ﳮ�!�o�i�8�Q��iug���Vf��/QmO����^�mm���6�F����z(F㝉Td�X�6-�� �l1�ۭ2�@Mu������61�#*B��X��z�(�4U��-_p�j��$�5X�5�B����&L�Q�
Vt.z�-��Tj{Oؓ�fjF%�,׉L���1+R���q�Z����$B��:V�μo��._�g���\1���qG)�#���O�\{���"bu'dx?Yvޏ�8��k�F�슒�?'q3L!�\G��R�H	9b�_�?�O5D�J���6ƃ����YR�?�?<�W��{��~��'a�^��:��x@�c�Z1'k܆h��/ڶюE���Ehc��J2�B��@=xO�r�jNL�����)��ղrzM��Q+�N��!
B���
D���ی�%���LD*4�R(.O�#�yEqj�Fw�Z32���R��s�q�>&�F�D���!��٨\n�aI����u]Op@�l�%�uR�������ӷ�N���2�`��%3�}�̱��wN
"Q�!^ŷt��̗E.�JrM���Gnэf�8����v��e��!f.��
��1%P�Xkئ�8�T��A����.�K�l��#�f�Btn�=��M^��\P�.��L�V�v�CǮ�&w��5�lH���6l���u&��Kʬ�(D"�(�.Z�	7����q;9V�>S�hî6O����\�r��+jX��/�Y��D��r�s�*��	��=�#nj�Q(B��B|,IZ�ft��?M��C�́�kJ���-A���rSXz?��h�tg"M#��M�{���V��&H�ݓ&�\iD����K�F`|,!㋈�������Dѣ�~]�ƧsSό�X�t	\�8F�MǛ-#�L�m����Zz�W��%���W��Mh��>�}��Tj�oT�~hQy򂶓1	U�U2d��>��{���O2(�v�8�n�h5�w����'#�ϓ�v2:~E��2�+��Û;淛�
Ko�W��IX䍘n<�9��w'�oQi��lVH�z�d^ci�`��"�[��4�ծ��E�-�_@�x���(w$�B\-�D19]�A
��K�B-<���]�b�B�y!�
{,H��5�)�^[�x��N�Gy�޾���/�`�P&�bbށ(�P&���w�t.%!1�[!S�%����P}N[z=W��D��.Y*�:� ��&�r�%�%~bȞ���<�ƹ���lϕ�1�7qQ�e�����~Im��N�]�;[Cw��s5cN��+��;7z��v��5D
��&�o��Si��Nm�k�A�����ur���ӣ���6
7Ž�#2�*�^���I9="XsYy��d�d]]N��$��(~k(���%0���]&i/����žd/���f6��UJ�\l��qw��f��?<��,0H\i�(�⮹��$�,���#����Cx��u�
OI^�LL]��TC��Cn}!�T�����S��	��ؐS���c|fSL��Y�'˖
QrL�F��)*9����ҧ�yI��I�'�V��s��i�Zw�8J4���퍐���';tQ�4)�5�
,���Je�"�PH@\~ݠ��!wX�D��+DP��y��{íM�߅�B'MqoyaQf�/�ԴJY�1�+���s/[&�
)��f�'O���Is�#f����P
���4܈CU2��X%]�k�;�z����T�ȕ��<t]��^����DVQ^��ԋdQv��e�#�k}��R��u(�	w�	ʓ��
~��)�M�;N0��1	Y��Bt���Z�N�TpY*�6��2dG.���k�o�s-
����
X@=:��!�峼���kOq�F���ϭ֎�Pi3>�䓭a�e�#�$���-�L�"o����h�z��*¨-'�Md�iE���,W8���,����#��4�[��fj�J���d�߅�0�
�I*��0��/�IBL��r�^�X���:��&Y�N��I%��i���h�
W5�AR����7hcbR����/zB�P����U�Q#q��:�Q+Zn�J���3��\�㳀L�y�dl�®�����B�T����i��9��΃Zx����l����ۑ���ғ��b�!�5�XX%@H�3�B ��
F�Ԧ��u�U�͌aBՑM��L�%��e{sC�B�;jE�Z���8������
���5�Rk�	l��:�)�h1��82�{[�믛p��[���b���&��Ӗ�j���+��M7�_��J�0xDaB����]�v�z�l�FO3D�uk8U�
�qF[v��T}�|~�<>�����q�����Njwǟ�_�_Ggg�O^]�|<=W3�w��yn3�%�؆KN"�#Lѯ�&����u_�I?�8�ۋ \o����,i�߾��By�6�m����|p�,
��O)u�D!�u�8t]� ���3����E>z���������O����o\׮����`�W���G��*�Q�G}�Ἴ�"T�$����і3��L
Q��h�j1H���ic�}XY[�
ݭ,xywpP� ��&O�*f�Z�������>�K�_��O��~�u�dU����G[�뱖c�䵑\�RN+񷘴^e��߀L���vMsx&k��D9b�1R���U�De��<R�����xq����Ф{�Q�W߁±;Nzs���#³��lU��X�
�R�;$��1'õ�(-���ߚ�Yǝ���_|��~��(i���$[�@����;'P�%� �Z���O��̞�1�� ǯO.��Sn��	��mv[;O�/�{�NW,����+b��y~���=��|e�x����@�6�2�9�����;ͪ`��0�Z̑&����uJ�ݢ�;�\��	��JE�;�l�'Y�j��2q���<+	f�eI�!n�
���Z��ܛ�4P�<$�Ҹɒl07��U��"Z��O�A��i߉�&G3.��"�N1��������f(��0�o�s*�JI�BL�_�iRX�` �F�YÓ�J�u�=�,�̾��v�����ZF�1��͎=����NF�¹&I~V��^M���EKzq�]܅�5#��L����OBf�ffv35��a�YcU���~MѨnYԍF����eV�6�/ֿ֬��0"p�U��Z�
��s.I��F��W��Y�U�*=�ksC߱���9��
�x4o	���I�]�Z�6��pɹ�=�W>��b����չen����¦z��+&�5��������{o�<1����;#��!��3��
ÿ�w�X�t�SB#�3�5�~����2����&��O6B�A����V�qu��$Z�V����B �H�Ѥ1K�LW�Ʀ~4�JN��Hx�\��R�B?�\=!i�R�_�+n�-���q�>� ��YQpF���L������A��I�l��PpG�r�p�Pp��ݴ����û�>i�����:�J0;�Pi�{��4���^�*P�G�g��'7�yv�m�,��bX"^��/�2��s=|�qK�̱�7ɍ��y�E�+�ghk��J2��0q���>�5�o6l���ZA�{��2A�YKݫ%�N
(~��l<�.�B`��4ϐ~U�]t��7)i�&h��+������.\��*��w`�mp�r?�}M�y�����s�A6�<��2�
gM��'���8�7�;P8A��3e-`�%.�o�xS���e�К<s��ؐg;$�h��#A�����;�{��t�	�kq2<\��;��!u��g�!s��nL{c+��M^��-en�:7[o��C�SOb���k=�=�ӑwәتZx~-2�剓2���TU�����C=F�ڌͽn�e�E�uE���]v��"��=�l���+5 Fw��M�4��eӾ�ln�>����qof_�-M������7�����A��}0��
-e#��'cKӉ�̾u�ټA�4�7˜F����d�$�����7T�{͝�Mk�f5�X�KlB���w<�����E�PK\�oR`�0�E�litespeed-cache-en_AU.moUT	��O`��O`ux�����}	`T�M�����V����
5w4��B27����d���a�LB�j�E��P��*�� �n��Zܵu���?��]f|���k;����o�����g���L���(7�_�om�nb�`��+��f_U�6�����	��a}n���7'؏ UeRX�����>��]w"x$�v�7ܖ�o�F=���<�`?��܍�����4��	�aO�׸'�?��O��s;�Cp�Q/%�#�����{���{�u&	F	�B��6��N
'8n�9���O�w�
��#8��߆��ATh0�#��?��.�%���q~��?��0~Hp��1�����ܙ�1?���>X�����A���|*�L�u;Tӏ#��3�A��j��$�L�?H�g���@�X�z~K�w�¼쭰�
��L��*��)�	�Fp��G��#8����z.!����@;�ܗ��#0����7�;��/�	V���6���ͫi��W8���\�|3����	�%�p5��
��!$�s
�X�|�� x���Op��Ԡ�����u8b���Q�y�0�7�¼���X7
�{}�|4�+Gc���F����G���h�Ōј�#FN�;Gc���m�u��h�����Ϯc0�Ic�3Ǡ��cP߅c��Ơ��A�O��zǠ�F-�ۼ�Y-Ʒ}-�e8�_�X�u��bޏ�E�W�_�<��S��s�aT3�$�e�6�_Ep+^DZ����b<o�>�d_䟼/�?k_�z_�}1k��x���:��ס�	�#Ғ�ց�Wk�G�@�/�a�^%�W�a�_���T��Gp��z���z�{Y=�f	��y�N'����)�1Og�]<�|��oـ��5 ���6���Ҁv:����g��
����=&�����	���'`�/���?����0�'��~Ј��7b�;5���7���^@p�&È1�$�56�����e
o�bޖG1Ok���'��oF1Ο6�׌u�j�74�������f�����M��{�`z�-'R�x}!ؗ�̗'�O\3x��D�&�?M1N��u~r�t���7'H(c<F0��w�{��0�CU��T^������|8� ��aݖ|� ��e�$����ɘ���X�)��·O�z�3�x��Փ1��L�}D�D��݃Qߨ��W����}��`���~�����y2p��c����)X���q�“�����;���)�S0��f~��RSQ~�T�?y*�9w*�y�T�ES1�5S1�
S�oM��,��G��Zhw����zS8��=�}^ba}���~�Y��5��=��޶����˚��Y-��--X��[�[�ަ1��1�[�<; �q���/�a}��b�g> �z☷�q�%���$X���<6|X��o�c]�k�'��|���
볙�q���>��6�1e������'�ܩZ��z��x>��'oӊyٽ��
>�ъ��Wxv+ڹ����V�wm+�aI+�%����F2��
��m����9+��wvk��ho�|%�1?N;�7��.ߎ~��~�Q;�m�ֿ.���$�O�O������~Ӏ�{O�|4O�|L��u;r���i������[�A�=?
�8��4w�?Џ�;@�w`��v��U���:0_�u��&��r��22��w&Q�b�_Mp�'R�����ь�)��Wi���4��N��Tt4�`��g���4�I�����A�����W��|m��|�'x2��'2��m�c|�MW�5�;�i����2|����x-��頳+.�z_���j}�OǼ�3r{@|�>��������,��#Yȟ���w��q�邾���ӛ�cG�9�C����9�kN�E�^����a_�>̡_��1ϻ�я�y�]K�qD�s&�CX�̃�t��x'���ļ��D?��D{K	Vq?:�g~Ѕy�mڭ�B{U]�oJ���.����ve��w3��cf��Cf`|��<���sg���g@�Y1�w���?�|c�n���n�����
?���x�a�2?����Mp?�3g�?�8t�!��C��?$���,ȁ��@���B�E��?6%e�`�k�)�X�~�!��
��l=�1�0����oo;�a�g�<�j���%�C�-;z�s�c�~y�v�#���G�b��ț�#�g9v��#�7{$���GB���(���G/�>
�x�Q����8�=
��(��Q��[-"���h�ٙG���Gc�8~��������g���/;�;��[s�b��_ 8��ত���	|l��@g�C���[x����Ϫ㑯�x�s�񘗧��mv�k=������nO���<�^r"��s'���$��x��Џ3NB;o|���˓1�>��r*��T����^<��f�߻�F��f�^�a6��5��EN^/8
�Ӂ���y8�tԳ�t�g|����Q�c�<�g?��3�k΀~��31���:{&��3Aׯ���w&���gOͳ@ߑ��_Ug!���@���~Yg�|��qlo����l�׭��5�
�c��Q���Q�����q6��A�w�+g�����=�q�9�S3�A��������Ճ�A{ۜz�ݹ�ι��"���V��~>���8��y�_[�:�>�c�y�?O�y_u>���\t>����CN=r>����.���]�<��g���0�G����>/k��/�������3�r��Ǚs �/���^?�j���;�߯�?�`م���]x!��k��_�v�\����f-ס�rz���B��i���s!�!r�"�9�]���E��]/��^��Z.F�ɋ�.��1��x��b�3���>��%(?����%��A�@n̺~�/���r`��K1W]��^r)ƿ�R��ۗ���/��}�s�e�����.?x�2�m�ˁ�u�c<\?j�r�w.�<l?��\���sя}�_q}��:>t.��dM?g.����bͷl.�l�>v.���f�y�'2rq�y���
�����>��y��<���An�z=t>��/�+����vޘ<�d>�u�X�s�@�.���+ g�z�q%�}%�]���o_�|��eW�ﯸ���+��^�~�� G��B���� ��
�l�U�7�����w�X��0O�/�8�\�y�w���X��`|�,~l���b��-D���ݲ�v/^�P�م��9z��B��ѿwb?]��oq5�Wc}F]��]
<8�j�s�ը��ˮF?�]��_�Z�������k0��_���v
֥���k�nG\�y?��{�5����z�ֳ����r��k1���?�p-��k1�:�S��?uڟ{��z�����<�|�S������{,��q��Ο�|�/ݾ�H�J��G��_1ޑ׫�z���U�^���7+�W��V܀q������G�ߠv�b�w�΋�]�y�c^����!���S�����o.X?��Z_��K,�:�Z�������%���`ݞ_�y~u	�]v#�o���1��7��z#�ƍ7ž}�F�Qz��7A�n}3�k���?U��f��ڛ1On��v3�����n)�p�X�ƥ�k)�w��\_�qܽ�]����R�3���-���\�e�2�Q�e��/^�c��n�u�[��^t��[��շ�oξz�K���mh��ې����Gv;��g�����G����;�n7߉u��N�wb��	��w�Ȼ0o܅u�܅u�}�󊻰�w(\���o}�=��Qߤ��W�1�y���
�<�n���z��n��wc�G�8���{�n�{t����q
�܃~/��k���`��ޣ���������w�r�c,W?�r�s�r��M���Z��nX����gƿ�
�o��_�@��V�>[�s
�Z~;{��+�>�V`�Z|ܰ���{����߃�~�y/���{1���E?��̽�����W�.w_�zWB�u�ĸf+���o]��y|%�`%�﭂`�U���U迻
��U���
r��U����UX׵Z�5���|�߇�?���t�>�!���<v��$��}X�s�>w���>��a<?X
�b�j�K�jԟ\
>1k5�?O��hg�j����1����~�������O<s?����1@nt?��:��}�;�ؙW>�~|��I��n�?���� ڿ�A�Kx���!Գ�C����0�a>y�v�C���an{�?���?�:]�~�5j���~t��߂5X��kt�x
��5�����?\���a�K�a�O��z��a���M���:��k�G�.�źw>��{tt�#>
?Ǧ�Ao�_�������a>�x��㘯��c>v}~��\z�q�Ɏk1�ڵ�ㆵ�Akџ�����k�W��ת���]:[���g�Z�{k1/�>�=�	��O�f=��/��=����?�?�~O|�J?	���'A_O<	9�˧�hz
�t�S��z�S�|
��)�{��S��O��C�v]�y��8h�.��q�:�C��G�u�i�Ө��i���i��O���4ڻ�i���=
>���������^�z�7}=�g�z�{�z��u�1?�<<=���3��`������g��<����Y�!�"ó������,���g1�n���s�:ϡ?�?�'ρ?D����7�癿���?�v N�:�j�ݽ��g���<��˟�:��R8������z����5/`~�x��v/B_��"�t勐k����1o;����%�մ��G]���V/CϬ~v��2�s^�x�e�3۽~k����`/xxy�+ǝ�`=ֽ�~�W�����y����'������ux�U�5�x
��K^�?�x�e��K^G�^]��;�����G����n��zt6�
�{�����<��M�g�M�;�M���M�˛ob�~���~K����m�[�m苇��q�z��ݷ��{���@�8��c�;h��]�Q+�Ÿ~��
{���{X�?�z����߾�~�>�?�}ث��<��}�Q�����/>>���0�CԳ�C��O?�uӏP�+av�xp��X��?^��u�O0��'X�s?~�	�O�7?�x��S��N����>~E?��O�/�)����g}
?�i��������g�?����S?C�9��>�g��e�)��'�����t���X����S'���9���ϑ���Q��ϡ�������G}��F_ �]_��~�����?��"�k{�L''d��A�?'��>ZV&|zA�%�|y-A�S/d�ܼ��s�<�C	2~�!�����M	�^�w�|���I���.y|My^.$��1� ��6A��� ��M��G7��x����6��G����r�c~p�?F�~���N�)��&��!�u�������z����q��
�:�|?�-b>�<��{w�h���s��~?�g������μ�Q�u�����4�u
���~d���x�P_���u�?��)L#Fiݚ���5��!�����?G�9R�,�b�"������r�u���?�<��Q>w]�C�g3��yѺ���{��[XϤ���X.Phi�F�u��4�^z�9�_|�<w6��i��w�i;P��'	���ߩr��>7�����o'��~e����uӺ�g|��q����^��H��<�T��c龖~j�!��5�_�ބ�6�Dח�=��W���i�� ��1��z�����w���z�'؟~'�C�l�c�)����6��p-���ی�E��.��K��Q�$��Q�i�^�~�M����,�Uf���_�gSޫ����m��2�c�sz�̏ȗ4�4��33m�8(��O��qm�
���eϮt�ŴE� �s�����oxk���Ii�4Ϲ,�ˠ$)�S��#x�'����D��s�!-��ַ��<�ά����m9�039S�=h@G�Gi���K�3�7�~.�m��2_.��Ѵ](�0���~FX���?��z&�\M;�:�	���s"4OG2�����[��\��5?�Y���(��y���t~��>������{�|��vO$�@�sC�M�y/�S�i-eЃbT�;�;Vۼ�e�3�Ǚ��&e����yn5�2��k���})}�^?X]�|�����и�0g~��?��M�>oW��y��o�6xc�z��A��X�'h�\�C�����V�8����#��t�������~����?�oJo+���/�ʱ5�>����~G�4O.�Ag=�e�������ﵾ�
���eС|��\�����ERW��ZnGJ��=�U�[�����]�����#-3��_a=��p���w��q���_N�-`~F�����5�K�=���������=��z�ʳY쁑tmj��!�8C��,�(��P}�_����?��{&��8����.M�;�����v*���{�гYW_���;�u��e���yo�����/S��;#�(�忖}k<�l��=�����+�>W��'�c��3ԧט��`�zY�i}3	nI�+����5��[5�����rر�5��t?�Ѽ�e���jy�7x��������Y7��SYߣ߻�����/��Ҟ`�Y��C��<�u����,���ۥ����~����|]��~�����r�t��]gX��o.��9�}�DQ�X��g�o��[A�^��[����=~�ߤ�]�.�r���_��q�,���ob�Q�{��Ϙn(m�濃�/(�Mx4��O�E�_�I׏��m��(�9M{��a,�)m*�t�>���6k��?V��Z���ִy���u�����[�z
]O`=�~{��j^�_���t}<��x:/�t�v��d݉y"��?���c���Y�v��b��|�Pi����߯��w�V���z3�]�t�I��x?J�v�:�c_Q|+lgnO�o�ʶcKظ��<C��<���Z,o�O���}�|�zv2=�>��@��GJ����m2��jf�o]�f�wM��1���v'�����D:���+It혓�ӥk����i7��5��ʹ�3���Z�v� �+���mY'��/��D�j����ˢ�
o�g2N6g�:�|j�A�ps��=iI%r�e��;�ϸL{�n֯��۹��C�s�OL�]f���n��w��5�v�J$]��ɚA����.�%ge��ܰ~SZ�V����|&n�x]\*b��2��rsf,ku%�н��L���w��WfxCҶ\۴��AY;��b��k�i ɤӕH��1'nS�tΑ-v["��N���J3�eF�ِ��Uɤٕ�ZlӞa�hI�fW��6'9�xC�v]3�O�\!���8n�JG�u\�`j-���HhY��k�9K���g8�MIX3ᚮ�Im�شt��$'�K�3�8�k�5��q�uS��V��?a�Yg�쮬s�8�łV�	������1;�_�Mv.G��̤�i�`�N����u��֜�ſ����n�A����Tʠ�.'��k��i;k%+��������2j"����tΕ[��6'��y��ZMB7����'�P�򮨳�v�юQ5f���\sR"Nh$YrVۗU�t�f2��z����mfht�D�ȳJ7�)3fgiҦ�B}e�&�5[�T!:W�eu�fF��šne�N<#rI�ã#���[i���%r�LnΉuпV.ϕ����)ZX�D�=g�b�zB�)��zb[��%�����M
O���n�/˫��o�ЖP&�>�tg,��
c��\;u�����6�:fu�j���kGc>IU���
���A�B��'e����n�9Ӗ���G��cĦ8�����#�I�����Й���IJN���pIƔ�#E�e��	z�y&���@Q 3��n���!1�{$�ܯg��a��x^�/�s��1FXn"f�B5F�3�g"���Q.,YZ�͍uȗ!zHPW�B.!J�9M�eR��Y���HF��;fE~
����p@-,"bp0r]�8���xČ�i�^�܃�'k�3Jel��I'�eR��ҧ@ZQ‰n]"���N2N=��CY]Ͽ�a�
M��5��=�Jߩ��F��N��hZ�kfĒyr3&m4�p�m��q�4�5�4�I�2|#3��r�:���=��bVD�H&��ҹ��
G�뜶6;^I�5�AfJ���H��T�MØb~Jɚ�X�5YF�vR�R:���Vg�T���))�����U%$�ELvG��~��R�k�d�qQ2�!�sJ��8!�&
���UY�p}V��a�O�mfi�+X�Z	�<���ԛ���~�{�B�&	U'��NC\g�Y� �*1k�Y�oXS	�Nx#�:�ӆ�����ngoή72&�/LUc�^&KT�\�9 �Wk�-�b��P�-��Պ�)�ꄄ(��@n���%	�Cr�pURY[�nS�$�Ӭ�蕒�xe�YMnΘ�Գ4�}t����wO�xL6k�X��g��m�H����	�eH���w&X�?p3�f�WA�F�eI�0P�Kc���,�It{}�~Y2�t�{�%�U����{�ܞ�I��h�z<z©�5K����ccӸ��3򥙊榗�Yf��reZ�vR͢Ze�H QrXH�T�{%�'��E��g�.�Ŵ2�$+�<{
J��|�5IR;t	^ZpkB�q3Nkk��'3��j�(��)8,��$�2D�D?k�H7XX��b.ġۆ
M��|Mh=J��m�[)ۻnJ��ñ��)�d���M(���R���-�5�92�%��,Y�
b�܃l�!:c��)8#C�\�
4E�k�.�Y�c��,A-��~��剰r�#��T����GlZ��^)�Z��`I�<�[I%-)E�(�M&I>Q ���f���YS]K2�~�����Z��vT����k��Yu
�P?)P^�j�%�fֱ�]�W��4ʦ��'�"4(���ǷL#�0��Q�&?�!���
4�	��^�T`y���#5��x�;��.iuӿ�M�h�;]��Bڋg�f�P�&����[���3p�
c��'��P{�y�G4iNF��qd�H�u�i�<��Vẁ�� מ�mxc
kM�+),���˘S�pY�8F=��^bܿ0'�-
��
i|��JO�b�(a9�%�K샴�,lܪ�U�1Z��f�"�^T��	\e�n���H��T)*�����۱E��_�G��T�V��
5:���Vq�����6k�ڄ�T��#���Վ�n��W�v28�|��x�9==�hք�Wgi
�c6j�j���|c����d�$��L�l�� �fO�;m��P��Z��N��j�x�.�f��S�a9���G�+�9�"��z���'	��
�{��s�ӆ#.��ӱv�����xnI�
�>ӌ���;�Kz��,�L�?&����S�"J���+�l����w�1[�9���b�	���`�~��'r��ĨIژ!����b��i��jϥ�����N$�2I�^<+��2�45�����I����R���7h񄼅3���
��."Y�
B$�s�.�x�,�Xī9L�	AY��8+^'�ieM��w���f\pRr!��DL��BG	�m�/��f����(���\M�ɦK)�5iA�q��Xm��
y9ߥ��*�..>�%%���X,1��C�!
q*r2��,?���v�&�5��Q�9䄤$'�SE�O���t�b-��/�M��LuQ�%�n��,�(\��m�D\�X�3�:)ё:U����|&j����v�����<<q�$�$5��(.�_4��
y���^�D_��3��1B�cY]�7�k��^����;6��g$��P֟�IQ7������(t��(;
���X�^<q��"������4��0���2�TEE�FW��_aM��/�_�$'~�nf�N����:	k�HA�
S\M��ď�̈2��(����1<qb�7ڳs���I�"�<B��%�L�.�RQ�PI�5�Dz�Q,%�Ŀ؇ڲ�҉N�s#�U�vN���>!��?	x*��F�K%��HB�Lt�Q�md��.�Bֽ�Q��,�G��o?fȥ��	g`�A3;�'[d��NU�&�v�w�j�h�i�4��!:rL���p�sa��j�r!����+�<�4�D��y��1d��Z��cm�a��,��fb�5(��<ca�r���ˤ%��A֌C��"�ђU'���M����
�em0����8CG���a���	f�11�����N0^�;���o&��������� �#F�!ZIާ��ke8{b�.�{�buQJ�m�u��(�d�W�˹A�E>F~7��1Qȕ�`4��@�ca��u�/?���6�iE�%�>�`�O+��SyL��p?�x6�jR	X�nmʜ�<��5��)���.��½�Pͺ���w�o�h������ipY��Y��L:��Iq�c�Sث�ۋIo'.��T�"�3ě���	j�K�2���,�*�|�'�Z�%�7*�b�-F٠d.��Q�2�U�_���<#�Ve[)��`3���'�Y�v���ۡ��ś��fT��2�To���I�a�4�$��
���KPM�g�OօX�(NJ��l�}T���6�ԶX�R3+��|�<������`WM6���i�iŢ�F��6ۯ�-z���Y-�h����G�
���;z�GѾr�;�*f�dQ�5��䓤�ZB��;�b3I��c�8��͛�⻑��)fa�EY�#��U����6��ֳb�qŮM̟����.D�5N}�1�[�Dޒ���Æ^Pc�֛��7-ނ"L�S�N�I�P<�H
W�ص�9X陇��A���*���z]s��d��r�f*�%�v.6P�?i�ǀC��3���mN�$f��-T�����T���&���X�M+E���f�
d>���;]�`�,��=y2��B�JZ3��a	}�p����9�#��G�(U�
a�f��=�v�휷�t����D�
��tq�+�2�ɻ�=�l޳
䜜���qD�W�qS��ۉgE� -�.�<���2�u�,J��d��������:I�
k�
���f���ThתSH��a��tRAK�h���Е�,6�������=5)bG��N�H^�f����v�@�V�Z���Zz�b�E��I�ݎ�3��j�9��w�6�a0��V���)e-^"�h���,�4='N���/�.\/I4�ax��R%m�t�i�/aN{�o�6��]���wQd�(
4
�b��E�Y��'ewP��%�Q�XN���+���e5�
�W�C0���:*0֏���zS���:r��Y�$�����1��I���F�nb�.u\�f��Y��.����&.��3����]L�M���6��1�Q$"�H�"�#�,d�G��-鰏�l��F�0O�`n��l�%�e�6�q�M�hE�
Q��G��		�Ǔ���$���l��n'��6�d��g,"�ABg�Eޯ�{��d+N/�S?�E�g��{<�Z��
EtʖE�i#�E�X{�a��W�W�gĵ��摮��(�]��e�@"���Ddҭ��6�m#�_e�W���oO�5<Y$��pS����0ƍ0�57E�5fs}��sT�q�蘚FsR����jGVEk��7E�qV��SyČ��t����OOI�-�69��I\��b�4�l2'n���bT�G-�E{hKq�Ć:	��ypH�������X�R��� �
<�֨��jGz`�M���2*4zE
?���)P�5����D
���W�I{�^�`d�SeN(%�'>�7��˘E=$r�V'e����|�f��n/���"M�"�fV=���j��w���1��^ꗨHL�=R6��M�x�~#�ڍ�y���"�{
�7DC#�r1��]V4$oG����n_�Ha��*��t� ��_o�F9Sot+D����l�JxR{�<�TP�S�E7�01��T\����S��'�G%��
<bUĽ�>5���\3a�"T�k`���*a������A�f*�5�ek<�=t�Q�j��˘L�x�4:��JEܳ�GV�k�������aK�@y�`m��R�rٗ�U��FV)�H�jaj>őu^"�۸�L0F��:�u�Ǒe-t��}�w"��<?C\Yh�I�xAY�����0�x��Q\|,I�`O�8�֙�/J�Á��xQ�cG���-$��ڔ?���s�	����B\?b�f��(ǜ��1��d���,�w�
ޣ���⛽N��۬l\�g���о�|�*�|T_����B�9A�g�8[��,C���Z�
�*qs����O��)�~?�?�W
.��)T�
��g�x�8'�Oڞ_{!N|�Z��`*w�;�veB���`����S�lo�W|e�-���kM�aq>�6�����B���18x�F�>p�b.��ddc4�[V��':�7
l��)����+m�,_�"�t��)]�i�Ҡ����-�Y�0"�͹DV]�jE��朘��K#c�'ڐ�6k���8�1'�M,��X�膦
?>��찻5��fXfU�DH�6h?+\#'w2	x��\�Ug�h�Q��f��&���y�G�~~"�(B/EpxF�g&?Ɵ||>��0���{��p�9�Cl'�^�P��uM��Xg�(�=z#ʋ퇹��M��yw�� ,Gl��M���O�d�P��:$Z]ow<���ƀ�������x�#�#��^���&�����^6�s��s���GK�W�U:RL�Q�=u��rBZ[����Ω�
�<�V���p�nvp5��fe�����/��K�t`�����Jӎ�E4��p�BNv��p0����]�t٪`�*�$���S߸;��׿t��
�N�^qɯ��_R�t�|6�?�3Q��^Q/�M��7�@�5-����X�h�EBj��Cvߝ�ËZ�;"RF(/�ƁIN��Pa����ky#�]�H�w��ia��&Z_Mʙ��倆���,W���
��������B�Q8��pB����)^�Sd���N�|I7���c��K�'����g�ew�&��({�
L9���^4ԅ�� =-Zk��D�wB�5l��fs`�W"�:!
&n�i9�����/�њ�ݝ^N�4fbC��N�q��
�j���I���W4���VϨ�l���{Y�f�)�3�KDb#p��z�]�m{��p����9�8p=�]��Dc>mVk�܌�JǺ�n�G5='�$�z���DN���j{�}�V�Ѵ}�j�����_���%|ez�7�_���<G�\܄N��=T����M<a�����."��C�4��4ĺ�
��B�)�/%�&���*�bq�X�Mv���ӽp~�i.�� �v�B�Qj�x
	�~DS���q^Xu��we�Xw9�@��V��}&	{|PNVb�<�V�i�9„{�#j�����3���-Lݱ�c�՝D�X�"jB�ࣶqd�`�_1]2����$A=v��v桃���F6��p��
�Y̨ݯXN�&F�?��ք�?9�)�ŷ�#�͏��h��?�P�R �
�]�q �?��ª�N{{,��W	��B�_�m�dU���M��\f��+��
�o��\|ܜ��
W8�괚����7����p��P��W����h*�����T�ApT���ֲp4a�FS$�����f詤���t+"7R;�l�m��@i���Y?ʐ��x�
�v�UM��z���k�N��-����]�o|L�)�ƆQ;s�C�	��Y�
��p`*��4O��8`(88�^�k6�(�V>�MCxP��މ4^�`vY��d|����$U�R����[�x�x���V�A-�ԑޡ�&
I���Zm�t�����
i�"�ʫ+D�qpW%�����~�T���w��zx��؊���B�5���m��
�`ޡE��␮�*BMxqv�M���T�*�2�}L���I�0AƝ���~��~�;�g�3�i�Z�p�<�9)�Pb�����c�YW�j�0��`���<��	��UY���'�ٓh0Ez�W���0����h�O�4q�x�qZ�N�,o;�5���� h�P=�������F�6#js�q%�}OKh��UC銌e���Y%x[ܴD4I^j�Φ|-d����̔���5c��&:��C��ͮ��=���R~�M�
N5Q��Z���)*W��0�E����3�K�R[��A"��1`��P���!�;D��УKE�
���
(<J�Ȍ��:t��P�66e�]�ƚ	�5M�)�hx��I'������DBt�<��jw
b�����PH�s�bx��,��	��{a�2���Ȑ��	j�Hչ�!n�+3g�ePg�~$�t��$&�K��8>f�����;��r13DC��Q
z�;*�3ARH8���~�lo&C(�"_��h���T��[!�z�NM�:�(|���[�\�0dy�ӊ3�jX�{�L��3�\��ޔ�T,«X1=��ɢd���R蹠6uH銘^h8��Qi{������]�(����!l��l9;�#:f����1���E����(�Ղ�M��T������� ��W
`�����`MĽ��ޞvσx{����Y����dj�LT��am�H+��o��k���6�Fk�頨w���I�J�J
n(���3e[8HfVUO��YSm67�46��������<�Fx��	d�~e�aKb$�L�՚���xp�����%|1��Q9�'��j˴i±���\��%���_P��U���pO�s�����D0��-9W�1z�2=oID*�;1�Ó{��f=]@��U�ާ�V�:�tn!_�u����t���NƝT�9:��I/�!r�߀�:����^�S�J��N���Z�/<
�Z�3�Bl����ݶ:�2�2BƇ^����37Ҷt�w����&�p��Ń�E~���'-{8ny'��٦ٲNL�̗��?�$�ɢ�	�`?1E�%���2����vQ��BX:��z?/+�<qjq�y������@Z<����rYxj �*#r2���N?�3H�!e6FJ�����#/7EF�g����0�d�XLp
�2x���"�a�UkSf����$�M����P�-�,���3����x�՞�o�c>�Y�n�3.9R+��x�����i��N6�U�>!�^#��%����9���ݶ�8���Z� �fy�_B��E�8�?]p���UA���`X�WO��	3�t
,(>R��íZI���b�f$O�*n�Њ`��|�N9i���=��j9Р������O5k�%;����:�̡������7.�oh��d{�;�[Խ̞Z������g���b��+��
)Y+�z���.J	�Y����k���+E6�/HcS�BЈ�{�uo9\.�I�Y���a)����4A0b�k�g���6��R��
� �)T�7P��Lє

�r:E�.r.˞�f����D�RےtbE��n4�{�X�ee�L�ڛ
y���E17���/�|�q��|7hW����w��w�w�t�ݗUѷ}�v��&l�nͧ�wgP��ˈI5����-�,���5i����b�L=��`�e�R�(����듪���	����Pe�?�BY�Dv�]0b�*��h����¨���3���2xonA�:)�[��w��mU?
�/x�tq�o�b$�(���D�T��%4˯��+ޓ"M#��u
_�\�#�nT�U��DzJF�"�49�+��c��#9Y\tBs��H�=V����?��l�uOψ���࿖1����^�����щܘ|�w����y;���Z��E�BC��E/�I�q_��y�d���J��
�>�t��"ۧ��eoJ"�b:��a}�y�;:b�n�g�';|��h��*�l���w�k����נ��S�exs�0^�l�1
��jX���'���Q���!�a��;��.�<iP�^v)F��-�ö3�Gl��myG��fR>�z���ۍ���޺�oH�K���๝}̰��H�i��E��{)�~H��{z�$G�Ƥ��
H}�sH�w�q��scRUc=)?*��L(�y1_�ș'8�Cu�9$ыP�Bg)|io��l�{A�z�%����1����*�����H�!oy�ϥ�1��?&�a�|85,��V9�i��B�?&��
�R�+���F�@,����a2��r�)x���ԏ_0��56��|�Up��j�8��u�C)%'��Oz/@2@:̴�gd��9�t`�n[Γ&p��ˆvb��ܚ���-�
�+���9̒�.=������(�=0��P�I�#�7˫��4��5��n������������«Y���g
{��.o��>��5�EF���6fRVA /��^$/o��H�Y_C��@l�
N�����쏉�g��v����|xA��EH�>�m0��G#��%�RY�z�B�冴���+9A�K�s��;tР�������x#DJ_�t��E��d�+u�uo����T�iȂ�(o�2.�z��𞰅i��f�n�J/�����4�q���Wb<t�]�����ϸ�q5�*Ç�;F��W�Vr��P�\f�cI��� ^2�9:�r� oʵ��ʚ4a�k��{K"ק!Ɇv%���,�tFn�aC�4q9,m�f�g��*�MK�V��I''��A;EGWJ�UdH�:+ݖ��
%5pJUs����"��6�A��+{���6c�:+ǧE'ا�=��`��`��`J߃)}�����㖾���.}��=��`����~�����S�L�{0��x,��=��`J߃)}��=��`J߃�7��[�L�{0��߃1K�)}�A�[� ��-|�-}��0n�0�”>S� ̿�a��a����A��A��aJ�)}��A���A���a��aJ��w� �[� L�0���~��0no�q{� ���a܍}�-� ��U>�~+�q��a��aJ�)}��A���aܯ�A��A�/� �Y�"L�0�/�|FF��}���O�"��5��~�a�o�E�_�0��/¸�/���_�qK_��O�"���"�[�"L�0�/�|�_�qK_�)}��E�o�E���0��a��'aJ��)}��I��'a�7>	c�>	S�$L�0�O�|�O¸�O”>	S�$��O¸�O���$�[�$L�0�1��qK��)}��I��'aJ��)}��I�/�$�[�$��O�?PK[�oR)=z�G�q��litespeed-cache-en_AU.poUT��O`ux����PK\�oR`�0�E���gGlitespeed-cache-en_AU.moUT��O`ux����PK�������%M�K�d�d(�d2eEeMe	Ve
`e
keve�e�e�e	�e�e	�er�eHf[fmcf�f�f
�f�f�f3ghDg�gN�g8h=Uh"�h7�h�hH�h;iKifi'wi
�i	�i�i�i%�i�i�i|jF�j�j%�j	k"k4kPTkT�kZ�k:Ul>�lu�lEm.Nm-}m/�mL�m2(nI[n�n�n�n#�n�noEoMaoP�o0p'1pYppp�p�p�p�pI�p+q	;q	EqOq [q"|q/�q*�q�q
rr'r�9r4�rf�r [s|s�s
�s�s�s#�s�s�s�st
t t-t:tKtQtattt�t	�t�t�t
�t�t�t�tuu!u0uBu0au*�uU�uWvkv �v �v(�v�v�vw'wK?wP�w	�w�w�wx-(xVxrx�x�x"�x�x"�xy!8yZyzy&�y"�yG�y!,z,Nz${z+�z�z�z{( {	I{S{Wp{�{�{�{1|%:|2`|�|
�|�|�|�|�|�|
}&!}.H}Nw}*�}.�} ~?~]_~�~�~!�~

-JYan���%�
�!��43�'h�6��ǀԀ	���$�;>�:z���Ё� ��"�@�V�/o�*��<ʂ7�?�N�g�t���
��	����Ƀ܃�
�!�(�	4�>�M�`�s�{���!��ń݄���!�A�
`�n�w�)}���+Ņ}�o�D��8ņ���;�W� `�K��8͇q�x���������Ո���'�C@�E��ʉ
щ܉��� �>�
B�M�<Z�������ы9�
 �.�A� Q�r�
�Y��q�V�^�N~�͍ڍ��t���������Ȏَ������+�%?�,e�s��v�#}���������5�*A�l�r�������Lڑ'�93�:m�0��)ْ��c��G�PL�W�����
�)�
:�E�]�x��� ��•ʕە#��1�
P�^�=z���8Ȗ��
.�<�W� j�0����˗ߗ#���6�B�	V�`�Br���	��Ø2ȘZ��,V�����-����i��I#�;m�Y��K�VO�U��L��lI�B��Y���S�V��`L�J��g��=`�@��=ߡ�3�E�X�t�����¢
֢�<��2�I�_�?���ԣ���9�U�f�?s���ʤѤ� �&� 9�DZ�������ʥ
٥�����6j�����˧�
����
#�1�
G�/R�/����pǨ<8�
u���������ɩ	ة��
��.5�d�
i�t�
��������h۪D�AL����)�	5�?�L�'\�
����
��
��"������$�+1�]�#o���*��׭�
��

���0���ǮP�H3�B|�7��@��&8�_�o�����%��۰ ��"�&>�!e�������$ұ���߲��
��5� M�n�}�/��.����|�������Ŵ������<�I�g�+j�������ȵյٵ
�����!�0�O�%V�|�$��
��Ķɶܶ@�
-�%;�a�f�m�>u���Ʒ ۷��*� >�2_�����"ȸ*�"�"9�\�s���<��,޹$�
0�*>�
i�
w�F��̺Ѻ׺
޺.�?�6[�;��1λ3�24�Bg�6��0�����#�0�F�Qc�D��
��-�$6�P[�?���7�;�H�%e�	��������̿����8�$H�Em�+��*�,
�7�M�Y�b�q�v�
~�
��$��!������*�9�K�[�a�h�q���R��c��2P�?��
������?�<F�5��S��p
��~�'��*�E�������d,�c��;��01�Mb���p��98�/r�&��&��)��7�4R�����
��������
���$��;�F���(�/�<�
N�\�q�}�A��������	����&�2�C�
T�_�k�5z�%����0��#�%5�&[�I����$��D	�@N�9��1����8�TA��������������+�
4�?�#N�=r���
������+	�5�G�[�n��������������%�:�{Q�;��	�"�+8�d�������
����A��S�	d�n��� �������������+1�&]�B��������Y�p�$��2������I�
M�[�k�
x���:���������'�.4�c�di�����M��fF�$��X��Q+�7}�+����g��c�u���Q����P�^\�m��	)�3�E�^�w�9��}��(E�n���>����U��:�NN�Y������
%�3�&P�w�#|���9��8��
 �0.�V_�_��C�GZ�a��6�8;�4t�/��7��6�7H�-��#��$��)��L!�*n�)��-��(��,�.G�Kv�?��?�HB�<��3����R�V�k���������2����(�54�j��������e��-�/4�Md�h���];�=��8��[�cl�C��j�z�A��h<�q����q���H;�W��O��>,�k���K�����E�1R�-��Y��$�)1�9[�O��&�)�96�Yp�$�X�1H�z�A��*�^��EW�U��(�S�p�J��(�I��'D�.l�&���2�2�7C�Y{�*�����:,�Ng�;��,�*�1J�;|�(��J�4,+a�N�Q�oMX�/GF9�1�� #E+�qJU^�3�N3�W�����*N<y1�V�L?*�]�		"	(	8	$D	i	~	
�	�	�	�	�	�	��	/|
(�
)�
�
����
�


#
@0
q
"u
�

�
�����:�+E$Uz���r�5M_�8�9Y$r�.�2�r�!��C�F
NYx � ��K�(0EY+o��)���ty� �
����dJ{j�M1e�g�R_Z�
.&N'u#��y�%J�p/(qX(�@�J4F.�Z�6PG�3�'#Ke)mZ��

 4'GoK����J�	A K S [ �` ,!(8!a"Mj"?�"�"#		#
##
*#8##X#|#	�#	�#�#��#5$G$~O$�$
�$	�$�$ �$6%pM%*�%S�%M=&H�&�&E�&:'_>'�'%�'�'0�'/(L(a(j(,|(�(�(��(Kd)�)0�)�)3*.E*\t*Y�*z++B�+H�+�2,�,>�,;-2C-hv-M�-G-.u.�.�.@�.�./c9/Z�/p�/Ei0?�0(�0*1&C1j1'r1�1h�1/	292F2R22a2$�2>�2,�2	%3/3"D3g3�3F'4in4#�4�4555
-5)85b5'o5�5�5
�5�5
�5�5�5�5 6=6S6p6%�6�6�6�6�6�67 717B7%V7G|7K�7d8cu87�8-9-?92m9
�9�9�9�9\�9dT:�:�:�:;<;6\;'�;!�;�;'�;/ <1P<+�<3�<,�</=1?=+q=Y�=,�=+$>,P>4}>+�>(�>!?*)?T?$d?j�?�?!@5@<U@/�@=�@A
AA..A]ArA�A�A-�A;�Ac$B%�B/�B�B!�BnC�C�C"�C�C�CD'D?DXD`D qD%�D(�D�D9�D1E<@E}EI�E-�EG
FRF_FwF�F#�F�FP�FR1G#�G�G"�G3�G$H9HQH;cH6�HI�HD IeI!{I�I�I�I�I
�I
�IJJ,9JfJ{J�J�J�J �J �J	KK'.K0VK%�K$�K%�K�K'L#8L\LnLwL@L)�L:�L�%M�MN�M=N
]N%hNU�N�N$�N_OCuO��O	EPOPaPzP�P �P�P�P�PQIQJdQ�Q�Q �Q!�QR'(RPR
TRbRPqR#�S�S�ST?(T!hT�T�T0�T�T�T`�T}`U�U!�UJ	VTVlV�rV;WGWOW_W}W�W�W�W�W�W�WE�W!4X1VX��X�Y&�Y*�Y%Z+Z@ZXZ#oZ�Z?�Z�Z�Z
[#&[*J[`u[�[;�[M\5l\0�\��\y�]Q�]N^[�^*_@_^_j_|_'�_)�_%�_ `'`E`X`j`%`�`(�`�`�`<aTaBca �a�a�a�a
b'#b.Kbzb�b�b �b�b�b
cc	1c;cLPc�c�c�c@�cY�c9Wd�d�d1�d&�do#fO�fA�ff%gc�gd�gtUh^�h{)iK�id�i�VjcksikJ�k�(lU�mP-nF~n�n�n�n%o(?o,ho�o�o�o�oO�oJpgp$�pc�pq$(qMq$kq#�q#�q�q�qW�q!Vrxr�r�r5�r.�r!sR4s�s�s�s�s
�s��s��tM�uv&v3Avuv~v �v�v�v�v
�v@�v@7wxwn�wFxNx&Zx
�x�x
�x�x�x
�x+�xy%y@?y�y�y�y�y�y�y1�y~$z�z^�z�
{	�{�{�{|B|W|l|}|�|,�|�|�|�|2}8?}x}@�}+�}.~1~$P~	u~
~/�~��~Qe^�F�Y)�G��Wˀ:#�^�n�����;Ł �$"�-G�5u�+��"ׂ%��! �,B�o� r�����Äڄ#���-�CA�I���υ
������ֆ���)/�Y�0l���"��ч-ԇ	��%$�J�_�d�
~�������ʈ܈��.�3�.M�
|�������J���'�8�=�C�iJ���Ɗ1ފ�4-�,b�D��*ԋ%��6%�@\�"��)��&��0#�ZT�B��E�8�@E�
����l���!�'�,�43�Nh�C��Q��FM�I��8ސY�Hq�<�����������'9�Ta�S��
�6�*Q�b|�;ߓ$�E@�
��&��.��
�
����4�M�k�������.ΕV��4T�9��5Ö���,� 5�V�_�k���(�� ��(ߗ6�?�P�n�����������Ԙg��X�:ߙL�g�t���[��O�<Q�_�������=7��u�SE���
����Şl�kO�F��>�UA���t��B)�4l�A��;�8�[X�W��(�5�=�L�g�������4�����_��'���'�7�S�e�����X��
��!�2�>�W�
q��������Ħ@ئ5�#O�Cs���0ϧ1�Y2�"��,��JܨK'�Is�A����B�eX���Ҫ�+��%�>�
V�3a�
����,��X߫8�T�#d���,��Ǭ��)!�+K�'w�����ϭ(�8�O�f����T(�$}���.��-��3�;�L�_�Nz�bɰ
,�7�J�(g�����DZ۱&�"�*<�3g�I���)�#/�S�%ӳ'��D!�f���M�����0�I�Vf�.������&�B6�y�����#�P>�{��1�i=�k��H�9\�!��q��*�.=�l�O��ںp�nc��һZ�j�'��'��ؼ?���6�.޽#
�1�X9���e���R*�j}����7�'P�.x���1���B�D6�{�A��~�|M�U��` �Q��^��c2�\��@��`4�a��I��9A�2{�8��6��b�0��)��<��/�<I�A��^��P'�Tx�O��D�Ob���k��%�$E�j���(����1��"��%�X@� ����������z��?a�1��q��sE���k��DB�>��q��l8�`�������KM�w��|�����^�&��a�[w�_��J3�#~���P��#�$6�d[�=��<��e;�-��+��0��C,�#p�=��@��m�#��\��;�>�^Q�/��s��]T�t��7'�__���V��0,�R]�1��8��3�O�,l�5��<��V�*c�l��'��#�MC�Y��C��)/�?Y�:��U��,*�gW�?��0��"0�^S�V��x	�i��7��S$�?x�B����*�,�S4���T��c��:F�d��!��k��t��2�1�H:�J��W��\&�0��m��"�
.�<�B�	S�*]���"����������#�,�0<�4m�?��%��������o�-�D�P�
p�R~��'������
��
������E�#*�N�:`�#�����'���>��}��Fz�.��(� �%:�.`�4��5������+���G�W1���(��"�'�)�<�fH�	������34@0W��).I$]��� �|�`\}�a;o�
u$o�t
�,�0�4%5
[�i,��%9�Q+�G"	Rj	K�	5	
X?
1�
R�
=%[3���.�fo�����<�
K-
y

�
�
Z�
�

	�	v/[��zl���y�E 4����������
�i,�8�0��2�����e1:X�?��7��C+E`f�&��}�A~����*
�.|��ARW�+�&D&|�����j���xh��{U����c�[�!X���n���%�Q��")a��zOhkv�V=��*q��i�8�U��>�s�d�@��T�"k��D���
#*"������\�����A�}p���������3�����0��	,P#2���7���Y�~�[��L��C�;/�&�����N��	:`��t�F��"���MFE2Q$��c{491MvP�+��wM��]�+�f���� n>&#��}�|�[�-�.����:���_�(��$��6����Kd�s��z0��C������uuK�s%6�k\���������@���'�,Q�N�!�aKVS���fs�mb�i!*Ogw�f���h/~�2396
��(m�!��<��	��b���o��Ak��Zi=��3OL�Z@�w��)u���������c�*J���1s;GWjHeW��Y�V�B1�7��!��dL
���W��F�S�c�7 �5���q�rJ�#�^A���x)�[H��:]p���?�L����<�'t-m%~��D����1���IVE�(M��(��j�����J5�O%�Le-���)=�`�'ygB2��z��%�����Y.�	'�rolH�b��#��0��/��URnG?S�E�?���d�l�3.���
�j9����H5=����	^��^���+���}����T��;�e(g-f�`��.Op��b�Pux�S�w�o��$��7B�������n}�$�h;h6upyZ���Nr�e�����,8��X<V����o�B����xm���TI�m"S�n���Y�lP����Y�6/q��v�{�$:��9Q�3����R^i�=<��BT^w����>I@����k��C]�_PZ��J�H��)�GD��
t���C������8d8�K��t���\I5���<`Z��U��z��
�RKR�x�av�>>a��� _N�����G�j�F�r�;�4��4�a���_��9���?y�����@5�
���Q-�I
g�pU|�]���qM�Fl���GX��0�J\��_��qo���g��\{��]y���N�X�t�~c����bW���4D�, T{����|�r�' %s ago Cache the built-in Admin Bar ESI block.%1$s plugin version %2$s required for this action.%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred.%s is recommended.&laquo;&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.&raquo;(no savings)(non-optm)(optm).htaccess Path Settings<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Domain Key is required for QUIC.cloud online services.A Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAccelerates the speed by caching Gravatar (Globally Recognized Avatars).Add new CDN URLAdd new cookie to simulateAdd to BlacklistAdding Style to Your Lazy-Loaded ImagesAdmin IP OnlyAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter DOM ReadyAfter the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.After verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.An optional second parameter may be used to specify cache control. Use a space to separateAny changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.ApprovedAre you sure to delete all existing blacklist?Are you sure to destroy all optimized images?Are you sure you want to clear all cloud nodes?Are you sure you want to redetect the closest cloud server for this service?Are you sure you want to remove all image backups?Are you sure you want to reset all settings back to the default settings?Author archiveAuto DraftsAuto Pull CronAuto Purge Rules For Publish/UpdateAuto Request CronAutomatically UpgradeAutomatically generate LQIP in the background via a cron-based queue.Automatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.Avatar list in queue waiting for updateBackend .htaccess PathBackend Heartbeat ControlBackend Heartbeat TTLBasicBasic Image PlaceholderBeforeBefore generating key, please verify all IPs on this list are whitelistedBenefits of linking to a QUIC.cloud accountBeta TestBlacklistBlacklistedBlacklisted due to not cacheableBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.BrowserBrowser CacheBrowser Cache SettingsBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.By design, this option may serve stale content. Do not enable this option, if that is not OK with you.Bypassed %1$s duplicated images.CCSSCDNCDN BandwidthCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS Combine External and InlineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS SettingsCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache HitCache Logged-in UsersCache Login PageCache MissCache MobileCache PHP ResourcesCache REST APICache StatsCache StatusCache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Cache the built-in Comment Form ESI block.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Backups Disk SpaceCalculate Original Image StorageCalculated backups successfully.Can not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck my public IP fromCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimizerClean Crawler MapClean Up Unfinished DataClean all CSS/JS optimizer data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean revisions older than %1$s day(s), excluding %2$s latest revisionsClean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Cleaned all Critical CSS files.Cleaned all Gravatar files.Cleaned all LQIP files.Cleaned up unfinished data successfully.Clear LogCleared %1$s invalid images.Clears all cache entries related to this site, <i>including other web applications</i>.Click here to change.Click here to set.Click here to settingsClick to clear all nodes for further redetection.Click to switch to optimized version.Click to switch to original (unoptimized) version.Cloud ErrorCloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCombine CSS files and inline CSS code.Combine all local JS files into a single file.Comments are supported. Start a line with a %s to turn it into a comment line.Communicated with Cloudflare successfully.Congratulation! Your file was already optmizedCongratulations, all gathered!Congratulations, all requested!Congratulations, your Domain Key has been approved! The setting has been updated accordingly.Connection TestConvert to InnoDBConverted to InnoDB successfully.Cookie NameCookie SimulationCookie ValuesCould not find %1$s in %2$s.Crawl IntervalCrawlerCrawler CronCrawler General SettingsCrawler Simulation SettingsCrawler Sitemap SettingsCrawler StatusCrawler disabled by the server admin.Crawler(s)Crawlers cannot run concurrently.Create WebP VersionsCreate a post, make sure the front page is accurate.Created with ❤️  by LiteSpeed team.Credits are not enough to proceed the current request.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent Cloud Nodes in ServiceCurrent Online Server IPsCurrent closest Cloud server is %s.&#10; Click to redetect.Current closest Cloud server is %s.&#10;Click to redetect.Current crawler started atCurrent limit isCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Currently active crawlerCurrently using optimized version of WebP file.Currently using optimized version of file.Currently using original (unoptimized) version of WebP file.Currently using original (unoptimized) version of file.Custom SitemapDB Optimization SettingsDNS PrefetchDNS Prefetch ControlDO NOT EDIT ANYTHING WITHIN %sDaily archiveDashboardDatabaseDatabase OptimizerDatabase SummaryDatabase Table Engine ConverterDatabase to be usedDay(s)Debug LevelDebug LogDebug SettingsDebug URI ExcludesDebug URI IncludesDefaultDefault Feed TTLDefault Front Page TTLDefault HTTP Status Code Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault REST TTLDefault TTL for cached objects.Default port for %1$s is %2$s.Default valueDeferredDelayDelete all backups of the original imagesDestroy All Optimization DataDestroy all optimization data successfully.Determines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisable WordPress interval heartbeat to reduce server load.DisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.DismissDismiss this noticeDo Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDomain KeyDomain Key hash mismatchDrop Domain from SitemapDrop Query StringDuplicate image files ignoredESIESI NoncesESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessEditor HeartbeatEditor Heartbeat TTLElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEmpty blacklistEnable %s CDN API functionality.Enable CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonEngineEnter this site's IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.Every MinuteExampleExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to back up %s file, aborted changes.Failed to communicate with CloudflareFailed to communicate with QUIC.cloud serverFailed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to create table %s! SQL: %s.Failed to get %s file contents.Failed to request via WordPressFailed to upgrade.Failed to write to %s.Fast Queue UsageFile %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.Font Display OptimizationFor URLs with wildcards, there may be a delay in initiating scheduled purge.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For online services to work correctly, you must whitelist all online server IPs.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForce Public Cache URIsForce cronForced cacheableFront pageFrontend .htaccess PathFrontend Heartbeat ControlFrontend Heartbeat TTLGather Image DataGathered %d images successfully.GeneralGeneral SettingsGenerate Critical CSSGenerate Critical CSS In BackgroundGenerate LQIP In BackgroundGenerate Link for Current UserGenerate UCSSGenerate UCSS in BackgroundGenerate unique CSS in the background via a cron-based queue.Generated at %sGenerated links may be managed under <a %s>Settings</a>.Get it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGo to QUIC.cloud dashboardGo to plugins listGood news from QUIC.cloud serverGoogle reCAPTCHA will be bypassed automatically.Gravatar CacheGravatar Cache CronGravatar Cache TTLGroups cached at the network level.GuestHTML Attribute To ReplaceHTML MinifyHTTPS sources only.HeartbeatHeartbeat ControlHigh-performance page caching and site optimization from LiteSpeedHitHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.Htaccess rule is: %sI've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If only the WordPress site should be purged, use Purge All.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the category name is not found, the category will be removed from the list on save.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Iframes containing these class names will not be lazy loaded.Iframes having these parent class names will not be lazy loaded.Ignore certain query strings when caching. (LSWS %s required)Image Groups PreparedImage InformationImage OptimizationImage Optimization SettingsImage Optimization SummaryImage Thumbnail Group SizesImage WebP ReplacementImage files missingImages PulledImages RequestedImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages having these parent class names will not be lazy loaded.Images not requestedImages not yet gatheredImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSInclude external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.Include the lazy load image JavaScript library inline.Included DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstallInstall %sInstall DoLogin SecurityInstall NowInstant ClickInterval Between RunsInvalid IPInvalid login cookie. Invalid characters found.Invalid login cookie. Please check the %s file.Invalid rewrite ruleIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.It will be converted to a base64 SVG placeholder on-the-fly.JS CombineJS Combine External and InlineJS DeferJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJS SettingsJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.Keep this off to use plain color placeholders.LQIPLQIP CacheLQIP Cloud GeneratorLQIP ExcludesLQIP Minimum DimensionsLQIP QualityLQIP image preview for size %sLQIP requests will not be sent for images where both width and height are smaller than these dimensions.LSCacheLSCache caching functions on this page are currently unavailable!Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.Larger thanLast PullLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requestedLast requested costLazy Load Iframe Class Name ExcludesLazy Load Iframe Parent Class Name ExcludesLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load Image Parent Class Name ExcludesLazy Load ImagesLazy Load URI ExcludesLearn MoreLearn moreLeave empty to auto detectLeave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated.Link to QUIC.cloudList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.List the CSS selector that its style should be always contained in UCSS.Listed CSS files or inline CSS code will not be minified/combined.Listed JS files or inline JS code will not be deferred.Listed JS files or inline JS code will not be minified/combined.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CDNLiteSpeed Cache CrawlerLiteSpeed Cache DashboardLiteSpeed Cache Database OptimizationLiteSpeed Cache Edit .htaccessLiteSpeed Cache General SettingsLiteSpeed Cache Image OptimizationLiteSpeed Cache Network Cache SettingsLiteSpeed Cache Page OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache ToolboxLiteSpeed Cache plugin is installed!LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.LiteSpeed Crawler CronLiteSpeed OptimizationLiteSpeed ReportLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad Inline JSLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled.LocalizationLocalization FilesLocalization SettingsLocalize ResourcesLocalize external resources.Localized ResourcesLog CookiesLog File Size LimitLog ViewLog requested cookie values.Login CookieLow Quality Image PlaceholderMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManage CrawlerManually added to blacklistManually runMapMark this page as Maximum valueMaybe LaterMaybe laterMedia ExcludesMedia SettingsMessage from QUIC.cloud serverMethodMinify CSS files and inline CSS code.Minify HTML content.Minify JS files and inline JS codes.Minimum valueMissMobile Agent RulesMonthly archiveMore information about the available commands can be found here.More settingsMore settings available under %s menuNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network DashboardNetwork Enable CacheNew Developer Version Available!New Version Available!New developer version %s is available now.New release %s is available now.Next available request time: <code>After %s</code>No available Cloud Node.No available Cloudflare zoneNo backup of original file exists.No backup of unoptimized WebP file exists.No cloud services currently in useNo crawler meta file generated yetNo new image gathered.No optimizationNo spaces and case sensitive.No valid image found by Cloud server in the current request.No valid image found in the current request.No valid sitemap parsed for crawler.Non cacheableNon-`.js` file extensions will be ignored.Not AvailableNot BlacklistNot enough parameters. Please check if the domain key is set correctlyNoteNotesNoticeNotificationsNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge all pages.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge localized resource entries.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONORObjectObject CacheObject Cache SettingsObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One or more pulled images does not match with the notified image md5One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only log listed pages.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.OpenLiteSpeed users please check thisOperationOptimizationOptimization SettingsOptimization StatusOptimization SummaryOptimization ToolsOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimize images with our QUIC.cloud serverOptimized WebP file expired and was cleared.Optimized all tables.Option NameOptionalOptions saved.OrigOrig %sOrig saved %sOriginal URLsOriginal file reduced by %1$s (%2$s)Other checkboxes will be ignored.Our %s was not whitelisted.Outputs to WordPress debug log.PAYG BalancePage Load TimePage OptimizationPageSpeed ScorePagesPassedPasswordPasswordless LinkPath must end with %sPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will be forced to public cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Pay as You GoPay as You Go Usage StatisticsPersistent ConnectionPlease consult the host/server admin before making any changes.Please do NOT share the above passwordless link with anyone.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please try after %1$s for service %2$s.Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Predefined list will also be combined w/ the above settingsPrefetching DNS can reduce latency for visitors.Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPress the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.Press the %s button to use the most recent GitHub commit.Prevent Google Fonts from loading on all pages.Prevent any debug log of listed pages.Prevent any lazy load of listed pages.Prevent any optimization of listed pages.Previous request too recent. Please try again after %s.Previous request too recent. Please try again later.Previously existed in blacklistPrivatePrivate CachePrivate Cache HitsPrivate Cached URIsPrivate CachesPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPublic CachePublic Cache HitsPublic CachesPull Cron is runningPull ImagesPulled %d image(s)Pulled WebP image md5 does not match the notified WebP image md5.PurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge the LiteSpeed cache entries created by this pluginPurge the cache entries created by this plugin except for Critical CSS & LQIP cachesPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Purged!Pushed %1$s to Cloud server, accepted %2$s.QUIC.cloudQUIC.cloud CDNQUIC.cloud Service Usage StatisticsQuery strings containing these parameters will not be cached.Queue cleared successfully.Rate %s on %sRead LiteSpeed DocumentationRecommended valueRecommended value: 28800 seconds (8 hours).Redis Database IDRefresh Crawler MapRefresh Domain KeyRefresh Gravatar cache by cron.Refresh page load timeRefresh page scoreRemove CDN URLRemove Google FontsRemove Noscript TagRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove cookie simulationRemove from BlacklistRemove query strings from static resources.Removed backups successfully.Replace %1$s with %2$s.ReportReport dateReport numberRequest Domain KeyRequest WebP versions of original images when doing optimization.Request submitted. Please wait, then refresh the page to see approval notification.RequestedRequests in queueRescan New ThumbnailsRescaned %d images successfully.Rescaned successfully.Reset All SettingsReset SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Resources listed here will be copied and replaced with local URLs.Responsive PlaceholderResponsive Placeholder ColorResponsive Placeholder SVGResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restore from backupRestored original file successfully.Results can be checked in <a %s>Media Library</a>.Revisions Max AgeRevisions Max NumberRevisions newer than this many days will be kept when cleaning revisions.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerRunningSYNTAX: alphanumeric and "_".Save .htaccessSave ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Send to LiteSpeedSeparate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve StaleServe all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server IPServer Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.Set to %1$s to forbid heartbeat on %2$s.Setting Up Custom HeadersSettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Simulation SettingsSite URL to be served through the CDN. Beginning with %1$s. For example, %2$s.Site not recognized. Domain Key has been automatically removed. Please request a new one.Sitemap ListSitemap SettingsSitemap TimeoutSitemap TotalSitemap cleaned successfullySitemap created successfully: %d itemsSizeSize list in queue waiting for cronSmaller thanSome optimized image file(s) has expired and was cleared.Some themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify a base64 image to be used as a simple placeholder while images finish loading.Specify an HTTP status code and the number of seconds to cache that page, separated by a space.Specify an SVG to be used as a placeholder when generating locally.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, CSS/JS files are cached.Specify how long, in seconds, Gravatar files are cached.Specify how long, in seconds, REST calls are cached.Specify how long, in seconds, feeds are cached.Specify how long, in seconds, private pages are cached.Specify how long, in seconds, public pages are cached.Specify how long, in seconds, the front page is cached.Specify the %s heartbeat interval in seconds.Specify the backend .htaccess path.Specify the frontend .htaccess path.Specify the maximum size of the log file.Specify the number of most recent revisions to keep when cleaning revisions.Specify the password used when connecting.Specify the quality when generating LQIP.Specify the responsive placeholder SVG color.Specify the time to purge the "%s" list.Specify the timeout while crawling each URL.Specify the timeout while parsing the sitemap.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify time in seconds for the time between each run interval.Specify which HTML element attributes will be replaced with CDN Mapping.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStop loading WordPress.org emoji. Browser default emoji will be displayed instead.Storage OptimizationStore Gravatar locally.Store TransientsSummarySure I'd love to review!SwapSwitch back to using optimized images on your siteSwitched images successfully.Switched to optimized file successfully.Sync credit allowance with Cloud Server successfully.Sync data from CloudSystem InformationTTLTableTagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The POST callback to %s failed.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The above nonces will be converted to ESI automatically.The amount of time, in seconds, that files will be stored in browser cache before expiring.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The callback validation to your domain failed due to hash mismatch.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.The default login cookie is %s.The domain key is not correct. Please try to sync your domain key again.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The image compression quality setting of WordPress out of 100.The image list is empty.The latest data file isThe list will be merged with the predefined nonces in your local data file.The logs will be output to %s.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.The setting %s is currently enabled.The site is not registered on QUIC.cloud.Then another WordPress is installed (NOT MULTISITE) at %sThere are two reasons why we might not be able to communicate with your domain:There is a WordPress installed for %s.There is proceeding queue not pulled yet.There is proceeding queue not pulled yet. Queue info: %s.There was a problem with retrieving your Domain Key. Please click the %s button to retry.These images will not generate LQIP.These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.These settings are meant for ADVANCED USERS ONLY.This Month UsageThis action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve the page loading speed.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This option will remove all %s tags from HTML.This page is meant for advanced users.This process is automatic.This setting is overwritten by the Network settingThis setting is overwritten by the PHP constant %sThis setting is overwritten by the primary site settingThis setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all cached Gravatar filesThis will delete all generated critical CSS filesThis will delete all generated image LQIP placeholder filesThis will delete all localized resourcesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will drop the unused CSS on each page.This will enable crawler cron.This will export all current LiteSpeed Cache settings and save them as a file.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTime to execute previous requestTimeoutTo clear the outdated CSS/JS optimization data, please go to %s menu.To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To enable the following functionality, turn ON Cloudflare API in CDN Settings.To exclude %1$s, insert %2$s.To generate a passwordless link for LiteSpeed Support Team access, you must install %s.To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.To manage QUIC.cloud options, please visitTo match the beginning, add %s to the beginning of the item.To prevent %s from being cached, enter them here.To prevent filling up the disk, this setting should be OFF when everything is working.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.ToolToolboxTotalTotal ReductionTotal UsageTotal images optimized in this monthTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.Turn ON to control heartbeat in backend editor.Turn ON to control heartbeat on backend.Turn ON to control heartbeat on frontend.Turn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s.Tweet previewTweet thisUCSS Whitelist SelectorURI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUnexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)Unknown errorUpdate %s nowUpgradeUpgraded successfully.UsageUsage StatisticsUse %1$s in %2$s to indicate this cookie has not been set.Use %s API functionality.Use CDN MappingUse Front Page TTL for the Shop PageUse Network Admin SettingUse Optimized FilesUse Original FilesUse Primary Site ConfigurationUse QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.Use QUIC.cloud online service to generate unique CSS.Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.Use keep-alive connections to speed up cache operations.Use latest GitHub Dev commitUse latest GitHub Master commitUse latest GitHub commitUse latest WordPress release versionUse object cache functionality.Use original images (unoptimized) on your siteUse the format %1$s or %2$s (element is optional).Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.UsernameUsing optimized version of file. Value rangeVariables %s will be replaced with the configured background color.Variables %s will be replaced with the corresponding image properties.Vary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit My Dashboard on QUIC.cloudVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.WaitingWaiting for ApprovalWaiting for RefreshWaiting to be CrawledWant to connect with other LiteSpeed users?WarningWatch Crawler StatusWe are good. No table uses MyISAM engine.We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.WebPWebP Attribute To ReplaceWebP For Extra srcsetWebP file reduced by %1$s (%2$s)WebP saved %sWelcome to LiteSpeedWhat is a group?What is an image group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When disabling the cache, all cached entries for this site will be purged.When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.When this option is turned %s, it will also load Google Fonts asynchronously.Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.WooCommerceWooCommerce SettingsWordPress Image Quality ControlWordPress valid interval is %s secondsWordPress valid interval is %s seconds.WpW: Private Cache vs. Public CacheYearly archiveYou are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not.You can just type part of the domain.You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.You can request a maximum of %s images at once.You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.You can turn shortcodes into ESI blocks.You don't have enough quota for current service left this month.You have too many notified images, please pull down notified images first.You have too many requested images, please try again in a few minutes.You just unlocked a promotion from QUIC.cloud!You must click the %s button if you wish to associate this site with a QUIC.cloud account.You must have %1$s first before linking to QUIC.cloud.You will be unable to Revert Optimization once the backups are deleted!You will need to set %s to use the online services.Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPYour application is waiting for approval.Your domain has been forbidden from using our services due to a previous policy violation.Your server IP isZero, orcategoriescookiescurrently set to %se.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondspixelsprovide more information here to assist the LiteSpeed team with debugging.right nowrunningsecondstagsthe auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.user agentsPO-Revision-Date: 2021-02-01 22:33:24+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: es
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 hace %s Almacena en la caché el bloque ESI de la barra de administración incluida.Para esta acción se necesita la versión %2$s del plugin %1$s.%d hora%d horas%d minuto%d minutos%d segundosExtensión %sNo se puede leer el archivo %s.No se puede escribir el archivo %s.%s grupo%s grupos%s imagen%s imágenesSe recomienda %s aunque podría provocar la mayor cantidad de problemas en scripts que estén situados incrustados para evitar que se aplacen.Se recomienda %s.&laquo;&nbsp;Si tanto el cron como la ejecución manual se inician en momentos similares, el primero que se inicie tendrá prioridad.&raquo;(sin guardar)(no-optm)(optm)Ajustes de la ruta del .htaccess<a %s>Foro de soporte</a> | <a %s>Envía un ticket</a><a href="%1$s" %2$s>ver detalles de la versión %3$s</a> o <a href="%4$s" %5$s target="_blank">actualiza ya</a>.<b>Última indexación:</b> %s elemento(s)<p>Por favor añade/reemplaza los siguientes códigos al comiendo de %1$s:</p> %2$sHace falta una clave de dominio para usar los servicios online de QUIC.cloud.Un vaciado completo se iniciará cuando WordPress ejecute estos ganchos.Un TTL de 0 implica no cachear.Se guarda una copia de seguridad de cada imagen antes de optimizarla.APIAcelera la velocidad al almacenar en caché los gravatares (avatares reconocidos mundialmente).Añadir una nueva URL de la CDNAñadir una cookie nueva para simularAñadir a las lista negraAñade estilos a tus imágenes de carga diferidaSolo la IP del administradorIPs de administradorAvanzadoAjustes avanzadosEl nivel avanzado registrará más detalles.DespuésDespués de DOM readyDespués de que el servidor de optimización de imágenes de QUIC.cloud termine de optimizar, avisará a tu sitio para descargar las imágenes optimizadas.Después de que la caché funcione en general, por favor prueba el carrito.Todos los datos transitoriosTodas las categorías son cacheadas por defecto.Todas las páginasTodas las páginas con widget de Entradas recientesTodas las etiquetas son cacheadas por defecto.Permite a las IPs listadas (una por línea) ejecutar ciertas acciones desde sus navegadores.Vaciar siempre productos y categorías cuando cambie la cantidad o estado del inventario.Se puede utilizar un segundo parámetro opcional para especificar el control de la caché. Utiliza un espacio para separarCualquier cambio hecho al archivo .htaccess puede romper el sitio.Añade la cadena de consulta %s a los recursos para evitar esta acción.Clave del dominio solicitada correctamente. Por favor, espera el resultado. La clave de dominio se enviará automáticamente a tu WordPress.Aprobado¿Estás seguro de que quieres borrar todas las listas negras?¿Está seguro de destruir todas las imágenes optimizadas?¿Seguro que quieres vaciar todos los nodos cloud?¿Estás seguro de que quieres volver a detectar el servidor en la nube más cercano para este servicio?¿Está seguro de querer eliminar todas las copias de seguridad de imágenes?¿Seguro que quieres restablecer los ajustes a los valores por defecto?Archivo del AutorBorradores automáticosCron de obtención automáticaReglas de vaciado automático para publicación y actualizaciónCron de petición automáticaActualizar automáticamenteGenera automáticamente LQIP en segundo plano mediante una cola basada en el programador de tareas.Genera automáticamente CSS crítico en segundo plano mediante una cola basada en el cron.Elimina automáticamente las copias de seguridad de la imagen original tras recuperar las imágenes optimizadas.Solicitar automáticamente la optimización mediante un trabajo cron.La lista de avatares está en la cola esperando ser actualizadaRuta del .htaccess de la administraciónControl de heartbeat de la administraciónTTL de heartbeat de la administraciónBásicoMarcador de posición de imagen básicaAntesAntes de generar la clave, por favor, verifica que todas las IPs de esta lista estén en la lista blancaBeneficios de enlazar con una cuenta QUIC.cloudPruebas betaLista negraEn lista negraEn la lista negra debido a que no se puede cachearTanto %1$s como %2$s son aceptables.Pueden utilizarse tanto URLs completas como cadenas parciales.Se pueden usa cadenas parciales y completas.NavegadorCaché del navegadorAjustes de la caché del navegadorTTL caché de navegadorEl cacheo de navegador almacena archivos estáticos localmente en el navegador del usuario. Activa este ajuste para reducir peticiones repetidas a archivos estáticos.Por defecto, se utilizará un marcador de posición de imagen gris %s.Por su diseño, esta opción puede servir contenido rancio. No actives esta opción si no le parece bien.Saltadas %1$s imágenes duplicadas.CCSSCDNAncho de banda de la CDNAjustes de CDNURL de CDNURL de la CDN a utilizar. Por ejemplo, %sCombinar CSSCombinación de CSS externo e integradoExcluir CSSPush HTTP/2 de CSSMinificar CSSAjustes de CSSCaché CSS/JSTTL de caché CSS/JSCachéCachear barra de administradorCachear formulario de comentarioCachear comentaristasAjustes de control de cachéAcierto de cachéCachear usuarios con sesión iniciadaCachear página de accesoFallo de cachéCache móvilCachear recursos de PHPCachear API RESTEstadísticas de cachéEstado de cachéCachear wp-adminCachear favicon.icoCachear vistas móviles por separado.Cachear peticiones realizadas por llamadas de la API REST de WordPress.Almacena en la caché el bloque ESI del formulario de comentarios incluido.Cachear estas páginas puede mejorar el rendimiento de servidor al evitar llamadas PHP innecesarias.Cachear este recurso puede mejorar el rendimiento del servidor al evitar llamadas PHP innecesarias.Calcular el espacio en disco de las copias de seguridadCalcular almacenamiento original de imágenesCopias de seguridad calculadas correctamente.No se puede crear el directorio: %1$s. Error: %2$sCategoríaAjuste cambiado con éxito.Comprobar estadoComprobar mi IP pública desdeMarca esta opción para usar la configuración del sitio principal para todos los subsitios.Marcar esta opción forzará a la página de tienda a usar el ajuste de TTL de la página principal.Limpiar todoLimpiar el optimizador CSS/JSVaciar el mapa del rastreadorLimpiar datos no finalizadosLimpia todos los datos del optimizador CSS/JS correctamente.Borrar todos los borradores guardados automáticamenteBorrar todas las revisiones de entradasBorrar todos los comentarios spamLimpieza completa exitosa.Borrar todos los trackbacks y pingbacksBorrar todas las opciones de datos transitoriosLimpieza de todos los datos transitorios exitosa.Borrar todos los comentarios en la papeleraBorrar todas las entradas y páginas en la papeleraLimpieza de borradores automáticos exitosa.Borrar opciones de datos transitorios expiradosLimpieza de datos transitorios expirados exitosa.Limpieza de revisiones de entradas exitosa.Limpiar las revisiones más antiguas de %1$s día(s), excluyendo %2$s últimas revisionesLimpieza de comentarios no deseados exitosa.Limpieza de trackbacks y pingbacks exitosa.Limpieza de comentarios en papelera exitosa.Limpieza de páginas y entradas en papelera exitosa.Limpiados todos los archivos CSS críticos.Vaciados todos los archivos de Gravatar.Vaciados todos los archivos LQIP.Datos incompletos limpiados correctamente.Vaciar registroPurgadas %1$s imágenes no válidas.Borrar todas las entradas de caché relacionadas con este sitio, <i>incluyendo otras aplicaciones web</i>.Haz clic aquí para cambiarlo.Haz clic aquí para configurarlo.Haz clic aquí para los ajustesHaz clic para borrar todos los nodos para volver a detectar.Haz clic para cambiar a la versión optimizada.Haz clic para cambiar a la versión original (no optimizada).Error de la nubeCloudflareAPI de CloudflareLa API de Cloudflare está configurada en off.Caché de CloudflareDominio de CloudflareZona de CloudflareColapsar cadenas de peticionesCombina archivos CSS y código CSS integrado.Combina todos los archivos JS locales en un único archivo.Se admiten comentarios. Empieza una línea con un %s para convertirla en una línea de comentario. Comunicado con éxito con Cloudflare.¡Felicidades! Tu archivo ya ha sido optimizado¡Felicidades, todas reunidos!¡Felicidades, todas solicitadas!¡Felicitaciones, tu llave de dominio ha sido aprobada! La configuración ha sido actualizada en consecuencia.Prueba de conexiónConvertir a InnoDBConvertido a InnoDB correctamente.Nombre de la cookieSimulación de cookieValores de la cookieNo se ha podido encontrar %1$s en %2$s.Intervalo de indexaciónCrawlerCron del CrawlerAjustes generales del rastreadorAjustes de simulación del rastreadorAjustes de mapa del sitio del rastreadorEstado del rastreadorRastreador desactivado por el administrador del servidor.Rastreador(es)Los rastreadores no se pueden ejecutar de forma concurrente.Crear versiones WebPCrear una entrada, asegurarse que la página principal está actualizada.Creado con ❤️ por el equipo de LiteSpeed.Los créditos no son suficientes para proceder con la solicitud actual.CSS críticoReglas de CSS críticasNombre del CronContenidos actuales de %sNodos de la nube actual en servicioIPs del servidor en líneaEl servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectar.El servidor en la nube más cercano es %s.&#10; Haz clic para volver a detectarlo.El rastreador actual comenzó a lasEl límite actual esLa hora actual del servidor es %s.El rastreo del mapa del sitio actual comenzó a lasEl estado actual es %1$s desde %2$s.El estado actual es %s.Rastreador activoActualmente usando la versión optimizada del archivo WebP.Actualmente usando la versión optimizada del archivo.Actualmente usando la versión original (no optimizada) del archivo WebP.Actualmente usando la versión original (no optimizada) del archivo.Sitemap personalizadoAjustes de optimización de la BDPrefetch DNSControl del prefetch DNSNO EDITAR NADA EN %sArchivo diarioEscritorioBase de datosOptimizador de base de datosResumen de la base de datosConversor de motor de tabla de base de datosBase de datos a usarDía(s)Nivel de depuraciónRegistro de depuraciónAjustes de depuraciónURIs excluidas de la depuraciónURIs incluidas en la depuraciónPor defectoTTL por defecto del FeedTTL por defecto de la Página PrincipalTTL del código de estado de página por defectoTiempo de vida por defecto del objetoTTL por defecto de la caché privadaTTL por defecto de la caché públicaTTL por defecto de RESTTTL por defecto para objetos cacheados.Puerto por defecto de %1$s es %2$s.Valor por defectoDiferidoRetrasoBorrar todas las copias de seguridad de las imágenes originalesDestruir todos los datos de optimizaciónTodos los datos de optimización destruidos correctamente.Determina como los cambios en la cantidad de producto o estado del inventario afecta a las páginas de producto y sus páginas de categoría asociadas.Modo de desarrolloEl modo de desarrollo se desactivará automáticamente después de tres horas.El modo de desarrollo se desactivará automáticamente en %s.DesactivarDesactivar todas las característicasDesactuva el intervalo del heartbeat de WordPress para reducir la carga del servidor.DesactivadoArchivo WebP desactivado con éxito.Desactivar esto puede causar que las tareas de WordPress activadas por AJAX dejen de funcionar.Desactivar esta opción puede afectar negativamente al rendimiento.Desactivándolo se detendrá la tarea programada responsable de recuperar las imágenes optimizadas del servidor de imágenes en QUIC.cloudDescartarIgnorar ese avisoCategorías a no cachearCookies a no cachearGrupos a no cachearCadenas de consulta a no cachearNo cachear perfilesEtiquetas a no cachearURIs a no cachearUser Agents a no cachearNo vaciar las categorías al cambiar la cantidad o estado del inventario.Hacerlo puede reducir la contención de recursos y mejorar el rendimiento.DominioClave del dominioDiscordancia de clave de dominioQuitar dominio del mapa del sitioIgnorar cadenas de consultaArchivos de imagen duplicados ignoradosESINonces de ESIAjustes de ESIESI te permite designar partes de tu página dinámica como fragmentos diferentes que son combinados juntos para formar la página completa. En otras palabras,  ESI permite "hacer huecos" en una página, y rellenar dichos huecos con contenido que puede ser cacheado privadamente, cacheado públicamente con su propio TTL, o no cacheado.Muestra de ESI para desarrolaldoresEditar .htaccessHeartbeat del editorTTL de heartbeat del editorSe excluirán los elementos con el atributo %s en código html.Dirección de correo electrónicoVaciar la caché enteraVaciar lista negraActivar la funcionalidad %s de la API de la CDN.Activa cacheActivar ESIActivar reemplazo de WebP en %s elementos que fueron generados fuera de la lógica de WordPress.Activa esta opción si estás usando tanto HTTP como HTTPS en el mismo dominio y estás notando irregularidades en la caché.ActivadoArchivo WebP activado con éxito.Activar LiteSpeed Cache para WordPress aquí activa la caché para la red.Razón de finalizaciónMotorIntroduce la dirección IP de este sitio para permitir que los servicios en la nube llamen directamente a la IP en lugar de al nombre de dominio. Esto elimina la sobrecarga de búsquedas de DNS y CDN.Cada minutoEjemploEjemplo de uso:Ejemplos de pruebas incluyen:Excluir rutaAjustes de exclusiónExcluirDatos transitorios expiradosExportarAjustes de exportaciónFallidoFallo al hacer copia de seguridad del archivo %s, cambios cancelados.Fallo al comunicar con CloudflareFallo de comunicación con el servidor QUIC.cloudFallo al crear la tabla Avatar. Por favor, sigue la guía <a %s>creación de tablas, de la Wiki de LiteSpeed</a> para terminar la configuración.No se pudo crear la tabla Optimizador. Por favor, sigue la <a %s>Guía de creación de tablas del Wiki de LiteSpeed</a> para terminar la configuración.¡Fallo al crear la tabla %s! SQL: %s.Error al obtener contenido del archivo %s.Fallo en la solicitud desde WordPressFallo al actualizar.Error al escribir a %s.Uso de la cola rápidaNo se puede escribir el archivo %s.Archivo guardado.La edición de archivos está desactivada en la configuración.ArchivosEl filtro %s es compatible.El directorio no existe: %sEl directorio no es escribible: %s.Optimización de visualización de fuentesEn el caso de las URL con comodines, puede haber un retraso en el inicio del vaciado programado.Por ejemploPor ejemplo, %1$s define un TTL de %2$s segundos para %3$s.Por ejemplo, los %s pueden usarse para un marcador de posición transparente.Por ejemplo, para %s, %s y %s puede utilizarse aquí.Por ejemplo, para %s, %s puede utilizarse aquí.Por ejemplo, si todas las páginas del sitio tienen formato diferente introduce %s en la caja. Los archivos CSS críticos distintos de cada página del sitio se almacenarán.Por ejemplo, si la página de inicio de esta web se encuentra al %1$s, la página de la tienda puede encontrarse al %2$s.Por ejemplo, para quitar parámetros que comiencen con %s se puede usar aquí %s.Para que los servicios en línea funcionen correctamente, debes hacer una lista blanca de todas las IPs en línea del servidor.Por ello, por favor prueba el sitio para asegurar que todo sigue funcionando correctamente.Forzar URLs en cachéForzar URIs de caché púbicaForzar cronForzar cacheablesPágina de inicioRuta del .htaccess de la parte públicaControl de heartbeat de la parte públicaTTL de heartbeat de la parte públicaRecopilar datos de las imágenes%d recopiladas correctamente.Opciones generalesAjustes generalesGenerar CSS críticoGenerar CSS crítico en segundo planoGenerar LQIP en segundo planoGenerar el enlace para el usuario actualGenerar UCSSGenerar UCSS en segundo planoGenerar CSS único de fondo mediante la cola basada en cron.Generado en %sLos enlaces generados pueden gestionarse en los <a %s>Ajustes</a>.Obténla desde <a %1$s>%2$s</a>.Clave de API globalGrupos globalesIr al escritorio de QUIC.cloudIr a la lista de pluginsBuenas noticias del servidor QUIC.cloudGoogle reCAPTCHA se omitirá automáticamente.Caché de GravatarCron de la caché de GravatarTTL de la caché de GravatarGrupos cacheados a nivel de red.InvitadoAtributo HTML a reemplazarMinificar HTMLSolo orígenes HTTPSHeartbeatControl de HeartbeatCaché de páginas de alto rendimiento y optimización de sitio de LiteSpeedAciertoPágina de InicioHostCómo solucionar problemas causados por la optimización CSS/JS.Sin embargo, no hay manera de conocer todas las posibles personalizaciones implementadas.El htaccess no coincide con la opción de configuración.La regla de Htaccess es: %sYa he dejado una valoración¡Si %1$s es %2$s entonces debe completarse %3$s!Si está activada, se les mostrará a los visitantes una copia vieja de la página almacenada en caché hasta que haya una nueva copia disponible. Reduce la carga del servidor para las siguientes visitas. Si está apagado, la página se generará dinámicamente mientras los visitantes esperan.Si cada aplicación web utiliza la misma cookie, el servidor puede confundir si un usuario está logueado o no.Si no, por favor verifica el ajuste en la <a href="%1$s">pestaña Avanzado</a>.Si solo el sitio WordPress debe ser vaciado, usa «Vaciar todo».Si se establece a %1$s, antes de localizar el marcador de posición, se usará la configuración %2$s.Si se configura a %s esto se hace en segundo plano, lo que puede ralentizar la carga de la página.Si no se encuentra el nombre de la categoría, la categoría será eliminada de la lista al guardar.Si la cookie de acceso ha sido cambiada recientemente en los ajustes, por favor cierra sesión y vuelve a iniciarla.Si no se encuentra el slug de la etiqueta, la etiqueta será eliminada de la lista al guardar.Si tienes alguna pregunta, el equipo estará siempre feliz de responder cualquier pregunta en el <a %s>foro de soporte</a>.Si esto se fija en un número inferior a 30, los feeds no serán cacheados.Si se utiliza OpenLiteSpeed, el servidor debe reiniciarse una vez para que los cambios hagan efecto.Si utilizas varios dominios para un sitio y tienes varios dominios en el mapa del sitio, mantén esta opción APAGADA para que el rastreador sepa cómo rastrear cada dominio.Si experimentas algún problema, por favor menciona el número de informe en tu mensaje de soporte.Si cambias alguno de los ajustes de arriba a OFF, por favor, quita los tipos de archivo relacionados de la caja %s.Si no quieres la aceleración de litespeed, puedes desactivar este plugin.Si tu sitio incluye contenido público que solo ciertos perfiles de usuarios pueden ver, puedes especificar un grupo de variación para dichos perfiles de usuario. Por ejemplo, especificar un grupo de variación de administrador permite que haya una página cacheada públicamente personalziada para administradores (con enlaces de "editar", etc.), mientras que el resto de perfiles de usuario ven la página pública por defecto.Los marcos que contengan estos nombres de clase no serán cargados de forma diferida.Los iframes con estos nombres de clase padres no se cargarán de forma diferida.Ignorar ciertas cadenas de petición al cachear. (LSWS %s obligatorio)Grupos de imágenes preparadosInformación de imágenesOptimización de imágenesAjustes de optimización de imágenesResumen de la optimización de imágenesTamaños del grupo de imágenes en miniaturaReemplazo de imágenes WebPFaltan archivos de imágenesImágenes recuperadasImágenes solicitadasLas imágenes que contengan estos nombres de clases no tendrán carga diferida.Errores al obtener imágenesErrores al descargar imágenesImágenes fallidas con otros erroresLas imágenes que tengan estos nombres de clase de los padres no serán cargadas de forma diferida.Imágenes no solicitadasImágenes que aún no se han reunidoImágenes aún no solicitadasImágenes notificadas para descargarImágenes optimizadas y descargadasImágenes optimizadas anteriormenteImágenes solicitadasTotal imágenesLas imágenes serán descargadas automáticamente si la tarea cron si está ejecutando.Imágenes con metadatos erróneosImportarImportar / ExportarAjustes de importaciónImportación fallida debido a un error en el archivo.Importado con éxito el archivo de ajustes %s.Mejorar compatibilidad HTTP/HTTPSMejora la velocidad de wp-admin mediante caché. (Puede encontrar datos caducados)Mejorado porIncluir CSSIncluir tipos de archivoIncluir imágenesIncluir JSIncluye CSS externo y CSS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de CSS, que debería minimizar los errores potenciales causados por la combinación de CSS.Incluye JS externo y JS integrado en un archivo combinado cuando %1$s también está activado. Esta opción ayuda a mantener las prioridades de ejecución de JS, que debería minimizar los errores potenciales causados por la combinación de JS.Incluye la biblioteca integrada de JavaScript de carga diferida de imágenes.Directorios incluidosBiblioteca de CSS integrado asíncronoBiblioteca integrada de imágenes en carga diferidaInstalarInstalar %sInstalar la seguridad de DoLoginInstalar ahoraClic instantáneoIntervalo entre ejecucionesIP no válidaCookie de acceso no válida. Encontrados caracteres no válidos.Cookie de acceso no válida. Por favor, comprueba el archivo %s.Regla de reescritura no válidaRecomendamos <b>ENCARECIDAMENTE</b> probar la compatibilidad con otros plugins en uno o varios sitios primero.Se convertirá en un marcador de posición SVG base64 sobre la marcha.Combinar JSCombinación de JS externo e integradoDiferir JSExclusiones de diferido de JSExcluir JSPush HTTP/2 de JSMinificar JSAjustes de JSÚnete a la comunidad de Slack de LiteSpeedÚnete a nuestro SlackÚnete a la comunidad %s.Mantén esto apagado para usar marcadores de posición de color.LQIPCaché de LQIPGenerador de LQIP en la nubeExclusiones de LQIPDimensiones mínimas de LQIPCalidad de LQIPVista previa de la imagen LQIP para el tamaño %sNo se enviarán peticiones de LQIP para imágenes en las que tanto el ancho como la altura sean menores que estas dimensiones.LSCache¡Las funciones de la caché de LSCache en esta página no están disponibles en este momento!Los números más grandes generarán un marcador de posición de mayor calidad de resolución, pero resultarán en archivos más grandes que aumentarán el tamaño de la página y consumirán más puntos.Mayor queÚltima lecturaÚltima peticiónÚltimo cálculoHora de la última ejecución completa para todos los rastreadoresÚltima exportaciónÚltimo generadoÚltima importaciónÚltimo intervaloÚltima descarga iniciada por cron a las %s.Última ejecuciónÚltimo pedidoÚltimo coste solicitadoExclusiones de carga diferida de clases de iframesExclusiones de carga diferida de clases padre de iframesRetrasar la carga de iframesExclusión de nombres de clases para carga diferida de imágenesExclusiones de carga retrasada de imágenesExclusiones de carga diferida de clases padresRetrasar la carga de imágenesExclusión de URIs de carga diferidaLeer másAprender másDéjalo vacío para detectarlo automáticamenteDeja esta opción %1$s para permitir la comunicación con el servicio CCSS de QUIC.cloud. Si se establece en %2$s, no se generará el CSS crítico.Enlace a QUIC.cloudLista de User Agents móvilesLista tipos de contenido en los que cada elemento de ese tipo debería generar su propio CCSS.Lista el selector CSS cuyo estilo debería siempre contenerse en UCSS.Los archivos CSS de la lista o el código CSS integrado no se minimizarán o combinarán.Los archivos JS listados o el código JS integrado no serán diferidos.Los archivos JS de la lista o el código JS integrado no se minimizarán o combinarán.Las imágenes listadas no se cargarán de forma retrasada.LiteSpeed CacheCDN de la caché de LiteSpeedCrawler de LiteSpeed CacheEscritorio de LiteSpeed CacheOptimización de la base de datos de la caché de LiteSpeedEditar .htaccess LiteSpeed CacheAjustes generales de LiteSpeed CacheOptimización de imágenes de LiteSpeed CacheAjustes de la caché de la red de caché de LiteSpeedOptimización de página de LiteSpeed CacheVaciar toda la caché de LiteSpeedConfiguración de Caché de LiteSpeedCaja de herramientas de LiteSpeed¡El plugin LiteSpeed Cache está instalado!LiteSpeed Cache actualizado correctamente. NOTA: Debido a los cambios en esta versión, los ajustes %1$s y %2$s han sido DESACTIVADOS. Por favor, vuelve a activarlos manualmente y verifica que el diseño de tu sitio es correcto y que no tienes errores de JS.Cron del rastreador de LiteSpeedOptimización de LiteSpeedInforme de LiteSpeedLiteSpeed TechnologiesCargar CSS asíncronamenteCargar Google Fonts asíncronamenteCargar JS integradoDeferir carga de JSCargar iframes sólo cuando entran en la ventana de visualización.Cargar las imágenes sólo cuando entran en la ventana de visualización.Cargar el JS incrustado después de que esté totalmente cargado el DOM puede mejorar la compatibilidad con JS y reducir errores de JS cuando están activas otras características de optimización de JS.LocalizaciónArchivos de idiomasAjustes de localizaciónRecursos localizadosLocalizar recursos externos.Recursos localizadosRegistrar cookiesLímite de tamaño de archivo de registroVista de registrosRegistra los valores solicitados de las cookies.Cookie de accesoMarcador de imagen de baja calidadMBDEBE SER DIFERENTE DE OTRAS APLICACIONES WEB.GestionarGestionar el rastreadorAñadido manualmente a la lista negraEjecutar manualmenteMapaMarcar esta página como Valor máximoPuede que más tardeQuizás más tardeExclusiones de mediosAjustes de mediosMensaje del servidor QUIC.cloudMétodoMinimiza archivos CSS y código CSS integrado.Minificar contenido HTML.Minimiza archivos JS y códigos JS integrados.Valor mínimoFalloReglas de agente móvilArchivo mensualAquí se puede encontrar más información sobre los comandos disponibles.Más ajustesMás ajustes disponibles en el menú %sNOTAAVISOAVISO:AVISO: La cookie de inicio de sesión de la base de datos no coincide con tu cookie de inicio de sesión.Escritorio de redHabilitar caché de red¡Nueva versión para desarrolladores disponible!¡Nueva versión disponible!La nueva versión de desarrollo %s está disponible.La nueva versión %s está disponible ahora.Próximo tiempo de solicitud disponible: <code>Después de %s</code>No hay ningún nodo de la nube disponible.No hay disponible una zona CloudflareNo existe una copia de seguridad del archivo original.No existe una copia de seguridad del archivo WebP no optimizado.No hay servicios de la nube en usoArchivo meta del crawler aún no generadoNo se ha reunido ninguna imagen nueva.Sin optimizaciónEspacios no permitidos y sensible a mayúsculas.El servidor en la nube no ha encontrado ninguna imagen válida por en la petición actual.No se ha encontrado ninguna imagen válida en la petición actual.No se ha analizado ningún mapa del sitio válido para el rastreador.No cacheableSerán ignorados los archivos que no tengan la extensión `.js`.No disponibleNo está en la lista negraNo hay suficientes parámetros. Por favor, comprueba si la clave del dominio está establecida correctamenteNotaNotasNotaAvisosAvisado a Cloudflare el vaciado completo con éxito.Avisado a Cloudflare la configuración del modo de desarrollo a %s con éxito.Solicitado el vaciado de entradas CSS/JS al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed el vaciado de todas las entradas de LSCache.Solicitado el vaciado de todas las páginas al servidor web LiteSpeed.Solicitado el vaciado de las páginas de error al servidor web LiteSpeed.Solicitado el vaciado de todo al servidor web LiteSpeed.Solicitado el vaciado de los registros de recursos localizados al servidor web LiteSpeed.Solicitado al servidor web LiteSpeed el vaciado de la página de inicio.Solicitado el vaciado de la lista al servidor web LiteSpeed.OFFONOObjetoCaché de objetosAjustes de la caché de objetosLa caché de objetos no está activada.Una vez guardado, coincidirá con la lista actual y se completará automáticamente.Una o más de las imágenes recuperadas no coincide con el md5 de imagen notificadoUna por línea.Solo los atributos aquí listados serán reemplazados.Solo disponible cuando está instalado %s.Solo activarlo para AMP o diseño/contenido específico para móviles, no  para sitios adaptables.Solo los archivos en estos directorios apuntarán a la CDN.Solo registra las páginas listadas.Solo pulsar el botón si la tarea cron de descarga está desactivada.Caché opcodeLa caché opcache no está habilitada.Marca esto si eres un usuario de OpenLiteSpeedOperaciónOptimizaciónAjustes de optimizaciónEstado de optimizaciónResumen de optimizaciónHerramientas de optimizaciónOptimiza la entrega de CSS.Optimizar sin pérdidaOptimizar imágenes originalesOptimizar tablasOptimizar todas las tablas en tu base de datosOptimiza imágenes y guarda copias de seguridad de los originales en la misma carpeta.Optimizar imágenes usando compresión sin pérdida.Optimiza las imágenes con nuestro servidor en QUIC.cloudEl archivo WebP optimizado caducado ha sido limpiado.Optimizadas todas las tablas.Nombre de la opciónOpcionalLas opciones han sido guardadas.OriginalOriginal %sAhorrados %s del originalURLs originalesArchivo original reducido en %1$s (%2$s)Otras opciones serán ignoradas.Nuestro %s no estaba en la lista blanca.Se muestra en el registro de depuración de WordPress.Balance de pagosTiempo de carga de la páginaOptimización de páginaPuntuación de PageSpeedPáginasExitosoContraseñaEnlace sin contraseñaLa ruta debe terminar en %sLas rutas que contengan estas cadenas se cachearán independientemente de los ajustes de no cacheables.Las rutas que contengan estas cadenas serán forzadas a ser almacenados públicamente sin tener en cuenta los ajustes de no-cacheable.Las rutas que contengan estas cadenas no serán cacheadas.Las rutas que contengan las siguientes cadenas no se servirán desde el CDN.Pago por usoEstadísticas pago por usoConexión persistentePor favor consulta con del administrador del host/servidor antes de hacer cualquier cambio.Por favor, NO compartas con nadie el enlace de acceso sin contraseña anterior.Por favor, activa LiteSpeed Cache en los ajustes del plugin.Por favor, activa el módulo LSCache en el servidor, o pídeselo a tu proveedor de alojamiento.Por favor, consulta <a %s>Hooking WP-Cron Into the System Task Scheduler</a> para aprender cómo crear la tarea en el programador de tareas del sistema.Por favor, prueba a fondo al activar cualquier opción de esta lista. Después de cambiar ajustes de minimización/combinación, por favor realiza una acción «Vaciar todo».Por favor, inténtalo después de %1$s para el servicio %2$s.Por favor, verifica que tus otros plugins no estén bloqueando las llamadas a la REST API, añade a lista blanca las IPs de nuestro servidor o contacta con el administrador de tu servidor para obtener ayuda.Por favor, visita la página de <a %s>Información</a> sobre como probar la caché.PuertoID de entradaRevisiones de entradasArchivo de tipo de contenidoPre-enviar archivos CSS internos al navegador antes de que sean solicitados. (Requiere del protocolo HTTP/2)Pre-enviar archivos JS internos al navegador antes de que sean solicitados. (Requiere del protocolo HTTP/2)La lista predefinida también se combinará con los ajustes anterioresLa precarga DNS puede reducir la latencia para los visitantes.Preservar datos EXIF (copyright, GPS, comentarios, palabras clave, etc) al optimizar.Conservar los datos EXIF/XMPPulsa el botón %s para detener la prueba beta y volver a la versión actual del directorio de plugins de WordPress.Presiona el botón %s para usar el commit más reciente de GitHub.Evita que cargue Google Fonts en todas las páginas.Evita cualquier registro de depuración de las páginas listadas.Evita cualquier carga diferida de las páginas de la lista.Evitar cualquier optimización de las páginas listadas.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo después de %s.La solicitud anterior es demasiado reciente. Por favor, inténtalo de nuevo más tarde.Anteriormente existía en la lista negraPrivadaCaché privadaAciertos de caché privadaURIs cacheadas privadamenteCachés privadasCaché privadaCachear carrito privadamenteCachear carrito privadamente cuando no esté vacío.Cachear privadamente a los usuarios con comentarios pendientes. Desactivar esta opción servirá páginas no-cacheables a los comentaristas. (LSWS %s requerido)Cachear privadamente páginas del sitio para usuarios con sesión iniciada. (LSWS %s requerido)Intervalo de actualización de productoPúblicaCaché públicaAciertos de caché públicaCachés públicasPull Cron se está ejecutandoDescargar imágenes%d imagen(es) obtenida(s)El md5 de la imagen WebP recuperada no coincide con el md5 notificado de la imagen WebP.VaciarVaciar error %sVaciar error 500Purgar todoVaciar todos los ganchosVaciar todo al actualizarVaciar por...Vaciar todoVaciar la página de inicioVaciar listaVaciar páginasAjustes del vaciadoVaciar y limpiar todos los datos CSS/JS minimizados o combinadosVació de todas las cachés de objetos correctamente.Vaciar todas las cachés de objetosVaciar las categorías solo cuando el estado del inventario cambie.Vaciar la categoría %sVaciar páginas de error, incluyendo páginas %sVaciar páginas de error, incluyendo páginas 500Vaciar las páginas por nombre de categoría: p. ej. %2$s debe ser usado por la URL %1$s.Vaciar páginas por ID de entrada.Vaciar páginas por URL completa o relativa.Vaciar páginas por etiqueta: p. ej. %2$s debe ser usado para la URL %1$s.Vaciar productos y categorías solo cuando cambie el estado del inventario.Vaciar los productos con los cambios de cantidad o estado del inventario.Vaciar los productos solo cuando cambie el estado del inventario.Vaciar la etiqueta %sVacía las entradas de caché de LiteSpeed creadas por este pluginVacía las entradas de la caché creadas por este plugin, excepto las cachés críticas de CSS y LQIPVaciar esta páginaVaciar la URL %s¡Se ha vaciado todo!Vaciado de todas las cachés correctamente.¡Se ha vaciado el blog!¡Se ha vaciado la URL!¡Purgado!%1$s enviado al servidor en la nube, %2$s aceptado.QUIC.cloudCDN de QUIC.cloudEstadísticas de uso del servicio QUIC.cloudLas cadenas de consulta que contengan estos parámetros no se almacenarán en la caché.Cola vaciada correctamente.Valora %s en %sLeer la documentación de LiteSpeedValor recomendadoValor recomendado: 28800 segundos (8 horas).ID de base de datos RedisRecargar el mapa del rastreadorActualizar la clave del dominioRefrescar la caché de Gravatar por cron.Actualizar el tiempo de carga de la páginaActualizar la puntuación de la páginaEliminar la URL de la CDNEliminar Google FontsEliminar la etiqueta NoscriptEliminar copias de seguridad del orginalEliminar copias de seguridad de las imágenes originalesEliminar query stringsEliminar emojis de WordPressEliminar todos los resultados/peticiones de optimización de imágenes previos, revertir optimizaciones completadas, y eliminar todos los archivos de optimización.Eliminar todas las peticiones de optimización de imágenes anteriores sin terminar.Eliminar la simulación de la cookieEliminar de la lista negraEliminar query strings de recursos estáticos.Copias de seguridad eliminadas correctamente.Reemplaza %1$s con %2$s.InformeFecha de informeNúmero de informeSolicitar clave de dominioSolicita versiones WebP de las imágenes originales al hacer la optimización.Solicitud enviada. Por favor, espera y luego refresca la página para ver el aviso de aprobación.SolicitadoPeticiones en colaReexaminar nuevas miniaturas%d imágenes reexploradas correctamente.Reexploración correcta.Restablecer todos los ajustesRestablecer ajustesReestablecer posiciónRestablecimiento realizado con éxito.Reestablecer toda la caché opcodeReestablecida la caché opcache con éxitoDatos de optimización restablecidos correctamente.Los recursos listados aquí se copiarán y reemplazarán con URL locales.Marcador de posición adaptableColor del marcador de posición adaptableMarcador de posición SVG adaptableLos marcadores de posición de imagen pueden ayudar a reducir la recolocación de la estructura cuando se cargan las imágenes.Restaurar desde la copia de seguridadArchivo original restaurado con éxito.Los resultados pueden comprobarse en <a %s>Biblioteca de medios</a>.Edad máxima de las revisionesNúmero máximo de revisionesLas revisiones más recientes se guardarán cuando se limpien las revisiones.Excluir perfilesSimulación de rolDuración de la ejecuciónFrecuencia de ejecuciónEjecutar la cola manualmenteLa frecuencia de ejecución está fijada por el ajuste de Intervalo entre ejecuciones.Hora de ejecución para el rastreador anteriorEn cursoSINTAXIS: alfanumérico y "_".Guardar .htaccessGuardar cambiosGuarda datos transitorios en la base de datos cuando %1$s es %2$s.GuardadoBuscar nuevos tamaños de miniaturas de imágenes no optimizadas y reenviar las solicitudes de optimización de imágenes necesarias.Hora de vaciado programadoURLs de vaciado programadoVer <a %s>Introducción para activar el Crawler</a> para información detallada.Selecciona «Todo» si hay widgets dinámicos enlazados a entradas en páginas distintas de la portada o página de inicio.Selecciona debajo las opciones de «Vaciar por».Seleccione solo los tipos de archivos que se utilicen actualmente, los otros se pueden dejar desmarcados.Selecciona que páginas serán vaciadas automáticamente cuando las entradas sean publicadas o actualizadasLos perfiles seleccionados serán excluidos de todas las optimizaciones.Los perfiles seleccionados serán excluidos de la caché.Enviar solicitud de optimizaciónEnviar este informe a LiteSpeed. Menciona este número de informe al publicar en el foro de soporte de WordPress.Enviar a LiteSpeedTipos de contenido de caché de CCSS distintosDistintas URIs de caché CCSSSepara archivos CSS críticos al generar las rutas que contengan estas cadenas.Servir contenido rancioServir todos los archivos CSS a través de la CDN. Esto afectará a todos los archivos CSS en cola de WordPress.Servir todos los archivos JS a través de la CDN. Esto afectará a todos los archivos JS en cola de WordPress.Servir todos los archivos de imágenes a través de la CDN. Esto afectará a todos los adjuntos, etiquetas html %s, y atributos CSS %s.IP del servidorLímite de carga del servidorValor máximo permitido por el servidorValor mínimo permitido por el servidorValor forzado por el servidorVariable(s) del servidor %s disponible para omitir este ajuste.Configura esto para añadir %1$s a todas las reglas de %2$s antes de guardar en caché el CSS para especificar cómo deben mostrarse las fuentes mientras se descargan.Ponlo en %1$s para bloquear heartbeat en %2$s.Configurar cabeceras personalizadasAjustesAcortar cadenas de peticiones en el registro de depuración para mejorar la legibilidad.Mostrar estado del CrawlerMejora significativamente el tiempo de carga reemplazando imágenes con sus versiones %s optimizadas.Ajustes de simulaciónURL del sitio a servir a través de la CDN. Empezando con %1$s. Por ejemplo, %2$s.Sitio no reconocido. La clave del dominio se ha eliminado automáticamente. Por favor, solicita una nueva.Lista del mapa del sitioAjustes del mapa del sitioTimeout del mapa del sitioTotal del mapa del sitioEl mapa del sitio se limpió con éxitoMapa del sitio creado con éxito: %d elementosTamañoTamaño de la lista en la cola de espera del cronMás pequeño queUna o más imágenes optimizadas han caducado y han sido borradas.Algunos temas y plugins añaden recursos mediante una petición PHP.Comentarios spamEspecifica el número de hilos a utilizar durante la indexación.Especifica una imagen base64 que se usará como un sencillo marcador de posición mientras terminan de cargarse las imágenes.Especifica un código de estado HTTP y el número de segundos que almacenar esa página en caché, separados por un espacio.Especifica un SVG que se utilizará como marcador de posición al generar localmente.Especifica reglas CSS críticas para contenido de la mitad superior de la página al activar %s.Especifica tras cuanto tiempo el Crawler debe indexar el sitemap entero de nuevo.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos CSS/JS.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché los archivos de Gravatar.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las llamadas REST.Especifica por cuanto tiempo, en segundos, se cachean los feeds.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas privadas.Especifica durante cuánto tiempo, en segundos, se almacenan en la caché las páginas públicas.Especifica cuánto tiempo, en segundos, se almacena la página de inicio.Especifica el intervalo de heartbeat para %s en segundos.Especifica la ruta del escritorio en el .htaccess.Especifica la ruta de la vista pública en el .htaccess.Especifica el tamaño máximo del archivo de registro.Especifica el número de revisiones más recientes que se deben guardar al limpiar las revisiones.Especifica la contraseña utilizada al conectar.Especifica la calidad al generar el LQIP.Especifica el color del marcador de posición SVG adaptable.Especifica la hora para vaciar la lista «%s».Especifica el tiempo de espera mientras se rastrea cada URL.Especifica el tiempo límite de procesamiento del mapa del sitio.Especifica un tiempo en microsegundos para el retardo entre peticiones durante la indexación.Especifica un tiempo en segundos para la duración del intervalo de indexación.Especifique el tiempo en segundos para el tiempo entre cada intervalo de ejecución.Especificar qué atributos de elementos HTML serán reemplazados por mapeo CDN.Especificar que atributos de elementos serán reemplazados con WebP.Enlaces de tipo de archivo estático que se reemplazarán con enlaces a la CDN.EstadoDeja de cargar los emojis de WordPress.org. En su lugar, se mostrarán los emoji por defecto del navegador.Optimización de almacenamientoAlmacenar los gravatares localmente.Almacenar datos transitoriosSumario¡Por supuesto, me encantará valorarlo!IntercambiarVolver a utilizar imágenes optimizadas en tu webImágenes cambiadas correctamente.Cambio correcto a archivo optimizado.Se ha sincronizado la asignación de créditos correctamente con el servidor en la nube.Sincronizar los datos de la nubeInformación del sistemaTTLTablaEtiquetaOmite temporalmente la caché de Cloudflare. Esto permite cambios en el servidor de origen para que se vea en tiempo real.Archivo de término (incluye categoría, etiqueta y taxonomía)¡Gracias por usar el plugin de caché LiteSpeed!La opción de IP de administrador solo mostrará mensajes de registro en peticiones desde IPs de administradores.El plugin LiteSpeed Cache se utiliza para cachear páginas - una manera simple de mejorar el rendimiento del sitio.La llamada POST a %s falló.La URLs aquí (una por línea) serán vaciadas automáticamente a la hora establecida en la opción «%s».Las URLs serán comparadas con la variable REQUEST_URI del servidor.Los nonces anteriores se convertirán en ESI automáticamente.La cantidad de tiempo, en segundos, que los archivos se almacenarán en la caché del navegador antes de caducar.La caché necesita distinguir quien esta logueado en cada sitio de WordPress a fin de cachear correctamente.Ha fallado la validación de la llamada a tu dominio debido a la falta de coincidencia del hash.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores.Ha fallado la validación de la devolución de llamada a tu dominio. Por favor, asegúrate de que no hay un cortafuegos bloqueando nuestros servidores. Código de respuesta: La cookie aquí establecida será usada por esta instalación de WordPress.El crawler puede utilizar tu sitemap de Google en lugar del suyo propio. Introduce la URL completa de tu sitemap aquí.La característica de crawler no está activada en el servidor LiteSpeed. Por favor, consulta al administrador del servidor.El rastreador analizará el mapa del sitio y lo guardará en la base de datos antes de rastrear. Al analizar el mapa del sitio, si se deja caer el dominio se puede ahorrar almacenamiento en la base de datos.La base de datos se ha ido actualizando en segundo plano desde %s. Este mensaje desaparecerá una vez que la actualización se haya completado.La cookie de acceso por defecto es %s.La clave del dominio no es correcta. Por favor, intenta sincronizar de nuevo tu clave de dominio.El informe de entorno contiene información detallada sobre la configuración de WordPress.Las siguientes opciones están seleccionadas, pero no son editables en esta página de ajustes.El ajuste de calidad de compresión de imágenes de WordPress, de 0 a 100.La lista de imágenes está vacía.El último archivo de datos esLa lista se fusionará con los nonces predefinidos en tu archivo de datos local.Los registros serán enviados a %s.La carga media permitida como máximo en el servidor durante la indexación. El número de hilos en uso del crawler será reducido activamente hasta que la carga media del servidor baje de este límite. Si esto no es posible con un solo hilo, el proceso de indexación actual será terminado.El administrador de red seleccionó las configuraciones del sitio primario para todos los subsitios.El ajuste de administrador de red puede ser modificado aquí.La siguiente indexación de sitemap completa empezará a lasEl servidor determinará si el usuario tiene sesión iniciada en base a la existencia de esta cookie.En este momento, el ajuste %s está activado.El sitio no está registrado en QUIC.cloud.Y otro WordPress instalado (NO MULTISITIO) en %sHay dos razones por las que no podemos comunicarnos con tu dominio:Hay un WordPress instalado para %s.Hay una cola de procedimiento que no se ha retirado todavía.La cola aún no ha sido recuperada. Información de la cola: %s.Hay un problema al recibir tu clave de dominio. Por favor, haz clic en el botón %s para volver a intentarlo.Estas imágenes no generarán LQIP.Estas opciones solo están disponibles con LiteSpeed Enterprise Web Server o QUIC.cloud CDN.Estos ajustes están pensados SOLO PARA USUARIOS AVANZADOS.El uso de este mesEsta acción solo debe ser usada si las cosas se están almacenando en caché incorrectamente.Esto se puede gestionar desde <a %2$s>%1$s</a>.Esto puede ser predefinido en %2$s así como usando las constantes %1$s, tomando prioridad con esta configuración.Esto puede mejorar el tiempo de carga de la página reduciendo las peticiones HTTP iniciales.Esto puede mejorar la calidad, pero puede dar como resultado imágenes más grandes que la compresión con pérdida.Esto puede mejorar la velocidad de carga de la página.Esto puede mejorar tu puntuación de velocidad en servicios como Pingdom, GTmetrix y PageSpeed.Esto es irreversible.Esto es para asegurar compatibilidad antes de activar la caché para todos los sitios.Esto puede causar una alta carga en el servidor.Este mensaje indica que el plugin fue instalado por el administrador del servidor.Esta opción solo funciona si %1$s está en %2$s.Esta opción eliminará todas las etiquetas %s del HTML.Esta página está pensada para usuarios avanzados.Este proceso es automático.Los ajustes de red sobreescriben este ajusteEste ajuste es sobrescrita por la constante %s de PHPEsta ajuste es sobrescrito por los ajuste del sitio primarioEste ajuste es útil para aquellos con multiples aplicaciones web en un mismo dominio.Este ajuste editará el archivo .htaccess.Este sitio utiliza sistemas de caché para facilitar un tiempo de respuesta más rápido y una mejor experiencia de usuario. El cacheado potencialmente almacena una copia duplicada de cada página web que se muestra en este sitio. Todos los archivos de caché son temporales, y nunca son accedidos por ninguna tercera parte, salvo cuando necesario para obtener soporte técnico del proveedor del plugin de caché. Los archivos de caché expiran en una programación establecida por el administrador del sitio, pero pueden ser fácilmente vaciados por el administrador antes de su expiración natural, si fuese necesario.Esto vaciará solo la página principalEsto solo vaciará las páginasEsto afectará a todas las etiquetas que conteniendo los atributos: %s %s %s.Esto también agregará un preconnect a Google para descarga más rápida de las fuentes.Esto también generará una clave de API del servidor de LiteSpeed.Esto eliminará TODO dentro de la caché.Esto borrará todos los archivos Gravatar almacenados en cachéEsto borrará todos los archivos generados de CSS críticoEsto borrará todos los archivos generados de marcador de posición de imágenes LQIPEsto borrará todos los recursos localizadosEsto desactivará LSCache y todas las características de optimización con propósitos de depuración.Esto desactivará la página de ajustes en todos los subsitios.Esto eliminará el CSS no usado en cada página.Esto activará el cron rastreador.Esto exportará todos los ajustes actuales de LiteSpeed Cache y los guardará como un archivo.Esto generará peticiones extra al servidor, lo cual aumentará la carga del servidor.Esto generará el marcador de posición con las mismas dimensiones que la imagen si tiene los atributos de ancho y alto.Esto importará ajustes desde un archivo y sobreescribirá todos los ajustes de LiteSpeed Cache actuales.Esto aumentará el tamaño de los archivos optimizados.Esto integrará la biblioteca CSS asíncrona para evitar el bloqueo de renderizado.Esto vaciará solo las entradas CSS/JS minimizadas o combinadasEsto restablecerá todos los ajustes a su valores predeterminados.HilosTiempo para ejecutar la solicitud anteriorTimeoutPara vaciar los datos obsoletos de optimización CSS/JS, por favor, ve al menú %s.Para rastrear una cookie en particular, introduce el nombre de la cookie y los valores que deseas rastrear. Los valores deben ser uno por línea y pueden incluir una línea en blanco. Se creará un rastreador por cada valor de cookie, por cada perfil simulado.Para rastrear el sitio como usuario conectado introduce los ids de usuario a imitar.Para definir un TTL personalizado añade un espacio seguido por el valor de TTL Al final de la URI.Para coincidencias exactas, añadir %s al final de la URL.Para activar la siguiente funcionalidad, activa la API de Cloudflare en la configuración de la CDN.Para excluir %1$s, insertar %2$s.Para generar un enlace de acceso sin contraseña para el equipo de soporte de LiteSpeed, debes instalar %s.Para conceder acceso a la administración de WP al equipo de soporte de LiteSpeed, por favor, genera un enlace sin contraseña para el usuario conectado actual para enviarlo con el informe.Para asegurarnos de que nuestro servidor puede comunicarse con el tuyo sin problemas y todo funciona bien, para las pocas primeras solicitudes la cantidad de imágenes permitidas en una sola petición es limitada.Para gestionar las opciones de QUIC.cloud, visitaPara que coincida con el principio, añade %s al comienzo del artículo.Para evitar que los %s sean almacenados en la caché, introdúcelos aquí.Para evitar que se llene el disco, este ajuste debe estar APAGADO cuando todo funcione.Para aleatorizar el hostname de la CDN, define multiples hostnames para los mismos recursos.Para probar el carrito, visita la <a %s>FAQ</a>.Para poder usar las funciones de cache debes tener un servidor LiteSpeed o estar usando la la CDN QUIC.cloud.HerramientaHerrramientasTotalReducción totalUso totalTotal de imágenes optimizadas en este mesTrackbacks/pingbacksComentarios enviados a la papeleraEntradas enviadas a la papeleraProbar versión de GitHubAjustarConfiguración de ajustesAPAGARENCENDERActívalo para almacenar en la caché las páginas públicas para los usuarios conectados y muestra la barra de administración y el formulario de comentarios mediante bloques ESI. Estos dos bloques no serán almacenados en la caché, salvo que se active a continuación.Actívalo para controlar heartbeat en el editor.Actívalo para controlar heartbeat en el escritorio.Enciéndelo para controlar heartbeat en las páginas públicas.Activar la actualización automáticaActiva esta opción para que LiteSpeed Cache se actualice automáticamente cuando se publique una nueva versión. Si está desactivada, tendrás que actualizar manualmente como de costumbre.Activa esta opción para mostrar automáticamente las últimas noticias, incluyendo correcciones de fallos, nuevas versiones, versiones beta disponibles y promociones.%1$s este ajuste si usas una red de entrega de contenido (CDN). NOTA: QUIC.cloud CDN y Cloudflare no usan la asignación CDN. Si solo usas QUIC.cloud o Cloudflare, deja este ajuste en %2$s.Vista previa del tweetTuitea estoSelector de lista banca de UCSSURL excluidasLas rutas de URI que contengan estas cadenadas NO serán cacheadas como públicas.URLLista de URLs en cola esperando el cronSe ha encontrado una regla inesperada de la caché %2$s en el archivo %1$s. Esta regla puede hacer que los visitantes vean las versiones anteriores de las páginas debido a que el navegador almacena en la caché las páginas HTML. Si estás seguro de que las páginas HTML no están siendo almacenadas en la caché del navegador, puedes ignorar este mensaje. (<a %3$s>Más Información</a>)Error desconocidoActualizar %sActualizarActualizado con éxito.UsoUso de las estadísticasUsa %1$s en %2$s para indicar que esta cookie no ha sido establecida.Usar la funcionalidad de la API %s.Usar mapeo de CDNUsar TTL de la página principal para la página de tiendaUsar ajuste de administrador de redUsar archivos optimizadosUsar archivos originalesUsar configuración del sitio principalUsa el servicio generador de marcadores de posición de imágenes de baja calidad (LQIP) de QUIC.cloud para obtener vistas previas de la imagen mientras se carga.Usar el servicio en línea QUIC.cloud para generar CSS único.Utiliza la biblioteca del cargador de fuentes web para cargar asíncronamente Google Fonts, dejando el resto del CSS intacto.Utilizar conexiones keep-alive para acelerar operaciones de la caché.Usar el último commit de desarrollo de GitHubUsar el último commit maestro de GitHubUsar el último commit de GitHubUsar la última versión de WordPressUsar la funcionalidad de la caché de objetos.Usar imágenes originales (no optimizadas) en tu webUsa el formato %1$s o %2$s (el elemento es opcional).Utiliza esta sección para cambiar la versión del plugin. Para hacer una prueba beta de un commit de GitHub, introduce la URL del commit en el campo de abajo.Nombre de usuarioUsando la versión optimizada del archivo. Rango de valoresLas variables %s serán reemplazadas por el color de fondo configurado.Las variables %s serán reemplazadas por las correspondientes propiedades de la imagen.Grupos de variaciónVer detalles de la versión %2$s de %1$sVisita el foro de soporte de LSCWPVisitar «Mi Escritorio» en QUIC.cloudVisitar el sitio sin la sesión iniciada.ADVERTENCIAADVERTENCIA: La cookie de acceso del .htaccess y la cookie de acceso de la base de datos no coinciden.En esperaEsperando aprobaciónEsperando a la recargaEsperando a ser rastreado¿Quieres conectar con otros usuarios de LiteSpeed?AdvertenciaVer estado del CrawlerEstamos bien. Ninguna tabla usa el motor MyISAM.Estamos trabajando duro para mejorar tu experiencia de servicio online. El servicio no estará disponible mientras trabajamos. Sentimos cualquier inconveniente.WebPAtributo WebP a reemplazarWebP para src extraArchivo WebP reducido en %1$s (%2$s)WebP guardado %sBienvenido a LiteSpeed¿Qué es un grupo?¿Qué es un grupo de imágenes?Cuando un visitante pasa el cursor sobre un enlace a una página, precarga esa página. Esto acelera la visita a ese enlace.Al desactivar la caché, todas las entradas almacenadas en caché de este sitio serán vaciadas.Al activarlo, la caché se vaciará automáticamente cuando cualquier plugin, tema o el núcleo de WordPress sea actualizado.Cuando esta opción se cambia a %s, también se cargan de forma asíncrona las fuentes de Google.Activar ampliamente la precarga de DNS para las URLs del documento, incluyendo imágenes, CSS, JavaScript, etc.TTL caché de Widgets:El comodín %1$s es compatible (compara cero o más caracteres). Por ejemplo, para igualar %2$s y %3$s, utiliza %4$s.Con ESI (Edge Side Includes), las páginas pueden ser servidas desde la caché a usuarios con sesión iniciada.Con la CDN de QUIC.cloud activada, puede que todavía estés viendo las cabeceras de la caché de tu servidor local.WooCommerceAjustes de WooCommerceControl de la calidad de imagen de WordPressEl intervalo válido de WordPress es %s segundosEl intervalo válido de WordPress es de %s segundos.WpW: Caché privada o caché públicaArchivo anualAhora tienes %s registros en la tabla de optimización CSS/JS. Puede que tengas que comprobar si tienes o no un problema aleatorio de cadenas.Puedes simplemente teclear parte de dominio.Puede cambiar rápidamente entre el uso de archivos de imágenes originales (versiones no optimizadas) y optimizadas. Afectará a todas las imágenes de tu web, tanto a las versiones regulares como a las versiones webp si están disponibles.Puede solicitar un máximo de imágenes de %s de una vez.También puedes activar la caché del navegador en la administración del servidor. <a %s>Aprende más acerca del ajuste de la caché de navegador de LiteSpeed</a>.Puedes convertir shortcodes en bloques ESI.No tienes suficiente cuota disponible este mes para el servicio actual.Tienes demasiadas imágenes notificadas, recupera antes las imágenes notificadas.Tienes demasiadas imágenes solicitadas, inténtalo dentro de unos minutos.¡Acabas de desbloquear una promoción de QUIC.cloud!Debe hacer clic en el botón %s si quieres asociar este sitio con una cuenta QUIC.cloud.Debes tener %1$s antes de enlazarte a QUIC.cloud.¡No podrás Revertir la optimización una vez eliminadas las copias de seguridad!Tendrás que establecer %s para usar los servicios en línea.El hostname o dirección IP de tu %s.Tu clave de la API es usada para acceder a %s APIs.Tu dirección de email en %s.Tu IPTu solicitud está a la espera de aprobación.A tu dominio se le ha prohibido usar nuestros servicios debido a una violación de política anterior.La IP de tu servidor esCero, ocategoríascookiesactualmente establecido en %sej: Usa %s o %s.El favicon.ico es solicitado en la mayoría de las páginas.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationahora mismomicrosegundospixelsproporciona más información aquí para ayudar al equipo de LiteSpeed con la depuración.ahora mismoejecutandosegundosetiquetasla IP detectada automáticamente puede no ser precisa si tienes un conjunto adicional de IP salientes, o si tienes múltiples IPs configuradas en tu servidor. Por favor, asegúrate de que esta IP es la correcta para visitar tu sitio.user agents���d��*�8�8�8�8	9
9
9"9/9E9[9	d9n9	w93�9h�9:N>:=�:"�:7�:&;'*;	R;\;e;%w;�;F�;�;%�;	<")<L<Pl<T�<:=>M=�=�=#�=�=M�=P/>0�>�>�>"�>/�>*?
<?J?�\?4�?@@(@#0@T@`@m@
}@�@�@�@�@�@�@�@�@
AA+A?ANA]AoA0�AU�AWB mB(�B�B�B�BK�BP7C	�C�C�C-�C�CD%D=D"UDxD"�D�D!�D�DE&4E"[E!~E,�E$�E+�E	FW(F
�F�F�F�F�F�F�F*G-G=GIG
[GiGxG�G4�G�G�G	�G�GHH 6H"WHzH�H�H�H
�H�H�HI	II'I>IVIpI�I
�I�I}�I;JDLJ8�J�J�J�J �JKK8]K�K�K�K�K�KLL)LCBLE�L�L�L�L�L<�L3NMN9\N
�N�N
�NY�NqO�O�ON�OPP$PDPQPbPkP~P�P�P%�Pv�P9QYQlQ�Q�Q*�Q�Q�Q�QR'R93R:mR0�R)�R�Sc�SGTWLT�T�T
�T�T�T#�TU#UAU
PU0^U#�U�U�U	�UB�U	VV2!VZTV,�V�V-�Vi%WI�WY�WK3XUXL�Xl"YB�YY�YV,Z`�ZJ�Zg/[�\�\�\�\
�\<�\2]I]_]]�]�]�]�]�]?^F^]^d^t^ �^&�^ �^D�^2_>_J_]_
l_w_�_�_
�_�_
�_�_p�_
m`x`�`�`	�`�`�`�`�`aa'a
FaTa
ca
qa"a�a�a�a#�a�ab
b*bPEb&�b�b�b�b"c'cAc$Zcc�c�c �c�c/�c.'dVdbdvd�d+�d�d�d�d�d�d�deee@,e
me{e�e�e>�e�e�e �ef"8f[fkf
�f
�f�f�f�f.�f?�f6&g;]g3�g2�g6h07hhhlhoh|hQ�h
�h-�h$'iPLi?�i7�ij"j?jUjjj�j�j�j$�jE�j+)kUk
kk!yk�k�k�k�k�k�kR�k2Cl?vl�l?�l5mSBm��mEn`nenmn|nd�nc�nMWo�o)�o�o�o
pp$%p�JpF�pq7q>qJqPq_q	oqyq�q�q�q�q
�q�q�q5�q%(rNr0jr�r%�r&�rI�rDs$\sD�s@�s9t1Atst�t�t�t�t�t�t
�t+�t$u6uJubu�u�u{�u;(v+dv�v�v�v
�vA�vww-wAw+_w&�w�wY�w$#x2Hx
{x�x�x
�x�x:�xy y>y.Kyzyd�y�y�yMzf]z$�zX�zQB{7�{+�{�{g|z|�|Q�|P}^U}m�}"~4~M~f~9|~�~>�~�~UNh�#�8�
�0'�GX�a��/�*2�(]�K��?ҁ<�3O���������ɂ(��e�-z�/��M؃h&�]��=�c+�A��hх:�WZ�O���E�1M�-�Y��9�&A�1h�A��*܉^�Ef�U��S�V�Jl�(��I�'*�&R�y�Y��*���
�*�:E�N��;Ϗ,�18�Jj�4��Q�o<�X��/�G5�9}�1�����JՓ^ �3���<єL�*[�]�������
 �.�A�H�X�a�i��~��@�U�"Y�
|�������$��8!�Z�2z���
����� ���K#�+o�����ʙ
���d�My�ǚgٚRA���#��ě%ӛ(��G"�j�'����̜
Ԝߜ�'��"�K@�����	����������+͝���	�	�
�
'�2�?�U�k�	t�~�	��3��hş.�NN�=��"۠7��6�':�	b�l�u�%����F����%	�	/�"9�\�P|�T͢:"�>]�����#��ۣM�P?�0����Ǥ"Τ/�*!�
L�Z��l�4�'�+�8�#@�d�p�}�
����������̦ߦ���.�;�O�^�m��0��UϧW%� }�(��ǨШ�K��PG�	������-ҩ��5�M�"e���"��Ǫ!��$�&D�"k�!��,��$ݫ+�	.�W8�
������Ȭ٬���*�=�M�Y�
k�y�����4��ҭ߭	����+� F�"g���������
ۮ����	�&�7�N�f�����
��ǯ}ͯK�D\�8��ڰ��� �K!�8m�����ӱ���'�9�CR�E��ܲ�����<�C�]�9l�
����
ǴYҴq,�����NƵ�"�4�T�a�r�{�������%��vҶI�i�|�����*������7�9C�:}�0��)���d��G�W]���ƺ
׺��#�$�4�R�
a�0o�#��Ļʻ	ֻB�	#�-�22�Ze�,���-�i6�I��Y�KD�U��L�l3�B��Y�V=�`��J��g@���������
��<�C�Z�p�����������
�?�W�n�u��� ��&�� ��D��C�O�[�n�
}�������
����
����p
�
~�������	��������
���'/�
W�e�
t�
��"��������#����
0�;�PV�&��������"�8�R�$k������� ����/�.8�g�s�����+���������������-�@=�
~�������>������ �,�"I�l�|�
��
��������.��?��67�;n�3��2��6�0H�y�}�����Q��
��-
�$8�P]�?��7��&�3�P�f�{�������$��E��+:�f�
|�!��������������R�2T�?����?��5�SS����E+�q�v�~���d��c�Mh���)������
�!�$6��[�G��1�I�P�\�b�q�	������������
������5�%:�`�0|���%��&��I�V�$n�D��@��9�1S���������������
��+
�6�H�\�t�����{��;:�+v�������
��A���0�?�S�+q�&����Y��$5�2Z�
������
����:���2�P�.]���d�����M!�fo�$��X��QT�7��+��
�g$�����Q��P�^g�m��4�F�_�x�9����>���U$�Nz���#��8��
+�09�Gj�a��/�*D�(o�K��?��<$�3a�����������(��"�f&�-��/��M��h9�]��=�c>�A��h��M�Wm�O���E�1`�-��Y��9�&T�1{�A��*��^�Ey�U��S�i�J�(��I��'=�&e���Y��*��,��=�:X�N��;�,�1K�J}�4�Q��oO�X��/�GH�9��1�����J�^3�3���<�L!�*n�]������
�"�
3�A�T�[�k�t�|�����@'�h�"l�
��������$����84�m�2����
��� 
�.�K6�+������
�d'M��g�RT�#��%�(G5}'���
���'
5KS��	������aBd�=���BD�>_���,��Mk"�jD8�n�����Ec���&t��+k/��_Ay;����o�|�[��7��9S����D?���d��aPUL�{Y�E��������
eAmC�@n�4�����������;��I�2�y
W������<����X�%�'!-��qT7���W�S������^��Y��J��{�1�jI�!��f36wc\���2#|�e-l��LFV��49.�Q �
3�sxMs[��.5=�elj^z�}N�	i��4�qar��O��i�9��$�P��Eb,c������]U�sK��8��H����$�#�(�b:��Q�@�u��������CJ�/*@g%�(:~K#����S[g&]Ux)��}�1wN�� �2\V���H��t�Y�NJh	W�F>(C R��m�!�R�y�h��,*�nv+o�x���`��������\G��}"v�V'z�uBGf
8�?0���t0`Z����������g����0dp5�=f����/p��Iqi�{�F��oTK�6��MPZr���
�u>]����&��~�:���~-`�^$�<k*�6��?T�
�QX;��A��b�%���)�<��)|Gl�1�7�m���Hv��+��OR'�h���z�O�_�X��5.�	3Z���L"r�pw %s ago%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimized.APIAdding Style to Your Lazy-Loaded ImagesAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.Any changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.Author archiveAuto DraftsAuto Purge Rules For Publish/UpdateAutomatically UpgradeAutomatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimized images.Automatically request optimization via cron job.BasicBeforeBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.Browser CacheBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a gray image placeholder %s will be used.CDNCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache Logged-in UsersCache Login PageCache MobileCache PHP ResourcesCache REST APICache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Original Image StorageCan not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimizerClean Up Unfinished DataClean all CSS/JS optimizer data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Clear LogClears all cache entries related to this site, <i>including other web applications</i>.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCommunicated with Cloudflare successfully.Connection TestCookie NameCookie SimulationCookie ValuesCrawl IntervalCrawlerCrawler CronCreate a post, make sure the front page is accurate.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent crawler started atCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Custom SitemapDNS PrefetchDO NOT EDIT ANYTHING WITHIN %sDaily archiveDatabase OptimizerDatabase to be usedDebug LevelDebug LogDefault Feed TTLDefault Front Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault TTL for cached objects.Default valueDelayDetermines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Do Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDrop Query StringESIESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to communicate with CloudflareFailed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to get %s file contents.Failed to upgrade.Failed to write to %s.File %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForced cacheableFront pageGeneralGenerate Critical CSSGenerate Critical CSS In BackgroundGenerated at %sGet it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGoogle reCAPTCHA will be bypassed automatically.Groups cached at the network level.GuestHTML MinifyHeartbeatHigh-performance page caching and site optimization from LiteSpeedHome pageHostHow to Fix Problems Caused by CSS/JS Optimization.However, there is no way of knowing all the possible customizations that were implemented.Htaccess did not match configuration option.I've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Image InformationImage OptimizationImage WebP ReplacementImage files missingImages PulledImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages not yet requestedImages notified to pullImages optimized and pulledImages previously optimizedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSIncluded DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstall %sInstall NowInstant ClickInterval Between RunsIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.JS CombineJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.LSCacheLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requested costLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load ImagesLearn MoreList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CrawlerLiteSpeed Cache Edit .htaccessLiteSpeed Cache Image OptimizationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache plugin is installed!LiteSpeed OptimizationLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Log CookiesLog File Size LimitLogin CookieMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMark this page as Maybe LaterMaybe laterMedia SettingsMethodMinify HTML content.Monthly archiveMore information about the available commands can be found here.More settingsNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network Enable CacheNew Version Available!New release %s is available now.No available Cloudflare zoneNo crawler meta file generated yetNo optimizationNo spaces and case sensitive.Non cacheableNot AvailableNoteNotesNoticeNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONObject CacheObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.Optimization SettingsOptimization SummaryOptimize CSS delivery.Optimize LosslesslyOptimize Original ImagesOptimize TablesOptimize all tables in your databaseOptimize images and save backups of the originals in the same folder.Optimize images using lossless compression.Optimized all tables.Original URLsOther checkboxes will be ignored.Outputs to WordPress debug log.Page Load TimePageSpeed ScorePagesPassedPasswordPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Persistent ConnectionPlease consult the host/server admin before making any changes.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.Preserve EXIF/XMP dataPrevent any optimization of listed pages.PrivatePrivate Cached URIsPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache frontend pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPull ImagesPurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge this pagePurge url %sPurged All!Purged all caches successfully.Purged the blog!Purged the url!Rate %s on %sRecommended value: 28800 seconds (8 hours).Redis Database IDRemove Google FontsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.Remove all previous unfinished image optimization requests.Remove query strings from static resources.Replace %1$s with %2$s.ReportReport dateReport numberRequest WebP versions of original images when doing optimization.Reset All SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimized data successfully.Responsive PlaceholderResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restored original file successfully.Results can be checked in <a %s>Media Library</a>.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimizations.Selected roles will be excluded from cache.Send Optimization RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Separate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.SettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimized %s versions.Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.SizeSize list in queue waiting for cronSome themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, feeds are cached.Specify the password used when connecting.Specify the time to purge the "%s" list.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStorage OptimizationStore TransientsSure I'd love to review!Switched images successfully.Switched to optimized file successfully.TagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The default login cookie is %s.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existance of this cookie.Then another WordPress is installed (NOT MULTISITE) at %sThere is a WordPress installed for %s.These settings are meant for ADVANCED USERS ONLY.This action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This page is meant for advanced users.This process is automatic.This setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all generated critical CSS filesThis will disable LSCache and all optimization features for debug purpose.This will disable the settings page on all subsites.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimized files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To exclude %1$s, insert %2$s.To match the beginning, add %s to the beginning of the item.To randomize CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.TotalTotal ReductionTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.URI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUpdate %s nowUpgradeUpgraded successfully.Use %s API functionality.Use Front Page TTL for the Shop PageUse Network Admin SettingUse Primary Site ConfigurationUse keep-alive connections to speed up cache operations.Use object cache functionality.Use the format %1$s or %2$s (element is optional).UsernameVary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.Want to connect with other LiteSpeed users?Watch Crawler StatusWebP Attribute To ReplaceWebP For Extra srcsetWebP saved %sWelcome to LiteSpeedWhat is a group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.WooCommerceWpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can turn shortcodes into ESI blocks.You will be unable to Revert Optimization once the backups are deleted!Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPcategoriescookiese.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondsright nowrunningsecondstagsuser agentsPO-Revision-Date: 2019-08-02 00:56:54+0000
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=n != 1;
X-Generator: GlotPress/3.0.0-alpha.2
Language: en_AU
Project-Id-Version: Plugins - LiteSpeed Cache - Stable (latest release)
 %s ago%d hour%d hours%d minute%d minutes%d seconds%s Extension%s file not readable.%s file not writable.%s group%s groups%s image%s images<a %s>Support forum</a> | <a %s>Submit a ticket</a><a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.<b>Last crawled:</b> %s item(s)<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$sA Purge All will be executed when WordPress runs these hooks.A TTL of 0 indicates do not cache.A backup of each image is saved before it is optimised.APIAdding Style to Your Lazy-Loaded ImagesAdmin IPsAdvancedAdvanced SettingsAdvanced level will log more details.AfterAfter verifying that the cache works in general, please test the cart.All TransientsAll categories are cached by default.All pagesAll pages with Recent Posts WidgetAll tags are cached by default.Allows listed IPs (one per line) to perform certain actions from their browsers.Always purge both product and categories on changes to the quantity or stock status.Any changes made to the .htaccess file may break the site.Append query string %s to the resources to bypass this action.Author archiveAuto DraftsAuto Purge Rules For Publish/UpdateAutomatically UpgradeAutomatically generate critical CSS in the background via a cron-based queue.Automatically remove the original image backups after fetching optimised images.Automatically request optimisation via cron job.BasicBeforeBoth %1$s and %2$s are acceptable.Both full URLs and partial strings can be used.Both full and partial strings can be used.Browser CacheBrowser Cache TTLBrowser caching stores static files locally in the user's browser. Turn on this setting to reduce repeated requests for static files.By default a grey image placeholder %s will be used.CDNCDN SettingsCDN URLCDN URL to be used. For example, %sCSS CombineCSS ExcludesCSS HTTP/2 PushCSS MinifyCSS/JS CacheCSS/JS Cache TTLCacheCache Admin BarCache Comment FormCache CommentersCache Control SettingsCache Logged-in UsersCache Login PageCache MobileCache PHP ResourcesCache REST APICache Wp-AdminCache favicon.icoCache mobile views separately.Cache requests made by WordPress REST API calls.Caching these pages may improve server performance by avoiding unnecessary PHP calls.Caching this resource may improve server performance by avoiding unnecessary PHP calls.Calculate Original Image StorageCan not create folder: %1$s. Error: %2$sCategoryChanged setting successfully.Check StatusCheck this option to use the primary site's configuration for all subsites.Checking this option will force the shop page to use the front page TTL setting.Clean AllClean CSS/JS OptimiserClean Up Unfinished DataClean all CSS/JS optimiser data successfully.Clean all auto saved draftsClean all post revisionsClean all spam commentsClean all successfully.Clean all trackbacks and pingbacksClean all transient optionsClean all transients successfully.Clean all trashed commentsClean all trashed posts and pagesClean auto drafts successfully.Clean expired transient optionsClean expired transients successfully.Clean post revisions successfully.Clean spam comments successfully.Clean trackbacks and pingbacks successfully.Clean trashed comments successfully.Clean trashed posts and pages successfully.Clear LogClears all cache entries related to this site, <i>including other web applications</i>.CloudflareCloudflare APICloudflare API is set to off.Cloudflare CacheCloudflare DomainCloudflare ZoneCollapse Query StringsCommunicated with Cloudflare successfully.Connection TestCookie NameCookie SimulationCookie ValuesCrawl IntervalCrawlerCrawler CronCreate a post, make sure the front page is accurate.Critical CSSCritical CSS RulesCron NameCurrent %s ContentsCurrent crawler started atCurrent server time is %s.Current sitemap crawl started atCurrent status is %1$s since %2$s.Current status is %s.Custom SitemapDNS PrefetchDO NOT EDIT ANYTHING WITHIN %sDaily archiveDatabase OptimiserDatabase to be usedDebug LevelDebug LogDefault Feed TTLDefault Front Page TTLDefault Object LifetimeDefault Private Cache TTLDefault Public Cache TTLDefault TTL for cached objects.Default valueDelayDetermines how changes in product quantity and product stock status affect product pages and their associated category pages.Development ModeDevelopment Mode will be turned off automatically after three hours.Development mode will be automatically turned off in %s.DisableDisable All FeaturesDisabledDisabled WebP file successfully.Disabling this may cause WordPress tasks triggered by AJAX to stop working.Disabling this option may negatively affect performance.Do Not Cache CategoriesDo Not Cache CookiesDo Not Cache GroupsDo Not Cache Query StringsDo Not Cache RolesDo Not Cache TagsDo Not Cache URIsDo Not Cache User AgentsDo not purge categories on changes to the quantity or stock status.Doing so can help reduce resource contention and improve performance.DomainDrop Query StringESIESI SettingsESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.ESI sample for developersEdit .htaccessElements with attribute %s in html code will be excluded.Email AddressEmpty Entire CacheEnable ESIEnable replacement of WebP in %s elements that were generated outside of WordPress logic.Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.EnabledEnabled WebP file successfully.Enabling LiteSpeed Cache for WordPress here enables the cache for the network.Ended reasonExample use case:Examples of test cases include:Exclude PathExclude SettingsExcludesExpired TransientsExportExport SettingsFailedFailed to communicate with CloudflareFailed to create Optimiser table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.Failed to get %s file contents.Failed to upgrade.Failed to write to %s.File %s is not writable.File Saved.File editing is disabled in configuration.FilesFilter %s is supported.Folder does not exist: %sFolder is not writable: %s.For exampleFor example, %1$s defines a TTL of %2$s seconds for %3$s.For example, %s can be used for a transparent placeholder.For example, for %s, %s and %s can be used here.For example, for %s, %s can be used here.For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.For example, if the home page for the site is located at %1$s, the shop page may be located at %2$s.For example, to drop parameters beginning with %s, %s can be used here.For that reason, please test the site to make sure everything still functions properly.Force Cache URIsForced cacheableFront pageGeneralGenerate Critical CSSGenerate Critical CSS In BackgroundGenerated at %sGet it from <a %1$s>%2$s</a>.Global API KeyGlobal GroupsGoogle reCAPTCHA will be bypassed automatically.Groups cached at the network level.GuestHTML MinifyHeartbeatHigh-performance page caching and site optimisation from LiteSpeedHome pageHostHow to Fix Problems Caused by CSS/JS Optimisation.However, there is no way of knowing all the possible customisations that were implemented.Htaccess did not match configuration option.I've already left a reviewIf %1$s is %2$s, then %3$s must be populated!If every web application uses the same cookie, the server may confuse whether a user is logged in or not.If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.If set to %1$s, before the placeholder is localised, the %2$s configuration will be used.If set to %s this is done in the foreground, which may slow down page load.If the login cookie was recently changed in the settings, please log out and back in.If the tag slug is not found, the tag will be removed from the list on save.If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.If this is set to a number less than 30, feeds will not be cached.If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.If you run into any issues, please refer to the report number in your support message.If you turn any of the above settings OFF, please remove the related file types from the %s box.If you would rather not move at litespeed, you can deactivate this plugin.If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.Image InformationImage OptimisationImage WebP ReplacementImage files missingImages PulledImages containing these class names will not be lazy loaded.Images failed to fetchImages failed to pullImages failed with other errorsImages not yet requestedImages notified to pullImages optimised and pulledImages previously optimisedImages requestedImages totalImages will be pulled automatically if the cron job is running.Images with wrong metaImportImport / ExportImport SettingsImport failed due to file error.Imported setting file %s successfully.Improve HTTP/HTTPS CompatibilityImprove wp-admin speed through caching. (May encounter expired data)Improved byInclude CSSInclude File TypesInclude ImagesInclude JSIncluded DirectoriesInline CSS Async LibInline Lazy Load Images LibraryInstall %sInstall NowInstant ClickInterval Between RunsIt is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.JS CombineJS Deferred ExcludesJS ExcludesJS HTTP/2 PushJS MinifyJoin LiteSpeed Slack communityJoin Us on SlackJoin the %s community.LSCacheLast RequestLast calculatedLast complete run time for all crawlersLast exportedLast generatedLast importedLast intervalLast pull initiated by cron at %s.Last ranLast requested costLazy Load IframesLazy Load Image Class Name ExcludesLazy Load Image ExcludesLazy Load ImagesLearn MoreList of Mobile User AgentsList post types where each item of that type should have its own CCSS generated.Listed images will not be lazy loaded.LiteSpeed CacheLiteSpeed Cache CrawlerLiteSpeed Cache Edit .htaccessLiteSpeed Cache Image OptimisationLiteSpeed Cache Purge AllLiteSpeed Cache SettingsLiteSpeed Cache plugin is installed!LiteSpeed OptimisationLiteSpeed TechnologiesLoad CSS AsynchronouslyLoad Google Fonts AsynchronouslyLoad JS DeferredLoad iframes only when they enter the viewport.Load images only when they enter the viewport.Log CookiesLog File Size LimitLogin CookieMBMUST BE UNIQUE FROM OTHER WEB APPLICATIONS.ManageManually runMark this page as Maybe LaterMaybe laterMedia SettingsMethodMinify HTML content.Monthly archiveMore information about the available commands can be found here.More settingsNOTENOTICENOTICE:NOTICE: Database login cookie did not match your login cookie.Network Enable CacheNew Version Available!New release %s is available now.No available Cloudflare zoneNo crawler meta file generated yetNo optimisationNo spaces and case sensitive.Non cacheableNot AvailableNoteNotesNoticeNotified Cloudflare to purge all successfully.Notified Cloudflare to set development mode to %s successfully.Notified LiteSpeed Web Server to purge CSS/JS entries.Notified LiteSpeed Web Server to purge all LSCache entries.Notified LiteSpeed Web Server to purge error pages.Notified LiteSpeed Web Server to purge everything.Notified LiteSpeed Web Server to purge the front page.Notified LiteSpeed Web Server to purge the list.OFFONObject CacheObject cache is not enabled.Once saved, it will be matched with the current list and completed automatically.One per line.Only attributes listed here will be replaced.Only available when %s is installed.Only enable for AMP or mobile-specific design/content, not for responsive sites.Only files within these directories will be pointed to the CDN.Only press the button if the pull cron job is disabled.Opcode CacheOpcode cache is not enabled.Optimisation SettingsOptimisation SummaryOptimise CSS delivery.Optimise LosslesslyOptimise Original ImagesOptimise TablesOptimise all tables in your databaseOptimise images and save backups of the originals in the same folder.Optimise images using lossless compression.Optimised all tables.Original URLsOther checkboxes will be ignored.Outputs to WordPress debug log.Page Load TimePageSpeed ScorePagesPassedPasswordPaths containing these strings will be cached regardless of no-cacheable settings.Paths containing these strings will not be cached.Paths containing these strings will not be served from the CDN.Persistent ConnectionPlease consult the host/server admin before making any changes.Please enable LiteSpeed Cache in the plugin settings.Please enable the LSCache Module at the server level, or ask your hosting provider.Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.Please visit the <a %s>Information</a> page on how to test the cache.PortPost IDPost RevisionsPost type archivePre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimising.Preserve EXIF/XMP dataPrevent any optimisation of listed pages.PrivatePrivate Cached URIsPrivate cachePrivately Cache CartPrivately cache cart when not empty.Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)Privately cache front end pages for logged-in users. (LSWS %s required)Product Update IntervalPublicPull ImagesPurgePurge %s ErrorPurge 500 ErrorPurge AllPurge All HooksPurge All On UpgradePurge By...Purge EverythingPurge Front PagePurge ListPurge PagesPurge SettingsPurge all and clean all minified/combined CSS/JS dataPurge all object caches successfully.Purge all the object cachesPurge categories only when stock status changes.Purge category %sPurge error pages, including %s pagesPurge error pages, including 500 pagesPurge pages by category name - e.g. %2$s should be used for the URL %1$s.Purge pages by post ID.Purge pages by relative or full URL.Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.Purge product and categories only when the stock status changes.Purge product on changes to the quantity or stock status.Purge product only when the stock status changes.Purge tag %sPurge this pagePurge URL %sPurged All!Purged all caches successfully.Purged the blog!Purged the URL!Rate %s on %sRecommended value: 28800 seconds (8 hours).Redis Database IDRemove Google FontsRemove Original BackupsRemove Original Image BackupsRemove Query StringsRemove WordPress EmojiRemove all previous image optimisation requests/results, revert completed optimisations, and delete all optimisation files.Remove all previous unfinished image optimisation requests.Remove query strings from static resources.Replace %1$s with %2$s.ReportReport dateReport numberRequest WebP versions of original images when doing optimisation.Reset All SettingsReset positionReset successfully.Reset the entire opcode cacheReset the entire opcode cache successfully.Reset the optimised data successfully.Responsive PlaceholderResponsive image placeholders can help to reduce layout reshuffle when images are loaded.Restored original file successfully.Results can be checked in <a %s>Media Library</a>.Role ExcludesRole SimulationRun DurationRun FrequencyRun Queue ManuallyRun frequency is set by the Interval Between Runs setting.Run time for previous crawlerSYNTAX: alphanumeric and "_".Save ChangesSave transients in database when %1$s is %2$s.SavedScan for any new unoptimised image thumbnail sizes and resend necessary image optimisation requests.Scheduled Purge TimeScheduled Purge URLsSee <a %s>Introduction for Enabling the Crawler</a> for detailed information.Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.Select below for "Purge by" options.Select only the archive types that are currently used, the others can be left unchecked.Select which pages will be automatically purged when posts are published/updated.Selected roles will be excluded from all optimisations.Selected roles will be excluded from cache.Send Optimisation RequestSend this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.Separate CCSS Cache Post TypesSeparate CCSS Cache URIsSeparate critical CSS files will be generated for paths containing these strings.Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.Server Load LimitServer allowed max valueServer allowed min valueServer enforced valueServer variable(s) %s available to override this setting.SettingsShorten query strings in the debug log to improve readability.Show crawler statusSignificantly improve load time by replacing images with their optimised %s versions.Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.SizeSize list in queue waiting for cronSome themes and plugins add resources via a PHP request.Spam CommentsSpecify Number of Threads to use while crawling.Specify critical CSS rules for above-the-fold content when enabling %s.Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.Specify how long, in seconds, feeds are cached.Specify the password used when connecting.Specify the time to purge the "%s" list.Specify time in microseconds for the delay between requests during a crawl.Specify time in seconds for the duration of the crawl interval.Specify which element attributes will be replaced with WebP.Static file type links to be replaced by CDN links.StatusStorage OptimisationStore TransientsSure I'd love to review!Switched images successfully.Switched to optimised file successfully.TagTemporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in real time.Term archive (include category, tag, and tax)Thank You for Using the LiteSpeed Cache Plugin!The Admin IP option will only output log messages on requests from admin IPs.The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.The URLs here (one per line) will be purged automatically at the time set in the option "%s".The URLs will be compared to the REQUEST_URI server variable.The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.The cookie set here will be used for this WordPress installation.The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.The default login cookie is %s.The environment report contains detailed information about the WordPress configuration.The following options are selected, but are not editable in this settings page.The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.The network admin selected use primary site configs for all subsites.The network admin setting can be overridden here.The next complete sitemap crawl will start atThe server will determine if the user is logged in based on the existence of this cookie.Then another WordPress is installed (NOT MULTISITE) at %sThere is a WordPress installed for %s.These settings are meant for ADVANCED USERS ONLY.This action should only be used if things are cached incorrectly.This can be managed from <a %2$s>%1$s</a>.This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.This can improve page loading time by reducing initial HTTP requests.This can improve quality but may result in larger images than lossy compression will.This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.This is irreversible.This is to ensure compatibility prior to enabling the cache for all sites.This may cause heavy load on the server.This message indicates that the plugin was installed by the server admin.This option only works if %1$s is %2$s.This page is meant for advanced users.This process is automatic.This setting is useful for those that have multiple web applications for the same domain.This setting will edit the .htaccess file.This site utilises caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.This will Purge Front Page onlyThis will Purge Pages onlyThis will affect all tags containing attributes: %s %s %s.This will also add a preconnect to Google for faster Google Fonts downloading.This will also generate an API key from LiteSpeed's Server.This will clear EVERYTHING inside the cache.This will delete all generated critical CSS filesThis will disable LSCache and all optimisation features for debug purpose.This will disable the settings page on all subsites.This will generate extra requests to the server, which will increase server load.This will generate the placeholder with same dimensions as the image if it has the width and height attributes.This will import settings from a file and override all current LiteSpeed Cache settings.This will increase the size of optimised files.This will inline the asynchronous CSS library to avoid render blocking.This will purge all minified/combined CSS/JS entries onlyThis will reset all settings to default settings.ThreadsTo crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.To crawl the site as a logged-in user, enter the user ids to be simulated.To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.To do an exact match, add %s to the end of the URL.To exclude %1$s, insert %2$s.To match the beginning, add %s to the beginning of the item.To randomise CDN hostname, define multiple hostnames for the same resources.To test the cart, visit the <a %s>FAQ</a>.To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.TotalTotal ReductionTrackbacks/PingbacksTrashed CommentsTrashed PostsTry GitHub VersionTuningTuning SettingsTurn OFFTurn ONTurn On Auto UpgradeTurn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.URI ExcludesURI Paths containing these strings will NOT be cached as public.URLURL list in queue waiting for cronUpdate %s nowUpgradeUpgraded successfully.Use %s API functionality.Use Front Page TTL for the Shop PageUse Network Admin SettingUse Primary Site ConfigurationUse keep-alive connections to speed up cache operations.Use object cache functionality.Use the format %1$s or %2$s (element is optional).UsernameVary GroupView %1$s version %2$s detailsVisit LSCWP support forumVisit the site while logged out.WARNINGWARNING: The .htaccess login cookie and Database login cookie do not match.Want to connect with other LiteSpeed users?Watch Crawler StatusWebP Attribute To ReplaceWebP For Extra srcsetWebP saved %sWelcome to LiteSpeedWhat is a group?When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.When this option is turned %s, it will also load Google Fonts asynchronously.Widget Cache TTL:Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.With ESI (Edge Side Includes), pages may be served from cache for logged-in users.WooCommerceWpW: Private Cache vs. Public CacheYearly archiveYou can just type part of the domain.You can turn shortcodes into ESI blocks.You will be unable to Revert Optimisation once the backups are deleted!Your %s Hostname or IP address.Your API key is used to access %s APIs.Your Email address on %s.Your IPcategoriescookiese.g. Use %s or %s.favicon.ico is requested on most pages.https://www.litespeedtech.comhttps://www.litespeedtech.com/products/cache-plugins/wordpress-accelerationjust nowmicrosecondsright nowrunningsecondstagsuser agents                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.
<?php
/**
 * Plugin Name:       LiteSpeed Cache
 * Plugin URI:        https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration
 * Description:       High-performance page caching and site optimization from LiteSpeed
 * Version:           3.6.4
 * Author:            LiteSpeed Technologies
 * Author URI:        https://www.litespeedtech.com
 * License:           GPLv3
 * License URI:       http://www.gnu.org/licenses/gpl.html
 * Text Domain:       litespeed-cache
 * Domain Path:       /lang
 *
 * Copyright (C) 2015-2017 LiteSpeed Technologies, Inc.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.

 */
defined( 'WPINC' ) || exit;

if ( class_exists( 'LiteSpeed\Core' ) || defined( 'LSCWP_DIR' ) ) {
	return;
}

! defined( 'LSCWP_V' ) && define( 'LSCWP_V', '3.6.4' );

! defined( 'LSCWP_CONTENT_DIR' ) && define( 'LSCWP_CONTENT_DIR', WP_CONTENT_DIR ) ;
! defined( 'LSCWP_DIR' ) && define( 'LSCWP_DIR', __DIR__ . '/' ) ;// Full absolute path '/var/www/html/***/wp-content/plugins/litespeed-cache/' or MU
! defined( 'LSCWP_BASENAME' ) && define( 'LSCWP_BASENAME', 'litespeed-cache/litespeed-cache.php' ) ;//LSCWP_BASENAME='litespeed-cache/litespeed-cache.php'

/**
 * This needs to be before activation because admin-rules.class.php need const `LSCWP_CONTENT_FOLDER`
 * This also needs to be before cfg.cls init because default cdn_included_dir needs `LSCWP_CONTENT_FOLDER`
 * @since  1.9.1 Moved up
 * @since  2.2.1 Moved up from core.cls
 */
! defined( 'LSCWP_CONTENT_FOLDER' ) && define( 'LSCWP_CONTENT_FOLDER', str_replace( home_url( '/' ), '', WP_CONTENT_URL ) ) ; // `wp-content`
! defined( 'LSWCP_PLUGIN_URL' ) && define( 'LSWCP_PLUGIN_URL', plugin_dir_url( __FILE__ ) ) ;// Full URL path '//example.com/wp-content/plugins/litespeed-cache/'

/**
 * Static cache files consts
 * @since  3.0
 */
! defined( 'LITESPEED_STATIC_URL' ) && define( 'LITESPEED_STATIC_URL', WP_CONTENT_URL . '/litespeed' ) ;// Full static cache folder URL '//example.com/wp-content/litespeed'
! defined( 'LITESPEED_STATIC_DIR' ) && define( 'LITESPEED_STATIC_DIR', LSCWP_CONTENT_DIR . '/litespeed' ) ;// Full static cache folder path '/var/www/html/***/wp-content/litespeed'

! defined( 'LITESPEED_TIME_OFFSET' ) && define( 'LITESPEED_TIME_OFFSET', get_option( 'gmt_offset' ) * 60 * 60 ) ;

// Placeholder for lazyload img
! defined( 'LITESPEED_PLACEHOLDER' ) && define( 'LITESPEED_PLACEHOLDER', 'data:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=' ) ;

// Auto register LiteSpeed classes
require_once LSCWP_DIR . 'autoload.php' ;

// Define CLI
if ( ( defined( 'WP_CLI' ) && WP_CLI ) || PHP_SAPI == 'cli' ) {
	! defined( 'LITESPEED_CLI' ) &&  define( 'LITESPEED_CLI', true );

	// Register CLI cmd
	if ( method_exists( 'WP_CLI', 'add_command' ) ) {
		WP_CLI::add_command( 'litespeed-option', 'LiteSpeed\CLI\Option' );
		WP_CLI::add_command( 'litespeed-purge', 'LiteSpeed\CLI\Purge' );
		WP_CLI::add_command( 'litespeed-online', 'LiteSpeed\CLI\Online' );
		WP_CLI::add_command( 'litespeed-image', 'LiteSpeed\CLI\Image' );
		WP_CLI::add_command( 'litespeed-debug', 'LiteSpeed\CLI\Debug' );
	}
}

// Server type
if ( ! defined( 'LITESPEED_SERVER_TYPE' ) ) {
	if ( isset( $_SERVER['HTTP_X_LSCACHE'] ) && $_SERVER['HTTP_X_LSCACHE'] ) {
		define( 'LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_ADC' );
	}
	elseif ( isset( $_SERVER['LSWS_EDITION'] ) && strpos( $_SERVER['LSWS_EDITION'], 'Openlitespeed' ) === 0 ) {
		define( 'LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_OLS' );
	}
	elseif ( isset( $_SERVER['SERVER_SOFTWARE'] ) && $_SERVER['SERVER_SOFTWARE'] == 'LiteSpeed' ) {
		define( 'LITESPEED_SERVER_TYPE', 'LITESPEED_SERVER_ENT' );
	}
	else {
		define( 'LITESPEED_SERVER_TYPE', 'NONE' );
	}
}

// Checks if caching is allowed via server variable
if ( ! empty ( $_SERVER['X-LSCACHE'] ) ||  LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_ADC' || defined( 'LITESPEED_CLI' ) ) {
	! defined( 'LITESPEED_ALLOWED' ) &&  define( 'LITESPEED_ALLOWED', true );
}

// ESI const defination
if ( ! defined( 'LSWCP_ESI_SUPPORT' ) ) {
	define( 'LSWCP_ESI_SUPPORT', LITESPEED_SERVER_TYPE !== 'LITESPEED_SERVER_OLS' ? true : false );
}

if ( ! defined( 'LSWCP_TAG_PREFIX' ) ) {
	define( 'LSWCP_TAG_PREFIX', substr( md5( LSCWP_DIR ), -3 ) );
}

/**
 * Handle exception
 */
if ( ! function_exists( 'litespeed_exception_handler' ) ) {
	function litespeed_exception_handler( $errno, $errstr, $errfile, $errline ) {
		throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
	}
}

/**
 * Overwride the WP nonce funcs outside of LiteSpeed namespace
 * @since  3.0
 */
if ( ! function_exists( 'litespeed_define_nonce_func' ) ) {
	function litespeed_define_nonce_func() {
		/**
		 * If the nonce is in none_actions filter, convert it to ESI
		 */
		function wp_create_nonce( $action = -1 ) {
			if ( ! defined( 'LITESPEED_DISABLE_ALL' ) ) {
				$control = \LiteSpeed\ESI::get_instance()->is_nonce_action( $action );
				if ( $control !== null ) {
					$params = array(
						'action'	=> $action,
					);
					return \LiteSpeed\ESI::sub_esi_block( 'nonce', 'wp_create_nonce ' . $action, $params, $control, true, true, true );
				}
			}

			return wp_create_nonce_litespeed_esi( $action );

		}

		/**
		 * Ori WP wp_create_nonce
		 */
		function wp_create_nonce_litespeed_esi( $action = -1 ) {
			$uid  = get_current_user_id();
			if ( ! $uid ) {
				/** This filter is documented in wp-includes/pluggable.php */
				$uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
			}

			$token = wp_get_session_token();
			$i     = wp_nonce_tick();

			return substr( wp_hash( $i . '|' . $action . '|' . $uid . '|' . $token, 'nonce' ), -12, 10 );
		}
	}
}

/**
 * Begins execution of the plugin.
 *
 * @since    1.0.0
 */
if ( ! function_exists( 'run_litespeed_cache' ) ) {
	function run_litespeed_cache() {
		//Check minimum PHP requirements, which is 5.3 at the moment.
		if ( version_compare( PHP_VERSION, '5.3.0', '<' ) ) {
			return;
		}

		//Check minimum WP requirements, which is 4.0 at the moment.
		if ( version_compare( $GLOBALS['wp_version'], '4.0', '<' ) ) {
			return;
		}

		\LiteSpeed\Core::get_instance();
	}

	run_litespeed_cache();
}
=== LiteSpeed Cache ===
Contributors: LiteSpeedTech
Tags: caching, optimize, performance, pagespeed, seo, speed, image optimize, compress, object cache, redis, memcached, database cleaner
Requires at least: 4.0
Tested up to: 5.7
Stable tag: 3.6.4
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl.html

All-in-one unbeatable acceleration & PageSpeed improvement: caching, image/CSS/JS optimization...

== Description ==

LiteSpeed Cache for WordPress (LSCWP) is an all-in-one site acceleration plugin, featuring an exclusive server-level cache and a collection of optimization features.

LSCWP supports WordPress Multisite and is compatible with most popular plugins, including WooCommerce, bbPress, and Yoast SEO.

LiteSpeed Cache for WordPress is compatible with ClassicPress.

== Requirements ==
**General Features** may be used by anyone with any web server (LiteSpeed, Apache, NGINX, etc.).

**LiteSpeed Exclusive Features** require one of the following: OpenLiteSpeed, commercial LiteSpeed products, LiteSpeed-powered hosting, or QUIC.cloud CDN. [Why?](https://docs.litespeedtech.com/lscache/lscwp/faq/#why-do-the-cache-features-require-a-litespeed-server)

== Plugin Features ==

= General Features =

* Free QUIC.cloud CDN Cache
* Object Cache (Memcached/LSMCD/Redis) Support<sup>+</sup>
* Image Optimization (Lossless/Lossy)
* Minify CSS, JavaScript, and HTML
* Minify inline CSS/JS
* Combine CSS/JS
* Automatically generate Critical CSS
* Lazyload images/iframes
* Responsive Image Placeholders
* Multiple CDN Support<sup>+</sup>
* Load CSS/JS Asynchronously
* Browser Cache Support<sup>+</sup>
* Database Cleaner and Optimizer
* PageSpeed score optimization
* OPcode Cache Support<sup>+</sup>
* HTTP/2 Push for CSS/JS (on web servers that support it)
* DNS Prefetch
* Cloudflare API
* Single Site and Multisite (Network) support
* Import/Export settings
* Attractive, easy-to-understand interface
* WebP image format support
* Heartbeat control

<sup>+</sup> This service is not provided by the LSCache plugin, nor is it guaranteed to be installed by your service provider. However, the plugin is compatible with the service if it is in use on your site.

= LiteSpeed Exclusive Features =

* Automatic page caching to greatly improve site performance
* Automatic purge of related pages based on certain events
* Private cache for logged-in users
* Caching of WordPress REST API calls
* Separate caching of desktop and mobile views
* Ability to schedule purge for specified URLs
* WooCommerce and bbPress support
* [WordPress CLI](https://docs.litespeedtech.com/lscache/lscwp/cli/) commands
* API system for easy cache integration
* Exclude from cache by URI, Category, Tag, Cookie, User Agent
* Smart preload crawler with support for SEO-friendly sitemap
* Multiple crawlers for cache varies
* HTTP/2 support
* [HTTP/3 & QUIC](https://www.litespeedtech.com/http3-faq) support
* ESI (Edge Side Includes) support<sup>*</sup>
* Widgets and Shortcodes as ESI blocks<sup>*</sup>

<sup>*</sup> Feature not available in OpenLiteSpeed

== Screenshots ==

1. Plugin Benchmarks
2. Admin - Dashboard
3. Admin - Image Optimization
4. Admin - Crawler
5. Admin Settings - Cache
6. Admin Settings - Page Optimization
7. Admin Settings - CDN
8. Admin Settings - DB Optimizer
9. Admin Settings - Toolbox
10. Cache Miss Example
11. Cache Hit Example

== LSCWP Resources ==
* [Join our Slack community](https://litespeedtech.com/slack) to connect with other LiteSpeed users.
* [Ask a question on our support forum](https://wordpress.org/support/plugin/litespeed-cache/).
* [View detailed documentation](https://docs.litespeedtech.com/lscache/lscwp/overview/).
* [Read WordPress Wednesday tutorials on our blog](http://blog.litespeedtech.com/tag/wordpress-wednesday).
* [Help translate LSCWP](https://translate.wordpress.org/projects/wp-plugins/litespeed-cache).
* [LSCWP GitHub repo](https://github.com/litespeedtech/lscache_wp).

== Installation ==

[View detailed documentation](https://docs.litespeedtech.com/lscache/lscwp/installation/).

= For Optimization Without a LiteSpeed Web Server =
1. Install the LiteSpeed Cache for WordPress plugin and activate it.
1. From the WordPress Dashboard, navigate to **LiteSpeed Cache > Page Optimization**. Enable the available optimization features in the various tabs.

= For Caching and Optimization With a LiteSpeed Web Server =
1. Install [LiteSpeed Web Server Enterprise](https://www.litespeedtech.com/products/litespeed-web-server) with LSCache Module, [LiteSpeed Web ADC](https://www.litespeedtech.com/products/litespeed-web-adc), or [OpenLiteSpeed](https://www.litespeedtech.com/open-source/openlitespeed) with cache module (Free). Or sign up for [QUIC.cloud CDN](https://quic.cloud).
1. Install the LiteSpeed Cache for WordPress plugin and activate it.
1. From the WordPress Dashboard, navigate to **LiteSpeed Cache > Cache**, make sure the option **Enable LiteSpeed Cache** is set to `ON`.
1. Enable any desired caching and optimization features in the various tabs.

= Notes for LiteSpeed Web Server Enterprise =

* Make sure that your license includes the LSCache module. A [2-CPU trial license with LSCache module](https://www.litespeedtech.com/products/litespeed-web-server/download/get-a-trial-license "trial license") is available for free for 15 days.
* The server must be configured to have caching enabled. If you are the server admin, [click here](https://docs.litespeedtech.com/lscache/lscwp/overview/#configure-cache-root) for instructions. Otherwise, please request that the server admin configure the cache root for the server.

= Notes for OpenLiteSpeed =

* This integration utilizes OpenLiteSpeed's cache module.
* If it is a fresh OLS installation, the easiest way to integrate is to use [ols1clk](https://openlitespeed.org/kb/1-click-install/). If using an existing WordPress installation, use the `--wordpresspath` parameter.
* If OLS and WordPress are both already installed, please follow the instructions in [How To Set Up LSCache For WordPress](https://openlitespeed.org/kb/how-to-setup-lscache-for-wordpress/).

== Third Party Compatibility ==

The vast majority of plugins and themes are compatible with LSCache. [Our API](https://docs.litespeedtech.com/lscache/lscwp/api/) is available for those that are not. Use the API to customize smart purging, customize cache rules, create cache varies, and make WP nonce cacheable, among other things.

== Privacy ==

This plugin includes a Privacy blurb that you can add to your site's Privacy Policy via the WordPress Privacy settings.

**For your own information:** LiteSpeed Cache for WordPress potentially stores a duplicate copy of every web page on display on your site. The pages are stored locally on the system where LiteSpeed server software is installed and are not transferred to or accessed by LiteSpeed employees in any way, except as necessary in providing routine technical support if you request it. All cache files are temporary, and may easily be purged before their natural expiration, if necessary, via a Purge All command. It is up to individual site administrators to come up with their own cache expiration rules.

In addition to caching, our WordPress plugin has an Image Optimization feature. When optimization is requested, images are transmitted to a remote QUIC.cloud server, processed, and then transmitted back for use on your site. LiteSpeed keeps copies of optimized images for 7 days (in case of network stability issues) and then permanently deletes them. Similarly, the WordPress plugin has a Reporting feature whereby a site owner can transmit an environment report to our server so that we may better provide technical support. Neither of these features collects any visitor data. Only server and site data is involved.

Please see [LiteSpeed’s Privacy Policy](https://www.litespeedtech.com/company/privacy-policy) for our complete Privacy/GDPR statement.

== Frequently Asked Questions ==

= Why do the cache features require LiteSpeed Server? =
This plugin communicates with your LiteSpeed Web Server and its built-in page cache (LSCache) to deliver superior performance to your WordPress site. The plugin’s cache features indicate to the server that a page is cacheable and for how long, or they invalidate particular cached pages using tags.

LSCache is a server-level cache, so it's faster than PHP-level caches. [Compare with other PHP-based caches](https://www.litespeedtech.com/benchmarks/wordpress).

A page cache allows the server to bypass PHP and database queries altogether. LSCache, in particular, because of its close relationship with the server, can remember things about the cache entries that other plugins cannot, and it can analyze dependencies. It can utilize tags to manage the smart purging of the cache, and it can use vary cookies to serve multiple versions of cached content based on things like mobile vs. desktop, geographic location, and currencies. [See our Caching 101 blog series](https://blog.litespeedtech.com/tag/caching-101/).

If all of that sounds complicated, no need to worry. LSCWP works right out of the box with default settings that are appropriate for most sites. [See the Beginner's Guide](https://docs.litespeedtech.com/lscache/lscwp/beginner/).

**Don't have a LiteSpeed server?** Try our QUIC.cloud CDN service. It allows sites on *any server* (nginx and Apache included) to experience the power of LiteSpeed caching! [Click here](https://quic.cloud) to learn more or to give QUIC.cloud a try.

= What about the optimization features of LSCache? =

LSCWP includes additional optimization features, such as Database Optimization, Minification and Combination of CSS and JS files, HTTP/2 Push, CDN Support, Browser Cache, Object Cache, Lazy Load for Images, and Image Optimization! These features do not require the use of a LiteSpeed web server.

= Is the LiteSpeed Cache Plugin for WordPress free? =

Yes, LSCWP will always be free and open source. That said, a LiteSpeed server is required for the cache features, and there are fees associated with some LiteSpeed server editions. Some of the premium online services provided through QUIC.cloud (CDN Service, Image Optimization, Critical CSS, Low-Quality Image Placeholder, etc.) require payment at certain usage levels. You can learn more about what these services cost, and what levels of service are free, on [your QUIC.cloud dashboard](https://my.quic.cloud).

= What server software is required for this plugin? =

A LiteSpeed solution is required in order to use the **LiteSpeed Exclusive** features of this plugin. Any one of the following will work:

1. LiteSpeed Web Server Enterprise with LSCache Module (v5.0.10+)
2. OpenLiteSpeed (v1.4.17+)
3. LiteSpeed WebADC (v2.0+)
4. QUIC.cloud CDN

The **General Features** may be used with *any* web server. LiteSpeed is not required.

= Does this plugin work in a clustered environment? =

The cache entries are stored at the LiteSpeed server level. The simplest solution is to use LiteSpeed WebADC, as the cache entries will be stored at that level.

If using another load balancer, the cache entries will only be stored at the backend nodes, not at the load balancer.

The purges will also not be synchronized across the nodes, so this is not recommended.

If a customized solution is required, please contact LiteSpeed Technologies at `info@litespeedtech.com`

NOTICE: The rewrite rules created by this plugin must be copied to the Load Balancer.

= Where are the cached files stored? =

The actual cached pages are stored and managed by LiteSpeed Servers.

Nothing is stored within the WordPress file structure.

= Does LiteSpeed Cache for WordPress work with OpenLiteSpeed? =

Yes it can work well with OpenLiteSpeed, although some features may not be supported. See **Plugin Features** above for details. Any setting changes that require modifying the `.htaccess` file will require a server restart.

= Is WooCommerce supported? =

In short, yes. However, for some WooCommerce themes, the cart may not be updated correctly. Please [visit our blog](https://blog.litespeedtech.com/2017/05/31/wpw-fixing-lscachewoocommerce-conflicts/) for a quick tutorial on how to detect this problem and fix it if necessary.

= Are my images optimized? =

Images are not optimized automatically unless you set **LiteSpeed Cache > Image Optimization > Image Optimization Settings > Auto Request Cron** to `ON`. You may also optimize your images manually. [Learn more](https://docs.litespeedtech.com/lscache/lscwp/imageopt/).

= How do I make a WP nonce cacheable in my third-party plugin? =

Our API includes a function that uses ESI to "punch a hole" in a cached page for a nonce. This allows the nonce to be cached separately, regardless of the TTL of the page it is on. Learn more in [the API documentation](https://docs.litespeedtech.com/lscache/lscwp/api/#esi). We also welcome contributions to our predefined list of known third party plugin nonces that users can optionally include via [the plugin's ESI settings](https://docs.litespeedtech.com/lscache/lscwp/cache/#esi-nonce).

= How do I enable the crawler? =

The crawler is disabled by default, and must be enabled by the server admin first.

Once the crawler is enabled on the server side, navigate to **LiteSpeed Cache > Crawler > General Settings** and set **Crawler** to `ON`.

For more detailed information about crawler setup, please see [the Crawler documentation](https://docs.litespeedtech.com/lscache/lscwp/crawler/).

= What are the known compatible plugins and themes? =

* [WPML](https://wpml.org/)
* [DoLogin Security](https://wordpress.org/plugins/dologin/)
* [bbPress](https://wordpress.org/plugins/bbpress/)
* [WooCommerce](https://wordpress.org/plugins/woocommerce/)
* [Contact Form 7](https://wordpress.org/plugins/contact-form-7/)
* [Google XML Sitemaps](https://wordpress.org/plugins/google-sitemap-generator/)
* [Yoast SEO](https://wordpress.org/plugins/wordpress-seo/)
* [Wordfence Security](https://wordpress.org/plugins/wordfence/)
* [NextGen Gallery](https://wordpress.org/plugins/nextgen-gallery/)
* [ShortPixel](https://shortpixel.com/h/af/CXNO4OI28044/)
* Aelia CurrencySwitcher
* [Fast Velocity Minify](https://wordpress.org/plugins/fast-velocity-minify/) - Thanks Raul Peixoto!
* Autoptimize
* [Better WP Minify](https://wordpress.org/plugins/bwp-minify/)
* [WP Touch](https://wordpress.org/plugins/wptouch/)
* [Theme My Login](https://wordpress.org/plugins/theme-my-login/)
* [WPLister](https://www.wplab.com/plugins/wp-lister/)
* [WP-PostRatings](https://wordpress.org/plugins/wp-postratings/)
* [Avada 5.1 RC1+](https://avada.theme-fusion.com/)
* [Elegant Themes Divi 3.0.67+](https://www.elegantthemes.com/gallery/divi/)
* [Elegant Divi Builder](https://www.elegantthemes.com/plugins/divi-builder/)
* [Caldera Forms](https://wordpress.org/plugins/caldera-forms/) 1.5.6.2+
* Login With Ajax
* [Ninja Forms](https://wordpress.org/plugins/ninja-forms/)
* [Post Types Order 1.9.3.6+](https://wordpress.org/plugins/post-types-order/)
* [BoomBox — Viral Magazine WordPress Theme](https://themeforest.net/item/boombox-viral-buzz-wordpress-theme/16596434?ref=PX-lab)
* FacetWP (LSWS 5.3.6+)
* Beaver Builder
* WpDiscuz
* WP-Stateless
* Elementor

The vast majority of plugins and themes are compatible with LiteSpeed Cache. The most up-to-date compatibility information can be found [in our documentation](https://docs.litespeedtech.com/lscache/lscwp/thirdparty/)


== Changelog ==

= 3.6.4 - Mar 15 2021 =
* **Toolbox** Fixed Beta Test upgrade error when upgrading to v3.7+.

= 3.6.3 - Mar 10 2021 =
* **Core** Fixed potential upgrade failure when new versions have changes in activation related functions.
* **Core** Upgrade process won't get deactivated anymore on Network setup.

= 3.6.2 - Feb 1 2021 =
* **Page Optimize** Fixed an issue where network purge CSS/JS caused 404 errors for subsites.
* **Page Optimize** Fixed an issue where purge CSS/JS only caused 404 errors.
* **Page Optimize** Added a notice for CSS/JS data detection and potential random string issue.
* **Page Optimize** Limited localization resources to specified .js only. (@closte #292 @ormonk)
* **JS** Data src may now be bypassed from JS Combine. (@ankit)
* **CLI** Fixed a message typo in Purge. (@flixwatchsupport)
* **Browser** Added font/otf to Browser Cache expire list. (@ruikai)
* **Data** Updated data files to accept PR from dev branch only.
* **3rd** Add data-view-breakpoint-pointer to js_excludes.txt for the Events Calendar plugin. (@therealgilles)
* **Cloud** Bypassed invalid requests.
* **Doc** CDN Mapping description improvement. (@mihai A.)

= 3.6.1 - Dec 21 2020 =
* **WP** Tested up to WP v5.6.
* **WebP** Reverted WebP support on Safari Big Sur and Safari v14.0.1+ due to an inability to detect MacOS versions from UA. (@antomal)
* **CDN** Dropped the option `Load JQuery Remotely`.
* **CDN** Fixed CDN URL replacement issue in optimized CSS files. (@ankit)
* **CDN** Fixed an issue where CDN CLI wouldn't set mapping image/CSS/JS to OFF when `false` was the value.
* **CDN** Started using React for CDN Mapping settings.
* **GUI** Secured Server IP setting from potential XSS issues. (@WonTae Jang)
* **Toolbox** Supported both dev and master branches for Beta Test. Latest version updated to v3.6.1.
* **Purge** Purge Pages now can purge non-archive pages too.
* **Admin** Simplified the admin JS.
* **Admin** Limited crawler-related react JS to crawler page only.

= 3.6 - Dec 14 2020 =
* 🌱**WebP** Added WebP support on Safari Big Sur or Safari v14.0.1+. (@ruikai)
* 🐞**Config** Fixed an issue where new installations were not getting the correct default .htaccess content.
* **Crawler** Will auto bypass empty sub-sitemap instead of throwing an exception. (@nanoprobes @Tobolo)
* **Crawler** Now using React for Cookie Simulation settings instead of Vue.js. Dropped Vue.js.
* **Crawler** Dropped `Sitemap Generation` (will only use 3rd party sitemap for crawler).
* **CSS** Added `CSS Combine External and Inline` option for backward compatibility. (@lisa)
* **Object** Forbid .object-cache.ini visits. (@Tarik)
* **Page Optimize** Dropped `Remove Comments` option to avoid combine error.
* **CSS** Added a predefined CSS exclude file `data/css_excludes.txt`.
* **CSS** Excluded Flatsome theme random inline CSS from combine.
* **CSS** Excluded WoodMart theme from combine. (@moemauphie)
* **Page Optimize** Excluded tagDiv.com Newspaper theme dynamic CSS/JS from CSS/JS Combine.
* **CSS** Added predefined JS defer excludes list. (@Shivam)
* **JS** `data-no-defer` option now supports inline JS. (@rafaucau)
* **Media** Lazyload inline library is now bypassed by JS Combine.
* **Admin** Fixed WP-Admin console ID duplicate warnings.
* **Cloud** Dropped QUIC.cloud sync options that have long been unused.
* **CSS** Dropped `Unique CSS File` option (UCSS will always generate unique file, will use whitelist to group post type to one CSS).
* **GUI** Dropped Help tab.
* **Toolbox** Added 3.5.2 to version list.

= 3.5.2 - Oct 27 2020 =
* **CSS** `CSS Combine` is now compatible w/ inline noscript CSS. (@galbaras)
* **GUI** Added ability to manually dismiss the JS option reset message in v3.5.1 upgrade process. (#473917)
* 🐞**CSS** `CSS Excludes` setting will no longer lose items beginning w/ `#`. (@ankit)
* **API** New `litespeed_media_reset` API function for image editing purposes. (@Andro)

= 3.5.1 - Oct 20 2020 =
* **JS** Inline JS containing nonces can now be combined.
* **JS** Reset JS Combine/Defer to OFF when upgrading to avoid breaking sites.
* **JS** Added new option JS Combine External and Inline to allow backwards compatibility.
* **JS** Added Inline JS Defer option back. (@ankit)
* **Page Optimize** Dropped Inline JS Minify option and merged the feature into JS Minify.
* **JS** Pre-added jQuery to the default JS excludes/defer list for better layout compatibility for new users.
* **JS** Excluded Stripe/PayPal/Google Map from JS optimization. (@FPCSJames)
* **JS** Allowed excluded JS to still be HTTP2 pushed. (@joshua)
* **CCSS** Critical CSS now can avoid network pollution from other sites. (@ankit)
* **Toolbox** Beta Test now displays recent public versions so it is easier to revert to an older version
* **Vary** Server environment variable Vary can now be passed to original server from QUIC.cloud for non-LiteSpeed servers.
* **ESI** Improved backward compatibility for ESI nonce list. (@zach E)
* 🐞**Misc** Fixed failure of upgrade button on plugin news banner and made cosmetic improvements.
* **Doc** Added note that LSCWP works with ClassicPress.

= 3.5.0.2 - Sep 30 2020 =
* This is a temporary revert fix. Code is SAME as v3.4.2.

= 3.5.0.1 - Sep 29 2020 =
* 🔥🐞**CSS** Fixed print media query issue when having CSS Combine. (@paddy-duncan)

= 3.5 - Sep 29 2020 =
* **Page Optimize** Refactored CSS/JS optimization.
* **Page Optimize** CSS and JS Combine now each save to a single file without memory usage issues.
* **CSS** Inline CSS Minify is now a part of CSS Minify, and will respect thr original priorities. (thanks to @galbaras)
* **JS** JS Combine now generates a single JS file in the footer. (Special thanks to @ankit)
* **JS** JS Combine now combines external JS files, too. (Thanks to @ankit)
* **JS** JS Deferred Excludes now uses the original path/filename as keywords instead of the minified path/filename, when JS Minify is enabled.
* **JS** JS Combine now combines inline JS, too.
* **JS** JS Excludes may now be used for inline JS snippet.
* **Page Optimize** Inline CSS Minify and Max Combined File Size retired due to changes listed above.
* **CSS** Combined CSS Priority retired due to changes listed above.
* **JS** Exclude JQuery, Combined JS Priority, Load Inline JS Deferred, and Inline JS Deferred Excludes retired due to changes listed above.
* **JS** Predefined data file data/js_excludes.txt now available for JS Excludes.
* **ESI** Predefined data file data/esi.nonces.txt now available for ESI Nonces.
* **ESI** Remote Fetch ESI Nonces functionality retired.
* **API** Added support for new litespeed_esi_nonces filter.
* **Object** Object Cache will not try to reconnect after failure to connect in a single process.
* **CCSS** Remote read CSS will add the scheme if it is missing from the URL.
* **CCSS** CSS will no longer be prepared for a URL if 404 result is detected.
* **CCSS** Fixed most failures caused by third party CSS syntax errors.
* **CCSS** Remote read CSS will fix the scheme if the URL doesn't have it.
* **CCSS** Excluded 404 when preparing CSS before request.
* **CCSS** Adjusted CCSS timeout from 180 seconds to 30 seconds.
* **Image Optimize** Fixed the delete attachment database error that occurred when not using the image optimization service yet.
* **Media** Added iOS 14 WebP support.
* **Data** Fixed database creation failure for MySQL v8.
* **Cloud** Error code err_key will clear the domain key in order to avoid duplicate invalid requests.
* **Network** Fixed issue with object cache password file storage that occurred when resaving the settings. (#302358)
* **Misc** Fixed IP detect compatibility w/ Apache.
* **GUI** Fixed the description for Do Not Cache Categories.
* **Preload** Upgraded Instant Click to a new stable preload library. (@stasonua0)

= 3.4.2 - Sep 8 2020 =
* **CCSS** Corrected the issue that wrongly appended non-CSS files to CSS in links before sending request.
* **3rd** YITH wishlist now sends a combined single sub request for all widgets contained in one page. (LSWS v5.4.9 build 3+ required)
* **ESI** Added support for ESI combine feature.
* **GUI** Dropped banner notification for missing domain key when domain key is not initialized.
* **Log** When QC whitelist check fails, a detailed failure log is now appended.

= 3.4.1 - Sep 2 2020 =
* 🐞**CCSS** Fixed an issue where dynamically generated CSS failed with `TypeError: Cannot read property type of undefined`.
* 🐞**Page Optimize** Fixed CSS optimization compatibility for CSS dynamically generated with PHP.
* **Page Optimize** Added the ability to defer JS even when the resource is excluded from other JS optimizations. (@slr1979)
* **ESI** Added support for ESI last paramater inline value.
* **3rd** YITH Wishlist, when cached for the first time, will no longer send sub requests.

= 3.4 - Aug 26 2020 =
* 🌱**LQIP** New setting **LQIP Excludes**.
* 🌱**LQIP** Added a Clear LQIP Queue button.
* 🌱**CCSS** Added a Clear CCSS Queue button.
* **CCSS** Fixed an issue which wrongly included preloaded images in CCSS. (@pixtweaks)
* **Network** Primary site and subsite settings now display correctly.
* **Page Optimize** Noscript tags generated by LSCWP will only be dropped when the corresponding option is enabled. (@ankit)
* **DB Optimize** Fixed database optimizer conflicts w/ object cache transient setting. (#752931)
* **3rd** Fixed an issue with WooCommerce product purge when order is placed.
* **3rd** Improved WooCommerce product comment compatibility with **WooCommerce Photo Reviews Premium** plugin when using ESI.
* **CDN** Fixed Remote jQuery compatibility with WordPress v5.5. (@pixtweaks)
* **API** New API `litespeed_purge_all_object` and `litespeed_purged_all_object` action hooks.

= 3.3.1 - Aug 12 2020 =
* 🌱**Page Optimize** New option to Remove Noscript Tags. (@phuc88bmt)
* 🐞**LQIP** Fixed a critical bug that bypassed all requests in v3.3.
* **LQIP** Requests are now bypassed if domain has no credit left.
* **Page Optimize** Inline defer will be bypassed if document listener is detected in the code. (@ssurfer)
* **CCSS** Print-only styles will no longer be included in Critical CSS.
* **API** Added hooks to Purge action to handle file deletions. (@biati)
* **Cloud** Plain permalinks are no longer required for use of cloud services.
* **Data** Added an access denial to work with OpenLiteSpeed. (@spenweb #PR228)
* **GUI** Spelling and grammar adjustments. (@blastoise186 #PR253)

= 3.3 - Aug 6 2020 =
* 🌱**Page Optimize** Added a new setting, Inline JS Deferred Excludes. (@ankit)
* **Page Optimize** CSS/JS Combine/Minify file versions will be differentiated by query string hash instead of new filename to reduce DB/file system storage.
* **Page Optimize** Added the ability to use local copies of external JS files for better control over page score impacts.
* **Page Optimize** Improved combination of CSS media queries. (@galbaras)
* **Page Optimize** Reprioritized Inline JS Defer to be optimized before encoding, for a significantly smaller result.
* **LQIP** Detect if the file exists before sending LQIP request to QUIC.cloud.
* **CCSS** Sped up CCSS process significantly by sending HTML and CSS in request.
* **CCSS** Improvements to mobile CSS support in CCSS.
* **CCSS** Minimize CCSS failures by attempting to automatically fix CSS syntax errors.
* **Cloud** Domain Key will be deleted after QUIC.cloud site_not_registered error to avoid endless repeated requests.
* **CDN** CDN Original URL will default to WP Site URL if not set. (@ruikai)
* **CLI** Global output format `--format=json/yaml/dump` and `--json` support in CLI. (@alya1992)
* **CDN** Improved handling of non-image CSS `url()` sources in CDN. (@daniel McD)
* 🐞**CDN** Fixed CDN replacement conflict w/ JS/CSS Optimize. (@ankit)
* **Crawler** Only reset Crawler waiting queues when crawling begins. (@ruikai)
* **Network** Network Enable Cache is no longer reset to ON Use Network Settings in enabled. (@RavanH)
* 🐞**Activation** Fixed a PHP warning that appeared during uninstall. (@RavanH)
* **Debug** Automatically omit long strings when dumping an array to debug log.
* **Report** Subsites report now shows overwritten values along w/ original values. (#52593959)
* **REST** Improved WP5.5 REST compatibility. (@oldrup)
* **GUI** Server IP setting moved from Crawler menu to General menu.
* **GUI** Localize resources moved to Localization tab.
* **Config** News option now defaults to ON.

= 3.2.4 - Jul 8 2020 =
* **Object** New installations no longer get custom data.ini reset, as this could cause lost configuration. (@Eric)
* **ESI** Now using `svar` to load nonces more quickly. (@Lauren)
* **ESI** Fixed the conflicts between nonces in inline JS and ESI Nonces when Inline JS Deferred is enabled. (@JesseDistad)
* 🐞**ESI** Fixed Fetch Latest Predefined Nonce button.
* 🐞**Cache** Fixed an issue where mobile visits were not being cached when Cache Mobile was disabled.
* **CDN** Bypass CDN constant `LITESPEED_BYPASS_CDN` now will apply to all CDN replacements.
* **Router** Dropped `Router::get_uid()` function.
* **Crawler** Updated role simulator function for future UCSS usage.
* **GUI** Textarea will now automatically adjust the height based on the number of rows input.
* **CLI** Fixed an issue that caused WP-Cron to exit when a task errored out. (@DovidLevine @MatthewJohnson)
* **Cloud** No longer communcate with QUIC.cloud when Domain Key is not set and Debug is enabled.
* **Cloud** Score banner no longer automatically fetches a new score. (@LucasRolff)

= 3.2.3.2 - Jun 19 2020 =
* 🔥🐞**Page Optimize** Hotfix for CSS/JS minify/combine. (@jdelgadoesteban @martin_bailey)

= 3.2.3.1 - Jun 18 2020 =
* **API** New filter `litespeed_buffer_before` and `litespeed_buffer_after`. (#PR243 @joejordanbrown)

= 3.2.3 - Jun 18 2020 =
* 🌱**Page Optimize** Added Unique CSS option for future removal of unused CSS per page. (@moongear)
* **Page Optimize** Fixed an issue where Font Optimization could fail when having Load JS Deferred and Load Inline JS Deferred. (#PR241 @joejordanbrown)
* 🐞**Page Optimize** Fixed an issue with Font Display Optimization which caused Google Fonts to load incorrectly. (#PR240 @joejordanbrown @haidan)
* 🐞**Network** Use Primary Site Configuration setting for network sites now works properly with Object Cache and Browser Cache. (#56175101)
* **API** Added filter `litespeed_is_from_cloud` to detect if the current request is from QC or not. (@lechon)
* **ESI** ESI Nonce now can fetch latest list with one click.
* **GUI** Updated remaining documentation links & some minor UI tweaks. (@Joshua Reynolds)

= 3.2.2 - Jun 10 2020 =
* 🌱**Purge** Scheduled Purge URLs now supports wildcard. (#427338)
* 🌱**ESI** ESI Nonce supports wildcard match now.
* **Network** Use Primary Site Settings now can support Domain Key, and override mechanism improved. (@alican532 #96266273)
* **Cloud** Debug mode will now have no interval limit for most cloud requests. (@ruikai)
* **Conf** Default Purge Stale to OFF.
* **GUI** Purge Stale renamed to Serve Stale.
* **Data** Predefined nonce list located in `/litespeed-cache/data/esi.nonce.txt`. Pull requests welcome.
* **Debug** Limited parameter log length.
* 🐞**CDN** Fixed an issue where upgrading lost value of CDN switch setting. (#888668)
* **3rd** Caldera Forms ESI Nonce enhancement. (@paconarud16 @marketingsweet)
* **3rd** Elementor now purges correctly after post/page updates.
* **3rd** Disabled Page Optimization features on AMP to avoid webfont JS inject. (@rahulgupta1985)

= 3.2.1 - Jun 1 2020 =
* **Cloud** LQIP/CCSS rate limit tweaks. (@ianpegg)
* **Admin** Improved frontend Admin Bar menu functionality. (#708642)
* **Crawler** Fixed an issue where cleaning up a crawler map with a leftover page number would cause a MySQL error. (@saowp)
* **Image Optimize** Added WP default thumbnails to image optimization summary list. (@johnny Nguyen)
* **REST** Improved REST compatibility w/ WP4.4-. (#767203)
* **GUI** Moved Use Primary Site Configuration to General menu. (@joshua)

= 3.2 - May 27 2020 =
* **Image Optimize** Major improvements in queue management, scalability, and speed. (@LucasRolff)
* **Cloud** Implemented a series of communication enhancements. (@Lucas Rolff)
* **Crawler** Enhanced PHP 5.3 compatibility. (@JTS-FIN #230)
* **Page Optimize** Appended image template in wpDiscuz script into default lazyload image exclude list. (@philipfaster @szmigieldesign)
* **Page Optimize** Eliminated the 404 issue for CSS/JS in server environments with missing SCRIPT_URI. (@ankit)
* **Data** ENhanced summary data storage typecasting.

= 3.1 - May 20 2020 =
* 🌱**Network** Added Debug settings to network level when on network.
* 🐞**Purge** Network now can purge all.
* 🐞**Network** Fixed issue where saving the network primary site settings failed.
* **Network** Moved Beta Test to network level when on network.
* 🐞**Cache** Fixed issue in admin where new post editor was wrongly cached for non-admin roles. (@TEKFused)
* 🐞**Data** Fixed issue with crawler & img_optm table creation failure. (@berdini @piercand)
* 🐞**Core** Improved plugin activation compatibility on Windows 10 #224 (@greenphp)
* **Core** Improved compatibility for .htaccess path search.
* **Object** Catch RedisException. (@elparts)
* Fixed Script URI issue in 3.0.9 #223 (@aonsyed)
* **Image Optimize** Show thumbnail size set list in image optimization summary. (@Johnny Nguyen)
* **Debug** Parameters will now be logged.

= 3.0.9 - May 13 2020 =
* **Purge** Comment cache can be successfully purged now.
* **Data** Better MySQL charset support for crawler/image optimize table creation. (@Roshan Jonah)
* **API** New hook to fire after Purge All. (@salvatorefresta)
* **Crawler** Resolve IP for crawler.
* **Task** PHP5.3 Cron compatibility fix.
* **3rd** Elementor edit mode compatibility.
* **Page Optimize** Fixed an issue where Purge Stale returned 404 for next visitor on CSS/JS.
* **Page Optimize** Fixed the PHP warning when srcset doesn't have size info inside. (@gvidano)
* **Cloud** Fixed the potential PHP warning when applying for the domain key.
* **Core** PHP __DIR__ const replacement. (@MathiasReker)

= 3.0.8.6 - May 4 2020 =
* **CCSS** Bypassed CCSS functionality on frontend when domain key isn't setup yet.
* **Cloud** Fixed WP node redetection bug when node expired. (@Joshua Reynolds)
* **Crawler** Fixed an issue where URL is wrongly blacklisted when using ADC.

= 3.0.8.5 - May 1 2020 =
* 🔥🐞**3rd** Hotfix for WPLister critical error due to v3.0.8.4 changes.
* **Image Optimize** Unfinished queue now will get more detailed info to indicate the proceeding status on node.
* **CLI** Options can now use true/false as value for bool. (@gavin)
* **CLI** Detect error if the ID does not exist when get/set an option value.
* **Doc** An API comment typo for `litespeed_esi_load-` is fixed.

= 3.0.8.4 - Apr 30 2020 =
* 🌱**Crawler** New setting: Sitemap timeout. (#364607)
* **Image Optimize** Images that fail to optimize are now counted to increase next request limit.
* **Cloud** Redetect fastest node every 3 days.
* **Cloud** Suppressed auto upgrade version detection error. (@marc Dahl)
* **3rd** 3rd party namespace compatibility. (#366352)

= 3.0.8.3 - Apr 28 2020 =
* **Cloud** Better compatibility for the Link to QUIC.cloud operation. (@Ronei de Sousa Almeida)
* **Image Optimize** Automatically clear invalid image sources before sending requests. (@Richard Hordern)

= 3.0.8.2 - Apr 27 2020 =
* **GUI** Corrected the Request Domain Key wording.

= 3.0.8.1 - Apr 27 2020 =
* **Object** Object cache compatibility for upgrade from v2.9.9- versions.

= 3.0.8 - Apr 27 2020 =
* Released v3 on WordPress officially.

= 3.0.4 - Apr 23 2020 =
* **Cloud** Apply Domain Key now receives error info in next apply action if failed to generate.
* **GUI** Apply Domain Key timeout now displays troubleshooting guidance.
* **REST** Added /ping and /token to REST GET for easier debug.
* **Cache** Dropped `advanced-cache.php` file detection and usage.

= 3.0.3 - Apr 21 2020 =
* **Conf** Settings from all options (data ini, defined constant, and forced) will be filtered and cast to expected type.
* **Upgrade** CDN mapping and other multiple line settings will now migrate correctly when upgrading from v2 to v3.

= 3.0.2 - Apr 17 2020 =
* **GUI** More guidance on domain key setting page.
* **Cloud** Now Apply Domain Key will append the server IP if it exists in Crawler Server IP setting.

= 3.0.1 - Apr 16 2020 =
* **Data** Increased timeout for database upgrade related to version upgrade. Display a banner while update in progress.
* **Page Optimize** All appended HTML attributes now will use double quotes to reduce the conflicts when the optimized resources are in JS snippets.

= 3.0 - Apr 15 2020 =
* 🌱**Media** LQIP (Low Quality Image Placeholder).
* 🌱**Page Optimize** Load Inline JS Deferred Compatibility Mode. (Special thanks to @joe B - AppsON)
* 🌱**Cloud** New QUIC.cloud API key setting.
* 🌱**ESI** New ESI nonce setting.
* 🌱**Media** JPG quality control. (@geckomist)
* 🌱**Media** Responsive local SVG placeholder.
* 🌱**Discussion** Gravatar warmup cron.
* 🌱**DB** Table Engine Converter tool. (@johnny Nguyen)
* 🌱**DB** Database summary: Autoload size. (@JohnnyNguyen)
* 🌱**DB** Database summary: Autoload entries list.
* 🌱**DB** Revisions older than. (@thememasterguru)
* 🌱**Cache** Forced public cache setting. (#308207)
* 🌱**Crawler** New timeout setting to avoid incorrect blacklist addition. (#900171)
* 🌱**Htaccess** Frontend & backend .htaccess path customize. (@jon81)
* 🌱**Toolbox** Detailed Heartbeat Control (@K9Heaven)
* 🌱**Purge** Purge Stale setting.
* 🌱**Page Optimize** Font display optimization. (@Joeee)
* 🌱**Page Optimize** Google font URL display optimization.
* 🌱**Page Optimize** Load Inline JS deferred.
* 🌱**Page Optimize** Store gravatar locally. (@zzTaLaNo1zz @JohnnyNguyen)
* 🌱**Page Optimize** DNS prefetch control setting.
* 🌱**Page Optimize** Lazy Load Image Parent Class Name Excludes. (@pako69)
* 🌱**Page Optimize** Lazy load iframe class excludes. (@vnnloser)
* 🌱**Page Optimize** Lazy load exclude URIs. (@wordpress_fan1 @aminaz)
* 🌱**GUI** New Dashboard and new menus.
* 🌱**Image Optimize** Supported GIF WebP optimization. (@Lucas Rolff)
* 🌱**Image Optimize** New workflow for image optimization (Gather first, request second).
* 🌱**Image Optimize** The return of Rescan.
* 🌱**CLI** Get single option cmd.
* 🌱**CLI** QUIC.cloud cmd supported.
* 🌱**CLI** CLI can send report now.
* 🌱**Health** Page speed and page score now are in dashboard.
* 🌱**Conf** Supported consts overwritten of `LITESPEED_CONF__` for all settings. (@menathor)
* 🌱**REST** New REST TTL setting.  (@thekendog)
* 🌱**CDN** New setting `HTML Attribute To Replace`. CDN can now support any HTML attribute to be replaced. (@danushkaj91)
* 🌱**Debug** Debug URI includes/excludes setings.
* 🌱**Crawler** 🐞 Support for multiple domains in custom sitemap. (@alchem)
* 🌱**Crawler** New Crawler dashboard. New sitemap w/ crawler status. New blacklist w/ reason.
* 🌱**Media** LQIP minimum dimensions setting. (@Lukasz Szmigiel)
* **Crawler** Able to add single rows to blacklist.
* **Crawler** Crawler data now saved into database instead of creating new files.
* **Crawler** Larger timeout to avoid wrongly added to blacklist.
* **Crawler** Manually changed the priority of mobile and WebP. (@rafaucau)
* **Browser** Larger Browser Cache TTL for Google Page Score improvement. (@max2348)
* **Task** Task refactored. Disabled cron will not show in cron list anymore.
* **Task** Speed up task load speed.
* **ESI** Added Bloom nonce to ESI for Elegant Themes.
* **Cloud** Able to redetect cloud nodes now.
* **Img_optm** Fixed stale data in redirected links.
* **Lazyload** CSS class `litespeed_lazyloaded` is now appended to HTML body after lazyload is finished. (@Adam Wilson)
* **Cache** Default drop qs values. (@gijo Varghese)
* **LQIP** Show all LQIP images in Media column.
* **CDN** Can now support custom REST API prefix other than wp-json. (#174 @therealgilles)
* **IAPI** Used REST for notify/destroy/check_img; Removed callback passive/aggreesive IAPI func
* **CSSJS** Saved all static files to litespeed folder; Uninstallation will remove static cache folder too; Reduced .htaccess rules by serving CSS/JS directly.
* **Object** Fixed override different ports issue. (@timofeycom #ISSUE178)
* **Conf** DB Tables will now only create when activating/upgrading/changing settings.
* **DB** Simplified table operation funcs.
* **CSSJS** Bypassed CSS/JS generation to return 404 if file is empty (@grubyy)
* **CSSJS** Inline JS defer will not conflict with JS inline optm anymore.
* **CDN** settings will not be overwritten by primary settings in network anymore. (@rudi Khoury)
* **OPcache** Purged all opcache when updating cache file. (@closte #170)
* **CLI** CLI cmd renamed.
* **CLI** Well-formated table to show all options.
* **Purge** Only purge related posts that have a status of "published" to avoid unnecessary "draft" purges. (@Jakub Knytl)
* **GUI** Removed basic/adv mode for settings. Moved non-cache settings to its own menu.
* **Htaccess** Protected .htaccess.bk file. Only kept one backup. (@teflonmann)
* **Crawler** Crawler cookie now support `_null` as empty value.
* **Crawler** Avoid crawler PHP fatal error on Windows OS. (@technisolutions)
* **Admin** Simplified admin setting logic.
* **Conf** Multi values settings now uniformed to multi lines for easier setting.
* **Conf** New preset default data file `data/consts.default.ini`.
* **Conf** Config setting renamed and uniformed.
* **Conf** Dropped `Conf::option()`. Used `Conf::val()` instead.
* **Conf** Improved conf initialization and upgrade convertion workflow.
* **Core** Code base refactored. New namespace LiteSpeed.
* **API** New API: iframe lazyload exclude filter.
* **GUI** human readable seconds. (@MarkCanada)
* **API** API refactored. * NOTE: All 3rd party plugins that are using previous APIs, especially `LiteSpeed_Cache_API`, need to be adjusted to the latest one. Same for ESI blocks.* ESI shortcode doesn't change.
* **API** New hook `litespeed_update_confs` to settings update.
* **API** New Hooks `litespeed_frontend_shortcut` and `litespeed_backend_shortcut` for dropdown menu. (@callaloo)
* **API** Removed `litespeed_option_*` hooks. Use `litespeed_force_option` hook insteadly
* **API** Renamed `litespeed_force_option` to `litespeed_conf_force`.
* **API** Removed function `litespeed_purge_single_post`.
* **REST** New rest API to fetch public IP.
* **GUI** Hiding Cloudflare/Object Cache/Cloud API key credentials. (@menathor)
* **GUI** Renamed all backend link tag from lscache to litespeed.
* **GUI** fixed duplicated form tag.
* **GUI** Fix cron doc link. (@arnab Mohapatra)
* **GUI** Frontend adminbar menu added `Purge All` actions. (@Monarobase)
* **GUI** Localized vue.js to avoid CloudFlare cookie. (@politicske)
* **GUI** Always show optm column in Media Library for future single row optm operation. (@mikeyhash)
* **GUI** Displayed TTL range below the corresponding setting.
* **GUI** GUI refactored.
* **Debug** Report can now append notes.
* **3rd** Default added parallax-image to webp replacement for BB.
* **3rd** User Switching plugin compatibility. (@robert Staddon)
* **3rd** Beaver Builder plugin compatibility with v3.0.
* **3rd** Avada plugin compatibility w/ BBPress. (@pimg)
* **3rd** WooCommerce PayPal Checkout Gateway compatibility. (#960642 @Glen Cabusas)
* **Network** Fixed potential timeout issue when containing a large volume of sites. (@alican532)
* **Debug** `Disable All Features` now will see the warning banner if ON.
* **Debug** Dropped `log filters` section.
* **Debug** Debug and Tools sections combined into new `Toolbox` section.
* 🐞**Crawler** Multi sites will now use separate sitemap even when `Use Primary Site` is ON. (@mrhuynhanh)
* 🐞**Img_optm** Fixed large volume image table storage issue. (#328956)
* 🐞 **Cloud** Cloud callback hash validation fixed OC conflict. (@pbpiotr)
* 🎊 Any user that had the contribution to our WP community or changelog (even just bug report/feedback/suggestion) can apply for extra credits in QUIC.cloud.

= 2.9.9.2 - Nov 24 2019 =
* 🌱**GUI** New settings to limit News Feed to plugin page only.

= 2.9.9.1 - Nov 18 2019 =
* 🌱**Env** Environment Report can now append a passwordless link for support access without wp-admin password.
* **Admin** The latest v3.0 beta test link may now be shown on the admin page when it's available.
* **3rd** Compatibility with [DoLogin Security](https://wordpress.org/plugins/dologin/).
* 🐞**ESI** Fixed a failure issue with Vary Group save. (@rafasshop)
* 🐞**3rd** In browsers where WebP is not supported, Divi image picker will no longer serve WebP. (@Austin Tinius)

= 2.9.9 - Oct 28 2019 =
* <strong>Core</strong>: Preload all classes to avoid getting error for upcoming v3.0 upgrade.
* <strong>Object</strong>: Improved compatibility with upcoming v3.0 release.
* <strong>ESI</strong>: Unlocked ESI for OLS in case OLS is using QUIC.cloud CDN which supports ESI.
* <strong>3rd</strong>: Elementor Edit button will now show when ESI enabled. (#PR149 #335322 @maxgorky)
* 🐞<strong>Media</strong>: Fixed missing Media optimization column when Admin role is excluded from optimization in settings. (@mikeyhash @pako69 @dgilfillan)

= 2.9.8.7 - Oct 11 2019 =
* <strong>3rd</strong>: Enhanced WP stateless compatibility. (#PR143)
* <strong>3rd</strong>: Fixed a PHP warning caused by previous PR for AMP. (#PR176)

= 2.9.8.6 - Sep 24 2019 =
* <strong>3rd</strong>: Bypassed page optimizations for AMP. (#359748 #PR169)
* <strong>GUI</strong>: Firefox compatibility with radio button state when reloading pages. (#288940 #PR162)
* <strong>GUI</strong>: Updated Slack invitation link. (#PR173)

= 2.9.8.5 - Aug 21 2019 =
* <strong>CCSS</strong>: Removed potential PHP notice when getting post_type. (@amcgiffert)
* <strong>CDN</strong>: Bypassed CDN replacement on admin page when adding media to page/post. (@martin_bailey)
* 🐞<strong>Media</strong>: Fixed inability to update or destroy postmeta data for child images. (#167713)

= 2.9.8.4 - Jul 25 2019 =
* <strong>Object</strong>: Increased compatibility with phpredis 5.0.
* <strong>Object</strong>: Appended `wc_session_id` to default Do Not Cache Groups setting to avoid issue where WooCommerce cart items were missing when Object Cache is used. NOTE: Existing users must add `wc_session_id` manually! (#895333)
* <strong>CSS</strong>: Added null onload handler for CSS async loading. (@joejordanbrown)
* 🕷️: Increased crawler timeout to avoid wrongly adding a URL to the blacklist.
* <strong>3rd</strong>: WooCommerce Advanced Bulk Edit can now purge cache automatically.

= 2.9.8.3 - Jul 9 2019 =
* <strong>CSS</strong>: Enhanced the CSS Minify compatibility for CSS with missing closing bracket syntax errors. (@fa508210020)
* 🕷️: Crawler now supports both cookie and no-cookie cases. (@tabare)
* <strong>CCSS</strong>: Enhanced compatibility with requested pages where meta info size exceeds 8k. (@Joe B)
* <strong>CCSS</strong>: No longer processing "font" or "import" directives as they are not considered critical. (@Ankit @Joe B)
* <strong>IAPI</strong>: Removed IPv6 from all servers to avoid invalid firewall whitelist.

= 2.9.8.2 - Jun 17 2019 =
* 🔥🐞 <strong>3rd</strong>: Fixed PHP 5.3 compatibility issue with Facetwp.

= 2.9.8.1 - Jun 17 2019 =
* <strong>3rd</strong>: Set ESI template hook priority to highest number to prevent ESI conflict with Enfold theme. (#289354)
* <strong>3rd</strong>: Improved Facetwp reset button compatibility with ESI. (@emilyel)
* <strong>3rd</strong>: Enabled user role change to fix duplicate login issue for plugins that use alternative login processes. (#114165 #717223 @sergiom87)
* <strong>GUI</strong>: Wrapped static text with translate function. (@halilemreozen)

= 2.9.8 - May 22 2019 =
* <strong>Core</strong>: Refactored loading priority so user related functions & optimization features are set after user initialization. (#717223 #114165 #413338)
* <strong>Media</strong>: Improved backup file calculation query to prevent out-of-memory issue.
* <strong>Conf</strong>: Feed cache now defaults to ON.
* <strong>API</strong>: Fully remote attachment compatibility API of image optimization now supported.
* 🕷️: Bypassed vary change for crawler; crawler can now simulate default vary cookie.
* <strong>ESI</strong>: Refactored ESI widget. Removed `widget_load_get_options()` function.
* <strong>ESI</strong>: Changed the input name of widget fields in form.
* <strong>3rd</strong>: Elementor can now save ESI widget settings in frontend builder.
* <strong>3rd</strong>: WP-Stateless compatibility.
* <strong>IAPI</strong>: Image optimization can now successfully finish the destroy process with large volume images with automatic continual mode.
* 🐞<strong>CDN</strong>: Fixed issue with Load JQuery Remotely setting where WP 5.2.1 provided an unexpected jQuery version.
* 🐞<strong>3rd</strong>: Login process now gets the correct role; fixed double login issue.

= 2.9.7.2 - May 2 2019 =
* <strong>Conf</strong>: Enhanced compatibility when an option is not properly initialized.
* <strong>Conf</strong>: Prevent non-array instance in widget from causing 500 error. (#210407)
* <strong>CCSS</strong>: Increase CCSS generation timeout to 60s.
* <strong>Media</strong>: Renamed lazyload CSS class to avoid conflicts with other plugins. (@DynamoProd)
* <strong>JS</strong>: Improved W3 validator. (@istanbulantik)
* <strong>QUIC</strong>: Synced cache tag prefix for static files cache.
* <strong>ESI</strong>: Restored query strings to ESI admin bar for accurate rendering. (#977284)
* <strong>ESI</strong>: Tweaked ESI init priority to honor LITESPEED_DISABLE_ALL const. ESI will now init after plugin loaded.
* 🐞<strong>ESI</strong>: No longer initialize ESI if ESI option is OFF.
* <strong>API</strong>: New "Disable All" API function.
* <strong>API</strong>: New "Force public cache" API function.
* 🐞<strong>Vary</strong>: Fixed an issue with saving vary groups.
* 🐞<strong>IAPI</strong>: Fixed an issue where image md5 validation failed due to whitespace in the image path.
* 🐞<strong>3rd</strong>: Bypass all optimization/ESI/Cache features when entering Divi Theme Builder frontend editor.
* 🐞<strong>3rd</strong>: Fixed an issue where DIVI admin bar exit button didn't work when ESI was ON.

= 2.9.7.1 - Apr 9 2019 =
* <strong>Purge</script>: Purge All no longer includes Purge CCSS/Placeholder.
* <strong>3rd</strong>: Divi Theme Builder no longer experiences nonce expiration issues in the contact form widget. (#475461)

= 2.9.7 - Apr 1 2019 =
* 🌱🌱🌱 QUIC.cloud CDN feature. Now Apache/Nginx can use LiteSpeed cache freely.

= 2.9.6 - Mar 27 2019 =
* 🌱<strong>IAPI</strong>: Appended XMP to `Preserve EXIF data` setting. WebP will now honor this setting. (#902219)
* <strong>Object</script>: Fixed SASL connection with LSMCD.
* <strong>ESI</strong>: Converted ESI URI parameters to JSON; Added ESI validation.
* <strong>Import</strong>: Import/Export will now use JSON format. <strong>Please re-export any backed up settings. Previous backup format is no longer recognized.</strong>
* <strong>Media</strong>: WebP replacement will honor `Role Excludes` setting now. (@mfazio26)
* <strong>Data</strong>: Forbid direct visit to const.default.ini.
* <strong>Utility</strong>: Can handle WHM passed in `LITESPEED_ERR` constant now.
* <strong>IAPI</strong>: Communicate via JSON encoding.
* <strong>IAPI</strong>: IAPI v2.9.6.

= 2.9.5 - Mar 14 2019 =
* 🌱 Auto convert default WordPress nonce to ESI to avoid expiration.
* 🌱 <strong>API</strong>: Ability to easily convert custom nonce to ESI by registering `LiteSpeed_Cache_API::nonce_action`.
* <strong>OPTM</strong>: Tweaked redundant attr `data-no-optimize` in func `_analyse_links` to `data-ignore-optimize` to offer the API to bypass optimization but still move src to top of source code.
* <strong>API</strong>: Renamed default nonce ESI ID from `lscwp_nonce_esi` to `nonce`.
* <strong>API</strong>: Added WebP generation & validation hook API. (@alim #wp-stateless)
* <strong>API</strong>: Added hook to bypass vary commenter check. (#wpdiscuz)
* <strong>Doc</strong>: Clarified Cache Mobile description. (@JohnnyNguyen)
* <strong>Doc</strong>: Replaced incorrect link in description. (@JohnnyNguyen)
* <strong>3rd</strong>: Improved wpDiscuz compatibility.
* 🐞<strong>3rd</strong>: Fixed Divi Theme Builder comment compatibility on non-builder pages. (#410919)
* <strong>3rd</strong>: Added YITH ESI adjustment.

= 2.9.4.1 - Feb 28 2019 =
* 🔥🐞<strong>Tag</strong>: Fixed issue where unnecessary warning potentially displayed after upgrade process when object cache is enabled.

= 2.9.4 - Feb 27 2019 =
* 🐞<strong>REST</strong>: New REST class with better WP5 Gutenberg and internal REST call support when ESI is embedded.
* <strong>ESI</strong>: ESI block ID is now in plain text in ESI URL parameters.
* 🐞<strong>ESI</strong>: Fixed a redundant ESI 301 redirect when comma is in ESI URL.
* <strong>ESI</strong>: REST call can now parse shortcodes in ESI.
* <strong>API</strong>: Changed ESI `parse_esi_param()` function to private and `load_esi_block` function to non-static.
* <strong>API</strong>: Added `litespeed_is_json` hook for buffer JSON conversion.
* <strong>GUI</strong>: Prepended plugin name to new version notification banner.
* <strong>3rd</strong>: WPML multi domains can now be handled in optimization without CDN tricks.

= 2.9.3 - Feb 20 2019 =
* <strong>ESI</strong>: ESI shortcodes can now be saved in Gutenberg editor.
* <strong>ESI</strong>: ESI now honors the parent page JSON data type to avoid breaking REST calls (LSWS 5.3.6+).
* <strong>ESI</strong>: Added is_json parameter support for admin_bar.
* <strong>ESI</strong>: Simplified comment form code.
* <strong>3rd</strong>: Better page builder plugin compatibility within AJAX calls.
* <strong>3rd</strong>: Compatibility with FacetWP (LSWS 5.3.6+).
* <strong>3rd</strong>: Compatibility with Beaver Builder.
* <strong>Debug</strong>: Added ESI buffer content to log.
* <strong>Tag</strong>: Only append blog ID to cache tags when site is part of a network.
* <strong>IAPI</strong>: Optimized database query for pulling images.
* <strong>GUI</strong>: Added more plugin version checking for better feature compatibility.
* <strong>GUI</strong>: Ability to bypass non-critical banners with the file .litespeed_no_banner.
* <strong>Media</strong>: Background image WebP replacement now supports quotes around src.

= 2.9.2 - Feb 5 2019 =
* <strong>API</strong>: Add a hook `litespeed_esi_shortcode-*` for ESI shortcodes.
* <strong>3rd</strong>: WooCommerce can purge products now when variation stock is changed.
* 🐞🕷️: Forced HTTP1.1 for crawler due to a CURL HTTP2 bug.

= 2.9.1 - Jan 25 2019 =
* <strong>Compatibility</strong>: Fixed fatal error for PHP 5.3.
* <strong>Compatibility</strong>: Fixed PHP warning in htmlspecialchars when building URLs. (@souljahn2)
* <strong>Media</strong>: Excluded invalid image src from lazyload. (@andrew55)
* <strong>Optm</strong>: Improved URL compatibility when detecting closest cloud server.
* <strong>ESI</strong>: Supported JSON format comment format in ESI with `is_json` parameter.
* <strong>API</strong>: Added filters to CCSS/CSS/JS content. (@lhoucine)
* <strong>3rd</strong>: Improved comment compatibility with Elegant Divi Builder.
* <strong>IAPI</strong>: New Europe Image Optimization server (EU5). <strong>Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips).</strong>
* <strong>GUI</strong>: No longer show banners when `Disable All` in `Debug` is ON. (@rabbitwordpress)
* <strong>GUI</strong>: Fixed button style for RTL languages.
* <strong>GUI</strong>: Removed unnecessary translation in report.
* <strong>GUI</strong>: Updated readme wiki links.
* <strong>GUI</strong>: Fixed pie styles in image optimization page.

= 2.9 - Dec 31 2018 =
* 🌱<strong>Media</strong>: Lazy Load Image Classname Excludes. (@thinkmedia)
* 🌱: New EU/AS cloud servers for faster image optimization handling.
* 🌱: New EU/AS cloud servers for faster CCSS generation.
* 🌱: New EU/AS cloud servers for faster responsive placeholder generation.
* 🌱<strong>Conf</strong>: Ability to set single options via link.
* 🌱<strong>Cache</strong>: Ability to add custom TTLs to Force Cache URIs.
* <strong>Purge</strong>: Added post type to Purge tags.
* <strong>Purge</strong>: Redefined CCSS page types.
* <strong>Core</strong>: Using Exception for .htaccess R/W.
* <strong>IAPI</strong>: <strong>New cloud servers added. Please whitelist the new [IAPI IP List](https://wp.api.litespeedtech.com/ips).</strong>
* <strong>Optm</strong>: Trim BOM when detecting if the page is HTML.
* <strong>GUI</strong>: Added PageSpeed Score comparison into promotion banner.
* <strong>GUI</strong>: Refactored promotion banner logic.
* <strong>GUI</strong>: Removed page optimized comment when ESI Silence is requested.
* <strong>GUI</strong>: WHM transient changed to option instead of transient when storing.
* <strong>GUI</strong>: Appending more descriptions to CDN filetype setting.
* <strong>IAPI</strong>: Removed duplicate messages.
* <strong>IAPI</strong>: Removed taken_failed/client_pull(duplicated) status.
* <strong>Debug</strong>: Environment report no longer generates hash for validation.
* <strong>3rd</strong>: Non-cacheable pages no longer punch ESI holes for Divi compatibility.
* 🐞<strong>Network</strong>: Added slashes for mobile rules when activating plugin.
* 🐞<strong>CCSS</strong>: Eliminated a PHP notice when appending CCSS.

= 2.8.1 - Dec 5 2018 =
* 🐞🕷️: Fixed an activation warning related to cookie crawler. (@kacper3355 @rastel72)
* 🐞<strong>Media</strong>: Replace safely by checking if pulled images is empty or not first. (@Monarobase)
* <strong>3rd</strong>: Shortcode ESI compatibility with Elementor.

= 2.8 - Nov 30 2018 =
* 🌱: ESI shortcodes.
* 🌱: Mobile crawler.
* 🌱: Cookie crawler.
* <strong>API</strong>: Can now add `_litespeed_rm_qs=0` to bypass Remove Query Strings.
* <strong>Optm</strong>: Removed error log when minify JS failed.
* 🐞<strong>Core</strong>: Fixed a bug that caused network activation PHP warning.
* <strong>Media</strong>: Removed canvas checking for WebP to support TOR. (@odeskumair)
* <strong>Media</strong>: Eliminated potential image placeholder PHP warning.
* <strong>3rd</strong>: Bypassed Google recaptcha from Remove Query Strings for better compatibility.
* <strong>IAPI</strong>: Showed destroy timeout details.
* <strong>Debug</strong>: Moved Google Fonts log to advanced level.
* <strong>GUI</strong>: Replaced all Learn More links for functions.
* <strong>GUI</strong>: Cosmetic updates including Emoji.
* 🕷️: Removed duplicated data in sitemap and blacklist.

= 2.7.3 - Nov 26 2018 =
* <strong>Optm</strong>: Improved page render speed with Web Font Loader JS library for Load Google Fonts Asynchronously.
* <strong>Optm</strong>: Directly used JS library files in plugin folder instead of short links `/min/`.
* <strong>Optm</strong>: Handled exceptions in JS optimization when meeting badly formatted JS.
* <strong>3rd</strong>: Added Adobe Lightroom support for NextGen Gallery.
* <strong>3rd</strong>: Improved Postman app support for POST JSON requests.
* <strong>IAPI</strong>: <strong>US3 server IP changed to 68.183.60.185</strong>.

= 2.7.2 - Nov 19 2018 =
* 🌱: Auto Upgrade feature.
* <strong>CDN</strong>: Bypass CDN for cron to avoid WP jQuery deregister warning.

= 2.7.1 - Nov 15 2018 =
* 🌱<strong>CLI</strong>: Ability to set CDN mapping by `set_option litespeed-cache-cdn_mapping[url][0] https://url`.
* 🌱<strong>CDN</strong>: Ability to customize default CDN mapping data in default.ini.
* 🌱<strong>API</strong>: Default.ini now supports both text-area items and on/off options.
* <strong>Vary</strong>: Refactored Vary and related API.
* <strong>Vary</strong>: New hook to manipulate vary cookies value.
* <strong>Core</strong>: Activation now can generate Object Cache file.
* <strong>Core</strong>: Unified Object Cache/rewrite rules generation process across activation/import/reset/CLI.
* <strong>Core</strong>: Always hook activation to make activation available through the front end.
* 🐞<strong>IAPI</strong>: Fixed a bug where environment report gave incorrect image optimization data.
* 🐞<strong>OLS</strong>: Fixed a bug where login cookie kept showing a warning on OpenLiteSpeed.
* 🐞<strong>Core</strong>: Fixed a bug where Import/Activation/CLI was missing CDN mapping settings.
* <strong>API</strong>: <strong>Filters `litespeed_cache_media_lazy_img_excludes/litespeed_optm_js_defer_exc` passed-in parameter is changed from string to array.</strong>

= 2.7 - Nov 2 2018 =
* 🌱: Separate Purge log for better debugging.
* <strong>3rd</strong>: Now fully compatible with WPML.
* <strong>IAPI</strong>: Sped up Image Optimization workflow.
* <strong>GUI</strong>: Current IP now shows in Debug settings.
* <strong>GUI</strong>: Space separated placeholder queue list for better look.
* <strong>IAPI</strong>: <strong>EU3 server IP changed to 165.227.131.98</strong>.

= 2.6.4.1 - Oct 25 2018 =
* 🔥🐞<strong>Media</strong>: Fixed a bug where the wrong table was used in the Image Optimization process.
* <strong>IAPI</strong>: IAPI v2.6.4.1.

= 2.6.4 - Oct 24 2018 =
* 🌱: Ability to create custom default config options per hosting company.
* 🌱: Ability to generate mobile Critical CSS.
* 🐞<strong>Media</strong>: Fixed a bug where Network sites could incorrectly override optimized images.
* 🐞<strong>CDN</strong>: Fixed a bug where image URLs containing backslashes were matched.
* <strong>Cache</strong>: Added default Mobile UA config setting.
* <strong>GUI</strong>: Fixed unknown shortcut characters for non-English languages Setting tabs.

= 2.6.3 - Oct 18 2018 =
* 🌱: Ability to Reset All Options.
* 🌱<strong>CLI</strong>: Added new `lscache-admin reset_options` command.
* <strong>GUI</strong>: Added shortcuts for more of the Settings tabs.
* <strong>Media</strong>: Updated Lazy Load JS library to the most recent version.
* There is no longer any need to explicitly Save Settings upon Import.
* Remove Query String now will remove *all* query strings in JS/CSS static files.
* <strong>IAPI</strong>: Added summary info to debug log.

= 2.6.2 - Oct 11 2018 =
* <strong>Setting</strong>: Automatically correct invalid numeric values in configuration settings upon submit.
* 🐞<strong>Media</strong>: Fixed the issue where iframe lazy load was broken by latest Chrome release. (@ofmarconi)
* 🐞: Fixed an issue with Multisite where subsites failed to purge when only primary site has WooCommerce . (@kierancalv)

= 2.6.1 - Oct 4 2018 =
* 🌱: Ability to generate separate Critical CSS Cache for Post Types & URIs.
* <strong>API</strong>: Filter `litespeed_frontend_htaccess` for frontend htaccess path.
* <strong>Media</strong>: Removed responsive placeholder generation history to save space.

= 2.6.0.1 - Sep 24 2018 =
* 🔥🐞: Fixed an issue in responsive placeholder generation where redundant history data was being saved and using a lot of space.

= 2.6 - Sep 22 2018 =
* <strong>Vary</strong>: Moved `litespeed_cache_api_vary` hook outside of OLS condition for .htaccess generation.
* <strong>CDN</strong>: Trim spaces in original URL of CDN setting.
* <strong>API</strong>: New filter `litespeed_option_` to change all options dynamically.
* <strong>API</strong>: New `LiteSpeed_Cache_API::force_option()` to change all options dynamically.
* <strong>API</strong>: New `LiteSpeed_Cache_API::vary()` to set default vary directly for easier compaitiblity with WPML WooCommerce Multilingual.
* <strong>API</strong>: New `LiteSpeed_Cache_API::nonce()` to safely and easily allow caching of wp-nonce.
* <strong>API</strong>: New `LiteSpeed_Cache_API::hook_vary_add()` to add new vary.
* <strong>Optm</strong>: Changed HTML/JS/CSS optimization options assignment position from constructor to `finalize()`.
* <strong>Doc</strong>: Added nonce to FAQ and mentioned nonce in 3rd Party Compatibility section.
* <strong>GUI</strong>: Moved inline minify to under html minify due to the dependency.
* <strong>3rd</strong>: Cached Aelia CurrencySwitcher by default.
* 🐞: Fixed issue where enabling remote JQuery caused missing jquery-migrate library error.

= 2.5.1 - Sep 11 2018 =
* 🌱 Responsive placeholder. (@szmigieldesign)
* Changed CSS::ccss_realpath function scope to private.
* 🐞 Detected JS filetype before optimizing to avoid PHP source conflict. (@closte #50)

= 2.5 - Sep 6 2018 =
* [IMPROVEMENT] <strong>CLI</strong> can now execute Remove Original Image Backups. (@Shon)
* [UPDATE] Fixed issue where WP-PostViews documentation contained extra slashes. (#545638)
* [UPDATE] Check LITESPEED_SERVER_TYPE for more accurate LSCache Disabled messaging.
* [IAPI] Fixed a bug where optimize/fetch error notification was not being received. (@LucasRolff)

= 2.4.4 - Aug 31 2018 =
* [NEW] <strong>CLI</strong> can now support image optimization. (@Shon)
* [IMPROVEMENT] <strong>GUI</strong> Cron/CLI will not create admin message anymore.
* [UPDATE] <strong>Media</strong> Fixed a PHP notice that appeared when pulling optimized images.
* [UPDATE] Fixed a PHP notice when detecting origin of ajax call. (@iosoft)
* [DEBUG] Debug log can now log referer URL.
* [DEBUG] Changes to options will now be logged.

= 2.4.3 - Aug 27 2018 =
* [NEW] <strong>Media</strong> Ability to inline image lazyload JS library. (@Music47ell)
* [IMPROVEMENT] <strong>Media</strong> Deleting images will now clear related optimization file & info too.
* [IMPROVEMENT] <strong>Media</strong> Non-image postfix data will now be bypassed before sending image optimization request.
* [BUGFIX] <strong>CDN</strong> CDN URL will no longer be replaced during admin ajax call. (@pankaj)
* [BUGFIX] <strong>CLI</strong> WPCLI can now save options without incorrectly clearing textarea items. (@Shon)
* [GUI] Moved Settings above Manage on the main menu.

= 2.4.2 - Aug 21 2018 =
* [IMPROVEMENT] <strong>Media</strong> Sped up Image Optimization process by replacing IAPI server pull communication.
* [IMPROVEMENT] <strong>Media</strong> Ability to delete optimized WebP/original image by item in Media Library. (@redgoodapple)
* [IMPROVEMENT] <strong>CSS Optimize</strong> Generate new optimized CSS name based on purge timestamp. Allows CSS cache to be cleared for visitors. (@bradbrownmagic)
* [IMPROVEMENT] <strong>API</strong> added litespeed_img_optm_options_per_image. (@gintsg)
* [UPDATE] Stopped showing "No Image Found" message when all images have finished optimization. (@knutsp)
* [UPDATE] Improved a PHP warning when saving settings. (@sergialarconrecio)
* [UPDATE] Changed backend adminbar icon default behavior from Purge All to Purge LSCache.
* [UPDATE] Clearing CCSS cache will clear unfinished queue too.
* [UPDATE] Added "$" exact match when adding URL by frontend adminbar dropdown menu, to avoid affecting any sub-URLs.
* [UPDATE] Fixed IAPI error message showing array bug. (@thiomas)
* [UPDATE] Debug Disable All will do a Purge All.
* [UPDATE] <strong>Critical CSS server IP changed to 142.93.3.57</strong>.
* [GUI] Showed plugin update link for IAPI version message.
* [GUI] Bypassed null IAPI response message.
* [GUI] Grouped related settings with indent.
* [IAPI] Added 503 handler for IAPI response.
* [IAPI] IAPI v2.4.2.
* [IAPI] <strong>Center Server IP Changed from 34.198.229.186 to 142.93.112.87</strong>.

= 2.4.1 - Jul 19 2018 =
* [NEW FEATURE] <strong>Media</strong> Auto Level Up. Auto refill credit.
* [NEW FEATURE] <strong>Media</strong> Auto delete original backups after pulled. (@borisov87 @JMCA2)
* [NEW FEATURE] <strong>Media</strong> Auto request image optimization. (@ericsondr)
* [IMPROVEMENT] <strong>Media</strong> Fetch 404 error will notify client as other errors.
* [IMPROVEMENT] <strong>Media</strong> Support WebP for PageSpeed Insights. (@LucasRolff)
* [BUGFIX] <strong>CLI</strong> Fixed the issue where CLI import/export caused certain textarea settings to be lost. (#767519)
* [BUGFIX] <strong>CSS Optimize</strong> Fixed the issue that duplicated optimized CSS and caused rapid expansion of CSS cache folder.
* [GUI] <strong>Media</strong> Refactored operation workflow and interface.
* [UPDATE] <strong>Media</strong> Set timeout seconds to avoid pulling timeout. (@Jose)
* [UPDATE] <strong>CDN</strong>Fixed the notice when no path is in URL. (@sabitkamera)
* [UPDATE] <strong>Media</strong> Auto correct credits when pulling.
* [UPDATE] <strong>GUI</strong> Removed redundant double quote in gui.cls. (@DaveyJake)
* [IAPI] IAPI v2.4.1.
* [IAPI] Allow new error status notification and success message from IAPI.

= 2.4 - Jul 2 2018 =
* [NEW FEATURE] <strong>Media</strong> Added lossless optimization.
* [NEW FEATURE] <strong>Media</strong> Added Request Orignal Images ON/OFF.
* [NEW FEATURE] <strong>Media</strong> Added Request WebP ON/OFF. (@JMCA2)
* [IMPROVEMENT] <strong>Media</strong> Improved optimization tools to archive maximum compression and score.
* [IMPROVEMENT] <strong>Media</strong> Improved speed of image pull.
* [IMPROVEMENT] <strong>Media</strong> Automatically recover credit after pulled.
* [REFACTOR] <strong>Config</strong> Separated configure const class.
* [BUGFIX] <strong>Report</strong> Report can be sent successfully with emoji now. (@music47ell)
* [IAPI] New Europe Image Optimization server (EU3/EU4).
* [IAPI] New America Image Optimization server (US3/US4/US5/US6).
* [IAPI] New Asian Image Optimization server (AS3).
* [IAPI] Refactored optimization process.
* [IAPI] Increased credit limit.
* [IAPI] Removed request interval limit.
* [IAPI] IAPI v2.4.
* <strong>We strongly recommended that you re-optimize your image library to get a better compression result</strong>.

= 2.3.1 - Jun 18 2018 =
* [IMPROVEMENT] New setting to disable Generate Critical CSS. (@cybmeta)
* [IMPROVEMENT] Added filter to can_cdn/can_optm check. (@Jacob)
* [UPDATE] *Critical CSS* Added 404 css. Limit cron interval.
* [UPDATE] AJAX will not bypass CDN anymore by default. (@Jacob)
* [GUI] Show Disable All Features warning if it is on in Debug tab.

= 2.3 - Jun 13 2018 =
* [NEW FEATURE] Automatically generate critical CSS. (@joeee @ivan_ivanov @3dseo)
* [BUGFIX] "Mark this page as..." from dropdown menu will not reset settings anymore. (@cbratschi)

= 2.2.7 - Jun 4 2018 =
* [IMPROVEMENT] Improved redirection for manual image pull to avoid too many redirections warning.
* [IAPI] Increased credit limit.
* [BUGFIX] Fixed 503 error when enabling log filters in Debug tab. (#525206)
* [UPDATE] Improve compatibility when using sitemap url on servers with allow_url_open off.
* [UPDATE] Removed Crawler HTTP2 option due to causing no-cache blacklist issue for certain environments.
* [UPDATE] Privacy policy can be now translated. (@Josemi)
* [UPDATE] IAPI Increased default img request max to 3000.

= 2.2.6 - May 24 2018 =
* [NEW FEATURE] Original image backups can be removed now. (@borisov87 @JMCA2)
* [BUGFIX] Role Excludes in Tuning tab can save now. (@pako69)
* [UPDATE] Added privacy policy support.

= 2.2.5 - May 14 2018 =
* [IAPI] <strong>Image Optimization</strong> New Asian Image Optimization server (AS2).
* [INTEGRATION] Removed wpForo 3rd party file. (@massimod)

= 2.2.4 - May 7 2018 =
* [IMPROVEMENT] Improved compatibility with themes using the same js_min library. (#129093 @Darren)
* [BUGFIX] Fixed a bug when checking image path for dynamic files. (@miladk)
* [INTEGRATION] Compatibility with Universal Star Rating. (@miladk)

= 2.2.3 - Apr 27 2018 =
* [NEW FEATURE] WebP For Extra srcset setting in Media tab. (@vengen)
* [REFACTOR] Removed redundant LS consts.
* [REFACTOR] Refactored adv_cache generation flow.
* [BUGFIX] Fixed issue where inline JS minify exception caused a blank page. (@oomskaap @kenb1978)
* [UPDATE] Changed HTTP/2 Crawl default value to OFF.
* [UPDATE] Added img.data-src to default WebP replacement value for WooCommerce WebP support.
* [UPDATE] Detached crawler from LSCache LITESPEED_ON status.
* [API] Improved ESI API to honor the cache control in ESI wrapper.
* [API] Added LITESPEED_PURGE_SILENT const to bypass the notification when purging
* [INTEGRATION] Fixed issue with nonce expiration when using ESI API. (#923505 @Dan)
* [INTEGRATION] Improved compatibility with Ninja Forms by bypassing non-javascript JS from inline JS minify.
* [INTEGRATION] Added a hook for plugins that change the CSS/JS path e.g. Hide My WordPress.

= 2.2.2 - Apr 16 2018 =
* [NEW FEATURE] WebP Attribute To Replace setting in Media tab. (@vengen)
* [IMPROVEMENT] Generate adv_cache file automatically when it is lost.
* [IMPROVEMENT] Improved compatibility with ajax login. (@veganostomy)
* [UPDATE] Added object cache lib check in case user downgrades LSCWP to non-object-cache versions.
* [UPDATE] Avoided infinite loop when users enter invalid hook values in Purge All Hooks settings.
* [UPDATE] Updated log format in media&cdn class.
* [UPDATE] Added more items to Report.

= 2.2.1 - Apr 10 2018 =
* [NEW FEATURE] Included Directories setting in CDN tab. (@Dave)
* [NEW FEATURE] Purge All Hooks setting in Advanced tab.
* [UPDATE] Added background-image WebP replacement support. (@vengen)
* [UPDATE] Show recommended values for textarea items in settings.
* [UPDATE] Moved CSS/JS optimizer log to Advanced level.
* [INTEGRATION] Added WebP support for Avada Fusion Sliders. (@vengen)

= 2.2.0.2 - Apr 3 2018 =
* [HOTFIX] <strong>Object Cache</strong> Fixed the PHP warning caused by previous improvement to Object Cache.

= 2.2.0.1 - Apr 3 2018 =
* [HOTFIX] Object parameter will no longer cause warnings to be logged for Purge and Cache classes. (@kelltech @khrifat)
* [UPDATE] Removed duplicated del_file func from Object Cache class.
* [BUGFIX] `CLI` no longer shows 400 error upon successful result.

= 2.2 - Apr 2 2018 =
* [NEW FEATURE] <strong>Debug</strong> Disable All Features setting in Debug tab. (@monarobase)
* [NEW FEATURE] <strong>Cache</strong> Force Cacheable URIs setting in Excludes tab.
* [NEW FEATURE] <strong>Purge</strong> Purge all LSCache and other caches in one link.
* [REFACTOR] <strong>Purge</strong> Refactored Purge class.
* [BUGFIX] Query strings in DoNotCacheURI setting now works.
* [BUGFIX] <strong>Cache</strong> Mobile cache compatibility with WebP vary. (@Shivam #987121)
* [UPDATE] <strong>Purge</strong> Moved purge_all to Purge class from core class.
* [API] Set cacheable/Set force cacheable. (@Jacob)

= 2.1.2 - Mar 28 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Clean Up Unfinished Data feature.
* [IAPI] IAPI v2.1.2.
* [IMPROVEMENT] <strong>CSS/JS Minify</strong> Reduced loading time significantly by improving CSS/JS minify loading process. (@kokers)
* [IMPROVEMENT] <strong>CSS/JS Minify</strong> Cache empty JS Minify content. (@kokers)
* [IMPROVEMENT] <strong>Cache</strong> Cache 301 redirect when scheme/host are same.
* [BUGFIX] <strong>Media</strong> Lazy load now can support WebP. (@relle)
* [UPDATE] <strong>CSS/JS Optimize</strong> Serve static files for CSS async & lazy load JS library.
* [UPDATE] <strong>Report</strong> Appended Basic/Advanced View setting to Report.
* [UPDATE] <strong>CSS/JS Minify</strong> Removed zero-width space from CSS/JS content.
* [GUI] Added Purge CSS/JS Cache link in Admin.

= 2.1.1.1 - Mar 21 2018 =
* [BUGFIX] Fixed issue where activation failed to add rules to .htaccess.
* [BUGFIX] Fixed issue where 304 header was blank on feed page refresh.

= 2.1.1 - Mar 20 2018 =
* [NEW FEATURE] <strong>Browser Cache</strong> Unlocked for non-LiteSpeed users.
* [IMPROVEMENT] <strong>Image Optimization</strong> Fixed issue where images with bad postmeta value continued to show in not-yet-requested queue.

= 2.1 - Mar 15 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Object Cache</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Crawler</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Database Cleaner and Optimizer</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>Lazy Load Images</strong> Unlocked for non-LiteSpeed users.
* [NEW FEATURE] <strong>CSS/JS/HTML Minify/Combine Optimize</strong> Unlocked for non-LiteSpeed users.
* [IAPI] IAPI v2.0.
* [IAPI] Increased max rows prefetch when client has additional credit.
* [IMPROVEMENT] <strong>CDN</strong> Multiple domains may now be used.
* [IMPROVEMENT] <strong>Report</strong> Added WP environment constants for better debugging.
* [REFACTOR] Separated Cloudflare CDN class.
* [BUGFIX] <strong>Image Optimization</strong> Fixed issue where certain MySQL version failed to create img_optm table. (@philippwidmer)
* [BUGFIX] <strong>Image Optimization</strong> Fixed issue where callback validation failed when pulling and sending request simultaneously.
* [GUI] Added Slack community banner.
* [INTEGRATION] CDN compatibility with WPML multiple domains. (@egemensarica)

= 2.0 - Mar 7 2018 =
* [NEW FEATURE] <strong>Image Optimization</strong> Added level up guidance.
* [REFACTOR] <strong>Image Optimization</strong> Refactored Image Optimization class.
* [IAPI] <strong>Image Optimization</strong> New European Image Optimization server (EU2).
* [IMPROVEMENT] <strong>Image Optimization</strong> Manual pull action continues pulling until complete.
* [IMPROVEMENT] <strong>CDN</strong> Multiple CDNs can now be randomized for a single resource.
* [IMPROVEMENT] <strong>Image Optimization</strong> Improved compatibility of long src images.
* [IMPROVEMENT] <strong>Image Optimization</strong> Reduced runtime load.
* [IMPROVEMENT] <strong>Image Optimization</strong> Avoid potential loss/reset of notified images status when pulling.
* [IMPROVEMENT] <strong>Image Optimization</strong> Avoid duplicated optimization for multiple records in Media that have the same image source.
* [IMPROVEMENT] <strong>Image Optimization</strong> Fixed issue where phantom images continued to show in not-yet-requested queue.
* [BUGFIX] <strong>Core</strong> Improved compatibility when upgrading outside of WP Admin. (@jikatal @TylorB)
* [BUGFIX] <strong>Crawler</strong> Improved HTTP/2 compatibility to avoid erroneous blacklisting.
* [BUGFIX] <strong>Crawler</strong> Changing Delay setting will use server variable for min value validation if set.
* [UPDATE] <strong>Crawler</strong> Added HTTP/2 protocol switch in the Crawler settings.
* [UPDATE] Removed unnecessary translation strings.
* [GUI] Display translated role group name string instead of English values. (@Richard Hordern)
* [GUI] Added Join LiteSpeed Slack link.
* [GUI] <strong>Import / Export</strong> Cosmetic changes to Import Settings file field.
* [INTEGRATION] Improved compatibility with WPML Media for Image Optimization. (@szmigieldesign)

= 1.9.1.1 - February 20 2018 =
* [Hotfix] Removed empty crawler when no role simulation is set.

= 1.9.1 - February 20 2018 =
* [NEW FEATURE] Role Simulation crawler.
* [NEW FEATURE] WebP multiple crawler.
* [NEW FEATURE] HTTP/2 support for crawler.
* [BUGFIX] Fixed a js bug with the auto complete mobile user agents field when cache mobile is turned on.
* [BUGFIX] Fixed a constant undefined warning after activation.
* [GUI] Sitemap generation settings are no longer hidden when using a custom sitemap.

= 1.9 - February 12 2018 =
* [NEW FEATURE] Inline CSS/JS Minify.
* [IMPROVEMENT] Removed Composer vendor to thin the plugin folder.
* [UPDATE] Tweaked H2 to H1 in Admin headings for accessibility. (@steverep)
* [GUI] Added Mobile User Agents to basic view.
* [GUI] Moved Object Cache & Browser Cache from Cache tab to Advanced tab.
* [GUI] Moved LSCache Purge All from Adminbar to dropdown menu.

= 1.8.3 - February 2 2018 =
* [NEW FEATURE] Crawler server variable limitation support.
* [IMPROVEMENT] Added Store Transients option to fix transients missing issue when Cache Wp-Admin setting is OFF.
* [IMPROVEMENT] Tweaked ARIA support. (@steverep)
* [IMPROVEMENT] Used strpos instead of strncmp for performance. (@Zach E)
* [BUGFIX] Transient cache can now be removed when the Cache Wp-Admin setting is ON in Object Cache.
* [BUGFIX] Network sites can now save Advanced settings.
* [BUGFIX] Media list now shows in network sites.
* [BUGFIX] Show Crawler Status button is working again.
* [UPDATE] Fixed a couple of potential PHP notices in the Network cache tab and when no vary group is set.
* [GUI] Added Learn More link to all setting pages.

= 1.8.2 - January 29 2018 =
* [NEW FEATURE] Instant Click in the Advanced tab.
* [NEW FEATURE] Import/Export settings.
* [NEW FEATURE] Opcode Cache support.
* [NEW FEATURE] Basic/Advanced setting view.
* [IMPROVEMENT] Added ARIA support in widget settings.
* [BUGFIX] Multiple WordPress instances with same Object Cache address will no longer see shared data.
* [BUGFIX] WebP Replacement may now be set at the Network level.
* [BUGFIX] Object Cache file can now be removed at the Network level uninstall.

= 1.8.1 - January 22 2018 =
* [NEW FEATURE] Object Cache now supports Redis.
* [IMPROVEMENT] Memcached Object Cache now supports authorization.
* [IMPROVEMENT] A 500 error will no longer be encountered when turning on Object Cache without the proper PHP extension installed.
* [BUGFIX] Object Cache settings can now be saved at the Network level.
* [BUGFIX] Mu-plugin now supports Network setting.
* [BUGFIX] Fixed admin bar showing inaccurate Edit Page link.
* [UPDATE] Removed warning information when no Memcached server is available.

= 1.8 - January 17 2018 =
* [NEW FEATURE] Object Cache.
* [REFACTOR] Refactored Log class.
* [REFACTOR] Refactored LSCWP basic const initialization.
* [BUGFIX] Fixed Cloudflare domain search breaking when saving more than 50 domains under a single account.
* [UPDATE] Log filter settings are now their own item in the wp-option table.

= 1.7.2 - January 5 2018 =
* [NEW FEATURE] Cloudflare API support.
* [IMPROVEMENT] IAPI key can now be reset to avoid issues when domain is changed.
* [BUGFIX] Fixed JS optimizer breaking certain plugins JS.
* [UPDATE] Added cdn settings to environment report.
* [GUI] Added more shortcuts to backend adminbar.
* [INTEGRATION] WooCommerce visitors are now served from public cache when cart is empty.

= 1.7.1.1 - December 29 2017 =
* [BUGFIX] Fixed an extra trailing underscore issue when saving multiple lines with DNS Prefetch.
* [UPDATE] Cleaned up unused dependency vendor files.

= 1.7.1 - December 28 2017 =
* [NEW FEATURE] Added DNS Prefetch setting on the Optimize page.
* [NEW FEATURE] Added Combined File Max Size setting on the Tuning page.
* [IMPROVEMENT] Improved JS/CSS minify to achieve higher page scores.
* [IMPROVEMENT] Optimized JS/CSS files will not be served from private cache for OLS or with ESI off.
* [UPDATE] Fixed a potential warning for new installations on the Settings page.
* [UPDATE] Fixed an issue with guest users occasionally receiving PHP warnings.
* [BUGFIX] Fixed a bug with the Improve HTTPS Compatibility setting failing to save.
* Thanks to all of our users for your encouragement and support! Happy New Year!
* PS: Lookout 2018, we're back!

= 1.7 - December 22 2017 =
* [NEW FEATURE] Drop Query Strings setting in the Cache tab.
* [NEW FEATURE] Multiple CDN Mapping in the CDN tab.
* [IMPROVEMENT] Improve HTTP/HTTPS Compatibility setting in the Advanced tab.
* [IMPROVEMENT] Keep JS/CSS original position in HTML when excluded in setting.
* [IAPI] Reset client level credit after Image Optimization data is destroyed.
* [REFACTOR] Refactored build_input/textarea functions in admin_display class.
* [REFACTOR] Refactored CDN class.
* [GUI] Added a notice to Image Optimization and Crawler to warn when cache is disabled.
* [GUI] Improved image optimization indicator styles in Media Library List.

= 1.6.7 - December 15 2017 =
* [IAPI] Added ability to scan for new image thumbnail sizes and auto-resend image optimization requests.
* [IAPI] Added ability to destroy all optimization data.
* [IAPI] Updated IAPI to v1.6.7.
* [INTEGRATION] Fixed certain 3rd party plugins calling REST without user nonce causing logged in users to be served as guest.

= 1.6.6.1 - December 8 2017 =
* [IAPI] Limit first-time submission to one image group for test-run purposes.
* [BUGFIX] Fixed vary group generation issue associated with custom user role plugins.
* [BUGFIX] Fixed WooCommerce issue where logged-in users were erroneously purged when ESI is off.
* [BUGFIX] Fixed WooCommerce cache miss issue when ESI is off.

= 1.6.6 - December 6 2017 =
* [NEW FEATURE] Preserve EXIF in Media setting.
* [NEW FEATURE] Clear log button in Debug Log Viewer.
* [IAPI] Fixed notified images resetting to previous status when pulling.
* [IAPI] Fixed HTTPS compatibility for image optimization initialization.
* [IAPI] An error message is now displayed when image optimization request submission is bypassed due to a lack of credit.
* [IAPI] IAPI v1.6.6.
* [IMPROVEMENT] Support JS data-no-optimize attribute to bypass optimization.
* [GUI] Added image group wiki link.
* [INTEGRATION] Improved compatibility with Login With Ajax.
* [INTEGRATION] Added function_exists check for WooCommerce to avoid 500 errors.

= 1.6.5.1 - December 1 2017 =
* [HOTFIX] Fixed warning message on Edit .htaccess page.

= 1.6.5 - November 30 2017 =
* [IAPI] Manually pull image optimization action button.
* [IAPI] Automatic credit system for image optimization to bypass unfinished image optimization error.
* [IAPI] Notify failed images from LiteSpeed's Image Server.
* [IAPI] Reset/Clear failed images feature.
* [IAPI] Redesigned report page.
* [REFACTOR] Moved pull_img logic from admin_api to media.
* [BUGFIX] Fixed a compatibility issue for clients who have allow_url_open setting off.
* [BUGFIX] Fixed logged in users sometimes being served from guest cache.
* [UPDATE] Environment report is no longer saved to a file.
* [UPDATE] Removed crawler reset notification.
* [GUI] Added more details on image optimization.
* [GUI] Removed info page from admin menu.
* [GUI] Moved environment report from network level to single site level.
* [GUI] Crawler time added in a user friendly format.
* [INTEGRATION] Improved compatibility with FacetWP json call.

= 1.6.4 - November 22 2017 =
* [NEW FEATURE] Send env reports privately with a new built-in report number referral system.
* [IAPI] Increased request timeout to fix a cUrl 28 timeout issue.
* [BUGFIX] Fixed a TTL max value validation bug.
* [INTEGRATION] Improved Contact Form 7 REST call compatibility for logged in users.
* Thanks for all your ratings. That encouraged us to be more diligent. Happy Thanksgiving.

= 1.6.3 - November 17 2017 =
* [NEW FEATURE] Only async Google Fonts setting.
* [NEW FEATURE] Only create WebP images when optimizing setting.
* [NEW FEATURE] Batch switch images to original/optimized versions in Image Optimization.
* [NEW FEATURE] Browser Cache TTL setting.
* [NEW FEATURE] Cache WooCommerce Cart setting.
* [IMPROVEMENT] Moved optimized JS/CSS snippet in header html to after meta charset.
* [IMPROVEMENT] Added a constant for better JS/CSS optimization compatibility for different dir WordPress installation.
* [IAPI] Take over failed callback check instead of bypassing it.
* [IAPI] Image optimization requests are now limited to 500 images per request.
* [BUGFIX] Fixed a parsing failure bug not using attributes in html elements with dash.
* [BUGFIX] Fixed a bug causing non-script code to move to the top of a page when not using combination.
* [UPDATE] Added detailed logs for external link detection.
* [UPDATE] Added new lines in footer comment to avoid Firefox crash when enabled HTML minify.
* [API] `Purge private` / `Purge private all` / `Add private tag` functions.
* [GUI] Redesigned image optimization operation links in Media Lib list.
* [GUI] Tweaked wp-admin form save button position.
* [GUI] Added "learn more" link for image optimization.

= 1.6.2.1 - November 6 2017 =
* [INTEGRATION] Improved compatibility with old WooCommerce versions to avoid unknown 500 errors.
* [BUGFIX] Fixed WebP images sometimes being used in non-supported browsers.
* [BUGFIX] Kept query strings for HTTP/2 push to avoid re-fetching pushed sources.
* [BUGFIX] Excluded JS/CSS from HTTP/2 push when using CDN.
* [GUI] Fixed a typo in Media list.
* [GUI] Made more image optimization strings translatable.
* [GUI] Updated Tuning description to include API documentation.

= 1.6.2 - November 3 2017 =
* [NEW FEATURE] Do Not Cache Roles.
* [NEW FEATURE] Use WebP Images for supported browsers.
* [NEW FEATURE] Disable Optimization Poll ON/OFF Switch in Media tab.
* [NEW FEATURE] Revert image optimization per image in Media list.
* [NEW FEATURE] Disable/Enable image WebP per image in Media list.
* [IAPI] Limit optimized images fetching cron to a single process.
* [IAPI] Updated IAPI to v1.6.2.
* [IAPI] Fixed repeating image request issue by adding a failure status to local images.
* [REFACTOR] Refactored login vary logic.

= 1.6.1 - October 29 2017 =
* [IAPI] Updated LiteSpeed Image Optimization Server API to v1.6.1.

= 1.6 - October 27 2017 =
* [NEW FEATURE] Image Optimization.
* [NEW FEATURE] Role Excludes for Optimization.
* [NEW FEATURE] Combined CSS/JS Priority.
* [IMPROVEMENT] Bypass CDN for login/register page.
* [UPDATE] Expanded ExpiresByType rules to include new font types. ( Thanks to JMCA2 )
* [UPDATE] Removed duplicated type param in admin action link.
* [BUGFIX] Fixed CDN wrongly replacing img base64 and "fake" src in JS.
* [BUGFIX] Fixed image lazy load replacing base64 src.
* [BUGFIX] Fixed a typo in Optimize class exception.
* [GUI] New Tuning tab in admin settings panel.
* [REFACTOR] Simplified router by reducing actions and adding types.
* [REFACTOR] Renamed `run()` to `finalize()` in buffer process.

= 1.5 - October 17 2017 =
* [NEW FEATURE] Exclude JQuery (to fix inline JS error when using JS Combine).
* [NEW FEATURE] Load JQuery Remotely.
* [NEW FEATURE] JS Deferred Excludes.
* [NEW FEATURE] Lazy Load Images Excludes.
* [NEW FEATURE] Lazy Load Image Placeholder.
* [IMPROVEMENT] Improved Lazy Load size attribute for w3c validator.
* [UPDATE] Added basic caching info and LSCWP version to HTML comment.
* [UPDATE] Added debug log to HTML detection.
* [BUGFIX] Fixed potential font CORS issue when using CDN.
* [GUI] Added API docs to setting description.
* [REFACTOR] Relocated all classes under includes with backwards compatibility.
* [REFACTOR] Relocated admin templates.

= 1.4 - October 11 2017 =
* [NEW FEATURE] Lazy load images/iframes.
* [NEW FEATURE] Clean CSS/JS optimizer data functionality in DB Optimizer panel.
* [NEW FEATURE] Exclude certain URIs from optimizer.
* [IMPROVEMENT] Improved optimizer HTML check compatibility to avoid conflicts with ESI functions.
* [IMPROVEMENT] Added support for using ^ when matching the start of a path in matching settings.
* [IMPROVEMENT] Added wildcard support in CDN original URL.
* [IMPROVEMENT] Moved optimizer table initialization to admin setting panel with failure warning.
* [UPDATE] Added a one-time welcome banner.
* [UPDATE] Partly relocated class: 'api'.
* [API] Added API wrapper for removing wrapped HTML output.
* [INTEGRATION] Fixed WooCommerce conflict with optimizer.
* [INTEGRATION] Private cache support for WooCommerce v3.2.0+.
* [GUI] Added No Optimization menu to frontend.

= 1.3.1.1 - October 6 2017 =
* [BUGFIX] Improved optimizer table creating process in certain database charset to avoid css/js minify/combination failure.

= 1.3.1 - October 5 2017 =
* [NEW FEATURE] Remove WP Emoji Option.
* [IMPROVEMENT] Separated optimizer data from wp_options to improve compatibility with backup plugins.
* [IMPROVEMENT] Enhanced crawler cron hook to prevent de-scheduling in some cases.
* [IMPROVEMENT] Enhanced Remove Query Strings to also remove Emoji query strings.
* [IMPROVEMENT] Enhanced HTML detection when extra spaces are present at the beginning.
* [UPDATE] Added private cache support for OLS.
* [BUGFIX] Self-redirects are no longer cached.
* [BUGFIX] Fixed css async lib warning when loading in HTTP/2 push.

= 1.3 - October 1 2017 =
* [NEW FEATURE] Added Browser Cache support.
* [NEW FEATURE] Added Remove Query Strings support.
* [NEW FEATURE] Added Remove Google Fonts support.
* [NEW FEATURE] Added Load CSS Asynchronously support.
* [NEW FEATURE] Added Load JS Deferred support.
* [NEW FEATURE] Added Critical CSS Rules support.
* [NEW FEATURE] Added Private Cached URIs support.
* [NEW FEATURE] Added Do Not Cache Query Strings support.
* [NEW FEATURE] Added frontend adminbar shortcuts ( Purge this page/Do Not Cache/Private cache ).
* [IMPROVEMENT] Do Not Cache URIs now supports full URLs.
* [IMPROVEMENT] Improved performance of Do Not Cache settings.
* [IMPROVEMENT] Encrypted vary cookie.
* [IMPROVEMENT] Enhanced HTML optimizer.
* [IMPROVEMENT] Limited combined file size to avoid heavy memory usage.
* [IMPROVEMENT] CDN supports custom upload folder for media files.
* [API] Added purge single post API.
* [API] Added version compare API.
* [API] Enhanced ESI API for third party plugins.
* [INTEGRATION] Compatibility with NextGEN Gallery v2.2.14.
* [INTEGRATION] Compatibility with Caldera Forms v1.5.6.2+.
* [BUGFIX] Fixed CDN&Minify compatibility with css url links.
* [BUGFIX] Fixed .htaccess being regenerated despite there being no changes.
* [BUGFIX] Fixed CDN path bug for subfolder WP instance.
* [BUGFIX] Fixed crawler path bug for subfolder WP instance with different site url and home url.
* [BUGFIX] Fixed a potential Optimizer generating redundant duplicated JS in HTML bug.
* [GUI] Added a more easily accessed submit button in admin settings.
* [GUI] Admin settings page cosmetic changes.
* [GUI] Reorganized GUI css/img folder structure.
* [REFACTOR] Refactored configuration init.
* [REFACTOR] Refactored admin setting save.
* [REFACTOR] Refactored .htaccess operator and rewrite rule generation.

= 1.2.3.1 - September 20 2017 =
* [UPDATE] Improved PHP5.3 compatibility.

= 1.2.3 - September 20 2017 =
* [NEW FEATURE] Added CDN support.
* [IMPROVEMENT] Improved compatibility when upgrading by fixing a possible fatal error.
* [IMPROVEMENT] Added support for custom wp-content paths.
* [BUGFIX] Fixed non-primary network blogs not being able to minify.
* [BUGFIX] Fixed HTML Minify preventing Facebook from being able to parse og tags.
* [BUGFIX] Preview page is no longer cacheable.
* [BUGFIX] Corrected log and crawler timezone to match set WP timezone.
* [GUI] Revamp of plugin GUI.

= 1.2.2 - September 15 2017 =
* [NEW FEATURE] Added CSS/JS minification.
* [NEW FEATURE] Added CSS/JS combining.
* [NEW FEATURE] Added CSS/JS HTTP/2 server push.
* [NEW FEATURE] Added HTML minification.
* [NEW FEATURE] Added CSS/JS cache purge button in management.
* [UPDATE] Improved debug log formatting.
* [UPDATE] Fixed some description typos.

= 1.2.1 - September 7 2017 =
* [NEW FEATURE] Added Database Optimizer.
* [NEW FEATURE] Added Tab switch shortcut.
* [IMPROVEMENT] Added cache disabled check for management pages.
* [IMPROVEMENT] Renamed .htaccess backup for security.
* [BUGFIX] Fixed woocommerce default ESI setting bug.
* [REFACTOR] Show ESI page for OLS with notice.
* [REFACTOR] Management Purge GUI updated.

= 1.2.0.1 - September 1 2017 =
* [BUGFIX] Fixed a naming bug for network constant ON2.

= 1.2.0 - September 1 2017 =
* [NEW FEATURE] Added ESI support.
* [NEW FEATURE] Added a private cache TTL setting.
* [NEW FEATURE] Debug level can now be set to either 'Basic' or 'Advanced'.
* [REFACTOR] Renamed const 'NOTSET' to 'ON2' in class config.

= 1.1.6 - August 23 2017 =
* [NEW FEATURE] Added option to privately cache logged-in users.
* [NEW FEATURE] Added option to privately cache commenters.
* [NEW FEATURE] Added option to cache requests made through WordPress REST API.
* [BUGFIX] Fixed network 3rd-party full-page cache detection bug.
* [GUI] New Cache and Purge menus in Settings.

= 1.1.5.1 - August 16 2017 =
* [IMPROVEMENT] Improved compatibility of frontend&backend .htaccess path detection when site url is different than installation path.
* [UPDATE] Removed unused format string from header tags.
* [BUGFIX] 'showheader' Admin Query String now works.
* [REFACTOR] Cache tags will no longer output if not needed.

= 1.1.5 - August 10 2017 =
* [NEW FEATURE] Scheduled Purge URLs feature.
* [NEW FEATURE] Added buffer callback to improve compatibility with some plugins that force buffer cleaning.
* [NEW FEATURE] Hide purge_all admin bar quick link if cache is disabled.
* [NEW FEATURE] Required htaccess rules are now displayed when .htaccess is not writable.
* [NEW FEATURE] Debug log features: filter log support; heartbeat control; log file size limit; log viewer.
* [IMPROVEMENT] Separate crawler access log.
* [IMPROVEMENT] Lazy PURGE requests made after output are now queued and working.
* [IMPROVEMENT] Improved readme.txt with keywords relating to our compatible plugins list.
* [UPDATE] 'ExpiresDefault' conflict msg is now closeable and only appears in the .htaccess edit screen.
* [UPDATE] Improved debug log formatting.
* [INTEGRATION] Compatibility with MainWP plugin.
* [BUGFIX] Fixed Woocommerce order not purging product stock quantity.
* [BUGFIX] Fixed Woocommerce scheduled sale price not updating issue.
* [REFACTOR] Combined cache_enable functions into a single function.

= 1.1.4 - August 1 2017 =
* [IMPROVEMENT] Unexpected rewrite rules will now show an error message.
* [IMPROVEMENT] Added Cache Tag Prefix setting info in the Env Report and Info page.
* [IMPROVEMENT] LSCWP setting link is now displayed in the plugin list.
* [IMPROVEMENT] Improved performance when setting cache control.
* [UPDATE] Added backward compatibility for v1.1.2.2 API calls. (used by 3rd-party plugins)
* [BUGFIX] Fixed WPCLI purge tag/category never succeeding.

= 1.1.3 - July 31 2017 =
* [NEW FEATURE] New LiteSpeed_Cache_API class and documentation for 3rd party integration.
* [NEW FEATURE] New API function litespeed_purge_single_post($post_id).
* [NEW FEATURE] PHP CLI support for crawler.
* [IMPROVEMENT] Set 'no cache' for same location 301 redirects.
* [IMPROVEMENT] Improved LiteSpeed footer comment compatibility.
* [UPDATE] Removed 'cache tag prefix' setting.
* [BUGFIX] Fixed a bug involving CLI purge all.
* [BUGFIX] Crawler now honors X-LiteSpeed-Cache-Control for the 'no-cache' header.
* [BUGFIX] Cache/rewrite rules are now cleared when the plugin is uninstalled.
* [BUGFIX] Prevent incorrect removal of the advanced-cache.php on deactivation if it was added by another plugin.
* [BUGFIX] Fixed subfolder WP installations being unable to Purge By URL using a full URL path.
* [REFACTOR] Reorganized existing code for an upcoming ESI release.

= 1.1.2.2 - July 13 2017 =
* [BUGFIX] Fixed blank page in Hebrew language post editor by removing unused font-awesome and jquery-ui css libraries.

= 1.1.2.1 - July 5 2017 =
* [UPDATE] Improved compatibility with WooCommerce v3.1.0.

= 1.1.2 - June 20 2017 =
* [BUGFIX] Fixed missing form close tag.
* [UPDATE] Added a wiki link for enabling the crawler.
* [UPDATE] Improved Site IP description.
* [UPDATE] Added an introduction to the crawler on the Information page.
* [REFACTOR] Added more detailed error messages for Site IP and Custom Sitemap settings.

= 1.1.1.1 - June 15 2017 =
* [BUGFIX] Hotfix for insufficient validation of site IP value in crawler settings.

= 1.1.1 - June 15 2017 =
* [NEW] As of LiteSpeed Web Server v.5.1.16, the crawler can now be enabled/disabled at the server level.
* [NEW] Added the ability to provide a custom sitemap for crawling.
* [NEW] Added ability to use site IP address directly in crawler settings.
* [NEW] Crawler performance improved with the use of new custom user agent 'lsrunner'.
* [NEW] "Purge By URLs" now supports full URL paths.
* [NEW] Added thirdparty WP-PostRatings compatibility.
* [BUGFIX] Cache is now cleared when changing post status from published to draft.
* [BUGFIX] WHM activation message no longer continues to reappear after being dismissed.
* [COSMETIC] Display recommended values for settings.

= 1.1.0.1 - June 8 2017 =
* [UPDATE] Improved default crawler interval setting.
* [UPDATE] Tested up to WP 4.8.
* [BUGFIX] Fixed compatibility with plugins that output json data.
* [BUGFIX] Fixed tab switching bug.
* [BUGFIX] Removed occasional duplicated messages on save.
* [COSMETIC] Improved crawler tooltips and descriptions.

= 1.1.0 - June 6 2017 =
* [NEW] Added a crawler - this includes configuration options and a dedicated admin page. Uses wp-cron
* [NEW] Added integration for WPLister
* [NEW] Added integration for Avada
* [UPDATE] General structure of the plugin revamped
* [UPDATE] Improved look of admin pages
* [BUGFIX] Fix any/all wp-content path retrieval issues
* [BUGFIX] Use realpath to clear symbolic link when determining .htaccess paths
* [BUGFIX] Fixed a bug where upgrading multiple plugins did not trigger a purge all
* [BUGFIX] Fixed a bug where cli import_options did not actually update the options.
* [REFACTOR] Most of the files in the code were split into more, smaller files

= 1.0.15 - April 20 2017 =
* [NEW] Added Purge Pages and Purge Recent Posts Widget pages options.
* [NEW] Added wp-cli command for setting and getting options.
* [NEW] Added an import/export options cli command.
* [NEW] Added wpForo integration.
* [NEW] Added Theme My Login integration.
* [UPDATE] Purge adjacent posts when publish a new post.
* [UPDATE] Change environment report file to .php and increase security.
* [UPDATE] Added new purgeby option to wp-cli.
* [UPDATE] Remove nag for multiple sites.
* [UPDATE] Only inject LiteSpeed javascripts in LiteSpeed pages.
* [REFACTOR] Properly check for zero in ttl settings.
* [BUGFIX] Fixed the 404 issue that can be caused by some certain plugins when save the settings.
* [BUGFIX] Fixed mu-plugin compatibility.
* [BUGFIX] Fixed problem with creating zip backup.
* [BUGFIX] Fixed conflict with jetpack.

= 1.0.14.1 - January 31 2017 =
* [UPDATE] Removed Freemius integration due to feedback.

= 1.0.14 - January 30 2017 =
* [NEW] Added error page caching. Currently supports 403, 404, 500s.
* [NEW] Added a purge errors action.
* [NEW] Added wp-cli integration.
* [UPDATE] Added support for multiple varies.
* [UPDATE] Reorganize the admin interface to be less cluttered.
* [UPDATE] Add support for LiteSpeed Web ADC.
* [UPDATE] Add Freemius integration.
* [REFACTOR] Made some changes so that the rewrite rules are a little more consistent.
* [BUGFIX] Check member type before adding purge all button.
* [BUGFIX] Fixed a bug where activating/deactivating the plugin quickly caused the WP_CACHE error to show up.
* [BUGFIX] Handle more characters in the rewrite parser.
* [BUGFIX] Correctly purge posts when they are made public/private.

= 1.0.13.1 - November 30 2016 =
* [BUGFIX] Fixed a bug where a global was being used without checking existence first, causing unnecessary log entries.

= 1.0.13 - November 28 2016 =
* [NEW] Add an Empty Entire Cache button.
* [NEW] Add stale logic to certain purge actions.
* [NEW] Add option to use primary site settings for all subsites in a multisite environment.
* [NEW] Add support for Aelia CurrencySwitcher
* [UPDATE] Add logic to allow third party vary headers
* [UPDATE] Handle password protected pages differently.
* [BUGFIX] Fixed bug caused by saving settings.
* [BUGFIX] FIxed bug when searching for advanced-cache.php

= 1.0.12 - November 14 2016 =
* [NEW] Added logic to generate environment reports.
* [NEW] Created a notice that will be triggered when the WHM Plugin installs this plugin. This will notify users when the plugin is installed by their server admin.
* [NEW] Added the option to cache 404 pages via 404 Page TTL setting.
* [NEW] Reworked log system to be based on selection of yes or no instead of log level.
* [NEW] Added support for Autoptimize.
* [NEW] Added Better WP Minify integration.
* [UPDATE] On plugin disable, clear .htaccess.
* [UPDATE] Introduced URL tag. Changed Purge by URL to use this new tag.
* [BUGFIX] Fixed a bug triggered when .htaccess files were empty.
* [BUGFIX] Correctly determine when to clear files in multisite environments (wp-config, advanced-cache, etc.).
* [BUGFIX] When disabling the cache, settings changed in the same save will now be saved.
* [BUGFIX] Various bugs from setting changes and multisite fixed.
* [BUGFIX] Fixed two bugs with the .htaccess path search.
* [BUGFIX] Do not alter $_GET in add_quick_purge. This may cause issues for functionality occurring later in the same request.
* [BUGFIX] Right to left radio settings were incorrectly displayed. The radio buttons themselves were the opposite direction of the associated text.

= 1.0.11 - October 11 2016 =
* [NEW] The plugin will now set cachelookup public on.
* [NEW] New option - check advanced-cache.php. This enables users to have two caching plugins enabled at the same time as long as the other plugin is not used for caching purposes. For example, using another cache plugin for css/js minification.
* [UPDATE] Rules added by the plugin will now be inserted into an LSCACHE START/END PLUGIN comment block.
* [UPDATE] For woocommerce pages, if a user visits a non-cached page with a non-empty cart, do not cache the page.
* [UPDATE] If woocommerce needs to display any notice, do not cache the page.
* [UPDATE] Single site settings are now in both the litespeed cache submenu and the settings submenu.
* [BUGFIX] Multisite network options were not updated on upgrade. This is now corrected.

= 1.0.10 - September 16 2016 =
* Added a check for LSCACHE_NO_CACHE definition.
* Added a Purge All button to the admin bar.
* Added logic to purge the cache when upgrading a plugin or theme. By default this is enabled on single site installations and disabled on multisite installations.
* Added support for WooCommerce Versions < 2.5.0.
* Added .htaccess backup rotation. Every 10 backups, an .htaccess archive will be created. If one already exists, it will be overwritten.
* Moved some settings to the new Specific Pages tab to reduce clutter in the General tab.
* The .htaccess editor is now disabled if DISALLOW_FILE_EDIT is set.
* After saving the Cache Tag Prefix setting, all cache will be purged.

= 1.0.9.1 - August 26 2016 =
* Fixed a bug where an error displayed on the configuration screen despite not being an error.
* Change logic to check .htaccess file less often.

= 1.0.9 - August 25 2016 =
* [NEW] Added functionality to cache and purge feeds.
* [NEW] Added cache tag prefix setting to avoid conflicts when using LiteSpeed Cache for WordPress with LiteSpeed Cache for XenForo and LiteMage.
* [NEW] Added hooks to allow third party plugins to create config options.
* [NEW] Added WooCommerce config options.
* The plugin now also checks for wp-config in the parent directory.
* Improved WooCommerce support.
* Changed .htaccess backup process. Will create a .htaccess_lscachebak_orig file if one does not exist. If it does already exist, creates a backup using the date and timestamp.
* Fixed a bug where get_home_path() sometimes returned an invalid path.
* Fixed a bug where if the .htaccess was removed from a WordPress subdirectory, it was not handled properly.

= 1.0.8.1 - July 28 2016 =
* Fixed a bug where check cacheable was sometimes not hit.
* Fixed a bug where extra slashes in clear rules were stripped.

= 1.0.8 - July 25 2016 =
* Added purge all on update check to purge by post id logic.
* Added uninstall logic.
* Added configuration for caching favicons.
* Added configuration for caching the login page.
* Added configuration for caching php resources (scripts/stylesheets accessed as .php).
* Set login cookie if user is logged in and it isn’t set.
* Improved NextGenGallery support to include new actions.
* Now displays a notice on the network admin if WP_CACHE is not set.
* Fixed a few php syntax issues.
* Fixed a bug where purge by pid didn’t work.
* Fixed a bug where the Network Admin settings were shown when the plugin was active in a subsite, but not network active.
* Fixed a bug where the Advanced Cache check would sometimes not work.

= 1.0.7.1 - May 26 2016 =
* Fixed a bug where enabling purge all in the auto purge on update settings page did not purge the correct blogs.
* Fixed a bug reported by user wpc on our forums where enabling purge all in the auto purge on update settings page caused nothing to be cached.

= 1.0.7 - May 24 2016 =
* Added login cookie configuration to the Advanced Settings page.
* Added support for WPTouch plugin.
* Added support for WP-Polls plugin.
* Added Like Dislike Counter third party integration.
* Added support for Admin IP Query String Actions.
* Added confirmation pop up for purge all.
* Refactor: LiteSpeed_Cache_Admin is now split into LiteSpeed_Cache_Admin, LiteSpeed_Cache_Admin_Display, and LiteSpeed_Cache_Admin_Rules
* Refactor: Rename functions to accurately represent their functionality
* Fixed a bug that sometimes caused a “no valid header” error message.

= 1.0.6 - May 5 2016 =
* Fixed a bug reported by Knut Sparhell that prevented dashboard widgets from being opened or closed.
* Fixed a bug reported by Knut Sparhell that caused problems with https support for admin pages.

= 1.0.5 - April 26 2016 =
* [BETA] Added NextGen Gallery plugin support.
* Added third party plugin integration.
* Improved cache tag system.
* Improved formatting for admin settings pages.
* Converted bbPress to use the new third party integration system.
* Converted WooCommerce to use the new third party integration system.
* If .htaccess is not writable, disable separate mobile view and do not cache cookies/user agents.
* Cache is now automatically purged when disabled.
* Fixed a bug where .htaccess was not checked properly when adding common rules.
* Fixed a bug where multisite setups would be completely purged when one site requested a purge all.

= 1.0.4 - April 7 2016 =
* Added logic to cache commenters.
* Added htaccess backup to the install script.
* Added an htaccess editor in the wp-admin dashboard.
* Added do not cache user agents.
* Added do not cache cookies.
* Created new LiteSpeed Cache Settings submenu entries.
* Implemented Separate Mobile View.
* Modified WP_CACHE not defined message to only show up for users who can manage options.
* Moved enabled all/disable all from network management to network settings.
* Fixed a bug where WP_CACHE was not defined on activation if it was commented out.

= 1.0.3 - March 23 2016 =
* Added a Purge Front Page button to the LiteSpeed Cache Management page.
* Added a Default Front Page TTL option to the general settings.
* Added ability to define web application specific cookie names through rewrite rules to handle logged-in cookie conflicts when using multiple web applications. <strong>[Requires LSWS 5.0.15+]</strong>
* Improved WooCommerce handling.
* Fixed a bug where activating lscwp sets the “enable cache” radio button to enabled, but the cache was not enabled by default.
* Refactored code to make it cleaner.
* Updated readme.txt.

= 1.0.2 - March 11 2016 =
* Added a "Use Network Admin Setting" option for "Enable LiteSpeed Cache". For single sites, this choice will default to enabled.
* Added enable/disable all buttons for network admin. This controls the setting of all managed sites with "Use Network Admin Setting" selected for "Enable LiteSpeed Cache".
* Exclude by Category/Tag are now text areas to avoid slow load times on the LiteSpeed Cache Settings page for sites with a large number of categories/tags.
* Added a new line to advanced-cache.php to allow identification as a LiteSpeed Cache file.
* Activation/Deactivation are now better handled in multi-site environments.
* Enable LiteSpeed Cache setting is now a radio button selection instead of a single checkbox.
* Can now add '$' to the end of a URL in Exclude URI to perform an exact match.
* The _lscache_vary cookie will now be deleted upon logout.
* Fixed a bug in multi-site setups that would cause a "function already defined" error.

= 1.0.1 - March 8 2016 =
* Added Do Not Cache by URI, by Category, and by Tag.  URI is a prefix/string equals match.
* Added a help tab for plugin compatibilities.
* Created logic for other plugins to purge a single post if updated.
* Fixed a bug where woocommerce pages that display the cart were cached.
* Fixed a bug where admin menus in multi-site setups were not correctly displayed.
* Fixed a bug where logged in users were served public cached pages.
* Fixed a compatibility bug with bbPress.  If there is a new forum/topic/reply, the parent pages will now be purged as well.
* Fixed a bug that didn't allow cron job to update scheduled posts.

= 1.0.0 - January 20 2016 =
* Initial Release.
<?php
namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit;

use LiteSpeed\Core;
use LiteSpeed\Conf;
use LiteSpeed\Base;
use LiteSpeed\Admin_Settings;
use LiteSpeed\Import;
use LiteSpeed\Utility;
use WP_CLI;

/**
 * LiteSpeed Cache option Interface
 */
class Option extends Base {
	private $__cfg;

	public function __construct() {
		$this->__cfg = Conf::get_instance();
	}

	/**
	 * Set an individual LiteSpeed Cache option.
	 *
	 * ## OPTIONS
	 *
	 * <key>
	 * : The option key to update.
	 *
	 * <newvalue>
	 * : The new value to set the option to.
	 *
	 * ## EXAMPLES
	 *
	 *     # Set to not cache the login page
	 *     $ wp litespeed-option set cache-priv false
	 *     $ wp litespeed-option set 'cdn-mapping[url][0]' https://cdn.EXAMPLE.com
	 *
	 */
	public function set( $args, $assoc_args ) {
		/**
		 * Note: If the value is multiple dimensions like cdn-mapping, need to specially handle it both here and in `const.default.ini`
		 *
		 * For CDN/Crawler mutlti dimension settings, if all children are empty in one line, will delete that line. To delete one line, just set all to empty.
		 * E.g. to delete cdn-mapping[0], need to run below:
		 * 											`set cdn-mapping[url][0] ''`
		 * 											`set cdn-mapping[inc_img][0] ''`
		 * 											`set cdn-mapping[inc_css][0] ''`
		 * 											`set cdn-mapping[inc_js][0] ''`
		 * 											`set cdn-mapping[filetype][0] ''`
		 */
		$key = $args[ 0 ];
		$val = $args[ 1 ];

		/**
		 * For CDN mapping, allow:
		 * 		`set 'cdn-mapping[url][0]' https://the1st_cdn_url`
		 * 		`set 'cdn-mapping[inc_img][0]' true`
		 * 		`set 'cdn-mapping[inc_img][0]' 1`
		 * @since  2.7.1
		 *
		 * For Crawler cookies:
		 * 		`set 'crawler-cookies[name][0]' my_currency`
		 * 		`set 'crawler-cookies[vals][0]' "USD\nTWD"`
		 */

		// Build raw data
		$raw_data = array(
			Admin_Settings::ENROLL	=> array( $key ),
		);

		// Contains child set
		if ( strpos( $key, '[' ) ) {
			parse_str( $key . '=' . $val , $key2 );
			$raw_data = array_merge( $raw_data, $key2 );
		}
		else {
			$raw_data[ $key ] = $val;
		}

		Admin_Settings::get_instance()->save( $raw_data );
		WP_CLI::line( "$key:" );
		$this->get( $args, $assoc_args );

	}

	/**
	 * Get the plugin options.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Get all options
	 *     $ wp litespeed-option all
	 *     $ wp litespeed-option all --json
	 *
	 */
	public function all( $args, $assoc_args ) {
		$options = $this->__cfg->get_options();

		if ( ! empty( $assoc_args[ 'format' ] ) ) {
			WP_CLI::print_value( $options, $assoc_args );
			return;
		}

		$option_out = array();

		$buf = WP_CLI::colorize("%CThe list of options:%n");
		WP_CLI::line($buf);

		foreach( $options as $k => $v ) {
			if ( $k == self::O_CDN_MAPPING || $k == self::O_CRAWLER_COOKIES ) {
				foreach ( $v as $k2 => $v2 ) { // $k2 is numeric
					if ( is_array( $v2 ) ) {
						foreach ( $v2 as $k3 => $v3 ) { // $k3 = 'url/inc_img/name/vals'
							if ( is_array( $v3 ) ) {
								$option_out[] = array( 'key' => '', 'value' => '' );
								foreach ( $v3 as $k4 => $v4 ) {
									$option_out[] = array( 'key' => $k4 == 0 ? "{$k}[$k3][$k2]" : '', 'value' => $v4 );
								}
								$option_out[] = array( 'key' => '', 'value' => '' );
							}
							else {
								$option_out[] = array( 'key' => "{$k}[$k3][$k2]", 'value' => $v3 );
							}
						}
					}
				}
				continue;
			}
			elseif ( is_array( $v ) && $v ) {
				// $v = implode( PHP_EOL, $v );
				$option_out[] = array( 'key' => '', 'value' => '' );
				foreach ( $v as $k2 => $v2 ) {
					$option_out[] = array( 'key' => $k2 == 0 ? $k : '', 'value' => $v2 );
				}
				$option_out[] = array( 'key' => '', 'value' => '' );
				continue;
			}

			if ( array_key_exists( $k, self::$_default_options ) && is_bool( self::$_default_options[ $k ] ) && ! $v ) {
				$v = 0;
			}

			if ( $v === '' || $v === array() ) {
				$v = "''";
			}

			$option_out[] = array( 'key' => $k, 'value' => $v );
		}

		WP_CLI\Utils\format_items('table', $option_out, array('key', 'value'));
	}

	/**
	 * Get the plugin options.
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Get one option
	 *     $ wp litespeed-option get cache-priv
	 *     $ wp litespeed-option get 'cdn-mapping[url][0]'
	 *
	 */
	public function get( $args, $assoc_args ) {
		$id = $args[ 0 ];

		$child = false;
		if ( strpos( $id, '[' ) ) {
			parse_str( $id, $id2 );
			Utility::compatibility();
			$id = array_key_first( $id2 );

			$child = array_key_first( $id2[ $id ] ); // `url`
			if ( ! $child ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
			$numeric = array_key_first( $id2[ $id ][ $child ] ); // `0`
			if ( $numeric === null ) {
				WP_CLI::error( 'Wrong 2nd level numeric key' );
				return;
			}
		}

		if ( ! isset( self::$_default_options[ $id ] ) ) {
			WP_CLI::error( 'ID not exist [id] ' . $id );
			return;
		}

		$v = Conf::val( $id );
		$default_v = self::$_default_options[ $id ];

		/**
		 * For CDN_mapping and crawler_cookies
		 * Examples of option name:
		 * 		cdn-mapping[url][0]
		 * 		crawler-cookies[name][1]
		 */
		if ( $id == self::O_CDN_MAPPING ) {
			if ( ! in_array( $child, array(
				self::CDN_MAPPING_URL,
				self::CDN_MAPPING_INC_IMG,
				self::CDN_MAPPING_INC_CSS,
				self::CDN_MAPPING_INC_JS,
				self::CDN_MAPPING_FILETYPE,
			) ) ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
		}
		if ( $id == self::O_CRAWLER_COOKIES ) {
			if ( ! in_array( $child, array(
				self::CRWL_COOKIE_NAME,
				self::CRWL_COOKIE_VALS,
			) ) ) {
				WP_CLI::error( 'Wrong child key' );
				return;
			}
		}

		if ( $id == self::O_CDN_MAPPING || $id == self::O_CRAWLER_COOKIES ) {
			if ( ! empty( $v[ $numeric ][ $child ] ) ) {
				$v = $v[ $numeric ][ $child ];
			}
			else {
				if ( $id == self::O_CDN_MAPPING ) {
					if ( in_array( $child, array(
						self::CDN_MAPPING_INC_IMG,
						self::CDN_MAPPING_INC_CSS,
						self::CDN_MAPPING_INC_JS,
					) ) ) {
						$v = 0;
					}
					else {
						$v = "''";
					}
				}
				else {
					$v = "''";
				}
			}
		}

		if ( is_array( $v ) ) {
			$v = implode( PHP_EOL , $v );
		}

		if ( ! $v && $id != self::O_CDN_MAPPING && $id != self::O_CRAWLER_COOKIES ) { // empty array for CDN/crawler has been handled
			if ( is_bool( $default_v ) ) {
				$v = 0;
			}
			elseif ( ! is_array( $default_v ) ) {
				$v = "''";
			}
		}

		WP_CLI::line( $v );
	}

	/**
	 * Export plugin options to a file.
	 *
	 * ## OPTIONS
	 *
	 * [--filename=<path>]
	 * : The default path used is CURRENTDIR/lscache_wp_options_DATE-TIME.txt.
	 * To select a different file, use this option.
	 *
	 * ## EXAMPLES
	 *
	 *     # Export options to a file.
	 *     $ wp litespeed-option export
	 *
	 */
	public function export( $args, $assoc_args ) {
		if ( isset($assoc_args['filename']) ) {
			$file = $assoc_args['filename'];
		}
		else {
			$file = getcwd() . '/litespeed_options_' . date('d_m_Y-His') . '.data';
		}

		if ( ! is_writable(dirname($file)) ) {
			WP_CLI::error('Directory not writable.');
			return;
		}

		$data = Import::get_instance()->export( true );

		if ( file_put_contents( $file, $data ) === false ) {
			WP_CLI::error( 'Failed to create file.' );
		}
		else {
			WP_CLI::success('Created file ' . $file);
		}
	}

	/**
	 * Import plugin options from a file.
	 *
	 * The file must be formatted as such:
	 * option_key=option_value
	 * One per line.
	 * A Semicolon at the beginning of the line indicates a comment and will be skipped.
	 *
	 * ## OPTIONS
	 *
	 * <file>
	 * : The file to import options from.
	 *
	 * ## EXAMPLES
	 *
	 *     # Import options from CURRENTDIR/options.txt
	 *     $ wp litespeed-option import options.txt
	 *
	 */
	public function import( $args, $assoc_args ) {
		$file = $args[0];
		if ( ! file_exists($file) || ! is_readable($file) ) {
			WP_CLI::error('File does not exist or is not readable.');
		}

		$res = Import::get_instance()->import( $file );

		if ( ! $res ) {
			WP_CLI::error( 'Failed to parse serialized data from file.' );
		}

		WP_CLI::success( 'Options imported. [File] ' . $file );
	}

	/**
	 * Reset all options to default.
	 *
	 * ## EXAMPLES
	 *
	 *     # Reset all options
	 *     $ wp litespeed-option reset
	 *
	 */
	public function reset() {
		Import::get_instance()->reset();
	}

}

<?php
namespace LiteSpeed\CLI;
defined( 'WPINC' ) || exit;

use LiteSpeed\Debug2;
use LiteSpeed\Report;
use WP_CLI;

/**
 * Debug API CLI
 */
class Debug
{
	private $__report;

	public function __construct()
	{
		Debug2::debug( 'CLI_Debug init' );

		$this->__report = Report::get_instance();
	}

	/**
	 * Send report
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Send env report to LiteSpeed
	 *     $ wp litespeed-debug send
	 *
	 */
	public function send()
	{
		$num = $this->__report->post_env();
		WP_CLI::success( 'Report Number = ' . $num );
	}

}
<?php
namespace LiteSpeed\CLI;
defined( 'WPINC' ) || exit;

use LiteSpeed\Debug2;
use LiteSpeed\Cloud;
use WP_CLI;

/**
 * QUIC.cloud API CLI
 */
class Online
{
	private $__cloud;

	public function __construct()
	{
		Debug2::debug( 'CLI_Cloud init' );

		$this->__cloud = Cloud::get_instance();
	}

	/**
	 * Gen key from cloud server
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Generate domain API key from Cloud server
	 *     $ wp litespeed-online init
	 *
	 */
	public function init()
	{
		$key = $this->__cloud->gen_key();
		if ( $key ) {
			WP_CLI::success( 'key = ' . $key );
		}
	}

	/**
	 * Sync data from cloud server
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Sync online service usage info
	 *     $ wp litespeed-online sync
	 *
	 */
	public function sync( $args, $assoc_args )
	{
		$json = $this->__cloud->sync_usage();

		if ( ! empty( $assoc_args[ 'format' ] ) ) {
			WP_CLI::print_value( $json, $assoc_args );
			return;
		}

		WP_CLI::success( 'Sync successfully' );

		$list = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$list[] = array(
				'key' => $v,
				'used' => ! empty( $json[ 'usage.' . $v ][ 'used' ] ) ? $json[ 'usage.' . $v ][ 'used' ] : 0,
				'quota' => ! empty( $json[ 'usage.' . $v ][ 'quota' ] ) ? $json[ 'usage.' . $v ][ 'quota' ] : 0,
				'PayAsYouGo_Used' => ! empty( $json[ 'usage.' . $v ][ 'pag_used' ] ) ? $json[ 'usage.' . $v ][ 'pag_used' ] : 0,
				'PayAsYouGo_Balance' => ! empty( $json[ 'usage.' . $v ][ 'pag_bal' ] ) ? $json[ 'usage.' . $v ][ 'pag_bal' ] : 0,
			);
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'key', 'used', 'quota', 'PayAsYouGo_Used', 'PayAsYouGo_Balance' ) );
	}

	/**
	 * List all services
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # List all services tag
	 *     $ wp litespeed-online services
	 *
	 */
	public function services( $args, $assoc_args )
	{
		if ( ! empty( $assoc_args[ 'format' ] ) ) {
			WP_CLI::print_value( Cloud::$SERVICES, $assoc_args );
			return;
		}

		$list = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$list[] = array(
				'service' => $v,
			);
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'service' ) );
	}

	/**
	 * List all cloud servers in use
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # List all cloud servers in use
	 *     $ wp litespeed-online nodes
	 *
	 */
	public function nodes( $args, $assoc_args )
	{
		$json = Cloud::get_summary();

		$list = array();
		$json_output = array();
		foreach ( Cloud::$SERVICES as $v ) {
			$server = ! empty( $json[ 'server.' . $v ] ) ? $json[ 'server.' . $v ] : '';
			$list[] = array(
				'service' => $v,
				'server' => $server,
			);
			$json_output[] = array( $v => $server );
		}

		if ( ! empty( $assoc_args[ 'format' ] ) ) {
			WP_CLI::print_value( $json_output, $assoc_args );
			return;
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'service', 'server' ) );
	}

	/**
	 * Detect closest Node server for current service
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Detect closest Node for one service
	 *     $ wp litespeed-online ping img_optm
	 *
	 */
	public function ping( $param )
	{
		$svc = $param[ 0 ];
		$json = $this->__cloud->detect_cloud( $svc );
		WP_CLI::success( 'Updated closest server.' );
		WP_CLI::log( 'svc = ' . $svc );
		WP_CLI::log( 'node = ' . $json );
	}

}
<?php
namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit;

use LiteSpeed\Lang;
use LiteSpeed\Debug2;
use LiteSpeed\Img_Optm;
use LiteSpeed\Utility;
use WP_CLI;

/**
 * Image Optm API CLI
 */
class Image
{
	private $__img_optm;

	public function __construct()
	{
		Debug2::debug( 'CLI_Cloud init' );

		$this->__img_optm = Img_Optm::get_instance();
	}

	/**
	 * Send image optimization request to cloud server
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Send image optimization request
	 *     $ wp litespeed-image push
	 *
	 */
	public function push()
	{
		$this->__img_optm->new_req();
	}

	/**
	 * Pull optimized images from cloud server
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Pull images back from cloud
	 *     $ wp litespeed-image pull
	 *
	 */
	public function pull()
	{
		$this->__img_optm->pull( true );
	}

	/**
	 * Show optimization status based on local data
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Show optimization status
	 *     $ wp litespeed-image s
	 *
	 */
	public function s()
	{
		$this->status();
	}

	/**
	 * Show optimization status based on local data
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Show optimization status
	 *     $ wp litespeed-image status
	 *
	 */
	public function status()
	{
		$summary = Img_Optm::get_summary();
		$img_count = $this->__img_optm->img_count();
		foreach ( Lang::img_status() as $k => $v ) {
			if ( isset( $img_count[ "img.$k" ] )) {
				$img_count[ "$v - images" ] = $img_count[ "img.$k" ];
				unset( $img_count[ "img.$k" ] );
			}
			if ( isset( $img_count[ "group.$k" ] )) {
				$img_count[ "$v - groups" ] = $img_count[ "group.$k" ];
				unset( $img_count[ "group.$k" ] );
			}
		}

		foreach ( array( 'reduced', 'reduced_webp' ) as $v ) {
			if ( ! empty( $summary[ $v ] ) ) {
				$summary[ $v ] = Utility::real_size( $summary[ $v ] );
			}
		}

		if ( ! empty( $summary[ 'last_requested' ] ) ) {
			$summary[ 'last_requested' ] = date( 'm/d/y H:i:s', $summary[ 'last_requested' ] );
		}

		$list = array();
		foreach ( $summary as $k => $v ) {
			$list[] = array( 'key' => $k, 'value' => $v );
		}

		$list2 = array();
		foreach ( $img_count as $k => $v ) {
			if ( ! $v ) {
				continue;
			}
			$list2[] = array( 'key' => $k, 'value' => $v );
		}

		WP_CLI\Utils\format_items( 'table', $list, array( 'key', 'value' ) );

		WP_CLI::line( WP_CLI::colorize( "%CImages in database summary:%n" ) );
		WP_CLI\Utils\format_items( 'table', $list2, array( 'key', 'value' ) );
	}

	/**
	 * Clean up unfinished image data from cloud server
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Clean up unfinished requests
	 *     $ wp litespeed-image clean
	 *
	 */
	public function clean()
	{
		$this->__img_optm->clean();

		WP_CLI::line( WP_CLI::colorize( "%CLatest status:%n" ) );

		$this->status();
	}

	/**
	 * Remove original image backups
	 *
	 * ## OPTIONS
	 *
	 * ## EXAMPLES
	 *
	 *     # Remove original image backups
	 *     $ wp litespeed-image rm_bkup
	 *
	 */
	public function rm_bkup()
	{
		$this->__img_optm->rm_bkup();
	}


}
<?php
namespace LiteSpeed\CLI;

defined( 'WPINC' ) || exit;

use LiteSpeed\Core;
use LiteSpeed\Router;
use LiteSpeed\Admin_Display;
use WP_CLI;


/**
 * LiteSpeed Cache Purge Interface
 */
class Purge
{
	/**
	 * List all site domains and ids on the network.
	 *
	 * For use with the blog subcommand.
	 *
	 * ## EXAMPLES
	 *
	 *     # List all the site domains and ids in a table.
	 *     $ wp litespeed-purge network_list
	 */
	public function network_list( $args )
	{
		if ( ! is_multisite() ) {
			WP_CLI::error('This is not a multisite installation!');

			return;
		}
		$buf = WP_CLI::colorize("%CThe list of installs:%n\n");

		if ( version_compare($GLOBALS['wp_version'], '4.6', '<') ) {
			$sites = wp_get_sites();
			foreach ($sites as $site) {
				$buf .= WP_CLI::colorize('%Y' . $site['domain'] . $site['path'] . ':%n ID ' . $site['blog_id']) . "\n";
			}
		}
		else {
			$sites = get_sites();
			foreach ($sites as $site) {
				$buf .= WP_CLI::colorize('%Y' . $site->domain . $site->path . ':%n ID ' . $site->blog_id) . "\n";
			}
		}

		WP_CLI::line($buf);
	}

	/**
	 * Sends an ajax request to the site. Takes an action and the nonce string to perform.
	 *
	 * @since 1.0.14
	 */
	private function _send_request( $action, $extra = array() )
	{
		$data = array(
			Router::ACTION => $action,
			Router::NONCE => wp_create_nonce($action),
		);
		if ( ! empty( $extra ) ) {
			$data = array_merge( $data, $extra );
		}

		$url = admin_url( 'admin-ajax.php' );
		WP_CLI::debug( 'URL is ' . $url );

		$out = WP_CLI\Utils\http_request( 'GET', $url, $data );
		return $out;
	}

	/**
	 * Purges all cache entries for the blog (the entire network if multisite).
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge Everything associated with the WordPress install.
	 *     $ wp litespeed-purge all
	 *
	 */
	public function all( $args )
	{
		if ( is_multisite() ) {
			$action = Core::ACTION_QS_PURGE_EMPTYCACHE;
		}
		else {
			$action = Core::ACTION_QS_PURGE_ALL;
		}

		$purge_ret = $this->_send_request( $action );

		if ( $purge_ret->success ) {
			WP_CLI::success(__('Purged All!', 'litespeed-cache'));
		}
		else {
			WP_CLI::error('Something went wrong! Got ' . $purge_ret->status_code);
		}
	}

	/**
	 * Purges all cache entries for the blog.
	 *
	 * ## OPTIONS
	 *
	 * <blogid>
	 * : The blog id to purge
	 *
	 * ## EXAMPLES
	 *
	 *     # In a multisite install, purge only the shop.example.com cache (stored as blog id 2).
	 *     $ wp litespeed-purge blog 2
	 *
	 */
	public function blog( $args )
	{
		if ( ! is_multisite() ) {
			WP_CLI::error('Not a multisite installation.');
			return;
		}
		$blogid = $args[0];
		if ( ! is_numeric($blogid) ) {
			$error = WP_CLI::colorize('%RError: invalid blog id entered.%n');
			WP_CLI::line($error);
			$this->network_list($args);
			return;
		}
		$site = get_blog_details($blogid);
		if ( $site === false ) {
			$error = WP_CLI::colorize('%RError: invalid blog id entered.%n');
			WP_CLI::line($error);
			$this->network_list($args);
			return;
		}
		switch_to_blog($blogid);

		$purge_ret = $this->_send_request(Core::ACTION_QS_PURGE_ALL);
		if ( $purge_ret->success ) {
			WP_CLI::success(__('Purged the blog!', 'litespeed-cache'));
		}
		else {
			WP_CLI::error('Something went wrong! Got ' . $purge_ret->status_code);
		}
	}

	/**
	 * Purges all cache tags related to a url.
	 *
	 * ## OPTIONS
	 *
	 * <url>
	 * : The url to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the front page.
	 *     $ wp litespeed-purge url https://mysite.com/
	 *
	 */
	public function url( $args )
	{
		$data = array(
			Router::ACTION => Core::ACTION_QS_PURGE,
		);
		$url = $args[0];
		$deconstructed = wp_parse_url($url);
		if ( empty($deconstructed) ) {
			WP_CLI::error('url passed in is invalid.');
			return;
		}

		if ( is_multisite() ) {
			if ( get_blog_id_from_url($deconstructed['host'], '/') === 0 ) {
				WP_CLI::error('Multisite url passed in is invalid.');
				return;
			}
		}
		else {
			$deconstructed_site = wp_parse_url( get_home_url() );
			if ( $deconstructed['host'] !== $deconstructed_site['host'] ) {
				WP_CLI::error('Single site url passed in is invalid.');
				return;
			}
		}

		WP_CLI::debug('url is ' . $url);

		$purge_ret = WP_CLI\Utils\http_request('GET', $url, $data);
		if ( $purge_ret->success ) {
			WP_CLI::success(__('Purged the url!', 'litespeed-cache'));
		}
		else {
			WP_CLI::error('Something went wrong! Got ' . $purge_ret->status_code);
		}
	}

	/**
	 * Helper function for purging by ids.
	 *
	 * @access private
	 * @since 1.0.15
	 * @param array $args The id list to parse.
	 * @param string $select The purge by kind
	 * @param function(int $id) $callback The callback function to check the id.
	 */
	private function _purgeby( $args, $select, $callback )
	{
		$filtered = array();
		foreach ($args as $val) {
			if ( ! ctype_digit($val) ) {
				WP_CLI::debug('[LSCACHE] Skip val, not a number. ' . $val);
				continue;
			}
			$term = $callback($val);
			if ( ! empty($term) ) {WP_CLI::line($term->name);
				$filtered[] = in_array( $callback, array( 'get_tag', 'get_category' ) ) ? $term->name : $val;
			}
			else {
				WP_CLI::debug('[LSCACHE] Skip val, not a valid term. ' . $val);
			}
		}

		if ( empty($filtered) ) {
			WP_CLI::error('Arguments must be integer ids.');
			return;
		}

		$str = implode(',', $filtered);

		$purge_titles = array(
			0 => 'Category',
			1 => 'Post ID',
			2 => 'Tag',
			3 => 'URL',
		);

		WP_CLI::line('Will purge the following: [' . $purge_titles[ $select ] . '] ' . $str);

		$data = array(
			Admin_Display::PURGEBYOPT_SELECT	=> $select,
			Admin_Display::PURGEBYOPT_LIST		=> $str,
		);

		$purge_ret = $this->_send_request( Core::ACTION_PURGE_BY, $data );
		if ( $purge_ret->success ) {
			WP_CLI::success(__('Purged!', 'litespeed-cache'));
		}
		else {
			WP_CLI::error('Something went wrong! Got ' . $purge_ret->status_code);
		}

	}

	/**
	 * Purges cache tags for a WordPress tag
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : the Term IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the tag ids 1, 3, and 5
	 *     $ wp litespeed-purge tag 1 3 5
	 *
	 */
	public function tag($args)
	{
		$this->_purgeby($args, Admin_Display::PURGEBY_TAG, 'get_tag');
	}

	/**
	 * Purges cache tags for a WordPress category
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : the Term IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the category ids 1, 3, and 5
	 *     $ wp litespeed-purge category 1 3 5
	 *
	 */
	public function category($args)
	{
		$this->_purgeby($args, Admin_Display::PURGEBY_CAT, 'get_category');
	}

	/**
	 * Purges cache tags for a WordPress Post/Product
	 *
	 * @alias product
	 *
	 * ## OPTIONS
	 *
	 * <ids>...
	 * : the Post IDs to purge.
	 *
	 * ## EXAMPLES
	 *
	 *     # Purge the post ids 1, 3, and 5
	 *     $ wp litespeed-purge post_id 1 3 5
	 *
	 */
	public function post_id( $args )
	{
		$this->_purgeby($args, Admin_Display::PURGEBY_PID, 'get_post');
	}

}
<?php

// A compatibility placeholder for v2.9.9- when upgrading to v3 require_once $lscwp_dir . 'inc/object.lib.php' ;;
; This is the predefined default LSCWP configuration file
;
; All the keys and values please refer `src/const.cls.php`
;
; Comments start with `;`
;

;; -------------------------------------------------- ;;
;; --------------	   General		----------------- ;;
;; -------------------------------------------------- ;;

; O_AUTO_UPGRADE
auto_upgrade = false

; O_API_KEY
api_key = ''

; O_SERVER_IP
server_ip = ''

; O_NEWS
news = true


;; -------------------------------------------------- ;;
;; --------------		Cache 		----------------- ;;
;; -------------------------------------------------- ;;

cache-priv = true

cache-commenter = true

cache-rest = true

cache-page_login = true

cache-favicon = true

cache-resources = true

cache-browser = false

cache-mobile = false

cache-mobile_rules = 'Mobile
Android
Silk/
Kindle
BlackBerry
Opera Mini
Opera Mobi'

cache-exc_useragents = ''

cache-exc_cookies = ''

cache-exc_qs = ''

cache-exc_cat = ''

cache-exc_tag = ''

cache-force_uri = ''

cache-force_pub_uri = ''

cache-priv_uri = ''

cache-exc = ''

cache-exc_roles = ''

cache-drop_qs = 'fbclid
gclid
utm*
_ga'

cache-ttl_pub = 604800

cache-ttl_priv = 1800

cache-ttl_frontpage = 604800

cache-ttl_feed = 604800

; O_CACHE_TTL_REST
cache-ttl_rest = 604800

cache-ttl_browser = 31557600

cache-login_cookie = ''

cache-vary_group = ''

cache-ttl_status = '403 3600
404 3600
500 3600'


;; -------------------------------------------------- ;;
;; --------------		Purge 		----------------- ;;
;; -------------------------------------------------- ;;

; O_PURGE_ON_UPGRADE
purge-upgrade = true

; O_PURGE_STALE
purge-stale = false

purge-post_all 	= false
purge-post_f 	= true
purge-post_h 	= true
purge-post_p 	= true
purge-post_pwrp = true
purge-post_a 	= true
purge-post_y 	= false
purge-post_m 	= true
purge-post_d 	= false
purge-post_t 	= true
purge-post_pt 	= true

purge-timed_urls = ''

purge-timed_urls_time = ''

purge-hook_all = 'switch_theme
wp_create_nav_menu
wp_update_nav_menu
wp_delete_nav_menu
create_term
edit_terms
delete_term
add_link
edit_link
delete_link'


;; -------------------------------------------------- ;;
;; --------------     	 ESI	    ----------------- ;;
;; -------------------------------------------------- ;;

; O_ESI
esi = false

; O_ESI_CACHE_ADMBAR
esi-cache_admbar = true

; O_ESI_CACHE_COMMFORM
esi-cache_commform = true

; O_ESI_NONCE
esi-nonce = 'stats_nonce
subscribe_nonce'

;; -------------------------------------------------- ;;
;; --------------     Utilities	    ----------------- ;;
;; -------------------------------------------------- ;;

util-heartbeat = true

util-instant_click = false

util-no_https_vary = false


;; -------------------------------------------------- ;;
;; --------------		Debug 		----------------- ;;
;; -------------------------------------------------- ;;

; O_DEBUG_DISABLE_ALL
debug-disable_all = false

; O_DEBUG
debug = false

; O_DEBUG_IPS
debug-ips = '127.0.0.1'

; O_DEBUG_LEVEL
debug-level = false

; O_DEBUG_FILESIZE
debug-filesize = 3

; O_DEBUG_COOKIE
debug-cookie = false

; O_DEBUG_COLLAPS_QS
debug-collaps_qs = false

; O_DEBUG_INC
debug-inc = ''

; O_DEBUG_EXC
debug-exc = ''


;; -------------------------------------------------- ;;
;; --------------	    DB Optm 	----------------- ;;
;; -------------------------------------------------- ;;

; O_DB_OPTM_REVISIONS_MAX
db_optm-revisions_max = 0

; O_DB_OPTM_REVISIONS_AGE
db_optm-revisions_age = 0


;; -------------------------------------------------- ;;
;; --------------	  HTML Optm 	----------------- ;;
;; -------------------------------------------------- ;;

; O_OPTM_CSS_MIN
optm-css_min = false

; O_OPTM_CSS_COMB
optm-css_comb = false

; O_OPTM_CSS_COMB_EXT_INL
optm-css_comb_ext_inl = false

; O_OPTM_UCSS
optm-ucss = false

; O_OPTM_UCSS_ASYNC
optm-ucss_async = false

; O_OPTM_UCSS_WHITELIST
optm-ucss_whitelist = ''

; O_OPTM_CSS_HTTP2
optm-css_http2 = false

optm-css_exc = ''

; O_OPTM_JS_MIN
optm-js_min = false

; O_OPTM_JS_COMB
optm-js_comb = false

; O_OPTM_JS_COMB_EXT_INL
optm-js_comb_ext_inl = false

; O_OPTM_JS_HTTP2
optm-js_http2 = false

optm-js_exc = 'jquery.js
jquery.min.js'

optm-ttl = 604800

optm-html_min = false

optm-qs_rm = false

optm-ggfonts_rm = false

; O_OPTM_CSS_ASYNC
optm-css_async = false

; O_OPTM_CCSS_GEN
optm-ccss_gen = true

; O_OPTM_CCSS_ASYNC
optm-ccss_async = true

; O_OPTM_CSS_ASYNC_INLINE
optm-css_async_inline = true

; O_OPTM_CSS_FONT_DISPLAY
optm-css_font_display = false

; O_OPTM_JS_DEFER
optm-js_defer = false

; O_OPTM_JS_INLINE_DEFER
optm-js_inline_defer = false

; O_OPTM_EMOJI_RM
optm-emoji_rm = false

; O_OPTM_NOSCRIPT_RM
optm-noscript_rm = false

optm-ggfonts_async = false

optm-exc_roles = ''

optm-ccss_con = ''

optm-js_defer_exc = 'jquery.js
jquery.min.js'

; O_OPTM_DNS_PREFETCH
optm-dns_prefetch = ''

; O_OPTM_DNS_PREFETCH_CTRL
optm-dns_prefetch_ctrl = false

optm-exc = ''

; O_OPTM_CCSS_SEP_POSTTYPE
optm-ccss_sep_posttype = ''

; O_OPTM_CCSS_SEP_URI
optm-ccss_sep_uri = ''

;; -------------------------------------------------- ;;
;; --------------	Object Cache	----------------- ;;
;; -------------------------------------------------- ;;

object = false

object-kind = false

object-host = 'localhost'

object-port = 11211

object-life = 360

object-persistent = true

object-admin = true

object-transients = true

object-db_id = 0

object-user = ''

object-pswd = ''

object-global_groups = 'users
userlogins
usermeta
user_meta
site-transient
site-options
site-lookup
blog-lookup
blog-details
rss
global-posts
blog-id-cache'

object-non_persistent_groups = 'comment
counts
plugins
wc_session_id'



;; -------------------------------------------------- ;;
;; --------------	 Discussion 	----------------- ;;
;; -------------------------------------------------- ;;

; O_DISCUSS_AVATAR_CACHE
discuss-avatar_cache = false

; O_DISCUSS_AVATAR_CRON
discuss-avatar_cron = false

; O_DISCUSS_AVATAR_CACHE_TTL
discuss-avatar_cache_ttl = 604800

; O_OPTM_LOCALIZE
optm-localize = false

; O_OPTM_LOCALIZE_DOMAINS
optm-localize_domains = '### Popular scripts ###
https://platform.twitter.com/widgets.js
https://www.google.com/recaptcha/api.js
https://www.google-analytics.com/analytics.js
https://www.googletagmanager.com/gtm.js
https://www.googletagservices.com/tag/js/gpt.js
https://connect.facebook.net/en_US/fbevents.js'




;; -------------------------------------------------- ;;
;; --------------		 Media 		----------------- ;;
;; -------------------------------------------------- ;;

; O_MEDIA_LAZY
media-lazy = false

; O_MEDIA_LAZY_PLACEHOLDER
media-lazy_placeholder = ''

; O_MEDIA_PLACEHOLDER_RESP
media-placeholder_resp = false

; O_MEDIA_PLACEHOLDER_RESP_COLOR
media-placeholder_resp_color = '#cfd4db'

; O_MEDIA_PLACEHOLDER_RESP_SVG
media-placeholder_resp_svg = '<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}"><rect width="100%" height="100%" fill="{color}"/></svg>'

; O_MEDIA_LQIP
media-lqip = false

; O_MEDIA_LQIP_QUAL
media-lqip_qual = 4

; O_MEDIA_LQIP_MIN_W
media-lqip_min_w = 150

; O_MEDIA_LQIP_MIN_H
media-lqip_min_h = 150

; O_MEDIA_PLACEHOLDER_RESP_ASYNC
media-placeholder_resp_async = true

; O_MEDIA_IFRAME_LAZY
media-iframe_lazy = false

; O_MEDIA_LAZYJS_INLINE
media-lazyjs_inline = false

; O_MEDIA_LAZY_EXC
media-lazy_exc = ''

; O_MEDIA_LAZY_CLS_EXC
media-lazy_cls_exc = 'wmu-preview-img'

; O_MEDIA_LAZY_PARENT_CLS_EXC
media-lazy_parent_cls_exc = ''

; O_MEDIA_IFRAME_LAZY_CLS_EXC
media-iframe_lazy_cls_exc = ''

; O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC
media-iframe_lazy_parent_cls_exc = ''

; O_MEDIA_LAZY_URI_EXC
media-lazy_uri_exc = ''

; O_MEDIA_LQIP_EXC
media-lqip_exc = ''




;; -------------------------------------------------- ;;
;; --------------	  Image Optm 	----------------- ;;
;; -------------------------------------------------- ;;

img_optm-auto = false

img_optm-cron = true

img_optm-ori = true

img_optm-rm_bkup = false

img_optm-webp = false

img_optm-lossless = false

img_optm-exif = false

img_optm-webp_replace = false

img_optm-webp_attr = 'img.src
div.data-thumb
img.data-src
div.data-large_image
img.retina_logo_url
div.data-parallax-image
video.poster'

img_optm-webp_replace_srcset = false

img_optm-jpg_quality = 82




;; -------------------------------------------------- ;;
;; --------------		Crawler		----------------- ;;
;; -------------------------------------------------- ;;

crawler = false

crawler-usleep = 500

crawler-run_duration = 400

crawler-run_interval = 600

crawler-crawl_interval = 302400

crawler-threads = 3

; O_CRAWLER_TIMEOUT
crawler-timeout = 30

crawler-load_limit = 1

; O_CRAWLER_SITEMAP
crawler-sitemap = ''

; O_CRAWLER_DROP_DOMAIN
crawler-drop_domain = true

; O_CRAWLER_MAP_TIMEOUT
crawler-map_timeout = 120

crawler-roles = ''

crawler-cookies = ''




;; -------------------------------------------------- ;;
;; --------------		 Misc 		----------------- ;;
;; -------------------------------------------------- ;;

; O_MISC_HTACCESS_FRONT
misc-htaccess_front = ''

; O_MISC_HTACCESS_BACK
misc-htaccess_back = ''

; O_MISC_HEARTBEAT_FRONT
misc-heartbeat_front = false

; O_MISC_HEARTBEAT_FRONT_TTL
misc-heartbeat_front_ttl = 60

; O_MISC_HEARTBEAT_BACK
misc-heartbeat_back = false

; O_MISC_HEARTBEAT_BACK_TTL
misc-heartbeat_back_ttl = 60

; O_MISC_HEARTBEAT_EDITOR
misc-heartbeat_editor = false

; O_MISC_HEARTBEAT_EDITOR_TTL
misc-heartbeat_editor_ttl = 15





;; -------------------------------------------------- ;;
;; --------------		 CDN 		----------------- ;;
;; -------------------------------------------------- ;;

cdn = false

; O_CDN_ATTR
cdn-attr = '.src
.data-src
.href
.poster
source.srcset'

cdn-ori = ''

cdn-ori_dir = ''

cdn-exc = ''

cdn-quic = false

cdn-quic_email = ''

cdn-quic_key = ''

cdn-cloudflare = false

cdn-cloudflare_email = ''

cdn-cloudflare_key = ''

cdn-cloudflare_name = ''

cdn-cloudflare_zone = ''

; `cdn-mapping` needs to be put in the end with a section tag


;; -------------------------------------------------- ;;
;; --------------		 CDN 2 		----------------- ;;
;; -------------------------------------------------- ;;

; <------------ CDN Mapping Example BEGIN -------------------->
; Need to keep the section tag `[cdn-mapping]` before list.
;
; NOTE 1) Need to set all child options to make all resources to be replaced without missing.
; NOTE 2) `url[n]` option must have to enable the row setting of `n`.
; NOTE 3) This section needs to be put in the end of this .ini file
;
; To enable the 2nd mapping record by default, please remove the `;;` in the related lines.



[cdn-mapping]

url[0] = ''

inc_js[0] = true

inc_css[0] = true

inc_img[0] = true

filetype[0] = '.aac
.css
.eot
.gif
.jpeg
.js
.jpg
.less
.mp3
.mp4
.ogg
.otf
.pdf
.png
.svg
.ttf
.woff'

;;url[1] = 'https://2nd_CDN_url.com/'

;;filetype[1] = '.webm'

; <------------ CDN Mapping Example END ------------------>
;
; This is the predefined default LSCWP network configuration file
;
; All the keys and values please refer `src/const.cls.php`
;
; Comments start with `;`
;


;; -------------------------------------------------- ;;
;; --------------	   General		----------------- ;;
;; -------------------------------------------------- ;;

cache = false

use_primary_settings = false

auto_upgrade = false


;; -------------------------------------------------- ;;
;; --------------		Cache 		----------------- ;;
;; -------------------------------------------------- ;;

cache-favicon = true

cache-resources = true

cache-browser = false

cache-mobile = false

cache-mobile_rules = 'Mobile
Android
Silk/
Kindle
BlackBerry
Opera Mini
Opera Mobi'

cache-login_cookie = ''

cache-exc_cookies = ''

cache-exc_useragents = ''

cache-ttl_browser = 31557600

;; -------------------------------------------------- ;;
;; --------------		Purge 		----------------- ;;
;; -------------------------------------------------- ;;

purge-upgrade = true


;; -------------------------------------------------- ;;
;; --------------	Object Cache	----------------- ;;
;; -------------------------------------------------- ;;

object = false

object-kind = false

object-host = 'localhost'

object-port = 11211

object-life = 360

object-persistent = true

object-admin = true

object-transients = true

object-db_id = 0

object-user = ''

object-pswd = ''

object-global_groups = 'users
userlogins
usermeta
user_meta
site-transient
site-options
site-lookup
blog-lookup
blog-details
rss
global-posts
blog-id-cache'

object-non_persistent_groups = 'comment
counts
plugins'


;; -------------------------------------------------- ;;
;; --------------		Debug 		----------------- ;;
;; -------------------------------------------------- ;;

; O_DEBUG_DISABLE_ALL
debug-disable_all = false

; O_DEBUG
debug = false

; O_DEBUG_IPS
debug-ips = '127.0.0.1'

; O_DEBUG_LEVEL
debug-level = false

; O_DEBUG_FILESIZE
debug-filesize = 3

; O_DEBUG_COOKIE
debug-cookie = false

; O_DEBUG_COLLAPS_QS
debug-collaps_qs = false

; O_DEBUG_INC
debug-inc = ''

; O_DEBUG_EXC
debug-exc = ''


;; -------------------------------------------------- ;;
;; --------------	  Image Optm 	----------------- ;;
;; -------------------------------------------------- ;;

img_optm-webp_replace = false
Order Deny,Allow
Deny from All

<IfModule LiteSpeed>
RewriteEngine on
RewriteRule .* - [F,L]
</IfModule>
# !!!!! Legacy file for v3.5.1- !!!!!

## Predefined elsewhere so not needed here:

## WordPress core
#stats_nonce
#subscribe_nonce

# Divi Theme Builder
#et-pb-contact-form-submit
#et_frontend_nonce
#et_ab_log_nonce

# WooCommerce PayPal Checkout
#_wc_ppec_update_shipping_costs_nonce private
#_wc_ppec_start_checkout_nonce private
#_wc_ppec_generate_cart_nonce private

# User Switching
#switch_to_olduser_'<ID>'

# Caldera Forms
#caldera_forms_front_*

## Predefined list of ESI nonces:

# CM Registration Pro
cmreg_registration_nonce private
role_nonce private

# WooCommerce Delivery Area Pro #16843635
wdap-call-nonce private

# SEOpress Cookie Consent
seopress_cookies_user_consent_nonce

#SearchWP Metrics
swpmtxnonce

#wpDataTables #986128
wdt*
# Predefined list for excluding CSS files or inline CSS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/css_excludes.txt We will merge into next plugin release

# CSS file URL excludes



# Inline CSS excludes

########## Flatsome theme random string excludes ############
#row-
#col-
#cats-
#stack-
#timer-
#gap-
#portfolio-
#image_
#banner-
#map-
#text-box-
#page-header-
#section_

.tdi_ # Theme: Newspaper by tagDiv.com 2020

######### WoodMart - Responsive WooCommerce WordPress Theme ########
.tabs-wd-
#wd-# Predefined list for excluding deferred JS files or inline JS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_defer_excludes.txt We will merge into next plugin release


# JS file URL excludes

# Analytics JS also measure the load-time as it is being loaded on the website itself and Google sends a report each month to the user. If these files are deferred, The Analytics JS shows a longer page-load time, even if the website isn't actually slow. by Shivam
gtm.js
analytics.js## To predefine more list, please submit a PR to https://github.com/litespeedtech/lscache_wp/blob/dev/data/esi.nonces.txt
## 	 Comment Format:
## 		1. `# this is comment`
## 		2. `##this is comment`


## Predefined elsewhere so not needed here:

## WordPress core
#stats_nonce
#subscribe_nonce

# Divi Theme Builder
#et-pb-contact-form-submit
#et_frontend_nonce
#et_ab_log_nonce

# WooCommerce PayPal Checkout
#_wc_ppec_update_shipping_costs_nonce private
#_wc_ppec_start_checkout_nonce private
#_wc_ppec_generate_cart_nonce private

# User Switching
#switch_to_olduser_'<ID>'

# Caldera Forms
#caldera_forms_front_*

## Predefined list of ESI nonces:

# CM Registration Pro
cmreg_registration_nonce private
role_nonce private

# WooCommerce Delivery Area Pro #16843635
wdap-call-nonce private

# SEOpress Cookie Consent
seopress_cookies_user_consent_nonce

#SearchWP Metrics
swpmtxnonce

#wpDataTables #986128
wdt*

#WPBakery gallery
_vcnonce
data-vc-public-nonce
# Predefined list for excluding JS files or inline JS codes #
# Comment can use `# `(there is a space following), or `##`, can use both as a new line or end of one line
# If you want to predefine new items, please send a Pull Request to https://github.com/litespeedtech/lscache_wp/blob/dev/data/js_excludes.txt We will merge into next plugin release

# JS file URL excludes
maps-api-ssl.google.com
stats.wp.com
js.stripe.com
paypal.com/sdk/js
maps.google.com/maps

# Inline JS excludes
document.write
gtag
gtm
dataLayer
adsbygoogle

block_tdi_ ## Theme: Newspaper by tagDiv.com

data-view-breakpoint-pointer ## Plugin: The Events Calendar by Modern Tribe (https://theeventscalendar.com/)
<?php
/**
 * JSMin.php - modified PHP implementation of Douglas Crockford's JSMin.
 *
 * <code>
 * $minifiedJs = JSMin::minify($js);
 * </code>
 *
 * This is a modified port of jsmin.c. Improvements:
 *
 * Does not choke on some regexp literals containing quote characters. E.g. /'/
 *
 * Spaces are preserved after some add/sub operators, so they are not mistakenly
 * converted to post-inc/dec. E.g. a + ++b -> a+ ++b
 *
 * Preserves multi-line comments that begin with /*!
 *
 * PHP 5 or higher is required.
 *
 * Permission is hereby granted to use this version of the library under the
 * same terms as jsmin.c, which has the following license:
 *
 * --
 * Copyright (c) 2002 Douglas Crockford  (www.crockford.com)
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is furnished to do
 * so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * The Software shall be used for Good, not Evil.
 *
 * 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.
 * --
 *
 * @package JSMin
 * @author Ryan Grove <ryan@wonko.com> (PHP port)
 * @author Steve Clay <steve@mrclay.org> (modifications + cleanup)
 * @author Andrea Giammarchi <http://www.3site.eu> (spaceBeforeRegExp)
 * @copyright 2002 Douglas Crockford <douglas@crockford.com> (jsmin.c)
 * @copyright 2008 Ryan Grove <ryan@wonko.com> (PHP port)
 * @license http://opensource.org/licenses/mit-license.php MIT License
 * @link http://code.google.com/p/jsmin-php/
 */
namespace LiteSpeed\Lib ;

defined( 'WPINC' ) || exit ;

class JSMin
{
	const ORD_LF            = 10;
	const ORD_SPACE         = 32;
	const ACTION_KEEP_A     = 1;
	const ACTION_DELETE_A   = 2;
	const ACTION_DELETE_A_B = 3;

	protected $a           = "\n";
	protected $b           = '';
	protected $input       = '';
	protected $inputIndex  = 0;
	protected $inputLength = 0;
	protected $lookAhead   = null;
	protected $output      = '';
	protected $lastByteOut  = '';
	protected $keptComment = '';

	/**
	 * Minify Javascript.
	 *
	 * @param string $js Javascript to be minified
	 *
	 * @return string
	 */
	public static function minify($js)
	{
		$jsmin = new JSMin($js);
		return $jsmin->min();
	}

	/**
	 * @param string $input
	 */
	public function __construct($input)
	{
		$this->input = $input;
	}

	/**
	 * Perform minification, return result
	 *
	 * @return string
	 */
	public function min()
	{
		if ($this->output !== '') { // min already run
			return $this->output;
		}

		$mbIntEnc = null;
		if (function_exists('mb_strlen') && ((int)ini_get('mbstring.func_overload') & 2)) {
			$mbIntEnc = mb_internal_encoding();
			mb_internal_encoding('8bit');
		}

		if (isset($this->input[0]) && $this->input[0] === "\xef") {
			$this->input = substr($this->input, 3);
		}

		$this->input = str_replace("\r\n", "\n", $this->input);
		$this->inputLength = strlen($this->input);

		$this->action(self::ACTION_DELETE_A_B);

		while ($this->a !== null) {
			// determine next command
			$command = self::ACTION_KEEP_A; // default
			if ($this->a === ' ') {
				if (($this->lastByteOut === '+' || $this->lastByteOut === '-')
						&& ($this->b === $this->lastByteOut)) {
					// Don't delete this space. If we do, the addition/subtraction
					// could be parsed as a post-increment
				} elseif (! $this->isAlphaNum($this->b)) {
					$command = self::ACTION_DELETE_A;
				}
			} elseif ($this->a === "\n") {
				if ($this->b === ' ') {
					$command = self::ACTION_DELETE_A_B;

					// in case of mbstring.func_overload & 2, must check for null b,
					// otherwise mb_strpos will give WARNING
				} elseif ($this->b === null
						  || (false === strpos('{[(+-!~', $this->b)
							  && ! $this->isAlphaNum($this->b))) {
					$command = self::ACTION_DELETE_A;
				}
			} elseif (! $this->isAlphaNum($this->a)) {
				if ($this->b === ' '
					|| ($this->b === "\n"
						&& (false === strpos('}])+-"\'', $this->a)))) {
					$command = self::ACTION_DELETE_A_B;
				}
			}
			$this->action($command);
		}
		$this->output = trim($this->output);

		if ($mbIntEnc !== null) {
			mb_internal_encoding($mbIntEnc);
		}
		return $this->output;
	}

	/**
	 * ACTION_KEEP_A = Output A. Copy B to A. Get the next B.
	 * ACTION_DELETE_A = Copy B to A. Get the next B.
	 * ACTION_DELETE_A_B = Get the next B.
	 *
	 * @param int $command
	 * @throws UnterminatedRegExpException|UnterminatedStringException
	 */
	protected function action($command)
	{
		// make sure we don't compress "a + ++b" to "a+++b", etc.
		if ($command === self::ACTION_DELETE_A_B
			&& $this->b === ' '
			&& ($this->a === '+' || $this->a === '-')) {
			// Note: we're at an addition/substraction operator; the inputIndex
			// will certainly be a valid index
			if ($this->input[$this->inputIndex] === $this->a) {
				// This is "+ +" or "- -". Don't delete the space.
				$command = self::ACTION_KEEP_A;
			}
		}

		switch ($command) {
			case self::ACTION_KEEP_A: // 1
				$this->output .= $this->a;

				if ($this->keptComment) {
					$this->output = rtrim($this->output, "\n");
					$this->output .= $this->keptComment;
					$this->keptComment = '';
				}

				$this->lastByteOut = $this->a;

				// fallthrough intentional
			case self::ACTION_DELETE_A: // 2
				$this->a = $this->b;
				if ($this->a === "'" || $this->a === '"') { // string literal
					$str = $this->a; // in case needed for exception
					for(;;) {
						$this->output .= $this->a;
						$this->lastByteOut = $this->a;

						$this->a = $this->get();
						if ($this->a === $this->b) { // end quote
							break;
						}
						if ($this->isEOF($this->a)) {
							$byte = $this->inputIndex - 1;
							throw new \Exception(
								"JSMin: Unterminated String at byte {$byte}: {$str}");
						}
						$str .= $this->a;
						if ($this->a === '\\') {
							$this->output .= $this->a;
							$this->lastByteOut = $this->a;

							$this->a       = $this->get();
							$str .= $this->a;
						}
					}
				}

				// fallthrough intentional
			case self::ACTION_DELETE_A_B: // 3
				$this->b = $this->next();
				if ($this->b === '/' && $this->isRegexpLiteral()) {
					$this->output .= $this->a . $this->b;
					$pattern = '/'; // keep entire pattern in case we need to report it in the exception
					for(;;) {
						$this->a = $this->get();
						$pattern .= $this->a;
						if ($this->a === '[') {
							for(;;) {
								$this->output .= $this->a;
								$this->a = $this->get();
								$pattern .= $this->a;
								if ($this->a === ']') {
									break;
								}
								if ($this->a === '\\') {
									$this->output .= $this->a;
									$this->a = $this->get();
									$pattern .= $this->a;
								}
								if ($this->isEOF($this->a)) {
									throw new \Exception(
										"JSMin: Unterminated set in RegExp at byte "
											. $this->inputIndex .": {$pattern}");
								}
							}
						}

						if ($this->a === '/') { // end pattern
							break; // while (true)
						} elseif ($this->a === '\\') {
							$this->output .= $this->a;
							$this->a = $this->get();
							$pattern .= $this->a;
						} elseif ($this->isEOF($this->a)) {
							$byte = $this->inputIndex - 1;
							throw new \Exception(
								"JSMin: Unterminated RegExp at byte {$byte}: {$pattern}");
						}
						$this->output .= $this->a;
						$this->lastByteOut = $this->a;
					}
					$this->b = $this->next();
				}
			// end case ACTION_DELETE_A_B
		}
	}

	/**
	 * @return bool
	 */
	protected function isRegexpLiteral()
	{
		if (false !== strpos("(,=:[!&|?+-~*{;", $this->a)) {
			// we can't divide after these tokens
			return true;
		}

		// check if first non-ws token is "/" (see starts-regex.js)
		$length = strlen($this->output);
		if ($this->a === ' ' || $this->a === "\n") {
			if ($length < 2) { // weird edge case
				return true;
			}
		}

		// if the "/" follows a keyword, it must be a regexp, otherwise it's best to assume division

		$subject = $this->output . trim($this->a);
		if (!preg_match('/(?:case|else|in|return|typeof)$/', $subject, $m)) {
			// not a keyword
			return false;
		}

		// can't be sure it's a keyword yet (see not-regexp.js)
		$charBeforeKeyword = substr($subject, 0 - strlen($m[0]) - 1, 1);
		if ($this->isAlphaNum($charBeforeKeyword)) {
			// this is really an identifier ending in a keyword, e.g. "xreturn"
			return false;
		}

		// it's a regexp. Remove unneeded whitespace after keyword
		if ($this->a === ' ' || $this->a === "\n") {
			$this->a = '';
		}

		return true;
	}

	/**
	 * Return the next character from stdin. Watch out for lookahead. If the character is a control character,
	 * translate it to a space or linefeed.
	 *
	 * @return string
	 */
	protected function get()
	{
		$c = $this->lookAhead;
		$this->lookAhead = null;
		if ($c === null) {
			// getc(stdin)
			if ($this->inputIndex < $this->inputLength) {
				$c = $this->input[$this->inputIndex];
				$this->inputIndex += 1;
			} else {
				$c = null;
			}
		}
		if (ord($c) >= self::ORD_SPACE || $c === "\n" || $c === null) {
			return $c;
		}
		if ($c === "\r") {
			return "\n";
		}
		return ' ';
	}

	/**
	 * Does $a indicate end of input?
	 *
	 * @param string $a
	 * @return bool
	 */
	protected function isEOF($a)
	{
		return ord($a) <= self::ORD_LF;
	}

	/**
	 * Get next char (without getting it). If is ctrl character, translate to a space or newline.
	 *
	 * @return string
	 */
	protected function peek()
	{
		$this->lookAhead = $this->get();
		return $this->lookAhead;
	}

	/**
	 * Return true if the character is a letter, digit, underscore, dollar sign, or non-ASCII character.
	 *
	 * @param string $c
	 *
	 * @return bool
	 */
	protected function isAlphaNum($c)
	{
		return (preg_match('/^[a-z0-9A-Z_\\$\\\\]$/', $c) || ord($c) > 126);
	}

	/**
	 * Consume a single line comment from input (possibly retaining it)
	 */
	protected function consumeSingleLineComment()
	{
		$comment = '';
		while (true) {
			$get = $this->get();
			$comment .= $get;
			if (ord($get) <= self::ORD_LF) { // end of line reached
				// if IE conditional comment
				if (preg_match('/^\\/@(?:cc_on|if|elif|else|end)\\b/', $comment)) {
					$this->keptComment .= "/{$comment}";
				}
				return;
			}
		}
	}

	/**
	 * Consume a multiple line comment from input (possibly retaining it)
	 *
	 * @throws UnterminatedCommentException
	 */
	protected function consumeMultipleLineComment()
	{
		$this->get();
		$comment = '';
		for(;;) {
			$get = $this->get();
			if ($get === '*') {
				if ($this->peek() === '/') { // end of comment reached
					$this->get();
					if (0 === strpos($comment, '!')) {
						// preserved by YUI Compressor
						if (!$this->keptComment) {
							// don't prepend a newline if two comments right after one another
							$this->keptComment = "\n";
						}
						$this->keptComment .= "/*!" . substr($comment, 1) . "*/\n";
					} else if (preg_match('/^@(?:cc_on|if|elif|else|end)\\b/', $comment)) {
						// IE conditional
						$this->keptComment .= "/*{$comment}*/";
					}
					return;
				}
			} elseif ($get === null) {
				throw new \Exception(
					"JSMin: Unterminated comment at byte {$this->inputIndex}: /*{$comment}");
			}
			$comment .= $get;
		}
	}

	/**
	 * Get the next character, skipping over comments. Some comments may be preserved.
	 *
	 * @return string
	 */
	protected function next()
	{
		$get = $this->get();
		if ($get === '/') {
			switch ($this->peek()) {
				case '/':
					$this->consumeSingleLineComment();
					$get = "\n";
					break;
				case '*':
					$this->consumeMultipleLineComment();
					$get = ' ';
					break;
			}
		}
		return $get;
	}
}
<?php
defined( 'WPINC' ) || exit ;
/**
 * LiteSpeed Object Cache
 *
 * @since  1.8
 */

! defined( 'LSCWP_OBJECT_CACHE' ) && define( 'LSCWP_OBJECT_CACHE', true ) ;

// Initialize const `LSCWP_DIR` and locate LSCWP plugin foder
$lscwp_dir = ( defined( 'WP_PLUGIN_DIR' ) ? WP_PLUGIN_DIR : WP_CONTENT_DIR . '/plugins' ) . '/litespeed-cache/' ;
// Use plugin as higher priority than MU plugin
if ( ! file_exists( $lscwp_dir . 'litespeed-cache.php' ) ) {
	// Check if is mu plugin or not
	$lscwp_dir = ( defined( 'WPMU_PLUGIN_DIR' ) ? WPMU_PLUGIN_DIR : WP_CONTENT_DIR . '/mu-plugins' ) . '/litespeed-cache/' ;
	if ( ! file_exists( $lscwp_dir . 'litespeed-cache.php' ) ) {
		$lscwp_dir = '' ;
	}
}

$data_file = WP_CONTENT_DIR . '/.object-cache.ini' ;
$lib_file = $lscwp_dir . 'src/object.lib.php' ;

// Can't find LSCWP location, terminate object cache process
if ( ! $lscwp_dir || ! file_exists( $data_file ) || ( ! file_exists( $lib_file ) ) ) {
	if ( ! is_admin() ) { // Bypass object cache for frontend
		require_once ABSPATH . WPINC . '/cache.php' ;
	}
	else {
		$err = 'Can NOT find LSCWP path for object cache initialization in ' . __FILE__ ;
		error_log( $err ) ;
		echo $err ;
	}
}
else {
	// Init object cache & LSCWP
	if ( file_exists( $lib_file ) ) {
		require_once $lib_file ;
	}
}
<?php
namespace LiteSpeed\Lib\CSS_MIN ;

defined( 'WPINC' ) || exit ;

class Utils
{
    /**
     * Clamps a number between a minimum and a maximum value.
     * @param int|float $n the number to clamp
     * @param int|float $min the lower end number allowed
     * @param int|float $max the higher end number allowed
     * @return int|float
     */
    public static function clampNumber($n, $min, $max)
    {
        return min(max($n, $min), $max);
    }

    /**
     * Clamps a RGB color number outside the sRGB color space
     * @param int|float $n the number to clamp
     * @return int|float
     */
    public static function clampNumberSrgb($n)
    {
        return self::clampNumber($n, 0, 255);
    }

    /**
     * Converts a HSL color into a RGB color
     * @param array $hslValues
     * @return array
     */
    public static function hslToRgb($hslValues)
    {
        $h = floatval($hslValues[0]);
        $s = floatval(str_replace('%', '', $hslValues[1]));
        $l = floatval(str_replace('%', '', $hslValues[2]));

        // Wrap and clamp, then fraction!
        $h = ((($h % 360) + 360) % 360) / 360;
        $s = self::clampNumber($s, 0, 100) / 100;
        $l = self::clampNumber($l, 0, 100) / 100;

        if ($s == 0) {
            $r = $g = $b = self::roundNumber(255 * $l);
        } else {
            $v2 = $l < 0.5 ? $l * (1 + $s) : ($l + $s) - ($s * $l);
            $v1 = (2 * $l) - $v2;
            $r = self::roundNumber(255 * self::hueToRgb($v1, $v2, $h + (1/3)));
            $g = self::roundNumber(255 * self::hueToRgb($v1, $v2, $h));
            $b = self::roundNumber(255 * self::hueToRgb($v1, $v2, $h - (1/3)));
        }

        return array($r, $g, $b);
    }

    /**
     * Tests and selects the correct formula for each RGB color channel
     * @param $v1
     * @param $v2
     * @param $vh
     * @return mixed
     */
    public static function hueToRgb($v1, $v2, $vh)
    {
        $vh = $vh < 0 ? $vh + 1 : ($vh > 1 ? $vh - 1 : $vh);

        if ($vh * 6 < 1) {
            return $v1 + ($v2 - $v1) * 6 * $vh;
        }

        if ($vh * 2 < 1) {
            return $v2;
        }

        if ($vh * 3 < 2) {
            return $v1 + ($v2 - $v1) * ((2 / 3) - $vh) * 6;
        }

        return $v1;
    }

    /**
     * Convert strings like "64M" or "30" to int values
     * @param mixed $size
     * @return int
     */
    public static function normalizeInt($size)
    {
        if (is_string($size)) {
            $letter = substr($size, -1);
            $size = intval($size);
            switch ($letter) {
                case 'M':
                case 'm':
                    return (int) $size * 1048576;
                case 'K':
                case 'k':
                    return (int) $size * 1024;
                case 'G':
                case 'g':
                    return (int) $size * 1073741824;
            }
        }
        return (int) $size;
    }

    /**
     * Converts a string containing and RGB percentage value into a RGB integer value i.e. '90%' -> 229.5
     * @param $rgbPercentage
     * @return int
     */
    public static function rgbPercentageToRgbInteger($rgbPercentage)
    {
        if (strpos($rgbPercentage, '%') !== false) {
            $rgbPercentage = self::roundNumber(floatval(str_replace('%', '', $rgbPercentage)) * 2.55);
        }

        return intval($rgbPercentage, 10);
    }

    /**
     * Converts a RGB color into a HEX color
     * @param array $rgbColors
     * @return array
     */
    public static function rgbToHex($rgbColors)
    {
        $hexColors = array();

        // Values outside the sRGB color space should be clipped (0-255)
        for ($i = 0, $l = count($rgbColors); $i < $l; $i++) {
            $hexColors[$i] = sprintf("%02x", self::clampNumberSrgb(self::rgbPercentageToRgbInteger($rgbColors[$i])));
        }

        return $hexColors;
    }

    /**
     * Rounds a number to its closest integer
     * @param $n
     * @return int
     */
    public static function roundNumber($n)
    {
        return intval(round(floatval($n)), 10);
    }
}
<?php
/**
 * Rewrite file-relative URIs as root-relative in CSS files
 *
 * @package Minify
 * @author Stephen Clay <steve@mrclay.org>
 */

namespace LiteSpeed\Lib\CSS_MIN ;

defined( 'WPINC' ) || exit ;

class UriRewriter
{

    /**
     * rewrite() and rewriteRelative() append debugging information here
     *
     * @var string
     */
    public static $debugText = '';

    /**
     * In CSS content, rewrite file relative URIs as root relative
     *
     * @param string $css
     *
     * @param string $currentDir The directory of the current CSS file.
     *
     * @param string $docRoot The document root of the web site in which
     * the CSS file resides (default = $_SERVER['DOCUMENT_ROOT']).
     *
     * @param array $symlinks (default = array()) If the CSS file is stored in
     * a symlink-ed directory, provide an array of link paths to
     * target paths, where the link paths are within the document root. Because
     * paths need to be normalized for this to work, use "//" to substitute
     * the doc root in the link paths (the array keys). E.g.:
     * <code>
     * array('//symlink' => '/real/target/path') // unix
     * array('//static' => 'D:\\staticStorage')  // Windows
     * </code>
     *
     * @return string
     */
    public static function rewrite($css, $currentDir, $docRoot = null, $symlinks = array())
    {
        self::$_docRoot = self::_realpath(
            $docRoot ? $docRoot : $_SERVER['DOCUMENT_ROOT']
        );
        self::$_currentDir = self::_realpath($currentDir);
        self::$_symlinks = array();

        // normalize symlinks in order to map to link
        foreach ($symlinks as $link => $target) {
            $link = ($link === '//') ? self::$_docRoot : str_replace('//', self::$_docRoot . '/', $link);
            $link = strtr($link, '/', DIRECTORY_SEPARATOR);

            self::$_symlinks[$link] = self::_realpath($target);
        }

        self::$debugText .= "docRoot    : " . self::$_docRoot . "\n"
                          . "currentDir : " . self::$_currentDir . "\n";
        if (self::$_symlinks) {
            self::$debugText .= "symlinks : " . var_export(self::$_symlinks, 1) . "\n";
        }
        self::$debugText .= "\n";

        $css = self::_trimUrls($css);

        $css = self::_owlifySvgPaths($css);

        // rewrite
        $pattern = '/@import\\s+([\'"])(.*?)[\'"]/';
        $css = preg_replace_callback($pattern, __CLASS__ . '::_processUriCB', $css);

        $pattern = '/url\\(\\s*([\'"](.*?)[\'"]|[^\\)\\s]+)\\s*\\)/';
        $css = preg_replace_callback($pattern, __CLASS__ . '::_processUriCB', $css);

        $css = self::_unOwlify($css);

        return $css;
    }

    /**
     * In CSS content, prepend a path to relative URIs
     *
     * @param string $css
     *
     * @param string $path The path to prepend.
     *
     * @return string
     */
    public static function prepend($css, $path)
    {
        self::$_prependPath = $path;

        $css = self::_trimUrls($css);

        $css = self::_owlifySvgPaths($css);

        // append
        $pattern = '/@import\\s+([\'"])(.*?)[\'"]/';
        $css = preg_replace_callback($pattern, __CLASS__ . '::_processUriCB', $css);

        $pattern = '/url\\(\\s*([\'"](.*?)[\'"]|[^\\)\\s]+)\\s*\\)/';
        $css = preg_replace_callback($pattern, __CLASS__ . '::_processUriCB', $css);

        $css = self::_unOwlify($css);

        self::$_prependPath = null;

        return $css;
    }

    /**
     * Get a root relative URI from a file relative URI
     *
     * <code>
     * UriRewriter::rewriteRelative(
     *       '../img/hello.gif'
     *     , '/home/user/www/css'  // path of CSS file
     *     , '/home/user/www'      // doc root
     * );
     * // returns '/img/hello.gif'
     *
     * // example where static files are stored in a symlinked directory
     * UriRewriter::rewriteRelative(
     *       'hello.gif'
     *     , '/var/staticFiles/theme'
     *     , '/home/user/www'
     *     , array('/home/user/www/static' => '/var/staticFiles')
     * );
     * // returns '/static/theme/hello.gif'
     * </code>
     *
     * @param string $uri file relative URI
     *
     * @param string $realCurrentDir realpath of the current file's directory.
     *
     * @param string $realDocRoot realpath of the site document root.
     *
     * @param array $symlinks (default = array()) If the file is stored in
     * a symlink-ed directory, provide an array of link paths to
     * real target paths, where the link paths "appear" to be within the document
     * root. E.g.:
     * <code>
     * array('/home/foo/www/not/real/path' => '/real/target/path') // unix
     * array('C:\\htdocs\\not\\real' => 'D:\\real\\target\\path')  // Windows
     * </code>
     *
     * @return string
     */
    public static function rewriteRelative($uri, $realCurrentDir, $realDocRoot, $symlinks = array())
    {
        // prepend path with current dir separator (OS-independent)
        $path = strtr($realCurrentDir, '/', DIRECTORY_SEPARATOR);
        $path .= DIRECTORY_SEPARATOR . strtr($uri, '/', DIRECTORY_SEPARATOR);

        self::$debugText .= "file-relative URI  : {$uri}\n"
                          . "path prepended     : {$path}\n";

        // "unresolve" a symlink back to doc root
        foreach ($symlinks as $link => $target) {
            if (0 === strpos($path, $target)) {
                // replace $target with $link
                $path = $link . substr($path, strlen($target));

                self::$debugText .= "symlink unresolved : {$path}\n";

                break;
            }
        }
        // strip doc root
        $path = substr($path, strlen($realDocRoot));

        self::$debugText .= "docroot stripped   : {$path}\n";

        // fix to root-relative URI
        $uri = strtr($path, '/\\', '//');
        $uri = self::removeDots($uri);

        self::$debugText .= "traversals removed : {$uri}\n\n";

        return $uri;
    }

    /**
     * Remove instances of "./" and "../" where possible from a root-relative URI
     *
     * @param string $uri
     *
     * @return string
     */
    public static function removeDots($uri)
    {
        $uri = str_replace('/./', '/', $uri);
        // inspired by patch from Oleg Cherniy
        do {
            $uri = preg_replace('@/[^/]+/\\.\\./@', '/', $uri, 1, $changed);
        } while ($changed);

        return $uri;
    }

    /**
     * Get realpath with any trailing slash removed. If realpath() fails,
     * just remove the trailing slash.
     *
     * @param string $path
     *
     * @return mixed path with no trailing slash
     */
    protected static function _realpath($path)
    {
        $realPath = realpath($path);
        if ($realPath !== false) {
            $path = $realPath;
        }

        return rtrim($path, '/\\');
    }

    /**
     * Directory of this stylesheet
     *
     * @var string
     */
    private static $_currentDir = '';

    /**
     * DOC_ROOT
     *
     * @var string
     */
    private static $_docRoot = '';

    /**
     * directory replacements to map symlink targets back to their
     * source (within the document root) E.g. '/var/www/symlink' => '/var/realpath'
     *
     * @var array
     */
    private static $_symlinks = array();

    /**
     * Path to prepend
     *
     * @var string
     */
    private static $_prependPath = null;

    /**
     * @param string $css
     *
     * @return string
     */
    private static function _trimUrls($css)
    {
        $pattern = '/
            url\\(      # url(
            \\s*
            ([^\\)]+?)  # 1 = URI (assuming does not contain ")")
            \\s*
            \\)         # )
        /x';

        return preg_replace($pattern, 'url($1)', $css);
    }

    /**
     * @param array $m
     *
     * @return string
     */
    private static function _processUriCB($m)
    {
        // $m matched either '/@import\\s+([\'"])(.*?)[\'"]/' or '/url\\(\\s*([^\\)\\s]+)\\s*\\)/'
        $isImport = ($m[0][0] === '@');
        // determine URI and the quote character (if any)
        if ($isImport) {
            $quoteChar = $m[1];
            $uri = $m[2];
        } else {
            // $m[1] is either quoted or not
            $quoteChar = ($m[1][0] === "'" || $m[1][0] === '"') ? $m[1][0] : '';

            $uri = ($quoteChar === '') ? $m[1] : substr($m[1], 1, strlen($m[1]) - 2);
        }

        if ($uri === '') {
            return $m[0];
        }

        // if not root/scheme relative and not starts with scheme
        if (!preg_match('~^(/|[a-z]+\:)~', $uri)) {
            // URI is file-relative: rewrite depending on options
            if (self::$_prependPath === null) {
                $uri = self::rewriteRelative($uri, self::$_currentDir, self::$_docRoot, self::$_symlinks);
            } else {
                $uri = self::$_prependPath . $uri;
                if ($uri[0] === '/') {
                    $root = '';
                    $rootRelative = $uri;
                    $uri = $root . self::removeDots($rootRelative);
                } elseif (preg_match('@^((https?\:)?//([^/]+))/@', $uri, $m) && (false !== strpos($m[3], '.'))) {
                    $root = $m[1];
                    $rootRelative = substr($uri, strlen($root));
                    $uri = $root . self::removeDots($rootRelative);
                }
            }
        }

        if ($isImport) {
            return "@import {$quoteChar}{$uri}{$quoteChar}";
        } else {
            return "url({$quoteChar}{$uri}{$quoteChar})";
        }
    }

    /**
     * Mungs some inline SVG URL declarations so they won't be touched
     *
     * @link https://github.com/mrclay/minify/issues/517
     * @see _unOwlify
     *
     * @param string $css
     * @return string
     */
    private static function _owlifySvgPaths($css)
    {
        $pattern = '~\b((?:clip-path|mask|-webkit-mask)\s*\:\s*)url(\(\s*#\w+\s*\))~';

        return preg_replace($pattern, '$1owl$2', $css);
    }

    /**
     * Undo work of _owlify
     *
     * @see _owlifySvgPaths
     *
     * @param string $css
     * @return string
     */
    private static function _unOwlify($css)
    {
        $pattern = '~\b((?:clip-path|mask|-webkit-mask)\s*\:\s*)owl~';

        return preg_replace($pattern, '$1url', $css);
    }
}
<?php
/*!
 * CssMin
 * Author: Tubal Martin - http://tubalmartin.me/
 * Repo: https://github.com/tubalmartin/YUI-CSS-compressor-PHP-port
 *
 * This is a PHP port of the CSS minification tool distributed with YUICompressor,
 * itself a port of the cssmin utility by Isaac Schlueter - http://foohack.com/
 * Permission is hereby granted to use the PHP version under the same
 * conditions as the YUICompressor.
 */

/*!
 * YUI Compressor
 * http://developer.yahoo.com/yui/compressor/
 * Author: Julien Lecomte - http://www.julienlecomte.net/
 * Copyright (c) 2013 Yahoo! Inc. All rights reserved.
 * The copyrights embodied in the content of this file are licensed
 * by Yahoo! Inc. under the BSD (revised) open source license.
 */
namespace LiteSpeed\Lib\CSS_MIN ;

defined( 'WPINC' ) || exit ;

class Minifier
{
    const QUERY_FRACTION = '_CSSMIN_QF_';
    const COMMENT_TOKEN = '_CSSMIN_CMT_%d_';
    const COMMENT_TOKEN_START = '_CSSMIN_CMT_';
    const RULE_BODY_TOKEN = '_CSSMIN_RBT_%d_';
    const PRESERVED_TOKEN = '_CSSMIN_PTK_%d_';

    // Token lists
    private $comments = array();
    private $ruleBodies = array();
    private $preservedTokens = array();

    // Output options
    private $keepImportantComments = true;
    private $keepSourceMapComment = false;
    private $linebreakPosition = 0;

    // PHP ini limits
    private $raisePhpLimits;
    private $memoryLimit;
    private $maxExecutionTime = 60; // 1 min
    private $pcreBacktrackLimit;
    private $pcreRecursionLimit;

    // Color maps
    private $hexToNamedColorsMap;
    private $namedToHexColorsMap;

    // Regexes
    private $numRegex;
    private $charsetRegex = '/@charset [^;]+;/Si';
    private $importRegex = '/@import [^;]+;/Si';
    private $namespaceRegex = '/@namespace [^;]+;/Si';
    private $namedToHexColorsRegex;
    private $shortenOneZeroesRegex;
    private $shortenTwoZeroesRegex;
    private $shortenThreeZeroesRegex;
    private $shortenFourZeroesRegex;
    private $unitsGroupRegex = '(?:ch|cm|em|ex|gd|in|mm|px|pt|pc|q|rem|vh|vmax|vmin|vw|%)';

    /**
     * @param bool|int $raisePhpLimits If true, PHP settings will be raised if needed
     */
    public function __construct($raisePhpLimits = true)
    {
        $this->raisePhpLimits = (bool) $raisePhpLimits;
        $this->memoryLimit = 128 * 1048576; // 128MB in bytes
        $this->pcreBacktrackLimit = 1000 * 1000;
        $this->pcreRecursionLimit = 500 * 1000;
        $this->hexToNamedColorsMap = Colors::getHexToNamedMap();
        $this->namedToHexColorsMap = Colors::getNamedToHexMap();
        $this->namedToHexColorsRegex = sprintf(
            '/([:,( ])(%s)( |,|\)|;|$)/Si',
            implode('|', array_keys($this->namedToHexColorsMap))
        );
        $this->numRegex = sprintf('-?\d*\.?\d+%s?', $this->unitsGroupRegex);
        $this->setShortenZeroValuesRegexes();
    }

    /**
     * Parses & minifies the given input CSS string
     * @param string $css
     * @return string
     */
    public function run($css = '')
    {
        if (empty($css) || !is_string($css)) {
            return '';
        }

        $this->resetRunProperties();

        if ($this->raisePhpLimits) {
            $this->doRaisePhpLimits();
        }

        return $this->minify($css);
    }

    /**
     * Sets whether to keep or remove sourcemap special comment.
     * Sourcemap comments are removed by default.
     * @param bool $keepSourceMapComment
     */
    public function keepSourceMapComment($keepSourceMapComment = true)
    {
        $this->keepSourceMapComment = (bool) $keepSourceMapComment;
    }

    /**
     * Sets whether to keep or remove important comments.
     * Important comments outside of a declaration block are kept by default.
     * @param bool $removeImportantComments
     */
    public function removeImportantComments($removeImportantComments = true)
    {
        $this->keepImportantComments = !(bool) $removeImportantComments;
    }

    /**
     * Sets the approximate column after which long lines will be splitted in the output
     * with a linebreak.
     * @param int $position
     */
    public function setLineBreakPosition($position)
    {
        $this->linebreakPosition = (int) $position;
    }

    /**
     * Sets the memory limit for this script
     * @param int|string $limit
     */
    public function setMemoryLimit($limit)
    {
        $this->memoryLimit = Utils::normalizeInt($limit);
    }

    /**
     * Sets the maximum execution time for this script
     * @param int|string $seconds
     */
    public function setMaxExecutionTime($seconds)
    {
        $this->maxExecutionTime = (int) $seconds;
    }

    /**
     * Sets the PCRE backtrack limit for this script
     * @param int $limit
     */
    public function setPcreBacktrackLimit($limit)
    {
        $this->pcreBacktrackLimit = (int) $limit;
    }

    /**
     * Sets the PCRE recursion limit for this script
     * @param int $limit
     */
    public function setPcreRecursionLimit($limit)
    {
        $this->pcreRecursionLimit = (int) $limit;
    }

    /**
     * Builds regular expressions needed for shortening zero values
     */
    private function setShortenZeroValuesRegexes()
    {
        $zeroRegex = '0'. $this->unitsGroupRegex;
        $numOrPosRegex = '('. $this->numRegex .'|top|left|bottom|right|center) ';
        $oneZeroSafeProperties = array(
            '(?:line-)?height',
            '(?:(?:min|max)-)?width',
            'top',
            'left',
            'background-position',
            'bottom',
            'right',
            'border(?:-(?:top|left|bottom|right))?(?:-width)?',
            'border-(?:(?:top|bottom)-(?:left|right)-)?radius',
            'column-(?:gap|width)',
            'margin(?:-(?:top|left|bottom|right))?',
            'outline-width',
            'padding(?:-(?:top|left|bottom|right))?'
        );

        // First zero regex
        $regex = '/(^|;)('. implode('|', $oneZeroSafeProperties) .'):%s/Si';
        $this->shortenOneZeroesRegex = sprintf($regex, $zeroRegex);

        // Multiple zeroes regexes
        $regex = '/(^|;)(margin|padding|border-(?:width|radius)|background-position):%s/Si';
        $this->shortenTwoZeroesRegex = sprintf($regex, $numOrPosRegex . $zeroRegex);
        $this->shortenThreeZeroesRegex = sprintf($regex, $numOrPosRegex . $numOrPosRegex . $zeroRegex);
        $this->shortenFourZeroesRegex = sprintf($regex, $numOrPosRegex . $numOrPosRegex . $numOrPosRegex . $zeroRegex);
    }

    /**
     * Resets properties whose value may change between runs
     */
    private function resetRunProperties()
    {
        $this->comments = array();
        $this->ruleBodies = array();
        $this->preservedTokens = array();
    }

    /**
     * Tries to configure PHP to use at least the suggested minimum settings
     * @return void
     */
    private function doRaisePhpLimits()
    {
        $phpLimits = array(
            'memory_limit' => $this->memoryLimit,
            'max_execution_time' => $this->maxExecutionTime,
            'pcre.backtrack_limit' => $this->pcreBacktrackLimit,
            'pcre.recursion_limit' =>  $this->pcreRecursionLimit
        );

        // If current settings are higher respect them.
        foreach ($phpLimits as $name => $suggested) {
            $current = Utils::normalizeInt(ini_get($name));

            if ($current >= $suggested) {
                continue;
            }

            // memoryLimit exception: allow -1 for "no memory limit".
            if ($name === 'memory_limit' && $current === -1) {
                continue;
            }

            // maxExecutionTime exception: allow 0 for "no memory limit".
            if ($name === 'max_execution_time' && $current === 0) {
                continue;
            }

            ini_set($name, $suggested);
        }
    }

    /**
     * Registers a preserved token
     * @param string $token
     * @return string The token ID string
     */
    private function registerPreservedToken($token)
    {
        $tokenId = sprintf(self::PRESERVED_TOKEN, count($this->preservedTokens));
        $this->preservedTokens[$tokenId] = $token;
        return $tokenId;
    }

    /**
     * Registers a candidate comment token
     * @param string $comment
     * @return string The comment token ID string
     */
    private function registerCommentToken($comment)
    {
        $tokenId = sprintf(self::COMMENT_TOKEN, count($this->comments));
        $this->comments[$tokenId] = $comment;
        return $tokenId;
    }

    /**
     * Registers a rule body token
     * @param string $body the minified rule body
     * @return string The rule body token ID string
     */
    private function registerRuleBodyToken($body)
    {
        if (empty($body)) {
            return '';
        }

        $tokenId = sprintf(self::RULE_BODY_TOKEN, count($this->ruleBodies));
        $this->ruleBodies[$tokenId] = $body;
        return $tokenId;
    }

    /**
     * Parses & minifies the given input CSS string
     * @param string $css
     * @return string
     */
    private function minify($css)
    {
        // Process data urls
        $css = $this->processDataUrls($css);

        // Process comments
        $css = preg_replace_callback(
            '/(?<!\\\\)\/\*(.*?)\*(?<!\\\\)\//Ss',
            array($this, 'processCommentsCallback'),
            $css
        );

        // IE7: Process Microsoft matrix filters (whitespaces between Matrix parameters). Can contain strings inside.
        $css = preg_replace_callback(
            '/filter:\s*progid:DXImageTransform\.Microsoft\.Matrix\(([^)]+)\)/Ss',
            array($this, 'processOldIeSpecificMatrixDefinitionCallback'),
            $css
        );

        // Process quoted unquotable attribute selectors to unquote them. Covers most common cases.
        // Likelyhood of a quoted attribute selector being a substring in a string: Very very low.
        $css = preg_replace(
            '/\[\s*([a-z][a-z-]+)\s*([\*\|\^\$~]?=)\s*[\'"](-?[a-z_][a-z0-9-_]+)[\'"]\s*\]/Ssi',
            '[$1$2$3]',
            $css
        );

        // Process strings so their content doesn't get accidentally minified
        $css = preg_replace_callback(
            '/(?:"(?:[^\\\\"]|\\\\.|\\\\)*")|'."(?:'(?:[^\\\\']|\\\\.|\\\\)*')/S",
            array($this, 'processStringsCallback'),
            $css
        );

        // Normalize all whitespace strings to single spaces. Easier to work with that way.
        $css = preg_replace('/\s+/S', ' ', $css);

        // Process comments
        $css = $this->processComments($css);

        // Process rule bodies
        $css = $this->processRuleBodies($css);

        // Process at-rules and selectors
        $css = $this->processAtRulesAndSelectors($css);

        // Restore preserved rule bodies before splitting
        $css = strtr($css, $this->ruleBodies);

        // Some source control tools don't like it when files containing lines longer
        // than, say 8000 characters, are checked in. The linebreak option is used in
        // that case to split long lines after a specific column.
        if ($this->linebreakPosition > 0) {
            $l = strlen($css);
            $offset = $this->linebreakPosition;
            while (preg_match('/(?<!\\\\)\}(?!\n)/S', $css, $matches, PREG_OFFSET_CAPTURE, $offset)) {
                $matchIndex = $matches[0][1];
                $css = substr_replace($css, "\n", $matchIndex + 1, 0);
                $offset = $matchIndex + 2 + $this->linebreakPosition;
                $l += 1;
                if ($offset > $l) {
                    break;
                }
            }
        }

        // Restore preserved comments and strings
        $css = strtr($css, $this->preservedTokens);

        return trim($css);
    }

    /**
     * Searches & replaces all data urls with tokens before we start compressing,
     * to avoid performance issues running some of the subsequent regexes against large string chunks.
     * @param string $css
     * @return string
     */
    private function processDataUrls($css)
    {
        $ret = '';
        $searchOffset = $substrOffset = 0;

        // Since we need to account for non-base64 data urls, we need to handle
        // ' and ) being part of the data string.
        while (preg_match('/url\(\s*(["\']?)data:/Si', $css, $m, PREG_OFFSET_CAPTURE, $searchOffset)) {
            $matchStartIndex = $m[0][1];
            $dataStartIndex = $matchStartIndex + 4; // url( length
            $searchOffset = $matchStartIndex + strlen($m[0][0]);
            $terminator = $m[1][0]; // ', " or empty (not quoted)
            $terminatorRegex = '/(?<!\\\\)'. (strlen($terminator) === 0 ? '' : $terminator.'\s*') .'(\))/S';

            $ret .= substr($css, $substrOffset, $matchStartIndex - $substrOffset);

            // Terminator found
            if (preg_match($terminatorRegex, $css, $matches, PREG_OFFSET_CAPTURE, $searchOffset)) {
                $matchEndIndex = $matches[1][1];
                $searchOffset = $matchEndIndex + 1;
                $token = substr($css, $dataStartIndex, $matchEndIndex - $dataStartIndex);

                // Remove all spaces only for base64 encoded URLs.
                if (stripos($token, 'base64,') !== false) {
                    $token = preg_replace('/\s+/S', '', $token);
                }

                $ret .= 'url('. $this->registerPreservedToken(trim($token)) .')';
            // No end terminator found, re-add the whole match. Should we throw/warn here?
            } else {
                $ret .= substr($css, $matchStartIndex, $searchOffset - $matchStartIndex);
            }

            $substrOffset = $searchOffset;
        }

        $ret .= substr($css, $substrOffset);

        return $ret;
    }

    /**
     * Registers all comments found as candidates to be preserved.
     * @param array $matches
     * @return string
     */
    private function processCommentsCallback($matches)
    {
        return '/*'. $this->registerCommentToken($matches[1]) .'*/';
    }

    /**
     * Preserves old IE Matrix string definition
     * @param array $matches
     * @return string
     */
    private function processOldIeSpecificMatrixDefinitionCallback($matches)
    {
        return 'filter:progid:DXImageTransform.Microsoft.Matrix('. $this->registerPreservedToken($matches[1]) .')';
    }

    /**
     * Preserves strings found
     * @param array $matches
     * @return string
     */
    private function processStringsCallback($matches)
    {
        $match = $matches[0];
        $quote = substr($match, 0, 1);
        $match = substr($match, 1, -1);

        // maybe the string contains a comment-like substring?
        // one, maybe more? put'em back then
        if (strpos($match, self::COMMENT_TOKEN_START) !== false) {
            $match = strtr($match, $this->comments);
        }

        // minify alpha opacity in filter strings
        $match = str_ireplace('progid:DXImageTransform.Microsoft.Alpha(Opacity=', 'alpha(opacity=', $match);

        return $quote . $this->registerPreservedToken($match) . $quote;
    }

    /**
     * Preserves or removes comments found.
     * @param string $css
     * @return string
     */
    private function processComments($css)
    {
        foreach ($this->comments as $commentId => $comment) {
            $commentIdString = '/*'. $commentId .'*/';

            // ! in the first position of the comment means preserve
            // so push to the preserved tokens keeping the !
            if ($this->keepImportantComments && strpos($comment, '!') === 0) {
                $preservedTokenId = $this->registerPreservedToken($comment);
                // Put new lines before and after /*! important comments
                $css = str_replace($commentIdString, "\n/*$preservedTokenId*/\n", $css);
                continue;
            }

            // # sourceMappingURL= in the first position of the comment means sourcemap
            // so push to the preserved tokens if {$this->keepSourceMapComment} is truthy.
            if ($this->keepSourceMapComment && strpos($comment, '# sourceMappingURL=') === 0) {
                $preservedTokenId = $this->registerPreservedToken($comment);
                // Add new line before the sourcemap comment
                $css = str_replace($commentIdString, "\n/*$preservedTokenId*/", $css);
                continue;
            }

            // Keep empty comments after child selectors (IE7 hack)
            // e.g. html >/**/ body
            if (strlen($comment) === 0 && strpos($css, '>/*'.$commentId) !== false) {
                $css = str_replace($commentId, $this->registerPreservedToken(''), $css);
                continue;
            }

            // in all other cases kill the comment
            $css = str_replace($commentIdString, '', $css);
        }

        // Normalize whitespace again
        $css = preg_replace('/ +/S', ' ', $css);

        return $css;
    }

    /**
     * Finds, minifies & preserves all rule bodies.
     * @param string $css the whole stylesheet.
     * @return string
     */
    private function processRuleBodies($css)
    {
        $ret = '';
        $searchOffset = $substrOffset = 0;

        while (($blockStartPos = strpos($css, '{', $searchOffset)) !== false) {
            $blockEndPos = strpos($css, '}', $blockStartPos);
            if ( ! $blockEndPos ) throw new \Exception( 'CSS parse error' ) ;

            $nextBlockStartPos = strpos($css, '{', $blockStartPos + 1);
            $ret .= substr($css, $substrOffset, $blockStartPos - $substrOffset);

            if ($nextBlockStartPos !== false && $nextBlockStartPos < $blockEndPos) {
                $ret .= substr($css, $blockStartPos, $nextBlockStartPos - $blockStartPos);
                $searchOffset = $nextBlockStartPos;
            } else {
                $ruleBody = substr($css, $blockStartPos + 1, $blockEndPos - $blockStartPos - 1);
                $ruleBodyToken = $this->registerRuleBodyToken($this->processRuleBody($ruleBody));
                $ret .= '{'. $ruleBodyToken .'}';
                $searchOffset = $blockEndPos + 1;
            }

            $substrOffset = $searchOffset;
        }

        $ret .= substr($css, $substrOffset);

        return $ret;
    }

    /**
     * Compresses non-group rule bodies.
     * @param string $body The rule body without curly braces
     * @return string
     */
    private function processRuleBody($body)
    {
        $body = trim($body);

        // Remove spaces before the things that should not have spaces before them.
        $body = preg_replace('/ ([:=,)*\/;\n])/S', '$1', $body);

        // Remove the spaces after the things that should not have spaces after them.
        $body = preg_replace('/([:=,(*\/!;\n]) /S', '$1', $body);

        // Replace multiple semi-colons in a row by a single one
        $body = preg_replace('/;;+/S', ';', $body);

        // Remove semicolon before closing brace except when:
        // - The last property is prefixed with a `*` (lte IE7 hack) to avoid issues on Symbian S60 3.x browsers.
        if (!preg_match('/\*[a-z0-9-]+:[^;]+;$/Si', $body)) {
            $body = rtrim($body, ';');
        }

        // Remove important comments inside a rule body (because they make no sense here).
        if (strpos($body, '/*') !== false) {
            $body = preg_replace('/\n?\/\*[A-Z0-9_]+\*\/\n?/S', '', $body);
        }

        // Empty rule body? Exit :)
        if (empty($body)) {
            return '';
        }

        // Shorten font-weight values
        $body = preg_replace(
            array('/(font-weight:)bold\b/Si', '/(font-weight:)normal\b/Si'),
            array('${1}700', '${1}400'),
            $body
        );

        // Shorten background property
        $body = preg_replace('/(background:)(?:none|transparent)( !|;|$)/Si', '${1}0 0$2', $body);

        // Shorten opacity IE filter
        $body = str_ireplace('progid:DXImageTransform.Microsoft.Alpha(Opacity=', 'alpha(opacity=', $body);

        // Shorten colors from rgb(51,102,153) to #336699, rgb(100%,0%,0%) to #ff0000 (sRGB color space)
        // Shorten colors from hsl(0, 100%, 50%) to #ff0000 (sRGB color space)
        // This makes it more likely that it'll get further compressed in the next step.
        $body = preg_replace_callback(
            '/(rgb|hsl)\(([0-9,.% -]+)\)(.|$)/Si',
            array($this, 'shortenHslAndRgbToHexCallback'),
            $body
        );

        // Shorten colors from #AABBCC to #ABC or shorter color name:
        // - Look for hex colors which don't have a "=" in front of them (to avoid MSIE filters)
        $body = preg_replace_callback(
            '/(?<!=)#([0-9a-f]{3,6})( |,|\)|;|$)/Si',
            array($this, 'shortenHexColorsCallback'),
            $body
        );

        // Shorten long named colors with a shorter HEX counterpart: white -> #fff.
        // Run at least 2 times to cover most cases
        $body = preg_replace_callback(
            array($this->namedToHexColorsRegex, $this->namedToHexColorsRegex),
            array($this, 'shortenNamedColorsCallback'),
            $body
        );

        // Replace positive sign from numbers before the leading space is removed.
        // +1.2em to 1.2em, +.8px to .8px, +2% to 2%
        $body = preg_replace('/([ :,(])\+(\.?\d+)/S', '$1$2', $body);

        // shorten ms to s
        $body = preg_replace_callback('/([ :,(])(-?)(\d{3,})ms/Si', function ($matches) {
            return $matches[1] . $matches[2] . ((int) $matches[3] / 1000) .'s';
        }, $body);

        // Remove leading zeros from integer and float numbers.
        // 000.6 to .6, -0.8 to -.8, 0050 to 50, -01.05 to -1.05
        $body = preg_replace('/([ :,(])(-?)0+([1-9]?\.?\d+)/S', '$1$2$3', $body);

        // Remove trailing zeros from float numbers.
        // -6.0100em to -6.01em, .0100 to .01, 1.200px to 1.2px
        $body = preg_replace('/([ :,(])(-?\d?\.\d+?)0+([^\d])/S', '$1$2$3', $body);

        // Remove trailing .0 -> -9.0 to -9
        $body = preg_replace('/([ :,(])(-?\d+)\.0([^\d])/S', '$1$2$3', $body);

        // Replace 0 length numbers with 0
        $body = preg_replace('/([ :,(])-?\.?0+([^\d])/S', '${1}0$2', $body);

        // Shorten zero values for safe properties only
        $body = preg_replace(
            array(
                $this->shortenOneZeroesRegex,
                $this->shortenTwoZeroesRegex,
                $this->shortenThreeZeroesRegex,
                $this->shortenFourZeroesRegex
            ),
            array(
                '$1$2:0',
                '$1$2:$3 0',
                '$1$2:$3 $4 0',
                '$1$2:$3 $4 $5 0'
            ),
            $body
        );

        // Replace 0 0 0; or 0 0 0 0; with 0 0 for background-position property.
        $body = preg_replace('/(background-position):0(?: 0){2,3}( !|;|$)/Si', '$1:0 0$2', $body);

        // Shorten suitable shorthand properties with repeated values
        $body = preg_replace(
            array(
                '/(margin|padding|border-(?:width|radius)):('.$this->numRegex.')(?: \2)+( !|;|$)/Si',
                '/(border-(?:style|color)):([#a-z0-9]+)(?: \2)+( !|;|$)/Si'
            ),
            '$1:$2$3',
            $body
        );
        $body = preg_replace(
            array(
                '/(margin|padding|border-(?:width|radius)):'.
                '('.$this->numRegex.') ('.$this->numRegex.') \2 \3( !|;|$)/Si',
                '/(border-(?:style|color)):([#a-z0-9]+) ([#a-z0-9]+) \2 \3( !|;|$)/Si'
            ),
            '$1:$2 $3$4',
            $body
        );
        $body = preg_replace(
            array(
                '/(margin|padding|border-(?:width|radius)):'.
                '('.$this->numRegex.') ('.$this->numRegex.') ('.$this->numRegex.') \3( !|;|$)/Si',
                '/(border-(?:style|color)):([#a-z0-9]+) ([#a-z0-9]+) ([#a-z0-9]+) \3( !|;|$)/Si'
            ),
            '$1:$2 $3 $4$5',
            $body
        );

        // Lowercase some common functions that can be values
        $body = preg_replace_callback(
            '/(?:attr|blur|brightness|circle|contrast|cubic-bezier|drop-shadow|ellipse|from|grayscale|'.
            'hsla?|hue-rotate|inset|invert|local|minmax|opacity|perspective|polygon|rgba?|rect|repeat|saturate|sepia|'.
            'steps|to|url|var|-webkit-gradient|'.
            '(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?(?:calc|(?:repeating-)?(?:linear|radial)-gradient))\(/Si',
            array($this, 'strtolowerCallback'),
            $body
        );

        // Lowercase all uppercase properties
        $body = preg_replace_callback('/(?:^|;)[A-Z-]+:/S', array($this, 'strtolowerCallback'), $body);

        return $body;
    }

    /**
     * Compresses At-rules and selectors.
     * @param string $css the whole stylesheet with rule bodies tokenized.
     * @return string
     */
    private function processAtRulesAndSelectors($css)
    {
        $charset = '';
        $imports = '';
        $namespaces = '';

        // Remove spaces before the things that should not have spaces before them.
        $css = preg_replace('/ ([@{};>+)\]~=,\/\n])/S', '$1', $css);

        // Remove the spaces after the things that should not have spaces after them.
        $css = preg_replace('/([{}:;>+(\[~=,\/\n]) /S', '$1', $css);

        // Shorten shortable double colon (CSS3) pseudo-elements to single colon (CSS2)
        $css = preg_replace('/::(before|after|first-(?:line|letter))(\{|,)/Si', ':$1$2', $css);

        // Retain space for special IE6 cases
        $css = preg_replace_callback('/:first-(line|letter)(\{|,)/Si', function ($matches) {
            return ':first-'. strtolower($matches[1]) .' '. $matches[2];
        }, $css);

        // Find a fraction that may used in some @media queries such as: (min-aspect-ratio: 1/1)
        // Add token to add the "/" back in later
        $css = preg_replace('/\(([a-z-]+):([0-9]+)\/([0-9]+)\)/Si', '($1:$2'. self::QUERY_FRACTION .'$3)', $css);

        // Remove empty rule blocks up to 2 levels deep.
        $css = preg_replace(array_fill(0, 2, '/(\{)[^{};\/\n]+\{\}/S'), '$1', $css);
        $css = preg_replace('/[^{};\/\n]+\{\}/S', '', $css);

        // Two important comments next to each other? Remove extra newline.
        if ($this->keepImportantComments) {
            $css = str_replace("\n\n", "\n", $css);
        }

        // Restore fraction
        $css = str_replace(self::QUERY_FRACTION, '/', $css);

        // Lowercase some popular @directives
        $css = preg_replace_callback(
            '/(?<!\\\\)@(?:charset|document|font-face|import|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?keyframes|media|'.
            'namespace|page|supports|viewport)/Si',
            array($this, 'strtolowerCallback'),
            $css
        );

        // Lowercase some popular media types
        $css = preg_replace_callback(
            '/[ ,](?:all|aural|braille|handheld|print|projection|screen|tty|tv|embossed|speech)[ ,;{]/Si',
            array($this, 'strtolowerCallback'),
            $css
        );

        // Lowercase some common pseudo-classes & pseudo-elements
        $css = preg_replace_callback(
            '/(?<!\\\\):(?:active|after|before|checked|default|disabled|empty|enabled|first-(?:child|of-type)|'.
            'focus(?:-within)?|hover|indeterminate|in-range|invalid|lang\(|last-(?:child|of-type)|left|link|not\(|'.
            'nth-(?:child|of-type)\(|nth-last-(?:child|of-type)\(|only-(?:child|of-type)|optional|out-of-range|'.
            'read-(?:only|write)|required|right|root|:selection|target|valid|visited)/Si',
            array($this, 'strtolowerCallback'),
            $css
        );

        // @charset handling
        if (preg_match($this->charsetRegex, $css, $matches)) {
            // Keep the first @charset at-rule found
            $charset = $matches[0];
            // Delete all @charset at-rules
            $css = preg_replace($this->charsetRegex, '', $css);
        }

        // @import handling
        $css = preg_replace_callback($this->importRegex, function ($matches) use (&$imports) {
            // Keep all @import at-rules found for later
            $imports .= $matches[0];
            // Delete all @import at-rules
            return '';
        }, $css);

        // @namespace handling
        $css = preg_replace_callback($this->namespaceRegex, function ($matches) use (&$namespaces) {
            // Keep all @namespace at-rules found for later
            $namespaces .= $matches[0];
            // Delete all @namespace at-rules
            return '';
        }, $css);

        // Order critical at-rules:
        // 1. @charset first
        // 2. @imports below @charset
        // 3. @namespaces below @imports
        $css = $charset . $imports . $namespaces . $css;

        return $css;
    }

    /**
     * Converts hsl() & rgb() colors to HEX format.
     * @param $matches
     * @return string
     */
    private function shortenHslAndRgbToHexCallback($matches)
    {
        $type = $matches[1];
        $values = explode(',', $matches[2]);
        $terminator = $matches[3];

        if ($type === 'hsl') {
            $values = Utils::hslToRgb($values);
        }

        $hexColors = Utils::rgbToHex($values);

        // Restore space after rgb() or hsl() function in some cases such as:
        // background-image: linear-gradient(to bottom, rgb(210,180,140) 10%, rgb(255,0,0) 90%);
        if (!empty($terminator) && !preg_match('/[ ,);]/S', $terminator)) {
            $terminator = ' '. $terminator;
        }

        return '#'. implode('', $hexColors) . $terminator;
    }

    /**
     * Compresses HEX color values of the form #AABBCC to #ABC or short color name.
     * @param $matches
     * @return string
     */
    private function shortenHexColorsCallback($matches)
    {
        $hex = $matches[1];

        // Shorten suitable 6 chars HEX colors
        if (strlen($hex) === 6 && preg_match('/^([0-9a-f])\1([0-9a-f])\2([0-9a-f])\3$/Si', $hex, $m)) {
            $hex = $m[1] . $m[2] . $m[3];
        }

        // Lowercase
        $hex = '#'. strtolower($hex);

        // Replace Hex colors with shorter color names
        $color = array_key_exists($hex, $this->hexToNamedColorsMap) ? $this->hexToNamedColorsMap[$hex] : $hex;

        return $color . $matches[2];
    }

    /**
     * Shortens all named colors with a shorter HEX counterpart for a set of safe properties
     * e.g. white -> #fff
     * @param array $matches
     * @return string
     */
    private function shortenNamedColorsCallback($matches)
    {
        return $matches[1] . $this->namedToHexColorsMap[strtolower($matches[2])] . $matches[3];
    }

    /**
     * Makes a string lowercase
     * @param array $matches
     * @return string
     */
    private function strtolowerCallback($matches)
    {
        return strtolower($matches[0]);
    }
}
<?php
namespace LiteSpeed\Lib\CSS_MIN ;

defined( 'WPINC' ) || exit ;

class Colors
{
    public static function getHexToNamedMap()
    {
        // Hex colors longer than named counterpart
        return array(
            '#f0ffff' => 'azure',
            '#f5f5dc' => 'beige',
            '#ffe4c4' => 'bisque',
            '#a52a2a' => 'brown',
            '#ff7f50' => 'coral',
            '#ffd700' => 'gold',
            '#808080' => 'gray',
            '#008000' => 'green',
            '#4b0082' => 'indigo',
            '#fffff0' => 'ivory',
            '#f0e68c' => 'khaki',
            '#faf0e6' => 'linen',
            '#800000' => 'maroon',
            '#000080' => 'navy',
            '#fdf5e6' => 'oldlace',
            '#808000' => 'olive',
            '#ffa500' => 'orange',
            '#da70d6' => 'orchid',
            '#cd853f' => 'peru',
            '#ffc0cb' => 'pink',
            '#dda0dd' => 'plum',
            '#800080' => 'purple',
            '#f00'    => 'red',
            '#fa8072' => 'salmon',
            '#a0522d' => 'sienna',
            '#c0c0c0' => 'silver',
            '#fffafa' => 'snow',
            '#d2b48c' => 'tan',
            '#008080' => 'teal',
            '#ff6347' => 'tomato',
            '#ee82ee' => 'violet',
            '#f5deb3' => 'wheat'
        );
    }

    public static function getNamedToHexMap()
    {
        // Named colors longer than hex counterpart
        return array(
            'aliceblue' => '#f0f8ff',
            'antiquewhite' => '#faebd7',
            'aquamarine' => '#7fffd4',
            'black' => '#000',
            'blanchedalmond' => '#ffebcd',
            'blueviolet' => '#8a2be2',
            'burlywood' => '#deb887',
            'cadetblue' => '#5f9ea0',
            'chartreuse' => '#7fff00',
            'chocolate' => '#d2691e',
            'cornflowerblue' => '#6495ed',
            'cornsilk' => '#fff8dc',
            'darkblue' => '#00008b',
            'darkcyan' => '#008b8b',
            'darkgoldenrod' => '#b8860b',
            'darkgray' => '#a9a9a9',
            'darkgreen' => '#006400',
            'darkgrey' => '#a9a9a9',
            'darkkhaki' => '#bdb76b',
            'darkmagenta' => '#8b008b',
            'darkolivegreen' => '#556b2f',
            'darkorange' => '#ff8c00',
            'darkorchid' => '#9932cc',
            'darksalmon' => '#e9967a',
            'darkseagreen' => '#8fbc8f',
            'darkslateblue' => '#483d8b',
            'darkslategray' => '#2f4f4f',
            'darkslategrey' => '#2f4f4f',
            'darkturquoise' => '#00ced1',
            'darkviolet' => '#9400d3',
            'deeppink' => '#ff1493',
            'deepskyblue' => '#00bfff',
            'dodgerblue' => '#1e90ff',
            'firebrick' => '#b22222',
            'floralwhite' => '#fffaf0',
            'forestgreen' => '#228b22',
            'fuchsia' => '#f0f',
            'gainsboro' => '#dcdcdc',
            'ghostwhite' => '#f8f8ff',
            'goldenrod' => '#daa520',
            'greenyellow' => '#adff2f',
            'honeydew' => '#f0fff0',
            'indianred' => '#cd5c5c',
            'lavender' => '#e6e6fa',
            'lavenderblush' => '#fff0f5',
            'lawngreen' => '#7cfc00',
            'lemonchiffon' => '#fffacd',
            'lightblue' => '#add8e6',
            'lightcoral' => '#f08080',
            'lightcyan' => '#e0ffff',
            'lightgoldenrodyellow' => '#fafad2',
            'lightgray' => '#d3d3d3',
            'lightgreen' => '#90ee90',
            'lightgrey' => '#d3d3d3',
            'lightpink' => '#ffb6c1',
            'lightsalmon' => '#ffa07a',
            'lightseagreen' => '#20b2aa',
            'lightskyblue' => '#87cefa',
            'lightslategray' => '#778899',
            'lightslategrey' => '#778899',
            'lightsteelblue' => '#b0c4de',
            'lightyellow' => '#ffffe0',
            'limegreen' => '#32cd32',
            'mediumaquamarine' => '#66cdaa',
            'mediumblue' => '#0000cd',
            'mediumorchid' => '#ba55d3',
            'mediumpurple' => '#9370db',
            'mediumseagreen' => '#3cb371',
            'mediumslateblue' => '#7b68ee',
            'mediumspringgreen' => '#00fa9a',
            'mediumturquoise' => '#48d1cc',
            'mediumvioletred' => '#c71585',
            'midnightblue' => '#191970',
            'mintcream' => '#f5fffa',
            'mistyrose' => '#ffe4e1',
            'moccasin' => '#ffe4b5',
            'navajowhite' => '#ffdead',
            'olivedrab' => '#6b8e23',
            'orangered' => '#ff4500',
            'palegoldenrod' => '#eee8aa',
            'palegreen' => '#98fb98',
            'paleturquoise' => '#afeeee',
            'palevioletred' => '#db7093',
            'papayawhip' => '#ffefd5',
            'peachpuff' => '#ffdab9',
            'powderblue' => '#b0e0e6',
            'rebeccapurple' => '#663399',
            'rosybrown' => '#bc8f8f',
            'royalblue' => '#4169e1',
            'saddlebrown' => '#8b4513',
            'sandybrown' => '#f4a460',
            'seagreen' => '#2e8b57',
            'seashell' => '#fff5ee',
            'slateblue' => '#6a5acd',
            'slategray' => '#708090',
            'slategrey' => '#708090',
            'springgreen' => '#00ff7f',
            'steelblue' => '#4682b4',
            'turquoise' => '#40e0d0',
            'white' => '#fff',
            'whitesmoke' => '#f5f5f5',
            'yellow' => '#ff0',
            'yellowgreen' => '#9acd32'
        );
    }
}
<?php
/**
 * LiteSpeed PHP compatibility functions for lower PHP version
 *
 * @since      1.1.3
 * @package    LiteSpeed_Cache
 * @subpackage LiteSpeed_Cache/lib
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */

defined( 'WPINC' ) || exit ;


/**
 * http_build_url() compatibility
 *
 */
if ( ! function_exists('http_build_url') ) {
	if ( ! defined( 'HTTP_URL_REPLACE' ) ) 			define('HTTP_URL_REPLACE', 1);              // Replace every part of the first URL when there's one of the second URL
	if ( ! defined( 'HTTP_URL_JOIN_PATH' ) ) 		define('HTTP_URL_JOIN_PATH', 2);            // Join relative paths
	if ( ! defined( 'HTTP_URL_JOIN_QUERY' ) ) 		define('HTTP_URL_JOIN_QUERY', 4);           // Join query strings
	if ( ! defined( 'HTTP_URL_STRIP_USER' ) ) 		define('HTTP_URL_STRIP_USER', 8);           // Strip any user authentication information
	if ( ! defined( 'HTTP_URL_STRIP_PASS' ) ) 		define('HTTP_URL_STRIP_PASS', 16);          // Strip any password authentication information
	if ( ! defined( 'HTTP_URL_STRIP_AUTH' ) ) 		define('HTTP_URL_STRIP_AUTH', 32);          // Strip any authentication information
	if ( ! defined( 'HTTP_URL_STRIP_PORT' ) ) 		define('HTTP_URL_STRIP_PORT', 64);          // Strip explicit port numbers
	if ( ! defined( 'HTTP_URL_STRIP_PATH' ) ) 		define('HTTP_URL_STRIP_PATH', 128);         // Strip complete path
	if ( ! defined( 'HTTP_URL_STRIP_QUERY' ) ) 		define('HTTP_URL_STRIP_QUERY', 256);        // Strip query string
	if ( ! defined( 'HTTP_URL_STRIP_FRAGMENT' ) ) 	define('HTTP_URL_STRIP_FRAGMENT', 512);     // Strip any fragments (#identifier)
	if ( ! defined( 'HTTP_URL_STRIP_ALL' ) ) 		define('HTTP_URL_STRIP_ALL', 1024);         // Strip anything but scheme and host

	// Build an URL
	// The parts of the second URL will be merged into the first according to the flags argument.
	//
	// @param   mixed           (Part(s) of) an URL in form of a string or associative array like parse_url() returns
	// @param   mixed           Same as the first argument
	// @param   int             A bitmask of binary or'ed HTTP_URL constants (Optional)HTTP_URL_REPLACE is the default
	// @param   array           If set, it will be filled with the parts of the composed url like parse_url() would return
	function http_build_url($url, $parts = array(), $flags = HTTP_URL_REPLACE, &$new_url = false)
	{
		$keys = array('user','pass','port','path','query','fragment');

		// HTTP_URL_STRIP_ALL becomes all the HTTP_URL_STRIP_Xs
		if ( $flags & HTTP_URL_STRIP_ALL ) {
			$flags |= HTTP_URL_STRIP_USER;
			$flags |= HTTP_URL_STRIP_PASS;
			$flags |= HTTP_URL_STRIP_PORT;
			$flags |= HTTP_URL_STRIP_PATH;
			$flags |= HTTP_URL_STRIP_QUERY;
			$flags |= HTTP_URL_STRIP_FRAGMENT;
		}
		// HTTP_URL_STRIP_AUTH becomes HTTP_URL_STRIP_USER and HTTP_URL_STRIP_PASS
		else if ( $flags & HTTP_URL_STRIP_AUTH ) {
			$flags |= HTTP_URL_STRIP_USER;
			$flags |= HTTP_URL_STRIP_PASS;
		}

		// Parse the original URL
		// - Suggestion by Sayed Ahad Abbas
		//   In case you send a parse_url array as input
		$parse_url = !is_array($url) ? parse_url($url) : $url;

		// Scheme and Host are always replaced
		if ( isset($parts['scheme']) ) {
			$parse_url['scheme'] = $parts['scheme'];
		}
		if ( isset($parts['host']) ) {
			$parse_url['host'] = $parts['host'];
		}

		// (If applicable) Replace the original URL with it's new parts
		if ( $flags & HTTP_URL_REPLACE ) {
			foreach ($keys as $key) {
				if ( isset($parts[$key]) ) {
					$parse_url[$key] = $parts[$key];
				}
			}
		}
		else {
			// Join the original URL path with the new path
			if (isset($parts['path']) && ($flags & HTTP_URL_JOIN_PATH)) {
				if ( isset($parse_url['path']) ) {
					$parse_url['path'] = rtrim(str_replace(basename($parse_url['path']), '', $parse_url['path']), '/') . '/' . ltrim($parts['path'], '/');
				}
				else {
					$parse_url['path'] = $parts['path'];
				}
			}

			// Join the original query string with the new query string
			if ( isset($parts['query']) && ($flags & HTTP_URL_JOIN_QUERY) ) {
				if ( isset($parse_url['query']) ) {
					$parse_url['query'] .= '&' . $parts['query'];
				}
				else {
					$parse_url['query'] = $parts['query'];
				}
			}
		}

		// Strips all the applicable sections of the URL
		// Note: Scheme and Host are never stripped
		foreach ($keys as $key) {
			if ( $flags & (int)constant('HTTP_URL_STRIP_' . strtoupper($key)) ) {
				unset($parse_url[$key]);
			}
		}

		$new_url = $parse_url;

		return
			 (isset($parse_url['scheme']) ? $parse_url['scheme'] . '://' : '')
			.(isset($parse_url['user']) ? $parse_url['user'] . (isset($parse_url['pass']) ? ':' . $parse_url['pass'] : '') .'@' : '')
			.(isset($parse_url['host']) ? $parse_url['host'] : '')
			.(isset($parse_url['port']) ? ':' . $parse_url['port'] : '')
			.(isset($parse_url['path']) ? $parse_url['path'] : '')
			.(isset($parse_url['query']) ? '?' . $parse_url['query'] : '')
			.(isset($parse_url['fragment']) ? '#' . $parse_url['fragment'] : '')
		;
	}
}


if ( ! function_exists( 'array_key_first' ) ) {
	function array_key_first( array $arr ) {
		foreach( $arr as $k => $unused ) {
			return $k ;
		}
		return NULL ;
	}
}

if ( ! function_exists( 'array_column' ) ) {
	function array_column( $array, $column_name )
	{
		return array_map( function( $element ) use( $column_name ) { return $element[ $column_name ]; }, $array );
	}
}
<?php
/**
 * Compress HTML
 *
 * This is a heavy regex-based removal of whitespace, unnecessary comments and
 * tokens. IE conditional comments are preserved. There are also options to have
 * STYLE and SCRIPT blocks compressed by callback functions.
 *
 * A test suite is available.
 *
 * @package Minify
 * @author Stephen Clay <steve@mrclay.org>
 */
namespace LiteSpeed\Lib ;

defined( 'WPINC' ) || exit ;

class HTML_MIN
{
	/**
	 * @var boolean
	 */
	protected $_jsCleanComments = true;

	/**
	 * "Minify" an HTML page
	 *
	 * @param string $html
	 *
	 * @param array $options
	 *
	 * 'cssMinifier' : (optional) callback function to process content of STYLE
	 * elements.
	 *
	 * 'jsMinifier' : (optional) callback function to process content of SCRIPT
	 * elements. Note: the type attribute is ignored.
	 *
	 * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
	 * unset, minify will sniff for an XHTML doctype.
	 *
	 * @return string
	 */
	public static function minify($html, $options = array())
	{
		$min = new self($html, $options);

		return $min->process();
	}

	/**
	 * Create a minifier object
	 *
	 * @param string $html
	 *
	 * @param array $options
	 *
	 * 'cssMinifier' : (optional) callback function to process content of STYLE
	 * elements.
	 *
	 * 'jsMinifier' : (optional) callback function to process content of SCRIPT
	 * elements. Note: the type attribute is ignored.
	 *
	 * 'jsCleanComments' : (optional) whether to remove HTML comments beginning and end of script block
	 *
	 * 'xhtml' : (optional boolean) should content be treated as XHTML1.0? If
	 * unset, minify will sniff for an XHTML doctype.
	 */
	public function __construct($html, $options = array())
	{
		$this->_html = str_replace("\r\n", "\n", trim($html));
		if (isset($options['xhtml'])) {
			$this->_isXhtml = (bool)$options['xhtml'];
		}
		if (isset($options['cssMinifier'])) {
			$this->_cssMinifier = $options['cssMinifier'];
		}
		if (isset($options['jsMinifier'])) {
			$this->_jsMinifier = $options['jsMinifier'];
		}
		if (isset($options['jsCleanComments'])) {
			$this->_jsCleanComments = (bool)$options['jsCleanComments'];
		}
	}

	/**
	 * Minify the markeup given in the constructor
	 *
	 * @return string
	 */
	public function process()
	{
		if ($this->_isXhtml === null) {
			$this->_isXhtml = (false !== strpos($this->_html, '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML'));
		}

		$this->_replacementHash = 'MINIFYHTML' . md5($_SERVER['REQUEST_TIME']);
		$this->_placeholders = array();

		// replace SCRIPTs (and minify) with placeholders
		$this->_html = preg_replace_callback(
			'/(\\s*)<script(\\b[^>]*?>)([\\s\\S]*?)<\\/script>(\\s*)/i'
			,array($this, '_removeScriptCB')
			,$this->_html);

		// replace STYLEs (and minify) with placeholders
		$this->_html = preg_replace_callback(
			'/\\s*<style(\\b[^>]*>)([\\s\\S]*?)<\\/style>\\s*/i'
			,array($this, '_removeStyleCB')
			,$this->_html);

		// remove HTML comments (not containing IE conditional comments).
		$this->_html = preg_replace_callback(
			'/<!--([\\s\\S]*?)-->/'
			,array($this, '_commentCB')
			,$this->_html);

		// replace PREs with placeholders
		$this->_html = preg_replace_callback('/\\s*<pre(\\b[^>]*?>[\\s\\S]*?<\\/pre>)\\s*/i'
			,array($this, '_removePreCB')
			,$this->_html);

		// replace TEXTAREAs with placeholders
		$this->_html = preg_replace_callback(
			'/\\s*<textarea(\\b[^>]*?>[\\s\\S]*?<\\/textarea>)\\s*/i'
			,array($this, '_removeTextareaCB')
			,$this->_html);

		// trim each line.
		// @todo take into account attribute values that span multiple lines.
		$this->_html = preg_replace('/^\\s+|\\s+$/m', '', $this->_html);

		// remove ws around block/undisplayed elements
		$this->_html = preg_replace('/\\s+(<\\/?(?:area|article|aside|base(?:font)?|blockquote|body'
			.'|canvas|caption|center|col(?:group)?|dd|dir|div|dl|dt|fieldset|figcaption|figure|footer|form'
			.'|frame(?:set)?|h[1-6]|head|header|hgroup|hr|html|legend|li|link|main|map|menu|meta|nav'
			.'|ol|opt(?:group|ion)|output|p|param|section|t(?:able|body|head|d|h||r|foot|itle)'
			.'|ul|video)\\b[^>]*>)/i', '$1', $this->_html);

		// remove ws outside of all elements
		$this->_html = preg_replace(
			'/>(\\s(?:\\s*))?([^<]+)(\\s(?:\s*))?</'
			,'>$1$2$3<'
			,$this->_html);

		// use newlines before 1st attribute in open tags (to limit line lengths)
		// $this->_html = preg_replace('/(<[a-z\\-]+)\\s+([^>]+>)/i', "$1\n$2", $this->_html);

		// fill placeholders
		$this->_html = str_replace(
			array_keys($this->_placeholders)
			,array_values($this->_placeholders)
			,$this->_html
		);
		// issue 229: multi-pass to catch scripts that didn't get replaced in textareas
		$this->_html = str_replace(
			array_keys($this->_placeholders)
			,array_values($this->_placeholders)
			,$this->_html
		);

		return $this->_html;
	}

	protected function _commentCB($m)
	{
		return (0 === strpos($m[1], '[') || false !== strpos($m[1], '<!['))
			? $m[0]
			: '';
	}

	protected function _reservePlace($content)
	{
		$placeholder = '%' . $this->_replacementHash . count($this->_placeholders) . '%';
		$this->_placeholders[$placeholder] = $content;

		return $placeholder;
	}

	protected $_isXhtml = null;
	protected $_replacementHash = null;
	protected $_placeholders = array();
	protected $_cssMinifier = null;
	protected $_jsMinifier = null;

	protected function _removePreCB($m)
	{
		return $this->_reservePlace("<pre{$m[1]}");
	}

	protected function _removeTextareaCB($m)
	{
		return $this->_reservePlace("<textarea{$m[1]}");
	}

	protected function _removeStyleCB($m)
	{
		$openStyle = "<style{$m[1]}";
		$css = $m[2];
		// remove HTML comments
		$css = preg_replace('/(?:^\\s*<!--|-->\\s*$)/', '', $css);

		// remove CDATA section markers
		$css = $this->_removeCdata($css);

		// minify
		$minifier = $this->_cssMinifier
			? $this->_cssMinifier
			: 'trim';
		$css = call_user_func($minifier, $css);

		return $this->_reservePlace($this->_needsCdata($css)
			? "{$openStyle}/*<![CDATA[*/{$css}/*]]>*/</style>"
			: "{$openStyle}{$css}</style>"
		);
	}

	protected function _removeScriptCB($m)
	{
		$openScript = "<script{$m[2]}";
		$js = $m[3];

		// whitespace surrounding? preserve at least one space
		$ws1 = ($m[1] === '') ? '' : ' ';
		$ws2 = ($m[4] === '') ? '' : ' ';

		// remove HTML comments (and ending "//" if present)
		if ($this->_jsCleanComments) {
			$js = preg_replace('/(?:^\\s*<!--\\s*|\\s*(?:\\/\\/)?\\s*-->\\s*$)/', '', $js);
		}

		// remove CDATA section markers
		$js = $this->_removeCdata($js);

		// minify
		/**
		 * Added 2nd param by LiteSpeed
		 *
		 * @since  2.2.3
		 */
		if ( $this->_jsMinifier ) {
			$js = call_user_func( $this->_jsMinifier, $js, trim( $m[ 2 ] ) ) ;
		}
		else {
			$js = trim( $js ) ;
		}

		return $this->_reservePlace($this->_needsCdata($js)
			? "{$ws1}{$openScript}/*<![CDATA[*/{$js}/*]]>*/</script>{$ws2}"
			: "{$ws1}{$openScript}{$js}</script>{$ws2}"
		);
	}

	protected function _removeCdata($str)
	{
		return (false !== strpos($str, '<![CDATA['))
			? str_replace(array('<![CDATA[', ']]>'), '', $str)
			: $str;
	}

	protected function _needsCdata($str)
	{
		return ($this->_isXhtml && preg_match('/(?:[<&]|\\-\\-|\\]\\]>)/', $str));
	}
}
/**
 * CDN module
 * @author Hai Zheng
 */
class CDNMapping extends React.Component {
	constructor( props ) {
		super( props );
		this.state = {
			list: props.list
		};

		this.onChange = this.onChange.bind( this );
		this.delRow = this.delRow.bind( this );
		this.addNew = this.addNew.bind( this );
	}

	onChange( e, index ) {
		const target = e.currentTarget;
		const value = target.dataset.hasOwnProperty('value') ? Boolean(target.dataset.value*1) : target.value;
		const list = this.state.list;
		list[ index ][ target.dataset.type ] = value;

		this.setState( {
		  list: list
		} );
	}

	delRow( index ) {
		const data = this.state.list;
		data.splice( index, 1 );
		this.setState( { list: data } );
	}

	addNew() {
		const list = this.state.list;
		list.push( { url: '' } );
		this.setState( { list: list } );
	}

	render() {
		return (
			<React.Fragment>
			{ this.state.list.map( (item, i) => (
				<CDNMappingBlock item={item} key={i} index={i} onChange={this.onChange} delRow={this.delRow} />
			) ) }

				<p>
					<button type="button" className="button button-link litespeed-form-action litespeed-link-with-icon" onClick={this.addNew}>
						<span className="dashicons dashicons-plus-alt"></span>{litespeed_data[ 'lang' ][ 'add_cdn_mapping_row' ]}
					</button>
				</p>
			</React.Fragment>
		);
	}
}

// { url: '', inc_img: true, inc_css: false, inc_js: false, filetype: [ '.aac', '.eot', ... ] }
class CDNMappingBlock extends React.Component {
	constructor( props ) {
		super( props );

		this.onChange = this.onChange.bind( this );
		this.delRow = this.delRow.bind( this );
	}

	onChange( e ) {
		this.props.onChange( e, this.props.index );
	}

	delRow() {
		this.props.delRow( this.props.index );
	}

	render() {
		const name_prefix = litespeed_data[ 'ids' ][ 'cdn_mapping' ];

		const item = this.props.item;

		const filetype = item.filetype ? Array.isArray(item.filetype) ? item.filetype.join("\n") : item.filetype : '';
		return (
			<div className="litespeed-block">
				<div className='litespeed-cdn-mapping-col1'>
					<label className="litespeed-form-label">{ litespeed_data[ 'lang' ][ 'cdn_mapping_url' ] }</label>
					<input type="text" name={ name_prefix + '[url][]' } className="regular-text litespeed-input-long" value={item.url} data-type="url" onChange={this.onChange} />

					<div className="litespeed-desc">
						<span dangerouslySetInnerHTML={{ __html: litespeed_data[ 'lang' ][ 'cdn_mapping_url_desc' ] }} />
					</div>
				</div>

				<div className="litespeed-col-auto litespeed-cdn-mapping-col2">
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">
							{ litespeed_data[ 'lang' ][ 'cdn_mapping_inc_img' ] }
						</div>
						<div className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_img?'primary':'default litespeed-toggleoff'}`} data-type="inc_img" data-value={item.inc_img?0:1} onClick={this.onChange}>
							<input name={ name_prefix + '[inc_img][]' } type='hidden' value={item.inc_img?1:0} />
							<div className='litespeed-toggle-group'>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>{ litespeed_data[ 'lang' ][ 'on' ] }</label>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>{ litespeed_data[ 'lang' ][ 'off' ] }</label>
								<span className='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
							</div>
						</div>
					</div>
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">
							{ litespeed_data[ 'lang' ][ 'cdn_mapping_inc_css' ] }
						</div>
						<div className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_css?'primary':'default litespeed-toggleoff'}`} data-type="inc_css" data-value={item.inc_css?0:1} onClick={this.onChange}>
							<input name={ name_prefix + '[inc_css][]' } type='hidden' value={item.inc_css?1:0} />
							<div className='litespeed-toggle-group'>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>{ litespeed_data[ 'lang' ][ 'on' ] }</label>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>{ litespeed_data[ 'lang' ][ 'off' ] }</label>
								<span className='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
							</div>
						</div>
					</div>
					<div className="litespeed-row litespeed-toggle-wrapper">
						<div className="litespeed-cdn-mapping-inc litespeed-form-label litespeed-form-label--toggle">
							{ litespeed_data[ 'lang' ][ 'cdn_mapping_inc_js' ] }
						</div>
						<div className={`litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-${item.inc_js?'primary':'default litespeed-toggleoff'}`} data-type="inc_js" data-value={item.inc_js?0:1} onClick={this.onChange}>
							<input name={ name_prefix + '[inc_js][]' } type='hidden' value={item.inc_js?1:0} />
							<div className='litespeed-toggle-group'>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>{ litespeed_data[ 'lang' ][ 'on' ] }</label>
								<label className='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>{ litespeed_data[ 'lang' ][ 'off' ] }</label>
								<span className='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
							</div>
						</div>
					</div>
				</div>

				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">
						{ litespeed_data[ 'lang' ][ 'cdn_mapping_filetype' ] }
					</label>
					<textarea name={ name_prefix + '[filetype][]' } rows={filetype.split("\n").length+2} cols='18' value={ filetype } data-type="filetype" onChange={this.onChange} />
				</div>

				<div className="litespeed-col-auto">
					<button type="button" className="button button-link litespeed-collection-button litespeed-danger" onClick={this.delRow}>
						<span className="dashicons dashicons-dismiss"></span>
						<span className="screen-reader-text">{ litespeed_data[ 'lang' ][ 'cdn_mapping_remove' ] }</span>
					</button>
				</div>
			</div>
		);
	}
}/**
 * Lazyload init js
 *
 * @author LiteSpeed
 * @since 1.4
 *
 */

(function( window, document ){
	'use strict' ;

	var instance;
	var update_lazyload;

	var litespeed_finish_callback = function(){
		document.body.classList.add( 'litespeed_lazyloaded' );
	}

	var init = function(){
		instance = new LazyLoad( { elements_selector: "[data-lazyloaded]", callback_finish: litespeed_finish_callback } );

		update_lazyload = function(){
			instance.update() ;
		};

		if ( window.MutationObserver ) {
			new MutationObserver( update_lazyload ).observe( document.documentElement, { childList: true, subtree: true, attributes: true } ) ;
		}
	};

	window.addEventListener ? window.addEventListener( "load", init, false ) : window.attachEvent( "onload", init ) ;

})( window, document ) ;/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}}function p(a,b,c){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.o=b||a;this.c=this.o.document}var da=!!window.FontFace;function t(a,b,c,d){b=a.c.createElement(b);if(c)for(var e in c)c.hasOwnProperty(e)&&("style"==e?b.style.cssText=c[e]:b.setAttribute(e,c[e]));d&&b.appendChild(a.c.createTextNode(d));return b}function u(a,b,c){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(c,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}
function w(a,b,c){b=b||[];c=c||[];for(var d=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<d.length;g+=1)if(b[e]===d[g]){f=!0;break}f||d.push(b[e])}b=[];for(e=0;e<d.length;e+=1){f=!1;for(g=0;g<c.length;g+=1)if(d[e]===c[g]){f=!0;break}f||b.push(d[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function y(a,b){for(var c=a.className.split(/\s+/),d=0,e=c.length;d<e;d++)if(c[d]==b)return!0;return!1}
function ea(a){return a.o.location.hostname||a.a.location.hostname}function z(a,b,c){function d(){m&&e&&f&&(m(g),m=null)}b=t(a,"link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,m=c||null;da?(b.onload=function(){e=!0;d()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");d()}):setTimeout(function(){e=!0;d()},0);u(a,"head",b)}
function A(a,b,c,d){var e=a.c.getElementsByTagName("head")[0];if(e){var f=t(a,"script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,c&&c(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,c&&c(Error("Script load timeout")))},d||5E3);return f}return null};function B(){this.a=0;this.c=null}function C(a){a.a++;return function(){a.a--;D(a)}}function E(a,b){a.c=b;D(a)}function D(a){0==a.a&&a.c&&(a.c(),a.c=null)};function F(a){this.a=a||"-"}F.prototype.c=function(a){for(var b=[],c=0;c<arguments.length;c++)b.push(arguments[c].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.a)};function G(a,b){this.c=a;this.f=4;this.a="n";var c=(b||"n4").match(/^([nio])([1-9])$/i);c&&(this.a=c[1],this.f=parseInt(c[2],10))}function fa(a){return H(a)+" "+(a.f+"00")+" 300px "+I(a.c)}function I(a){var b=[];a=a.split(/,\s*/);for(var c=0;c<a.length;c++){var d=a[c].replace(/['"]/g,"");-1!=d.indexOf(" ")||/^\d/.test(d)?b.push("'"+d+"'"):b.push(d)}return b.join(",")}function J(a){return a.a+a.f}function H(a){var b="normal";"o"===a.a?b="oblique":"i"===a.a&&(b="italic");return b}
function ga(a){var b=4,c="n",d=null;a&&((d=a.match(/(normal|oblique|italic)/i))&&d[1]&&(c=d[1].substr(0,1).toLowerCase()),(d=a.match(/([1-9]00|normal|bold)/i))&&d[1]&&(/bold/i.test(d[1])?b=7:/[1-9]00/.test(d[1])&&(b=parseInt(d[1].substr(0,1),10))));return c+b};function ha(a,b){this.c=a;this.f=a.o.document.documentElement;this.h=b;this.a=new F("-");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c("wf","loading")]);K(a,"loading")}function L(a){if(a.g){var b=y(a.f,a.a.c("wf","active")),c=[],d=[a.a.c("wf","loading")];b||c.push(a.a.c("wf","inactive"));w(a.f,c,d)}K(a,"inactive")}function K(a,b,c){if(a.j&&a.h[b])if(c)a.h[b](c.c,J(c));else a.h[b]()};function ja(){this.c={}}function ka(a,b,c){var d=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&d.push(f(b[e],c))}return d};function M(a,b){this.c=a;this.f=b;this.a=t(this.c,"span",{"aria-hidden":"true"},this.f)}function N(a){u(a.c,"body",a.a)}function O(a){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+I(a.c)+";"+("font-style:"+H(a)+";font-weight:"+(a.f+"00")+";")};function P(a,b,c,d,e,f){this.g=a;this.j=b;this.a=d;this.c=c;this.f=e||3E3;this.h=f||void 0}P.prototype.start=function(){var a=this.c.o.document,b=this,c=q(),d=new Promise(function(d,e){function f(){q()-c>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.s);this.h=new M(this.c,this.s);this.j=new M(this.c,this.s);this.m=new M(this.c,this.s);a=new G(this.a.c+",serif",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+",sans-serif",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G("serif",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G("sans-serif",J(this.a));a=
O(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:"serif",C:"sans-serif"},S=null;function T(){if(null===S){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.m.a.offsetWidth;this.A=q();U(this)};
function la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f["sans-serif"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,J(a).toString(),"active")],[b.a.c("wf",a.c,J(a).toString(),"loading"),b.a.c("wf",a.c,J(a).toString(),"inactive")]);K(b,"fontactive",a);this.m=!0;na(this)};
W.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c("wf",a.c,J(a).toString(),"active")),d=[],e=[b.a.c("wf",a.c,J(a).toString(),"loading")];c||d.push(b.a.c("wf",a.c,J(a).toString(),"inactive"));w(b.f,d,e)}K(b,"fontinactive",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),K(a,"active")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};
function qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h<c.length;h++){var k=c[h],n=m[k.c],r=b.a,x=k;r.g&&w(r.f,[r.a.c("wf",x.c,J(x).toString(),"loading")]);K(r,"fontloading",x);r=null;if(null===X)if(window.FontFace){var x=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent),xa=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);
X=x?42<parseInt(x[1],10):xa?!1:!0}else X=!1;X?r=new P(p(b.g,b),p(b.h,b),b.c,k,b.s,n):r=new Q(p(b.g,b),p(b.h,b),b.c,k,b.s,a,n);l.push(r)}for(h=0;h<l.length;h++)l[h].start()}},0)}function pa(a,b,c){var d=[],e=c.timeout;ia(b);var d=ka(a.a,c,a.c),f=new W(a.c,b,e);a.h=d.length;b=0;for(c=d.length;b<c;b++)d[b].load(function(b,d,c){qa(a,f,b,d,c)})};function ra(a,b){this.c=a;this.a=b}
ra.prototype.load=function(a){function b(){if(f["__mti_fntLst"+d]){var c=f["__mti_fntLst"+d](),e=[],h;if(c)for(var l=0;l<c.length;l++){var k=c[l].fontfamily;void 0!=c[l].fontStyle&&void 0!=c[l].fontWeight?(h=c[l].fontStyle+c[l].fontWeight,e.push(new G(k,h))):e.push(new G(k))}a(e)}else setTimeout(function(){b()},50)}var c=this,d=c.a.projectId,e=c.a.version;if(d){var f=c.c.o;A(this.c,(c.a.api||"https://fast.fonts.net/jsapi")+"/"+d+".js"+(e?"?v="+e:""),function(e){e?a([]):(f["__MonotypeConfiguration__"+
d]=function(){return c.a},b())}).id="__MonotypeAPIScript__"+d}else a([])};function sa(a,b){this.c=a;this.a=b}sa.prototype.load=function(a){var b,c,d=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new B;b=0;for(c=d.length;b<c;b++)z(this.c,d[b],C(g));var m=[];b=0;for(c=e.length;b<c;b++)if(d=e[b].split(":"),d[1])for(var h=d[1].split(","),l=0;l<h.length;l+=1)m.push(new G(d[0],h[l]));else m.push(new G(d[0]));E(g,function(){a(m,f)})};function ta(a,b){a?this.c=a:this.c=ua;this.a=[];this.f=[];this.g=b||""}var ua="https://fonts.googleapis.com/css";function va(a,b){for(var c=b.length,d=0;d<c;d++){var e=b[d].split(":");3==e.length&&a.f.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.a.push(e.join(f))}}
function wa(a){if(0==a.a.length)throw Error("No fonts to load!");if(-1!=a.c.indexOf("kit="))return a.c;for(var b=a.a.length,c=[],d=0;d<b;d++)c.push(a.a[d].replace(/ /g,"+"));b=a.c+"?family="+c.join("%7C");0<a.f.length&&(b+="&subset="+a.f.join(","));0<a.g.length&&(b+="&text="+encodeURIComponent(a.g));return b};function ya(a){this.f=a;this.a=[];this.c={}}
var za={latin:"BESbswy","latin-ext":"\u00e7\u00f6\u00fc\u011f\u015f",cyrillic:"\u0439\u044f\u0416",greek:"\u03b1\u03b2\u03a3",khmer:"\u1780\u1781\u1782",Hanuman:"\u1780\u1781\u1782"},Aa={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Ba={i:"i",italic:"i",n:"n",normal:"n"},
Ca=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
function Da(a){for(var b=a.f.length,c=0;c<b;c++){var d=a.f[c].split(":"),e=d[0].replace(/\+/g," "),f=["n4"];if(2<=d.length){var g;var m=d[1];g=[];if(m)for(var m=m.split(","),h=m.length,l=0;l<h;l++){var k;k=m[l];if(k.match(/^[\w-]+$/)){var n=Ca.exec(k.toLowerCase());if(null==n)k="";else{k=n[2];k=null==k||""==k?"n":Ba[k];n=n[1];if(null==n||""==n)n="4";else var r=Aa[n],n=r?r:isNaN(n)?"4":n.substr(0,1);k=[k,n].join("")}}else k="";k&&g.push(k)}0<g.length&&(f=g);3==d.length&&(d=d[2],g=[],d=d?d.split(","):
g,0<d.length&&(d=za[d[0]])&&(a.c[e]=d))}a.c[e]||(d=za[e])&&(a.c[e]=d);for(d=0;d<f.length;d+=1)a.a.push(new G(e,f[d]))}};function Ea(a,b){this.c=a;this.a=b}var Fa={Arimo:!0,Cousine:!0,Tinos:!0};Ea.prototype.load=function(a){var b=new B,c=this.c,d=new ta(this.a.api,this.a.text),e=this.a.families;va(d,e);var f=new ya(e);Da(f);z(c,wa(d),C(b));E(b,function(){a(f.a,f.c,Fa)})};function Ga(a,b){this.c=a;this.a=b}Ga.prototype.load=function(a){var b=this.a.id,c=this.c.o;b?A(this.c,(this.a.api||"https://use.typekit.net")+"/"+b+".js",function(b){if(b)a([]);else if(c.Typekit&&c.Typekit.config&&c.Typekit.config.fn){b=c.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],m=b[f+1],h=0;h<m.length;h++)e.push(new G(g,m[h]));try{c.Typekit.load({events:!1,classes:!1,async:!0})}catch(l){}a(e)}},2E3):a([])};function Ha(a,b){this.c=a;this.f=b;this.a=[]}Ha.prototype.load=function(a){var b=this.f.id,c=this.c.o,d=this;b?(c.__webfontfontdeckmodule__||(c.__webfontfontdeckmodule__={}),c.__webfontfontdeckmodule__[b]=function(b,c){for(var g=0,m=c.fonts.length;g<m;++g){var h=c.fonts[g];d.a.push(new G(h.name,ga("font-weight:"+h.weight+";font-style:"+h.style)))}a(d.a)},A(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+ea(this.c)+"/"+b+".js",function(b){b&&a([])})):a([])};var Y=new oa(window);Y.a.c.custom=function(a,b){return new sa(b,a)};Y.a.c.fontdeck=function(a,b){return new Ha(b,a)};Y.a.c.monotype=function(a,b){return new ra(b,a)};Y.a.c.typekit=function(a,b){return new Ga(b,a)};Y.a.c.google=function(a,b){return new Ea(b,a)};var Z={load:p(Y.load,Y)};"function"===typeof define&&define.amd?define(function(){return Z}):"undefined"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());
/*
* iziModal | v1.6.0
* http://izimodal.marcelodolce.com
* by Marcelo Dolce.
*/
!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=function(e,i){return void 0===i&&(i="undefined"!=typeof window?require("jquery"):require("jquery")(e)),t(i),i}:t(jQuery)}(function(t){function e(){var t,e=document.createElement("fakeelement"),i={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in i)if(void 0!==e.style[t])return i[t]}function i(t){return 9===t?navigator.appVersion.indexOf("MSIE 9.")!==-1:(userAgent=navigator.userAgent,userAgent.indexOf("MSIE ")>-1||userAgent.indexOf("Trident/")>-1)}function n(t){var e=/%|px|em|cm|vh|vw/;return parseInt(String(t).split(e)[0])}function o(e){var i=e.replace(/^.*#/,""),n=t(e);n.attr("id",i+"-tmp"),window.location.hash=e,n.attr("id",i)}var s=t(window),a=t(document),r="iziModal",l={CLOSING:"closing",CLOSED:"closed",OPENING:"opening",OPENED:"opened",DESTROYED:"destroyed"},d=e(),h=!!/Mobi/.test(navigator.userAgent);window.$iziModal={},window.$iziModal.autoOpen=0,window.$iziModal.history=!1;var c=function(t,e){this.init(t,e)};return c.prototype={constructor:c,init:function(e,i){var n=this;this.$element=t(e),void 0!==this.$element[0].id&&""!==this.$element[0].id?this.id=this.$element[0].id:(this.id=r+Math.floor(1e7*Math.random()+1),this.$element.attr("id",this.id)),this.classes=void 0!==this.$element.attr("class")?this.$element.attr("class"):"",this.content=this.$element.html(),this.state=l.CLOSED,this.options=i,this.width=0,this.timer=null,this.timerTimeout=null,this.progressBar=null,this.isPaused=!1,this.isFullscreen=!1,this.headerHeight=0,this.modalHeight=0,this.$overlay=t('<div class="'+r+'-overlay" style="background-color:'+i.overlayColor+'"></div>'),this.$navigate=t('<div class="'+r+'-navigate"><div class="'+r+'-navigate-caption">Use</div><button class="'+r+'-navigate-prev"></button><button class="'+r+'-navigate-next"></button></div>'),this.group={name:this.$element.attr("data-"+r+"-group"),index:null,ids:[]},this.$element.attr("aria-hidden","true"),this.$element.attr("aria-labelledby",this.id),this.$element.attr("role","dialog"),this.$element.hasClass("iziModal")||this.$element.addClass("iziModal"),void 0===this.group.name&&""!==i.group&&(this.group.name=i.group,this.$element.attr("data-"+r+"-group",i.group)),this.options.loop===!0&&this.$element.attr("data-"+r+"-loop",!0),t.each(this.options,function(t,e){var o=n.$element.attr("data-"+r+"-"+t);try{"undefined"!=typeof o&&(""===o||"true"==o?i[t]=!0:"false"==o?i[t]=!1:"function"==typeof e?i[t]=new Function(o):i[t]=o)}catch(s){}}),i.appendTo!==!1&&this.$element.appendTo(i.appendTo),i.iframe===!0?(this.$element.html('<div class="'+r+'-wrap"><div class="'+r+'-content"><iframe class="'+r+'-iframe"></iframe>'+this.content+"</div></div>"),null!==i.iframeHeight&&this.$element.find("."+r+"-iframe").css("height",i.iframeHeight)):this.$element.html('<div class="'+r+'-wrap"><div class="'+r+'-content">'+this.content+"</div></div>"),null!==this.options.background&&this.$element.css("background",this.options.background),this.$wrap=this.$element.find("."+r+"-wrap"),null===i.zindex||isNaN(parseInt(i.zindex))||(this.$element.css("z-index",i.zindex),this.$navigate.css("z-index",i.zindex-1),this.$overlay.css("z-index",i.zindex-2)),""!==i.radius&&this.$element.css("border-radius",i.radius),""!==i.padding&&this.$element.find("."+r+"-content").css("padding",i.padding),""!==i.theme&&("light"===i.theme?this.$element.addClass(r+"-light"):this.$element.addClass(i.theme)),i.rtl===!0&&this.$element.addClass(r+"-rtl"),i.openFullscreen===!0&&(this.isFullscreen=!0,this.$element.addClass("isFullscreen")),this.createHeader(),this.recalcWidth(),this.recalcVerticalPos(),!n.options.afterRender||"function"!=typeof n.options.afterRender&&"object"!=typeof n.options.afterRender||n.options.afterRender(n)},createHeader:function(){this.$header=t('<div class="'+r+'-header"><h2 class="'+r+'-header-title">'+this.options.title+'</h2><p class="'+r+'-header-subtitle">'+this.options.subtitle+'</p><div class="'+r+'-header-buttons"></div></div>'),this.options.closeButton===!0&&this.$header.find("."+r+"-header-buttons").append('<a href="javascript:void(0)" class="'+r+"-button "+r+'-button-close" data-'+r+"-close></a>"),this.options.fullscreen===!0&&this.$header.find("."+r+"-header-buttons").append('<a href="javascript:void(0)" class="'+r+"-button "+r+'-button-fullscreen" data-'+r+"-fullscreen></a>"),this.options.timeoutProgressbar===!0&&this.$header.prepend('<div class="'+r+'-progressbar"><div style="background-color:'+this.options.timeoutProgressbarColor+'"></div></div>'),""===this.options.subtitle&&this.$header.addClass(r+"-noSubtitle"),""!==this.options.title&&(null!==this.options.headerColor&&(this.options.borderBottom===!0&&this.$element.css("border-bottom","3px solid "+this.options.headerColor),this.$header.css("background",this.options.headerColor)),null===this.options.icon&&null===this.options.iconText||(this.$header.prepend('<i class="'+r+'-header-icon"></i>'),null!==this.options.icon&&this.$header.find("."+r+"-header-icon").addClass(this.options.icon).css("color",this.options.iconColor),null!==this.options.iconText&&this.$header.find("."+r+"-header-icon").html(this.options.iconText)),this.$element.css("overflow","hidden").prepend(this.$header))},setGroup:function(e){var i=this,n=this.group.name||e;if(this.group.ids=[],void 0!==e&&e!==this.group.name&&(n=e,this.group.name=n,this.$element.attr("data-"+r+"-group",n)),void 0!==n&&""!==n){var o=0;t.each(t("."+r+"[data-"+r+"-group="+n+"]"),function(e,n){i.group.ids.push(t(this)[0].id),i.id==t(this)[0].id&&(i.group.index=o),o++})}},toggle:function(){this.state==l.OPENED&&this.close(),this.state==l.CLOSED&&this.open()},startProgress:function(t){var e=this;this.isPaused=!1,clearTimeout(this.timerTimeout),this.options.timeoutProgressbar===!0?(this.progressBar={hideEta:null,maxHideTime:null,currentTime:(new Date).getTime(),el:this.$element.find("."+r+"-progressbar > div"),updateProgress:function(){if(!e.isPaused){e.progressBar.currentTime=e.progressBar.currentTime+10;var t=(e.progressBar.hideEta-e.progressBar.currentTime)/e.progressBar.maxHideTime*100;e.progressBar.el.width(t+"%"),t<0&&e.close()}}},t>0&&(this.progressBar.maxHideTime=parseFloat(t),this.progressBar.hideEta=(new Date).getTime()+this.progressBar.maxHideTime,this.timerTimeout=setInterval(this.progressBar.updateProgress,10))):this.timerTimeout=setTimeout(function(){e.close()},e.options.timeout)},pauseProgress:function(){this.isPaused=!0},resumeProgress:function(){this.isPaused=!1},resetProgress:function(t){clearTimeout(this.timerTimeout),this.progressBar={},this.$element.find("."+r+"-progressbar > div").width("100%")},open:function(e){function i(){s.state=l.OPENED,s.$element.trigger(l.OPENED),!s.options.onOpened||"function"!=typeof s.options.onOpened&&"object"!=typeof s.options.onOpened||s.options.onOpened(s)}function n(){s.$element.off("click","[data-"+r+"-close]").on("click","[data-"+r+"-close]",function(e){e.preventDefault();var i=t(e.currentTarget).attr("data-"+r+"-transitionOut");void 0!==i?s.close({transition:i}):s.close()}),s.$element.off("click","[data-"+r+"-fullscreen]").on("click","[data-"+r+"-fullscreen]",function(t){t.preventDefault(),s.isFullscreen===!0?(s.isFullscreen=!1,s.$element.removeClass("isFullscreen")):(s.isFullscreen=!0,s.$element.addClass("isFullscreen")),s.options.onFullscreen&&"function"==typeof s.options.onFullscreen&&s.options.onFullscreen(s),s.$element.trigger("fullscreen",s)}),s.$navigate.off("click","."+r+"-navigate-next").on("click","."+r+"-navigate-next",function(t){s.next(t)}),s.$element.off("click","[data-"+r+"-next]").on("click","[data-"+r+"-next]",function(t){s.next(t)}),s.$navigate.off("click","."+r+"-navigate-prev").on("click","."+r+"-navigate-prev",function(t){s.prev(t)}),s.$element.off("click","[data-"+r+"-prev]").on("click","[data-"+r+"-prev]",function(t){s.prev(t)})}var s=this;try{void 0!==e&&e.preventClose===!1&&t.each(t("."+r),function(e,i){if(void 0!==t(i).data().iziModal){var n=t(i).iziModal("getState");"opened"!=n&&"opening"!=n||t(i).iziModal("close")}})}catch(c){}if(function(){if(s.options.history){var t=document.title;document.title=t+" - "+s.options.title,o("#"+s.id),document.title=t,window.$iziModal.history=!0}else window.$iziModal.history=!1}(),this.state==l.CLOSED){if(n(),this.setGroup(),this.state=l.OPENING,this.$element.trigger(l.OPENING),this.$element.attr("aria-hidden","false"),this.options.timeoutProgressbar===!0&&this.$element.find("."+r+"-progressbar > div").width("100%"),this.options.iframe===!0){this.$element.find("."+r+"-content").addClass(r+"-content-loader"),this.$element.find("."+r+"-iframe").on("load",function(){t(this).parent().removeClass(r+"-content-loader")});var u=null;try{u=""!==t(e.currentTarget).attr("href")?t(e.currentTarget).attr("href"):null}catch(c){}if(null===this.options.iframeURL||null!==u&&void 0!==u||(u=this.options.iframeURL),null===u||void 0===u)throw new Error("Failed to find iframe URL");this.$element.find("."+r+"-iframe").attr("src",u)}(this.options.bodyOverflow||h)&&(t("html").addClass(r+"-isOverflow"),h&&t("body").css("overflow","hidden")),this.options.onOpening&&"function"==typeof this.options.onOpening&&this.options.onOpening(this),function(){if(s.group.ids.length>1){s.$navigate.appendTo("body"),s.$navigate.addClass("fadeIn"),s.options.navigateCaption===!0&&s.$navigate.find("."+r+"-navigate-caption").show();var n=s.$element.outerWidth();s.options.navigateArrows!==!1?"closeScreenEdge"===s.options.navigateArrows?(s.$navigate.find("."+r+"-navigate-prev").css("left",0).show(),s.$navigate.find("."+r+"-navigate-next").css("right",0).show()):(s.$navigate.find("."+r+"-navigate-prev").css("margin-left",-(n/2+84)).show(),s.$navigate.find("."+r+"-navigate-next").css("margin-right",-(n/2+84)).show()):(s.$navigate.find("."+r+"-navigate-prev").hide(),s.$navigate.find("."+r+"-navigate-next").hide());var o;0===s.group.index&&(o=t("."+r+"[data-"+r+'-group="'+s.group.name+'"][data-'+r+"-loop]").length,0===o&&s.options.loop===!1&&s.$navigate.find("."+r+"-navigate-prev").hide()),s.group.index+1===s.group.ids.length&&(o=t("."+r+"[data-"+r+'-group="'+s.group.name+'"][data-'+r+"-loop]").length,0===o&&s.options.loop===!1&&s.$navigate.find("."+r+"-navigate-next").hide())}s.options.overlay===!0&&(s.options.appendToOverlay===!1?s.$overlay.appendTo("body"):s.$overlay.appendTo(s.options.appendToOverlay)),s.options.transitionInOverlay&&s.$overlay.addClass(s.options.transitionInOverlay);var a=s.options.transitionIn;"object"==typeof e&&(void 0===e.transition&&void 0===e.transitionIn||(a=e.transition||e.transitionIn),void 0!==e.zindex&&s.setZindex(e.zindex)),""!==a&&void 0!==d?(s.$element.addClass("transitionIn "+a).show(),s.$wrap.one(d,function(){s.$element.removeClass(a+" transitionIn"),s.$overlay.removeClass(s.options.transitionInOverlay),s.$navigate.removeClass("fadeIn"),i()})):(s.$element.show(),i()),s.options.pauseOnHover!==!0||s.options.pauseOnHover!==!0||s.options.timeout===!1||isNaN(parseInt(s.options.timeout))||s.options.timeout===!1||0===s.options.timeout||(s.$element.off("mouseenter").on("mouseenter",function(t){t.preventDefault(),s.isPaused=!0}),s.$element.off("mouseleave").on("mouseleave",function(t){t.preventDefault(),s.isPaused=!1}))}(),this.options.timeout===!1||isNaN(parseInt(this.options.timeout))||this.options.timeout===!1||0===this.options.timeout||s.startProgress(this.options.timeout),this.options.overlayClose&&!this.$element.hasClass(this.options.transitionOut)&&this.$overlay.click(function(){s.close()}),this.options.focusInput&&this.$element.find(":input:not(button):enabled:visible:first").focus(),function p(){s.recalcLayout(),s.timer=setTimeout(p,300)}(),a.on("keydown."+r,function(t){s.options.closeOnEscape&&27===t.keyCode&&s.close()})}},close:function(e){function i(){n.state=l.CLOSED,n.$element.trigger(l.CLOSED),n.options.iframe===!0&&n.$element.find("."+r+"-iframe").attr("src",""),(n.options.bodyOverflow||h)&&(t("html").removeClass(r+"-isOverflow"),h&&t("body").css("overflow","auto")),n.options.onClosed&&"function"==typeof n.options.onClosed&&n.options.onClosed(n),n.options.restoreDefaultContent===!0&&n.$element.find("."+r+"-content").html(n.content),0===t("."+r+":visible").length&&t("html").removeClass(r+"-isAttached")}var n=this;if(this.state==l.OPENED||this.state==l.OPENING){a.off("keydown."+r),this.state=l.CLOSING,this.$element.trigger(l.CLOSING),this.$element.attr("aria-hidden","true"),clearTimeout(this.timer),clearTimeout(this.timerTimeout),n.options.onClosing&&"function"==typeof n.options.onClosing&&n.options.onClosing(this);var o=this.options.transitionOut;"object"==typeof e&&(void 0===e.transition&&void 0===e.transitionOut||(o=e.transition||e.transitionOut)),o===!1||""===o||void 0===d?(this.$element.hide(),this.$overlay.remove(),this.$navigate.remove(),i()):(this.$element.attr("class",[this.classes,r,o,"light"==this.options.theme?r+"-light":this.options.theme,this.isFullscreen===!0?"isFullscreen":"",this.options.rtl?r+"-rtl":""].join(" ")),this.$overlay.attr("class",r+"-overlay "+this.options.transitionOutOverlay),n.options.navigateArrows===!1||h||this.$navigate.attr("class",r+"-navigate fadeOut"),this.$element.one(d,function(){n.$element.hasClass(o)&&n.$element.removeClass(o+" transitionOut").hide(),n.$overlay.removeClass(n.options.transitionOutOverlay).remove(),n.$navigate.removeClass("fadeOut").remove(),i()}))}},next:function(e){var i=this,n="fadeInRight",o="fadeOutLeft",s=t("."+r+":visible"),a={};a.out=this,void 0!==e&&"object"!=typeof e?(e.preventDefault(),s=t(e.currentTarget),n=s.attr("data-"+r+"-transitionIn"),o=s.attr("data-"+r+"-transitionOut")):void 0!==e&&(void 0!==e.transitionIn&&(n=e.transitionIn),void 0!==e.transitionOut&&(o=e.transitionOut)),this.close({transition:o}),setTimeout(function(){for(var e=t("."+r+"[data-"+r+'-group="'+i.group.name+'"][data-'+r+"-loop]").length,o=i.group.index+1;o<=i.group.ids.length;o++){try{a["in"]=t("#"+i.group.ids[o]).data().iziModal}catch(s){}if("undefined"!=typeof a["in"]){t("#"+i.group.ids[o]).iziModal("open",{transition:n});break}if(o==i.group.ids.length&&e>0||i.options.loop===!0)for(var l=0;l<=i.group.ids.length;l++)if(a["in"]=t("#"+i.group.ids[l]).data().iziModal,"undefined"!=typeof a["in"]){t("#"+i.group.ids[l]).iziModal("open",{transition:n});break}}},200),t(document).trigger(r+"-group-change",a)},prev:function(e){var i=this,n="fadeInLeft",o="fadeOutRight",s=t("."+r+":visible"),a={};a.out=this,void 0!==e&&"object"!=typeof e?(e.preventDefault(),s=t(e.currentTarget),n=s.attr("data-"+r+"-transitionIn"),o=s.attr("data-"+r+"-transitionOut")):void 0!==e&&(void 0!==e.transitionIn&&(n=e.transitionIn),void 0!==e.transitionOut&&(o=e.transitionOut)),this.close({transition:o}),setTimeout(function(){for(var e=t("."+r+"[data-"+r+'-group="'+i.group.name+'"][data-'+r+"-loop]").length,o=i.group.index;o>=0;o--){try{a["in"]=t("#"+i.group.ids[o-1]).data().iziModal}catch(s){}if("undefined"!=typeof a["in"]){t("#"+i.group.ids[o-1]).iziModal("open",{transition:n});break}if(0===o&&e>0||i.options.loop===!0)for(var l=i.group.ids.length-1;l>=0;l--)if(a["in"]=t("#"+i.group.ids[l]).data().iziModal,"undefined"!=typeof a["in"]){t("#"+i.group.ids[l]).iziModal("open",{transition:n});break}}},200),t(document).trigger(r+"-group-change",a)},destroy:function(){var e=t.Event("destroy");this.$element.trigger(e),a.off("keydown."+r),clearTimeout(this.timer),clearTimeout(this.timerTimeout),this.options.iframe===!0&&this.$element.find("."+r+"-iframe").remove(),this.$element.html(this.$element.find("."+r+"-content").html()),this.$element.off("click","[data-"+r+"-close]"),this.$element.off("click","[data-"+r+"-fullscreen]"),this.$element.off("."+r).removeData(r).attr("style",""),this.$overlay.remove(),this.$navigate.remove(),this.$element.trigger(l.DESTROYED),this.$element=null},getState:function(){return this.state},getGroup:function(){return this.group},setWidth:function(t){this.options.width=t,this.recalcWidth();var e=this.$element.outerWidth();this.options.navigateArrows!==!0&&"closeToModal"!=this.options.navigateArrows||(this.$navigate.find("."+r+"-navigate-prev").css("margin-left",-(e/2+84)).show(),this.$navigate.find("."+r+"-navigate-next").css("margin-right",-(e/2+84)).show())},setTop:function(t){this.options.top=t,this.recalcVerticalPos(!1)},setBottom:function(t){this.options.bottom=t,this.recalcVerticalPos(!1)},setHeader:function(t){t?this.$element.find("."+r+"-header").show():(this.headerHeight=0,this.$element.find("."+r+"-header").hide())},setTitle:function(t){this.options.title=t,0===this.headerHeight&&this.createHeader(),0===this.$header.find("."+r+"-header-title").length&&this.$header.append('<h2 class="'+r+'-header-title"></h2>'),this.$header.find("."+r+"-header-title").html(t)},setSubtitle:function(t){""===t?(this.$header.find("."+r+"-header-subtitle").remove(),this.$header.addClass(r+"-noSubtitle")):(0===this.$header.find("."+r+"-header-subtitle").length&&this.$header.append('<p class="'+r+'-header-subtitle"></p>'),this.$header.removeClass(r+"-noSubtitle")),this.$header.find("."+r+"-header-subtitle").html(t),this.options.subtitle=t},setIcon:function(t){0===this.$header.find("."+r+"-header-icon").length&&this.$header.prepend('<i class="'+r+'-header-icon"></i>'),this.$header.find("."+r+"-header-icon").attr("class",r+"-header-icon "+t),this.options.icon=t},setIconText:function(t){this.$header.find("."+r+"-header-icon").html(t),this.options.iconText=t},setHeaderColor:function(t){this.options.borderBottom===!0&&this.$element.css("border-bottom","3px solid "+t),this.$header.css("background",t),this.options.headerColor=t},setBackground:function(t){t===!1?(this.options.background=null,this.$element.css("background","")):(this.$element.css("background",t),this.options.background=t)},setZindex:function(t){isNaN(parseInt(this.options.zindex))||(this.options.zindex=t,this.$element.css("z-index",t),this.$navigate.css("z-index",t-1),this.$overlay.css("z-index",t-2))},setFullscreen:function(t){t?(this.isFullscreen=!0,this.$element.addClass("isFullscreen")):(this.isFullscreen=!1,this.$element.removeClass("isFullscreen"))},setContent:function(t){if("object"==typeof t){var e=t["default"]||!1;e===!0&&(this.content=t.content),t=t.content}this.options.iframe===!1&&this.$element.find("."+r+"-content").html(t)},setTransitionIn:function(t){this.options.transitionIn=t},setTransitionOut:function(t){this.options.transitionOut=t},setTimeout:function(t){this.options.timeout=t},resetContent:function(){this.$element.find("."+r+"-content").html(this.content)},startLoading:function(){this.$element.find("."+r+"-loader").length||this.$element.append('<div class="'+r+'-loader fadeIn"></div>'),this.$element.find("."+r+"-loader").css({top:this.headerHeight,borderRadius:this.options.radius})},stopLoading:function(){var t=this.$element.find("."+r+"-loader");t.length||(this.$element.prepend('<div class="'+r+'-loader fadeIn"></div>'),t=this.$element.find("."+r+"-loader").css("border-radius",this.options.radius)),t.removeClass("fadeIn").addClass("fadeOut"),setTimeout(function(){t.remove()},600)},recalcWidth:function(){var t=this;if(this.$element.css("max-width",this.options.width),i()){var e=t.options.width;e.toString().split("%").length>1&&(e=t.$element.outerWidth()),t.$element.css({left:"50%",marginLeft:-(e/2)})}},recalcVerticalPos:function(t){null!==this.options.top&&this.options.top!==!1?(this.$element.css("margin-top",this.options.top),0===this.options.top&&this.$element.css({borderTopRightRadius:0,borderTopLeftRadius:0})):t===!1&&this.$element.css({marginTop:"",borderRadius:this.options.radius}),null!==this.options.bottom&&this.options.bottom!==!1?(this.$element.css("margin-bottom",this.options.bottom),0===this.options.bottom&&this.$element.css({borderBottomRightRadius:0,borderBottomLeftRadius:0})):t===!1&&this.$element.css({marginBottom:"",borderRadius:this.options.radius})},recalcLayout:function(){var e=this,o=s.height(),a=this.$element.outerHeight(),d=this.$element.outerWidth(),h=this.$element.find("."+r+"-content")[0].scrollHeight,c=h+this.headerHeight,u=this.$element.innerHeight()-this.headerHeight,p=(parseInt(-((this.$element.innerHeight()+1)/2))+"px",this.$wrap.scrollTop()),f=0;i()&&(d>=s.width()||this.isFullscreen===!0?this.$element.css({left:"0",marginLeft:""}):this.$element.css({left:"50%",marginLeft:-(d/2)})),this.options.borderBottom===!0&&""!==this.options.title&&(f=3),this.$element.find("."+r+"-header").length&&this.$element.find("."+r+"-header").is(":visible")?(this.headerHeight=parseInt(this.$element.find("."+r+"-header").innerHeight()),this.$element.css("overflow","hidden")):(this.headerHeight=0,this.$element.css("overflow","")),this.$element.find("."+r+"-loader").length&&this.$element.find("."+r+"-loader").css("top",this.headerHeight),a!==this.modalHeight&&(this.modalHeight=a,this.options.onResize&&"function"==typeof this.options.onResize&&this.options.onResize(this)),this.state!=l.OPENED&&this.state!=l.OPENING||(this.options.iframe===!0&&(o<this.options.iframeHeight+this.headerHeight+f||this.isFullscreen===!0?this.$element.find("."+r+"-iframe").css("height",o-(this.headerHeight+f)):this.$element.find("."+r+"-iframe").css("height",this.options.iframeHeight)),a==o?this.$element.addClass("isAttached"):this.$element.removeClass("isAttached"),this.isFullscreen===!1&&this.$element.width()>=s.width()?this.$element.find("."+r+"-button-fullscreen").hide():this.$element.find("."+r+"-button-fullscreen").show(),this.recalcButtons(),this.isFullscreen===!1&&(o=o-(n(this.options.top)||0)-(n(this.options.bottom)||0)),c>o?(this.options.top>0&&null===this.options.bottom&&h<s.height()&&this.$element.addClass("isAttachedBottom"),this.options.bottom>0&&null===this.options.top&&h<s.height()&&this.$element.addClass("isAttachedTop"),1===t("."+r+":visible").length&&t("html").addClass(r+"-isAttached"),this.$element.css("height",o)):(this.$element.css("height",h+(this.headerHeight+f)),this.$element.removeClass("isAttachedTop isAttachedBottom"),1===t("."+r+":visible").length&&t("html").removeClass(r+"-isAttached")),function(){h>u&&c>o?(e.$element.addClass("hasScroll"),e.$wrap.css("height",a-(e.headerHeight+f))):(e.$element.removeClass("hasScroll"),e.$wrap.css("height","auto"))}(),function(){u+p<h-30?e.$element.addClass("hasShadow"):e.$element.removeClass("hasShadow")}())},recalcButtons:function(){var t=this.$header.find("."+r+"-header-buttons").innerWidth()+10;this.options.rtl===!0?this.$header.css("padding-left",t):this.$header.css("padding-right",t)}},s.off("load."+r).on("load."+r,function(e){var i=document.location.hash;if(0===window.$iziModal.autoOpen&&!t("."+r).is(":visible"))try{var n=t(i).data();"undefined"!=typeof n&&n.iziModal.options.autoOpen!==!1&&t(i).iziModal("open")}catch(o){}}),s.off("hashchange."+r).on("hashchange."+r,function(e){var i=document.location.hash;if(""!==i)try{var n=t(i).data();"undefined"!=typeof n&&"opening"!==t(i).iziModal("getState")&&setTimeout(function(){t(i).iziModal("open",{preventClose:!1})},200)}catch(o){}else window.$iziModal.history&&t.each(t("."+r),function(e,i){if(void 0!==t(i).data().iziModal){var n=t(i).iziModal("getState");"opened"!=n&&"opening"!=n||t(i).iziModal("close")}})}),a.off("click","[data-"+r+"-open]").on("click","[data-"+r+"-open]",function(e){e.preventDefault();var i=t("."+r+":visible"),n=t(e.currentTarget).attr("data-"+r+"-open"),o=t(e.currentTarget).attr("data-"+r+"-preventClose"),s=t(e.currentTarget).attr("data-"+r+"-transitionIn"),a=t(e.currentTarget).attr("data-"+r+"-transitionOut"),l=t(e.currentTarget).attr("data-"+r+"-zindex");void 0!==l&&t(n).iziModal("setZindex",l),void 0===o&&(void 0!==a?i.iziModal("close",{transition:a}):i.iziModal("close")),setTimeout(function(){void 0!==s?t(n).iziModal("open",{transition:s}):t(n).iziModal("open")},200)}),a.off("keyup."+r).on("keyup."+r,function(e){if(t("."+r+":visible").length){var i=t("."+r+":visible")[0].id,n=t("#"+i).data().iziModal.options.arrowKeys,o=t("#"+i).iziModal("getGroup"),s=e||window.event,a=s.target||s.srcElement;void 0===i||!n||void 0===o.name||s.ctrlKey||s.metaKey||s.altKey||"INPUT"===a.tagName.toUpperCase()||"TEXTAREA"==a.tagName.toUpperCase()||(37===s.keyCode?t("#"+i).iziModal("prev",s):39===s.keyCode&&t("#"+i).iziModal("next",s))}}),t.fn[r]=function(e,i){if(!t(this).length&&"object"==typeof e){var n={$el:document.createElement("div"),id:this.selector.split("#"),"class":this.selector.split(".")};if(n.id.length>1){try{n.$el=document.createElement(id[0])}catch(o){}n.$el.id=this.selector.split("#")[1].trim()}else if(n["class"].length>1){try{n.$el=document.createElement(n["class"][0])}catch(o){}for(var s=1;s<n["class"].length;s++)n.$el.classList.add(n["class"][s].trim())}document.body.appendChild(n.$el),this.push(t(this.selector))}for(var a=this,l=0;l<a.length;l++){var d=t(a[l]),h=d.data(r),u=t.extend({},t.fn[r].defaults,d.data(),"object"==typeof e&&e);if(h||e&&"object"!=typeof e){if("string"==typeof e&&"undefined"!=typeof h)return h[e].apply(h,[].concat(i))}else d.data(r,h=new c(d,u));u.autoOpen&&(isNaN(parseInt(u.autoOpen))?u.autoOpen===!0&&h.open():setTimeout(function(){h.open()},u.autoOpen),window.$iziModal.autoOpen++)}return this},t.fn[r].defaults={title:"",subtitle:"",headerColor:"#88A0B9",background:null,theme:"",icon:null,iconText:null,iconColor:"",rtl:!1,width:600,top:null,bottom:null,borderBottom:!0,padding:0,radius:3,zindex:999,iframe:!1,iframeHeight:400,iframeURL:null,focusInput:!0,group:"",loop:!1,arrowKeys:!0,navigateCaption:!0,navigateArrows:!0,history:!1,restoreDefaultContent:!1,autoOpen:0,bodyOverflow:!1,fullscreen:!1,openFullscreen:!1,closeOnEscape:!0,closeButton:!0,appendTo:"body",appendToOverlay:"body",overlay:!0,overlayClose:!0,overlayColor:"rgba(0, 0, 0, 0.4)",timeout:!1,timeoutProgressbar:!1,pauseOnHover:!1,timeoutProgressbarColor:"rgba(255,255,255,0.5)",transitionIn:"comingIn",transitionOut:"comingOut",transitionInOverlay:"fadeIn",transitionOutOverlay:"fadeOut",onFullscreen:function(){},onResize:function(){},onOpening:function(){},onOpened:function(){},onClosing:function(){},onClosed:function(){},afterRender:function(){}},t.fn[r].Constructor=c,t.fn.iziModal});!function(){function e(t,n,i){return t.call.apply(t.bind,arguments)}function o(n,i,t){if(!n)throw Error();if(2<arguments.length){var e=Array.prototype.slice.call(arguments,2);return function(){var t=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(t,e),n.apply(i,t)}}return function(){return n.apply(i,arguments)}}function d(t,n,i){return(d=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?e:o).apply(null,arguments)}var r=Date.now||function(){return+new Date};function n(t,n){this.a=t,this.o=n||t,this.c=this.o.document}var f=!!window.FontFace;function c(t,n,i,e){if(n=t.c.createElement(n),i)for(var o in i)i.hasOwnProperty(o)&&("style"==o?n.style.cssText=i[o]:n.setAttribute(o,i[o]));return e&&n.appendChild(t.c.createTextNode(e)),n}function h(t,n,i){(t=t.c.getElementsByTagName(n)[0])||(t=document.documentElement),t.insertBefore(i,t.lastChild)}function i(t){t.parentNode&&t.parentNode.removeChild(t)}function g(t,n,i){n=n||[],i=i||[];for(var e=t.className.split(/\s+/),o=0;o<n.length;o+=1){for(var a=!1,s=0;s<e.length;s+=1)if(n[o]===e[s]){a=!0;break}a||e.push(n[o])}for(n=[],o=0;o<e.length;o+=1){for(a=!1,s=0;s<i.length;s+=1)if(e[o]===i[s]){a=!0;break}a||n.push(e[o])}t.className=n.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function a(t,n){for(var i=t.className.split(/\s+/),e=0,o=i.length;e<o;e++)if(i[e]==n)return!0;return!1}function l(t,n,i){function e(){s&&o&&(s(a),s=null)}n=c(t,"link",{rel:"stylesheet",href:n,media:"all"});var o=!1,a=null,s=i||null;f?(n.onload=function(){o=!0,e()},n.onerror=function(){o=!0,a=Error("Stylesheet failed to load"),e()}):setTimeout(function(){o=!0,e()},0),h(t,"head",n)}function u(t,n,i,e){var o=t.c.getElementsByTagName("head")[0];if(o){var a=c(t,"script",{src:n}),s=!1;return a.onload=a.onreadystatechange=function(){s||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(s=!0,i&&i(null),a.onload=a.onreadystatechange=null,"HEAD"==a.parentNode.tagName&&o.removeChild(a))},o.appendChild(a),setTimeout(function(){s||(s=!0,i&&i(Error("Script load timeout")))},e||5e3),a}return null}function p(){this.a=0,this.c=null}function v(t){return t.a++,function(){t.a--,s(t)}}function w(t,n){t.c=n,s(t)}function s(t){0==t.a&&t.c&&(t.c(),t.c=null)}function m(t){this.a=t||"-"}function y(t,n){this.c=t,this.f=4,this.a="n";var i=(n||"n4").match(/^([nio])([1-9])$/i);i&&(this.a=i[1],this.f=parseInt(i[2],10))}function b(t){var n=[];t=t.split(/,\s*/);for(var i=0;i<t.length;i++){var e=t[i].replace(/['"]/g,"");-1!=e.indexOf(" ")||/^\d/.test(e)?n.push("'"+e+"'"):n.push(e)}return n.join(",")}function x(t){return t.a+t.f}function j(t){var n="normal";return"o"===t.a?n="oblique":"i"===t.a&&(n="italic"),n}function _(t,n){this.c=t,this.f=t.o.document.documentElement,this.h=n,this.a=new m("-"),this.j=!1!==n.events,this.g=!1!==n.classes}function k(t){if(t.g){var n=a(t.f,t.a.c("wf","active")),i=[],e=[t.a.c("wf","loading")];n||i.push(t.a.c("wf","inactive")),g(t.f,i,e)}T(t,"inactive")}function T(t,n,i){t.j&&t.h[n]&&(i?t.h[n](i.c,x(i)):t.h[n]())}function S(){this.c={}}function C(t,n){this.c=t,this.f=n,this.a=c(this.c,"span",{"aria-hidden":"true"},this.f)}function A(t){h(t.c,"body",t.a)}function N(t){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+b(t.c)+";font-style:"+j(t)+";font-weight:"+t.f+"00;"}function E(t,n,i,e,o,a){this.g=t,this.j=n,this.a=e,this.c=i,this.f=o||3e3,this.h=a||void 0}function W(t,n,i,e,o,a,s){this.v=t,this.B=n,this.c=i,this.a=e,this.s=s||"BESbswy",this.f={},this.w=o||3e3,this.u=a||null,this.m=this.j=this.h=this.g=null,this.g=new C(this.c,this.s),this.h=new C(this.c,this.s),this.j=new C(this.c,this.s),this.m=new C(this.c,this.s),t=N(t=new y(this.a.c+",serif",x(this.a))),this.g.a.style.cssText=t,t=N(t=new y(this.a.c+",sans-serif",x(this.a))),this.h.a.style.cssText=t,t=N(t=new y("serif",x(this.a))),this.j.a.style.cssText=t,t=N(t=new y("sans-serif",x(this.a))),this.m.a.style.cssText=t,A(this.g),A(this.h),A(this.j),A(this.m)}m.prototype.c=function(t){for(var n=[],i=0;i<arguments.length;i++)n.push(arguments[i].replace(/[\W_]+/g,"").toLowerCase());return n.join(this.a)},E.prototype.start=function(){var o=this.c.o.document,a=this,s=r(),t=new Promise(function(i,e){!function n(){var t;r()-s>=a.f?e():o.fonts.load((t=a.a,j(t)+" "+t.f+"00 300px "+b(t.c)),a.h).then(function(t){1<=t.length?i():setTimeout(n,25)},function(){e()})}()}),i=null,n=new Promise(function(t,n){i=setTimeout(n,a.f)});Promise.race([n,t]).then(function(){i&&(clearTimeout(i),i=null),a.g(a.a)},function(){a.j(a.a)})};var F={D:"serif",C:"sans-serif"},I=null;function O(){if(null===I){var t=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);I=!!t&&(parseInt(t[1],10)<536||536===parseInt(t[1],10)&&parseInt(t[2],10)<=11)}return I}function P(t,n,i){for(var e in F)if(F.hasOwnProperty(e)&&n===t.f[F[e]]&&i===t.f[F[e]])return!0;return!1}function B(t){var n,i=t.g.a.offsetWidth,e=t.h.a.offsetWidth;(n=i===t.f.serif&&e===t.f["sans-serif"])||(n=O()&&P(t,i,e)),n?r()-t.A>=t.w?O()&&P(t,i,e)&&(null===t.u||t.u.hasOwnProperty(t.a.c))?L(t,t.v):L(t,t.B):setTimeout(d(function(){B(this)},t),50):L(t,t.v)}function L(t,n){setTimeout(d(function(){i(this.g.a),i(this.h.a),i(this.j.a),i(this.m.a),n(this.a)},t),0)}function D(t,n,i){this.c=t,this.a=n,this.f=0,this.m=this.j=!1,this.s=i}W.prototype.start=function(){this.f.serif=this.j.a.offsetWidth,this.f["sans-serif"]=this.m.a.offsetWidth,this.A=r(),B(this)};var $=null;function q(t){0==--t.f&&t.j&&(t.m?((t=t.a).g&&g(t.f,[t.a.c("wf","active")],[t.a.c("wf","loading"),t.a.c("wf","inactive")]),T(t,"active")):k(t.a))}function t(t){this.j=t,this.a=new S,this.h=0,this.f=this.g=!0}function H(t,n){this.c=t,this.a=n}function M(t,n){this.c=t,this.a=n}function z(t,n){this.c=t||"https://fonts.googleapis.com/css",this.a=[],this.f=[],this.g=n||""}D.prototype.g=function(t){var n=this.a;n.g&&g(n.f,[n.a.c("wf",t.c,x(t).toString(),"active")],[n.a.c("wf",t.c,x(t).toString(),"loading"),n.a.c("wf",t.c,x(t).toString(),"inactive")]),T(n,"fontactive",t),this.m=!0,q(this)},D.prototype.h=function(t){var n=this.a;if(n.g){var i=a(n.f,n.a.c("wf",t.c,x(t).toString(),"active")),e=[],o=[n.a.c("wf",t.c,x(t).toString(),"loading")];i||e.push(n.a.c("wf",t.c,x(t).toString(),"inactive")),g(n.f,e,o)}T(n,"fontinactive",t),q(this)},t.prototype.load=function(t){this.c=new n(this.j,t.context||this.j),this.g=!1!==t.events,this.f=!1!==t.classes,function(o,t,n){var i=[],e=n.timeout;a=t,a.g&&g(a.f,[a.a.c("wf","loading")]),T(a,"loading");var a;var i=function(t,n,i){var e,o=[];for(e in n)if(n.hasOwnProperty(e)){var a=t.c[e];a&&o.push(a(n[e],i))}return o}(o.a,n,o.c),s=new D(o.c,t,e);for(o.h=i.length,t=0,n=i.length;t<n;t++)i[t].load(function(t,n,i){var e,c,h,l,u,p;c=s,h=t,l=n,u=i,p=0==--(e=o).h,(e.f||e.g)&&setTimeout(function(){var t=u||null,n=l||{};if(0===h.length&&p)k(c.a);else{c.f+=h.length,p&&(c.j=p);var i,e=[];for(i=0;i<h.length;i++){var o=h[i],a=n[o.c],s=c.a,r=o;if(s.g&&g(s.f,[s.a.c("wf",r.c,x(r).toString(),"loading")]),T(s,"fontloading",r),(s=null)===$)if(window.FontFace){var r=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent),f=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);$=r?42<parseInt(r[1],10):!f}else $=!1;s=$?new E(d(c.g,c),d(c.h,c),c.c,o,c.s,a):new W(d(c.g,c),d(c.h,c),c.c,o,c.s,t,a),e.push(s)}for(i=0;i<e.length;i++)e[i].start()}},0)})}(this,new _(this.c,t),t)},H.prototype.load=function(s){var n=this,r=n.a.projectId,t=n.a.version;if(r){var f=n.c.o;u(this.c,(n.a.api||"https://fast.fonts.net/jsapi")+"/"+r+".js"+(t?"?v="+t:""),function(t){t?s([]):(f["__MonotypeConfiguration__"+r]=function(){return n.a},function t(){if(f["__mti_fntLst"+r]){var n,i=f["__mti_fntLst"+r](),e=[];if(i)for(var o=0;o<i.length;o++){var a=i[o].fontfamily;null!=i[o].fontStyle&&null!=i[o].fontWeight?(n=i[o].fontStyle+i[o].fontWeight,e.push(new y(a,n))):e.push(new y(a))}s(e)}else setTimeout(function(){t()},50)}())}).id="__MonotypeAPIScript__"+r}else s([])},M.prototype.load=function(t){var n,i,e=this.a.urls||[],o=this.a.families||[],a=this.a.testStrings||{},s=new p;for(n=0,i=e.length;n<i;n++)l(this.c,e[n],v(s));var r=[];for(n=0,i=o.length;n<i;n++)if((e=o[n].split(":"))[1])for(var f=e[1].split(","),c=0;c<f.length;c+=1)r.push(new y(e[0],f[c]));else r.push(new y(e[0]));w(s,function(){t(r,a)})};function G(t){this.f=t,this.a=[],this.c={}}var K={latin:"BESbswy","latin-ext":"çöüğş",cyrillic:"йяЖ",greek:"αβΣ",khmer:"កខគ",Hanuman:"កខគ"},R={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},U={i:"i",italic:"i",n:"n",normal:"n"},V=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;function X(t,n){this.c=t,this.a=n}var J={Arimo:!0,Cousine:!0,Tinos:!0};function Q(t,n){this.c=t,this.a=n}function Y(t,n){this.c=t,this.f=n,this.a=[]}X.prototype.load=function(t){var n=new p,i=this.c,e=new z(this.a.api,this.a.text),o=this.a.families;!function(t,n){for(var i=n.length,e=0;e<i;e++){var o=n[e].split(":");3==o.length&&t.f.push(o.pop());var a="";2==o.length&&""!=o[1]&&(a=":"),t.a.push(o.join(a))}}(e,o);var a=new G(o);!function(t){for(var n=t.f.length,i=0;i<n;i++){var e=t.f[i].split(":"),o=e[0].replace(/\+/g," "),a=["n4"];if(2<=e.length){var s;if(s=[],r=e[1])for(var r,f=(r=r.split(",")).length,c=0;c<f;c++){var h;if((h=r[c]).match(/^[\w-]+$/))if(null==(u=V.exec(h.toLowerCase())))h="";else{if(h=null==(h=u[2])||""==h?"n":U[h],null==(u=u[1])||""==u)u="4";else var l=R[u],u=l||(isNaN(u)?"4":u.substr(0,1));h=[h,u].join("")}else h="";h&&s.push(h)}0<s.length&&(a=s),3==e.length&&(s=[],0<(e=(e=e[2])?e.split(","):s).length&&(e=K[e[0]])&&(t.c[o]=e))}for(t.c[o]||(e=K[o])&&(t.c[o]=e),e=0;e<a.length;e+=1)t.a.push(new y(o,a[e]))}}(a),l(i,function(t){if(0==t.a.length)throw Error("No fonts to load!");if(-1!=t.c.indexOf("kit="))return t.c;for(var n=t.a.length,i=[],e=0;e<n;e++)i.push(t.a[e].replace(/ /g,"+"));return n=t.c+"?family="+i.join("%7C"),0<t.f.length&&(n+="&subset="+t.f.join(",")),0<t.g.length&&(n+="&text="+encodeURIComponent(t.g)),n}(e),v(n)),w(n,function(){t(a.a,a.c,J)})},Q.prototype.load=function(s){var t=this.a.id,r=this.c.o;t?u(this.c,(this.a.api||"https://use.typekit.net")+"/"+t+".js",function(t){if(t)s([]);else if(r.Typekit&&r.Typekit.config&&r.Typekit.config.fn){t=r.Typekit.config.fn;for(var n=[],i=0;i<t.length;i+=2)for(var e=t[i],o=t[i+1],a=0;a<o.length;a++)n.push(new y(e,o[a]));try{r.Typekit.load({events:!1,classes:!1,async:!0})}catch(t){}s(n)}},2e3):s([])},Y.prototype.load=function(c){var t,n=this.f.id,i=this.c.o,h=this;n?(i.__webfontfontdeckmodule__||(i.__webfontfontdeckmodule__={}),i.__webfontfontdeckmodule__[n]=function(t,n){for(var i=0,e=n.fonts.length;i<e;++i){var o=n.fonts[i];h.a.push(new y(o.name,(a="font-weight:"+o.weight+";font-style:"+o.style,f=r=s=void 0,s=4,r="n",f=null,a&&((f=a.match(/(normal|oblique|italic)/i))&&f[1]&&(r=f[1].substr(0,1).toLowerCase()),(f=a.match(/([1-9]00|normal|bold)/i))&&f[1]&&(/bold/i.test(f[1])?s=7:/[1-9]00/.test(f[1])&&(s=parseInt(f[1].substr(0,1),10)))),r+s)))}var a,s,r,f;c(h.a)},u(this.c,(this.f.api||"https://f.fontdeck.com/s/css/js/")+((t=this.c).o.location.hostname||t.a.location.hostname)+"/"+n+".js",function(t){t&&c([])})):c([])};var Z=new t(window);Z.a.c.custom=function(t,n){return new M(n,t)},Z.a.c.fontdeck=function(t,n){return new Y(n,t)},Z.a.c.monotype=function(t,n){return new H(n,t)},Z.a.c.typekit=function(t,n){return new Q(n,t)},Z.a.c.google=function(t,n){return new X(n,t)};var tt={load:d(Z.load,Z)};"function"==typeof define&&define.amd?define(function(){return tt}):"undefined"!=typeof module&&module.exports?module.exports=tt:(window.WebFont=tt,window.WebFontConfig&&Z.load(window.WebFontConfig))}();!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Babel=t():e.Babel=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}(function(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))switch(typeof e[t]){case"function":break;case"object":e[t]=function(t){var r=t.slice(1),n=e[t[0]];return function(e,t,i){n.apply(this,[e,t,i].concat(r))}}(e[t]);break;default:e[t]=e[e[t]]}return e}([function(e,t,r){"use strict";function n(e,t){return g(t)&&"string"==typeof t[0]?e.hasOwnProperty(t[0])?[e[t[0]]].concat(t.slice(1)):void 0:"string"==typeof t?e[t]:t}function i(e){var t=(e.presets||[]).map(function(e){var t=n(E,e);if(!t)throw new Error('Invalid preset specified in Babel options: "'+e+'"');return g(t)&&"object"===h(t[0])&&t[0].hasOwnProperty("buildPreset")&&(t[0]=d({},t[0],{buildPreset:t[0].buildPreset})),t}),r=(e.plugins||[]).map(function(e){var t=n(b,e);if(!t)throw new Error('Invalid plugin specified in Babel options: "'+e+'"');return t});return d({babelrc:!1},e,{presets:t,plugins:r})}function s(e,t){return y.transform(e,i(t))}function a(e,t,r){return y.transformFromAst(e,t,i(r))}function o(e,t){b.hasOwnProperty(e)&&console.warn('A plugin named "'+e+'" is already registered, it will be overridden'),b[e]=t}function u(e){Object.keys(e).forEach(function(t){return o(t,e[t])})}function l(e,t){E.hasOwnProperty(e)&&console.warn('A preset named "'+e+'" is already registered, it will be overridden'),E[e]=t}function c(e){Object.keys(e).forEach(function(t){return l(t,e[t])})}function f(e){(0,v.runScripts)(s,e)}function p(){window.removeEventListener("DOMContentLoaded",f)}Object.defineProperty(t,"__esModule",{value:!0}),t.version=t.buildExternalHelpers=t.availablePresets=t.availablePlugins=void 0;var d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.transform=s,t.transformFromAst=a,t.registerPlugin=o,t.registerPlugins=u,t.registerPreset=l,t.registerPresets=c,t.transformScriptTags=f,t.disableScriptTags=p;var m=r(290),y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(m),v=r(629),g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},b=t.availablePlugins={},E=t.availablePresets={};t.buildExternalHelpers=y.buildExternalHelpers;u({"check-es2015-constants":r(66),"external-helpers":r(322),"inline-replace-variables":r(323),"syntax-async-functions":r(67),"syntax-async-generators":r(195),"syntax-class-constructor-call":r(196),"syntax-class-properties":r(197),"syntax-decorators":r(125),"syntax-do-expressions":r(198),"syntax-exponentiation-operator":r(199),"syntax-export-extensions":r(200),"syntax-flow":r(126),"syntax-function-bind":r(201),"syntax-function-sent":r(325),"syntax-jsx":r(127),"syntax-object-rest-spread":r(202),"syntax-trailing-function-commas":r(128),"transform-async-functions":r(326),"transform-async-to-generator":r(129),"transform-async-to-module-method":r(328),"transform-class-constructor-call":r(203),"transform-class-properties":r(204),"transform-decorators":r(205),"transform-decorators-legacy":r(329).default,"transform-do-expressions":r(206),"transform-es2015-arrow-functions":r(68),"transform-es2015-block-scoped-functions":r(69),"transform-es2015-block-scoping":r(70),"transform-es2015-classes":r(71),"transform-es2015-computed-properties":r(72),"transform-es2015-destructuring":r(73),"transform-es2015-duplicate-keys":r(130),"transform-es2015-for-of":r(74),"transform-es2015-function-name":r(75),"transform-es2015-instanceof":r(332),"transform-es2015-literals":r(76),"transform-es2015-modules-amd":r(131),"transform-es2015-modules-commonjs":r(77),"transform-es2015-modules-systemjs":r(208),"transform-es2015-modules-umd":r(209),"transform-es2015-object-super":r(78),"transform-es2015-parameters":r(79),"transform-es2015-shorthand-properties":r(80),"transform-es2015-spread":r(81),"transform-es2015-sticky-regex":r(82),"transform-es2015-template-literals":r(83),"transform-es2015-typeof-symbol":r(84),"transform-es2015-unicode-regex":r(85),"transform-es3-member-expression-literals":r(336),"transform-es3-property-literals":r(337),"transform-es5-property-mutators":r(338),"transform-eval":r(339),"transform-exponentiation-operator":r(132),"transform-export-extensions":r(210),"transform-flow-comments":r(340),"transform-flow-strip-types":r(211),"transform-function-bind":r(212),"transform-jscript":r(341),"transform-object-assign":r(342),"transform-object-rest-spread":r(213),"transform-object-set-prototype-of-to-assign":r(343),"transform-proto-to-assign":r(344),"transform-react-constant-elements":r(345),"transform-react-display-name":r(214),"transform-react-inline-elements":r(346),"transform-react-jsx":r(215),"transform-react-jsx-compat":r(347),"transform-react-jsx-self":r(349),"transform-react-jsx-source":r(350),"transform-regenerator":r(86),"transform-runtime":r(353),"transform-strict-mode":r(216),"undeclared-variables-check":r(354)}),c({es2015:r(217),es2016:r(218),es2017:r(219),latest:r(356),react:r(357),"stage-0":r(358),"stage-1":r(220),"stage-2":r(221),"stage-3":r(222),"es2015-no-commonjs":{plugins:[r(83),r(76),r(75),r(68),r(69),r(71),r(78),r(80),r(72),r(74),r(82),r(85),r(66),r(81),r(79),r(73),r(70),r(84),[r(86),{async:!1,asyncGenerators:!1}]]},"es2015-loose":{plugins:[[r(83),{loose:!0}],r(76),r(75),r(68),r(69),[r(71),{loose:!0}],r(78),r(80),r(130),[r(72),{loose:!0}],[r(74),{loose:!0}],r(82),r(85),r(66),[r(81),{loose:!0}],r(79),[r(73),{loose:!0}],r(70),r(84),[r(77),{loose:!0}],[r(86),{async:!1,asyncGenerators:!1}]]}});t.version="6.26.0";"undefined"!=typeof window&&window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",function(){return f()},!1)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=z["is"+e];t||(t=z["is"+e]=function(t,r){return z.is(e,t,r)}),z["assert"+e]=function(r,n){if(n=n||{},!t(r,n))throw new Error("Expected type "+(0,I.default)(e)+" with option "+(0,I.default)(n))}}function s(e,t,r){return!!t&&(!!a(t.type,e)&&(void 0===r||z.shallowEqual(t,r)))}function a(e,t){if(e===t)return!0;if(z.ALIAS_KEYS[t])return!1;var r=z.FLIPPED_ALIAS_KEYS[t];if(r){if(r[0]===e)return!0;for(var n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}if(e===a)return!0}}return!1}function o(e,t,r){if(e){var n=z.NODE_FIELDS[e.type];if(n){var i=n[t];i&&i.validate&&(i.optional&&null==r||i.validate(e,t,r))}}}function u(e,t){for(var r=(0,B.default)(t),n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if(e[o]!==t[o])return!1}return!0}function l(e,t,r){return e.object=z.memberExpression(e.object,e.property,e.computed),e.property=t,e.computed=!!r,e}function c(e,t){return e.object=z.memberExpression(t,e.object),e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body";return e[t]=z.toBlock(e[t],e)}function p(e){if(!e)return e;var t={};for(var r in e)"_"!==r[0]&&(t[r]=e[r]);return t}function d(e){var t=p(e);return delete t.loc,t}function h(e){if(!e)return e;var t={};for(var r in e)if("_"!==r[0]){var n=e[r];n&&(n.type?n=z.cloneDeep(n):Array.isArray(n)&&(n=n.map(z.cloneDeep))),t[r]=n}return t}function m(e,t){var r=e.split(".");return function(e){if(!z.isMemberExpression(e))return!1;for(var n=[e],i=0;n.length;){var s=n.shift();if(t&&i===r.length)return!0;if(z.isIdentifier(s)){if(r[i]!==s.name)return!1}else{if(!z.isStringLiteral(s)){if(z.isMemberExpression(s)){if(s.computed&&!z.isStringLiteral(s.property))return!1;n.push(s.object),n.push(s.property);continue}return!1}if(r[i]!==s.value)return!1}if(++i>r.length)return!1}return!0}}function y(e){for(var t=z.COMMENT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,T.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}delete e[i]}return e}function v(e,t){return g(e,t),b(e,t),E(e,t),e}function g(e,t){x("trailingComments",e,t)}function b(e,t){x("leadingComments",e,t)}function E(e,t){x("innerComments",e,t)}function x(e,t,r){t&&r&&(t[e]=(0,K.default)([].concat(t[e],r[e]).filter(Boolean)))}function A(e,t){if(!e||!t)return e;for(var r=z.INHERIT_KEYS.optional,n=Array.isArray(r),i=0,r=n?r:(0,T.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;null==e[a]&&(e[a]=t[a])}for(var o in t)"_"===o[0]&&(e[o]=t[o]);for(var u=z.INHERIT_KEYS.force,l=Array.isArray(u),c=0,u=l?u:(0,T.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;e[p]=t[p]}return z.inheritsComments(e,t),e}function S(e){if(!_(e))throw new TypeError("Not a valid node "+(e&&e.type))}function _(e){return!(!e||!H.VISITOR_KEYS[e.type])}function D(e,t,r){if(e){var n=z.VISITOR_KEYS[e.type];if(n){r=r||{},t(e,r);for(var i=n,s=Array.isArray(i),a=0,i=s?i:(0,T.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o,l=e[u];if(Array.isArray(l))for(var c=l,f=Array.isArray(c),p=0,c=f?c:(0,T.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;D(h,t,r)}else D(l,t,r)}}}}function C(e,t){t=t||{};for(var r=t.preserveComments?Z:ee,n=r,i=Array.isArray(n),s=0,n=i?n:(0,T.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;null!=e[o]&&(e[o]=void 0)}for(var u in e)"_"===u[0]&&null!=e[u]&&(e[u]=void 0);for(var l=(0,k.default)(e),c=l,f=Array.isArray(c),p=0,c=f?c:(0,T.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}e[d]=null}}function w(e,t){return D(e,C,t),e}t.__esModule=!0,t.createTypeAnnotationBasedOnTypeof=t.removeTypeDuplicates=t.createUnionTypeAnnotation=t.valueToNode=t.toBlock=t.toExpression=t.toStatement=t.toBindingIdentifierName=t.toIdentifier=t.toKeyAlias=t.toSequenceExpression=t.toComputedKey=t.isNodesEquivalent=t.isImmutable=t.isScope=t.isSpecifierDefault=t.isVar=t.isBlockScoped=t.isLet=t.isValidIdentifier=t.isReferenced=t.isBinding=t.getOuterBindingIdentifiers=t.getBindingIdentifiers=t.TYPES=t.react=t.DEPRECATED_KEYS=t.BUILDER_KEYS=t.NODE_FIELDS=t.ALIAS_KEYS=t.VISITOR_KEYS=t.NOT_LOCAL_BINDING=t.BLOCK_SCOPED_SYMBOL=t.INHERIT_KEYS=t.UNARY_OPERATORS=t.STRING_UNARY_OPERATORS=t.NUMBER_UNARY_OPERATORS=t.BOOLEAN_UNARY_OPERATORS=t.BINARY_OPERATORS=t.NUMBER_BINARY_OPERATORS=t.BOOLEAN_BINARY_OPERATORS=t.COMPARISON_BINARY_OPERATORS=t.EQUALITY_BINARY_OPERATORS=t.BOOLEAN_NUMBER_BINARY_OPERATORS=t.UPDATE_OPERATORS=t.LOGICAL_OPERATORS=t.COMMENT_KEYS=t.FOR_INIT_KEYS=t.FLATTENABLE_KEYS=t.STATEMENT_OR_BLOCK_KEYS=void 0;var P=r(360),k=n(P),F=r(2),T=n(F),O=r(14),B=n(O),R=r(35),I=n(R),M=r(135);Object.defineProperty(t,"STATEMENT_OR_BLOCK_KEYS",{enumerable:!0,get:function(){return M.STATEMENT_OR_BLOCK_KEYS}}),Object.defineProperty(t,"FLATTENABLE_KEYS",{enumerable:!0,get:function(){return M.FLATTENABLE_KEYS}}),Object.defineProperty(t,"FOR_INIT_KEYS",{enumerable:!0,get:function(){return M.FOR_INIT_KEYS}}),Object.defineProperty(t,"COMMENT_KEYS",{enumerable:!0,get:function(){return M.COMMENT_KEYS}}),Object.defineProperty(t,"LOGICAL_OPERATORS",{enumerable:!0,get:function(){return M.LOGICAL_OPERATORS}}),Object.defineProperty(t,"UPDATE_OPERATORS",{enumerable:!0,get:function(){return M.UPDATE_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_NUMBER_BINARY_OPERATORS}}),Object.defineProperty(t,"EQUALITY_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.EQUALITY_BINARY_OPERATORS}}),Object.defineProperty(t,"COMPARISON_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.COMPARISON_BINARY_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_BINARY_OPERATORS}}),Object.defineProperty(t,"NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return M.NUMBER_BINARY_OPERATORS}}),Object.defineProperty(t,"BINARY_OPERATORS",{enumerable:!0,get:function(){return M.BINARY_OPERATORS}}),Object.defineProperty(t,"BOOLEAN_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.BOOLEAN_UNARY_OPERATORS}}),Object.defineProperty(t,"NUMBER_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.NUMBER_UNARY_OPERATORS}}),Object.defineProperty(t,"STRING_UNARY_OPERATORS",{enumerable:!0,get:function(){return M.STRING_UNARY_OPERATORS}}),Object.defineProperty(t,"UNARY_OPERATORS",{enumerable:!0,get:function(){return M.UNARY_OPERATORS}}),Object.defineProperty(t,"INHERIT_KEYS",{enumerable:!0,get:function(){return M.INHERIT_KEYS}}),Object.defineProperty(t,"BLOCK_SCOPED_SYMBOL",{enumerable:!0,get:function(){return M.BLOCK_SCOPED_SYMBOL}}),Object.defineProperty(t,"NOT_LOCAL_BINDING",{enumerable:!0,get:function(){return M.NOT_LOCAL_BINDING}}),t.is=s,t.isType=a,t.validate=o,t.shallowEqual=u,t.appendToMemberExpression=l,t.prependToMemberExpression=c,t.ensureBlock=f,t.clone=p,t.cloneWithoutLoc=d,t.cloneDeep=h,t.buildMatchMemberExpression=m,t.removeComments=y,t.inheritsComments=v,t.inheritTrailingComments=g,t.inheritLeadingComments=b,t.inheritInnerComments=E,t.inherits=A,t.assertNode=S,t.isNode=_,t.traverseFast=D,t.removeProperties=C,t.removePropertiesDeep=w;var N=r(226);Object.defineProperty(t,"getBindingIdentifiers",{enumerable:!0,get:function(){return N.getBindingIdentifiers}}),Object.defineProperty(t,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return N.getOuterBindingIdentifiers}});var L=r(395);Object.defineProperty(t,"isBinding",{enumerable:!0,get:function(){return L.isBinding}}),Object.defineProperty(t,"isReferenced",{enumerable:!0,get:function(){return L.isReferenced}}),Object.defineProperty(t,"isValidIdentifier",{enumerable:!0,get:function(){return L.isValidIdentifier}}),Object.defineProperty(t,"isLet",{enumerable:!0,get:function(){return L.isLet}}),Object.defineProperty(t,"isBlockScoped",{enumerable:!0,get:function(){return L.isBlockScoped}}),Object.defineProperty(t,"isVar",{enumerable:!0,get:function(){return L.isVar}}),Object.defineProperty(t,"isSpecifierDefault",{enumerable:!0,get:function(){return L.isSpecifierDefault}}),Object.defineProperty(t,"isScope",{enumerable:!0,get:function(){return L.isScope}}),Object.defineProperty(t,"isImmutable",{enumerable:!0,get:function(){return L.isImmutable}}),Object.defineProperty(t,"isNodesEquivalent",{enumerable:!0,get:function(){return L.isNodesEquivalent}});var j=r(385);Object.defineProperty(t,"toComputedKey",{enumerable:!0,get:function(){return j.toComputedKey}}),Object.defineProperty(t,"toSequenceExpression",{enumerable:!0,get:function(){return j.toSequenceExpression}}),Object.defineProperty(t,"toKeyAlias",{enumerable:!0,get:function(){return j.toKeyAlias}}),Object.defineProperty(t,"toIdentifier",{enumerable:!0,get:function(){return j.toIdentifier}}),Object.defineProperty(t,"toBindingIdentifierName",{enumerable:!0,get:function(){return j.toBindingIdentifierName}}),Object.defineProperty(t,"toStatement",{enumerable:!0,get:function(){return j.toStatement}}),Object.defineProperty(t,"toExpression",{enumerable:!0,get:function(){return j.toExpression}}),Object.defineProperty(t,"toBlock",{enumerable:!0,get:function(){return j.toBlock}}),Object.defineProperty(t,"valueToNode",{enumerable:!0,get:function(){return j.valueToNode}});var U=r(393);Object.defineProperty(t,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return U.createUnionTypeAnnotation}}),Object.defineProperty(t,"removeTypeDuplicates",{enumerable:!0,get:function(){return U.removeTypeDuplicates}}),Object.defineProperty(t,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return U.createTypeAnnotationBasedOnTypeof}});var V=r(624),G=n(V),W=r(109),Y=n(W),q=r(600),K=n(q);r(390);var H=r(26),J=r(394),X=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(J),z=t;t.VISITOR_KEYS=H.VISITOR_KEYS,t.ALIAS_KEYS=H.ALIAS_KEYS,t.NODE_FIELDS=H.NODE_FIELDS,t.BUILDER_KEYS=H.BUILDER_KEYS,t.DEPRECATED_KEYS=H.DEPRECATED_KEYS,t.react=X;for(var $ in z.VISITOR_KEYS)i($);z.FLIPPED_ALIAS_KEYS={},(0,B.default)(z.ALIAS_KEYS).forEach(function(e){z.ALIAS_KEYS[e].forEach(function(t){(z.FLIPPED_ALIAS_KEYS[t]=z.FLIPPED_ALIAS_KEYS[t]||[]).push(e)})}),(0,B.default)(z.FLIPPED_ALIAS_KEYS).forEach(function(e){z[e.toUpperCase()+"_TYPES"]=z.FLIPPED_ALIAS_KEYS[e],i(e)});t.TYPES=(0,B.default)(z.VISITOR_KEYS).concat((0,B.default)(z.FLIPPED_ALIAS_KEYS)).concat((0,B.default)(z.DEPRECATED_KEYS));(0,B.default)(z.BUILDER_KEYS).forEach(function(e){function t(){if(arguments.length>r.length)throw new Error("t."+e+": Too many arguments passed. Received "+arguments.length+" but can receive no more than "+r.length);var t={};t.type=e;for(var n=0,i=r,s=Array.isArray(i),a=0,i=s?i:(0,T.default)(i);;){var u;if(s){if(a>=i.length)break;u=i[a++]}else{if(a=i.next(),a.done)break;u=a.value}var l=u,c=z.NODE_FIELDS[e][l],f=arguments[n++];void 0===f&&(f=(0,Y.default)(c.default)),t[l]=f}for(var p in t)o(t,p,t[p]);return t}var r=z.BUILDER_KEYS[e];z[e]=t,z[e[0].toLowerCase()+e.slice(1)]=t});for(var Q in z.DEPRECATED_KEYS)!function(e){function t(t){return function(){return console.trace("The node type "+e+" has been renamed to "+r),t.apply(this,arguments)}}var r=z.DEPRECATED_KEYS[e];z[e]=z[e[0].toLowerCase()+e.slice(1)]=t(z[r]),z["is"+e]=t(z["is"+r]),z["assert"+e]=t(z["assert"+r])}(Q);(0,G.default)(z),(0,G.default)(z.VISITOR_KEYS);var Z=["tokens","start","end","loc","raw","rawValue"],ee=z.COMMENT_KEYS.concat(["comments"]).concat(Z)},function(e,t,r){"use strict";e.exports={default:r(404),__esModule:!0}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){e=(0,l.default)(e);var r=e,n=r.program;return t.length&&(0,m.default)(e,A,null,t),n.body.length>1?n.body:n.body[0]}t.__esModule=!0;var a=r(10),o=i(a);t.default=function(e,t){var r=void 0;try{throw new Error}catch(e){e.stack&&(r=e.stack.split("\n").slice(1).join("\n"))}t=(0,f.default)({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,preserveComments:!1},t);var n=function(){var i=void 0;try{i=v.parse(e,t),i=m.default.removeProperties(i,{preserveComments:t.preserveComments}),m.default.cheap(i,function(e){e[E]=!0})}catch(e){throw e.stack=e.stack+"from\n"+r,e}return n=function(){return i},i};return function(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return s(n(),t)}};var u=r(574),l=i(u),c=r(174),f=i(c),p=r(274),d=i(p),h=r(7),m=i(h),y=r(89),v=n(y),g=r(1),b=n(g),E="_fromTemplate",x=(0,o.default)(),A={noScope:!0,enter:function(e,t){var r=e.node;if(r[x])return e.skip();b.isExpressionStatement(r)&&(r=r.expression);var n=void 0;if(b.isIdentifier(r)&&r[E])if((0,d.default)(t[0],r.name))n=t[0][r.name];else if("$"===r.name[0]){var i=+r.name.slice(1);t[i]&&(n=t[i])}null===n&&e.remove(),n&&(n[x]=!0,e.replaceInline(n))},exit:function(e){var t=e.node;t.loc||m.default.clearNode(t)}};e.exports=t.default},function(e,t){"use strict";var r=e.exports={version:"2.5.0"};"number"==typeof __e&&(__e=r)},function(e,t){"use strict";var r=Array.isArray;e.exports=r},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r,n,i){if(e){if(t||(t={}),!t.noScope&&!r&&"Program"!==e.type&&"File"!==e.type)throw new Error(v.get("traverseNeedsParent",e.type));m.explode(t),s.node(e,t,r,n,i)}}function a(e,t){e.node.type===t.type&&(t.has=!0,e.stop())}t.__esModule=!0,t.visitors=t.Hub=t.Scope=t.NodePath=void 0;var o=r(2),u=i(o),l=r(36);Object.defineProperty(t,"NodePath",{enumerable:!0,get:function(){return i(l).default}});var c=r(134);Object.defineProperty(t,"Scope",{enumerable:!0,get:function(){return i(c).default}});var f=r(223);Object.defineProperty(t,"Hub",{enumerable:!0,get:function(){return i(f).default}}),t.default=s;var p=r(367),d=i(p),h=r(384),m=n(h),y=r(20),v=n(y),g=r(111),b=i(g),E=r(1),x=n(E),A=r(88),S=n(A);t.visitors=m,s.visitors=m,s.verify=m.verify,s.explode=m.explode,s.NodePath=r(36),s.Scope=r(134),s.Hub=r(223),s.cheap=function(e,t){return x.traverseFast(e,t)},s.node=function(e,t,r,n,i,s){var a=x.VISITOR_KEYS[e.type];if(a)for(var o=new d.default(r,t,n,i),l=a,c=Array.isArray(l),f=0,l=c?l:(0,u.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var h=p;if((!s||!s[h])&&o.visit(e,h))return}},s.clearNode=function(e,t){x.removeProperties(e,t),S.path.delete(e)},s.removeProperties=function(e,t){return x.traverseFast(e,s.clearNode,t),e},s.hasType=function(e,t,r,n){if((0,b.default)(n,e.type))return!1;if(e.type===r)return!0;var i={has:!1,type:r};return s(e,{blacklist:n,enter:a},t,i),i.has},s.clearCache=function(){S.clear()},s.clearCache.clearPath=S.clearPath,s.clearCache.clearScope=S.clearScope,s.copyCache=function(e,t){S.path.has(e)&&S.path.set(t,S.path.get(e))}},function(e,t){"use strict";function r(){throw new Error("setTimeout has not been defined")}function n(){throw new Error("clearTimeout has not been defined")}function i(e){if(c===setTimeout)return setTimeout(e,0);if((c===r||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function s(e){if(f===clearTimeout)return clearTimeout(e);if((f===n||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function a(){m&&d&&(m=!1,d.length?h=d.concat(h):y=-1,h.length&&o())}function o(){if(!m){var e=i(a);m=!0;for(var t=h.length;t;){for(d=h,h=[];++y<t;)d&&d[y].run();y=-1,t=h.length}d=null,m=!1,s(e)}}function u(e,t){this.fun=e,this.array=t}function l(){}var c,f,p=e.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:r}catch(e){c=r}try{f="function"==typeof clearTimeout?clearTimeout:n}catch(e){f=n}}();var d,h=[],m=!1,y=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];h.push(new u(e,t)),1!==h.length||m||i(o)},u.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=l,p.addListener=l,p.once=l,p.off=l,p.removeListener=l,p.removeAllListeners=l,p.emit=l,p.prependListener=l,p.prependOnceListener=l,p.listeners=function(e){return[]},p.binding=function(e){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(e){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},function(e,t,r){"use strict";e.exports={default:r(409),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(414),__esModule:!0}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.__esModule=!0;var s=r(363),a=n(s),o=r(10),u=n(o),l="function"==typeof u.default&&"symbol"===i(a.default)?function(e){return void 0===e?"undefined":i(e)}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":void 0===e?"undefined":i(e)};t.default="function"==typeof u.default&&"symbol"===l(a.default)?function(e){return void 0===e?"undefined":l(e)}:function(e){return e&&"function"==typeof u.default&&e.constructor===u.default&&e!==u.default.prototype?"symbol":void 0===e?"undefined":l(e)}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(43),a=r(29),o=function e(t,r,o){var u,l,c,f=t&e.F,p=t&e.G,d=t&e.S,h=t&e.P,m=t&e.B,y=t&e.W,v=p?i:i[r]||(i[r]={}),g=v.prototype,b=p?n:d?n[r]:(n[r]||{}).prototype;p&&(o=r);for(u in o)(l=!f&&b&&void 0!==b[u])&&u in v||(c=l?b[u]:o[u],v[u]=p&&"function"!=typeof b[u]?o[u]:m&&l?s(c,n):y&&b[u]==c?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(c):h&&"function"==typeof c?s(Function.call,c):c,h&&((v.virtual||(v.virtual={}))[u]=c,t&e.R&&g&&!g[u]&&a(g,u,c)))};o.F=1,o.G=2,o.S=4,o.P=8,o.B=16,o.W=32,o.U=64,o.R=128,e.exports=o},function(e,t,r){"use strict";var n=r(151)("wks"),i=r(95),s=r(15).Symbol,a="function"==typeof s;(e.exports=function(e){return n[e]||(n[e]=a&&s[e]||(a?s:i)("Symbol."+e))}).store=n},function(e,t,r){"use strict";e.exports={default:r(411),__esModule:!0}},function(e,t){"use strict";var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function(e){return"object"===(void 0===e?"undefined":r(e))?null!==e:"function"==typeof e}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(261),s="object"==("undefined"==typeof self?"undefined":n(self))&&self&&self.Object===Object&&self,a=i||s||Function("return this")();e.exports=a},function(e,t){"use strict";function r(e){var t=void 0===e?"undefined":n(e);return null!=e&&("object"==t||"function"==t)}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){(function(e){"use strict";function r(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};t.resolve=function(){for(var t="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a=s>=0?arguments[s]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(t=a+"/"+t,i="/"===a.charAt(0))}return t=r(n(t.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+t||"."},t.normalize=function(e){var i=t.isAbsolute(e),s="/"===a(e,-1);return e=r(n(e.split("/"),function(e){return!!e}),!i).join("/"),e||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(n(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},t.relative=function(e,r){function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=t.resolve(e).substr(1),r=t.resolve(r).substr(1);for(var i=n(e.split("/")),s=n(r.split("/")),a=Math.min(i.length,s.length),o=a,u=0;u<a;u++)if(i[u]!==s[u]){o=u;break}for(var l=[],u=o;u<i.length;u++)l.push("..");return l=l.concat(s.slice(o)),l.join("/")},t.sep="/",t.delimiter=":",t.dirname=function(e){var t=s(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},t.basename=function(e,t){var r=s(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},t.extname=function(e){return s(e)[3]};var a="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)}}).call(t,r(8))},function(e,t,r){"use strict";function n(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var s=l[e];if(!s)throw new ReferenceError("Unknown message "+(0,a.default)(e));return r=i(r),s.replace(/\$(\d+)/g,function(e,t){return r[t-1]})}function i(e){return e.map(function(e){if(null!=e&&e.inspect)return e.inspect();try{return(0,a.default)(e)||e+""}catch(t){return u.inspect(e)}})}t.__esModule=!0,t.MESSAGES=void 0;var s=r(35),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.get=n,t.parseArgs=i;var o=r(117),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o),l=t.MESSAGES={tailCallReassignmentDeopt:"Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence",classesIllegalBareSuper:"Illegal use of bare super",classesIllegalSuperCall:"Direct super call is illegal in non-constructor, use super.$1() instead",scopeDuplicateDeclaration:"Duplicate declaration $1",settersNoRest:"Setters aren't allowed to have a rest",noAssignmentsInForHead:"No assignments allowed in for-in/of head",expectedMemberExpressionOrIdentifier:"Expected type MemberExpression or Identifier",invalidParentForThisNode:"We don't know how to handle this node within the current parent - please open an issue",readOnly:"$1 is read-only",unknownForHead:"Unknown node type $1 in ForStatement",didYouMean:"Did you mean $1?",codeGeneratorDeopt:"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.",missingTemplatesDirectory:"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues",unsupportedOutputType:"Unsupported output type $1",illegalMethodName:"Illegal method name $1",lostTrackNodePath:"We lost track of this node's position, likely because the AST was directly manipulated",modulesIllegalExportName:"Illegal export $1",modulesDuplicateDeclarations:"Duplicate module declarations with the same source but in different scopes",undeclaredVariable:"Reference to undeclared variable $1",undeclaredVariableType:"Referencing a type alias outside of a type annotation",undeclaredVariableSuggestion:"Reference to undeclared variable $1 - did you mean $2?",traverseNeedsParent:"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.",traverseVerifyRootFunction:"You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?",traverseVerifyVisitorProperty:"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2",traverseVerifyNodeType:"You gave us a visitor for the node type $1 but it's not a valid type",pluginNotObject:"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3",pluginNotFunction:"Plugin $2 specified in $1 was expected to return a function but returned $3",
pluginUnknown:"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4",pluginInvalidProperty:"Plugin $2 specified in $1 provided an invalid property of $3"}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t,r){"use strict";e.exports=!r(27)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,r){"use strict";var n=r(21),i=r(231),s=r(154),a=Object.defineProperty;t.f=r(22)?Object.defineProperty:function(e,t,r){if(n(e),t=s(t,!0),n(r),i)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},function(e,t,r){"use strict";function n(e){return null!=e&&s(e.length)&&!i(e)}var i=r(175),s=r(176);e.exports=n},function(e,t){"use strict";function r(e){return null!=e&&"object"==(void 0===e?"undefined":n(e))}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return Array.isArray(e)?"array":null===e?"null":void 0===e?"undefined":void 0===e?"undefined":(0,v.default)(e)}function s(e){function t(t,r,n){if(Array.isArray(n))for(var i=0;i<n.length;i++)e(t,r+"["+i+"]",n[i])}return t.each=e,t}function a(){function e(e,t,n){if(r.indexOf(n)<0)throw new TypeError("Property "+t+" expected value to be one of "+(0,m.default)(r)+" but got "+(0,m.default)(n))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOf=r,e}function o(){function e(e,t,n){for(var i=!1,s=r,a=Array.isArray(s),o=0,s=a?s:(0,d.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(b.is(l,n)){i=!0;break}}if(!i)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,m.default)(r)+" but instead got "+(0,m.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOfNodeTypes=r,e}function u(){function e(e,t,n){for(var s=!1,a=r,o=Array.isArray(a),u=0,a=o?a:(0,d.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(i(n)===c||b.is(c,n)){s=!0;break}}if(!s)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,m.default)(r)+" but instead got "+(0,m.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOfNodeOrValueTypes=r,e}function l(e){function t(t,r,n){if(i(n)!==e)throw new TypeError("Property "+r+" expected type of "+e+" but got "+i(n))}return t.type=e,t}function c(){function e(){for(var e=r,t=Array.isArray(e),n=0,e=t?e:(0,d.default)(e);;){var i;if(t){if(n>=e.length)break;i=e[n++]}else{if(n=e.next(),n.done)break;i=n.value}i.apply(void 0,arguments)}}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.chainOf=r,e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.inherits&&D[t.inherits]||{};t.fields=t.fields||r.fields||{},t.visitor=t.visitor||r.visitor||[],t.aliases=t.aliases||r.aliases||[],t.builder=t.builder||r.builder||t.visitor||[],t.deprecatedAlias&&(_[t.deprecatedAlias]=e);for(var n=t.visitor.concat(t.builder),s=Array.isArray(n),a=0,n=s?n:(0,d.default)(n);;){var o;if(s){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;t.fields[u]=t.fields[u]||{}}for(var c in t.fields){var f=t.fields[c];-1===t.builder.indexOf(c)&&(f.optional=!0),void 0===f.default?f.default=null:f.validate||(f.validate=l(i(f.default)))}E[e]=t.visitor,S[e]=t.builder,A[e]=t.fields,x[e]=t.aliases,D[e]=t}t.__esModule=!0,t.DEPRECATED_KEYS=t.BUILDER_KEYS=t.NODE_FIELDS=t.ALIAS_KEYS=t.VISITOR_KEYS=void 0;var p=r(2),d=n(p),h=r(35),m=n(h),y=r(11),v=n(y);t.assertEach=s,t.assertOneOf=a,t.assertNodeType=o,t.assertNodeOrValueType=u,t.assertValueType=l,t.chain=c,t.default=f;var g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E=t.VISITOR_KEYS={},x=t.ALIAS_KEYS={},A=t.NODE_FIELDS={},S=t.BUILDER_KEYS={},_=t.DEPRECATED_KEYS={},D={}},function(e,t){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){"use strict";var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){"use strict";var n=r(23),i=r(92);e.exports=r(22)?function(e,t,r){return n.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){"use strict";function n(e){return null==e?void 0===e?u:o:l&&l in Object(e)?s(e):a(e)}var i=r(45),s=r(534),a=r(559),o="[object Null]",u="[object Undefined]",l=i?i.toStringTag:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var a=!r;r||(r={});for(var o=-1,u=t.length;++o<u;){var l=t[o],c=n?n(r[l],e[l],l,r,e):void 0;void 0===c&&(c=e[l]),a?s(r,l,c):i(r,l,c)}return r}var i=r(162),s=r(163);e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)?i(e):s(e)}var i=r(245),s=r(500),a=r(24);e.exports=n},function(e,t){"use strict";e.exports={filename:{type:"filename",description:"filename to use when reading from stdin - this will be used in source-maps, errors etc",default:"unknown",shorthand:"f"},filenameRelative:{hidden:!0,type:"string"},inputSourceMap:{hidden:!0},env:{hidden:!0,default:{}},mode:{description:"",hidden:!0},retainLines:{type:"boolean",default:!1,description:"retain line numbers - will result in really ugly code"},highlightCode:{description:"enable/disable ANSI syntax highlighting of code frames (on by default)",type:"boolean",default:!0},suppressDeprecationMessages:{type:"boolean",default:!1,hidden:!0},presets:{type:"list",description:"",default:[]},plugins:{type:"list",default:[],description:""},ignore:{type:"list",description:"list of glob paths to **not** compile",default:[]},only:{type:"list",description:"list of glob paths to **only** compile"},code:{hidden:!0,default:!0,type:"boolean"},metadata:{hidden:!0,default:!0,type:"boolean"},ast:{hidden:!0,default:!0,type:"boolean"},extends:{type:"string",hidden:!0},comments:{type:"boolean",default:!0,description:"write comments to generated output (true by default)"},shouldPrintComment:{hidden:!0,description:"optional callback to control whether a comment should be inserted, when this is used the comments option is ignored"},wrapPluginVisitorMethod:{hidden:!0,description:"optional callback to wrap all visitor methods"},compact:{type:"booleanString",default:"auto",description:"do not include superfluous whitespace characters and line terminators [true|false|auto]"},minified:{type:"boolean",default:!1,description:"save as much bytes when printing [true|false]"},sourceMap:{alias:"sourceMaps",hidden:!0},sourceMaps:{type:"booleanString",description:"[true|false|inline]",default:!1,shorthand:"s"},sourceMapTarget:{type:"string",description:"set `file` on returned source map"},sourceFileName:{type:"string",description:"set `sources[0]` on returned source map"},sourceRoot:{type:"filename",description:"the root from which all sources are relative"},babelrc:{description:"Whether or not to look up .babelrc and .babelignore files",type:"boolean",default:!0},sourceType:{description:"",default:"module"},auxiliaryCommentBefore:{type:"string",description:"print a comment before any injected non-user code"},auxiliaryCommentAfter:{type:"string",description:"print a comment after any injected non-user code"},resolveModuleSource:{hidden:!0},getModuleId:{hidden:!0},moduleRoot:{type:"filename",description:"optional prefix for the AMD module formatter that will be prepend to the filename on module definitions"},moduleIds:{type:"boolean",default:!1,shorthand:"M",description:"insert an explicit id for modules"},moduleId:{description:"specify a custom name for module ids",type:"string"},passPerPreset:{description:"Whether to spawn a traversal pass per a preset. By default all presets are merged.",type:"boolean",default:!1,hidden:!0},parserOpts:{description:"Options to pass into the parser, or to change parsers (parserOpts.parser)",default:!1},generatorOpts:{description:"Options to pass into the generator, or to change generators (generatorOpts.generator)",default:!1}}},function(e,t,r){(function(n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var a=r(366),o=s(a),u=r(35),l=s(u),c=r(87),f=s(c),p=r(2),d=s(p),h=r(11),m=s(h),y=r(3),v=s(y),g=r(182),b=i(g),E=r(65),x=s(E),A=r(20),S=i(A),_=r(52),D=r(184),C=s(D),w=r(185),P=s(w),k=r(575),F=s(k),T=r(109),O=s(T),B=r(293),R=s(B),I=r(33),M=s(I),N=r(54),L=s(N),j=r(51),U=s(j),V=r(19),G=s(V),W=function(){function e(t){(0,v.default)(this,e),this.resolvedConfigs=[],this.options=e.createBareOptions(),this.log=t}return e.memoisePluginContainer=function(t,r,n,i){for(var s=e.memoisedPlugins,a=Array.isArray(s),o=0,s=a?s:(0,d.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(l.container===t)return l.plugin}var c=void 0;if(c="function"==typeof t?t(b):t,"object"===(void 0===c?"undefined":(0,m.default)(c))){var f=new x.default(c,i);return e.memoisedPlugins.push({container:t,plugin:f}),f}throw new TypeError(S.get("pluginNotObject",r,n,void 0===c?"undefined":(0,m.default)(c))+r+n)},e.createBareOptions=function(){var e={};for(var t in M.default){var r=M.default[t];e[t]=(0,O.default)(r.default)}return e},e.normalisePlugin=function(t,r,n,i){if(!((t=t.__esModule?t.default:t)instanceof x.default)){if("function"!=typeof t&&"object"!==(void 0===t?"undefined":(0,m.default)(t)))throw new TypeError(S.get("pluginNotFunction",r,n,void 0===t?"undefined":(0,m.default)(t)));t=e.memoisePluginContainer(t,r,n,i)}return t.init(r,n),t},e.normalisePlugins=function(t,n,i){return i.map(function(i,s){var a=void 0,o=void 0;if(!i)throw new TypeError("Falsy value found in plugins");Array.isArray(i)?(a=i[0],o=i[1]):a=i;var u="string"==typeof a?a:t+"$"+s;if("string"==typeof a){var l=(0,C.default)(a,n);if(!l)throw new ReferenceError(S.get("pluginUnknown",a,t,s,n));a=r(179)(l)}return a=e.normalisePlugin(a,t,s,u),[a,o]})},e.prototype.mergeOptions=function(t){var r=this,i=t.options,s=t.extending,a=t.alias,o=t.loc,u=t.dirname;if(a=a||"foreign",i){("object"!==(void 0===i?"undefined":(0,m.default)(i))||Array.isArray(i))&&this.log.error("Invalid options type for "+a,TypeError);var l=(0,F.default)(i,function(e){if(e instanceof x.default)return e});u=u||n.cwd(),o=o||a;for(var c in l){if(!M.default[c]&&this.log)if(L.default[c])this.log.error("Using removed Babel 5 option: "+a+"."+c+" - "+L.default[c].message,ReferenceError);else{var p="Unknown option: "+a+"."+c+". Check out http://babeljs.io/docs/usage/options/ for more information about options.";this.log.error(p+"\n\nA common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:\n\nInvalid:\n  `{ presets: [{option: value}] }`\nValid:\n  `{ presets: [['presetName', {option: value}]] }`\n\nFor more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options.",ReferenceError)}}(0,_.normaliseOptions)(l),l.plugins&&(l.plugins=e.normalisePlugins(o,u,l.plugins)),l.presets&&(l.passPerPreset?l.presets=this.resolvePresets(l.presets,u,function(e,t){r.mergeOptions({options:e,extending:e,alias:t,loc:t,dirname:u})}):(this.mergePresets(l.presets,u),delete l.presets)),i===s?(0,f.default)(s,l):(0,R.default)(s||this.options,l)}},e.prototype.mergePresets=function(e,t){var r=this;this.resolvePresets(e,t,function(e,t){r.mergeOptions({options:e,alias:t,loc:t,dirname:G.default.dirname(t||"")})})},e.prototype.resolvePresets=function(e,t,n){return e.map(function(e){var i=void 0;if(Array.isArray(e)){if(e.length>2)throw new Error("Unexpected extra options "+(0,l.default)(e.slice(2))+" passed to preset.");var s=e;e=s[0],i=s[1]}var a=void 0;try{if("string"==typeof e){if(!(a=(0,P.default)(e,t)))throw new Error("Couldn't find preset "+(0,l.default)(e)+" relative to directory "+(0,l.default)(t));e=r(179)(a)}if("object"===(void 0===e?"undefined":(0,m.default)(e))&&e.__esModule)if(e.default)e=e.default;else{var u=e,c=(u.__esModule,(0,o.default)(u,["__esModule"]));e=c}if("object"===(void 0===e?"undefined":(0,m.default)(e))&&e.buildPreset&&(e=e.buildPreset),"function"!=typeof e&&void 0!==i)throw new Error("Options "+(0,l.default)(i)+" passed to "+(a||"a preset")+" which does not accept options.");if("function"==typeof e&&(e=e(b,i,{dirname:t})),"object"!==(void 0===e?"undefined":(0,m.default)(e)))throw new Error("Unsupported preset format: "+e+".");n&&n(e,a)}catch(e){throw a&&(e.message+=" (While processing preset: "+(0,l.default)(a)+")"),e}return e})},e.prototype.normaliseOptions=function(){var e=this.options;for(var t in M.default){var r=M.default[t],n=e[t];!n&&r.optional||(r.alias?e[r.alias]=e[r.alias]||n:e[t]=n)}},e.prototype.init=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,U.default)(e,this.log),r=Array.isArray(t),n=0,t=r?t:(0,d.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this.mergeOptions(s)}return this.normaliseOptions(e),this.options},e}();t.default=W,W.memoisedPlugins=[],e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";e.exports={default:r(405),__esModule:!0}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(2),a=i(s),o=r(3),u=i(o),l=r(224),c=n(l),f=r(239),p=i(f),d=r(466),h=i(d),m=r(7),y=i(m),v=r(174),g=i(v),b=r(134),E=i(b),x=r(1),A=n(x),S=r(88),_=(0,p.default)("babel"),D=function(){function e(t,r){(0,u.default)(this,e),this.parent=r,this.hub=t,this.contexts=[],this.data={},this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.state=null,this.opts=null,this.skipKeys=null,this.parentPath=null,this.context=null,this.container=null,this.listKey=null,this.inList=!1,this.parentKey=null,this.key=null,this.node=null,this.scope=null,this.type=null,this.typeAnnotation=null}return e.get=function(t){var r=t.hub,n=t.parentPath,i=t.parent,s=t.container,a=t.listKey,o=t.key;!r&&n&&(r=n.hub),(0,h.default)(i,"To get a node path the parent needs to exist");var u=s[o],l=S.path.get(i)||[];S.path.has(i)||S.path.set(i,l);for(var c=void 0,f=0;f<l.length;f++){var p=l[f];if(p.node===u){c=p;break}}return c||(c=new e(r,i),l.push(c)),c.setup(n,s,a,o),c},e.prototype.getScope=function(e){var t=e;return this.isScope()&&(t=new E.default(this,e)),t},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e,t){var r=this.data[e];return!r&&t&&(r=this.data[e]=t),r},e.prototype.buildCodeFrameError=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:SyntaxError;return this.hub.file.buildCodeFrameError(this.node,e,t)},e.prototype.traverse=function(e,t){(0,y.default)(this.node,e,this.scope,t,this)},e.prototype.mark=function(e,t){this.hub.file.metadata.marked.push({type:e,message:t,loc:this.node.loc})},e.prototype.set=function(e,t){A.validate(this.node,e,t),this.node[e]=t},e.prototype.getPathLocation=function(){var e=[],t=this;do{var r=t.key;t.inList&&(r=t.listKey+"["+r+"]"),e.unshift(r)}while(t=t.parentPath);return e.join(".")},e.prototype.debug=function(e){_.enabled&&_(this.getPathLocation()+" "+this.type+": "+e())},e}();t.default=D,(0,g.default)(D.prototype,r(368)),(0,g.default)(D.prototype,r(374)),(0,g.default)(D.prototype,r(382)),(0,g.default)(D.prototype,r(372)),(0,g.default)(D.prototype,r(371)),(0,g.default)(D.prototype,r(377)),(0,g.default)(D.prototype,r(370)),(0,g.default)(D.prototype,r(381)),(0,g.default)(D.prototype,r(380)),(0,g.default)(D.prototype,r(373)),(0,g.default)(D.prototype,r(369));for(var C=A.TYPES,w=Array.isArray(C),P=0,C=w?C:(0,a.default)(C);;){var k;if("break"===function(){if(w){if(P>=C.length)return"break";k=C[P++]}else{if(P=C.next(),P.done)return"break";k=P.value}var e=k,t="is"+e;D.prototype[t]=function(e){return A[t](this.node,e)},D.prototype["assert"+e]=function(r){if(!this[t](r))throw new TypeError("Expected node path of type "+e)}}())break}for(var F in c){(function(e){if("_"===e[0])return"continue";A.TYPES.indexOf(e)<0&&A.TYPES.push(e);var t=c[e];D.prototype["is"+e]=function(e){return t.checkPath(this,e)}})(F)}e.exports=t.default},function(e,t,r){"use strict";var n=r(142),i=r(140);e.exports=function(e){return n(i(e))}},function(e,t,r){"use strict";function n(e,t){var r=s(e,t);return i(r)?r:void 0}var i=r(497),s=r(535);e.exports=n},function(e,t){"use strict";e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r,n){if(e.selfReference){if(!n.hasBinding(r.name)||n.hasGlobal(r.name)){if(!f.isFunction(t))return;var i=p;t.generator&&(i=d);var s=i({FUNCTION:t,FUNCTION_ID:r,FUNCTION_KEY:n.generateUidIdentifier(r.name)}).expression;s.callee._skipModulesRemap=!0;for(var a=s.callee.body.body[0].params,u=0,l=(0,o.default)(t);u<l;u++)a.push(n.generateUidIdentifier("x"));return s}n.rename(r.name)}t.id=r,n.getProgramParent().references[r.name]=!0}function s(e,t,r){var n={selfAssignment:!1,selfReference:!1,outerDeclar:r.getBindingIdentifier(t),references:[],name:t},i=r.getOwnBinding(t);return i?"param"===i.kind&&(n.selfReference=!0):(n.outerDeclar||r.hasGlobal(t))&&r.traverse(e,h,n),n}t.__esModule=!0,t.default=function(e){var t=e.node,r=e.parent,n=e.scope,a=e.id;if(!t.id){if(!f.isObjectProperty(r)&&!f.isObjectMethod(r,{kind:"method"})||r.computed&&!f.isLiteral(r.key)){if(f.isVariableDeclarator(r)){if(a=r.id,f.isIdentifier(a)){var o=n.parent.getBinding(a.name);if(o&&o.constant&&n.getBinding(a.name)===o)return t.id=a,void(t.id[f.NOT_LOCAL_BINDING]=!0)}}else if(f.isAssignmentExpression(r))a=r.left;else if(!a)return}else a=r.key;var u=void 0;if(a&&f.isLiteral(a))u=a.value;else{if(!a||!f.isIdentifier(a))return;u=a.name}u=f.toBindingIdentifierName(u),a=f.identifier(u),a[f.NOT_LOCAL_BINDING]=!0;return i(s(t,u,n),t,a,n)||t}};var a=r(189),o=n(a),u=r(4),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=(0,l.default)("\n  (function (FUNCTION_KEY) {\n    function FUNCTION_ID() {\n      return FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    }\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"),d=(0,l.default)("\n  (function (FUNCTION_KEY) {\n    function* FUNCTION_ID() {\n      return yield* FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    };\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n"),h={"ReferencedIdentifier|BindingIdentifier":function(e,t){if(e.node.name===t.name){e.scope.getBindingIdentifier(t.name)===t.outerDeclar&&(t.selfReference=!0,e.stop())}}};e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(361),s=n(i),a=r(9),o=n(a),u=r(11),l=n(u);t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,l.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(s.default?(0,s.default)(e,t):e.__proto__=t)}},function(e,t,r){"use strict";t.__esModule=!0;var n=r(11),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":(0,i.default)(t))&&"function"!=typeof t?e:t}},function(e,t,r){"use strict";var n=r(227);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,r){"use strict";var n=r(237),i=r(141);e.exports=Object.keys||function(e){return n(e,i)}},function(e,t,r){"use strict";var n=r(17),i=n.Symbol;e.exports=i},function(e,t){"use strict";function r(e,t){return e===t||e!==e&&t!==t}e.exports=r},function(e,t,r){"use strict";function n(e){return a(e)?i(e,!0):s(e)}var i=r(245),s=r(501),a=r(24);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(e),r=t%1;return t===t?r?t-r:t:0}var i=r(597);e.exports=n},function(e,t){(function(t){e.exports=t}).call(t,{})},function(e,t,r){(function(e){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.File=void 0;var s=r(2),a=i(s),o=r(9),u=i(o),l=r(87),c=i(l),f=r(3),p=i(f),d=r(42),h=i(d),m=r(41),y=i(m),v=r(194),g=i(v),b=r(121),E=n(b),x=r(403),A=i(x),S=r(34),_=i(S),D=r(299),C=i(D),w=r(7),P=i(w),k=r(288),F=i(k),T=r(186),O=i(T),B=r(181),R=i(B),I=r(273),M=i(I),N=r(120),L=i(N),j=r(119),U=i(j),V=r(89),G=r(122),W=n(G),Y=r(19),q=i(Y),K=r(1),H=n(K),J=r(118),X=i(J),z=r(296),$=i(z),Q=r(297),Z=i(Q),ee=/^#!.*/,te=[[$.default],[Z.default]],re={enter:function(e,t){var r=e.node.loc;r&&(t.loc=r,e.stop())}},ne=function(t){function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=arguments[1];(0,p.default)(this,n);var i=(0,h.default)(this,t.call(this));return i.pipeline=r,i.log=new L.default(i,e.filename||"unknown"),i.opts=i.initOptions(e),i.parserOpts={sourceType:i.opts.sourceType,sourceFileName:i.opts.filename,plugins:[]},i.pluginVisitors=[],i.pluginPasses=[],i.buildPluginsForOptions(i.opts),i.opts.passPerPreset&&(i.perPresetOpts=[],i.opts.presets.forEach(function(e){var t=(0,c.default)((0,u.default)(i.opts),e);i.perPresetOpts.push(t),i.buildPluginsForOptions(t)})),i.metadata={usedHelpers:[],marked:[],modules:{imports:[],exports:{exported:[],specifiers:[]}}},i.dynamicImportTypes={},i.dynamicImportIds={},i.dynamicImports=[],i.declarations={},i.usedHelpers={},i.path=null,i.ast={},i.code="",i.shebang="",i.hub=new w.Hub(i),i}return(0,y.default)(n,t),n.prototype.getMetadata=function(){for(var e=!1,t=this.ast.program.body,r=Array.isArray(t),n=0,t=r?t:(0,a.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(H.isModuleDeclaration(s)){e=!0;break}}e&&this.path.traverse(E,this)},n.prototype.initOptions=function(e){e=new _.default(this.log,this.pipeline).init(e),e.inputSourceMap&&(e.sourceMaps=!0),e.moduleId&&(e.moduleIds=!0),e.basename=q.default.basename(e.filename,q.default.extname(e.filename)),e.ignore=W.arrayify(e.ignore,W.regexify),e.only&&(e.only=W.arrayify(e.only,W.regexify)),(0,M.default)(e,{moduleRoot:e.sourceRoot}),(0,M.default)(e,{sourceRoot:e.moduleRoot}),(0,M.default)(e,{filenameRelative:e.filename});var t=q.default.basename(e.filenameRelative);return(0,M.default)(e,{sourceFileName:t,sourceMapTarget:t}),e},n.prototype.buildPluginsForOptions=function(e){if(Array.isArray(e.plugins)){for(var t=e.plugins.concat(te),r=[],n=[],i=t,s=Array.isArray(i),o=0,i=s?i:(0,a.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u,c=l[0],f=l[1];r.push(c.visitor),n.push(new C.default(this,c,f)),c.manipulateOptions&&c.manipulateOptions(e,this.parserOpts,this)}this.pluginVisitors.push(r),this.pluginPasses.push(n)}},n.prototype.getModuleName=function(){var e=this.opts;if(!e.moduleIds)return null;if(null!=e.moduleId&&!e.getModuleId)return e.moduleId;var t=e.filenameRelative,r="";if(null!=e.moduleRoot&&(r=e.moduleRoot+"/"),!e.filenameRelative)return r+e.filename.replace(/^\//,"");if(null!=e.sourceRoot){var n=new RegExp("^"+e.sourceRoot+"/?");t=t.replace(n,"")}return t=t.replace(/\.(\w*?)$/,""),r+=t,r=r.replace(/\\/g,"/"),e.getModuleId?e.getModuleId(r)||r:r},n.prototype.resolveModuleSource=function(e){var t=this.opts.resolveModuleSource;return t&&(e=t(e,this.opts.filename)),e},n.prototype.addImport=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,n=e+":"+t,i=this.dynamicImportIds[n];if(!i){e=this.resolveModuleSource(e),i=this.dynamicImportIds[n]=this.scope.generateUidIdentifier(r);var s=[];"*"===t?s.push(H.importNamespaceSpecifier(i)):"default"===t?s.push(H.importDefaultSpecifier(i)):s.push(H.importSpecifier(i,H.identifier(t)));var a=H.importDeclaration(s,H.stringLiteral(e));a._blockHoist=3,this.path.unshiftContainer("body",a)}return i},n.prototype.addHelper=function(e){var t=this.declarations[e];if(t)return t;this.usedHelpers[e]||(this.metadata.usedHelpers.push(e),this.usedHelpers[e]=!0);var r=this.get("helperGenerator"),n=this.get("helpersNamespace");if(r){var i=r(e);if(i)return i}else if(n)return H.memberExpression(n,H.identifier(e));var s=(0,g.default)(e),a=this.declarations[e]=this.scope.generateUidIdentifier(e);return H.isFunctionExpression(s)&&!s.id?(s.body._compact=!0,s._generated=!0,s.id=a,s.type="FunctionDeclaration",this.path.unshiftContainer("body",s)):(s._compact=!0,this.scope.push({id:a,init:s,unique:!0})),a},n.prototype.addTemplateObject=function(e,t,r){var n=r.elements.map(function(e){return e.value}),i=e+"_"+r.elements.length+"_"+n.join(","),s=this.declarations[i];if(s)return s;var a=this.declarations[i]=this.scope.generateUidIdentifier("templateObject"),o=this.addHelper(e),u=H.callExpression(o,[t,r]);return u._compact=!0,this.scope.push({id:a,init:u,_blockHoist:1.9}),a},n.prototype.buildCodeFrameError=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:SyntaxError,n=e&&(e.loc||e._loc),i=new r(t);return n?i.loc=n.start:((0,P.default)(e,re,this.scope,i),i.message+=" (This is an error on an internal node. Probably an internal error",i.loc&&(i.message+=". Location has been estimated."),i.message+=")"),i},n.prototype.mergeSourceMap=function(e){var t=this.opts.inputSourceMap;if(t){var r=new F.default.SourceMapConsumer(t),n=new F.default.SourceMapConsumer(e),i=new F.default.SourceMapGenerator({file:r.file,sourceRoot:r.sourceRoot}),s=n.sources[0];r.eachMapping(function(e){var t=n.generatedPositionFor({line:e.generatedLine,column:e.generatedColumn,source:s});null!=t.column&&i.addMapping({source:e.source,original:null==e.source?null:{line:e.originalLine,column:e.originalColumn},generated:t})});var a=i.toJSON();return t.mappings=a.mappings,t}return e},n.prototype.parse=function(t){var n=V.parse,i=this.opts.parserOpts;if(i&&(i=(0,c.default)({},this.parserOpts,i),i.parser)){if("string"==typeof i.parser){var s=q.default.dirname(this.opts.filename)||e.cwd(),a=(0,X.default)(i.parser,s);if(!a)throw new Error("Couldn't find parser "+i.parser+' with "parse" method relative to directory '+s);n=r(178)(a).parse}else n=i.parser;i.parser={parse:function(e){return(0,V.parse)(e,i)}}}this.log.debug("Parse start");var o=n(t,i||this.parserOpts);return this.log.debug("Parse stop"),o},n.prototype._addAst=function(e){this.path=w.NodePath.get({hub:this.hub,parentPath:null,parent:e,container:e,key:"program"}).setContext(),this.scope=this.path.scope,this.ast=e,this.getMetadata()},n.prototype.addAst=function(e){this.log.debug("Start set AST"),this._addAst(e),this.log.debug("End set AST")},n.prototype.transform=function(){for(var e=0;e<this.pluginPasses.length;e++){var t=this.pluginPasses[e];this.call("pre",t),this.log.debug("Start transform traverse");var r=P.default.visitors.merge(this.pluginVisitors[e],t,this.opts.wrapPluginVisitorMethod);(0,P.default)(this.ast,r,this.scope),this.log.debug("End transform traverse"),this.call("post",t)}return this.generate()},n.prototype.wrap=function(t,r){t+="";try{return this.shouldIgnore()?this.makeResult({code:t,ignored:!0}):r()}catch(r){if(r._babel)throw r;r._babel=!0;var n=r.message=this.opts.filename+": "+r.message,i=r.loc;if(i&&(r.codeFrame=(0,R.default)(t,i.line,i.column+1,this.opts),n+="\n"+r.codeFrame),e.browser&&(r.message=n),r.stack){var s=r.stack.replace(r.message,n);r.stack=s}throw r}},n.prototype.addCode=function(e){e=(e||"")+"",e=this.parseInputSourceMap(e),this.code=e},n.prototype.parseCode=function(){this.parseShebang();var e=this.parse(this.code);this.addAst(e)},n.prototype.shouldIgnore=function(){var e=this.opts;return W.shouldIgnore(e.filename,e.ignore,e.only)},n.prototype.call=function(e,t){for(var r=t,n=Array.isArray(r),i=0,r=n?r:(0,a.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var o=s,u=o.plugin,l=u[e];l&&l.call(o,this)}},n.prototype.parseInputSourceMap=function(e){var t=this.opts;if(!1!==t.inputSourceMap){var r=A.default.fromSource(e);r&&(t.inputSourceMap=r.toObject(),e=A.default.removeComments(e))}return e},n.prototype.parseShebang=function(){var e=ee.exec(this.code);e&&(this.shebang=e[0],this.code=this.code.replace(ee,""))},n.prototype.makeResult=function(e){var t=e.code,r=e.map,n=e.ast,i=e.ignored,s={metadata:null,options:this.opts,ignored:!!i,code:null,ast:null,map:r||null};return this.opts.code&&(s.code=t),this.opts.ast&&(s.ast=n),this.opts.metadata&&(s.metadata=this.metadata),s},n.prototype.generate=function(){var t=this.opts,n=this.ast,i={ast:n};if(!t.code)return this.makeResult(i);var s=O.default;if(t.generatorOpts.generator&&"string"==typeof(s=t.generatorOpts.generator)){var a=q.default.dirname(this.opts.filename)||e.cwd(),o=(0,X.default)(s,a);if(!o)throw new Error("Couldn't find generator "+s+' with "print" method relative to directory '+a);s=r(178)(o).print}this.log.debug("Generation start");var u=s(n,t.generatorOpts?(0,c.default)(t,t.generatorOpts):t,this.code);return i.code=u.code,i.map=u.map,this.log.debug("Generation end"),this.shebang&&(i.code=this.shebang+"\n"+i.code),i.map&&(i.map=this.mergeSourceMap(i.map)),"inline"!==t.sourceMaps&&"both"!==t.sourceMaps||(i.code+="\n"+A.default.fromObject(i.map).toComment()),"inline"===t.sourceMaps&&(i.map=null),this.makeResult(i)},n}(U.default);t.default=ne,t.File=ne}).call(t,r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=x[e];return null==t?x[e]=E.default.existsSync(e):t}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],r=e.filename,n=new S(t);return!1!==e.babelrc&&n.findConfigs(r),n.mergeConfig({options:e,alias:"base",dirname:r&&g.default.dirname(r)}),n.configs}t.__esModule=!0;var o=r(87),u=i(o),l=r(3),c=i(l);t.default=a;var f=r(118),p=i(f),d=r(470),h=i(d),m=r(604),y=i(m),v=r(19),g=i(v),b=r(115),E=i(b),x={},A={},S=function(){function e(t){(0,c.default)(this,e),this.resolvedConfigs=[],this.configs=[],this.log=t}return e.prototype.findConfigs=function(e){if(e){(0,y.default)(e)||(e=g.default.join(n.cwd(),e));for(var t=!1,r=!1;e!==(e=g.default.dirname(e));){if(!t){var i=g.default.join(e,".babelrc");s(i)&&(this.addConfig(i),t=!0);var a=g.default.join(e,"package.json");!t&&s(a)&&(t=this.addConfig(a,"babel",JSON))}if(!r){var o=g.default.join(e,".babelignore");s(o)&&(this.addIgnoreConfig(o),r=!0)}if(r&&t)return}}},e.prototype.addIgnoreConfig=function(e){var t=E.default.readFileSync(e,"utf8"),r=t.split("\n");r=r.map(function(e){return e.replace(/#(.*?)$/,"").trim()}).filter(function(e){return!!e}),r.length&&this.mergeConfig({options:{ignore:r},alias:e,dirname:g.default.dirname(e)})},e.prototype.addConfig=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.default;if(this.resolvedConfigs.indexOf(e)>=0)return!1
;this.resolvedConfigs.push(e);var n=E.default.readFileSync(e,"utf8"),i=void 0;try{i=A[n]=A[n]||r.parse(n),t&&(i=i[t])}catch(t){throw t.message=e+": Error while parsing JSON - "+t.message,t}return this.mergeConfig({options:i,alias:e,dirname:g.default.dirname(e)}),!!i},e.prototype.mergeConfig=function(e){var t=e.options,r=e.alias,i=e.loc,s=e.dirname;if(!t)return!1;if(t=(0,u.default)({},t),s=s||n.cwd(),i=i||r,t.extends){var a=(0,p.default)(t.extends,s);a?this.addConfig(a):this.log&&this.log.error("Couldn't resolve extends clause of "+t.extends+" in "+r),delete t.extends}this.configs.push({options:t,alias:r,loc:i,dirname:s});var o=void 0,l=n.env.BABEL_ENV||"production"||"development";t.env&&(o=t.env[l],delete t.env),this.mergeConfig({options:o,alias:r+".env."+l,dirname:s})},e}();e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e){var r=e[t];if(null!=r){var n=o.default[t];if(n&&n.alias&&(n=o.default[n.alias]),n){var i=s[n.type];i&&(r=i(r)),e[t]=r}}}return e}t.__esModule=!0,t.config=void 0,t.normaliseOptions=n;var i=r(53),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(i),a=r(33),o=function(e){return e&&e.__esModule?e:{default:e}}(a);t.config=o.default},function(e,t,r){"use strict";function n(e){return!!e}function i(e){return l.booleanify(e)}function s(e){return l.list(e)}t.__esModule=!0,t.filename=void 0,t.boolean=n,t.booleanString=i,t.list=s;var a=r(284),o=function(e){return e&&e.__esModule?e:{default:e}}(a),u=r(122),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.filename=o.default},function(e,t){"use strict";e.exports={auxiliaryComment:{message:"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"},blacklist:{message:"Put the specific transforms you want in the `plugins` option"},breakConfig:{message:"This is not a necessary option in Babel 6"},experimental:{message:"Put the specific transforms you want in the `plugins` option"},externalHelpers:{message:"Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"},extra:{message:""},jsxPragma:{message:"use the `pragma` option in the `react-jsx` plugin . Check out http://babeljs.io/docs/plugins/transform-react-jsx/"},loose:{message:"Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."},metadataUsedHelpers:{message:"Not required anymore as this is enabled by default"},modules:{message:"Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"},nonStandard:{message:"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"},optional:{message:"Put the specific transforms you want in the `plugins` option"},sourceMapName:{message:"Use the `sourceMapTarget` option"},stage:{message:"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"},whitelist:{message:"Put the specific transforms you want in the `plugins` option"}}},function(e,t,r){"use strict";var n=r(43),i=r(428),s=r(427),a=r(21),o=r(153),u=r(238),l={},c={},f=e.exports=function(e,t,r,f,p){var d,h,m,y,v=p?function(){return e}:u(e),g=n(r,f,t?2:1),b=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(s(v)){for(d=o(e.length);d>b;b++)if((y=t?g(a(h=e[b])[0],h[1]):g(e[b]))===l||y===c)return y}else for(m=v.call(e);!(h=m.next()).done;)if((y=i(m,g,h.value,t))===l||y===c)return y};f.BREAK=l,f.RETURN=c},function(e,t){"use strict";e.exports={}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(95)("meta"),s=r(16),a=r(28),o=r(23).f,u=0,l=Object.isExtensible||function(){return!0},c=!r(27)(function(){return l(Object.preventExtensions({}))}),f=function(e){o(e,i,{value:{i:"O"+ ++u,w:{}}})},p=function(e,t){if(!s(e))return"symbol"==(void 0===e?"undefined":n(e))?e:("string"==typeof e?"S":"P")+e;if(!a(e,i)){if(!l(e))return"F";if(!t)return"E";f(e)}return e[i].i},d=function(e,t){if(!a(e,i)){if(!l(e))return!0;if(!t)return!1;f(e)}return e[i].w},h=function(e){return c&&m.NEED&&l(e)&&!a(e,i)&&f(e),e},m=e.exports={KEY:i,NEED:!1,fastKey:p,getWeak:d,onFreeze:h}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e,t){if(!n(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,r){"use strict";r(440);for(var n=r(15),i=r(29),s=r(56),a=r(13)("toStringTag"),o="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<o.length;u++){var l=o[u],c=n[l],f=c&&c.prototype;f&&!f[a]&&i(f,a,l),s[l]=s.Array}},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}e.exports=r},function(e,t,r){"use strict";function n(e){return"function"==typeof e?e:null==e?o:"object"==(void 0===e?"undefined":i(e))?u(e)?a(e[0],e[1]):s(e):l(e)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(502),a=r(503),o=r(110),u=r(6),l=r(592);e.exports=n},function(e,t,r){"use strict";function n(e){return"symbol"==(void 0===e?"undefined":i(e))||a(e)&&s(e)==o}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(30),a=r(25),o="[object Symbol]";e.exports=n},function(e,t){"use strict";function r(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}function n(e){var t=e.match(y);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function s(e){var r=e,s=n(e);if(s){if(!s.path)return e;r=s.path}for(var a,o=t.isAbsolute(r),u=r.split(/\/+/),l=0,c=u.length-1;c>=0;c--)a=u[c],"."===a?u.splice(c,1):".."===a?l++:l>0&&(""===a?(u.splice(c+1,l),l=0):(u.splice(c,2),l--));return r=u.join("/"),""===r&&(r=o?"/":"."),s?(s.path=r,i(s)):r}function a(e,t){""===e&&(e="."),""===t&&(t=".");var r=n(t),a=n(e);if(a&&(e=a.path||"/"),r&&!r.scheme)return a&&(r.scheme=a.scheme),i(r);if(r||t.match(v))return t;if(a&&!a.host&&!a.path)return a.host=t,i(a);var o="/"===t.charAt(0)?t:s(e.replace(/\/+$/,"")+"/"+t);return a?(a.path=o,i(a)):o}function o(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if(e=e.slice(0,n),e.match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)}function u(e){return e}function l(e){return f(e)?"$"+e:e}function c(e){return f(e)?e.slice(1):e}function f(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function p(e,t,r){var n=e.source-t.source;return 0!==n?n:0!==(n=e.originalLine-t.originalLine)?n:0!==(n=e.originalColumn-t.originalColumn)||r?n:0!==(n=e.generatedColumn-t.generatedColumn)?n:(n=e.generatedLine-t.generatedLine,0!==n?n:e.name-t.name)}function d(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!==(n=e.generatedColumn-t.generatedColumn)||r?n:0!==(n=e.source-t.source)?n:0!==(n=e.originalLine-t.originalLine)?n:(n=e.originalColumn-t.originalColumn,0!==n?n:e.name-t.name)}function h(e,t){return e===t?0:e>t?1:-1}function m(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!==(r=e.generatedColumn-t.generatedColumn)?r:0!==(r=h(e.source,t.source))?r:0!==(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,0!==r?r:h(e.name,t.name))}t.getArg=r;var y=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,v=/^data:.+\,.+$/;t.urlParse=n,t.urlGenerate=i,t.normalize=s,t.join=a,t.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(y)},t.relative=o;var g=function(){return!("__proto__"in Object.create(null))}();t.toSetString=g?u:l,t.fromSetString=g?u:c,t.compareByOriginalPositions=p,t.compareByGeneratedPositionsDeflated=d,t.compareByGeneratedPositionsInflated=m},function(e,t,r){(function(t){"use strict";function n(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i<s;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}function i(e){return t.Buffer&&"function"==typeof t.Buffer.isBuffer?t.Buffer.isBuffer(e):!(null==e||!e._isBuffer)}function s(e){return Object.prototype.toString.call(e)}function a(e){return!i(e)&&("function"==typeof t.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function o(e){if(x.isFunction(e)){if(_)return e.name;var t=e.toString(),r=t.match(C);return r&&r[1]}}function u(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function l(e){if(_||!x.isFunction(e))return x.inspect(e);var t=o(e);return"[Function"+(t?": "+t:"")+"]"}function c(e){return u(l(e.actual),128)+" "+e.operator+" "+u(l(e.expected),128)}function f(e,t,r,n,i){throw new D.AssertionError({message:r,actual:e,expected:t,operator:n,stackStartFunction:i})}function p(e,t){e||f(e,!0,t,"==",D.ok)}function d(e,t,r,o){if(e===t)return!0;if(i(e)&&i(t))return 0===n(e,t);if(x.isDate(e)&&x.isDate(t))return e.getTime()===t.getTime();if(x.isRegExp(e)&&x.isRegExp(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"===(void 0===e?"undefined":E(e))||null!==t&&"object"===(void 0===t?"undefined":E(t))){if(a(e)&&a(t)&&s(e)===s(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===n(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(i(e)!==i(t))return!1;o=o||{actual:[],expected:[]};var u=o.actual.indexOf(e);return-1!==u&&u===o.expected.indexOf(t)||(o.actual.push(e),o.expected.push(t),m(e,t,r,o))}return r?e===t:e==t}function h(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function m(e,t,r,n){if(null===e||void 0===e||null===t||void 0===t)return!1;if(x.isPrimitive(e)||x.isPrimitive(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=h(e),s=h(t);if(i&&!s||!i&&s)return!1;if(i)return e=S.call(e),t=S.call(t),d(e,t,r);var a,o,u=w(e),l=w(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),o=u.length-1;o>=0;o--)if(u[o]!==l[o])return!1;for(o=u.length-1;o>=0;o--)if(a=u[o],!d(e[a],t[a],r,n))return!1;return!0}function y(e,t,r){d(e,t,!0)&&f(e,t,r,"notDeepStrictEqual",y)}function v(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function g(e){var t;try{e()}catch(e){t=e}return t}function b(e,t,r,n){var i;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(n=r,r=null),i=g(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&f(i,r,"Missing expected exception"+n);var s="string"==typeof n,a=!e&&x.isError(i),o=!e&&i&&!r;if((a&&s&&v(i,r)||o)&&f(i,r,"Got unwanted exception"+n),e&&i&&r&&!v(i,r)||!e&&i)throw i}var E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},x=r(117),A=Object.prototype.hasOwnProperty,S=Array.prototype.slice,_=function(){return"foo"===function(){}.name}(),D=e.exports=p,C=/\s*function\s+([^\(\s]*)\s*/;D.AssertionError=function(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=c(this),this.generatedMessage=!0);var t=e.stackStartFunction||f;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var n=r.stack,i=o(t),s=n.indexOf("\n"+i);if(s>=0){var a=n.indexOf("\n",s+1);n=n.substring(a+1)}this.stack=n}}},x.inherits(D.AssertionError,Error),D.fail=f,D.ok=p,D.equal=function(e,t,r){e!=t&&f(e,t,r,"==",D.equal)},D.notEqual=function(e,t,r){e==t&&f(e,t,r,"!=",D.notEqual)},D.deepEqual=function(e,t,r){d(e,t,!1)||f(e,t,r,"deepEqual",D.deepEqual)},D.deepStrictEqual=function(e,t,r){d(e,t,!0)||f(e,t,r,"deepStrictEqual",D.deepStrictEqual)},D.notDeepEqual=function(e,t,r){d(e,t,!1)&&f(e,t,r,"notDeepEqual",D.notDeepEqual)},D.notDeepStrictEqual=y,D.strictEqual=function(e,t,r){e!==t&&f(e,t,r,"===",D.strictEqual)},D.notStrictEqual=function(e,t,r){e===t&&f(e,t,r,"!==",D.notStrictEqual)},D.throws=function(e,t,r){b(!0,e,t,r)},D.doesNotThrow=function(e,t,r){b(!1,e,t,r)},D.ifError=function(e){if(e)throw e};var w=Object.keys||function(e){var t=[];for(var r in e)A.call(e,r)&&t.push(r);return t}}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c),p=r(34),d=n(p),h=r(20),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(119),v=n(y),g=r(7),b=n(g),E=r(174),x=n(E),A=r(109),S=n(A),_=["enter","exit"],D=function(e){function t(r,n){(0,o.default)(this,t);var i=(0,l.default)(this,e.call(this));return i.initialized=!1,i.raw=(0,x.default)({},r),i.key=i.take("name")||n,i.manipulateOptions=i.take("manipulateOptions"),i.post=i.take("post"),i.pre=i.take("pre"),i.visitor=i.normaliseVisitor((0,S.default)(i.take("visitor"))||{}),i}return(0,f.default)(t,e),t.prototype.take=function(e){var t=this.raw[e];return delete this.raw[e],t},t.prototype.chain=function(e,t){if(!e[t])return this[t];if(!this[t])return e[t];var r=[e[t],this[t]];return function(){for(var e=void 0,t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];for(var a=r,o=Array.isArray(a),u=0,a=o?a:(0,s.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(c){var f=c.apply(this,n);null!=f&&(e=f)}}return e}},t.prototype.maybeInherit=function(e){var t=this.take("inherits");t&&(t=d.default.normalisePlugin(t,e,"inherits"),this.manipulateOptions=this.chain(t,"manipulateOptions"),this.post=this.chain(t,"post"),this.pre=this.chain(t,"pre"),this.visitor=b.default.visitors.merge([t.visitor,this.visitor]))},t.prototype.init=function(e,t){if(!this.initialized){this.initialized=!0,this.maybeInherit(e);for(var r in this.raw)throw new Error(m.get("pluginInvalidProperty",e,t,r))}},t.prototype.normaliseVisitor=function(e){for(var t=_,r=Array.isArray(t),n=0,t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}if(e[i])throw new Error("Plugins aren't allowed to specify catch-all enter/exit handlers. Please target individual nodes.")}return b.default.explode(e),e},t}(v.default);t.default=D,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.messages;return{visitor:{Scope:function(e){var r=e.scope;for(var n in r.bindings){var s=r.bindings[n];if("const"===s.kind||"module"===s.kind)for(var a=s.constantViolations,o=Array.isArray(a),u=0,a=o?a:(0,i.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;throw c.buildCodeFrameError(t.get("readOnly",n))}}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncFunctions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{ArrowFunctionExpression:function(e,r){if(r.opts.spec){var n=e.node;if(n.shadow)return;n.shadow={this:!1},n.type="FunctionExpression";var i=t.thisExpression();i._forceShadow=e,e.ensureBlock(),e.get("body").unshiftContainer("body",t.expressionStatement(t.callExpression(r.addHelper("newArrowCheck"),[t.thisExpression(),i]))),e.replaceWith(t.callExpression(t.memberExpression(n,t.identifier("bind")),[t.thisExpression()]))}else e.arrowFunctionToShadowed()}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e,t){for(var n=t.get(e),s=n,a=Array.isArray(s),o=0,s=a?s:(0,i.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u,c=l.node;if(l.isFunctionDeclaration()){var f=r.variableDeclaration("let",[r.variableDeclarator(c.id,r.toExpression(c))]);f._blockHoist=2,c.id=null,l.replaceWith(f)}}}var r=e.types;return{visitor:{BlockStatement:function(e){var n=e.node,i=e.parent;r.isFunction(i,{body:n})||r.isExportDeclaration(i)||t("body",e)},SwitchCase:function(e){t("consequent",e)}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return b.isLoop(e.parent)||b.isCatchClause(e.parent)}function s(e){return!!b.isVariableDeclaration(e)&&(!!e[b.BLOCK_SCOPED_SYMBOL]||("let"===e.kind||"const"===e.kind))}function a(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(t||(t=e.node),!b.isFor(r))for(var s=0;s<t.declarations.length;s++){var a=t.declarations[s];a.init=a.init||n.buildUndefinedNode()}if(t[b.BLOCK_SCOPED_SYMBOL]=!0,t.kind="var",i){var o=n.getFunctionParent(),u=e.getBindingIdentifiers();for(var l in u){var c=n.getOwnBinding(l);c&&(c.kind="var"),n.moveBindingTo(l,o)}}}function o(e){return b.isVariableDeclaration(e,{kind:"var"})&&!s(e)}function u(e){return b.isBreakStatement(e)?"break":b.isContinueStatement(e)?"continue":void 0}t.__esModule=!0;var l=r(10),c=n(l),f=r(9),p=n(f),d=r(3),h=n(d);t.default=function(){return{visitor:{VariableDeclaration:function(e,t){var r=e.node,n=e.parent,i=e.scope;if(s(r)&&(a(e,null,n,i,!0),r._tdzThis)){for(var o=[r],u=0;u<r.declarations.length;u++){var l=r.declarations[u];if(l.init){var c=b.assignmentExpression("=",l.id,l.init);c._ignoreBlockScopingTDZ=!0,o.push(b.expressionStatement(c))}l.init=t.addHelper("temporalUndefined")}r._blockHoist=2,e.isCompletionRecord()&&o.push(b.expressionStatement(i.buildUndefinedNode())),e.replaceWithMultiple(o)}},Loop:function(e,t){var r=e.node,n=e.parent,i=e.scope;b.ensureBlock(r);var s=new B(e,e.get("body"),n,i,t),a=s.run();a&&e.replaceWith(a)},CatchClause:function(e,t){var r=e.parent,n=e.scope;new B(null,e.get("body"),r,n,t).run()},"BlockStatement|SwitchStatement|Program":function(e,t){if(!i(e)){new B(null,e,e.parent,e.scope,t).run()}}}}};var m=r(7),y=n(m),v=r(330),g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E=r(280),x=n(E),A=r(578),S=n(A),_=r(4),D=n(_),C=(0,D.default)('\n  if (typeof RETURN === "object") return RETURN.v;\n'),w=y.default.visitors.merge([{Loop:{enter:function(e,t){t.loopDepth++},exit:function(e,t){t.loopDepth--}},Function:function(e,t){return t.loopDepth>0&&e.traverse(P,t),e.skip()}},v.visitor]),P=y.default.visitors.merge([{ReferencedIdentifier:function(e,t){var r=t.letReferences[e.node.name];if(r){var n=e.scope.getBindingIdentifier(e.node.name);n&&n!==r||(t.closurify=!0)}}},v.visitor]),k={enter:function(e,t){var r=e.node;e.parent;if(e.isForStatement()){if(o(r.init)){var n=t.pushDeclar(r.init);1===n.length?r.init=n[0]:r.init=b.sequenceExpression(n)}}else if(e.isFor())o(r.left)&&(t.pushDeclar(r.left),r.left=r.left.declarations[0].id);else if(o(r))e.replaceWithMultiple(t.pushDeclar(r).map(function(e){return b.expressionStatement(e)}));else if(e.isFunction())return e.skip()}},F={LabeledStatement:function(e,t){var r=e.node;t.innerLabels.push(r.label.name)}},T={enter:function(e,t){if(e.isAssignmentExpression()||e.isUpdateExpression()){var r=e.getBindingIdentifiers();for(var n in r)t.outsideReferences[n]===e.scope.getBindingIdentifier(n)&&(t.reassignments[n]=!0)}}},O={Loop:function(e,t){var r=t.ignoreLabeless;t.ignoreLabeless=!0,e.traverse(O,t),t.ignoreLabeless=r,e.skip()},Function:function(e){e.skip()},SwitchCase:function(e,t){var r=t.inSwitchCase;t.inSwitchCase=!0,e.traverse(O,t),t.inSwitchCase=r,e.skip()},"BreakStatement|ContinueStatement|ReturnStatement":function(e,t){var r=e.node,n=e.parent,i=e.scope;if(!r[this.LOOP_IGNORE]){var s=void 0,a=u(r);if(a){if(r.label){if(t.innerLabels.indexOf(r.label.name)>=0)return;a=a+"|"+r.label.name}else{if(t.ignoreLabeless)return;if(t.inSwitchCase)return;if(b.isBreakStatement(r)&&b.isSwitchCase(n))return}t.hasBreakContinue=!0,t.map[a]=r,s=b.stringLiteral(a)}e.isReturnStatement()&&(t.hasReturn=!0,s=b.objectExpression([b.objectProperty(b.identifier("v"),r.argument||i.buildUndefinedNode())])),s&&(s=b.returnStatement(s),s[this.LOOP_IGNORE]=!0,e.skip(),e.replaceWith(b.inherits(s,r)))}}},B=function(){function e(t,r,n,i,s){(0,h.default)(this,e),this.parent=n,this.scope=i,this.file=s,this.blockPath=r,this.block=r.node,this.outsideLetReferences=(0,p.default)(null),this.hasLetReferences=!1,this.letReferences=(0,p.default)(null),this.body=[],t&&(this.loopParent=t.parent,this.loopLabel=b.isLabeledStatement(this.loopParent)&&this.loopParent.label,this.loopPath=t,this.loop=t.node)}return e.prototype.run=function(){var e=this.block;if(!e._letDone){e._letDone=!0;var t=this.getLetReferences();if(b.isFunction(this.parent)||b.isProgram(this.block))return void this.updateScopeInfo();if(this.hasLetReferences)return t?this.wrapClosure():this.remap(),this.updateScopeInfo(t),this.loopLabel&&!b.isLabeledStatement(this.loopParent)?b.labeledStatement(this.loopLabel,this.loop):void 0}},e.prototype.updateScopeInfo=function(e){var t=this.scope,r=t.getFunctionParent(),n=this.letReferences;for(var i in n){var s=n[i],a=t.getBinding(s.name);a&&("let"!==a.kind&&"const"!==a.kind||(a.kind="var",e?t.removeBinding(s.name):t.moveBindingTo(s.name,r)))}},e.prototype.remap=function(){var e=this.letReferences,t=this.scope;for(var r in e){var n=e[r];(t.parentHasBinding(r)||t.hasGlobal(r))&&(t.hasOwnBinding(r)&&t.rename(n.name),this.blockPath.scope.hasOwnBinding(r)&&this.blockPath.scope.rename(n.name))}},e.prototype.wrapClosure=function(){if(this.file.opts.throwIfClosureRequired)throw this.blockPath.buildCodeFrameError("Compiling let/const in this block would add a closure (throwIfClosureRequired).");var e=this.block,t=this.outsideLetReferences;if(this.loop)for(var r in t){var n=t[r];(this.scope.hasGlobal(n.name)||this.scope.parentHasBinding(n.name))&&(delete t[n.name],delete this.letReferences[n.name],this.scope.rename(n.name),this.letReferences[n.name]=n,t[n.name]=n)}this.has=this.checkLoop(),this.hoistVarDeclarations();var i=(0,x.default)(t),s=(0,x.default)(t),a=this.blockPath.isSwitchStatement(),o=b.functionExpression(null,i,b.blockStatement(a?[e]:e.body));o.shadow=!0,this.addContinuations(o);var u=o;this.loop&&(u=this.scope.generateUidIdentifier("loop"),this.loopPath.insertBefore(b.variableDeclaration("var",[b.variableDeclarator(u,o)])));var l=b.callExpression(u,s),c=this.scope.generateUidIdentifier("ret");y.default.hasType(o.body,this.scope,"YieldExpression",b.FUNCTION_TYPES)&&(o.generator=!0,l=b.yieldExpression(l,!0)),y.default.hasType(o.body,this.scope,"AwaitExpression",b.FUNCTION_TYPES)&&(o.async=!0,l=b.awaitExpression(l)),this.buildClosure(c,l),a?this.blockPath.replaceWithMultiple(this.body):e.body=this.body},e.prototype.buildClosure=function(e,t){var r=this.has;r.hasReturn||r.hasBreakContinue?this.buildHas(e,t):this.body.push(b.expressionStatement(t))},e.prototype.addContinuations=function(e){var t={reassignments:{},outsideReferences:this.outsideLetReferences};this.scope.traverse(e,T,t);for(var r=0;r<e.params.length;r++){var n=e.params[r];if(t.reassignments[n.name]){var i=this.scope.generateUidIdentifier(n.name);e.params[r]=i,this.scope.rename(n.name,i.name,e),e.body.body.push(b.expressionStatement(b.assignmentExpression("=",n,i)))}}},e.prototype.getLetReferences=function(){var e=this,t=this.block,r=[];if(this.loop){var n=this.loop.left||this.loop.init;s(n)&&(r.push(n),(0,S.default)(this.outsideLetReferences,b.getBindingIdentifiers(n)))}var i=function n(i,o){o=o||i.node,(b.isClassDeclaration(o)||b.isFunctionDeclaration(o)||s(o))&&(s(o)&&a(i,o,t,e.scope),r=r.concat(o.declarations||o)),b.isLabeledStatement(o)&&n(i.get("body"),o.body)};if(t.body)for(var o=0;o<t.body.length;o++){var u=this.blockPath.get("body")[o];i(u)}if(t.cases)for(var l=0;l<t.cases.length;l++)for(var c=t.cases[l].consequent,f=0;f<c.length;f++){var p=this.blockPath.get("cases")[l],d=c[f];i(p,d)}for(var h=0;h<r.length;h++){var m=r[h],y=b.getBindingIdentifiers(m,!1,!0);(0,S.default)(this.letReferences,y),this.hasLetReferences=!0}if(this.hasLetReferences){var v={letReferences:this.letReferences,closurify:!1,file:this.file,loopDepth:0},g=this.blockPath.find(function(e){return e.isLoop()||e.isFunction()});return g&&g.isLoop()&&v.loopDepth++,this.blockPath.traverse(w,v),v.closurify}},e.prototype.checkLoop=function(){var e={hasBreakContinue:!1,ignoreLabeless:!1,inSwitchCase:!1,innerLabels:[],hasReturn:!1,isLoop:!!this.loop,map:{},LOOP_IGNORE:(0,c.default)()};return this.blockPath.traverse(F,e),this.blockPath.traverse(O,e),e},e.prototype.hoistVarDeclarations=function(){this.blockPath.traverse(k,this)},e.prototype.pushDeclar=function(e){var t=[],r=b.getBindingIdentifiers(e);for(var n in r)t.push(b.variableDeclarator(r[n]));this.body.push(b.variableDeclaration(e.kind,t));for(var i=[],s=0;s<e.declarations.length;s++){var a=e.declarations[s];if(a.init){var o=b.assignmentExpression("=",a.id,a.init);i.push(b.inherits(o,a))}}return i},e.prototype.buildHas=function(e,t){var r=this.body;r.push(b.variableDeclaration("var",[b.variableDeclarator(e,t)]));var n=void 0,i=this.has,s=[];if(i.hasReturn&&(n=C({RETURN:e})),i.hasBreakContinue){for(var a in i.map)s.push(b.switchCase(b.stringLiteral(a),[i.map[a]]));if(i.hasReturn&&s.push(b.switchCase(null,[n])),1===s.length){var o=s[0];r.push(b.ifStatement(b.binaryExpression("===",e,o.test),o.consequent[0]))}else{if(this.loop)for(var u=0;u<s.length;u++){var l=s[u].consequent[0];b.isBreakStatement(l)&&!l.label&&(l.label=this.loopLabel=this.loopLabel||this.scope.generateUidIdentifier("loop"))}r.push(b.switchStatement(e,s))}}else i.hasReturn&&r.push(n)},e}();e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(10),s=n(i);t.default=function(e){var t=e.types,r=(0,s.default)();return{visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var r=e.node,n=r.declaration.id||e.scope.generateUidIdentifier("class");r.declaration.id=n,e.replaceWith(r.declaration),e.insertAfter(t.exportDefaultDeclaration(n))}},ClassDeclaration:function(e){var r=e.node,n=r.id||e.scope.generateUidIdentifier("class");e.replaceWith(t.variableDeclaration("let",[t.variableDeclarator(n,t.toExpression(r))]))},ClassExpression:function(e,t){var n=e.node;if(!n[r]){var i=(0,f.default)(e);if(i&&i!==n)return e.replaceWith(i);n[r]=!0;var s=l.default;t.opts.loose&&(s=o.default),e.replaceWith(new s(e,t.file).run())}}}}};var a=r(331),o=n(a),u=r(207),l=n(u),c=r(40),f=n(c);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){return o.isObjectProperty(e)?e.value:o.isObjectMethod(e)?o.functionExpression(null,e.params,e.body,e.generator,e.async):void 0}function r(e,r,i){"get"===r.kind&&"set"===r.kind?n(e,r,i):i.push(o.expressionStatement(o.assignmentExpression("=",o.memberExpression(e,r.key,r.computed||o.isLiteral(r.key)),t(r))))}function n(e,r){var n=(e.objId,e.body),i=e.getMutatorId,s=e.scope,a=!r.computed&&o.isIdentifier(r.key)?o.stringLiteral(r.key.name):r.key,u=s.maybeGenerateMemoised(a);u&&(n.push(o.expressionStatement(o.assignmentExpression("=",u,a))),a=u),n.push.apply(n,l({MUTATOR_MAP_REF:i(),KEY:a,VALUE:t(r),KIND:o.identifier(r.kind)}))}function s(e){for(var t=e.computedProps,s=Array.isArray(t),a=0,t=s?t:(0,i.default)(t);;){var o;if(s){if(a>=t.length)break;o=t[a++]}else{if(a=t.next(),a.done)break;o=a.value}var u=o;"get"===u.kind||"set"===u.kind?n(e,u):r(e.objId,u,e.body)}}function a(e){for(var s=e.objId,a=e.body,u=e.computedProps,l=e.state,c=u,f=Array.isArray(c),p=0,c=f?c:(0,i.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d,m=o.toComputedKey(h);if("get"===h.kind||"set"===h.kind)n(e,h);else if(o.isStringLiteral(m,{value:"__proto__"}))r(s,h,a);else{if(1===u.length)return o.callExpression(l.addHelper("defineProperty"),[e.initPropExpression,m,t(h)]);a.push(o.expressionStatement(o.callExpression(l.addHelper("defineProperty"),[s,m,t(h)])))}}}var o=e.types,u=e.template,l=u("\n    MUTATOR_MAP_REF[KEY] = MUTATOR_MAP_REF[KEY] || {};\n    MUTATOR_MAP_REF[KEY].KIND = VALUE;\n  ");return{visitor:{ObjectExpression:{exit:function(e,t){for(var r=e.node,n=e.parent,u=e.scope,l=!1,c=r.properties,f=Array.isArray(c),p=0,c=f?c:(0,i.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}if(l=!0===d.computed)break}if(l){for(var h=[],m=[],y=!1,v=r.properties,g=Array.isArray(v),b=0,v=g?v:(0,i.default)(v);;){var E;if(g){if(b>=v.length)break;E=v[b++]}else{if(b=v.next(),b.done)break;E=b.value}var x=E;x.computed&&(y=!0),y?m.push(x):h.push(x)}var A=u.generateUidIdentifierBasedOnNode(n),S=o.objectExpression(h),_=[];_.push(o.variableDeclaration("var",[o.variableDeclarator(A,S)]));var D=a;t.opts.loose&&(D=s);var C=void 0,w=function(){return C||(C=u.generateUidIdentifier("mutatorMap"),_.push(o.variableDeclaration("var",[o.variableDeclarator(C,o.objectExpression([]))]))),C},P=D({scope:u,objId:A,body:_,computedProps:m,initPropExpression:S,getMutatorId:w,state:t});C&&_.push(o.expressionStatement(o.callExpression(t.addHelper("defineEnumerableProperties"),[A,C]))),P?e.replaceWith(P):(_.push(o.expressionStatement(A)),e.replaceWithMultiple(_))}}}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(2),o=n(a);t.default=function(e){function t(e){for(var t=e.declarations,r=Array.isArray(t),i=0,t=r?t:(0,o.default)(t);;){var s;if(r){if(i>=t.length)break;s=t[i++]}else{if(i=t.next(),i.done)break;s=i.value}var a=s;if(n.isPattern(a.id))return!0}return!1}function r(e){for(var t=e.elements,r=Array.isArray(t),i=0,t=r?t:(0,o.default)(t);;){var s;if(r){if(i>=t.length)break;s=t[i++]}else{if(i=t.next(),i.done)break;s=i.value}var a=s;if(n.isRestElement(a))return!0}return!1}var n=e.types,i={ReferencedIdentifier:function(e,t){t.bindings[e.node.name]&&(t.deopt=!0,e.stop())}},a=function(){function e(t){(0,s.default)(this,e),this.blockHoist=t.blockHoist,this.operator=t.operator,this.arrays={},this.nodes=t.nodes||[],this.scope=t.scope,this.file=t.file,this.kind=t.kind}
return e.prototype.buildVariableAssignment=function(e,t){var r=this.operator;n.isMemberExpression(e)&&(r="=");var i=void 0;return i=r?n.expressionStatement(n.assignmentExpression(r,e,t)):n.variableDeclaration(this.kind,[n.variableDeclarator(e,t)]),i._blockHoist=this.blockHoist,i},e.prototype.buildVariableDeclaration=function(e,t){var r=n.variableDeclaration("var",[n.variableDeclarator(e,t)]);return r._blockHoist=this.blockHoist,r},e.prototype.push=function(e,t){n.isObjectPattern(e)?this.pushObjectPattern(e,t):n.isArrayPattern(e)?this.pushArrayPattern(e,t):n.isAssignmentPattern(e)?this.pushAssignmentPattern(e,t):this.nodes.push(this.buildVariableAssignment(e,t))},e.prototype.toArray=function(e,t){return this.file.opts.loose||n.isIdentifier(e)&&this.arrays[e.name]?e:this.scope.toArray(e,t)},e.prototype.pushAssignmentPattern=function(e,t){var r=this.scope.generateUidIdentifierBasedOnNode(t),i=n.variableDeclaration("var",[n.variableDeclarator(r,t)]);i._blockHoist=this.blockHoist,this.nodes.push(i);var s=n.conditionalExpression(n.binaryExpression("===",r,n.identifier("undefined")),e.right,r),a=e.left;if(n.isPattern(a)){var o=n.expressionStatement(n.assignmentExpression("=",r,s));o._blockHoist=this.blockHoist,this.nodes.push(o),this.push(a,r)}else this.nodes.push(this.buildVariableAssignment(a,s))},e.prototype.pushObjectRest=function(e,t,r,i){for(var s=[],a=0;a<e.properties.length;a++){var o=e.properties[a];if(a>=i)break;if(!n.isRestProperty(o)){var u=o.key;n.isIdentifier(u)&&!o.computed&&(u=n.stringLiteral(o.key.name)),s.push(u)}}s=n.arrayExpression(s);var l=n.callExpression(this.file.addHelper("objectWithoutProperties"),[t,s]);this.nodes.push(this.buildVariableAssignment(r.argument,l))},e.prototype.pushObjectProperty=function(e,t){n.isLiteral(e.key)&&(e.computed=!0);var r=e.value,i=n.memberExpression(t,e.key,e.computed);n.isPattern(r)?this.push(r,i):this.nodes.push(this.buildVariableAssignment(r,i))},e.prototype.pushObjectPattern=function(e,t){if(e.properties.length||this.nodes.push(n.expressionStatement(n.callExpression(this.file.addHelper("objectDestructuringEmpty"),[t]))),e.properties.length>1&&!this.scope.isStatic(t)){var r=this.scope.generateUidIdentifierBasedOnNode(t);this.nodes.push(this.buildVariableDeclaration(r,t)),t=r}for(var i=0;i<e.properties.length;i++){var s=e.properties[i];n.isRestProperty(s)?this.pushObjectRest(e,t,s,i):this.pushObjectProperty(s,t)}},e.prototype.canUnpackArrayPattern=function(e,t){if(!n.isArrayExpression(t))return!1;if(!(e.elements.length>t.elements.length)){if(e.elements.length<t.elements.length&&!r(e))return!1;for(var s=e.elements,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var l;if(a){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l;if(!c)return!1;if(n.isMemberExpression(c))return!1}for(var f=t.elements,p=Array.isArray(f),d=0,f=p?f:(0,o.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h;if(n.isSpreadElement(m))return!1;if(n.isCallExpression(m))return!1;if(n.isMemberExpression(m))return!1}var y=n.getBindingIdentifiers(e),v={deopt:!1,bindings:y};return this.scope.traverse(t,i,v),!v.deopt}},e.prototype.pushUnpackedArrayPattern=function(e,t){for(var r=0;r<e.elements.length;r++){var i=e.elements[r];n.isRestElement(i)?this.push(i.argument,n.arrayExpression(t.elements.slice(r))):this.push(i,t.elements[r])}},e.prototype.pushArrayPattern=function(e,t){if(e.elements){if(this.canUnpackArrayPattern(e,t))return this.pushUnpackedArrayPattern(e,t);var i=!r(e)&&e.elements.length,s=this.toArray(t,i);n.isIdentifier(s)?t=s:(t=this.scope.generateUidIdentifierBasedOnNode(t),this.arrays[t.name]=!0,this.nodes.push(this.buildVariableDeclaration(t,s)));for(var a=0;a<e.elements.length;a++){var o=e.elements[a];if(o){var u=void 0;n.isRestElement(o)?(u=this.toArray(t),u=n.callExpression(n.memberExpression(u,n.identifier("slice")),[n.numericLiteral(a)]),o=o.argument):u=n.memberExpression(t,n.numericLiteral(a),!0),this.push(o,u)}}}},e.prototype.init=function(e,t){if(!n.isArrayExpression(t)&&!n.isMemberExpression(t)){var r=this.scope.maybeGenerateMemoised(t,!0);r&&(this.nodes.push(this.buildVariableDeclaration(r,t)),t=r)}return this.push(e,t),this.nodes},e}();return{visitor:{ExportNamedDeclaration:function(e){var r=e.get("declaration");if(r.isVariableDeclaration()&&t(r.node)){var i=[];for(var s in e.getOuterBindingIdentifiers(e)){var a=n.identifier(s);i.push(n.exportSpecifier(a,a))}e.replaceWith(r.node),e.insertAfter(n.exportNamedDeclaration(null,i))}},ForXStatement:function(e,t){var r=e.node,i=e.scope,s=r.left;if(n.isPattern(s)){var o=i.generateUidIdentifier("ref");return r.left=n.variableDeclaration("var",[n.variableDeclarator(o)]),e.ensureBlock(),void r.body.body.unshift(n.variableDeclaration("var",[n.variableDeclarator(s,o)]))}if(n.isVariableDeclaration(s)){var u=s.declarations[0].id;if(n.isPattern(u)){var l=i.generateUidIdentifier("ref");r.left=n.variableDeclaration(s.kind,[n.variableDeclarator(l,null)]);var c=[];new a({kind:s.kind,file:t,scope:i,nodes:c}).init(u,l),e.ensureBlock();var f=r.body;f.body=c.concat(f.body)}}},CatchClause:function(e,t){var r=e.node,i=e.scope,s=r.param;if(n.isPattern(s)){var o=i.generateUidIdentifier("ref");r.param=o;var u=[];new a({kind:"let",file:t,scope:i,nodes:u}).init(s,o),r.body.body=u.concat(r.body.body)}},AssignmentExpression:function(e,t){var r=e.node,i=e.scope;if(n.isPattern(r.left)){var s=[],o=new a({operator:r.operator,file:t,scope:i,nodes:s}),u=void 0;!e.isCompletionRecord()&&e.parentPath.isExpressionStatement()||(u=i.generateUidIdentifierBasedOnNode(r.right,"ref"),s.push(n.variableDeclaration("var",[n.variableDeclarator(u,r.right)])),n.isArrayExpression(r.right)&&(o.arrays[u.name]=!0)),o.init(r.left,u||r.right),u&&s.push(n.expressionStatement(u)),e.replaceWithMultiple(s)}},VariableDeclaration:function(e,r){var i=e.node,s=e.scope,u=e.parent;if(!n.isForXStatement(u)&&u&&e.container&&t(i)){for(var l=[],c=void 0,f=0;f<i.declarations.length;f++){c=i.declarations[f];var p=c.init,d=c.id,h=new a({blockHoist:i._blockHoist,nodes:l,scope:s,kind:i.kind,file:r});n.isPattern(d)?(h.init(d,p),+f!=i.declarations.length-1&&n.inherits(l[l.length-1],c)):l.push(n.inherits(h.buildVariableAssignment(c.id,c.init),c))}for(var m=[],y=l,v=Array.isArray(y),g=0,y=v?y:(0,o.default)(y);;){var b;if(v){if(g>=y.length)break;b=y[g++]}else{if(g=y.next(),g.done)break;b=g.value}var E=b,x=m[m.length-1];if(x&&n.isVariableDeclaration(x)&&n.isVariableDeclaration(E)&&x.kind===E.kind){var A;(A=x.declarations).push.apply(A,E.declarations)}else m.push(E)}for(var S=m,_=Array.isArray(S),D=0,S=_?S:(0,o.default)(S);;){var C;if(_){if(D>=S.length)break;C=S[D++]}else{if(D=S.next(),D.done)break;C=D.value}var w=C;if(w.declarations)for(var P=w.declarations,k=Array.isArray(P),F=0,P=k?P:(0,o.default)(P);;){var T;if(k){if(F>=P.length)break;T=P[F++]}else{if(F=P.next(),F.done)break;T=F.value}var O=T,B=O.id.name;s.bindings[B]&&(s.bindings[B].kind=w.kind)}}1===m.length?e.replaceWith(m[0]):e.replaceWithMultiple(m)}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){function t(e){var t=e.node,r=e.scope,n=[],i=t.right;if(!a.isIdentifier(i)||!r.hasBinding(i.name)){var s=r.generateUidIdentifier("arr");n.push(a.variableDeclaration("var",[a.variableDeclarator(s,i)])),i=s}var u=r.generateUidIdentifier("i"),l=o({BODY:t.body,KEY:u,ARR:i});a.inherits(l,t),a.ensureBlock(l);var c=a.memberExpression(i,u,!0),f=t.left;return a.isVariableDeclaration(f)?(f.declarations[0].init=c,l.body.body.unshift(f)):l.body.body.unshift(a.expressionStatement(a.assignmentExpression("=",f,c))),e.parentPath.isLabeledStatement()&&(l=a.labeledStatement(e.parentPath.node.label,l)),n.push(l),n}function r(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,l=void 0,c=void 0;if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))c=o;else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));c=n.generateUidIdentifier("ref"),l=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,c)])}var f=n.generateUidIdentifier("iterator"),p=n.generateUidIdentifier("isArray"),d=u({LOOP_OBJECT:f,IS_ARRAY:p,OBJECT:r.right,INDEX:n.generateUidIdentifier("i"),ID:c});l||d.body.body.shift();var h=a.isLabeledStatement(s),m=void 0;return h&&(m=a.labeledStatement(s.label,d)),{replaceParent:h,declar:l,node:m||d,loop:d}}function n(e,t){var r=e.node,n=e.scope,s=e.parent,o=r.left,u=void 0,c=n.generateUidIdentifier("step"),f=a.memberExpression(c,a.identifier("value"));if(a.isIdentifier(o)||a.isPattern(o)||a.isMemberExpression(o))u=a.expressionStatement(a.assignmentExpression("=",o,f));else{if(!a.isVariableDeclaration(o))throw t.buildCodeFrameError(o,i.get("unknownForHead",o.type));u=a.variableDeclaration(o.kind,[a.variableDeclarator(o.declarations[0].id,f)])}var p=n.generateUidIdentifier("iterator"),d=l({ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:p,STEP_KEY:c,OBJECT:r.right,BODY:null}),h=a.isLabeledStatement(s),m=d[3].block.body,y=m[0];return h&&(m[0]=a.labeledStatement(s.label,y)),{replaceParent:h,declar:u,loop:y,node:d}}var i=e.messages,s=e.template,a=e.types,o=s("\n    for (var KEY = 0; KEY < ARR.length; KEY++) BODY;\n  "),u=s("\n    for (var LOOP_OBJECT = OBJECT,\n             IS_ARRAY = Array.isArray(LOOP_OBJECT),\n             INDEX = 0,\n             LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n      var ID;\n      if (IS_ARRAY) {\n        if (INDEX >= LOOP_OBJECT.length) break;\n        ID = LOOP_OBJECT[INDEX++];\n      } else {\n        INDEX = LOOP_OBJECT.next();\n        if (INDEX.done) break;\n        ID = INDEX.value;\n      }\n    }\n  "),l=s("\n    var ITERATOR_COMPLETION = true;\n    var ITERATOR_HAD_ERROR_KEY = false;\n    var ITERATOR_ERROR_KEY = undefined;\n    try {\n      for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) {\n      }\n    } catch (err) {\n      ITERATOR_HAD_ERROR_KEY = true;\n      ITERATOR_ERROR_KEY = err;\n    } finally {\n      try {\n        if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n          ITERATOR_KEY.return();\n        }\n      } finally {\n        if (ITERATOR_HAD_ERROR_KEY) {\n          throw ITERATOR_ERROR_KEY;\n        }\n      }\n    }\n  ");return{visitor:{ForOfStatement:function(e,i){if(e.get("right").isArrayExpression())return e.parentPath.isLabeledStatement()?e.parentPath.replaceWithMultiple(t(e)):e.replaceWithMultiple(t(e));var s=n;i.opts.loose&&(s=r);var o=e.node,u=s(e,i),l=u.declar,c=u.loop,f=c.body;e.ensureBlock(),l&&f.body.push(l),f.body=f.body.concat(o.body.body),a.inherits(c,o),a.inherits(c.body,o.body),u.replaceParent?(e.parentPath.replaceWithMultiple(u.node),e.remove()):e.replaceWithMultiple(u.node)}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{FunctionExpression:{exit:function(e){if("value"!==e.key&&!e.parentPath.isObjectProperty()){var t=(0,i.default)(e);t&&e.replaceWith(t)}}},ObjectProperty:function(e){var t=e.get("value");if(t.isFunction()){var r=(0,i.default)(t);r&&t.replaceWith(r)}}}}};var n=r(40),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{NumericLiteral:function(e){var t=e.node;t.extra&&/^0[ob]/i.test(t.extra.raw)&&(t.extra=void 0)},StringLiteral:function(e){var t=e.node;t.extra&&/\\[u]/gi.test(t.extra.raw)&&(t.extra=void 0)}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(14),s=n(i),a=r(9),o=n(a),u=r(2),l=n(u),c=r(10),f=n(c);t.default=function(){var e=(0,f.default)(),t={ReferencedIdentifier:function(e){var t=e.node.name,r=this.remaps[t];if(r&&this.scope.getBinding(t)===e.scope.getBinding(t)){if(e.parentPath.isCallExpression({callee:e.node}))e.replaceWith(g.sequenceExpression([g.numericLiteral(0),r]));else if(e.isJSXIdentifier()&&g.isMemberExpression(r)){var n=r.object,i=r.property;e.replaceWith(g.JSXMemberExpression(g.JSXIdentifier(n.name),g.JSXIdentifier(i.name)))}else e.replaceWith(r);this.requeueInParent(e)}},AssignmentExpression:function(t){var r=t.node;if(!r[e]){var n=t.get("left");if(n.isIdentifier()){var i=n.node.name,s=this.exports[i];if(!s)return;if(this.scope.getBinding(i)!==t.scope.getBinding(i))return;r[e]=!0;for(var a=s,o=Array.isArray(a),u=0,a=o?a:(0,l.default)(a);;){var c;if(o){if(u>=a.length)break;c=a[u++]}else{if(u=a.next(),u.done)break;c=u.value}r=S(c,r).expression}t.replaceWith(r),this.requeueInParent(t)}else if(n.isObjectPattern())for(var f=n.node.properties,p=Array.isArray(f),d=0,f=p?f:(0,l.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h,y=m.value.name,v=this.exports[y];if(v){if(this.scope.getBinding(y)!==t.scope.getBinding(y))return;r[e]=!0,t.insertAfter(S(g.identifier(y),g.identifier(y)))}}else if(n.isArrayPattern())for(var b=n.node.elements,E=Array.isArray(b),x=0,b=E?b:(0,l.default)(b);;){var A;if(E){if(x>=b.length)break;A=b[x++]}else{if(x=b.next(),x.done)break;A=x.value}var _=A;if(_){var D=_.name,C=this.exports[D];if(C){if(this.scope.getBinding(D)!==t.scope.getBinding(D))return;r[e]=!0,t.insertAfter(S(g.identifier(D),g.identifier(D)))}}}}},UpdateExpression:function(e){var t=e.get("argument");if(t.isIdentifier()){var r=t.node.name;if(this.exports[r]&&this.scope.getBinding(r)===e.scope.getBinding(r)){var n=g.assignmentExpression(e.node.operator[0]+"=",t.node,g.numericLiteral(1));if(e.parentPath.isExpressionStatement()&&!e.isCompletionRecord()||e.node.prefix)return e.replaceWith(n),void this.requeueInParent(e);var i=[];i.push(n);var s=void 0;s="--"===e.node.operator?"+":"-",i.push(g.binaryExpression(s,t.node,g.numericLiteral(1))),e.replaceWithMultiple(g.sequenceExpression(i))}}}};return{inherits:y.default,visitor:{ThisExpression:function(e,t){this.ranCommonJS||!0===t.opts.allowTopLevelThis||e.findParent(function(e){return!e.is("shadow")&&D.indexOf(e.type)>=0})||e.replaceWith(g.identifier("undefined"))},Program:{exit:function(e){function r(t,r){var n=C[t];if(n)return n;var i=e.scope.generateUidIdentifier((0,p.basename)(t,(0,p.extname)(t))),s=g.variableDeclaration("var",[g.variableDeclarator(i,b(g.stringLiteral(t)).expression)]);return h[t]&&(s.loc=h[t].loc),"number"==typeof r&&r>0&&(s._blockHoist=r),v.push(s),C[t]=i}function n(e,t,r){var n=e[t]||[];e[t]=n.concat(r)}this.ranCommonJS=!0;var i=!!this.opts.strict,a=!!this.opts.noInterop,u=e.scope;u.rename("module"),u.rename("exports"),u.rename("require");for(var c=!1,f=!1,d=e.get("body"),h=(0,o.default)(null),m=(0,o.default)(null),y=(0,o.default)(null),v=[],D=(0,o.default)(null),C=(0,o.default)(null),w=d,P=Array.isArray(w),k=0,w=P?w:(0,l.default)(w);;){var F;if(P){if(k>=w.length)break;F=w[k++]}else{if(k=w.next(),k.done)break;F=k.value}var T=F;if(T.isExportDeclaration()){c=!0;for(var O=[].concat(T.get("declaration"),T.get("specifiers")),B=O,R=Array.isArray(B),I=0,B=R?B:(0,l.default)(B);;){var M;if(R){if(I>=B.length)break;M=B[I++]}else{if(I=B.next(),I.done)break;M=I.value}var N=M;if(N.getBindingIdentifiers().__esModule)throw N.buildCodeFrameError('Illegal export "__esModule"')}}if(T.isImportDeclaration()){var L;f=!0;var j=T.node.source.value,U=h[j]||{specifiers:[],maxBlockHoist:0,loc:T.node.loc};(L=U.specifiers).push.apply(L,T.node.specifiers),"number"==typeof T.node._blockHoist&&(U.maxBlockHoist=Math.max(T.node._blockHoist,U.maxBlockHoist)),h[j]=U,T.remove()}else if(T.isExportDefaultDeclaration()){var V=T.get("declaration");if(V.isFunctionDeclaration()){var G=V.node.id,W=g.identifier("default");G?(n(m,G.name,W),v.push(S(W,G)),T.replaceWith(V.node)):(v.push(S(W,g.toExpression(V.node))),T.remove())}else if(V.isClassDeclaration()){var Y=V.node.id,q=g.identifier("default");Y?(n(m,Y.name,q),T.replaceWithMultiple([V.node,S(q,Y)])):(T.replaceWith(S(q,g.toExpression(V.node))),T.parentPath.requeue(T.get("expression.left")))}else T.replaceWith(S(g.identifier("default"),V.node)),T.parentPath.requeue(T.get("expression.left"))}else if(T.isExportNamedDeclaration()){var K=T.get("declaration");if(K.node){if(K.isFunctionDeclaration()){var H=K.node.id;n(m,H.name,H),v.push(S(H,H)),T.replaceWith(K.node)}else if(K.isClassDeclaration()){var J=K.node.id;n(m,J.name,J),T.replaceWithMultiple([K.node,S(J,J)]),y[J.name]=!0}else if(K.isVariableDeclaration()){for(var X=K.get("declarations"),z=X,$=Array.isArray(z),Q=0,z=$?z:(0,l.default)(z);;){var Z;if($){if(Q>=z.length)break;Z=z[Q++]}else{if(Q=z.next(),Q.done)break;Z=Q.value}var ee=Z,te=ee.get("id"),re=ee.get("init"),ne=[];if(re.node||re.replaceWith(g.identifier("undefined")),te.isIdentifier())n(m,te.node.name,te.node),re.replaceWith(S(te.node,re.node).expression),y[te.node.name]=!0;else if(te.isObjectPattern())for(var ie=0;ie<te.node.properties.length;ie++){var se=te.node.properties[ie],ae=se.value;g.isAssignmentPattern(ae)?ae=ae.left:g.isRestProperty(se)&&(ae=se.argument),n(m,ae.name,ae),ne.push(S(ae,ae)),y[ae.name]=!0}else if(te.isArrayPattern()&&te.node.elements)for(var oe=0;oe<te.node.elements.length;oe++){var ue=te.node.elements[oe];if(ue){g.isAssignmentPattern(ue)?ue=ue.left:g.isRestElement(ue)&&(ue=ue.argument);var le=ue.name;n(m,le,ue),ne.push(S(ue,ue)),y[le]=!0}}T.insertAfter(ne)}T.replaceWith(K.node)}continue}var ce=T.get("specifiers"),fe=[],pe=T.node.source;if(pe)for(var de=r(pe.value,T.node._blockHoist),he=ce,me=Array.isArray(he),ye=0,he=me?he:(0,l.default)(he);;){var ve;if(me){if(ye>=he.length)break;ve=he[ye++]}else{if(ye=he.next(),ye.done)break;ve=ye.value}var ge=ve;ge.isExportNamespaceSpecifier()||ge.isExportDefaultSpecifier()||ge.isExportSpecifier()&&(a||"default"!==ge.node.local.name?v.push(x(g.stringLiteral(ge.node.exported.name),g.memberExpression(de,ge.node.local))):v.push(x(g.stringLiteral(ge.node.exported.name),g.memberExpression(g.callExpression(this.addHelper("interopRequireDefault"),[de]),ge.node.local))),y[ge.node.exported.name]=!0)}else for(var be=ce,Ee=Array.isArray(be),xe=0,be=Ee?be:(0,l.default)(be);;){var Ae;if(Ee){if(xe>=be.length)break;Ae=be[xe++]}else{if(xe=be.next(),xe.done)break;Ae=xe.value}var Se=Ae;Se.isExportSpecifier()&&(n(m,Se.node.local.name,Se.node.exported),y[Se.node.exported.name]=!0,fe.push(S(Se.node.exported,Se.node.local)))}T.replaceWithMultiple(fe)}else if(T.isExportAllDeclaration()){var _e=_({OBJECT:r(T.node.source.value,T.node._blockHoist)});_e.loc=T.node.loc,v.push(_e),T.remove()}}for(var De in h){var Ce=h[De],O=Ce.specifiers,we=Ce.maxBlockHoist;if(O.length){for(var Pe=r(De,we),ke=void 0,Fe=0;Fe<O.length;Fe++){var Te=O[Fe];if(g.isImportNamespaceSpecifier(Te)){if(i||a)D[Te.local.name]=Pe;else{var Oe=g.variableDeclaration("var",[g.variableDeclarator(Te.local,g.callExpression(this.addHelper("interopRequireWildcard"),[Pe]))]);we>0&&(Oe._blockHoist=we),v.push(Oe)}ke=Te.local}else g.isImportDefaultSpecifier(Te)&&(O[Fe]=g.importSpecifier(Te.local,g.identifier("default")))}for(var Be=O,Re=Array.isArray(Be),Ie=0,Be=Re?Be:(0,l.default)(Be);;){var Me;if(Re){if(Ie>=Be.length)break;Me=Be[Ie++]}else{if(Ie=Be.next(),Ie.done)break;Me=Ie.value}var Ne=Me;if(g.isImportSpecifier(Ne)){var Le=Pe;if("default"===Ne.imported.name)if(ke)Le=ke;else if(!a){Le=ke=e.scope.generateUidIdentifier(Pe.name);var je=g.variableDeclaration("var",[g.variableDeclarator(Le,g.callExpression(this.addHelper("interopRequireDefault"),[Pe]))]);we>0&&(je._blockHoist=we),v.push(je)}D[Ne.local.name]=g.memberExpression(Le,g.cloneWithoutLoc(Ne.imported))}}}else{var Ue=b(g.stringLiteral(De));Ue.loc=h[De].loc,v.push(Ue)}}if(f&&(0,s.default)(y).length)for(var Ve=(0,s.default)(y),Ge=0;Ge<Ve.length;Ge+=100)!function(e){var t=Ve.slice(e,e+100),r=g.identifier("undefined");t.forEach(function(e){r=S(g.identifier(e),r).expression});var n=g.expressionStatement(r);n._blockHoist=3,v.unshift(n)}(Ge);if(c&&!i){var We=E;this.opts.loose&&(We=A);var Ye=We();Ye._blockHoist=3,v.unshift(Ye)}e.unshiftContainer("body",v),e.traverse(t,{remaps:D,scope:u,exports:m,requeueInParent:function(t){return e.requeue(t)}})}}}}};var p=r(19),d=r(4),h=n(d),m=r(216),y=n(m),v=r(1),g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(v),b=(0,h.default)("\n  require($0);\n"),E=(0,h.default)('\n  Object.defineProperty(exports, "__esModule", {\n    value: true\n  });\n'),x=(0,h.default)("\n  Object.defineProperty(exports, $0, {\n    enumerable: true,\n    get: function () {\n      return $1;\n    }\n  });\n"),A=(0,h.default)("\n  exports.__esModule = true;\n"),S=(0,h.default)("\n  exports.$0 = $1;\n"),_=(0,h.default)('\n  Object.keys(OBJECT).forEach(function (key) {\n    if (key === "default" || key === "__esModule") return;\n    Object.defineProperty(exports, key, {\n      enumerable: true,\n      get: function () {\n        return OBJECT[key];\n      }\n    });\n  });\n'),D=["FunctionExpression","FunctionDeclaration","ClassProperty","ClassMethod","ObjectMethod"];e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(10),o=n(a);t.default=function(e){function t(e,t,r,n,i){new l.default({getObjectRef:n,methodNode:t,methodPath:e,isStatic:!0,scope:r,file:i}).replace()}var r=e.types,n=(0,o.default)();return{visitor:{Super:function(e){var t=e.findParent(function(e){return e.isObjectExpression()});t&&(t.node[n]=!0)},ObjectExpression:{exit:function(e,i){if(e.node[n]){for(var a=void 0,o=function(){return a=a||e.scope.generateUidIdentifier("obj")},u=e.get("properties"),l=u,c=Array.isArray(l),f=0,l=c?l:(0,s.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;d.isObjectProperty()&&(d=d.get("value")),t(d,d.node,e.scope,o,i)}a&&(e.scope.push({id:a}),e.replaceWith(r.assignmentExpression("=",a,e.node)))}}}}}};var u=r(193),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}t.__esModule=!0;var i=r(2),s=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default=function(){return{visitor:a.visitors.merge([{ArrowFunctionExpression:function(e){for(var t=e.get("params"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}var o=a;if(o.isRestElement()||o.isAssignmentPattern()){e.arrowFunctionToShadowed();break}}}},u.visitor,p.visitor,c.visitor])}};var a=r(7),o=r(334),u=n(o),l=r(333),c=n(l),f=r(335),p=n(f);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{ObjectMethod:function(e){var t=e.node;if("method"===t.kind){var r=i.functionExpression(null,t.params,t.body,t.generator,t.async);r.returnType=t.returnType,e.replaceWith(i.objectProperty(t.key,r,t.computed))}},ObjectProperty:function(e){var t=e.node;t.shorthand&&(t.shorthand=!1)}}}};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e,t,r){return r.opts.loose&&!s.isIdentifier(e.argument,{name:"arguments"})?e.argument:t.toArray(e.argument,!0)}function r(e){for(var t=0;t<e.length;t++)if(s.isSpreadElement(e[t]))return!0;return!1}function n(e,r,n){function a(){u.length&&(o.push(s.arrayExpression(u)),u=[])}for(var o=[],u=[],l=e,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;s.isSpreadElement(d)?(a(),o.push(t(d,r,n))):u.push(d)}return a(),o}var s=e.types;return{visitor:{ArrayExpression:function(e,t){var i=e.node,a=e.scope,o=i.elements;if(r(o)){var u=n(o,a,t),l=u.shift();s.isArrayExpression(l)||(u.unshift(l),l=s.arrayExpression([])),e.replaceWith(s.callExpression(s.memberExpression(l,s.identifier("concat")),u))}},CallExpression:function(e,t){var i=e.node,a=e.scope,o=i.arguments;if(r(o)){var u=e.get("callee");if(!u.isSuper()){var l=s.identifier("undefined");i.arguments=[];var c=void 0;c=1===o.length&&"arguments"===o[0].argument.name?[o[0].argument]:n(o,a,t);var f=c.shift();c.length?i.arguments.push(s.callExpression(s.memberExpression(f,s.identifier("concat")),c)):i.arguments.push(f);var p=i.callee;if(u.isMemberExpression()){var d=a.maybeGenerateMemoised(p.object);d?(p.object=s.assignmentExpression("=",d,p.object),l=d):l=p.object,s.appendToMemberExpression(p,s.identifier("apply"))}else i.callee=s.memberExpression(i.callee,s.identifier("apply"));s.isSuper(l)&&(l=s.thisExpression()),i.arguments.unshift(l)}}},NewExpression:function(e,t){var i=e.node,a=e.scope,o=i.arguments;if(r(o)){var u=n(o,a,t),l=s.arrayExpression([s.nullLiteral()]);o=s.callExpression(s.memberExpression(l,s.identifier("concat")),u),e.replaceWith(s.newExpression(s.callExpression(s.memberExpression(s.memberExpression(s.memberExpression(s.identifier("Function"),s.identifier("prototype")),s.identifier("bind")),s.identifier("apply")),[i.callee,o]),[]))}}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}t.__esModule=!0,t.default=function(){return{visitor:{RegExpLiteral:function(e){var t=e.node;s.is(t,"y")&&e.replaceWith(o.newExpression(o.identifier("RegExp"),[o.stringLiteral(t.pattern),o.stringLiteral(t.flags)]))}}}};var i=r(192),s=n(i),a=r(1),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){return n.isLiteral(e)&&"string"==typeof e.value}function r(e,t){return n.binaryExpression("+",e,t)}var n=e.types;return{visitor:{TaggedTemplateExpression:function(e,t){for(var r=e.node,s=r.quasi,a=[],o=[],u=[],l=s.quasis,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;o.push(n.stringLiteral(d.value.cooked)),u.push(n.stringLiteral(d.value.raw))}o=n.arrayExpression(o),u=n.arrayExpression(u);var h="taggedTemplateLiteral";t.opts.loose&&(h+="Loose");var m=t.file.addTemplateObject(h,o,u);a.push(m),a=a.concat(s.expressions),e.replaceWith(n.callExpression(r.tag,a))},TemplateLiteral:function(e,s){for(var a=[],o=e.get("expressions"),u=e.node.quasis,l=Array.isArray(u),c=0,u=l?u:(0,i.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;a.push(n.stringLiteral(p.value.cooked));var d=o.shift();d&&(!s.opts.spec||d.isBaseType("string")||d.isBaseType("number")?a.push(d.node):a.push(n.callExpression(n.identifier("String"),[d.node])))}if(a=a.filter(function(e){return!n.isLiteral(e,{value:""})}),t(a[0])||t(a[1])||a.unshift(n.stringLiteral("")),a.length>1){for(var h=r(a.shift(),a.shift()),m=a,y=Array.isArray(m),v=0,m=y?m:(0,i.default)(m);;){var g;if(y){if(v>=m.length)break;g=m[v++]}else{if(v=m.next(),v.done)break;g=v.value}h=r(h,g)}e.replaceWith(h)}else e.replaceWith(a[0])}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(10),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types,r=(0,i.default)();return{visitor:{Scope:function(e){var t=e.scope;t.getBinding("Symbol")&&t.rename("Symbol")},UnaryExpression:function(e){var n=e.node,i=e.parent;if(!n[r]&&!e.find(function(e){return e.node&&!!e.node._generated})){if(e.parentPath.isBinaryExpression()&&t.EQUALITY_BINARY_OPERATORS.indexOf(i.operator)>=0){var s=e.getOpposite();if(s.isLiteral()&&"symbol"!==s.node.value&&"object"!==s.node.value)return}if("typeof"===n.operator){var a=t.callExpression(this.addHelper("typeof"),[n.argument]);if(e.get("argument").isIdentifier()){var o=t.stringLiteral("undefined"),u=t.unaryExpression("typeof",n.argument);u[r]=!0,e.replaceWith(t.conditionalExpression(t.binaryExpression("===",u,o),o,a))}else e.replaceWith(a)}}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{RegExpLiteral:function(e){var t=e.node;a.is(t,"u")&&(t.pattern=(0,i.default)(t.pattern,t.flags),a.pullFlag(t,"u"))}}}};var n=r(612),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(192),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";e.exports=r(606)},function(e,t,r){"use strict";e.exports={default:r(408),__esModule:!0}},function(e,t,r){"use strict";function n(){i(),s()}function i(){t.path=u=new o.default}function s(){t.scope=l=new o.default}t.__esModule=!0,t.scope=t.path=void 0;var a=r(364),o=function(e){return e&&e.__esModule?e:{default:e}}(a);t.clear=n,t.clearPath=i,t.clearScope=s;var u=t.path=new o.default,l=t.scope=new o.default},function(e,t){"use strict";function r(e){return e=e.split(" "),function(t){return e.indexOf(t)>=0}}function n(e,t){for(var r=65536,n=0;n<t.length;n+=2){if((r+=t[n])>e)return!1;if((r+=t[n+1])>=e)return!0}}function i(e){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&x.test(String.fromCharCode(e)):n(e,S)))}function s(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&A.test(String.fromCharCode(e)):n(e,S)||n(e,_))))}function a(e){var t={};for(var r in D)t[r]=e&&r in e?e[r]:D[r];return t}function o(e){return 10===e||13===e||8232===e||8233===e}function u(e,t){for(var r=1,n=0;;){N.lastIndex=n;var i=N.exec(e);if(!(i&&i.index<t))return new V(r,t-n);++r,n=i.index+i[0].length}}function l(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}function c(e,t,r,n){return e.type=t,e.end=r,e.loc.end=n,this.processComment(e),e}function f(e){return e[e.length-1]}function p(e){return e&&"Property"===e.type&&"init"===e.kind&&!1===e.method}function d(e){return"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?d(e.object)+"."+d(e.property):void 0}function h(e,t){return new J(t,e).parse()}function m(e,t){var r=new J(t,e);return r.options.strictMode&&(r.state.strict=!0),r.getExpression()}var y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};Object.defineProperty(t,"__esModule",{value:!0});var v={6:r("enum await"),strict:r("implements interface let package private protected public static yield"),strictBind:r("eval arguments")
},g=r("break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super"),b="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿕ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",E="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఃా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ංඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ູົຼ່-ໍ໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠐-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱꤀-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_",x=new RegExp("["+b+"]"),A=new RegExp("["+b+E+"]");b=E=null;var S=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,54,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,264,8,2,36,18,0,50,29,881,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,65,0,32,6124,20,754,9486,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,60,67,1213,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],_=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,7,0,161,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,87,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,838,7,2,7,17,9,57,21,2,13,19882,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,2214,6,110,6,6,9,792487,239],D={sourceType:"script",sourceFilename:void 0,startLine:1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,plugins:[],strictMode:null},C="function"==typeof Symbol&&"symbol"===y(Symbol.iterator)?function(e){return void 0===e?"undefined":y(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":y(e)},w=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},P=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":y(t)));e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},k=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==(void 0===t?"undefined":y(t))&&"function"!=typeof t?e:t},F=!0,T=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w(this,e),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.rightAssociative=!!r.rightAssociative,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null},O=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return w(this,t),n.keyword=r,k(this,e.call(this,r,n))}return P(t,e),t}(T),B=function(e){function t(r,n){return w(this,t),k(this,e.call(this,r,{beforeExpr:F,binop:n}))}return P(t,e),t}(T),R={num:new T("num",{startsExpr:!0}),regexp:new T("regexp",{startsExpr:!0}),string:new T("string",{startsExpr:!0}),name:new T("name",{startsExpr:!0}),eof:new T("eof"),bracketL:new T("[",{beforeExpr:F,startsExpr:!0}),bracketR:new T("]"),braceL:new T("{",{beforeExpr:F,startsExpr:!0}),braceBarL:new T("{|",{beforeExpr:F,startsExpr:!0}),braceR:new T("}"),braceBarR:new T("|}"),parenL:new T("(",{beforeExpr:F,startsExpr:!0}),parenR:new T(")"),comma:new T(",",{beforeExpr:F}),semi:new T(";",{beforeExpr:F}),colon:new T(":",{beforeExpr:F}),doubleColon:new T("::",{beforeExpr:F}),dot:new T("."),question:new T("?",{beforeExpr:F}),arrow:new T("=>",{beforeExpr:F}),template:new T("template"),ellipsis:new T("...",{beforeExpr:F}),backQuote:new T("`",{startsExpr:!0}),dollarBraceL:new T("${",{beforeExpr:F,startsExpr:!0}),at:new T("@"),eq:new T("=",{beforeExpr:F,isAssign:!0}),assign:new T("_=",{beforeExpr:F,isAssign:!0}),incDec:new T("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new T("prefix",{beforeExpr:F,prefix:!0,startsExpr:!0}),logicalOR:new B("||",1),logicalAND:new B("&&",2),bitwiseOR:new B("|",3),bitwiseXOR:new B("^",4),bitwiseAND:new B("&",5),equality:new B("==/!=",6),relational:new B("</>",7),bitShift:new B("<</>>",8),plusMin:new T("+/-",{beforeExpr:F,binop:9,prefix:!0,startsExpr:!0}),modulo:new B("%",10),star:new B("*",10),slash:new B("/",10),exponent:new T("**",{beforeExpr:F,binop:11,rightAssociative:!0})},I={break:new O("break"),case:new O("case",{beforeExpr:F}),catch:new O("catch"),continue:new O("continue"),debugger:new O("debugger"),default:new O("default",{beforeExpr:F}),do:new O("do",{isLoop:!0,beforeExpr:F}),else:new O("else",{beforeExpr:F}),finally:new O("finally"),for:new O("for",{isLoop:!0}),function:new O("function",{startsExpr:!0}),if:new O("if"),return:new O("return",{beforeExpr:F}),switch:new O("switch"),throw:new O("throw",{beforeExpr:F}),try:new O("try"),var:new O("var"),let:new O("let"),const:new O("const"),while:new O("while",{isLoop:!0}),with:new O("with"),new:new O("new",{beforeExpr:F,startsExpr:!0}),this:new O("this",{startsExpr:!0}),super:new O("super",{startsExpr:!0}),class:new O("class"),extends:new O("extends",{beforeExpr:F}),export:new O("export"),import:new O("import",{startsExpr:!0}),yield:new O("yield",{beforeExpr:F,startsExpr:!0}),null:new O("null",{startsExpr:!0}),true:new O("true",{startsExpr:!0}),false:new O("false",{startsExpr:!0}),in:new O("in",{beforeExpr:F,binop:7}),instanceof:new O("instanceof",{beforeExpr:F,binop:7}),typeof:new O("typeof",{beforeExpr:F,prefix:!0,startsExpr:!0}),void:new O("void",{beforeExpr:F,prefix:!0,startsExpr:!0}),delete:new O("delete",{beforeExpr:F,prefix:!0,startsExpr:!0})};Object.keys(I).forEach(function(e){R["_"+e]=I[e]});var M=/\r\n?|\n|\u2028|\u2029/,N=new RegExp(M.source,"g"),L=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,j=function e(t,r,n,i){w(this,e),this.token=t,this.isExpr=!!r,this.preserveSpace=!!n,this.override=i},U={braceStatement:new j("{",!1),braceExpression:new j("{",!0),templateQuasi:new j("${",!0),parenStatement:new j("(",!1),parenExpression:new j("(",!0),template:new j("`",!0,!0,function(e){return e.readTmplToken()}),functionExpression:new j("function",!0)};R.parenR.updateContext=R.braceR.updateContext=function(){if(1===this.state.context.length)return void(this.state.exprAllowed=!0);var e=this.state.context.pop();e===U.braceStatement&&this.curContext()===U.functionExpression?(this.state.context.pop(),this.state.exprAllowed=!1):e===U.templateQuasi?this.state.exprAllowed=!0:this.state.exprAllowed=!e.isExpr},R.name.updateContext=function(e){this.state.exprAllowed=!1,e!==R._let&&e!==R._const&&e!==R._var||M.test(this.input.slice(this.state.end))&&(this.state.exprAllowed=!0)},R.braceL.updateContext=function(e){this.state.context.push(this.braceIsBlock(e)?U.braceStatement:U.braceExpression),this.state.exprAllowed=!0},R.dollarBraceL.updateContext=function(){this.state.context.push(U.templateQuasi),this.state.exprAllowed=!0},R.parenL.updateContext=function(e){var t=e===R._if||e===R._for||e===R._with||e===R._while;this.state.context.push(t?U.parenStatement:U.parenExpression),this.state.exprAllowed=!0},R.incDec.updateContext=function(){},R._function.updateContext=function(){this.curContext()!==U.braceStatement&&this.state.context.push(U.functionExpression),this.state.exprAllowed=!1},R.backQuote.updateContext=function(){this.curContext()===U.template?this.state.context.pop():this.state.context.push(U.template),this.state.exprAllowed=!1};var V=function e(t,r){w(this,e),this.line=t,this.column=r},G=function e(t,r){w(this,e),this.start=t,this.end=r},W=function(){function e(){w(this,e)}return e.prototype.init=function(e,t){return this.strict=!1!==e.strictMode&&"module"===e.sourceType,this.input=t,this.potentialArrowAt=-1,this.inMethod=this.inFunction=this.inGenerator=this.inAsync=this.inPropertyName=this.inType=this.inClassProperty=this.noAnonFunctionType=!1,this.labels=[],this.decorators=[],this.tokens=[],this.comments=[],this.trailingComments=[],this.leadingComments=[],this.commentStack=[],this.pos=this.lineStart=0,this.curLine=e.startLine,this.type=R.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=[U.braceStatement],this.exprAllowed=!0,this.containsEsc=this.containsOctal=!1,this.octalPosition=null,this.invalidTemplateEscapePosition=null,this.exportedIdentifiers=[],this},e.prototype.curPosition=function(){return new V(this.curLine,this.pos-this.lineStart)},e.prototype.clone=function(t){var r=new e;for(var n in this){var i=this[n];t&&"context"!==n||!Array.isArray(i)||(i=i.slice()),r[n]=i}return r},e}(),Y=function e(t){w(this,e),this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new G(t.startLoc,t.endLoc)},q=function(){function e(t,r){w(this,e),this.state=new W,this.state.init(t,r)}return e.prototype.next=function(){this.isLookahead||this.state.tokens.push(new Y(this.state)),this.state.lastTokEnd=this.state.end,this.state.lastTokStart=this.state.start,this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()},e.prototype.eat=function(e){return!!this.match(e)&&(this.next(),!0)},e.prototype.match=function(e){return this.state.type===e},e.prototype.isKeyword=function(e){return g(e)},e.prototype.lookahead=function(){var e=this.state;this.state=e.clone(!0),this.isLookahead=!0,this.next(),this.isLookahead=!1;var t=this.state.clone(!0);return this.state=e,t},e.prototype.setStrict=function(e){if(this.state.strict=e,this.match(R.num)||this.match(R.string)){for(this.state.pos=this.state.start;this.state.pos<this.state.lineStart;)this.state.lineStart=this.input.lastIndexOf("\n",this.state.lineStart-2)+1,--this.state.curLine;this.nextToken()}},e.prototype.curContext=function(){return this.state.context[this.state.context.length-1]},e.prototype.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.state.containsOctal=!1,this.state.octalPosition=null,this.state.start=this.state.pos,this.state.startLoc=this.state.curPosition(),this.state.pos>=this.input.length?this.finishToken(R.eof):e.override?e.override(this):this.readToken(this.fullCharCodeAtPos())},e.prototype.readToken=function(e){return i(e)||92===e?this.readWord():this.getTokenFromCode(e)},e.prototype.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.state.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.state.pos+1)-56613888},e.prototype.pushComment=function(e,t,r,n,i,s){var a={type:e?"CommentBlock":"CommentLine",value:t,start:r,end:n,loc:new G(i,s)};this.isLookahead||(this.state.tokens.push(a),this.state.comments.push(a),this.addComment(a))},e.prototype.skipBlockComment=function(){var e=this.state.curPosition(),t=this.state.pos,r=this.input.indexOf("*/",this.state.pos+=2);-1===r&&this.raise(this.state.pos-2,"Unterminated comment"),this.state.pos=r+2,N.lastIndex=t;for(var n=void 0;(n=N.exec(this.input))&&n.index<this.state.pos;)++this.state.curLine,this.state.lineStart=n.index+n[0].length;this.pushComment(!0,this.input.slice(t+2,r),t,this.state.pos,e,this.state.curPosition())},e.prototype.skipLineComment=function(e){for(var t=this.state.pos,r=this.state.curPosition(),n=this.input.charCodeAt(this.state.pos+=e);this.state.pos<this.input.length&&10!==n&&13!==n&&8232!==n&&8233!==n;)++this.state.pos,n=this.input.charCodeAt(this.state.pos);this.pushComment(!1,this.input.slice(t+e,this.state.pos),t,this.state.pos,r,this.state.curPosition())},e.prototype.skipSpace=function(){e:for(;this.state.pos<this.input.length;){var e=this.input.charCodeAt(this.state.pos);switch(e){case 32:case 160:++this.state.pos;break;case 13:10===this.input.charCodeAt(this.state.pos+1)&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&L.test(String.fromCharCode(e))))break e;++this.state.pos}}},e.prototype.finishToken=function(e,t){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();var r=this.state.type;this.state.type=e,this.state.value=t,this.updateContext(r)},e.prototype.readToken_dot=function(){var e=this.input.charCodeAt(this.state.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.state.pos+2);return 46===e&&46===t?(this.state.pos+=3,this.finishToken(R.ellipsis)):(++this.state.pos,this.finishToken(R.dot))},e.prototype.readToken_slash=function(){return this.state.exprAllowed?(++this.state.pos,this.readRegexp()):61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.assign,2):this.finishOp(R.slash,1)},e.prototype.readToken_mult_modulo=function(e){var t=42===e?R.star:R.modulo,r=1,n=this.input.charCodeAt(this.state.pos+1);return 42===n&&(r++,n=this.input.charCodeAt(this.state.pos+2),t=R.exponent),61===n&&(r++,t=R.assign),this.finishOp(t,r)},e.prototype.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?this.finishOp(124===e?R.logicalOR:R.logicalAND,2):61===t?this.finishOp(R.assign,2):124===e&&125===t&&this.hasPlugin("flow")?this.finishOp(R.braceBarR,2):this.finishOp(124===e?R.bitwiseOR:R.bitwiseAND,1)},e.prototype.readToken_caret=function(){return 61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.assign,2):this.finishOp(R.bitwiseXOR,1)},e.prototype.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.state.pos+1);return t===e?45===t&&62===this.input.charCodeAt(this.state.pos+2)&&M.test(this.input.slice(this.state.lastTokEnd,this.state.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(R.incDec,2):61===t?this.finishOp(R.assign,2):this.finishOp(R.plusMin,1)},e.prototype.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.state.pos+1),r=1;return t===e?(r=62===e&&62===this.input.charCodeAt(this.state.pos+2)?3:2,61===this.input.charCodeAt(this.state.pos+r)?this.finishOp(R.assign,r+1):this.finishOp(R.bitShift,r)):33===t&&60===e&&45===this.input.charCodeAt(this.state.pos+2)&&45===this.input.charCodeAt(this.state.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(r=2),this.finishOp(R.relational,r))},e.prototype.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.state.pos+1);return 61===t?this.finishOp(R.equality,61===this.input.charCodeAt(this.state.pos+2)?3:2):61===e&&62===t?(this.state.pos+=2,this.finishToken(R.arrow)):this.finishOp(61===e?R.eq:R.prefix,1)},e.prototype.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.state.pos,this.finishToken(R.parenL);case 41:return++this.state.pos,this.finishToken(R.parenR);case 59:return++this.state.pos,this.finishToken(R.semi);case 44:return++this.state.pos,this.finishToken(R.comma);case 91:return++this.state.pos,this.finishToken(R.bracketL);case 93:return++this.state.pos,this.finishToken(R.bracketR);case 123:return this.hasPlugin("flow")&&124===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.braceBarL,2):(++this.state.pos,this.finishToken(R.braceL));case 125:return++this.state.pos,this.finishToken(R.braceR);case 58:return this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(R.doubleColon,2):(++this.state.pos,this.finishToken(R.colon));case 63:return++this.state.pos,this.finishToken(R.question);case 64:return++this.state.pos,this.finishToken(R.at);case 96:return++this.state.pos,this.finishToken(R.backQuote);case 48:var t=this.input.charCodeAt(this.state.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 126:return this.finishOp(R.prefix,1)}this.raise(this.state.pos,"Unexpected character '"+l(e)+"'")},e.prototype.finishOp=function(e,t){var r=this.input.slice(this.state.pos,this.state.pos+t);return this.state.pos+=t,this.finishToken(e,r)},e.prototype.readRegexp=function(){for(var e=this.state.pos,t=void 0,r=void 0;;){this.state.pos>=this.input.length&&this.raise(e,"Unterminated regular expression");var n=this.input.charAt(this.state.pos);if(M.test(n)&&this.raise(e,"Unterminated regular expression"),t)t=!1;else{if("["===n)r=!0;else if("]"===n&&r)r=!1;else if("/"===n&&!r)break;t="\\"===n}++this.state.pos}var i=this.input.slice(e,this.state.pos);++this.state.pos;var s=this.readWord1();if(s){/^[gmsiyu]*$/.test(s)||this.raise(e,"Invalid regular expression flag")}return this.finishToken(R.regexp,{pattern:i,flags:s})},e.prototype.readInt=function(e,t){for(var r=this.state.pos,n=0,i=0,s=null==t?1/0:t;i<s;++i){var a=this.input.charCodeAt(this.state.pos),o=void 0;if((o=a>=97?a-97+10:a>=65?a-65+10:a>=48&&a<=57?a-48:1/0)>=e)break;++this.state.pos,n=n*e+o}return this.state.pos===r||null!=t&&this.state.pos-r!==t?null:n},e.prototype.readRadixNumber=function(e){this.state.pos+=2;var t=this.readInt(e);return null==t&&this.raise(this.state.start+2,"Expected number in radix "+e),i(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number"),this.finishToken(R.num,t)},e.prototype.readNumber=function(e){var t=this.state.pos,r=48===this.input.charCodeAt(t),n=!1;e||null!==this.readInt(10)||this.raise(t,"Invalid number"),r&&this.state.pos==t+1&&(r=!1);var s=this.input.charCodeAt(this.state.pos);46!==s||r||(++this.state.pos,this.readInt(10),n=!0,s=this.input.charCodeAt(this.state.pos)),69!==s&&101!==s||r||(s=this.input.charCodeAt(++this.state.pos),43!==s&&45!==s||++this.state.pos,null===this.readInt(10)&&this.raise(t,"Invalid number"),n=!0),i(this.fullCharCodeAtPos())&&this.raise(this.state.pos,"Identifier directly after number");var a=this.input.slice(t,this.state.pos),o=void 0;return n?o=parseFloat(a):r&&1!==a.length?this.state.strict?this.raise(t,"Invalid number"):o=/[89]/.test(a)?parseInt(a,10):parseInt(a,8):o=parseInt(a,10),this.finishToken(R.num,o)},e.prototype.readCodePoint=function(e){var t=this.input.charCodeAt(this.state.pos),r=void 0;if(123===t){var n=++this.state.pos;if(r=this.readHexChar(this.input.indexOf("}",this.state.pos)-this.state.pos,e),++this.state.pos,null===r)--this.state.invalidTemplateEscapePosition;else if(r>1114111){if(!e)return this.state.invalidTemplateEscapePosition=n-2,null;this.raise(n,"Code point out of bounds")}}else r=this.readHexChar(4,e);return r},e.prototype.readString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;92===n?(t+=this.input.slice(r,this.state.pos),t+=this.readEscapedChar(!1),r=this.state.pos):(o(n)&&this.raise(this.state.start,"Unterminated string constant"),++this.state.pos)}return t+=this.input.slice(r,this.state.pos++),this.finishToken(R.string,t)},e.prototype.readTmplToken=function(){for(var e="",t=this.state.pos,r=!1;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated template");var n=this.input.charCodeAt(this.state.pos);if(96===n||36===n&&123===this.input.charCodeAt(this.state.pos+1))return this.state.pos===this.state.start&&this.match(R.template)?36===n?(this.state.pos+=2,this.finishToken(R.dollarBraceL)):(++this.state.pos,this.finishToken(R.backQuote)):(e+=this.input.slice(t,this.state.pos),this.finishToken(R.template,r?null:e));if(92===n){e+=this.input.slice(t,this.state.pos);var i=this.readEscapedChar(!0);null===i?r=!0:e+=i,t=this.state.pos}else if(o(n)){switch(e+=this.input.slice(t,this.state.pos),++this.state.pos,n){case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(n)}++this.state.curLine,this.state.lineStart=this.state.pos,t=this.state.pos}else++this.state.pos}},e.prototype.readEscapedChar=function(e){var t=!e,r=this.input.charCodeAt(++this.state.pos);switch(++this.state.pos,r){case 110:return"\n";case 114:return"\r";case 120:var n=this.readHexChar(2,t);return null===n?null:String.fromCharCode(n);case 117:var i=this.readCodePoint(t);return null===i?null:l(i);case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.state.pos)&&++this.state.pos;case 10:return this.state.lineStart=this.state.pos,++this.state.curLine,"";default:if(r>=48&&r<=55){var s=this.state.pos-1,a=this.input.substr(this.state.pos-1,3).match(/^[0-7]+/)[0],o=parseInt(a,8);if(o>255&&(a=a.slice(0,-1),o=parseInt(a,8)),o>0){if(e)return this.state.invalidTemplateEscapePosition=s,null;this.state.strict?this.raise(s,"Octal literal in strict mode"):this.state.containsOctal||(this.state.containsOctal=!0,this.state.octalPosition=s)}return this.state.pos+=a.length-1,String.fromCharCode(o)}return String.fromCharCode(r)}},e.prototype.readHexChar=function(e,t){var r=this.state.pos,n=this.readInt(16,e);return null===n&&(t?this.raise(r,"Bad character escape sequence"):(this.state.pos=r-1,this.state.invalidTemplateEscapePosition=r-1)),n},e.prototype.readWord1=function(){this.state.containsEsc=!1;for(var e="",t=!0,r=this.state.pos;this.state.pos<this.input.length;){var n=this.fullCharCodeAtPos();if(s(n))this.state.pos+=n<=65535?1:2;else{if(92!==n)break;this.state.containsEsc=!0,e+=this.input.slice(r,this.state.pos);var a=this.state.pos;117!==this.input.charCodeAt(++this.state.pos)&&this.raise(this.state.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.state.pos;var o=this.readCodePoint(!0);(t?i:s)(o,!0)||this.raise(a,"Invalid Unicode escape"),e+=l(o),r=this.state.pos}t=!1}return e+this.input.slice(r,this.state.pos)},e.prototype.readWord=function(){var e=this.readWord1(),t=R.name;return!this.state.containsEsc&&this.isKeyword(e)&&(t=I[e]),this.finishToken(t,e)},e.prototype.braceIsBlock=function(e){if(e===R.colon){var t=this.curContext();if(t===U.braceStatement||t===U.braceExpression)return!t.isExpr}return e===R._return?M.test(this.input.slice(this.state.lastTokEnd,this.state.start)):e===R._else||e===R.semi||e===R.eof||e===R.parenR||(e===R.braceL?this.curContext()===U.braceStatement:!this.state.exprAllowed)},e.prototype.updateContext=function(e){var t=this.state.type,r=void 0;t.keyword&&e===R.dot?this.state.exprAllowed=!1:(r=t.updateContext)?r.call(this,e):this.state.exprAllowed=t.beforeExpr},e}(),K={},H=["jsx","doExpressions","objectRestSpread","decorators","classProperties","exportExtensions","asyncGenerators","functionBind","functionSent","dynamicImport","flow"],J=function(e){function t(r,n){w(this,t),r=a(r);var i=k(this,e.call(this,r,n));return i.options=r,i.inModule="module"===i.options.sourceType,i.input=n,i.plugins=i.loadPlugins(i.options.plugins),i.filename=r.sourceFilename,0===i.state.pos&&"#"===i.input[0]&&"!"===i.input[1]&&i.skipLineComment(2),i}return P(t,e),t.prototype.isReservedWord=function(e){return"await"===e?this.inModule:v[6](e)},t.prototype.hasPlugin=function(e){return!!(this.plugins["*"]&&H.indexOf(e)>-1)||!!this.plugins[e]},t.prototype.extend=function(e,t){this[e]=t(this[e])},t.prototype.loadAllPlugins=function(){var e=this,t=Object.keys(K).filter(function(e){return"flow"!==e&&"estree"!==e});t.push("flow"),t.forEach(function(t){var r=K[t];r&&r(e)})},t.prototype.loadPlugins=function(e){if(e.indexOf("*")>=0)return this.loadAllPlugins(),{"*":!0};var t={};e.indexOf("flow")>=0&&(e=e.filter(function(e){return"flow"!==e}),e.push("flow")),e.indexOf("estree")>=0&&(e=e.filter(function(e){return"estree"!==e}),e.unshift("estree"));for(var r=e,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if(!t[a]){t[a]=!0;var o=K[a];o&&o(this)}}return t},t.prototype.parse=function(){var e=this.startNode(),t=this.startNode();return this.nextToken(),this.parseTopLevel(e,t)},t}(q),X=J.prototype;X.addExtra=function(e,t,r){if(e){(e.extra=e.extra||{})[t]=r}},X.isRelational=function(e){return this.match(R.relational)&&this.state.value===e},X.expectRelational=function(e){this.isRelational(e)?this.next():this.unexpected(null,R.relational)},X.isContextual=function(e){return this.match(R.name)&&this.state.value===e},X.eatContextual=function(e){return this.state.value===e&&this.eat(R.name)},X.expectContextual=function(e,t){this.eatContextual(e)||this.unexpected(null,t)},X.canInsertSemicolon=function(){return this.match(R.eof)||this.match(R.braceR)||M.test(this.input.slice(this.state.lastTokEnd,this.state.start))},X.isLineTerminator=function(){return this.eat(R.semi)||this.canInsertSemicolon()},X.semicolon=function(){this.isLineTerminator()||this.unexpected(null,R.semi)},X.expect=function(e,t){return this.eat(e)||this.unexpected(t,e)},X.unexpected=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unexpected token";t&&"object"===(void 0===t?"undefined":C(t))&&t.label&&(t="Unexpected token, expected "+t.label),this.raise(null!=e?e:this.state.start,t)};var z=J.prototype;z.parseTopLevel=function(e,t){return t.sourceType=this.options.sourceType,this.parseBlockBody(t,!0,!0,R.eof),e.program=this.finishNode(t,"Program"),e.comments=this.state.comments,e.tokens=this.state.tokens,this.finishNode(e,"File")};var $={kind:"loop"},Q={kind:"switch"};z.stmtToDirective=function(e){var t=e.expression,r=this.startNodeAt(t.start,t.loc.start),n=this.startNodeAt(e.start,e.loc.start),i=this.input.slice(t.start,t.end),s=r.value=i.slice(1,-1);return this.addExtra(r,"raw",i),this.addExtra(r,"rawValue",s),n.value=this.finishNodeAt(r,"DirectiveLiteral",t.end,t.loc.end),this.finishNodeAt(n,"Directive",e.end,e.loc.end)},z.parseStatement=function(e,t){this.match(R.at)&&this.parseDecorators(!0);var r=this.state.type,n=this.startNode();switch(r){case R._break:case R._continue:return this.parseBreakContinueStatement(n,r.keyword);case R._debugger:return this.parseDebuggerStatement(n);case R._do:return this.parseDoStatement(n);case R._for:return this.parseForStatement(n);case R._function:return e||this.unexpected(),this.parseFunctionStatement(n);case R._class:return e||this.unexpected(),this.parseClass(n,!0);case R._if:return this.parseIfStatement(n);case R._return:return this.parseReturnStatement(n);case R._switch:return this.parseSwitchStatement(n);case R._throw:return this.parseThrowStatement(n);case R._try:return this.parseTryStatement(n);case R._let:case R._const:e||this.unexpected();case R._var:return this.parseVarStatement(n,r);case R._while:return this.parseWhileStatement(n);case R._with:return this.parseWithStatement(n);case R.braceL:return this.parseBlock();case R.semi:return this.parseEmptyStatement(n);case R._export:case R._import:if(this.hasPlugin("dynamicImport")&&this.lookahead().type===R.parenL)break;return this.options.allowImportExportEverywhere||(t||this.raise(this.state.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.state.start,"'import' and 'export' may appear only with 'sourceType: \"module\"'")),r===R._import?this.parseImport(n):this.parseExport(n);case R.name:if("async"===this.state.value){var i=this.state.clone();if(this.next(),this.match(R._function)&&!this.canInsertSemicolon())return this.expect(R._function),this.parseFunction(n,!0,!1,!0);this.state=i}}var s=this.state.value,a=this.parseExpression();return r===R.name&&"Identifier"===a.type&&this.eat(R.colon)?this.parseLabeledStatement(n,s,a):this.parseExpressionStatement(n,a)},z.takeDecorators=function(e){this.state.decorators.length&&(e.decorators=this.state.decorators,this.state.decorators=[])},z.parseDecorators=function(e){for(;this.match(R.at);){var t=this.parseDecorator();this.state.decorators.push(t)}e&&this.match(R._export)||this.match(R._class)||this.raise(this.state.start,"Leading decorators must be attached to a class declaration")},z.parseDecorator=function(){this.hasPlugin("decorators")||this.unexpected();var e=this.startNode();return this.next(),e.expression=this.parseMaybeAssign(),this.finishNode(e,"Decorator")},z.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.isLineTerminator()?e.label=null:this.match(R.name)?(e.label=this.parseIdentifier(),this.semicolon()):this.unexpected();var n=void 0;for(n=0;n<this.state.labels.length;++n){var i=this.state.labels[n];if(null==e.label||i.name===e.label.name){if(null!=i.kind&&(r||"loop"===i.kind))break;if(e.label&&r)break}}return n===this.state.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},z.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},z.parseDoStatement=function(e){return this.next(),this.state.labels.push($),e.body=this.parseStatement(!1),this.state.labels.pop(),this.expect(R._while),e.test=this.parseParenExpression(),this.eat(R.semi),this.finishNode(e,"DoWhileStatement")},z.parseForStatement=function(e){this.next(),this.state.labels.push($);var t=!1;if(this.hasPlugin("asyncGenerators")&&this.state.inAsync&&this.isContextual("await")&&(t=!0,this.next()),this.expect(R.parenL),this.match(R.semi))return t&&this.unexpected(),this.parseFor(e,null);if(this.match(R._var)||this.match(R._let)||this.match(R._const)){var r=this.startNode(),n=this.state.type;return this.next(),(this.parseVar(r,!0,n),this.finishNode(r,"VariableDeclaration"),!this.match(R._in)&&!this.isContextual("of")||1!==r.declarations.length||r.declarations[0].init)?(t&&this.unexpected(),
this.parseFor(e,r)):this.parseForIn(e,r,t)}var i={start:0},s=this.parseExpression(!0,i);if(this.match(R._in)||this.isContextual("of")){var a=this.isContextual("of")?"for-of statement":"for-in statement";return this.toAssignable(s,void 0,a),this.checkLVal(s,void 0,void 0,a),this.parseForIn(e,s,t)}return i.start&&this.unexpected(i.start),t&&this.unexpected(),this.parseFor(e,s)},z.parseFunctionStatement=function(e){return this.next(),this.parseFunction(e,!0)},z.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!1),e.alternate=this.eat(R._else)?this.parseStatement(!1):null,this.finishNode(e,"IfStatement")},z.parseReturnStatement=function(e){return this.state.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.state.start,"'return' outside of function"),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},z.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(R.braceL),this.state.labels.push(Q);for(var t,r=void 0;!this.match(R.braceR);)if(this.match(R._case)||this.match(R._default)){var n=this.match(R._case);r&&this.finishNode(r,"SwitchCase"),e.cases.push(r=this.startNode()),r.consequent=[],this.next(),n?r.test=this.parseExpression():(t&&this.raise(this.state.lastTokStart,"Multiple default clauses"),t=!0,r.test=null),this.expect(R.colon)}else r?r.consequent.push(this.parseStatement(!0)):this.unexpected();return r&&this.finishNode(r,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")},z.parseThrowStatement=function(e){return this.next(),M.test(this.input.slice(this.state.lastTokEnd,this.state.start))&&this.raise(this.state.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var Z=[];z.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(R._catch)){var t=this.startNode();this.next(),this.expect(R.parenL),t.param=this.parseBindingAtom(),this.checkLVal(t.param,!0,Object.create(null),"catch clause"),this.expect(R.parenR),t.body=this.parseBlock(),e.handler=this.finishNode(t,"CatchClause")}return e.guardedHandlers=Z,e.finalizer=this.eat(R._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},z.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},z.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.state.labels.push($),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"WhileStatement")},z.parseWithStatement=function(e){return this.state.strict&&this.raise(this.state.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},z.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},z.parseLabeledStatement=function(e,t,r){for(var n=this.state.labels,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}a.name===t&&this.raise(r.start,"Label '"+t+"' is already declared")}for(var o=this.state.type.isLoop?"loop":this.match(R._switch)?"switch":null,u=this.state.labels.length-1;u>=0;u--){var l=this.state.labels[u];if(l.statementStart!==e.start)break;l.statementStart=this.state.start,l.kind=o}return this.state.labels.push({name:t,kind:o,statementStart:this.state.start}),e.body=this.parseStatement(!0),this.state.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},z.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},z.parseBlock=function(e){var t=this.startNode();return this.expect(R.braceL),this.parseBlockBody(t,e,!1,R.braceR),this.finishNode(t,"BlockStatement")},z.isValidDirective=function(e){return"ExpressionStatement"===e.type&&"StringLiteral"===e.expression.type&&!e.expression.extra.parenthesized},z.parseBlockBody=function(e,t,r,n){e.body=[],e.directives=[];for(var i=!1,s=void 0,a=void 0;!this.eat(n);){i||!this.state.containsOctal||a||(a=this.state.octalPosition);var o=this.parseStatement(!0,r);if(t&&!i&&this.isValidDirective(o)){var u=this.stmtToDirective(o);e.directives.push(u),void 0===s&&"use strict"===u.value.value&&(s=this.state.strict,this.setStrict(!0),a&&this.raise(a,"Octal literal in strict mode"))}else i=!0,e.body.push(o)}!1===s&&this.setStrict(!1)},z.parseFor=function(e,t){return e.init=t,this.expect(R.semi),e.test=this.match(R.semi)?null:this.parseExpression(),this.expect(R.semi),e.update=this.match(R.parenR)?null:this.parseExpression(),this.expect(R.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"ForStatement")},z.parseForIn=function(e,t,r){var n=void 0;return r?(this.eatContextual("of"),n="ForAwaitStatement"):(n=this.match(R._in)?"ForInStatement":"ForOfStatement",this.next()),e.left=t,e.right=this.parseExpression(),this.expect(R.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,n)},z.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r.keyword;;){var n=this.startNode();if(this.parseVarHead(n),this.eat(R.eq)?n.init=this.parseMaybeAssign(t):r!==R._const||this.match(R._in)||this.isContextual("of")?"Identifier"===n.id.type||t&&(this.match(R._in)||this.isContextual("of"))?n.init=null:this.raise(this.state.lastTokEnd,"Complex binding patterns require an initialization value"):this.unexpected(),e.declarations.push(this.finishNode(n,"VariableDeclarator")),!this.eat(R.comma))break}return e},z.parseVarHead=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0,void 0,"variable declaration")},z.parseFunction=function(e,t,r,n,i){var s=this.state.inMethod;return this.state.inMethod=!1,this.initFunction(e,n),this.match(R.star)&&(e.async&&!this.hasPlugin("asyncGenerators")?this.unexpected():(e.generator=!0,this.next())),!t||i||this.match(R.name)||this.match(R._yield)||this.unexpected(),(this.match(R.name)||this.match(R._yield))&&(e.id=this.parseBindingIdentifier()),this.parseFunctionParams(e),this.parseFunctionBody(e,r),this.state.inMethod=s,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},z.parseFunctionParams=function(e){this.expect(R.parenL),e.params=this.parseBindingList(R.parenR)},z.parseClass=function(e,t,r){return this.next(),this.takeDecorators(e),this.parseClassId(e,t,r),this.parseClassSuper(e),this.parseClassBody(e),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},z.isClassProperty=function(){return this.match(R.eq)||this.match(R.semi)||this.match(R.braceR)},z.isClassMethod=function(){return this.match(R.parenL)},z.isNonstaticConstructor=function(e){return!(e.computed||e.static||"constructor"!==e.key.name&&"constructor"!==e.key.value)},z.parseClassBody=function(e){var t=this.state.strict;this.state.strict=!0;var r=!1,n=!1,i=[],s=this.startNode();for(s.body=[],this.expect(R.braceL);!this.eat(R.braceR);)if(this.eat(R.semi))i.length>0&&this.raise(this.state.lastTokEnd,"Decorators must not be followed by a semicolon");else if(this.match(R.at))i.push(this.parseDecorator());else{var a=this.startNode();if(i.length&&(a.decorators=i,i=[]),a.static=!1,this.match(R.name)&&"static"===this.state.value){var o=this.parseIdentifier(!0);if(this.isClassMethod()){a.kind="method",a.computed=!1,a.key=o,this.parseClassMethod(s,a,!1,!1);continue}if(this.isClassProperty()){a.computed=!1,a.key=o,s.body.push(this.parseClassProperty(a));continue}a.static=!0}if(this.eat(R.star))a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be a generator"),a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.parseClassMethod(s,a,!0,!1);else{var u=this.match(R.name),l=this.parsePropertyName(a);if(a.computed||!a.static||"prototype"!==a.key.name&&"prototype"!==a.key.value||this.raise(a.key.start,"Classes may not have static property named prototype"),this.isClassMethod())this.isNonstaticConstructor(a)?(n?this.raise(l.start,"Duplicate constructor in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),n=!0,a.kind="constructor"):a.kind="method",this.parseClassMethod(s,a,!1,!1);else if(this.isClassProperty())this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a));else if(u&&"async"===l.name&&!this.isLineTerminator()){var c=this.hasPlugin("asyncGenerators")&&this.eat(R.star);a.kind="method",this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't be an async function"),this.parseClassMethod(s,a,c,!0)}else!u||"get"!==l.name&&"set"!==l.name||this.isLineTerminator()&&this.match(R.star)?this.hasPlugin("classConstructorCall")&&u&&"call"===l.name&&this.match(R.name)&&"constructor"===this.state.value?(r?this.raise(a.start,"Duplicate constructor call in the same class"):a.decorators&&this.raise(a.start,"You can't attach decorators to a class constructor"),r=!0,a.kind="constructorCall",this.parsePropertyName(a),this.parseClassMethod(s,a,!1,!1)):this.isLineTerminator()?(this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Classes may not have a non-static field named 'constructor'"),s.body.push(this.parseClassProperty(a))):this.unexpected():(a.kind=l.name,this.parsePropertyName(a),this.isNonstaticConstructor(a)&&this.raise(a.key.start,"Constructor can't have get/set modifier"),this.parseClassMethod(s,a,!1,!1),this.checkGetterSetterParamCount(a))}}i.length&&this.raise(this.state.start,"You have trailing decorators with no method"),e.body=this.finishNode(s,"ClassBody"),this.state.strict=t},z.parseClassProperty=function(e){return this.state.inClassProperty=!0,this.match(R.eq)?(this.hasPlugin("classProperties")||this.unexpected(),this.next(),e.value=this.parseMaybeAssign()):e.value=null,this.semicolon(),this.state.inClassProperty=!1,this.finishNode(e,"ClassProperty")},z.parseClassMethod=function(e,t,r,n){this.parseMethod(t,r,n),e.body.push(this.finishNode(t,"ClassMethod"))},z.parseClassId=function(e,t,r){this.match(R.name)?e.id=this.parseIdentifier():r||!t?e.id=null:this.unexpected()},z.parseClassSuper=function(e){e.superClass=this.eat(R._extends)?this.parseExprSubscripts():null},z.parseExport=function(e){if(this.next(),this.match(R.star)){var t=this.startNode();if(this.next(),!this.hasPlugin("exportExtensions")||!this.eatContextual("as"))return this.parseExportFrom(e,!0),this.finishNode(e,"ExportAllDeclaration");t.exported=this.parseIdentifier(),e.specifiers=[this.finishNode(t,"ExportNamespaceSpecifier")],this.parseExportSpecifiersMaybe(e),this.parseExportFrom(e,!0)}else if(this.hasPlugin("exportExtensions")&&this.isExportDefaultSpecifier()){var r=this.startNode();if(r.exported=this.parseIdentifier(!0),e.specifiers=[this.finishNode(r,"ExportDefaultSpecifier")],this.match(R.comma)&&this.lookahead().type===R.star){this.expect(R.comma);var n=this.startNode();this.expect(R.star),this.expectContextual("as"),n.exported=this.parseIdentifier(),e.specifiers.push(this.finishNode(n,"ExportNamespaceSpecifier"))}else this.parseExportSpecifiersMaybe(e);this.parseExportFrom(e,!0)}else{if(this.eat(R._default)){var i=this.startNode(),s=!1;return this.eat(R._function)?i=this.parseFunction(i,!0,!1,!1,!0):this.match(R._class)?i=this.parseClass(i,!0,!0):(s=!0,i=this.parseMaybeAssign()),e.declaration=i,s&&this.semicolon(),this.checkExport(e,!0,!0),this.finishNode(e,"ExportDefaultDeclaration")}this.shouldParseExportDeclaration()?(e.specifiers=[],e.source=null,e.declaration=this.parseExportDeclaration(e)):(e.declaration=null,e.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(e))}return this.checkExport(e,!0),this.finishNode(e,"ExportNamedDeclaration")},z.parseExportDeclaration=function(){return this.parseStatement(!0)},z.isExportDefaultSpecifier=function(){if(this.match(R.name))return"async"!==this.state.value;if(!this.match(R._default))return!1;var e=this.lookahead();return e.type===R.comma||e.type===R.name&&"from"===e.value},z.parseExportSpecifiersMaybe=function(e){this.eat(R.comma)&&(e.specifiers=e.specifiers.concat(this.parseExportSpecifiers()))},z.parseExportFrom=function(e,t){this.eatContextual("from")?(e.source=this.match(R.string)?this.parseExprAtom():this.unexpected(),this.checkExport(e)):t?this.unexpected():e.source=null,this.semicolon()},z.shouldParseExportDeclaration=function(){return"var"===this.state.type.keyword||"const"===this.state.type.keyword||"let"===this.state.type.keyword||"function"===this.state.type.keyword||"class"===this.state.type.keyword||this.isContextual("async")},z.checkExport=function(e,t,r){if(t)if(r)this.checkDuplicateExports(e,"default");else if(e.specifiers&&e.specifiers.length)for(var n=e.specifiers,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;this.checkDuplicateExports(o,o.exported.name)}else if(e.declaration)if("FunctionDeclaration"===e.declaration.type||"ClassDeclaration"===e.declaration.type)this.checkDuplicateExports(e,e.declaration.id.name);else if("VariableDeclaration"===e.declaration.type)for(var u=e.declaration.declarations,l=Array.isArray(u),c=0,u=l?u:u[Symbol.iterator]();;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;this.checkDeclaration(p.id)}if(this.state.decorators.length){var d=e.declaration&&("ClassDeclaration"===e.declaration.type||"ClassExpression"===e.declaration.type);e.declaration&&d||this.raise(e.start,"You can only use decorators on an export when exporting a class"),this.takeDecorators(e.declaration)}},z.checkDeclaration=function(e){if("ObjectPattern"===e.type)for(var t=e.properties,r=Array.isArray(t),n=0,t=r?t:t[Symbol.iterator]();;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this.checkDeclaration(s)}else if("ArrayPattern"===e.type)for(var a=e.elements,o=Array.isArray(a),u=0,a=o?a:a[Symbol.iterator]();;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;c&&this.checkDeclaration(c)}else"ObjectProperty"===e.type?this.checkDeclaration(e.value):"RestElement"===e.type||"RestProperty"===e.type?this.checkDeclaration(e.argument):"Identifier"===e.type&&this.checkDuplicateExports(e,e.name)},z.checkDuplicateExports=function(e,t){this.state.exportedIdentifiers.indexOf(t)>-1&&this.raiseDuplicateExportError(e,t),this.state.exportedIdentifiers.push(t)},z.raiseDuplicateExportError=function(e,t){this.raise(e.start,"default"===t?"Only one default export allowed per module.":"`"+t+"` has already been exported. Exported identifiers must be unique.")},z.parseExportSpecifiers=function(){var e=[],t=!0,r=void 0;for(this.expect(R.braceL);!this.eat(R.braceR);){if(t)t=!1;else if(this.expect(R.comma),this.eat(R.braceR))break;var n=this.match(R._default);n&&!r&&(r=!0);var i=this.startNode();i.local=this.parseIdentifier(n),i.exported=this.eatContextual("as")?this.parseIdentifier(!0):i.local.__clone(),e.push(this.finishNode(i,"ExportSpecifier"))}return r&&!this.isContextual("from")&&this.unexpected(),e},z.parseImport=function(e){return this.eat(R._import),this.match(R.string)?(e.specifiers=[],e.source=this.parseExprAtom()):(e.specifiers=[],this.parseImportSpecifiers(e),this.expectContextual("from"),e.source=this.match(R.string)?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},z.parseImportSpecifiers=function(e){var t=!0;if(this.match(R.name)){var r=this.state.start,n=this.state.startLoc;if(e.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(),r,n)),!this.eat(R.comma))return}if(this.match(R.star)){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdentifier(),this.checkLVal(i.local,!0,void 0,"import namespace specifier"),void e.specifiers.push(this.finishNode(i,"ImportNamespaceSpecifier"))}for(this.expect(R.braceL);!this.eat(R.braceR);){if(t)t=!1;else if(this.eat(R.colon)&&this.unexpected(null,"ES2015 named imports do not destructure. Use another statement for destructuring after the import."),this.expect(R.comma),this.eat(R.braceR))break;this.parseImportSpecifier(e)}},z.parseImportSpecifier=function(e){var t=this.startNode();t.imported=this.parseIdentifier(!0),this.eatContextual("as")?t.local=this.parseIdentifier():(this.checkReservedWord(t.imported.name,t.start,!0,!0),t.local=t.imported.__clone()),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))},z.parseImportSpecifierDefault=function(e,t,r){var n=this.startNodeAt(t,r);return n.local=e,this.checkLVal(n.local,!0,void 0,"default import specifier"),this.finishNode(n,"ImportDefaultSpecifier")};var ee=J.prototype;ee.toAssignable=function(e,t,r){if(e)switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":break;case"ObjectExpression":e.type="ObjectPattern";for(var n=e.properties,i=Array.isArray(n),s=0,n=i?n:n[Symbol.iterator]();;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;"ObjectMethod"===o.type?"get"===o.kind||"set"===o.kind?this.raise(o.key.start,"Object pattern can't contain getter or setter"):this.raise(o.key.start,"Object pattern can't contain methods"):this.toAssignable(o,t,"object destructuring pattern")}break;case"ObjectProperty":this.toAssignable(e.value,t,r);break;case"SpreadProperty":e.type="RestProperty";var u=e.argument;this.toAssignable(u,t,r);break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t,r);break;case"AssignmentExpression":"="===e.operator?(e.type="AssignmentPattern",delete e.operator):this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break;case"MemberExpression":if(!t)break;default:var l="Invalid left-hand side"+(r?" in "+r:"expression");this.raise(e.start,l)}return e},ee.toAssignableList=function(e,t,r){var n=e.length;if(n){var i=e[n-1];if(i&&"RestElement"===i.type)--n;else if(i&&"SpreadElement"===i.type){i.type="RestElement";var s=i.argument;this.toAssignable(s,t,r),"Identifier"!==s.type&&"MemberExpression"!==s.type&&"ArrayPattern"!==s.type&&this.unexpected(s.start),--n}}for(var a=0;a<n;a++){var o=e[a];o&&this.toAssignable(o,t,r)}return e},ee.toReferencedList=function(e){return e},ee.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},ee.parseRest=function(){var e=this.startNode();return this.next(),e.argument=this.parseBindingIdentifier(),this.finishNode(e,"RestElement")},ee.shouldAllowYieldIdentifier=function(){return this.match(R._yield)&&!this.state.strict&&!this.state.inGenerator},ee.parseBindingIdentifier=function(){return this.parseIdentifier(this.shouldAllowYieldIdentifier())},ee.parseBindingAtom=function(){switch(this.state.type){case R._yield:(this.state.strict||this.state.inGenerator)&&this.unexpected();case R.name:return this.parseIdentifier(!0);case R.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(R.bracketR,!0),this.finishNode(e,"ArrayPattern");case R.braceL:return this.parseObj(!0);default:this.unexpected()}},ee.parseBindingList=function(e,t){for(var r=[],n=!0;!this.eat(e);)if(n?n=!1:this.expect(R.comma),t&&this.match(R.comma))r.push(null);else{if(this.eat(e))break;if(this.match(R.ellipsis)){r.push(this.parseAssignableListItemTypes(this.parseRest())),this.expect(e);break}for(var i=[];this.match(R.at);)i.push(this.parseDecorator());var s=this.parseMaybeDefault();i.length&&(s.decorators=i),this.parseAssignableListItemTypes(s),r.push(this.parseMaybeDefault(s.start,s.loc.start,s))}return r},ee.parseAssignableListItemTypes=function(e){return e},ee.parseMaybeDefault=function(e,t,r){if(t=t||this.state.startLoc,e=e||this.state.start,r=r||this.parseBindingAtom(),!this.eat(R.eq))return r;var n=this.startNodeAt(e,t);return n.left=r,n.right=this.parseMaybeAssign(),this.finishNode(n,"AssignmentPattern")},ee.checkLVal=function(e,t,r,n){switch(e.type){case"Identifier":if(this.checkReservedWord(e.name,e.start,!1,!0),r){var i="_"+e.name;r[i]?this.raise(e.start,"Argument name clash in strict mode"):r[i]=!0}break;case"MemberExpression":t&&this.raise(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var s=e.properties,a=Array.isArray(s),o=0,s=a?s:s[Symbol.iterator]();;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;"ObjectProperty"===l.type&&(l=l.value),this.checkLVal(l,t,r,"object destructuring pattern")}break;case"ArrayPattern":for(var c=e.elements,f=Array.isArray(c),p=0,c=f?c:c[Symbol.iterator]();;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;h&&this.checkLVal(h,t,r,"array destructuring pattern")}break;case"AssignmentPattern":this.checkLVal(e.left,t,r,"assignment pattern");break;case"RestProperty":this.checkLVal(e.argument,t,r,"rest property");break;case"RestElement":this.checkLVal(e.argument,t,r,"rest element");break;default:var m=(t?"Binding invalid":"Invalid")+" left-hand side"+(n?" in "+n:"expression");this.raise(e.start,m)}};var te=J.prototype;te.checkPropClash=function(e,t){if(!e.computed&&!e.kind){var r=e.key;"__proto__"===("Identifier"===r.type?r.name:String(r.value))&&(t.proto&&this.raise(r.start,"Redefinition of __proto__ property"),t.proto=!0)}},te.getExpression=function(){this.nextToken();var e=this.parseExpression();return this.match(R.eof)||this.unexpected(),e},te.parseExpression=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeAssign(e,t);if(this.match(R.comma)){var s=this.startNodeAt(r,n);for(s.expressions=[i];this.eat(R.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.toReferencedList(s.expressions),this.finishNode(s,"SequenceExpression")}return i},te.parseMaybeAssign=function(e,t,r,n){var i=this.state.start,s=this.state.startLoc;if(this.match(R._yield)&&this.state.inGenerator){var a=this.parseYield();return r&&(a=r.call(this,a,i,s)),a}var o=void 0;t?o=!1:(t={start:0},o=!0),(this.match(R.parenL)||this.match(R.name))&&(this.state.potentialArrowAt=this.state.start);var u=this.parseMaybeConditional(e,t,n);if(r&&(u=r.call(this,u,i,s)),this.state.type.isAssign){var l=this.startNodeAt(i,s);if(l.operator=this.state.value,l.left=this.match(R.eq)?this.toAssignable(u,void 0,"assignment expression"):u,t.start=0,this.checkLVal(u,void 0,void 0,"assignment expression"),u.extra&&u.extra.parenthesized){var c=void 0;"ObjectPattern"===u.type?c="`({a}) = 0` use `({a} = 0)`":"ArrayPattern"===u.type&&(c="`([a]) = 0` use `([a] = 0)`"),c&&this.raise(u.start,"You're trying to assign to a parenthesized expression, eg. instead of "+c)}return this.next(),l.right=this.parseMaybeAssign(e),this.finishNode(l,"AssignmentExpression")}return o&&t.start&&this.unexpected(t.start),u},te.parseMaybeConditional=function(e,t,r){var n=this.state.start,i=this.state.startLoc,s=this.parseExprOps(e,t);return t&&t.start?s:this.parseConditional(s,e,n,i,r)},te.parseConditional=function(e,t,r,n){if(this.eat(R.question)){var i=this.startNodeAt(r,n);return i.test=e,i.consequent=this.parseMaybeAssign(),this.expect(R.colon),i.alternate=this.parseMaybeAssign(t),this.finishNode(i,"ConditionalExpression")}return e},te.parseExprOps=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeUnary(t);return t&&t.start?i:this.parseExprOp(i,r,n,-1,e)},te.parseExprOp=function(e,t,r,n,i){var s=this.state.type.binop;if(!(null==s||i&&this.match(R._in))&&s>n){var a=this.startNodeAt(t,r);a.left=e,a.operator=this.state.value,"**"!==a.operator||"UnaryExpression"!==e.type||!e.extra||e.extra.parenthesizedArgument||e.extra.parenthesized||this.raise(e.argument.start,"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.");var o=this.state.type;this.next();var u=this.state.start,l=this.state.startLoc;return a.right=this.parseExprOp(this.parseMaybeUnary(),u,l,o.rightAssociative?s-1:s,i),this.finishNode(a,o===R.logicalOR||o===R.logicalAND?"LogicalExpression":"BinaryExpression"),this.parseExprOp(a,t,r,n,i)}return e},te.parseMaybeUnary=function(e){if(this.state.type.prefix){var t=this.startNode(),r=this.match(R.incDec);t.operator=this.state.value,t.prefix=!0,this.next();var n=this.state.type;return t.argument=this.parseMaybeUnary(),this.addExtra(t,"parenthesizedArgument",!(n!==R.parenL||t.argument.extra&&t.argument.extra.parenthesized)),e&&e.start&&this.unexpected(e.start),r?this.checkLVal(t.argument,void 0,void 0,"prefix operation"):this.state.strict&&"delete"===t.operator&&"Identifier"===t.argument.type&&this.raise(t.start,"Deleting local variable in strict mode"),this.finishNode(t,r?"UpdateExpression":"UnaryExpression")}var i=this.state.start,s=this.state.startLoc,a=this.parseExprSubscripts(e);if(e&&e.start)return a;for(;this.state.type.postfix&&!this.canInsertSemicolon();){var o=this.startNodeAt(i,s);o.operator=this.state.value,o.prefix=!1,o.argument=a,this.checkLVal(a,void 0,void 0,"postfix operation"),this.next(),a=this.finishNode(o,"UpdateExpression")}return a},te.parseExprSubscripts=function(e){var t=this.state.start,r=this.state.startLoc,n=this.state.potentialArrowAt,i=this.parseExprAtom(e);return"ArrowFunctionExpression"===i.type&&i.start===n?i:e&&e.start?i:this.parseSubscripts(i,t,r)},te.parseSubscripts=function(e,t,r,n){for(;;){if(!n&&this.eat(R.doubleColon)){var i=this.startNodeAt(t,r);return i.object=e,i.callee=this.parseNoCallExpr(),this.parseSubscripts(this.finishNode(i,"BindExpression"),t,r,n)}if(this.eat(R.dot)){var s=this.startNodeAt(t,r);s.object=e,s.property=this.parseIdentifier(!0),s.computed=!1,e=this.finishNode(s,"MemberExpression")}else if(this.eat(R.bracketL)){var a=this.startNodeAt(t,r);a.object=e,a.property=this.parseExpression(),a.computed=!0,this.expect(R.bracketR),e=this.finishNode(a,"MemberExpression")}else if(!n&&this.match(R.parenL)){var o=this.state.potentialArrowAt===e.start&&"Identifier"===e.type&&"async"===e.name&&!this.canInsertSemicolon();this.next();var u=this.startNodeAt(t,r);if(u.callee=e,u.arguments=this.parseCallExpressionArguments(R.parenR,o),"Import"===u.callee.type&&1!==u.arguments.length&&this.raise(u.start,"import() requires exactly one argument"),e=this.finishNode(u,"CallExpression"),o&&this.shouldParseAsyncArrow())return this.parseAsyncArrowFromCallExpression(this.startNodeAt(t,r),u);this.toReferencedList(u.arguments)}else{if(!this.match(R.backQuote))return e;var l=this.startNodeAt(t,r);l.tag=e,l.quasi=this.parseTemplate(!0),e=this.finishNode(l,"TaggedTemplateExpression")}}},te.parseCallExpressionArguments=function(e,t){for(var r=[],n=void 0,i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(R.comma),this.eat(e))break;this.match(R.parenL)&&!n&&(n=this.state.start),r.push(this.parseExprListItem(!1,t?{start:0}:void 0,t?{start:0}:void 0))}return t&&n&&this.shouldParseAsyncArrow()&&this.unexpected(),r},te.shouldParseAsyncArrow=function(){return this.match(R.arrow)},te.parseAsyncArrowFromCallExpression=function(e,t){return this.expect(R.arrow),this.parseArrowExpression(e,t.arguments,!0)},te.parseNoCallExpr=function(){var e=this.state.start,t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,t,!0)},te.parseExprAtom=function(e){var t=this.state.potentialArrowAt===this.state.start,r=void 0;switch(this.state.type){case R._super:return this.state.inMethod||this.state.inClassProperty||this.options.allowSuperOutsideMethod||this.raise(this.state.start,"'super' outside of function or class"),r=this.startNode(),this.next(),this.match(R.parenL)||this.match(R.bracketL)||this.match(R.dot)||this.unexpected(),this.match(R.parenL)&&"constructor"!==this.state.inMethod&&!this.options.allowSuperOutsideMethod&&this.raise(r.start,"super() outside of class constructor"),this.finishNode(r,"Super");case R._import:return this.hasPlugin("dynamicImport")||this.unexpected(),r=this.startNode(),this.next(),this.match(R.parenL)||this.unexpected(null,R.parenL),this.finishNode(r,"Import");case R._this:return r=this.startNode(),this.next(),this.finishNode(r,"ThisExpression");case R._yield:this.state.inGenerator&&this.unexpected();case R.name:r=this.startNode();var n="await"===this.state.value&&this.state.inAsync,i=this.shouldAllowYieldIdentifier(),s=this.parseIdentifier(n||i);if("await"===s.name){if(this.state.inAsync||this.inModule)return this.parseAwait(r)}else{if("async"===s.name&&this.match(R._function)&&!this.canInsertSemicolon())return this.next(),this.parseFunction(r,!1,!1,!0);if(t&&"async"===s.name&&this.match(R.name)){var a=[this.parseIdentifier()];return this.expect(R.arrow),this.parseArrowExpression(r,a,!0)}}return t&&!this.canInsertSemicolon()&&this.eat(R.arrow)?this.parseArrowExpression(r,[s]):s;case R._do:if(this.hasPlugin("doExpressions")){var o=this.startNode();this.next();var u=this.state.inFunction,l=this.state.labels;return this.state.labels=[],this.state.inFunction=!1,o.body=this.parseBlock(!1,!0),this.state.inFunction=u,this.state.labels=l,this.finishNode(o,"DoExpression")}case R.regexp:var c=this.state.value;return r=this.parseLiteral(c.value,"RegExpLiteral"),r.pattern=c.pattern,r.flags=c.flags,r;case R.num:return this.parseLiteral(this.state.value,"NumericLiteral");case R.string:return this.parseLiteral(this.state.value,"StringLiteral");case R._null:return r=this.startNode(),this.next(),this.finishNode(r,"NullLiteral");case R._true:case R._false:return r=this.startNode(),r.value=this.match(R._true),this.next(),this.finishNode(r,"BooleanLiteral");case R.parenL:return this.parseParenAndDistinguishExpression(null,null,t);case R.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(R.bracketR,!0,e),this.toReferencedList(r.elements),this.finishNode(r,"ArrayExpression");case R.braceL:return this.parseObj(!1,e);case R._function:return this.parseFunctionExpression();case R.at:this.parseDecorators();case R._class:return r=this.startNode(),this.takeDecorators(r),this.parseClass(r,!1);case R._new:return this.parseNew();case R.backQuote:return this.parseTemplate(!1);case R.doubleColon:r=this.startNode(),this.next(),r.object=null;var f=r.callee=this.parseNoCallExpr();if("MemberExpression"===f.type)return this.finishNode(r,"BindExpression");this.raise(f.start,"Binding should be performed on object property.");default:this.unexpected()}},te.parseFunctionExpression=function(){var e=this.startNode(),t=this.parseIdentifier(!0);return this.state.inGenerator&&this.eat(R.dot)&&this.hasPlugin("functionSent")?this.parseMetaProperty(e,t,"sent"):this.parseFunction(e,!1)},te.parseMetaProperty=function(e,t,r){return e.meta=t,e.property=this.parseIdentifier(!0),e.property.name!==r&&this.raise(e.property.start,"The only valid meta property for new is "+t.name+"."+r),this.finishNode(e,"MetaProperty")},te.parseLiteral=function(e,t,r,n){r=r||this.state.start,n=n||this.state.startLoc;var i=this.startNodeAt(r,n);return this.addExtra(i,"rawValue",e),this.addExtra(i,"raw",this.input.slice(r,this.state.end)),i.value=e,this.next(),this.finishNode(i,t)},te.parseParenExpression=function(){this.expect(R.parenL);var e=this.parseExpression();return this.expect(R.parenR),e},te.parseParenAndDistinguishExpression=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;var n=void 0;this.expect(R.parenL);for(var i=this.state.start,s=this.state.startLoc,a=[],o={start:0},u={start:0},l=!0,c=void 0,f=void 0;!this.match(R.parenR);){if(l)l=!1;else if(this.expect(R.comma,u.start||null),this.match(R.parenR)){f=this.state.start;break}
if(this.match(R.ellipsis)){var p=this.state.start,d=this.state.startLoc;c=this.state.start,a.push(this.parseParenItem(this.parseRest(),p,d));break}a.push(this.parseMaybeAssign(!1,o,this.parseParenItem,u))}var h=this.state.start,m=this.state.startLoc;this.expect(R.parenR);var y=this.startNodeAt(e,t);if(r&&this.shouldParseArrow()&&(y=this.parseArrow(y))){for(var v=a,g=Array.isArray(v),b=0,v=g?v:v[Symbol.iterator]();;){var E;if(g){if(b>=v.length)break;E=v[b++]}else{if(b=v.next(),b.done)break;E=b.value}var x=E;x.extra&&x.extra.parenthesized&&this.unexpected(x.extra.parenStart)}return this.parseArrowExpression(y,a)}return a.length||this.unexpected(this.state.lastTokStart),f&&this.unexpected(f),c&&this.unexpected(c),o.start&&this.unexpected(o.start),u.start&&this.unexpected(u.start),a.length>1?(n=this.startNodeAt(i,s),n.expressions=a,this.toReferencedList(n.expressions),this.finishNodeAt(n,"SequenceExpression",h,m)):n=a[0],this.addExtra(n,"parenthesized",!0),this.addExtra(n,"parenStart",e),n},te.shouldParseArrow=function(){return!this.canInsertSemicolon()},te.parseArrow=function(e){if(this.eat(R.arrow))return e},te.parseParenItem=function(e){return e},te.parseNew=function(){var e=this.startNode(),t=this.parseIdentifier(!0);if(this.eat(R.dot)){var r=this.parseMetaProperty(e,t,"target");return this.state.inFunction||this.raise(r.property.start,"new.target can only be used in functions"),r}return e.callee=this.parseNoCallExpr(),this.eat(R.parenL)?(e.arguments=this.parseExprList(R.parenR),this.toReferencedList(e.arguments)):e.arguments=[],this.finishNode(e,"NewExpression")},te.parseTemplateElement=function(e){var t=this.startNode();return null===this.state.value&&(e&&this.hasPlugin("templateInvalidEscapes")?this.state.invalidTemplateEscapePosition=null:this.raise(this.state.invalidTemplateEscapePosition,"Invalid escape sequence in template")),t.value={raw:this.input.slice(this.state.start,this.state.end).replace(/\r\n?/g,"\n"),cooked:this.state.value},this.next(),t.tail=this.match(R.backQuote),this.finishNode(t,"TemplateElement")},te.parseTemplate=function(e){var t=this.startNode();this.next(),t.expressions=[];var r=this.parseTemplateElement(e);for(t.quasis=[r];!r.tail;)this.expect(R.dollarBraceL),t.expressions.push(this.parseExpression()),this.expect(R.braceR),t.quasis.push(r=this.parseTemplateElement(e));return this.next(),this.finishNode(t,"TemplateLiteral")},te.parseObj=function(e,t){var r=[],n=Object.create(null),i=!0,s=this.startNode();s.properties=[],this.next();for(var a=null;!this.eat(R.braceR);){if(i)i=!1;else if(this.expect(R.comma),this.eat(R.braceR))break;for(;this.match(R.at);)r.push(this.parseDecorator());var o=this.startNode(),u=!1,l=!1,c=void 0,f=void 0;if(r.length&&(o.decorators=r,r=[]),this.hasPlugin("objectRestSpread")&&this.match(R.ellipsis)){if(o=this.parseSpread(e?{start:0}:void 0),o.type=e?"RestProperty":"SpreadProperty",e&&this.toAssignable(o.argument,!0,"object pattern"),s.properties.push(o),!e)continue;var p=this.state.start;if(null===a){if(this.eat(R.braceR))break;if(this.match(R.comma)&&this.lookahead().type===R.braceR)continue;a=p;continue}this.unexpected(a,"Cannot have multiple rest elements when destructuring")}if(o.method=!1,o.shorthand=!1,(e||t)&&(c=this.state.start,f=this.state.startLoc),e||(u=this.eat(R.star)),!e&&this.isContextual("async")){u&&this.unexpected();var d=this.parseIdentifier();this.match(R.colon)||this.match(R.parenL)||this.match(R.braceR)||this.match(R.eq)||this.match(R.comma)?(o.key=d,o.computed=!1):(l=!0,this.hasPlugin("asyncGenerators")&&(u=this.eat(R.star)),this.parsePropertyName(o))}else this.parsePropertyName(o);this.parseObjPropValue(o,c,f,u,l,e,t),this.checkPropClash(o,n),o.shorthand&&this.addExtra(o,"shorthand",!0),s.properties.push(o)}return null!==a&&this.unexpected(a,"The rest element has to be the last element when destructuring"),r.length&&this.raise(this.state.start,"You have trailing decorators with no property"),this.finishNode(s,e?"ObjectPattern":"ObjectExpression")},te.isGetterOrSetterMethod=function(e,t){return!t&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&(this.match(R.string)||this.match(R.num)||this.match(R.bracketL)||this.match(R.name)||this.state.type.keyword)},te.checkGetterSetterParamCount=function(e){var t="get"===e.kind?0:1;if(e.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}},te.parseObjectMethod=function(e,t,r,n){return r||t||this.match(R.parenL)?(n&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,t,r),this.finishNode(e,"ObjectMethod")):this.isGetterOrSetterMethod(e,n)?((t||r)&&this.unexpected(),e.kind=e.key.name,this.parsePropertyName(e),this.parseMethod(e),this.checkGetterSetterParamCount(e),this.finishNode(e,"ObjectMethod")):void 0},te.parseObjectProperty=function(e,t,r,n,i){return this.eat(R.colon)?(e.value=n?this.parseMaybeDefault(this.state.start,this.state.startLoc):this.parseMaybeAssign(!1,i),this.finishNode(e,"ObjectProperty")):e.computed||"Identifier"!==e.key.type?void 0:(this.checkReservedWord(e.key.name,e.key.start,!0,!0),n?e.value=this.parseMaybeDefault(t,r,e.key.__clone()):this.match(R.eq)&&i?(i.start||(i.start=this.state.start),e.value=this.parseMaybeDefault(t,r,e.key.__clone())):e.value=e.key.__clone(),e.shorthand=!0,this.finishNode(e,"ObjectProperty"))},te.parseObjPropValue=function(e,t,r,n,i,s,a){var o=this.parseObjectMethod(e,n,i,s)||this.parseObjectProperty(e,t,r,s,a);return o||this.unexpected(),o},te.parsePropertyName=function(e){if(this.eat(R.bracketL))e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(R.bracketR);else{e.computed=!1;var t=this.state.inPropertyName;this.state.inPropertyName=!0,e.key=this.match(R.num)||this.match(R.string)?this.parseExprAtom():this.parseIdentifier(!0),this.state.inPropertyName=t}return e.key},te.initFunction=function(e,t){e.id=null,e.generator=!1,e.expression=!1,e.async=!!t},te.parseMethod=function(e,t,r){var n=this.state.inMethod;return this.state.inMethod=e.kind||!0,this.initFunction(e,r),this.expect(R.parenL),e.params=this.parseBindingList(R.parenR),e.generator=!!t,this.parseFunctionBody(e),this.state.inMethod=n,e},te.parseArrowExpression=function(e,t,r){return this.initFunction(e,r),e.params=this.toAssignableList(t,!0,"arrow function parameters"),this.parseFunctionBody(e,!0),this.finishNode(e,"ArrowFunctionExpression")},te.isStrictBody=function(e,t){if(!t&&e.body.directives.length)for(var r=e.body.directives,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if("use strict"===a.value.value)return!0}return!1},te.parseFunctionBody=function(e,t){var r=t&&!this.match(R.braceL),n=this.state.inAsync;if(this.state.inAsync=e.async,r)e.body=this.parseMaybeAssign(),e.expression=!0;else{var i=this.state.inFunction,s=this.state.inGenerator,a=this.state.labels;this.state.inFunction=!0,this.state.inGenerator=e.generator,this.state.labels=[],e.body=this.parseBlock(!0),e.expression=!1,this.state.inFunction=i,this.state.inGenerator=s,this.state.labels=a}this.state.inAsync=n;var o=this.isStrictBody(e,r),u=this.state.strict||t||o;if(o&&e.id&&"Identifier"===e.id.type&&"yield"===e.id.name&&this.raise(e.id.start,"Binding yield in strict mode"),u){var l=Object.create(null),c=this.state.strict;o&&(this.state.strict=!0),e.id&&this.checkLVal(e.id,!0,void 0,"function name");for(var f=e.params,p=Array.isArray(f),d=0,f=p?f:f[Symbol.iterator]();;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h;o&&"Identifier"!==m.type&&this.raise(m.start,"Non-simple parameter in strict mode"),this.checkLVal(m,!0,l,"function parameter list")}this.state.strict=c}},te.parseExprList=function(e,t,r){for(var n=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(R.comma),this.eat(e))break;n.push(this.parseExprListItem(t,r))}return n},te.parseExprListItem=function(e,t,r){return e&&this.match(R.comma)?null:this.match(R.ellipsis)?this.parseSpread(t):this.parseMaybeAssign(!1,t,this.parseParenItem,r)},te.parseIdentifier=function(e){var t=this.startNode();return e||this.checkReservedWord(this.state.value,this.state.start,!!this.state.type.keyword,!1),this.match(R.name)?t.name=this.state.value:this.state.type.keyword?t.name=this.state.type.keyword:this.unexpected(),!e&&"await"===t.name&&this.state.inAsync&&this.raise(t.start,"invalid use of await inside of an async function"),t.loc.identifierName=t.name,this.next(),this.finishNode(t,"Identifier")},te.checkReservedWord=function(e,t,r,n){(this.isReservedWord(e)||r&&this.isKeyword(e))&&this.raise(t,e+" is a reserved word"),this.state.strict&&(v.strict(e)||n&&v.strictBind(e))&&this.raise(t,e+" is a reserved word in strict mode")},te.parseAwait=function(e){return this.state.inAsync||this.unexpected(),this.match(R.star)&&this.raise(e.start,"await* has been removed from the async functions proposal. Use Promise.all() instead."),e.argument=this.parseMaybeUnary(),this.finishNode(e,"AwaitExpression")},te.parseYield=function(){var e=this.startNode();return this.next(),this.match(R.semi)||this.canInsertSemicolon()||!this.match(R.star)&&!this.state.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(R.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")};var re=J.prototype,ne=["leadingComments","trailingComments","innerComments"],ie=function(){function e(t,r,n){w(this,e),this.type="",this.start=t,this.end=0,this.loc=new G(r),n&&(this.loc.filename=n)}return e.prototype.__clone=function(){var t=new e;for(var r in this)ne.indexOf(r)<0&&(t[r]=this[r]);return t},e}();re.startNode=function(){return new ie(this.state.start,this.state.startLoc,this.filename)},re.startNodeAt=function(e,t){return new ie(e,t,this.filename)},re.finishNode=function(e,t){return c.call(this,e,t,this.state.lastTokEnd,this.state.lastTokEndLoc)},re.finishNodeAt=function(e,t,r,n){return c.call(this,e,t,r,n)},J.prototype.raise=function(e,t){var r=u(this.input,e);t+=" ("+r.line+":"+r.column+")";var n=new SyntaxError(t);throw n.pos=e,n.loc=r,n};var se=J.prototype;se.addComment=function(e){this.filename&&(e.loc.filename=this.filename),this.state.trailingComments.push(e),this.state.leadingComments.push(e)},se.processComment=function(e){if(!("Program"===e.type&&e.body.length>0)){var t=this.state.commentStack,r=void 0,n=void 0,i=void 0,s=void 0,a=void 0;if(this.state.trailingComments.length>0)this.state.trailingComments[0].start>=e.end?(i=this.state.trailingComments,this.state.trailingComments=[]):this.state.trailingComments.length=0;else{var o=f(t);t.length>0&&o.trailingComments&&o.trailingComments[0].start>=e.end&&(i=o.trailingComments,o.trailingComments=null)}for(t.length>0&&f(t).start>=e.start&&(r=t.pop());t.length>0&&f(t).start>=e.start;)n=t.pop();if(!n&&r&&(n=r),r&&this.state.leadingComments.length>0){var u=f(this.state.leadingComments);if("ObjectProperty"===r.type){if(u.start>=e.start&&this.state.commentPreviousNode){for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(r.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}else if("CallExpression"===e.type&&e.arguments&&e.arguments.length){var l=f(e.arguments);l&&u.start>=l.start&&u.end<=e.end&&this.state.commentPreviousNode&&this.state.leadingComments.length>0&&(l.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}}if(n){if(n.leadingComments)if(n!==e&&f(n.leadingComments).end<=e.start)e.leadingComments=n.leadingComments,n.leadingComments=null;else for(s=n.leadingComments.length-2;s>=0;--s)if(n.leadingComments[s].end<=e.start){e.leadingComments=n.leadingComments.splice(0,s+1);break}}else if(this.state.leadingComments.length>0)if(f(this.state.leadingComments).end<=e.start){if(this.state.commentPreviousNode)for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(s=0;s<this.state.leadingComments.length&&!(this.state.leadingComments[s].end>e.start);s++);e.leadingComments=this.state.leadingComments.slice(0,s),0===e.leadingComments.length&&(e.leadingComments=null),i=this.state.leadingComments.slice(s),0===i.length&&(i=null)}this.state.commentPreviousNode=e,i&&(i.length&&i[0].start>=e.start&&f(i).end<=e.end?e.innerComments=i:e.trailingComments=i),t.push(e)}};var ae=J.prototype;ae.estreeParseRegExpLiteral=function(e){var t=e.pattern,r=e.flags,n=null;try{n=new RegExp(t,r)}catch(e){}var i=this.estreeParseLiteral(n);return i.regex={pattern:t,flags:r},i},ae.estreeParseLiteral=function(e){return this.parseLiteral(e,"Literal")},ae.directiveToStmt=function(e){var t=e.value,r=this.startNodeAt(e.start,e.loc.start),n=this.startNodeAt(t.start,t.loc.start);return n.value=t.value,n.raw=t.extra.raw,r.expression=this.finishNodeAt(n,"Literal",t.end,t.loc.end),r.directive=t.extra.raw.slice(1,-1),this.finishNodeAt(r,"ExpressionStatement",e.end,e.loc.end)};var oe=function(e){e.extend("checkDeclaration",function(e){return function(t){p(t)?this.checkDeclaration(t.value):e.call(this,t)}}),e.extend("checkGetterSetterParamCount",function(){return function(e){var t="get"===e.kind?0:1;if(e.value.params.length!==t){var r=e.start;"get"===e.kind?this.raise(r,"getter should have no params"):this.raise(r,"setter should have exactly one param")}}}),e.extend("checkLVal",function(e){return function(t,r,n){var i=this;switch(t.type){case"ObjectPattern":t.properties.forEach(function(e){i.checkLVal("Property"===e.type?e.value:e,r,n,"object destructuring pattern")});break;default:for(var s=arguments.length,a=Array(s>3?s-3:0),o=3;o<s;o++)a[o-3]=arguments[o];e.call.apply(e,[this,t,r,n].concat(a))}}}),e.extend("checkPropClash",function(){return function(e,t){if(!e.computed&&p(e)){var r=e.key;"__proto__"===("Identifier"===r.type?r.name:String(r.value))&&(t.proto&&this.raise(r.start,"Redefinition of __proto__ property"),t.proto=!0)}}}),e.extend("isStrictBody",function(){return function(e,t){if(!t&&e.body.body.length>0)for(var r=e.body.body,n=Array.isArray(r),i=0,r=n?r:r[Symbol.iterator]();;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if("ExpressionStatement"!==a.type||"Literal"!==a.expression.type)break;if("use strict"===a.expression.value)return!0}return!1}}),e.extend("isValidDirective",function(){return function(e){return!("ExpressionStatement"!==e.type||"Literal"!==e.expression.type||"string"!=typeof e.expression.value||e.expression.extra&&e.expression.extra.parenthesized)}}),e.extend("stmtToDirective",function(e){return function(t){var r=e.call(this,t),n=t.expression.value;return r.value.value=n,r}}),e.extend("parseBlockBody",function(e){return function(t){for(var r=this,n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];e.call.apply(e,[this,t].concat(i)),t.directives.reverse().forEach(function(e){t.body.unshift(r.directiveToStmt(e))}),delete t.directives}}),e.extend("parseClassMethod",function(){return function(e,t,r,n){this.parseMethod(t,r,n),t.typeParameters&&(t.value.typeParameters=t.typeParameters,delete t.typeParameters),e.body.push(this.finishNode(t,"MethodDefinition"))}}),e.extend("parseExprAtom",function(e){return function(){switch(this.state.type){case R.regexp:return this.estreeParseRegExpLiteral(this.state.value);case R.num:case R.string:return this.estreeParseLiteral(this.state.value);case R._null:return this.estreeParseLiteral(null);case R._true:return this.estreeParseLiteral(!0);case R._false:return this.estreeParseLiteral(!1);default:for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.call.apply(e,[this].concat(r))}}}),e.extend("parseLiteral",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i.raw=i.extra.raw,delete i.extra,i}}),e.extend("parseMethod",function(e){return function(t){var r=this.startNode();r.kind=t.kind;for(var n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];return r=e.call.apply(e,[this,r].concat(i)),delete r.kind,t.value=this.finishNode(r,"FunctionExpression"),t}}),e.extend("parseObjectMethod",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&("method"===i.kind&&(i.kind="init"),i.type="Property"),i}}),e.extend("parseObjectProperty",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&(i.kind="init",i.type="Property"),i}}),e.extend("toAssignable",function(e){return function(t,r){for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];if(p(t))return this.toAssignable.apply(this,[t.value,r].concat(i)),t;if("ObjectExpression"===t.type){t.type="ObjectPattern";for(var a=t.properties,o=Array.isArray(a),u=0,a=o?a:a[Symbol.iterator]();;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;"get"===c.kind||"set"===c.kind?this.raise(c.key.start,"Object pattern can't contain getter or setter"):c.method?this.raise(c.key.start,"Object pattern can't contain methods"):this.toAssignable(c,r,"object destructuring pattern")}return t}return e.call.apply(e,[this,t,r].concat(i))}})},ue=["any","mixed","empty","bool","boolean","number","string","void","null"],le=J.prototype;le.flowParseTypeInitialiser=function(e){var t=this.state.inType;this.state.inType=!0,this.expect(e||R.colon);var r=this.flowParseType();return this.state.inType=t,r},le.flowParsePredicate=function(){var e=this.startNode(),t=this.state.startLoc,r=this.state.start;this.expect(R.modulo);var n=this.state.startLoc;return this.expectContextual("checks"),t.line===n.line&&t.column===n.column-1||this.raise(r,"Spaces between ´%´ and ´checks´ are not allowed here."),this.eat(R.parenL)?(e.expression=this.parseExpression(),this.expect(R.parenR),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")},le.flowParseTypeAndPredicateInitialiser=function(){var e=this.state.inType;this.state.inType=!0,this.expect(R.colon);var t=null,r=null;return this.match(R.modulo)?(this.state.inType=e,r=this.flowParsePredicate()):(t=this.flowParseType(),this.state.inType=e,this.match(R.modulo)&&(r=this.flowParsePredicate())),[t,r]},le.flowParseDeclareClass=function(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")},le.flowParseDeclareFunction=function(e){this.next();var t=e.id=this.parseIdentifier(),r=this.startNode(),n=this.startNode();this.isRelational("<")?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(R.parenL);var i=this.flowParseFunctionTypeParams();r.params=i.params,r.rest=i.rest,this.expect(R.parenR);var s=null,a=this.flowParseTypeAndPredicateInitialiser();return r.returnType=a[0],s=a[1],n.typeAnnotation=this.finishNode(r,"FunctionTypeAnnotation"),n.predicate=s,t.typeAnnotation=this.finishNode(n,"TypeAnnotation"),this.finishNode(t,t.type),this.semicolon(),this.finishNode(e,"DeclareFunction")},le.flowParseDeclare=function(e){return this.match(R._class)?this.flowParseDeclareClass(e):this.match(R._function)?this.flowParseDeclareFunction(e):this.match(R._var)?this.flowParseDeclareVariable(e):this.isContextual("module")?this.lookahead().type===R.dot?this.flowParseDeclareModuleExports(e):this.flowParseDeclareModule(e):this.isContextual("type")?this.flowParseDeclareTypeAlias(e):this.isContextual("opaque")?this.flowParseDeclareOpaqueType(e):this.isContextual("interface")?this.flowParseDeclareInterface(e):this.match(R._export)?this.flowParseDeclareExportDeclaration(e):void this.unexpected()},le.flowParseDeclareExportDeclaration=function(e){if(this.expect(R._export),this.isContextual("opaque"))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");throw this.unexpected()},le.flowParseDeclareVariable=function(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(),this.semicolon(),this.finishNode(e,"DeclareVariable")},le.flowParseDeclareModule=function(e){this.next(),this.match(R.string)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();var t=e.body=this.startNode(),r=t.body=[];for(this.expect(R.braceL);!this.match(R.braceR);){var n=this.startNode();if(this.match(R._import)){var i=this.lookahead();"type"!==i.value&&"typeof"!==i.value&&this.unexpected(null,"Imports within a `declare module` body must always be `import type` or `import typeof`"),this.parseImport(n)}else this.expectContextual("declare","Only declares and type imports are allowed inside declare module"),n=this.flowParseDeclare(n,!0);r.push(n)}return this.expect(R.braceR),this.finishNode(t,"BlockStatement"),this.finishNode(e,"DeclareModule")},le.flowParseDeclareModuleExports=function(e){return this.expectContextual("module"),this.expect(R.dot),this.expectContextual("exports"),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")},le.flowParseDeclareTypeAlias=function(e){return this.next(),this.flowParseTypeAlias(e),this.finishNode(e,"DeclareTypeAlias")},le.flowParseDeclareOpaqueType=function(e){return this.next(),this.flowParseOpaqueType(e,!0),this.finishNode(e,"DeclareOpaqueType")},le.flowParseDeclareInterface=function(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")},le.flowParseInterfaceish=function(e){if(e.id=this.parseIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.mixins=[],this.eat(R._extends))do{e.extends.push(this.flowParseInterfaceExtends())}while(this.eat(R.comma));if(this.isContextual("mixins")){this.next();do{e.mixins.push(this.flowParseInterfaceExtends())}while(this.eat(R.comma))}e.body=this.flowParseObjectType(!0,!1,!1)},le.flowParseInterfaceExtends=function(){var e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")},le.flowParseInterface=function(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,"InterfaceDeclaration")},le.flowParseRestrictedIdentifier=function(e){return ue.indexOf(this.state.value)>-1&&this.raise(this.state.start,"Cannot overwrite primitive type "+this.state.value),this.parseIdentifier(e)},le.flowParseTypeAlias=function(e){return e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(R.eq),this.semicolon(),this.finishNode(e,"TypeAlias")},le.flowParseOpaqueType=function(e,t){return this.expectContextual("type"),e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(R.colon)&&(e.supertype=this.flowParseTypeInitialiser(R.colon)),e.impltype=null,t||(e.impltype=this.flowParseTypeInitialiser(R.eq)),this.semicolon(),this.finishNode(e,"OpaqueType")},le.flowParseTypeParameter=function(){var e=this.startNode(),t=this.flowParseVariance(),r=this.flowParseTypeAnnotatableIdentifier();return e.name=r.name,e.variance=t,e.bound=r.typeAnnotation,this.match(R.eq)&&(this.eat(R.eq),e.default=this.flowParseType()),this.finishNode(e,"TypeParameter")},le.flowParseTypeParameterDeclaration=function(){var e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.isRelational("<")||this.match(R.jsxTagStart)?this.next():this.unexpected();do{t.params.push(this.flowParseTypeParameter()),this.isRelational(">")||this.expect(R.comma)}while(!this.isRelational(">"));return this.expectRelational(">"),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")},le.flowParseTypeParameterInstantiation=function(){var e=this.startNode(),t=this.state.inType;for(e.params=[],this.state.inType=!0,this.expectRelational("<");!this.isRelational(">");)e.params.push(this.flowParseType()),this.isRelational(">")||this.expect(R.comma);return this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")},le.flowParseObjectPropertyKey=function(){return this.match(R.num)||this.match(R.string)?this.parseExprAtom():this.parseIdentifier(!0)},le.flowParseObjectTypeIndexer=function(e,t,r){return e.static=t,this.expect(R.bracketL),this.lookahead().type===R.colon?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(R.bracketR),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeIndexer")},le.flowParseObjectTypeMethodish=function(e){for(e.params=[],e.rest=null,e.typeParameters=null,this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(R.parenL);!this.match(R.parenR)&&!this.match(R.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(R.parenR)||this.expect(R.comma);return this.eat(R.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),this.expect(R.parenR),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")},le.flowParseObjectTypeMethod=function(e,t,r,n){var i=this.startNodeAt(e,t);return i.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e,t)),i.static=r,i.key=n,i.optional=!1,this.flowObjectTypeSemicolon(),this.finishNode(i,"ObjectTypeProperty")},le.flowParseObjectTypeCallProperty=function(e,t){var r=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(r),this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeCallProperty")},le.flowParseObjectType=function(e,t,r){var n=this.state.inType;this.state.inType=!0;var i=this.startNode(),s=void 0,a=void 0,o=!1;i.callProperties=[],i.properties=[],i.indexers=[];var u=void 0,l=void 0;for(t&&this.match(R.braceBarL)?(this.expect(R.braceBarL),u=R.braceBarR,l=!0):(this.expect(R.braceL),u=R.braceR,l=!1),i.exact=l;!this.match(u);){var c=!1,f=this.state.start,p=this.state.startLoc;s=this.startNode(),e&&this.isContextual("static")&&this.lookahead().type!==R.colon&&(this.next(),o=!0);var d=this.state.start,h=this.flowParseVariance();this.match(R.bracketL)?i.indexers.push(this.flowParseObjectTypeIndexer(s,o,h)):this.match(R.parenL)||this.isRelational("<")?(h&&this.unexpected(d),i.callProperties.push(this.flowParseObjectTypeCallProperty(s,o))):this.match(R.ellipsis)?(r||this.unexpected(null,"Spread operator cannot appear in class or interface definitions"),h&&this.unexpected(h.start,"Spread properties cannot have variance"),this.expect(R.ellipsis),s.argument=this.flowParseType(),this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeSpreadProperty"))):(a=this.flowParseObjectPropertyKey(),this.isRelational("<")||this.match(R.parenL)?(h&&this.unexpected(h.start),i.properties.push(this.flowParseObjectTypeMethod(f,p,o,a))):(this.eat(R.question)&&(c=!0),s.key=a,s.value=this.flowParseTypeInitialiser(),s.optional=c,s.static=o,s.variance=h,this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeProperty")))),o=!1}this.expect(u);var m=this.finishNode(i,"ObjectTypeAnnotation");return this.state.inType=n,m},le.flowObjectTypeSemicolon=function(){this.eat(R.semi)||this.eat(R.comma)||this.match(R.braceR)||this.match(R.braceBarR)||this.unexpected()},le.flowParseQualifiedTypeIdentifier=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;for(var n=r||this.parseIdentifier();this.eat(R.dot);){var i=this.startNodeAt(e,t);i.qualification=n,i.id=this.parseIdentifier(),n=this.finishNode(i,"QualifiedTypeIdentifier")}return n},le.flowParseGenericType=function(e,t,r){var n=this.startNodeAt(e,t);return n.typeParameters=null,n.id=this.flowParseQualifiedTypeIdentifier(e,t,r),this.isRelational("<")&&(n.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(n,"GenericTypeAnnotation")},le.flowParseTypeofType=function(){var e=this.startNode();return this.expect(R._typeof),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")},le.flowParseTupleType=function(){var e=this.startNode();for(e.types=[],this.expect(R.bracketL);this.state.pos<this.input.length&&!this.match(R.bracketR)&&(e.types.push(this.flowParseType()),!this.match(R.bracketR));)this.expect(R.comma);return this.expect(R.bracketR),this.finishNode(e,"TupleTypeAnnotation")},le.flowParseFunctionTypeParam=function(){var e=null,t=!1,r=null,n=this.startNode(),i=this.lookahead();return i.type===R.colon||i.type===R.question?(e=this.parseIdentifier(),this.eat(R.question)&&(t=!0),r=this.flowParseTypeInitialiser()):r=this.flowParseType(),n.name=e,n.optional=t,n.typeAnnotation=r,this.finishNode(n,"FunctionTypeParam")},le.reinterpretTypeAsFunctionTypeParam=function(e){var t=this.startNodeAt(e.start,e.loc.start);return t.name=null,t.optional=!1,t.typeAnnotation=e,this.finishNode(t,"FunctionTypeParam")},le.flowParseFunctionTypeParams=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t={params:e,rest:null};!this.match(R.parenR)&&!this.match(R.ellipsis);)t.params.push(this.flowParseFunctionTypeParam()),this.match(R.parenR)||this.expect(R.comma);return this.eat(R.ellipsis)&&(t.rest=this.flowParseFunctionTypeParam()),t},le.flowIdentToTypeAnnotation=function(e,t,r,n){switch(n.name){case"any":return this.finishNode(r,"AnyTypeAnnotation");case"void":return this.finishNode(r,"VoidTypeAnnotation");case"bool":case"boolean":return this.finishNode(r,"BooleanTypeAnnotation");case"mixed":return this.finishNode(r,"MixedTypeAnnotation");case"empty":return this.finishNode(r,"EmptyTypeAnnotation");case"number":return this.finishNode(r,"NumberTypeAnnotation");case"string":return this.finishNode(r,"StringTypeAnnotation");default:return this.flowParseGenericType(e,t,n)}},le.flowParsePrimaryType=function(){var e=this.state.start,t=this.state.startLoc,r=this.startNode(),n=void 0,i=void 0,s=!1,a=this.state.noAnonFunctionType;switch(this.state.type){case R.name:return this.flowIdentToTypeAnnotation(e,t,r,this.parseIdentifier());case R.braceL:return this.flowParseObjectType(!1,!1,!0);case R.braceBarL:return this.flowParseObjectType(!1,!0,!0);case R.bracketL:return this.flowParseTupleType();case R.relational:if("<"===this.state.value)return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(R.parenL),n=this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(R.parenR),this.expect(R.arrow),r.returnType=this.flowParseType(),this.finishNode(r,"FunctionTypeAnnotation");break;case R.parenL:if(this.next(),!this.match(R.parenR)&&!this.match(R.ellipsis))if(this.match(R.name)){var o=this.lookahead().type;s=o!==R.question&&o!==R.colon}else s=!0;if(s){if(this.state.noAnonFunctionType=!1,i=this.flowParseType(),this.state.noAnonFunctionType=a,this.state.noAnonFunctionType||!(this.match(R.comma)||this.match(R.parenR)&&this.lookahead().type===R.arrow))return this.expect(R.parenR),i;this.eat(R.comma)}return n=i?this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(i)]):this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(R.parenR),this.expect(R.arrow),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,"FunctionTypeAnnotation");case R.string:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case R._true:case R._false:return r.value=this.match(R._true),this.next(),this.finishNode(r,"BooleanLiteralTypeAnnotation");case R.plusMin:if("-"===this.state.value)return this.next(),
this.match(R.num)||this.unexpected(null,"Unexpected token, expected number"),this.parseLiteral(-this.state.value,"NumericLiteralTypeAnnotation",r.start,r.loc.start);this.unexpected();case R.num:return this.parseLiteral(this.state.value,"NumericLiteralTypeAnnotation");case R._null:return r.value=this.match(R._null),this.next(),this.finishNode(r,"NullLiteralTypeAnnotation");case R._this:return r.value=this.match(R._this),this.next(),this.finishNode(r,"ThisTypeAnnotation");case R.star:return this.next(),this.finishNode(r,"ExistentialTypeParam");default:if("typeof"===this.state.type.keyword)return this.flowParseTypeofType()}this.unexpected()},le.flowParsePostfixType=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.flowParsePrimaryType();!this.canInsertSemicolon()&&this.match(R.bracketL);){var n=this.startNodeAt(e,t);n.elementType=r,this.expect(R.bracketL),this.expect(R.bracketR),r=this.finishNode(n,"ArrayTypeAnnotation")}return r},le.flowParsePrefixType=function(){var e=this.startNode();return this.eat(R.question)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()},le.flowParseAnonFunctionWithoutParens=function(){var e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(R.arrow)){var t=this.startNodeAt(e.start,e.loc.start);return t.params=[this.reinterpretTypeAsFunctionTypeParam(e)],t.rest=null,t.returnType=this.flowParseType(),t.typeParameters=null,this.finishNode(t,"FunctionTypeAnnotation")}return e},le.flowParseIntersectionType=function(){var e=this.startNode();this.eat(R.bitwiseAND);var t=this.flowParseAnonFunctionWithoutParens();for(e.types=[t];this.eat(R.bitwiseAND);)e.types.push(this.flowParseAnonFunctionWithoutParens());return 1===e.types.length?t:this.finishNode(e,"IntersectionTypeAnnotation")},le.flowParseUnionType=function(){var e=this.startNode();this.eat(R.bitwiseOR);var t=this.flowParseIntersectionType();for(e.types=[t];this.eat(R.bitwiseOR);)e.types.push(this.flowParseIntersectionType());return 1===e.types.length?t:this.finishNode(e,"UnionTypeAnnotation")},le.flowParseType=function(){var e=this.state.inType;this.state.inType=!0;var t=this.flowParseUnionType();return this.state.inType=e,t},le.flowParseTypeAnnotation=function(){var e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")},le.flowParseTypeAndPredicateAnnotation=function(){var e=this.startNode(),t=this.flowParseTypeAndPredicateInitialiser();return e.typeAnnotation=t[0],e.predicate=t[1],this.finishNode(e,"TypeAnnotation")},le.flowParseTypeAnnotatableIdentifier=function(){var e=this.flowParseRestrictedIdentifier();return this.match(R.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(e,e.type)),e},le.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.finishNodeAt(e.expression,e.expression.type,e.typeAnnotation.end,e.typeAnnotation.loc.end)},le.flowParseVariance=function(){var e=null;return this.match(R.plusMin)&&("+"===this.state.value?e="plus":"-"===this.state.value&&(e="minus"),this.next()),e};var ce=function(e){e.extend("parseFunctionBody",function(e){return function(t,r){return this.match(R.colon)&&!r&&(t.returnType=this.flowParseTypeAndPredicateAnnotation()),e.call(this,t,r)}}),e.extend("parseStatement",function(e){return function(t,r){if(this.state.strict&&this.match(R.name)&&"interface"===this.state.value){var n=this.startNode();return this.next(),this.flowParseInterface(n)}return e.call(this,t,r)}}),e.extend("parseExpressionStatement",function(e){return function(t,r){if("Identifier"===r.type)if("declare"===r.name){if(this.match(R._class)||this.match(R.name)||this.match(R._function)||this.match(R._var)||this.match(R._export))return this.flowParseDeclare(t)}else if(this.match(R.name)){if("interface"===r.name)return this.flowParseInterface(t);if("type"===r.name)return this.flowParseTypeAlias(t);if("opaque"===r.name)return this.flowParseOpaqueType(t,!1)}return e.call(this,t,r)}}),e.extend("shouldParseExportDeclaration",function(e){return function(){return this.isContextual("type")||this.isContextual("interface")||this.isContextual("opaque")||e.call(this)}}),e.extend("isExportDefaultSpecifier",function(e){return function(){return(!this.match(R.name)||"type"!==this.state.value&&"interface"!==this.state.value&&"opaque"!==this.state.value)&&e.call(this)}}),e.extend("parseConditional",function(e){return function(t,r,n,i,s){if(s&&this.match(R.question)){var a=this.state.clone();try{return e.call(this,t,r,n,i)}catch(e){if(e instanceof SyntaxError)return this.state=a,s.start=e.pos||this.state.start,t;throw e}}return e.call(this,t,r,n,i)}}),e.extend("parseParenItem",function(e){return function(t,r,n){if(t=e.call(this,t,r,n),this.eat(R.question)&&(t.optional=!0),this.match(R.colon)){var i=this.startNodeAt(r,n);return i.expression=t,i.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(i,"TypeCastExpression")}return t}}),e.extend("parseExport",function(e){return function(t){return t=e.call(this,t),"ExportNamedDeclaration"===t.type&&(t.exportKind=t.exportKind||"value"),t}}),e.extend("parseExportDeclaration",function(e){return function(t){if(this.isContextual("type")){t.exportKind="type";var r=this.startNode();return this.next(),this.match(R.braceL)?(t.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(t),null):this.flowParseTypeAlias(r)}if(this.isContextual("opaque")){t.exportKind="type";var n=this.startNode();return this.next(),this.flowParseOpaqueType(n,!1)}if(this.isContextual("interface")){t.exportKind="type";var i=this.startNode();return this.next(),this.flowParseInterface(i)}return e.call(this,t)}}),e.extend("parseClassId",function(e){return function(t){e.apply(this,arguments),this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration())}}),e.extend("isKeyword",function(e){return function(t){return(!this.state.inType||"void"!==t)&&e.call(this,t)}}),e.extend("readToken",function(e){return function(t){return!this.state.inType||62!==t&&60!==t?e.call(this,t):this.finishOp(R.relational,1)}}),e.extend("jsx_readToken",function(e){return function(){if(!this.state.inType)return e.call(this)}}),e.extend("toAssignable",function(e){return function(t,r,n){return"TypeCastExpression"===t.type?e.call(this,this.typeCastToParameter(t),r,n):e.call(this,t,r,n)}}),e.extend("toAssignableList",function(e){return function(t,r,n){for(var i=0;i<t.length;i++){var s=t[i];s&&"TypeCastExpression"===s.type&&(t[i]=this.typeCastToParameter(s))}return e.call(this,t,r,n)}}),e.extend("toReferencedList",function(){return function(e){for(var t=0;t<e.length;t++){var r=e[t];r&&r._exprListItem&&"TypeCastExpression"===r.type&&this.raise(r.start,"Unexpected type cast")}return e}}),e.extend("parseExprListItem",function(e){return function(){for(var t=this.startNode(),r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];var s=e.call.apply(e,[this].concat(n));return this.match(R.colon)?(t._exprListItem=!0,t.expression=s,t.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t,"TypeCastExpression")):s}}),e.extend("checkLVal",function(e){return function(t){if("TypeCastExpression"!==t.type)return e.apply(this,arguments)}}),e.extend("parseClassProperty",function(e){return function(t){return delete t.variancePos,this.match(R.colon)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),e.call(this,t)}}),e.extend("isClassMethod",function(e){return function(){return this.isRelational("<")||e.call(this)}}),e.extend("isClassProperty",function(e){return function(){return this.match(R.colon)||e.call(this)}}),e.extend("isNonstaticConstructor",function(e){return function(t){return!this.match(R.colon)&&e.call(this,t)}}),e.extend("parseClassMethod",function(e){return function(t,r){r.variance&&this.unexpected(r.variancePos),delete r.variance,delete r.variancePos,this.isRelational("<")&&(r.typeParameters=this.flowParseTypeParameterDeclaration());for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];e.call.apply(e,[this,t,r].concat(i))}}),e.extend("parseClassSuper",function(e){return function(t,r){if(e.call(this,t,r),t.superClass&&this.isRelational("<")&&(t.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual("implements")){this.next();var n=t.implements=[];do{var i=this.startNode();i.id=this.parseIdentifier(),this.isRelational("<")?i.typeParameters=this.flowParseTypeParameterInstantiation():i.typeParameters=null,n.push(this.finishNode(i,"ClassImplements"))}while(this.eat(R.comma))}}}),e.extend("parsePropertyName",function(e){return function(t){var r=this.state.start,n=this.flowParseVariance(),i=e.call(this,t);return t.variance=n,t.variancePos=r,i}}),e.extend("parseObjPropValue",function(e){return function(t){t.variance&&this.unexpected(t.variancePos),delete t.variance,delete t.variancePos;var r=void 0;this.isRelational("<")&&(r=this.flowParseTypeParameterDeclaration(),this.match(R.parenL)||this.unexpected()),e.apply(this,arguments),r&&((t.value||t).typeParameters=r)}}),e.extend("parseAssignableListItemTypes",function(){return function(e){return this.eat(R.question)&&(e.optional=!0),this.match(R.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),this.finishNode(e,e.type),e}}),e.extend("parseMaybeDefault",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.apply(this,r);return"AssignmentPattern"===i.type&&i.typeAnnotation&&i.right.start<i.typeAnnotation.start&&this.raise(i.typeAnnotation.start,"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`"),i}}),e.extend("parseImportSpecifiers",function(e){return function(t){t.importKind="value";var r=null;if(this.match(R._typeof)?r="typeof":this.isContextual("type")&&(r="type"),r){var n=this.lookahead();(n.type===R.name&&"from"!==n.value||n.type===R.braceL||n.type===R.star)&&(this.next(),t.importKind=r)}e.call(this,t)}}),e.extend("parseImportSpecifier",function(){return function(e){var t=this.startNode(),r=this.state.start,n=this.parseIdentifier(!0),i=null;"type"===n.name?i="type":"typeof"===n.name&&(i="typeof");var s=!1;if(this.isContextual("as")){var a=this.parseIdentifier(!0);null===i||this.match(R.name)||this.state.type.keyword?(t.imported=n,t.importKind=null,t.local=this.parseIdentifier()):(t.imported=a,t.importKind=i,t.local=a.__clone())}else null!==i&&(this.match(R.name)||this.state.type.keyword)?(t.imported=this.parseIdentifier(!0),t.importKind=i,this.eatContextual("as")?t.local=this.parseIdentifier():(s=!0,t.local=t.imported.__clone())):(s=!0,t.imported=n,t.importKind=null,t.local=t.imported.__clone());"type"!==e.importKind&&"typeof"!==e.importKind||"type"!==t.importKind&&"typeof"!==t.importKind||this.raise(r,"`The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements`"),s&&this.checkReservedWord(t.local.name,t.start,!0,!0),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))}}),e.extend("parseFunctionParams",function(e){return function(t){this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),e.call(this,t)}}),e.extend("parseVarHead",function(e){return function(t){e.call(this,t),this.match(R.colon)&&(t.id.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t.id,t.id.type))}}),e.extend("parseAsyncArrowFromCallExpression",function(e){return function(t,r){if(this.match(R.colon)){var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,t.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=n}return e.call(this,t,r)}}),e.extend("shouldParseAsyncArrow",function(e){return function(){return this.match(R.colon)||e.call(this)}}),e.extend("parseMaybeAssign",function(e){return function(){for(var t=null,r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];if(R.jsxTagStart&&this.match(R.jsxTagStart)){var s=this.state.clone();try{return e.apply(this,n)}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=s,this.state.context.length-=2,t=e}}if(null!=t||this.isRelational("<")){var a=void 0,o=void 0;try{o=this.flowParseTypeParameterDeclaration(),a=e.apply(this,n),a.typeParameters=o,a.start=o.start,a.loc.start=o.loc.start}catch(e){throw t||e}if("ArrowFunctionExpression"===a.type)return a;if(null!=t)throw t;this.raise(o.start,"Expected an arrow function after this type parameter declaration")}return e.apply(this,n)}}),e.extend("parseArrow",function(e){return function(t){if(this.match(R.colon)){var r=this.state.clone();try{var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;var i=this.flowParseTypeAndPredicateAnnotation();this.state.noAnonFunctionType=n,this.canInsertSemicolon()&&this.unexpected(),this.match(R.arrow)||this.unexpected(),t.returnType=i}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=r}}return e.call(this,t)}}),e.extend("shouldParseArrow",function(e){return function(){return this.match(R.colon)||e.call(this)}})},fe=String.fromCodePoint;if(!fe){var pe=String.fromCharCode,de=Math.floor;fe=function(){var e=[],t=void 0,r=void 0,n=-1,i=arguments.length;if(!i)return"";for(var s="";++n<i;){var a=Number(arguments[n]);if(!isFinite(a)||a<0||a>1114111||de(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?e.push(a):(a-=65536,t=55296+(a>>10),r=a%1024+56320,e.push(t,r)),(n+1==i||e.length>16384)&&(s+=pe.apply(null,e),e.length=0)}return s}}var he=fe,me={quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",times:"×",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",divide:"÷",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",frasl:"⁄",euro:"€",image:"ℑ",weierp:"℘",real:"ℜ",trade:"™",alefsym:"ℵ",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lArr:"⇐",uArr:"⇑",rArr:"⇒",dArr:"⇓",hArr:"⇔",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",lang:"〈",rang:"〉",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"},ye=/^[\da-fA-F]+$/,ve=/^\d+$/;U.j_oTag=new j("<tag",!1),U.j_cTag=new j("</tag",!1),U.j_expr=new j("<tag>...</tag>",!0,!0),R.jsxName=new T("jsxName"),R.jsxText=new T("jsxText",{beforeExpr:!0}),R.jsxTagStart=new T("jsxTagStart",{startsExpr:!0}),R.jsxTagEnd=new T("jsxTagEnd"),R.jsxTagStart.updateContext=function(){this.state.context.push(U.j_expr),this.state.context.push(U.j_oTag),this.state.exprAllowed=!1},R.jsxTagEnd.updateContext=function(e){var t=this.state.context.pop();t===U.j_oTag&&e===R.slash||t===U.j_cTag?(this.state.context.pop(),this.state.exprAllowed=this.curContext()===U.j_expr):this.state.exprAllowed=!0};var ge=J.prototype;ge.jsxReadToken=function(){for(var e="",t=this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated JSX contents");var r=this.input.charCodeAt(this.state.pos);switch(r){case 60:case 123:return this.state.pos===this.state.start?60===r&&this.state.exprAllowed?(++this.state.pos,this.finishToken(R.jsxTagStart)):this.getTokenFromCode(r):(e+=this.input.slice(t,this.state.pos),this.finishToken(R.jsxText,e));case 38:e+=this.input.slice(t,this.state.pos),e+=this.jsxReadEntity(),t=this.state.pos;break;default:o(r)?(e+=this.input.slice(t,this.state.pos),e+=this.jsxReadNewLine(!0),t=this.state.pos):++this.state.pos}}},ge.jsxReadNewLine=function(e){var t=this.input.charCodeAt(this.state.pos),r=void 0;return++this.state.pos,13===t&&10===this.input.charCodeAt(this.state.pos)?(++this.state.pos,r=e?"\n":"\r\n"):r=String.fromCharCode(t),++this.state.curLine,this.state.lineStart=this.state.pos,r},ge.jsxReadString=function(e){for(var t="",r=++this.state.pos;;){this.state.pos>=this.input.length&&this.raise(this.state.start,"Unterminated string constant");var n=this.input.charCodeAt(this.state.pos);if(n===e)break;38===n?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadEntity(),r=this.state.pos):o(n)?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}return t+=this.input.slice(r,this.state.pos++),this.finishToken(R.string,t)},ge.jsxReadEntity=function(){for(var e="",t=0,r=void 0,n=this.input[this.state.pos],i=++this.state.pos;this.state.pos<this.input.length&&t++<10;){if(";"===(n=this.input[this.state.pos++])){"#"===e[0]?"x"===e[1]?(e=e.substr(2),ye.test(e)&&(r=he(parseInt(e,16)))):(e=e.substr(1),ve.test(e)&&(r=he(parseInt(e,10)))):r=me[e];break}e+=n}return r||(this.state.pos=i,"&")},ge.jsxReadWord=function(){var e=void 0,t=this.state.pos;do{e=this.input.charCodeAt(++this.state.pos)}while(s(e)||45===e);return this.finishToken(R.jsxName,this.input.slice(t,this.state.pos))},ge.jsxParseIdentifier=function(){var e=this.startNode();return this.match(R.jsxName)?e.name=this.state.value:this.state.type.keyword?e.name=this.state.type.keyword:this.unexpected(),this.next(),this.finishNode(e,"JSXIdentifier")},ge.jsxParseNamespacedName=function(){var e=this.state.start,t=this.state.startLoc,r=this.jsxParseIdentifier();if(!this.eat(R.colon))return r;var n=this.startNodeAt(e,t);return n.namespace=r,n.name=this.jsxParseIdentifier(),this.finishNode(n,"JSXNamespacedName")},ge.jsxParseElementName=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.jsxParseNamespacedName();this.eat(R.dot);){var n=this.startNodeAt(e,t);n.object=r,n.property=this.jsxParseIdentifier(),r=this.finishNode(n,"JSXMemberExpression")}return r},ge.jsxParseAttributeValue=function(){var e=void 0;switch(this.state.type){case R.braceL:if(e=this.jsxParseExpressionContainer(),"JSXEmptyExpression"!==e.expression.type)return e;this.raise(e.start,"JSX attributes must only be assigned a non-empty expression");case R.jsxTagStart:case R.string:return e=this.parseExprAtom(),e.extra=null,e;default:this.raise(this.state.start,"JSX value should be either an expression or a quoted JSX text")}},ge.jsxParseEmptyExpression=function(){var e=this.startNodeAt(this.state.lastTokEnd,this.state.lastTokEndLoc);return this.finishNodeAt(e,"JSXEmptyExpression",this.state.start,this.state.startLoc)},ge.jsxParseSpreadChild=function(){var e=this.startNode();return this.expect(R.braceL),this.expect(R.ellipsis),e.expression=this.parseExpression(),this.expect(R.braceR),this.finishNode(e,"JSXSpreadChild")},ge.jsxParseExpressionContainer=function(){var e=this.startNode();return this.next(),this.match(R.braceR)?e.expression=this.jsxParseEmptyExpression():e.expression=this.parseExpression(),this.expect(R.braceR),this.finishNode(e,"JSXExpressionContainer")},ge.jsxParseAttribute=function(){var e=this.startNode();return this.eat(R.braceL)?(this.expect(R.ellipsis),e.argument=this.parseMaybeAssign(),this.expect(R.braceR),this.finishNode(e,"JSXSpreadAttribute")):(e.name=this.jsxParseNamespacedName(),e.value=this.eat(R.eq)?this.jsxParseAttributeValue():null,this.finishNode(e,"JSXAttribute"))},ge.jsxParseOpeningElementAt=function(e,t){var r=this.startNodeAt(e,t);for(r.attributes=[],r.name=this.jsxParseElementName();!this.match(R.slash)&&!this.match(R.jsxTagEnd);)r.attributes.push(this.jsxParseAttribute());return r.selfClosing=this.eat(R.slash),this.expect(R.jsxTagEnd),this.finishNode(r,"JSXOpeningElement")},ge.jsxParseClosingElementAt=function(e,t){var r=this.startNodeAt(e,t);return r.name=this.jsxParseElementName(),this.expect(R.jsxTagEnd),this.finishNode(r,"JSXClosingElement")},ge.jsxParseElementAt=function(e,t){var r=this.startNodeAt(e,t),n=[],i=this.jsxParseOpeningElementAt(e,t),s=null;if(!i.selfClosing){e:for(;;)switch(this.state.type){case R.jsxTagStart:if(e=this.state.start,t=this.state.startLoc,this.next(),this.eat(R.slash)){s=this.jsxParseClosingElementAt(e,t);break e}n.push(this.jsxParseElementAt(e,t));break;case R.jsxText:n.push(this.parseExprAtom());break;case R.braceL:this.lookahead().type===R.ellipsis?n.push(this.jsxParseSpreadChild()):n.push(this.jsxParseExpressionContainer());break;default:this.unexpected()}d(s.name)!==d(i.name)&&this.raise(s.start,"Expected corresponding JSX closing tag for <"+d(i.name)+">")}return r.openingElement=i,r.closingElement=s,r.children=n,this.match(R.relational)&&"<"===this.state.value&&this.raise(this.state.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,"JSXElement")},ge.jsxParseElement=function(){var e=this.state.start,t=this.state.startLoc;return this.next(),this.jsxParseElementAt(e,t)};var be=function(e){e.extend("parseExprAtom",function(e){return function(t){if(this.match(R.jsxText)){var r=this.parseLiteral(this.state.value,"JSXText");return r.extra=null,r}return this.match(R.jsxTagStart)?this.jsxParseElement():e.call(this,t)}}),e.extend("readToken",function(e){return function(t){if(this.state.inPropertyName)return e.call(this,t);var r=this.curContext();if(r===U.j_expr)return this.jsxReadToken();if(r===U.j_oTag||r===U.j_cTag){if(i(t))return this.jsxReadWord();if(62===t)return++this.state.pos,this.finishToken(R.jsxTagEnd);if((34===t||39===t)&&r===U.j_oTag)return this.jsxReadString(t)}return 60===t&&this.state.exprAllowed?(++this.state.pos,this.finishToken(R.jsxTagStart)):e.call(this,t)}}),e.extend("updateContext",function(e){return function(t){if(this.match(R.braceL)){var r=this.curContext();r===U.j_oTag?this.state.context.push(U.braceExpression):r===U.j_expr?this.state.context.push(U.templateQuasi):e.call(this,t),this.state.exprAllowed=!0}else{if(!this.match(R.slash)||t!==R.jsxTagStart)return e.call(this,t);this.state.context.length-=2,this.state.context.push(U.j_cTag),this.state.exprAllowed=!1}}})};K.estree=oe,K.flow=ce,K.jsx=be,t.parse=h,t.parseExpression=m,t.tokTypes=R},function(e,t,r){"use strict";var n=r(21),i=r(431),s=r(141),a=r(150)("IE_PROTO"),o=function(){},u=function(){var e,t=r(230)("iframe"),n=s.length;for(t.style.display="none",r(426).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write("<script>document.F=Object<\/script>"),e.close(),u=e.F;n--;)delete u.prototype[s[n]];return u()};e.exports=Object.create||function(e,t){var r;return null!==e?(o.prototype=n(e),r=new o,o.prototype=null,r[a]=e):r=u(),void 0===t?r:i(r,t)}},function(e,t){"use strict";t.f={}.propertyIsEnumerable},function(e,t){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){"use strict";var n=r(23).f,i=r(28),s=r(13)("toStringTag");e.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},function(e,t,r){"use strict";var n=r(140);e.exports=function(e){return Object(n(e))}},function(e,t){"use strict";var r=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+n).toString(36))}},function(e,t){"use strict"},function(e,t,r){"use strict";!function(){t.ast=r(461),t.code=r(240),t.keyword=r(462)}()},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(546),s=r(547),a=r(548),o=r(549),u=r(550);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t,r){"use strict";function n(e){var t=this.__data__=new i(e);this.size=t.size}var i=r(98),s=r(565),a=r(566),o=r(567),u=r(568),l=r(569);n.prototype.clear=s,n.prototype.delete=a,n.prototype.get=o,n.prototype.has=u,n.prototype.set=l,e.exports=n},function(e,t,r){"use strict";function n(e,t){for(var r=e.length;r--;)if(i(e[r][0],t))return r;return-1}var i=r(46);e.exports=n},function(e,t,r){"use strict";function n(e,t){return a(s(e,t,i),e+"")}var i=r(110),s=r(560),a=r(563);e.exports=n},function(e,t){"use strict";function r(e){return function(t){return e(t)}}e.exports=r},function(e,t,r){"use strict";function n(e){return i(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,o&&s(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n<i;){var u=r[n];u&&e(t,u,n,a)}return t})}var i=r(101),s=r(172);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=e.__data__;return i(t)?r["string"==typeof t?"string":"hash"]:r.map}var i=r(544);e.exports=n},function(e,t){"use strict";function r(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}var n=Object.prototype;e.exports=r},function(e,t,r){"use strict";var n=r(38),i=n(Object,"create");e.exports=i},function(e,t){"use strict";function r(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}e.exports=r},function(e,t,r){"use strict";function n(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-s?"-0":t}var i=r(62),s=1/0;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,s)}var i=r(164),s=4;e.exports=n},function(e,t){"use strict";function r(e){return e}e.exports=r},function(e,t,r){"use strict";function n(e,t,r,n){e=s(e)?e:u(e),r=r&&!n?o(r):0;var c=e.length;return r<0&&(r=l(c+r,0)),a(e)?r<=c&&e.indexOf(t,r)>-1:!!c&&i(e,t,r)>-1}var i=r(166),s=r(24),a=r(587),o=r(48),u=r(280),l=Math.max;e.exports=n},function(e,t,r){"use strict";var n=r(493),i=r(25),s=Object.prototype,a=s.hasOwnProperty,o=s.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(e){return i(e)&&a.call(e,"callee")&&!o.call(e,"callee")};e.exports=u},function(e,t,r){(function(e){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(17),s=r(596),a="object"==n(t)&&t&&!t.nodeType&&t,o=a&&"object"==n(e)&&e&&!e.nodeType&&e,u=o&&o.exports===a,l=u?i.Buffer:void 0,c=l?l.isBuffer:void 0,f=c||s;e.exports=f}).call(t,r(39)(e))},function(e,t,r){"use strict";function n(e){return null==e?"":i(e)}var i=r(253);e.exports=n},96,function(e,t,r){"use strict";function n(e){return o.memberExpression(o.identifier("regeneratorRuntime"),o.identifier(e),!1)}function i(e){return e.isReferenced()||e.parentPath.isAssignmentExpression({left:e.node})}function s(e,t){t?e.replaceWith(t):e.remove()}t.__esModule=!0,t.runtimeProperty=n,t.isReference=i,t.replaceWithOrRemove=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){(function(e,n){"use strict";function i(e,r){var n={seen:[],stylize:a};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(r)?n.showHidden=r:r&&t._extend(n,r),x(n.showHidden)&&(n.showHidden=!1),x(n.depth)&&(n.depth=2),x(n.colors)&&(n.colors=!1),x(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=s),u(n,e,n.depth)}function s(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function a(e,t){return e}function o(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,r,n){if(e.customInspect&&r&&C(r.inspect)&&r.inspect!==t.inspect&&(!r.constructor||r.constructor.prototype!==r)){var i=r.inspect(n,e);return b(i)||(i=u(e,i,n)),i}var s=l(e,r);if(s)return s;var a=Object.keys(r),m=o(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(r)),D(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(r);if(0===a.length){if(C(r)){var y=r.name?": "+r.name:"";return e.stylize("[Function"+y+"]","special")}if(A(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(_(r))return e.stylize(Date.prototype.toString.call(r),"date");if(D(r))return c(r)}var v="",g=!1,E=["{","}"];if(h(r)&&(g=!0,E=["[","]"]),C(r)){v=" [Function"+(r.name?": "+r.name:"")+"]"}if(A(r)&&(v=" "+RegExp.prototype.toString.call(r)),_(r)&&(v=" "+Date.prototype.toUTCString.call(r)),D(r)&&(v=" "+c(r)),0===a.length&&(!g||0==r.length))return E[0]+v+E[1];if(n<0)return A(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var x;return x=g?f(e,r,n,m,a):a.map(function(t){return p(e,r,n,m,t,g)}),e.seen.pop(),d(x,v,E)}function l(e,t){if(x(t))return e.stylize("undefined","undefined");if(b(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return g(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):y(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function f(e,t,r,n,i){for(var s=[],a=0,o=t.length;a<o;++a)T(t,String(a))?s.push(p(e,t,r,n,String(a),!0)):s.push("");return i.forEach(function(i){i.match(/^\d+$/)||s.push(p(e,t,r,n,i,!0))}),s}function p(e,t,r,n,i,s){var a,o,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?o=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(o=e.stylize("[Setter]","special")),T(n,i)||(a="["+i+"]"),o||(e.seen.indexOf(l.value)<0?(o=y(r)?u(e,l.value,null):u(e,l.value,r-1),o.indexOf("\n")>-1&&(o=s?o.split("\n").map(function(e){return"  "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return"   "+e}).join("\n"))):o=e.stylize("[Circular]","special")),x(a)){if(s&&i.match(/^\d+$/))return o;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+o}function d(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf("\n")>=0&&n++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n  ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function y(e){return null===e}function v(e){return null==e}function g(e){return"number"==typeof e}function b(e){return"string"==typeof e}function E(e){return"symbol"===(void 0===e?"undefined":O(e))}function x(e){return void 0===e}function A(e){return S(e)&&"[object RegExp]"===P(e)}function S(e){return"object"===(void 0===e?"undefined":O(e))&&null!==e}function _(e){return S(e)&&"[object Date]"===P(e)}function D(e){return S(e)&&("[object Error]"===P(e)||e instanceof Error)}function C(e){return"function"==typeof e}function w(e){
return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===(void 0===e?"undefined":O(e))||void 0===e}function P(e){return Object.prototype.toString.call(e)}function k(e){return e<10?"0"+e.toString(10):e.toString(10)}function F(){var e=new Date,t=[k(e.getHours()),k(e.getMinutes()),k(e.getSeconds())].join(":");return[e.getDate(),M[e.getMonth()],t].join(" ")}function T(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},B=/%[sdj%]/g;t.format=function(e){if(!b(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(i(arguments[r]));return t.join(" ")}for(var r=1,n=arguments,s=n.length,a=String(e).replace(B,function(e){if("%%"===e)return"%";if(r>=s)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),o=n[r];r<s;o=n[++r])y(o)||!S(o)?a+=" "+o:a+=" "+i(o);return a},t.deprecate=function(r,i){function s(){if(!a){if(n.throwDeprecation)throw new Error(i);n.traceDeprecation?console.trace(i):console.error(i),a=!0}return r.apply(this,arguments)}if(x(e.process))return function(){return t.deprecate(r,i).apply(this,arguments)};if(!0===n.noDeprecation)return r;var a=!1;return s};var R,I={};t.debuglog=function(e){if(x(R)&&(R=n.env.NODE_DEBUG||""),e=e.toUpperCase(),!I[e])if(new RegExp("\\b"+e+"\\b","i").test(R)){var r=n.pid;I[e]=function(){var n=t.format.apply(t,arguments);console.error("%s %d: %s",e,r,n)}}else I[e]=function(){};return I[e]},t.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=m,t.isNull=y,t.isNullOrUndefined=v,t.isNumber=g,t.isString=b,t.isSymbol=E,t.isUndefined=x,t.isRegExp=A,t.isObject=S,t.isDate=_,t.isError=D,t.isFunction=C,t.isPrimitive=w,t.isBuffer=r(627);var M=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];t.log=function(){console.log("%s - %s",F(),t.format.apply(t,arguments))},t.inherits=r(626),t._extend=function(e,t){if(!t||!S(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}}).call(t,function(){return this}(),r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(11),a=i(s);t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();if("object"===(void 0===u.default?"undefined":(0,a.default)(u.default)))return null;var r=f[t];if(!r){r=new u.default;var i=c.default.join(t,".babelrc");r.id=i,r.filename=i,r.paths=u.default._nodeModulePaths(t),f[t]=r}try{return u.default._resolveFilename(e,r)}catch(e){return null}};var o=r(115),u=i(o),l=r(19),c=i(l),f={};e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(133),s=n(i),a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c),p=function(e){function t(){(0,o.default)(this,t);var r=(0,l.default)(this,e.call(this));return r.dynamicData={},r}return(0,f.default)(t,e),t.prototype.setDynamic=function(e,t){this.dynamicData[e]=t},t.prototype.get=function(t){if(this.has(t))return e.prototype.get.call(this,t);if(Object.prototype.hasOwnProperty.call(this.dynamicData,t)){var r=this.dynamicData[t]();return this.set(t,r),r}},t}(s.default);t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(239),o=n(a),u=(0,o.default)("babel:verbose"),l=(0,o.default)("babel"),c=[],f=function(){function e(t,r){(0,s.default)(this,e),this.filename=r,this.file=t}return e.prototype._buildMessage=function(e){var t="[BABEL] "+this.filename;return e&&(t+=": "+e),t},e.prototype.warn=function(e){console.warn(this._buildMessage(e))},e.prototype.error=function(e){throw new(arguments.length>1&&void 0!==arguments[1]?arguments[1]:Error)(this._buildMessage(e))},e.prototype.deprecate=function(e){this.file.opts&&this.file.opts.suppressDeprecationMessages||(e=this._buildMessage(e),c.indexOf(e)>=0||(c.push(e),console.error(e)))},e.prototype.verbose=function(e){u.enabled&&u(this._buildMessage(e))},e.prototype.debug=function(e){l.enabled&&l(this._buildMessage(e))},e.prototype.deopt=function(e,t){this.debug(t)},e}();t.default=f,e.exports=t.default},function(e,t,r){"use strict";function n(e,t){var r=e.node,n=r.source?r.source.value:null,i=t.metadata.modules.exports,s=e.get("declaration");if(s.isStatement()){var o=s.getBindingIdentifiers();for(var l in o)i.exported.push(l),i.specifiers.push({kind:"local",local:l,exported:e.isExportDefaultDeclaration()?"default":l})}if(e.isExportNamedDeclaration()&&r.specifiers)for(var c=r.specifiers,f=Array.isArray(c),p=0,c=f?c:(0,a.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d,m=h.exported.name;i.exported.push(m),u.isExportDefaultSpecifier(h)&&i.specifiers.push({kind:"external",local:m,exported:m,source:n}),u.isExportNamespaceSpecifier(h)&&i.specifiers.push({kind:"external-namespace",exported:m,source:n});var y=h.local;y&&(n&&i.specifiers.push({kind:"external",local:y.name,exported:m,source:n}),n||i.specifiers.push({kind:"local",local:y.name,exported:m}))}e.isExportAllDeclaration()&&i.specifiers.push({kind:"external-all",source:n})}function i(e){e.skip()}t.__esModule=!0,t.ImportDeclaration=t.ModuleDeclaration=void 0;var s=r(2),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.ExportDeclaration=n,t.Scope=i;var o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o);t.ModuleDeclaration={enter:function(e,t){var r=e.node;r.source&&(r.source.value=t.resolveModuleSource(r.source.value))}},t.ImportDeclaration={exit:function(e,t){var r=e.node,n=[],i=[];t.metadata.modules.imports.push({source:r.source.value,imported:i,specifiers:n});for(var s=e.get("specifiers"),o=Array.isArray(s),u=0,s=o?s:(0,a.default)(s);;){var l;if(o){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l,f=c.node.local.name;if(c.isImportDefaultSpecifier()&&(i.push("default"),n.push({kind:"named",imported:"default",local:f})),c.isImportSpecifier()){var p=c.node.imported.name;i.push(p),n.push({kind:"named",imported:p,local:f})}c.isImportNamespaceSpecifier()&&(i.push("*"),n.push({kind:"namespace",local:f}))}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=t||i.EXTENSIONS,n=D.default.extname(e);return(0,x.default)(r,n)}function s(e){return e?Array.isArray(e)?e:"string"==typeof e?e.split(","):[e]:[]}function a(e){if(!e)return new RegExp(/.^/);if(Array.isArray(e)&&(e=new RegExp(e.map(m.default).join("|"),"i")),"string"==typeof e){e=(0,w.default)(e),((0,v.default)(e,"./")||(0,v.default)(e,"*/"))&&(e=e.slice(2)),(0,v.default)(e,"**/")&&(e=e.slice(3));var t=b.default.makeRe(e,{nocase:!0});return new RegExp(t.source.slice(1,-1),"i")}if((0,S.default)(e))return e;throw new TypeError("illegal type for regexify")}function o(e,t){return e?"boolean"==typeof e?o([e],t):"string"==typeof e?o(s(e),t):Array.isArray(e)?(t&&(e=e.map(t)),e):[e]:[]}function u(e){return"true"===e||1==e||!("false"===e||0==e||!e)&&e}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];if(e=e.replace(/\\/g,"/"),r){for(var n=r,i=Array.isArray(n),s=0,n=i?n:(0,p.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}if(c(a,e))return!1}return!0}if(t.length)for(var o=t,u=Array.isArray(o),l=0,o=u?o:(0,p.default)(o);;){var f;if(u){if(l>=o.length)break;f=o[l++]}else{if(l=o.next(),l.done)break;f=l.value}var d=f;if(c(d,e))return!0}return!1}function c(e,t){return"function"==typeof e?e(t):e.test(t)}t.__esModule=!0,t.inspect=t.inherits=void 0;var f=r(2),p=n(f),d=r(117);Object.defineProperty(t,"inherits",{enumerable:!0,get:function(){return d.inherits}}),Object.defineProperty(t,"inspect",{enumerable:!0,get:function(){return d.inspect}}),t.canCompile=i,t.list=s,t.regexify=a,t.arrayify=o,t.booleanify=u,t.shouldIgnore=l;var h=r(577),m=n(h),y=r(595),v=n(y),g=r(601),b=n(g),E=r(111),x=n(E),A=r(276),S=n(A),_=r(19),D=n(_),C=r(284),w=n(C);i.EXTENSIONS=[".js",".jsx",".es6",".es"]},function(e,t,r){"use strict";function n(e){e.variance&&("plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")),this.word(e.name)}function i(e){this.token("..."),this.print(e.argument,e)}function s(e){var t=e.properties;this.token("{"),this.printInnerComments(e),t.length&&(this.space(),this.printList(t,e,{indent:!0,statement:!0}),this.space()),this.token("}")}function a(e){this.printJoin(e.decorators,e),this._method(e)}function o(e){if(this.printJoin(e.decorators,e),e.computed)this.token("["),this.print(e.key,e),this.token("]");else{if(m.isAssignmentPattern(e.value)&&m.isIdentifier(e.key)&&e.key.name===e.value.left.name)return void this.print(e.value,e);if(this.print(e.key,e),e.shorthand&&m.isIdentifier(e.key)&&m.isIdentifier(e.value)&&e.key.name===e.value.name)return}this.token(":"),this.space(),this.print(e.value,e)}function u(e){var t=e.elements,r=t.length;this.token("["),this.printInnerComments(e);for(var n=0;n<t.length;n++){var i=t[n];i?(n>0&&this.space(),this.print(i,e),n<r-1&&this.token(",")):this.token(",")}this.token("]")}function l(e){this.word("/"+e.pattern+"/"+e.flags)}function c(e){this.word(e.value?"true":"false")}function f(){this.word("null")}function p(e){var t=this.getPossibleRaw(e),r=e.value+"";null==t?this.number(r):this.format.minified?this.number(t.length<r.length?t:r):this.number(t)}function d(e,t){var r=this.getPossibleRaw(e);if(!this.format.minified&&null!=r)return void this.token(r);var n={quotes:m.isJSX(t)?"double":this.format.quotes,wrap:!0};this.format.jsonCompatibleStrings&&(n.json=!0);var i=(0,v.default)(e.value,n);return this.token(i)}t.__esModule=!0,t.ArrayPattern=t.ObjectPattern=t.RestProperty=t.SpreadProperty=t.SpreadElement=void 0,t.Identifier=n,t.RestElement=i,t.ObjectExpression=s,t.ObjectMethod=a,t.ObjectProperty=o,t.ArrayExpression=u,t.RegExpLiteral=l,t.BooleanLiteral=c,t.NullLiteral=f,t.NumericLiteral=p,t.StringLiteral=d;var h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(469),v=function(e){return e&&e.__esModule?e:{default:e}}(y);t.SpreadElement=i,t.SpreadProperty=i,t.RestProperty=i,t.ObjectPattern=s,t.ArrayPattern=u},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=e.node,n=r.body;r.async=!1;var i=f.functionExpression(null,[],f.blockStatement(n.body),!0);i.shadow=!0,n.body=[f.returnStatement(f.callExpression(f.callExpression(t,[i]),[]))],r.generator=!1}function s(e,t){var r=e.node,n=e.isFunctionDeclaration(),i=r.id,s=h;e.isArrowFunctionExpression()?e.arrowFunctionToShadowed():!n&&i&&(s=m),r.async=!1,r.generator=!0,r.id=null,n&&(r.type="FunctionExpression");var a=f.callExpression(t,[r]),u=s({NAME:i,REF:e.scope.generateUidIdentifier("ref"),FUNCTION:a,PARAMS:r.params.reduce(function(t,r){return t.done=t.done||f.isAssignmentPattern(r)||f.isRestElement(r),t.done||t.params.push(e.scope.generateUidIdentifier("x")),t},{params:[],done:!1}).params}).expression;if(n){var l=f.variableDeclaration("let",[f.variableDeclarator(f.identifier(i.name),f.callExpression(u,[]))]);l._blockHoist=!0,e.replaceWith(l)}else{var c=u.body.body[1].argument;i||(0,o.default)({node:c,parent:e.parent,scope:e.scope}),!c||c.id||r.params.length?e.replaceWith(f.callExpression(u,[])):e.replaceWith(a)}}t.__esModule=!0,t.default=function(e,t,r){r||(r={wrapAsync:t},t=null),e.traverse(y,{file:t,wrapAwait:r.wrapAwait}),e.isClassMethod()||e.isObjectMethod()?i(e,r.wrapAsync):s(e,r.wrapAsync)};var a=r(40),o=n(a),u=r(4),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=r(320),d=n(p),h=(0,l.default)("\n  (() => {\n    var REF = FUNCTION;\n    return function NAME(PARAMS) {\n      return REF.apply(this, arguments);\n    };\n  })\n"),m=(0,l.default)("\n  (() => {\n    var REF = FUNCTION;\n    function NAME(PARAMS) {\n      return REF.apply(this, arguments);\n    }\n    return NAME;\n  })\n"),y={Function:function(e){if(e.isArrowFunctionExpression()&&!e.node.async)return void e.arrowFunctionToShadowed();e.skip()},AwaitExpression:function(e,t){var r=e.node,n=t.wrapAwait;r.type="YieldExpression",n&&(r.argument=f.callExpression(n,[r.argument]))},ForAwaitStatement:function(e,t){var r=t.file,n=t.wrapAwait,i=e.node,s=(0,d.default)(e,{getAsyncIterator:r.addHelper("asyncIterator"),wrapAwait:n}),a=s.declar,o=s.loop,u=o.body;e.ensureBlock(),a&&u.body.push(a),u.body=u.body.concat(i.body.body),f.inherits(o,i),f.inherits(o.body,i.body),s.replaceParent?(e.parentPath.replaceWithMultiple(s.node),e.remove()):e.replaceWithMultiple(s.node)}};e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("decorators")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("flow")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("jsx")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("trailingFunctionCommas")}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67),visitor:{Function:function(e,t){e.node.async&&!e.node.generator&&(0,i.default)(e,t.file,{wrapAsync:t.addHelper("asyncToGenerator")})}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return c.isIdentifier(e)?e.name:e.value.toString()}t.__esModule=!0;var s=r(2),a=n(s),o=r(9),u=n(o);t.default=function(){return{visitor:{ObjectExpression:function(e){for(var t=e.node,r=t.properties.filter(function(e){return!c.isSpreadProperty(e)&&!e.computed}),n=(0,u.default)(null),s=(0,u.default)(null),o=(0,u.default)(null),l=r,f=Array.isArray(l),p=0,l=f?l:(0,a.default)(l);;){var d;if(f){if(p>=l.length)break;d=l[p++]}else{if(p=l.next(),p.done)break;d=p.value}var h=d,m=i(h.key),y=!1;switch(h.kind){case"get":(n[m]||s[m])&&(y=!0),s[m]=!0;break;case"set":(n[m]||o[m])&&(y=!0),o[m]=!0;break;default:(n[m]||s[m]||o[m])&&(y=!0),n[m]=!0}y&&(h.computed=!0,h.key=c.stringLiteral(m))}}}}};var l=r(1),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(l);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i);t.default=function(e){function t(e){if(!e.isCallExpression())return!1;if(!e.get("callee").isIdentifier({name:"require"}))return!1;if(e.scope.getBinding("require"))return!1;var t=e.get("arguments");return 1===t.length&&!!t[0].isStringLiteral()}var n=e.types,i={ReferencedIdentifier:function(e){var t=e.node,r=e.scope;"exports"!==t.name||r.getBinding("exports")||(this.hasExports=!0),"module"!==t.name||r.getBinding("module")||(this.hasModule=!0)},CallExpression:function(e){t(e)&&(this.bareSources.push(e.node.arguments[0]),e.remove())},VariableDeclarator:function(e){var r=e.get("id");if(r.isIdentifier()){var n=e.get("init");if(t(n)){var i=n.node.arguments[0];this.sourceNames[i.value]=!0,this.sources.push([r.node,i]),e.remove()}}}};return{inherits:r(77),pre:function(){this.sources=[],this.sourceNames=(0,s.default)(null),this.bareSources=[],this.hasExports=!1,this.hasModule=!1},visitor:{Program:{exit:function(e){var t=this;if(!this.ran){this.ran=!0,e.traverse(i,this);var r=this.sources.map(function(e){return e[0]}),s=this.sources.map(function(e){return e[1]});s=s.concat(this.bareSources.filter(function(e){return!t.sourceNames[e.value]}));var a=this.getModuleName();a&&(a=n.stringLiteral(a)),this.hasExports&&(s.unshift(n.stringLiteral("exports")),r.unshift(n.identifier("exports"))),this.hasModule&&(s.unshift(n.stringLiteral("module")),r.unshift(n.identifier("module")));var o=e.node,c=l({PARAMS:r,BODY:o.body});c.expression.body.directives=o.directives,o.directives=[],o.body=[u({MODULE_NAME:a,SOURCES:s,FACTORY:c})]}}}}}};var a=r(4),o=n(a),u=(0,o.default)("\n  define(MODULE_NAME, [SOURCES], FACTORY);\n"),l=(0,o.default)("\n  (function (PARAMS) {\n    BODY;\n  })\n");e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{inherits:r(199),visitor:(0,i.default)({operator:"**",build:function(e,r){return t.callExpression(t.memberExpression(t.identifier("Math"),t.identifier("pow")),[e,r])}})}};var n=r(316),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";e.exports={default:r(406),__esModule:!0}},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t,r){for(var n=I.scope.get(e.node)||[],i=n,s=Array.isArray(i),a=0,i=s?i:(0,y.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;if(u.parent===t&&u.path===e)return u}n.push(r),I.scope.has(e.node)||I.scope.set(e.node,n)}function a(e,t){if(R.isModuleDeclaration(e))if(e.source)a(e.source,t);else if(e.specifiers&&e.specifiers.length)for(var r=e.specifiers,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var o=s;a(o,t)}else e.declaration&&a(e.declaration,t);else if(R.isModuleSpecifier(e))a(e.local,t);else if(R.isMemberExpression(e))a(e.object,t),a(e.property,t);else if(R.isIdentifier(e))t.push(e.name);else if(R.isLiteral(e))t.push(e.value);else if(R.isCallExpression(e))a(e.callee,t);else if(R.isObjectExpression(e)||R.isObjectPattern(e))for(var u=e.properties,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;a(p.key||p.argument,t)}}t.__esModule=!0;var o=r(14),u=i(o),l=r(9),c=i(l),f=r(133),p=i(f),d=r(3),h=i(d),m=r(2),y=i(m),v=r(111),g=i(v),b=r(278),E=i(b),x=r(383),A=i(x),S=r(7),_=i(S),D=r(273),C=i(D),w=r(20),P=n(w),k=r(225),F=i(k),T=r(463),O=i(T),B=r(1),R=n(B),I=r(88),M=0,N={For:function(e){for(var t=R.FOR_INIT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=e.get(s);a.isVar()&&e.scope.getFunctionParent().registerBinding("var",a)}},Declaration:function(e){e.isBlockScoped()||e.isExportDeclaration()&&e.get("declaration").isDeclaration()||e.scope.getFunctionParent().registerDeclaration(e)},ReferencedIdentifier:function(e,t){t.references.push(e)},ForXStatement:function(e,t){var r=e.get("left");(r.isPattern()||r.isIdentifier())&&t.constantViolations.push(r)},ExportDeclaration:{exit:function(e){var t=e.node,r=e.scope,n=t.declaration;if(R.isClassDeclaration(n)||R.isFunctionDeclaration(n)){var i=n.id;if(!i)return;var s=r.getBinding(i.name);s&&s.reference(e)}else if(R.isVariableDeclaration(n))for(var a=n.declarations,o=Array.isArray(a),u=0,a=o?a:(0,y.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l,f=R.getBindingIdentifiers(c);for(var p in f){var d=r.getBinding(p);d&&d.reference(e)}}}},LabeledStatement:function(e){e.scope.getProgramParent().addGlobal(e.node),e.scope.getBlockParent().registerDeclaration(e)},AssignmentExpression:function(e,t){t.assignments.push(e)},UpdateExpression:function(e,t){t.constantViolations.push(e.get("argument"))},UnaryExpression:function(e,t){"delete"===e.node.operator&&t.constantViolations.push(e.get("argument"))},BlockScoped:function(e){var t=e.scope;t.path===e&&(t=t.parent),t.getBlockParent().registerDeclaration(e)},ClassDeclaration:function(e){var t=e.node.id;if(t){var r=t.name;e.scope.bindings[r]=e.scope.getBinding(r)}},Block:function(e){for(var t=e.get("body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;a.isFunctionDeclaration()&&e.scope.getBlockParent().registerDeclaration(a)}}},L=0,j=function(){function e(t,r){if((0,h.default)(this,e),r&&r.block===t.node)return r;var n=s(t,r,this);if(n)return n;this.uid=L++,this.parent=r,this.hub=t.hub,this.parentBlock=t.parent,this.block=t.node,this.path=t,this.labels=new p.default}return e.prototype.traverse=function(e,t,r){(0,_.default)(e,t,this,r,this.path)},e.prototype.generateDeclaredUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp",t=this.generateUidIdentifier(e);return this.push({id:t}),t},e.prototype.generateUidIdentifier=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";return R.identifier(this.generateUid(e))},e.prototype.generateUid=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";e=R.toIdentifier(e).replace(/^_+/,"").replace(/[0-9]+$/g,"");var t=void 0,r=0;do{t=this._generateUid(e,r),r++}while(this.hasLabel(t)||this.hasBinding(t)||this.hasGlobal(t)||this.hasReference(t));var n=this.getProgramParent();return n.references[t]=!0,n.uids[t]=!0,t},e.prototype._generateUid=function(e,t){var r=e;return t>1&&(r+=t),"_"+r},e.prototype.generateUidIdentifierBasedOnNode=function(e,t){var r=e;R.isAssignmentExpression(e)?r=e.left:R.isVariableDeclarator(e)?r=e.id:(R.isObjectProperty(r)||R.isObjectMethod(r))&&(r=r.key);var n=[];a(r,n);var i=n.join("$");return i=i.replace(/^_/,"")||t||"ref",this.generateUidIdentifier(i.slice(0,20))},e.prototype.isStatic=function(e){if(R.isThisExpression(e)||R.isSuper(e))return!0;if(R.isIdentifier(e)){var t=this.getBinding(e.name);return t?t.constant:this.hasBinding(e.name)}return!1},e.prototype.maybeGenerateMemoised=function(e,t){if(this.isStatic(e))return null;var r=this.generateUidIdentifierBasedOnNode(e);return t||this.push({id:r}),r},e.prototype.checkBlockScopedCollisions=function(e,t,r,n){if("param"!==t&&("hoisted"!==t||"let"!==e.kind)){if("let"===t||"let"===e.kind||"const"===e.kind||"module"===e.kind||"param"===e.kind&&("let"===t||"const"===t))throw this.hub.file.buildCodeFrameError(n,P.get("scopeDuplicateDeclaration",r),TypeError)}},e.prototype.rename=function(e,t,r){var n=this.getBinding(e);if(n)return t=t||this.generateUidIdentifier(e).name,new A.default(n,e,t).rename(r)},e.prototype._renameFromMap=function(e,t,r,n){e[t]&&(e[r]=n,e[t]=null)},e.prototype.dump=function(){var e=(0,E.default)("-",60);console.log(e);var t=this;do{console.log("#",t.block.type);for(var r in t.bindings){var n=t.bindings[r];console.log(" -",r,{constant:n.constant,references:n.references,violations:n.constantViolations.length,kind:n.kind})}}while(t=t.parent);console.log(e)},e.prototype.toArray=function(e,t){var r=this.hub.file;if(R.isIdentifier(e)){var n=this.getBinding(e.name);if(n&&n.constant&&n.path.isGenericType("Array"))return e}if(R.isArrayExpression(e))return e;if(R.isIdentifier(e,{name:"arguments"}))return R.callExpression(R.memberExpression(R.memberExpression(R.memberExpression(R.identifier("Array"),R.identifier("prototype")),R.identifier("slice")),R.identifier("call")),[e]);var i="toArray",s=[e];return!0===t?i="toConsumableArray":t&&(s.push(R.numericLiteral(t)),i="slicedToArray"),R.callExpression(r.addHelper(i),s)},e.prototype.hasLabel=function(e){return!!this.getLabel(e)},e.prototype.getLabel=function(e){return this.labels.get(e)},e.prototype.registerLabel=function(e){this.labels.set(e.node.label.name,e)},e.prototype.registerDeclaration=function(e){if(e.isLabeledStatement())this.registerLabel(e);else if(e.isFunctionDeclaration())this.registerBinding("hoisted",e.get("id"),e);else if(e.isVariableDeclaration())for(var t=e.get("declarations"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,y.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;this.registerBinding(e.node.kind,a)}else if(e.isClassDeclaration())this.registerBinding("let",e);else if(e.isImportDeclaration())for(var o=e.get("specifiers"),u=o,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;this.registerBinding("module",p)}else if(e.isExportDeclaration()){var d=e.get("declaration");(d.isClassDeclaration()||d.isFunctionDeclaration()||d.isVariableDeclaration())&&this.registerDeclaration(d)}else this.registerBinding("unknown",e)},e.prototype.buildUndefinedNode=function(){return this.hasBinding("undefined")?R.unaryExpression("void",R.numericLiteral(0),!0):R.identifier("undefined")},e.prototype.registerConstantViolation=function(e){var t=e.getBindingIdentifiers();for(var r in t){var n=this.getBinding(r);n&&n.reassign(e)}},e.prototype.registerBinding=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t;if(!e)throw new ReferenceError("no `kind`");if(t.isVariableDeclaration())for(var n=t.get("declarations"),i=n,s=Array.isArray(i),a=0,i=s?i:(0,y.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;this.registerBinding(e,u)}else{var l=this.getProgramParent(),c=t.getBindingIdentifiers(!0);for(var f in c)for(var p=c[f],d=Array.isArray(p),h=0,p=d?p:(0,y.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var v=m,g=this.getOwnBinding(f);if(g){if(g.identifier===v)continue;this.checkBlockScopedCollisions(g,e,f,v)}g&&g.path.isFlow()&&(g=null),l.references[f]=!0,this.bindings[f]=new F.default({identifier:v,existing:g,scope:this,path:r,kind:e})}}},e.prototype.addGlobal=function(e){this.globals[e.name]=e},e.prototype.hasUid=function(e){var t=this;do{if(t.uids[e])return!0}while(t=t.parent);return!1},e.prototype.hasGlobal=function(e){var t=this;do{if(t.globals[e])return!0}while(t=t.parent);return!1},e.prototype.hasReference=function(e){var t=this;do{if(t.references[e])return!0}while(t=t.parent);return!1},e.prototype.isPure=function(e,t){if(R.isIdentifier(e)){var r=this.getBinding(e.name);return!!r&&(!t||r.constant)}if(R.isClass(e))return!(e.superClass&&!this.isPure(e.superClass,t))&&this.isPure(e.body,t);if(R.isClassBody(e)){for(var n=e.body,i=Array.isArray(n),s=0,n=i?n:(0,y.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if(!this.isPure(o,t))return!1}return!0}if(R.isBinary(e))return this.isPure(e.left,t)&&this.isPure(e.right,t);if(R.isArrayExpression(e)){for(var u=e.elements,l=Array.isArray(u),c=0,u=l?u:(0,y.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;if(!this.isPure(p,t))return!1}return!0}if(R.isObjectExpression(e)){for(var d=e.properties,h=Array.isArray(d),m=0,d=h?d:(0,y.default)(d);;){var v;if(h){if(m>=d.length)break;v=d[m++]}else{if(m=d.next(),m.done)break;v=m.value}var g=v;if(!this.isPure(g,t))return!1}return!0}return R.isClassMethod(e)?!(e.computed&&!this.isPure(e.key,t))&&("get"!==e.kind&&"set"!==e.kind):R.isClassProperty(e)||R.isObjectProperty(e)?!(e.computed&&!this.isPure(e.key,t))&&this.isPure(e.value,t):R.isUnaryExpression(e)?this.isPure(e.argument,t):R.isPureish(e)},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e){var t=this;do{var r=t.data[e];if(null!=r)return r}while(t=t.parent)},e.prototype.removeData=function(e){var t=this;do{null!=t.data[e]&&(t.data[e]=null)}while(t=t.parent)},e.prototype.init=function(){this.references||this.crawl()},e.prototype.crawl=function(){M++,this._crawl(),M--},e.prototype._crawl=function(){var e=this.path;if(this.references=(0,c.default)(null),this.bindings=(0,c.default)(null),this.globals=(0,c.default)(null),this.uids=(0,c.default)(null),this.data=(0,c.default)(null),e.isLoop())for(var t=R.FOR_INIT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=e.get(s);a.isBlockScoped()&&this.registerBinding(a.node.kind,a)}if(e.isFunctionExpression()&&e.has("id")&&(e.get("id").node[R.NOT_LOCAL_BINDING]||this.registerBinding("local",e.get("id"),e)),e.isClassExpression()&&e.has("id")&&(e.get("id").node[R.NOT_LOCAL_BINDING]||this.registerBinding("local",e)),e.isFunction())for(var o=e.get("params"),u=o,l=Array.isArray(u),f=0,u=l?u:(0,y.default)(u);;){var p;if(l){if(f>=u.length)break;p=u[f++]}else{if(f=u.next(),f.done)break;p=f.value}var d=p;this.registerBinding("param",d)}if(e.isCatchClause()&&this.registerBinding("let",e),!this.getProgramParent().crawling){var h={references:[],constantViolations:[],assignments:[]};this.crawling=!0,e.traverse(N,h),this.crawling=!1;for(var m=h.assignments,v=Array.isArray(m),g=0,m=v?m:(0,y.default)(m);;){var b;if(v){if(g>=m.length)break;b=m[g++]}else{if(g=m.next(),g.done)break;b=g.value}var E=b,x=E.getBindingIdentifiers(),A=void 0;for(var S in x)E.scope.getBinding(S)||(A=A||E.scope.getProgramParent(),A.addGlobal(x[S]));E.scope.registerConstantViolation(E)}for(var _=h.references,D=Array.isArray(_),C=0,_=D?_:(0,y.default)(_);;){var w;if(D){if(C>=_.length)break;w=_[C++]}else{if(C=_.next(),C.done)break;w=C.value}var P=w,k=P.scope.getBinding(P.node.name);k?k.reference(P):P.scope.getProgramParent().addGlobal(P.node)}for(var F=h.constantViolations,T=Array.isArray(F),O=0,F=T?F:(0,y.default)(F);;){var B;if(T){if(O>=F.length)break;B=F[O++]}else{if(O=F.next(),O.done)break;B=O.value}var I=B;I.scope.registerConstantViolation(I)}}},e.prototype.push=function(e){var t=this.path;t.isBlockStatement()||t.isProgram()||(t=this.getBlockParent().path),t.isSwitchStatement()&&(t=this.getFunctionParent().path),(t.isLoop()||t.isCatchClause()||t.isFunction())&&(R.ensureBlock(t.node),t=t.get("body"));var r=e.unique,n=e.kind||"var",i=null==e._blockHoist?2:e._blockHoist,s="declaration:"+n+":"+i,a=!r&&t.getData(s);if(!a){var o=R.variableDeclaration(n,[]);o._generated=!0,o._blockHoist=i;a=t.unshiftContainer("body",[o])[0],r||t.setData(s,a)}var u=R.variableDeclarator(e.id,e.init);a.node.declarations.push(u),this.registerBinding(n,a.get("declarations").pop())},e.prototype.getProgramParent=function(){var e=this;do{if(e.path.isProgram())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getFunctionParent=function(){var e=this;do{if(e.path.isFunctionParent())return e}while(e=e.parent);throw new Error("We couldn't find a Function or Program...")},e.prototype.getBlockParent=function(){var e=this;do{if(e.path.isBlockParent())return e}while(e=e.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},e.prototype.getAllBindings=function(){var e=(0,c.default)(null),t=this;do{(0,C.default)(e,t.bindings),t=t.parent}while(t);return e},e.prototype.getAllBindingsOfKind=function(){for(var e=(0,c.default)(null),t=arguments,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,a=this;do{for(var o in a.bindings){var u=a.bindings[o];u.kind===s&&(e[o]=u)}a=a.parent}while(a)}return e},e.prototype.bindingIdentifierEquals=function(e,t){
return this.getBindingIdentifier(e)===t},e.prototype.warnOnFlowBinding=function(e){return 0===M&&e&&e.path.isFlow()&&console.warn("\n        You or one of the Babel plugins you are using are using Flow declarations as bindings.\n        Support for this will be removed in version 7. To find out the caller, grep for this\n        message and change it to a `console.trace()`.\n      "),e},e.prototype.getBinding=function(e){var t=this;do{var r=t.getOwnBinding(e);if(r)return this.warnOnFlowBinding(r)}while(t=t.parent)},e.prototype.getOwnBinding=function(e){return this.warnOnFlowBinding(this.bindings[e])},e.prototype.getBindingIdentifier=function(e){var t=this.getBinding(e);return t&&t.identifier},e.prototype.getOwnBindingIdentifier=function(e){var t=this.bindings[e];return t&&t.identifier},e.prototype.hasOwnBinding=function(e){return!!this.getOwnBinding(e)},e.prototype.hasBinding=function(t,r){return!!t&&(!!this.hasOwnBinding(t)||(!!this.parentHasBinding(t,r)||(!!this.hasUid(t)||(!(r||!(0,g.default)(e.globals,t))||!(r||!(0,g.default)(e.contextVariables,t))))))},e.prototype.parentHasBinding=function(e,t){return this.parent&&this.parent.hasBinding(e,t)},e.prototype.moveBindingTo=function(e,t){var r=this.getBinding(e);r&&(r.scope.removeOwnBinding(e),r.scope=t,t.bindings[e]=r)},e.prototype.removeOwnBinding=function(e){delete this.bindings[e]},e.prototype.removeBinding=function(e){var t=this.getBinding(e);t&&t.scope.removeOwnBinding(e);var r=this;do{r.uids[e]&&(r.uids[e]=!1)}while(r=r.parent)},e}();j.globals=(0,u.default)(O.default.builtin),j.contextVariables=["arguments","undefined","Infinity","NaN"],t.default=j,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.NOT_LOCAL_BINDING=t.BLOCK_SCOPED_SYMBOL=t.INHERIT_KEYS=t.UNARY_OPERATORS=t.STRING_UNARY_OPERATORS=t.NUMBER_UNARY_OPERATORS=t.BOOLEAN_UNARY_OPERATORS=t.BINARY_OPERATORS=t.NUMBER_BINARY_OPERATORS=t.BOOLEAN_BINARY_OPERATORS=t.COMPARISON_BINARY_OPERATORS=t.EQUALITY_BINARY_OPERATORS=t.BOOLEAN_NUMBER_BINARY_OPERATORS=t.UPDATE_OPERATORS=t.LOGICAL_OPERATORS=t.COMMENT_KEYS=t.FOR_INIT_KEYS=t.FLATTENABLE_KEYS=t.STATEMENT_OR_BLOCK_KEYS=void 0;var n=r(362),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=(t.STATEMENT_OR_BLOCK_KEYS=["consequent","body","alternate"],t.FLATTENABLE_KEYS=["body","expressions"],t.FOR_INIT_KEYS=["left","init"],t.COMMENT_KEYS=["leadingComments","trailingComments","innerComments"],t.LOGICAL_OPERATORS=["||","&&"],t.UPDATE_OPERATORS=["++","--"],t.BOOLEAN_NUMBER_BINARY_OPERATORS=[">","<",">=","<="]),a=t.EQUALITY_BINARY_OPERATORS=["==","===","!=","!=="],o=t.COMPARISON_BINARY_OPERATORS=[].concat(a,["in","instanceof"]),u=t.BOOLEAN_BINARY_OPERATORS=[].concat(o,s),l=t.NUMBER_BINARY_OPERATORS=["-","/","%","*","**","&","|",">>",">>>","<<","^"],c=(t.BINARY_OPERATORS=["+"].concat(l,u),t.BOOLEAN_UNARY_OPERATORS=["delete","!"]),f=t.NUMBER_UNARY_OPERATORS=["+","-","++","--","~"],p=t.STRING_UNARY_OPERATORS=["typeof"];t.UNARY_OPERATORS=["void"].concat(c,f,p),t.INHERIT_KEYS={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]},t.BLOCK_SCOPED_SYMBOL=(0,i.default)("var used to be block scoped"),t.NOT_LOCAL_BINDING=(0,i.default)("should not be considered a local binding")},function(e,t){"use strict";e.exports=function(e,t,r,n){if(!(e instanceof t)||void 0!==n&&n in e)throw TypeError(r+": incorrect invocation!");return e}},function(e,t,r){"use strict";var n=r(43),i=r(142),s=r(94),a=r(153),o=r(422);e.exports=function(e,t){var r=1==e,u=2==e,l=3==e,c=4==e,f=6==e,p=5==e||f,d=t||o;return function(t,o,h){for(var m,y,v=s(t),g=i(v),b=n(o,h,3),E=a(g.length),x=0,A=r?d(t,E):u?d(t,0):void 0;E>x;x++)if((p||x in g)&&(m=g[x],y=b(m,x,v),e))if(r)A[x]=y;else if(y)switch(e){case 3:return!0;case 5:return m;case 6:return x;case 2:A.push(m)}else if(c)return!1;return f?-1:l||c?c:A}}},function(e,t){"use strict";var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,r){"use strict";var n=r(15),i=r(12),s=r(57),a=r(27),o=r(29),u=r(146),l=r(55),c=r(136),f=r(16),p=r(93),d=r(23).f,h=r(137)(0),m=r(22);e.exports=function(e,t,r,y,v,g){var b=n[e],E=b,x=v?"set":"add",A=E&&E.prototype,S={};return m&&"function"==typeof E&&(g||A.forEach&&!a(function(){(new E).entries().next()}))?(E=t(function(t,r){c(t,E,e,"_c"),t._c=new b,void 0!=r&&l(r,v,t[x],t)}),h("add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON".split(","),function(e){var t="add"==e||"set"==e;e in A&&(!g||"clear"!=e)&&o(E.prototype,e,function(r,n){if(c(this,E,e),!t&&g&&!f(r))return"get"==e&&void 0;var i=this._c[e](0===r?0:r,n);return t?this:i})}),g||d(E.prototype,"size",{get:function(){return this._c.size}})):(E=y.getConstructor(t,e,v,x),u(E.prototype,r),s.NEED=!0),p(E,e),S[e]=E,i(i.G+i.W+i.F,S),g||y.setStrong(E,e,v),E}},function(e,t){"use strict";e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t){"use strict";e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,r){"use strict";var n=r(138);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t,r){"use strict";var n=r(144),i=r(12),s=r(147),a=r(29),o=r(28),u=r(56),l=r(429),c=r(93),f=r(433),p=r(13)("iterator"),d=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,r,m,y,v,g){l(r,t,m);var b,E,x,A=function(e){if(!d&&e in C)return C[e];switch(e){case"keys":case"values":return function(){return new r(this,e)}}return function(){return new r(this,e)}},S=t+" Iterator",_="values"==y,D=!1,C=e.prototype,w=C[p]||C["@@iterator"]||y&&C[y],P=w||A(y),k=y?_?A("entries"):P:void 0,F="Array"==t?C.entries||w:w;if(F&&(x=f(F.call(new e)))!==Object.prototype&&x.next&&(c(x,S,!0),n||o(x,p)||a(x,p,h)),_&&w&&"values"!==w.name&&(D=!0,P=function(){return w.call(this)}),n&&!g||!d&&!D&&C[p]||a(C,p,P),u[t]=P,u[S]=h,y)if(b={values:_?P:A("values"),keys:v?P:A("keys"),entries:k},g)for(E in b)E in C||s(C,E,b[E]);else i(i.P+i.F*(d||D),t,b);return b}},function(e,t){"use strict";e.exports=!0},function(e,t){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,r){"use strict";var n=r(29);e.exports=function(e,t,r){for(var i in t)r&&e[i]?e[i]=t[i]:n(e,i,t[i]);return e}},function(e,t,r){"use strict";e.exports=r(29)},function(e,t,r){"use strict";var n=r(12),i=r(227),s=r(43),a=r(55);e.exports=function(e){n(n.S,e,{from:function(e){var t,r,n,o,u=arguments[1];return i(this),t=void 0!==u,t&&i(u),void 0==e?new this:(r=[],t?(n=0,o=s(u,arguments[2],2),a(e,!1,function(e){r.push(o(e,n++))})):a(e,!1,r.push,r),new this(r))}})}},function(e,t,r){"use strict";var n=r(12);e.exports=function(e){n(n.S,e,{of:function(){for(var e=arguments.length,t=Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,r){"use strict";var n=r(151)("keys"),i=r(95);e.exports=function(e){return n[e]||(n[e]=i(e))}},function(e,t,r){"use strict";var n=r(15),i=n["__core-js_shared__"]||(n["__core-js_shared__"]={});e.exports=function(e){return i[e]||(i[e]={})}},function(e,t){"use strict";var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t,r){"use strict";var n=r(152),i=Math.min;e.exports=function(e){return e>0?i(n(e),9007199254740991):0}},function(e,t,r){"use strict";var n=r(16);e.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if("function"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(144),a=r(156),o=r(23).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:a.f(e)})}},function(e,t,r){"use strict";t.f=r(13)},function(e,t,r){"use strict";var n=r(437)(!0);r(143)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(15),s=r(28),a=r(22),o=r(12),u=r(147),l=r(57).KEY,c=r(27),f=r(151),p=r(93),d=r(95),h=r(13),m=r(156),y=r(155),v=r(430),g=r(425),b=r(232),E=r(21),x=r(37),A=r(154),S=r(92),_=r(90),D=r(432),C=r(235),w=r(23),P=r(44),k=C.f,F=w.f,T=D.f,O=i.Symbol,B=i.JSON,R=B&&B.stringify,I=h("_hidden"),M=h("toPrimitive"),N={}.propertyIsEnumerable,L=f("symbol-registry"),j=f("symbols"),U=f("op-symbols"),V=Object.prototype,G="function"==typeof O,W=i.QObject,Y=!W||!W.prototype||!W.prototype.findChild,q=a&&c(function(){return 7!=_(F({},"a",{get:function(){return F(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=k(V,t);n&&delete V[t],F(e,t,r),n&&e!==V&&F(V,t,n)}:F,K=function(e){var t=j[e]=_(O.prototype);return t._k=e,t},H=G&&"symbol"==n(O.iterator)?function(e){return"symbol"==(void 0===e?"undefined":n(e))}:function(e){return e instanceof O},J=function(e,t,r){return e===V&&J(U,t,r),E(e),t=A(t,!0),E(r),s(j,t)?(r.enumerable?(s(e,I)&&e[I][t]&&(e[I][t]=!1),r=_(r,{enumerable:S(0,!1)})):(s(e,I)||F(e,I,S(1,{})),e[I][t]=!0),q(e,t,r)):F(e,t,r)},X=function(e,t){E(e);for(var r,n=g(t=x(t)),i=0,s=n.length;s>i;)J(e,r=n[i++],t[r]);return e},z=function(e,t){return void 0===t?_(e):X(_(e),t)},$=function(e){var t=N.call(this,e=A(e,!0));return!(this===V&&s(j,e)&&!s(U,e))&&(!(t||!s(this,e)||!s(j,e)||s(this,I)&&this[I][e])||t)},Q=function(e,t){if(e=x(e),t=A(t,!0),e!==V||!s(j,t)||s(U,t)){var r=k(e,t);return!r||!s(j,t)||s(e,I)&&e[I][t]||(r.enumerable=!0),r}},Z=function(e){for(var t,r=T(x(e)),n=[],i=0;r.length>i;)s(j,t=r[i++])||t==I||t==l||n.push(t);return n},ee=function(e){for(var t,r=e===V,n=T(r?U:x(e)),i=[],a=0;n.length>a;)!s(j,t=n[a++])||r&&!s(V,t)||i.push(j[t]);return i};G||(O=function(){if(this instanceof O)throw TypeError("Symbol is not a constructor!");var e=d(arguments.length>0?arguments[0]:void 0),t=function t(r){this===V&&t.call(U,r),s(this,I)&&s(this[I],e)&&(this[I][e]=!1),q(this,e,S(1,r))};return a&&Y&&q(V,e,{configurable:!0,set:t}),K(e)},u(O.prototype,"toString",function(){return this._k}),C.f=Q,w.f=J,r(236).f=D.f=Z,r(91).f=$,r(145).f=ee,a&&!r(144)&&u(V,"propertyIsEnumerable",$,!0),m.f=function(e){return K(h(e))}),o(o.G+o.W+o.F*!G,{Symbol:O});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;te.length>re;)h(te[re++]);for(var ne=P(h.store),ie=0;ne.length>ie;)y(ne[ie++]);o(o.S+o.F*!G,"Symbol",{for:function(e){return s(L,e+="")?L[e]:L[e]=O(e)},keyFor:function(e){if(H(e))return v(L,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){Y=!0},useSimple:function(){Y=!1}}),o(o.S+o.F*!G,"Object",{create:z,defineProperty:J,defineProperties:X,getOwnPropertyDescriptor:Q,getOwnPropertyNames:Z,getOwnPropertySymbols:ee}),B&&o(o.S+o.F*(!G||c(function(){var e=O();return"[null]"!=R([e])||"{}"!=R({a:e})||"{}"!=R(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!H(e)){for(var t,r,n=[e],i=1;arguments.length>i;)n.push(arguments[i++]);return t=n[1],"function"==typeof t&&(r=t),!r&&b(t)||(t=function(e,t){if(r&&(t=r.call(this,e,t)),!H(t))return t}),n[1]=t,R.apply(B,n)}}}),O.prototype[M]||r(29)(O.prototype,M,O.prototype.valueOf),p(O,"Symbol"),p(Math,"Math",!0),p(i.JSON,"JSON",!0)},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Map");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(551),s=r(552),a=r(553),o=r(554),u=r(555);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t){"use strict";function r(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=e[t];o.call(e,t)&&s(n,r)&&(void 0!==r||t in e)||i(e,t,r)}var i=r(163),s=r(46),a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var i=r(259);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,T,O,B){var R,I=t&S,M=t&_,N=t&D;if(r&&(R=O?r(e,T,O,B):r(e)),void 0!==R)return R;if(!x(e))return e;var L=b(e);if(L){if(R=y(e),!I)return c(e,R)}else{var j=m(e),U=j==w||j==P;if(E(e))return l(e,I);if(j==k||j==C||U&&!O){if(R=M||U?{}:g(e),!I)return M?p(e,u(R,e)):f(e,o(R,e))}else{if(!F[j])return O?e:{};R=v(e,j,n,I)}}B||(B=new i);var V=B.get(e);if(V)return V;B.set(e,R);var G=N?M?h:d:M?keysIn:A,W=L?void 0:G(e);return s(W||e,function(i,s){W&&(s=i,i=e[s]),a(R,s,n(i,t,r,s,e,B))}),R}var i=r(99),s=r(478),a=r(162),o=r(483),u=r(484),l=r(256),c=r(168),f=r(523),p=r(524),d=r(262),h=r(532),m=r(264),y=r(541),v=r(542),g=r(266),b=r(6),E=r(113),x=r(18),A=r(32),S=1,_=2,D=4,C="[object Arguments]",w="[object Function]",P="[object GeneratorFunction]",k="[object Object]",F={};F[C]=F["[object Array]"]=F["[object ArrayBuffer]"]=F["[object DataView]"]=F["[object Boolean]"]=F["[object Date]"]=F["[object Float32Array]"]=F["[object Float64Array]"]=F["[object Int8Array]"]=F["[object Int16Array]"]=F["[object Int32Array]"]=F["[object Map]"]=F["[object Number]"]=F[k]=F["[object RegExp]"]=F["[object Set]"]=F["[object String]"]=F["[object Symbol]"]=F["[object Uint8Array]"]=F["[object Uint8ClampedArray]"]=F["[object Uint16Array]"]=F["[object Uint32Array]"]=!0,F["[object Error]"]=F[w]=F["[object WeakMap]"]=!1,e.exports=n},function(e,t){"use strict";function r(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){return t===t?a(e,t,r):i(e,s,r)}var i=r(165),s=r(496),a=r(570);e.exports=n},function(e,t,r){"use strict";function n(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}var i=r(243);e.exports=n},function(e,t){"use strict";function r(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}e.exports=r},function(e,t,r){"use strict";var n=r(271),i=n(Object.getPrototypeOf,Object);e.exports=i},function(e,t,r){"use strict";var n=r(479),i=r(279),s=Object.prototype,a=s.propertyIsEnumerable,o=Object.getOwnPropertySymbols,u=o?function(e){return null==e?[]:(e=Object(e),n(o(e),function(t){return a.call(e,t)}))}:i;e.exports=u},function(e,t){"use strict";function r(e,t){return!!(t=null==t?n:t)&&("number"==typeof e||i.test(e))&&e>-1&&e%1==0&&e<t}var n=9007199254740991,i=/^(?:0|[1-9]\d*)$/;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){if(!u(r))return!1;var n=void 0===t?"undefined":i(t);return!!("number"==n?a(r)&&o(t,r.length):"string"==n&&t in r)&&s(r[t],e)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(46),a=r(24),o=r(171),u=r(18);e.exports=n},function(e,t,r){"use strict";function n(e,t){if(s(e))return!1;var r=void 0===e?"undefined":i(e);return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!a(e))||(u.test(e)||!o.test(e)||null!=t&&e in Object(t))}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(6),a=r(62),o=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/;e.exports=n},function(e,t,r){"use strict";var n=r(162),i=r(31),s=r(103),a=r(24),o=r(105),u=r(32),l=Object.prototype,c=l.hasOwnProperty,f=s(function(e,t){if(o(t)||a(t))return void i(t,u(t),e);for(var r in t)c.call(t,r)&&n(e,r,t[r])});e.exports=f},function(e,t,r){"use strict";function n(e){if(!s(e))return!1;var t=i(e);return t==o||t==u||t==a||t==l}var i=r(30),s=r(18),a="[object AsyncFunction]",o="[object Function]",u="[object GeneratorFunction]",l="[object Proxy]";e.exports=n},function(e,t){"use strict";function r(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}var n=9007199254740991;e.exports=r},function(e,t,r){"use strict";var n=r(499),i=r(102),s=r(270),a=s&&s.isTypedArray,o=a?i(a):n;e.exports=o},function(e,t,r){function n(e){return r(i(e))}function i(e){return s[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var s={"./index":50,"./index.js":50,"./logger":120,"./logger.js":120,"./metadata":121,"./metadata.js":121,"./options/build-config-chain":51,"./options/build-config-chain.js":51,"./options/config":33,"./options/config.js":33,"./options/index":52,"./options/index.js":52,"./options/option-manager":34,"./options/option-manager.js":34,"./options/parsers":53,"./options/parsers.js":53,"./options/removed":54,"./options/removed.js":54};n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=178},function(e,t,r){function n(e){return r(i(e))}function i(e){return s[e]||function(){throw new Error("Cannot find module '"+e+"'.")}()}var s={"./build-config-chain":51,"./build-config-chain.js":51,"./config":33,"./config.js":33,"./index":52,"./index.js":52,"./option-manager":34,"./option-manager.js":34,"./parsers":53,"./parsers.js":53,"./removed":54,"./removed.js":54};n.keys=function(){return Object.keys(s)},n.resolve=i,e.exports=n,n.id=179},function(e,t){"use strict";e.exports=function(){return/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return{keyword:e.cyan,capitalized:e.yellow,jsx_tag:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.grey,invalid:e.white.bgRed.bold,gutter:e.grey,marker:e.red.bold}}function s(e){var t=e.slice(-2),r=t[0],n=t[1],i=(0,o.matchToToken)(e);if("name"===i.type){if(c.default.keyword.isReservedWordES6(i.value))return"keyword";if(h.test(i.value)&&("<"===n[r-1]||"</"==n.substr(r-2,2)))return"jsx_tag";if(i.value[0]!==i.value[0].toLowerCase())return"capitalized"}return"punctuator"===i.type&&m.test(i.value)?"bracket":i.type}function a(e,t){return t.replace(u.default,function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=s(r),a=e[i];return a?r[0].split(d).map(function(e){return a(e)}).join("\n"):r[0]})}t.__esModule=!0,t.default=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r=Math.max(r,0);var s=n.highlightCode&&p.default.supportsColor||n.forceColor,o=p.default;n.forceColor&&(o=new p.default.constructor({enabled:!0}));var u=function(e,t){return s?e(t):t},l=i(o);s&&(e=a(l,e));var c=n.linesAbove||2,f=n.linesBelow||3,h=e.split(d),m=Math.max(t-(c+1),0),y=Math.min(h.length,t+f);t||r||(m=0,y=h.length);var v=String(y).length,g=h.slice(m,y).map(function(e,n){var i=m+1+n,s=(" "+i).slice(-v),a=" "+s+" | ";if(i===t){var o="";if(r){var c=e.slice(0,r-1).replace(/[^\t]/g," ");o=["\n ",u(l.gutter,a.replace(/\d/g," ")),c,u(l.marker,"^")].join("")}return[u(l.marker,">"),u(l.gutter,a),e,o].join("")}return" "+u(l.gutter,a)+e}).join("\n");return s?o.reset(g):g};var o=r(468),u=n(o),l=r(97),c=n(l),f=r(401),p=n(f),d=/\r\n|[\n\r\u2028\u2029]/,h=/^[a-z][\w-]*$/i,m=/^[()\[\]{}]$/;e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){throw new Error("The ("+e+") Babel 5 plugin is being run with Babel 6.")}function a(e,t,r){"function"==typeof t&&(r=t,t={}),t.filename=e,y.default.readFile(e,function(e,n){var i=void 0;if(!e)try{i=F(n,t)}catch(t){e=t}e?r(e):r(null,i)})}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.filename=e,F(y.default.readFileSync(e,"utf8"),t)}t.__esModule=!0,t.transformFromAst=t.transform=t.analyse=t.Pipeline=t.OptionManager=t.traverse=t.types=t.messages=t.util=t.version=t.resolvePreset=t.resolvePlugin=t.template=t.buildExternalHelpers=t.options=t.File=void 0;var u=r(50);Object.defineProperty(t,"File",{enumerable:!0,get:function(){return i(u).default}});var l=r(33);Object.defineProperty(t,"options",{enumerable:!0,get:function(){return i(l).default}});var c=r(295);Object.defineProperty(t,"buildExternalHelpers",{enumerable:!0,get:function(){return i(c).default}});var f=r(4);Object.defineProperty(t,"template",{enumerable:!0,get:function(){return i(f).default}});var p=r(184);Object.defineProperty(t,"resolvePlugin",{enumerable:!0,get:function(){return i(p).default}});var d=r(185);Object.defineProperty(t,"resolvePreset",{enumerable:!0,get:function(){return i(d).default}});var h=r(628);Object.defineProperty(t,"version",{enumerable:!0,get:function(){return h.version}}),t.Plugin=s,t.transformFile=a,t.transformFileSync=o;var m=r(115),y=i(m),v=r(122),g=n(v),b=r(20),E=n(b),x=r(1),A=n(x),S=r(7),_=i(S),D=r(34),C=i(D),w=r(298),P=i(w);t.util=g,t.messages=E,t.types=A,t.traverse=_.default,t.OptionManager=C.default,t.Pipeline=P.default;var k=new P.default,F=(t.analyse=k.analyse.bind(k),t.transform=k.transform.bind(k));t.transformFromAst=k.transformFromAst.bind(k)},function(e,t,r){"use strict";function n(e,t){return e.reduce(function(e,r){return e||(0,s.default)(r,t)},null)}t.__esModule=!0,t.default=n;var i=r(118),s=function(e){return e&&e.__esModule?e:{default:e}}(i);e.exports=t.default},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,o.default)((0,l.default)(e),t)}t.__esModule=!0,t.default=s;var a=r(183),o=i(a),u=r(291),l=i(u);e.exports=t.default}).call(t,r(8))},function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,o.default)((0,l.default)(e),t)}t.__esModule=!0,t.default=s;var a=r(183),o=i(a),u=r(292),l=i(u);e.exports=t.default}).call(t,r(8))},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r){var n="  ";if(e&&"string"==typeof e){var i=(0,d.default)(e).indent;i&&" "!==i&&(n=i)}var a={auxiliaryCommentBefore:t.auxiliaryCommentBefore,auxiliaryCommentAfter:t.auxiliaryCommentAfter,shouldPrintComment:t.shouldPrintComment,retainLines:t.retainLines,retainFunctionParens:t.retainFunctionParens,comments:null==t.comments||t.comments,compact:t.compact,minified:t.minified,concise:t.concise,quotes:t.quotes||s(e,r),jsonCompatibleStrings:t.jsonCompatibleStrings,indent:{adjustMultilineComment:!0,style:n,base:0},flowCommaSeparator:t.flowCommaSeparator};return a.minified?(a.compact=!0,a.shouldPrintComment=a.shouldPrintComment||function(){return a.comments}):a.shouldPrintComment=a.shouldPrintComment||function(e){return a.comments||e.indexOf("@license")>=0||e.indexOf("@preserve")>=0},"auto"===a.compact&&(a.compact=e.length>5e5,a.compact&&console.error("[BABEL] "+v.get("codeGeneratorDeopt",t.filename,"500KB"))),a.compact&&(a.indent.adjustMultilineComment=!1),a}function s(e,t){if(!e)return"double";for(var r={single:0,double:0},n=0,i=0;i<t.length;i++){var s=t[i];if("string"===s.type.label){if("'"===e.slice(s.start,s.end)[0]?r.single++:r.double++,++n>=3)break}}return r.single>r.double?"single":"double"}t.__esModule=!0,t.CodeGenerator=void 0;var a=r(3),o=n(a),u=r(42),l=n(u),c=r(41),f=n(c);t.default=function(e,t,r){return new E(e,t,r).generate()};var p=r(459),d=n(p),h=r(313),m=n(h),y=r(20),v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(y),g=r(312),b=n(g),E=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments[2];(0,o.default)(this,t);var a=r.tokens||[],u=i(s,n,a),c=n.sourceMaps?new m.default(n,s):null,f=(0,l.default)(this,e.call(this,u,c,a));return f.ast=r,f}return(0,f.default)(t,e),t.prototype.generate=function(){return e.prototype.generate.call(this,this.ast)},t}(b.default);t.CodeGenerator=function(){function e(t,r,n){(0,o.default)(this,e),this._generator=new E(t,r,n)}return e.prototype.generate=function(){return this._generator.generate()},e}()},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){function t(e,t){var n=r[e];r[e]=n?function(e,r,i){var s=n(e,r,i);return null==s?t(e,r,i):s}:t}for(var r={},n=(0,m.default)(e),i=Array.isArray(n),s=0,n=i?n:(0,d.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a,u=x.FLIPPED_ALIAS_KEYS[o];if(u)for(var l=u,c=Array.isArray(l),f=0,l=c?l:(0,d.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var h=p;t(h,e[o])}else t(o,e[o])}return r}function a(e,t,r,n){var i=e[t.type];return i?i(t,r,n):null}function o(e){return!!x.isCallExpression(e)||!!x.isMemberExpression(e)&&(o(e.object)||!e.computed&&o(e.property))}function u(e,t,r){if(!e)return 0;x.isExpressionStatement(e)&&(e=e.expression);var n=a(S,e,t);if(!n){var i=a(_,e,t);if(i)for(var s=0;s<i.length&&!(n=u(i[s],e,r));s++);}return n&&n[r]||0}function l(e,t){return u(e,t,"before")}function c(e,t){return u(e,t,"after")}function f(e,t,r){return!!t&&(!(!x.isNewExpression(t)||t.callee!==e||!o(e))||a(A,e,t,r))}t.__esModule=!0;var p=r(2),d=i(p),h=r(14),m=i(h);t.needsWhitespace=u,t.needsWhitespaceBefore=l,t.needsWhitespaceAfter=c,t.needsParens=f;var y=r(311),v=i(y),g=r(310),b=n(g),E=r(1),x=n(E),A=s(b),S=s(v.default.nodes),_=s(v.default.list)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return!v.isClassMethod(e)&&!v.isObjectMethod(e)||"get"!==e.kind&&"set"!==e.kind?"value":e.kind}function s(e,t,r,n,s){var a=v.toKeyAlias(t),o={};if((0,m.default)(e,a)&&(o=e[a]),e[a]=o,o._inherits=o._inherits||[],o._inherits.push(t),o._key=t.key,t.computed&&(o._computed=!0),t.decorators){var u=o.decorators=o.decorators||v.arrayExpression([]);u.elements=u.elements.concat(t.decorators.map(function(e){return e.expression}).reverse())}if(o.value||o.initializer)throw n.buildCodeFrameError(t,"Key conflict with sibling node");var l=void 0,c=void 0;(v.isObjectProperty(t)||v.isObjectMethod(t)||v.isClassMethod(t))&&(l=v.toComputedKey(t,t.key)),v.isObjectProperty(t)||v.isClassProperty(t)?c=t.value:(v.isObjectMethod(t)||v.isClassMethod(t))&&(c=v.functionExpression(null,t.params,t.body,t.generator,t.async),c.returnType=t.returnType);var f=i(t);return r&&"value"===f||(r=f),s&&v.isStringLiteral(l)&&("value"===r||"initializer"===r)&&v.isFunctionExpression(c)&&(c=(0,d.default)({id:l,node:c,scope:s})),c&&(v.inheritsComments(c,t),o[r]=c),o}function a(e){for(var t in e)if(e[t]._computed)return!0;return!1}function o(e){for(var t=v.arrayExpression([]),r=0;r<e.properties.length;r++){var n=e.properties[r],i=n.value;i.properties.unshift(v.objectProperty(v.identifier("key"),v.toComputedKey(n))),t.elements.push(i)}return t}function u(e){var t=v.objectExpression([]);return(0,f.default)(e).forEach(function(r){var n=e[r],i=v.objectExpression([]),s=v.objectProperty(n._key,i,n._computed);(0,f.default)(n).forEach(function(e){var t=n[e];if("_"!==e[0]){var r=t;(v.isClassMethod(t)||v.isClassProperty(t))&&(t=t.value);var s=v.objectProperty(v.identifier(e),t);v.inheritsComments(s,r),v.removeComments(r),i.properties.push(s)}}),t.properties.push(s)}),t}function l(e){return(0,f.default)(e).forEach(function(t){var r=e[t];r.value&&(r.writable=v.booleanLiteral(!0)),r.configurable=v.booleanLiteral(!0),r.enumerable=v.booleanLiteral(!0)}),u(e)}t.__esModule=!0;var c=r(14),f=n(c);t.push=s,t.hasComputed=a,t.toComputedObjectFromClass=o,t.toClassObject=u,t.toDefineObject=l;var p=r(40),d=n(p),h=r(274),m=n(h),y=r(1),v=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(y)},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){for(var t=e.params,r=0;r<t.length;r++){var n=t[r];if(i.isAssignmentPattern(n)||i.isRestElement(n))return r}return t.length};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"var";e.traverse(o,{kind:r,emit:t})};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s),o={Scope:function(e,t){"let"===t.kind&&e.skip()},Function:function(e){e.skip()},VariableDeclaration:function(e,t){if(!t.kind||e.node.kind===t.kind){for(var r=[],n=e.get("declarations"),s=void 0,o=n,u=Array.isArray(o),l=0,o=u?o:(0,i.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;s=f.node.id,f.node.init&&r.push(a.expressionStatement(a.assignmentExpression("=",f.node.id,f.node.init)));for(var p in f.getBindingIdentifiers())t.emit(a.identifier(p),p)}e.parentPath.isFor({left:e.node})?e.replaceWith(s):e.replaceWithMultiple(r)}}};e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e,t,r){return 1===r.length&&i.isSpreadElement(r[0])&&i.isIdentifier(r[0].argument,{name:"arguments"})?i.callExpression(i.memberExpression(e,i.identifier("apply")),[t,r[0].argument]):i.callExpression(i.memberExpression(e,i.identifier("call")),[t].concat(r))};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e,t){return u.isRegExpLiteral(e)&&e.flags.indexOf(t)>=0}function i(e,t){var r=e.flags.split("");e.flags.indexOf(t)<0||((0,a.default)(r,t),e.flags=r.join(""))}t.__esModule=!0,t.is=n,t.pullFlag=i;var s=r(277),a=function(e){return e&&e.__esModule?e:{default:e}}(s),o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){return!!v.isSuper(e)&&(!v.isMemberExpression(t,{computed:!1})&&!v.isCallExpression(t,{callee:e}))}function a(e){return v.isMemberExpression(e)&&v.isSuper(e.object)}function o(e,t){var r=t?e:v.memberExpression(e,v.identifier("prototype"));return v.logicalExpression("||",v.memberExpression(r,v.identifier("__proto__")),v.callExpression(v.memberExpression(v.identifier("Object"),v.identifier("getPrototypeOf")),[r]))}t.__esModule=!0;var u=r(3),l=i(u),c=r(10),f=i(c),p=r(191),d=i(p),h=r(20),m=n(h),y=r(1),v=n(y),g=(0,f.default)(),b={Function:function(e){e.inShadow("this")||e.skip()},ReturnStatement:function(e,t){e.inShadow("this")||t.returns.push(e)},ThisExpression:function(e,t){e.node[g]||t.thises.push(e)},enter:function(e,t){var r=t.specHandle;t.isLoose&&(r=t.looseHandle);var n=e.isCallExpression()&&e.get("callee").isSuper(),i=r.call(t,e);i&&(t.hasSuper=!0),n&&t.bareSupers.push(e),!0===i&&e.requeue(),!0!==i&&i&&(Array.isArray(i)?e.replaceWithMultiple(i):e.replaceWith(i))}},E=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,l.default)(this,e),this.forceSuperMemoisation=t.forceSuperMemoisation,this.methodPath=t.methodPath,
this.methodNode=t.methodNode,this.superRef=t.superRef,this.isStatic=t.isStatic,this.hasSuper=!1,this.inClass=r,this.isLoose=t.isLoose,this.scope=this.methodPath.scope,this.file=t.file,this.opts=t,this.bareSupers=[],this.returns=[],this.thises=[]}return e.prototype.getObjectRef=function(){return this.opts.objectRef||this.opts.getObjectRef()},e.prototype.setSuperProperty=function(e,t,r){return v.callExpression(this.file.addHelper("set"),[o(this.getObjectRef(),this.isStatic),r?e:v.stringLiteral(e.name),t,v.thisExpression()])},e.prototype.getSuperProperty=function(e,t){return v.callExpression(this.file.addHelper("get"),[o(this.getObjectRef(),this.isStatic),t?e:v.stringLiteral(e.name),v.thisExpression()])},e.prototype.replace=function(){this.methodPath.traverse(b,this)},e.prototype.getLooseSuperProperty=function(e,t){var r=this.methodNode,n=this.superRef||v.identifier("Function");return t.property===e?void 0:v.isCallExpression(t,{callee:e})?void 0:v.isMemberExpression(t)&&!r.static?v.memberExpression(n,v.identifier("prototype")):n},e.prototype.looseHandle=function(e){var t=e.node;if(e.isSuper())return this.getLooseSuperProperty(t,e.parent);if(e.isCallExpression()){var r=t.callee;if(!v.isMemberExpression(r))return;if(!v.isSuper(r.object))return;return v.appendToMemberExpression(r,v.identifier("call")),t.arguments.unshift(v.thisExpression()),!0}},e.prototype.specHandleAssignmentExpression=function(e,t,r){return"="===r.operator?this.setSuperProperty(r.left.property,r.right,r.left.computed):(e=e||t.scope.generateUidIdentifier("ref"),[v.variableDeclaration("var",[v.variableDeclarator(e,r.left)]),v.expressionStatement(v.assignmentExpression("=",r.left,v.binaryExpression(r.operator[0],e,r.right)))])},e.prototype.specHandle=function(e){var t=void 0,r=void 0,n=void 0,i=e.parent,o=e.node;if(s(o,i))throw e.buildCodeFrameError(m.get("classesIllegalBareSuper"));if(v.isCallExpression(o)){var u=o.callee;if(v.isSuper(u))return;a(u)&&(t=u.property,r=u.computed,n=o.arguments)}else if(v.isMemberExpression(o)&&v.isSuper(o.object))t=o.property,r=o.computed;else{if(v.isUpdateExpression(o)&&a(o.argument)){var l=v.binaryExpression(o.operator[0],o.argument,v.numericLiteral(1));if(o.prefix)return this.specHandleAssignmentExpression(null,e,l);var c=e.scope.generateUidIdentifier("ref");return this.specHandleAssignmentExpression(c,e,l).concat(v.expressionStatement(c))}if(v.isAssignmentExpression(o)&&a(o.left))return this.specHandleAssignmentExpression(null,e,o)}if(t){var f=this.getSuperProperty(t,r);return n?this.optimiseCall(f,n):f}},e.prototype.optimiseCall=function(e,t){var r=v.thisExpression();return r[g]=!0,(0,d.default)(e,r,t)},e}();t.default=E,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=u.default[e];if(!t)throw new ReferenceError("Unknown helper "+e);return t().expression}t.__esModule=!0,t.list=void 0;var s=r(14),a=n(s);t.get=i;var o=r(321),u=n(o);t.list=(0,a.default)(u.default).map(function(e){return e.replace(/^_/,"")}).filter(function(e){return"__esModule"!==e});t.default=i},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncGenerators")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("classConstructorCall")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("classProperties")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("doExpressions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("exponentiationOperator")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("exportExtensions")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("functionBind")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("objectRestSpread")}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(10),o=n(a);t.default=function(e){function t(e){for(var t=e.get("body.body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}var o=a;if("constructorCall"===o.node.kind)return o}return null}function n(e,t){var r=t,n=r.node,s=n.id||t.scope.generateUidIdentifier("class");t.parentPath.isExportDefaultDeclaration()&&(t=t.parentPath,t.insertAfter(i.exportDefaultDeclaration(s))),t.replaceWithMultiple(c({CLASS_REF:t.scope.generateUidIdentifier(s.name),CALL_REF:t.scope.generateUidIdentifier(s.name+"Call"),CALL:i.functionExpression(null,e.node.params,e.node.body),CLASS:i.toExpression(n),WRAPPER_REF:s})),e.remove()}var i=e.types,a=(0,o.default)();return{inherits:r(196),visitor:{Class:function(e){if(!e.node[a]){e.node[a]=!0;var r=t(e);r&&n(r,e)}}}}};var u=r(4),l=n(u),c=(0,l.default)("\n  let CLASS_REF = CLASS;\n  var CALL_REF = CALL;\n  var WRAPPER_REF = function (...args) {\n    if (this instanceof WRAPPER_REF) {\n      return Reflect.construct(CLASS_REF, args);\n    } else {\n      return CALL_REF.apply(this, args);\n    }\n  };\n  WRAPPER_REF.__proto__ = CLASS_REF;\n  WRAPPER_REF;\n");e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){var t=e.types,n={Super:function(e){e.parentPath.isCallExpression({callee:e.node})&&this.push(e.parentPath)}},i={ReferencedIdentifier:function(e){this.scope.hasOwnBinding(e.node.name)&&(this.collision=!0,e.skip())}},a=(0,l.default)("\n    Object.defineProperty(REF, KEY, {\n      // configurable is false by default\n      enumerable: true,\n      writable: true,\n      value: VALUE\n    });\n  "),u=function(e,r){var n=r.key,i=r.value,s=r.computed;return a({REF:e,KEY:t.isIdentifier(n)&&!s?t.stringLiteral(n.name):n,VALUE:i||t.identifier("undefined")})},c=function(e,r){var n=r.key,i=r.value,s=r.computed;return t.expressionStatement(t.assignmentExpression("=",t.memberExpression(e,n,s||t.isLiteral(n)),i))};return{inherits:r(197),visitor:{Class:function(e,r){for(var a=r.opts.spec?u:c,l=!!e.node.superClass,f=void 0,p=[],d=e.get("body"),h=d.get("body"),m=Array.isArray(h),y=0,h=m?h:(0,s.default)(h);;){var v;if(m){if(y>=h.length)break;v=h[y++]}else{if(y=h.next(),y.done)break;v=y.value}var g=v;g.isClassProperty()?p.push(g):g.isClassMethod({kind:"constructor"})&&(f=g)}if(p.length){var b=[],E=void 0;e.isClassExpression()||!e.node.id?((0,o.default)(e),E=e.scope.generateUidIdentifier("class")):E=e.node.id;for(var x=[],A=p,S=Array.isArray(A),_=0,A=S?A:(0,s.default)(A);;){var D;if(S){if(_>=A.length)break;D=A[_++]}else{if(_=A.next(),_.done)break;D=_.value}var C=D,w=C.node;if(!(w.decorators&&w.decorators.length>0)&&(r.opts.spec||w.value)){if(w.static)b.push(a(E,w));else{if(!w.value)continue;x.push(a(t.thisExpression(),w))}}}if(x.length){if(!f){var P=t.classMethod("constructor",t.identifier("constructor"),[],t.blockStatement([]));l&&(P.params=[t.restElement(t.identifier("args"))],P.body.body.push(t.returnStatement(t.callExpression(t.super(),[t.spreadElement(t.identifier("args"))]))));f=d.unshiftContainer("body",P)[0]}for(var k={collision:!1,scope:f.scope},F=p,T=Array.isArray(F),O=0,F=T?F:(0,s.default)(F);;){var B;if(T){if(O>=F.length)break;B=F[O++]}else{if(O=F.next(),O.done)break;B=O.value}if(B.traverse(i,k),k.collision)break}if(k.collision){var R=e.scope.generateUidIdentifier("initialiseProps");b.push(t.variableDeclaration("var",[t.variableDeclarator(R,t.functionExpression(null,[],t.blockStatement(x)))])),x=[t.expressionStatement(t.callExpression(t.memberExpression(R,t.identifier("call")),[t.thisExpression()]))]}if(l){var I=[];f.traverse(n,I);for(var M=I,N=Array.isArray(M),L=0,M=N?M:(0,s.default)(M);;){var j;if(N){if(L>=M.length)break;j=M[L++]}else{if(L=M.next(),L.done)break;j=L.value}j.insertAfter(x)}}else f.get("body").unshiftContainer("body",x)}for(var U=p,V=Array.isArray(U),G=0,U=V?U:(0,s.default)(U);;){var W;if(V){if(G>=U.length)break;W=U[G++]}else{if(G=U.next(),G.done)break;W=G.value}W.remove()}b.length&&(e.isClassExpression()?(e.scope.push({id:E}),e.replaceWith(t.assignmentExpression("=",E,e.node))):(e.node.id||(e.node.id=E),e.parentPath.isExportDeclaration()&&(e=e.parentPath)),e.insertAfter(b))}},ArrowFunctionExpression:function(e){var t=e.get("body");if(t.isClassExpression()){t.get("body").get("body").some(function(e){return e.isClassProperty()})&&e.ensureBlock()}}}}};var a=r(40),o=n(a),u=r(4),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i),a=r(2),o=n(a);t.default=function(e){function t(e){return e.reverse().map(function(e){return e.expression})}function n(e,r,n){var i=[],a=e.node.decorators;if(a){e.node.decorators=null,a=t(a);for(var l=a,c=Array.isArray(l),f=0,l=c?l:(0,o.default)(l);;){var d;if(c){if(f>=l.length)break;d=l[f++]}else{if(f=l.next(),f.done)break;d=f.value}var h=d;i.push(p({CLASS_REF:r,DECORATOR:h}))}}for(var m=(0,s.default)(null),y=e.get("body.body"),v=Array.isArray(y),g=0,y=v?y:(0,o.default)(y);;){var b;if(v){if(g>=y.length)break;b=y[g++]}else{if(g=y.next(),g.done)break;b=g.value}var E=b;if(E.node.decorators){var x=u.toKeyAlias(E.node);m[x]=m[x]||[],m[x].push(E.node),E.remove()}}for(var A in m){m[A]}return i}function i(e){if(e.isClass()){if(e.node.decorators)return!0;for(var t=e.node.body.body,r=Array.isArray(t),n=0,t=r?t:(0,o.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}if(i.decorators)return!0}}else if(e.isObjectExpression())for(var s=e.node.properties,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var l;if(a){if(u>=s.length)break;l=s[u++]}else{if(u=s.next(),u.done)break;l=u.value}var c=l;if(c.decorators)return!0}return!1}function a(e){throw e.buildCodeFrameError('Decorators are not officially supported yet in 6.x pending a proposal update.\nHowever, if you need to use them you can install the legacy decorators transform with:\n\nnpm install babel-plugin-transform-decorators-legacy --save-dev\n\nand add the following line to your .babelrc file:\n\n{\n  "plugins": ["transform-decorators-legacy"]\n}\n\nThe repo url is: https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy.\n    ')}var u=e.types;return{inherits:r(125),visitor:{ClassExpression:function(e){if(i(e)){a(e),(0,f.default)(e);var t=e.scope.generateDeclaredUidIdentifier("ref"),r=[];r.push(u.assignmentExpression("=",t,e.node)),r=r.concat(n(e,t,this)),r.push(t),e.replaceWith(u.sequenceExpression(r))}},ClassDeclaration:function(e){if(i(e)){a(e),(0,f.default)(e);var t=e.node.id,r=[];r=r.concat(n(e,t,this).map(function(e){return u.expressionStatement(e)})),r.push(u.expressionStatement(t)),e.insertAfter(r)}},ObjectExpression:function(e){i(e)&&a(e)}}}};var u=r(4),l=n(u),c=r(319),f=n(c),p=(0,l.default)("\n  CLASS_REF = DECORATOR(CLASS_REF) || CLASS_REF;\n");e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(198),visitor:{DoExpression:function(e){var t=e.node.body.body;t.length?e.replaceWithMultiple(t):e.replaceWith(e.scope.buildUndefinedNode())}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var s=r(2),a=i(s),o=r(3),u=i(o),l=r(7),c=r(193),f=i(c),p=r(191),d=i(p),h=r(188),m=n(h),y=r(4),v=i(y),g=r(1),b=n(g),E=(0,v.default)("\n  (function () {\n    super(...arguments);\n  })\n"),x={"FunctionExpression|FunctionDeclaration":function(e){e.is("shadow")||e.skip()},Method:function(e){e.skip()}},A=l.visitors.merge([x,{Super:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.parentPath.isCallExpression({callee:e.node}))throw e.buildCodeFrameError("'super.*' is not allowed before super()")},CallExpression:{exit:function(e){if(e.get("callee").isSuper()&&(this.hasBareSuper=!0,!this.isDerived))throw e.buildCodeFrameError("super() is only allowed in a derived constructor")}},ThisExpression:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.inShadow("this"))throw e.buildCodeFrameError("'this' is not allowed before super()")}}]),S=l.visitors.merge([x,{ThisExpression:function(e){this.superThises.push(e)}}]),_=function(){function e(t,r){(0,u.default)(this,e),this.parent=t.parent,this.scope=t.scope,this.node=t.node,this.path=t,this.file=r,this.clearDescriptors(),this.instancePropBody=[],this.instancePropRefs={},this.staticPropBody=[],this.body=[],this.bareSuperAfter=[],this.bareSupers=[],this.pushedConstructor=!1,this.pushedInherits=!1,this.isLoose=!1,this.superThises=[],this.classId=this.node.id,this.classRef=this.node.id?b.identifier(this.node.id.name):this.scope.generateUidIdentifier("class"),this.superName=this.node.superClass||b.identifier("Function"),this.isDerived=!!this.node.superClass}return e.prototype.run=function(){var e=this,t=this.superName,r=this.file,n=this.body,i=this.constructorBody=b.blockStatement([]);this.constructor=this.buildConstructor();var s=[],a=[];if(this.isDerived&&(a.push(t),t=this.scope.generateUidIdentifierBasedOnNode(t),s.push(t),this.superName=t),this.buildBody(),i.body.unshift(b.expressionStatement(b.callExpression(r.addHelper("classCallCheck"),[b.thisExpression(),this.classRef]))),n=n.concat(this.staticPropBody.map(function(t){return t(e.classRef)})),this.classId&&1===n.length)return b.toExpression(n[0]);n.push(b.returnStatement(this.classRef));var o=b.functionExpression(null,s,b.blockStatement(n));return o.shadow=!0,b.callExpression(o,a)},e.prototype.buildConstructor=function(){var e=b.functionDeclaration(this.classRef,[],this.constructorBody);return b.inherits(e,this.node),e},e.prototype.pushToMap=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"value",n=arguments[3],i=void 0;e.static?(this.hasStaticDescriptors=!0,i=this.staticMutatorMap):(this.hasInstanceDescriptors=!0,i=this.instanceMutatorMap);var s=m.push(i,e,r,this.file,n);return t&&(s.enumerable=b.booleanLiteral(!0)),s},e.prototype.constructorMeMaybe=function(){for(var e=!1,t=this.path.get("body.body"),r=t,n=Array.isArray(r),i=0,r=n?r:(0,a.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}if(e=s.equals("kind","constructor"))break}if(!e){var o=void 0,u=void 0;if(this.isDerived){var l=E().expression;o=l.params,u=l.body}else o=[],u=b.blockStatement([]);this.path.get("body").unshiftContainer("body",b.classMethod("constructor",b.identifier("constructor"),o,u))}},e.prototype.buildBody=function(){if(this.constructorMeMaybe(),this.pushBody(),this.verifyConstructor(),this.userConstructor){var e=this.constructorBody;e.body=e.body.concat(this.userConstructor.body.body),b.inherits(this.constructor,this.userConstructor),b.inherits(e,this.userConstructor.body)}this.pushDescriptors()},e.prototype.pushBody=function(){for(var e=this.path.get("body.body"),t=e,r=Array.isArray(t),n=0,t=r?t:(0,a.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i,o=s.node;if(s.isClassProperty())throw s.buildCodeFrameError("Missing class properties transform.");if(o.decorators)throw s.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");if(b.isClassMethod(o)){var u="constructor"===o.kind;if(u&&(s.traverse(A,this),!this.hasBareSuper&&this.isDerived))throw s.buildCodeFrameError("missing super() call in constructor");var l=new f.default({forceSuperMemoisation:u,methodPath:s,methodNode:o,objectRef:this.classRef,superRef:this.superName,isStatic:o.static,isLoose:this.isLoose,scope:this.scope,file:this.file},!0);l.replace(),u?this.pushConstructor(l,o,s):this.pushMethod(o,s)}}},e.prototype.clearDescriptors=function(){this.hasInstanceDescriptors=!1,this.hasStaticDescriptors=!1,this.instanceMutatorMap={},this.staticMutatorMap={}},e.prototype.pushDescriptors=function(){this.pushInherits();var e=this.body,t=void 0,r=void 0;if(this.hasInstanceDescriptors&&(t=m.toClassObject(this.instanceMutatorMap)),this.hasStaticDescriptors&&(r=m.toClassObject(this.staticMutatorMap)),t||r){t&&(t=m.toComputedObjectFromClass(t)),r&&(r=m.toComputedObjectFromClass(r));var n=b.nullLiteral(),i=[this.classRef,n,n,n,n];t&&(i[1]=t),r&&(i[2]=r),this.instanceInitializersId&&(i[3]=this.instanceInitializersId,e.unshift(this.buildObjectAssignment(this.instanceInitializersId))),this.staticInitializersId&&(i[4]=this.staticInitializersId,e.unshift(this.buildObjectAssignment(this.staticInitializersId)));for(var s=0,a=0;a<i.length;a++)i[a]!==n&&(s=a);i=i.slice(0,s+1),e.push(b.expressionStatement(b.callExpression(this.file.addHelper("createClass"),i)))}this.clearDescriptors()},e.prototype.buildObjectAssignment=function(e){return b.variableDeclaration("var",[b.variableDeclarator(e,b.objectExpression([]))])},e.prototype.wrapSuperCall=function(e,t,r,n){var i=e.node;this.isLoose?(i.arguments.unshift(b.thisExpression()),2===i.arguments.length&&b.isSpreadElement(i.arguments[1])&&b.isIdentifier(i.arguments[1].argument,{name:"arguments"})?(i.arguments[1]=i.arguments[1].argument,i.callee=b.memberExpression(t,b.identifier("apply"))):i.callee=b.memberExpression(t,b.identifier("call"))):i=(0,d.default)(b.logicalExpression("||",b.memberExpression(this.classRef,b.identifier("__proto__")),b.callExpression(b.memberExpression(b.identifier("Object"),b.identifier("getPrototypeOf")),[this.classRef])),b.thisExpression(),i.arguments);var s=b.callExpression(this.file.addHelper("possibleConstructorReturn"),[b.thisExpression(),i]),a=this.bareSuperAfter.map(function(e){return e(r)});e.parentPath.isExpressionStatement()&&e.parentPath.container===n.node.body&&n.node.body.length-1===e.parentPath.key?((this.superThises.length||a.length)&&(e.scope.push({id:r}),s=b.assignmentExpression("=",r,s)),a.length&&(s=b.toSequenceExpression([s].concat(a,[r]))),e.parentPath.replaceWith(b.returnStatement(s))):e.replaceWithMultiple([b.variableDeclaration("var",[b.variableDeclarator(r,s)])].concat(a,[b.expressionStatement(r)]))},e.prototype.verifyConstructor=function(){var e=this;if(this.isDerived){var t=this.userConstructorPath,r=t.get("body");t.traverse(S,this);for(var n=!!this.bareSupers.length,i=this.superName||b.identifier("Function"),s=t.scope.generateUidIdentifier("this"),o=this.bareSupers,u=Array.isArray(o),l=0,o=u?o:(0,a.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;this.wrapSuperCall(f,i,s,r),n&&f.find(function(e){return e===t||(e.isLoop()||e.isConditional()?(n=!1,!0):void 0)})}for(var p=this.superThises,d=Array.isArray(p),h=0,p=d?p:(0,a.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}m.replaceWith(s)}var y=function(t){return b.callExpression(e.file.addHelper("possibleConstructorReturn"),[s].concat(t||[]))},v=r.get("body");v.length&&!v.pop().isReturnStatement()&&r.pushContainer("body",b.returnStatement(n?s:y()));for(var g=this.superReturns,E=Array.isArray(g),x=0,g=E?g:(0,a.default)(g);;){var A;if(E){if(x>=g.length)break;A=g[x++]}else{if(x=g.next(),x.done)break;A=x.value}var _=A;if(_.node.argument){var D=_.scope.generateDeclaredUidIdentifier("ret");_.get("argument").replaceWithMultiple([b.assignmentExpression("=",D,_.node.argument),y(D)])}else _.get("argument").replaceWith(y())}}},e.prototype.pushMethod=function(e,t){var r=t?t.scope:this.scope;"method"===e.kind&&this._processMethod(e,r)||this.pushToMap(e,!1,null,r)},e.prototype._processMethod=function(){return!1},e.prototype.pushConstructor=function(e,t,r){this.bareSupers=e.bareSupers,this.superReturns=e.returns,r.scope.hasOwnBinding(this.classRef.name)&&r.scope.rename(this.classRef.name);var n=this.constructor;this.userConstructorPath=r,this.userConstructor=t,this.hasConstructor=!0,b.inheritsComments(n,t),n._ignoreUserWhitespace=!0,n.params=t.params,b.inherits(n.body,t.body),n.body.directives=t.body.directives,this._pushConstructor()},e.prototype._pushConstructor=function(){this.pushedConstructor||(this.pushedConstructor=!0,(this.hasInstanceDescriptors||this.hasStaticDescriptors)&&this.pushDescriptors(),this.body.push(this.constructor),this.pushInherits())},e.prototype.pushInherits=function(){this.isDerived&&!this.pushedInherits&&(this.pushedInherits=!0,this.body.unshift(b.expressionStatement(b.callExpression(this.file.addHelper("inherits"),[this.classRef,this.superName]))))},e}();t.default=_,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(9),s=n(i),a=r(2),o=n(a),u=r(10),l=n(u);t.default=function(e){var t=e.types,r=(0,l.default)(),n={"AssignmentExpression|UpdateExpression":function(e){if(!e.node[r]){e.node[r]=!0;var n=e.get(e.isAssignmentExpression()?"left":"argument");if(n.isIdentifier()){var i=n.node.name;if(this.scope.getBinding(i)===e.scope.getBinding(i)){var s=this.exports[i];if(s){var a=e.node,u=e.isUpdateExpression()&&!a.prefix;u&&("++"===a.operator?a=t.binaryExpression("+",a.argument,t.numericLiteral(1)):"--"===a.operator?a=t.binaryExpression("-",a.argument,t.numericLiteral(1)):u=!1);for(var l=s,c=Array.isArray(l),f=0,l=c?l:(0,o.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;a=this.buildCall(d,a).expression}u&&(a=t.sequenceExpression([a,e.node])),e.replaceWith(a)}}}}}};return{visitor:{CallExpression:function(e,r){if(e.node.callee.type===y){var n=r.contextIdent;e.replaceWith(t.callExpression(t.memberExpression(n,t.identifier("import")),e.node.arguments))}},ReferencedIdentifier:function(e,r){"__moduleName"!=e.node.name||e.scope.hasBinding("__moduleName")||e.replaceWith(t.memberExpression(r.contextIdent,t.identifier("id")))},Program:{enter:function(e,t){t.contextIdent=e.scope.generateUidIdentifier("context")},exit:function(e,r){function i(e,t){p[e]=p[e]||[],p[e].push(t)}function a(e,t,r){var n=void 0;d.forEach(function(t){t.key===e&&(n=t)}),n||d.push(n={key:e,imports:[],exports:[]}),n[t]=n[t].concat(r)}function u(e,r){return t.expressionStatement(t.callExpression(l,[t.stringLiteral(e),r]))}for(var l=e.scope.generateUidIdentifier("export"),c=r.contextIdent,p=(0,s.default)(null),d=[],y=[],v=[],g=[],b=[],E=[],x=e.get("body"),A=!0,S=x,_=Array.isArray(S),D=0,S=_?S:(0,o.default)(S);;){var C;if(_){if(D>=S.length)break;C=S[D++]}else{if(D=S.next(),D.done)break;C=D.value}var w=C;if(w.isExportDeclaration()&&(w=w.get("declaration")),w.isVariableDeclaration()&&"var"!==w.node.kind){A=!1;break}}for(var P=x,k=Array.isArray(P),F=0,P=k?P:(0,o.default)(P);;){var T;if(k){if(F>=P.length)break;T=P[F++]}else{if(F=P.next(),F.done)break;T=F.value}var O=T;if(A&&O.isFunctionDeclaration())y.push(O.node),E.push(O);else if(O.isImportDeclaration()){var B=O.node.source.value;a(B,"imports",O.node.specifiers);for(var R in O.getBindingIdentifiers())O.scope.removeBinding(R),b.push(t.identifier(R));O.remove()}else if(O.isExportAllDeclaration())a(O.node.source.value,"exports",O.node),O.remove();else if(O.isExportDefaultDeclaration()){var I=O.get("declaration");if(I.isClassDeclaration()||I.isFunctionDeclaration()){var M=I.node.id,N=[];M?(N.push(I.node),N.push(u("default",M)),i(M.name,"default")):N.push(u("default",t.toExpression(I.node))),!A||I.isClassDeclaration()?O.replaceWithMultiple(N):(y=y.concat(N),E.push(O))}else O.replaceWith(u("default",I.node))}else if(O.isExportNamedDeclaration()){var L=O.get("declaration");if(L.node){O.replaceWith(L);var j=[],U=void 0;if(O.isFunction()){var V=L.node,G=V.id.name;if(A)i(G,G),y.push(V),y.push(u(G,V.id)),E.push(O);else{var W;W={},W[G]=V.id,U=W}}else U=L.getBindingIdentifiers();for(var Y in U)i(Y,Y),j.push(u(Y,t.identifier(Y)));O.insertAfter(j)}else{var q=O.node.specifiers;if(q&&q.length)if(O.node.source)a(O.node.source.value,"exports",q),O.remove();else{for(var K=[],H=q,J=Array.isArray(H),X=0,H=J?H:(0,o.default)(H);;){var z;if(J){if(X>=H.length)break;z=H[X++]}else{if(X=H.next(),X.done)break;z=X.value}var $=z;K.push(u($.exported.name,$.local)),i($.local.name,$.exported.name)}O.replaceWithMultiple(K)}}}}d.forEach(function(r){for(var n=[],i=e.scope.generateUidIdentifier(r.key),s=r.imports,a=Array.isArray(s),u=0,s=a?s:(0,o.default)(s);;){var c;if(a){if(u>=s.length)break;c=s[u++]}else{if(u=s.next(),u.done)break;c=u.value}var f=c;t.isImportNamespaceSpecifier(f)?n.push(t.expressionStatement(t.assignmentExpression("=",f.local,i))):t.isImportDefaultSpecifier(f)&&(f=t.importSpecifier(f.local,t.identifier("default"))),t.isImportSpecifier(f)&&n.push(t.expressionStatement(t.assignmentExpression("=",f.local,t.memberExpression(i,f.imported))))}if(r.exports.length){var p=e.scope.generateUidIdentifier("exportObj");n.push(t.variableDeclaration("var",[t.variableDeclarator(p,t.objectExpression([]))]));for(var d=r.exports,h=Array.isArray(d),y=0,d=h?d:(0,o.default)(d);;){var b;if(h){if(y>=d.length)break;b=d[y++]}else{if(y=d.next(),y.done)break;b=y.value}var E=b;t.isExportAllDeclaration(E)?n.push(m({KEY:e.scope.generateUidIdentifier("key"),EXPORT_OBJ:p,TARGET:i})):t.isExportSpecifier(E)&&n.push(t.expressionStatement(t.assignmentExpression("=",t.memberExpression(p,E.exported),t.memberExpression(i,E.local))))}n.push(t.expressionStatement(t.callExpression(l,[p])))}g.push(t.stringLiteral(r.key)),v.push(t.functionExpression(null,[i],t.blockStatement(n)))});var Q=this.getModuleName();Q&&(Q=t.stringLiteral(Q)),A&&(0,f.default)(e,function(e){return b.push(e)}),b.length&&y.unshift(t.variableDeclaration("var",b.map(function(e){return t.variableDeclarator(e)}))),e.traverse(n,{exports:p,buildCall:u,scope:e.scope});for(var Z=E,ee=Array.isArray(Z),te=0,Z=ee?Z:(0,o.default)(Z);;){var re;if(ee){if(te>=Z.length)break;re=Z[te++]}else{if(te=Z.next(),te.done)break;re=te.value}re.remove()}e.node.body=[h({SYSTEM_REGISTER:t.memberExpression(t.identifier(r.opts.systemGlobal||"System"),t.identifier("register")),BEFORE_BODY:y,MODULE_NAME:Q,SETTERS:v,SOURCES:g,BODY:e.node.body,EXPORT_IDENTIFIER:l,CONTEXT_IDENTIFIER:c})]}}}}};var c=r(190),f=n(c),p=r(4),d=n(p),h=(0,d.default)('\n  SYSTEM_REGISTER(MODULE_NAME, [SOURCES], function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n    "use strict";\n    BEFORE_BODY;\n    return {\n      setters: [SETTERS],\n      execute: function () {\n        BODY;\n      }\n    };\n  });\n'),m=(0,d.default)('\n  for (var KEY in TARGET) {\n    if (KEY !== "default" && KEY !== "__esModule") EXPORT_OBJ[KEY] = TARGET[KEY];\n  }\n'),y="Import";e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e){if(e.isExpressionStatement()){var t=e.get("expression");if(!t.isCallExpression())return!1;if(!t.get("callee").isIdentifier({name:"define"}))return!1;var r=t.get("arguments");return!(3===r.length&&!r.shift().isStringLiteral())&&(2===r.length&&(!!r.shift().isArrayExpression()&&!!r.shift().isFunctionExpression()))}}var i=e.types;return{inherits:r(131),visitor:{Program:{exit:function(e,r){var s=e.get("body").pop();if(t(s)){var l=s.node.expression,c=l.arguments,f=3===c.length?c.shift():null,p=l.arguments[0],d=l.arguments[1],h=r.opts.globals||{},m=p.elements.map(function(e){return"module"===e.value||"exports"===e.value?i.identifier(e.value):i.callExpression(i.identifier("require"),[e])}),y=p.elements.map(function(e){if("module"===e.value)return i.identifier("mod");if("exports"===e.value)return i.memberExpression(i.identifier("mod"),i.identifier("exports"));var t=void 0;if(r.opts.exactGlobals){var s=h[e.value];t=s?s.split(".").reduce(function(e,t){return i.memberExpression(e,i.identifier(t))},i.identifier("global")):i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(e.value)))}else{var a=(0,n.basename)(e.value,(0,n.extname)(e.value)),o=h[a]||a;t=i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(o)))}return t}),v=f?f.value:this.file.opts.basename,g=i.memberExpression(i.identifier("global"),i.identifier(i.toIdentifier(v))),b=null;if(r.opts.exactGlobals){var E=h[v];if(E){b=[];var x=E.split(".");g=x.slice(1).reduce(function(e,t){return b.push(a({GLOBAL_REFERENCE:e})),i.memberExpression(e,i.identifier(t))},i.memberExpression(i.identifier("global"),i.identifier(x[0])))}}var A=o({BROWSER_ARGUMENTS:y,PREREQUISITE_ASSIGNMENTS:b,GLOBAL_TO_ASSIGN:g});s.replaceWith(u({MODULE_NAME:f,AMD_ARGUMENTS:p,COMMON_ARGUMENTS:m,GLOBAL_EXPORT:A,FUNC:d}))}}}}}};var n=r(19),i=r(4),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=(0,s.default)("\n  GLOBAL_REFERENCE = GLOBAL_REFERENCE || {}\n"),o=(0,s.default)("\n  var mod = { exports: {} };\n  factory(BROWSER_ARGUMENTS);\n  PREREQUISITE_ASSIGNMENTS\n  GLOBAL_TO_ASSIGN = mod.exports;\n"),u=(0,s.default)('\n  (function (global, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(MODULE_NAME, AMD_ARGUMENTS, factory);\n    } else if (typeof exports !== "undefined") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      GLOBAL_EXPORT\n    }\n  })(this, FUNC);\n');e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,r,i){var s=e.specifiers[0];if(n.isExportNamespaceSpecifier(s)||n.isExportDefaultSpecifier(s)){var a=e.specifiers.shift(),o=i.generateUidIdentifier(a.exported.name),u=void 0;u=n.isExportNamespaceSpecifier(a)?n.importNamespaceSpecifier(o):n.importDefaultSpecifier(o),r.push(n.importDeclaration([u],e.source)),r.push(n.exportNamedDeclaration(null,[n.exportSpecifier(o,a.exported)])),t(e,r,i)}}var n=e.types;return{inherits:r(200),visitor:{ExportNamedDeclaration:function(e){var r=e.node,n=e.scope,i=[];t(r,i,n),i.length&&(r.specifiers.length>=1&&i.push(r),e.replaceWithMultiple(i))}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types;return{inherits:r(126),visitor:{Program:function(e,t){for(var r=t.file.ast.comments,n=r,s=Array.isArray(n),a=0,n=s?n:(0,i.default)(n);;){var o;if(s){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;u.value.indexOf("@flow")>=0&&(u.value=u.value.replace("@flow",""),u.value.replace(/\*/g,"").trim()||(u.ignore=!0))}},Flow:function(e){e.remove()},ClassProperty:function(e){e.node.variance=null,e.node.typeAnnotation=null,e.node.value||e.remove()},Class:function(e){e.node.implements=null,e.get("body.body").forEach(function(e){e.isClassProperty()&&(e.node.typeAnnotation=null,e.node.value||e.remove())})},AssignmentPattern:function(e){e.node.left.optional=!1},Function:function(e){for(var t=e.node,r=0;r<t.params.length;r++){t.params[r].optional=!1}},TypeCastExpression:function(e){var r=e.node;do{r=r.expression}while(t.isTypeCastExpression(r));e.replaceWith(r)}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e){var t=e.path.getData("functionBind");return t||(t=e.generateDeclaredUidIdentifier("context"),e.path.setData("functionBind",t))}function n(e,t){var r=e.object||e.callee.object;return t.isStatic(r)&&r}function i(e,r){var i=n(e,r);if(i)return i;var a=t(r);return e.object?e.callee=s.sequenceExpression([s.assignmentExpression("=",a,e.object),e.callee]):e.callee.object=s.assignmentExpression("=",a,e.callee.object),a}var s=e.types;return{inherits:r(201),visitor:{CallExpression:function(e){var t=e.node,r=e.scope,n=t.callee;if(s.isBindExpression(n)){var a=i(n,r);t.callee=s.memberExpression(n.callee,s.identifier("call")),t.arguments.unshift(a)}},BindExpression:function(e){
var t=e.node,r=e.scope,n=i(t,r);e.replaceWith(s.callExpression(s.memberExpression(t.callee,s.identifier("bind")),[n]))}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){var t=!1;return e.traverse({RestProperty:function(){t=!0,e.stop()}}),t}function n(e){for(var t=e.properties,r=Array.isArray(t),n=0,t=r?t:(0,i.default)(t);;){var s;if(r){if(n>=t.length)break;s=t[n++]}else{if(n=t.next(),n.done)break;s=n.value}var a=s;if(o.isSpreadProperty(a))return!0}return!1}function s(e,t,r){for(var n=t.pop(),s=[],a=t,u=Array.isArray(a),l=0,a=u?a:(0,i.default)(a);;){var c;if(u){if(l>=a.length)break;c=a[l++]}else{if(l=a.next(),l.done)break;c=l.value}var f=c,p=f.key;o.isIdentifier(p)&&!f.computed&&(p=o.stringLiteral(f.key.name)),s.push(p)}return[n.argument,o.callExpression(e.addHelper("objectWithoutProperties"),[r,o.arrayExpression(s)])]}function a(e,r,n,i){if(r.isAssignmentPattern())return void a(e,r.get("left"),n,i);if(r.isObjectPattern()&&t(r)){var s=e.scope.generateUidIdentifier("ref"),u=o.variableDeclaration("let",[o.variableDeclarator(r.node,s)]);u._blockHoist=n?i-n:1,e.ensureBlock(),e.get("body").unshiftContainer("body",u),r.replaceWith(s)}}var o=e.types;return{inherits:r(202),visitor:{Function:function(e){for(var t=e.get("params"),r=0;r<t.length;r++)a(t[r].parentPath,t[r],r,t.length)},VariableDeclarator:function(e,t){if(e.get("id").isObjectPattern()){var r=e;e.get("id").traverse({RestProperty:function(e){if(this.originalPath.node.id.properties.length>1&&!o.isIdentifier(this.originalPath.node.init)){var n=e.scope.generateUidIdentifierBasedOnNode(this.originalPath.node.init,"ref");return this.originalPath.insertBefore(o.variableDeclarator(n,this.originalPath.node.init)),void this.originalPath.replaceWith(o.variableDeclarator(this.originalPath.node.id,n))}var i=this.originalPath.node.init,a=[];e.findParent(function(e){if(e.isObjectProperty())a.unshift(e.node.key.name);else if(e.isVariableDeclarator())return!0}),a.length&&a.forEach(function(e){i=o.memberExpression(i,o.identifier(e))});var u=s(t,e.parentPath.node.properties,i),l=u[0],c=u[1];r.insertAfter(o.variableDeclarator(l,c)),r=r.getSibling(r.key+1),0===e.parentPath.node.properties.length&&e.findParent(function(e){return e.isObjectProperty()||e.isVariableDeclarator()}).remove()}},{originalPath:e})}},ExportNamedDeclaration:function(e){var r=e.get("declaration");if(r.isVariableDeclaration()&&t(r)){var n=[];for(var i in e.getOuterBindingIdentifiers(e)){var s=o.identifier(i);n.push(o.exportSpecifier(s,s))}e.replaceWith(r.node),e.insertAfter(o.exportNamedDeclaration(null,n))}},CatchClause:function(e){var t=e.get("param");a(t.parentPath,t)},AssignmentExpression:function(e,r){var n=e.get("left");if(n.isObjectPattern()&&t(n)){var i=[],a=void 0;(e.isCompletionRecord()||e.parentPath.isExpressionStatement())&&(a=e.scope.generateUidIdentifierBasedOnNode(e.node.right,"ref"),i.push(o.variableDeclaration("var",[o.variableDeclarator(a,e.node.right)])));var u=s(r,e.node.left.properties,a),l=u[0],c=u[1],f=o.clone(e.node);f.right=a,i.push(o.expressionStatement(f)),i.push(o.toStatement(o.assignmentExpression("=",l,c))),a&&i.push(o.expressionStatement(a)),e.replaceWithMultiple(i)}},ForXStatement:function(e){var r=e.node,n=e.scope,i=e.get("left"),s=r.left;if(o.isObjectPattern(s)&&t(i)){var a=n.generateUidIdentifier("ref");return r.left=o.variableDeclaration("var",[o.variableDeclarator(a)]),e.ensureBlock(),void r.body.body.unshift(o.variableDeclaration("var",[o.variableDeclarator(s,a)]))}if(o.isVariableDeclaration(s)){var u=s.declarations[0].id;if(o.isObjectPattern(u)){var l=n.generateUidIdentifier("ref");r.left=o.variableDeclaration(s.kind,[o.variableDeclarator(l,null)]),e.ensureBlock(),r.body.body.unshift(o.variableDeclaration(r.left.kind,[o.variableDeclarator(u,l)]))}}},ObjectExpression:function(e,t){function r(){u.length&&(a.push(o.objectExpression(u)),u=[])}if(n(e.node)){var s=t.opts.useBuiltIns||!1;if("boolean"!=typeof s)throw new Error("transform-object-rest-spread currently only accepts a boolean option for useBuiltIns (defaults to false)");for(var a=[],u=[],l=e.node.properties,c=Array.isArray(l),f=0,l=c?l:(0,i.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}var d=p;o.isSpreadProperty(d)?(r(),a.push(d.argument)):u.push(d)}r(),o.isObjectExpression(a[0])||a.unshift(o.objectExpression([]));var h=s?o.memberExpression(o.identifier("Object"),o.identifier("assign")):t.addHelper("extends");e.replaceWith(o.callExpression(h,a))}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){for(var r=t.arguments[0].properties,i=!0,s=0;s<r.length;s++){var a=r[s],o=n.toComputedKey(a);if(n.isLiteral(o,{value:"displayName"})){i=!1;break}}i&&r.unshift(n.objectProperty(n.identifier("displayName"),n.stringLiteral(e)))}function r(e){if(!e||!n.isCallExpression(e))return!1;if(!s(e.callee)&&!a(e.callee))return!1;var t=e.arguments;if(1!==t.length)return!1;var r=t[0];return!!n.isObjectExpression(r)}var n=e.types,s=n.buildMatchMemberExpression("React.createClass"),a=function(e){return"createReactClass"===e.name};return{visitor:{ExportDefaultDeclaration:function(e,n){var s=e.node;if(r(s.declaration)){var a=n.file.opts.basename;"index"===a&&(a=i.default.basename(i.default.dirname(n.file.opts.filename))),t(a,s.declaration)}},CallExpression:function(e){var i=e.node;if(r(i)){var s=void 0;e.find(function(e){if(e.isAssignmentExpression())s=e.node.left;else if(e.isObjectProperty())s=e.node.key;else if(e.isVariableDeclarator())s=e.node.id;else if(e.isStatement())return!0;if(s)return!0}),s&&(n.isMemberExpression(s)&&(s=s.property),n.isIdentifier(s)&&t(s.name,i))}}}}};var n=r(19),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){var t=e.types,r=/\*?\s*@jsx\s+([^\s]+)/,n=(0,l.default)({pre:function(e){var r=e.tagName,n=e.args;t.react.isCompatTag(r)?n.push(t.stringLiteral(r)):n.push(e.tagExpr)},post:function(e,t){e.callee=t.get("jsxIdentifier")()}});return n.Program=function(e,n){for(var i=n.file,a=n.opts.pragma||"React.createElement",o=i.ast.comments,u=Array.isArray(o),l=0,o=u?o:(0,s.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c,p=r.exec(f.value);if(p){if("React.DOM"===(a=p[1]))throw i.buildCodeFrameError(f,"The @jsx React.DOM pragma has been deprecated as of React 0.12");break}}n.set("jsxIdentifier",function(){return a.split(".").map(function(e){return t.identifier(e)}).reduce(function(e,r){return t.memberExpression(e,r)})})},{inherits:o.default,visitor:n}};var a=r(127),o=n(a),u=r(351),l=n(u);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(){return{visitor:{Program:function(e,t){if(!1!==t.opts.strict&&!1!==t.opts.strictMode){for(var r=e.node,n=r.directives,s=Array.isArray(n),o=0,n=s?n:(0,i.default)(n);;){var u;if(s){if(o>=n.length)break;u=n[o++]}else{if(o=n.next(),o.done)break;u=o.value}if("use strict"===u.value.value)return}e.unshiftContainer("directives",a.directive(a.directiveLiteral("use strict")))}}}}};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=["commonjs","amd","umd","systemjs"],n=!1,i="commonjs",s=!1;if(void 0!==t&&(void 0!==t.loose&&(n=t.loose),void 0!==t.modules&&(i=t.modules),void 0!==t.spec&&(s=t.spec)),"boolean"!=typeof n)throw new Error("Preset es2015 'loose' option must be a boolean.");if("boolean"!=typeof s)throw new Error("Preset es2015 'spec' option must be a boolean.");if(!1!==i&&-1===r.indexOf(i))throw new Error("Preset es2015 'modules' option must be 'false' to indicate no modules\nor a module type which be be one of: 'commonjs' (default), 'amd', 'umd', 'systemjs'");var o={loose:n};return{plugins:[[a.default,{loose:n,spec:s}],u.default,c.default,[p.default,{spec:s}],h.default,[y.default,o],g.default,E.default,A.default,[_.default,o],[C.default,o],P.default,F.default,O.default,[R.default,o],M.default,[L.default,o],U.default,G.default,"commonjs"===i&&[Y.default,o],"systemjs"===i&&[K.default,o],"amd"===i&&[J.default,o],"umd"===i&&[z.default,o],[Q.default,{async:!1,asyncGenerators:!1}]].filter(Boolean)}}t.__esModule=!0;var s=r(83),a=n(s),o=r(76),u=n(o),l=r(75),c=n(l),f=r(68),p=n(f),d=r(69),h=n(d),m=r(71),y=n(m),v=r(78),g=n(v),b=r(80),E=n(b),x=r(130),A=n(x),S=r(72),_=n(S),D=r(74),C=n(D),w=r(82),P=n(w),k=r(85),F=n(k),T=r(66),O=n(T),B=r(81),R=n(B),I=r(79),M=n(I),N=r(73),L=n(N),j=r(70),U=n(j),V=r(84),G=n(V),W=r(77),Y=n(W),q=r(208),K=n(q),H=r(131),J=n(H),X=r(209),z=n(X),$=r(86),Q=n($),Z=i({});t.default=Z,Object.defineProperty(Z,"buildPreset",{configurable:!0,writable:!0,enumerable:!1,value:i}),e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(132),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={plugins:[i.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(128),s=n(i),a=r(129),o=n(a);t.default={plugins:[s.default,o.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(221),s=n(i),a=r(203),o=n(a),u=r(210),l=n(u);t.default={presets:[s.default],plugins:[o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(222),s=n(i),a=r(204),o=n(a),u=r(205),l=n(u),c=r(324),f=n(c);t.default={presets:[s.default],plugins:[f.default,o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(128),s=n(i),a=r(129),o=n(a),u=r(132),l=n(u),c=r(213),f=n(c),p=r(327),d=n(p);t.default={plugins:[s.default,o.default,l.default,d.default,f.default]},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function e(t,r){(0,i.default)(this,e),this.file=t,this.options=r};t.default=s,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.Flow=t.Pure=t.Generated=t.User=t.Var=t.BlockScoped=t.Referenced=t.Scope=t.Expression=t.Statement=t.BindingIdentifier=t.ReferencedMemberExpression=t.ReferencedIdentifier=void 0;var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);t.ReferencedIdentifier={types:["Identifier","JSXIdentifier"],checkPath:function(e,t){var r=e.node,s=e.parent;if(!i.isIdentifier(r,t)&&!i.isJSXMemberExpression(s,t)){if(!i.isJSXIdentifier(r,t))return!1;if(n.react.isCompatTag(r.name))return!1}return i.isReferenced(r,s)}},t.ReferencedMemberExpression={types:["MemberExpression"],checkPath:function(e){var t=e.node,r=e.parent;return i.isMemberExpression(t)&&i.isReferenced(t,r)}},t.BindingIdentifier={types:["Identifier"],checkPath:function(e){var t=e.node,r=e.parent;return i.isIdentifier(t)&&i.isBinding(t,r)}},t.Statement={types:["Statement"],checkPath:function(e){var t=e.node,r=e.parent;if(i.isStatement(t)){if(i.isVariableDeclaration(t)){if(i.isForXStatement(r,{left:t}))return!1;if(i.isForStatement(r,{init:t}))return!1}return!0}return!1}},t.Expression={types:["Expression"],checkPath:function(e){return e.isIdentifier()?e.isReferencedIdentifier():i.isExpression(e.node)}},t.Scope={types:["Scopable"],checkPath:function(e){return i.isScope(e.node,e.parent)}},t.Referenced={checkPath:function(e){return i.isReferenced(e.node,e.parent)}},t.BlockScoped={checkPath:function(e){return i.isBlockScoped(e.node)}},t.Var={types:["VariableDeclaration"],checkPath:function(e){return i.isVar(e.node)}},t.User={checkPath:function(e){return e.node&&!!e.node.loc}},t.Generated={checkPath:function(e){return!e.isUser()}},t.Pure={checkPath:function(e,t){return e.scope.isPure(e.node,t)}},t.Flow={types:["Flow","ImportDeclaration","ExportDeclaration","ImportSpecifier"],checkPath:function(e){var t=e.node;return!!i.isFlow(t)||(i.isImportDeclaration(t)?"type"===t.importKind||"typeof"===t.importKind:i.isExportDeclaration(t)?"type"===t.exportKind:!!i.isImportSpecifier(t)&&("type"===t.importKind||"typeof"===t.importKind))}}},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function(){function e(t){var r=t.existing,n=t.identifier,s=t.scope,a=t.path,o=t.kind;(0,i.default)(this,e),this.identifier=n,this.scope=s,this.path=a,this.kind=o,this.constantViolations=[],this.constant=!0,this.referencePaths=[],this.referenced=!1,this.references=0,this.clearValue(),r&&(this.constantViolations=[].concat(r.path,r.constantViolations,this.constantViolations))}return e.prototype.deoptValue=function(){this.clearValue(),this.hasDeoptedValue=!0},e.prototype.setValue=function(e){this.hasDeoptedValue||(this.hasValue=!0,this.value=e)},e.prototype.clearValue=function(){this.hasDeoptedValue=!1,this.hasValue=!1,this.value=null},e.prototype.reassign=function(e){this.constant=!1,-1===this.constantViolations.indexOf(e)&&this.constantViolations.push(e)},e.prototype.reference=function(e){-1===this.referencePaths.indexOf(e)&&(this.referenced=!0,this.references++,this.referencePaths.push(e))},e.prototype.dereference=function(){this.references--,this.referenced=!!this.references},e}();t.default=s,e.exports=t.default},function(e,t,r){"use strict";function n(e,t,r){for(var n=[].concat(e),i=(0,a.default)(null);n.length;){var s=n.shift();if(s){var o=u.getBindingIdentifiers.keys[s.type];if(u.isIdentifier(s))if(t){var l=i[s.name]=i[s.name]||[];l.push(s)}else i[s.name]=s;else if(u.isExportDeclaration(s))u.isDeclaration(s.declaration)&&n.push(s.declaration);else{if(r){if(u.isFunctionDeclaration(s)){n.push(s.id);continue}if(u.isFunctionExpression(s))continue}if(o)for(var c=0;c<o.length;c++){var f=o[c];s[f]&&(n=n.concat(s[f]))}}}}return i}function i(e,t){return n(e,t,!0)}t.__esModule=!0;var s=r(9),a=function(e){return e&&e.__esModule?e:{default:e}}(s);t.getBindingIdentifiers=n,t.getOuterBindingIdentifiers=i;var o=r(1),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o);n.keys={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],OpaqueType:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],RestProperty:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]}},function(e,t){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,r){"use strict";var n=r(138),i=r(13)("toStringTag"),s="Arguments"==n(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,r,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=a(t=Object(e),i))?r:s?n(t):"Object"==(o=n(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,r){"use strict";var n=r(146),i=r(57).getWeak,s=r(21),a=r(16),o=r(136),u=r(55),l=r(137),c=r(28),f=r(58),p=l(5),d=l(6),h=0,m=function(e){return e._l||(e._l=new y)},y=function(){this.a=[]},v=function(e,t){return p(e.a,function(e){return e[0]===t})};y.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var r=v(this,e);r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=d(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,r,s){var l=e(function(e,n){o(e,l,t,"_i"),e._t=t,e._i=h++,e._l=void 0,void 0!=n&&u(n,r,e[s],e)});return n(l.prototype,{delete:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(f(this,t)).delete(e):r&&c(r,this._i)&&delete r[this._i]},has:function(e){if(!a(e))return!1;var r=i(e);return!0===r?m(f(this,t)).has(e):r&&c(r,this._i)}}),l},def:function(e,t,r){var n=i(s(t),!0);return!0===n?m(e).set(t,r):n[e._i]=r,e},ufstore:m}},function(e,t,r){"use strict";var n=r(16),i=r(15).document,s=n(i)&&n(i.createElement);e.exports=function(e){return s?i.createElement(e):{}}},function(e,t,r){"use strict";e.exports=!r(22)&&!r(27)(function(){return 7!=Object.defineProperty(r(230)("div"),"a",{get:function(){return 7}}).a})},function(e,t,r){"use strict";var n=r(138);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t){"use strict";e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,r){"use strict";var n=r(44),i=r(145),s=r(91),a=r(94),o=r(142),u=Object.assign;e.exports=!u||r(27)(function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach(function(e){t[e]=e}),7!=u({},e)[r]||Object.keys(u({},t)).join("")!=n})?function(e,t){for(var r=a(e),u=arguments.length,l=1,c=i.f,f=s.f;u>l;)for(var p,d=o(arguments[l++]),h=c?n(d).concat(c(d)):n(d),m=h.length,y=0;m>y;)f.call(d,p=h[y++])&&(r[p]=d[p]);return r}:u},function(e,t,r){"use strict";var n=r(91),i=r(92),s=r(37),a=r(154),o=r(28),u=r(231),l=Object.getOwnPropertyDescriptor;t.f=r(22)?l:function(e,t){if(e=s(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(o(e,t))return i(!n.f.call(e,t),e[t])}},function(e,t,r){"use strict";var n=r(237),i=r(141).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},function(e,t,r){"use strict";var n=r(28),i=r(37),s=r(420)(!1),a=r(150)("IE_PROTO");e.exports=function(e,t){var r,o=i(e),u=0,l=[];for(r in o)r!=a&&n(o,r)&&l.push(r);for(;t.length>u;)n(o,r=t[u++])&&(~s(l,r)||l.push(r));return l}},function(e,t,r){"use strict";var n=r(228),i=r(13)("iterator"),s=r(56);e.exports=r(5).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||s[n(e)]}},function(e,t,r){(function(n){"use strict";function i(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function s(e){var r=this.useColors;if(e[0]=(r?"%c":"")+this.namespace+(r?" %c":" ")+e[0]+(r?"%c ":" ")+"+"+t.humanize(this.diff),r){var n="color: "+this.color;e.splice(1,0,n,"color: inherit");var i=0,s=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(s=i))}),e.splice(s,0,n)}}function a(){return"object"===("undefined"==typeof console?"undefined":l(console))&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function o(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(e){}}function u(){var e;try{e=t.storage.debug}catch(e){}return!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG),e}var l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t=e.exports=r(458),t.log=a,t.formatArgs=s,t.save=o,t.load=u,t.useColors=i,t.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(e){}}(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}},t.enable(u())}).call(t,r(8))},function(e,t){"use strict";!function(){function t(e){return 48<=e&&e<=57}function r(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70}function n(e){return e>=48&&e<=55}function i(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&d.indexOf(e)>=0}function s(e){return 10===e||13===e||8232===e||8233===e}function a(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}function o(e){return e<128?h[e]:p.NonAsciiIdentifierStart.test(a(e))}function u(e){return e<128?m[e]:p.NonAsciiIdentifierPart.test(a(e))}function l(e){return e<128?h[e]:f.NonAsciiIdentifierStart.test(a(e))}function c(e){return e<128?m[e]:f.NonAsciiIdentifierPart.test(a(e))}var f,p,d,h,m,y;for(p={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},f={
NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},d=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],h=new Array(128),y=0;y<128;++y)h[y]=y>=97&&y<=122||y>=65&&y<=90||36===y||95===y;for(m=new Array(128),y=0;y<128;++y)m[y]=y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||36===y||95===y;e.exports={isDecimalDigit:t,isHexDigit:r,isOctalDigit:n,isWhiteSpace:i,isLineTerminator:s,isIdentifierStartES5:o,isIdentifierPartES5:u,isIdentifierStartES6:l,isIdentifierPartES6:c}}()},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Set");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new i;++t<r;)this.add(e[t])}var i=r(160),s=r(561),a=r(562);n.prototype.add=n.prototype.push=s,n.prototype.has=a,e.exports=n},function(e,t,r){"use strict";var n=r(17),i=n.Uint8Array;e.exports=i},function(e,t){"use strict";function r(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}e.exports=r},function(e,t,r){"use strict";function n(e,t){var r=a(e),n=!r&&s(e),c=!r&&!n&&o(e),p=!r&&!n&&!c&&l(e),d=r||n||c||p,h=d?i(e.length,String):[],m=h.length;for(var y in e)!t&&!f.call(e,y)||d&&("length"==y||c&&("offset"==y||"parent"==y)||p&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||u(y,m))||h.push(y);return h}var i=r(513),s=r(112),a=r(6),o=r(113),u=r(171),l=r(177),c=Object.prototype,f=c.hasOwnProperty;e.exports=n},function(e,t){"use strict";function r(e,t,r,n){var i=-1,s=null==e?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){(void 0===r||s(e[t],r))&&(void 0!==r||t in e)||i(e,t,r)}var i=r(163),s=r(46);e.exports=n},function(e,t,r){"use strict";var n=r(527),i=n();e.exports=i},function(e,t,r){"use strict";function n(e,t){t=i(t,e);for(var r=0,n=t.length;null!=e&&r<n;)e=e[s(t[r++])];return r&&r==n?e:void 0}var i=r(255),s=r(108);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=t(e);return s(e)?n:i(n,r(e))}var i=r(161),s=r(6);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,a,o){return e===t||(null==e||null==t||!s(e)&&!s(t)?e!==e&&t!==t:i(e,t,r,a,n,o))}var i=r(494),s=r(25);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=-1,n=s(e)?Array(e.length):[];return i(e,function(e,i,s){n[++r]=t(e,i,s)}),n}var i=r(487),s=r(24);e.exports=n},function(e,t,r){"use strict";function n(e){if("string"==typeof e)return e;if(a(e))return s(e,n)+"";if(o(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=r(45),s=r(60),a=r(6),o=r(62),u=1/0,l=i?i.prototype:void 0,c=l?l.toString:void 0;e.exports=n},function(e,t){"use strict";function r(e,t){return e.has(t)}e.exports=r},function(e,t,r){"use strict";function n(e,t){return i(e)?e:s(e,t)?[e]:a(o(e))}var i=r(6),s=r(173),a=r(571),o=r(114);e.exports=n},function(e,t,r){(function(e){"use strict";function n(e,t){if(t)return e.slice();var r=e.length,n=c?c(r):new e.constructor(r);return e.copy(n),n}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s=r(17),a="object"==i(t)&&t&&!t.nodeType&&t,o=a&&"object"==i(e)&&e&&!e.nodeType&&e,u=o&&o.exports===a,l=u?s.Buffer:void 0,c=l?l.allocUnsafe:void 0;e.exports=n}).call(t,r(39)(e))},function(e,t,r){"use strict";function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var i=r(167);e.exports=n},function(e,t,r){"use strict";function n(e){return function(t,r,n){var o=Object(t);if(!s(t)){var u=i(r,3);t=a(t),r=function(e){return u(o[e],e,o)}}var l=e(t,r,n);return l>-1?o[u?t[l]:l]:void 0}}var i=r(61),s=r(24),a=r(32);e.exports=n},function(e,t,r){"use strict";var n=r(38),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},function(e,t,r){"use strict";function n(e,t,r,n,l,c){var f=r&o,p=e.length,d=t.length;if(p!=d&&!(f&&d>p))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var m=-1,y=!0,v=r&u?new i:void 0;for(c.set(e,t),c.set(t,e);++m<p;){var g=e[m],b=t[m];if(n)var E=f?n(b,g,m,t,e,c):n(g,b,m,e,t,c);if(void 0!==E){if(E)continue;y=!1;break}if(v){if(!s(t,function(e,t){if(!a(v,t)&&(g===e||l(g,e,r,n,c)))return v.push(t)})){y=!1;break}}else if(g!==b&&!l(g,b,r,n,c)){y=!1;break}}return c.delete(e),c.delete(t),y}var i=r(242),s=r(482),a=r(254),o=1,u=2;e.exports=n},function(e,t){(function(t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n="object"==(void 0===t?"undefined":r(t))&&t&&t.Object===Object&&t;e.exports=n}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return i(e,a,s)}var i=r(250),s=r(170),a=r(32);e.exports=n},function(e,t,r){"use strict";var n=r(161),i=r(169),s=r(170),a=r(279),o=Object.getOwnPropertySymbols,u=o?function(e){for(var t=[];e;)n(t,s(e)),e=i(e);return t}:a;e.exports=u},function(e,t,r){"use strict";var n=r(472),i=r(159),s=r(474),a=r(241),o=r(475),u=r(30),l=r(272),c=l(n),f=l(i),p=l(s),d=l(a),h=l(o),m=u;(n&&"[object DataView]"!=m(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=m(new i)||s&&"[object Promise]"!=m(s.resolve())||a&&"[object Set]"!=m(new a)||o&&"[object WeakMap]"!=m(new o))&&(m=function(e){var t=u(e),r="[object Object]"==t?e.constructor:void 0,n=r?l(r):"";if(n)switch(n){case c:return"[object DataView]";case f:return"[object Map]";case p:return"[object Promise]";case d:return"[object Set]";case h:return"[object WeakMap]"}return t}),e.exports=m},function(e,t,r){"use strict";function n(e,t,r){t=i(t,e);for(var n=-1,c=t.length,f=!1;++n<c;){var p=l(t[n]);if(!(f=null!=e&&r(e,p)))break;e=e[p]}return f||++n!=c?f:!!(c=null==e?0:e.length)&&u(c)&&o(p,c)&&(a(e)||s(e))}var i=r(255),s=r(112),a=r(6),o=r(171),u=r(176),l=r(108);e.exports=n},function(e,t,r){"use strict";function n(e){return"function"!=typeof e.constructor||a(e)?{}:i(s(e))}var i=r(486),s=r(169),a=r(105);e.exports=n},function(e,t,r){"use strict";function n(e){return e===e&&!i(e)}var i=r(18);e.exports=n},function(e,t){"use strict";function r(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}e.exports=r},function(e,t){"use strict";function r(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}e.exports=r},function(e,t,r){(function(e){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(261),s="object"==n(t)&&t&&!t.nodeType&&t,a=s&&"object"==n(e)&&e&&!e.nodeType&&e,o=a&&a.exports===s,u=o&&i.process,l=function(){try{return u&&u.binding&&u.binding("util")}catch(e){}}();e.exports=l}).call(t,r(39)(e))},function(e,t){"use strict";function r(e,t){return function(r){return e(t(r))}}e.exports=r},function(e,t){"use strict";function r(e){if(null!=e){try{return i.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var n=Function.prototype,i=n.toString;e.exports=r},function(e,t,r){"use strict";var n=r(244),i=r(573),s=r(101),a=r(529),o=s(function(e){return e.push(void 0,a),n(i,void 0,e)});e.exports=o},function(e,t,r){"use strict";function n(e,t){return null!=e&&s(e,t,i)}var i=r(490),s=r(265);e.exports=n},function(e,t,r){"use strict";function n(e){if(!a(e)||i(e)!=o)return!1;var t=s(e);if(null===t)return!0;var r=f.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&c.call(r)==p}var i=r(30),s=r(169),a=r(25),o="[object Object]",u=Function.prototype,l=Object.prototype,c=u.toString,f=l.hasOwnProperty,p=c.call(Object);e.exports=n},function(e,t,r){"use strict";var n=r(498),i=r(102),s=r(270),a=s&&s.isRegExp,o=a?i(a):n;e.exports=o},function(e,t,r){"use strict";var n=r(101),i=r(593),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){return t=(r?s(e,t,r):void 0===t)?1:a(t),i(o(e),t)}var i=r(510),s=r(172),a=r(48),o=r(114);e.exports=n},function(e,t){"use strict";function r(){return[]}e.exports=r},function(e,t,r){"use strict";function n(e){return null==e?[]:i(e,s(e))}var i=r(515),s=r(32);e.exports=n},function(e,t){"use strict";function r(e,t,r){if(c)try{c.call(l,e,t,{value:r})}catch(n){e[t]=r}else e[t]=r}function n(e){return e&&(r(e,"call",e.call),r(e,"apply",e.apply)),e}function i(e){return f?f.call(l,e):(m.prototype=e||null,new m)}function s(){do{var e=a(h.call(d.call(y(),36),2))}while(p.call(v,e));return v[e]=e}function a(e){var t={};return t[e]=!0,Object.keys(t)[0]}function o(e){return i(null)}function u(e){function t(t){function n(r,n){if(r===u)return n?i=null:i||(i=e(t))}var i;r(t,a,n)}function n(e){return p.call(e,a)||t(e),e[a](u)}var a=s(),u=i(null);return e=e||o,n.forget=function(e){p.call(e,a)&&e[a](u,!0)},n}var l=Object,c=Object.defineProperty,f=Object.create;n(c),n(f);var p=n(Object.prototype.hasOwnProperty),d=n(Number.prototype.toString),h=n(String.prototype.slice),m=function(){},y=Math.random,v=i(null);t.makeUniqueKey=s;var g=Object.getOwnPropertyNames;Object.getOwnPropertyNames=function(e){for(var t=g(e),r=0,n=0,i=t.length;r<i;++r)p.call(v,t[r])||(r>n&&(t[n]=t[r]),++n);return t.length=n,t},t.makeAccessor=u},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(a){var o="object"==s(t)&&t,u="object"==s(e)&&e&&e.exports==o&&e,l="object"==(void 0===i?"undefined":s(i))&&i;l.global!==l&&l.window!==l||(a=l);var c={rangeOrder:"A range’s `stop` value must be greater than or equal to the `start` value.",codePointRange:"Invalid code point value. Code points range from U+000000 to U+10FFFF."},f=/\\x00([^0123456789]|$)/g,p={},d=p.hasOwnProperty,h=function(e,t){for(var r=-1,n=e.length;++r<n;)t(e[r],r)},m=p.toString,y=function(e){return"[object Array]"==m.call(e)},v=function(e){return"number"==typeof e||"[object Number]"==m.call(e)},g=function(e,t){var r=String(e);return r.length<t?("0000"+r).slice(-t):r},b=function(e){return Number(e).toString(16).toUpperCase()},E=[].slice,x=function(e){for(var t,r=-1,n=e.length,i=n-1,s=[],a=!0,o=0;++r<n;)if(t=e[r],a)s.push(t),o=t,a=!1;else if(t==o+1){if(r!=i){o=t;continue}a=!0,s.push(t+1)}else s.push(o+1,t),o=t;return a||s.push(t+1),s},A=function(e,t){for(var r,n,i=0,s=e.length;i<s;){if(r=e[i],n=e[i+1],t>=r&&t<n)return t==r?n==r+1?(e.splice(i,2),e):(e[i]=t+1,e):t==n-1?(e[i+1]=t,e):(e.splice(i,2,r,t,t+1,n),e);i+=2}return e},S=function(e,t,r){if(r<t)throw Error(c.rangeOrder);for(var n,i,s=0;s<e.length;){if(n=e[s],i=e[s+1]-1,n>r)return e;if(t<=n&&r>=i)e.splice(s,2);else{if(t>=n&&r<i)return t==n?(e[s]=r+1,e[s+1]=i+1,e):(e.splice(s,2,n,t,r+1,i+1),e);if(t>=n&&t<=i)e[s+1]=t;else if(r>=n&&r<=i)return e[s]=r+1,e;s+=2}}return e},_=function(e,t){var r,n,i=0,s=null,a=e.length;if(t<0||t>1114111)throw RangeError(c.codePointRange);for(;i<a;){if(r=e[i],n=e[i+1],t>=r&&t<n)return e;if(t==r-1)return e[i]=t,e;if(r>t)return e.splice(null!=s?s+2:0,0,t,t+1),e;if(t==n)return t+1==e[i+2]?(e.splice(i,4,r,e[i+3]),e):(e[i+1]=t+1,e);s=i,i+=2}return e.push(t,t+1),e},D=function(e,t){for(var r,n,i=0,s=e.slice(),a=t.length;i<a;)r=t[i],n=t[i+1]-1,s=r==n?_(s,r):w(s,r,n),i+=2;return s},C=function(e,t){for(var r,n,i=0,s=e.slice(),a=t.length;i<a;)r=t[i],n=t[i+1]-1,s=r==n?A(s,r):S(s,r,n),i+=2;return s},w=function(e,t,r){if(r<t)throw Error(c.rangeOrder);if(t<0||t>1114111||r<0||r>1114111)throw RangeError(c.codePointRange);for(var n,i,s=0,a=!1,o=e.length;s<o;){if(n=e[s],i=e[s+1],a){if(n==r+1)return e.splice(s-1,2),e;if(n>r)return e;n>=t&&n<=r&&(i>t&&i-1<=r?(e.splice(s,2),s-=2):(e.splice(s-1,2),s-=2))}else{if(n==r+1)return e[s]=t,e;if(n>r)return e.splice(s,0,t,r+1),e;if(t>=n&&t<i&&r+1<=i)return e;t>=n&&t<i||i==t?(e[s+1]=r+1,a=!0):t<=n&&r+1>=i&&(e[s]=t,e[s+1]=r+1,a=!0)}s+=2}return a||e.push(t,r+1),e},P=function(e,t){var r=0,n=e.length,i=e[r],s=e[n-1];if(n>=2&&(t<i||t>s))return!1;for(;r<n;){if(i=e[r],s=e[r+1],t>=i&&t<s)return!0;r+=2}return!1},k=function(e,t){for(var r,n=0,i=t.length,s=[];n<i;)r=t[n],P(e,r)&&s.push(r),++n;return x(s)},F=function(e){return!e.length},T=function(e){return 2==e.length&&e[0]+1==e[1]},O=function(e){for(var t,r,n=0,i=[],s=e.length;n<s;){for(t=e[n],r=e[n+1];t<r;)i.push(t),++t;n+=2}return i},B=Math.floor,R=function(e){return parseInt(B((e-65536)/1024)+55296,10)},I=function(e){return parseInt((e-65536)%1024+56320,10)},M=String.fromCharCode,N=function(e){return 9==e?"\\t":10==e?"\\n":12==e?"\\f":13==e?"\\r":92==e?"\\\\":36==e||e>=40&&e<=43||45==e||46==e||63==e||e>=91&&e<=94||e>=123&&e<=125?"\\"+M(e):e>=32&&e<=126?M(e):e<=255?"\\x"+g(b(e),2):"\\u"+g(b(e),4)},L=function(e){return e<=65535?N(e):"\\u{"+e.toString(16).toUpperCase()+"}"},j=function(e){var t,r=e.length,n=e.charCodeAt(0);return n>=55296&&n<=56319&&r>1?(t=e.charCodeAt(1),1024*(n-55296)+t-56320+65536):n},U=function(e){var t,r,n="",i=0,s=e.length;if(T(e))return N(e[0]);for(;i<s;)t=e[i],r=e[i+1]-1,n+=t==r?N(t):t+1==r?N(t)+N(r):N(t)+"-"+N(r),i+=2;return"["+n+"]"},V=function(e){var t,r,n="",i=0,s=e.length;if(T(e))return L(e[0]);for(;i<s;)t=e[i],r=e[i+1]-1,n+=t==r?L(t):t+1==r?L(t)+L(r):L(t)+"-"+L(r),i+=2;return"["+n+"]"},G=function(e){for(var t,r,n=[],i=[],s=[],a=[],o=0,u=e.length;o<u;)t=e[o],r=e[o+1]-1,t<55296?(r<55296&&s.push(t,r+1),r>=55296&&r<=56319&&(s.push(t,55296),n.push(55296,r+1)),r>=56320&&r<=57343&&(s.push(t,55296),n.push(55296,56320),i.push(56320,r+1)),r>57343&&(s.push(t,55296),n.push(55296,56320),i.push(56320,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>=55296&&t<=56319?(r>=55296&&r<=56319&&n.push(t,r+1),r>=56320&&r<=57343&&(n.push(t,56320),i.push(56320,r+1)),r>57343&&(n.push(t,56320),i.push(56320,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>=56320&&t<=57343?(r>=56320&&r<=57343&&i.push(t,r+1),r>57343&&(i.push(t,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),a.push(65536,r+1)))):t>57343&&t<=65535?r<=65535?s.push(t,r+1):(s.push(t,65536),a.push(65536,r+1)):a.push(t,r+1),o+=2;return{loneHighSurrogates:n,loneLowSurrogates:i,bmp:s,astral:a}},W=function(e){for(var t,r,n,i,s,a,o=[],u=[],l=!1,c=-1,f=e.length;++c<f;)if(t=e[c],r=e[c+1]){for(n=t[0],i=t[1],s=r[0],a=r[1],u=i;s&&n[0]==s[0]&&n[1]==s[1];)u=T(a)?_(u,a[0]):w(u,a[0],a[1]-1),++c,t=e[c],n=t[0],i=t[1],r=e[c+1],s=r&&r[0],a=r&&r[1],l=!0;o.push([n,l?u:i]),l=!1}else o.push(t);return Y(o)},Y=function(e){if(1==e.length)return e;for(var t=-1,r=-1;++t<e.length;){var n=e[t],i=n[1],s=i[0],a=i[1];for(r=t;++r<e.length;){var o=e[r],u=o[1],l=u[0],c=u[1];s==l&&a==c&&(T(o[0])?n[0]=_(n[0],o[0][0]):n[0]=w(n[0],o[0][0],o[0][1]-1),e.splice(r,1),--r)}}return e},q=function(e){if(!e.length)return[];for(var t,r,n,i,s,a,o=0,u=[],l=e.length;o<l;){t=e[o],r=e[o+1]-1,n=R(t),i=I(t),s=R(r),a=I(r);var c=56320==i,f=57343==a,p=!1;n==s||c&&f?(u.push([[n,s+1],[i,a+1]]),p=!0):u.push([[n,n+1],[i,57344]]),!p&&n+1<s&&(f?(u.push([[n+1,s+1],[56320,a+1]]),p=!0):u.push([[n+1,s],[56320,57344]])),p||u.push([[s,s+1],[56320,a+1]]),o+=2}return W(u)},K=function(e){var t=[];return h(e,function(e){var r=e[0],n=e[1];t.push(U(r)+U(n))}),t.join("|")},H=function(e,t,r){if(r)return V(e);var n=[],i=G(e),s=i.loneHighSurrogates,a=i.loneLowSurrogates,o=i.bmp,u=i.astral,l=!F(s),c=!F(a),f=q(u);return t&&(o=D(o,s),l=!1,o=D(o,a),c=!1),F(o)||n.push(U(o)),f.length&&n.push(K(f)),l&&n.push(U(s)+"(?![\\uDC00-\\uDFFF])"),c&&n.push("(?:[^\\uD800-\\uDBFF]|^)"+U(a)),n.join("|")},J=function e(t){return arguments.length>1&&(t=E.call(arguments)),this instanceof e?(this.data=[],t?this.add(t):this):(new e).add(t)};J.version="1.3.2";var X=J.prototype;!function(e,t){var r;for(r in t)d.call(t,r)&&(e[r]=t[r])}(X,{add:function(e){var t=this;return null==e?t:e instanceof J?(t.data=D(t.data,e.data),t):(arguments.length>1&&(e=E.call(arguments)),y(e)?(h(e,function(e){t.add(e)}),t):(t.data=_(t.data,v(e)?e:j(e)),t))},remove:function(e){var t=this;return null==e?t:e instanceof J?(t.data=C(t.data,e.data),t):(arguments.length>1&&(e=E.call(arguments)),y(e)?(h(e,function(e){t.remove(e)}),t):(t.data=A(t.data,v(e)?e:j(e)),t))},addRange:function(e,t){var r=this;return r.data=w(r.data,v(e)?e:j(e),v(t)?t:j(t)),r},removeRange:function(e,t){var r=this,n=v(e)?e:j(e),i=v(t)?t:j(t);return r.data=S(r.data,n,i),r},intersection:function(e){var t=this,r=e instanceof J?O(e.data):e;return t.data=k(t.data,r),t},contains:function(e){return P(this.data,v(e)?e:j(e))},clone:function(){var e=new J;return e.data=this.data.slice(0),e},toString:function(e){var t=H(this.data,!!e&&e.bmpOnly,!!e&&e.hasUnicodeFlag);return t?t.replace(f,"\\0$1"):"[]"},toRegExp:function(e){var t=this.toString(e&&-1!=e.indexOf("u")?{hasUnicodeFlag:!0}:null);return RegExp(t,e||"")},valueOf:function(){return O(this.data)}}),X.toArray=X.valueOf,"object"==s(r(49))&&r(49)?void 0!==(n=function(){return J}.call(t,r,t,e))&&(e.exports=n):o&&!o.nodeType?u?u.exports=J:o.regenerate=J:a.regenerate=J}(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){p.default.ok(this instanceof s),h.assertIdentifier(e),this.nextTempId=0,this.contextId=e,this.listing=[],this.marked=[!0],this.finalLoc=a(),this.tryEntries=[],this.leapManager=new y.LeapManager(this)}function a(){return h.numericLiteral(-1)}function o(e){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+(0,c.default)(e))}function u(e){var t=e.type
;return"normal"===t?!x.call(e,"target"):"break"===t||"continue"===t?!x.call(e,"value")&&h.isLiteral(e.target):("return"===t||"throw"===t)&&(x.call(e,"value")&&!x.call(e,"target"))}var l=r(35),c=i(l),f=r(64),p=i(f),d=r(1),h=n(d),m=r(607),y=n(m),v=r(608),g=n(v),b=r(116),E=n(b),x=Object.prototype.hasOwnProperty,A=s.prototype;t.Emitter=s,A.mark=function(e){h.assertLiteral(e);var t=this.listing.length;return-1===e.value?e.value=t:p.default.strictEqual(e.value,t),this.marked[t]=!0,e},A.emit=function(e){h.isExpression(e)&&(e=h.expressionStatement(e)),h.assertStatement(e),this.listing.push(e)},A.emitAssign=function(e,t){return this.emit(this.assign(e,t)),e},A.assign=function(e,t){return h.expressionStatement(h.assignmentExpression("=",e,t))},A.contextProperty=function(e,t){return h.memberExpression(this.contextId,t?h.stringLiteral(e):h.identifier(e),!!t)},A.stop=function(e){e&&this.setReturnValue(e),this.jump(this.finalLoc)},A.setReturnValue=function(e){h.assertExpression(e.value),this.emitAssign(this.contextProperty("rval"),this.explodeExpression(e))},A.clearPendingException=function(e,t){h.assertLiteral(e);var r=h.callExpression(this.contextProperty("catch",!0),[e]);t?this.emitAssign(t,r):this.emit(r)},A.jump=function(e){this.emitAssign(this.contextProperty("next"),e),this.emit(h.breakStatement())},A.jumpIf=function(e,t){h.assertExpression(e),h.assertLiteral(t),this.emit(h.ifStatement(e,h.blockStatement([this.assign(this.contextProperty("next"),t),h.breakStatement()])))},A.jumpIfNot=function(e,t){h.assertExpression(e),h.assertLiteral(t);var r=void 0;r=h.isUnaryExpression(e)&&"!"===e.operator?e.argument:h.unaryExpression("!",e),this.emit(h.ifStatement(r,h.blockStatement([this.assign(this.contextProperty("next"),t),h.breakStatement()])))},A.makeTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},A.getContextFunction=function(e){return h.functionExpression(e||null,[this.contextId],h.blockStatement([this.getDispatchLoop()]),!1,!1)},A.getDispatchLoop=function(){var e=this,t=[],r=void 0,n=!1;return e.listing.forEach(function(i,s){e.marked.hasOwnProperty(s)&&(t.push(h.switchCase(h.numericLiteral(s),r=[])),n=!1),n||(r.push(i),h.isCompletionStatement(i)&&(n=!0))}),this.finalLoc.value=this.listing.length,t.push(h.switchCase(this.finalLoc,[]),h.switchCase(h.stringLiteral("end"),[h.returnStatement(h.callExpression(this.contextProperty("stop"),[]))])),h.whileStatement(h.numericLiteral(1),h.switchStatement(h.assignmentExpression("=",this.contextProperty("prev"),this.contextProperty("next")),t))},A.getTryLocsList=function(){if(0===this.tryEntries.length)return null;var e=0;return h.arrayExpression(this.tryEntries.map(function(t){var r=t.firstLoc.value;p.default.ok(r>=e,"try entries out of order"),e=r;var n=t.catchEntry,i=t.finallyEntry,s=[t.firstLoc,n?n.firstLoc:null];return i&&(s[2]=i.firstLoc,s[3]=i.afterLoc),h.arrayExpression(s)}))},A.explode=function(e,t){var r=e.node,n=this;if(h.assertNode(r),h.isDeclaration(r))throw o(r);if(h.isStatement(r))return n.explodeStatement(e);if(h.isExpression(r))return n.explodeExpression(e,t);switch(r.type){case"Program":return e.get("body").map(n.explodeStatement,n);case"VariableDeclarator":throw o(r);case"Property":case"SwitchCase":case"CatchClause":throw new Error(r.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+(0,c.default)(r.type))}},A.explodeStatement=function(e,t){var r=e.node,n=this,i=void 0,s=void 0,o=void 0;if(h.assertStatement(r),t?h.assertIdentifier(t):t=null,h.isBlockStatement(r))return void e.get("body").forEach(function(e){n.explodeStatement(e)});if(!g.containsLeap(r))return void n.emit(r);switch(r.type){case"ExpressionStatement":n.explodeExpression(e.get("expression"),!0);break;case"LabeledStatement":s=a(),n.leapManager.withEntry(new y.LabeledEntry(s,r.label),function(){n.explodeStatement(e.get("body"),r.label)}),n.mark(s);break;case"WhileStatement":i=a(),s=a(),n.mark(i),n.jumpIfNot(n.explodeExpression(e.get("test")),s),n.leapManager.withEntry(new y.LoopEntry(s,i,t),function(){n.explodeStatement(e.get("body"))}),n.jump(i),n.mark(s);break;case"DoWhileStatement":var u=a(),l=a();s=a(),n.mark(u),n.leapManager.withEntry(new y.LoopEntry(s,l,t),function(){n.explode(e.get("body"))}),n.mark(l),n.jumpIf(n.explodeExpression(e.get("test")),u),n.mark(s);break;case"ForStatement":o=a();var f=a();s=a(),r.init&&n.explode(e.get("init"),!0),n.mark(o),r.test&&n.jumpIfNot(n.explodeExpression(e.get("test")),s),n.leapManager.withEntry(new y.LoopEntry(s,f,t),function(){n.explodeStatement(e.get("body"))}),n.mark(f),r.update&&n.explode(e.get("update"),!0),n.jump(o),n.mark(s);break;case"TypeCastExpression":return n.explodeExpression(e.get("expression"));case"ForInStatement":o=a(),s=a();var d=n.makeTempVar();n.emitAssign(d,h.callExpression(E.runtimeProperty("keys"),[n.explodeExpression(e.get("right"))])),n.mark(o);var m=n.makeTempVar();n.jumpIf(h.memberExpression(h.assignmentExpression("=",m,h.callExpression(d,[])),h.identifier("done"),!1),s),n.emitAssign(r.left,h.memberExpression(m,h.identifier("value"),!1)),n.leapManager.withEntry(new y.LoopEntry(s,o,t),function(){n.explodeStatement(e.get("body"))}),n.jump(o),n.mark(s);break;case"BreakStatement":n.emitAbruptCompletion({type:"break",target:n.leapManager.getBreakLoc(r.label)});break;case"ContinueStatement":n.emitAbruptCompletion({type:"continue",target:n.leapManager.getContinueLoc(r.label)});break;case"SwitchStatement":var v=n.emitAssign(n.makeTempVar(),n.explodeExpression(e.get("discriminant")));s=a();for(var b=a(),x=b,A=[],_=r.cases||[],D=_.length-1;D>=0;--D){var C=_[D];h.assertSwitchCase(C),C.test?x=h.conditionalExpression(h.binaryExpression("===",v,C.test),A[D]=a(),x):A[D]=b}var w=e.get("discriminant");E.replaceWithOrRemove(w,x),n.jump(n.explodeExpression(w)),n.leapManager.withEntry(new y.SwitchEntry(s),function(){e.get("cases").forEach(function(e){var t=e.key;n.mark(A[t]),e.get("consequent").forEach(function(e){n.explodeStatement(e)})})}),n.mark(s),-1===b.value&&(n.mark(b),p.default.strictEqual(s.value,b.value));break;case"IfStatement":var P=r.alternate&&a();s=a(),n.jumpIfNot(n.explodeExpression(e.get("test")),P||s),n.explodeStatement(e.get("consequent")),P&&(n.jump(s),n.mark(P),n.explodeStatement(e.get("alternate"))),n.mark(s);break;case"ReturnStatement":n.emitAbruptCompletion({type:"return",value:n.explodeExpression(e.get("argument"))});break;case"WithStatement":throw new Error("WithStatement not supported in generator functions.");case"TryStatement":s=a();var k=r.handler,F=k&&a(),T=F&&new y.CatchEntry(F,k.param),O=r.finalizer&&a(),B=O&&new y.FinallyEntry(O,s),R=new y.TryEntry(n.getUnmarkedCurrentLoc(),T,B);n.tryEntries.push(R),n.updateContextPrevLoc(R.firstLoc),n.leapManager.withEntry(R,function(){if(n.explodeStatement(e.get("block")),F){O?n.jump(O):n.jump(s),n.updateContextPrevLoc(n.mark(F));var t=e.get("handler.body"),r=n.makeTempVar();n.clearPendingException(R.firstLoc,r),t.traverse(S,{safeParam:r,catchParamName:k.param.name}),n.leapManager.withEntry(T,function(){n.explodeStatement(t)})}O&&(n.updateContextPrevLoc(n.mark(O)),n.leapManager.withEntry(B,function(){n.explodeStatement(e.get("finalizer"))}),n.emit(h.returnStatement(h.callExpression(n.contextProperty("finish"),[B.firstLoc]))))}),n.mark(s);break;case"ThrowStatement":n.emit(h.throwStatement(n.explodeExpression(e.get("argument"))));break;default:throw new Error("unknown Statement of type "+(0,c.default)(r.type))}};var S={Identifier:function(e,t){e.node.name===t.catchParamName&&E.isReference(e)&&E.replaceWithOrRemove(e,t.safeParam)},Scope:function(e,t){e.scope.hasOwnBinding(t.catchParamName)&&e.skip()}};A.emitAbruptCompletion=function(e){u(e)||p.default.ok(!1,"invalid completion record: "+(0,c.default)(e)),p.default.notStrictEqual(e.type,"normal","normal completions are not abrupt");var t=[h.stringLiteral(e.type)];"break"===e.type||"continue"===e.type?(h.assertLiteral(e.target),t[1]=e.target):"return"!==e.type&&"throw"!==e.type||e.value&&(h.assertExpression(e.value),t[1]=e.value),this.emit(h.returnStatement(h.callExpression(this.contextProperty("abrupt"),t)))},A.getUnmarkedCurrentLoc=function(){return h.numericLiteral(this.listing.length)},A.updateContextPrevLoc=function(e){e?(h.assertLiteral(e),-1===e.value?e.value=this.listing.length:p.default.strictEqual(e.value,this.listing.length)):e=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty("prev"),e)},A.explodeExpression=function(e,t){function r(e){if(h.assertExpression(e),!t)return e;s.emit(e)}function n(e,t,r){p.default.ok(!r||!e,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var n=s.explodeExpression(t,r);return r||(e||l&&!h.isLiteral(n))&&(n=s.emitAssign(e||s.makeTempVar(),n)),n}var i=e.node;if(!i)return i;h.assertExpression(i);var s=this,o=void 0,u=void 0;if(!g.containsLeap(i))return r(i);var l=g.containsLeap.onlyChildren(i);switch(i.type){case"MemberExpression":return r(h.memberExpression(s.explodeExpression(e.get("object")),i.computed?n(null,e.get("property")):i.property,i.computed));case"CallExpression":var f=e.get("callee"),d=e.get("arguments"),m=void 0,y=[],v=!1;if(d.forEach(function(e){v=v||g.containsLeap(e.node)}),h.isMemberExpression(f.node))if(v){var b=n(s.makeTempVar(),f.get("object")),E=f.node.computed?n(null,f.get("property")):f.node.property;y.unshift(b),m=h.memberExpression(h.memberExpression(b,E,f.node.computed),h.identifier("call"),!1)}else m=s.explodeExpression(f);else m=n(null,f),h.isMemberExpression(m)&&(m=h.sequenceExpression([h.numericLiteral(0),m]));return d.forEach(function(e){y.push(n(null,e))}),r(h.callExpression(m,y));case"NewExpression":return r(h.newExpression(n(null,e.get("callee")),e.get("arguments").map(function(e){return n(null,e)})));case"ObjectExpression":return r(h.objectExpression(e.get("properties").map(function(e){return e.isObjectProperty()?h.objectProperty(e.node.key,n(null,e.get("value")),e.node.computed):e.node})));case"ArrayExpression":return r(h.arrayExpression(e.get("elements").map(function(e){return n(null,e)})));case"SequenceExpression":var x=i.expressions.length-1;return e.get("expressions").forEach(function(e){e.key===x?o=s.explodeExpression(e,t):s.explodeExpression(e,!0)}),o;case"LogicalExpression":u=a(),t||(o=s.makeTempVar());var A=n(o,e.get("left"));return"&&"===i.operator?s.jumpIfNot(A,u):(p.default.strictEqual(i.operator,"||"),s.jumpIf(A,u)),n(o,e.get("right"),t),s.mark(u),o;case"ConditionalExpression":var S=a();u=a();var _=s.explodeExpression(e.get("test"));return s.jumpIfNot(_,S),t||(o=s.makeTempVar()),n(o,e.get("consequent"),t),s.jump(u),s.mark(S),n(o,e.get("alternate"),t),s.mark(u),o;case"UnaryExpression":return r(h.unaryExpression(i.operator,s.explodeExpression(e.get("argument")),!!i.prefix));case"BinaryExpression":return r(h.binaryExpression(i.operator,n(null,e.get("left")),n(null,e.get("right"))));case"AssignmentExpression":return r(h.assignmentExpression(i.operator,s.explodeExpression(e.get("left")),s.explodeExpression(e.get("right"))));case"UpdateExpression":return r(h.updateExpression(i.operator,s.explodeExpression(e.get("argument")),i.prefix));case"YieldExpression":u=a();var D=i.argument&&s.explodeExpression(e.get("argument"));if(D&&i.delegate){var C=s.makeTempVar();return s.emit(h.returnStatement(h.callExpression(s.contextProperty("delegateYield"),[D,h.stringLiteral(C.property.name),u]))),s.mark(u),C}return s.emitAssign(s.contextProperty("next"),u),s.emit(h.returnStatement(D||null)),s.mark(u),s.contextProperty("sent");default:throw new Error("unknown Expression of type "+(0,c.default)(i.type))}}},function(e,t){"use strict";e.exports=function(e){var t=/^\\\\\?\\/.test(e),r=/[^\x00-\x80]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},function(e,t,r){"use strict";function n(){this._array=[],this._set=Object.create(null)}var i=r(63),s=Object.prototype.hasOwnProperty;n.fromArray=function(e,t){for(var r=new n,i=0,s=e.length;i<s;i++)r.add(e[i],t);return r},n.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},n.prototype.add=function(e,t){var r=i.toSetString(e),n=s.call(this._set,r),a=this._array.length;n&&!t||this._array.push(e),n||(this._set[r]=a)},n.prototype.has=function(e){var t=i.toSetString(e);return s.call(this._set,t)},n.prototype.indexOf=function(e){var t=i.toSetString(e);if(s.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},n.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},n.prototype.toArray=function(){return this._array.slice()},t.ArraySet=n},function(e,t,r){"use strict";function n(e){return e<0?1+(-e<<1):0+(e<<1)}function i(e){var t=1==(1&e),r=e>>1;return t?-r:r}var s=r(616);t.encode=function(e){var t,r="",i=n(e);do{t=31&i,i>>>=5,i>0&&(t|=32),r+=s.encode(t)}while(i>0);return r},t.decode=function(e,t,r){var n,a,o=e.length,u=0,l=0;do{if(t>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(a=s.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));n=!!(32&a),a&=31,u+=a<<l,l+=5}while(n);r.value=i(u),r.rest=t}},function(e,t,r){"use strict";function n(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}var i=r(286),s=r(63),a=r(285).ArraySet,o=r(618).MappingList;n.prototype._version=3,n.fromSourceMap=function(e){var t=e.sourceRoot,r=new n({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=s.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)}),e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&r.setSourceContent(t,n)}),r},n.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),r=s.getArg(e,"original",null),n=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},n.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=s.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[s.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},n.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var i=this._sourceRoot;null!=i&&(n=s.relative(i,n));var o=new a,u=new a;this._mappings.unsortedForEach(function(t){if(t.source===n&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=s.join(r,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var l=t.source;null==l||o.has(l)||o.add(l);var c=t.name;null==c||u.has(c)||u.add(c)},this),this._sources=o,this._names=u,e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=s.join(r,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,n))},this)},n.prototype._validateMapping=function(e,t,r,n){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},n.prototype._serializeMappings=function(){for(var e,t,r,n,a=0,o=1,u=0,l=0,c=0,f=0,p="",d=this._mappings.toArray(),h=0,m=d.length;h<m;h++){if(t=d[h],e="",t.generatedLine!==o)for(a=0;t.generatedLine!==o;)e+=";",o++;else if(h>0){if(!s.compareByGeneratedPositionsInflated(t,d[h-1]))continue;e+=","}e+=i.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(n=this._sources.indexOf(t.source),e+=i.encode(n-f),f=n,e+=i.encode(t.originalLine-1-l),l=t.originalLine-1,e+=i.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=i.encode(r-c),c=r)),p+=e}return p},n.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=s.relative(t,e));var r=s.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},n.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},n.prototype.toString=function(){return JSON.stringify(this.toJSON())},t.SourceMapGenerator=n},function(e,t,r){"use strict";t.SourceMapGenerator=r(287).SourceMapGenerator,t.SourceMapConsumer=r(620).SourceMapConsumer,t.SourceNode=r(621).SourceNode},function(e,t,r){(function(e){"use strict";function t(){var e={modifiers:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},colors:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39]},bgColors:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49]}};return e.colors.grey=e.colors.gray,Object.keys(e).forEach(function(t){var r=e[t];Object.keys(r).forEach(function(t){var n=r[t];e[t]=r[t]={open:"["+n[0]+"m",close:"["+n[1]+"m"}}),Object.defineProperty(e,t,{value:r,enumerable:!1})}),e}Object.defineProperty(e,"exports",{enumerable:!0,get:t})}).call(t,r(39)(e))},function(e,t,r){"use strict";e.exports=r(182)},function(e,t){"use strict";function r(e){return["babel-plugin-"+e,e]}t.__esModule=!0,t.default=r,e.exports=t.default},function(e,t){"use strict";function r(e){var t=["babel-preset-"+e,e],r=e.match(/^(@[^\/]+)\/(.+)$/);if(r){var n=r[1],i=r[2];t.push(n+"/babel-preset-"+i)}return t}t.__esModule=!0,t.default=r,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e,t){if(e&&t)return(0,o.default)(e,t,function(e,t){if(t&&Array.isArray(e)){for(var r=t.slice(0),n=e,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;r.indexOf(u)<0&&r.push(u)}return r}})};var a=r(590),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e,t,r){if(e){if("Program"===e.type)return i.file(e,t||[],r||[]);if("File"===e.type)return e}throw new Error("Not a valid ast?")};var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function s(e,t){var r=[],n=g.functionExpression(null,[g.identifier("global")],g.blockStatement(r)),i=g.program([g.expressionStatement(g.callExpression(n,[c.get("selfGlobal")]))]);return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.assignmentExpression("=",g.memberExpression(g.identifier("global"),e),g.objectExpression([])))])),t(r),i}function a(e,t){var r=[];return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.identifier("global"))])),t(r),g.program([b({FACTORY_PARAMETERS:g.identifier("global"),BROWSER_ARGUMENTS:g.assignmentExpression("=",g.memberExpression(g.identifier("root"),e),g.objectExpression([])),COMMON_ARGUMENTS:g.identifier("exports"),AMD_ARGUMENTS:g.arrayExpression([g.stringLiteral("exports")]),FACTORY_BODY:r,UMD_ROOT:g.identifier("this")})])}function o(e,t){var r=[];return r.push(g.variableDeclaration("var",[g.variableDeclarator(e,g.objectExpression([]))])),t(r),r.push(g.expressionStatement(e)),g.program(r)}function u(e,t,r){c.list.forEach(function(n){if(!(r&&r.indexOf(n)<0)){var i=g.identifier(n);e.push(g.expressionStatement(g.assignmentExpression("=",g.memberExpression(t,i),c.get(n))))}})}t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global",r=g.identifier("babelHelpers"),n=function(t){return u(t,r,e)},i=void 0,l={global:s,umd:a,var:o}[t];if(!l)throw new Error(h.get("unsupportedOutputType",t));return i=l(r,n),(0,p.default)(i).code};var l=r(194),c=i(l),f=r(186),p=n(f),d=r(20),h=i(d),m=r(4),y=n(m),v=r(1),g=i(v),b=(0,y.default)('\n  (function (root, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(AMD_ARGUMENTS, factory);\n    } else if (typeof exports === "object") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      factory(BROWSER_ARGUMENTS);\n    }\n  })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n    FACTORY_BODY\n  });\n');e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(65),s=n(i),a=r(594),o=n(a);t.default=new s.default({name:"internal.blockHoist",visitor:{Block:{exit:function(e){for(var t=e.node,r=!1,n=0;n<t.body.length;n++){var i=t.body[n];if(i&&null!=i._blockHoist){r=!0;break}}r&&(t.body=(0,o.default)(t.body,function(e){var t=e&&e._blockHoist;return null==t&&(t=1),!0===t&&(t=2),-1*t}))}}}}),e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return!!e.is("_forceShadow")||t}function s(e,t){var r=e.inShadow(t);if(i(e,r)){var n=e.node._shadowedFunctionLiteral,s=void 0,a=!1,o=e.find(function(t){if(t.parentPath&&t.parentPath.isClassProperty()&&"value"===t.key)return!0;if(e===t)return!1;if((t.isProgram()||t.isFunction())&&(s=s||t),t.isProgram())return a=!0,!0;if(t.isFunction()&&!t.isArrowFunctionExpression()){if(n){if(t===n||t.node===n.node)return!0}else if(!t.is("shadow"))return!0;return a=!0,!1}return!1});if(n&&o.isProgram()&&!n.isProgram()&&(o=e.findParent(function(e){return e.isProgram()||e.isFunction()})),o!==s&&a){var u=o.getData(t);if(u)return e.replaceWith(u);var l=e.scope.generateUidIdentifier(t);o.setData(t,l);var c=o.findParent(function(e){return e.isClass()}),p=!!(c&&c.node&&c.node.superClass);if("this"===t&&o.isMethod({kind:"constructor"})&&p)o.scope.push({id:l}),o.traverse(d,{id:l});else{var h="this"===t?f.thisExpression():f.identifier(t);n&&(h._shadowedFunctionLiteral=n),o.scope.push({id:l,init:h})}return e.replaceWith(l)}}}t.__esModule=!0;var a=r(10),o=n(a),u=r(65),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=(0,o.default)("super this bound"),d={CallExpression:function(e){if(e.get("callee").isSuper()){var t=e.node;t[p]||(t[p]=!0,e.replaceWith(f.assignmentExpression("=",this.id,t)))}}};t.default=new l.default({name:"internal.shadowFunctions",visitor:{ThisExpression:function(e){s(e,"this")},ReferencedIdentifier:function(e){"arguments"===e.node.name&&s(e,"arguments")}}}),e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(294),o=n(a),u=r(65),l=n(u),c=r(50),f=n(c),p=function(){function e(){(0,s.default)(this,e)}return e.prototype.lint=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.code=!1,t.mode="lint",this.transform(e,t)},e.prototype.pretransform=function(e,t){var r=new f.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r})},e.prototype.transform=function(e,t){var r=new f.default(t,this);return r.wrap(e,function(){return r.addCode(e),r.parseCode(e),r.transform()})},e.prototype.analyse=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments[2];return t.code=!1,r&&(t.plugins=t.plugins||[],t.plugins.push(new l.default({visitor:r}))),this.transform(e,t).metadata},e.prototype.transformFromAst=function(e,t,r){e=(0,o.default)(e);var n=new f.default(r,this);return n.wrap(t,function(){return n.addCode(t),n.addAst(e),n.transform()})},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(42),o=n(a),u=r(41),l=n(u),c=r(119),f=n(c),p=r(50),d=(n(p),function(e){function t(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,s.default)(this,t);var a=(0,o.default)(this,e.call(this));return a.plugin=n,a.key=n.key,a.file=r,a.opts=i,a}return(0,l.default)(t,e),t.prototype.addHelper=function(){var e;return(e=this.file).addHelper.apply(e,arguments)},t.prototype.addImport=function(){var e;return(e=this.file).addImport.apply(e,arguments)},t.prototype.getModuleName=function(){var e;return(e=this.file).getModuleName.apply(e,arguments)},t.prototype.buildCodeFrameError=function(){var e;return(e=this.file).buildCodeFrameError.apply(e,arguments)},t}(f.default));t.default=d,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(625),o=n(a),u=/^[ \t]+$/,l=function(){function e(t){(0,s.default)(this,e),this._map=null,this._buf=[],this._last="",this._queue=[],this._position={line:1,column:0},this._sourcePosition={identifierName:null,line:null,column:null,filename:null},this._map=t}return e.prototype.get=function(){this._flush();var e=this._map,t={code:(0,o.default)(this._buf.join("")),map:null,rawMappings:e&&e.getRawMappings()};return e&&Object.defineProperty(t,"map",{configurable:!0,enumerable:!0,get:function(){return this.map=e.get()},set:function(e){Object.defineProperty(this,"map",{value:e,writable:!0})}}),t},e.prototype.append=function(e){this._flush();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._append(e,r,n,s,i)},e.prototype.queue=function(e){if("\n"===e)for(;this._queue.length>0&&u.test(this._queue[0][0]);)this._queue.shift();var t=this._sourcePosition,r=t.line,n=t.column,i=t.filename,s=t.identifierName;this._queue.unshift([e,r,n,s,i])},e.prototype._flush=function(){for(var e=void 0;e=this._queue.pop();)this._append.apply(this,e)},e.prototype._append=function(e,t,r,n,i){this._map&&"\n"!==e[0]&&this._map.mark(this._position.line,this._position.column,t,r,n,i),this._buf.push(e),this._last=e[e.length-1];for(var s=0;s<e.length;s++)"\n"===e[s]?(this._position.line++,this._position.column=0):this._position.column++},e.prototype.removeTrailingNewline=function(){this._queue.length>0&&"\n"===this._queue[0][0]&&this._queue.shift()},e.prototype.removeLastSemicolon=function(){this._queue.length>0&&";"===this._queue[0][0]&&this._queue.shift()},e.prototype.endsWith=function(e){if(1===e.length){var t=void 0;if(this._queue.length>0){var r=this._queue[0][0];t=r[r.length-1]}else t=this._last;return t===e}var n=this._last+this._queue.reduce(function(e,t){return t[0]+e},"");return e.length<=n.length&&n.slice(-e.length)===e},e.prototype.hasContent=function(){return this._queue.length>0||!!this._last},e.prototype.source=function(e,t){if(!e||t){var r=t?t[e]:null;this._sourcePosition.identifierName=t&&t.identifierName||null,this._sourcePosition.line=r?r.line:null,this._sourcePosition.column=r?r.column:null,this._sourcePosition.filename=t&&t.filename||null}},e.prototype.withSource=function(e,t,r){if(!this._map)return r();var n=this._sourcePosition.line,i=this._sourcePosition.column,s=this._sourcePosition.filename,a=this._sourcePosition.identifierName;this.source(e,t),r(),this._sourcePosition.line=n,this._sourcePosition.column=i,this._sourcePosition.filename=s,this._sourcePosition.identifierName=a},e.prototype.getCurrentColumn=function(){var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=e.lastIndexOf("\n");return-1===t?this._position.column+e.length:e.length-1-t},e.prototype.getCurrentLine=function(){for(var e=this._queue.reduce(function(e,t){return t[0]+e},""),t=0,r=0;r<e.length;r++)"\n"===e[r]&&t++;return this._position.line+t},e}();t.default=l,e.exports=t.default},function(e,t,r){"use strict";function n(e){this.print(e.program,e)}function i(e){this.printInnerComments(e,!1),this.printSequence(e.directives,e),e.directives&&e.directives.length&&this.newline(),this.printSequence(e.body,e)}function s(e){this.token("{"),this.printInnerComments(e);var t=e.directives&&e.directives.length;e.body.length||t?(this.newline(),this.printSequence(e.directives,e,{indent:!0}),t&&this.newline(),this.printSequence(e.body,e,{indent:!0}),this.removeTrailingNewline(),this.source("end",e.loc),this.endsWith("\n")||this.newline(),this.rightBrace()):(this.source("end",e.loc),this.token("}"))}function a(){}function o(e){this.print(e.value,e),this.semicolon()}t.__esModule=!0,t.File=n,t.Program=i,t.BlockStatement=s,t.Noop=a,t.Directive=o;var u=r(123);Object.defineProperty(t,"DirectiveLiteral",{enumerable:!0,get:function(){return u.StringLiteral}})},function(e,t){"use strict";function r(e){this.printJoin(e.decorators,e),this.word("class"),e.id&&(this.space(),this.print(e.id,e)),this.print(e.typeParameters,e),e.superClass&&(this.space(),this.word("extends"),this.space(),this.print(e.superClass,e),this.print(e.superTypeParameters,e)),e.implements&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements,e)),this.space(),this.print(e.body,e)}function n(e){this.token("{"),this.printInnerComments(e),0===e.body.length?this.token("}"):(this.newline(),this.indent(),this.printSequence(e.body,e),this.dedent(),this.endsWith("\n")||this.newline(),this.rightBrace())}function i(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),e.computed?(this.token("["),this.print(e.key,e),this.token("]")):(this._variance(e),this.print(e.key,e)),this.print(e.typeAnnotation,e),e.value&&(this.space(),this.token("="),this.space(),this.print(e.value,e)),this.semicolon()}function s(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),"constructorCall"===e.kind&&(this.word("call"),this.space()),this._method(e)}t.__esModule=!0,t.ClassDeclaration=r,t.ClassBody=n,t.ClassProperty=i,t.ClassMethod=s,t.ClassExpression=r},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){"void"===e.operator||"delete"===e.operator||"typeof"===e.operator?(this.word(e.operator),this.space()):this.token(e.operator),this.print(e.argument,e)}function s(e){this.word("do"),this.space(),this.print(e.body,e)}function a(e){this.token("("),this.print(e.expression,e),this.token(")")}function o(e){e.prefix?(this.token(e.operator),this.print(e.argument,e)):(this.print(e.argument,e),this.token(e.operator))}function u(e){this.print(e.test,e),this.space(),this.token("?"),this.space(),this.print(e.consequent,e),this.space(),this.token(":"),this.space(),this.print(e.alternate,e)}function l(e,t){this.word("new"),this.space(),this.print(e.callee,e),(0!==e.arguments.length||!this.format.minified||C.isCallExpression(t,{callee:e})||C.isMemberExpression(t)||C.isNewExpression(t))&&(this.token("("),this.printList(e.arguments,e),this.token(")"))}function c(e){this.printList(e.expressions,e)}function f(){
this.word("this")}function p(){this.word("super")}function d(e){this.token("@"),this.print(e.expression,e),this.newline()}function h(){this.token(","),this.newline(),this.endsWith("\n")||this.space()}function m(e){this.print(e.callee,e),this.token("(");var t=e._prettyCall,r=void 0;t&&(r=h,this.newline(),this.indent()),this.printList(e.arguments,e,{separator:r}),t&&(this.newline(),this.dedent()),this.token(")")}function y(){this.word("import")}function v(e){return function(t){if(this.word(e),t.delegate&&this.token("*"),t.argument){this.space();var r=this.startTerminatorless();this.print(t.argument,t),this.endTerminatorless(r)}}}function g(){this.semicolon(!0)}function b(e){this.print(e.expression,e),this.semicolon()}function E(e){this.print(e.left,e),e.left.optional&&this.token("?"),this.print(e.left.typeAnnotation,e),this.space(),this.token("="),this.space(),this.print(e.right,e)}function x(e,t){var r=this.inForStatementInitCounter&&"in"===e.operator&&!P.needsParens(e,t);r&&this.token("("),this.print(e.left,e),this.space(),"in"===e.operator||"instanceof"===e.operator?this.word(e.operator):this.token(e.operator),this.space(),this.print(e.right,e),r&&this.token(")")}function A(e){this.print(e.object,e),this.token("::"),this.print(e.callee,e)}function S(e){if(this.print(e.object,e),!e.computed&&C.isMemberExpression(e.property))throw new TypeError("Got a MemberExpression for MemberExpression property");var t=e.computed;C.isLiteral(e.property)&&"number"==typeof e.property.value&&(t=!0),t?(this.token("["),this.print(e.property,e),this.token("]")):(this.token("."),this.print(e.property,e))}function _(e){this.print(e.meta,e),this.token("."),this.print(e.property,e)}t.__esModule=!0,t.LogicalExpression=t.BinaryExpression=t.AwaitExpression=t.YieldExpression=void 0,t.UnaryExpression=i,t.DoExpression=s,t.ParenthesizedExpression=a,t.UpdateExpression=o,t.ConditionalExpression=u,t.NewExpression=l,t.SequenceExpression=c,t.ThisExpression=f,t.Super=p,t.Decorator=d,t.CallExpression=m,t.Import=y,t.EmptyStatement=g,t.ExpressionStatement=b,t.AssignmentPattern=E,t.AssignmentExpression=x,t.BindExpression=A,t.MemberExpression=S,t.MetaProperty=_;var D=r(1),C=n(D),w=r(187),P=n(w);t.YieldExpression=v("yield"),t.AwaitExpression=v("await");t.BinaryExpression=x,t.LogicalExpression=x},function(e,t,r){"use strict";function n(){this.word("any")}function i(e){this.print(e.elementType,e),this.token("["),this.token("]")}function s(){this.word("boolean")}function a(e){this.word(e.value?"true":"false")}function o(){this.word("null")}function u(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("class"),this.space(),this._interfaceish(e)}function l(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("function"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation.typeAnnotation,e),this.semicolon()}function c(e){this.word("declare"),this.space(),this.InterfaceDeclaration(e)}function f(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id,e),this.space(),this.print(e.body,e)}function p(e){this.word("declare"),this.space(),this.word("module"),this.token("."),this.word("exports"),this.print(e.typeAnnotation,e)}function d(e){this.word("declare"),this.space(),this.TypeAlias(e)}function h(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.OpaqueType(e)}function m(e,t){Q.isDeclareExportDeclaration(t)||(this.word("declare"),this.space()),this.word("var"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation,e),this.semicolon()}function y(e){this.word("declare"),this.space(),this.word("export"),this.space(),e.default&&(this.word("default"),this.space()),v.apply(this,arguments)}function v(e){if(e.declaration){var t=e.declaration;this.print(t,e),Q.isStatement(t)||this.semicolon()}else this.token("{"),e.specifiers.length&&(this.space(),this.printList(e.specifiers,e),this.space()),this.token("}"),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}function g(){this.token("*")}function b(e,t){this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e),e.rest&&(e.params.length&&(this.token(","),this.space()),this.token("..."),this.print(e.rest,e)),this.token(")"),"ObjectTypeCallProperty"===t.type||"DeclareFunction"===t.type?this.token(":"):(this.space(),this.token("=>")),this.space(),this.print(e.returnType,e)}function E(e){this.print(e.name,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.typeAnnotation,e)}function x(e){this.print(e.id,e),this.print(e.typeParameters,e)}function A(e){this.print(e.id,e),this.print(e.typeParameters,e),e.extends.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends,e)),e.mixins&&e.mixins.length&&(this.space(),this.word("mixins"),this.space(),this.printList(e.mixins,e)),this.space(),this.print(e.body,e)}function S(e){"plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")}function _(e){this.word("interface"),this.space(),this._interfaceish(e)}function D(){this.space(),this.token("&"),this.space()}function C(e){this.printJoin(e.types,e,{separator:D})}function w(){this.word("mixed")}function P(){this.word("empty")}function k(e){this.token("?"),this.print(e.typeAnnotation,e)}function F(){this.word("number")}function T(){this.word("string")}function O(){this.word("this")}function B(e){this.token("["),this.printList(e.types,e),this.token("]")}function R(e){this.word("typeof"),this.space(),this.print(e.argument,e)}function I(e){this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),this.space(),this.token("="),this.space(),this.print(e.right,e),this.semicolon()}function M(e){this.word("opaque"),this.space(),this.word("type"),this.space(),this.print(e.id,e),this.print(e.typeParameters,e),e.supertype&&(this.token(":"),this.space(),this.print(e.supertype,e)),e.impltype&&(this.space(),this.token("="),this.space(),this.print(e.impltype,e)),this.semicolon()}function N(e){this.token(":"),this.space(),e.optional&&this.token("?"),this.print(e.typeAnnotation,e)}function L(e){this._variance(e),this.word(e.name),e.bound&&this.print(e.bound,e),e.default&&(this.space(),this.token("="),this.space(),this.print(e.default,e))}function j(e){this.token("<"),this.printList(e.params,e,{}),this.token(">")}function U(e){var t=this;e.exact?this.token("{|"):this.token("{");var r=e.properties.concat(e.callProperties,e.indexers);r.length&&(this.space(),this.printJoin(r,e,{addNewlines:function(e){if(e&&!r[0])return 1},indent:!0,statement:!0,iterator:function(){1!==r.length&&(t.format.flowCommaSeparator?t.token(","):t.semicolon(),t.space())}}),this.space()),e.exact?this.token("|}"):this.token("}")}function V(e){e.static&&(this.word("static"),this.space()),this.print(e.value,e)}function G(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.token("["),this.print(e.id,e),this.token(":"),this.space(),this.print(e.key,e),this.token("]"),this.token(":"),this.space(),this.print(e.value,e)}function W(e){e.static&&(this.word("static"),this.space()),this._variance(e),this.print(e.key,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.value,e)}function Y(e){this.token("..."),this.print(e.argument,e)}function q(e){this.print(e.qualification,e),this.token("."),this.print(e.id,e)}function K(){this.space(),this.token("|"),this.space()}function H(e){this.printJoin(e.types,e,{separator:K})}function J(e){this.token("("),this.print(e.expression,e),this.print(e.typeAnnotation,e),this.token(")")}function X(){this.word("void")}t.__esModule=!0,t.TypeParameterDeclaration=t.StringLiteralTypeAnnotation=t.NumericLiteralTypeAnnotation=t.GenericTypeAnnotation=t.ClassImplements=void 0,t.AnyTypeAnnotation=n,t.ArrayTypeAnnotation=i,t.BooleanTypeAnnotation=s,t.BooleanLiteralTypeAnnotation=a,t.NullLiteralTypeAnnotation=o,t.DeclareClass=u,t.DeclareFunction=l,t.DeclareInterface=c,t.DeclareModule=f,t.DeclareModuleExports=p,t.DeclareTypeAlias=d,t.DeclareOpaqueType=h,t.DeclareVariable=m,t.DeclareExportDeclaration=y,t.ExistentialTypeParam=g,t.FunctionTypeAnnotation=b,t.FunctionTypeParam=E,t.InterfaceExtends=x,t._interfaceish=A,t._variance=S,t.InterfaceDeclaration=_,t.IntersectionTypeAnnotation=C,t.MixedTypeAnnotation=w,t.EmptyTypeAnnotation=P,t.NullableTypeAnnotation=k;var z=r(123);Object.defineProperty(t,"NumericLiteralTypeAnnotation",{enumerable:!0,get:function(){return z.NumericLiteral}}),Object.defineProperty(t,"StringLiteralTypeAnnotation",{enumerable:!0,get:function(){return z.StringLiteral}}),t.NumberTypeAnnotation=F,t.StringTypeAnnotation=T,t.ThisTypeAnnotation=O,t.TupleTypeAnnotation=B,t.TypeofTypeAnnotation=R,t.TypeAlias=I,t.OpaqueType=M,t.TypeAnnotation=N,t.TypeParameter=L,t.TypeParameterInstantiation=j,t.ObjectTypeAnnotation=U,t.ObjectTypeCallProperty=V,t.ObjectTypeIndexer=G,t.ObjectTypeProperty=W,t.ObjectTypeSpreadProperty=Y,t.QualifiedTypeIdentifier=q,t.UnionTypeAnnotation=H,t.TypeCastExpression=J,t.VoidTypeAnnotation=X;var $=r(1),Q=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}($);t.ClassImplements=x,t.GenericTypeAnnotation=x,t.TypeParameterDeclaration=j},function(e,t,r){"use strict";function n(e){this.print(e.name,e),e.value&&(this.token("="),this.print(e.value,e))}function i(e){this.word(e.name)}function s(e){this.print(e.namespace,e),this.token(":"),this.print(e.name,e)}function a(e){this.print(e.object,e),this.token("."),this.print(e.property,e)}function o(e){this.token("{"),this.token("..."),this.print(e.argument,e),this.token("}")}function u(e){this.token("{"),this.print(e.expression,e),this.token("}")}function l(e){this.token("{"),this.token("..."),this.print(e.expression,e),this.token("}")}function c(e){this.token(e.value)}function f(e){var t=e.openingElement;if(this.print(t,e),!t.selfClosing){this.indent();for(var r=e.children,n=Array.isArray(r),i=0,r=n?r:(0,v.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;this.print(a,e)}this.dedent(),this.print(e.closingElement,e)}}function p(){this.space()}function d(e){this.token("<"),this.print(e.name,e),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,e,{separator:p})),e.selfClosing?(this.space(),this.token("/>")):this.token(">")}function h(e){this.token("</"),this.print(e.name,e),this.token(">")}function m(){}t.__esModule=!0;var y=r(2),v=function(e){return e&&e.__esModule?e:{default:e}}(y);t.JSXAttribute=n,t.JSXIdentifier=i,t.JSXNamespacedName=s,t.JSXMemberExpression=a,t.JSXSpreadAttribute=o,t.JSXExpressionContainer=u,t.JSXSpreadChild=l,t.JSXText=c,t.JSXElement=f,t.JSXOpeningElement=d,t.JSXClosingElement=h,t.JSXEmptyExpression=m},function(e,t,r){"use strict";function n(e){var t=this;this.print(e.typeParameters,e),this.token("("),this.printList(e.params,e,{iterator:function(e){e.optional&&t.token("?"),t.print(e.typeAnnotation,e)}}),this.token(")"),e.returnType&&this.print(e.returnType,e)}function i(e){var t=e.kind,r=e.key;"method"!==t&&"init"!==t||e.generator&&this.token("*"),"get"!==t&&"set"!==t||(this.word(t),this.space()),e.async&&(this.word("async"),this.space()),e.computed?(this.token("["),this.print(r,e),this.token("]")):this.print(r,e),this._params(e),this.space(),this.print(e.body,e)}function s(e){e.async&&(this.word("async"),this.space()),this.word("function"),e.generator&&this.token("*"),e.id?(this.space(),this.print(e.id,e)):this.space(),this._params(e),this.space(),this.print(e.body,e)}function a(e){e.async&&(this.word("async"),this.space());var t=e.params[0];1===e.params.length&&l.isIdentifier(t)&&!o(e,t)?this.print(t,e):this._params(e),this.space(),this.token("=>"),this.space(),this.print(e.body,e)}function o(e,t){return e.typeParameters||e.returnType||t.typeAnnotation||t.optional||t.trailingComments}t.__esModule=!0,t.FunctionDeclaration=void 0,t._params=n,t._method=i,t.FunctionExpression=s,t.ArrowFunctionExpression=a;var u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.FunctionDeclaration=s},function(e,t,r){"use strict";function n(e){"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space()),this.print(e.imported,e),e.local&&e.local.name!==e.imported.name&&(this.space(),this.word("as"),this.space(),this.print(e.local,e))}function i(e){this.print(e.local,e)}function s(e){this.print(e.exported,e)}function a(e){this.print(e.local,e),e.exported&&e.local.name!==e.exported.name&&(this.space(),this.word("as"),this.space(),this.print(e.exported,e))}function o(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.exported,e)}function u(e){this.word("export"),this.space(),this.token("*"),this.space(),this.word("from"),this.space(),this.print(e.source,e),this.semicolon()}function l(){this.word("export"),this.space(),f.apply(this,arguments)}function c(){this.word("export"),this.space(),this.word("default"),this.space(),f.apply(this,arguments)}function f(e){if(e.declaration){var t=e.declaration;this.print(t,e),m.isStatement(t)||this.semicolon()}else{"type"===e.exportKind&&(this.word("type"),this.space());for(var r=e.specifiers.slice(0),n=!1;;){var i=r[0];if(!m.isExportDefaultSpecifier(i)&&!m.isExportNamespaceSpecifier(i))break;n=!0,this.print(r.shift(),e),r.length&&(this.token(","),this.space())}(r.length||!r.length&&!n)&&(this.token("{"),r.length&&(this.space(),this.printList(r,e),this.space()),this.token("}")),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source,e)),this.semicolon()}}function p(e){this.word("import"),this.space(),"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space());var t=e.specifiers.slice(0);if(t&&t.length){for(;;){var r=t[0];if(!m.isImportDefaultSpecifier(r)&&!m.isImportNamespaceSpecifier(r))break;this.print(t.shift(),e),t.length&&(this.token(","),this.space())}t.length&&(this.token("{"),this.space(),this.printList(t,e),this.space(),this.token("}")),this.space(),this.word("from"),this.space()}this.print(e.source,e),this.semicolon()}function d(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.local,e)}t.__esModule=!0,t.ImportSpecifier=n,t.ImportDefaultSpecifier=i,t.ExportDefaultSpecifier=s,t.ExportSpecifier=a,t.ExportNamespaceSpecifier=o,t.ExportAllDeclaration=u,t.ExportNamedDeclaration=l,t.ExportDefaultDeclaration=c,t.ImportDeclaration=p,t.ImportNamespaceSpecifier=d;var h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h)},function(e,t,r){"use strict";function n(e){this.word("with"),this.space(),this.token("("),this.print(e.object,e),this.token(")"),this.printBlock(e)}function i(e){this.word("if"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.space();var t=e.alternate&&S.isIfStatement(s(e.consequent));t&&(this.token("{"),this.newline(),this.indent()),this.printAndIndentOnComments(e.consequent,e),t&&(this.dedent(),this.newline(),this.token("}")),e.alternate&&(this.endsWith("}")&&this.space(),this.word("else"),this.space(),this.printAndIndentOnComments(e.alternate,e))}function s(e){return S.isStatement(e.body)?s(e.body):e}function a(e){this.word("for"),this.space(),this.token("("),this.inForStatementInitCounter++,this.print(e.init,e),this.inForStatementInitCounter--,this.token(";"),e.test&&(this.space(),this.print(e.test,e)),this.token(";"),e.update&&(this.space(),this.print(e.update,e)),this.token(")"),this.printBlock(e)}function o(e){this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.printBlock(e)}function u(e){this.word("do"),this.space(),this.print(e.body,e),this.space(),this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.semicolon()}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"label";return function(r){this.word(e);var n=r[t];if(n){this.space();var i=this.startTerminatorless();this.print(n,r),this.endTerminatorless(i)}this.semicolon()}}function c(e){this.print(e.label,e),this.token(":"),this.space(),this.print(e.body,e)}function f(e){this.word("try"),this.space(),this.print(e.block,e),this.space(),e.handlers?this.print(e.handlers[0],e):this.print(e.handler,e),e.finalizer&&(this.space(),this.word("finally"),this.space(),this.print(e.finalizer,e))}function p(e){this.word("catch"),this.space(),this.token("("),this.print(e.param,e),this.token(")"),this.space(),this.print(e.body,e)}function d(e){this.word("switch"),this.space(),this.token("("),this.print(e.discriminant,e),this.token(")"),this.space(),this.token("{"),this.printSequence(e.cases,e,{indent:!0,addNewlines:function(t,r){if(!t&&e.cases[e.cases.length-1]===r)return-1}}),this.token("}")}function h(e){e.test?(this.word("case"),this.space(),this.print(e.test,e),this.token(":")):(this.word("default"),this.token(":")),e.consequent.length&&(this.newline(),this.printSequence(e.consequent,e,{indent:!0}))}function m(){this.word("debugger"),this.semicolon()}function y(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<4;e++)this.space(!0)}function v(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<6;e++)this.space(!0)}function g(e,t){this.word(e.kind),this.space();var r=!1;if(!S.isFor(t))for(var n=e.declarations,i=Array.isArray(n),s=0,n=i?n:(0,x.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;o.init&&(r=!0)}var u=void 0;r&&(u="const"===e.kind?v:y),this.printList(e.declarations,e,{separator:u}),(!S.isFor(t)||t.left!==e&&t.init!==e)&&this.semicolon()}function b(e){this.print(e.id,e),this.print(e.id.typeAnnotation,e),e.init&&(this.space(),this.token("="),this.space(),this.print(e.init,e))}t.__esModule=!0,t.ThrowStatement=t.BreakStatement=t.ReturnStatement=t.ContinueStatement=t.ForAwaitStatement=t.ForOfStatement=t.ForInStatement=void 0;var E=r(2),x=function(e){return e&&e.__esModule?e:{default:e}}(E);t.WithStatement=n,t.IfStatement=i,t.ForStatement=a,t.WhileStatement=o,t.DoWhileStatement=u,t.LabeledStatement=c,t.TryStatement=f,t.CatchClause=p,t.SwitchStatement=d,t.SwitchCase=h,t.DebuggerStatement=m,t.VariableDeclaration=g,t.VariableDeclarator=b;var A=r(1),S=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(A),_=function(e){return function(t){this.word("for"),this.space(),"await"===e&&(this.word("await"),this.space()),this.token("("),this.print(t.left,t),this.space(),this.word("await"===e?"of":e),this.space(),this.print(t.right,t),this.token(")"),this.printBlock(t)}};t.ForInStatement=_("in"),t.ForOfStatement=_("of"),t.ForAwaitStatement=_("await"),t.ContinueStatement=l("continue"),t.ReturnStatement=l("return","argument"),t.BreakStatement=l("break"),t.ThrowStatement=l("throw","argument")},function(e,t){"use strict";function r(e){this.print(e.tag,e),this.print(e.quasi,e)}function n(e,t){var r=t.quasis[0]===e,n=t.quasis[t.quasis.length-1]===e,i=(r?"`":"}")+e.value.raw+(n?"`":"${");this.token(i)}function i(e){for(var t=e.quasis,r=0;r<t.length;r++)this.print(t[r],e),r+1<t.length&&this.print(e.expressions[r],e)}t.__esModule=!0,t.TaggedTemplateExpression=r,t.TemplateElement=n,t.TemplateLiteral=i},function(e,t,r){"use strict";function n(e,t){return b.isArrayTypeAnnotation(t)}function i(e,t){return b.isMemberExpression(t)&&t.object===e}function s(e,t,r){return v(r,{considerArrow:!0})}function a(e,t,r){return v(r)}function o(e,t){if((b.isCallExpression(t)||b.isNewExpression(t))&&t.callee===e||b.isUnaryLike(t)||b.isMemberExpression(t)&&t.object===e||b.isAwaitExpression(t))return!0;if(b.isBinary(t)){var r=t.operator,n=E[r],i=e.operator,s=E[i];if(n===s&&t.right===e&&!b.isLogicalExpression(t)||n>s)return!0}return!1}function u(e,t){return"in"===e.operator&&(b.isVariableDeclarator(t)||b.isFor(t))}function l(e,t){return!(b.isForStatement(t)||b.isThrowStatement(t)||b.isReturnStatement(t)||b.isIfStatement(t)&&t.test===e||b.isWhileStatement(t)&&t.test===e||b.isForInStatement(t)&&t.right===e||b.isSwitchStatement(t)&&t.discriminant===e||b.isExpressionStatement(t)&&t.expression===e)}function c(e,t){return b.isBinary(t)||b.isUnaryLike(t)||b.isCallExpression(t)||b.isMemberExpression(t)||b.isNewExpression(t)||b.isConditionalExpression(t)&&e===t.test}function f(e,t,r){return v(r,{considerDefaultExports:!0})}function p(e,t){return b.isMemberExpression(t,{object:e})||b.isCallExpression(t,{callee:e})||b.isNewExpression(t,{callee:e})}function d(e,t,r){return v(r,{considerDefaultExports:!0})}function h(e,t){return!!(b.isExportDeclaration(t)||b.isBinaryExpression(t)||b.isLogicalExpression(t)||b.isUnaryExpression(t)||b.isTaggedTemplateExpression(t))||p(e,t)}function m(e,t){return!!(b.isUnaryLike(t)||b.isBinary(t)||b.isConditionalExpression(t,{test:e})||b.isAwaitExpression(t))||p(e,t)}function y(e){return!!b.isObjectPattern(e.left)||m.apply(void 0,arguments)}function v(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.considerArrow,n=void 0!==r&&r,i=t.considerDefaultExports,s=void 0!==i&&i,a=e.length-1,o=e[a];a--;for(var u=e[a];a>0;){if(b.isExpressionStatement(u,{expression:o})||b.isTaggedTemplateExpression(u)||s&&b.isExportDefaultDeclaration(u,{declaration:o})||n&&b.isArrowFunctionExpression(u,{body:o}))return!0;if(!(b.isCallExpression(u,{callee:o})||b.isSequenceExpression(u)&&u.expressions[0]===o||b.isMemberExpression(u,{object:o})||b.isConditional(u,{test:o})||b.isBinary(u,{left:o})||b.isAssignmentExpression(u,{left:o})))return!1;o=u,a--,u=e[a]}return!1}t.__esModule=!0,t.AwaitExpression=t.FunctionTypeAnnotation=void 0,t.NullableTypeAnnotation=n,t.UpdateExpression=i,t.ObjectExpression=s,t.DoExpression=a,t.Binary=o,t.BinaryExpression=u,t.SequenceExpression=l,t.YieldExpression=c,t.ClassExpression=f,t.UnaryLike=p,t.FunctionExpression=d,t.ArrowFunctionExpression=h,t.ConditionalExpression=m,t.AssignmentExpression=y;var g=r(1),b=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(g),E={"||":0,"&&":1,"|":2,"^":3,"&":4,"==":5,"===":5,"!=":5,"!==":5,"<":6,">":6,"<=":6,">=":6,in:6,instanceof:6,">>":7,"<<":7,">>>":7,"+":8,"-":8,"*":9,"/":9,"%":9,"**":10};t.FunctionTypeAnnotation=n,t.AwaitExpression=c},function(e,t,r){"use strict";function n(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return l.isMemberExpression(e)?(n(e.object,t),e.computed&&n(e.property,t)):l.isBinary(e)||l.isAssignmentExpression(e)?(n(e.left,t),n(e.right,t)):l.isCallExpression(e)?(t.hasCall=!0,n(e.callee,t)):l.isFunction(e)?t.hasFunction=!0:l.isIdentifier(e)&&(t.hasHelper=t.hasHelper||i(e.callee)),t}function i(e){return l.isMemberExpression(e)?i(e.object)||i(e.property):l.isIdentifier(e)?"require"===e.name||"_"===e.name[0]:l.isCallExpression(e)?i(e.callee):!(!l.isBinary(e)&&!l.isAssignmentExpression(e))&&(l.isIdentifier(e.left)&&i(e.left)||i(e.right))}function s(e){return l.isLiteral(e)||l.isObjectExpression(e)||l.isArrayExpression(e)||l.isIdentifier(e)||l.isMemberExpression(e)}var a=r(588),o=function(e){return e&&e.__esModule?e:{default:e}}(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);t.nodes={AssignmentExpression:function(e){var t=n(e.right);if(t.hasCall&&t.hasHelper||t.hasFunction)return{before:t.hasFunction,after:!0}},SwitchCase:function(e,t){return{before:e.consequent.length||t.cases[0]===e}},LogicalExpression:function(e){if(l.isFunction(e.left)||l.isFunction(e.right))return{after:!0}},Literal:function(e){if("use strict"===e.value)return{after:!0}},CallExpression:function(e){if(l.isFunction(e.callee)||i(e))return{before:!0,after:!0}},VariableDeclaration:function(e){for(var t=0;t<e.declarations.length;t++){var r=e.declarations[t],a=i(r.id)&&!s(r.init);if(!a){var o=n(r.init);a=i(r.init)&&o.hasCall||o.hasFunction}if(a)return{before:!0,after:!0}}},IfStatement:function(e){if(l.isBlockStatement(e.consequent))return{before:!0,after:!0}}},t.nodes.ObjectProperty=t.nodes.ObjectTypeProperty=t.nodes.ObjectMethod=t.nodes.SpreadProperty=function(e,t){if(t.properties[0]===e)return{before:!0}},t.list={VariableDeclaration:function(e){return(0,o.default)(e.declarations,"init")},ArrayExpression:function(e){return e.elements},ObjectExpression:function(e){return e.properties}},[["Function",!0],["Class",!0],["Loop",!0],["LabeledStatement",!0],["SwitchStatement",!0],["TryStatement",!0]].forEach(function(e){var r=e[0],n=e[1];"boolean"==typeof n&&(n={after:n,before:n}),[r].concat(l.FLIPPED_ALIAS_KEYS[r]||[]).forEach(function(e){t.nodes[e]=function(){return n}})})},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(){this.token(","),this.space()}t.__esModule=!0;var a=r(87),o=i(a),u=r(2),l=i(u),c=r(35),f=i(c),p=r(365),d=i(p),h=r(3),m=i(h),y=r(579),v=i(y),g=r(581),b=i(g),E=r(586),x=i(E),A=r(278),S=i(A),_=r(300),D=i(_),C=r(187),w=n(C),P=r(314),k=i(P),F=r(1),T=n(F),O=/e/i,B=/\.0+$/,R=/^0[box]/,I=function(){function e(t,r,n){(0,m.default)(this,e),this.inForStatementInitCounter=0,this._printStack=[],this._indent=0,this._insideAux=!1,this._printedCommentStarts={},this._parenPushNewlineState=null,this._printAuxAfterOnNextUserNode=!1,this._printedComments=new d.default,this._endsWithInteger=!1,this._endsWithWord=!1,this.format=t||{},this._buf=new D.default(r),this._whitespace=n.length>0?new k.default(n):null}return e.prototype.generate=function(e){return this.print(e),this._maybeAddAuxComment(),this._buf.get()},e.prototype.indent=function(){this.format.compact||this.format.concise||this._indent++},e.prototype.dedent=function(){this.format.compact||this.format.concise||this._indent--},e.prototype.semicolon=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._maybeAddAuxComment(),this._append(";",!e)},e.prototype.rightBrace=function(){this.format.minified&&this._buf.removeLastSemicolon(),this.token("}")},e.prototype.space=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.format.compact||(this._buf.hasContent()&&!this.endsWith(" ")&&!this.endsWith("\n")||e)&&this._space()},e.prototype.word=function(e){this._endsWithWord&&this._space(),this._maybeAddAuxComment(),this._append(e),this._endsWithWord=!0},e.prototype.number=function(e){this.word(e),this._endsWithInteger=(0,x.default)(+e)&&!R.test(e)&&!O.test(e)&&!B.test(e)&&"."!==e[e.length-1]},e.prototype.token=function(e){("--"===e&&this.endsWith("!")||"+"===e[0]&&this.endsWith("+")||"-"===e[0]&&this.endsWith("-")||"."===e[0]&&this._endsWithInteger)&&this._space(),this._maybeAddAuxComment(),this._append(e)},e.prototype.newline=function(e){if(!this.format.retainLines&&!this.format.compact){if(this.format.concise)return void this.space();if(!(this.endsWith("\n\n")||("number"!=typeof e&&(e=1),e=Math.min(2,e),(this.endsWith("{\n")||this.endsWith(":\n"))&&e--,e<=0)))for(var t=0;t<e;t++)this._newline()}},e.prototype.endsWith=function(e){return this._buf.endsWith(e)},e.prototype.removeTrailingNewline=function(){this._buf.removeTrailingNewline()},e.prototype.source=function(e,t){this._catchUp(e,t),this._buf.source(e,t)},e.prototype.withSource=function(e,t,r){this._catchUp(e,t),this._buf.withSource(e,t,r)},e.prototype._space=function(){this._append(" ",!0)},e.prototype._newline=function(){this._append("\n",!0)},e.prototype._append=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this._maybeAddParen(e),this._maybeIndent(e),t?this._buf.queue(e):this._buf.append(e),this._endsWithWord=!1,this._endsWithInteger=!1},e.prototype._maybeIndent=function(e){this._indent&&this.endsWith("\n")&&"\n"!==e[0]&&this._buf.queue(this._getIndent())},e.prototype._maybeAddParen=function(e){var t=this._parenPushNewlineState;if(t){this._parenPushNewlineState=null;var r=void 0;for(r=0;r<e.length&&" "===e[r];r++);if(r!==e.length){var n=e[r];"\n"!==n&&"/"!==n||(this.token("("),this.indent(),t.printed=!0)}}},e.prototype._catchUp=function(e,t){if(this.format.retainLines){var r=t?t[e]:null;if(r&&null!==r.line)for(var n=r.line-this._buf.getCurrentLine(),i=0;i<n;i++)this._newline()}},e.prototype._getIndent=function(){return(0,S.default)(this.format.indent.style,this._indent)},e.prototype.startTerminatorless=function(){return this._parenPushNewlineState={printed:!1}},e.prototype.endTerminatorless=function(e){e.printed&&(this.dedent(),this.newline(),this.token(")"))},e.prototype.print=function(e,t){var r=this;if(e){var n=this.format.concise;e._compact&&(this.format.concise=!0);if(!this[e.type])throw new ReferenceError("unknown node of type "+(0,f.default)(e.type)+" with constructor "+(0,f.default)(e&&e.constructor.name));this._printStack.push(e);var i=this._insideAux;this._insideAux=!e.loc,this._maybeAddAuxComment(this._insideAux&&!i);var s=w.needsParens(e,t,this._printStack);this.format.retainFunctionParens&&"FunctionExpression"===e.type&&e.extra&&e.extra.parenthesized&&(s=!0),s&&this.token("("),this._printLeadingComments(e,t);var a=T.isProgram(e)||T.isFile(e)?null:e.loc;this.withSource("start",a,function(){r[e.type](e,t)}),this._printTrailingComments(e,t),s&&this.token(")"),this._printStack.pop(),this.format.concise=n,this._insideAux=i}},e.prototype._maybeAddAuxComment=function(e){e&&this._printAuxBeforeComment(),this._insideAux||this._printAuxAfterComment()},e.prototype._printAuxBeforeComment=function(){if(!this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!0;var e=this.format.auxiliaryCommentBefore;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype._printAuxAfterComment=function(){if(this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!1;var e=this.format.auxiliaryCommentAfter;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype.getPossibleRaw=function(e){var t=e.extra;if(t&&null!=t.raw&&null!=t.rawValue&&e.value===t.rawValue)return t.raw},e.prototype.printJoin=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e&&e.length){r.indent&&this.indent();for(var n={addNewlines:r.addNewlines},i=0;i<e.length;i++){var s=e[i];s&&(r.statement&&this._printNewline(!0,s,t,n),this.print(s,t),r.iterator&&r.iterator(s,i),r.separator&&i<e.length-1&&r.separator.call(this),r.statement&&this._printNewline(!1,s,t,n))}r.indent&&this.dedent()}},e.prototype.printAndIndentOnComments=function(e,t){var r=!!e.leadingComments;r&&this.indent(),this.print(e,t),r&&this.dedent()},e.prototype.printBlock=function(e){var t=e.body;T.isEmptyStatement(t)||this.space(),this.print(t,e)},e.prototype._printTrailingComments=function(e,t){this._printComments(this._getComments(!1,e,t))},e.prototype._printLeadingComments=function(e,t){this._printComments(this._getComments(!0,e,t))},e.prototype.printInnerComments=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e.innerComments&&(t&&this.indent(),this._printComments(e.innerComments),t&&this.dedent())},e.prototype.printSequence=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.statement=!0,this.printJoin(e,t,r)},e.prototype.printList=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return null==r.separator&&(r.separator=s),this.printJoin(e,t,r)},e.prototype._printNewline=function(e,t,r,n){var i=this;if(!this.format.retainLines&&!this.format.compact){if(this.format.concise)return void this.space();var s=0;if(null!=t.start&&!t._ignoreUserWhitespace&&this._whitespace)if(e){var a=t.leadingComments,o=a&&(0,v.default)(a,function(e){
return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesBefore(o||t)}else{var u=t.trailingComments,l=u&&(0,b.default)(u,function(e){return!!e.loc&&i.format.shouldPrintComment(e.value)});s=this._whitespace.getNewlinesAfter(l||t)}else{e||s++,n.addNewlines&&(s+=n.addNewlines(e,t)||0);var c=w.needsWhitespaceAfter;e&&(c=w.needsWhitespaceBefore),c(t,r)&&s++,this._buf.hasContent()||(s=0)}this.newline(s)}},e.prototype._getComments=function(e,t){return t&&(e?t.leadingComments:t.trailingComments)||[]},e.prototype._printComment=function(e){var t=this;if(this.format.shouldPrintComment(e.value)&&!e.ignore&&!this._printedComments.has(e)){if(this._printedComments.add(e),null!=e.start){if(this._printedCommentStarts[e.start])return;this._printedCommentStarts[e.start]=!0}this.newline(this._whitespace?this._whitespace.getNewlinesBefore(e):0),this.endsWith("[")||this.endsWith("{")||this.space();var r="CommentLine"===e.type?"//"+e.value+"\n":"/*"+e.value+"*/";if("CommentBlock"===e.type&&this.format.indent.adjustMultilineComment){var n=e.loc&&e.loc.start.column;if(n){var i=new RegExp("\\n\\s{1,"+n+"}","g");r=r.replace(i,"\n")}var s=Math.max(this._getIndent().length,this._buf.getCurrentColumn());r=r.replace(/\n(?!$)/g,"\n"+(0,S.default)(" ",s))}this.withSource("start",e.loc,function(){t._append(r)}),this.newline((this._whitespace?this._whitespace.getNewlinesAfter(e):0)+("CommentLine"===e.type?-1:0))}},e.prototype._printComments=function(e){if(e&&e.length)for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,l.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;this._printComment(s)}},e}();t.default=I;for(var M=[r(309),r(303),r(308),r(302),r(306),r(307),r(123),r(304),r(301),r(305)],N=0;N<M.length;N++){var L=M[N];(0,o.default)(I.prototype,L)}e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(14),s=n(i),a=r(11),o=n(a),u=r(3),l=n(u),c=r(288),f=n(c),p=function(){function e(t,r){(0,l.default)(this,e),this._cachedMap=null,this._code=r,this._opts=t,this._rawMappings=[]}return e.prototype.get=function(){if(!this._cachedMap){var e=this._cachedMap=new f.default.SourceMapGenerator({file:this._opts.sourceMapTarget,sourceRoot:this._opts.sourceRoot}),t=this._code;"string"==typeof t?e.setSourceContent(this._opts.sourceFileName,t):"object"===(void 0===t?"undefined":(0,o.default)(t))&&(0,s.default)(t).forEach(function(r){e.setSourceContent(r,t[r])}),this._rawMappings.forEach(e.addMapping,e)}return this._cachedMap.toJSON()},e.prototype.getRawMappings=function(){return this._rawMappings.slice()},e.prototype.mark=function(e,t,r,n,i,s){this._lastGenLine!==e&&null===r||this._lastGenLine===e&&this._lastSourceLine===r&&this._lastSourceColumn===n||(this._cachedMap=null,this._lastGenLine=e,this._lastSourceLine=r,this._lastSourceColumn=n,this._rawMappings.push({name:i||void 0,generated:{line:e,column:t},source:null==r?void 0:s||this._opts.sourceFileName,original:null==r?void 0:{line:r,column:n}}))},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(3),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=function(){function e(t){(0,i.default)(this,e),this.tokens=t,this.used={}}return e.prototype.getNewlinesBefore=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.start-e.start},0,n.length);if(i>=0){for(;i&&e.start===n[i-1].start;)--i;t=n[i-1],r=n[i]}return this._getNewlinesBetween(t,r)},e.prototype.getNewlinesAfter=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.end-e.end},0,n.length);if(i>=0){for(;i&&e.end===n[i-1].end;)--i;t=n[i],r=n[i+1],","===r.type.label&&(r=n[i+2])}return r&&"eof"===r.type.label?1:this._getNewlinesBetween(t,r)},e.prototype._getNewlinesBetween=function(e,t){if(!t||!t.loc)return 0;for(var r=e?e.loc.end.line:1,n=t.loc.start.line,i=0,s=r;s<n;s++)void 0===this.used[s]&&(this.used[s]=!0,i++);return i},e.prototype._findToken=function(e,t,r){if(t>=r)return-1;var n=t+r>>>1,i=e(this.tokens[n]);return i<0?this._findToken(e,n+1,r):i>0?this._findToken(e,t,n):0===i?n:-1},e}();t.default=s,e.exports=t.default},function(e,t,r){"use strict";function n(e){for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,s.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var a=i,u=a.node,l=u.expression;if(o.isMemberExpression(l)){var c=a.scope.maybeGenerateMemoised(l.object),f=void 0,p=[];c?(f=c,p.push(o.assignmentExpression("=",c,l.object))):f=l.object,p.push(o.callExpression(o.memberExpression(o.memberExpression(f,l.property,l.computed),o.identifier("bind")),[f])),1===p.length?u.expression=p[0]:u.expression=o.sequenceExpression(p)}}}t.__esModule=!0;var i=r(2),s=function(e){return e&&e.__esModule?e:{default:e}}(i);t.default=n;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(t){return t&&t.operator===e.operator+"="}function r(e,t){return a.assignmentExpression("=",e,t)}var n={};return n.ExpressionStatement=function(n,s){if(!n.isCompletionRecord()){var o=n.node.expression;if(t(o)){var u=[],l=(0,i.default)(o.left,u,s,n.scope,!0);u.push(a.expressionStatement(r(l.ref,e.build(l.uid,o.right)))),n.replaceWithMultiple(u)}}},n.AssignmentExpression=function(n,s){var a=n.node,o=n.scope;if(t(a)){var u=[],l=(0,i.default)(a.left,u,s,o);u.push(r(l.ref,e.build(l.uid,a.right))),n.replaceWithMultiple(u)}},n.BinaryExpression=function(t){var r=t.node;r.operator===e.operator&&t.replaceWith(e.build(r.left,r.right))},n};var n=r(318),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.scope,r=e.node,n=a.functionExpression(null,[],r.body,r.generator,r.async),s=n,u=[];(0,i.default)(e,function(e){return t.push({id:e})});var l={foundThis:!1,foundArguments:!1};e.traverse(o,l),l.foundArguments&&(s=a.memberExpression(n,a.identifier("apply")),u=[],l.foundThis&&u.push(a.thisExpression()),l.foundArguments&&(l.foundThis||u.push(a.nullLiteral()),u.push(a.identifier("arguments"))));var c=a.callExpression(s,u);return r.generator&&(c=a.yieldExpression(c,!0)),a.returnStatement(c)};var n=r(190),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s),o={enter:function(e,t){e.isThisExpression()&&(t.foundThis=!0),e.isReferencedIdentifier({name:"arguments"})&&(t.foundArguments=!0)},Function:function(e){e.skip()}};e.exports=t.default},function(e,t,r){"use strict";function n(e,t,r,n){var i=void 0;if(a.isSuper(e))return e;if(a.isIdentifier(e)){if(n.hasBinding(e.name))return e;i=e}else{if(!a.isMemberExpression(e))throw new Error("We can't explode this node type "+e.type);if(i=e.object,a.isSuper(i)||a.isIdentifier(i)&&n.hasBinding(i.name))return i}var s=n.generateUidIdentifierBasedOnNode(i);return t.push(a.variableDeclaration("var",[a.variableDeclarator(s,i)])),s}function i(e,t,r,n){var i=e.property,s=a.toComputedKey(e,i);if(a.isLiteral(s)&&a.isPureish(s))return s;var o=n.generateUidIdentifierBasedOnNode(i);return t.push(a.variableDeclaration("var",[a.variableDeclarator(o,i)])),o}t.__esModule=!0,t.default=function(e,t,r,s,o){var u=void 0;u=a.isIdentifier(e)&&o?e:n(e,t,r,s);var l=void 0,c=void 0;if(a.isIdentifier(e))l=e,c=u;else{var f=i(e,t,r,s),p=e.computed||a.isLiteral(f);c=l=a.memberExpression(u,f,p)}return{uid:c,ref:l}};var s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){function t(t){if(t.node&&!t.isPure()){var r=e.scope.generateDeclaredUidIdentifier();n.push(l.assignmentExpression("=",r,t.node)),t.replaceWith(r)}}function r(e){if(Array.isArray(e)&&e.length){e=e.reverse(),(0,o.default)(e);for(var r=e,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=r.length)break;a=r[i++]}else{if(i=r.next(),i.done)break;a=i.value}t(a)}}}e.assertClass();var n=[];t(e.get("superClass")),r(e.get("decorators"));for(var i=e.get("body.body"),a=i,u=Array.isArray(a),c=0,a=u?a:(0,s.default)(a);;){var f;if(u){if(c>=a.length)break;f=a[c++]}else{if(c=a.next(),c.done)break;f=c.value}var p=f;p.is("computed")&&t(p.get("key")),p.has("decorators")&&r(e.get("decorators"))}n&&e.insertBefore(n.map(function(e){return l.expressionStatement(e)}))};var a=r(315),o=n(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.default=function(e,t){var r=e.node,n=e.scope,i=e.parent,a=n.generateUidIdentifier("step"),o=n.generateUidIdentifier("value"),u=r.left,p=void 0;s.isIdentifier(u)||s.isPattern(u)||s.isMemberExpression(u)?p=s.expressionStatement(s.assignmentExpression("=",u,o)):s.isVariableDeclaration(u)&&(p=s.variableDeclaration(u.kind,[s.variableDeclarator(u.declarations[0].id,o)]));var d=c();(0,l.default)(d,f,null,{ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:n.generateUidIdentifier("iterator"),GET_ITERATOR:t.getAsyncIterator,OBJECT:r.right,STEP_VALUE:o,STEP_KEY:a,AWAIT:t.wrapAwait}),d=d.body.body;var h=s.isLabeledStatement(i),m=d[3].block.body,y=m[0];return h&&(m[0]=s.labeledStatement(i.label,y)),{replaceParent:h,node:d,declar:p,loop:y}};var i=r(1),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(i),a=r(4),o=n(a),u=r(7),l=n(u),c=(0,o.default)("\n  function* wrapper() {\n    var ITERATOR_COMPLETION = true;\n    var ITERATOR_HAD_ERROR_KEY = false;\n    var ITERATOR_ERROR_KEY = undefined;\n    try {\n      for (\n        var ITERATOR_KEY = GET_ITERATOR(OBJECT), STEP_KEY, STEP_VALUE;\n        (\n          STEP_KEY = yield AWAIT(ITERATOR_KEY.next()),\n          ITERATOR_COMPLETION = STEP_KEY.done,\n          STEP_VALUE = yield AWAIT(STEP_KEY.value),\n          !ITERATOR_COMPLETION\n        );\n        ITERATOR_COMPLETION = true) {\n      }\n    } catch (err) {\n      ITERATOR_HAD_ERROR_KEY = true;\n      ITERATOR_ERROR_KEY = err;\n    } finally {\n      try {\n        if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n          yield AWAIT(ITERATOR_KEY.return());\n        }\n      } finally {\n        if (ITERATOR_HAD_ERROR_KEY) {\n          throw ITERATOR_ERROR_KEY;\n        }\n      }\n    }\n  }\n"),f={noScope:!0,Identifier:function(e,t){e.node.name in t&&e.replaceInline(t[e.node.name])},CallExpression:function(e,t){var r=e.node.callee;s.isIdentifier(r)&&"AWAIT"===r.name&&!t.AWAIT&&e.replaceWith(e.node.arguments[0])}};e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(4),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s={};t.default=s,s.typeof=(0,i.default)('\n  (typeof Symbol === "function" && typeof Symbol.iterator === "symbol")\n    ? function (obj) { return typeof obj; }\n    : function (obj) {\n        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype\n          ? "symbol"\n          : typeof obj;\n      };\n'),s.jsx=(0,i.default)('\n  (function () {\n    var REACT_ELEMENT_TYPE = (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7;\n\n    return function createRawReactElement (type, props, key, children) {\n      var defaultProps = type && type.defaultProps;\n      var childrenLength = arguments.length - 3;\n\n      if (!props && childrenLength !== 0) {\n        // If we\'re going to assign props.children, we create a new object now\n        // to avoid mutating defaultProps.\n        props = {};\n      }\n      if (props && defaultProps) {\n        for (var propName in defaultProps) {\n          if (props[propName] === void 0) {\n            props[propName] = defaultProps[propName];\n          }\n        }\n      } else if (!props) {\n        props = defaultProps || {};\n      }\n\n      if (childrenLength === 1) {\n        props.children = children;\n      } else if (childrenLength > 1) {\n        var childArray = Array(childrenLength);\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 3];\n        }\n        props.children = childArray;\n      }\n\n      return {\n        $$typeof: REACT_ELEMENT_TYPE,\n        type: type,\n        key: key === undefined ? null : \'\' + key,\n        ref: null,\n        props: props,\n        _owner: null,\n      };\n    };\n\n  })()\n'),s.asyncIterator=(0,i.default)('\n  (function (iterable) {\n    if (typeof Symbol === "function") {\n      if (Symbol.asyncIterator) {\n        var method = iterable[Symbol.asyncIterator];\n        if (method != null) return method.call(iterable);\n      }\n      if (Symbol.iterator) {\n        return iterable[Symbol.iterator]();\n      }\n    }\n    throw new TypeError("Object is not async iterable");\n  })\n'),s.asyncGenerator=(0,i.default)('\n  (function () {\n    function AwaitValue(value) {\n      this.value = value;\n    }\n\n    function AsyncGenerator(gen) {\n      var front, back;\n\n      function send(key, arg) {\n        return new Promise(function (resolve, reject) {\n          var request = {\n            key: key,\n            arg: arg,\n            resolve: resolve,\n            reject: reject,\n            next: null\n          };\n\n          if (back) {\n            back = back.next = request;\n          } else {\n            front = back = request;\n            resume(key, arg);\n          }\n        });\n      }\n\n      function resume(key, arg) {\n        try {\n          var result = gen[key](arg)\n          var value = result.value;\n          if (value instanceof AwaitValue) {\n            Promise.resolve(value.value).then(\n              function (arg) { resume("next", arg); },\n              function (arg) { resume("throw", arg); });\n          } else {\n            settle(result.done ? "return" : "normal", result.value);\n          }\n        } catch (err) {\n          settle("throw", err);\n        }\n      }\n\n      function settle(type, value) {\n        switch (type) {\n          case "return":\n            front.resolve({ value: value, done: true });\n            break;\n          case "throw":\n            front.reject(value);\n            break;\n          default:\n            front.resolve({ value: value, done: false });\n            break;\n        }\n\n        front = front.next;\n        if (front) {\n          resume(front.key, front.arg);\n        } else {\n          back = null;\n        }\n      }\n\n      this._invoke = send;\n\n      // Hide "return" method if generator return is not supported\n      if (typeof gen.return !== "function") {\n        this.return = undefined;\n      }\n    }\n\n    if (typeof Symbol === "function" && Symbol.asyncIterator) {\n      AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; };\n    }\n\n    AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };\n    AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };\n    AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };\n\n    return {\n      wrap: function (fn) {\n        return function () {\n          return new AsyncGenerator(fn.apply(this, arguments));\n        };\n      },\n      await: function (value) {\n        return new AwaitValue(value);\n      }\n    };\n\n  })()\n'),s.asyncGeneratorDelegate=(0,i.default)('\n  (function (inner, awaitWrap) {\n    var iter = {}, waiting = false;\n\n    function pump(key, value) {\n      waiting = true;\n      value = new Promise(function (resolve) { resolve(inner[key](value)); });\n      return { done: false, value: awaitWrap(value) };\n    };\n\n    if (typeof Symbol === "function" && Symbol.iterator) {\n      iter[Symbol.iterator] = function () { return this; };\n    }\n\n    iter.next = function (value) {\n      if (waiting) {\n        waiting = false;\n        return value;\n      }\n      return pump("next", value);\n    };\n\n    if (typeof inner.throw === "function") {\n      iter.throw = function (value) {\n        if (waiting) {\n          waiting = false;\n          throw value;\n        }\n        return pump("throw", value);\n      };\n    }\n\n    if (typeof inner.return === "function") {\n      iter.return = function (value) {\n        return pump("return", value);\n      };\n    }\n\n    return iter;\n  })\n'),s.asyncToGenerator=(0,i.default)('\n  (function (fn) {\n    return function () {\n      var gen = fn.apply(this, arguments);\n      return new Promise(function (resolve, reject) {\n        function step(key, arg) {\n          try {\n            var info = gen[key](arg);\n            var value = info.value;\n          } catch (error) {\n            reject(error);\n            return;\n          }\n\n          if (info.done) {\n            resolve(value);\n          } else {\n            return Promise.resolve(value).then(function (value) {\n              step("next", value);\n            }, function (err) {\n              step("throw", err);\n            });\n          }\n        }\n\n        return step("next");\n      });\n    };\n  })\n'),s.classCallCheck=(0,i.default)('\n  (function (instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError("Cannot call a class as a function");\n    }\n  });\n'),s.createClass=(0,i.default)('\n  (function() {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i ++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ("value" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  })()\n'),s.defineEnumerableProperties=(0,i.default)('\n  (function (obj, descs) {\n    for (var key in descs) {\n      var desc = descs[key];\n      desc.configurable = desc.enumerable = true;\n      if ("value" in desc) desc.writable = true;\n      Object.defineProperty(obj, key, desc);\n    }\n    return obj;\n  })\n'),s.defaults=(0,i.default)("\n  (function (obj, defaults) {\n    var keys = Object.getOwnPropertyNames(defaults);\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      var value = Object.getOwnPropertyDescriptor(defaults, key);\n      if (value && value.configurable && obj[key] === undefined) {\n        Object.defineProperty(obj, key, value);\n      }\n    }\n    return obj;\n  })\n"),s.defineProperty=(0,i.default)("\n  (function (obj, key, value) {\n    // Shortcircuit the slow defineProperty path when possible.\n    // We are trying to avoid issues where setters defined on the\n    // prototype cause side effects under the fast path of simple\n    // assignment. By checking for existence of the property with\n    // the in operator, we can optimize most of this overhead away.\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n    return obj;\n  });\n"),s.extends=(0,i.default)("\n  Object.assign || (function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  })\n"),s.get=(0,i.default)('\n  (function get(object, property, receiver) {\n    if (object === null) object = Function.prototype;\n\n    var desc = Object.getOwnPropertyDescriptor(object, property);\n\n    if (desc === undefined) {\n      var parent = Object.getPrototypeOf(object);\n\n      if (parent === null) {\n        return undefined;\n      } else {\n        return get(parent, property, receiver);\n      }\n    } else if ("value" in desc) {\n      return desc.value;\n    } else {\n      var getter = desc.get;\n\n      if (getter === undefined) {\n        return undefined;\n      }\n\n      return getter.call(receiver);\n    }\n  });\n'),s.inherits=(0,i.default)('\n  (function (subClass, superClass) {\n    if (typeof superClass !== "function" && superClass !== null) {\n      throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);\n    }\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n  })\n'),s.instanceof=(0,i.default)('\n  (function (left, right) {\n    if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {\n      return right[Symbol.hasInstance](left);\n    } else {\n      return left instanceof right;\n    }\n  });\n'),s.interopRequireDefault=(0,i.default)("\n  (function (obj) {\n    return obj && obj.__esModule ? obj : { default: obj };\n  })\n"),s.interopRequireWildcard=(0,i.default)("\n  (function (obj) {\n    if (obj && obj.__esModule) {\n      return obj;\n    } else {\n      var newObj = {};\n      if (obj != null) {\n        for (var key in obj) {\n          if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n        }\n      }\n      newObj.default = obj;\n      return newObj;\n    }\n  })\n"),s.newArrowCheck=(0,i.default)('\n  (function (innerThis, boundThis) {\n    if (innerThis !== boundThis) {\n      throw new TypeError("Cannot instantiate an arrow function");\n    }\n  });\n'),s.objectDestructuringEmpty=(0,i.default)('\n  (function (obj) {\n    if (obj == null) throw new TypeError("Cannot destructure undefined");\n  });\n'),s.objectWithoutProperties=(0,i.default)("\n  (function (obj, keys) {\n    var target = {};\n    for (var i in obj) {\n      if (keys.indexOf(i) >= 0) continue;\n      if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n      target[i] = obj[i];\n    }\n    return target;\n  })\n"),s.possibleConstructorReturn=(0,i.default)('\n  (function (self, call) {\n    if (!self) {\n      throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n    }\n    return call && (typeof call === "object" || typeof call === "function") ? call : self;\n  });\n'),s.selfGlobal=(0,i.default)('\n  typeof global === "undefined" ? self : global\n'),s.set=(0,i.default)('\n  (function set(object, property, value, receiver) {\n    var desc = Object.getOwnPropertyDescriptor(object, property);\n\n    if (desc === undefined) {\n      var parent = Object.getPrototypeOf(object);\n\n      if (parent !== null) {\n        set(parent, property, value, receiver);\n      }\n    } else if ("value" in desc && desc.writable) {\n      desc.value = value;\n    } else {\n      var setter = desc.set;\n\n      if (setter !== undefined) {\n        setter.call(receiver, value);\n      }\n    }\n\n    return value;\n  });\n'),s.slicedToArray=(0,i.default)('\n  (function () {\n    // Broken out into a separate function to avoid deoptimizations due to the try/catch for the\n    // array iterator case.\n    function sliceIterator(arr, i) {\n      // this is an expanded form of `for...of` that properly supports abrupt completions of\n      // iterators etc. variable names have been minimised to reduce the size of this massive\n      // helper. sometimes spec compliancy is annoying :(\n      //\n      // _n = _iteratorNormalCompletion\n      // _d = _didIteratorError\n      // _e = _iteratorError\n      // _i = _iterator\n      // _s = _step\n\n      var _arr = [];\n      var _n = true;\n      var _d = false;\n      var _e = undefined;\n      try {\n        for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n          _arr.push(_s.value);\n          if (i && _arr.length === i) break;\n        }\n      } catch (err) {\n        _d = true;\n        _e = err;\n      } finally {\n        try {\n          if (!_n && _i["return"]) _i["return"]();\n        } finally {\n          if (_d) throw _e;\n        }\n      }\n      return _arr;\n    }\n\n    return function (arr, i) {\n      if (Array.isArray(arr)) {\n        return arr;\n      } else if (Symbol.iterator in Object(arr)) {\n        return sliceIterator(arr, i);\n      } else {\n        throw new TypeError("Invalid attempt to destructure non-iterable instance");\n      }\n    };\n  })();\n'),s.slicedToArrayLoose=(0,i.default)('\n  (function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if (Symbol.iterator in Object(arr)) {\n      var _arr = [];\n      for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n        _arr.push(_step.value);\n        if (i && _arr.length === i) break;\n      }\n      return _arr;\n    } else {\n      throw new TypeError("Invalid attempt to destructure non-iterable instance");\n    }\n  });\n'),s.taggedTemplateLiteral=(0,i.default)("\n  (function (strings, raw) {\n    return Object.freeze(Object.defineProperties(strings, {\n        raw: { value: Object.freeze(raw) }\n    }));\n  });\n"),s.taggedTemplateLiteralLoose=(0,i.default)("\n  (function (strings, raw) {\n    strings.raw = raw;\n    return strings;\n  });\n"),s.temporalRef=(0,i.default)('\n  (function (val, name, undef) {\n    if (val === undef) {\n      throw new ReferenceError(name + " is not defined - temporal dead zone");\n    } else {\n      return val;\n    }\n  })\n'),s.temporalUndefined=(0,i.default)("\n  ({})\n"),s.toArray=(0,i.default)("\n  (function (arr) {\n    return Array.isArray(arr) ? arr : Array.from(arr);\n  });\n"),s.toConsumableArray=(0,i.default)("\n  (function (arr) {\n    if (Array.isArray(arr)) {\n      for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n      return arr2;\n    } else {\n      return Array.from(arr);\n    }\n  });\n"),e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{pre:function(e){e.set("helpersNamespace",t.identifier("babelHelpers"))}}},e.exports=t.default},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(89);e.exports=function(e){var t=e.types,r={};return{visitor:{Identifier:function(e,s){if("MemberExpression"!==e.parent.type&&"ClassMethod"!==e.parent.type&&!e.isPure()&&s.opts.hasOwnProperty(e.node.name)){var a=s.opts[e.node.name];void 0!==a&&null!==a||(a=t.identifier(String(a)));var o=void 0===a?"undefined":n(a);"string"===o||"boolean"===o?a={type:o,replacement:a}:t.isNode(a)?a={type:"node",replacement:a}:"object"===o&&"node"===a.type&&"string"==typeof a.replacement&&(a.replacement=r[a.replacement]?r[a.replacement]:i.parseExpression(a.replacement));var u=a.replacement;switch(a.type){case"boolean":e.replaceWith(t.booleanLiteral(u));break;case"node":t.isNode(u)&&e.replaceWith(u);break;default:var l=String(u);e.replaceWith(t.stringLiteral(l))}}}}}}},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("dynamicImport")}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("functionSent")}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67)}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types,n={Function:function(e){e.skip()},YieldExpression:function(e,r){var n=e.node;if(n.delegate){var i=r.addHelper("asyncGeneratorDelegate");n.argument=t.callExpression(i,[t.callExpression(r.addHelper("asyncIterator"),[n.argument]),t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("await"))])}}};return{inherits:r(195),visitor:{Function:function(e,r){e.node.async&&e.node.generator&&(e.traverse(n,r),(0,i.default)(e,r.file,{wrapAsync:t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("wrap")),wrapAwait:t.memberExpression(r.addHelper("asyncGenerator"),t.identifier("await"))}))}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return{inherits:r(67),visitor:{Function:function(e,t){e.node.async&&!e.node.generator&&(0,i.default)(e,t.file,{wrapAsync:t.addImport(t.opts.module,t.opts.method)})}}}};var n=r(124),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){function t(e,t){if(!t.applyDecoratedDescriptor){t.applyDecoratedDescriptor=e.scope.generateUidIdentifier("applyDecoratedDescriptor");var r=f({NAME:t.applyDecoratedDescriptor});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.applyDecoratedDescriptor}function n(e,t){if(!t.initializerDefineProp){t.initializerDefineProp=e.scope.generateUidIdentifier("initDefineProp");var r=c({NAME:t.initializerDefineProp});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.initializerDefineProp}function i(e,t){if(!t.initializerWarningHelper){t.initializerWarningHelper=e.scope.generateUidIdentifier("initializerWarningHelper");var r=l({NAME:t.initializerWarningHelper});e.scope.getProgramParent().path.unshiftContainer("body",r)}return t.initializerWarningHelper}function p(e){var t=(e.isClass()?[e].concat(e.get("body.body")):e.get("properties")).reduce(function(e,t){return e.concat(t.node.decorators||[])},[]),r=t.filter(function(e){return!v.isIdentifier(e.expression)});if(0!==r.length)return v.sequenceExpression(r.map(function(t){var r=t.expression,n=t.expression=e.scope.generateDeclaredUidIdentifier("dec");return v.assignmentExpression("=",n,r)}).concat([e.node]))}function d(e,t){var r=e.node.decorators||[];if(e.node.decorators=null,0!==r.length){var n=e.scope.generateDeclaredUidIdentifier("class");return r.map(function(e){return e.expression}).reverse().reduce(function(e,t){return s({CLASS_REF:n,DECORATOR:t,INNER:e}).expression},e.node)}}function h(e,t){if(e.node.body.body.some(function(e){return(e.decorators||[]).length>0}))return y(e,t,e.node.body.body)}function m(e,t){if(e.node.properties.some(function(e){return(e.decorators||[]).length>0}))return y(e,t,e.node.properties)}function y(e,r,n){var s=(e.scope.generateDeclaredUidIdentifier("desc"),e.scope.generateDeclaredUidIdentifier("value"),
e.scope.generateDeclaredUidIdentifier(e.isClass()?"class":"obj")),l=n.reduce(function(n,l){var c=l.decorators||[];if(l.decorators=null,0===c.length)return n;if(l.computed)throw e.buildCodeFrameError("Computed method/property decorators are not yet supported.");var f=v.isLiteral(l.key)?l.key:v.stringLiteral(l.key.name),p=e.isClass()&&!l.static?a({CLASS_REF:s}).expression:s;if(v.isClassProperty(l,{static:!1})){var d=e.scope.generateDeclaredUidIdentifier("descriptor"),h=l.value?v.functionExpression(null,[],v.blockStatement([v.returnStatement(l.value)])):v.nullLiteral();l.value=v.callExpression(i(e,r),[d,v.thisExpression()]),n=n.concat([v.assignmentExpression("=",d,v.callExpression(t(e,r),[p,f,v.arrayExpression(c.map(function(e){return e.expression})),v.objectExpression([v.objectProperty(v.identifier("enumerable"),v.booleanLiteral(!0)),v.objectProperty(v.identifier("initializer"),h)])]))])}else n=n.concat(v.callExpression(t(e,r),[p,f,v.arrayExpression(c.map(function(e){return e.expression})),v.isObjectProperty(l)||v.isClassProperty(l,{static:!0})?u({TEMP:e.scope.generateDeclaredUidIdentifier("init"),TARGET:p,PROPERTY:f}).expression:o({TARGET:p,PROPERTY:f}).expression,p]));return n},[]);return v.sequenceExpression([v.assignmentExpression("=",s,e.node),v.sequenceExpression(l),s])}var v=e.types;return{inherits:r(125),visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var t=e.node,r=t.declaration.id||e.scope.generateUidIdentifier("default");t.declaration.id=r,e.replaceWith(t.declaration),e.insertAfter(v.exportNamedDeclaration(null,[v.exportSpecifier(r,v.identifier("default"))]))}},ClassDeclaration:function(e){var t=e.node,r=t.id||e.scope.generateUidIdentifier("class");e.replaceWith(v.variableDeclaration("let",[v.variableDeclarator(r,v.toExpression(t))]))},ClassExpression:function(e,t){var r=p(e)||d(e,t)||h(e,t);r&&e.replaceWith(r)},ObjectExpression:function(e,t){var r=p(e)||m(e,t);r&&e.replaceWith(r)},AssignmentExpression:function(e,t){t.initializerWarningHelper&&e.get("left").isMemberExpression()&&e.get("left.property").isIdentifier()&&e.get("right").isCallExpression()&&e.get("right.callee").isIdentifier({name:t.initializerWarningHelper.name})&&e.replaceWith(v.callExpression(n(e,t),[e.get("left.object").node,v.stringLiteral(e.get("left.property").node.name),e.get("right.arguments")[0].node,e.get("right.arguments")[1].node]))}}}};var n=r(4),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=(0,i.default)("\n  DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n"),a=(0,i.default)("\n  CLASS_REF.prototype;\n"),o=(0,i.default)("\n    Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n"),u=(0,i.default)("\n    (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n        enumerable: true,\n        configurable: true,\n        writable: true,\n        initializer: function(){\n            return TEMP;\n        }\n    })\n"),l=(0,i.default)("\n    function NAME(descriptor, context){\n        throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.');\n    }\n"),c=(0,i.default)("\n    function NAME(target, property, descriptor, context){\n        if (!descriptor) return;\n\n        Object.defineProperty(target, property, {\n            enumerable: descriptor.enumerable,\n            configurable: descriptor.configurable,\n            writable: descriptor.writable,\n            value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,\n        });\n    }\n"),f=(0,i.default)("\n    function NAME(target, property, decorators, descriptor, context){\n        var desc = {};\n        Object['ke' + 'ys'](descriptor).forEach(function(key){\n            desc[key] = descriptor[key];\n        });\n        desc.enumerable = !!desc.enumerable;\n        desc.configurable = !!desc.configurable;\n        if ('value' in desc || desc.initializer){\n            desc.writable = true;\n        }\n\n        desc = decorators.slice().reverse().reduce(function(desc, decorator){\n            return decorator(target, property, desc) || desc;\n        }, desc);\n\n        if (context && desc.initializer !== void 0){\n            desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n            desc.initializer = undefined;\n        }\n\n        if (desc.initializer === void 0){\n            // This is a hack to avoid this being processed by 'transform-runtime'.\n            // See issue #9.\n            Object['define' + 'Property'](target, property, desc);\n            desc = null;\n        }\n\n        return desc;\n    }\n")},function(e,t,r){"use strict";function n(e,t){var r=t._guessExecutionStatusRelativeTo(e);return"before"===r?"inside":"after"===r?"outside":"maybe"}function i(e,t){return o.callExpression(t.addHelper("temporalRef"),[e,o.stringLiteral(e.name),t.addHelper("temporalUndefined")])}function s(e,t,r){var n=r.letReferences[e.name];return!!n&&t.getBindingIdentifier(e.name)===n}t.__esModule=!0,t.visitor=void 0;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);t.visitor={ReferencedIdentifier:function(e,t){if(this.file.opts.tdz){var r=e.node,a=e.parent,u=e.scope;if(!e.parentPath.isFor({left:r})&&s(r,u,t)){var l=u.getBinding(r.name).path,c=n(e,l);if("inside"!==c)if("maybe"===c){var f=i(r,t.file);if(l.parent._tdzThis=!0,e.skip(),e.parentPath.isUpdateExpression()){if(a._ignoreBlockScopingTDZ)return;e.parentPath.replaceWith(o.sequenceExpression([f,a]))}else e.replaceWith(f)}else"outside"===c&&e.replaceWith(o.throwStatement(o.inherits(o.newExpression(o.identifier("ReferenceError"),[o.stringLiteral(r.name+" is not defined - temporal dead zone")]),r)))}}},AssignmentExpression:{exit:function(e,t){if(this.file.opts.tdz){var r=e.node;if(!r._ignoreBlockScopingTDZ){var n=[],a=e.getBindingIdentifiers();for(var u in a){var l=a[u];s(l,e.scope,t)&&n.push(i(l,t.file))}n.length&&(r._ignoreBlockScopingTDZ=!0,n.push(r),e.replaceWithMultiple(n.map(o.expressionStatement)))}}}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(42),o=n(a),u=r(41),l=n(u),c=r(40),f=n(c),p=r(207),d=n(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=function(e){function t(){(0,s.default)(this,t);var r=(0,o.default)(this,e.apply(this,arguments));return r.isLoose=!0,r}return(0,l.default)(t,e),t.prototype._processMethod=function(e,t){if(!e.decorators){var r=this.classRef;e.static||(r=m.memberExpression(r,m.identifier("prototype")));var n=m.memberExpression(r,e.key,e.computed||m.isLiteral(e.key)),i=m.functionExpression(null,e.params,e.body,e.generator,e.async);i.returnType=e.returnType;var s=m.toComputedKey(e,e.key);m.isStringLiteral(s)&&(i=(0,f.default)({node:i,id:s,scope:t}));var a=m.expressionStatement(m.assignmentExpression("=",n,i));return m.inheritsComments(a,e),this.body.push(a),!0}},t}(d.default);t.default=y,e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{BinaryExpression:function(e){var r=e.node;"instanceof"===r.operator&&e.replaceWith(t.callExpression(this.addHelper("instanceof"),[r.left,r.right]))}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){for(var t=e.params,r=Array.isArray(t),n=0,t=r?t:(0,o.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(!m.isIdentifier(s))return!0}return!1}function s(e,t){if(!e.hasOwnBinding(t.name))return!0;var r=e.getOwnBinding(t.name),n=r.kind;return"param"===n||"local"===n}t.__esModule=!0,t.visitor=void 0;var a=r(2),o=n(a),u=r(189),l=n(u),c=r(317),f=n(c),p=r(4),d=n(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=(0,d.default)("\n  let VARIABLE_NAME =\n    ARGUMENTS.length > ARGUMENT_KEY && ARGUMENTS[ARGUMENT_KEY] !== undefined ?\n      ARGUMENTS[ARGUMENT_KEY]\n    :\n      DEFAULT_VALUE;\n"),v=(0,d.default)("\n  let $0 = $1[$2];\n"),g={ReferencedIdentifier:function(e,t){var r=e.scope,n=e.node;"eval"!==n.name&&s(r,n)||(t.iife=!0,e.stop())},Scope:function(e){e.skip()}};t.visitor={Function:function(e){var t=e.node,r=e.scope;if(i(t)){e.ensureBlock();var n={iife:!1,scope:r},a=[],o=m.identifier("arguments");o._shadowedFunctionLiteral=e;for(var u=(0,l.default)(t),c=e.get("params"),p=0;p<c.length;p++){var d=c[p];if(d.isAssignmentPattern()){var h=d.get("left"),b=d.get("right");if(p>=u||h.isPattern()){var E=r.generateUidIdentifier("x");E._isDefaultPlaceholder=!0,t.params[p]=E}else t.params[p]=h.node;n.iife||(b.isIdentifier()&&!s(r,b.node)?n.iife=!0:b.traverse(g,n)),function(e,r,n){var i=y({VARIABLE_NAME:e,DEFAULT_VALUE:r,ARGUMENT_KEY:m.numericLiteral(n),ARGUMENTS:o});i._blockHoist=t.params.length-n,a.push(i)}(h.node,b.node,p)}else n.iife||d.isIdentifier()||d.traverse(g,n)}for(var x=u+1;x<t.params.length;x++){var A=t.params[x];if(!A._isDefaultPlaceholder){var S=v(A,o,m.numericLiteral(x));S._blockHoist=t.params.length-x,a.push(S)}}t.params=t.params.slice(0,u),n.iife?(a.push((0,f.default)(e,r)),e.set("body",m.blockStatement(a))):e.get("body").unshiftContainer("body",a)}}}},function(e,t,r){"use strict";t.__esModule=!0,t.visitor=void 0;var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n);t.visitor={Function:function(e){for(var t=e.get("params"),r=i.isRestElement(t[t.length-1])?1:0,n=t.length-r,s=0;s<n;s++){var a=t[s];if(a.isArrayPattern()||a.isObjectPattern()){var o=e.scope.generateUidIdentifier("ref"),u=i.variableDeclaration("let",[i.variableDeclarator(a.node,o)]);u._blockHoist=n-s,e.ensureBlock(),e.get("body").unshiftContainer("body",u),a.replaceWith(o)}}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return p.isRestElement(e.params[e.params.length-1])}function s(e,t,r){var n=void 0;n=p.isNumericLiteral(e.parent.property)?p.numericLiteral(e.parent.property.value+r):0===r?e.parent.property:p.binaryExpression("+",e.parent.property,p.numericLiteral(r));var i=e.scope;if(i.isPure(n))e.parentPath.replaceWith(h({ARGUMENTS:t,INDEX:n}));else{var s=i.generateUidIdentifierBasedOnNode(n);i.push({id:s,kind:"var"}),e.parentPath.replaceWith(m({ARGUMENTS:t,INDEX:n,REF:s}))}}function a(e,t,r){r?e.parentPath.replaceWith(y({ARGUMENTS:t,OFFSET:p.numericLiteral(r)})):e.replaceWith(t)}t.__esModule=!0,t.visitor=void 0;var o=r(2),u=n(o),l=r(4),c=n(l),f=r(1),p=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(f),d=(0,c.default)("\n  for (var LEN = ARGUMENTS.length,\n           ARRAY = Array(ARRAY_LEN),\n           KEY = START;\n       KEY < LEN;\n       KEY++) {\n    ARRAY[ARRAY_KEY] = ARGUMENTS[KEY];\n  }\n"),h=(0,c.default)("\n  ARGUMENTS.length <= INDEX ? undefined : ARGUMENTS[INDEX]\n"),m=(0,c.default)("\n  REF = INDEX, ARGUMENTS.length <= REF ? undefined : ARGUMENTS[REF]\n"),y=(0,c.default)("\n  ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET\n"),v={Scope:function(e,t){e.scope.bindingIdentifierEquals(t.name,t.outerBinding)||e.skip()},Flow:function(e){e.isTypeCastExpression()||e.skip()},"Function|ClassProperty":function(e,t){var r=t.noOptimise;t.noOptimise=!0,e.traverse(v,t),t.noOptimise=r,e.skip()},ReferencedIdentifier:function(e,t){var r=e.node;if("arguments"===r.name&&(t.deopted=!0),r.name===t.name)if(t.noOptimise)t.deopted=!0;else{var n=e.parentPath;if("params"===n.listKey&&n.key<t.offset)return;if(n.isMemberExpression({object:r})){var i=n.parentPath,s=!t.deopted&&!(i.isAssignmentExpression()&&n.node===i.node.left||i.isLVal()||i.isForXStatement()||i.isUpdateExpression()||i.isUnaryExpression({operator:"delete"})||(i.isCallExpression()||i.isNewExpression())&&n.node===i.node.callee);if(s)if(n.node.computed){if(n.get("property").isBaseType("number"))return void t.candidates.push({cause:"indexGetter",path:e})}else if("length"===n.node.property.name)return void t.candidates.push({cause:"lengthGetter",path:e})}if(0===t.offset&&n.isSpreadElement()){var a=n.parentPath;if(a.isCallExpression()&&1===a.node.arguments.length)return void t.candidates.push({cause:"argSpread",path:e})}t.references.push(e)}},BindingIdentifier:function(e,t){e.node.name===t.name&&(t.deopted=!0)}};t.visitor={Function:function(e){var t=e.node,r=e.scope;if(i(t)){var n=t.params.pop().argument,o=p.identifier("arguments");o._shadowedFunctionLiteral=e;var l={references:[],offset:t.params.length,argumentsNode:o,outerBinding:r.getBindingIdentifier(n.name),candidates:[],name:n.name,deopted:!1};if(e.traverse(v,l),l.deopted||l.references.length){l.references=l.references.concat(l.candidates.map(function(e){return e.path})),l.deopted=l.deopted||!!t.shadow;var c=p.numericLiteral(t.params.length),f=r.generateUidIdentifier("key"),h=r.generateUidIdentifier("len"),m=f,y=h;t.params.length&&(m=p.binaryExpression("-",f,c),y=p.conditionalExpression(p.binaryExpression(">",h,c),p.binaryExpression("-",h,c),p.numericLiteral(0)));var g=d({ARGUMENTS:o,ARRAY_KEY:m,ARRAY_LEN:y,START:c,ARRAY:n,KEY:f,LEN:h});if(l.deopted)g._blockHoist=t.params.length+1,t.body.body.unshift(g);else{g._blockHoist=1;var b=e.getEarliestCommonAncestorFrom(l.references).getStatementParent();b.findParent(function(e){if(!e.isLoop())return e.isFunction();b=e}),b.insertBefore(g)}}else for(var E=l.candidates,x=Array.isArray(E),A=0,E=x?E:(0,u.default)(E);;){var S;if(x){if(A>=E.length)break;S=E[A++]}else{if(A=E.next(),A.done)break;S=A.value}var _=S,D=_.path,C=_.cause;switch(C){case"indexGetter":s(D,o,l.offset);break;case"lengthGetter":a(D,o,l.offset);break;default:D.replaceWith(o)}}}}}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{MemberExpression:{exit:function(e){var r=e.node,n=r.property;r.computed||!t.isIdentifier(n)||t.isValidIdentifier(n.name)||(r.property=t.stringLiteral(n.name),r.computed=!0)}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{ObjectProperty:{exit:function(e){var r=e.node,n=r.key;r.computed||!t.isIdentifier(n)||t.isValidIdentifier(n.name)||(r.key=t.stringLiteral(n.name))}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types;return{visitor:{ObjectExpression:function(e,r){for(var n=e.node,s=!1,o=n.properties,u=Array.isArray(o),l=0,o=u?o:(0,i.default)(o);;){var c;if(u){if(l>=o.length)break;c=o[l++]}else{if(l=o.next(),l.done)break;c=l.value}var f=c;if("get"===f.kind||"set"===f.kind){s=!0;break}}if(s){var p={};n.properties=n.properties.filter(function(e){return!!(e.computed||"get"!==e.kind&&"set"!==e.kind)||(a.push(p,e,null,r),!1)}),e.replaceWith(t.callExpression(t.memberExpression(t.identifier("Object"),t.identifier("defineProperties")),[n,a.toDefineObject(p)]))}}}}};var s=r(188),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.parse,r=e.traverse;return{visitor:{CallExpression:function(e){if(e.get("callee").isIdentifier({name:"eval"})&&1===e.node.arguments.length){var n=e.get("arguments")[0].evaluate();if(!n.confident)return;var i=n.value;if("string"!=typeof i)return;var s=t(i);return r.removeProperties(s),s.program}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){e.addComment("trailing",n(e,t)),e.replaceWith(i.noop())}function n(e,t){var r=e.getSource().replace(/\*-\//g,"*-ESCAPED/").replace(/\*\//g,"*-/");return t&&t.optional&&(r="?"+r),":"!==r[0]&&(r=":: "+r),r}var i=e.types;return{inherits:r(126),visitor:{TypeCastExpression:function(e){var t=e.node;e.get("expression").addComment("trailing",n(e.get("typeAnnotation"))),e.replaceWith(i.parenthesizedExpression(t.expression))},Identifier:function(e){var t=e.node;t.optional&&!t.typeAnnotation&&e.addComment("trailing",":: ?")},AssignmentPattern:{exit:function(e){e.node.left.optional=!1}},Function:{exit:function(e){e.node.params.forEach(function(e){return e.optional=!1})}},ClassProperty:function(e){var r=e.node,n=e.parent;r.value||t(e,n)},"ExportNamedDeclaration|Flow":function(e){var r=e.node,n=e.parent;i.isExportNamedDeclaration(r)&&!i.isFlow(r.declaration)||t(e,n)},ImportDeclaration:function(e){var r=e.node,n=e.parent;i.isImportDeclaration(r)&&"type"!==r.importKind&&"typeof"!==r.importKind||t(e,n)}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{FunctionExpression:{exit:function(e){var r=e.node;r.id&&(r._ignoreUserWhitespace=!0,e.replaceWith(t.callExpression(t.functionExpression(null,[],t.blockStatement([t.toStatement(r),t.returnStatement(r.id)])),[])))}}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{CallExpression:function(e,t){e.get("callee").matchesPattern("Object.assign")&&(e.node.callee=t.addHelper("extends"))}}}},e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(){return{visitor:{CallExpression:function(e,t){e.get("callee").matchesPattern("Object.setPrototypeOf")&&(e.node.callee=t.addHelper("defaults"))}}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i);t.default=function(e){function t(e){return i.isLiteral(i.toComputedKey(e,e.key),{value:"__proto__"})}function r(e){var t=e.left;return i.isMemberExpression(t)&&i.isLiteral(i.toComputedKey(t,t.property),{value:"__proto__"})}function n(e,t,r){return i.expressionStatement(i.callExpression(r.addHelper("defaults"),[t,e.right]))}var i=e.types;return{visitor:{AssignmentExpression:function(e,t){if(r(e.node)){var s=[],a=e.node.left.object,o=e.scope.maybeGenerateMemoised(a);o&&s.push(i.expressionStatement(i.assignmentExpression("=",o,a))),s.push(n(e.node,o||a,t)),o&&s.push(o),e.replaceWithMultiple(s)}},ExpressionStatement:function(e,t){var s=e.node.expression;i.isAssignmentExpression(s,{operator:"="})&&r(s)&&e.replaceWith(n(s,s.left.object,t))},ObjectExpression:function(e,r){for(var n=void 0,a=e.node,u=a.properties,l=Array.isArray(u),c=0,u=l?u:(0,s.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;t(p)&&(n=p.value,(0,o.default)(a.properties,p))}if(n){var d=[i.objectExpression([]),n];a.properties.length&&d.push(a),e.replaceWith(i.callExpression(r.addHelper("extends"),d))}}}}};var a=r(277),o=n(a);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(11),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){var t=e.types,r={enter:function(e,r){var n=function(){r.isImmutable=!1,e.stop()};if(e.isJSXClosingElement())return void e.skip();if(e.isJSXIdentifier({name:"ref"})&&e.parentPath.isJSXAttribute({name:e.node}))return n();if(!(e.isJSXIdentifier()||e.isIdentifier()||e.isJSXMemberExpression()||e.isImmutable())){if(e.isPure()){var s=e.evaluate();if(s.confident){var a=s.value;if(!(a&&"object"===(void 0===a?"undefined":(0,i.default)(a))||"function"==typeof a))return}else if(t.isIdentifier(s.deopt))return}n()}}};return{visitor:{JSXElement:function(e){if(!e.node._hoisted){var t={isImmutable:!0};e.traverse(r,t),t.isImmutable?e.hoist():e.node._hoisted=!0}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(2),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default=function(e){function t(e){for(var t=0;t<e.length;t++){var n=e[t];if(s.isJSXSpreadAttribute(n))return!0;if(r(n,"ref"))return!0}return!1}function r(e,t){return s.isJSXAttribute(e)&&s.isJSXIdentifier(e.name,{name:t})}function n(e){var t=e.value;return t?(s.isJSXExpressionContainer(t)&&(t=t.expression),t):s.identifier("true")}var s=e.types;return{visitor:{JSXElement:function(e,a){var o=e.node,u=o.openingElement;if(!t(u.attributes)){var l=s.objectExpression([]),c=null,f=u.name;s.isJSXIdentifier(f)&&s.react.isCompatTag(f.name)&&(f=s.stringLiteral(f.name));for(var p=u.attributes,d=Array.isArray(p),h=0,p=d?p:(0,i.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var y=m;if(r(y,"key"))c=n(y);else{var v=y.name.name,g=s.isValidIdentifier(v)?s.identifier(v):s.stringLiteral(v);!function(e,t,r){e.push(s.objectProperty(t,r))}(l.properties,g,n(y))}}var b=[f,l];if(c||o.children.length){var E=s.react.buildChildren(o);b.push.apply(b,[c||s.unaryExpression("void",s.numericLiteral(0),!0)].concat(E))}var x=s.callExpression(a.addHelper("jsx"),b);e.replaceWith(x)}}}}},e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{manipulateOptions:function(e,t){t.plugins.push("jsx")},visitor:(0,i.default)({pre:function(e){e.callee=e.tagExpr},post:function(e){t.react.isCompatTag(e.tagName)&&(e.call=t.callExpression(t.memberExpression(t.memberExpression(t.identifier("React"),t.identifier("DOM")),e.tagExpr,t.isLiteral(e.tagExpr)),e.args))}})}};var n=r(348),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){function t(e,r){if(a.isJSXIdentifier(e)){if("this"===e.name&&a.isReferenced(e,r))return a.thisExpression();if(!i.default.keyword.isIdentifierNameES6(e.name))return a.stringLiteral(e.name);e.type="Identifier"}else if(a.isJSXMemberExpression(e))return a.memberExpression(t(e.object,e),t(e.property,e));return e}function r(e){return a.isJSXExpressionContainer(e)?e.expression:e}function n(e){var t=r(e.value||a.booleanLiteral(!0));return a.isStringLiteral(t)&&!a.isJSXExpressionContainer(e.value)&&(t.value=t.value.replace(/\n\s+/g," ")),a.isValidIdentifier(e.name.name)?e.name.type="Identifier":e.name=a.stringLiteral(e.name.name),a.inherits(a.objectProperty(e.name,t),e)}function s(r,n){r.parent.children=a.react.buildChildren(r.parent);var i=t(r.node.name,r.node),s=[],u=void 0;a.isIdentifier(i)?u=i.name:a.isLiteral(i)&&(u=i.value);var l={tagExpr:i,tagName:u,args:s};e.pre&&e.pre(l,n);var c=r.node.attributes;return c=c.length?o(c,n):a.nullLiteral(),s.push(c),e.post&&e.post(l,n),l.call||a.callExpression(l.callee,s)}function o(e,t){function r(){i.length&&(s.push(a.objectExpression(i)),i=[])}var i=[],s=[],o=t.opts.useBuiltIns||!1;if("boolean"!=typeof o)throw new Error("transform-react-jsx currently only accepts a boolean option for useBuiltIns (defaults to false)");for(;e.length;){var u=e.shift();a.isJSXSpreadAttribute(u)?(r(),s.push(u.argument)):i.push(n(u))}if(r(),1===s.length)e=s[0];else{a.isObjectExpression(s[0])||s.unshift(a.objectExpression([]));var l=o?a.memberExpression(a.identifier("Object"),a.identifier("assign")):t.addHelper("extends");e=a.callExpression(l,s)}return e}var u={};return u.JSXNamespacedName=function(e){throw e.buildCodeFrameError("Namespace tags are not supported. ReactJSX is not XML.")},u.JSXElement={exit:function(e,t){var r=s(e.get("openingElement"),t);r.arguments=r.arguments.concat(e.node.children),r.arguments.length>=3&&(r._prettyCall=!0),e.replaceWith(a.inherits(r,e.node))}},u};var n=r(97),i=function(e){return e&&e.__esModule?e:{default:e}}(n),s=r(1),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(s);e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){var t=e.types;return{visitor:{JSXOpeningElement:function(e){var n=e.node,i=t.jSXIdentifier(r),s=t.thisExpression();n.attributes.push(t.jSXAttribute(i,t.jSXExpressionContainer(s)))}}}};var r="__self";e.exports=t.default},function(e,t){"use strict";t.__esModule=!0,t.default=function(e){function t(e,t){var r=null!=t?i.numericLiteral(t):i.nullLiteral(),n=i.objectProperty(i.identifier("fileName"),e),s=i.objectProperty(i.identifier("lineNumber"),r);return i.objectExpression([n,s])}var i=e.types;return{visitor:{JSXOpeningElement:function(e,s){var a=i.jSXIdentifier(r),o=e.container.openingElement.loc;if(o){for(var u=e.container.openingElement.attributes,l=0;l<u.length;l++){var c=u[l].name;if(c&&c.name===r)return}if(!s.fileNameIdentifier){var f="unknown"!==s.file.log.filename?s.file.log.filename:null,p=e.scope.generateUidIdentifier(n);e.hub.file.scope.push({id:p,init:i.stringLiteral(f)}),s.fileNameIdentifier=p}var d=t(s.fileNameIdentifier,o.start.line);u.push(i.jSXAttribute(a,i.jSXExpressionContainer(d)))}}}}};var r="__source",n="_jsxFileName";e.exports=t.default},348,function(e,t){"use strict";e.exports={builtins:{Symbol:"symbol",Promise:"promise",Map:"map",WeakMap:"weak-map",Set:"set",WeakSet:"weak-set",Observable:"observable",setImmediate:"set-immediate",clearImmediate:"clear-immediate",asap:"asap"},methods:{Array:{concat:"array/concat",copyWithin:"array/copy-within",entries:"array/entries",every:"array/every",fill:"array/fill",filter:"array/filter",findIndex:"array/find-index",find:"array/find",forEach:"array/for-each",from:"array/from",includes:"array/includes",indexOf:"array/index-of",join:"array/join",keys:"array/keys",lastIndexOf:"array/last-index-of",map:"array/map",of:"array/of",pop:"array/pop",push:"array/push",reduceRight:"array/reduce-right",reduce:"array/reduce",reverse:"array/reverse",shift:"array/shift",slice:"array/slice",some:"array/some",sort:"array/sort",splice:"array/splice",unshift:"array/unshift",values:"array/values"},JSON:{stringify:"json/stringify"},Object:{assign:"object/assign",create:"object/create",defineProperties:"object/define-properties",defineProperty:"object/define-property",entries:"object/entries",freeze:"object/freeze",getOwnPropertyDescriptor:"object/get-own-property-descriptor",getOwnPropertyDescriptors:"object/get-own-property-descriptors",getOwnPropertyNames:"object/get-own-property-names",getOwnPropertySymbols:"object/get-own-property-symbols",getPrototypeOf:"object/get-prototype-of",isExtensible:"object/is-extensible",isFrozen:"object/is-frozen",isSealed:"object/is-sealed",is:"object/is",keys:"object/keys",preventExtensions:"object/prevent-extensions",seal:"object/seal",setPrototypeOf:"object/set-prototype-of",values:"object/values"},RegExp:{escape:"regexp/escape"},Math:{acosh:"math/acosh",asinh:"math/asinh",atanh:"math/atanh",cbrt:"math/cbrt",clz32:"math/clz32",cosh:"math/cosh",expm1:"math/expm1",fround:"math/fround",hypot:"math/hypot",imul:"math/imul",log10:"math/log10",log1p:"math/log1p",log2:"math/log2",sign:"math/sign",sinh:"math/sinh",tanh:"math/tanh",trunc:"math/trunc",iaddh:"math/iaddh",isubh:"math/isubh",imulh:"math/imulh",umulh:"math/umulh"},Symbol:{for:"symbol/for",hasInstance:"symbol/has-instance",isConcatSpreadable:"symbol/is-concat-spreadable",iterator:"symbol/iterator",keyFor:"symbol/key-for",match:"symbol/match",replace:"symbol/replace",search:"symbol/search",species:"symbol/species",split:"symbol/split",toPrimitive:"symbol/to-primitive",toStringTag:"symbol/to-string-tag",unscopables:"symbol/unscopables"},String:{at:"string/at",codePointAt:"string/code-point-at",endsWith:"string/ends-with",fromCodePoint:"string/from-code-point",includes:"string/includes",matchAll:"string/match-all",padLeft:"string/pad-left",padRight:"string/pad-right",padStart:"string/pad-start",padEnd:"string/pad-end",raw:"string/raw",repeat:"string/repeat",startsWith:"string/starts-with",trim:"string/trim",trimLeft:"string/trim-left",trimRight:"string/trim-right",trimStart:"string/trim-start",trimEnd:"string/trim-end"},Number:{EPSILON:"number/epsilon",isFinite:"number/is-finite",isInteger:"number/is-integer",isNaN:"number/is-nan",isSafeInteger:"number/is-safe-integer",MAX_SAFE_INTEGER:"number/max-safe-integer",MIN_SAFE_INTEGER:"number/min-safe-integer",parseFloat:"number/parse-float",parseInt:"number/parse-int"},Reflect:{apply:"reflect/apply",construct:"reflect/construct",defineProperty:"reflect/define-property",deleteProperty:"reflect/delete-property",enumerate:"reflect/enumerate",getOwnPropertyDescriptor:"reflect/get-own-property-descriptor",getPrototypeOf:"reflect/get-prototype-of",get:"reflect/get",has:"reflect/has",isExtensible:"reflect/is-extensible",ownKeys:"reflect/own-keys",preventExtensions:"reflect/prevent-extensions",setPrototypeOf:"reflect/set-prototype-of",set:"reflect/set",defineMetadata:"reflect/define-metadata",deleteMetadata:"reflect/delete-metadata",getMetadata:"reflect/get-metadata",getMetadataKeys:"reflect/get-metadata-keys",getOwnMetadata:"reflect/get-own-metadata",getOwnMetadataKeys:"reflect/get-own-metadata-keys",hasMetadata:"reflect/has-metadata",hasOwnMetadata:"reflect/has-own-metadata",metadata:"reflect/metadata"},System:{global:"system/global"},Error:{isError:"error/is-error"},Date:{},Function:{}}}},function(e,t,r){"use strict";t.__esModule=!0,t.definitions=void 0,t.default=function(e){function t(e){return e.moduleName||"babel-runtime"}function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var n=e.types,s=["interopRequireWildcard","interopRequireDefault"];return{pre:function(e){var r=t(this.opts);!1!==this.opts.helpers&&e.set("helperGenerator",function(t){if(s.indexOf(t)<0)return e.addImport(r+"/helpers/"+t,"default",t)}),this.setDynamic("regeneratorIdentifier",function(){return e.addImport(r+"/regenerator","default","regeneratorRuntime")})},visitor:{ReferencedIdentifier:function(e,s){var a=e.node,o=e.parent,u=e.scope;if("regeneratorRuntime"===a.name&&!1!==s.opts.regenerator)return void e.replaceWith(s.get("regeneratorIdentifier"));if(!1!==s.opts.polyfill&&!n.isMemberExpression(o)&&r(i.default.builtins,a.name)&&!u.getBindingIdentifier(a.name)){var l=t(s.opts);e.replaceWith(s.addImport(l+"/core-js/"+i.default.builtins[a.name],"default",a.name))}},CallExpression:function(e,r){if(!1!==r.opts.polyfill&&!e.node.arguments.length){var i=e.node.callee;if(n.isMemberExpression(i)&&i.computed&&e.get("callee.property").matchesPattern("Symbol.iterator")){var s=t(r.opts);e.replaceWith(n.callExpression(r.addImport(s+"/core-js/get-iterator","default","getIterator"),[i.object]))}}},BinaryExpression:function(e,r){if(!1!==r.opts.polyfill&&"in"===e.node.operator&&e.get("left").matchesPattern("Symbol.iterator")){var i=t(r.opts);e.replaceWith(n.callExpression(r.addImport(i+"/core-js/is-iterable","default","isIterable"),[e.node.right]))}},MemberExpression:{enter:function(e,s){if(!1!==s.opts.polyfill&&e.isReferenced()){var a=e.node,o=a.object,u=a.property;if(n.isReferenced(o,a)&&!a.computed&&r(i.default.methods,o.name)){var l=i.default.methods[o.name];if(r(l,u.name)&&!e.scope.getBindingIdentifier(o.name)){if("Object"===o.name&&"defineProperty"===u.name&&e.parentPath.isCallExpression()){var c=e.parentPath.node;if(3===c.arguments.length&&n.isLiteral(c.arguments[1]))return}var f=t(s.opts);e.replaceWith(s.addImport(f+"/core-js/"+l[u.name],"default",o.name+"$"+u.name))}}}},exit:function(e,s){if(!1!==s.opts.polyfill&&e.isReferenced()){var a=e.node,o=a.object;if(r(i.default.builtins,o.name)&&!e.scope.getBindingIdentifier(o.name)){var u=t(s.opts);e.replaceWith(n.memberExpression(s.addImport(u+"/core-js/"+i.default.builtins[o.name],"default",o.name),a.property,a.computed))}}}}}}};var n=r(352),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.definitions=i.default},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e){var t=e.messages;return{visitor:{ReferencedIdentifier:function(e){var r=e.node,n=e.scope,s=n.getBinding(r.name)
;if(s&&"type"===s.kind&&!e.parentPath.isFlow())throw e.buildCodeFrameError(t.get("undeclaredVariableType",r.name),ReferenceError);if(!n.hasBinding(r.name)){var a=n.getAllBindings(),o=void 0,u=-1;for(var l in a){var c=(0,i.default)(r.name,l);c<=0||c>3||(c<=u||(o=l,u=c))}var f=void 0;throw f=o?t.get("undeclaredVariableSuggestion",r.name,o):t.get("undeclaredVariable",r.name),e.buildCodeFrameError(f,ReferenceError)}}}}};var n=r(471),i=function(e){return e&&e.__esModule?e:{default:e}}(n);e.exports=t.default},function(e,t,r){"use strict";t.__esModule=!0;var n=r(211),i=function(e){return e&&e.__esModule?e:{default:e}}(n);t.default={plugins:[i.default]},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0,t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return{presets:[!1!==t.es2015&&[s.default.buildPreset,t.es2015],!1!==t.es2016&&o.default,!1!==t.es2017&&l.default].filter(Boolean)}};var i=r(217),s=n(i),a=r(218),o=n(a),u=r(219),l=n(u);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(355),s=n(i),a=r(215),o=n(a),u=r(127),l=n(u),c=r(214),f=n(c);t.default={presets:[s.default],plugins:[o.default,l.default,f.default],env:{development:{plugins:[]}}},e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(220),s=n(i),a=r(206),o=n(a),u=r(212),l=n(u);t.default={presets:[s.default],plugins:[o.default,l.default]},e.exports=t.default},function(e,t,r){"use strict";e.exports={default:r(407),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(410),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(412),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(413),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(415),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(416),__esModule:!0}},function(e,t,r){"use strict";e.exports={default:r(417),__esModule:!0}},function(e,t){"use strict";t.__esModule=!0,t.default=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(36),l=n(u),c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c),p=function(){function e(t,r,n,i){(0,o.default)(this,e),this.queue=null,this.parentPath=i,this.scope=t,this.state=n,this.opts=r}return e.prototype.shouldVisit=function(e){var t=this.opts;if(t.enter||t.exit)return!0;if(t[e.type])return!0;var r=f.VISITOR_KEYS[e.type];if(!r||!r.length)return!1;for(var n=r,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}if(e[o])return!0}return!1},e.prototype.create=function(e,t,r,n){return l.default.get({parentPath:this.parentPath,parent:e,container:t,key:r,listKey:n})},e.prototype.maybeQueue=function(e,t){if(this.trap)throw new Error("Infinite cycle detected");this.queue&&(t?this.queue.push(e):this.priorityQueue.push(e))},e.prototype.visitMultiple=function(e,t,r){if(0===e.length)return!1;for(var n=[],i=0;i<e.length;i++){var s=e[i];s&&this.shouldVisit(s)&&n.push(this.create(t,e,i,r))}return this.visitQueue(n)},e.prototype.visitSingle=function(e,t){return!!this.shouldVisit(e[t])&&this.visitQueue([this.create(e,e,t)])},e.prototype.visitQueue=function(e){this.queue=e,this.priorityQueue=[];for(var t=[],r=!1,n=e,i=Array.isArray(n),a=0,n=i?n:(0,s.default)(n);;){var o;if(i){if(a>=n.length)break;o=n[a++]}else{if(a=n.next(),a.done)break;o=a.value}var u=o;if(u.resync(),0!==u.contexts.length&&u.contexts[u.contexts.length-1]===this||u.pushContext(this),null!==u.key&&!(t.indexOf(u.node)>=0)){if(t.push(u.node),u.visit()){r=!0;break}if(this.priorityQueue.length&&(r=this.visitQueue(this.priorityQueue),this.priorityQueue=[],this.queue=e,r))break}}for(var l=e,c=Array.isArray(l),f=0,l=c?l:(0,s.default)(l);;){var p;if(c){if(f>=l.length)break;p=l[f++]}else{if(f=l.next(),f.done)break;p=f.value}p.popContext()}return this.queue=null,r},e.prototype.visit=function(e,t){var r=e[t];return!!r&&(Array.isArray(r)?this.visitMultiple(r,e,t):this.visitSingle(e,t))},e}();t.default=p,e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){for(var t=this;t=t.parentPath;)if(e(t))return t;return null}function s(e){var t=this;do{if(e(t))return t}while(t=t.parentPath);return null}function a(){return this.findParent(function(e){return e.isFunction()||e.isProgram()})}function o(){var e=this;do{if(Array.isArray(e.container))return e}while(e=e.parentPath)}function u(e){return this.getDeepestCommonAncestorFrom(e,function(e,t,r){for(var n=void 0,i=g.VISITOR_KEYS[e.type],s=r,a=Array.isArray(s),o=0,s=a?s:(0,y.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u,c=l[t+1];if(n)if(c.listKey&&n.listKey===c.listKey&&c.key<n.key)n=c;else{var f=i.indexOf(n.parentKey),p=i.indexOf(c.parentKey);f>p&&(n=c)}else n=c}return n})}function l(e,t){var r=this;if(!e.length)return this;if(1===e.length)return e[0];var n=1/0,i=void 0,s=void 0,a=e.map(function(e){var t=[];do{t.unshift(e)}while((e=e.parentPath)&&e!==r);return t.length<n&&(n=t.length),t}),o=a[0];e:for(var u=0;u<n;u++){for(var l=o[u],c=a,f=Array.isArray(c),p=0,c=f?c:(0,y.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;if(h[u]!==l)break e}i=u,s=l}if(s)return t?t(s,i,a):s;throw new Error("Couldn't find intersection")}function c(){var e=this,t=[];do{t.push(e)}while(e=e.parentPath);return t}function f(e){return e.isDescendant(this)}function p(e){return!!this.findParent(function(t){return t===e})}function d(){for(var e=this;e;){for(var t=arguments,r=Array.isArray(t),n=0,t=r?t:(0,y.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(e.node.type===s)return!0}e=e.parentPath}return!1}function h(e){var t=this.isFunction()?this:this.findParent(function(e){return e.isFunction()});if(t){if(t.isFunctionExpression()||t.isFunctionDeclaration()){var r=t.node.shadow;if(r&&(!e||!1!==r[e]))return t}else if(t.isArrowFunctionExpression())return t;return null}}t.__esModule=!0;var m=r(2),y=n(m);t.findParent=i,t.find=s,t.getFunctionParent=a,t.getStatementParent=o,t.getEarliestCommonAncestorFrom=u,t.getDeepestCommonAncestorFrom=l,t.getAncestry=c,t.isAncestor=f,t.isDescendant=p,t.inType=d,t.inShadow=h;var v=r(1),g=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(v),b=r(36);n(b)},function(e,t){"use strict";function r(){if("string"!=typeof this.key){var e=this.node;if(e){var t=e.trailingComments,r=e.leadingComments;if(t||r){var n=this.getSibling(this.key-1),i=this.getSibling(this.key+1);n.node||(n=i),i.node||(i=n),n.addComments("trailing",r),i.addComments("leading",t)}}}}function n(e,t,r){this.addComments(e,[{type:r?"CommentLine":"CommentBlock",value:t}])}function i(e,t){if(t){var r=this.node;if(r){var n=e+"Comments";r[n]?r[n]=r[n].concat(t):r[n]=t}}}t.__esModule=!0,t.shareCommentsWithSiblings=r,t.addComment=n,t.addComments=i},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=this.opts;return this.debug(function(){return e}),!(!this.node||!this._call(t[e]))||!!this.node&&this._call(t[this.node.type]&&t[this.node.type][e])}function s(e){if(!e)return!1;for(var t=e,r=Array.isArray(t),n=0,t=r?t:(0,D.default)(t);;){var i;if(r){if(n>=t.length)break;i=t[n++]}else{if(n=t.next(),n.done)break;i=n.value}var s=i;if(s){var a=this.node;if(!a)return!0;if(s.call(this.state,this,this.state))throw new Error("Unexpected return value from visitor method "+s);if(this.node!==a)return!0;if(this.shouldStop||this.shouldSkip||this.removed)return!0}}return!1}function a(){var e=this.opts.blacklist;return e&&e.indexOf(this.node.type)>-1}function o(){return!!this.node&&(!this.isBlacklisted()&&((!this.opts.shouldSkip||!this.opts.shouldSkip(this))&&(this.call("enter")||this.shouldSkip?(this.debug(function(){return"Skip..."}),this.shouldStop):(this.debug(function(){return"Recursing into..."}),w.default.node(this.node,this.opts,this.scope,this.state,this,this.skipKeys),this.call("exit"),this.shouldStop))))}function u(){this.shouldSkip=!0}function l(e){this.skipKeys[e]=!0}function c(){this.shouldStop=!0,this.shouldSkip=!0}function f(){if(!this.opts||!this.opts.noScope){var e=this.context&&this.context.scope;if(!e)for(var t=this.parentPath;t&&!e;){if(t.opts&&t.opts.noScope)return;e=t.scope,t=t.parentPath}this.scope=this.getScope(e),this.scope&&this.scope.init()}}function p(e){return this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.skipKeys={},e&&(this.context=e,this.state=e.state,this.opts=e.opts),this.setScope(),this}function d(){this.removed||(this._resyncParent(),this._resyncList(),this._resyncKey())}function h(){this.parentPath&&(this.parent=this.parentPath.node)}function m(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e<this.container.length;e++)if(this.container[e]===this.node)return this.setKey(e)}else for(var t in this.container)if(this.container[t]===this.node)return this.setKey(t);this.key=null}}function y(){if(this.parent&&this.inList){var e=this.parent[this.listKey];this.container!==e&&(this.container=e||null)}}function v(){null!=this.key&&this.container&&this.container[this.key]===this.node||this._markRemoved()}function g(){this.contexts.pop(),this.setContext(this.contexts[this.contexts.length-1])}function b(e){this.contexts.push(e),this.setContext(e)}function E(e,t,r,n){this.inList=!!r,this.listKey=r,this.parentKey=r||n,this.container=t,this.parentPath=e||this.parentPath,this.setKey(n)}function x(e){this.key=e,this.node=this.container[this.key],this.type=this.node&&this.node.type}function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;if(!e.removed)for(var t=this.contexts,r=t,n=Array.isArray(r),i=0,r=n?r:(0,D.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;a.maybeQueue(e)}}function S(){for(var e=this,t=this.contexts;!t.length;)e=e.parentPath,t=e.contexts;return t}t.__esModule=!0;var _=r(2),D=n(_);t.call=i,t._call=s,t.isBlacklisted=a,t.visit=o,t.skip=u,t.skipKey=l,t.stop=c,t.setScope=f,t.setContext=p,t.resync=d,t._resyncParent=h,t._resyncKey=m,t._resyncList=y,t._resyncRemoved=v,t.popContext=g,t.pushContext=b,t.setup=E,t.setKey=x,t.requeue=A,t._getQueueContexts=S;var C=r(7),w=n(C)},function(e,t,r){"use strict";function n(){var e=this.node,t=void 0;if(this.isMemberExpression())t=e.property;else{if(!this.isProperty()&&!this.isMethod())throw new ReferenceError("todo");t=e.key}return e.computed||o.isIdentifier(t)&&(t=o.stringLiteral(t.name)),t}function i(){return o.ensureBlock(this.node)}function s(){if(this.isArrowFunctionExpression()){this.ensureBlock();var e=this.node;e.expression=!1,e.type="FunctionExpression",e.shadow=e.shadow||!0}}t.__esModule=!0,t.toComputedKey=n,t.ensureBlock=i,t.arrowFunctionToShadowed=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){(function(e){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){var e=this.evaluate();if(e.confident)return!!e.value}function s(){function t(e){i&&(s=e,i=!1)}function r(e){var r=e.node;if(a.has(r)){var s=a.get(r);return s.resolved?s.value:void t(e)}var o={resolved:!1};a.set(r,o);var u=n(e);return i&&(o.resolved=!0,o.value=u),u}function n(n){if(i){var s=n.node;if(n.isSequenceExpression()){var a=n.get("expressions");return r(a[a.length-1])}if(n.isStringLiteral()||n.isNumericLiteral()||n.isBooleanLiteral())return s.value;if(n.isNullLiteral())return null;if(n.isTemplateLiteral()){for(var u="",c=0,f=n.get("expressions"),h=s.quasis,m=Array.isArray(h),y=0,h=m?h:(0,l.default)(h);;){var v;if(m){if(y>=h.length)break;v=h[y++]}else{if(y=h.next(),y.done)break;v=y.value}var g=v;if(!i)break;u+=g.value.cooked;var b=f[c++];b&&(u+=String(r(b)))}if(!i)return;return u}if(n.isConditionalExpression()){var E=r(n.get("test"));if(!i)return;return r(E?n.get("consequent"):n.get("alternate"))}if(n.isExpressionWrapper())return r(n.get("expression"));if(n.isMemberExpression()&&!n.parentPath.isCallExpression({callee:s})){var x=n.get("property"),A=n.get("object");if(A.isLiteral()&&x.isIdentifier()){var S=A.node.value,_=void 0===S?"undefined":(0,o.default)(S);if("number"===_||"string"===_)return S[x.node.name]}}if(n.isReferencedIdentifier()){var D=n.scope.getBinding(s.name);if(D&&D.constantViolations.length>0)return t(D.path);if(D&&n.node.start<D.path.node.end)return t(D.path);if(D&&D.hasValue)return D.value;if("undefined"===s.name)return D?t(D.path):void 0;if("Infinity"===s.name)return D?t(D.path):1/0;if("NaN"===s.name)return D?t(D.path):NaN;var C=n.resolve();return C===n?t(n):r(C)}if(n.isUnaryExpression({prefix:!0})){if("void"===s.operator)return;var w=n.get("argument");if("typeof"===s.operator&&(w.isFunction()||w.isClass()))return"function";var P=r(w);if(!i)return;switch(s.operator){case"!":return!P;case"+":return+P;case"-":return-P;case"~":return~P;case"typeof":return void 0===P?"undefined":(0,o.default)(P)}}if(n.isArrayExpression()){for(var k=[],F=n.get("elements"),T=F,O=Array.isArray(T),B=0,T=O?T:(0,l.default)(T);;){var R;if(O){if(B>=T.length)break;R=T[B++]}else{if(B=T.next(),B.done)break;R=B.value}var I=R;if(I=I.evaluate(),!I.confident)return t(I);k.push(I.value)}return k}if(n.isObjectExpression()){for(var M={},N=n.get("properties"),L=N,j=Array.isArray(L),U=0,L=j?L:(0,l.default)(L);;){var V;if(j){if(U>=L.length)break;V=L[U++]}else{if(U=L.next(),U.done)break;V=U.value}var G=V;if(G.isObjectMethod()||G.isSpreadProperty())return t(G);var W=G.get("key"),Y=W;if(G.node.computed){if(Y=Y.evaluate(),!Y.confident)return t(W);Y=Y.value}else Y=Y.isIdentifier()?Y.node.name:Y.node.value;var q=G.get("value"),K=q.evaluate();if(!K.confident)return t(q);K=K.value,M[Y]=K}return M}if(n.isLogicalExpression()){var H=i,J=r(n.get("left")),X=i;i=H;var z=r(n.get("right")),$=i;switch(i=X&&$,s.operator){case"||":if(J&&X)return i=!0,J;if(!i)return;return J||z;case"&&":if((!J&&X||!z&&$)&&(i=!0),!i)return;return J&&z}}if(n.isBinaryExpression()){var Q=r(n.get("left"));if(!i)return;var Z=r(n.get("right"));if(!i)return;switch(s.operator){case"-":return Q-Z;case"+":return Q+Z;case"/":return Q/Z;case"*":return Q*Z;case"%":return Q%Z;case"**":return Math.pow(Q,Z);case"<":return Q<Z;case">":return Q>Z;case"<=":return Q<=Z;case">=":return Q>=Z;case"==":return Q==Z;case"!=":return Q!=Z;case"===":return Q===Z;case"!==":return Q!==Z;case"|":return Q|Z;case"&":return Q&Z;case"^":return Q^Z;case"<<":return Q<<Z;case">>":return Q>>Z;case">>>":return Q>>>Z}}if(n.isCallExpression()){var ee=n.get("callee"),te=void 0,re=void 0;if(ee.isIdentifier()&&!n.scope.getBinding(ee.node.name,!0)&&p.indexOf(ee.node.name)>=0&&(re=e[s.callee.name]),ee.isMemberExpression()){var ne=ee.get("object"),ie=ee.get("property");if(ne.isIdentifier()&&ie.isIdentifier()&&p.indexOf(ne.node.name)>=0&&d.indexOf(ie.node.name)<0&&(te=e[ne.node.name],re=te[ie.node.name]),ne.isLiteral()&&ie.isIdentifier()){var se=(0,o.default)(ne.node.value);"string"!==se&&"number"!==se||(te=ne.node.value,re=te[ie.node.name])}}if(re){var ae=n.get("arguments").map(r);if(!i)return;return re.apply(te,ae)}}t(n)}}var i=!0,s=void 0,a=new f.default,u=r(this);return i||(u=void 0),{confident:i,deopt:s,value:u}}t.__esModule=!0;var a=r(11),o=n(a),u=r(2),l=n(u),c=r(133),f=n(c);t.evaluateTruthy=i,t.evaluate=s;var p=["String","Number","Math"],d=["random"]}).call(t,function(){return this}())},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){var e=this;do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())break;e=e.parentPath}while(e);if(e&&(e.isProgram()||e.isFile()))throw new Error("File/Program node, we can't possibly find a statement parent to this");return e}function s(){return"left"===this.key?this.getSibling("right"):"right"===this.key?this.getSibling("left"):void 0}function a(){var e=[],t=function(t){t&&(e=e.concat(t.getCompletionRecords()))};if(this.isIfStatement())t(this.get("consequent")),t(this.get("alternate"));else if(this.isDoExpression()||this.isFor()||this.isWhile())t(this.get("body"));else if(this.isProgram()||this.isBlockStatement())t(this.get("body").pop());else{if(this.isFunction())return this.get("body").getCompletionRecords();this.isTryStatement()?(t(this.get("block")),t(this.get("handler")),t(this.get("finalizer"))):e.push(this)}return e}function o(e){return _.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e})}function u(){return this.getSibling(this.key-1)}function l(){return this.getSibling(this.key+1)}function c(){for(var e=this.key,t=this.getSibling(++e),r=[];t.node;)r.push(t),t=this.getSibling(++e);return r}function f(){for(var e=this.key,t=this.getSibling(--e),r=[];t.node;)r.push(t),t=this.getSibling(--e);return r}function p(e,t){!0===t&&(t=this.context);var r=e.split(".");return 1===r.length?this._getKey(e,t):this._getPattern(r,t)}function d(e,t){var r=this,n=this.node,i=n[e];return Array.isArray(i)?i.map(function(s,a){return _.default.get({listKey:e,parentPath:r,parent:n,container:i,key:a}).setContext(t)}):_.default.get({parentPath:this,parent:n,container:n,key:e}).setContext(t)}function h(e,t){for(var r=this,n=e,i=Array.isArray(n),s=0,n=i?n:(0,A.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;r="."===o?r.parentPath:Array.isArray(r)?r[o]:r.get(o,t)}return r}function m(e){return C.getBindingIdentifiers(this.node,e)}function y(e){return C.getOuterBindingIdentifiers(this.node,e)}function v(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this,n=[].concat(r),i=(0,E.default)(null);n.length;){var s=n.shift();if(s&&s.node){var a=C.getBindingIdentifiers.keys[s.node.type];if(s.isIdentifier())if(e){var o=i[s.node.name]=i[s.node.name]||[];o.push(s)}else i[s.node.name]=s;else if(s.isExportDeclaration()){var u=s.get("declaration");u.isDeclaration()&&n.push(u)}else{if(t){if(s.isFunctionDeclaration()){n.push(s.get("id"));continue}if(s.isFunctionExpression())continue}if(a)for(var l=0;l<a.length;l++){var c=a[l],f=s.get(c);(Array.isArray(f)||f.node)&&(n=n.concat(f))}}}}return i}function g(e){return this.getBindingIdentifierPaths(e,!0)}t.__esModule=!0;var b=r(9),E=n(b),x=r(2),A=n(x);t.getStatementParent=i,t.getOpposite=s,t.getCompletionRecords=a,t.getSibling=o,t.getPrevSibling=u,t.getNextSibling=l,t.getAllNextSiblings=c,t.getAllPrevSiblings=f,t.get=p,t._getKey=d,t._getPattern=h,t.getBindingIdentifiers=m,t.getOuterBindingIdentifiers=y,t.getBindingIdentifierPaths=v,t.getOuterBindingIdentifierPaths=g;var S=r(36),_=n(S),D=r(1),C=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(D)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(){if(this.typeAnnotation)return this.typeAnnotation;var e=this._getTypeAnnotation()||y.anyTypeAnnotation();return y.isTypeAnnotation(e)&&(e=e.typeAnnotation),this.typeAnnotation=e}function s(){var e=this.node;{if(e){if(e.typeAnnotation)return e.typeAnnotation;var t=h[e.type];return t?t.call(this,e):(t=h[this.parentPath.type],t&&t.validParent?this.parentPath.getTypeAnnotation():void 0)}if("init"===this.key&&this.parentPath.isVariableDeclarator()){var r=this.parentPath.parentPath,n=r.parentPath;return"left"===r.key&&n.isForInStatement()?y.stringTypeAnnotation():"left"===r.key&&n.isForOfStatement()?y.anyTypeAnnotation():y.voidTypeAnnotation()}}}function a(e,t){return o(e,this.getTypeAnnotation(),t)}function o(e,t,r){if("string"===e)return y.isStringTypeAnnotation(t);if("number"===e)return y.isNumberTypeAnnotation(t);if("boolean"===e)return y.isBooleanTypeAnnotation(t);if("any"===e)return y.isAnyTypeAnnotation(t);if("mixed"===e)return y.isMixedTypeAnnotation(t);if("empty"===e)return y.isEmptyTypeAnnotation(t);if("void"===e)return y.isVoidTypeAnnotation(t);if(r)return!1;throw new Error("Unknown base type "+e)}function u(e){var t=this.getTypeAnnotation();if(y.isAnyTypeAnnotation(t))return!0;if(y.isUnionTypeAnnotation(t)){for(var r=t.types,n=Array.isArray(r),i=0,r=n?r:(0,p.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}var a=s;if(y.isAnyTypeAnnotation(a)||o(e,a,!0))return!0}return!1}return o(e,t,!0)}function l(e){var t=this.getTypeAnnotation();if(e=e.getTypeAnnotation(),!y.isAnyTypeAnnotation(t)&&y.isFlowBaseAnnotation(t))return e.type===t.type}function c(e){var t=this.getTypeAnnotation();return y.isGenericTypeAnnotation(t)&&y.isIdentifier(t.id,{name:e})}t.__esModule=!0;var f=r(2),p=function(e){return e&&e.__esModule?e:{default:e}}(f);t.getTypeAnnotation=i,t._getTypeAnnotation=s,t.isBaseType=a,t.couldBeBaseType=u,t.baseTypeStrictlyMatches=l,t.isGenericType=c;var d=r(376),h=n(d),m=r(1),y=n(m)},function(e,t,r){"use strict";function n(e,t){var r=e.scope.getBinding(t),n=[];e.typeAnnotation=f.unionTypeAnnotation(n);var s=[],a=i(r,e,s),u=o(e,t);if(u){var c=i(r,u.ifStatement);a=a.filter(function(e){return c.indexOf(e)<0}),n.push(u.typeAnnotation)}if(a.length){a=a.concat(s);for(var p=a,d=Array.isArray(p),h=0,p=d?p:(0,l.default)(p);;){var m;if(d){if(h>=p.length)break;m=p[h++]}else{if(h=p.next(),h.done)break;m=h.value}var y=m;n.push(y.getTypeAnnotation())}}if(n.length)return f.createUnionTypeAnnotation(n)}function i(e,t,r){var n=e.constantViolations.slice();return n.unshift(e.path),n.filter(function(e){e=e.resolve();var n=e._guessExecutionStatusRelativeTo(t);return r&&"function"===n&&r.push(e),"before"===n})}function s(e,t){var r=t.node.operator,n=t.get("right").resolve(),i=t.get("left").resolve(),s=void 0;if(i.isIdentifier({name:e})?s=n:n.isIdentifier({name:e})&&(s=i),s)return"==="===r?s.getTypeAnnotation():f.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(r)>=0?f.numberTypeAnnotation():void 0;if("==="===r){var a=void 0,o=void 0;if(i.isUnaryExpression({operator:"typeof"})?(a=i,o=n):n.isUnaryExpression({operator:"typeof"})&&(a=n,o=i),(o||a)&&(o=o.resolve(),o.isLiteral())){if("string"==typeof o.node.value&&a.get("argument").isIdentifier({name:e}))return f.createTypeAnnotationBasedOnTypeof(o.node.value)}}}function a(e){for(var t=void 0;t=e.parentPath;){if(t.isIfStatement()||t.isConditionalExpression())return"test"===e.key?void 0:t;e=t}}function o(e,t){var r=a(e);if(r){var n=r.get("test"),i=[n],u=[];do{var l=i.shift().resolve();if(l.isLogicalExpression()&&(i.push(l.get("left")),i.push(l.get("right"))),l.isBinaryExpression()){var c=s(t,l);c&&u.push(c)}}while(i.length);return u.length?{typeAnnotation:f.createUnionTypeAnnotation(u),ifStatement:r}:o(r,t)}}t.__esModule=!0;var u=r(2),l=function(e){return e&&e.__esModule?e:{default:e}}(u);t.default=function(e){if(this.isReferenced()){var t=this.scope.getBinding(e.name);return t?t.identifier.typeAnnotation?t.identifier.typeAnnotation:n(this,e.name):"undefined"===e.name?f.voidTypeAnnotation():"NaN"===e.name||"Infinity"===e.name?f.numberTypeAnnotation():void e.name}};var c=r(1),f=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(c);e.exports=t.default},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){return this.get("id").isIdentifier()?this.get("init").getTypeAnnotation():void 0}function s(e){return e.typeAnnotation}function a(e){if(this.get("callee").isIdentifier())return k.genericTypeAnnotation(e.callee)}function o(){return k.stringTypeAnnotation()}function u(e){var t=e.operator;return"void"===t?k.voidTypeAnnotation():k.NUMBER_UNARY_OPERATORS.indexOf(t)>=0?k.numberTypeAnnotation():k.STRING_UNARY_OPERATORS.indexOf(t)>=0?k.stringTypeAnnotation():k.BOOLEAN_UNARY_OPERATORS.indexOf(t)>=0?k.booleanTypeAnnotation():void 0}function l(e){var t=e.operator;if(k.NUMBER_BINARY_OPERATORS.indexOf(t)>=0)return k.numberTypeAnnotation();if(k.BOOLEAN_BINARY_OPERATORS.indexOf(t)>=0)return k.booleanTypeAnnotation();if("+"===t){var r=this.get("right"),n=this.get("left");return n.isBaseType("number")&&r.isBaseType("number")?k.numberTypeAnnotation():n.isBaseType("string")||r.isBaseType("string")?k.stringTypeAnnotation():k.unionTypeAnnotation([k.stringTypeAnnotation(),k.numberTypeAnnotation()])}}function c(){return k.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()])}function f(){return k.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()])}function p(){return this.get("expressions").pop().getTypeAnnotation()}function d(){return this.get("right").getTypeAnnotation()}function h(e){var t=e.operator;if("++"===t||"--"===t)return k.numberTypeAnnotation()}function m(){return k.stringTypeAnnotation()}function y(){return k.numberTypeAnnotation()}function v(){return k.booleanTypeAnnotation()}function g(){return k.nullLiteralTypeAnnotation()}function b(){return k.genericTypeAnnotation(k.identifier("RegExp"))}function E(){return k.genericTypeAnnotation(k.identifier("Object"))}function x(){return k.genericTypeAnnotation(k.identifier("Array"))}function A(){return x()}function S(){return k.genericTypeAnnotation(k.identifier("Function"))}function _(){return C(this.get("callee"))}function D(){return C(this.get("tag"))}function C(e){if(e=e.resolve(),e.isFunction()){if(e.is("async"))return e.is("generator")?k.genericTypeAnnotation(k.identifier("AsyncIterator")):k.genericTypeAnnotation(k.identifier("Promise"));if(e.node.returnType)return e.node.returnType}}t.__esModule=!0,t.ClassDeclaration=t.ClassExpression=t.FunctionDeclaration=t.ArrowFunctionExpression=t.FunctionExpression=t.Identifier=void 0;var w=r(375);Object.defineProperty(t,"Identifier",{enumerable:!0,get:function(){return n(w).default}}),t.VariableDeclarator=i,t.TypeCastExpression=s,t.NewExpression=a,t.TemplateLiteral=o,t.UnaryExpression=u,t.BinaryExpression=l,t.LogicalExpression=c,t.ConditionalExpression=f,t.SequenceExpression=p,t.AssignmentExpression=d,t.UpdateExpression=h,t.StringLiteral=m,t.NumericLiteral=y,t.BooleanLiteral=v,t.NullLiteral=g,t.RegExpLiteral=b,t.ObjectExpression=E,t.ArrayExpression=x,t.RestElement=A,t.CallExpression=_,t.TaggedTemplateExpression=D;var P=r(1),k=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(P);s.validParent=!0,A.validParent=!0,t.FunctionExpression=S,t.ArrowFunctionExpression=S,t.FunctionDeclaration=S,t.ClassExpression=S,t.ClassDeclaration=S},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){function r(e){var t=n[s];return"*"===t||e===t}if(!this.isMemberExpression())return!1;for(var n=e.split("."),i=[this.node],s=0;i.length;){var a=i.shift();if(t&&s===n.length)return!0;if(C.isIdentifier(a)){if(!r(a.name))return!1}else if(C.isLiteral(a)){if(!r(a.value))return!1}else{if(C.isMemberExpression(a)){if(a.computed&&!C.isLiteral(a.property))return!1;i.unshift(a.property),i.unshift(a.object);continue}if(!C.isThisExpression(a))return!1;if(!r("this"))return!1}if(++s>n.length)return!1}return s===n.length}function s(e){var t=this.node&&this.node[e];return t&&Array.isArray(t)?!!t.length:!!t}function a(){return this.scope.isStatic(this.node)}function o(e){return!this.has(e)}function u(e,t){return this.node[e]===t}function l(e){return C.isType(this.type,e)}function c(){return("init"===this.key||"left"===this.key)&&this.parentPath.isFor()}function f(e){return!("body"!==this.key||!this.parentPath.isArrowFunctionExpression())&&(this.isExpression()?C.isBlockStatement(e):!!this.isBlockStatement()&&C.isExpression(e))}function p(e){var t=this,r=!0;do{var n=t.container;if(t.isFunction()&&!r)return!!e;if(r=!1,Array.isArray(n)&&t.key!==n.length-1)return!1}while((t=t.parentPath)&&!t.isProgram());return!0}function d(){return!this.parentPath.isLabeledStatement()&&!C.isBlockStatement(this.container)&&(0,_.default)(C.STATEMENT_OR_BLOCK_KEYS,this.key)}function h(e,t){if(!this.isReferencedIdentifier())return!1;var r=this.scope.getBinding(this.node.name);if(!r||"module"!==r.kind)return!1;var n=r.path,i=n.parentPath;return!!i.isImportDeclaration()&&(i.node.source.value===e&&(!t||(!(!n.isImportDefaultSpecifier()||"default"!==t)||(!(!n.isImportNamespaceSpecifier()||"*"!==t)||!(!n.isImportSpecifier()||n.node.imported.name!==t)))))}function m(){var e=this.node;return e.end?this.hub.file.code.slice(e.start,e.end):""}function y(e){return"after"!==this._guessExecutionStatusRelativeTo(e)}function v(e){var t=e.scope.getFunctionParent(),r=this.scope.getFunctionParent();if(t.node!==r.node){var n=this._guessExecutionStatusRelativeToDifferentFunctions(t);if(n)return n;e=t.path}var i=e.getAncestry();if(i.indexOf(this)>=0)return"after";var s=this.getAncestry(),a=void 0,o=void 0,u=void 0;for(u=0;u<s.length;u++){var l=s[u];if((o=i.indexOf(l))>=0){a=l;break}}if(!a)return"before";var c=i[o-1],f=s[u-1];return c&&f?c.listKey&&c.container===f.container?c.key>f.key?"before":"after":C.VISITOR_KEYS[c.type].indexOf(c.key)>C.VISITOR_KEYS[f.type].indexOf(f.key)?"before":"after":"before"}function g(e){var t=e.path;if(t.isFunctionDeclaration()){var r=t.scope.getBinding(t.node.id.name);if(!r.references)return"before";for(var n=r.referencePaths,i=n,s=Array.isArray(i),a=0,i=s?i:(0,A.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;if("callee"!==u.key||!u.parentPath.isCallExpression())return}for(var l=void 0,c=n,f=Array.isArray(c),p=0,c=f?c:(0,A.default)(c);;){var d;if(f){if(p>=c.length)break;d=c[p++]}else{if(p=c.next(),p.done)break;d=p.value}var h=d;if(!!!h.find(function(e){return e.node===t.node})){var m=this._guessExecutionStatusRelativeTo(h);if(l){if(l!==m)return}else l=m}}return l}}function b(e,t){return this._resolve(e,t)||this}function E(e,t){if(!(t&&t.indexOf(this)>=0))if(t=t||[],t.push(this),this.isVariableDeclarator()){if(this.get("id").isIdentifier())return this.get("init").resolve(e,t)}else if(this.isReferencedIdentifier()){var r=this.scope.getBinding(this.node.name);if(!r)return;if(!r.constant)return;if("module"===r.kind)return;if(r.path!==this){var n=r.path.resolve(e,t);if(this.find(function(e){return e.node===n.node}))return;return n}}else{if(this.isTypeCastExpression())return this.get("expression").resolve(e,t);if(e&&this.isMemberExpression()){var i=this.toComputedKey();if(!C.isLiteral(i))return;var s=i.value,a=this.get("object").resolve(e,t);if(a.isObjectExpression())for(var o=a.get("properties"),u=o,l=Array.isArray(u),c=0,u=l?u:(0,A.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;if(p.isProperty()){var d=p.get("key"),h=p.isnt("computed")&&d.isIdentifier({name:s});if(h=h||d.isLiteral({value:s}))return p.get("value").resolve(e,t)}}else if(a.isArrayExpression()&&!isNaN(+s)){var m=a.get("elements"),y=m[s];if(y)return y.resolve(e,t)}}}}t.__esModule=!0,t.is=void 0;var x=r(2),A=n(x);t.matchesPattern=i,t.has=s,t.isStatic=a,t.isnt=o,t.equals=u,t.isNodeType=l,t.canHaveVariableDeclarationOrExpression=c,t.canSwapBetweenExpressionAndStatement=f,t.isCompletionRecord=p,t.isStatementOrBlock=d,t.referencesImport=h,t.getSource=m,
t.willIMaybeExecuteBefore=y,t._guessExecutionStatusRelativeTo=v,t._guessExecutionStatusRelativeToDifferentFunctions=g,t.resolve=b,t._resolve=E;var S=r(111),_=n(S),D=r(1),C=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(D);t.is=s},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(2),s=n(i),a=r(3),o=n(a),u=r(1),l=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(u),c={ReferencedIdentifier:function(e,t){if(!e.isJSXIdentifier()||!u.react.isCompatTag(e.node.name)||e.parentPath.isJSXMemberExpression()){if("this"===e.node.name){var r=e.scope;do{if(r.path.isFunction()&&!r.path.isArrowFunctionExpression())break}while(r=r.parent);r&&t.breakOnScopePaths.push(r.path)}var n=e.scope.getBinding(e.node.name);n&&n===t.scope.getBinding(e.node.name)&&(t.bindings[e.node.name]=n)}}},f=function(){function e(t,r){(0,o.default)(this,e),this.breakOnScopePaths=[],this.bindings={},this.scopes=[],this.scope=r,this.path=t,this.attachAfter=!1}return e.prototype.isCompatibleScope=function(e){for(var t in this.bindings){var r=this.bindings[t];if(!e.bindingIdentifierEquals(t,r.identifier))return!1}return!0},e.prototype.getCompatibleScopes=function(){var e=this.path.scope;do{if(!this.isCompatibleScope(e))break;if(this.scopes.push(e),this.breakOnScopePaths.indexOf(e.path)>=0)break}while(e=e.parent)},e.prototype.getAttachmentPath=function(){var e=this._getAttachmentPath();if(e){var t=e.scope;if(t.path===e&&(t=e.scope.parent),t.path.isProgram()||t.path.isFunction())for(var r in this.bindings)if(t.hasOwnBinding(r)){var n=this.bindings[r];if("param"!==n.kind&&this.getAttachmentParentForPath(n.path).key>e.key){this.attachAfter=!0,e=n.path;for(var i=n.constantViolations,a=Array.isArray(i),o=0,i=a?i:(0,s.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;this.getAttachmentParentForPath(l).key>e.key&&(e=l)}}}return e.parentPath.isExportDeclaration()&&(e=e.parentPath),e}},e.prototype._getAttachmentPath=function(){var e=this.scopes,t=e.pop();if(t){if(t.path.isFunction()){if(this.hasOwnParamBindings(t)){if(this.scope===t)return;return t.path.get("body").get("body")[0]}return this.getNextScopeAttachmentParent()}return t.path.isProgram()?this.getNextScopeAttachmentParent():void 0}},e.prototype.getNextScopeAttachmentParent=function(){var e=this.scopes.pop();if(e)return this.getAttachmentParentForPath(e.path)},e.prototype.getAttachmentParentForPath=function(e){do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement()||e.isVariableDeclarator()&&null!==e.parentPath.node&&e.parentPath.node.declarations.length>1)return e}while(e=e.parentPath)},e.prototype.hasOwnParamBindings=function(e){for(var t in this.bindings)if(e.hasOwnBinding(t)){var r=this.bindings[t];if("param"===r.kind&&r.constant)return!0}return!1},e.prototype.run=function(){var e=this.path.node;if(!e._hoisted){e._hoisted=!0,this.path.traverse(c,this),this.getCompatibleScopes();var t=this.getAttachmentPath();if(t&&t.getFunctionParent()!==this.path.getFunctionParent()){var r=t.scope.generateUidIdentifier("ref"),n=l.variableDeclarator(r,this.path.node);t[this.attachAfter?"insertAfter":"insertBefore"]([t.isVariableDeclarator()?n:l.variableDeclaration("var",[n])]);var i=this.path.parentPath;i.isJSXElement()&&this.path.container===i.node.children&&(r=l.JSXExpressionContainer(r)),this.path.replaceWith(r)}}},e}();t.default=f,e.exports=t.default},function(e,t){"use strict";t.__esModule=!0;t.hooks=[function(e,t){if("test"===e.key&&(t.isWhile()||t.isSwitchCase())||"declaration"===e.key&&t.isExportDeclaration()||"body"===e.key&&t.isLabeledStatement()||"declarations"===e.listKey&&t.isVariableDeclaration()&&1===t.node.declarations.length||"expression"===e.key&&t.isExpressionStatement())return t.remove(),!0},function(e,t){if(t.isSequenceExpression()&&1===t.node.expressions.length)return t.replaceWith(t.node.expressions[0]),!0},function(e,t){if(t.isBinary())return"left"===e.key?t.replaceWith(t.node.right):t.replaceWith(t.node.left),!0},function(e,t){if(t.isIfStatement()&&("consequent"===e.key||"alternate"===e.key)||"body"===e.key&&(t.isLoop()||t.isArrowFunctionExpression()))return e.replaceWith({type:"BlockStatement",body:[]}),!0}]},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertBefore(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key)this.node&&e.push(this.node),this.replaceExpressionWithStatements(e);else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertBefore(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.push(this.node),this._replaceWith(D.blockStatement(e))}return[this]}function s(e,t){this.updateSiblingKeys(e,t.length);for(var r=[],n=0;n<t.length;n++){var i=e+n,s=t[n];if(this.container.splice(i,0,s),this.context){var a=this.context.create(this.parent,this.container,i,this.listKey);this.context.queue&&a.pushContext(this.context),r.push(a)}else r.push(S.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:i}))}for(var o=this._getQueueContexts(),u=r,l=Array.isArray(u),c=0,u=l?u:(0,g.default)(u);;){var f;if(l){if(c>=u.length)break;f=u[c++]}else{if(c=u.next(),c.done)break;f=c.value}var p=f;p.setScope(),p.debug(function(){return"Inserted."});for(var d=o,h=Array.isArray(d),m=0,d=h?d:(0,g.default)(d);;){var y;if(h){if(m>=d.length)break;y=d[m++]}else{if(m=d.next(),m.done)break;y=m.value}y.maybeQueue(p,!0)}}return r}function a(e){return this._containerInsert(this.key,e)}function o(e){return this._containerInsert(this.key+1,e)}function u(e){var t=e[e.length-1];(D.isIdentifier(t)||D.isExpressionStatement(t)&&D.isIdentifier(t.expression))&&!this.isCompletionRecord()&&e.pop()}function l(e){if(this._assertUnremoved(),e=this._verifyNodeList(e),this.parentPath.isExpressionStatement()||this.parentPath.isLabeledStatement())return this.parentPath.insertAfter(e);if(this.isNodeType("Expression")||this.parentPath.isForStatement()&&"init"===this.key){if(this.node){var t=this.scope.generateDeclaredUidIdentifier();e.unshift(D.expressionStatement(D.assignmentExpression("=",t,this.node))),e.push(D.expressionStatement(t))}this.replaceExpressionWithStatements(e)}else{if(this._maybePopFromStatements(e),Array.isArray(this.container))return this._containerInsertAfter(e);if(!this.isStatementOrBlock())throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?");this.node&&e.unshift(this.node),this._replaceWith(D.blockStatement(e))}return[this]}function c(e,t){if(this.parent)for(var r=b.path.get(this.parent),n=0;n<r.length;n++){var i=r[n];i.key>=e&&(i.key+=t)}}function f(e){if(!e)return[];e.constructor!==Array&&(e=[e]);for(var t=0;t<e.length;t++){var r=e[t],n=void 0;if(r?"object"!==(void 0===r?"undefined":(0,y.default)(r))?n="contains a non-object node":r.type?r instanceof S.default&&(n="has a NodePath when it expected a raw object"):n="without a type":n="has falsy node",n){var i=Array.isArray(r)?"array":void 0===r?"undefined":(0,y.default)(r);throw new Error("Node list "+n+" with the index of "+t+" and type of "+i)}}return e}function p(e,t){return this._assertUnremoved(),t=this._verifyNodeList(t),S.default.get({parentPath:this,parent:this.node,container:this.node[e],listKey:e,key:0}).insertBefore(t)}function d(e,t){this._assertUnremoved(),t=this._verifyNodeList(t);var r=this.node[e];return S.default.get({parentPath:this,parent:this.node,container:r,listKey:e,key:r.length}).replaceWithMultiple(t)}function h(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.scope;return new x.default(this,e).run()}t.__esModule=!0;var m=r(11),y=n(m),v=r(2),g=n(v);t.insertBefore=i,t._containerInsert=s,t._containerInsertBefore=a,t._containerInsertAfter=o,t._maybePopFromStatements=u,t.insertAfter=l,t.updateSiblingKeys=c,t._verifyNodeList=f,t.unshiftContainer=p,t.pushContainer=d,t.hoist=h;var b=r(88),E=r(378),x=n(E),A=r(36),S=n(A),_=r(1),D=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(_)},function(e,t,r){"use strict";function n(){if(this._assertUnremoved(),this.resync(),this._callRemovalHooks())return void this._markRemoved();this.shareCommentsWithSiblings(),this._remove(),this._markRemoved()}function i(){for(var e=c.hooks,t=Array.isArray(e),r=0,e=t?e:(0,l.default)(e);;){var n;if(t){if(r>=e.length)break;n=e[r++]}else{if(r=e.next(),r.done)break;n=r.value}if(n(this,this.parentPath))return!0}}function s(){Array.isArray(this.container)?(this.container.splice(this.key,1),this.updateSiblingKeys(this.key,-1)):this._replaceWith(null)}function a(){this.shouldSkip=!0,this.removed=!0,this.node=null}function o(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")}t.__esModule=!0;var u=r(2),l=function(e){return e&&e.__esModule?e:{default:e}}(u);t.remove=n,t._callRemovalHooks=i,t._remove=s,t._markRemoved=a,t._assertUnremoved=o;var c=r(379)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){this.resync(),e=this._verifyNodeList(e),E.inheritLeadingComments(e[0],this.node),E.inheritTrailingComments(e[e.length-1],this.node),this.node=this.container[this.key]=null,this.insertAfter(e),this.node?this.requeue():this.remove()}function s(e){this.resync();try{e="("+e+")",e=(0,g.parse)(e)}catch(r){var t=r.loc;throw t&&(r.message+=" - make sure this is an expression.",r.message+="\n"+(0,d.default)(e,t.line,t.column+1)),r}return e=e.program.body[0].expression,m.default.removeProperties(e),this.replaceWith(e)}function a(e){if(this.resync(),this.removed)throw new Error("You can't replace this node, we've already removed it");if(e instanceof v.default&&(e=e.node),!e)throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");if(this.node!==e){if(this.isProgram()&&!E.isProgram(e))throw new Error("You can only replace a Program root node with another Program node");if(Array.isArray(e))throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");if("string"==typeof e)throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");if(this.isNodeType("Statement")&&E.isExpression(e)&&(this.canHaveVariableDeclarationOrExpression()||this.canSwapBetweenExpressionAndStatement(e)||this.parentPath.isExportDefaultDeclaration()||(e=E.expressionStatement(e))),this.isNodeType("Expression")&&E.isStatement(e)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(e))return this.replaceExpressionWithStatements([e]);var t=this.node;t&&(E.inheritsComments(e,t),E.removeComments(t)),this._replaceWith(e),this.type=e.type,this.setScope(),this.requeue()}}function o(e){if(!this.container)throw new ReferenceError("Container is falsy");this.inList?E.validate(this.parent,this.key,[e]):E.validate(this.parent,this.key,e),this.debug(function(){return"Replace with "+(e&&e.type)}),this.node=this.container[this.key]=e}function u(e){this.resync();var t=E.toSequenceExpression(e,this.scope);if(E.isSequenceExpression(t)){var r=t.expressions;r.length>=2&&this.parentPath.isExpressionStatement()&&this._maybePopFromStatements(r),1===r.length?this.replaceWith(r[0]):this.replaceWith(t)}else{if(!t){var n=E.functionExpression(null,[],E.blockStatement(e));n.shadow=!0,this.replaceWith(E.callExpression(n,[])),this.traverse(x);for(var i=this.get("callee").getCompletionRecords(),s=i,a=Array.isArray(s),o=0,s=a?s:(0,f.default)(s);;){var u;if(a){if(o>=s.length)break;u=s[o++]}else{if(o=s.next(),o.done)break;u=o.value}var l=u;if(l.isExpressionStatement()){var c=l.findParent(function(e){return e.isLoop()});if(c){var p=c.getData("expressionReplacementReturnUid");if(p)p=E.identifier(p.name);else{var d=this.get("callee");p=d.scope.generateDeclaredUidIdentifier("ret"),d.get("body").pushContainer("body",E.returnStatement(p)),c.setData("expressionReplacementReturnUid",p)}l.get("expression").replaceWith(E.assignmentExpression("=",p,l.node.expression))}else l.replaceWith(E.returnStatement(l.node.expression))}}return this.node}this.replaceWith(t)}}function l(e){return this.resync(),Array.isArray(e)?Array.isArray(this.container)?(e=this._verifyNodeList(e),this._containerInsertAfter(e),this.remove()):this.replaceWithMultiple(e):this.replaceWith(e)}t.__esModule=!0;var c=r(2),f=n(c);t.replaceWithMultiple=i,t.replaceWithSourceString=s,t.replaceWith=a,t._replaceWith=o,t.replaceExpressionWithStatements=u,t.replaceInline=l;var p=r(181),d=n(p),h=r(7),m=n(h),y=r(36),v=n(y),g=r(89),b=r(1),E=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(b),x={Function:function(e){e.skip()},VariableDeclaration:function(e){if("var"===e.node.kind){var t=e.getBindingIdentifiers();for(var r in t)e.scope.push({id:t[r]});for(var n=[],i=e.node.declarations,s=Array.isArray(i),a=0,i=s?i:(0,f.default)(i);;){var o;if(s){if(a>=i.length)break;o=i[a++]}else{if(a=i.next(),a.done)break;o=a.value}var u=o;u.init&&n.push(E.expressionStatement(E.assignmentExpression("=",u.id,u.init)))}e.replaceWithMultiple(n)}}}},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var i=r(3),s=n(i),a=r(225),o=(n(a),r(1)),u=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(o),l={ReferencedIdentifier:function(e,t){var r=e.node;r.name===t.oldName&&(r.name=t.newName)},Scope:function(e,t){e.scope.bindingIdentifierEquals(t.oldName,t.binding.identifier)||e.skip()},"AssignmentExpression|Declaration":function(e,t){var r=e.getOuterBindingIdentifiers();for(var n in r)n===t.oldName&&(r[n].name=t.newName)}},c=function(){function e(t,r,n){(0,s.default)(this,e),this.newName=n,this.oldName=r,this.binding=t}return e.prototype.maybeConvertFromExportDeclaration=function(e){var t=e.parentPath.isExportDeclaration()&&e.parentPath;if(t){var r=t.isExportDefaultDeclaration();r&&(e.isFunctionDeclaration()||e.isClassDeclaration())&&!e.node.id&&(e.node.id=e.scope.generateUidIdentifier("default"));var n=e.getOuterBindingIdentifiers(),i=[];for(var s in n){var a=s===this.oldName?this.newName:s,o=r?"default":s;i.push(u.exportSpecifier(u.identifier(a),u.identifier(o)))}if(i.length){var l=u.exportNamedDeclaration(null,i);e.isFunctionDeclaration()&&(l._blockHoist=3),t.insertAfter(l),t.replaceWith(e.node)}}},e.prototype.rename=function(e){var t=this.binding,r=this.oldName,n=this.newName,i=t.scope,s=t.path,a=s.find(function(e){return e.isDeclaration()||e.isFunctionExpression()});a&&this.maybeConvertFromExportDeclaration(a),i.traverse(e||i.block,l,this),e||(i.removeOwnBinding(r),i.bindings[n]=t,this.binding.identifier.name=n),t.type},e}();t.default=c,e.exports=t.default},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){if(e._exploded)return e;e._exploded=!0;for(var t in e)if(!d(t)){var r=t.split("|");if(1!==r.length){var n=e[t];delete e[t];for(var i=r,s=Array.isArray(i),o=0,i=s?i:(0,E.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;e[l]=n}}}a(e),delete e.__esModule,c(e),f(e);for(var m=(0,g.default)(e),y=Array.isArray(m),v=0,m=y?m:(0,E.default)(m);;){var b;if(y){if(v>=m.length)break;b=m[v++]}else{if(v=m.next(),v.done)break;b=v.value}var x=b;if(!d(x)){var S=A[x];if(S){var _=e[x];for(var D in _)_[D]=p(S,_[D]);if(delete e[x],S.types)for(var w=S.types,k=Array.isArray(w),F=0,w=k?w:(0,E.default)(w);;){var T;if(k){if(F>=w.length)break;T=w[F++]}else{if(F=w.next(),F.done)break;T=F.value}var O=T;e[O]?h(e[O],_):e[O]=_}else h(e,_)}}}for(var B in e)if(!d(B)){var R=e[B],I=C.FLIPPED_ALIAS_KEYS[B],M=C.DEPRECATED_KEYS[B];if(M&&(console.trace("Visitor defined for "+B+" but it has been renamed to "+M),I=[M]),I){delete e[B];for(var N=I,L=Array.isArray(N),j=0,N=L?N:(0,E.default)(N);;){var U;if(L){if(j>=N.length)break;U=N[j++]}else{if(j=N.next(),j.done)break;U=j.value}var V=U,G=e[V];G?h(G,R):e[V]=(0,P.default)(R)}}}for(var W in e)d(W)||f(e[W]);return e}function a(e){if(!e._verified){if("function"==typeof e)throw new Error(_.get("traverseVerifyRootFunction"));for(var t in e)if("enter"!==t&&"exit"!==t||o(t,e[t]),!d(t)){if(C.TYPES.indexOf(t)<0)throw new Error(_.get("traverseVerifyNodeType",t));var r=e[t];if("object"===(void 0===r?"undefined":(0,y.default)(r)))for(var n in r){if("enter"!==n&&"exit"!==n)throw new Error(_.get("traverseVerifyVisitorProperty",t,n));o(t+"."+n,r[n])}}e._verified=!0}}function o(e,t){for(var r=[].concat(t),n=r,i=Array.isArray(n),s=0,n=i?n:(0,E.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if("function"!=typeof o)throw new TypeError("Non-function found defined in "+e+" with type "+(void 0===o?"undefined":(0,y.default)(o)))}}function u(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2],n={},i=0;i<e.length;i++){var a=e[i],o=t[i];s(a);for(var u in a){var c=a[u];(o||r)&&(c=l(c,o,r));h(n[u]=n[u]||{},c)}}return n}function l(e,t,r){var n={};for(var i in e){(function(i){var s=e[i];if(!Array.isArray(s))return"continue";s=s.map(function(e){var n=e;return t&&(n=function(r){return e.call(t,r,t)}),r&&(n=r(t.key,i,n)),n}),n[i]=s})(i)}return n}function c(e){for(var t in e)if(!d(t)){var r=e[t];"function"==typeof r&&(e[t]={enter:r})}}function f(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function p(e,t){var r=function(r){if(e.checkPath(r))return t.apply(this,arguments)};return r.toString=function(){return t.toString()},r}function d(e){return"_"===e[0]||("enter"===e||"exit"===e||"shouldSkip"===e||("blacklist"===e||"noScope"===e||"skipKeys"===e))}function h(e,t){for(var r in t)e[r]=[].concat(e[r]||[],t[r])}t.__esModule=!0;var m=r(11),y=i(m),v=r(14),g=i(v),b=r(2),E=i(b);t.explode=s,t.verify=a,t.merge=u;var x=r(224),A=n(x),S=r(20),_=n(S),D=r(1),C=n(D),w=r(109),P=i(w)},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key||e.property;return e.computed||D.isIdentifier(t)&&(t=D.stringLiteral(t.name)),t}function s(e,t,r){for(var n=[],i=!0,a=e,o=Array.isArray(a),u=0,a=o?a:(0,b.default)(a);;){var l;if(o){if(u>=a.length)break;l=a[u++]}else{if(u=a.next(),u.done)break;l=u.value}var c=l;if(i=!1,D.isExpression(c))n.push(c);else if(D.isExpressionStatement(c))n.push(c.expression);else if(D.isVariableDeclaration(c)){if("var"!==c.kind)return;for(var f=c.declarations,p=Array.isArray(f),d=0,f=p?f:(0,b.default)(f);;){var h;if(p){if(d>=f.length)break;h=f[d++]}else{if(d=f.next(),d.done)break;h=d.value}var m=h,y=D.getBindingIdentifiers(m);for(var v in y)r.push({kind:c.kind,id:y[v]});m.init&&n.push(D.assignmentExpression("=",m.id,m.init))}i=!0}else if(D.isIfStatement(c)){var g=c.consequent?s([c.consequent],t,r):t.buildUndefinedNode(),E=c.alternate?s([c.alternate],t,r):t.buildUndefinedNode();if(!g||!E)return;n.push(D.conditionalExpression(c.test,g,E))}else if(D.isBlockStatement(c)){var x=s(c.body,t,r);if(!x)return;n.push(x)}else{if(!D.isEmptyStatement(c))return;i=!0}}return i&&n.push(t.buildUndefinedNode()),1===n.length?n[0]:D.sequenceExpression(n)}function a(e,t){if(e&&e.length){var r=[],n=s(e,t,r);if(n){for(var i=r,a=Array.isArray(i),o=0,i=a?i:(0,b.default)(i);;){var u;if(a){if(o>=i.length)break;u=i[o++]}else{if(o=i.next(),o.done)break;u=o.value}var l=u;t.push(l)}return n}}}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key,r=void 0;return"method"===e.kind?o.increment()+"":(r=D.isIdentifier(t)?t.name:D.isStringLiteral(t)?(0,v.default)(t.value):(0,v.default)(D.removePropertiesDeep(D.cloneDeep(t))),e.computed&&(r="["+r+"]"),e.static&&(r="static:"+r),r)}function u(e){return e+="",e=e.replace(/[^a-zA-Z0-9$_]/g,"-"),e=e.replace(/^[-0-9]+/,""),e=e.replace(/[-\s]+(.)?/g,function(e,t){return t?t.toUpperCase():""}),D.isValidIdentifier(e)||(e="_"+e),e||"_"}function l(e){return e=u(e),"eval"!==e&&"arguments"!==e||(e="_"+e),e}function c(e,t){if(D.isStatement(e))return e;var r=!1,n=void 0;if(D.isClass(e))r=!0,n="ClassDeclaration";else if(D.isFunction(e))r=!0,n="FunctionDeclaration";else if(D.isAssignmentExpression(e))return D.expressionStatement(e);if(r&&!e.id&&(n=!1),!n){if(t)return!1;throw new Error("cannot turn "+e.type+" to a statement")}return e.type=n,e}function f(e){if(D.isExpressionStatement(e)&&(e=e.expression),D.isExpression(e))return e;if(D.isClass(e)?e.type="ClassExpression":D.isFunction(e)&&(e.type="FunctionExpression"),!D.isExpression(e))throw new Error("cannot turn "+e.type+" to an expression");return e}function p(e,t){return D.isBlockStatement(e)?e:(D.isEmptyStatement(e)&&(e=[]),Array.isArray(e)||(D.isStatement(e)||(e=D.isFunction(t)?D.returnStatement(e):D.expressionStatement(e)),e=[e]),D.blockStatement(e))}function d(e){if(void 0===e)return D.identifier("undefined");if(!0===e||!1===e)return D.booleanLiteral(e);if(null===e)return D.nullLiteral();if("string"==typeof e)return D.stringLiteral(e);if("number"==typeof e)return D.numericLiteral(e);if((0,S.default)(e)){var t=e.source,r=e.toString().match(/\/([a-z]+|)$/)[1];return D.regExpLiteral(t,r)}if(Array.isArray(e))return D.arrayExpression(e.map(D.valueToNode));if((0,x.default)(e)){var n=[];for(var i in e){var s=void 0;s=D.isValidIdentifier(i)?D.identifier(i):D.stringLiteral(i),n.push(D.objectProperty(s,D.valueToNode(e[i])))}return D.objectExpression(n)}throw new Error("don't know how to turn this value into a node")}t.__esModule=!0;var h=r(359),m=n(h),y=r(35),v=n(y),g=r(2),b=n(g);t.toComputedKey=i,t.toSequenceExpression=a,t.toKeyAlias=o,t.toIdentifier=u,t.toBindingIdentifierName=l,t.toStatement=c,t.toExpression=f,t.toBlock=p,t.valueToNode=d;var E=r(275),x=n(E),A=r(276),S=n(A),_=r(1),D=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(_);o.uid=0,o.increment=function(){return o.uid>=m.default?o.uid=0:o.uid++}},function(e,t,r){"use strict";var n=r(1),i=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(n),s=r(135),a=r(26),o=function(e){return e&&e.__esModule?e:{default:e}}(a);(0,o.default)("ArrayExpression",{fields:{elements:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeOrValueType)("null","Expression","SpreadElement"))),default:[]}},visitor:["elements"],aliases:["Expression"]}),(0,o.default)("AssignmentExpression",{fields:{operator:{validate:(0,a.assertValueType)("string")},left:{validate:(0,a.assertNodeType)("LVal")},right:{validate:(0,a.assertNodeType)("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),(0,o.default)("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:a.assertOneOf.apply(void 0,s.BINARY_OPERATORS)},left:{validate:(0,a.assertNodeType)("Expression")},right:{validate:(0,a.assertNodeType)("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),(0,o.default)("Directive",{visitor:["value"],fields:{value:{validate:(0,a.assertNodeType)("DirectiveLiteral")}}}),(0,o.default)("DirectiveLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("string")}}}),(0,o.default)("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Directive"))),default:[]},body:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","Statement"]}),(0,o.default)("BreakStatement",{visitor:["label"],fields:{label:{validate:(0,a.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,o.default)("CallExpression",{visitor:["callee","arguments"],fields:{callee:{validate:(0,a.assertNodeType)("Expression")},arguments:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression","SpreadElement")))}},aliases:["Expression"]}),(0,o.default)("CatchClause",{visitor:["param","body"],fields:{param:{validate:(0,a.assertNodeType)("Identifier")},body:{validate:(0,a.assertNodeType)("BlockStatement")}},aliases:["Scopable"]}),(0,o.default)("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},consequent:{validate:(0,a.assertNodeType)("Expression")},alternate:{validate:(0,a.assertNodeType)("Expression")}},aliases:["Expression","Conditional"]}),(0,o.default)("ContinueStatement",{visitor:["label"],fields:{label:{validate:(0,a.assertNodeType)("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),(0,o.default)("DebuggerStatement",{aliases:["Statement"]}),(0,o.default)("DoWhileStatement",{visitor:["test","body"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),(0,o.default)("EmptyStatement",{aliases:["Statement"]}),(0,o.default)("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:(0,a.assertNodeType)("Expression")}},aliases:["Statement","ExpressionWrapper"]}),(0,o.default)("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:(0,a.assertNodeType)("Program")}}}),(0,o.default)("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,a.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:(0,a.assertNodeType)("VariableDeclaration","Expression"),optional:!0},test:{validate:(0,a.assertNodeType)("Expression"),optional:!0},update:{validate:(0,a.assertNodeType)("Expression"),optional:!0},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","params","body","returnType","typeParameters"],fields:{id:{validate:(0,a.assertNodeType)("Identifier")},params:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("LVal")))},body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}},aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"]}),(0,o.default)("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{id:{validate:(0,a.assertNodeType)("Identifier"),optional:!0},params:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("LVal")))},body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}}}),(0,o.default)("Identifier",{builder:["name"],visitor:["typeAnnotation"],aliases:["Expression","LVal"],fields:{name:{validate:function(e,t,r){i.isValidIdentifier(r)}},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))}}}),(0,o.default)("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},consequent:{validate:(0,a.assertNodeType)("Statement")},alternate:{optional:!0,validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:(0,a.assertNodeType)("Identifier")},body:{validate:(0,a.assertNodeType)("Statement")}}}),(0,o.default)("StringLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:(0,a.assertValueType)("number")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("BooleanLiteral",{builder:["value"],fields:{value:{validate:(0,a.assertValueType)("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),(0,o.default)("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Literal"],fields:{pattern:{validate:(0,a.assertValueType)("string")},flags:{validate:(0,a.assertValueType)("string"),default:""}}}),(0,o.default)("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:a.assertOneOf.apply(void 0,s.LOGICAL_OPERATORS)},left:{validate:(0,a.assertNodeType)("Expression")},right:{validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("MemberExpression",{builder:["object","property","computed"],visitor:["object","property"],aliases:["Expression","LVal"],fields:{object:{validate:(0,a.assertNodeType)("Expression")},property:{validate:function(e,t,r){var n=e.computed?"Expression":"Identifier";(0,a.assertNodeType)(n)(e,t,r)}},computed:{default:!1}}}),(0,o.default)("NewExpression",{visitor:["callee","arguments"],aliases:["Expression"],fields:{callee:{validate:(0,a.assertNodeType)("Expression")},arguments:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression","SpreadElement")))}}}),(0,o.default)("Program",{visitor:["directives","body"],builder:["body","directives"],fields:{directives:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Directive"))),default:[]},body:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}},aliases:["Scopable","BlockParent","Block","FunctionParent"]}),(0,o.default)("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("ObjectMethod","ObjectProperty","SpreadProperty")))}}}),(0,o.default)("ObjectMethod",{builder:["kind","key","params","body","computed"],fields:{kind:{validate:(0,a.chain)((0,a.assertValueType)("string"),(0,a.assertOneOf)("method","get","set")),default:"method"},computed:{validate:(0,a.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];a.assertNodeType.apply(void 0,n)(e,t,r)}},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))},
body:{validate:(0,a.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,a.assertValueType)("boolean")},async:{default:!1,validate:(0,a.assertValueType)("boolean")}},visitor:["key","params","body","decorators","returnType","typeParameters"],aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]}),(0,o.default)("ObjectProperty",{builder:["key","value","computed","shorthand","decorators"],fields:{computed:{validate:(0,a.assertValueType)("boolean"),default:!1},key:{validate:function(e,t,r){var n=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];a.assertNodeType.apply(void 0,n)(e,t,r)}},value:{validate:(0,a.assertNodeType)("Expression","Pattern","RestElement")},shorthand:{validate:(0,a.assertValueType)("boolean"),default:!1},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator"))),optional:!0}},visitor:["key","value","decorators"],aliases:["UserWhitespacable","Property","ObjectMember"]}),(0,o.default)("RestElement",{visitor:["argument","typeAnnotation"],aliases:["LVal"],fields:{argument:{validate:(0,a.assertNodeType)("LVal")},decorators:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Decorator")))}}}),(0,o.default)("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,a.assertNodeType)("Expression"),optional:!0}}}),(0,o.default)("SequenceExpression",{visitor:["expressions"],fields:{expressions:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Expression")))}},aliases:["Expression"]}),(0,o.default)("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:(0,a.assertNodeType)("Expression"),optional:!0},consequent:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("Statement")))}}}),(0,o.default)("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:(0,a.assertNodeType)("Expression")},cases:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("SwitchCase")))}}}),(0,o.default)("ThisExpression",{aliases:["Expression"]}),(0,o.default)("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{body:{validate:(0,a.assertNodeType)("BlockStatement")},handler:{optional:!0,handler:(0,a.assertNodeType)("BlockStatement")},finalizer:{optional:!0,validate:(0,a.assertNodeType)("BlockStatement")}}}),(0,o.default)("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:(0,a.assertNodeType)("Expression")},operator:{validate:a.assertOneOf.apply(void 0,s.UNARY_OPERATORS)}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),(0,o.default)("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:(0,a.assertNodeType)("Expression")},operator:{validate:a.assertOneOf.apply(void 0,s.UPDATE_OPERATORS)}},visitor:["argument"],aliases:["Expression"]}),(0,o.default)("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{kind:{validate:(0,a.chain)((0,a.assertValueType)("string"),(0,a.assertOneOf)("var","let","const"))},declarations:{validate:(0,a.chain)((0,a.assertValueType)("array"),(0,a.assertEach)((0,a.assertNodeType)("VariableDeclarator")))}}}),(0,o.default)("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:(0,a.assertNodeType)("LVal")},init:{optional:!0,validate:(0,a.assertNodeType)("Expression")}}}),(0,o.default)("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("BlockStatement","Statement")}}}),(0,o.default)("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{object:(0,a.assertNodeType)("Expression")},body:{validate:(0,a.assertNodeType)("BlockStatement","Statement")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AssignmentPattern",{visitor:["left","right"],aliases:["Pattern","LVal"],fields:{left:{validate:(0,n.assertNodeType)("Identifier")},right:{validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrayPattern",{visitor:["elements","typeAnnotation"],aliases:["Pattern","LVal"],fields:{elements:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Identifier","Pattern","RestElement")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["params","body","returnType","typeParameters"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:{params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement","Expression")},async:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("ClassBody",{visitor:["body"],fields:{body:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ClassMethod","ClassProperty")))}}}),(0,i.default)("ClassDeclaration",{builder:["id","superClass","body","decorators"],visitor:["id","body","superClass","mixins","typeParameters","superTypeParameters","implements","decorators"],aliases:["Scopable","Class","Statement","Declaration","Pureish"],fields:{id:{validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ClassExpression",{inherits:"ClassDeclaration",aliases:["Scopable","Class","Expression","Pureish"],fields:{id:{optional:!0,validate:(0,n.assertNodeType)("Identifier")},body:{validate:(0,n.assertNodeType)("ClassBody")},superClass:{optional:!0,validate:(0,n.assertNodeType)("Expression")},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("ExportAllDeclaration",{visitor:["source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("FunctionDeclaration","ClassDeclaration","Expression")}}}),(0,i.default)("ExportNamedDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration","ExportDeclaration"],fields:{declaration:{validate:(0,n.assertNodeType)("Declaration"),optional:!0},specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ExportSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral"),optional:!0}}}),(0,i.default)("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ForOfStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("ImportDeclaration",{visitor:["specifiers","source"],aliases:["Statement","Declaration","ModuleDeclaration"],fields:{specifiers:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier")))},source:{validate:(0,n.assertNodeType)("StringLiteral")}}}),(0,i.default)("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ImportSpecifier",{visitor:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:(0,n.assertNodeType)("Identifier")},imported:{validate:(0,n.assertNodeType)("Identifier")},importKind:{validate:(0,n.assertOneOf)(null,"type","typeof")}}}),(0,i.default)("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:(0,n.assertValueType)("string")},property:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("ClassMethod",{aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static"],visitor:["key","params","body","decorators","returnType","typeParameters"],fields:{kind:{validate:(0,n.chain)((0,n.assertValueType)("string"),(0,n.assertOneOf)("get","set","method","constructor")),default:"method"},computed:{default:!1,validate:(0,n.assertValueType)("boolean")},static:{default:!1,validate:(0,n.assertValueType)("boolean")},key:{validate:function(e,t,r){var i=e.computed?["Expression"]:["Identifier","StringLiteral","NumericLiteral"];n.assertNodeType.apply(void 0,i)(e,t,r)}},params:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("LVal")))},body:{validate:(0,n.assertNodeType)("BlockStatement")},generator:{default:!1,validate:(0,n.assertValueType)("boolean")},async:{default:!1,validate:(0,n.assertValueType)("boolean")}}}),(0,i.default)("ObjectPattern",{visitor:["properties","typeAnnotation"],aliases:["Pattern","LVal"],fields:{properties:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("RestProperty","Property")))},decorators:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Decorator")))}}}),(0,i.default)("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("Super",{aliases:["Expression"]}),(0,i.default)("TaggedTemplateExpression",{visitor:["tag","quasi"],aliases:["Expression"],fields:{tag:{validate:(0,n.assertNodeType)("Expression")},quasi:{validate:(0,n.assertNodeType)("TemplateLiteral")}}}),(0,i.default)("TemplateElement",{builder:["value","tail"],fields:{value:{},tail:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("TemplateElement")))},expressions:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("Expression")))}}}),(0,i.default)("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:(0,n.assertValueType)("boolean"),default:!1},argument:{optional:!0,validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("ForAwaitStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:(0,n.assertNodeType)("VariableDeclaration","LVal")},right:{validate:(0,n.assertNodeType)("Expression")},body:{validate:(0,n.assertNodeType)("Statement")}}}),(0,i.default)("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:{}}),(0,i.default)("Import",{aliases:["Expression"]}),(0,i.default)("Decorator",{visitor:["expression"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("DoExpression",{visitor:["body"],aliases:["Expression"],fields:{body:{validate:(0,n.assertNodeType)("BlockStatement")}}}),(0,i.default)("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:(0,n.assertNodeType)("Identifier")}}}),(0,i.default)("RestProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("LVal")}}}),(0,i.default)("SpreadProperty",{visitor:["argument"],aliases:["UnaryLike"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("AnyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["Flow"],fields:{}}),(0,i.default)("BooleanTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("BooleanLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NullLiteralTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ClassImplements",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("ClassProperty",{visitor:["key","value","typeAnnotation","decorators"],builder:["key","value","typeAnnotation","decorators","computed"],aliases:["Property"],fields:{computed:{validate:(0,n.assertValueType)("boolean"),default:!1}}}),(0,i.default)("DeclareClass",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareFunction",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareInterface",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModule",{visitor:["id","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareOpaqueType",{visitor:["id","typeParameters","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareVariable",{visitor:["id"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("DeclareExportDeclaration",{visitor:["declaration","specifiers","source"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("ExistentialTypeParam",{aliases:["Flow"]}),(0,i.default)("FunctionTypeAnnotation",{visitor:["typeParameters","params","rest","returnType"],aliases:["Flow"],fields:{}}),(0,i.default)("FunctionTypeParam",{visitor:["name","typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceExtends",{visitor:["id","typeParameters"],aliases:["Flow"],fields:{}}),(0,i.default)("InterfaceDeclaration",{visitor:["id","typeParameters","extends","body"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("IntersectionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("MixedTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("EmptyTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"]}),(0,i.default)("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("NumericLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("NumberTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("StringLiteralTypeAnnotation",{aliases:["Flow"],fields:{}}),(0,i.default)("StringTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("ThisTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}}),(0,i.default)("TupleTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeofTypeAnnotation",{visitor:["argument"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("OpaqueType",{visitor:["id","typeParameters","impltype","supertype"],aliases:["Flow","FlowDeclaration","Statement","Declaration"],fields:{}}),(0,i.default)("TypeAnnotation",{visitor:["typeAnnotation"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["Flow","ExpressionWrapper","Expression"],fields:{}}),(0,i.default)("TypeParameter",{visitor:["bound"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterDeclaration",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("TypeParameterInstantiation",{visitor:["params"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties"],aliases:["Flow"],fields:{}}),(0,i.default)("ObjectTypeCallProperty",{visitor:["value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeIndexer",{visitor:["id","key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeProperty",{visitor:["key","value"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("ObjectTypeSpreadProperty",{visitor:["argument"],aliases:["Flow","UserWhitespacable"],fields:{}}),(0,i.default)("QualifiedTypeIdentifier",{visitor:["id","qualification"],aliases:["Flow"],fields:{}}),(0,i.default)("UnionTypeAnnotation",{visitor:["types"],aliases:["Flow"],fields:{}}),(0,i.default)("VoidTypeAnnotation",{aliases:["Flow","FlowBaseAnnotation"],fields:{}})},function(e,t,r){"use strict";r(26),r(386),r(387),r(389),r(391),r(392),r(388)},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("JSXAttribute",{visitor:["name","value"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:(0,n.assertNodeType)("JSXElement","StringLiteral","JSXExpressionContainer")}}}),(0,i.default)("JSXClosingElement",{visitor:["name"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")}}}),(0,i.default)("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["JSX","Immutable","Expression"],fields:{openingElement:{validate:(0,n.assertNodeType)("JSXOpeningElement")},closingElement:{optional:!0,validate:(0,n.assertNodeType)("JSXClosingElement")},children:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement")))}}}),(0,i.default)("JSXEmptyExpression",{aliases:["JSX","Expression"]}),(0,i.default)("JSXExpressionContainer",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXSpreadChild",{visitor:["expression"],aliases:["JSX","Immutable"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXIdentifier",{builder:["name"],aliases:["JSX","Expression"],fields:{name:{validate:(0,n.assertValueType)("string")}}}),(0,i.default)("JSXMemberExpression",{visitor:["object","property"],aliases:["JSX","Expression"],fields:{object:{validate:(0,n.assertNodeType)("JSXMemberExpression","JSXIdentifier")},property:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXNamespacedName",{visitor:["namespace","name"],aliases:["JSX"],fields:{namespace:{validate:(0,n.assertNodeType)("JSXIdentifier")},name:{validate:(0,n.assertNodeType)("JSXIdentifier")}}}),(0,i.default)("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","attributes"],aliases:["JSX","Immutable"],fields:{name:{validate:(0,n.assertNodeType)("JSXIdentifier","JSXMemberExpression")},selfClosing:{default:!1,validate:(0,n.assertValueType)("boolean")},attributes:{validate:(0,n.chain)((0,n.assertValueType)("array"),(0,n.assertEach)((0,n.assertNodeType)("JSXAttribute","JSXSpreadAttribute")))}}}),(0,i.default)("JSXSpreadAttribute",{visitor:["argument"],aliases:["JSX"],fields:{argument:{validate:(0,n.assertNodeType)("Expression")}}}),(0,i.default)("JSXText",{aliases:["JSX","Immutable"],builder:["value"],fields:{value:{validate:(0,n.assertValueType)("string")}}})},function(e,t,r){"use strict";var n=r(26),i=function(e){return e&&e.__esModule?e:{default:e}}(n);(0,i.default)("Noop",{visitor:[]}),(0,i.default)("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:(0,n.assertNodeType)("Expression")}}})},function(e,t,r){"use strict";function n(e){var t=i(e);return 1===t.length?t[0]:o.unionTypeAnnotation(t)}function i(e){for(var t={},r={},n=[],s=[],a=0;a<e.length;a++){var u=e[a];if(u&&!(s.indexOf(u)>=0)){if(o.isAnyTypeAnnotation(u))return[u];if(o.isFlowBaseAnnotation(u))r[u.type]=u;else if(o.isUnionTypeAnnotation(u))n.indexOf(u.types)<0&&(e=e.concat(u.types),n.push(u.types));else if(o.isGenericTypeAnnotation(u)){var l=u.id.name;if(t[l]){var c=t[l];c.typeParameters?u.typeParameters&&(c.typeParameters.params=i(c.typeParameters.params.concat(u.typeParameters.params))):c=u.typeParameters}else t[l]=u}else s.push(u)}}for(var f in r)s.push(r[f]);for(var p in t)s.push(t[p]);return s}function s(e){if("string"===e)return o.stringTypeAnnotation();if("number"===e)return o.numberTypeAnnotation();if("undefined"===e)return o.voidTypeAnnotation();if("boolean"===e)return o.booleanTypeAnnotation();if("function"===e)return o.genericTypeAnnotation(o.identifier("Function"));if("object"===e)return o.genericTypeAnnotation(o.identifier("Object"));if("symbol"===e)return o.genericTypeAnnotation(o.identifier("Symbol"));throw new Error("Invalid typeof value")}t.__esModule=!0,t.createUnionTypeAnnotation=n,t.removeTypeDuplicates=i,t.createTypeAnnotationBasedOnTypeof=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a)},function(e,t,r){"use strict";function n(e){return!!e&&/^[a-z]|\-/.test(e)}function i(e,t){for(var r=e.value.split(/\r\n|\n|\r/),n=0,i=0;i<r.length;i++)r[i].match(/[^ \t]/)&&(n=i);for(var s="",a=0;a<r.length;a++){var u=r[a],l=0===a,c=a===r.length-1,f=a===n,p=u.replace(/\t/g," ");l||(p=p.replace(/^[ ]+/,"")),c||(p=p.replace(/[ ]+$/,"")),p&&(f||(p+=" "),s+=p)}s&&t.push(o.stringLiteral(s))}function s(e){for(var t=[],r=0;r<e.children.length;r++){var n=e.children[r];o.isJSXText(n)?i(n,t):(o.isJSXExpressionContainer(n)&&(n=n.expression),o.isJSXEmptyExpression(n)||t.push(n))}return t}t.__esModule=!0,t.isReactComponent=void 0,t.isCompatTag=n,t.buildChildren=s;var a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a);t.isReactComponent=o.buildMatchMemberExpression("React.Component")},function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=E.getBindingIdentifiers.keys[t.type];if(r)for(var n=0;n<r.length;n++){var i=r[n],s=t[i];if(Array.isArray(s)){if(s.indexOf(e)>=0)return!0}else if(s===e)return!0}return!1}function s(e,t){switch(t.type){case"BindExpression":return t.object===e||t.callee===e;case"MemberExpression":case"JSXMemberExpression":return!(t.property!==e||!t.computed)||t.object===e;case"MetaProperty":return!1;case"ObjectProperty":if(t.key===e)return t.computed;case"VariableDeclarator":return t.id!==e;case"ArrowFunctionExpression":case"FunctionDeclaration":case"FunctionExpression":for(var r=t.params,n=Array.isArray(r),i=0,r=n?r:(0,b.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if(i=r.next(),i.done)break;s=i.value}if(s===e)return!1}return t.id!==e;case"ExportSpecifier":return!t.source&&t.local===e;case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":return!1;case"JSXAttribute":return t.name!==e;case"ClassProperty":return t.key===e?t.computed:t.value===e;case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":return!1;case"ClassDeclaration":case"ClassExpression":return t.id!==e;case"ClassMethod":case"ObjectMethod":return t.key===e&&t.computed;case"LabeledStatement":return!1;case"CatchClause":return t.param!==e;case"RestElement":return!1;case"AssignmentExpression":case"AssignmentPattern":return t.right===e;case"ObjectPattern":case"ArrayPattern":return!1}return!0}function a(e){return"string"==typeof e&&!A.default.keyword.isReservedWordES6(e,!0)&&("await"!==e&&A.default.keyword.isIdentifierNameES6(e))}function o(e){return _.isVariableDeclaration(e)&&("var"!==e.kind||e[D.BLOCK_SCOPED_SYMBOL])}function u(e){return _.isFunctionDeclaration(e)||_.isClassDeclaration(e)||_.isLet(e)}function l(e){return _.isVariableDeclaration(e,{kind:"var"})&&!e[D.BLOCK_SCOPED_SYMBOL]}function c(e){return _.isImportDefaultSpecifier(e)||_.isIdentifier(e.imported||e.exported,{name:"default"})}function f(e,t){return(!_.isBlockStatement(e)||!_.isFunction(t,{body:e}))&&_.isScopable(e)}function p(e){return!!_.isType(e.type,"Immutable")||!!_.isIdentifier(e)&&"undefined"===e.name}function d(e,t){if("object"!==(void 0===e?"undefined":(0,v.default)(e))||"object"!==(void 0===e?"undefined":(0,v.default)(e))||null==e||null==t)return e===t;if(e.type!==t.type)return!1;for(var r=(0,m.default)(_.NODE_FIELDS[e.type]||e.type),n=r,i=Array.isArray(n),s=0,n=i?n:(0,b.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if(s=n.next(),s.done)break;a=s.value}var o=a;if((0,v.default)(e[o])!==(0,v.default)(t[o]))return!1;if(Array.isArray(e[o])){if(!Array.isArray(t[o]))return!1;if(e[o].length!==t[o].length)return!1;for(var u=0;u<e[o].length;u++)if(!d(e[o][u],t[o][u]))return!1}else if(!d(e[o],t[o]))return!1}return!0}t.__esModule=!0;var h=r(14),m=n(h),y=r(11),v=n(y),g=r(2),b=n(g);t.isBinding=i,t.isReferenced=s,t.isValidIdentifier=a,t.isLet=o,t.isBlockScoped=u,t.isVar=l,t.isSpecifierDefault=c,t.isScope=f,t.isImmutable=p,t.isNodesEquivalent=d;var E=r(226),x=r(97),A=n(x),S=r(1),_=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(S),D=r(135)},function(e,t){"use strict";function r(e,t,r){e instanceof RegExp&&(e=n(e,r)),t instanceof RegExp&&(t=n(t,r));var s=i(e,t,r);return s&&{start:s[0],end:s[1],pre:r.slice(0,s[0]),body:r.slice(s[0]+e.length,s[1]),post:r.slice(s[1]+t.length)}}function n(e,t){var r=t.match(e);return r?r[0]:null}function i(e,t,r){var n,i,s,a,o,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=0&&l>0){for(n=[],s=r.length;c>=0&&!o;)c==u?(n.push(c),u=r.indexOf(e,c+1)):1==n.length?o=[n.pop(),l]:(i=n.pop(),i<s&&(s=i,a=l),l=r.indexOf(t,c+1)),c=u<l&&u>=0?u:l;n.length&&(o=[s,a])}return o}e.exports=r,r.range=i},function(e,t){"use strict";function r(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function n(e){return 3*e.length/4-r(e)}function i(e){var t,n,i,s,a,o=e.length;s=r(e),a=new c(3*o/4-s),n=s>0?o-4:o;var u=0;for(t=0;t<n;t+=4)i=l[e.charCodeAt(t)]<<18|l[e.charCodeAt(t+1)]<<12|l[e.charCodeAt(t+2)]<<6|l[e.charCodeAt(t+3)],a[u++]=i>>16&255,a[u++]=i>>8&255,a[u++]=255&i;return 2===s?(i=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[u++]=255&i):1===s&&(i=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[u++]=i>>8&255,a[u++]=255&i),a}function s(e){return u[e>>18&63]+u[e>>12&63]+u[e>>6&63]+u[63&e]}function a(e,t,r){for(var n,i=[],a=t;a<r;a+=3)n=(e[a]<<16)+(e[a+1]<<8)+e[a+2],i.push(s(n));return i.join("")}function o(e){for(var t,r=e.length,n=r%3,i="",s=[],o=0,l=r-n;o<l;o+=16383)s.push(a(e,o,o+16383>l?l:o+16383));return 1===n?(t=e[r-1],i+=u[t>>2],i+=u[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=u[t>>10],i+=u[t>>4&63],i+=u[t<<2&63],i+="="),s.push(i),s.join("")}t.byteLength=n,t.toByteArray=i,t.fromByteArray=o;for(var u=[],l=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,f="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",p=0,d=f.length;p<d;++p)u[p]=f[p],l[f.charCodeAt(p)]=p;l["-".charCodeAt(0)]=62,l["_".charCodeAt(0)]=63},function(e,t,r){"use strict";function n(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function i(e){return e.split("\\\\").join(m).split("\\{").join(y).split("\\}").join(v).split("\\,").join(g).split("\\.").join(b)}function s(e){return e.split(m).join("\\").split(y).join("{").split(v).join("}").split(g).join(",").split(b).join(".")}function a(e){if(!e)return[""];var t=[],r=h("{","}",e);if(!r)return e.split(",");var n=r.pre,i=r.body,s=r.post,o=n.split(",");o[o.length-1]+="{"+i+"}";var u=a(s);return s.length&&(o[o.length-1]+=u.shift(),o.push.apply(o,u)),t.push.apply(t,o),t}function o(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),p(i(e),!0).map(s)):[]}function u(e){return"{"+e+"}"}function l(e){return/^-?0\d/.test(e)}function c(e,t){return e<=t}function f(e,t){return e>=t}function p(e,t){var r=[],i=h("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),m=s||o,y=i.body.indexOf(",")>=0;if(!m&&!y)return i.post.match(/,.*\}/)?(e=i.pre+"{"+i.body+v+i.post,p(e)):[e];var g;if(m)g=i.body.split(/\.\./);else if(g=a(i.body),1===g.length&&(g=p(g[0],!1).map(u),1===g.length)){var b=i.post.length?p(i.post,!1):[""];return b.map(function(e){return i.pre+g[0]+e})}var E,x=i.pre,b=i.post.length?p(i.post,!1):[""];if(m){var A=n(g[0]),S=n(g[1]),_=Math.max(g[0].length,g[1].length),D=3==g.length?Math.abs(n(g[2])):1,C=c;S<A&&(D*=-1,C=f);var w=g.some(l);E=[];for(var P=A;C(P,S);P+=D){var k;if(o)"\\"===(k=String.fromCharCode(P))&&(k="");else if(k=String(P),w){var F=_-k.length;if(F>0){var T=new Array(F+1).join("0");k=P<0?"-"+T+k.slice(1):T+k}}E.push(k)}}else E=d(g,function(e){return p(e,!1)});for(var O=0;O<E.length;O++)for(var B=0;B<b.length;B++){var R=x+E[O]+b[B];(!t||m||R)&&r.push(R)}return r}var d=r(402),h=r(396);e.exports=o;var m="\0SLASH"+Math.random()+"\0",y="\0OPEN"+Math.random()+"\0",v="\0CLOSE"+Math.random()+"\0",g="\0COMMA"+Math.random()+"\0",b="\0PERIOD"+Math.random()+"\0"},function(e,t,r){(function(e){"use strict";function n(){return s.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function i(e,t){if(n()<t)throw new RangeError("Invalid typed array length");return s.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t),e.__proto__=s.prototype):(null===e&&(e=new s(t)),e.length=t),e}function s(e,t,r){if(!(s.TYPED_ARRAY_SUPPORT||this instanceof s))return new s(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return l(this,e)}return a(this,e,t,r)}function a(e,t,r,n){if("number"==typeof t)throw new TypeError('"value" argument must not be a number')
;return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?p(e,t,r,n):"string"==typeof t?c(e,t,r):d(e,t)}function o(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function u(e,t,r,n){return o(t),t<=0?i(e,t):void 0!==r?"string"==typeof n?i(e,t).fill(r,n):i(e,t).fill(r):i(e,t)}function l(e,t){if(o(t),e=i(e,t<0?0:0|h(t)),!s.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function c(e,t,r){if("string"==typeof r&&""!==r||(r="utf8"),!s.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var n=0|y(t,r);e=i(e,n);var a=e.write(t,r);return a!==n&&(e=e.slice(0,a)),e}function f(e,t){var r=t.length<0?0:0|h(t.length);e=i(e,r);for(var n=0;n<r;n+=1)e[n]=255&t[n];return e}function p(e,t,r,n){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(n||0))throw new RangeError("'length' is out of bounds");return t=void 0===r&&void 0===n?new Uint8Array(t):void 0===n?new Uint8Array(t,r):new Uint8Array(t,r,n),s.TYPED_ARRAY_SUPPORT?(e=t,e.__proto__=s.prototype):e=f(e,t),e}function d(e,t){if(s.isBuffer(t)){var r=0|h(t.length);return e=i(e,r),0===e.length?e:(t.copy(e,0,0,r),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||X(t.length)?i(e,0):f(e,t);if("Buffer"===t.type&&Q(t.data))return f(e,t.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function h(e){if(e>=n())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+n().toString(16)+" bytes");return 0|e}function m(e){return+e!=e&&(e=0),s.alloc(+e)}function y(e,t){if(s.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var n=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return Y(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(n)return Y(e).length;t=(""+t).toLowerCase(),n=!0}}function v(e,t,r){var n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if(r>>>=0,t>>>=0,r<=t)return"";for(e||(e="utf8");;)switch(e){case"hex":return O(this,t,r);case"utf8":case"utf-8":return P(this,t,r);case"ascii":return F(this,t,r);case"latin1":case"binary":return T(this,t,r);case"base64":return w(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,i){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,n)),s.isBuffer(t))return 0===t.length?-1:E(e,t,r,n,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):E(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function E(e,t,r,n,i){function s(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}var a=1,o=e.length,u=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;a=2,o/=2,u/=2,r/=2}var l;if(i){var c=-1;for(l=r;l<o;l++)if(s(e,l)===s(t,-1===c?0:l-c)){if(-1===c&&(c=l),l-c+1===u)return c*a}else-1!==c&&(l-=l-c),c=-1}else for(r+u>o&&(r=o-u),l=r;l>=0;l--){for(var f=!0,p=0;p<u;p++)if(s(e,l+p)!==s(t,p)){f=!1;break}if(f)return l}return-1}function x(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(n=i):n=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var a=0;a<n;++a){var o=parseInt(t.substr(2*a,2),16);if(isNaN(o))return a;e[r+a]=o}return a}function A(e,t,r,n){return J(Y(t,e.length-r),e,r,n)}function S(e,t,r,n){return J(q(t),e,r,n)}function _(e,t,r,n){return S(e,t,r,n)}function D(e,t,r,n){return J(H(t),e,r,n)}function C(e,t,r,n){return J(K(t,e.length-r),e,r,n)}function w(e,t,r){return 0===t&&r===e.length?z.fromByteArray(e):z.fromByteArray(e.slice(t,r))}function P(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var s=e[i],a=null,o=s>239?4:s>223?3:s>191?2:1;if(i+o<=r){var u,l,c,f;switch(o){case 1:s<128&&(a=s);break;case 2:u=e[i+1],128==(192&u)&&(f=(31&s)<<6|63&u)>127&&(a=f);break;case 3:u=e[i+1],l=e[i+2],128==(192&u)&&128==(192&l)&&(f=(15&s)<<12|(63&u)<<6|63&l)>2047&&(f<55296||f>57343)&&(a=f);break;case 4:u=e[i+1],l=e[i+2],c=e[i+3],128==(192&u)&&128==(192&l)&&128==(192&c)&&(f=(15&s)<<18|(63&u)<<12|(63&l)<<6|63&c)>65535&&f<1114112&&(a=f)}}null===a?(a=65533,o=1):a>65535&&(a-=65536,n.push(a>>>10&1023|55296),a=56320|1023&a),n.push(a),i+=o}return k(n)}function k(e){var t=e.length;if(t<=Z)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=Z));return r}function F(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function T(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function O(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",s=t;s<r;++s)i+=W(e[s]);return i}function B(e,t,r){for(var n=e.slice(t,r),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+256*n[s+1]);return i}function R(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function I(e,t,r,n,i,a){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function M(e,t,r,n){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-r,2);i<s;++i)e[r+i]=(t&255<<8*(n?i:1-i))>>>8*(n?i:1-i)}function N(e,t,r,n){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-r,4);i<s;++i)e[r+i]=t>>>8*(n?i:3-i)&255}function L(e,t,r,n,i,s){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function j(e,t,r,n,i){return i||L(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),$.write(e,t,r,n,23,4),r+4}function U(e,t,r,n,i){return i||L(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),$.write(e,t,r,n,52,8),r+8}function V(e){if(e=G(e).replace(ee,""),e.length<2)return"";for(;e.length%4!=0;)e+="=";return e}function G(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function W(e){return e<16?"0"+e.toString(16):e.toString(16)}function Y(e,t){t=t||1/0;for(var r,n=e.length,i=null,s=[],a=0;a<n;++a){if((r=e.charCodeAt(a))>55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(a+1===n){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function q(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}function K(e,t){for(var r,n,i,s=[],a=0;a<e.length&&!((t-=2)<0);++a)r=e.charCodeAt(a),n=r>>8,i=r%256,s.push(i),s.push(n);return s}function H(e){return z.toByteArray(V(e))}function J(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function X(e){return e!==e}var z=r(397),$=r(465),Q=r(400);t.Buffer=s,t.SlowBuffer=m,t.INSPECT_MAX_BYTES=50,s.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=n(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,r){return a(null,e,t,r)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,r){return u(null,e,t,r)},s.allocUnsafe=function(e){return l(null,e)},s.allocUnsafeSlow=function(e){return l(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,n=t.length,i=0,a=Math.min(r,n);i<a;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0},s.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(e,t){if(!Q(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return s.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=s.allocUnsafe(t),i=0;for(r=0;r<e.length;++r){var a=e[r];if(!s.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,i),i+=a.length}return n},s.byteLength=y,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},s.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},s.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},s.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?P(this,0,e):v.apply(this,arguments)},s.prototype.equals=function(e){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===s.compare(this,e)},s.prototype.inspect=function(){var e="",r=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(e+=" ... ")),"<Buffer "+e+">"},s.prototype.compare=function(e,t,r,n,i){if(!s.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===i&&(i=this.length),t<0||r>e.length||n<0||i>this.length)throw new RangeError("out of range index");if(n>=i&&t>=r)return 0;if(n>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,i>>>=0,this===e)return 0;for(var a=i-n,o=r-t,u=Math.min(a,o),l=this.slice(n,i),c=e.slice(t,r),f=0;f<u;++f)if(l[f]!==c[f]){a=l[f],o=c[f];break}return a<o?-1:o<a?1:0},s.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},s.prototype.indexOf=function(e,t,r){return b(this,e,t,r,!0)},s.prototype.lastIndexOf=function(e,t,r){return b(this,e,t,r,!1)},s.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}var i=this.length-t;if((void 0===r||r>i)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var s=!1;;)switch(n){case"hex":return x(this,e,t,r);case"utf8":case"utf-8":return A(this,e,t,r);case"ascii":return S(this,e,t,r);case"latin1":case"binary":return _(this,e,t,r);case"base64":return D(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),s=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Z=4096;s.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n;if(s.TYPED_ARRAY_SUPPORT)n=this.subarray(e,t),n.__proto__=s.prototype;else{var i=t-e;n=new s(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+e]}return n},s.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n},s.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e+--t],i=1;t>0&&(i*=256);)n+=this[e+--t]*i;return n},s.prototype.readUInt8=function(e,t){return t||R(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||R(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||R(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*t)),n},s.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||R(e,t,this.length);for(var n=t,i=1,s=this[e+--n];n>0&&(i*=256);)s+=this[e+--n]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},s.prototype.readInt8=function(e,t){return t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||R(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){t||R(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||R(e,4,this.length),$.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||R(e,4,this.length),$.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||R(e,8,this.length),$.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||R(e,8,this.length),$.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){I(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,s=0;for(this[t]=255&e;++s<r&&(i*=256);)this[t+s]=e/i&255;return t+r},s.prototype.writeUIntBE=function(e,t,r,n){if(e=+e,t|=0,r|=0,!n){I(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);I(this,e,t,r,i-1,-i)}var s=0,a=1,o=0;for(this[t]=255&e;++s<r&&(a*=256);)e<0&&0===o&&0!==this[t+s-1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+r},s.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t|=0,!n){var i=Math.pow(2,8*r-1);I(this,e,t,r,i-1,-i)}var s=r-1,a=1,o=0;for(this[t+s]=255&e;--s>=0&&(a*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/a>>0)-o&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):M(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):M(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||I(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,r){return j(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return j(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return U(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return U(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,n){if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var i,a=n-r;if(this===e&&r<t&&t<n)for(i=a-1;i>=0;--i)e[i+t]=this[i+r];else if(a<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+a),t);return a},s.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var o=s.isBuffer(e)?e:Y(new s(e,n).toString()),u=o.length;for(a=0;a<r-t;++a)this[a+t]=o[a%u]}return this};var ee=/[^+\/0-9A-Za-z-_]/g}).call(t,function(){return this}())},function(e,t){"use strict";var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,r){(function(t){"use strict";function n(e){this.enabled=e&&void 0!==e.enabled?e.enabled:c}function i(e){var t=function e(){return s.apply(e,arguments)};return t._styles=e,t.enabled=this.enabled,t.__proto__=h,t}function s(){var e=arguments,t=e.length,r=0!==t&&String(arguments[0]);if(t>1)for(var n=1;n<t;n++)r+=" "+e[n];if(!this.enabled||!r)return r;var i=this._styles,s=i.length,a=o.dim.open;for(!p||-1===i.indexOf("gray")&&-1===i.indexOf("grey")||(o.dim.open="");s--;){var u=o[i[s]];r=u.open+r.replace(u.closeRe,u.open)+u.close}return o.dim.open=a,r}var a=r(460),o=r(289),u=r(622),l=r(464),c=r(623),f=Object.defineProperties,p="win32"===t.platform&&!/^xterm/i.test(t.env.TERM);p&&(o.blue.open="");var d=function(){var e={};return Object.keys(o).forEach(function(t){o[t].closeRe=new RegExp(a(o[t].close),"g"),e[t]={get:function(){return i.call(this,this._styles.concat(t))}}}),e}(),h=f(function(){},d);f(n.prototype,function(){var e={};return Object.keys(d).forEach(function(t){e[t]={get:function(){return i.call(this,[t])}}}),e}()),e.exports=new n,e.exports.styles=o,e.exports.hasColor=l,e.exports.stripColor=u,e.exports.supportsColor=c}).call(t,r(8))},function(e,t){"use strict";e.exports=function(e,t){for(var n=[],i=0;i<e.length;i++){var s=t(e[i],i);r(s)?n.push.apply(n,s):n.push(s)}return n};var r=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,r){(function(e){"use strict";function n(t){return new e(t,"base64").toString()}function i(e){return e.split(",").pop()}function s(e,r){var n=t.mapFileCommentRegex.exec(e),i=n[1]||n[2],s=u.resolve(r,i);try{return o.readFileSync(s,"utf8")}catch(e){throw new Error("An error occurred while trying to read the map file at "+s+"\n"+e)}}function a(e,t){t=t||{},t.isFileComment&&(e=s(e,t.commentFileDir)),t.hasComment&&(e=i(e)),t.isEncoded&&(e=n(e)),(t.isJSON||t.isEncoded)&&(e=JSON.parse(e)),this.sourcemap=e}var o=r(115),u=r(19);Object.defineProperty(t,"commentRegex",{get:function(){return/^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/gm}}),Object.defineProperty(t,"mapFileCommentRegex",{get:function(){return/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/gm}}),a.prototype.toJSON=function(e){return JSON.stringify(this.sourcemap,null,e)},a.prototype.toBase64=function(){var t=this.toJSON();return new e(t).toString("base64")},a.prototype.toComment=function(e){var t=this.toBase64(),r="sourceMappingURL=data:application/json;charset=utf-8;base64,"+t;return e&&e.multiline?"/*# "+r+" */":"//# "+r},a.prototype.toObject=function(){return JSON.parse(this.toJSON())},a.prototype.addProperty=function(e,t){if(this.sourcemap.hasOwnProperty(e))throw new Error("property %s already exists on the sourcemap, use set property instead");return this.setProperty(e,t)},a.prototype.setProperty=function(e,t){return this.sourcemap[e]=t,this},a.prototype.getProperty=function(e){return this.sourcemap[e]},t.fromObject=function(e){return new a(e)},t.fromJSON=function(e){return new a(e,{isJSON:!0})},t.fromBase64=function(e){return new a(e,{isEncoded:!0})},t.fromComment=function(e){return e=e.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),new a(e,{isEncoded:!0,hasComment:!0})},t.fromMapFileComment=function(e,t){return new a(e,{commentFileDir:t,isFileComment:!0,isJSON:!0})},t.fromSource=function(e){var r=e.match(t.commentRegex);return r?t.fromComment(r.pop()):null},t.fromMapFileSource=function(e,r){var n=e.match(t.mapFileCommentRegex);return n?t.fromMapFileComment(n.pop(),r):null},t.removeComments=function(e){return e.replace(t.commentRegex,"")},t.removeMapFileComments=function(e){return e.replace(t.mapFileCommentRegex,"")},t.generateMapFileComment=function(e,t){var r="sourceMappingURL="+e;return t&&t.multiline?"/*# "+r+" */":"//# "+r}}).call(t,r(399).Buffer)},function(e,t,r){"use strict";r(59),r(157),e.exports=r(439)},function(e,t,r){"use strict";var n=r(5),i=n.JSON||(n.JSON={stringify:JSON.stringify});e.exports=function(e){return i.stringify.apply(i,arguments)}},function(e,t,r){"use strict";r(96),r(157),r(59),r(441),r(451),r(450),r(449),e.exports=r(5).Map},function(e,t,r){"use strict";r(442),e.exports=9007199254740991},function(e,t,r){"use strict";r(443),e.exports=r(5).Object.assign},function(e,t,r){"use strict";r(444);var n=r(5).Object;e.exports=function(e,t){return n.create(e,t)}},function(e,t,r){"use strict";r(158),e.exports=r(5).Object.getOwnPropertySymbols},function(e,t,r){"use strict";r(445),e.exports=r(5).Object.keys},function(e,t,r){"use strict";r(446),e.exports=r(5).Object.setPrototypeOf},function(e,t,r){"use strict";r(158),e.exports=r(5).Symbol.for},function(e,t,r){"use strict";r(158),r(96),r(452),r(453),e.exports=r(5).Symbol},function(e,t,r){"use strict";r(157),r(59),e.exports=r(156).f("iterator")},function(e,t,r){"use strict";r(96),r(59),r(447),r(455),r(454),e.exports=r(5).WeakMap},function(e,t,r){"use strict";r(96),r(59),r(448),r(457),r(456),e.exports=r(5).WeakSet},function(e,t){"use strict";e.exports=function(){}},function(e,t,r){"use strict";var n=r(55);e.exports=function(e,t){var r=[];return n(e,!1,r.push,r,t),r}},function(e,t,r){"use strict";var n=r(37),i=r(153),s=r(438);e.exports=function(e){return function(t,r,a){var o,u=n(t),l=i(u.length),c=s(a,l);if(e&&r!=r){for(;l>c;)if((o=u[c++])!=o)return!0}else for(;l>c;c++)if((e||c in u)&&u[c]===r)return e||c||0;return!e&&-1}}},function(e,t,r){"use strict";var n=r(16),i=r(232),s=r(13)("species");e.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),n(t)&&null===(t=t[s])&&(t=void 0)),void 0===t?Array:t}},function(e,t,r){"use strict";var n=r(421);e.exports=function(e,t){return new(n(e))(t)}},function(e,t,r){"use strict";var n=r(23).f,i=r(90),s=r(146),a=r(43),o=r(136),u=r(55),l=r(143),c=r(233),f=r(436),p=r(22),d=r(57).fastKey,h=r(58),m=p?"_s":"size",y=function(e,t){var r,n=d(t);if("F"!==n)return e._i[n];for(r=e._f;r;r=r.n)if(r.k==t)return r};e.exports={getConstructor:function(e,t,r,l){var c=e(function(e,n){o(e,c,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=n&&u(n,r,e[l],e)});return s(c.prototype,{clear:function(){for(var e=h(this,t),r=e._i,n=e._f;n;n=n.n)n.r=!0,n.p&&(n.p=n.p.n=void 0),delete r[n.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var r=h(this,t),n=y(r,e);if(n){var i=n.n,s=n.p;delete r._i[n.i],n.r=!0,s&&(s.n=i),i&&(i.p=s),r._f==n&&(r._f=i),r._l==n&&(r._l=s),r[m]--}return!!n},forEach:function(e){h(this,t);for(var r,n=a(e,arguments.length>1?arguments[1]:void 0,3);r=r?r.n:this._f;)for(n(r.v,r.k,this);r&&r.r;)r=r.p},has:function(e){return!!y(h(this,t),e)}}),p&&n(c.prototype,"size",{get:function(){return h(this,t)[m]}}),c},def:function(e,t,r){var n,i,s=y(e,t);return s?s.v=r:(e._l=s={i:i=d(t,!0),k:t,v:r,p:n=e._l,n:void 0,r:!1},e._f||(e._f=s),n&&(n.n=s),e[m]++,"F"!==i&&(e._i[i]=s)),e},getEntry:y,setStrong:function(e,t,r){l(e,t,function(e,r){this._t=h(e,t),this._k=r,this._l=void 0},function(){for(var e=this,t=e._k,r=e._l;r&&r.r;)r=r.p;return e._t&&(e._l=r=r?r.n:e._t._f)?"keys"==t?c(0,r.k):"values"==t?c(0,r.v):c(0,[r.k,r.v]):(e._t=void 0,c(1))},r?"entries":"values",!r,!0),f(t)}}},function(e,t,r){"use strict";var n=r(228),i=r(419);e.exports=function(e){return function(){if(n(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},function(e,t,r){"use strict";var n=r(44),i=r(145),s=r(91);e.exports=function(e){var t=n(e),r=i.f;if(r)for(var a,o=r(e),u=s.f,l=0;o.length>l;)u.call(e,a=o[l++])&&t.push(a);return t}},function(e,t,r){"use strict";var n=r(15).document;e.exports=n&&n.documentElement},function(e,t,r){"use strict";var n=r(56),i=r(13)("iterator"),s=Array.prototype;e.exports=function(e){return void 0!==e&&(n.Array===e||s[i]===e)}},function(e,t,r){"use strict";var n=r(21);e.exports=function(e,t,r,i){try{return i?t(n(r)[0],r[1]):t(r)}catch(t){var s=e.return;throw void 0!==s&&n(s.call(e)),t}}},function(e,t,r){"use strict";var n=r(90),i=r(92),s=r(93),a={};r(29)(a,r(13)("iterator"),function(){return this}),e.exports=function(e,t,r){e.prototype=n(a,{next:i(1,r)}),s(e,t+" Iterator")}},function(e,t,r){"use strict";var n=r(44),i=r(37);e.exports=function(e,t){for(var r,s=i(e),a=n(s),o=a.length,u=0;o>u;)if(s[r=a[u++]]===t)return r}},function(e,t,r){"use strict";var n=r(23),i=r(21),s=r(44);e.exports=r(22)?Object.defineProperties:function(e,t){i(e);for(var r,a=s(t),o=a.length,u=0;o>u;)n.f(e,r=a[u++],t[r]);return e}},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i=r(37),s=r(236).f,a={}.toString,o="object"==("undefined"==typeof window?"undefined":n(window))&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],u=function(e){try{return s(e)}catch(e){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?u(e):s(i(e))}},function(e,t,r){"use strict";var n=r(28),i=r(94),s=r(150)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,r){"use strict";var n=r(12),i=r(5),s=r(27);e.exports=function(e,t){var r=(i.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*s(function(){r(1)}),"Object",a)}},function(e,t,r){"use strict";var n=r(16),i=r(21),s=function(e,t){if(i(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,n){try{n=r(43)(Function.call,r(235).f(Object.prototype,"__proto__").set,2),n(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,r){return s(e,r),t?e.__proto__=r:n(e,r),e}}({},!1):void 0),check:s}},function(e,t,r){"use strict";var n=r(15),i=r(5),s=r(23),a=r(22),o=r(13)("species");e.exports=function(e){var t="function"==typeof i[e]?i[e]:n[e];a&&t&&!t[o]&&s.f(t,o,{configurable:!0,get:function(){return this}})}},function(e,t,r){"use strict";var n=r(152),i=r(140);e.exports=function(e){return function(t,r){var s,a,o=String(i(t)),u=n(r),l=o.length;return u<0||u>=l?e?"":void 0:(s=o.charCodeAt(u),s<55296||s>56319||u+1===l||(a=o.charCodeAt(u+1))<56320||a>57343?e?o.charAt(u):s:e?o.slice(u,u+2):a-56320+(s-55296<<10)+65536)}}},function(e,t,r){"use strict";var n=r(152),i=Math.max,s=Math.min;e.exports=function(e,t){return e=n(e),e<0?i(e+t,0):s(e,t)}},function(e,t,r){"use strict";var n=r(21),i=r(238);e.exports=r(5).getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},function(e,t,r){"use strict";var n=r(418),i=r(233),s=r(56),a=r(37);e.exports=r(143)(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,r):"values"==t?i(0,e[r]):i(0,[r,e[r]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},function(e,t,r){"use strict";var n=r(423),i=r(58);e.exports=r(139)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=n.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return n.def(i(this,"Map"),0===e?0:e,t)}},n,!0)},function(e,t,r){"use strict";var n=r(12);n(n.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},function(e,t,r){"use strict";var n=r(12);n(n.S+n.F,"Object",{assign:r(234)})},function(e,t,r){"use strict";var n=r(12);n(n.S,"Object",{create:r(90)})},function(e,t,r){"use strict";var n=r(94),i=r(44);r(434)("keys",function(){return function(e){return i(n(e))}})},function(e,t,r){"use strict";var n=r(12);n(n.S,"Object",{setPrototypeOf:r(435).set})},function(e,t,r){"use strict";var n,i=r(137)(0),s=r(147),a=r(57),o=r(234),u=r(229),l=r(16),c=r(27),f=r(58),p=a.getWeak,d=Object.isExtensible,h=u.ufstore,m={},y=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},v={get:function(e){if(l(e)){var t=p(e);return!0===t?h(f(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(f(this,"WeakMap"),e,t)}},g=e.exports=r(139)("WeakMap",y,v,u,!0,!0);c(function(){return 7!=(new g).set((Object.freeze||Object)(m),7).get(m)})&&(n=u.getConstructor(y,"WeakMap"),o(n.prototype,v),a.NEED=!0,i(["delete","has","get","set"],function(e){var t=g.prototype,r=t[e];s(t,e,function(t,i){if(l(t)&&!d(t)){this._f||(this._f=new n);var s=this._f[e](t,i);return"set"==e?this:s}return r.call(this,t,i)})}))},function(e,t,r){"use strict"
;var n=r(229),i=r(58);r(139)("WeakSet",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return n.def(i(this,"WeakSet"),e,!0)}},n,!1,!0)},function(e,t,r){"use strict";r(148)("Map")},function(e,t,r){"use strict";r(149)("Map")},function(e,t,r){"use strict";var n=r(12);n(n.P+n.R,"Map",{toJSON:r(424)("Map")})},function(e,t,r){"use strict";r(155)("asyncIterator")},function(e,t,r){"use strict";r(155)("observable")},function(e,t,r){"use strict";r(148)("WeakMap")},function(e,t,r){"use strict";r(149)("WeakMap")},function(e,t,r){"use strict";r(148)("WeakSet")},function(e,t,r){"use strict";r(149)("WeakSet")},function(e,t,r){"use strict";function n(e){var r,n=0;for(r in e)n=(n<<5)-n+e.charCodeAt(r),n|=0;return t.colors[Math.abs(n)%t.colors.length]}function i(e){function r(){if(r.enabled){var e=r,n=+new Date,i=n-(l||n);e.diff=i,e.prev=l,e.curr=n,l=n;for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];s[0]=t.coerce(s[0]),"string"!=typeof s[0]&&s.unshift("%O");var o=0;s[0]=s[0].replace(/%([a-zA-Z%])/g,function(r,n){if("%%"===r)return r;o++;var i=t.formatters[n];if("function"==typeof i){var a=s[o];r=i.call(e,a),s.splice(o,1),o--}return r}),t.formatArgs.call(e,s);(r.log||t.log||console.log.bind(console)).apply(e,s)}}return r.namespace=e,r.enabled=t.enabled(e),r.useColors=t.useColors(),r.color=n(e),"function"==typeof t.init&&t.init(r),r}function s(e){t.save(e),t.names=[],t.skips=[];for(var r=("string"==typeof e?e:"").split(/[\s,]+/),n=r.length,i=0;i<n;i++)r[i]&&(e=r[i].replace(/\*/g,".*?"),"-"===e[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))}function a(){t.enable("")}function o(e){var r,n;for(r=0,n=t.skips.length;r<n;r++)if(t.skips[r].test(e))return!1;for(r=0,n=t.names.length;r<n;r++)if(t.names[r].test(e))return!0;return!1}function u(e){return e instanceof Error?e.stack||e.message:e}t=e.exports=i.debug=i.default=i,t.coerce=u,t.disable=a,t.enable=s,t.enabled=o,t.humanize=r(602),t.names=[],t.skips=[],t.formatters={};var l},function(e,t,r){"use strict";function n(e){var t=0,r=0,n=0;for(var i in e){var s=e[i],a=s[0],o=s[1];(a>r||a===r&&o>n)&&(r=a,n=o,t=Number(i))}return t}var i=r(615),s=/^(?:( )+|\t+)/;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");var t,r,a=0,o=0,u=0,l={};e.split(/\n/g).forEach(function(e){if(e){var n,i=e.match(s);i?(n=i[0].length,i[1]?o++:a++):n=0;var c=n-u;u=n,c?(r=c>0,t=l[r?c:-c],t?t[0]++:t=l[c]=[1,0]):t&&(t[1]+=Number(r))}});var c,f,p=n(l);return p?o>=a?(c="space",f=i(" ",p)):(c="tab",f=i("\t",p)):(c=null,f=""),{amount:p,type:c,indent:f}}},function(e,t){"use strict";var r=/[|\\{}()[\]^$+*?.]/g;e.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(r,"\\$&")}},function(e,t){"use strict";!function(){function t(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function r(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function n(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function i(e){return n(e)||null!=e&&"FunctionDeclaration"===e.type}function s(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}function a(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=s(t)}while(t);return!1}e.exports={isExpression:t,isStatement:n,isIterationStatement:r,isSourceElement:i,isProblematicIfStatement:a,trailingStatement:s}}()},function(e,t,r){"use strict";!function(){function t(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function n(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,r){if(r&&t(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function s(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function o(e){return"eval"===e||"arguments"===e}function u(e){var t,r,n;if(0===e.length)return!1;if(n=e.charCodeAt(0),!d.isIdentifierStartES5(n))return!1;for(t=1,r=e.length;t<r;++t)if(n=e.charCodeAt(t),!d.isIdentifierPartES5(n))return!1;return!0}function l(e,t){return 1024*(e-55296)+(t-56320)+65536}function c(e){var t,r,n,i,s;if(0===e.length)return!1;for(s=d.isIdentifierStartES6,t=0,r=e.length;t<r;++t){if(55296<=(n=e.charCodeAt(t))&&n<=56319){if(++t>=r)return!1;if(!(56320<=(i=e.charCodeAt(t))&&i<=57343))return!1;n=l(n,i)}if(!s(n))return!1;s=d.isIdentifierPartES6}return!0}function f(e,t){return u(e)&&!s(e,t)}function p(e,t){return c(e)&&!a(e,t)}var d=r(240);e.exports={isKeywordES5:n,isKeywordES6:i,isReservedWordES5:s,isReservedWordES6:a,isRestrictedWord:o,isIdentifierNameES5:u,isIdentifierNameES6:c,isIdentifierES5:f,isIdentifierES6:p}}()},function(e,t,r){"use strict";e.exports=r(630)},function(e,t,r){"use strict";var n=r(180),i=new RegExp(n().source);e.exports=i.test.bind(i)},function(e,t){"use strict";t.read=function(e,t,r,n,i){var s,a,o=8*i-n-1,u=(1<<o)-1,l=u>>1,c=-7,f=r?i-1:0,p=r?-1:1,d=e[t+f];for(f+=p,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+e[t+f],f+=p,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=n;c>0;a=256*a+e[t+f],f+=p,c-=8);if(0===s)s=1-l;else{if(s===u)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,n),s-=l}return(d?-1:1)*a*Math.pow(2,s-n)},t.write=function(e,t,r,n,i,s){var a,o,u,l=8*s-i-1,c=(1<<l)-1,f=c>>1,p=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:s-1,h=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),t+=a+f>=1?p/u:p*Math.pow(2,1-f),t*u>=2&&(a++,u/=2),a+f>=c?(o=0,a=c):a+f>=1?(o=(t*u-1)*Math.pow(2,i),a+=f):(o=t*Math.pow(2,f-1)*Math.pow(2,i),a=0));i>=8;e[r+d]=255&o,d+=h,o/=256,i-=8);for(a=a<<i|o,l+=i;l>0;e[r+d]=255&a,d+=h,a/=256,l-=8);e[r+d-h]|=128*m}},function(e,t,r){"use strict";var n=function(e,t,r,n,i,s,a,o){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,n,i,s,a,o],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};e.exports=n},function(e,t,r){"use strict";var n=r(603);e.exports=Number.isFinite||function(e){return!("number"!=typeof e||n(e)||e===1/0||e===-1/0)}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,t.matchToToken=function(e){var t={type:"invalid",value:e[0]};return e[1]?(t.type="string",t.closed=!(!e[3]&&!e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(a){var o="object"==s(t)&&t,u="object"==s(e)&&e&&e.exports==o&&e,l="object"==(void 0===i?"undefined":s(i))&&i;l.global!==l&&l.window!==l||(a=l);var c={},f=c.hasOwnProperty,p=function(e,t){var r;for(r in e)f.call(e,r)&&t(r,e[r])},d=function(e,t){return t?(p(t,function(t,r){e[t]=r}),e):e},h=function(e,t){for(var r=e.length,n=-1;++n<r;)t(e[n])},m=c.toString,y=function(e){return"[object Array]"==m.call(e)},v=function(e){return"[object Object]"==m.call(e)},g=function(e){return"string"==typeof e||"[object String]"==m.call(e)},b=function(e){return"number"==typeof e||"[object Number]"==m.call(e)},E=function(e){return"function"==typeof e||"[object Function]"==m.call(e)},x=function(e){return"[object Map]"==m.call(e)},A=function(e){return"[object Set]"==m.call(e)},S={'"':'\\"',"'":"\\'","\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},_=/["'\\\b\f\n\r\t]/,D=/[0-9]/,C=/[ !#-&\(-\[\]-~]/,w=function e(t,r){var n={escapeEverything:!1,escapeEtago:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:"\t",__indent__:"",__inline1__:!1,__inline2__:!1},i=r&&r.json;i&&(n.quotes="double",n.wrap=!0),r=d(n,r),"single"!=r.quotes&&"double"!=r.quotes&&(r.quotes="single");var s,a="double"==r.quotes?'"':"'",o=r.compact,u=r.indent,l=r.lowercaseHex,c="",f=r.__inline1__,m=r.__inline2__,w=o?"":"\n",P=!0,k="binary"==r.numbers,F="octal"==r.numbers,T="decimal"==r.numbers,O="hexadecimal"==r.numbers;if(i&&t&&E(t.toJSON)&&(t=t.toJSON()),!g(t)){if(x(t))return 0==t.size?"new Map()":(o||(r.__inline1__=!0),"new Map("+e(Array.from(t),r)+")");if(A(t))return 0==t.size?"new Set()":"new Set("+e(Array.from(t),r)+")";if(y(t))return s=[],r.wrap=!0,f?(r.__inline1__=!1,r.__inline2__=!0):(c=r.__indent__,u+=c,r.__indent__=u),h(t,function(t){P=!1,m&&(r.__inline2__=!1),s.push((o||m?"":u)+e(t,r))}),P?"[]":m?"["+s.join(", ")+"]":"["+w+s.join(","+w)+w+(o?"":c)+"]";if(!b(t))return v(t)?(s=[],r.wrap=!0,c=r.__indent__,u+=c,r.__indent__=u,p(t,function(t,n){P=!1,s.push((o?"":u)+e(t,r)+":"+(o?"":" ")+e(n,r))}),P?"{}":"{"+w+s.join(","+w)+w+(o?"":c)+"}"):i?JSON.stringify(t)||"null":String(t);if(i)return JSON.stringify(t);if(T)return String(t);if(O){var B=t.toString(16);return l||(B=B.toUpperCase()),"0x"+B}if(k)return"0b"+t.toString(2);if(F)return"0o"+t.toString(8)}var R,I,M,N=t,L=-1,j=N.length;for(s="";++L<j;){var U=N.charAt(L);if(r.es6&&(R=N.charCodeAt(L))>=55296&&R<=56319&&j>L+1&&(I=N.charCodeAt(L+1))>=56320&&I<=57343){M=1024*(R-55296)+I-56320+65536;var V=M.toString(16);l||(V=V.toUpperCase()),s+="\\u{"+V+"}",L++}else{if(!r.escapeEverything){if(C.test(U)){s+=U;continue}if('"'==U){s+=a==U?'\\"':U;continue}if("'"==U){s+=a==U?"\\'":U;continue}}if("\0"!=U||i||D.test(N.charAt(L+1)))if(_.test(U))s+=S[U];else{var G=U.charCodeAt(0),V=G.toString(16);l||(V=V.toUpperCase());var W=V.length>2||i,Y="\\"+(W?"u":"x")+("0000"+V).slice(W?-4:-2);s+=Y}else s+="\\0"}}return r.wrap&&(s=a+s+a),r.escapeEtago?s.replace(/<\/(script|style)/gi,"<\\/$1"):s};w.version="1.3.0","object"==s(r(49))&&r(49)?void 0!==(n=function(){return w}.call(t,r,t,e))&&(e.exports=n):o&&!o.nodeType?u?u.exports=w:o.jsesc=w:a.jsesc=w}(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i="object"===n(t)?t:{};i.parse=function(){var e,t,r,i,s,a,o={"'":"'",'"':'"',"\\":"\\","/":"/","\n":"",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},u=[" ","\t","\r","\n","\v","\f"," ","\ufeff"],l=function(e){return""===e?"EOF":"'"+e+"'"},c=function(n){var i=new SyntaxError;throw i.message=n+" at line "+t+" column "+r+" of the JSON5 data. Still to read: "+JSON.stringify(s.substring(e-1,e+19)),i.at=e,i.lineNumber=t,i.columnNumber=r,i},f=function(n){return n&&n!==i&&c("Expected "+l(n)+" instead of "+l(i)),i=s.charAt(e),e++,r++,("\n"===i||"\r"===i&&"\n"!==p())&&(t++,r=0),i},p=function(){return s.charAt(e)},d=function(){var e=i;for("_"!==i&&"$"!==i&&(i<"a"||i>"z")&&(i<"A"||i>"Z")&&c("Bad identifier as unquoted key");f()&&("_"===i||"$"===i||i>="a"&&i<="z"||i>="A"&&i<="Z"||i>="0"&&i<="9");)e+=i;return e},h=function(){var e,t="",r="",n=10;if("-"!==i&&"+"!==i||(t=i,f(i)),"I"===i)return e=E(),("number"!=typeof e||isNaN(e))&&c("Unexpected word for number"),"-"===t?-e:e;if("N"===i)return e=E(),isNaN(e)||c("expected word to be NaN"),e;switch("0"===i&&(r+=i,f(),"x"===i||"X"===i?(r+=i,f(),n=16):i>="0"&&i<="9"&&c("Octal literal")),n){case 10:for(;i>="0"&&i<="9";)r+=i,f();if("."===i)for(r+=".";f()&&i>="0"&&i<="9";)r+=i;if("e"===i||"E"===i)for(r+=i,f(),"-"!==i&&"+"!==i||(r+=i,f());i>="0"&&i<="9";)r+=i,f();break;case 16:for(;i>="0"&&i<="9"||i>="A"&&i<="F"||i>="a"&&i<="f";)r+=i,f()}if(e="-"===t?-r:+r,isFinite(e))return e;c("Bad number")},m=function(){var e,t,r,n,s="";if('"'===i||"'"===i)for(r=i;f();){if(i===r)return f(),s;if("\\"===i)if(f(),"u"===i){for(n=0,t=0;t<4&&(e=parseInt(f(),16),isFinite(e));t+=1)n=16*n+e;s+=String.fromCharCode(n)}else if("\r"===i)"\n"===p()&&f();else{if("string"!=typeof o[i])break;s+=o[i]}else{if("\n"===i)break;s+=i}}c("Bad string")},y=function(){"/"!==i&&c("Not an inline comment");do{if(f(),"\n"===i||"\r"===i)return void f()}while(i)},v=function(){"*"!==i&&c("Not a block comment");do{for(f();"*"===i;)if(f("*"),"/"===i)return void f("/")}while(i);c("Unterminated block comment")},g=function(){"/"!==i&&c("Not a comment"),f("/"),"/"===i?y():"*"===i?v():c("Unrecognized comment")},b=function(){for(;i;)if("/"===i)g();else{if(!(u.indexOf(i)>=0))return;f()}},E=function(){switch(i){case"t":return f("t"),f("r"),f("u"),f("e"),!0;case"f":return f("f"),f("a"),f("l"),f("s"),f("e"),!1;case"n":return f("n"),f("u"),f("l"),f("l"),null;case"I":return f("I"),f("n"),f("f"),f("i"),f("n"),f("i"),f("t"),f("y"),1/0;case"N":return f("N"),f("a"),f("N"),NaN}c("Unexpected "+l(i))},x=function(){var e=[];if("["===i)for(f("["),b();i;){if("]"===i)return f("]"),e;if(","===i?c("Missing array element"):e.push(a()),b(),","!==i)return f("]"),e;f(","),b()}c("Bad array")},A=function(){var e,t={};if("{"===i)for(f("{"),b();i;){if("}"===i)return f("}"),t;if(e='"'===i||"'"===i?m():d(),b(),f(":"),t[e]=a(),b(),","!==i)return f("}"),t;f(","),b()}c("Bad object")};return a=function(){switch(b(),i){case"{":return A();case"[":return x();case'"':case"'":return m();case"-":case"+":case".":return h();default:return i>="0"&&i<="9"?h():E()}},function(o,u){var l;return s=String(o),e=0,t=1,r=1,i=" ",l=a(),b(),i&&c("Syntax error"),"function"==typeof u?function e(t,r){var i,s,a=t[r];if(a&&"object"===(void 0===a?"undefined":n(a)))for(i in a)Object.prototype.hasOwnProperty.call(a,i)&&(s=e(a,i),void 0!==s?a[i]=s:delete a[i]);return u.call(t,r,a)}({"":l},""):l}}(),i.stringify=function(e,t,r){function s(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e||"$"===e}function a(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e||"$"===e}function o(e){if("string"!=typeof e)return!1;if(!a(e[0]))return!1;for(var t=1,r=e.length;t<r;){if(!s(e[t]))return!1;t++}return!0}function u(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}function l(e){return"[object Date]"===Object.prototype.toString.call(e)}function c(e){for(var t=0;t<y.length;t++)if(y[t]===e)throw new TypeError("Converting circular structure to JSON")}function f(e,t,r){if(!e)return"";e.length>10&&(e=e.substring(0,10));for(var n=r?"":"\n",i=0;i<t;i++)n+=e;return n}function p(e){return v.lastIndex=0,v.test(e)?'"'+e.replace(v,function(e){var t=g[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function d(e,t,r){var i,s,a=h(e,t,r);switch(a&&!l(a)&&(a=a.valueOf()),void 0===a?"undefined":n(a)){case"boolean":return a.toString();case"number":return isNaN(a)||!isFinite(a)?"null":a.toString();case"string":return p(a.toString());case"object":if(null===a)return"null";if(u(a)){c(a),i="[",y.push(a);for(var v=0;v<a.length;v++)s=d(a,v,!1),i+=f(m,y.length),i+=null===s||void 0===s?"null":s,v<a.length-1?i+=",":m&&(i+="\n");y.pop(),a.length&&(i+=f(m,y.length,!0)),i+="]"}else{c(a),i="{";var g=!1;y.push(a);for(var b in a)if(a.hasOwnProperty(b)){var E=d(a,b,!1);r=!1,void 0!==E&&null!==E&&(i+=f(m,y.length),g=!0,t=o(b)?b:p(b),i+=t+":"+(m?" ":"")+E+",")}y.pop(),i=g?i.substring(0,i.length-1)+f(m,y.length)+"}":"{}"}return i;default:return}}if(t&&"function"!=typeof t&&!u(t))throw new Error("Replacer must be a function or an array");var h=function(e,r,n){var i=e[r];return i&&i.toJSON&&"function"==typeof i.toJSON&&(i=i.toJSON()),"function"==typeof t?t.call(e,r,i):t?n||u(e)||t.indexOf(r)>=0?i:void 0:i};i.isWord=o;var m,y=[];r&&("string"==typeof r?m=r:"number"==typeof r&&r>=0&&(m=f(" ",r,!0)));var v=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,g={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},b={"":e};return void 0===e?h(b,"",!0):d(b,"",!0)}},function(e,t){"use strict";var r=[],n=[];e.exports=function(e,t){if(e===t)return 0;var i=e.length,s=t.length;if(0===i)return s;if(0===s)return i;for(var a,o,u,l,c=0,f=0;c<i;)n[c]=e.charCodeAt(c),r[c]=++c;for(;f<s;)for(a=t.charCodeAt(f),u=f++,o=f,c=0;c<i;c++)l=a===n[c]?u:u+1,u=r[c],o=r[c]=u>o?l>o?o+1:l:l>u?u+1:l;return o}},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"DataView");e.exports=s},function(e,t,r){"use strict";function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(536),s=r(537),a=r(538),o=r(539),u=r(540);n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,e.exports=n},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"Promise");e.exports=s},function(e,t,r){"use strict";var n=r(38),i=r(17),s=n(i,"WeakMap");e.exports=s},function(e,t){"use strict";function r(e,t){return e.set(t[0],t[1]),e}e.exports=r},function(e,t){"use strict";function r(e,t){return e.add(t),e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length,i=0,s=[];++r<n;){var a=e[r];t(a,r,e)&&(s[i++]=a)}return s}e.exports=r},function(e,t,r){"use strict";function n(e,t){return!!(null==e?0:e.length)&&i(e,t,0)>-1}var i=r(166);e.exports=n},function(e,t){"use strict";function r(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}e.exports=r},function(e,t,r){"use strict";function n(e,t){return e&&i(t,s(t),e)}var i=r(31),s=r(32);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&i(t,s(t),e)}var i=r(31),s=r(47);e.exports=n},function(e,t){"use strict";function r(e,t,r){return e===e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}e.exports=r},function(e,t,r){"use strict";var n=r(18),i=Object.create,s=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();e.exports=s},function(e,t,r){"use strict";var n=r(489),i=r(526),s=i(n);e.exports=s},function(e,t,r){"use strict";function n(e,t,r,a,o){var u=-1,l=e.length;for(r||(r=s),o||(o=[]);++u<l;){var c=e[u];t>0&&r(c)?t>1?n(c,t-1,r,a,o):i(o,c):a||(o[o.length]=c)}return o}var i=r(161),s=r(543);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&i(e,t,s)}var i=r(248),s=r(32);e.exports=n},function(e,t){"use strict";function r(e,t){return null!=e&&i.call(e,t)}var n=Object.prototype,i=n.hasOwnProperty;e.exports=r},function(e,t){"use strict";function r(e,t){return null!=e&&t in Object(e)}e.exports=r},function(e,t){"use strict";function r(e,t,r,n){for(var i=r-1,s=e.length;++i<s;)if(n(e[i],t))return i;return-1}e.exports=r},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)==a}var i=r(30),s=r(25),a="[object Arguments]";e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,y,g){var b=l(e),E=l(t),x=b?h:u(e),A=E?h:u(t);x=x==d?m:x,A=A==d?m:A;var S=x==m,_=A==m,D=x==A;if(D&&c(e)){if(!c(t))return!1;b=!0,S=!1}if(D&&!S)return g||(g=new i),b||f(e)?s(e,t,r,n,y,g):a(e,t,x,r,n,y,g);if(!(r&p)){var C=S&&v.call(e,"__wrapped__"),w=_&&v.call(t,"__wrapped__");if(C||w){var P=C?e.value():e,k=w?t.value():t;return g||(g=new i),y(P,k,r,n,g)}}return!!D&&(g||(g=new i),o(e,t,r,n,y,g))}var i=r(99),s=r(260),a=r(530),o=r(531),u=r(264),l=r(6),c=r(113),f=r(177),p=1,d="[object Arguments]",h="[object Array]",m="[object Object]",y=Object.prototype,v=y.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var u=r.length,l=u,c=!n;if(null==e)return!l;for(e=Object(e);u--;){var f=r[u];if(c&&f[2]?f[1]!==e[f[0]]:!(f[0]in e))return!1}for(;++u<l;){f=r[u];var p=f[0],d=e[p],h=f[1];if(c&&f[2]){if(void 0===d&&!(p in e))return!1}else{var m=new i;if(n)var y=n(d,h,p,e,t,m);if(!(void 0===y?s(h,d,a|o,n,m):y))return!1}}return!0}var i=r(99),s=r(251),a=1,o=2;e.exports=n},function(e,t){"use strict";function r(e){return e!==e}e.exports=r},function(e,t,r){"use strict";function n(e){return!(!a(e)||s(e))&&(i(e)?h:l).test(o(e))}var i=r(175),s=r(545),a=r(18),o=r(272),u=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,c=Function.prototype,f=Object.prototype,p=c.toString,d=f.hasOwnProperty,h=RegExp("^"+p.call(d).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=n},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)==a}var i=r(30),s=r(25),a="[object RegExp]";e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)&&s(e.length)&&!!o[i(e)]}var i=r(30),s=r(176),a=r(25),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,e.exports=n},function(e,t,r){"use strict";function n(e){if(!i(e))return s(e);var t=[];for(var r in Object(e))o.call(e,r)&&"constructor"!=r&&t.push(r);return t}var i=r(105),s=r(557),a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){if(!i(e))return a(e);var t=s(e),r=[];for(var n in e)("constructor"!=n||!t&&u.call(e,n))&&r.push(n);return r}var i=r(18),s=r(105),a=r(558),o=Object.prototype,u=o.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){var t=s(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(r){return r===e||i(r,e,t)}}var i=r(495),s=r(533),a=r(269);e.exports=n},function(e,t,r){"use strict";function n(e,t){return o(e)&&u(t)?l(c(e),t):function(r){var n=s(r,e);return void 0===n&&n===t?a(r,e):i(t,n,f|p)}}var i=r(251),s=r(583),a=r(584),o=r(173),u=r(267),l=r(269),c=r(108),f=1,p=2;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,c,f){e!==t&&a(t,function(a,l){if(u(a))f||(f=new i),o(e,t,l,r,n,c,f);else{var p=c?c(e[l],a,l+"",e,t,f):void 0;void 0===p&&(p=a),s(e,l,p)}},l)}var i=r(99),s=r(247),a=r(248),o=r(505),u=r(18),l=r(47);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,g,b,E){var x=e[r],A=t[r],S=E.get(A);if(S)return void i(e,r,S);var _=b?b(x,A,r+"",e,t,E):void 0,D=void 0===_;if(D){var C=c(A),w=!C&&p(A),P=!C&&!w&&y(A);_=A,C||w||P?c(x)?_=x:f(x)?_=o(x):w?(D=!1,_=s(A,!0)):P?(D=!1,_=a(A,!0)):_=[]:m(A)||l(A)?(_=x,l(x)?_=v(x):(!h(x)||n&&d(x))&&(_=u(A))):D=!1}D&&(E.set(A,_),g(_,A,n,b,E),E.delete(A)),i(e,r,_)}var i=r(247),s=r(256),a=r(257),o=r(168),u=r(266),l=r(112),c=r(6),f=r(585),p=r(113),d=r(175),h=r(18),m=r(275),y=r(177),v=r(599);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=-1;t=i(t.length?t:[c],u(s));var f=a(e,function(e,r,s){return{criteria:i(t,function(t){return t(e)}),index:++n,value:e}});return o(f,function(e,t){return l(e,t,r)})}var i=r(60),s=r(61),a=r(252),o=r(512),u=r(102),l=r(522),c=r(110);e.exports=n},function(e,t){"use strict";function r(e){return function(t){return null==t?void 0:t[e]}}e.exports=r},function(e,t,r){"use strict";function n(e){return function(t){return i(t,e)}}var i=r(249);e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n){var l=n?a:s,f=-1,p=t.length,d=e;for(e===t&&(t=u(t)),r&&(d=i(e,o(r)));++f<p;)for(var h=0,m=t[f],y=r?r(m):m;(h=l(d,y,h,n))>-1;)d!==e&&c.call(d,h,1),c.call(e,h,1);return e}var i=r(60),s=r(166),a=r(492),o=r(102),u=r(168),l=Array.prototype,c=l.splice;e.exports=n},function(e,t){"use strict";function r(e,t){var r="";if(!e||t<1||t>n)return r;do{t%2&&(r+=e),(t=i(t/2))&&(e+=e)}while(t);return r}var n=9007199254740991,i=Math.floor;e.exports=r},function(e,t,r){"use strict";var n=r(576),i=r(259),s=r(110),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:s;e.exports=a},function(e,t){"use strict";function r(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}e.exports=r},function(e,t){"use strict";function r(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=-1,f=s,p=e.length,d=!0,h=[],m=h;if(r)d=!1,f=a;else if(p>=c){var y=t?null:u(e);if(y)return l(y);d=!1,f=o,m=new i}else m=t?[]:h;e:for(;++n<p;){var v=e[n],g=t?t(v):v;if(v=r||0!==v?v:0,d&&g===g){for(var b=m.length;b--;)if(m[b]===g)continue e;t&&m.push(g),h.push(v)}else f(m,g,r)||(m!==h&&m.push(g),h.push(v))}return h}var i=r(242),s=r(480),a=r(481),o=r(254),u=r(528),l=r(107),c=200;e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(t,function(t){return e[t]})}var i=r(60);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var i=r(167);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=t?r(a(e),o):a(e);return s(n,i,new e.constructor)}var i=r(476),s=r(246),a=r(268),o=1;e.exports=n},function(e,t){"use strict";function r(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}var n=/\w*$/;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){var n=t?r(a(e),o):a(e);return s(n,i,new e.constructor)}var i=r(477),s=r(246),a=r(107),o=1;e.exports=n},function(e,t,r){"use strict";function n(e){return a?Object(a.call(e)):{}}var i=r(45),s=i?i.prototype:void 0,a=s?s.valueOf:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t){if(e!==t){var r=void 0!==e,n=null===e,s=e===e,a=i(e),o=void 0!==t,u=null===t,l=t===t,c=i(t);if(!u&&!c&&!a&&e>t||a&&o&&l&&!u&&!c||n&&o&&l||!r&&l||!s)return 1;if(!n&&!a&&!c&&e<t||c&&r&&s&&!n&&!a||u&&r&&s||!o&&s||!l)return-1}return 0}var i=r(62);e.exports=n},function(e,t,r){"use strict";function n(e,t,r){for(var n=-1,s=e.criteria,a=t.criteria,o=s.length,u=r.length;++n<o;){var l=i(s[n],a[n]);if(l){if(n>=u)return l;return l*("desc"==r[n]?-1:1)}}return e.index-t.index}var i=r(521);e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(e,s(e),t)}var i=r(31),s=r(170);e.exports=n},function(e,t,r){"use strict";function n(e,t){return i(e,s(e),t)}var i=r(31),s=r(263);e.exports=n},function(e,t,r){"use strict";var n=r(17),i=n["__core-js_shared__"];e.exports=i},function(e,t,r){"use strict";function n(e,t){return function(r,n){if(null==r)return r;if(!i(r))return e(r,n);for(var s=r.length,a=t?s:-1,o=Object(r);(t?a--:++a<s)&&!1!==n(o[a],a,o););return r}}var i=r(24);e.exports=n},function(e,t){"use strict";function r(e){return function(t,r,n){for(var i=-1,s=Object(t),a=n(t),o=a.length;o--;){var u=a[e?o:++i];if(!1===r(s[u],u,s))break}return t}}e.exports=r},function(e,t,r){"use strict";var n=r(241),i=r(591),s=r(107),a=n&&1/s(new n([,-0]))[1]==1/0?function(e){return new n(e)}:i;e.exports=a},function(e,t,r){"use strict";function n(e,t,r,n){return void 0===e||i(e,s[r])&&!a.call(n,r)?t:e}var i=r(46),s=Object.prototype,a=s.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,i,S,D){switch(r){case A:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case x:return!(e.byteLength!=t.byteLength||!S(new s(e),new s(t)));case p:case d:case y:return a(+e,+t);case h:return e.name==t.name&&e.message==t.message;case v:case b:return e==t+"";case m:var C=u;case g:var w=n&c;if(C||(C=l),e.size!=t.size&&!w)return!1;var P=D.get(e);if(P)return P==t;n|=f,D.set(e,t);var k=o(C(e),C(t),n,i,S,D);return D.delete(e),k;case E:if(_)return _.call(e)==_.call(t)}return!1}var i=r(45),s=r(243),a=r(46),o=r(260),u=r(268),l=r(107),c=1,f=2,p="[object Boolean]",d="[object Date]",h="[object Error]",m="[object Map]",y="[object Number]",v="[object RegExp]",g="[object Set]",b="[object String]",E="[object Symbol]",x="[object ArrayBuffer]",A="[object DataView]",S=i?i.prototype:void 0,_=S?S.valueOf:void 0;e.exports=n},function(e,t,r){"use strict";function n(e,t,r,n,a,u){var l=r&s,c=i(e),f=c.length;if(f!=i(t).length&&!l)return!1;for(var p=f;p--;){var d=c[p];if(!(l?d in t:o.call(t,d)))return!1}var h=u.get(e);if(h&&u.get(t))return h==t;var m=!0;u.set(e,t),u.set(t,e);for(var y=l;++p<f;){d=c[p];var v=e[d],g=t[d];if(n)var b=l?n(g,v,d,t,e,u):n(v,g,d,e,t,u);if(!(void 0===b?v===g||a(v,g,r,n,u):b)){m=!1;break}y||(y="constructor"==d)}if(m&&!y){var E=e.constructor,x=t.constructor;E!=x&&"constructor"in e&&"constructor"in t&&!("function"==typeof E&&E instanceof E&&"function"==typeof x&&x instanceof x)&&(m=!1)}return u.delete(e),u.delete(t),m}var i=r(262),s=1,a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,a,s)}var i=r(250),s=r(263),a=r(47);e.exports=n},function(e,t,r){"use strict";function n(e){for(var t=s(e),r=t.length;r--;){var n=t[r],a=e[n];t[r]=[n,a,i(a)]}return t}var i=r(267),s=r(32);e.exports=n},function(e,t,r){"use strict";function n(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var i=o.call(e);return n&&(t?e[u]=r:delete e[u]),i}var i=r(45),s=Object.prototype,a=s.hasOwnProperty,o=s.toString,u=i?i.toStringTag:void 0;e.exports=n},function(e,t){"use strict";function r(e,t){return null==e?void 0:e[t]}e.exports=r},function(e,t,r){"use strict";function n(){this.__data__=i?i(null):{},this.size=0}var i=r(106);e.exports=n},function(e,t){"use strict";function r(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=r},function(e,t,r){"use strict";function n(e){var t=this.__data__;if(i){var r=t[e];return r===s?void 0:r}return o.call(t,e)?t[e]:void 0}var i=r(106),s="__lodash_hash_undefined__",a=Object.prototype,o=a.hasOwnProperty;e.exports=n},function(e,t,r){"use strict"
;function n(e){var t=this.__data__;return i?void 0!==t[e]:a.call(t,e)}var i=r(106),s=Object.prototype,a=s.hasOwnProperty;e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=i&&void 0===t?s:t,this}var i=r(106),s="__lodash_hash_undefined__";e.exports=n},function(e,t){"use strict";function r(e){var t=e.length,r=e.constructor(t);return t&&"string"==typeof e[0]&&i.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var n=Object.prototype,i=n.hasOwnProperty;e.exports=r},function(e,t,r){"use strict";function n(e,t,r,n){var F=e.constructor;switch(t){case b:return i(e);case f:case p:return new F(+e);case E:return s(e,n);case x:case A:case S:case _:case D:case C:case w:case P:case k:return c(e,n);case d:return a(e,n,r);case h:case v:return new F(e);case m:return o(e);case y:return u(e,n,r);case g:return l(e)}}var i=r(167),s=r(516),a=r(517),o=r(518),u=r(519),l=r(520),c=r(257),f="[object Boolean]",p="[object Date]",d="[object Map]",h="[object Number]",m="[object RegExp]",y="[object Set]",v="[object String]",g="[object Symbol]",b="[object ArrayBuffer]",E="[object DataView]",x="[object Float32Array]",A="[object Float64Array]",S="[object Int8Array]",_="[object Int16Array]",D="[object Int32Array]",C="[object Uint8Array]",w="[object Uint8ClampedArray]",P="[object Uint16Array]",k="[object Uint32Array]";e.exports=n},function(e,t,r){"use strict";function n(e){return a(e)||s(e)||!!(o&&e&&e[o])}var i=r(45),s=r(112),a=r(6),o=i?i.isConcatSpreadable:void 0;e.exports=n},function(e,t){"use strict";function r(e){var t=void 0===e?"undefined":n(e);return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=r},function(e,t,r){"use strict";function n(e){return!!s&&s in e}var i=r(525),s=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=n},function(e,t){"use strict";function r(){this.__data__=[],this.size=0}e.exports=r},function(e,t,r){"use strict";function n(e){var t=this.__data__,r=i(t,e);return!(r<0)&&(r==t.length-1?t.pop():a.call(t,r,1),--this.size,!0)}var i=r(100),s=Array.prototype,a=s.splice;e.exports=n},function(e,t,r){"use strict";function n(e){var t=this.__data__,r=i(t,e);return r<0?void 0:t[r][1]}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this.__data__,e)>-1}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=this.__data__,n=i(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var i=r(100);e.exports=n},function(e,t,r){"use strict";function n(){this.size=0,this.__data__={hash:new i,map:new(a||s),string:new i}}var i=r(473),s=r(98),a=r(159);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this,e).get(e)}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){return i(this,e).has(e)}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e,t){var r=i(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var i=r(104);e.exports=n},function(e,t,r){"use strict";function n(e){var t=i(e,function(e){return r.size===s&&r.clear(),e}),r=t.cache;return t}var i=r(589),s=500;e.exports=n},function(e,t,r){"use strict";var n=r(271),i=n(Object.keys,Object);e.exports=i},function(e,t){"use strict";function r(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}e.exports=r},function(e,t){"use strict";function r(e){return i.call(e)}var n=Object.prototype,i=n.toString;e.exports=r},function(e,t,r){"use strict";function n(e,t,r){return t=s(void 0===t?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=s(n.length-t,0),u=Array(o);++a<o;)u[a]=n[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=n[a];return l[t]=r(u),i(e,this,l)}}var i=r(244),s=Math.max;e.exports=n},function(e,t){"use strict";function r(e){return this.__data__.set(e,n),this}var n="__lodash_hash_undefined__";e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.has(e)}e.exports=r},function(e,t,r){"use strict";var n=r(511),i=r(564),s=i(n);e.exports=s},function(e,t){"use strict";function r(e){var t=0,r=0;return function(){var a=s(),o=i-(a-r);if(r=a,o>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var n=800,i=16,s=Date.now;e.exports=r},function(e,t,r){"use strict";function n(){this.__data__=new i,this.size=0}var i=r(98);e.exports=n},function(e,t){"use strict";function r(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.get(e)}e.exports=r},function(e,t){"use strict";function r(e){return this.__data__.has(e)}e.exports=r},function(e,t,r){"use strict";function n(e,t){var r=this.__data__;if(r instanceof i){var n=r.__data__;if(!s||n.length<o-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(n)}return r.set(e,t),this.size=r.size,this}var i=r(98),s=r(159),a=r(160),o=200;e.exports=n},function(e,t){"use strict";function r(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}e.exports=r},function(e,t,r){"use strict";var n=r(556),i=/^\./,s=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,o=n(function(e){var t=[];return i.test(e)&&t.push(""),e.replace(s,function(e,r,n,i){t.push(n?i.replace(a,"$1"):r||e)}),t});e.exports=o},function(e,t,r){"use strict";var n=r(31),i=r(103),s=r(47),a=i(function(e,t){n(t,s(t),e)});e.exports=a},function(e,t,r){"use strict";var n=r(31),i=r(103),s=r(47),a=i(function(e,t,r,i){n(t,s(t),e,i)});e.exports=a},function(e,t,r){"use strict";function n(e){return i(e,s|a)}var i=r(164),s=1,a=4;e.exports=n},function(e,t,r){"use strict";function n(e,t){return t="function"==typeof t?t:void 0,i(e,s|a,t)}var i=r(164),s=1,a=4;e.exports=n},function(e,t){"use strict";function r(e){return function(){return e}}e.exports=r},function(e,t,r){"use strict";function n(e){return e=i(e),e&&a.test(e)?e.replace(s,"\\$&"):e}var i=r(114),s=/[\\^$.*+?()[\]{}|]/g,a=RegExp(s.source);e.exports=n},function(e,t,r){"use strict";e.exports=r(572)},function(e,t,r){"use strict";var n=r(258),i=r(580),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var u=null==r?0:a(r);return u<0&&(u=o(n+u,0)),i(e,s(t,3),u)}var i=r(165),s=r(61),a=r(48),o=Math.max;e.exports=n},function(e,t,r){"use strict";var n=r(258),i=r(582),s=n(i);e.exports=s},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var l=n-1;return void 0!==r&&(l=a(r),l=r<0?o(n+l,0):u(l,n-1)),i(e,s(t,3),l,!0)}var i=r(165),s=r(61),a=r(48),o=Math.max,u=Math.min;e.exports=n},function(e,t,r){"use strict";function n(e,t,r){var n=null==e?void 0:i(e,t);return void 0===n?r:n}var i=r(249);e.exports=n},function(e,t,r){"use strict";function n(e,t){return null!=e&&s(e,t,i)}var i=r(491),s=r(265);e.exports=n},function(e,t,r){"use strict";function n(e){return s(e)&&i(e)}var i=r(24),s=r(25);e.exports=n},function(e,t,r){"use strict";function n(e){return"number"==typeof e&&e==i(e)}var i=r(48);e.exports=n},function(e,t,r){"use strict";function n(e){return"string"==typeof e||!s(e)&&a(e)&&i(e)==o}var i=r(30),s=r(6),a=r(25),o="[object String]";e.exports=n},function(e,t,r){"use strict";function n(e,t){return(o(e)?i:a)(e,s(t,3))}var i=r(60),s=r(61),a=r(252),o=r(6);e.exports=n},function(e,t,r){"use strict";function n(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(s);var r=function r(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var a=e.apply(this,n);return r.cache=s.set(i,a)||s,a};return r.cache=new(n.Cache||i),r}var i=r(160),s="Expected a function";n.Cache=i,e.exports=n},function(e,t,r){"use strict";var n=r(504),i=r(103),s=i(function(e,t,r,i){n(e,t,r,i)});e.exports=s},function(e,t){"use strict";function r(){}e.exports=r},function(e,t,r){"use strict";function n(e){return a(e)?i(o(e)):s(e)}var i=r(507),s=r(508),a=r(173),o=r(108);e.exports=n},function(e,t,r){"use strict";function n(e,t){return e&&e.length&&t&&t.length?i(e,t):e}var i=r(509);e.exports=n},function(e,t,r){"use strict";var n=r(488),i=r(506),s=r(101),a=r(172),o=s(function(e,t){if(null==e)return[];var r=t.length;return r>1&&a(e,t[0],t[1])?t=[]:r>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),i(e,n(t,1),[])});e.exports=o},function(e,t,r){"use strict";function n(e,t,r){return e=o(e),r=null==r?0:i(a(r),0,e.length),t=s(t),e.slice(r,r+t.length)==t}var i=r(485),s=r(253),a=r(48),o=r(114);e.exports=n},function(e,t){"use strict";function r(){return!1}e.exports=r},function(e,t,r){"use strict";function n(e){if(!e)return 0===e?e:0;if((e=i(e))===s||e===-s){return(e<0?-1:1)*a}return e===e?e:0}var i=r(598),s=1/0,a=1.7976931348623157e308;e.exports=n},function(e,t,r){"use strict";function n(e){if("number"==typeof e)return e;if(s(e))return a;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var r=l.test(e);return r||c.test(e)?f(e.slice(2),r?2:8):u.test(e)?a:+e}var i=r(18),s=r(62),a=NaN,o=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,f=parseInt;e.exports=n},function(e,t,r){"use strict";function n(e){return i(e,s(e))}var i=r(31),s=r(47);e.exports=n},function(e,t,r){"use strict";function n(e){return e&&e.length?i(e):[]}var i=r(514);e.exports=n},function(e,t,r){"use strict";function n(e,t){return t=t||{},function(r,n,i){return s(r,e,t)}}function i(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach(function(e){r[e]=t[e]}),Object.keys(e).forEach(function(t){r[t]=e[t]}),r}function s(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new a(t,r).match(e))}function a(e,t){if(!(this instanceof a))return new a(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==m.sep&&(e=e.split(m.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function o(){if(!this._made){var e=this.pattern,t=this.options;if(!t.nocomment&&"#"===e.charAt(0))return void(this.comment=!0);if(!e)return void(this.empty=!0);this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error),this.debug(this.pattern,r),r=this.globParts=r.map(function(e){return e.split(_)}),this.debug(this.pattern,r),r=r.map(function(e,t,r){return e.map(this.parse,this)},this),this.debug(this.pattern,r),r=r.filter(function(e){return-1===e.indexOf(!1)}),this.debug(this.pattern,r),this.set=r}}function u(){var e=this.pattern,t=!1,r=this.options,n=0;if(!r.nonegate){for(var i=0,s=e.length;i<s&&"!"===e.charAt(i);i++)t=!t,n++;n&&(this.pattern=e.substr(n)),this.negate=t}}function l(e,t){if(t||(t=this instanceof a?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:v(e)}function c(e,t){function r(){if(i){switch(i){case"*":a+=E,o=!0;break;case"?":a+=b,o=!0;break;default:a+="\\"+i}v.debug("clearStateChar %j %j",i,a),i=!1}}if(e.length>65536)throw new TypeError("pattern is too long");var n=this.options;if(!n.noglobstar&&"**"===e)return y;if(""===e)return"";for(var i,s,a="",o=!!n.nocase,u=!1,l=[],c=[],f=!1,p=-1,h=-1,m="."===e.charAt(0)?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",v=this,x=0,A=e.length;x<A&&(s=e.charAt(x));x++)if(this.debug("%s\t%s %s %j",e,x,a,s),u&&S[s])a+="\\"+s,u=!1;else switch(s){case"/":return!1;case"\\":r(),u=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s\t%s %s %j <-- stateChar",e,x,a,s),f){this.debug("  in class"),"!"===s&&x===h+1&&(s="^"),a+=s;continue}v.debug("call clearStateChar %j",i),r(),i=s,n.noext&&r();continue;case"(":if(f){a+="(";continue}if(!i){a+="\\(";continue}l.push({type:i,start:x-1,reStart:a.length,open:g[i].open,close:g[i].close}),a+="!"===i?"(?:(?!(?:":"(?:",this.debug("plType %j %j",i,a),i=!1;continue;case")":if(f||!l.length){a+="\\)";continue}r(),o=!0;var _=l.pop();a+=_.close,"!"===_.type&&c.push(_),_.reEnd=a.length;continue;case"|":if(f||!l.length||u){a+="\\|",u=!1;continue}r(),a+="|";continue;case"[":if(r(),f){a+="\\"+s;continue}f=!0,h=x,p=a.length,a+=s;continue;case"]":if(x===h+1||!f){a+="\\"+s,u=!1;continue}if(f){var C=e.substring(h+1,x);try{RegExp("["+C+"]")}catch(e){var w=this.parse(C,D);a=a.substr(0,p)+"\\["+w[0]+"\\]",o=o||w[1],f=!1;continue}}o=!0,f=!1,a+=s;continue;default:r(),u?u=!1:!S[s]||"^"===s&&f||(a+="\\"),a+=s}for(f&&(C=e.substr(h+1),w=this.parse(C,D),a=a.substr(0,p)+"\\["+w[0],o=o||w[1]),_=l.pop();_;_=l.pop()){var P=a.slice(_.reStart+_.open.length);this.debug("setting tail",a,_),P=P.replace(/((?:\\{2}){0,64})(\\?)\|/g,function(e,t,r){return r||(r="\\"),t+t+r+"|"}),this.debug("tail=%j\n   %s",P,P,_,a);var k="*"===_.type?E:"?"===_.type?b:"\\"+_.type;o=!0,a=a.slice(0,_.reStart)+k+"\\("+P}r(),u&&(a+="\\\\");var F=!1;switch(a.charAt(0)){case".":case"[":case"(":F=!0}for(var T=c.length-1;T>-1;T--){var O=c[T],B=a.slice(0,O.reStart),R=a.slice(O.reStart,O.reEnd-8),I=a.slice(O.reEnd-8,O.reEnd),M=a.slice(O.reEnd);I+=M;var N=B.split("(").length-1,L=M;for(x=0;x<N;x++)L=L.replace(/\)[+*?]?/,"");M=L;var j="";""===M&&t!==D&&(j="$");a=B+R+M+j+I}if(""!==a&&o&&(a="(?=.)"+a),F&&(a=m+a),t===D)return[a,o];if(!o)return d(e);var U=n.nocase?"i":"";try{var V=new RegExp("^"+a+"$",U)}catch(e){return new RegExp("$.")}return V._glob=e,V._src=a,V}function f(){if(this.regexp||!1===this.regexp)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,r=t.noglobstar?E:t.dot?x:A,n=t.nocase?"i":"",i=e.map(function(e){return e.map(function(e){return e===y?r:"string"==typeof e?h(e):e._src}).join("\\/")}).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,n)}catch(e){this.regexp=!1}return this.regexp}function p(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==m.sep&&(e=e.split(m.sep).join("/")),e=e.split(_),this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var i,s;for(s=e.length-1;s>=0&&!(i=e[s]);s--);for(s=0;s<n.length;s++){var a=n[s],o=e;r.matchBase&&1===a.length&&(o=[i]);if(this.matchOne(o,a,t))return!!r.flipNegate||!this.negate}return!r.flipNegate&&this.negate}function d(e){return e.replace(/\\(.)/g,"$1")}function h(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}e.exports=s,s.Minimatch=a;var m={sep:"/"};try{m=r(19)}catch(e){}var y=s.GLOBSTAR=a.GLOBSTAR={},v=r(398),g={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},b="[^/]",E=b+"*?",x="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",A="(?:(?!(?:\\/|^)\\.).)*?",S=function(e){return e.split("").reduce(function(e,t){return e[t]=!0,e},{})}("().*{}+?[]^$\\!"),_=/\/+/;s.filter=n,s.defaults=function(e){if(!e||!Object.keys(e).length)return s;var t=s,r=function(r,n,s){return t.minimatch(r,n,i(e,s))};return r.Minimatch=function(r,n){return new t.Minimatch(r,i(e,n))},r},a.defaults=function(e){return e&&Object.keys(e).length?s.defaults(e).Minimatch:a},a.prototype.debug=function(){},a.prototype.make=o,a.prototype.parseNegate=u,s.braceExpand=function(e,t){return l(e,t)},a.prototype.braceExpand=l,a.prototype.parse=c;var D={};s.makeRe=function(e,t){return new a(e,t||{}).makeRe()},a.prototype.makeRe=f,s.match=function(e,t,r){r=r||{};var n=new a(t,r);return e=e.filter(function(e){return n.match(e)}),n.options.nonull&&!e.length&&e.push(t),e},a.prototype.match=p,a.prototype.matchOne=function(e,t,r){var n=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var i=0,s=0,a=e.length,o=t.length;i<a&&s<o;i++,s++){this.debug("matchOne loop");var u=t[s],l=e[i];if(this.debug(t,u,l),!1===u)return!1;if(u===y){this.debug("GLOBSTAR",[t,u,l]);var c=i,f=s+1;if(f===o){for(this.debug("** at the end");i<a;i++)if("."===e[i]||".."===e[i]||!n.dot&&"."===e[i].charAt(0))return!1;return!0}for(;c<a;){var p=e[c];if(this.debug("\nglobstar while",e,c,t,f,p),this.matchOne(e.slice(c),t.slice(f),r))return this.debug("globstar found match!",c,a,p),!0;if("."===p||".."===p||!n.dot&&"."===p.charAt(0)){this.debug("dot detected!",e,c,t,f);break}this.debug("globstar swallow a segment, and continue"),c++}return!(!r||(this.debug("\n>>> no match, partial?",e,c,t,f),c!==a))}var d;if("string"==typeof u?(d=n.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,d)):(d=l.match(u),this.debug("pattern match",u,l,d)),!d)return!1}if(i===a&&s===o)return!0;if(i===a)return r;if(s===o){return i===a-1&&""===e[i]}throw new Error("wtf?")}},function(e,t){"use strict";function r(e){if(e=String(e),!(e.length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*f;case"days":case"day":case"d":return r*c;case"hours":case"hour":case"hrs":case"hr":case"h":return r*l;case"minutes":case"minute":case"mins":case"min":case"m":return r*u;case"seconds":case"second":case"secs":case"sec":case"s":return r*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function n(e){return e>=c?Math.round(e/c)+"d":e>=l?Math.round(e/l)+"h":e>=u?Math.round(e/u)+"m":e>=o?Math.round(e/o)+"s":e+"ms"}function i(e){return s(e,c,"day")||s(e,l,"hour")||s(e,u,"minute")||s(e,o,"second")||e+" ms"}function s(e,t,r){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+r:Math.ceil(e/t)+" "+r+"s"}var a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=1e3,u=60*o,l=60*u,c=24*l,f=365.25*c;e.exports=function(e,t){t=t||{};var s=void 0===e?"undefined":a(e);if("string"===s&&e.length>0)return r(e);if("number"===s&&!1===isNaN(e))return t.long?i(e):n(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},function(e,t){"use strict";e.exports=Number.isNaN||function(e){return e!==e}},function(e,t,r){(function(t){"use strict";function r(e){return"/"===e.charAt(0)}function n(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,r=t.exec(e),n=r[1]||"",i=Boolean(n&&":"!==n.charAt(1));return Boolean(r[2]||i)}e.exports="win32"===t.platform?n:r,e.exports.posix=r,e.exports.win32=n}).call(t,r(8))},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}var i=r(14),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=r(1),o=n(a),u=r(116),l=n(u),c=Object.prototype.hasOwnProperty;t.hoist=function(e){function t(e,t){o.assertVariableDeclaration(e);var n=[];return e.declarations.forEach(function(e){r[e.id.name]=o.identifier(e.id.name),e.init?n.push(o.assignmentExpression("=",e.id,e.init)):t&&n.push(e.id)}),0===n.length?null:1===n.length?n[0]:o.sequenceExpression(n)}o.assertFunction(e.node);var r={};e.get("body").traverse({VariableDeclaration:{exit:function(e){var r=t(e.node,!1);null===r?e.remove():l.replaceWithOrRemove(e,o.expressionStatement(r)),e.skip()}},ForStatement:function(e){var r=e.node.init;o.isVariableDeclaration(r)&&l.replaceWithOrRemove(e.get("init"),t(r,!1))},ForXStatement:function(e){var r=e.get("left");r.isVariableDeclaration()&&l.replaceWithOrRemove(r,t(r.node,!0))},FunctionDeclaration:function(e){var t=e.node;r[t.id.name]=t.id;var n=o.expressionStatement(o.assignmentExpression("=",t.id,o.functionExpression(t.id,t.params,t.body,t.generator,t.expression)));e.parentPath.isBlockStatement()?(e.parentPath.unshiftContainer("body",n),e.remove()):l.replaceWithOrRemove(e,n),e.skip()},FunctionExpression:function(e){e.skip()}});var n={};e.get("params").forEach(function(e){var t=e.node;o.isIdentifier(t)&&(n[t.name]=t)});var i=[];return(0,s.default)(r).forEach(function(e){c.call(n,e)||i.push(o.variableDeclarator(r[e],null))}),0===i.length?null:o.variableDeclaration("var",i)}},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(){return r(610)}},function(e,t,r){"use strict";function n(){d.default.ok(this instanceof n)}function i(e){n.call(this),m.assertLiteral(e),this.returnLoc=e}function s(e,t,r){n.call(this),m.assertLiteral(e),m.assertLiteral(t),r?m.assertIdentifier(r):r=null,this.breakLoc=e,this.continueLoc=t,this.label=r}function a(e){n.call(this),m.assertLiteral(e),this.breakLoc=e}function o(e,t,r){n.call(this),m.assertLiteral(e),t?d.default.ok(t instanceof u):t=null,r?d.default.ok(r instanceof l):r=null,d.default.ok(t||r),this.firstLoc=e,this.catchEntry=t,this.finallyEntry=r}function u(e,t){n.call(this),m.assertLiteral(e),m.assertIdentifier(t),this.firstLoc=e,this.paramId=t}function l(e,t){n.call(this),m.assertLiteral(e),m.assertLiteral(t),this.firstLoc=e,this.afterLoc=t}function c(e,t){n.call(this),m.assertLiteral(e),m.assertIdentifier(t),this.breakLoc=e,this.label=t}function f(e){d.default.ok(this instanceof f);var t=r(283).Emitter;d.default.ok(e instanceof t),this.emitter=e,this.entryStack=[new i(e.finalLoc)]}var p=r(64),d=function(e){return e&&e.__esModule?e:{default:e}}(p),h=r(1),m=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(h),y=r(117);(0,y.inherits)(i,n),t.FunctionEntry=i,(0,y.inherits)(s,n),t.LoopEntry=s,(0,y.inherits)(a,n),t.SwitchEntry=a,(0,y.inherits)(o,n),t.TryEntry=o,(0,y.inherits)(u,n),t.CatchEntry=u,(0,y.inherits)(l,n),t.FinallyEntry=l,(0,y.inherits)(c,n),t.LabeledEntry=c;var v=f.prototype;t.LeapManager=f,v.withEntry=function(e,t){d.default.ok(e instanceof n),this.entryStack.push(e);try{t.call(this.emitter)}finally{var r=this.entryStack.pop();d.default.strictEqual(r,e)}},v._findLeapLocation=function(e,t){for(var r=this.entryStack.length-1;r>=0;--r){var n=this.entryStack[r],i=n[e];if(i)if(t){if(n.label&&n.label.name===t.name)return i}else if(!(n instanceof c))return i}return null},v.getBreakLoc=function(e){return this._findLeapLocation("breakLoc",e)},v.getContinueLoc=function(e){return this._findLeapLocation("continueLoc",e)}},function(e,t,r){"use strict";function n(e,t){function r(e){function t(e){return r||(Array.isArray(e)?e.some(t):o.isNode(e)&&(s.default.strictEqual(r,!1),r=n(e))),r}o.assertNode(e);var r=!1,i=o.VISITOR_KEYS[e.type];if(i)for(var a=0;a<i.length;a++){var u=i[a],l=e[u];t(l)}return r}function n(n){o.assertNode(n);var i=u(n);return l.call(i,e)?i[e]:l.call(c,n.type)?i[e]=!1:l.call(t,n.type)?i[e]=!0:i[e]=r(n)}return n.onlyChildren=r,n}var i=r(64),s=function(e){return e&&e.__esModule?e:{default:e}}(i),a=r(1),o=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(a),u=r(281).makeAccessor(),l=Object.prototype.hasOwnProperty,c={FunctionExpression:!0,ArrowFunctionExpression:!0},f={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},p={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var d in p)l.call(p,d)&&(f[d]=p[d]);t.hasSideEffects=n("hasSideEffects",f),t.containsLeap=n("containsLeap",p)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){if(!e.node||!a.isFunction(e.node))throw new Error("replaceShorthandObjectMethod can only be called on Function AST node paths.");if(!a.isObjectMethod(e.node))return e;if(!e.node.generator)return e;var t=e.node.params.map(function(e){return a.cloneDeep(e)}),r=a.functionExpression(null,t,a.cloneDeep(e.node.body),e.node.generator,e.node.async);return u.replaceWithOrRemove(e,a.objectProperty(a.cloneDeep(e.node.key),r,e.node.computed,!1)),e.get("value")}t.__esModule=!0,t.default=i;var s=r(1),a=n(s),o=r(116),u=n(o)},function(e,t,r){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=e.node;return f.assertFunction(t),t.id||(t.id=e.scope.parent.generateUidIdentifier("callee")),t.generator&&f.isFunctionDeclaration(t)?a(e):t.id}function a(e){var t=e.node;f.assertIdentifier(t.id);var r=e.findParent(function(e){return e.isProgram()||e.isBlockStatement()});if(!r)return t.id;var n=r.node;l.default.ok(Array.isArray(n.body));var i=g(n);i.decl||(i.decl=f.variableDeclaration("var",[]),r.unshiftContainer("body",i.decl),i.declPath=r.get("body.0")),l.default.strictEqual(i.declPath.node,i.decl);var s=r.scope.generateUidIdentifier("marked"),a=f.callExpression(v.runtimeProperty("mark"),[t.id]),o=i.decl.declarations.push(f.variableDeclarator(s,a))-1,u=i.declPath.get("declarations."+o+".init");return l.default.strictEqual(u.node,a),u.addComment("leading","#__PURE__"),s}function o(e,t){var r={didRenameArguments:!1,argsId:t};return e.traverse(b,r),r.didRenameArguments}var u=r(64),l=i(u),c=r(1),f=n(c),p=r(605),d=r(283),h=r(609),m=i(h),y=r(116),v=n(y);t.name="regenerator-transform",t.visitor={Function:{exit:function(e,t){var r=e.node;if(r.generator){if(r.async){if(!1===t.opts.asyncGenerators)return}else if(!1===t.opts.generators)return}else{if(!r.async)return;if(!1===t.opts.async)return}e=(0,m.default)(e),r=e.node;var n=e.scope.generateUidIdentifier("context"),i=e.scope.generateUidIdentifier("args");e.ensureBlock();var a=e.get("body");r.async&&a.traverse(x),a.traverse(E,{context:n});var u=[],l=[];a.get("body").forEach(function(e){var t=e.node;f.isExpressionStatement(t)&&f.isStringLiteral(t.expression)?u.push(t):t&&null!=t._blockHoist?u.push(t):l.push(t)}),u.length>0&&(a.node.body=l);var c=s(e);f.assertIdentifier(r.id);var h=f.identifier(r.id.name+"$"),y=(0,p.hoist)(e);if(o(e,i)){y=y||f.variableDeclaration("var",[]);var g=f.identifier("arguments");g._shadowedFunctionLiteral=e,y.declarations.push(f.variableDeclarator(i,g))}var b=new d.Emitter(n);b.explode(e.get("body")),y&&y.declarations.length>0&&u.push(y);var A=[b.getContextFunction(h),r.generator?c:f.nullLiteral(),f.thisExpression()],S=b.getTryLocsList();S&&A.push(S);var _=f.callExpression(v.runtimeProperty(r.async?"async":"wrap"),A);u.push(f.returnStatement(_)),r.body=f.blockStatement(u);var D=a.node.directives;D&&(r.body.directives=D);var C=r.generator;C&&(r.generator=!1),r.async&&(r.async=!1),C&&f.isExpression(r)&&(v.replaceWithOrRemove(e,f.callExpression(v.runtimeProperty("mark"),[r])),e.addComment("leading","#__PURE__")),e.requeue()}}};var g=r(281).makeAccessor(),b={"FunctionExpression|FunctionDeclaration":function(e){e.skip()},Identifier:function(e,t){"arguments"===e.node.name&&v.isReference(e)&&(v.replaceWithOrRemove(e,t.argsId),t.didRenameArguments=!0)}},E={MetaProperty:function(e){var t=e.node;"function"===t.meta.name&&"sent"===t.property.name&&v.replaceWithOrRemove(e,f.memberExpression(this.context,f.identifier("_sent")))}},x={Function:function(e){e.skip()},AwaitExpression:function(e){var t=e.node.argument;v.replaceWithOrRemove(e,f.yieldExpression(f.callExpression(v.runtimeProperty("awrap"),[t]),!1))}}},function(e,t,r){"use strict";var n=r(282);t.REGULAR={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,65535),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535),w:n(95).addRange(48,57).addRange(65,90).addRange(97,122),W:n(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)},t.UNICODE={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,1114111),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:n(95).addRange(48,57).addRange(65,90).addRange(97,122),W:n(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)},t.UNICODE_IGNORE_CASE={d:n().addRange(48,57),D:n().addRange(0,47).addRange(58,1114111),s:n(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233),S:n().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111),w:n(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122),W:n(75,83,96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)}},function(e,t,r){"use strict";function n(e){return S?A?m.UNICODE_IGNORE_CASE[e]:m.UNICODE[e]:m.REGULAR[e]}function i(e,t){return v.call(e,t)}function s(e,t){for(var r in t)e[r]=t[r]}function a(e,t){if(t){var r=p(t,"");switch(r.type){case"characterClass":case"group":case"value":break;default:r=o(r,t)}s(e,r)}}function o(e,t){return{type:"group",behavior:"ignore",body:[e],raw:"(?:"+t+")"}}function u(e){return!!i(h,e)&&h[e]}function l(e){var t=d();e.body.forEach(function(e){switch(e.type){case"value":if(t.add(e.codePoint),A&&S){var r=u(e.codePoint);r&&t.add(r)}break;case"characterClassRange":var i=e.min.codePoint,s=e.max.codePoint;t.addRange(i,s),A&&S&&t.iuAddRange(i,s);break;case"characterClassEscape":t.add(n(e.value));break;default:throw Error("Unknown term type: "+e.type)}});return e.negative&&(t=(S?g:b).clone().remove(t)),a(e,t.toString()),e}function c(e){switch(e.type){case"dot":a(e,(S?E:x).toString());break;case"characterClass":e=l(e);break;case"characterClassEscape":a(e,n(e.value).toString());break;case"alternative":case"disjunction":case"group":case"quantifier":e.body=e.body.map(c);break;case"value":var t=e.codePoint,r=d(t);if(A&&S){var i=u(t);i&&r.add(i)}a(e,r.toString());break;case"anchor":case"empty":case"group":case"reference":break;default:throw Error("Unknown term type: "+e.type)}return e}var f=r(613).generate,p=r(614).parse,d=r(282),h=r(631),m=r(611),y={},v=y.hasOwnProperty,g=d().addRange(0,1114111),b=d().addRange(0,65535),E=g.clone().remove(10,13,8232,8233),x=E.clone().intersection(b);d.prototype.iuAddRange=function(e,t){var r=this;do{var n=u(e);n&&r.add(n)}while(++e<=t);return r};var A=!1,S=!1;e.exports=function(e,t){var r=p(e,t);return A=!!t&&t.indexOf("i")>-1,S=!!t&&t.indexOf("u")>-1,s(r,c(r)),f(r)}},function(e,t,r){var n;(function(e,i){"use strict";var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};(function(){function a(){var e,t,r=[],n=-1,i=arguments.length;if(!i)return"";for(var s="";++n<i;){var a=Number(arguments[n]);if(!isFinite(a)||a<0||a>1114111||k(a)!=a)throw RangeError("Invalid code point: "+a);a<=65535?r.push(a):(a-=65536,e=55296+(a>>10),t=a%1024+56320,r.push(e,t)),(n+1==i||r.length>16384)&&(s+=P.apply(null,r),r.length=0)}return s}function o(e,t){if(-1==t.indexOf("|")){if(e==t)return;throw Error("Invalid node type: "+e)}if(t=o.hasOwnProperty(t)?o[t]:o[t]=RegExp("^(?:"+t+")$"),!t.test(e))throw Error("Invalid node type: "+e)
}function u(e){var t=e.type;if(u.hasOwnProperty(t)&&"function"==typeof u[t])return u[t](e);throw Error("Invalid node type: "+t)}function l(e){o(e.type,"alternative");var t=e.body,r=t?t.length:0;if(1==r)return x(t[0]);for(var n=-1,i="";++n<r;)i+=x(t[n]);return i}function c(e){switch(o(e.type,"anchor"),e.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}}function f(e){return o(e.type,"anchor|characterClass|characterClassEscape|dot|group|reference|value"),u(e)}function p(e){o(e.type,"characterClass");var t=e.body,r=t?t.length:0,n=-1,i="[";for(e.negative&&(i+="^");++n<r;)i+=m(t[n]);return i+="]"}function d(e){return o(e.type,"characterClassEscape"),"\\"+e.value}function h(e){o(e.type,"characterClassRange");var t=e.min,r=e.max;if("characterClassRange"==t.type||"characterClassRange"==r.type)throw Error("Invalid character class range");return m(t)+"-"+m(r)}function m(e){return o(e.type,"anchor|characterClassEscape|characterClassRange|dot|value"),u(e)}function y(e){o(e.type,"disjunction");var t=e.body,r=t?t.length:0;if(0==r)throw Error("No body");if(1==r)return u(t[0]);for(var n=-1,i="";++n<r;)0!=n&&(i+="|"),i+=u(t[n]);return i}function v(e){return o(e.type,"dot"),"."}function g(e){o(e.type,"group");var t="(";switch(e.behavior){case"normal":break;case"ignore":t+="?:";break;case"lookahead":t+="?=";break;case"negativeLookahead":t+="?!";break;default:throw Error("Invalid behaviour: "+e.behaviour)}var r=e.body,n=r?r.length:0;if(1==n)t+=u(r[0]);else for(var i=-1;++i<n;)t+=u(r[i]);return t+=")"}function b(e){o(e.type,"quantifier");var t="",r=e.min,n=e.max;switch(n){case void 0:case null:switch(r){case 0:t="*";break;case 1:t="+";break;default:t="{"+r+",}"}break;default:t=r==n?"{"+r+"}":0==r&&1==n?"?":"{"+r+","+n+"}"}return e.greedy||(t+="?"),f(e.body[0])+t}function E(e){return o(e.type,"reference"),"\\"+e.matchIndex}function x(e){return o(e.type,"anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|value"),u(e)}function A(e){o(e.type,"value");var t=e.kind,r=e.codePoint;switch(t){case"controlLetter":return"\\c"+a(r+64);case"hexadecimalEscape":return"\\x"+("00"+r.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+a(r);case"null":return"\\"+r;case"octal":return"\\"+r.toString(8);case"singleEscape":switch(r){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";default:throw Error("Invalid codepoint: "+r)}case"symbol":return a(r);case"unicodeEscape":return"\\u"+("0000"+r.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+r.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+t)}}var S={function:!0,object:!0},_=S["undefined"==typeof window?"undefined":s(window)]&&window||this,D=S[s(t)]&&t,C=S[s(e)]&&e&&!e.nodeType&&e,w=D&&C&&"object"==(void 0===i?"undefined":s(i))&&i;!w||w.global!==w&&w.window!==w&&w.self!==w||(_=w);var P=String.fromCharCode,k=Math.floor;u.alternative=l,u.anchor=c,u.characterClass=p,u.characterClassEscape=d,u.characterClassRange=h,u.disjunction=y,u.dot=v,u.group=g,u.quantifier=b,u.reference=E,u.value=A,"object"==s(r(49))&&r(49)?void 0!==(n=function(){return{generate:u}}.call(t,r,t,e))&&(e.exports=n):D&&C?D.generate=u:_.regjsgen={generate:u}}).call(void 0)}).call(t,r(39)(e),function(){return this}())},function(e,t){"use strict";!function(){function t(e,t){function r(t){return t.raw=e.substring(t.range[0],t.range[1]),t}function n(e,t){return e.range[0]=t,r(e)}function i(e,t){return r({type:"anchor",kind:e,range:[$-t,$]})}function s(e,t,n,i){return r({type:"value",kind:e,codePoint:t,range:[n,i]})}function a(e,t,r,n){return n=n||0,s(e,t,$-(r.length+n),$)}function o(e){var t=e[0],r=t.charCodeAt(0);if(z){var n;if(1===t.length&&r>=55296&&r<=56319&&(n=x().charCodeAt(0))>=56320&&n<=57343)return $++,s("symbol",1024*(r-55296)+n-56320+65536,$-2,$)}return s("symbol",r,$-1,$)}function u(e,t,n){return r({type:"disjunction",body:e,range:[t,n]})}function l(){return r({type:"dot",range:[$-1,$]})}function c(e){return r({type:"characterClassEscape",value:e,range:[$-2,$]})}function f(e){return r({type:"reference",matchIndex:parseInt(e,10),range:[$-1-e.length,$]})}function p(e,t,n,i){return r({type:"group",behavior:e,body:t,range:[n,i]})}function d(e,t,n,i){return null==i&&(n=$-1,i=$),r({type:"quantifier",min:e,max:t,greedy:!0,body:null,range:[n,i]})}function h(e,t,n){return r({type:"alternative",body:e,range:[t,n]})}function m(e,t,n,i){return r({type:"characterClass",body:e,negative:t,range:[n,i]})}function y(e,t,n,i){return e.codePoint>t.codePoint&&K("invalid range in character class",e.raw+"-"+t.raw,n,i),r({type:"characterClassRange",min:e,max:t,range:[n,i]})}function v(e){return"alternative"===e.type?e.body:[e]}function g(t){t=t||1;var r=e.substring($,$+t);return $+=t||1,r}function b(e){E(e)||K("character",e)}function E(t){if(e.indexOf(t,$)===$)return g(t.length)}function x(){return e[$]}function A(t){return e.indexOf(t,$)===$}function S(t){return e[$+1]===t}function _(t){var r=e.substring($),n=r.match(t);return n&&(n.range=[],n.range[0]=$,g(n[0].length),n.range[1]=$),n}function D(){var e=[],t=$;for(e.push(C());E("|");)e.push(C());return 1===e.length?e[0]:u(e,t,$)}function C(){for(var e,t=[],r=$;e=w();)t.push(e);return 1===t.length?t[0]:h(t,r,$)}function w(){if($>=e.length||A("|")||A(")"))return null;var t=k();if(t)return t;var r=T();r||K("Expected atom");var i=F()||!1;return i?(i.body=v(r),n(i,r.range[0]),i):r}function P(e,t,r,n){var i=null,s=$;if(E(e))i=t;else{if(!E(r))return!1;i=n}var a=D();a||K("Expected disjunction"),b(")");var o=p(i,v(a),s,$);return"normal"==i&&X&&J++,o}function k(){return E("^")?i("start",1):E("$")?i("end",1):E("\\b")?i("boundary",2):E("\\B")?i("not-boundary",2):P("(?=","lookahead","(?!","negativeLookahead")}function F(){var e,t,r,n,i=$;return E("*")?t=d(0):E("+")?t=d(1):E("?")?t=d(0,1):(e=_(/^\{([0-9]+)\}/))?(r=parseInt(e[1],10),t=d(r,r,e.range[0],e.range[1])):(e=_(/^\{([0-9]+),\}/))?(r=parseInt(e[1],10),t=d(r,void 0,e.range[0],e.range[1])):(e=_(/^\{([0-9]+),([0-9]+)\}/))&&(r=parseInt(e[1],10),n=parseInt(e[2],10),r>n&&K("numbers out of order in {} quantifier","",i,$),t=d(r,n,e.range[0],e.range[1])),t&&E("?")&&(t.greedy=!1,t.range[1]+=1),t}function T(){var e;return(e=_(/^[^^$\\.*+?(){[|]/))?o(e):E(".")?l():E("\\")?(e=R(),e||K("atomEscape"),e):(e=j())?e:P("(?:","ignore","(","normal")}function O(e){if(z){var t,n;if("unicodeEscape"==e.kind&&(t=e.codePoint)>=55296&&t<=56319&&A("\\")&&S("u")){var i=$;$++;var s=B();"unicodeEscape"==s.kind&&(n=s.codePoint)>=56320&&n<=57343?(e.range[1]=s.range[1],e.codePoint=1024*(t-55296)+n-56320+65536,e.type="value",e.kind="unicodeCodePointEscape",r(e)):$=i}}return e}function B(){return R(!0)}function R(e){var t,r=$;if(t=I())return t;if(e){if(E("b"))return a("singleEscape",8,"\\b");E("B")&&K("\\B not possible inside of CharacterClass","",r)}return t=M()}function I(){var e,t;if(e=_(/^(?!0)\d+/)){t=e[0];var r=parseInt(e[0],10);return r<=J?f(e[0]):(H.push(r),g(-e[0].length),(e=_(/^[0-7]{1,3}/))?a("octal",parseInt(e[0],8),e[0],1):(e=o(_(/^[89]/)),n(e,e.range[0]-1)))}return(e=_(/^[0-7]{1,3}/))?(t=e[0],/^0{1,3}$/.test(t)?a("null",0,"0",t.length+1):a("octal",parseInt(t,8),t,1)):!!(e=_(/^[dDsSwW]/))&&c(e[0])}function M(){var e;if(e=_(/^[fnrtv]/)){var t=0;switch(e[0]){case"t":t=9;break;case"n":t=10;break;case"v":t=11;break;case"f":t=12;break;case"r":t=13}return a("singleEscape",t,"\\"+e[0])}return(e=_(/^c([a-zA-Z])/))?a("controlLetter",e[1].charCodeAt(0)%32,e[1],2):(e=_(/^x([0-9a-fA-F]{2})/))?a("hexadecimalEscape",parseInt(e[1],16),e[1],2):(e=_(/^u([0-9a-fA-F]{4})/))?O(a("unicodeEscape",parseInt(e[1],16),e[1],2)):z&&(e=_(/^u\{([0-9a-fA-F]+)\}/))?a("unicodeCodePointEscape",parseInt(e[1],16),e[1],4):L()}function N(e){var t=new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԯԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠ-ࢲࣤ-ॣ०-९ॱ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಁ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲഁ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧ᪰-᪽ᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶ᳸᳹ᴀ-᷵᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚝꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞭꞰꞱꟷ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꧠ-ꧾꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭟꭤꭥꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︭︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]");return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&t.test(String.fromCharCode(e))}function L(){var e;return N(x())?E("‌")?a("identifier",8204,"‌"):E("‍")?a("identifier",8205,"‍"):null:(e=g(),a("identifier",e.charCodeAt(0),e,1))}function j(){var e,t=$;return(e=_(/^\[\^/))?(e=U(),b("]"),m(e,!0,t,$)):E("[")?(e=U(),b("]"),m(e,!1,t,$)):null}function U(){var e;return A("]")?[]:(e=G(),e||K("nonEmptyClassRanges"),e)}function V(e){var t,r,n;if(A("-")&&!S("]")){b("-"),n=Y(),n||K("classAtom"),r=$;var i=U();return i||K("classRanges"),t=e.range[0],"empty"===i.type?[y(e,n,t,r)]:[y(e,n,t,r)].concat(i)}return n=W(),n||K("nonEmptyClassRangesNoDash"),[e].concat(n)}function G(){var e=Y();return e||K("classAtom"),A("]")?[e]:V(e)}function W(){var e=Y();return e||K("classAtom"),A("]")?e:V(e)}function Y(){return E("-")?o("-"):q()}function q(){var e;return(e=_(/^[^\\\]-]/))?o(e[0]):E("\\")?(e=B(),e||K("classEscape"),O(e)):void 0}function K(t,r,n,i){n=null==n?$:n,i=null==i?n:i;var s=Math.max(0,n-10),a=Math.min(i+10,e.length),o="    "+e.substring(s,a),u="    "+new Array(n-s+1).join(" ")+"^";throw SyntaxError(t+" at position "+n+(r?": "+r:"")+"\n"+o+"\n"+u)}var H=[],J=0,X=!0,z=-1!==(t||"").indexOf("u"),$=0;""===(e=String(e))&&(e="(?:)");var Q=D();Q.range[1]!==e.length&&K("Could not parse entire input - got stuck","",Q.range[1]);for(var Z=0;Z<H.length;Z++)if(H[Z]<=J)return $=0,X=!1,D();return Q}var r={parse:t};void 0!==e&&e.exports?e.exports=r:window.regjsparser=r}()},function(e,t,r){"use strict";var n=r(467);e.exports=function(e,t){if("string"!=typeof e)throw new TypeError("Expected `input` to be a string");if(t<0||!n(t))throw new TypeError("Expected `count` to be a positive finite number");var r="";do{1&t&&(r+=e),e+=e}while(t>>=1);return r}},function(e,t){"use strict";var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},function(e,t){"use strict";function r(e,n,i,s,a,o){var u=Math.floor((n-e)/2)+e,l=a(i,s[u],!0);return 0===l?u:l>0?n-u>1?r(u,n,i,s,a,o):o==t.LEAST_UPPER_BOUND?n<s.length?n:-1:u:u-e>1?r(e,u,i,s,a,o):o==t.LEAST_UPPER_BOUND?u:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,i,s){if(0===n.length)return-1;var a=r(-1,n.length,e,n,i,s||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===i(n[a],n[a-1],!0);)--a;return a}},function(e,t,r){"use strict";function n(e,t){var r=e.generatedLine,n=t.generatedLine,i=e.generatedColumn,a=t.generatedColumn;return n>r||n==r&&a>=i||s.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var s=r(63);i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){n(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(s.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.MappingList=i},function(e,t){"use strict";function r(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function n(e,t){return Math.round(e+Math.random()*(t-e))}function i(e,t,s,a){if(s<a){var o=n(s,a),u=s-1;r(e,o,a);for(var l=e[a],c=s;c<a;c++)t(e[c],l)<=0&&(u+=1,r(e,u,c));r(e,u+1,c);var f=u+1;i(e,t,s,f-1),i(e,t,f+1,a)}}t.quickSort=function(e,t){i(e,t,0,e.length-1)}},function(e,t,r){"use strict";function n(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new a(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),n=o.getArg(t,"sources"),i=o.getArg(t,"names",[]),s=o.getArg(t,"sourceRoot",null),a=o.getArg(t,"sourcesContent",null),u=o.getArg(t,"mappings"),c=o.getArg(t,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);n=n.map(String).map(o.normalize).map(function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}),this._names=l.fromArray(i.map(String),!0),this._sources=l.fromArray(n,!0),this.sourceRoot=s,this.sourcesContent=a,this._mappings=u,this.file=c}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function a(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),i=o.getArg(t,"sections");if(r!=this._version)throw new Error("Unsupported version: "+r);this._sources=new l,this._names=new l;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=o.getArg(e,"offset"),r=o.getArg(t,"line"),i=o.getArg(t,"column");if(r<s.line||r===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:r+1,generatedColumn:i+1},consumer:new n(o.getArg(e,"map"))}})}var o=r(63),u=r(617),l=r(285).ArraySet,c=r(286),f=r(619).quickSort;n.fromSourceMap=function(e){return i.fromSourceMap(e)},n.prototype._version=3,n.prototype.__generatedMappings=null,Object.defineProperty(n.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),n.prototype.__originalMappings=null,Object.defineProperty(n.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),n.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},n.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},n.GENERATED_ORDER=1,n.ORIGINAL_ORDER=2,n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.prototype.eachMapping=function(e,t,r){var i,s=t||null,a=r||n.GENERATED_ORDER;switch(a){case n.GENERATED_ORDER:i=this._generatedMappings;break;case n.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=u&&(t=o.join(u,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},n.prototype.allGeneratedPositionsFor=function(e){var t=o.getArg(e,"line"),r={source:o.getArg(e,"source"),originalLine:t,originalColumn:o.getArg(e,"column",0)};if(null!=this.sourceRoot&&(r.source=o.relative(this.sourceRoot,r.source)),!this._sources.has(r.source))return[];r.source=this._sources.indexOf(r.source);var n=[],i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=0){var s=this._originalMappings[i];if(void 0===e.column)for(var a=s.originalLine;s&&s.originalLine===a;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i];else for(var l=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==l;)n.push({line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++i]}return n},t.SourceMapConsumer=n,i.prototype=Object.create(n.prototype),i.prototype.consumer=n,i.fromSourceMap=function(e){var t=Object.create(i.prototype),r=t._names=l.fromArray(e._names.toArray(),!0),n=t._sources=l.fromArray(e._sources.toArray(),!0);t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file;for(var a=e._mappings.toArray().slice(),u=t.__generatedMappings=[],c=t.__originalMappings=[],p=0,d=a.length;p<d;p++){var h=a[p],m=new s;m.generatedLine=h.generatedLine,m.generatedColumn=h.generatedColumn,h.source&&(m.source=n.indexOf(h.source),m.originalLine=h.originalLine,m.originalColumn=h.originalColumn,h.name&&(m.name=r.indexOf(h.name)),c.push(m)),u.push(m)}return f(t.__originalMappings,o.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?o.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var r,n,i,a,u,l=1,p=0,d=0,h=0,m=0,y=0,v=e.length,g=0,b={},E={},x=[],A=[];g<v;)if(";"===e.charAt(g))l++,g++,p=0;else if(","===e.charAt(g))g++;else{for(r=new s,r.generatedLine=l,a=g;a<v&&!this._charIsMappingSeparator(e,a);a++);if(n=e.slice(g,a),i=b[n])g+=n.length;else{for(i=[];g<a;)c.decode(e,g,E),u=E.value,g=E.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");b[n]=i}r.generatedColumn=p+i[0],p=r.generatedColumn,i.length>1&&(r.source=m+i[1],m+=i[1],r.originalLine=d+i[2],d=r.originalLine,r.originalLine+=1,r.originalColumn=h+i[3],h=r.originalColumn,i.length>4&&(r.name=y+i[4],y+=i[4])),A.push(r),"number"==typeof r.originalLine&&x.push(r)}f(A,o.compareByGeneratedPositionsDeflated),this.__generatedMappings=A,f(x,o.compareByOriginalPositions),this.__originalMappings=x},i.prototype._findMapping=function(e,t,r,n,i,s){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return u.search(e,t,i,s)},i.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(t.generatedLine===r.generatedLine){t.lastGeneratedColumn=r.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositionsDeflated,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(r>=0){var i=this._generatedMappings[r];if(i.generatedLine===t.generatedLine){var s=o.getArg(i,"source",null);null!==s&&(s=this._sources.at(s),null!=this.sourceRoot&&(s=o.join(this.sourceRoot,s)));var a=o.getArg(i,"name",null);return null!==a&&(a=this._names.at(a)),{source:s,line:o.getArg(i,"originalLine",null),column:o.getArg(i,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},i.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},i.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=o.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var r;if(null!=this.sourceRoot&&(r=o.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==r.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!r.path||"/"==r.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},i.prototype.generatedPositionFor=function(e){var t=o.getArg(e,"source");if(null!=this.sourceRoot&&(t=o.relative(this.sourceRoot,t)),!this._sources.has(t))return{line:null,column:null,lastColumn:null};t=this._sources.indexOf(t);var r={source:t,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")},i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(i>=0){var s=this._originalMappings[i];if(s.source===r.source)return{line:o.getArg(s,"generatedLine",null),column:o.getArg(s,"generatedColumn",null),lastColumn:o.getArg(s,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},t.BasicSourceMapConsumer=i,a.prototype=Object.create(n.prototype),a.prototype.constructor=n,a.prototype._version=3,Object.defineProperty(a.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var r=0;r<this._sections[t].consumer.sources.length;r++)e.push(this._sections[t].consumer.sources[r]);return e}}),a.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=u.search(t,this._sections,function(e,t){var r=e.generatedLine-t.generatedOffset.generatedLine;return r||e.generatedColumn-t.generatedOffset.generatedColumn}),n=this._sections[r];return n?n.consumer.originalPositionFor({line:t.generatedLine-(n.generatedOffset.generatedLine-1),column:t.generatedColumn-(n.generatedOffset.generatedLine===t.generatedLine?n.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},a.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},a.prototype.sourceContentFor=function(e,t){for(var r=0;r<this._sections.length;r++){var n=this._sections[r],i=n.consumer.sourceContentFor(e,!0);if(i)return i}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},a.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var r=this._sections[t];if(-1!==r.consumer.sources.indexOf(o.getArg(e,"source"))){var n=r.consumer.generatedPositionFor(e);if(n){return{line:n.line+(r.generatedOffset.generatedLine-1),column:n.column+(r.generatedOffset.generatedLine===n.line?r.generatedOffset.generatedColumn-1:0)}}}}return{line:null,column:null}},a.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var r=0;r<this._sections.length;r++)for(var n=this._sections[r],i=n.consumer._generatedMappings,s=0;s<i.length;s++){var a=i[s],u=n.consumer._sources.at(a.source);null!==n.consumer.sourceRoot&&(u=o.join(n.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var l=n.consumer._names.at(a.name);this._names.add(l),l=this._names.indexOf(l);var c={source:u,generatedLine:a.generatedLine+(n.generatedOffset.generatedLine-1),generatedColumn:a.generatedColumn+(n.generatedOffset.generatedLine===a.generatedLine?n.generatedOffset.generatedColumn-1:0),originalLine:a.originalLine,originalColumn:a.originalColumn,name:l};this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}f(this.__generatedMappings,o.compareByGeneratedPositionsDeflated),f(this.__originalMappings,o.compareByOriginalPositions)},t.IndexedSourceMapConsumer=a},function(e,t,r){"use strict";function n(e,t,r,n,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==i?null:i,this[o]=!0,null!=n&&this.add(n)}var i=r(287).SourceMapGenerator,s=r(63),a=/(\r?\n)/,o="$$$isSourceNode$$$";n.fromStringWithSourceMap=function(e,t,r){function i(e,t){if(null===e||void 0===e.source)o.add(t);else{var i=r?s.join(r,e.source):e.source;o.add(new n(e.originalLine,e.originalColumn,i,t,e.name))}}var o=new n,u=e.split(a),l=function(){return u.shift()+(u.shift()||"")},c=1,f=0,p=null;return t.eachMapping(function(e){if(null!==p){if(!(c<e.generatedLine)){var t=u[0],r=t.substr(0,e.generatedColumn-f);return u[0]=t.substr(e.generatedColumn-f),f=e.generatedColumn,i(p,r),void(p=e)}i(p,l()),c++,f=0}for(;c<e.generatedLine;)o.add(l()),c++;if(f<e.generatedColumn){var t=u[0];o.add(t.substr(0,e.generatedColumn)),u[0]=t.substr(e.generatedColumn),f=e.generatedColumn}p=e},this),u.length>0&&(p&&i(p,l()),o.add(u.join(""))),t.sources.forEach(function(e){var n=t.sourceContentFor(e);null!=n&&(null!=r&&(e=s.join(r,e)),o.setSourceContent(e,n))}),o},n.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},n.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},n.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r<n;r++)t=this.children[r],t[o]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},n.prototype.join=function(e){var t,r,n=this.children.length;if(n>0){for(t=[],r=0;r<n-1;r++)t.push(this.children[r]),t.push(e);t.push(this.children[r]),this.children=t}return this},n.prototype.replaceRight=function(e,t){var r=this.children[this.children.length-1];return r[o]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},n.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},n.prototype.walkSourceContents=function(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][o]&&this.children[t].walkSourceContents(e);for(var n=Object.keys(this.sourceContents),t=0,r=n.length;t<r;t++)e(s.fromSetString(n[t]),this.sourceContents[n[t]])},n.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},n.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},r=new i(e),n=!1,s=null,a=null,o=null,u=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&a===i.line&&o===i.column&&u===i.name||r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,a=i.line,o=i.column,u=i.name,n=!0):n&&(r.addMapping({generated:{line:t.line,column:t.column}}),s=null,n=!1);for(var l=0,c=e.length;l<c;l++)10===e.charCodeAt(l)?(t.line++,t.column=0,l+1===c?(s=null,n=!1):n&&r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){r.setSourceContent(e,t)}),{code:t.code,map:r}},t.SourceNode=n},function(e,t,r){"use strict";var n=r(180)();e.exports=function(e){return"string"==typeof e?e.replace(n,""):e}},function(e,t,r){(function(t){"use strict";var r=t.argv,n=r.indexOf("--"),i=function(e){e="--"+e;var t=r.indexOf(e);return-1!==t&&(-1===n||t<n)};e.exports=function(){return"FORCE_COLOR"in t.env||!(i("no-color")||i("no-colors")||i("color=false"))&&(!!(i("color")||i("colors")||i("color=true")||i("color=always"))||!(t.stdout&&!t.stdout.isTTY)&&("win32"===t.platform||("COLORTERM"in t.env||"dumb"!==t.env.TERM&&!!/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(t.env.TERM))))}()}).call(t,r(8))},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function e(t){function n(){}function i(){return r(s.foo)}n.prototype=t;var s=new n;return i(),i(),t}},function(e,t){"use strict";e.exports=function(e){for(var t=e.length;/[\s\uFEFF\u00A0]/.test(e[t-1]);)t--;return e.slice(0,t)}},function(e,t){"use strict";"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},function(e,t){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};e.exports=function(e){return e&&"object"===(void 0===e?"undefined":r(e))&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.version="6.26.0"},function(e,t){"use strict";function r(e,t){var r=void 0;return null!=t.url?r=t.url:(r="Inline Babel script",++p>1&&(r+=" ("+p+")")),e(t.content,l({filename:r},n(t))).code}function n(e){return{presets:e.presets||["react","es2015"],plugins:e.plugins||["transform-class-properties","transform-object-rest-spread","transform-flow-strip-types"],sourceMaps:"inline"}}function i(e,t){var n=document.createElement("script");n.text=r(e,t),f.appendChild(n)}function s(e,t,r){var n=new XMLHttpRequest;return n.open("GET",e,!0),"overrideMimeType"in n&&n.overrideMimeType("text/plain"),n.onreadystatechange=function(){if(4===n.readyState){if(0!==n.status&&200!==n.status)throw r(),new Error("Could not load "+e);t(n.responseText)}},n.send(null)}function a(e,t){var r=e.getAttribute(t);return""===r?[]:r?r.split(",").map(function(e){return e.trim()}):null}function o(e,t){function r(){var t,r;for(r=0;r<o;r++)if(t=n[r],t.loaded&&!t.executed)t.executed=!0,i(e,t);else if(!t.loaded&&!t.error&&!t.async)break}var n=[],o=t.length;t.forEach(function(e,t){var i={async:e.hasAttribute("async"),error:!1,executed:!1,plugins:a(e,"data-plugins"),presets:a(e,"data-presets")};e.src?(n[t]=l({},i,{content:null,loaded:!1,url:e.src}),s(e.src,function(e){n[t].loaded=!0,n[t].content=e,r()},function(){n[t].error=!0,r()})):n[t]=l({},i,{content:e.innerHTML,loaded:!0,url:null})}),r()}function u(e,t){f=document.getElementsByTagName("head")[0],t||(t=document.getElementsByTagName("script"));for(var r=[],n=0;n<t.length;n++){var i=t.item(n),s=i.type.split(";")[0];-1!==c.indexOf(s)&&r.push(i)}0!==r.length&&(console.warn("You are using the in-browser Babel transformer. Be sure to precompile your scripts for production - https://babeljs.io/docs/setup/"),o(e,r))}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};t.runScripts=u;var c=["text/jsx","text/babel"],f=void 0,p=0},function(e,t){e.exports={builtin:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,
valueOf:!1,WeakMap:!1,WeakSet:!1},es5:{Array:!1,Boolean:!1,constructor:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,propertyIsEnumerable:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,toLocaleString:!1,toString:!1,TypeError:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1},es6:{Array:!1,ArrayBuffer:!1,Boolean:!1,constructor:!1,DataView:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,escape:!1,eval:!1,EvalError:!1,Float32Array:!1,Float64Array:!1,Function:!1,hasOwnProperty:!1,Infinity:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,isFinite:!1,isNaN:!1,isPrototypeOf:!1,JSON:!1,Map:!1,Math:!1,NaN:!1,Number:!1,Object:!1,parseFloat:!1,parseInt:!1,Promise:!1,propertyIsEnumerable:!1,Proxy:!1,RangeError:!1,ReferenceError:!1,Reflect:!1,RegExp:!1,Set:!1,String:!1,Symbol:!1,SyntaxError:!1,System:!1,toLocaleString:!1,toString:!1,TypeError:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,undefined:!1,unescape:!1,URIError:!1,valueOf:!1,WeakMap:!1,WeakSet:!1},browser:{addEventListener:!1,alert:!1,AnalyserNode:!1,Animation:!1,AnimationEffectReadOnly:!1,AnimationEffectTiming:!1,AnimationEffectTimingReadOnly:!1,AnimationEvent:!1,AnimationPlaybackEvent:!1,AnimationTimeline:!1,applicationCache:!1,ApplicationCache:!1,ApplicationCacheErrorEvent:!1,atob:!1,Attr:!1,Audio:!1,AudioBuffer:!1,AudioBufferSourceNode:!1,AudioContext:!1,AudioDestinationNode:!1,AudioListener:!1,AudioNode:!1,AudioParam:!1,AudioProcessingEvent:!1,AutocompleteErrorEvent:!1,BarProp:!1,BatteryManager:!1,BeforeUnloadEvent:!1,BiquadFilterNode:!1,Blob:!1,blur:!1,btoa:!1,Cache:!1,caches:!1,CacheStorage:!1,cancelAnimationFrame:!1,cancelIdleCallback:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CDATASection:!1,ChannelMergerNode:!1,ChannelSplitterNode:!1,CharacterData:!1,clearInterval:!1,clearTimeout:!1,clientInformation:!1,ClientRect:!1,ClientRectList:!1,ClipboardEvent:!1,close:!1,closed:!1,CloseEvent:!1,Comment:!1,CompositionEvent:!1,confirm:!1,console:!1,ConvolverNode:!1,createImageBitmap:!1,Credential:!1,CredentialsContainer:!1,crypto:!1,Crypto:!1,CryptoKey:!1,CSS:!1,CSSAnimation:!1,CSSFontFaceRule:!1,CSSImportRule:!1,CSSKeyframeRule:!1,CSSKeyframesRule:!1,CSSMediaRule:!1,CSSPageRule:!1,CSSRule:!1,CSSRuleList:!1,CSSStyleDeclaration:!1,CSSStyleRule:!1,CSSStyleSheet:!1,CSSSupportsRule:!1,CSSTransition:!1,CSSUnknownRule:!1,CSSViewportRule:!1,customElements:!1,CustomEvent:!1,DataTransfer:!1,DataTransferItem:!1,DataTransferItemList:!1,Debug:!1,defaultStatus:!1,defaultstatus:!1,DelayNode:!1,DeviceMotionEvent:!1,DeviceOrientationEvent:!1,devicePixelRatio:!1,dispatchEvent:!1,document:!1,Document:!1,DocumentFragment:!1,DocumentTimeline:!1,DocumentType:!1,DOMError:!1,DOMException:!1,DOMImplementation:!1,DOMParser:!1,DOMSettableTokenList:!1,DOMStringList:!1,DOMStringMap:!1,DOMTokenList:!1,DragEvent:!1,DynamicsCompressorNode:!1,Element:!1,ElementTimeControl:!1,ErrorEvent:!1,event:!1,Event:!1,EventSource:!1,EventTarget:!1,external:!1,FederatedCredential:!1,fetch:!1,File:!1,FileError:!1,FileList:!1,FileReader:!1,find:!1,focus:!1,FocusEvent:!1,FontFace:!1,FormData:!1,frameElement:!1,frames:!1,GainNode:!1,Gamepad:!1,GamepadButton:!1,GamepadEvent:!1,getComputedStyle:!1,getSelection:!1,HashChangeEvent:!1,Headers:!1,history:!1,History:!1,HTMLAllCollection:!1,HTMLAnchorElement:!1,HTMLAppletElement:!1,HTMLAreaElement:!1,HTMLAudioElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLContentElement:!1,HTMLDataListElement:!1,HTMLDetailsElement:!1,HTMLDialogElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLDocument:!1,HTMLElement:!1,HTMLEmbedElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormControlsCollection:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLKeygenElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMarqueeElement:!1,HTMLMediaElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLMeterElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLOptionsCollection:!1,HTMLOutputElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPictureElement:!1,HTMLPreElement:!1,HTMLProgressElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLShadowElement:!1,HTMLSourceElement:!1,HTMLSpanElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLTrackElement:!1,HTMLUListElement:!1,HTMLUnknownElement:!1,HTMLVideoElement:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBEnvironment:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,Image:!1,ImageBitmap:!1,ImageData:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,InputEvent:!1,InputMethodContext:!1,IntersectionObserver:!1,IntersectionObserverEntry:!1,Intl:!1,KeyboardEvent:!1,KeyframeEffect:!1,KeyframeEffectReadOnly:!1,length:!1,localStorage:!1,location:!1,Location:!1,locationbar:!1,matchMedia:!1,MediaElementAudioSourceNode:!1,MediaEncryptedEvent:!1,MediaError:!1,MediaKeyError:!1,MediaKeyEvent:!1,MediaKeyMessageEvent:!1,MediaKeys:!1,MediaKeySession:!1,MediaKeyStatusMap:!1,MediaKeySystemAccess:!1,MediaList:!1,MediaQueryList:!1,MediaQueryListEvent:!1,MediaSource:!1,MediaRecorder:!1,MediaStream:!1,MediaStreamAudioDestinationNode:!1,MediaStreamAudioSourceNode:!1,MediaStreamEvent:!1,MediaStreamTrack:!1,menubar:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MIDIAccess:!1,MIDIConnectionEvent:!1,MIDIInput:!1,MIDIInputMap:!1,MIDIMessageEvent:!1,MIDIOutput:!1,MIDIOutputMap:!1,MIDIPort:!1,MimeType:!1,MimeTypeArray:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationEvent:!1,MutationObserver:!1,MutationRecord:!1,name:!1,NamedNodeMap:!1,navigator:!1,Navigator:!1,Node:!1,NodeFilter:!1,NodeIterator:!1,NodeList:!1,Notification:!1,OfflineAudioCompletionEvent:!1,OfflineAudioContext:!1,offscreenBuffering:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,opera:!1,Option:!1,OscillatorNode:!1,outerHeight:!1,outerWidth:!1,PageTransitionEvent:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,PasswordCredential:!1,Path2D:!1,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,PeriodicWave:!1,Permissions:!1,PermissionStatus:!1,personalbar:!1,Plugin:!1,PluginArray:!1,PopStateEvent:!1,postMessage:!1,print:!1,ProcessingInstruction:!1,ProgressEvent:!1,PromiseRejectionEvent:!1,prompt:!1,PushManager:!1,PushSubscription:!1,RadioNodeList:!1,Range:!1,ReadableByteStream:!1,ReadableStream:!1,removeEventListener:!1,Request:!1,requestAnimationFrame:!1,requestIdleCallback:!1,resizeBy:!1,resizeTo:!1,Response:!1,RTCIceCandidate:!1,RTCSessionDescription:!1,RTCPeerConnection:!1,screen:!1,Screen:!1,screenLeft:!1,ScreenOrientation:!1,screenTop:!1,screenX:!1,screenY:!1,ScriptProcessorNode:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,SecurityPolicyViolationEvent:!1,Selection:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerRegistration:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,ShadowRoot:!1,SharedKeyframeList:!1,SharedWorker:!1,showModalDialog:!1,SiteBoundCredential:!1,speechSynthesis:!1,SpeechSynthesisEvent:!1,SpeechSynthesisUtterance:!1,status:!1,statusbar:!1,stop:!1,Storage:!1,StorageEvent:!1,styleMedia:!1,StyleSheet:!1,StyleSheetList:!1,SubtleCrypto:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCSSRule:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDiscardElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGEvent:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEDropShadowElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGeometryElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGGraphicsElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGLocatable:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformable:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGURIReference:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,SVGZoomAndPan:!1,SVGZoomEvent:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TextEvent:!1,TextMetrics:!1,TextTrack:!1,TextTrackCue:!1,TextTrackCueList:!1,TextTrackList:!1,TimeEvent:!1,TimeRanges:!1,toolbar:!1,top:!1,Touch:!1,TouchEvent:!1,TouchList:!1,TrackEvent:!1,TransitionEvent:!1,TreeWalker:!1,UIEvent:!1,URL:!1,URLSearchParams:!1,ValidityState:!1,VTTCue:!1,WaveShaperNode:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,WheelEvent:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLDocument:!1,XMLHttpRequest:!1,XMLHttpRequestEventTarget:!1,XMLHttpRequestProgressEvent:!1,XMLHttpRequestUpload:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1,XSLTProcessor:!1},worker:{applicationCache:!1,atob:!1,Blob:!1,BroadcastChannel:!1,btoa:!1,Cache:!1,caches:!1,clearInterval:!1,clearTimeout:!1,close:!0,console:!1,fetch:!1,FileReaderSync:!1,FormData:!1,Headers:!1,IDBCursor:!1,IDBCursorWithValue:!1,IDBDatabase:!1,IDBFactory:!1,IDBIndex:!1,IDBKeyRange:!1,IDBObjectStore:!1,IDBOpenDBRequest:!1,IDBRequest:!1,IDBTransaction:!1,IDBVersionChangeEvent:!1,ImageData:!1,importScripts:!0,indexedDB:!1,location:!1,MessageChannel:!1,MessagePort:!1,name:!1,navigator:!1,Notification:!1,onclose:!0,onconnect:!0,onerror:!0,onlanguagechange:!0,onmessage:!0,onoffline:!0,ononline:!0,onrejectionhandled:!0,onunhandledrejection:!0,performance:!1,Performance:!1,PerformanceEntry:!1,PerformanceMark:!1,PerformanceMeasure:!1,PerformanceNavigation:!1,PerformanceResourceTiming:!1,PerformanceTiming:!1,postMessage:!0,Promise:!1,Request:!1,Response:!1,self:!0,ServiceWorkerRegistration:!1,setInterval:!1,setTimeout:!1,TextDecoder:!1,TextEncoder:!1,URL:!1,URLSearchParams:!1,WebSocket:!1,Worker:!1,XMLHttpRequest:!1},node:{__dirname:!1,__filename:!1,arguments:!1,Buffer:!1,clearImmediate:!1,clearInterval:!1,clearTimeout:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,Intl:!1,module:!1,process:!1,require:!1,root:!1,setImmediate:!1,setInterval:!1,setTimeout:!1},commonjs:{exports:!0,module:!1,require:!1,global:!1},amd:{define:!1,require:!1},mocha:{after:!1,afterEach:!1,before:!1,beforeEach:!1,context:!1,describe:!1,it:!1,mocha:!1,run:!1,setup:!1,specify:!1,suite:!1,suiteSetup:!1,suiteTeardown:!1,teardown:!1,test:!1,xcontext:!1,xdescribe:!1,xit:!1,xspecify:!1},jasmine:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,describe:!1,expect:!1,fail:!1,fdescribe:!1,fit:!1,it:!1,jasmine:!1,pending:!1,runs:!1,spyOn:!1,spyOnProperty:!1,waits:!1,waitsFor:!1,xdescribe:!1,xit:!1},jest:{afterAll:!1,afterEach:!1,beforeAll:!1,beforeEach:!1,check:!1,describe:!1,expect:!1,gen:!1,it:!1,fdescribe:!1,fit:!1,jest:!1,pit:!1,require:!1,test:!1,xdescribe:!1,xit:!1,xtest:!1},qunit:{asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notOk:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,throws:!1},phantomjs:{console:!0,exports:!0,phantom:!0,require:!0,WebPage:!0},couch:{emit:!1,exports:!1,getRow:!1,log:!1,module:!1,provides:!1,require:!1,respond:!1,send:!1,start:!1,sum:!1},rhino:{defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},nashorn:{__DIR__:!1,__FILE__:!1,__LINE__:!1,com:!1,edu:!1,exit:!1,Java:!1,java:!1,javafx:!1,JavaImporter:!1,javax:!1,JSAdapter:!1,load:!1,loadWithNewGlobal:!1,org:!1,Packages:!1,print:!1,quit:!1},wsh:{ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WScript:!0,WSH:!0,XDomainRequest:!0},jquery:{$:!1,jQuery:!1},yui:{Y:!1,YUI:!1,YUI_config:!1},shelljs:{cat:!1,cd:!1,chmod:!1,config:!1,cp:!1,dirs:!1,echo:!1,env:!1,error:!1,exec:!1,exit:!1,find:!1,grep:!1,ls:!1,ln:!1,mkdir:!1,mv:!1,popd:!1,pushd:!1,pwd:!1,rm:!1,sed:!1,set:!1,target:!1,tempdir:!1,test:!1,touch:!1,which:!1},prototypejs:{$:!1,$$:!1,$A:!1,$break:!1,$continue:!1,$F:!1,$H:!1,$R:!1,$w:!1,Abstract:!1,Ajax:!1,Autocompleter:!1,Builder:!1,Class:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Element:!1,Enumerable:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Scriptaculous:!1,Selector:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Template:!1,Toggle:!1,Try:!1},meteor:{$:!1,_:!1,Accounts:!1,AccountsClient:!1,AccountsServer:!1,AccountsCommon:!1,App:!1,Assets:!1,Blaze:!1,check:!1,Cordova:!1,DDP:!1,DDPServer:!1,DDPRateLimiter:!1,Deps:!1,EJSON:!1,Email:!1,HTTP:!1,Log:!1,Match:!1,Meteor:!1,Mongo:!1,MongoInternals:!1,Npm:!1,Package:!1,Plugin:!1,process:!1,Random:!1,ReactiveDict:!1,ReactiveVar:!1,Router:!1,ServiceConfiguration:!1,Session:!1,share:!1,Spacebars:!1,Template:!1,Tinytest:!1,Tracker:!1,UI:!1,Utils:!1,WebApp:!1,WebAppInternals:!1},mongo:{_isWindows:!1,_rand:!1,BulkWriteResult:!1,cat:!1,cd:!1,connect:!1,db:!1,getHostName:!1,getMemInfo:!1,hostname:!1,ISODate:!1,listFiles:!1,load:!1,ls:!1,md5sumFile:!1,mkdir:!1,Mongo:!1,NumberInt:!1,NumberLong:!1,ObjectId:!1,PlanCache:!1,print:!1,printjson:!1,pwd:!1,quit:!1,removeFile:!1,rs:!1,sh:!1,UUID:!1,version:!1,WriteResult:!1},applescript:{$:!1,Application:!1,Automation:!1,console:!1,delay:!1,Library:!1,ObjC:!1,ObjectSpecifier:!1,Path:!1,Progress:!1,Ref:!1},serviceworker:{caches:!1,Cache:!1,CacheStorage:!1,Client:!1,clients:!1,Clients:!1,ExtendableEvent:!1,ExtendableMessageEvent:!1,FetchEvent:!1,importScripts:!1,registration:!1,self:!1,ServiceWorker:!1,ServiceWorkerContainer:!1,ServiceWorkerGlobalScope:!1,ServiceWorkerMessageEvent:!1,ServiceWorkerRegistration:!1,skipWaiting:!1,WindowClient:!1},atomtest:{advanceClock:!1,fakeClearInterval:!1,fakeClearTimeout:!1,fakeSetInterval:!1,fakeSetTimeout:!1,resetTimeouts:!1,waitsForPromise:!1},embertest:{andThen:!1,click:!1,currentPath:!1,currentRouteName:!1,currentURL:!1,fillIn:!1,find:!1,findWithAssert:!1,keyEvent:!1,pauseTest:!1,resumeTest:!1,triggerEvent:!1,visit:!1},protractor:{$:!1,$$:!1,browser:!1,By:!1,by:!1,DartObject:!1,element:!1,protractor:!1},"shared-node-browser":{clearInterval:!1,clearTimeout:!1,console:!1,setInterval:!1,setTimeout:!1},webextensions:{browser:!1,chrome:!1,opr:!1},greasemonkey:{GM_addStyle:!1,GM_deleteValue:!1,GM_getResourceText:!1,GM_getResourceURL:!1,GM_getValue:!1,GM_info:!1,GM_listValues:!1,GM_log:!1,GM_openInTab:!1,GM_registerMenuCommand:!1,GM_setClipboard:!1,GM_setValue:!1,GM_xmlhttpRequest:!1,unsafeWindow:!1}}},function(e,t){e.exports={75:8490,83:383,107:8490,115:383,181:924,197:8491,383:83,452:453,453:452,455:456,456:455,458:459,459:458,497:498,498:497,837:8126,914:976,917:1013,920:1012,921:8126,922:1008,924:181,928:982,929:1009,931:962,934:981,937:8486,962:931,976:914,977:1012,981:934,982:928,1008:922,1009:929,1012:[920,977],1013:917,7776:7835,7835:7776,8126:[837,921],8486:937,8490:75,8491:197,66560:66600,66561:66601,66562:66602,66563:66603,66564:66604,66565:66605,66566:66606,66567:66607,66568:66608,66569:66609,66570:66610,66571:66611,66572:66612,66573:66613,66574:66614,66575:66615,66576:66616,66577:66617,66578:66618,66579:66619,66580:66620,66581:66621,66582:66622,66583:66623,66584:66624,66585:66625,66586:66626,66587:66627,66588:66628,66589:66629,66590:66630,66591:66631,66592:66632,66593:66633,66594:66634,66595:66635,66596:66636,66597:66637,66598:66638,66599:66639,66600:66560,66601:66561,66602:66562,66603:66563,66604:66564,66605:66565,66606:66566,66607:66567,66608:66568,66609:66569,66610:66570,66611:66571,66612:66572,66613:66573,66614:66574,66615:66575,66616:66576,66617:66577,66618:66578,66619:66579,66620:66580,66621:66581,66622:66582,66623:66583,66624:66584,66625:66585,66626:66586,66627:66587,66628:66588,66629:66589,66630:66590,66631:66591,66632:66592,66633:66593,66634:66594,66635:66595,66636:66596,66637:66597,66638:66598,66639:66599,68736:68800,68737:68801,68738:68802,68739:68803,68740:68804,68741:68805,68742:68806,68743:68807,68744:68808,68745:68809,68746:68810,68747:68811,68748:68812,68749:68813,68750:68814,68751:68815,68752:68816,68753:68817,68754:68818,68755:68819,68756:68820,68757:68821,68758:68822,68759:68823,68760:68824,68761:68825,68762:68826,68763:68827,68764:68828,68765:68829,68766:68830,68767:68831,68768:68832,68769:68833,68770:68834,68771:68835,68772:68836,68773:68837,68774:68838,68775:68839,68776:68840,68777:68841,68778:68842,68779:68843,68780:68844,68781:68845,68782:68846,68783:68847,68784:68848,68785:68849,68786:68850,68800:68736,68801:68737,68802:68738,68803:68739,68804:68740,68805:68741,68806:68742,68807:68743,68808:68744,68809:68745,68810:68746,68811:68747,68812:68748,68813:68749,68814:68750,68815:68751,68816:68752,68817:68753,68818:68754,68819:68755,68820:68756,68821:68757,68822:68758,68823:68759,68824:68760,68825:68761,68826:68762,68827:68763,68828:68764,68829:68765,68830:68766,68831:68767,68832:68768,68833:68769,68834:68770,68835:68771,68836:68772,68837:68773,68838:68774,68839:68775,68840:68776,68841:68777,68842:68778,68843:68779,68844:68780,68845:68781,68846:68782,68847:68783,68848:68784,68849:68785,68850:68786,71840:71872,71841:71873,71842:71874,71843:71875,71844:71876,71845:71877,71846:71878,71847:71879,71848:71880,71849:71881,71850:71882,71851:71883,71852:71884,71853:71885,71854:71886,71855:71887,71856:71888,71857:71889,71858:71890,71859:71891,71860:71892,71861:71893,71862:71894,71863:71895,71864:71896,71865:71897,71866:71898,71867:71899,71868:71900,71869:71901,71870:71902,71871:71903,71872:71840,71873:71841,71874:71842,71875:71843,71876:71844,71877:71845,71878:71846,71879:71847,71880:71848,71881:71849,71882:71850,71883:71851,71884:71852,71885:71853,71886:71854,71887:71855,71888:71856,71889:71857,71890:71858,71891:71859,71892:71860,71893:71861,71894:71862,71895:71863,71896:71864,71897:71865,71898:71866,71899:71867,71900:71868,71901:71869,71902:71870,71903:71871}}]))});let mouseoverTimer,lastTouchTimestamp;const prefetches=new Set,prefetchElement=document.createElement("link"),isSupported=prefetchElement.relList&&prefetchElement.relList.supports&&prefetchElement.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype,allowQueryString="instantAllowQueryString"in document.body.dataset,allowExternalLinks="instantAllowExternalLinks"in document.body.dataset,useWhitelist="instantWhitelist"in document.body.dataset,mousedownShortcut="instantMousedownShortcut"in document.body.dataset,DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION=1111;let delayOnHover=65,useMousedown=!1,useMousedownOnly=!1,useViewport=!1;if("instantIntensity"in document.body.dataset){const e=document.body.dataset.instantIntensity;if("mousedown"==e.substr(0,"mousedown".length))useMousedown=!0,"mousedown-only"==e&&(useMousedownOnly=!0);else if("viewport"==e.substr(0,"viewport".length))navigator.connection&&(navigator.connection.saveData||navigator.connection.effectiveType&&navigator.connection.effectiveType.includes("2g"))||("viewport"==e?document.documentElement.clientWidth*document.documentElement.clientHeight<45e4&&(useViewport=!0):"viewport-all"==e&&(useViewport=!0));else{const t=parseInt(e);isNaN(t)||(delayOnHover=t)}}if(isSupported){const e={capture:!0,passive:!0};if(useMousedownOnly||document.addEventListener("touchstart",touchstartListener,e),useMousedown?mousedownShortcut||document.addEventListener("mousedown",mousedownListener,e):document.addEventListener("mouseover",mouseoverListener,e),mousedownShortcut&&document.addEventListener("mousedown",mousedownShortcutListener,e),useViewport){let e;(e=window.requestIdleCallback?e=>{requestIdleCallback(e,{timeout:1500})}:e=>{e()})(()=>{const e=new IntersectionObserver(t=>{t.forEach(t=>{if(t.isIntersecting){const n=t.target;e.unobserve(n),preload(n.href)}})});document.querySelectorAll("a").forEach(t=>{isPreloadable(t)&&e.observe(t)})})}}function touchstartListener(e){lastTouchTimestamp=performance.now();const t=e.target.closest("a");isPreloadable(t)&&preload(t.href)}function mouseoverListener(e){if(performance.now()-lastTouchTimestamp<DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION)return;const t=e.target.closest("a");isPreloadable(t)&&(t.addEventListener("mouseout",mouseoutListener,{passive:!0}),mouseoverTimer=setTimeout(()=>{preload(t.href),mouseoverTimer=void 0},delayOnHover))}function mousedownListener(e){const t=e.target.closest("a");isPreloadable(t)&&preload(t.href)}function mouseoutListener(e){e.relatedTarget&&e.target.closest("a")==e.relatedTarget.closest("a")||mouseoverTimer&&(clearTimeout(mouseoverTimer),mouseoverTimer=void 0)}function mousedownShortcutListener(e){if(performance.now()-lastTouchTimestamp<DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION)return;const t=e.target.closest("a");if(e.which>1||e.metaKey||e.ctrlKey)return;if(!t)return;t.addEventListener("click",function(e){1337!=e.detail&&e.preventDefault()},{capture:!0,passive:!1,once:!0});const n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1,detail:1337});t.dispatchEvent(n)}function isPreloadable(e){if(e&&e.href&&(!useWhitelist||"instant"in e.dataset)&&(allowExternalLinks||e.origin==location.origin||"instant"in e.dataset)&&["http:","https:"].includes(e.protocol)&&("http:"!=e.protocol||"https:"!=location.protocol)&&(allowQueryString||!e.search||"instant"in e.dataset)&&!(e.hash&&e.pathname+e.search==location.pathname+location.search||"noInstant"in e.dataset))return!0}function preload(e){if(prefetches.has(e))return;const t=document.createElement("link");t.rel="prefetch",t.href=e,document.head.appendChild(t),prefetches.add(e)}var _litespeed_meta ;
var _litespeed_shell_interval = 3 ;// seconds
var _litespeed_shell_interval_range = [3, 60] ;
var _litespeed_shell_handle ;
var _litespeed_shell_display_handle ;
var _litespeed_crawler_url ;
var _litespeed_dots ;

(function ($) {
	'use strict' ;

	/**
	 * All of the code for your public-facing JavaScript source
	 * should reside in this file.
	 *
	 * Note: It has been assumed you will write jQuery code here, so the
	 * $ function reference has been prepared for usage within the scope
	 * of this function.
	 *
	 * This enables you to define handlers, for when the DOM is ready:
	 *
	 * $(function() {
	 *
	 * }) ;
	 *
	 * When the window is loaded:
	 *
	 * $( window ).load(function() {
	 *
	 * }) ;
	 *
	 * ...and/or other possibilities.
	 *
	 * Ideally, it is not considered best practise to attach more than a
	 * single DOM-ready or window-load handler for a particular page.
	 * Although scripts in the WordPress core, Plugins and Themes may be
	 * practising this, we should strive to set a better example in our own work.
	 */

	jQuery(document).ready(function () {
		/************** Common LiteSpeed JS **************/
		// Link confirm
		$('[data-litespeed-cfm]').click(function(event) {
			if(confirm($.trim($(this).data('litespeed-cfm')).replace(/\\n/g,"\n"))) {
				return true ;
			}
			event.preventDefault() ;
			event.stopImmediatePropagation() ;
			return false ;
		}) ;

		/************** LSWCP JS ****************/
		// page tab switch functionality
		if($('[data-litespeed-tab]').length > 0){
			// display default tab
			var litespeed_tab_current = document.cookie.replace(/(?:(?:^|.*;\s*)litespeed_tab\s*\=\s*([^;]*).*$)|^.*$/, "$1") ;
			if(window.location.hash.substr(1)) {
				litespeed_tab_current = window.location.hash.substr(1) ;
			}
			if(!litespeed_tab_current || !$('[data-litespeed-tab="'+litespeed_tab_current+'"]').length) {
				litespeed_tab_current = $('[data-litespeed-tab]').first().data('litespeed-tab') ;
			}
			litespeed_display_tab(litespeed_tab_current) ;
			// tab switch
			$('[data-litespeed-tab]').click(function(event) {
				litespeed_display_tab($(this).data('litespeed-tab')) ;
				document.cookie = 'litespeed_tab='+$(this).data('litespeed-tab') ;
				$(this).blur() ;
			}) ;
		}

		// Manage page -> purge by
		$('[name=purgeby]').change(function(event) {
			$('[data-purgeby]').hide() ;
			$('[data-purgeby='+this.value+']').show() ;
		}) ;

		/*************** crawler ******************/
		$('#litespeed-crawl-url-btn').click(function () {
			if( ! $(this).data('url') ){
				return false ;
			}
			$('.litespeed-shell').removeClass( 'litespeed-hide' ) ;
			_litespeed_dots = window.setInterval(_litespeed_loading_dots, 300) ;
			_litespeed_crawler_url = $(this).data('url') ;
			litespeed_fetch_meta() ;
			$(this).hide() ;
		}) ;

		$('#litespeed_manual_trigger').click(function(event) {
			$('#litespeed-loading-dot').before('<li>Manually Started</li>') ;
			_litespeed_shell_interval = _litespeed_shell_interval_range[0] ;
			litespeed_fetch_meta() ;
		}) ;

		/******************** Clear whm msg ********************/
		$(document).on('click', '.lscwp-whm-notice .notice-dismiss', function () {
			$.get(litespeed_data.ajax_url_dismiss_whm) ;
		});
		/******************** Clear rule conflict msg ********************/
		$(document).on('click', '.lscwp-notice-ruleconflict .notice-dismiss', function () {
			$.get(litespeed_data.ajax_url_dismiss_ruleconflict) ;
		});

		/** Accesskey **/
		$( '[litespeed-accesskey]' ).map( function() {
			var thiskey = $( this ).attr( 'litespeed-accesskey' ) ;
			$( this ).attr( 'title', 'Shortcut : ' + thiskey.toLocaleUpperCase() ) ;
			var that = this ;
			$( document ).on( 'keydown', function( e ) {
				if( $(":input:focus").length > 0 ) return ;
				if( event.metaKey ) return ;
				if( event.ctrlKey ) return ;
				if( event.altKey ) return ;
				if( event.shiftKey ) return ;
				if( litespeed_keycode( thiskey.charCodeAt( 0 ) ) ) $( that )[ 0 ].click() ;
			});
		});

		/** Lets copy one more submit button **/
		if ( $( 'input[name="LSCWP_CTRL"]' ).length > 0 ) {
			var btn = $( 'input.litespeed-duplicate-float' ) ;
			btn.clone().addClass( 'litespeed-float-submit' ).removeAttr( 'id' ).insertAfter( btn ) ;
		}
		if ( $( 'input[id="LSCWP_NONCE"]' ).length > 0 ) {
			$( 'input[id="LSCWP_NONCE"]' ).removeAttr( 'id' );
		}

		/** Promo banner **/
		$( '#litespeed-promo-done' ).click( function( event ) {
			$( '.litespeed-banner-promo-full' ).slideUp() ;
			$.get( litespeed_data.ajax_url_promo + '&done=1' ) ;
		} ) ;
		$( '#litespeed-promo-later' ).click( function( event ) {
			$( '.litespeed-banner-promo-full' ).slideUp() ;
			$.get( litespeed_data.ajax_url_promo ) ;
		} ) ;

		/**
		 * Human readable time conversation
		 * @since  3.0
		 */
		if ( $( '[data-litespeed-readable]' ).length > 0 ) {
			$( '[data-litespeed-readable]' ).each(function(index, el) {
				var that = this ;
				var $input = $( this ).siblings( 'input[type="text"]' ) ;

				var txt = litespeed_readable_time( $input.val() ) ;
				$( that ).html( txt ? '= ' + txt : '' ) ;

				$input.keyup(function(event) {
					var txt = litespeed_readable_time( $( this ).val() ) ;
					$( that ).html( txt ? '= ' + txt : '' ) ;
				});
			});
		}

		/**
		 * Get server IP
		 * @since  3.0
		 */
		$( '#litespeed_get_ip' ).click( function( e ) {
			$.ajax( {
				url: litespeed_data.ajax_url_getIP,
				dataType: 'json',
				beforeSend: function ( xhr ) {
					xhr.setRequestHeader( 'X-WP-Nonce', litespeed_data.nonce ) ;
				},
				success: function( data ) {
					$( '#litespeed_server_ip' ).html( data ) ;
				}
			} ) ;
		} ) ;

		/**
		 * Click only once
		 */
		if ( $( '[data-litespeed-onlyonce]' ).length > 0 ) {
			$( '[data-litespeed-onlyonce]' ).click( function ( e ) {
				if ( $( this ).hasClass( 'disabled' ) ) {
					e.preventDefault();
				}
				$( this ).addClass( 'disabled' );
			} );
		}
	}) ;
})(jQuery) ;

/**
 * Plural handler
 */
function litespeed_plural( $num, $txt )
{
	if ( $num > 1 ) return $num + ' ' + $txt + 's' ;

	return $num + ' ' + $txt ;
}

/**
 * Convert seconds to readable time
 */
function litespeed_readable_time( seconds )
{
	if ( seconds < 60 ) {
		return '' ;
	}

	var second = Math.floor( seconds % 60 ) ;
	var minute = Math.floor( ( seconds / 60 ) % 60 ) ;
	var hour = Math.floor( ( seconds / 3600 ) % 24 ) ;
	var day = Math.floor( ( seconds / 3600 / 24 ) % 7 ) ;
	var week = Math.floor( seconds / 3600 / 24 / 7 ) ;

	var str = '' ;
	if ( week ) str += ' ' + litespeed_plural( week, 'week' ) ;
	if ( day ) str += ' ' + litespeed_plural( day, 'day' ) ;
	if ( hour ) str += ' ' + litespeed_plural( hour, 'hour' ) ;
	if ( minute ) str += ' ' + litespeed_plural( minute, 'minute' ) ;
	if ( second ) str += ' ' + litespeed_plural( second, 'second' ) ;

	return str ;
}

/**
 * Trigger a click event on an element
 * @since  1.8
 */
function litespeed_trigger_click( selector )
{
	jQuery( selector ).trigger( 'click' ) ;
}

function litespeed_keycode( num ) {
	var num = num || 13 ;
	var code = window.event ? event.keyCode : event.which ;
	if( num == code ) return true ;
	return false ;
}

function litespeed_display_tab(tab) {
	jQuery('[data-litespeed-tab]').removeClass('nav-tab-active') ;
	jQuery('[data-litespeed-tab="'+tab+'"]').addClass('nav-tab-active') ;
	jQuery('[data-litespeed-layout]').hide() ;
	jQuery('[data-litespeed-layout="'+tab+'"]').show() ;
}

function lscwpEsiEnabled(the_checkbox, esi_ids) {
	var rdonly = the_checkbox.checked ? false : true;
	var len = esi_ids.length;
	for (var i = 0; i < len; i++) {
		var node_id = 'saved_' + esi_ids[i].getAttribute('id');
		var node_val = esi_ids[i].getAttribute('value');
		var prev = document.getElementById(node_id);
		if (rdonly === false) {
			esi_ids[i].removeAttribute('disabled');
			if (prev) {
				esi_ids[i].removeChild(prev);
			}
			continue;
		}
		esi_ids[i].setAttribute('disabled', true);
		if (prev !== null) {
			if (esi_ids[i].checked) {
				prev.setAttribute("value", node_val);
			}
			else {
				esi_ids[i].removeChild(prev);
			}
			continue;
		}
		else if (esi_ids[i].checked === false) {
			continue;
		}
		var hid = document.createElement("INPUT");
		hid.setAttribute("type", "hidden");
		hid.setAttribute("name", esi_ids[i].getAttribute('name'));
		hid.setAttribute("value", node_val);
		hid.setAttribute("id", node_id);
		esi_ids[i].appendChild(hid);
	}
}

// Append params to uri
function litespeed_append_param(uri, key, val) {
	var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i") ;
	var separator = uri.indexOf('?') !== -1 ? "&" : "?" ;
	if (uri.match(re)) {
		return uri.replace(re, '$1' + key + "=" + val + '$2') ;
	}
	else {
		return uri + separator + key + "=" + val ;
	}
}

function litespeed_pulse() {
	jQuery('#litespeed-shell-icon').animate({
		width: 27, height: 34,
		opacity: 1
	}, 700, function() {
		jQuery('#litespeed-shell-icon').animate({
			width: 23, height: 29,
			opacity: 0.5
		}, 700) ;
	}) ;
}

function litespeed_fetch_meta() {
	window.clearTimeout(_litespeed_shell_handle) ;
	jQuery('#litespeed-loading-dot').text('') ;
	jQuery.ajaxSetup({ cache: false }) ;
	jQuery.getJSON(_litespeed_crawler_url, function( meta ) {
		litespeed_pulse() ;
		var changed = false ;
		if ( meta && 'list_size' in meta ) {
			new_meta = meta.list_size + ' ' + meta.file_time + ' ' + meta.curr_crawler + ' ' + meta.last_pos + ' ' + meta.last_count + ' ' + meta.last_start_time + ' ' + meta.is_running ;
			if ( new_meta != _litespeed_meta ) {
				_litespeed_meta = new_meta ;
				changed = true ;
				string = _litespeed_build_meta(meta);
				jQuery('#litespeed-loading-dot').before(string) ;
				// remove first log elements
				log_length = jQuery('.litespeed-shell-body li').length;
				if ( log_length > 50) {
					jQuery('.litespeed-shell-body li:lt(' + (log_length - 50) + ')').remove();
				}
				// scroll to end
				jQuery('.litespeed-shell-body').stop().animate({
					scrollTop: jQuery('.litespeed-shell-body')[0].scrollHeight
				}, 800) ;
			}

			// dynamic adjust the interval length
			_litespeed_adjust_interval(changed) ;
		}
		// display interval counting
		litespeed_display_interval_reset() ;
		_litespeed_shell_handle = window.setTimeout(_litespeed_dynamic_timeout, _litespeed_shell_interval*1000) ;
	}) ;
}

/**
 * Dynamic adjust interval
 */
function _litespeed_adjust_interval(changed) {
	if ( changed ) {
		_litespeed_shell_interval -= Math.ceil(_litespeed_shell_interval/2) ;
	}
	else{
		_litespeed_shell_interval ++ ;
	}

	if(_litespeed_shell_interval < _litespeed_shell_interval_range[0]) {
		_litespeed_shell_interval = _litespeed_shell_interval_range[0] ;
	}
	if(_litespeed_shell_interval > _litespeed_shell_interval_range[1]) {
		_litespeed_shell_interval = _litespeed_shell_interval_range[1] ;
	}
}

function _litespeed_build_meta(meta) {
	var string = '<li>' + litespeed_date(meta.last_update_time) +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size: ' + meta.list_size +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Crawler: #' + (meta.curr_crawler*1+1) +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Position: ' + (meta.last_pos*1+1) +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Threads: ' + meta.last_count +
					'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Status: '
				 ;
	if ( meta.is_running ) {
		string += 'crawling, ' + meta.last_status;
	}
	else{
		string += meta.end_reason ? meta.end_reason : '-' ;
	}
	string += '</li>' ;
	return string;
}

function _litespeed_dynamic_timeout() {
	litespeed_fetch_meta() ;
}

function litespeed_display_interval_reset() {
	window.clearInterval(_litespeed_shell_display_handle) ;
	jQuery('.litespeed-shell-header-bar').data('num', _litespeed_shell_interval) ;
	_litespeed_shell_display_handle = window.setInterval(_litespeed_display_interval, 1000) ;

	jQuery('.litespeed-shell-header-bar').stop().animate({width: '100%'}, 500, function(){
		jQuery('.litespeed-shell-header-bar').css('width', '0%') ;
	}) ;
}

function _litespeed_display_interval() {
	var num = jQuery('.litespeed-shell-header-bar').data('num') ;
	jQuery('.litespeed-shell-header-bar').stop().animate({width: litespeed_get_percent(num, _litespeed_shell_interval) + '%'}, 1000) ;
	if(num > 0) num-- ;
	if(num < 0) num = 0 ;
	jQuery('.litespeed-shell-header-bar').data('num', num) ;
}

function litespeed_get_percent(num1, num2){
	num1 = num1 * 1;
	num2 = num2 * 1;
	num = (num2 - num1) / num2;
	return num * 100;
}

function _litespeed_loading_dots() {
	jQuery('#litespeed-loading-dot').append('.') ;
}

function litespeed_date(timestamp) {
	var a = new Date(timestamp * 1000) ;
	var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'] ;
	var year = a.getFullYear() ;
	var month = months[a.getMonth()] ;
	var date = litespeed_add_zero(a.getDate()) ;
	var hour = litespeed_add_zero(a.getHours()) ;
	var min = litespeed_add_zero(a.getMinutes()) ;
	var sec = litespeed_add_zero(a.getSeconds()) ;
	var time = date + ' ' + month + ' ' + year + ' ' + hour + ':' + min + ':' + sec  ;
	return time ;
}

function litespeed_add_zero(i) {
	if (i < 10) {
		i = "0" + i;
	}
	return i;
}
/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */
!function(a){"use strict";var b=function(b,c,d){function e(a){return h.body?a():void setTimeout(function(){e(a)})}function f(){i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"}var g,h=a.document,i=h.createElement("link");if(c)g=c;else{var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]}var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){g.parentNode.insertBefore(i,c?g:g.nextSibling)});var l=function(a){for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){l(a)})};return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);
/*! loadCSS rel=preload polyfill. [c]2017 Filament Group, Inc. MIT License */
!function(a){if(a.loadCSS){var b=loadCSS.relpreload={};if(b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}},b.poly=function(){for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)}},!b.support()){b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){b.poly(),a.clearInterval(c)}),a.attachEvent&&a.attachEvent("onload",function(){a.clearInterval(c)})}}}(this);/**
 * Crawler simulation module
 * @author Hai Zheng
 */
class CrawlerSimulate extends React.Component {
	constructor( props ) {
		super( props );
		this.state = {
			list: props.list
		};

		this.handleInputChange = this.handleInputChange.bind( this );
		this.delRow = this.delRow.bind( this );
		this.addNew = this.addNew.bind( this );
	}

	handleInputChange( e, index ) {
		const target = e.target;
		const value = target.type === 'checkbox' ? target.checked : target.value;
		const list = this.state.list;
		list[ index ][ target.dataset.type ] = value;

		this.setState( {
		  list: list
		} );
	}

	delRow( index ) {
		const data = this.state.list;
		data.splice( index, 1 );
		this.setState( { list: data } );
	}

	addNew() {
		const list = this.state.list;
		list.push( { name: '', vals: '' } );
		this.setState( { list: list } );
	}

	render() {
		return (
			<React.Fragment>
			{ this.state.list.map( (item, i) => (
				<SimulationBlock item={item} key={i} index={i} handleInputChange={this.handleInputChange} delRow={this.delRow} />
			) ) }

				<p>
					<button type="button" className="button button-link litespeed-form-action litespeed-link-with-icon" onClick={this.addNew}>
						<span className="dashicons dashicons-plus-alt"></span>{litespeed_data[ 'lang' ][ 'add_cookie_simulation_row' ]}
					</button>
				</p>
			</React.Fragment>
		);
	}
}

// { name: '', vals: '' }
class SimulationBlock extends React.Component {
	constructor( props ) {
		super( props );

		this.handleInputChange = this.handleInputChange.bind( this );
		this.delRow = this.delRow.bind( this );
	}

	handleInputChange( e ) {
		this.props.handleInputChange( e, this.props.index );
	}

	delRow() {
		this.props.delRow( this.props.index );
	}

	render() {
		const item = this.props.item;
		return (
			<div className="litespeed-block">
				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">{ litespeed_data[ 'lang' ][ 'cookie_name' ] }</label>
					<input type="text" name={ litespeed_data[ 'ids' ][ 'crawler_cookies' ] + '[name][]' } className="regular-text" value={item.name} data-type="name" onChange={this.handleInputChange} />
				</div>
				<div className="litespeed-col-auto">
					<label className="litespeed-form-label">{ litespeed_data[ 'lang' ][ 'cookie_values' ] }</label>
					<textarea rows="5" cols="40" name={ litespeed_data[ 'ids' ][ 'crawler_cookies' ] + '[vals][]' } placeholder={ litespeed_data[ 'lang' ][ 'one_per_line' ] } value={ Array.isArray(item.vals) ? item.vals.join("\n") : item.vals } data-type="vals" onChange={this.handleInputChange} />
				</div>
				<div className="litespeed-col-auto">
					<button type="button" className="button button-link litespeed-collection-button litespeed-danger" onClick={this.delRow}>
						<span className="dashicons dashicons-dismiss"></span>
						<span className="screen-reader-text">{ litespeed_data[ 'lang' ][ 'remove_cookie_simulation' ] }</span>
					</button>
				</div>
			</div>

		);
	}
}!function(a){"use strict";var b=function(b,c,d){function e(a){return h.body?a():void setTimeout(function(){e(a)})}function f(){i.addEventListener&&i.removeEventListener("load",f),i.media=d||"all"}var g,h=a.document,i=h.createElement("link");if(c)g=c;else{var j=(h.body||h.getElementsByTagName("head")[0]).childNodes;g=j[j.length-1]}var k=h.styleSheets;i.rel="stylesheet",i.href=b,i.media="only x",e(function(){g.parentNode.insertBefore(i,c?g:g.nextSibling)});var l=function(a){for(var b=i.href,c=k.length;c--;)if(k[c].href===b)return a();setTimeout(function(){l(a)})};return i.addEventListener&&i.addEventListener("load",f),i.onloadcssdefined=l,l(f),i};"undefined"!=typeof exports?exports.loadCSS=b:a.loadCSS=b}("undefined"!=typeof global?global:this);!function(a){if(a.loadCSS){var b=loadCSS.relpreload={};if(b.support=function(){try{return a.document.createElement("link").relList.supports("preload")}catch(b){return!1}},b.poly=function(){for(var b=a.document.getElementsByTagName("link"),c=0;c<b.length;c++){var d=b[c];"preload"===d.rel&&"style"===d.getAttribute("as")&&(a.loadCSS(d.href,d,d.getAttribute("media")),d.rel=null)}},!b.support()){b.poly();var c=a.setInterval(b.poly,300);a.addEventListener&&a.addEventListener("load",function(){b.poly(),a.clearInterval(c)}),a.attachEvent&&a.attachEvent("onload",function(){a.clearInterval(c)})}}}(this);var _extends=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(t,e){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.LazyLoad=e()}(this,function(){"use strict";var n={elements_selector:"img",container:document,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",load_delay:0,callback_load:null,callback_error:null,callback_set:null,callback_enter:null,callback_finish:null,to_webp:!1},s="data-",r="was-processed",o="ll-timeout",a="true",c=function(t,e){return t.getAttribute(s+e)},i=function(t,e,n){var o=s+e;null!==n?t.setAttribute(o,n):t.removeAttribute(o)},l=function(t){return c(t,r)===a},u=function(t,e){return i(t,o,e)},d=function(t){return c(t,o)},f=function(t,e){var n,o="LazyLoad::Initialized",s=new t(e);try{n=new CustomEvent(o,{detail:{instance:s}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent(o,!1,!1,{instance:s})}window.dispatchEvent(n)};var _=function(t,e){return e?t.replace(/\.(jpe?g|png)/gi,".webp"):t},t="undefined"!=typeof window,v=t&&!("onscroll"in window)||/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),e=t&&"IntersectionObserver"in window,h=t&&"classList"in document.createElement("p"),b=t&&!1,g=function(t,e,n,o){for(var s,r=0;s=t.children[r];r+=1)if("SOURCE"===s.tagName){var a=c(s,n);m(s,e,a,o)}},m=function(t,e,n,o){n&&t.setAttribute(e,_(n,o))},p={IMG:function(t,e){var n=b&&e.to_webp,o=e.data_srcset,s=t.parentNode;s&&"PICTURE"===s.tagName&&g(s,"srcset",o,n);var r=c(t,e.data_sizes);m(t,"sizes",r);var a=c(t,o);m(t,"srcset",a,n);var i=c(t,e.data_src);m(t,"src",i,n)},IFRAME:function(t,e){var n=c(t,e.data_src);m(t,"src",n)},VIDEO:function(t,e){var n=e.data_src,o=c(t,n);g(t,"src",n),m(t,"src",o),t.load()}},y=function(t,e){var n,o,s=e._settings,r=t.tagName,a=p[r];if(a)return a(t,s),e._updateLoadingCount(1),void(e._elements=(n=e._elements,o=t,n.filter(function(t){return t!==o})));!function(t,e){var n=b&&e.to_webp,o=c(t,e.data_src),s=c(t,e.data_bg);if(o){var r=_(o,n);t.style.backgroundImage='url("'+r+'")'}if(s){var a=_(s,n);t.style.backgroundImage=a}}(t,s)},w=function(t,e){h?t.classList.add(e):t.className+=(t.className?" ":"")+e},E=function(t,e){t&&t(e)},L="load",I="loadeddata",O="error",k=function(t,e,n){t.addEventListener(e,n)},A=function(t,e,n){t.removeEventListener(e,n)},C=function(t,e,n){A(t,L,e),A(t,I,e),A(t,O,n)},z=function(t,e,n){var o,s,r=n._settings,a=e?r.class_loaded:r.class_error,i=e?r.callback_load:r.callback_error,c=t.target;o=c,s=r.class_loading,h?o.classList.remove(s):o.className=o.className.replace(new RegExp("(^|\\s+)"+s+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,""),w(c,a),E(i,c),n._updateLoadingCount(-1)},N=function(n,o){var t,e,s,r=function t(e){z(e,!0,o),C(n,t,a)},a=function t(e){z(e,!1,o),C(n,r,t)};s=a,k(t=n,L,e=r),k(t,I,e),k(t,O,s)},x=["IMG","IFRAME","VIDEO"],M=function(t,e,n){R(t,n),e.unobserve(t)},S=function(t){var e=d(t);e&&(clearTimeout(e),u(t,null))};function R(t,e,n){var o=e._settings;!n&&l(t)||(E(o.callback_enter,t),-1<x.indexOf(t.tagName)&&(N(t,e),w(t,o.class_loading)),y(t,e),i(t,r,a),E(o.callback_set,t))}var j=function(t){return t.isIntersecting||0<t.intersectionRatio},T=function(t,e){this._settings=_extends({},n,t),this._setObserver(),this._loadingCount=0,this.update(e)};return T.prototype={_manageIntersection:function(t){var e,n,o,s,r,a=this._observer,i=this._settings.load_delay,c=t.target;i?j(t)?(e=c,n=a,s=(o=this)._settings.load_delay,(r=d(e))||(r=setTimeout(function(){M(e,n,o),S(e)},s),u(e,r))):S(c):j(t)&&M(c,a,this)},_onIntersection:function(t){t.forEach(this._manageIntersection.bind(this))},_setObserver:function(){var t;e&&(this._observer=new IntersectionObserver(this._onIntersection.bind(this),{root:(t=this._settings).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))},_updateLoadingCount:function(t){this._loadingCount+=t,0===this._elements.length&&0===this._loadingCount&&E(this._settings.callback_finish)},update:function(t){var e=this,n=this._settings,o=t||n.container.querySelectorAll(n.elements_selector);this._elements=Array.prototype.slice.call(o).filter(function(t){return!l(t)}),!v&&this._observer?this._elements.forEach(function(t){e._observer.observe(t)}):this.loadAll()},destroy:function(){var e=this;this._observer&&(this._elements.forEach(function(t){e._observer.unobserve(t)}),this._observer=null),this._elements=null,this._settings=null},load:function(t,e){R(t,this,e)},loadAll:function(){var e=this;this._elements.forEach(function(t){e.load(t)})}},t&&function(t,e){if(e)if(e.length)for(var n,o=0;n=e[o];o+=1)f(t,n);else f(t,e)}(T,window.lazyLoadOptions),T}),function(e,t){"use strict";function n(){t.body.classList.add("litespeed_lazyloaded")}function a(){d=new LazyLoad({elements_selector:"[data-lazyloaded]",callback_finish:n}),o=function(){d.update()},e.MutationObserver&&new MutationObserver(o).observe(t.documentElement,{childList:!0,subtree:!0,attributes:!0})}var d,o;e.addEventListener?e.addEventListener("load",a,!1):e.attachEvent("onload",a)}(window,document);var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };

(function (global, factory) {
	(typeof exports === 'undefined' ? 'undefined' : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.LazyLoad = factory();
})(this, function () {
	'use strict';

	var defaultSettings = {
		elements_selector: "img",
		container: document,
		threshold: 300,
		thresholds: null,
		data_src: "src",
		data_srcset: "srcset",
		data_sizes: "sizes",
		data_bg: "bg",
		class_loading: "litespeed-loading",
		class_loaded: "litespeed-loaded",
		class_error: "error",
		load_delay: 0,
		callback_load: null,
		callback_error: null,
		callback_set: null,
		callback_enter: null,
		callback_finish: null,
		to_webp: false
	};

	var getInstanceSettings = function getInstanceSettings(customSettings) {
		return _extends({}, defaultSettings, customSettings);
	};

	var dataPrefix = "data-";
	var processedDataName = "was-processed";
	var timeoutDataName = "ll-timeout";
	var trueString = "true";

	var getData = function getData(element, attribute) {
		return element.getAttribute(dataPrefix + attribute);
	};

	var setData = function setData(element, attribute, value) {
		var attrName = dataPrefix + attribute;
		if (value === null) {
			element.removeAttribute(attrName);
			return;
		}
		element.setAttribute(attrName, value);
	};

	var setWasProcessedData = function setWasProcessedData(element) {
		return setData(element, processedDataName, trueString);
	};

	var getWasProcessedData = function getWasProcessedData(element) {
		return getData(element, processedDataName) === trueString;
	};

	var setTimeoutData = function setTimeoutData(element, value) {
		return setData(element, timeoutDataName, value);
	};

	var getTimeoutData = function getTimeoutData(element) {
		return getData(element, timeoutDataName);
	};

	var purgeProcessedElements = function purgeProcessedElements(elements) {
		return elements.filter(function (element) {
			return !getWasProcessedData(element);
		});
	};

	var purgeOneElement = function purgeOneElement(elements, elementToPurge) {
		return elements.filter(function (element) {
			return element !== elementToPurge;
		});
	};

	/* Creates instance and notifies it through the window element */
	var createInstance = function createInstance(classObj, options) {
		var event;
		var eventString = "LazyLoad::Initialized";
		var instance = new classObj(options);
		try {
			// Works in modern browsers
			event = new CustomEvent(eventString, { detail: { instance: instance } });
		} catch (err) {
			// Works in Internet Explorer (all versions)
			event = document.createEvent("CustomEvent");
			event.initCustomEvent(eventString, false, false, { instance: instance });
		}
		window.dispatchEvent(event);
	};

	/* Auto initialization of one or more instances of lazyload, depending on the
     options passed in (plain object or an array) */
	function autoInitialize(classObj, options) {
		if (!options) {
			return;
		}
		if (!options.length) {
			// Plain object
			createInstance(classObj, options);
		} else {
			// Array of objects
			for (var i = 0, optionsItem; optionsItem = options[i]; i += 1) {
				createInstance(classObj, optionsItem);
			}
		}
	}

	var replaceExtToWebp = function replaceExtToWebp(value, condition) {
		return condition ? value.replace(/\.(jpe?g|png)/gi, ".webp") : value;
	};

	var detectWebp = function detectWebp() {
		// var webpString = "image/webp";
		// var canvas = document.createElement("canvas");

		// if (canvas.getContext && canvas.getContext("2d")) {
		// 	return canvas.toDataURL(webpString).indexOf('data:' + webpString) === 0;
		// }

		return false;
	};

	var runningOnBrowser = typeof window !== "undefined";

	var isBot = runningOnBrowser && !("onscroll" in window) || /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent);

	var supportsIntersectionObserver = runningOnBrowser && "IntersectionObserver" in window;

	var supportsClassList = runningOnBrowser && "classList" in document.createElement("p");

	var supportsWebp = runningOnBrowser && detectWebp();

	var setSourcesInChildren = function setSourcesInChildren(parentTag, attrName, dataAttrName, toWebpFlag) {
		for (var i = 0, childTag; childTag = parentTag.children[i]; i += 1) {
			if (childTag.tagName === "SOURCE") {
				var attrValue = getData(childTag, dataAttrName);
				setAttributeIfValue(childTag, attrName, attrValue, toWebpFlag);
			}
		}
	};

	var setAttributeIfValue = function setAttributeIfValue(element, attrName, value, toWebpFlag) {
		if (!value) {
			return;
		}
		element.setAttribute(attrName, replaceExtToWebp(value, toWebpFlag));
	};

	var setSourcesImg = function setSourcesImg(element, settings) {
		var toWebpFlag = supportsWebp && settings.to_webp;
		var srcsetDataName = settings.data_srcset;
		var parent = element.parentNode;

		if (parent && parent.tagName === "PICTURE") {
			setSourcesInChildren(parent, "srcset", srcsetDataName, toWebpFlag);
		}
		var sizesDataValue = getData(element, settings.data_sizes);
		setAttributeIfValue(element, "sizes", sizesDataValue);
		var srcsetDataValue = getData(element, srcsetDataName);
		setAttributeIfValue(element, "srcset", srcsetDataValue, toWebpFlag);
		var srcDataValue = getData(element, settings.data_src);
		setAttributeIfValue(element, "src", srcDataValue, toWebpFlag);
	};

	var setSourcesIframe = function setSourcesIframe(element, settings) {
		var srcDataValue = getData(element, settings.data_src);

		setAttributeIfValue(element, "src", srcDataValue);
	};

	var setSourcesVideo = function setSourcesVideo(element, settings) {
		var srcDataName = settings.data_src;
		var srcDataValue = getData(element, srcDataName);

		setSourcesInChildren(element, "src", srcDataName);
		setAttributeIfValue(element, "src", srcDataValue);
		element.load();
	};

	var setSourcesBgImage = function setSourcesBgImage(element, settings) {
		var toWebpFlag = supportsWebp && settings.to_webp;
		var srcDataValue = getData(element, settings.data_src);
		var bgDataValue = getData(element, settings.data_bg);

		if (srcDataValue) {
			var setValue = replaceExtToWebp(srcDataValue, toWebpFlag);
			element.style.backgroundImage = 'url("' + setValue + '")';
		}

		if (bgDataValue) {
			var _setValue = replaceExtToWebp(bgDataValue, toWebpFlag);
			element.style.backgroundImage = _setValue;
		}
	};

	var setSourcesFunctions = {
		IMG: setSourcesImg,
		IFRAME: setSourcesIframe,
		VIDEO: setSourcesVideo
	};

	var setSources = function setSources(element, instance) {
		var settings = instance._settings;
		var tagName = element.tagName;
		var setSourcesFunction = setSourcesFunctions[tagName];
		if (setSourcesFunction) {
			setSourcesFunction(element, settings);
			instance._updateLoadingCount(1);
			instance._elements = purgeOneElement(instance._elements, element);
			return;
		}
		setSourcesBgImage(element, settings);
	};

	var addClass = function addClass(element, className) {
		if (supportsClassList) {
			element.classList.add(className);
			return;
		}
		element.className += (element.className ? " " : "") + className;
	};

	var removeClass = function removeClass(element, className) {
		if (supportsClassList) {
			element.classList.remove(className);
			return;
		}
		element.className = element.className.replace(new RegExp("(^|\\s+)" + className + "(\\s+|$)"), " ").replace(/^\s+/, "").replace(/\s+$/, "");
	};

	var callbackIfSet = function callbackIfSet(callback, argument) {
		if (callback) {
			callback(argument);
		}
	};

	var genericLoadEventName = "load";
	var mediaLoadEventName = "loadeddata";
	var errorEventName = "error";

	var addEventListener = function addEventListener(element, eventName, handler) {
		element.addEventListener(eventName, handler);
	};

	var removeEventListener = function removeEventListener(element, eventName, handler) {
		element.removeEventListener(eventName, handler);
	};

	var addEventListeners = function addEventListeners(element, loadHandler, errorHandler) {
		addEventListener(element, genericLoadEventName, loadHandler);
		addEventListener(element, mediaLoadEventName, loadHandler);
		addEventListener(element, errorEventName, errorHandler);
	};

	var removeEventListeners = function removeEventListeners(element, loadHandler, errorHandler) {
		removeEventListener(element, genericLoadEventName, loadHandler);
		removeEventListener(element, mediaLoadEventName, loadHandler);
		removeEventListener(element, errorEventName, errorHandler);
	};

	var eventHandler = function eventHandler(event, success, instance) {
		var settings = instance._settings;
		var className = success ? settings.class_loaded : settings.class_error;
		var callback = success ? settings.callback_load : settings.callback_error;
		var element = event.target;

		removeClass(element, settings.class_loading);
		addClass(element, className);
		callbackIfSet(callback, element);

		instance._updateLoadingCount(-1);
	};

	var addOneShotEventListeners = function addOneShotEventListeners(element, instance) {
		var loadHandler = function loadHandler(event) {
			eventHandler(event, true, instance);
			removeEventListeners(element, loadHandler, errorHandler);
		};
		var errorHandler = function errorHandler(event) {
			eventHandler(event, false, instance);
			removeEventListeners(element, loadHandler, errorHandler);
		};
		addEventListeners(element, loadHandler, errorHandler);
	};

	var managedTags = ["IMG", "IFRAME", "VIDEO"];

	var loadAndUnobserve = function loadAndUnobserve(element, observer, instance) {
		revealElement(element, instance);
		observer.unobserve(element);
	};

	var cancelDelayLoad = function cancelDelayLoad(element) {
		var timeoutId = getTimeoutData(element);
		if (!timeoutId) {
			return; // do nothing if timeout doesn't exist
		}
		clearTimeout(timeoutId);
		setTimeoutData(element, null);
	};

	var delayLoad = function delayLoad(element, observer, instance) {
		var loadDelay = instance._settings.load_delay;
		var timeoutId = getTimeoutData(element);
		if (timeoutId) {
			return; // do nothing if timeout already set
		}
		timeoutId = setTimeout(function () {
			loadAndUnobserve(element, observer, instance);
			cancelDelayLoad(element);
		}, loadDelay);
		setTimeoutData(element, timeoutId);
	};

	function revealElement(element, instance, force) {
		var settings = instance._settings;
		if (!force && getWasProcessedData(element)) {
			return; // element has already been processed and force wasn't true
		}
		callbackIfSet(settings.callback_enter, element);
		if (managedTags.indexOf(element.tagName) > -1) {
			addOneShotEventListeners(element, instance);
			addClass(element, settings.class_loading);
		}
		setSources(element, instance);
		setWasProcessedData(element);
		callbackIfSet(settings.callback_set, element);
	}

	/* entry.isIntersecting needs fallback because is null on some versions of MS Edge, and
    entry.intersectionRatio is not enough alone because it could be 0 on some intersecting elements */
	var isIntersecting = function isIntersecting(entry) {
		return entry.isIntersecting || entry.intersectionRatio > 0;
	};

	var getObserverSettings = function getObserverSettings(settings) {
		return {
			root: settings.container === document ? null : settings.container,
			rootMargin: settings.thresholds || settings.threshold + "px"
		};
	};

	var LazyLoad = function LazyLoad(customSettings, elements) {
		this._settings = getInstanceSettings(customSettings);
		this._setObserver();
		this._loadingCount = 0;
		this.update(elements);
	};

	LazyLoad.prototype = {
		_manageIntersection: function _manageIntersection(entry) {
			var observer = this._observer;
			var loadDelay = this._settings.load_delay;
			var element = entry.target;

			// WITHOUT LOAD DELAY
			if (!loadDelay) {
				if (isIntersecting(entry)) {
					loadAndUnobserve(element, observer, this);
				}
				return;
			}

			// WITH LOAD DELAY
			if (isIntersecting(entry)) {
				delayLoad(element, observer, this);
			} else {
				cancelDelayLoad(element);
			}
		},

		_onIntersection: function _onIntersection(entries) {
			entries.forEach(this._manageIntersection.bind(this));
		},

		_setObserver: function _setObserver() {
			if (!supportsIntersectionObserver) {
				return;
			}
			this._observer = new IntersectionObserver(this._onIntersection.bind(this), getObserverSettings(this._settings));
		},

		_updateLoadingCount: function _updateLoadingCount(plusMinus) {
			this._loadingCount += plusMinus;
			if (this._elements.length === 0 && this._loadingCount === 0) {
				callbackIfSet(this._settings.callback_finish);
			}
		},

		update: function update(elements) {
			var _this = this;

			var settings = this._settings;
			var nodeSet = elements || settings.container.querySelectorAll(settings.elements_selector);

			this._elements = purgeProcessedElements(Array.prototype.slice.call(nodeSet) // NOTE: nodeset to array for IE compatibility
			);

			if (isBot || !this._observer) {
				this.loadAll();
				return;
			}

			this._elements.forEach(function (element) {
				_this._observer.observe(element);
			});
		},

		destroy: function destroy() {
			var _this2 = this;

			if (this._observer) {
				this._elements.forEach(function (element) {
					_this2._observer.unobserve(element);
				});
				this._observer = null;
			}
			this._elements = null;
			this._settings = null;
		},

		load: function load(element, force) {
			revealElement(element, this, force);
		},

		loadAll: function loadAll() {
			var _this3 = this;

			var elements = this._elements;
			elements.forEach(function (element) {
				_this3.load(element);
			});
		}
	};

	/* Automatic instances creation if required (useful for async script loading) */
	if (runningOnBrowser) {
		autoInitialize(LazyLoad, window.lazyLoadOptions);
	}

	return LazyLoad;
});
/** @license React v17.0.1
 * react.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
(function(){'use strict';(function(c,x){"object"===typeof exports&&"undefined"!==typeof module?x(exports):"function"===typeof define&&define.amd?define(["exports"],x):(c=c||self,x(c.React={}))})(this,function(c){function x(a){if(null===a||"object"!==typeof a)return null;a=Y&&a[Y]||a["@@iterator"];return"function"===typeof a?a:null}function y(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,e=1;e<arguments.length;e++)b+="&args[]="+encodeURIComponent(arguments[e]);return"Minified React error #"+
a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function v(a,b,e){this.props=a;this.context=b;this.refs=Z;this.updater=e||aa}function ba(){}function K(a,b,e){this.props=a;this.context=b;this.refs=Z;this.updater=e||aa}function ca(a,b,e){var l,f={},c=null,da=null;if(null!=b)for(l in void 0!==b.ref&&(da=b.ref),void 0!==b.key&&(c=""+b.key),b)ea.call(b,l)&&!fa.hasOwnProperty(l)&&(f[l]=b[l]);var k=arguments.length-2;if(1===
k)f.children=e;else if(1<k){for(var h=Array(k),d=0;d<k;d++)h[d]=arguments[d+2];f.children=h}if(a&&a.defaultProps)for(l in k=a.defaultProps,k)void 0===f[l]&&(f[l]=k[l]);return{$$typeof:w,type:a,key:c,ref:da,props:f,_owner:L.current}}function va(a,b){return{$$typeof:w,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function M(a){return"object"===typeof a&&null!==a&&a.$$typeof===w}function wa(a){var b={"=":"=0",":":"=2"};return"$"+a.replace(/[=:]/g,function(a){return b[a]})}function N(a,b){return"object"===
typeof a&&null!==a&&null!=a.key?wa(""+a.key):b.toString(36)}function C(a,b,e,l,f){var c=typeof a;if("undefined"===c||"boolean"===c)a=null;var d=!1;if(null===a)d=!0;else switch(c){case "string":case "number":d=!0;break;case "object":switch(a.$$typeof){case w:case ha:d=!0}}if(d)return d=a,f=f(d),a=""===l?"."+N(d,0):l,Array.isArray(f)?(e="",null!=a&&(e=a.replace(ia,"$&/")+"/"),C(f,b,e,"",function(a){return a})):null!=f&&(M(f)&&(f=va(f,e+(!f.key||d&&d.key===f.key?"":(""+f.key).replace(ia,"$&/")+"/")+
a)),b.push(f)),1;d=0;l=""===l?".":l+":";if(Array.isArray(a))for(var k=0;k<a.length;k++){c=a[k];var h=l+N(c,k);d+=C(c,b,e,h,f)}else if(h=x(a),"function"===typeof h)for(a=h.call(a),k=0;!(c=a.next()).done;)c=c.value,h=l+N(c,k++),d+=C(c,b,e,h,f);else if("object"===c)throw b=""+a,Error(y(31,"[object Object]"===b?"object with keys {"+Object.keys(a).join(", ")+"}":b));return d}function D(a,b,e){if(null==a)return a;var l=[],c=0;C(a,l,"","",function(a){return b.call(e,a,c++)});return l}function xa(a){if(-1===
a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}function n(){var a=ja.current;if(null===a)throw Error(y(321));return a}function O(a,b){var e=a.length;a.push(b);a:for(;;){var c=e-1>>>1,f=a[c];if(void 0!==f&&0<E(f,b))a[c]=b,a[e]=f,e=c;else break a}}function p(a){a=a[0];return void 0===a?null:a}function F(a){var b=
a[0];if(void 0!==b){var e=a.pop();if(e!==b){a[0]=e;a:for(var c=0,f=a.length;c<f;){var d=2*(c+1)-1,g=a[d],k=d+1,h=a[k];if(void 0!==g&&0>E(g,e))void 0!==h&&0>E(h,g)?(a[c]=h,a[k]=e,c=k):(a[c]=g,a[d]=e,c=d);else if(void 0!==h&&0>E(h,e))a[c]=h,a[k]=e,c=k;else break a}}return b}return null}function E(a,b){var e=a.sortIndex-b.sortIndex;return 0!==e?e:a.id-b.id}function P(a){for(var b=p(r);null!==b;){if(null===b.callback)F(r);else if(b.startTime<=a)F(r),b.sortIndex=b.expirationTime,O(q,b);else break;b=p(r)}}
function Q(a){z=!1;P(a);if(!u)if(null!==p(q))u=!0,A(R);else{var b=p(r);null!==b&&G(Q,b.startTime-a)}}function R(a,b){u=!1;z&&(z=!1,S());H=!0;var e=g;try{P(b);for(m=p(q);null!==m&&(!(m.expirationTime>b)||a&&!T());){var c=m.callback;if("function"===typeof c){m.callback=null;g=m.priorityLevel;var f=c(m.expirationTime<=b);b=t();"function"===typeof f?m.callback=f:m===p(q)&&F(q);P(b)}else F(q);m=p(q)}if(null!==m)var d=!0;else{var n=p(r);null!==n&&G(Q,n.startTime-b);d=!1}return d}finally{m=null,g=e,H=!1}}
var w=60103,ha=60106;c.Fragment=60107;c.StrictMode=60108;c.Profiler=60114;var ka=60109,la=60110,ma=60112;c.Suspense=60113;var na=60115,oa=60116;if("function"===typeof Symbol&&Symbol.for){var d=Symbol.for;w=d("react.element");ha=d("react.portal");c.Fragment=d("react.fragment");c.StrictMode=d("react.strict_mode");c.Profiler=d("react.profiler");ka=d("react.provider");la=d("react.context");ma=d("react.forward_ref");c.Suspense=d("react.suspense");na=d("react.memo");oa=d("react.lazy")}var Y="function"===
typeof Symbol&&Symbol.iterator,ya=Object.prototype.hasOwnProperty,U=Object.assign||function(a,b){if(null==a)throw new TypeError("Object.assign target cannot be null or undefined");for(var e=Object(a),c=1;c<arguments.length;c++){var d=arguments[c];if(null!=d){var g=void 0;d=Object(d);for(g in d)ya.call(d,g)&&(e[g]=d[g])}}return e},aa={isMounted:function(a){return!1},enqueueForceUpdate:function(a,b,c){},enqueueReplaceState:function(a,b,c,d){},enqueueSetState:function(a,b,c,d){}},Z={};v.prototype.isReactComponent=
{};v.prototype.setState=function(a,b){if("object"!==typeof a&&"function"!==typeof a&&null!=a)throw Error(y(85));this.updater.enqueueSetState(this,a,b,"setState")};v.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,"forceUpdate")};ba.prototype=v.prototype;d=K.prototype=new ba;d.constructor=K;U(d,v.prototype);d.isPureReactComponent=!0;var L={current:null},ea=Object.prototype.hasOwnProperty,fa={key:!0,ref:!0,__self:!0,__source:!0},ia=/\/+/g,ja={current:null},V;if("object"===typeof performance&&
"function"===typeof performance.now){var za=performance;var t=function(){return za.now()}}else{var pa=Date,Aa=pa.now();t=function(){return pa.now()-Aa}}if("undefined"===typeof window||"function"!==typeof MessageChannel){var B=null,qa=null,ra=function(){if(null!==B)try{var a=t();B(!0,a);B=null}catch(b){throw setTimeout(ra,0),b;}};var A=function(a){null!==B?setTimeout(A,0,a):(B=a,setTimeout(ra,0))};var G=function(a,b){qa=setTimeout(a,b)};var S=function(){clearTimeout(qa)};var T=function(){return!1};
d=V=function(){}}else{var Ba=window.setTimeout,Ca=window.clearTimeout;"undefined"!==typeof console&&(d=window.cancelAnimationFrame,"function"!==typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!==typeof d&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"));
var I=!1,J=null,W=-1,sa=5,ta=0;T=function(){return t()>=ta};d=function(){};V=function(a){0>a||125<a?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):sa=0<a?Math.floor(1E3/a):5};var ua=new MessageChannel,X=ua.port2;ua.port1.onmessage=function(){if(null!==J){var a=t();ta=a+sa;try{J(!0,a)?X.postMessage(null):(I=!1,J=null)}catch(b){throw X.postMessage(null),b;}}else I=!1};A=function(a){J=a;I||(I=!0,X.postMessage(null))};G=
function(a,b){W=Ba(function(){a(t())},b)};S=function(){Ca(W);W=-1}}var q=[],r=[],Da=1,m=null,g=3,H=!1,u=!1,z=!1,Ea=0;d={ReactCurrentDispatcher:ja,ReactCurrentOwner:L,IsSomeRendererActing:{current:!1},ReactCurrentBatchConfig:{transition:0},assign:U,Scheduler:{__proto__:null,unstable_ImmediatePriority:1,unstable_UserBlockingPriority:2,unstable_NormalPriority:3,unstable_IdlePriority:5,unstable_LowPriority:4,unstable_runWithPriority:function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=
3}var c=g;g=a;try{return b()}finally{g=c}},unstable_next:function(a){switch(g){case 1:case 2:case 3:var b=3;break;default:b=g}var c=g;g=b;try{return a()}finally{g=c}},unstable_scheduleCallback:function(a,b,c){var d=t();"object"===typeof c&&null!==c?(c=c.delay,c="number"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:Da++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=
c,O(r,a),null===p(q)&&a===p(r)&&(z?S():z=!0,G(Q,c-d))):(a.sortIndex=e,O(q,a),u||H||(u=!0,A(R)));return a},unstable_cancelCallback:function(a){a.callback=null},unstable_wrapCallback:function(a){var b=g;return function(){var c=g;g=b;try{return a.apply(this,arguments)}finally{g=c}}},unstable_getCurrentPriorityLevel:function(){return g},get unstable_shouldYield(){return T},unstable_requestPaint:d,unstable_continueExecution:function(){u||H||(u=!0,A(R))},unstable_pauseExecution:function(){},unstable_getFirstCallbackNode:function(){return p(q)},
get unstable_now(){return t},get unstable_forceFrameRate(){return V},unstable_Profiling:null},SchedulerTracing:{__proto__:null,__interactionsRef:null,__subscriberRef:null,unstable_clear:function(a){return a()},unstable_getCurrent:function(){return null},unstable_getThreadID:function(){return++Ea},unstable_trace:function(a,b,c){return c()},unstable_wrap:function(a){return a},unstable_subscribe:function(a){},unstable_unsubscribe:function(a){}}};c.Children={map:D,forEach:function(a,b,c){D(a,function(){b.apply(this,
arguments)},c)},count:function(a){var b=0;D(a,function(){b++});return b},toArray:function(a){return D(a,function(a){return a})||[]},only:function(a){if(!M(a))throw Error(y(143));return a}};c.Component=v;c.PureComponent=K;c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=d;c.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(y(267,a));var d=U({},a.props),e=a.key,g=a.ref,n=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,n=L.current);void 0!==b.key&&(e=""+b.key);if(a.type&&a.type.defaultProps)var k=
a.type.defaultProps;for(h in b)ea.call(b,h)&&!fa.hasOwnProperty(h)&&(d[h]=void 0===b[h]&&void 0!==k?k[h]:b[h])}var h=arguments.length-2;if(1===h)d.children=c;else if(1<h){k=Array(h);for(var m=0;m<h;m++)k[m]=arguments[m+2];d.children=k}return{$$typeof:w,type:a.type,key:e,ref:g,props:d,_owner:n}};c.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:la,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:ka,_context:a};return a.Consumer=
a};c.createElement=ca;c.createFactory=function(a){var b=ca.bind(null,a);b.type=a;return b};c.createRef=function(){return{current:null}};c.forwardRef=function(a){return{$$typeof:ma,render:a}};c.isValidElement=M;c.lazy=function(a){return{$$typeof:oa,_payload:{_status:-1,_result:a},_init:xa}};c.memo=function(a,b){return{$$typeof:na,type:a,compare:void 0===b?null:b}};c.useCallback=function(a,b){return n().useCallback(a,b)};c.useContext=function(a,b){return n().useContext(a,b)};c.useDebugValue=function(a,
b){};c.useEffect=function(a,b){return n().useEffect(a,b)};c.useImperativeHandle=function(a,b,c){return n().useImperativeHandle(a,b,c)};c.useLayoutEffect=function(a,b){return n().useLayoutEffect(a,b)};c.useMemo=function(a,b){return n().useMemo(a,b)};c.useReducer=function(a,b,c){return n().useReducer(a,b,c)};c.useRef=function(a){return n().useRef(a)};c.useState=function(a){return n().useState(a)};c.version="17.0.1"});
})();
/** @license React v17.0.1
 * react-dom.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
(function(){/*
 Modernizr 3.0.0pre (Custom Build) | MIT
*/
'use strict';(function(M,ha){"object"===typeof exports&&"undefined"!==typeof module?ha(exports,require("react")):"function"===typeof define&&define.amd?define(["exports","react"],ha):(M=M||self,ha(M.ReactDOM={},M.React))})(this,function(M,ha){function m(a){for(var b="https://reactjs.org/docs/error-decoder.html?invariant="+a,c=1;c<arguments.length;c++)b+="&args[]="+encodeURIComponent(arguments[c]);return"Minified React error #"+a+"; visit "+b+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}
function Ta(a,b){gb(a,b);gb(a+"Capture",b)}function gb(a,b){Ib[a]=b;for(a=0;a<b.length;a++)zf.add(b[a])}function li(a){if(Af.call(Bf,a))return!0;if(Af.call(Cf,a))return!1;if(mi.test(a))return Bf[a]=!0;Cf[a]=!0;return!1}function ni(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case "function":case "symbol":return!0;case "boolean":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return"data-"!==a&&"aria-"!==a;default:return!1}}function oi(a,b,c,d){if(null===
b||"undefined"===typeof b||ni(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function Q(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}function Ed(a,b,c,d){var e=I.hasOwnProperty(b)?I[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||
"o"!==b[0]&&"O"!==b[0]||"n"!==b[1]&&"N"!==b[1]?!1:!0;f||(oi(b,c,e,d)&&(c=null),d||null===e?li(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,""+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:"":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?"":""+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}function Jb(a){if(null===a||"object"!==typeof a)return null;a=Df&&a[Df]||a["@@iterator"];return"function"===typeof a?a:null}
function Kb(a,b,c){if(void 0===Fd)try{throw Error();}catch(d){Fd=(b=d.stack.trim().match(/\n( *(at )?)/))&&b[1]||""}return"\n"+Fd+a}function Bc(a,b){if(!a||Gd)return"";Gd=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,"props",{set:function(){throw Error();}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();
}catch(k){d=k}a()}}catch(k){if(k&&d&&"string"===typeof k.stack){for(var e=k.stack.split("\n"),f=d.stack.split("\n"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return"\n"+e[g].replace(" at new "," at ");while(1<=g&&0<=h)}break}}}finally{Gd=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:"")?Kb(a):""}function pi(a){switch(a.tag){case 5:return Kb(a.type);case 16:return Kb("Lazy");case 13:return Kb("Suspense");
case 19:return Kb("SuspenseList");case 0:case 2:case 15:return a=Bc(a.type,!1),a;case 11:return a=Bc(a.type.render,!1),a;case 22:return a=Bc(a.type._render,!1),a;case 1:return a=Bc(a.type,!0),a;default:return""}}function hb(a){if(null==a)return null;if("function"===typeof a)return a.displayName||a.name||null;if("string"===typeof a)return a;switch(a){case wa:return"Fragment";case Ua:return"Portal";case Lb:return"Profiler";case Hd:return"StrictMode";case Mb:return"Suspense";case Cc:return"SuspenseList"}if("object"===
typeof a)switch(a.$$typeof){case Id:return(a.displayName||"Context")+".Consumer";case Jd:return(a._context.displayName||"Context")+".Provider";case Dc:var b=a.render;b=b.displayName||b.name||"";return a.displayName||(""!==b?"ForwardRef("+b+")":"ForwardRef");case Ec:return hb(a.type);case Kd:return hb(a._render);case Ld:b=a._payload;a=a._init;try{return hb(a(b))}catch(c){}}return null}function xa(a){switch(typeof a){case "boolean":case "number":case "object":case "string":case "undefined":return a;
default:return""}}function Ef(a){var b=a.type;return(a=a.nodeName)&&"input"===a.toLowerCase()&&("checkbox"===b||"radio"===b)}function qi(a){var b=Ef(a)?"checked":"value",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=""+a[b];if(!a.hasOwnProperty(b)&&"undefined"!==typeof c&&"function"===typeof c.get&&"function"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=""+a;f.call(this,a)}});Object.defineProperty(a,
b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=""+a},stopTracking:function(){a._valueTracker=null;delete a[b]}}}}function Fc(a){a._valueTracker||(a._valueTracker=qi(a))}function Ff(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d="";a&&(d=Ef(a)?a.checked?"true":"false":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Gc(a){a=a||("undefined"!==typeof document?document:void 0);if("undefined"===typeof a)return null;try{return a.activeElement||
a.body}catch(b){return a.body}}function Md(a,b){var c=b.checked;return B({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Gf(a,b){var c=null==b.defaultValue?"":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=xa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:"checkbox"===b.type||"radio"===b.type?null!=b.checked:null!=b.value}}function Hf(a,b){b=b.checked;null!=b&&Ed(a,"checked",
b,!1)}function Nd(a,b){Hf(a,b);var c=xa(b.value),d=b.type;if(null!=c)if("number"===d){if(0===c&&""===a.value||a.value!=c)a.value=""+c}else a.value!==""+c&&(a.value=""+c);else if("submit"===d||"reset"===d){a.removeAttribute("value");return}b.hasOwnProperty("value")?Od(a,b.type,c):b.hasOwnProperty("defaultValue")&&Od(a,b.type,xa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}function If(a,b,c){if(b.hasOwnProperty("value")||b.hasOwnProperty("defaultValue")){var d=
b.type;if(!("submit"!==d&&"reset"!==d||void 0!==b.value&&null!==b.value))return;b=""+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;""!==c&&(a.name="");a.defaultChecked=!!a._wrapperState.initialChecked;""!==c&&(a.name=c)}function Od(a,b,c){if("number"!==b||Gc(a.ownerDocument)!==a)null==c?a.defaultValue=""+a._wrapperState.initialValue:a.defaultValue!==""+c&&(a.defaultValue=""+c)}function ri(a){var b="";ha.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}
function Pd(a,b){a=B({children:void 0},b);if(b=ri(b.children))a.children=b;return a}function ib(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b["$"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty("$"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=""+xa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}function Qd(a,b){if(null!=
b.dangerouslySetInnerHTML)throw Error(m(91));return B({},b,{value:void 0,defaultValue:void 0,children:""+a._wrapperState.initialValue})}function Jf(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(m(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(m(93));c=c[0]}b=c}null==b&&(b="");c=b}a._wrapperState={initialValue:xa(c)}}function Kf(a,b){var c=xa(b.value),d=xa(b.defaultValue);null!=c&&(c=""+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==
c&&(a.defaultValue=c));null!=d&&(a.defaultValue=""+d)}function Lf(a,b){b=a.textContent;b===a._wrapperState.initialValue&&""!==b&&null!==b&&(a.value=b)}function Mf(a){switch(a){case "svg":return"http://www.w3.org/2000/svg";case "math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Rd(a,b){return null==a||"http://www.w3.org/1999/xhtml"===a?Mf(b):"http://www.w3.org/2000/svg"===a&&"foreignObject"===b?"http://www.w3.org/1999/xhtml":a}function Nf(a,b,c){return null==
b||"boolean"===typeof b||""===b?"":c||"number"!==typeof b||0===b||Nb.hasOwnProperty(a)&&Nb[a]?(""+b).trim():b+"px"}function Of(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf("--"),e=Nf(c,b[c],d);"float"===c&&(c="cssFloat");d?a.setProperty(c,e):a[c]=e}}function Sd(a,b){if(b){if(si[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(m(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(m(60));if(!("object"===typeof b.dangerouslySetInnerHTML&&
"__html"in b.dangerouslySetInnerHTML))throw Error(m(61));}if(null!=b.style&&"object"!==typeof b.style)throw Error(m(62));}}function Td(a,b){if(-1===a.indexOf("-"))return"string"===typeof b.is;switch(a){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return!1;default:return!0}}function Ud(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);
return 3===a.nodeType?a.parentNode:a}function Pf(a){if(a=Ob(a)){if("function"!==typeof Vd)throw Error(m(280));var b=a.stateNode;b&&(b=Hc(b),Vd(a.stateNode,a.type,b))}}function Qf(a){jb?kb?kb.push(a):kb=[a]:jb=a}function Rf(){if(jb){var a=jb,b=kb;kb=jb=null;Pf(a);if(b)for(a=0;a<b.length;a++)Pf(b[a])}}function Wd(){if(null!==jb||null!==kb)Xd(),Rf()}function ti(a,b,c){if(Yd)return a(b,c);Yd=!0;try{return Sf(a,b,c)}finally{Yd=!1,Wd()}}function Pb(a,b){var c=a.stateNode;if(null===c)return null;var d=Hc(c);
if(null===d)return null;c=d[b];a:switch(b){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":case "onMouseEnter":(d=!d.disabled)||(a=a.type,d=!("button"===a||"input"===a||"select"===a||"textarea"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&"function"!==typeof c)throw Error(m(231,b,typeof c));return c}function ui(a,b,c,d,e,
f,g,h,k){Qb=!1;Ic=null;vi.apply(wi,arguments)}function xi(a,b,c,d,e,f,g,h,k){ui.apply(this,arguments);if(Qb){if(Qb){var v=Ic;Qb=!1;Ic=null}else throw Error(m(198));Jc||(Jc=!0,Zd=v)}}function Va(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Tf(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Uf(a){if(Va(a)!==
a)throw Error(m(188));}function yi(a){var b=a.alternate;if(!b){b=Va(a);if(null===b)throw Error(m(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Uf(e),a;if(f===d)return Uf(e),b;f=f.sibling}throw Error(m(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=
f.child;h;){if(h===c){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(m(189));}}if(c.alternate!==d)throw Error(m(190));}if(3!==c.tag)throw Error(m(188));return c.stateNode.current===c?a:b}function Vf(a){a=yi(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}function Wf(a,b){for(var c=
a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}function $d(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function Xf(a,b){switch(a){case "focusin":case "focusout":ya=null;break;case "dragenter":case "dragleave":za=null;break;case "mouseover":case "mouseout":Aa=null;break;case "pointerover":case "pointerout":Rb.delete(b.pointerId);break;case "gotpointercapture":case "lostpointercapture":Sb.delete(b.pointerId)}}function Tb(a,
b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=$d(b,c,d,e,f),null!==b&&(b=Ob(b),null!==b&&Yf(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}function zi(a,b,c,d,e){switch(b){case "focusin":return ya=Tb(ya,a,b,c,d,e),!0;case "dragenter":return za=Tb(za,a,b,c,d,e),!0;case "mouseover":return Aa=Tb(Aa,a,b,c,d,e),!0;case "pointerover":var f=e.pointerId;Rb.set(f,Tb(Rb.get(f)||null,a,b,c,d,e));return!0;case "gotpointercapture":return f=e.pointerId,Sb.set(f,
Tb(Sb.get(f)||null,a,b,c,d,e)),!0}return!1}function Ai(a){var b=Wa(a.target);if(null!==b){var c=Va(b);if(null!==c)if(b=c.tag,13===b){if(b=Tf(c),null!==b){a.blockedOn=b;Bi(a.lanePriority,function(){ae(a.priority,function(){Ci(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Kc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=be(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);
if(null!==c)return b=Ob(c),null!==b&&Yf(b),a.blockedOn=c,!1;b.shift()}return!0}function Zf(a,b,c){Kc(a)&&c.delete(b)}function Di(){for(ce=!1;0<ia.length;){var a=ia[0];if(null!==a.blockedOn){a=Ob(a.blockedOn);null!==a&&Ei(a);break}for(var b=a.targetContainers;0<b.length;){var c=be(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&ia.shift()}null!==ya&&Kc(ya)&&(ya=null);null!==za&&Kc(za)&&(za=null);null!==Aa&&Kc(Aa)&&(Aa=null);Rb.forEach(Zf);
Sb.forEach(Zf)}function Ub(a,b){a.blockedOn===b&&(a.blockedOn=null,ce||(ce=!0,$f(ag,Di)))}function bg(a){if(0<ia.length){Ub(ia[0],a);for(var b=1;b<ia.length;b++){var c=ia[b];c.blockedOn===a&&(c.blockedOn=null)}}null!==ya&&Ub(ya,a);null!==za&&Ub(za,a);null!==Aa&&Ub(Aa,a);b=function(b){return Ub(b,a)};Rb.forEach(b);Sb.forEach(b);for(b=0;b<Vb.length;b++)c=Vb[b],c.blockedOn===a&&(c.blockedOn=null);for(;0<Vb.length&&(b=Vb[0],null===b.blockedOn);)Ai(b),null===b.blockedOn&&Vb.shift()}function Lc(a,b){var c=
{};c[a.toLowerCase()]=b.toLowerCase();c["Webkit"+a]="webkit"+b;c["Moz"+a]="moz"+b;return c}function Mc(a){if(de[a])return de[a];if(!lb[a])return a;var b=lb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in cg)return de[a]=b[c];return a}function ee(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e="on"+(e[0].toUpperCase()+e.slice(1));fe.set(d,b);dg.set(d,e);Ta(e,[d])}}function mb(a){if(0!==(1&a))return w=15,1;if(0!==(2&a))return w=14,2;if(0!==(4&a))return w=13,4;var b=24&a;if(0!==b)return w=12,b;
if(0!==(a&32))return w=11,32;b=192&a;if(0!==b)return w=10,b;if(0!==(a&256))return w=9,256;b=3584&a;if(0!==b)return w=8,b;if(0!==(a&4096))return w=7,4096;b=4186112&a;if(0!==b)return w=6,b;b=62914560&a;if(0!==b)return w=5,b;if(a&67108864)return w=4,67108864;if(0!==(a&134217728))return w=3,134217728;b=805306368&a;if(0!==b)return w=2,b;if(0!==(1073741824&a))return w=1,1073741824;w=8;return a}function Fi(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}
function Gi(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(m(358,a));}}function Wb(a,b){var c=a.pendingLanes;if(0===c)return w=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=w=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=mb(k),e=w):(h&=f,0!==h&&(d=mb(h),e=w))}else f=c&~g,0!==f?(d=mb(f),e=w):0!==h&&(d=mb(h),
e=w);if(0===d)return 0;d=31-Ba(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){mb(b);if(e<=w)return b;w=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Ba(b),e=1<<c,d|=a[c],b&=~e;return d}function eg(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Nc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=nb(24&~b),0===a?Nc(10,b):a;case 10:return a=nb(192&~b),0===a?Nc(8,b):a;case 8:return a=nb(3584&~b),0===a&&(a=nb(4186112&~b),
0===a&&(a=512)),a;case 2:return b=nb(805306368&~b),0===b&&(b=268435456),b}throw Error(m(358,a));}function nb(a){return a&-a}function ge(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}function Oc(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Ba(b);a[b]=c}function Hi(a){return 0===a?32:31-(Ii(a)/Ji|0)|0}function Ki(a,b,c,d){Xa||Xd();var e=he,f=Xa;Xa=!0;try{fg(e,a,b,c,d)}finally{(Xa=f)||Wd()}}function Li(a,b,c,d){Mi(Ni,he.bind(null,a,b,c,d))}function he(a,
b,c,d){if(Pc){var e;if((e=0===(b&4))&&0<ia.length&&-1<gg.indexOf(a))a=$d(null,a,b,c,d),ia.push(a);else{var f=be(a,b,c,d);if(null===f)e&&Xf(a,d);else{if(e){if(-1<gg.indexOf(a)){a=$d(f,a,b,c,d);ia.push(a);return}if(zi(f,a,b,c,d))return;Xf(a,d)}hg(a,b,d,null,c)}}}}function be(a,b,c,d){var e=Ud(d);e=Wa(e);if(null!==e){var f=Va(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=Tf(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==
e&&(e=null)}}hg(a,b,d,e,c);return null}function ig(){if(Qc)return Qc;var a,b=ie,c=b.length,d,e="value"in Ca?Ca.value:Ca.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return Qc=e.slice(a,1<d?1-d:void 0)}function Rc(a){var b=a.keyCode;"charCode"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function Sc(){return!0}function jg(){return!1}function V(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=
d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?Sc:jg;this.isPropagationStopped=jg;return this}B(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():"unknown"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=Sc)},stopPropagation:function(){var a=
this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():"unknown"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=Sc)},persist:function(){},isPersistent:Sc});return b}function Oi(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Pi[a])?!!b[a]:!1}function je(a){return Oi}function kg(a,b){switch(a){case "keyup":return-1!==Qi.indexOf(b.keyCode);case "keydown":return 229!==b.keyCode;case "keypress":case "mousedown":case "focusout":return!0;default:return!1}}
function lg(a){a=a.detail;return"object"===typeof a&&"data"in a?a.data:null}function Ri(a,b){switch(a){case "compositionend":return lg(b);case "keypress":if(32!==b.which)return null;mg=!0;return ng;case "textInput":return a=b.data,a===ng&&mg?null:a;default:return null}}function Si(a,b){if(ob)return"compositionend"===a||!ke&&kg(a,b)?(a=ig(),Qc=ie=Ca=null,ob=!1,a):null;switch(a){case "paste":return null;case "keypress":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;
if(b.which)return String.fromCharCode(b.which)}return null;case "compositionend":return og&&"ko"!==b.locale?null:b.data;default:return null}}function pg(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return"input"===b?!!Ti[a.type]:"textarea"===b?!0:!1}function Ui(a){if(!oa)return!1;a="on"+a;var b=a in document;b||(b=document.createElement("div"),b.setAttribute(a,"return;"),b="function"===typeof b[a]);return b}function qg(a,b,c,d){Qf(d);b=Tc(b,"onChange");0<b.length&&(c=new le("onChange","change",
null,c,d),a.push({event:c,listeners:b}))}function Vi(a){rg(a,0)}function Uc(a){var b=pb(a);if(Ff(b))return a}function Wi(a,b){if("change"===a)return b}function sg(){Xb&&(Xb.detachEvent("onpropertychange",tg),Yb=Xb=null)}function tg(a){if("value"===a.propertyName&&Uc(Yb)){var b=[];qg(b,Yb,a,Ud(a));a=Vi;if(Xa)a(b);else{Xa=!0;try{me(a,b)}finally{Xa=!1,Wd()}}}}function Xi(a,b,c){"focusin"===a?(sg(),Xb=b,Yb=c,Xb.attachEvent("onpropertychange",tg)):"focusout"===a&&sg()}function Yi(a,b){if("selectionchange"===
a||"keyup"===a||"keydown"===a)return Uc(Yb)}function Zi(a,b){if("click"===a)return Uc(b)}function $i(a,b){if("input"===a||"change"===a)return Uc(b)}function aj(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}function Zb(a,b){if(X(a,b))return!0;if("object"!==typeof a||null===a||"object"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!bj.call(b,c[d])||!X(a[c[d]],b[c[d]]))return!1;return!0}function ug(a){for(;a&&a.firstChild;)a=
a.firstChild;return a}function vg(a,b){var c=ug(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ug(c)}}function wg(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wg(a,b.parentNode):"contains"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xg(){for(var a=window,b=Gc();b instanceof a.HTMLIFrameElement;){try{var c=
"string"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Gc(a.document)}return b}function ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&("input"===b&&("text"===a.type||"search"===a.type||"tel"===a.type||"url"===a.type||"password"===a.type)||"textarea"===b||"true"===a.contentEditable)}function yg(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;oe||null==qb||qb!==Gc(d)||(d=qb,"selectionStart"in d&&ne(d)?d={start:d.selectionStart,
end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),$b&&Zb($b,d)||($b=d,d=Tc(pe,"onSelect"),0<d.length&&(b=new le("onSelect","select",null,b,c),a.push({event:b,listeners:d}),b.target=qb)))}function zg(a,b,c){var d=a.type||"unknown-event";a.currentTarget=c;xi(d,b,void 0,a);a.currentTarget=null}function rg(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=
a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,v=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;zg(e,h,v);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;v=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;zg(e,h,v);f=k}}}if(Jc)throw a=Zd,Jc=!1,Zd=null,a;}function z(a,b){var c=Ag(b),d=a+"__bubble";c.has(d)||(Bg(b,a,2,!1),c.add(d))}function Cg(a){a[Dg]||(a[Dg]=!0,zf.forEach(function(b){Eg.has(b)||
Fg(b,!1,a,null);Fg(b,!0,a,null)}))}function Fg(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;"selectionchange"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Eg.has(a)){if("scroll"!==a)return;e|=2;f=d}var g=Ag(f),h=a+"__"+(b?"capture":"bubble");g.has(h)||(b&&(e|=4),Bg(f,a,e,b),g.add(h))}function Bg(a,b,c,d,e){e=fe.get(b);switch(void 0===e?2:e){case 0:e=Ki;break;case 1:e=Li;break;default:e=he}c=e.bind(null,b,c,a);e=void 0;!qe||"touchstart"!==b&&"touchmove"!==
b&&"wheel"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}function hg(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&
k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wa(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}ti(function(){var d=f,e=Ud(c),g=[];a:{var h=dg.get(a);if(void 0!==h){var k=le,m=a;switch(a){case "keypress":if(0===Rc(c))break a;case "keydown":case "keyup":k=cj;break;case "focusin":m="focus";k=re;break;case "focusout":m="blur";k=re;break;case "beforeblur":case "afterblur":k=re;break;case "click":if(2===c.button)break a;case "auxclick":case "dblclick":case "mousedown":case "mousemove":case "mouseup":case "mouseout":case "mouseover":case "contextmenu":k=
Gg;break;case "drag":case "dragend":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "dragstart":case "drop":k=dj;break;case "touchcancel":case "touchend":case "touchmove":case "touchstart":k=ej;break;case Hg:case Ig:case Jg:k=fj;break;case Kg:k=gj;break;case "scroll":k=hj;break;case "wheel":k=ij;break;case "copy":case "cut":case "paste":k=jj;break;case "gotpointercapture":case "lostpointercapture":case "pointercancel":case "pointerdown":case "pointermove":case "pointerout":case "pointerover":case "pointerup":k=
Lg}var l=0!==(b&4),C=!l&&"scroll"===a,x=l?null!==h?h+"Capture":null:h;l=[];for(var p=d,q;null!==p;){q=p;var u=q.stateNode;5===q.tag&&null!==u&&(q=u,null!==x&&(u=Pb(p,x),null!=u&&l.push(ac(p,u,q))));if(C)break;p=p.return}0<l.length&&(h=new k(h,m,null,c,e),g.push({event:h,listeners:l}))}}if(0===(b&7)){a:{h="mouseover"===a||"pointerover"===a;k="mouseout"===a||"pointerout"===a;if(h&&0===(b&16)&&(m=c.relatedTarget||c.fromElement)&&(Wa(m)||m[rb]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||
h.parentWindow:window;if(k){if(m=c.relatedTarget||c.toElement,k=d,m=m?Wa(m):null,null!==m&&(C=Va(m),m!==C||5!==m.tag&&6!==m.tag))m=null}else k=null,m=d;if(k!==m){l=Gg;u="onMouseLeave";x="onMouseEnter";p="mouse";if("pointerout"===a||"pointerover"===a)l=Lg,u="onPointerLeave",x="onPointerEnter",p="pointer";C=null==k?h:pb(k);q=null==m?h:pb(m);h=new l(u,p+"leave",k,c,e);h.target=C;h.relatedTarget=q;u=null;Wa(e)===d&&(l=new l(x,p+"enter",m,c,e),l.target=q,l.relatedTarget=C,u=l);C=u;if(k&&m)b:{l=k;x=m;p=
0;for(q=l;q;q=sb(q))p++;q=0;for(u=x;u;u=sb(u))q++;for(;0<p-q;)l=sb(l),p--;for(;0<q-p;)x=sb(x),q--;for(;p--;){if(l===x||null!==x&&l===x.alternate)break b;l=sb(l);x=sb(x)}l=null}else l=null;null!==k&&Mg(g,h,k,l,!1);null!==m&&null!==C&&Mg(g,C,m,l,!0)}}}a:{h=d?pb(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if("select"===k||"input"===k&&"file"===h.type)var n=Wi;else if(pg(h))if(Ng)n=$i;else{n=Yi;var da=Xi}else(k=h.nodeName)&&"input"===k.toLowerCase()&&("checkbox"===h.type||"radio"===h.type)&&(n=Zi);
if(n&&(n=n(a,d))){qg(g,n,c,e);break a}da&&da(a,h,d);"focusout"===a&&(da=h._wrapperState)&&da.controlled&&"number"===h.type&&Od(h,"number",h.value)}da=d?pb(d):window;switch(a){case "focusin":if(pg(da)||"true"===da.contentEditable)qb=da,pe=d,$b=null;break;case "focusout":$b=pe=qb=null;break;case "mousedown":oe=!0;break;case "contextmenu":case "mouseup":case "dragend":oe=!1;yg(g,c,e);break;case "selectionchange":if(kj)break;case "keydown":case "keyup":yg(g,c,e)}var Ea;if(ke)b:{switch(a){case "compositionstart":var F=
"onCompositionStart";break b;case "compositionend":F="onCompositionEnd";break b;case "compositionupdate":F="onCompositionUpdate";break b}F=void 0}else ob?kg(a,c)&&(F="onCompositionEnd"):"keydown"===a&&229===c.keyCode&&(F="onCompositionStart");F&&(og&&"ko"!==c.locale&&(ob||"onCompositionStart"!==F?"onCompositionEnd"===F&&ob&&(Ea=ig()):(Ca=e,ie="value"in Ca?Ca.value:Ca.textContent,ob=!0)),da=Tc(d,F),0<da.length&&(F=new Og(F,a,null,c,e),g.push({event:F,listeners:da}),Ea?F.data=Ea:(Ea=lg(c),null!==Ea&&
(F.data=Ea))));if(Ea=lj?Ri(a,c):Si(a,c))d=Tc(d,"onBeforeInput"),0<d.length&&(e=new mj("onBeforeInput","beforeinput",null,c,e),g.push({event:e,listeners:d}),e.data=Ea)}rg(g,b)})}function ac(a,b,c){return{instance:a,listener:b,currentTarget:c}}function Tc(a,b){for(var c=b+"Capture",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Pb(a,c),null!=f&&d.unshift(ac(a,f,e)),f=Pb(a,b),null!=f&&d.push(ac(a,f,e)));a=a.return}return d}function sb(a){if(null===a)return null;do a=a.return;while(a&&
5!==a.tag);return a?a:null}function Mg(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,v=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==v&&(h=v,e?(k=Pb(c,f),null!=k&&g.unshift(ac(c,k,h))):e||(k=Pb(c,f),null!=k&&g.push(ac(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function Vc(){}function Pg(a,b){switch(a){case "button":case "input":case "select":case "textarea":return!!b.autoFocus}return!1}function se(a,b){return"textarea"===a||"option"===
a||"noscript"===a||"string"===typeof b.children||"number"===typeof b.children||"object"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}function te(a){1===a.nodeType?a.textContent="":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=""))}function tb(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function Qg(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if("$"===c||"$!"===c||"$?"===
c){if(0===b)return a;b--}else"/$"===c&&b++}a=a.previousSibling}return null}function nj(a){return{$$typeof:ue,toString:a,valueOf:a}}function Wa(a){var b=a[Fa];if(b)return b;for(var c=a.parentNode;c;){if(b=c[rb]||c[Fa]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Qg(a);null!==a;){if(c=a[Fa])return c;a=Qg(a)}return b}a=c;c=a.parentNode}return null}function Ob(a){a=a[Fa]||a[rb];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function pb(a){if(5===a.tag||6===a.tag)return a.stateNode;
throw Error(m(33));}function Hc(a){return a[Wc]||null}function Ag(a){var b=a[Rg];void 0===b&&(b=a[Rg]=new Set);return b}function Ga(a){return{current:a}}function t(a,b){0>ub||(a.current=ve[ub],ve[ub]=null,ub--)}function A(a,b,c){ub++;ve[ub]=a.current;a.current=b}function vb(a,b){var c=a.type.contextTypes;if(!c)return Ha;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=
b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function S(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Sg(a,b,c){if(D.current!==Ha)throw Error(m(168));A(D,b);A(J,c)}function Tg(a,b,c){var d=a.stateNode;a=b.childContextTypes;if("function"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(m(108,hb(b)||"Unknown",e));return B({},c,d)}function Xc(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Ha;Ya=D.current;
A(D,a);A(J,J.current);return!0}function Ug(a,b,c){var d=a.stateNode;if(!d)throw Error(m(169));c?(a=Tg(a,b,Ya),d.__reactInternalMemoizedMergedChildContext=a,t(J),t(D),A(D,a)):t(J);A(J,c)}function wb(){switch(oj()){case Yc:return 99;case Vg:return 98;case Wg:return 97;case Xg:return 96;case Yg:return 95;default:throw Error(m(332));}}function Zg(a){switch(a){case 99:return Yc;case 98:return Vg;case 97:return Wg;case 96:return Xg;case 95:return Yg;default:throw Error(m(332));}}function Za(a,b){a=Zg(a);
return pj(a,b)}function bc(a,b,c){a=Zg(a);return we(a,b,c)}function ja(){if(null!==Zc){var a=Zc;Zc=null;xe(a)}$g()}function $g(){if(!ye&&null!==pa){ye=!0;var a=0;try{var b=pa;Za(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});pa=null}catch(c){throw null!==pa&&(pa=pa.slice(a+1)),we(Yc,ja),c;}finally{ye=!1}}}function ea(a,b){if(a&&a.defaultProps){b=B({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function ze(){$c=xb=ad=null}function Ae(a){var b=
bd.current;t(bd);a.type._context._currentValue=b}function ah(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function yb(a,b){ad=a;$c=xb=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(fa=!0),a.firstContext=null)}function Y(a,b){if($c!==a&&!1!==b&&0!==b){if("number"!==typeof b||1073741823===b)$c=a,b=1073741823;b={context:a,observedBits:b,
next:null};if(null===xb){if(null===ad)throw Error(m(308));xb=b;ad.dependencies={lanes:0,firstContext:b,responders:null}}else xb=xb.next=b}return a._currentValue}function Be(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}function bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function Ia(a,b){return{eventTime:a,
lane:b,tag:0,payload:null,callback:null,next:null}}function Ja(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}function ch(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=
f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=b;c.lastBaseUpdate=b}function cc(a,b,c,d){var e=a.updateQueue;Ka=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,v=k.next;k.next=null;null===g?f=v:g.next=v;g=k;var m=a.alternate;if(null!==m){m=m.updateQueue;var l=m.lastBaseUpdate;l!==g&&(null===l?m.firstBaseUpdate=
v:l.next=v,m.lastBaseUpdate=k)}}if(null!==f){l=e.baseState;g=0;m=v=k=null;do{h=f.lane;var r=f.eventTime;if((d&h)===h){null!==m&&(m=m.next={eventTime:r,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,next:null});a:{var n=a,t=f;h=b;r=c;switch(t.tag){case 1:n=t.payload;if("function"===typeof n){l=n.call(r,l,h);break a}l=n;break a;case 3:n.flags=n.flags&-4097|64;case 0:n=t.payload;h="function"===typeof n?n.call(r,l,h):n;if(null===h||void 0===h)break a;l=B({},l,h);break a;case 2:Ka=!0}}null!==f.callback&&
(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else r={eventTime:r,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===m?(v=m=r,k=l):m=m.next=r,g|=h;f=f.next;if(null===f)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===m&&(k=l);e.baseState=k;e.firstBaseUpdate=v;e.lastBaseUpdate=m;La|=g;a.lanes=g;a.memoizedState=l}}function dh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=
a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if("function"!==typeof e)throw Error(m(191,e));e.call(d)}}}function cd(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:B({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}function eh(a,b,c,d,e,f,g){a=a.stateNode;return"function"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Zb(c,d)||!Zb(e,f):!0}function fh(a,b,c){var d=!1,e=Ha;var f=b.contextType;"object"===
typeof f&&null!==f?f=Y(f):(e=S(b)?Ya:D.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?vb(a,e):Ha);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=dd;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}function gh(a,b,c,d){a=b.state;"function"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);"function"===typeof b.UNSAFE_componentWillReceiveProps&&
b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&dd.enqueueReplaceState(b,b.state,null)}function Ce(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=hh;Be(a);var f=b.contextType;"object"===typeof f&&null!==f?e.context=Y(f):(f=S(b)?Ya:D.current,e.context=vb(a,f));cc(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;"function"===typeof f&&(cd(a,b,f,c),e.state=a.memoizedState);"function"===typeof b.getDerivedStateFromProps||"function"===typeof e.getSnapshotBeforeUpdate||
"function"!==typeof e.UNSAFE_componentWillMount&&"function"!==typeof e.componentWillMount||(b=e.state,"function"===typeof e.componentWillMount&&e.componentWillMount(),"function"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&dd.enqueueReplaceState(e,e.state,null),cc(a,c,e,d),e.state=a.memoizedState);"function"===typeof e.componentDidMount&&(a.flags|=4)}function dc(a,b,c){a=c.ref;if(null!==a&&"function"!==typeof a&&"object"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==
c.tag)throw Error(m(309));var d=c.stateNode}if(!d)throw Error(m(147,a));var e=""+a;if(null!==b&&null!==b.ref&&"function"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===hh&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if("string"!==typeof a)throw Error(m(284));if(!c._owner)throw Error(m(290,a));}return a}function ed(a,b){if("textarea"!==a.type)throw Error(m(31,"[object Object]"===Object.prototype.toString.call(b)?"object with keys {"+Object.keys(b).join(", ")+
"}":b));}function ih(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Ma(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=
2,c):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=De(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=dc(a,b,c),d.return=a,d;d=fd(c.type,c.key,c.props,null,a.mode,d);d.ref=dc(a,b,c);d.return=a;return d}function v(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=
Ee(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function l(a,b,c,d,f){if(null===b||7!==b.tag)return b=zb(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function n(a,b,c){if("string"===typeof b||"number"===typeof b)return b=De(""+b,a.mode,c),b.return=a,b;if("object"===typeof b&&null!==b){switch(b.$$typeof){case ec:return c=fd(b.type,b.key,b.props,null,a.mode,c),c.ref=dc(a,null,b),c.return=a,c;case Ua:return b=Ee(b,a.mode,c),b.return=a,b}if(gd(b)||Jb(b))return b=zb(b,
a.mode,c,null),b.return=a,b;ed(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if("string"===typeof c||"number"===typeof c)return null!==e?null:h(a,b,""+c,d);if("object"===typeof c&&null!==c){switch(c.$$typeof){case ec:return c.key===e?c.type===wa?l(a,b,c.props.children,d,e):k(a,b,c,d):null;case Ua:return c.key===e?v(a,b,c,d):null}if(gd(c)||Jb(c))return null!==e?null:l(a,b,c,d,null);ed(a,c)}return null}function t(a,b,c,d,e){if("string"===typeof d||"number"===typeof d)return a=a.get(c)||
null,h(b,a,""+d,e);if("object"===typeof d&&null!==d){switch(d.$$typeof){case ec:return a=a.get(null===d.key?c:d.key)||null,d.type===wa?l(b,a,d.props.children,e,d.key):k(b,a,d,e);case Ua:return a=a.get(null===d.key?c:d.key)||null,v(b,a,d,e)}if(gd(d)||Jb(d))return a=a.get(c)||null,l(b,a,d,e,null);ed(b,d)}return null}function w(e,g,h,k){for(var m=null,v=null,l=g,p=g=0,x=null;null!==l&&p<h.length;p++){l.index>p?(x=l,l=null):x=l.sibling;var C=r(e,l,h[p],k);if(null===C){null===l&&(l=x);break}a&&l&&null===
C.alternate&&b(e,l);g=f(C,g,p);null===v?m=C:v.sibling=C;v=C;l=x}if(p===h.length)return c(e,l),m;if(null===l){for(;p<h.length;p++)l=n(e,h[p],k),null!==l&&(g=f(l,g,p),null===v?m=l:v.sibling=l,v=l);return m}for(l=d(e,l);p<h.length;p++)x=t(l,e,p,h[p],k),null!==x&&(a&&null!==x.alternate&&l.delete(null===x.key?p:x.key),g=f(x,g,p),null===v?m=x:v.sibling=x,v=x);a&&l.forEach(function(a){return b(e,a)});return m}function z(e,g,h,k){var l=Jb(h);if("function"!==typeof l)throw Error(m(150));h=l.call(h);if(null==
h)throw Error(m(151));for(var v=l=null,p=g,x=g=0,C=null,q=h.next();null!==p&&!q.done;x++,q=h.next()){p.index>x?(C=p,p=null):C=p.sibling;var Da=r(e,p,q.value,k);if(null===Da){null===p&&(p=C);break}a&&p&&null===Da.alternate&&b(e,p);g=f(Da,g,x);null===v?l=Da:v.sibling=Da;v=Da;p=C}if(q.done)return c(e,p),l;if(null===p){for(;!q.done;x++,q=h.next())q=n(e,q.value,k),null!==q&&(g=f(q,g,x),null===v?l=q:v.sibling=q,v=q);return l}for(p=d(e,p);!q.done;x++,q=h.next())q=t(p,e,x,q.value,k),null!==q&&(a&&null!==
q.alternate&&p.delete(null===q.key?x:q.key),g=f(q,g,x),null===v?l=q:v.sibling=q,v=q);a&&p.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k="object"===typeof f&&null!==f&&f.type===wa&&null===f.key;k&&(f=f.props.children);var l="object"===typeof f&&null!==f;if(l)switch(f.$$typeof){case ec:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===wa){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,
k.sibling);d=e(k,f.props);d.ref=dc(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===wa?(d=zb(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=fd(f.type,f.key,f.props,null,a.mode,h),h.ref=dc(a,d,f),h.return=a,a=h)}return g(a);case Ua:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=
d.sibling}d=Ee(f,a.mode,h);d.return=a;a=d}return g(a)}if("string"===typeof f||"number"===typeof f)return f=""+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=De(f,a.mode,h),d.return=a,a=d),g(a);if(gd(f))return w(a,d,f,h);if(Jb(f))return z(a,d,f,h);l&&ed(a,f);if("undefined"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(m(152,hb(a.type)||"Component"));}return c(a,d)}}function $a(a){if(a===fc)throw Error(m(174));return a}function Fe(a,b){A(gc,
b);A(hc,a);A(ka,fc);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Rd(null,"");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Rd(b,a)}t(ka);A(ka,b)}function Ab(a){t(ka);t(hc);t(gc)}function jh(a){$a(gc.current);var b=$a(ka.current);var c=Rd(b,a.type);b!==c&&(A(hc,a),A(ka,c))}function Ge(a){hc.current===a&&(t(ka),t(hc))}function hd(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||"$?"===c.data||
"$!"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function kh(a,b){var c=Z(5,null,null,0);c.elementType="DELETED";c.type="DELETED";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=
a.lastEffect=c}function lh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=""===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}function He(a){if(la){var b=Na;if(b){var c=b;if(!lh(a,b)){b=tb(c.nextSibling);if(!b||!lh(a,b)){a.flags=a.flags&-1025|2;la=!1;ra=a;return}kh(ra,c)}ra=a;Na=tb(b.firstChild)}else a.flags=a.flags&-1025|2,la=!1,
ra=a}}function mh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ra=a}function id(a){if(a!==ra)return!1;if(!la)return mh(a),la=!0,!1;var b=a.type;if(5!==a.tag||"head"!==b&&"body"!==b&&!se(b,a.memoizedProps))for(b=Na;b;)kh(a,b),b=tb(b.nextSibling);mh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(m(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if("/$"===c){if(0===b){Na=tb(a.nextSibling);break a}b--}else"$"!==c&&"$!"!==
c&&"$?"!==c||b++}a=a.nextSibling}Na=null}}else Na=ra?tb(a.stateNode.nextSibling):null;return!0}function Ie(){Na=ra=null;la=!1}function Je(){for(var a=0;a<Bb.length;a++)Bb[a]._workInProgressVersionPrimary=null;Bb.length=0}function T(){throw Error(m(321));}function Ke(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!X(a[c],b[c]))return!1;return!0}function Le(a,b,c,d,e,f){ic=f;y=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;jc.current=null===a||null===a.memoizedState?qj:rj;
a=c(d,e);if(kc){f=0;do{kc=!1;if(!(25>f))throw Error(m(301));f+=1;K=N=null;b.updateQueue=null;jc.current=sj;a=c(d,e)}while(kc)}jc.current=jd;b=null!==N&&null!==N.next;ic=0;K=N=y=null;kd=!1;if(b)throw Error(m(300));return a}function ab(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===K?y.memoizedState=K=a:K=K.next=a;return K}function bb(){if(null===N){var a=y.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===K?y.memoizedState:K.next;if(null!==
b)K=b,N=a;else{if(null===a)throw Error(m(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===K?y.memoizedState=K=a:K=K.next=a}return K}function ma(a,b){return"function"===typeof b?b(a):b}function lc(a,b,c){b=bb();c=b.queue;if(null===c)throw Error(m(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;
var h=g=f=null,k=e;do{var l=k.lane;if((ic&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;y.lanes|=l;La|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;X(d,b.memoizedState)||(fa=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=
d}return[b.memoizedState,c.dispatch]}function mc(a,b,c){b=bb();c=b.queue;if(null===c)throw Error(m(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);X(f,b.memoizedState)||(fa=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function nh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,
a=(ic&a)===a)b._workInProgressVersionPrimary=d,Bb.push(b);if(a)return c(b._source);Bb.push(b);throw Error(m(350));}function oh(a,b,c,d){var e=R;if(null===e)throw Error(m(349));var f=b._getVersion,g=f(b._source),h=jc.current,k=h.useState(function(){return nh(e,b,c)}),l=k[1],n=k[0];k=K;var t=a.memoizedState,r=t.refs,w=r.getSnapshot,z=t.source;t=t.subscribe;var B=y;a.memoizedState={refs:r,source:b,subscribe:d};h.useEffect(function(){r.getSnapshot=c;r.setSnapshot=l;var a=f(b._source);if(!X(g,a)){a=c(b._source);
X(n,a)||(l(a),a=Oa(B),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=e.entanglements,h=a;0<h;){var k=31-Ba(h),m=1<<k;d[k]|=a;h&=~m}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=r.getSnapshot,c=r.setSnapshot;try{c(a(b._source));var d=Oa(B);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);X(w,c)&&X(z,b)&&X(t,d)||(a={pending:null,dispatch:null,lastRenderedReducer:ma,lastRenderedState:n},a.dispatch=l=Me.bind(null,
y,a),k.queue=a,k.baseQueue=null,n=nh(e,b,c),k.memoizedState=k.baseState=n);return n}function ph(a,b,c){var d=bb();return oh(d,a,b,c)}function nc(a){var b=ab();"function"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:ma,lastRenderedState:a};a=a.dispatch=Me.bind(null,y,a);return[b.memoizedState,a]}function ld(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=y.updateQueue;null===b?(b={lastEffect:null},y.updateQueue=b,b.lastEffect=
a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function qh(a){var b=ab();a={current:a};return b.memoizedState=a}function md(a){return bb().memoizedState}function Ne(a,b,c,d){var e=ab();y.flags|=a;e.memoizedState=ld(1|b,c,void 0,void 0===d?null:d)}function Oe(a,b,c,d){var e=bb();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Ke(d,g.deps)){ld(b,c,f,d);return}}y.flags|=a;e.memoizedState=ld(1|
b,c,f,d)}function rh(a,b){return Ne(516,4,a,b)}function nd(a,b){return Oe(516,4,a,b)}function sh(a,b){return Oe(4,2,a,b)}function th(a,b){if("function"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function uh(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Oe(4,2,th.bind(null,b,a),c)}function Pe(a,b){}function vh(a,b){var c=bb();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Ke(b,d[1]))return d[0];
c.memoizedState=[a,b];return a}function wh(a,b){var c=bb();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Ke(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function tj(a,b){var c=wb();Za(98>c?98:c,function(){a(!0)});Za(97<c?97:c,function(){var c=aa.transition;aa.transition=1;try{a(!1),b()}finally{aa.transition=c}})}function Me(a,b,c){var d=W(),e=Oa(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);
b.pending=f;g=a.alternate;if(a===y||null!==g&&g===y)kc=kd=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(X(k,h))return}catch(v){}finally{}Pa(a,e,d)}}function U(a,b,c,d){b.child=null===a?xh(b,null,c,d):od(b,a.child,c,d)}function yh(a,b,c,d,e){c=c.render;var f=b.ref;yb(b,e);d=Le(a,b,c,d,f,e);if(null!==a&&!fa)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,sa(a,b,e);b.flags|=1;
U(a,b,d,e);return b.child}function zh(a,b,c,d,e,f){if(null===a){var g=c.type;if("function"===typeof g&&!Qe(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,Ah(a,b,g,d,e,f);a=fd(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Zb,c(e,d)&&a.ref===b.ref))return sa(a,b,f);b.flags|=1;a=Ma(g,d);a.ref=b.ref;a.return=b;return b.child=a}function Ah(a,b,c,d,e,f){if(null!==a&&Zb(a.memoizedProps,
d)&&a.ref===b.ref)if(fa=!1,0!==(f&e))0!==(a.flags&16384)&&(fa=!0);else return b.lanes=a.lanes,sa(a,b,f);return Re(a,b,c,d,f)}function Se(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if("hidden"===d.mode||"unstable-defer-without-hiding"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},pd(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},pd(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState=
{baseLanes:a},pd(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,pd(b,d);U(a,b,e,c);return b.child}function Bh(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function Re(a,b,c,d,e){var f=S(c)?Ya:D.current;f=vb(b,f);yb(b,e);c=Le(a,b,c,d,f,e);if(null!==a&&!fa)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,sa(a,b,e);b.flags|=1;U(a,b,c,e);return b.child}function Ch(a,b,c,d,e){if(S(c)){var f=!0;Xc(b)}else f=!1;yb(b,e);if(null===b.stateNode)null!==
a&&(a.alternate=null,b.alternate=null,b.flags|=2),fh(b,c,d),Ce(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;"object"===typeof l&&null!==l?l=Y(l):(l=S(c)?Ya:D.current,l=vb(b,l));var m=c.getDerivedStateFromProps,n="function"===typeof m||"function"===typeof g.getSnapshotBeforeUpdate;n||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&"function"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&gh(b,g,d,l);Ka=!1;var r=b.memoizedState;
g.state=r;cc(b,d,g,e);k=b.memoizedState;h!==d||r!==k||J.current||Ka?("function"===typeof m&&(cd(b,c,m,d),k=b.memoizedState),(h=Ka||eh(b,c,h,d,r,k,l))?(n||"function"!==typeof g.UNSAFE_componentWillMount&&"function"!==typeof g.componentWillMount||("function"===typeof g.componentWillMount&&g.componentWillMount(),"function"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),"function"===typeof g.componentDidMount&&(b.flags|=4)):("function"===typeof g.componentDidMount&&(b.flags|=4),
b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):("function"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:ea(b.type,h);g.props=l;n=b.pendingProps;r=g.context;k=c.contextType;"object"===typeof k&&null!==k?k=Y(k):(k=S(c)?Ya:D.current,k=vb(b,k));var t=c.getDerivedStateFromProps;(m="function"===typeof t||"function"===typeof g.getSnapshotBeforeUpdate)||"function"!==typeof g.UNSAFE_componentWillReceiveProps&&
"function"!==typeof g.componentWillReceiveProps||(h!==n||r!==k)&&gh(b,g,d,k);Ka=!1;r=b.memoizedState;g.state=r;cc(b,d,g,e);var w=b.memoizedState;h!==n||r!==w||J.current||Ka?("function"===typeof t&&(cd(b,c,t,d),w=b.memoizedState),(l=Ka||eh(b,c,l,d,r,w,k))?(m||"function"!==typeof g.UNSAFE_componentWillUpdate&&"function"!==typeof g.componentWillUpdate||("function"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,w,k),"function"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,
w,k)),"function"===typeof g.componentDidUpdate&&(b.flags|=4),"function"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=w),g.props=d,g.state=w,g.context=k,d=l):("function"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),"function"!==
typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=256),d=!1)}return Te(a,b,c,d,f,e)}function Te(a,b,c,d,e,f){Bh(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Ug(b,c,!1),sa(a,b,f);d=b.stateNode;uj.current=b;var h=g&&"function"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=od(b,a.child,null,f),b.child=od(b,null,h,f)):U(a,b,h,f);b.memoizedState=d.state;e&&Ug(b,c,!0);return b.child}function Dh(a){var b=a.stateNode;b.pendingContext?
Sg(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Sg(a,b.context,!1);Fe(a,b.containerInfo)}function Eh(a,b,c){var d=b.pendingProps,e=E.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);A(E,e&1);if(null===a){void 0!==d.fallback&&He(b);a=d.children;e=d.fallback;if(f)return a=Fh(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=
qd,a;if("number"===typeof d.unstable_expectedLoadTime)return a=Fh(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=qd,b.lanes=33554432,a;c=Ue({mode:"visible",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=Gh(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=qd,d;c=Hh(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=
Gh(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=qd,d;c=Hh(a,b,d.children,c);b.memoizedState=null;return c}function Fh(a,b,c,d){var e=a.mode,f=a.child;b={mode:"hidden",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=Ue(b,e,0,null);c=zb(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}function Hh(a,b,c,d){var e=a.child;a=e.sibling;c=Ma(e,
{mode:"visible",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}function Gh(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:"hidden",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Ma(g,h);null!==a?d=Ma(a,d):(d=zb(d,f,e,null),d.flags|=
2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function Ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);ah(a.return,b)}function Ve(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}function Jh(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;U(a,b,d.children,c);d=E.current;
if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&Ih(a,c);else if(19===a.tag)Ih(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}A(E,d);if(0===(b.mode&2))b.memoizedState=null;else switch(e){case "forwards":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===
hd(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);Ve(b,!1,e,c,f,b.lastEffect);break;case "backwards":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hd(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}Ve(b,!0,c,null,f,b.lastEffect);break;case "together":Ve(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}function sa(a,b,c){null!==a&&(b.dependencies=a.dependencies);La|=b.lanes;if(0!==(c&
b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(m(153));if(null!==b.child){a=b.child;c=Ma(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Ma(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}function oc(a,b){if(!la)switch(a.tailMode){case "hidden":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case "collapsed":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&
(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}function vj(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return S(b.type)&&(t(J),t(D)),null;case 3:Ab();t(J);t(D);Je();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)id(b)?b.flags|=4:d.hydrate||(b.flags|=256);Kh(b);return null;case 5:Ge(b);var e=$a(gc.current);
c=b.type;if(null!==a&&null!=b.stateNode)wj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===b.stateNode)throw Error(m(166));return null}a=$a(ka.current);if(id(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Fa]=b;d[Wc]=f;switch(c){case "dialog":z("cancel",d);z("close",d);break;case "iframe":case "object":case "embed":z("load",d);break;case "video":case "audio":for(a=0;a<pc.length;a++)z(pc[a],d);break;case "source":z("error",d);break;case "img":case "image":case "link":z("error",d);
z("load",d);break;case "details":z("toggle",d);break;case "input":Gf(d,f);z("invalid",d);break;case "select":d._wrapperState={wasMultiple:!!f.multiple};z("invalid",d);break;case "textarea":Jf(d,f),z("invalid",d)}Sd(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],"children"===g?"string"===typeof e?d.textContent!==e&&(a=["children",e]):"number"===typeof e&&d.textContent!==""+e&&(a=["children",""+e]):Ib.hasOwnProperty(g)&&null!=e&&"onScroll"===g&&z("scroll",d));switch(c){case "input":Fc(d);If(d,
f,!0);break;case "textarea":Fc(d);Lf(d);break;case "select":case "option":break;default:"function"===typeof f.onClick&&(d.onclick=Vc)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;"http://www.w3.org/1999/xhtml"===a&&(a=Mf(c));"http://www.w3.org/1999/xhtml"===a?"script"===c?(a=g.createElement("div"),a.innerHTML="<script>\x3c/script>",a=a.removeChild(a.firstChild)):"string"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),"select"===c&&(g=a,d.multiple?
g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Fa]=b;a[Wc]=d;xj(a,b,!1,!1);b.stateNode=a;g=Td(c,d);switch(c){case "dialog":z("cancel",a);z("close",a);e=d;break;case "iframe":case "object":case "embed":z("load",a);e=d;break;case "video":case "audio":for(e=0;e<pc.length;e++)z(pc[e],a);e=d;break;case "source":z("error",a);e=d;break;case "img":case "image":case "link":z("error",a);z("load",a);e=d;break;case "details":z("toggle",a);e=d;break;case "input":Gf(a,d);e=Md(a,d);z("invalid",
a);break;case "option":e=Pd(a,d);break;case "select":a._wrapperState={wasMultiple:!!d.multiple};e=B({},d,{value:void 0});z("invalid",a);break;case "textarea":Jf(a,d);e=Qd(a,d);z("invalid",a);break;default:e=d}Sd(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];"style"===f?Of(a,k):"dangerouslySetInnerHTML"===f?(k=k?k.__html:void 0,null!=k&&Lh(a,k)):"children"===f?"string"===typeof k?("textarea"!==c||""!==k)&&qc(a,k):"number"===typeof k&&qc(a,""+k):"suppressContentEditableWarning"!==f&&"suppressHydrationWarning"!==
f&&"autoFocus"!==f&&(Ib.hasOwnProperty(f)?null!=k&&"onScroll"===f&&z("scroll",a):null!=k&&Ed(a,f,k,g))}switch(c){case "input":Fc(a);If(a,d,!1);break;case "textarea":Fc(a);Lf(a);break;case "option":null!=d.value&&a.setAttribute("value",""+xa(d.value));break;case "select":a.multiple=!!d.multiple;f=d.value;null!=f?ib(a,!!d.multiple,f,!1):null!=d.defaultValue&&ib(a,!!d.multiple,d.defaultValue,!0);break;default:"function"===typeof e.onClick&&(a.onclick=Vc)}Pg(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=
128)}return null;case 6:if(a&&null!=b.stateNode)yj(a,b,a.memoizedProps,d);else{if("string"!==typeof d&&null===b.stateNode)throw Error(m(166));c=$a(gc.current);$a(ka.current);id(b)?(d=b.stateNode,c=b.memoizedProps,d[Fa]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Fa]=b,b.stateNode=d)}return null;case 13:t(E);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&id(b):c=null!==a.memoizedState;
if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(E.current&1))0===L&&(L=3);else{if(0===L||3===L)L=4;null===R||0===(La&134217727)&&0===(Cb&134217727)||Db(R,O)}if(d||c)b.flags|=4;return null;case 4:return Ab(),Kh(b),null===a&&Cg(b.stateNode.containerInfo),null;case 10:return Ae(b),null;case 17:return S(b.type)&&(t(J),t(D)),null;case 19:t(E);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)oc(d,!1);else{if(0!==L||null!==
a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=hd(a);if(null!==g){b.flags|=64;oc(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=
g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;A(E,E.current&1|2);return b.child}a=a.sibling}null!==d.tail&&P()>We&&(b.flags|=64,f=!0,oc(d,!1),b.lanes=33554432)}else{if(!f)if(a=hd(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),oc(d,!0),null===d.tail&&"hidden"===d.tailMode&&
!g.alternate&&!la)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*P()-d.renderingStartTime>We&&1073741824!==c&&(b.flags|=64,f=!0,oc(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=P(),c.sibling=null,b=E.current,A(E,f?b&1|2:b&1),c):null;case 23:case 24:return ta=cb.current,t(cb),null!==a&&null!==
a.memoizedState!==(null!==b.memoizedState)&&"unstable-defer-without-hiding"!==d.mode&&(b.flags|=4),null}throw Error(m(156,b.tag));}function zj(a,b){switch(a.tag){case 1:return S(a.type)&&(t(J),t(D)),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 3:Ab();t(J);t(D);Je();b=a.flags;if(0!==(b&64))throw Error(m(285));a.flags=b&-4097|64;return a;case 5:return Ge(a),null;case 13:return t(E),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return t(E),null;case 4:return Ab(),null;case 10:return Ae(a),
null;case 23:case 24:return ta=cb.current,t(cb),null;default:return null}}function Xe(a,b){try{var c="",d=b;do c+=pi(d),d=d.return;while(d);var e=c}catch(f){e="\nError generating stack: "+f.message+"\n"+f.stack}return{value:a,source:b,stack:e}}function Ye(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}function Mh(a,b,c){c=Ia(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){rd||(rd=!0,Ze=d);Ye(a,b)};return c}function Nh(a,b,c){c=Ia(-1,c);c.tag=
3;var d=a.type.getDerivedStateFromError;if("function"===typeof d){var e=b.value;c.payload=function(){Ye(a,b);return d(e)}}var f=a.stateNode;null!==f&&"function"===typeof f.componentDidCatch&&(c.callback=function(){"function"!==typeof d&&(null===na?na=new Set([this]):na.add(this),Ye(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:""})});return c}function Oh(a){var b=a.ref;if(null!==b)if("function"===typeof b)try{b(null)}catch(c){Qa(a,c)}else b.current=null}function Aj(a,
b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ea(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&te(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(m(163));}function Bj(a,b,c,d){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;
do 3===(a.tag&3)&&(d=a.create,a.destroy=d()),a=a.next;while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Ph(c,a),Cj(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:ea(c.type,b.memoizedProps),a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&dh(c,b,a);return;case 3:b=c.updateQueue;
if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}dh(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&Pg(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&bg(c))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(m(163));}function Qh(a,b){for(var c=a;;){if(5===
c.tag){var d=c.stateNode;if(b)d=d.style,"function"===typeof d.setProperty?d.setProperty("display","none","important"):d.display="none";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty("display")?e.display:null;d.style.display=Nf("display",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?"":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===a)break;for(;null===c.sibling;){if(null===
c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}function Rh(a,b,c){if(db&&"function"===typeof db.onCommitFiberUnmount)try{db.onCommitFiberUnmount($e,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Ph(b,c);else{d=b;try{e()}catch(f){Qa(d,f)}}c=c.next}while(c!==a)}break;case 1:Oh(b);a=b.stateNode;if("function"===typeof a.componentWillUnmount)try{a.props=
b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Qa(b,f)}break;case 5:Oh(b);break;case 4:Sh(a,b)}}function Th(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function Uh(a){return 5===a.tag||3===a.tag||4===a.tag}function Vh(a){a:{for(var b=a.return;null!==b;){if(Uh(b))break a;b=b.return}throw Error(m(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=
!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(m(161));}c.flags&16&&(qc(b,""),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Uh(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?af(a,c,b):bf(a,c,b)}function af(a,b,c){var d=
a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Vc));else if(4!==d&&(a=a.child,null!==a))for(af(a,b,c),a=a.sibling;null!==a;)af(a,b,c),a=a.sibling}function bf(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);
else if(4!==d&&(a=a.child,null!==a))for(bf(a,b,c),a=a.sibling;null!==a;)bf(a,b,c),a=a.sibling}function Sh(a,b,c){c=b;for(var d=!1,e,f;;){if(!d){e=c.return;a:for(;;){if(null===e)throw Error(m(160));f=e.stateNode;switch(e.tag){case 5:e=f;f=!1;break a;case 3:e=f.containerInfo;f=!0;break a;case 4:e=f.containerInfo;f=!0;break a}e=e.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(Rh(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===
k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(Rh(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=
c.sibling}}function cf(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Wc]=d;"input"===a&&"radio"===d.type&&null!=d.name&&Hf(c,d);Td(a,e);b=Td(a,d);for(e=0;e<f.length;e+=
2){var g=f[e],h=f[e+1];"style"===g?Of(c,h):"dangerouslySetInnerHTML"===g?Lh(c,h):"children"===g?qc(c,h):Ed(c,g,h,b)}switch(a){case "input":Nd(c,d);break;case "textarea":Kf(c,d);break;case "select":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?ib(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?ib(c,!!d.multiple,d.defaultValue,!0):ib(c,!!d.multiple,d.multiple?[]:"",!1))}}}return;case 6:if(null===b.stateNode)throw Error(m(162));b.stateNode.nodeValue=
b.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,bg(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(df=P(),Qh(b.child,!0));Wh(b);return;case 19:Wh(b);return;case 17:return;case 23:case 24:Qh(b,null!==b.memoizedState);return}throw Error(m(163));}function Wh(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Dj);b.forEach(function(b){var d=Ej.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}function Fj(a,
b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}function Eb(){We=P()+500}function W(){return 0!==(n&48)?P():-1!==sd?sd:sd=P()}function Oa(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===wb()?1:2;0===ua&&(ua=Fb);if(0!==Gj.transition){0!==td&&(td=null!==ef?ef.pendingLanes:0);a=ua;var b=4186112&~td;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=wb();0!==(n&4)&&98===a?a=Nc(12,ua):(a=Fi(a),a=Nc(a,ua));
return a}function Pa(a,b,c){if(50<rc)throw rc=0,ff=null,Error(m(185));a=ud(a,b);if(null===a)return null;Oc(a,b,c);a===R&&(Cb|=b,4===L&&Db(a,O));var d=wb();1===b?0!==(n&8)&&0===(n&48)?gf(a):(ba(a,c),0===n&&(Eb(),ja())):(0===(n&4)||98!==d&&99!==d||(null===va?va=new Set([a]):va.add(a)),ba(a,c));ef=a}function ud(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}
function ba(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Ba(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;mb(k);var m=w;f[h]=10<=m?l+250:6<=m?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Wb(a,a===R?O:0);b=w;if(0===d)null!==c&&(c!==hf&&xe(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==hf&&xe(c)}15===b?(c=gf.bind(null,a),null===pa?(pa=[c],Zc=we(Yc,$g)):pa.push(c),
c=hf):14===b?c=bc(99,gf.bind(null,a)):(c=Gi(b),c=bc(c,Xh.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}function Xh(a){sd=-1;td=ua=0;if(0!==(n&48))throw Error(m(327));var b=a.callbackNode;if(Ra()&&a.callbackNode!==b)return null;var c=Wb(a,a===R?O:0);if(0===c)return null;var d=c;var e=n;n|=16;var f=Yh();if(R!==a||O!==d)Eb(),Gb(a,d);do try{Hj();break}catch(h){Zh(a,h)}while(1);ze();vd.current=f;n=e;null!==G?d=0:(R=null,O=0,d=L);if(0!==(Fb&Cb))Gb(a,0);else if(0!==d){2===d&&(n|=64,a.hydrate&&(a.hydrate=
!1,te(a.containerInfo)),c=eg(a),0!==c&&(d=sc(a,c)));if(1===d)throw b=wd,Gb(a,0),Db(a,c),ba(a,P()),b;a.finishedWork=a.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(m(345));case 2:eb(a);break;case 3:Db(a,c);if((c&62914560)===c&&(d=df+500-P(),10<d)){if(0!==Wb(a,0))break;e=a.suspendedLanes;if((e&c)!==c){W();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=$h(eb.bind(null,a),d);break}eb(a);break;case 4:Db(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=
31-Ba(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=P()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>c?4320:1960*Ij(c/1960))-c;if(10<c){a.timeoutHandle=$h(eb.bind(null,a),c);break}eb(a);break;case 5:eb(a);break;default:throw Error(m(329));}}ba(a,P());return a.callbackNode===b?Xh.bind(null,a):null}function Db(a,b){b&=~jf;b&=~Cb;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Ba(b),d=1<<c;a[c]=-1;b&=~d}}function gf(a){if(0!==(n&48))throw Error(m(327));Ra();
if(a===R&&0!==(a.expiredLanes&O)){var b=O;var c=sc(a,b);0!==(Fb&Cb)&&(b=Wb(a,b),c=sc(a,b))}else b=Wb(a,0),c=sc(a,b);0!==a.tag&&2===c&&(n|=64,a.hydrate&&(a.hydrate=!1,te(a.containerInfo)),b=eg(a),0!==b&&(c=sc(a,b)));if(1===c)throw c=wd,Gb(a,0),Db(a,b),ba(a,P()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;eb(a);ba(a,P());return null}function Jj(){if(null!==va){var a=va;va=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;ba(a,P())})}ja()}function ai(a,b){var c=n;n|=1;try{return a(b)}finally{n=
c,0===n&&(Eb(),ja())}}function bi(a,b){var c=n;n&=-2;n|=8;try{return a(b)}finally{n=c,0===n&&(Eb(),ja())}}function pd(a,b){A(cb,ta);ta|=b;Fb|=b}function Gb(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Kj(c));if(null!==G)for(c=G.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&(t(J),t(D));break;case 3:Ab();t(J);t(D);Je();break;case 5:Ge(d);break;case 4:Ab();break;case 13:t(E);break;case 19:t(E);break;case 10:Ae(d);
break;case 23:case 24:ta=cb.current,t(cb)}c=c.return}R=a;G=Ma(a.current,null);O=ta=Fb=b;L=0;wd=null;jf=Cb=La=0}function Zh(a,b){do{var c=G;try{ze();jc.current=jd;if(kd){for(var d=y.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}kd=!1}ic=0;K=N=y=null;kc=!1;kf.current=null;if(null===c||null===c.return){L=1;wd=b;G=null;break}a:{var f=a,g=c.return,h=c,k=b;b=O;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&"object"===typeof k&&"function"===typeof k.then){var l=k;
if(0===(h.mode&2)){var m=h.alternate;m?(h.updateQueue=m.updateQueue,h.memoizedState=m.memoizedState,h.lanes=m.lanes):(h.updateQueue=null,h.memoizedState=null)}var n=0!==(E.current&1),r=g;do{var t;if(t=13===r.tag){var w=r.memoizedState;if(null!==w)t=null!==w.dehydrated?!0:!1;else{var z=r.memoizedProps;t=void 0===z.fallback?!1:!0!==z.unstable_avoidThisFallback?!0:n?!1:!0}}if(t){var C=r.updateQueue;if(null===C){var x=new Set;x.add(l);r.updateQueue=x}else C.add(l);if(0===(r.mode&2)){r.flags|=64;h.flags|=
16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var p=Ia(-1,1);p.tag=2;Ja(h,p)}h.lanes|=1;break a}k=void 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Lj,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var u=Mj.bind(null,f,l,h);l.then(u,u)}r.flags|=4096;r.lanes=b;break a}r=r.return}while(null!==r);k=Error((hb(h.type)||"A React component")+" suspended while rendering, but no fallback UI was specified.\n\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.")}5!==
L&&(L=2);k=Xe(k,h);r=g;do{switch(r.tag){case 3:f=k;r.flags|=4096;b&=-b;r.lanes|=b;var B=Mh(r,f,b);ch(r,B);break a;case 1:f=k;var A=r.type,D=r.stateNode;if(0===(r.flags&64)&&("function"===typeof A.getDerivedStateFromError||null!==D&&"function"===typeof D.componentDidCatch&&(null===na||!na.has(D)))){r.flags|=4096;b&=-b;r.lanes|=b;var F=Nh(r,f,b);ch(r,F);break a}}r=r.return}while(null!==r)}ci(c)}catch(qa){b=qa;G===c&&null!==c&&(G=c=c.return);continue}break}while(1)}function Yh(){var a=vd.current;vd.current=
jd;return null===a?jd:a}function sc(a,b){var c=n;n|=16;var d=Yh();R===a&&O===b||Gb(a,b);do try{Nj();break}catch(e){Zh(a,e)}while(1);ze();n=c;vd.current=d;if(null!==G)throw Error(m(261));R=null;O=0;return L}function Nj(){for(;null!==G;)di(G)}function Hj(){for(;null!==G&&!Oj();)di(G)}function di(a){var b=Pj(a.alternate,a,ta);a.memoizedProps=a.pendingProps;null===b?ci(a):G=b;kf.current=null}function ci(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=vj(c,b,ta);if(null!==c){G=c;return}c=
b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(ta&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==a.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=zj(b);if(null!==c){c.flags&=2047;G=c;
return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){G=b;return}G=b=a}while(null!==b);0===L&&(L=5)}function eb(a){var b=wb();Za(99,Qj.bind(null,a,b));return null}function Qj(a,b){do Ra();while(null!==tc);if(0!==(n&48))throw Error(m(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(m(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;
a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Ba(f),v=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~v}null!==va&&0===(d&24)&&va.has(a)&&va.delete(a);a===R&&(G=R=null,O=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=n;n|=32;kf.current=null;lf=Pc;g=xg();if(ne(g)){if("selectionStart"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=
(h=g.ownerDocument)&&h.defaultView||window,(v=h.getSelection&&h.getSelection())&&0!==v.rangeCount){h=v.anchorNode;f=v.anchorOffset;k=v.focusNode;v=v.focusOffset;try{h.nodeType,k.nodeType}catch(qa){h=null;break a}var t=0,w=-1,r=-1,z=0,B=0,y=g,C=null;b:for(;;){for(var x;;){y!==h||0!==f&&3!==y.nodeType||(w=t+f);y!==k||0!==v&&3!==y.nodeType||(r=t+v);3===y.nodeType&&(t+=y.nodeValue.length);if(null===(x=y.firstChild))break;C=y;y=x}for(;;){if(y===g)break b;C===h&&++z===f&&(w=t);C===k&&++B===v&&(r=t);if(null!==
(x=y.nextSibling))break;y=C;C=y.parentNode}y=x}h=-1===w||-1===r?null:{start:w,end:r}}else h=null;h=h||{start:0,end:0}}else h=null;mf={focusedElem:g,selectionRange:h};Pc=!1;uc=null;xd=!1;l=d;do try{Rj()}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);uc=null;l=d;do try{for(g=a;null!==l;){var p=l.flags;p&16&&qc(l.stateNode,"");if(p&128){var q=l.alternate;if(null!==q){var u=q.ref;null!==u&&("function"===typeof u?u(null):u.current=null)}}switch(p&1038){case 2:Vh(l);l.flags&=
-3;break;case 6:Vh(l);l.flags&=-3;cf(l.alternate,l);break;case 1024:l.flags&=-1025;break;case 1028:l.flags&=-1025;cf(l.alternate,l);break;case 4:cf(l.alternate,l);break;case 8:h=l;Sh(g,h);var A=h.alternate;Th(h);null!==A&&Th(A)}l=l.nextEffect}}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);u=mf;q=xg();p=u.focusedElem;g=u.selectionRange;if(q!==p&&p&&p.ownerDocument&&wg(p.ownerDocument.documentElement,p)){null!==g&&ne(p)&&(q=g.start,u=g.end,void 0===u&&(u=q),"selectionStart"in
p?(p.selectionStart=q,p.selectionEnd=Math.min(u,p.value.length)):(u=(q=p.ownerDocument||document)&&q.defaultView||window,u.getSelection&&(u=u.getSelection(),h=p.textContent.length,A=Math.min(g.start,h),g=void 0===g.end?A:Math.min(g.end,h),!u.extend&&A>g&&(h=g,g=A,A=h),h=vg(p,A),f=vg(p,g),h&&f&&(1!==u.rangeCount||u.anchorNode!==h.node||u.anchorOffset!==h.offset||u.focusNode!==f.node||u.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),u.removeAllRanges(),A>g?(u.addRange(q),u.extend(f.node,
f.offset)):(q.setEnd(f.node,f.offset),u.addRange(q))))));q=[];for(u=p;u=u.parentNode;)1===u.nodeType&&q.push({element:u,left:u.scrollLeft,top:u.scrollTop});"function"===typeof p.focus&&p.focus();for(p=0;p<q.length;p++)u=q[p],u.element.scrollLeft=u.left,u.element.scrollTop=u.top}Pc=!!lf;mf=lf=null;a.current=c;l=d;do try{for(p=a;null!==l;){var D=l.flags;D&36&&Bj(p,l.alternate,l);if(D&128){q=void 0;var E=l.ref;if(null!==E){var F=l.stateNode;switch(l.tag){case 5:q=F;break;default:q=F}"function"===typeof E?
E(q):E.current=q}}l=l.nextEffect}}catch(qa){if(null===l)throw Error(m(330));Qa(l,qa);l=l.nextEffect}while(null!==l);l=null;Sj();n=e}else a.current=c;if(Sa)Sa=!1,tc=a,vc=b;else for(l=d;null!==l;)b=l.nextEffect,l.nextEffect=null,l.flags&8&&(D=l,D.sibling=null,D.stateNode=null),l=b;d=a.pendingLanes;0===d&&(na=null);1===d?a===ff?rc++:(rc=0,ff=a):rc=0;c=c.stateNode;if(db&&"function"===typeof db.onCommitFiberRoot)try{db.onCommitFiberRoot($e,c,void 0,64===(c.current.flags&64))}catch(qa){}ba(a,P());if(rd)throw rd=
!1,a=Ze,Ze=null,a;if(0!==(n&8))return null;ja();return null}function Rj(){for(;null!==l;){var a=l.alternate;xd||null===uc||(0!==(l.flags&8)?Wf(l,uc)&&(xd=!0):13===l.tag&&Fj(a,l)&&Wf(l,uc)&&(xd=!0));var b=l.flags;0!==(b&256)&&Aj(a,l);0===(b&512)||Sa||(Sa=!0,bc(97,function(){Ra();return null}));l=l.nextEffect}}function Ra(){if(90!==vc){var a=97<vc?97:vc;vc=90;return Za(a,Tj)}return!1}function Cj(a,b){nf.push(b,a);Sa||(Sa=!0,bc(97,function(){Ra();return null}))}function Ph(a,b){of.push(b,a);Sa||(Sa=
!0,bc(97,function(){Ra();return null}))}function Tj(){if(null===tc)return!1;var a=tc;tc=null;if(0!==(n&48))throw Error(m(331));var b=n;n|=32;var c=of;of=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if("function"===typeof g)try{g()}catch(k){if(null===f)throw Error(m(330));Qa(f,k)}}c=nf;nf=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(m(330));Qa(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,
h.nextEffect=null,h.flags&8&&(h.sibling=null,h.stateNode=null),h=a;n=b;ja();return!0}function ei(a,b,c){b=Xe(c,b);b=Mh(a,b,1);Ja(a,b);b=W();a=ud(a,1);null!==a&&(Oc(a,1,b),ba(a,b))}function Qa(a,b){if(3===a.tag)ei(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){ei(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if("function"===typeof c.type.getDerivedStateFromError||"function"===typeof d.componentDidCatch&&(null===na||!na.has(d))){a=Xe(b,a);var e=Nh(c,a,1);Ja(c,e);e=W();c=ud(c,1);if(null!==
c)Oc(c,1,e),ba(c,e);else if("function"===typeof d.componentDidCatch&&(null===na||!na.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}function Mj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=W();a.pingedLanes|=a.suspendedLanes&c;R===a&&(O&c)===c&&(4===L||3===L&&(O&62914560)===O&&500>P()-df?Gb(a,0):jf|=c);ba(a,b)}function Ej(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===wb()?1:2:(0===ua&&(ua=Fb),b=nb(62914560&~ua),0===b&&(b=4194304)));
c=W();a=ud(a,b);null!==a&&(Oc(a,b,c),ba(a,c))}function Uj(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function Qe(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Vj(a){if("function"===
typeof a)return Qe(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Dc)return 11;if(a===Ec)return 14}return 2}function Ma(a,b){var c=a.alternate;null===c?(c=Z(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=
a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}function fd(a,b,c,d,e,f){var g=2;d=a;if("function"===typeof a)Qe(a)&&(g=1);else if("string"===typeof a)g=5;else a:switch(a){case wa:return zb(c.children,e,f,b);case fi:g=8;e|=16;break;case Hd:g=8;e|=1;break;case Lb:return a=Z(12,c,b,e|8),a.elementType=Lb,a.type=Lb,a.lanes=f,a;case Mb:return a=Z(13,c,b,e),a.type=Mb,a.elementType=Mb,a.lanes=
f,a;case Cc:return a=Z(19,c,b,e),a.elementType=Cc,a.lanes=f,a;case pf:return Ue(c,e,f,b);case qf:return a=Z(24,c,b,e),a.elementType=qf,a.lanes=f,a;default:if("object"===typeof a&&null!==a)switch(a.$$typeof){case Jd:g=10;break a;case Id:g=9;break a;case Dc:g=11;break a;case Ec:g=14;break a;case Ld:g=16;d=null;break a;case Kd:g=22;break a}throw Error(m(130,null==a?a:typeof a,""));}b=Z(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function zb(a,b,c,d){a=Z(7,a,d,b);a.lanes=c;return a}function Ue(a,
b,c,d){a=Z(23,a,d,b);a.elementType=pf;a.lanes=c;return a}function De(a,b,c){a=Z(6,a,null,b);a.lanes=c;return a}function Ee(a,b,c){b=Z(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}function Wj(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=
null;this.callbackPriority=0;this.eventTimes=ge(0);this.expirationTimes=ge(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=ge(0);this.mutableSourceEagerHydrationData=null}function Xj(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:Ua,key:null==d?null:""+d,children:a,containerInfo:b,implementation:c}}function yd(a,b,c,d){var e=b.current,f=W(),g=Oa(e);
a:if(c){c=c._reactInternals;b:{if(Va(c)!==c||1!==c.tag)throw Error(m(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(S(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(m(171));}if(1===c.tag){var k=c.type;if(S(k)){c=Tg(c,k,h);break a}}c=h}else c=Ha;null===b.context?b.context=c:b.pendingContext=c;b=Ia(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);Ja(e,b);Pa(e,g,f);return g}function rf(a){a=
a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function gi(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function sf(a,b){gi(a,b);(a=a.alternate)&&gi(a,b)}function Yj(a){a=Vf(a);return null===a?null:a.stateNode}function Zj(a){return null}function tf(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new Wj(a,b,null!=c&&!0===c.hydrate);
b=Z(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;Be(b);a[rb]=c.current;Cg(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}function wc(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||" react-mount-point-unstable "!==a.nodeValue))}function ak(a,b){b||(b=a?9===
a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute("data-reactroot")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new tf(a,0,b?{hydrate:!0}:void 0)}function zd(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if("function"===typeof e){var h=e;e=function(){var a=rf(g);h.call(a)}}yd(b,g,a,e)}else{f=c._reactRootContainer=ak(c,d);g=f._internalRoot;if("function"===typeof e){var k=e;e=function(){var a=rf(g);k.call(a)}}bi(function(){yd(b,
g,a,e)})}return rf(g)}function hi(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!wc(b))throw Error(m(200));return Xj(a,b,null,c)}if(!ha)throw Error(m(227));var zf=new Set,Ib={},oa=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),mi=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,
Af=Object.prototype.hasOwnProperty,Cf={},Bf={},I={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(a){I[a]=new Q(a,0,!1,a,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(a){var b=a[0];I[b]=new Q(b,1,!1,a[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(a){I[a]=
new Q(a,2,!1,a.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(a){I[a]=new Q(a,2,!1,a,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(a){I[a]=new Q(a,3,!1,a.toLowerCase(),null,!1,!1)});["checked","multiple",
"muted","selected"].forEach(function(a){I[a]=new Q(a,3,!0,a,null,!1,!1)});["capture","download"].forEach(function(a){I[a]=new Q(a,4,!1,a,null,!1,!1)});["cols","rows","size","span"].forEach(function(a){I[a]=new Q(a,6,!1,a,null,!1,!1)});["rowSpan","start"].forEach(function(a){I[a]=new Q(a,5,!1,a.toLowerCase(),null,!1,!1)});var uf=/[\-:]([a-z])/g,vf=function(a){return a[1].toUpperCase()};"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(a){var b=
a.replace(uf,vf);I[b]=new Q(b,1,!1,a,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(a){var b=a.replace(uf,vf);I[b]=new Q(b,1,!1,a,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(a){var b=a.replace(uf,vf);I[b]=new Q(b,1,!1,a,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(a){I[a]=new Q(a,1,!1,a.toLowerCase(),null,!1,!1)});I.xlinkHref=new Q("xlinkHref",
1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(a){I[a]=new Q(a,1,!1,a.toLowerCase(),null,!0,!0)});var B=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.assign,fb=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ec=60103,Ua=60106,wa=60107,Hd=60108,Lb=60114,Jd=60109,Id=60110,Dc=60112,Mb=60113,Cc=60120,Ec=60115,Ld=60116,Kd=60121,ue=60128,fi=60129,pf=60130,qf=60131;if("function"===typeof Symbol&&Symbol.for){var H=Symbol.for;ec=
H("react.element");Ua=H("react.portal");wa=H("react.fragment");Hd=H("react.strict_mode");Lb=H("react.profiler");Jd=H("react.provider");Id=H("react.context");Dc=H("react.forward_ref");Mb=H("react.suspense");Cc=H("react.suspense_list");Ec=H("react.memo");Ld=H("react.lazy");Kd=H("react.block");H("react.scope");ue=H("react.opaque.id");fi=H("react.debug_trace_mode");pf=H("react.offscreen");qf=H("react.legacy_hidden")}var Df="function"===typeof Symbol&&Symbol.iterator,Fd,Gd=!1,Ad,Lh=function(a){return"undefined"!==
typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if("http://www.w3.org/2000/svg"!==a.namespaceURI||"innerHTML"in a)a.innerHTML=b;else{Ad=Ad||document.createElement("div");Ad.innerHTML="<svg>"+b.valueOf().toString()+"</svg>";for(b=Ad.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}}),qc=function(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=
b;return}}a.textContent=b},Nb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,
zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},bk=["Webkit","ms","Moz","O"];Object.keys(Nb).forEach(function(a){bk.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);Nb[b]=Nb[a]})});var si=B({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Vd=null,jb=null,kb=null,me=function(a,b){return a(b)},fg=function(a,
b,c,d,e){return a(b,c,d,e)},Xd=function(){},Sf=me,Xa=!1,Yd=!1,qe=!1;if(oa)try{var xc={};Object.defineProperty(xc,"passive",{get:function(){qe=!0}});window.addEventListener("test",xc,xc);window.removeEventListener("test",xc,xc)}catch(a){qe=!1}var vi=function(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(Da){this.onError(Da)}},Qb=!1,Ic=null,Jc=!1,Zd=null,wi={onError:function(a){Qb=!0;Ic=a}},ca=ha.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Scheduler,
ck=ca.unstable_cancelCallback,Bd=ca.unstable_now,$f=ca.unstable_scheduleCallback,dk=ca.unstable_shouldYield,ii=ca.unstable_requestPaint,ae=ca.unstable_runWithPriority,ek=ca.unstable_getCurrentPriorityLevel,fk=ca.unstable_ImmediatePriority,ji=ca.unstable_UserBlockingPriority,ag=ca.unstable_NormalPriority,gk=ca.unstable_LowPriority,hk=ca.unstable_IdlePriority,ce=!1,ia=[],ya=null,za=null,Aa=null,Rb=new Map,Sb=new Map,Vb=[],gg="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" "),
lb={animationend:Lc("Animation","AnimationEnd"),animationiteration:Lc("Animation","AnimationIteration"),animationstart:Lc("Animation","AnimationStart"),transitionend:Lc("Transition","TransitionEnd")},de={},cg={};oa&&(cg=document.createElement("div").style,"AnimationEvent"in window||(delete lb.animationend.animation,delete lb.animationiteration.animation,delete lb.animationstart.animation),"TransitionEvent"in window||delete lb.transitionend.transition);var Hg=Mc("animationend"),Ig=Mc("animationiteration"),
Jg=Mc("animationstart"),Kg=Mc("transitionend"),dg=new Map,fe=new Map,ik=["abort","abort",Hg,"animationEnd",Ig,"animationIteration",Jg,"animationStart","canplay","canPlay","canplaythrough","canPlayThrough","durationchange","durationChange","emptied","emptied","encrypted","encrypted","ended","ended","error","error","gotpointercapture","gotPointerCapture","load","load","loadeddata","loadedData","loadedmetadata","loadedMetadata","loadstart","loadStart","lostpointercapture","lostPointerCapture","playing",
"playing","progress","progress","seeking","seeking","stalled","stalled","suspend","suspend","timeupdate","timeUpdate",Kg,"transitionEnd","waiting","waiting"];Bd();var w=8,Ba=Math.clz32?Math.clz32:Hi,Ii=Math.log,Ji=Math.LN2,Ni=ji,Mi=ae,Pc=!0,Ca=null,ie=null,Qc=null,Hb={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},le=V(Hb),yc=B({},Hb,{view:0,detail:0}),hj=V(yc),wf,xf,zc,Cd=B({},yc,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,
pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:je,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if("movementX"in a)return a.movementX;a!==zc&&(zc&&"mousemove"===a.type?(wf=a.screenX-zc.screenX,xf=a.screenY-zc.screenY):xf=wf=0,zc=a);return wf},movementY:function(a){return"movementY"in a?a.movementY:xf}}),Gg=V(Cd),jk=B({},Cd,{dataTransfer:0}),dj=V(jk),kk=B({},
yc,{relatedTarget:0}),re=V(kk),lk=B({},Hb,{animationName:0,elapsedTime:0,pseudoElement:0}),fj=V(lk),mk=B({},Hb,{clipboardData:function(a){return"clipboardData"in a?a.clipboardData:window.clipboardData}}),jj=V(mk),nk=B({},Hb,{data:0}),Og=V(nk),mj=Og,ok={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},pk={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",
16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Pi={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"},qk=B({},yc,{key:function(a){if(a.key){var b=ok[a.key]||a.key;if("Unidentified"!==
b)return b}return"keypress"===a.type?(a=Rc(a),13===a?"Enter":String.fromCharCode(a)):"keydown"===a.type||"keyup"===a.type?pk[a.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:je,charCode:function(a){return"keypress"===a.type?Rc(a):0},keyCode:function(a){return"keydown"===a.type||"keyup"===a.type?a.keyCode:0},which:function(a){return"keypress"===a.type?Rc(a):"keydown"===a.type||"keyup"===a.type?a.keyCode:0}}),cj=V(qk),rk=B({},
Cd,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Lg=V(rk),sk=B({},yc,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:je}),ej=V(sk),tk=B({},Hb,{propertyName:0,elapsedTime:0,pseudoElement:0}),gj=V(tk),uk=B({},Cd,{deltaX:function(a){return"deltaX"in a?a.deltaX:"wheelDeltaX"in a?-a.wheelDeltaX:0},deltaY:function(a){return"deltaY"in a?a.deltaY:"wheelDeltaY"in a?-a.wheelDeltaY:"wheelDelta"in
a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),ij=V(uk),Qi=[9,13,27,32],ke=oa&&"CompositionEvent"in window,Ac=null;oa&&"documentMode"in document&&(Ac=document.documentMode);var lj=oa&&"TextEvent"in window&&!Ac,og=oa&&(!ke||Ac&&8<Ac&&11>=Ac),ng=String.fromCharCode(32),mg=!1,ob=!1,Ti={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0},Xb=null,Yb=null,Ng=!1;oa&&(Ng=Ui("input")&&(!document.documentMode||9<document.documentMode));
var X="function"===typeof Object.is?Object.is:aj,bj=Object.prototype.hasOwnProperty,kj=oa&&"documentMode"in document&&11>=document.documentMode,qb=null,pe=null,$b=null,oe=!1;ee("cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange".split(" "),
0);ee("drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel".split(" "),1);ee(ik,2);(function(a,b){for(var c=0;c<a.length;c++)fe.set(a[c],b)})("change selectionchange textInput compositionstart compositionend compositionupdate".split(" "),0);gb("onMouseEnter",["mouseout","mouseover"]);
gb("onMouseLeave",["mouseout","mouseover"]);gb("onPointerEnter",["pointerout","pointerover"]);gb("onPointerLeave",["pointerout","pointerover"]);Ta("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Ta("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Ta("onBeforeInput",["compositionend","keypress","textInput","paste"]);Ta("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));
Ta("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Ta("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var pc="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Eg=new Set("cancel close invalid load scroll toggle".split(" ").concat(pc)),
Dg="_reactListening"+Math.random().toString(36).slice(2),lf=null,mf=null,$h="function"===typeof setTimeout?setTimeout:void 0,Kj="function"===typeof clearTimeout?clearTimeout:void 0,yf=0,Dd=Math.random().toString(36).slice(2),Fa="__reactFiber$"+Dd,Wc="__reactProps$"+Dd,rb="__reactContainer$"+Dd,Rg="__reactEvents$"+Dd,ve=[],ub=-1,Ha={},D=Ga(Ha),J=Ga(!1),Ya=Ha,$e=null,db=null,pj=ae,we=$f,xe=ck,oj=ek,Yc=fk,Vg=ji,Wg=ag,Xg=gk,Yg=hk,hf={},Oj=dk,Sj=void 0!==ii?ii:function(){},pa=null,Zc=null,ye=!1,ki=Bd(),
P=1E4>ki?Bd:function(){return Bd()-ki},Gj=fb.ReactCurrentBatchConfig,bd=Ga(null),ad=null,xb=null,$c=null,Ka=!1,hh=(new ha.Component).refs,dd={isMounted:function(a){return(a=a._reactInternals)?Va(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=W(),e=Oa(a),f=Ia(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ja(a,f);Pa(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=W(),e=Oa(a),f=Ia(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ja(a,f);
Pa(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=W(),d=Oa(a),e=Ia(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);Ja(a,e);Pa(a,d,c)}},gd=Array.isArray,od=ih(!0),xh=ih(!1),fc={},ka=Ga(fc),hc=Ga(fc),gc=Ga(fc),E=Ga(0),ra=null,Na=null,la=!1,Bb=[],jc=fb.ReactCurrentDispatcher,aa=fb.ReactCurrentBatchConfig,ic=0,y=null,N=null,K=null,kd=!1,kc=!1,jd={readContext:Y,useCallback:T,useContext:T,useEffect:T,useImperativeHandle:T,useLayoutEffect:T,useMemo:T,useReducer:T,useRef:T,useState:T,
useDebugValue:T,useDeferredValue:T,useTransition:T,useMutableSource:T,useOpaqueIdentifier:T,unstable_isNewReconciler:!1},qj={readContext:Y,useCallback:function(a,b){ab().memoizedState=[a,void 0===b?null:b];return a},useContext:Y,useEffect:rh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ne(4,2,th.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ne(4,2,a,b)},useMemo:function(a,b){var c=ab();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,
b,c){var d=ab();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Me.bind(null,y,a);return[d.memoizedState,a]},useRef:qh,useState:nc,useDebugValue:Pe,useDeferredValue:function(a){var b=nc(a),c=b[0],d=b[1];rh(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=nc(!1),b=a[0];a=tj.bind(null,a[1]);qh(a);return[a,b]},useMutableSource:function(a,
b,c){var d=ab();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return oh(d,a,b,c)},useOpaqueIdentifier:function(){if(la){var a=!1,b=nj(function(){a||(a=!0,c("r:"+(yf++).toString(36)));throw Error(m(355));}),c=nc(b)[1];0===(y.mode&2)&&(y.flags|=516,ld(5,function(){c("r:"+(yf++).toString(36))},void 0,null));return b}b="r:"+(yf++).toString(36);nc(b);return b},unstable_isNewReconciler:!1},rj={readContext:Y,useCallback:vh,useContext:Y,useEffect:nd,useImperativeHandle:uh,useLayoutEffect:sh,
useMemo:wh,useReducer:lc,useRef:md,useState:function(a){return lc(ma)},useDebugValue:Pe,useDeferredValue:function(a){var b=lc(ma),c=b[0],d=b[1];nd(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=lc(ma)[0];return[md().current,a]},useMutableSource:ph,useOpaqueIdentifier:function(){return lc(ma)[0]},unstable_isNewReconciler:!1},sj={readContext:Y,useCallback:vh,useContext:Y,useEffect:nd,useImperativeHandle:uh,useLayoutEffect:sh,
useMemo:wh,useReducer:mc,useRef:md,useState:function(a){return mc(ma)},useDebugValue:Pe,useDeferredValue:function(a){var b=mc(ma),c=b[0],d=b[1];nd(function(){var b=aa.transition;aa.transition=1;try{d(a)}finally{aa.transition=b}},[a]);return c},useTransition:function(){var a=mc(ma)[0];return[md().current,a]},useMutableSource:ph,useOpaqueIdentifier:function(){return mc(ma)[0]},unstable_isNewReconciler:!1},uj=fb.ReactCurrentOwner,fa=!1,qd={dehydrated:null,retryLane:0};var xj=function(a,b,c,d){for(c=
b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};var Kh=function(a){};var wj=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){a=b.stateNode;$a(ka.current);e=null;switch(c){case "input":f=Md(a,f);d=Md(a,d);e=[];break;case "option":f=Pd(a,f);d=Pd(a,d);e=[];break;case "select":f=
B({},f,{value:void 0});d=B({},d,{value:void 0});e=[];break;case "textarea":f=Qd(a,f);d=Qd(a,d);e=[];break;default:"function"!==typeof f.onClick&&"function"===typeof d.onClick&&(a.onclick=Vc)}Sd(c,d);var g;c=null;for(l in f)if(!d.hasOwnProperty(l)&&f.hasOwnProperty(l)&&null!=f[l])if("style"===l){var h=f[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]="")}else"dangerouslySetInnerHTML"!==l&&"children"!==l&&"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&"autoFocus"!==l&&(Ib.hasOwnProperty(l)?
e||(e=[]):(e=e||[]).push(l,null));for(l in d){var k=d[l];h=null!=f?f[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if("style"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]="");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(e||(e=[]),e.push(l,c)),c=k;else"dangerouslySetInnerHTML"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(e=e||[]).push(l,k)):"children"===l?"string"!==typeof k&&"number"!==typeof k||(e=
e||[]).push(l,""+k):"suppressContentEditableWarning"!==l&&"suppressHydrationWarning"!==l&&(Ib.hasOwnProperty(l)?(null!=k&&"onScroll"===l&&z("scroll",a),e||h===k||(e=[])):"object"===typeof k&&null!==k&&k.$$typeof===ue?k.toString():(e=e||[]).push(l,k))}c&&(e=e||[]).push("style",c);var l=e;if(b.updateQueue=l)b.flags|=4}};var yj=function(a,b,c,d){c!==d&&(b.flags|=4)};var Lj="function"===typeof WeakMap?WeakMap:Map,Dj="function"===typeof WeakSet?WeakSet:Set,Ij=Math.ceil,vd=fb.ReactCurrentDispatcher,kf=
fb.ReactCurrentOwner,n=0,R=null,G=null,O=0,ta=0,cb=Ga(0),L=0,wd=null,Fb=0,La=0,Cb=0,jf=0,ef=null,df=0,We=Infinity,l=null,rd=!1,Ze=null,na=null,Sa=!1,tc=null,vc=90,nf=[],of=[],va=null,rc=0,ff=null,sd=-1,ua=0,td=0,uc=null,xd=!1;var Pj=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||J.current)fa=!0;else if(0!==(c&d))fa=0!==(a.flags&16384)?!0:!1;else{fa=!1;switch(b.tag){case 3:Dh(b);Ie();break;case 5:jh(b);break;case 1:S(b.type)&&Xc(b);break;case 4:Fe(b,b.stateNode.containerInfo);
break;case 10:d=b.memoizedProps.value;var e=b.type._context;A(bd,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return Eh(a,b,c);A(E,E.current&1);b=sa(a,b,c);return null!==b?b.sibling:null}A(E,E.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Jh(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);A(E,E.current);if(d)break;else return null;case 23:case 24:return b.lanes=
0,Se(a,b,c)}return sa(a,b,c)}else fa=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=vb(b,D.current);yb(b,c);e=Le(null,b,d,a,e,c);b.flags|=1;if("object"===typeof e&&null!==e&&"function"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(S(d)){var f=!0;Xc(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;Be(b);var g=d.getDerivedStateFromProps;"function"===typeof g&&
cd(b,d,g,a);e.updater=dd;b.stateNode=e;e._reactInternals=b;Ce(b,d,a,c);b=Te(null,b,d,!0,f,c)}else b.tag=0,U(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=Vj(e);a=ea(e,a);switch(f){case 0:b=Re(null,b,e,a,c);break a;case 1:b=Ch(null,b,e,a,c);break a;case 11:b=yh(null,b,e,a,c);break a;case 14:b=zh(null,b,e,ea(e.type,a),d,c);break a}throw Error(m(306,e,""));}return b;case 0:return d=
b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),Re(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),Ch(a,b,d,e,c);case 3:Dh(b);d=b.updateQueue;if(null===a||null===d)throw Error(m(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;bh(a,b);cc(b,d,null,c);d=b.memoizedState.element;if(d===e)Ie(),b=sa(a,b,c);else{e=b.stateNode;if(f=e.hydrate)Na=tb(b.stateNode.containerInfo.firstChild),ra=b,f=la=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=
a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],Bb.push(f);c=xh(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else U(a,b,d,c),Ie();b=b.child}return b;case 5:return jh(b),null===a&&He(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,se(d,e)?g=null:null!==f&&se(d,f)&&(b.flags|=16),Bh(a,b),U(a,b,g,c),b.child;case 6:return null===a&&He(b),null;case 13:return Eh(a,b,c);case 4:return Fe(b,b.stateNode.containerInfo),d=b.pendingProps,null===
a?b.child=od(b,null,d,c):U(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),yh(a,b,d,e,c);case 7:return U(a,b,b.pendingProps,c),b.child;case 8:return U(a,b,b.pendingProps.children,c),b.child;case 12:return U(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;A(bd,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=X(h,f)?0:("function"===typeof d._calculateChangedBits?
d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!J.current){b=sa(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Ia(-1,c&-c),l.tag=2,Ja(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);ah(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=
h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}U(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,yb(b,c),e=Y(e,f.unstable_observedBits),d=d(e),b.flags|=1,U(a,b,d,c),b.child;case 14:return e=b.type,f=ea(e,b.pendingProps),f=ea(e.type,f),zh(a,b,e,f,d,c);case 15:return Ah(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ea(d,e),null!==a&&(a.alternate=null,b.alternate=
null,b.flags|=2),b.tag=1,S(d)?(a=!0,Xc(b)):a=!1,yb(b,c),fh(b,d,e),Ce(b,d,e,c),Te(null,b,d,!0,a,c);case 19:return Jh(a,b,c);case 23:return Se(a,b,c);case 24:return Se(a,b,c)}throw Error(m(156,b.tag));};var Z=function(a,b,c,d){return new Uj(a,b,c,d)};tf.prototype.render=function(a){yd(a,this._internalRoot,null,null)};tf.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;yd(null,a,null,function(){b[rb]=null})};var Ei=function(a){if(13===a.tag){var b=W();Pa(a,4,b);sf(a,4)}};var Yf=
function(a){if(13===a.tag){var b=W();Pa(a,67108864,b);sf(a,67108864)}};var Ci=function(a){if(13===a.tag){var b=W(),c=Oa(a);Pa(a,c,b);sf(a,c)}};var Bi=function(a,b){return b()};Vd=function(a,b,c){switch(b){case "input":Nd(a,c);b=c.name;if("radio"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll("input[name="+JSON.stringify(""+b)+'][type="radio"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Hc(d);if(!e)throw Error(m(90));Ff(d);Nd(d,e)}}}break;case "textarea":Kf(a,
c);break;case "select":b=c.value,null!=b&&ib(a,!!c.multiple,b,!1)}};(function(a,b,c,d){me=a;fg=b;Xd=c;Sf=d})(ai,function(a,b,c,d,e){var f=n;n|=4;try{return Za(98,a.bind(null,b,c,d,e))}finally{n=f,0===n&&(Eb(),ja())}},function(){0===(n&49)&&(Jj(),Ra())},function(a,b){var c=n;n|=2;try{return a(b)}finally{n=c,0===n&&(Eb(),ja())}});var vk={Events:[Ob,pb,Hc,Qf,Rf,Ra,{current:!1}]};(function(a){a={bundleType:a.bundleType,version:a.version,rendererPackageName:a.rendererPackageName,rendererConfig:a.rendererConfig,
overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:fb.ReactCurrentDispatcher,findHostInstanceByFiber:Yj,findFiberByHostInstance:a.findFiberByHostInstance||Zj,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if("undefined"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)a=
!1;else{var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!b.isDisabled&&b.supportsFiber)try{$e=b.inject(a),db=b}catch(c){}a=!0}return a})({findFiberByHostInstance:Wa,bundleType:0,version:"17.0.1",rendererPackageName:"react-dom"});M.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;M.createPortal=hi;M.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if("function"===typeof a.render)throw Error(m(188));throw Error(m(268,Object.keys(a)));
}a=Vf(b);a=null===a?null:a.stateNode;return a};M.flushSync=function(a,b){var c=n;if(0!==(c&48))return a(b);n|=1;try{if(a)return Za(99,a.bind(null,b))}finally{n=c,ja()}};M.hydrate=function(a,b,c){if(!wc(b))throw Error(m(200));return zd(null,a,b,!0,c)};M.render=function(a,b,c){if(!wc(b))throw Error(m(200));return zd(null,a,b,!1,c)};M.unmountComponentAtNode=function(a){if(!wc(a))throw Error(m(40));return a._reactRootContainer?(bi(function(){zd(null,null,a,!1,function(){a._reactRootContainer=null;a[rb]=
null})}),!0):!1};M.unstable_batchedUpdates=ai;M.unstable_createPortal=function(a,b){return hi(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};M.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!wc(c))throw Error(m(200));if(null==a||void 0===a._reactInternals)throw Error(m(38));return zd(a,b,c,!1,d)};M.version="17.0.1"});
})();/*! instant.page v5.1.0 - (C) 2019-2020 Alexandre Dieulot - https://instant.page/license */

let mouseoverTimer
let lastTouchTimestamp
const prefetches = new Set()
const prefetchElement = document.createElement('link')
const isSupported = prefetchElement.relList && prefetchElement.relList.supports && prefetchElement.relList.supports('prefetch')
                    && window.IntersectionObserver && 'isIntersecting' in IntersectionObserverEntry.prototype
const allowQueryString = 'instantAllowQueryString' in document.body.dataset
const allowExternalLinks = 'instantAllowExternalLinks' in document.body.dataset
const useWhitelist = 'instantWhitelist' in document.body.dataset
const mousedownShortcut = 'instantMousedownShortcut' in document.body.dataset
const DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION = 1111

let delayOnHover = 65
let useMousedown = false
let useMousedownOnly = false
let useViewport = false

if ('instantIntensity' in document.body.dataset) {
  const intensity = document.body.dataset.instantIntensity

  if (intensity.substr(0, 'mousedown'.length) == 'mousedown') {
    useMousedown = true
    if (intensity == 'mousedown-only') {
      useMousedownOnly = true
    }
  }
  else if (intensity.substr(0, 'viewport'.length) == 'viewport') {
    if (!(navigator.connection && (navigator.connection.saveData || (navigator.connection.effectiveType && navigator.connection.effectiveType.includes('2g'))))) {
      if (intensity == "viewport") {
        /* Biggest iPhone resolution (which we want): 414 × 896 = 370944
         * Small 7" tablet resolution (which we don’t want): 600 × 1024 = 614400
         * Note that the viewport (which we check here) is smaller than the resolution due to the UI’s chrome */
        if (document.documentElement.clientWidth * document.documentElement.clientHeight < 450000) {
          useViewport = true
        }
      }
      else if (intensity == "viewport-all") {
        useViewport = true
      }
    }
  }
  else {
    const milliseconds = parseInt(intensity)
    if (!isNaN(milliseconds)) {
      delayOnHover = milliseconds
    }
  }
}

if (isSupported) {
  const eventListenersOptions = {
    capture: true,
    passive: true,
  }

  if (!useMousedownOnly) {
    document.addEventListener('touchstart', touchstartListener, eventListenersOptions)
  }

  if (!useMousedown) {
    document.addEventListener('mouseover', mouseoverListener, eventListenersOptions)
  }
  else if (!mousedownShortcut) {
      document.addEventListener('mousedown', mousedownListener, eventListenersOptions)
  }

  if (mousedownShortcut) {
    document.addEventListener('mousedown', mousedownShortcutListener, eventListenersOptions)
  }

  if (useViewport) {
    let triggeringFunction
    if (window.requestIdleCallback) {
      triggeringFunction = (callback) => {
        requestIdleCallback(callback, {
          timeout: 1500,
        })
      }
    }
    else {
      triggeringFunction = (callback) => {
        callback()
      }
    }

    triggeringFunction(() => {
      const intersectionObserver = new IntersectionObserver((entries) => {
        entries.forEach((entry) => {
          if (entry.isIntersecting) {
            const linkElement = entry.target
            intersectionObserver.unobserve(linkElement)
            preload(linkElement.href)
          }
        })
      })

      document.querySelectorAll('a').forEach((linkElement) => {
        if (isPreloadable(linkElement)) {
          intersectionObserver.observe(linkElement)
        }
      })
    })
  }
}

function touchstartListener(event) {
  /* Chrome on Android calls mouseover before touchcancel so `lastTouchTimestamp`
   * must be assigned on touchstart to be measured on mouseover. */
  lastTouchTimestamp = performance.now()

  const linkElement = event.target.closest('a')

  if (!isPreloadable(linkElement)) {
    return
  }

  preload(linkElement.href)
}

function mouseoverListener(event) {
  if (performance.now() - lastTouchTimestamp < DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION) {
    return
  }

  const linkElement = event.target.closest('a')

  if (!isPreloadable(linkElement)) {
    return
  }

  linkElement.addEventListener('mouseout', mouseoutListener, {passive: true})

  mouseoverTimer = setTimeout(() => {
    preload(linkElement.href)
    mouseoverTimer = undefined
  }, delayOnHover)
}

function mousedownListener(event) {
  const linkElement = event.target.closest('a')

  if (!isPreloadable(linkElement)) {
    return
  }

  preload(linkElement.href)
}

function mouseoutListener(event) {
  if (event.relatedTarget && event.target.closest('a') == event.relatedTarget.closest('a')) {
    return
  }

  if (mouseoverTimer) {
    clearTimeout(mouseoverTimer)
    mouseoverTimer = undefined
  }
}

function mousedownShortcutListener(event) {
  if (performance.now() - lastTouchTimestamp < DELAY_TO_NOT_BE_CONSIDERED_A_TOUCH_INITIATED_ACTION) {
    return
  }

  const linkElement = event.target.closest('a')

  if (event.which > 1 || event.metaKey || event.ctrlKey) {
    return
  }

  if (!linkElement) {
    return
  }

  linkElement.addEventListener('click', function (event) {
    if (event.detail == 1337) {
      return
    }

    event.preventDefault()
  }, {capture: true, passive: false, once: true})

  const customEvent = new MouseEvent('click', {view: window, bubbles: true, cancelable: false, detail: 1337})
  linkElement.dispatchEvent(customEvent)
}

function isPreloadable(linkElement) {
  if (!linkElement || !linkElement.href) {
    return
  }

  if (useWhitelist && !('instant' in linkElement.dataset)) {
    return
  }

  if (!allowExternalLinks && linkElement.origin != location.origin && !('instant' in linkElement.dataset)) {
    return
  }

  if (!['http:', 'https:'].includes(linkElement.protocol)) {
    return
  }

  if (linkElement.protocol == 'http:' && location.protocol == 'https:') {
    return
  }

  if (!allowQueryString && linkElement.search && !('instant' in linkElement.dataset)) {
    return
  }

  if (linkElement.hash && linkElement.pathname + linkElement.search == location.pathname + location.search) {
    return
  }

  if ('noInstant' in linkElement.dataset) {
    return
  }

  return true
}

function preload(url) {
  if (prefetches.has(url)) {
    return
  }

  const prefetcher = document.createElement('link')
  prefetcher.rel = 'prefetch'
  prefetcher.href = url
  document.head.appendChild(prefetcher)

  prefetches.add(url)
}@font-face {
	font-family: 'litespeedfont';
	src: url('fonts/litespeedfont.eot?rs8ttq');
	src: url('fonts/litespeedfont.eot?rs8ttq#iefix') format('embedded-opentype'),
		url('fonts/litespeedfont.ttf?rs8ttq') format('truetype'),
		url('fonts/litespeedfont.woff?rs8ttq') format('woff'),
		url('fonts/litespeedfont.svg?rs8ttq#litespeedfont') format('svg');
	font-weight: normal;
	font-style: normal;
}

#adminmenu #toplevel_page_lscache-settings .menu-icon-generic div.wp-menu-image:before,
#adminmenu #toplevel_page_litespeed .menu-icon-generic div.wp-menu-image:before,
.litespeed-top-toolbar .ab-icon::before {
	content: "\e900";
	font-family: 'litespeedfont' !important;
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	line-height: 1;

	/* Better Font Rendering =========== */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;

}

*[litespeed-accesskey]:before {
	content: '['attr(litespeed-accesskey) '] ';
}


/* =======================================
   		  UTILITIES - structure
======================================= */

.litespeed-quic-icon {
	background-image: url('../img/quic-cloud-icon-16x16.svg');
	background-repeat: no-repeat;
	width: 16px;
	height: 16px;
	vertical-align: middle;
	display: inline-block;
}


.litespeed-row {
	margin-top: 5px;
}

.litespeed-reset {
	width: initial;
}

.litespeed-inline {
	display: inline-block;
}

.litespeed-flex-container {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	height: auto;
}

.litespeed-flex-container>* {
	box-sizing: border-box;
}

.litespeed-flex-container .litespeed-icon-vertical-middle {
	margin-left: 0;
}

.litespeed-row-flex {
	display: inline-flex;
}

.litespeed-flex-wrap {
	flex-wrap: wrap;
}

.litespeed-width-1-2 {
	width: 45%;
	padding: 20px;
}

.litespeed-width-1-3 {
	width: 30%;
	padding: 25px;
}

.litespeed-width-7-10 {
	width: 65%;
	padding: 20px;
}

.litespeed-width-3-10 {
	width: 35%;
	padding: 20px;
}

@media screen and (max-width: 814px) {
	.litespeed-width-7-10 {
		width: 100%;
	}

	.litespeed-width-3-10 {
		width: 100%;
	}
}

.litespeed-hide {
	display: none !important;
}

.litespeed-right {
	float: right !important;
}

.litespeed-relative {
	position: relative;
}

.litespeed-align-center {
	margin-left: auto;
	margin-right: auto;
}

/* =======================================
   		  UTILITIES - spacing
======================================= */

.litespeed-left10 {
	margin-left: 10px !important;
}

.litespeed-left20 {
	margin-left: 20px !important;
}

.litespeed-right10 {
	margin-right: 10px !important;
}

.litespeed-right20 {
	margin-right: 20px !important;
}

.litespeed-right30 {
	margin-right: 30px !important;
}

.litespeed-right50 {
	margin-right: 50px !important;
}

.litespeed-top10 {
	margin-top: 10px !important;
}

.litespeed-top15 {
	margin-top: 15px !important;
}

.litespeed-top20 {
	margin-top: 20px !important;
}

.litespeed-top30 {
	margin-top: 30px !important;
}

.litespeed-margin-y5 {
	margin-top: 5px !important;
	margin-bottom: 5px !important;
}

.litespeed-margin-x5 {
	margin-left: 5px !important;
	margin-right: 5px !important;
}

.litespeed-wrap .litespeed-left20,
.litespeed-left20 {
	margin-left: 20px;
}

.litespeed-left50 {
	margin-left: 50px;
}

.litespeed-padding-space {
	padding: 5px 10px;
}

.litespeed-margin-bottom10 {
	margin-bottom: 10px !important;
}

.litespeed-margin-bottom20 {
	margin-bottom: 20px;
}

.litespeed-margin-bottom-remove {
	margin-bottom: 0px !important;
}

.litespeed-margin-top-remove {
	margin-top: 0px !important;
}

.litespeed-margin-left-remove {
	margin-left: 0px !important;
}

.litespeed-margin-y-remove {
	margin-top: 0px !important;
	margin-bottom: 0px !important;
}


.litespeed-empty-space-xlarge {
	margin-top: 8em;
}

.litespeed-empty-space-large {
	margin-top: 6em;
}

.litespeed-empty-space-medium {
	margin-top: 3em;
}

.litespeed-empty-space-small {
	margin-top: 2em;
}

.litespeed-empty-space-tiny {
	margin-top: 1em;
}


/* =======================================
   		UTILITIES - typography
======================================= */

.litespeed-text-jumbo {
	font-size: 3em !important;
}

.litespeed-text-large {
	font-size: .75em !important;
}

.litespeed-text-md {
	font-size: 1.2em;
}

.litespeed-text-right {
	text-align: right;
}

.litespeed-text-center {
	text-align: center;
}

.litespeed-text-bold {
	font-weight: 600;
}

/* =======================================
	  			COLORS
======================================= */

.litespeed-default {
	color: #a7a7a7 !important;
}

.litespeed-primary {
	color: #3366CC !important;
}

.litespeed-success {
	color: #73b38d !important;
}

.litespeed-warning {
	color: #FF8C00 !important;
}

.litespeed-danger {
	color: #dc3545 !important;
}

a.litespeed-danger:hover,
button.litespeed-danger:hover {
	color: #a00 !important;
}

.litespeed-text-success {
	color: #34b15d;
}

.litespeed-form-action {
	color: #1a9292 !important;
}

a.litespeed-form-action:hover,
button.litespeed-form-action:hover {
	color: #36b0af !important;
}

.litespeed-bg-default {
	background-color: #a7a7a7 !important;
}

.litespeed-bg-primary {
	background-color: #3366CC !important;
}

.litespeed-bg-success {
	background-color: #73b38d !important;
}

.litespeed-bg-warning {
	background-color: #FF8C00 !important;
}

.litespeed-bg-danger {
	background-color: #dc3545 !important;
}

.litespeed-bg-text-success {
	background-color: #34b15d;
}

/* =======================================
	  			LAYOUT
======================================= */

.litespeed-wrap {
	margin: 10px 20px 0 2px;
}

.litespeed-wrap .nav-tab-active {
	background: #fff;
	border-bottom-color: #fff;
}

.litespeed-wrap .nav-tab:focus:not(.nav-tab-active),
.litespeed-wrap .nav-tab:hover:not(.nav-tab-active) {
	background-color: #f1f1f1;
	color: #444;
}

.litespeed-body {
	background: #fff;
	border: 1px solid #e5e5e5;
	box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
	padding: 1px 20px 20px 20px;
}

.litespeed-header+.litespeed-body {
	border-top: none;
}

.litespeed-body table {
	border-collapse: collapse;
	width: 100%;
}

.litespeed-body .litespeed-width-auto {
	width: auto;
}

/* outside stripped table */
.litespeed-description {
	color: #666;
	font-size: 13px;
	margin: 1.5rem 0;
	max-width: 960px;
}

/* inside stripped table */
.litespeed-desc {
	font-size: 12px;
	font-weight: normal;
	color: #7a919e;
	margin: 10px 0;
	line-height: 1.7;
	max-width: 840px;
}

.litespeed-desc+.litespeed-desc {
	margin-top: -5px
}

td>.litespeed-desc:first-child {
	margin-top: 0px;
	line-height: 2.24;
}

.litespeed-h3 {
	line-height: 18px;
	color: #264d73;
	font-size: 18px;
	font-weight: 600;
	margin: 2px 0;
}

.litespeed-div {
	display: inline-block;
	min-width: 100px;
}

.litespeed-div .submit {
	margin: 5px;
	padding: 5px;
}

.litespeed-h1 {
	display: inline-block;
}

h3 .litespeed-learn-more {
	font-size: 12px;
	font-weight: normal;
	color: #7a919e;
	margin-left: 30px;
}

.litespeed-wrap code {
	color: #666;
	background-color: #dde9f5;
	border-radius: 3px;
	font-size: 11px;
	font-style: normal;
}

.litespeed-wrap ul {
	margin-left: 2em;
}

.litespeed-wrap i {
	font-size: 13px;
	line-height: 16px;
}

.litespeed-wrap .litespeed-desc i {
	font-size: 12px;
}

.litespeed-wrap p {
	margin: 1em 0;
}

.litespeed-wrap p.submit {
	margin-bottom: 0;
}

.litespeed-desc p {
	margin-left: 0;
}

.litespeed-title,
.litespeed-title-short {
	font-size: 18px;
	border-bottom: 1px solid #cccccc;
	margin: 2.5em 0px 1.5em 0;
	display: table;
	padding-right: 50px;
	padding-left: 3px;
	padding-bottom: 3px;

}

.litespeed-title .button {
	margin-left: 1rem;
	margin-bottom: 5px;
	vertical-align: middle;
}

.litespeed-title a .dashicons {
	/* vertical-align: text-bottom; */
}

.litespeed-title a,
.litespeed-title-short a {
	text-decoration: none;
}

.litespeed-title-short {
	padding-right: 20px;
}

.litespeed-title-section {
	margin: 2em -20px 12px -20px;
	padding: 12px 20px 12px 20px;
	border-bottom: 1px solid #eee;
	font-size: 1.2em;
	display: block;
	border-top: 1px solid #f1f1f1;
}

.litespeed-list li:before {
	content: '>';
	color: #cc3d6a;
}

.litespeed-wrap a.disabled {
	cursor: not-allowed;
	opacity: 0.5;
	text-decoration: none;
	color: #72777c;
}


/* =======================================
			LAYOUT - table
======================================= */

.litespeed-table {
	font-size: 14px;
}

.litespeed-body tbody>tr>th {
	padding-left: 20px;
}

.litespeed-body tbody th {
	vertical-align: top;
	text-align: left;
	padding: 18px 10px 20px 0;
	width: 200px;
	font-weight: 600;
}

.litespeed-body td {
	padding: 15px 10px;
	line-height: 1.3;
	vertical-align: middle;
}

.litespeed-body .widefat td input+p {
	margin-top: .8em;
}

.litespeed-body .striped>tbody>:nth-child(even) .notice {
	background-color: #f9f9f9;
	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, .05);
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	border-right: 1px solid #e5e5e5;

}

.litespeed-body .striped>tbody>:nth-child(even) .notice:first-child {
	margin-top: 0;
}

/* small table inside */
.litespeed-body .litespeed-vary-table {
	margin-top: -5px;
	width: 250px;
	margin-bottom: 20px;
}

.litespeed-body .litespeed-vary-table td {
	width: 50%;
	padding: 5px 0px;
}

.litespeed-table-compact td,
.litespeed-table-compact th {
	padding: 0.5rem 0.75rem;
}

/* =======================================
			LAYOUT - block
======================================= */

.litespeed-block,
.litespeed-block-tiny {
	border: 1px dotted #cccccc;
	border-radius: 5px;
	display: flex;
	flex-wrap: wrap;
	padding: 0.75rem 1.25rem;
	margin-bottom: 5px;
}

.litespeed-block-tiny {
	max-width: 670px;
}

.litespeed-col {
	flex: 0 0 30%;
	padding-right: 2rem;
}

.litespeed-col:last-child,
.litespeed-col-auto:last-child {
	padding-right: 0;
}

.litespeed-col-auto {
	padding-right: 2rem;
}

.litespeed-col-br {
	flex: 0 0 100%;
	border-top: 1px dotted #cccccc;
}

.litespeed-col-inc {
	display: inline-block;
	margin-top: 16px;
	min-width: 150px;
	font-weight: bold;
}

.litespeed-block h4:first-child,
.litespeed-block .litespeed-form-label:not(.litespeed-form-label--toggle):first-child {
	margin-top: 0.5rem;
}

.litespeed-block .litespeed-callout:last-child {
	margin-bottom: 0;
}

/* =======================================
			  CARDS LINKS
======================================= */

.litespeed-cards-wrapper,
.litespeed-panel-wrapper {
	display: flex;
	width: 100%;
	flex-flow: row wrap;
	justify-content: flex-start;
}

.litespeed-cards-wrapper {
	margin: -10px -15px -10px -15px;
}

.litespeed-panel {
	text-decoration: none;
	display: flex;
	justify-content: space-between;
	padding: 6px 8px 4px 5px;
	width: 322px;
	margin: 15px 5px 15px 15px;
	min-height: 75px;
	box-sizing: border-box;
	background: #f9fafc;
	transition: .25s;
}

.litespeed-panel:hover {
	border: 1px solid #6699cc;
	box-shadow: none;
}

.litespeed-panel-wrapper-icon {
	width: 25%;
	height: 100%;
}

[class*="litespeed-panel-icon-"] {
	background-size: contain;
	width: 60px;
	height: 60px;
	margin: 5px;
	background-repeat: no-repeat;
	display: inline-block;
}

.litespeed-panel-icon-all {
	background-image: url("../img/icons/all.svg");
}

.litespeed-panel-icon-revision {
	background-image: url("../img/icons/revision.svg");
}

.litespeed-panel-icon-auto_draft {
	background-image: url("../img/icons/auto_draft.svg");
}

.litespeed-panel-icon-trash_post {
	background-image: url("../img/icons/trash_post.svg");
}

.litespeed-panel-icon-spam_comment {
	background-image: url("../img/icons/spam_comment.svg");
}

.litespeed-panel-icon-trash_comment {
	background-image: url("../img/icons/trash_comment.svg");
}

.litespeed-panel-icon-trackback-pingback {
	background-image: url("../img/icons/trackback-pingback.svg");
}

.litespeed-panel-icon-expired_transient {
	background-image: url("../img/icons/expired_transient.svg");
}

.litespeed-panel-icon-all_transients {
	background-image: url("../img/icons/all_transients.svg");
}

.litespeed-panel-icon-all_cssjs {
	background-image: url("../img/icons/purge-cssjs.svg");
}

.litespeed-panel-icon-optimize_tables {
	background-image: url("../img/icons/optimize_tables.svg");
}

.litespeed-panel-icon-purge-front {
	background-image: url("../img/icons/purge-front.svg");
}

.litespeed-panel-icon-purge-pages {
	background-image: url("../img/icons/purge-pages.svg");
}

.litespeed-panel-icon-purge-cssjs {
	background-image: url("../img/icons/purge-cssjs.svg");
}

.litespeed-panel-icon-purge-object {
	background-image: url("../img/icons/purge-object.svg");
}

.litespeed-panel-icon-purge-opcache {
	background-image: url("../img/icons/purge-opcache.svg");
}

.litespeed-panel-icon-purge-all {
	background-image: url("../img/icons/purge-all.svg");
}

.litespeed-panel-icon-empty-cache {
	background-image: url("../img/icons/empty-cache.svg");
}

.litespeed-panel-icon-purge-403 {
	background-image: url("../img/icons/purge-403.svg");
}

.litespeed-panel-icon-purge-404 {
	background-image: url("../img/icons/purge-404.svg");
}

.litespeed-panel-icon-purge-500 {
	background-image: url("../img/icons/purge-500.svg");
}

.litespeed-panel-top-right-icon-cross {
	background-image: url("../img/icons/cross_icon.svg");
}

.litespeed-panel-top-right-icon-tick {
	background-image: url("../img/icons/success_icon.svg");
}

.litespeed-panel-content {
	width: 75%;
	height: 100%;
	margin-top: 7px;
}

.litespeed-panel-para {
	color: #264d73;
	font-size: 12px;
	line-height: 1.45;
}

.litespeed-panel .litespeed-h3 {
	font-size: 14px;
}

.litespeed-panel-counter {
	color: #3abfbf;
}

.litespeed-panel-counter-red {
	color: #cc3d6a;
}

.litespeed-panel-wrapper-top-right {
	width: 10%;
	height: 100%;
	text-align: right;
}

.litespeed-panel-top-right-icon-tick,
.litespeed-panel-top-right-icon-cross {
	background-size: contain;
	width: 20px;
	height: 20px;
	background-repeat: no-repeat;
	display: inline-block;
}

/* =======================================
	 BUTTONS
======================================= */

/* .litespeed-wrap .button{
	background:#fff;
} */

.litespeed-wrap .button-link {
	height: auto;
	line-height: inherit;
	font-size: inherit;
	box-shadow: none;
}

.litespeed-wrap .button-link:hover,
.litespeed-wrap .button-link:focus {
	box-shadow: none;
	background: none;
}

.litespeed .litespeed-btn-danger-bg,
.litespeed-wrap .litespeed-btn-danger-bg,
.litespeed-btn-danger-bg {
	background: #dc3545;
	color: #fff;
	border: 1px solid #cc3d6a;
	box-shadow: 0 1px 0 rgba(177, 93, 93, 0.5);
}

.litespeed .litespeed-btn-danger,
.litespeed-wrap .litespeed-btn-danger,
.litespeed-btn-danger {
	background: #fff;
	color: #cc3d6a;
	border: 1px solid #cc3d6a;
	box-shadow: 0 1px 0 rgba(177, 93, 93, 0.5);
}

.litespeed .litespeed-btn-danger:hover,
.litespeed-wrap .litespeed-btn-danger:hover,
.litespeed-btn-danger:hover {
	border-color: #ab244e;
	background: #cc3d6a;
	color: #fff;
}

.litespeed .litespeed-btn-warning,
.litespeed-wrap .litespeed-btn-warning,
.litespeed-btn-warning {
	background: #fff;
	color: #e59544;
	border: 1px solid #e59544;
	box-shadow: 0 1px 0 rgba(249, 166, 82, 0.55);
}

.litespeed .litespeed-btn-warning:hover,
.litespeed-wrap .litespeed-btn-warning:hover,
.litespeed-btn-warning:hover {
	border-color: #e59544;
	background: #e59544;
	color: #fff;
}

.litespeed .litespeed-btn-success,
.litespeed-wrap .litespeed-btn-success,
.litespeed-btn-success {
	background: #fff;
	color: #36b0b0;
	border: 1px solid #36b0b0;
	box-shadow: 0 1px 0 rgba(73, 160, 160, 0.55);
}

.litespeed .litespeed-btn-success:hover,
.litespeed-wrap .litespeed-btn-success:hover,
.litespeed-btn-success:hover {
	border-color: #36b0b0;
	background: #36b0b0;
	color: #fff;
}

.litespeed-wrap .button-primary {
	background: #528ac6;
	border-color: #538ac6 #2264ad #2264ad;
	color: #fff;
	box-shadow: 0 1px 0 #2264ad;
	text-shadow: 0 -1px 1px #2264ad, 1px 0 1px #2264ad, 0 1px 1px #2264ad, -1px 0 1px #2264ad;
}

.litespeed-wrap .button-primary:focus,
.litespeed-wrap .button-primary:hover {
	background: #5891ce;
	border-color: #2264ad;
	color: #fff;
}

.litespeed-wrap .button-primary:hover {
	box-shadow: 0 1px 0 #2264ad;
}

.litespeed-wrap .button-primary:focus {
	background: #5891ce;
	border-color: #2264ad;
	color: #fff;
	box-shadow: 0 1px 0 #0073aa, 0 0 2px 1px #33b3db;
}

.litespeed .litespeed-btn-primary,
.litespeed-wrap .litespeed-btn-primary,
.litespeed-btn-primary {
	color: #538ac6;
	border: 1px solid #538ac6;
	-moz-box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
	-webkit-box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
	box-shadow: 0 0 0 1px rgba(83, 138, 198, 0.25);
}

.litespeed .litespeed-btn-primary:hover,
.litespeed-wrap .litespeed-btn-primary:hover,
.litespeed-btn-primary:hover {
	background: #538ac6;
	border-color: #538ac6;
	color: #fff;
}

.litespeed-wrap .button:not(.litespeed-btn-large) .dashicons {
	position: relative;
	top: 0.125em;
}

.litespeed-wrap .button:not(:first-child) {
	margin-left: 5px;
}

.litespeed-wrap .button+.button {
	margin-left: 10px;
}

.litespeed-info-button {
	color: #c8c8c8;
	padding: 0;
	-webkit-appearance: none;
	border: none;
	background: none;
	vertical-align: middle;
	line-height: inherit;
	text-decoration: none;
}

.litespeed-info-button .dashicons {
	font-size: 16px;
	vertical-align: middle;
}

.litespeed-btn-pie {
	-webkit-appearance: none;
	background: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
	top: -0.125em;
}

/* =======================================
   BUTTONS - sizes
======================================= */

.litespeed-wrap .litespeed-btn-tiny {
	padding: 2px 8px;
	line-height: 1.5;
	height: auto;
}

.litespeed-wrap .litespeed-btn-mini {
	padding: 0 8px 1px;
	font-size: 12px;
	font-weight: 600;
	margin: 5px 0;
}

.litespeed-wrap .litespeed-btn-mini .dashicons.dashicons-image-rotate {
	padding-top: 3px;
	font-size: 18px;
}

.litespeed-wrap .litespeed-btn-mini .dashicons {
	padding-top: 2px;
}

.litespeed-wrap .litespeed-btn-large {
	font-size: 1.5em;
	padding: .75em 1.5em;
	margin: 0 .25em;
	height: auto;
}

.litespeed-wrap .litespeed-btn-large .dashicons {
	font-size: 1.25em;
	width: auto;
}


/* =======================================
	  SWITCH
======================================= */

.litespeed-switch {
	font-size: 14px;
	font-weight: 600;
	margin: 0 0 0;
	display: inline-flex;
	position: relative;
}

.litespeed-switch input:checked:active+label {
	box-shadow: 0 2px 0 rgba(27, 146, 146, 0.7), inset 0 2px 5px -3px rgba(0, 0, 0, .5);
}

.litespeed-switch input:checked+label {
	background-color: #36b0b0;
	color: #fff;
	border: 1px solid #36b0b0;
	box-shadow: 0 2px 0 #1b9292;
	z-index: 2;
	text-shadow: 0 -1px 1px #1b9292, 1px 0 1px #1b9292, 0 1px 1px #1b9292, -1px 0 1px #1b9292;
}

.litespeed-switch label {
	font-size: 14px;
	display: inline-block;
	min-width: 72px;
	background-color: #f9fafc;
	font-weight: 400;
	text-align: center;
	padding: 6px 12px 5px 12px;
	cursor: pointer;
	border: 1px solid #ccc;
	border-bottom: none;
	box-shadow: 0 2px 0 #ccc;
	position: relative;
}

.litespeed-switch label:not(:last-child) {
	margin-right: -1px;
}

.litespeed-switch label:last-child {
	border-top-right-radius: 3px;
	border-bottom-right-radius: 3px;
}

.litespeed-switch label:first-of-type {
	border-top-left-radius: 3px;
	border-bottom-left-radius: 3px;
}

.litespeed-switch input:hover+label {
	border-color: #1a9292;
	box-shadow: 0 2px 0 #1a9292;
	z-index: 2;
	color: #117171;

}

.litespeed-switch input:focus+label {
	color: #117171;
	box-shadow: 0 0px 0px 2px rgba(28, 138, 128, 0.85);
	border-color: transparent;
	z-index: 2;

}

.litespeed-switch input:focus+label+input+input:hover+label,
.litespeed-switch input:focus+label+input:hover+label {
	z-index: 1;
}

.litespeed-switch input:active+label {
	box-shadow: 0 2px 0 #1b9292, inset 0 2px 5px -3px rgba(0, 0, 0, .5);
}

.litespeed-switch input:checked:hover+label,
.litespeed-switch input:checked:focus+label {
	background-color: #36b0b0;
	color: #fff;


}

.litespeed-switch input {
	display: inline-block;
	position: absolute;
	z-index: -1;
	margin: 0;
}

.litespeed-cache-purgeby-text {
	margin: 0;
	display: inline-block;
}

/* =======================================
				TOGGLE
======================================= */

.litespeed-toggle-stack {
	display: flex;
	flex-direction: column;
}

.litespeed-toggle-stack .litespeed-toggle-wrapper {
	justify-content: space-between;
}

.litespeed-toggle-wrapper {
	display: flex;
	align-items: center;
}

.litespeed-toggle-wrapper+.litespeed-toggle-wrapper {
	margin-top: 0.75rem;
}

.litespeed-toggle {
	position: relative;
	overflow: hidden;
	min-width: 58px;
	height: 21px;
	margin-left: 1.2rem;
}

.litespeed-toggle-group {
	position: absolute;
	width: 200%;
	top: 0;
	bottom: 0;
	left: 0;
	transition: left 0.35s;
	-webkit-transition: left 0.35s;
	-moz-user-select: none;
	-webkit-user-select: none;
}

.litespeed-toggle-on {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 50%;
	margin: 0;
	border: 0;
	border-radius: 0;
}

.litespeed-toggle-on.litespeed-toggle-btn {
	padding-right: 24px;
}

.litespeed-toggle-off.litespeed-toggle-btn {
	padding-left: 24px;
}

.litespeed-toggle-handle {
	position: relative;
	margin: 0 auto;
	padding-top: 0px;
	padding-bottom: 0px;
	height: 100%;
	width: 0px;
	border-width: 0 1px;
}

.litespeed-toggle-off {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	right: 0;
	margin: 0;
	border: 0;
	border-radius: 0;
}

.litespeed-toggleoff .litespeed-toggle-group {
	left: -100%;
}

.litespeed-toggle-btn {
	display: inline-block;
	padding: 5px 10px;
	margin-bottom: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.42857143;
	text-align: center;
	white-space: nowrap;
	vertical-align: middle;
	cursor: pointer;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	background-image: none;
	border: 1px solid transparent;
	border-radius: 4px;
}

.litespeed-toggle-btn-primary {
	color: #fff;
	background-color: #36b0b0;
	border-color: #36b0b0;
}

.litespeed-toggle-btn-default {
	color: #333;
	background-color: #fff;
	border-color: #ccc;
}

.litespeed-toggle-btn-success:hover,
.litespeed-toggle-btn-success:focus,
.litespeed-toggle-btn-success:active,
.litespeed-toggle-btn-success.litespeed-toggle-active {
	color: #fff;
	background-color: #00bfbf;
	border-color: #6699cc;
}

.litespeed-toggle-btn-default:hover,
.litespeed-toggle-btn-default:focus,
.litespeed-toggle-btn-default:active,
.litespeed-toggle-btn-default.litespeed-toggle-active {
	color: #333;
	background-color: #e6e6e6;
	border-color: #adadad;
}

.litespeed-toggle-btn:active,
.litespeed-toggle-btn.litespeed-toggle-active {
	background-image: none;
	outline: 0;
	-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
	box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}

.litespeed-toggle-btn-default:active,
.litespeed-toggle-btn-default.litespeed-toggle-active {
	background-image: none;
}

/* =======================================
	LABEL/TAG
======================================= */
[class*="litespeed-label-"] {
	display: inline;
	padding: .2em .6em .3em;
	font-size: 75%;
	font-weight: bold;
	line-height: 1;
	color: #fff;
	text-align: center;
	white-space: nowrap;
	vertical-align: baseline;
	border-radius: .25em;
}

[class*="litespeed-label-"]:hover,
[class*="litespeed-label-"]:focus {
	color: #fff;
	text-decoration: none;
	cursor: pointer;
}

[class*="litespeed-label-"]:empty {
	display: none;
}

.litespeed-label-regular {
	font-size: 1em;
}

.litespeed-label-default {
	background-color: #777;
}

.litespeed-label-default[href]:hover,
.litespeed-label-default[href]:focus {
	background-color: #5e5e5e;
}

.litespeed-label-primary {
	background-color: #337ab7;
}

.litespeed-label-primary[href]:hover,
.litespeed-label-primary[href]:focus {
	background-color: #286090;
}

.litespeed-label-success {
	background-color: #5cb85c;
}

.litespeed-label-success[href]:hover,
.litespeed-label-success[href]:focus {
	background-color: #449d44;
}

.litespeed-label-info {
	background-color: #5bc0de;
}

.litespeed-label-info[href]:hover,
.litespeed-label-info[href]:focus {
	background-color: #31b0d5;
}

.litespeed-label-warning {
	background-color: #f0ad4e;
}

.litespeed-label-warning[href]:hover,
.litespeed-label-warning[href]:focus {
	background-color: #ec971f;
}

.litespeed-label-danger {
	background-color: #d9534f;
}

.litespeed-label-danger[href]:hover,
.litespeed-label-danger[href]:focus {
	background-color: #c9302c;
}

/* =======================================
	   SHELL
======================================= */
.litespeed-shell {
	width: 98%;
	background: #141414;
	margin: 20px auto 0 10px;
	box-shadow: 0 0 5px rgba(0, 0, 0, 0.4);
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
	position: relative;
	height: 224px;
}

.litespeed-shell-header {
	z-index: 999;
	position: absolute;
	top: 0;
	right: 0;
	width: 50px;
	height: 34px;
	padding: 5px 0;
}

.litespeed-shell-header-bg {
	opacity: 0.4;
	background-color: #CCCCCC;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	left: 0;
	z-index: 4;
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-top-radius: 3px;
}

.litespeed-shell-header-bar {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	height: 2px;
	background-color: #F48024;
}

.litespeed-shell-header-icon-container {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 29px;
	height: 34px;
	z-index: 6;
}

ul.litespeed-shell-body {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	overflow-y: scroll;
	margin: 0;
	padding: 5px;
	list-style: none;
	background: #141414;
	color: #45D40C;
	font: 0.8em 'Andale Mono', Consolas, 'Courier New';
	line-height: 1.6em;

	-webkit-border-bottom-right-radius: 3px;
	-webkit-border-bottom-left-radius: 3px;
	-moz-border-radius-bottomright: 3px;
	-moz-border-radius-bottomleft: 3px;
	border-bottom-right-radius: 3px;
	border-bottom-left-radius: 3px;

}

.litespeed-shell-body li:before {
	content: '>';
	position: absolute;
	left: 0;
	top: 0;
}

.litespeed-shell-body li {
	word-wrap: break-word;
	position: relative;
	padding: 0 0 0 15px;
	margin: 0;
}

.litespeed-widget-setting {
	background-color: #ecebdc;
	padding: 5px 14px;
	margin: 5px -15px;
}


/* =======================================
			CALLOUT / NOTICE
======================================= */

.litespeed-callout {
	margin: 1.5rem 0;

	border-right: 1px solid #e5e5e5;
	border-top: 1px solid #e5e5e5;
	border-bottom: 1px solid #e5e5e5;
	background: #f9f9f9;
}

.litespeed-callout h4:not(:last-child) {
	margin-bottom: 0.5rem;
	margin-top: 1em;
}

.litespeed-callout p {
	margin-left: 0;
}

.litespeed-callout ol,
.litespeed-callout ul {
	margin-left: 1em;
}

.litespeed-callout.notice-warning h4 {
	color: #e59544;
}

.litespeed-callout.notice-error h4 {
	color: #dc3232;
}

.litespeed-callout-bg {
	margin: 1.5rem 0;
	background: #f9f9f9;
	border-top: none;
	border-bottom: none;
	border-right: none;
}

/* =======================================
			TICK / CHECKBOX
======================================= */

.litespeed-tick-wrapper {
	margin-left: -5px;
}

.litespeed-tick {
	display: inline-block;
	/* min-width: 125px; */
	background: #f2f9ff;
	padding: 5px 0 5px 0px;
	border-radius: 3px;
	cursor: pointer;
	margin: 5px 5px 5px 0;
}

.litespeed-tick-list .litespeed-tick {
	display: block;
	margin-bottom: 3px;
	margin-top: 0;
	background: none;
}

.litespeed-tick-list .litespeed-tick input[type="checkbox"] {
	margin-left: 0;
}

.litespeed-tick-list .litespeed-tick label {
	color: inherit;
}


.litespeed-tick input[type="checkbox"] {
	height: 18px;
	width: 18px;
	vertical-align: middle;
	margin: 0 10px;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	-webkit-border-radius: 3px;
	border-radius: 3px;

	cursor: pointer;
}

.litespeed-tick input[type="checkbox"]:not(:disabled):hover {
	border-color: #538ac6;

}

.litespeed-tick input[type="checkbox"]:active:not(:disabled) {
	border-color: #538ac6;
}

.litespeed-tick input[type="checkbox"]:focus {
	outline: none;
}

.litespeed-tick input[type="checkbox"]:checked {
	border-color: #538ac6;
	background-color: #538ac6;
	-moz-box-shadow: none;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.litespeed-tick input[type="checkbox"]:checked:before {
	content: '';
	display: block;
	width: 5px;
	height: 11px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	margin-left: 5px;
	margin-top: -1px;
	cursor: pointer;
}

.litespeed-tick label {
	padding: 2px 0px 2px 0;
	font-size: 14px;
	color: #264d73;
}

.litespeed-tick label:hover {
	min-width: 115px;
	color: #6699cc;
}

/* =======================================
			RADIO - vertical
======================================= */

.litespeed-radio-row {
	margin-bottom: 12px;
	position: relative;
	padding-left: 1.5rem;
}

.litespeed-radio-row input[type=radio] {
	margin-top: 0;
	margin-bottom: 0;
	position: absolute;
	line-height: 1;
	left: 0;
	top: 0.7em;
	transform: translateY(-50%);
}

.litespeed-radio-row label {
	vertical-align: text-bottom;
	line-height: 1.4;
}

/* =======================================
		   FORM - layout
======================================= */

.litespeed-wrap .litespeed-float-submit {
	position: absolute;
	right: 0;
	top: -5px;
	margin-top: 0;
}

.rtl .litespeed-wrap .litespeed-float-submit {
	left: 10px;
	right: unset;
}

.litespeed-wrap .litespeed-float-resetbtn {
	position: absolute;
	right: 0;
	bottom: 20px;
}

.rtl .litespeed-wrap .litespeed-float-resetbtn {
	left: 10px;
	right: unset;
}

/* =======================================
		  FORM - utilities
======================================= */

.litespeed .litespeed-input-large {
	font-size: 20px;
}

.litespeed-input-long {
	width: 87%;
}

.litespeed-input-short2 {
	width: 150px;
}

.litespeed-input-short {
	width: 45px;
}

/* =======================================
		   FORM - elements
======================================= */

.litespeed-form-label {
	font-size: 1em;
	margin: 0.65rem 0;
	display: block;
	font-weight: 600;
}

.litespeed-form-label--toggle {
	margin: 0;
	display: inline-block;
	min-width: 110px;
}

input.litespeed-input[type="file"] {
	padding: 9px;
	min-width: 500px;
	border: 1px solid #ddd;
	box-shadow: inset 0 1px 2px rgba(0, 0, 0, .07);
	background-color: #fff;
	color: #32373c;
	outline: 0;
	transition: 50ms border-color ease-in-out;
}

.litespeed-body .litespeed-textarea-success {
	border-color: #6699cc;
}

input.litespeed-input-success {
	border-color: #28a745;
}

input.litespeed-input-warning {
	border-color: #e59544;
}

.litespeed-textarea {
	width: 60%;
}

.litespeed-textarea-recommended {
	display: flex;
	margin-top: -5px;
}

.litespeed-textarea-recommended .litespeed-desc {
	margin: 0;
}

.litespeed-textarea-recommended>div:first-child {
	margin-top: 1.7em;
	font-size: 12px;
	margin-right: 25px;
}

.litespeed-wrap .litespeed-collection-button {
	text-decoration: none;
	min-width: 30px;
	text-align: center;
}

.litespeed-collection-button[data-action="add"] {
	margin-top: -5px;
	margin-left: -5px;
}

.litespeed-collection-button .dashicons {
	vertical-align: baseline;
}

.litespeed-wrap .button:not(.litespeed-btn-large).litespeed-form-action .dashicons {
	font-size: 1.2em;
	vertical-align: middle;
	top: 0;
}

@media screen and (max-width: 1023px) and (min-width: 681px) {}

@media screen and (max-width: 680px) {

	.litespeed-body tbody>tr>th {
		display: block;
		padding: 18px 0 5px 12px;
	}

	.litespeed-wrap .litespeed-float-submit {
		display: none;
	}

	.litespeed-body {
		padding: 1px 10px 20px 15px;
	}

	.litespeed-body .regular-text {
		width: 100%;
	}

	.litespeed-textarea-recommended {
		flex-direction: column;
	}

	.litespeed-textarea-recommended>div:first-child {
		margin-bottom: 1.7em;
		margin-top: 0;
	}
}

/* =======================================
		   ENTERPRISE NOTICE
======================================= */

.litespeed-ent-notice {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	background-color: #333;
	z-index: 999;
	opacity: 0.8;
	text-align: center;
	font-size: 3rem;
	color: #1865c5;
}

.litespeed-ent-notice-desc {
	position: relative;
	top: 30%;
	transform: rotate(-20deg);
	text-shadow: 2px 2px 4px #000000;
}

/* =======================================
			  PROMO BANNER
======================================= */

.litespeed-banner-promo,
.litespeed-banner-promo-full {
	display: flex;
	padding: 0px;
}

.litespeed-banner-promo-full {
	margin: 0px;
	padding: 0px;
}

.litespeed-banner-promo-logo {
	background-image: url(../img/lscwp-logo_90x90.png);
	background-size: contain;
	width: 90px;
	background-repeat: no-repeat;
	display: inline-block;
}

.litespeed-banner-promo-full .litespeed-banner-promo-logo {
	margin: 0px;
	width: 90px;
	height: 90px;
}

.litespeed-banner-promo-content {
	margin-left: 25px;
}

.litespeed-banner-promo-full .litespeed-banner-promo-content {
	width: 75%;
}

.litespeed-banner-promo-content h1 {
	font-weight: 600;
	color: #538ac6;
	margin-top: 10px;
}

.litespeed-banner-title {
	font-size: 1.3em;
	margin: 8px 0px 5px 0px;
}

.litespeed-banner-promo-slacklogo {
	background-image: url("../img/slack-logo.png");
	background-size: contain;
	width: 75px;
	height: 75px;
	background-repeat: no-repeat;
	display: inline-block;
	padding: 0px;
	flex: 0 0 5%;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-line1 {
	font-size: 18px;
	margin-top: 0px;
	line-height: 21px;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-textlink {
	color: #e59544;
	text-decoration: none;
}

.litespeed-banner-promo .litespeed-banner-promo-slack-textlink:hover {
	opacity: 0.8;
}

.litespeed-banner-promo-slack-line2 {
	font-size: 15px;
	margin: 0px;
	line-height: .75em;
}

.litespeed-banner-promo-slack-link {
	color: #888888;
}

a.litespeed-btn-xs.litespeed-banner-promo-slack-btn {
	margin: 0px 5px;
}

/* =======================================
			  PROMO BANNER - QC
======================================= */

.litespeed-banner-promo-qc {
	display: flex;
}

.litespeed-banner-promo-qc h2 {
	line-height: 1.4;
}

.litespeed-banner-promo-qc-content {
	display: flex;
	align-items: center;
}

.litespeed-banner-promo-qc-description {
	flex-basis: 50%;
	padding-right: 2rem;
}

.litespeed-banner-promo-qc-description p {
	font-size: 14px;
}

.litespeed-banner-promo-qc-description .button {
	margin-right: 1.5rem;
}

.litespeed-tweet-preview {
	border-radius: 5px;
	line-height: 1.3125;
	box-shadow: 1px 1px 0.5em rgba(0, 0, 0, 0.3);
	margin: 0.5em 1em 1em 0;
	padding: 1em;
	max-width: 480px;
	display: flex;
}

.litespeed-tweet-preview:after {
	content: '';
	display: block;
	clear: both;
}

.litespeed-tweet-preview p:first-child {
	margin-top: 0;
}

.litespeed-tweet-preview-title {
	color: #777;
	margin-top: 0.9em;
	font-weight: normal;
	font-size: 12px;
	margin-bottom: 0;
	margin-top: 0.9em;
}

.litespeed-tweet-text {
	font: 14px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, "Helvetica Neue", sans-serif;
	line-height: 1.3125;
}

.litespeed-tweet-cta {
	text-align: right;
	margin-top: 1em;
}


.litespeed-tweet-cta a {
	background-color: #1DA1F2;
	line-height: 1.3125;
	color: #fff;
	font-weight: bold;
	display: inline-flex;
	padding: 0.55em 1em;
	font-size: 14px;
	border-radius: 99em;
	text-decoration: none;
}

.litespeed-tweet-cta a:hover {
	background-color: #1E98E1;
}

.litespeed-tweet-cta a svg {
	width: 16px;
	height: 18px;
	margin-right: 0.5em;
}

.litespeed-tweet-cta a svg path {
	fill: currentColor;
}

.litespeed-tweet-img {
	width: calc(240px + 1rem);
	padding-right: 1rem;
	box-sizing: border-box;
}

.litespeed-tweet-img img {
	max-width: 100%;
	vertical-align: middle;
}

.litespeed-tweet-img+p {
	margin-top: 0;
}

/* =======================================
		admin -> media lib icon
======================================= */

.litespeed-media-href {
	display: inline-table;
}

[class*="litespeed-icon-media-"] {
	background-size: contain;
	width: 25px;
	height: 25px;
	vertical-align: middle;
	margin: 0;
	background-repeat: no-repeat;
	display: inline-block;
}

[class*="litespeed-icon-media-"]:hover {
	opacity: 0.7;
}

.litespeed-icon-media-webp {
	background-image: url("../img/icons/img_webp.svg");
}

.litespeed-icon-media-webp-disabled {
	background-image: url("../img/icons/img_webp_disabled.svg");
}

.litespeed-icon-media-optm {
	background-image: url("../img/icons/img_optm.svg");
}

.litespeed-icon-media-optm-disabled {
	background-image: url("../img/icons/img_optm_disabled.svg");
}

p.litespeed-media-p {
	margin-bottom: 1px !important;
}

p.litespeed-txt-webp {
	color: #83b04a;
}

p.litespeed-txt-ori {
	color: #5967b3;
}

p.litespeed-txt-disabled {
	color: #ced2d9;
}

.litespeed-media-svg {
	vertical-align: middle;
	margin: 5px;
	width: 25px;
	height: auto;
}

@keyframes litespeed-circle-chart-fill {
	to {
		stroke-dasharray: 0 100;
	}
}

/* =======================================
			 PIE chart
======================================= */

.litespeed-pie {
	vertical-align: middle;
	margin: 5px 5px 5px 0;
}


circle.litespeed-pie_bg {
	stroke: #efefef;
	stroke-width: 2;
	fill: none;
}

circle.litespeed-pie_circle {
	animation: litespeed-circle-chart-fill 2s reverse;
	transform: rotate(-90deg);
	transform-origin: center;

	animation: litespeed-pie-fill 2s reverse;
	/* 1 */
	stroke: #28a745;
	stroke-width: 2;
	stroke-linecap: round;
	fill: none;
}


.litespeed-pie.litespeed-pie-tiny {
	margin: 0 2px 0 0;
}

.litespeed-pie.litespeed-pie-tiny text {
	font-weight: bold;
	fill: #828282;

}

.litespeed-pie.litespeed-pie-tiny circle {
	stroke-linecap: initial;
}

.litespeed-pie-tiny circle.litespeed-pie_bg,
.litespeed-pie-tiny circle.litespeed-pie_circle {
	stroke-width: 3;
}

.litespeed-pie-tiny circle.litespeed-pie_bg {
	stroke: #eee;
}

.litespeed-pie-success circle.litespeed-pie_circle {
	stroke: #28a745;
}

.litespeed-pie-warning circle.litespeed-pie_circle {
	stroke: #e67700;
}

.litespeed-pie-danger circle.litespeed-pie_circle {
	stroke: #c7221f;
}

g.litespeed-pie_info text {
	dominant-baseline: central;
	text-anchor: middle;
	font-size: 11px;
}

.litespeed-promo-score g.litespeed-pie_info text {
	font-size: 14px;
	font-weight: 600;
}

.litespeed-pie-success g.litespeed-pie_info text {
	fill: #28a745;
}

.litespeed-pie-warning g.litespeed-pie_info text {
	fill: #e67700;
}

.litespeed-pie-danger g.litespeed-pie_info text {
	fill: #c7221f;
}

g.litespeed-pie_info .litespeed-pie-done {
	fill: #28a745;
	font-size: 15px;
}

/* =======================================
		VIEW - multiple cdn mapping
======================================= */

[data-litespeed-cdn-mapping]:first-child [data-litespeed-cdn-mapping-del] {
	display: none;
}

.litespeed-cdn-mapping-col1 {
	padding-right: 2rem;
	max-width: 35%;
}

.litespeed-cdn-mapping-col1 .litespeed-input-long {
	width: 100%;
}

.litespeed-cdn-mapping-col2 {
	padding-top: 0.25rem;
}

.litespeed-cdn-mapping-col1 label {
	position: relative;
}

[data-litespeed-cdn-mapping-del] {
	position: absolute;
	right: -6px;
	top: -6px;
}

/* =======================================
		VIEW - crawler
======================================= */

.litespeed-crawler-curr {
	vertical-align: middle;
	height: 20px;
	margin-left: 10px;
}

#cookie_crawler>p:first-child {
	margin-top: 5px;
}

/* =======================================
			PROGRESS BAR
======================================= */

.litespeed-progress-bar {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	color: #fff;
	text-align: center;
	background-color: #007bff;
	transition: width .6s ease;
}

.litespeed-progress-bar-yellow {
	background-color: #fbe100;
}

.litespeed-progress {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	height: 12px;
	overflow: hidden;
	font-size: .75rem;
	background-color: #e9ecef;
	border: 1px solid #dddddd;
	border-radius: 8px;
	width: 75%;
	margin: 5em 1em 1.5em 1em !important;
}

/* =======================================
		PROGRESS BAR - modal
======================================= */

.litespeed-modal {
	margin-top: -8px;
}

.litespeed-modal .litespeed-progress {
	margin-left: -8px;
	margin-right: -8px;
}

/* =======================================
		   		GUIDANCE
======================================= */

.litespeed-guide {
	border: 1px solid #73b38d;
	max-width: 50%;
	padding: 20px;
}

.litespeed-guide h2 {
	color: #73b38d;
	border-bottom: 1px solid #73b38d;
	display: table;
	padding-right: 50px;
	padding-left: 3px;
	padding-bottom: 3px;
}

.litespeed-guide li {
	font-size: 15px;
	line-height: 30px;
	margin: 10px 10px 10px 16px;
}

.litespeed-guide li.litespeed-guide-done:before {
	content: '\2713';
	font-size: 26px;
	color: #73b38d;
	margin-left: -37px;
	margin-right: 18px;
	opacity: 1;
}

.litespeed-guide li.litespeed-guide-done {
	opacity: .9;
}


/* =======================================
		VIEW - image optimization
======================================= */

.litespeed-image-optim-summary-wrapper {
	padding: 0;
}


.litespeed-cache_page_litespeed-img_optm .nav-tab-wrapper {
	border-bottom: none;
	position: relative;
	z-index: 2;
}

.litespeed-cache_page_litespeed-img_optm .litespeed-body {
	box-shadow: none;
	border: none;
	background: none;
	padding: 0;
}

.litespeed-cache_page_litespeed-img_optm [data-litespeed-layout]:not([data-litespeed-layout='summary']) {
	background: #fff;
	border: 1px solid #e5e5e5;
	box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
	padding: 1px 20px 20px 20px;
}

.litespeed-column-secondary {
	background: #f9fafc;
}

.litespeed-column-with-boxes>div:first-child {
	padding-right: 25px;
}

.litespeed-column-with-boxes>div:last-child {
	background: #f1f1f1;
	padding-top: 0;
	padding-right: 0;
	padding-left: 0;
}

.litespeed-column-with-boxes>div:last-child .litespeed-postbox:last-child {
	margin-bottom: 0;
}

.litespeed-image-optim-summary {
	box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
	position: relative;
	padding: 1px 20px 20px 20px;
	background: #fff;
	border: 1px solid #e5e5e5;
}

.litespeed-image-optim-summary-footer {
	border-top: 1px solid #efefef;
	background: #f9f9f9;
	padding: 20px;
	margin: 20px -20px -20px;
}

.litespeed-help-btn-icon {
	text-decoration: none;
	margin-left: 10px;
	color: #c8c8c8;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container {
	align-items: center;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container:not(:last-child) {
	margin-bottom: 0.65em;
}

.litespeed-postbox-imgopt-info .litespeed-flex-container p:first-child {
	margin-top: 0;
}

.litespeed-image-optim-summary>h3:first-child {
	margin-top: 1.6em;
	font-size: 1.2em;
}

.litespeed-image-optim-summary>h3:first-child .litespeed-quic-icon {
	width: 1.2em;
	height: 1.4em;
	background-size: contain;
	margin-right: 0.2rem;
}

.litespeed-img-optim-actions {
	margin-top: 1.65em;
	display: flex;
	align-items: flex-end;
}

.litespeed-img-optim-actions .button-primary {
	font-size: 1.2em;
	margin-right: 1em;
	padding: 0.35em 0.85em;
	min-width: 210px;
	text-align: center;
}

@media screen and (max-width: 1079px) {
	.litespeed-postbox-imgopt-info svg {
		height: 50px;
		width: 50px;
	}
}

@media screen and (max-width: 814px) {
	.litespeed-column-with-boxes>div:first-child {
		padding-right: 0;
		margin-bottom: 1rem;
	}
}

/* =======================================
	VIEW - image optm media row
======================================= */

.imgoptm.column-imgoptm a[data-balloon-pos] {
	border-bottom: 1px dashed;
}

.imgoptm.column-imgoptm p {
	margin-bottom: 0.25em;
	margin-top: 0;
}

.imgoptm.column-imgoptm p+.row-actions {
	margin-top: 0.5em;
}

.fixed .column-lqip {
	width: 6rem;
}

.litespeed-media-lqip img {
	max-width: 62px;
	max-height: 62px;
}

.litespeed-media-href {
	font-size: 12px;
}

/* =======================================
			VIEW - dashboard
======================================= */

.litespeed-dashboard-group {
	margin-bottom: 1rem;
}

.litespeed-dashboard-group>.litespeed-flex-container {
	margin: 0 -10px;
	min-width: 100%;
	width: auto;
}

.litespeed-dashboard .litespeed-postbox {
	margin: 10px;

}

.litespeed-dashboard-title a {
	text-decoration: none;
	margin-left: 0.25rem;
}

.litespeed-dashboard-header {
	display: flex;
	align-items: center;
}

.litespeed-dashboard-header:first-child {
	margin-top: 1.5rem;
}

.litespeed-dashboard-header hr {
	align-self: center;
	flex-grow: 1;
	margin-left: 15px;
	margin-right: 15px;
}

.litespeed-dashboard-header hr:last-child {
	margin-right: 0;
}

.litespeed-dashboard-header .litespeed-learn-more {
	font-weight: normal;
	text-decoration: none;
	margin-top: -2px;
	color: #5e7380;
}

.litespeed-dashboard-stats h3 {
	text-transform: uppercase;
	font-size: 12px;
	font-weight: normal;
	margin-bottom: 0;
	margin-top: 1.2em;
	color: #777;
}

.litespeed-dashboard-stats h3+p {
	margin-top: 0;
	margin-bottom: 0;
}

.litespeed-dashboard-stats .litespeed-desc {
	color: #777;
}

.litespeed-dashboard-stats p strong {
	font-size: 2em;
	font-weight: normal;
	margin-right: 5px;
}

.litespeed-dashboard-stats-wrapper {
	display: flex;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox {
	margin: 0;
	min-width: 20%;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox .inside .litespeed-title,
.litespeed-dashboard-group .litespeed-postbox .inside .litespeed-title {
	font-size: 14px;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:last-child) {
	margin-right: -1px;
}

.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:first-child) {
	border-left-color: #f9f9f9;
}

.litespeed-dashboard-stats-wrapper .litespeed-dashboard-stats p strong {
	font-size: 1.4rem;
}

.litespeed-dashboard-stats-wrapper .litespeed-pie {
	width: 60px;
	height: 60px;
}

.litespeed-dashboard-stats-wrapper .litespeed-flex-container+p:not(:last-child) {
	margin-bottom: 0.55em;
}

.litespeed-dashboard-stats-payg {
	color: #777;
}

.litespeed-dashboard-stats-payg strong {
	color: #444;
}

.postbox .inside>p.litespeed-dashboard-stats-payg {
	margin-top: 1.35em;
}

.postbox .inside>p.litespeed-dashboard-stats-payg:last-child {

	margin-bottom: -5px !important;
}

.litespeed-postbox p.litespeed-dashboard-stats-total {
	padding: 0.75em 20px 0 20px;
	border-top: 1px dashed #eee;
	margin-top: 0.55em;
	margin-left: -20px;
	margin-right: -20px;
	margin-bottom: -0.55em !important;
}

.litespeed-dashboard-group .litespeed-postbox {
	width: calc(25% - 20px);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.litespeed-dashboard-group .litespeed-postbox-double {
	min-width: calc(50% - 20px);
	display: flex;
	justify-content: space-between;
}

.litespeed-postbox-double-content {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.litespeed-postbox-double-content .litespeed-postbox-double-col {
	width: 50%;
}

.litespeed-postbox-double-content .litespeed-postbox-double-col:nth-child(2) {
	padding-left: 10px;
}

.litespeed-dashboard-group hr {
	margin: 1.5rem 0 0.75rem 0;
}

.litespeed-postbox .litespeed-postbox-refresh {
	text-decoration: none;
	color: #36b0b0;
	line-height: 1;
	vertical-align: top;
	margin-left: 0.5rem;
	margin-bottom: 0;
}

.litespeed-postbox .litespeed-postbox-refresh.button .dashicons {
	font-size: 22px;
	top: 0.05em;
}

.litespeed-postbox p:last-child {
	margin-bottom: 0;
}

.litespeed-label-dashboard {
	font-size: 0.92em;
	padding: .3em .6em .35em .6em;
	font-weight: normal;
	display: inline-block;
	margin-left: .2em;
	min-width: 2em;
}

.litespeed-label-dashboard:first-child {
	margin-left: 0;
	margin-right: .35em;
}

.litespeed-postbox .inside {
	padding: 0 20px 5px;
}

.litespeed-postbox .inside .litespeed-title {
	margin: 0 -20px 12px -20px;
	padding: 0px 20px 7px 20px;
	border-bottom: 1px solid #eee;
	font-size: 1.2em;
	display: block;
}

.litespeed-postbox .inside.litespeed-postbox-footer {
	border-top: 1px solid #efefef;
	background: #f9f9f9;
	padding: 20px;
	margin-bottom: 0px;
	margin-top: 0;
}

.litespeed-postbox .inside.litespeed-postbox-footer--compact {
	padding: 7px 20px 8px 20px;
	font-size: 12px;
}


.litespeed-postbox-imgopt .litespeed-pie {
	width: 55px;
	height: 55px;
}

.litespeed-postbox-imgopt .litespeed-flex-container {
	align-items: center;
	margin-bottom: 10px;
}

.litespeed-postbox-imgopt .litespeed-flex-container .litespeed-icon-vertical-middle+div h3 {
	margin-top: 0;
}

.litespeed-postbox-imgopt .litespeed-flex-container .litespeed-icon-vertical-middle+div p {
	line-height: 1.2;
}

.litespeed-postbox-imgopt .litespeed-postbox-double-col:last-child>*:first-child {
	margin-top: 7px;
}

.litespeed-postbox-pagespeed p:first-child {
	margin-top: 0;
	margin-bottom: 0;
}

.litespeed-postbox-score-improve {
	line-height: 45px;
	margin-top: 7px;
	font-size: 42px;
}

.litespeed-postbox-pagespeed .litespeed-padding-space:first-child {
	padding-left: 5px;
	padding-right: 5px;
}

.litespeed-link-with-icon {
	text-decoration: underline;
	margin-right: 0.25em;
}

.litespeed-link-with-icon .dashicons {
	vertical-align: baseline;
	position: relative;
	top: 0.1em;
	font-size: 1em;
	text-decoration: none;
	width: auto;
	margin-right: 0.5em;
}

.litespeed-link-with-icon.litespeed-icon-right .dashicons {
	margin-left: 0.5em;
	margin-right: 0;
}

.litespeed-links-group:not(:last-child) {
	margin-bottom: 1em;
}

.litespeed-links-group>span:not(:last-child):after {
	content: '|';
	margin: 0 10px;
	color: #ddd;
	font-size: 13px;
}

.litespeed-wrap p.litespeed-qc-dashboard-link {
	margin-left: 1rem;
}

.litespeed-right.litespeed-qc-dashboard-link .dashicons {
	margin-left: 0.5em;
	margin-right: 0;
}

.litespeed-score-col {
	flex-grow: 1;
	padding-right: 15px;
}

.litespeed-score-col .litespeed-text-md {
	font-size: 1.35rem;
}

.litespeed-score-col.litespeed-score-col--imp {
	text-align: right;
	padding-right: 0;
}

.litespeed-score-col--imp .litespeed-text-jumbo {
	line-height: 1;
}

span[data-balloon-pos] {
	border-bottom: 1px dashed;
}

span[aria-label][data-balloon-pos] {
	cursor: default;
}

@media screen and (max-width: 1400px) and (min-width: 1024px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		flex-grow: 1;
	}

	.litespeed-postbox .inside {
		padding: 0 15px 5px;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: calc(33.3333% - 20px);
	}

	.litespeed-dashboard-group .litespeed-postbox-double {
		min-width: calc(66.6666% - 20px);
	}
}

@media screen and (max-width: 1023px) {

	.litespeed-dashboard-stats-wrapper {
		flex-wrap: wrap;
	}

	.litespeed-dashboard-stats-wrapper .litespeed-postbox:not(:first-child) {
		border-left-color: #ccd0d4;
	}

	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		margin-top: -1px;
		min-width: calc(33.3333% - 1px);
	}

	.litespeed-postbox .inside {
		padding: 0 15px 5px;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: calc(50% - 20px);
	}

	.litespeed-dashboard-group .litespeed-postbox-double {
		min-width: calc(100% - 20px);
	}
}

@media screen and (max-width: 719px) and (min-width: 480px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		margin-top: -1px;
		min-width: calc(50% - 2px);
	}
}

@media screen and (max-width: 569px) {
	.litespeed-dashboard-stats-wrapper .litespeed-postbox {
		min-width: 100%;
	}

	.litespeed-dashboard-group .litespeed-postbox {
		width: 100%;
	}

	.litespeed-postbox-double-content .litespeed-postbox-double-col {
		width: 100%;
	}

	.litespeed-postbox-double-content {
		flex-wrap: wrap;
	}
}

/********************************* todo *******************************/


/* image optimize page */


.litespeed-column-java {
	background: #5CADAD !important;
}

.litespeed-text-shipgrey {
	color: #535342 !important;
}

.litespeed-text-dimgray {
	color: #666666 !important;
}

.litespeed-text-grey {
	color: #999999 !important;
}

.litespeed-text-whisper {
	color: #E6E6E6 !important;
}

.litespeed-text-malibu {
	color: #5CBDDE !important;
}

.litespeed-text-morningglory {
	color: #99CCCC !important;
}

.litespeed-text-fern {
	color: #66CC66 !important;
}

.litespeed-text-persiangreen {
	color: #009999 !important;
}

.litespeed-text-lead {
	font-size: 16px;
}

.litespeed-text-small {
	font-size: 12px;
	line-height: 14px;
}

.litespeed-text-thin {
	font-weight: 100;
}

.litespeed-contrast {
	color: white;
}

.litespeed-hr-dotted {
	border: 1px dotted #eeeeee;
}

.litespeed-hr {
	padding-bottom: 1.5em;
	border-bottom: .5px solid #97CACA;
}

.litespeed-hr-with-space {
	border-top: 1px solid #eeeeee;
	margin: 2em 0;
	border-bottom: none;
}

.litespeed-icon-vertical-middle {
	vertical-align: middle;
	display: inline-block;
	margin: 0px 10px 0px 10px;
}


.litespeed-column-java .litespeed-danger {
	color: #c1c53a !important;
}

.litespeed-column-java .litespeed-desc {
	color: #bfbfbf;
}

.litespeed-column-java code {
	color: #c2f5bf;
	background-color: #238888;
}

.litespeed-column-java .litespeed-title {
	color: white;
}

.litespeed-width-7-10 .litespeed-progress {
	margin: 1em;
}

.litespeed-refresh:after {
	content: "⟳";
	width: 20px;
	height: 20px;
	color: #40ad3a;
}

.litespeed-column-java .litespeed-refresh:after {
	color: #23ec17;
}

.litespeed-refresh:hover:after,
.litespeed-refresh:focus:after,
.litespeed-refresh:focus:active:after {
	color: #7ffbfb;
}

.litespeed-width-3-10 .litespeed-title {
	margin: 18px 0;
}

.litespeed-silence {
	color: #B1B1B1;
}

.litespeed-column-java .litespeed-congratulate {
	color: #c2f5bf;
	font-size: 20px;
}

.litespeed-light-code .litespeed-silence code {
	background-color: #f0f5fb;
}

.litespeed-column-java .litespeed-btn-danger {
	color: #f194a8;
	border-color: #f194a8;
}

.litespeed-column-java .litespeed-btn-danger:hover {
	background: #f194a8;
}

.litespeed-column-java svg.litespeed-pie circle.litespeed-pie_bg {
	stroke: #e8efe7;
}

.litespeed-column-java svg.litespeed-pie circle.litespeed-pie_circle {
	stroke: #97CACA;
}

.litespeed-column-java svg .litespeed-pie_info text {
	fill: #F5FFEB;
}

.litespeed-column-java svg g.litespeed-pie_info .litespeed-pie-done {
	fill: #a5ffa0;
}

.litespeed-column-java a {
	color: #eaf8ff;
}

.litespeed-column-java a:hover {
	color: #ffffff;
}

.litespeed-progress-bar-blue {
	background-color: #33ADFF;
}

.litespeed-status-current {
	font-size: 3.5em;
	margin: 1.25em 0em .75em 0em;
}

/* .litespeed-title, .litespeed-title-short {
	margin: 18px 0;
	border-bottom: 1px solid #C1D5EA;
	margin: 2.5em 0px 1.5em 0 !important;
} */

.litespeed-column-java .litespeed-desc {
	color: #CAE4E4;
}

.litespeed-column-java .litespeed-warning {
	color: #FFD597 !important;
}

.litespeed-column-java .litespeed-btn-success {
	color: #DDF1E4;
	border: 1px solid #33AD5C;
	background: #33AD5C;
}

.litespeed-column-java .litespeed-btn-success:hover {
	color: #FFFFFF;
	border: 1px solid #7DCA97;
	background: #009933;
}

.litespeed-column-java .litespeed-btn-warning {
	color: #FFF1DD;
	border: 1px solid #FF9933;
	background-color: #FF9933;
}

.litespeed-column-java .litespeed-btn-warning:hover {
	color: #FFFFFF;
	border-color: #FFCA7D;
	background: #FF9900;
}

.litespeed-column-java .litespeed-btn-danger {
	color: #FFEADD !important;
	border: 1px solid #FF6600 !important;
	background: #FF5C5C;
}

.litespeed-column-java .litespeed-btn-danger:hover {
	color: #FFFFFF;
	border: 1px solid #FF9797 !important;
	background: #FF0000;
}

.litespeed-column-java .litepseed-dash-icon-success,
.litepseed-dash-icon-success {
	color: #5CDEDE;
	font-size: 2em;
	margin-top: -.25em;
}

.litespeed-column-java .litepseed-dash-icon-success:hover,
.litepseed-dash-icon-success:hover {
	color: #7DE5E5;
}

.litespeed-dashicons-large {
	font-size: 2em;
}


.litespeed-column-java p {
	color: #FFFFFF;
}

.litespeed-body tbody>tr>th.litespeed-padding-left {
	padding-left: 3em;
}

.litespeed-txt-small {
	font-size: 12px;
}

.litespeed-txt-disabled .litespeed-text-dimgray {
	color: #aaaaaa;
}

.litespeed-txt-disabled svg {
	fill: #aaaaaa;
}

.litespeed-txt-disabled circle.litespeed-pie_circle {
	stroke: #cccccc;
}

.litespeed-txt-disabled g.litespeed-pie_info text {
	color: #cccccc;
}

a.litespeed-media-href svg:hover {
	border-radius: 50%;
	background: #F1FCFF;
	fill: #5CCAD7;
	box-shadow: 0 0 5px 1px #7DD5DF;
	transition: all 0.2s ease-out;
	transform: scale(1.05);
}

.litespeed-media-p a .dashicons-trash {
	font-size: 2.25em;
	vertical-align: middle;
	display: inline;
	border-radius: 50%;
	line-height: 1.5em;
}

.litespeed-media-p a .dashicons-trash:hover {
	transition: all .2s ease-out;
	color: #FFA500 !important;
	background: #FFF5E6;
	box-shadow: 0 0 10px 1px #FF8C00;
}

.litespeed-media-p div>svg circle.litespeed-pie_bg {
	stroke: #ecf2f9;
}

.litespeed-media-p div>svg circle.litespeed-pie_circle {
	stroke: #9fbfdf;
}

.litespeed-media-p div>svg {
	fill: #538cc6;
	background: rgba(236, 242, 249, 0.1);
	border-radius: 50%;
}

.litespeed-banner-description-padding-right-15 {
	padding-right: 15px;
}

.litespeed-banner-description {
	display: inline-flex;
	flex-wrap: wrap;
}

.litespeed-banner-desciption-content {
	margin: 0px;
	line-height: 1.25em;
}

.litespeed-banner-button-link {
	white-space: nowrap;
	margin: 0px;
	line-height: 1.5em;
	padding-bottom: 5px;
}

.litespeed-notice-dismiss {
	position: absolute;
	right: 25px;
	border: none;
	margin: 0;
	padding: 10px;
	background: none;
	cursor: pointer;
	color: #888888;
	display: block;
	height: 20px;
	text-align: center;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-weight: 600;
	text-decoration: none;
}

.litespeed-notice-dismiss:hover,
.litespeed-notice-dismiss:active,
.litespeed-notice-dismiss:focus {
	color: #CC2929;
}








.litespeed-dot {
	display: inline-block;
	border-radius: 50%;
	width: 20px;
	height: 20px;
	color: white;
	text-align: center;
}

.litespeed-badge {
	display: inline-block;
	border-radius: 20%;
	min-width: 50px;
	height: 20px;
	color: white;
	text-align: center;
}


/* =======================================
		BALLOON PURE CSS TOOLTIPS
======================================= */

:root {
	--balloon-color: rgba(16, 16, 16, 0.95);
	--balloon-font-size: 12px;
	--balloon-move: 4px;
}

button[aria-label][data-balloon-pos] {
	overflow: visible;
}

[aria-label][data-balloon-pos] {
	position: relative;
	cursor: pointer;
}

[aria-label][data-balloon-pos]:after {
	opacity: 0;
	pointer-events: none;
	transition: all .2s ease .05s;
	text-indent: 0;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
	font-weight: normal;
	font-style: normal;
	text-shadow: none;
	font-size: var(--balloon-font-size);
	background: var(--balloon-color);
	border-radius: 2px;
	color: #fff;
	content: attr(aria-label);
	padding: .5em 1em;
	position: absolute;
	white-space: nowrap;
	z-index: 10;
	line-height: 1.4;
}

[aria-label][data-balloon-pos]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-top-color: var(--balloon-color);
	opacity: 0;
	pointer-events: none;
	transition: all .2s ease .05s;
	content: "";
	position: absolute;
	z-index: 10;
}

[aria-label][data-balloon-pos]:hover:before,
[aria-label][data-balloon-pos]:hover:after,
[aria-label][data-balloon-pos][data-balloon-visible]:before,
[aria-label][data-balloon-pos][data-balloon-visible]:after,
[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before,
[aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after {
	opacity: 1;
	pointer-events: none;
}

[aria-label][data-balloon-pos].font-awesome:after {
	font-family: FontAwesome, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}

[aria-label][data-balloon-pos][data-balloon-break]:after {
	white-space: pre;
}

[aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after {
	white-space: pre-line;
	word-break: break-word;
}

[aria-label][data-balloon-pos][data-balloon-blunt]:before,
[aria-label][data-balloon-pos][data-balloon-blunt]:after {
	transition: none;
}

[aria-label][data-balloon-pos][data-balloon-pos="up"]:after {
	bottom: 100%;
	left: 50%;
	margin-bottom: 10px;
	transform: translate(-50%, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up"]:before {
	bottom: 100%;
	left: 50%;
	transform: translate(-50%, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="up"][data-balloon-visible]:after {
	transform: translate(-50%, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="up"][data-balloon-visible]:before {
	transform: translate(-50%, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up-left"]:after {
	bottom: 100%;
	left: 0;
	margin-bottom: 10px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up-left"]:before {
	bottom: 100%;
	left: 5px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up-left"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="up-left"][data-balloon-visible]:after {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up-left"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="up-left"][data-balloon-visible]:before {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up-right"]:after {
	bottom: 100%;
	right: 0;
	margin-bottom: 10px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up-right"]:before {
	bottom: 100%;
	right: 5px;
	transform: translate(0, var(--balloon-move));
	transform-origin: top;
}

[aria-label][data-balloon-pos][data-balloon-pos="up-right"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="up-right"][data-balloon-visible]:after {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="up-right"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="up-right"][data-balloon-visible]:before {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down"]:after {
	left: 50%;
	margin-top: 10px;
	top: 100%;
	transform: translate(-50%, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	left: 50%;
	top: 100%;
	transform: translate(-50%, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="down"][data-balloon-visible]:after {
	transform: translate(-50%, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="down"][data-balloon-visible]:before {
	transform: translate(-50%, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down-left"]:after {
	left: 0;
	margin-top: 10px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down-left"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	left: 5px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down-left"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="down-left"][data-balloon-visible]:after {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down-left"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="down-left"][data-balloon-visible]:before {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down-right"]:after {
	right: 0;
	margin-top: 10px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down-right"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-bottom-color: var(--balloon-color);
	right: 5px;
	top: 100%;
	transform: translate(0, calc(var(--balloon-move) * -1));
}

[aria-label][data-balloon-pos][data-balloon-pos="down-right"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="down-right"][data-balloon-visible]:after {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="down-right"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="down-right"][data-balloon-visible]:before {
	transform: translate(0, 0);
}

[aria-label][data-balloon-pos][data-balloon-pos="left"]:after {
	margin-right: 10px;
	right: 100%;
	top: 50%;
	transform: translate(var(--balloon-move), -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="left"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-left-color: var(--balloon-color);
	right: 100%;
	top: 50%;
	transform: translate(var(--balloon-move), -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="left"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="left"][data-balloon-visible]:after {
	transform: translate(0, -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="left"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="left"][data-balloon-visible]:before {
	transform: translate(0, -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="right"]:after {
	left: 100%;
	margin-left: 10px;
	top: 50%;
	transform: translate(calc(var(--balloon-move) * -1), -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="right"]:before {
	width: 0;
	height: 0;
	border: 5px solid transparent;
	border-right-color: var(--balloon-color);
	left: 100%;
	top: 50%;
	transform: translate(calc(var(--balloon-move) * -1), -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="right"]:hover:after,
[aria-label][data-balloon-pos][data-balloon-pos="right"][data-balloon-visible]:after {
	transform: translate(0, -50%);
}

[aria-label][data-balloon-pos][data-balloon-pos="right"]:hover:before,
[aria-label][data-balloon-pos][data-balloon-pos="right"][data-balloon-visible]:before {
	transform: translate(0, -50%);
}

[aria-label][data-balloon-pos][data-balloon-length="small"]:after {
	white-space: normal;
	width: 80px;
}

[aria-label][data-balloon-pos][data-balloon-length="medium"]:after {
	white-space: normal;
	width: 150px;
}

[aria-label][data-balloon-pos][data-balloon-length="large"]:after {
	white-space: normal;
	width: 260px;
}

[aria-label][data-balloon-pos][data-balloon-length="xlarge"]:after {
	white-space: normal;
	width: 380px;
}

@media screen and (max-width: 768px) {
	[aria-label][data-balloon-pos][data-balloon-length="xlarge"]:after {
		white-space: normal;
		width: 90vw;
	}
}

[aria-label][data-balloon-pos][data-balloon-length="fit"]:after {
	white-space: normal;
	width: 100%;
}wOFF|0OS/2``*cmaphTTV҇gasp�glyf�,,���head�66
��hhea($$��hmtxL
loca`(�maxpl  ~name��Έ�.�post\  �������3	@����@�@ 8
 ����� ���������797979������Dinrw{0414&104'85"&981.#"890#01100101108290021030202323263:1421261021469063401641065041465&451818101#0"10"10"10&18181'50410495178106321810101'0"10410410"140'1'81.#"8100"101010"1100210101021010380218120:1023403810214012071760502104104183<1045'81#"&'&6?'&6?>323#3575'5�����N�W�W��������O+�O+������:��:446���8������W���W�����d=cd>b��:33�4����6�8�6������_<��T��T���������
�|�
�
H
�'
o
�	
	�	U	�	2	|	
4�litespeedfontlitespeedfontVersion 1.0Version 1.0litespeedfontlitespeedfontlitespeedfontlitespeedfontRegularRegularlitespeedfontlitespeedfontFont generated by IcoMoon.Font generated by IcoMoon.�0�LP����litespeedfontRegularVersion 1.0litespeedfont�0OS/2*�`cmapV҇Tgasppglyf���x,head
���6hhea���$hmtx
loca(�maxp~  name��.�@�post �������3	@����@�@ 8
 ����� ���������797979������Dinrw{0414&104'85"&981.#"890#01100101108290021030202323263:1421261021469063401641065041465&451818101#0"10"10"10&18181'50410495178106321810101'0"10410410"140'1'81.#"8100"101010"1100210101021010380218120:1023403810214012071760502104104183<1045'81#"&'&6?'&6?>323#3575'5�����N�W�W��������O+�O+������:��:446���8������W���W�����d=cd>b��:33�4����6�8�6������_<��T��T���������
�|�
�
H
�'
o
�	
	�	U	�	2	|	
4�litespeedfontlitespeedfontVersion 1.0Version 1.0litespeedfontlitespeedfontlitespeedfontlitespeedfontRegularRegularlitespeedfontlitespeedfontFont generated by IcoMoon.Font generated by IcoMoon.�0OS/2*�`cmapV҇Tgasppglyf���x,head
���6hhea���$hmtx
loca(�maxp~  name��.�@�post �������3	@����@�@ 8
 ����� ���������797979������Dinrw{0414&104'85"&981.#"890#01100101108290021030202323263:1421261021469063401641065041465&451818101#0"10"10"10&18181'50410495178106321810101'0"10410410"140'1'81.#"8100"101010"1100210101021010380218120:1023403810214012071760502104104183<1045'81#"&'&6?'&6?>323#3575'5�����N�W�W��������O+�O+������:��:446���8������W���W�����d=cd>b��:33�4����6�8�6������_<��T��T���������
�|�
�
H
�'
o
�	
	�	U	�	2	|	
4�litespeedfontlitespeedfontVersion 1.0Version 1.0litespeedfontlitespeedfontlitespeedfontlitespeedfontRegularRegularlitespeedfontlitespeedfontFont generated by IcoMoon.Font generated by IcoMoon.<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="litespeedfont" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe900;" glyph-name="wp_lscache" d="M1019.179 451.092c-0.094 0.469-0.27 0.916-0.404 1.374-0.156 0.532-0.284 1.070-0.495 1.57-0.222 0.549-0.532 1.061-0.822 1.57-0.205 0.384-0.381 0.788-0.623 1.152-0.572 0.853-1.226 1.664-1.977 2.423l-0.014 0.011-491.674 491.679c-0.040 0.031-0.082 0.063-0.122 0.094-2.847 2.796-6.741 4.531-11.051 4.531-4.315 0-8.206-1.735-11.054-4.531-0.043-0.031-0.088-0.063-0.125-0.094l-0.011-0.020-491.674-491.671c-0.754-0.759-1.408-1.57-1.98-2.423-0.242-0.361-0.41-0.768-0.623-1.152-0.284-0.509-0.603-1.018-0.822-1.57-0.213-0.501-0.333-1.038-0.486-1.57-0.139-0.458-0.316-0.905-0.407-1.374-0.205-1.007-0.313-2.037-0.313-3.095 0-1.061 0.108-2.088 0.313-3.089 0.088-0.466 0.265-0.91 0.407-1.368 0.156-0.532 0.276-1.087 0.486-1.587 0.219-0.538 0.535-1.050 0.822-1.57 0.213-0.384 0.381-0.777 0.623-1.152 0.572-0.842 1.226-1.664 1.98-2.412l0.009-0.011 491.676-491.682c0.737-0.742 1.539-1.382 2.395-1.957 0.168-0.114 0.358-0.188 0.535-0.299 0.703-0.415 1.414-0.845 2.176-1.155 0.282-0.125 0.597-0.176 0.893-0.282 0.677-0.239 1.345-0.475 2.054-0.626 1.007-0.193 2.054-0.307 3.126-0.307 1.064 0 2.113 0.114 3.123 0.307 0.703 0.151 1.374 0.387 2.048 0.626 0.296 0.105 0.614 0.156 0.896 0.282 0.759 0.31 1.473 0.742 2.182 1.155 0.171 0.111 0.367 0.185 0.532 0.299 0.856 0.572 1.658 1.215 2.395 1.957l0.014 0.020 491.676 491.674c0.754 0.748 1.405 1.57 1.977 2.412 0.242 0.375 0.415 0.771 0.623 1.152 0.293 0.521 0.6 1.030 0.822 1.57 0.21 0.501 0.338 1.055 0.495 1.587 0.134 0.458 0.307 0.902 0.404 1.368 0.196 1.001 0.316 2.028 0.316 3.089-0.003 1.061-0.122 2.091-0.321 3.095zM941.096 447.11l-0.168-0.444-0.137-0.484-0.492-0.879c-0.122-0.168-0.276-0.347-0.444-0.515l-424.624-424.63c-0.151-0.159-0.299-0.29-0.461-0.404-0.142-0.094-0.697-0.424-0.85-0.506l-1.166-0.384c-0.134-0.031-0.444-0.060-0.759-0.060s-0.62 0.031-0.919 0.097c0 0-0.811 0.29-0.993 0.347-0.188 0.1-0.879 0.512-0.879 0.512-0.162 0.131-0.296 0.247-0.427 0.381l-424.627 424.627c-0.168 0.171-0.313 0.344-0.444 0.526l-0.521 0.956-0.341 1.115c-0.006 0.040-0.046 0.327-0.046 0.634 0 0.304 0.040 0.6 0.1 0.887l0.171 0.444 0.151 0.515 0.225 0.356 0.265 0.515c0.134 0.179 0.273 0.356 0.424 0.506l424.741 424.715c0.449 0.435 1.525 1.26 3.126 1.26s2.679-0.825 3.18-1.32l424.667-424.644c0.168-0.168 0.31-0.344 0.435-0.523l0.512-0.936 0.353-1.126c0.006-0.051 0.048-0.347 0.048-0.651-0.003-0.304-0.043-0.592-0.1-0.887zM764.55 449.53c-0.060 0.225-0.156 0.455-0.21 0.683-0.071 0.265-0.134 0.535-0.245 0.782-0.111 0.267-0.262 0.532-0.412 0.774-0.105 0.196-0.188 0.404-0.31 0.58-0.279 0.421-0.623 0.825-0.973 1.198l-0.017 0.020-244.824 244.816c-0.017 0.011-0.046 0.037-0.057 0.054-1.417 1.388-3.351 2.256-5.504 2.256-2.139 0-4.087-0.868-5.504-2.256-0.020-0.017-0.043-0.043-0.057-0.054l-244.824-244.833c-0.375-0.373-0.705-0.774-0.987-1.198-0.128-0.179-0.202-0.384-0.307-0.58-0.151-0.245-0.302-0.509-0.407-0.774-0.111-0.25-0.168-0.521-0.247-0.782-0.074-0.228-0.165-0.458-0.208-0.683-0.102-0.503-0.154-1.018-0.154-1.553 0-0.521 0.051-1.027 0.154-1.525 0.046-0.233 0.134-0.455 0.208-0.697 0.080-0.253 0.137-0.523 0.247-0.771 0.102-0.267 0.256-0.529 0.407-0.788 0.105-0.182 0.179-0.39 0.307-0.566 0.282-0.421 0.612-0.822 0.987-1.2l0.003-0.006 244.821-244.827c0.37-0.367 0.771-0.688 1.189-0.967 0.082-0.065 0.185-0.094 0.27-0.145 0.347-0.216 0.708-0.438 1.084-0.589 0.137-0.057 0.299-0.071 0.441-0.122 0.327-0.134 0.663-0.245 1.024-0.321 0.503-0.1 1.018-0.145 1.55-0.145 0.535 0 1.058 0.046 1.562 0.145 0.347 0.077 0.683 0.188 1.015 0.321 0.148 0.051 0.304 0.065 0.455 0.122 0.373 0.151 0.728 0.373 1.078 0.589 0.082 0.051 0.188 0.077 0.267 0.145 0.427 0.279 0.828 0.6 1.183 0.967l0.017 0.006 244.821 244.827c0.35 0.378 0.694 0.777 0.973 1.2 0.122 0.179 0.205 0.384 0.31 0.566 0.151 0.262 0.299 0.523 0.412 0.788 0.111 0.247 0.174 0.518 0.245 0.771 0.057 0.242 0.151 0.464 0.21 0.697 0.088 0.498 0.145 1.007 0.145 1.525 0.003 0.532-0.051 1.047-0.139 1.55zM604.76 581.632l-78.35-99.419 42.416-61.002c0.051-0.071 0.1-0.151 0.156-0.228 0.711-1.106 1.229-2.222 1.596-3.573 2.506-9.782 0.745-17.55-4.907-21.834l-128.68-98.768c-2.216-1.749-5.299-3.766-9.429-3.766-4.588 0-8.829 2.651-10.769 6.679-2.33 4.699-1.476 9.671 2.534 14.771l78.327 99.439-43.036 61.921c-5.501 7.811-3.792 18.901 3.792 24.701l128.762 98.847c2.222 1.718 5.288 3.686 9.333 3.686 4.577 0 8.823-2.645 10.823-6.753 2.258-4.654 1.402-9.586-2.569-14.703zM233.35 419.499l249.805-249.816v-58.14l-307.965 307.957h58.16zM483.154 726.283l-249.793-249.785h-58.172l307.965 307.962v-58.177zM790.687 419.536h54.428l-307.988-307.996v54.417l253.559 253.579zM790.667 476.473l-253.54 253.537v54.451l311.683-307.988h-58.143z" />
</font></defs></svg>/*
* iziModal | v1.5.1
* http://izimodal.marcelodolce.com
* by Marcelo Dolce.
*/
.iziModal{display:none;position:fixed;top:0;bottom:0;left:0;right:0;margin:auto;background:#fff;box-shadow:0 0 8px rgba(0,0,0,.3);transition:margin-top .3s ease,height .3s ease;transform:translateZ(0)}.iziModal *{-webkit-font-smoothing:antialiased}.iziModal::after{content:'';width:100%;height:0;opacity:0;position:absolute;left:0;bottom:0;z-index:1;background:-moz-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,transparent),color-stop(100%,rgba(0,0,0,.35)));background:-webkit-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-o-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:-ms-linear-gradient(top,transparent 0%,rgba(0,0,0,.35) 100%);background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.35) 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00000000', endColorstr='#59000000',GradientType=0 );transition:height .3s ease-in-out,opacity .3s ease-in-out;pointer-events:none}.iziModal.hasShadow::after{height:30px;opacity:1}.iziModal .iziModal-progressbar{position:absolute;left:0;top:0;width:100%;z-index:1}.iziModal .iziModal-progressbar>div{height:2px;width:100%}.iziModal .iziModal-header{background:#88a0b9;padding:14px 18px 15px;box-shadow:inset 0 -10px 15px -12px rgba(0,0,0,.3),0 0 0 #555;overflow:hidden;position:relative;z-index:10}.iziModal .iziModal-header-icon{font-size:40px;color:rgba(255,255,255,.5);padding:0 15px 0 0;margin:0;float:left}.iziModal .iziModal-header-title{color:#fff;font-size:18px;font-weight:600;line-height:1.3}.iziModal .iziModal-header-subtitle{color:rgba(255,255,255,.6);font-size:12px;line-height:1.45}.iziModal .iziModal-header-subtitle,.iziModal .iziModal-header-title{display:block;margin:0;padding:0;font-family:'Lato',Arial;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.iziModal .iziModal-header-buttons{position:absolute;top:50%;right:10px;margin:-17px 0 0}.iziModal .iziModal-button{display:block;float:right;z-index:2;outline:0;height:34px;width:34px;border:0;padding:0;margin:0;opacity:.3;border-radius:50%;transition:transform .5s cubic-bezier(.16,.81,.32,1),opacity .5s ease;background-size:67%!important;-webkit-tap-highlight-color:transparent}.iziModal .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODZCQkIzQ0I0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODZCQkIzQ0M0RTg0MTFFNjlBODI4QTFBRTRBMkFCMDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4NkJCQjNDOTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4NkJCQjNDQTRFODQxMUU2OUE4MjhBMUFFNEEyQUIwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsgTJLcAAALJSURBVHja3JnLS1VBHMfvQ7g9dBXRRrwEFRciAhMi1JRW1aIHVEIYEkW0iVpUhOD/ICK6cFMgSbUpC6VFkQa9NtpjkauriRY9Noa3pHT8/mIODMM5Or85o87pC5/NPf5mvmc8M7+Z36SFEKkY2gj2gUawF2wHW8A6+fwv+A6KYAQMg+dg2rbDtKXhGnAaHJIms4zYz9J4HxgAf1g9k2EGteAhWBBuNApaQNrUg6nRTaAbzIuV0RCocWW4DoyJlVcJXI5ruFk2tJqi/2TWxvA5sXbqA2Ucw01i7dVjargazAo/dE33p6/DlAheg50pP0SJpwG8CH7IaH/Q5pFZUhnoArkwwwVwJeWfdoMLYYZvqG+yTGo9CerAoIWBT+A4qAdPDWOugwo1NVcxJtpFZRLkwH3GJCqCghJfxVjnz1JMMMKnwAbGRAg0B5rAA4O4CblZ+qj8tkBjZthvSzDCtFIMM0ZpQhslk5Eej4jpZ/T7G+ygwG1ghrk+jjNMFy1eMPJzpOAzlou6iWmXZkm91EBHjEwUZXoQTDk2SxqhRh7HTJ9hpstB3rFZ0ldq6J2DnB9m2rXZfxOPlrX1DrJRXiaBXSHPaMHvB0cd9JPLpBImMvzLQTuUFA6A9yHPfoIjhsllOc1l5N4grtmDWgYrl5+JTUZcSjNkeMyxWdpA3ZN72IJj01OJTByJS82J2/wQVxmB5y1HK8x0JWMf/kzdD98FJcY5S51gdwyTQl6eUAraspo27PeWXgy8afim0+CELAwOWHyH9EkdkyWwJ4Yxk6BCP+bTm48anutWW5dAp34IpbW03UOzb0FPVEHbx0LKfvAyqpAyKw97JU8Mt6pml6rAJ6oY6Eu5NfvfF7QTeWWQyEsZr6694lwsNoPD8mKRo29gCNwGj7gXi7aGA1EBcY+8vq0GW8FmJb3Pgx9gEnwAr8Ab8MW2w0UBBgAVyyyaohV7ewAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBBOUI4RUM0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBBOUI4RUQ0RTg0MTFFNjk0NTY4NUNFRkZFNEFEQzIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEE5QjhFQTRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMEE5QjhFQjRFODQxMUU2OTQ1Njg1Q0VGRkU0QURDMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrQO6gAAAANmSURBVHjazJlbSBRRGMd3x92i0ForRRMiKiUoX4ouiFlJkRVBDxW9GJERwUasvdRT9FD00osRQtAFqegGBUHRBY0uaCVKEkSRpVR0tSwrQtp1+p/4Bk7D7M45M/Ot/uGHu+Psmf+c+eY753wnbJpmyIfGgvmgiv6WgkKQBwzwE3wBr0AnuAta6ZgnhT0aFuY2ghoyGdH4bS+4Dc6CZjCkdWVhWIPF4JoZnB6CDToeVE8sBidNPt0E5UEZrgG9Jr8GwHa/huMgaWZXDSDsxfBuc/jUBAwdw3Fz+NWoang5SJkjQwm7P3seLqQEX2LLfgfBdZcMORMcBqNDwekPqASP0uXhpjR3Ok0x/fUw9HIHGGVdw5DuRtzJpgxDsJui2qOWmuaAOuuLbHivz4YLwLgQj/aAXNmwuItlHhtbA7pAG5jEZHgKWCcbrhUTIY+NPQVjqFFObbYMi/hc6aOhl2AJ9TKnFoIyYXgemKEzJQXVVkyR3oFVzKZFuqw2qHdyFPKhrHPgMoWC3fRjRtNVVg+7SR5IiqmXxUt60cG0CK/vTIZniZVCmcKJF0C3ZNjKBqvJ9Hrwm46tsN1EkCoRQ/M3fBjvs6GrYAvdwHEfGcd1qBaGkwoxrKI+xjz83yJ0iLFHApd46X4xX+M+WECh4lepCNUIcpnMijrEWtAvTRHrbOd8FZNG8uA2Nf0hpmwtjBPwpQ5T0GPS/+tBAZhIq+b3Lu09EyHRwRgO+0C+7dhWcII+PwCf6Sk/Aa9d2vtn+A7nyASugJiD6YSDQcOlvVbxiCaAN8xrs3sgprBiac/QhlhnzjUo6JuZM0UlDS5FPtoQIdNlPYJTWUihFaDex+9Pg6T1KHJAJ2NI7ASllA28hEQ/KJIXoSlwgKlnh+jFe+GjLtwIPtjfyktUt+UaUZWqvw7H3oJD1peI7eQdoF1xWa+zQikHH13OmwqmOxxP0EiZtgK/DRwNuIcHwSeXc2K01WAPhbhKBb5hBNTVbskVH7fqpZGhbJUNtYF83fqwQSXPbOsGjb6etwx2gcEsmT3iFAZeNmUqaMeHSz2qu0k6W15Rqsx3B2i0D+xXGAHTFrRVlEeFuVoqH+ku6VNUbDkPzlAtg30nVK66i8rRIjAbTKaSQVQyN0DD6nOqcLZQld9TLfmvAAMAeMcvp3eCFqQAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkFFRTU5NDA0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkFFRTU5NDE0RTg1MTFFNjk0NEZFQzBGMkVBMDYyRDkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyQUVFNTkzRTRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyQUVFNTkzRjRFODUxMUU2OTQ0RkVDMEYyRUEwNjJEOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuDFfX8AAANASURBVHjazJlZSBVRGMfHcWlB0xZM68GKukQLYaGkmEUR2EsvRfQS+BSJPUQE+lTR8hqIZY8hFS0ERVCRoW3gpUApghYpszLTVnCB3O70/+K7MAwzc78Z58z4hx8XzpzvzJ+Zc+d85ztphmFoU9BsUAoq+XcFyAc5QAfD4BfoBp3gCWjnNl9K82mYzO0FVWwyw0NsD3gIroBWkPB0ZzLsgc3grhGcnoE9XjxIOxaCC4Y6tYC1QRmuAj2Geg2CA1M1XAsmjHDVANL8GK4zolMz0L0YrjWiV5PU8HYw6TBIf8imD6UynA96HYKPg3mgMUTDY6DUzXCzQ+AxSz+r6QEQZz4HbLoDZNkZrnAIoOlRZjN1Gk3XS0zty/gTFaRq7Ay3uAR8BcU2ps/z9QJTWw74HrDhTyDbbHg9SKQI+sb9rKa3mV8ZmAt+KJjP1TS+zinFPkqEUqQdBeAOKLa0UwIzpqlXtcYpIKWIO4RBZPoRKNfC10YQI8MlYLkwaAB8ABsiMDwDbKU8dgtIFwRMgJ3guRadKpNPWBMa7tOi1WoyHJPuTsC4oN+IQsOLM3gPJlEWqOE/neMGBqwDeYoMz6G8c0I4h6eFyHBC8A2eVoaH8JutaPwuUA/+uvSht1sHKgTjTWZwjUCVYdrK3xT0iwkND+lc5FClUQ9fINHCRYY7FBrWPSz5Er2lAR9H9P+hpfYGl64OCmPadQ7ojcDwOJetysBMQX/6mrWS4d+cIoYtMnAEnBT2fwVeJufYxZBMFoKFlrajQtOX/uczvEtIB50Kdgn1lt3JGdANltjsXE64jPMnuQ1LPuFJcFrBE11gzQXAUnAPFNk86esO4zSBfmu5lVa9toCf8DC4Ba6C22DEdO01KDLdP5fLr1Z94X2ibV1ilWVQ1XrDpvPAU4c+u1KVqvaHXI7q43ltp3PSYmDDNCgGPrCUD1wN6y5lqzAUN89baX1Y55Jn2LrPRUffRwaHwWhIZs/aTQM/hzLlDp+coPRReprk5cgrkyvz7wM0+hOcAvOlPvwcLNIp526ux1H5aJbHeFpVX4Br4LLXWoffk9CkVnLlaBNYAxaBXJBpMjfIy+o7EAdtfIyb8HPDfwIMAM1WPs8F9tcxAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-button-close:hover{transform:rotate(180deg)}.iziModal .iziModal-button:hover{opacity:.8}.iziModal .iziModal-header.iziModal-noSubtitle{height:auto;padding:10px 15px 12px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{font-size:23px;padding-right:13px}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-title{font-size:15px;margin:3px 0 0;font-weight:400}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-header-buttons{right:6px;margin:-16px 0 0}.iziModal .iziModal-header.iziModal-noSubtitle .iziModal-button{height:30px;width:30px}.iziModal-rtl{direction:rtl}.iziModal-rtl .iziModal-header{padding:14px 18px 15px 40px}.iziModal-rtl .iziModal-header-icon{float:right;padding:0 0 0 15px}.iziModal-rtl .iziModal-header-buttons{right:initial;left:10px}.iziModal-rtl .iziModal-button{float:left}.iziModal-rtl .iziModal-header-subtitle,.iziModal-rtl .iziModal-header-title{text-align:right;font-family:Tahoma,'Lato',Arial;font-weight:500}.iziModal-rtl .iziModal-header.iziModal-noSubtitle{padding:10px 15px 12px 40px}.iziModal-rtl .iziModal-header.iziModal-noSubtitle .iziModal-header-icon{padding:0 0 0 13px}.iziModal.iziModal-light .iziModal-header-icon{color:rgba(0,0,0,.5)}.iziModal.iziModal-light .iziModal-header-title{color:#000}.iziModal.iziModal-light .iziModal-header-subtitle{color:rgba(0,0,0,.6)}.iziModal.iziModal-light .iziModal-button-close{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyQTU1RUZDNzRFODQxMUU2ODAxOEUwQzg0QjBDQjI3OSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1NEM4MTU1MEI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENDMkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjZjYzMwMmE1LWFlMjEtNDI3ZS1hMmE4LTJlYjhlMmZlY2E3NSIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdmYmU3NGE3LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po24QssAAANtSURBVHja3JlJaBRBFIa7ZxyTSXADHUkikuAawZNLEOOGGrwJQYko8R4RBQ+OICoqghJQUVwPYjzFY0QUBQU1kogoKO6CG0pcIwbiNibj/8JraNvu6Xo9NTOtP3xzSKe6/65+Ve9VlWlkp2IwGUwFE0E5GA4G8/U+0APegWfgHrgPuq0bpNNp0QPNgEYngHlgGpuMCNp2s+kr4BYM/8ql4WqwHEzP4mXteg7awOW0YlerPnQIaARLNBl1ikLlBDw/1WF4ClgHKozc6idogekz2RheANbaBlE+dB4chfF+qeHF3LOF0FWwF6b7nBe8RvecApolzQVr3C64GR4H1huFV51pmvV+hikRbABFRji0GqarMxluAGON8CgKmmA65mZ4DFhqhE9VPP//ZXgZiCmm1t1gI6XWAAY+gF0gCe4qtqlHL8fthkeBWsXGreA6eMgPviEw+x5sBZ3gAdjPCcNPI8Fsu+FawUCzz40psEfRNJndBl7b/pZmVLTQMkzJo0bQSys43iWm3cxS+DUJOmoSwqKCRmEZWKkYv6RSMBPc5lqXRGm0A1Q6XiaT2aSwo8jrK/qZwZlFIlXTusxa6iXDddTdARpnMj2ek9AWjWYH7h/lubcs4A28THdyAdOl0ezAmKNBNyLLiT0Btjti9zuHg06zpJKIprohwXNypcu1OIdGjYbnxCLGPyYy/EPDfejzbwYvXK59AzuFGdFLKTL8WYNZ59RVzGESJCNm0teI40E6zNIA2wSaA2REP32iaW0omKXRbJKTUVyYEVV0J8oxvEiQmiUZrFSz6XNkuJe3nBKCelaSbjOZrhLsd1BInYxweSeJq9YA6dYtuZCBI4JZ6jGW/W+sebhd0DAaMIO5mTYFW1+X6GeQ7TO3W0WyQj3cw0ulBg4nSUbcAY7zPVYp7ip95FXOH29Hb35AOPjypWMIh7PORSjFZVsIzdKW7AWvfYnTVNWHyCytHw+jd1Nehqks3KepvtChUzD7yGvE2/cduqxldQF1EWZb/PbWLF3jAVgo0WrlkN+c6hSd+rzlaSuaR7O0oX0wyIa2pVAdGaj0HCUVOqIq4dVwrg5lmmG2w+8f/9tjL6foYHE+Gy8Xtv3CPUpf7WauDxadKuIwoeNbOmoYDYbZ0ns/1wxUC7ykigs8sS/LpEe3vwUYALiKDDDSgEiSAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4JpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpEQTg1NTA2NTRFODQxMUU2OTQ0N0VERjY2Q0M5ODYwRCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCQkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCQUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFlNTQwYzczLTVhZmEtNDJlYi04YzJlLWMwMzFlYmFiYmIyNiIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmVkYmRiMzM1LTAxMDUtMTE3YS1hYmM3LWEzNWNkOWU1Yzc4NyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvIicdUAAAOvSURBVHjaxJlZbA1hFMe/qaItUUsspakg1laJ7UUisQuRvvTFA15sQSRCLBFrQryhHqxNHxEPtaQ8CCUkIrVVRbVBJdZYSrXVonr9/3pGxnTunZk78/X+k1+aO+1899/vnnvO+c4YKpi6ghEgW34OBD1BKjBAM6gH78Fz8BhUyrW/ikQivt7QiNMozU0DE8RkJx/3fgCPwA1QHvHp2K/hHJAPJqpwVA2K4flW2IZ7gyVgptKjh6AQxl+GYZi7uRr0U3rVBIpg+nIQwwvACpCkOk4XwYlosR3LMGN1qUqMroGDTqaNGDu7SiVWl+D3iP2i00c9HqxUidd8wzDy3HY4HRwCfWzXz4L7Lm+QKfHeOUTTLWAzdro6muH1YIbDjculWrmpUEM2YYXcCNMt9pAYE8WsWYLdlAxaNYTGMDDHKYYXBVy4B0jTFM/5iOcUc1fM/2JcnItNAYtBNzGtQ33BVHDV3OHpARqhV6CLLKpTs8yQYHxOCrDQO7AV1Gg2PBJhMYiGh4MMnx1eLkixXKsFuzSbZrrMpeGxHnqFFtvrTWCbhILd9AuNpnPMHXaTtZD0kl1mRdwSxXSjJsNZfONjcmqIJR5p3lp6Y+sXrAzsBz/lNXvmtZYMFKbqafi0pKQgKpOSPhmsC5BxXEs1Fz4fUr/7TWMe/q9bC2s3tJs1Df/Q/B5PwAZwJYS1WpPlo0zRZJZziL2gQU7I1GyHL7QSD26taVOytI26DpinxKypApvpk+C6dHlMnXskbUbT1yTpN3WJHWB327UCS3hUoc+tA/VyxP/ost5rGq7QWZnAdoe0eZgnYweDbgmgkoafgk8aTfNgsMNmmqfhC+Czj3V4T3mSBH255kxB0ztd4tNNDJkas2CUdkAKHQ3yAtxfijj/bdb7Cumyhmoyexzcs6Qwv2qUbPKvJDOtnNFklrF3R5qneA2XYHe/2A+ht1Xb3FZXRY1XTAjFTgtxJ45qKtWDpZK1g6dhIQuvBzjcy8FgQ6y8Nw+sCdnwL1Dn8jdMe6m2a+3ma9ESNUdOC1VixSH3bnPiYyraswnO0fqDIQkyW8WmCWab7b+I9TCF3+x0j2e+MPUA7LPGrVfD1F3VNsrPVR0zhS8BB5x21muzYa1Sy1Tb4y4d4qOwIi9Pk/wcj1gV50p5zQjJKAsJH8KcY4vpdYrjV0w9HMxxHjfKNpfwdMyRNuAmyy2M1vq5OegBNFMmR9lSHDizSLPMJGjuO2BZfSOtLKvpMylUvh/d/hFgAOH4+ibxGTZuAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal.iziModal-light.isFullscreen .iziModal-button-fullscreen{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RTNFNENCRkI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RTNFNENCRUI4QUExMUU2QjNGOEVBMjg4OTRBRTg2NyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjgzM2MwOWZiLWJjOTEtNGVlZS05MDM1LTRkMmU2ZmE1ZjBmMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRUUxMkYxODRFODUxMUU2Qjc3RDk0MUUzMzJDRjBEOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pv1Q9Z8AAAOXSURBVHjaxJlLbA1RGMfPjIs+EvoIRYt4FVUl2EkkRTxKUqQbG0SEho2FjUQ8YtEICbEgTdFYeK1KaGvVeoUltyStt0UlNE17aWhV2+v/9X5XJpMzc8/0zpn5kl+aO3Nm7r/fnPu9xhDp2URQDJbw3xkgB2QCAwyAPvANfARvQDsfG7V4PO7pC40xCiVxa8AKFjnOw7VdoA08BtG4R8VeBZeCKrBS+GPvQAM0P/NbcB7YBdYJPfYKXIXwL34IJm8eBFOFXusH9RDdnI7gLWA/MEVwdh/UOe1tN8G0V3eLcKwFXJCJNl08G5ZYsrWgWnZCJng5OOBwo1iAoisMw6hMJXgyOOywVW7xj+9BgKL3QHSxm+C9IF9y4U2GMlStRPQP8Jbp9lFwhJwE0RHrgaSV8N6xG238l7Zjtfx3K58/Bd7zsWngIqdnP2we2ACa7B7e6RL6joK5EtHNfL7b5u1Bn7dGFbycYRVM/8WyFJnuJK+z2iVwzFrMcF1h+Cx4ClhtFVyu8CW54ITE01EwFMAPcH1SMJWIqxQvItE1YHEIsXkhtkUhCV4ApiteFOPadn4IgseDMooSSxVrhWFwmkvCsKw06WGhKLhHhGuzSHChh9pZ5cc1oFFwfoTTsWrWqQCvXdZQEpkDsjUJziSv3Qu43k3LTA1BXqvRY/4DMjTd/yu4niJVm9wslCjcb4QE/9Qo+Al44baAmgpKCIqC+01OBLrsr8/de8zkiYwuUxWSq7iuM8JhantIqfYItkOepKBysnbycIfPXYKqURL6DhaBCQrrKcZHTa5loyEIJgHXwG3F9TQV+pxMGK0BiaTHn2OLEjcURbdi7XBSMO3jTxoEjtg+7wDnhG3spSD6F3hk7Tjoxnc0CJ5k+5wFCrhplYl2mmI24nyvvWumAE9z2zIfBW8WifnxIHc2yb6xiHtEoms0/hlGtpAPHCkgNDjFyZngPN88COvkPpEe+XGHbFcD7z53C+ybwKEAo0UPZ8QCybkmiL3sNvkheygSI08RYOSQiaUhd52sUpIZLWwJsYqkkdcZeHfIS66nc9XcZQRpNBY7C7F9Yy1OtonErDgSgNhGcEXmWa/VFA1O9onE6y4dRqGtXuVtkpf2iDy8EVR6GLykMnrsNFC867QF0hH8v3MVicFcuYdKy56uqQx4SukWQj3NOtJtQIt4ckSvbmdziMqy7HcS9xv0cn/Xwdn0A1drnl/d/hNgAGQa6Lgarp6BAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal .iziModal-loader{background:#fff url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%;position:absolute;left:0;right:0;top:0;bottom:0;z-index:9}.iziModal .iziModal-content-loader{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA0NCA0NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBzdHJva2U9IiM5OTkiPiAgICA8ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZS13aWR0aD0iMiI+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iMHMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49IjBzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgICAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjIyIiByPSIxIj4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJyIiAgICAgICAgICAgICAgICBiZWdpbj0iLTAuOXMiIGR1cj0iMS40cyIgICAgICAgICAgICAgICAgdmFsdWVzPSIxOyAyMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMTY1LCAwLjg0LCAwLjQ0LCAxIiAgICAgICAgICAgICAgICByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4gICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJzdHJva2Utb3BhY2l0eSIgICAgICAgICAgICAgICAgYmVnaW49Ii0wLjlzIiBkdXI9IjEuNHMiICAgICAgICAgICAgICAgIHZhbHVlcz0iMTsgMCIgICAgICAgICAgICAgICAgY2FsY01vZGU9InNwbGluZSIgICAgICAgICAgICAgICAga2V5VGltZXM9IjA7IDEiICAgICAgICAgICAgICAgIGtleVNwbGluZXM9IjAuMywgMC42MSwgMC4zNTUsIDEiICAgICAgICAgICAgICAgIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiAvPiAgICAgICAgPC9jaXJjbGU+ICAgIDwvZz48L3N2Zz4=) no-repeat 50% 50%}.iziModal .iziModal-content:after,.iziModal .iziModal-content:before{content:'';display:table}.iziModal .iziModal-content:after{clear:both}.iziModal .iziModal-content{zoom:1;width:100%;-webkit-overflow-scrolling:touch}.iziModal .iziModal-wrap{width:100%;position:relative;-webkit-overflow-scrolling:touch;overflow-scrolling:touch}.iziModal .iziModal-iframe{border:0;margin:0 0 -6px;width:100%;transition:height .3s ease}.iziModal-overlay{display:block;position:fixed;top:0;left:0;height:100%;width:100%}.iziModal-navigate{position:fixed;left:0;right:0;top:0;bottom:0;pointer-events:none}.iziModal-navigate-caption{position:absolute;left:10px;top:10px;color:#fff;line-height:16px;font-size:9px;font-family:'Lato',Arial;letter-spacing:.1em;text-indent:0;text-align:center;width:70px;padding:5px 0;text-transform:uppercase;display:none}.iziModal-navigate-caption::after,.iziModal-navigate-caption::before{position:absolute;top:2px;width:20px;height:20px;text-align:center;line-height:14px;font-size:12px;content:'';background-size:100%!important}.iziModal-navigate-caption:before{left:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA4ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoyNmFjNjAyMy04OWU0LWE0NDAtYmMxMy1kOTA5MTQ3MmYzYjAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDREQ0YwRjA1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDREQ0YwRUY1MzQzMTFFNkE5NUNDRDkyQzEwMzM5RTMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpmNmM0Nzk3Ni1mNzE3LTk5NDAtYTgyYS1mNTdjNmNiYmU0NWMiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDowZGVmYTEyZC01MzM0LTExZTYtYWRkYi04Y2NmYjI5ZTAxNjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7oo0ptAAACWklEQVR42uyZTWsTYRSFZybxo4kWk5g2NC5qTAU3Kq30A9udi1oXolV/hWuhv6R/Q6utioi4LbbVFHemamlRU0OCEk0wZjwXzwtDoBDopHMHcuFJMplZnLm5ue+589qu61qeOApyYAjEgG0FEyLqN/gKiqBuTtgewWlwCZw056xgwwirgU3wxSv4NJgCUV5YBRXQDEhsBJwCSSauBVZFdJRlIJk9Av7wbj577jDIOENtRmPVwcsw6KfAAvikRKzEDlhnhuU/lRPBWaa9wsxqC6ndPX7OiOA4D8qW3vjO9z7H0w3+KhZstNmOFbLoCQ6DYGmL+bAInmGfLFC4asFXwRJIgB+goVmw+I7HXO+/gevGnGgUPEGxktkSmAMbWmt4HDwBKS6XN1jDKrvEFYoVK7oLroE3h93Woh1eNwqWafJ/gQV65vM+ail34mc6EZwBK2CAx8fAIjjeBYMzDT4cVHCEXtRbRvEu/Nr9HCIOnGGp15vgEec9KYn74B0nAT/CZnv86FcNvwK3wENwAjwAs2Bbs5d4CW5zir0AXvv8p+tKH34B5lkW4h2egRHtbu05uMMHHWfB0zC4NRF5l09kzvE4rd2tyUJyjy4tz7akZqXbL8QETbJ/FsMgWOJtb6brCQ5YsBsC8Uab63DVkkgqFpzie93h8OhScFah2LTHi5ccWroaLd5l6//+hpYQoWP05LKqFs2WQYbTsNxAi+5fxpWmdfh7HS7XhwSzG+H3a2JnvZsyktmLbdOFhpDMvrf4sN1u2/aK0cwMcmYLcturweceW+CnOfFPgAEA8uWFFylBJYoAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal-navigate-caption:after{right:0;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAoCAYAAACFFRgXAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAADhmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjI2YWM2MDIzLTg5ZTQtYTQ0MC1iYzEzLWQ5MDkxNDcyZjNiMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0NERDRjBGMDUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0NERDRjBFRjUzNDMxMUU2QTk1Q0NEOTJDMTAzMzlFMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOmY2YzQ3OTc2LWY3MTctOTk0MC1hODJhLWY1N2M2Y2JiZTQ1YyIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjBkZWZhMTJkLTUzMzQtMTFlNi1hZGRiLThjY2ZiMjllMDE2NiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuijSm0AAAKbSURBVFhH7ZnJj0xRGEerzFoIMTaCZmOIedhaiJj55yz8DaYdNhIJEUMQbCTG3rQ02hDSiEY553XdTpHS3nv96taV9ElO6lVt6peb7933fffVG41GrYW5uBaX4EysYzcw1Fd8hc/wM2a0Bl6Nm3BW9i0dDPsQX/olBF6FO72AH/gG3+N3jL3KBpqGC3ERTsGfeAsHDTyHi71oCXzBe/gaU2A5bscZOIxXTb8OLQNX9i6mElYsg/voqruwfQb2BhODWgqpMYDv0NLsNXC4yd42P1PEwNJj4HBTWdipErLVDfxfMRm408QMvBu3jV6WJ1Zg9/rbeBOP+UNZYgX+iE/Rp+lpPIKliBXYB9IhtPNy3z/T/F6YmDXsChvyBc7Gs3gACxEzsDzBg9iPPXgO92NuYgeWx2h3+AhtaM7jPsyF7aV37XR8gNZYO/pwKY51+xPkG27Fk2joT3gCr2A7NuJ6HMkTeAPadlp3VeMChF7G0P6X3dmfjAXOUxIj6LZkv1ylNuStDZejkL+PS96ScFzRqnDAtI5PoTefvbg7iNNOOwqVRCfYghdxBbpHH8Y7+DcKlUTV7MLLaNghPIrjhf2N2IF34AVcjE44hrXHyE3MwE6/loEzpEcIlqKjeyFiBe7FS+he/gENewMLEyuwXdo8dGWP43UsRazA9g7uDNbwNX8oS8watlsz+ISIGbgSJgN3GgOHlnFq8zNFQraGgT1iFc9iUyU0XsMGHhy9zh6XbvCp4ZuBBWglDBj4OdqLeu0+uRJTwMZ+Dbp/e21P3m97yWe2snsw1LTHmz5C/9lQdwhfGbiq89GwvrrwUT4UAouhN6MzloTRpVuEYI5O9urZYXtrYPGQw2OlZegM163QhrJMfWVgyTq0Qq32C/N7uPz9OknWAAAAAElFTkSuQmCC) no-repeat 50% 50%}.iziModal-navigate>button{position:fixed;bottom:0;top:0;border:0;height:100%;width:84px;background-size:100%!important;cursor:pointer;padding:0;opacity:.2;transition:opacity .3s ease;pointer-events:all;margin:0;outline:0}.iziModal-navigate>button:hover{opacity:1}.iziModal-navigate-prev{left:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5sGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDo2NDkyYzcxMy05ZDM0LTZlNGQtYmUwNi1hMDMyY2Q4NDVjNGU8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+eG1wLmRpZDo1QjIzMUMxODU3RjcxMUU2ODUzRkRBRjE5RDhDQjZBRDwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDpjZmMwNzVmNC1kODA3LWI0NDMtYWIwYS02YWVhZjRjMDgxZWE8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmNmYzA3NWY0LWQ4MDctYjQ0My1hYjBhLTZhZWFmNGMwODFlYTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDo1Ni0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjA0LTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODowNC0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xODg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PvAvv7QAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAmdJREFUeNrs1LsJQkEQhtH/mtmBgQ8QA7tQK1e7MBBBMbADwzUZEyuQveeDCXbD4TBDay3SWJpYgYCXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXv/WJskpyQJ4jQH7Mcmu0C+BV+/Y5/VeF/oV8Ood+7dpDfDqHvsrySHJBXjBDrxgB16wAy/YgRfswAt24AU78IIdeMEOPOywAw+7gIcdeMEOvGAHXrADL9iBF+zAC3bgBTvwsMMOPOwCHnYBD7uAhx14wQ68YAdesAMv2IEX7MDDDjvwsAt42AU87AIedgEPu4CHXcDDDrxgB16wAw877MDDDjvwsAt42AU87AIedgEPu4CHXcDDLuBhB16wAw877MDDLuBhF/CwC3jYBTzsAh52AQ+7gIddwEtjB3+tS/78+Z/V5d9iATz0Ah56AQ+9gIdewEMv4KEX8NALeOgFPPQCHnoBDz3wgh54QQ889NADDz30wEMv4KEX8NALeOgFPPQCHnoBD72Ahx54QQ+8oAde0AMv6IEX9MBDDz3w0EMPPPQCHnoBD72Ah17AQw+8FUAPvKAHXtADL+iBF/TAC3rgBT3wgh546KEHHnrogYdewEMv4KEHXtADL+iBF/TAC3rgBT3wgh54QQ+8oAde0AMv6IGHHnrgoU/yrgFe3aO/JdknuQOv3tGfC/tjjEsYWmsoyIWXgJeAl4CXgJeAl4CXgJeAl4CXgJeAF/AS8BLwEvAS8BLwEvAS8BLwEvAS8BLwAl4CXgJeAl4CXvqnPgAAAP//AwCEcoCBRabYzAAAAABJRU5ErkJggg==) no-repeat 50% 50%}.iziModal-navigate-next{right:50%;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALwAAAC8CAYAAADCScSrAAAACXBIWXMAAB3SAAAd0gEUasEwAAA7pGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzIgNzkuMTU5Mjg0LCAyMDE2LzA0LzE5LTEzOjEzOjQwICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNS41IChXaW5kb3dzKTwveG1wOkNyZWF0b3JUb29sPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwveG1wOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE2LTA4LTAxVDExOjU4OjEyLTAzOjAwPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9wbmc8L2RjOmZvcm1hdD4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9kZT4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDphZjljN2Q2MC00MTg2LWE3NGQtYTBiMS1mMGU5ODUwYzg2ZGY8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnhtcC5kaWQ6NjQ5MmM3MTMtOWQzNC02ZTRkLWJlMDYtYTAzMmNkODQ1YzRlPC94bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgIDx4bXBNTTpIaXN0b3J5PgogICAgICAgICAgICA8cmRmOlNlcT4KICAgICAgICAgICAgICAgPHJkZjpsaSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDphY3Rpb24+Y3JlYXRlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjY0OTJjNzEzLTlkMzQtNmU0ZC1iZTA2LWEwMzJjZDg0NWM0ZTwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQwOTo0MDoxNC0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjAxNjJjMmE3LWZmMjYtYzE0ZC05Yjg4LTc2MGM2NzAxYjYzNzwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1MTowNy0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOmFmOWM3ZDYwLTQxODYtYTc0ZC1hMGIxLWYwZTk4NTBjODZkZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNi0wOC0wMVQxMTo1ODoxMi0wMzowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUuNSAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTkzOTAzNi8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTg4PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE4ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+nbt1mgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACQklEQVR42uzSsQ3CQAAEQTdiOyGg/wrciJ0QUMYSECEKAP3PSdvAaZZqkWbJCQJeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXsBLwEvAS8BLwEvAS8BLwEvAS8BLwEvAC3gJeAl4CXgJ+D9vrY7qBgLwo7dVZ+89oAd+5Pbq6nPQAz9s9+rZ96AHHnoBD72Ah17AQy/goRfw0At46AU89AIeegEPvYCHHnhBD7ygBx566IGHHnrgoRfw0At46AU89AIeegEPvYCHXsBDL+ChB17QAy/ogRf0wAt64KGHHnjooQceegEPvYCHXsBDL+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADDz30wEPvI+ChF/DQAy/ogRf0wAt64AU98IIeeEEPvKAHXtADL+iBF/TAC3rgoZ8ePRDAAy/YgRfswAt24AU78IIdeMEOvGAHXrADL9iBhx124GEX8LADL9iBF+zAC3bgBTvwgh14wQ68YAcedtiBh13Awy7gYRfwsAMv2IEX7MALduAFO/CCHXjYYQcedgEPu4CHXcDDLuBhF/CwA+8E2IEX7MALduAFO/Cwww487AIedgEPu4CHXcDDLuBhF/CwC3jYgRfswMMOO/CwC3jYBTzsAh52AQ+7gIddwMMu4GEX8LBravB7dcEO/Ext1Qk78DO1VgfswEvAS8BLwEvAS8BLwEvAS8BLwEvAS8ALeAl4CXgJeAl4CXgJeAl4CXgJeAl4CXgBLwEvAS8BLwEvAS/9shcAAAD//wMAtAygvJrkwJUAAAAASUVORK5CYII=) no-repeat 50% 50%}.iziModal.isAttachedTop .iziModal-header{border-top-left-radius:0;border-top-right-radius:0}.iziModal.isAttachedTop{margin-top:0!important;margin-bottom:auto!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.iziModal.isAttachedBottom{margin-top:auto!important;margin-bottom:0!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.iziModal.isFullscreen{max-width:100%!important;margin:0!important;height:100%!important}.iziModal.isAttached,.iziModal.isFullscreen{border-radius:0!important}.iziModal.hasScroll .iziModal-wrap{overflow-y:auto;overflow-x:hidden}html.iziModal-isAttached,html.iziModal-isOverflow{overflow:hidden}html.iziModal-isAttached body,html.iziModal-isOverflow body{overflow-y:scroll;position:relative}.iziModal ::-webkit-scrollbar{overflow:visible;height:7px;width:7px}.iziModal ::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.2);background-clip:padding-box;border:solid transparent;border-width:0;min-height:28px;padding:100px 0 0;box-shadow:inset 1px 1px 0 rgba(0,0,0,.1),inset 0 -1px 0 rgba(0,0,0,.07)}.iziModal ::-webkit-scrollbar-thumb:active{background-color:rgba(0,0,0,.4)}.iziModal ::-webkit-scrollbar-button{height:0;width:0}.iziModal ::-webkit-scrollbar-track{background-clip:padding-box;border:solid transparent;border-width:0 0 0 2px}.iziModal.transitionIn .iziModal-header{-webkit-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1);animation:iziM-slideDown .7s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-header .iziModal-header-icon{-webkit-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-revealIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;-moz-animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both;animation:iziM-slideIn 1s cubic-bezier(.16,.81,.32,1) both}.iziModal.transitionIn .iziModal-header .iziModal-button{-webkit-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);-moz-animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1);animation:iziM-revealIn 1.2s cubic-bezier(.7,0,.3,1)}.iziModal.transitionIn .iziModal-iframe,.iziModal.transitionIn .iziModal-wrap{-webkit-animation:iziM-fadeIn 1.3s;-moz-animation:iziM-fadeIn 1.3s;animation:iziM-fadeIn 1.3s}.iziModal.transitionIn .iziModal-header{-webkit-animation-delay:0s;-moz-animation:0s;animation-delay:0s}.iziModal.transitionIn .iziModal-header .iziModal-header-icon,.iziModal.transitionIn .iziModal-header .iziModal-header-title{-webkit-animation-delay:.4s;-moz-animation:.4s;animation-delay:.4s}.iziModal.transitionIn .iziModal-header .iziModal-header-subtitle{-webkit-animation-delay:.5s;-moz-animation:.5s;animation-delay:.5s}.iziModal.transitionOut .iziModal-header,.iziModal.transitionOut .iziModal-header *{transition:none!important}.iziModal .fadeOut,.iziModal-navigate.fadeOut,.iziModal-overlay.fadeOut,.iziModal.fadeOut{-webkit-animation:iziM-fadeOut .5s;-moz-animation:iziM-fadeOut .5s;animation:iziM-fadeOut .5s;animation-fill-mode:forwards}.iziModal .fadeIn,.iziModal-navigate.fadeIn,.iziModal-overlay.fadeIn,.iziModal.fadeIn{-webkit-animation:iziM-fadeIn .5s;-moz-animation:iziM-fadeIn .5s;animation:iziM-fadeIn .5s}.iziModal-overlay.comingIn,.iziModal.comingIn{-webkit-animation:iziM-comingIn .5s ease;-moz-animation:iziM-comingIn .5s ease;animation:iziM-comingIn .5s ease}.iziModal-overlay.comingOut,.iziModal.comingOut{-webkit-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);-moz-animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation:iziM-comingOut .5s cubic-bezier(.16,.81,.32,1);animation-fill-mode:forwards}.iziModal-overlay.bounceInDown,.iziModal.bounceInDown{-webkit-animation:iziM-bounceInDown .7s ease;animation:iziM-bounceInDown .7s ease}.iziModal-overlay.bounceOutDown,.iziModal.bounceOutDown{-webkit-animation:iziM-bounceOutDown .7s ease;animation:iziM-bounceOutDown .7s ease}.iziModal-overlay.bounceInUp,.iziModal.bounceInUp{-webkit-animation:iziM-bounceInUp .7s ease;animation:iziM-bounceInUp .7s ease}.iziModal-overlay.bounceOutUp,.iziModal.bounceOutUp{-webkit-animation:iziM-bounceOutUp .7s ease;animation:iziM-bounceOutUp .7s ease}.iziModal-overlay.fadeInDown,.iziModal.fadeInDown{-webkit-animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInDown .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutDown,.iziModal.fadeOutDown{-webkit-animation:iziM-fadeOutDown .5s ease;animation:iziM-fadeOutDown .5s ease}.iziModal-overlay.fadeInUp,.iziModal.fadeInUp{-webkit-animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInUp .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutUp,.iziModal.fadeOutUp{-webkit-animation:iziM-fadeOutUp .5s ease;animation:iziM-fadeOutUp .5s ease}.iziModal-overlay.fadeInLeft,.iziModal.fadeInLeft{-webkit-animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInLeft .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutLeft,.iziModal.fadeOutLeft{-webkit-animation:iziM-fadeOutLeft .5s ease;animation:iziM-fadeOutLeft .5s ease}.iziModal-overlay.fadeInRight,.iziModal.fadeInRight{-webkit-animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1);animation:iziM-fadeInRight .7s cubic-bezier(.16,.81,.32,1)}.iziModal-overlay.fadeOutRight,.iziModal.fadeOutRight{-webkit-animation:iziM-fadeOutRight .5s ease;animation:iziM-fadeOutRight .5s ease}.iziModal-overlay.flipInX,.iziModal.flipInX{-webkit-animation:iziM-flipInX .7s ease;animation:iziM-flipInX .7s ease}.iziModal-overlay.flipOutX,.iziModal.flipOutX{-webkit-animation:iziM-flipOutX .7s ease;animation:iziM-flipOutX .7s ease}@-webkit-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-moz-keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@keyframes iziM-comingIn{0%{opacity:0;transform:scale(.9) translateY(-20px) perspective(600px) rotateX(10deg)}to{opacity:1;transform:scale(1) translateY(0) perspective(600px) rotateX(0)}}@-webkit-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@-moz-keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes iziM-comingOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@-webkit-keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@-moz-keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@keyframes iziM-fadeOut{0%{opacity:1}to{opacity:0}}@-webkit-keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@-moz-keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes iziM-fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes iziM-slideIn{0%{opacity:0;-webkit-transform:translateX(50px)}to{opacity:1;-webkit-transform:translateX(0)}}@-moz-keyframes iziM-slideIn{0%{opacity:0;-moz-transform:translateX(50px)}to{opacity:1;-moz-transform:translateX(0)}}@keyframes iziM-slideIn{0%{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@-webkit-keyframes iziM-slideDown{0%{opacity:0;-webkit-transform:scale(1,0) translateY(-40px);-webkit-transform-origin:center top}}@-moz-keyframes iziM-slideDown{0%{opacity:0;-moz-transform:scale(1,0) translateY(-40px);-moz-transform-origin:center top}}@keyframes iziM-slideDown{0%{opacity:0;transform:scale(1,0) translateY(-40px);transform-origin:center top}}@-webkit-keyframes iziM-revealIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,1)}}@-moz-keyframes iziM-revealIn{0%{opacity:0;-moz-transform:scale3d(.3,.3,1)}}@keyframes iziM-revealIn{0%{opacity:0;transform:scale3d(.3,.3,1)}}@-webkit-keyframes iziM-bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes iziM-bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@keyframes iziM-bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}}@-webkit-keyframes iziM-bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes iziM-bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,1000px,0);transform:translate3d(0,1000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes iziM-bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-1000px,0);transform:translate3d(0,-1000px,0)}}@-webkit-keyframes iziM-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@keyframes iziM-fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}}@-webkit-keyframes iziM-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100px,0);transform:translate3d(0,100px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@keyframes iziM-fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100px,0);transform:translate3d(0,-100px,0)}}@-webkit-keyframes iziM-fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@keyframes iziM-fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-200px,0,0);transform:translate3d(-200px,0,0)}}@-webkit-keyframes iziM-fadeInRight{0%{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes iziM-fadeInRight{0%{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@-webkit-keyframes iziM-fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@keyframes iziM-fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(200px,0,0);transform:translate3d(200px,0,0)}}@-webkit-keyframes iziM-flipInX{0%{-webkit-transform:perspective(400px) rotateX(60deg);opacity:0}40%{-webkit-transform:perspective(400px) rotateX(-10deg)}70%{-webkit-transform:perspective(400px) rotateX(10deg)}to{-webkit-transform:perspective(400px) rotateX(0deg);opacity:1}}@keyframes iziM-flipInX{0%{transform:perspective(400px) rotateX(60deg);opacity:0}40%{transform:perspective(400px) rotateX(-10deg)}70%{transform:perspective(400px) rotateX(10deg)}to{transform:perspective(400px) rotateX(0deg);opacity:1}}@-webkit-keyframes iziM-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}@keyframes iziM-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotate3d(1,0,0,40deg);transform:perspective(400px) rotate3d(1,0,0,40deg);opacity:0}}.litespeed-wrap h2.nav-tab-wrapper, .litespeed-wrap h3.nav-tab-wrapper{
	margin-bottom:0;
}

.litespeed-wrap h2 .nav-tab{
	font-size:14px;
}


.litespeed-wrap .striped > tbody > :nth-child(odd),
.litespeed-wrap ul.striped > :nth-child(odd),
.litespeed-wrap .alternate {
	background-color: #f9f9f9;
}



.litespeed-wrap .notice,
.litespeed-wrap div.updated,
.litespeed-wrap div.error {
	border-left: 4px solid #fff;
	box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);
	padding: 1px 12px;
}

.litespeed-wrap .notice-success,
.litespeed-wrap div.updated {
	border-left-color: #46b450;
}

.litespeed-wrap .notice-success.notice-alt {
	background-color: #ecf7ed;
}

.litespeed-wrap .notice-warning {
	border-left-color: #ffb900;
}

.litespeed-wrap .notice-warning.notice-alt {
	background-color: #fff8e5;
}

.litespeed-wrap .notice-error,
.litespeed-wrap div.error {
	border-left-color: #dc3232;
}

.litespeed-wrap .notice-error.notice-alt {
	background-color: #fbeaea;
}

.litespeed-wrap .notice-info {
	border-left-color: #00a0d2;
}

.litespeed-wrap .notice-info.notice-alt {
	background-color: #e5f5fa;
}<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<path fill="#CED1D9" d="M17.181,20.485H2.421l12.867-8.158l3.352,3.626l0.637,0.018c0.034-0.048,0.069-0.097,0.105-0.144
	l-0.293-0.826c-0.12-0.34-0.023-0.713,0.248-0.951c0.308-0.27,0.642-0.512,0.99-0.72c0.137-0.081,0.291-0.123,0.448-0.123
	c0.191,0,0.381,0.064,0.532,0.18l0.694,0.534c0.058-0.02,0.115-0.039,0.173-0.057l0.248-0.84c0.102-0.346,0.399-0.591,0.759-0.624
	c0.146-0.014,0.298-0.017,0.448-0.021V6.147H1.62V21.29h15.78c-0.071-0.215-0.155-0.416-0.207-0.647
	C17.181,20.59,17.183,20.538,17.181,20.485z M10.705,8.189c0.956,0,1.731,0.775,1.731,1.731c0,0.956-0.775,1.73-1.731,1.73
	c-0.956,0-1.731-0.774-1.731-1.73C8.974,8.964,9.75,8.189,10.705,8.189z M2.368,9.563l7.593,5.435l-7.593,4.729V9.563z
	 M23.63,17.247v3.792c-0.466-0.04-0.886-0.239-1.196-0.554h0.395l-0.911-0.986c-0.021-0.115-0.036-0.233-0.036-0.355
	C21.881,18.145,22.653,17.332,23.63,17.247z M24.298,20.979v-3.673c0.335,0.092,0.634,0.268,0.869,0.511v2.652
	C24.932,20.712,24.633,20.888,24.298,20.979z M19.383,22.458l-0.163,0.458H0.083V4.582h25.084v8.451l-0.003-0.008
	c-0.102-0.346-0.399-0.591-0.759-0.625c-0.035-0.003-0.071-0.002-0.107-0.005V5.451H0.952v16.596h16.776
	c0.163,0.176,0.397,0.286,0.666,0.291l0.883-0.024C19.311,22.362,19.346,22.41,19.383,22.458z M23.794,25.418
	c-0.191,0-0.378-0.012-0.563-0.027c-0.154-0.014-0.284-0.119-0.328-0.268l-0.326-1.106c-0.224-0.058-0.444-0.13-0.659-0.217
	l-0.913,0.702c-0.122,0.094-0.29,0.104-0.422,0.024c-0.326-0.195-0.634-0.419-0.916-0.666c-0.115-0.102-0.157-0.263-0.106-0.408
	l0.387-1.088c-0.149-0.179-0.286-0.365-0.408-0.559l-1.158,0.032c-0.149-0.003-0.294-0.086-0.354-0.227
	c-0.143-0.331-0.259-0.694-0.346-1.078c-0.033-0.149,0.027-0.305,0.154-0.392l0.95-0.65c-0.009-0.115-0.014-0.231-0.014-0.349
	s0.005-0.232,0.014-0.348l-0.95-0.65c-0.127-0.087-0.188-0.242-0.154-0.393c0.087-0.382,0.203-0.745,0.346-1.078
	c0.061-0.143,0.19-0.232,0.354-0.228l1.158,0.032c0.122-0.193,0.259-0.38,0.408-0.557l-0.387-1.088
	c-0.051-0.145-0.009-0.306,0.106-0.408c0.285-0.25,0.594-0.474,0.917-0.666c0.133-0.078,0.299-0.068,0.421,0.025l0.913,0.702
	c0.219-0.088,0.439-0.161,0.659-0.216l0.326-1.105c0.043-0.147,0.172-0.253,0.325-0.268c0.371-0.035,0.758-0.035,1.132,0
	c0.153,0.014,0.282,0.12,0.325,0.268l0.326,1.104c0.22,0.056,0.44,0.128,0.659,0.217l0.914-0.702
	c0.121-0.094,0.288-0.104,0.421-0.024c0.325,0.194,0.633,0.418,0.916,0.666c0.116,0.101,0.158,0.263,0.106,0.408l-0.387,1.088
	c0.149,0.177,0.286,0.363,0.408,0.557l1.158-0.032c0.137-0.004,0.294,0.085,0.354,0.228c0.144,0.334,0.26,0.696,0.347,1.078
	c0.034,0.149-0.027,0.306-0.154,0.393l-0.95,0.65c0.009,0.115,0.013,0.23,0.013,0.348s-0.004,0.233-0.013,0.349l0.95,0.65
	c0.127,0.087,0.188,0.242,0.154,0.393c-0.087,0.383-0.203,0.745-0.347,1.077c-0.062,0.141-0.214,0.228-0.354,0.227l-1.158-0.032
	c-0.121,0.193-0.258,0.38-0.408,0.559l0.387,1.088c0.052,0.146,0.01,0.307-0.106,0.408c-0.283,0.248-0.592,0.472-0.916,0.666
	c-0.132,0.08-0.299,0.07-0.421-0.024L25.67,23.8c-0.215,0.087-0.436,0.159-0.659,0.217l-0.326,1.106
	c-0.044,0.148-0.174,0.254-0.328,0.268C24.171,25.406,23.983,25.418,23.794,25.418z M23.548,24.661c0.162,0.008,0.328,0.008,0.491,0
	l0.314-1.067c0.039-0.133,0.148-0.232,0.284-0.261c0.317-0.065,0.631-0.169,0.93-0.306c0.125-0.061,0.273-0.043,0.385,0.044
	l0.882,0.677c0.137-0.091,0.271-0.188,0.399-0.29l-0.374-1.05c-0.046-0.132-0.017-0.277,0.078-0.38
	c0.225-0.245,0.419-0.51,0.576-0.788c0.068-0.121,0.191-0.206,0.337-0.19l1.115,0.031c0.056-0.15,0.105-0.306,0.149-0.468
	l-0.919-0.629c-0.115-0.079-0.177-0.216-0.16-0.355c0.02-0.159,0.03-0.321,0.03-0.486s-0.011-0.326-0.03-0.485
	c-0.017-0.139,0.045-0.276,0.16-0.355l0.919-0.629c-0.044-0.162-0.094-0.318-0.149-0.47l-1.115,0.031
	c-0.143-0.006-0.268-0.069-0.337-0.189c-0.158-0.279-0.352-0.544-0.576-0.787c-0.095-0.102-0.124-0.248-0.078-0.38l0.374-1.049
	c-0.129-0.103-0.262-0.199-0.399-0.29l-0.882,0.677c-0.11,0.084-0.258,0.101-0.383,0.044c-0.309-0.14-0.622-0.242-0.931-0.305
	c-0.136-0.028-0.246-0.128-0.285-0.262l-0.314-1.067c-0.164-0.009-0.328-0.008-0.491,0l-0.314,1.067
	c-0.039,0.133-0.149,0.234-0.285,0.262c-0.309,0.063-0.622,0.165-0.931,0.305c-0.128,0.055-0.274,0.04-0.384-0.044l-0.881-0.677
	c-0.137,0.09-0.271,0.188-0.398,0.29l0.373,1.05c0.046,0.132,0.017,0.277-0.078,0.38c-0.224,0.243-0.418,0.508-0.577,0.787
	c-0.067,0.12-0.204,0.18-0.336,0.189l-1.115-0.031c-0.056,0.15-0.105,0.308-0.148,0.47l0.918,0.629
	c0.115,0.079,0.178,0.216,0.16,0.354c-0.019,0.159-0.03,0.321-0.03,0.486s0.012,0.327,0.031,0.487
	c0.017,0.139-0.046,0.275-0.161,0.354l-0.919,0.629c0.044,0.162,0.094,0.318,0.149,0.468l1.115-0.031
	c0.135-0.012,0.269,0.069,0.337,0.189c0.158,0.279,0.352,0.544,0.577,0.789c0.094,0.103,0.123,0.249,0.077,0.38l-0.373,1.05
	c0.128,0.102,0.262,0.199,0.399,0.29l0.88-0.677c0.11-0.085,0.259-0.103,0.385-0.044c0.3,0.137,0.613,0.24,0.932,0.306
	c0.135,0.028,0.244,0.128,0.283,0.261L23.548,24.661z M23.794,22.306c-1.744,0-3.163-1.419-3.163-3.162
	c0-1.744,1.419-3.163,3.163-3.163c1.743,0,3.162,1.419,3.162,3.163C26.956,20.887,25.537,22.306,23.794,22.306z M23.794,16.73
	c-1.33,0-2.413,1.082-2.413,2.413c0,1.33,1.083,2.412,2.413,2.412s2.412-1.082,2.412-2.412C26.206,17.813,25.124,16.73,23.794,16.73
	z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M24.2,29.932c-0.686,0-1.381,0.061-2.071,0.18l0.333-3.945h5.769c0.138,0,0.25-0.112,0.25-0.25v-1.569
		c0-0.138-0.112-0.25-0.25-0.25h-7.455c-0.13,0-0.239,0.1-0.249,0.23l-0.564,7.014c-0.008,0.092,0.037,0.181,0.114,0.23l0.882,0.563
		c0.053,0.034,0.118,0.047,0.179,0.036c1.071-0.194,1.932-0.293,2.56-0.293c2.419,0,3.595,0.944,3.595,2.888
		c0,1.005-0.298,1.748-0.912,2.271c-0.617,0.525-1.506,0.791-2.643,0.791c-0.667,0-1.354-0.085-2.042-0.253
		c-0.683-0.168-1.258-0.4-1.708-0.691c-0.078-0.051-0.174-0.053-0.255-0.01c-0.081,0.044-0.13,0.128-0.13,0.22v1.641
		c0,0.087,0.045,0.168,0.12,0.214c0.923,0.562,2.268,0.847,3.996,0.847c1.791,0,3.221-0.466,4.252-1.386
		c1.039-0.928,1.565-2.219,1.565-3.837c0-1.43-0.486-2.576-1.445-3.404C27.143,30.347,25.834,29.932,24.2,29.932z"/>
	<path fill="#6699CC" d="M40.443,37.76c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.793,39.58,39.109,40.443,37.76z M36.484,37.826
		c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648c0-2.131,0.25-3.691,0.741-4.638
		c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365c0.489,0.961,0.737,2.515,0.737,4.619
		c0,2.103-0.248,3.661-0.738,4.629C38.259,37.376,37.526,37.826,36.484,37.826z"/>
	<path fill="#6699CC" d="M48.491,23.861c-1.752,0-3.074,0.677-3.932,2.011c-0.837,1.299-1.261,3.3-1.261,5.95
		c0,2.567,0.438,4.55,1.302,5.892c0.884,1.38,2.193,2.079,3.891,2.079c1.765,0,3.097-0.685,3.959-2.033
		c0.839-1.313,1.265-3.311,1.265-5.938c0-2.538-0.439-4.512-1.306-5.867C51.52,24.566,50.201,23.861,48.491,23.861z M48.491,37.826
		c-1.029,0-1.759-0.443-2.229-1.356c-0.491-0.953-0.741-2.517-0.741-4.648c0-2.132,0.249-3.692,0.741-4.638
		c0.47-0.906,1.198-1.346,2.229-1.346c1.042,0,1.775,0.447,2.243,1.365c0.488,0.96,0.736,2.514,0.736,4.619
		c0,2.104-0.248,3.662-0.736,4.629C50.266,37.376,49.532,37.826,48.491,37.826z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M62.324,17.893l2.085-2.085c0.366-0.367,0.569-0.855,0.569-1.374s-0.203-1.007-0.568-1.374L53.094,1.743
		c-0.365-0.367-0.854-0.57-1.373-0.57c-0.519,0-1.007,0.202-1.373,0.569l-7.883,7.882c-0.064-0.08-0.141-0.154-0.234-0.21
		l-7.519-4.431c-0.447-0.264-0.969-0.338-1.472-0.208c-0.503,0.13-0.924,0.448-1.188,0.896l-3.12,5.293l-1.2-2.208
		c-0.249-0.457-0.66-0.789-1.159-0.936c-0.497-0.146-1.023-0.09-1.476,0.157L11.034,15.62c-0.938,0.511-1.287,1.692-0.778,2.634
		l4.606,8.477c-1.289,0.254-2.264,1.391-2.264,2.753c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753H49.25c1.529,0,2.777-1.229,2.809-2.753l4.832-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		c0-1.549-1.26-2.809-2.81-2.809h-0.544l2.629-2.629l8.118-2.356c0.297-0.086,0.526-0.323,0.604-0.623
		c0.076-0.3-0.011-0.618-0.229-0.836L62.324,17.893z M33.561,6.558c0.034-0.057,0.083-0.08,0.118-0.089
		c0.033-0.01,0.087-0.013,0.145,0.021l7.408,4.367l-9.371,9.371c-0.757,0.757-0.756,1.99,0,2.747l3.7,3.701h-3.046l0.714-1.211
		c0.245-0.417,0.106-0.953-0.31-1.198c-0.417-0.245-0.953-0.106-1.198,0.31l-1.163,1.973c-0.024,0.041-0.027,0.085-0.044,0.127
		h-3.032L35.366,13.3c0.245-0.417,0.107-0.953-0.31-1.198s-0.953-0.107-1.198,0.31l-8.307,14.094
		c-0.032,0.054-0.04,0.113-0.059,0.17h-3.789L33.561,6.558z M11.871,17.157l14.066-7.644c0.056-0.031,0.109-0.026,0.144-0.015
		c0.035,0.011,0.083,0.035,0.115,0.093l1.266,2.328c0.138,0.254,0.386,0.397,0.653,0.434l-2.13,3.613l-0.291-0.535
		c-0.23-0.424-0.763-0.582-1.187-0.351c-0.424,0.231-0.582,0.762-0.351,1.187l0.388,0.713c0.127,0.234,0.346,0.381,0.588,0.433
		l-1.715,2.908L21.884,17.5c-0.23-0.424-0.762-0.582-1.187-0.351c-0.424,0.23-0.582,0.762-0.351,1.187l1.535,2.824
		c0.158,0.292,0.459,0.457,0.77,0.457c0.001,0,0.002,0,0.003,0l-1.833,3.109c-0.017-0.077-0.03-0.155-0.07-0.228l-2.677-4.926
		c-0.231-0.424-0.763-0.582-1.187-0.351c-0.424,0.231-0.582,0.762-0.351,1.187l2.677,4.926c0.159,0.292,0.459,0.457,0.77,0.457
		c0.084,0,0.165-0.038,0.248-0.063l-0.269,0.457c-0.091,0.155-0.113,0.325-0.104,0.492h-3.034l-5.03-9.255
		C11.743,17.326,11.778,17.208,11.871,17.157z M55.145,29.44l-4.83,40.981c-0.004,0.034-0.006,0.068-0.006,0.103
		c0,0.584-0.475,1.06-1.059,1.06H20.243c-0.583,0-1.059-0.476-1.059-1.06c0-0.033-0.002-0.067-0.006-0.103l-4.83-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h38.681C54.656,28.425,55.121,28.876,55.145,29.44z M55.468,22.428
		c-0.142,0.041-0.271,0.117-0.375,0.222l-4.024,4.025h-3.877l10.588-10.586c0.341-0.342,0.341-0.896,0-1.237
		c-0.342-0.342-0.896-0.342-1.238,0l-11.57,11.569c-0.076,0.075-0.128,0.163-0.17,0.254h-6.765l-4.937-4.938
		c-0.075-0.075-0.075-0.197,0-0.272L51.585,2.979c0.047-0.046,0.101-0.056,0.136-0.056c0.036,0,0.088,0.01,0.135,0.057
		l11.317,11.318c0.048,0.046,0.058,0.1,0.058,0.136c0,0.036-0.01,0.089-0.059,0.136l-2.704,2.705
		c-0.163,0.164-0.256,0.387-0.256,0.619s0.093,0.455,0.257,0.619l1.911,1.911L55.468,22.428z"/>
	<path fill="#6699CC" d="M51.648,8.721c-0.342-0.342-0.896-0.342-1.238,0L38.84,20.289c-0.341,0.341-0.341,0.896,0,1.237
		c0.172,0.171,0.396,0.256,0.619,0.256s0.448-0.085,0.619-0.256l11.57-11.568C51.988,9.617,51.99,9.063,51.648,8.721z"/>
	<path fill="#6699CC" d="M53.475,11.787L41.906,23.356c-0.342,0.342-0.342,0.896,0,1.237c0.171,0.171,0.396,0.256,0.619,0.256
		c0.223,0,0.447-0.085,0.619-0.256l11.566-11.569c0.342-0.342,0.341-0.896,0-1.237C54.37,11.445,53.814,11.445,53.475,11.787z"/>
	<path fill="#6699CC" d="M26.256,54.037l1.131,0.652l0.001-4.361l-3.779,2.18l1.131,0.653l-0.326,0.565
		c-0.896,1.549-1.013,3.057-0.329,4.242s2.047,1.84,3.838,1.84h4.415c0.483,0,0.875-0.393,0.875-0.875
		c0-0.483-0.392-0.875-0.875-0.875h-4.415c-1.123,0-1.969-0.353-2.323-0.965c-0.354-0.611-0.234-1.521,0.328-2.492L26.256,54.037z"
		/>
	<path fill="#6699CC" d="M29.08,47.398c0.138,0.08,0.289,0.117,0.437,0.117c0.302,0,0.596-0.156,0.758-0.438l2.221-3.844
		c0.371-0.641,0.817-1.09,1.325-1.336c0.454-0.221,0.896-0.222,1.35,0.002c0.506,0.244,0.95,0.692,1.322,1.336l0.366,0.632
		l-1.131,0.653l3.779,2.18l-0.003-4.362l-1.13,0.653l-0.366-0.633c-0.55-0.95-1.248-1.635-2.073-2.034
		c-0.926-0.449-1.946-0.45-2.875-0.003c-0.83,0.402-1.529,1.088-2.078,2.037l-2.221,3.844C28.519,46.622,28.662,47.157,29.08,47.398
		z"/>
	<path fill="#6699CC" d="M36.654,58.934l3.778,2.183v-1.308h0.637c1.791,0,3.154-0.652,3.84-1.84
		c0.684-1.187,0.566-2.693-0.33-4.242l-2.25-3.895c-0.241-0.419-0.776-0.561-1.195-0.32c-0.419,0.242-0.563,0.777-0.32,1.195
		l2.252,3.896c0.562,0.971,0.682,1.879,0.328,2.492c-0.354,0.611-1.199,0.963-2.322,0.963h-0.637v-1.307L36.654,58.934z"/>
	<path fill="#6699CC" d="M26.13,63.1c-0.48,0.053-0.826,0.485-0.772,0.967l0.327,2.906c0.05,0.447,0.429,0.777,0.869,0.777
		c0.033,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-0.327-2.907C27.043,63.391,26.613,63.048,26.13,63.1z"/>
	<path fill="#6699CC" d="M24.216,46.914c0.032,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-1.294-11.54
		c-0.054-0.479-0.481-0.822-0.967-0.772c-0.48,0.054-0.826,0.487-0.772,0.967l1.294,11.539
		C23.397,46.584,23.776,46.914,24.216,46.914z"/>
	<path fill="#6699CC" d="M43.361,63.1c-0.489-0.06-0.912,0.291-0.967,0.771l-0.326,2.906c-0.055,0.479,0.291,0.912,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.777l0.326-2.906C44.188,63.586,43.843,63.152,43.361,63.1z"/>
	<path fill="#6699CC" d="M45.176,46.932c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.776l1.297-11.563
		c0.056-0.48-0.291-0.914-0.771-0.967c-0.487-0.049-0.913,0.292-0.967,0.772l-1.298,11.563
		C44.35,46.445,44.695,46.878,45.176,46.932z"/>
	<path fill="#6699CC" d="M34.552,63.125c-0.483,0-0.875,0.393-0.875,0.875v2.875c0,0.482,0.392,0.875,0.875,0.875
		c0.483,0,0.875-0.393,0.875-0.875V64C35.427,63.518,35.036,63.125,34.552,63.125z"/>
	<path fill="#6699CC" d="M34.552,37.187c0.483,0,0.875-0.392,0.875-0.875V34.5c0-0.483-0.392-0.875-0.875-0.875
		c-0.483,0-0.875,0.392-0.875,0.875v1.812C33.677,36.795,34.069,37.187,34.552,37.187z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M61.821,13.089c-0.041-0.114-0.104-0.222-0.197-0.311L51.641,3.19c-0.032-0.03-0.071-0.042-0.104-0.066
		c-0.054-0.039-0.103-0.08-0.166-0.104c-0.07-0.029-0.145-0.036-0.219-0.044c-0.032-0.004-0.063-0.02-0.097-0.02h-0.015
		c-0.002,0-0.004,0-0.004,0H15.826c-1.506,0-2.731,1.224-2.731,2.729v63.631c0,1.505,1.225,2.729,2.731,2.729h43.351
		c1.506,0,2.729-1.225,2.729-2.729V13.441C61.906,13.314,61.872,13.196,61.821,13.089z M51.899,5.776l7.105,6.823h-7.004
		c-0.058,0-0.102-0.044-0.102-0.101V5.776L51.899,5.776z M60.222,69.315c0,0.576-0.47,1.045-1.045,1.045H15.826
		c-0.578,0-1.046-0.469-1.046-1.045V5.684c0-0.576,0.469-1.043,1.046-1.043h34.388v7.857c0,0.985,0.801,1.786,1.785,1.786h8.221
		v55.031H60.222z"/>
	<path fill="#6699CC" d="M42.681,38.698l-7.151-4.129c-0.261-0.15-0.582-0.15-0.843,0c-0.26,0.15-0.421,0.428-0.421,0.73v8.257
		c0,0.302,0.161,0.579,0.421,0.73c0.13,0.074,0.277,0.112,0.422,0.112c0.146,0,0.291-0.038,0.422-0.112l7.152-4.13
		c0.261-0.149,0.424-0.428,0.424-0.729C43.105,39.126,42.94,38.847,42.681,38.698z M35.951,42.096v-5.338l4.624,2.669L35.951,42.096
		z"/>
	<path fill="#6699CC" d="M48.729,29.417l1.035-2.911c0.116-0.326,0.021-0.691-0.239-0.918c-0.797-0.69-1.664-1.32-2.581-1.872
		c-0.297-0.179-0.672-0.157-0.947,0.054l-2.448,1.885c-0.924-0.406-1.877-0.717-2.846-0.928l-0.873-2.968
		c-0.099-0.333-0.39-0.572-0.736-0.601c-0.861-0.074-2.321-0.074-3.185,0c-0.346,0.029-0.637,0.269-0.736,0.601l-0.874,2.968
		c-0.969,0.21-1.923,0.521-2.846,0.928l-2.447-1.885c-0.276-0.212-0.651-0.234-0.948-0.055c-0.92,0.552-1.789,1.183-2.582,1.873
		c-0.261,0.228-0.358,0.592-0.241,0.918l1.036,2.911c-0.678,0.757-1.271,1.568-1.771,2.421l-3.096-0.084
		c-0.34-0.009-0.663,0.193-0.799,0.512c-0.39,0.918-0.716,1.937-0.969,3.03c-0.078,0.338,0.059,0.688,0.345,0.885l2.552,1.747
		c-0.058,0.539-0.085,1.024-0.085,1.499c0,0.474,0.028,0.958,0.085,1.497l-2.552,1.748c-0.287,0.196-0.423,0.546-0.345,0.884
		c0.25,1.089,0.577,2.106,0.968,3.03c0.136,0.32,0.436,0.505,0.8,0.513l3.096-0.085c0.5,0.853,1.093,1.664,1.771,2.422l-1.035,2.912
		c-0.117,0.326-0.02,0.689,0.241,0.918c0.785,0.683,1.653,1.313,2.58,1.872c0.297,0.18,0.675,0.157,0.95-0.055l2.448-1.886
		c0.922,0.405,1.874,0.716,2.844,0.929l0.875,2.968c0.098,0.332,0.39,0.571,0.735,0.602c0.428,0.037,0.996,0.078,1.592,0.078
		c0.596,0,1.163-0.041,1.592-0.078c0.347-0.03,0.638-0.27,0.737-0.602l0.873-2.968c0.969-0.213,1.921-0.521,2.843-0.929l2.45,1.885
		c0.275,0.213,0.653,0.233,0.949,0.056c0.928-0.561,1.798-1.191,2.583-1.876c0.261-0.227,0.356-0.592,0.239-0.916l-1.035-2.91
		c0.677-0.758,1.271-1.569,1.771-2.422l3.098,0.085c0.394-0.011,0.663-0.192,0.798-0.513c0.393-0.926,0.719-1.945,0.969-3.03
		c0.078-0.338-0.06-0.688-0.345-0.884l-2.553-1.749c0.06-0.536,0.087-1.028,0.087-1.496c0-0.476-0.027-0.962-0.086-1.499
		l2.552-1.747c0.286-0.197,0.423-0.547,0.345-0.884c-0.251-1.09-0.577-2.11-0.971-3.031c-0.132-0.311-0.437-0.512-0.775-0.512
		c-0.008,0-0.015,0-0.022,0l-3.098,0.084C49.998,30.983,49.404,30.172,48.729,29.417z M53.587,35.12l-2.494,1.708
		c-0.263,0.18-0.4,0.493-0.358,0.809c0.092,0.676,0.135,1.243,0.135,1.791c0,0.545-0.043,1.114-0.135,1.787
		c-0.042,0.316,0.096,0.629,0.358,0.81l2.494,1.708c-0.152,0.583-0.33,1.141-0.528,1.667l-3.019-0.084
		c-0.352-0.007-0.612,0.163-0.765,0.443c-0.559,1.035-1.271,2.011-2.118,2.896c-0.221,0.229-0.292,0.564-0.184,0.864l1.01,2.841
		c-0.448,0.361-0.926,0.708-1.425,1.03l-2.39-1.839c-0.25-0.193-0.591-0.229-0.878-0.091c-1.092,0.525-2.236,0.899-3.402,1.106
		c-0.314,0.059-0.57,0.287-0.66,0.593l-0.852,2.899c-0.55,0.034-1.203,0.034-1.752,0l-0.854-2.899
		c-0.091-0.306-0.345-0.535-0.66-0.593c-1.167-0.207-2.312-0.581-3.403-1.106c-0.287-0.14-0.626-0.103-0.879,0.091l-2.388,1.84
		c-0.497-0.322-0.974-0.668-1.424-1.03l1.01-2.842c0.107-0.301,0.036-0.635-0.185-0.864c-0.849-0.887-1.562-1.862-2.119-2.896
		c-0.152-0.281-0.438-0.45-0.766-0.444l-3.018,0.084c-0.199-0.526-0.375-1.083-0.528-1.667l2.493-1.706
		c0.263-0.18,0.402-0.492,0.359-0.809c-0.092-0.68-0.135-1.25-0.135-1.79c0-0.544,0.042-1.111,0.135-1.791
		c0.042-0.316-0.097-0.628-0.359-0.808l-2.493-1.707c0.154-0.586,0.33-1.145,0.528-1.667l3.019,0.083
		c0.316,0.025,0.613-0.161,0.765-0.442c0.558-1.035,1.271-2.009,2.12-2.896c0.22-0.229,0.292-0.564,0.185-0.865l-1.011-2.84
		c0.452-0.364,0.928-0.709,1.423-1.03l2.388,1.838c0.253,0.194,0.593,0.229,0.879,0.091c1.093-0.526,2.239-0.9,3.404-1.108
		c0.314-0.057,0.569-0.285,0.66-0.591l0.854-2.898c0.551-0.035,1.199-0.035,1.752,0l0.852,2.898c0.092,0.306,0.345,0.535,0.66,0.591
		c1.165,0.208,2.311,0.582,3.405,1.108c0.285,0.138,0.625,0.102,0.879-0.091l2.387-1.838c0.494,0.321,0.971,0.666,1.423,1.031
		l-1.01,2.84c-0.108,0.301-0.036,0.636,0.184,0.864c0.845,0.882,1.558,1.857,2.12,2.896c0.146,0.274,0.43,0.442,0.741,0.442
		c0.007,0,0.014,0,0.021,0l3.02-0.083C53.257,33.978,53.435,34.536,53.587,35.12z"/>
	<path fill="#6699CC" d="M37.5,29.626c-5.404,0-9.801,4.396-9.801,9.799c0,5.402,4.397,9.803,9.801,9.803s9.8-4.398,9.8-9.803
		C47.3,34.022,42.904,29.626,37.5,29.626z M37.5,47.543c-4.475,0-8.116-3.641-8.116-8.117c0-4.475,3.642-8.114,8.116-8.114
		c4.474,0,8.114,3.639,8.114,8.114S41.974,47.543,37.5,47.543z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M47.423,47.475c-6.108,0-11.078,4.971-11.078,11.08c0,6.107,4.969,11.077,11.078,11.077
		c6.109,0,11.079-4.97,11.079-11.077C58.502,52.443,53.532,47.475,47.423,47.475z M47.423,67.882c-5.144,0-9.327-4.185-9.327-9.327
		c0-5.146,4.184-9.33,9.327-9.33c5.146,0,9.329,4.186,9.329,9.33C56.752,63.697,52.566,67.882,47.423,67.882z"/>
	<path fill="#6699CC" d="M52.827,53.148c-0.343-0.342-0.896-0.342-1.238,0l-4.165,4.166l-4.165-4.166
		c-0.342-0.342-0.896-0.342-1.237,0c-0.342,0.343-0.342,0.896,0,1.238l4.164,4.165l-4.164,4.165c-0.342,0.342-0.342,0.896,0,1.238
		c0.17,0.171,0.396,0.256,0.619,0.256c0.223,0,0.447-0.085,0.618-0.256l4.165-4.165l4.165,4.165
		c0.171,0.171,0.396,0.256,0.619,0.256s0.448-0.085,0.619-0.256c0.341-0.342,0.341-0.896,0-1.238l-4.165-4.165l4.165-4.165
		C53.168,54.046,53.168,53.491,52.827,53.148z"/>
	<path fill="#6699CC" d="M64.166,21.332c-0.045-0.116-0.109-0.225-0.205-0.316l-8.912-8.56c-0.029-0.028-0.066-0.04-0.1-0.063
		c-0.059-0.042-0.113-0.087-0.182-0.115c-0.072-0.029-0.147-0.036-0.225-0.045c-0.035-0.004-0.064-0.021-0.102-0.021h-0.018
		c-0.001,0-0.002,0-0.003,0h-2.938c-0.023-0.032-0.037-0.07-0.067-0.099l-5.149-4.946c-0.031-0.031-0.072-0.044-0.107-0.069
		c-0.057-0.04-0.107-0.083-0.172-0.109c-0.071-0.029-0.146-0.036-0.223-0.045c-0.035-0.004-0.066-0.021-0.104-0.021h-0.018
		c0,0,0,0-0.002,0h-2.832c-0.045-0.119-0.108-0.232-0.207-0.326L36.901,1.12c0,0-0.001,0-0.001-0.001l-0.012-0.012
		c-0.027-0.026-0.061-0.036-0.09-0.057c-0.061-0.046-0.12-0.093-0.191-0.122c-0.064-0.026-0.132-0.03-0.2-0.04
		c-0.042-0.006-0.081-0.025-0.125-0.025H10.139c-1.364,0-2.474,1.11-2.474,2.474V57.23c0,1.362,1.11,2.473,2.474,2.473h3.38
		c0.139,0,0.266-0.039,0.383-0.098v4.953c0,1.385,1.126,2.51,2.51,2.51h4.018v4.509c0,1.411,1.148,2.56,2.56,2.56h38.701
		c1.41,0,2.559-1.147,2.559-2.56V21.695C64.25,21.564,64.217,21.443,64.166,21.332z M55.316,15.14l5.924,5.689l-5.924,0.023V15.14z
		 M46.536,9.852l2.457,2.36h-2.457V9.852z M37.157,3.792l3.26,3.131h-3.26V3.792z M13.902,9.432v48.619
		c-0.117-0.059-0.244-0.098-0.383-0.098h-3.38c-0.399,0-0.724-0.324-0.724-0.723V3.337c0-0.399,0.325-0.724,0.724-0.724h25.268v4.31
		H16.413C15.028,6.923,13.902,8.048,13.902,9.432z M16.413,65.318c-0.419,0-0.76-0.34-0.76-0.76V9.432
		c0-0.418,0.341-0.759,0.76-0.759h28.374v3.539H22.99c-1.411,0-2.56,1.148-2.56,2.56V65.32h-4.017V65.318z M62.5,71.577
		c0,0.446-0.361,0.81-0.809,0.81H22.99c-0.446,0-0.81-0.363-0.81-0.81V14.771c0-0.446,0.363-0.81,0.81-0.81h30.576v6.891
		c0,0.947,0.771,1.718,1.718,1.718H62.5V71.577z"/>
	<path fill="#6699CC" d="M27.498,28.501h26.625c0.482,0,0.875-0.392,0.875-0.875s-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.392-0.875,0.875S27.015,28.501,27.498,28.501z"/>
	<path fill="#6699CC" d="M27.498,36.757h26.625c0.482,0,0.875-0.392,0.875-0.875c0-0.483-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.392-0.875,0.875C26.623,36.365,27.015,36.757,27.498,36.757z"/>
	<path fill="#6699CC" d="M27.498,45.014h26.625c0.482,0,0.875-0.393,0.875-0.875c0-0.484-0.393-0.875-0.875-0.875H27.498
		c-0.483,0-0.875,0.391-0.875,0.875C26.623,44.621,27.015,45.014,27.498,45.014z"/>
	<path fill="#6699CC" d="M32.999,51.52h-5.501c-0.483,0-0.875,0.393-0.875,0.875c0,0.483,0.392,0.875,0.875,0.875h5.501
		c0.483,0,0.875-0.392,0.875-0.875C33.874,51.912,33.482,51.52,32.999,51.52z"/>
	<path fill="#6699CC" d="M31.124,59.775h-3.626c-0.483,0-0.875,0.392-0.875,0.875c0,0.482,0.392,0.875,0.875,0.875h3.626
		c0.483,0,0.875-0.393,0.875-0.875C31.999,60.167,31.607,59.775,31.124,59.775z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<g id="Layer_1_1_" display="none">
	<path display="inline" fill="#E8AE4A" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.509,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.322,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.358,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy_3" display="none">
	<path display="inline" fill="#4675B8" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.509,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.322,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.358,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy" display="none">
	<path display="inline" fill="#A32430" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M15.159,13.764c0.187,0.188,0.288,0.437,0.288,0.697c0,0.262-0.102,0.51-0.288,0.695
		c-0.185,0.184-0.438,0.289-0.698,0.289c-0.262,0-0.518-0.105-0.697-0.291L10,11.393l-3.764,3.765c-0.361,0.36-1.033,0.36-1.393,0
		c-0.187-0.185-0.29-0.433-0.29-0.695s0.103-0.512,0.289-0.696l3.764-3.767L4.842,6.234c-0.385-0.384-0.385-1.01,0-1.394
		c0.359-0.361,1.032-0.361,1.394,0L10,8.604l3.766-3.765c0.356-0.359,1.033-0.361,1.395,0c0.188,0.185,0.288,0.433,0.288,0.697
		c0.001,0.264-0.103,0.511-0.288,0.697l-3.766,3.764L15.159,13.764z"/>
</g>
<g id="Layer_1_copy_2">
	<path fill="#3ABFBF" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10C20,4.478,15.521,0,10,0z
		 M15.458,6.018l-5.944,9.089c-0.031,0.048-0.07,0.088-0.115,0.121l-0.088,0.063c-0.03,0.021-0.063,0.04-0.097,0.053l-0.189,0.075
		c-0.048,0.019-0.1,0.03-0.152,0.032l-0.146,0.004c-0.005,0-0.009,0-0.014,0c-0.026,0-0.052-0.003-0.078-0.008l-0.309-0.096
		c-0.058-0.022-0.11-0.058-0.154-0.101c-0.025-0.017-0.077-0.056-0.099-0.074l-3.381-3.133c-0.185-0.171-0.295-0.405-0.307-0.661
		c-0.01-0.256,0.079-0.497,0.251-0.683c0.357-0.378,0.974-0.398,1.349-0.054l2.597,2.399l5.277-8.069
		c0.277-0.426,0.895-0.558,1.322-0.276c0.211,0.137,0.357,0.352,0.41,0.602C15.645,5.554,15.596,5.807,15.458,6.018z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<polygon fill="#6699CC" points="33.496,19.622 41.335,23.493 48.044,17.635 49.146,18.897 50.775,14.133 45.835,15.104 
		46.937,16.367 41.075,21.487 33.354,17.676 22.786,24.961 23.741,26.347 	"/>
	<path fill="#6699CC" d="M64.08,13.12c-0.041-0.11-0.104-0.216-0.195-0.303L53.709,3.043c-0.027-0.027-0.063-0.039-0.095-0.061
		c-0.057-0.042-0.11-0.084-0.175-0.112c-0.067-0.027-0.138-0.033-0.209-0.042c-0.036-0.004-0.068-0.021-0.104-0.021h-0.017
		c-0.002,0-0.002,0-0.002,0h-39.51c-1.524,0-2.765,1.241-2.765,2.765v64.853c0,1.525,1.24,2.765,2.765,2.765h47.807
		c1.522,0,2.765-1.239,2.765-2.765V13.478C64.167,13.349,64.133,13.229,64.08,13.12z M53.968,5.625l7.3,7.011h-7.18
		c-0.065,0-0.12-0.054-0.12-0.12V5.625z M62.483,70.427c0,0.597-0.484,1.082-1.081,1.082H13.598c-0.597,0-1.082-0.485-1.082-1.082
		V5.574c0-0.596,0.485-1.082,1.082-1.082h38.688v8.025c0,0.995,0.809,1.803,1.803,1.803h8.396V70.427z"/>
	<path fill="#6699CC" d="M17.724,28.494c-0.464,0-0.842,0.377-0.842,0.842v28.058c0,0.465,0.377,0.841,0.842,0.841h39.185
		c0.065,0,0.122-0.023,0.184-0.036c0.061,0.013,0.118,0.036,0.183,0.036c0.464,0,0.842-0.376,0.842-0.841V29.336
		c0-0.465-0.378-0.842-0.842-0.842c-0.064,0-0.122,0.023-0.183,0.037c-0.062-0.014-0.118-0.037-0.184-0.037H17.724z M56.435,37.847
		H41.649v-2.992h14.785V37.847z M18.565,34.854h4.931v2.992h-4.931V34.854z M18.565,39.529h4.931v2.993h-4.931V39.529z
		 M39.966,47.199H25.18v-2.994h14.786V47.199z M41.649,44.205h14.785v2.994H41.649V44.205z M25.18,42.522v-2.993h14.786v2.993H25.18
		z M23.497,44.205v2.994h-4.931v-2.994H23.497z M23.497,48.882v2.992h-4.931v-2.992H23.497z M25.18,48.882h14.786v2.992H25.18
		V48.882z M41.649,48.882h14.785v2.992H41.649V48.882z M56.435,42.522H41.649v-2.993h14.785V42.522z M39.966,37.847H25.18v-2.992
		h14.786V37.847z M25.18,33.171v-2.994h14.786v2.994H25.18z M23.497,33.171h-4.931v-2.994h4.931V33.171z M18.565,53.559h4.931v2.993
		h-4.931V53.559z M25.18,53.559h14.786v2.993H25.18V53.559z M41.649,53.559h14.785v2.993H41.649V53.559z M56.435,33.171H41.649
		v-2.994h14.785V33.171z"/>
	<path fill="#6699CC" d="M28.019,37.043h9.289c0.398,0,0.721-0.323,0.721-0.721s-0.323-0.721-0.721-0.721h-9.289
		c-0.398,0-0.721,0.323-0.721,0.721S27.62,37.043,28.019,37.043z"/>
	<path fill="#6699CC" d="M44.5,37.043h9.29c0.397,0,0.721-0.323,0.721-0.721s-0.323-0.721-0.721-0.721H44.5
		c-0.398,0-0.721,0.323-0.721,0.721S44.102,37.043,44.5,37.043z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M56.841,27.021h-2.944l3.079-8.461c0.108-0.299,0.047-0.634-0.162-0.874l-7.001-8.046
		c-0.019-0.021-0.042-0.036-0.063-0.055c-0.033-0.032-0.065-0.065-0.104-0.091c-0.017-0.011-0.035-0.018-0.053-0.029
		c-0.049-0.028-0.098-0.056-0.15-0.075c-0.01-0.003-0.02-0.004-0.029-0.007c-0.062-0.02-0.124-0.035-0.189-0.04
		c-0.02-0.002-0.04,0.002-0.06,0.001c-0.05,0-0.1-0.003-0.149,0.005L38.48,11.014c-0.314,0.05-0.577,0.266-0.686,0.565
		l-3.846,10.563c-0.027,0.075-0.043,0.152-0.049,0.229c0,0.003,0,0.006,0,0.01c-0.005,0.073-0.001,0.146,0.012,0.217
		c0.003,0.017,0.011,0.032,0.015,0.048c0.014,0.058,0.03,0.114,0.056,0.168c0.01,0.021,0.025,0.038,0.036,0.058
		c0.024,0.042,0.045,0.084,0.076,0.123c0.003,0.003,0.008,0.005,0.011,0.008c0.003,0.004,0.005,0.01,0.009,0.014l3.515,4.003h-0.583
		l-3.372-3.876c-0.021-0.025-0.049-0.042-0.073-0.064c-0.03-0.027-0.057-0.057-0.09-0.08c-0.028-0.02-0.06-0.032-0.089-0.048
		c-0.037-0.02-0.072-0.041-0.11-0.055c-0.027-0.01-0.056-0.013-0.084-0.02c-0.045-0.012-0.089-0.024-0.136-0.029
		c-0.029-0.002-0.06,0.002-0.089,0.002c-0.042,0.001-0.083-0.003-0.125,0.004L22.34,24.521c-0.314,0.05-0.577,0.266-0.686,0.565
		l-0.705,1.936h-2.79c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753h29.007c1.53,0,2.778-1.229,2.808-2.753l4.833-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		C59.649,28.281,58.39,27.021,56.841,27.021z M52.035,27.021h-0.145l-5.603-6.378l2.925-8.036l0.254-0.698l5.688,6.537
		L52.035,27.021z M39.262,12.662l8.561-1.351l-0.254,0.698l-2.925,8.036l-8.545,1.309L39.262,12.662z M36.483,23.064l8.464-1.296
		l1.982,2.257l2.631,2.996h-9.604L36.483,23.064z M33.264,25.588l0.063-0.174l1.398,1.607h-1.983L33.264,25.588z M23.123,26.168
		l8.56-1.353l-0.544,1.494l-0.259,0.712h-8.067L23.123,26.168z M53.067,70.768c-0.004,0.034-0.006,0.068-0.006,0.103
		c0,0.584-0.475,1.059-1.059,1.059H22.996c-0.583,0-1.059-0.475-1.059-1.059c0-0.034-0.002-0.068-0.006-0.103l-4.829-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h3.402h9.93h5.154h2.914h11.934h1.153h4.193c0.569,0,1.034,0.451,1.058,1.015L53.067,70.768z"
		/>
	<path fill="#6699CC" d="M28.884,63.444c-0.48,0.054-0.826,0.486-0.772,0.967l0.326,2.908c0.05,0.447,0.429,0.777,0.869,0.777
		c0.032,0,0.065-0.002,0.099-0.006c0.48-0.054,0.826-0.486,0.772-0.967l-0.326-2.908C29.797,63.735,29.364,63.382,28.884,63.444z"/>
	<path fill="#6699CC" d="M26.532,42.486c0.48-0.054,0.826-0.486,0.772-0.967l-0.759-6.771c-0.054-0.479-0.479-0.819-0.967-0.772
		c-0.48,0.054-0.826,0.487-0.772,0.967l0.759,6.771c0.05,0.447,0.429,0.777,0.869,0.777C26.466,42.492,26.499,42.49,26.532,42.486z"
		/>
	<path fill="#6699CC" d="M46.116,63.446c-0.485-0.057-0.914,0.291-0.967,0.771l-0.326,2.906c-0.055,0.48,0.291,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.326-2.906C46.942,63.933,46.597,63.5,46.116,63.446z"/>
	<path fill="#6699CC" d="M49.421,33.976c-0.488-0.052-0.913,0.292-0.967,0.772l-0.732,6.525c-0.055,0.48,0.291,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.732-6.525C50.247,34.463,49.901,34.03,49.421,33.976z"/>
	<path fill="#6699CC" d="M37.306,64.894c-0.483,0-0.875,0.392-0.875,0.875v1.453c0,0.483,0.392,0.875,0.875,0.875
		s0.875-0.392,0.875-0.875v-1.453C38.181,65.285,37.789,64.894,37.306,64.894z"/>
	<path fill="#6699CC" d="M37.306,37.75c0.483,0,0.875-0.392,0.875-0.875v-2.029c0-0.483-0.392-0.875-0.875-0.875
		s-0.875,0.392-0.875,0.875v2.029C36.431,37.358,36.822,37.75,37.306,37.75z"/>
	<path fill="#6699CC" d="M37.5,40.496c-6.108,0-11.078,4.97-11.078,11.079c0,6.108,4.97,11.078,11.078,11.078
		c6.109,0,11.079-4.97,11.079-11.078C48.578,45.466,43.608,40.496,37.5,40.496z M37.5,60.903c-5.144,0-9.328-4.185-9.328-9.328
		c0-5.145,4.185-9.329,9.328-9.329c5.144,0,9.329,4.185,9.329,9.329C46.828,56.719,42.644,60.903,37.5,60.903z"/>
	<path fill="#6699CC" d="M42.904,46.171c-0.342-0.342-0.896-0.342-1.238,0L37.5,50.336l-4.166-4.165
		c-0.342-0.342-0.896-0.342-1.237,0s-0.342,0.896,0,1.238l4.165,4.165l-4.165,4.165c-0.342,0.342-0.342,0.896,0,1.238
		c0.171,0.171,0.395,0.256,0.619,0.256s0.448-0.085,0.619-0.256l4.166-4.165l4.166,4.165c0.171,0.171,0.396,0.256,0.619,0.256
		s0.448-0.085,0.619-0.256c0.341-0.342,0.341-0.896,0-1.238l-4.165-4.165l4.165-4.165C43.245,47.067,43.245,46.513,42.904,46.171z"
		/>
	<path fill="#6699CC" d="M21.312,23.8c0.167,0.191,0.408,0.298,0.658,0.298c0.044,0,0.088-0.003,0.132-0.01l10.519-1.611
		c0.004,0,0.007-0.002,0.011-0.003c0.006-0.001,0.012-0.001,0.019-0.002c0.041-0.007,0.077-0.025,0.115-0.038
		c0.03-0.01,0.062-0.017,0.091-0.03c0.042-0.02,0.08-0.047,0.118-0.073c0.024-0.017,0.052-0.029,0.074-0.048
		c0.038-0.032,0.069-0.071,0.102-0.109c0.017-0.02,0.038-0.037,0.053-0.059c0.044-0.063,0.081-0.131,0.107-0.205l3.845-10.564
		c0.109-0.299,0.047-0.634-0.162-0.874L29.99,2.426c-0.023-0.026-0.052-0.045-0.077-0.068c-0.028-0.025-0.054-0.054-0.085-0.075
		c-0.034-0.023-0.071-0.039-0.108-0.058c-0.031-0.015-0.059-0.034-0.091-0.045c-0.036-0.013-0.073-0.018-0.11-0.026
		c-0.037-0.008-0.072-0.02-0.11-0.023c-0.035-0.003-0.071,0.001-0.106,0.003c-0.036,0.001-0.072-0.003-0.108,0.003L18.66,3.799
		c-0.314,0.05-0.577,0.266-0.686,0.565l-3.845,10.563c-0.027,0.075-0.043,0.153-0.049,0.23c0,0.005,0,0.009,0,0.014
		c-0.005,0.071-0.001,0.143,0.011,0.213c0.004,0.021,0.014,0.041,0.019,0.062c0.014,0.052,0.027,0.104,0.05,0.153
		c0.013,0.027,0.031,0.05,0.047,0.075c0.021,0.036,0.039,0.074,0.066,0.107c0.002,0.003,0.007,0.004,0.009,0.007
		c0.004,0.005,0.006,0.011,0.011,0.016L21.312,23.8z M22.311,22.285l-5.648-6.435l8.462-1.297l5.651,6.435L22.311,22.285z
		 M32.171,19.924l-2.026-2.306l-3.679-4.189l3.178-8.734l5.69,6.538L32.171,19.924z M19.442,5.447L28,4.096l-3.178,8.734
		l-8.543,1.309L19.442,5.447z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M47.673,48.495c-5.733,0-10.4,4.666-10.4,10.401c0,5.733,4.667,10.398,10.4,10.398
		c5.735,0,10.401-4.665,10.401-10.398C58.074,53.161,53.408,48.495,47.673,48.495z M47.673,67.546c-4.771,0-8.649-3.88-8.649-8.649
		c0-4.771,3.881-8.65,8.649-8.65c4.771,0,8.651,3.881,8.651,8.65S52.443,67.546,47.673,67.546z"/>
	<path fill="#6699CC" d="M52.758,53.811c-0.34-0.343-0.896-0.341-1.236,0l-3.848,3.848l-3.847-3.848
		c-0.343-0.343-0.897-0.343-1.237,0c-0.342,0.342-0.343,0.896-0.001,1.236l3.849,3.85l-3.849,3.849
		c-0.342,0.341-0.341,0.896,0.001,1.237c0.17,0.17,0.395,0.256,0.618,0.256s0.448-0.086,0.619-0.256l3.847-3.849l3.848,3.849
		c0.17,0.17,0.396,0.256,0.619,0.256c0.223,0,0.447-0.086,0.617-0.256c0.342-0.342,0.344-0.896,0.001-1.237l-3.848-3.849l3.848-3.85
		C53.102,54.706,53.1,54.15,52.758,53.811z"/>
	<path fill="#6699CC" d="M64.165,17.493c-0.044-0.117-0.108-0.228-0.205-0.32l-9.576-9.197c-0.03-0.029-0.067-0.041-0.102-0.064
		c-0.058-0.042-0.111-0.087-0.179-0.114c-0.076-0.031-0.156-0.04-0.236-0.048c-0.031-0.003-0.059-0.018-0.09-0.018h-0.015
		c-0.003,0-0.005,0-0.007,0h-3.189c-0.029-0.041-0.047-0.088-0.086-0.124l-5.531-5.314c-0.03-0.029-0.067-0.04-0.102-0.064
		c-0.058-0.042-0.111-0.087-0.18-0.114c-0.072-0.03-0.148-0.037-0.227-0.046c-0.034-0.004-0.064-0.02-0.101-0.02h-0.016
		c-0.001,0-0.002,0-0.004,0H12.917c-1.451,0-2.632,1.18-2.632,2.631v59.231c0,1.449,1.181,2.631,2.632,2.631h4.382v4.909
		c0,1.479,1.205,2.685,2.685,2.685h41.583c1.479,0,2.684-1.203,2.684-2.685V17.857C64.25,17.726,64.217,17.604,64.165,17.493z
		 M54.652,10.661l6.574,6.314l-6.574-0.023V10.661z M45.218,4.979l2.866,2.753h-2.866V4.979z M12.917,64.793
		c-0.486,0-0.882-0.396-0.882-0.881V4.681c0-0.486,0.396-0.881,0.882-0.881h30.551v3.932H19.984c-1.48,0-2.685,1.205-2.685,2.686
		v54.375H12.917z M62.5,71.452c0,0.516-0.419,0.935-0.934,0.935H19.984c-0.516,0-0.935-0.419-0.935-0.935V10.417
		c0-0.516,0.419-0.936,0.935-0.936h32.918v7.469c0,0.982,0.798,1.781,1.779,1.781H62.5V71.452z"/>
	<path fill="#6699CC" d="M28.199,23.273c-0.715,0.622-1.073,1.868-1.073,3.739v3.275c0,1.27-0.229,2.15-0.686,2.641
		c-0.457,0.491-1.287,0.736-2.488,0.736h-0.774v1.333h0.774c1.202,0,2.031,0.246,2.488,0.736c0.457,0.49,0.686,1.371,0.686,2.641
		v3.274c0,1.871,0.357,3.119,1.073,3.746c0.716,0.625,2.126,0.938,4.234,0.938h0.787V45h-0.863c-1.193,0-1.972-0.188-2.336-0.559
		c-0.364-0.373-0.546-1.155-0.546-2.35V38.45c0-1.329-0.208-2.277-0.622-2.844s-1.181-0.995-2.298-1.282
		c1.1-0.254,1.862-0.668,2.285-1.244s0.635-1.532,0.635-2.869v-3.644c0-1.193,0.182-1.976,0.546-2.349s1.143-0.559,2.336-0.559
		h0.863v-1.32h-0.787C30.326,22.34,28.915,22.651,28.199,23.273z"/>
	<path fill="#6699CC" d="M38.425,43.136c0.091,0,0.181-0.024,0.263-0.073c1.3-0.803,2.289-1.768,2.94-2.869
		c0.653-1.102,1.021-2.433,1.092-3.958c0.007-0.136-0.043-0.27-0.138-0.369c-0.094-0.099-0.225-0.155-0.361-0.155H39.72
		c-0.276,0-0.5,0.224-0.5,0.5v0.47c0,1.045-0.172,1.941-0.511,2.662c-0.335,0.713-0.873,1.342-1.596,1.873
		c-0.118,0.088-0.191,0.221-0.203,0.365c-0.012,0.145,0.042,0.288,0.145,0.393l1.016,1.016
		C38.168,43.086,38.296,43.136,38.425,43.136z M39.614,39.77c0.398-0.848,0.603-1.875,0.605-3.058h1.464
		c-0.113,1.14-0.422,2.138-0.916,2.972c-0.513,0.867-1.276,1.646-2.273,2.313l-0.336-0.335
		C38.794,41.109,39.282,40.475,39.614,39.77z"/>
	<path fill="#6699CC" d="M40.914,31.685c0.609,0,1.132-0.214,1.553-0.635c0.422-0.421,0.637-0.944,0.637-1.554
		c0-0.6-0.213-1.119-0.634-1.544c-0.842-0.853-2.264-0.854-3.108-0.009c-0.422,0.422-0.635,0.944-0.635,1.553
		s0.213,1.131,0.635,1.554C39.782,31.471,40.307,31.685,40.914,31.685z M40.066,28.65c0.233-0.234,0.504-0.343,0.848-0.343
		c0.338,0,0.613,0.113,0.844,0.347c0.231,0.235,0.346,0.51,0.346,0.842c0,0.344-0.108,0.612-0.344,0.846
		c-0.464,0.464-1.229,0.464-1.691,0c-0.229-0.23-0.342-0.507-0.342-0.846S39.838,28.88,40.066,28.65z"/>
	<path fill="#6699CC" d="M54.563,27.012c0-1.871-0.354-3.117-1.062-3.739c-0.706-0.622-2.113-0.933-4.221-0.933h-0.8v1.32h0.889
		c1.185,0,1.957,0.184,2.316,0.552s0.539,1.153,0.539,2.355v3.644c0,1.337,0.209,2.293,0.629,2.869
		c0.418,0.576,1.179,0.99,2.278,1.244c-1.108,0.288-1.871,0.715-2.284,1.282c-0.416,0.567-0.623,1.515-0.623,2.844v3.644
		c0,1.202-0.18,1.986-0.539,2.355c-0.359,0.367-1.133,0.552-2.316,0.552H48.48v1.333h0.8c2.106,0,3.515-0.313,4.221-0.939
		c0.707-0.625,1.062-1.875,1.062-3.744v-3.275c0-1.27,0.229-2.15,0.686-2.641c0.457-0.491,1.286-0.736,2.488-0.736h0.787v-1.333
		h-0.787c-1.202,0-2.031-0.246-2.488-0.736c-0.457-0.49-0.686-1.371-0.686-2.641V27.012z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M61.125,33.733h-1.583V11.637c0-0.003-0.002-0.007-0.002-0.01c-0.001-0.077-0.024-0.151-0.046-0.227
		c-0.01-0.035-0.01-0.074-0.023-0.107c-0.01-0.023-0.029-0.04-0.041-0.062c-0.043-0.079-0.089-0.156-0.152-0.219
		c-0.002-0.002-0.004-0.005-0.006-0.007L50.12,2.247h-0.001l-0.014-0.013c-0.028-0.027-0.065-0.039-0.098-0.061
		c-0.059-0.043-0.113-0.089-0.183-0.116s-0.14-0.033-0.212-0.042C49.575,2.008,49.541,1.99,49.5,1.99H18.478
		c-1.585,0-2.875,1.29-2.875,2.875v28.868h-1.478c-1.585,0-2.875,1.29-2.875,2.875v6.028c0,1.585,1.29,2.875,2.875,2.875h1.876
		c0.037,0,0.067-0.017,0.103-0.021c0.081,3.687-0.345,7.248-0.771,10.725c-0.626,5.098-1.273,10.367-0.339,16.061
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.894-5.446-0.262-10.59,0.349-15.563c0.621-5.06,1.259-10.289,0.356-15.933h1.765c-0.001,0.053-0.014,0.103-0.005,0.155
		c0.893,5.445,0.261,10.588-0.35,15.562c-0.626,5.097-1.274,10.367-0.338,16.062c0.07,0.43,0.441,0.733,0.862,0.733
		c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005c-0.895-5.446-0.262-10.592,0.349-15.565
		c0.621-5.058,1.26-10.286,0.356-15.93h1.767c-0.001,0.053-0.015,0.103-0.006,0.155c0.893,5.447,0.261,10.591-0.35,15.563
		c-0.626,5.097-1.273,10.366-0.34,16.06c0.07,0.429,0.441,0.732,0.862,0.732c0.047,0,0.095-0.004,0.143-0.012
		c0.477-0.078,0.8-0.528,0.722-1.005c-0.893-5.445-0.261-10.589,0.351-15.562c0.621-5.06,1.26-10.289,0.356-15.935h1.764
		c-0.001,0.053-0.015,0.103-0.006,0.155c0.893,5.445,0.261,10.589-0.35,15.563c-0.626,5.098-1.273,10.367-0.339,16.061
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.894-5.446-0.262-10.59,0.349-15.563c0.621-5.059,1.259-10.288,0.356-15.932H29.7c-0.001,0.053-0.015,0.103-0.006,0.155
		c0.891,5.443,0.259,10.586-0.351,15.559c-0.626,5.1-1.274,10.37-0.339,16.064c0.07,0.429,0.441,0.732,0.862,0.732
		c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005c-0.894-5.447-0.262-10.593,0.35-15.567
		c0.621-5.057,1.259-10.285,0.357-15.928h1.764c-0.001,0.053-0.015,0.104-0.006,0.156c0.894,5.445,0.262,10.59-0.349,15.563
		c-0.626,5.098-1.274,10.366-0.339,16.059c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012
		c0.477-0.078,0.8-0.528,0.722-1.005c-0.894-5.445-0.262-10.588,0.35-15.563c0.622-5.059,1.26-10.289,0.355-15.934h1.766
		c-0.001,0.053-0.015,0.104-0.006,0.156c0.893,5.444,0.261,10.59-0.35,15.563c-0.626,5.097-1.273,10.365-0.34,16.058
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.143-0.012c0.477-0.078,0.8-0.528,0.722-1.005
		c-0.892-5.444-0.261-10.588,0.35-15.563c0.621-5.059,1.259-10.289,0.356-15.934h1.767c-0.001,0.053-0.015,0.103-0.006,0.156
		c0.892,5.443,0.26,10.588-0.351,15.562c-0.625,5.099-1.271,10.368-0.34,16.062c0.07,0.429,0.441,0.732,0.862,0.732
		c0.047,0,0.095-0.004,0.144-0.012c0.477-0.078,0.799-0.527,0.722-1.006c-0.892-5.444-0.261-10.588,0.35-15.563
		c0.62-5.058,1.259-10.288,0.356-15.931h1.765c-0.001,0.053-0.015,0.103-0.006,0.156c0.894,5.444,0.262,10.59-0.349,15.564
		c-0.625,5.096-1.271,10.365-0.34,16.057c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.144-0.012
		c0.477-0.078,0.799-0.527,0.722-1.005c-0.892-5.443-0.261-10.588,0.351-15.562c0.619-5.06,1.258-10.29,0.354-15.935h1.765
		c-0.001,0.053-0.015,0.103-0.006,0.156c0.894,5.445,0.263,10.592-0.349,15.567c-0.625,5.097-1.271,10.363-0.342,16.054
		c0.07,0.43,0.441,0.733,0.862,0.733c0.047,0,0.095-0.004,0.144-0.013c0.477-0.077,0.799-0.526,0.722-1.004
		c-0.89-5.442-0.259-10.584,0.351-15.558c0.621-5.061,1.26-10.293,0.355-15.938h1.768c-0.001,0.054-0.015,0.104-0.006,0.156
		c0.891,5.445,0.26,10.59-0.352,15.565c-0.625,5.097-1.271,10.365-0.34,16.058c0.069,0.428,0.44,0.732,0.861,0.732
		c0.047,0,0.096-0.004,0.143-0.012c0.478-0.078,0.801-0.527,0.723-1.006c-0.891-5.442-0.26-10.586,0.352-15.561
		c0.621-5.061,1.258-10.29,0.356-15.936h1.769c-0.002,0.053-0.016,0.103-0.007,0.156c0.89,5.442,0.259,10.586-0.352,15.56
		c-0.626,5.099-1.272,10.37-0.341,16.063c0.07,0.428,0.441,0.732,0.863,0.732c0.047,0,0.094-0.004,0.143-0.012
		c0.477-0.078,0.8-0.527,0.722-1.006c-0.892-5.444-0.261-10.59,0.351-15.566c0.619-5.057,1.258-10.287,0.357-15.928h1.764
		c0,0.052-0.015,0.102-0.006,0.154c0.889,5.443,0.258,10.586-0.352,15.561c-0.626,5.099-1.271,10.369-0.34,16.063
		c0.07,0.43,0.44,0.733,0.861,0.733c0.047,0,0.096-0.004,0.144-0.013c0.477-0.078,0.8-0.526,0.722-1.004
		c-0.893-5.445-0.261-10.592,0.35-15.567c0.434-3.524,0.863-7.14,0.787-10.914h1.236c1.585,0,2.875-1.29,2.875-2.875v-6.028
		C64,35.023,62.71,33.733,61.125,33.733z M50.375,4.913l6.111,5.849H51.5c-0.62,0-1.125-0.505-1.125-1.125V4.913z M17.353,4.865
		c0-0.62,0.505-1.125,1.125-1.125h30.147v5.896c0,1.585,1.29,2.875,2.875,2.875h6.292v21.222H17.353V4.865z M62.25,42.637
		c0,0.62-0.505,1.125-1.125,1.125h-1.313c-0.07-1.085-0.179-2.181-0.356-3.296c0.403-0.077,0.715-0.416,0.715-0.843
		c0-0.482-0.392-0.875-0.875-0.875H15.139c-0.483,0-0.875,0.393-0.875,0.875s0.392,0.875,0.875,0.875h0.548
		c-0.001,0.053-0.015,0.104-0.006,0.156c0.172,1.05,0.273,2.084,0.343,3.111c-0.008,0-0.015-0.005-0.023-0.005h-1.876
		c-0.62,0-1.125-0.505-1.125-1.125v-6.028c0-0.62,0.505-1.125,1.125-1.125h47c0.62,0,1.125,0.505,1.125,1.125V42.637z"/>
	<path fill="#6699CC" d="M21.625,17.888H52.25c0.482,0,0.875-0.392,0.875-0.875s-0.393-0.875-0.875-0.875H21.625
		c-0.483,0-0.875,0.392-0.875,0.875S21.142,17.888,21.625,17.888z"/>
	<path fill="#6699CC" d="M52.25,29.148H21.625c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875H52.25
		c0.482,0,0.875-0.392,0.875-0.875S52.732,29.148,52.25,29.148z"/>
	<path fill="#6699CC" d="M52.25,22.644H21.625c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875H52.25
		c0.482,0,0.875-0.392,0.875-0.875S52.732,22.644,52.25,22.644z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M65.485,21.85c-0.045-0.113-0.106-0.219-0.2-0.308l-8.679-8.336c-0.027-0.026-0.063-0.038-0.096-0.059
		c-0.057-0.043-0.112-0.088-0.18-0.115c-0.068-0.028-0.138-0.033-0.21-0.042c-0.036-0.005-0.068-0.021-0.106-0.021h-0.017h-0.002
		h-2.861c-0.022-0.031-0.037-0.068-0.066-0.096l-5.014-4.817c-0.03-0.029-0.069-0.041-0.103-0.065
		c-0.056-0.04-0.106-0.082-0.171-0.108c-0.069-0.028-0.142-0.034-0.214-0.043c-0.035-0.004-0.066-0.021-0.104-0.021h-0.017
		c-0.001,0-0.001,0-0.002,0h-2.758c-0.045-0.116-0.107-0.226-0.202-0.317l-5.566-5.346c-0.027-0.028-0.063-0.039-0.095-0.062
		c-0.059-0.042-0.112-0.086-0.178-0.113c-0.071-0.029-0.146-0.036-0.222-0.045c-0.032-0.004-0.063-0.02-0.097-0.02h-0.016
		c0,0-0.002,0-0.004,0H12.87c-1.328,0-2.409,1.081-2.409,2.409v52.485c0,1.327,1.081,2.407,2.409,2.407h3.292
		c0.135,0,0.258-0.037,0.373-0.095v4.823c0,1.349,1.097,2.445,2.444,2.445h3.913v4.391c0,1.374,1.118,2.492,2.493,2.492h37.689
		c1.374,0,2.492-1.117,2.492-2.492V22.204C65.566,22.077,65.532,21.959,65.485,21.85z M56.867,15.82l5.768,5.541l-5.768,0.022V15.82
		z M48.315,10.67l2.393,2.298h-2.393V10.67z M39.182,4.769l3.175,3.049h-3.175V4.769z M16.535,10.262v47.348
		c-0.114-0.058-0.238-0.096-0.373-0.096H12.87c-0.389,0-0.705-0.315-0.705-0.703V4.326c0-0.388,0.316-0.705,0.705-0.705h24.607
		v4.197H18.979C17.631,7.818,16.535,8.914,16.535,10.262z M18.979,64.688c-0.408,0-0.74-0.332-0.74-0.741V10.262
		c0-0.407,0.332-0.739,0.74-0.739h27.632v3.446H25.385c-1.375,0-2.493,1.118-2.493,2.493v49.226L18.979,64.688L18.979,64.688z
		 M63.862,70.782c0,0.435-0.354,0.788-0.788,0.788H25.385c-0.435,0-0.789-0.353-0.789-0.788V15.461c0-0.435,0.354-0.789,0.789-0.789
		h29.777v6.71c0,0.922,0.752,1.673,1.673,1.673h7.027V70.782z"/>
	<path fill="#6699CC" d="M44.111,31.051c-5.154,0-9.888,2.696-12.542,7.079l-2.011-0.76l0.963,5.869l4.603-3.769l-1.931-0.729
		c2.222-3.477,5.952-5.688,10.066-5.958v0.826c0,0.47,0.382,0.852,0.852,0.852c0.471,0,0.853-0.382,0.853-0.852v-0.811
		c6.473,0.423,11.653,5.604,12.077,12.078H56.3c-0.47,0-0.852,0.381-0.852,0.852c0,0.47,0.382,0.853,0.852,0.853h0.741
		c-0.422,6.433-5.542,11.593-11.959,12.071v-0.85c0-0.472-0.382-0.852-0.853-0.852c-0.47,0-0.852,0.38-0.852,0.852v0.868
		c-5.945-0.335-10.939-4.687-12.017-10.604c-0.084-0.464-0.529-0.767-0.992-0.687c-0.463,0.084-0.77,0.528-0.686,0.991
		c1.27,6.975,7.338,12.036,14.428,12.036c0.031,0,0.063-0.006,0.095-0.006c0.009,0,0.016,0.006,0.023,0.006
		c0.015,0,0.024-0.009,0.04-0.009c8.019-0.086,14.519-6.631,14.519-14.67C58.788,37.636,52.204,31.051,44.111,31.051z"/>
	<path fill="#6699CC" d="M43.238,53.289c0,0.471,0.383,0.852,0.853,0.852s0.853-0.381,0.853-0.852v-7.206l4.024-4.023
		c0.331-0.333,0.333-0.872,0-1.204c-0.334-0.334-0.875-0.334-1.206-0.002l-4.272,4.273c-0.079,0.079-0.142,0.173-0.184,0.277
		c-0.044,0.104-0.066,0.215-0.066,0.325l0,0L43.238,53.289L43.238,53.289z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M30.075,34.093H28.1v-9.829c0-0.138-0.112-0.25-0.25-0.25h-1.805c-0.082,0-0.158,0.04-0.205,0.106
		l-7.116,10.142c-0.03,0.042-0.045,0.092-0.045,0.144v1.486c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25
		h1.63c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975c0.138,0,0.25-0.112,0.25-0.25v-1.549C30.325,34.205,30.213,34.093,30.075,34.093z
		 M21.113,34.093l4.413-6.275c0.16-0.241,0.328-0.517,0.5-0.826c-0.037,0.857-0.056,1.651-0.056,2.369v4.732H21.113z"/>
	<path fill="#6699CC" d="M40.443,37.759c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.792,39.58,39.108,40.443,37.759z M36.484,37.825
		c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648c0-2.131,0.25-3.691,0.741-4.638
		c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365c0.489,0.961,0.737,2.515,0.737,4.619
		c0,2.103-0.248,3.661-0.738,4.629C38.259,37.375,37.526,37.825,36.484,37.825z"/>
	<path fill="#6699CC" d="M50.061,24.014c-0.081,0-0.158,0.04-0.205,0.106l-7.117,10.142c-0.029,0.042-0.045,0.092-0.045,0.144v1.486
		c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25h1.631c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975
		c0.138,0,0.25-0.112,0.25-0.25v-1.549c0-0.138-0.112-0.25-0.25-0.25h-1.975v-9.829c0-0.138-0.112-0.25-0.25-0.25H50.061z
		 M45.128,34.093l4.412-6.275c0.16-0.241,0.327-0.517,0.5-0.826c-0.037,0.857-0.056,1.651-0.056,2.369v4.732H45.128z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<path fill="#21A0DF" d="M66.478,27.294c0,0,0-0.001,0-0.001V11.727c0-0.054-0.006-0.107-0.017-0.159
	c0-0.001-0.001-0.002-0.001-0.004c0.006-0.089,0.018-0.178,0.018-0.268c0-0.163-0.049-0.313-0.132-0.439
	c-0.628-2.732-3.608-5.213-8.528-7.054c-5.19-1.943-12.039-3.013-19.281-3.013c-7.244,0-14.091,1.07-19.283,3.013
	c-4.92,1.841-7.9,4.322-8.527,7.055c-0.083,0.126-0.132,0.276-0.132,0.438c0,0.089,0.012,0.178,0.017,0.267c0,0.001,0,0.003,0,0.004
	c-0.011,0.052-0.017,0.105-0.017,0.161v50.829c0,0.057,0.006,0.111,0.017,0.164c0.505,6.453,12.718,11.491,27.925,11.491
	c15.204,0,27.415-5.037,27.923-11.489c0.013-0.053,0.019-0.109,0.019-0.166v-17.66c0-0.002,0-0.002,0-0.003v-0.001V27.296
	C66.478,27.296,66.478,27.295,66.478,27.294z M19.813,5.299c5.017-1.878,11.665-2.911,18.723-2.911
	c7.057,0,13.706,1.033,18.722,2.911c4.615,1.727,7.365,4.025,7.598,6.326c-0.5,4.419-10.945,9.024-26.319,9.024
	c-15.375,0-25.821-4.604-26.319-9.024C12.449,9.324,15.199,7.026,19.813,5.299z M38.536,22.248c12.32,0,22.537-2.975,26.343-7.232
	v12.281c-0.004,5.589-12.066,10.311-26.343,10.311c-14.279,0-26.343-4.723-26.343-10.313V15.015
	C15.999,19.272,26.216,22.248,38.536,22.248z M64.879,62.442c-0.004,0.023-0.006,0.047-0.008,0.068
	c-0.142,2.551-2.929,5.097-7.648,6.987c-5.01,2.008-11.646,3.114-18.687,3.114c-7.041,0-13.678-1.106-18.687-3.114
	c-4.72-1.891-7.507-4.437-7.65-6.987c-0.001-0.021-0.003-0.045-0.006-0.067V48.938c3.806,4.631,14.023,7.867,26.343,7.867
	c12.32,0,22.537-3.236,26.343-7.866V62.442z M64.879,44.895c-0.004,5.59-12.066,10.313-26.343,10.313
	c-14.279,0-26.343-4.724-26.343-10.314V31.34c3.806,4.63,14.023,7.865,26.343,7.865c12.32,0,22.537-3.235,26.343-7.865V44.895z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M65.631,35.152c-0.053-0.112-0.125-0.216-0.227-0.3l-3.545-2.941l2.103-1.267
		c0.263-0.157,0.422-0.438,0.425-0.743c0.002-0.304-0.154-0.588-0.412-0.749l-3.882-2.417l1.966-3.417
		c0.799-1.297,0.395-3.003-0.92-3.815L36.428,5.109c-1.296-0.803-3.003-0.4-3.815,0.913L21.069,25.613
		c-0.146,0.025-0.288,0.074-0.41,0.175l-11.062,9.19c-0.031,0.026-0.046,0.062-0.073,0.09c-0.958,0.463-1.625,1.436-1.625,2.569
		v33.007c0,1.578,1.284,2.862,2.862,2.862h53.477c1.578,0,2.861-1.284,2.861-2.862V37.637
		C67.102,36.567,66.504,35.643,65.631,35.152z M33.131,55.07L9.671,70.753c-0.004-0.037-0.022-0.069-0.022-0.106V37.637
		c0-0.21,0.075-0.396,0.177-0.565c-0.004,0.271,0.101,0.539,0.333,0.714L33.131,55.07z M35.793,55.396
		c0.047-0.032,0.092-0.068,0.132-0.109c0.876-0.875,2.404-0.875,3.277,0c0.041,0.041,0.086,0.078,0.134,0.109L63.87,71.758H11.317
		L35.793,55.396z M65.331,70.63L41.773,54.92l23.502-17.647c0.041,0.115,0.074,0.235,0.074,0.365v33.008v0.002
		C65.343,70.645,65.339,70.635,65.331,70.63z M60.342,32.925l3.71,3.079l-17.312,13l7.267-12.359l6.281-3.786
		C60.309,32.879,60.318,32.906,60.342,32.925z M34.111,6.927c0.295-0.476,0.922-0.623,1.416-0.318l24.709,14.395
		c0.477,0.294,0.625,0.921,0.318,1.42l-2.4,4.171c-0.234,0.409-0.104,0.93,0.296,1.179l3.386,2.108l-8.922,5.377
		c-0.125,0.075-0.229,0.181-0.303,0.306L43.25,51.488c-0.034,0.059-0.044,0.121-0.063,0.185l-2.944,2.21
		c-1.532-1.338-4.009-1.313-5.489,0.104l-0.081,0.055L15.049,39.275L34.111,6.927z M13.642,38.217l-2.431-1.829
		c-0.118-0.089-0.252-0.132-0.389-0.153l7.812-6.489L13.642,38.217z"/>
	<path fill="#6699CC" d="M28.153,46.658c1.823,1.126,3.914,1.721,6.046,1.721c4.031,0,7.701-2.045,9.814-5.47
		c1.617-2.619,2.119-5.711,1.411-8.707s-2.54-5.537-5.159-7.154c-1.822-1.126-3.914-1.721-6.045-1.721
		c-4.03,0-7.699,2.045-9.814,5.47C21.066,36.201,22.747,43.316,28.153,46.658z M42.523,41.989c-1.793,2.905-4.905,4.64-8.325,4.64
		c-1.808,0-3.58-0.505-5.126-1.459c-2.025-1.252-3.431-3.129-4.129-5.229l18.938-4.476C44.21,37.732,43.742,40.02,42.523,41.989z
		 M25.894,31.716c1.794-2.905,4.907-4.64,8.326-4.64c1.807,0,3.58,0.505,5.125,1.46c1.973,1.217,3.413,3.053,4.135,5.227
		l-18.938,4.473C24.226,36.048,24.643,33.741,25.894,31.716z"/>
	<path fill="#6699CC" d="M32.743,20.526c0.139,0.082,0.292,0.121,0.442,0.121c0.3,0,0.592-0.154,0.755-0.432l3.168-5.388
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.417-0.247-0.954-0.105-1.198,0.311l-3.168,5.388
		C32.188,19.745,32.327,20.281,32.743,20.526z"/>
	<path fill="#6699CC" d="M42.586,23.268c0.141,0.082,0.292,0.121,0.441,0.121c0.301,0,0.593-0.154,0.756-0.432l1.838-3.125
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.416-0.244-0.953-0.106-1.197,0.311l-1.838,3.125
		C42.029,22.487,42.169,23.023,42.586,23.268z"/>
	<path fill="#6699CC" d="M49.389,31.182c0.139,0.082,0.291,0.121,0.441,0.121c0.3,0,0.592-0.154,0.755-0.432l3.548-6.034
		c0.245-0.417,0.105-0.953-0.311-1.198c-0.418-0.246-0.953-0.105-1.197,0.311l-3.548,6.034
		C48.832,30.401,48.971,30.937,49.389,31.182z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M13.333,10.792c-0.483,0-0.875,0.392-0.875,0.875v2.167c0,0.483,0.392,0.875,0.875,0.875
		s0.875-0.392,0.875-0.875v-2.167C14.208,11.183,13.817,10.792,13.333,10.792z"/>
	<path fill="#6699CC" d="M34.926,34.313V11.001c0-0.167-0.059-0.314-0.141-0.447c-0.044-0.108-0.109-0.21-0.198-0.297l-6.291-6.118
		C28.267,4.111,28.23,4.1,28.199,4.077c-0.161-0.181-0.388-0.301-0.649-0.301H11.926c-1.034,0-1.875,0.841-1.875,1.875v28.662
		c0,1.034,0.841,1.875,1.875,1.875h21.125C34.084,36.188,34.926,35.346,34.926,34.313z M28.425,6.706l3.517,3.42H28.55
		c-0.069,0-0.125-0.056-0.125-0.125V6.706z M11.801,34.313V5.65c0-0.069,0.056-0.125,0.125-0.125h14.749v4.476
		c0,1.034,0.841,1.875,1.875,1.875h4.626v22.437c0,0.069-0.056,0.125-0.125,0.125H11.926C11.857,34.438,11.801,34.381,11.801,34.313
		z"/>
	<path fill="#6699CC" d="M64.809,45.588c-0.045-0.105-0.109-0.207-0.197-0.293l-6.291-6.119c-0.028-0.027-0.064-0.039-0.096-0.062
		c-0.16-0.183-0.389-0.302-0.649-0.302H41.949c-1.034,0-1.875,0.84-1.875,1.875V69.35c0,1.034,0.841,1.875,1.875,1.875h21.125
		c1.033,0,1.875-0.841,1.875-1.875V46.037C64.949,45.869,64.891,45.723,64.809,45.588z M58.449,41.743l3.515,3.419h-3.39
		c-0.069,0-0.125-0.057-0.125-0.125V41.743z M63.199,69.35c0,0.069-0.057,0.125-0.125,0.125H41.949
		c-0.069,0-0.125-0.056-0.125-0.125V40.688c0-0.068,0.056-0.125,0.125-0.125h14.75v4.476c0,1.034,0.841,1.875,1.875,1.875h4.625
		V69.35z"/>
	<path fill="#6699CC" d="M44.533,44.016c-0.483,0-0.875,0.393-0.875,0.875v2.168c0,0.482,0.392,0.875,0.875,0.875
		c0.482,0,0.875-0.393,0.875-0.875v-2.168C45.408,44.407,45.018,44.016,44.533,44.016z"/>
	<path fill="#6699CC" d="M47.535,44.016c-0.483,0-0.875,0.393-0.875,0.875v2.168c0,0.482,0.392,0.875,0.875,0.875
		c0.482,0,0.875-0.393,0.875-0.875v-2.168C48.41,44.407,48.02,44.016,47.535,44.016z"/>
	<polygon fill="#6699CC" points="31.548,44.113 25.648,42.532 27.229,48.432 28.769,46.893 34.5,52.622 35.737,51.384 
		30.007,45.652 	"/>
	<polygon fill="#6699CC" points="43.452,30.886 49.352,32.467 47.771,26.567 46.23,28.108 40.501,22.378 39.264,23.616 
		44.992,29.346 	"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<circle fill="none" cx="15" cy="15.894" r="5.317"/>
<path fill="#D3D9CE" d="M8.71,5.417H4.312V5.124c0-0.608,0.492-1.101,1.1-1.101h2.198c0.607,0,1.101,0.492,1.101,1.101V5.417z
	 M29.481,8.01v15.766c0,1.217-0.984,2.201-2.199,2.201H2.719c-1.215,0-2.2-0.984-2.2-2.201V8.01c0-1.215,0.985-2.2,2.2-2.2h17.311
	l0.06,0.041l-0.596,0.408c-0.273,0.188-0.392,0.539-0.288,0.85c0.096,0.296,0.368,0.5,0.733,0.519l0.722-0.021l-0.241,0.679
	c-0.111,0.312-0.001,0.665,0.266,0.858c0.128,0.093,0.28,0.143,0.439,0.143c0.162,0,0.323-0.053,0.458-0.155l0.57-0.439l0.205,0.695
	c0.097,0.319,0.386,0.534,0.719,0.534s0.622-0.215,0.72-0.538L24,8.691l0.574,0.442c0.13,0.098,0.291,0.152,0.454,0.152
	c0.158,0,0.31-0.048,0.442-0.143c0.266-0.194,0.374-0.547,0.264-0.857l-0.241-0.68l0.752,0.021c0.336-0.012,0.605-0.212,0.701-0.514
	c0.104-0.314-0.014-0.665-0.288-0.854L26.063,5.85l0.06-0.041h1.159C28.497,5.81,29.481,6.795,29.481,8.01z M20.317,15.894
	c0-2.937-2.38-5.317-5.317-5.317c-2.936,0-5.316,2.381-5.316,5.317s2.381,5.317,5.316,5.317
	C17.938,21.211,20.317,18.83,20.317,15.894z M26.376,6.67c0.091,0.063,0.131,0.178,0.096,0.283
	c-0.033,0.105-0.121,0.168-0.244,0.173l-1.45-0.041l0.486,1.367c0.037,0.104,0.001,0.221-0.088,0.286
	c-0.09,0.064-0.212,0.063-0.3-0.004L23.727,7.85l-0.41,1.392c-0.032,0.106-0.13,0.179-0.24,0.179s-0.208-0.073-0.24-0.179
	l-0.41-1.392l-1.148,0.885c-0.089,0.066-0.211,0.068-0.299,0.004c-0.09-0.065-0.126-0.182-0.089-0.286l0.486-1.367l-1.451,0.041
	c-0.114-0.006-0.21-0.067-0.244-0.173c-0.035-0.105,0.005-0.221,0.096-0.283l1.197-0.82l-0.06-0.041l-1.138-0.78
	c-0.091-0.063-0.131-0.178-0.096-0.283c0.034-0.105,0.132-0.163,0.244-0.173l1.451,0.041L20.89,3.248
	c-0.037-0.104-0.001-0.221,0.089-0.286c0.088-0.065,0.21-0.063,0.299,0.004l1.148,0.884l0.41-1.392c0.064-0.213,0.416-0.213,0.48,0
	l0.41,1.392l1.149-0.885c0.088-0.068,0.21-0.069,0.3-0.004c0.089,0.065,0.125,0.182,0.088,0.286l-0.486,1.366l1.45-0.04
	c0.121,0.008,0.211,0.067,0.244,0.173c0.035,0.105-0.005,0.221-0.096,0.283l-1.138,0.78l-0.06,0.041L26.376,6.67z M25.393,6.603
	l-0.798-0.547c-0.067-0.046-0.108-0.124-0.108-0.206c0-0.014,0.008-0.027,0.01-0.041c0.012-0.066,0.043-0.127,0.099-0.166
	l0.798-0.547l-0.967,0.027c-0.069,0.017-0.16-0.036-0.209-0.103s-0.061-0.153-0.033-0.231l0.324-0.911l-0.766,0.589
	c-0.064,0.051-0.15,0.066-0.229,0.04c-0.078-0.025-0.14-0.088-0.163-0.167l-0.273-0.929l-0.273,0.929
	c-0.023,0.079-0.085,0.142-0.163,0.167c-0.078,0.026-0.164,0.012-0.229-0.04L21.646,3.88l0.324,0.91
	c0.027,0.078,0.016,0.164-0.033,0.231c-0.048,0.066-0.142,0.101-0.209,0.103L20.76,5.097l0.798,0.547
	c0.056,0.039,0.087,0.1,0.099,0.166c0.002,0.014,0.01,0.026,0.01,0.041c0,0.083-0.041,0.16-0.108,0.206L20.76,6.603l0.968-0.027
	c0.086,0,0.161,0.037,0.209,0.103c0.049,0.067,0.061,0.153,0.033,0.231l-0.324,0.91l0.765-0.589
	c0.044-0.034,0.098-0.052,0.152-0.052c0.026,0,0.052,0.004,0.077,0.012c0.078,0.025,0.14,0.088,0.163,0.167l0.273,0.929l0.273-0.929
	c0.023-0.079,0.085-0.142,0.163-0.167c0.079-0.024,0.165-0.011,0.229,0.04l0.766,0.589l-0.324-0.91
	c-0.027-0.078-0.016-0.164,0.033-0.231c0.048-0.067,0.121-0.122,0.209-0.103L25.393,6.603z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M56.164,37.484c-0.059-0.082-0.122-0.162-0.212-0.215c-0.005-0.002-0.01-0.001-0.015-0.004
		c-0.004-0.002-0.005-0.006-0.009-0.008l-2.159-1.183c-0.606-4.582-3.073-8.809-6.781-11.605c-0.079-0.059-0.167-0.093-0.256-0.123
		v-2.987c0-0.135-0.037-0.264-0.104-0.376c-0.021-0.037-0.061-0.057-0.088-0.09c-0.055-0.064-0.102-0.135-0.177-0.179
		c-0.004-0.002-0.009-0.001-0.013-0.003c-0.004-0.002-0.005-0.007-0.009-0.009l-8.482-4.647c-0.225-0.123-0.496-0.123-0.721,0
		l-8.483,4.647c-0.004,0.002-0.005,0.006-0.009,0.008c-0.004,0.002-0.009,0.001-0.013,0.004c-0.075,0.044-0.124,0.115-0.178,0.181
		c-0.026,0.032-0.066,0.053-0.087,0.088c-0.065,0.113-0.103,0.242-0.103,0.376v3.111c-0.087,0.03-0.174,0.063-0.251,0.121
		c-3.66,2.766-6.112,6.938-6.745,11.458l-2.203,1.207c-0.004,0.002-0.005,0.007-0.009,0.009c-0.004,0.002-0.009,0.001-0.013,0.003
		c-0.075,0.044-0.122,0.114-0.176,0.179c-0.027,0.033-0.067,0.053-0.089,0.09c-0.065,0.113-0.103,0.242-0.103,0.376v10.221
		c0,0.272,0.148,0.524,0.387,0.656l8.483,4.695c0.113,0.063,0.238,0.094,0.363,0.094s0.25-0.031,0.363-0.094l2.121-1.174
		c0.097,0.127,0.215,0.239,0.376,0.3c2.006,0.758,4.12,1.143,6.283,1.143c2.454,0,4.83-0.491,7.061-1.459
		c0.079-0.034,0.14-0.089,0.202-0.142l2.406,1.332c0.113,0.063,0.238,0.094,0.363,0.094s0.25-0.031,0.363-0.094l8.482-4.696
		c0.238-0.132,0.387-0.384,0.387-0.656v-10.22c0-0.136-0.039-0.266-0.105-0.379C56.202,37.515,56.179,37.503,56.164,37.484z
		 M39.354,47.691v-8.511l6.984,3.824v8.553L39.354,47.691z M47.775,41.328l-0.688,0.376l-6.923-3.79l6.923-3.792l6.92,3.792
		L47.775,41.328z M29.767,22.625l6.983,3.825v8.554l-6.983-3.867V22.625z M38.251,26.449l6.981-3.825v8.512l-6.981,3.867V26.449z
		 M37.5,17.566l6.921,3.792L37.5,25.15l-6.922-3.792L37.5,17.566z M28.927,41.148l-1.015,0.556l-6.922-3.79l6.922-3.792l6.921,3.792
		L28.927,41.148z M20.179,39.181l6.983,3.823v8.554l-6.983-3.865V39.181z M28.662,43.004l6.983-3.824v8.513l-6.983,3.865V43.004z
		 M32.29,51.265l4.469-2.474c0.239-0.132,0.387-0.384,0.387-0.656V37.914c0-0.136-0.038-0.265-0.104-0.377
		c-0.017-0.028-0.048-0.043-0.068-0.069c-0.057-0.073-0.113-0.149-0.195-0.198c-0.004-0.002-0.01-0.001-0.014-0.004
		c-0.003-0.002-0.005-0.007-0.009-0.009l-8.482-4.647c-0.225-0.123-0.496-0.123-0.721,0l-4.299,2.355
		c0.743-3.207,2.516-6.133,5.015-8.303v4.917c0,0.273,0.148,0.524,0.387,0.656l8.483,4.697c0.113,0.063,0.238,0.094,0.363,0.094
		s0.25-0.031,0.363-0.094l8.482-4.697c0.238-0.132,0.387-0.383,0.387-0.656v-5.045c2.547,2.205,4.339,5.188,5.065,8.46l-4.35-2.384
		c-0.225-0.123-0.496-0.123-0.721,0l-8.484,4.647c-0.004,0.002-0.006,0.007-0.009,0.009c-0.005,0.002-0.01,0.001-0.014,0.004
		c-0.075,0.044-0.123,0.115-0.177,0.18c-0.027,0.032-0.066,0.053-0.087,0.088c-0.065,0.113-0.103,0.242-0.103,0.376v10.22
		c0,0.272,0.148,0.524,0.387,0.656l4.14,2.291C39.143,52.218,35.566,52.28,32.29,51.265z M54.82,47.691l-6.982,3.866v-8.554
		l4.363-2.39l2.619-1.435V47.691z"/>
	<path fill="#6699CC" d="M66.554,43.38l-4.544-3.116c0.121-1.014,0.178-1.903,0.178-2.765c0-0.859-0.057-1.75-0.178-2.769
		l4.543-3.11c0.297-0.203,0.439-0.567,0.358-0.918c-0.412-1.793-0.948-3.472-1.594-4.992c-0.141-0.331-0.435-0.543-0.83-0.532
		l-5.511,0.151c-0.905-1.59-2.004-3.092-3.274-4.478l1.841-5.181c0.121-0.339,0.021-0.717-0.25-0.953
		c-1.303-1.134-2.73-2.171-4.244-3.083c-0.307-0.186-0.699-0.165-0.984,0.056l-4.357,3.352c-1.702-0.773-3.47-1.349-5.269-1.714
		l-1.552-5.281c-0.103-0.346-0.405-0.594-0.765-0.625c-1.425-0.122-3.825-0.122-5.243,0c-0.359,0.031-0.663,0.279-0.764,0.625
		l-1.555,5.281c-1.798,0.365-3.565,0.94-5.266,1.714l-4.355-3.352c-0.286-0.22-0.676-0.243-0.983-0.057
		c-1.515,0.908-2.946,1.945-4.253,3.084c-0.271,0.236-0.37,0.614-0.25,0.953l1.844,5.18c-1.275,1.391-2.375,2.893-3.277,4.478
		l-5.509-0.151c-0.358-0.016-0.689,0.202-0.829,0.533c-0.652,1.535-1.173,3.167-1.593,4.991c-0.081,0.351,0.061,0.715,0.358,0.918
		l4.543,3.11c-0.119,0.998-0.177,1.909-0.177,2.769c0,0.858,0.058,1.768,0.177,2.767L8.446,43.38
		c-0.296,0.203-0.438,0.566-0.358,0.917c0.41,1.786,0.945,3.464,1.593,4.987c0.14,0.332,0.474,0.531,0.829,0.533l5.51-0.151
		c0.902,1.586,2.001,3.09,3.276,4.481l-1.843,5.181c-0.121,0.339-0.021,0.717,0.25,0.953c1.297,1.129,2.727,2.166,4.251,3.084
		c0.309,0.188,0.7,0.164,0.985-0.056l4.356-3.355c1.701,0.775,3.467,1.351,5.265,1.715l1.553,5.28
		c0.102,0.345,0.403,0.593,0.761,0.624c1.039,0.094,1.849,0.135,2.625,0.135c0.776,0,1.585-0.041,2.625-0.135
		c0.357-0.031,0.66-0.279,0.762-0.624l1.552-5.28c1.8-0.365,3.565-0.94,5.263-1.715l4.363,3.355c0.285,0.22,0.677,0.241,0.985,0.056
		c1.521-0.917,2.949-1.955,4.249-3.085c0.271-0.236,0.371-0.614,0.25-0.954l-1.845-5.18c1.272-1.391,2.372-2.895,3.277-4.48
		l5.506,0.151c0.401-0.007,0.688-0.202,0.829-0.532c0.646-1.516,1.182-3.193,1.595-4.987C66.992,43.947,66.85,43.583,66.554,43.38z
		 M63.932,48.051l-5.433-0.149c-0.369-0.005-0.637,0.169-0.794,0.459c-0.961,1.778-2.185,3.451-3.637,4.975
		c-0.229,0.238-0.303,0.586-0.191,0.897l1.82,5.112c-0.951,0.792-1.972,1.532-3.045,2.21l-4.307-3.313
		c-0.261-0.202-0.617-0.238-0.913-0.095c-1.871,0.902-3.835,1.542-5.837,1.901c-0.326,0.059-0.592,0.297-0.686,0.614l-1.533,5.217
		c-1.425,0.108-2.333,0.106-3.754,0l-1.535-5.217c-0.093-0.318-0.359-0.556-0.685-0.614c-2-0.358-3.964-0.998-5.839-1.901
		c-0.298-0.145-0.651-0.107-0.914,0.095l-4.3,3.313c-1.076-0.678-2.096-1.418-3.046-2.209l1.819-5.114
		c0.111-0.312,0.037-0.658-0.191-0.897c-1.456-1.523-2.678-3.196-3.634-4.973c-0.157-0.29-0.467-0.472-0.794-0.46l-5.438,0.149
		c-0.44-1.112-0.821-2.308-1.134-3.567l4.489-3.076c0.273-0.187,0.417-0.512,0.373-0.84c-0.155-1.135-0.23-2.139-0.23-3.068
		c0-0.932,0.075-1.937,0.23-3.07c0.044-0.328-0.1-0.653-0.373-0.84l-4.488-3.072c0.318-1.28,0.692-2.458,1.135-3.573l5.437,0.149
		c0.326,0.02,0.637-0.169,0.794-0.459c0.957-1.774,2.18-3.446,3.635-4.969c0.229-0.239,0.303-0.586,0.192-0.898l-1.82-5.114
		c0.956-0.796,1.976-1.536,3.045-2.207l4.299,3.309c0.262,0.202,0.616,0.239,0.913,0.095c1.875-0.902,3.841-1.542,5.842-1.901
		c0.326-0.059,0.591-0.296,0.685-0.614l1.536-5.216c1.131-0.084,2.618-0.084,3.753,0l1.533,5.215
		c0.094,0.318,0.358,0.556,0.685,0.615c2.002,0.36,3.968,1,5.845,1.901c0.297,0.143,0.651,0.106,0.912-0.095l4.301-3.309
		c1.068,0.673,2.087,1.413,3.04,2.207l-1.817,5.114c-0.111,0.312-0.037,0.659,0.191,0.897c1.449,1.516,2.672,3.188,3.632,4.969
		c0.157,0.291,0.414,0.481,0.795,0.459l5.438-0.149c0.44,1.111,0.82,2.308,1.136,3.573l-4.487,3.072
		c-0.272,0.187-0.417,0.511-0.373,0.839c0.157,1.169,0.23,2.146,0.23,3.072c0,0.929-0.073,1.903-0.23,3.067
		c-0.044,0.327,0.1,0.652,0.372,0.839l4.488,3.077C64.752,45.747,64.371,46.943,63.932,48.051z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<path fill="#5968B3" d="M17.181,20.485H2.421l12.867-8.158l3.352,3.626l0.637,0.018c0.034-0.048,0.069-0.097,0.105-0.144
	l-0.293-0.826c-0.12-0.34-0.023-0.713,0.248-0.951c0.308-0.27,0.642-0.512,0.99-0.72c0.137-0.081,0.291-0.123,0.448-0.123
	c0.191,0,0.381,0.064,0.532,0.18l0.694,0.534c0.058-0.02,0.115-0.039,0.173-0.057l0.248-0.84c0.102-0.346,0.399-0.591,0.759-0.624
	c0.146-0.014,0.298-0.017,0.448-0.021V6.147H1.62V21.29h15.78c-0.071-0.215-0.155-0.416-0.207-0.647
	C17.181,20.59,17.183,20.538,17.181,20.485z M10.705,8.189c0.956,0,1.731,0.775,1.731,1.731c0,0.956-0.775,1.73-1.731,1.73
	c-0.956,0-1.731-0.774-1.731-1.73C8.974,8.964,9.75,8.189,10.705,8.189z M2.368,9.563l7.593,5.435l-7.593,4.729V9.563z
	 M23.63,17.247v3.792c-0.466-0.04-0.886-0.239-1.196-0.554h0.395l-0.911-0.986c-0.021-0.115-0.036-0.233-0.036-0.355
	C21.881,18.145,22.653,17.332,23.63,17.247z M24.298,20.979v-3.673c0.335,0.092,0.634,0.268,0.869,0.511v2.652
	C24.932,20.712,24.633,20.888,24.298,20.979z M19.383,22.458l-0.163,0.458H0.083V4.582h25.084v8.451l-0.003-0.008
	c-0.102-0.346-0.399-0.591-0.759-0.625c-0.035-0.003-0.071-0.002-0.107-0.005V5.451H0.952v16.596h16.776
	c0.163,0.176,0.397,0.286,0.666,0.291l0.883-0.024C19.311,22.362,19.346,22.41,19.383,22.458z M23.794,25.418
	c-0.191,0-0.378-0.012-0.563-0.027c-0.154-0.014-0.284-0.119-0.328-0.268l-0.326-1.106c-0.224-0.058-0.444-0.13-0.659-0.217
	l-0.913,0.702c-0.122,0.094-0.29,0.104-0.422,0.024c-0.326-0.195-0.634-0.419-0.916-0.666c-0.115-0.102-0.157-0.263-0.106-0.408
	l0.387-1.088c-0.149-0.179-0.286-0.365-0.408-0.559l-1.158,0.032c-0.149-0.003-0.294-0.086-0.354-0.227
	c-0.143-0.331-0.259-0.694-0.346-1.078c-0.033-0.149,0.027-0.305,0.154-0.392l0.95-0.65c-0.009-0.115-0.014-0.231-0.014-0.349
	s0.005-0.232,0.014-0.348l-0.95-0.65c-0.127-0.087-0.188-0.242-0.154-0.393c0.087-0.382,0.203-0.745,0.346-1.078
	c0.061-0.143,0.19-0.232,0.354-0.228l1.158,0.032c0.122-0.193,0.259-0.38,0.408-0.557l-0.387-1.088
	c-0.051-0.145-0.009-0.306,0.106-0.408c0.285-0.25,0.594-0.474,0.917-0.666c0.133-0.078,0.299-0.068,0.421,0.025l0.913,0.702
	c0.219-0.088,0.439-0.161,0.659-0.216l0.326-1.105c0.043-0.147,0.172-0.253,0.325-0.268c0.371-0.035,0.758-0.035,1.132,0
	c0.153,0.014,0.282,0.12,0.325,0.268l0.326,1.104c0.22,0.056,0.44,0.128,0.659,0.217l0.914-0.702
	c0.121-0.094,0.288-0.104,0.421-0.024c0.325,0.194,0.633,0.418,0.916,0.666c0.116,0.101,0.158,0.263,0.106,0.408l-0.387,1.088
	c0.149,0.177,0.286,0.363,0.408,0.557l1.158-0.032c0.137-0.004,0.294,0.085,0.354,0.228c0.144,0.334,0.26,0.696,0.347,1.078
	c0.034,0.149-0.027,0.306-0.154,0.393l-0.95,0.65c0.009,0.115,0.013,0.23,0.013,0.348s-0.004,0.233-0.013,0.349l0.95,0.65
	c0.127,0.087,0.188,0.242,0.154,0.393c-0.087,0.383-0.203,0.745-0.347,1.077c-0.062,0.141-0.214,0.228-0.354,0.227l-1.158-0.032
	c-0.121,0.193-0.258,0.38-0.408,0.559l0.387,1.088c0.052,0.146,0.01,0.307-0.106,0.408c-0.283,0.248-0.592,0.472-0.916,0.666
	c-0.132,0.08-0.299,0.07-0.421-0.024L25.67,23.8c-0.215,0.087-0.436,0.159-0.659,0.217l-0.326,1.106
	c-0.044,0.148-0.174,0.254-0.328,0.268C24.171,25.406,23.983,25.418,23.794,25.418z M23.548,24.661c0.162,0.008,0.328,0.008,0.491,0
	l0.314-1.067c0.039-0.133,0.148-0.232,0.284-0.261c0.317-0.065,0.631-0.169,0.93-0.306c0.125-0.061,0.273-0.043,0.385,0.044
	l0.882,0.677c0.137-0.091,0.271-0.188,0.399-0.29l-0.374-1.05c-0.046-0.132-0.017-0.277,0.078-0.38
	c0.225-0.245,0.419-0.51,0.576-0.788c0.068-0.121,0.191-0.206,0.337-0.19l1.115,0.031c0.056-0.15,0.105-0.306,0.149-0.468
	l-0.919-0.629c-0.115-0.079-0.177-0.216-0.16-0.355c0.02-0.159,0.03-0.321,0.03-0.486s-0.011-0.326-0.03-0.485
	c-0.017-0.139,0.045-0.276,0.16-0.355l0.919-0.629c-0.044-0.162-0.094-0.318-0.149-0.47l-1.115,0.031
	c-0.143-0.006-0.268-0.069-0.337-0.189c-0.158-0.279-0.352-0.544-0.576-0.787c-0.095-0.102-0.124-0.248-0.078-0.38l0.374-1.049
	c-0.129-0.103-0.262-0.199-0.399-0.29l-0.882,0.677c-0.11,0.084-0.258,0.101-0.383,0.044c-0.309-0.14-0.622-0.242-0.931-0.305
	c-0.136-0.028-0.246-0.128-0.285-0.262l-0.314-1.067c-0.164-0.009-0.328-0.008-0.491,0l-0.314,1.067
	c-0.039,0.133-0.149,0.234-0.285,0.262c-0.309,0.063-0.622,0.165-0.931,0.305c-0.128,0.055-0.274,0.04-0.384-0.044l-0.881-0.677
	c-0.137,0.09-0.271,0.188-0.398,0.29l0.373,1.05c0.046,0.132,0.017,0.277-0.078,0.38c-0.224,0.243-0.418,0.508-0.577,0.787
	c-0.067,0.12-0.204,0.18-0.336,0.189l-1.115-0.031c-0.056,0.15-0.105,0.308-0.148,0.47l0.918,0.629
	c0.115,0.079,0.178,0.216,0.16,0.354c-0.019,0.159-0.03,0.321-0.03,0.486s0.012,0.327,0.031,0.487
	c0.017,0.139-0.046,0.275-0.161,0.354l-0.919,0.629c0.044,0.162,0.094,0.318,0.149,0.468l1.115-0.031
	c0.135-0.012,0.269,0.069,0.337,0.189c0.158,0.279,0.352,0.544,0.577,0.789c0.094,0.103,0.123,0.249,0.077,0.38l-0.373,1.05
	c0.128,0.102,0.262,0.199,0.399,0.29l0.88-0.677c0.11-0.085,0.259-0.103,0.385-0.044c0.3,0.137,0.613,0.24,0.932,0.306
	c0.135,0.028,0.244,0.128,0.283,0.261L23.548,24.661z M23.794,22.306c-1.744,0-3.163-1.419-3.163-3.162
	c0-1.744,1.419-3.163,3.163-3.163c1.743,0,3.162,1.419,3.162,3.163C26.956,20.887,25.537,22.306,23.794,22.306z M23.794,16.73
	c-1.33,0-2.413,1.082-2.413,2.413c0,1.33,1.083,2.412,2.413,2.412s2.412-1.082,2.412-2.412C26.206,17.813,25.124,16.73,23.794,16.73
	z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="30px" height="30px" viewBox="0 0 30 30" enable-background="new 0 0 30 30" xml:space="preserve">
<circle fill="none" cx="15" cy="15.894" r="5.317"/>
<path fill="#83B04A" d="M8.71,5.417H4.312V5.124c0-0.608,0.492-1.101,1.1-1.101h2.198c0.607,0,1.101,0.492,1.101,1.101V5.417z
	 M29.481,8.01v15.766c0,1.217-0.984,2.201-2.199,2.201H2.719c-1.215,0-2.2-0.984-2.2-2.201V8.01c0-1.215,0.985-2.2,2.2-2.2h17.311
	l0.06,0.041l-0.596,0.408c-0.273,0.188-0.392,0.539-0.288,0.85c0.096,0.296,0.368,0.5,0.733,0.519l0.722-0.021l-0.241,0.679
	c-0.111,0.312-0.001,0.665,0.266,0.858c0.128,0.093,0.28,0.143,0.439,0.143c0.162,0,0.323-0.053,0.458-0.155l0.57-0.439l0.205,0.695
	c0.097,0.319,0.386,0.534,0.719,0.534s0.622-0.215,0.72-0.538L24,8.691l0.574,0.442c0.13,0.098,0.291,0.152,0.454,0.152
	c0.158,0,0.31-0.048,0.442-0.143c0.266-0.194,0.374-0.547,0.264-0.857l-0.241-0.68l0.752,0.021c0.336-0.012,0.605-0.212,0.701-0.514
	c0.104-0.314-0.014-0.665-0.288-0.854L26.063,5.85l0.06-0.041h1.159C28.497,5.81,29.481,6.795,29.481,8.01z M20.317,15.894
	c0-2.937-2.38-5.317-5.317-5.317c-2.936,0-5.316,2.381-5.316,5.317s2.381,5.317,5.316,5.317
	C17.938,21.211,20.317,18.83,20.317,15.894z M26.376,6.67c0.091,0.063,0.131,0.178,0.096,0.283
	c-0.033,0.105-0.121,0.168-0.244,0.173l-1.45-0.041l0.486,1.367c0.037,0.104,0.001,0.221-0.088,0.286
	c-0.09,0.064-0.212,0.063-0.3-0.004L23.727,7.85l-0.41,1.392c-0.032,0.106-0.13,0.179-0.24,0.179s-0.208-0.073-0.24-0.179
	l-0.41-1.392l-1.148,0.885c-0.089,0.066-0.211,0.068-0.299,0.004c-0.09-0.065-0.126-0.182-0.089-0.286l0.486-1.367l-1.451,0.041
	c-0.114-0.006-0.21-0.067-0.244-0.173c-0.035-0.105,0.005-0.221,0.096-0.283l1.197-0.82l-0.06-0.041l-1.138-0.78
	c-0.091-0.063-0.131-0.178-0.096-0.283c0.034-0.105,0.132-0.163,0.244-0.173l1.451,0.041L20.89,3.248
	c-0.037-0.104-0.001-0.221,0.089-0.286c0.088-0.065,0.21-0.063,0.299,0.004l1.148,0.884l0.41-1.392c0.064-0.213,0.416-0.213,0.48,0
	l0.41,1.392l1.149-0.885c0.088-0.068,0.21-0.069,0.3-0.004c0.089,0.065,0.125,0.182,0.088,0.286l-0.486,1.366l1.45-0.04
	c0.121,0.008,0.211,0.067,0.244,0.173c0.035,0.105-0.005,0.221-0.096,0.283l-1.138,0.78l-0.06,0.041L26.376,6.67z M25.393,6.603
	l-0.798-0.547c-0.067-0.046-0.108-0.124-0.108-0.206c0-0.014,0.008-0.027,0.01-0.041c0.012-0.066,0.043-0.127,0.099-0.166
	l0.798-0.547l-0.967,0.027c-0.069,0.017-0.16-0.036-0.209-0.103s-0.061-0.153-0.033-0.231l0.324-0.911l-0.766,0.589
	c-0.064,0.051-0.15,0.066-0.229,0.04c-0.078-0.025-0.14-0.088-0.163-0.167l-0.273-0.929l-0.273,0.929
	c-0.023,0.079-0.085,0.142-0.163,0.167c-0.078,0.026-0.164,0.012-0.229-0.04L21.646,3.88l0.324,0.91
	c0.027,0.078,0.016,0.164-0.033,0.231c-0.048,0.066-0.142,0.101-0.209,0.103L20.76,5.097l0.798,0.547
	c0.056,0.039,0.087,0.1,0.099,0.166c0.002,0.014,0.01,0.026,0.01,0.041c0,0.083-0.041,0.16-0.108,0.206L20.76,6.603l0.968-0.027
	c0.086,0,0.161,0.037,0.209,0.103c0.049,0.067,0.061,0.153,0.033,0.231l-0.324,0.91l0.765-0.589
	c0.044-0.034,0.098-0.052,0.152-0.052c0.026,0,0.052,0.004,0.077,0.012c0.078,0.025,0.14,0.088,0.163,0.167l0.273,0.929l0.273-0.929
	c0.023-0.079,0.085-0.142,0.163-0.167c0.079-0.024,0.165-0.011,0.229,0.04l0.766,0.589l-0.324-0.91
	c-0.027-0.078-0.016-0.164,0.033-0.231c0.048-0.067,0.121-0.122,0.209-0.103L25.393,6.603z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M52.641,66.489"/>
</g>
<g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M57.921,65.491"/>
</g>
<g>
	<g>
		
			<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
			M53.936,70.87c0,1.066-0.863,1.934-1.934,1.934H22.996c-1.067,0-1.934-0.867-1.934-1.934l-4.836-41.04
			c0-1.068,0.865-1.934,1.934-1.934h38.68c1.066,0,1.934,0.865,1.934,1.934L53.936,70.87z"/>
		<g>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="28.981" y1="64.313" x2="29.308" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="25.676" y1="34.846" x2="26.435" y2="41.617"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="46.018" y1="64.315" x2="45.691" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="49.322" y1="34.846" x2="48.59" y2="41.371"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="37.306" y1="65.769" x2="37.306" y2="67.222"/>
			
				<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="37.306" y1="34.846" x2="37.306" y2="36.875"/>
		</g>
	</g>
</g>
<g>
	
		<circle fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" cx="37.5" cy="51.575" r="10.203"/>
	<g>
		
			<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="32.717" y1="46.79" x2="42.285" y2="56.358"/>
		
			<line fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" x1="32.717" y1="56.358" x2="42.285" y2="46.79"/>
	</g>
</g>
<g>
	<g>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M30.396,27.369
			l-3.276-7.024l2.402-1.121c2.317-1.08,3.895-0.719,4.733,1.081c0.438,0.939,0.455,1.809,0.05,2.612
			c-0.405,0.803-1.203,1.481-2.396,2.039l-1.089,0.508l0.857,1.838 M30.39,24.54l0.97-0.453c0.955-0.445,1.573-0.922,1.857-1.429
			c0.282-0.508,0.265-1.101-0.052-1.781c-0.286-0.613-0.699-0.976-1.24-1.089c-0.543-0.112-1.237,0.029-2.086,0.425l-1.204,0.562
			L30.39,24.54z"/>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M46.293,22.687
			l-1.076,0.502l-2.033-4.36l-4.883,2.276l2.034,4.361l-1.078,0.501L34.936,16.7l1.078-0.502l1.839,3.943l4.88-2.276l-1.838-3.943
			l1.076-0.501L46.293,22.687z"/>
		<path fill="#21A0DF" stroke="#21A0DF" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="M51.648,12.196
			c0.436,0.938,0.454,1.808,0.049,2.611c-0.406,0.804-1.203,1.483-2.395,2.039l-1.09,0.509L49.911,21l-1.076,0.502l-4.322-9.266
			l2.401-1.121C49.23,10.036,50.809,10.396,51.648,12.196z M47.781,16.43l0.969-0.453c0.954-0.445,1.574-0.921,1.857-1.429
			c0.281-0.506,0.266-1.101-0.053-1.781c-0.285-0.612-0.698-0.976-1.239-1.088c-0.542-0.112-1.237,0.029-2.087,0.425l-1.203,0.56
			L47.781,16.43z"/>
	</g>
	
		<path fill="none" stroke="#21A0DF" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" d="
		M20.102,27.406c-0.618-4.872,5.762-11.804,15.299-16.251c10.491-4.893,20.834-4.923,23.098-0.07
		c2.069,4.442-3.342,11.436-12.312,16.34"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M30.075,34.094H28.1v-9.829c0-0.138-0.112-0.25-0.25-0.25h-1.805c-0.082,0-0.158,0.04-0.205,0.106
		l-7.116,10.142c-0.03,0.042-0.045,0.092-0.045,0.144v1.486c0,0.138,0.112,0.25,0.25,0.25h7.041v3.195c0,0.138,0.112,0.25,0.25,0.25
		h1.63c0.138,0,0.25-0.112,0.25-0.25v-3.195h1.975c0.138,0,0.25-0.112,0.25-0.25v-1.549C30.325,34.206,30.213,34.094,30.075,34.094z
		 M25.97,29.361v4.732h-4.857l4.413-6.275c0.16-0.241,0.328-0.517,0.5-0.826C25.988,27.85,25.97,28.644,25.97,29.361z"/>
	<path fill="#6699CC" d="M40.443,37.76c0.839-1.313,1.264-3.31,1.264-5.938c0-2.539-0.439-4.513-1.305-5.867
		c-0.891-1.389-2.209-2.094-3.918-2.094c-1.751,0-3.074,0.677-3.933,2.011c-0.836,1.3-1.26,3.301-1.26,5.95
		c0,2.566,0.438,4.548,1.301,5.892c0.886,1.379,2.195,2.079,3.892,2.079C38.248,39.793,39.58,39.109,40.443,37.76z M38.726,36.452
		c-0.467,0.925-1.2,1.375-2.242,1.375c-1.029,0-1.758-0.443-2.229-1.356c-0.492-0.955-0.741-2.519-0.741-4.648
		c0-2.131,0.25-3.691,0.741-4.638c0.47-0.906,1.199-1.347,2.229-1.347c1.042,0,1.776,0.447,2.243,1.365
		c0.489,0.961,0.737,2.515,0.737,4.619C39.464,33.925,39.216,35.483,38.726,36.452z"/>
	<path fill="#6699CC" d="M53.068,27.874c0-1.234-0.438-2.222-1.301-2.936c-0.85-0.702-2.045-1.057-3.553-1.057
		c-0.913,0-1.794,0.145-2.619,0.43c-0.824,0.283-1.564,0.681-2.201,1.183c-0.107,0.084-0.127,0.238-0.046,0.346l0.861,1.148
		c0.078,0.105,0.224,0.131,0.335,0.061c0.723-0.463,1.371-0.785,1.928-0.956c0.556-0.169,1.155-0.255,1.783-0.255
		c0.798,0,1.432,0.191,1.886,0.567c0.446,0.37,0.663,0.871,0.663,1.53c0,0.84-0.303,1.478-0.926,1.949
		c-0.636,0.48-1.521,0.723-2.629,0.723h-1.496c-0.138,0-0.25,0.112-0.25,0.25v1.467c0,0.138,0.112,0.25,0.25,0.25h1.477
		c2.715,0,4.035,0.811,4.035,2.478c0,1.881-1.189,2.796-3.636,2.796c-0.635,0-1.318-0.083-2.031-0.246
		c-0.713-0.162-1.393-0.402-2.021-0.713c-0.077-0.038-0.17-0.034-0.243,0.012s-0.118,0.126-0.118,0.212v1.619
		c0,0.096,0.055,0.184,0.141,0.225c0.639,0.311,1.308,0.529,1.987,0.652c0.669,0.122,1.417,0.184,2.224,0.184
		c1.873,0,3.346-0.405,4.378-1.206c1.051-0.815,1.583-1.991,1.583-3.494c0-1.06-0.316-1.932-0.939-2.592
		c-0.466-0.493-1.12-0.849-1.951-1.062c0.637-0.243,1.16-0.595,1.563-1.051C52.776,29.735,53.068,28.889,53.068,27.874z"/>
	<path fill="#6699CC" d="M17.361,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875c0.483,0,0.875-0.392,0.875-0.875
		S17.845,5,17.361,5z"/>
	<path fill="#6699CC" d="M20.898,5h-0.086c-0.483,0-0.832,0.392-0.832,0.875s0.435,0.875,0.918,0.875s0.875-0.392,0.875-0.875
		S21.382,5,20.898,5z"/>
	<path fill="#6699CC" d="M24.398,5h-0.05c-0.483,0-0.85,0.392-0.85,0.875s0.417,0.875,0.9,0.875s0.875-0.392,0.875-0.875
		S24.882,5,24.398,5z"/>
	<path fill="#6699CC" d="M37.626,59.27c0,5.621,4.574,10.195,10.196,10.195c5.623,0,10.197-4.574,10.197-10.195
		c0-5.623-4.574-10.197-10.197-10.197C42.2,49.07,37.626,53.646,37.626,59.27z M56.27,59.27c0,4.656-3.789,8.445-8.446,8.445
		s-8.446-3.789-8.446-8.445c0-4.658,3.789-8.447,8.446-8.447C52.48,50.82,56.27,54.609,56.27,59.27z"/>
	<path fill="#6699CC" d="M42.833,64.257c0.171,0.171,0.396,0.257,0.619,0.257c0.223,0,0.448-0.086,0.618-0.257l3.753-3.752
		l3.752,3.752c0.171,0.171,0.396,0.257,0.618,0.257c0.224,0,0.449-0.086,0.619-0.257c0.342-0.342,0.342-0.896,0-1.237l-3.752-3.752
		l3.752-3.752c0.342-0.343,0.342-0.896,0-1.238s-0.896-0.342-1.237,0l-3.752,3.752l-3.753-3.752c-0.342-0.342-0.896-0.342-1.237,0
		c-0.341,0.342-0.341,0.896,0,1.238l3.752,3.752l-3.752,3.752C42.492,63.361,42.492,63.915,42.833,64.257z"/>
	<path fill="#6699CC" d="M62.77,13.878c-0.041-0.079-0.082-0.158-0.148-0.225L50.535,1.569c-0.004-0.003-0.01-0.004-0.012-0.008
		c-0.08-0.076-0.17-0.138-0.272-0.181c-0.106-0.044-0.222-0.067-0.335-0.067H14.812c-1.585,0-2.875,1.29-2.875,2.875v66.625
		c0,1.586,1.29,2.875,2.875,2.875h45.377c1.584,0,2.875-1.289,2.875-2.875v-56.29C63.063,14.265,62.947,14.039,62.77,13.878z
		 M50.791,4.3l9.348,9.348h-8.223c-0.62,0-1.125-0.505-1.125-1.125V4.3z M13.687,4.188c0-0.621,0.504-1.125,1.125-1.125h34.229
		v6.126H13.687V4.188z M61.313,70.813c0,0.621-0.504,1.125-1.125,1.125H14.812c-0.62,0-1.125-0.504-1.125-1.125V10.938h35.354v1.584
		c0,1.585,1.29,2.875,2.875,2.875h9.396V70.813z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M63.657,12.237c-0.046-0.116-0.109-0.227-0.205-0.318L52.954,1.835c-0.028-0.027-0.065-0.039-0.097-0.062
		c-0.061-0.043-0.115-0.089-0.187-0.117c-0.067-0.027-0.144-0.034-0.215-0.043c-0.037-0.005-0.069-0.022-0.108-0.022H52.33h-0.001
		H14.114c-1.577,0-2.86,1.283-2.86,2.859v66.923c0,1.577,1.283,2.859,2.86,2.859h46.773c1.575,0,2.858-1.282,2.858-2.859V12.608
		C63.746,12.474,63.711,12.351,63.657,12.237z M53.223,4.52l7.51,7.213h-7.395c-0.064,0-0.115-0.052-0.115-0.118V4.52z
		 M61.996,71.373c0,0.611-0.498,1.109-1.109,1.109H14.114c-0.612,0-1.11-0.498-1.11-1.109V4.45c0-0.612,0.498-1.109,1.11-1.109
		h37.359v8.274c0,1.03,0.836,1.868,1.864,1.868h8.658L61.996,71.373L61.996,71.373z"/>
	<path fill="#6699CC" d="M45.43,44.486c-6.656,0-12.072,5.416-12.072,12.072c0,6.655,5.416,12.071,12.072,12.071
		c6.655,0,12.071-5.415,12.071-12.071S52.085,44.486,45.43,44.486z M45.43,66.881c-5.691,0-10.322-4.63-10.322-10.32
		s4.63-10.321,10.322-10.321c5.69,0,10.321,4.631,10.321,10.321S51.12,66.881,45.43,66.881z"/>
	<path fill="#6699CC" d="M51.299,50.689c-0.342-0.342-0.896-0.342-1.238,0L45.43,55.32l-4.631-4.631
		c-0.342-0.342-0.896-0.342-1.238,0c-0.34,0.342-0.34,0.896,0,1.236l4.631,4.633l-4.631,4.631c-0.34,0.342-0.34,0.896,0,1.236
		c0.172,0.172,0.396,0.258,0.619,0.258s0.448-0.086,0.619-0.258l4.631-4.631l4.631,4.631c0.172,0.172,0.396,0.258,0.619,0.258
		s0.448-0.086,0.619-0.258c0.342-0.342,0.342-0.896,0-1.236l-4.631-4.631l4.631-4.633C51.641,51.586,51.641,51.031,51.299,50.689z"
		/>
	<path fill="#6699CC" d="M19.826,18.879c0,0.483,0.392,0.875,0.875,0.875h33.598c0.483,0,0.875-0.392,0.875-0.875
		s-0.392-0.875-0.875-0.875H20.701C20.218,18.004,19.826,18.396,19.826,18.879z"/>
	<path fill="#6699CC" d="M20.701,29.511h33.598c0.483,0,0.875-0.392,0.875-0.875c0-0.483-0.392-0.875-0.875-0.875H20.701
		c-0.483,0-0.875,0.392-0.875,0.875C19.826,29.119,20.218,29.511,20.701,29.511z"/>
	<path fill="#6699CC" d="M20.701,39.27h33.598c0.483,0,0.875-0.393,0.875-0.875s-0.392-0.875-0.875-0.875H20.701
		c-0.483,0-0.875,0.392-0.875,0.875S20.218,39.27,20.701,39.27z"/>
	<path fill="#6699CC" d="M30.125,47.275h-9.423c-0.483,0-0.875,0.393-0.875,0.875s0.392,0.875,0.875,0.875h9.423
		c0.483,0,0.875-0.393,0.875-0.875S30.608,47.275,30.125,47.275z"/>
	<path fill="#6699CC" d="M27.75,57.034h-7.049c-0.483,0-0.875,0.392-0.875,0.875s0.392,0.875,0.875,0.875h7.049
		c0.483,0,0.875-0.392,0.875-0.875S28.233,57.034,27.75,57.034z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M48.201,23.882l-17.297-7.355c-0.446-0.188-0.959,0.018-1.147,0.463c-0.189,0.445,0.018,0.958,0.463,1.147
		l17.295,7.355c0.112,0.047,0.229,0.07,0.344,0.07c0.34,0,0.664-0.2,0.806-0.533C48.854,24.585,48.646,24.071,48.201,23.882z"/>
	<path fill="#6699CC" d="M34.828,23.886l-5.931-2.612c-0.445-0.195-0.959,0.006-1.153,0.448c-0.195,0.442,0.006,0.958,0.448,1.153
		l5.931,2.612c0.115,0.05,0.234,0.074,0.352,0.074c0.336,0,0.657-0.195,0.801-0.522C35.471,24.597,35.271,24.081,34.828,23.886z"/>
	<path fill="#6699CC" d="M54.087,26.923h-0.974l2.484-5.843c0.545-1.285-0.057-2.775-1.341-3.322l-2.211-0.94l1.563-5.534
		c0.379-1.344-0.405-2.746-1.75-3.125l-24.201-6.84c-1.35-0.379-2.748,0.405-3.127,1.75l-3.207,11.346
		c-0.021,0.075-0.016,0.149-0.017,0.224l-0.816-0.103c-1.38-0.168-2.655,0.812-2.83,2.198l-1.28,10.189h-0.976
		c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993c0.03,1.523,1.278,2.753,2.808,2.753H49.25
		c1.529,0,2.777-1.229,2.809-2.753l4.832-40.993c0.004-0.034,0.006-0.068,0.006-0.103C56.896,28.183,55.637,26.923,54.087,26.923z
		 M53.986,20.396l-2.555,6.01c-0.072,0.171-0.07,0.348-0.035,0.517H22.179L29.4,9.941c0.169-0.397,0.63-0.584,1.028-0.415
		l20.28,8.623c0.017,0.006,0.028,0.019,0.046,0.024c0.005,0.001,0.01,0,0.016,0.002l2.804,1.192
		C53.971,19.537,54.156,19.999,53.986,20.396z M26.216,3.543c0.118-0.416,0.549-0.661,0.968-0.541l24.201,6.839
		c0.416,0.118,0.659,0.552,0.543,0.967l-1.504,5.318l-19.311-8.21c-1.285-0.547-2.776,0.055-3.323,1.34l-2.517,5.918
		c-0.063-0.023-0.12-0.054-0.188-0.063l-2.065-0.259L26.216,3.543z M19.399,16.952c0.054-0.429,0.439-0.733,0.875-0.68l4.303,0.54
		l-4.037,9.495c-0.087,0.205-0.082,0.421-0.017,0.617h-2.377L19.399,16.952z M50.314,70.669c-0.004,0.034-0.006,0.067-0.006,0.103
		c0,0.584-0.476,1.06-1.06,1.06H20.243c-0.583,0-1.059-0.476-1.059-1.06c0-0.033-0.002-0.067-0.006-0.103l-4.83-40.981
		c0.023-0.563,0.489-1.015,1.058-1.015h38.68c0.568,0,1.034,0.451,1.059,1.015L50.314,70.669z"/>
	<path fill="#6699CC" d="M32.34,58.307h-4.416c-1.123,0-1.969-0.352-2.322-0.964s-0.234-1.521,0.328-2.491l0.327-0.565l1.131,0.653
		l0.001-4.362l-3.779,2.18l1.131,0.653l-0.326,0.564c-0.896,1.551-1.013,3.058-0.329,4.242c0.685,1.188,2.048,1.84,3.838,1.84h4.416
		c0.483,0,0.875-0.392,0.875-0.875C33.215,58.699,32.824,58.307,32.34,58.307z"/>
	<path fill="#6699CC" d="M39.508,46.949l-0.003-4.362l-1.13,0.653l-0.365-0.631c-0.549-0.951-1.248-1.637-2.074-2.035
		c-0.927-0.45-1.947-0.451-2.874-0.004c-0.831,0.402-1.53,1.088-2.079,2.037l-2.222,3.843c-0.242,0.419-0.099,0.954,0.319,1.196
		c0.138,0.078,0.289,0.117,0.437,0.117c0.302,0,0.596-0.156,0.758-0.438l2.222-3.844c0.371-0.642,0.816-1.092,1.325-1.336
		c0.448-0.217,0.902-0.217,1.35,0.002c0.506,0.244,0.951,0.692,1.322,1.336l0.365,0.631l-1.131,0.654L39.508,46.949z"/>
	<path fill="#6699CC" d="M42.328,50.08c-0.241-0.419-0.776-0.561-1.195-0.32c-0.419,0.242-0.563,0.777-0.32,1.195l2.252,3.896
		c0.562,0.971,0.682,1.879,0.328,2.49c-0.354,0.613-1.199,0.965-2.322,0.965h-0.637V57l-3.779,2.182l3.779,2.183v-1.308h0.637
		c1.791,0,3.154-0.652,3.839-1.841c0.684-1.187,0.565-2.692-0.33-4.241L42.328,50.08z"/>
	<path fill="#6699CC" d="M26.13,63.346c-0.48,0.055-0.826,0.486-0.772,0.967l0.327,2.908c0.05,0.447,0.429,0.777,0.869,0.777
		c0.033,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-0.327-2.908C27.043,63.637,26.613,63.294,26.13,63.346z"/>
	<path fill="#6699CC" d="M24.216,47.162c0.032,0,0.065-0.002,0.099-0.006c0.48-0.055,0.826-0.486,0.772-0.967l-1.294-11.541
		c-0.054-0.48-0.482-0.826-0.967-0.772c-0.48,0.054-0.826,0.487-0.772,0.967l1.294,11.54C23.398,46.832,23.777,47.162,24.216,47.162
		z"/>
	<path fill="#6699CC" d="M43.361,63.348c-0.489-0.058-0.912,0.291-0.967,0.771l-0.326,2.906c-0.055,0.479,0.291,0.912,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.817-0.33,0.867-0.777l0.326-2.906C44.188,63.834,43.843,63.4,43.361,63.348z"/>
	<path fill="#6699CC" d="M46.668,33.877c-0.486-0.053-0.913,0.292-0.967,0.772l-1.297,11.563c-0.055,0.479,0.291,0.913,0.771,0.968
		c0.033,0.004,0.066,0.006,0.099,0.006c0.439,0,0.818-0.33,0.869-0.777l1.297-11.563C47.494,34.364,47.148,33.931,46.668,33.877z"/>
	<path fill="#6699CC" d="M34.553,63.373c-0.483,0-0.875,0.393-0.875,0.875v2.875c0,0.482,0.392,0.875,0.875,0.875
		c0.483,0,0.875-0.393,0.875-0.875v-2.875C35.428,63.766,35.037,63.373,34.553,63.373z"/>
	<path fill="#6699CC" d="M34.553,37.435c0.483,0,0.875-0.392,0.875-0.875v-1.813c0-0.483-0.392-0.875-0.875-0.875
		c-0.483,0-0.875,0.392-0.875,0.875v1.813C33.678,37.043,34.07,37.435,34.553,37.435z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="20px" height="20px" viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<g id="Layer_1_1_" display="none">
	<path display="inline" fill="#E8AE4A" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.51,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.321,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.357,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy_3" display="none">
	<path display="inline" fill="#4675B8" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M11.329,16.83c-0.362,0.361-0.804,0.545-1.313,0.545s-0.949-0.184-1.312-0.545
		c-0.361-0.362-0.544-0.805-0.544-1.313c0-0.51,0.18-0.951,0.537-1.316c0.357-0.363,0.802-0.551,1.318-0.551
		c0.512,0,0.953,0.184,1.313,0.543c0.359,0.361,0.542,0.808,0.542,1.324C11.871,16.027,11.688,16.468,11.329,16.83z M11.389,7.468
		l-0.535,2.207c-0.185,0.771-0.321,1.7-0.409,2.763c-0.01,0.111-0.104,0.198-0.216,0.198H9.783c-0.114,0-0.209-0.089-0.216-0.202
		c-0.046-0.754-0.201-1.683-0.46-2.759L8.58,7.467C8.257,6.115,8.099,5.169,8.099,4.572c0-0.576,0.177-1.049,0.527-1.406
		c0.351-0.358,0.813-0.541,1.37-0.541c0.543,0,1.004,0.183,1.363,0.544c0.357,0.36,0.541,0.822,0.541,1.373
		C11.9,5.077,11.734,6.033,11.389,7.468z"/>
</g>
<g id="Layer_1_copy" display="none">
	<path display="inline" fill="#A32430" d="M10,0C4.477,0,0,4.478,0,10c0,5.521,4.477,10,10,10c5.521,0,10-4.479,10-10
		C20,4.478,15.521,0,10,0z M15.159,13.764c0.187,0.188,0.288,0.438,0.288,0.697c0,0.262-0.102,0.51-0.288,0.695
		c-0.185,0.184-0.438,0.289-0.698,0.289c-0.262,0-0.518-0.105-0.697-0.291L10,11.393l-3.764,3.766c-0.361,0.359-1.033,0.359-1.393,0
		c-0.187-0.186-0.29-0.434-0.29-0.695s0.103-0.512,0.289-0.695L8.606,10L4.842,6.234c-0.385-0.384-0.385-1.01,0-1.394
		c0.359-0.361,1.032-0.361,1.394,0L10,8.604l3.766-3.765c0.356-0.359,1.033-0.361,1.396,0c0.188,0.185,0.288,0.433,0.288,0.697
		c0.001,0.264-0.104,0.511-0.288,0.697l-3.767,3.764L15.159,13.764z"/>
</g>
<g>
	<circle fill="#CC3D6A" cx="10" cy="10" r="9.967"/>
</g>
<path fill="#FFFFFF" d="M11.414,10l3.503-3.503c0.392-0.391,0.392-1.024,0-1.414c-0.392-0.391-1.022-0.391-1.414,0L10,8.586
	L6.497,5.082c-0.391-0.391-1.023-0.391-1.414,0c-0.391,0.39-0.391,1.023,0,1.414L8.586,10l-3.503,3.504
	c-0.391,0.391-0.391,1.023,0,1.414c0.195,0.195,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293L10,11.414l3.502,3.503
	c0.195,0.194,0.451,0.293,0.707,0.293s0.512-0.099,0.707-0.293c0.391-0.392,0.391-1.022,0-1.414L11.414,10z"/>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M50.955,23.981l-17.298-7.355c-0.446-0.19-0.959,0.018-1.147,0.463c-0.189,0.445,0.018,0.958,0.463,1.147
		l17.296,7.355c0.112,0.047,0.229,0.07,0.344,0.07c0.34,0,0.664-0.2,0.806-0.533C51.605,24.684,51.398,24.17,50.955,23.981z"/>
	<path fill="#6699CC" d="M37.581,23.984l-5.931-2.612c-0.443-0.195-0.959,0.006-1.153,0.448c-0.195,0.442,0.006,0.958,0.448,1.153
		l5.931,2.612c0.115,0.05,0.234,0.074,0.352,0.074c0.336,0,0.657-0.195,0.801-0.522C38.225,24.695,38.023,24.179,37.581,23.984z"/>
	<path fill="#6699CC" d="M56.841,27.021h-0.973l2.483-5.843c0.545-1.285-0.057-2.775-1.34-3.322l-2.213-0.94l1.564-5.533
		c0.379-1.344-0.406-2.746-1.75-3.125l-24.202-6.84c-1.341-0.379-2.748,0.405-3.127,1.75l-3.206,11.346
		c-0.021,0.075-0.016,0.149-0.017,0.224l-0.817-0.103c-0.67-0.085-1.336,0.098-1.87,0.513c-0.535,0.416-0.875,1.014-0.958,1.685
		l-1.28,10.189H18.16c-1.549,0-2.809,1.26-2.809,2.809c0,0.034,0.002,0.068,0.006,0.103l4.831,40.993
		c0.03,1.523,1.278,2.753,2.808,2.753h29.007c1.53,0,2.778-1.229,2.808-2.753l4.834-40.993c0.004-0.034,0.006-0.068,0.006-0.103
		C59.648,28.281,58.391,27.021,56.841,27.021z M56.328,19.466c0.396,0.169,0.581,0.631,0.412,1.028l-2.555,6.01
		c-0.072,0.171-0.07,0.348-0.035,0.517H24.933l7.222-16.982c0.082-0.192,0.233-0.341,0.427-0.419c0.195-0.079,0.408-0.077,0.6,0.005
		l20.276,8.621c0.019,0.006,0.03,0.021,0.05,0.026c0.006,0.001,0.012,0.001,0.016,0.002L56.328,19.466z M28.969,3.642
		c0.118-0.416,0.549-0.659,0.968-0.541L54.139,9.94c0.416,0.118,0.658,0.552,0.543,0.967l-1.505,5.318l-19.311-8.21
		c-0.624-0.265-1.312-0.271-1.939-0.018c-0.628,0.253-1.119,0.736-1.383,1.358l-2.517,5.918c-0.062-0.023-0.12-0.054-0.188-0.063
		l-2.065-0.259L28.969,3.642z M22.152,17.049c0.026-0.208,0.131-0.393,0.296-0.521c0.166-0.128,0.374-0.185,0.579-0.159l4.304,0.54
		l-4.037,9.495c-0.087,0.205-0.082,0.421-0.017,0.617H20.9L22.152,17.049z M53.066,70.768c-0.004,0.034-0.006,0.068-0.006,0.104
		c0,0.584-0.475,1.059-1.059,1.059H22.996c-0.583,0-1.059-0.475-1.059-1.059c0-0.034-0.002-0.068-0.006-0.104l-4.829-40.98
		c0.023-0.563,0.489-1.015,1.058-1.015h38.681c0.569,0,1.034,0.451,1.058,1.015L53.066,70.768z"/>
	<path fill="#6699CC" d="M28.884,63.443c-0.48,0.055-0.826,0.486-0.772,0.968l0.326,2.907c0.05,0.447,0.429,0.777,0.869,0.777
		c0.032,0,0.065-0.002,0.099-0.006c0.48-0.054,0.826-0.486,0.772-0.967l-0.326-2.908C29.797,63.734,29.364,63.382,28.884,63.443z"/>
	<path fill="#6699CC" d="M26.532,42.486c0.48-0.055,0.826-0.486,0.772-0.967l-0.759-6.771c-0.054-0.479-0.479-0.819-0.967-0.772
		c-0.48,0.054-0.826,0.487-0.772,0.967l0.759,6.771c0.05,0.447,0.429,0.777,0.869,0.777C26.466,42.492,26.499,42.49,26.532,42.486z"
		/>
	<path fill="#6699CC" d="M46.116,63.445c-0.485-0.057-0.914,0.291-0.968,0.771l-0.325,2.906c-0.056,0.48,0.29,0.913,0.771,0.967
		c0.033,0.004,0.066,0.006,0.1,0.006c0.438,0,0.818-0.33,0.867-0.777l0.326-2.905C46.941,63.934,46.598,63.5,46.116,63.445z"/>
	<path fill="#6699CC" d="M49.421,33.976c-0.487-0.052-0.913,0.292-0.967,0.772l-0.731,6.525c-0.056,0.479,0.291,0.912,0.771,0.967
		c0.032,0.004,0.065,0.006,0.099,0.006c0.439,0,0.818-0.33,0.868-0.777l0.731-6.525C50.247,34.463,49.9,34.03,49.421,33.976z"/>
	<path fill="#6699CC" d="M37.306,64.895c-0.483,0-0.875,0.392-0.875,0.875v1.453c0,0.482,0.392,0.875,0.875,0.875
		s0.875-0.393,0.875-0.875V65.77C38.182,65.285,37.789,64.895,37.306,64.895z"/>
	<path fill="#6699CC" d="M37.306,37.75c0.483,0,0.875-0.392,0.875-0.875v-2.029c0-0.483-0.393-0.875-0.875-0.875
		s-0.875,0.392-0.875,0.875v2.029C36.431,37.358,36.822,37.75,37.306,37.75z"/>
	<path fill="#6699CC" d="M37.5,40.496c-6.108,0-11.078,4.97-11.078,11.079c0,6.108,4.97,11.077,11.078,11.077
		c6.109,0,11.079-4.969,11.079-11.077C48.578,45.466,43.607,40.496,37.5,40.496z M37.5,60.902c-5.144,0-9.328-4.185-9.328-9.327
		c0-5.146,4.185-9.329,9.328-9.329c5.145,0,9.329,4.186,9.329,9.329C46.828,56.719,42.645,60.902,37.5,60.902z"/>
	<path fill="#6699CC" d="M38.74,51.574l4.164-4.165c0.341-0.343,0.341-0.896,0-1.238c-0.342-0.342-0.896-0.342-1.238,0L37.5,50.336
		l-4.166-4.165c-0.342-0.342-0.896-0.342-1.237,0c-0.341,0.343-0.342,0.896,0,1.238l4.165,4.165l-4.165,4.165
		c-0.342,0.342-0.342,0.896,0,1.237c0.171,0.172,0.395,0.256,0.619,0.256c0.224,0,0.448-0.084,0.619-0.256l4.166-4.164l4.166,4.164
		c0.171,0.172,0.396,0.256,0.619,0.256c0.223,0,0.448-0.084,0.618-0.256c0.342-0.342,0.342-0.896,0-1.237L38.74,51.574z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M60.912,72.441H14.087c-1.493,0-2.708-1.214-2.708-2.708V5.266c0-1.493,1.215-2.708,2.708-2.708h46.827
		c1.492,0,2.708,1.215,2.708,2.708v64.468C63.62,71.228,62.406,72.441,60.912,72.441z M14.087,4.206c-0.584,0-1.06,0.476-1.06,1.06
		v64.468c0,0.584,0.476,1.061,1.06,1.061h46.827c0.583,0,1.06-0.477,1.06-1.061V5.266c0-0.583-0.477-1.06-1.06-1.06H14.087z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,16.858h-32.25c-0.483,0-0.875-0.392-0.875-0.875s0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875S54.107,16.858,53.625,16.858z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,27.617h-32.25c-0.483,0-0.875-0.392-0.875-0.875c0-0.483,0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875C54.5,27.225,54.107,27.617,53.625,27.617z"/>
</g>
<g>
	<path fill="#6699CC" d="M53.625,38.375h-32.25c-0.483,0-0.875-0.392-0.875-0.875s0.392-0.875,0.875-0.875h32.25
		c0.482,0,0.875,0.392,0.875,0.875S54.107,38.375,53.625,38.375z"/>
</g>
<g>
	<path fill="#6699CC" d="M29.373,49.133h-7.998c-0.483,0-0.875-0.392-0.875-0.875c0-0.482,0.392-0.875,0.875-0.875h7.998
		c0.483,0,0.875,0.393,0.875,0.875C30.248,48.741,29.856,49.133,29.373,49.133z"/>
</g>
<g>
	<path fill="#6699CC" d="M27.763,59.893h-6.388c-0.483,0-0.875-0.392-0.875-0.875c0-0.482,0.392-0.875,0.875-0.875h6.388
		c0.483,0,0.875,0.393,0.875,0.875C28.638,59.501,28.247,59.893,27.763,59.893z"/>
</g>
<g>
	<path fill="#6699CC" d="M35.727,49.516"/>
</g>
<g>
	<path fill="#6699CC" d="M50.613,64.8"/>
</g>
<g>
	<g>
		<path fill="#6699CC" d="M44.561,67.521c-6.457,0-11.709-5.254-11.709-11.711c0-0.719,0.066-1.438,0.195-2.141l1.721,0.318
			c-0.11,0.597-0.166,1.21-0.166,1.822c0,5.491,4.467,9.959,9.959,9.959c1.992,0,3.916-0.586,5.563-1.696l0.979,1.45
			C49.165,66.831,46.902,67.521,44.561,67.521z"/>
	</g>
	<g>
		<g>
			<polygon fill="#6699CC" points="30.879,53.666 35.572,49.759 36.61,55.777 			"/>
		</g>
	</g>
</g>
<g>
	<g>
		<path fill="#6699CC" d="M56.075,57.952l-1.722-0.316c0.11-0.6,0.166-1.214,0.166-1.823c0-5.492-4.468-9.961-9.959-9.961
			c-1.994,0-3.918,0.588-5.564,1.698l-0.979-1.45c1.937-1.308,4.198-1.998,6.543-1.998c6.457,0,11.709,5.254,11.709,11.711
			C56.271,56.527,56.205,57.248,56.075,57.952z"/>
	</g>
	<g>
		<g>
			<polygon fill="#6699CC" points="58.242,57.958 53.548,61.865 52.512,55.848 			"/>
		</g>
	</g>
</g>
<g>
	<path fill="#6699CC" d="M38.507,46.824"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="75px" height="75px" viewBox="0 0 75 75" enable-background="new 0 0 75 75" xml:space="preserve">
<g>
	<path fill="#6699CC" d="M62.406,13.464c-0.043-0.11-0.104-0.216-0.195-0.303L52.215,3.56c-0.026-0.026-0.062-0.038-0.092-0.059
		c-0.057-0.041-0.109-0.085-0.177-0.111c-0.064-0.026-0.136-0.032-0.204-0.042c-0.035-0.004-0.067-0.021-0.104-0.021h-0.017H51.62
		H15.233c-1.502,0-2.724,1.222-2.724,2.723v63.723c0,1.501,1.222,2.723,2.724,2.723h44.535c1.501,0,2.723-1.222,2.723-2.723V13.818
		C62.491,13.69,62.458,13.573,62.406,13.464z M52.471,6.117l7.151,6.868h-7.041c-0.062,0-0.11-0.049-0.11-0.112V6.117z
		 M60.825,69.773c0,0.582-0.475,1.056-1.057,1.056H15.233c-0.583,0-1.057-0.474-1.057-1.056V6.05c0-0.583,0.474-1.057,1.057-1.057
		h35.571v7.879c0,0.98,0.798,1.778,1.776,1.778h8.244V69.773z"/>
	<path fill="#6699CC" d="M48.729,51.256c0-0.625-0.237-1.467-1.205-2.305c-1.33-2.633-2.331-4.074-4.078-6.423
		c-0.821-1.105-1.484-1.938-2.035-2.611c0.551-0.672,1.21-1.505,2.035-2.613c2.146-2.881,3.215-4.476,5.181-8.708
		c0.103-0.222,0.098-0.472,0.002-0.686c0-0.006,0.002-0.012,0.002-0.018c0-3.198-9.991-3.292-11.13-3.292
		s-11.129,0.092-11.129,3.292c0,0.004,0.001,0.008,0.001,0.011c-0.097,0.217-0.103,0.468,0,0.691
		c1.964,4.232,3.034,5.828,5.178,8.709c0.819,1.102,1.481,1.935,2.037,2.611c-0.553,0.675-1.215,1.51-2.037,2.612
		c-1.747,2.35-2.747,3.791-4.079,6.427c-0.961,0.834-1.202,1.675-1.202,2.301c0,0.1,0.022,0.193,0.034,0.291
		c-0.004,0.089,0.006,0.177,0.03,0.261c0.628,2.83,6.047,4.35,11.167,4.35c5.116,0,10.532-1.518,11.165-4.345
		c0.026-0.091,0.039-0.184,0.033-0.279C48.709,51.44,48.729,51.351,48.729,51.256z M41.804,49.128
		c-1.129,1.13-2.541,1.291-4.304,1.291s-3.12-0.108-4.303-1.291c0.818-1.763,1.247-2.388,2.112-3.55
		c0.865-1.164,1.309-1.616,2.19-2.693c0.88,1.077,1.325,1.529,2.189,2.693C40.555,46.742,40.983,47.366,41.804,49.128z
		 M32.099,50.228c1.612,1.611,3.474,1.746,5.401,1.746c1.769,0,3.79-0.135,5.4-1.746c0.395-0.395,0.524-0.96,0.387-1.486
		c0.854,0.238,1.614,0.524,2.225,0.852c0.263,0.142,0.489,0.289,0.69,0.438c0.21,0.421,0.428,0.87,0.66,1.365
		c-2.329,2.055-5.235,2.472-9.362,2.472c-3.839,0-6.8-0.185-9.363-2.47c0.233-0.497,0.452-0.946,0.663-1.37
		c0.21-0.155,0.453-0.31,0.732-0.456c0,0,0-0.001,0.001-0.001s0,0,0,0c0.6-0.316,1.345-0.594,2.18-0.827
		C31.576,49.268,31.706,49.833,32.099,50.228z M46.795,27.78c-3.325,1.332-5.402,1.703-9.295,1.703c-3.892,0-5.968-0.37-9.293-1.702
		c0.833-0.623,4.14-1.513,9.294-1.513C42.653,26.267,45.96,27.156,46.795,27.78z M32.887,43.522c1.029-1.38,1.801-2.328,2.421-3.073
		c0.257-0.31,0.257-0.758,0-1.066c-0.622-0.747-1.396-1.698-2.421-3.074c-1.672-2.246-2.638-3.645-3.91-6.153
		c3.044,0.983,7.762,1.026,8.523,1.026s5.476-0.043,8.52-1.025c-1.271,2.509-2.238,3.907-3.911,6.153
		c-1.033,1.388-1.803,2.333-2.42,3.073c-0.257,0.309-0.257,0.757,0,1.066c0.619,0.741,1.391,1.688,2.42,3.073
		c1.122,1.507,1.924,2.636,2.714,3.963c-0.712-0.258-1.497-0.481-2.347-0.656l0,0h-0.004c-0.002,0-0.002-0.001-0.004-0.001
		c0,0,0,0-0.001,0l-0.093-0.02c-0.437-0.782-0.845-1.358-1.438-2.157c-0.606-0.814-1.013-1.292-1.482-1.849
		c-0.225-0.266-0.465-0.548-0.753-0.901c-0.589-0.72-1.814-0.72-2.405,0c-0.289,0.354-0.53,0.64-0.754,0.903
		c-0.469,0.557-0.874,1.034-1.479,1.847c-0.595,0.801-1.002,1.375-1.438,2.157c-0.89,0.179-1.711,0.409-2.452,0.679
		C30.963,46.158,31.766,45.031,32.887,43.522z"/>
</g>
</svg>
�PNG


IHDRZZ8�AtEXtSoftwareAdobe ImageReadyq�e<�IDATx��]xTו����H	u$0 �:€$:.cc�k0Ydž�$Y;��v�.q썝�w�l�_�N�:Nlc��`�1��)�HT5TF���){�}SU`F���\����w����{�}O�?��?��?��?��?��?��M�d�T���q��G9���z�k�H���@�+����vT7��S��Ȱ@�����k@[=yEaq
�ң��1/_�J���d2�l6y,笾
�)C#��"w<[��y��rV\�P�d�J��&�	�r��cY�Ќ��	y6S�׀g�H$~��f���(
DD����dIw	d���V[�����"�v�Ea��6ڭ�ʣ��������ˮV�rEq)22��
��@f\d�ݓ;;ݣ����s��hK'g��v2���k�J=bc����X���� Op�d�A��i�me��j��S�f��O���յ�!$O�X��f�6O���hd��ɰ��6��l�3�$�G� 4$���F(b+�t��%T��onm�!��!�	���������Qk��#�o�I��wx���>�v�CB4HNN`VI#�V+�jkk�c�477��ֶ���C�j�t:TWW����"�ڪ��q���8��ۧN�A>B����*�Gl���q�У�aH�Vd8y�7۶��` �FSC〃�!F]}��]UY���/z$#T�h����-3�O� ;5U�A�/�S޹s������
׬۟�@���k�Z�FfF&J���ʊJ^�X>��6�-lӵ�4��C����f��h7���c�dA�$ Id����Y�YP��N�|���
l�Ķ��>F�S���}HU�@�R�BJ�E��\�	Q{d[��b��],�utM�-�hm����+�{W�d�f$���g��*,驪A�4��K���e�ض�x�W���`�W��*������	��٭G��(�2���t6JQ�E��m��f�L�긆.��e�l](2�=6��6�pסr�1#��'`I��ϗxfɎ孥o�vo�F9�lI ��I�ry�:�X��%E�"�t
�
ŢP����ƛ��|���
eo�pW-Xc,l�������Ikŕzאe<�6!s�,�&�p]n�m���
mo�wrt�<l�"?_�b�9A��my:9Sd��EC����}���J
��a��\t�)�?T��H�\y�f
{{�M.Wx��7�"��8X���ޘ���2�u�P�Axbs5�|�F���$�p]n�mY��U�4AA����ި�"
40�5��	��x1������鹸m�9i��A��D?W�
���W���)�rn�2X��N2�mζ2ȁ����^�J����y.����#V�K@�=#��<9�
2w^ӌ��:�Y�UM�ln�mY�a�,��z�!��2/����A�{�����Xqɏͥ	�mw|e9F���.J�}b��Pʅ��d�Q�e,�e�l�?�+'��o��U�fmd}@����&�<*/���ŝ��I��ri-���Ò-E��P�\)�J#,�e�L��}��l��j������Q�'�S�I�M-�����ΌL��r*�,uN�W㛹:<�i?N�;-2�2({�e�L��}p_ܧ':�M�P���]��U���\Jo ��H��f��]��U -���U��5�:?K6������Id��e|��i�e��,��}r�A�0$!���{�h���
��8�Х����5�]�*�q����<��[�K�2��=�4I1;�V+��A����2�Ͳ����;66�G$y-$����N�f.6�
»FN�۳�pת3R� ˬ WJt�i>��qN�=�*(1�_X,��1��u��̮��S�}q��7��gtL,��S�K/v���=�'O6*��N�֍���5��:'�2�]=���O������
��W�a�A�oU���u�Mo��}q��7��N]Syr�.�y��+��މ���ݠԨ���0Ƃ['����a�g$��,q�X�#������Ն}8���� ��/�{!2w�8{'��N�܆���m��O�u`]X'�ͦgLl��s�~
,��;n�����=]b%�J�23���x���w�YȬQ�h��r�+P�%?�`����E�N,�������D#6��:�.���:�]�����맫��
������.�K�\֩�}��Tǒ�.@�zrV�5�����`����S�t��UKG(��5���	��}��˫��\�r[���z�lցua���@Ј�n�ۿ9����J���1O{���Sp����RM#������	��i+�VO�X=�J�=��7��ѝ'y�#�����
°���{)ʶvh�|B@f��&YJ�6,�e��'56��:M�;��ay���l�uomutt�)���G[A� ��oɛ���'a�g�g'H�+Z�@�\���᭵�q�AvdHV.[�Pu�[v ��	���񇁦���G�K��.mY�d����J���I��,�����
�3�H��ѫ��ɬ'��S��eA�!����#wb��b �xz
���	��M�=�<�����']�bPV����/�"s*NWI���8��1�P\>fn7a�,��@B�kN'pG%����Td�rR�5�h��D�f��.r_G/�FBA�{L|h�)��ԉ���f�E9�qp�{�k�b>m��V���Fl_K��0yǏE����4�8!��B��a���e��z��)t��*���m'�� An[QY	{2�����h\���4cjQ��e�
��W����;d
��j��4n���"��|�_͸�fJk�|����sq�pN�
��'^�g�����p����a��m@C���ɲ�[h4�I���r�0,�_�����l�K!���K`_�|��^�wnG�̚���-����)��K���1�A�����؆yo���N`O�p9V�� ��gv��NƓ�ؓ��3L�����L�K[��2Y6�a�^��"�Q*�Nϟ*��sW��K!MH
�&<�������,�蚲"�t�N�p�Ȑ���_�
�\�,���_�;^�>�d��s���S�ä�teP��z��:[Hljk�o���K���X��hy�4��J������n��/2�
�{��B�w�S��to��N��9�5!���L��{%��F���V/_@\����؊�^�/����e��ں%�N��!�K�k%�K^yl���.u�-�`Y,S
��G�H�B���9c��@>|�L��:���:��@6_'���������4D��#��T	e��j0��l��m�㽍���G�`�0�%7��W?��3�b���;S05|�k������6�'�ti�m�-�`Y�|HE$�҉Q)�mN�>Y�g�],
mA�B�ɓ�+��}�'�}��=���jȓ��Gڟ嫪�DAAt����H�~g'vo=���x�^YH�(&4.���/�+�`�o)��Ck���P8�&vd
�']�q]n�mY�(O�'O����_�'?v�
Ο.�'�Vdj�%�BA]f���n6{��J�=��=f
��>�;ȕ��b@���(5]�-�sI�=_9M�xu!z�.��.O4����_?*&���ţ�.N�T�<c���#ڀ�sA���(�u^~p�ug��-&,d@�F��U@�\UYѣc�{ك�[�4����C��n'�ϑ'w
���5�4�<�Ԏ]_��ۏ��/�҈�5���?'�ޙ%��]E�|ܥ�:\�ۈ�aqr��8y�<�eԝ�x�����Ȭ+�\A�l�!���d7ft׬P(0|�-4�D�^�6�1!�8����-��>��Ə�F��GӜ3Q�ÿ\�g����;�F�θ�2>�u$�0�i��d�f]l���Y�/Qm�<9;4@�Rx��@.�UW�uO�
���u�N�V+=�KUTI�|���
Ť$�؁�����v��{4R߂�_��uvn��m/��\�Ǹ�(F���)����p������?�� ��!\EE�u'��%��w��=�Uzi�s7%
�„8+����[�a��+<kK
����?��.�<��O��e��ɉ@^�� �����{��'�-^�l��‚��:7�,��c'Lf�~V��+������
ر�F>}�1<������u-X��C|��b���0ȹ#��"P����Ü��3eb�{&ֈ[Â�~���<+�/�F��s����(�Z��J��A�s�hǷ�Pdb��~�8~��/ݣ�����h�.	
�%�^��d��3��ś0:\z��9{�Q<��Yq�9<\���m466ٻ���ĺ!�M���vl_+�܋���h"8@Z	t�
�b��p
��gKtB��5�Ǽ#r~��~g��b�=ٳ���u�·�aX��7j�%�6C��ЯG�S�Da�(;:�m
���n|�{;���0ٳ�hÉ.�eK�E<k	��.���{���=N�(��X'�Dp���֛��䆆&�"���X)�D#oL����9��?ߋ�{�I�6-����"����GK��f�D�;L�|�D��?M�`� �d��.k7��}����(���U!o���1����`m�~���]X�_OJ�����@Z����Ղ	��"y�eA?b��H�}�z�y:3�h0l���M�:��K1g
�ͼ{�@#�Q�-�hd��¢�܄+]0''/�D ]�,��~2L�ё����ɾ��#����z����.x��N��ġ�uغa?Zb�����g��/N����'������ب�~Ӆ�U֛t�>g�8��˫�`��ɣ�8X���J��B�=Z��$�2*I���P'���޲�+O��,R�g���<u�����B':�]ĘV�$��	�'�Uȉ	�������J�ѽ<�,�2�qqqH�n8�����Һ�H&<�H kE�ޢ��6�m�z,�wwXzHQQ�E{Є�z��ظX�����ą�l���Ɉ'u�L8����)4L�bۀF�]2Cq��9DF����i�T?<9%��)�Ax-G%^B544P����Ļ��j���Q���@���+���G�&��3ĸX���^��SX74D�)^-�ˌ�ZY�6�-l���@�1G�W.i�RS+�.&:Zm&O�����FFG�`0x$�/S�ν�]�xQ,l���{͓���e�`u0��65���J/�%rP$�a�}�h��ڶ��2�B.�����H��Ӧ�����j�y�:�pm8�
�Vݲ��P���0ث��� :*
C����[�,���M�0���#��F��1G[�V��X��ǯ>c/V����!		"����6ܽWR7��C�AJ��J6Z`;ٶH�����Ż�L�9��r�\�r����X�v�m]}���B�l�F��:��-*YeG�e��
dy3�yr0"�ޝwm��d��
��u�V��n�OoeYiU*"�U�2����A#�,�:@vÓ��+$ۙ�K��,-�E��9�����׭_�7#!�"�#'�##��3]h�D���P_7��r�d'���`F�t��ޛ@�����&z�}��P�݁��F|~�,Ǵ7S�L �7E#Cz�Z��M��c
N���؏��Alt�џ�'�'�'�'�'�'�i�0��%�)��IEND�B`�<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 width="16px" height="16px" viewBox="0 0 16 16" enable-background="new 0 0 16 16" xml:space="preserve">
<g>
	<path fill="#889EAA" d="M15.222,5.874c-0.616-0.81-1.511-1.331-2.52-1.468c-0.793-0.108-1.584,0.033-2.29,0.406
		c-0.095,0.05-0.188,0.103-0.276,0.161L9.819,5.211l0.819,1.077l0.25-0.189c0.05-0.032,0.103-0.062,0.155-0.09
		c0.455-0.24,0.965-0.331,1.476-0.262c0.65,0.088,1.228,0.425,1.625,0.947c0.397,0.522,0.567,1.168,0.479,1.818
		c-0.183,1.343-1.424,2.286-2.765,2.104c-0.511-0.069-0.979-0.294-1.354-0.646c-0.044-0.042-0.087-0.086-0.126-0.128L7.292,5.785
		L7.292,5.798L6.967,5.371L6.931,5.328C6.857,5.246,6.779,5.165,6.699,5.09C6.093,4.518,5.335,4.157,4.51,4.045
		C2.338,3.75,0.331,5.277,0.036,7.449c-0.295,2.171,1.232,4.178,3.404,4.473c0.827,0.113,1.652-0.034,2.39-0.423
		c0.03-0.017,0.058-0.033,0.088-0.05l-0.833-1.093c-0.457,0.214-0.959,0.294-1.463,0.225c-1.432-0.194-2.439-1.518-2.245-2.95
		c0.195-1.433,1.517-2.439,2.95-2.245c0.545,0.074,1.044,0.312,1.444,0.69c0.047,0.043,0.092,0.09,0.136,0.137l2.426,3.189
		l0.001-0.014l0.985,1.295l0.034,0.042c0.069,0.077,0.145,0.154,0.224,0.229c0.581,0.549,1.307,0.895,2.099,1.002
		c0.173,0.023,0.345,0.035,0.515,0.035c1.876,0,3.514-1.39,3.773-3.298C16.103,7.685,15.838,6.684,15.222,5.874z"/>
	<path fill="#00CCCC" d="M8.614,11.234c-0.013-0.014-0.026-0.026-0.038-0.039L7.012,9.143C6.944,9.066,6.87,8.99,6.792,8.916
		C6.211,8.368,5.485,8.023,4.693,7.915c-0.076-0.01-0.151-0.017-0.227-0.023H4.351l0.577,0.755C4.94,8.659,4.954,8.673,4.966,8.686
		l1.563,2.053c0.068,0.076,0.142,0.152,0.22,0.225c0.581,0.549,1.306,0.896,2.099,1.003c0.075,0.01,0.15,0.018,0.227,0.023H9.19
		L8.614,11.234z"/>
</g>
</svg>
�PNG


IHDRKK8Nz�tEXtSoftwareAdobe ImageReadyq�e<	�IDATx��\ml[�~m�cI��:	
�P>ڭ	�#t�֘�ti8�"����&M����4M����E�4�J�@�=�j҄����W�BM��-N4�b��nb�=��|��s�%i�W�n���s���}ޏs�m�|����{�[Ɏ����f|u��ੋC�y9���|
��-��A-��T_�tFu#`��
�@k�2�nD��Y�{8Ɔv;�x/�ٕ�K�,��:�mX�C�$� Q�GE�-v��6u��aB!]�3��TAj� �R�&�"`�[�Y$x���!�"R��Xy�C��]ؾ�b�T�2w�tea��fM���B��3�6x6@���M�&����%�$oh�/xﭖY�A|&ײ���'��Ɇ�E�C�2�B�"*Z�fQ,hP���8�Ģ�\Y�R���:��7��BW�Y�TH(��8.l�]1ZJ62��7��K_����b���������ȳ7Gv}��\�D�6��TB�+�\UB�P�'wX4Ҹ�NQtId��������Y�f�M|e�$�t�V��˔ @><�x�hD;~���Nr�}���V��k^5uY�?��-dn���=i��X�FQܹ#7k� �
)
̈́E�=zn=�:"E9"��wǺ�?�ԾG���A�z�Ԭ��{?�&�$�#FY����:�'�J~��k]_ģQ(�<�!��j7�}W�/�h���$+]Y�Ə��>/��[�-��I�A�bfh�f�	��
��"��Y��-�@Ix�?Q{�/�)�f%��)�_�E�b��X)����@`�0^R�y��u�݇(=^
p��.��S}`��Fí�ZZ�\�Y4�\��1C�&�j,z�e���??`_J�ƴl�V�b�������j`6�}�\&2��.�P�	���C�K��~;8Kl�%Ʀ�!F�6r��OO�g&Q�
_$��z�U��n�8Jf�
P�@�My�$<G��^��8^�a���}��%��	�z!K��ɣb��P�F���G+{��P�8�>Ms;����/�;�V��`ٕ��<��T�����&��&�(i��%�n�ů��p��,�KzK�p����V*1�٨�וW�H;�	�b�
f1�i���i�쟓_��H��JsN{��3,���,*D�-)�(~��T�\�x��HF�c6��<'��*���4'�
'�f�G���Y�m4]���D�9��du���Qx��5�lhh�e�
�/ܦ�ٻ�2
xU�tS��|\�Y���R*@�K�Ewc�V�,�X֘�o�1vu����2*��7�c��`Q��/�<�
5T�\W�}ğ�6+5�_�3����o��s��6�a}�*ѐ�C�5y��`�*)銑�+�����8��Ư�h�����n�7 >݁�}C��߃,���,�+Fָb��O��uc/j��<�}.2��լ���F���� /�4�Dۘ+�;��UY�>�;�����2�iWEfss7�4��gS���H졼�K|�6�p�|�{��|18JV������'��̥�o�]�5"O����Y��ȺӼ���f���b#͇�J1���ocV��<g}]� �km�AY�S�,Q����f��u��&�pV�/v	�i.Ý����/"���ab��9�d"��|gQ�3�R:��ٽ9�7}O������u��oF!��|3��DŽ�S��!P	�jC���{_(���*a���V�N�B_�oC��k� H�j�؅>���<���ۮ�x�C|bq��R�t;!�l�F�bZ��w�����\��э�ů��Z�IW簜y�ml
:TֱG��P��>�a���HX�Xd����YL�E��@�n��|��D��)G��dG����5��SV%>���5!@G(���#���,��f#}��q%�ُ���\^cs�'=aQ��,_3�],Oɖ���_"�.qE��i誾ӈЏ�#w�ñ�i�zA뙥ޚ��S���2|
XA��-FWrF>���xv�@�A�5��۹ߒ=G]y������ܺI(��X,`�ʵ��N@_���0��\�Ic��9-��@Y����`7�ML[&O
���K�h��M���4�2Qf�X����.*�,,�bOٕ�
,���Q&�˕�B�a/�8�9s��FZ�<`��ؖ~��]Q�l�F�����f�K~���i�⟡�K:{�O���H���>����Z鴎����n�V�@E��,o%�:p��Vx����O�?��$�xH
(3�(�@t�֕�4��@a�����_�}�!U��"5k�-�m71f�	`�q�����"���@��.���ʝ���?�T�T�
�m��Y���Y��,��/� ���fi�˃�]�[,�>a�+7#X���I�[��>G9N�ߵ`�֖ ������M,����_w1��~�_��2FK��o;�+��ܵm�C̻jv#X7��_�aD��Nh4�IEND�B`�<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 300 300" enable-background="new 0 0 300 300" xml:space="preserve">
<g>
	<path fill="#5E8CDA" d="M254.859,146.258l-68.508-68.516l-29.203,37.055l31.461,31.461c2.922,2.922,2.922,7.68,0,10.57
		l-9.086,9.086c0,0,6.148,9.195,6.414,9.75c1.422,2.836,1.742,9.492-2.273,12.547l-71.57,54.969c0,18.422-0.016,56.336,0,56.344
		c0.031,0,142.766-142.695,142.766-142.695C257.75,153.898,257.75,149.18,254.859,146.258z"/>
	<path fill="#093071" d="M95.703,154.891c-2.898-2.875-2.898-7.641,0-10.531l9.109-9.125l-6.219-8.938
		c-2.977-4.219-2.039-10.203,2.055-13.344l71.602-54.938l0.023-56.328l-0.023-0.031l-0.039-0.047L29.477,144.359
		c-2.922,2.891-2.922,7.656,0,10.539l68.5,68.508l29.219-37.055L95.703,154.891z"/>
</g>
<path fill="#5E8CDA" d="M208.297,35.727c1.092,0,2.147,0.654,2.624,1.624c0.804,1.658-0.217,3.189-1.236,4.495l-0.04,0.051
	l-62.727,79.64c-0.829,1.05-0.891,3.144-0.132,4.218c0.339,0.491,33.879,49.111,35.027,50.794c1.342,1.918,1.425,7.623-1.657,9.978
	L79.348,263.915c-1.305,0.993-2.252,1.535-3.492,1.546c-0.99-0.082-2.015-0.756-2.44-1.601c-0.783-1.612,0.143-3.176,1.253-4.616
	l62.727-79.607c0.83-1.114,0.908-3.081,0.152-4.231l-35.019-50.348c-2.308-3.283-1.585-7.943,1.611-10.39l100.851-77.445
	C206.396,36.146,207.321,35.727,208.297,35.727 M208.297,34.727c-1.211,0-2.336,0.492-3.914,1.703l-100.852,77.445
	c-3.625,2.773-4.445,8.023-1.82,11.758l35.016,50.344c0.508,0.773,0.438,2.297-0.133,3.063l-62.711,79.586
	c-0.813,1.055-2.523,3.289-1.367,5.672c0.594,1.18,1.945,2.07,3.305,2.164c1.555,0,2.695-0.656,4.133-1.75l100.813-77.391
	c3.508-2.68,3.523-8.977,1.867-11.344c-1.156-1.695-35.023-50.789-35.023-50.789c-0.508-0.719-0.461-2.328,0.094-3.031
	l62.727-79.641c0.805-1.031,2.555-3.203,1.391-5.602C211.172,35.594,209.766,34.727,208.297,34.727L208.297,34.727z"/>
<path fill="#F5CD21" d="M178.992,176.898c0.82,1.25,1.563,5.867-0.477,7.422L77.641,261.75c-0.836,0.664-1.391,0.984-1.617,0.961
	c-0.359,0.023-0.102-0.586,0.82-1.797l62.688-79.555c1.586-2.039,1.688-5.414,0.227-7.516l-34.977-50.367
	C104.781,123.477,178.188,175.664,178.992,176.898z"/>
<path fill="#FDDD75" d="M178.992,176.898l-34.461-49.555c-1.438-2.125-1.336-5.492,0.242-7.508l62.695-79.578
	c0.945-1.203,1.164-1.781,0.828-1.781c-0.227,0-0.805,0.281-1.625,0.945l-100.875,77.422c-2.016,1.555-2.477,4.547-1.016,6.633
	L178.992,176.898z"/>
</svg>

<?php
/**
 * Auto registration for LiteSpeed classes
 *
 * @since      	1.1.0
 * @since  		3.0 Moved into /
 * @package    	LiteSpeed
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
defined( 'WPINC' ) || exit;

if ( ! function_exists( 'litespeed_autoload' ) ) {
	function litespeed_autoload( $cls )
	{
		if ( strpos( $cls, '.' ) !== false ) {
			return;
		}

		if ( strpos( $cls, 'LiteSpeed' ) !== 0 ) {
			return;
		}

		$file = explode( '\\', $cls );
		array_shift( $file );
		$file = implode( '/', $file );
		$file = str_replace( '_', '-', strtolower( $file ) );

		if ( strpos( $file, 'lib/' ) === 0 || strpos( $file, 'cli/' ) === 0 || strpos( $file, 'thirdparty/' ) === 0 ) {
			$file = LSCWP_DIR . $file . '.cls.php';
		}
		else {
			$file = LSCWP_DIR . 'src/' . $file . '.cls.php';
		}

		if ( file_exists( $file ) ) {
			require_once $file;
		}
	}
}

spl_autoload_register( 'litespeed_autoload' );

<?php
/**
 * The Third Party integration with the WPLister plugin.
 *
 * @since        1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WPLister
{
	/**
	 * Detects if WooCommerce and WPLister are installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect()
	{
		if ( defined( 'WOOCOMMERCE_VERSION' ) && defined( 'WPLISTER_VERSION' ) ) {
			// User reported this will sync correctly.
			add_action( 'wplister_revise_inventory_status', array( WooCommerce::get_instance(), 'backend_purge' ) );
			// Added as a safety measure for WPLister Pro only.
			add_action( 'wplister_inventory_status_changed', array( WooCommerce::get_instance(), 'backend_purge' ) );
		}
	}

}
<?php
/**
 * The Third Party integration with FacetWP.
 *
 * @since		2.9.9
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Facetwp
{
	public static function detect()
	{
		if ( ! defined( 'FACETWP_VERSION' ) ) return;
 		/**
		 * For Facetwp, if the template is "wp", return the buffered HTML
		 * So marked as rest call to put is_json to ESI
		 */
		if (
			! empty( $_POST['action'] )
			&& ! empty( $_POST['data'] )
			&& ! empty( $_POST['data']['template'] )
			&& $_POST['data']['template'] === 'wp'
		) {
			add_filter( 'litespeed_esi_params', __CLASS__ . '::set_is_json' );
		}
	}

 	public static function set_is_json( $params )
	{
		$params[ 'is_json' ] = 1;
		return $params;
	}
}<?php
/**
 * The Third Party integration with the WP-Polls plugin.
 *
 * @since		1.0.7
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

// todo: need test

class Wp_Polls
{
	public static function detect()
	{
		add_filter( 'wp_polls_display_pollvote', __CLASS__ . '::set_control' );
		add_filter( 'wp_polls_display_pollresult', __CLASS__ . '::set_control' );
	}

	public static function set_control()
	{
		do_action( 'litespeed_control_set_nocache', 'wp polls' );
	}
}

<?php
/**
 * The Third Party integration with Caldera Forms.
 *
 * @since		3.2.2
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Caldera_Forms {
	public static function detect() {
		if ( ! defined( 'CFCORE_VER' ) ) return;

		// plugins/caldera-forms/classes/render/nonce.php -> class Caldera_Forms_Render_Nonce
		do_action( 'litespeed_nonce', 'caldera_forms_front_*' );
	}
}<?php
/**
 * The Third Party integration with the WP-PostRatings plugin.
 *
 * @since		1.1.1
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WP_PostRatings
{

	/**
	 * Detects if plugin is installed.
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function detect()
	{
		if ( defined( 'WP_POSTRATINGS_VERSION' ) ) {
			add_action( 'rate_post', __CLASS__ . '::flush', 10, 3 );
		}
	}

	/**
	 * Purges the cache
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function flush( $uid, $post_id, $post_ratings_score )
	{
		do_action( 'litespeed_purge_post', $post_id );
	}

}
<?php
/**
 * The Third Party integration with WPML.
 *
 * @since		2.9.4
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WPML
{

	public static function detect()
	{
		if ( ! defined( 'WPML_PLUGIN_BASENAME' ) ) return;

		add_filter( 'litespeed_internal_domains', __CLASS__ . '::append_domains' );
	}

	/**
	 * Take language domains as internal domains
	 */
	public static function append_domains( $domains )
	{
		$wpml_domains = apply_filters( 'wpml_setting', false, 'language_domains' );
		if ( $wpml_domains ) {
			$domains = array_merge( $domains, array_values( $wpml_domains ) );
		}

		return $domains;
	}

}<?php
/**
 * The Third Party integration with Wpdiscuz.
 *
 * @since		2.9.5
 * @package		LiteSpeed_Cache
 * @subpackage	LiteSpeed_Cache/thirdparty
 * @author		LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty ;

defined( 'WPINC' ) || exit ;

use \LiteSpeed\API ;

class Wpdiscuz
{
	public static function detect()
	{
		if ( ! defined( 'WPDISCUZ_DS' ) ) return ;

		self::check_commenter() ;
		add_action( 'wpdiscuz_add_comment', __CLASS__ . '::add_comment' ) ;

	}

	public static function add_comment()
	{
		API::vary_append_commenter() ;
	}

	public static function check_commenter()
	{
		$commentor = wp_get_current_commenter() ;

		if ( strlen( $commentor[ 'comment_author' ] ) > 0 ) {
			add_filter( 'litespeed_vary_check_commenter_pending', '__return_false' ) ;
		}
	}
}
<?php
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\API;
use \LiteSpeed\Doc;
use \LiteSpeed\Admin_Display;
?>

<div data-litespeed-layout='woocommerce'>

<h3 class="litespeed-title-short">
	<?php echo __( 'WooCommerce Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#woocommerce-tab' ); ?>
</h3>

<div class="litespeed-callout notice notice-warning inline">
	<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php echo __( 'After verifying that the cache works in general, please test the cart.', 'litespeed-cache' ); ?></p>
	<p><?php echo sprintf( __( 'To test the cart, visit the <a %s>FAQ</a>.', 'litespeed-cache' ), 'href="https://docs.litespeedtech.com/lscache/lscwp/installation/#testing" target="_blank"' ); ?></p>
</div>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = self::O_UPDATE_INTERVAL; ?>
			<?php echo __( 'Product Update Interval', 'litespeed-cache' ); ?>
		</th>
		<td>
			<?php
			$options = array(
				self::O_PQS_CS	=> __( 'Purge product on changes to the quantity or stock status.', 'litespeed-cache' ) . ' ' . __( 'Purge categories only when stock status changes.', 'litespeed-cache' ),
				self::O_PS_CS	=> __( 'Purge product and categories only when the stock status changes.', 'litespeed-cache' ),
				self::O_PS_CN	=> __( 'Purge product only when the stock status changes.', 'litespeed-cache' ) . ' ' . __( 'Do not purge categories on changes to the quantity or stock status.', 'litespeed-cache' ),
				self::O_PQS_CQS	=> __( 'Always purge both product and categories on changes to the quantity or stock status.', 'litespeed-cache' ),
			);
			$conf = (int) apply_filters( 'litespeed_conf', $id );
			foreach ( $options as $k => $v ) :
				$checked = (int) $k === $conf ? ' checked ' : '';
			?>
				<?php do_action( 'litespeed_setting_enroll', $id ); ?>
				<div class='litespeed-radio-row'>
					<input type='radio' autocomplete='off' name='<?php echo $id; ?>' id='conf_<?php echo $id; ?>_<?php echo $k; ?>' value='<?php echo $k; ?>' <?php echo $checked; ?> />
					<label for='conf_<?php echo $id; ?>_<?php echo $k; ?>'><?php echo $v; ?></label>
				</div>
			<?php endforeach; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Determines how changes in product quantity and product stock status affect product pages and their associated category pages.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = self::O_SHOP_FRONT_TTL; ?>
			<?php echo __( 'Use Front Page TTL for the Shop Page', 'litespeed-cache' ); ?>
		</th>
		<td>
			<?php do_action( 'litespeed_build_switch', $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Checking this option will force the shop page to use the front page TTL setting.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'For example, if the homepage for the site is located at %1$s, the shop page may be located at %2$s.', 'litespeed-cache' ), 'https://www.EXAMPLE.com', 'https://www.EXAMPLE.com/shop' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = self::O_WOO_CACHE_CART; ?>
			<?php echo __( 'Privately Cache Cart', 'litespeed-cache' ); ?>
		</th>
		<td>
			<?php do_action( 'litespeed_build_switch', $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Privately cache cart when not empty.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

</div><?php
/**
 * The Third Party integration with WooCommerce PayPal Checkout Gateway
 * @ref https://wordpress.org/plugins/woocommerce-gateway-paypal-express-checkout/
 *
 * @since		3.0
 */
namespace LiteSpeed\Thirdparty;
defined( 'WPINC' ) || exit;

class Woo_Paypal
{
	public static function detect()
	{
		if ( ! defined( 'WC_GATEWAY_PPEC_VERSION' ) ) return;

		do_action( 'litespeed_nonce', '_wc_ppec_update_shipping_costs_nonce private' );
		do_action( 'litespeed_nonce', '_wc_ppec_start_checkout_nonce private' );
		do_action( 'litespeed_nonce', '_wc_ppec_generate_cart_nonce private' );
	}
}
<?php
/**
 * The Third Party integration with the bbPress plugin.
 *
 * @since		2.9.8.8
 */
namespace LiteSpeed\Thirdparty;
defined( 'WPINC' ) || exit;

use \LiteSpeed\Debug2;

class Elementor
{
	public static function preload()
	{
		if ( ! defined( 'ELEMENTOR_VERSION' ) ) {
			return;
		}

		if ( isset( $_GET[ 'action' ] ) && $_GET[ 'action' ] === 'elementor' ) {
			do_action( 'litespeed_disable_all', 'elementor edit mode' );
		}

		if ( ! empty( $_SERVER[ 'HTTP_REFERER' ] ) && strpos( $_SERVER[ 'HTTP_REFERER' ], 'action=elementor' ) ) {
			if ( ! empty( $_REQUEST['actions'] ) ) {
				$json = json_decode( stripslashes( $_REQUEST['actions'] ), true );
				// Debug2::debug( '3rd Elementor', $json );
				if ( ! empty( $json[ 'save_builder' ][ 'action' ] ) && $json[ 'save_builder' ][ 'action' ] == 'save_builder' && ! empty( $json[ 'save_builder' ][ 'data' ][ 'status' ] ) && $json[ 'save_builder' ][ 'data' ][ 'status' ] == 'publish' ) {
					return; // Save post, don't disable all in case we will allow fire crawler right away after purged
				}
			}
			do_action( 'litespeed_disable_all', 'elementor edit mode in HTTP_REFERER' );
		}
	}

	/**
	 * Detect if Elementor is installed and it's on ESI
	 *
	 * @since 2.9.8.8
	 * @access public
	 */
	public static function detect()
	{
		if ( ! defined( 'ELEMENTOR_VERSION' ) ) return;
		if ( ! isset( $_GET[ 'lsesi' ] ) || $_GET[ 'lsesi' ] !== 'admin-bar' ) return;

		add_action( 'admin_bar_menu', __CLASS__ . '::add_menu_in_admin_bar', 100 );
	}

	public static function add_menu_in_admin_bar()
	{
		/*
		* As Elementor hook to the_contet filter to add the Edit with Elementor button,
		* force apply the_content filter to run the hook,
		* ESI itself can retrive the post data
		*/
		apply_filters( 'the_content', '' );
	}
}
<?php
/**
 * The Third Party integration with the Avada plugin.
 *
 * @since		1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Avada
{
	/**
	 * Detects if Avada is installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect()
	{
		if ( ! defined( 'AVADA_VERSION' ) ) {
			return;
		}

		add_action( 'update_option_avada_dynamic_css_posts', __CLASS__ . '::flush' );
		add_action( 'update_option_fusion_options', __CLASS__ . '::flush' );
	}

	/**
	 * Purges the cache
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function flush()
	{
		do_action( 'litespeed_purge_all', '3rd avada' );
	}

}

<?php
/**
 * The Third Party integration with AMP plugin.
 *
 * @since		2.9.8.6
 * @package		LiteSpeed_Cache
 * @subpackage	LiteSpeed_Cache/thirdparty
 * @author		LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty ;

defined( 'WPINC' ) || exit ;

use \LiteSpeed\API ;

class AMP
{
	/**
	 * CSS async will affect AMP result and
	 * Lazyload will inject JS library which AMP not allowed
	 * need to force set false before load
	 *
	 * @since 2.9.8.6
	 * @access public
	 */
	public static function preload()
	{
		if ( ! function_exists( 'is_amp_endpoint' ) || is_admin() || ! isset( $_GET[ 'amp' ] ) ) return;
		add_filter( 'litespeed_can_optm', '__return_false' );
		// do_action( 'litespeed_conf_force', API::O_OPTM_CSS_ASYNC, false );
		do_action( 'litespeed_conf_force', API::O_MEDIA_LAZY, false );
		do_action( 'litespeed_conf_force', API::O_MEDIA_IFRAME_LAZY, false );
	}
}
<?php
/**
 * The Third Party integration with the YITH WooCommerce Wishlist plugin.
 *
 * @since		1.1.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\Tag;
use \LiteSpeed\Conf;
use \LiteSpeed\Base;

class Yith_Wishlist {
	const ESI_PARAM_POSTID = 'yith_pid';
	private static $_post_id;


	/**
	 * Detects if YITH WooCommerce Wishlist and WooCommerce are installed.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function detect() {
		if ( ! defined( 'WOOCOMMERCE_VERSION' ) || ! defined( 'YITH_WCWL' ) ) {
			return;
		}
		if ( apply_filters( 'litespeed_esi_status', false ) ) {
			add_action( 'litespeed_tpl_normal', __CLASS__ . '::is_not_esi' );
			add_action( 'litespeed_esi_load-yith_wcwl_add', __CLASS__ . '::load_add_to_wishlist' );
			add_filter( 'litespeed_esi_inline-yith_wcwl_add', __CLASS__ . '::inline_add_to_wishlist', 20, 2 );

			// hook to add/delete wishlist
			add_action( 'yith_wcwl_added_to_wishlist', __CLASS__ . '::purge' );
			add_action( 'yith_wcwl_removed_from_wishlist', __CLASS__ . '::purge' );
		}
	}

	/**
	 * Purge ESI yith cache when add/remove items
	 *
	 * @since 1.2.0
	 * @access public
	 */
	public static function purge() {
		do_action( 'litespeed_purge_esi', 'yith_wcwl_add' );
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 *
	 * If the request is not an ESI request, hook to the add to wishlist button
	 * filter to replace it as an esi block.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function is_not_esi() {
		add_filter( 'yith_wcwl_add_to_wishlist_params', __CLASS__ . '::add_to_wishlist_params', 999, 2 );

		add_filter( 'yith_wcwl_add_to_wishlisth_button_html', __CLASS__ . '::sub_add_to_wishlist', 999 );
	}

	/**
	 * Store the post id for later shortcode usage
	 *
	 * @since  3.4.1
	 */
	public static function add_to_wishlist_params( $defaults, $atts ) {
		self::$_post_id = ! empty( $atts[ 'product_id' ] ) ? $atts[ 'product_id' ] : $defaults[ 'product_id' ];

		return $defaults;
	}

	/**
	 * Hooked to the yith_wcwl_add_to_wishlisth_button_html filter.
	 *
	 * The add to wishlist button displays a different output when the item is already in the wishlist/cart.
	 * For this reason, the button must be an ESI block. This function replaces the normal html with the ESI block.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function sub_add_to_wishlist( $template ) {
		$params = array(
			self::ESI_PARAM_POSTID => self::$_post_id,
		);

		$inline_tags = array(
			'',
			rtrim( Tag::TYPE_ESI, '.' ),
			Tag::TYPE_ESI . 'yith_wcwl_add',
		);
		$inline_tags = implode( ',', array_map( function($val){ return 'public:' . LSWCP_TAG_PREFIX . '_' . $val; }, $inline_tags ) );
		$inline_tags .= ',' . LSWCP_TAG_PREFIX . '_tag_priv';

		do_action( 'litespeed_esi_combine', 'yith_wcwl_add' );

		$inline_params = array(
			'val'	=> $template,
			'tag'	=> $inline_tags,
			'control' => 'private,no-vary,max-age=' . Conf::val( Base::O_CACHE_TTL_PRIV ),
		);

		return apply_filters( 'litespeed_esi_url', 'yith_wcwl_add', 'YITH ADD TO WISHLIST', $params, 'private,no-vary', false, false, false, $inline_params );
	}

	/**
	 * Hooked to the litespeed_esi_load-yith_wcwl_add action.
	 *
	 * This will load the add to wishlist button html for output.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function load_add_to_wishlist( $params ) {
		// global $post, $wp_query;
		// $post = get_post( $params[ self::ESI_PARAM_POSTID ] );
		// $wp_query->setup_postdata( $post );
		echo \YITH_WCWL_Shortcode::add_to_wishlist( array( 'product_id' => $params[ self::ESI_PARAM_POSTID ] ) );
		do_action( 'litespeed_control_set_private', 'yith wishlist' );
		do_action( 'litespeed_vary_no' );
	}

	/**
	 * Generate ESI inline value
	 *
	 * @since  3.4.2
	 */
	public static function inline_add_to_wishlist( $res, $params ) {
		if ( ! is_array( $res ) ) {
			$res = array();
		}

		$pid = $params[ self::ESI_PARAM_POSTID ];

		$res[ 'val' ] = \YITH_WCWL_Shortcode::add_to_wishlist( array( 'product_id' => $pid ) );

		$res[ 'control' ] = 'private,no-vary,max-age=' . Conf::val( Base::O_CACHE_TTL_PRIV );

		$inline_tags = array(
			'',
			rtrim( Tag::TYPE_ESI, '.' ),
			Tag::TYPE_ESI . 'yith_wcwl_add',
		);
		$inline_tags = implode( ',', array_map( function( $val ) { return 'public:' . LSWCP_TAG_PREFIX . '_' . $val; }, $inline_tags ) );
		$inline_tags .= ',' . LSWCP_TAG_PREFIX . '_tag_priv';

		$res[ 'tag' ] = $inline_tags;

		return $res;
	}

}
<?php
/**
 * The Third Party integration with the Beaver Builder plugin.
 *
 * @since		3.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Beaver_Builder
{
	/**
	 * Detects if Beaver_Builder is active.
	 *
	 *@since 3.0
	 *@access public
	 */
	public static function detect()
	{
		if ( ! defined( 'FL_BUILDER_VERSION' ) ) {
			return;
		}

		/**
		 * Purge All hooks
		 * @see  beaver-builder/extensions/fi-builder-cache-helper/classes/class-fi-builder-cache-helper.php
		 */
		$actions = array(
			'fl_builder_cache_cleared',
			'fl_builder_after_save_layout',
			'fl_builder_after_save_user_template',
			'upgrader_process_complete',
		);

		foreach ( $actions as $val ) {
			add_action( $val, __CLASS__ . '::purge' );
		}
	}

	/**
	 * Purges the cache when Beaver_Builder's cache is purged.
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge()
	{
		do_action( 'litespeed_purge_all', '3rd Beaver_Builder' );
	}
}
<?php
/**
 * The Third Party integration with the Autoptimize plugin.
 *
 * @since		1.0.12
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Autoptimize
{
	/**
	 * Detects if Autoptimize is active.
	 *
	 *@since 1.0.12
	 *@access public
	 */
	public static function detect()
	{
		if ( defined( 'AUTOPTIMIZE_PLUGIN_DIR' ) ) {
			add_action( 'litespeed_purge_finalize', __CLASS__ . '::purge' );
		}
	}

	/**
	 * Purges the cache when Autoptimize's cache is purged.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public static function purge()
	{
		if ( defined( 'AUTOPTIMIZE_PURGE' ) || has_action( 'shutdown', 'autoptimize_do_cachepurged_action', 11 ) ) {
			do_action( 'litespeed_purge_all', '3rd Autoptimize' );
		}
	}
}
<?php
/**
 * The Third Party integration with the WPTouch Mobile plugin.
 *
 * @since		1.0.7
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WpTouch
{
	/**
	 * Detects if WPTouch is installed.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function detect()
	{
		global $wptouch_pro;
		if ( isset( $wptouch_pro ) ) {
			add_action( 'litespeed_control_finalize', __CLASS__ . '::set_control' );
		}
	}

	/**
	 * Check if the device is mobile. If so, set mobile.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function set_control()
	{
		global $wptouch_pro;
		if ( $wptouch_pro->is_mobile_device ) {
			add_filter( 'litespeed_is_mobile', '__return_true' );
		}
	}

}

<?php
/**
 * The Third Party integration with the WooCommerce plugin.
 *
 * @since         1.0.5
 * @since  1.6.6 Added function_exists check for compatibility
 * @package       LiteSpeed_Cache
 * @subpackage    LiteSpeed_Cache/thirdparty
 * @author        LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\API;
use \LiteSpeed\Base;
use \LiteSpeed\Instance;

class WooCommerce extends Instance
{
	protected static $_instance ;

	const O_CACHE_TTL_FRONTPAGE = Base::O_CACHE_TTL_FRONTPAGE;

	const CACHETAG_SHOP = 'WC_S' ;
	const CACHETAG_TERM = 'WC_T.' ;
	const O_UPDATE_INTERVAL = 'wc_update_interval' ;
	const O_SHOP_FRONT_TTL = 'wc_shop_use_front_ttl' ;
	const O_WOO_CACHE_CART = 'woo_cache_cart' ;
	const O_PQS_CS = 0 ; // flush product on quantity + stock change, categories on stock change
	const O_PS_CS = 1 ; // flush product and categories on stock change
	const O_PS_CN = 2 ; // flush product on stock change, categories no flush
	const O_PQS_CQS = 3 ; // flush product and categories on quantity + stock change

	const ESI_PARAM_ARGS = 'wc_args' ;
	const ESI_PARAM_POSTID = 'wc_post_id' ;
	const ESI_PARAM_NAME = 'wc_name' ;
	const ESI_PARAM_PATH = 'wc_path' ;
	const ESI_PARAM_LOCATED = 'wc_located' ;

	private $cache_cart ;
	private $esi_eanbled ;

	/**
	 * Detects if WooCommerce is installed.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public static function detect()
	{
		if ( ! defined( 'WOOCOMMERCE_VERSION' ) ) {
			return ;
		}

		self::get_instance()->add_hooks() ;

	}

	/**
	 * Add hooks to woo actions
	 *
	 * @since  1.6.3
	 * @access public
	 */
	public function add_hooks()
	{
		$this->_option_append() ;

		$this->cache_cart = apply_filters( 'litespeed_conf', self::O_WOO_CACHE_CART ) ;
		$this->esi_eanbled = apply_filters( 'litespeed_esi_status', false );

		add_action( 'litespeed_control_finalize', array( $this, 'set_control' ) );
		add_action( 'litespeed_tag_finalize', array( $this, 'set_tag' ) );

		// Purging a product on stock change should only occur during product purchase. This function will add the purging callback when an order is complete.
		add_action( 'woocommerce_product_set_stock', array( $this, 'purge_product' ) ) ;
		add_action( 'woocommerce_variation_set_stock', array( $this, 'purge_product' ) ) ; // #984479 Update variations stock

		add_action( 'comment_post', array( $this, 'add_review' ), 10, 3 ) ;

		if ( $this->esi_eanbled ) {
			if ( function_exists( 'is_shop' ) && ! is_shop() ) {
				add_action( 'litespeed_tpl_normal', array( $this, 'set_block_template' ) );
				// No need for add-to-cart button
				// add_action( 'litespeed_esi_load-wc-add-to-cart-form', array( $this, 'load_add_to_cart_form_block' ) ) ;

				add_action( 'litespeed_esi_load-storefront-cart-header', array( $this, 'load_cart_header' ) );
				add_action( 'litespeed_esi_load-widget', array( $this, 'register_post_view' ) );
			}

			if ( function_exists( 'is_product' ) && is_product() ) {
				add_filter( 'litespeed_esi_params', array( $this, 'add_post_id' ), 10, 2 );
			}

			/**
			 * Only when cart is not empty, give it an ESI with private cache
			 * Call when template_include to make sure woo cart is initialized
			 * @since  1.7.2
			 */
			add_action( 'template_include', array( $this, 'check_if_need_esi' ) );
			add_filter( 'litespeed_vary', array( $this, 'vary_maintain' ) );

		}

		if ( is_admin() ) {
			add_action('litespeed_api_purge_post', array( $this, 'backend_purge' ) ) ;//todo
			add_action( 'delete_term_relationships', array( $this, 'delete_rel' ), 10, 2 ) ;
			add_action( 'litespeed_settings_tab', array( $this, 'settings_add_tab' ) );
			add_action( 'litespeed_settings_content', array( $this, 'settings_add_content' ) );
			add_filter( 'litespeed_widget_default_options', array( $this, 'wc_widget_default' ), 10, 2 );
		}

		// Purge cart if is ESI / Purge private if not enabled ESI
		if ( $this->cache_cart ) {
			$hooks_to_purge = array(
				'woocommerce_add_to_cart', 'woocommerce_ajax_added_to_cart',
				'woocommerce_remove_cart_item',
				'woocommerce_restore_cart_item',
				'woocommerce_after_cart_item_quantity_update',
				'woocommerce_applied_coupon', 'woocommerce_removed_coupon',
				'woocommerce_checkout_order_processed',
			) ;
			foreach ( $hooks_to_purge as $v ) {
				if ( $this->esi_eanbled ) {
					add_action( $v, array( $this, 'purge_esi' ) ) ;
				}
				else {
					add_action( $v, array( $this, 'purge_private_all' ) ) ;
				}
			}
		}

	}

	/**
	 * Purge esi private tag
	 *
	 * @since  1.6.3
	 * @access public
	 */
	public function purge_esi()
	{
		do_action( 'litespeed_debug', '3rd woo purge ESI in action: ' . current_filter() ) ;
		do_action( 'litespeed_purge_private_esi', 'storefront-cart-header' );

	}

	/**
	 * Purge private all
	 *
	 * @since  3.0
	 * @access public
	 */
	public function purge_private_all()
	{
		do_action( 'litespeed_purge_private_all' );
	}

	/**
	 * Check if need to give an ESI block for cart
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public function check_if_need_esi( $template )
	{
		if (  $this->vary_needed() ) {
			do_action( 'litespeed_debug', 'API: 3rd woo added ESI' );
			add_action( 'litespeed_tpl_normal', array( $this, 'set_swap_header_cart' ) );
		}

		return $template;

	}

	/**
	 * Keep vary on if cart is not empty
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public function vary_maintain( $vary )
	{
		if ( $this->vary_needed() ) {
			do_action( 'litespeed_debug', 'API: 3rd woo added vary due to cart not empty' );
			$vary[ 'woo_cart' ] = 1;
		}

		return $vary;
	}

	/**
	 * Check if vary need to be on based on cart
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function vary_needed()
	{
		if ( ! function_exists( 'WC' ) ) {
			return false ;
		}

		$woocom = WC() ;
		if ( ! $woocom ) {
			return false ;
		}

		if ( is_null( $woocom->cart ) ) {
			return false ;
		}
		return $woocom->cart->get_cart_contents_count() > 0 ;
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 * If the request is not an esi request, I want to set my own hook in woocommerce_before_template_part to see if it's something I can ESI.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function set_block_template()
	{
		add_action('woocommerce_before_template_part', array( $this, 'block_template' ), 999, 4) ;
	}

	/**
	 * Hooked to the litespeed_is_not_esi_template action.
	 * If the request is not an esi request, I want to set my own hook
	 * in storefront_header to see if it's something I can ESI.
	 *
	 * Will remove storefront_header_cart in storefront_header.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function set_swap_header_cart()
	{
		$priority = has_action('storefront_header', 'storefront_header_cart') ;
		if ( $priority !== false ) {
			remove_action('storefront_header', 'storefront_header_cart', $priority) ;
			add_action('storefront_header', array( $this, 'esi_cart_header' ), $priority) ;
		}
	}

	/**
	 * Hooked to the woocommerce_before_template_part action.
	 * Checks if the template contains 'add-to-cart'. If so, and if I want to ESI the request, block it and build my esi code block.
	 *
	 * The function parameters will be passed to the esi request.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function block_template($template_name, $template_path, $located, $args)
	{
		if ( strpos($template_name, 'add-to-cart') === false ) {
			if ( strpos($template_name, 'related.php') !== false ) {
				remove_action('woocommerce_before_template_part', array( $this, 'block_template' ), 999) ;
				add_filter('woocommerce_related_products_args', array( $this, 'add_related_tags' ) ) ;
				add_action('woocommerce_after_template_part', array( $this, 'end_template' ), 999) ;
			}
			return ;
		}
		return ;




							// todo: wny not use?

		global $post ;
		$params = array(
			self::ESI_PARAM_ARGS => $args,
			self::ESI_PARAM_NAME => $template_name,
			self::ESI_PARAM_POSTID => $post->ID,
			self::ESI_PARAM_PATH => $template_path,
			self::ESI_PARAM_LOCATED => $located
		) ;
		add_action('woocommerce_after_add_to_cart_form', array( $this, 'end_form' ) ) ;
		add_action('woocommerce_after_template_part', array( $this, 'end_form' ), 999) ;
		echo apply_filters( 'litespeed_esi_url', 'wc-add-to-cart-form', 'WC_CART_FORM', $params );
		echo apply_filters( 'litespeed_clean_wrapper_begin', '' );
	}

	/**
	 * Hooked to the woocommerce_after_add_to_cart_form action.
	 * If this is hit first, clean the buffer and remove this function and
	 * end_template.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function end_form($template_name = '')
	{
		if ( ! empty($template_name) && strpos($template_name, 'add-to-cart') === false ) {
			return ;
		}
		echo apply_filters( 'litespeed_clean_wrapper_end', '' );
		remove_action('woocommerce_after_add_to_cart_form', array( $this, 'end_form' ) ) ;
		remove_action('woocommerce_after_template_part', array( $this, 'end_form' ), 999) ;
	}

	/**
	 * If related products are loaded, need to add the extra product ids.
	 *
	 * The page will be purged if any of the products are changed.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param array $args The arguments used to build the related products section.
	 * @return array The unchanged arguments.
	 */
	public function add_related_tags($args)
	{
		if ( empty($args) || ! isset($args['post__in']) ) {
			return $args ;
		}
		$related_posts = $args['post__in'] ;
		foreach ( $related_posts as $related ) {
			do_action( 'litespeed_tag_add_post', $related );
		}
		return $args ;
	}

	/**
	 * Hooked to the woocommerce_after_template_part action.
	 * If the template contains 'add-to-cart', clean the buffer.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param type $template_name
	 */
	public function end_template($template_name)
	{
		if ( strpos($template_name, 'related.php') !== false ) {
			remove_action('woocommerce_after_template_part', array( $this, 'end_template' ), 999) ;
			$this->set_block_template() ;
		}
	}

	/**
	 * Hooked to the storefront_header header.
	 * If I want to ESI the request, block it and build my esi code block.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function esi_cart_header()
	{
		echo apply_filters( 'litespeed_esi_url', 'storefront-cart-header', 'STOREFRONT_CART_HEADER' );
	}

	/**
	 * Hooked to the litespeed_esi_load-storefront-cart-header action.
	 * Generates the cart header for esi display.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function load_cart_header()
	{
		storefront_header_cart();
	}

	/**
	 * Hooked to the litespeed_esi_load-wc-add-to-cart-form action.
	 * Parses the esi input parameters and generates the add to cart form
	 * for esi display.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @global type $post
	 * @global type $wp_query
	 * @param type $params
	 */
	public function load_add_to_cart_form_block($params)
	{
		global $post, $wp_query ;
		$post = get_post($params[self::ESI_PARAM_POSTID]) ;
		$wp_query->setup_postdata($post) ;
		function_exists( 'wc_get_template' ) && wc_get_template($params[self::ESI_PARAM_NAME], $params[self::ESI_PARAM_ARGS], $params[self::ESI_PARAM_PATH]) ;
	}

	/**
	 * Update woocommerce when someone visits a product and has the
	 * recently viewed products widget.
	 *
	 * Currently, this widget should not be cached.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param array $params Widget parameter array
	 */
	public function register_post_view($params)
	{
		if ( $params[API::PARAM_NAME] !== 'WC_Widget_Recently_Viewed' ) {
			return ;
		}
		if ( ! isset($params[self::ESI_PARAM_POSTID]) ) {
			return ;
		}
		$id = $params[self::ESI_PARAM_POSTID] ;
		$esi_post = get_post($id) ;
		$product = function_exists( 'wc_get_product' ) ? wc_get_product($esi_post) : false ;

		if ( empty($product) ) {
			return ;
		}

		global $post ;
		$post = $esi_post ;
		function_exists( 'wc_track_product_view' ) && wc_track_product_view() ;
	}

	/**
	 * Adds the post id to the widget ESI parameters for the Recently Viewed widget.
	 *
	 * This is needed in the ESI request to update the cookie properly.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function add_post_id( $params, $block_id )
	{
		if ( $block_id == 'widget' ) {
			if ( $params[ API::PARAM_NAME ] == 'WC_Widget_Recently_Viewed' ) {
				$params[ self::ESI_PARAM_POSTID ] = get_the_ID();
			}
		}

		return $params;
	}

	/**
	 * Hooked to the litespeed_widget_default_options filter.
	 *
	 * The recently viewed widget must be esi to function properly.
	 * This function will set it to enable and no cache by default.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function wc_widget_default( $options, $widget )
	{
		if ( ! is_array( $options ) ) {
			return $options;
		}
		$widget_name = get_class( $widget ) ;
		if ( $widget_name === 'WC_Widget_Recently_Viewed' ) {
			$options[ API::WIDGET_O_ESIENABLE ] = API::VAL_ON2;
			$options[ API::WIDGET_O_TTL ] = 0;
		}
		elseif ( $widget_name === 'WC_Widget_Recent_Reviews' ) {
			$options[ API::WIDGET_O_ESIENABLE ] = API::VAL_ON;
			$options[ API::WIDGET_O_TTL ] = 86400;
		}
		return $options;
	}

	/**
	 * Set WooCommerce cache tags based on page type.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 */
	public function set_tag()
	{
		$id = get_the_ID() ;
		if ( $id === false ) {
			return ;
		}

		// Check if product has a cache ttl limit or not
		$sale_from = get_post_meta( $id, '_sale_price_dates_from', true ) ;
		$sale_to = get_post_meta( $id, '_sale_price_dates_to', true ) ;
		$now = current_time( 'timestamp' ) ;
		$ttl = false ;
		if ( $sale_from && $now < $sale_from ) {
			$ttl = $sale_from - $now ;
		}
		elseif ( $sale_to && $now < $sale_to ) {
			$ttl = $sale_to - $now ;
		}
		if ( $ttl && $ttl < apply_filters( 'litespeed_control_ttl', 0 ) ) {
			do_action( 'litespeed_control_set_ttl', $ttl, "WooCommerce set scheduled TTL to $ttl" ) ;
		}

		if ( function_exists( 'is_shop' ) && is_shop() ) {
			do_action( 'litespeed_tag_add', self::CACHETAG_SHOP );
		}
		if ( function_exists( 'is_product_taxonomy' ) && ! is_product_taxonomy() ) {
			return ;
		}
		if ( isset($GLOBALS['product_cat']) ) {
			$term = get_term_by('slug', $GLOBALS['product_cat'], 'product_cat') ;
		}
		elseif ( isset($GLOBALS['product_tag']) ) {
			$term = get_term_by('slug', $GLOBALS['product_tag'], 'product_tag') ;
		}
		else {
			$term = false ;
		}

		if ( $term === false ) {
			return ;
		}
		while ( isset($term) ) {
			do_action( 'litespeed_tag_add', self::CACHETAG_TERM . $term->term_id );
			if ( $term->parent == 0 ) {
				break ;
			}
			$term = get_term($term->parent) ;
		}
	}

	/**
	 * Check if the page is cacheable according to WooCommerce.
	 *
	 * @since 1.0.5
	 * @since 1.6.3 Removed static
	 * @access public
     * @param string $esi_id 		The ESI block id if a request is an ESI request.
	 * @return boolean           	True if cacheable, false if not.
	 */
	public function set_control($esi_id)
	{
		if ( ! apply_filters( 'litespeed_control_cacheable', false ) ) {
			return;
		}

		/**
		 * Avoid possible 500 issue
		 * @since 1.6.2.1
		 */
		if ( ! function_exists( 'WC' ) ) {
			return ;
		}

		$woocom = WC() ;
		if ( ! isset($woocom) ) {
			return ;
		}

		// Set TTL
		if ( function_exists( 'is_shop' ) && is_shop() ) {
			if ( apply_filters( 'litespeed_conf', self::O_SHOP_FRONT_TTL ) ) {
				do_action( 'litespeed_control_set_ttl', apply_filters( 'litespeed_conf', self::O_CACHE_TTL_FRONTPAGE ) );
			}
		}

		// For later versions, DONOTCACHEPAGE should be set.
		// No need to check uri/qs.
		if ( version_compare($woocom->version, '1.4.2', '>=') ) {
			if ( version_compare( $woocom->version, '3.2.0', '<' ) && defined('DONOTCACHEPAGE') && DONOTCACHEPAGE ) {
				do_action( 'litespeed_control_set_nocache', '3rd party woocommerce not cache by constant' );
				return ;
			}
			elseif ( version_compare($woocom->version, '2.1.0', '>=') ) {
				$err = false ;

				if ( ! function_exists( 'wc_get_page_id' ) ) {
					return ;
				}
				/**
				 * From woo/inc/class-wc-cache-helper.php:prevent_caching()
				 * @since  1.4
				 */
				$page_ids = array_filter( array( wc_get_page_id( 'cart' ), wc_get_page_id( 'checkout' ), wc_get_page_id( 'myaccount' ) ) );
				if ( isset( $_GET['download_file'] ) || isset( $_GET['add-to-cart'] ) || is_page( $page_ids ) ) {
					$err = 'woo non cacheable pages' ;
				}
				elseif ( is_null($woocom->cart) ) {
					$err = 'null cart' ;
				}
				elseif ( ! $this->esi_eanbled && $woocom->cart->get_cart_contents_count() !== 0 ) {
					if ( $this->cache_cart ) {
						do_action( 'litespeed_control_set_private', 'cache cart' );
						/**
						 * no rewrite rule to set no vary, so can't set no_vary otherwise it will always miss as can't match vary
						 * @since 1.6.6.1
						 */
						// do_action( 'litespeed_vary_no' );
						do_action( 'litespeed_tag_add_private_esi', 'storefront-cart-header' );
					}
					else {
						$err = 'cart is not empty' ;
					}
				}
				elseif ( $esi_id === 'storefront-cart-header' ) {
					if ( $this->cache_cart ) {
						do_action( 'litespeed_control_set_private', 'cache cart' );
						do_action( 'litespeed_vary_no' );
						do_action( 'litespeed_tag_add_private_esi', 'storefront-cart-header' );
					}
					else {
						$err = 'ESI cart should be nocache' ;
					}
				}
				elseif ( function_exists( 'wc_notice_count' ) && wc_notice_count() > 0 ) {
					$err = 'has wc notice' ;
				}

				if ( $err ) {
					do_action( 'litespeed_control_set_nocache', '3rd party woocommerce not cache due to ' . $err );
					return ;
				}
			}
			return ;
		}

		$uri = esc_url($_SERVER["REQUEST_URI"]) ;
		$uri_len = strlen($uri) ;
		if ( $uri_len < 5 ) {
			return ;
		}

		if ( in_array($uri, array('cart/', 'checkout/', 'my-account/', 'addons/', 'logout/', 'lost-password/', 'product/')) ) {
			do_action( 'litespeed_control_set_nocache', 'uri in cart/account/user pages' );
			return ;
		}

		$qs = sanitize_text_field($_SERVER["QUERY_STRING"]) ;
		$qs_len = strlen($qs) ;
		if ( ! empty($qs) && $qs_len >= 12 && strpos( $qs, 'add-to-cart=' ) === 0 ) {
			do_action( 'litespeed_control_set_nocache', 'qs contains add-to-cart' );
			return ;
		}
	}

	/**
	 * Purge a product page and related pages (based on settings) on checkout.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param WC_Product $product
	 */
	public function purge_product($product) {
		do_action( 'litespeed_debug', '[3rd] Woo Purge [pid]' . $product->get_id() );

		$config = apply_filters( 'litespeed_conf', self::O_UPDATE_INTERVAL ) ;
		if ( is_null($config) ) {
			$config = self::O_PQS_CS ;
		}

		if ( $config === self::O_PQS_CQS ) {
			$this->backend_purge($product->get_id()) ;
		}
		elseif ( $config !== self::O_PQS_CS && $product->is_in_stock() ) {
			do_action( 'litespeed_debug', '[3rd] Woo No purge needed [option] ' . $config );
			return ;
		}
		elseif ( $config !== self::O_PS_CN && ! $product->is_in_stock() ) {
			$this->backend_purge($product->get_id()) ;
		}

		do_action( 'litespeed_purge_post', $product->get_id() );

		// Check if is variation, purge stock too #984479
		if ( $product->is_type( 'variation' ) ) {
			do_action( 'litespeed_purge_post', $product->get_parent_id() );
		}
	}

	/**
	 * Delete object-term relationship. If the post is a product and
	 * the term ids array is not empty, will add purge tags to the deleted
	 * terms.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param int $post_id Object ID.
	 * @param array $term_ids An array of term taxonomy IDs.
	 */
	public function delete_rel($post_id, $term_ids)
	{
		if ( ! function_exists( 'wc_get_product' ) ) {
			return ;
		}

		if ( empty($term_ids) || wc_get_product($post_id) === false ) {
			return ;
		}
		foreach ( $term_ids as $term_id ) {
			do_action( 'litespeed_purge', self::CACHETAG_TERM . $term_id );
		}
	}

	/**
	 * Purge a product's categories and tags pages in case they are affected.
	 *
	 * @since 1.0.9
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param int $post_id Post id that is about to be purged
	 */
	public function backend_purge($post_id)
	{
		if ( ! function_exists( 'wc_get_product' ) ) {
			return ;
		}

		if ( ! isset($post_id) || wc_get_product($post_id) === false ) {
			return ;
		}

		$cats = $this->get_cats($post_id) ;
		if ( ! empty($cats) ) {
			foreach ( $cats as $cat ) {
				do_action( 'litespeed_purge', self::CACHETAG_TERM . $cat );
			}
		}

		if ( ! function_exists( 'wc_get_product_terms' ) ) {
			return ;
		}

		$tags = wc_get_product_terms($post_id, 'product_tag', array('fields' => 'ids')) ;
		if ( ! empty($tags) ) {
			foreach ( $tags as $tag ) {
				do_action( 'litespeed_purge', self::CACHETAG_TERM . $tag );
			}
		}
	}

	/**
	 * When a product has a new review added, purge the recent reviews widget.
	 *
	 * @since 1.1.0
	 * @since 1.6.3 Removed static
	 * @access public
	 * @param $unused
	 * @param integer $comment_approved Whether the comment is approved or not.
	 * @param array $commentdata Information about the comment.
	 */
	public function add_review($unused, $comment_approved, $commentdata)
	{
		if ( ! function_exists( 'wc_get_product' ) ) {
			return ;
		}

		$post_id = $commentdata['comment_post_ID'] ;
		if ( $comment_approved !== 1 || ! isset($post_id) || wc_get_product($post_id) === false ) {
			return ;
		}
		global $wp_widget_factory ;
		$recent_reviews = $wp_widget_factory->widgets[ 'WC_Widget_Recent_Reviews' ] ;
		if ( ! is_null( $recent_reviews ) ) {
			do_action( 'litespeed_tag_add_widget', $recent_reviews->id );
		}
	}

	/**
	 * Append new options
	 *
	 * @since 1.6.3 Removed static
	 * @since  3.0 new API
	 */
	private function _option_append() {
		// Append option save value filter
		do_action( 'litespeed_conf_multi_switch', self::O_UPDATE_INTERVAL, 3 ); // This need to be before conf_append

		do_action( 'litespeed_conf_append', self::O_UPDATE_INTERVAL, false );
		do_action( 'litespeed_conf_append', self::O_SHOP_FRONT_TTL, true );
		do_action( 'litespeed_conf_append', self::O_WOO_CACHE_CART, true );
	}

	/**
	 * Hooked to `litespeed_settings_tab` action.
	 * Adds the integration configuration options (currently, to determine purge rules)
	 *
	 * @since 1.6.3 Removed static
	 */
	public function settings_add_tab( $setting_page )
	{
		if ( $setting_page != 'cache' ) {
			return ;
		}

		require 'woocommerce.tab.tpl.php' ;
	}

	/**
	 * Hook to show config content
	 *
	 * @since  3.0
	 */
	public function settings_add_content( $setting_page )
	{
		if ( $setting_page != 'cache' ) {
			return ;
		}

		require 'woocommerce.content.tpl.php' ;
	}

	/**
	 * Helper function to select the function(s) to use to get the product
	 * category ids.
	 *
	 * @since 1.0.10
	 * @since 1.6.3 Removed static
	 * @access private
	 * @param int $product_id The product id
	 * @return array An array of category ids.
	 */
	private function get_cats($product_id)
	{
		if ( ! function_exists( 'WC' ) ) {
			return ;
		}

		$woocom = WC() ;
		if ( isset($woocom) && version_compare($woocom->version, '2.5.0', '>=') && function_exists( 'wc_get_product_cat_ids' ) ) {
			return wc_get_product_cat_ids($product_id) ;
		}
		$product_cats = wp_get_post_terms($product_id, 'product_cat', array("fields" => "ids")) ;
		foreach ( $product_cats as $product_cat ) {
			$product_cats = array_merge($product_cats, get_ancestors($product_cat, 'product_cat')) ;
		}

		return $product_cats ;
	}

	/**
	 * 3rd party prepload
	 *
	 * @since  2.9.8.4
	 */
	public static function preload()
	{
		/**
		 * Auto puge for WooCommerce Advanced Bulk Edit plugin,
		 * Bulk edit hook need to add to preload as it will die before detect.
		 */
		add_action( 'wp_ajax_wpmelon_adv_bulk_edit', __CLASS__ . '::bulk_edit_purge', 1 ) ;
	}

	/**
	 * Auto puge for WooCommerce Advanced Bulk Edit plugin,
	 *
	 * @since  2.9.8.4
	 */
	public static function bulk_edit_purge()
	{
		if ( empty( $_POST[ 'type' ] ) || $_POST[ 'type' ] != 'saveproducts' || empty( $_POST[ 'data' ] ) ) return ;

		/*
		* admin-ajax form-data structure
		* array(
		*		"type" => "saveproducts",
		*		"data" => array(
		*			"column1" => "464$###0$###2#^#463$###0$###4#^#462$###0$###6#^#",
		*			"column2" => "464$###0$###2#^#463$###0$###4#^#462$###0$###6#^#"
		*		)
		*	)
		*/
		$stock_string_arr = array() ;
		foreach ( $_POST[ 'data' ] as $stock_value ) {
			$stock_string_arr = array_merge( $stock_string_arr, explode( '#^#', $stock_value ) ) ;
		}

		$lscwp_3rd_woocommerce = new self() ;

		if ( count( $stock_string_arr ) < 1 ) {
			return ;
		}

		foreach ( $stock_string_arr as $edited_stock ) {
			$product_id = strtok( $edited_stock, '$' );
			$product = wc_get_product( $product_id ) ;

			if ( empty( $product ) ) {
				do_action( 'litespeed_debug', '3rd woo purge: ' . $product_id . ' not found.' ) ;
				continue ;
			}

			$lscwp_3rd_woocommerce->purge_product( $product );
		}
	}
}

<?php
/**
 * The Third Party integration with the NextGen Gallery plugin.
 *
 * @since		1.0.5
 */
namespace LiteSpeed\Thirdparty ;

defined( 'WPINC' ) || exit ;

// Try preload instead
// todo: need test
// add_action('load_nextgen_gallery_modules', 'NextGenGallery::detect') ;

class NextGenGallery
{
	const CACHETAG_ALBUMS = 'NGG_A.' ;
	const CACHETAG_GALLERIES = 'NGG_G.' ;
	const CACHETAG_TAGS = 'NGG_T.' ;

	/**
	 * Detect is triggered at the load_nextgen_gallery_modules action.
	 *
	 * If this action is triggered, assume NextGen Gallery is used.
	 *
	 * @since	1.0.5
	 * @access	public
	 */
	public static function preload()
	{
		add_action( 'ngg_added_new_image', __CLASS__ . '::add_image' ) ;
		add_action( 'ngg_ajax_image_save', __CLASS__ . '::update_image' ) ;
		add_action( 'ngg_delete_picture', __CLASS__ . '::delete_image' ) ;
		add_action( 'ngg_moved_images', __CLASS__ . '::move_image', 10, 3 ) ;
		add_action( 'ngg_copied_images', __CLASS__ . '::copy_image', 10, 3 ) ;
		add_action( 'ngg_generated_image', __CLASS__ . '::gen_image' ) ;
		add_action( 'ngg_recovered_image', __CLASS__ . '::gen_image' ) ;

		add_action( 'ngg_gallery_sort', __CLASS__ . '::update_gallery' ) ;
		add_action( 'ngg_delete_gallery', __CLASS__ . '::update_gallery' ) ;

		add_action( 'ngg_update_album', __CLASS__ . '::update_album' ) ;
		add_action( 'ngg_delete_album', __CLASS__ . '::update_album' ) ;

		add_filter( 'ngg_displayed_gallery_cache_params', __CLASS__ . '::add_container' ) ;
	}

	/**
	 * When an image is added, need to purge all pages that displays its gallery.
	 *
	 * @since	1.0.5
	 * @access	public
	 * @param	string	$image	The image object added.
	 */
	public static function add_image($image)
	{
		if ( ! $image || ! method_exists( $image, 'get_gallery' ) ) {
			return ;
		}
		$gallery = $image->get_gallery() ;
		if ( $gallery && $gallery->pageid ) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gallery->pageid ) ;
		}
	}

	/**
	 * When an image is updated, need to purge all pages that displays its gallery.
	 *
	 * @since 1.0.5
	 * @access	public
	 */
	public static function update_image()
	{
		if ( isset( $_REQUEST[ 'gallery_id' ] ) ) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $_REQUEST[ 'gallery_id' ] ) ;
			return ;
		}

		if ( isset( $_POST[ 'task_list' ] ) ) {
			$task_list = str_replace( '\\', '', $_POST[ 'task_list' ] ) ;
			$task_list = json_decode( $task_list, true ) ;

			if ( ! empty( $task_list[ 0 ][ 'query' ][ 'id' ] ) ) {
				do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $task_list[ 0 ][ 'query' ][ 'id' ] ) ;
				return ;
			}
		}

		if ( isset($_POST['id']) ) {
			$id = $_POST['id'] ;
		}
		elseif ( isset($_POST['image']) ) {
			$id = $_POST['image'] ;
		}
		elseif ( isset($_GET['pid']) ) {
			$id = $_GET['pid'] ;
		}
		else {
			error_log('LiteSpeed_Cache hit ngg_ajax_image_save with no post image id.') ;
			return ;
		}
		$image = \C_Image_Mapper::get_instance()->find($id) ;
		if ( $image ) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $image->galleryid );
		}
	}

	/**
	 * When an image is deleted, need to purge all pages that displays its gallery.
	 *
	 * @since 1.0.5
	 * @access	public
	 */
	public static function delete_image()
	{
		if ( isset($_GET['gid']) ) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $_GET['gid'] );
		}
	}

	/**
	 * When an image is moved, need to purge all old galleries and the new gallery.
	 *
	 * @since 1.0.8
	 * @access	public
	 * @param array $images unused
	 * @param array $old_gallery_ids Source gallery ids for the images.
	 * @param integer $new_gallery_id Destination gallery id.
	 */
	public static function move_image($images, $old_gallery_ids, $new_gallery_id)
	{
		foreach ($old_gallery_ids as $gid) {
			do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gid );
		}
		do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $new_gallery_id );
	}

	/**
	 * When an image is copied, need to purge the destination gallery.
	 *
	 * @param array $image_pid_map unused
	 * @param array $old_gallery_ids unused
	 * @param integer $new_gallery_id Destination gallery id.
	 */
	public static function copy_image($image_pid_map, $old_gallery_ids, $new_gallery_id)
	{
		do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $new_gallery_id );
	}

	/**
	 * When an image is re-generated, need to purge the gallery it belongs to.
	 * Also applies to recovered images.
	 *
	 * @param Image $image The re-generated image.
	 */
	public static function gen_image($image)
	{
		do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $image->galleryid );
	}

	/**
	 * When a gallery is updated, need to purge all pages that display the gallery.
	 *
	 * @since 1.0.5
	 * @access  public
	 * @param	integer		$gid	The gallery id of the gallery updated.
	 */
	public static function update_gallery($gid)
	{
		// New version input will be an object with gid value
		if ( is_object( $gid ) && ! empty( $gid->gid ) ) {
			$gid = $gid->gid ;
		}

		do_action( 'litespeed_purge', self::CACHETAG_GALLERIES . $gid );
	}

	/**
	 * When an album is updated, need to purge all pages that display the album.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param	integer		$aid	The album id of the album updated.
	 */
	public static function update_album($aid)
	{
		do_action( 'litespeed_purge', self::CACHETAG_ALBUMS . $aid );
	}

	/**
	 * When rendering a page, if the page has a gallery, album or tag cloud,
	 * it needs to be tagged appropriately.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param object $render_parms Parameters used to render the associated part of the page.
	 * @return mixed Null if passed in null, $render_parms otherwise.
	 */
	public static function add_container($render_parms)
	{
		// Check if null. If it is null, can't continue.
		if ( is_null($render_parms) ) {
			return null ;
		}
		$src = $render_parms[0]->source ;
		$container_ids = $render_parms[0]->container_ids ;
		// Can switch on first char if we end up with more sources.
		switch ($src) {
			case 'albums':
				$tag = self::CACHETAG_ALBUMS ;
				break ;
			case 'galleries':
				$tag = self::CACHETAG_GALLERIES ;
				break ;
			case 'tags':
				$tag = self::CACHETAG_TAGS ;
				break ;
			default:
				return $render_parms ;
		}

		foreach ($container_ids as $id) {
			do_action( 'litespeed_tag_add', $tag . $id );
		}

		return $render_parms ;
	}
}

<?php defined( 'WPINC' ) || exit ; ?>

<a class='litespeed-tab nav-tab' href='#woocommerce' data-litespeed-tab='woocommerce'><?php echo __( 'WooCommerce', 'litespeed-cache' ) ; ?></a>
<?php
/**
 * The Third Party integration with the bbPress plugin.
 *
 * @since		1.0.5
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

use \LiteSpeed\Router;

class BBPress
{
	/**
	 * Detect if bbPress is installed and if the page is a bbPress page.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public static function detect()
	{
		if ( function_exists( 'is_bbpress' ) ) {
			add_action('litespeed_api_purge_post', __CLASS__ . '::on_purge' );//todo
			if ( apply_filters( 'litespeed_esi_status', false ) ) {// don't consider private cache yet (will do if any feedback)
				add_action( 'litespeed_control_finalize', __CLASS__ . '::set_control' );
			}
		}
	}

	/**
	 * This filter is used to let the cache know if a page is cacheable.
	 *
	 * @access public
	 * @since 1.2.0
	 */
	public static function set_control()
	{
		if ( ! apply_filters( 'litespeed_control_cacheable', false ) ) {
			return;
		}

		// set non ESI public
		if ( is_bbpress() && Router::is_logged_in() ) {
			do_action( 'litespeed_control_set_nocache', 'bbpress nocache due to loggedin' );
		}
	}

	/**
	 * When a bbPress page is purged, need to purge the forums list and
	 * any/all ancestor pages.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param integer $post_id The post id of the page being purged.
	 */
	public static function on_purge($post_id)
	{
		if ( ! is_bbpress() ) {
			if ( ! function_exists( 'bbp_is_forum' ) || ! function_exists( 'bbp_is_topic' ) || ! function_exists( 'bbp_is_reply' ) ) {
				return;
			}
			if ( ! bbp_is_forum( $post_id ) && ! bbp_is_topic( $post_id ) && ! bbp_is_reply( $post_id ) ) {
				return;
			}
		}

		// Need to purge base forums page, bbPress page was updated.
		do_action( 'litespeed_purge_posttype', bbp_get_forum_post_type() );
		$ancestors = get_post_ancestors( $post_id );

		// If there are ancestors, need to purge them as well.
		if ( ! empty( $ancestors ) ) {
			foreach ( $ancestors as $ancestor ) {
				do_action( 'litespeed_purge_post', $ancestor );
			}
		}

		global $wp_widget_factory;
		if ( bbp_is_reply( $post_id ) && ! is_null( $wp_widget_factory->widgets[ 'BBP_Replies_Widget' ] ) ) {
			do_action( 'litespeed_purge_widget', $wp_widget_factory->widgets[ 'BBP_Replies_Widget' ]->id );
		}
		if ( bbp_is_topic( $post_id ) && ! is_null( $wp_widget_factory->widgets[ 'BBP_Topics_Widget' ] ) ) {
			do_action( 'litespeed_purge_widget', $wp_widget_factory->widgets[ 'BBP_Topics_Widget' ]->id );
		}
	}
}

<?php
/**
 * The Third Party integration with User Switching.
 *
 * @since		3.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class User_Switching
{
	public static function detect()
	{
		if ( ! defined( 'user_switching' ) ) return;

		/**
		 * Register switch back URL nonce
		 * @since  3.0 @Robert Staddon
		 */
		if ( function_exists( 'current_user_switched' ) && $old_user = current_user_switched() ) {
			do_action( 'litespeed_nonce', 'switch_to_olduser_' . $old_user->ID );
		}
	}
}
<?php
/**
 * The Third Party integration with the Theme My Login plugin.
 *
 * @since		1.0.15
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Theme_My_Login
{
	/**
	 * Detects if Better Theme My Login is active.
	 *
	 * @since 1.0.15
	 * @access public
	 *
	 */
	public static function detect()
	{
		if ( defined( 'THEME_MY_LOGIN_PATH' ) ) {
			add_action( 'litespeed_control_finalize', __CLASS__ . '::set_control' );
		}
	}

	/**
	 * This filter is used to let the cache know if a page is cacheable.
	 *
	 * @access public
	 * @since 1.0.15
	 */
	public static function set_control()
	{
		if ( ! apply_filters( 'litespeed_control_cacheable', false ) ) {
			return;
		}

		// check if this page is TML page or not
		if ( class_exists( 'Theme_My_Login' ) && \Theme_My_Login::is_tml_page() ) {
			do_action( 'litespeed_control_set_nocache', 'Theme My Login' );
		}
	}

}<?php
/**
 * The Third Party integration with DIVI Theme.
 *
 * @since		2.9.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class Divi_Theme_Builder
{
	// private static $js_comment_box = false;

	/**
	 * Check if is Edit mode in frontend, disable all LSCWP features to avoid breaking page builder
	 *
	 * @since 2.9.7.2 #435538 #581740 #977284
	 * @since  2.9.9.1 Added 'et_pb_preview' for loading image from library in divi page edit
	 */
	public static function preload()
	{
		if ( ! function_exists( 'et_setup_theme' ) ) return;
		if ( ! empty( $_GET[ 'et_fb' ] ) || ! empty( $_GET[ 'et_pb_preview' ] ) ) {
			do_action( 'litespeed_disable_all', 'divi edit mode' );
		}
	}

	public static function detect()
	{
		if ( ! defined( 'ET_CORE' ) ) return;
		/**
		 * Add contact form to nonce
		 * @since  2.9.7.1 #475461
		 */
		do_action( 'litespeed_nonce', 'et-pb-contact-form-submit' );

		/**
		 * Subscribe module and A/B logging
		 * @since  3.0 @Robert Staddon
		 */
		do_action( 'litespeed_nonce', 'et_frontend_nonce' );
		do_action( 'litespeed_nonce', 'et_ab_log_nonce' );

		/*
		// the comment box fix is for user using theme builder, ESI will load the wrong json string
		// As we disabled all for edit mode, this is no more needed
		add_action( 'et_fb_before_comments_template', 'Divi_Theme_Builder::js_comment_box_on' );
		add_action( 'et_fb_after_comments_template', 'Divi_Theme_Builder::js_comment_box_off' );
		add_filter( 'litespeed_esi_params-comment-form', 'Divi_Theme_Builder::esi_comment_add_slash' );// Note: this is changed in v2.9.8.1
		*/
	}

	/*
	public static function js_comment_box_on() {
		self::$js_comment_box = true;
	}

	public static function js_comment_box_off() {
		self::$js_comment_box = false;
	}

	public static function esi_comment_add_slash( $params )
	{
		if ( self::$js_comment_box ) {
			$params[ 'is_json' ] = 1;
			$params[ '_ls_silence' ] = 1;
		}

		return $params;
	}
	*/
}
<?php
/**
 * The Third Party integration with the Aelia CurrencySwitcher plugin.
 *
 * @since		1.0.13
 * @since  		2.6 	Removed hook_vary as OLS supports vary header already
 * @package		LiteSpeed_Cache
 * @subpackage	LiteSpeed_Cache/thirdparty
 * @author		LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\Thirdparty ;

defined( 'WPINC' ) || exit ;

use \LiteSpeed\API ;

class Aelia_CurrencySwitcher
{
	private static $_cookies = array(
		'aelia_cs_selected_currency',
		'aelia_customer_country',
		'aelia_customer_state',
		'aelia_tax_exempt',
	) ;

	/**
	 * Detects if WooCommerce is installed.
	 *
	 * @since 1.0.13
	 * @access public
	 * @global $GLOBALS;
	 */
	public static function detect()
	{
		if ( defined('WOOCOMMERCE_VERSION') && isset($GLOBALS['woocommerce-aelia-currencyswitcher']) && is_object($GLOBALS['woocommerce-aelia-currencyswitcher']) ) {
			// Not all pages need to add vary, so need to use this API to set conditions
			API::hook_vary_add( __CLASS__ . '::check_cookies' ) ;
		}
	}

	/**
	 * If the page is not a woocommerce page, ignore the logic.
	 * Else check cookies. If cookies are set, set the vary headers, else do not cache the page.
	 *
	 * @since 1.0.13
	 * @access public
	 */
	public static function check_cookies()
	{
		if ( ! apply_filters( 'litespeed_control_cacheable', false ) ) {
			return;
		}

		// NOTE: is_cart and is_checkout should also be checked, but will be checked by woocommerce anyway.
		if ( ! is_woocommerce() ) {
			return ;
		}

		API::vary_add( self::$_cookies ) ;
	}
}
<?php
/**
 * The Third Party integration with WCML.
 *
 * @since		3.0
 */
namespace LiteSpeed\Thirdparty;

defined( 'WPINC' ) || exit;

class WCML
{

	public static function detect()
	{
		if ( ! defined( 'WCML_VERSION' ) ) return;

		add_filter( 'wcml_client_currency', __CLASS__ . '::apply_client_currency' );
		add_action( 'wcml_set_client_currency', __CLASS__ . '::set_client_currency' );
	}

	public static function set_client_currency( $currency )
	{
		self::apply_client_currency( $currency );

		do_action( 'litespeed_vary_ajax_force' );
	}

	public static function apply_client_currency( $currency )
	{
		if ( $currency !== wcml_get_woocommerce_currency_option() ) {
			do_action( 'litespeed_vary_append', 'wcml_currency', $currency );
		}

		return $currency;
	}
}<?php
/**
 * The registry for Third Party Plugins Integration files.
 *
 * This file is only used to include the integration files/classes.
 * This works as an entry point for the initial add_action for the
 * detect function.
 *
 * It is not required to add all integration files here, this just provides
 * a common place for plugin authors to append their file to.
 *
 */
defined( 'WPINC' ) || exit;

use \LiteSpeed\API;

$third_cls = array(
	'Aelia_CurrencySwitcher',
	'Autoptimize',
	'Avada',
	'BBPress',
	'Beaver_Builder',
	'Caldera_Forms',
	'Divi_Theme_Builder',
	'Elementor',
	'Facetwp',
	'Theme_My_Login',
	'User_Switching',
	'WCML',
	'WooCommerce',
	'Woo_Paypal',
	'Wp_Polls',
	'WP_PostRatings',
	'Wpdiscuz',
	'WPLister',
	'WPML',
	'WpTouch',
	'Yith_Wishlist',
);

foreach ( $third_cls as $cls ) {
	add_action( 'litespeed_load_thirdparty', 'LiteSpeed\Thirdparty\\' . $cls . '::detect' ) ;
}

// Preload needed for certain thirdparty
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\Divi_Theme_Builder::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\WooCommerce::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\NextGenGallery::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\AMP::preload' );
add_action( 'litespeed_init', 'LiteSpeed\Thirdparty\Elementor::preload' );
<?php
/**
 * The error class.
 *
 * @since      	3.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Error {
	private static $CODE_SET = array(
		'HTA_LOGIN_COOKIE_INVALID' => 4300, // .htaccess did not find.
		'HTA_DNF'		 => 4500, // .htaccess did not find.
		'HTA_BK'		 => 9010, // backup
		'HTA_R'			 => 9041, // read htaccess
		'HTA_W'			 => 9042, // write
		'HTA_GET'		 => 9030, // failed to get
	);

	/**
	 * Throw an error with msg
	 *
	 * @since  3.0
	 */
	public static function t( $code, $args = null ) {
		throw new \Exception( self::msg( $code, $args ) );
	}

	/**
	 * Translate an error to description
	 *
	 * @since  3.0
	 */
	public static function msg( $code, $args = null ) {
		switch ( $code ) {

			case 'disabled_all':
				$msg = sprintf( __( 'The setting %s is currently enabled.', 'litespeed-cache' ), '<strong>' . Lang::title( Base::O_DEBUG_DISABLE_ALL ) . '</strong>' ) .
					Doc::learn_more( admin_url( 'admin.php?page=litespeed-toolbox' ), __( 'Click here to change.', 'litespeed-cache' ), true, false, true );
				break;

			case 'lack_of_api_key':
				$msg = sprintf( __( 'You will need to set %s to use the online services.', 'litespeed-cache' ), '<strong>' . Lang::title( Base::O_API_KEY ) . '</strong>' ) .
					Doc::learn_more( admin_url( 'admin.php?page=litespeed-general' ), __( 'Click here to set.', 'litespeed-cache' ), true, false, true );
				break;

			case 'lack_of_quota':
				$msg = __( 'You don\'t have enough quota for current service left this month.', 'litespeed-cache' );
				break;

			case 'too_many_requested':
				$msg = __( 'You have too many requested images, please try again in a few minutes.', 'litespeed-cache' );
				break;

			case 'too_many_notified':
				$msg = __( 'You have too many notified images, please pull down notified images first.', 'litespeed-cache' );
				break;

			case 'empty_list':
				$msg = __( 'The image list is empty.', 'litespeed-cache' );
				break;

			case 'lack_of_param':
				$msg = __( 'Not enough parameters. Please check if the domain key is set correctly', 'litespeed-cache' );
				break;

			case 'unfinished_queue':
				$msg = __( 'There is proceeding queue not pulled yet.', 'litespeed-cache' );
				break;

			case strpos( $code, 'unfinished_queue ' ) === 0:
				$msg = sprintf( __( 'There is proceeding queue not pulled yet. Queue info: %s.', 'litespeed-cache' ), '<code>' . substr( $code, strlen( 'unfinished_queue ' ) ) . '</code>' );
				break;

			case 'site_not_registered':
				$msg = __( 'The site is not registered on QUIC.cloud.', 'litespeed-cache' );
				break;

			case 'err_key':
				$msg = __( 'The domain key is not correct. Please try to sync your domain key again.', 'litespeed-cache' );
				break;

			case 'err_overdraw':
				$msg = __( 'Credits are not enough to proceed the current request.', 'litespeed-cache' );
				break;

			case 'W':
				$msg = __( '%s file not writable.', 'litespeed-cache' );
				break;

			case 'HTA_DNF':
				if ( ! is_array( $args ) ) {
					$args = array( '<code>' . $args . '</code>' );
				}
				$args[] = '.htaccess';
				$msg = __( 'Could not find %1$s in %2$s.', 'litespeed-cache' );
				break;

			case 'HTA_LOGIN_COOKIE_INVALID':
				$msg = sprintf( __( 'Invalid login cookie. Please check the %s file.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'HTA_BK':
				$msg = sprintf( __( 'Failed to back up %s file, aborted changes.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'HTA_R':
				$msg = sprintf( __( '%s file not readable.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'HTA_W':
				$msg = sprintf( __( '%s file not writable.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'HTA_GET':
				$msg = sprintf( __( 'Failed to get %s file contents.', 'litespeed-cache' ), '.htaccess' );
				break;

			case 'failed_tb_creation':
				$msg = __( 'Failed to create table %s! SQL: %s.', 'litespeed-cache' );
				break;

			case 'crawler_disabled':
				$msg = __( 'Crawler disabled by the server admin.', 'litespeed-cache' );
				break;

			/*** QC error code ***/
			case 'try_later':
				$msg = __( 'Previous request too recent. Please try again later.', 'litespeed-cache' );
				break;

			case strpos( $code, 'try_later ' ) === 0:
				$msg = sprintf( __( 'Previous request too recent. Please try again after %s.', 'litespeed-cache' ), '<code>' . Utility::readable_time( substr( $code, strlen( 'try_later ' ) ), 3600, true ) . '</code>' );
				break;

			case 'waiting_for_approval':
				$msg = __( 'Your application is waiting for approval.', 'litespeed-cache' );
				break;

			case 'callback_fail_hash':
				$msg = __( 'The callback validation to your domain failed due to hash mismatch.', 'litespeed-cache' );
				break;

			case 'callback_fail':
				$msg = __( 'The callback validation to your domain failed. Please make sure there is no firewall blocking our servers.', 'litespeed-cache' );
				break;

			case substr( $code, 0, 14 ) === 'callback_fail ':
				$msg = __( 'The callback validation to your domain failed. Please make sure there is no firewall blocking our servers. Response code: ', 'litespeed-cache' ) . substr( $code, 14 );
				break;

			case 'forbidden':
				$msg = __( 'Your domain has been forbidden from using our services due to a previous policy violation.', 'litespeed-cache' );
				break;

			default:
				$msg = __( 'Unknown error', 'litespeed-cache' ) . ': ' . $code;
				break;
		}

		if ( $args !== null ) {
			$msg = is_array( $args ) ? vsprintf( $msg, $args ) : sprintf( $msg, $args );
		}

		if ( isset( self::$CODE_SET[ $code ] ) ) {
			$msg = 'ERROR ' . self::$CODE_SET[ $code ] . ': ' . $msg;
		}

		return $msg;
	}
}<?php
/**
 * The admin settings handler of the plugin.
 *
 *
 * @since      1.1.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Admin_Settings extends Base
{
	protected static $_instance;

	const ENROLL = '_settings-enroll';

	private $__cfg;// cfg instance

	/**
	 * Init
	 *
	 * @since  1.3
	 * @access protected
	 */
	protected function __construct()
	{
		$this->__cfg = Conf::get_instance();
	}

	/**
	 * Save settings
	 *
	 * Both $_POST and CLI can use this way
	 *
	 * Import will directly call conf.cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public function save( $raw_data )
	{
		Debug2::debug( '[Settings] saving' );

		if ( empty( $raw_data[ self::ENROLL ] ) ) {
			exit( 'No fields' );
		}

		$raw_data = Admin::cleanup_text( $raw_data );

		// Convert data to config format
		$the_matrix = array();
		foreach ( array_unique( $raw_data[ self::ENROLL ] ) as $id ) {
			$child = false;
			// Drop array format
			if ( strpos( $id, '[' ) !== false ) {
				if ( strpos( $id, self::O_CDN_MAPPING ) === 0 || strpos( $id, self::O_CRAWLER_COOKIES ) === 0 ) { // CDN child | Cookie Crawler settings
					$child = substr( $id, strpos( $id, '[' ) + 1, strpos( $id, ']' ) - strpos( $id, '[' ) - 1 );
					$id = substr( $id, 0, strpos( $id, '[' ) ); // Drop ending []; Compatible with xx[0] way from CLI
				}
				else {
					$id = substr( $id, 0, strpos( $id, '[' ) ); // Drop ending []
				}
			}

			if ( ! array_key_exists( $id, self::$_default_options ) ) {
				continue;
			}

			// Validate $child
			if ( $id == self::O_CDN_MAPPING ) {
				if ( ! in_array( $child, array(
					self::CDN_MAPPING_URL,
					self::CDN_MAPPING_INC_IMG,
					self::CDN_MAPPING_INC_CSS,
					self::CDN_MAPPING_INC_JS,
					self::CDN_MAPPING_FILETYPE,
				) ) ) {
					continue;
				}
			}
			if ( $id == self::O_CRAWLER_COOKIES ) {
				if ( ! in_array( $child, array(
					self::CRWL_COOKIE_NAME,
					self::CRWL_COOKIE_VALS,
				) ) ) {
					continue;
				}
			}

			$data = false;

			if ( $child ) {
				$data = ! empty( $raw_data[ $id ][ $child ] ) ? $raw_data[ $id ][ $child ] : false; // []=xxx or [0]=xxx
			}
			else {
				$data = ! empty( $raw_data[ $id ] ) ? $raw_data[ $id ] : false;
			}

			/**
			 * Sanitize the value
			 */
			if ( $id == self::O_CDN_MAPPING || $id == self::O_CRAWLER_COOKIES ) {
				// Use existing in queue data if existed (Only available when $child != false)
				$data2 = array_key_exists( $id, $the_matrix ) ? $the_matrix[ $id ] : ( defined( 'WP_CLI' ) && WP_CLI ? Conf::val( $id ) : array() );
			}
			switch ( $id ) {
				case self::O_CDN_MAPPING:
					/**
					 * CDN setting
					 *
					 * Raw data format:
					 * 		cdn-mapping[url][] = 'xxx'
					 * 		cdn-mapping[url][2] = 'xxx2'
					 * 		cdn-mapping[inc_js][] = 1
					 *
					 * Final format:
					 * 		cdn-mapping[ 0 ][ url ] = 'xxx'
					 * 		cdn-mapping[ 2 ][ url ] = 'xxx2'
					 */
					if ( $data ) foreach ( $data as $k => $v ) {
						if ( $child == self::CDN_MAPPING_FILETYPE ) {
							$v = Utility::sanitize_lines( $v );
						}
						elseif ( in_array( $child, array(
							self::CDN_MAPPING_INC_IMG,
							self::CDN_MAPPING_INC_CSS,
							self::CDN_MAPPING_INC_JS,
						) ) ) {
							// Because these can't be auto detected in `config->update()`, need to format here
							$v = $v === 'false' ? 0 : (bool) $v;
						}

						if ( empty( $data2[ $k ] ) ) {
							$data2[ $k ] = array();
						}

						$data2[ $k ][ $child ] = $v;
					}

					$data = $data2;
					break;

				case self::O_CRAWLER_COOKIES:
					/**
					 * Cookie Crawler setting
					 * Raw Format:
					 * 		crawler-cookies[name][] = xxx
					 * 		crawler-cookies[name][2] = xxx2
					 * 		crawler-cookies[vals][] = xxx
					 *
					 * todo: need to allow null for values
					 *
					 * Final format:
					 * 		crawler-cookie[ 0 ][ name ] = 'xxx'
					 * 		crawler-cookie[ 0 ][ vals ] = 'xxx'
					 * 		crawler-cookie[ 2 ][ name ] = 'xxx2'
					 *
					 * empty line for `vals` use literal `_null`
					 */
					if ( $data ) foreach ( $data as $k => $v ) {
						if ( $child == self::CRWL_COOKIE_VALS ) {
							$v = Utility::sanitize_lines( $v );
						}

						if ( empty( $data2[ $k ] ) ) {
							$data2[ $k ] = array();
						}

						$data2[ $k ][ $child ] = $v;
					}

					$data = $data2;
					break;

				// Cache exclude cat
				case self::O_CACHE_EXC_CAT:
					$data2 = array();
					$data = Utility::sanitize_lines( $data );
					foreach ( $data as $v ) {
						$cat_id = get_cat_ID( $v );
						if ( ! $cat_id ) {
							continue;
						}

						$data2[] = $cat_id;
					}
					$data = $data2;
					break;

				// Cache exclude tag
				case self::O_CACHE_EXC_TAG :
					$data2 = array();
					$data = Utility::sanitize_lines( $data );
					foreach ( $data as $v ) {
						$term = get_term_by( 'name', $v, 'post_tag' );
						if ( ! $term ) {
							// todo: can show the error in admin error msg
							continue;
						}

						$data2[] = $term->term_id;
					}
					$data = $data2;
					break;

				default:
					break;
			}

			$the_matrix[ $id ] = $data;
		}

		// Special handler for CDN/Crawler 2d list to drop empty rows
		foreach ( $the_matrix as $id => $data ) {
			/**
			 * 		cdn-mapping[ 0 ][ url ] = 'xxx'
			 * 		cdn-mapping[ 2 ][ url ] = 'xxx2'
			 *
			 * 		crawler-cookie[ 0 ][ name ] = 'xxx'
			 * 		crawler-cookie[ 0 ][ vals ] = 'xxx'
			 * 		crawler-cookie[ 2 ][ name ] = 'xxx2'
			 */
			if ( $id == self::O_CDN_MAPPING || $id == self::O_CRAWLER_COOKIES ) {
				// Drop this line if all children elements are empty
				foreach ( $data as $k => $v ) {
					foreach ( $v as $v2 ) {
						if ( $v2 ) {
							continue 2;
						}
					}
					// If hit here, means all empty
					unset( $the_matrix[ $id ][ $k ] );
				}
			}

			// Don't allow repeated cookie name
			if ( $id == self::O_CRAWLER_COOKIES ) {
				$existed = array();
				foreach ( $the_matrix[ $id ] as $k => $v ) {
					if ( ! $v[ self::CRWL_COOKIE_NAME ] || in_array( $v[ self::CRWL_COOKIE_NAME ], $existed ) ) { // Filter repeated or empty name
						unset( $the_matrix[ $id ][ $k ] );
						continue;
					}

					$existed[] = $v[ self::CRWL_COOKIE_NAME ];
				}
			}

			// CDN mapping allow URL values repeated
			// if ( $id == self::O_CDN_MAPPING ) {}
		}

		// id validation will be inside
		$this->__cfg->update_confs( $the_matrix );

		$msg = __( 'Options saved.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Parses any changes made by the network admin on the network settings.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function network_save( $raw_data )
	{
		Debug2::debug( '[Settings] network saving' );

		if ( empty( $raw_data[ self::ENROLL ] ) ) {
			exit( 'No fields' );
		}

		$raw_data = Admin::cleanup_text( $raw_data );

		foreach ( array_unique( $raw_data[ self::ENROLL ] ) as $id ) {
			// Append current field to setting save
			if ( ! array_key_exists( $id, self::$_default_site_options ) ) {
				continue;
			}

			$data = ! empty( $raw_data[ $id ] ) ? $raw_data[ $id ] : false;

			// id validation will be inside
			$this->__cfg->network_update( $id, $data );
		}

		// Update related files
		Activation::get_instance()->update_files();

		$msg = __( 'Options saved.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Hooked to the wp_redirect filter.
	 * This will only hook if there was a problem when saving the widget.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param string $location The location string.
	 * @return string the updated location string.
	 */
	public static function widget_save_err( $location )
	{
		return str_replace( '?message=0', '?error=0', $location ) ;
	}

	/**
	 * Hooked to the widget_update_callback filter.
	 * Validate the LiteSpeed Cache settings on edit widget save.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param array $instance The new settings.
	 * @param array $new_instance
	 * @param array $old_instance The original settings.
	 * @param WP_Widget $widget The widget
	 * @return mixed Updated settings on success, false on error.
	 */
	public static function validate_widget_save( $instance, $new_instance, $old_instance, $widget )
	{
		if ( empty( $new_instance ) ) {
			return $instance;
		}

		if ( ! isset( $new_instance[ ESI::WIDGET_O_ESIENABLE ] ) || ! isset( $new_instance[ ESI::WIDGET_O_TTL ] ) ) {
			return $instance;
		}

		$esi = intval( $new_instance[ ESI::WIDGET_O_ESIENABLE ] ) % 3;
		$ttl = (int) $new_instance[ ESI::WIDGET_O_TTL ];

		if ( $ttl != 0 && $ttl < 30 ) {
			add_filter( 'wp_redirect', __CLASS__ . '::widget_save_err' ) ;
			return false ; // invalid ttl.
		}

		if ( empty( $instance[ Conf::OPTION_NAME ] ) ) {// todo: to be removed
			$instance[ Conf::OPTION_NAME ] = array() ;
		}
		$instance[ Conf::OPTION_NAME ][ ESI::WIDGET_O_ESIENABLE ] = $esi ;
		$instance[ Conf::OPTION_NAME ][ ESI::WIDGET_O_TTL ] = $ttl ;

		$current = ! empty( $old_instance[ Conf::OPTION_NAME ] ) ? $old_instance[ Conf::OPTION_NAME ] : false ;
		if ( ! $current || $esi != $current[ ESI::WIDGET_O_ESIENABLE ] ) {
			Purge::purge_all( 'Wdiget ESI_enable changed' ) ;
		}
		elseif ( $ttl != 0 && $ttl != $current[ ESI::WIDGET_O_TTL ] ) {
			Purge::add( Tag::TYPE_WIDGET . $widget->id ) ;
		}

		Purge::purge_all( 'Wdiget saved' ) ;
		return $instance ;
	}
}
<?php
/**
 * The htaccess rewrite rule operation class
 *
 *
 * @since      1.0.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/inc
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Htaccess extends Instance {
	protected static $_instance;

	const EDITOR_TEXTAREA_NAME = 'lscwp_ht_editor';

	private $frontend_htaccess = null;
	private $_default_frontend_htaccess = null;
	private $backend_htaccess = null;
	private $_default_backend_htaccess = null;
	private $theme_htaccess = null;// Not used yet
	private $frontend_htaccess_readable = false;
	private $frontend_htaccess_writable = false;
	private $backend_htaccess_readable = false;
	private $backend_htaccess_writable = false;
	private $theme_htaccess_readable = false;
	private $theme_htaccess_writable = false;
	private $__rewrite_on;

	const LS_MODULE_START = '<IfModule LiteSpeed>';
	const EXPIRES_MODULE_START = '<IfModule mod_expires.c>';
	const LS_MODULE_END = '</IfModule>';
	const LS_MODULE_REWRITE_START = '<IfModule mod_rewrite.c>';
	const REWRITE_ON = 'RewriteEngine on';
	const LS_MODULE_DONOTEDIT = "## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##";
	const MARKER = 'LSCACHE';
	const MARKER_NONLS = 'NON_LSCACHE';
	const MARKER_LOGIN_COOKIE = '### marker LOGIN COOKIE';
	const MARKER_MOBILE = '### marker MOBILE';
	const MARKER_NOCACHE_COOKIES = '### marker NOCACHE COOKIES';
	const MARKER_NOCACHE_USER_AGENTS = '### marker NOCACHE USER AGENTS';
	const MARKER_CACHE_RESOURCE = '### marker CACHE RESOURCE';
	const MARKER_FAVICON = '### marker FAVICON';
	const MARKER_BROWSER_CACHE = '### marker BROWSER CACHE';
	const MARKER_MINIFY = '### marker MINIFY';
	const MARKER_CORS = '### marker CORS';
	const MARKER_WEBP = '### marker WEBP';
	const MARKER_DROPQS = '### marker DROPQS';
	const MARKER_NETWORK_CSSJS_AUTOGEN = '### marker Network CSS/JS Auto Generation Rules';
	const MARKER_START = ' start ###';
	const MARKER_END = ' end ###';

	const RW_PATTERN_RES = '/.*/[^/]*(responsive|css|js|dynamic|loader|fonts)\.php';

	/**
	 * Initialize the class and set its properties.
	 *
	 * @since    1.0.7
	 * @access   protected
	 */
	protected function __construct() {
		$this->_path_set();
		$this->_default_frontend_htaccess = $this->frontend_htaccess;
		$this->_default_backend_htaccess = $this->backend_htaccess;

		$frontend_htaccess = Conf::val( Base::O_MISC_HTACCESS_FRONT );
		if ( $frontend_htaccess && substr( $frontend_htaccess, -10 ) === '/.htaccess' ) {
			$this->frontend_htaccess = $frontend_htaccess;
		}
		$backend_htaccess = Conf::val( Base::O_MISC_HTACCESS_BACK );
		if ( $backend_htaccess && substr( $backend_htaccess, -10 ) === '/.htaccess' ) {
			$this->backend_htaccess = $backend_htaccess;
		}

		// Filter for frontend&backend htaccess path
		$this->frontend_htaccess = apply_filters( 'litespeed_frontend_htaccess', $this->frontend_htaccess );
		$this->backend_htaccess = apply_filters( 'litespeed_backend_htaccess', $this->backend_htaccess );

		clearstatcache();

		// frontend .htaccess privilege
		$test_permissions = file_exists( $this->frontend_htaccess ) ? $this->frontend_htaccess : dirname( $this->frontend_htaccess );
		if ( is_readable( $test_permissions ) ) {
			$this->frontend_htaccess_readable = true;
		}
		if ( is_writable( $test_permissions ) ) {
			$this->frontend_htaccess_writable = true;
		}

		$this->__rewrite_on = array(
			self::REWRITE_ON,
			"CacheLookup on",
			"RewriteRule .* - [E=Cache-Control:no-autoflush]",
			"RewriteRule \.object-cache\.ini - [F,L]",
		);

		// backend .htaccess privilege
		if ( $this->frontend_htaccess === $this->backend_htaccess ) {
			$this->backend_htaccess_readable = $this->frontend_htaccess_readable;
			$this->backend_htaccess_writable = $this->frontend_htaccess_writable;
		}
		else {
			$test_permissions = file_exists( $this->backend_htaccess ) ? $this->backend_htaccess : dirname( $this->backend_htaccess );
			if ( is_readable( $test_permissions ) ) {
				$this->backend_htaccess_readable = true;
			}
			if ( is_writable( $test_permissions ) ) {
				$this->backend_htaccess_writable = true;
			}
		}
	}

	/**
	 * Get if htaccess file is readable
	 *
	 * @since 1.1.0
	 * @return string
	 */
	private function _readable( $kind = 'frontend' ) {
		if( $kind === 'frontend' ) {
			return $this->frontend_htaccess_readable;
		}
		if( $kind === 'backend' ) {
			return $this->backend_htaccess_readable;
		}
	}

	/**
	 * Get if htaccess file is writable
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public function writable( $kind = 'frontend' ) {
		if( $kind === 'frontend' ) {
			return $this->frontend_htaccess_writable;
		}
		if( $kind === 'backend' ) {
			return $this->backend_htaccess_writable;
		}
	}

	/**
	 * Get frontend htaccess path
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public static function get_frontend_htaccess( $show_default = false ) {
		if ( $show_default ) {
			return self::get_instance()->_default_frontend_htaccess;
		}
		return self::get_instance()->frontend_htaccess;
	}

	/**
	 * Get backend htaccess path
	 *
	 * @since 1.1.0
	 * @return string
	 */
	public static function get_backend_htaccess( $show_default = false ) {
		if ( $show_default ) {
			return self::get_instance()->_default_backend_htaccess;
		}
		return self::get_instance()->backend_htaccess;
	}

	/**
	 * Check to see if .htaccess exists starting at $start_path and going up directories until it hits DOCUMENT_ROOT.
	 *
	 * As dirname() strips the ending '/', paths passed in must exclude the final '/'
	 *
	 * @since 1.0.11
	 * @access private
	 */
	private function _htaccess_search( $start_path ) {
		while ( ! file_exists( $start_path . '/.htaccess' ) ) {
			if ( $start_path === '/' || ! $start_path ) {
				return false;
			}

			if ( ! empty( $_SERVER[ 'DOCUMENT_ROOT' ] ) && wp_normalize_path( $start_path ) === wp_normalize_path( $_SERVER[ 'DOCUMENT_ROOT' ] ) ) {
				return false;
			}

			if ( dirname( $start_path ) === $start_path ) {
				return false;
			}

			$start_path = dirname( $start_path );
		}

		return $start_path;
	}

	/**
	 * Set the path class variables.
	 *
	 * @since 1.0.11
	 * @access private
	 */
	private function _path_set() {
		$frontend = Router::frontend_path();
		$frontend_htaccess_search = $this->_htaccess_search( $frontend );// The existing .htaccess path to be used for frontend .htaccess
		$this->frontend_htaccess = ( $frontend_htaccess_search ?: $frontend ) . '/.htaccess';

		$backend = realpath( ABSPATH ); // /home/user/public_html/backend/
		if ( $frontend == $backend ) {
			$this->backend_htaccess = $this->frontend_htaccess;
			return;
		}

		// Backend is a different path
		$backend_htaccess_search = $this->_htaccess_search( $backend );
		// Found affected .htaccess
		if ( $backend_htaccess_search ) {
			$this->backend_htaccess = $backend_htaccess_search . '/.htaccess';
			return;
		}

		// Frontend path is the parent of backend path
		if ( stripos( $backend, $frontend . '/' ) === 0 ) {
			// backend use frontend htaccess
			$this->backend_htaccess = $this->frontend_htaccess;
			return;
		}

		$this->backend_htaccess = $backend . '/.htaccess';
	}

	/**
	 * Get corresponding htaccess path
	 *
	 * @since 1.1.0
	 * @param  string $kind Frontend or backend
	 * @return string       Path
	 */
	public function htaccess_path( $kind = 'frontend' ) {
		switch ( $kind ) {
			case 'backend' :
				$path = $this->backend_htaccess;
				break;

			case 'frontend' :
			default :
				$path = $this->frontend_htaccess;
				break;
		}
		return $path;
	}

	/**
	 * Get the content of the rules file.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.0.4
	 * @since  2.9 Used exception for failed reading
	 * @access public
	 */
	public function htaccess_read( $kind = 'frontend' ) {
		$path = $this->htaccess_path( $kind );

		if( ! $path || ! file_exists( $path ) ) {
			return "\n";
		}

		if ( ! $this->_readable( $kind ) ) {
			Error::t( 'HTA_R' );
		}

		$content = File::read( $path );
		if ( $content === false ) {
			Error::t( 'HTA_GET' );
		}

		// Remove ^M characters.
		$content = str_ireplace( "\x0D", "", $content );
		return $content;
	}

	/**
	 * Save the rules file changes.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.0.4
	 * @access public
	 */
	public function htaccess_save( $content, $kind = 'frontend' ) {
		$path = $this->htaccess_path( $kind );

		if ( ! $this->writable( $kind ) ) {
			Error::t( 'HTA_W' );
		}

		$this->_htaccess_backup( $kind );

		// File put contents will truncate by default. Will create file if doesn't exist.
		$res = File::save( $path, $content, false, false, false );
		if ( $res !== true ) {
			throw new \Exception( $res );
		}
	}

	/**
	 * Try to backup the .htaccess file if we didn't save one before.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.0.10
	 * @access private
	 */
	private function _htaccess_backup( $kind = 'frontend' ) {
		$path = $this->htaccess_path( $kind );

		if ( ! file_exists( $path ) ) {
			return;
		}

		if ( file_exists( $path . '.bk' ) ) {
			return;
		}

		$res = copy( $path, $path . '.bk' );

		// Failed to backup, abort
		if ( ! $res ) {
			Error::t( 'HTA_BK' );
		}
	}

	/**
	 * Get mobile view rule from htaccess file
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.1.0
	 */
	public function current_mobile_agents() {
		$rules = $this->_get_rule_by( self::MARKER_MOBILE );
		if( ! isset( $rules[ 0 ] ) ) {
			Error::t( 'HTA_DNF', self::MARKER_MOBILE );
		}

		$rule = trim( $rules[ 0 ] );
		// 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex( $cfg[ $id ], true ) . ' [NC]';
		$match = substr( $rule, strlen( 'RewriteCond %{HTTP_USER_AGENT} ' ), -strlen( ' [NC]' ) );

		if ( ! $match ) {
			Error::t( 'HTA_DNF', __( 'Mobile Agent Rules', 'litespeed-cache' ) );
		}

		return $match;
	}

	/**
	 * Parse rewrites rule from the .htaccess file.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function current_login_cookie( $kind = 'frontend' ) {
		$rule = $this->_get_rule_by( self::MARKER_LOGIN_COOKIE, $kind );

		if( ! $rule ) {
			Error::t( 'HTA_DNF', self::MARKER_LOGIN_COOKIE );
		}

		if( strpos( $rule, 'RewriteRule .? - [E=' ) !== 0 ) {
			Error::t( 'HTA_LOGIN_COOKIE_INVALID' );
		}

		$rule_cookie = substr( $rule, strlen( 'RewriteRule .? - [E=' ), -1 );

		if ( LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS' ) {
			$rule_cookie = trim( $rule_cookie, '"' );
		}

		// Drop `Cache-Vary:`
		$rule_cookie = substr( $rule_cookie, strlen( 'Cache-Vary:' ) );

		return $rule_cookie;
	}

	/**
	 * Get rewrite rules based on the marker
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _get_rule_by( $cond, $kind = 'frontend' ) {
		clearstatcache();
		$path = $this->htaccess_path( $kind );
		if ( ! $this->_readable( $kind ) ) {
			return false;
		}

		$rules = File::extract_from_markers( $path, self::MARKER );
		if( ! in_array( $cond . self::MARKER_START, $rules ) || ! in_array( $cond . self::MARKER_END, $rules ) ) {
			return false;
		}

		$key_start = array_search( $cond . self::MARKER_START, $rules );
		$key_end = array_search( $cond . self::MARKER_END, $rules );
		if( $key_start === false || $key_end === false ) {
			return false;
		}

		$results = array_slice( $rules, $key_start + 1, $key_end - $key_start - 1 );
		if( ! $results ) {
			return false;
		}

		if( count( $results ) == 1 ) {
			return trim( $results[ 0 ] );
		}

		return array_filter( $results );
	}

	/**
	 * Generate browser cache rules
	 *
	 * @since  1.3
	 * @access private
	 * @return array Rules set
	 */
	private function _browser_cache_rules( $cfg ) {
		/**
		 * Add ttl setting
		 * @since 1.6.3
		 */
		$id = Base::O_CACHE_TTL_BROWSER;
		$ttl = $cfg[ $id ];
		$rules = array(
			self::EXPIRES_MODULE_START,
			// '<FilesMatch "\.(pdf|ico|svg|xml|jpg|jpeg|png|gif|webp|ogg|mp4|webm|js|css|woff|woff2|ttf|eot)(\.gz)?$">',
				'ExpiresActive on',
				'ExpiresByType application/pdf A' . $ttl,
				'ExpiresByType image/x-icon A' . $ttl,
				'ExpiresByType image/vnd.microsoft.icon A' . $ttl,
				'ExpiresByType image/svg+xml A' . $ttl,
				'',
				'ExpiresByType image/jpg A' . $ttl,
				'ExpiresByType image/jpeg A' . $ttl,
				'ExpiresByType image/png A' . $ttl,
				'ExpiresByType image/gif A' . $ttl,
				'ExpiresByType image/webp A' . $ttl,
				'',
				'ExpiresByType video/ogg A' . $ttl,
				'ExpiresByType audio/ogg A' . $ttl,
				'ExpiresByType video/mp4 A' . $ttl,
				'ExpiresByType video/webm A' . $ttl,
				'',
				'ExpiresByType text/css A' . $ttl,
				'ExpiresByType text/javascript A' . $ttl,
				'ExpiresByType application/javascript A' . $ttl,
				'ExpiresByType application/x-javascript A' . $ttl,
				'',
				'ExpiresByType application/x-font-ttf A' . $ttl,
				'ExpiresByType application/x-font-woff A' . $ttl,
				'ExpiresByType application/font-woff A' . $ttl,
				'ExpiresByType application/font-woff2 A' . $ttl,
				'ExpiresByType application/vnd.ms-fontobject A' . $ttl,
				'ExpiresByType font/ttf A' . $ttl,
				'ExpiresByType font/otf A' . $ttl,
				'ExpiresByType font/woff A' . $ttl,
				'ExpiresByType font/woff2 A' . $ttl,
				'',
			// '</FilesMatch>',
			self::LS_MODULE_END,
		);
		return $rules;
	}

	/**
	 * Generate CORS rules for fonts
	 *
	 * @since  1.5
	 * @access private
	 * @return array Rules set
	 */
	private function _cors_rules() {
		return array(
			'<FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font\.css)$">',
				'<IfModule mod_headers.c>',
					'Header set Access-Control-Allow-Origin "*"',
				'</IfModule>',
			'</FilesMatch>',
		);
	}

	/**
	 * Generate rewrite rules based on settings
	 *
	 * @since  1.3
	 * @access private
	 * @param  array $cfg  The settings to be used for rewrite rule
	 * @return array      Rules array
	 */
	private function _generate_rules( $cfg ) {
		$new_rules = array();
		$new_rules_nonls = array();
		$new_rules_backend = array();
		$new_rules_backend_nonls = array();

		// mobile agents
		$id = Base::O_CACHE_MOBILE_RULES;
		if ( ! empty( $cfg[ Base::O_CACHE_MOBILE ] ) && ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_MOBILE . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex( $cfg[ $id ], true ) . ' [NC]';
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:vary=ismobile]';
			$new_rules[] = self::MARKER_MOBILE . self::MARKER_END;
			$new_rules[] = '';
		}

		// nocache cookie
		$id = Base::O_CACHE_EXC_COOKIES;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_NOCACHE_COOKIES . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_COOKIE} ' .  Utility::arr2regex( $cfg[ $id ], true );
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:no-cache]';
			$new_rules[] = self::MARKER_NOCACHE_COOKIES . self::MARKER_END;
			$new_rules[] = '';
		}

		// nocache user agents
		$id = Base::O_CACHE_EXC_USERAGENTS;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_NOCACHE_USER_AGENTS . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} ' . Utility::arr2regex( $cfg[ $id ], true );
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:no-cache]';
			$new_rules[] = self::MARKER_NOCACHE_USER_AGENTS . self::MARKER_END;
			$new_rules[] = '';
		}

		// caching php resource
		$id = Base::O_CACHE_RES;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = $new_rules_backend[] = self::MARKER_CACHE_RESOURCE . self::MARKER_START;
			$new_rules[] = $new_rules_backend[] = 'RewriteRule ' . LSCWP_CONTENT_FOLDER . self::RW_PATTERN_RES . ' - [E=cache-control:max-age=3600]';
			$new_rules[] = $new_rules_backend[] = self::MARKER_CACHE_RESOURCE . self::MARKER_END;
			$new_rules[] = $new_rules_backend[] = '';
		}

		// check login cookie
		$id = Base::O_CACHE_LOGIN_COOKIE;

		// Need to keep this due to different behavior of OLS when handling response vary header @Sep/22/2018
		if ( LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS' ) {
			if ( ! empty( $cfg[ $id ] ) ) {
				$cfg[ $id ] .= ',wp-postpass_' . COOKIEHASH;
			}
			else {
				$cfg[ $id ] = 'wp-postpass_' . COOKIEHASH;
			}
		}

		$tp_cookies = apply_filters( 'litespeed_api_vary', array() );
		if ( ! empty( $tp_cookies ) && is_array( $tp_cookies ) ) {
			if ( ! empty( $cfg[ $id ] ) ) {
				$cfg[ $id ] .= ',' . implode( ',', $tp_cookies );
			}
			else {
				$cfg[ $id ] = implode( ',', $tp_cookies );
			}
		}
		// frontend and backend
		if ( ! empty( $cfg[ $id ] ) ) {
			$env = 'Cache-Vary:' . $cfg[ $id ];
			if ( LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS' ) {
				$env = '"' . $env . '"';
			}
			$new_rules[] = $new_rules_backend[] = self::MARKER_LOGIN_COOKIE . self::MARKER_START;
			$new_rules[] = $new_rules_backend[] = 'RewriteRule .? - [E=' . $env . ']';
			$new_rules[] = $new_rules_backend[] = self::MARKER_LOGIN_COOKIE . self::MARKER_END;
			$new_rules[] = '';
		}

		// favicon
		// frontend and backend
		$id = Base::O_CACHE_FAVICON;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = $new_rules_backend[] = self::MARKER_FAVICON . self::MARKER_START;
			$new_rules[] = $new_rules_backend[] = 'RewriteRule favicon\.ico$ - [E=cache-control:max-age=86400]';
			$new_rules[] = $new_rules_backend[] = self::MARKER_FAVICON . self::MARKER_END;
			$new_rules[] = '';
		}

		// CORS font rules
		$id = Base::O_CDN;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_CORS . self::MARKER_START;
			$new_rules = array_merge( $new_rules, $this->_cors_rules() ); //todo: network
			$new_rules[] = self::MARKER_CORS . self::MARKER_END;
			$new_rules[] = '';
		}

		// webp support
		$id = Base::O_IMG_OPTM_WEBP_REPLACE;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_WEBP . self::MARKER_START;
			$new_rules[] = 'RewriteCond %{HTTP_ACCEPT} "image/webp" [or]';
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} "Page Speed"';
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]';
			$new_rules[] = 'RewriteCond %{HTTP_USER_AGENT} iPhone.*Version/(\d{2}).*Safari';
			$new_rules[] = 'RewriteCond %1 >13';
			$new_rules[] = 'RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]';
			$new_rules[] = self::MARKER_WEBP . self::MARKER_END;
			$new_rules[] = '';
		}

		// drop qs support
		$id = Base::O_CACHE_DROP_QS;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules[] = self::MARKER_DROPQS . self::MARKER_START;
			foreach ( $cfg[ $id ] as $v ) {
				$new_rules[] = 'CacheKeyModify -qs:' . $v;
			}
			$new_rules[] = self::MARKER_DROPQS . self::MARKER_END;
			$new_rules[] = '';
		}

		// Browser cache
		$id = Base::O_CACHE_BROWSER;
		if ( ! empty( $cfg[ $id ] ) ) {
			$new_rules_nonls[] = $new_rules_backend_nonls[] = self::MARKER_BROWSER_CACHE . self::MARKER_START;
			$new_rules_nonls = array_merge( $new_rules_nonls, $this->_browser_cache_rules( $cfg ) );
			$new_rules_backend_nonls = array_merge( $new_rules_backend_nonls, $this->_browser_cache_rules( $cfg ) );
			$new_rules_nonls[] = $new_rules_backend_nonls[] = self::MARKER_BROWSER_CACHE . self::MARKER_END;
			$new_rules_nonls[] = '';
		}

		// Network CSS/JS auto generate
		if ( is_multisite() ) {
			$rewrite_base = parse_url( trailingslashit( get_option( 'home' ) ), PHP_URL_PATH );
			$new_rules_nonls[] = self::MARKER_NETWORK_CSSJS_AUTOGEN . self::MARKER_START;
			$new_rules_nonls[] = self::REWRITE_ON;
			$new_rules_nonls[] = 'RewriteCond %{REQUEST_FILENAME} !-f';
			$new_rules_nonls[] = 'RewriteCond %{REQUEST_URI} !^' . $rewrite_base . LSCWP_CONTENT_FOLDER;
			$new_rules_nonls[] = 'RewriteRule ^([_0-9a-zA-Z-]+/)?(' . LSCWP_CONTENT_FOLDER . '/litespeed/cssjs/.*) $2 [L]';
			$new_rules_nonls[] = 'RewriteCond %{REQUEST_FILENAME} !-f';
			$new_rules_nonls[] = 'RewriteCond %{REQUEST_URI} ^' . $rewrite_base . LSCWP_CONTENT_FOLDER . '/litespeed/cssjs/.+\.(css|js)$';
			$new_rules_nonls[] = 'RewriteRule . ' . $rewrite_base . 'index.php [L]';
			$new_rules_nonls[] = self::MARKER_NETWORK_CSSJS_AUTOGEN . self::MARKER_END;
		}

		// Add module wrapper for LiteSpeed rules
		if ( $new_rules ) {
			$new_rules = $this->_wrap_ls_module( $new_rules );
		}

		if ( $new_rules_backend ) {
			$new_rules_backend = $this->_wrap_ls_module( $new_rules_backend );
		}

		return array( $new_rules, $new_rules_backend, $new_rules_nonls, $new_rules_backend_nonls );
	}

	/**
	 * Add LitSpeed module wrapper with rewrite on
	 *
	 * @since  2.1.1
	 * @access private
	 */
	private function _wrap_ls_module( $rules = array() ) {
		return array_merge(
			array( self::LS_MODULE_START ),
			$this->__rewrite_on,
			array( '' ),
			$rules,
			array( self::LS_MODULE_END )
		);
	}

	/**
	 * Insert LitSpeed module wrapper with rewrite on
	 *
	 * @since  2.1.1
	 * @access public
	 */
	public function insert_ls_wrapper() {
		$rules = $this->_wrap_ls_module();
		$this->_insert_wrapper( $rules );
	}

	/**
	 * wrap rules with module on info
	 *
	 * @since  1.1.5
	 * @param  array  $rules
	 * @return array        wrapped rules with module info
	 */
	private function _wrap_do_no_edit( $rules ) {
		// When to clear rules, don't need DONOTEDIT msg
		if ( $rules === false || ! is_array( $rules ) ) {
			return $rules;
		}

		$rules = array_merge(
			array( self::LS_MODULE_DONOTEDIT ),
			$rules,
			array( self::LS_MODULE_DONOTEDIT )
		);

		return $rules;
	}

	/**
	 * Write to htaccess with rules
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _insert_wrapper( $rules = array(), $kind = false, $marker = false ) {
		if ( $kind != 'backend' ) {
			$kind = 'frontend';
		}

		// Default marker is LiteSpeed marker `LSCACHE`
		if ( $marker === false ) {
			$marker = self::MARKER;
		}

		$this->_htaccess_backup( $kind );

		File::insert_with_markers( $this->htaccess_path( $kind ), $this->_wrap_do_no_edit( $rules ), $marker, true );
	}

	/**
	 * Update rewrite rules based on setting
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 1.3
	 * @access public
	 */
	public function update( $cfg ) {
		list( $frontend_rules, $backend_rules, $frontend_rules_nonls, $backend_rules_nonls ) = $this->_generate_rules( $cfg );

		// Check frontend content
		list( $rules, $rules_nonls ) = $this->_extract_rules();

		// Check Non-LiteSpeed rules
		if ( $this->_wrap_do_no_edit( $frontend_rules_nonls ) != $rules_nonls ) {
			Debug2::debug( '[Rules] Update non-ls frontend rules' );
			// Need to update frontend htaccess
			try {
				$this->_insert_wrapper( $frontend_rules_nonls, false, self::MARKER_NONLS );
			} catch ( \Exception $e ) {
				$manual_guide_codes = $this->_rewrite_codes_msg( $this->frontend_htaccess, $frontend_rules_nonls, self::MARKER_NONLS );
				Debug2::debug( '[Rules] Update Failed' );
				throw new \Exception( $manual_guide_codes );
			}
		}

		// Check LiteSpeed rules
		if ( $this->_wrap_do_no_edit( $frontend_rules ) != $rules ) {
			Debug2::debug( '[Rules] Update frontend rules' );
			// Need to update frontend htaccess
			try {
				$this->_insert_wrapper( $frontend_rules );
			} catch ( \Exception $e ) {
				Debug2::debug( '[Rules] Update Failed' );
				$manual_guide_codes = $this->_rewrite_codes_msg( $this->frontend_htaccess, $frontend_rules );
				throw new \Exception( $manual_guide_codes );
			}
		}

		if ( $this->frontend_htaccess !== $this->backend_htaccess ) {
			list( $rules, $rules_nonls ) = $this->_extract_rules( 'backend' );

			// Check Non-LiteSpeed rules for backend
			if ( $this->_wrap_do_no_edit( $backend_rules_nonls ) != $rules_nonls ) {
				Debug2::debug( '[Rules] Update non-ls backend rules' );
				// Need to update frontend htaccess
				try {
					$this->_insert_wrapper( $backend_rules_nonls, 'backend', self::MARKER_NONLS );
				} catch ( \Exception $e ) {
					Debug2::debug( '[Rules] Update Failed' );
					$manual_guide_codes = $this->_rewrite_codes_msg( $this->backend_htaccess, $backend_rules_nonls, self::MARKER_NONLS );
					throw new \Exception( $manual_guide_codes );
				}
			}

			// Check backend content
			if ( $this->_wrap_do_no_edit( $backend_rules ) != $rules ) {
				Debug2::debug( '[Rules] Update backend rules' );
				// Need to update backend htaccess
				try {
					$this->_insert_wrapper( $backend_rules, 'backend' );
				} catch ( \Exception $e ) {
					Debug2::debug( '[Rules] Update Failed' );
					$manual_guide_codes = $this->_rewrite_codes_msg( $this->backend_htaccess, $backend_rules );
					throw new \Exception( $manual_guide_codes );
				}
			}
		}

		return true;
	}

	/**
	 * Get existing rewrite rules
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since  1.3
	 * @access private
	 * @param  string $kind Frontend or backend .htaccess file
	 */
	private function _extract_rules( $kind = 'frontend' ) {
		clearstatcache();
		$path = $this->htaccess_path( $kind );
		if ( ! $this->_readable( $kind ) ) {
			Error::t( 'E_HTA_R' );
		}

		$rules = File::extract_from_markers( $path, self::MARKER );
		$rules_nonls = File::extract_from_markers( $path, self::MARKER_NONLS );

		return array( $rules, $rules_nonls );
	}

	/**
	 * Output the msg with rules plain data for manual insert
	 *
	 * @since  1.1.5
	 * @param  string  $file
	 * @param  array  $rules
	 * @return string        final msg to output
	 */
	private function _rewrite_codes_msg( $file, $rules, $marker = false ) {
		return sprintf( __( '<p>Please add/replace the following codes into the beginning of %1$s:</p> %2$s' , 'litespeed-cache' ),
				$file,
				'<textarea style="width:100%;" rows="10" readonly>' . htmlspecialchars( $this->_wrap_rules_with_marker( $rules, $marker ) ) . '</textarea>'
			);
	}

	/**
	 * Generate rules plain data for manual insert
	 *
	 * @since  1.1.5
	 */
	private function _wrap_rules_with_marker( $rules, $marker = false ) {
		// Default marker is LiteSpeed marker `LSCACHE`
		if ( $marker === false ) {
			$marker = self::MARKER;
		}

		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";
		$new_file_data = implode( "\n", array_merge(
			array( $start_marker ),
			$this->_wrap_do_no_edit($rules),
			array( $end_marker )
		) );

		return $new_file_data;
	}

	/**
	 * Clear the rules file of any changes added by the plugin specifically.
	 *
	 * @since 1.0.4
	 * @access public
	 */
	public function clear_rules() {
		$this->_insert_wrapper( false );// Use false to avoid do-not-edit msg
		// Clear non ls rules
		$this->_insert_wrapper( false, false, self::MARKER_NONLS );

		if ( $this->frontend_htaccess !== $this->backend_htaccess ) {
			$this->_insert_wrapper( false, 'backend' );
			$this->_insert_wrapper( false, 'backend', self::MARKER_NONLS );
		}
	}

	/**
	 * Parses the .htaccess buffer when the admin saves changes in the edit .htaccess page.
	 * Only admin can do this
	 *
	 * @since 1.0.4
	 * @since  2.9 Used exception when saving
	 * @access public
	 */
	public function htaccess_editor_save() {
		if ( ! isset( $_POST[ self::EDITOR_TEXTAREA_NAME ] ) ) {
			return;
		}

		$content = Admin::cleanup_text($_POST[self::EDITOR_TEXTAREA_NAME]);

		try {
			$this->htaccess_save($content);
		} catch( \Exception $e ) {
			Admin_Display::error( $e->getMessage() );
			return;
		}

		Admin_Display::succeed( __( 'File Saved.', 'litespeed-cache' ) );

	}
}

<?php
/**
 * The Crawler Sitemap Class
 *
 * @since      	1.1.0
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Crawler_Map extends Instance {
	const BM_MISS = 1;
	const BM_HIT = 2;
	const BM_BLACKLIST = 4;

	protected static $_instance;
	private $_home_url; // Used to simplify urls
	private $_tb;
	private $__data;
	private $_conf_map_timeout;
	private $_urls = array();

	/**
	 * Instantiate the class
	 *
	 * @since 1.1.0
	 * @access protected
	 */
	protected function __construct() {
		$this->_home_url = get_home_url();
		$this->__data = Data::get_instance();
		$this->_tb = $this->__data->tb( 'crawler' );
		$this->_tb_blacklist = $this->__data->tb( 'crawler_blacklist' );
		$this->_conf_map_timeout = Conf::val( Base::O_CRAWLER_MAP_TIMEOUT );
	}

	/**
	 * Save URLs crawl status into DB
	 *
	 * @since  3.0
	 * @access public
	 */
	public function save_map_status( $list, $curr_crawler ) {
		global $wpdb;
		Utility::compatibility();

		$total_crawler = count( Crawler::get_instance()->list_crawlers() );
		$total_crawler_pos = $total_crawler - 1;

		// Replace current crawler's position
		$curr_crawler = (int) $curr_crawler;
		foreach ( $list as $bit => $ids ) { // $ids = [ id => [ url, code ], ... ]
			if ( ! $ids ) {
				continue;
			}
			Debug2::debug( "🐞🗺️ Update map [crawler] $curr_crawler [bit] $bit [count] " . count( $ids ) );

			// Update res first, then reason
			$right_pos = $total_crawler_pos - $curr_crawler;
			$sql_res = "CONCAT( LEFT( res, $curr_crawler ), '$bit', RIGHT( res, $right_pos ) )";

			$id_all = implode( ',', array_map( 'intval', array_keys( $ids ) ) );

			$wpdb->query( "UPDATE `$this->_tb` SET res = $sql_res WHERE id IN ( $id_all )" );

			// Add blacklist
			if ( $bit == 'B' || $bit == 'N' ) {
				$q = "SELECT a.id, a.url FROM `$this->_tb_blacklist` a LEFT JOIN `$this->_tb` b ON b.url=a.url WHERE b.id IN ( $id_all )";
				$existing = $wpdb->get_results( $q, ARRAY_A );
				// Update current crawler status tag in existing blacklist
				if ( $existing ) {
					$count = $wpdb->query( "UPDATE `$this->_tb_blacklist` SET res = $sql_res WHERE id IN ( " . implode( ',', array_column( $existing, 'id' ) ) . " )" );
					Debug2::debug( '🐞🗺️ Update blacklist [count] ' . $count );
				}

				// Append new blacklist
				if ( count( $ids ) > count( $existing ) ) {
					$new_urls = array_diff( array_column( $ids, 'url' ), array_column( $existing, 'url') );

					Debug2::debug( '🐞🗺️ Insert into blacklist [count] ' . count( $new_urls ) );

					$q = "INSERT INTO `$this->_tb_blacklist` ( url, res, reason ) VALUES " . implode( ',', array_fill( 0, count( $new_urls ), '( %s, %s, %s )' ) );
					$data = array();
					$res = array_fill( 0, $total_crawler, '-' );
					$res[ $curr_crawler ] = $bit;
					$res = implode( '', $res );
					$default_reason = $total_crawler > 1 ? str_repeat( ',', $total_crawler - 1 ) : ''; // Pre-populate default reason value first, update later
					foreach ( $new_urls as $url ) {
						$data[] = $url;
						$data[] = $res;
						$data[] = $default_reason;
					}
					$wpdb->query( $wpdb->prepare( $q, $data ) );
				}
			}

			// Update sitemap reason w/ HTTP code
			$reason_array = array();
			foreach ( $ids as $id => $v2 ) {
				$code = (int)$v2[ 'code' ];
				if ( empty( $reason_array[ $code ] ) ) {
					$reason_array[ $code ] = array();
				}
				$reason_array[ $code ][] = (int)$id;
			}

			foreach ( $reason_array as $code => $v2 ) {
				// Complement comma
				if ( $curr_crawler ) {
					$code = ',' . $code;
				}
				if ( $curr_crawler < $total_crawler_pos ) {
					$code .= ',';
				}

				$count = $wpdb->query( "UPDATE `$this->_tb` SET reason = CONCAT( SUBSTRING_INDEX( reason, ',', $curr_crawler ), '$code', SUBSTRING_INDEX( reason, ',', -$right_pos ) ) WHERE id IN (" . implode( ',', $v2 ) . ")" );

				Debug2::debug( "🐞🗺️ Update map reason [code] $code [pos] left $curr_crawler right -$right_pos [count] $count" );

				// Update blacklist reason
				if ( $bit == 'B' || $bit == 'N' ) {
					$count = $wpdb->query( "UPDATE `$this->_tb_blacklist` a LEFT JOIN `$this->_tb` b ON b.url = a.url SET a.reason = CONCAT( SUBSTRING_INDEX( a.reason, ',', $curr_crawler ), '$code', SUBSTRING_INDEX( a.reason, ',', -$right_pos ) ) WHERE b.id IN (" . implode( ',', $v2 ) . ")" );

					Debug2::debug( "🐞🗺️ Update blacklist [code] $code [pos] left $curr_crawler right -$right_pos [count] $count" );
				}
			}


			// Reset list
			$list[ $bit ] = array();
		}

		return $list;
	}

	/**
	 * Add one record to blacklist
	 * NOTE: $id is sitemap table ID
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_add( $id ) {
		global $wpdb;

		$id = (int)$id;

		// Build res&reason
		$total_crawler = count( Crawler::get_instance()->list_crawlers() );
		$res = str_repeat( 'B', $total_crawler );
		$reason = implode( ',', array_fill( 0, $total_crawler, 'Man' ) );

		$row = $wpdb->get_row( "SELECT a.url, b.id FROM `$this->_tb` a LEFT JOIN `$this->_tb_blacklist` b ON b.url = a.url WHERE a.id = '$id'", ARRAY_A );

		if ( ! $row ) {
			Debug2::debug( '🐞🗺️ blacklist failed to add [id] ' . $id );
			return;
		}

		Debug2::debug( '🐞🗺️ Add to blacklist [url] ' . $row[ 'url' ] );

		$q = "UPDATE `$this->_tb` SET res = %s, reason = %s WHERE id = %d";
		$wpdb->query( $wpdb->prepare( $q, array( $res, $reason, $id ) ) );

		if ( $row[ 'id' ] ) {
			$q = "UPDATE `$this->_tb_blacklist` SET res = %s, reason = %s WHERE id = %d";
			$wpdb->query( $wpdb->prepare( $q, array( $res, $reason, $row[ 'id' ] ) ) );
		}
		else {
			$q = "INSERT INTO `$this->_tb_blacklist` (url, res, reason) VALUES (%s, %s, %s)";
			$wpdb->query( $wpdb->prepare( $q, array( $row[ 'url' ], $res, $reason ) ) );
		}

	}

	/**
	 * Delete one record from blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_del( $id ) {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			return;
		}

		$id = (int)$id;

		Debug2::debug( '🐞🗺️ blacklist delete [id] ' . $id );

		$wpdb->query( "UPDATE `$this->_tb` SET res = REPLACE( REPLACE( res, 'N', '-' ), 'B', '-' ) WHERE url = ( SELECT url FROM `$this->_tb_blacklist` WHERE id = '$id' )" );

		$wpdb->query( "DELETE FROM `$this->_tb_blacklist` WHERE id = '$id'" );
	}

	/**
	 * Empty blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function blacklist_empty() {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			return;
		}

		Debug2::debug( '🐞🗺️ Truncate blacklist' );

		$wpdb->query( "UPDATE `$this->_tb` SET res = REPLACE( REPLACE( res, 'N', '-' ), 'B', '-' )" );

		$wpdb->query( "TRUNCATE `$this->_tb_blacklist`" );
	}

	/**
	 * List blacklist
	 *
	 * @since  3.0
	 * @access public
	 */
	public function list_blacklist( $limit = false, $offset = false ) {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			return array();
		}

		$q = "SELECT * FROM `$this->_tb_blacklist` ORDER BY id DESC";

		if ( $limit !== false ) {
			if ( $offset === false ) {
				$total = $this->count_blacklist();
				$offset = Utility::pagination( $total, $limit, true );
			}
			$q .= " LIMIT %d, %d";
			$q = $wpdb->prepare( $q, $offset, $limit );
		}
		return $wpdb->get_results( $q, ARRAY_A );

	}

	/**
	 * Count blacklist
	 */
	public function count_blacklist() {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb_blacklist`";
		return $wpdb->get_var( $q );
	}

	/**
	 * Empty sitemap
	 *
	 * @since  3.0
	 * @access public
	 */
	public function empty_map() {
		Data::get_instance()->tb_del( 'crawler' );

		$msg = __( 'Sitemap cleaned successfully', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * List generated sitemap
	 *
	 * @since  3.0
	 * @access public
	 */
	public function list_map( $limit, $offset = false ) {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler' ) ) {
			return array();
		}

		if ( $offset === false ) {
			$total = $this->count_map();
			$offset = Utility::pagination( $total, $limit, true );
		}


		$q = "SELECT * FROM `$this->_tb` ORDER BY id LIMIT %d, %d";
		return $wpdb->get_results( $wpdb->prepare( $q, $offset, $limit ), ARRAY_A );

	}

	/**
	 * Count sitemap
	 */
	public function count_map() {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler' ) ) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb`";
		return $wpdb->get_var( $q );
	}

	/**
	 * Generate sitemap
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function gen() {
		$count = $this->_gen();

		if ( ! $count ) {
			Admin_Display::error( __( 'No valid sitemap parsed for crawler.', 'litespeed-cache' ) );
			return;
		}

		$msg = sprintf( __( 'Sitemap created successfully: %d items', 'litespeed-cache' ), $count );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Generate the sitemap
	 *
	 * @since    1.1.0
	 * @access private
	 */
	private function _gen() {
		global $wpdb;

		if ( ! $this->__data->tb_exist( 'crawler' ) ) {
			$this->__data->tb_create( 'crawler' );
		}

		if ( ! $this->__data->tb_exist( 'crawler_blacklist' ) ) {
			$this->__data->tb_create( 'crawler_blacklist' );
		}

		// use custom sitemap
		if ( ! $sitemap = Conf::val( Base::O_CRAWLER_SITEMAP ) ) {
			return false;
		}

		$offset = strlen( $this->_home_url );

		try {
			$this->_parse( $sitemap );
		} catch( \Exception $e ) {
			Debug2::debug( '🐞🗺️ ❌ failed to parse custom sitemap: ' . $e->getMessage() );
		}

		if ( is_array( $this->_urls ) && ! empty( $this->_urls ) ) {
			if ( Conf::val( Base::O_CRAWLER_DROP_DOMAIN ) ) {
				foreach ( $this->_urls as $k => $v ) {
					if ( stripos( $v, $this->_home_url ) !== 0 ) {
						unset( $this->_urls[ $k ] );
						continue;
					}
					$this->_urls[ $k ] = substr( $v, $offset );
				}
			}

			$this->_urls = array_unique( $this->_urls );
		}

		Debug2::debug( '🐞🗺️ Truncate sitemap' );
		$wpdb->query( "TRUNCATE `$this->_tb`" );

		Debug2::debug( '🐞🗺️ Generate sitemap' );

		// Filter URLs in blacklist
		$blacklist = $this->list_blacklist();

		$full_blacklisted = array();
		$partial_blacklisted = array();
		foreach ( $blacklist as $v ) {
			if ( strpos( $v[ 'res' ], '-' ) === false ) { // Full blacklisted
				$full_blacklisted[] = $v[ 'url' ];
			}
			else {
				// Replace existing reason
				$v[ 'reason' ] = explode( ',', $v[ 'reason' ] );
				$v[ 'reason' ] = array_map( function( $element ){ return $element ? 'Existed' : ''; }, $v[ 'reason' ] );
				$v[ 'reason' ] = implode( ',', $v[ 'reason' ] );
				$partial_blacklisted[ $v[ 'url' ] ] = array(
					'res' => $v[ 'res' ],
					'reason' => $v[ 'reason' ],
				);
			}
		}

		// Drop all blacklisted URLs
		$this->_urls = array_diff( $this->_urls, $full_blacklisted );

		// Default res & reason
		$crawler_count = count( Crawler::get_instance()->list_crawlers() );
		$default_res = str_repeat( '-', $crawler_count );
		$default_reason = $crawler_count > 1 ? str_repeat( ',', $crawler_count - 1 ) : '';

		$data = array();
		foreach ( $this->_urls as $url ) {
			$data[] = $url;
			$data[] = array_key_exists( $url, $partial_blacklisted ) ? $partial_blacklisted[ $url ][ 'res' ] : $default_res;
			$data[] = array_key_exists( $url, $partial_blacklisted ) ? $partial_blacklisted[ $url ][ 'reason' ] : $default_reason;
		}

		foreach ( array_chunk( $data, 300 ) as $data2 ) {
			$this->_save( $data2 );
		}

		// Reset crawler
		Crawler::get_instance()->reset_pos();

		return count( $this->_urls );
	}

	/**
	 * Save data to table
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _save( $data, $fields = 'url,res,reason' ) {
		global $wpdb;

		if ( empty( $data ) ) {
			return;
		}

		$q = "INSERT INTO `$this->_tb` ( $fields ) VALUES ";

		// Add placeholder
		$q .= Utility::chunk_placeholder( $data, $fields );

		// Store data
		$wpdb->query( $wpdb->prepare( $q, $data ) );
	}

	/**
	 * Parse custom sitemap and return urls
	 *
	 * @since    1.1.1
	 * @access private
	 */
	private function _parse( $sitemap ) {
		/**
		 * Read via wp func to avoid allow_url_fopen = off
		 * @since  2.2.7
		 */
		$response = wp_remote_get( $sitemap, array( 'timeout' => $this->_conf_map_timeout ) );
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			Debug2::debug( '🐞🗺️ failed to read sitemap: ' . $error_message );

			throw new \Exception( 'Failed to remote read ' . $sitemap );
		}

		$xml_object = simplexml_load_string( $response[ 'body' ] );
		if ( ! $xml_object ) {
			if ( $this->_urls ) {
				return;
			}

			throw new \Exception( 'Failed to parse xml ' . $sitemap );
		}

		// start parsing
		$xml_array = (array) $xml_object;
		if ( ! empty( $xml_array[ 'sitemap' ] ) ) { // parse sitemap set
			if ( is_object( $xml_array[ 'sitemap' ] ) ) {
				$xml_array[ 'sitemap' ] = (array) $xml_array[ 'sitemap' ];
			}
			if ( ! empty( $xml_array[ 'sitemap' ][ 'loc' ] ) ) { // is single sitemap
				$this->_parse( $xml_array[ 'sitemap' ][ 'loc' ] );
			}
			else {
				// parse multiple sitemaps
				foreach ( $xml_array[ 'sitemap' ] as $val ) {
					$val = (array) $val;
					if ( ! empty( $val[ 'loc' ] ) ) {
						$this->_parse( $val[ 'loc' ] ); // recursive parse sitemap
					}
				}
			}
		}
		elseif ( ! empty( $xml_array[ 'url' ] ) ) { // parse url set
			if ( is_object( $xml_array[ 'url' ] ) ) {
				$xml_array[ 'url' ] = (array) $xml_array[ 'url' ];
			}
			// if only 1 element
			if ( ! empty( $xml_array[ 'url' ][ 'loc' ] ) ) {
				$this->_urls[] = $xml_array[ 'url' ][ 'loc' ];
			}
			else {
				foreach ( $xml_array[ 'url' ] as $val ) {
					$val = (array) $val;
					if ( ! empty( $val[ 'loc' ] ) ) {
						$this->_urls[] = $val[ 'loc' ];
					}
				}
			}
		}
	}
}
<?php
/**
* LiteSpeed String Operator Library Class
*
* @since 1.3
*/
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Str {

	/**
	 * Generate random string
	 *
	 * @since  1.3
	 * @access public
	 * @param  int  $len  	 Length of string
	 * @param  int  $type    1-Number 2-LowerChar 4-UpperChar
	 * @return string
	 */
	public static function rrand( $len, $type = 7 ) {
		mt_srand( ( double ) microtime() * 1000000 );

		switch( $type ) {
			case 0 :
				$charlist = '012';
				break;

			case 1 :
				$charlist = '0123456789';
				break;

			case 2 :
				$charlist = 'abcdefghijklmnopqrstuvwxyz';
				break;

			case 3 :
				$charlist = '0123456789abcdefghijklmnopqrstuvwxyz';
				break;

			case 4 :
				$charlist = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 5 :
				$charlist = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 6 :
				$charlist = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

			case 7 :
				$charlist = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
				break;

		}

		$str = '';

		$max = strlen( $charlist ) - 1;
		for( $i = 0; $i < $len; $i++ ) {
			$str .= $charlist[ mt_rand( 0, $max ) ];
		}

		return $str;
	}


}<?php
/**
 * The language class.
 *
 * @since      	3.0
 * @package    	LiteSpeed_Cache
 * @subpackage 	LiteSpeed_Cache/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed ;

defined( 'WPINC' ) || exit ;

class Lang extends Base
{
	/**
	 * Get image status per status bit
	 *
	 * @since  3.0
	 */
	public static function img_status( $status = null )
	{
		$list = array(
			Img_Optm::STATUS_RAW		=> __( 'Images not requested', 'litespeed-cache' ),
			Img_Optm::STATUS_REQUESTED	=> __( 'Images requested', 'litespeed-cache' ),
			Img_Optm::STATUS_NOTIFIED	=> __( 'Images notified to pull', 'litespeed-cache' ),
			Img_Optm::STATUS_PULLED		=> __( 'Images optimized and pulled', 'litespeed-cache' ),
			Img_Optm::STATUS_FAILED		=> __( 'Images failed to pull', 'litespeed-cache' ),
			Img_Optm::STATUS_ERR_FETCH	=> __( 'Images failed to fetch', 'litespeed-cache' ),
			Img_Optm::STATUS_ERR_404	=> __( 'Images failed to fetch', 'litespeed-cache') . ' (404)',
			Img_Optm::STATUS_ERR_OPTM	=> __( 'Images previously optimized', 'litespeed-cache' ),
			Img_Optm::STATUS_ERR			=> __( 'Images failed with other errors', 'litespeed-cache' ),
			Img_Optm::STATUS_MISS		=> __( 'Image files missing', 'litespeed-cache' ),
			Img_Optm::STATUS_DUPLICATED	=> __( 'Duplicate image files ignored', 'litespeed-cache' ),
			Img_Optm::STATUS_XMETA		=> __( 'Images with wrong meta', 'litespeed-cache' ),
		);

		if ( $status !== null ) {
			return ! empty( $list[ $status ] ) ? $list[ $status ] : 'N/A';
		}

		return $list;
	}

	/**
	 * Get the title of id
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function title( $id )
	{
		$_lang_list = array(
			self::O_SERVER_IP					=> __( 'Server IP', 'litespeed-cache' ),
			self::O_API_KEY						=> __( 'Domain Key', 'litespeed-cache' ),

			self::O_CACHE						=> __( 'Enable Cache', 'litespeed-cache' ),
			self::O_CACHE_BROWSER				=> __( 'Browser Cache', 'litespeed-cache' ),
			self::O_CACHE_TTL_PUB				=> __( 'Default Public Cache TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_PRIV				=> __( 'Default Private Cache TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_FRONTPAGE			=> __( 'Default Front Page TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_FEED				=> __( 'Default Feed TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_REST				=> __( 'Default REST TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_STATUS			=> __( 'Default HTTP Status Code Page TTL', 'litespeed-cache' ),
			self::O_CACHE_TTL_BROWSER			=> __( 'Browser Cache TTL', 'litespeed-cache' ),
			self::O_AUTO_UPGRADE				=> __( 'Automatically Upgrade', 'litespeed-cache' ),
			self::O_NEWS						=> __( 'Notifications', 'litespeed-cache' ),
			self::O_CACHE_PRIV					=> __( 'Cache Logged-in Users', 'litespeed-cache' ),
			self::O_CACHE_COMMENTER				=> __( 'Cache Commenters', 'litespeed-cache' ),
			self::O_CACHE_REST					=> __( 'Cache REST API', 'litespeed-cache' ),
			self::O_CACHE_PAGE_LOGIN			=> __( 'Cache Login Page', 'litespeed-cache' ),
			self::O_CACHE_FAVICON				=> __( 'Cache favicon.ico', 'litespeed-cache' ),
			self::O_CACHE_RES					=> __( 'Cache PHP Resources', 'litespeed-cache' ),
			self::O_CACHE_MOBILE				=> __( 'Cache Mobile', 'litespeed-cache' ),
			self::O_CACHE_MOBILE_RULES			=> __( 'List of Mobile User Agents', 'litespeed-cache' ),
			self::O_CACHE_PRIV_URI				=> __( 'Private Cached URIs', 'litespeed-cache' ),
			self::O_CACHE_DROP_QS				=> __( 'Drop Query String', 'litespeed-cache' ),

			self::O_OBJECT						=> __( 'Object Cache', 'litespeed-cache' ),
			self::O_OBJECT_KIND					=> __( 'Method', 'litespeed-cache' ),
			self::O_OBJECT_HOST					=> __( 'Host', 'litespeed-cache' ),
			self::O_OBJECT_PORT					=> __( 'Port', 'litespeed-cache' ),
			self::O_OBJECT_LIFE					=> __( 'Default Object Lifetime', 'litespeed-cache' ),
			self::O_OBJECT_USER					=> __( 'Username', 'litespeed-cache' ),
			self::O_OBJECT_PSWD					=> __( 'Password', 'litespeed-cache' ),
			self::O_OBJECT_DB_ID				=> __( 'Redis Database ID', 'litespeed-cache' ),
			self::O_OBJECT_GLOBAL_GROUPS		=> __( 'Global Groups', 'litespeed-cache' ),
			self::O_OBJECT_NON_PERSISTENT_GROUPS	=> __( 'Do Not Cache Groups', 'litespeed-cache' ),
			self::O_OBJECT_PERSISTENT			=> __( 'Persistent Connection', 'litespeed-cache' ),
			self::O_OBJECT_ADMIN				=> __( 'Cache Wp-Admin', 'litespeed-cache' ),
			self::O_OBJECT_TRANSIENTS			=> __( 'Store Transients', 'litespeed-cache' ),

			self::O_PURGE_ON_UPGRADE			=> __( 'Purge All On Upgrade', 'litespeed-cache' ),
			self::O_PURGE_STALE					=> __( 'Serve Stale', 'litespeed-cache' ),
			self::O_PURGE_TIMED_URLS			=> __( 'Scheduled Purge URLs', 'litespeed-cache' ),
			self::O_PURGE_TIMED_URLS_TIME		=> __( 'Scheduled Purge Time', 'litespeed-cache' ),
			self::O_CACHE_FORCE_URI				=> __( 'Force Cache URIs', 'litespeed-cache' ),
			self::O_CACHE_FORCE_PUB_URI			=> __( 'Force Public Cache URIs', 'litespeed-cache' ),
			self::O_CACHE_EXC					=> __( 'Do Not Cache URIs', 'litespeed-cache' ),
			self::O_CACHE_EXC_QS				=> __( 'Do Not Cache Query Strings', 'litespeed-cache' ),
			self::O_CACHE_EXC_CAT				=> __( 'Do Not Cache Categories', 'litespeed-cache' ),
			self::O_CACHE_EXC_TAG				=> __( 'Do Not Cache Tags', 'litespeed-cache' ),
			self::O_CACHE_EXC_ROLES				=> __( 'Do Not Cache Roles', 'litespeed-cache' ),
			self::O_OPTM_CSS_MIN				=> __( 'CSS Minify', 'litespeed-cache' ),
			self::O_OPTM_CSS_COMB				=> __( 'CSS Combine', 'litespeed-cache' ),
			self::O_OPTM_CSS_COMB_EXT_INL		=> __( 'CSS Combine External and Inline', 'litespeed-cache' ),
			self::O_OPTM_UCSS					=> __( 'Generate UCSS', 'litespeed-cache' ),
			self::O_OPTM_UCSS_ASYNC				=> __( 'Generate UCSS in Background', 'litespeed-cache' ),
			self::O_OPTM_UCSS_WHITELIST			=> __( 'UCSS Whitelist Selector', 'litespeed-cache' ),
			self::O_OPTM_CSS_HTTP2				=> __( 'CSS HTTP/2 Push', 'litespeed-cache' ),
			self::O_OPTM_JS_MIN					=> __( 'JS Minify', 'litespeed-cache' ),
			self::O_OPTM_JS_COMB				=> __( 'JS Combine', 'litespeed-cache' ),
			self::O_OPTM_JS_COMB_EXT_INL		=> __( 'JS Combine External and Inline', 'litespeed-cache' ),
			self::O_OPTM_JS_HTTP2				=> __( 'JS HTTP/2 Push', 'litespeed-cache' ),
			self::O_OPTM_TTL					=> __( 'CSS/JS Cache TTL', 'litespeed-cache' ),
			self::O_OPTM_HTML_MIN				=> __( 'HTML Minify', 'litespeed-cache' ),
			self::O_OPTM_CSS_ASYNC				=> __( 'Load CSS Asynchronously', 'litespeed-cache' ),
			self::O_OPTM_CCSS_GEN				=> __( 'Generate Critical CSS', 'litespeed-cache' ),
			self::O_OPTM_CCSS_ASYNC				=> __( 'Generate Critical CSS In Background', 'litespeed-cache' ),
			self::O_OPTM_CCSS_SEP_POSTTYPE		=> __( 'Separate CCSS Cache Post Types', 'litespeed-cache' ),
			self::O_OPTM_CCSS_SEP_URI			=> __( 'Separate CCSS Cache URIs', 'litespeed-cache' ),
			self::O_OPTM_CSS_ASYNC_INLINE		=> __( 'Inline CSS Async Lib', 'litespeed-cache' ),
			self::O_OPTM_CSS_FONT_DISPLAY		=> __( 'Font Display Optimization', 'litespeed-cache' ),
			self::O_OPTM_JS_DEFER				=> __( 'Load JS Deferred', 'litespeed-cache' ),
			self::O_OPTM_JS_INLINE_DEFER		=> __( 'Load Inline JS', 'litespeed-cache' ),
			self::O_OPTM_LOCALIZE				=> __( 'Localize Resources', 'litespeed-cache' ),
			self::O_OPTM_LOCALIZE_DOMAINS		=> __( 'Localization Files', 'litespeed-cache' ),
			self::O_OPTM_DNS_PREFETCH			=> __( 'DNS Prefetch', 'litespeed-cache' ),
			self::O_OPTM_DNS_PREFETCH_CTRL		=> __( 'DNS Prefetch Control', 'litespeed-cache' ),
			self::O_OPTM_CSS_EXC				=> __( 'CSS Excludes', 'litespeed-cache' ),
			self::O_OPTM_JS_EXC					=> __( 'JS Excludes', 'litespeed-cache' ),
			self::O_OPTM_QS_RM					=> __( 'Remove Query Strings', 'litespeed-cache' ),
			self::O_OPTM_GGFONTS_ASYNC			=> __( 'Load Google Fonts Asynchronously', 'litespeed-cache' ),
			self::O_OPTM_GGFONTS_RM				=> __( 'Remove Google Fonts', 'litespeed-cache' ),
			self::O_OPTM_CCSS_CON				=> __( 'Critical CSS Rules', 'litespeed-cache' ),
			self::O_OPTM_JS_DEFER_EXC			=> __( 'JS Deferred Excludes', 'litespeed-cache' ),
			self::O_OPTM_EMOJI_RM				=> __( 'Remove WordPress Emoji', 'litespeed-cache' ),
			self::O_OPTM_NOSCRIPT_RM			=> __( 'Remove Noscript Tag', 'litespeed-cache' ),
			self::O_OPTM_EXC					=> __( 'URI Excludes', 'litespeed-cache' ),
			self::O_OPTM_EXC_ROLES				=> __( 'Role Excludes', 'litespeed-cache' ),

			self::O_DISCUSS_AVATAR_CACHE		=> __( 'Gravatar Cache', 'litespeed-cache' ),
			self::O_DISCUSS_AVATAR_CRON			=> __( 'Gravatar Cache Cron', 'litespeed-cache' ),
			self::O_DISCUSS_AVATAR_CACHE_TTL	=> __( 'Gravatar Cache TTL', 'litespeed-cache' ),

			self::O_MEDIA_LAZY					=> __( 'Lazy Load Images', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_EXC				=> __( 'Lazy Load Image Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_CLS_EXC			=> __( 'Lazy Load Image Class Name Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_PARENT_CLS_EXC	=> __( 'Lazy Load Image Parent Class Name Excludes', 'litespeed-cache' ),
			self::O_MEDIA_IFRAME_LAZY_CLS_EXC	=> __( 'Lazy Load Iframe Class Name Excludes', 'litespeed-cache' ),
			self::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC	=> __( 'Lazy Load Iframe Parent Class Name Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_URI_EXC			=> __( 'Lazy Load URI Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LQIP_EXC				=> __( 'LQIP Excludes', 'litespeed-cache' ),
			self::O_MEDIA_LAZY_PLACEHOLDER		=> __( 'Basic Image Placeholder', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP		=> __( 'Responsive Placeholder', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP_COLOR	=> __( 'Responsive Placeholder Color', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP_SVG	=> __( 'Responsive Placeholder SVG', 'litespeed-cache' ),
			self::O_MEDIA_LQIP					=> __( 'LQIP Cloud Generator', 'litespeed-cache' ),
			self::O_MEDIA_LQIP_QUAL				=> __( 'LQIP Quality', 'litespeed-cache' ),
			self::O_MEDIA_LQIP_MIN_W			=> __( 'LQIP Minimum Dimensions', 'litespeed-cache' ),
			// self::O_MEDIA_LQIP_MIN_H			=> __( 'LQIP Minimum Height', 'litespeed-cache' ),
			self::O_MEDIA_PLACEHOLDER_RESP_ASYNC	=> __( 'Generate LQIP In Background', 'litespeed-cache' ),
			self::O_MEDIA_IFRAME_LAZY			=> __( 'Lazy Load Iframes', 'litespeed-cache' ),
			self::O_MEDIA_LAZYJS_INLINE			=> __( 'Inline Lazy Load Images Library', 'litespeed-cache' ),
			self::O_IMG_OPTM_AUTO				=> __( 'Auto Request Cron', 'litespeed-cache' ),
			self::O_IMG_OPTM_CRON				=> __( 'Auto Pull Cron', 'litespeed-cache' ),
			self::O_IMG_OPTM_ORI				=> __( 'Optimize Original Images', 'litespeed-cache' ),
			self::O_IMG_OPTM_RM_BKUP			=> __( 'Remove Original Backups', 'litespeed-cache' ),
			self::O_IMG_OPTM_WEBP				=> __( 'Create WebP Versions', 'litespeed-cache' ),
			self::O_IMG_OPTM_LOSSLESS			=> __( 'Optimize Losslessly', 'litespeed-cache' ),
			self::O_IMG_OPTM_EXIF				=> __( 'Preserve EXIF/XMP data', 'litespeed-cache' ),
			self::O_IMG_OPTM_WEBP_ATTR			=> __( 'WebP Attribute To Replace', 'litespeed-cache' ),
			self::O_IMG_OPTM_WEBP_REPLACE_SRCSET	=> __( 'WebP For Extra srcset', 'litespeed-cache' ),
			self::O_IMG_OPTM_JPG_QUALITY		=> __( 'WordPress Image Quality Control', 'litespeed-cache' ),
			self::O_ESI							=> __( 'Enable ESI', 'litespeed-cache' ),
			self::O_ESI_CACHE_ADMBAR			=> __( 'Cache Admin Bar', 'litespeed-cache' ),
			self::O_ESI_CACHE_COMMFORM			=> __( 'Cache Comment Form', 'litespeed-cache' ),
			self::O_ESI_NONCE					=> __( 'ESI Nonces', 'litespeed-cache' ),
			self::O_CACHE_VARY_GROUP			=> __( 'Vary Group', 'litespeed-cache' ),
			self::O_PURGE_HOOK_ALL				=> __( 'Purge All Hooks', 'litespeed-cache' ),
			self::O_UTIL_NO_HTTPS_VARY			=> __( 'Improve HTTP/HTTPS Compatibility', 'litespeed-cache' ),
			self::O_UTIL_INSTANT_CLICK			=> __( 'Instant Click', 'litespeed-cache' ),
			self::O_CACHE_EXC_COOKIES			=> __( 'Do Not Cache Cookies', 'litespeed-cache' ),
			self::O_CACHE_EXC_USERAGENTS		=> __( 'Do Not Cache User Agents', 'litespeed-cache' ),
			self::O_CACHE_LOGIN_COOKIE			=> __( 'Login Cookie', 'litespeed-cache' ),
			self::O_IMG_OPTM_WEBP_REPLACE		=> __( 'Image WebP Replacement', 'litespeed-cache' ),

			self::O_MISC_HTACCESS_FRONT			=> __( 'Frontend .htaccess Path', 'litespeed-cache' ),
			self::O_MISC_HTACCESS_BACK			=> __( 'Backend .htaccess Path', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_FRONT		=> __( 'Frontend Heartbeat Control', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_FRONT_TTL	=> __( 'Frontend Heartbeat TTL', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_BACK			=> __( 'Backend Heartbeat Control', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_BACK_TTL		=> __( 'Backend Heartbeat TTL', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_EDITOR		=> __( 'Editor Heartbeat', 'litespeed-cache' ),
			self::O_MISC_HEARTBEAT_EDITOR_TTL	=> __( 'Editor Heartbeat TTL', 'litespeed-cache' ),

			self::O_CDN_QUIC					=> __( 'QUIC.cloud CDN', 'litespeed-cache' ),
			self::O_CDN 						=> __( 'Use CDN Mapping', 'litespeed-cache' ),
			self::CDN_MAPPING_URL				=> __( 'CDN URL', 'litespeed-cache' ),
			self::CDN_MAPPING_INC_IMG			=> __( 'Include Images', 'litespeed-cache' ),
			self::CDN_MAPPING_INC_CSS			=> __( 'Include CSS', 'litespeed-cache' ),
			self::CDN_MAPPING_INC_JS			=> __( 'Include JS', 'litespeed-cache' ),
			self::CDN_MAPPING_FILETYPE			=> __( 'Include File Types', 'litespeed-cache' ),
			self::O_CDN_ATTR					=> __( 'HTML Attribute To Replace', 'litespeed-cache' ),
			self::O_CDN_ORI						=> __( 'Original URLs', 'litespeed-cache' ),
			self::O_CDN_ORI_DIR					=> __( 'Included Directories', 'litespeed-cache' ),
			self::O_CDN_EXC						=> __( 'Exclude Path', 'litespeed-cache' ),
			self::O_CDN_CLOUDFLARE				=> __( 'Cloudflare API', 'litespeed-cache' ),

			self::O_CRAWLER					=> __( 'Crawler', 'litespeed-cache' ),
			self::O_CRAWLER_USLEEP			=> __( 'Delay', 'litespeed-cache' ),
			self::O_CRAWLER_RUN_DURATION	=> __( 'Run Duration', 'litespeed-cache' ),
			self::O_CRAWLER_RUN_INTERVAL	=> __( 'Interval Between Runs', 'litespeed-cache' ),
			self::O_CRAWLER_CRAWL_INTERVAL	=> __( 'Crawl Interval', 'litespeed-cache' ),
			self::O_CRAWLER_THREADS			=> __( 'Threads', 'litespeed-cache' ),
			self::O_CRAWLER_TIMEOUT			=> __( 'Timeout', 'litespeed-cache' ),
			self::O_CRAWLER_LOAD_LIMIT		=> __( 'Server Load Limit', 'litespeed-cache' ),
			self::O_CRAWLER_ROLES			=> __( 'Role Simulation', 'litespeed-cache' ),
			self::O_CRAWLER_COOKIES			=> __( 'Cookie Simulation', 'litespeed-cache' ),
			self::O_CRAWLER_SITEMAP			=> __( 'Custom Sitemap', 'litespeed-cache' ),
			self::O_CRAWLER_DROP_DOMAIN		=> __( 'Drop Domain from Sitemap', 'litespeed-cache' ),
			self::O_CRAWLER_MAP_TIMEOUT		=> __( 'Sitemap Timeout', 'litespeed-cache' ),

			self::O_DEBUG_DISABLE_ALL			=> __( 'Disable All Features', 'litespeed-cache' ),
			self::O_DEBUG						=> __( 'Debug Log', 'litespeed-cache' ),
			self::O_DEBUG_IPS					=> __( 'Admin IPs', 'litespeed-cache' ),
			self::O_DEBUG_LEVEL					=> __( 'Debug Level', 'litespeed-cache' ),
			self::O_DEBUG_FILESIZE				=> __( 'Log File Size Limit', 'litespeed-cache' ),
			self::O_DEBUG_COOKIE				=> __( 'Log Cookies', 'litespeed-cache' ),
			self::O_DEBUG_COLLAPS_QS			=> __( 'Collapse Query Strings', 'litespeed-cache' ),
			self::O_DEBUG_INC					=> __( 'Debug URI Includes', 'litespeed-cache' ),
			self::O_DEBUG_EXC					=> __( 'Debug URI Excludes', 'litespeed-cache' ),

			self::O_DB_OPTM_REVISIONS_MAX		=> __( 'Revisions Max Number', 'litespeed-cache' ),
			self::O_DB_OPTM_REVISIONS_AGE		=> __( 'Revisions Max Age', 'litespeed-cache' ),

		) ;

		if ( array_key_exists( $id, $_lang_list ) ) {
			return $_lang_list[ $id ] ;
		}

		return 'N/A' ;
	}

}
<?php
/**
 * The optimize class.
 *
 * @since      	1.2.2
 * @since  		1.5 Moved into /inc
 * @package  	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Optimize extends Base {
	protected static $_instance;

	const LIB_FILE_CSS_ASYNC = 'assets/js/css_async.min.js';
	const LIB_FILE_WEBFONTLOADER = 'assets/js/webfontloader.min.js';

	const ITEM_TIMESTAMP_PURGE_CSS = 'timestamp_purge_css';

	private $content;
	private $content_ori;
	private $http2_headers = array();

	private $cfg_http2_css;
	private $cfg_http2_js;
	private $cfg_css_min;
	private $cfg_css_comb;
	private $cfg_js_min;
	private $cfg_js_comb;
	private $cfg_css_async;
	private $cfg_js_defer;
	private $cfg_js_inline_defer;
	private $cfg_js_defer_exc = false;
	private $cfg_ggfonts_async;
	private $_conf_css_font_display;
	private $cfg_ttl;
	private $cfg_ggfonts_rm;

	private $dns_prefetch;
	private $_ggfonts_urls = array();
	private $__data;

	private $html_foot = ''; // The html info append to <body>
	private $html_head = ''; // The html info prepend to <body>

	private static $_var_i = 0;
	private $_var_preserve_js = array();

	/**
	 *
	 * @since  1.2.2
	 * @access protected
	 */
	protected function __construct() {
		$this->__data = Data::get_instance();
	}

	/**
	 * Init optimizer
	 *
	 * @since  3.0
	 * @access protected
	 */
	public function init() {
		$this->cfg_css_async = Conf::val( Base::O_OPTM_CSS_ASYNC );
		if ( $this->cfg_css_async && ! Conf::val( Base::O_API_KEY ) ) {
			Debug2::debug( '[Optm] ❌ CCSS set to OFF due to lack of domain key' );
			$this->cfg_css_async = false;
		}
		$this->cfg_js_defer = Conf::val( Base::O_OPTM_JS_DEFER );
		$this->cfg_js_inline_defer = Conf::val( Base::O_OPTM_JS_INLINE_DEFER );

		if ( ! Router::can_optm() ) {
			return;
		}

		// To remove emoji from WP
		if ( Conf::val( Base::O_OPTM_EMOJI_RM ) ) {
			$this->_emoji_rm();
		}

		if ( Conf::val( Base::O_OPTM_QS_RM ) ) {
			add_filter( 'style_loader_src', array( $this, 'remove_query_strings' ), 999 );
			add_filter( 'script_loader_src', array( $this, 'remove_query_strings' ), 999 );
		}

		/**
		 * Exclude js from deferred setting
		 * @since 1.5
		 */
		if ( $this->cfg_js_defer || $this->cfg_js_inline_defer ) {
			add_filter( 'litespeed_optm_js_defer_exc', array( $this->__data, 'load_js_defer_exc' ) );
			$this->cfg_js_defer_exc = apply_filters( 'litespeed_optm_js_defer_exc', Conf::val( Base::O_OPTM_JS_DEFER_EXC ) );
		}

		/**
		 * Add vary filter for Role Excludes
		 * @since  1.6
		 */
		add_filter( 'litespeed_vary', array( $this, 'vary_add_role_exclude' ) );

		/**
		 * Prefetch DNS
		 * @since 1.7.1
		 */
		$this->_dns_prefetch_init();
	}

	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6
	 * @access public
	 */
	public function vary_add_role_exclude( $vary ) {
		if ( Conf::get_instance()->in_optm_exc_roles() ) {
			$vary[ 'role_exclude_optm' ] = 1;
		}

		return $vary;
	}

	/**
	 * Remove emoji from WP
	 *
	 * @since  1.4
	 * @since  2.9.8 Changed to private
	 * @access private
	 */
	private function _emoji_rm() {
		remove_action( 'wp_head' , 'print_emoji_detection_script', 7 );
		remove_action( 'admin_print_scripts' , 'print_emoji_detection_script' );
		remove_filter( 'the_content_feed' , 'wp_staticize_emoji' );
		remove_filter( 'comment_text_rss' , 'wp_staticize_emoji' );
		/**
		 * Added for better result
		 * @since  1.6.2.1
		 */
		remove_action( 'wp_print_styles', 'print_emoji_styles' );
		remove_action( 'admin_print_styles', 'print_emoji_styles' );
		remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
	}

	/**
	 * Check if the request is for static file
	 *
	 * @since  1.2.2
	 * @since  3.0 Renamed func. Changed access to public
	 * @access public
	 */
	public function serve_satic( $uri ) {
		$this->cfg_css_min = Conf::val( Base::O_OPTM_CSS_MIN );
		$this->cfg_css_comb = Conf::val( Base::O_OPTM_CSS_COMB );
		$this->cfg_js_min = Conf::val( Base::O_OPTM_JS_MIN );
		$this->cfg_js_comb = Conf::val( Base::O_OPTM_JS_COMB );
		$this->cfg_ttl = Conf::val( Base::O_OPTM_TTL );

		// If not turn on min files
		if ( ! $this->cfg_css_min && ! $this->cfg_css_comb && ! $this->cfg_js_min && ! $this->cfg_js_comb ) {
			return;
		}

		// try to match `xx.css`
		if ( ! preg_match( '#^(\w+)\.(css|js)#U', $uri, $match ) ) {
			return;
		}

		Debug2::debug( '[Optm] start minifying file' );

		// Proceed css/js file generation
		define( 'LITESPEED_MIN_FILE', true );

		$file_type = $match[ 2 ];

		$static_file = LITESPEED_STATIC_DIR . '/cssjs/' . $match[ 0 ];

		// Even if hit PHP, still check if the file is valid to bypass minify process
		if ( ! file_exists( $static_file ) || time() - filemtime( $static_file ) > $this->cfg_ttl ) {
			$concat_only = ! ( $file_type === 'css' ? $this->cfg_css_min : $this->cfg_js_min );

			$res = Optimizer::get_instance()->serve( $match[ 0 ], $concat_only );

			if ( ! $res ) {
				Debug2::debug( '[Optm] Static file generation bypassed due to empty' );
				return;
			}
		}
		else {
			// Load file from file based cache if not expired
			Debug2::debug2( '[Optm] Static file available' );
		}

		$url = LITESPEED_STATIC_URL . '/cssjs/' . $match[ 0 ];

		Debug2::debug( '[Optm] Redirect to ' . $url );

		wp_redirect( $url );
		exit;
	}

	/**
	 * Delete file-based cache folder
	 *
	 * @since  2.1
	 * @access public
	 */
	public function rm_cache_folder() {
		if ( file_exists( LITESPEED_STATIC_DIR . '/cssjs' ) ) {
			File::rrmdir( LITESPEED_STATIC_DIR . '/cssjs' );
		}
	}

	/**
	 * Remove QS
	 *
	 * @since  1.3
	 * @access public
	 */
	public function remove_query_strings( $src ) {
		if ( strpos( $src, '_litespeed_rm_qs=0' ) || strpos( $src, '/recaptcha' ) ) {
			return $src;
		}

		if ( strpos( $src, '.js?' ) !== false || strpos( $src, '.css?' ) !== false ) {
			$src = preg_replace( '/\?.*/', '', $src );
		}

		return $src;
	}

	/**
	 * Check if need db table or not
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function need_db() {
		if ( Conf::val( Base::O_OPTM_CSS_MIN ) ) {
			return true;
		}

		if ( Conf::val( Base::O_OPTM_CSS_COMB ) ) {
			return true;
		}

		if ( Conf::val( Base::O_OPTM_JS_MIN ) ) {
			return true;
		}

		if ( Conf::val( Base::O_OPTM_JS_COMB ) ) {
			return true;
		}

		return false;
	}

	/**
	 * Run optimize process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * @since  1.2.2
	 * @access public
	 * @return  string The content that is after optimization
	 */
	public static function finalize( $content ) {
		if ( defined( 'LITESPEED_MIN_FILE' ) ) {// Must have this to avoid css/js from optimization again ( But can be removed as mini file doesn't have LITESPEED_IS_HTML, keep for efficiency)
			return $content;
		}

		if ( ! defined( 'LITESPEED_IS_HTML' ) ) {
			Debug2::debug( '[Optm] bypass: Not frontend HTML type' );
			return $content;
		}

		// Check if hit URI excludes
		$excludes = Conf::val( Base::O_OPTM_EXC );
		if ( ! empty( $excludes ) ) {
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes );
			if ( $result ) {
				Debug2::debug( '[Optm] bypass: hit URI Excludes setting: ' . $result );
				return $content;
			}
		}

		// Check if is exclude optm roles ( Need to set Vary too )
		if ( $result = Conf::get_instance()->in_optm_exc_roles() ) {
			Debug2::debug( '[Optm] bypass: hit Role Excludes setting: ' . $result );
			return $content;
		}


		Debug2::debug( '[Optm] start' );

		$instance = self::get_instance();
		$instance->content_ori = $instance->content = $content;

		$instance->_optimize();
		return $instance->content;
	}

	/**
	 * Optimize css src
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _optimize() {
		$this->cfg_http2_css = Conf::val( Base::O_OPTM_CSS_HTTP2 );
		$this->cfg_http2_js = Conf::val( Base::O_OPTM_JS_HTTP2 );
		$this->cfg_css_min = Conf::val( Base::O_OPTM_CSS_MIN );
		$this->cfg_css_comb = Conf::val( Base::O_OPTM_CSS_COMB );
		$this->cfg_js_min = Conf::val( Base::O_OPTM_JS_MIN );
		$this->cfg_js_comb = Conf::val( Base::O_OPTM_JS_COMB );
		$this->cfg_ggfonts_async = Conf::val( Base::O_OPTM_GGFONTS_ASYNC );
		$this->_conf_css_font_display = Conf::val( Base::O_OPTM_CSS_FONT_DISPLAY );
		if ( ! empty( Base::$CSS_FONT_DISPLAY_SET[ $this->_conf_css_font_display ] ) ) {
			$this->_conf_css_font_display = Base::$CSS_FONT_DISPLAY_SET[ $this->_conf_css_font_display ];
		}

		$this->cfg_ttl = Conf::val( Base::O_OPTM_TTL );
		$this->cfg_ggfonts_rm = Conf::val( Base::O_OPTM_GGFONTS_RM );

		if ( ! Router::can_optm() ) {
			Debug2::debug( '[Optm] bypass: admin/feed/preview' );
			return;
		}

		do_action( 'litespeed_optm' );

		// Parse css from content
		if ( $this->cfg_css_min || $this->cfg_css_comb || $this->cfg_http2_css || $this->cfg_ggfonts_rm || $this->cfg_css_async || $this->cfg_ggfonts_async  || $this->_conf_css_font_display ) {
			add_filter( 'litespeed_optimize_css_excludes', array( $this->__data, 'load_css_exc' ) );
			list( $src_list, $html_list ) = $this->_parse_css();
		}

		// css optimizer
		if ( $this->cfg_css_min || $this->cfg_css_comb || $this->cfg_http2_css ) {

			if ( $src_list ) {
				// IF combine
				if ( $this->cfg_css_comb ) {
					$url = $this->_build_hash_url( $src_list );
					// Handle css async load
					if ( $this->cfg_css_async ) {
						$this->html_head .= '<link rel="preload" data-asynced="1" data-optimized="2" as="style" onload="this.onload=null;this.rel=\'stylesheet\'" href="' . $url . '" />'; // todo: How to use " in attr wrapper "
					}
					else {
						$this->html_head .= '<link data-optimized="2" rel="stylesheet" href="' . $url . '" />';// use 2 as combined
					}

					// Move all css to top
					$this->content = str_replace( $html_list, '', $this->content );

					// Add to HTTP2
					$this->append_http2( $url );

				}
				// Only minify
				elseif ( $this->cfg_css_min ) {
					// will handle async css load inside
					$this->_src_queue_handler( $src_list, $html_list );
				}
				// Only HTTP2 push
				else {
					foreach ( $src_list as $src_info ) {
						if ( ! empty( $src_info[ 'inl' ] ) ) {
							continue;
						}
						$this->append_http2( $src_info[ 'src' ] );
					}
				}
			}
		}

		// Handle css lazy load if not handled async loaded yet
		if ( $this->cfg_css_async && ! $this->cfg_css_min && ! $this->cfg_css_comb ) {
			// async html
			$html_list_async = $this->_async_css_list( $html_list, $src_list );

			// Replace async css
			$this->content = str_replace( $html_list, $html_list_async, $this->content );

		}

		// Parse js from buffer as needed
		if ( $this->cfg_js_min || $this->cfg_js_comb || $this->cfg_http2_js || $this->cfg_js_defer || $this->cfg_js_inline_defer ) {
			add_filter( 'litespeed_optimize_js_excludes', array( $this->__data, 'load_js_exc' ) );
			list( $src_list, $html_list ) = $this->_parse_js();
		}

		// js optimizer
		if ( $this->cfg_js_min || $this->cfg_js_comb || $this->cfg_http2_js ) {

			if ( $src_list ) {
				// IF combine
				if ( $this->cfg_js_comb ) {
					$url = $this->_build_hash_url( $src_list, 'js' );
					$this->html_foot .= '<script data-optimized="1" src="' . $url . '" ' . ( $this->cfg_js_defer ? 'defer' : '' ) . '></script>';

					// Add to HTTP2
					$this->append_http2( $url, 'js' );

					// Will move all JS to bottom combined one
					$this->content = str_replace( $html_list, '', $this->content );

				}
				// Only minify
				elseif ( $this->cfg_js_min ) {
					// Will handle js defer inside
					$this->_src_queue_handler( $src_list, $html_list, 'js' );
				}
				// Only HTTP2 push
				else {
					foreach ( $src_list as $src_info ) {
						if ( ! empty( $src_info[ 'inl' ] ) ) {
							continue;
						}
						$this->append_http2( $src_info[ 'src' ], 'js' );
					}
				}
			}
		}

		// Handle js defer if not handled defer yet
		if ( $this->cfg_js_defer && ! $this->cfg_js_min && ! $this->cfg_js_comb ) {
			// defer html
			$html_list2 = $this->_js_defer_list( $html_list, $src_list );

			// Replace async js
			$this->content = str_replace( $html_list, $html_list2, $this->content );
		}

		// Handle Inline JS defer if not combined
		if ( $this->cfg_js_inline_defer && ! $this->cfg_js_comb ) {
			$this->_js_inline_defer_handler( $src_list, $html_list );
		}

		// Append JS inline var for preserved ESI
		if ( $this->_var_preserve_js ) {
			$this->html_head .= '<script>var ' . implode( ',', $this->_var_preserve_js ) . ';</script>';
			Debug2::debug2( '[Optm] Inline JS defer vars', $this->_var_preserve_js );
		}

		// Append async compatibility lib to head
		if ( $this->cfg_css_async ) {
			// Inline css async lib
			if ( Conf::val( Base::O_OPTM_CSS_ASYNC_INLINE ) ) {
				$this->html_head .= '<script id="litespeed-css-async-lib">' . File::read( LSCWP_DIR . self::LIB_FILE_CSS_ASYNC ) . '</script>';
			}
			else {
				$css_async_lib_url = LSWCP_PLUGIN_URL . self::LIB_FILE_CSS_ASYNC;
				$this->html_head .= '<script id="litespeed-css-async-lib" src="' . $css_async_lib_url . '" ' . ( $this->cfg_js_defer ? 'defer' : '' ) . '></script>';// Don't exclude it from defer for now
				$this->append_http2( $css_async_lib_url, 'js' ); // async lib will be http/2 pushed always
			}
		}

		/**
		 * Handle google fonts async
		 * This will result in a JS snippet in head, so need to put it in the end to avoid being replaced by JS parser
		 */
		$this->_async_ggfonts();

		/**
		 * Font display optm
		 * @since  3.0
		 */
		$this->_font_optm();

		/**
		 * Localize GG/FB JS/Fonts
		 * @since  3.3
		 */
		$this->content = Localization::get_instance()->finalize( $this->content );

		// Check if there is any critical css rules setting
		if ( $this->cfg_css_async ) {
			$this->html_head = CSS::prepend_ccss( $this->html_head );
		}

		// Replace html head part
		$this->html_head = apply_filters( 'litespeed_optm_html_head', $this->html_head );
		if ( $this->html_head ) {
			// Put header content to be after charset
			if ( strpos( $this->content, '<meta charset' ) !== false ) {
				$this->content = preg_replace( '#<meta charset([^>]*)>#isU', '<meta charset$1>' . $this->html_head , $this->content, 1 );
			}
			else {
				$this->content = preg_replace( '#<head([^>]*)>#isU', '<head$1>' . $this->html_head , $this->content, 1 );
			}
		}

		// Replace html foot part
		$this->html_foot = apply_filters( 'litespeed_optm_html_foot', $this->html_foot );
		if ( $this->html_foot ) {
			$this->content = str_replace( '</body>', $this->html_foot . '</body>' , $this->content );
		}

		// Drop noscript if enabled
		if ( Conf::val( Base::O_OPTM_NOSCRIPT_RM ) ) {
			// $this->content = preg_replace( '#<noscript>.*</noscript>#isU', '', $this->content );
		}

		// HTML minify
		if ( Conf::val( Base::O_OPTM_HTML_MIN ) ) {
			$this->content = Optimizer::get_instance()->html_min( $this->content );
		}

		if ( $this->http2_headers ) {
			@header( 'Link: ' . implode( ',', $this->http2_headers ), false );
		}

	}

	/**
	 * Google font async
	 *
	 * @since 2.7.3
	 * @access private
	 */
	private function _async_ggfonts() {
		if ( ! $this->cfg_ggfonts_async || ! $this->_ggfonts_urls ) {
			return;
		}

		Debug2::debug2( '[Optm] google fonts async found: ', $this->_ggfonts_urls );

		$html = '<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin />';

		/**
		 * Append fonts
		 *
		 * Could be multiple fonts
		 *
		 * 	<link rel='stylesheet' href='//fonts.googleapis.com/css?family=Open+Sans%3A400%2C600%2C700%2C800%2C300&#038;ver=4.9.8' type='text/css' media='all' />
		 *	<link rel='stylesheet' href='//fonts.googleapis.com/css?family=PT+Sans%3A400%2C700%7CPT+Sans+Narrow%3A400%7CMontserrat%3A600&#038;subset=latin&#038;ver=4.9.8' type='text/css' media='all' />
		 *		-> family: PT Sans:400,700|PT Sans Narrow:400|Montserrat:600
		 *	<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,300,300italic,400italic,600,700,900&#038;subset=latin%2Clatin-ext' />
		 */
		$html .='<script>WebFontConfig={google:{families:[';

		$families = array();
		foreach ( $this->_ggfonts_urls as $v ) {
			$qs = wp_specialchars_decode( $v );
			$qs = urldecode( $qs );
			$qs = parse_url( $qs, PHP_URL_QUERY );
			parse_str( $qs, $qs );

			if ( empty( $qs[ 'family' ] ) ) {
				Debug2::debug( '[Optm] ERR ggfonts failed to find family: ' . $v );
				continue;
			}

			$subset = empty( $qs[ 'subset' ] ) ? '' : ':' . $qs[ 'subset' ];

			foreach ( array_filter( explode( '|', $qs[ 'family' ] ) ) as $v2 ) {
				$families[] = $v2 . $subset;
			}

		}

		$html .= '"' . implode( '","', $families ) . ( $this->_conf_css_font_display ? '&display=' . $this->_conf_css_font_display : '' ) . '"';

		$html .= ']}};';

		// if webfontloader lib was loaded before WebFontConfig variable, call WebFont.load
		$html .= 'if ( typeof WebFont === "object" && typeof WebFont.load === "function" ) { WebFont.load( WebFontConfig ); }';

		$html .= '</script>';

		// https://cdnjs.cloudflare.com/ajax/libs/webfont/1.6.28/webfontloader.js
		$webfont_lib_url = LSWCP_PLUGIN_URL . self::LIB_FILE_WEBFONTLOADER;

		// default async, if js defer set use defer
		// TODO: make defer optional
		$html .= '<script id="litespeed-webfont-lib" src="' . $webfont_lib_url . '" ' . ( $this->cfg_js_defer ? 'defer' : 'async' ) . '></script>';
		$this->append_http2( $webfont_lib_url, 'js' ); // async lib will be http/2 pushed always

		// Put this in the very beginning for preconnect
		$this->html_head = $html . $this->html_head;
	}

	/**
	 * Font optm
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _font_optm() {
		if ( ! $this->_conf_css_font_display || ! $this->_ggfonts_urls ) {
			return;
		}

		Debug2::debug2( '[Optm] google fonts optm ', $this->_ggfonts_urls );

		foreach ( $this->_ggfonts_urls as $v ) {
			if ( strpos( $v, 'display=' ) ) {
				continue;
			}
			$this->html_head = str_replace( $v, $v . '&#038;display=' . $this->_conf_css_font_display, $this->html_head );
			$this->html_foot = str_replace( $v, $v . '&#038;display=' . $this->_conf_css_font_display, $this->html_foot );
			$this->content = str_replace( $v, $v . '&#038;display=' . $this->_conf_css_font_display, $this->content );
		}
	}

	/**
	 * Prefetch DNS
	 *
	 * @since 1.7.1
	 * @access private
	 */
	private function _dns_prefetch_init() {
		// Widely enable link DNS prefetch
		if ( Conf::val( Base::O_OPTM_DNS_PREFETCH_CTRL ) ) {
			add_filter( 'litespeed_optm_html_head', array( $this, 'dns_prefetch_xmeta' ), 999 );
		}

		$this->dns_prefetch = Conf::val( Base::O_OPTM_DNS_PREFETCH );
		if ( ! $this->dns_prefetch ) {
			return;
		}

		if ( function_exists( 'wp_resource_hints' ) ) {
			add_filter( 'wp_resource_hints', array( $this, 'dns_prefetch_filter' ), 10, 2 );
		}
		else {
			add_action( 'litespeed_optm', array( $this, 'dns_prefetch_output' ) );
		}
	}

	/**
	 * Append wide prefetch DNS meta
	 *
	 * @since 3.0
	 * @access public
	 */
	public function dns_prefetch_xmeta( $content ) {
		$content .= '<meta http-equiv="x-dns-prefetch-control" content="on">';
		return $content;
	}

	/**
	 * Prefetch DNS hook for WP
	 *
	 * @since 1.7.1
	 * @access public
	 */
	public function dns_prefetch_filter( $urls, $relation_type ) {
		if ( $relation_type !== 'dns-prefetch' ) {
			return $urls;
		}

		foreach ( $this->dns_prefetch as $v ) {
			if ( $v ) {
				$urls[] = $v;
			}
		}

		return $urls;
	}

	/**
	 * Prefetch DNS
	 *
	 * @since 1.7.1
	 * @access public
	 */
	public function dns_prefetch_output() {
		foreach ( $this->dns_prefetch as $v ) {
			if ( $v ) {
				$this->html_head .= '<link rel="dns-prefetch" href="' . $v . '" />';
			}
		}
	}

	/**
	 * Run minify with src queue list
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _src_queue_handler( $src_list, $html_list, $file_type = 'css' ) {
		$html_list_ori = $html_list;

		$tag = $file_type == 'css' ? 'link' : 'script';
		foreach ( $src_list as $key => $src_info ) {
			// Minify inline CSS/JS
			if ( ! empty( $src_info[ 'inl' ] ) ) {
				if ( $file_type == 'css' ) {
					$code = Optimizer::minify_css( $src_info[ 'src' ] );
				}
				else {
					$code = Optimizer::minify_js( $src_info[ 'src' ] );
				}
				$snippet = str_replace( $src_info[ 'src' ], $code, $html_list[ $key ] );
			}
			else {
				$url = $this->_build_hash_url( $src_info[ 'src' ], $file_type );
				$snippet = str_replace( $src_info[ 'src' ], $url, $html_list[ $key ] );

				// Handle css async load
				if ( $file_type == 'css' && $this->cfg_css_async ) {
					$snippet = $this->_async_css( $snippet );
				}

				// Handle js defer
				if ( $file_type === 'js' && $this->cfg_js_defer ) {
					$snippet = $this->_js_defer( $snippet, $src_info[ 'src' ] );
				}

				// Add to HTTP2
				$this->append_http2( $url, $file_type );
			}

			$snippet = str_replace( "<$tag ", '<' . $tag . ' data-optimized="1" ', $snippet );
			$html_list[ $key ] = $snippet;
		}

		$this->content = str_replace( $html_list_ori, $html_list, $this->content );
	}

	/**
	 * Generate full URL path with hash for a list of src
	 *
	 * @since  1.2.2
	 * @access private
	 * @return string The final URL
	 */
	private function _build_hash_url( $src, $file_type = 'css', $url_sensitive = false ) {
		// $url_sensitive = Conf::val( Base::O_OPTM_CSS_UNIQUE ) && $file_type == 'css'; // If need to keep unique CSS per URI
		global $wp;
		$request_url = home_url( $wp->request );

		if ( ! is_array( $src ) ) {
			$src = array( $src );
		}

		// Replace preserved ESI (before generating hash)
		if ( $file_type == 'js' ) {
			foreach ( $src as $k => $v ) {
				if ( empty( $v[ 'inl' ] ) ) {
					continue;
				}
				if ( ! empty( $v[ 'src' ] ) ) {
					$src[ $k ][ 'src' ] = $this->_preserve_esi( $v[ 'src' ] );
				}
			}
		}

		// Query string hash
		$qs_hash = substr( md5( json_encode( $src ) . self::get_option( self::ITEM_TIMESTAMP_PURGE_CSS ) ), -5 );

		// Drop query strings
		foreach ( $src as $k => $v ) {
			if ( ! empty( $v[ 'inl' ] ) ) {
				continue;
			}
			if ( ! empty( $v[ 'src' ] ) ) {
				$src[ $k ][ 'src' ] = $this->remove_query_strings( $v[ 'src' ] ); // CSS/JS combine
			}
			else {
				$src[ $k ] = $this->remove_query_strings( $v );
			}
		}

		// $src = array_values( $src );
		$hash = md5( json_encode( $src ) );
		$filename = substr( $hash, -5 ) . '.' . $file_type;

		// Need to check conflicts
		// If short hash exists
		$existed = false;
		if ( $optm_data = $this->__data->optm_hash2src( $filename ) ) {
			// If conflicts
			if ( $optm_data[ 'src' ] === $src && ( ! $url_sensitive || $optm_data[ 'refer' ] === $request_url ) ) {
				$existed = true;
			}
			else {
				$filename = $hash . '.' . $file_type;
			}
		}

		// Need to insert the record
		if ( ! $existed ) {
			$this->__data->optm_save_src( $filename, $src, $request_url );
		}

		// Generate static files
		$static_file = LITESPEED_STATIC_DIR . "/cssjs/$filename";
		// Check if the file is valid to bypass minify process
		if ( ! file_exists( $static_file ) || time() - filemtime( $static_file ) > $this->cfg_ttl ) {
			$concat_only = ! ( $file_type === 'css' ? $this->cfg_css_min : $this->cfg_js_min );

			Optimizer::get_instance()->serve( $filename, $concat_only, $src, $request_url );
		}

		return LITESPEED_STATIC_URL . '/cssjs/' . $filename . '?' . $qs_hash;
	}

	/**
	 * Parse js src
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function _parse_js() {
		$excludes = apply_filters( 'litespeed_optimize_js_excludes', Conf::val( Base::O_OPTM_JS_EXC ) );

		$combine_ext_inl = Conf::val( Base::O_OPTM_JS_COMB_EXT_INL );

		$src_list = array();
		$html_list = array();

		$content = preg_replace( '#<!--.*-->#sU', '', $this->content );
		preg_match_all( '#<script([^>]*)>(.*)</script>#isU', $content, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs = empty( $match[ 1 ] ) ? array() : Utility::parse_attr( $match[ 1 ] );

			if ( isset( $attrs[ 'data-optimized' ] ) ) {
				continue;
			}
			if ( ! empty( $attrs[ 'data-no-optimize' ] ) ) {
				continue;
			}
			if ( ! empty( $attrs[ 'type' ] ) && $attrs[ 'type' ] != 'text/javascript' ) {
				continue;
			}

			// to avoid multiple replacement
			if ( in_array( $match[ 0 ], $html_list ) ) {
				continue;
			}

			$this_src_arr = array();
			// JS files
			if ( ! empty( $attrs[ 'src' ] ) ) {
				// Exclude check
				$js_excluded = $excludes ? Utility::str_hit_array( $attrs[ 'src' ], $excludes ) : false;
				$is_internal = Utility::is_internal_file( $attrs[ 'src' ] );
				$is_file = substr( $attrs[ 'src' ], 0, 5 ) != 'data:';
				$ext_excluded = ! $combine_ext_inl && ! $is_internal;
				if ( $js_excluded || $ext_excluded || ! $is_file ) {
					// Maybe defer
					if ( $this->cfg_js_defer ) {
						$deferred = $this->_js_defer( $match[ 0 ], $attrs[ 'src' ] );
						if ( $deferred != $match[ 0 ] ) {
							$this->content = str_replace( $match[ 0 ], $deferred, $this->content );
						}
					}

					if ( $is_internal ) {
						$this->append_http2( $attrs[ 'src' ], 'js' );
					}

					Debug2::debug2( '[Optm] _parse_js bypassed due to ' . ( $js_excluded ? 'js files excluded [hit] ' . $js_excluded : 'external js' ) );
					continue;
				}

				if ( strpos( $attrs[ 'src' ], '/localres/' ) !== false ) {
					if ( $is_internal ) {
						$this->append_http2( $attrs[ 'src' ], 'js' );
					}
					continue;
				}

				if ( strpos( $attrs[ 'src' ], 'instant_click' ) !== false ) {
					if ( $is_internal ) {
						$this->append_http2( $attrs[ 'src' ], 'js' );
					}
					continue;
				}

				$this_src_arr[ 'src' ] = $attrs[ 'src' ];
			}
			// Inline JS
			elseif ( ! empty( $match[ 2 ] ) ) {
				// Debug2::debug( '🌹🌹🌹 ' . $match[2] . '🌹' );
				// Exclude check
				$js_excluded = $excludes ? Utility::str_hit_array( $match[ 2 ], $excludes ) : false;
				if ( $js_excluded || ! $combine_ext_inl ) {
					// Maybe defer
					if ( $this->cfg_js_inline_defer ) {
						$deferred = $this->_js_inline_defer( $match[ 2 ], $match[ 1 ] );
						if ( $deferred ) {
							$this->content = str_replace( $match[ 0 ], $deferred, $this->content );
						}
					}
					Debug2::debug2( '[Optm] _parse_js bypassed due to ' . ( $js_excluded ? 'js excluded [hit] ' . $js_excluded : 'inline js' ) );
					continue;
				}

				$this_src_arr[ 'inl' ] = true;
				$this_src_arr[ 'src' ] = $match[ 2 ];
				if ( $match[ 1 ] ) {
					$this_src_arr[ 'attrs' ] = $match[ 1 ];
				}
			}

			$src_list[] = $this_src_arr;
			$html_list[] = $match[ 0 ];
		}

		return array( $src_list, $html_list );
	}

	/**
	 * Handle inline JS defer if no combined
	 *
	 * @since  3.5
	 */
	private function _js_inline_defer_handler( $src_list, $html_list ) {
		foreach ( $src_list as $k => $src_info ) {
			if ( empty( $src_info[ 'inl' ] ) ) {
				continue;
			}

			$attrs = ! empty( $src_info[ 'attrs' ] ) ? $src_info[ 'attrs' ] : '';
			$deferred = $this->_js_inline_defer( $src_info[ 'src' ], $attrs );
			if ( $deferred ) {
				$this->content = str_replace( $html_list[ $k ], $deferred, $this->content );
			}
		}
	}

	/**
	 * Inline JS defer
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _js_inline_defer( $con, $attrs ) {
		if ( strpos( $attrs, 'data-no-defer' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr api data-no-defer' );
			return;
		}

		if ( $this->cfg_js_defer_exc ) {
			$hit = Utility::str_hit_array( $con, $this->cfg_js_defer_exc );
			if ( $hit ) {
				Debug2::debug2( '[Optm] inline js defer excluded [setting] ' . $hit );
				return;
			}
		}

		$con = trim( $con );
		// Minify JS first
		$con = Optimizer::minify_js( $con );

		if ( ! $con ) {
			return;
		}

		if ( $this->cfg_js_inline_defer === 2 ) {
			// Check if the content contains ESI nonce or not
			$con = $this->_preserve_esi( $con );
			return '<script' . $attrs . ' src="data:text/javascript;base64,' . base64_encode( $con ) . '" defer></script>';
		}
		else {
			// Prevent var scope issue
			if ( strpos( $con, 'var ' ) !== false && strpos( $con, '{' ) === false ) {
				return;
			}

			if ( strpos( $con, 'var ' ) !== false && strpos( $con, '{' ) !== false && strpos( $con, '{' ) > strpos( $con, 'var ' ) ) {
				return;
			}

			if ( strpos( $con, 'document.addEventListener' ) !== false ) {
				return;
			}

			// $con = str_replace( 'var ', 'window.', $con );

			return '<script' . $attrs . '>document.addEventListener("DOMContentLoaded",function(){' . $con . '});</script>';
		}
	}

	/**
	 * Replace ESI to JS inline var (mainly used to avoid nonce timeout)
	 *
	 * @since  3.5.1
	 */
	private function _preserve_esi( $con ) {
		$esi_placeholder_list = ESI::get_instance()->contain_preserve_esi( $con );
		if ( ! $esi_placeholder_list ) {
			return $con;
		}

		foreach ( $esi_placeholder_list as $esi_placeholder ) {
			$js_var = '__litespeed_var_' . ( self::$_var_i ++ ) . '__';
			$con = str_replace( $esi_placeholder, $js_var, $con );
			$this->_var_preserve_js[] = $js_var . '=' . $esi_placeholder;
		}
		return $con;
	}

	/**
	 * Parse css src and remove to-be-removed css
	 *
	 * @since  1.2.2
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_css() {
		$excludes = apply_filters( 'litespeed_optimize_css_excludes', Conf::val( Base::O_OPTM_CSS_EXC ) );

		$combine_ext_inl = Conf::val( Base::O_OPTM_CSS_COMB_EXT_INL );

		$css_to_be_removed = apply_filters( 'litespeed_optm_css_to_be_removed', array() );

		$src_list = array();
		$html_list = array();

		// $dom = new \PHPHtmlParser\Dom;
		// $dom->load( $content );return $val;
		// $items = $dom->find( 'link' );

		$content = preg_replace( array( '#<!--.*-->#sU', '#<script([^>]*)>.*</script>#isU', '#<noscript([^>]*)>.*</noscript>#isU' ), '', $this->content );
		preg_match_all( '#<link ([^>]+)/?>|<style([^>]*)>([^<]+)</style>#isU', $content, $matches, PREG_SET_ORDER );

		foreach ( $matches as $match ) {
			// to avoid multiple replacement
			if ( in_array( $match[ 0 ], $html_list ) ) {
				continue;
			}

			if ( $excludes && $exclude = Utility::str_hit_array( $match[ 0 ], $excludes ) ) {
				Debug2::debug2( '[Optm] _parse_css bypassed exclude ' . $exclude );
				continue;
			}

			$this_src_arr = array();
			if ( strpos( $match[ 0 ], '<link' ) === 0 ) {
				$attrs = Utility::parse_attr( $match[ 1 ] );
				if ( empty( $attrs[ 'rel' ] ) || $attrs[ 'rel' ] !== 'stylesheet' ) {
					continue;
				}
				if ( empty( $attrs[ 'href' ] ) ) {
					continue;
				}

				// Check if need to remove this css
				if ( $css_to_be_removed && Utility::str_hit_array( $attrs[ 'href' ], $css_to_be_removed ) ) {
					Debug2::debug( '[Optm] rm css snippet ' . $attrs[ 'href' ] );
					// Delete this css snippet from orig html
					$this->content = str_replace( $match[ 0 ], '', $this->content );

					continue;
				}

				// Check Google fonts hit
				if ( strpos( $attrs[ 'href' ], 'fonts.googleapis.com' ) !== false ) {
					/**
					 * For async gg fonts, will add webfont into head, hence remove it from buffer and store the matches to use later
					 * @since  2.7.3
					 * @since  3.0 For fotn display optm, need to parse google fonts URL too
					 */
					if ( ! in_array( $attrs[ 'href' ], $this->_ggfonts_urls ) ) {
						$this->_ggfonts_urls[] = $attrs[ 'href' ];
					}

					if ( $this->cfg_ggfonts_rm || $this->cfg_ggfonts_async ) {
						Debug2::debug2( '[Optm] rm css snippet [Google fonts] ' . $attrs[ 'href' ] );
						$this->content = str_replace( $match[ 0 ], '', $this->content );

						continue;
					}
				}

				if ( isset( $attrs[ 'data-optimized' ] ) ) {
					// $this_src_arr[ 'exc' ] = true;
					continue;
				}
				elseif ( ! empty( $attrs[ 'data-no-optimize' ] ) ) {
					// $this_src_arr[ 'exc' ] = true;
					continue;
				}

				$is_internal = Utility::is_internal_file( $attrs[ 'href' ] );
				$ext_excluded = ! $combine_ext_inl && ! $is_internal;
				if ( $ext_excluded ) {
					Debug2::debug2( '[Optm] Bypassed due to external link' );
					// Maybe defer
					if ( $this->cfg_css_async ) {
						$snippet = $this->_async_css( $match[ 0 ] );
						if ( $snippet != $match[ 0 ] ) {
							$this->content = str_replace( $match[ 0 ], $snippet, $this->content );
						}
					}

					continue;
				}

				if ( ! empty( $attrs[ 'media' ] ) && $attrs[ 'media' ] !== 'all' ) {
					$this_src_arr[ 'media' ] = $attrs[ 'media' ];
				}

				$this_src_arr[ 'src' ] = $attrs[ 'href' ];
			}
			else { // Inline style
				if ( ! $combine_ext_inl ) {
					Debug2::debug2( '[Optm] Bypassed due to inline' );
					continue;
				}

				$attrs = Utility::parse_attr( $match[ 2 ] );

				if ( ! empty( $attrs[ 'media' ] ) && $attrs[ 'media' ] !== 'all' ) {
					$this_src_arr[ 'media' ] = $attrs[ 'media' ];
				}

				$this_src_arr[ 'inl' ] = true;
				$this_src_arr[ 'src' ] = $match[ 3 ];
			}

			$src_list[] = $this_src_arr;

			$html_list[] = $match[ 0 ];
		}

		return array( $src_list, $html_list );
	}

	/**
	 * Replace css to async loaded css
	 *
	 * @since  1.3
	 * @access private
	 */
	private function _async_css_list( $html_list, $src_list ) {
		foreach ( $html_list as $k => $ori ) {
			if ( ! empty( $src_list[ $k ][ 'inl' ] ) ) {
				continue;
			}

			$html_list[ $k ] = $this->_async_css( $ori );
		}
		return $html_list;
	}

	/**
	 * Async CSS snippet
	 * @since 3.5
	 */
	private function _async_css( $ori ) {
		if ( strpos( $ori, 'data-asynced' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr data-asynced exist' );
			return $ori;
		}

		if ( strpos( $ori, 'data-no-async' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr api data-no-async' );
			return $ori;
		}

		// async replacement
		$v = str_replace( 'stylesheet', 'preload', $ori );
		$v = str_replace( '<link', '<link data-asynced="1" as="style" onload="this.onload=null;this.rel=\'stylesheet\'" ', $v );
		// Append to noscript content
		if ( ! Conf::val( Base::O_OPTM_NOSCRIPT_RM ) ) {
			$v .= '<noscript>' . $ori . '</noscript>';
		}

		return $v;
	}

	/**
	 * Add defer to JS
	 *
	 * @since  1.3
	 * @access private
	 */
	private function _js_defer_list( $html_list, $src_list ) {
		foreach ( $html_list as $k => $v ) {
			if ( ! empty( $src_list[ $k ][ 'inl' ] ) ) {
				continue;
			}

			$html_list[ $k ] = $this->_js_defer( $v, $src_list[ $k ][ 'src' ] );
		}

		return $html_list;
	}

	/**
	 * Defer JS snippet
	 *
	 * @since  3.5
	 */
	private function _js_defer( $ori, $src ) {
		if ( strpos( $ori, 'async' ) !== false ) {
			return $ori;
		}
		if ( strpos( $ori, 'defer' ) !== false ) {
			return $ori;
		}
		if ( strpos( $ori, 'data-deferred' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr data-deferred exist' );
			return $ori;
		}
		if ( strpos( $ori, 'data-no-defer' ) !== false ) {
			Debug2::debug2( '[Optm] bypass: attr api data-no-defer' );
			return $ori;
		}

		/**
		 * Exclude JS from setting
		 * @since 1.5
		 */
		if ( $this->cfg_js_defer_exc && Utility::str_hit_array( $src, $this->cfg_js_defer_exc ) ) {
			Debug2::debug( '[Optm] js defer exclude ' . $src );
			return $ori;
		}

		$v = str_replace( '></script>', ' defer data-deferred="1"></script>', $ori );
		return $v;
	}

	/**
	 * Append to HTTP2 header
	 *
	 * @since  1.2.2
	 * @access private
	 */
	private function append_http2( $url, $file_type = 'css' ) {
		if ( ! ( $file_type === 'css' ? $this->cfg_http2_css : $this->cfg_http2_js ) ) {
			return;
		}

		/**
		 * For CDN enabled ones, bypass http/2 push
		 * @since  1.6.2.1
		 */
		if ( CDN::inc_type( $file_type ) ) {
			return;
		}

		/**
		 * Keep QS for constance by set 2nd param to true
		 * @since  1.6.2.1
		 */
		$uri = Utility::url2uri( $url, true );

		if ( ! $uri ) {
			return;
		}

		$this->http2_headers[] = '<' . $uri . '>; rel=preload; as=' . ( $file_type === 'css' ? 'style' : 'script' );
	}

}
<?php
/**
 * The plugin cache-control class for X-Litespeed-Cache-Control
 *
 * @since      	1.1.3
 * @since  		1.5 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Control extends Instance {
	protected static $_instance;

	const BM_CACHEABLE = 1;
	const BM_PRIVATE = 2;
	const BM_SHARED = 4;
	const BM_NO_VARY = 8;
	const BM_FORCED_CACHEABLE = 32;
	const BM_PUBLIC_FORCED = 64;
	const BM_STALE = 128;
	const BM_NOTCACHEABLE = 256;

	const X_HEADER = 'X-LiteSpeed-Cache-Control';

	protected static $_control = 0;
	protected static $_custom_ttl = 0;

	private $_response_header_ttls = array();

	/**
	 * Init cache control
	 *
	 * @since  1.6.2
	 * @access protected
	 */
	protected function __construct() {
		/**
		 * Add vary filter for Role Excludes
		 * @since  1.6.2
		 */
		add_filter( 'litespeed_vary', array( $this, 'vary_add_role_exclude' ) );

		// 301 redirect hook
		add_filter( 'wp_redirect', array( $this, 'check_redirect' ), 10, 2 );

		// Load response header conf
		$this->_response_header_ttls = Conf::val( Base::O_CACHE_TTL_STATUS );
		foreach ( $this->_response_header_ttls as $k => $v ) {
			$v = explode( ' ', $v );
			if ( empty( $v[ 0 ] ) || empty( $v[ 1 ] ) ) {
				continue;
			}
			$this->_response_header_ttls[ $v[ 0 ] ] = $v[ 1 ];
		}

		if ( Conf::val( Base::O_PURGE_STALE ) ) {
			self::set_stale();
		}
	}

	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function vary_add_role_exclude( $vary ) {
		if ( $this->in_cache_exc_roles() ) {
			$vary[ 'role_exclude_cache' ] = 1;
		}

		return $vary;
	}

	/**
	 * Check if one user role is in exclude cache group settings
	 *
	 * @since 1.6.2
	 * @since 3.0 Moved here from conf.cls
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_cache_exc_roles( $role = null ) {
		// Get user role
		if ( $role === null ) {
			$role = Router::get_role();
		}

		if ( ! $role ) {
			return false;
		}

		return in_array( $role, Conf::val( Base::O_CACHE_EXC_ROLES ) ) ? $role : false;
	}

	/**
	 * 1. Initialize cacheable status for `wp` hook
	 * 2. Hook error page tags for cacheable pages
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function init_cacheable() {
		// Hook `wp` to mark default cacheable status
		// NOTE: Any process that does NOT run into `wp` hook will not get cacheable by default
		add_action( 'wp', __CLASS__ . '::set_cacheable', 5 );

		// Hook WP REST to be cacheable
		if ( Conf::val( Base::O_CACHE_REST ) ) {
			add_action( 'rest_api_init', __CLASS__ . '::set_cacheable', 5 );
		}

		// Cache resources
		// NOTE: If any strange resource doesn't use normal WP logic `wp_loaded` hook, rewrite rule can handle it
		$cache_res = Conf::val( Base::O_CACHE_RES );
		if ( $cache_res ) {
			$uri = esc_url( $_SERVER["REQUEST_URI"] );// todo: check if need esc_url()
			$pattern = '!' . LSCWP_CONTENT_FOLDER . Htaccess::RW_PATTERN_RES . '!';
			if ( preg_match( $pattern, $uri ) ) {
				add_action( 'wp_loaded', __CLASS__ . '::set_cacheable', 5 );
			}
		}

		// Check error page
		add_filter( 'status_header', array( self::get_instance(), 'check_error_codes' ), 10, 2 );
	}


	/**
	 * Check if the page returns any error code.
	 *
	 * @since 1.0.13.1
	 * @access public
	 * @param $status_header
	 * @param $code
	 * @return $eror_status
	 */
	public function check_error_codes( $status_header, $code ) {
		if ( array_key_exists( $code, $this->_response_header_ttls ) ) {
			if ( self::is_cacheable() && ! $this->_response_header_ttls[ $code ] ) {
				self::set_nocache( '[Ctrl] TTL is set to no cache [status_header] ' . $code );
			}

			// Set TTL
			self::set_custom_ttl( $this->_response_header_ttls[ $code ] );
		}

		// Set cache tag
		Tag::add( Tag::TYPE_HTTP . $code );

		// Give the default status_header back
		return $status_header;
	}

	/**
	 * Set no vary setting
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function set_no_vary() {
		if ( self::is_no_vary() ) {
			return;
		}
		self::$_control |= self::BM_NO_VARY;
		Debug2::debug( '[Ctrl] X Cache_control -> no-vary', 3 );
	}

	/**
	 * Get no vary setting
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_no_vary() {
		return self::$_control & self::BM_NO_VARY;
	}

	/**
	 * Set stale
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function set_stale() {
		if ( self::is_stale() ) {
			return;
		}
		self::$_control |= self::BM_STALE;
		Debug2::debug('[Ctrl] X Cache_control -> stale');
	}

	/**
	 * Get stale
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_stale() {
		return self::$_control & self::BM_STALE;
	}

	/**
	 * Set cache control to shared private
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_shared( $reason = false ) {
		if ( self::is_shared() ) {
			return;
		}
		self::$_control |= self::BM_SHARED;
		self::set_private();

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}
		Debug2::debug( '[Ctrl] X Cache_control -> shared ' . $reason );
	}

	/**
	 * Check if is shared private
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_shared() {
		return (self::$_control & self::BM_SHARED) && self::is_private();
	}

	/**
	 * Set cache control to forced public
	 *
	 * @access public
	 * @since 1.7.1
	 */
	public static function set_public_forced( $reason = false ) {
		if ( self::is_public_forced() ) {
			return;
		}
		self::$_control |= self::BM_PUBLIC_FORCED;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}
		Debug2::debug( '[Ctrl] X Cache_control -> public forced ' . $reason );
	}

	/**
	 * Check if is public forced
	 *
	 * @access public
	 * @since 1.7.1
	 */
	public static function is_public_forced() {
		return self::$_control & self::BM_PUBLIC_FORCED;
	}

	/**
	 * Set cache control to private
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_private( $reason = false ) {
		if ( self::is_private() ) {
			return;
		}
		self::$_control |= self::BM_PRIVATE;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}
		Debug2::debug( '[Ctrl] X Cache_control -> private ' . $reason );
	}

	/**
	 * Check if is private
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function is_private() {
		return self::$_control & self::BM_PRIVATE && ! self::is_public_forced();
	}

	/**
	 * Initialize cacheable status in `wp` hook, if not call this, by default it will be non-cacheable
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function set_cacheable( $reason = false ) {
		self::$_control |= self::BM_CACHEABLE;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = ' [reason] ' . $reason;
		}
		Debug2::debug( '[Ctrl] X Cache_control init on' . $reason );
	}

	/**
	 * This will disable non-cacheable BM
	 *
	 * @access public
	 * @since 2.2
	 */
	public static function force_cacheable( $reason = false ) {
		self::$_control |= self::BM_FORCED_CACHEABLE;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = ' [reason] ' . $reason;
		}
		Debug2::debug( '[Ctrl] Forced cacheable' . $reason );
	}

	/**
	 * Switch to nocacheable status
	 *
	 * @access public
	 * @since 1.1.3
	 * @param string $reason The reason to no cache
	 */
	public static function set_nocache( $reason = false ) {
		self::$_control |= self::BM_NOTCACHEABLE;

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}
		Debug2::debug( '[Ctrl] X Cache_control -> no Cache ' . $reason, 2 );
	}

	/**
	 * Check current notcacheable bit set
	 *
	 * @access public
	 * @since 1.1.3
	 * @return bool True if notcacheable bit is set, otherwise false.
	 */
	public static function isset_notcacheable() {
		return self::$_control & self::BM_NOTCACHEABLE;
	}

	/**
	 * Check current force cacheable bit set
	 *
	 * @access public
	 * @since 	2.2
	 */
	public static function is_forced_cacheable() {
		return self::$_control & self::BM_FORCED_CACHEABLE;
	}

	/**
	 * Check current cacheable status
	 *
	 * @access public
	 * @since 1.1.3
	 * @return bool True if is still cacheable, otherwise false.
	 */
	public static function is_cacheable() {
		// If its forced public cacheable
		if ( self::is_public_forced() ) {
			return true;
		}

		// If its forced cacheable
		if ( self::is_forced_cacheable() ) {
			return true;
		}

		return ! self::isset_notcacheable() && self::$_control & self::BM_CACHEABLE;
	}

	/**
	 * Set a custom TTL to use with the request if needed.
	 *
	 * @access public
	 * @since 1.1.3
	 * @param mixed $ttl An integer or string to use as the TTL. Must be numeric.
	 */
	public static function set_custom_ttl( $ttl, $reason = false ) {
		if ( is_numeric( $ttl ) ) {
			self::$_custom_ttl = $ttl;
			Debug2::debug( '[Ctrl] X Cache_control TTL -> ' . $ttl . ( $reason ? ' [reason] ' . $ttl : '' ) );
		}
	}

	/**
	 * Generate final TTL.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function get_ttl() {
		if ( self::$_custom_ttl != 0 ) {
			return self::$_custom_ttl;
		}

		// Check if is in timed url list or not
		$timed_urls = Utility::wildcard2regex( Conf::val( Base::O_PURGE_TIMED_URLS ) );
		$timed_urls_time = Conf::val( Base::O_PURGE_TIMED_URLS_TIME );
		if ( $timed_urls && $timed_urls_time ) {
			$current_url = Tag::build_uri_tag( true );
			// Use time limit ttl
			$scheduled_time = strtotime( $timed_urls_time );
			$ttl = $scheduled_time - time();
			if ( $ttl < 0 ) {
				$ttl += 86400;// add one day
			}
			foreach ( $timed_urls as $v ) {
				if ( strpos( $v, '*' ) !== false ) {
					if( preg_match( '#' . $v . '#iU', $current_url ) ) {
						Debug2::debug( '[Ctrl] X Cache_control TTL is limited to ' . $ttl . ' due to scheduled purge regex ' . $v );
						return $ttl;
					}
				}
				else {
					if ( $v == $current_url ) {
						Debug2::debug( '[Ctrl] X Cache_control TTL is limited to ' . $ttl . ' due to scheduled purge rule ' . $v );
						return $ttl;
					}
				}
			}
		}

		// Private cache uses private ttl setting
		if ( self::is_private() ) {
			return Conf::val( Base::O_CACHE_TTL_PRIV );
		}

		if ( is_front_page() ){
			return Conf::val( Base::O_CACHE_TTL_FRONTPAGE );
		}

		$feed_ttl = Conf::val( Base::O_CACHE_TTL_FEED );
		if ( is_feed() && $feed_ttl > 0 ) {
			return $feed_ttl;
		}

		if ( REST::get_instance()->is_rest() || REST::get_instance()->is_internal_rest() ) {
			return Conf::val( Base::O_CACHE_TTL_REST );
		}

		return Conf::val( Base::O_CACHE_TTL_PUB );
	}

	/**
	 * Check if need to set no cache status for redirection or not
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function check_redirect( $location, $status ) { // TODO: some env don't have SCRIPT_URI but only REQUEST_URI, need to be compatible
		if ( ! empty( $_SERVER[ 'SCRIPT_URI' ] ) ) { // dont check $status == '301' anymore
			Debug2::debug( "[Ctrl] 301 from " . $_SERVER[ 'SCRIPT_URI' ] );
			Debug2::debug( "[Ctrl] 301 to $location" );

			$to_check = array(
				PHP_URL_SCHEME,
				PHP_URL_HOST,
				PHP_URL_PATH,
			);

			$is_same_redirect = true;

			foreach ( $to_check as $v ) {
				if ( parse_url( $_SERVER[ 'SCRIPT_URI' ], $v ) != parse_url( $location, $v ) ) {
					$is_same_redirect = false;
					Debug2::debug( "[Ctrl] 301 different redirection" );
					break;
				}
			}

			if ( $is_same_redirect ) {
				self::set_nocache( '301 to same url' );
			}
		}

		return $location;
	}

	/**
	 * Sets up the Cache Control header.
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string empty string if empty, otherwise the cache control header.
	 */
	public static function output() {
		$esi_hdr = '';
		// Fix cli `uninstall --deactivate` fatal err
		if ( ESI::has_esi() ) {
			$esi_hdr = ',esi=on';
		}

		$hdr = self::X_HEADER . ': ';

		if ( ! self::is_cacheable() ) {
			$hdr .= 'no-cache' . $esi_hdr;
			return $hdr;
		}

		if ( self::is_shared() ) {
			$hdr .= 'shared,private';
		}
		elseif ( self::is_private() ) {
			$hdr .= 'private';
		}
		else {
			$hdr .= 'public';
		}

		if ( self::is_no_vary() ) {
			$hdr .= ',no-vary';
		}

		$hdr .= ',max-age=' . self::get_ttl() . $esi_hdr;
		return $hdr;
	}

	/**
	 * Generate all `control` tags before output
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function finalize() {
		// Check if URI is forced public cache
		$excludes = Conf::val( Base::O_CACHE_FORCE_PUB_URI );
		if ( ! empty( $excludes ) ) {
			list( $result, $this_ttl ) =  Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes, true );
			if ( $result ) {
				self::set_public_forced( 'Setting: ' . $result );
				Debug2::debug( '[Ctrl] Forced public cacheable due to setting: ' . $result );
				if ( $this_ttl ) {
					self::set_custom_ttl( $this_ttl );
				}
			}
		}

		if ( self::is_public_forced() ) {
			return;
		}

		// Check if URI is forced cache
		$excludes = Conf::val( Base::O_CACHE_FORCE_URI );
		if ( ! empty( $excludes ) ) {
			list( $result, $this_ttl ) =  Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes, true );
			if ( $result ) {
				self::force_cacheable();
				Debug2::debug( '[Ctrl] Forced cacheable due to setting: ' . $result );
				if ( $this_ttl ) {
					self::set_custom_ttl( $this_ttl );
				}
			}
		}

		// if is not cacheable, terminate check
		// Even no need to run 3rd party hook
		if ( ! self::is_cacheable() ) {
			Debug2::debug( '[Ctrl] not cacheable before ctrl finalize' );
			return;
		}

		if ( defined('LSCACHE_NO_CACHE') && LSCACHE_NO_CACHE ) {
			self::set_nocache('LSCACHE_NO_CACHE constant defined');
			return;
		}

		$instance = self::get_instance();

		// Apply 3rd party filter
		// NOTE: Hook always needs to run asap because some 3rd party set is_mobile in this hook
		do_action('litespeed_control_finalize', defined( 'LSCACHE_IS_ESI' ) ? LSCACHE_IS_ESI : false ); // Pass ESI block id

		// if is not cacheable, terminate check
		if ( ! self::is_cacheable() ) {
			Debug2::debug( '[Ctrl] not cacheable after api_control' );
			return;
		}

		if ( is_preview() ) {
			self::set_nocache( 'preview page' );
			return;
		}

		// Check litespeed setting to set cacheable status
		if ( ! $instance->_setting_cacheable() ) {
			self::set_nocache();
			return;
		}

		// If user has password cookie, do not cache (moved from vary)
		global $post;
		if ( ! empty($post->post_password) && isset($_COOKIE['wp-postpass_' . COOKIEHASH]) ) {
			// If user has password cookie, do not cache
			self::set_nocache('pswd cookie');
			return;
		}

		// The following check to the end is ONLY for mobile
		$is_mobile = apply_filters( 'litespeed_is_mobile', false );
		if ( ! Conf::val( Base::O_CACHE_MOBILE ) ) {
			if ( $is_mobile ) {
				self::set_nocache( 'mobile' );
			}
			return;
		}

		$env_vary = isset( $_SERVER[ 'LSCACHE_VARY_VALUE' ] ) ? $_SERVER[ 'LSCACHE_VARY_VALUE' ] : false;
		if ( ! $env_vary ) {
			$env_vary = isset( $_SERVER[ 'HTTP_X_LSCACHE_VARY_VALUE' ] ) ? $_SERVER[ 'HTTP_X_LSCACHE_VARY_VALUE' ] : false;
		}
		if ( $env_vary && strpos( $env_vary, 'ismobile' ) !== false ) {
			if ( ! wp_is_mobile() && ! $is_mobile ) {
				self::set_nocache( 'is not mobile' );
				return;
			}
		}
		elseif ( wp_is_mobile() || $is_mobile ) {
			self::set_nocache( 'is mobile' );
			return;
		}

	}

	/**
	 * Check if is mobile for filter `litespeed_is_mobile` in API
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function is_mobile() {
		return wp_is_mobile();
	}

	/**
	 * Check if a page is cacheable based on litespeed setting.
	 *
	 * @since 1.0.0
	 * @access private
	 * @return boolean True if cacheable, false otherwise.
	 */
	private function _setting_cacheable() {
		// logged_in users already excluded, no hook added

		if( ! empty( $_REQUEST[ Router::ACTION ] ) ) {
			return $this->_no_cache_for( 'Query String Action' );
		}

		if ( $_SERVER["REQUEST_METHOD"] !== 'GET' ) {
			return $this->_no_cache_for('not GET method:' . $_SERVER["REQUEST_METHOD"]);
		}

		if ( is_feed() && Conf::val( Base::O_CACHE_TTL_FEED ) == 0 ) {
			return $this->_no_cache_for('feed');
		}

		if ( is_trackback() ) {
			return $this->_no_cache_for('trackback');
		}

		if ( is_search() ) {
			return $this->_no_cache_for('search');
		}

//		if ( !defined('WP_USE_THEMES') || !WP_USE_THEMES ) {
//			return $this->_no_cache_for('no theme used');
//		}

		// Check private cache URI setting
		$excludes = Conf::val( Base::O_CACHE_PRIV_URI );
		if ( ! empty( $excludes ) ) {
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes );
			if ( $result ) {
				self::set_private( 'Admin cfg Private Cached URI: ' . $result );
			}
		}

		if ( ! self::is_forced_cacheable() ) {

			// Check if URI is excluded from cache
			$excludes = Conf::val( Base::O_CACHE_EXC );
			if ( ! empty( $excludes ) ) {
				$result =  Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes );
				if ( $result ) {
					return $this->_no_cache_for( 'Admin configured URI Do not cache: ' . $result );
				}
			}

			// Check QS excluded setting
			$excludes = Conf::val( Base::O_CACHE_EXC_QS );
			if ( ! empty( $excludes ) && $qs = $this->_is_qs_excluded( $excludes ) ) {
				return $this->_no_cache_for( 'Admin configured QS Do not cache: ' . $qs );
			}

			$excludes = Conf::val( Base::O_CACHE_EXC_CAT );
			if ( ! empty( $excludes ) && has_category( $excludes ) ) {
				return $this->_no_cache_for( 'Admin configured Category Do not cache.' );
			}

			$excludes = Conf::val( Base::O_CACHE_EXC_TAG );
			if ( ! empty( $excludes ) && has_tag( $excludes ) ) {
				return $this->_no_cache_for( 'Admin configured Tag Do not cache.' );
			}

			$excludes = Conf::val( Base::O_CACHE_EXC_COOKIES );
			if ( ! empty( $excludes ) && ! empty( $_COOKIE ) ) {
				$cookie_hit = array_intersect( array_keys( $_COOKIE ), $excludes );
				if ( $cookie_hit ) {
					return $this->_no_cache_for( 'Admin configured Cookie Do not cache.' );
				}
			}

			$excludes = Conf::val( Base::O_CACHE_EXC_USERAGENTS );
			if ( ! empty( $excludes ) && isset( $_SERVER[ 'HTTP_USER_AGENT' ] ) ) {
				$nummatches = preg_match( Utility::arr2regex( $excludes ), $_SERVER[ 'HTTP_USER_AGENT' ] );
				if ( $nummatches ) {
						return $this->_no_cache_for('Admin configured User Agent Do not cache.');
				}
			}

			// Check if is exclude roles ( Need to set Vary too )
			if ( $result = $this->in_cache_exc_roles() ) {
				return $this->_no_cache_for( 'Role Excludes setting ' . $result );
			}
		}

		return true;
	}

	/**
	 * Write a debug message for if a page is not cacheable.
	 *
	 * @since 1.0.0
	 * @access private
	 * @param string $reason An explanation for why the page is not cacheable.
	 * @return boolean Return false.
	 */
	private function _no_cache_for( $reason ) {
		Debug2::debug('[Ctrl] X Cache_control off - ' . $reason);
		return false;
	}

	/**
	 * Check if current request has qs excluded setting
	 *
	 * @since  1.3
	 * @access private
	 * @param  array  $excludes QS excludes setting
	 * @return boolean|string False if not excluded, otherwise the hit qs list
	 */
	private function _is_qs_excluded( $excludes ) {
		if ( ! empty( $_GET ) && $intersect = array_intersect( array_keys( $_GET ), $excludes ) ) {
			return implode( ',', $intersect );
		}
		return false;
	}

}<?php
/**
 * The REST related class.
 *
 * @since      	2.9.4
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class REST extends Instance {
	protected static $_instance;

	private $_internal_rest_status = false;

	/**
	 * Confructor of ESI
	 *
	 * @since    2.9.4
	 * @access protected
	 */
	protected function __construct() {
		// Hook to internal REST call
		add_filter( 'rest_request_before_callbacks', array( $this, 'set_internal_rest_on' ) );
		add_filter( 'rest_request_after_callbacks', array( $this, 'set_internal_rest_off' ) );

		add_action( 'rest_api_init', array( $this, 'rest_api_init' ) );
	}

	/**
	 * Register REST hooks
	 *
	 * @since  3.0
	 * @access public
	 */
	public function rest_api_init() {
		register_rest_route( 'litespeed/v1', '/tool/check_ip', array(
			'methods' => 'GET',
			'callback' => array( $this, 'check_ip' ),
			'permission_callback'	=> function() {
				return current_user_can( 'manage_network_options' ) || current_user_can( 'manage_options' );
			}
		) );

		// IP callback validate
		register_rest_route( 'litespeed/v1', '/ip_validate', array(
			'methods' => 'POST',
			'callback' => array( $this, 'ip_validate' ),
			'permission_callback'	=> '__return_true',
		) );

		// Token callback validate
		register_rest_route( 'litespeed/v1', '/token', array(
			'methods' => 'POST',
			'callback' => array( $this, 'token' ),
			'permission_callback'	=> '__return_true',
		) );
		register_rest_route( 'litespeed/v1', '/token', array(
			'methods' => 'GET',
			'callback' => array( $this, 'token_get' ),
			'permission_callback'	=> '__return_true',
		) );
		register_rest_route( 'litespeed/v1', '/ping', array(
			'methods' => 'GET',
			'callback' => array( $this, 'ping' ),
			'permission_callback'	=> '__return_true',
		) );

		// API key callback notification
		register_rest_route( 'litespeed/v1', '/apikey', array(
			'methods' => 'POST',
			'callback' => array( $this, 'apikey' ),
			'permission_callback'	=> '__return_true',
		) );

		// Image optm notify_img
		// Need validation
		register_rest_route( 'litespeed/v1', '/notify_img', array(
			'methods' => 'POST',
			'callback' => array( $this, 'notify_img' ),
			'permission_callback'	=> '__return_true',
		) );

		// Image optm check_img
		// Need validation
		register_rest_route( 'litespeed/v1', '/check_img', array(
			'methods' => 'POST',
			'callback' => array( $this, 'check_img' ),
			'permission_callback'	=> '__return_true',
		) );

	}

	/**
	 * Token get for
	 *
	 * @since  3.0.4
	 */
	public function token_get() {
		return Cloud::ok();
	}

	/**
	 * Ping pong
	 *
	 * @since  3.0.4
	 */
	public function ping() {
		return Cloud::ok( array( 'ver' => Core::VER ) );
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function check_ip() {
		return Tool::get_instance()->check_ip();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function ip_validate() {
		return Cloud::get_instance()->ip_validate();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function token() {
		return Cloud::get_instance()->token_validate();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function apikey() {
		return Cloud::get_instance()->save_apikey();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function notify_img() {
		return Img_Optm::get_instance()->notify_img();
	}

	/**
	 * Launch api call
	 *
	 * @since  3.0
	 */
	public function check_img() {
		return Img_Optm::get_instance()->check_img();
	}

	/**
	 * Set internal REST tag to ON
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function set_internal_rest_on( $not_used = null )
	{
		$this->_internal_rest_status = true;
		Debug2::debug2( '[REST] ✅ Internal REST ON [filter] rest_request_before_callbacks' );

		return $not_used;
	}

	/**
	 * Set internal REST tag to OFF
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function set_internal_rest_off( $not_used = null )
	{
		$this->_internal_rest_status = false;
		Debug2::debug2( '[REST] ❎ Internal REST OFF [filter] rest_request_after_callbacks' );

		return $not_used;
	}

	/**
	 * Get internal REST tag
	 *
	 * @since  2.9.4
	 * @access public
	 */
	public function is_internal_rest()
	{
		return $this->_internal_rest_status;
	}

	/**
	 * Check if an URL or current page is REST req or not
	 *
	 * @since  2.9.3
	 * @since  2.9.4 Moved here from Utility, dropped static
	 * @access public
	 */
	public function is_rest( $url = false )
	{
		// For WP 4.4.0- compatibility
		if ( ! function_exists( 'rest_get_url_prefix' ) ) {
			return defined( 'REST_REQUEST' ) && REST_REQUEST;
		}

		$prefix = rest_get_url_prefix();

		// Case #1: After WP_REST_Request initialisation
		if ( defined( 'REST_REQUEST' ) && REST_REQUEST ) {
			return true;
		}

		// Case #2: Support "plain" permalink settings
		if ( isset( $_GET[ 'rest_route' ] ) && strpos( trim( $_GET[ 'rest_route' ], '\\/' ), $prefix , 0 ) === 0 ) {
			return true;
		}

		if ( ! $url ) {
			return false;
		}

		// Case #3: URL Path begins with wp-json/ (REST prefix) Safe for subfolder installation
		$rest_url = wp_parse_url( site_url( $prefix ) );
		$current_url = wp_parse_url( $url );
		// Debug2::debug( '[Util] is_rest check [base] ', $rest_url );
		// Debug2::debug( '[Util] is_rest check [curr] ', $current_url );
		// Debug2::debug( '[Util] is_rest check [curr2] ', wp_parse_url( add_query_arg( array( ) ) ) );
		return strpos( $current_url[ 'path' ], $rest_url[ 'path' ] ) === 0;
	}
}
<?php
/**
 * The utility class.
 *
 * @since      	1.1.5
 * @since  		1.5 Moved into /inc
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Utility extends Instance {
	protected static $_instance;
	private static $_internal_domains;

	/**
	 * Validate regex
	 *
	 * @since 1.0.9
	 * @since  3.0 Moved here from admin-settings.cls
	 * @access public
	 * @return bool True for valid rules, false otherwise.
	 */
	public static function syntax_checker( $rules ) {
		$success = true;

		set_error_handler( 'litespeed_exception_handler' );

		try {
			preg_match( self::arr2regex( $rules ), null );
		}
		catch ( \ErrorException $e ) {
			$success = false;
		}

		restore_error_handler();

		return $success;
	}

	/**
	 * Combine regex array to regex rule
	 *
	 * @since  3.0
	 */
	public static function arr2regex( $arr, $drop_delimiter = false ) {
		$arr = self::sanitize_lines( $arr );

		$new_arr = array();
		foreach ( $arr as $v ) {
			$new_arr[] = preg_quote( $v, '#' );
		}

		$regex = implode( '|', $new_arr );
		$regex = str_replace( ' ', '\\ ', $regex );

		if ( $drop_delimiter ) {
			return $regex;
		}

		return '#' . $regex . '#';
	}

	/**
	 * Replace wildcard to regex
	 *
	 * @since  3.2.2
	 */
	public static function wildcard2regex( $string ) {
		if ( is_array( $string ) ) {
			return array_map( __CLASS__ . '::wildcard2regex', $string );
		}

		if ( strpos( $string, '*' ) !== false ) {
			$string = preg_quote( $string, '#' );
			$string = str_replace( '\*', '.*', $string );
		}

		return $string;
	}

	/**
	 * Check if an URL or current page is REST req or not
	 *
	 * @since  2.9.3
	 * @deprecated 2.9.4 Moved to REST class
	 * @access public
	 */
	public static function is_rest( $url = false ) {
		return false;
	}

	/**
	 * Get current page type
	 *
	 * @since  2.9
	 */
	public static function page_type() {
		global $wp_query;
		$page_type = 'default';

		if ( $wp_query->is_page ) {
			$page_type = is_front_page() ? 'front' : 'page';
		}
		elseif ( $wp_query->is_home ) {
			$page_type = 'home';
		}
		elseif ( $wp_query->is_single ) {
			// $page_type = $wp_query->is_attachment ? 'attachment' : 'single';
			$page_type = get_post_type();
		}
		elseif ( $wp_query->is_category ) {
			$page_type = 'category';
		}
		elseif ( $wp_query->is_tag ) {
			$page_type = 'tag';
		}
		elseif ( $wp_query->is_tax ) {
			$page_type = 'tax';
			// $page_type = get_queried_object()->taxonomy;
		}
		elseif ( $wp_query->is_archive ) {
			if ( $wp_query->is_day ) {
				$page_type = 'day';
			}
			elseif ( $wp_query->is_month ) {
				$page_type = 'month';
			}
			elseif ( $wp_query->is_year ) {
				$page_type = 'year';
			}
			elseif ( $wp_query->is_author ) {
				$page_type = 'author';
			}
			else {
				$page_type = 'archive';
			}
		}
		elseif ( $wp_query->is_search ) {
			$page_type = 'search';
		}
		elseif ( $wp_query->is_404 ) {
			$page_type = '404';
		}

		return $page_type;

		// if ( is_404() ) {
		// 	$page_type = '404';
		// }
		// elseif ( is_singular() ) {
		// 	$page_type = get_post_type();
		// }
		// elseif ( is_home() && get_option( 'show_on_front' ) == 'page' ) {
		// 	$page_type = 'home';
		// }
		// elseif ( is_front_page() ) {
		// 	$page_type = 'front';
		// }
		// elseif ( is_tax() ) {
		// 	$page_type = get_queried_object()->taxonomy;
		// }
		// elseif ( is_category() ) {
		// 	$page_type = 'category';
		// }
		// elseif ( is_tag() ) {
		// 	$page_type = 'tag';
		// }

		// return $page_type;
	}

	/**
	 * Get ping speed
	 *
	 * @since  2.9
	 */
	public static function ping( $domain ) {
		if ( strpos( $domain, ':' ) ) {
			$domain = parse_url( $domain, PHP_URL_HOST );
		}
		$starttime	= microtime( true );
		$file		= fsockopen( $domain, 443, $errno, $errstr, 10 );
		$stoptime	= microtime( true );
		$status		= 0;

		if ( ! $file ) $status = 99999;// Site is down
		else {
			fclose( $file );
			$status = ( $stoptime - $starttime ) * 1000;
			$status = floor( $status );
		}

		Debug2::debug( "[Util] ping [Domain] $domain \t[Speed] $status" );

		return $status;
	}

	/**
	 * Set seconds/timestamp to readable format
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public static function readable_time( $seconds_or_timestamp, $timeout = 3600, $forword = false ) {

		if ( strlen( $seconds_or_timestamp ) == 10 ) {
			$seconds = time() - $seconds_or_timestamp;
			if ( $seconds > $timeout ) {
				return date( 'm/d/Y H:i:s', $seconds_or_timestamp + LITESPEED_TIME_OFFSET );
			}
		}
		else {
			$seconds = $seconds_or_timestamp;
		}

		$res = '';
		if ( $seconds > 86400 ) {
			$num = floor( $seconds / 86400 );
			$res .= $num . 'd';
			$seconds %= 86400;
		}

		if ( $seconds > 3600 ) {
			if ( $res ) {
				$res .= ', ';
			}
			$num = floor( $seconds / 3600 );
			$res .= $num . 'h';
			$seconds %= 3600;
		}

		if ( $seconds > 60 ) {
			if ( $res ) {
				$res .= ', ';
			}
			$num = floor( $seconds / 60 );
			$res .= $num . 'm';
			$seconds %= 60;
		}

		if ( $seconds > 0 ) {
			if ( $res ) {
				$res .= ' ';
			}
			$res .= $seconds . 's';
		}

		if ( ! $res ) {
			return $forword ? __( 'right now', 'litespeed-cache' ) : __( 'just now', 'litespeed-cache' );
		}

		$res = $forword ? $res : sprintf( __( ' %s ago', 'litespeed-cache' ), $res );

		return $res;
	}


	/**
	 * Convert array to string
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function arr2str( $arr ) {
		if ( ! is_array( $arr ) ) {
			return $arr;
		}

		return base64_encode( json_encode( $arr ) );
	}

	/**
	 * Get human readable size
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function real_size( $filesize, $is_1000 = false ) {
		$unit = $is_1000 ? 1000 : 1024;

		if ( $filesize >= pow( $unit, 3 ) ) {
			$filesize = round( $filesize / pow( $unit, 3 ) * 100 ) / 100 . 'G';
		}
		elseif ( $filesize >= pow( $unit, 2 ) ) {
			$filesize = round( $filesize / pow( $unit, 2 ) * 100 ) / 100 . 'M';
		}
		elseif ( $filesize >= $unit ) {
			$filesize = round( $filesize / $unit * 100 ) / 100 . 'K';
		}
		else {
			$filesize = $filesize . 'B';
		}
		return $filesize;
	}

	/**
	 * Parse attributes from string
	 *
	 * @since  1.2.2
	 * @since  1.4 Moved from optimize to utility
	 * @access private
	 * @param  string $str
	 * @return array  All the attributes
	 */
	public static function parse_attr( $str ) {
		$attrs = array();
		preg_match_all( '#([\w-]+)=["\']([^"\']*)["\']#isU', $str, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs[ $match[ 1 ] ] = trim( $match[ 2 ] );
		}
		return $attrs;
	}

	/**
	 * Check if an array has a string
	 *
	 * Support $ exact match
	 *
	 * @since 1.3
	 * @access private
	 * @param string $needle The string to search with
	 * @param array $haystack
	 * @return bool|string False if not found, otherwise return the matched string in haystack.
	 */
	public static function str_hit_array( $needle, $haystack, $has_ttl = false ) {
		/**
		 * Safety check to avoid PHP warning
		 * @see  https://github.com/litespeedtech/lscache_wp/pull/131/commits/45fc03af308c7d6b5583d1664fad68f75fb6d017
		 */
		if ( ! is_array( $haystack ) ) {
			Debug2::debug( "[Util] ❌ bad param in str_hit_array()!" );

			return false;
		}

		$hit = false;
		$this_ttl = 0;
		foreach( $haystack as $item ) {
			if ( ! $item ) {
				continue;
			}

			if ( $has_ttl ) {
				$this_ttl = 0;
				$item = explode( ' ', $item );
				if ( ! empty( $item[ 1 ] ) ) {
					$this_ttl = $item[ 1 ];
				}
				$item = $item[ 0 ];
			}

			if ( substr( $item, -1 ) === '$' ) {
				// do exact match
				if ( substr( $item, 0, -1 ) === $needle ) {
					$hit = $item;
					break;
				}
			}
			elseif ( substr( $item, 0, 1 ) === '^' ) {
				// match beginning
				if ( substr( $item, 1 ) === substr( $needle, 0, strlen( $item ) - 1 ) ) {
					$hit = $item;
					break;
				}
			}
			else {
				if ( strpos( $needle, $item ) !== false ) {
					$hit = $item;
					break;
				}
			}
		}

		if ( $hit ) {
			if ( $has_ttl ) {
				return array( $hit, $this_ttl );
			}

			return $hit;
		}

		return false;
	}

	/**
	 * Improve compatibility to PHP old versions
	 *
	 * @since  1.2.2
	 *
	 */
	public static function compatibility() {
		require_once LSCWP_DIR . 'lib/php-compatibility.func.php';
	}

	/**
	 * Convert URI to URL
	 *
	 * @since  1.3
	 * @access public
	 * @param  string $uri `xx/xx.html` or `/subfolder/xx/xx.html`
	 * @return  string http://www.example.com/subfolder/xx/xx.html
	 */
	public static function uri2url( $uri ) {
		if ( substr( $uri, 0, 1 ) === '/' ) {
			self::domain_const();
			$url = LSCWP_DOMAIN . $uri;
		}
		else {
			$url = home_url( '/' ) . $uri;
		}

		return $url;
	}

	/**
	 * Convert URL to URI
	 *
	 * @since  1.2.2
	 * @since  1.6.2.1 Added 2nd param keep_qs
	 * @access public
	 */
	public static function url2uri( $url, $keep_qs = false ) {
		$url = trim( $url );
		$uri = @parse_url( $url, PHP_URL_PATH );
		$qs = @parse_url( $url, PHP_URL_QUERY );

		if ( ! $keep_qs || ! $qs ) {
			return $uri;
		}

		return $uri . '?' . $qs;
	}

	/**
	 * Get attachment relative path to upload folder
	 *
	 * @since 3.0
	 * @access public
	 * @param  string 	`https://aa.com/bbb/wp-content/upload/2018/08/test.jpg` or `/bbb/wp-content/upload/2018/08/test.jpg`
	 * @return string 	`2018/08/test.jpg`
	 */
	public static function att_short_path( $url ) {
		if ( ! defined( 'LITESPEED_UPLOAD_PATH' ) ) {
			$_wp_upload_dir = wp_upload_dir();

			$upload_path = self::url2uri( $_wp_upload_dir[ 'baseurl' ] );

			define( 'LITESPEED_UPLOAD_PATH', $upload_path );
		}

		$local_file = self::url2uri( $url );

		$short_path = substr( $local_file, strlen( LITESPEED_UPLOAD_PATH ) + 1 );

		return $short_path;
	}

	/**
	 * Make URL to be relative
	 *
	 * NOTE: for subfolder home_url, will keep subfolder part (strip nothing but scheme and host)
	 *
	 * @param  string $url
	 * @return string      Relative URL, start with /
	 */
	public static function make_relative( $url ) {
		// replace home_url if the url is full url
		self::domain_const();
		if ( strpos( $url, LSCWP_DOMAIN ) === 0 ) {
			$url = substr( $url, strlen( LSCWP_DOMAIN ) );
		}
		return trim( $url );
	}

	/**
	 * Convert URL to domain only
	 *
	 * @since  1.7.1
	 */
	public static function parse_domain( $url ) {
		$url = @parse_url( $url );
		if ( empty( $url[ 'host' ] ) ) {
			return '';
		}

		if ( ! empty( $url[ 'scheme' ] ) ) {
			return $url[ 'scheme' ] . '://' . $url[ 'host' ];
		}

		return '//' . $url[ 'host' ];
	}

	/**
	 * Drop protocol `https:` from https://example.com
	 *
	 * @since  3.3
	 */
	public static function noprotocol( $url ) {
		$tmp = parse_url( trim( $url ) );
		if ( ! empty( $tmp[ 'scheme' ] ) ) {
			$url = str_replace( $tmp[ 'scheme' ] . ':', '', $url );
		}

		return $url;
	}

	/**
	 * Generate domain const
	 *
	 * This will generate http://www.example.com even there is a subfolder in home_url setting
	 *
	 * Conf LSCWP_DOMAIN has NO trailing /
	 *
	 * @since  1.3
	 * @access public
	 */
	public static function domain_const() {
		if ( defined( 'LSCWP_DOMAIN' ) ) {
			return;
		}

		self::compatibility();
		$domain = http_build_url( get_home_url(), array(), HTTP_URL_STRIP_ALL );

		define( 'LSCWP_DOMAIN', $domain );
	}

	/**
	 * Array map one textarea to sanitize the url
	 *
	 * @since  1.3
	 * @access public
	 * @param  string $content
	 * @param  bool $type String handler type
	 * @return string
	 */
	public static function sanitize_lines( $arr, $type = null ) {
		if ( ! $arr ) {
			if ( $type === 'string' ) {
				return '';
			}
			return array();
		}

		if ( ! is_array( $arr ) ) {
			$arr = explode( "\n", $arr );
		}

		$arr = array_map( 'trim', $arr );
		$changed = false;
		if ( $type === 'uri' ) {
			$arr = array_map( __CLASS__ . '::url2uri', $arr );
			$changed = true;
		}
		if ( $type === 'relative' ) {
			$arr = array_map( __CLASS__ . '::make_relative', $arr );// Remove domain
			$changed = true;
		}
		if ( $type === 'domain' ) {
			$arr = array_map( __CLASS__ . '::parse_domain', $arr );// Only keep domain
			$changed = true;
		}

		if ( $type === 'noprotocol' ) {
			$arr = array_map( __CLASS__ . '::noprotocol', $arr ); // Drop protocol, `https://example.com` -> `//example.com`
			$changed = true;
		}

		if ( $changed ) {
			$arr = array_map( 'trim', $arr );
		}
		$arr = array_unique( $arr );
		$arr = array_filter( $arr );

		if ( $type === 'string' ) {
			return implode( "\n", $arr );
		}

		return $arr;
	}

	/**
	 * Builds an url with an action and a nonce.
	 *
	 * Assumes user capabilities are already checked.
	 *
	 * @since  1.6 Changed order of 2nd&3rd param, changed 3rd param `append_str` to 2nd `type`
	 * @access public
	 * @return string The built url.
	 */
	public static function build_url( $action, $type = false, $is_ajax = false, $page = null, $append_arr = array() ) {
		$prefix = '?';

		if ( $page === '_ori' ) {
			$page = true;
			$append_arr[ '_litespeed_ori' ] = 1;
		}

		if ( ! $is_ajax ) {
			if ( $page ) {
				// If use admin url
				if ( $page === true ) {
					$page = 'admin.php';
				}
				else {
					if ( strpos( $page, '?' ) !== false ) {
						$prefix = '&';
					}
				}
				$combined = $page . $prefix . Router::ACTION . '=' . $action;
			}
			else {
				// Current page rebuild URL
				$params = $_GET;

				if ( ! empty( $params ) ) {
					if ( isset( $params[ Router::ACTION ] ) ) {
						unset( $params[ Router::ACTION ] );
					}
					if ( isset( $params[ '_wpnonce' ] ) ) {
						unset( $params[ '_wpnonce' ] );
					}
					if ( ! empty( $params ) ) {
						$prefix .= http_build_query( $params ) . '&';
					}
				}
				global $pagenow;
				$combined = $pagenow . $prefix . Router::ACTION . '=' . $action;
			}
		}
		else {
			$combined = 'admin-ajax.php?action=litespeed_ajax&' . Router::ACTION . '=' . $action;
		}

		if ( is_network_admin() ) {
			$prenonce = network_admin_url( $combined );
		}
		else {
			$prenonce = admin_url( $combined );
		}
		$url = wp_nonce_url( $prenonce, $action, Router::NONCE );

		if ( $type ) {
			// Remove potential param `type` from url
			$url = parse_url( htmlspecialchars_decode( $url ) );
			parse_str( $url[ 'query' ], $query );

			$built_arr = array_merge( $query, array( Router::TYPE => $type ) );
			if ( $append_arr ) {
				$built_arr = array_merge( $built_arr, $append_arr );
			}
			$url[ 'query' ] = http_build_query( $built_arr );
			self::compatibility();
			$url = http_build_url( $url );
			$url = htmlspecialchars( $url, ENT_QUOTES, 'UTF-8' );
		}

		return $url;
	}

	/**
	 * Check if the host is the internal host
	 *
	 * @since  1.2.3
	 *
	 */
	public static function internal( $host ) {
		if ( ! defined( 'LITESPEED_FRONTEND_HOST' ) ) {
			if ( defined( 'WP_HOME' ) ) {
				$home_host = WP_HOME;// Also think of `WP_SITEURL`
			}
			else {
				$home_host = get_option( 'home' );
			}
			define( 'LITESPEED_FRONTEND_HOST', parse_url( $home_host, PHP_URL_HOST ) );
		}

		if ( $host === LITESPEED_FRONTEND_HOST ) {
			return true;
		}

		/**
		 * Filter for multiple domains
		 * @since 2.9.4
		 */
		if ( ! isset( self::$_internal_domains ) ) {
			self::$_internal_domains = apply_filters( 'litespeed_internal_domains', array() );
		}

		if ( self::$_internal_domains ) {
			return in_array( $host, self::$_internal_domains );
		}

		return false;
	}

	/**
	 * Check if an URL is a internal existing file
	 *
	 * @since  1.2.2
	 * @since  1.6.2 Moved here from optm.cls due to usage of media.cls
	 * @access public
	 * @return string|bool The real path of file OR false
	 */
	public static function is_internal_file( $url, $addition_postfix = false ) {
		if ( substr( $url, 0, 5 ) == 'data:' ) {
			Debug2::debug2( '[Util] data: content not file' );
			return false;
		}
		$url_parsed = parse_url( $url );
		if ( isset( $url_parsed[ 'host' ] ) && ! self::internal( $url_parsed[ 'host' ] ) ) {
			// Check if is cdn path
			// Do this to avoid user hardcoded src in tpl
			if ( ! CDN::internal( $url_parsed[ 'host' ] ) ) {
				Debug2::debug2( '[Util] external' );
				return false;
			}
		}

		if ( empty( $url_parsed[ 'path' ] ) ) {
			return false;
		}

		// Need to replace child blog path for assets, ref: .htaccess
		if ( is_multisite() && defined( 'PATH_CURRENT_SITE' ) ) {
			$pattern = '#^' . PATH_CURRENT_SITE . '([_0-9a-zA-Z-]+/)(wp-(content|admin|includes))#U';
			$replacement = PATH_CURRENT_SITE . '$2';
			$url_parsed[ 'path' ] = preg_replace( $pattern, $replacement, $url_parsed[ 'path' ] );
			// $current_blog = (int) get_current_blog_id();
			// $main_blog_id = (int) get_network()->site_id;
			// if ( $current_blog === $main_blog_id ) {
			// 	define( 'LITESPEED_IS_MAIN_BLOG', true );
			// }
			// else {
			// 	define( 'LITESPEED_IS_MAIN_BLOG', false );
			// }
		}

		// Parse file path
		/**
		 * Trying to fix pure /.htaccess rewrite to /wordpress case
		 *
		 * Add `define( 'LITESPEED_WP_REALPATH', '/wordpress' );` in wp-config.php in this case
		 *
		 * @internal #611001 - Combine & Minify not working?
		 * @since  1.6.3
		 */
		if ( substr( $url_parsed[ 'path' ], 0, 1 ) === '/' ) {
			if ( defined( 'LITESPEED_WP_REALPATH' ) ) {
				$file_path_ori = $_SERVER[ 'DOCUMENT_ROOT' ] . LITESPEED_WP_REALPATH . $url_parsed[ 'path' ];
			}
			else {
				$file_path_ori = $_SERVER[ 'DOCUMENT_ROOT' ] . $url_parsed[ 'path' ];
			}
		}
		else {
			$file_path_ori = Router::frontend_path() . '/' . $url_parsed[ 'path' ];
		}

		/**
		 * Added new file postfix to be check if passed in
		 * @since 2.2.4
		 */
		if ( $addition_postfix ) {
			$file_path_ori .= '.' . $addition_postfix;
		}

		/**
		 * Added this filter for those plugins which overwrite the filepath
		 * @see #101091 plugin `Hide My WordPress`
		 * @since 2.2.3
		 */
		$file_path_ori = apply_filters( 'litespeed_realpath', $file_path_ori );

		$file_path = realpath( $file_path_ori );
		if ( ! is_file( $file_path ) ) {
			Debug2::debug2( '[Util] file not exist: ' . $file_path_ori );
			return false;
		}

		return array( $file_path, filesize( $file_path ) );
	}

	/**
	 * Safely parse URL for v5.3 compatibility
	 *
	 * @since  3.4.3
	 */
	public static function parse_url_safe( $url, $component = -1 ) {
		if ( substr( $url, 0, 2 ) == '//' ) {
			$url = 'https:' . $url;
		}

		return parse_url( $url, $component );
	}

	/**
	 * Replace url in srcset to new value
	 *
	 * @since  2.2.3
	 */
	public static function srcset_replace( $content, $callback ) {
		preg_match_all( '# srcset=([\'"])(.+)\g{1}#iU', $content, $matches );
		$srcset_ori = array();
		$srcset_final = array();
		foreach ( $matches[ 2 ] as $k => $urls_ori ) {

			$urls_final = explode( ',', $urls_ori );

			$changed = false;

			foreach ( $urls_final as $k2 => $url_info ) {
				$url_info_arr = explode( ' ', trim( $url_info ) );

				if ( ! $url2 = call_user_func( $callback, $url_info_arr[ 0 ] ) ) {
					continue;
				}

				$changed = true;

				$urls_final[ $k2 ] = str_replace( $url_info_arr[ 0 ], $url2, $url_info );

				Debug2::debug2( '[Util] - srcset replaced to ' . $url2 . ( ! empty( $url_info_arr[ 1 ] ) ? ' ' . $url_info_arr[ 1 ] : '' ) );
			}

			if ( ! $changed ) {
				continue;
			}

			$urls_final = implode( ',', $urls_final );

			$srcset_ori[] = $matches[ 0 ][ $k ];

			$srcset_final[] = str_replace( $urls_ori, $urls_final, $matches[ 0 ][ $k ] );
		}

		if ( $srcset_ori ) {
			$content = str_replace( $srcset_ori, $srcset_final, $content );
			Debug2::debug2( '[Util] - srcset replaced' );
		}

		return $content;

	}

	/**
	 * Generate pagination
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function pagination( $total, $limit, $return_offset = false ) {
		$pagenum = isset( $_GET[ 'pagenum' ] ) ? absint( $_GET[ 'pagenum' ] ) : 1;

		$offset = ( $pagenum - 1 ) * $limit;
		$num_of_pages = ceil( $total / $limit );

		if ( $offset > $total ) {
			$offset = $total - $limit;
		}

		if ( $offset < 0 ) {
			$offset = 0;
		}

		if ( $return_offset ) {
			return $offset;
		}

		$page_links = paginate_links( array(
			'base' => add_query_arg( 'pagenum', '%#%' ),
			'format' => '',
			'prev_text' => __( '&laquo;', 'text-domain' ),
			'next_text' => __( '&raquo;', 'text-domain' ),
			'total' => $num_of_pages,
			'current' => $pagenum,
		) );

		return '<div class="tablenav"><div class="tablenav-pages" style="margin: 1em 0">' . $page_links . '</div></div>';
	}

	/**
	 * Generate placeholder for an array to query
	 *
	 * @since 2.0
	 * @access public
	 */
	public static function chunk_placeholder( $data, $fields ) {
		$division = substr_count( $fields, ',' ) + 1;

		$q = implode( ',', array_map(
			function( $el ) { return '(' . implode( ',', $el ) . ')'; },
			array_chunk( array_fill( 0, count( $data ), '%s' ), $division )
		) );

		return $q;
	}

}
<?php
/**
* LiteSpeed File Operator Library Class
* Append/Replace content to a file
*
* @since 1.1.0
*/
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class File {
	const MARKER = 'LiteSpeed Operator';

	function __construct() {
		// nothing to do here
	}

	/**
	 * Detect if an URL is 404
	 *
	 * @since  3.3
	 */
	public static function is_404( $url ) {
		$response = wp_remote_get( $url );
		$code = wp_remote_retrieve_response_code( $response );
		if ( $code == 404 ) {
			return true;
		}

		return false;
	}

	/**
	 *	Delete folder
	 *
	 * @since 2.1
	 */
	public static function rrmdir( $dir ) {

		$files = array_diff( scandir( $dir ), array( '.', '..' ) );

		foreach ( $files as $file ) {
			is_dir( "$dir/$file" ) ? self::rrmdir( "$dir/$file" ) : unlink( "$dir/$file" );
		}

		return rmdir( $dir );
	}

	public static function count_lines($filename) {
		if ( ! file_exists($filename) ) {
			return 0;
		}

		$file = new \SplFileObject($filename);
		$file->seek(PHP_INT_MAX);
		return $file->key() + 1;
	}

	/**
	 * Read data from file
	 *
	 * @since 1.1.0
	 * @param string $filename
	 * @param int $start_line
	 * @param int $lines
	 */
	public static function read($filename, $start_line = null, $lines = null) {
		if ( ! file_exists($filename) ) {
			return '';
		}

		if ( ! is_readable($filename) ) {
			return false;
		}

		if ( $start_line !== null ) {
			$res = array();
			$file = new \SplFileObject($filename);
			$file->seek($start_line);

			if ( $lines === null) {
				while ( ! $file->eof() ) {
					$res[] = rtrim($file->current(), "\n");
					$file->next();
				}
			}
			else{
				for ( $i=0; $i < $lines; $i++ ) {
					if ( $file->eof() ) {
						break;
					}
					$res[] = rtrim($file->current(), "\n");
					$file->next();
				}
			}

			unset($file);
			return $res;
		}

		$content = file_get_contents( $filename );

		$content = self::remove_zero_space( $content );

		return $content;
	}

	/**
	 * Append data to file
	 *
	 * @since 1.1.5
	 * @access public
	 * @param string $filename
	 * @param string $data
	 * @param boolean $mkdir
	 * @param boolean $silence Used to avoid WP's functions are used
	 */
	public static function append( $filename, $data, $mkdir = false, $silence = true ) {
		return self::save( $filename, $data, $mkdir, true, $silence );
	}

	/**
	 * Save data to file
	 *
	 * @since 1.1.0
	 * @param string $filename
	 * @param string $data
	 * @param boolean $mkdir
	 * @param boolean $append If the content needs to be appended
	 * @param boolean $silence Used to avoid WP's functions are used
	 */
	public static function save( $filename, $data, $mkdir = false, $append = false, $silence = true ) {
		$error = false;
		$folder = dirname( $filename );

		// mkdir if folder does not exist
		if ( ! file_exists( $folder ) ) {
			if ( ! $mkdir ) {
				return $silence ? false : sprintf( __( 'Folder does not exist: %s', 'litespeed-cache' ), $folder );
			}

			set_error_handler( 'litespeed_exception_handler' );

			try {
				mkdir( $folder, 0755, true );
			}
			catch ( \ErrorException $ex ) {
				return $silence ? false : sprintf( __( 'Can not create folder: %1$s. Error: %2$s', 'litespeed-cache' ), $folder, $ex->getMessage() );
			}

			restore_error_handler();
		}

		if ( ! file_exists( $filename ) ) {
			if ( ! is_writable( $folder ) ) {
				return $silence ? false : sprintf( __( 'Folder is not writable: %s.', 'litespeed-cache' ), $folder );
			}
			set_error_handler( 'litespeed_exception_handler' );
			try {
				touch( $filename );
			}
			catch ( \ErrorException $ex ){
				return $silence ? false : sprintf( __( 'File %s is not writable.', 'litespeed-cache' ), $filename );
			}
			restore_error_handler();
		}
		elseif ( ! is_writeable( $filename ) ) {
			return $silence ? false : sprintf( __( 'File %s is not writable.', 'litespeed-cache' ), $filename );
		}

		$data = self::remove_zero_space( $data );

		$ret = file_put_contents( $filename, $data, $append ? FILE_APPEND : LOCK_EX );
		if ( $ret === false ) {
			return $silence ? false : sprintf( __( 'Failed to write to %s.', 'litespeed-cache' ), $filename );
		}

		return true;
	}

	/**
	 * Remove Unicode zero-width space <200b><200c>
	 *
	 * @since 2.1.2
	 * @since 2.9 changed to public
	 */
	public static function remove_zero_space( $content ) {
		if ( is_array( $content ) ) {
			$content = array_map( __CLASS__ . '::remove_zero_space', $content );
			return $content;
		}

		// Remove UTF-8 BOM if present
		if ( substr( $content, 0, 3 ) === "\xEF\xBB\xBF" ) {
			$content = substr( $content, 3 );
		}

		$content = str_replace( "\xe2\x80\x8b", '', $content );
		$content = str_replace( "\xe2\x80\x8c", '', $content );
		$content = str_replace( "\xe2\x80\x8d", '', $content );

		return $content;
	}

	/**
	 * Appends an array of strings into a file (.htaccess ), placing it between
	 * BEGIN and END markers.
	 *
	 * Replaces existing marked info. Retains surrounding
	 * data. Creates file if none exists.
	 *
	 * @param string       $filename  Filename to alter.
	 * @param string       $marker    The marker to alter.
	 * @param array|string $insertion The new content to insert.
	 * @param bool 	       $prepend Prepend insertion if not exist.
	 * @return bool True on write success, false on failure.
	 */
	public static function insert_with_markers($filename, $insertion = false, $marker = false, $prepend = false) {
		if ( !$marker ) {
			$marker = self::MARKER;
		}

		if ( !$insertion ) {
			$insertion = array();
		}

		return self::_insert_with_markers($filename, $marker, $insertion, $prepend);//todo: capture exceptions
	}

	/**
	 * Return wrapped block data with marker
	 *
	 * @param string $insertion
	 * @param string $marker
	 * @return string The block data
	 */
	public static function wrap_marker_data($insertion, $marker = false) {
		if ( ! $marker ) {
			$marker = self::MARKER;
		}
		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";

		$new_data = implode( "\n", array_merge(
			array( $start_marker ),
			$insertion,
			array( $end_marker )
		) );
		return $new_data;
	}

	/**
	 * Touch block data from file, return with marker
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return string The current block data
	 */
	public static function touch_marker_data($filename, $marker = false) {
		if( ! $marker ) {
			$marker = self::MARKER;
		}

		$result = self::_extract_from_markers($filename, $marker);

		if( ! $result ) {
			return false;
		}

		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";
		$new_data = implode( "\n", array_merge(
			array( $start_marker ),
			$result,
			array( $end_marker )
		) );
		return $new_data;
	}

	/**
	 * Extracts strings from between the BEGIN and END markers in the .htaccess file.
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return array An array of strings from a file (.htaccess ) from between BEGIN and END markers.
	 */
	public static function extract_from_markers($filename, $marker = false) {
		if( ! $marker ) {
			$marker = self::MARKER;
		}
		return self::_extract_from_markers($filename, $marker);
	}

	/**
	 * Extracts strings from between the BEGIN and END markers in the .htaccess file.
	 *
	 * @param string $filename
	 * @param string $marker
	 * @return array An array of strings from a file (.htaccess ) from between BEGIN and END markers.
	 */
	private static function _extract_from_markers( $filename, $marker ) {
		$result = array();

		if (!file_exists($filename) ) {
			return $result;
		}

		if ( $markerdata = explode( "\n", implode( '', file($filename) ) ) ) {
			$state = false;
			foreach ( $markerdata as $markerline ) {
				if ( strpos($markerline, '# END ' . $marker) !== false ) {
					$state = false;
				}
				if ( $state ) {
					$result[] = $markerline;
				}
				if (strpos($markerline, '# BEGIN ' . $marker) !== false) {
					$state = true;
				}
			}
		}

		return array_map('trim', $result);
	}

	/**
	 * Inserts an array of strings into a file (.htaccess ), placing it between BEGIN and END markers.
	 *
	 * Replaces existing marked info. Retains surrounding data. Creates file if none exists.
	 *
	 * NOTE: will throw error if failed
	 *
	 * @since 3.0-
	 * @since  3.0 Throw errors if failed
	 * @access private
	 */
	private static function _insert_with_markers( $filename, $marker, $insertion, $prepend = false) {
		if ( ! file_exists( $filename ) ) {
			if ( ! is_writable( dirname( $filename ) ) ) {
				Error::t( 'W', dirname( $filename ) );
			}

			set_error_handler("litespeed_exception_handler");
			try {
				touch( $filename );
			} catch ( \ErrorException $ex ) {
				Error::t( 'W', $filename );
			}
			restore_error_handler();
		}
		elseif ( ! is_writeable( $filename ) ) {
			Error::t( 'W', $filename );
		}

		if ( ! is_array( $insertion ) ) {
			$insertion = explode( "\n", $insertion );
		}

		$start_marker = "# BEGIN {$marker}";
		$end_marker   = "# END {$marker}";

		$fp = fopen( $filename, 'r+' );
		if ( ! $fp ) {
			Error::t( 'W', $filename );
		}

		// Attempt to get a lock. If the filesystem supports locking, this will block until the lock is acquired.
		flock( $fp, LOCK_EX );

		$lines = array();
		while ( ! feof($fp) ) {
			$lines[] = rtrim(fgets($fp), "\r\n" );
		}

		// Split out the existing file into the preceding lines, and those that appear after the marker
		$pre_lines = $post_lines = $existing_lines = array();
		$found_marker = $found_end_marker = false;
		foreach ( $lines as $line ) {
			if ( ! $found_marker && false !== strpos($line, $start_marker) ) {
				$found_marker = true;
				continue;
			}
			elseif ( ! $found_end_marker && false !== strpos($line, $end_marker) ) {
				$found_end_marker = true;
				continue;
			}

			if ( ! $found_marker ) {
				$pre_lines[] = $line;
			}
			elseif ( $found_marker && $found_end_marker ) {
				$post_lines[] = $line;
			}
			else {
				$existing_lines[] = $line;
			}
		}

		// Check to see if there was a change
		if ( $existing_lines === $insertion ) {
			flock($fp, LOCK_UN);
			fclose($fp);

			return true;
		}

		// Check if need to prepend data if not exist
		if( $prepend && ! $post_lines ) {
			// Generate the new file data
			$new_file_data = implode( "\n", array_merge(
				array( $start_marker ),
				$insertion,
				array( $end_marker ),
				$pre_lines
			) );

		}
		else {
			// Generate the new file data
			$new_file_data = implode( "\n", array_merge(
				$pre_lines,
				array( $start_marker ),
				$insertion,
				array( $end_marker ),
				$post_lines
			) );
		}


		// Write to the start of the file, and truncate it to that length
		fseek($fp, 0);
		$bytes = fwrite($fp, $new_file_data);
		if ( $bytes ) {
			ftruncate($fp, ftell($fp));
		}
		fflush($fp);
		flock($fp, LOCK_UN);
		fclose($fp);

		return (bool) $bytes;
	}
}


<?php
/**
 * The CDN class.
 *
 * @since      	1.2.3
 * @since  		1.5 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class CDN extends Instance {
	protected static $_instance;

	const BYPASS = 'LITESPEED_BYPASS_CDN';

	private $content;

	private $_cfg_cdn;
	private $_cfg_url_ori;
	private $_cfg_ori_dir;
	private $_cfg_cdn_mapping = array();
	private $_cfg_cdn_exclude;

	private $cdn_mapping_hosts = array();

	private $__cfg;// cfg instance

	/**
	 * Init
	 *
	 * @since  1.2.3
	 * @access protected
	 */
	protected function __construct() {
		Debug2::debug2( '[CDN] init' );

		if ( defined( self::BYPASS ) ) {
			Debug2::debug2( 'CDN bypass' );
			return;
		}

		if ( ! Router::can_cdn() ) {
			if ( ! defined( self::BYPASS ) ) {
				define( self::BYPASS, true );
			}
			return;
		}

		$this->__cfg = Conf::get_instance();

		$this->_cfg_cdn = Conf::val( Base::O_CDN );
		if ( ! $this->_cfg_cdn ) {
			if ( ! defined( self::BYPASS ) ) {
				define( self::BYPASS, true );
			}
			return;
		}

		$this->_cfg_url_ori = Conf::val( Base::O_CDN_ORI );
		// Parse cdn mapping data to array( 'filetype' => 'url' )
		$mapping_to_check = array(
			Base::CDN_MAPPING_INC_IMG,
			Base::CDN_MAPPING_INC_CSS,
			Base::CDN_MAPPING_INC_JS
		);
		foreach ( Conf::val( Base::O_CDN_MAPPING ) as $v ) {
			if ( ! $v[ Base::CDN_MAPPING_URL ] ) {
				continue;
			}
			$this_url = $v[ Base::CDN_MAPPING_URL ];
			$this_host = parse_url( $this_url, PHP_URL_HOST );
			// Check img/css/js
			foreach ( $mapping_to_check as $to_check ) {
				if ( $v[ $to_check ] ) {
					Debug2::debug2( '[CDN] mapping ' . $to_check . ' -> ' . $this_url );

					// If filetype to url is one to many, make url be an array
					$this->_append_cdn_mapping( $to_check, $this_url );

					if ( ! in_array( $this_host, $this->cdn_mapping_hosts ) ) {
						$this->cdn_mapping_hosts[] = $this_host;
					}
				}
			}
			// Check file types
			if ( $v[ Base::CDN_MAPPING_FILETYPE ] ) {
				foreach ( $v[ Base::CDN_MAPPING_FILETYPE ] as $v2 ) {
					$this->_cfg_cdn_mapping[ Base::CDN_MAPPING_FILETYPE ] = true;

					// If filetype to url is one to many, make url be an array
					$this->_append_cdn_mapping( $v2, $this_url );

					if ( ! in_array( $this_host, $this->cdn_mapping_hosts ) ) {
						$this->cdn_mapping_hosts[] = $this_host;
					}
				}
				Debug2::debug2( '[CDN] mapping ' . implode( ',', $v[ Base::CDN_MAPPING_FILETYPE ] ) . ' -> ' . $this_url );
			}
		}

		if ( ! $this->_cfg_url_ori || ! $this->_cfg_cdn_mapping ) {
			if ( ! defined( self::BYPASS ) ) {
				define( self::BYPASS, true );
			}
			return;
		}

		$this->_cfg_ori_dir = Conf::val( Base::O_CDN_ORI_DIR );
		// In case user customized upload path
		if ( defined( 'UPLOADS' ) ) {
			$this->_cfg_ori_dir[] = UPLOADS;
		}

		// Check if need preg_replace
		$this->_cfg_url_ori = Utility::wildcard2regex( $this->_cfg_url_ori );

		$this->_cfg_cdn_exclude = Conf::val( Base::O_CDN_EXC );

		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_IMG ] ) ) {
			// Hook to srcset
			if ( function_exists( 'wp_calculate_image_srcset' ) ) {
				add_filter( 'wp_calculate_image_srcset', array( $this, 'srcset' ), 999 );
			}
			// Hook to mime icon
			add_filter( 'wp_get_attachment_image_src', array( $this, 'attach_img_src' ), 999 );
			add_filter( 'wp_get_attachment_url', array( $this, 'url_img' ), 999 );
		}

		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_CSS ] ) ) {
			add_filter( 'style_loader_src', array( $this, 'url_css' ), 999 );
		}

		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_JS ] ) ) {
			add_filter( 'script_loader_src', array( $this, 'url_js' ), 999 );
		}

	}

	/**
	 * Associate all filetypes with url
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _append_cdn_mapping( $filetype, $url ) {
		// If filetype to url is one to many, make url be an array
		if ( empty( $this->_cfg_cdn_mapping[ $filetype ] ) ) {
			$this->_cfg_cdn_mapping[ $filetype ] = $url;
		}
		elseif ( is_array( $this->_cfg_cdn_mapping[ $filetype ] ) ) {
			// Append url to filetype
			$this->_cfg_cdn_mapping[ $filetype ][] = $url;
		}
		else {
			// Convert _cfg_cdn_mapping from string to array
			$this->_cfg_cdn_mapping[ $filetype ] = array( $this->_cfg_cdn_mapping[ $filetype ], $url );
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {

			default:
				break;
		}

		Admin::redirect();
	}

	/**
	 * If include css/js in CDN
	 *
	 * @since  1.6.2.1
	 * @return bool true if included in CDN
	 */
	public static function inc_type( $type ) {
		$instance = self::get_instance();

		if ( $type == 'css' && ! empty( $instance->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_CSS ] ) ) {
			return true;
		}

		if ( $type == 'js' && ! empty( $instance->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_JS ] ) ) {
			return true;
		}

		return false;
	}

	/**
	 * Run CDN process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * @since  1.2.3
	 * @access public
	 * @return  string The content that is after optimization
	 */
	public static function finalize( $content ) {
		$instance = self::get_instance();
		$instance->content = $content;

		$instance->_finalize();
		return $instance->content;
	}

	/**
	 * Replace CDN url
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _finalize() {
		if ( defined( self::BYPASS ) ) {
			Debug2::debug2( 'CDN bypass' );
			return;
		}

		Debug2::debug( 'CDN _finalize' );

		// Start replacing img src
		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_INC_IMG ] ) ) {
			$this->_replace_img();
			$this->_replace_inline_css();
		}

		if ( ! empty( $this->_cfg_cdn_mapping[ Base::CDN_MAPPING_FILETYPE ] ) ) {
			$this->_replace_file_types();
		}

	}

	/**
	 * Parse all file types
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_file_types() {
		$ele_to_check = Conf::val( Base::O_CDN_ATTR );

		foreach ( $ele_to_check as $v ) {
			if ( ! $v || strpos( $v, '.' ) === false ) {
				Debug2::debug2( '[CDN] replace setting bypassed: no . attribute ' . $v );
				continue;
			}

			Debug2::debug2( '[CDN] replace attribute ' . $v );

			$v = explode( '.', $v );
			$attr = preg_quote( $v[ 1 ], '#' );
			if ( $v[ 0 ] ) {
				$pattern = '#<' . preg_quote( $v[ 0 ], '#' ) . '([^>]+)' . $attr . '=([\'"])(.+)\g{2}#iU';
			}
			else {
				$pattern = '# ' . $attr . '=([\'"])(.+)\g{1}#iU';
			}

			preg_match_all( $pattern, $this->content, $matches );

			if ( empty( $matches[ $v[ 0 ] ? 3 : 2 ] ) ) {
				continue;
			}

			foreach ( $matches[ $v[ 0 ] ? 3 : 2 ] as $k2 => $url ) {
				// Debug2::debug2( '[CDN] check ' . $url );
				$postfix = '.' . pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_EXTENSION );
				if ( ! array_key_exists( $postfix, $this->_cfg_cdn_mapping ) ) {
					// Debug2::debug2( '[CDN] non-existed postfix ' . $postfix );
					continue;
				}

				Debug2::debug2( '[CDN] matched file_type ' . $postfix . ' : ' . $url );

				if( ! $url2 = $this->rewrite( $url, Base::CDN_MAPPING_FILETYPE, $postfix ) ) {
					continue;
				}

				$attr = str_replace( $url, $url2, $matches[ 0 ][ $k2 ] );
				$this->content = str_replace( $matches[ 0 ][ $k2 ], $attr, $this->content );
			}
		}
	}

	/**
	 * Parse all images
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_img() {
		preg_match_all( '#<img([^>]+?)src=([\'"\\\]*)([^\'"\s\\\>]+)([\'"\\\]*)([^>]*)>#i', $this->content, $matches );
		foreach ( $matches[ 3 ] as $k => $url ) {
			// Check if is a DATA-URI
			if ( strpos( $url, 'data:image' ) !== false ) {
				continue;
			}

			if ( ! $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_IMG ) ) {
				continue;
			}

			$html_snippet = sprintf(
				'<img %1$s src=%2$s %3$s>',
				$matches[ 1 ][ $k ],
				$matches[ 2 ][ $k ] . $url2 . $matches[ 4 ][ $k ],
				$matches[ 5 ][ $k ]
			);
			$this->content = str_replace( $matches[ 0 ][ $k ], $html_snippet, $this->content );
		}
	}

	/**
	 * Parse and replace all inline styles containing url()
	 *
	 * @since  1.2.3
	 * @access private
	 */
	private function _replace_inline_css() {
		// preg_match_all( '/url\s*\(\s*(?!["\']?data:)(?![\'|\"]?[\#|\%|])([^)]+)\s*\)([^;},\s]*)/i', $this->content, $matches );
		Debug2::debug2( '[CDN] _replace_inline_css', $this->_cfg_cdn_mapping );

		/**
		 * Excludes `\` from URL matching
		 * @see  #959152 - Wordpress LSCache CDN Mapping causing malformed URLS
		 * @see  #685485
		 * @since 3.0
		 */
		preg_match_all( '#url\((?![\'"]?data)[\'"]?([^\)\'"\\\]+)[\'"]?\)#i', $this->content, $matches );
		foreach ( $matches[ 1 ] as $k => $url ) {
			$url = str_replace( array( ' ', '\t', '\n', '\r', '\0', '\x0B', '"', "'", '&quot;', '&#039;' ), '', $url );

			// Parse file postfix
			$postfix = '.' . pathinfo( parse_url( $url, PHP_URL_PATH ), PATHINFO_EXTENSION );
			if ( array_key_exists( $postfix, $this->_cfg_cdn_mapping ) ) {
				Debug2::debug2( '[CDN] matched file_type ' . $postfix . ' : ' . $url );
				if( ! $url2 = $this->rewrite( $url, Base::CDN_MAPPING_FILETYPE, $postfix ) ) {
					continue;
				}
			}
			else {
				if ( ! $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_IMG ) ) {
					continue;
				}
			}

			$attr = str_replace( $matches[ 1 ][ $k ], $url2, $matches[ 0 ][ $k ] );
			$this->content = str_replace( $matches[ 0 ][ $k ], $attr, $this->content );
		}
	}

	/**
	 * Hook to wp_get_attachment_image_src
	 *
	 * @since  1.2.3
	 * @since  1.7 Removed static from function
	 * @access public
	 * @param  array $img The URL of the attachment image src, the width, the height
	 * @return array
	 */
	public function attach_img_src( $img ) {
		if ( $img && $url = $this->rewrite( $img[ 0 ], Base::CDN_MAPPING_INC_IMG ) ) {
			$img[ 0 ] = $url;
		}
		return $img;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_img( $url ) {
		if ( $url && $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_IMG ) ) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_css( $url ) {
		if ( $url && $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_CSS ) ) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Try to rewrite one URL with CDN
	 *
	 * @since  1.7
	 * @access public
	 */
	public function url_js( $url ) {
		if ( $url && $url2 = $this->rewrite( $url, Base::CDN_MAPPING_INC_JS ) ) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Hook to replace WP responsive images
	 *
	 * @since  1.2.3
	 * @since  1.7 Removed static from function
	 * @access public
	 * @param  array $srcs
	 * @return array
	 */
	public function srcset( $srcs ) {
		if ( $srcs ) {
			foreach ( $srcs as $w => $data ) {
				if( ! $url = $this->rewrite( $data[ 'url' ], Base::CDN_MAPPING_INC_IMG ) ) {
					continue;
				}
				$srcs[ $w ][ 'url' ] = $url;
			}
		}
		return $srcs;
	}

	/**
	 * Replace URL to CDN URL
	 *
	 * @since  1.2.3
	 * @access public
	 * @param  string $url
	 * @return string        Replaced URL
	 */
	public function rewrite( $url, $mapping_kind, $postfix = false ) {
		Debug2::debug2( '[CDN] rewrite ' . $url );
		$url_parsed = parse_url( $url );

		if ( empty( $url_parsed[ 'path' ] ) ) {
			Debug2::debug2( '[CDN] -rewrite bypassed: no path' );
			return false;
		}

		// Only images under wp-cotnent/wp-includes can be replaced
		$is_internal_folder = Utility::str_hit_array( $url_parsed[ 'path' ], $this->_cfg_ori_dir );
		if ( ! $is_internal_folder ) {
			Debug2::debug2( '[CDN] -rewrite failed: path not match: ' . LSCWP_CONTENT_FOLDER );
			return false;
		}

		// Check if is external url
		if ( ! empty( $url_parsed[ 'host' ] ) ) {
			if ( ! Utility::internal( $url_parsed[ 'host' ] ) && ! $this->_is_ori_url( $url ) ) {
				Debug2::debug2( '[CDN] -rewrite failed: host not internal' );
				return false;
			}
		}

		if ( $this->_cfg_cdn_exclude ) {
			$exclude = Utility::str_hit_array( $url, $this->_cfg_cdn_exclude );
			if ( $exclude ) {
				Debug2::debug2( '[CDN] -abort excludes ' . $exclude );
				return false;
			}
		}

		// Fill full url before replacement
		if ( empty( $url_parsed[ 'host' ] ) ) {
			$url = Utility::uri2url( $url );
			Debug2::debug2( '[CDN] -fill before rewritten: ' . $url );

			$url_parsed = parse_url( $url );
		}

		$scheme = ! empty( $url_parsed[ 'scheme' ] ) ? $url_parsed[ 'scheme' ] . ':' : '';
		if ( $scheme ) {
			// Debug2::debug2( '[CDN] -scheme from url: ' . $scheme );
		}

		// Find the mapping url to be replaced to
		if ( empty( $this->_cfg_cdn_mapping[ $mapping_kind ] ) ) {
			return false;
		}
		if ( $mapping_kind !== Base::CDN_MAPPING_FILETYPE ) {
			$final_url = $this->_cfg_cdn_mapping[ $mapping_kind ];
		}
		else {
			// select from file type
			$final_url = $this->_cfg_cdn_mapping[ $postfix ];
		}

		// If filetype to url is one to many, need to random one
		if ( is_array( $final_url ) ) {
			$final_url = $final_url[ mt_rand( 0, count( $final_url ) - 1 ) ];
		}

		// Now lets replace CDN url
		foreach ( $this->_cfg_url_ori as $v ) {
			if ( strpos( $v, '*' ) !== false ) {
				$url = preg_replace( '#' . $scheme . $v . '#iU', $final_url, $url );
			}
			else {
				$url = str_replace( $scheme . $v, $final_url, $url );
			}
		}
		Debug2::debug2( '[CDN] -rewritten: ' . $url );

		return $url;
	}

	/**
	 * Check if is orignal URL of CDN or not
	 *
	 * @since  2.1
	 * @access private
	 */
	private function _is_ori_url( $url ) {
		$url_parsed = parse_url( $url );

		$scheme = ! empty( $url_parsed[ 'scheme' ] ) ? $url_parsed[ 'scheme' ] . ':' : '';

		foreach ( $this->_cfg_url_ori as $v ) {
			$needle = $scheme . $v;
			if ( strpos( $v, '*' ) !== false ) {
				if( preg_match( '#' . $needle . '#iU', $url ) ) {
					return true;
				}
			}
			else {
				if ( strpos( $url, $needle ) === 0 ) {
					return true;
				}
			}
		}

		return false;
	}

	/**
	 * Check if the host is the CDN internal host
	 *
	 * @since  1.2.3
	 *
	 */
	public static function internal( $host ) {
		if ( defined( self::BYPASS ) ) {
			return false;
		}

		$instance = self::get_instance();

		return in_array( $host, $instance->cdn_mapping_hosts );// todo: can add $this->_is_ori_url() check in future
	}

}
<?php
/**
 * LiteSpeed Object Cache Library
 *
 * @since  1.8
 */
defined( 'WPINC' ) || exit;

/**
 * Handle exception
 */
if ( ! function_exists( 'litespeed_exception_handler' ) ) {
	function litespeed_exception_handler( $errno, $errstr, $errfile, $errline ) {
		throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
	}
}

require_once __DIR__ . '/object-cache.cls.php';

/**
 * Sets up Object Cache Global and assigns it.
 *
 * @since 1.8
 */
function wp_cache_init() {
	$GLOBALS['wp_object_cache'] = WP_Object_Cache::get_instance();
}

/**
 * Retrieves the cache contents from the cache by key and group.
 *
 * @since 1.8
 */
function wp_cache_get( $key, $group = '', $force = false, &$found = null ) {
	global $wp_object_cache;

	return $wp_object_cache->get( $key, $group, $force, $found );
}

/**
 * Saves the data to the cache.
 *
 * @since 1.8
 */
function wp_cache_set( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->set( $key, $data, $group, $expire );
}

/**
 * Adds data to the cache, if the cache key doesn't already exist.
 *
 * @since 1.8
 */
function wp_cache_add( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->add( $key, $data, $group, $expire );
}

/**
 * Replaces the contents of the cache with new data.
 *
 * @since 1.8
 */
function wp_cache_replace( $key, $data, $group = '', $expire = 0 ) {
	global $wp_object_cache;

	return $wp_object_cache->replace( $key, $data, $group, $expire );
}

/**
 * Increment numeric cache item's value
 *
 * @since 1.8
 */
function wp_cache_incr( $key, $offset = 1, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->incr_desr( $key, $offset, $group );
}

/**
 * Decrements numeric cache item's value.
 *
 * @since 1.8
 */
function wp_cache_decr( $key, $offset = 1, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->incr_desr( $key, $offset, $group, false );
}

/**
 * Removes the cache contents matching key and group.
 *
 * @since 1.8
 */
function wp_cache_delete( $key, $group = '' ) {
	global $wp_object_cache;

	return $wp_object_cache->delete( $key, $group );
}

/**
 * Removes all cache items.
 *
 * @since 1.8
 */
function wp_cache_flush() {
	global $wp_object_cache;

	return $wp_object_cache->flush();
}

/**
 * Adds a group or set of groups to the list of global groups.
 *
 * @since 1.8
 */
function wp_cache_add_global_groups( $groups ) {
	global $wp_object_cache;

	$wp_object_cache->add_global_groups( $groups );
}

/**
 * Adds a group or set of groups to the list of non-persistent groups.
 *
 * @since 1.8
 */
function wp_cache_add_non_persistent_groups( $groups ) {
	global $wp_object_cache;

	$wp_object_cache->add_non_persistent_groups( $groups );
}

/**
 * Switches the internal blog ID.
 *
 * This changes the blog id used to create keys in blog specific groups.
 *
 * @since 1.8
 *
 * @see WP_Object_Cache::switch_to_blog()
 * @global WP_Object_Cache $wp_object_cache Object cache global instance.
 *
 * @param int $blog_id Site ID.
 */
function wp_cache_switch_to_blog( $blog_id ) {
	global $wp_object_cache;

	$wp_object_cache->switch_to_blog( $blog_id );
}

/**
 * Closes the cache.
 *
 * @since 1.8
 */
function wp_cache_close() {
	return true;
}



class WP_Object_Cache {
	protected static $_instance;

	private $_object_cache;

	private $_cache = array();
	private $_cache_404 = array();

	private $cache_total = 0;
	private $count_hit_incall = 0;
	private $count_hit = 0;
	private $count_miss_incall = 0;
	private $count_miss = 0;
	private $count_set = 0;

	private $blog_prefix;

	/**
	 * Init
	 *
	 * @since  1.8
	 * @access protected
	 */
	protected function __construct() {
		$this->_object_cache = \LiteSpeed\Object_Cache::get_instance();

		$this->multisite = is_multisite();
		$this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : '';

		/**
		 * Fix multiple instance using same oc issue
		 * @since  1.8.2
		 */
		! defined( 'LSOC_PREFIX' ) && define( 'LSOC_PREFIX', substr( md5( __FILE__ ), -5 ) );
	}

	/**
	 * Output debug info
	 *
	 * @since  1.8
	 * @access public
	 */
	public function debug() {
		$log = ' [total] ' . $this->cache_total
			. ' [hit_incall] ' . $this->count_hit_incall
			. ' [hit] ' . $this->count_hit
			. ' [miss_incall] ' . $this->count_miss_incall
			. ' [miss] ' . $this->count_miss
			. ' [set] ' . $this->count_set;

		return $log;
	}

	/**
	 * Get from cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function get( $key, $group = 'default', $force = false, &$found = null ) {
		$final_key = $this->_key( $key, $group );
// error_log('');
// error_log("oc: get \t\t\t[key] " . $final_key . ( $force ? "\t\t\t [forced] " : '' ) );
		$found = false;
		$found_in_oc = false;
		$cache_val = false;
		if ( array_key_exists( $final_key, $this->_cache ) && ! $force ) {
			$found = true;
			$cache_val = $this->_cache[ $final_key ];
			$this->count_hit_incall ++;
		}
		elseif ( ! array_key_exists( $final_key, $this->_cache_404 ) && ! $this->_object_cache->is_non_persistent( $group ) ) {
			$v = $this->_object_cache->get( $final_key );

			if ( $v !== null ) {
				$v = @maybe_unserialize( $v );
			}

			// To be compatible with false val
			if ( is_array( $v ) && array_key_exists( 'data', $v ) ) {
				$this->count_hit ++;
				$found = true;
				$found_in_oc = true;
				$cache_val = $v[ 'data' ];
			}
			else { // Can't find key, cache it to 404
// error_log("oc: add404\t\t\t[key] " . $final_key );
				$this->_cache_404[ $final_key ] = 1;
				$this->count_miss ++;
			}
		}
		else {
			$this->count_miss_incall ++;
		}

		if ( is_object( $cache_val ) ) {
			$cache_val = clone $cache_val;
		}

		// If not found but has `Store Transients` cfg on, still need to follow WP's get_transient() logic
		if ( ! $found && $this->_object_cache->store_transients( $group ) ) {
			$cache_val = $this->_transient_get( $key, $group );
			if ( $cache_val ) {
				$found = true; // $found not used for now (v1.8.3)
			}
		}

		if ( $found_in_oc ) {
			$this->_cache[ $final_key ] = $cache_val;
		}

		$this->cache_total ++;

		return $cache_val;
	}

	/**
	 * Set to cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function set( $key, $data, $group = 'default', $expire = 0 ) {
		$final_key = $this->_key( $key, $group );

		if ( is_object( $data ) ) {
			$data = clone $data;
		}
// error_log("oc: set \t\t\t[key] " . $final_key );
		$this->_cache[ $final_key ] = $data;

		if( array_key_exists( $final_key, $this->_cache_404 ) ) {
// error_log("oc: unset404\t\t\t[key] " . $final_key );
			unset( $this->_cache_404[ $final_key ] );
		}

		if ( ! $this->_object_cache->is_non_persistent( $group ) ) {
			$this->_object_cache->set( $final_key, serialize( array( 'data' => $data ) ), $expire );
			$this->count_set ++;
		}

		if ( $this->_object_cache->store_transients( $group ) ) {
			$this->_transient_set( $key, $data, $group, $expire );
		}

		return true;
	}

	/**
	 * Adds data to the cache if it doesn't already exist.
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add( $key, $data, $group = 'default', $expire = 0 ) {
		if ( wp_suspend_cache_addition() ) {
			return false;
		}

		$final_key = $this->_key( $key, $group );

		if ( array_key_exists( $final_key, $this->_cache ) ) {
			return false;
		}

		return $this->set( $key, $data, $group, $expire );
	}

	/**
	 * Replace cache if the cache key exists.
	 *
	 * @since 1.8
	 * @access public
	 */
	public function replace( $key, $data, $group = 'default', $expire = 0 ) {
		$final_key = $this->_key( $key, $group );

		if ( ! array_key_exists( $final_key, $this->_cache ) ) {
			return false;
		}

		return $this->set( $key, $data, $group, $expire );
	}

	/**
	 * Increments numeric cache item's value.
	 *
	 * @since 1.8
	 * @access public
	 */
	public function incr_desr( $key, $offset = 1, $group = 'default', $incr = true ) {
		$cache_val = $this->get( $key, $group );

		if ( $cache_val === false ) {
			return false;
		}

		if ( ! is_numeric( $cache_val ) ) {
			$cache_val = 0;
		}

		$offset = (int) $offset;

		if ( $incr ) {
			$cache_val += $offset;
		}
		else {
			$cache_val -= $offset;
		}

		if ( $cache_val < 0 ) {
			$cache_val = 0;
		}

		$this->set( $key, $cache_val, $group );

		return $cache_val;
	}

	/**
	 * Delete cache
	 *
	 * @since 1.8
	 * @access public
	 */
	public function delete( $key, $group = 'default' ) {

		$final_key = $this->_key( $key, $group );

		if ( $this->_object_cache->store_transients( $group ) ) {
			$this->_transient_del( $key, $group );
		}

		if ( array_key_exists( $final_key, $this->_cache ) ) {
			unset( $this->_cache[ $final_key ] );
		}
// error_log("oc: delete \t\t\t[key] " . $final_key );

		if ( $this->_object_cache->is_non_persistent( $group ) ) {
			return false;
		}

		return $this->_object_cache->delete( $final_key );
	}

	/**
	 * Clear all cached data
	 *
	 * @since 1.8
	 * @access public
	 */
	public function flush() {
		$this->_cache = array();
		$this->_cache_404 = array();
// error_log("oc: flush " );

		$this->_object_cache->flush();

		return true;
	}

	/**
	 * Add global groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_global_groups( $groups ) {
		$this->_object_cache->add_global_groups( $groups );
	}

	/**
	 * Add non persistent groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_non_persistent_groups( $groups ) {
		$this->_object_cache->add_non_persistent_groups( $groups );
	}

	/**
	 * Get the final key
	 *
	 * @since 1.8
	 * @access private
	 */
	private function _key( $key, $group = 'default' ) {
		$prefix = $this->_object_cache->is_global( $group ) ? '' : $this->blog_prefix;

		return LSOC_PREFIX . $prefix . $group . '.' . $key;
	}

	/**
	 * Switches the internal blog ID.
	 *
	 * This changes the blog ID used to create keys in blog specific groups.
	 *
	 * @since 1.8
	 *
	 * @param int $blog_id Blog ID.
	 */
	public function switch_to_blog( $blog_id ) {
		$blog_id = (int) $blog_id;
		$this->blog_prefix = $this->multisite ? $blog_id . ':' : '';
	}

	/**
	 * Get transient from wp table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `get_transient`/`set_site_transient`
	 */
	private function _transient_get( $transient, $group ) {
		if ( $group == 'transient' ) {
			/**** Ori WP func start ****/
			$transient_option = '_transient_' . $transient;
			if ( ! wp_installing() ) {
				// If option is not in alloptions, it is not autoloaded and thus has a timeout
				$alloptions = wp_load_alloptions();
				if ( !isset( $alloptions[$transient_option] ) ) {
					$transient_timeout = '_transient_timeout_' . $transient;
					$timeout = get_option( $transient_timeout );
					if ( false !== $timeout && $timeout < time() ) {
						delete_option( $transient_option  );
						delete_option( $transient_timeout );
						$value = false;
					}
				}
			}

			if ( ! isset( $value ) )
				$value = get_option( $transient_option );
			/**** Ori WP func end ****/
		}
		elseif ( $group == 'site-transient' ) {
			/**** Ori WP func start ****/
			$no_timeout = array('update_core', 'update_plugins', 'update_themes');
			$transient_option = '_site_transient_' . $transient;
			if ( ! in_array( $transient, $no_timeout ) ) {
				$transient_timeout = '_site_transient_timeout_' . $transient;
				$timeout = get_site_option( $transient_timeout );
				if ( false !== $timeout && $timeout < time() ) {
					delete_site_option( $transient_option  );
					delete_site_option( $transient_timeout );
					$value = false;
				}
			}

			if ( ! isset( $value ) )
				$value = get_site_option( $transient_option );
			/**** Ori WP func end ****/
		}
		else {
			$value = false;
		}

		return $value;
	}

	/**
	 * Set transient to WP table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `set_transient`/`set_site_transient`
	 */
	private function _transient_set( $transient, $value, $group, $expiration ) {
		if ( $group == 'transient' ) {
			/**** Ori WP func start ****/
			$transient_timeout = '_transient_timeout_' . $transient;
			$transient_option = '_transient_' . $transient;
			if ( false === get_option( $transient_option ) ) {
				$autoload = 'yes';
				if ( $expiration ) {
					$autoload = 'no';
					add_option( $transient_timeout, time() + $expiration, '', 'no' );
				}
				$result = add_option( $transient_option, $value, '', $autoload );
			} else {
				// If expiration is requested, but the transient has no timeout option,
				// delete, then re-create transient rather than update.
				$update = true;
				if ( $expiration ) {
					if ( false === get_option( $transient_timeout ) ) {
						delete_option( $transient_option );
						add_option( $transient_timeout, time() + $expiration, '', 'no' );
						$result = add_option( $transient_option, $value, '', 'no' );
						$update = false;
					} else {
						update_option( $transient_timeout, time() + $expiration );
					}
				}
				if ( $update ) {
					$result = update_option( $transient_option, $value );
				}
			}
			/**** Ori WP func end ****/
		}
		elseif ( $group == 'site-transient' ) {
			/**** Ori WP func start ****/
			$transient_timeout = '_site_transient_timeout_' . $transient;
			$option = '_site_transient_' . $transient;
			if ( false === get_site_option( $option ) ) {
				if ( $expiration )
					add_site_option( $transient_timeout, time() + $expiration );
				$result = add_site_option( $option, $value );
			} else {
				if ( $expiration )
					update_site_option( $transient_timeout, time() + $expiration );
				$result = update_site_option( $option, $value );
			}
			/**** Ori WP func end ****/
		}
		else {
			$result = null;
		}

		return $result;
	}

	/**
	 * Delete transient from WP table
	 *
	 * @since 1.8.3
	 * @access private
	 * @see `wp-includes/option.php` function `delete_transient`/`delete_site_transient`
	 */
	private function _transient_del( $transient, $group ) {
		if ( $group == 'transient' ) {
			/**** Ori WP func start ****/
			$option_timeout = '_transient_timeout_' . $transient;
			$option = '_transient_' . $transient;
			$result = delete_option( $option );
			if ( $result )
				delete_option( $option_timeout );
			/**** Ori WP func end ****/
		}
		elseif ( $group == 'site-transient' ) {
			/**** Ori WP func start ****/
			$option_timeout = '_site_transient_timeout_' . $transient;
			$option = '_site_transient_' . $transient;
			$result = delete_site_option( $option );
			if ( $result )
				delete_site_option( $option_timeout );
			/**** Ori WP func end ****/
		}
	}

	/**
	 * Get the current instance object.
	 *
	 * @since 1.8
	 * @access public
	 */
	public static function get_instance() {
		if ( ! isset( self::$_instance ) ) {
			self::$_instance = new self();
		}

		return self::$_instance;
	}
}<?php
/**
 * The cron task class.
 *
 * @since      	1.1.3
 * @since  		1.5 Moved into /inc
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Task extends Instance {
	protected static $_instance;

	private static $_triggers = array(
		Base::O_IMG_OPTM_CRON			 		=> array( 'name' => 'litespeed_task_imgoptm_pull', 'hook' => 'LiteSpeed\Img_Optm::cron_pull' ), // always fetch immediately
		Base::O_OPTM_CCSS_ASYNC			 		=> array( 'name' => 'litespeed_task_ccss', 'hook' => 'LiteSpeed\CSS::cron_ccss' ),
		Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC	=> array( 'name' => 'litespeed_task_lqip', 'hook' => 'LiteSpeed\Placeholder::cron' ),
		Base::O_DISCUSS_AVATAR_CRON				=> array( 'name' => 'litespeed_task_avatar', 'hook' => 'LiteSpeed\Avatar::cron' ),
		Base::O_IMG_OPTM_AUTO				 	=> array( 'name' => 'litespeed_task_imgoptm_req', 'hook' => 'LiteSpeed\Img_Optm::cron_auto_request' ),
		Base::O_CRAWLER 						=> array( 'name' => 'litespeed_task_crawler', 'hook' => 'LiteSpeed\Crawler::start' ), // Set crawler to last one to use above results
	);

	const FITLER_CRAWLER = 'litespeed_crawl_filter';
	const FITLER = 'litespeed_filter';

	/**
	 * Init
	 *
	 * @since  1.6
	 * @access protected
	 */
	protected function __construct() {
	}

	/**
	 * Keep all tasks in cron
	 *
	 * @since 3.0
	 * @access public
	 */
	public function init() {
		Debug2::debug2( '⏰ Task init' );

		add_filter( 'cron_schedules', array( $this, 'lscache_cron_filter' ) );

		foreach ( self::$_triggers as $id => $trigger ) {
			if ( Conf::val( $id ) ) {
				// Special check for crawler
				if ( $id == Base::O_CRAWLER ) {
					if ( ! Router::can_crawl() ) {
						continue;
					}

					add_filter( 'cron_schedules', array( $this, 'lscache_cron_filter_crawler' ) );
				}

				if( ! wp_next_scheduled( $trigger[ 'name' ] ) ) {
					Debug2::debug( '⏰ Cron hook register [name] ' . $trigger[ 'name' ] );

					wp_schedule_event( time(), $id == Base::O_CRAWLER ? self::FITLER_CRAWLER : self::FITLER, $trigger[ 'name' ] );
				}

				add_action( $trigger[ 'name' ], $trigger[ 'hook' ] );
			}
		}

	}

	/**
	 * Clean all potential existing crons
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function destroy() {
		Utility::compatibility();
		array_map( 'wp_clear_scheduled_hook', array_column( self::$_triggers, 'name' ) );
	}

	/**
	 * Try to clean the crons if disabled
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function try_clean( $id ) {
		// Clean v2's leftover cron ( will remove in v3.1 )
		// foreach ( wp_get_ready_cron_jobs() as $hooks ) {
		// 	foreach ( $hooks as $hook => $v ) {
		// 		if ( strpos( $hook, 'litespeed_' ) === 0 && ( substr( $hook, -8 ) === '_trigger' || strpos( $hook, 'litespeed_task_' ) !== 0 ) ) {
		// 			Debug2::debug( '⏰ Cron clear legacy [hook] ' . $hook );
		// 			wp_clear_scheduled_hook( $hook );
		// 		}
		// 	}
		// }

		if ( $id && ! empty( self::$_triggers[ $id ] ) ) {
			if ( ! Conf::val( $id ) || ( $id == Base::O_CRAWLER && ! Router::can_crawl() ) ) {
				Debug2::debug( '⏰ Cron clear [id] ' . $id . ' [hook] ' . self::$_triggers[ $id ][ 'name' ] );
				wp_clear_scheduled_hook( self::$_triggers[ $id ][ 'name' ] );
			}
			return;
		}

		Debug2::debug( '⏰ ❌ Unknown cron [id] ' . $id );
	}

	/**
	 * Register cron interval imgoptm
	 *
	 * @since 1.6.1
	 * @access public
	 */
	public function lscache_cron_filter( $schedules ) {
		if ( ! array_key_exists( self::FITLER, $schedules ) ) {
			$schedules[ self::FITLER ] = array(
				'interval' => 60,
				'display'  => __( 'Every Minute', 'litespeed-cache' ),
			);
		}
		return $schedules;
	}

	/**
	 * Register cron interval
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function lscache_cron_filter_crawler( $schedules ) {
		$interval = Conf::val( Base::O_CRAWLER_RUN_INTERVAL );
		// $wp_schedules = wp_get_schedules();
		if ( ! array_key_exists( self::FITLER_CRAWLER, $schedules ) ) {
			// 	Debug2::debug('Crawler cron log: cron filter '.$interval.' added');
			$schedules[ self::FITLER_CRAWLER ] = array(
				'interval' => $interval,
				'display'  => __( 'LiteSpeed Crawler Cron', 'litespeed-cache' ),
			);
		}
		return $schedules;
	}

}<?php
/**
 * The frontend GUI class.
 *
 * @since      	1.3
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class GUI extends Base {
	protected static $_instance;

	private static $_clean_counter = 0;

	private $_promo_true;

	// [ file_tag => [ days, litespeed_only ], ... ]
	private $_promo_list = array(
		'new_version'	=> array( 1, false ),
		'score'			=> array( 5, false ),
		// 'slack'		=> array( 3, false ),
	);


	const TYPE_DISMISS_WHM = 'whm';
	const TYPE_DISMISS_EXPIRESDEFAULT = 'ExpiresDefault';
	const TYPE_DISMISS_PROMO = 'promo';
	const TYPE_DISMISS_PIN = 'pin';

	const WHM_MSG = 'lscwp_whm_install';
	const WHM_MSG_VAL = 'whm_install';

	protected $_summary;

	/**
	 * Instance
	 *
	 * @since  1.3
	 * @access protected
	 */
	protected function __construct() {
		$this->_summary = self::get_summary();

	}

	/**
	 * Frontend Init
	 *
	 * @since  3.0
	 */
	public function frontend_init() {
		if ( is_admin() ) {
			return;
		}

		Debug2::debug2( '[GUI] init' );
		if ( is_admin_bar_showing() && current_user_can( 'manage_options' ) ) {
			add_action( 'wp_enqueue_scripts', array( $this, 'frontend_enqueue_style' ) );
			add_action( 'admin_bar_menu', array( $this, 'frontend_shortcut' ), 95 );
		}

		/**
		 * Turn on instant click
		 * @since  1.8.2
		 */
		if ( Conf::val( Base::O_UTIL_INSTANT_CLICK ) ) {
			add_action( 'wp_enqueue_scripts', array( $this, 'frontend_enqueue_style_public' ) );
		}
	}

	/**
	 * Get the lscache stats
	 *
	 * @since  3.0
	 */
	public function lscache_stats() {
		return false;

		$stat_titles = array(
			'PUB_CREATES'		=> __( 'Public Caches', 'litespeed-cache' ),
			'PUB_HITS'			=> __( 'Public Cache Hits', 'litespeed-cache' ),
			'PVT_CREATES'		=> __( 'Private Caches', 'litespeed-cache' ),
			'PVT_HITS'			=> __( 'Private Cache Hits', 'litespeed-cache' ),
		);

		// Build the readable format
		$data = array();
		foreach ( $stat_titles as $k => $v ) {
			if ( array_key_exists( $k, $stats ) ) {
				$data[ $v ] = number_format( $stats[ $k ] );
			}
		}

		return $data;
	}

	/**
	 * Display a pie
	 *
	 * @since 1.6.6
	 */
	public static function pie( $percent, $width = 50, $finished_tick = false, $without_percentage = false, $append_cls = false ) {
		$percentage = '<text x="50%" y="50%">' . $percent . ( $without_percentage ? '' : '%' ) . '</text>';

		if ( $percent == 100 && $finished_tick ) {
			$percentage = '<text x="50%" y="50%" class="litespeed-pie-done">&#x2713</text>';
		}

		return "
		<svg class='litespeed-pie $append_cls' viewbox='0 0 33.83098862 33.83098862' width='$width' height='$width' xmlns='http://www.w3.org/2000/svg'>
			<circle class='litespeed-pie_bg' cx='16.91549431' cy='16.91549431' r='15.91549431' />
			<circle class='litespeed-pie_circle' cx='16.91549431' cy='16.91549431' r='15.91549431' stroke-dasharray='$percent,100' />
			<g class='litespeed-pie_info'>$percentage</g>
		</svg>
		";
	}

	/**
	 * Display a tiny pie with a tooltip
	 *
	 * @since 3.0
	 */
	public static function pie_tiny( $percent, $width = 50, $tooltip = '', $tooltip_pos = 'up', $append_cls = false ) {

		// formula C = 2πR
		$dasharray = 2 * 3.1416 * 9 * ( $percent / 100 );

		return "
		<button type='button' data-balloon-break data-balloon-pos='$tooltip_pos' aria-label='$tooltip' class='litespeed-btn-pie'>
		<svg class='litespeed-pie litespeed-pie-tiny $append_cls' viewbox='0 0 30 30' width='$width' height='$width' xmlns='http://www.w3.org/2000/svg'>
			<circle class='litespeed-pie_bg' cx='15' cy='15' r='9' />
			<circle class='litespeed-pie_circle' cx='15' cy='15' r='9' stroke-dasharray='$dasharray,100' />
			<g class='litespeed-pie_info'><text x='50%' y='50%'>i</text></g>
		</svg>
		</button>
		";
	}

	/**
	 * Get classname of PageSpeed Score
	 *
	 * Scale:
	 * 	90-100 (fast)
	 * 	50-89 (average)
	 * 	0-49 (slow)
	 *
	 * @since  2.9
	 * @access public
	 */
	public function get_cls_of_pagescore( $score ) {
		if ( $score >= 90 ) {
			return 'success';
		}

		if ( $score >= 50 ) {
			return 'warning';
		}

		return 'danger';
	}

	/**
	 * Dismiss banner
	 *
	 * @since 1.0
	 * @access public
	 */
	public static function dismiss() {
		$_instance = self::get_instance();
		switch ( Router::verify_type() ) {
			case self::TYPE_DISMISS_WHM :
				self::dismiss_whm();
				break;

			case self::TYPE_DISMISS_EXPIRESDEFAULT :
				self::update_option( Admin_Display::DB_DISMISS_MSG, Admin_Display::RULECONFLICT_DISMISSED );
				break;

			case self::TYPE_DISMISS_PIN:
				admin_display::dismiss_pin();
				break;

			case self::TYPE_DISMISS_PROMO:
				if ( empty( $_GET[ 'promo_tag' ] ) ) {
					break;
				}

				$promo_tag = $_GET[ 'promo_tag' ];

				if ( empty( $_instance->_promo_list[ $promo_tag ] ) ) {
					break;
				}

				defined( 'LSCWP_LOG' ) && Debug2::debug( '[GUI] Dismiss promo ' . $promo_tag );

				// Forever dismiss
				if ( ! empty( $_GET[ 'done' ] ) ) {
					$_instance->_summary[ $promo_tag ] = 'done';
				}
				elseif ( ! empty( $_GET[ 'later' ] ) ) {
					// Delay the banner to half year later
					$_instance->_summary[ $promo_tag ] = time() + 86400 * 180;
				}
				else {
					// Update welcome banner to 30 days after
					$_instance->_summary[ $promo_tag ] = time() + 86400 * 30;
				}

				self::save_summary();

				break;

			default:
				break;
		}

		if ( Router::is_ajax() ) {
			// All dismiss actions are considered as ajax call, so just exit
			exit( json_encode( array( 'success' => 1 ) ) );
		}

		// Plain click link, redirect to referral url
		Admin::redirect();
	}

	/**
	 * Check if has rule conflict notice
	 *
	 * @since 1.1.5
	 * @access public
	 * @return boolean
	 */
	public static function has_msg_ruleconflict() {
		return self::get_option( Admin_Display::DB_DISMISS_MSG ) == Admin_Display::RULECONFLICT_ON;
	}

	/**
	 * Check if has whm notice
	 *
	 * @since 1.1.1
	 * @access public
	 * @return boolean
	 */
	public static function has_whm_msg() {
		return self::get_option( self::WHM_MSG ) == self::WHM_MSG_VAL;
	}

	/**
	 * Delete whm msg tag
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function dismiss_whm() {
		self::delete_option( self::WHM_MSG );
	}

	/**
	 * Set current page a litespeed page
	 *
	 * @since  2.9
	 */
	private function _is_litespeed_page() {
		if ( ! empty( $_GET[ 'page' ] ) && in_array( $_GET[ 'page' ],
			array(
				'litespeed-settings',
				'litespeed-dash',
				Admin::PAGE_EDIT_HTACCESS,
				'litespeed-optimization',
				'litespeed-crawler',
				'litespeed-import',
				'litespeed-report',
			) )
		) {
			return true;
		}

		return false;
	}

	/**
	 * Display promo banner
	 *
	 * @since 2.1
	 * @access public
	 */
	public function show_promo( $check_only = false ) {
		$is_litespeed_page = $this->_is_litespeed_page();

		// Bypass showing info banner if disabled all in debug
		if ( defined( 'LITESPEED_DISABLE_ALL' ) ) {
			if ( $is_litespeed_page && ! $check_only ) {
				include_once LSCWP_DIR . "tpl/inc/disabled_all.php";
			}

			return false;
		}

		if ( file_exists( ABSPATH . '.litespeed_no_banner' ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[GUI] Bypass banners due to silence file' );
			return false;
		}

		foreach ( $this->_promo_list as $promo_tag => $v ) {
			list( $delay_days, $litespeed_page_only ) = $v;

			if ( $litespeed_page_only && ! $is_litespeed_page ) {
				continue;
			}

			// first time check
			if ( empty( $this->_summary[ $promo_tag ] ) ) {
				$this->_summary[ $promo_tag ] = time() + 86400 * $delay_days;
				self::save_summary();

				continue;
			}

			$promo_timestamp = $this->_summary[ $promo_tag ];

			// was ticked as done
			if ( $promo_timestamp == 'done' ) {
				continue;
			}

			// Not reach the dateline yet
			if ( time() < $promo_timestamp ) {
				continue;
			}

			// try to load, if can pass, will set $this->_promo_true = true
			$this->_promo_true = false;
			include LSCWP_DIR . "tpl/banner/$promo_tag.php";

			// If not defined, means it didn't pass the display workflow in tpl.
			if ( ! $this->_promo_true ) {
				continue;
			}

			if ( $check_only ) {
				return $promo_tag;
			}

			defined( 'LSCWP_LOG' ) && Debug2::debug( '[GUI] Show promo ' . $promo_tag );

			// Only contain one
			break;

		}

		return false;
	}

	/**
	 * Load frontend public script
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function frontend_enqueue_style_public() {
		wp_enqueue_script( Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/js/instant_click.min.js', array(), Core::VER, true );
	}

	/**
	 * Load frontend menu shortcut
	 *
	 * @since  1.3
	 * @access public
	 */
	public function frontend_enqueue_style() {
		wp_enqueue_style( Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/css/litespeed.css', array(), Core::VER, 'all' );
	}

	/**
	 * Load frontend menu shortcut
	 *
	 * @since  1.3
	 * @access public
	 */
	public function frontend_shortcut() {
		global $wp_admin_bar;

		$wp_admin_bar->add_menu( array(
			'id'	=> 'litespeed-menu',
			'title'	=> '<span class="ab-icon"></span>',
			'href'	=> get_admin_url( null, 'admin.php?page=litespeed' ),
			'meta'	=> array( 'tabindex' => 0, 'class' => 'litespeed-top-toolbar' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-single',
			'title'		=> __( 'Purge this page', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_FRONT, false, true ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-single-action',
			'title'		=> __( 'Mark this page as ', 'litespeed-cache' ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		if ( ! empty( $_SERVER[ 'REQUEST_URI' ] ) ) {
			$append_arr = array(
				Conf::TYPE_SET . '[' . Base::O_CACHE_FORCE_URI . '][]' => $_SERVER[ 'REQUEST_URI' ] . '$',
				'redirect'	=> $_SERVER[ 'REQUEST_URI' ],
			);
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-single-action',
				'id'		=> 'litespeed-single-forced_cache',
				'title'		=> __( 'Forced cacheable', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr ),
			) );

			$append_arr = array(
				Conf::TYPE_SET . '[' . Base::O_CACHE_EXC . '][]' => $_SERVER[ 'REQUEST_URI' ] . '$',
				'redirect'	=> $_SERVER[ 'REQUEST_URI' ],
			);
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-single-action',
				'id'		=> 'litespeed-single-noncache',
				'title'		=> __( 'Non cacheable', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr ),
			) );

			$append_arr = array(
				Conf::TYPE_SET . '[' . Base::O_CACHE_PRIV_URI . '][]' => $_SERVER[ 'REQUEST_URI' ] . '$',
				'redirect'	=> $_SERVER[ 'REQUEST_URI' ],
			);
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-single-action',
				'id'		=> 'litespeed-single-private',
				'title'		=> __( 'Private cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr ),
			) );

			$append_arr = array(
				Conf::TYPE_SET . '[' . Base::O_OPTM_EXC . '][]' => $_SERVER[ 'REQUEST_URI' ] . '$',
				'redirect'	=> $_SERVER[ 'REQUEST_URI' ],
			);
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-single-action',
				'id'		=> 'litespeed-single-nonoptimize',
				'title'		=> __( 'No optimization', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, true, $append_arr ),
			) );
		}

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-single-action',
			'id'		=> 'litespeed-single-more',
			'title'		=> __( 'More settings', 'litespeed-cache' ),
			'href'		=> get_admin_url( null, 'admin.php?page=litespeed-cache' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-all',
			'title'		=> __( 'Purge All', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL, false, '_ori' ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-all-lscache',
			'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LSCache', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE, false, '_ori' ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-cssjs',
			'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'CSS/JS Cache', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CSSJS, false, '_ori' ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		if ( defined( 'LSCWP_OBJECT_CACHE' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-object',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Object Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OBJECT, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Router::opcache_enabled() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-opcache',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Opcode Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OPCACHE, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Conf::val( Base::O_OPTM_CCSS_GEN ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-ccss',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Critical CSS', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CCSS, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Conf::val( Base::O_OPTM_LOCALIZE ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-localres',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Localized Resources', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LOCALRES, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Placeholder::has_lqip_cache() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-placeholder',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LQIP Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LQIP, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Avatar::has_cache() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-avatar',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Gravatar Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_AVATAR, false, '_ori' ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		do_action( 'litespeed_frontend_shortcut' );

	}

	/**
	 * Hooked to wp_before_admin_bar_render.
	 * Adds a link to the admin bar so users can quickly purge all.
	 *
	 * @access public
	 * @global WP_Admin_Bar $wp_admin_bar
	 * @since 1.7.2 Moved from admin_display.cls to gui.cls; Renamed from `add_quick_purge` to `backend_shortcut`
	 */
	public function backend_shortcut() {
		global $wp_admin_bar;

		// if ( defined( 'LITESPEED_ON' ) ) {
		$wp_admin_bar->add_menu( array(
			'id'    => 'litespeed-menu',
			'title' => '<span class="ab-icon" title="' . __( 'LiteSpeed Cache Purge All', 'litespeed-cache' ) . ' - ' . __( 'LSCache', 'litespeed-cache' ) . '"></span>',
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE ),
			'meta'  => array( 'tabindex' => 0, 'class' => 'litespeed-top-toolbar' ),
		) );
		// }
		// else {
		// 	$wp_admin_bar->add_menu( array(
		// 		'id'    => 'litespeed-menu',
		// 		'title' => '<span class="ab-icon" title="' . __( 'LiteSpeed Cache', 'litespeed-cache' ) . '"></span>',
		// 		'meta'  => array( 'tabindex' => 0, 'class' => 'litespeed-top-toolbar' ),
		// 	) );
		// }

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-bar-manage',
			'title'		=> __( 'Manage', 'litespeed-cache' ),
			'href'		=> 'admin.php?page=litespeed',
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-bar-setting',
			'title'		=> __( 'Settings', 'litespeed-cache' ),
			'href'		=> 'admin.php?page=litespeed-cache',
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		if ( ! is_network_admin() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-bar-imgoptm',
				'title'		=> __( 'Image Optimization', 'litespeed-cache' ),
				'href'		=> 'admin.php?page=litespeed-img_optm',
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-all',
			'title'		=> __( 'Purge All', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-all-lscache',
			'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LSCache', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LSCACHE ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		$wp_admin_bar->add_menu( array(
			'parent'	=> 'litespeed-menu',
			'id'		=> 'litespeed-purge-cssjs',
			'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'CSS/JS Cache', 'litespeed-cache' ),
			'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CSSJS ),
			'meta'		=> array( 'tabindex' => '0' ),
		) );

		if ( Conf::val( Base::O_CDN_CLOUDFLARE ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-cloudflare',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Cloudflare', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_PURGE_ALL ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( defined( 'LSCWP_OBJECT_CACHE' ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-object',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Object Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OBJECT ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Router::opcache_enabled() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-opcache',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Opcode Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_OPCACHE ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Conf::val( Base::O_OPTM_CCSS_GEN ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-ccss',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Critical CSS', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_CCSS ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Conf::val( Base::O_OPTM_LOCALIZE ) ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-localres',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Localized Resources', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LOCALRES ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Placeholder::has_lqip_cache() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-placeholder',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LQIP Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_LQIP ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		if ( Avatar::has_cache() ) {
			$wp_admin_bar->add_menu( array(
				'parent'	=> 'litespeed-menu',
				'id'		=> 'litespeed-purge-avatar',
				'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Gravatar Cache', 'litespeed-cache' ),
				'href'		=> Utility::build_url( Router::ACTION_PURGE, Purge::TYPE_PURGE_ALL_AVATAR ),
				'meta'		=> array( 'tabindex' => '0' ),
			) );
		}

		do_action( 'litespeed_backend_shortcut' );
	}

	/**
	 * Clear unfinished data
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function img_optm_clean_up( $unfinished_num ) {
		return sprintf(
			'<a href="%1$s" class="button litespeed-btn-warning" data-balloon-pos="up" aria-label="%2$s"><span class="dashicons dashicons-editor-removeformatting"></span>&nbsp;%3$s</a>',
			Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CLEAN ),
			__( 'Remove all previous unfinished image optimization requests.', 'litespeed-cache' ),
			__( 'Clean Up Unfinished Data', 'litespeed-cache' ) . ( $unfinished_num ? ': ' . Admin_Display::print_plural( $unfinished_num, 'image' ) : '')
		);
	}

	/**
	 * Generate install link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function plugin_install_link( $title, $name, $v ) {
		$url = wp_nonce_url(self_admin_url('update.php?action=install-plugin&plugin=' . $name ), 'install-plugin_' . $name );

		$action = sprintf(
			'<a href="%1$s" class="install-now" data-slug="%2$s" data-name="%3$s" aria-label="%4$s">%5$s</a>',
			esc_url( $url ),
			esc_attr( $name ),
			esc_attr( $title ),
			esc_attr( sprintf( __( 'Install %s' ), $title ) ),
			__( 'Install Now' )
		);

		return $action;

		// $msg .= " <a href='$upgrade_link' class='litespeed-btn-success' target='_blank'>" . __( 'Click here to upgrade', 'litespeed-cache' ) . '</a>';

	}

	/**
	 * Generate upgrade link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function plugin_upgrade_link( $title, $name, $v ) {
		$details_url = self_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $name . '&section=changelog&TB_iframe=true&width=600&height=800' );
		$file = $name . '/' . $name . '.php';

		$msg = sprintf( __( '<a href="%1$s" %2$s>View version %3$s details</a> or <a href="%4$s" %5$s target="_blank">update now</a>.' ),
			esc_url( $details_url ),
			sprintf( 'class="thickbox open-plugin-details-modal" aria-label="%s"',
				esc_attr( sprintf( __( 'View %1$s version %2$s details' ), $title, $v ) )
			),
			$v,
			wp_nonce_url( self_admin_url( 'update.php?action=upgrade-plugin&plugin=' ) . $file, 'upgrade-plugin_' . $file ),
			sprintf( 'class="update-link" aria-label="%s"',
				esc_attr( sprintf( __( 'Update %s now' ), $title ) )
			)
		);

		return $msg;
	}

	/**
	 * Finalize buffer by GUI class
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function finalize( $buffer ) {
		$instance = self::get_instance();
		return $instance->_clean_wrapper( $buffer );
	}

	/**
	 * Clean wrapper from buffer
	 *
	 * @since  1.4
	 * @since  1.6 converted to private with adding prefix _
	 * @access private
	 */
	private function _clean_wrapper( $buffer ) {
		if ( self::$_clean_counter < 1 ) {
			Debug2::debug2( "GUI bypassed by no counter" );
			return $buffer;
		}

		Debug2::debug2( "GUI start cleaning counter " . self::$_clean_counter );

		for ( $i = 1; $i <= self::$_clean_counter; $i ++ ) {
			// If miss beginning
			$start = strpos( $buffer, self::clean_wrapper_begin( $i ) );
			if ( $start === false ) {
				$buffer = str_replace( self::clean_wrapper_end( $i ), '', $buffer );
				Debug2::debug2( "GUI lost beginning wrapper $i" );
				continue;
			}

			// If miss end
			$end_wrapper = self::clean_wrapper_end( $i );
			$end = strpos( $buffer, $end_wrapper );
			if ( $end === false ) {
				$buffer = str_replace( self::clean_wrapper_begin( $i ), '', $buffer );
				Debug2::debug2( "GUI lost ending wrapper $i" );
				continue;
			}

			// Now replace wrapped content
			$buffer = substr_replace( $buffer, '', $start, $end - $start + strlen( $end_wrapper ) );
			Debug2::debug2( "GUI cleaned wrapper $i" );
		}

		return $buffer;
	}

	/**
	 * Display a to-be-removed html wrapper
	 *
	 * @since  1.4
	 * @access public
	 */
	public static function clean_wrapper_begin( $counter = false ) {
		if ( $counter === false ) {
			self::$_clean_counter ++;
			$counter = self::$_clean_counter;
			Debug2::debug( "GUI clean wrapper $counter begin" );
		}
		return '<!-- LiteSpeed To Be Removed begin ' . $counter . ' -->';
	}

	/**
	 * Display a to-be-removed html wrapper
	 *
	 * @since  1.4
	 * @access public
	 */
	public static function clean_wrapper_end( $counter = false ) {
		if ( $counter === false ) {
			$counter = self::$_clean_counter;
			Debug2::debug( "GUI clean wrapper $counter end" );
		}
		return '<!-- LiteSpeed To Be Removed end ' . $counter . ' -->';
	}

}


<?php
/**
 * The plugin vary class to manage X-LiteSpeed-Vary
 *
 * @since      	1.1.3
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Vary extends Instance {
	protected static $_instance;

	const X_HEADER = 'X-LiteSpeed-Vary';

	private static $_vary_name = '_lscache_vary'; // this default vary cookie is used for logged in status check
	private static $_vary_cookies = array(); // vary header only!
	private static $_default_vary_val = array();
	private static $_can_change_vary = false; // Currently only AJAX used this

	/**
	 * Adds the actions used for setting up cookies on log in/out.
	 *
	 * Also checks if the database matches the rewrite rule.
	 *
	 * @since 1.0.4
	 */
	protected function __construct() {
		// logged in user
		if ( Router::is_logged_in() ) {
			// If not esi, check cache logged-in user setting
			if ( ! Router::esi_enabled() ) {
				// If cache logged-in, then init cacheable to private
				if ( Conf::val( Base::O_CACHE_PRIV ) ) {
					add_action( 'wp_logout', __NAMESPACE__ . '\Purge::purge_on_logout' );

					Control::init_cacheable();
					Control::set_private( 'logged in user' );
				}
				// No cache for logged-in user
				else {
					Control::set_nocache( 'logged in user' );
				}
			}
			// ESI is on, can be public cache
			else {
				// Need to make sure vary is using group id
				Control::init_cacheable();
			}

			// register logout hook to clear login status
			add_action( 'clear_auth_cookie', array( $this, 'remove_logged_in' ) );

		}
		else {
			// Set vary cookie for logging in user, otherwise the user will hit public with vary=0 (guest version)
			add_action( 'set_logged_in_cookie', array( $this, 'add_logged_in' ), 10, 4 );
			add_action( 'wp_login', __NAMESPACE__ . '\Purge::purge_on_logout' );

			Control::init_cacheable();

			// Check `login page` cacheable setting because they don't go through main WP logic
			add_action( 'login_init', __NAMESPACE__ . '\Tag::check_login_cacheable', 5 );

		}

		// Add comment list ESI
		add_filter( 'comments_array', array( $this, 'check_commenter' ) );

		// Set vary cookie for commenter.
		add_action( 'set_comment_cookies', array( $this, 'append_commenter' ) );

		/**
		 * Don't change for REST call because they don't carry on user info usually
		 * @since 1.6.7
		 */
		add_action( 'rest_api_init', function(){
			Debug2::debug( '[Vary] Rest API init disabled vary change' );
			add_filter( 'litespeed_can_change_vary', '__return_false' );
		} );

		/******** Below to the end is only for cookie name setting check ********/
		// Get specific cookie name
		$db_cookie = Conf::val( Base::O_CACHE_LOGIN_COOKIE ); // [3.0] todo: check if works in network's sites

		// If no vary set in rewrite rule
		if ( ! isset($_SERVER['LSCACHE_VARY_COOKIE']) ) {
			if ( $db_cookie ) {
				// Display cookie error msg to admin
				if ( is_multisite() ? is_network_admin() : is_admin() ) {
					Admin_Display::show_error_cookie();
				}
				Control::set_nocache('vary cookie setting error');
				return;
			}
			return;
		}
		// If db setting does not exist, skip checking db value
		if ( ! $db_cookie ) {
			return;
		}

		// beyond this point, need to make sure db vary setting is in $_SERVER env.
		$vary_arr = explode(',', $_SERVER['LSCACHE_VARY_COOKIE']);

		if ( in_array($db_cookie, $vary_arr) ) {
			self::$_vary_name = $db_cookie;
			return;
		}

		if ( is_multisite() ? is_network_admin() : is_admin() ) {
			Admin_Display::show_error_cookie();
		}
		Control::set_nocache('vary cookie setting lost error');
	}

	/**
	 * Hooked to the comments_array filter.
	 *
	 * Check if the user accessing the page has the commenter cookie.
	 *
	 * If the user does not want to cache commenters, just check if user is commenter.
	 * Otherwise if the vary cookie is set, unset it. This is so that when the page is cached, the page will appear as if the user was a normal user.
	 * Normal user is defined as not a logged in user and not a commenter.
	 *
	 * @since 1.0.4
	 * @access public
	 * @global type $post
	 * @param array $comments The current comments to output
	 * @return array The comments to output.
	 */
	public function check_commenter( $comments ) {
		/**
		 * Hook to bypass pending comment check for comment related plugins compatibility
		 * @since 2.9.5
		 */
		if ( apply_filters( 'litespeed_vary_check_commenter_pending', true ) ) {
			$pending = false;
			foreach ( $comments as $comment ) {
				if ( ! $comment->comment_approved ) {// current user has pending comment
					$pending = true;
					break;
				}
			}

			// No pending comments, don't need to add private cache
			if ( ! $pending ) {
				$this->remove_commenter();

				// Remove commenter prefilled info if exists, for public cache
				foreach( $_COOKIE as $cookie_name => $cookie_value ) {
					if ( strlen( $cookie_name ) >= 15 && strpos( $cookie_name, 'comment_author_' ) === 0 ) {
						unset( $_COOKIE[ $cookie_name ] );
					}
				}

				return $comments;
			}
		}

		// Current user/visitor has pending comments
		// set vary=2 for next time vary lookup
		$this->add_commenter();

		if ( Conf::val( Base::O_CACHE_COMMENTER ) ) {
			Control::set_private( 'existing commenter' );
		}
		else {
			Control::set_nocache( 'existing commenter' );
		}

		return $comments;
	}

	/**
	 * Check if default vary has a value
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function has_vary() {
		if ( empty( $_COOKIE[ self::$_vary_name ] ) ) {
			return false;
		}
		return $_COOKIE[ self::$_vary_name ];
	}

	/**
	 * Append user status with logged in
	 *
	 * @since 1.1.3
	 * @since 1.6.2 Removed static referral
	 * @access public
	 */
	public function add_logged_in( $logged_in_cookie = false, $expire = false, $expiration = false, $uid = false ) {
		Debug2::debug( '[Vary] add_logged_in' );

		/**
		 * NOTE: Run before `$this->_update_default_vary()` to make vary changeable
		 * @since  2.2.2
		 */
		self::can_ajax_vary();

		// If the cookie is lost somehow, set it
		$this->_update_default_vary( $uid, $expire );
	}

	/**
	 * Remove user logged in status
	 *
	 * @since 1.1.3
	 * @since 1.6.2 Removed static referral
	 * @access public
	 */
	public function remove_logged_in() {
		Debug2::debug( '[Vary] remove_logged_in' );

		/**
		 * NOTE: Run before `$this->_update_default_vary()` to make vary changeable
		 * @since  2.2.2
		 */
		self::can_ajax_vary();

		// Force update vary to remove login status
		$this->_update_default_vary( -1 );
	}

	/**
	 * Allow vary can be changed for ajax calls
	 *
	 * @since 2.2.2
	 * @since 2.6 Changed to static
	 * @access public
	 */
	public static function can_ajax_vary() {
		Debug2::debug( '[Vary] _can_change_vary -> true' );
		self::$_can_change_vary = true;
	}

	/**
	 * Check if can change default vary
	 *
	 * @since 1.6.2
	 * @access private
	 */
	private function can_change_vary() {
		// Don't change for ajax due to ajax not sending webp header
		if ( Router::is_ajax() ) {
			if ( ! self::$_can_change_vary ) {
				Debug2::debug( '[Vary] can_change_vary bypassed due to ajax call' );
				return false;
			}
		}

		/**
		 * POST request can set vary to fix #820789 login "loop" guest cache issue
		 * @since 1.6.5
		 */
		if ( $_SERVER["REQUEST_METHOD"] !== 'GET' && $_SERVER["REQUEST_METHOD"] !== 'POST' ) {
			Debug2::debug( '[Vary] can_change_vary bypassed due to method not get/post' );
			return false;
		}

		/**
		 * Disable vary change if is from crawler
		 * @since  2.9.8 To enable woocommerce cart not empty warm up (@Taba)
		 */
		if ( ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) && strpos( $_SERVER[ 'HTTP_USER_AGENT' ], Crawler::FAST_USER_AGENT ) === 0 ) {
			Debug2::debug( '[Vary] can_change_vary bypassed due to crawler' );
			return false;
		}

		if ( ! apply_filters( 'litespeed_can_change_vary', true ) ) {
			Debug2::debug( '[Vary] can_change_vary bypassed due to litespeed_can_change_vary hook' );
			return false;
		}

		return true;
	}

	/**
	 * Update default vary
	 *
	 * @since 1.6.2
	 * @since  1.6.6.1 Add ran check to make it only run once ( No run multiple times due to login process doesn't have valid uid )
	 * @access private
	 */
	private function _update_default_vary( $uid = false, $expire = false ) {
		// Make sure header output only run once
		if ( ! defined( 'LITESPEED_DID_' . __FUNCTION__ ) ) {
			define( 'LITESPEED_DID_' . __FUNCTION__, true );
		}
		else {
			Debug2::debug2( "[Vary] _update_default_vary bypassed due to run already" );
			return;
		}

		// If the cookie is lost somehow, set it
		$vary = $this->finalize_default_vary( $uid );
		$current_vary = self::has_vary();
		if ( $current_vary !== $vary && $current_vary !== 'commenter' && $this->can_change_vary() ) {
			// $_COOKIE[ self::$_vary_name ] = $vary; // not needed

			// save it
			if ( ! $expire ) {
				$expire = time() + 2 * DAY_IN_SECONDS;
			}
			self::_cookie( $vary, $expire );
			Debug2::debug( "[Vary] set_cookie ---> $vary" );
			Control::set_nocache( 'changing default vary' . " $current_vary => $vary" );
		}
	}

	/**
	 * Get vary name
	 *
	 * @since 1.9.1
	 * @access public
	 */
	public function get_vary_name() {
		return self::$_vary_name;
	}

	/**
	 * Check if one user role is in vary group settings
	 *
	 * @since 1.2.0
	 * @since  3.0 Moved here from conf.cls
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_vary_group( $role ) {
		$group = 0;
		$vary_groups = Conf::val( Base::O_CACHE_VARY_GROUP );
		if ( array_key_exists( $role, $vary_groups ) ) {
			$group = $vary_groups[ $role ];
		}
		elseif ( $role === 'administrator' ) {
			$group = 99;
		}

		if ( $group ) {
			Debug2::debug2( '[Vary] role in vary_group [group] ' . $group );
		}

		return $group;
	}

	/**
	 * Finalize default vary
	 *
	 *  Get user vary tag based on admin_bar & role
	 *
	 * NOTE: Login process will also call this because it does not call wp hook as normal page loading
	 *
	 * @since 1.6.2
	 * @access public
	 */
	public function finalize_default_vary( $uid = false ) {
		$vary = self::$_default_vary_val;

		if ( ! $uid ) {
			$uid = get_current_user_id();
		}
		else {
			Debug2::debug( '[Vary] uid: ' . $uid );
		}

		// get user's group id
		$role = Router::get_role( $uid );

		if ( $uid > 0 && $role ) {
			$vary[ 'logged-in' ] = 1;

			// parse role group from settings
			if ( $role_group = $this->in_vary_group( $role ) ) {
				$vary[ 'role' ] = $role_group;
			}

			// Get admin bar set
			// see @_get_admin_bar_pref()
			$pref = get_user_option( 'show_admin_bar_front', $uid );
			Debug2::debug2( '[Vary] show_admin_bar_front: ' . $pref );
			$admin_bar = $pref === false || $pref === 'true';

			if ( $admin_bar ) {
				$vary[ 'admin_bar' ] = 1;
				Debug2::debug2( '[Vary] admin bar : true' );
			}

		}
		else {
			// Guest user
			Debug2::debug( '[Vary] role id: failed, guest' );

		}

		/**
		 * Add filter
		 * @since 1.6 Added for Role Excludes for optimization cls
		 * @since 1.6.2 Hooked to webp
		 * @since 3.0 Used by 3rd hooks too
		 */
		$vary = apply_filters( 'litespeed_vary', $vary );

		if ( ! $vary ) {
			return false;
		}

		ksort( $vary );
		$res = array();
		foreach ( $vary as $key => $val ) {
			$res[] = $key . ':' . $val;
		}

		$res = implode( ';', $res );
		if ( defined( 'LSCWP_LOG' ) ) {
			return $res;
		}
		// Encrypt in production
		return md5( Conf::val( Base::HASH ) . $res );

	}

	/**
	 * Append user status with commenter
	 *
	 * This is ONLY used when submit a comment
	 *
	 * @since 1.1.6
	 * @access public
	 */
	public function append_commenter() {
		$this->add_commenter( true );
	}

	/**
	 * Correct user status with commenter
	 *
	 * @since 1.1.3
	 * @access private
	 * @param  boolean $from_redirect If the request is from redirect page or not
	 */
	private function add_commenter( $from_redirect = false ) {
		// If the cookie is lost somehow, set it
		if ( self::has_vary() !== 'commenter' ) {
			// $_COOKIE[ self::$_vary_name ] = 'commenter'; // not needed

			// save it
			// only set commenter status for current domain path
			self::_cookie( 'commenter', time() + apply_filters( 'comment_cookie_lifetime', 30000000 ), self::_relative_path( $from_redirect ) );
			Control::set_nocache( 'adding commenter status' );
		}
	}

	/**
	 * Remove user commenter status
	 *
	 * @since 1.1.3
	 * @access private
	 */
	private function remove_commenter() {
		if ( self::has_vary() === 'commenter' ) {
			// remove logged in status from global var
			// unset( $_COOKIE[ self::$_vary_name ] ); // not needed

			// save it
			self::_cookie( false, false, self::_relative_path() );
			Control::set_nocache( 'removing commenter status' );
		}
	}

	/**
	 * Generate relative path for cookie
	 *
	 * @since 1.1.3
	 * @access private
	 * @param  boolean $from_redirect If the request is from redirect page or not
	 */
	private static function _relative_path( $from_redirect = false ) {
		$path = false;
		$tag = $from_redirect ? 'HTTP_REFERER' : 'SCRIPT_URL';
		if ( ! empty( $_SERVER[ $tag ] ) ) {
			$path = parse_url( $_SERVER[ $tag ] );
			$path = ! empty( $path[ 'path' ] ) ? $path[ 'path' ] : false;
			Debug2::debug( '[Vary] Cookie Vary path: ' . $path );
		}
		return $path;
	}

	/**
	 * Builds the vary header.
	 *
	 * Currently, this only checks post passwords.
	 *
	 * @since 1.0.13
	 * @access public
	 * @global $post
	 * @return mixed false if the user has the postpass cookie. Empty string
	 * if the post is not password protected. Vary header otherwise.
	 */
	public static function finalize() {
		return self::get_instance()->_finalize();

	}

	private function _finalize() {
		// Finalize default vary
		$this->_update_default_vary();

		/**
		 * Non caccheable page can still set vary ( for logged in process )
		 * @since  1.6.6.1
		 */
		// if ( ! Control::is_cacheable() ) {
		// 	Debug2::debug2( 'Vary: bypass finalize due to not cacheable' );
		// 	return false;
		// }

		$tp_cookies = $this->_format_vary_cookies();
		global $post;
		if ( ! empty($post->post_password) ) {
			if ( isset($_COOKIE['wp-postpass_' . COOKIEHASH]) ) {
				Debug2::debug( '[Vary] finalize bypassed due to password protected vary ' );
				// If user has password cookie, do not cache
				Control::set_nocache('password protected vary');
				return;
			}

			$tp_cookies[] = 'cookie=wp-postpass_' . COOKIEHASH;
		}

		if ( empty($tp_cookies) ) {
			Debug2::debug2( '[Vary] no custimzed vary ' );
			return;
		}

		return self::X_HEADER . ': ' . implode(',', $tp_cookies);

	}

	/**
	 * Gets vary cookies that are already added for the current page.
	 *
	 * @since 1.0.13
	 * @access private
	 * @return array An array of all vary cookies currently added.
	 */
	private function _format_vary_cookies() {
		/**
		 * To add new varys, use hook `API::filter_vary_cookies()` before here
		 */
		do_action( 'litespeed_vary_add' );

		/**
		 * Give a filter to manipulate vary
		 * @since 2.7.1
		 */
		$cookies = apply_filters( 'litespeed_vary_cookies', self::$_vary_cookies );
		if ( $cookies !== self::$_vary_cookies ) {
			Debug2::debug( '[Vary] vary changed by filter [Old] ' . var_export( self::$_vary_cookies, true ) . ' [New] ' . var_export( $cookies, true )  );
		}

		if ( ! empty( $cookies ) ) {
			$cookies = array_filter( array_unique( $cookies ) );
		}

		if ( empty($cookies) ) {
			return false;
		}

		foreach ($cookies as $key => $val) {
			$cookies[$key] = 'cookie=' . $val;
		}

		return $cookies;
	}

	/**
	 * Adds vary to the list of vary cookies for the current page.
	 * This is to add a new vary cookie
	 *
	 * @since 1.0.13
	 * @deprecated 2.7.1 Use filter `litespeed_vary_cookies` instead.
	 * @access public
	 * @param mixed $vary A string or array of vary cookies to add to the current list.
	 */
	public static function add( $vary ) {
		if ( ! is_array( $vary ) ) {
			$vary = array( $vary );
		}

		error_log( 'Deprecated since LSCWP 2.7.1! [Vary] Add new vary ' . var_export( $vary, true ) );

		self::$_vary_cookies = array_merge(self::$_vary_cookies, $vary);
	}

	/**
	 * Append child value to default vary
	 *
	 * @since 2.6
	 * @access public
	 */
	public static function append( $name, $val ) {
		self::$_default_vary_val[ $name ] = $val;
	}

	/**
	 * Set the vary cookie.
	 *
	 * If vary cookie changed, must set non cacheable.
	 *
	 * @since 1.0.4
	 * @access private
	 * @param integer $val The value to update.
	 * @param integer $expire Expire time.
	 * @param boolean $path False if use wp root path as cookie path
	 */
	private static function _cookie($val = false, $expire = false, $path = false) {
		if ( ! $val ) {
			$expire = 1;
		}

		/**
		 * Add HTTPS bypass in case clients use both HTTP and HTTPS version of site
		 * @since 1.7
		 */
		$is_ssl = Conf::val( Base::O_UTIL_NO_HTTPS_VARY ) ? false : is_ssl();

		setcookie( self::$_vary_name, $val, $expire, $path?: COOKIEPATH, COOKIE_DOMAIN, $is_ssl, true );
	}

}
<?php
/**
 * The class to store and manage litespeed db data.
 *
 * @since      	1.3.1
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Data extends Instance {
	private $_db_updater = array(
		'3.5.0.3'	=> array(
			'litespeed_update_3_5',
		),
	);

	private $_db_site_updater = array(
		// Example
		// '2.0'	=> array(
		// 	'litespeed_update_site_2_0',
		// ),
	);

	protected static $_instance;

	const TB_CSSJS = 'litespeed_cssjs';
	const TB_IMG_OPTM = 'litespeed_img_optm';
	const TB_IMG_OPTMING = 'litespeed_img_optming'; // working table
	const TB_AVATAR = 'litespeed_avatar';
	const TB_CRAWLER = 'litespeed_crawler';
	const TB_CRAWLER_BLACKLIST = 'litespeed_crawler_blacklist';

	/**
	 * Init
	 *
	 * @since  1.3.1
	 * @access protected
	 */
	protected function __construct() {
	}

	/**
	 * Correct table existance
	 *
	 * Call when activate -> upadte_confs()
	 * Call when upadte_confs()
	 *
	 * @since  3.0
	 * @access public
	 */
	public function correct_tb_existance() {
		// CSS JS optm
		if ( Optimize::need_db() ) {
			$this->tb_create( 'cssjs' );
		}

		// Gravatar
		if ( Conf::val( Base::O_DISCUSS_AVATAR_CACHE ) ) {
			$this->tb_create( 'avatar' );
		}

		// Crawler
		if ( Conf::val( Base::O_CRAWLER ) ) {
			$this->tb_create( 'crawler' );
			$this->tb_create( 'crawler_blacklist' );
		}

		// Image optm is a bit different. Only trigger creation when sending requests. Drop when destroying.
	}

	/**
	 * Upgrade conf to latest format version from previous versions
	 *
	 * NOTE: Only for v3.0+
	 *
	 * @since 3.0
	 * @access public
	 */
	public function conf_upgrade( $ver ) {
		// Skip count check if `Use Primary Site Configurations` is on
		// Deprecated since v3.0 as network primary site didn't override the subsites conf yet
		// if ( ! is_main_site() && ! empty ( $this->_site_options[ self::NETWORK_O_USE_PRIMARY ] ) ) {
		// 	return;
		// }

		if ( $this->_get_upgrade_lock() ) {
			return;
		}

		$this->_set_upgrade_lock( true );

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		// Init log manually
		if ( Conf::val( Base::O_DEBUG ) ) {
			Debug2::init();
		}

		foreach ( $this->_db_updater as $k => $v ) {
			if ( version_compare( $ver, $k, '<' ) ) {
				// run each callback
				foreach ( $v as $v2 ) {
					Debug2::debug( "[Data] Updating [ori_v] $ver \t[to] $k \t[func] $v2" );
					call_user_func( $v2 );
				}
			}
		}

		// Reload options
		Conf::get_instance()->load_options();

		$this->correct_tb_existance();

		// Update version to latest
		Conf::delete_option( Base::_VER );
		Conf::add_option( Base::_VER, Core::VER );

		Debug2::debug( '[Data] Updated version to ' . Core::VER );

		$this->_set_upgrade_lock( false );

		! defined( 'LSWCP_EMPTYCACHE') && define( 'LSWCP_EMPTYCACHE', true );// clear all sites caches
		Purge::purge_all();

		Cloud::version_check( 'upgrade' );
	}

	/**
	 * Upgrade site conf to latest format version from previous versions
	 *
	 * NOTE: Only for v3.0+
	 *
	 * @since 3.0
	 * @access public
	 */
	public function conf_site_upgrade( $ver ) {
		if ( $this->_get_upgrade_lock() ) {
			return;
		}

		$this->_set_upgrade_lock( true );

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		foreach ( $this->_db_site_updater as $k => $v ) {
			if ( version_compare( $ver, $k, '<' ) ) {
				// run each callback
				foreach ( $v as $v2 ) {
					Debug2::debug( "[Data] Updating site [ori_v] $ver \t[to] $k \t[func] $v2" );
					call_user_func( $v2 );
				}
			}
		}

		// Reload options
		Conf::get_instance()->load_site_options();

		Conf::delete_site_option( Base::_VER );
		Conf::add_site_option( Base::_VER, Core::VER );

		Debug2::debug( '[Data] Updated site_version to ' . Core::VER );

		$this->_set_upgrade_lock( false );

		! defined( 'LSWCP_EMPTYCACHE') && define( 'LSWCP_EMPTYCACHE', true );// clear all sites caches
		Purge::purge_all();
	}

	/**
	 * Check if upgrade script is running or not
	 *
	 * @since 3.0.1
	 */
	private function _get_upgrade_lock() {
		$is_upgrading = get_option( 'litespeed.data.upgrading' );
		if ( $is_upgrading && time() - $is_upgrading < 3600 ) {
			return $is_upgrading;
		}

		return false;
	}

	/**
	 * Show the upgrading banner if upgrade script is running
	 *
	 * @since 3.0.1
	 */
	public function check_upgrading_msg() {
		$is_upgrading = $this->_get_upgrade_lock();
		if ( ! $is_upgrading ) {
			return;
		}

		Admin_Display::info( sprintf( __( 'The database has been upgrading in the background since %s. This message will disappear once upgrade is complete.' ), '<code>' . Utility::readable_time( $is_upgrading ) . '</code>' ) . ' [LiteSpeed]', true );
	}

	/**
	 * Set lock for upgrade process
	 *
	 * @since 3.0.1
	 */
	private function _set_upgrade_lock( $lock ) {
		if ( ! $lock ) {
			delete_option( 'litespeed.data.upgrading' );
		}
		else {
			update_option( 'litespeed.data.upgrading', time() );
		}
	}

	/**
	 * Upgrade the conf to v3.0 from previous v3.0- data
	 *
	 * NOTE: Only for v3.0-
	 *
	 * @since 3.0
	 * @access public
	 */
	public function try_upgrade_conf_3_0() {
		$previous_options = get_option( 'litespeed-cache-conf' );
		if ( ! $previous_options ) {
			Cloud::version_check( 'new' );
			return;
		}

		$ver = $previous_options[ 'version' ];

		! defined( 'LSCWP_CUR_V' ) && define( 'LSCWP_CUR_V', $ver );

		// Init log manually
		if ( Conf::val( Base::O_DEBUG ) ) {
			Debug2::init();
		}
		Debug2::debug( '[Data] Upgrading previous settings [from] ' . $ver . ' [to] v3.0' );

		if ( $this->_get_upgrade_lock() ) {
			return;
		}

		$this->_set_upgrade_lock( true );

		require_once LSCWP_DIR . 'src/data.upgrade.func.php';

		// Here inside will update the version to v3.0
		litespeed_update_3_0( $ver );

		$this->_set_upgrade_lock( false );

		Debug2::debug( '[Data] Upgraded to v3.0' );

		// Upgrade from 3.0 to latest version
		$ver = '3.0';
		if ( Core::VER != $ver ) {
			$this->conf_upgrade( $ver );
		}
		else {
			// Reload options
			Conf::get_instance()->load_options();

			$this->correct_tb_existance();

			! defined( 'LSWCP_EMPTYCACHE') && define( 'LSWCP_EMPTYCACHE', true );// clear all sites caches
			Purge::purge_all();

			Cloud::version_check( 'upgrade' );
		}
	}

	/**
	 * Get the table name
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb( $tb ) {
		global $wpdb;

		switch ( $tb ) {
			case 'img_optm':
				return $wpdb->prefix . self::TB_IMG_OPTM;
				break;

			case 'img_optming':
				return $wpdb->prefix . self::TB_IMG_OPTMING;
				break;

			case 'cssjs':
				return $wpdb->prefix . self::TB_CSSJS;
				break;

			case 'avatar':
				return $wpdb->prefix . self::TB_AVATAR;
				break;

			case 'crawler':
				return $wpdb->prefix . self::TB_CRAWLER;
				break;

			case 'crawler_blacklist':
				return $wpdb->prefix . self::TB_CRAWLER_BLACKLIST;
				break;

			default:
				break;
		}

	}

	/**
	 * Check if one table exists or not
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_exist( $tb ) {
		global $wpdb;
		return $wpdb->get_var( "SHOW TABLES LIKE '" . $this->tb( $tb ) . "'" );
	}

	/**
	 * Get data structure of one table
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _tb_structure( $tb ) {
		return File::read( LSCWP_DIR . 'src/data_structure/' . $tb . '.sql' );
	}

	/**
	 * Create img optm table and sync data from wp_postmeta
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_create( $tb ) {
		global $wpdb;

		Debug2::debug2( '[Data] Checking table ' . $tb );

		// Check if table exists first
		if ( $this->tb_exist( $tb ) ) {
			Debug2::debug2( '[Data] Existed' );
			return;
		}

		Debug2::debug( '[Data] Creating ' . $tb );

		$sql = sprintf(
			'CREATE TABLE IF NOT EXISTS `%1$s` (' . $this->_tb_structure( $tb ) . ') %2$s;',
			$this->tb( $tb ),
			$wpdb->get_charset_collate() // 'DEFAULT CHARSET=utf8'
		);

		$res = $wpdb->query( $sql );
		if ( $res !== true ) {
			Debug2::debug( '[Data] Warning! Creating table failed!', $sql );
			Admin_Display::error( Error::msg( 'failed_tb_creation', array( '<code>' . $tb . '</code>', '<code>' . $sql . '</code>' ) ) );
		}
	}

	/**
	 * Drop table
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tb_del( $tb ) {
		global $wpdb;

		if ( ! $this->tb_exist( $tb ) ) {
			return;
		}

		Debug2::debug( '[Data] Deleting table ' . $tb );

		$q = 'DROP TABLE IF EXISTS ' . $this->tb( $tb );
		$wpdb->query( $q );
	}

	/**
	 * Drop generated tables
	 *
	 * @since  3.0
	 * @access public
	 */
	public function tables_del() {
		global $wpdb;

		$this->tb_del( 'cssjs' );
		$this->tb_del( 'avatar' );
		$this->tb_del( 'crawler' );
		$this->tb_del( 'crawler_blacklist' );

		// Deleting img_optm only can be done when destroy all optm images
	}

	/**
	 * save optimizer src to db
	 *
	 * @since  1.3.1
	 * @access public
	 */
	public function optm_save_src( $filename, $src, $request_url ) {
		global $wpdb;

		$src = json_encode( $src );
		$f = array(
			'hash_name'	=> $filename,
			'src'		=> $src,
			'dateline'	=> time(),
			'refer' 	=> $request_url,
		);

		$res = $wpdb->replace( $this->tb( 'cssjs' ), $f );

		return $res;
	}

	/**
	 * Get src set from hash in optimizer
	 *
	 * @since  1.3.1
	 * @access public
	 */
	public function optm_hash2src( $filename ) {
		global $wpdb;

		$res = $wpdb->get_row( $wpdb->prepare( 'SELECT src, refer FROM `' . $this->tb( 'cssjs' ) . '` WHERE `hash_name`=%s', $filename ), ARRAY_A );

		if ( empty( $res[ 'src' ] ) ) {
			return false;
		}

		Debug2::debug2( '[Data] Loaded hash2src ' . $res[ 'src' ] );

		$res[ 'src' ] = json_decode( $res[ 'src' ], true );

		return $res;
	}

	/**
	 * Get list from `data/css_excludes.txt`
	 *
	 * @since  3.6
	 */
	public function load_css_exc( $list ) {
		$data = $this->_load_per_line( 'css_excludes.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Get list from `data/js_excludes.txt`
	 *
	 * @since  3.5
	 */
	public function load_js_exc( $list ) {
		$data = $this->_load_per_line( 'js_excludes.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Get list from `data/js_defer_excludes.txt`
	 *
	 * @since  3.6
	 */
	public function load_js_defer_exc( $list ) {
		$data = $this->_load_per_line( 'js_defer_excludes.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Get list from `data/esi.nonces.txt`
	 *
	 * @since  3.5
	 */
	public function load_esi_nonces( $list ) {
		$data = $this->_load_per_line( 'esi.nonces.txt' );
		if ( $data ) {
			$list = array_unique( array_filter( array_merge( $list, $data ) ) );
		}

		return $list;
	}

	/**
	 * Load file per line
	 *
	 * Support two kinds of comments:
	 * 		1. `# this is comment`
	 * 		2. `##this is comment`
	 *
	 * @since  3.5
	 */
	private function _load_per_line( $file ) {
		$data = File::read( LSCWP_DIR . 'data/' . $file );
		$data = explode( PHP_EOL, $data );
		$list = array();
		foreach ( $data as $v ) {
			// Drop two kinds of comments
			if ( strpos( $v, '##' ) !== false ) {
				$v = trim( substr( $v, 0, strpos( $v, '##' ) ) );
			}
			if ( strpos( $v, '# ' ) !== false ) {
				$v = trim( substr( $v, 0, strpos( $v, '# ' ) ) );
			}

			if ( ! $v ) {
				continue;
			}

			$list[] = $v;
		}

		return $list;
	}

}<?php
/**
 * The admin-panel specific functionality of the plugin.
 *
 *
 * @since      1.0.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/admin
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Admin_Display extends Base {
	protected static $_instance;

	const NOTICE_BLUE = 'notice notice-info';
	const NOTICE_GREEN = 'notice notice-success';
	const NOTICE_RED = 'notice notice-error';
	const NOTICE_YELLOW = 'notice notice-warning';
	const DB_MSG = 'messages';
	const DB_MSG_PIN = 'msg_pin';

	const PURGEBY_CAT = '0';
	const PURGEBY_PID = '1';
	const PURGEBY_TAG = '2';
	const PURGEBY_URL = '3';

	const PURGEBYOPT_SELECT = 'purgeby';
	const PURGEBYOPT_LIST = 'purgebylist';

	const DB_DISMISS_MSG = 'dismiss';
	const RULECONFLICT_ON = 'ExpiresDefault_1';
	const RULECONFLICT_DISMISSED = 'ExpiresDefault_0';

	protected $__cfg;
	protected $messages = array();
	protected $default_settings = array();
	protected $_is_network_admin = false;
	protected $_is_multisite = false;

	private $_btn_i = 0;

	/**
	 * Initialize the class and set its properties.
	 *
	 * @since    1.0.7
	 * @access   protected
	 */
	protected function __construct() {
		// main css
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_style' ) );
		// Main js
		add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ) );

		$this->_is_network_admin = is_network_admin();
		$this->_is_multisite = is_multisite();

		// Quick access menu
		if ( is_multisite() && $this->_is_network_admin ) {
			$manage = 'manage_network_options';
		}
		else {
			$manage = 'manage_options';
		}
		if ( current_user_can( $manage ) ) {
			if ( ! defined( 'LITESPEED_DISABLE_ALL' ) ) {
				add_action( 'wp_before_admin_bar_render', array( GUI::get_instance(), 'backend_shortcut' ) );
			}

			// `admin_notices` is after `admin_enqueue_scripts`
			// @see wp-admin/admin-header.php
			add_action( $this->_is_network_admin ? 'network_admin_notices' : 'admin_notices', array( $this, 'display_messages' ) );
		}

		/**
		 * In case this is called outside the admin page
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
			require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
		}

		// add menus ( Also check for mu-plugins)
		if ( $this->_is_network_admin && ( is_plugin_active_for_network( LSCWP_BASENAME ) || defined( 'LSCWP_MU_PLUGIN' ) ) ) {
			add_action( 'network_admin_menu', array( $this, 'register_admin_menu' ) );
		}
		else {
			add_action( 'admin_menu', array( $this, 'register_admin_menu' ) );
		}

		$this->__cfg = Conf::get_instance();
	}

	/**
	 * Show the title of one line
	 *
	 * @since  3.0
	 * @access public
	 */
	public function title( $id ) {
		echo Lang::title( $id );
	}

	/**
	 * Register the admin menu display.
	 *
	 * @since    1.0.0
	 * @access public
	 */
	public function register_admin_menu() {
		$capability = $this->_is_network_admin ? 'manage_network_options' : 'manage_options';
		if ( current_user_can( $capability ) ) {

			// root menu
			add_menu_page( 'LiteSpeed Cache', 'LiteSpeed Cache', 'manage_options', 'litespeed' );

			// sub menus
			$this->_add_submenu( __( 'Dashboard', 'litespeed-cache' ), 'litespeed', 'show_menu_dash' );

			$this->_add_submenu( __( 'General', 'litespeed-cache' ), 'litespeed-general', 'show_menu_general' );

			$this->_add_submenu( __( 'Cache', 'litespeed-cache' ), 'litespeed-cache', 'show_menu_cache' );

			! $this->_is_network_admin && $this->_add_submenu( __( 'CDN', 'litespeed-cache' ), 'litespeed-cdn', 'show_menu_cdn' );

			$this->_add_submenu( __( 'Image Optimization', 'litespeed-cache' ), 'litespeed-img_optm', 'show_img_optm' );

			! $this->_is_network_admin && $this->_add_submenu( __( 'Page Optimization', 'litespeed-cache' ), 'litespeed-page_optm', 'show_page_optm' );

			$this->_add_submenu( __( 'Database', 'litespeed-cache' ), 'litespeed-db_optm', 'show_db_optm' );

			! $this->_is_network_admin && $this->_add_submenu( __( 'Crawler', 'litespeed-cache' ), 'litespeed-crawler', 'show_crawler' );

			$this->_add_submenu( __( 'Toolbox', 'litespeed-cache' ), 'litespeed-toolbox', 'show_toolbox' );

			// sub menus under options
			add_options_page('LiteSpeed Cache', 'LiteSpeed Cache', $capability, 'litespeed-cache-options', array($this, 'show_menu_cache'));
		}
	}

	/**
	 * Helper function to set up a submenu page.
	 *
	 * @since 1.0.4
	 * @access private
	 * @param string $menu_title The title that appears on the menu.
	 * @param string $menu_slug The slug of the page.
	 * @param string $callback The callback to call if selected.
	 */
	private function _add_submenu( $menu_title, $menu_slug, $callback ) {
		add_submenu_page( 'litespeed', $menu_title, $menu_title, 'manage_options', $menu_slug, array( $this, $callback ) );
	}

	/**
	 * Register the stylesheets for the admin area.
	 *
	 * @since    1.0.14
	 * @access public
	 */
	public function enqueue_style() {
		wp_enqueue_style(Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/css/litespeed.css', array(), Core::VER, 'all');
	}

	/**
	 * Register the JavaScript for the admin area.
	 *
	 * @since    1.0.0
	 * @access public
	 */
	public function enqueue_scripts() {
		wp_register_script( Core::PLUGIN_NAME, LSWCP_PLUGIN_URL . 'assets/js/litespeed-cache-admin.js', array(), Core::VER, false );

		$localize_data = array();
		if ( GUI::has_whm_msg() ) {
			$ajax_url_dismiss_whm = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_WHM, true );
			$localize_data[ 'ajax_url_dismiss_whm' ] = $ajax_url_dismiss_whm;
		}

		if ( GUI::has_msg_ruleconflict() ) {
			$ajax_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_EXPIRESDEFAULT, true );
			$localize_data[ 'ajax_url_dismiss_ruleconflict' ] = $ajax_url;
		}

		$promo_tag = GUI::get_instance()->show_promo( true );
		if ( $promo_tag ) {
			$ajax_url_promo = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, true, null, array( 'promo_tag' => $promo_tag ) );
			$localize_data[ 'ajax_url_promo' ] = $ajax_url_promo;
		}

		// Injection to LiteSpeed pages
		global $pagenow;
		if ( $pagenow == 'admin.php' && ! empty( $_GET[ 'page' ] ) && ( strpos( $_GET[ 'page' ], 'litespeed-' ) === 0 || $_GET[ 'page' ] == 'litespeed' ) ) {
			// Admin footer
			add_filter('admin_footer_text', array($this, 'admin_footer_text'), 1);

			if ( $_GET[ 'page' ] == 'litespeed-crawler' || $_GET[ 'page' ] == 'litespeed-cdn' ) {
				// Babel JS type correction
				add_filter( 'script_loader_tag', array( $this, 'bable_type' ), 10, 3 );

				wp_enqueue_script( Core::PLUGIN_NAME . '-lib-react', LSWCP_PLUGIN_URL . 'assets/js/react.min.js', array(), Core::VER, false );
				wp_enqueue_script( Core::PLUGIN_NAME . '-lib-babel', LSWCP_PLUGIN_URL . 'assets/js/babel.min.js', array(), Core::VER, false );
			}

			// Crawler Cookie Simulation
			if ( $_GET[ 'page' ] == 'litespeed-crawler' ) {
				wp_enqueue_script( Core::PLUGIN_NAME . '-crawler', LSWCP_PLUGIN_URL . 'assets/js/component.crawler.js', array(), Core::VER, false );
				$localize_data[ 'lang' ] = array();
				$localize_data[ 'lang' ][ 'cookie_name' ] = __( 'Cookie Name', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'cookie_value' ] = __( 'Cookie Values', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'one_per_line' ] = Doc::one_per_line( true );
				$localize_data[ 'lang' ][ 'remove_cookie_simulation' ] = __( 'Remove cookie simulation', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'add_cookie_simulation_row' ] = __( 'Add new cookie to simulate', 'litespeed-cache' );
				empty( $localize_data[ 'ids' ] ) && $localize_data[ 'ids' ] = array();
				$localize_data[ 'ids' ][ 'crawler_cookies' ] = Base::O_CRAWLER_COOKIES;
			}

			// CDN mapping
			if ( $_GET[ 'page' ] == 'litespeed-cdn' ) {
				$home_url = home_url( '/' );
				$parsed = parse_url( $home_url );
				$home_url = str_replace( $parsed[ 'scheme' ] . ':', '', $home_url );
				$cdn_url = 'https://cdn.' . substr( $home_url, 2 );

				wp_enqueue_script( Core::PLUGIN_NAME . '-cdn', LSWCP_PLUGIN_URL . 'assets/js/component.cdn.js', array(), Core::VER, false );
				$localize_data[ 'lang' ] = array();
				$localize_data[ 'lang' ][ 'cdn_mapping_url' ] = Lang::title( Base::CDN_MAPPING_URL );
				$localize_data[ 'lang' ][ 'cdn_mapping_inc_img' ] = Lang::title( Base::CDN_MAPPING_INC_IMG );
				$localize_data[ 'lang' ][ 'cdn_mapping_inc_css' ] = Lang::title( Base::CDN_MAPPING_INC_CSS );
				$localize_data[ 'lang' ][ 'cdn_mapping_inc_js' ] = Lang::title( Base::CDN_MAPPING_INC_JS );
				$localize_data[ 'lang' ][ 'cdn_mapping_filetype' ] = Lang::title( Base::CDN_MAPPING_FILETYPE );
				$localize_data[ 'lang' ][ 'cdn_mapping_url_desc' ] = sprintf( __( 'CDN URL to be used. For example, %s', 'litespeed-cache' ), '<code>' . $cdn_url . '</code>' );
				$localize_data[ 'lang' ][ 'one_per_line' ] = Doc::one_per_line( true );
				$localize_data[ 'lang' ][ 'cdn_mapping_remove' ] = __( 'Remove CDN URL', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'add_cdn_mapping_row' ] = __( 'Add new CDN URL', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'on' ] = __( 'ON', 'litespeed-cache' );
				$localize_data[ 'lang' ][ 'off' ] = __( 'OFF', 'litespeed-cache' );
				empty( $localize_data[ 'ids' ] ) && $localize_data[ 'ids' ] = array();
				$localize_data[ 'ids' ][ 'cdn_mapping' ] = Base::O_CDN_MAPPING;
			}

			// If on Server IP setting page, append getIP link
			if ( $_GET[ 'page' ] == 'litespeed-general' ) {
				$localize_data[ 'ajax_url_getIP' ] = function_exists( 'get_rest_url' ) ? get_rest_url( null, 'litespeed/v1/tool/check_ip' ) : '/';
				$localize_data[ 'nonce' ] = wp_create_nonce( 'wp_rest' );
			}
		}

		if ( $localize_data ) {
			wp_localize_script( Core::PLUGIN_NAME, 'litespeed_data', $localize_data );
		}

		wp_enqueue_script( Core::PLUGIN_NAME );
	}

	/**
	 * Babel type for crawler
	 *
	 * @since  3.6
	 */
	public function bable_type( $tag, $handle, $src ) {
		if ( $handle != Core::PLUGIN_NAME . '-crawler' && $handle != Core::PLUGIN_NAME . '-cdn' ) {
			return $tag;
		}

		return '<script src="' . $src . '" type="text/babel"></script>';
	}

	/**
	 * Callback that adds LiteSpeed Cache's action links.
	 *
	 * @since 1.0.0
	 * @access public
	 * @param array $links Previously added links from other plugins.
	 * @return array Links array with the litespeed cache one appended.
	 */
	public function add_plugin_links($links) {
		// $links[] = '<a href="' . admin_url('options-general.php?page=litespeed-cache') . '">' . __('Settings', 'litespeed-cache') . '</a>';
		$links[] = '<a href="' . admin_url('admin.php?page=litespeed-cache') . '">' . __('Settings', 'litespeed-cache') . '</a>';

		return $links;
	}

	/**
	 * Change the admin footer text on LiteSpeed Cache admin pages.
	 *
	 * @since  1.0.13
	 * @param  string $footer_text
	 * @return string
	 */
	public function admin_footer_text($footer_text) {
		require_once LSCWP_DIR . 'tpl/inc/admin_footer.php';

		return $footer_text;
	}

	/**
	 * Builds the html for a single notice.
	 *
	 * @since 1.0.7
	 * @access public
	 * @param string $color The color to use for the notice.
	 * @param string $str The notice message.
	 * @return string The built notice html.
	 */
	public static function build_notice( $color, $str, $irremovable = false ) {
		$cls = $color;
		if ( $irremovable ) {
			$cls .= ' litespeed-irremovable';
		}
		else {
			$cls .= ' is-dismissible';
		}
		return '<div class="' . $cls . '"><p>'. $str . '</p></div>';
	}

	/**
	 * Display info notice
	 *
	 * @since 1.6.5
	 * @access public
	 */
	public static function info( $msg, $echo = false, $irremovable = false ) {
		self::add_notice( self::NOTICE_BLUE, $msg, $echo, $irremovable );
	}

	/**
	 * Display note notice
	 *
	 * @since 1.6.5
	 * @access public
	 */
	public static function note( $msg, $echo = false, $irremovable = false ) {
		self::add_notice( self::NOTICE_YELLOW, $msg, $echo, $irremovable );
	}

	/**
	 * Display success notice
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function succeed( $msg, $echo = false, $irremovable = false ) {
		self::add_notice( self::NOTICE_GREEN, $msg, $echo, $irremovable );
	}

	/**
	 * Display error notice
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function error( $msg, $echo = false, $irremovable = false ) {
		self::add_notice( self::NOTICE_RED, $msg, $echo, $irremovable );
	}

	/**
	 * Adds a notice to display on the admin page
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function add_notice( $color, $msg, $echo = false, $irremovable = false ) {
		// Bypass adding for CLI or cron
		if ( defined( 'LITESPEED_CLI' ) || defined( 'DOING_CRON' ) ) {
			// WP CLI will show the info directly
			if ( defined( 'WP_CLI' ) && WP_CLI ) {
				$msg = strip_tags( $msg );
				if ( $color == self::NOTICE_RED ) {
					\WP_CLI::error( $msg, false );
				}
				else {
					\WP_CLI::success( $msg );
				}
			}
			return;
		}

		if ( $echo ) {
			echo self::build_notice( $color, $msg );
			return;
		}

		$msg_name = $irremovable ? self::DB_MSG_PIN : self::DB_MSG;

		$messages = self::get_option( $msg_name );

		if ( is_array($msg) ) {
			foreach ($msg as $str) {
				$messages[] = self::build_notice( $color, $str, $irremovable );
			}
		}
		else {
			$messages[] = self::build_notice( $color, $msg, $irremovable );
		}
		$messages = array_unique( $messages );
		self::update_option( $msg_name, $messages );
	}

	/**
	 * Display notices and errors in dashboard
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function display_messages() {
		if ( GUI::has_whm_msg() ) {
			$this->show_display_installed();
		}

		Data::get_instance()->check_upgrading_msg();

		// If is in dev version, always check latest update
		Cloud::get_instance()->check_dev_version();

		// One time msg
		$messages = self::get_option( self::DB_MSG );
		$added_thickbox = false;
		if( is_array( $messages ) ) {
			foreach ( $messages as $msg ) {
				// Added for popup links
				if ( strpos( $msg, 'TB_iframe' ) && ! $added_thickbox ) {
					add_thickbox();
					$added_thickbox = true;
				}
				echo $msg;
			}
		}
		self::delete_option( self::DB_MSG );

		// Pinned msg
		$messages = self::get_option( self::DB_MSG_PIN );
		if( is_array( $messages ) ) {
			foreach ( $messages as $k => $msg ) {
				// Added for popup links
				if ( strpos( $msg, 'TB_iframe' ) && ! $added_thickbox ) {
					add_thickbox();
					$added_thickbox = true;
				}

				// Append close btn
				if ( substr( $msg, -6 ) == '</div>' ) {
					$link = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PIN, false, null, array( 'msgid' => $k ) );
					$msg = substr( $msg, 0, -6 ) . '<p><a href="' . $link . '" class="button litespeed-btn-primary litespeed-btn-mini">' . __( 'Dismiss', 'litespeed-cache' ) . '</a>' . '</p></div>';
				}
				echo $msg;
			}
		}

		if( empty( $_GET[ 'page' ] ) || strpos( $_GET[ 'page' ], 'litespeed' ) !== 0 ) {
			global $pagenow;
			if ( $pagenow != 'plugins.php' ) { // && $pagenow != 'index.php'
				return;
			}
		}

		// Show disable all warning
		if ( defined( 'LITESPEED_DISABLE_ALL' ) ) {
			Admin_Display::error( Error::msg( 'disabled_all' ), true );
		}

		if ( ! Conf::val( Base::O_NEWS ) ) {
			return;
		}

		// Show promo from cloud
		Cloud::get_instance()->show_promo();

		/**
		 * Check promo msg first
		 * @since 2.9
		 */
		GUI::get_instance()->show_promo();

		// Show version news
		Cloud::get_instance()->news();
	}

	/**
	 * Dismiss pinned msg
	 *
	 * @since 3.5.2
	 * @access public
	 */
	public static function dismiss_pin() {
		if ( ! isset( $_GET[ 'msgid' ] ) ) {
			return;
		}

		$messages = self::get_option( self::DB_MSG_PIN );
		if ( empty( $messages[ $_GET[ 'msgid' ] ] ) ) {
			return;
		}

		unset( $messages[ $_GET[ 'msgid' ] ] );
		if ( ! $messages ) {
			self::delete_option( self::DB_MSG_PIN );
		}
		else {
			self::update_option( self::DB_MSG_PIN, $messages );
		}
	}

	/**
	 * Hooked to the in_widget_form action.
	 * Appends LiteSpeed Cache settings to the widget edit settings screen.
	 * This will append the esi on/off selector and ttl text.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function show_widget_edit($widget, $return, $instance) {
		require LSCWP_DIR . 'tpl/esi_widget_edit.php';
	}

	/**
	 * Displays the dashboard page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_dash() {
		require_once LSCWP_DIR . 'tpl/dash/entry.tpl.php';
	}

	/**
	 * Displays the General page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_general() {
		require_once LSCWP_DIR . 'tpl/general/entry.tpl.php';
	}

	/**
	 * Displays the CDN page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_menu_cdn() {
		require_once LSCWP_DIR . 'tpl/cdn/entry.tpl.php';
	}

	/**
	 * Outputs the LiteSpeed Cache settings page.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function show_menu_cache() {
		if ( $this->_is_network_admin ) {
			require_once LSCWP_DIR . 'tpl/cache/entry_network.tpl.php';
		}
		else {
			require_once LSCWP_DIR . 'tpl/cache/entry.tpl.php';
		}
	}

	/**
	 * Tools page
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_toolbox() {
		require_once LSCWP_DIR . 'tpl/toolbox/entry.tpl.php';
	}

	/**
	 * Outputs the crawler operation page.
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function show_crawler() {
		require_once LSCWP_DIR . 'tpl/crawler/entry.tpl.php';
	}

	/**
	 * Outputs the optimization operation page.
	 *
	 * @since 1.6
	 * @access public
	 */
	public function show_img_optm() {
		require_once LSCWP_DIR . 'tpl/img_optm/entry.tpl.php';
	}

	/**
	 * Page optm page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_page_optm() {
		require_once LSCWP_DIR . 'tpl/page_optm/entry.tpl.php';
	}

	/**
	 * DB optm page.
	 *
	 * @since 3.0
	 * @access public
	 */
	public function show_db_optm() {
		require_once LSCWP_DIR . 'tpl/db_optm/entry.tpl.php';
	}

	/**
	 * Outputs a notice to the admin panel when the plugin is installed
	 * via the WHM plugin.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public function show_display_installed() {
		require_once LSCWP_DIR . 'tpl/inc/show_display_installed.php';
	}

	/**
	 * Display error cookie msg.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public static function show_error_cookie() {
		require_once LSCWP_DIR . 'tpl/inc/show_error_cookie.php';
	}

	/**
	 * Display warning if lscache is disabled
	 *
	 * @since 2.1
	 * @access public
	 */
	public function cache_disabled_warning() {
		include LSCWP_DIR . "tpl/inc/check_cache_disabled.php";
	}

	/**
	 * Output litespeed form info
	 *
	 * @since    3.0
	 * @access public
	 */
	public function form_action( $action = false, $type = false, $has_upload = false ) {
		if ( ! $action ) {
			$action = Router::ACTION_SAVE_SETTINGS;
		}

		$has_upload = $has_upload ? 'enctype="multipart/form-data"' : '';

		echo '<form method="post" action="' . wp_unslash( $_SERVER[ 'REQUEST_URI' ] ) . '" class="litespeed-relative" ' . $has_upload . '>';

		echo '<input type="hidden" name="' . Router::ACTION . '" value="' . $action . '" />';
		if ( $type ) {
			echo '<input type="hidden" name="' . Router::TYPE . '" value="' . $type . '" />';
		}
		wp_nonce_field( $action, Router::NONCE );
	}

	/**
	 * Output litespeed form info END
	 *
	 * @since    3.0
	 * @access public
	 */
	public function form_end( $disable_reset = false ) {
		echo "<div class='litespeed-top20'></div>";
		submit_button( __( 'Save Changes', 'litespeed-cache' ), 'primary litespeed-duplicate-float', 'litespeed-submit', true, array( 'id' => 'litespeed-submit-' . $this->_btn_i++ ) );

		echo '</form>';
	}

	/**
	 * Register this setting to save
	 *
	 * @since  3.0
	 * @access public
	 */
	public function enroll( $id ) {
		echo '<input type="hidden" name="' . Admin_Settings::ENROLL . '[]" value="' . $id . '" />';
	}

	/**
	 * Build a textarea
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function build_textarea( $id, $cols = false, $val = null ) {
		if ( $val === null ) {
			$val = Conf::val( $id, true );

			if ( is_array( $val ) ) {
				$val = implode( "\n", $val );
			}
		}

		if ( ! $cols ) {
			$cols = 80;
		}

		$rows = 5;
		$lines = substr_count( $val, "\n" ) + 2;
		if ( $lines > $rows ) {
			$rows = $lines;
		}
		if ( $rows > 40 ) {
			$rows = 40;
		}

		$this->enroll( $id );

		echo "<textarea name='$id' rows='$rows' cols='$cols'>" . esc_textarea( $val ) . "</textarea>";

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a text input field
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function build_input( $id, $cls = null, $val = null, $type = 'text', $disabled = false ) {
		if ( $val === null ) {
			$val = Conf::val( $id, true );

			// Mask pswds
			if ( $this->_conf_pswd( $id ) && $val ) {
				$val = str_repeat( '*', strlen( $val ) );
			}
		}

		$label_id = preg_replace( '|\W|', '', $id );

		if ( $type == 'text' ) {
			$cls = "regular-text $cls";
		}

		if ( $disabled ) {
			echo "<input type='$type' class='$cls' value='" . esc_textarea( $val ) ."' id='input_$label_id' disabled /> ";
		}
		else {
			$this->enroll( $id );
			echo "<input type='$type' class='$cls' name='$id' value='" . esc_textarea( $val ) ."' id='input_$label_id' /> ";
		}

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a checkbox html snippet
	 *
	 * @since 1.1.0
	 * @access public
	 * @param  string $id
	 * @param  string $title
	 * @param  bool $checked
	 */
	public function build_checkbox( $id, $title, $checked = null, $value = 1 ) {
		if ( $checked === null && Conf::val( $id, true ) ) {
			$checked = true;
		}
		$checked = $checked ? ' checked ' : '';

		$label_id = preg_replace( '|\W|', '', $id );

		if ( $value !== 1 ) {
			$label_id .= '_' . $value;
		}

		$this->enroll( $id );

		echo "<div class='litespeed-tick'>
			<input type='checkbox' name='$id' id='input_checkbox_$label_id' value='$value' $checked />
			<label for='input_checkbox_$label_id'>$title</label>
		</div>";

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a toggle checkbox html snippet
	 *
	 * @since 1.7
	 */
	public function build_toggle( $id, $checked = null, $title_on = null, $title_off = null ) {
		if ( $checked === null && Conf::val( $id, true ) ) {
			$checked = true;
		}

		if ( $title_on === null ) {
			$title_on = __( 'ON', 'litespeed-cache' );
			$title_off = __( 'OFF', 'litespeed-cache' );
		}

		$cls = $checked ? 'primary' : 'default litespeed-toggleoff';

		$this->enroll( $id );

		echo "<div class='litespeed-toggle litespeed-toggle-btn litespeed-toggle-btn-$cls' data-litespeed-toggle-on='primary' data-litespeed-toggle-off='default'>
				<input name='$id' type='hidden' value='$checked' />
				<div class='litespeed-toggle-group'>
					<label class='litespeed-toggle-btn litespeed-toggle-btn-primary litespeed-toggle-on'>$title_on</label>
					<label class='litespeed-toggle-btn litespeed-toggle-btn-default litespeed-toggle-active litespeed-toggle-off'>$title_off</label>
					<span class='litespeed-toggle-handle litespeed-toggle-btn litespeed-toggle-btn-default'></span>
				</div>
			</div>";

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a switch div html snippet
	 *
	 * @since 1.1.0
	 * @since 1.7 removed param $disable
	 * @access public
	 */
	public function build_switch( $id, $title_list = false ) {
		$this->enroll( $id );

		echo '<div class="litespeed-switch">';

		if ( ! $title_list ) {
			$title_list = array(
				__( 'OFF', 'litespeed-cache' ),
				__( 'ON', 'litespeed-cache' ),
			);
		}

		foreach ( $title_list as $k => $v ) {
			$this->_build_radio( $id, $k, $v );
		}

		echo '</div>';

		$this->_check_overwritten( $id );
	}

	/**
	 * Build a radio input html codes and output
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function _build_radio( $id, $val, $txt ) {
		$id_attr = 'input_radio_' . preg_replace( '|\W|', '', $id ) . '_' . $val;

		$default = isset( self::$_default_options[ $id ] ) ? self::$_default_options[ $id ] : self::$_default_site_options[ $id ];

		if ( ! is_string( $default ) ) {
			$checked = (int) Conf::val( $id, true ) === (int) $val ? ' checked ' : '';
		}
		else {
			$checked = Conf::val( $id, true ) === $val ? ' checked ' : '';
		}

		echo "<input type='radio' autocomplete='off' name='$id' id='$id_attr' value='$val' $checked /> <label for='$id_attr'>$txt</label>";
	}

	/**
	 * Show overwritten msg if there is a const defined
	 *
	 * @since  3.0
	 */
	protected function _check_overwritten( $id ) {
		$const_val = $this->__cfg->const_overwritten( $id );
		$primary_val = $this->__cfg->primary_overwritten( $id );
		if ( $const_val === null && $primary_val === null ) {
			return;
		}

		$val = $const_val !== null ? $const_val : $primary_val;

		$default = isset( self::$_default_options[ $id ] ) ? self::$_default_options[ $id ] : self::$_default_site_options[ $id ];

		if ( is_bool( $default ) ) {
			$val = $val ? __( 'ON', 'litespeed-cache' ) : __( 'OFF', 'litespeed-cache' );
		}
		else {
			if ( is_array( $default ) ) {
				$val = implode( "\n", $val );
			}
			$val = esc_textarea( $val );
		}

		echo '<div class="litespeed-desc litespeed-warning">⚠️ ';

		if ( $const_val !== null ) {
			echo sprintf( __( 'This setting is overwritten by the PHP constant %s', 'litespeed-cache' ), '<code>' . Base::conf_const( $id ) . '</code>' );
		} else {
			if ( get_current_blog_id() != BLOG_ID_CURRENT_SITE && Conf::val( Base::NETWORK_O_USE_PRIMARY ) ) {
				echo __( 'This setting is overwritten by the primary site setting', 'litespeed-cache' );
			}
			else {
				echo __( 'This setting is overwritten by the Network setting', 'litespeed-cache' );
			}
		}

		echo ', ' . sprintf( __( 'currently set to %s', 'litespeed-cache' ), "<code>$val</code>" ) . '</div>';
	}

	/**
	 * Display seconds text and readable layout
	 *
	 * @since 3.0
	 * @access public
	 */
	public function readable_seconds() {
		echo __( 'seconds', 'litespeed-cache' );
		echo ' <span data-litespeed-readable=""></span>';
	}

	/**
	 * Display default value
	 *
	 * @since  1.1.1
	 * @access public
	 */
	public function recommended( $id ) {
		if ( ! $this->default_settings ) {
			$this->default_settings = $this->__cfg->load_default_vals();
		}

		$val = $this->default_settings[ $id ];

		if ( $val ) {
			if ( is_array( $val ) ) {
				$rows = 5;
				$cols = 30;
				// Flexible rows/cols
				$lines = count( $val ) + 1;
				$rows = min( max( $lines, $rows ), 40 );
				foreach ( $val as $v ) {
					$cols = max( strlen( $v ), $cols );
				}
				$cols = min( $cols, 150 );

				$val = implode( "\n", $val );
				$val = esc_textarea( $val );
				$val = '<div class="litespeed-desc">' . __( 'Recommended value', 'litespeed-cache' ) . ':</div>' . "<textarea readonly rows='$rows' cols='$cols'>$val</textarea>";
			}
			else {
				$val = esc_textarea( $val );
				$val = "<code>$val</code>";
				$val = __( 'Recommended value', 'litespeed-cache' ) . ': '.$val;
			}
			echo  $val;
		}
	}

	/**
	 * Validate rewrite rules regex syntax
	 *
	 * @since  3.0
	 */
	protected function _validate_syntax( $id ) {
		$val = Conf::val( $id, true );

		if ( ! $val ) {
			return;
		}

		if ( ! is_array( $val ) ) {
			$val = array( $val );
		}

		foreach ( $val as $v ) {
			if ( ! Utility::syntax_checker( $v ) ) {
				echo '<br /><font class="litespeed-warning"> ❌ ' . __( 'Invalid rewrite rule', 'litespeed-cache' ) . ': <code>' . $v . '</code></font>';
			}
		}
	}

	/**
	 * Validate if the htaccess path is valid
	 *
	 * @since  3.0
	 */
	protected function _validate_htaccess_path( $id ) {
		$val = Conf::val( $id, true );
		if ( ! $val ) {
			return;
		}

		if ( substr( $val, -10 ) !== '/.htaccess' ) {
			echo '<br /><font class="litespeed-warning"> ❌ ' . sprintf( __( 'Path must end with %s', 'litespeed-cache' ), '<code>/.htaccess</code>' ) . '</font>';
		}
	}

	/**
	 * Check ttl instead of error when saving
	 *
	 * @since  3.0
	 */
	protected function _validate_ttl( $id, $min = false, $max = false, $allow_zero = false ) {
		$val = Conf::val( $id, true );

		if ( $allow_zero && ! $val ) {
			// return;
		}

		$tip = array();
		if ( $min && $val < $min && ( ! $allow_zero || $val != 0 ) ) {
			$tip[] = __( 'Minimum value', 'litespeed-cache' ) . ': <code>' . $min . '</code>.';
		}
		if ( $max && $val > $max ) {
			$tip[] = __( 'Maximum value', 'litespeed-cache' ) . ': <code>' . $max . '</code>.';
		}

		echo '<br />';

		if ( $tip ) {
			echo '<font class="litespeed-warning"> ❌ ' . implode( ' ', $tip ) . '</font>';
		}

		$range = '';

		if ( $allow_zero ) {
			$range .= __( 'Zero, or', 'litespeed-cache' ) . ' ';
		}

		if ( $min && $max ) {
			$range .= $min . ' - ' . $max;
		}
		elseif ( $min ) {
			$range .= __( 'Larger than', 'litespeed-cache' ) . ' ' . $min;
		}
		elseif ( $max ) {
			$range .= __( 'Smaller than', 'litespeed-cache' ) . ' ' . $max;
		}

		echo __( 'Value range', 'litespeed-cache' ) . ': <code>' . $range . '</code>';
	}

	/**
	 * Check if ip is valid
	 *
	 * @since  3.0
	 */
	protected function _validate_ip( $id ) {
		$val = Conf::val( $id, true );
		if ( ! $val ) {
			return;
		}

		if ( ! is_array( $val ) ) {
			$val = array( $val );
		}

		$tip = array();
		foreach ( $val as $v ) {
			if ( ! $v ) {
				continue;
			}

			if ( ! \WP_Http::is_ip_address( $v ) ) {
				$tip[] = __( 'Invalid IP', 'litespeed-cache' ) . ': <code>' . esc_textarea( $v ) . '</code>.';
			}
		}

		if ( $tip ) {
			echo '<br /><font class="litespeed-warning"> ❌ ' . implode( ' ', $tip ) . '</font>';
		}
	}

	/**
	 * Display API environment variable support
	 *
	 * @since  1.8.3
	 * @access protected
	 */
	protected function _api_env_var() {
		$args = func_get_args();
		$s = '<code>' . implode( '</code>, <code>', $args ) . '</code>';

		echo '<font class="litespeed-success"> '
			. __( 'API', 'litespeed-cache' ) . ': '
			. sprintf( __( 'Server variable(s) %s available to override this setting.', 'litespeed-cache' ), $s );

		Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#limiting-the-crawler' );
	}

	/**
	 * Display URI setting example
	 *
	 * @since  2.6.1
	 * @access protected
	 */
	protected function _uri_usage_example() {
		echo __( 'The URLs will be compared to the REQUEST_URI server variable.', 'litespeed-cache' );
		echo ' ' . sprintf( __( 'For example, for %s, %s can be used here.', 'litespeed-cache' ), '<code>/mypath/mypage?aa=bb</code>', '<code>mypage?aa=</code>' );
		echo '<br /><i>';
			echo sprintf( __( 'To match the beginning, add %s to the beginning of the item.', 'litespeed-cache' ), '<code>^</code>' );
			echo ' ' . sprintf( __( 'To do an exact match, add %s to the end of the URL.', 'litespeed-cache' ), '<code>$</code>' );
			echo ' ' . __( 'One per line.', 'litespeed-cache' );
		echo '</i>';
	}

	/**
	 * Return groups string
	 *
	 * @since  2.0
	 * @access public
	 */
	public static function print_plural( $num, $kind = 'group' ) {
		if ( $num > 1 ) {
			switch ( $kind ) {
				case 'group' :
					return sprintf( __( '%s groups', 'litespeed-cache' ), $num );

				case 'image' :
					return sprintf( __( '%s images', 'litespeed-cache' ), $num );

				default:
					return $num;
			}

		}

		switch ( $kind ) {
			case 'group' :
				return sprintf( __( '%s group', 'litespeed-cache' ), $num );

			case 'image' :
				return sprintf( __( '%s image', 'litespeed-cache' ), $num );

			default:
				return $num;
		}
	}

	/**
	 * Return guidance html
	 *
	 * @since  2.0
	 * @access public
	 */
	public static function guidance( $title, $steps, $current_step ) {
		if ( $current_step === 'done' ) {
			$current_step = count( $steps ) + 1;
		}

		$percentage = ' (' . floor( ( $current_step - 1 ) * 100 / count( $steps ) ) . '%)';

		$html = '<div class="litespeed-guide">'
					. '<h2>' . $title . $percentage . '</h2>'
					. '<ol>';
		foreach ( $steps as $k => $v ) {
			$step = $k + 1;
			if ( $current_step > $step ) {
				$html .= '<li class="litespeed-guide-done">';
			}
			else {
				$html .= '<li>';
			}
			$html .= $v . '</li>';
		}

		$html .= '</ol></div>';

		return $html;
	}
}
<?php
/**
 * Database upgrade funcs
 *
 * NOTE: whenever called this file, always call Data::get_upgrade_lock and Data::_set_upgrade_lock first.
 *
 * @since  3.0
 */
defined( 'WPINC' ) || exit;

use LiteSpeed\Debug2;
use LiteSpeed\Conf;
use LiteSpeed\Admin_Display;

/**
 * Append jQuery to JS optm exclude list for max compatibility
 * Turn off JS Combine and Defer
 *
 * @since  3.5.1
 */
function litespeed_update_3_5() {
	$__conf = Conf::get_instance();
	// Excludes jQuery
	foreach ( array( 'optm-js_exc', 'optm-js_defer_exc' ) as $v ) {
		$curr_setting = Conf::val( $v );
		$curr_setting[] = 'jquery.js';
		$curr_setting[] = 'jquery.min.js';
		$__conf->update( $v, $curr_setting );
	}
	// Turn off JS Combine and defer
	$show_msg = false;
	foreach ( array( 'optm-js_comb', 'optm-js_defer', 'optm-js_inline_defer' ) as $v ) {
		$curr_setting = Conf::val( $v );
		if ( ! $curr_setting ) {
			continue;
		}
		$show_msg = true;
		$__conf->update( $v, false );
	}

	if ( $show_msg ) {
		$msg = sprintf( __( 'LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, the settings %1$s and %2$s have been turned OFF. Please turn them back on manually and verify that your site layout is correct, and you have no JS errors.', 'litespeed-cache' ), '<code>' . __( 'JS Combine', 'litespeed-cache' ) . '</code>', '<code>' . __( 'JS Defer', 'litespeed-cache' ) . '</code>' );
		$msg .= sprintf( ' <a href="admin.php?page=litespeed-page_optm#settings_js">%s</a>.', __( 'Click here to settings', 'litespeed-cache' ) );
		Admin_Display::info( $msg, false, true );
	}
}

/**
 * For version under v2.0 to v2.0+
 *
 * @since  3.0
 */
function litespeed_update_2_0( $ver ) {
	global $wpdb ;

	// Table version only exists after all old data migrated
	// Last modified is v2.4.2
	if ( version_compare( $ver, '2.4.2', '<' ) ) {
		/**
		 * Convert old data from postmeta to img_optm table
		 * @since  2.0
		 */

		// Migrate data from `wp_postmeta` to `wp_litespeed_img_optm`
		$mids_to_del = array() ;
		$q = "SELECT * FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_id" ;
		$meta_value_list = $wpdb->get_results( $wpdb->prepare( $q, 'litespeed-optimize-data' ) ) ;
		if ( $meta_value_list ) {
			$max_k = count( $meta_value_list ) - 1 ;
			foreach ( $meta_value_list as $k => $v ) {
				$md52src_list = maybe_unserialize( $v->meta_value ) ;
				foreach ( $md52src_list as $md5 => $v2 ) {
					$f = array(
						'post_id'	=> $v->post_id,
						'optm_status'		=> $v2[ 1 ],
						'src'		=> $v2[ 0 ],
						'srcpath_md5'		=> md5( $v2[ 0 ] ),
						'src_md5'		=> $md5,
						'server'		=> $v2[ 2 ],
					) ;
					$wpdb->replace( $wpdb->prefix . 'litespeed_img_optm', $f ) ;
				}
				$mids_to_del[] = $v->meta_id ;

				// Delete from postmeta
				if ( count( $mids_to_del ) > 100 || $k == $max_k ) {
					$q = "DELETE FROM $wpdb->postmeta WHERE meta_id IN ( " . implode( ',', array_fill( 0, count( $mids_to_del ), '%s' ) ) . " ) " ;
					$wpdb->query( $wpdb->prepare( $q, $mids_to_del ) ) ;

					$mids_to_del = array() ;
				}
			}

			Debug2::debug( '[Data] img_optm inserted records: ' . $k ) ;
		}

		$q = "DELETE FROM $wpdb->postmeta WHERE meta_key = %s" ;
		$rows = $wpdb->query( $wpdb->prepare( $q, 'litespeed-optimize-status' ) ) ;
		Debug2::debug( '[Data] img_optm delete optm_status records: ' . $rows ) ;

	}

	/**
	 * Add target_md5 field to table
	 * @since  2.4.2
	 */
	if ( version_compare( $ver, '2.4.2', '<' ) && version_compare( $ver, '2.0', '>=' ) ) {// NOTE: For new users, need to bypass this section
		$sql = sprintf(
			'ALTER TABLE `%1$s` ADD `server_info` text NOT NULL, DROP COLUMN `server`',
			$wpdb->prefix . 'litespeed_img_optm'
		) ;

		$res = $wpdb->query( $sql ) ;
		if ( $res !== true ) {
			Debug2::debug( '[Data] Warning: Alter table img_optm failed!', $sql ) ;
		}
		else {
			Debug2::debug( '[Data] Successfully upgraded table img_optm.' ) ;
		}

	}

	// Delete img optm tb version
	delete_option( $wpdb->prefix . 'litespeed_img_optm' ) ;


	// Delete possible HTML optm data from wp_options
	delete_option( 'litespeed-cache-optimized' ) ;

	// Delete HTML optm tb version
	delete_option( $wpdb->prefix . 'litespeed_optimizer' ) ;

}



/**
 * Move all options in litespeed-cache-conf from v3.0- to separate records
 *
 * @since  3.0
 */
function litespeed_update_3_0( $ver ) {
	global $wpdb;
	// Upgrade v2.0- to v2.0 first
	if ( version_compare( $ver, '2.0', '<' ) ) {
		litespeed_update_2_0( $ver ) ;
	}

	set_time_limit( 86400 );

	// conv items to litespeed.conf.*
	Debug2::debug( "[Data] Conv items to litespeed.conf.*" );
	$data = array(
		'litespeed-cache-exclude-cache-roles' 		=> 'cache-exc_roles',
		'litespeed-cache-drop_qs' 					=> 'cache-drop_qs',
		'litespeed-forced_cache_uri' 				=> 'cache-force_uri',
		'litespeed-cache_uri_priv' 					=> 'cache-priv_uri',
		'litespeed-excludes_uri' 					=> 'cache-exc',
		'litespeed-cache-vary-group' 				=> 'cache-vary_group',
		'litespeed-adv-purge_all_hooks' 			=> 'purge-hook_all',
		'litespeed-object_global_groups' 			=> 'object-global_groups',
		'litespeed-object_non_persistent_groups' 	=> 'object-non_persistent_groups',
		'litespeed-media-lazy-img-excludes' 		=> 'media-lazy_exc',
		'litespeed-media-lazy-img-cls-excludes' 	=> 'media-lazy_cls_exc',
		'litespeed-media-webp_attribute' 			=> 'img_optm-webp_attr',
		'litespeed-optm-css' 						=> 'optm-ccss_con',
		'litespeed-optm_excludes' 					=> 'optm-exc',
		'litespeed-optm-ccss-separate_posttype' 	=> 'optm-ccss_sep_posttype',
		'litespeed-optm-css-separate_uri' 			=> 'optm-ccss_sep_uri',
		'litespeed-optm-js-defer-excludes' 			=> 'optm-js_defer_exc',
		'litespeed-cache-dns_prefetch' 				=> 'optm-dns_prefetch',
		'litespeed-cache-exclude-optimization-roles' => 'optm-exc_roles',
		'litespeed-log_ignore_filters' 				=> 'debug-log_no_filters', // depreciated
		'litespeed-log_ignore_part_filters' 		=> 'debug-log_no_part_filters', // depreciated
		'litespeed-cdn-ori_dir' 					=> 'cdn-ori_dir',
		'litespeed-cache-cdn_mapping' 				=> 'cdn-mapping',
		'litespeed-crawler-as-uids' 				=> 'crawler-roles',
		'litespeed-crawler-cookies' 				=> 'crawler-cookies',
	) ;
	foreach ( $data as $k => $v ) {
		$old_data = get_option( $k ) ;
		if ( $old_data ) {
			Debug2::debug( "[Data] Convert $k" );
			// They must be an array
			if ( ! is_array( $old_data ) && $v != 'optm-ccss_con' ) {
				$old_data = explode( "\n", $old_data ) ;
			}

			if ( $v == 'crawler-cookies' ) {
				$tmp = array() ;
				$i = 0 ;
				foreach ( $old_data as $k2 => $v2 ) {
					$tmp[ $i ][ 'name' ] = $k2 ;
					$tmp[ $i ][ 'vals' ] = explode( "\n", $v2 ) ;
					$i ++ ;
				}
				$old_data = $tmp ;
			}

			add_option( 'litespeed.conf.' . $v, $old_data ) ;
		}
		Debug2::debug( "[Data] Delete $k" );
		delete_option( $k ) ;
	}

	// conv other items
	$data = array(
		'litespeed-setting-mode' 			=> 'litespeed.setting.mode',
		'litespeed-media-need-pull' 		=> 'litespeed.img_optm.need_pull',
		'litespeed-env-ref' 				=> 'litespeed.env.ref',
		'litespeed-cache-cloudflare_status' => 'litespeed.cdn.cloudflare.status',

	) ;
	foreach ( $data as $k => $v ) {
		$old_data = get_option( $k ) ;
		if ( $old_data ) {
			add_option( $v, $old_data ) ;
		}
		delete_option( $k ) ;
	}

	// Conv conf from litespeed-cache-conf child to litespeed.conf.*
	Debug2::debug( "[Data] Conv conf from litespeed-cache-conf child to litespeed.conf.*" );
	$previous_options = get_option( 'litespeed-cache-conf' ) ;

	$data = array(
		'radio_select'				=> 'cache',
		'hash'						=> 'hash',
		'auto_upgrade'				=> 'auto_upgrade',
		'news'						=> 'news',
		'crawler_domain_ip' 		=> 'server_ip',

		'esi_enabled'				=> 'esi',
		'esi_cached_admbar'			=> 'esi-cache_admbar',
		'esi_cached_commform'		=> 'esi-cache_commform',

		'heartbeat'					=> 'misc-heartbeat_front',

		'cache_browser'				=> 'cache-browser',
		'cache_browser_ttl'			=> 'cache-ttl_browser',
		'instant_click'				=> 'util-instant_click',
		'use_http_for_https_vary' 	=> 'util-no_https_vary',

		'purge_upgrade'				=> 'purge-upgrade',
		'timed_urls' 				=> 'purge-timed_urls',
		'timed_urls_time' 			=> 'purge-timed_urls_time',

		'cache_priv' 				=> 'cache-priv',
		'cache_commenter'			=> 'cache-commenter',
		'cache_rest' 				=> 'cache-rest',
		'cache_page_login'			=> 'cache-page_login',
		'cache_favicon'				=> 'cache-favicon',
		'cache_resources'			=> 'cache-resources',
		'mobileview_enabled'		=> 'cache-mobile',
		'mobileview_rules'			=> 'cache-mobile_rules',
		'nocache_useragents' 		=> 'cache-exc_useragents',
		'nocache_cookies' 			=> 'cache-exc_cookies',
		'excludes_qs' 				=> 'cache-exc_qs',
		'excludes_cat' 				=> 'cache-exc_cat',
		'excludes_tag' 				=> 'cache-exc_tag',
		'public_ttl'				=> 'cache-ttl_pub',
		'private_ttl'				=> 'cache-ttl_priv',
		'front_page_ttl'			=> 'cache-ttl_frontpage',
		'feed_ttl'					=> 'cache-ttl_feed',
		'login_cookie'				=> 'cache-login_cookie',

		'debug_disable_all'			=> 'debug-disable_all',
		'debug'						=> 'debug',
		'admin_ips' 				=> 'debug-ips',
		'debug_level' 				=> 'debug-level',
		'log_file_size'				=> 'debug-filesize',
		'debug_cookie'				=> 'debug-cookie',
		'collaps_qs'				=> 'debug-collaps_qs',
		// 'log_filters' 				=> 'debug-log_filters',

		'crawler_cron_active' 		=> 'crawler',
		// 'crawler_include_posts' 	=> 'crawler-inc_posts',
		// 'crawler_include_pages' 	=> 'crawler-inc_pages',
		// 'crawler_include_cats' 		=> 'crawler-inc_cats',
		// 'crawler_include_tags' 		=> 'crawler-inc_tags',
		// 'crawler_excludes_cpt' 		=> 'crawler-exc_cpt',
		// 'crawler_order_links' 		=> 'crawler-order_links',
		'crawler_usleep' 			=> 'crawler-usleep',
		'crawler_run_duration' 		=> 'crawler-run_duration',
		'crawler_run_interval' 		=> 'crawler-run_interval',
		'crawler_crawl_interval' 	=> 'crawler-crawl_interval',
		'crawler_threads' 			=> 'crawler-threads',
		'crawler_load_limit' 		=> 'crawler-load_limit',
		'crawler_custom_sitemap' 	=> 'crawler-sitemap',

		'cache_object'				=> 'object',
		'cache_object_kind'			=> 'object-kind',
		'cache_object_host'			=> 'object-host',
		'cache_object_port'			=> 'object-port',
		'cache_object_life'			=> 'object-life',
		'cache_object_persistent'	=> 'object-persistent',
		'cache_object_admin'		=> 'object-admin',
		'cache_object_transients'	=> 'object-transients',
		'cache_object_db_id'		=> 'object-db_id',
		'cache_object_user'			=> 'object-user',
		'cache_object_pswd'			=> 'object-psw',

		'cdn'						=> 'cdn',
		'cdn_ori'					=> 'cdn-ori',
		'cdn_exclude' 				=> 'cdn-exc',
		// 'cdn_remote_jquery'			=> 'cdn-remote_jq',
		'cdn_quic'					=> 'cdn-quic',
		'cdn_cloudflare'			=> 'cdn-cloudflare',
		'cdn_cloudflare_email'		=> 'cdn-cloudflare_email',
		'cdn_cloudflare_key'		=> 'cdn-cloudflare_key',
		'cdn_cloudflare_name'		=> 'cdn-cloudflare_name',
		'cdn_cloudflare_zone'		=> 'cdn-cloudflare_zone',

		'media_img_lazy'				=> 'media-lazy',
		'media_img_lazy_placeholder'	=> 'media-lazy_placeholder',
		'media_placeholder_resp'		=> 'media-placeholder_resp',
		'media_placeholder_resp_color'	=> 'media-placeholder_resp_color',
		'media_placeholder_resp_async'	=> 'media-placeholder_resp_async',
		'media_iframe_lazy'				=> 'media-iframe_lazy',
		'media_img_lazyjs_inline'		=> 'media-lazyjs_inline',

		'media_optm_auto'			=> 'img_optm-auto',
		'media_optm_cron'			=> 'img_optm-cron',
		'media_optm_ori'			=> 'img_optm-ori',
		'media_rm_ori_bkup'			=> 'img_optm-rm_bkup',
		'media_optm_webp'			=> 'img_optm-webp',
		'media_optm_lossless'		=> 'img_optm-lossless',
		'media_optm_exif'			=> 'img_optm-exif',
		'media_webp_replace'		=> 'img_optm-webp_replace',
		'media_webp_replace_srcset'	=> 'img_optm-webp_replace_srcset',

		'css_minify'			=> 'optm-css_min',
		// 'css_inline_minify'		=> 'optm-css_inline_min',
		'css_combine'			=> 'optm-css_comb',
		// 'css_combined_priority'	=> 'optm-css_comb_priority',
		'css_http2'				=> 'optm-css_http2',
		'css_exclude' 			=> 'optm-css_exc',
		'js_minify'				=> 'optm-js_min',
		// 'js_inline_minify'		=> 'optm-js_inline_min',
		'js_combine'			=> 'optm-js_comb',
		// 'js_combined_priority'	=> 'optm-js_comb_priority',
		'js_http2'				=> 'optm-js_http2',
		'js_exclude' 			=> 'optm-js_exc',
		'optimize_ttl'			=> 'optm-ttl',
		'html_minify'			=> 'optm-html_min',
		'optm_qs_rm'			=> 'optm-qs_rm',
		'optm_ggfonts_rm'		=> 'optm-ggfonts_rm',
		'optm_css_async'		=> 'optm-css_async',
		'optm_ccss_gen'			=> 'optm-ccss_gen',
		'optm_ccss_async'		=> 'optm-ccss_async',
		'optm_css_async_inline'	=> 'optm-css_async_inline',
		'optm_js_defer'			=> 'optm-js_defer',
		'optm_emoji_rm'			=> 'optm-emoji_rm',
		// 'optm_exclude_jquery'	=> 'optm-exc_jq',
		'optm_ggfonts_async'	=> 'optm-ggfonts_async',
		// 'optm_max_size'			=> 'optm-max_size',
		// 'optm_rm_comment'		=> 'optm-rm_comment',
	) ;
	foreach ( $data as $k => $v ) {
		if ( ! isset( $previous_options[ $k ] ) ) {
			continue ;
		}
		// The folllowing values must be array
		if ( ! is_array( $previous_options[ $k ] ) ) {
			if ( in_array( $v, array( 'cdn-ori', 'cache-exc_cat', 'cache-exc_tag' ) ) ) {
				$previous_options[ $k ] = explode( ',', $previous_options[ $k ] ) ;
				$previous_options[ $k ] = array_filter( $previous_options[ $k ] ) ;
			}
			elseif ( in_array( $v, array( 'cache-mobile_rules', 'cache-exc_useragents', 'cache-exc_cookies' ) ) ) {
				$previous_options[ $k ] = explode( '|', str_replace( '\\ ', ' ', $previous_options[ $k ] ) ) ;
				$previous_options[ $k ] = array_filter( $previous_options[ $k ] ) ;
			}
			elseif ( in_array( $v, array(
					'purge-timed_urls',
					'cache-exc_qs',
					'debug-ips',
					// 'crawler-exc_cpt',
					'cdn-exc',
					'optm-css_exc',
					'optm-js_exc',
				) ) ) {
				$previous_options[ $k ] = explode( "\n", $previous_options[ $k ] ) ;
				$previous_options[ $k ] = array_filter( $previous_options[ $k ] ) ;
			}
		}

		// Special handler for heartbeat
		if ( $v == 'misc-heartbeat_front' ) {
			if ( ! $previous_options[ $k ] ) {
				add_option( 'litespeed.conf.misc-heartbeat_front', true ) ;
				add_option( 'litespeed.conf.misc-heartbeat_back', true ) ;
				add_option( 'litespeed.conf.misc-heartbeat_editor', true ) ;
				add_option( 'litespeed.conf.misc-heartbeat_front_ttl', 0 ) ;
				add_option( 'litespeed.conf.misc-heartbeat_back_ttl', 0 ) ;
				add_option( 'litespeed.conf.misc-heartbeat_editor_ttl', 0 ) ;
			}
			continue ;
		}

		add_option( 'litespeed.conf.' . $v, $previous_options[ $k ] ) ;
	}
	// Conv purge_by_post
	$data = array(
		'-'		=> 'purge-post_all',
		'F'		=> 'purge-post_f',
		'H'		=> 'purge-post_h',
		'PGS'	=> 'purge-post_p',
		'PGSRP'	=> 'purge-post_pwrp',
		'A'		=> 'purge-post_a',
		'Y'		=> 'purge-post_y',
		'M'		=> 'purge-post_m',
		'D'		=> 'purge-post_d',
		'T'		=> 'purge-post_t',
		'PT'	=> 'purge-post_pt',
	) ;
	if ( isset( $previous_options[ 'purge_by_post' ] ) ) {
		$purge_by_post = explode( '.', $previous_options[ 'purge_by_post' ] ) ;
		foreach ( $data as $k => $v ) {
			add_option( 'litespeed.conf.' . $v, in_array( $k, $purge_by_post ) ) ;
		}
	}
	// Conv 404/403/500 TTL
	$ttl_status = array() ;
	if ( isset( $previous_options[ '403_ttl' ] ) ) {
		$ttl_status[] = '403 ' . $previous_options[ '403_ttl' ] ;
	}
	if ( isset( $previous_options[ '404_ttl' ] ) ) {
		$ttl_status[] = '404 ' . $previous_options[ '404_ttl' ] ;
	}
	if ( isset( $previous_options[ '500_ttl' ] ) ) {
		$ttl_status[] = '500 ' . $previous_options[ '500_ttl' ] ;
	}
	add_option( 'litespeed.conf.cache-ttl_status', $ttl_status ) ;

	/**
	 * Resave cdn cfg from lscfg to separate cfg when upgrade to v1.7
	 *
	 * NOTE: this can be left here as `add_option` bcos it is after the item `litespeed-cache-cdn_mapping` is converted
	 *
	 * @since 1.7
	 */
	if ( isset( $previous_options[ 'cdn_url' ] ) ) {
		$cdn_mapping = array(
			'url' 		=> $previous_options[ 'cdn_url' ],
			'inc_img' 	=> $previous_options[ 'cdn_inc_img' ],
			'inc_css' 	=> $previous_options[ 'cdn_inc_css' ],
			'inc_js' 	=> $previous_options[ 'cdn_inc_js' ],
			'filetype' 	=> $previous_options[ 'cdn_filetype' ],
		) ;
		add_option( 'litespeed.conf.cdn-mapping', array( $cdn_mapping ) ) ;
		Debug2::debug( "[Data] plugin_upgrade option adding CDN map" ) ;
	}

	/**
	 * Move Exclude settings to separate item
	 *
	 * NOTE: this can be left here as `add_option` bcos it is after the relevant items are converted
	 *
	 * @since  2.3
	 */
	if ( isset( $previous_options[ 'forced_cache_uri' ] ) ) {
		add_option( 'litespeed.conf.cache-force_uri', $previous_options[ 'forced_cache_uri' ] ) ;
	}
	if ( isset( $previous_options[ 'cache_uri_priv' ] ) ) {
		add_option( 'litespeed.conf.cache-priv_uri', $previous_options[ 'cache_uri_priv' ] ) ;
	}
	if ( isset( $previous_options[ 'optm_excludes' ] ) ) {
		add_option( 'litespeed.conf.optm-exc', $previous_options[ 'optm_excludes' ] ) ;
	}
	if ( isset( $previous_options[ 'excludes_uri' ] ) ) {
		add_option( 'litespeed.conf.cache-exc', $previous_options[ 'excludes_uri' ] ) ;
	}

	// Backup stale conf
	Debug2::debug( "[Data] Backup stale conf" );
	delete_option( 'litespeed-cache-conf' );
	add_option( 'litespeed-cache-conf.bk', $previous_options );

	// Upgrade site_options if is network
	if ( is_multisite() ) {
		$ver = get_site_option( 'litespeed.conf._version' ) ;
		if ( ! $ver ) {
			Debug2::debug( "[Data] Conv multisite" );
			$previous_site_options = get_site_option( 'litespeed-cache-conf' ) ;

			$data = array(
				'network_enabled'		=> 'cache',
				'use_primary_settings'	=> 'use_primary_settings',
				'auto_upgrade'			=> 'auto_upgrade',
				'purge_upgrade'			=> 'purge-upgrade',

				'cache_favicon'			=> 'cache-favicon',
				'cache_resources'		=> 'cache-resources',
				'mobileview_enabled'	=> 'cache-mobile',
				'mobileview_rules'		=> 'cache-mobile_rules',
				'login_cookie'				=> 'cache-login_cookie',
				'nocache_cookies' 			=> 'cache-exc_cookies',
				'nocache_useragents' 		=> 'cache-exc_useragents',

				'cache_object'				=> 'object',
				'cache_object_kind'			=> 'object-kind',
				'cache_object_host'			=> 'object-host',
				'cache_object_port'			=> 'object-port',
				'cache_object_life'			=> 'object-life',
				'cache_object_persistent'	=> 'object-persistent',
				'cache_object_admin'		=> 'object-admin',
				'cache_object_transients'	=> 'object-transients',
				'cache_object_db_id'		=> 'object-db_id',
				'cache_object_user'			=> 'object-user',
				'cache_object_pswd'			=> 'object-psw',

				'cache_browser'				=> 'cache-browser',
				'cache_browser_ttl'			=> 'cache-ttl_browser',

				'media_webp_replace'		=> 'img_optm-webp_replace',
			) ;
			foreach ( $data as $k => $v ) {
				if ( ! isset( $previous_site_options[ $k ] ) ) {
					continue ;
				}
				// The folllowing values must be array
				if ( ! is_array( $previous_site_options[ $k ] ) ) {
					if ( in_array( $v, array( 'cache-mobile_rules', 'cache-exc_useragents', 'cache-exc_cookies' ) ) ) {
						$previous_site_options[ $k ] = explode( '|', str_replace( '\\ ', ' ', $previous_site_options[ $k ] ) ) ;
						$previous_site_options[ $k ] = array_filter( $previous_site_options[ $k ] ) ;
					}
				}

				add_site_option( 'litespeed.conf.' . $v, $previous_site_options[ $k ] ) ;
			}

			// These are already converted to single record in single site
			$data = array(
				'object-global_groups',
				'object-non_persistent_groups',
			) ;
			foreach ( $data as $v ) {
				$old_data = get_option( $v ) ;
				if ( $old_data ) {
					add_site_option( 'litespeed.conf.' . $v, $old_data ) ;
				}
			}

			delete_site_option( 'litespeed-cache-conf' ) ;

			add_site_option( 'litespeed.conf._version', '3.0' ) ;
		}

	}

	// delete tables
	Debug2::debug( "[Data] Drop litespeed_optimizer" );
	$q = 'DROP TABLE IF EXISTS ' . $wpdb->prefix . 'litespeed_optimizer' ;
	$wpdb->query( $q ) ;

	// Update image optm table
	Debug2::debug( "[Data] Upgrade img_optm table" );
	$tb_exists = $wpdb->get_var( 'SHOW TABLES LIKE "' . $wpdb->prefix . 'litespeed_img_optm"' );
	if ( $tb_exists ) {
		$status_mapping = array(
			'requested'	=> 3,
			'notified'	=> 6,
			'pulled'	=> 9,
			'failed'	=> -1,
			'miss'		=> -3,
			'err'		=> -9,
			'err_fetch'	=> -5,
			'err_optm'	=> -7,
			'xmeta'		=> -8,
		);
		foreach ( $status_mapping as $k => $v ) {
			$q = "UPDATE `" . $wpdb->prefix . "litespeed_img_optm` SET optm_status='$v' WHERE optm_status='$k'";
			$wpdb->query( $q ) ;
		}

		$q = 'ALTER TABLE `' . $wpdb->prefix . 'litespeed_img_optm`
				DROP INDEX `post_id_2`,
				DROP INDEX `root_id`,
				DROP INDEX `src_md5`,
				DROP INDEX `srcpath_md5`,
				DROP COLUMN `srcpath_md5`,
				DROP COLUMN `src_md5`,
				DROP COLUMN `root_id`,
				DROP COLUMN `target_saved`,
				DROP COLUMN `webp_saved`,
				DROP COLUMN `server_info`,
				MODIFY COLUMN `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
				MODIFY COLUMN `optm_status` tinyint(4) NOT NULL DEFAULT 0,
				MODIFY COLUMN `src` text COLLATE utf8mb4_unicode_ci NOT NULL
			';
		$wpdb->query( $q ) ;
	}

	delete_option( 'litespeed-recommended' );

	Debug2::debug( "[Data] litespeed_update_3_0 done!" );

	add_option( 'litespeed.conf._version', '3.0' ) ;

}























<?php
/**
 * Cloud service cls
 *
 * @since      3.0
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Cloud extends Base {
	protected static $_instance;

	const CLOUD_SERVER = 'https://api.quic.cloud';
	const CLOUD_SERVER_DASH = 'https://my.quic.cloud';

	const SVC_D_NODES 			= 'd/nodes';
	const SVC_D_SYNC_CONF		= 'd/sync_conf';
	const SVC_D_REGIONNODES		= 'd/regionnodes';
	const SVC_D_USAGE 			= 'd/usage';
	const SVC_CCSS 				= 'ccss' ;
	const SVC_LQIP 				= 'lqip' ;
	const SVC_IMG_OPTM			= 'img_optm' ;
	const SVC_HEALTH			= 'health' ;
	const SVC_CDN				= 'cdn' ;

	const BM_IMG_OPTM_JUMBO_GROUP = 32;
	const IMG_OPTM_JUMBO_GROUP = 1000;
	const IMG_OPTM_DEFAULT_GROUP = 200;

	const IMGOPTM_TAKEN         = 'img_optm-taken';

	const EXPIRATION_NODE = 3; // Days before node expired
	const EXPIRATION_REQ = 300; // Seconds of min interval between two unfinished requests
	const EXPIRATION_TOKEN = 900; // Min intval to request a token 15m

	const API_NEWS 			= 'wp/news';
	const API_REPORT		= 'wp/report' ;
	const API_VER			= 'wp/ver' ;
	const API_BETA_TEST		= 'wp/beta_test' ;

	private static $CENTER_SVC_SET = array(
		self::SVC_D_NODES,
		self::SVC_D_REGIONNODES,
		self::SVC_D_SYNC_CONF,
		self::SVC_D_USAGE,
		self::API_NEWS,
		self::API_REPORT,
		self::API_VER,
		self::API_BETA_TEST,
	);

	// No api key needed for these services
	private static $_PUB_SVC_SET = array(
		self::API_NEWS,
		self::API_REPORT,
		self::API_VER,
		self::API_BETA_TEST,
	);

	public static $SERVICES = array(
		self::SVC_IMG_OPTM,
		self::SVC_CCSS,
		self::SVC_LQIP,
		self::SVC_CDN,
		self::SVC_HEALTH,
	);

	const TYPE_CLEAR_PROMO 		= 'clear_promo';
	const TYPE_REDETECT_CLOUD 	= 'redetect_cloud';
	const TYPE_CLEAR_CLOUD 		= 'clear_cloud';
	const TYPE_GEN_KEY 			= 'gen_key';
	const TYPE_LINK 			= 'link';
	const TYPE_SYNC_USAGE 		= 'sync_usage';

	private $_api_key;
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 */
	protected function __construct() {
		$this->_api_key = Conf::val( Base::O_API_KEY );
		$this->_summary = self::get_summary();
	}

	/**
	 * Show latest commit version always if is on dev
	 *
	 * @since 3.0
	 */
	public function check_dev_version() {
		if ( ! preg_match( '/[^\d\.]/', Core::VER ) ) {
			return;
		}

		$last_check = empty( $this->_summary[ 'last_request.' . self::API_VER ] ) ? 0 : $this->_summary[ 'last_request.' . self::API_VER ] ;

		if ( time() - $last_check > 600 ) {
			$auto_v = self::version_check( 'dev' );
			if ( ! empty( $auto_v[ 'dev' ] ) ) {
				$this->_summary[ 'version.dev' ] = $auto_v[ 'dev' ];
				self::save_summary( $this->_summary );
			}
		}

		if ( empty( $this->_summary[ 'version.dev' ] ) ) {
			return;
		}

		Debug2::debug( '❄️  Latest dev version ' . $this->_summary[ 'version.dev' ] );

		if ( version_compare( $this->_summary[ 'version.dev' ], Core::VER, '<=' ) ) {
			return;
		}

		// Show the dev banner
		require_once LSCWP_DIR . 'tpl/banner/new_version_dev.tpl.php';
	}

	/**
	 * Check latest version
	 *
	 * @since  2.9
	 * @access public
	 */
	public static function version_check( $src = false ) {
		$req_data = array(
			'v'		=> defined( 'LSCWP_CUR_V' ) ? LSCWP_CUR_V : '',
			'src'	=> $src,
		);
		if ( defined( 'LITESPEED_ERR' ) ) {
			$req_data[ 'err' ] = base64_encode( ! is_string( LITESPEED_ERR ) ? json_encode( LITESPEED_ERR ) : LITESPEED_ERR ) ;
		}
		$data = self::get( self::API_VER, $req_data );

		return $data;
	}

	/**
	 * Show latest news
	 *
	 * @since 3.0
	 */
	public function news() {
		$this->_update_news();

		if ( empty( $this->_summary[ 'news.new' ] ) ) {
			return;
		}

		if ( ! empty( $this->_summary[ 'news.plugin' ] ) && Activation::get_instance()->dash_notifier_is_plugin_active( $this->_summary[ 'news.plugin' ] ) ) {
			return;
		}

		require_once LSCWP_DIR . 'tpl/banner/cloud_news.tpl.php' ;
	}

	/**
	 * Update latest news
	 *
	 * @since 2.9.9.1
	 */
	private function _update_news() {
		if ( ! empty( $this->_summary[ 'news.utime' ] ) && time() - $this->_summary[ 'news.utime' ] < 86400 * 3 ) {
			return;
		}

		$this->_summary[ 'news.utime' ] = time();
		self::save_summary();

		$data = self::get( self::API_NEWS );
		if ( empty( $data[ 'id' ] ) ) {
			return;
		}

		// Save news
		if ( ! empty( $this->_summary[ 'news.id' ] ) && $this->_summary[ 'news.id' ] == $data[ 'id' ] ) {
			return;
		}

		$this->_summary[ 'news.id' ] = $data[ 'id' ];
		$this->_summary[ 'news.plugin' ] = ! empty( $data[ 'plugin' ] ) ? $data[ 'plugin' ] : '';
		$this->_summary[ 'news.title' ] = ! empty( $data[ 'title' ] ) ? $data[ 'title' ] : '';
		$this->_summary[ 'news.content' ] = ! empty( $data[ 'content' ] ) ? $data[ 'content' ] : '';
		$this->_summary[ 'news.zip' ] = ! empty( $data[ 'zip' ] ) ? $data[ 'zip' ] : '';
		$this->_summary[ 'news.new' ] = 1;

		if ( $this->_summary[ 'news.plugin' ] ) {
			$plugin_info = Activation::get_instance()->dash_notifier_get_plugin_info( $this->_summary[ 'news.plugin' ] );
			if ( $plugin_info && ! empty( $plugin_info->name ) ) {
				$this->_summary[ 'news.plugin_name' ] = $plugin_info->name;
			}
		}

		self::save_summary();
	}

	/**
	 * Get allowance of current service
	 *
	 * @since  3.0
	 * @access private
	 */
	public function allowance( $service ) {
		// Only auto sync usage at most one time per day
		if ( empty( $this->_summary[ 'last_request.' . self::SVC_D_USAGE ] ) || time() - $this->_summary[ 'last_request.' . self::SVC_D_USAGE ] > 86400 ) {
			$this->sync_usage();
		}

		if ( empty( $this->_summary[ 'usage.' . $service ] ) ) {
			return 0;
		}

		// Image optm is always free
		$allowance_max = 0;
		if ( $service == self::SVC_IMG_OPTM ) {
			$allowance_max = self::IMG_OPTM_DEFAULT_GROUP;
			if ( ! empty( $this->_summary[ 'usage.' . $service ][ 'pkgs' ] ) && $this->_summary[ 'usage.' . $service ][ 'pkgs' ] & self::BM_IMG_OPTM_JUMBO_GROUP ) {
				$allowance_max = self::IMG_OPTM_JUMBO_GROUP;
			}
		}

		$allowance = $this->_summary[ 'usage.' . $service ][ 'quota' ] - $this->_summary[ 'usage.' . $service ][ 'used' ];

		if ( $allowance > 0 ) {
			if ( $allowance_max && $allowance_max < $allowance ) {
				return $allowance_max;
			}
			return $allowance;
		}

		// Check Pay As You Go balance
		if ( empty( $this->_summary[ 'usage.' . $service ][ 'pag_bal' ] ) ) {
			return $allowance_max;
		}

		if ( $allowance_max && $allowance_max < $this->_summary[ 'usage.' . $service ][ 'pag_bal' ] ) {
			return $allowance_max;
		}

		return $this->_summary[ 'usage.' . $service ][ 'pag_bal' ];
	}

	/**
	 * Sync Cloud usage summary data
	 *
	 * @since  3.0
	 * @access public
	 */
	public function sync_usage() {
		$usage = $this->_post( self::SVC_D_USAGE );
		if ( ! $usage ) {
			return;
		}

		Debug2::debug( '❄️  sync_usage ' . json_encode( $usage ) );

		foreach ( self::$SERVICES as $v ) {
			$this->_summary[ 'usage.' . $v ] = ! empty( $usage[ $v ] ) ? $usage[ $v ] : false;
		}

		self::save_summary();

		return $this->_summary;
	}

	/**
	 * Clear all existing cloud nodes for future reconnect
	 *
	 * @since  3.0
	 * @access public
	 */
	public function clear_cloud() {
		foreach ( self::$SERVICES as $service ) {
			if ( isset( $this->_summary[ 'server.' . $service ] ) ) {
				unset( $this->_summary[ 'server.' . $service ] );
			}
			if ( isset( $this->_summary[ 'server_date.' . $service ] ) ) {
				unset( $this->_summary[ 'server_date.' . $service ] );
			}
		}
		self::save_summary();

		Debug2::debug( '❄️  Cleared all local service node caches' );
	}

	/**
	 * ping clouds to find the fastest node
	 *
	 * @since  3.0
	 * @access public
	 */
	public function detect_cloud( $service, $force = false ) {
		if ( in_array( $service, self::$CENTER_SVC_SET ) ) {
			return self::CLOUD_SERVER;
		}

		// Check if the stored server needs to be refreshed
		if ( ! $force ) {
			if ( ! empty( $this->_summary[ 'server.' . $service ] ) && ! empty( $this->_summary[ 'server_date.' . $service ] ) && $this->_summary[ 'server_date.' . $service ] > time() - 86400 * self::EXPIRATION_NODE ) {
				return $this->_summary[ 'server.' . $service ];
			}
		}

		if ( ! $service || ! in_array( $service, self::$SERVICES ) ) {
			$msg = __( 'Cloud Error', 'litespeed-cache' ) . ': ' . $service;
			Admin_Display::error( $msg );
			return false;
		}

		// Send request to Quic Online Service
		$cloud_endpoint = self::SVC_D_NODES;
		if($service == self::SVC_IMG_OPTM) {
			$cloud_endpoint = self::SVC_D_REGIONNODES;
		}
		$json = $this->_post( $cloud_endpoint, array( 'svc' => $service ) );

		// Check if get list correctly
		if ( empty( $json[ 'list' ] ) || ! is_array( $json[ 'list' ] ) ) {
			Debug2::debug( '❄️  request cloud list failed: ', $json );

			if ( $json ) {
				$msg = __( 'Cloud Error', 'litespeed-cache' ) . ": [Service] $service [Info] " . $json;
				Admin_Display::error( $msg );
			}

			return false;
		}

		// Ping closest cloud
		$speed_list = array();
		foreach ( $json[ 'list' ] as $v ) {
			$speed_list[ $v ] = Utility::ping( $v );
		}

		$min = min( $speed_list );

		if ( $min == 99999 ) {
			Debug2::debug( '❄️  failed to ping all clouds' );
			return false;
		}

		// Random pick same time range ip (230ms 250ms)
		$range_len = strlen( $min );
		$range_num = substr( $min, 0, 1 );
		$valid_clouds = array();
		foreach ($speed_list as $node => $speed ) {
			if ( strlen( $speed ) == $range_len && substr( $speed, 0, 1 ) == $range_num ) {
				$valid_clouds[] = $node;
			}
		}

		if ( ! $valid_clouds ) {
			$msg = __( 'Cloud Error', 'litespeed-cache' ) . ": [Service] $service [Info] " . __( 'No available Cloud Node.', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return false;
		}

		Debug2::debug( '❄️  Closest nodes list', $valid_clouds );

		$closest = $valid_clouds[ array_rand( $valid_clouds ) ];

		Debug2::debug( '❄️  Chose node: ' . $closest );

		// store data into option locally
		$this->_summary[ 'server.' . $service ] = $closest;
		$this->_summary[ 'server_date.' . $service ] = time();
		self::save_summary();

		return $this->_summary[ 'server.' . $service ];
	}

	/**
	 * Get data from QUIC cloud server
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get( $service, $data = array() ) {
		$instance = self::get_instance();
		return $instance->_get( $service, $data );
	}

	/**
	 * Get data from QUIC cloud server
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _get( $service, $data = false ) {
		$service_tag = $service;
		if ( ! empty( $data[ 'action' ] ) ) {
			$service_tag .= '-' . $data[ 'action' ];
		}

		if ( ! $this->_maybe_cloud( $service_tag ) ) {
			return;
		}

		$server = $this->detect_cloud( $service );
		if ( ! $server ) {
			return;
		}

		$url = $server . '/' . $service;

		$param = array(
			'site_url'		=> home_url(),
			'domain_key'	=> $this->_api_key,
			'ver'			=> Core::VER,
		);

		if ( $data ) {
			$param[ 'data' ] = $data;
		}

		$url .= '?' . http_build_query( $param );

		Debug2::debug( '❄️  getting from : ' . $url );

		$this->_summary[ 'curr_request.' . $service_tag ] = time();
		self::save_summary();

		$response = wp_remote_get( $url, array( 'timeout' => 15, 'sslverify' => true ) );

		return $this->_parse_response( $response, $service, $service_tag, $server );
	}

	/**
	 * Check if is able to do cloud request or not
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _maybe_cloud( $service_tag ) {
		if ( ! wp_http_validate_url( home_url() ) ) {
			return false;
		}

		// we don't want the `img_optm-taken` to fail at any given time
		if ( $service_tag == self::IMGOPTM_TAKEN ) {
			return true;
		}

		// Limit frequent unfinished request to 5min
		$timestamp_tag = 'curr_request.';
		if ( $service_tag == self::SVC_IMG_OPTM . '-' . Img_Optm::TYPE_NEW_REQ ) {
			$timestamp_tag = 'last_request.';
		}
		else {
			// For all other requests, if is under debug mode, will always allow
			if ( Conf::val( Base::O_DEBUG ) && $this->_api_key ) {
				return true;
			}
		}

		if ( ! empty( $this->_summary[ $timestamp_tag . $service_tag ] ) ) {
			$expired = $this->_summary[ $timestamp_tag . $service_tag ] + self::EXPIRATION_REQ - time();
			if ( $expired > 0 ) {
				Debug2::debug( "[Cloud] ❌ try [$service_tag] after $expired seconds" );

				if ( $service_tag !== self::API_VER ) {
					$msg = __( 'Cloud Error', 'litespeed-cache' ) . ': ' . sprintf( __( 'Please try after %1$s for service %2$s.', 'litespeed-cache' ), Utility::readable_time( $expired, 0, true ), '<code>' . $service_tag . '</code>' );
					Admin_Display::error( $msg );
				}

				return false;
			}
		}

		if ( in_array( $service_tag, self::$_PUB_SVC_SET ) ) {
			return true;
		}

		if ( ! $this->_api_key ) {
			Admin_Display::error( Error::msg( 'lack_of_api_key' ) );
			return false;
		}

		return true;
	}

	/**
	 * Post data to QUIC.cloud server
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function post( $service, $data = false, $time_out = false ) {
		$instance = self::get_instance();
		return $instance->_post( $service, $data, $time_out );
	}

	/**
	 * Post data to cloud server
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _post( $service, $data = false, $time_out = false ) {
		$service_tag = $service;
		if ( ! empty( $data[ 'action' ] ) ) {
			$service_tag .= '-' . $data[ 'action' ];
		}

		if ( ! $this->_maybe_cloud( $service_tag ) ) {
			return;
		}

		$server = $this->detect_cloud( $service );
		if ( ! $server ) {
			return;
		}

		$url = $server . '/' . $service;

		Debug2::debug( '❄️  posting to : ' . $url );

		$param = array(
			'site_url'		=> home_url(),
			'domain_key'	=> $this->_api_key,
			'ver'			=> Core::VER,
			'data' 			=> $data,
		);

		$this->_summary[ 'curr_request.' . $service_tag ] = time();
		self::save_summary();

		$response = wp_remote_post( $url, array( 'body' => $param, 'timeout' => $time_out ?: 15, 'sslverify' => true ) );

		return $this->_parse_response( $response, $service, $service_tag, $server );
	}

	/**
	 * Parse response JSON
	 * Mark the request successful if the response status is ok
	 *
	 * @since  3.0
	 */
	private function _parse_response( $response, $service, $service_tag, $server ) {
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			Debug2::debug( '❄️  failed to request: ' . $error_message );

			if ( $service !== self::API_VER ) {
				$msg = __( 'Failed to request via WordPress', 'litespeed-cache' ) . ': ' . $error_message . " [server] $server [service] $service";
				Admin_Display::error( $msg );
			}
			return;
		}

		$json = json_decode( $response[ 'body' ], true );

		if ( ! is_array( $json ) ) {
			Debug2::debug( '❄️  failed to decode response json: ' . $response[ 'body' ] );

			if ( $service !== self::API_VER ) {
				$msg = __( 'Failed to request via WordPress', 'litespeed-cache' ) . ': ' . $response[ 'body' ] . " [server] $server [service] $service";
				Admin_Display::error( $msg );
			}

			return;
		}

		if ( ! empty( $json[ '_503' ] ) ) {
			Debug2::debug( '❄️  service 503 unavailable temporarily. ' . $json[ '_503' ] );

			$msg = __( 'We are working hard to improve your online service experience. The service will be unavailable while we work. We apologize for any inconvenience.', 'litespeed-cache' );
			$msg .= ' ' . $json[ '_503' ] . " [server] $server [service] $service";
			Admin_Display::error( $msg );

			return;
		}

		if ( ! empty( $json[ '_info' ] ) ) {
			Debug2::debug( '❄️  _info: ' . $json[ '_info' ] );
			$msg = __( 'Message from QUIC.cloud server', 'litespeed-cache' ) . ': ' . $json[ '_info' ];
			$msg .= $this->_parse_link( $json );
			Admin_Display::info( $msg );
			unset( $json[ '_info' ] );
		}

		if ( ! empty( $json[ '_note' ] ) ) {
			Debug2::debug( '❄️  _note: ' . $json[ '_note' ] );
			$msg = __( 'Message from QUIC.cloud server', 'litespeed-cache' ) . ': ' . $json[ '_note' ];
			$msg .= $this->_parse_link( $json );
			Admin_Display::note( $msg );
			unset( $json[ '_note' ] );
		}

		if ( ! empty( $json[ '_success' ] ) ) {
			Debug2::debug( '❄️  _success: ' . $json[ '_success' ] );
			$msg = __( 'Good news from QUIC.cloud server', 'litespeed-cache' ) . ': ' . $json[ '_success' ];
			$msg .= $this->_parse_link( $json );
			Admin_Display::succeed( $msg );
			unset( $json[ '_success' ] );
		}

		// Upgrade is required
		if ( ! empty( $json[ '_err_req_v' ] ) ) {
			Debug2::debug( '❄️  _err_req_v: ' . $json[ '_err_req_v' ] );
			$msg = sprintf( __( '%1$s plugin version %2$s required for this action.', 'litespeed-cache' ), Core::NAME, 'v' . $json[ '_err_req_v' ] . '+' ) . " [server] $server [service] $service";

			// Append upgrade link
			$msg2 = ' ' . GUI::plugin_upgrade_link( Core::NAME, Core::PLUGIN_NAME, $json[ '_err_req_v' ] );

			$msg2 .= $this->_parse_link( $json );
			Admin_Display::error( $msg . $msg2 );
			return;
		}

		// Parse _carry_on info
		if ( ! empty( $json[ '_carry_on' ] ) ) {
			Debug2::debug( '❄️  Carry_on usage', $json[ '_carry_on' ] );
			// Store generic info
			foreach ( array( 'usage', 'promo' ) as $v ) {
				if ( ! empty( $json[ '_carry_on' ][ $v ] ) ) {
					switch ( $v ) {
						case 'usage':
							$this->_summary[ 'usage.' . $service ] = $json[ '_carry_on' ][ $v ];
							break;

						case 'promo':
							if ( empty( $this->_summary[ $v ] ) || ! is_array( $this->_summary[ $v ] ) ) {
								$this->_summary[ $v ] = array();
							}
							$this->_summary[ $v ][] = $json[ '_carry_on' ][ $v ];
							break;

						default:
							break;
					}
				}
			}
			self::save_summary();
			unset( $json[ '_carry_on' ] );
		}

		// Parse general error msg
		if ( empty( $json[ '_res' ] ) || $json[ '_res' ] !== 'ok' ) {
			$json_msg = ! empty( $json[ '_msg' ] ) ? $json[ '_msg' ] : 'unknown';
			Debug2::debug( '❄️  ❌ _err: ' . $json_msg );

			$msg = __( 'Failed to communicate with QUIC.cloud server', 'litespeed-cache' ) . ': ' . Error::msg( $json_msg ) . " [server] $server [service] $service";
			$msg .= $this->_parse_link( $json );
			Admin_Display::error( $msg );

			// Site not on QC, delete invalid domain key
			if ( $json_msg == 'site_not_registered' || $json_msg == 'err_key' ) {
				Conf::get_instance()->update_confs( array( Base::O_API_KEY => '' ) );

				$msg = __( 'Site not recognized. Domain Key has been automatically removed. Please request a new one.', 'litespeed-cache' );
				$msg .= Doc::learn_more( admin_url( 'admin.php?page=litespeed-general' ), __( 'Click here to set.', 'litespeed-cache' ), true, false, true );
				Admin_Display::error( $msg );
			}

			return;
		}

		unset( $json[ '_res' ] );
		if ( ! empty( $json[ '_msg' ] ) ) {
			unset( $json[ '_msg' ] );
		}

		$this->_summary[ 'last_request.' . $service_tag ] = $this->_summary[ 'curr_request.' . $service_tag ];
		$this->_summary[ 'curr_request.' . $service_tag ] = 0;
		self::save_summary();

		if ( $json ) {
			Debug2::debug2( '[Cloud] response ok', $json );
		}
		else {
			Debug2::debug2( '[Cloud] response ok' );
		}

		// Only successful request return Array
		return $json;
	}

	/**
	 * Show promo from cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function show_promo() {
		// if ( ! $this->_api_key && ! defined( 'LITESPEED_DISMISS_DOMAIN_KEY' ) ) {
		// 	Admin_Display::error( Error::msg( 'lack_of_api_key' ), true );
		// }

		if ( empty( $this->_summary[ 'promo' ] ) ) {
			return;
		}

		require_once LSCWP_DIR . 'tpl/banner/cloud_promo.tpl.php' ;
	}

	/**
	 * Clear promo from cloud
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _clear_promo() {
		if ( count( $this->_summary[ 'promo' ] ) > 1 ) {
			array_shift( $this->_summary[ 'promo' ] );
		}
		else {
			$this->_summary[ 'promo' ] = array();
		}
		self::save_summary();
	}

	/**
	 * Parse _links from json
	 *
	 * @since  1.6.5
	 * @since  1.6.7 Self clean the parameter
	 * @access private
	 */
	private function _parse_link( &$json ) {
		$msg = '';

		if ( ! empty( $json[ '_links' ] ) ) {
			foreach ( $json[ '_links' ] as $v ) {
				$msg .= ' ' . sprintf( '<a href="%s" class="%s" target="_blank">%s</a>', $v[ 'link' ], ! empty( $v[ 'cls' ] ) ? $v[ 'cls' ] : '', $v[ 'title' ] );
			}

			unset( $json[ '_links' ] );
		}

		return $msg;
	}

	/**
	 * Request callback validation from Cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function ip_validate() {
		if ( empty( $_POST[ 'hash' ] ) ) {
			Debug2::debug( '❄️  Lack of hash param' );
			return self::err( 'lack_of_param' );
		}

		if ( empty( $this->_api_key ) ) {
			Debug2::debug( '❄️  Lack of API key' );
			return self::err( 'lack_of_api_key' );
		}

		$to_validate = substr( $this->_api_key, 0, 4 );
		if ( $_POST[ 'hash' ] !== md5( $to_validate ) ) {
			Debug2::debug( '❄️  __callback IP request hash wrong: md5(' . $to_validate . ') !== ' . $_POST[ 'hash' ] );
			return self::err( 'err_hash' );
		}

		Control::set_nocache( 'Cloud IP hash validation' );

		$res_hash = substr( $this->_api_key, 2, 4 );

		Debug2::debug( '❄️  __callback IP request hash: md5(' . $res_hash . ')' );

		return self::ok( array( 'hash' => md5( $res_hash ) ) );
	}

	/**
	 * Can apply for a new token or not
	 *
	 * @since 3.0
	 */
	public function can_token() {
		return empty( $this->_summary[ 'token_ts' ] ) || time() - $this->_summary[ 'token_ts' ] > self::EXPIRATION_TOKEN;
	}

	/**
	 * Send request for domain key, get json [ 'token' => 'asdfasdf' ]
	 *
	 * @since  3.0
	 * @access public
	 */
	public function gen_key() {
		$data = array(
			'site_url'	=> home_url(),
			'rest'		=> function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' ),
			'server_ip'	=> Conf::val( Base::O_SERVER_IP ),
		);
		if ( ! empty( $this->_summary[ 'token' ] ) ) {
			$data[ 'token' ] = $this->_summary[ 'token' ];
		}

		$response = wp_remote_get( self::CLOUD_SERVER . '/d/req_key?data=' . Utility::arr2str( $data ) );
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			Debug2::debug( '[Cloud] failed to gen_key: ' . $error_message );
			Admin_Display::error( __( 'Cloud Error', 'litespeed-cache' ) . ': ' . $error_message );
			return;
		}

		$json = json_decode( $response[ 'body' ], true );

		// Save token option
		if ( ! empty( $json[ 'token' ] ) ) {
			$this->_summary[ 'token' ] = $json[ 'token' ];
			$this->_summary[ 'token_ts' ] = time();
			if ( ! empty( $this->_summary[ 'apikey_ts' ] ) ) {
				unset( $this->_summary[ 'apikey_ts' ] );
			}
			self::save_summary();
		}

		// Parse general error msg
		if ( empty( $json[ '_res' ] ) || $json[ '_res' ] !== 'ok' ) {
			// clear current token
			unset( $this->_summary[ 'token' ] );
			self::save_summary();

			$json_msg = ! empty( $json[ '_msg' ] ) ? $json[ '_msg' ] : 'unknown';
			Debug2::debug( '❄️  ❌ _err: ' . $json_msg );

			$msg = __( 'Failed to communicate with QUIC.cloud server', 'litespeed-cache' ) . ': ' . Error::msg( $json_msg );
			$msg .= $this->_parse_link( $json );
			Admin_Display::error( $msg );

			return;
		}

		// This is a ok msg
		if ( ! empty( $json[ '_msg' ] ) ) {
			Debug2::debug( '❄️  _msg: ' . $json[ '_msg' ] );

			$msg = __( 'Message from QUIC.cloud server', 'litespeed-cache' ) . ': ' . Error::msg( $json[ '_msg' ] );
			$msg .= $this->_parse_link( $json );
			Admin_Display::info( $msg );
			return;
		}

		Debug2::debug( '❄️ ✅ send request for key successfully.' );

		Admin_Display::succeed( __( 'Applied for Domain Key successfully. Please wait for result. Domain Key will be automatically sent to your WordPress.', 'litespeed-cache' ) );
	}

	/**
	 * Token callback validation from Cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function token_validate() {
		try {
			$this->_validate_hash();
		} catch( \Exception $e ) {
			return self::err( $e->getMessage() );
		}

		Control::set_nocache( 'Cloud token validation' );

		Debug2::debug( '❄️ ✅ __callback token validation passed' );

		return self::ok( array( 'hash' => md5( substr( $this->_summary[ 'token' ], 3, 8 ) ) ) );
	}

	/**
	 * Callback for approval of api key after validated token and gen key from QUIC.cloud
	 *
	 * @since  3.0
	 * @access public
	 */
	public function save_apikey() {
		// Validate token hash first
		if ( empty( $_POST[ 'domain_key' ] ) || ! isset( $_POST[ 'is_linked' ] ) ) {
			return self::err( 'lack_of_param' );
		}

		try {
			$this->_validate_hash( 1 );
		} catch( \Exception $e ) {
			return self::err( $e->getMessage() );
		}

		// This doesn't need to sync QUIC conf but need to clear nodes
		Conf::get_instance()->update_confs( array( Base::O_API_KEY => $_POST[ 'domain_key' ] ) );

		$this->_summary[ 'is_linked' ] = $_POST[ 'is_linked' ] ? 1 : 0;
		$this->_summary[ 'apikey_ts' ] = time();
		// Clear token
		unset( $this->_summary[ 'token' ] );
		self::save_summary();

		Debug2::debug( '❄️ ✅ saved auth_key' );
		Admin_Display::succeed( '🎊 ' . __( 'Congratulations, your Domain Key has been approved! The setting has been updated accordingly.', 'litespeed-cache' ) );

		return self::ok();
	}

	/**
	 * Validate POST hash match local token or not
	 *
	 * @since  3.0
	 */
	private function _validate_hash( $offset = 0 ) {
		if ( empty( $_POST[ 'hash' ] ) ) {
			Debug2::debug( '❄️  Lack of hash param' );
			throw new \Exception( 'lack_of_param' );
		}

		if ( empty( $this->_summary[ 'token' ] ) ) {
			Debug2::debug( '❄️  token validate failed: token not exist' );
			throw new \Exception( 'lack_of_local_token' );
		}

		if ( $_POST[ 'hash' ] !== md5( substr( $this->_summary[ 'token' ], $offset, 8 ) ) ) {
			Debug2::debug( '❄️  token validate failed: token mismatch hash !== ' . $_POST[ 'hash' ] );
			throw new \Exception( 'mismatch' );
		}
	}

	/**
	 * If can link the domain to QC user or not
	 *
	 * @since  3.0
	 */
	public function can_link_qc() {
		return empty( $this->_summary[ 'is_linked' ] ) && $this->_api_key;
	}

	/**
	 * Link the domain to QC user
	 *
	 * @since  3.0
	 */
	private function _link_to_qc() {
		if ( ! $this->can_link_qc() ) {
			return;
		}

		$data = array(
			'site_url'		=> home_url(),
			'domain_hash'	=> md5( substr( $this->_api_key, 0, 8 ) ),
			'ref'			=> get_admin_url( null, 'admin.php?page=litespeed-general' ),
		);

		wp_redirect( self::CLOUD_SERVER_DASH . '/u/wp?data=' . Utility::arr2str( $data ) );
		exit;
	}

	/**
	 * Update is_linked status if is a redirected back from QC
	 *
	 * @since  3.0
	 */
	public function update_is_linked_status() {
		if ( empty( $_GET[ 'qc_res' ] ) || empty( $_GET[ 'domain_hash' ] ) ) {
			return;
		}

		if ( ! $this->_api_key ) {
			return;
		}

		if ( md5( substr( $this->_api_key, 2, 8 ) ) !== $_GET[ 'domain_hash' ] ) {
			Admin_Display::error( __( 'Domain Key hash mismatch', 'litespeed-cache' ), true );
			return;
		}

		$this->_summary[ 'is_linked' ] = 1;
		self::save_summary();

		// Drop QS
		echo "<script>window.history.pushState( 'remove_gen_link', document.title, window.location.href.replace( '&qc_res=" . $_GET[ 'qc_res' ] . "&domain_hash=" . $_GET[ 'domain_hash' ] . "', '' ) );</script>";
	}

	/**
	 * Check if this visit is from cloud or not
	 *
	 * @since  3.0
	 */
	public static function is_from_cloud() {
		$response = wp_remote_get( 'https://www.quic.cloud/ips?json' );
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			Debug2::debug( '[CLoud] failed to get ip whitelist: ' . $error_message );
			throw new \Exception( 'Failed to fetch QUIC.cloud whitelist ' . $error_message );
		}

		$json = json_decode( $response[ 'body' ], true );

		return Router::get_instance()->ip_access( $json );
	}

	/**
	 * Return succeeded response
	 *
	 * @since  3.0
	 */
	public static function ok( $data = array() ) {
		$data[ '_res' ] = 'ok';
		return $data;
	}

	/**
	 * Return error
	 *
	 * @since  3.0
	 */
	public static function err( $code ) {
		return array( '_res' => 'err', '_msg' => $code );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_CLEAR_CLOUD:
				$instance->clear_cloud();
				break;

			case self::TYPE_REDETECT_CLOUD:
				if ( ! empty( $_GET[ 'svc' ] ) ) {
					$instance->detect_cloud( $_GET[ 'svc' ], true );
				}
				break;

			case self::TYPE_CLEAR_PROMO:
				$instance->_clear_promo();
				break;

			case self::TYPE_GEN_KEY:
				$instance->gen_key();
				break;

			case self::TYPE_LINK:
				$instance->_link_to_qc();
				break;

			case self::TYPE_SYNC_USAGE:
				$instance->sync_usage();

				$msg = __( 'Sync credit allowance with Cloud Server successfully.', 'litespeed-cache' ) ;
				Admin_Display::succeed( $msg ) ;
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php
/**
 * The tools
 *
 * @since      	3.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Tool extends Instance {
	protected static $_instance;

	private $_conf_heartbeat_front;
	private $_conf_heartbeat_front_ttl;
	private $_conf_heartbeat_back;
	private $_conf_heartbeat_back_ttl;
	private $_conf_heartbeat_editor;
	private $_conf_heartbeat_editor_ttl;

	/**
	 * Init
	 *
	 * @since  3.0
	 * @access protected
	 */
	protected function __construct() {
		$this->_conf_heartbeat_front 		= Conf::val( Base::O_MISC_HEARTBEAT_FRONT );
		$this->_conf_heartbeat_front_ttl 	= Conf::val( Base::O_MISC_HEARTBEAT_FRONT_TTL );
		$this->_conf_heartbeat_back 		= Conf::val( Base::O_MISC_HEARTBEAT_BACK );
		$this->_conf_heartbeat_back_ttl 	= Conf::val( Base::O_MISC_HEARTBEAT_BACK_TTL );
		$this->_conf_heartbeat_editor 		= Conf::val( Base::O_MISC_HEARTBEAT_EDITOR );
		$this->_conf_heartbeat_editor_ttl 	= Conf::val( Base::O_MISC_HEARTBEAT_EDITOR_TTL );
	}

	/**
	 * Get public IP
	 *
	 * @since  3.0
	 * @access public
	 */
	public function check_ip() {
		Debug2::debug( '[Tool] ✅ check_ip' );

		$response = wp_remote_get( 'https://www.doapi.us/ip' );

		if ( is_wp_error( $response ) ) {
			return new \WP_Error( 'remote_get_fail', 'Failed to fetch from https://www.doapi.us/ip', array( 'status' => 404 ) );
		}

		$data = $response[ 'body' ];

		Debug2::debug( '[Tool] result [ip] ' . $data );

		return $data;
	}

	/**
	 * Heartbeat Control
	 *
	 * NOTE: since WP4.9, there could be a core bug that sometimes the hook is not working.
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function heartbeat() {
		$instance = self::get_instance();

		add_action( 'wp_enqueue_scripts', array( $instance, 'heartbeat_frontend' ) );
		add_action( 'admin_enqueue_scripts', array( $instance, 'heartbeat_backend' ) );
		add_filter( 'heartbeat_settings', array( $instance, 'heartbeat_settings' ) );
	}

	/**
	 * Heartbeat Control frontend control
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_frontend() {
		if ( ! $this->_conf_heartbeat_front ) {
			return;
		}

		if ( ! $this->_conf_heartbeat_front_ttl ) {
			wp_deregister_script( 'heartbeat' );
			Debug2::debug( '[Tool] Deregistered frontend heartbeat' );
		}
	}

	/**
	 * Heartbeat Control backend control
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_backend() {
		if ( $this->_is_editor() ) {
			if ( ! $this->_conf_heartbeat_editor ) {
				return;
			}

			if ( ! $this->_conf_heartbeat_editor_ttl ) {
				wp_deregister_script( 'heartbeat' );
				Debug2::debug( '[Tool] Deregistered editor heartbeat' );
			}
		}
		else {
			if ( ! $this->_conf_heartbeat_back ) {
				return;
			}

			if ( ! $this->_conf_heartbeat_back_ttl ) {
				wp_deregister_script( 'heartbeat' );
				Debug2::debug( '[Tool] Deregistered backend heartbeat' );
			}
		}

	}

	/**
	 * Heartbeat Control settings
	 *
	 * @since  3.0
	 * @access public
	 */
	public function heartbeat_settings( $settings ) {
		// Check editor first to make frontend editor valid too
		if ( $this->_is_editor() ) {
			if ( $this->_conf_heartbeat_editor ) {
				$settings[ 'interval' ] = $this->_conf_heartbeat_editor_ttl;
				Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->_conf_heartbeat_editor_ttl );
			}
		}
		elseif ( ! is_admin() ) {
			if ( $this->_conf_heartbeat_front ) {
				$settings[ 'interval' ] = $this->_conf_heartbeat_front_ttl;
				Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->_conf_heartbeat_front_ttl );
			}
		}
		else {
			if ( $this->_conf_heartbeat_back ) {
				$settings[ 'interval' ] = $this->_conf_heartbeat_back_ttl;
				Debug2::debug( '[Tool] Heartbeat interval set to ' . $this->_conf_heartbeat_back_ttl );
			}
		}
		return $settings;
	}

	/**
	 * If is in editor
	 *
	 * @since  3.0
	 * @access public
	 */
	private function _is_editor() {
		$res = is_admin() && Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], array( 'post.php', 'post-new.php' ) );

		return apply_filters( 'litespeed_is_editor', $res );
	}

}  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `optm_status` tinyint(4) NOT NULL DEFAULT '0',
  `src` varchar(1000) NOT NULL DEFAULT '',
  `server_info` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `post_id` (`post_id`),
  KEY `optm_status` (`optm_status`),
  KEY `src` (`src`(191))
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`hash_name` varchar(60) NOT NULL COMMENT 'hash.filetype',
`src` text NOT NULL COMMENT 'full url array set',
`dateline` int(11) NOT NULL,
`refer` varchar(255) NOT NULL COMMENT 'The container page url',
PRIMARY KEY (`id`),
UNIQUE KEY `hash_name` (`hash_name`),
KEY `dateline` (`dateline`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `res` varchar(255) NOT NULL DEFAULT '' COMMENT '-=not crawl, H=hit, M=miss, B=blacklist',
  `reason` text NOT NULL COMMENT 'response code, comma separated',
  `mtime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `url` (`url`(191)),
  KEY `res` (`res`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `post_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `optm_status` tinyint(4) NOT NULL DEFAULT '0',
  `src` text NOT NULL,
  `src_filesize` int(11) NOT NULL DEFAULT '0',
  `target_filesize` int(11) NOT NULL DEFAULT '0',
  `webp_filesize` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  KEY `post_id` (`post_id`),
  KEY `optm_status` (`optm_status`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `md5` varchar(128) NOT NULL DEFAULT '',
  `dateline` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`),
  UNIQUE KEY `md5` (`md5`),
  KEY `dateline` (`dateline`)
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(1000) NOT NULL DEFAULT '',
  `res` varchar(255) NOT NULL DEFAULT '' COMMENT '-=Not Blacklist, B=blacklist',
  `reason` text NOT NULL COMMENT 'Reason for blacklist, comma separated',
  `mtime` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  PRIMARY KEY (`id`),
  KEY `url` (`url`(191)),
  KEY `res` (`res`)
<?php
/**
 * The admin optimize tool
 *
 *
 * @since      1.2.1
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class DB_Optm extends Instance {
	private static $_hide_more = false;

	private static $TYPES = array( 'revision', 'auto_draft', 'trash_post', 'spam_comment', 'trash_comment', 'trackback-pingback', 'expired_transient', 'all_transients', 'optimize_tables', 'all_cssjs' );
	const TYPE_CONV_TB = 'conv_innodb';

	protected static $_instance;

	/**
	 * Show if there are more sites in hidden
	 *
	 * @since  3.0
	 */
	public static function hide_more() {
		return self::$_hide_more;
	}

	/**
	 * Clean/Optimize WP tables
	 *
	 * @since  1.2.1
	 * @access public
	 * @param  string $type The type to clean
	 * @param  bool $ignore_multisite If ignore multisite check
	 * @return  int The rows that will be affected
	 */
	public static function db_count( $type, $ignore_multisite = false ) {
		if ( $type === 'all' ) {
			$num = 0;
			foreach ( self::$TYPES as $v ) {
				$num += self::db_count( $v );
			}
			return $num;
		}

		if ( ! $ignore_multisite ) {
			if ( is_multisite() && is_network_admin() ) {
				$num = 0;
				$blogs = Activation::get_network_ids();
				foreach ( $blogs as $k => $blog_id ) {
					if ( $k > 10 ) {
						self::$_hide_more = true;
						break;
					}

					switch_to_blog( $blog_id );
					$num += self::db_count( $type, true );
					restore_current_blog();
				}
				return $num;
			}
		}

		global $wpdb;

		switch ( $type ) {
			case 'revision':
				$rev_max = (int) Conf::val( Base::O_DB_OPTM_REVISIONS_MAX );
				$rev_age = (int) Conf::val( Base::O_DB_OPTM_REVISIONS_AGE );
				$sql_add = '';
				if ( $rev_age ) {
					$sql_add = " and post_modified < DATE_SUB( NOW(), INTERVAL $rev_age DAY ) ";
				}
				$sql = "SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add";
				if ( ! $rev_max ) {
					return $wpdb->get_var( $sql );
				}
				// Has count limit
				$sql = "SELECT COUNT(*)-$rev_max FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add GROUP BY post_parent HAVING count(*)>$rev_max";
				$res = $wpdb->get_results( $sql, ARRAY_N );

				Utility::compatibility();
				return array_sum( array_column( $res, 0 ) );

			case 'auto_draft':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_status = 'auto-draft'" );

			case 'trash_post':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->posts` WHERE post_status = 'trash'" );

			case 'spam_comment':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_approved = 'spam'" );

			case 'trash_comment':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_approved = 'trash'" );

			case 'trackback-pingback':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->comments` WHERE comment_type = 'trackback' OR comment_type = 'pingback'" );

			case 'expired_transient':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->options` WHERE option_name LIKE '_transient_timeout%' AND option_value < " . time() );

			case 'all_transients':
				return $wpdb->get_var( "SELECT COUNT(*) FROM `$wpdb->options` WHERE option_name LIKE '%_transient_%'" );

			case 'optimize_tables':
				return $wpdb->get_var( "SELECT COUNT(*) FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE <> 'InnoDB' and DATA_FREE > 0" );

			case 'all_cssjs':
				return Data::get_instance()->tb_exist( 'cssjs' ) ? $wpdb->get_var( "SELECT COUNT(*) FROM `" . Data::get_instance()->tb( 'cssjs' ) . "`" ) : 0;
		}

		return '-';
	}

	/**
	 * Clean/Optimize WP tables
	 *
	 * @since  1.2.1
	 * @since 3.0 changed to private
	 * @access private
	 */
	private function _db_clean( $type ) {
		if ( $type === 'all' ) {
			foreach ( self::$TYPES as $v ) {
				$this->_db_clean( $v );
			}
			return __( 'Clean all successfully.', 'litespeed-cache' );
		}

		global $wpdb;
		switch ( $type ) {
			case 'revision':
				$rev_max = (int) Conf::val( Base::O_DB_OPTM_REVISIONS_MAX );
				$rev_age = (int) Conf::val( Base::O_DB_OPTM_REVISIONS_AGE );

				$sql_add = '';
				if ( $rev_age ) {
					$sql_add = " and post_modified < DATE_SUB( NOW(), INTERVAL $rev_age DAY ) ";
				}

				if ( ! $rev_max ) {
					$sql = "DELETE FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add";
					$wpdb->query( $sql );
				}
				else { // Has count limit
					$sql = "SELECT COUNT(*)-$rev_max as del_max,post_parent FROM `$wpdb->posts` WHERE post_type = 'revision' $sql_add GROUP BY post_parent HAVING count(*)>$rev_max";
					$res = $wpdb->get_results( $sql );
					foreach ( $res as $v ) {
						$sql = "DELETE FROM `$wpdb->posts` WHERE post_type = 'revision' AND post_parent = %d ORDER BY ID LIMIT %d";
						$wpdb->query( $wpdb->prepare( $sql, array( $v->post_parent, $v->del_max ) ) );
					}
				}

				return __( 'Clean post revisions successfully.', 'litespeed-cache' );

			case 'auto_draft':
				$wpdb->query( "DELETE FROM `$wpdb->posts` WHERE post_status = 'auto-draft'" );
				return __( 'Clean auto drafts successfully.', 'litespeed-cache' );

			case 'trash_post':
				$wpdb->query( "DELETE FROM `$wpdb->posts` WHERE post_status = 'trash'" );
				return __( 'Clean trashed posts and pages successfully.', 'litespeed-cache' );

			case 'spam_comment':
				$wpdb->query( "DELETE FROM `$wpdb->comments` WHERE comment_approved = 'spam'" );
				return __( 'Clean spam comments successfully.', 'litespeed-cache' );

			case 'trash_comment':
				$wpdb->query( "DELETE FROM `$wpdb->comments` WHERE comment_approved = 'trash'" );
				return __( 'Clean trashed comments successfully.', 'litespeed-cache' );

			case 'trackback-pingback':
				$wpdb->query( "DELETE FROM `$wpdb->comments` WHERE comment_type = 'trackback' OR comment_type = 'pingback'" );
				return __( 'Clean trackbacks and pingbacks successfully.', 'litespeed-cache' );

			case 'expired_transient':
				$wpdb->query( "DELETE FROM `$wpdb->options` WHERE option_name LIKE '_transient_timeout%' AND option_value < " . time() );
				return __( 'Clean expired transients successfully.', 'litespeed-cache' );

			case 'all_transients':
				$wpdb->query( "DELETE FROM `$wpdb->options` WHERE option_name LIKE '%\\_transient\\_%'" );
				return __( 'Clean all transients successfully.', 'litespeed-cache' );

			case 'optimize_tables':
				$sql = "SELECT table_name, DATA_FREE FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE <> 'InnoDB' and DATA_FREE > 0";
				$result = $wpdb->get_results( $sql );
				if ( $result ) {
					foreach ( $result as $row ) {
						$wpdb->query( 'OPTIMIZE TABLE ' . $row->table_name );
					}
				}
				return __( 'Optimized all tables.', 'litespeed-cache' );

			case 'all_cssjs' :
				if ( Data::get_instance()->tb_exist( 'cssjs' ) ) {
					Purge::purge_all();
					$wpdb->query( "TRUNCATE `" . Data::get_instance()->tb( 'cssjs' ) . "`" );
				}
				return __( 'Clean all CSS/JS optimizer data successfully.', 'litespeed-cache' );

		}

	}

	/**
	 * Get all myisam tables
	 *
	 * @since 3.0
	 * @access public
	 */
	public function list_myisam() {
		global $wpdb;
		$q = "SELECT * FROM information_schema.tables WHERE TABLE_SCHEMA = '" . DB_NAME . "' and ENGINE = 'myisam' AND TABLE_NAME LIKE '{$wpdb->prefix}%'";
		return $wpdb->get_results( $q );
	}

	/**
	 * Convert tables to InnoDB
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _conv_innodb() {
		global $wpdb;

		if ( empty( $_GET[ 'tb' ] ) ) {
			Admin_Display::error( 'No table to convert' );
			return;
		}

		$tb = false;

		$list = $this->list_myisam();
		foreach ( $list as $v ) {
			if ( $v->TABLE_NAME == $_GET[ 'tb' ] ) {
				$tb = $v->TABLE_NAME;
				break;
			}
		}

		if ( ! $tb ) {
			Admin_Display::error( 'No existing table' );
			return;
		}

		$q = 'ALTER TABLE ' . DB_NAME . '.' . $tb . ' ENGINE = InnoDB';
		$wpdb->query( $q );

		Debug2::debug( "[DB] Converted $tb to InnoDB" );

		$msg = __( 'Converted to InnoDB successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );

	}

	/**
	 * Count all autoload size
	 *
	 * @since  3.0
	 * @access public
	 */
	public function autoload_summary() {
		global $wpdb;

		$summary = $wpdb->get_row( "SELECT SUM(LENGTH(option_value)) AS autoload_size,COUNT(*) AS autload_entries FROM `$wpdb->options` WHERE autoload='yes'" );

		$summary->autoload_toplist = $wpdb->get_results( "SELECT option_name, LENGTH(option_value) AS option_value_length FROM `$wpdb->options` WHERE autoload='yes' ORDER BY option_value_length DESC LIMIT 20" );

		return $summary;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case 'all':
			case in_array( $type, self::$TYPES ):
				if ( is_multisite() && is_network_admin() ) {
					$blogs = Activation::get_network_ids();
					foreach ( $blogs as $blog_id ) {
						switch_to_blog( $blog_id );
						$msg = $instance->_db_clean( $type );
						restore_current_blog();
					}
				}
				else {
					$msg = $instance->_db_clean( $type );
				}
				Admin_Display::succeed( $msg );
				break;

			case self::TYPE_CONV_TB :
				$instance->_conv_innodb();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}

<?php
/**
 * The import/export class.
 *
 * @since      	1.8.2
 * @package    	LiteSpeed_Cache
 * @subpackage 	LiteSpeed_Cache/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed ;

defined( 'WPINC' ) || exit ;

class Import extends Base
{
	protected static $_instance ;

	private $__cfg ;
	protected $_summary;

	const TYPE_IMPORT = 'import' ;
	const TYPE_EXPORT = 'export' ;
	const TYPE_RESET = 'reset' ;

	/**
	 * Init
	 *
	 * @since  1.8.2
	 * @access protected
	 */
	protected function __construct()
	{
		Debug2::debug( 'Import init' ) ;

		$this->__cfg = Conf::get_instance() ;
		$this->_summary = self::get_summary();
	}

	/**
	 * Export settings to file
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function export( $only_data_return = false )
	{

		$data = $this->__cfg->get_options( true );

		$data = base64_encode( json_encode( $data ) ) ;

		if ( $only_data_return ) {
			return $data ;
		}

		$filename = $this->_generate_filename() ;

		// Update log
		$this->_summary[ 'export_file' ] = $filename ;
		$this->_summary[ 'export_time' ] = time() ;
		self::save_summary();

		Debug2::debug( 'Import: Saved to ' . $filename ) ;

		@header( 'Content-Disposition: attachment; filename=' . $filename ) ;
		echo $data ;

		exit ;
	}

	/**
	 * Import settings from file
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function import( $file = false )
	{
		if ( ! $file ) {
			if ( empty( $_FILES[ 'ls_file' ][ 'name' ] ) || substr( $_FILES[ 'ls_file' ][ 'name' ], -5 ) != '.data' || empty( $_FILES[ 'ls_file' ][ 'tmp_name' ] ) ) {
				Debug2::debug( 'Import: Failed to import, wront ls_file' ) ;

				$msg = __( 'Import failed due to file error.', 'litespeed-cache' ) ;
				Admin_Display::error( $msg ) ;

				return false ;
			}

			$this->_summary[ 'import_file' ] = $_FILES[ 'ls_file' ][ 'name' ] ;

			$data = file_get_contents( $_FILES[ 'ls_file' ][ 'tmp_name' ] ) ;
		}
		else {
			$this->_summary[ 'import_file' ] = $file ;

			$data = file_get_contents( $file ) ;
		}

		// Update log
		$this->_summary[ 'import_time' ] = time() ;
		self::save_summary();

		try {
			$data = json_decode( base64_decode( $data ), true ) ;
		} catch ( \Exception $ex ) {
			Debug2::debug( 'Import: Failed to parse serialized data' ) ;
			return false ;
		}

		if ( ! $data ) {
			Debug2::debug( 'Import: Failed to import, no data' ) ;
			return false ;
		}

		$this->__cfg->update_confs( $data ) ;


		if ( ! $file ) {
			Debug2::debug( 'Import: Imported ' . $_FILES[ 'ls_file' ][ 'name' ] ) ;

			$msg = sprintf( __( 'Imported setting file %s successfully.', 'litespeed-cache' ), $_FILES[ 'ls_file' ][ 'name' ] ) ;
			Admin_Display::succeed( $msg ) ;
		}
		else {
			Debug2::debug( 'Import: Imported ' . $file ) ;
		}

		return true ;

	}

	/**
	 * Reset all configs to default values.
	 *
	 * @since  2.6.3
	 * @access public
	 */
	public function reset()
	{
		$options = $this->__cfg->load_default_vals() ;

		$this->__cfg->update_confs( $options ) ;

		Debug2::debug( '[Import] Reset successfully.' ) ;

		$msg = __( 'Reset successfully.', 'litespeed-cache' ) ;
		Admin_Display::succeed( $msg ) ;

	}

	/**
	 * Generate the filename to export
	 *
	 * @since  1.8.2
	 * @access private
	 */
	private function _generate_filename()
	{
		// Generate filename
		$parsed_home = parse_url( get_home_url() ) ;
		$filename = 'LSCWP_cfg-' ;
		if ( ! empty( $parsed_home[ 'host' ] ) ) {
			$filename .= $parsed_home[ 'host' ] . '_' ;
		}

		if ( ! empty( $parsed_home[ 'path' ] ) ) {
			$filename .= $parsed_home[ 'path' ] . '_' ;
		}

		$filename = str_replace( '/', '_', $filename ) ;

		$filename .= '-' . date( 'Ymd_His' ) . '.data' ;

		return $filename ;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public static function handler()
	{
		$instance = self::get_instance() ;

		$type = Router::verify_type() ;

		switch ( $type ) {
			case self::TYPE_IMPORT :
				$instance->import() ;
				break ;

			case self::TYPE_EXPORT :
				$instance->export() ;
				break ;

			case self::TYPE_RESET :
				$instance->reset() ;
				break ;

			default:
				break ;
		}

		Admin::redirect() ;
	}

}
<?php
/**
 * The plugin activation class.
 *
 * @since      	1.1.0
 * @since  		1.5 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Activation extends Instance {
	protected static $_instance;

	const TYPE_UPGRADE = 'upgrade';
	const TYPE_INSTALL_3RD = 'install_3rd';
	const TYPE_INSTALL_ZIP = 'install_zip';
	const TYPE_DISMISS_RECOMMENDED = 'dismiss_recommended';

	const NETWORK_TRANSIENT_COUNT = 'lscwp_network_count';

	/**
	 * The activation hook callback.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function register_activation() {
		$count = 0;
		! defined( 'LSCWP_LOG_TAG' ) && define( 'LSCWP_LOG_TAG', 'Activate_' . get_current_blog_id() );

		if ( is_multisite() ) {
			$count = self::get_network_count();
			if ( $count !== false ) {
				$count = intval( $count ) + 1;
				set_site_transient( self::NETWORK_TRANSIENT_COUNT, $count, DAY_IN_SECONDS );
			}
		}

		// Files will be delayed updated in next visit to wp-admin
		Conf::update_option( '__activation', Core::VER );

		/* Network file handler */
		if ( is_multisite() ) {
			if ( ! is_network_admin() ) {
				if ( $count === 1 ) {
					// Only itself is activated, set .htaccess with only CacheLookUp
					try {
						Htaccess::get_instance()->insert_ls_wrapper();
					} catch ( \Exception $ex ) {
						Admin_Display::error( $ex->getMessage() );
					}
				}
			}
		}

		if ( defined( 'LSCWP_REF' ) && LSCWP_REF == 'whm' ) {
			GUI::update_option( GUI::WHM_MSG, GUI::WHM_MSG_VAL );
		}
	}

	/**
	 * Uninstall plugin
	 * @since 1.1.0
	 */
	public static function uninstall_litespeed_cache() {
		Task::destroy();

		// Delete options
		foreach ( Conf::get_instance()->load_default_vals() as $k => $v ) {
			Base::delete_option( $k );
		}

		// Delete site options
		if ( is_multisite() ) {
			foreach ( Conf::get_instance()->load_default_site_vals() as $k => $v ) {
				Base::delete_site_option( $k );
			}
		}

		// Delete avatar table
		Data::get_instance()->tables_del();

		if ( file_exists( LITESPEED_STATIC_DIR ) ) {
			File::rrmdir( LITESPEED_STATIC_DIR );
		}

		Cloud::version_check( 'uninstall' );

		// Files has been deleted when deactivated
	}

	/**
	 * Get the blog ids for the network. Accepts function arguments.
	 *
	 * Will use wp_get_sites for WP versions less than 4.6
	 *
	 * @since 1.0.12
	 * @access public
	 * @return array The array of blog ids.
	 */
	public static function get_network_ids( $args = array() ) {
		global $wp_version;
		if ( version_compare( $wp_version, '4.6', '<' ) ) {
			$blogs = wp_get_sites( $args );
			if ( ! empty( $blogs ) ) {
				foreach ( $blogs as $key => $blog ) {
					$blogs[ $key ] = $blog[ 'blog_id' ];
				}
			}
		}
		else {
			$args[ 'fields' ] = 'ids';
			$blogs = get_sites( $args );
		}
		return $blogs;
	}

	/**
	 * Gets the count of active litespeed cache plugins on multisite.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private static function get_network_count() {
		$count = get_site_transient( self::NETWORK_TRANSIENT_COUNT );
		if ( $count !== false ) {
			return intval( $count );
		}
		// need to update
		$default = array();
		$count = 0;

		$sites = self::get_network_ids( array( 'deleted' => 0 ) );
		if ( empty( $sites ) ) {
			return false;
		}

		foreach ( $sites as $site ) {
			$bid = is_object( $site ) && property_exists( $site, 'blog_id' ) ? $site->blog_id : $site;
			$plugins = get_blog_option( $bid , 'active_plugins', $default );
			if ( in_array( LSCWP_BASENAME, $plugins, true ) ) {
				$count++;
			}
		}

		/**
		 * In case this is called outside the admin page
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
			require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
		}

		if ( is_plugin_active_for_network( LSCWP_BASENAME ) ) {
			$count++;
		}
		return $count;
	}

	/**
	 * Is this deactivate call the last active installation on the multisite network?
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private static function is_deactivate_last() {
		$count = self::get_network_count();
		if ( $count === false ) {
			return false;
		}
		if ( $count !== 1 ) {
			// Not deactivating the last one.
			$count--;
			set_site_transient( self::NETWORK_TRANSIENT_COUNT, $count, DAY_IN_SECONDS );
			return false;
		}

		delete_site_transient( self::NETWORK_TRANSIENT_COUNT );
		return true;
	}

	/**
	 * The deactivation hook callback.
	 *
	 * Initializes all clean up functionalities.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function register_deactivation() {
		Task::destroy();

		! defined( 'LSCWP_LOG_TAG' ) && define( 'LSCWP_LOG_TAG', 'Deactivate_' . get_current_blog_id() );

		Purge::purge_all();

		if ( is_multisite() ) {

			if ( ! self::is_deactivate_last() ) {
				if ( is_network_admin() ) {
					// Still other activated subsite left, set .htaccess with only CacheLookUp
					try {
						Htaccess::get_instance()->insert_ls_wrapper();
					} catch ( \Exception $ex ) {
						Admin_Display::error( $ex->getMessage() );
					}
				}
				return;
			}
		}

		/* 1) wp-config.php; */

		try {
			self::get_instance()->_manage_wp_cache_const( false );
		} catch ( \Exception $ex ) {
			error_log('In wp-config.php: WP_CACHE could not be set to false during deactivation!') ;

			Admin_Display::error( $ex->getMessage() );
		}

		/* 2) adv-cache.php; Dropped in v3.0.4 */

		/* 3) object-cache.php; */

		Object_Cache::get_instance()->del_file();

		/* 4) .htaccess; */

		try {
			Htaccess::get_instance()->clear_rules();
		} catch ( \Exception $ex ) {
			Admin_Display::error( $ex->getMessage() );
		}

		// delete in case it's not deleted prior to deactivation.
		GUI::dismiss_whm();
	}

	/**
	 * Manage related files based on plugin latest conf
	 *
	 * NOTE: Only trigger this in backend admin access for efficiency concern
	 *
	 * Handle files:
	 * 		1) wp-config.php;
	 * 		2) adv-cache.php;
	 * 		3) object-cache.php;
	 * 		4) .htaccess;
	 *
	 * @since 3.0
	 * @access public
	 */
	public function update_files() {
		// Update cache setting `_CACHE`
		Conf::get_instance()->define_cache();

		// Site options applied already
		$options = Conf::get_instance()->get_options();

		/* 1) wp-config.php; */

		try {
			$this->_manage_wp_cache_const( $options[ Base::_CACHE ] );
		} catch ( \Exception $ex ) {
			// Add msg to admin page or CLI
			Admin_Display::error( $ex->getMessage() );
		}

		/* 2) adv-cache.php; Dropped in v3.0.4 */

		/* 3) object-cache.php; */

		if ( $options[ Base::O_OBJECT ] && ( ! $options[ Base::O_DEBUG_DISABLE_ALL ] || is_multisite() ) ) {
			Object_Cache::get_instance()->update_file( $options );
		}
		else {
			Object_Cache::get_instance()->del_file();
		}

		/* 4) .htaccess; */

		try {
			Htaccess::get_instance()->update( $options );
		} catch ( \Exception $ex ) {
			Admin_Display::error( $ex->getMessage() );
		}
	}

	/**
	 * Update the WP_CACHE variable in the wp-config.php file.
	 *
	 * If enabling, check if the variable is defined, and if not, define it.
	 * Vice versa for disabling.
	 *
	 * @since 1.0.0
	 * @since  3.0 Refactored
	 * @access private
	 */
	private function _manage_wp_cache_const( $enable ) {
		if ( $enable ) {
			if ( defined( 'WP_CACHE' ) && WP_CACHE ) {
				return false;
			}
		}
		elseif ( ! defined( 'WP_CACHE' ) || ( defined( 'WP_CACHE' ) && ! WP_CACHE ) ) {
				return false;
		}

		/**
		 * Follow WP's logic to locate wp-config file
		 * @see wp-load.php
		 */
		$conf_file = ABSPATH . 'wp-config.php';
		if ( ! file_exists( $conf_file ) ) {
			$conf_file = dirname( ABSPATH ) . '/wp-config.php';
		}

		$content = File::read( $conf_file );
		if ( ! $content ) {
			throw new \Exception( 'wp-config file content is empty: ' . $conf_file );

		}

		// Remove the line `define('WP_CACHE', true/false);` first
		if ( defined( 'WP_CACHE' ) ) {
			$content = preg_replace( '|define\(\s*(["\'])WP_CACHE\1\s*,\s*\w+\)\s*;|sU', '', $content );
		}

		// Insert const
		if ( $enable ) {
			$content = preg_replace( '|^<\?php|', "<?php\ndefine( 'WP_CACHE', true );", $content );
		}

		$res = File::save( $conf_file, $content, false, false, false );

		if ( $res !== true ) {
			throw new \Exception( 'wp-config.php operation failed when changing `WP_CACHE` const: ' . $res );
		}

		return true;
	}

	/**
	 * Handle auto update
	 *
	 * @since 2.7.2
	 * @since 2.9.8 Moved here from ls.cls
	 * @access public
	 */
	public static function auto_update() {
		if ( ! Conf::val( Base::O_AUTO_UPGRADE ) ) {
			return;
		}

		add_filter( 'auto_update_plugin', array( self::get_instance(), 'auto_update_hook' ), 10, 2 );
	}

	/**
	 * Auto upgrade hook
	 *
	 * @since  3.0
	 * @access public
	 */
	public function auto_update_hook( $update, $item ) {
		if ( $item->slug == 'litespeed-cache' ) {
			$auto_v = Cloud::version_check( 'auto_update_plugin' );

			if ( ! empty( $auto_v[ 'latest' ] ) && ! empty( $item->new_version ) && $auto_v[ 'latest' ] === $item->new_version ) {
				return true;
			}
		}

		return $update; // Else, use the normal API response to decide whether to update or not
	}

	/**
	 * Upgrade LSCWP
	 *
	 * @since 2.9
	 * @access public
	 */
	public function upgrade() {
		$plugin = Core::PLUGIN_FILE;

		/**
		 * @see wp-admin/update.php
		 */
		include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
		include_once ABSPATH . 'wp-admin/includes/file.php';
		include_once ABSPATH . 'wp-admin/includes/misc.php';

		try {
			ob_start();
			$skin = new \WP_Ajax_Upgrader_Skin();
			$upgrader = new \Plugin_Upgrader( $skin );
			$result = $upgrader->upgrade( $plugin );
			if ( ! is_plugin_active( $plugin ) ) {// todo: upgrade should reactivate the plugin again by WP. Need to check why disabled after upgraded.
				activate_plugin( $plugin, '', is_multisite() );
			}
			ob_end_clean();
		} catch ( \Exception $e ) {
			Admin_Display::error( __( 'Failed to upgrade.', 'litespeed-cache' ) );
			return;
		}

		if ( is_wp_error( $result ) ) {
			Admin_Display::error( __( 'Failed to upgrade.', 'litespeed-cache' ) );
			return;
		}

		Admin_Display::succeed( __( 'Upgraded successfully.', 'litespeed-cache' ) );
	}

	/**
	 * Detect if the plugin is active or not
	 *
	 * @since  1.0
	 */
	public function dash_notifier_is_plugin_active( $plugin ) {
		include_once( ABSPATH . 'wp-admin/includes/plugin.php' );

		$plugin_path = $plugin . '/' . $plugin . '.php';

		return is_plugin_active( $plugin_path );
	}

	/**
	 * Detect if the plugin is installed or not
	 *
	 * @since  1.0
	 */
	public function dash_notifier_is_plugin_installed( $plugin ) {
		include_once( ABSPATH . 'wp-admin/includes/plugin.php' );

		$plugin_path = $plugin . '/' . $plugin . '.php';

		$valid = validate_plugin( $plugin_path );

		return ! is_wp_error( $valid );
	}

	/**
	 * Grab a plugin info from WordPress
	 *
	 * @since  1.0
	 */
	public function dash_notifier_get_plugin_info( $slug ) {
		include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
		$result = plugins_api( 'plugin_information', array( 'slug' => $slug ) );

		if ( is_wp_error( $result ) ) {
			return false;
		}

		return $result;
	}

	/**
	 * Install the 3rd party plugin
	 *
	 * @since  1.0
	 */
	public function dash_notifier_install_3rd() {
		! defined( 'SILENCE_INSTALL' ) && define( 'SILENCE_INSTALL', true );

		$slug = ! empty( $_GET[ 'plugin' ] ) ? $_GET[ 'plugin' ] : false;

		// Check if plugin is installed already
		if ( ! $slug || $this->dash_notifier_is_plugin_active( $slug ) ) {
			return;
		}

		/**
		 * @see wp-admin/update.php
		 */
		include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
		include_once ABSPATH . 'wp-admin/includes/file.php';
		include_once ABSPATH . 'wp-admin/includes/misc.php';

		$plugin_path = $slug . '/' . $slug . '.php';

		if ( ! $this->dash_notifier_is_plugin_installed( $slug ) ) {
			$plugin_info = $this->dash_notifier_get_plugin_info( $slug );
			if ( ! $plugin_info ) {
				return;
			}
			// Try to install plugin
			try {
				ob_start();
				$skin = new \Automatic_Upgrader_Skin();
				$upgrader = new \Plugin_Upgrader( $skin );
				$result = $upgrader->install( $plugin_info->download_link );
				ob_end_clean();
			} catch ( \Exception $e ) {
				return;
			}
		}

		if ( ! is_plugin_active( $plugin_path ) ) {
			activate_plugin( $plugin_path );
		}

	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.9
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_UPGRADE :
				$instance->upgrade();
				break;

			case self::TYPE_INSTALL_3RD :
				$instance->dash_notifier_install_3rd();
				break;

			case self::TYPE_DISMISS_RECOMMENDED:
				$summary = Cloud::get_summary();
				$summary[ 'news.new' ] = 0;
				Cloud::save_summary( $summary );
				break;

			case self::TYPE_INSTALL_ZIP:
				$summary = Cloud::get_summary();
				if ( ! empty( $summary[ 'news.zip' ] ) ) {
					$summary[ 'news.new' ] = 0;
					Cloud::save_summary( $summary );

					Debug2::get_instance()->beta_test( $summary[ 'zip' ] );
				}
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The quic.cloud class.
 *
 * @since      	2.4.1
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src/cdn
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\CDN ;

use LiteSpeed\Core ;
use LiteSpeed\Cloud ;
use LiteSpeed\Base ;
use LiteSpeed\Conf ;
use LiteSpeed\Debug2;
use LiteSpeed\Instance ;

defined( 'WPINC' ) || exit ;

class Quic extends Instance
{
	protected static $_instance ;

	private $_api_key ;

	const TYPE_REG = 'reg' ;

	/**
	 * Notify CDN new config updated
	 *
	 * @access public
	 */
	public static function try_sync_config()
	{
		$options = Conf::get_instance()->get_options() ;

		if ( ! $options[ Base::O_CDN_QUIC ] ) {
			return false ;
		}

		// Security: Remove cf key in report
		$secure_fields = array(
			Base::O_CDN_CLOUDFLARE_KEY,
			Base::O_OBJECT_PSWD,
		) ;
		foreach ( $secure_fields as $v ) {
			if ( ! empty( $options[ $v ] ) ) {
				$options[ $v ] = str_repeat( '*', strlen( $options[ $v ] ) ) ;
			}
		}
		unset( $options[ Base::O_MEDIA_LQIP_EXC ] );

		// Rest url
		$options[ '_rest' ] = function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' );

		// Add server env vars
		$options[ '_server' ] = Base::get_instance()->server_vars() ;

		// Append hooks
		$options[ '_tp_cookies' ] = apply_filters( 'litespeed_api_vary', array() ) ;

		Cloud::post( Cloud::SVC_D_SYNC_CONF, $options ) ;
	}

}<?php
/**
 * The cloudflare CDN class.
 *
 * @since      	2.1
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src/cdn
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed\CDN;

use LiteSpeed\Core;
use LiteSpeed\Base;
use LiteSpeed\Conf;
use LiteSpeed\Debug2;
use LiteSpeed\Router;
use LiteSpeed\Admin;
use LiteSpeed\Admin_Display;

defined( 'WPINC' ) || exit;

class Cloudflare extends Base {
	protected static $_instance;

	const TYPE_PURGE_ALL = 'purge_all';
	const TYPE_GET_DEVMODE = 'get_devmode';
	const TYPE_SET_DEVMODE_ON = 'set_devmode_on';
	const TYPE_SET_DEVMODE_OFF = 'set_devmode_off';

	const ITEM_STATUS = 'status';

	/**
	 * Update zone&name based on latest settings
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function try_refresh_zone() {
		$__cfg = Conf::get_instance();

		if ( ! Conf::val( Base::O_CDN_CLOUDFLARE ) ) {
			return;
		}

		$zone = self::get_instance()->_fetch_zone();
		if ( $zone ) {
			$__cfg->update( Base::O_CDN_CLOUDFLARE_NAME, $zone[ 'name' ] );

			$__cfg->update( Base::O_CDN_CLOUDFLARE_ZONE, $zone[ 'id' ] );

			Debug2::debug( "[Cloudflare] Get zone successfully \t\t[ID] $zone[id]" );
		}
		else {
			$__cfg->update( Base::O_CDN_CLOUDFLARE_ZONE, '' );
			Debug2::debug( '[Cloudflare] ❌ Get zone failed, clean zone' );
		}

	}

	/**
	 * Get Cloudflare development mode
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _get_devmode( $show_msg = true ) {
		Debug2::debug( '[Cloudflare] _get_devmode' );

		$zone = $this->_zone();
		if ( ! $zone ) {
			return;
		}

		$url = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/settings/development_mode';
		$res = $this->_cloudflare_call( $url, 'GET', false, $show_msg );

		if ( ! $res ) {
			return;
		}
		Debug2::debug( '[Cloudflare] _get_devmode result ', $res );

		$curr_status = self::get_option( self::ITEM_STATUS, array() );
		$curr_status[ 'devmode' ] = $res[ 'value' ];
		$curr_status[ 'devmode_expired' ] = $res[ 'time_remaining' ] + time();

		// update status
		self::update_option( self::ITEM_STATUS, $curr_status );

	}

	/**
	 * Set Cloudflare development mode
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _set_devmode( $type ) {
		Debug2::debug( '[Cloudflare] _set_devmode' );

		$zone = $this->_zone();
		if ( ! $zone ) {
			return;
		}

		$url = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/settings/development_mode';
		$new_val = $type == self::TYPE_SET_DEVMODE_ON ? 'on' : 'off';
		$data = array( 'value' => $new_val );
		$res = $this->_cloudflare_call( $url, 'PATCH', $data );

		if ( ! $res ) {
			return;
		}

		$res = $this->_get_devmode( false );

		if ( $res ) {
			$msg = sprintf( __( 'Notified Cloudflare to set development mode to %s successfully.', 'litespeed-cache' ), strtoupper( $new_val ) );
			Admin_Display::succeed( $msg );
		}

	}

	/**
	 * Purge Cloudflare cache
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _purge_all() {
		Debug2::debug( '[Cloudflare] _purge_all' );

		$cf_on = Conf::val( Base::O_CDN_CLOUDFLARE );
		if ( ! $cf_on ) {
			$msg = __( 'Cloudflare API is set to off.', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		$zone = $this->_zone();
		if ( ! $zone ) {
			return;
		}

		$url = 'https://api.cloudflare.com/client/v4/zones/' . $zone . '/purge_cache';
		$data = array( 'purge_everything' => true );

		$res = $this->_cloudflare_call( $url, 'DELETE', $data );

		if ( $res ) {
			$msg = __( 'Notified Cloudflare to purge all successfully.', 'litespeed-cache' );
			Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Get current Cloudflare zone from cfg
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _zone() {
		$zone = Conf::val( Base::O_CDN_CLOUDFLARE_ZONE );
		if ( ! $zone ) {
			$msg = __( 'No available Cloudflare zone', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return false;
		}

		return $zone;
	}

	/**
	 * Get Cloudflare zone settings
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _fetch_zone() {
		$kw = Conf::val( Base::O_CDN_CLOUDFLARE_NAME );

		$url = 'https://api.cloudflare.com/client/v4/zones?status=active&match=all';

		// Try exact match first
		if ( $kw && strpos( $kw, '.' ) ) {
			$zones = $this->_cloudflare_call( $url . '&name=' . $kw, 'GET', false, false );
			if ( $zones ) {
				Debug2::debug( '[Cloudflare] fetch_zone exact matched' );
				return $zones[ 0 ];
			}
		}

		// Can't find, try to get default one
		$zones = $this->_cloudflare_call( $url, 'GET', false, false );

		if ( ! $zones ) {
			Debug2::debug( '[Cloudflare] fetch_zone no zone' );
			return false;
		}

		if ( ! $kw ) {
			Debug2::debug( '[Cloudflare] fetch_zone no set name, use first one by default' );
			return $zones[ 0 ];
		}

		foreach ( $zones as $v ) {
			if ( strpos( $v[ 'name' ], $kw ) !== false ) {
				Debug2::debug( '[Cloudflare] fetch_zone matched ' . $kw . ' [name] ' . $v[ 'name' ] );
				return $v;
			}
		}

		// Can't match current name, return default one
		Debug2::debug( '[Cloudflare] fetch_zone failed match name, use first one by default' );
		return $zones[ 0 ];
	}

	/**
	 * Cloudflare API
	 *
	 * @since  1.7.2
	 * @access private
	 */
	private function _cloudflare_call( $url, $method = 'GET', $data = false, $show_msg = true ) {
		Debug2::debug( "[Cloudflare] _cloudflare_call \t\t[URL] $url" );

		$header = array(
			'Content-Type: application/json',
			'X-Auth-Email: ' . Conf::val( Base::O_CDN_CLOUDFLARE_EMAIL ),
			'X-Auth-Key: ' . Conf::val( Base::O_CDN_CLOUDFLARE_KEY ),
		);

		$ch = curl_init();
		curl_setopt( $ch, CURLOPT_URL, $url );
		curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $method );
		curl_setopt( $ch, CURLOPT_HTTPHEADER, $header );
		curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
		if ( $data ) {
			if ( is_array( $data ) ) {
				$data = json_encode( $data );
			}
			curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );
		}
		$result = curl_exec( $ch );

		$json = json_decode( $result, true );

		if ( $json && $json[ 'success' ] && $json[ 'result' ] ) {
			Debug2::debug( "[Cloudflare] _cloudflare_call called successfully" );
			if ( $show_msg ) {
				$msg = __( 'Communicated with Cloudflare successfully.', 'litespeed-cache' );
				Admin_Display::succeed( $msg );
			}

			return $json[ 'result' ];
		}

		Debug2::debug( "[Cloudflare] _cloudflare_call called failed: $result" );
		if ( $show_msg ) {
			$msg = __( 'Failed to communicate with Cloudflare', 'litespeed-cache' );
			Admin_Display::error( $msg );
		}

		return false;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.7.2
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_PURGE_ALL :
				$instance->_purge_all();
				break;

			case self::TYPE_GET_DEVMODE :
				$instance->_get_devmode();
				break;

			case self::TYPE_SET_DEVMODE_ON :
			case self::TYPE_SET_DEVMODE_OFF :
				$instance->_set_devmode( $type );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The core plugin router class.
 *
 * This generate the valid action.
 *
 * @since      	1.1.0
 * @since  		1.5 Moved into /inc
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Router extends Base {
	protected static $_instance;

	const NONCE = 'LSCWP_NONCE';
	const ACTION = 'LSCWP_CTRL';

	const ACTION_SAVE_HTACCESS = 'save-htaccess';
	const ACTION_SAVE_SETTINGS_NETWORK = 'save-settings-network';
	const ACTION_DB_OPTM = 'db_optm';
	const ACTION_PLACEHOLDER = 'placeholder';
	const ACTION_AVATAR = 'avatar';
	const ACTION_SAVE_SETTINGS = 'save-settings';
	const ACTION_CLOUD = 'cloud';
	const ACTION_IMG_OPTM = 'img_optm';
	const ACTION_HEALTH = 'health';
	const ACTION_CRAWLER = 'crawler';
	const ACTION_PURGE = 'purge';
	const ACTION_CONF = 'conf';
	const ACTION_ACTIVATION = 'activation';
	const ACTION_CSS = 'css';
	const ACTION_IMPORT = 'import';
	const ACTION_REPORT = 'report';
	const ACTION_DEBUG2 = 'debug2';
	const ACTION_CDN_QUIC = 'cdn_quic';
	const ACTION_CDN_CLOUDFLARE = 'cdn_cloudflare';

	const TYPE = 'litespeed_type';

	const ITEM_HASH = 'hash';

	private static $_esi_enabled;
	private static $_is_ajax;
	private static $_is_logged_in;
	private static $_ip;
	private static $_action;
	private static $_is_admin_ip;
	private static $_frontend_path;

	/**
	 * Check if can run optimize
	 *
	 * @since  1.3
	 * @since  2.3.1 Relocated from cdn.cls
	 * @access public
	 */
	public static function can_optm() {
		$can = true;

		if ( is_admin() ) {
			$can = false;
		}
		elseif ( is_feed() ) {
			$can = false;
		}
		elseif ( is_preview() ) {
			$can = false;
		}
		elseif ( self::is_ajax() ) {
			$can = false;
		}

		if ( self::_is_login_page() ) {
			Debug2::debug( '[Router] Optm bypassed: login/reg page' );
			$can = false;
		}

		$can_final = apply_filters( 'litespeed_can_optm', $can );

		if ( $can_final != $can ) {
			Debug2::debug( '[Router] Optm bypassed: filter' );
		}

		return $can_final;
	}

	/**
	 * Check referer page to see if its from admin
	 *
	 * @since 2.4.2.1
	 * @access public
	 */
	public static function from_admin() {
		return ! empty( $_SERVER[ 'HTTP_REFERER' ] ) && strpos( $_SERVER[ 'HTTP_REFERER' ], get_admin_url() ) === 0;
	}

	/**
	 * Check if it can use CDN replacement
	 *
	 * @since  1.2.3
	 * @since  2.3.1 Relocated from cdn.cls
	 * @access public
	 */
	public static function can_cdn() {
		$can = true;

		if ( is_admin() ) {
			if ( ! self::is_ajax() ) {
				Debug2::debug2( '[Router] CDN bypassed: is not ajax call' );
				$can = false;
			}

			if ( self::from_admin() ) {
				Debug2::debug2( '[Router] CDN bypassed: ajax call from admin' );
				$can = false;
			}
		}
		elseif ( is_feed() ) {
			$can = false;
		}
		elseif ( is_preview() ) {
			$can = false;
		}

		/**
		 * Bypass cron to avoid deregister jq notice `Do not deregister the <code>jquery-core</code> script in the administration area.`
		 * @since  2.7.2
		 */
		if ( defined( 'DOING_CRON' ) ) {
			$can = false;
		}

		/**
		 * Bypass login/reg page
		 * @since  1.6
		 */
		if ( self::_is_login_page() ) {
			Debug2::debug( '[Router] CDN bypassed: login/reg page' );
			$can = false;
		}

		/**
		 * Bypass post/page link setting
		 * @since 2.9.8.5
		 */
		$rest_prefix = function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' );
		if (
			strpos( $_SERVER[ 'REQUEST_URI' ], $rest_prefix . '/wp/v2/media' ) !== false
			&& strpos( $_SERVER[ 'HTTP_REFERER' ], 'wp-admin') !== false
		) {
			Debug2::debug( '[Router] CDN bypassed: wp-json on admin page' );
			$can = false;
		}

		$can_final = apply_filters( 'litespeed_can_cdn', $can );

		if ( $can_final != $can ) {
			Debug2::debug( '[Router] CDN bypassed: filter' );
		}

		return $can_final;
	}

	/**
	 * Check if is login page or not
	 *
	 * @since  2.3.1
	 * @access protected
	 */
	protected static function _is_login_page() {
		if ( in_array( $GLOBALS[ 'pagenow' ], array( 'wp-login.php', 'wp-register.php' ), true ) ) {
			return true;
		}

		return false;
	}

	/**
	 * UCSS/Crawler role simulator
	 *
	 * @since  1.9.1
	 * @since  3.3 Renamed from `is_crawler_role_simulation`
	 */
	public function is_role_simulation() {
		if( is_admin() ) {
			return;
		}

		if ( empty( $_COOKIE[ 'litespeed_role' ] ) || empty( $_COOKIE[ 'litespeed_hash' ] ) ) {
			return;
		}

		Debug2::debug( '[Router] starting role validation' );

		// Check if is from crawler
		// if ( empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) || strpos( $_SERVER[ 'HTTP_USER_AGENT' ], Crawler::FAST_USER_AGENT ) !== 0 ) {
		// 	Debug2::debug( '[Router] user agent not match' );
		// 	return;
		// }

		// Hash validation
		$hash = self::get_option( self::ITEM_HASH );
		if ( ! $hash || $_COOKIE[ 'litespeed_hash' ] != $hash ) {
			Debug2::debug( '[Router] hash not match ' . $_COOKIE[ 'litespeed_hash' ] . ' != ' . $hash );
			return;
		}

		$role_uid = $_COOKIE[ 'litespeed_role' ];
		Debug2::debug( '[Router] role simulate litespeed_role uid ' . $role_uid );

		wp_set_current_user( $role_uid );
	}

	/**
	 * Get a security hash
	 *
	 * @since  3.3
	 */
	public static function get_hash() {
		// Reuse previous hash if existed
		$hash = self::get_option( self::ITEM_HASH );
		if ( $hash ) {
			return $hash;
		}

		$hash = Str::rrand( 6 );
		self::update_option( self::ITEM_HASH, $hash );
		return $hash;
	}

	/**
	 * Get user role
	 *
	 * @since  1.6.2
	 */
	public static function get_role( $uid = null ) {
		if ( defined( 'LITESPEED_WP_ROLE' ) ) {
			return LITESPEED_WP_ROLE;
		}

		if ( $uid === null ) {
			$uid = get_current_user_id();
		}

		$role = false;
		if ( $uid ) {
			$user = get_userdata( $uid );
			if ( isset( $user->roles ) && is_array( $user->roles ) ) {
				$tmp = array_values( $user->roles );
				$role = array_shift( $tmp );
			}
		}
		Debug2::debug( '[Router] get_role: ' . $role );

		if ( ! $role ) {
			return $role;
			// Guest user
			Debug2::debug( '[Router] role: guest' );

			/**
			 * Fix double login issue
			 * The previous user init refactoring didn't fix this bcos this is in login process and the user role could change
			 * @see  https://github.com/litespeedtech/lscache_wp/commit/69e7bc71d0de5cd58961bae953380b581abdc088
			 * @since  2.9.8 Won't assign const if in login process
			 */
			if ( substr_compare( wp_login_url(), $GLOBALS[ 'pagenow' ], -strlen( $GLOBALS[ 'pagenow' ] ) ) === 0 ) {
				return $role;
			}
		}

		define( 'LITESPEED_WP_ROLE', $role );

		return LITESPEED_WP_ROLE;
	}

	/**
	 * Get frontend path
	 *
	 * @since 1.2.2
	 * @access public
	 * @return boolean
	 */
	public static function frontend_path() { //todo: move to htaccess.cls ?
		if ( ! isset( self::$_frontend_path ) ) {
			$frontend = rtrim( ABSPATH, '/' ); // /home/user/public_html/frontend
			// get home path failed. Trac ticket #37668 (e.g. frontend:/blog backend:/wordpress)
			if ( ! $frontend ) {
				Debug2::debug( '[Router] No ABSPATH, generating from home option' );
				$frontend = parse_url( get_option( 'home' ) );
				$frontend = ! empty( $frontend[ 'path' ] ) ? $frontend[ 'path' ] : '';
				$frontend = $_SERVER[ 'DOCUMENT_ROOT' ] . $frontend;
			}
			$frontend = realpath( $frontend );

			self::$_frontend_path = $frontend;
		}
		return self::$_frontend_path;
	}

	/**
	 * Check if ESI is enabled or not
	 *
	 * @since 1.2.0
	 * @access public
	 * @return boolean
	 */
	public static function esi_enabled() {
		if ( ! isset( self::$_esi_enabled ) ) {
			self::$_esi_enabled = defined( 'LITESPEED_ON' ) && Conf::val( Base::O_ESI );
		}
		return self::$_esi_enabled;
	}

	/**
	 * Check if crawler is enabled on server level
	 *
	 * @since 1.1.1
	 * @access public
	 */
	public static function can_crawl() {
		if ( isset( $_SERVER[ 'X-LSCACHE' ] ) && strpos( $_SERVER[ 'X-LSCACHE' ], 'crawler' ) === false ) {
			return false;
		}

		// CLI will bypass this check as crawler library can always do the 428 check
		if ( defined( 'LITESPEED_CLI' ) ) {
			return true;
		}

		return true;
	}

	/**
	 * Check action
	 *
	 * @since 1.1.0
	 * @access public
	 * @return string
	 */
	public static function get_action() {
		if ( ! isset( self::$_action ) ) {
			self::$_action = false;
			self::get_instance()->verify_action();
			if ( self::$_action ) {
				defined( 'LSCWP_LOG' ) && Debug2::debug( '[Router] LSCWP_CTRL verified: ' . var_export( self::$_action, true ) );
			}

		}
		return self::$_action;
	}

	/**
	 * Check if is logged in
	 *
	 * @since 1.1.3
	 * @access public
	 * @return boolean
	 */
	public static function is_logged_in() {
		if ( ! isset( self::$_is_logged_in ) ) {
			self::$_is_logged_in = is_user_logged_in();
		}
		return self::$_is_logged_in;
	}

	/**
	 * Check if is ajax call
	 *
	 * @since 1.1.0
	 * @access public
	 * @return boolean
	 */
	public static function is_ajax() {
		if ( ! isset( self::$_is_ajax ) ) {
			self::$_is_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX;
		}
		return self::$_is_ajax;
	}

	/**
	 * Check if is admin ip
	 *
	 * @since 1.1.0
	 * @access public
	 * @return boolean
	 */
	public static function is_admin_ip() {
		if ( ! isset( self::$_is_admin_ip ) ) {
			$ips = Conf::val( Base::O_DEBUG_IPS );

			self::$_is_admin_ip = self::get_instance()->ip_access( $ips );
		}
		return self::$_is_admin_ip;
	}

	/**
	 * Get type value
	 *
	 * @since 1.6
	 * @access public
	 */
	public static function verify_type() {
		if ( empty( $_REQUEST[ self::TYPE ] ) ) {
			Debug2::debug( '[Router] no type', 2 );
			return false;
		}

		Debug2::debug( '[Router] parsed type: ' . $_REQUEST[ self::TYPE ], 2 );

		return $_REQUEST[ self::TYPE ];
	}

	/**
	 * Check privilege and nonce for the action
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function verify_action() {
		if ( empty( $_REQUEST[ Router::ACTION ] ) ) {
			Debug2::debug2( '[Router] LSCWP_CTRL bypassed empty' );
			return;
		}

		$action = $_REQUEST[ Router::ACTION ];
		$_is_public_action = false;

		// Each action must have a valid nonce unless its from admin ip and is public action
		// Validate requests nonce (from admin logged in page or cli)
		if ( ! $this->verify_nonce( $action ) ) {
			// check if it is from admin ip
			if ( ! $this->is_admin_ip() ) {
				Debug2::debug( '[Router] LSCWP_CTRL query string - did not match admin IP: ' . $action );
				return;
			}

			// check if it is public action
			if ( ! in_array( $action, array(
					Core::ACTION_QS_NOCACHE,
					Core::ACTION_QS_PURGE,
					Core::ACTION_QS_PURGE_SINGLE,
					Core::ACTION_QS_SHOW_HEADERS,
					Core::ACTION_QS_PURGE_ALL,
					Core::ACTION_QS_PURGE_EMPTYCACHE,
					) ) ) {
				Debug2::debug( '[Router] LSCWP_CTRL query string - did not match admin IP Actions: ' . $action );
				return;
			}

			$_is_public_action = true;
		}

		/* Now it is a valid action, lets log and check the permission */
		Debug2::debug( '[Router] LSCWP_CTRL: ' . $action );

		// OK, as we want to do something magic, lets check if its allowed
		$_is_multisite = is_multisite();
		$_is_network_admin = $_is_multisite && is_network_admin();
		$_can_network_option = $_is_network_admin && current_user_can( 'manage_network_options' );
		$_can_option = current_user_can( 'manage_options' );

		switch ( $action ) {
			// Save htaccess
			case self::ACTION_SAVE_HTACCESS:
				if ( ( ! $_is_multisite && $_can_option ) || $_can_network_option ) {
					self::$_action = $action;
				}
				return;

			// Save network settings
			case self::ACTION_SAVE_SETTINGS_NETWORK:
				if ( $_can_network_option ) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_PURGE_BY:
				if ( defined( 'LITESPEED_ON' ) && ( $_can_network_option || $_can_option || self::is_ajax() ) ) {//here may need more security
					self::$_action = $action;
				}
				return;

			case self::ACTION_DB_OPTM:
				if ( $_can_network_option || $_can_option ) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_PURGE_EMPTYCACHE:// todo: moved to purge.cls type action
				if ( defined( 'LITESPEED_ON' ) && ( $_can_network_option || ( ! $_is_multisite && $_can_option ) ) ) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_QS_NOCACHE:
			case Core::ACTION_QS_PURGE:
			case Core::ACTION_QS_PURGE_SINGLE:
			case Core::ACTION_QS_SHOW_HEADERS:
			case Core::ACTION_QS_PURGE_ALL:
			case Core::ACTION_QS_PURGE_EMPTYCACHE:
				if ( defined( 'LITESPEED_ON' ) && ( $_is_public_action || self::is_ajax() ) ) {
					self::$_action = $action;
				}
				return;

			case self::ACTION_PLACEHOLDER:
			case self::ACTION_AVATAR:
			case self::ACTION_IMG_OPTM:
			case self::ACTION_CLOUD:
			case self::ACTION_CDN_CLOUDFLARE:
			case self::ACTION_CDN_QUIC:
			case self::ACTION_CRAWLER:
			case self::ACTION_IMPORT:
			case self::ACTION_REPORT:
			case self::ACTION_CSS:
			case self::ACTION_CONF:
			case self::ACTION_ACTIVATION:
			case self::ACTION_HEALTH:
			case self::ACTION_SAVE_SETTINGS: // Save settings
				if ( $_can_option && ! $_is_network_admin ) {
					self::$_action = $action;
				}
				return;

			case self::ACTION_PURGE:
			case self::ACTION_DEBUG2:
				if ( $_can_network_option || $_can_option ) {
					self::$_action = $action;
				}
				return;

			case Core::ACTION_DISMISS:
				/**
				 * Non ajax call can dismiss too
				 * @since  2.9
				 */
				// if ( self::is_ajax() ) {
				self::$_action = $action;
				// }
				return;

			default:
				Debug2::debug( '[Router] LSCWP_CTRL match falied: ' . $action );
				return;
		}

	}

	/**
	 * Verify nonce
	 *
	 * @since 1.1.0
	 * @access private
	 * @param  string $action
	 * @return bool
	 */
	private function verify_nonce( $action ) {
		if ( ! isset( $_REQUEST[ Router::NONCE ] ) || ! wp_verify_nonce( $_REQUEST[ Router::NONCE ], $action ) ) {
			return false;
		}
		else{
			return true;
		}
	}

	/**
	 * Check if the ip is in the range
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function ip_access( $ip_list ) {
		if ( ! $ip_list ) {
			return false;
		}
		if ( ! isset( self::$_ip ) ) {
			self::$_ip = $this->get_ip();
		}
		// $uip = explode('.', $_ip);
		// if(empty($uip) || count($uip) != 4) Return false;
		// foreach($ip_list as $key => $ip) $ip_list[$key] = explode('.', trim($ip));
		// foreach($ip_list as $key => $ip) {
		// 	if(count($ip) != 4) continue;
		// 	for($i = 0; $i <= 3; $i++) if($ip[$i] == '*') $ip_list[$key][$i] = $uip[$i];
		// }
		return in_array( self::$_ip, $ip_list );
	}

	/**
	 * Get client ip
	 *
	 * @since 1.1.0
	 * @since  1.6.5 changed to public
	 * @access public
	 * @return string
	 */
	public static function get_ip() {
		$_ip = '';
		if ( function_exists( 'apache_request_headers' ) ) {
			$apache_headers = apache_request_headers();
			$_ip = ! empty( $apache_headers['True-Client-IP'] ) ? $apache_headers['True-Client-IP'] : false;
			if ( ! $_ip ) {
				$_ip = ! empty( $apache_headers['X-Forwarded-For'] ) ? $apache_headers['X-Forwarded-For'] : false;
				$_ip = explode( ',', $_ip );
				$_ip = $_ip[ 0 ];
			}

		}

		if ( ! $_ip ) {
			$_ip = ! empty( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : false;
		}
		return $_ip;
	}

	/**
	 * Check if opcode cache is enabled
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public static function opcache_enabled() {
		return function_exists( 'opcache_reset' ) && ini_get( 'opcache.enable' );
	}

	/**
	 * Handle static files
	 *
	 * @since  3.0
	 */
	public static function serve_static() {
		if ( ! empty( $_SERVER[ 'SCRIPT_URI' ] ) ) {
			if ( strpos( $_SERVER[ 'SCRIPT_URI' ], LITESPEED_STATIC_URL . '/' ) !== 0 ) {
				return;
			}
			$path = substr( $_SERVER[ 'SCRIPT_URI' ], strlen( LITESPEED_STATIC_URL . '/' ) );
		}
		elseif ( ! empty( $_SERVER[ 'REQUEST_URI' ] ) ) {
			$static_path = parse_url( LITESPEED_STATIC_URL, PHP_URL_PATH ) . '/';
			if ( strpos( $_SERVER[ 'REQUEST_URI' ], $static_path ) !== 0 ) {
				return;
			}
			$path = substr( parse_url( $_SERVER[ 'REQUEST_URI' ], PHP_URL_PATH ), strlen( $static_path ) );
		}
		else {
			return;
		}

		$path = explode( '/', $path, 2 );

		if ( empty( $path[ 0 ] ) || empty( $path[ 1 ] ) ) {
			return;
		}

		switch ( $path[ 0 ] ) {
			case 'avatar':
				Avatar::get_instance()->serve_satic( $path[ 1 ] );
				break;

			case 'cssjs':
				Optimize::get_instance()->serve_satic( $path[ 1 ] );
				break;

			case 'localres':
				Localization::get_instance()->serve_static( $path[ 1 ] );
				break;

			default :
				break;
		}

	}

	/**
	 * Handle all request actions from main cls
	 *
	 * This is different than other handlers
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function handler( $cls ) {
		// CDN is child namespaces
		if ( $cls == self::ACTION_CDN_QUIC || $cls == self::ACTION_CDN_CLOUDFLARE ) {
			$cls = str_replace( '_', '\\', $cls );
		}

		$cls = __NAMESPACE__ . '\\' . $cls;

		if ( method_exists( $cls, 'handler' ) ) {
			return $cls::handler();
		}
	}

}
<?php
/**
 * The page health
 *
 *
 * @since      3.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Health extends Base
{
	const TYPE_SPEED = 'speed';
	const TYPE_SCORE = 'score';

	protected static $_instance;
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 * @access protected
	 */
	protected function __construct()
	{
		$this->_summary = self::get_summary();

	}

	/**
	 * Test latest speed
	 *
	 * @since 3.0
	 */
	private function _ping( $type )
	{
		$data = array( 'action' => $type );

		$json = Cloud::post( Cloud::SVC_HEALTH, $data, 600 );

		if ( empty( $json[ 'data' ][ 'before' ] ) || empty( $json[ 'data' ][ 'after' ] ) ) {
			Debug2::debug( '[Health] ❌ no data' );
			return false;
		}

		$this->_summary[ $type . '.before' ] = $json[ 'data' ][ 'before' ];
		$this->_summary[ $type . '.after' ] = $json[ 'data' ][ 'after' ];

		self::save_summary();

		Debug2::debug( '[Health] saved result' );
	}

	/**
	 * Generate scores
	 *
	 * @since 3.0
	 */
	public function scores()
	{
		$speed_before = $speed_after = $speed_improved = 0;
		if ( ! empty( $this->_summary[ 'speed.before' ] ) && ! empty( $this->_summary[ 'speed.after' ] ) ) {
			// Format loading time
			$speed_before = $this->_summary[ 'speed.before' ] / 1000;
			if ( $speed_before < 0.01 ) {
				$speed_before = 0.01;
			}
			$speed_before = number_format( $speed_before, 2 );

			$speed_after = $this->_summary[ 'speed.after' ] / 1000;
			if ( $speed_after < 0.01 ) {
				$speed_after = number_format( $speed_after, 3 );
			}
			else {
				$speed_after = number_format( $speed_after, 2 );
			}

			$speed_improved = ( $this->_summary[ 'speed.before' ] - $this->_summary[ 'speed.after' ] ) * 100 / $this->_summary[ 'speed.before' ];
			if ( $speed_improved > 99 ) {
				$speed_improved = number_format( $speed_improved, 2 );
			}
			else {
				$speed_improved = number_format( $speed_improved );
			}
		}

		$score_before = $score_after = $score_improved = 0;
		if ( ! empty( $this->_summary[ 'score.before' ] ) && ! empty( $this->_summary[ 'score.after' ] ) ) {
			$score_before = $this->_summary[ 'score.before' ];
			$score_after = $this->_summary[ 'score.after' ];

			// Format Score
			$score_improved = ( $score_after - $score_before ) * 100 / $score_after;
			if ( $score_improved > 99 ) {
				$score_improved = number_format( $score_improved, 2 );
			}
			else {
				$score_improved = number_format( $score_improved );
			}
		}

		return array(
			'speed_before' => $speed_before,
			'speed_after' => $speed_after,
			'speed_improved' => $speed_improved,
			'score_before' => $score_before,
			'score_after' => $score_after,
			'score_improved' => $score_improved,
		);
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function handler()
	{
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_SPEED :
			case self::TYPE_SCORE :
				$instance->_ping( $type );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}<?php
/**
 * The core plugin config class.
 *
 * This maintains all the options and settings for this plugin.
 *
 * @since      	1.0.0
 * @since  		1.5 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;


class Conf extends Base {
	protected static $_instance;

	const TYPE_SET = 'set';

	private $_options = array();
	private $_const_options = array();
	private $_primary_options = array();
	private $_site_options = array();
	private $_updated_ids = array();
	private $_is_primary = false;


	/**
	 * Initialize the class and set its properties.
	 *
	 * @since 1.0.0
	 * @access protected
	 */
	protected function __construct() {
	}

	/**
	 * Specify init logic to avoid infinite loop when calling conf.cls instance
	 *
	 * @since  3.0
	 * @access public
	 */
	public function init() {
		// Check if conf exists or not. If not, create them in DB (won't change version if is converting v2.9- data)
		// Conf may be stale, upgrade later
		$this->_conf_db_init();

		/**
		 * Detect if has quic.cloud set
		 * @since  2.9.7
		 */
		if ( $this->_options[ self::O_CDN_QUIC ] ) {
			! defined( 'LITESPEED_ALLOWED' ) &&  define( 'LITESPEED_ALLOWED', true );
		}

		add_action( 'litespeed_conf_append', array( $this, 'option_append' ), 10, 2 );
		add_action( 'litespeed_conf_force', array( $this, 'force_option' ), 10, 2 );

		$this->define_cache();
	}

	/**
	 * Init conf related data
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _conf_db_init() {
		/**
		 * Try to load options first, network sites can override this later
		 *
		 * NOTE: Load before run `conf_upgrade()` to avoid infinite loop when getting conf in `conf_upgrade()`
		 */
		$this->load_options();

		$ver = $this->_options[ Base::_VER ];

		/**
		 * Don't upgrade or run new installations other than from backend visit
		 * In this case, just use default conf
		 */
		if ( ! $ver || $ver != Core::VER ) {
			if ( ! is_admin() && ! defined( 'LITESPEED_CLI' ) ) {
				$this->_options = $this->load_default_vals();
				$this->_try_load_site_options();

				// Disable new installation auto upgrade to avoid overwritten to customized data.ini
				if ( ! $ver ) {
					! defined( 'LITESPEED_BYPASS_AUTO_V' ) && define( 'LITESPEED_BYPASS_AUTO_V', true );
				}
				return;
			}
		}

		/**
		 * Version is less than v3.0, or, is a new installation
		 */
		if ( ! $ver ) {
			// Try upgrade first (network will upgrade inside too)
			Data::get_instance()->try_upgrade_conf_3_0();
		}
		else {
			! defined( 'LSCWP_CUR_V' ) && define( 'LSCWP_CUR_V', $ver );

			/**
			 * Upgrade conf
			 */
			if ( $ver != Core::VER ) {
				// Plugin version will be set inside
				// Site plugin upgrade & version change will do in load_site_conf
				Data::get_instance()->conf_upgrade( $ver );
			}
		}

		/**
		 * Sync latest new options
		 */
		if ( ! $ver || $ver != Core::VER ) {
			// Load default values
			$this->load_default_vals();
			if ( ! $ver ) { // New install
				$this->_options = self::$_default_options;
			}

			// Init new default/missing options
			foreach ( self::$_default_options as $k => $v ) {
				// If the option existed, bypass updating
				// Bcos we may ask clients to deactivate for debug temporarily, we need to keep the current cfg in deactivation, hence we need to only try adding default cfg when activating.
				self::add_option( $k, $v );
			}
		}

		/**
		 * Network sites only
		 *
		 * Override conf if is network subsites and chose `Use Primary Config`
		 */
		$this->_try_load_site_options();

		// Activation delayed file update
		if ( self::get_option( '__activation' ) ) {
			// Check new version @since 2.9.3
			Cloud::version_check( 'activate' . ( defined( 'LSCWP_REF' ) ? '_' . LSCWP_REF : '' ) );

			$this->update_confs(); // Files only get corrected in activation or saving settings actions.

			self::delete_option( '__activation' );
		}
	}

	/**
	 * Load all latest options from DB
	 *
	 * @since  3.0
	 * @access public
	 */
	public function load_options( $blog_id = null, $dry_run = false ) {
		$options = array();
		foreach ( self::$_default_options as $k => $v ) {
			if ( ! is_null( $blog_id ) ) {
				$options[ $k ] = self::get_blog_option( $blog_id, $k, $v );
			}
			else {
				$options[ $k ] = self::get_option( $k, $v );
			}

			// Correct value type
			$options[ $k ] = $this->type_casting( $options[ $k ], $k );
		}

		if ( $dry_run ) {
			return $options;
		}

		// Bypass site special settings
		if ( $blog_id !== null ) { // This is to load the primary settings ONLY
			// These options are the ones that can be overwritten by primary
			$options = array_diff_key( $options, array_flip( self::$SINGLE_SITE_OPTIONS ) );

			$this->_primary_options = array_merge( $this->_primary_options, $options );
		}
		else {
			$this->_options = array_merge( $this->_options, $options );
		}


		// Append const options
		if ( defined( 'LITESPEED_CONF' ) && LITESPEED_CONF ) {
			foreach ( self::$_default_options as $k => $v ) {
				$const = Base::conf_const( $k );
				if ( defined( $const ) ) {
					$this->_const_options[ $k ] = $this->type_casting( constant( $const ), $k );
				}
			}
		}
	}

	/**
	 * For multisite installations, the single site options need to be updated with the network wide options.
	 *
	 * @since 1.0.13
	 * @access private
	 */
	private function _try_load_site_options() {
		if ( ! $this->_if_need_site_options() ) {
			return;
		}

		$this->_conf_site_db_init();

		$this->_is_primary = get_current_blog_id() == BLOG_ID_CURRENT_SITE;

		// If network set to use primary setting
		if ( ! empty ( $this->_site_options[ self::NETWORK_O_USE_PRIMARY ] ) && ! $this->_is_primary ) { // subsites or network admin
			// Get the primary site settings
			// If it's just upgraded, 2nd blog is being visited before primary blog, can just load default config (won't hurt as this could only happen shortly)
			$this->load_options( BLOG_ID_CURRENT_SITE );
		}

		// Overwrite single blog options with site options
		foreach ( self::$_default_options as $k => $v ) {
			if ( isset( $this->_site_options[ $k ] ) ) {
				// $this->_options[ $k ] = $this->_site_options[ $k ];

				// Special handler to `Enable Cache` option if the value is set to OFF
				if ( $k == self::O_CACHE ) {
					if ( $this->_is_primary ) {
						if ( $this->_options[ $k ] != $this->_site_options[ $k ] ) {
							if ( $this->_options[ $k ] != self::VAL_ON2 ) {
								continue;
							}
						}
					}
					else {
						if ( $this->_site_options[ self::NETWORK_O_USE_PRIMARY ] ) {
							if ( isset( $this->_primary_options[ $k ] ) && $this->_primary_options[ $k ] != self::VAL_ON2 ) { // This case will use _primary_options override always
								continue;
							}
						}
						else {
							if ( $this->_options[ $k ] != self::VAL_ON2 ) {
								continue;
							}
						}
					}
				}

				// _primary_options will store primary settings + network settings, OR, store the network settings for subsites
				$this->_primary_options[ $k ] = $this->_site_options[ $k ];
			}
		}
		// var_dump($this->_options);
	}

	/**
	 * Check if needs to load site_options for network sites
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _if_need_site_options() {
		if ( ! is_multisite() ) {
			return false;
		}

		// Check if needs to use site_options or not
		// todo: check if site settings are separate bcos it will affect .htaccess

		/**
		 * In case this is called outside the admin page
		 * @see  https://codex.wordpress.org/Function_Reference/is_plugin_active_for_network
		 * @since  2.0
		 */
		if ( ! function_exists( 'is_plugin_active_for_network' ) ) {
			require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
		}
		// If is not activated on network, it will not have site options
		if ( ! is_plugin_active_for_network( Core::PLUGIN_FILE ) ) {
			if ( (int) $this->_options[ self::O_CACHE ] == self::VAL_ON2 ) { // Default to cache on
				$this->_options[ self::_CACHE ] = true;
			}
			return false;
		}

		return true;
	}

	/**
	 * Init site conf and upgrade if necessary
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _conf_site_db_init() {
		$this->load_site_options();

		$ver = $this->_site_options[ Base::_VER ];

		/**
		 * Don't upgrade or run new installations other than from backend visit
		 * In this case, just use default conf
		 */
		if ( ! $ver || $ver != Core::VER ) {
			if ( ! is_admin() && ! defined( 'LITESPEED_CLI' ) ) {
				$this->_site_options = $this->load_default_site_vals();
				return;
			}
		}

		/**
		 * Upgrade conf
		 */
		if ( $ver && $ver != Core::VER ) {
			// Site plugin versin will change inside
			Data::get_instance()->conf_site_upgrade( $ver );
		}

		/**
		 * Is a new installation
		 */
		if ( ! $ver || $ver != Core::VER ) {
			// Load default values
			$this->load_default_site_vals();

			// Init new default/missing options
			foreach ( self::$_default_site_options as $k => $v ) {
				// If the option existed, bypass updating
				self::add_site_option( $k, $v );
			}
		}
	}

	/**
	 * Get the plugin's site wide options.
	 *
	 * If the site wide options are not set yet, set it to default.
	 *
	 * @since 1.0.2
	 * @access public
	 */
	public function load_site_options() {
		if ( ! is_multisite() || $this->_site_options ) {
			return $this->_site_options;
		}

		// Load all site options
		foreach ( self::$_default_site_options as $k => $v ) {
			$this->_site_options[ $k ] = self::get_site_option( $k, $v );

			$this->_site_options[ $k ] = $this->type_casting( $this->_site_options[ $k ], $k, true );
		}

		return $this->_site_options;
	}

	/**
	 * Append a 3rd party option to default options
	 *
	 * This will not be affected by network use primary site setting.
	 *
	 * NOTE: If it is a multi switch option, need to call `_conf_multi_switch()` first
	 *
	 * @since  3.0
	 * @access public
	 */
	public function option_append( $name, $default ) {
		self::$_default_options[ $name ] = $default;
		$this->_options[ $name ] = self::get_option( $name, $default );
		$this->_options[ $name ] = $this->type_casting( $this->_options[ $name ], $name );
	}

	/**
	 * Force an option to a certain value
	 *
	 * @since  2.6
	 * @access public
	 */
	public function force_option( $k, $v ) {
		if ( ! array_key_exists( $k, $this->_options ) ) {
			return;
		}

		$v = $this->type_casting( $v, $k );

		if ( $this->_options[ $k ] === $v ) {
			return;
		}

		Debug2::debug( "[Conf] ** $k forced from " . var_export( $this->_options[ $k ], true ) . ' to ' . var_export( $v, true ) );

		$this->_options[ $k ] = $v;
	}

	/**
	 * Define `_CACHE` const in options ( for both single and network )
	 *
	 * @since  3.0
	 * @access public
	 */
	public function define_cache() {
		// Init global const cache on setting
		$this->_options[ self::_CACHE ] = false;
		if ( (int) $this->_options[ self::O_CACHE ] == self::VAL_ON || $this->_options[ self::O_CDN_QUIC ] ) {
			$this->_options[ self::_CACHE ] = true;
		}

		// Check network
		if ( ! $this->_if_need_site_options() ) {
			// Set cache on
			$this->_define_cache_on();
			return;
		}

		// If use network setting
		if ( (int) $this->_options[ self::O_CACHE ] == self::VAL_ON2 && $this->_site_options[ self::O_CACHE ] ) {
			$this->_options[ self::_CACHE ] = true;
		}

		$this->_define_cache_on();
	}

	/**
	 * Define `LITESPEED_ON`
	 *
	 * @since 2.1
	 * @access private
	 */
	private function _define_cache_on() {
		if ( ! $this->_options[ self::_CACHE ] ) {
			return;
		}

		defined( 'LITESPEED_ALLOWED' ) && ! defined( 'LITESPEED_ON' ) && define( 'LITESPEED_ON', true );
	}

	/**
	 * Get the list of configured options for the blog.
	 *
	 * @since 1.0.0
	 * @access public
	 * @return array The list of configured options.
	 */
	public function get_options( $ori = false ) {
		if ( ! $ori ) {
			return array_merge( $this->_options, $this->_primary_options, $this->_const_options );
		}

		return $this->_options;
	}

	/**
	 * Get an option value
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function val( $id, $ori = false ) {
		$instance = self::get_instance();

		if ( isset( $instance->_options[ $id ] ) ) {
			if ( ! $ori ) {
				$val = $instance->const_overwritten( $id );
				if ( $val !== null ) {
					defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] 🏛️ const option ' . $id . '=' . var_export( $val, true ) );
					return $val;
				}

				$val = $instance->primary_overwritten( $id ); // Network Use primary site settings
				if ( $val !== null ) {
					return $val;
				}
			}

			// Network orignal value will be in _site_options
			if ( ! is_network_admin() || ! isset( $instance->_site_options[ $id ] ) ) {
				return $instance->_options[ $id ];
			}

		}

		if ( isset( $instance->_site_options[ $id ] ) ) {
			if ( ! $ori ) {
				$val = $instance->const_overwritten( $id );
				if ( $val !== null ) {
					defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] 🏛️ const option ' . $id . '=' . var_export( $val, true ) );
					return $val;
				}
			}

			return $instance->_site_options[ $id ];
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] Invalid option ID ' . $id );

		return null;
	}

	/**
	 * Check if is overwritten by const
	 *
	 * @since  3.0
	 */
	public function const_overwritten( $id ) {
		if ( ! isset( $this->_const_options[ $id ] ) || $this->_const_options[ $id ] == $this->_options[ $id ] ) {
			return null;
		}
		return $this->_const_options[ $id ];
	}

	/**
	 * Check if is overwritten by primary site
	 *
	 * @since  3.2.2
	 */
	public function primary_overwritten( $id ) {
		if ( ! isset( $this->_primary_options[ $id ] ) || $this->_primary_options[ $id ] == $this->_options[ $id ] ) {
			return null;
		}

		// Network admin settings is impossible to be overwritten by primary
		if ( is_network_admin() ) {
			return null;
		}

		return $this->_primary_options[ $id ];
	}

	/**
	 * Save option
	 *
	 * @since  3.0
	 * @access public
	 */
	public function update_confs( $the_matrix = false ) {
		if ( $the_matrix ) {
			foreach ( $the_matrix as $id => $val ) {
				$this->update( $id, $val );
			}
		}

		if ( $this->_updated_ids ) {
			foreach ( $this->_updated_ids as $id ) {
				// Special handler for QUIC.cloud domain key to clear all existing nodes
				if ( $id == Base::O_API_KEY ) {
					Cloud::get_instance()->clear_cloud();
				}

				// Special handler for crawler: reset sitemap when drop_domain setting changed
				if ( $id == Base::O_CRAWLER_DROP_DOMAIN ) {
					Crawler_Map::get_instance()->empty_map();
				}

				// Check if need to do a purge all or not
				if ( $this->_conf_purge_all( $id ) ) {
					Purge::purge_all( 'conf changed [id] ' . $id );
				}

				// Check if need to purge a tag
				if ( $tag = $this->_conf_purge_tag( $id ) ) {
					Purge::add( $tag );
				}

				// Update cron
				if ( $this->_conf_cron( $id ) ) {
					Task::try_clean( $id );
				}
			}
		}

		do_action( 'litespeed_update_confs', $the_matrix );

		// Update related tables
		Data::get_instance()->correct_tb_existance();

		// Update related files
		Activation::get_instance()->update_files();

		/**
		 * CDN related actions - Cloudflare
		 */
		CDN\Cloudflare::get_instance()->try_refresh_zone();

		/**
		 * CDN related actions - QUIC.cloud
		 * @since 2.3
		 */
		CDN\Quic::try_sync_config();

	}

	/**
	 * Save option
	 *
	 * Note: this is direct save, won't trigger corresponding file update or data sync. To save settings normally, always use `Conf->update_confs()`
	 *
	 * @since  3.0
	 * @access public
	 */
	public function update( $id, $val ) {
		// Bypassed this bcos $this->_options could be changed by force_option()
		// if ( $this->_options[ $id ] === $val ) {
		// 	return;
		// }

		if ( $id == Base::_VER ) {
			return;
		}

		if ( ! array_key_exists( $id, self::$_default_options ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] Invalid option ID ' . $id );
			return;
		}

		if ( $val && $this->_conf_pswd( $id ) && ! preg_match( '|[^\*]|', $val ) ) {
			return;
		}

		// Special handler for CDN Original URLs
		if ( $id == Base::O_CDN_ORI && ! $val ) {
			$home_url = home_url( '/' );
			$parsed = parse_url( $home_url );
			$home_url = str_replace( $parsed[ 'scheme' ] . ':', '', $home_url );

			$val = $home_url;
		}

		// Validate type
		$val = $this->type_casting( $val, $id );

		// Save data
		self::update_option( $id, $val );

		// Handle purge if setting changed
		if ( $this->_options[ $id ] != $val ) {
			$this->_updated_ids[] = $id;

			// Check if need to fire a purge or not (Here has to stay inside `update()` bcos need comparing old value)
			if ( $this->_conf_purge( $id ) ) {
				$diff = array_diff( $val, $this->_options[ $id ] );
				$diff2 = array_diff( $this->_options[ $id ], $val );
				$diff = array_merge( $diff, $diff2 );
				// If has difference
				foreach ( $diff as $v ) {
					$v = ltrim( $v, '^' );
					$v = rtrim( $v, '$' );
					Purge::purge_url( $v );
				}
			}
		}

		// Update in-memory data
		$this->_options[ $id ] = $val;
	}

	/**
	 * Save network option
	 *
	 * @since  3.0
	 * @access public
	 */
	public function network_update( $id, $val ) {
		if ( ! array_key_exists( $id, self::$_default_site_options ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Conf] Invalid network option ID ' . $id );
			return;
		}

		if ( $val && $this->_conf_pswd( $id ) && ! preg_match( '|[^\*]|', $val ) ) {
			return;
		}

		// Validate type
		if ( is_bool( self::$_default_site_options[ $id ] ) ) {
			$max = $this->_conf_multi_switch( $id );
			if ( $max && $val > 1 ) {
				$val %= $max + 1;
			}
			else {
				$val = (bool) $val;
			}
		}
		elseif ( is_array( self::$_default_site_options[ $id ] ) ) {
			// from textarea input
			if ( ! is_array( $val ) ) {
				$val = Utility::sanitize_lines( $val, $this->_conf_filter( $id ) );
			}
		}
		elseif ( ! is_string( self::$_default_site_options[ $id ] ) ) {
			$val = (int) $val;
		}
		else {
			// Check if the string has a limit set
			$val = $this->_conf_string_val( $id, $val );
		}

		// Save data
		self::update_site_option( $id, $val );

		// Handle purge if setting changed
		if ( $this->_site_options[ $id ] != $val ) {
			// Check if need to do a purge all or not
			if ( $this->_conf_purge_all( $id ) ) {
				Purge::purge_all( '[Conf] Network conf changed [id] ' . $id );
			}
		}

		// No need to update cron here, Cron will register in each init

		// Update in-memory data
		$this->_site_options[ $id ] = $val;

		if ( isset( $this->_options[ $id ] ) ) {
			$this->_options[ $id ] = $val;
		}
	}

	/**
	 * Check if one user role is in exclude optimization group settings
	 *
	 * @since 1.6
	 * @access public
	 * @param  string $role The user role
	 * @return int       The set value if already set
	 */
	public function in_optm_exc_roles( $role = null ) {
		// Get user role
		if ( $role === null ) {
			$role = Router::get_role();
		}

		if ( ! $role ) {
			return false;
		}

		return in_array( $role, self::val( self::O_OPTM_EXC_ROLES ) ) ? $role : false;
	}

	/**
	 * Set one config value directly
	 *
	 * @since  2.9
	 * @access private
	 */
	private function _set_conf() {
		/**
		 * NOTE: For URL Query String setting,
		 * 		1. If append lines to an array setting e.g. `cache-force_uri`, use `set[cache-force_uri][]=the_url`.
		 *   	2. If replace the array setting with one line, use `set[cache-force_uri]=the_url`.
		 *   	3. If replace the array setting with multi lines value, use 2 then 1.
		 */
		if ( empty( $_GET[ self::TYPE_SET ] ) || ! is_array( $_GET[ self::TYPE_SET ] ) ) {
			return;
		}

		$the_matrix = array();
		foreach ( $_GET[ self::TYPE_SET ] as $id => $v ) {
			if ( ! array_key_exists( $id, $this->_options ) ) {
				continue;
			}

			// Append new item to array type settings
			if ( is_array( $v ) && is_array( $this->_options[ $id ] ) ) {
				$v = array_merge( $this->_options[ $id ], $v );

				Debug2::debug( '[Conf] Appended to settings [' . $id . ']: ' . var_export( $v, true ) );
			}
			else {
				Debug2::debug( '[Conf] Set setting [' . $id . ']: ' . var_export( $v, true ) );
			}

			$the_matrix[ $id ] = $v;
		}

		if ( ! $the_matrix ) {
			return;
		}

		$this->update_confs( $the_matrix );

		$msg = __( 'Changed setting successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );

		// Redirect if changed frontend URL
		if ( ! empty( $_GET[ 'redirect' ] ) ) {
			wp_redirect( $_GET[ 'redirect' ] );
			exit();
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.9
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_SET :
				$instance->_set_conf();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php
/**
 * The avatar cache class
 *
 * @since 		3.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Avatar extends Base {
	protected static $_instance;

	const TYPE_GENERATE = 'generate';

	private $_conf_cache_ttl;
	private $_tb;

	private $_avatar_realtime_gen_dict = array();
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  1.4
	 * @access protected
	 */
	protected function __construct() {
		if ( ! Conf::val( Base::O_DISCUSS_AVATAR_CACHE ) ) {
			return;
		}

		Debug2::debug2( '[Avatar] init' );

		$this->_tb = Data::get_instance()->tb( 'avatar' );

		$this->_conf_cache_ttl = Conf::val( Base::O_DISCUSS_AVATAR_CACHE_TTL );

		add_filter( 'get_avatar_url', array( $this, 'crawl_avatar' ) );

		$this->_summary = self::get_summary();
	}

	/**
	 * Check if need db table or not
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function need_db() {
		if ( Conf::val( Base::O_DISCUSS_AVATAR_CACHE ) ) {
			return true;
		}

		return false;
	}
	/**
	 * Get gravatar URL from DB and regenarate
	 *
	 * @since  3.0
	 * @access public
	 */
	public function serve_satic( $md5 ) {
		global $wpdb;

		Debug2::debug( '[Avatar] is avatar request' );

		if ( strlen( $md5 ) !== 32 ) {
			Debug2::debug( '[Avatar] wrong md5 ' . $md5 );
			return;
		}

		$q = "SELECT url FROM `$this->_tb` WHERE md5=%s";
		$url = $wpdb->get_var( $wpdb->prepare( $q, $md5 ) );

		if ( ! $url ) {
			Debug2::debug( '[Avatar] no matched url for md5 ' . $md5 );
			return;
		}

		$url = $this->_generate( $url );

		wp_redirect( $url );
		exit;
	}

	/**
	 * Localize gravatar
	 *
	 * @since  3.0
	 * @access public
	 */
	public function crawl_avatar( $url ) {
		if ( ! $url ) {
			return $url;
		}

		// Check if its already in dict or not
		if ( ! empty( $this->_avatar_realtime_gen_dict[ $url ] ) ) {
			Debug2::debug2( '[Avatar] already in dict [url] ' . $url );

			return $this->_avatar_realtime_gen_dict[ $url ];
		}

		$realpath = $this->_realpath( $url );
		if ( file_exists( $realpath ) && time() - filemtime( $realpath ) <= $this->_conf_cache_ttl ) {
			Debug2::debug2( '[Avatar] cache file exists [url] ' . $url );
			return $this->_rewrite( $url );
		}

		if ( ! strpos( $url, 'gravatar.com' ) ) {
			return $url;
		}

		// Send request
		if ( ! empty( $this->_summary[ 'curr_request' ] ) && time() - $this->_summary[ 'curr_request' ] < 300 ) {
			Debug2::debug2( '[Avatar] Bypass generating due to interval limit [url] ' . $url );
			return $url;
		}

		// Generate immediately
		$this->_avatar_realtime_gen_dict[ $url ] = $this->_generate( $url );

		return $this->_avatar_realtime_gen_dict[ $url ];
	}

	/**
	 * Check if there is a cache folder
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function has_cache() {
		return is_dir( LITESPEED_STATIC_DIR . '/avatar' );
	}

	/**
	 * make cache folder
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _mkdir() {
		mkdir( LITESPEED_STATIC_DIR . '/avatar', 0755, true );
	}

	/**
	 * Read last time generated info
	 *
	 * @since  3.0
	 * @access public
	 */
	public function queue_count() {
		global $wpdb;

		// If var not exists, mean table not exists // todo: not true
		if ( ! $this->_tb ) {
			return false;
		}

		$q = "SELECT COUNT(*) FROM `$this->_tb` WHERE dateline<" . ( time() - $this->_conf_cache_ttl );
		return $wpdb->get_var( $q );
	}

	/**
	 * Get the final URL of local avatar
	 *
	 * Check from db also
	 *
	 * @since  3.0
	 */
	private function _rewrite( $url ) {
		return LITESPEED_STATIC_URL . '/avatar/' . md5( $url ) . '.jpg';
	}

	/**
	 * Generate realpath of the cache file
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _realpath( $url ) {
		return LITESPEED_STATIC_DIR . '/avatar/' . md5( $url ) . '.jpg';
	}

	/**
	 * Delete file-based cache folder
	 *
	 * @since  3.0
	 * @access public
	 */
	public function rm_cache_folder() {
		if ( file_exists( LITESPEED_STATIC_DIR . '/avatar' ) ) {
			File::rrmdir( LITESPEED_STATIC_DIR . '/avatar' );
		}

		// Clear avatar summary
		self::save_summary( array() );

		Debug2::debug2( '[Avatar] Cleared avatar queue' );
	}

	/**
	 * Cron generation
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function cron( $force = false ) {
		global $wpdb;

		$_instance = self::get_instance();
		if ( ! $_instance->queue_count() ) {
			Debug2::debug( '[Avatar] no queue' );
			return;
		}

		// For cron, need to check request interval too
		if ( ! $force ) {
			if ( ! empty( $_instance->_summary[ 'curr_request' ] ) && time() - $_instance->_summary[ 'curr_request' ] < 300 ) {
				Debug2::debug( '[Avatar] curr_request too close' );
				return;
			}
		}

		$q = "SELECT url FROM `$_instance->_tb` WHERE dateline < %d ORDER BY id DESC LIMIT %d";
		$q = $wpdb->prepare( $q, array( time() - $_instance->_conf_cache_ttl, apply_filters( 'litespeed_avatar_limit', 30 ) ) );

		$list = $wpdb->get_results( $q );
		Debug2::debug( '[Avatar] cron job [count] ' . count( $list ) );

		foreach ( $list as $v ) {
			Debug2::debug( '[Avatar] cron job [url] ' . $v->url );

			$_instance->_generate( $v->url );
		}
	}

	/**
	 * Remote generator
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _generate( $url ) {
		global $wpdb;

		// Record the data

		$file = $this->_realpath( $url );

		// Update request status
		$this->_summary[ 'curr_request' ] = time();
		self::save_summary();

		// Generate
		if ( ! self::has_cache() ) {
			$this->_mkdir();
		}
		$response = wp_remote_get( $url, array( 'timeout' => 180, 'stream' => true, 'filename' => $file ) );

		Debug2::debug( '[Avatar] _generate [url] ' . $url );

		// Parse response data
		if ( is_wp_error( $response ) ) {
			$error_message = $response->get_error_message();
			file_exists( $file ) && unlink( $file );
			Debug2::debug( '[Avatar] failed to get: ' . $error_message );
			return $url;
		}

		// Save summary data
		$this->_summary[ 'last_spent' ] = time() - $this->_summary[ 'curr_request' ];
		$this->_summary[ 'last_request' ] = $this->_summary[ 'curr_request' ];
		$this->_summary[ 'curr_request' ] = 0;
		self::save_summary();

		// Update DB
		$md5 = md5( $url );
		$q = "UPDATE `$this->_tb` SET dateline=%d WHERE md5=%s";
		$existed = $wpdb->query( $wpdb->prepare( $q, array( time(), $md5 ) ) );
		if ( ! $existed ) {
			$q = "INSERT INTO `$this->_tb` SET url=%s, md5=%s, dateline=%d";
			$wpdb->query( $wpdb->prepare( $q, array( $url, $md5, time() ) ) );
		}

		Debug2::debug( '[Avatar] saved avatar ' . $file );

		return $this->_rewrite( $url );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_GENERATE :
				self::cron( true );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}<?php
/**
 * The PlaceHolder class
 *
 * @since 		3.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Placeholder extends Base {
	protected static $_instance;

	const TYPE_GENERATE = 'generate';
	const TYPE_CLEAR_Q = 'clear_q';

	private $_conf_placeholder_resp;
	private $_conf_placeholder_resp_svg;
	private $_conf_lqip;
	private $_conf_lqip_qual;
	private $_conf_lqip_min_w;
	private $_conf_lqip_min_h;
	private $_conf_placeholder_resp_color;
	private $_conf_placeholder_resp_async;
	private $_placeholder_resp_dict = array();
	private $_ph_queue = array();

	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 * @access protected
	 */
	protected function __construct() {
		$this->_conf_placeholder_resp = Conf::val( Base::O_MEDIA_PLACEHOLDER_RESP );
		$this->_conf_placeholder_resp_svg 	= Conf::val( Base::O_MEDIA_PLACEHOLDER_RESP_SVG );
		$this->_conf_lqip 		= Conf::val( Base::O_MEDIA_LQIP );
		$this->_conf_lqip_qual	= Conf::val( Base::O_MEDIA_LQIP_QUAL );
		$this->_conf_lqip_min_w	= Conf::val( Base::O_MEDIA_LQIP_MIN_W );
		$this->_conf_lqip_min_h	= Conf::val( Base::O_MEDIA_LQIP_MIN_H );
		$this->_conf_placeholder_resp_async = Conf::val( Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC );
		$this->_conf_placeholder_resp_color = Conf::val( Base::O_MEDIA_PLACEHOLDER_RESP_COLOR );
		$this->_conf_ph_default = Conf::val( Base::O_MEDIA_LAZY_PLACEHOLDER ) ?: LITESPEED_PLACEHOLDER;

		$this->_summary = self::get_summary();
	}

	/**
	 * Init Placeholder
	 */
	public function init() {
		Debug2::debug2( '[LQIP] init' );

		add_action( 'litspeed_after_admin_init', array( $this, 'after_admin_init' ) );
	}

	/**
	 * Display column in Media
	 *
	 * @since  3.0
	 * @access public
	 */
	public function after_admin_init() {
		if ( $this->_conf_lqip ) {
			add_filter( 'manage_media_columns', array( $this, 'media_row_title' ) );
			add_filter( 'manage_media_custom_column', array( $this, 'media_row_actions' ), 10, 2 );
			add_action( 'litespeed_media_row_lqip', array( $this, 'media_row_con' ) );
		}
	}

	/**
	 * Media Admin Menu -> LQIP col
	 *
	 * @since 3.0
	 * @access public
	 */
	public function media_row_title( $posts_columns ) {
		$posts_columns[ 'lqip' ] = __( 'LQIP', 'litespeed-cache' );

		return $posts_columns;
	}

	/**
	 * Media Admin Menu -> LQIP Column
	 *
	 * @since 3.0
	 * @access public
	 */
	public function media_row_actions( $column_name, $post_id ) {
		if ( $column_name !== 'lqip' ) {
			return;
		}

		do_action( 'litespeed_media_row_lqip', $post_id );

	}


	/**
	 * Display LQIP column
	 *
	 * @since  3.0
	 * @access public
	 */
	public function media_row_con( $post_id ) {
		$meta_value = wp_get_attachment_metadata( $post_id );

		if ( empty( $meta_value[ 'file' ] ) ) {
			return;
		}

		$total_files = 0;

		// List all sizes
		$all_sizes = array( $meta_value[ 'file' ] );
		$size_path = pathinfo( $meta_value[ 'file' ], PATHINFO_DIRNAME ) . '/';
		foreach ( $meta_value[ 'sizes' ] as $v ) {
			$all_sizes[] = $size_path . $v[ 'file' ];
		}

		foreach ( $all_sizes as $short_path ) {
			$lqip_folder = LITESPEED_STATIC_DIR . '/lqip/' . $short_path;

			if ( is_dir( $lqip_folder ) ) {
				Debug2::debug( '[LQIP] Found folder: ' . $short_path );



				// List all files
				foreach ( scandir( $lqip_folder ) as $v ) {
					if ( $v == '.' || $v == '..' ) {
						continue;
					}

					if ( $total_files == 0 ) {
						echo '<div class="litespeed-media-lqip"><img src="' . File::read( $lqip_folder . '/' . $v ) . '" alt="' . sprintf( __( 'LQIP image preview for size %s', 'litespeed-cache' ), $v ) .'"></div>';
					}

					echo '<div class="litespeed-media-size"><a href="' . File::read( $lqip_folder . '/' . $v ) . '" target="_blank">' . $v . '</a></div>';

					$total_files++;
				}

			}
		}

		if ( $total_files == 0 ) {
			echo '—';
		}

	}

	/**
	 * Replace image with placeholder
	 *
	 * @since  3.0
	 * @access public
	 */
	public function replace( $html, $src, $size ) {
		// Check if need to enable responsive placeholder or not
		$this_placeholder = $this->_placeholder( $src, $size ) ?: $this->_conf_ph_default;

		$additional_attr = '';
		if ( $this->_conf_lqip && $this_placeholder != $this->_conf_ph_default ) {
			Debug2::debug2( '[LQIP] Use resp LQIP [size] ' . $size );
			$additional_attr = ' data-placeholder-resp="' . $size . '"';
		}

		$snippet = Conf::val( Base::O_OPTM_NOSCRIPT_RM ) ? '' : '<noscript>' . $html . '</noscript>';
		$html = str_replace( array( ' src=', ' srcset=', ' sizes=' ), array( ' data-src=', ' data-srcset=', ' data-sizes=' ), $html );
		$html = str_replace( '<img ', '<img data-lazyloaded="1"' . $additional_attr . ' src="' . $this_placeholder . '" ', $html );
		$snippet = $html . $snippet;

		return $snippet;
	}

	/**
	 * Generate responsive placeholder
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _placeholder( $src, $size ) {
		// Low Quality Image Placeholders
		if ( ! $size ) {
			Debug2::debug2( '[LQIP] no size ' . $src );
			return false;
		}

		if ( ! $this->_conf_placeholder_resp ) {
			return false;
		}

		// If use local generator
		if ( ! $this->_conf_lqip || ! $this->_lqip_size_check( $size ) ) {
			return $this->_generate_placeholder_locally( $size );
		}

		Debug2::debug2( '[LQIP] Resp LQIP process [src] ' . $src . ' [size] ' . $size );

		$arr_key = $size . ' ' . $src;

		// Check if its already in dict or not
		if ( ! empty( $this->_placeholder_resp_dict[ $arr_key ] ) ) {
			Debug2::debug2( '[LQIP] already in dict' );

			return $this->_placeholder_resp_dict[ $arr_key ];
		}

		// Need to generate the responsive placeholder
		$placeholder_realpath = $this->_placeholder_realpath( $src, $size ); // todo: give offload API
		if ( file_exists( $placeholder_realpath ) ) {
			Debug2::debug2( '[LQIP] file exists' );
			$this->_placeholder_resp_dict[ $arr_key ] = File::read( $placeholder_realpath );

			return $this->_placeholder_resp_dict[ $arr_key ];
		}

		// Add to cron queue

		// Prevent repeated requests
		if ( in_array( $arr_key, $this->_ph_queue ) ) {
			Debug2::debug2( '[LQIP] file bypass generating due to in queue' );
			return $this->_generate_placeholder_locally( $size );
		}

		if ( $hit = Utility::str_hit_array( $src, Conf::val( Base::O_MEDIA_LQIP_EXC ) ) ) {
			Debug2::debug2( '[LQIP] file bypass generating due to exclude setting [hit] ' . $hit );
			return $this->_generate_placeholder_locally( $size );
		}

		$this->_ph_queue[] = $arr_key;

		// Send request to generate placeholder
		if ( ! $this->_conf_placeholder_resp_async ) {
			// If requested recently, bypass
			if ( $this->_summary && ! empty( $this->_summary[ 'curr_request' ] ) && time() - $this->_summary[ 'curr_request' ] < 300 ) {
				Debug2::debug2( '[LQIP] file bypass generating due to interval limit' );
				return false;
			}
			// Generate immediately
			$this->_placeholder_resp_dict[ $arr_key ] = $this->_generate_placeholder( $arr_key );

			return $this->_placeholder_resp_dict[ $arr_key ];
		}

		// Prepare default svg placeholder as tmp placeholder
		$tmp_placeholder = $this->_generate_placeholder_locally( $size );

		// Store it to prepare for cron
		if ( empty( $this->_summary[ 'queue' ] ) ) {
			$this->_summary[ 'queue' ] = array();
		}
		if ( in_array( $arr_key, $this->_summary[ 'queue' ] ) ) {
			Debug2::debug2( '[LQIP] already in queue' );

			return $tmp_placeholder;
		}

		if ( count( $this->_summary[ 'queue' ] ) > 100 ) {
			Debug2::debug2( '[LQIP] queue is full' );

			return $tmp_placeholder;
		}

		$this->_summary[ 'queue' ][] = $arr_key;

		Debug2::debug( '[LQIP] Added placeholder queue' );

		self::save_summary();
		return $tmp_placeholder;

	}

	/**
	 * Check if there is a LQIP cache folder
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function has_lqip_cache() {
		return is_dir( LITESPEED_STATIC_DIR . '/lqip' );
	}

	/**
	 * Generate realpath of placeholder file
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _placeholder_realpath( $src, $size ) {
		// Use LQIP Cloud generator, each image placeholder will be separately stored

		// Compatibility with WebP
		if ( substr( $src, -5 ) === '.webp' ) {
			$src = substr( $src, 0, -5 );
		}

		// External images will use cache folder directly
		$domain = parse_url( $src, PHP_URL_HOST );
		if ( $domain && ! Utility::internal( $domain ) ) { // todo: need to improve `util:internal()` to include `CDN::internal()`
			$md5 = md5( $src );

			return LITESPEED_STATIC_DIR . '/lqip/remote/' . substr( $md5, 0, 1 ) . '/' . substr( $md5, 1, 1 ) . '/' . $md5 . '.' . $size;
		}

		// Drop domain
		$short_path = Utility::att_short_path( $src );

		return LITESPEED_STATIC_DIR . '/lqip/' . $short_path . '/' . $size;

	}

	/**
	 * Delete file-based cache folder for LQIP
	 *
	 * @since  3.0
	 * @access public
	 */
	public function rm_lqip_cache_folder() {
		if ( self::has_lqip_cache() ) {
			File::rrmdir( LITESPEED_STATIC_DIR . '/lqip' );
		}

		// Clear LQIP in queue too
		self::save_summary( array() );

		Debug2::debug( '[LQIP] Cleared LQIP queue' );
	}

	/**
	 * Cron placeholder generation
	 *
	 * @since  2.5.1
	 * @access public
	 */
	public static function cron( $continue = false ) {
		$_instance = self::get_instance();
		if ( empty( $_instance->_summary[ 'queue' ] ) ) {
			return;
		}

		// For cron, need to check request interval too
		if ( ! $continue ) {
			if ( ! empty( $_instance->_summary[ 'curr_request' ] ) && time() - $_instance->_summary[ 'curr_request' ] < 300 ) {
				Debug2::debug( '[LQIP] Last request not done' );
				return;
			}
		}

		foreach ( $_instance->_summary[ 'queue' ] as $v ) {
			Debug2::debug( '[LQIP] cron job [size] ' . $v );

			$_instance->_generate_placeholder( $v );

			// only request first one
			if ( ! $continue ) {
				return;
			}
		}
	}

	/**
	 * Generate placeholder locally
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _generate_placeholder_locally( $size ) {
		Debug2::debug2( '[LQIP] _generate_placeholder local [size] ' . $size );

		$size = explode( 'x', $size );

		$svg = str_replace( array( '{width}', '{height}', '{color}' ), array( $size[ 0 ], $size[ 1 ], $this->_conf_placeholder_resp_color ), $this->_conf_placeholder_resp_svg );

		return 'data:image/svg+xml;base64,' . base64_encode( $svg );
	}

	/**
	 * Send to LiteSpeed API to generate placeholder
	 *
	 * @since  2.5.1
	 * @access private
	 */
	private function _generate_placeholder( $raw_size_and_src ) {
		// Parse containing size and src info
		$size_and_src = explode( ' ', $raw_size_and_src, 2 );
		$size = $size_and_src[ 0 ];

		if ( empty( $size_and_src[ 1 ] ) ) {
			$this->_popup_and_save( $raw_size_and_src );
			Debug2::debug( '[LQIP] ❌ No src [raw] ' . $raw_size_and_src );
			return $this->_generate_placeholder_locally( $size );
		}

		$src = $size_and_src[ 1 ];

		$file = $this->_placeholder_realpath( $src, $size );

		// Local generate SVG to serve ( Repeatly doing this here to remove stored cron queue in case the setting _conf_lqip is changed )
		if ( ! $this->_conf_lqip || ! $this->_lqip_size_check( $size ) ) {
			$data = $this->_generate_placeholder_locally( $size );
		}
		else {
			$allowance = Cloud::get_instance()->allowance( Cloud::SVC_LQIP );
			if ( ! $allowance ) {
				Debug2::debug( '[LQIP] ❌ No credit' );
				Admin_Display::error( Error::msg( 'lack_of_quota' ) );
				return $this->_generate_placeholder_locally( $size );
			}

			// Generate LQIP
			list( $width, $height ) = explode( 'x', $size );
			$req_data = array(
				'width'		=> $width,
				'height'	=> $height,
				'url'		=> substr( $src, -5 ) === '.webp' ? substr( $src, 0, -5 ) : $src,
				'quality'	=> $this->_conf_lqip_qual,
			);

			// CHeck if the image is 404 first
			if ( File::is_404( $req_data[ 'url' ] ) ) {
				$this->_popup_and_save( $raw_size_and_src );
				$this->_append_exc( $src );
				Debug2::debug( '[LQIP] 404 before request [src] ' . $req_data[ 'url' ] );
				return $this->_generate_placeholder_locally( $size );
			}

			// Update request status
			$this->_summary[ 'curr_request' ] = time();
			self::save_summary();

			$json = Cloud::post( Cloud::SVC_LQIP, $req_data, 120 );
			if ( ! is_array( $json ) ) {
				return $this->_generate_placeholder_locally( $size );
			}

			if ( empty( $json[ 'lqip' ] ) || strpos( $json[ 'lqip' ], 'data:image/svg+xml' ) !== 0 ) {
				// image error, pop up the current queue
				$this->_popup_and_save( $raw_size_and_src );
				$this->_append_exc( $src );
				Debug2::debug( '[LQIP] wrong response format', $json );

				return $this->_generate_placeholder_locally( $size );
			}

			$data = $json[ 'lqip' ];

			Debug2::debug( '[LQIP] _generate_placeholder LQIP' );
		}

		// Write to file
		File::save( $file, $data, true );

		// Save summary data
		$this->_summary[ 'last_spent' ] = time() - $this->_summary[ 'curr_request' ];
		$this->_summary[ 'last_request' ] = $this->_summary[ 'curr_request' ];
		$this->_summary[ 'curr_request' ] = 0;
		$this->_popup_and_save( $raw_size_and_src );

		Debug2::debug( '[LQIP] saved LQIP ' . $file );

		return $data;
	}

	/**
	 * Check if the size is valid to send LQIP request or not
	 *
	 * @since  3.0
	 */
	private function _lqip_size_check( $size ) {
		$size = explode( 'x', $size );
		if ( $size[ 0 ] >= $this->_conf_lqip_min_w || $size[ 1 ] >= $this->_conf_lqip_min_h ) {
			return true;
		}

		return false;
	}

	/**
	 * Add to LQIP exclude list
	 *
	 * @since  3.4
	 */
	private function _append_exc( $src ) {
		$val = Conf::val( Base::O_MEDIA_LQIP_EXC );
		$val[] = $src;
		Conf::get_instance()->update( Base::O_MEDIA_LQIP_EXC, $val );
		Debug2::debug( '[LQIP] Appended to LQIP Excludes [URL] ' . $src );

		if ( ! empty( $this->_summary[ 'queue' ] ) ) {
			$changed = false;
			foreach ( $this->_summary[ 'queue' ] as $k => $raw_size_and_src ) {
				$size_and_src = explode( ' ', $raw_size_and_src, 2 );
				if ( empty( $size_and_src[ 1 ] ) ) {
					continue;
				}

				if ( $size_and_src[ 1 ] == $src ) {
					unset( $this->_summary[ 'queue' ][ $k ] );
					$changed = true;
				}
			}

			if ( $changed ) {
				self::save_summary();
			}
		}
	}

	/**
	 * Pop up the current request and save
	 *
	 * @since  3.0
	 */
	private function _popup_and_save( $raw_size_and_src ) {
		if ( ! empty( $this->_summary[ 'queue' ] ) && in_array( $raw_size_and_src, $this->_summary[ 'queue' ] ) ) {
			unset( $this->_summary[ 'queue' ][ array_search( $raw_size_and_src, $this->_summary[ 'queue' ] ) ] );
		}

		self::save_summary();
	}

	/**
	 * Clear all waiting queues
	 *
	 * @since  3.4
	 */
	public function clear_q() {
		if ( empty( $this->_summary[ 'queue' ] ) ) {
			return;
		}

		$this->_summary[ 'queue' ] = array();
		self::save_summary();

		$msg = __( 'Queue cleared successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.5.1
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_GENERATE :
				self::cron( true );
				break;

			case self::TYPE_CLEAR_Q :
				$instance->clear_q();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}<?php
/**
 * The localization class.
 *
 * @since      	3.3
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Localization extends Base {
	protected static $_instance;


	/**
	 * Localize Resources
	 *
	 * @since  3.3
	 */
	public function serve_static( $uri ) {
		$url = 'https://' . $uri;

		if ( ! Conf::val( Base::O_OPTM_LOCALIZE ) ) {
			// wp_redirect( $url );
			exit( 'Not supported' );
		}

		if ( substr( $url, -3 ) !== '.js' ) {
			// wp_redirect( $url );
			exit( 'Not supported' );
		}

		$match = false;
		$domains = Conf::val( Base::O_OPTM_LOCALIZE_DOMAINS );
		foreach ( $domains as $v ) {
			if ( ! $v || strpos( $v, '#' ) === 0 ) {
				continue;
			}

			$type = 'js';
			$domain = $v;
			// Try to parse space splitted value
			if ( strpos( $v, ' ' ) ) {
				$v = explode( ' ', $v );
				if ( ! empty( $v[ 1 ] ) ) {
					$type = strtolower( $v[ 0 ] );
					$domain = $v[ 1 ];
				}
			}

			if ( strpos( $domain, 'https://' ) !== 0 ) {
				continue;
			}

			if ( $type != 'js' ) {
				continue;
			}

			if ( strpos( $url, $domain ) !== 0 ) {
				continue;
			}

			$match = true;
			break;
		}

		if ( ! $match ) {
			// wp_redirect( $url );
			exit( 'Not supported' );
		}

		Control::set_no_vary();
		Control::set_public_forced( 'Localized Resources' );
		Tag::add( Tag::TYPE_LOCALRES );

		header( 'Content-Type: application/javascript' );

		$res = wp_remote_get( $url );
		$content = wp_remote_retrieve_body( $res );

		if ( ! $content ) {
			$content = '/* Failed to load ' . $url . ' */';
		}

		echo $content;

		exit;
	}



	/**
	 * Localize JS/Fonts
	 *
	 * @since 3.3
	 * @access public
	 */
	public function finalize( $content ) {
		if ( ! Conf::val( Base::O_OPTM_LOCALIZE ) ) {
			return $content;
		}

		$domains = Conf::val( Base::O_OPTM_LOCALIZE_DOMAINS );
		if ( ! $domains ) {
			return $content;
		}

		foreach ( $domains as $v ) {
			if ( ! $v || strpos( $v, '#' ) === 0 ) {
				continue;
			}

			$type = 'js';
			$domain = $v;
			// Try to parse space splitted value
			if ( strpos( $v, ' ' ) ) {
				$v = explode( ' ', $v );
				if ( ! empty( $v[ 1 ] ) ) {
					$type = strtolower( $v[ 0 ] );
					$domain = $v[ 1 ];
				}
			}

			if ( strpos( $domain, 'https://' ) !== 0 ) {
				continue;
			}

			if ( $type != 'js' ) {
				continue;
			}

			$content = str_replace( $domain, LITESPEED_STATIC_URL . '/localres/' . substr( $domain, 8 ), $content );
		}

		return $content;
	}

}<?php
/**
 * The plugin API class.
 *
 * @since      	1.1.3
 * @since  		1.4 Moved into /inc
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class API extends Base {
	const VERSION =	Core::VER;

	const TYPE_FEED 					= Tag::TYPE_FEED ;
	const TYPE_FRONTPAGE 				= Tag::TYPE_FRONTPAGE ;
	const TYPE_HOME 					= Tag::TYPE_HOME ;
	const TYPE_PAGES 					= Tag::TYPE_PAGES ;
	const TYPE_PAGES_WITH_RECENT_POSTS 	= Tag::TYPE_PAGES_WITH_RECENT_POSTS ;
	const TYPE_HTTP 					= Tag::TYPE_HTTP ;
	const TYPE_ARCHIVE_POSTTYPE 		= Tag::TYPE_ARCHIVE_POSTTYPE ;
	const TYPE_ARCHIVE_TERM 			= Tag::TYPE_ARCHIVE_TERM ;
	const TYPE_AUTHOR 					= Tag::TYPE_AUTHOR ;
	const TYPE_ARCHIVE_DATE 			= Tag::TYPE_ARCHIVE_DATE ;
	const TYPE_BLOG 					= Tag::TYPE_BLOG ;
	const TYPE_LOGIN 					= Tag::TYPE_LOGIN ;
	const TYPE_URL 						= Tag::TYPE_URL ;

	const TYPE_ESI 					= Tag::TYPE_ESI ;

	const PARAM_NAME =				ESI::PARAM_NAME ;
	const WIDGET_O_ESIENABLE =	ESI::WIDGET_O_ESIENABLE ;
	const WIDGET_O_TTL =			ESI::WIDGET_O_TTL ;

	protected static $_instance;

	/**
	 * Instance
	 *
	 * @since  3.0
	 * @access protected
	 */
	protected function __construct() {
	}

	/**
	 * Define hooks to be used in other plugins.
	 *
	 * The benefit to use hooks other than functions is no need to detech if LSCWP enabled and function existed or not anymore
	 *
	 * @since  3.0
	 */
	public function init() {
		/**
		 * Init
		 */
		// Action `litespeed_init` // @previous API::hook_init( $hook )

		/**
		 * Conf
		 */
		add_filter( 'litespeed_conf', __NAMESPACE__ . '\Conf::val' ); // @previous API::config($id)
		// Action `litespeed_conf_append` // @previous API::conf_append( $name, $default )
		add_action( 'litespeed_conf_multi_switch', __NAMESPACE__ . '\Base::set_multi_switch', 10, 2 );
		// Action ``litespeed_conf_force` // @previous API::force_option( $k, $v )

		/**
		 * Cache Control Hooks
		 */
		// Action `litespeed_control_finalize` // @previous API::hook_control($tags) && action `litespeed_api_control`
		add_action( 'litespeed_control_set_private', __NAMESPACE__ . '\Control::set_private' ); // @previous  API::set_cache_private()
		add_action( 'litespeed_control_set_nocache', __NAMESPACE__ . '\Control::set_nocache' ); // @previous  API::set_nocache( $reason = false )
		add_action( 'litespeed_control_set_cacheable', __NAMESPACE__ . '\Control::set_cacheable' ); // Might needed if not call hook `wp` // @previous API::set_cacheable( $reason )
		add_action( 'litespeed_control_force_cacheable', __NAMESPACE__ . '\Control::force_cacheable' ); // Set cache status to force cacheable ( Will ignore most kinds of non-cacheable conditions ) // @previous API::set_force_cacheable( $reason )
		add_action( 'litespeed_control_force_public', __NAMESPACE__ . '\Control::set_public_forced' ); // Set cache to force public cache if cacheable ( Will ignore most kinds of non-cacheable conditions ) // @previous API::set_force_public( $reason )
		add_filter( 'litespeed_control_cacheable', __NAMESPACE__ . '\Control::is_cacheable', 3 ); // Note: Read-Only. Directly append to this filter won't work. Call actions above to set cacheable or not // @previous API::not_cacheable()
		add_action( 'litespeed_control_set_ttl', __NAMESPACE__ . '\Control::set_custom_ttl', 10, 2 ); // @previous API::set_ttl( $val )
		add_filter( 'litespeed_control_ttl', __NAMESPACE__ . '\Control::get_ttl', 3 ); // @previous API::get_ttl()

		/**
		 * Tag Hooks
		 */
		// Action `litespeed_tag_finalize` // @previous API::hook_tag( $hook )
		add_action( 'litespeed_tag_add', __NAMESPACE__ . '\Tag::add' ); // @previous API::tag_add( $tag )
		add_action( 'litespeed_tag_add_post', __NAMESPACE__ . '\Tag::add_post' );
		add_action( 'litespeed_tag_add_widget', __NAMESPACE__ . '\Tag::add_widget' );
		add_action( 'litespeed_tag_add_private', __NAMESPACE__ . '\Tag::add_private' ); // @previous API::tag_add_private( $tags )
		add_action( 'litespeed_tag_add_private_esi', __NAMESPACE__ . '\Tag::add_private_esi' );

		/**
		 * Purge Hooks
		 */
		// Action `litespeed_purge_finalize` // @previous API::hook_purge($tags)
		add_action( 'litespeed_purge', __NAMESPACE__ . '\Purge::add' ); // @previous API::purge($tags)
		add_action( 'litespeed_purge_all', __NAMESPACE__ . '\Purge::purge_all' );
		add_action( 'litespeed_purge_post', __NAMESPACE__ . '\Purge::purge_post' ); // @previous API::purge_post( $pid )
		add_action( 'litespeed_purge_posttype', __NAMESPACE__ . '\Purge::purge_posttype' );
		add_action( 'litespeed_purge_url', __NAMESPACE__ . '\Purge::purge_url' );
		add_action( 'litespeed_purge_widget', __NAMESPACE__ . '\Purge::purge_widget' );
		add_action( 'litespeed_purge_esi', __NAMESPACE__ . '\Purge::purge_esi' );
		add_action( 'litespeed_purge_private', __NAMESPACE__ . '\Purge::add_private' ); // @previous API::purge_private( $tags )
		add_action( 'litespeed_purge_private_esi', __NAMESPACE__ . '\Purge::add_private_esi' );
		add_action( 'litespeed_purge_private_all', __NAMESPACE__ . '\Purge::add_private_all' ); // @previous API::purge_private_all()
		// Action `litespeed_api_purge_post` // Triggered when purge a post // @previous API::hook_purge_post($hook)
		// Action `litespeed_purged_all` // Triggered after purged all.
		add_action( 'litespeed_purge_all_object', __NAMESPACE__ . '\Purge::purge_all_object' );

		/**
		 * ESI
		 */
		// Action `litespeed_nonce` // @previous API::nonce_action( $action ) & API::nonce( $action = -1, $defence_for_html_filter = true )
		add_filter( 'litespeed_esi_status', __NAMESPACE__ . '\Router::esi_enabled' ); // Get ESI enable status // @previous API::esi_enabled()
		add_filter( 'litespeed_esi_url', __NAMESPACE__ . '\ESI::sub_esi_block', 10, 8 ); // Generate ESI block url // @previous API::esi_url( $block_id, $wrapper, $params = array(), $control = 'private,no-vary', $silence = false, $preserved = false, $svar = false, $inline_val = false )
		// Filter `litespeed_widget_default_options` // Hook widget default settings value. Currently used in Woo 3rd // @previous API::hook_widget_default_options( $hook )
		// Filter `litespeed_esi_params` // @previous API::hook_esi_param( $hook )
		// Action `litespeed_tpl_normal` // @previous API::hook_tpl_not_esi($hook) && Action `litespeed_is_not_esi_template`
		// Action `litespeed_esi_load-$block` // @usage add_action( 'litespeed_esi_load-' . $block, $hook ) // @previous API::hook_tpl_esi($block, $hook)
		add_action( 'litespeed_esi_combine', __NAMESPACE__ . '\ESI::combine' );

		/**
		 * Vary
		 *
		 * To modify default vary, There are two ways: Action `litespeed_vary_append` or Filter `litespeed_vary`
		 */
		add_action( 'litespeed_vary_ajax_force', __NAMESPACE__ . '\Vary::can_ajax_vary' ); // API::force_vary() -> Action `litespeed_vary_ajax_force` // Force finalize vary even if its in an AJAX call
		add_action( 'litespeed_vary_append', __NAMESPACE__ . '\Vary::append', 10, 2 ); // API::vary( $k, $v, $default = null ) -> Action `litespeed_vary_append // Alter default vary cookie value // Default vary cookie is an array before finalization, after that it will be combined to a string and store as default vary cookie name
		// API::hook_vary_finalize( $hook ) -> Filter `litespeed_vary`
		add_action( 'litespeed_vary_no', __NAMESPACE__ . '\Control::set_no_vary' ); // API::set_cache_no_vary() -> Action `litespeed_vary_no` // Set cache status to no vary

		// add_filter( 'litespeed_is_mobile', __NAMESPACE__ . '\Control::is_mobile' ); // API::set_mobile() -> Filter `litespeed_is_mobile`

		/**
		 * Cloud
		 */
		add_filter( 'litespeed_is_from_cloud', __NAMESPACE__ . '\Cloud::is_from_cloud' ); // Check if current request is from QC (usally its to check REST access) // @see https://wordpress.org/support/topic/image-optimization-not-working-3/

		/**
		 * Media
		 */
		add_action( 'litespeed_media_reset', __NAMESPACE__ . '\Media::delete_attachment' ); // Reset one media row

		/**
		 * GUI
		 */
		// API::clean_wrapper_begin( $counter = false ) -> Filter `litespeed_clean_wrapper_begin` // Start a to-be-removed html wrapper
		add_filter( 'litespeed_clean_wrapper_begin', __NAMESPACE__ . '\GUI::clean_wrapper_begin' );
		// API::clean_wrapper_end( $counter = false ) -> Filter `litespeed_clean_wrapper_end` // End a to-be-removed html wrapper
		add_filter( 'litespeed_clean_wrapper_end', __NAMESPACE__ . '\GUI::clean_wrapper_end' );

		/**
		 * Mist
		 */
		add_action( 'litespeed_debug', __NAMESPACE__ . '\Debug2::debug' ); // API::debug()-> Action `litespeed_debug`
		add_action( 'litespeed_debug2', __NAMESPACE__ . '\Debug2::debug2' ); // API::debug2()-> Action `litespeed_debug2`
		add_action( 'litespeed_disable_all', array( $this, '_disable_all' ) ); // API::disable_all( $reason ) -> Action `litespeed_disable_all`

		add_action( 'litspeed_after_admin_init', array( $this, '_after_admin_init' ) );
	}

	/**
	 * API for admin related
	 *
	 * @since  3.0
	 * @access public
	 */
	public function _after_admin_init()
	{
		/**
		 * GUI
		 */
		add_action( 'litespeed_setting_enroll', array( Admin_Display::get_instance(), 'enroll' ), 10, 4 ); // API::enroll( $id ) // Register a field in setting form to save
		add_action( 'litespeed_build_switch', array( Admin_Display::get_instance(), 'build_switch' ) ); // API::build_switch( $id ) // Build a switch div html snippet
		// API::hook_setting_content( $hook, $priority = 10, $args = 1 ) -> Action `litespeed_settings_content`
		// API::hook_setting_tab( $hook, $priority = 10, $args = 1 ) -> Action `litespeed_settings_tab`
	}

	/**
	 * Disable All (Note: Not for direct call, always use Hooks)
	 *
	 * @since 2.9.7.2
	 * @access public
	 */
	public function _disable_all( $reason )
	{
		do_action( 'litespeed_debug', '[API] Disabled_all due to ' . $reason );

		! defined( 'LITESPEED_DISABLE_ALL' ) && define( 'LITESPEED_DISABLE_ALL', true );
	}

	/**
	 * Hook new vary cookies to vary finialization
	 *
	 * @since 2.6
	 * @access public
	 */
	public static function hook_vary_add( $hook )
	{
		add_action( 'litespeed_vary_add', $hook ) ;
	}

	/**
	 * Add a new vary cookie
	 *
	 * @since 1.1.3
	 * @since  2.7.1 Changed to filter hook instead of `Vary::add()`
	 * @access public
	 */
	public static function vary_add( $vary, $priority = 10 )
	{
		add_filter( 'litespeed_vary_cookies', function( $cookies ) use( $vary ) {
			if ( ! is_array( $vary ) ) {
				$vary = array( $vary ) ;
			}
			$cookies = array_merge( $cookies, $vary ) ;
			return $cookies ;
		}, $priority ) ;
	}

	/**
	 * Hook vary cookies to vary finialization
	 *
	 * @since 2.7.1
	 * @access public
	 */
	public static function filter_vary_cookies( $hook, $priority = 10 )
	{
		add_filter( 'litespeed_vary_cookies', $hook, $priority ) ;
	}

	/**
	 * Hook vary appending to vary
	 *
	 * NOTE: This will add vary to rewrite rule
	 *
	 * @since 1.1.3
	 * @since  2.7.1 This didn't work in 2.7- due to used add_action not filter
	 * @access public
	 */
	public static function hook_vary( $hook )
	{
		add_filter( 'litespeed_api_vary', $hook ) ;
	}

	/**
	 * @since 3.0
	 */
	public static function vary_append_commenter()
	{
		Vary::get_instance()->append_commenter() ;
	}

}
<?php
/**
 * The admin-panel specific functionality of the plugin.
 *
 *
 * @since      1.0.0
 * @package    LiteSpeed_Cache
 * @subpackage LiteSpeed_Cache/admin
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Admin extends Instance {
	const PAGE_EDIT_HTACCESS = 'litespeed-edit-htaccess';

	protected static $_instance;
	private $__cfg;// cfg instance
	private $display;

	/**
	 * Initialize the class and set its properties.
	 * Run in hook `after_setup_theme` when is_admin()
	 *
	 * @since    1.0.0
	 */
	protected function __construct() {
		// Define LSCWP_MU_PLUGIN if is mu-plugins
		if ( defined( 'WPMU_PLUGIN_DIR' ) && dirname( LSCWP_DIR ) == WPMU_PLUGIN_DIR ) {
			define( 'LSCWP_MU_PLUGIN', true );
		}

		// Additional litespeed assets on admin display
		// Also register menu
		$this->display = Admin_Display::get_instance();

		$this->__cfg = Conf::get_instance();

		// initialize admin actions
		add_action( 'admin_init', array( $this, 'admin_init' ) );
		// add link to plugin list page
		add_filter( 'plugin_action_links_' . LSCWP_BASENAME, array( $this->display, 'add_plugin_links' ) );

		if ( defined( 'LITESPEED_ON' ) ) {
			// register purge_all actions
			$purge_all_events = Conf::val( Base::O_PURGE_HOOK_ALL );

			// purge all on upgrade
			if ( Conf::val( Base::O_PURGE_ON_UPGRADE ) ) {
				$purge_all_events[] = 'upgrader_process_complete';
				$purge_all_events[] = 'admin_action_do-plugin-upgrade';
			}
			foreach ( $purge_all_events as $event ) {
				// Don't allow hook to update_option bcos purge_all will cause infinite loop of update_option
				if ( in_array( $event, array( 'update_option' ) ) ) {
					continue;
				}
				add_action( $event, __NAMESPACE__ . '\Purge::purge_all' );
			}
			// add_filter( 'upgrader_pre_download', 'Purge::filter_with_purge_all' );
		}
	}

	/**
	 * Callback that initializes the admin options for LiteSpeed Cache.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function admin_init() {
		Control::set_nocache( 'Admin page' );

		$this->_proceed_admin_action();

		// Terminate if user doesn't have the access to settings
		if( is_network_admin() ) {
			$capability = 'manage_network_options';
		}
		else {
			$capability = 'manage_options';
		}
		if ( ! current_user_can($capability) ) {
			return;
		}

		// Save setting from admin settings page
		// NOTE: cli will call `validate_plugin_settings` manually. Cron activation doesn't need to validate

		// Add privacy policy
		// @since 2.2.6
		if ( function_exists( 'wp_add_privacy_policy_content' ) ) {
			wp_add_privacy_policy_content( Core::PLUGIN_NAME, Doc::privacy_policy() );
		}

		do_action( 'litspeed_after_admin_init' );

		if ( Router::esi_enabled() ) {
			add_action( 'in_widget_form', array( $this->display, 'show_widget_edit' ), 100, 3 );
			add_filter( 'widget_update_callback', __NAMESPACE__ . '\Admin_Settings::validate_widget_save', 10, 4 );
		}
	}

	/**
	 * Run litespeed admin actions
	 *
	 * @since 1.1.0
	 */
	private function _proceed_admin_action() {
		// handle actions
		switch ( Router::get_action() ) {

			// Save htaccess
			case Router::ACTION_SAVE_HTACCESS:
				Htaccess::get_instance()->htaccess_editor_save();
				break;

			case Router::ACTION_SAVE_SETTINGS:
				Admin_Settings::get_instance()->save( $_POST );
				break;


			// Save network settings
			case Router::ACTION_SAVE_SETTINGS_NETWORK:
				Admin_Settings::get_instance()->network_save( $_POST );
				break;

			default:
				break;
		}

	}

	/**
	 * Clean up the input string of any extra slashes/spaces.
	 *
	 * @since 1.0.4
	 * @access public
	 * @param string $input The input string to clean.
	 * @return string The cleaned up input.
	 */
	public static function cleanup_text( $input ) {
		if ( is_array( $input ) ) {
			return array_map( __CLASS__ . '::cleanup_text', $input );
		}

		return stripslashes( trim( $input ) );
	}

	/**
	 * After a LSCWP_CTRL action, need to redirect back to the same page
	 * without the nonce and action in the query string.
	 *
	 * @since 1.0.12
	 * @access public
	 * @global string $pagenow
	 */
	public static function redirect( $url = false ) {
		global $pagenow;

		if ( ! empty( $_GET[ '_litespeed_ori' ] ) ) {
			wp_redirect( $_SERVER[ 'HTTP_REFERER' ] );
			exit;
		}

		$qs = '';
		if ( ! $url ) {
			if ( ! empty( $_GET ) ) {
				if ( isset( $_GET[ Router::ACTION ] ) ) {
					unset( $_GET[ Router::ACTION ] );
				}
				if ( isset( $_GET[ Router::NONCE ] ) ) {
					unset( $_GET[ Router::NONCE ] );
				}
				if ( isset( $_GET[ Router::TYPE ] ) ) {
					unset( $_GET[ Router::TYPE ] );
				}
				if ( isset( $_GET[ 'litespeed_i' ] ) ) {
					unset( $_GET[ 'litespeed_i' ] );
				}
				if ( ! empty( $_GET ) ) {
					$qs = '?' . http_build_query( $_GET );
				}
			}
			if ( is_network_admin() ) {
				$url = network_admin_url( $pagenow . $qs );
			}
			else {
				$url = admin_url( $pagenow . $qs );
			}
		}

		wp_redirect( $url );
		exit;
	}
}
<?php
/**
 * The plugin cache-tag class for X-LiteSpeed-Tag
 *
 * @since      	1.1.3
 * @since  		1.5 Moved into /inc
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Tag extends Instance {
	protected static $_instance;

	const TYPE_FEED = 'FD';
	const TYPE_FRONTPAGE = 'F';
	const TYPE_HOME = 'H';
	const TYPE_PAGES = 'PGS';
	const TYPE_PAGES_WITH_RECENT_POSTS = 'PGSRP';
	const TYPE_HTTP = 'HTTP.';
	const TYPE_POST = 'Po.'; // Post. Cannot use P, reserved for litemage.
	const TYPE_ARCHIVE_POSTTYPE = 'PT.';
	const TYPE_ARCHIVE_TERM = 'T.'; //for is_category|is_tag|is_tax
	const TYPE_AUTHOR = 'A.';
	const TYPE_ARCHIVE_DATE = 'D.';
	const TYPE_BLOG = 'B.';
	const TYPE_LOGIN = 'L';
	const TYPE_URL = 'URL.';
	const TYPE_WIDGET = 'W.';
	const TYPE_ESI = 'ESI.';
	const TYPE_REST = 'REST';
	const TYPE_LIST = 'LIST';
	const TYPE_MIN = 'MIN';
	const TYPE_LOCALRES = 'LOCALRES';

	const X_HEADER = 'X-LiteSpeed-Tag';

	private static $_tags = array();
	private static $_tags_priv = array( 'tag_priv' );

	/**
	 * Initialize
	 *
	 * @since    2.2.3
	 */
	protected function __construct() {
		// register recent posts widget tag before theme renders it to make it work
		add_filter( 'widget_posts_args', array( $this, 'add_widget_recent_posts' ) );

	}

	/**
	 * Check if the login page is cacheable.
	 * If not, unset the cacheable member variable.
	 *
	 * NOTE: This is checked separately because login page doesn't go through WP logic.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function check_login_cacheable() {
		if ( ! Conf::val( Base::O_CACHE_PAGE_LOGIN ) ) {
			return;
		}
		if ( Control::isset_notcacheable() ) {
			return;
		}

		if ( ! empty( $_GET ) ) {
			Control::set_nocache( 'has GET request' );
			return;
		}

		Control::set_cacheable();

		self::add( self::TYPE_LOGIN );

		// we need to send lsc-cookie manually to make it be sent to all other users when is cacheable
		$list = headers_list();
		if ( empty( $list ) ) {
			return;
		}
		foreach ( $list as $hdr ) {
			if ( strncasecmp( $hdr, 'set-cookie:', 11 ) == 0 ) {
				$cookie = substr( $hdr, 12 );
				@header( 'lsc-cookie: ' . $cookie, false );
			}
		}
	}

	/**
	 * Register purge tag for pages with recent posts widget
	 * of the plugin.
	 *
	 * @since    1.0.15
	 * @access   public
	 * @param array $params [wordpress params for widget_posts_args]
	 */
	public function add_widget_recent_posts( $params ) {
		self::add( self::TYPE_PAGES_WITH_RECENT_POSTS );
		return $params;
	}

	/**
	 * Adds cache tags to the list of cache tags for the current page.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param mixed $tags A string or array of cache tags to add to the current list.
	 */
	public static function add( $tags ) {
		if ( ! is_array( $tags ) ) {
			$tags = array( $tags );
		}

		self::$_tags = array_merge( self::$_tags, $tags );
	}

	/**
	 * Add a post id to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_post( $pid ) {
		self::add( self::TYPE_POST . $pid );
	}

	/**
	 * Add a widget id to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_widget( $id ) {
		self::add( self::TYPE_WIDGET . $id );
	}

	/**
	 * Add a private ESI to cache tag
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_esi( $tag ) {
		self::add_private( self::TYPE_ESI . $tag );
	}

	/**
	 * Adds private cache tags to the list of cache tags for the current page.
	 *
	 * @since 1.6.3
	 * @access public
	 * @param mixed $tags A string or array of cache tags to add to the current list.
	 */
	public static function add_private( $tags ) {
		if ( ! is_array( $tags ) ) {
			$tags = array( $tags );
		}

		self::$_tags_priv = array_merge( self::$_tags_priv, $tags );
	}

	/**
	 * Return tags for Admin QS
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function output_tags() {
		return self::$_tags;
	}

	/**
	 * Will get a hash of the URI. Removes query string and appends a '/' if it is missing.
	 *
	 * @since 1.0.12
	 * @access public
	 * @param string $uri The uri to get the hash of.
	 * @param boolean $ori Return the original url or not
	 * @return bool|string False on input error, hash otherwise.
	 */
	public static function get_uri_tag( $uri, $ori = false ) {
		$no_qs = strtok( $uri, '?' );
		if ( empty( $no_qs ) ) {
			return false;
		}
		$slashed = trailingslashit( $no_qs );

		// If only needs uri tag
		if ( $ori ) {
			return $slashed;
		}
		// return self::TYPE_URL . ( $slashed );
		return self::TYPE_URL . md5( $slashed );
	}

	/**
	 * Get the unique tag based on self url.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param boolean $ori Return the original url or not
	 */
	public static function build_uri_tag( $ori = false ) {
		return self::get_uri_tag( urldecode( $_SERVER['REQUEST_URI'] ), $ori );
	}

	/**
	 * Gets the cache tags to set for the page.
	 *
	 * This includes site wide post types (e.g. front page) as well as
	 * any third party plugin specific cache tags.
	 *
	 * @since 1.0.0
	 * @access private
	 * @return array The list of cache tags to set.
	 */
	private static function _build_type_tags() {
		$tags = array();

		$tags[] = Utility::page_type();

		$tags[] = self::build_uri_tag();

		if ( is_front_page() ) {
			$tags[] = self::TYPE_FRONTPAGE;
		}
		elseif ( is_home() ) {
			$tags[] = self::TYPE_HOME;
		}

		$queried_obj_id = get_queried_object_id();
		if ( is_archive() ) {
			//An Archive is a Category, Tag, Author, Date, Custom Post Type or Custom Taxonomy based pages.
			if ( is_category() || is_tag() || is_tax() ) {
				$tags[] = self::TYPE_ARCHIVE_TERM . $queried_obj_id;
			}
			elseif ( is_post_type_archive() ) {
				global $wp_query;
				$post_type = $wp_query->get( 'post_type' );
				$tags[] = self::TYPE_ARCHIVE_POSTTYPE . $post_type;
			}
			elseif ( is_author() ) {
				$tags[] = self::TYPE_AUTHOR . $queried_obj_id;
			}
			elseif ( is_date() ) {
				global $post;
				$date = $post->post_date;
				$date = strtotime( $date );
				if ( is_day() ) {
					$tags[] = self::TYPE_ARCHIVE_DATE . date( 'Ymd', $date );
				}
				elseif ( is_month() ) {
					$tags[] = self::TYPE_ARCHIVE_DATE . date( 'Ym', $date );
				}
				elseif ( is_year() ) {
					$tags[] = self::TYPE_ARCHIVE_DATE . date( 'Y', $date );
				}
			}
		}
		elseif ( is_singular() ) {
			//$this->is_singular = $this->is_single || $this->is_page || $this->is_attachment;
			$tags[] = self::TYPE_POST . $queried_obj_id;

			if ( is_page() ) {
				$tags[] = self::TYPE_PAGES;
			}
		}
		elseif ( is_feed() ) {
			$tags[] = self::TYPE_FEED;
		}

		// Check REST API
		if ( REST::get_instance()->is_rest() ) {
			$tags[] = self::TYPE_REST;

			$path = ! empty( $_SERVER[ 'SCRIPT_URL' ] ) ? $_SERVER[ 'SCRIPT_URL' ] : false;
			if ( $path ) {
				// posts collections tag
				if ( substr( $path, -6 ) == '/posts' ) {
					$tags[] = self::TYPE_LIST;// Not used for purge yet
				}

				// single post tag
				global $post;
				if ( ! empty( $post->ID ) && substr( $path, - strlen( $post->ID ) - 1 ) === '/' . $post->ID ) {
					$tags[] = self::TYPE_POST . $post->ID;
				}

				// pages collections & single page tag
				if ( stripos( $path, '/pages' ) !== false ) {
					$tags[] = self::TYPE_PAGES;
				}
			}

		}

		return $tags;
	}

	/**
	 * Generate all cache tags before output
	 *
	 * @access private
	 * @since 1.1.3
	 */
	private static function _finalize() {
		// run 3rdparty hooks to tag
		do_action( 'litespeed_tag_finalize' );
		// generate wp tags
		if ( ! defined( 'LSCACHE_IS_ESI' ) ) {
			$type_tags = self::_build_type_tags();
			self::$_tags = array_merge( self::$_tags, $type_tags );
		}
		// append blog main tag
		self::$_tags[] = '';
		// removed duplicates
		self::$_tags = array_unique( self::$_tags );
	}

	/**
	 * Sets up the Cache Tags header.
	 * ONLY need to run this if is cacheable
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string empty string if empty, otherwise the cache tags header.
	 */
	public static function output() {
		self::_finalize();

		$prefix_tags = array();
		/**
		 * Only append blog_id when is multisite
		 * @since 2.9.3
		 */
		$prefix = LSWCP_TAG_PREFIX . ( is_multisite() ? get_current_blog_id() : '' ) . '_';

		// If is_private and has private tags, append them first, then specify prefix to `public` for public tags
		if ( Control::is_private() ) {
			foreach ( self::$_tags_priv as $priv_tag ) {
				$prefix_tags[] = $prefix . $priv_tag;
			}
			$prefix = 'public:' . $prefix;
		}

		foreach ( self::$_tags as $tag ) {
			$prefix_tags[] = $prefix . $tag;
		}

		$hdr = self::X_HEADER . ': ' . implode( ',', $prefix_tags );

		return $hdr;
	}

}<?php
/**
 * The abstract instance
 *
 * @since      	3.0
 */
namespace LiteSpeed ;

defined( 'WPINC' ) || exit ;

abstract class Instance
{
	/**
	 * Get the current instance object. To be inherited.
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function get_instance()
	{
		if ( ! isset( static::$_instance ) ) {
			static::$_instance = new static() ;
		}

		return static::$_instance ;
	}

}<?php
/**
 * The object cache class
 *
 * @since      	1.8
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Object_Cache {
	protected static $_instance;

	private $_oc_data_file;
	private $_conn;
	private $_cfg_enabled;
	private $_cfg_method;
	private $_cfg_host;
	private $_cfg_port;
	private $_cfg_persistent;
	private $_cfg_admin;
	private $_cfg_transients;
	private $_cfg_db;
	private $_cfg_user;
	private $_cfg_pswd;
	private $_default_life = 360;

	private $_oc_driver = 'Memcached'; // Redis or Memcached

	private $_global_groups;
	private $_non_persistent_groups;

	/**
	 * Init
	 *
	 * NOTE: this class may be included without initialized  core
	 *
	 * @since  1.8
	 * @access protected
	 */
	protected function __construct( $cfg = false ) {
		defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] init' );

		$this->_oc_data_file = WP_CONTENT_DIR . '/.object-cache.ini';

		if ( $cfg ) {
			if ( ! is_array( $cfg[ Base::O_OBJECT_GLOBAL_GROUPS ] ) ) {
				$cfg[ Base::O_OBJECT_GLOBAL_GROUPS ] = explode( "\n", $cfg[ Base::O_OBJECT_GLOBAL_GROUPS ] );
			}
			if ( ! is_array( $cfg[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ] ) ) {
				$cfg[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ] = explode( "\n", $cfg[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ] );
			}
			$this->_cfg_method = $cfg[ Base::O_OBJECT_KIND ] ? true : false;
			$this->_cfg_host = $cfg[ Base::O_OBJECT_HOST ];
			$this->_cfg_port = $cfg[ Base::O_OBJECT_PORT ];
			$this->_cfg_life = $cfg[ Base::O_OBJECT_LIFE ];
			$this->_cfg_persistent = $cfg[ Base::O_OBJECT_PERSISTENT ];
			$this->_cfg_admin = $cfg[ Base::O_OBJECT_ADMIN ];
			$this->_cfg_transients = $cfg[ Base::O_OBJECT_TRANSIENTS ];
			$this->_cfg_db = $cfg[ Base::O_OBJECT_DB_ID ];
			$this->_cfg_user = $cfg[ Base::O_OBJECT_USER ];
			$this->_cfg_pswd = $cfg[ Base::O_OBJECT_PSWD ];
			$this->_global_groups = $cfg[ Base::O_OBJECT_GLOBAL_GROUPS ];
			$this->_non_persistent_groups = $cfg[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ];

			if ( $this->_cfg_method ) {
				$this->_oc_driver = 'Redis';
			}
			$this->_cfg_enabled = $cfg[ Base::O_OBJECT ] && class_exists( $this->_oc_driver ) && $this->_cfg_host;

			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] init with cfg result : ', $this->_cfg_enabled );
		}
		elseif ( class_exists( __NAMESPACE__ . '\Core' ) ) {
			$this->_cfg_method = Conf::val( Base::O_OBJECT_KIND ) ? true : false;
			$this->_cfg_host = Conf::val( Base::O_OBJECT_HOST );
			$this->_cfg_port = Conf::val( Base::O_OBJECT_PORT );
			$this->_cfg_life = Conf::val( Base::O_OBJECT_LIFE );
			$this->_cfg_persistent = Conf::val( Base::O_OBJECT_PERSISTENT );
			$this->_cfg_admin = Conf::val( Base::O_OBJECT_ADMIN );
			$this->_cfg_transients = Conf::val( Base::O_OBJECT_TRANSIENTS );
			$this->_cfg_db = Conf::val( Base::O_OBJECT_DB_ID );
			$this->_cfg_user = Conf::val( Base::O_OBJECT_USER );
			$this->_cfg_pswd = Conf::val( Base::O_OBJECT_PSWD );
			$this->_global_groups = Conf::val( Base::O_OBJECT_GLOBAL_GROUPS );
			$this->_non_persistent_groups = Conf::val( Base::O_OBJECT_NON_PERSISTENT_GROUPS );

			if ( $this->_cfg_method ) {
				$this->_oc_driver = 'Redis';
			}
			$this->_cfg_enabled = Conf::val( Base::O_OBJECT ) && class_exists( $this->_oc_driver ) && $this->_cfg_host;
		}
		elseif ( file_exists( $this->_oc_data_file ) ) { // Get cfg from oc_data_file
			$cfg = parse_ini_file( $this->_oc_data_file, true );
			$this->_cfg_method = ! empty( $cfg[ 'object_cache' ][ 'method' ] ) ? $cfg[ 'object_cache' ][ 'method' ] : false;
			$this->_cfg_host = $cfg[ 'object_cache' ][ 'host' ];
			$this->_cfg_port = $cfg[ 'object_cache' ][ 'port' ];
			$this->_cfg_life = ! empty( $cfg[ 'object_cache' ][ 'life' ] ) ? $cfg[ 'object_cache' ][ 'life' ] : $this->_default_life;
			$this->_cfg_persistent = ! empty( $cfg[ 'object_cache' ][ 'persistent' ] ) ? $cfg[ 'object_cache' ][ 'persistent' ] : false;
			$this->_cfg_admin = ! empty( $cfg[ 'object_cache' ][ 'cache_admin' ] ) ? $cfg[ 'object_cache' ][ 'cache_admin' ] : false;
			$this->_cfg_transients = ! empty( $cfg[ 'object_cache' ][ 'cache_transients' ] ) ? $cfg[ 'object_cache' ][ 'cache_transients' ] : false;
			$this->_cfg_db = ! empty( $cfg[ 'object_cache' ][ 'db' ] ) ? $cfg[ 'object_cache' ][ 'db' ] : 0;
			$this->_cfg_user = ! empty( $cfg[ 'object_cache' ][ 'user' ] ) ? $cfg[ 'object_cache' ][ 'user' ] : '';
			$this->_cfg_pswd = ! empty( $cfg[ 'object_cache' ][ 'pswd' ] ) ? $cfg[ 'object_cache' ][ 'pswd' ] : '';
			$this->_global_groups = ! empty( $cfg[ 'object_cache' ][ 'global_groups' ] ) ? explode( ',', $cfg[ 'object_cache' ][ 'global_groups' ] ) : array();
			$this->_non_persistent_groups = ! empty( $cfg[ 'object_cache' ][ 'non_persistent_groups' ] ) ? explode( ',', $cfg[ 'object_cache' ][ 'non_persistent_groups' ] ) : array();

			if ( $this->_cfg_method ) {
				$this->_oc_driver = 'Redis';
			}
			$this->_cfg_enabled = class_exists( $this->_oc_driver ) && $this->_cfg_host;
		}
		else {
			$this->_cfg_enabled = false;
		}
	}

	/**
	 * Get `Store Transients` setting value
	 *
	 * @since  1.8.3
	 * @access public
	 */
	public function store_transients( $group ) {
		return $this->_cfg_transients && $this->_is_transients_group( $group );
	}

	/**
	 * Check if the group belongs to transients or not
	 *
	 * @since  1.8.3
	 * @access private
	 */
	private function _is_transients_group( $group ) {
		return in_array( $group, array( 'transient', 'site-transient' ) );
	}

	/**
	 * Update WP object cache file config
	 *
	 * @since  1.8
	 * @access public
	 */
	public function update_file( $options ) {
		$changed = false;

		// Update data file
		$data = "[object_cache]"
			. "\nmethod = " . $options[ Base::O_OBJECT_KIND ]
			. "\nhost = " . $options[ Base::O_OBJECT_HOST ]
			. "\nport = " . (int) $options[ Base::O_OBJECT_PORT ]
			. "\nlife = " . $options[ Base::O_OBJECT_LIFE ]
			. "\nuser = '" . $options[ Base::O_OBJECT_USER ] . "'"
			. "\npswd = '" . $options[ Base::O_OBJECT_PSWD ] . "'"
			. "\ndb = " . (int) $options[ Base::O_OBJECT_DB_ID ]
			. "\npersistent = " . ( $options[ Base::O_OBJECT_PERSISTENT ] ? 1 : 0 )
			. "\ncache_admin = " . ( $options[ Base::O_OBJECT_ADMIN ] ? 1 : 0 )
			. "\ncache_transients = " . ( $options[ Base::O_OBJECT_TRANSIENTS ] ? 1 : 0 )
			. "\nglobal_groups = " . implode( ',', $options[ Base::O_OBJECT_GLOBAL_GROUPS ] )
			. "\nnon_persistent_groups = " . implode( ',', $options[ Base::O_OBJECT_NON_PERSISTENT_GROUPS ] )
			;

		$old_data = File::read( $this->_oc_data_file );
		if ( $old_data != $data ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Settings] Update .object_cache.ini and flush object cache' );
			File::save( $this->_oc_data_file, $data );

			$changed = true;
		}

		// NOTE: When included in oc.php, `LSCWP_DIR` will show undefined, so this must be assigned/generated when used
		$_oc_ori_file = LSCWP_DIR . 'lib/object-cache.php';
		$_oc_wp_file = WP_CONTENT_DIR . '/object-cache.php';

		// Update cls file
		if ( ! file_exists( $_oc_wp_file ) || md5_file( $_oc_wp_file ) !== md5_file( $_oc_ori_file ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] copying object-cache.php file to ' . $_oc_wp_file );
			copy( $_oc_ori_file, $_oc_wp_file );

			$changed = true;
		}

		/**
		 * Clear object cache
		 */
		if ( $changed ) {
			$this->_reconnect( $options );
		}
	}

	/**
	 * Remove object cache file
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function del_file() {
		// NOTE: When included in oc.php, `LSCWP_DIR` will show undefined, so this must be assigned/generated when used
		$_oc_ori_file = LSCWP_DIR . 'lib/object-cache.php';
		$_oc_wp_file = WP_CONTENT_DIR . '/object-cache.php';

		if ( file_exists( $_oc_wp_file ) && md5_file( $_oc_wp_file ) === md5_file( $_oc_ori_file ) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] removing ' . $_oc_wp_file );
			unlink( $_oc_wp_file );
		}

		if ( file_exists( $this->_oc_data_file ) ) {
			Debug2::debug( '[Object] Removing ' . $this->_oc_data_file );
			unlink( $this->_oc_data_file );
		}
	}

	/**
	 * Try to build connection
	 *
	 * @since  1.8
	 * @access public
	 */
	public function test_connection() {
		return $this->_connect();
	}

	/**
	 * Force to connect with this setting
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _reconnect( $cfg ) {
		defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Reconnecting' );
		// error_log( 'Object: reconnect !' );
		if ( isset( $this->_conn ) ) {
			// error_log( 'Object: Quiting existing connection!' );
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Quiting existing connection' );
			$this->flush();
			$this->_conn = null;
			self::$_instance = null;
		}

		self::$_instance = new self( $cfg );
		self::$_instance->_connect();
		if ( isset( self::$_instance->_conn ) ) {
			self::$_instance->flush();
		}

	}

	/**
	 * Connect to Memcached/Redis server
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _connect() {
		if ( isset( $this->_conn ) ) {
			// error_log( 'Object: _connected' );
			return true;
		}

		if ( ! class_exists( $this->_oc_driver ) || ! $this->_cfg_host ) {
			return null;
		}

		if ( defined( 'LITESPEED_OC_FAILURE' ) ) {
			return false;
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] connecting to ' . $this->_cfg_host . ':' . $this->_cfg_port );

		$failed = false;
		/**
		 * Connect to Redis
		 *
		 * @since  1.8.1
		 * @see https://github.com/phpredis/phpredis/#example-1
		 */
		if ( $this->_oc_driver == 'Redis' ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Init ' . $this->_oc_driver . ' connection' );

			set_error_handler( 'litespeed_exception_handler' );
			try {
				$this->_conn = new \Redis();
				 // error_log( 'Object: _connect Redis' );

				if ( $this->_cfg_persistent ) {
					if ( $this->_cfg_port ) {
						$this->_conn->pconnect( $this->_cfg_host, $this->_cfg_port );
					}
					else {
						$this->_conn->pconnect( $this->_cfg_host );
					}
				}
				else {
					if ( $this->_cfg_port ) {
						$this->_conn->connect( $this->_cfg_host, $this->_cfg_port );
					}
					else {
						$this->_conn->connect( $this->_cfg_host );
					}
				}

				if ( $this->_cfg_pswd ) {
					$this->_conn->auth( $this->_cfg_pswd );
				}

				if ( $this->_cfg_db ) {
					$this->_conn->select( $this->_cfg_db );
				}

				$res = $this->_conn->ping();

				if ( $res != '+PONG' ) {
					$failed = true;
				}
			}
			catch ( \Exception $e ) {
				error_log( $e->getMessage() );
				$failed = true;
			}
			catch ( \ErrorException $e ) {
				error_log( $e->getMessage() );
				$failed = true;
			}
			restore_error_handler();

		}
		/**
		 * Connect to Memcached
		 */
		else {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Init ' . $this->_oc_driver . ' connection' );
			if ( $this->_cfg_persistent ) {
				$this->_conn = new \Memcached( $this->_get_mem_id() );

				// Check memcached persistent connection
				if ( $this->_validate_mem_server() ) {
					// error_log( 'Object: _validate_mem_server' );
					defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Got persistent ' . $this->_oc_driver . ' connection' );
					return true;
				}

				defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] No persistent ' . $this->_oc_driver . ' server list!' );
			}
			else {
				// error_log( 'Object: new memcached!' );
				$this->_conn = new \Memcached;
			}

			$this->_conn->addServer( $this->_cfg_host, (int) $this->_cfg_port );

			/**
			 * Add SASL auth
			 * @since  1.8.1
			 * @since  2.9.6 Fixed SASL connection @see https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:lsmcd:new_sasl
			 */
			if ( $this->_cfg_user && $this->_cfg_pswd && method_exists( $this->_conn, 'setSaslAuthData' ) ) {
				$this->_conn->setOption( \Memcached::OPT_BINARY_PROTOCOL, true );
				$this->_conn->setOption( \Memcached::OPT_COMPRESSION, false );
				$this->_conn->setSaslAuthData( $this->_cfg_user, $this->_cfg_pswd );
			}

			// Check connection
			if ( ! $this->_validate_mem_server() ) {
				$failed = true;
			}
		}

		// If failed to connect
		if ( $failed ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] Failed to connect ' . $this->_oc_driver . ' server!' );
			$this->_conn = null;
			$this->_cfg_enabled = false;
			! defined( 'LITESPEED_OC_FAILURE' ) && define( 'LITESPEED_OC_FAILURE', true );
			// error_log( 'Object: false!' );
			return false;
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] Connected' );

		return true;
	}

	/**
	 * Check if the connected memcached host is the one in cfg
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _validate_mem_server() {
		$mem_list = $this->_conn->getStats();
		if ( empty( $mem_list ) ) {
			return false;
		}

		foreach ( $mem_list as $k => $v ) {
			if ( substr( $k, 0, strlen( $this->_cfg_host ) ) != $this->_cfg_host ) {
				continue;
			}
			if ( $v[ 'pid' ] > 0 ) {
				return true;
			}
		}

		return false;
	}

	/**
	 * Get memcached unique id to be used for connecting
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _get_mem_id() {
		$mem_id = 'litespeed';
		if ( is_multisite() ) {
			$mem_id .= '_' . get_current_blog_id();
		}

		return $mem_id;
	}

	/**
	 * Get cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function get( $key ) {
		if ( ! $this->_cfg_enabled ) {
			return null;
		}

		if ( ! $this->_can_cache() ) {
			return null;
		}

		if( ! $this->_connect() ) {
			return null;
		}

		// defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] get ' . $key );

		$res = $this->_conn->get( $key );

		return $res;
	}

	/**
	 * Set cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function set( $key, $data, $expire ) {
		if ( ! $this->_cfg_enabled ) {
			return null;
		}

		/**
		 * To fix the Cloud callback cached as its frontend call but the hash is generated in backend
		 * Bug found by Stan at Jan/10/2020
		 */
		// if ( ! $this->_can_cache() ) {
		// 	return null;
		// }

		if( ! $this->_connect() ) {
			return null;
		}

		// defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] set ' . $key );

		// error_log( 'Object: set ' . $key );

		$ttl = $expire ?: $this->_cfg_life;

		if ( $this->_oc_driver == 'Redis' ) {
			try {
				$res = $this->_conn->setEx( $key, $ttl, $data );
			} catch ( \RedisException $ex ) {
				throw new \Exception( $ex->getMessage(), $ex->getCode(), $ex );
			}
		}
		else {
			$res = $this->_conn->set( $key, $data, $ttl );
		}

		return $res;
	}

	/**
	 * Check if can cache or not
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _can_cache() {
		if ( ! $this->_cfg_admin && defined( 'WP_ADMIN' ) ) {
			return false;
		}
		return true;
	}

	/**
	 * Delete cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function delete( $key ) {
		if ( ! $this->_cfg_enabled ) {
			return null;
		}

		if( ! $this->_connect() ) {
			return null;
		}

		// defined( 'LSCWP_LOG' ) && Debug2::debug2( '[Object] delete ' . $key );

		if ( $this->_oc_driver == 'Redis' ) {
			$res = $this->_conn->del( $key );
		}
		else {
			$res = $this->_conn->delete( $key );
		}

		return $res;
	}

	/**
	 * Clear all cache
	 *
	 * @since  1.8
	 * @access public
	 */
	public function flush() {
		if ( ! $this->_cfg_enabled ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] bypass flushing' );
			return null;
		}

		if( ! $this->_connect() ) {
			return null;
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug( '[Object] flush!' );

		if ( $this->_oc_driver == 'Redis' ) {
			$res = $this->_conn->flushDb();
		}
		else {
			$res = $this->_conn->flush();
			$this->_conn->resetServerList();
		}

		return $res;
	}

	/**
	 * Add global groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_global_groups( $groups ) {
		if ( ! is_array( $groups ) ) {
			$groups = array( $groups );
		}

		$this->_global_groups = array_merge( $this->_global_groups, $groups );
		$this->_global_groups = array_unique( $this->_global_groups );
	}

	/**
	 * Check if is in global groups or not
	 *
	 * @since 1.8
	 * @access public
	 */
	public function is_global( $group ) {
		return in_array( $group, $this->_global_groups );
	}

	/**
	 * Add non persistent groups
	 *
	 * @since 1.8
	 * @access public
	 */
	public function add_non_persistent_groups( $groups ) {
		if ( ! is_array( $groups ) ) {
			$groups = array( $groups );
		}

		$this->_non_persistent_groups = array_merge( $this->_non_persistent_groups, $groups );
		$this->_non_persistent_groups = array_unique( $this->_non_persistent_groups );
	}

	/**
	 * Check if is in non persistent groups or not
	 *
	 * @since 1.8
	 * @access public
	 */
	public function is_non_persistent( $group ) {
		return in_array( $group, $this->_non_persistent_groups );
	}

	/**
	 * Get the current instance object.
	 *
	 * @since 1.8
	 * @access public
	 */
	public static function get_instance() {
		if ( ! isset( self::$_instance ) ) {
			self::$_instance = new self();
		}

		return self::$_instance;
	}
}<?php
/**
 * The class to operate media data.
 *
 * @since 		1.4
 * @since  		1.5 Moved into /inc
 * @package    	Core
 * @subpackage 	Core/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Media extends Instance {
	protected static $_instance;

	const LIB_FILE_IMG_LAZYLOAD = 'assets/js/lazyload.min.js';

	private $content;
	private $_wp_upload_dir;

	/**
	 * Init
	 *
	 * @since  1.4
	 * @access protected
	 */
	protected function __construct() {
		Debug2::debug2( '[Media] init' );

		$this->_wp_upload_dir = wp_upload_dir();

		// This always needs to load w/ WP
		add_action( 'litspeed_after_admin_init', array( $this, 'after_admin_init' ) );
	}

	/**
	 * Init optm features
	 *
	 * @since  3.0
	 * @access public
	 */
	public function init() {
		if ( $this->can_media() ) {
			// Due to ajax call doesn't send correct accept header, have to limit webp to HTML only
			if ( Conf::val( Base::O_IMG_OPTM_WEBP_REPLACE ) ) {
				/**
				 * Add vary filter
				 * @since  1.6.2
				 */
				// Moved to htaccess
				// add_filter( 'litespeed_vary', array( $this, 'vary_add' ) );

				//
				if ( $this->webp_support() ) {
					// Hook to srcset
					if ( function_exists( 'wp_calculate_image_srcset' ) ) {
						add_filter( 'wp_calculate_image_srcset', array( $this, 'webp_srcset' ), 988 );
					}
					// Hook to mime icon
					// add_filter( 'wp_get_attachment_image_src', array( $this, 'webp_attach_img_src' ), 988 );// todo: need to check why not
					// add_filter( 'wp_get_attachment_url', array( $this, 'webp_url' ), 988 ); // disabled to avoid wp-admin display
				}
			}

			/**
			 * Replace gravatar
			 * @since  3.0
			 */
			Avatar::get_instance();
		}

		/**
		 * JPG quality control
		 * @since  3.0
		 */
		add_filter( 'jpeg_quality', array( $this, 'adjust_jpg_quality' ) );

	}

	/**
	 * Adjust WP default JPG quality
	 *
	 * @since  3.0
	 * @access public
	 */
	public function adjust_jpg_quality( $quality ) {
		$v = Conf::val( Base::O_IMG_OPTM_JPG_QUALITY );

		if ( $v ) {
			return $v;
		}

		return $quality;
	}

	/**
	 * Check if it can use Media frontend
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function can_media() {
		if ( is_admin() ) {
			return false;
		}

		return true;
	}

	/**
	 * Register admin menu
	 *
	 * @since 1.6.3
	 * @access public
	 */
	public function after_admin_init() {
		add_filter( 'manage_media_columns', array( $this, 'media_row_title' ) );
		add_filter( 'manage_media_custom_column', array( $this, 'media_row_actions' ), 10, 2 );

		add_action( 'litespeed_media_row', array( $this, 'media_row_con' ) );

		// Hook to attachment delete action
		add_action( 'delete_attachment', __CLASS__ . '::delete_attachment' );
	}

	/**
	 * Media delete action hook
	 *
	 * @since 2.4.3
	 * @access public
	 */
	public static function delete_attachment( $post_id ) {
		if ( ! Data::get_instance()->tb_exist( 'img_optm' ) ) {
			return;
		}

		Debug2::debug( '[Media] delete_attachment [pid] ' . $post_id );
		Img_Optm::get_instance()->reset_row( $post_id );
	}

	/**
	 * Return media file info if exists
	 *
	 * This is for remote attachment plugins
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function info( $short_file_path, $post_id ) {
		$real_file = $this->_wp_upload_dir[ 'basedir' ] . '/' . $short_file_path;

		if ( file_exists( $real_file ) ) {
			return array(
				'url'	=> $this->_wp_upload_dir[ 'baseurl' ] . '/' . $short_file_path,
				'md5'	=> md5_file( $real_file ),
				'size'	=> filesize( $real_file ),
			);
		}

		/**
		 * WP Stateless compatibility #143 https://github.com/litespeedtech/lscache_wp/issues/143
		 * @since 2.9.8
		 * @return array( 'url', 'md5', 'size' )
		 */
		$info = apply_filters( 'litespeed_media_info', array(), $short_file_path, $post_id );
		if ( ! empty( $info[ 'url' ] ) && ! empty( $info[ 'md5' ] ) && ! empty( $info[ 'size' ] ) ) {
			return $info;
		}

		return false;
	}

	/**
	 * Delete media file
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function del( $short_file_path, $post_id ) {
		$real_file = $this->_wp_upload_dir[ 'basedir' ] . '/' . $short_file_path;

		if ( file_exists( $real_file ) ) {
			unlink( $real_file );
			Debug2::debug( '[Media] deleted ' . $real_file );
		}

		do_action( 'litespeed_media_del', $short_file_path, $post_id );
	}

	/**
	 * Rename media file
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function rename( $short_file_path, $short_file_path_new, $post_id ) {
		$real_file = $this->_wp_upload_dir[ 'basedir' ] . '/' . $short_file_path;
		$real_file_new = $this->_wp_upload_dir[ 'basedir' ] . '/' . $short_file_path_new;

		if ( file_exists( $real_file ) ) {
			rename( $real_file, $real_file_new );
			Debug2::debug( '[Media] renamed ' . $real_file . ' to ' . $real_file_new );
		}

		do_action( 'litespeed_media_rename', $short_file_path, $short_file_path_new, $post_id );
	}

	/**
	 * Media Admin Menu -> Image Optimization Column Title
	 *
	 * @since 1.6.3
	 * @access public
	 */
	public function media_row_title( $posts_columns ) {
		$posts_columns[ 'imgoptm' ] = __( 'LiteSpeed Optimization', 'litespeed-cache' );

		return $posts_columns;
	}

	/**
	 * Media Admin Menu -> Image Optimization Column
	 *
	 * @since 1.6.2
	 * @access public
	 */
	public function media_row_actions( $column_name, $post_id ) {
		if ( $column_name !== 'imgoptm' ) {
			return;
		}

		do_action( 'litespeed_media_row', $post_id );

	}

	/**
	 * Display image optm info
	 *
	 * @since  3.0
	 */
	public function media_row_con( $post_id ) {
		$att_info = wp_get_attachment_metadata( $post_id );
		if ( empty( $att_info[ 'file' ] ) ) {
			return;
		}

		$short_path = $att_info[ 'file' ];

		$size_meta = get_post_meta( $post_id, Img_Optm::DB_SIZE, true );

		echo '<p>';
		// Original image info
		if ( $size_meta && ! empty ( $size_meta[ 'ori_saved' ] ) ) {
			$percent = ceil( $size_meta[ 'ori_saved' ] * 100 / $size_meta[ 'ori_total' ] );

			$extension = pathinfo( $short_path, PATHINFO_EXTENSION );
			$bk_file = substr( $short_path, 0, -strlen( $extension ) ) . 'bk.' . $extension;
			$bk_optm_file = substr( $short_path, 0, -strlen( $extension ) ) . 'bk.optm.' . $extension;

			$link = Utility::build_url( Router::ACTION_IMG_OPTM, 'orig' . $post_id );
			$desc = false;

			$cls = '';

			if ( $this->info( $bk_file, $post_id ) ) {
				$curr_status = __( '(optm)', 'litespeed-cache' );
				$desc = __( 'Currently using optimized version of file.', 'litespeed-cache' ) . '&#10;' . __( 'Click to switch to original (unoptimized) version.', 'litespeed-cache' );
			}
			elseif ( $this->info( $bk_optm_file, $post_id ) ) {
				$cls .= ' litespeed-warning';
				$curr_status = __( '(non-optm)', 'litespeed-cache' );
				$desc = __( 'Currently using original (unoptimized) version of file.', 'litespeed-cache' ) . '&#10;' . __( 'Click to switch to optimized version.', 'litespeed-cache' );
			}

			echo GUI::pie_tiny( $percent, 24,
				sprintf( __( 'Original file reduced by %1$s (%2$s)', 'litespeed-cache' ),
					$percent . '%',
					Utility::real_size( $size_meta[ 'ori_saved' ] )
				) , 'left'
			);

			echo sprintf( __( 'Orig saved %s', 'litespeed-cache' ), $percent . '%' );

			if ( $desc ) {
				echo sprintf( ' <a href="%1$s" class="litespeed-media-href %2$s" data-balloon-pos="left" data-balloon-break aria-label="%3$s">%4$s</a>', $link, $cls, $desc, $curr_status );
			}
			else {
				echo sprintf(
					' <span class="litespeed-desc" data-balloon-pos="left" data-balloon-break aria-label="%1$s">%2$s</span>',
					__( 'Using optimized version of file. ', 'litespeed-cache' ) . '&#10;' . __( 'No backup of original file exists.', 'litespeed-cache' ),
					__( '(optm)', 'litespeed-cache' )
				);
			}


		}
		elseif ( $size_meta && $size_meta[ 'ori_saved' ] === 0 ){
			echo GUI::pie_tiny( 0, 24,
				__( 'Congratulation! Your file was already optmized', 'litespeed-cache' ),
				'left'
			);
			echo sprintf( __( 'Orig %s', 'litespeed-cache' ), '<span class="litespeed-desc">' . __( '(no savings)', 'litespeed-cache' ) . '</span>' );
		}
		else {
			echo __( 'Orig', 'litespeed-cache' ) . '<span class="litespeed-left10">—</span>';
		}
		echo '</p>';

		echo '<p>';
		// WebP info
		if ( $size_meta && ! empty ( $size_meta[ 'webp_saved' ] ) ) {
			$percent = ceil( $size_meta[ 'webp_saved' ] * 100 / $size_meta[ 'webp_total' ] );

			$link = Utility::build_url( Router::ACTION_IMG_OPTM, 'webp' . $post_id );
			$desc = false;

			$cls = '';

			if ( $this->info( $short_path . '.webp', $post_id ) ) {
				$curr_status = __( '(optm)', 'litespeed-cache' );
				$desc = __( 'Currently using optimized version of WebP file.', 'litespeed-cache' ) . '&#10;' . __( 'Click to switch to original (unoptimized) version.', 'litespeed-cache' );
			}
			elseif ( $this->info( $short_path . '.optm.webp', $post_id ) ) {
				$cls .= ' litespeed-warning';
				$curr_status = __( '(non-optm)', 'litespeed-cache' );
				$desc = __( 'Currently using original (unoptimized) version of WebP file.', 'litespeed-cache' ) . '&#10;' . __( 'Click to switch to optimized version.', 'litespeed-cache' );
			}

			echo GUI::pie_tiny( $percent, 24,
				sprintf( __( 'WebP file reduced by %1$s (%2$s)', 'litespeed-cache' ),
					$percent . '%',
					Utility::real_size( $size_meta[ 'webp_saved' ] )
				) , 'left'
			);
			echo sprintf( __( 'WebP saved %s', 'litespeed-cache' ), $percent . '%' );

			if ( $desc ) {
				echo sprintf( ' <a href="%1$s" class="litespeed-media-href %2$s" data-balloon-pos="left" data-balloon-break aria-label="%3$s">%4$s</a>', $link, $cls, $desc, $curr_status );
			}
			else {
				echo sprintf(
					' <span class="litespeed-desc" data-balloon-pos="left" data-balloon-break aria-label="%1$s">%2$s</span>',
					__( 'Using optimized version of file. ', 'litespeed-cache' ) . '&#10;' . __( 'No backup of unoptimized WebP file exists.', 'litespeed-cache' ),
					__( '(optm)', 'litespeed-cache' )
				);
			}

		} else {
			echo __( 'WebP', 'litespeed-cache' ) . '<span class="litespeed-left10">—</span>';
		}

		echo '</p>';

		// Delete row btn
		if ( $size_meta ) {

			echo sprintf( '<div class="row-actions"><span class="delete"><a href="%1$s" class="">%2$s</a></span></div>',
				Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RESET_ROW, false, null, array( 'id' => $post_id ) ),
				__( 'Restore from backup', 'litespeed-cache' )
			);
			echo '</div>';
		}
	}

	/**
	 * Get wp size info
	 *
	 * NOTE: this is not used because it has to be after admin_init
	 *
	 * @since 1.6.2
	 * @return array $sizes Data for all currently-registered image sizes.
	 */
	public function get_image_sizes() {
		global $_wp_additional_image_sizes;
		$sizes = array();

		foreach ( get_intermediate_image_sizes() as $_size ) {
			if ( in_array( $_size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
				$sizes[ $_size ][ 'width' ] = get_option( $_size . '_size_w' );
				$sizes[ $_size ][ 'height' ] = get_option( $_size . '_size_h' );
				$sizes[ $_size ][ 'crop' ] = (bool) get_option( $_size . '_crop' );
			} elseif ( isset( $_wp_additional_image_sizes[ $_size ] ) ) {
				$sizes[ $_size ] = array(
					'width' => $_wp_additional_image_sizes[ $_size ][ 'width' ],
					'height' => $_wp_additional_image_sizes[ $_size ][ 'height' ],
					'crop' =>  $_wp_additional_image_sizes[ $_size ][ 'crop' ]
				);
			}
		}

		return $sizes;
	}


	/**
	 * Exclude role from optimization filter
	 *
	 * @since  1.6.2
	 * @access public
	 */
	private function webp_support() {
		if ( ! empty( $_SERVER[ 'HTTP_ACCEPT' ] ) && strpos( $_SERVER[ 'HTTP_ACCEPT' ], 'image/webp' ) !== false ) {
			return true;
		}

		if ( ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) ) {
			if ( strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'Page Speed' ) !== false ) {
				return true;
			}

			if ( preg_match( "/iPhone OS (\d+)_/i", $_SERVER[ 'HTTP_USER_AGENT' ], $matches ) ) {
				$lscwp_ios_version = $matches[1];
				if ($lscwp_ios_version >= 14){
					return true;
				}
			}
		}

		return false;
	}

	/**
	 * Run lazy load process
	 * NOTE: As this is after cache finalized, can NOT set any cache control anymore
	 *
	 * Only do for main page. Do NOT do for esi or dynamic content.
	 *
	 * @since  1.4
	 * @access public
	 * @return  string The buffer
	 */
	public static function finalize( $content ) {
		if ( defined( 'LITESPEED_NO_LAZY' ) ) {
			Debug2::debug2( '[Media] bypass: NO_LAZY const' );
			return $content;
		}

		if ( ! defined( 'LITESPEED_IS_HTML' ) ) {
			Debug2::debug2( '[Media] bypass: Not frontend HTML type' );
			return $content;
		}

		Debug2::debug( '[Media] finalize' );

		$instance = self::get_instance();
		$instance->content = $content;

		$instance->_finalize();
		return $instance->content;
	}

	/**
	 * Run lazyload replacement for images in buffer
	 *
	 * @since  1.4
	 * @access private
	 */
	private function _finalize() {
		/**
		 * Use webp for optimized images
		 * @since 1.6.2
		 */
		if ( Conf::val( Base::O_IMG_OPTM_WEBP_REPLACE ) && $this->webp_support() ) {
			$this->_replace_buffer_img_webp();
		}

		/**
		 * Check if URI is excluded
		 * @since  3.0
		 */
		$excludes = Conf::val( Base::O_MEDIA_LAZY_URI_EXC );
		if ( $excludes ) {
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $excludes );
			if ( $result ) {
				Debug2::debug( '[Media] bypass lazyload: hit URI Excludes setting: ' . $result );
				return;
			}
		}

		$cfg_lazy = Conf::val( Base::O_MEDIA_LAZY );
		$cfg_iframe_lazy = Conf::val( Base::O_MEDIA_IFRAME_LAZY );

		if ( $cfg_lazy ) {
			list( $src_list, $html_list, $placeholder_list ) = $this->_parse_img();
			$html_list_ori = $html_list;
		}

		// image lazy load
		if ( $cfg_lazy ) {

			$__placeholder = Placeholder::get_instance();

			foreach ( $html_list as $k => $v ) {
				$size = $placeholder_list[ $k ];
				$src = $src_list[ $k ];

				$html_list[ $k ] = $__placeholder->replace( $v, $src, $size );
			}
		}

		if ( $cfg_lazy ) {
			$this->content = str_replace( $html_list_ori, $html_list, $this->content );
		}

		// iframe lazy load
		if ( $cfg_iframe_lazy ) {
			$html_list = $this->_parse_iframe();
			$html_list_ori = $html_list;

			foreach ( $html_list as $k => $v ) {
				$snippet = Conf::val( Base::O_OPTM_NOSCRIPT_RM ) ? '' : '<noscript>' . $v . '</noscript>';
				$v = str_replace( ' src=', ' data-src=', $v );
				$v = str_replace( '<iframe ', '<iframe data-lazyloaded="1" src="about:blank" ', $v );
				$snippet = $v . $snippet;

				$html_list[ $k ] = $snippet;
			}

			$this->content = str_replace( $html_list_ori, $html_list, $this->content );
		}

		// Include lazyload lib js and init lazyload
		if ( $cfg_lazy || $cfg_iframe_lazy ) {
			if ( Conf::val( Base::O_MEDIA_LAZYJS_INLINE ) ) {
				$lazy_lib = '<script data-no-optimize="1">' . File::read( LSCWP_DIR . self::LIB_FILE_IMG_LAZYLOAD ) . '</script>';
			} else {
				$lazy_lib_url = LSWCP_PLUGIN_URL . self::LIB_FILE_IMG_LAZYLOAD;
				$lazy_lib = '<script src="' . $lazy_lib_url . '"></script>';
			}

			$this->content = str_replace( '</body>', $lazy_lib . '</body>', $this->content );
		}
	}


	/**
	 * Parse img src
	 *
	 * @since  1.4
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_img() {
		/**
		 * Exclude list
		 * @since 1.5
		 * @since  2.7.1 Changed to array
		 */
		$excludes = apply_filters( 'litespeed_media_lazy_img_excludes', Conf::val( Base::O_MEDIA_LAZY_EXC ) );

		$cls_excludes = apply_filters( 'litespeed_media_lazy_img_cls_excludes', Conf::val( Base::O_MEDIA_LAZY_CLS_EXC ) );
		$cls_excludes[] = 'skip-lazy'; // https://core.trac.wordpress.org/ticket/44427

		$src_list = array();
		$html_list = array();
		$placeholder_list = array();

		$content = preg_replace( '#<!--.*-->#sU', '', $this->content );
		/**
		 * Exclude parent classes
		 * @since  3.0
		 */
		$parent_cls_exc = apply_filters( 'litespeed_media_lazy_img_parent_cls_excludes', Conf::val( Base::O_MEDIA_LAZY_PARENT_CLS_EXC ) );
		if ( $parent_cls_exc ) {
			Debug2::debug2( '[Media] Lazyload Class excludes', $parent_cls_exc );
			foreach ( $parent_cls_exc as $v ) {
				$content = preg_replace( '#<(\w+) [^>]*class=(\'|")[^\'"]*' . preg_quote( $v, '#' ) . '[^\'"]*\2[^>]*>.*</\1>#sU', '', $content );
			}
		}

		preg_match_all( '#<img \s*([^>]+)/?>#isU', $content, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs = Utility::parse_attr( $match[ 1 ] );

			if ( empty( $attrs[ 'src' ] ) ) {
				continue;
			}

			/**
			 * Add src validation to bypass base64 img src
			 * @since  1.6
			 */
			if ( strpos( $attrs[ 'src' ], 'base64' ) !== false || substr( $attrs[ 'src' ], 0, 5 ) === 'data:' ) {
				Debug2::debug2( '[Media] lazyload bypassed base64 img' );
				continue;
			}

			Debug2::debug2( '[Media] lazyload found: ' . $attrs[ 'src' ] );

			if ( ! empty( $attrs[ 'data-no-lazy' ] ) || ! empty( $attrs[ 'data-skip-lazy' ] ) || ! empty( $attrs[ 'data-lazyloaded' ] ) || ! empty( $attrs[ 'data-src' ] ) || ! empty( $attrs[ 'data-srcset' ] ) ) {
				Debug2::debug2( '[Media] bypassed' );
				continue;
			}

			if ( ! empty( $attrs[ 'class' ] ) && $hit = Utility::str_hit_array( $attrs[ 'class' ], $cls_excludes ) ) {
				Debug2::debug2( '[Media] lazyload image cls excludes [hit] ' . $hit );
				continue;
			}

			/**
			 * Exclude from lazyload by setting
			 * @since  1.5
			 */
			if ( $excludes && Utility::str_hit_array( $attrs[ 'src' ], $excludes ) ) {
				Debug2::debug2( '[Media] lazyload image exclude ' . $attrs[ 'src' ] );
				continue;
			}

			/**
			 * Excldues invalid image src from buddypress avatar crop
			 * @see  https://wordpress.org/support/topic/lazy-load-breaking-buddypress-upload-avatar-feature
			 * @since  3.0
			 */
			if ( strpos( $attrs[ 'src' ], '{' ) !== false ) {
				Debug2::debug2( '[Media] image src has {} ' . $attrs[ 'src' ] );
				continue;
			}

			// to avoid multiple replacement
			if ( in_array( $match[ 0 ], $html_list ) ) {
				continue;
			}

			$placeholder = false;
			if ( ! empty( $attrs[ 'width' ] ) && ! empty( $attrs[ 'height' ] ) ) {
				$placeholder = $attrs[ 'width' ] . 'x' . $attrs[ 'height' ];
			}

			$src_list[] = $attrs[ 'src' ];
			$html_list[] = $match[ 0 ];
			$placeholder_list[] = $placeholder;
		}

		return array( $src_list, $html_list, $placeholder_list );
	}

	/**
	 * Parse iframe src
	 *
	 * @since  1.4
	 * @access private
	 * @return array  All the src & related raw html list
	 */
	private function _parse_iframe() {
		$cls_excludes = apply_filters( 'litespeed_media_iframe_lazy_cls_excludes', Conf::val( Base::O_MEDIA_IFRAME_LAZY_CLS_EXC ) );
		$cls_excludes[] = 'skip-lazy'; // https://core.trac.wordpress.org/ticket/44427

		$html_list = array();

		$content = preg_replace( '#<!--.*-->#sU', '', $this->content );

		/**
		 * Exclude parent classes
		 * @since  3.0
		 */
		$parent_cls_exc = apply_filters( 'litespeed_media_iframe_lazy_parent_cls_excludes', Conf::val( Base::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC ) );
		if ( $parent_cls_exc ) {
			Debug2::debug2( '[Media] Iframe Lazyload Class excludes', $parent_cls_exc );
			foreach ( $parent_cls_exc as $v ) {
				$content = preg_replace( '#<(\w+) [^>]*class=(\'|")[^\'"]*' . preg_quote( $v, '#' ) . '[^\'"]*\2[^>]*>.*</\1>#sU', '', $content );
			}
		}

		preg_match_all( '#<iframe \s*([^>]+)></iframe>#isU', $content, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs = Utility::parse_attr( $match[ 1 ] );

			if ( empty( $attrs[ 'src' ] ) ) {
				continue;
			}

			Debug2::debug2( '[Media] found iframe: ' . $attrs[ 'src' ] );

			if ( ! empty( $attrs[ 'data-no-lazy' ] ) ||  ! empty( $attrs[ 'data-skip-lazy' ] ) || ! empty( $attrs[ 'data-lazyloaded' ] ) || ! empty( $attrs[ 'data-src' ] ) ) {
				Debug2::debug2( '[Media] bypassed' );
				continue;
			}

			if ( ! empty( $attrs[ 'class' ] ) && $hit = Utility::str_hit_array( $attrs[ 'class' ], $cls_excludes ) ) {
				Debug2::debug2( '[Media] iframe lazyload cls excludes [hit] ' . $hit );
				continue;
			}

			if ( apply_filters( 'litespeed_iframe_lazyload_exc', false, $attrs[ 'src' ] ) ) {
				Debug2::debug2( '[Media] bypassed by filter' );
				continue;
			}

			// to avoid multiple replacement
			if ( in_array( $match[ 0 ], $html_list ) ) {
				continue;
			}

			$html_list[] = $match[ 0 ];
		}

		return $html_list;
	}

	/**
	 * Replace image src to webp
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function _replace_buffer_img_webp() {
		// preg_match_all( '#<img([^>]+?)src=([\'"\\\]*)([^\'"\s\\\>]+)([\'"\\\]*)([^>]*)>#i', $this->content, $matches );
		/**
		 * Added custom element & attribute support
		 * @since 2.2.2
		 */
		$webp_ele_to_check = Conf::val( Base::O_IMG_OPTM_WEBP_ATTR );

		foreach ( $webp_ele_to_check as $v ) {
			if ( ! $v || strpos( $v, '.' ) === false ) {
				Debug2::debug2( '[Media] buffer_webp no . attribute ' . $v );
				continue;
			}

			Debug2::debug2( '[Media] buffer_webp attribute ' . $v );

			$v = explode( '.', $v );
			$attr = preg_quote( $v[ 1 ], '#' );
			if ( $v[ 0 ] ) {
				$pattern = '#<' . preg_quote( $v[ 0 ], '#' ) . '([^>]+)' . $attr . '=([\'"])(.+)\g{2}#iU';
			}
			else {
				$pattern = '# ' . $attr . '=([\'"])(.+)\g{1}#iU';
			}

			preg_match_all( $pattern, $this->content, $matches );

			foreach ( $matches[ $v[ 0 ] ? 3 : 2 ] as $k2 => $url ) {
				// Check if is a DATA-URI
				if ( strpos( $url, 'data:image' ) !== false ) {
					continue;
				}

				if ( ! $url2 = $this->replace_webp( $url ) ) {
					continue;
				}

				if ( $v[ 0 ] ) {
					$html_snippet = sprintf(
						'<' . $v[ 0 ] . '%1$s' . $v[ 1 ] . '=%2$s',
						$matches[ 1 ][ $k2 ],
						$matches[ 2 ][ $k2 ] . $url2 . $matches[ 2 ][ $k2 ]
					);
				}
				else {
					$html_snippet = sprintf(
						' ' . $v[ 1 ] . '=%1$s',
						$matches[ 1 ][ $k2 ] . $url2 . $matches[ 1 ][ $k2 ]
					);
				}

				$this->content = str_replace( $matches[ 0 ][ $k2 ], $html_snippet, $this->content );

			}
		}

		// parse srcset
		// todo: should apply this to cdn too
		if ( Conf::val( Base::O_IMG_OPTM_WEBP_REPLACE_SRCSET ) ) {
			$this->content = Utility::srcset_replace( $this->content, array( $this, 'replace_webp' ) );
		}

		// Replace background-image
		preg_match_all( '#background\-image:(\s*)url\((.*)\)#iU', $this->content, $matches );
		foreach ( $matches[ 2 ] as $k => $url ) {
			// Check if is a DATA-URI
			if ( strpos( $url, 'data:image' ) !== false ) {
				continue;
			}

			/**
			 * Support quotes in src `background-image: url('src')`
			 * @since 2.9.3
			 */
			$url = trim( $url, '\'"' );

			if ( ! $url2 = $this->replace_webp( $url ) ) {
				continue;
			}

			// $html_snippet = sprintf( 'background-image:%1$surl(%2$s)', $matches[ 1 ][ $k ], $url2 );
			$html_snippet = str_replace( $url, $url2, $matches[ 0 ][ $k ] );
			$this->content = str_replace( $matches[ 0 ][ $k ], $html_snippet, $this->content );
		}
	}

	/**
	 * Hook to wp_get_attachment_image_src
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  array $img The URL of the attachment image src, the width, the height
	 * @return array
	 */
	public function webp_attach_img_src( $img ) {
		Debug2::debug2( '[Media] changing attach src: ' . $img[0] );
		if ( $img && $url = $this->replace_webp( $img[ 0 ] ) ) {
			$img[ 0 ] = $url;
		}
		return $img;
	}

	/**
	 * Try to replace img url
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  string $url
	 * @return string
	 */
	public function webp_url( $url ) {
		if ( $url && $url2 = $this->replace_webp( $url ) ) {
			$url = $url2;
		}
		return $url;
	}

	/**
	 * Hook to replace WP responsive images
	 *
	 * @since  1.6.2
	 * @access public
	 * @param  array $srcs
	 * @return array
	 */
	public function webp_srcset( $srcs ) {
		if ( $srcs ) {
			foreach ( $srcs as $w => $data ) {
				if( ! $url = $this->replace_webp( $data[ 'url' ] ) ) {
					continue;
				}
				$srcs[ $w ][ 'url' ] = $url;
			}
		}
		return $srcs;
	}

	/**
	 * Replace internal image src to webp
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function replace_webp( $url ) {
		Debug2::debug2( '[Media] webp replacing: ' . $url, 4 );

		if ( substr( $url, -5 ) == '.webp' ) {
			Debug2::debug2( '[Media] already webp' );
			return false;
		}

		/**
		 * WebP API hook
		 * NOTE: As $url may contain query strings, WebP check will need to parse_url before appending .webp
		 * @since  2.9.5
		 * @see  #751737 - API docs for WEBP generation
		 */
		if ( apply_filters( 'litespeed_media_check_ori', Utility::is_internal_file( $url ), $url ) ) {
			// check if has webp file
			if ( apply_filters( 'litespeed_media_check_webp', Utility::is_internal_file( $url, 'webp' ), $url ) ) {
				$url .= '.webp';
			}
			else {
				Debug2::debug2( '[Media] -no WebP file, bypassed' );
				return false;
			}
		}
		else {
			Debug2::debug2( '[Media] -no file, bypassed' );
			return false;
		}

		Debug2::debug2( '[Media] - replaced to: ' . $url );

		return $url;
	}

}
<?php
/**
 * The class to optimize image.
 *
 * @since 		2.0
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Img_Optm extends Base
{
	protected static $_instance;

	const CLOUD_ACTION_NEW_REQ = 'new_req';
	const CLOUD_ACTION_TAKEN = 'taken';
	const CLOUD_ACTION_REQUEST_DESTROY = 'imgoptm_destroy';
	const CLOUD_ACTION_CLEAN = 'clean';

	const TYPE_NEW_REQ = 'new_req';
	const TYPE_RESCAN = 'rescan';
	const TYPE_DESTROY = 'destroy';
	const TYPE_CLEAN = 'clean';
	const TYPE_PULL = 'pull';
	const TYPE_BATCH_SWITCH_ORI = 'batch_switch_ori';
	const TYPE_BATCH_SWITCH_OPTM = 'batch_switch_optm';
	const TYPE_CALC_BKUP = 'calc_bkup';
	const TYPE_RESET_ROW = 'reset_row';
	const TYPE_RM_BKUP = 'rm_bkup';

	const STATUS_RAW 		= 0; // 'raw';
	const STATUS_REQUESTED 	= 3; // 'requested';
	const STATUS_NOTIFIED 	= 6; // 'notified';
	const STATUS_DUPLICATED 	= 8; // 'duplicated';
	const STATUS_PULLED 		= 9; // 'pulled';
	const STATUS_FAILED 		= -1; //'failed';
	const STATUS_MISS 		= -3; // 'miss';
	const STATUS_ERR_FETCH 	= -5; // 'err_fetch';
	const STATUS_ERR_404 	= -6; // 'err_404';
	const STATUS_ERR_OPTM 	= -7; // 'err_optm';
	const STATUS_XMETA 		= -8; // 'xmeta';
	const STATUS_ERR 		= -9; // 'err';
	const DB_SIZE = 'litespeed-optimize-size';

	const DB_NEED_PULL = 'need_pull';

	private $wp_upload_dir;
	private $tmp_pid;
	private $tmp_path;
	private $_img_in_queue = array();
	private $_img_in_queue_missed = array();
	private $_table_img_optm;
	private $_table_img_optming;
	private $_cron_ran = false;

	private $__media;
	protected $_summary;

	/**
	 * Init
	 *
	 * @since  2.0
	 * @access protected
	 */
	protected function __construct()
	{
		Debug2::debug2( '[ImgOptm] init' );

		$this->wp_upload_dir = wp_upload_dir();
		$this->__media = Media::get_instance();
		$this->_table_img_optm = Data::get_instance()->tb( 'img_optm' );
		$this->_table_img_optming = Data::get_instance()->tb( 'img_optming' );

		$this->_summary = self::get_summary();
	}

	/**
	 * This will gather latest certain images from wp_posts to litespeed_img_optm
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _gather_images()
	{
		global $wpdb;

		Data::get_instance()->tb_create( 'img_optm' );
		Data::get_instance()->tb_create( 'img_optming' );

		// Get images
		$q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			LEFT JOIN `$this->_table_img_optm` c ON c.post_id = a.ID
			WHERE a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
				AND b.meta_key = '_wp_attachment_metadata'
				AND c.id IS NULL
			ORDER BY a.ID DESC
			LIMIT %d
			";
		$q = $wpdb->prepare( $q, apply_filters( 'litespeed_img_gather_max_rows', 200 ) );
		$list = $wpdb->get_results( $q );

		if ( ! $list ) {
			$msg = __( 'No new image gathered.', 'litespeed-cache' );
			Admin_Display::succeed( $msg );

			Debug2::debug( '[Img_Optm] gather_images bypass: no new image found' );
			return;
		}

		foreach ( $list as $v ) {

			$meta_value = $this->_parse_wp_meta_value( $v );
			if ( ! $meta_value ) {
				$this->_save_err_meta( $v->post_id );
				continue;
			}

			$this->tmp_pid = $v->post_id;
			$this->tmp_path = pathinfo( $meta_value[ 'file' ], PATHINFO_DIRNAME ) . '/';
			$this->_append_img_queue( $meta_value, true );
			if ( ! empty( $meta_value[ 'sizes' ] ) ) {
				array_map( array( $this, '_append_img_queue' ), $meta_value[ 'sizes' ] );
			}
		}

		// Save missed images into img_optm
		$this->_save_err_missed();

		if ( empty( $this->_img_in_queue ) ) {
			Debug2::debug( '[Img_Optm] gather_images bypass: empty _img_in_queue' );
			return;
		}

		// Save to DB
		$this->_save_raw();

		$msg = sprintf( __( 'Gathered %d images successfully.', 'litespeed-cache' ), count( $this->_img_in_queue ) );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Add a new img to queue which will be pushed to request
	 *
	 * @since 1.6
	 * @access private
	 */
	private function _append_img_queue( $meta_value, $is_ori_file = false )
	{
		if ( empty( $meta_value[ 'file' ] ) || empty( $meta_value[ 'width' ] ) || empty( $meta_value[ 'height' ] ) ) {
			Debug2::debug2( '[Img_Optm] bypass image due to lack of file/w/h: pid ' . $this->tmp_pid, $meta_value );
			return;
		}

		$short_file_path = $meta_value[ 'file' ];

		if ( ! $is_ori_file ) {
			$short_file_path = $this->tmp_path . $short_file_path;
		}

		// check file exists or not
		$_img_info = $this->__media->info( $short_file_path, $this->tmp_pid );

		if ( ! $_img_info || ! in_array( pathinfo( $short_file_path, PATHINFO_EXTENSION ), array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
			$this->_img_in_queue_missed[] = array(
				'pid'	=> $this->tmp_pid,
				'src'	=> $short_file_path,
			);
			Debug2::debug2( '[Img_Optm] bypass image due to file not exist: pid ' . $this->tmp_pid . ' ' . $short_file_path );
			return;
		}

		// Debug2::debug2( '[Img_Optm] adding image: pid ' . $this->tmp_pid );

		$this->_img_in_queue[] = array(
			'pid'	=> $this->tmp_pid,
			'md5'	=> $_img_info[ 'md5' ],
			'url'	=> $_img_info[ 'url' ],
			'src'	=> $short_file_path, // not needed in LiteSpeed IAPI, just leave for local storage after post
			'mime_type'	=> ! empty( $meta_value[ 'mime-type' ] ) ? $meta_value[ 'mime-type' ] : '' ,
			'src_filesize'	=> $_img_info[ 'size' ], // Only used for local storage and calculation
		);
	}

	/**
	 * Save failed to parse meta info
	 *
	 * @since 2.1.1
	 * @access private
	 */
	private function _save_err_meta( $pid )
	{
		$data = array(
			$pid,
			self::STATUS_XMETA,
		);
		$this->_insert_img_optm( $data, 'post_id, optm_status' );
		Debug2::debug( '[Img_Optm] Mark wrong meta [pid] ' . $pid );
	}

	/**
	 * Saved non-existed images into img_optm
	 *
	 * @since 2.0
	 * @access private
	 */
	private function _save_err_missed()
	{
		if ( ! $this->_img_in_queue_missed ) {
			return;
		}
		Debug2::debug( '[Img_Optm] Missed img need to save [total] ' . count( $this->_img_in_queue_missed ) );

		$data_to_add = array();
		foreach ( $this->_img_in_queue_missed as $src_data ) {
			$data_to_add[] = $src_data[ 'pid' ];
			$data_to_add[] = self::STATUS_MISS;
			$data_to_add[] = $src_data[ 'src' ];
		}
		$this->_insert_img_optm( $data_to_add, 'post_id, optm_status, src' );
	}

	/**
	 * Save gathered image raw data
	 *
	 * @since  3.0
	 */
	private function _save_raw()
	{
		$data = array();
		foreach ( $this->_img_in_queue as $v ) {
			$data[] = $v[ 'pid' ];
			$data[] = self::STATUS_RAW;
			$data[] = $v[ 'src' ];
			$data[] = $v[ 'src_filesize' ];
		}
		$this->_insert_img_optm( $data );

		Debug2::debug( '[Img_Optm] Added raw images [total] ' . count( $this->_img_in_queue ) );
	}

	/**
	 * Insert data into table img_optm
	 *
	 * @since 2.0
	 * @access private
	 */
	private function _insert_img_optm( $data, $fields = 'post_id, optm_status, src, src_filesize' )
	{
		if ( empty( $data ) ) {
			return;
		}

		global $wpdb;

		$q = "INSERT INTO `$this->_table_img_optm` ( $fields ) VALUES ";

		// Add placeholder
		$q .= Utility::chunk_placeholder( $data, $fields );

		// Store data
		$wpdb->query( $wpdb->prepare( $q, $data ) );
	}

	/**
	 * Auto send optm request
	 *
	 * @since  2.4.1
	 * @access public
	 */
	public static function cron_auto_request()
	{
		if ( ! defined( 'DOING_CRON' ) ) {
			return false;
		}

		$instance = self::get_instance();
		$instance->new_req();
	}

	/**
	 * Calculate wet run allowance
	 *
	 * @since 3.0
	 */
	public function wet_limit()
	{
		$wet_limit = 1;
		if ( ! empty( $this->_summary[ 'img_taken' ] ) ) {
			$wet_limit = pow( $this->_summary[ 'img_taken' ], 2 );
		}

		if ( $wet_limit == 1 && ! empty( $this->_summary[ 'img_status.' . self::STATUS_ERR_OPTM ] ) ) {
			$wet_limit = pow( $this->_summary[ 'img_status.' . self::STATUS_ERR_OPTM ], 2 );
		}

		if ( $wet_limit < Cloud::IMG_OPTM_DEFAULT_GROUP ) {
			return $wet_limit;
		}

		// No limit
		return false;
	}

	/**
	 * Check if need to gather at this moment
	 *
	 * @since  3.0
	 */
	public function need_gather()
	{
		global $wpdb;

		if ( ! Data::get_instance()->tb_exist( 'img_optm' ) || ! Data::get_instance()->tb_exist( 'img_optming' ) ) {
			Debug2::debug( '[Img_Optm] need gather due to no db tables' );
			return true;
		}

		$q = "SELECT * FROM `$this->_table_img_optm` WHERE optm_status = %d LIMIT 1";
		$q = $wpdb->prepare( $q, self::STATUS_RAW );

		if ( ! $wpdb->get_row( $q ) ) {
			Debug2::debug( '[Img_Optm] need gather due to no new raw image found' );
			return true;
		}

		return false;
	}

	/**
	 * Push raw img to image optm server
	 *
	 * @since 1.6
	 * @access public
	 */
	public function new_req()
	{
		global $wpdb;

		// Check if has credit to push
		$allowance = Cloud::get_instance()->allowance( Cloud::SVC_IMG_OPTM );

		$wet_limit = $this->wet_limit();

		Debug2::debug( "[Img_Optm] allowance_max $allowance wet_limit $wet_limit" );
		if ( $wet_limit && $wet_limit < $allowance ) {
			$allowance = $wet_limit;
		}

		if ( ! $allowance ) {
			Debug2::debug( '[Img_Optm] ❌ No credit' );
			Admin_Display::error( Error::msg( 'lack_of_quota' ) );
			return;
		}

		Debug2::debug( '[Img_Optm] preparing images to push' );

		if ( $this->need_gather() ) {
			$this->_gather_images();
			return;
		}

		$q = "SELECT * FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d";
		$q = $wpdb->prepare( $q, array( self::STATUS_RAW, $allowance ) );

		$this->_img_in_queue = $wpdb->get_results( $q, ARRAY_A );

		// Limit maximum number of items waiting (status requested) to the allowance
		$q = "SELECT COUNT(1) FROM `$this->_table_img_optming` WHERE optm_status = %d";
		$q = $wpdb->prepare( $q, array( self::STATUS_REQUESTED) );
		$total_requested = $wpdb->get_var( $q );
		$max_requested = $allowance * 1;

		if ( $total_requested > $max_requested ) {
			Debug2::debug( '[Img_Optm] ❌ Too many queued images ('.$total_requested.' > '.$max_requested.')' );
			Admin_Display::error( Error::msg( 'too_many_requested' ) );
			return;
		}

		// Limit maximum number of items waiting to be pulled
		$q = "SELECT COUNT(1) FROM `$this->_table_img_optming` WHERE optm_status = %d";
		$q = $wpdb->prepare( $q, array( self::STATUS_NOTIFIED) );
		$total_notified = $wpdb->get_var( $q );
		$max_notified = $allowance * 5;

		if ( $total_notified > $max_notified ) {
			Debug2::debug( '[Img_Optm] ❌ Too many notified images ('.$total_notified.' > '.$max_notified.')' );
			Admin_Display::error( Error::msg( 'too_many_notified' ) );
			return;
		}

		$num_a = count( $this->_img_in_queue );
		Debug2::debug( '[Img_Optm] Images found: ' . $num_a );
		$this->_filter_duplicated_src();
		$this->_filter_invalid_src();
		$num_b = count( $this->_img_in_queue );
		if ( $num_b != $num_a ) {
			Debug2::debug( '[Img_Optm] Images after filtered duplicated/invalid src: ' . $num_b );
		}

		if ( ! $num_b ) {
			Debug2::debug( '[Img_Optm] No image in queue' );
			return;
		}

		// Push to Cloud server
		$accepted_imgs = $this->_send_request();

		if ( ! $accepted_imgs ) {
			return;
		}

		$placeholder1 = Admin_Display::print_plural( $num_b, 'image' );
		$placeholder2 = Admin_Display::print_plural( $accepted_imgs, 'image' );
		$msg = sprintf( __( 'Pushed %1$s to Cloud server, accepted %2$s.', 'litespeed-cache' ), $placeholder1, $placeholder2 );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Filter duplicated src in work table and $this->_img_in_queue, then mark them as duplicated
	 *
	 * @since 2.0
	 * @access private
	 */
	private function _filter_duplicated_src()
	{
		global $wpdb;

		$srcpath_list = array();

		$list = $wpdb->get_results( "SELECT src FROM $this->_table_img_optming" );
		foreach ( $list as $v ) {
			$srcpath_list[] = $v->src;
		}

		$img_in_queue_duplicated = array();
		foreach ( $this->_img_in_queue as $k => $v ) {
			if ( in_array( $v[ 'src' ], $srcpath_list ) ) {
				$img_in_queue_duplicated[] = $v[ 'id' ];
				unset( $this->_img_in_queue[ $k ] );
				continue;
			}

			$srcpath_list[] = $v[ 'src' ];
		}

		if ( ! $img_in_queue_duplicated ) {
			return;
		}

		$count = count( $img_in_queue_duplicated );
		$msg = sprintf( __( 'Bypassed %1$s duplicated images.', 'litespeed-cache' ), $count );
		Admin_Display::succeed( $msg );

		Debug2::debug( '[Img_Optm] Found duplicated src [total_img_duplicated] ' . $count );

		// Update img table
		$ids = implode( ',', $img_in_queue_duplicated );
		$q = "UPDATE `$this->_table_img_optm` SET optm_status = '" . self::STATUS_DUPLICATED . "' WHERE id IN ( $ids )";
		$wpdb->query( $q );
	}

	/**
	 * Filter the invalid src before sending
	 *
	 * @since 3.0.8.3
	 * @access private
	 */
	private function _filter_invalid_src()
	{
		global $wpdb;

		$img_in_queue_invalid = array();
		foreach ( $this->_img_in_queue as $k => $v ) {
			if ( $v[ 'src' ] ) {
				$extension = pathinfo( $v[ 'src' ], PATHINFO_EXTENSION );
			}
			if ( ! $v[ 'src' ] || empty( $extension ) || ! in_array( $extension, array( 'jpg', 'jpeg', 'png', 'gif' ) ) ) {
				$img_in_queue_invalid[] = $v[ 'id' ];
				unset( $this->_img_in_queue[ $k ] );
				continue;
			}
		}

		if ( ! $img_in_queue_invalid ) {
			return;
		}

		$count = count( $img_in_queue_invalid );
		$msg = sprintf( __( 'Cleared %1$s invalid images.', 'litespeed-cache' ), $count );
		Admin_Display::succeed( $msg );

		Debug2::debug( '[Img_Optm] Found invalid src [total] ' . $count );

		// Update img table
		$ids = implode( ',', $img_in_queue_invalid );
		$q = "DELETE FROM `$this->_table_img_optm` WHERE id IN ( $ids )";
		$wpdb->query( $q );
	}

	/**
	 * Push img request to Cloud server
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _send_request()
	{
		global $wpdb;

		$list = array();
		foreach ( $this->_img_in_queue as $v ) {
			$_img_info = $this->__media->info( $v[ 'src' ], $v[ 'post_id' ] );

			if ( empty( $_img_info[ 'url' ] ) || empty( $_img_info[ 'md5' ] ) ) {
				// attachment doesn't exist, delete the record
				$q = "DELETE FROM `$this->_table_img_optm` WHERE post_id = %d";
				$wpdb->query( $wpdb->prepare( $q, $v[ 'post_id' ] ) );
				continue;
			}

			/**
			 * Filter `litespeed_img_optm_options_per_image`
			 * @since 2.4.2
			 */
			/**
			 * To use the filter `litespeed_img_optm_options_per_image` to manipulate `optm_options`, do below:
			 *
			 * 		add_filter( 'litespeed_img_optm_options_per_image', function( $optm_options, $file ){
			 * 			// To add optimize original image
			 * 			if ( Your conditions ) {
			 * 				$optm_options |= API::IMG_OPTM_BM_ORI;
			 * 			}
			 *
			 * 			// To add optimize webp image
			 * 			if ( Your conditions ) {
			 * 				$optm_options |= API::IMG_OPTM_BM_WEBP;
			 * 			}
			 *
			 * 			// To turn on lossless optimize for this image e.g. if filename contains `magzine`
			 * 			if ( strpos( $file, 'magzine' ) !== false ) {
			 * 				$optm_options |= API::IMG_OPTM_BM_LOSSLESS;
			 * 			}
			 *
			 * 			// To set keep exif info for this image
			 * 			if ( Your conditions ) {
			 * 				$optm_options |= API::IMG_OPTM_BM_EXIF;
			 * 			}
			 *
			 *			return $optm_options;
			 *   	} );
			 *
			 */
			$optm_options = apply_filters( 'litespeed_img_optm_options_per_image', 0, $v[ 'src' ] );

			$img = array(
				'id'	=> $v[ 'id' ],
				'url'	=> $_img_info[ 'url' ],
				'md5'	=> $_img_info[ 'md5' ],
			);
			if ( $optm_options ) {
				$img[ 'optm_options' ] = $optm_options;
			}

			$list[] = $img;
		}

		if ( ! $list ) {
			$msg = __( 'No valid image found in the current request.', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		$data = array(
			'action'		=> self::CLOUD_ACTION_NEW_REQ,
			'list' 			=> json_encode( $list ),
			'optm_ori'		=> Conf::val( Base::O_IMG_OPTM_ORI ) ? 1 : 0,
			'optm_webp'		=> Conf::val( Base::O_IMG_OPTM_WEBP ) ? 1 : 0,
			'optm_lossless'	=> Conf::val( Base::O_IMG_OPTM_LOSSLESS ) ? 1 : 0,
			'keep_exif'		=> Conf::val( Base::O_IMG_OPTM_EXIF ) ? 1 : 0,
		);

		// Push to Cloud server
		$json = Cloud::post( Cloud::SVC_IMG_OPTM, $data );
		if ( ! $json ) {
			return;
		}

		// Check data format
		if ( empty( $json[ 'ids' ] ) ) {
			Debug2::debug( '[Img_Optm] Failed to parse response data from Cloud server ', $json );
			$msg = __( 'No valid image found by Cloud server in the current request.', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		Debug2::debug( '[Img_Optm] Returned data from Cloud server count: ' . count( $json[ 'ids' ] ) );

		$ids = implode( ',', array_map( 'intval', $json[ 'ids' ] ) );
		// Update img table
		$q = "UPDATE `$this->_table_img_optm` SET optm_status = '" . self::STATUS_REQUESTED . "' WHERE id IN ( $ids )";
		$wpdb->query( $q );

		// Save to work table
		$q = "INSERT INTO `$this->_table_img_optming` ( id, post_id, optm_status, src ) SELECT id, post_id, optm_status, src FROM $this->_table_img_optm WHERE id IN ( $ids )";
		$wpdb->query( $q );

		$this->_summary[ 'last_requested' ] = time();
		self::save_summary();

		return count( $json[ 'ids' ] );
	}

	/**
	 * Cloud server notify Client img status changed
	 *
	 * @since  1.6
	 * @since  1.6.5 Added err/request status free switch
	 * @access public
	 */
	public function notify_img()
	{
		// Interval validation to avoid hacking domain_key
		if ( ! empty( $this->_summary[ 'notify_ts_err' ] ) && time() - $this->_summary[ 'notify_ts_err' ] < 3 ) {
			return Cloud::err( 'too_often' );
		}

		// Validate key
		if ( empty( $_POST[ 'domain_key' ] ) || $_POST[ 'domain_key' ] !== md5( Conf::val( Base::O_API_KEY ) ) ) {
			$this->_summary[ 'notify_ts_err' ] = time();
			self::save_summary();
			return Cloud::err( 'wrong_key' );
		}

		global $wpdb;

		$notified_data = $_POST[ 'data' ];
		if ( empty( $notified_data ) || ! is_array( $notified_data ) ) {
			Debug2::debug( '[Img_Optm] ❌ notify exit: no notified data' );
			return Cloud::err( 'no notified data' );
		}

		if ( empty( $_POST[ 'server' ] ) || substr( $_POST[ 'server' ], -11 ) !== '.quic.cloud' ) {
			Debug2::debug( '[Img_Optm] notify exit: no/wrong server' );
			return Cloud::err( 'no/wrong server' );
		}

		$_allowed_status = array(
			self::STATUS_NOTIFIED, 		// 6 -> 'notified';
			self::STATUS_ERR_FETCH, 	// -5 -> 'err_fetch';
			self::STATUS_ERR_404, 		// -6 -> 'err_404';
			self::STATUS_ERR_OPTM, 		// -7 -> 'err_optm';
			self::STATUS_ERR, 			// -9 -> 'err';
		);

		if ( empty( $_POST[ 'status' ] ) || ! in_array( $_POST[ 'status' ], $_allowed_status ) ) {
			Debug2::debug( '[Img_Optm] notify exit: no/wrong status', $_POST );
			return Cloud::err( 'no/wrong status' );
		}

		$status = $_POST[ 'status' ];

		$last_log_pid = 0;

		if ( empty( $this->_summary[ 'reduced' ] ) ) {
			$this->_summary[ 'reduced' ] = 0;
		}

		if ( $status == self::STATUS_NOTIFIED ) {
			// Notified data format: [ img_optm_id => [ id=>, src_size=>, ori=>, ori_md5=>, ori_reduced=>, webp=>, webp_md5=>, webp_reduced=> ] ]
			$q = "SELECT a.*, b.meta_id as b_meta_id, b.meta_value AS b_optm_info
					FROM `$this->_table_img_optming` a
					LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.post_id AND b.meta_key = %s
					WHERE a.id IN ( " . implode( ',', array_fill( 0, count( $notified_data ), '%d' ) ) . " )";
			$list = $wpdb->get_results( $wpdb->prepare( $q, array_merge( array( self::DB_SIZE ), array_keys( $notified_data ) ) ) );
			foreach ( $list as $v ) {
				$json = $notified_data[ $v->id ];

				$server = ! empty( $json['server'] ) ? $json['server'] : $_POST['server'];

				$server_info = array(
					'server'	=> $server,
				);

				// Save server side ID to send taken notification after pulled
				$server_info[ 'id' ] = $json[ 'id' ];
				if ( !empty( $json['file_id'] ) ) {
					$server_info['file_id'] = $json['file_id'];
				}

				// Optm info array
				$postmeta_info =  array(
					'ori_total' => 0,
					'ori_saved' => 0,
					'webp_total' => 0,
					'webp_saved' => 0,
				);
				// Init postmeta_info for the first one
				if ( ! empty( $v->b_meta_id ) ) {
					foreach ( maybe_unserialize( $v->b_optm_info ) as $k2 => $v2 ) {
						$postmeta_info[ $k2 ] += $v2;
					}
				}

				if ( ! empty( $json[ 'ori' ] ) ) {
					$server_info[ 'ori_md5' ] = $json[ 'ori_md5' ];
					$server_info[ 'ori' ] = $json[ 'ori' ];

					// Append meta info
					$postmeta_info[ 'ori_total' ] += $json[ 'src_size' ];
					$postmeta_info[ 'ori_saved' ] += $json[ 'ori_reduced' ]; // optimized image size info in img_optm tb will be updated when pull

					$this->_summary[ 'reduced' ] += $json[ 'ori_reduced' ];
				}

				if ( ! empty( $json[ 'webp' ] ) ) {
					$server_info[ 'webp_md5' ] = $json[ 'webp_md5' ];
					$server_info[ 'webp' ] = $json[ 'webp' ];

					// Append meta info
					$postmeta_info[ 'webp_total' ] += $json[ 'src_size' ];
					$postmeta_info[ 'webp_saved' ] += $json[ 'webp_reduced' ];

					$this->_summary[ 'reduced' ] += $json[ 'webp_reduced' ];
				}

				// Update status and data in working table
				$q = "UPDATE `$this->_table_img_optming` SET optm_status = %d, server_info = %s WHERE id = %d ";
				$wpdb->query( $wpdb->prepare( $q, array( $status, json_encode( $server_info ), $v->id ) ) );

				// Update postmeta for optm summary
				$postmeta_info = serialize( $postmeta_info );
				if ( ! empty( $v->b_meta_id ) ) {
					$q = "UPDATE `$wpdb->postmeta` SET meta_value = %s WHERE meta_id = %d ";
					$wpdb->query( $wpdb->prepare( $q, array( $postmeta_info, $v->b_meta_id ) ) );
				}
				else {
					Debug2::debug( '[Img_Optm] New size info [pid] ' . $v->post_id );
					$q = "INSERT INTO `$wpdb->postmeta` ( post_id, meta_key, meta_value ) VALUES ( %d, %s, %s )";
					$wpdb->query( $wpdb->prepare( $q, array( $v->post_id, self::DB_SIZE, $postmeta_info ) ) );
				}

				// write log
				$pid_log = $last_log_pid == $v->post_id ? '.' : $v->post_id;
				Debug2::debug( '[Img_Optm] notify_img [status] ' . $status . " \t\t[pid] " . $pid_log . " \t\t[id] " . $v->id );
				$last_log_pid = $v->post_id;
			}

			self::save_summary();

			// Mark need_pull tag for cron
			self::update_option( self::DB_NEED_PULL, self::STATUS_NOTIFIED );
		}
		elseif ( $status == self::STATUS_ERR_FETCH ) {
			// Only update working table
			$q = "UPDATE `$this->_table_img_optming` SET optm_status = %d WHERE id IN ( " . implode( ',', array_fill( 0, count( $notified_data ), '%d' ) ) . " ) ";
			$wpdb->query( $wpdb->prepare( $q, array_merge( array( $status ), $notified_data ) ) );
		}
		else { // Other errors will directly update img_optm table and remove the working records

			// Delete from working table
			$q = "DELETE FROM `$this->_table_img_optming` WHERE id IN ( " . implode( ',', array_fill( 0, count( $notified_data ), '%d' ) ) . " ) ";
			$wpdb->query( $wpdb->prepare( $q, $notified_data ) );

			// Update img_optm
			$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE id IN ( " . implode( ',', array_fill( 0, count( $notified_data ), '%d' ) ) . " ) ";
			$wpdb->query( $wpdb->prepare( $q, array_merge( array( $status ), $notified_data ) ) );

			// Log the failed optm to summary, to be counted in wet_limit
			if ( $status == self::STATUS_ERR_OPTM ) {
				if ( empty( $this->_summary[ 'img_status.' . $status ] ) ) {
					$this->_summary[ 'img_status.' . $status ] = 0;
				}
				$this->_summary[ 'img_status.' . $status ] += count( $notified_data );
				self::save_summary();
			}
		}

		// redo count err

		return Cloud::ok( array( 'count' => count( $notified_data ) ) );
	}

	/**
	 * Cron pull optimized img
	 *
	 * @since  1.6
	 * @access public
	 */
	public static function cron_pull()
	{
		if ( ! defined( 'DOING_CRON' ) ) {
			return;
		}

		Debug2::debug( '[Img_Optm] cron_pull running' );

		$tag = self::get_option( self::DB_NEED_PULL );

		if ( ! $tag || $tag != self::STATUS_NOTIFIED ) {
			Debug2::debug( '[Img_Optm] ❌ no need pull [tag] ' . $tag );
			return;
		}

		self::get_instance()->pull();
	}

	/**
	 * Pull optimized img
	 *
	 * @since  1.6
	 * @access public
	 */
	public function pull( $manual = false )
	{
		global $wpdb;

		Debug2::debug( '[Img_Optm] ' . ( $manual ? 'Manually' : 'Cron' ) . ' pull started' );

		if ( $this->cron_running() ) {
			Debug2::debug( '[Img_Optm] Pull cron is running' );

			$msg = __( 'Pull Cron is running', 'litespeed-cache' );
			Admin_Display::error( $msg );
			return;
		}

		$q = "SELECT * FROM `$this->_table_img_optming` WHERE optm_status = %d ORDER BY id LIMIT 1";
		$_q = $wpdb->prepare( $q, self::STATUS_NOTIFIED );

		$optm_ori = Conf::val( Base::O_IMG_OPTM_ORI );
		$rm_ori_bkup = Conf::val( Base::O_IMG_OPTM_RM_BKUP );
		$optm_webp = Conf::val( Base::O_IMG_OPTM_WEBP );

		// pull 1 min images each time
		$end_time = time() + 60;

		$total_pulled_ori = 0;
		$total_pulled_webp = 0;
		$beginning = time();

		$server_list = array();

		set_time_limit( $end_time + 20 );
		while ( time() < $end_time ) {
			$row_img = $wpdb->get_row( $_q );
			if ( ! $row_img ) {
				// No image
				break;
			}

			/**
			 * Update cron timestamp to avoid duplicated running
			 * @since  1.6.2
			 */
			$this->_update_cron_running();

			$local_file = $this->wp_upload_dir[ 'basedir' ] . '/' . $row_img->src;

			// Save ori optm image
			$target_size = 0;

			$server_info = json_decode( $row_img->server_info, true );
			if ( ! empty( $server_info[ 'ori' ] ) ) {
				/**
				 * Use wp orignal get func to avoid allow_url_open off issue
				 * @since  1.6.5
				 */
				$response = wp_remote_get( $server_info[ 'server' ] . '/' . $server_info[ 'ori' ], array( 'timeout' => 60 ) );
				if ( is_wp_error( $response ) ) {
					$error_message = $response->get_error_message();
					Debug2::debug( '[Img_Optm] ❌ failed to pull image: ' . $error_message );
					return;
				}

				if ( $response[ 'response' ][ 'code' ] == 404 ) {
					$this->_step_back_image( $row_img->id );

					$msg = __( 'Some optimized image file(s) has expired and was cleared.', 'litespeed-cache' );
					Admin_Display::error( $msg );
					continue;
				}

				file_put_contents( $local_file . '.tmp', $response[ 'body' ] );

				if ( ! file_exists( $local_file . '.tmp' ) || ! filesize( $local_file . '.tmp' ) || md5_file( $local_file . '.tmp' ) !== $server_info[ 'ori_md5' ] ) {
					Debug2::debug( '[Img_Optm] ❌ Failed to pull optimized img: file md5 mismatch [url] ' . $server_info[ 'server' ] . '/' . $server_info[ 'ori' ] . ' [server_md5] ' . $server_info[ 'ori_md5' ] );

					// Update status to failed
					$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE id = %d ";
					$wpdb->query( $wpdb->prepare( $q, array( self::STATUS_FAILED, $row_img->id ) ) );
					// Delete working table
					$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
					$wpdb->query( $wpdb->prepare( $q, $row_img->id ) );

					$msg = __( 'One or more pulled images does not match with the notified image md5', 'litespeed-cache' );
					Admin_Display::error( $msg );
					continue;
				}

				// Backup ori img
				if ( ! $rm_ori_bkup ) {
					$extension = pathinfo( $local_file, PATHINFO_EXTENSION );
					$bk_file = substr( $local_file, 0, -strlen( $extension ) ) . 'bk.' . $extension;
					file_exists( $local_file ) && rename( $local_file, $bk_file );
				}

				// Replace ori img
				rename( $local_file . '.tmp', $local_file );

				Debug2::debug( '[Img_Optm] Pulled optimized img: ' . $local_file );

				$target_size = filesize( $local_file );

				/**
				 * API Hook
				 * @since  2.9.5
				 * @since  3.0 $row_img has less elements now. Most useful ones are `post_id`/`src`
				 */
				do_action( 'litespeed_img_pull_ori', $row_img, $local_file );

				$total_pulled_ori ++;
			}

			// Save webp image
			$webp_size = 0;

			if ( ! empty( $server_info[ 'webp' ] ) ) {
				// Fetch
				$response = wp_remote_get( $server_info[ 'server' ] . '/' . $server_info[ 'webp' ], array( 'timeout' => 60 ) );
				if ( is_wp_error( $response ) ) {
					$error_message = $response->get_error_message();
					Debug2::debug( '[Img_Optm] failed to pull webp image: ' . $error_message );
					return;
				}

				if ( $response[ 'response' ][ 'code' ] == 404 ) {
					$this->_step_back_image( $row_img->id );

					$msg = __( 'Optimized WebP file expired and was cleared.', 'litespeed-cache' );
					Admin_Display::error( $msg );
					return;
				}

				file_put_contents( $local_file . '.webp', $response[ 'body' ] );

				if ( ! file_exists( $local_file . '.webp' ) || ! filesize( $local_file . '.webp' ) || md5_file( $local_file . '.webp' ) !== $server_info[ 'webp_md5' ] ) {
					Debug2::debug( '[Img_Optm] ❌ Failed to pull optimized webp img: file md5 mismatch, server md5: ' . $server_info[ 'webp_md5' ] );

					// update status to failed
					$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE id = %d ";
					$wpdb->query( $wpdb->prepare( $q, array( self::STATUS_FAILED, $row_img->id ) ) );
					// Delete working table
					$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
					$wpdb->query( $wpdb->prepare( $q, $row_img->id ) );

					$msg = __( 'Pulled WebP image md5 does not match the notified WebP image md5.', 'litespeed-cache' );
					Admin_Display::error( $msg );
					return;
				}

				Debug2::debug( '[Img_Optm] Pulled optimized img WebP: ' . $local_file . '.webp' );

				$webp_size = filesize( $local_file . '.webp' );

				/**
				 * API for WebP
				 * @since 2.9.5
				 * @since  3.0 $row_img less elements (see above one)
				 * @see #751737  - API docs for WEBP generation
				 */
				do_action( 'litespeed_img_pull_webp', $row_img, $local_file . '.webp' );

				$total_pulled_webp ++;
			}

			Debug2::debug2( '[Img_Optm] Update _table_img_optm record [id] ' . $row_img->id );

			// Update pulled status
			$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d, target_filesize = %d, webp_filesize = %d WHERE id = %d ";
			$wpdb->query( $wpdb->prepare( $q, array( self::STATUS_PULLED, $target_size, $webp_size, $row_img->id ) ) );
			// Delete working table
			$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
			$wpdb->query( $wpdb->prepare( $q, $row_img->id ) );

			// Save server_list to notify taken
			if ( empty( $server_list[ $server_info[ 'server' ] ] ) ) {
				$server_list[ $server_info[ 'server' ] ] = array();
			}

			$server_info_id = ! empty( $server_info['file_id'] ) ? $server_info['file_id'] : $server_info['id'];
			$server_list[ $server_info[ 'server' ] ][] = $server_info_id;
		}

		// Notify IAPI images taken
		foreach ( $server_list as $server => $img_list ) {
			$data = array(
				'action'	=> self::CLOUD_ACTION_TAKEN,
				'list' 		=> $img_list,
				'server'	=> $server,
			);
			// TODO: improve this so we do not call once per server, but just once and then filter on the server side
			Cloud::post( Cloud::SVC_IMG_OPTM, $data );
		}

		if ( empty( $this->_summary[ 'img_taken' ] ) ) {
			$this->_summary[ 'img_taken' ] = 0;
		}
		$this->_summary[ 'img_taken' ] += $total_pulled_ori + $total_pulled_webp;
		self::save_summary();

		// Manually running needs to roll back timestamp for next running
		if ( $manual ) {
			$this->_update_cron_running( true ) ;
		}

		$msg = sprintf( __( 'Pulled %d image(s)', 'litespeed-cache' ), $total_pulled_ori + $total_pulled_webp );
		Admin_Display::succeed( $msg );

		// Check if there is still task in queue
		$q = "SELECT * FROM `$this->_table_img_optming` WHERE optm_status = %d LIMIT 1";
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, self::STATUS_NOTIFIED ) );
		if ( $to_be_continued ) {
			Debug2::debug( '[Img_Optm] Task in queue, to be continued...' );
			return $this->_self_redirect( self::TYPE_PULL );
		}

		// If all pulled, update tag to done
		Debug2::debug( '[Img_Optm] Marked pull status to all pulled' );
		self::update_option( self::DB_NEED_PULL, self::STATUS_PULLED );
	}

	/**
	 * Push image back to previous status
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _step_back_image( $id )
	{
		global $wpdb;

		// Reset the image to gathered status
		$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE id = %d ";
		$wpdb->query( $wpdb->prepare( $q, array( self::STATUS_RAW, $id ) ) );
		// Delete working table
		$q = "DELETE FROM `$this->_table_img_optming` WHERE id = %d ";
		$wpdb->query( $wpdb->prepare( $q, $id ) );
	}

	/**
	 * Parse wp's meta value
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _parse_wp_meta_value( $v )
	{
		if ( ! $v->meta_value ) {
			Debug2::debug( '[Img_Optm] bypassed parsing meta due to no meta_value: pid ' . $v->post_id ) ;
			return false ;
		}

		$meta_value = @maybe_unserialize( $v->meta_value ) ;
		if ( ! is_array( $meta_value ) ) {
			Debug2::debug( '[Img_Optm] bypassed parsing meta due to meta_value not json: pid ' . $v->post_id ) ;
			return false ;
		}

		if ( empty( $meta_value[ 'file' ] ) ) {
			Debug2::debug( '[Img_Optm] bypassed parsing meta due to no ori file: pid ' . $v->post_id ) ;
			return false ;
		}

		return $meta_value ;
	}

	/**
	 * Clean up all unfinished queue locally and to Cloud server
	 *
	 * @since 2.1.2
	 * @access public
	 */
	public function clean()
	{
		global $wpdb ;

		if ( ! Data::get_instance()->tb_exist( 'img_optm' ) ) {
			return;
		}

		// Clear local working table queue
		if ( Data::get_instance()->tb_exist( 'img_optming' ) ) {
			$q = "TRUNCATE `$this->_table_img_optming`";
			$wpdb->query( $q );
		}

		// Reset img_optm table's queue
		if ( Data::get_instance()->tb_exist( 'img_optm' ) ) {
			$q = "UPDATE `$this->_table_img_optm` SET optm_status = %d WHERE optm_status = %d" ;
			$wpdb->query( $wpdb->prepare( $q, self::STATUS_RAW, self::STATUS_REQUESTED ) ) ;
		}

		$msg = __( 'Cleaned up unfinished data successfully.', 'litespeed-cache' ) ;
		Admin_Display::succeed( $msg ) ;
	}

	/**
	 * Destroy all optimized images
	 *
	 * @since 3.0
	 * @access private
	 */
	private function _destroy()
	{
		global $wpdb ;

		if ( ! Data::get_instance()->tb_exist( 'img_optm' ) ) {
			Debug2::debug( '[Img_Optm] DESTROY bypassed due to table not exist' ) ;
			return;
		}

		Debug2::debug( '[Img_Optm] excuting DESTROY process' ) ;

		/**
		 * Limit images each time before redirection to fix Out of memory issue. #665465
		 * @since  2.9.8
		 */
		// Start deleting files
		$limit = apply_filters( 'litespeed_imgoptm_destroy_max_rows', 500 ) ;
		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d" ;
		$list = $wpdb->get_results( $wpdb->prepare( $q, self::STATUS_PULLED, $limit ) ) ;
		foreach ( $list as $v ) {
			// del webp
			$this->__media->info( $v->src . '.webp', $v->post_id ) && $this->__media->del( $v->src . '.webp', $v->post_id ) ;
			$this->__media->info( $v->src . '.optm.webp', $v->post_id ) && $this->__media->del( $v->src . '.optm.webp', $v->post_id ) ;

			$extension = pathinfo( $v->src, PATHINFO_EXTENSION ) ;
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 ) ;
			$bk_file = $local_filename . '.bk.' . $extension ;
			$bk_optm_file = $local_filename . '.bk.optm.' . $extension ;

			// del optimized ori
			if ( $this->__media->info( $bk_file, $v->post_id ) ) {
				$this->__media->del( $v->src, $v->post_id ) ;
				$this->__media->rename( $bk_file, $v->src, $v->post_id ) ;
			}
			$this->__media->info( $bk_optm_file, $v->post_id ) && $this->__media->del( $bk_optm_file, $v->post_id ) ;
		}

		// Check if there are more images, then return `to_be_continued` code
		$q = "SELECT COUNT(*) FROM `$this->_table_img_optm` WHERE optm_status = %d" ;
		$total_img = $wpdb->get_var( $wpdb->prepare( $q, self::STATUS_PULLED ) ) ;
		if ( $total_img > $limit ) {
			$q = "DELETE FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d" ;
			$wpdb->query( $wpdb->prepare( $q, self::STATUS_PULLED, $limit ) ) ;

			Debug2::debug( '[Img_Optm] To be continued 🚦' ) ;

			return $this->_self_redirect( self::TYPE_DESTROY );
		}

		// Delete postmeta info
		$q = "DELETE FROM `$wpdb->postmeta` WHERE meta_key = %s" ;
		$wpdb->query( $wpdb->prepare( $q, self::DB_SIZE ) ) ;

		// Delete img_optm table
		Data::get_instance()->tb_del( 'img_optm' ) ;
		Data::get_instance()->tb_del( 'img_optming' ) ;

		// Clear options table summary info
		self::delete_option( '_summary' ) ;
		self::delete_option( self::DB_NEED_PULL ) ;

		$msg = __( 'Destroy all optimization data successfully.', 'litespeed-cache' ) ;
		Admin_Display::succeed( $msg ) ;
	}

	/**
	 * Rescan to find new generated images
	 *
	 * @since 1.6.7
	 * @access private
	 */
	private function _rescan()
	{
		global $wpdb ;

		$offset = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0 ;
		$limit = 500;

		Debug2::debug( '[Img_Optm] rescan images' ) ;

		// Get images
		$q = "SELECT b.post_id, b.meta_value
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			LEFT JOIN `$this->_table_img_optm` c ON c.post_id = a.ID
			WHERE a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
				AND b.meta_key = '_wp_attachment_metadata'
				AND c.id IS NOT NULL
			ORDER BY a.ID
			LIMIT %d, %d
			";
		$list = $wpdb->get_results( $wpdb->prepare( $q, $offset * $limit, $limit ) );

		if ( ! $list ) {
			$msg = __( 'Rescaned successfully.', 'litespeed-cache' );
			Admin_Display::succeed( $msg );

			Debug2::debug( '[Img_Optm] rescan bypass: no gathered image found' );
			return;
		}

		$pid_set = array();
		foreach ( $list as $v ) {
			$pid_set[] = $v->post_id;

			$meta_value = $this->_parse_wp_meta_value( $v );
			if ( ! $meta_value ) {
				continue;
			}

			// Parse all child src and put them into $this->_img_in_queue, missing ones to $this->_img_in_queue_missed
			$this->tmp_pid = $v->post_id;
			$this->tmp_path = pathinfo( $meta_value[ 'file' ], PATHINFO_DIRNAME ) . '/';
			$this->_append_img_queue( $meta_value, true );
			if ( ! empty( $meta_value[ 'sizes' ] ) ) {
				array_map( array( $this, '_append_img_queue' ), $meta_value[ 'sizes' ] );
			}
		}

		$q = "SELECT src, post_id FROM `$this->_table_img_optm` WHERE post_id IN (" . implode( ',', array_fill( 0, count( $pid_set ), '%d' ) ) . ")";
		$list = $wpdb->get_results( $wpdb->prepare( $q, $pid_set ) );

		$existing_src_set = array();
		foreach ( $list as $v ) {
			$existing_src_set[ $v->post_id . '.' . $v->src ] = true;
		}

		// Filter existing missed img
		foreach ( $this->_img_in_queue_missed as $k => $v ) { // $v -> pid, src
			if ( array_key_exists( $v[ 'pid' ] . '.' . $v[ 'src' ], $existing_src_set ) ) {
				unset( $this->_img_in_queue_missed[ $k ] );
			}
		}

		// Filter existing img
		foreach ( $this->_img_in_queue as $k => $v ) { // $v -> pid, src
			if ( array_key_exists( $v[ 'pid' ] . '.' . $v[ 'src' ], $existing_src_set ) ) {
				unset( $this->_img_in_queue[ $k ] );
			}
		}

		Debug2::debug( '[Img_Optm] rescaned [img_missed] ' . count( $this->_img_in_queue_missed ) . ' [img] ' . count( $this->_img_in_queue ) );

		// Check if needs to continue or not
		$q = "SELECT b.post_id
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			LEFT JOIN `$this->_table_img_optm` c ON c.post_id = a.ID
			WHERE a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
				AND b.meta_key = '_wp_attachment_metadata'
				AND c.id IS NOT NULL
			ORDER BY a.ID
			LIMIT %d, %d
			";
		$offset ++;
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, $offset * $limit, 1 ) );

		// Save missed images into img_optm
		$this->_save_err_missed();

		if ( empty( $this->_img_in_queue ) ) {
			if ( $to_be_continued ) {
				return $this->_self_redirect( self::TYPE_RESCAN );
			}

			$msg = __( 'Rescaned successfully.', 'litespeed-cache' );
			Admin_Display::succeed( $msg );

			return;
		}

		// Save to DB
		$this->_save_raw();

		if ( $to_be_continued ) {
			return $this->_self_redirect( self::TYPE_RESCAN );
		}

		$msg = sprintf( __( 'Rescaned %d images successfully.', 'litespeed-cache' ), count( $this->_img_in_queue ) );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Calculate bkup original images storage
	 *
	 * @since 2.2.6
	 * @access private
	 */
	private function _calc_bkup()
	{
		global $wpdb;

		if ( ! Data::get_instance()->tb_exist( 'img_optm' ) ) {
			return;
		}

		$offset = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$limit = 500;

		if ( ! $offset ) {
			$this->_summary[ 'bk_summary' ] = array(
				'date' => time(),
				'count' => 0,
				'sum' => 0,
			);
		}

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, $limit ) ) );

		foreach ( $list as $v ) {
			$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
			$bk_file = $local_filename . '.bk.' . $extension;

			$img_info = $this->__media->info( $bk_file, $v->post_id );
			if ( ! $img_info ) {
				continue;
			}

			$this->_summary[ 'bk_summary' ][ 'count' ] ++;
			$this->_summary[ 'bk_summary' ][ 'sum' ] += $img_info[ 'size' ];
		}

		$this->_summary[ 'bk_summary' ][ 'date' ] = time();
		self::save_summary();

		Debug2::debug( '[Img_Optm] _calc_bkup total: ' . $this->_summary[ 'bk_summary' ][ 'count' ] . ' [size] ' . $this->_summary[ 'bk_summary' ][ 'sum' ] );

		$offset ++;
		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, 1 ) ) );

		if ( $to_be_continued ) {
			return $this->_self_redirect( self::TYPE_CALC_BKUP );
		}

		$msg = __( 'Calculated backups successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Delete bkup original images storage
	 *
	 * @since  2.5
	 * @access public
	 */
	public function rm_bkup()
	{
		global $wpdb;

		if ( ! Data::get_instance()->tb_exist( 'img_optm' ) ) {
			return;
		}

		$offset = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$limit = 500;

		if ( empty( $this->_summary[ 'rmbk_summary' ] ) ) {
			$this->_summary[ 'rmbk_summary' ] = array(
				'date' => time(),
				'count' => 0,
				'sum' => 0,
			);
		}

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, $limit ) ) );

		foreach ( $list as $v ) {
			$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
			$bk_file = $local_filename . '.bk.' . $extension;

			// Del ori file
			$img_info = $this->__media->info( $bk_file, $v->post_id );
			if ( ! $img_info ) {
				continue;
			}

			$this->_summary[ 'rmbk_summary' ][ 'count' ] ++;
			$this->_summary[ 'rmbk_summary' ][ 'sum' ] += $img_info[ 'size' ];

			$this->__media->del( $bk_file, $v->post_id );
		}

		$this->_summary[ 'rmbk_summary' ][ 'date' ] = time();
		self::save_summary();

		Debug2::debug( '[Img_Optm] rm_bkup total: ' . $this->_summary[ 'rmbk_summary' ][ 'count' ] . ' [size] ' . $this->_summary[ 'rmbk_summary' ][ 'sum' ] );

		$offset ++;
		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, 1 ) ) );

		if ( $to_be_continued ) {
			return $this->_self_redirect( self::TYPE_RM_BKUP );
		}

		$msg = __( 'Removed backups successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Count images
	 *
	 * @since 1.6
	 * @access public
	 */
	public function img_count()
	{
		global $wpdb;

		$tb_existed = Data::get_instance()->tb_exist( 'img_optm' );
		$tb_existed2 = Data::get_instance()->tb_exist( 'img_optming' );

		$q = "SELECT COUNT(*)
			FROM `$wpdb->posts` a
			LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
			WHERE a.post_type = 'attachment'
				AND a.post_status = 'inherit'
				AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
				AND b.meta_key = '_wp_attachment_metadata'
			";
		// $q = "SELECT count(*) FROM $wpdb->posts WHERE post_type = 'attachment' AND post_status = 'inherit' AND post_mime_type IN ('image/jpeg', 'image/png', 'image/gif') ";
		$groups_not_gathered = $groups_raw = $groups_all = $wpdb->get_var( $q );
		$imgs_raw = 0;
		$imgs_gathered = 0;

		if ( $tb_existed ) {
			$q = "SELECT COUNT(*)
				FROM `$wpdb->posts` a
				LEFT JOIN `$wpdb->postmeta` b ON b.post_id = a.ID
				LEFT JOIN `$this->_table_img_optm` c ON c.post_id = a.ID
				WHERE a.post_type = 'attachment'
					AND a.post_status = 'inherit'
					AND a.post_mime_type IN ('image/jpeg', 'image/png', 'image/gif')
					AND b.meta_key = '_wp_attachment_metadata'
					AND c.id IS NULL
				";
			$groups_not_gathered = $wpdb->get_var( $q );

			$q = $wpdb->prepare( "SELECT COUNT(DISTINCT post_id),COUNT(*) FROM `$this->_table_img_optm` WHERE optm_status = %d", self::STATUS_RAW );
			list( $groups_raw, $imgs_raw ) = $wpdb->get_row( $q, ARRAY_N );
			$imgs_gathered = $wpdb->get_var( "SELECT COUNT(*) FROM `$this->_table_img_optm`" );
		}

		$count_list = array(
			'groups_all'	=> $groups_all,
			'groups_not_gathered'	=> $groups_not_gathered,
			'group.' . self::STATUS_RAW	=> $groups_raw,
			'img.' . self::STATUS_RAW	=> $imgs_raw,
			'imgs_gathered'	=> $imgs_gathered,
		);

		// images count from work table
		if ( $tb_existed2 ) {
			$q = "SELECT COUNT(DISTINCT post_id),COUNT(*) FROM `$this->_table_img_optming` WHERE optm_status = %d";
			$groups_to_check = array(
				self::STATUS_REQUESTED,
				self::STATUS_NOTIFIED,
				self::STATUS_ERR_FETCH,
			);
			foreach ( $groups_to_check as $v ) {
				$count_list[ 'img.' . $v ] = $count_list[ 'group.' . $v ] = 0;
				if ( $tb_existed ) {
					list( $count_list[ 'group.' . $v ], $count_list[ 'img.' . $v ] ) = $wpdb->get_row( $wpdb->prepare( $q, $v ), ARRAY_N );
				}
			}
		}

		// images count from image table
		if ( $tb_existed ) {
			$q = "SELECT COUNT(DISTINCT post_id),COUNT(*) FROM `$this->_table_img_optm` WHERE optm_status = %d";
			$groups_to_check = array(
				self::STATUS_DUPLICATED,
				self::STATUS_PULLED,
				self::STATUS_FAILED,
				self::STATUS_MISS,
				self::STATUS_ERR_OPTM,
				self::STATUS_XMETA,
				self::STATUS_ERR,
			);
			foreach ( $groups_to_check as $v ) {
				$count_list[ 'img.' . $v ] = $count_list[ 'group.' . $v ] = 0;
				if ( $tb_existed ) {
					list( $count_list[ 'group.' . $v ], $count_list[ 'img.' . $v ] ) = $wpdb->get_row( $wpdb->prepare( $q, $v ), ARRAY_N );
				}
			}
		}

		return $count_list;
	}

	/**
	 * Check if fetch cron is running
	 *
	 * @since  1.6.2
	 * @access public
	 */
	public function cron_running( $bool_res = true )
	{
		$last_run = ! empty( $this->_summary[ 'last_pull' ] ) ? $this->_summary[ 'last_pull' ] : 0;

		$is_running = $last_run && time() - $last_run < 120 ;

		if ( $bool_res ) {
			return $is_running ;
		}

		return array( $last_run, $is_running ) ;
	}

	/**
	 * Update fetch cron timestamp tag
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function _update_cron_running( $done = false )
	{
		$this->_summary[ 'last_pull' ] = time();

		if ( $done ) {
			// Only update cron tag when its from the active running cron
			if ( $this->_cron_ran ) {
				// Rollback for next running
				$this->_summary[ 'last_pull' ] -= 120;
			}
			else {
				return;
			}
		}

		self::save_summary();

		$this->_cron_ran = true;
	}

	/**
	 * Batch switch images to ori/optm version
	 *
	 * @since  1.6.2
	 * @access private
	 */
	private function _batch_switch( $type )
	{
		global $wpdb;

		$offset = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$limit = 500;

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, $limit ) ) );

		$i = 0;
		foreach ( $list as $v ) {
			$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
			$bk_file = $local_filename . '.bk.' . $extension;
			$bk_optm_file = $local_filename . '.bk.optm.' . $extension;

			// switch to ori
			if ( $type === self::TYPE_BATCH_SWITCH_ORI ) {
				if ( ! $this->__media->info( $bk_file, $v->post_id ) ) {
					continue;
				}

				$i ++;

				$this->__media->rename( $v->src, $bk_optm_file, $v->post_id );
				$this->__media->rename( $bk_file, $v->src, $v->post_id );
			}
			// switch to optm
			elseif ( $type === self::TYPE_BATCH_SWITCH_OPTM ) {
				if ( ! $this->__media->info( $bk_optm_file, $v->post_id ) ) {
					continue;
				}

				$i ++;

				$this->__media->rename( $v->src, $bk_file, $v->post_id );
				$this->__media->rename( $bk_optm_file, $v->src, $v->post_id );
			}
		}

		Debug2::debug( '[Img_Optm] batch switched images total: ' . $i );

		$offset ++;
		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d ORDER BY id LIMIT %d, %d";
		$to_be_continued = $wpdb->get_row( $wpdb->prepare( $q, array( self::STATUS_PULLED, $offset * $limit, 1 ) ) );

		if ( $to_be_continued ) {
			return $this->_self_redirect( $type );
		}

		$msg = __( 'Switched images successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Switch image between original one and optimized one
	 *
	 * @since 1.6.2
	 * @access private
	 */
	private function _switch_optm_file( $type )
	{
		global $wpdb;

		$pid = substr( $type, 4 );
		$switch_type = substr( $type, 0, 4 );

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE optm_status = %d AND post_id = %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, array( self::STATUS_PULLED, $pid ) ) );

		$msg = 'Unknown Msg';

		foreach ( $list as $v ) {
			// to switch webp file
			if ( $switch_type === 'webp' ) {
				if ( $this->__media->info( $v->src . '.webp', $v->post_id ) ) {
					$this->__media->rename( $v->src . '.webp', $v->src . '.optm.webp', $v->post_id );
					Debug2::debug( '[Img_Optm] Disabled WebP: ' . $v->src );

					$msg = __( 'Disabled WebP file successfully.', 'litespeed-cache' );
				}
				elseif ( $this->__media->info( $v->src . '.optm.webp', $v->post_id ) ) {
					$this->__media->rename( $v->src . '.optm.webp', $v->src . '.webp', $v->post_id );
					Debug2::debug( '[Img_Optm] Enable WebP: ' . $v->src );

					$msg = __( 'Enabled WebP file successfully.', 'litespeed-cache' );
				}
			}
			// to switch original file
			else {
				$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
				$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
				$bk_file = $local_filename . '.bk.' . $extension;
				$bk_optm_file = $local_filename . '.bk.optm.' . $extension;

				// revert ori back
				if ( $this->__media->info( $bk_file, $v->post_id ) ) {
					$this->__media->rename( $v->src, $bk_optm_file, $v->post_id );
					$this->__media->rename( $bk_file, $v->src, $v->post_id );
					Debug2::debug( '[Img_Optm] Restore original img: ' . $bk_file );

					$msg = __( 'Restored original file successfully.', 'litespeed-cache' );
				}
				elseif ( $this->__media->info( $bk_optm_file, $v->post_id ) ) {
					$this->__media->rename( $v->src, $bk_file, $v->post_id );
					$this->__media->rename( $bk_optm_file, $v->src, $v->post_id );
					Debug2::debug( '[Img_Optm] Switch to optm img: ' . $v->src );

					$msg = __( 'Switched to optimized file successfully.', 'litespeed-cache' );
				}

			}
		}

		Admin_Display::succeed( $msg );
	}

	/**
	 * Delete one optm data and recover original file
	 *
	 * @since 2.4.2
	 * @access public
	 */
	public function reset_row( $post_id )
	{
		global $wpdb;

		if ( ! $post_id ) {
			return;
		}

		// Gathered image don't have DB_SIZE info yet
		// $size_meta = get_post_meta( $post_id, self::DB_SIZE, true );

		// if ( ! $size_meta ) {
		// 	return;
		// }

		Debug2::debug( '[Img_Optm] _reset_row [pid] ' . $post_id );

		$q = "SELECT src,post_id FROM `$this->_table_img_optm` WHERE post_id = %d";
		$list = $wpdb->get_results( $wpdb->prepare( $q, $post_id ) );
		if ( ! $list ) {
			return;
		}

		foreach ( $list as $v ) {
			$this->__media->info( $v->src . '.webp', $v->post_id ) && $this->__media->del( $v->src . '.webp', $v->post_id );
			$this->__media->info( $v->src . '.optm.webp', $v->post_id ) && $this->__media->del( $v->src . '.optm.webp', $v->post_id );

			$extension = pathinfo( $v->src, PATHINFO_EXTENSION );
			$local_filename = substr( $v->src, 0, - strlen( $extension ) - 1 );
			$bk_file = $local_filename . '.bk.' . $extension;
			$bk_optm_file = $local_filename . '.bk.optm.' . $extension;

			if ( $this->__media->info( $bk_file, $v->post_id ) ) {
				Debug2::debug( '[Img_Optm] _reset_row Revert ori file' . $bk_file );
				$this->__media->del( $v->src, $v->post_id );
				$this->__media->rename( $bk_file, $v->src, $v->post_id );
			}
			elseif ( $this->__media->info( $bk_optm_file, $v->post_id ) ) {
				Debug2::debug( '[Img_Optm] _reset_row Del ori bk file' . $bk_optm_file );
				$this->__media->del( $bk_optm_file, $v->post_id );
			}
		}

		$q = "DELETE FROM `$this->_table_img_optm` WHERE post_id = %d";
		$wpdb->query( $wpdb->prepare( $q, $post_id ) );

		delete_post_meta( $post_id, self::DB_SIZE );

		$msg = __( 'Reset the optimized data successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * Show an image's optm status
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public function check_img()
	{
		$ip = gethostbyname( 'my.quic.cloud' );
		if ( $ip != Router::get_ip() ) {
			return Cloud::err( 'wrong ip ' . $ip . '!=' . Router::get_ip() ) ;
		}

		// Validate key
		if ( empty( $_POST[ 'auth_key' ] ) || $_POST[ 'auth_key' ] !== md5( Conf::val( Base::O_API_KEY ) ) ) {
			return Cloud::err( 'wrong_key' ) ;
		}

		global $wpdb ;

		$pid = $_POST[ 'data' ] ;

		Debug2::debug( '[Img_Optm] Check image [ID] ' . $pid ) ;

		$data = array() ;

		$data[ 'img_count' ] = $this->img_count() ;
		$data[ 'optm_summary' ] = self::get_summary() ;

		$data[ '_wp_attached_file' ] = get_post_meta( $pid, '_wp_attached_file', true ) ;
		$data[ '_wp_attachment_metadata' ] = get_post_meta( $pid, '_wp_attachment_metadata', true ) ;

		// Get img_optm data
		$q = "SELECT * FROM `$this->_table_img_optm` WHERE post_id = %d" ;
		$list = $wpdb->get_results( $wpdb->prepare( $q, $pid ) ) ;
		$img_data = array() ;
		if ( $list ) {
			foreach ( $list as $v ) {
				$img_data[] = array(
					'id'	=> $v->id,
					'optm_status'	=> $v->optm_status,
					'src'	=> $v->src,
					'srcpath_md5'	=> $v->srcpath_md5,
					'src_md5'	=> $v->src_md5,
					'server_info'	=> $v->server_info,
				) ;
			}
		}
		$data[ 'img_data' ] = $img_data ;

		return array( '_res' => 'ok', 'data' => $data ) ;
	}

	/**
	 * Redirect to self to continue operation
	 *
	 * Note: must return when use this func. CLI/Cron call won't die in this func.
	 *
	 * @since  3.0
	 * @access private
	 */
	private function _self_redirect( $type )
	{
		if ( defined( 'LITESPEED_CLI' ) || defined( 'DOING_CRON' ) ) {
			Admin_Display::succeed( 'To be continued' ); // Show for CLI
			return;
		}

		// Add i to avoid browser too many redirected warning
		$i = ! empty( $_GET[ 'litespeed_i' ] ) ? $_GET[ 'litespeed_i' ] : 0;
		$i ++;

		$link = Utility::build_url( Router::ACTION_IMG_OPTM, $type, false, null, array( 'litespeed_i' => $i ) );

		$url = html_entity_decode( $link );
		exit( "<meta http-equiv='refresh' content='0;url=$url'>" );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.0
	 * @access public
	 */
	public static function handler()
	{
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_RESET_ROW:
				$instance->reset_row( ! empty( $_GET[ 'id' ] ) ? $_GET[ 'id' ] : false );
				break;

			case self::TYPE_CALC_BKUP:
				$instance->_calc_bkup();
				break;

			case self::TYPE_RM_BKUP :
				$instance->rm_bkup();
				break;

			case self::TYPE_NEW_REQ:
				$instance->new_req();
				break;

			case self::TYPE_RESCAN:
				$instance->_rescan();
				break;

			case self::TYPE_DESTROY:
				$instance->_destroy();
				break;

			case self::TYPE_CLEAN:
				$instance->clean();
				break;

			case self::TYPE_PULL:
				$instance->pull();
				break;

			/**
			 * Batch switch
			 * @since 1.6.3
			 */
			case self::TYPE_BATCH_SWITCH_ORI:
			case self::TYPE_BATCH_SWITCH_OPTM:
				$instance->_batch_switch( $type );
				break;

			case substr( $type, 0, 4 ) === 'webp':
			case substr( $type, 0, 4 ) === 'orig':
				$instance->_switch_optm_file( $type );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The optimize css class.
 *
 * @since      	2.3
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class CSS extends Base {
	protected static $_instance;

	const TYPE_GENERATE_CRITICAL = 'generate_critical';
	const TYPE_CLEAR_Q = 'clear_q';

	protected $_summary;

	/**
	 * Init
	 *
	 * @since  3.0
	 * @access protected
	 */
	protected function __construct() {
		$this->_summary = self::get_summary();
	}

	/**
	 * Output critical css
	 *
	 * @since  1.3
	 * @since  2.3 Migrated from optimize.cls
	 * @access public
	 */
	public static function prepend_ccss( $html_head ) {
		// Get critical css for current page
		// Note: need to consider mobile
		$rules = self::get_instance()->_ccss();

		// Append default critical css
		$rules .= Conf::val( Base::O_OPTM_CCSS_CON );

		$html_head = '<style id="litespeed-optm-css-rules">' . $rules . '</style>' . $html_head;

		return $html_head;
	}

	/**
	 * Generate realpath of ccss
	 *
	 * @since  2.3
	 * @access private
	 */
	private function _ccss_realpath( $ccss_type ) {
		return LITESPEED_STATIC_DIR . "/ccss/$ccss_type.css";
	}

	/**
	 * Delete file-based cache folder
	 *
	 * @since  2.3
	 * @access public
	 */
	public function rm_cache_folder() {
		if ( file_exists( LITESPEED_STATIC_DIR . '/ccss' ) ) {
			File::rrmdir( LITESPEED_STATIC_DIR . '/ccss' );
		}

		// Clear CCSS in queue too
		$this->_summary[ 'queue' ] = array();
		$this->_summary[ 'curr_request' ] = 0;
		self::save_summary();

		Debug2::debug2( '[CSS] Cleared ccss queue' );
	}


	public function gen_ucss( $page_url, $ua ) {
		return $this->_generate_ucss( $page_url, $ua );
	}


	/**
	 * The critical css content of the current page
	 *
	 * @since  2.3
	 * @access private
	 */
	private function _ccss() {
		// If don't need to generate CCSS, bypass
		if ( ! Conf::val( Base::O_OPTM_CCSS_GEN ) ) {
			Debug2::debug( '[CSS] bypassed ccss due to setting' );
			return '';
		}

		$ccss_type = $this->_which_css();
		$ccss_file = $this->_ccss_realpath( $ccss_type );

		if ( file_exists( $ccss_file ) ) {
			Debug2::debug2( '[CSS] existing ccss ' . $ccss_file );
			return File::read( $ccss_file );
		}

		// Check if is already in a request, bypass current one
		if ( ! empty( $this->_summary[ 'curr_request' ] ) && time() - $this->_summary[ 'curr_request' ] < 300 && ! Conf::val( Base::O_DEBUG ) ) {
			Debug2::debug( '[CCSS] Last request not done' );
			return '';
		}

		global $wp;
		$request_url = home_url( $wp->request );

		// If generate in backend, log it and bypass
		if ( Conf::val( Base::O_OPTM_CCSS_ASYNC ) ) {
			// Store it to prepare for cron
			if ( empty( $this->_summary[ 'queue' ] ) ) {
				$this->_summary[ 'queue' ] = array();
			}
			$this->_summary[ 'queue' ][ $ccss_type ] = array(
				'url'			=> $request_url,
				'user_agent'	=> $_SERVER[ 'HTTP_USER_AGENT' ],
				'is_mobile'		=> $this->_separate_mobile_ccss(),
			);// Current UA will be used to request
			Debug2::debug( '[CSS] Added queue [type] ' . $ccss_type . ' [url] ' . $request_url . ' [UA] ' . $_SERVER[ 'HTTP_USER_AGENT' ] );

			self::save_summary();
			return '';
		}

		// generate on the fly
		return $this->_generate_ccss( $request_url, $ccss_type, $_SERVER[ 'HTTP_USER_AGENT' ], $this->_separate_mobile_ccss() );
	}

	/**
	 * Check if need to separate ccss for mobile
	 *
	 * @since  2.6.4
	 * @access private
	 */
	private function _separate_mobile_ccss()
	{
		return ( wp_is_mobile() || apply_filters( 'litespeed_is_mobile', false ) ) && Conf::val( Base::O_CACHE_MOBILE );
	}

	/**
	 * Cron ccss generation
	 *
	 * @since  2.3
	 * @access private
	 */
	public static function cron_ccss( $continue = false )
	{
		$_instance = self::get_instance();
		if ( empty( $_instance->_summary[ 'queue' ] ) ) {
			return;
		}

		// For cron, need to check request interval too
		if ( ! $continue ) {
			if ( ! empty( $_instance->_summary[ 'curr_request' ] ) && time() - $_instance->_summary[ 'curr_request' ] < 300 ) {
				Debug2::debug( '[CCSS] Last request not done' );
				return;
			}
		}

		foreach ( $_instance->_summary[ 'queue' ] as $k => $v ) {
			Debug2::debug( '[CSS] cron job [type] ' . $k . ' [url] ' . $v[ 'url' ] . ( $v[ 'is_mobile' ] ? ' 📱 ' : '' ) . ' [UA] ' . $v[ 'user_agent' ] );

			$_instance->_generate_ccss( $v[ 'url' ], $k, $v[ 'user_agent' ], $v[ 'is_mobile' ] );

			// only request first one
			if ( ! $continue ) {
				return;
			}
		}
	}

	/**
	 * Send to LiteSpeed CCSS API to generate CCSS
	 *
	 * @since  2.3
	 * @access private
	 */
	private function _generate_ccss( $request_url, $ccss_type, $user_agent, $is_mobile ) {
		// Check if has credit to push
		$allowance = Cloud::get_instance()->allowance( Cloud::SVC_CCSS );
		if ( ! $allowance ) {
			Debug2::debug( '[CCSS] ❌ No credit' );
			Admin_Display::error( Error::msg( 'lack_of_quota' ) );
			return;
		}

		$ccss_file = $this->_ccss_realpath( $ccss_type );

		// Update css request status
		$this->_summary[ 'curr_request' ] = time();
		self::save_summary();

		// Gather guest HTML to send
		$html = $this->_prepare_html( $request_url, $user_agent );

		if ( ! $html ) {
			return false;
		}

		// Parse HTML to gather all CSS content before requesting
		list( $css, $html ) = $this->_prepare_css( $html );

		if ( ! $css ) {
			return false;
		}

		// Generate critical css
		$data = array(
			'url'			=> $request_url,
			'ccss_type'		=> $ccss_type,
			'user_agent'	=> $user_agent,
			'is_mobile'		=> $is_mobile ? 1 : 0,
			'html'			=> $html,
			'css'			=> $css,
			'type'			=> 'CCSS',
		);

		Debug2::debug( '[CSS] Generating: ', $data );

		$json = Cloud::post( Cloud::SVC_CCSS, $data, 30 );
		if ( ! is_array( $json ) ) {
			return false;
		}

		if ( empty( $json[ 'ccss' ] ) ) {
			Debug2::debug( '[CSS] ❌ empty ccss' );
			$this->_popup_and_save( $ccss_type, $request_url );
			return false;
		}

		// Add filters
		$ccss = apply_filters( 'litespeed_ccss', $json[ 'ccss' ], $ccss_type );

		// Write to file
		File::save( $ccss_file, $ccss, true );

		// Save summary data
		$this->_summary[ 'last_spent' ] = time() - $this->_summary[ 'curr_request' ];
		$this->_summary[ 'last_request' ] = $this->_summary[ 'curr_request' ];
		$this->_summary[ 'curr_request' ] = 0;
		$this->_popup_and_save( $ccss_type, $request_url );

		Debug2::debug( '[CSS] saved ccss ' . $ccss_file );

		Debug2::debug2( '[CSS] ccss con: ' . $ccss );

		return $ccss;
	}

	/**
	 * Play for fun
	 *
	 * @since  3.4.3
	 */
	public function test_url( $request_url ) {
		$user_agent = $_SERVER[ 'HTTP_USER_AGENT' ];
		$html = $this->_prepare_html( $request_url, $user_agent );
		list( $css, $html ) = $this->_prepare_css( $html, true );
		// var_dump( $css );
// 		$html = <<<EOT

// EOT;

// 		$css = <<<EOT

// EOT;
		$data = array(
			'url'			=> $request_url,
			'ccss_type'		=> 'test',
			'user_agent'	=> $user_agent,
			'is_mobile'		=> 0,
			'html'			=> $html,
			'css'			=> $css,
			'type'			=> 'CCSS',
		);

		// Debug2::debug( '[CSS] Generating: ', $data );

		$json = Cloud::post( Cloud::SVC_CCSS, $data, 180 );

		var_dump($json);
	}

	/**
	 * Prepare HTML from URL
	 *
	 * @since  3.4.3
	 */
	private function _prepare_html( $request_url, $user_agent ) {
		$html = Crawler::get_instance()->self_curl( add_query_arg( 'LSCWP_CTRL', 'before_optm', $request_url ), $user_agent );
		Debug2::debug2( '[CSS] self_curl result....', $html );


		$html = Optimizer::get_instance()->html_min( $html, true );
		// Drop <noscript>xxx</noscript>
		$html = preg_replace( '#<noscript>.*</noscript>#isU', '', $html );

		return $html;
	}

	/**
	 * Prepare CSS from HTML
	 *
	 * @since  3.4.3
	 */
	private function _prepare_css( $html, $dryrun =false ) {
		$css = '';
		preg_match_all( '#<link ([^>]+)/?>|<style[^>]*>([^<]+)</style>#isU', $html, $matches, PREG_SET_ORDER );
		foreach ( $matches as $match ) {
			$attrs = false;
			$debug_info = '';
			if ( strpos( $match[ 0 ], '<link' ) === 0 ) {
				$attrs = Utility::parse_attr( $match[ 1 ] );

				if ( empty( $attrs[ 'rel' ] ) ) {
					continue;
				}

				if ( $attrs[ 'rel' ] != 'stylesheet' ) {
					if ( $attrs[ 'rel' ] != 'preload' || empty( $attrs[ 'as' ] ) || $attrs[ 'as' ] != 'style' ) {
						continue;
					}
				}

				if ( ! empty( $attrs[ 'media' ] ) && strpos( $attrs[ 'media' ], 'print' ) !== false ) {
					continue;
				}
				if ( empty( $attrs[ 'href' ] ) ) {
					continue;
				}

				// Check Google fonts hit
				if ( strpos( $attrs[ 'href' ], 'fonts.googleapis.com' ) !== false ) {
					$html = str_replace( $match[ 0 ], '', $html );
					continue;
				}

				$debug_info = $attrs[ 'href' ];

				// Load CSS content
				if ( ! $dryrun ) { // Dryrun will not load CSS but just drop them
					$con = $this->load_file( $attrs[ 'href' ] );
					if ( ! $con ) {
						continue;
					}
				}
				else {
					$con = '';
				}
			}
			else { // Inline style
				Debug2::debug2( '[CCSS] Load inline CSS ' . substr( $match[ 2 ], 0, 100 ) . '...' );
				$con = $match[ 2 ];

				$debug_info = '__INLINE__';
			}

			$con = Optimizer::minify_css( $con );

			$con = '/* ' . $debug_info . ' */' . $con;

			if ( ! empty( $attrs[ 'media' ] ) && $attrs[ 'media' ] !== 'all' ) {
				$css .= '@media ' . $attrs[ 'media' ] . '{' . $con . "\n}";
			}
			else {
				$css .= $con . "\n";
			}

			$html = str_replace( $match[ 0 ], '', $html );
		}

		return array( $css, $html );
	}

	/**
	 * Load remote/local resource
	 *
	 * @since  3.5
	 */
	public function load_file( $src, $file_type = 'css' ) {
		$real_file = Utility::is_internal_file( $src );
		$postfix = pathinfo( parse_url( $src, PHP_URL_PATH ), PATHINFO_EXTENSION );
		if ( ! $real_file || $postfix != $file_type ) {
			Debug2::debug2( '[CSS] Load Remote [' . $file_type . '] ' . $src );
			$this_url = substr( $src, 0, 2 ) == '//' ? set_url_scheme( $src ) : $src;
			$res = wp_remote_get( $this_url );
			$res_code = wp_remote_retrieve_response_code( $res );
			if ( is_wp_error( $res ) || $res_code == 404 ) {
				Debug2::debug2( '[CSS] ❌ Load Remote error [code] ' . $res_code );
				return false;
			}
			$con = wp_remote_retrieve_body( $res );
			if ( ! $con ) {
				return false;
			}

			if ( $file_type == 'css' ) {
				$dirname = dirname( $this_url ) . '/';

				$con = Lib\CSS_MIN\UriRewriter::prepend( $con, $dirname );
			}
		}
		else {
			Debug2::debug2( '[CSS] Load local [' . $file_type . '] ' . $real_file[ 0 ] );
			$con = File::read( $real_file[ 0 ] );

			if ( $file_type == 'css' ) {
				$dirname = dirname( $real_file[ 0 ] );

				$con = Lib\CSS_MIN\UriRewriter::rewrite( $con, $dirname );
			}
		}


		return $con;
	}

	/**
	 * Send to QC API to generate UCSS
	 *
	 * @since  3.3
	 * @access private
	 */
	private function _generate_ucss( $request_url, $user_agent ) {
		// Check if has credit to push
		$allowance = Cloud::get_instance()->allowance( Cloud::SVC_CCSS );
		if ( ! $allowance ) {
			Debug2::debug( '[UCSS] ❌ No credit' );
			Admin_Display::error( Error::msg( 'lack_of_quota' ) );
			return;
		}

		// Update UCSS request status
		$this->_summary[ 'curr_request_ucss' ] = time();
		self::save_summary();

		// Generate UCSS
		$data = array(
			'type'			=> 'UCSS',
			'url'			=> $request_url,
			'whitelist'		=> $this->_filter_whitelist(),
			'user_agent'	=> $user_agent,
			'is_mobile'		=> $this->_separate_mobile_ccss(),
		);

		// Append cookie for roles auth
		if ( $uid = get_current_user_id() ) {
			// Get role simulation vary name
			$vary_inst = Vary::get_instance();
			$vary_name = $vary_inst->get_vary_name();
			$vary_val = $vary_inst->finalize_default_vary( $uid );
			$data[ 'cookies' ] = array();
			$data[ 'cookies' ][ $vary_name ] = $vary_val;
			$data[ 'cookies' ][ 'litespeed_role' ] = $uid;
			$data[ 'cookies' ][ 'litespeed_hash' ] = Router::get_hash();
		}

		Debug2::debug( '[UCSS] Generating UCSS: ', $data );

		$json = Cloud::post( Cloud::SVC_CCSS, $data, 180 );
		if ( ! is_array( $json ) ) {
			return false;
		}

		if ( empty( $json[ 'ucss' ] ) ) {
			Debug2::debug( '[UCSS] ❌ empty ucss' );
			// $this->_popup_and_save( $ccss_type, $request_url );
			return false;
		}

		$ucss = $json[ 'ucss' ];
		Debug2::debug2( '[UCSS] ucss con: ' . $ucss );

		if ( substr( $ucss, 0, 2 ) == '/*' && substr( $ucss, -2 ) == '*/' ) {
			$ucss = '';
		}
		// Add filters
		$ucss = apply_filters( 'litespeed_ucss', $ucss, $request_url );

		// Write to file
		// File::save( $ucss_file, $ucss, true );

		// Save summary data
		$this->_summary[ 'last_spent_ucss' ] = time() - $this->_summary[ 'curr_request_ucss' ];
		$this->_summary[ 'last_request_ucss' ] = $this->_summary[ 'curr_request_ucss' ];
		$this->_summary[ 'curr_request_ucss' ] = 0;
		self::save_summary();
		// $this->_popup_and_save( $ccss_type, $request_url );

		// Debug2::debug( '[UCSS] saved ucss ' . $ucss_file );

		return $ucss;
	}

	/**
	 * Filter the comment content, add quotes to selector from whitelist. Return the json
	 *
	 * @since 3.3
	 */
	private function _filter_whitelist() {
		$whitelist = array();
		$val = Conf::val( Base::O_OPTM_UCSS_WHITELIST );
		foreach ( $val as $k => $v ) {
			if ( substr( $v, 0, 2 ) === '//' ) {
				continue;
			}
			// Wrap in quotes for selectors
			if ( substr( $v, 0, 1 ) !== '/' && strpos( $v, '"' ) === false && strpos( $v, "'" ) === false ) {
				// $v = "'$v'";
			}
			$whitelist[] = $v;
		}

		return $whitelist;
	}

	/**
	 * Pop up the current request and save
	 *
	 * @since  3.0
	 */
	private function _popup_and_save( $ccss_type, $request_url )
	{
		if ( empty( $this->_summary[ 'ccss_type_history' ] ) ) {
			$this->_summary[ 'ccss_type_history' ] = array();
		}
		$this->_summary[ 'ccss_type_history' ][ $ccss_type ] = $request_url;
		unset( $this->_summary[ 'queue' ][ $ccss_type ] );

		self::save_summary();
	}

	/**
	 * Clear all waiting queues
	 *
	 * @since  3.4
	 */
	public function clear_q() {
		if ( empty( $this->_summary[ 'queue' ] ) ) {
			return;
		}

		$this->_summary[ 'queue' ] = array();
		self::save_summary();

		$msg = __( 'Queue cleared successfully.', 'litespeed-cache' );
		Admin_Display::succeed( $msg );
	}

	/**
	 * The critical css file for current page
	 *
	 * @since  2.3
	 * @access private
	 */
	private function _which_css()
	{
		$css = Utility::page_type();

		if ( is_multisite() ) {
			$css .= '-' . get_current_blog_id();
		}

		$unique = false;

		// Check if in separate css type option
		$separate_posttypes = Conf::val( Base::O_OPTM_CCSS_SEP_POSTTYPE );
		if ( ! empty( $separate_posttypes ) && in_array( $css, $separate_posttypes ) ) {
			Debug2::debug( '[CSS] Hit separate posttype setting [type] ' . $css );
			$unique = true;
		}

		$separate_uri = Conf::val( Base::O_OPTM_CCSS_SEP_URI );
		if ( ! empty( $separate_uri ) ) {
			$result =  Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $separate_uri );
			if ( $result ) {
				Debug2::debug( '[CSS] Hit separate URI setting: ' . $result );
				$unique = true;
			}
		}

		if ( $unique ) {
			$css .= '-' . md5( $_SERVER[ 'REQUEST_URI' ] );
		}

		if ( $this->_separate_mobile_ccss() ) {
			$css .= '.mobile';
		}

		return $css;
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  2.3
	 * @access public
	 */
	public static function handler()
	{
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_GENERATE_CRITICAL :
				self::cron_ccss( true );
				break;

			case self::TYPE_CLEAR_Q :
				$instance->clear_q();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The crawler class
 *
 * @since      	1.1.0
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Crawler extends Base {
	const TYPE_REFRESH_MAP = 'refresh_map';
	const TYPE_EMPTY = 'empty';
	const TYPE_BLACKLIST_EMPTY = 'blacklist_empty';
	const TYPE_BLACKLIST_DEL = 'blacklist_del';
	const TYPE_BLACKLIST_ADD = 'blacklist_add';
	const TYPE_START = 'start';
	const TYPE_RESET = 'reset';

	const USER_AGENT = 'lscache_walker';
	const FAST_USER_AGENT = 'lscache_runner';
	const CHUNKS = 10000;

	protected static $_instance;

	private $_sitemeta = 'meta.data';
	private $_resetfile;
	private $_end_reason;

	private $_options;
	private $_crawler_conf = array(
		'cookies' => array(),
		'headers' => array(),
		'ua'	=> '',
	);
	private $_crawlers = array();
	private $_cur_threads = -1;
	private $_max_run_time;
	private $_cur_thread_time;
	private $_map_status_list = array(
		'H'	=> array(),
		'M'	=> array(),
		'B'	=> array(),
		'N'	=> array(),
	);
	protected $_summary;

	private $__map;

	/**
	 * Initialize crawler, assign sitemap path
	 *
	 * @since    1.1.0
	 * @access protected
	 */
	protected function __construct() {
		if ( is_multisite() ) {
			$this->_sitemeta = 'meta' . get_current_blog_id() . '.data';
		}

		$this->_resetfile = LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta . '.reset';

		$this->_options = Conf::get_instance()->get_options();

		$this->_summary = self::get_summary();

		$this->__map = Crawler_Map::get_instance();

		Debug2::debug( '🐞 Init' );
	}

	/**
	 * Overwride get_summary to init elements
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get_summary( $field = false ) {
		$_default = array(
			'list_size'			=> 0,
			'last_update_time'	=> 0,
			'curr_crawler'		=> 0,
			'curr_crawler_beginning_time'	=> 0,
			'last_pos'			=> 0,
			'last_count'		=> 0,
			'last_crawled'		=> 0,
			'last_start_time'	=> 0,
			'last_status'		=> '',
			'is_running'		=> 0,
			'end_reason'		=> '',
			'meta_save_time'	=> 0,
			'pos_reset_check'	=> 0,
			'done'				=> 0,
			'this_full_beginning_time'	=> 0,
			'last_full_time_cost'		=> 0,
			'last_crawler_total_cost'	=> 0,
			'crawler_stats'		=> array(), // this will store all crawlers hit/miss crawl status
		);

		$summary = parent::get_summary();
		$summary = array_merge( $_default, $summary );

		if ( ! $field ) {
			return $summary;
		}

		if ( array_key_exists( $field, $summary ) ) {
			return $summary[ $field ];
		}

		return null;
	}

	/**
	 * Overwride save_summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function save_summary( $data = null ) {
		$instance = self::get_instance();
		$instance->_summary[ 'meta_save_time' ] = time();

		if ( $data === null ) {
			$data = $instance->_summary;
		}

		parent::save_summary( $data );

		File::save( LITESPEED_STATIC_DIR . '/crawler/' . $instance->_sitemeta, json_encode( $data ), true );
	}

	/**
	 * Proceed crawling
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public static function start( $force = false ) {
		if ( ! Router::can_crawl() ) {
			Debug2::debug( '🐞 ......crawler is NOT allowed by the server admin......' );
			return false;
		}

		if ( $force ) {
			Debug2::debug( '🐞 ......crawler manually ran......' );
		}

		self::get_instance()->_crawl_data( $force );
	}

	/**
	 * Crawling start
	 *
	 * @since    1.1.0
	 * @access   private
	 */
	private function _crawl_data( $force ) {
		Debug2::debug( '🐞 ......crawler started......' );
		// for the first time running
		if ( ! $this->_summary || ! Data::get_instance()->tb_exist( 'crawler' ) || ! Data::get_instance()->tb_exist( 'crawler_blacklist' ) ) {
			$this->__map->gen();
		}

		// if finished last time, regenerate sitemap
		if ( $this->_summary['done'] === 'touchedEnd' ) {
			// check whole crawling interval
			$last_fnished_at = $this->_summary[ 'last_full_time_cost' ] + $this->_summary[ 'this_full_beginning_time' ];
			if ( ! $force && time() - $last_fnished_at < $this->_options[ Base::O_CRAWLER_CRAWL_INTERVAL ] ) {
				Debug2::debug( '🐞 Cron abort: cache warmed already.' );
				// if not reach whole crawling interval, exit
				return;
			}
			Debug2::debug( '🐞 TouchedEnd. regenerate sitemap....' );
			$this->__map->gen();
		}

		$this->list_crawlers();

		// In case crawlers are all done but not reload, reload it
		if ( empty( $this->_summary[ 'curr_crawler' ] ) || empty( $this->_crawlers[ $this->_summary[ 'curr_crawler' ] ] ) ) {
			$this->_summary[ 'curr_crawler' ] = 0;
			$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
		}

		$this->load_conf();

		$this->_engine_start();
	}

	/**
	 * Load conf before running crawler
	 *
	 * @since  3.0
	 * @access private
	 */
	private function load_conf() {
		$this->_crawler_conf[ 'base' ] = home_url();

		$current_crawler = $this->_crawlers[ $this->_summary[ 'curr_crawler' ] ];

		/**
		 * Set role simulation
		 * @since 1.9.1
		 */
		if ( ! empty( $current_crawler[ 'uid' ] ) ) {
			// Get role simulation vary name
			$vary_inst = Vary::get_instance();
			$vary_name = $vary_inst->get_vary_name();
			$vary_val = $vary_inst->finalize_default_vary( $current_crawler[ 'uid' ] );
			$this->_crawler_conf[ 'cookies' ][ $vary_name ] = $vary_val;
			$this->_crawler_conf[ 'cookies' ][ 'litespeed_role' ] = $current_crawler[ 'uid' ];
		}

		/**
		 * Check cookie crawler
		 * @since  2.8
		 */
		foreach ( $current_crawler as $k => $v ) {
			if ( strpos( $k, 'cookie:') !== 0 ) {
				continue;
			}

			$this->_crawler_conf[ 'cookies' ][ substr( $k, 7 ) ] = $v;
		}

		/**
		 * Set WebP simulation
		 * @since  1.9.1
		 */
		if ( ! empty( $current_crawler[ 'webp' ] ) ) {
			$this->_crawler_conf[ 'headers' ][] = 'Accept: image/webp,*/*';
		}

		/**
		 * Set mobile crawler
		 * @since  2.8
		 */
		if ( ! empty( $current_crawler[ 'mobile' ] ) ) {
			$this->_crawler_conf[ 'ua' ] = 'Mobile';
		}

		/**
		 * Limit delay to use server setting
		 * @since 1.8.3
		 */
		$this->_crawler_conf[ 'run_delay' ] = $this->_options[ Base::O_CRAWLER_USLEEP ]; // microseconds
		if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_USLEEP ] ) && $_SERVER[ Base::ENV_CRAWLER_USLEEP ] > $this->_crawler_conf[ 'run_delay' ] ) {
			$this->_crawler_conf[ 'run_delay' ] = $_SERVER[ Base::ENV_CRAWLER_USLEEP ];
		}

		$this->_crawler_conf[ 'run_duration' ] = $this->_options[ Base::O_CRAWLER_RUN_DURATION ];

		$this->_crawler_conf[ 'load_limit' ] = $this->_options[ Base::O_CRAWLER_LOAD_LIMIT ];
		if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ] ) ) {
			$this->_crawler_conf[ 'load_limit' ] = $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ];
		}
		elseif ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ] ) && $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ] < $this->_crawler_conf[ 'load_limit' ] ) {
			$this->_crawler_conf[ 'load_limit' ] = $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ];
		}

	}

	/**
	 * Start crawler
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _engine_start() {
		// check if is running
		if ( $this->_summary['is_running'] && time() - $this->_summary['is_running'] < $this->_crawler_conf[ 'run_duration' ] ) {
			$this->_end_reason = 'stopped';
			Debug2::debug( '🐞 The crawler is running.' );
			return;
		}

		// check current load
		$this->_adjust_current_threads();
		if ( $this->_cur_threads == 0 ) {
			$this->_end_reason = 'stopped_highload';
			Debug2::debug( '🐞 Stopped due to heavy load.' );
			return;
		}

		// log started time
		$this->_summary['last_start_time'] = time();
		self::save_summary();

		// set time limit
		$maxTime = (int) ini_get( 'max_execution_time' );
		if ( $maxTime == 0 ) {
			$maxTime = 300; // hardlimit
		}
		else {
			$maxTime -= 5;
		}
		if ( $maxTime >= $this->_crawler_conf[ 'run_duration' ] ) {
			$maxTime = $this->_crawler_conf[ 'run_duration' ];
		}
		elseif ( ini_set( 'max_execution_time', $this->_crawler_conf[ 'run_duration' ] + 15 ) !== false ) {
			$maxTime = $this->_crawler_conf[ 'run_duration' ];
		}
		$this->_max_run_time = $maxTime + time();

		// mark running
		$this->_prepare_running();
		// run cralwer
		$this->_do_running();
		$this->_terminate_running();
	}

	/**
	 * Adjust threads dynamically
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _adjust_current_threads() {
		/**
		 * If server is windows, exit
		 * @see  https://wordpress.org/support/topic/crawler-keeps-causing-crashes/
		 */
		if ( ! function_exists( 'sys_getloadavg' ) ) {
			Debug2::debug( '🐞 set threads=0 due to func sys_getloadavg not exist!' );
			$this->_cur_threads = 0;
			return;
		}

		$load = sys_getloadavg();
		$curload = 1;

		if ( $this->_cur_threads == -1 ) {
			// init
			if ( $curload > $this->_crawler_conf[ 'load_limit' ] ) {
				$curthreads = 0;
			}
			elseif ( $curload >= ( $this->_crawler_conf[ 'load_limit' ] - 1 ) ) {
				$curthreads = 1;
			}
			else {
				$curthreads = intval( $this->_crawler_conf[ 'load_limit' ] - $curload );
				if ( $curthreads > $this->_options[ Base::O_CRAWLER_THREADS ] ) {
					$curthreads = $this->_options[ Base::O_CRAWLER_THREADS ];
				}
			}
		}
		else {
			// adjust
			$curthreads = $this->_cur_threads;
			if ( $curload >= $this->_crawler_conf[ 'load_limit' ] + 1 ) {
				sleep( 5 );  // sleep 5 secs
				if ( $curthreads >= 1 ) {
					$curthreads --;
				}
			}
			elseif ( $curload >= $this->_crawler_conf[ 'load_limit' ] ) {
				if ( $curthreads > 1 ) {// if already 1, keep
					$curthreads --;
				}
			}
			elseif ( ($curload + 1) < $this->_crawler_conf[ 'load_limit' ] ) {
				if ( $curthreads < $this->_options[ Base::O_CRAWLER_THREADS ] ) {
					$curthreads ++;
				}
			}
		}

		// $log = 'set current threads = ' . $curthreads . ' previous=' . $this->_cur_threads
		// 	. ' max_allowed=' . $this->_options[ Base::O_CRAWLER_THREADS ] . ' load_limit=' . $this->_crawler_conf[ 'load_limit' ] . ' current_load=' . $curload;

		$this->_cur_threads = $curthreads;
		$this->_cur_thread_time = time();
	}

	/**
	 * Mark running status
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _prepare_running() {
		$this->_summary[ 'is_running' ] = time();
		$this->_summary[ 'done' ] = 0;// reset done status
		$this->_summary[ 'last_status' ] = 'prepare running';
		$this->_summary[ 'last_crawled' ] = 0;

		// Current crawler starttime mark
		if ( $this->_summary[ 'last_pos' ] == 0 ) {
			$this->_summary[ 'curr_crawler_beginning_time' ] = time();
		}

		if ( $this->_summary[ 'curr_crawler' ] == 0 && $this->_summary[ 'last_pos' ] == 0 ) {
			$this->_summary[ 'this_full_beginning_time' ] = time();
			$this->_summary[ 'list_size' ] = $this->__map->count_map();
		}

		if ( $this->_summary[ 'end_reason' ] == 'end' && $this->_summary[ 'last_pos' ] == 0 ) {
			$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
		}

		self::save_summary();
	}

	/**
	 * Run crawler
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _do_running() {
		$options = $this->_get_curl_options( true );

		while ( $urlChunks = $this->__map->list_map( self::CHUNKS, $this->_summary['last_pos'] ) ) {
			// start crawling
			$urlChunks = array_chunk( $urlChunks, $this->_cur_threads );
			foreach ( $urlChunks as $rows ) {
				// multi curl
				$rets = $this->_multi_request( $rows, $options );

				// check result headers
				foreach ( $rows as $row ) {
					if ( empty( $rets[ $row[ 'id' ] ] ) ) { // If already in blacklist, no curl happened, no corresponding record
						continue;
					}

					// check response
					if ( $rets[ $row[ 'id' ] ][ 'code' ] == 428 ) { // HTTP/1.1 428 Precondition Required (need to test)
						$this->_end_reason = 'crawler_disabled';
						Debug2::debug( '🐞 crawler_disabled' );
						return;
					}

					$status = $this->_status_parse( $rets[ $row[ 'id' ] ][ 'header' ], $rets[ $row[ 'id' ] ][ 'code' ] ); // B or H or M or N(nocache)
					$this->_map_status_list[ $status ][ $row[ 'id' ] ] = array(
						'url'	=> $row[ 'url' ],
						'code' 	=> $rets[ $row[ 'id' ] ][ 'code' ], // 201 or 200 or 404
					);
					if ( empty( $this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ][ $status ] ) ) {
						$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ][ $status ] = 0;
					}
					$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ][ $status ]++;
				}

				// update offset position
				$_time = time();
				$this->_summary[ 'last_pos' ] += $this->_cur_threads;
				$this->_summary[ 'last_count' ] = $this->_cur_threads;
				$this->_summary[ 'last_crawled' ] += $this->_cur_threads;
				$this->_summary[ 'last_update_time' ] = $_time;
				$this->_summary[ 'last_status' ] = 'updated position';

				// check duration
				if ( $this->_summary[ 'last_update_time' ] > $this->_max_run_time ) {
					$this->_end_reason = 'stopped_maxtime';
					Debug2::debug( '🐞 Terminated due to maxtime' );
					return;
					// return __('Stopped due to exceeding defined Maximum Run Time', 'litespeed-cache');
				}

				// make sure at least each 10s save meta & map status once
				if ( $_time - $this->_summary[ 'meta_save_time' ] > 10 ) {
					$this->_map_status_list = $this->__map->save_map_status( $this->_map_status_list, $this->_summary[ 'curr_crawler' ] );
					self::save_summary();
				}

				// check if need to reset pos each 5s
				if ( $_time > $this->_summary[ 'pos_reset_check' ] ) {
					$this->_summary[ 'pos_reset_check' ] = $_time + 5;
					if ( file_exists( $this->_resetfile ) && unlink( $this->_resetfile ) ) {
						Debug2::debug( '🐞 Terminated due to reset file' );

						$this->_summary[ 'last_pos' ] = 0;
						$this->_summary[ 'curr_crawler' ] = 0;
						$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
						// reset done status
						$this->_summary[ 'done' ] = 0;
						$this->_summary[ 'this_full_beginning_time' ] = 0;
						$this->_end_reason = 'stopped_reset';
						return;
						// return __('Stopped due to reset meta position', 'litespeed-cache');
					}
				}

				// check loads
				if ( $this->_summary[ 'last_update_time' ] - $this->_cur_thread_time > 60 ) {
					$this->_adjust_current_threads();
					if ( $this->_cur_threads == 0 ) {
						$this->_end_reason = 'stopped_highload';
						Debug2::debug( '🐞 Terminated due to highload' );
						return;
						// return __('Stopped due to load over limit', 'litespeed-cache');
					}
				}

				$this->_summary[ 'last_status' ] = 'sleeping ' . $this->_crawler_conf[ 'run_delay' ] . 'ms';

				usleep( $this->_crawler_conf[ 'run_delay' ] );
			}
		}

		// All URLs are done for current crawler
		$this->_end_reason = 'end';
		$this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ][ 'W' ] = 0;
		Debug2::debug( '🐞 Crawler #' . $this->_summary['curr_crawler'] . ' touched end' );
	}

	/**
	 * Send multi curl requests
	 * If res=B, bypass request and won't return
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _multi_request( $rows, $options ) {
		$mh = curl_multi_init();
		$curls = array();
		foreach ( $rows as $row ) {
			if ( substr( $row[ 'res' ], $this->_summary[ 'curr_crawler' ], 1 ) == 'B' ) {
				continue;
			}
			if ( substr( $row[ 'res' ], $this->_summary[ 'curr_crawler' ], 1 ) == 'N' ) {
				continue;
			}
			$curls[ $row[ 'id' ] ] = curl_init();

			// Append URL
			$url = $row[ 'url' ];
			if ( $this->_options[ Base::O_CRAWLER_DROP_DOMAIN ] ) {
				$url = $this->_crawler_conf[ 'base' ] . $row[ 'url' ];
			}
			curl_setopt( $curls[ $row[ 'id' ] ], CURLOPT_URL, $url );
			Debug2::debug( '🐞 Crawling [url] ' . $url . ( $url == $row[ 'url' ] ? '' : ' [ori] ' . $row[ 'url' ] ) );

			curl_setopt_array( $curls[ $row[ 'id' ] ], $options );

			curl_multi_add_handle( $mh, $curls[ $row[ 'id' ] ] );
		}

		// execute curl
		if ( $curls ) {
			$last_start_time = null;
			do {
				curl_multi_exec( $mh, $last_start_time );
				if ( curl_multi_select( $mh ) == -1 ) {
					usleep( 1 );
				}
			} while ( $last_start_time > 0 );
		}

		// curl done
		$ret = array();
		foreach ( $rows as $row ) {
			if ( substr( $row[ 'res' ], $this->_summary[ 'curr_crawler' ], 1 ) == 'B' ) {
				continue;
			}
			if ( substr( $row[ 'res' ], $this->_summary[ 'curr_crawler' ], 1 ) == 'N' ) {
				continue;
			}

			$ch = $curls[ $row[ 'id' ] ];

			// Parse header
			$header_size = curl_getinfo( $ch, CURLINFO_HEADER_SIZE );
			$content = curl_multi_getcontent( $ch );
			$header = substr( $content, 0, $header_size );

			$ret[ $row[ 'id' ] ] = array(
				'header' => $header,
				'code'	=> curl_getinfo( $ch, CURLINFO_HTTP_CODE ),
			);

			curl_multi_remove_handle( $mh, $ch );
			curl_close( $ch );
		}
		curl_multi_close( $mh );

		return $ret;
	}

	/**
	 * Check returned curl header to find if cached or not
	 *
	 * @since  2.0
	 * @access private
	 */
	private function _status_parse( $header, $code ) {
		if ( $code == 201 ) {
			return 'H';
		}

		if ( stripos( $header, 'X-Litespeed-Cache-Control: no-cache' ) !== false ) {
			return 'N'; // Blacklist
		}

		$_cache_headers = array(
			'x-litespeed-cache',
			'x-lsadc-cache',
			'x-qc-cache',
		);

		foreach ( $_cache_headers as $_header ) {
			if ( stripos( $header, $_header ) !== false ) {
				if ( stripos( $header, $_header . ': miss' ) !== false ) {
					return 'M'; // Miss
				}
				return 'H'; // Hit
			}
		}

		return 'B'; // Blacklist
	}

	/**
	 * Get curl_options
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _get_curl_options( $crawler_only = false ) {
		$options = array(
			CURLOPT_RETURNTRANSFER => true,
			CURLOPT_HEADER => true,
			CURLOPT_CUSTOMREQUEST => 'GET',
			CURLOPT_FOLLOWLOCATION => false,
			CURLOPT_ENCODING => 'gzip',
			CURLOPT_CONNECTTIMEOUT => 10,
			CURLOPT_TIMEOUT => $this->_options[ Base::O_CRAWLER_TIMEOUT ], // Larger timeout to avoid incorrect blacklist addition #900171
			CURLOPT_SSL_VERIFYHOST => 0,
			CURLOPT_SSL_VERIFYPEER => false,
			CURLOPT_NOBODY => false,
			CURLOPT_HTTPHEADER => $this->_crawler_conf[ 'headers' ],
		);
		$options[ CURLOPT_HTTPHEADER ][] = 'Cache-Control: max-age=0';

		/**
		 * Try to enable http2 connection (only available since PHP7+)
		 * @since  1.9.1
		 * @since  2.2.7 Commented due to cause no-cache issue
		 * @since  2.9.1+ Fixed wrongly usage of CURL_HTTP_VERSION_1_1 const
		 */
		$options[ CURLOPT_HTTP_VERSION ] = CURL_HTTP_VERSION_1_1;
		// 	$options[ CURL_HTTP_VERSION_2 ] = 1;

		// IP resolve
		if ( $this->_options[ Base::O_SERVER_IP ] ) {
			Utility::compatibility();
			if ( ( $this->_options[ Base::O_CRAWLER_DROP_DOMAIN ] || ! $crawler_only ) && $this->_crawler_conf[ 'base' ] ) {
				// Resolve URL to IP
				$parsed_url = parse_url( $this->_crawler_conf[ 'base' ] );

				if ( ! empty( $parsed_url[ 'host' ] ) ) {
					$dom = $parsed_url[ 'host' ];
					$port = $parsed_url[ 'scheme' ] == 'https' ? '443' : '80';
					$url = $dom . ':' . $port . ':' . $this->_options[ Base::O_SERVER_IP ];

					$options[ CURLOPT_RESOLVE ] = array( $url );
					$options[ CURLOPT_DNS_USE_GLOBAL_CACHE ] = false;
				}
			}
		}

		// if is walker
		// $options[ CURLOPT_FRESH_CONNECT ] = true;

		// Referer
		if ( isset( $_SERVER[ 'HTTP_HOST' ] ) && isset( $_SERVER[ 'REQUEST_URI' ] ) ) {
			$options[ CURLOPT_REFERER ] = 'http://' . $_SERVER[ 'HTTP_HOST' ] . $_SERVER[ 'REQUEST_URI' ];
		}

		// User Agent
		if ( $crawler_only ) {
			if ( strpos( $this->_crawler_conf[ 'ua' ], Crawler::FAST_USER_AGENT ) !== 0 ) {
				$this->_crawler_conf[ 'ua' ] = Crawler::FAST_USER_AGENT . ' ' . $this->_crawler_conf[ 'ua' ];
			}
		}
		$options[ CURLOPT_USERAGENT ] = $this->_crawler_conf[ 'ua' ];

		/**
		 * Append hash to cookie for validation
		 * @since  1.9.1
		 */
		if ( $crawler_only ) {
			$this->_crawler_conf[ 'cookies' ][ 'litespeed_hash' ] = Router::get_hash();
		}

		// Cookies
		$cookies = array();
		foreach ( $this->_crawler_conf[ 'cookies' ] as $k => $v ) {
			if ( ! $v ) {
				continue;
			}
			$cookies[] = $k . '=' . urlencode( $v );
		}
		if ( $cookies ) {
			$options[ CURLOPT_COOKIE ] = implode( '; ', $cookies );
		}

		return $options;
	}

	/**
	 * Self curl to get HTML content
	 *
	 * @since  3.3
	 */
	public function self_curl( $url, $ua ) {
		$this->_crawler_conf[ 'base' ] = home_url();
		$this->_crawler_conf[ 'ua' ] = $ua;

		$options = $this->_get_curl_options();
		$options[ CURLOPT_HEADER ] = false;
		$options[ CURLOPT_FOLLOWLOCATION ] = true;

		$ch = curl_init();
		curl_setopt_array( $ch, $options );
		curl_setopt( $ch, CURLOPT_URL, $url );
		$result = curl_exec( $ch );
		curl_close( $ch );

		return $result;
	}

	/**
	 * Terminate crawling
	 *
	 * @since  1.1.0
	 * @access private
	 */
	private function _terminate_running() {
		$this->_map_status_list = $this->__map->save_map_status( $this->_map_status_list, $this->_summary[ 'curr_crawler' ] );

		if ( $this->_end_reason == 'end' ) { // Current crawler is fully done
			// $end_reason = sprintf( __( 'Crawler %s reached end of sitemap file.', 'litespeed-cache' ), '#' . ( $this->_summary['curr_crawler'] + 1 ) );
			$this->_summary[ 'curr_crawler' ]++; // Jump to next cralwer
			// $this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array(); // reset this at next crawl time
			$this->_summary[ 'last_pos' ] = 0;// reset last position
			$this->_summary[ 'last_crawler_total_cost' ] = time() - $this->_summary[ 'curr_crawler_beginning_time' ];
			$count_crawlers = count( $this->list_crawlers() );
			if ( $this->_summary[ 'curr_crawler' ] >= $count_crawlers ) {
				Debug2::debug( '🐞 _terminate_running Touched end, whole crawled. Reload crawler!' );
				$this->_summary[ 'curr_crawler' ] = 0;
				// $this->_summary[ 'crawler_stats' ][ $this->_summary[ 'curr_crawler' ] ] = array();
				$this->_summary[ 'done' ] = 'touchedEnd';// log done status
				$this->_summary[ 'last_full_time_cost' ] = time() - $this->_summary[ 'this_full_beginning_time' ];
			}
		}
		$this->_summary[ 'last_status' ] = 'stopped';
		$this->_summary[ 'is_running' ] = 0;
		$this->_summary[ 'end_reason' ] = $this->_end_reason;
		self::save_summary();
	}

	/**
	 * List all crawlers ( tagA => [ valueA => titleA, ... ] ...)
	 *
	 * @since    1.9.1
	 * @access   public
	 */
	public function list_crawlers() {
		if ( $this->_crawlers ) {
			return $this->_crawlers;
		}

		$crawler_factors = array();

		// Add default Guest crawler
		$crawler_factors[ 'uid' ] = array( 0 => __( 'Guest', 'litespeed-cache' ) );

		// WebP on/off
		if ( $this->_options[ Base::O_IMG_OPTM_WEBP_REPLACE ] ) {
			$crawler_factors[ 'webp' ] = array( 1 => 'WebP', 0 => '' );
		}

		// Mobile crawler
		if ( $this->_options[ Base::O_CACHE_MOBILE ] ) {
			$crawler_factors[ 'mobile' ] = array( 1 => '<font data-balloon-pos="up" aria-label="Mobile">📱</font>', 0 => '' );
		}

		// Get roles set
		// List all roles
		foreach ( $this->_options[ Base::O_CRAWLER_ROLES ] as $v ) {
			$role_title = '';
			$udata = get_userdata( $v );
			if ( isset( $udata->roles ) && is_array( $udata->roles ) ) {
				$tmp = array_values( $udata->roles );
				$role_title = array_shift( $tmp );
			}
			if ( ! $role_title ) {
				continue;
			}

			$crawler_factors[ 'uid' ][ $v ] = ucfirst( $role_title );
		}

		// Cookie crawler
		foreach ( $this->_options[ Base::O_CRAWLER_COOKIES ] as $v ) {
			if ( empty( $v[ 'name' ] ) ) {
				continue;
			}

			$this_cookie_key = 'cookie:' . $v[ 'name' ];

			$crawler_factors[ $this_cookie_key ] = array();

			foreach ( $v[ 'vals' ] as $v2 ) {
				$crawler_factors[ $this_cookie_key ][ $v2 ] = '<font data-balloon-pos="up" aria-label="Cookie">🍪</font>' . $v[ 'name' ] . '=' . $v2;
			}
		}

		// Crossing generate the crawler list
		$this->_crawlers = $this->_recursive_build_crawler( $crawler_factors );

		return $this->_crawlers;
	}

	/**
	 * Build a crawler list recursively
	 *
	 * @since 2.8
	 * @access private
	 */
	private function _recursive_build_crawler( $crawler_factors, $group = array(), $i = 0 ) {
		$current_factor = array_keys( $crawler_factors );
		$current_factor = $current_factor[ $i ];

		$if_touch_end = $i + 1 >= count( $crawler_factors );

		$final_list = array();

		foreach ( $crawler_factors[ $current_factor ] as $k => $v ) {

			// Don't alter $group bcos of loop usage
			$item = $group;
			$item[ 'title' ] = ! empty( $group[ 'title' ] ) ? $group[ 'title' ] : '';
			if ( $v ) {
				if ( $item[ 'title' ] ) {
					$item[ 'title' ] .= ' - ';
				}
				$item[ 'title' ] .= $v;
			}
			$item[ $current_factor ] = $k;

			if ( $if_touch_end ) {
				$final_list[] = $item;
			}
			else {
				// Inception: next layer
				$final_list = array_merge( $final_list, $this->_recursive_build_crawler( $crawler_factors, $item, $i + 1 ) );
			}

		}

		return $final_list;
	}

	/**
	 * Return crawler meta file
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function json_path() {
		if ( ! file_exists( LITESPEED_STATIC_DIR . '/crawler/' . $this->_sitemeta ) ) {
			return false;
		}

		return LITESPEED_STATIC_URL . '/crawler/' . $this->_sitemeta;
	}


	/**
	 * Create reset pos file
	 *
	 * @since    1.1.0
	 * @access public
	 */
	public function reset_pos() {
		File::save( $this->_resetfile, time() , true );
	}

	/**
	 * Display status based by matching crawlers order
	 *
	 * @since  3.0
	 * @access public
	 */
	public function display_status( $status_row, $reason_set ) {
		if ( ! $status_row ) {
			return '';
		}

		$_status_list = array(
			'-' => 'default',
			'M' => 'primary',
			'H' => 'success',
			'B' => 'danger',
			'N' => 'warning',
		);

		$reason_set = explode( ',', $reason_set );

		$status = '';
		foreach ( str_split( $status_row ) as $k => $v ) {
			$reason = $reason_set[ $k ];
			if ( $reason == 'Man' ) {
				$reason = __( 'Manually added to blacklist', 'litespeed-cache' );
			}
			if ( $reason == 'Existed' ) {
				$reason = __( 'Previously existed in blacklist', 'litespeed-cache' );
			}
			if ( $reason ) {
				$reason = 'data-balloon-pos="up" aria-label="' . $reason . '"';
			}
			$status .= '<i class="litespeed-dot litespeed-bg-' . $_status_list[ $v ] . '" ' . $reason . '>' . ( $k + 1 ) . '</i>';
		}

		return $status;
	}

	/**
	 * Output info and exit
	 *
	 * @since    1.1.0
	 * @access protected
	 * @param  string $error Error info
	 */
	protected function output($msg) {
		if ( defined('DOING_CRON') ) {
			echo $msg;
			// exit();
		}
		else {
			echo "<script>alert('" . htmlspecialchars($msg) . "');</script>";
			// exit;
		}
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_REFRESH_MAP:
				Crawler_Map::get_instance()->gen();
				break;

			case self::TYPE_EMPTY:
				Crawler_Map::get_instance()->empty_map();
				break;

			case self::TYPE_BLACKLIST_EMPTY:
				Crawler_Map::get_instance()->blacklist_empty();
				break;

			case self::TYPE_BLACKLIST_DEL:
				if ( ! empty( $_GET[ 'id' ] ) ) {
					Crawler_Map::get_instance()->blacklist_del( $_GET[ 'id' ] );
				}
				break;

			case self::TYPE_BLACKLIST_ADD:
				if ( ! empty( $_GET[ 'id' ] ) ) {
					Crawler_Map::get_instance()->blacklist_add( $_GET[ 'id' ] );
				}
				break;

			// Handle the ajax request to proceed crawler manually by admin
			case self::TYPE_START:
				self::start( true );
				break;

			case self::TYPE_RESET:
				$instance->reset_pos();
				break;

			default:
				break;
		}

		Admin::redirect();
	}

}
<?php
/**
 * The base consts
 *
 * @since      	2.4
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Base extends Instance {
	protected static $_instance;

	// This is redundant since v3.0
	// New conf items are `litespeed.key`
	const OPTION_NAME = 'litespeed-cache-conf';

	const _CACHE = '_cache'; // final cache status from setting

	## -------------------------------------------------- ##
	## --------------     	General	    ----------------- ##
	## -------------------------------------------------- ##
	const _VER 	= '_version'; // Not set-able
	const HASH 		= 'hash'; // Not set-able
	const O_AUTO_UPGRADE 	= 'auto_upgrade';
	const O_API_KEY 		= 'api_key';
	const O_SERVER_IP 		= 'server_ip';
	const O_NEWS 			= 'news';

	## -------------------------------------------------- ##
	## --------------		Cache 		----------------- ##
	## -------------------------------------------------- ##
	const O_CACHE 					= 'cache';
	const O_CACHE_PRIV 				= 'cache-priv';
	const O_CACHE_COMMENTER 		= 'cache-commenter';
	const O_CACHE_REST 				= 'cache-rest';
	const O_CACHE_PAGE_LOGIN		= 'cache-page_login';
	const O_CACHE_FAVICON 			= 'cache-favicon';
	const O_CACHE_RES 				= 'cache-resources';
	const O_CACHE_MOBILE 			= 'cache-mobile';
	const O_CACHE_MOBILE_RULES		= 'cache-mobile_rules';
	const O_CACHE_BROWSER 			= 'cache-browser';
	const O_CACHE_EXC_USERAGENTS 	= 'cache-exc_useragents';
	const O_CACHE_EXC_COOKIES 		= 'cache-exc_cookies';
	const O_CACHE_EXC_QS 			= 'cache-exc_qs';
	const O_CACHE_EXC_CAT 			= 'cache-exc_cat';
	const O_CACHE_EXC_TAG 			= 'cache-exc_tag';
	const O_CACHE_FORCE_URI 		= 'cache-force_uri';
	const O_CACHE_FORCE_PUB_URI		= 'cache-force_pub_uri';
	const O_CACHE_PRIV_URI 			= 'cache-priv_uri';
	const O_CACHE_EXC 				= 'cache-exc';
	const O_CACHE_EXC_ROLES 		= 'cache-exc_roles';
	const O_CACHE_DROP_QS 			= 'cache-drop_qs';
	const O_CACHE_TTL_PUB 			= 'cache-ttl_pub';
	const O_CACHE_TTL_PRIV 			= 'cache-ttl_priv';
	const O_CACHE_TTL_FRONTPAGE 	= 'cache-ttl_frontpage';
	const O_CACHE_TTL_FEED 			= 'cache-ttl_feed';
	const O_CACHE_TTL_REST 			= 'cache-ttl_rest';
	const O_CACHE_TTL_STATUS 		= 'cache-ttl_status';
	const O_CACHE_TTL_BROWSER 		= 'cache-ttl_browser';
	const O_CACHE_LOGIN_COOKIE 		= 'cache-login_cookie';
	const O_CACHE_VARY_GROUP 		= 'cache-vary_group';

	## -------------------------------------------------- ##
	## --------------		Purge 		----------------- ##
	## -------------------------------------------------- ##
	const O_PURGE_ON_UPGRADE 		= 'purge-upgrade';
	const O_PURGE_STALE 			= 'purge-stale';
	const O_PURGE_POST_ALL 			= 'purge-post_all';
	const O_PURGE_POST_FRONTPAGE 	= 'purge-post_f';
	const O_PURGE_POST_HOMEPAGE 	= 'purge-post_h';
	const O_PURGE_POST_PAGES 		= 'purge-post_p';
	const O_PURGE_POST_PAGES_WITH_RECENT_POSTS = 'purge-post_pwrp';
	const O_PURGE_POST_AUTHOR 		= 'purge-post_a';
	const O_PURGE_POST_YEAR 		= 'purge-post_y';
	const O_PURGE_POST_MONTH 		= 'purge-post_m';
	const O_PURGE_POST_DATE 		= 'purge-post_d';
	const O_PURGE_POST_TERM 		= 'purge-post_t'; // include category|tag|tax
	const O_PURGE_POST_POSTTYPE 	= 'purge-post_pt';
	const O_PURGE_TIMED_URLS 		= 'purge-timed_urls';
	const O_PURGE_TIMED_URLS_TIME 	= 'purge-timed_urls_time';
	const O_PURGE_HOOK_ALL 			= 'purge-hook_all';

	## -------------------------------------------------- ##
	## --------------     	 ESI	    ----------------- ##
	## -------------------------------------------------- ##
	const O_ESI 				= 'esi';
	const O_ESI_CACHE_ADMBAR 	= 'esi-cache_admbar';
	const O_ESI_CACHE_COMMFORM 	= 'esi-cache_commform';
	const O_ESI_NONCE 			= 'esi-nonce';

	## -------------------------------------------------- ##
	## --------------     Utilities	    ----------------- ##
	## -------------------------------------------------- ##
	const O_UTIL_INSTANT_CLICK 		= 'util-instant_click';
	const O_UTIL_NO_HTTPS_VARY 		= 'util-no_https_vary';

	## -------------------------------------------------- ##
	## --------------		Debug 		----------------- ##
	## -------------------------------------------------- ##
	const O_DEBUG_DISABLE_ALL 			= 'debug-disable_all';
	const O_DEBUG 						= 'debug';
	const O_DEBUG_IPS 					= 'debug-ips';
	const O_DEBUG_LEVEL 				= 'debug-level';
	const O_DEBUG_FILESIZE 				= 'debug-filesize';
	const O_DEBUG_COOKIE 				= 'debug-cookie';
	const O_DEBUG_COLLAPS_QS 			= 'debug-collaps_qs';
	const O_DEBUG_INC 					= 'debug-inc';
	const O_DEBUG_EXC 					= 'debug-exc';

	## -------------------------------------------------- ##
	## --------------	   DB Optm  	----------------- ##
	## -------------------------------------------------- ##
	const O_DB_OPTM_REVISIONS_MAX 		= 'db_optm-revisions_max';
	const O_DB_OPTM_REVISIONS_AGE 		= 'db_optm-revisions_age';

	## -------------------------------------------------- ##
	## --------------	  HTML Optm 	----------------- ##
	## -------------------------------------------------- ##
	const O_OPTM_CSS_MIN 			= 'optm-css_min';
	const O_OPTM_CSS_COMB 			= 'optm-css_comb';
	const O_OPTM_CSS_COMB_EXT_INL	= 'optm-css_comb_ext_inl';
	const O_OPTM_UCSS 				= 'optm-ucss';
	const O_OPTM_UCSS_ASYNC 		= 'optm-ucss_async';
	const O_OPTM_UCSS_WHITELIST 	= 'optm-ucss_whitelist';
	const O_OPTM_CSS_HTTP2 			= 'optm-css_http2';
	const O_OPTM_CSS_EXC 			= 'optm-css_exc';
	const O_OPTM_JS_MIN 			= 'optm-js_min';
	const O_OPTM_JS_COMB 			= 'optm-js_comb';
	const O_OPTM_JS_COMB_EXT_INL	= 'optm-js_comb_ext_inl';
	const O_OPTM_JS_HTTP2 			= 'optm-js_http2';
	const O_OPTM_JS_EXC 			= 'optm-js_exc';
	const O_OPTM_TTL 				= 'optm-ttl';
	const O_OPTM_HTML_MIN 			= 'optm-html_min';
	const O_OPTM_QS_RM 				= 'optm-qs_rm';
	const O_OPTM_GGFONTS_RM 		= 'optm-ggfonts_rm';
	const O_OPTM_CSS_ASYNC 			= 'optm-css_async';
	const O_OPTM_CCSS_GEN 			= 'optm-ccss_gen';
	const O_OPTM_CCSS_ASYNC 		= 'optm-ccss_async';
	const O_OPTM_CSS_ASYNC_INLINE 	= 'optm-css_async_inline';
	const O_OPTM_CSS_FONT_DISPLAY 	= 'optm-css_font_display';
	const O_OPTM_JS_DEFER 			= 'optm-js_defer';
	const O_OPTM_JS_INLINE_DEFER	= 'optm-js_inline_defer';
	const O_OPTM_LOCALIZE			= 'optm-localize';
	const O_OPTM_LOCALIZE_DOMAINS	= 'optm-localize_domains';
	const O_OPTM_EMOJI_RM 			= 'optm-emoji_rm';
	const O_OPTM_NOSCRIPT_RM 		= 'optm-noscript_rm';
	const O_OPTM_GGFONTS_ASYNC 		= 'optm-ggfonts_async';
	const O_OPTM_EXC_ROLES 			= 'optm-exc_roles';
	const O_OPTM_CCSS_CON			= 'optm-ccss_con';
	const O_OPTM_JS_DEFER_EXC 		= 'optm-js_defer_exc';
	const O_OPTM_DNS_PREFETCH		= 'optm-dns_prefetch';
	const O_OPTM_DNS_PREFETCH_CTRL	= 'optm-dns_prefetch_ctrl';
	const O_OPTM_EXC 				= 'optm-exc';
	const O_OPTM_CCSS_SEP_POSTTYPE 	= 'optm-ccss_sep_posttype';
	const O_OPTM_CCSS_SEP_URI 		= 'optm-ccss_sep_uri';

	## -------------------------------------------------- ##
	## --------------	Object Cache	----------------- ##
	## -------------------------------------------------- ##
	const O_OBJECT				 = 'object';
	const O_OBJECT_KIND			 = 'object-kind';
	const O_OBJECT_HOST			 = 'object-host';
	const O_OBJECT_PORT			 = 'object-port';
	const O_OBJECT_LIFE			 = 'object-life';
	const O_OBJECT_PERSISTENT	 = 'object-persistent';
	const O_OBJECT_ADMIN		 = 'object-admin';
	const O_OBJECT_TRANSIENTS	 = 'object-transients';
	const O_OBJECT_DB_ID		 = 'object-db_id';
	const O_OBJECT_USER			 = 'object-user';
	const O_OBJECT_PSWD			 = 'object-pswd';
	const O_OBJECT_GLOBAL_GROUPS = 'object-global_groups';
	const O_OBJECT_NON_PERSISTENT_GROUPS = 'object-non_persistent_groups';

	## -------------------------------------------------- ##
	## --------------	Discussion		----------------- ##
	## -------------------------------------------------- ##
	const O_DISCUSS_AVATAR_CACHE		= 'discuss-avatar_cache';
	const O_DISCUSS_AVATAR_CRON			= 'discuss-avatar_cron';
	const O_DISCUSS_AVATAR_CACHE_TTL	= 'discuss-avatar_cache_ttl';

	## -------------------------------------------------- ##
	## --------------		 Media 		----------------- ##
	## -------------------------------------------------- ##
	const O_MEDIA_LAZY 							= 'media-lazy';
	const O_MEDIA_LAZY_PLACEHOLDER 				= 'media-lazy_placeholder';
	const O_MEDIA_PLACEHOLDER_RESP 				= 'media-placeholder_resp';
	const O_MEDIA_PLACEHOLDER_RESP_COLOR		= 'media-placeholder_resp_color';
	const O_MEDIA_PLACEHOLDER_RESP_SVG			= 'media-placeholder_resp_svg';
	const O_MEDIA_LQIP							= 'media-lqip';
	const O_MEDIA_LQIP_QUAL						= 'media-lqip_qual';
	const O_MEDIA_LQIP_MIN_W					= 'media-lqip_min_w';
	const O_MEDIA_LQIP_MIN_H					= 'media-lqip_min_h';
	const O_MEDIA_PLACEHOLDER_RESP_ASYNC		= 'media-placeholder_resp_async';
	const O_MEDIA_IFRAME_LAZY 					= 'media-iframe_lazy';
	const O_MEDIA_LAZYJS_INLINE 				= 'media-lazyjs_inline';
	const O_MEDIA_LAZY_EXC 						= 'media-lazy_exc';
	const O_MEDIA_LAZY_CLS_EXC 					= 'media-lazy_cls_exc';
	const O_MEDIA_LAZY_PARENT_CLS_EXC 			= 'media-lazy_parent_cls_exc';
	const O_MEDIA_IFRAME_LAZY_CLS_EXC 			= 'media-iframe_lazy_cls_exc';
	const O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC 	= 'media-iframe_lazy_parent_cls_exc';
	const O_MEDIA_LAZY_URI_EXC					= 'media-lazy_uri_exc';
	const O_MEDIA_LQIP_EXC						= 'media-lqip_exc';

	## -------------------------------------------------- ##
	## --------------	  Image Optm 	----------------- ##
	## -------------------------------------------------- ##
	const O_IMG_OPTM_AUTO 				= 'img_optm-auto';
	const O_IMG_OPTM_CRON 				= 'img_optm-cron';
	const O_IMG_OPTM_ORI 				= 'img_optm-ori';
	const O_IMG_OPTM_RM_BKUP 			= 'img_optm-rm_bkup';
	const O_IMG_OPTM_WEBP 				= 'img_optm-webp';
	const O_IMG_OPTM_LOSSLESS 			= 'img_optm-lossless';
	const O_IMG_OPTM_EXIF 				= 'img_optm-exif';
	const O_IMG_OPTM_WEBP_REPLACE 		= 'img_optm-webp_replace';
	const O_IMG_OPTM_WEBP_ATTR 			= 'img_optm-webp_attr';
	const O_IMG_OPTM_WEBP_REPLACE_SRCSET = 'img_optm-webp_replace_srcset';
	const O_IMG_OPTM_JPG_QUALITY 		= 'img_optm-jpg_quality';

	## -------------------------------------------------- ##
	## --------------		Crawler		----------------- ##
	## -------------------------------------------------- ##
	const O_CRAWLER 				= 'crawler';
	const O_CRAWLER_USLEEP 			= 'crawler-usleep';
	const O_CRAWLER_RUN_DURATION 	= 'crawler-run_duration';
	const O_CRAWLER_RUN_INTERVAL 	= 'crawler-run_interval';
	const O_CRAWLER_CRAWL_INTERVAL 	= 'crawler-crawl_interval';
	const O_CRAWLER_THREADS 		= 'crawler-threads';
	const O_CRAWLER_TIMEOUT 		= 'crawler-timeout';
	const O_CRAWLER_LOAD_LIMIT 		= 'crawler-load_limit';
	const O_CRAWLER_SITEMAP 		= 'crawler-sitemap';
	const O_CRAWLER_DROP_DOMAIN		= 'crawler-drop_domain';
	const O_CRAWLER_MAP_TIMEOUT		= 'crawler-map_timeout';
	const O_CRAWLER_ROLES 			= 'crawler-roles';
	const O_CRAWLER_COOKIES 		= 'crawler-cookies';

	## -------------------------------------------------- ##
	## --------------		 Misc 		----------------- ##
	## -------------------------------------------------- ##
	const O_MISC_HTACCESS_FRONT 		= 'misc-htaccess_front';
	const O_MISC_HTACCESS_BACK 			= 'misc-htaccess_back';
	const O_MISC_HEARTBEAT_FRONT		= 'misc-heartbeat_front';
	const O_MISC_HEARTBEAT_FRONT_TTL	= 'misc-heartbeat_front_ttl';
	const O_MISC_HEARTBEAT_BACK			= 'misc-heartbeat_back';
	const O_MISC_HEARTBEAT_BACK_TTL		= 'misc-heartbeat_back_ttl';
	const O_MISC_HEARTBEAT_EDITOR		= 'misc-heartbeat_editor';
	const O_MISC_HEARTBEAT_EDITOR_TTL	= 'misc-heartbeat_editor_ttl';

	## -------------------------------------------------- ##
	## --------------		 CDN 		----------------- ##
	## -------------------------------------------------- ##
	const O_CDN 				= 'cdn';
	const O_CDN_ORI 			= 'cdn-ori';
	const O_CDN_ORI_DIR 		= 'cdn-ori_dir';
	const O_CDN_EXC 			= 'cdn-exc';
	const O_CDN_QUIC 			= 'cdn-quic';
	const O_CDN_CLOUDFLARE 		= 'cdn-cloudflare';
	const O_CDN_CLOUDFLARE_EMAIL= 'cdn-cloudflare_email';
	const O_CDN_CLOUDFLARE_KEY 	= 'cdn-cloudflare_key';
	const O_CDN_CLOUDFLARE_NAME = 'cdn-cloudflare_name';
	const O_CDN_CLOUDFLARE_ZONE = 'cdn-cloudflare_zone';
	const O_CDN_MAPPING 		= 'cdn-mapping';
	const O_CDN_ATTR 			= 'cdn-attr';

	const NETWORK_O_USE_PRIMARY = 'use_primary_settings';

	/*** Other consts ***/
	const O_GUIDE = 'litespeed-guide'; // Array of each guidance tag as key, step as val //xx todo: may need to remove

	// Server variables
	const ENV_CRAWLER_USLEEP = 'CRAWLER_USLEEP';
	const ENV_CRAWLER_LOAD_LIMIT = 'CRAWLER_LOAD_LIMIT';
	const ENV_CRAWLER_LOAD_LIMIT_ENFORCE = 'CRAWLER_LOAD_LIMIT_ENFORCE';

	// const O_FAVICON = 'litespeed-cache-favicon';

	const CRWL_COOKIE_NAME 		= 'name';
	const CRWL_COOKIE_VALS 		= 'vals';

	const CDN_MAPPING_URL 		= 'url';
	const CDN_MAPPING_INC_IMG 	= 'inc_img';
	const CDN_MAPPING_INC_CSS 	= 'inc_css';
	const CDN_MAPPING_INC_JS 	= 'inc_js';
	const CDN_MAPPING_FILETYPE 	= 'filetype';

	const VAL_OFF 	= 0;
	const VAL_ON 	= 1;
	const VAL_ON2 	= 2;

	/* This is for API hook usage */
	const IMG_OPTM_BM_ORI 		= 1;
	const IMG_OPTM_BM_WEBP 		= 2;
	const IMG_OPTM_BM_LOSSLESS 	= 4;
	const IMG_OPTM_BM_EXIF 		= 8;

	/* Site related options (Will not overwrite other sites' config) */
	protected static $SINGLE_SITE_OPTIONS = array(
		self::O_API_KEY,
		self::O_CRAWLER,
		self::O_CRAWLER_SITEMAP,
		self::O_CRAWLER_DROP_DOMAIN,
		self::O_CDN,
		self::O_CDN_ORI,
		self::O_CDN_ORI_DIR,
		self::O_CDN_EXC,
		self::O_CDN_QUIC,
		self::O_CDN_CLOUDFLARE,
		self::O_CDN_CLOUDFLARE_EMAIL,
		self::O_CDN_CLOUDFLARE_KEY,
		self::O_CDN_CLOUDFLARE_NAME,
		self::O_CDN_CLOUDFLARE_ZONE,
		self::O_CDN_MAPPING,
		self::O_CDN_ATTR,
	);

	public static $CSS_FONT_DISPLAY_SET = array(
		1 => 'block',
		2 => 'swap',
		3 => 'fallback',
		4 => 'optional',
	);

	protected static $_default_options = array(
		self::_VER 			=> '',
		self::HASH				=> '',
		self::O_AUTO_UPGRADE 	=> false,
		self::O_API_KEY 		=> '',
		self::O_SERVER_IP 		=> '',
		self::O_NEWS 			=> false,

		// Cache
		self::O_CACHE 					=> false,
		self::O_CACHE_PRIV 				=> false,
		self::O_CACHE_COMMENTER 		=> false,
		self::O_CACHE_REST 				=> false,
		self::O_CACHE_PAGE_LOGIN 		=> false,
		self::O_CACHE_FAVICON 			=> false,
		self::O_CACHE_RES 				=> false,
		self::O_CACHE_MOBILE 			=> false,
		self::O_CACHE_MOBILE_RULES 		=> array(),
		self::O_CACHE_BROWSER 			=> false,
		self::O_CACHE_EXC_USERAGENTS 	=> array(),
		self::O_CACHE_EXC_COOKIES 		=> array(),
		self::O_CACHE_EXC_QS 			=> array(),
		self::O_CACHE_EXC_CAT 			=> array(),
		self::O_CACHE_EXC_TAG 			=> array(),
		self::O_CACHE_FORCE_URI			=> array(),
		self::O_CACHE_FORCE_PUB_URI		=> array(),
		self::O_CACHE_PRIV_URI			=> array(),
		self::O_CACHE_EXC 				=> array(),
		self::O_CACHE_EXC_ROLES 		=> array(),
		self::O_CACHE_DROP_QS 			=> array(),
		self::O_CACHE_TTL_PUB 			=> 0,
		self::O_CACHE_TTL_PRIV 			=> 0,
		self::O_CACHE_TTL_FRONTPAGE 	=> 0,
		self::O_CACHE_TTL_FEED 			=> 0,
		self::O_CACHE_TTL_REST 			=> 0,
		self::O_CACHE_TTL_BROWSER 		=> 0,
		self::O_CACHE_TTL_STATUS 		=> array(),
		self::O_CACHE_LOGIN_COOKIE 		=> '',
		self::O_CACHE_VARY_GROUP		=> array(),

		// Purge
		self::O_PURGE_ON_UPGRADE 		=> false,
		self::O_PURGE_STALE 			=> false,
		self::O_PURGE_POST_ALL			=> false,
		self::O_PURGE_POST_FRONTPAGE	=> false,
		self::O_PURGE_POST_HOMEPAGE		=> false,
		self::O_PURGE_POST_PAGES		=> false,
		self::O_PURGE_POST_PAGES_WITH_RECENT_POSTS	=> false,
		self::O_PURGE_POST_AUTHOR		=> false,
		self::O_PURGE_POST_YEAR			=> false,
		self::O_PURGE_POST_MONTH		=> false,
		self::O_PURGE_POST_DATE			=> false,
		self::O_PURGE_POST_TERM			=> false,
		self::O_PURGE_POST_POSTTYPE		=> false,
		self::O_PURGE_TIMED_URLS 		=> array(),
		self::O_PURGE_TIMED_URLS_TIME 	=> '',
		self::O_PURGE_HOOK_ALL			=> array(),

		// ESI
		self::O_ESI 	 				=> false,
		self::O_ESI_CACHE_ADMBAR 	 	=> false,
		self::O_ESI_CACHE_COMMFORM 	 	=> false,
		self::O_ESI_NONCE 			 	=> array(),

		// Util
		self::O_UTIL_INSTANT_CLICK 		=> false,
		self::O_UTIL_NO_HTTPS_VARY 		=> false,

		// Debug
		self::O_DEBUG_DISABLE_ALL 		=> false,
		self::O_DEBUG 					=> false,
		self::O_DEBUG_IPS 				=> array(),
		self::O_DEBUG_LEVEL 			=> false,
		self::O_DEBUG_FILESIZE 			=> 0,
		self::O_DEBUG_COOKIE 			=> false,
		self::O_DEBUG_COLLAPS_QS 		=> false,
		self::O_DEBUG_INC 				=> array(),
		self::O_DEBUG_EXC 				=> array(),

		// DB Optm
		self::O_DB_OPTM_REVISIONS_MAX 	=> 0,
		self::O_DB_OPTM_REVISIONS_AGE 	=> 0,

		// HTML Optm
		self::O_OPTM_CSS_MIN 			=> false,
		self::O_OPTM_CSS_COMB 			=> false,
		self::O_OPTM_CSS_COMB_EXT_INL	=> false,
		self::O_OPTM_UCSS 				=> false,
		self::O_OPTM_UCSS_ASYNC			=> false,
		// self::O_OPTM_UCSS_WHITELIST		=> array(),
		self::O_OPTM_CSS_HTTP2 			=> false,
		self::O_OPTM_CSS_EXC 			=> array(),
		self::O_OPTM_JS_MIN 			=> false,
		self::O_OPTM_JS_COMB 			=> false,
		self::O_OPTM_JS_COMB_EXT_INL	=> false,
		self::O_OPTM_JS_HTTP2 			=> false,
		self::O_OPTM_JS_EXC 			=> array(),
		self::O_OPTM_TTL 				=> 0,
		self::O_OPTM_HTML_MIN 			=> false,
		self::O_OPTM_QS_RM 				=> false,
		self::O_OPTM_GGFONTS_RM 		=> false,
		self::O_OPTM_CSS_ASYNC 			=> false,
		self::O_OPTM_CCSS_GEN 			=> false,
		self::O_OPTM_CCSS_ASYNC 		=> false,
		self::O_OPTM_CSS_ASYNC_INLINE 	=> false,
		self::O_OPTM_CSS_FONT_DISPLAY 	=> false,
		self::O_OPTM_JS_DEFER 			=> false,
		self::O_OPTM_JS_INLINE_DEFER	=> false,
		self::O_OPTM_EMOJI_RM 			=> false,
		self::O_OPTM_NOSCRIPT_RM 		=> false,
		self::O_OPTM_GGFONTS_ASYNC 		=> false,
		self::O_OPTM_EXC_ROLES			=> array(),
		self::O_OPTM_CCSS_CON			=> '',
		self::O_OPTM_JS_DEFER_EXC		=> array(),
		self::O_OPTM_DNS_PREFETCH		=> array(),
		self::O_OPTM_DNS_PREFETCH_CTRL	=> false,
		self::O_OPTM_EXC				=> array(),
		self::O_OPTM_CCSS_SEP_POSTTYPE	=> array(),
		self::O_OPTM_CCSS_SEP_URI		=> array(),

		// Object
		self::O_OBJECT 					=> false,
		self::O_OBJECT_KIND 			=> false,
		self::O_OBJECT_HOST 			=> '',
		self::O_OBJECT_PORT 			=> 0,
		self::O_OBJECT_LIFE 			=> 0,
		self::O_OBJECT_PERSISTENT 		=> false,
		self::O_OBJECT_ADMIN 			=> false,
		self::O_OBJECT_TRANSIENTS 		=> false,
		self::O_OBJECT_DB_ID 			=> 0,
		self::O_OBJECT_USER 			=> '',
		self::O_OBJECT_PSWD 			=> '',
		self::O_OBJECT_GLOBAL_GROUPS	=> array(),
		self::O_OBJECT_NON_PERSISTENT_GROUPS => array(),

		// Discuss
		self::O_DISCUSS_AVATAR_CACHE		=> false,
		self::O_DISCUSS_AVATAR_CRON			=> false,
		self::O_DISCUSS_AVATAR_CACHE_TTL	=> 0,
		self::O_OPTM_LOCALIZE 			=> false,
		self::O_OPTM_LOCALIZE_DOMAINS	=> array(),

		// Media
		self::O_MEDIA_LAZY 							=> false,
		self::O_MEDIA_LAZY_PLACEHOLDER 				=> '',
		self::O_MEDIA_PLACEHOLDER_RESP				=> false,
		self::O_MEDIA_PLACEHOLDER_RESP_COLOR		=> '',
		self::O_MEDIA_PLACEHOLDER_RESP_SVG			=> '',
		self::O_MEDIA_LQIP				=> false,
		self::O_MEDIA_LQIP_QUAL			=> 0,
		self::O_MEDIA_LQIP_MIN_W		=> 0,
		self::O_MEDIA_LQIP_MIN_H		=> 0,
		self::O_MEDIA_PLACEHOLDER_RESP_ASYNC		=> false,
		self::O_MEDIA_IFRAME_LAZY 					=> false,
		self::O_MEDIA_LAZYJS_INLINE 				=> false,
		self::O_MEDIA_LAZY_EXC 						=> array(),
		self::O_MEDIA_LAZY_CLS_EXC 					=> array(),
		self::O_MEDIA_LAZY_PARENT_CLS_EXC 			=> array(),
		self::O_MEDIA_IFRAME_LAZY_CLS_EXC 			=> array(),
		self::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC 	=> array(),
		self::O_MEDIA_LAZY_URI_EXC 					=> array(),
		self::O_MEDIA_LQIP_EXC 						=> array(),

		// Image Optm
		self::O_IMG_OPTM_AUTO 			=> false,
		self::O_IMG_OPTM_CRON 			=> false,
		self::O_IMG_OPTM_ORI 			=> false,
		self::O_IMG_OPTM_RM_BKUP 		=> false,
		self::O_IMG_OPTM_WEBP 			=> false,
		self::O_IMG_OPTM_LOSSLESS 		=> false,
		self::O_IMG_OPTM_EXIF 			=> false,
		self::O_IMG_OPTM_WEBP_REPLACE 	=> false,
		self::O_IMG_OPTM_WEBP_ATTR		=> array(),
		self::O_IMG_OPTM_WEBP_REPLACE_SRCSET 	=> false,
		self::O_IMG_OPTM_JPG_QUALITY 	=> 0,

		// Crawler
		self::O_CRAWLER 				=> false,
		self::O_CRAWLER_USLEEP 			=> 0,
		self::O_CRAWLER_RUN_DURATION 	=> 0,
		self::O_CRAWLER_RUN_INTERVAL 	=> 0,
		self::O_CRAWLER_CRAWL_INTERVAL 	=> 0,
		self::O_CRAWLER_THREADS 		=> 0,
		self::O_CRAWLER_TIMEOUT 		=> 0,
		self::O_CRAWLER_LOAD_LIMIT 		=> 0,
		self::O_CRAWLER_SITEMAP 		=> '',
		self::O_CRAWLER_DROP_DOMAIN		=> false,
		self::O_CRAWLER_MAP_TIMEOUT		=> 0,
		self::O_CRAWLER_ROLES			=> array(),
		self::O_CRAWLER_COOKIES 		=> array(),

		// Misc
		self::O_MISC_HTACCESS_FRONT 		=> '',
		self::O_MISC_HTACCESS_BACK 			=> '',
		self::O_MISC_HEARTBEAT_FRONT 		=> false,
		self::O_MISC_HEARTBEAT_FRONT_TTL 	=> 0,
		self::O_MISC_HEARTBEAT_BACK 		=> false,
		self::O_MISC_HEARTBEAT_BACK_TTL 	=> 0,
		self::O_MISC_HEARTBEAT_EDITOR 		=> false,
		self::O_MISC_HEARTBEAT_EDITOR_TTL 	=> 0,

		// CDN
		self::O_CDN 				=> false,
		self::O_CDN_ORI 			=> array(),
		self::O_CDN_ORI_DIR 		=> array(),
		self::O_CDN_EXC 			=> array(),
		self::O_CDN_QUIC 			=> false,
		self::O_CDN_CLOUDFLARE 		=> false,
		self::O_CDN_CLOUDFLARE_EMAIL => '',
		self::O_CDN_CLOUDFLARE_KEY 	=> '',
		self::O_CDN_CLOUDFLARE_NAME => '',
		self::O_CDN_CLOUDFLARE_ZONE => '',
		self::O_CDN_MAPPING 		=> array(),
		self::O_CDN_ATTR 			=> array(),

	);

	protected static $_default_site_options = array(
		self::_VER 						=> '',
		self::O_CACHE 					=> false,
		self::NETWORK_O_USE_PRIMARY 	=> false,
		self::O_AUTO_UPGRADE 			=> false,

		self::O_CACHE_FAVICON 			=> false,
		self::O_CACHE_RES 				=> false,
		self::O_CACHE_BROWSER 			=> false,
		self::O_CACHE_MOBILE 			=> false,
		self::O_CACHE_MOBILE_RULES 		=> array(),
		self::O_CACHE_LOGIN_COOKIE 		=> '',
		self::O_CACHE_EXC_COOKIES 		=> array(),
		self::O_CACHE_EXC_USERAGENTS 	=> array(),
		self::O_CACHE_TTL_BROWSER 		=> 0,

		self::O_PURGE_ON_UPGRADE 		=> false,

		self::O_OBJECT 					=> false,
		self::O_OBJECT_KIND 			=> false,
		self::O_OBJECT_HOST 			=> '',
		self::O_OBJECT_PORT 			=> 0,
		self::O_OBJECT_LIFE 			=> 0,
		self::O_OBJECT_PERSISTENT 		=> false,
		self::O_OBJECT_ADMIN 			=> false,
		self::O_OBJECT_TRANSIENTS 		=> false,
		self::O_OBJECT_DB_ID 			=> 0,
		self::O_OBJECT_USER 			=> '',
		self::O_OBJECT_PSWD 			=> '',
		self::O_OBJECT_GLOBAL_GROUPS	=> array(),
		self::O_OBJECT_NON_PERSISTENT_GROUPS => array(),

		// Debug
		self::O_DEBUG_DISABLE_ALL 		=> false,
		self::O_DEBUG 					=> false,
		self::O_DEBUG_IPS 				=> array(),
		self::O_DEBUG_LEVEL 			=> false,
		self::O_DEBUG_FILESIZE 			=> 0,
		self::O_DEBUG_COOKIE 			=> false,
		self::O_DEBUG_COLLAPS_QS 		=> false,
		self::O_DEBUG_INC 				=> array(),
		self::O_DEBUG_EXC 				=> array(),

		self::O_IMG_OPTM_WEBP_REPLACE 	=> false,

		self::O_MISC_HTACCESS_FRONT 	=> '',
		self::O_MISC_HTACCESS_BACK		=> '',

	);

	// NOTE: all the val of following items will be int while not bool
	protected static $_multi_switch_list = array(
		self::O_DEBUG 			=> 2,
		self::O_OPTM_CSS_FONT_DISPLAY 	=> 4,
		self::O_OPTM_JS_INLINE_DEFER 	=> 2,
	);


	/**
	 * Correct the option type
	 *
	 * TODO: add similar network func
	 *
	 * @since  3.0.3
	 */
	protected function type_casting( $val, $id, $is_site_conf = false ) {
		$default_v = ! $is_site_conf ? self::$_default_options[ $id ] : self::$_default_site_options[ $id ];
		if ( is_bool( $default_v ) ) {
			if ( $val === 'true' ) {
				$val = true;
			}
			if ( $val === 'false' ) {
				$val = false;
			}

			$max = $this->_conf_multi_switch( $id );
			if ( $max ) {
				$val = (int) $val;
				$val %= $max + 1;
			}
			else {
				$val = (bool) $val;
			}
		}
		elseif ( is_array( $default_v ) ) {
			// from textarea input
			if ( ! is_array( $val ) ) {
				$val = Utility::sanitize_lines( $val, $this->_conf_filter( $id ) );
			}
		}
		elseif ( ! is_string( $default_v ) ) {
			$val = (int) $val;
		}
		else {
			// Check if the string has a limit set
			$val = $this->_conf_string_val( $id, $val );
		}

		return $val;
	}

	/**
	 * Load default network settings from data.ini
	 *
	 * @since  3.0
	 */
	public function load_default_site_vals() {
		// Load network_default.ini
		if ( file_exists( LSCWP_DIR . 'data/const.network_default.ini' ) ) {
			$default_ini_cfg = parse_ini_file( LSCWP_DIR . 'data/const.network_default.ini', true );
			foreach ( self::$_default_site_options as $k => $v ) {
				if ( ! array_key_exists( $k, $default_ini_cfg ) ) {
					continue;
				}

				// Parse value in ini file
				$ini_v = $this->type_casting( $default_ini_cfg[ $k ], $k, true );

				if ( $ini_v == $v ) {
					continue;
				}

				self::$_default_site_options[ $k ] = $ini_v;

			}
		}

		self::$_default_site_options[ self::_VER ] = Core::VER;

		return self::$_default_site_options;
	}

	/**
	 * Load default values from default.ini
	 *
	 * @since 3.0
	 * @access public
	 */
	public function load_default_vals() {
		// Load default.ini
		if ( file_exists( LSCWP_DIR . 'data/const.default.ini' ) ) {
			$default_ini_cfg = parse_ini_file( LSCWP_DIR . 'data/const.default.ini', true );
			foreach ( self::$_default_options as $k => $v ) {
				if ( ! array_key_exists( $k, $default_ini_cfg ) ) {
					continue;
				}

				// Parse value in ini file
				$ini_v = $this->type_casting( $default_ini_cfg[ $k ], $k );

				// NOTE: Multiple lines value must be stored as array
				/**
				 * Special handler for CDN_mapping
				 *
				 * format in .ini:
				 * 		[cdn-mapping]
				 *   	url[0] = 'https://example.com/'
				 *     	inc_js[0] = true
				 *     	filetype[0] = '.css
				 *     				   .js
				 *     				   .jpg'
				 *
				 * format out:
				 * 		[0] = [ 'url' => 'https://example.com', 'inc_js' => true, 'filetype' => [ '.css', '.js', '.jpg' ] ]
				 */
				if ( $k == self::O_CDN_MAPPING ) {
					$mapping_fields = array(
						self::CDN_MAPPING_URL,
						self::CDN_MAPPING_INC_IMG,
						self::CDN_MAPPING_INC_CSS,
						self::CDN_MAPPING_INC_JS,
						self::CDN_MAPPING_FILETYPE, // Array
					);
					$ini_v2 = array();
					foreach ( $ini_v[ self::CDN_MAPPING_URL ] as $k2 => $v2 ) {// $k2 is numeric
						$this_row = array();
						foreach ( $mapping_fields as $v3 ) {
							$this_v = ! empty( $ini_v[ $v3 ][ $k2 ] ) ? $ini_v[ $v3 ][ $k2 ] : false;
							if ( $v3 == self::CDN_MAPPING_FILETYPE ) {
								$this_v = $this_v ? Utility::sanitize_lines( $this_v ) : array(); // Note: Since v3.0 its already an array
							}
							$this_row[ $v3 ] = $this_v;
						}
						$ini_v2[ $k2 ] = $this_row;
					}
					$ini_v = $ini_v2;
				}

				if ( $ini_v == $v ) {
					continue;
				}

				self::$_default_options[ $k ] = $ini_v;
			}

		}

		// Load internal default vals
		// Setting the default bool to int is also to avoid type casting override it back to bool
		self::$_default_options[ self::O_CACHE ] = is_multisite() ? self::VAL_ON2 : self::VAL_ON; //For multi site, default is 2 (Use Network Admin Settings). For single site, default is 1 (Enabled).

		// Load default vals containing variables
		if ( ! self::$_default_options[ self::O_CDN_ORI_DIR ] ) {
			self::$_default_options[ self::O_CDN_ORI_DIR ] = LSCWP_CONTENT_FOLDER . "\nwp-includes";
			self::$_default_options[ self::O_CDN_ORI_DIR ] = explode( "\n", self::$_default_options[ self::O_CDN_ORI_DIR ] );
			self::$_default_options[ self::O_CDN_ORI_DIR ] = array_map( 'trim', self::$_default_options[ self::O_CDN_ORI_DIR ] );
		}

		// Set security key if not initialized yet
		if ( ! self::$_default_options[ self::HASH ] ) {
			self::$_default_options[ self::HASH ] = Str::rrand( 32 );
		}

		self::$_default_options[ self::_VER ] = Core::VER;

		return self::$_default_options;
	}

	/**
	 * Format the string value
	 *
	 * @since  3.0
	 */
	protected function _conf_string_val( $id, $val ) {
		return $val;
	}

	/**
	 * If the switch setting is a triple value or not
	 *
	 * @since  3.0
	 */
	protected function _conf_multi_switch( $id ) {
		if ( ! empty( self::$_multi_switch_list[ $id ] ) ) {
			return self::$_multi_switch_list[ $id ];
		}

		if ( $id == self::O_CACHE && is_multisite() ) {
			return self::VAL_ON2;
		}

		return false;
	}

	/**
	 * Append a new multi swith max limit for the bool option
	 *
	 * @since  3.0
	 */
	public static function set_multi_switch( $id, $v ) {
		self::$_multi_switch_list[ $id ] = $v;
	}

	/**
	 * Generate const name based on $id
	 *
	 * @since  3.0
	 */
	public static function conf_const( $id ) {
		return 'LITESPEED_CONF__' . strtoupper( str_replace( '-', '__', $id ) );
	}

	/**
	 * Filter to be used when saving setting
	 *
	 * @since  3.0
	 */
	protected function _conf_filter( $id ) {
		$filters = array(
			self::O_MEDIA_LAZY_EXC		=> 'uri',
			self::O_DEBUG_INC			=> 'relative',
			self::O_DEBUG_EXC			=> 'relative',
			self::O_MEDIA_LAZY_URI_EXC	=> 'relative',
			self::O_CACHE_PRIV_URI		=> 'relative',
			self::O_PURGE_TIMED_URLS	=> 'relative',
			self::O_CACHE_FORCE_URI		=> 'relative',
			self::O_CACHE_FORCE_PUB_URI	=> 'relative',
			self::O_CACHE_EXC			=> 'relative',
			// self::O_OPTM_CSS_EXC		=> 'uri', // Need to comment out for inline & external CSS
			// self::O_OPTM_JS_EXC			=> 'uri',
			self::O_OPTM_EXC			=> 'relative',
			// self::O_OPTM_JS_DEFER_EXC	=> 'uri',
			self::O_OPTM_DNS_PREFETCH	=> 'domain',
			self::O_OPTM_CCSS_SEP_URI	=> 'uri',
			self::O_CDN_ORI				=> 'noprotocol', // `Original URLs`
			// self::O_OPTM_LOCALIZE_DOMAINS	=> 'noprotocol', // `Localize Resources`
			// self::	=> '',
			// self::	=> '',
		);

		if ( ! empty( $filters[ $id ] ) ) {
			return $filters[ $id ];
		}

		return false;
	}

	/**
	 * If the setting changes worth a purge or not
	 *
	 * @since  3.0
	 */
	protected function _conf_purge( $id ) {
		$check_ids = array(
			self::O_MEDIA_LAZY_URI_EXC,
			self::O_OPTM_EXC,
			self::O_CACHE_PRIV_URI,
			self::O_PURGE_TIMED_URLS,
			self::O_CACHE_FORCE_URI,
			self::O_CACHE_FORCE_PUB_URI,
			self::O_CACHE_EXC,
		);

		return in_array( $id, $check_ids );
	}

	/**
	 * If the setting changes worth a purge ALL or not
	 *
	 * @since  3.0
	 */
	protected function _conf_purge_all( $id ) {
		$check_ids = array(
			self::O_CACHE,
			self::O_ESI,
			self::O_DEBUG_DISABLE_ALL,
			self::NETWORK_O_USE_PRIMARY,
		);

		return in_array( $id, $check_ids );
	}

	/**
	 * If the setting is a pswd or not
	 *
	 * @since  3.0
	 */
	protected function _conf_pswd( $id ) {
		$check_ids = array(
			self::O_CDN_CLOUDFLARE_KEY,
			self::O_OBJECT_PSWD,
			self::O_API_KEY,
		);

		return in_array( $id, $check_ids );
	}

	/**
	 * If the setting is cron related or not
	 *
	 * @since  3.0
	 */
	protected function _conf_cron( $id ) {
		$check_ids = array(
			self::O_IMG_OPTM_CRON,
			self::O_OPTM_CCSS_ASYNC,
			self::O_MEDIA_PLACEHOLDER_RESP_ASYNC,
			self::O_DISCUSS_AVATAR_CRON,
			self::O_IMG_OPTM_AUTO,
			self::O_CRAWLER,
		);

		return in_array( $id, $check_ids );
	}

	/**
	 * If the setting changes worth a purge, return the tag
	 *
	 * @since  3.0
	 */
	protected function _conf_purge_tag( $id ) {
		$check_ids = array(
			self::O_CACHE_PAGE_LOGIN	=> Tag::TYPE_LOGIN,
		);

		if ( ! empty( $check_ids[ $id ] ) ) {
			return $check_ids[ $id ];
		}

		return false;
	}

	/**
	 * Generate conf name for wp_options record
	 *
	 * @since 3.0
	 */
	public static function name( $id ) {
		$cls = new \ReflectionClass( get_called_class() );
		return 'litespeed.' . strtolower( $cls->getShortName() ) . '.' . $id;
	}

	/**
	 * Dropin with prefix for WP's get_option
	 *
	 * @since 3.0
	 */
	public static function get_option( $id, $default_v = false ) {
		return get_option( self::name( $id ), $default_v );
	}

	/**
	 * Dropin with prefix for WP's get_site_option
	 *
	 * @since 3.0
	 */
	public static function get_site_option( $id, $default_v = false ) {
		return get_site_option( self::name( $id ), $default_v );
	}

	/**
	 * Dropin with prefix for WP's get_blog_option
	 *
	 * @since 3.0
	 */
	public static function get_blog_option( $blog_id, $id, $default_v = false ) {
		return get_blog_option( $blog_id, self::name( $id ), $default_v );
	}

	/**
	 * Dropin with prefix for WP's add_option
	 *
	 * @since 3.0
	 */
	public static function add_option( $id, $v ) {
		add_option( self::name( $id ), $v );
	}

	/**
	 * Dropin with prefix for WP's add_site_option
	 *
	 * @since 3.0
	 */
	public static function add_site_option( $id, $v ) {
		add_site_option( self::name( $id ), $v );
	}

	/**
	 * Dropin with prefix for WP's update_option
	 *
	 * @since 3.0
	 */
	public static function update_option( $id, $v ) {
		update_option( self::name( $id ), $v );
	}

	/**
	 * Dropin with prefix for WP's update_site_option
	 *
	 * @since 3.0
	 */
	public static function update_site_option( $id, $v ) {
		update_site_option( self::name( $id ), $v );
	}

	/**
	 * Dropin with prefix for WP's delete_option
	 *
	 * @since 3.0
	 */
	public static function delete_option( $id ) {
		delete_option( self::name( $id ) );
	}

	/**
	 * Dropin with prefix for WP's delete_site_option
	 *
	 * @since 3.0
	 */
	public static function delete_site_option( $id ) {
		delete_site_option( self::name( $id ) );
	}

	/**
	 * Read summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function get_summary( $field = false ) {
		$summary = self::get_option( '_summary', array() );

		if ( ! is_array( $summary ) ) {
			$summary = array();
		}

		if ( ! $field ) {
			return $summary;
		}

		if ( array_key_exists( $field, $summary ) ) {
			return $summary[ $field ];
		}

		return null;
	}

	/**
	 * Save summary
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function save_summary( $data = null ) {
		if ( $data === null ) {
			$data = static::get_instance()->_summary;
		}

		self::update_option( '_summary', $data );
	}

	/**
	 * Generate server vars
	 *
	 * @since 2.4.1
	 */
	public function server_vars() {
		$consts = array(
			'WP_SITEURL',
			'WP_HOME',
			'WP_CONTENT_DIR',
			'SHORTINIT',
			'LSCWP_CONTENT_DIR',
			'LSCWP_CONTENT_FOLDER',
			'LSCWP_DIR',
			'LITESPEED_TIME_OFFSET',
			'LITESPEED_SERVER_TYPE',
			'LITESPEED_CLI',
			'LITESPEED_ALLOWED',
			'LITESPEED_ON',
			'LSWCP_TAG_PREFIX',
			'COOKIEHASH',
		);
		$server_vars = array();
		foreach ( $consts as $v ) {
			$server_vars[ $v ] = defined( $v ) ? constant( $v ) : NULL;
		}

		return $server_vars;
	}

}<?php
/**
 * The core plugin class.
 *
 * @since      	1.0.0
 */
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

class Core extends Instance {
	protected static $_instance;

	const NAME = 'LiteSpeed Cache';
	const PLUGIN_NAME = 'litespeed-cache';
	const PLUGIN_FILE = 'litespeed-cache/litespeed-cache.php';
	const VER = LSCWP_V;

	const ACTION_DISMISS = 'dismiss';
	const ACTION_PURGE_BY = 'PURGE_BY';
	const ACTION_PURGE_EMPTYCACHE = 'PURGE_EMPTYCACHE';
	const ACTION_QS_PURGE = 'PURGE';
	const ACTION_QS_PURGE_SINGLE = 'PURGESINGLE';
	const ACTION_QS_SHOW_HEADERS = 'SHOWHEADERS';
	const ACTION_QS_PURGE_ALL = 'purge_all';
	const ACTION_QS_PURGE_EMPTYCACHE = 'empty_all';
	const ACTION_QS_NOCACHE = 'NOCACHE';

	const HEADER_DEBUG = 'X-LiteSpeed-Debug';

	protected static $_debug_show_header = false;

	private $footer_comment = '';

	private $__cfg;

	/**
	 * Define the core functionality of the plugin.
	 *
	 * Set the plugin name and the plugin version that can be used throughout the plugin.
	 * Load the dependencies, define the locale, and set the hooks for the admin area and
	 * the public-facing side of the site.
	 *
	 * @since    1.0.0
	 */
	protected function __construct() {
		$this->__cfg = Conf::get_instance();
		$this->__cfg->init();

		// Check if debug is on
		if ( Conf::val( Base::O_DEBUG ) ) {
			Debug2::init();
		}

		/**
		 * Load API hooks
		 * @since  3.0
		 */
		API::get_instance()->init();

		if ( defined( 'LITESPEED_ON' ) ) {
			// Load third party detection if lscache enabled.
			include_once LSCWP_DIR . 'thirdparty/entry.inc.php';
		}

		if ( Conf::val( Base::O_DEBUG_DISABLE_ALL ) ) {
			! defined( 'LITESPEED_DISABLE_ALL' ) && define( 'LITESPEED_DISABLE_ALL', true );
		}

		/**
		 * Register plugin activate/deactivate/uninstall hooks
		 * NOTE: this can't be moved under after_setup_theme, otherwise activation will be bypassed somehow
		 * @since  2.7.1	Disabled admin&CLI check to make frontend able to enable cache too
		 */
		// if( is_admin() || defined( 'LITESPEED_CLI' ) ) {
		$plugin_file = LSCWP_DIR . 'litespeed-cache.php';
		register_activation_hook( $plugin_file, array( __NAMESPACE__ . '\Activation', 'register_activation' ) );
		register_deactivation_hook( $plugin_file, array(__NAMESPACE__ . '\Activation', 'register_deactivation' ) );
		register_uninstall_hook( $plugin_file, __NAMESPACE__ . '\Activation::uninstall_litespeed_cache' );
		// }

		add_action( 'plugins_loaded', array( $this, 'plugins_loaded' ) );
		add_action( 'after_setup_theme', array( $this, 'init' ) );

		// Check if there is a purge request in queue
		if ( $purge_queue = Purge::get_option( Purge::DB_QUEUE ) ) {
			@header( $purge_queue );
			Debug2::debug( '[Core] Purge Queue found&sent: ' . $purge_queue );
			Purge::delete_option( Purge::DB_QUEUE );
		}

		/**
		 * Hook internal REST
		 * @since  2.9.4
		 */
		REST::get_instance();

		/**
		 * Preload ESI functionality for ESI request uri recovery
		 * @since 1.8.1
		 */
		ESI::get_instance();
	}

	/**
	 * Plugin loaded hooks
	 * @since 3.0
	 */
	public function plugins_loaded() {
		load_plugin_textdomain( Core::PLUGIN_NAME, false, 'litespeed-cache/lang/' );
	}

	/**
	 * The plugin initializer.
	 *
	 * This function checks if the cache is enabled and ready to use, then determines what actions need to be set up based on the type of user and page accessed. Output is buffered if the cache is enabled.
	 *
	 * NOTE: WP user doesn't init yet
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public function init() {
		/**
		 * Added hook before init
		 * @since  1.6.6
		 * @since  2.6 	Added filter to all config values in Conf
		 */
		do_action( 'litespeed_init' );

		// in `after_setup_theme`, before `init` hook
		if ( ! defined( 'LITESPEED_BYPASS_AUTO_V' ) ) {
			Activation::auto_update();
		}

		if( is_admin() ) {
			Admin::get_instance();
		}

		if ( defined( 'LITESPEED_DISABLE_ALL' ) ) {
			Debug2::debug( '[Core] Bypassed due to debug disable all setting' );
			return;
		}

		do_action( 'litespeed_initing' );

		ob_start( array( $this, 'send_headers_force' ) );
		add_action( 'shutdown', array( $this, 'send_headers' ), 0 );
		add_action( 'wp_footer', array( $this, 'footer_hook' ) );

		/**
		 * Check if is non optm simulator
		 * @since  2.9
		 */
		if ( ! empty( $_GET[ Router::ACTION ] ) && $_GET[ Router::ACTION ] == 'before_optm' ) {
			Debug2::debug( '[Core] ⛑️ bypass_optm due to QS CTRL' );
			! defined( 'LITESPEED_BYPASS_OPTM' ) && define( 'LITESPEED_BYPASS_OPTM', true );
		}

		/**
		 * Register vary filter
		 * @since  1.6.2
		 */
		Control::get_instance();

		// 1. Init vary
		// 2. Init cacheable status
		Vary::get_instance();

		// Init Purge hooks
		Purge::get_instance()->init();

		Tag::get_instance();

		// Load hooks that may be related to users
		add_action( 'init', array( $this, 'after_user_init' ) );

		// Load 3rd party hooks
		add_action( 'wp_loaded', array( $this, 'load_thirdparty' ), 2 );
	}

	/**
	 * Run hooks after user init
	 *
	 * @since 2.9.8
	 * @access public
	 */
	public function after_user_init() {
		Router::get_instance()->is_role_simulation();

		if ( ! is_admin() && $result = $this->__cfg->in_optm_exc_roles() ) {
			Debug2::debug( '[Core] ⛑️ bypass_optm: hit Role Excludes setting: ' . $result );
			! defined( 'LITESPEED_BYPASS_OPTM' ) && define( 'LITESPEED_BYPASS_OPTM', true );
		}

		// Heartbeat control
		Tool::heartbeat();

		$__media = Media::get_instance();

		if ( ! defined( 'LITESPEED_BYPASS_OPTM' ) ) {
			// Check missing static files
			Router::serve_static();

			$__media->init();

			Placeholder::get_instance()->init();

			Optimize::get_instance()->init();

			// Hook cdn for attachements
			CDN::get_instance();

			// load cron tasks
			Task::get_instance()->init();
		}

		// load litespeed actions
		if ( $action = Router::get_action() ) {
			$this->proceed_action( $action );
		}

		// Load frontend GUI
		GUI::get_instance()->frontend_init();

	}

	/**
	 * Run frontend actions
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public function proceed_action( $action ) {
		$msg = false;
		// handle actions
		switch ( $action ) {
			case self::ACTION_QS_PURGE:
				Purge::set_purge_related();
				break;

			case self::ACTION_QS_SHOW_HEADERS:
				self::$_debug_show_header = true;
				break;

			case self::ACTION_QS_PURGE_SINGLE:
				Purge::set_purge_single();
				break;

			case self::ACTION_QS_PURGE_ALL:
				Purge::purge_all();
				break;

			case self::ACTION_PURGE_EMPTYCACHE:
			case self::ACTION_QS_PURGE_EMPTYCACHE:
				define( 'LSWCP_EMPTYCACHE', true );// clear all sites caches
				Purge::purge_all();
				$msg = __( 'Notified LiteSpeed Web Server to purge everything.', 'litespeed-cache' );
				break;

			case self::ACTION_PURGE_BY:
				Purge::get_instance()->purge_list();
				$msg = __( 'Notified LiteSpeed Web Server to purge the list.', 'litespeed-cache' );
				break;

			case self::ACTION_DISMISS:// Even its from ajax, we don't need to register wp ajax callback function but directly use our action
				GUI::dismiss();
				break;

			default:
				$msg = Router::handler( $action );
				break;
		}
		if ( $msg && ! Router::is_ajax() ) {
			Admin_Display::add_notice( Admin_Display::NOTICE_GREEN, $msg );
			Admin::redirect();
			return;
		}

		if ( Router::is_ajax() ) {
			exit;
		}
	}

	/**
	 * Callback used to call the detect third party action.
	 *
	 * The detect action is used by third party plugin integration classes to determine if they should add the rest of their hooks.
	 *
	 * @since 1.0.5
	 * @access public
	 */
	public function load_thirdparty() {
		do_action( 'litespeed_load_thirdparty' );
	}

	/**
	 * Mark wp_footer called
	 *
	 * @since 1.3
	 * @access public
	 */
	public function footer_hook() {
		Debug2::debug( '[Core] Footer hook called' );
		if ( ! defined( 'LITESPEED_FOOTER_CALLED' ) ) {
			define( 'LITESPEED_FOOTER_CALLED', true );
		}
	}

	/**
	 * Tigger coment info display hook
	 *
	 * @since 1.3
	 * @access private
	 */
	private function _check_is_html( $buffer = null ) {
		if ( ! defined( 'LITESPEED_FOOTER_CALLED' ) ) {
			Debug2::debug2( '[Core] CHK html bypass: miss footer const' );
			return;
		}

		if ( defined( 'DOING_AJAX' ) ) {
			Debug2::debug2( '[Core] CHK html bypass: doing ajax' );
			return;
		}

		if ( defined( 'DOING_CRON' ) ) {
			Debug2::debug2( '[Core] CHK html bypass: doing cron' );
			return;
		}

		if ( $_SERVER[ 'REQUEST_METHOD' ] !== 'GET' ) {
			Debug2::debug2( '[Core] CHK html bypass: not get method ' . $_SERVER[ 'REQUEST_METHOD' ] );
			return;
		}

		if ( $buffer === null ) {
			$buffer = ob_get_contents();
		}

		// double check to make sure it is a html file
		if ( strlen( $buffer ) > 300 ) {
			$buffer = substr( $buffer, 0, 300 );
		}
		if ( strstr( $buffer, '<!--' ) !== false ) {
			$buffer = preg_replace( '|<!--.*?-->|s', '', $buffer );
		}
		$buffer = trim( $buffer );

		$buffer = File::remove_zero_space( $buffer );

		$is_html = stripos( $buffer, '<html' ) === 0 || stripos( $buffer, '<!DOCTYPE' ) === 0;

		if ( ! $is_html ) {
			Debug2::debug( '[Core] Footer check failed: ' . ob_get_level() . '-' . substr( $buffer, 0, 100 ) );
			return;
		}

		Debug2::debug( '[Core] Footer check passed' );

		if ( ! defined( 'LITESPEED_IS_HTML' ) ) {
			define( 'LITESPEED_IS_HTML', true );
		}
	}

	/**
	 * For compatibility with those plugins have 'Bad' logic that forced all buffer output even it is NOT their buffer :(
	 *
	 * Usually this is called after send_headers() if following orignal WP process
	 *
	 * @since 1.1.5
	 * @access public
	 * @param  string $buffer
	 * @return string
	 */
	public function send_headers_force( $buffer ) {
		$this->_check_is_html( $buffer );

		// Hook to modify buffer before
		$buffer = apply_filters('litespeed_buffer_before', $buffer);


		if ( ! defined( 'LITESPEED_BYPASS_OPTM' ) ) {
			// Image lazy load check
			$buffer = Media::finalize( $buffer );
		}

		/**
		 * Clean wrapper mainly for esi block
		 * NOTE: this needs to be before optimizer to avoid wrapper being removed
		 * @since 1.4
		 */
		$buffer = GUI::finalize( $buffer );

		if ( ! defined( 'LITESPEED_BYPASS_OPTM' ) ) {
			$buffer = Optimize::finalize( $buffer );

			$buffer = CDN::finalize( $buffer );
		}

		/**
		 * Replace ESI preserved list
		 * @since  3.3 Replace this in the end to avoid `Inline JS Defer` or other Page Optm features encoded ESI tags wrongly, which caused LSWS can't recognize ESI
		 */
		$buffer = ESI::finalize( $buffer );

		$this->send_headers( true );

		if ( $this->footer_comment ) {
			$buffer .= $this->footer_comment;
		}

		/**
		 * If ESI req is JSON, give the content JSON format
		 * @since  2.9.3
		 * @since  2.9.4 ESI req could be from internal REST call, so moved json_encode out of this cond
		 */
		if ( defined( 'LSCACHE_IS_ESI' ) ) {
			Debug2::debug( '[Core] ESI Start 👇' );
			if ( strlen( $buffer ) > 500 ) {
				Debug2::debug( trim( substr( $buffer, 0, 500 ) ) . '.....' );
			}
			else {
				Debug2::debug( $buffer );
			}
			Debug2::debug( '[Core] ESI End 👆' );
			Debug2::debug( $buffer );
		}

		if ( apply_filters( 'litespeed_is_json', false ) ) {
			if ( json_decode( $buffer, true ) == NULL ) {
				Debug2::debug( '[Core] Buffer converting to JSON' );
				$buffer = json_encode( $buffer );
				$buffer = trim( $buffer, '"' );
			}
			else {
				Debug2::debug( '[Core] JSON Buffer' );
			}
		}

		// Hook to modify buffer after
		$buffer = apply_filters('litespeed_buffer_after', $buffer);

		Debug2::debug( "End response\n--------------------------------------------------------------------------------\n" );

		return $buffer;
	}

	/**
	 * Sends the headers out at the end of processing the request.
	 *
	 * This will send out all LiteSpeed Cache related response headers needed for the post.
	 *
	 * @since 1.0.5
	 * @access public
	 * @param boolean $is_forced If the header is sent following our normal finalizing logic
	 */
	public function send_headers( $is_forced = false ) {
		// Make sure header output only run once
		if ( ! defined( 'LITESPEED_DID_' . __FUNCTION__ ) ) {
			define( 'LITESPEED_DID_' . __FUNCTION__, true );
		}
		else {
			return;
		}

		$this->_check_is_html();

		// NOTE: cache ctrl output needs to be done first, as currently some varies are added in 3rd party hook `litespeed_api_control`.
		Control::finalize();

		$vary_header = Vary::finalize();

		// If is not cacheable but Admin QS is `purge` or `purgesingle`, `tag` still needs to be generated
		$tag_header = Tag::output();
		if ( Control::is_cacheable() && ! $tag_header ) {
			Control::set_nocache( 'empty tag header' );
		}

		// NOTE: `purge` output needs to be after `tag` output as Admin QS may need to send `tag` header
		$purge_header = Purge::output();

		// generate `control` header in the end in case control status is changed by other headers.
		$control_header = Control::output();

		// Init comment info
		$running_info_showing = defined( 'LITESPEED_IS_HTML' ) || defined( 'LSCACHE_IS_ESI' );
		if ( defined( 'LSCACHE_ESI_SILENCE' ) ) {
			$running_info_showing = false;
			Debug2::debug( '[Core] ESI silence' );
		}
		/**
		 * Silence comment for json req
		 * @since 2.9.3
		 */
		if ( REST::get_instance()->is_rest() || Router::is_ajax() ) {
			$running_info_showing = false;
			Debug2::debug( '[Core] Silence Comment due to REST/AJAX' );
		}

		$running_info_showing = apply_filters( 'litespeed_comment', $running_info_showing );

		if ( $running_info_showing ) {
			// Give one more break to avoid ff crash
			if ( ! defined( 'LSCACHE_IS_ESI' ) ) {
				$this->footer_comment .= "\n";
			}

			$cache_support = 'supported';
			if ( defined( 'LITESPEED_ON' ) ) {
				$cache_support = Control::is_cacheable() ? 'generated' : 'uncached';
			}

			$this->footer_comment .= sprintf(
				'<!-- %1$s %2$s by LiteSpeed Cache %4$s on %3$s -->',
				defined( 'LSCACHE_IS_ESI' ) ? 'Block' : 'Page',
				$cache_support,
				date( 'Y-m-d H:i:s', time() + LITESPEED_TIME_OFFSET ),
				self::VER
			);
		}

		// send Control header
		if ( defined( 'LITESPEED_ON' ) && $control_header ) {
			@header( $control_header );
			if ( defined( 'LSCWP_LOG' ) ) {
				Debug2::debug( '💰 ' . $control_header );
				if ( $running_info_showing ) {
					$this->footer_comment .= "\n<!-- " . $control_header . " -->";
				}
			}
		}
		// send PURGE header (Always send regardless of cache setting disabled/enabled)
		if ( defined( 'LITESPEED_ON' ) && $purge_header ) {
			@header( $purge_header );
			Debug2::log_purge( $purge_header );

			if ( defined( 'LSCWP_LOG' ) ) {
				Debug2::debug( '💰 ' . $purge_header );
				if ( $running_info_showing ) {
					$this->footer_comment .= "\n<!-- " . $purge_header . " -->";
				}
			}
		}
		// send Vary header
		if ( defined( 'LITESPEED_ON' ) && $vary_header ) {
			@header( $vary_header );
			if ( defined( 'LSCWP_LOG' ) ) {
				Debug2::debug( '💰 ' . $vary_header );
				if ( $running_info_showing ) {
					$this->footer_comment .= "\n<!-- " . $vary_header . " -->";
				}
			}
		}

		// Admin QS show header action
		if ( self::$_debug_show_header ) {
			$debug_header = self::HEADER_DEBUG . ': ';
			if ( $control_header ) {
				$debug_header .= $control_header . '; ';
			}
			if ( $purge_header ) {
				$debug_header .= $purge_header . '; ';
			}
			if ( $tag_header ) {
				$debug_header .= $tag_header . '; ';
			}
			if ( $vary_header ) {
				$debug_header .= $vary_header . '; ';
			}
			@header( $debug_header );
			Debug2::debug( $debug_header );
		}
		else {
			// Control header
			if ( defined( 'LITESPEED_ON' ) && Control::is_cacheable() && $tag_header ) {
				@header( $tag_header );
				if ( defined( 'LSCWP_LOG' ) ) {
					Debug2::debug( '💰 ' . $tag_header );
					if ( $running_info_showing ) {
						$this->footer_comment .= "\n<!-- " . $tag_header . " -->";
					}
				}
			}
		}

		// Object cache comment
		if ( $running_info_showing && defined( 'LSCWP_LOG' ) && defined( 'LSCWP_OBJECT_CACHE' ) && method_exists( 'WP_Object_Cache', 'debug' ) ) {
			$this->footer_comment .= "\n<!-- Object Cache " . \WP_Object_Cache::get_instance()->debug() . " -->";
		}

		if ( $is_forced ) {
			Debug2::debug( '--forced--' );
		}

	}

}
<?php
/**
 * The ESI class.
 *
 * This is used to define all esi related functions.
 *
 * @since      	1.1.3
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class ESI extends Instance {
	protected static $_instance;

	private static $has_esi = false;
	private static $_combine_ids = array();
	private $esi_args = null;
	private $_esi_preserve_list = array();
	private $_nonce_actions = array( -1 => '' ); // val is cache control

	const QS_ACTION = 'lsesi';
	const QS_PARAMS = 'esi';
	const COMBO = '__combo'; // ESI include combine='main' handler

	const PARAM_ARGS = 'args';
	const PARAM_ID = 'id';
	const PARAM_INSTANCE = 'instance';
	const PARAM_NAME = 'name';

	const WIDGET_O_ESIENABLE = 'widget_esi_enable';
	const WIDGET_O_TTL = 'widget_ttl';

	/**
	 * Confructor of ESI
	 *
	 * @since    1.2.0
	 * @access protected
	 */
	protected function __construct() {
		/**
		 * Bypass ESI related funcs if disabled ESI to fix potential DIVI compatibility issue
		 * @since  2.9.7.2
		 */
		if ( Router::is_ajax() || ! Router::esi_enabled() ) {
			return;
		}

		// Init ESI in `after_setup_theme` hook after detected if LITESPEED_DISABLE_ALL is ON or not
		add_action( 'litespeed_initing', array( $this, 'esi_init' ) );

		/**
		 * Overwrite wp_create_nonce func
		 * @since  2.9.5
		 */
		if ( ! is_admin() && ! function_exists( 'wp_create_nonce' ) ) {
			$this->_transform_nonce();
		}
	}

	/**
	 * Init ESI related hooks
	 *
	 * Load delayed by hook to give the ability to bypass by LITESPEED_DISABLE_ALL const
	 *
	 * @since 2.9.7.2
	 * @access public
	 */
	public function esi_init() {
		add_action( 'template_include', array( $this, 'esi_template' ), 99999 );

		add_action( 'load-widgets.php', __NAMESPACE__ . '\Purge::purge_widget' );
		add_action( 'wp_update_comment_count', __NAMESPACE__ . '\Purge::purge_comment_widget' );

		/**
		 * Recover REQUEST_URI
		 * @since  1.8.1
		 */
		if ( ! empty( $_GET[ self::QS_ACTION ] ) ) {
			$this->_register_esi_actions();
		}

		/**
		 * Shortcode ESI
		 *
		 * To use it, just change the origianl shortcode as below:
		 * 		old: [someshortcode aa='bb']
		 * 		new: [esi someshortcode aa='bb' cache='private,no-vary' ttl='600']
		 *
		 * 	1. `cache` attribute is optional, default to 'public,no-vary'.
		 * 	2. `ttl` attribute is optional, default is your public TTL setting.
		 *
		 * @since  2.8
		 * @since  2.8.1 Check is_admin for Elementor compatibility #726013
		 */
		if ( ! is_admin() ) {
			add_shortcode( 'esi', array( $this, 'shortcode' ) );
		}

	}

	/**
	 * Take over all nonce calls and transform to ESI
	 *
	 * @since  2.9.5
	 */
	private function _transform_nonce() {
		// Load ESI nonces in conf
		$nonces = Conf::val( Base::O_ESI_NONCE );
		add_filter( 'litespeed_esi_nonces', array( Data::get_instance(), 'load_esi_nonces' ) );
		if ( $nonces = apply_filters( 'litespeed_esi_nonces', $nonces ) ) {
			foreach ( $nonces as $action ) {
				$this->nonce_action( $action );
			}
		}

		add_action( 'litespeed_nonce', array( $this, 'nonce_action' ) );

		Debug2::debug( '[ESI] Overwrite wp_create_nonce()' );
		litespeed_define_nonce_func();
	}

	/**
	 * Register a new nonce action to convert it to ESI
	 *
	 * @since  2.9.5
	 */
	public function nonce_action( $action ) {
		// Split the Cache Control
		$action = explode( ' ', $action );
		$control = ! empty( $action[ 1 ] ) ? $action[ 1 ] : '';
		$action = $action[ 0 ];

		// Wildcard supported
		$action = Utility::wildcard2regex( $action );

		if ( array_key_exists( $action, $this->_nonce_actions ) ) {
			return;
		}

		$this->_nonce_actions[ $action ] = $control;

		Debug2::debug( '[ESI] Appended nonce action to nonce list [action] ' . $action );
	}

	/**
	 * Check if an action is registered to replace ESI
	 *
	 * @since 2.9.5
	 */
	public function is_nonce_action( $action ) {
		foreach ( $this->_nonce_actions as $k => $v ) {
			if ( strpos( $k, '*' ) !== false ) {
				if( preg_match( '#' . $k . '#iU', $action ) ) {
					return $v;
				}
			}
			else {
				if ( $k == $action ) {
					return $v;
				}
			}
		}

		return null;
	}

	/**
	 * Shortcode ESI
	 *
	 * @since 2.8
	 * @access public
	 */
	public function shortcode( $atts ) {
		if ( empty( $atts[ 0 ] ) ) {
			Debug2::debug( '[ESI] ===shortcode wrong format', $atts );
			return 'Wrong shortcode esi format';
		}

		$cache = 'public,no-vary';
		if ( ! empty( $atts[ 'cache' ] ) ) {
			$cache = $atts[ 'cache' ];
			unset( $atts[ 'cache' ] );
		}

		do_action( 'litespeed_esi_shortcode-' . $atts[ 0 ] );

		// Show ESI link
		return self::sub_esi_block( 'esi', 'esi-shortcode', $atts, $cache );
	}

	/**
	 * Check if the requested page has esi elements. If so, return esi on
	 * header.
	 *
	 * @since 1.1.3
	 * @access public
	 * @return string Esi On header if request has esi, empty string otherwise.
	 */
	public static function has_esi() {
		return self::$has_esi;
	}

	/**
	 * Sets that the requested page has esi elements.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function set_has_esi() {
		self::$has_esi = true;
	}

	/**
	 * Register all of the hooks related to the esi logic of the plugin.
	 * Specifically when the page IS an esi page.
	 *
	 * @since    1.1.3
	 * @access   private
	 */
	private function _register_esi_actions() {
		! defined( 'LSCACHE_IS_ESI' ) && define( 'LSCACHE_IS_ESI', $_GET[ self::QS_ACTION ] );// Reused this to ESI block ID

		! empty( $_SERVER[ 'ESI_REFERER' ] ) && defined( 'LSCWP_LOG' ) && Debug2::debug( '[ESI] ESI_REFERER: ' . $_SERVER[ 'ESI_REFERER' ] );

		/**
		 * Only when ESI's parent is not REST, replace REQUEST_URI to avoid breaking WP5 editor REST call
		 * @since 2.9.3
		 */
		if ( ! empty( $_SERVER[ 'ESI_REFERER' ] ) && ! REST::get_instance()->is_rest( $_SERVER[ 'ESI_REFERER' ] ) ) {
			$_SERVER[ 'REQUEST_URI' ] = $_SERVER[ 'ESI_REFERER' ];
		}

		if ( ! empty( $_SERVER[ 'ESI_CONTENT_TYPE' ] ) && strpos( $_SERVER[ 'ESI_CONTENT_TYPE' ], 'application/json' ) === 0 ) {
			add_filter( 'litespeed_is_json', '__return_true' );
		}

		/**
		 * Make REST call be able to parse ESI
		 * NOTE: Not effective due to ESI req are all to `/` yet
		 * @since 2.9.4
		 */
		add_action( 'rest_api_init', array( $this, 'load_esi_block' ), 101 );

		// Register ESI blocks
		add_action('litespeed_esi_load-widget', array($this, 'load_widget_block'));
		add_action('litespeed_esi_load-admin-bar', array($this, 'load_admin_bar_block'));
		add_action('litespeed_esi_load-comment-form', array($this, 'load_comment_form_block'));

		add_action('litespeed_esi_load-nonce', array( $this, 'load_nonce_block' ) );
		add_action('litespeed_esi_load-esi', array( $this, 'load_esi_shortcode' ) );

		add_action('litespeed_esi_load-' . self::COMBO, array( $this, 'load_combo' ) );
	}

	/**
	 * Hooked to the template_include action.
	 * Selects the esi template file when the post type is a LiteSpeed ESI page.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param string $template The template path filtered.
	 * @return string The new template path.
	 */
	public function esi_template( $template ) {
		// Check if is an ESI request
		if ( defined( 'LSCACHE_IS_ESI' ) ) {
			Debug2::debug( '[ESI] calling template' );

			return LSCWP_DIR . 'tpl/esi.tpl.php';
		}
		$this->_register_not_esi_actions();
		return $template;
	}

	/**
	 * Register all of the hooks related to the esi logic of the plugin.
	 * Specifically when the page is NOT an esi page.
	 *
	 * @since    1.1.3
	 * @access   private
	 */
	private function _register_not_esi_actions() {
		do_action( 'litespeed_tpl_normal' );

		if ( ! Control::is_cacheable() ) {
			return;
		}

		if ( Router::is_ajax() ) {
			return;
		}

		add_filter('widget_display_callback', array( $this, 'sub_widget_block' ), 0, 3);

		// Add admin_bar esi
		if ( Router::is_logged_in() ) {
			remove_action('wp_footer', 'wp_admin_bar_render', 1000);
			add_action('wp_footer', array($this, 'sub_admin_bar_block'), 1000);
		}

		// Add comment forum esi for logged-in user or commenter
		if ( ! Router::is_ajax() && Vary::has_vary() ) {
			add_filter( 'comment_form_defaults', array( $this, 'register_comment_form_actions' ) );
		}

	}

	/**
	 * Set an ESI to be combine='sub'
	 *
	 * @since  3.4.2
	 */
	public static function combine( $block_id ) {
		if ( ! isset( $_SERVER[ 'X-LSCACHE' ] ) || strpos( $_SERVER[ 'X-LSCACHE' ], 'combine' ) === false ) {
			return;
		}

		if ( in_array( $block_id, self::$_combine_ids ) ) {
			return;
		}

		self::$_combine_ids[] = $block_id;
	}

	/**
	 * Load combined ESI
	 *
	 * @since  3.4.2
	 */
	public function load_combo() {
		Control::set_nocache( 'ESI combine request' );

		if ( empty( $_POST[ 'esi_include' ] ) ) {
			return;
		}

		self::set_has_esi();

		Debug2::debug( '[ESI] 🍔 Load combo', $_POST[ 'esi_include' ] );

		$output = '';
		foreach ( $_POST[ 'esi_include' ] as $url ) {
			$qs = parse_url( htmlspecialchars_decode( $url ), PHP_URL_QUERY );
			parse_str( $qs, $qs );
			if ( empty( $qs[ self::QS_ACTION ] ) ) {
				continue;
			}
			$esi_id = $qs[ self::QS_ACTION ];
			$esi_param = ! empty( $qs[ self::QS_PARAMS ] ) ? $this->_parse_esi_param( $qs[ self::QS_PARAMS ] ) : false;
			$inline_param = apply_filters( 'litespeed_esi_inline-' . $esi_id, array(), $esi_param ); // Returned array need to be [ val, control, tag ]
			if ( $inline_param ) {
				$output .= self::_build_inline( $url, $inline_param );
			}
		}

		echo $output;
	}

	/**
	 * Build a whole inline segment
	 *
	 * @since  3.4.2
	 */
	private static function _build_inline( $url, $inline_param ) {
		if ( ! $url || empty( $inline_param[ 'val' ] ) || empty( $inline_param[ 'control' ] ) || empty( $inline_param[ 'tag' ] ) ) {
			return '';
		}

		return "<esi:inline name='$url' cache-control='" . $inline_param[ 'control' ] . "' cache-tag='" . $inline_param[ 'tag' ] . "'>" . $inline_param[ 'val' ] . "</esi:inline>";
	}

	/**
	 * Build the esi url. This method will build the html comment wrapper as well as serialize and encode the parameter array.
	 *
	 * The block_id parameter should contain alphanumeric and '-_' only.
	 *
	 * @since 1.1.3
	 * @access private
	 * @param string $block_id The id to use to display the correct esi block.
	 * @param string $wrapper The wrapper for the esi comments.
	 * @param array $params The esi parameters.
	 * @param string $control The cache control attribute if any.
	 * @param bool $silence If generate wrapper comment or not
	 * @param bool $preserved 	If this ESI block is used in any filter, need to temporarily convert it to a string to avoid the HTML tag being removed/filtered.
	 * @param bool $svar  		If store the value in memory or not, in memory wil be faster
	 * @param array $inline_val 	If show the current value for current request( this can avoid multiple esi requests in first time cache generating process )
	 */
	public static function sub_esi_block( $block_id, $wrapper, $params = array(), $control = 'private,no-vary', $silence = false, $preserved = false, $svar = false, $inline_param = array() ) {
		if ( empty($block_id) || ! is_array($params) || preg_match('/[^\w-]/', $block_id) ) {
			return false;
		}

		if ( $silence ) {
			// Don't add comment to esi block ( orignal for nonce used in tag property data-nonce='esi_block' )
			$params[ '_ls_silence' ] = true;
		}

		if ( REST::get_instance()->is_rest() || REST::get_instance()->is_internal_rest() ) {
			$params[ 'is_json' ] = 1;
		}

		$params = apply_filters( 'litespeed_esi_params', $params, $block_id );
		$control = apply_filters('litespeed_esi_control', $control, $block_id );

		if ( !is_array($params) || !is_string($control) ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( "[ESI] 🛑 Sub hooks returned Params: \n" . var_export($params, true) . "\ncache control: \n" . var_export($control, true) );

			return false;
		}

		// Build params for URL
		$appended_params = array(
			self::QS_ACTION	=> $block_id,
		);
		if ( ! empty( $control ) ) {
			$appended_params[ '_control' ] = $control;
		}
		if ( $params ) {
			$appended_params[ self::QS_PARAMS ] = base64_encode( json_encode( $params ) );
			Debug2::debug2( '[ESI] param ', $params );
		}

		// Append hash
		$appended_params[ '_hash' ] = self::_gen_esi_md5( $appended_params );

		/**
		 * Escape potential chars
		 * @since 2.9.4
		 */
		$appended_params = array_map( 'urlencode', $appended_params );

		// Generate ESI URL
		$url = add_query_arg( $appended_params, trailingslashit( wp_make_link_relative( home_url() ) ) );

		$output = '';
		if ( $inline_param ) {
			$output .= self::_build_inline( $url, $inline_param );
		}

		$output .= "<esi:include src='$url'";
		if ( ! empty( $control ) ) {
			$output .= " cache-control='$control'";
		}
		if ( $svar ) {
			$output .= " as-var='1'";
		}
		if ( in_array( $block_id, self::$_combine_ids ) ) {
			$output .= " combine='sub'";
		}
		if ( $block_id == self::COMBO && isset( $_SERVER[ 'X-LSCACHE' ] ) && strpos( $_SERVER[ 'X-LSCACHE' ], 'combine' ) !== false ) {
			$output .= " combine='main'";
		}
		$output .= " />";

		if ( ! $silence ) {
			$output = "<!-- lscwp $wrapper -->$output<!-- lscwp $wrapper esi end -->";
		}

		Debug2::debug( "[ESI] 💕  [BLock_ID] $block_id \t[wrapper] $wrapper \t\t[Control] $control" );
		Debug2::debug2( $output );

		self::set_has_esi();

		// Convert to string to avoid html chars filter when using
		// Will reverse the buffer when output in self::finalize()
		if ( $preserved ) {
			$hash = md5( $output );
			self::get_instance()->_esi_preserve_list[ $hash ] = $output;
			Debug2::debug( "[ESI] Preserved to $hash" );

			return $hash;
		}

		return $output;
	}

	/**
	 * Generate ESI hash md5
	 *
	 * @since  2.9.6
	 * @access private
	 */
	private static function _gen_esi_md5( $params ) {
		$keys = array(
			self::QS_ACTION,
			'_control',
			self::QS_PARAMS,
		);

		$str = '';
		foreach ( $keys as $v ) {
			if ( isset( $params[ $v ] ) && is_string( $params[ $v ] ) ) {
				$str .= $params[ $v ];
			}
		}
		Debug2::debug2( '[ESI] md5_string=' . $str );

		return md5( Conf::val( Base::HASH ) . $str );
	}

	/**
	 * Parses the request parameters on an ESI request
	 *
	 * @since 1.1.3
	 * @access private
	 */
	private function _parse_esi_param( $qs_params = false ) {
		$req_params = false;
		if ( $qs_params ) {
			$req_params = $qs_params;
		}
		elseif ( isset( $_REQUEST[ self::QS_PARAMS ] ) ) {
			$req_params = $_REQUEST[ self::QS_PARAMS ];
		}

		if ( ! $req_params ) {
			return false;
		}

		$unencrypted = base64_decode( $req_params );
		if ( $unencrypted === false ) {
			return false;
		}

		Debug2::debug2( '[ESI] parms', $unencrypted );
		// $unencoded = urldecode($unencrypted); no need to do this as $_GET is already parsed
		$params = json_decode( $unencrypted, true );

		return $params;
	}

	/**
	 * Select the correct esi output based on the parameters in an ESI request.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function load_esi_block() {
		/**
		 * Validate if is a legal ESI req
		 * @since 2.9.6
		 */
		if ( empty( $_GET[ '_hash' ] ) || self::_gen_esi_md5( $_GET ) != $_GET[ '_hash' ] ) {
			Debug2::debug( '[ESI] ❌ Failed to validate _hash' );
			return;
		}

		$params = $this->_parse_esi_param();

		if ( defined( 'LSCWP_LOG' ) ) {
			$logInfo = '[ESI] ⭕ ';
			if( ! empty( $params[ self::PARAM_NAME ] ) ) {
				$logInfo .= ' Name: ' . $params[ self::PARAM_NAME ] . ' ----- ';
			}
			$logInfo .= ' [ID] ' . LSCACHE_IS_ESI;
			Debug2::debug( $logInfo );
		}

		if ( ! empty( $params[ '_ls_silence' ] ) ) {
			! defined( 'LSCACHE_ESI_SILENCE' ) && define( 'LSCACHE_ESI_SILENCE', true );
		}

		/**
		 * Buffer needs to be JSON format
		 * @since  2.9.4
		 */
		if ( ! empty( $params[ 'is_json' ] ) ) {
			add_filter( 'litespeed_is_json', '__return_true' );
		}

		Tag::add( rtrim( Tag::TYPE_ESI, '.' ) );
		Tag::add( Tag::TYPE_ESI . LSCACHE_IS_ESI );

		// Debug2::debug(var_export($params, true ));

		/**
		 * Handle default cache control 'private,no-vary' for sub_esi_block() 	@ticket #923505
		 *
		 * @since  2.2.3
		 */
		if ( ! empty( $_GET[ '_control' ] ) ) {
			$control = explode( ',', $_GET[ '_control' ] );
			if ( in_array( 'private', $control ) ) {
				Control::set_private();
			}

			if ( in_array( 'no-vary', $control ) ) {
				Control::set_no_vary();
			}
		}

		do_action('litespeed_esi_load-' . LSCACHE_IS_ESI, $params);
	}

// The *_sub_* functions are helpers for the sub_* functions.
// The *_load_* functions are helpers for the load_* functions.

	/**
	 * Loads the default options for default WordPress widgets.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function widget_default_options($options, $widget) {
		if ( ! is_array($options) ) {
			return $options;
		}

		$widget_name = get_class($widget);
		switch ($widget_name) {
			case 'WP_Widget_Recent_Posts' :
			case 'WP_Widget_Recent_Comments' :
				$options[self::WIDGET_O_ESIENABLE] = Base::VAL_OFF;
				$options[self::WIDGET_O_TTL] = 86400;
				break;
			default :
				break;
		}
		return $options;
	}

	/**
	 * Hooked to the widget_display_callback filter.
	 * If the admin configured the widget to display via esi, this function
	 * will set up the esi request and cancel the widget display.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param array $instance Parameter used to build the widget.
	 * @param WP_Widget $widget The widget to build.
	 * @param array $args Parameter used to build the widget.
	 * @return mixed Return false if display through esi, instance otherwise.
	 */
	public function sub_widget_block( $instance, $widget, $args ) {
		// #210407
		if ( ! is_array( $instance ) ) {
			return $instance;
		}

		$name = get_class( $widget );
		if ( ! isset( $instance[ Base::OPTION_NAME ] ) ) {
			return $instance;
		}
		$options = $instance[ Base::OPTION_NAME ];
		if ( ! isset( $options ) || ! $options[ self::WIDGET_O_ESIENABLE ] ) {
			defined( 'LSCWP_LOG' ) && Debug2::debug( 'ESI 0 ' . $name . ': '. ( ! isset( $options ) ? 'not set' : 'set off' ) );

			return $instance;
		}

		$esi_private = $options[ self::WIDGET_O_ESIENABLE ] == Base::VAL_ON2 ? 'private,' : '';

		$params = array(
			self::PARAM_NAME => $name,
			self::PARAM_ID => $widget->id,
			self::PARAM_INSTANCE => $instance,
			self::PARAM_ARGS => $args
		);

		echo self::sub_esi_block( 'widget', 'widget ' . $name, $params, $esi_private . 'no-vary' );

		return false;
	}

	/**
	 * Hooked to the wp_footer action.
	 * Sets up the ESI request for the admin bar.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global type $wp_admin_bar
	 */
	public function sub_admin_bar_block() {
		global $wp_admin_bar;

		if ( ! is_admin_bar_showing() || ! is_object($wp_admin_bar) ) {
			return;
		}

		// To make each admin bar ESI request different for `Edit` button different link
		$params = array(
			'ref' => $_SERVER[ 'REQUEST_URI' ],
		);

		echo self::sub_esi_block( 'admin-bar', 'adminbar', $params );
	}

	/**
	 * Parses the esi input parameters and generates the widget for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global $wp_widget_factory
	 * @param array $params Input parameters needed to correctly display widget
	 */
	public function load_widget_block( $params ) {
		// global $wp_widget_factory;
		// $widget = $wp_widget_factory->widgets[ $params[ self::PARAM_NAME ] ];
		$option = $params[ self::PARAM_INSTANCE ];
		$option = $option[ Base::OPTION_NAME ];

		// Since we only reach here via esi, safe to assume setting exists.
		$ttl = $option[ self::WIDGET_O_TTL ];
		defined( 'LSCWP_LOG' ) && Debug2::debug( 'ESI widget render: name ' . $params[ self::PARAM_NAME ] . ', id ' . $params[ self::PARAM_ID ] . ', ttl ' . $ttl );
		if ( $ttl == 0 ) {
			Control::set_nocache( 'ESI Widget time to live set to 0' );
		}
		else {
			Control::set_custom_ttl( $ttl );

			if ( $option[ self::WIDGET_O_ESIENABLE ] == Base::VAL_ON2 ) {
				Control::set_private();
			}
			Control::set_no_vary();
			Tag::add( Tag::TYPE_WIDGET . $params[ self::PARAM_ID ] );
		}
		the_widget( $params[ self::PARAM_NAME ], $params[ self::PARAM_INSTANCE ], $params[ self::PARAM_ARGS ] );
	}

	/**
	 * Generates the admin bar for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function load_admin_bar_block( $params ) {

		if ( ! empty( $params[ 'ref' ] ) ) {
			$ref_qs = parse_url( $params[ 'ref' ], PHP_URL_QUERY );
			if ( ! empty( $ref_qs ) ) {
				parse_str( $ref_qs, $ref_qs_arr );

				if ( ! empty( $ref_qs_arr ) ) {
					foreach ( $ref_qs_arr as $k => $v ) {
						$_GET[ $k ] = $v;
					}
				}
			}
		}

		wp_admin_bar_render();
		if ( ! Conf::val( Base::O_ESI_CACHE_ADMBAR ) ) {
			Control::set_nocache( 'build-in set to not cacheable' );
		}
		else {
			Control::set_private();
			Control::set_no_vary();
		}

		defined( 'LSCWP_LOG' ) && Debug2::debug( 'ESI: adminbar ref: ' . $_SERVER[ 'REQUEST_URI' ] );
	}


	/**
	 * Parses the esi input parameters and generates the comment form for esi display.
	 *
	 * @access public
	 * @since 1.1.3
	 * @param array $params Input parameters needed to correctly display comment form
	 */
	public function load_comment_form_block( $params ) {
		comment_form( $params[ self::PARAM_ARGS ], $params[ self::PARAM_ID ] );

		if ( ! Conf::val( Base::O_ESI_CACHE_COMMFORM ) ) {
			Control::set_nocache( 'build-in set to not cacheable' );
		}
		else {
			// by default comment form is public
			if ( Vary::has_vary() ) {
				Control::set_private();
				Control::set_no_vary();
			}
		}
	}

	/**
	 * Generate nonce for certain action
	 *
	 * @access public
	 * @since 2.6
	 */
	public function load_nonce_block( $params ) {
		$action = $params[ 'action' ];

		Debug2::debug( '[ESI] load_nonce_block [action] ' . $action );

		// set nonce TTL to half day
		Control::set_custom_ttl( 43200 );

		if ( Router::is_logged_in() ) {
			Control::set_private();
		}

		if ( function_exists( 'wp_create_nonce_litespeed_esi' ) ) {
			echo wp_create_nonce_litespeed_esi( $action );
		}
		else {
			echo wp_create_nonce( $action );
		}
	}

	/**
	 * Show original shortcode
	 *
	 * @access public
	 * @since 2.8
	 */
	public function load_esi_shortcode( $params ) {
		if ( isset( $params[ 'ttl' ] ) ) {
			if ( ! $params[ 'ttl' ] ) {
				Control::set_nocache( 'ESI shortcode att ttl=0' );
			}
			else {
				Control::set_custom_ttl( $params[ 'ttl' ] );
			}
			unset( $params[ 'ttl' ] );
		}

		// Replace to original shortcode
		$shortcode = $params[ 0 ];
		$atts_ori = array();
		foreach ( $params as $k => $v ) {
			if ( $k === 0 ) {
				continue;
			}

			$atts_ori[] = is_string( $k ) ? "$k='" . addslashes( $v ) . "'" : $v;
		}

		Tag::add( Tag::TYPE_ESI . "esi.$shortcode" );

		// Output original shortcode final content
		echo do_shortcode( "[$shortcode " . implode( ' ', $atts_ori ) . " ]" );
	}

	/**
	 * Hooked to the comment_form_defaults filter.
	 * Stores the default comment form settings.
	 * If sub_comment_form_block is triggered, the output buffer is cleared and an esi block is added. The remaining comment form is also buffered and cleared.
	 * Else there is no need to make the comment form ESI.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function register_comment_form_actions( $defaults ) {
		$this->esi_args = $defaults;
		echo GUI::clean_wrapper_begin();
		add_filter( 'comment_form_submit_button', array( $this, 'sub_comment_form_btn' ), 1000, 2 ); // To save the params passed in
		add_action( 'comment_form', array( $this, 'sub_comment_form_block' ), 1000 );
		return $defaults;
	}

	/**
	 * Store the args passed in comment_form for the ESI comment param usage in `$this->sub_comment_form_block()`
	 *
	 * @since  3.4
	 * @access public
	 */
	public function sub_comment_form_btn( $unused, $args ) {
		if ( empty( $args ) || empty( $this->esi_args ) ) {
			Debug2::debug( 'comment form args empty?' );
			return $unused;
		}
		$esi_args = array();

		// compare current args with default ones
		foreach ( $args as $k => $v ) {
			if ( ! isset( $this->esi_args[ $k ] ) ) {
				$esi_args[ $k ] = $v;
			}
			elseif ( is_array( $v ) ) {
				$diff = array_diff_assoc( $v, $this->esi_args[ $k ] );
				if ( ! empty( $diff ) ) {
					$esi_args[ $k ] = $diff;
				}
			}
			elseif ( $v !== $this->esi_args[ $k ] ) {
				$esi_args[ $k ] = $v;
			}
		}

		$this->esi_args = $esi_args;

		return $unused;
	}

	/**
	 * Hooked to the comment_form_submit_button filter.
	 *
	 * This method will compare the used comment form args against the default args. The difference will be passed to the esi request.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public function sub_comment_form_block( $post_id ) {
		echo GUI::clean_wrapper_end();
		$params = array(
			self::PARAM_ID => $post_id,
			self::PARAM_ARGS => $this->esi_args,
		);

		echo self::sub_esi_block( 'comment-form', 'comment form', $params );
		echo GUI::clean_wrapper_begin();
		add_action( 'comment_form_after', array( $this, 'comment_form_sub_clean' ) );
	}

	/**
	 * Hooked to the comment_form_after action.
	 * Cleans up the remaining comment form output.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public function comment_form_sub_clean() {
		echo GUI::clean_wrapper_end();
	}

	/**
	 * Replace preseved blocks
	 *
	 * @since  2.6
	 * @access public
	 */
	public static function finalize( $buffer ) {
		$instance = self::get_instance();

		// Prepend combo esi block
		if ( self::$_combine_ids ) {
			Debug2::debug( '[ESI] 🍔 Enabled combo' );
			$esi_block = self::sub_esi_block( self::COMBO, '__COMBINE_MAIN__', array(), 'no-cache', true );
			$buffer = $esi_block . $buffer;
		}

		// Bypass if no preserved list to be replaced
		if ( ! $instance->_esi_preserve_list ) {
			return $buffer;
		}

		$keys = array_keys( $instance->_esi_preserve_list );

		Debug2::debug( '[ESI] replacing preserved blocks', $keys );

		$buffer = str_replace( $keys, $instance->_esi_preserve_list, $buffer );

		return $buffer;
	}

	/**
	 * Check if the content contains preserved list or not
	 *
	 * @since  3.3
	 */
	public function contain_preserve_esi( $content ) {
		$hit_list = array();
		foreach ( $this->_esi_preserve_list as $k => $v ) {
			if ( strpos( $content, '"' . $k . '"' ) !== false ) {
				$hit_list[] = '"' . $k . '"';
			}
			if ( strpos( $content, "'" . $k . "'" ) !== false ) {
				$hit_list[] = "'" . $k . "'";
			}
		}
		return $hit_list;
	}

}
<?php
/**
 * The optimize4 class.
 *
 * @since      	1.9
 * @package  	LiteSpeed
 * @subpackage 	LiteSpeed/inc
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Optimizer extends Instance {
	protected static $_instance;

	private $_conf_css_font_display;

	/**
	 * Init optimizer
	 *
	 * @since  1.9
	 * @access protected
	 */
	protected function __construct() {
		$this->_conf_css_font_display = Conf::val( Base::O_OPTM_CSS_FONT_DISPLAY );
		if ( ! empty( Base::$CSS_FONT_DISPLAY_SET[ $this->_conf_css_font_display ] ) ) {
			$this->_conf_css_font_display = Base::$CSS_FONT_DISPLAY_SET[ $this->_conf_css_font_display ];
		}
	}

	/**
	 * Run HTML minify process and return final content
	 *
	 * @since  1.9
	 * @access public
	 */
	public function html_min( $content, $force_inline_minify = false ) {
		$options = array();

		if ( $force_inline_minify ) {
			$options[ 'jsMinifier' ] = __CLASS__ . '::minify_js';
		}

		/**
		 * Added exception capture when minify
		 * @since  2.2.3
		 */
		try {
			$obj = new Lib\HTML_MIN( $content, $options );
			$content_final = $obj->process();
			if ( ! defined( 'LSCACHE_ESI_SILENCE' ) ) {
				$content_final .= "\n" . '<!-- Page optimized by LiteSpeed Cache @' . date('Y-m-d H:i:s') . ' -->';
			}
			return $content_final;

		} catch ( \Exception $e ) {
			Debug2::debug( '******[Optmer] html_min failed: ' . $e->getMessage() );
			error_log( '****** LiteSpeed Optimizer html_min failed: ' . $e->getMessage() );
			return $content;
		}
	}

	/**
	 * Run minify process and save content
	 *
	 * @since  1.9
	 * @access public
	 */
	public function serve( $filename, $concat_only, $src_list = false, $page_url = false ) {
		$__css = CSS::get_instance();
		$ua = ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) ? $_SERVER[ 'HTTP_USER_AGENT' ] : '';

		$static_file = LITESPEED_STATIC_DIR . "/cssjs/$filename";

		// Search src set in db based on the requested filename
		if ( ! $src_list ) {
			$optm_data = Data::get_instance()->optm_hash2src( $filename );
			if ( empty( $optm_data[ 'src' ] ) || ! is_array( $optm_data[ 'src' ] ) ) {
				return false;
			}
			$src_list = $optm_data[ 'src' ];
			$page_url = $optm_data[ 'refer' ];
		}

		$file_type = substr( $filename, strrpos( $filename, '.' ) + 1 );

		// Check if need to run Unique CSS feature
		if ( $file_type == 'css' ) {
			// CHeck if need to trigger UCSS or not
			$content = false;
			if ( Conf::val( Base::O_OPTM_UCSS ) && ! Conf::val( Base::O_OPTM_UCSS_ASYNC ) ) {
				$content = $__css->gen_ucss( $page_url, $ua );//todo: how to store ua!!!
			}

			$content = apply_filters( 'litespeed_css_serve', $content, $filename, $src_list, $page_url );
			if ( $content ) {
				Debug2::debug( '[Optmer] Content from filter `litespeed_css_serve` for [file] ' . $filename . ' [url] ' . $page_url );
				File::save( $static_file, $content, true ); // todo: UCSS CDN and CSS font display setting
				return true;
			}
		}

		// Clear if existed
		File::save( $static_file, '', true ); // TODO: need to lock file too

		// Load content
		$real_files = array();
		foreach ( $src_list as $src_info ) {
			$is_min = false;
			$src = false;
			if ( ! empty( $src_info[ 'inl' ] ) ) { // Load inline
				$content = $src_info[ 'src' ];
			}
			else { // Load file
				$src = ! empty( $src_info[ 'src' ] ) ? $src_info[ 'src' ] : $src_info;
				$content = $__css->load_file( $src, $file_type );

				if ( ! $content ) {
					continue;
				}

				$is_min = $this->_is_min( $src );
			}

			// CSS related features
			if ( $file_type == 'css' ) {
				// Font optimize
				if ( $this->_conf_css_font_display ) {
					$content = preg_replace( '#(@font\-face\s*\{)#isU', '${1}font-display:' . $this->_conf_css_font_display . ';', $content );
				}

				$content = preg_replace( '/@charset[^;]+;\\s*/', '', $content );

				if ( ! empty( $src_info[ 'media' ] ) ) {
					$content = '@media ' . $src_info[ 'media' ] . '{' . $content . "\n}";
				}

				if ( ! $concat_only && ! $is_min ) {
					$content = self::minify_css( $content );
				}

				$content = CDN::finalize( $content );
			}
			else {
				if ( ! $concat_only && ! $is_min ) {
					$content = self::minify_js( $content );
				}
				else {
					$content = $this->_null_minifier( $content );
				}

				$content .= "\n;";
			}

			// Add filter
			$content = apply_filters( 'litespeed_optm_cssjs', $content, $file_type, $src );

			// Write to file
			File::save( $static_file, $content, true, true );

		}

		Debug2::debug2( '[Optmer] Saved static file [path] ' . $static_file );
		return true;
	}

	/**
	 * Minify CSS
	 *
	 * @since  2.2.3
	 * @access private
	 */
	public static function minify_css( $data ) {
		try {
			$obj = new Lib\CSS_MIN\Minifier();
			return $obj->run( $data );

		} catch ( \Exception $e ) {
			Debug2::debug( '******[Optmer] minify_css failed: ' . $e->getMessage() );
			error_log( '****** LiteSpeed Optimizer minify_css failed: ' . $e->getMessage() );
			return $data;
		}
	}

	/**
	 * Minify JS
	 *
	 * Added exception capture when minify
	 *
	 * @since  2.2.3
	 * @access private
	 */
	public static function minify_js( $data, $js_type = '' ) {
		// For inline JS optimize, need to check if it's js type
		if ( $js_type ) {
			preg_match( '#type=([\'"])(.+)\g{1}#isU', $js_type, $matches );
			if ( $matches && $matches[ 2 ] != 'text/javascript' ) {
				Debug2::debug( '******[Optmer] minify_js bypass due to type: ' . $matches[ 2 ] );
				return $data;
			}
		}

		try {
			$data = Lib\JSMin::minify( $data );
			return $data;
		} catch ( \Exception $e ) {
			Debug2::debug( '******[Optmer] minify_js failed: ' . $e->getMessage() );
			// error_log( '****** LiteSpeed Optimizer minify_js failed: ' . $e->getMessage() );
			return $data;
		}
	}

	/**
	 * Basic minifier
	 *
	 * @access private
	 */
	private function _null_minifier( $content ) {
		$content = str_replace( "\r\n", "\n", $content );

		return trim( $content );
	}

	/**
	 * Check if the file is already min file
	 *
	 * @since  1.9
	 * @access private
	 */
	private function _is_min( $filename ) {
		$basename = basename( $filename );
		if ( preg_match( '|[-\.]min\.(?:[a-zA-Z]+)$|i', $basename ) ) {
			return true;
		}

		return false;
	}

}


<?php
/**
 * The plugin logging class.
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Debug2 extends Instance {
	protected static $_instance;
	private static $log_path;
	private static $_prefix;

	const TYPE_CLEAR_LOG = 'clear_log';
	const TYPE_BETA_TEST = 'beta_test';

	const BETA_TEST_URL = 'beta_test_url';

	const BETA_TEST_URL_WP = 'https://downloads.wordpress.org/plugin/litespeed-cache.zip';

	/**
	 * Log class Confructor
	 *
	 * NOTE: in this process, until last step ( define const LSCWP_LOG = true ), any usage to WP filter will not be logged to prevent infinite loop with log_filters()
	 *
	 * @since 1.1.2
	 * @access public
	 */
	protected function __construct() {
		self::$log_path = LSCWP_CONTENT_DIR . '/debug.log';
		if ( ! empty( $_SERVER[ 'HTTP_USER_AGENT' ] ) && strpos( $_SERVER[ 'HTTP_USER_AGENT' ], 'lscache_' ) === 0 ) {
			self::$log_path = LSCWP_CONTENT_DIR . '/crawler.log';
		}

		! defined( 'LSCWP_LOG_TAG' ) && define( 'LSCWP_LOG_TAG', get_current_blog_id() );

		if ( Conf::val( Base::O_DEBUG_LEVEL ) ) {
			! defined( 'LSCWP_LOG_MORE' ) && define( 'LSCWP_LOG_MORE', true );
		}

	}

	/**
	 * Beta test upgrade
	 *
	 * @since 2.9.5
	 * @access public
	 */
	public function beta_test( $zip = false ) {
		if ( ! $zip ) {
			if ( empty( $_REQUEST[ self::BETA_TEST_URL ] ) ) {
				return;
			}

			$zip = $_REQUEST[ self::BETA_TEST_URL ];
			if ( $zip !== Debug2::BETA_TEST_URL_WP ) {
				if ( $zip === 'latest' ) {
					$zip = Debug2::BETA_TEST_URL_WP;
				}
				else {
					// Generate zip url
					$zip = $this->_package_zip( $zip );
				}
			}
		}

		if ( ! $zip ) {
			Debug2::debug( '[Debug2] ❌  No ZIP file' );
			return;
		}

		Debug2::debug( '[Debug2] ZIP file ' . $zip );

		$update_plugins = get_site_transient( 'update_plugins' );
		if ( ! is_object( $update_plugins ) ) {
			$update_plugins = new \stdClass();
		}

		$plugin_info = new \stdClass();
		$plugin_info->new_version = Core::VER;
		$plugin_info->slug = Core::PLUGIN_NAME;
		$plugin_info->plugin = Core::PLUGIN_FILE;
		$plugin_info->package = $zip;
		$plugin_info->url = 'https://wordpress.org/plugins/litespeed-cache/';

		$update_plugins->response[ Core::PLUGIN_FILE ] = $plugin_info;

		set_site_transient( 'update_plugins', $update_plugins );

		// Run upgrade
		Activation::get_instance()->upgrade();
	}

	/**
	 * Git package refresh
	 *
	 * @since  2.9.5
	 * @access private
	 */
	private function _package_zip( $commit ) {
		$data = array(
			'commit'	=> $commit,
		);
		$res = Cloud::get( Cloud::API_BETA_TEST, $data );

		if ( empty( $res[ 'zip' ] ) ) {
			return false;
		}

		return $res[ 'zip' ];
	}

	/**
	 * Log Purge headers separately
	 *
	 * @since 2.7
	 * @access public
	 */
	public static function log_purge( $purge_header ) {
		// Check if debug is ON
		if ( ! defined( 'LSCWP_LOG' ) && ! defined( 'LSCWP_LOG_BYPASS_NOTADMIN' ) ) {
			return;
		}

		$purge_file = LSCWP_CONTENT_DIR . '/debug.purge.log';

		self::get_instance()->_init_request( $purge_file );

		$msg = $purge_header . self::_backtrace_info( 6 );

		File::append( $purge_file, self::format_message( $msg ) );

	}

	/**
	 * Enable debug log
	 *
	 * @since 1.1.0
	 * @access public
	 */
	public static function init() {
		$debug = Conf::val( Base::O_DEBUG );
		if ( $debug == Base::VAL_ON2 ) {
			if ( ! Router::is_admin_ip() ) {
				define( 'LSCWP_LOG_BYPASS_NOTADMIN', true );
				return;
			}
		}

		/**
		 * Check if hit URI includes/excludes
		 * This is after LSCWP_LOG_BYPASS_NOTADMIN to make `log_purge()` still work
		 * @since  3.0
		 */
		$list = Conf::val( Base::O_DEBUG_INC );
		if ( $list ) {
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $list );
			if ( ! $result ) {
				return;
			}
		}

		$list = Conf::val( Base::O_DEBUG_EXC );
		if ( $list ) {
			$result = Utility::str_hit_array( $_SERVER[ 'REQUEST_URI' ], $list );
			if ( $result ) {
				return;
			}
		}

		if ( ! defined( 'LSCWP_LOG' ) ) {// If not initialized, do it now
			self::get_instance()->_init_request();
			define( 'LSCWP_LOG', true );

		}
	}

	/**
	 * Create the initial log messages with the request parameters.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private function _init_request( $log_file = null ) {
		if ( ! $log_file ) {
			$log_file = self::$log_path;
		}

		// Check log file size
		$log_file_size = Conf::val( Base::O_DEBUG_FILESIZE );
		if ( file_exists( $log_file ) && filesize( $log_file ) > $log_file_size * 1000000 ) {
			File::save( $log_file, '' );
		}

		// For more than 2s's requests, add more break
		if ( file_exists( $log_file ) && time() - filemtime( $log_file ) > 2 ) {
			File::append( $log_file, "\n\n\n\n" );
		}

		if ( PHP_SAPI == 'cli' ) {
			return;
		}

		$servervars = array(
			'Query String' => '',
			'HTTP_ACCEPT' => '',
			'HTTP_USER_AGENT' => '',
			'HTTP_ACCEPT_ENCODING' => '',
			'HTTP_COOKIE' => '',
			'X-LSCACHE' => '',
			'LSCACHE_VARY_COOKIE' => '',
			'LSCACHE_VARY_VALUE' => '',
			'ESI_CONTENT_TYPE' => '',
		);
		$server = array_merge( $servervars, $_SERVER );
		$params = array();

		if ( isset( $_SERVER[ 'HTTPS' ] ) && $_SERVER[ 'HTTPS' ] == 'on' ) {
			$server['SERVER_PROTOCOL'] .= ' (HTTPS) ';
		}

		$param = sprintf( '💓 ------%s %s %s', $server['REQUEST_METHOD'], $server['SERVER_PROTOCOL'], strtok( $server['REQUEST_URI'], '?' ) );

		$qs = ! empty( $server['QUERY_STRING'] ) ? $server['QUERY_STRING'] : '';
		if ( Conf::val( Base::O_DEBUG_COLLAPS_QS ) ) {
			if ( strlen( $qs ) > 53 ) {
				$qs = substr( $qs, 0, 53 ) . '...';
			}
			if ( $qs ) {
				$param .= ' ? ' . $qs;
			}
			$params[] = $param;
		}
		else {
			$params[] = $param;
			$params[] = 'Query String: ' . $qs;
		}

		if ( ! empty( $_SERVER[ 'HTTP_REFERER' ] ) ) {
			$params[] = 'HTTP_REFERER: ' . $server[ 'HTTP_REFERER' ];
		}

		if ( defined( 'LSCWP_LOG_MORE' ) ) {
			$params[] = 'User Agent: ' . $server[ 'HTTP_USER_AGENT' ];
			$params[] = 'Accept: ' . $server['HTTP_ACCEPT'];
			$params[] = 'Accept Encoding: ' . $server['HTTP_ACCEPT_ENCODING'];
		}
		if ( Conf::val( Base::O_DEBUG_COOKIE ) ) {
			$params[] = 'Cookie: ' . $server['HTTP_COOKIE'];
		}
		if ( isset( $_COOKIE[ '_lscache_vary' ] ) ) {
			$params[] = 'Cookie _lscache_vary: ' . $_COOKIE[ '_lscache_vary' ];
		}
		if ( defined( 'LSCWP_LOG_MORE' ) ) {
			$params[] = 'X-LSCACHE: ' . ( ! empty( $server[ 'X-LSCACHE' ] ) ? 'true' : 'false' );
		}
		if( $server['LSCACHE_VARY_COOKIE'] ) {
			$params[] = 'LSCACHE_VARY_COOKIE: ' . $server['LSCACHE_VARY_COOKIE'];
		}
		if( $server['LSCACHE_VARY_VALUE'] ) {
			$params[] = 'LSCACHE_VARY_VALUE: ' . $server['LSCACHE_VARY_VALUE'];
		}
		if( $server['ESI_CONTENT_TYPE'] ) {
			$params[] = 'ESI_CONTENT_TYPE: ' . $server['ESI_CONTENT_TYPE'];
		}

		$request = array_map( __CLASS__ . '::format_message', $params );

		File::append( $log_file, $request );
	}

	/**
	 * Formats the log message with a consistent prefix.
	 *
	 * @since 1.0.12
	 * @access private
	 * @param string $msg The log message to write.
	 * @return string The formatted log message.
	 */
	private static function format_message( $msg ) {
		// If call here without calling get_enabled() first, improve compatibility
		if ( ! defined( 'LSCWP_LOG_TAG' ) ) {
			return $msg . "\n";
		}

		if ( ! isset( self::$_prefix ) ) {
			// address
			if ( PHP_SAPI == 'cli' ) {
				$addr = '=CLI=';
				if ( isset( $_SERVER[ 'USER' ] ) ) {
					$addr .= $_SERVER[ 'USER' ];
				}
				elseif ( $_SERVER[ 'HTTP_X_FORWARDED_FOR' ] ) {
					$addr .= $_SERVER[ 'HTTP_X_FORWARDED_FOR' ];
				}
			}
			else {
				$addr = $_SERVER[ 'REMOTE_ADDR' ] . ':' . $_SERVER[ 'REMOTE_PORT' ];
			}

			// Generate a unique string per request
			self::$_prefix = sprintf( " [%s %s %s] ", $addr, LSCWP_LOG_TAG, Str::rrand( 3 ) );
		}
		list( $usec, $sec ) = explode(' ', microtime() );
		return date( 'm/d/y H:i:s', $sec + LITESPEED_TIME_OFFSET ) . substr( $usec, 1, 4 ) . self::$_prefix . $msg . "\n";
	}

	/**
	 * Direct call to log a debug message.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function debug( $msg, $backtrace_limit = false ) {
		if ( ! defined( 'LSCWP_LOG' ) ) {
			return;
		}

		if ( $backtrace_limit !== false ) {
			if ( ! is_numeric( $backtrace_limit ) ) {
				$backtrace_limit = self::trim_longtext( $backtrace_limit );
				$msg .= ' --- ' . var_export( $backtrace_limit, true );
				self::push( $msg );
				return;
			}

			self::push( $msg, $backtrace_limit + 1 );
			return;
		}

		self::push( $msg );
	}

	/**
	 * Trim long string before array dump
	 * @since  3.3
	 */
	public static function trim_longtext( $backtrace_limit ) {
		if ( is_array( $backtrace_limit ) ) {
			$backtrace_limit = array_map( __CLASS__ . '::trim_longtext', $backtrace_limit );
		}
		if ( is_string( $backtrace_limit ) && strlen( $backtrace_limit ) > 500 ) {
			$backtrace_limit = substr( $backtrace_limit, 0, 1000 ) . '...';
		}
		return $backtrace_limit;
	}

	/**
	 * Direct call to log an advanced debug message.
	 *
	 * @since 1.2.0
	 * @access public
	 */
	public static function debug2( $msg, $backtrace_limit = false ) {
		if ( ! defined( 'LSCWP_LOG_MORE' ) ) {
			return;
		}
		self::debug( $msg, $backtrace_limit );
	}

	/**
	 * Logs a debug message.
	 *
	 * @since 1.1.0
	 * @access private
	 * @param string $msg The debug message.
	 * @param int $backtrace_limit Backtrace depth.
	 */
	private static function push( $msg, $backtrace_limit = false ) {
		// backtrace handler
		if ( defined( 'LSCWP_LOG_MORE' ) && $backtrace_limit !== false ) {
			$msg .= self::_backtrace_info( $backtrace_limit );
		}

		File::append( self::$log_path, self::format_message( $msg ) );
	}

	/**
	 * Backtrace info
	 *
	 * @since 2.7
	 */
	private static function _backtrace_info( $backtrace_limit ) {
		$msg = '';

		$trace = version_compare( PHP_VERSION, '5.4.0', '<' ) ? debug_backtrace() : debug_backtrace( false, $backtrace_limit + 3 );
		for ( $i=2; $i <= $backtrace_limit + 2; $i++ ) {// 0st => _backtrace_info(), 1st => push()
			if ( empty( $trace[ $i ][ 'class' ] ) ) {
				if ( empty( $trace[ $i ][ 'file' ] ) ) {
					break;
				}
				$log = "\n" . $trace[ $i ][ 'file' ];
			}
			else {
				if ( $trace[$i]['class'] == __CLASS__ ) {
					continue;
				}

				$args = '';
				if ( ! empty( $trace[ $i ][ 'args' ] ) ) {
					foreach ( $trace[ $i ][ 'args' ] as $v ) {
						if ( is_array( $v ) ) {
							$v = 'ARRAY';
						}
						if ( is_string( $v ) || is_numeric( $v ) ) {
							$args .= $v . ',';
						}
					}

					$args = substr( $args, 0, strlen( $args ) > 100 ? 100 : -1 );
				}

				$log = str_replace('Core', 'LSC', $trace[$i]['class']) . $trace[$i]['type'] . $trace[$i]['function'] . '(' . $args . ')';
			}
			if ( ! empty( $trace[$i-1]['line'] ) ) {
				$log .= '@' . $trace[$i-1]['line'];
			}
			$msg .= " => $log";
		}

		return $msg;
	}

	/**
	 * Clear log file
	 *
	 * @since 1.6.6
	 * @access private
	 */
	private function _clear_log() {
		File::save( self::$log_path, '' );
		File::save( LSCWP_CONTENT_DIR . '/debug.purge.log', '' );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.6.6
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_CLEAR_LOG :
				$instance->_clear_log();
				break;

			case self::TYPE_BETA_TEST :
				$instance->beta_test();
				break;

			default:
				break;
		}

		Admin::redirect();
	}
}
<?php
/**
 * The report class
 *
 *
 * @since      1.1.0
 * @package    LiteSpeed
 * @subpackage LiteSpeed/src
 * @author     LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed ;

defined( 'WPINC' ) || exit ;

class Report extends Base
{
	protected static $_instance ;

	const TYPE_SEND_REPORT = 'send_report' ;

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public static function handler()
	{
		$instance = self::get_instance() ;

		$type = Router::verify_type() ;

		switch ( $type ) {

			case self::TYPE_SEND_REPORT :
				$instance->post_env() ;
				break ;

			default:
				break ;
		}

		Admin::redirect() ;
	}

	/**
	 * post env report number to ls center server
	 *
	 * @since  1.6.5
	 * @access public
	 */
	public function post_env()
	{
		$report_con = $this->generate_environment_report() ;

		// Generate link
		$link = ! empty( $_POST[ 'link' ] ) ? $_POST[ 'link' ] : '';

		$notes = ! empty( $_POST[ 'notes' ] ) ? $_POST[ 'notes' ] : '';

		$data = array(
			'env' => $report_con,
			'link' => $link,
			'notes' => $notes,
		) ;

		$json = Cloud::post( Cloud::API_REPORT, $data ) ;
		if ( ! is_array( $json ) ) {
			return ;
		}

		$num = ! empty( $json[ 'num' ] ) ? $json[ 'num' ] : '--';
		$summary = array(
			'num'	=> $num,
			'dateline'	=> time(),
		) ;

		self::save_summary( $summary ) ;

		return $num;
	}

	/**
	 * Gathers the environment details and creates the report.
	 * Will write to the environment report file.
	 *
	 * @since 1.0.12
	 * @access public
	 */
	public function generate_environment_report( $options = null ) {
		global $wp_version, $_SERVER ;
		$frontend_htaccess = Htaccess::get_frontend_htaccess() ;
		$backend_htaccess = Htaccess::get_backend_htaccess() ;
		$paths = array($frontend_htaccess) ;
		if ( $frontend_htaccess != $backend_htaccess ) {
			$paths[] = $backend_htaccess ;
		}

		if ( is_multisite() ) {
			$active_plugins = get_site_option('active_sitewide_plugins') ;
			if ( ! empty($active_plugins) ) {
				$active_plugins = array_keys($active_plugins) ;
			}
		}
		else {
			$active_plugins = get_option('active_plugins') ;
		}

		if ( function_exists('wp_get_theme') ) {
			$theme_obj = wp_get_theme() ;
			$active_theme = $theme_obj->get('Name') ;
		}
		else {
			$active_theme = get_current_theme() ;
		}

		$extras = array(
			'wordpress version' => $wp_version,
			'siteurl' => get_option( 'siteurl' ),
			'home' => get_option( 'home' ),
			'home_url' => home_url(),
			'locale' => get_locale(),
			'active theme' => $active_theme,
		) ;

		$extras[ 'active plugins' ] = $active_plugins ;
		$extras[ 'cloud' ] = Cloud::get_summary();

		if ( is_null($options) ) {
			$options = Conf::get_instance()->get_options( true );

			if ( is_multisite() ) {
				$options2 = Conf::get_instance()->get_options();
				foreach ( $options2 as $k => $v ) {
					if ( $options[ $k ] !== $v ) {
						$options[ '[Overwritten] ' . $k ] = $v;
					}
				}
			}
		}

		if ( ! is_null($options) && is_multisite() ) {
			$blogs = Activation::get_network_ids() ;
			if ( ! empty($blogs) ) {
				foreach ( $blogs as $blog_id ) {
					$opts = Conf::get_instance()->load_options( $blog_id, true ) ;
					if ( isset($opts[ Base::O_CACHE ]) ) {
						$options['blog ' . $blog_id . ' radio select'] = $opts[ Base::O_CACHE ] ;
					}
				}
			}
		}

		// Security: Remove cf key in report
		$secure_fields = array(
			Base::O_CDN_CLOUDFLARE_KEY,
			Base::O_OBJECT_PSWD,
		) ;
		foreach ( $secure_fields as $v ) {
			if ( ! empty( $options[ $v ] ) ) {
				$options[ $v ] = str_repeat( '*', strlen( $options[ $v ] ) ) ;
			}
		}

		$report = $this->build_environment_report($_SERVER, $options, $extras, $paths) ;
		return $report ;
	}

	/**
	 * Builds the environment report buffer with the given parameters
	 *
	 * @access private
	 */
	private function build_environment_report($server, $options, $extras = array(), $htaccess_paths = array())
	{
		$server_keys = array(
			'DOCUMENT_ROOT'=>'',
			'SERVER_SOFTWARE'=>'',
			'X-LSCACHE'=>'',
			'HTTP_X_LSCACHE'=>''
		) ;
		$server_vars = array_intersect_key($server, $server_keys) ;
		$server_vars[] = "LSWCP_TAG_PREFIX = " . LSWCP_TAG_PREFIX ;

		$server_vars = array_merge( $server_vars, Base::get_instance()->server_vars() ) ;

		$buf = $this->_format_report_section('Server Variables', $server_vars) ;

		$buf .= $this->_format_report_section('Wordpress Specific Extras', $extras) ;

		$buf .= $this->_format_report_section('LSCache Plugin Options', $options) ;

		if ( empty($htaccess_paths) ) {
			return $buf ;
		}

		foreach ( $htaccess_paths as $path ) {
			if ( ! file_exists($path) || ! is_readable($path) ) {
				$buf .= $path . " does not exist or is not readable.\n" ;
				continue ;
			}

			$content = file_get_contents($path) ;
			if ( $content === false ) {
				$buf .= $path . " returned false for file_get_contents.\n" ;
				continue ;
			}
			$buf .= $path . " contents:\n" . $content . "\n\n" ;
		}
		return $buf ;
	}

	/**
	 * Creates a part of the environment report based on a section header and an array for the section parameters.
	 *
	 * @since 1.0.12
	 * @access private
	 */
	private function _format_report_section( $section_header, $section )
	{
		$tab = '    ' ; // four spaces

		if ( empty( $section ) ) {
			return 'No matching ' . $section_header . "\n\n" ;
		}
		$buf = $section_header ;

		foreach ( $section as $k => $v ) {
			$buf .= "\n" . $tab ;

			if ( ! is_numeric( $k ) ) {
				$buf .= $k . ' = ' ;
			}

			if ( ! is_string( $v ) ) {
				$v = var_export( $v, true ) ;
			}

			$buf .= $v ;
		}
		return $buf . "\n\n" ;
	}

}
<?php
/**
 * The Doc class.
 *
 * @since     	2.2.7
 * @package    	LiteSpeed
 * @subpackage 	LiteSpeed/src
 * @author     	LiteSpeed Technologies <info@litespeedtech.com>
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Doc {
	// protected static $_instance;

	/**
	 * Privacy policy
	 *
	 * @since 2.2.7
	 * @access public
	 */
	public static function privacy_policy() {
		return __( 'This site utilizes caching in order to facilitate a faster response time and better user experience. Caching potentially stores a duplicate copy of every web page that is on display on this site. All cache files are temporary, and are never accessed by any third party, except as necessary to obtain technical support from the cache plugin vendor. Cache files expire on a schedule set by the site administrator, but may easily be purged by the admin before their natural expiration, if necessary.', 'litespeed-cache' );
	}


	/**
	 * Learn more link
	 *
	 * @since  2.4.2
	 * @access public
	 */
	public static function learn_more( $url, $title = false, $self = false, $class = false, $return = false ) {
		if ( ! $class ) {
			$class = 'litespeed-learn-more';
		}

		if ( ! $title ) {
			$title = __( 'Learn More', 'litespeed-cache' );
		}

		$self = $self ? '' : "target='_blank'";

		$txt = " <a href='$url' $self class='$class'>$title</a>";

		if ( $return ) {
			return $txt;
		}

		echo $txt;
	}

	/**
	 * One per line
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function one_per_line( $return = false ) {
		$str = __( 'One per line.', 'litespeed-cache' );
		if ( $return ) {
			return $str;
		}
		echo $str;
	}

	/**
	 * One per line
	 *
	 * @since  3.4
	 * @access public
	 */
	public static function full_or_partial_url( $string_only = false ) {
		if ( $string_only ) {
			echo __( 'Both full and partial strings can be used.', 'litespeed-cache' );
		}
		else {
			echo __( 'Both full URLs and partial strings can be used.', 'litespeed-cache' );
		}
	}

	/**
	 * Notice to edit .htaccess
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function notice_htaccess() {
		echo '<font class="litespeed-warning">';
		echo '⚠️ ' . __( 'This setting will edit the .htaccess file.', 'litespeed-cache' );
		echo ' <a href="https://docs.litespeedtech.com/lscache/lscwp/toolbox/#edit-htaccess-tab" target="_blank" class="litespeed-learn-more">' . __( 'Learn More', 'litespeed-cache' ) . '</a>';
		echo '</font>';
	}

	/**
	 * Notice for whitelist IPs
	 *
	 * @since  3.0
	 * @access public
	 */
	public static function notice_ips() {
		echo '<div class="litespeed-warning">';
		echo '⚠️ ' . __( 'For online services to work correctly, you must whitelist all online server IPs.', 'litespeed-cache' ) . '<br/>';
		echo '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . __( 'Before generating key, please verify all IPs on this list are whitelisted', 'litespeed-cache' ) . ': ';
		echo '<a href="' . Cloud::CLOUD_SERVER . '/ips" target="_blank">' . __( 'Current Online Server IPs', 'litespeed-cache' ) . '</a>';
		echo '</div>';
	}

}<?php
/**
 * The plugin purge class for X-LiteSpeed-Purge
 *
 * @since      	1.1.3
 * @since  		2.2 Refactored. Changed access from public to private for most func and class variables.
 */
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

class Purge extends Base {
	protected static $_instance;

	protected $_pub_purge = array();
	protected $_priv_purge = array();
	protected $_purge_related = false;
	protected $_purge_single = false;

	const X_HEADER = 'X-LiteSpeed-Purge';
	const DB_QUEUE = 'queue';

	const TYPE_PURGE_ALL = 'purge_all';
	const TYPE_PURGE_ALL_LSCACHE = 'purge_all_lscache';
	const TYPE_PURGE_ALL_CSSJS = 'purge_all_cssjs';
	const TYPE_PURGE_ALL_LOCALRES = 'purge_all_localres';
	const TYPE_PURGE_ALL_CCSS = 'purge_all_ccss';
	const TYPE_PURGE_ALL_LQIP 			= 'purge_all_lqip';
	const TYPE_PURGE_ALL_AVATAR = 'purge_all_avatar';
	const TYPE_PURGE_ALL_OBJECT = 'purge_all_object';
	const TYPE_PURGE_ALL_OPCACHE = 'purge_all_opcache';

	const TYPE_PURGE_FRONT = 'purge_front';
	const TYPE_PURGE_FRONTPAGE = 'purge_frontpage';
	const TYPE_PURGE_PAGES = 'purge_pages';
	const TYPE_PURGE_ERROR = 'purge_error';

	/**
	 * Initialize
	 *
	 * @since    2.2.3
	 */
	protected function __construct() {
	}

	/**
	 * Init hooks
	 *
	 * @since  3.0
	 */
	public function init() {
		//register purge actions
		$purge_post_events = array(
			// 'edit_post',
			// 'save_post',
			'delete_post',
			'wp_trash_post',
			// 'clean_post_cache', // This will disable wc's not purge product when stock status not change setting
			'wp_update_comment_count', // TODO: check if needed for non ESI
		);
		foreach ( $purge_post_events as $event ) {
			// this will purge all related tags
			add_action( $event, __CLASS__ . '::purge_post' );
		}

		// Purge post only when status is/was publish
		add_action( 'transition_post_status', __CLASS__ . '::purge_publish', 10, 3 );

		add_action( 'wp_update_comment_count', __CLASS__ . '::purge_feeds' );

	}

	/**
	 * Only purge publish related status post
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge_publish( $new_status, $old_status, $post ) {
		if ( $new_status != 'publish' && $old_status != 'publish' ) {
			return;
		}

		self::purge_post( $post->ID );
	}

	/**
	 * Handle all request actions from main cls
	 *
	 * @since  1.8
	 * @access public
	 */
	public static function handler() {
		$instance = self::get_instance();

		$type = Router::verify_type();

		switch ( $type ) {
			case self::TYPE_PURGE_ALL:
				$instance->_purge_all();
				break;

			case self::TYPE_PURGE_ALL_LSCACHE:
				$instance->_purge_all_lscache();
				break;

			case self::TYPE_PURGE_ALL_CSSJS:
				$instance->_purge_all_cssjs();
				break;

			case self::TYPE_PURGE_ALL_LOCALRES:
				$instance->_purge_all_localres();
				break;

			case self::TYPE_PURGE_ALL_CCSS:
				$instance->_purge_all_ccss();
				break;

			case self::TYPE_PURGE_ALL_LQIP:
				$instance->_purge_all_lqip();
				break;

			case self::TYPE_PURGE_ALL_AVATAR:
				$instance->_purge_all_avatar();
				break;

			case self::TYPE_PURGE_ALL_OBJECT:
				$instance->_purge_all_object();
				break;

			case self::TYPE_PURGE_ALL_OPCACHE:
				$instance->purge_all_opcache();
				break;

			case self::TYPE_PURGE_FRONT:
				$instance->_purge_front();
				break;

			case self::TYPE_PURGE_FRONTPAGE:
				$instance->_purge_frontpage();
				break;

			case self::TYPE_PURGE_PAGES:
				$instance->_purge_pages();
				break;

			case strpos( $type, self::TYPE_PURGE_ERROR ) === 0:
				$instance->_purge_error( substr( $type, strlen( self::TYPE_PURGE_ERROR ) ) );
				break;

			default:
				break;
		}

		Admin::redirect();
	}

	/**
	 * Shortcut to purge all lscache
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function purge_all( $reason = false ) {
		self::get_instance()->_purge_all( $reason );
	}

	/**
	 * Purge all caches (lscache/op/oc)
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _purge_all( $reason = false ) {
		$this->_purge_all_lscache( true );
		$this->_purge_all_cssjs( true );
		$this->_purge_all_localres( true );
		// $this->_purge_all_ccss( true );
		// $this->_purge_all_lqip( true );
		$this->_purge_all_object( true );
		$this->purge_all_opcache( true );

		if ( ! is_string( $reason ) ) {
			$reason = false;
		}

		if ( $reason ) {
			$reason = "( $reason )";
		}

		Debug2::debug( '[Purge] Purge all ' . $reason, 3 );

		$msg = __( 'Purged all caches successfully.', 'litespeed-cache' );
		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );

		do_action( 'litespeed_purged_all' );
	}

	/**
	 * Alerts LiteSpeed Web Server to purge all pages.
	 *
	 * For multisite installs, if this is called by a site admin (not network admin),
	 * it will only purge all posts associated with that site.
	 *
	 * @since 2.2
	 * @access public
	 */
	private function _purge_all_lscache( $silence = false ) {
		$this->_add( '*' );

		if ( ! $silence ) {
			$msg = __( 'Notified LiteSpeed Web Server to purge all LSCache entries.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Delete all critical css
	 *
	 * @since    2.3
	 * @access   private
	 */
	private function _purge_all_ccss( $silence = false ) {
		do_action( 'litespeed_purged_all_ccss' );

		CSS::get_instance()->rm_cache_folder();

		if ( ! $silence ) {
			$msg = __( 'Cleaned all Critical CSS files.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Delete all LQIP images
	 *
	 * @since    3.0
	 * @access   private
	 */
	private function _purge_all_lqip( $silence = false ) {
		do_action( 'litespeed_purged_all_lqip' );

		Placeholder::get_instance()->rm_lqip_cache_folder();

		if ( ! $silence ) {
			$msg = __( 'Cleaned all LQIP files.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Delete all avatar images
	 *
	 * @since    3.0
	 * @access   private
	 */
	private function _purge_all_avatar( $silence = false ) {
		do_action( 'litespeed_purged_all_avatar' );

		Avatar::get_instance()->rm_cache_folder();

		if ( ! $silence ) {
			$msg = __( 'Cleaned all Gravatar files.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Delete all localized JS
	 *
	 * @since    3.3
	 * @access   private
	 */
	private function _purge_all_localres( $silence = false ) {
		do_action( 'litespeed_purged_all_localres' );

		$this->_add( Tag::TYPE_LOCALRES );

		if ( ! $silence ) {
			$msg = __( 'Notified LiteSpeed Web Server to purge localized resource entries.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Alerts LiteSpeed Web Server to purge pages.
	 *
	 * @since    1.2.2
	 * @access   private
	 */
	private function _purge_all_cssjs( $silence = false ) {
		do_action( 'litespeed_purged_all_cssjs' );

		Optimize::update_option( Optimize::ITEM_TIMESTAMP_PURGE_CSS, time() );

		$this->_add( Tag::TYPE_MIN );

		Optimize::get_instance()->rm_cache_folder();

		if ( ! $silence ) {
			$msg = __( 'Notified LiteSpeed Web Server to purge CSS/JS entries.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}
	}

	/**
	 * Purge opcode cache
	 *
	 * @since  1.8.2
	 * @access public
	 */
	public function purge_all_opcache( $silence = false ) {
		if ( ! Router::opcache_enabled() ) {
			Debug2::debug( '[Purge] Failed to reset opcode cache due to opcache not enabled' );

			if ( ! $silence ) {
				$msg = __( 'Opcode cache is not enabled.', 'litespeed-cache' );
				Admin_Display::error( $msg );
			}

			return false;
		}

		// Purge opcode cache
		opcache_reset();
		Debug2::debug( '[Purge] Reset opcode cache' );

		if ( ! $silence ) {
			$msg = __( 'Reset the entire opcode cache successfully.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}

		return true;
	}

	/**
	 * Purge object cache
	 *
	 * @since  3.4
	 * @access public
	 */
	public static function purge_all_object( $silence = true ) {
		self::get_instance()->_purge_all_object( $silence );
	}

	/**
	 * Purge object cache
	 *
	 * @since  1.8
	 * @access private
	 */
	private function _purge_all_object( $silence = false ) {
		if ( ! defined( 'LSCWP_OBJECT_CACHE' ) ) {
			Debug2::debug( '[Purge] Failed to flush object cache due to object cache not enabled' );

			if ( ! $silence ) {
				$msg = __( 'Object cache is not enabled.', 'litespeed-cache' );
				Admin_Display::error( $msg );
			}

			return false;
		}

		do_action( 'litespeed_purged_all_object' );

		Object_Cache::get_instance()->flush();
		Debug2::debug( '[Purge] Flushed object cache' );

		if ( ! $silence ) {
			$msg = __( 'Purge all object caches successfully.', 'litespeed-cache' );
			! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
		}

		return true;
	}

	/**
	 * Adds new public purge tags to the array of purge tags for the request.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param mixed $tags Tags to add to the list.
	 */
	public static function add( $tags ) {
		self::get_instance()->_add( $tags );
	}

	/**
	 * Add tags to purge
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _add( $tags ) {
		if ( ! is_array( $tags ) ) {
			$tags = array( $tags );
		}
		if ( ! array_diff( $tags, $this->_pub_purge ) ) {
			return;
		}

		$this->_pub_purge = array_merge( $this->_pub_purge, $tags );
		Debug2::debug( '[Purge] added ' . implode( ',', $tags ), 8 );

		// Send purge header immediately
		$curr_built = $this->_build();
		if ( defined( 'LITESPEED_DID_send_headers' ) ) {
			// Can't send, already has output, need to save and wait for next run
			self::update_option( self::DB_QUEUE, $curr_built );
			Debug2::debug( '[Purge] Output existed, queue stored: ' . $curr_built );
		}
		else {
			@header( $curr_built );
			Debug2::debug( $curr_built );
		}

	}

	/**
	 * Adds new private purge tags to the array of purge tags for the request.
	 *
	 * @since 1.1.3
	 * @access public
	 * @param mixed $tags Tags to add to the list.
	 */
	public static function add_private( $tags ) {
		self::get_instance()->_add_private( $tags );
	}

	/**
	 * Add private ESI tag to purge list
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_esi( $tag ) {
		self::add_private( Tag::TYPE_ESI . $tag );
	}

	/**
	 * Add private all tag to purge list
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function add_private_all() {
		self::add_private( '*' );
	}

	/**
	 * Add tags to private purge
	 *
	 * @since 2.2
	 * @access private
	 */
	private function _add_private( $tags ) {
		if ( ! is_array( $tags ) ) {
			$tags = array( $tags );
		}
		if ( ! array_diff( $tags, $this->_priv_purge ) ) {
			return;
		}

		Debug2::debug( '[Purge] added [private] ' . implode( ',', $tags ), 3 );

		$this->_priv_purge = array_merge( $this->_priv_purge, $tags );

		// Send purge header immediately
		@header( $this->_build() );
	}

	/**
	 * Activate `purge related tags` for Admin QS.
	 *
	 * @since    1.1.3
	 * @access   public
	 */
	public static function set_purge_related() {
		self::get_instance()->_purge_related = true;
	}

	/**
	 * Activate `purge single url tag` for Admin QS.
	 *
	 * @since    1.1.3
	 * @access   public
	 */
	public static function set_purge_single() {
		self::get_instance()->_purge_single = true;
	}

	/**
	 * Purge frontend url
	 *
	 * @since 1.3
	 * @since 2.2 Renamed from `frontend_purge`; Access changed from public
	 * @access private
	 */
	private function _purge_front() {
		if ( empty( $_SERVER[ 'HTTP_REFERER' ] ) ) {
			exit( 'no referer' );
		}

		self::purge_url( $_SERVER[ 'HTTP_REFERER' ] );

		wp_redirect( $_SERVER[ 'HTTP_REFERER' ] );
		exit();
	}

	/**
	 * Alerts LiteSpeed Web Server to purge the front page.
	 *
	 * @since    1.0.3
	 * @since  	 2.2 	Access changed from public to private, renamed from `_purge_front`
	 * @access   private
	 */
	private function _purge_frontpage() {
		$this->_add( Tag::TYPE_FRONTPAGE );
		if ( LITESPEED_SERVER_TYPE !== 'LITESPEED_SERVER_OLS' ) {
			$this->_add_private( Tag::TYPE_FRONTPAGE );
		}

		$msg = __( 'Notified LiteSpeed Web Server to purge the front page.', 'litespeed-cache' );
		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
	}

	/**
	 * Alerts LiteSpeed Web Server to purge pages.
	 *
	 * @since    1.0.15
	 * @access   private
	 */
	private function _purge_pages() {
		$this->_add( Tag::TYPE_PAGES );

		$msg = __( 'Notified LiteSpeed Web Server to purge all pages.', 'litespeed-cache' );
		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
	}

	/**
	 * Alerts LiteSpeed Web Server to purge error pages.
	 *
	 * @since    1.0.14
	 * @access   private
	 */
	private function _purge_error( $type = false ) {
		$this->_add( Tag::TYPE_HTTP );

		if ( ! $type || ! in_array( $type, array( '403', '404', '500' ) ) ) {
			return;
		}

		$this->_add( Tag::TYPE_HTTP . $type );

		$msg = __( 'Notified LiteSpeed Web Server to purge error pages.', 'litespeed-cache' );
		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( $msg );
	}

	/**
	 * Callback to add purge tags if admin selects to purge selected category pages.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_cat( $value ) {
		$val = trim( $value );
		if ( empty( $val ) ) {
			return;
		}
		if ( preg_match( '/^[a-zA-Z0-9-]+$/', $val ) == 0 ) {
			Debug2::debug( "[Purge] $val cat invalid" );
			return;
		}
		$cat = get_category_by_slug( $val );
		if ( $cat == false ) {
			Debug2::debug( "[Purge] $val cat not existed/published" );
			return;
		}

		self::add( Tag::TYPE_ARCHIVE_TERM . $cat->term_id );

		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( sprintf( __( 'Purge category %s', 'litespeed-cache' ), $val ) );
	}


	/**
	 * Callback to add purge tags if admin selects to purge selected tag pages.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function purge_tag( $val ) {
		$val = trim( $val );
		if ( empty( $val ) ) {
			return;
		}
		if ( preg_match( '/^[a-zA-Z0-9-]+$/', $val ) == 0 ) {
			Debug2::debug( "[Purge] $val tag invalid" );
			return;
		}
		$term = get_term_by( 'slug', $val, 'post_tag' );
		if ( $term == 0 ) {
			Debug2::debug( "[Purge] $val tag not exist" );
			return;
		}

		self::add( Tag::TYPE_ARCHIVE_TERM . $term->term_id );

		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( sprintf( __( 'Purge tag %s', 'litespeed-cache' ), $val ) );
	}

	/**
	 * Callback to add purge tags if admin selects to purge selected urls.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public static function purge_url( $url ) {
		$val = trim( $url );
		if ( empty( $val ) ) {
			return;
		}

		if ( strpos( $val, '<' ) !== false ) {
			Debug2::debug( "[Purge] $val url contains <" );
			return;
		}

		$val = Utility::make_relative( $val );

		$hash = Tag::get_uri_tag( $val );

		if ( $hash === false ) {
			Debug2::debug( "[Purge] $val url invalid" );
			return;
		}

		self::add( $hash );

		! defined( 'LITESPEED_PURGE_SILENT' ) && Admin_Display::succeed( sprintf( __( 'Purge url %s', 'litespeed-cache' ), $val ) );
	}

	/**
	 * Purge a list of pages when selected by admin. This method will look at the post arguments to determine how and what to purge.
	 *
	 * @since 1.0.7
	 * @access public
	 */
	public function purge_list() {
		if ( ! isset($_REQUEST[Admin_Display::PURGEBYOPT_SELECT]) || ! isset($_REQUEST[Admin_Display::PURGEBYOPT_LIST]) ) {
			return;
		}
		$sel = $_REQUEST[Admin_Display::PURGEBYOPT_SELECT];
		$list_buf = $_REQUEST[Admin_Display::PURGEBYOPT_LIST];
		if ( empty($list_buf) ) {
			return;
		}
		$list_buf = str_replace(",", "\n", $list_buf);// for cli
		$list = explode("\n", $list_buf);
		switch($sel) {
			case Admin_Display::PURGEBY_CAT:
				$cb = 'purge_cat';
				break;
			case Admin_Display::PURGEBY_PID:
				$cb = 'purge_post';
				break;
			case Admin_Display::PURGEBY_TAG:
				$cb = 'purge_tag';
				break;
			case Admin_Display::PURGEBY_URL:
				$cb = 'purge_url';
				break;

			default:
				return;
		}
		array_map( __CLASS__ . "::$cb", $list );

		// for redirection
		$_GET[ Admin_Display::PURGEBYOPT_SELECT ] = $sel;
	}

	/**
	 * Purge ESI
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge_esi( $tag ) {
		self::add( Tag::TYPE_ESI . $tag );
	}

	/**
	 * Purge a certain post type
	 *
	 * @since 3.0
	 * @access public
	 */
	public static function purge_posttype( $post_type ) {
		self::add( Tag::TYPE_ARCHIVE_POSTTYPE . $post_type );
		self::add( $post_type );
	}

	/**
	 * Purge all related tags to a post.
	 *
	 * @since 1.0.0
	 * @access public
	 */
	public static function purge_post( $pid ) {
		$pid = intval( $pid );
		// ignore the status we don't care
		if ( ! $pid || ! in_array( get_post_status( $pid ), array( 'publish', 'trash', 'private', 'draft' ) ) ) {
			return;
		}

		$purge_tags = self::get_instance()->_get_purge_tags_by_post( $pid );
		if ( ! $purge_tags ) {
			return;
		}

		self::add( $purge_tags );
		if ( Conf::val( Base::O_CACHE_REST ) ) {
			self::add( Tag::TYPE_REST );
		}

		Control::set_stale();
	}

	/**
	 * Hooked to the load-widgets.php action.
	 * Attempts to purge a single widget from cache.
	 * If no widget id is passed in, the method will attempt to find the widget id.
	 *
	 * @since 1.1.3
	 * @access public
	 */
	public static function purge_widget( $widget_id = null ) {
		if ( is_null($widget_id) ) {
			$widget_id = $_POST['widget-id'];
			if ( is_null($widget_id) ) {
				return;
			}
		}
		self::add(Tag::TYPE_WIDGET . $widget_id);
		self::add_private(Tag::TYPE_WIDGET . $widget_id);
	}

	/**
	 * Hooked to the wp_update_comment_count action.
	 * Purges the comment widget when the count is updated.
	 *
	 * @access public
	 * @since 1.1.3
	 * @global type $wp_widget_factory
	 */
	public static function purge_comment_widget() {
		global $wp_widget_factory;
		$recent_comments = $wp_widget_factory->widgets['WP_Widget_Recent_Comments'];
		if ( !is_null($recent_comments) ) {
			self::add(Tag::TYPE_WIDGET . $recent_comments->id);
			self::add_private(Tag::TYPE_WIDGET . $recent_comments->id);
		}
	}

	/**
	 * Purges feeds on comment count update.
	 *
	 * @since 1.0.9
	 * @access public
	 */
	public static function purge_feeds() {
		if ( Conf::val(Base::O_CACHE_TTL_FEED) > 0 ) {
			self::add(Tag::TYPE_FEED);
		}
	}

	/**
	 * Purges all private cache entries when the user logs out.
	 *
	 * @access public
	 * @since 1.1.3
	 */
	public static function purge_on_logout() {
		self::add_private('*');
	}

	/**
	 * Generate all purge tags before output
	 *
	 * @access private
	 * @since 1.1.3
	 */
	private function _finalize() {
		// Make sure header output only run once
		if ( ! defined( 'LITESPEED_DID_' . __FUNCTION__ ) ) {
			define( 'LITESPEED_DID_' . __FUNCTION__, true );
		}
		else {
			return;
		}

		do_action('litespeed_purge_finalize');

		// Append unique uri purge tags if Admin QS is `PURGESINGLE`
		if ( $this->_purge_single ) {
			$this->_pub_purge[] = Tag::build_uri_tag(); // TODO: add private tag too
		}
		// Append related purge tags if Admin QS is `PURGE`
		if ( $this->_purge_related ) {
			// Before this, tags need to be finalized
			$tags_related = Tag::output_tags();
			// NOTE: need to remove the empty item `B1_` to avoid purging all
			$tags_related = array_filter($tags_related);
			if ( $tags_related ) {
				$this->_pub_purge = array_merge($this->_pub_purge, $tags_related);
			}
		}

		if ( ! empty($this->_pub_purge) ) {
			$this->_pub_purge = array_unique($this->_pub_purge);
		}

		if ( ! empty($this->_priv_purge) ) {
			$this->_priv_purge = array_unique($this->_priv_purge);
		}
	}

	/**
	 * Gathers all the purge headers.
	 *
	 * This will collect all site wide purge tags as well as third party plugin defined purge tags.
	 *
	 * @since 1.1.0
	 * @access public
	 * @return string the built purge header
	 */
	public static function output() {
		$instance = self::get_instance();

		$instance->_finalize();

		return $instance->_build();
	}

	/**
	 * Build the current purge headers.
	 *
	 * @since 1.1.5
	 * @access private
	 * @return string the built purge header
	 */
	private function _build() {
		if ( empty( $this->_pub_purge ) && empty( $this->_priv_purge ) ) {
			return;
		}

		$purge_header = '';
		$private_prefix = self::X_HEADER . ': private,';

		if ( ! empty( $this->_pub_purge ) ) {
			$public_tags = $this->_append_prefix( $this->_pub_purge );
			if ( empty( $public_tags ) ) {
				// If this ends up empty, private will also end up empty
				return;
			}
			$purge_header = self::X_HEADER . ': public,';
			if ( Control::is_stale() ) {
				$purge_header .= 'stale,';
			}
			$purge_header .= implode( ',', $public_tags );
			$private_prefix = ';private,';
		}

		// Handle priv purge tags
		if ( ! empty( $this->_priv_purge ) ) {
			$private_tags = $this->_append_prefix( $this->_priv_purge, true );
			$purge_header .= $private_prefix . implode( ',', $private_tags );
		}

		return $purge_header;
	}

	/**
	 * Append prefix to an array of purge headers
	 *
	 * @since 1.1.0
	 * @access private
	 */
	private function _append_prefix( $purge_tags, $is_private = false ) {
		$curr_bid = is_multisite() ? get_current_blog_id() : '';

		if ( ! in_array( '*', $purge_tags ) ) {
			$tags = array();
			foreach ( $purge_tags as $val ) {
				$tags[] = LSWCP_TAG_PREFIX . $curr_bid . '_' . $val;
			}
			return $tags;
		}

		// Purge All need to check if need to reset crawler or not
		if ( ! $is_private && Conf::val( Base::O_CRAWLER ) ) {
			Crawler::get_instance()->reset_pos();
		}

		if ( defined( 'LSWCP_EMPTYCACHE' ) || $is_private ) {
			return array( '*' );
		}

		// Would only use multisite and network admin except is_network_admin is false for ajax calls, which is used by wordpress updates v4.6+
		if ( is_multisite() && (is_network_admin() || (
				Router::is_ajax() && (check_ajax_referer('updates', false, false) || check_ajax_referer('litespeed-purgeall-network', false, false))
				)) ) {
			$blogs = Activation::get_network_ids();
			if ( empty($blogs) ) {
				Debug2::debug('[Purge] build_purge_headers: blog list is empty');
				return '';
			}
			$tags = array();
			foreach ($blogs as $blog_id) {
				$tags[] = LSWCP_TAG_PREFIX . $blog_id . '_';
			}
			return $tags;
		}
		else {
			return array(LSWCP_TAG_PREFIX . $curr_bid . '_');
		}
	}

	/**
	 * Gets all the purge tags correlated with the post about to be purged.
	 *
	 * If the purge all pages configuration is set, all pages will be purged.
	 *
	 * This includes site wide post types (e.g. front page) as well as any third party plugin specific post tags.
	 *
	 * @since 1.0.0
	 * @access private
	 */
	private function _get_purge_tags_by_post( $post_id ) {
		// If this is a valid post we want to purge the post, the home page and any associated tags & cats
		// If not, purge everything on the site.

		$purge_tags = array();
		$config = Conf::get_instance();

		if ( Conf::val( Base::O_PURGE_POST_ALL ) ) {
			// ignore the rest if purge all
			return array( '*' );
		}

		// now do API hook action for post purge
		do_action('litespeed_api_purge_post', $post_id);

		// post
		$purge_tags[] = Tag::TYPE_POST . $post_id;
		$purge_tags[] = Tag::get_uri_tag(wp_make_link_relative(get_permalink($post_id)));

		// for archive of categories|tags|custom tax
		global $post;
		$original_post = $post;
		$post = get_post($post_id);
		$post_type = $post->post_type;

		global $wp_widget_factory;
		$recent_posts = $wp_widget_factory->widgets['WP_Widget_Recent_Posts'];
		if ( ! is_null($recent_posts) ) {
			$purge_tags[] = Tag::TYPE_WIDGET . $recent_posts->id;
		}

		// get adjacent posts id as related post tag
		if( $post_type == 'post' ){
			$prev_post = get_previous_post();
			$next_post = get_next_post();
			if( ! empty($prev_post->ID) ) {
				$purge_tags[] = Tag::TYPE_POST . $prev_post->ID;
				Debug2::debug('--------purge_tags prev is: '.$prev_post->ID);
			}
			if( ! empty($next_post->ID) ) {
				$purge_tags[] = Tag::TYPE_POST . $next_post->ID;
				Debug2::debug('--------purge_tags next is: '.$next_post->ID);
			}
		}

		if ( Conf::val( Base::O_PURGE_POST_TERM ) ) {
			$taxonomies = get_object_taxonomies($post_type);
			//Debug2::debug('purge by post, check tax = ' . var_export($taxonomies, true));
			foreach ( $taxonomies as $tax ) {
				$terms = get_the_terms($post_id, $tax);
				if ( ! empty($terms) ) {
					foreach ( $terms as $term ) {
						$purge_tags[] = Tag::TYPE_ARCHIVE_TERM . $term->term_id;
					}
				}
			}
		}

		if ( Conf::val( Base::O_CACHE_TTL_FEED ) ) {
			$purge_tags[] = Tag::TYPE_FEED;
		}

		// author, for author posts and feed list
		if ( Conf::val( Base::O_PURGE_POST_AUTHOR) ) {
			$purge_tags[] = Tag::TYPE_AUTHOR . get_post_field('post_author', $post_id);
		}

		// archive and feed of post type
		// todo: check if type contains space
		if ( Conf::val( Base::O_PURGE_POST_POSTTYPE) ) {
			if ( get_post_type_archive_link($post_type) ) {
				$purge_tags[] = Tag::TYPE_ARCHIVE_POSTTYPE . $post_type;
				$purge_tags[] = $post_type;
			}
		}

		if ( Conf::val( Base::O_PURGE_POST_FRONTPAGE) ) {
			$purge_tags[] = Tag::TYPE_FRONTPAGE;
		}

		if ( Conf::val( Base::O_PURGE_POST_HOMEPAGE) ) {
			$purge_tags[] = Tag::TYPE_HOME;
		}

		if ( Conf::val( Base::O_PURGE_POST_PAGES) ) {
			$purge_tags[] = Tag::TYPE_PAGES;
		}

		if ( Conf::val( Base::O_PURGE_POST_PAGES_WITH_RECENT_POSTS) ) {
			$purge_tags[] = Tag::TYPE_PAGES_WITH_RECENT_POSTS;
		}

		// if configured to have archived by date
		$date = $post->post_date;
		$date = strtotime($date);

		if ( Conf::val( Base::O_PURGE_POST_DATE) ) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Ymd', $date);
		}

		if ( Conf::val( Base::O_PURGE_POST_MONTH) ) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Ym', $date);
		}

		if ( Conf::val( Base::O_PURGE_POST_YEAR) ) {
			$purge_tags[] = Tag::TYPE_ARCHIVE_DATE . date('Y', $date);
		}

		// Set back to original post as $post_id might affecting the global $post value
		$post = $original_post;

		return array_unique($purge_tags);
	}

	/**
	 * The dummy filter for purge all
	 *
	 * @since 1.1.5
	 * @access public
	 * @param string $val The filter value
	 * @return string     The filter value
	 */
	public static function filter_with_purge_all( $val ) {
		self::purge_all();
		return $val;
	}
}
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

?>

	<!-- build_setting_mobile_view start -->
	<tr>
		<th>
			<?php $id = Base::O_CACHE_MOBILE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php
				$this->build_switch( $id );
			?>
			<div class="litespeed-desc">
				<?php echo __( 'Cache mobile views separately.', 'litespeed-cache' ); ?>
				<?php echo __( 'Only enable for AMP or mobile-specific design/content, not for responsive sites.', 'litespeed-cache' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_CACHE_MOBILE_RULES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
		<?php
			// if set, use value as input value
			if ( Conf::val( Base::O_CACHE_MOBILE ) ) {

				// if enabled, check the setting in file
				if ( defined( 'LITESPEED_ON' ) ) {

					try {
						$mobile_agents = Htaccess::get_instance()->current_mobile_agents();
						if ( $mobile_agents !== Utility::arr2regex( Conf::val( $id ), true ) ) {
							echo '<div class="litespeed-callout notice notice-error inline"><p>'
									. __( 'Htaccess did not match configuration option.', 'litespeed-cache' )
									. ' ' . sprintf( __( 'Htaccess rule is: %s', 'litespeed-cache' ), '<code>' . $mobile_agents . '</code>' )
								. '</p></div>';
						}
					} catch( \Exception $e ) {
						echo '<div class="litespeed-callout notice notice-error inline"><p>' . $e->getMessage() . '</p></div>';
					}

				}
			} ?>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 40 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php Doc::one_per_line(); ?>

				<?php $this->_validate_syntax( $id ); ?>

				<?php if ( Conf::val( Base::O_CACHE_MOBILE ) && ! Conf::val( $id ) ) : ?>
				<font class="litespeed-warning">
					❌
					<?php echo sprintf( __( 'If %1$s is %2$s, then %3$s must be populated!', 'litespeed-cache' ), '<code>' . __('Cache Mobile', 'litespeed-cache') . '</code>', '<code>' . __('ON', 'litespeed-cache') . '</code>', '<code>' . __('List of Mobile User Agents', 'litespeed-cache') . '</code>' ); ?>
				</font>
				<?php endif; ?>
			</div>
		</td>
	</tr>
	<!-- build_setting_mobile_view end --><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.browser.tpl.php';
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_COOKIES ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), __( 'cookies', 'litespeed-cache') ) ; ?>
				<?php Doc::one_per_line() ; ?>
				<?php $this->_validate_syntax( $id ) ; ?>
				<br /><?php Doc::notice_htaccess() ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Exclude Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

<?php
	// Cookie
	require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_cookies.tpl.php';

	// User Agent
	require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_useragent.tpl.php';
?>

</tbody></table>

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<!-- build_setting_purge_on_upgrade -->
	<tr>
		<th>
			<?php $id = Base::O_PURGE_ON_UPGRADE ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'When enabled, the cache will automatically purge when any plugin, theme or the WordPress core is upgraded.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

global $pagenow;
if ( $pagenow != 'options-general.php' ) {
	return;
}
?>
	<div class="litespeed-callout notice notice-success inline">

		<h4><?php echo __( 'NOTE', 'litespeed-cache' ); ?></h4>

		<p>
			<?php echo sprintf( __( 'More settings available under %s menu', 'litespeed-cache' ), '<code>' . __( 'LiteSpeed Cache', 'litespeed-cache' ) . '</code>' ); ?>
		</p>

	</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Cache Control Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th><?php echo __( 'Network Enable Cache', 'litespeed-cache' ); ?></th>
		<td>
			<?php $this->build_switch( Base::O_CACHE ); ?>
			<div class="litespeed-desc">
				<?php echo __('Enabling LiteSpeed Cache for WordPress here enables the cache for the network.', 'litespeed-cache'); ?><br />
				<?php echo __('It is <b>STRONGLY</b> recommend that the compatibility with other plugins on a single/few sites is tested first.', 'litespeed-cache'); ?>
				<?php echo __('This is to ensure compatibility prior to enabling the cache for all sites.', 'litespeed-cache'); ?>
			</div>
		</td>
	</tr>

<?php
require LSCWP_DIR . 'tpl/cache/settings_inc.cache_favicon.tpl.php';
require LSCWP_DIR . 'tpl/cache/settings_inc.cache_resources.tpl.php';
require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php';
require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php';
?>

</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>
<h3 class="litespeed-title-short">
	<?php echo __( 'Browser Cache Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#browser-tab' ); ?>
</h3>

<?php if ( LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS' ) : ?>
<div class="litespeed-callout notice notice-warning inline">
	<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php echo __( 'OpenLiteSpeed users please check this', 'litespeed-cache' ); ?>:
	<?php Doc::learn_more( 'https://openlitespeed.org/kb/how-to-set-up-custom-headers/', __( 'Setting Up Custom Headers', 'litespeed-cache' ) ); ?></p>
</div>
<?php endif; ?>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CACHE_BROWSER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Browser caching stores static files locally in the user\'s browser. Turn on this setting to reduce repeated requests for static files.', 'litespeed-cache' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
				<br /><?php echo sprintf( __( 'You can turn on browser caching in server admin too. <a %s>Learn more about LiteSpeed browser cache settings</a>.', 'litespeed-cache' ), 'href="https://docs.litespeedtech.com/lscache/lscwp/cache/#how-to-set-it-up" target="_blank"' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_BROWSER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo __( 'The amount of time, in seconds, that files will be stored in browser cache before expiring.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 30 ); ?>
			</div>
		</td>
	</tr>
</tbody></table><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Purge Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

<?php
	require LSCWP_DIR . 'tpl/cache/settings_inc.purge_on_upgrade.tpl.php';
?>

</tbody></table>

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;


$lang_enabled = '<font class="litespeed-success">' . __( 'Enabled', 'litespeed-cache' ) . '</font>' ;
$lang_disabled = '<font class="litespeed-warning">' . __( 'Disabled', 'litespeed-cache' ) . '</font>' ;

$mem_enabled = class_exists( 'Memcached' ) ? $lang_enabled : $lang_disabled ;
$redis_enabled = class_exists( 'Redis' ) ? $lang_enabled : $lang_disabled ;

$mem_conn = Object_Cache::get_instance()->test_connection() ;
if ( $mem_conn === null ) {
	$mem_conn_desc = '<font class="litespeed-desc">' . __( 'Not Available', 'litespeed-cache' ) . '</font>' ;
}
elseif ( $mem_conn ) {
	$mem_conn_desc = '<font class="litespeed-success">' . __( 'Passed', 'litespeed-cache' ) . '</font>' ;
}
else {
	$mem_conn_desc = '<font class="litespeed-warning">' . __( 'Failed', 'litespeed-cache' ) . '</font>' ;
}

?>


<h3 class="litespeed-title-short">
	<?php echo __( 'Object Cache Settings', 'litespeed-cache' ) ; ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#object-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use object cache functionality.', 'litespeed-cache' ) ; ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#memcached-lsmcd-and-redis-object-cache-support-in-lscwp' ); ?>
			</div>
			<div class="litespeed-block">

				<div class='litespeed-col-auto'>
					<h4><?php echo __( 'Status', 'litespeed-cache' ) ; ?></h4>
				</div>
				<div class='litespeed-col-auto'>
					<?php echo sprintf( __( '%s Extension', 'litespeed-cache' ), 'Memcached' ) ; ?>: <?php echo $mem_enabled ; ?><br />
					<?php echo sprintf( __( '%s Extension', 'litespeed-cache' ), 'Redis' ) ; ?>: <?php echo $redis_enabled ; ?><br />
					<?php echo __( 'Connection Test', 'litespeed-cache' ) ; ?>: <?php echo $mem_conn_desc ; ?>
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#how-to-debug' ); ?>
				</div>

			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_KIND ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( 'Memcached', 'Redis' ) ); ?>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_HOST; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Your %s Hostname or IP address.', 'litespeed-cache' ), 'Memcached/<a href="https://docs.litespeedtech.com/products/lsmcd/" target="_blank">LSMCD</a>/Redis' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_PORT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short2' ) ; ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Default port for %1$s is %2$s.', 'litespeed-cache' ), 'Memcached', '<code>11211</code>' ) ; ?>
				<?php echo sprintf( __( 'Default port for %1$s is %2$s.', 'litespeed-cache' ), 'Redis', '<code>6379</code>' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_LIFE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short2' ) ; ?> <?php echo __( 'seconds', 'litespeed-cache' ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Default TTL for cached objects.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_USER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Only available when %s is installed.', 'litespeed-cache' ), 'SASL' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_PSWD; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the password used when connecting.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_DB_ID; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Database to be used', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_GLOBAL_GROUPS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 30 ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Groups cached at the network level.', 'litespeed-cache' ) ; ?>
				<?php Doc::one_per_line() ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_NON_PERSISTENT_GROUPS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 30 ) ; ?>
			<div class="litespeed-desc">
				<?php Doc::one_per_line() ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_PERSISTENT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use keep-alive connections to speed up cache operations.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_ADMIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Improve wp-admin speed through caching. (May encounter expired data)', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OBJECT_TRANSIENTS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Save transients in database when %1$s is %2$s.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OBJECT_ADMIN ) . '</code>', '<code>' . __( 'OFF', 'litespeed-cache' ) . '</code>' ) ; ?>
				<br />
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#store-transients' ); ?>
			</div>
		</td>
	</tr>


</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.object.tpl.php';
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'TTL', 'litespeed-cache' ) ; ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#ttl-tab' ); ?>
</h3>


<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_PUB ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __('Specify how long, in seconds, public pages are cached.', 'litespeed-cache'); ?>
				<?php $this->recommended( $id ) ; ?>
				<?php $this->_validate_ttl( $id, 30 ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_PRIV ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, private pages are cached.', 'litespeed-cache' ) ; ?>
				<?php $this->recommended( $id ) ; ?>
				<?php $this->_validate_ttl( $id, 60, 3600 ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_FRONTPAGE ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, the front page is cached.', 'litespeed-cache' ) ; ?>
				<?php $this->recommended( $id ) ; ?>
				<?php $this->_validate_ttl( $id, 30 ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_FEED ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, feeds are cached.', 'litespeed-cache' ) ; ?>
				<?php echo __( 'If this is set to a number less than 30, feeds will not be cached.', 'litespeed-cache' ) ; ?>
				<?php $this->recommended( $id ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_REST ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_input( $id ) ; ?> <?php $this->readable_seconds() ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, REST calls are cached.', 'litespeed-cache' ) ; ?>
				<?php echo __( 'If this is set to a number less than 30, feeds will not be cached.', 'litespeed-cache' ) ; ?>
				<?php $this->recommended( $id ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_TTL_STATUS ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 30 ) ; ?>
				</div>
				<div>
					<?php $this->recommended( $id ) ; ?>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php echo __( 'Specify an HTTP status code and the number of seconds to cache that page, separated by a space.', 'litespeed-cache' ) ; ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menuArr = array(
	'cache' 	=> __( 'Cache', 'litespeed-cache' ),
	'purge' 	=> __( 'Purge', 'litespeed-cache' ),
	'excludes' 	=> __( 'Excludes', 'litespeed-cache' ),
	'object' 	=> __( 'Object', 'litespeed-cache' ),
	'browser'	=> __( 'Browser', 'litespeed-cache' ),
	'advanced' 	=> __( 'Advanced', 'litespeed-cache' ),
);

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __('LiteSpeed Cache Network Cache Settings', 'litespeed-cache'); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		foreach ($menuArr as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '';
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
	?>
	</h2>
	<div class="litespeed-body">
		<?php $this->cache_disabled_warning(); ?>

		<?php
		$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );

		// include all tpl for faster UE
		foreach ($menuArr as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>";
			require LSCWP_DIR . "tpl/cache/network_settings-$tab.tpl.php";
			echo "</div>";
		}

		$this->form_end( true );

		?>
	</div>
</div>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_USERAGENTS ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
		<?php $this->build_textarea( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), __( 'user agents', 'litespeed-cache') ) ; ?>
				<?php Doc::one_per_line() ; ?>
				<?php $this->_validate_syntax( $id ) ; ?>
				<br /><?php Doc::notice_htaccess() ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Advanced Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#advanced-tab' ); ?>
</h3>

<div class="litespeed-callout notice notice-warning inline">
	<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php echo __( 'These settings are meant for ADVANCED USERS ONLY.', 'litespeed-cache' ); ?></p>
</div>

<table class="wp-list-table striped litespeed-table"><tbody>

	<?php
		if ( ! $this->_is_multisite ) :
			require LSCWP_DIR . 'tpl/cache/settings_inc.login_cookie.tpl.php';
		endif;
	?>

	<tr>
		<th>
			<?php $id = Base::O_UTIL_NO_HTTPS_VARY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Enable this option if you are using both HTTP and HTTPS in the same domain and are noticing cache irregularities.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#improve-httphttps-compatibility' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_UTIL_INSTANT_CLICK; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'When a vistor hovers over a page link, preload that page. This will speed up the visit to that link.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#instant-click' ); ?>
				<br /><font class="litespeed-danger">
					⚠️
					<?php echo __( 'This will generate extra requests to the server, which will increase server load.', 'litespeed-cache' ); ?>
				</font>

			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'ESI Settings', 'litespeed-cache' ) ; ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#esi-tab' ); ?>
</h3>

<div class="litespeed-description">
	<p><?php echo __( 'With ESI (Edge Side Includes), pages may be served from cache for logged-in users.', 'litespeed-cache' ) ; ?></p>
	<p><?php echo __( 'ESI allows you to designate parts of your dynamic page as separate fragments that are then assembled together to make the whole page. In other words, ESI lets you “punch holes” in a page, and then fill those holes with content that may be cached privately, cached publicly with its own TTL, or not cached at all.', 'litespeed-cache' ) ; ?>
		<?php Doc::learn_more( 'https://blog.litespeedtech.com/2017/08/30/wpw-private-cache-vs-public-cache/', __( 'WpW: Private Cache vs. Public Cache', 'litespeed-cache' ) ); ?>
	</p>
	<p>
		💡:
		<?php echo __( 'You can turn shortcodes into ESI blocks.', 'litespeed-cache' ) ; ?>
		<?php echo sprintf(
			__( 'Replace %1$s with %2$s.', 'litespeed-cache' ),
			'<code>[shortcodeA att1="val1" att2="val2"]</code>',
			'<code>[esi shortcodeA att1="val1" att2="val2"]</code>'
		) ; ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/admin/#turning-wordpress-shortcodes-into-esi-blocks' ); ?>
	</p>
	<p>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/api/#generate-esi-block-url', __( 'ESI sample for developers', 'litespeed-cache' ) ); ?>
	</p>
</div>

<div class="litespeed-relative">

<?php if ( ! LSWCP_ESI_SUPPORT && ! Conf::val( Base::O_CDN_QUIC ) ) : ?>
	<div class="litespeed-callout-danger">
		<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>
		<h4><?php echo __( 'These options are only available with LiteSpeed Enterprise Web Server or QUIC.cloud CDN.', 'litespeed-cache' ); ?></h4>
	</div>
<?php endif; ?>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_ESI ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn ON to cache public pages for logged in users, and serve the Admin Bar and Comment Form via ESI blocks. These two blocks will be uncached unless enabled below.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_ESI_CACHE_ADMBAR ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __(' Cache the built-in Admin Bar ESI block.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_ESI_CACHE_COMMFORM ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'Cache the built-in Comment Form ESI block.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_ESI_NONCE ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<div class="litespeed-row-flex">
				<div class="">
					<?php $this->build_textarea( $id ) ; ?>
				</div>
				<div class="litespeed-width-3-10">
					<p class="litespeed-desc">
						<?php echo __( 'The list will be merged with the predefined nonces in your local data file.', 'litespeed-cache' ); ?>
						<?php echo __( 'The latest data file is', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/master/data/esi.nonces.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/master/data/esi.nonces.txt</a>
						<br /><font class="litespeed-success">
							<?php echo __( 'API', 'litespeed-cache' ); ?>:
							<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_esi_nonces</code>' ); ?>
						</font>
					</p>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php echo __( 'The above nonces will be converted to ESI automatically.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
				<br /><?php echo __( 'An optional second parameter may be used to specify cache control. Use a space to separate', 'litespeed-cache' ); ?>: <code>my_nonce_action private</code>
			</div>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ), '<code>*</code>', '<code>nonce_formid_1</code>', '<code>nonce_formid_3</code>', '<code>nonce_formid_*</code>' ) ; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_VARY_GROUP ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<table class="litespeed-vary-table wp-list-table striped litespeed-table form-table"><tbody>
			<?php foreach ( $roles as $role => $title ): ?>
				<tr>
					<td class='litespeed-vary-title'><?php echo $title ; ?></td>
					<td class='litespeed-vary-val'>
					<?php
						$this->build_input(
							$id . '[' . $role . ']',
							'litespeed-input-short',
							Vary::get_instance()->in_vary_group( $role )
						) ;
					?>
					</td>
				</tr>
			<?php endforeach; ?>
			</tbody></table>
			<div class="litespeed-desc">
				<?php echo __( 'If your site contains public content that certain user roles can see but other roles cannot, you can specify a Vary Group for those user roles. For example, specifying an administrator vary group allows there to be a separate publicly-cached page tailored to administrators (with “edit” links, etc), while all other user roles see the default public page.', 'litespeed-cache' ) ; ?>
			</div>
		</td>
	</tr>

</tbody></table>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Purge Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-tab' ); ?>
</h3>

<?php
$option_list = array(
	Base::O_PURGE_POST_ALL => __( 'All pages', 'litespeed-cache' ),
	Base::O_PURGE_POST_FRONTPAGE => __( 'Front page', 'litespeed-cache' ),
	Base::O_PURGE_POST_HOMEPAGE => __( 'Home page', 'litespeed-cache' ),
	Base::O_PURGE_POST_PAGES => __( 'Pages', 'litespeed-cache' ),

	Base::O_PURGE_POST_PAGES_WITH_RECENT_POSTS => __( 'All pages with Recent Posts Widget', 'litespeed-cache' ),

	Base::O_PURGE_POST_AUTHOR => __( 'Author archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_POSTTYPE => __( 'Post type archive', 'litespeed-cache' ),

	Base::O_PURGE_POST_YEAR => __( 'Yearly archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_MONTH => __( 'Monthly archive', 'litespeed-cache' ),
	Base::O_PURGE_POST_DATE => __( 'Daily archive', 'litespeed-cache' ),

	Base::O_PURGE_POST_TERM => __( 'Term archive (include category, tag, and tax)', 'litespeed-cache' ),
);

// break line at these ids
$break_arr = array(
	Base::O_PURGE_POST_PAGES,
	Base::O_PURGE_POST_PAGES_WITH_RECENT_POSTS,
	Base::O_PURGE_POST_POSTTYPE,
	Base::O_PURGE_POST_DATE,
);

?>

<table class="wp-list-table striped litespeed-table"><tbody>

	<?php if ( ! $this->_is_multisite ) : ?>
		<?php require LSCWP_DIR . 'tpl/cache/settings_inc.purge_on_upgrade.tpl.php'; ?>
	<?php endif; ?>

	<tr>
		<th><?php echo __( 'Auto Purge Rules For Publish/Update', 'litespeed-cache' ); ?></th>
		<td>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php echo __( 'Select "All" if there are dynamic widgets linked to posts on pages other than the front or home pages.', 'litespeed-cache' ); ?><br />
					<?php echo __( 'Other checkboxes will be ignored.', 'litespeed-cache' ); ?><br />
					<?php echo __( 'Select only the archive types that are currently used, the others can be left unchecked.', 'litespeed-cache' ); ?>
				</p>
			</div>
			<div class="litespeed-top20">
				<div class="litespeed-tick-wrapper">
					<?php
						foreach ( $option_list as $id => $title ) {

							$this->build_checkbox( $id, $title );

							if ( in_array( $id, $break_arr ) ) {
								echo '</div><div class="litespeed-tick-wrapper litespeed-top10">';
							}
						}
					?>
				</div>
			</div>
			<div class="litespeed-desc">
				<?php echo __( 'Select which pages will be automatically purged when posts are published/updated.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_PURGE_STALE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'If ON, the stale copy of a cached page will be shown to visitors until a new cache copy is available. Reduces the server load for following visits. If OFF, the page will be dynamically generated while visitors wait.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#serve-stale' ); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php echo __( 'By design, this option may serve stale content. Do not enable this option, if that is not OK with you.', 'litespeed-cache' ); ?><br />
				</p>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_PURGE_TIMED_URLS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 80 ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'The URLs here (one per line) will be purged automatically at the time set in the option "%s".', 'litespeed-cache' ), __( 'Scheduled Purge Time', 'litespeed-cache' ) ); ?><br />
				<?php echo sprintf( __( 'Both %1$s and %2$s are acceptable.', 'litespeed-cache' ), '<code>http://www.example.com/path/url.php</code>', '<code>/path/url.php</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ), '<code>*</code>', '<code>/path/u-1.html</code>', '<code>/path/u-2.html</code>', '<code>/path/u-*.html</code>' ); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'Note', 'litespeed-cache' ); ?></h4>
				<p>
					<?php echo __( 'For URLs with wildcards, there may be a delay in initiating scheduled purge.', 'litespeed-cache' ); ?><br />
					<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#scheduled-purge-urls' ); ?>
				</p>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_PURGE_TIMED_URLS_TIME; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, null, null, 'time' ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify the time to purge the "%s" list.', 'litespeed-cache' ), __( 'Scheduled Purge URLs', 'litespeed-cache' ) ); ?>
				<?php echo sprintf( __( 'Current server time is %s.', 'litespeed-cache' ), '<code>' . date( 'H:i:s' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_PURGE_HOOK_ALL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 50 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'A Purge All will be executed when WordPress runs these hooks.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#purge-all-hooks' ); ?>
			</div>
		</td>
	</tr>


</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'cache' 	=> __( 'Cache', 'litespeed-cache' ),
	'ttl' 		=> __( 'TTL', 'litespeed-cache' ),
	'purge' 	=> __( 'Purge', 'litespeed-cache' ),
	'excludes' 	=> __( 'Excludes', 'litespeed-cache' ),
	'esi' 		=> __( 'ESI', 'litespeed-cache' ),
);

if ( ! $this->_is_multisite ) {
	$menu_list[ 'object' ] = __( 'Object', 'litespeed-cache' );
	$menu_list[ 'browser' ] = __( 'Browser', 'litespeed-cache' );
}

$menu_list[ 'advanced' ] = __( 'Advanced', 'litespeed-cache' );

/**
 * Generate rules for setting usage
 * @since 1.6.2
 */
global $wp_roles;
if ( !isset( $wp_roles ) ) {
	$wp_roles = new \WP_Roles();
}

$roles = array();
foreach ( $wp_roles->roles as $k => $v ) {
	$roles[ $k ] = $v[ 'name' ];
}
ksort( $roles );

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __('LiteSpeed Cache Settings', 'litespeed-cache'); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>
<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		$accesskey_set = array();
		foreach ( $menu_list as $tab => $val ) {
			$accesskey = '';
			if ( $i <= 9 ) {
				$accesskey = "litespeed-accesskey='$i'";
			}
			else {
				$tmp = strtoupper( substr( $tab, 0, 1 ) );
				if ( ! in_array( $tmp, $accesskey_set ) ) {
					$accesskey_set[] = $tmp;
					$accesskey = "litespeed-accesskey='$tmp'";
				}
			}

			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
		do_action( 'litespeed_settings_tab', 'cache' );
	?>
	</h2>

	<div class="litespeed-body">
		<?php $this->cache_disabled_warning(); ?>

	<?php
	$this->form_action();

	require LSCWP_DIR . "tpl/inc/check_if_network_disable_all.php";
	require LSCWP_DIR . "tpl/cache/more_settings_tip.tpl.php";

	// include all tpl for faster UE
	foreach ( $menu_list as $tab => $val ) {
		echo "<div data-litespeed-layout='$tab'>";
		require LSCWP_DIR . "tpl/cache/settings-$tab.tpl.php";
		echo "</div>";
	}

	do_action( 'litespeed_settings_content', 'cache' );

	$this->form_end();

	?>
	</div>
</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Cache Control Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CACHE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php if ( $this->_is_multisite ) : ?>
				<?php $this->build_switch( $id, array( __( 'OFF', 'litespeed-cache' ), __( 'ON', 'litespeed-cache' ), __( 'Use Network Admin Setting', 'litespeed-cache' ) ) ); ?>
			<?php else : ?>
				<?php $this->build_switch( $id ); ?>
			<?php endif; ?>
			<div class="litespeed-desc">
				<?php echo sprintf(__('Please visit the <a %s>Information</a> page on how to test the cache.', 'litespeed-cache'),
					'href="https://docs.litespeedtech.com/lscache/lscwp/installation/#testing" target="_blank"'); ?>

				<strong><?php echo __('NOTICE', 'litespeed-cache'); ?>: </strong><?php echo __('When disabling the cache, all cached entries for this site will be purged.', 'litespeed-cache'); ?>

				<?php if ( $this->_is_multisite ): ?>
				<br><?php echo __('The network admin setting can be overridden here.', 'litespeed-cache'); ?>
				<?php endif; ?>

				<?php if ( ! Conf::val( Base::O_CACHE ) && Conf::val( Base::O_CDN_QUIC ) ): ?>
				<br><font class="litespeed-success"><?php echo __( 'With QUIC.cloud CDN enabled, you may still be seeing cache headers from your local server.', 'litespeed-cache' ); ?></font>
				<?php endif; ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_PRIV; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Privately cache frontend pages for logged-in users. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.1+' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_COMMENTER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Privately cache commenters that have pending comments. Disabling this option will serve non-cacheable pages to commenters. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.1+' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_REST; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Cache requests made by WordPress REST API calls.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_PAGE_LOGIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Disabling this option may negatively affect performance.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<?php
		if ( ! $this->_is_multisite ) :
			require LSCWP_DIR . 'tpl/cache/settings_inc.cache_favicon.tpl.php';
			require LSCWP_DIR . 'tpl/cache/settings_inc.cache_resources.tpl.php';
			require LSCWP_DIR . 'tpl/cache/settings_inc.cache_mobile.tpl.php';
		endif;
	?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_PRIV_URI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'URI Paths containing these strings will NOT be cached as public.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_FORCE_URI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Paths containing these strings will be cached regardless of no-cacheable settings.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
				<br /><?php echo __( 'To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache' ), '<code>/mypath/mypage 300</code>', 300, '<code>/mypath/mypage</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_FORCE_PUB_URI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Paths containing these strings will be forced to public cached regardless of no-cacheable settings.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
				<br /><?php echo __( 'To define a custom TTL for a URI, add a space followed by the TTL value to the end of the URI.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'For example, %1$s defines a TTL of %2$s seconds for %3$s.', 'litespeed-cache' ), '<code>/mypath/mypage 300</code>', 300, '<code>/mypath/mypage</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<?php
		if ( ! $this->_is_multisite ) :
			require LSCWP_DIR . 'tpl/cache/settings_inc.cache_dropquery.tpl.php';
		endif;
	?>

</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Advanced Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#advanced-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

<?php
	require LSCWP_DIR . 'tpl/cache/settings_inc.login_cookie.tpl.php';
?>

</tbody></table>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.object.tpl.php';
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_DROP_QS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 40 ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Ignore certain query strings when caching. (LSWS %s required)', 'litespeed-cache' ), 'v5.2.3+' ); ?>
				<?php echo sprintf( __( 'For example, to drop parameters beginning with %s, %s can be used here.', 'litespeed-cache' ), '<code>utm</code>', '<code>utm*</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#drop-query-string' ); ?>

				<br />
				<?php Doc::one_per_line(); ?>

				<br /><?php Doc::notice_htaccess() ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_LOGIN_COOKIE ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
		<?php
			$this->build_input( $id ) ;

			$this->_validate_syntax( $id ) ;

			echo '<p class="litespeed-desc">' . __('SYNTAX: alphanumeric and "_".', 'litespeed-cache')
				. ' ' . __('No spaces and case sensitive.', 'litespeed-cache')
				. ' ' . __('MUST BE UNIQUE FROM OTHER WEB APPLICATIONS.', 'litespeed-cache')
				. '</p>'
				. '<p class="litespeed-desc">'
					. sprintf(__('The default login cookie is %s.', 'litespeed-cache'), '<code>_lscache_vary</code>')
					. ' ' . __('The server will determine if the user is logged in based on the existance of this cookie.', 'litespeed-cache')
					. ' ' . __('This setting is useful for those that have multiple web applications for the same domain.', 'litespeed-cache')
					. ' ' . __('If every web application uses the same cookie, the server may confuse whether a user is logged in or not.', 'litespeed-cache')
					. ' ' . __('The cookie set here will be used for this WordPress installation.', 'litespeed-cache')
				. '</p>'
				. '<p class="litespeed-desc">'
					. __('Example use case:', 'litespeed-cache')
					. '<br />'
					. sprintf(__('There is a WordPress installed for %s.', 'litespeed-cache'), '<u>www.example.com</u>')
					. '<br />'
					. sprintf(__('Then another WordPress is installed (NOT MULTISITE) at %s', 'litespeed-cache'), '<u>www.example.com/blog/</u>')
					. ' ' . __('The cache needs to distinguish who is logged into which WordPress site in order to cache correctly.', 'litespeed-cache')
				. '<br />'
			; ?>
			<?php Doc::notice_htaccess() ;
				echo '</p>' ; ?>
			<?php

			if ( preg_match( '#[^\w\-]#', Conf::val( $id ) ) ) {
				echo '<div class="litespeed-callout notice notice-error inline"><p>❌ ' . __( 'Invalid login cookie. Invalid characters found.', 'litespeed-cache' ) . '</p></div>' ;
			}

			if ( defined( 'LITESPEED_ON' ) && Conf::val( $id ) ) {
				$cookie_rule = '';
				try {
					$cookie_rule = Htaccess::get_instance()->current_login_cookie() ;
				} catch ( \Exception $e ) {
					echo '<div class="litespeed-callout notice notice-error inline"><p>' . $e->getMessage() . '</p></div>' ;
				}

				$cookie_arr = explode( ',', $cookie_rule ) ;
				if ( ! in_array( Conf::val( $id ), $cookie_arr ) ) {
					echo '<div class="litespeed-callout notice notice-warning inline"><p>'
							. __( 'WARNING: The .htaccess login cookie and Database login cookie do not match.', 'litespeed-cache' )
						. '</p></div>'
					;
				}

			}

		?>
		</td>
	</tr>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

require LSCWP_DIR . 'tpl/cache/settings_inc.browser.tpl.php';
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_FAVICON ; ?>
			<?php $this->title( $id ) ; ?>
		</th>
		<td>
			<?php $this->build_switch( $id ) ; ?>
			<div class="litespeed-desc">
				<?php echo __( 'favicon.ico is requested on most pages.', 'litespeed-cache' ) ; ?>
				<?php echo __( 'Caching this resource may improve server performance by avoiding unnecessary PHP calls.', 'litespeed-cache' ) ; ?>
				<br /><?php Doc::notice_htaccess() ; ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

	<!-- build_setting_cache_resources -->
	<tr>
		<th>
			<?php $id = Base::O_CACHE_RES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Some themes and plugins add resources via a PHP request.', 'litespeed-cache' ); ?>
				<?php echo __( 'Caching these pages may improve server performance by avoiding unnecessary PHP calls.', 'litespeed-cache' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Exclude Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cache/#excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Paths containing these strings will not be cached.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_QS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Query strings containing these parameters will not be cached.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'For example, for %s, %s and %s can be used here.', 'litespeed-cache' ), '<code>?aa=bb&cc=dd</code>', '<code>aa</code>', '<code>cc</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_CAT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php
				$excludes_buf = '';
				if ( Conf::val( $id ) ) {
					$excludes_buf = implode( "\n", array_map( 'get_cat_name', Conf::val( $id ) ) );
				}
				$this->build_textarea( $id, false, $excludes_buf );
			?>
			<div class="litespeed-desc">
				<b><?php echo __( 'All categories are cached by default.', 'litespeed-cache' ); ?></b>
				<?php echo sprintf( __( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), __( 'categories', 'litespeed-cache') ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'NOTE', 'litespeed-cache' ); ?>:</h4>
				<ol>
					<li><?php echo __( 'If the category name is not found, the category will be removed from the list on save.', 'litespeed-cache' ); ?></li>
				</ol>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_TAG; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php
				$excludes_buf = '';
				if ( Conf::val( $id ) ) {
					$tag_names = array();
					foreach ( array_map( 'get_tag', Conf::val( $id ) ) as $tag ) {
						$tag_names[] = $tag->name;
					}
					if ( ! empty( $tag_names ) ) {
						$excludes_buf = implode( "\n", $tag_names );
					}
				}
				$this->build_textarea( $id, false, $excludes_buf );
			?>
			<div class="litespeed-desc">
				<b><?php echo __( 'All tags are cached by default.', 'litespeed-cache' ); ?></b>
				<?php echo sprintf( __( 'To prevent %s from being cached, enter them here.', 'litespeed-cache' ), __( 'tags', 'litespeed-cache') ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
			<div class="litespeed-callout notice notice-warning inline">
				<h4><?php echo __( 'NOTE', 'litespeed-cache' ); ?>:</h4>
				<ol>
					<li><?php echo __( 'If the tag slug is not found, the tag will be removed from the list on save.', 'litespeed-cache' ); ?></li>
					<li><?php echo sprintf( __( 'To exclude %1$s, insert %2$s.', 'litespeed-cache' ),
							'<code>http://www.example.com/tag/category/tag-slug/</code>',
							'<code>tag-slug</code>' ); ?></li>
				</ol>
			</div>
		</td>
	</tr>

	<?php
		if ( ! $this->_is_multisite ) :
			// Cookie
			require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_cookies.tpl.php';

			// User Agent
			require LSCWP_DIR . 'tpl/cache/settings_inc.exclude_useragent.tpl.php';

		endif;
	?>

	<tr>
		<th>
			<?php $id = Base::O_CACHE_EXC_ROLES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-desc">
				<?php echo __( 'Selected roles will be excluded from cache.', 'litespeed-cache' ); ?>
			</div>
			<div class="litespeed-tick-list">
				<?php foreach ( $roles as $role => $title ): ?>
					<?php $this->build_checkbox( $id . '[]', $title, Control::get_instance()->in_cache_exc_roles( $role ), $role ); ?>
				<?php endforeach; ?>
			</div>

		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Image Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<?php require LSCWP_DIR . 'tpl/img_optm/settings.media_webp.tpl.php'; ?>

</tbody></table>

<?php
$this->form_end( true );

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'summary'		=> __( 'Image Optimization Summary', 'litespeed-cache' ),
	'settings'		=> __( 'Image Optimization Settings', 'litespeed-cache' ),
) ;


if ( $this->_is_network_admin ) {
	$menu_list = array(
		'network_settings' => __( 'Image Optimization Settings', 'litespeed-cache' ),
	);
}


?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Image Optimization', 'litespeed-cache' ) ; ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER ; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1 ;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '' ;
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>" ;
			$i ++ ;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>" ;
			require LSCWP_DIR . "tpl/img_optm/$tab.tpl.php" ;
			echo "</div>" ;
		}

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_IMG_OPTM );
$usage_cloud = Cloud::get_summary( 'usage.' . Cloud::SVC_IMG_OPTM );
$allowance = Cloud::get_instance()->allowance( Cloud::SVC_IMG_OPTM );

$__img_optm = Img_Optm::get_instance();

$wet_limit = $__img_optm->wet_limit();
$img_count = $__img_optm->img_count();
$need_gather = $__img_optm->need_gather();

$optm_summary = Img_Optm::get_summary() ;

list( $last_run, $is_running ) = $__img_optm->cron_running( false ) ;

if ( ! empty( $img_count[ 'groups_all' ] ) ) {
	$gathered_percentage = 100 - floor( $img_count[ 'groups_not_gathered' ] * 100 / $img_count[ 'groups_all' ] ) ;
}
else {
	$gathered_percentage = 0 ;
}

if ( ! empty( $img_count[ 'imgs_gathered' ] ) ) {
	$finished_percentage = 100 - floor( $img_count[ 'img.' . Img_Optm::STATUS_RAW ] * 100 / $img_count[ 'imgs_gathered' ] ) ;
}
else {
	$finished_percentage = 0 ;
}

$unfinished_num = 0;
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ];
}
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ];
}
if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_ERR_FETCH ] ) ) {
	$unfinished_num += $img_count[ 'img.' . Img_Optm::STATUS_ERR_FETCH ];
}

?>
<div class="litespeed-flex-container litespeed-column-with-boxes">
	<div class="litespeed-width-7-10 litespeed-image-optim-summary-wrapper">
		<div class="litespeed-image-optim-summary">

			<h3>
				<?php if ( $closest_server ) : ?>
					<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_IMG_OPTM ) ) ; ?>" class="litespeed-info-button" data-balloon-pos="right" data-balloon-break aria-label="<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10; Click to redetect.', 'litespeed-cache' ), $closest_server ) ; ?>" data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>"><span class="litespeed-quic-icon"></span></a>
				<?php else : ?>
					<span class="litespeed-quic-icon"></span>
				<?php endif ; ?>
				<?php echo __('Optimize images with our QUIC.cloud server', 'litespeed-cache' );?>
				<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-summary-tab" target="_blank" class="litespeed-right litespeed-learn-more"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
			</h3>

			<p>
				<?php echo sprintf( __( 'You can request a maximum of %s images at once.', 'litespeed-cache' ), '<strong>' . $allowance . '</strong>' ) ; ?>
			</p>

			<?php if ( $wet_limit ) : ?>
			<p class="litespeed-desc">
				<?php echo __( 'To make sure our server can communicate with your server without any issues and everything works fine, for the few first requests the number of images allowed in a single request is limited.' ) ; ?>
				<?php echo __( 'Current limit is', 'litespeed-cache' ) . ': <strong>' . $wet_limit . '</strong>'; ?>
			</p>
			<?php endif; ?>

			<div class="litespeed-img-optim-actions">
				<a data-litespeed-onlyonce class="button button-primary"
					<?php if ( ! empty( $img_count[ 'groups_not_gathered' ] ) || ! empty( $img_count[ 'img.' . Img_Optm::STATUS_RAW ] ) ) : ?>
						href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_NEW_REQ ) ; ?>"
					<?php else : ?>
						href='javascript:;' disabled
					<?php endif ; ?>
					>
					<span class="dashicons dashicons-images-alt2"></span>&nbsp;<?php echo $need_gather ? __( 'Gather Image Data', 'litespeed-cache' ) : __( 'Send Optimization Request', 'litespeed-cache' ) ; ?>
				</a>

				<a data-litespeed-onlyonce class="button button-secondary" data-balloon-length="large" data-balloon-pos="right" aria-label="<?php echo __( 'Only press the button if the pull cron job is disabled.', 'litespeed-cache' ) ; ?> <?php echo __( 'Images will be pulled automatically if the cron job is running.', 'litespeed-cache' ) ; ?>"
					<?php if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ] ) && ! $is_running ) : ?>
						href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_PULL ) ; ?>"
					<?php else : ?>
						href='javascript:;' disabled
					<?php endif ; ?>
					>
					<?php echo __( 'Pull Images', 'litespeed-cache' ) ; ?>
				</a>
			</div>

			<div>
				<h3 class="litespeed-title-section">
					<?php echo __( 'Optimization Status', 'litespeed-cache' ) ; ?>
					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_RAW ] ) ) : ?>
						<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#optimization-summary" target="_blank" class="litespeed-learn-more"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
					<?php endif; ?>
				</h3>

				<div class="litespeed-light-code">

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo Lang::img_status( Img_Optm::STATUS_REQUESTED ); ?>:
							<code>
								<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ; ?>
								(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ], 'image' ) ; ?>)
							</code>
						</p>
						<p class="litespeed-desc">
							<?php echo __( 'After the QUIC.cloud Image Optimization server finishes optimization, it will notify your site to pull the optimized images.', 'litespeed-cache' ) ; ?>
							<?php echo __( 'This process is automatic.', 'litespeed-cache' ) ; ?>
						</p>
					<?php endif ; ?>

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo Lang::img_status( Img_Optm::STATUS_NOTIFIED ); ?>:
							<code>
								<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ; ?>
								(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ], 'image' ) ; ?>)
							</code>

						</p>
						<?php if ( $last_run ) : ?>
							<p class="litespeed-desc">
								<?php echo sprintf( __( 'Last pull initiated by cron at %s.', 'litespeed-cache' ), '<code>' . Utility::readable_time( $last_run ) . '</code>' ) ; ?>
							</p>
						<?php endif ; ?>
					<?php endif ; ?>

					<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_PULLED ] ) ) : ?>
						<p class="litespeed-success">
							<?php echo Lang::img_status( Img_Optm::STATUS_PULLED ); ?>:
							<code>
								<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_PULLED ] ) ; ?>
								(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_PULLED ], 'image' ) ; ?>)
							</code>
						</p>
					<?php endif ; ?>

					<div class="litespeed-silence">
						<?php
							$list = array(
								Img_Optm::STATUS_ERR_FETCH,
								Img_Optm::STATUS_ERR_404,
								Img_Optm::STATUS_ERR_OPTM,
								Img_Optm::STATUS_ERR,
								Img_Optm::STATUS_MISS,
								Img_Optm::STATUS_DUPLICATED,
								Img_Optm::STATUS_XMETA,
							);
						?>
						<?php foreach ( $list as $v ): ?>
							<?php if ( empty( $img_count[ 'group.' . $v ] ) ) continue; ?>
							<p>
								<?php echo Lang::img_status( $v ); ?>:
								<code>
									<?php echo Admin_Display::print_plural( $img_count[ 'group.' . $v ] ); ?>
									(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . $v ], 'image' ); ?>)
								</code>
							</p>
						<?php endforeach; ?>
					</div>

					<p><?php echo sprintf(
							'<a href="%1$s" class="button button-secondary" data-balloon-pos="right" aria-label="%2$s" %3$s><span class="dashicons dashicons-editor-removeformatting"></span>&nbsp;%4$s</a>',
							($unfinished_num ? Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CLEAN ) : 'javascript:;'),
							__( 'Remove all previous unfinished image optimization requests.', 'litespeed-cache' ),
							($unfinished_num ? '' : ' disabled'),
							__( 'Clean Up Unfinished Data', 'litespeed-cache' ) . ( $unfinished_num ? ': ' . Admin_Display::print_plural( $unfinished_num, 'image' ) : '')
						);
					?></p>

					<h3 class="litespeed-title-section">
						<?php echo __( 'Storage Optimization', 'litespeed-cache' ) ; ?>
					</h3>

					<p>
						<?php echo __( 'A backup of each image is saved before it is optimized.', 'litespeed-cache' ) ; ?>
					</p>


					<?php if ( ! empty( $optm_summary[ 'bk_summary' ] ) ) : ?>
						<div class="">
							<p>
								<?php echo __( 'Last calculated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $optm_summary[ 'bk_summary' ][ 'date' ] ) . '</code>' ; ?>
							</p>
							<?php if ( $optm_summary[ 'bk_summary' ][ 'count' ] ) : ?>
								<p>
									<?php echo __( 'Files', 'litespeed-cache' ) . ': <code>' . $optm_summary[ 'bk_summary' ][ 'count' ] . '</code>' ; ?>
								</p>
								<p>
									<?php echo __( 'Total', 'litespeed-cache' ) . ': <code>' . Utility::real_size( $optm_summary[ 'bk_summary' ][ 'sum' ] ) . '</code>' ; ?>
								</p>
							<?php endif ; ?>
						</div>
					<?php endif ; ?>

					<div>

						<a class="button button-secondary" data-balloon-pos="up" aria-label="<?php echo __( 'Calculate Original Image Storage', 'litespeed-cache' ) ; ?>"
							<?php if ( $finished_percentage > 0 ) : ?>
								href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_CALC_BKUP ) ; ?>"
							<?php else : ?>
								href='javascript:;' disabled
							<?php endif ; ?>
							>
								<span class="dashicons dashicons-update"></span> <?php echo __( 'Calculate Backups Disk Space', 'litespeed-cache' ) ; ?>
						</a>
					</div>

				</div>

				<div>
					<h4><?php echo __( 'Image Thumbnail Group Sizes', 'litespeed-cache' ) ; ?></h4>
					<div class="litespeed-desc litespeed-left20">
						<?php foreach ( Media::get_instance()->get_image_sizes() as $title => $size ) {
							echo "<div>$title ( " . ( $size[ 'width' ] ? $size[ 'width' ] . 'px' : '*' ) . ' x ' . ( $size[ 'height' ] ? $size[ 'height' ] . 'px' : '*' ) . ' )</div>';
						} ; ?>
					</div>

				</div>

				<hr class="litespeed-hr-with-space">
				<div>
					<h4><?php echo __( 'Delete all backups of the original images', 'litespeed-cache' ) ; ?></h4>
					<div class="notice notice-error litespeed-callout-bg inline">
						<p>
							🚨&nbsp;<?php echo __( 'This is irreversible.', 'litespeed-cache' ) ; ?>
							<?php echo __( 'You will be unable to Revert Optimization once the backups are deleted!', 'litespeed-cache' ) ; ?>
						</p>
					</div>

				</div>
				<?php if ( ! empty( $optm_summary[ 'rmbk_summary' ] ) ) : ?>
					<div class="">
					<p>
						<?php echo __( 'Last ran', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $optm_summary[ 'rmbk_summary' ][ 'date' ] ) . '</code>' ; ?>
					</p>
					<p>
						<?php echo __( 'Files', 'litespeed-cache' ) . ': <code>' . $optm_summary[ 'rmbk_summary' ][ 'count' ] . '</code>' ; ?>
					</p>
					<p>
						<?php echo __( 'Saved', 'litespeed-cache' ) . ': <code>' . Utility::real_size( $optm_summary[ 'rmbk_summary' ][ 'sum' ] ) . '</code>' ; ?>
					</p>
					</div>
				<?php endif ; ?>
				<div class="litespeed-image-optim-summary-footer"><a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RM_BKUP ) ; ?>" data-litespeed-cfm="<?php echo __( 'Are you sure you want to remove all image backups?', 'litespeed-cache' ) ; ?>" class="litespeed-link-with-icon litespeed-danger">
					<span class="dashicons dashicons-trash"></span><?php echo __( 'Remove Original Image Backups', 'litespeed-cache' ) ; ?>
				</a></div>
			</div>
		</div>
	</div>

	<div class="litespeed-width-3-10">
		<div class="postbox litespeed-postbox litespeed-postbox-imgopt-info">
			<div class="inside">

				<h3 class="litespeed-title">
					<?php echo __( 'Image Information', 'litespeed-cache' ) ; ?>
				</h3>

				<div class="litespeed-flex-container">
					<div class="litespeed-icon-vertical-middle">
						<?php echo GUI::pie( $gathered_percentage, 70, true ) ; ?>
					</div>
					<div>
						<p>
							<?php echo __( 'Images total', 'litespeed-cache') ; ?>:

							<code><?php echo Admin_Display::print_plural( $img_count[ 'groups_all' ] ) ; ?></code>

							<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#what-is-an-image-group" target="_blank" class="litespeed-desc litespeed-help-btn-icon" data-balloon-pos="up" aria-label="<?php echo __( 'What is a group?', 'litespeed-cache') ; ?>">
								<span class="dashicons dashicons-editor-help"></span>
								<span class="screen-reader-text"><?php echo __( 'What is an image group?', 'litespeed-cache' );?></span>
							</a>
						</p>
						<p>
							<?php if ( ! empty( $img_count[ 'groups_not_gathered' ] ) ) : ?>
								<?php echo __('Images not yet gathered', 'litespeed-cache') ; ?>:
								<code><?php echo Admin_Display::print_plural( $img_count[ 'groups_not_gathered' ] ) ; ?></code>
							<?php else : ?>
								<font class="litespeed-congratulate"><?php echo __('Congratulations, all gathered!', 'litespeed-cache') ; ?></font>
							<?php endif ; ?>
						</p>

					</div>
				</div>

				<div class="litespeed-flex-container">
					<div class="litespeed-icon-vertical-middle">
						<?php echo GUI::pie( $finished_percentage, 70, true ) ; ?>
					</div>
					<div>
						<p>
							<?php echo __( 'Images total', 'litespeed-cache') ; ?>:

							<code><?php echo Admin_Display::print_plural( $img_count[ 'imgs_gathered' ], 'image' ) ; ?></code>

							<a href="https://docs.litespeedtech.com/lscache/lscwp/imageopt/#what-is-an-image-group" target="_blank" class="litespeed-desc litespeed-help-btn-icon" data-balloon-pos="up" aria-label="<?php echo __( 'What is a group?', 'litespeed-cache') ; ?>">
								<span class="dashicons dashicons-editor-help"></span>
								<span class="screen-reader-text"><?php echo __( 'What is an image group?', 'litespeed-cache' );?></span>
							</a>
						</p>
						<p>
							<?php if ( ! empty( $img_count[ 'img.' . Img_Optm::STATUS_RAW ] ) ) : ?>
								<?php echo __('Images not yet requested', 'litespeed-cache') ; ?>:
								<code><?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_RAW ], 'image' ) ; ?></code>
							<?php else : ?>
								<font class="litespeed-congratulate"><?php echo __('Congratulations, all requested!', 'litespeed-cache') ; ?></font>
							<?php endif ; ?>
						</p>
					</div>
				</div>
			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
				<a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_RESCAN ) ; ?>" class="" data-balloon-pos="up" data-balloon-length="large" aria-label="<?php echo __( 'Scan for any new unoptimized image thumbnail sizes and resend necessary image optimization requests.', 'litespeed-cache' ) ; ?>">
					<?php echo __( 'Rescan New Thumbnails', 'litespeed-cache' ) ; ?>
				</a>
			</div>
		</div>

		<div class="postbox litespeed-postbox">
			<div class="inside">
				<h3 class="litespeed-title">
					<?php echo __( 'Optimization Summary', 'litespeed-cache' ) ; ?>
				</h3>
				<p>
					<?php echo __( 'Total Reduction', 'litespeed-cache' ) ; ?>: <code><?php echo isset( $optm_summary[ 'reduced' ] ) ? Utility::real_size( $optm_summary[ 'reduced' ] ) : '-'; ?></code>
				</p>
				<p>
					<?php echo __( 'Images Pulled', 'litespeed-cache' ) ; ?>: <code><?php echo isset( $optm_summary[ 'img_taken' ] ) ? $optm_summary[ 'img_taken' ] : '-'; ?></code>
				</p>
				<p>
					<?php echo __( 'Last Request', 'litespeed-cache' ) ; ?>: <code><?php echo isset( $optm_summary[ 'last_requested' ] ) ? Utility::readable_time( $optm_summary[ 'last_requested' ] ) : '-'; ?></code>
				</p>
			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact litespeed-desc">
				<?php echo sprintf( __( 'Results can be checked in <a %s>Media Library</a>.', 'litespeed-cache' ), 'href="upload.php?mode=list"' ) ; ?>
			</div>
		</div>

		<div class="postbox litespeed-postbox">
			<div class="inside">
				<h3 class="litespeed-title"><?php echo __('Optimization Tools', 'litespeed-cache') ; ?></h3>

				<p>
					<?php echo __( 'You can quickly switch between using original (unoptimized versions) and optimized image files. It will affect all images on your website, both regular and webp versions if available.', 'litespeed-cache' ) ; ?>
				</p>

				<div class="litespeed-links-group">
					<span>
						<a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_BATCH_SWITCH_ORI ) ; ?>" class="litespeed-link-with-icon" data-balloon-pos="up" aria-label="<?php echo __( 'Use original images (unoptimized) on your site', 'litespeed-cache' ) ; ?>">
							<span class="dashicons dashicons-undo"></span><?php echo __( 'Use Original Files', 'litespeed-cache' ) ; ?>
						</a>
					</span><span>
						<a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_BATCH_SWITCH_OPTM ) ; ?>" class="litespeed-link-with-icon litespeed-icon-right" data-balloon-pos="up" aria-label="<?php echo __( 'Switch back to using optimized images on your site', 'litespeed-cache' ) ; ?>">
							<?php echo __( 'Use Optimized Files', 'litespeed-cache' ) ; ?><span class="dashicons dashicons-redo"></span>
						</a>
					</span>
				</div>

			</div>
			<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">

				<p><a href="<?php echo Utility::build_url( Router::ACTION_IMG_OPTM, Img_Optm::TYPE_DESTROY ) ; ?>" class="litespeed-link-with-icon litespeed-danger" data-litespeed-cfm="<?php echo __( 'Are you sure to destroy all optimized images?', 'litespeed-cache' ) ; ?>" >
					<span class="dashicons dashicons-dismiss"></span><?php echo __( 'Destroy All Optimization Data', 'litespeed-cache' ) ; ?>
				</a></p>

				<div class="litespeed-desc">
					<?php echo __( 'Remove all previous image optimization requests/results, revert completed optimizations, and delete all optimization files.', 'litespeed-cache' ) ; ?>
				</div>
			</div>
		</div>
	</div>
</div>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Image Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#image-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_AUTO; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Automatically request optimization via cron job.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_CRON; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Disabling this will stop the cron job responsible for pulling optimized images back from QUIC.cloud Image Server.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_ORI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Optimize images and save backups of the originals in the same folder.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_RM_BKUP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Automatically remove the original image backups after fetching optimized images.', 'litespeed-cache' ); ?>

				<br /><font class="litespeed-danger">
					🚨
					<?php echo __( 'This is irreversible.', 'litespeed-cache' ); ?>
					<?php echo __( 'You will be unable to Revert Optimization once the backups are deleted!', 'litespeed-cache' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_LOSSLESS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Optimize images using lossless compression.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve quality but may result in larger images than lossy compression will.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_EXIF; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing.', 'litespeed-cache' ); ?>
				<?php echo __( 'This will increase the size of optimized files.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_WEBP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Request WebP versions of original images when doing optimization.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<?php
		if ( ! is_multisite() ) :
			// webp
			require LSCWP_DIR . 'tpl/img_optm/settings.media_webp.tpl.php';

		endif;
	?>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_WEBP_ATTR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 40 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Specify which element attributes will be replaced with WebP.', 'litespeed-cache' ); ?>
				<?php echo __( 'Only attributes listed here will be replaced.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( 'Use the format %1$s or %2$s (element is optional).', 'litespeed-cache' ), '<code>element.attribute</code>', '<code>.attribute</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_WEBP_REPLACE_SRCSET; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Enable replacement of WebP in %s elements that were generated outside of WordPress logic.', 'litespeed-cache' ), '<code>srcset</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/imageopt/#webp-for-extra-srcset' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_JPG_QUALITY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __('The image compression quality setting of WordPress out of 100.', 'litespeed-cache'); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 0, 100 ); ?>
			</div>
		</td>
	</tr>
</tbody></table>

<?php

$this->form_end();



<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

	<tr>
		<th>
			<?php $id = Base::O_IMG_OPTM_WEBP_REPLACE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Significantly improve load time by replacing images with their optimized %s versions.', 'litespeed-cache' ), '.webp' ); ?>
				<br /><?php Doc::notice_htaccess(); ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$_panels = array(
	'all' => array(
		'title'	=> __( 'Clean All', 'litespeed-cache' ),
		'desc'	=> '',
	),
	'revision' => array(
		'title'	=> __( 'Post Revisions', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all post revisions', 'litespeed-cache' ),
	),
	'auto_draft' => array(
		'title'	=> __( 'Auto Drafts', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all auto saved drafts', 'litespeed-cache' ),
	),
	'trash_post' => array(
		'title'	=> __( 'Trashed Posts', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all trashed posts and pages', 'litespeed-cache' ),
	),
	'spam_comment' => array(
		'title'	=> __( 'Spam Comments', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all spam comments', 'litespeed-cache' ),
	),
	'trash_comment' => array(
		'title'	=> __( 'Trashed Comments', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all trashed comments', 'litespeed-cache' ),
	),
	'trackback-pingback' => array(
		'title'	=> __( 'Trackbacks/Pingbacks', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all trackbacks and pingbacks', 'litespeed-cache' ),
	),
	'expired_transient' => array(
		'title'	=> __( 'Expired Transients', 'litespeed-cache' ),
		'desc'	=> __( 'Clean expired transient options', 'litespeed-cache' ),
	),
	'all_transients' => array(
		'title'	=> __( 'All Transients', 'litespeed-cache' ),
		'desc'	=> __( 'Clean all transient options', 'litespeed-cache' ),
	),
	'optimize_tables' => array(
		'title'	=> __( 'Optimize Tables', 'litespeed-cache' ),
		'desc'	=> __( 'Optimize all tables in your database', 'litespeed-cache' ),
	),
	'all_cssjs' => array(
		'title'	=> __( 'Clean CSS/JS Optimizer', 'litespeed-cache' ),
		'desc'	=> __( 'Purge all and clean all minified/combined CSS/JS data', 'litespeed-cache' ),
		'dismiss_count_icon' => true,
		'title_cls'	=> 'litespeed-warning',
	),
);

$rev_max = Conf::val( Base::O_DB_OPTM_REVISIONS_MAX );
$rev_age = Conf::val( Base::O_DB_OPTM_REVISIONS_AGE );
if ( $rev_max || $rev_age ) {
	$_panels[ 'revision' ][ 'desc' ] = sprintf( __( 'Clean revisions older than %1$s day(s), excluding %2$s latest revisions', 'litespeed-cache' ), '<strong>' . $rev_age . '</strong>' , '<strong>' . $rev_max . '</strong>' );
}

$total = 0;
foreach ( $_panels as $tag => $v ) {
	if ( $tag != 'all' ) {
		$_panels[ $tag ][ 'count' ] = DB_Optm::db_count( $tag );
		if ( ! in_array( $tag, array( 'all_cssjs', 'optimize_tables' ) ) ) {
			$total += $_panels[ $tag ][ 'count' ];
		}
	}
	$_panels[ $tag ][ 'link' ] = Utility::build_url( Router::ACTION_DB_OPTM, $tag );
}

$_panels[ 'all' ][ 'count' ] = $total;

$autoload_summary = DB_Optm::get_instance()->autoload_summary();

?>

<h3 class="litespeed-title">
	<?php echo __('Database Optimizer', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/database/' ); ?>
</h3>

<div class="litespeed-panel-wrapper litespeed-cards-wrapper">

<?php foreach ( $_panels as $tag => $v ): ?>

	<a href="<?php echo $v[ 'link' ]; ?>" class="litespeed-panel postbox">
		<section class="litespeed-panel-wrapper-icon">
			<span class="litespeed-panel-icon-<?php echo $tag; ?>"></span>
		</section>
		<section class="litespeed-panel-content">
			<div class="litespeed-h3 <?php if ( ! empty( $v[ 'title_cls' ] ) ) echo $v[ 'title_cls' ]; ?>">
				<?php echo $v[ 'title' ]; ?>
				<span class="litespeed-panel-counter<?php if ( $v[ 'count' ] > 0 && empty( $v[ 'dismiss_count_icon' ] ) ) echo '-red'; ?>">(<?php echo $v[ 'count' ]; ?><?php echo DB_Optm::hide_more() ? '+' : ''; ?>)</span>
			</div>
			<span class="litespeed-panel-para"><?php echo $v[ 'desc' ]; ?></span>
		</section>
		<?php if ( empty( $v[ 'dismiss_count_icon' ] ) ) : ?>
		<section class="litespeed-panel-wrapper-top-right">
			<span class="litespeed-panel-top-right-icon<?php echo $v[ 'count' ] > 0 ? '-cross' : '-tick'; ?>"></span>
		</section>
		<?php endif; ?>
	</a>
<?php endforeach; ?>

</div>

<h3 class="litespeed-title"><?php echo __( 'Database Table Engine Converter', 'litespeed-cache' ); ?></h3>

<div class="litespeed-panel-wrapper">

	<table class="wp-list-table widefat striped">
		<thead><tr >
			<th scope="col">#</th>
			<th scope="col"><?php echo __( 'Table', 'litespeed-cache' ); ?></th>
			<th scope="col"><?php echo __( 'Engine', 'litespeed-cache' ); ?></th>
			<th scope="col"><?php echo __( 'Tool', 'litespeed-cache' ); ?></th>
		</tr></thead>
		<tbody>
		<?php
			$list = DB_Optm::get_instance()->list_myisam();
			if ( $list ) :
				foreach ( $list as $k => $v ) :
		?>
				<tr>
					<td><?php echo $k + 1; ?></td>
					<td><?php echo $v->TABLE_NAME; ?></td>
					<td><?php echo $v->ENGINE; ?></td>
					<td>
						<a href="<?php echo Utility::build_url( Router::ACTION_DB_OPTM, DB_Optm::TYPE_CONV_TB, false, false, array( 'tb' => $v->TABLE_NAME ) ); ?>">
							<?php echo __( 'Convert to InnoDB', 'litespeed-cache' ); ?>
						</a>
					</td>
				</tr>
		<?php endforeach; ?>
		<?php else : ?>
			<tr>
				<td colspan="4" class="litespeed-success litespeed-text-center">
					<?php echo __( 'We are good. No table uses MyISAM engine.', 'litespeed-cache' ); ?>
				</td>
			</tr>
		<?php endif; ?>
		</tbody>
	</table>

</div>

<style type="text/css">
	.litespeed-body .field-col {
		display: inline-block;
		vertical-align: top;
		margin-left: 20px;
		margin-right: 20px;
	}
	.litespeed-body .field-col:first-child{
		margin-left:0;
	}
</style>

<h3 class="litespeed-title"><?php echo __( 'Database Summary', 'litespeed-cache' ); ?></h3>
<div>
	<div class="field-col">
		<p>
		Autoload size: <strong><?php echo Utility::real_size( $autoload_summary->autoload_size ); ?></strong></p>
		<p>Autoload entries: <strong><?php echo $autoload_summary->autload_entries; ?></strong></p>


	</div>

	<div class="field-col">
	<p>Autoload top list:</p>
		<table class="wp-list-table widefat striped litespeed-width-auto litespeed-table-compact">
			<thead><tr >
				<th scope="col">#</th>
				<th scope="col"><?php echo __('Option Name', 'litespeed-cache'); ?></th>
				<th scope="col"><?php echo __('Size', 'litespeed-cache'); ?></th>
			</tr></thead>
			<tbody>
				<?php foreach ( $autoload_summary->autoload_toplist as $k => $v ) : ?>
				<tr>
					<td><?php echo $k + 1; ?></td>
					<td><?php echo $v->option_name; ?></td>
					<td><?php echo $v->option_value_length; ?></td>
				</tr>
				<?php endforeach; ?>
			</tbody>
		</table>

	</div>
</div>






<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'manage'			=> __( 'Manage', 'litespeed-cache' ),
);

if ( ! $this->_is_network_admin ) {
	$menu_list[ 'settings' ] = __( 'DB Optimization Settings', 'litespeed-cache' );
}

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Database Optimization', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '';
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>";
			require LSCWP_DIR . "tpl/db_optm/$tab.tpl.php";
			echo "</div>";
		}

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>


<h3 class="litespeed-title-short">
	<?php echo __( 'DB Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/database/#db-optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_DB_OPTM_REVISIONS_MAX; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the number of most recent revisions to keep when cleaning revisions.', 'litespeed-cache' ); ?>
				<?php $this->_validate_ttl( $id, 1, 100, true ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DB_OPTM_REVISIONS_AGE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?> <?php echo __( 'Day(s)', 'litespeed-cache' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Revisions newer than this many days will be kept when cleaning revisions.', 'litespeed-cache' ); ?>
				<?php $this->_validate_ttl( $id, 1, 600, true ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php

$this->form_end();








<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$err = __('NOTICE: Database login cookie did not match your login cookie.', 'litespeed-cache') . ' '
	. __('If the login cookie was recently changed in the settings, please log out and back in.', 'litespeed-cache') . ' '
	. sprintf(__('If not, please verify the setting in the <a href="%1$s">Advanced tab</a>.', 'litespeed-cache'),
		admin_url('admin.php?page=litespeed-cache#advanced'));

if (LITESPEED_SERVER_TYPE === 'LITESPEED_SERVER_OLS') {
	$err .= ' ' . __('If using OpenLiteSpeed, the server must be restarted once for the changes to take effect.', 'litespeed-cache');
}

self::add_notice(self::NOTICE_YELLOW, $err);
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$err = __( 'Disable All Features', 'litespeed-cache' ) ;

// other plugin left cache expired rules in .htaccess which will cause conflicts
echo Admin_Display::build_notice( Admin_Display::NOTICE_RED, $err ) ;

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$api_key = Conf::val( Base::O_API_KEY ) ;

?>

<?php if ( ! $api_key ) : ?>
	<p class="litespeed-desc">
		<?php echo __( 'This will also generate an API key from LiteSpeed\'s Server.', 'litespeed-cache' ) ; ?>
	</p>
<?php endif ; ?>


</div>

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;


$err = sprintf( __( 'Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors to see old versions of pages due to the browser caching HTML pages. If you are sure that HTML pages are not being browser cached, this message can be dismissed. (<a %3$s>Learn More</a>)', 'litespeed-cache' ),
		'.htaccess',
		'`ExpiresDefault`',
		'href="https://docs.litespeedtech.com/lscache/lscwp/troubleshoot/#browser-displays-stale-content" target="_blank"'
);

// other plugin left cache expired rules in .htaccess which will cause conflicts
echo self::build_notice( self::NOTICE_YELLOW . ' lscwp-notice-ruleconflict', $err ) ;

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

// &#10030;&#10030;&#10030;&#10030;&#10030;
$stars = '<span class="wporg-ratings rating-stars"><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span><span class="dashicons dashicons-star-filled" style="color:#ffb900 !important;"></span></span>';
$rate_us = '<a href="https://wordpress.org/support/plugin/litespeed-cache/reviews/?filter=5#new-post" rel="noopener noreferer" target="_blank">'
				. sprintf( __( 'Rate %s on %s', 'litespeed-cache' ), '<strong>' . __( 'LiteSpeed Cache', 'litespeed-cache' ) . $stars . '</strong>', 'WordPress.org' )
			. '</a>' ;

$wiki = '<a href="https://docs.litespeedtech.com/lscache/lscwp/overview/" target="_blank">' . __( 'Read LiteSpeed Documentation', 'litespeed-cache' ) . '</a>' ;

$forum = '<a href="https://wordpress.org/support/plugin/litespeed-cache" target="_blank">' . __( 'Visit LSCWP support forum', 'litespeed-cache' ) . '</a>' ;

$community = '<a href="https://litespeedtech.com/slack" target="_blank">' . __( 'Join LiteSpeed Slack community', 'litespeed-cache' ) . '</a>' ;

// Change the footer text
if ( ! is_multisite() || is_network_admin() ) {
	$footer_text = $rate_us . ' | ' . $wiki . ' | ' . $forum . ' | ' . $community ;
}
else {
	$footer_text = $wiki . ' | ' . $forum . ' | ' . $community ;
}<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

if ( ! is_multisite() ) {
	return;
}

if ( get_current_blog_id() === BLOG_ID_CURRENT_SITE ) {
	return;
}

$site_options = $this->__cfg->load_site_options();
if ( empty( $site_options[ Base::NETWORK_O_USE_PRIMARY ] ) ) {
	return;
}
?>
		<div class="litespeed-callout notice notice-error inline">
			<h4><?php echo __( 'WARNING', 'litespeed-cache' ); ?></h4>
			<p>
				<?php echo __('The network admin selected use primary site configs for all subsites.', 'litespeed-cache'); ?>
				<?php echo __('The following options are selected, but are not editable in this settings page.', 'litespeed-cache'); ?>
			</p>
		</div>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>

<link rel="stylesheet" href="<?php echo LSWCP_PLUGIN_URL ; ?>assets/css/litespeed.css" />

<div class="litespeed litespeed-modal">

	<?php if ( $_progress ) : ?>
	<div class="litespeed-progress">
		<div class="litespeed-progress-bar" role="progressbar" style="width: <?php echo $_progress ; ?>%" aria-valuenow="<?php echo $_progress ; ?>" aria-valuemin="0" aria-valuemax="100"></div>
	</div>
	<?php endif ; ?>

	<div class="litespeed-wrap">
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$buf = '<h3>'. __('LiteSpeed Cache plugin is installed!', 'litespeed-cache'). '</h3>' . ' '
	. __('This message indicates that the plugin was installed by the server admin.', 'litespeed-cache') . ' '
	. __('The LiteSpeed Cache plugin is used to cache pages - a simple way to improve the performance of the site.', 'litespeed-cache') . ' '
	. __('However, there is no way of knowing all the possible customizations that were implemented.', 'litespeed-cache') . ' '
	. __('For that reason, please test the site to make sure everything still functions properly.', 'litespeed-cache')
	. '<br /><br />'
	. __('Examples of test cases include:', 'litespeed-cache')
	. '<ul>'
		. '<li>' . __('Visit the site while logged out.', 'litespeed-cache') . '</li>'
		. '<li>' . __('Create a post, make sure the front page is accurate.', 'litespeed-cache') . '</li>'
	. '</ul>'
	. sprintf(__('If there are any questions, the team is always happy to answer any questions on the <a %s>support forum</a>.', 'litespeed-cache'),
		'href="https://wordpress.org/support/plugin/litespeed-cache" rel="noopener noreferrer" target="_blank"')
	. '<br />'
	. __('If you would rather not move at litespeed, you can deactivate this plugin.', 'litespeed-cache');

self::add_notice(self::NOTICE_BLUE . ' lscwp-whm-notice', $buf);
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$reasons = array() ;

if ( ! defined( 'LITESPEED_ALLOWED' ) ) {
	if ( defined( 'LITESPEED_SERVER_TYPE' ) && LITESPEED_SERVER_TYPE == 'NONE' ) {
		$reasons[] = array(
			'title' => __( 'To use the caching functions you must have a LiteSpeed web server or be using QUIC.cloud CDN.', 'litespeed-cache' ),
			'link'	=> 'https://docs.litespeedtech.com/lscache/lscwp/faq/#why-do-the-cache-features-require-a-litespeed-server',
		) ;
	} else {
		$reasons[] = array(
			'title' => __( 'Please enable the LSCache Module at the server level, or ask your hosting provider.', 'litespeed-cache' ),
			'link'	=> 'https://docs.litespeedtech.com/lscache/lscwp/overview/#prerequisites',
		) ;
	}
}
elseif ( ! defined( 'LITESPEED_ON' ) ) {
	$reasons[] = array(
		'title' => __( 'Please enable LiteSpeed Cache in the plugin settings.', 'litespeed-cache' ) ,
		'link'	=> 'https://docs.litespeedtech.com/lscache/lscwp/cache/#enable-cache',
	) ;
}

if ( $reasons ) :
?>
	<div class="litespeed-callout notice notice-error inline">

		<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>

		<p>
			<?php echo __( 'LSCache caching functions on this page are currently unavailable!', 'litespeed-cache' ) ; ?>
		</p>

		<ul class="litespeed-list">
		<?php foreach ( $reasons as $v ) : ?>
			<li>
				<?php echo $v[ 'title' ] ; ?>

				<a href="<?php echo $v[ 'link' ] ; ?>" target="_blank" class="litespeed-learn-more"><?php echo __( 'Learn More', 'litespeed-cache' ) ; ?></a>
			</li>
		<?php endforeach ; ?>
		</ul>

	</div>
<?php endif ;
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

?>

<h3 class="litespeed-title-short">
	<?php echo __( 'General Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/' ); ?>
</h3>

<?php
$this->form_action( Router::ACTION_SAVE_SETTINGS_NETWORK );
?>

<table class="wp-list-table striped litespeed-table"><tbody>
	<?php require LSCWP_DIR . 'tpl/general/settings_inc.auto_upgrade.tpl.php'; ?>

	<tr>
		<th><?php echo __('Use Primary Site Configuration', 'litespeed-cache'); ?></th>
		<td>
			<?php $this->build_switch( Base::NETWORK_O_USE_PRIMARY ); ?>
			<div class="litespeed-desc">
				<?php echo __("Check this option to use the primary site's configuration for all subsites.", 'litespeed-cache'); ?>
				<?php echo __('This will disable the settings page on all subsites.', 'litespeed-cache'); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
$this->form_end( true );
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'settings'	=> __( 'General Settings', 'litespeed-cache' ),
);

if ( $this->_is_network_admin ) {
	$menu_list = array(
		'network_settings' => __( 'General Settings', 'litespeed-cache' ),
	);
}

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache General Settings', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '';
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php
		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>";
			require LSCWP_DIR . "tpl/general/$tab.tpl.php";
			echo "</div>";
		}
	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

	<!-- build_setting_auto_upgrade -->
	<tr>
		<th>
			<?php $id = Base::O_AUTO_UPGRADE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn this option ON to have LiteSpeed Cache updated automatically, whenever a new version is released. If OFF, update manually as usual.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$__cloud = Cloud::get_instance();

// This will drop QS param `qc_res` and `domain_hash` also
$__cloud->update_is_linked_status();

$cloud_summary = Cloud::get_summary();

$can_token = $__cloud->can_token();

$is_requesting = ! empty( $cloud_summary[ 'token_ts' ] ) && ( empty( $cloud_summary[ 'apikey_ts' ] ) || $cloud_summary[ 'token_ts' ] > $cloud_summary[ 'apikey_ts' ] );

$apply_btn_txt = __( 'Request Domain Key', 'litespeed-cache' );
if ( Conf::val( Base::O_API_KEY ) ) {
	$apply_btn_txt = __( 'Refresh Domain Key', 'litespeed-cache' );
	if ( $is_requesting ) {
		$apply_btn_txt = __( 'Waiting for Refresh', 'litespeed-cache' );
	}
}
elseif ( $is_requesting ) {
	$apply_btn_txt = __( 'Waiting for Approval', 'litespeed-cache' );
}

$apply_ts_txt = '';
if ( ! empty( $cloud_summary[ 'token_ts' ] ) ) {
	$apply_ts_txt .= ' ' . __( 'Requested', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $cloud_summary[ 'token_ts' ] ) . '</code>';
}
if ( ! empty( $cloud_summary[ 'apikey_ts' ] ) ) {
	$apply_ts_txt .= ' ' . __( 'Approved', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $cloud_summary[ 'apikey_ts' ] ) . '</code>';
}
if ( ! $can_token ) {
	$next_available_req = $cloud_summary[ 'token_ts' ] + Cloud::EXPIRATION_TOKEN - time();
	$apply_ts_txt .= ' ' . sprintf( __( 'Next available request time: <code>After %s</code>', 'litespeed-cache' ), Utility::readable_time( $next_available_req, 0, true ) );
}

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'General Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/general/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<?php if ( ! $this->_is_multisite ) : ?>
		<?php require LSCWP_DIR . 'tpl/general/settings_inc.auto_upgrade.tpl.php'; ?>
	<?php endif; ?>

	<tr>
		<th>
			<?php $id = Base::O_API_KEY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php if ( ! $is_requesting || $can_token ) : ?>
				<?php $this->build_input( $id ); ?>
			<?php else: ?>
				<?php $this->build_input( $id, null, null, 'text', true ); ?>
			<?php endif; ?>

			<?php if ( $can_token ) : ?>
				<?php Doc::learn_more( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_GEN_KEY ), $apply_btn_txt, true, 'button litespeed-btn-success' ); ?>
			<?php else: ?>
				<?php Doc::learn_more( 'javascript:;', $apply_btn_txt, true, 'button disabled' ); ?>
			<?php endif; ?>
			<?php if ( $apply_ts_txt ) : ?>
				<span class="litespeed-desc"><?php echo $apply_ts_txt; ?></span>
			<?php endif; ?>

			<?php if ( ! empty( $cloud_summary[ 'is_linked' ] ) ) : ?>
				<?php Doc::learn_more( Cloud::CLOUD_SERVER_DASH, __( 'Visit My Dashboard on QUIC.cloud', 'litespeed-cache' ), false, 'button litespeed-btn-success litespeed-right' ); ?>
			<?php elseif ( $__cloud->can_link_qc() ) : ?>
				<?php Doc::learn_more( Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_LINK ), __( 'Link to QUIC.cloud', 'litespeed-cache' ), true, 'button litespeed-btn-warning litespeed-right' ); ?>
			<?php else: ?>
				<?php Doc::learn_more( 'javascript:;', __( 'Link to QUIC.cloud', 'litespeed-cache' ), true, 'button disabled litespeed-btn-warning litespeed-right' ); ?>
			<?php endif; ?>

			<?php if ( $is_requesting && $can_token ) : ?>
				<div class="litespeed-callout notice notice-error inline">
					<h4><?php echo __( 'Notice', 'litespeed-cache' ); ?>:</h4>
					<p><?php echo sprintf( __( 'There was a problem with retrieving your Domain Key. Please click the %s button to retry.', 'litespeed-cache' ), '<code>' . $apply_btn_txt . '</code>' ); ?></p>
					<p><?php echo __( 'There are two reasons why we might not be able to communicate with your domain:', 'litespeed-cache' ); ?>:</p>
					<p>1) <?php echo sprintf( __( 'The POST callback to %s failed.', 'litespeed-cache' ), '<code>' . home_url() . '/' . ( function_exists( 'rest_get_url_prefix' ) ? rest_get_url_prefix() : apply_filters( 'rest_url_prefix', 'wp-json' ) ) . '/litespeed/v1/token</code>' ); ?> </p>
					<p>2) <?php echo sprintf( __( 'Our %s was not whitelisted.', 'litespeed-cache' ), __( 'Current Online Server IPs', 'litespeed-cache' ) ); ?></p>
					<p><?php echo __( 'Please verify that your other plugins are not blocking REST API calls, whitelist our server IPs, or contact your server admin for assistance.', 'litespeed-cache' ); ?>:</p>
				</div>
			<?php endif; ?>

			<?php if ( $is_requesting ) : ?>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php echo __( 'Notice', 'litespeed-cache' ); ?>:</h4>
					<p><?php echo __( 'Request submitted. Please wait, then refresh the page to see approval notification.', 'litespeed-cache' ); ?></p>
				</div>
			<?php endif; ?>

			<?php if ( ! Conf::val( Base::O_API_KEY ) ) : ?>
				<div class="litespeed-callout notice notice-error inline">
					<h4><?php echo __( 'Warning', 'litespeed-cache' ); ?>:</h4>
					<p><?php echo sprintf( __( 'You must have %1$s first before linking to QUIC.cloud.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_API_KEY ) . '</code>' ); ?></p>
				</div>
			<?php elseif ( empty( $cloud_summary[ 'is_linked' ] ) ) : ?>
				<div class="litespeed-callout notice notice-warning inline">
					<h4><?php echo __( 'Notice', 'litespeed-cache' ); ?>:</h4>
					<p><?php echo sprintf( __( 'You must click the %s button if you wish to associate this site with a QUIC.cloud account.', 'litespeed-cache' ), '<code>' . __( 'Link to QUIC.cloud', 'litespeed-cache' ) . '</code>' ); ?></p>
					<p><?php Doc::learn_more( 'https://www.quic.cloud/faq/#do-i-need-to-register-on-quic-cloud-to-use-the-online-services', __( 'Benefits of linking to a QUIC.cloud account', 'litespeed-cache' ) ); ?></p>
				</div>
			<?php endif; ?>

			<div class="litespeed-desc">
				<?php echo __( 'A Domain Key is required for QUIC.cloud online services.', 'litespeed-cache' ); ?>
				<br /><?php Doc::notice_ips(); ?>
				<div class="litespeed-callout notice notice-success inline">
					<h4><?php echo __( 'Current Cloud Nodes in Service','litespeed-cache' ); ?>
						<a class="litespeed-right" href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_CLEAR_CLOUD ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo __( 'Click to clear all nodes for further redetection.', 'litespeed-cache' ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to clear all cloud nodes?', 'litespeed-cache' ); ?>"><i class='litespeed-quic-icon'></i></a>
					</h4>
					<p>
						<?php
						$has_service = false;
						foreach ( Cloud::$SERVICES as $svc ) {
							if ( isset( $cloud_summary[ 'server.' . $svc ] ) ) {
								$has_service = true;
								echo '<p><b>Service:</b> <code>' . $svc . '</code> <b>Node:</b> <code>' . $cloud_summary[ 'server.' . $svc ] . '</code> <b>Connected Date:</b> <code>' . Utility::readable_time( $cloud_summary[ 'server_date.' . $svc ] ) . '</code></p>';
							}
						}
						if ( ! $has_service ) {
							echo __( 'No cloud services currently in use', 'litespeed-cache' );
						}
						?>
					</p>
				</div>

			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_SERVER_IP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Enter this site\'s IP address to allow cloud services directly call IP instead of domain name. This eliminates the overhead of DNS and CDN lookups.', 'litespeed-cache' ); ?>
				<br /><?php echo __('Your server IP is', 'litespeed-cache'); ?>: <code id='litespeed_server_ip'>-</code> <a href="javascript:;" class="button button-link" id="litespeed_get_ip"><?php echo __('Check my public IP from', 'litespeed-cache'); ?> DoAPI.us</a>
				<font class="litespeed-warning litespeed-left10">
					⚠️ <?php echo __( 'Notice', 'litespeed-cache' ); ?>: <?php echo __( 'the auto-detected IP may not be accurate if you have an additional outgoing IP set, or you have multiple IPs configured on your server. Please make sure this IP is the correct one for visiting your site.', 'litespeed-cache' ); ?>
				</font>

				<?php $this->_validate_ip( $id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_NEWS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn this option ON to show latest news automatically, including hotfixes, new releases, available beta versions, and promotions.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
$this->form_end();

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$readonly = Htaccess::get_instance()->writable() ? '' : 'readonly';

$content = null;
try {
	$content = Htaccess::get_instance()->htaccess_read();
} catch( \Exception $e ) {
	echo '<div class="notice notice-error is-dismissible"><p>'. $e->getMessage() . '</p></div>';
}


$htaccess_path = Htaccess::get_frontend_htaccess();

// Check if there is `ExpiresDefault` in .htaccess
if ( defined( 'LITESPEED_ON' ) ) {
	if ( $content && stripos( $content, "\nExpiresDefault" ) !== false ) {
		$is_dismissed = GUI::get_option( self::DB_DISMISS_MSG );
		if ( $is_dismissed !== self::RULECONFLICT_DISMISSED ) {
			// Need to add a notice for browser cache compatibility
			if ( $is_dismissed !== self::RULECONFLICT_ON ) {
				GUI::update_option( self::DB_DISMISS_MSG, self::RULECONFLICT_ON );
			}
			require_once LSCWP_DIR . 'tpl/inc/show_rule_conflict.php';
		}
	}
	// don't dismiss the msg automatically
	// elseif ( $is_dismissed === Cache_Admin_Display::RULECONFLICT_ON ) {
	// 	update_option( self::DISMISS_MSG, Cache_Admin_Display::RULECONFLICT_DISMISSED );
	// }
}


?>

<h3 class="litespeed-title">
	<?php echo __('LiteSpeed Cache Edit .htaccess', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#edit-htaccess-tab' ); ?>
</h3>

<div class="litespeed-callout notice notice-error inline">
	<h4>🚨 <?php echo __('This page is meant for advanced users.', 'litespeed-cache'); ?></h4>
	<p>
		<?php echo __('Any changes made to the .htaccess file may break the site.', 'litespeed-cache'); ?>
		<?php echo __('Please consult the host/server admin before making any changes.', 'litespeed-cache'); ?>
	</p>
</div>

<?php $this->form_action( $this->_is_network_admin ? Router::ACTION_SAVE_SETTINGS_NETWORK : false ); ?>

<h3 class="litespeed-title-short">
	<?php echo __( '.htaccess Path Settings', 'litespeed-cache' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_MISC_HTACCESS_FRONT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-long' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the frontend .htaccess path.', 'litespeed-cache' ); ?>
				<?php echo __( 'Leave empty to auto detect', 'litespeed-cache' ); ?>: <code><?php echo Htaccess::get_frontend_htaccess( true ); ?></code>
				<?php $this->_validate_htaccess_path( $id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HTACCESS_BACK; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-long' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the backend .htaccess path.', 'litespeed-cache' ); ?>
				<?php echo __( 'Leave empty to auto detect', 'litespeed-cache' ); ?>: <code><?php echo Htaccess::get_backend_htaccess( true ); ?></code>
				<?php $this->_validate_htaccess_path( $id ); ?>
			</div>
		</td>
	</tr>
</tbody></table>

<?php $this->form_end( $this->_is_network_admin ); ?>

<?php if ( defined( 'DISALLOW_FILE_EDIT' ) && DISALLOW_FILE_EDIT ) : ?>
<div class="litespeed-h3"><?php echo __('File editing is disabled in configuration.', 'litespeed-cache'); ?></div>

<?php elseif( $content !== null ) : ?>

<?php $this->form_action( Router::ACTION_SAVE_HTACCESS ); ?>

	<h3 class="litespeed-title"><?php echo sprintf(__('Current %s Contents', 'litespeed-cache'), '.htaccess'); ?></h3>

	<p><span class="attention"><?php echo sprintf(__('DO NOT EDIT ANYTHING WITHIN %s', 'litespeed-cache'), '<code>' . Htaccess::LS_MODULE_DONOTEDIT . '</code>' ); ?></span></p>

	<h4><?php echo $htaccess_path; ?></h4>

	<textarea name="<?php echo Htaccess::EDITOR_TEXTAREA_NAME; ?>" wrap="off" rows="50" class="large-text"
			<?php echo $readonly; ?>
		><?php echo esc_textarea($content); ?></textarea>
	<p><button type="submit" class="button button-primary"><?php echo __('Save .htaccess', 'litespeed-cache'); ?></button></p>
</form>

<?php endif; ?>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

// Existing public version list
$v_list = array(
	'3.6.1',
	'3.6',
	'3.5.2',
	'3.5.1',
	'3.5.0.1',
	'3.4.2',
	'3.3.2',
	'3.2.4',
);

?>

<?php $this->form_action( Router::ACTION_DEBUG2, Debug2::TYPE_BETA_TEST ); ?>

	<h3 class="litespeed-title">
		<?php echo __( 'Try GitHub Version', 'litespeed-cache' ); ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#beta-test-tab' ); ?>
	</h3>

	<div class="litespeed-desc"><?php echo __( 'Use this section to switch plugin versions. To beta test a GitHub commit, enter the commit URL in the field below.', 'litespeed-cache' ); ?></div>
	<div class="litespeed-desc"><?php echo __( 'Example', 'litespeed-cache' ); ?>: <code>https://github.com/litespeedtech/lscache_wp/commit/e9cb446dfb66d133264d3ebec0535aaed5c932c0</code></div>

	<input type="text" name="<?php echo Debug2::BETA_TEST_URL; ?>" class="litespeed-input-long" id='litespeed-beta-test'>

	<p><a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='dev';"><?php echo __( 'Use latest GitHub Dev commit', 'litespeed-cache' ); ?></a> <code>dev</code></p>

	<p><a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='master';"><?php echo __( 'Use latest GitHub Master commit', 'litespeed-cache' ); ?></a> <code>master</code></p>

	<p><a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='latest';"><?php echo __( 'Use latest WordPress release version', 'litespeed-cache' ); ?></a> <code><?php echo Debug2::BETA_TEST_URL_WP; ?></code> <?php echo __( 'OR', 'litespeed-cache' ) ?> <code>latest</code></p>

	<p>
	<?php foreach ( $v_list as $v ) : ?>

		<a href="javascript:;" class="button litespeed-btn-success" onclick="document.getElementById('litespeed-beta-test').value='<?php echo $v; ?>';"><?php echo $v; ?></a>

	<?php endforeach; ?>
	</p>

	<div class="litespeed-desc"><?php echo sprintf( __( 'Press the %s button to use the most recent GitHub commit.', 'litespeed-cache' ), '<code>' . __( 'Use latest GitHub commit', 'litespeed-cache' ) . '</code>' ); ?></div>
	<div class="litespeed-desc"><?php echo sprintf( __( 'Press the %s button to stop beta testing and go back to the current release from the WordPress Plugin Directory.', 'litespeed-cache' ), '<code>' . __( 'Use latest WordPress release version', 'litespeed-cache' ) . '</code>' ); ?></div>

	<button type="submit" class="button button-primary"><?php echo __('Upgrade', 'litespeed-cache'); ?></button>
</form>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$summary = Import::get_summary();
?>

<h3 class="litespeed-title">
	<?php echo __('Export Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#importexport-tab' ); ?>
</h3>

<div><a href="<?php echo Utility::build_url( Router::ACTION_IMPORT, Import::TYPE_EXPORT ); ?>" class="button button-primary">
	<?php echo __( 'Export', 'litespeed-cache' ); ?>
</a></div>

<?php if ( ! empty( $summary[ 'export_file' ] ) ) : ?>
<div class="litespeed-desc">
	<?php echo __( 'Last exported', 'litespeed-cache' ); ?>: <code><?php echo $summary[ 'export_file' ]; ?></code> <?php echo Utility::readable_time( $summary[ 'export_time' ]); ?>
</div>
<?php endif; ?>

<div class="litespeed-desc">
	<?php echo __( 'This will export all current LiteSpeed Cache settings and save them as a file.', 'litespeed-cache' ); ?>
</div>

<h3 class="litespeed-title"><?php echo __('Import Settings', 'litespeed-cache'); ?></h3>

<?php $this->form_action( Router::ACTION_IMPORT, Import::TYPE_IMPORT, true ); ?>

	<div class="litespeed-div">
		<input type="file" name="ls_file" class="litespeed-input" />
	</div>
	<div class="litespeed-div">
		<?php submit_button(__('Import', 'litespeed-cache'), 'button button-primary', 'litespeed-submit'); ?>
	</div>
</form>

<?php if ( ! empty( $summary[ 'import_file' ] ) ) : ?>
<div class="litespeed-desc">
	<?php echo __( 'Last imported', 'litespeed-cache' ); ?>: <code><?php echo $summary[ 'import_file' ]; ?></code> <?php echo Utility::readable_time( $summary[ 'import_time' ]); ?>
</div>
<?php endif; ?>

<div class="litespeed-desc">
	<?php echo __( 'This will import settings from a file and override all current LiteSpeed Cache settings.', 'litespeed-cache' ); ?>
</div>

<h3 class="litespeed-title"><?php echo __('Reset All Settings', 'litespeed-cache'); ?></h3>
<div><p>🚨 <?php echo __( 'This will reset all settings to default settings.', 'litespeed-cache' ); ?></p>
</div>
<div><a href="<?php echo Utility::build_url( Router::ACTION_IMPORT, Import::TYPE_RESET ); ?>" data-litespeed-cfm="<?php echo __( 'Are you sure you want to reset all settings back to the default settings?', 'litespeed-cache' ); ?>" class="button litespeed-btn-danger-bg">
	<?php echo __( 'Reset Settings', 'litespeed-cache' ); ?>
</a></div>



<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action( $this->_is_network_admin ? Router::ACTION_SAVE_SETTINGS_NETWORK : false );
?>


<h3 class="litespeed-title-short">
	<?php echo __('Debug Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#debug-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_DEBUG_DISABLE_ALL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'This will disable LSCache and all optimization features for debug purpose.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( __( 'OFF', 'litespeed-cache' ), __( 'ON', 'litespeed-cache' ), __( 'Admin IP Only', 'litespeed-cache' ) ) ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Outputs to WordPress debug log.', 'litespeed-cache' ); ?>
				<?php echo __( 'To prevent filling up the disk, this setting should be OFF when everything is working.', 'litespeed-cache' ); ?>
				<?php echo __( 'The Admin IP option will only output log messages on requests from admin IPs.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'The logs will be output to %s.', 'litespeed-cache' ), '<code>wp-content/debug.log</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_IPS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 30 ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Allows listed IPs (one per line) to perform certain actions from their browsers.', 'litespeed-cache' ); ?>
				<?php echo __( 'Your IP', 'litespeed-cache' ); ?>: <code><?php echo Router::get_ip(); ?></code>
				<?php $this->_validate_ip( $id ); ?>
				<br />
				<?php Doc::learn_more(
					'https://docs.litespeedtech.com/lscache/lscwp/admin/#admin-ip-commands',
					__( 'More information about the available commands can be found here.', 'litespeed-cache' )
				); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_LEVEL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( __( 'Basic', 'litespeed-cache' ), __( 'Advanced', 'litespeed-cache' ) ) ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Advanced level will log more details.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_FILESIZE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?> <?php echo __( 'MB', 'litespeed-cache' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the maximum size of the log file.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 3, 3000 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_COOKIE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Log requested cookie values.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_COLLAPS_QS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Shorten query strings in the debug log to improve readability.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_INC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Only log listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_DEBUG_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prevent any debug log of listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php

$this->form_end();

<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$_panels = array(
	array(
		'title'	=> __( 'Purge Front Page', 'litespeed-cache' ),
		'desc'	=> __( 'This will Purge Front Page only', 'litespeed-cache' ),
		'icon'	=> 'purge-front',
		'append_url'	=> Purge::TYPE_PURGE_FRONTPAGE,
	),
	array(
		'title'	=> __( 'Purge Pages', 'litespeed-cache' ),
		'desc'	=> __( 'This will Purge Pages only', 'litespeed-cache' ),
		'icon'	=> 'purge-pages',
		'append_url'	=> Purge::TYPE_PURGE_PAGES,
	),
	array(
		'title'	=> sprintf( __( 'Purge %s Error', 'litespeed-cache' ), '403' ),
		'desc'	=> sprintf( __( 'Purge error pages, including %s pages', 'litespeed-cache' ), '403' ),
		'icon'	=> 'purge-403',
		'append_url'	=> Purge::TYPE_PURGE_ERROR . '403',
	),
	array(
		'title'	=> sprintf( __( 'Purge %s Error', 'litespeed-cache' ), '404' ),
		'desc'	=> sprintf( __( 'Purge error pages, including %s pages', 'litespeed-cache' ), '404' ),
		'icon'	=> 'purge-404',
		'append_url'	=> Purge::TYPE_PURGE_ERROR . '404',
	),
	array(
		'title'	=> sprintf( __( 'Purge %s Error', 'litespeed-cache' ), '403' ),
		'desc'	=> sprintf( __( 'Purge error pages, including %s pages', 'litespeed-cache' ), '403' ),
		'title'	=> __( 'Purge 500 Error', 'litespeed-cache' ),
		'desc'	=> __( 'Purge error pages, including 500 pages', 'litespeed-cache' ),
		'icon'	=> 'purge-500',
		'append_url'	=> Purge::TYPE_PURGE_ERROR . '500',
	),
	array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - LSCache',
		'desc'	=> __( 'Purge the LiteSpeed cache entries created by this plugin', 'litespeed-cache' ),
		'icon'	=> 'purge-all',
		'append_url'	=> Purge::TYPE_PURGE_ALL_LSCACHE,
	),
	array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'CSS/JS Cache', 'litespeed-cache' ),
		'desc'	=> __( 'This will purge all minified/combined CSS/JS entries only', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_CSSJS,
	),
) ;

if ( defined( 'LSCWP_OBJECT_CACHE' ) ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Object Cache', 'litespeed-cache' ),
		'desc'	=> __( 'Purge all the object caches', 'litespeed-cache' ),
		'icon'	=> 'purge-object',
		'append_url'	=> Purge::TYPE_PURGE_ALL_OBJECT,
	) ;
}

if ( Router::opcache_enabled() ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Opcode Cache', 'litespeed-cache' ),
		'desc'	=> __( 'Reset the entire opcode cache', 'litespeed-cache' ),
		'icon'	=> 'purge-opcache',
		'append_url'	=> Purge::TYPE_PURGE_ALL_OPCACHE,
	) ;
}

if ( Conf::val( Base::O_OPTM_CCSS_GEN ) ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Critical CSS', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all generated critical CSS files', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_CCSS,
	) ;
}

if ( Conf::val( Base::O_OPTM_LOCALIZE ) ) {
	$_panels[] = array(
		'title'		=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Localized Resources', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all localized resources', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_LOCALRES,
	);
}

if ( Placeholder::has_lqip_cache() ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'LQIP Cache', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all generated image LQIP placeholder files', 'litespeed-cache' ),
		'icon'	=> 'purge-placeholder',
		'append_url'	=> Purge::TYPE_PURGE_ALL_LQIP,
	) ;
}

if ( Avatar::has_cache() ) {
	$_panels[] = array(
		'title'	=> __( 'Purge All', 'litespeed-cache' ) . ' - ' . __( 'Gravatar Cache', 'litespeed-cache' ),
		'desc'	=> __( 'This will delete all cached Gravatar files', 'litespeed-cache' ),
		'icon'	=> 'purge-cssjs',
		'append_url'	=> Purge::TYPE_PURGE_ALL_AVATAR,
	) ;
}


$_panels[] = array(
	'title'	=> __( 'Purge All', 'litespeed-cache' ),
	'desc'	=> __( 'Purge the cache entries created by this plugin except for Critical CSS & LQIP caches', 'litespeed-cache' ),
	'icon'	=> 'purge-all',
	'title_cls'	=> 'litespeed-warning',
	'newline'	=> true,
	'append_url'	=> Purge::TYPE_PURGE_ALL,
) ;

if ( ! is_multisite() || is_network_admin() ) {
	$_panels[] = array(
		'title'	=> __( 'Empty Entire Cache', 'litespeed-cache' ),
		'desc'	=> __( 'Clears all cache entries related to this site, <i>including other web applications</i>.', 'litespeed-cache' ) . ' <b>' .
					__('This action should only be used if things are cached incorrectly.', 'litespeed-cache') . '</b>',
		'tag'	=> Core::ACTION_PURGE_EMPTYCACHE,
		'icon'	=> 'empty-cache',
		'title_cls'	=> 'litespeed-danger',
		'cfm'	=>  esc_html( __( 'This will clear EVERYTHING inside the cache.', 'litespeed-cache' ) ) . ' ' .
					esc_html( __( 'This may cause heavy load on the server.', 'litespeed-cache' ) ) . ' ' .
					esc_html( __( 'If only the WordPress site should be purged, use Purge All.', 'litespeed-cache' ) )
	) ;
}

?>

<?php include_once LSCWP_DIR . "tpl/inc/check_cache_disabled.php" ; ?>

<h3 class="litespeed-title">
	<?php echo __('Purge', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#purge-tab' ); ?>
</h3>

<div class="litespeed-panel-wrapper litespeed-cards-wrapper">

<?php foreach ( $_panels as $v ): ?>
<?php $tag = ! empty( $v[ 'tag' ] ) ? $v[ 'tag' ] : Router::ACTION_PURGE ; ?>
<?php $append_url = ! empty( $v[ 'append_url' ] ) ? $v[ 'append_url' ] : false ; ?>

	<?php if ( ! empty( $v[ 'newline' ] ) ) : ?>
		<div class='litespeed-col-br'></div>
	<?php endif; ?>

	<a 	class="litespeed-panel postbox"
		href="<?php echo Utility::build_url( $tag, $append_url ) ; ?>"
		<?php if ( ! empty( $v[ 'cfm' ] ) ) echo 'data-litespeed-cfm="' . $v[ 'cfm' ] . '"' ; ?>
	>
		<section class="litespeed-panel-wrapper-icon">
			<span class="litespeed-panel-icon-<?php echo $v[ 'icon' ] ; ?>"></span>
		</section>
		<section class="litespeed-panel-content">
			<div class="litespeed-h3 <?php if ( ! empty( $v[ 'title_cls' ] ) ) echo $v[ 'title_cls' ] ; ?>">
				<?php echo $v[ 'title' ] ; ?>
			</div>
			<span class="litespeed-panel-para"><?php echo $v[ 'desc' ] ; ?></span>
		</section>
	</a>

<?php endforeach; ?>

</div>

<?php if (!is_multisite() || !is_network_admin()): ?>

	<h3 class="litespeed-title"><?php echo __('Purge By...', 'litespeed-cache'); ?></h3>
	<p class="litespeed-description">
		<?php echo __('Select below for "Purge by" options.', 'litespeed-cache'); ?>
		<?php Doc::one_per_line() ; ?>
	</p>

	<?php
		$purgeby_option = false;
		$_option_field = Admin_Display::PURGEBYOPT_SELECT;
		if(!empty($_REQUEST[$_option_field])){
			$purgeby_option = $_REQUEST[$_option_field];
		}
		if( !in_array($purgeby_option, array(
			Admin_Display::PURGEBY_CAT,
			Admin_Display::PURGEBY_PID,
			Admin_Display::PURGEBY_TAG,
			Admin_Display::PURGEBY_URL,
		)) ) {
			$purgeby_option = Admin_Display::PURGEBY_CAT;
		}
	?>

	<?php $this->form_action( Core::ACTION_PURGE_BY ) ; ?>
		<div class="litespeed-row">
			<div class="litespeed-switch litespeed-mini litespeed-right20 litespeed-margin-bottom10">
				<?php $val = Admin_Display::PURGEBY_CAT;?>
				<input type="radio" autocomplete="off" name="<?php echo $_option_field; ?>" id="purgeby_option_category"
					value="<?php echo $val; ?>" <?php if( $purgeby_option == $val ) echo 'checked'; ?>
				/>
				<label for="purgeby_option_category"><?php echo __('Category', 'litespeed-cache'); ?></label>

				<?php $val = Admin_Display::PURGEBY_PID;?>
				<input type="radio" autocomplete="off" name="<?php echo $_option_field; ?>" id="purgeby_option_postid"
					value="<?php echo $val; ?>" <?php if( $purgeby_option == $val ) echo 'checked'; ?>
				/>
				<label for="purgeby_option_postid"><?php echo __('Post ID', 'litespeed-cache'); ?></label>

				<?php $val = Admin_Display::PURGEBY_TAG;?>
				<input type="radio" autocomplete="off" name="<?php echo $_option_field; ?>" id="purgeby_option_tag"
					value="<?php echo $val; ?>" <?php if( $purgeby_option == $val ) echo 'checked'; ?>
				/>
				<label for="purgeby_option_tag"><?php echo __('Tag', 'litespeed-cache'); ?></label>

				<?php $val = Admin_Display::PURGEBY_URL;?>
				<input type="radio" autocomplete="off" name="<?php echo $_option_field; ?>" id="purgeby_option_url"
					value="<?php echo $val; ?>" <?php if( $purgeby_option == $val ) echo 'checked'; ?>
				/>
				<label for="purgeby_option_url"><?php echo __('URL', 'litespeed-cache'); ?></label>
			</div>

			<div class="litespeed-cache-purgeby-text litespeed-desc">
				<div class="<?php if($purgeby_option != Admin_Display::PURGEBY_CAT) echo 'litespeed-hide'; ?>"
					data-purgeby="<?php echo Admin_Display::PURGEBY_CAT; ?>">
					<?php echo sprintf(__('Purge pages by category name - e.g. %2$s should be used for the URL %1$s.', "litespeed-cache"),
						'<code>http://example.com/category/category-name/</code>', '<code>category-name</code>'); ?>
				</div>
				<div class="<?php if($purgeby_option != Admin_Display::PURGEBY_PID) echo 'litespeed-hide'; ?>"
					data-purgeby="<?php echo Admin_Display::PURGEBY_PID; ?>">
					<?php echo __("Purge pages by post ID.", "litespeed-cache"); ?>
				</div>
				<div class="<?php if($purgeby_option != Admin_Display::PURGEBY_TAG) echo 'litespeed-hide'; ?>"
					data-purgeby="<?php echo Admin_Display::PURGEBY_TAG; ?>">
					<?php echo sprintf(__('Purge pages by tag name - e.g. %2$s should be used for the URL %1$s.', "litespeed-cache"),
						'<code>http://example.com/tag/tag-name/</code>', '<code>tag-name</code>'); ?>
				</div>
				<div class="<?php if($purgeby_option != Admin_Display::PURGEBY_URL) echo 'litespeed-hide'; ?>"
					data-purgeby="<?php echo Admin_Display::PURGEBY_URL; ?>">
					<?php echo __('Purge pages by relative or full URL.', 'litespeed-cache'); ?>
					<?php echo sprintf(__('e.g. Use %s or %s.', 'litespeed-cache'),
						'<code>/2016/02/24/hello-world/</code>',
						'<code>http://www.myexamplesite.com/2016/02/24/hello-world/</code>'); ?>
				</div>
			</div>

		</div>

		<p>
			<textarea name="<?php echo Admin_Display::PURGEBYOPT_LIST; ?>" rows="5" class="litespeed-textarea"></textarea>
		</p>

		<p>
			<button type="submit" class="button button-primary"><?php echo __('Purge List', 'litespeed-cache'); ?></button>
		</p>
	</form>
<?php endif; ?>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title">
	<?php echo __('Debug Log', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#log-view-tab' ); ?>

	<a href="<?php echo Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_CLEAR_LOG ); ?>" class="button button-primary" litespeed-accesskey='D'>
		<?php echo __( 'Clear Log', 'litespeed-cache' ); ?>
	</a>
</h3>


<?php
	$file = LSCWP_CONTENT_DIR . '/debug.log';
	$lines = File::count_lines( $file );
	$start = $lines > 1000 ? $lines - 1000 : 0;
	$logs = File::read( $file, $start );
	$logs = $logs ? implode( "\n", $logs ) : '';

	echo nl2br( htmlspecialchars( $logs ) );
?>


	<a href="<?php echo Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_CLEAR_LOG ); ?>" class="button button-primary">
		<?php echo __( 'Clear Log', 'litespeed-cache' ); ?>
	</a>
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$_report = Report::get_instance() ;
$report = $_report->generate_environment_report();

$env_ref = Report::get_summary() ;

// Detect password less plugin
$link = '';
$has_pswdless_plugin = false;
if ( function_exists( 'dologin_gen_link' ) ) {
	$has_pswdless_plugin = true;
	if ( ! empty( $_GET[ 'dologin_gen_link' ] ) ) {
		unset( $_GET[ 'dologin_gen_link' ] );
		$link = dologin_gen_link( 'Litespeed Report' );
		?>
		<script>window.history.pushState( 'remove_gen_link', document.title, window.location.href.replace( '&dologin_gen_link=1', '' ) );</script>
		<?php
	}
}

$install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_3RD, false, null, array( 'plugin' => 'dologin' ) );
?>

<?php if ( ! $has_pswdless_plugin ) : ?>
	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
		<p>
			<?php echo sprintf( __( 'To generate a passwordless link for LiteSpeed Support Team access, you must install %s.', 'litespeed-cache' ), '<a href="https://wordpress.org/plugins/dologin/" target="_blank">DoLogin Security</a>' ); ?>
		</p>
		<p>
			<a href="<?php echo $install_link; ?>" class="button litespeed-btn litespeed-right20"><?php echo __( 'Install DoLogin Security', 'litespeed-cache' ); ?></a>
			<a href="plugin-install.php?s=dologin+security&tab=search&type=term" target="_blank"><?php echo __( 'Go to plugins list', 'litespeed-cache' ); ?></a>
		</p>
	</div>
<?php endif; ?>

<h3 class="litespeed-title">
	<?php echo __('LiteSpeed Report', 'litespeed-cache') ; ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#report-tab' ); ?>
</h3>

<p><?php echo __('Report number', 'litespeed-cache') ; ?>: <b><?php echo ! empty( $env_ref[ 'num' ] ) ? $env_ref[ 'num' ] : '-' ; ?></b></p>
<p><?php echo __('Report date', 'litespeed-cache') ; ?>: <b><?php echo ! empty( $env_ref[ 'dateline' ] ) ? date( 'm/d/Y H:i:s', $env_ref[ 'dateline' ] ) : '-' ; ?></b></p>

<p class="litespeed-desc">
	<?php echo __( 'The environment report contains detailed information about the WordPress configuration.', 'litespeed-cache' ); ?>
	<br />
	<?php echo __('If you run into any issues, please refer to the report number in your support message.', 'litespeed-cache'); ?>
</p>

<form action="<?php echo Utility::build_url( Router::ACTION_REPORT, Report::TYPE_SEND_REPORT ); ?>" method="post" class="litespeed-relative">
<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th><?php echo __( 'System Information', 'litespeed-cache' ) ; ?></th>
		<td>
			<textarea id="litespeed-report" rows="20" cols="100" readonly><?php echo $report; ?></textarea>
		</td>
	</tr>
	<tr>
		<th><?php echo __( 'Passwordless Link', 'litespeed-cache' ) ; ?></th>
		<td>
			<input type="text" class="litespeed-regular-text" id="litespeed-report-link" name="link" value="<?php echo $link; ?>" style="width:500px;" />
			<?php if ( $has_pswdless_plugin ) : ?>
				<a href="<?php echo admin_url( 'admin.php?page=litespeed-toolbox&dologin_gen_link=1' ); ?>" class="button button-secondary"><?php echo __( 'Generate Link for Current User', 'litespeed-cache' ) ; ?></a>
			<?php else: ?>
				<button type="button" class="button button-secondary" disabled><?php echo __( 'Generate Link for Current User', 'litespeed-cache' ) ; ?></button>
			<?php endif; ?>
			<div class="litespeed-desc">
				<?php echo __( 'To grant wp-admin access to the LiteSpeed Support Team, please generate a passwordless link for the current logged-in user to be sent with the report.', 'litespeed-cache' ) ; ?>
			<?php if ( $link ) : ?>
				<br /><strong>🚨 <?php echo __('Please do NOT share the above passwordless link with anyone.', 'litespeed-cache'); ?></strong>
				<strong><?php echo sprintf( __('Generated links may be managed under <a %s>Settings</a>.', 'litespeed-cache'), 'href="' . menu_page_url( 'dologin', 0 ) . '"' ); ?></strong>
			<?php endif; ?>
			</div>
		</td>
	</tr>
	<tr>
		<th><?php echo __( 'Notes', 'litespeed-cache' ) ; ?></th>
		<td>
			<textarea name="notes" rows="10" cols="100"></textarea>
			<div class="litespeed-desc">
				<?php echo __( 'Optional', 'litespeed-cache' ); ?>:
				<?php echo __( 'provide more information here to assist the LiteSpeed team with debugging.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>
</tbody></table>

<div class='litespeed-top20'></div>
<button class="button button-primary" type="submit"><?php echo __( 'Send to LiteSpeed', 'litespeed-cache' ) ; ?></button>
<button class="button button-primary litespeed-float-submit" type="submit"><?php echo __( 'Send to LiteSpeed', 'litespeed-cache' ) ; ?></button>

<p class="litespeed-top30 litespeed-left10 litespeed-desc">
	<?php echo __( 'Send this report to LiteSpeed. Refer to this report number when posting in the WordPress support forum.', 'litespeed-cache' ) ; ?>
</p>
</form>

<?php include_once LSCWP_DIR . "tpl/inc/api_key.php" ; ?>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'purge'	=> __( 'Purge', 'litespeed-cache' ),
);

if ( ! $this->_is_network_admin ) {
	$menu_list[ 'import_export' ] = __( 'Import / Export', 'litespeed-cache' );
}

if ( ! $this->_is_multisite || $this->_is_network_admin ) {
	$menu_list[ 'edit_htaccess' ] = __( 'Edit .htaccess', 'litespeed-cache' );
}

if ( ! $this->_is_network_admin ) {
	$menu_list[ 'heartbeat' ] 		= __( 'Heartbeat', 'litespeed-cache' ); // todo: will add this to network level later
	$menu_list[ 'report' ] 			= __( 'Report', 'litespeed-cache' );
}

if ( ! $this->_is_multisite || $this->_is_network_admin ) {
	$menu_list[ 'settings-debug' ] 	= __( 'Debug Settings', 'litespeed-cache' );
	$menu_list[ 'log_viewer' ] 		= __( 'Log View', 'litespeed-cache' );
	$menu_list[ 'beta_test' ] 		= __( 'Beta Test', 'litespeed-cache' );
}

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Toolbox', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '';
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>";
			$i ++;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>";
			require LSCWP_DIR . "tpl/toolbox/$tab.tpl.php";
			echo "</div>";
		}

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Heartbeat Control', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/toolbox/#heartbeat-tab' ); ?>
</h3>

<div class="litespeed-callout notice notice-warning inline">
	<h4><?php echo __( 'NOTICE:', 'litespeed-cache' ); ?></h4>
	<p><?php echo __( 'Disable WordPress interval heartbeat to reduce server load.', 'litespeed-cache' ); ?>
	<span class="litespeed-warning">
		🚨
		<?php echo __( 'Disabling this may cause WordPress tasks triggered by AJAX to stop working.', 'litespeed-cache' ); ?>
</span></p>
</div>


<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_FRONT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">

				<?php echo __( 'Turn ON to control heartbeat on frontend.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_FRONT_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short'); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'frontend' ); ?>
				<?php echo sprintf( __( 'WordPress valid interval is %s seconds.', 'litespeed-cache' ), '<code>15</code> - <code>120</code>' ); ?><br />
				<?php echo sprintf( __( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'frontend' ); ?><br />
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 15, 120, true ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_BACK; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn ON to control heartbeat on backend.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_BACK_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short'); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'backend' ); ?>
				<?php echo sprintf( __( 'WordPress valid interval is %s seconds', 'litespeed-cache' ), '<code>15</code> ~ <code>120</code>' ); ?><br />
				<?php echo sprintf( __( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'backend' ); ?><br />
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 15, 120, true ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_EDITOR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Turn ON to control heartbeat in backend editor.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MISC_HEARTBEAT_EDITOR_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short'); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify the %s heartbeat interval in seconds.', 'litespeed-cache' ), 'backend editor' ); ?>
				<?php echo sprintf( __( 'WordPress valid interval is %s seconds', 'litespeed-cache' ), '<code>15</code> ~ <code>120</code>' ); ?><br />
				<?php echo sprintf( __( 'Set to %1$s to forbid heartbeat on %2$s.', 'litespeed-cache' ), '<code>0</code>', 'frontend' ); ?><br />
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 15, 120, true ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php $this->form_end(); ?>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$crawler_summary = Crawler::get_summary();

$__map = Crawler_Map::get_instance();

$list = $__map->list_blacklist( 30 );
$count = $__map->count_blacklist();
$pagination = Utility::pagination( $count, 30 );

?>
<p class="litespeed-right">
<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_EMPTY ); ?>" class="button litespeed-btn-warning" data-litespeed-cfm="<?php echo __( 'Are you sure to delete all existing blacklist?', 'litespeed-cache' ) ; ?>" >
	<?php echo __( 'Empty blacklist', 'litespeed-cache' ); ?>
</a>
</p>

<h3 class="litespeed-title">
	<?php echo __( 'Blacklist', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#blacklist-tab' ); ?>
</h3>

<?php echo __( 'Total', 'litespeed-cache' ) . ': ' . $count; ?>

<?php echo $pagination; ?>
<table class="wp-list-table widefat striped">
	<thead><tr >
		<th scope="col">#</th>
		<th scope="col"><?php echo __( 'URL', 'litespeed-cache' ); ?></th>
		<th scope="col"><?php echo __( 'Status', 'litespeed-cache' ); ?></th>
		<th scope="col"><?php echo __( 'Operation', 'litespeed-cache' ); ?></th>
	</tr></thead>
	<tbody>
		<?php foreach ( $list as $i => $v ) : ?>
		<tr>
			<td><?php echo $i + 1; ?></td>
			<td>
				<?php echo $v[ 'url' ]; ?>
			</td>
			<td>
				<?php echo Crawler::get_instance()->display_status( $v[ 'res' ], $v[ 'reason' ] ); ?>
			</td>
			<td>
				<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_DEL, false, null, array( 'id' => $v[ 'id' ] ) ); ?>" class="button button-secondary"><?php echo __( 'Remove from Blacklist', 'litespeed-cache' ); ?></a>
			</td>
		</tr>
		<?php endforeach; ?>
	</tbody>
</table>
<?php echo $pagination; ?>

<p>
	<i class="litespeed-dot litespeed-bg-default"></i> = <?php echo __( 'Not Blacklist', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-warning"></i> = <?php echo __( 'Blacklisted due to not cacheable', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-danger"></i> = <?php echo __( 'Blacklisted', 'litespeed-cache' ); ?><br>
</p><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __('Crawler Sitemap Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#sitemap-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_SITEMAP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-long' ); ?>
			<div class="litespeed-desc">
				<?php echo __('The crawler can use your Google XML Sitemap instead of its own. Enter the full URL to your sitemap here.', 'litespeed-cache'); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_DROP_DOMAIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'The crawler will parse the sitemap and save into the database before crawling. When parsing the sitemap, dropping the domain can save DB storage.', 'litespeed-cache' ); ?>
				<?php echo __( 'If you are using multiple domains for one site, and have multiple domains in the sitemap, please keep this option OFF so the crawler knows to crawl every domain.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_MAP_TIMEOUT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the timeout while parsing the sitemap.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 15, 1800 ); ?>
			</div>
		</td>
	</tr>
</tbody></table>

<?php
$this->form_end();
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$crawler_summary = Crawler::get_summary();

$__map = Crawler_Map::get_instance();

$list = $__map->list_map( 30 );
$count = $__map->count_map();
$pagination = Utility::pagination( $count, 30 );

?>
<p class="litespeed-right">
<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_EMPTY ); ?>" class="button litespeed-btn-warning">
	<?php echo __( 'Clean Crawler Map', 'litespeed-cache' ); ?>
</a>

<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_REFRESH_MAP ); ?>" class="button button-secondary">
	<?php echo __( 'Refresh Crawler Map', 'litespeed-cache' ); ?>
</a>
</p>

<p>
	<?php
		if ( ! empty( $crawler_summary[ 'sitemap_time' ] ) ) {
			echo sprintf( __( 'Generated at %s', 'litespeed-cache' ), Utility::readable_time( $crawler_summary[ 'sitemap_time' ] ) );
		}
	?>
</p>

<h3 class="litespeed-title">
	<?php echo __( 'Sitemap List', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#map-tab' ); ?>
</h3>

<?php echo __( 'Sitemap Total', 'litespeed-cache' ) . ': ' . $count; ?>

<?php echo $pagination; ?>
<table class="wp-list-table widefat striped">
	<thead><tr >
		<th scope="col">#</th>
		<th scope="col"><?php echo __( 'URL', 'litespeed-cache' ); ?></th>
		<th scope="col"><?php echo __( 'Crawler Status', 'litespeed-cache' ); ?></th>
		<th scope="col"><?php echo __( 'Operation', 'litespeed-cache' ); ?></th>
	</tr></thead>
	<tbody>
		<?php foreach ( $list as $i => $v ) : ?>
		<tr>
			<td><?php echo $i + 1; ?></td>
			<td>
				<?php echo $v[ 'url' ]; ?>
			</td>
			<td>
				<?php echo Crawler::get_instance()->display_status( $v[ 'res' ], $v[ 'reason' ] ); ?>
			</td>
			<td>
				<a href="<?php echo Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_BLACKLIST_ADD, false, null, array( 'id' => $v[ 'id' ] ) ); ?>" class="button button-secondary"><?php echo __( 'Add to Blacklist', 'litespeed-cache' ); ?></a>
			</td>
		</tr>
		<?php endforeach; ?>
	</tbody>
</table>
<?php echo $pagination; ?>

<p>
	<i class="litespeed-dot litespeed-bg-success"></i> = <?php echo __( 'Cache Hit', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-primary"></i> = <?php echo __( 'Cache Miss', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-warning"></i> = <?php echo __( 'Blacklisted due to not cacheable', 'litespeed-cache' ); ?><br>
	<i class="litespeed-dot litespeed-bg-danger"></i> = <?php echo __( 'Blacklisted', 'litespeed-cache' ); ?><br>
</p><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$menu_list = array(
	'summary'				=> __( 'Summary', 'litespeed-cache' ),
	'map'					=> __( 'Map', 'litespeed-cache' ),
	'blacklist'				=> __( 'Blacklist', 'litespeed-cache' ),
	'settings-general'		=> __( 'General Settings', 'litespeed-cache' ),
	'settings-simulation'	=> __( 'Simulation Settings', 'litespeed-cache' ),
	'settings-sitemap'		=> __( 'Sitemap Settings', 'litespeed-cache' ),
) ;

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Crawler', 'litespeed-cache' ) ; ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER ; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1 ;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '' ;
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>" ;
			$i ++ ;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>" ;
			require LSCWP_DIR . "tpl/crawler/$tab.tpl.php" ;
			echo "</div>" ;
		}

	?>
	</div>

</div>

<iframe name="litespeedHiddenIframe" src="" width="0" height="0" frameborder="0"></iframe>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$__crawler = Crawler::get_instance();
$crawler_list = $__crawler->list_crawlers();

$summary = Crawler::get_summary();
if ( $summary[ 'curr_crawler' ] >= count( $crawler_list ) ) {
	$summary[ 'curr_crawler' ] = 0;
}

$is_running = time() - $summary[ 'is_running' ] <= Conf::val( Base::O_CRAWLER_RUN_DURATION );

$disabled = Router::can_crawl() ? '' : 'disabled';

$seconds = Conf::val( Base::O_CRAWLER_RUN_INTERVAL );
if($seconds > 0):
	$recurrence = '';
	$hours = (int)floor($seconds / 3600);
	if ( $hours ) {
		if ( $hours > 1) {
			$recurrence .= sprintf(__('%d hours', 'litespeed-cache'), $hours);
		}
		else {
			$recurrence .= sprintf(__('%d hour', 'litespeed-cache'), $hours);
		}
	}
	$minutes = (int)floor( ($seconds % 3600 ) / 60 );
	if ( $minutes ) {
		$recurrence .= ' ';
		if ( $minutes > 1) {
			$recurrence .= sprintf(__('%d minutes', 'litespeed-cache'), $minutes);
		}
		else {
			$recurrence .= sprintf(__('%d minute', 'litespeed-cache'), $minutes);
		}
	}
	?>

	<h3 class="litespeed-title litespeed-relative">
		<?php echo __('Crawler Cron', 'litespeed-cache'); ?>
		<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/' ); ?>
	</h3>

	<?php if ( ! Router::can_crawl() ): ?>
		<div class="litespeed-callout notice notice-error inline">
			<h4><?php echo __('WARNING', 'litespeed-cache'); ?></h4>
			<p><?php echo __('The crawler feature is not enabled on the LiteSpeed server. Please consult your server admin or hosting provider.', 'litespeed-cache'); ?></p>
			<p><?php echo sprintf(__('See <a %s>Introduction for Enabling the Crawler</a> for detailed information.', 'litespeed-cache'), 'href="https://docs.litespeedtech.com/lscache/lscwp/admin/#enabling-and-limiting-the-crawler" target="_blank"'); ?></p>
		</div>
	<?php endif; ?>


	<?php if ( $summary[ 'this_full_beginning_time' ] ) : ?>
	<p>
		<b><?php echo __( 'Current sitemap crawl started at', 'litespeed-cache' ); ?>:</b>
		<?php echo Utility::readable_time( $summary[ 'this_full_beginning_time' ] ); ?>
	</p>

		<?php if ( ! $is_running ) : ?>
	<p>
		<b><?php echo __( 'The next complete sitemap crawl will start at', 'litespeed-cache' ); ?>:</b>
		<?php echo date('m/d/Y H:i:s',$summary[ 'this_full_beginning_time' ] + LITESPEED_TIME_OFFSET + $summary[ 'last_full_time_cost' ] + Conf::val( Base::O_CRAWLER_CRAWL_INTERVAL )); ?>
		<?php endif; ?>
	</p>

	<?php endif; ?>
	<?php if ( $summary[ 'last_full_time_cost' ] ) : ?>
	<p>
		<b><?php echo __( 'Last complete run time for all crawlers', 'litespeed-cache' ); ?>:</b>
		<?php echo sprintf( __( '%d seconds', 'litespeed-cache' ), $summary[ 'last_full_time_cost' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'last_crawler_total_cost' ] ) : ?>
	<p>
		<b><?php echo __('Run time for previous crawler', 'litespeed-cache'); ?>:</b>
		<?php echo sprintf( __( '%d seconds', 'litespeed-cache' ), $summary[ 'last_crawler_total_cost' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'curr_crawler_beginning_time' ] ) : ?>
	<p>
		<b><?php echo __('Current crawler started at', 'litespeed-cache'); ?>:</b>
		<?php echo Utility::readable_time( $summary[ 'curr_crawler_beginning_time' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'last_start_time' ] ) : ?>
	<p class='litespeed-desc'>
		<b><?php echo __('Last interval', 'litespeed-cache'); ?>:</b>
		<?php echo Utility::readable_time( $summary[ 'last_start_time' ] ); ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'end_reason' ] ) : ?>
	<p class='litespeed-desc'>
		<b><?php echo __( 'Ended reason', 'litespeed-cache' ); ?>:</b>
		<?php echo $summary[ 'end_reason' ]; ?>
	</p>
	<?php endif; ?>

	<?php if ( $summary[ 'last_crawled' ] ) : ?>
	<p class='litespeed-desc'>
		<?php echo sprintf(__('<b>Last crawled:</b> %s item(s)', 'litespeed-cache'), $summary[ 'last_crawled' ] ); ?>
	</p>
	<?php endif; ?>

	<p>
		<?php echo " <a href='" . Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_RESET ) . "' class='button litespeed-btn-warning'>" . __('Reset position', 'litespeed-cache') . "</a>";

		$href = Router::can_crawl() ? Utility::build_url( Router::ACTION_CRAWLER, Crawler::TYPE_START ) : 'javascript:;';
		echo " <a href='$href' id='litespeed_manual_trigger' class='button litespeed-btn-success' litespeed-accesskey='R' $disabled>" . __('Manually run', 'litespeed-cache') . "</a>";
		?>
	</p>


	<table class="wp-list-table widefat striped">
		<thead><tr >
			<th scope="col">#</th>
			<th scope="col"><?php echo __('Cron Name', 'litespeed-cache'); ?></th>
			<th scope="col"><?php echo __('Run Frequency', 'litespeed-cache'); ?></th>
			<th scope="col"><?php echo __( 'Status', 'litespeed-cache' ); ?></th>
			<th scope="col"><?php echo __( 'Running', 'litespeed-cache' ); ?></th>
		</tr></thead>
		<tbody>
			<?php foreach ( $crawler_list as $i => $v ) :
					$hit = ! empty( $summary[ 'crawler_stats' ][ $i ][ 'H' ] ) ? $summary[ 'crawler_stats' ][ $i ][ 'H' ] : 0;
					$miss = ! empty( $summary[ 'crawler_stats' ][ $i ][ 'M' ] ) ? $summary[ 'crawler_stats' ][ $i ][ 'M' ] : 0;

					$blacklisted = ! empty( $summary[ 'crawler_stats' ][ $i ][ 'B' ] ) ? $summary[ 'crawler_stats' ][ $i ][ 'B' ] : 0;
					$blacklisted += ! empty( $summary[ 'crawler_stats' ][ $i ][ 'N' ] ) ? $summary[ 'crawler_stats' ][ $i ][ 'N' ] : 0;

					if ( isset( $summary[ 'crawler_stats' ][ $i ][ 'W' ] ) ) {
						$waiting = $summary[ 'crawler_stats' ][ $i ][ 'W' ] ?: 0;
					}
					else {
						$waiting = $summary[ 'list_size' ] - $hit - $miss - $blacklisted;
					}
			?>
			<tr>
				<td>
				<?php
					echo $i + 1;
					if ( $i == $summary[ 'curr_crawler' ] ) {
						echo "<img class='litespeed-crawler-curr' src='" . LSWCP_PLUGIN_URL . "assets/img/Litespeed.icon.svg' />";
					}
				?>
				</td>
				<td>
					<?php echo $v[ 'title' ]; ?>
				</td>
				<td><?php echo $recurrence; ?></td>
				<td>
					<?php echo '<i class="litespeed-badge litespeed-bg-default" data-balloon-pos="up" aria-label="' . __( 'Waiting', 'litespeed-cache' ) . '">' . ( $waiting ?: '-' ) . '</i> '; ?>
					<?php echo '<i class="litespeed-badge litespeed-bg-success" data-balloon-pos="up" aria-label="' . __( 'Hit', 'litespeed-cache' ) . '">' . ( $hit ?: '-' ) . '</i> '; ?>
					<?php echo '<i class="litespeed-badge litespeed-bg-primary" data-balloon-pos="up" aria-label="' . __( 'Miss', 'litespeed-cache' ) . '">' . ( $miss ?: '-' ) . '</i> '; ?>
					<?php echo '<i class="litespeed-badge litespeed-bg-danger" data-balloon-pos="up" aria-label="' . __( 'Blacklisted', 'litespeed-cache' ) . '">' . ( $blacklisted ?: '-' ) . '</i> '; ?>
				</td>
				<td>
				<?php
					if ( $i == $summary[ 'curr_crawler' ] ) {
						echo "Position: " . ( $summary[ 'last_pos' ] + 1 );
						if ( $is_running ) {
							echo " <span class='litespeed-label-success'>" . __( 'running', 'litespeed-cache' ) . "</span>";
						}
					}
				?>
				</td>
			</tr>
			<?php endforeach; ?>
		</tbody>
	</table>

	<p>
		<i class="litespeed-badge litespeed-bg-default"></i> = <?php echo __( 'Waiting to be Crawled', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-success"></i> = <?php echo __( 'Cache Hit', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-primary"></i> = <?php echo __( 'Cache Miss', 'litespeed-cache' ); ?><br>
		<i class="litespeed-badge litespeed-bg-danger"></i> = <?php echo __( 'Blacklisted', 'litespeed-cache' ); ?><br>
	</p>

	<div class="litespeed-desc">
		<div><?php echo __('Run frequency is set by the Interval Between Runs setting.','litespeed-cache'); ?></div>
		<div><?php echo __('Crawlers cannot run concurrently.', 'litespeed-cache')
		 . __('&nbsp;If both the cron and a manual run start at similar times, the first to be started will take precedence.','litespeed-cache'); ?></div>
		<div><?php echo sprintf(__('Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn how to create the system cron task.','litespeed-cache'), ' href="https://developer.wordpress.org/plugins/cron/hooking-wp-cron-into-the-system-task-scheduler/" target="_blank" '); ?></div>
	</div>
<?php endif; ?>


	<h3 class="litespeed-title"><?php echo __('Watch Crawler Status', 'litespeed-cache'); ?></h3>

	<?php
		$ajaxUrl = $__crawler->json_path();
		if ( $ajaxUrl ):
	?>

	<input type="button" id="litespeed-crawl-url-btn" value="<?php echo __('Show crawler status', 'litespeed-cache'); ?>" class="button button-secondary" data-url="<?php echo $ajaxUrl; ?>" />

	<div class="litespeed-shell litespeed-hide">
		<div class="litespeed-shell-header-bar"></div>
		<div class="litespeed-shell-header">
			<div class="litespeed-shell-header-bg"></div>
			<div class="litespeed-shell-header-icon-container">
				<img id="litespeed-shell-icon" src="<?php echo LSWCP_PLUGIN_URL . 'assets/img/Litespeed.icon.svg'; ?>" />
			</div>
		</div>
		<ul class="litespeed-shell-body">
			<li>Start watching...</li>
			<li id="litespeed-loading-dot"></li>
		</ul>
	</div>

	<?php else: ?>
	<p>
		<?php echo __('No crawler meta file generated yet', 'litespeed-cache'); ?>
	</p>
	<?php endif; ?>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __('Crawler General Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#general-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CRAWLER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'This will enable crawler cron.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_USLEEP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?> <?php echo __('microseconds', 'litespeed-cache'); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify time in microseconds for the delay between requests during a crawl.', 'litespeed-cache'); ?>

				<?php if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_USLEEP ] ) ) : ?>
					<font class="litespeed-warning">
						<?php echo __('NOTE', 'litespeed-cache'); ?>:
						<?php echo __( 'Server allowed min value', 'litespeed-cache'); ?>: <code><?php echo $_SERVER[ Base::ENV_CRAWLER_USLEEP ]; ?></code>
					</font>
				<?php else : ?>
					<?php $this->recommended( $id ); ?>
				<?php endif; ?>

				<?php $this->_validate_ttl( $id, false, 30000 ); ?>

				<br />
				<?php $this->_api_env_var( Base::ENV_CRAWLER_USLEEP ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_RUN_DURATION; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?> <?php echo __('seconds', 'litespeed-cache'); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify time in seconds for the duration of the crawl interval.', 'litespeed-cache'); ?>
				<?php $this->recommended($id); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_RUN_INTERVAL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?> <?php echo __('seconds', 'litespeed-cache'); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify time in seconds for the time between each run interval.', 'litespeed-cache'); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 60 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_CRAWL_INTERVAL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?> <?php echo __('seconds', 'litespeed-cache'); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify how long in seconds before the crawler should initiate crawling the entire sitemap again.', 'litespeed-cache'); ?>
				<?php $this->recommended($id); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_THREADS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __('Specify Number of Threads to use while crawling.', 'litespeed-cache'); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 1, 16 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_TIMEOUT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the timeout while crawling each URL.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 10, 300 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_LOAD_LIMIT; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input($id); ?>
			<div class="litespeed-desc">
				<?php echo __( 'The maximum average server load allowed while crawling. The number of crawler threads in use will be actively reduced until average server load falls under this limit. If this cannot be achieved with a single thread, the current crawler run will be terminated.', 'litespeed-cache' );
				?>

				<?php if ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ] ) ) : ?>
					<font class="litespeed-warning">
						<?php echo __('NOTE', 'litespeed-cache'); ?>:
						<?php echo __( 'Server enforced value', 'litespeed-cache'); ?>: <code><?php echo $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ]; ?></code>
					</font>
				<?php elseif ( ! empty( $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ] ) ) : ?>
					<font class="litespeed-warning">
						<?php echo __('NOTE', 'litespeed-cache'); ?>:
						<?php echo __( 'Server allowed max value', 'litespeed-cache'); ?>: <code><?php echo $_SERVER[ Base::ENV_CRAWLER_LOAD_LIMIT ]; ?></code>
					</font>
				<?php else : ?>
					<?php $this->recommended($id); ?>

				<?php endif; ?>

				<br />
				<?php $this->_api_env_var( Base::ENV_CRAWLER_LOAD_LIMIT, Base::ENV_CRAWLER_LOAD_LIMIT_ENFORCE ); ?>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
$this->form_end();
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __('Crawler Simulation Settings', 'litespeed-cache'); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#simulation-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_ROLES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id, 20 ); ?>

			<div class="litespeed-desc">
				<?php echo __('To crawl the site as a logged-in user, enter the user ids to be simulated.', 'litespeed-cache'); ?>
				<?php Doc::one_per_line(); ?>
			</div>

		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CRAWLER_COOKIES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->enroll( $id . '[name][]' ); ?>
			<?php $this->enroll( $id . '[vals][]' ); ?>

			<div id="litespeed_crawler_simulation_div"></div>

			<script type="text/babel">
				ReactDOM.render(
					<CrawlerSimulate list={ <?php echo json_encode( Conf::val( $id ) ); ?> } />,
					document.getElementById( 'litespeed_crawler_simulation_div' )
				);
			</script>

			<div class="litespeed-desc">
				<?php echo __('To crawl for a particular cookie, enter the cookie name, and the values you wish to crawl for. Values should be one per line, and can include a blank line. There will be one crawler created per cookie value, per simulated role.', 'litespeed-cache'); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/crawler/#cookie-simulation' ); ?>
				<p><?php echo sprintf( __( 'Use %1$s in %2$s to indicate this cookie has not been set.', 'litespeed-cache' ), '<code>_null</code>', __( 'Cookie Values', 'litespeed-cache' ) ); ?></p>
			</div>

		</td>
	</tr>

</tbody></table>

<?php
$this->form_end();
<?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$cf_on = Conf::val( Base::O_CDN_CLOUDFLARE ) ;
$cf_domain = Conf::val( Base::O_CDN_CLOUDFLARE_NAME ) ?: '-' ;
$cf_zone = Conf::val( Base::O_CDN_CLOUDFLARE_ZONE ) ?: '-' ;

$curr_status = CDN\Cloudflare::get_option( CDN\Cloudflare::ITEM_STATUS, array() ) ;

?>
<h3 class="litespeed-title"><?php echo __('QUIC.cloud', 'litespeed-cache'); ?></h3>

<p><?php echo __('To manage QUIC.cloud options, please visit', 'litespeed-cache'); ?>: <a href="<?php echo Cloud::CLOUD_SERVER_DASH; ?>" target="_blank"><?php echo Cloud::CLOUD_SERVER_DASH; ?></a></p>


<h3 class="litespeed-title"><?php echo __('Cloudflare', 'litespeed-cache'); ?></h3>

<?php if ( ! $cf_on ) : ?>
<div class="litespeed-callout notice notice-error inline">
	<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>
	<p>
		<?php echo __('To enable the following functionality, turn ON Cloudflare API in CDN Settings.', 'litespeed-cache'); ?>
	</p>
</div>
<?php endif ; ?>

<p><?php echo __('Cloudflare Domain', 'litespeed-cache'); ?>: <code><?php echo $cf_domain ; ?></code></p>
<p><?php echo __('Cloudflare Zone', 'litespeed-cache'); ?>: <code><?php echo $cf_zone ; ?></code></p>

<p>
	<b><?php echo __( 'Development Mode', 'litespeed-cache' ) ; ?>:</b>
	<a href="<?php echo Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_SET_DEVMODE_ON ) ; ?>" class="button litespeed-btn-warning">
		<?php echo __( 'Turn ON', 'litespeed-cache' ) ; ?>
	</a>
	<a href="<?php echo Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_SET_DEVMODE_OFF ) ; ?>" class="button litespeed-btn-warning">
		<?php echo __( 'Turn OFF', 'litespeed-cache' ) ; ?>
	</a>
	<a href="<?php echo Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_GET_DEVMODE ) ; ?>" class="button litespeed-btn-success">
		<?php echo __( 'Check Status', 'litespeed-cache' ) ; ?>
	</a>

	<?php if ( $curr_status ) : ?>
	<span class="litespeed-desc">
	<?php
		if ( time() >= $curr_status[ 'devmode_expired' ] ) {
			$expired_at = date( 'm/d/Y H:i:s', $curr_status[ 'devmode_expired' ] + LITESPEED_TIME_OFFSET ) ;
			$curr_status[ 'devmode' ] = 'OFF' ;
			echo sprintf( __( 'Current status is %1$s since %2$s.', 'litespeed-cache' ), '<code>' . strtoupper( $curr_status[ 'devmode' ] ) . '</code>', '<code>' . $expired_at . '</code>' ) ;
		}
		else {
			$expired_at = $curr_status[ 'devmode_expired' ] - time() ;
			$expired_at = Utility::readable_time( $expired_at, 3600 * 3, true );
		?>
			<?php echo sprintf( __( 'Current status is %s.', 'litespeed-cache' ), '<code>' . strtoupper( $curr_status[ 'devmode' ] ) . '</code>' ) ; ?>
			<?php echo sprintf( __( 'Development mode will be automatically turned off in %s.', 'litespeed-cache' ), '<code>' . $expired_at . '</code>' ) ; ?>
			<?php
		}
	?>
	</span>
	<?php endif ; ?>

	<p class="litespeed-desc">
		<?php echo __( 'Temporarily bypass Cloudflare cache. This allows changes to the origin server to be seen in realtime.', 'litespeed-cache' ) ; ?>
		<?php echo __( 'Development Mode will be turned off automatically after three hours.', 'litespeed-cache' ) ; ?>
		<a href="https://support.cloudflare.com/hc/en-us/articles/200168246" target="_blank"><?php echo __('Learn More', 'litespeed-cache') ; ?></a>
	</p>
</p>

<p>
	<b><?php echo __( 'Cloudflare Cache', 'litespeed-cache' ) ; ?>:</b>
	<?php if ( ! $cf_on ) : ?>
		<a href="#" class="button button-secondary disabled">
	<?php else : ?>
		<a href="<?php echo Utility::build_url( Router::ACTION_CDN_CLOUDFLARE, CDN\Cloudflare::TYPE_PURGE_ALL ) ; ?>" class="button litespeed-btn-danger">
	<?php endif ; ?>
		<?php echo __( 'Purge Everything', 'litespeed-cache' ) ; ?>
	</a>
</p><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$menu_list = array(
	'settings'			=> __( 'CDN Settings', 'litespeed-cache' ),
	'manage'			=> __( 'Manage', 'litespeed-cache' ),
) ;

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache CDN', 'litespeed-cache' ) ; ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER ; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1 ;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '' ;
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>" ;
			$i ++ ;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>" ;
			require LSCWP_DIR . "tpl/cdn/$tab.tpl.php" ;
			echo "</div>" ;
		}

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$home_url = home_url( '/' );
$parsed = parse_url( $home_url );
$home_url = str_replace( $parsed[ 'scheme' ] . ':', '', $home_url );
$cdn_url = 'https://cdn.' . substr( $home_url, 2 );

$cdn_mapping = Conf::val( Base::O_CDN_MAPPING );
// Special handler: Append one row if somehow the DB default preset value got deleted
if ( ! $cdn_mapping ) {
	$this->load_default_vals();
	$cdn_mapping = self::$_default_options[ Base::O_CDN_MAPPING ];
}

$this->form_action();
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'CDN Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_CDN_QUIC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Enable %s CDN API functionality.', 'litespeed-cache' ), 'QUIC.cloud' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CDN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Turn this setting %1$s if you are using a Content Delivery Network (CDN). NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are only using QUIC.cloud or Cloudflare, leave this setting %2$s.', 'litespeed-cache' ), '<code>' . __( 'ON', 'litespeed-cache' ) . '</code>', '<code>' . __( 'OFF', 'litespeed-cache' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left"></th>
		<td>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_URL . '][]' ); ?>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_IMG . '][]' ); ?>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_CSS . '][]' ); ?>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_INC_JS . '][]' ); ?>
			<?php $this->enroll( Base::O_CDN_MAPPING . '[' . Base::CDN_MAPPING_FILETYPE . '][]' ); ?>

			<div id="litespeed_cdn_mapping_div"></div>

			<script type="text/babel">
				ReactDOM.render(
					<CDNMapping list={ <?php echo json_encode( $cdn_mapping ); ?> } />,
					document.getElementById( 'litespeed_cdn_mapping_div' )
				);
			</script>

			<div class="litespeed-warning">
				<?php echo __('NOTE', 'litespeed-cache'); ?>:
				<?php echo __( 'To randomize CDN hostname, define multiple hostnames for the same resources.', 'litespeed-cache' ); ?>
			</div>

			<div class="litespeed-desc">
				<b><?php $this->title( Base::CDN_MAPPING_INC_IMG ); ?></b>:
				<?php echo sprintf( __( 'Serve all image files through the CDN. This will affect all attachments, HTML %s tags, and CSS %s attributes.', 'litespeed-cache' ), '<code>&lt;img</code>', '<code>url()</code>' ); ?>

				<br />
				<b><?php $this->title( Base::CDN_MAPPING_INC_CSS ); ?></b>:
				<?php echo __( 'Serve all CSS files through the CDN. This will affect all enqueued WP CSS files.', 'litespeed-cache' ); ?>

				<br />
				<b><?php $this->title( Base::CDN_MAPPING_INC_JS ); ?></b>:
				<?php echo __( 'Serve all JavaScript files through the CDN. This will affect all enqueued WP JavaScript files.', 'litespeed-cache' ); ?>

				<br />
				<b><?php $this->title( Base::CDN_MAPPING_FILETYPE ); ?></b>:
				<?php echo __( 'Static file type links to be replaced by CDN links.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
				<?php echo sprintf( __( 'This will affect all tags containing attributes: %s %s %s.', 'litespeed-cache' ), '<code>src=""</code>', '<code>data-src=""</code>', '<code>href=""</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/#include-file-types', __( 'Default value', 'litespeed-cache' ) ); ?>

				<br />
				<?php echo sprintf( __( 'If you turn any of the above settings OFF, please remove the related file types from the %s box.' ), '<b>' . __( 'Include File Types', 'litespeed-cache' ) . '</b>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/cdn/#include-file-types' ); ?>
			</div>

		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CDN_ATTR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>

			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 40 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Specify which HTML element attributes will be replaced with CDN Mapping.', 'litespeed-cache' ); ?>
				<?php echo __( 'Only attributes listed here will be replaced.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( 'Use the format %1$s or %2$s (element is optional).', 'litespeed-cache' ), '<code>element.attribute</code>', '<code>.attribute</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_CDN_ORI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Site URL to be served through the CDN. Beginning with %1$s. For example, %2$s.', 'litespeed-cache' ), '<code>//</code>', '<code>' . $home_url . '</code>' ); ?>
				<br /><?php echo sprintf( __( 'Wildcard %1$s supported (match zero or more characters). For example, to match %2$s and %3$s, use %4$s.', 'litespeed-cache' ), '<code>*</code>', '<code>//www.aa.com</code>', '<code>//aa.com</code>', '<code>//*aa.com</code>' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_CDN_ORI_DIR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id, 40 ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Only files within these directories will be pointed to the CDN.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_CDN_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Paths containing these strings will not be served from the CDN.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_CDN_CLOUDFLARE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Use %s API functionality.', 'litespeed-cache' ), 'Cloudflare' ); ?>
				<?php echo sprintf( __( 'This can be managed from <a %2$s>%1$s</a>.', 'litespeed-cache' ), '<b>' . __( 'CDN', 'litespeed-cache' ) . '</b> -&gt; <b>' . __( 'Manage', 'litespeed-cache' ) . '</b>', 'href="admin.php?page=litespeed-cdn#manage"' ); ?>
			</div>
			<div class="litespeed-block">
				<div class='litespeed-col'>
					<label class="litespeed-form-label"><?php echo __( 'Email Address', 'litespeed-cache' ); ?></label>

					<?php $this->build_input( Base::O_CDN_CLOUDFLARE_EMAIL ); ?>
					<div class="litespeed-desc">
						<?php echo sprintf( __( 'Your Email address on %s.', 'litespeed-cache' ), 'Cloudflare' ); ?>
					</div>
				</div>

				<div class='litespeed-col'>
				<label class="litespeed-form-label"><?php echo __( 'Global API Key', 'litespeed-cache' ); ?></label>

					<?php $this->build_input( Base::O_CDN_CLOUDFLARE_KEY ); ?>
					<div class="litespeed-desc">
						<?php echo sprintf( __( 'Your API key is used to access %s APIs.', 'litespeed-cache' ), 'Cloudflare' ); ?>
						<?php echo sprintf( __( 'Get it from <a %1$s>%2$s</a>.', 'litespeed-cache' ), 'href="https://dash.cloudflare.com/profile/api-tokens" target="_blank"', 'Cloudflare' ); ?>
					</div>
				</div>

				<div class='litespeed-col'>
					<label class="litespeed-form-label"><?php echo __( 'Domain', 'litespeed-cache' ); ?></label>

				<?php
					$cf_zone = Conf::val( Base::O_CDN_CLOUDFLARE_ZONE );
					$cls = 	$cf_zone ? ' litespeed-input-success' : ' litespeed-input-warning';
					$this->build_input( Base::O_CDN_CLOUDFLARE_NAME, $cls );
				?>
					<div class="litespeed-desc">
						<?php echo __( 'You can just type part of the domain.', 'litespeed-cache' ); ?>
						<?php echo __( 'Once saved, it will be matched with the current list and completed automatically.', 'litespeed-cache' ); ?>
					</div>
				</div>
			</div>
		</td>
	</tr>

</tbody></table>

<?php
$this->form_end();

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

global $wp_roles;
if ( !isset( $wp_roles ) ) {
	$wp_roles = new \WP_Roles();
}

$roles = array();
foreach ( $wp_roles->roles as $k => $v ) {
	$roles[ $k ] = $v[ 'name' ];
}
ksort( $roles );

?>
<h3 class="litespeed-title-short">
	<?php echo __( 'Tuning Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#tuning-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed CSS files or inline CSS code will not be minified/combined.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optimize_css_excludes</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ); ?>
					<br /><?php echo __( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/master/data/css_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/master/data/css_excludes.txt</a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed JS files or inline JS code will not be minified/combined.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optimize_js_excludes</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-optimize="1"</code>' ); ?>
					<br /><?php echo __( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/master/data/js_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/master/data/js_excludes.txt</a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CCSS_CON; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Specify critical CSS rules for above-the-fold content when enabling %s.', 'litespeed-cache' ), __( 'Load CSS Asynchronously', 'litespeed-cache' ) ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_DEFER_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed JS files or inline JS code will not be deferred.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><span class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_optm_js_defer_exc</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-defer="1"</code>' ); ?>
					<br /><?php echo __( 'Predefined list will also be combined w/ the above settings', 'litespeed-cache' ); ?>: <a href="https://github.com/litespeedtech/lscache_wp/blob/master/data/js_defer_excludes.txt" target="_blank">https://github.com/litespeedtech/lscache_wp/blob/master/data/js_defer_excludes.txt</a>
				</span>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prevent any optimization of listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_EXC_ROLES; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-desc">
				<?php echo __( 'Selected roles will be excluded from all optimizations.', 'litespeed-cache' ); ?>
			</div>
			<div class="litespeed-tick-list">
				<?php foreach ( $roles as $role => $title ): ?>
					<?php $this->build_checkbox( $id . '[]', $title, $this->__cfg->in_optm_exc_roles( $role ), $role ); ?>
				<?php endforeach; ?>
			</div>

		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

// CSS::get_instance()->test_url( '' );
// exit;

$css_summary = CSS::get_summary();
$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_CCSS );

?>

<h3 class="litespeed-title-short">
	<?php echo __( 'CSS Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_MIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Minify CSS files and inline CSS code.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_COMB; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Combine CSS files and inline CSS code.', 'litespeed-cache' ); ?>
				<a href="https://docs.litespeedtech.com/lscache/lscwp/ts-optimize/" target="_blank"><?php echo __( 'How to Fix Problems Caused by CSS/JS Optimization.', 'litespeed-cache' ); ?></a>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_COMB_EXT_INL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Include external CSS and inline CSS in combined file when %1$s is also enabled. This option helps maintain the priorities of CSS, which should minimize potential errors caused by CSS Combine.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OPTM_CSS_COMB ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr class="litespeed-hide">
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_UCSS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use QUIC.cloud online service to generate unique CSS.', 'litespeed-cache' ); ?>
				<?php echo __( 'This will drop the unused CSS on each page.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr class="litespeed-hide">
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_UCSS_ASYNC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Generate unique CSS in the background via a cron-based queue.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'If set to %s this is done in the foreground, which may slow down page load.', 'litespeed-cache' ), '<code>' . __('OFF', 'litespeed-cache') . '</code>' ); ?>
			</div>

			<?php if ( $css_summary ) : ?>
			<div class="litespeed-desc litespeed-left20">
				<?php if ( ! empty( $css_summary[ 'last_request_ucss' ] ) ) : ?>
					<p>
						<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $css_summary[ 'last_request_ucss' ] ) . '</code>'; ?>
					</p>
					<p>
						<?php echo __( 'Last requested cost', 'litespeed-cache' ) . ': <code>' . $css_summary[ 'last_spent_ucss' ] . 's</code>'; ?>
					</p>
				<?php endif; ?>

				<?php if ( $closest_server ) : ?>
					<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_CCSS ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10; Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>"><i class='litespeed-quic-icon'></i></a>
				<?php endif; ?>

			</div>
			<?php endif; ?>

		</td>
	</tr>

	<tr class="litespeed-hide">
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_UCSS_WHITELIST; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'List the CSS selector that its style should be always contained in UCSS.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_HTTP2; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Pre-send internal CSS files to the browser before they are requested. (Requires the HTTP/2 protocol)', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_ASYNC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php if ( ! Conf::val( Base::O_API_KEY ) ) : ?>
				<div class="litespeed-callout notice notice-error inline">
					<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>
					<?php echo Error::msg( 'lack_of_api_key' ); ?>
				</div>
				<?php endif; ?>
				<?php echo __( 'Optimize CSS delivery.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?><br />
				<?php echo sprintf( __( 'When this option is turned %s, it will also load Google Fonts asynchronously.', 'litespeed-cache' ), '<code>' . __( 'ON', 'litespeed-cache' ) . '</code>' ); ?>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-async="1"</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_CCSS_GEN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Leave this option %1$s to allow communication with the QUIC.cloud CCSS service. If set to %2$s, Critical CSS will not be generated.', 'litespeed-cache' ), '<code>' . __( 'ON', 'litespeed-cache' ) . '</code>', '<code>' . __( 'OFF', 'litespeed-cache' ) . '</code>' ); ?><br />
				<?php echo sprintf( __( 'This option only works if %1$s is %2$s.', 'litespeed-cache' ), '<code>' . __( 'Load CSS Asynchronously', 'litespeed-cache' ) . '</code>', '<code>' . __( 'ON', 'litespeed-cache' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_CCSS_ASYNC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Automatically generate critical CSS in the background via a cron-based queue.', 'litespeed-cache' ); ?>
				<?php echo sprintf( __( 'If set to %s this is done in the foreground, which may slow down page load.', 'litespeed-cache' ), '<code>' . __('OFF', 'litespeed-cache') . '</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#generate-critical-css-in-the-background' ); ?>
			</div>

			<?php if ( $css_summary ) : ?>
			<div class="litespeed-desc litespeed-left20">
				<?php if ( ! empty( $css_summary[ 'last_request' ] ) ) : ?>
					<p>
						<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $css_summary[ 'last_request' ] ) . '</code>'; ?>
					</p>
					<p>
						<?php echo __( 'Last requested cost', 'litespeed-cache' ) . ': <code>' . $css_summary[ 'last_spent' ] . 's</code>'; ?>
					</p>
				<?php endif; ?>

				<?php if ( $closest_server ) : ?>
					<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_CCSS ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10; Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>"><i class='litespeed-quic-icon'></i></a>
				<?php endif; ?>

				<?php if ( ! empty( $css_summary[ 'queue' ] ) ) : ?>
					<div class="litespeed-callout notice notice-warning inline">
						<h4>
							<?php echo __( 'URL list in queue waiting for cron','litespeed-cache' ); ?>
							<a href="<?php echo Utility::build_url( Router::ACTION_CSS, CSS::TYPE_CLEAR_Q ); ?>" class="button litespeed-btn-warning litespeed-right">Clear</a>
						</h4>
						<p>
						<?php foreach ( $css_summary[ 'queue' ] as $k => $v ) : ?>
							<?php if ( ! is_array( $v ) ) continue; ?>
							<?php echo $v[ 'url' ]; ?>
							<?php if ( $v[ 'is_mobile' ] ) echo ' <span data-balloon-pos="up" aria-label="mobile">📱</span>'; ?>
							<br />
						<?php endforeach; ?>
						</p>
					</div>
					<a href="<?php echo Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GENERATE_CRITICAL ); ?>" class="button litespeed-btn-success">
						<?php echo __( 'Run Queue Manually', 'litespeed-cache' ); ?>
					</a>
				<?php endif; ?>
			</div>
			<?php endif; ?>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_CCSS_SEP_POSTTYPE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __('List post types where each item of that type should have its own CCSS generated.', 'litespeed-cache'); ?>
				<?php echo sprintf( __( 'For example, if every Page on the site has different formatting, enter %s in the box. Separate critical CSS files will be stored for every Page on the site.', 'litespeed-cache' ), '<code>page</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#separate-ccss-cache-post-types' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_CCSS_SEP_URI; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Separate critical CSS files will be generated for paths containing these strings.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_CSS_ASYNC_INLINE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'This will inline the asynchronous CSS library to avoid render blocking.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_CSS_FONT_DISPLAY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( __( 'Default', 'litespeed-cache' ), 'Block', 'Swap', 'Fallback', 'Optional' ) ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Set this to append %1$s to all %2$s rules before caching CSS to specify how fonts should be displayed while being downloaded.', 'litespeed-cache' ), '<code>font-display</code>', '<code>@font-face</code>' ); ?>
				<br /><?php echo sprintf( __( '%s is recommended.', 'litespeed-cache' ), '<code>' . __( 'Swap', 'litespeed-cache' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$last_generated = Avatar::get_summary();
$avatar_queue = Avatar::get_instance()->queue_count();
?>

<?php if ( Avatar::need_db() && ! Data::get_instance()->tb_exist( 'avatar' ) ) : ?>
<div class="litespeed-callout notice notice-error inline">
	<h4><?php echo __( 'WARNING', 'litespeed-cache' ); ?></h4>
	<p><?php echo sprintf( __( 'Failed to create Avatar table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.', 'litespeed-cache' ), 'href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:installation" target="_blank"' ); ?></p>
</div>
<?php endif; ?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Localization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_DISCUSS_AVATAR_CACHE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Store Gravatar locally.', 'litespeed-cache' ); ?>
				<?php echo __( 'Accelerates the speed by caching Gravatar (Globally Recognized Avatars).', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_DISCUSS_AVATAR_CRON; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Refresh Gravatar cache by cron.', 'litespeed-cache' ); ?>
			</div>

			<?php if ( $last_generated ) : ?>
			<div class="litespeed-desc">
				<?php if ( ! empty( $last_generated[ 'last_request' ] ) ) : ?>
					<p>
						<?php echo __( 'Last ran', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $last_generated[ 'last_request' ] ) . '</code>'; ?>
					</p>
				<?php endif; ?>
				<?php if ( $avatar_queue ) : ?>
					<div class="litespeed-callout notice notice-warning inline">
						<h4>
							<?php echo __( 'Avatar list in queue waiting for update','litespeed-cache' ); ?>:
							<?php echo $avatar_queue; ?>
						</h4>
					</div>
					<a href="<?php echo Utility::build_url( Router::ACTION_AVATAR, Avatar::TYPE_GENERATE ); ?>" class="button litespeed-btn-success">
						<?php echo __( 'Run Queue Manually', 'litespeed-cache' ); ?>
					</a>
				<?php endif; ?>
			</div>
			<?php endif; ?>

		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_DISCUSS_AVATAR_CACHE_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, Gravatar files are cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 3600 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_LOCALIZE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Localize external resources.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localize' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th class="litespeed-padding-left">
			<?php $id = Base::O_OPTM_LOCALIZE_DOMAINS; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id ); ?>
				</div>
				<div>
					<?php $this->recommended( $id, true ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Resources listed here will be copied and replaced with local URLs.', 'litespeed-cache' ); ?>
				<?php echo __( 'HTTPS sources only.', 'litespeed-cache' ); ?>

				<?php Doc::one_per_line(); ?>

				<br /><?php echo sprintf( __( 'Comments are supported. Start a line with a %s to turn it into a comment line.', 'litespeed-cache' ), '<code>#</code>' ); ?>

				<br /><?php echo __( 'Non-`.js` file extensions will be ignored.', 'litespeed-cache' ); ?>
				<?php echo __( 'Example', 'litespeed-cache' ); ?>: <code>https://www.example.com/one.js</code>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#localization-files' ); ?>

			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Optimization Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#optimization-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_TTL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id ); ?> <?php $this->readable_seconds(); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify how long, in seconds, CSS/JS files are cached.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 3600 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_HTML_MIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Minify HTML content.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_DNS_PREFETCH; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prefetching DNS can reduce latency for visitors.', 'litespeed-cache' ); ?>
				<?php echo __( 'For example', 'litespeed-cache' ); ?>: <code>//www.example.com</code>
				<?php Doc::one_per_line(); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#dns-prefetch' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_DNS_PREFETCH_CTRL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Widely enable DNS prefetch for URLs in the document, including images, CSS, JavaScript, and so forth.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve the page loading speed.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_QS_RM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Remove query strings from static resources.', 'litespeed-cache' ); ?>
				<br /><font class="litespeed-warning">
					⚠️
					<?php echo __( 'Google reCAPTCHA will be bypassed automatically.', 'litespeed-cache' ); ?>
				</font>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Append query string %s to the resources to bypass this action.', 'litespeed-cache' ), '<code>&_litespeed_rm_qs=0</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_GGFONTS_ASYNC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use Web Font Loader library to load Google Fonts asynchronously while leaving other CSS intact.', 'litespeed-cache' ); ?>
				<?php echo __( 'This will also add a preconnect to Google for faster Google Fonts downloading.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#load-google-fonts-asynchronously' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_GGFONTS_RM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prevent Google Fonts from loading on all pages.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_EMOJI_RM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Stop loading WordPress.org emoji. Browser default emoji will be displayed instead.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_NOSCRIPT_RM; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'This option will remove all %s tags from HTML.', 'litespeed-cache' ), '<code>&lt;noscript&gt;</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#remove-noscript-tags' ); ?>
			</div>
		</td>
	</tr>

</tbody></table><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$menu_list = array(
	'settings_css' 				=> __( 'CSS Settings', 'litespeed-cache' ),
	'settings_js'				=> __( 'JS Settings', 'litespeed-cache' ),
	'settings_html' 			=> __( 'Optimization', 'litespeed-cache' ),
	'settings_media' 			=> __( 'Media Settings', 'litespeed-cache' ),
	'settings_media_exc'		=> __( 'Media Excludes', 'litespeed-cache' ),
	'settings_localization'		=> __( 'Localization', 'litespeed-cache' ),
	'settings_tuning' 			=> __( 'Tuning', 'litespeed-cache' ),
);

$db_count = DB_Optm::db_count( 'all_cssjs', true );
$maybe_show_warning = $db_count > wp_count_posts()->publish * 2 && $db_count > 10000;

?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Page Optimization', 'litespeed-cache' ) ; ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER ; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">

	<?php if ( Optimize::need_db() && ! Data::get_instance()->tb_exist( 'cssjs' ) ) : ?>
	<div class="litespeed-callout notice notice-error inline">
		<h4><?php echo __( 'WARNING', 'litespeed-cache' ) ; ?></h4>
		<p><?php echo sprintf( __( 'Failed to create Optimizer table. Please follow <a %s>Table Creation guidance from LiteSpeed Wiki</a> to finish setup.', 'litespeed-cache' ), 'href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache:lscwp:installation" target="_blank"' ) ; ?></p>
	</div>
	<?php endif; ?>

	<?php if ( $maybe_show_warning ): ?>
	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php echo __( 'NOTICE', 'litespeed-cache' ) ; ?></h4>
		<p>
			<?php echo sprintf( __( 'You are now having %s records in CSS/JS optimization table. You may need to check if you have random string issue or not.', 'litespeed-cache' ), '<code>' . $db_count . '</code>' ); ?>
			<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/ts-optimize/#find-and-exclude-the-random-string' ); ?>
		<p><?php echo sprintf( __( 'To clear the outdated CSS/JS optimization data, please go to %s menu.', 'litespeed-cache' ), '<a href="' . admin_url( 'admin.php?page=litespeed-db_optm' ) . '">' . __( 'Database' ) . '</a>' ); ?></p>
		</p>
	</div>
	<?php endif; ?>

	<div class="litespeed-callout notice notice-warning inline">
		<h4><?php echo __( 'NOTICE', 'litespeed-cache' ) ; ?></h4>
		<p><?php echo __( 'Please test thoroughly when enabling any option in this list. After changing Minify/Combine settings, please do a Purge All action.', 'litespeed-cache' ) ; ?></p>
	</div>

	<h2 class="litespeed-header nav-tab-wrapper">
	<?php
		$i = 1 ;
		foreach ($menu_list as $tab => $val){
			$accesskey = $i <= 9 ? "litespeed-accesskey='$i'" : '' ;
			echo "<a class='litespeed-tab nav-tab' href='#$tab' data-litespeed-tab='$tab' $accesskey>$val</a>" ;
			$i ++ ;
		}
	?>
	</h2>

	<div class="litespeed-body">
	<?php
		$this->form_action() ;

		// include all tpl for faster UE
		foreach ($menu_list as $tab => $val) {
			echo "<div data-litespeed-layout='$tab'>" ;
			require LSCWP_DIR . "tpl/page_optm/$tab.tpl.php" ;
			echo "</div>" ;
		}

		$this->form_end() ;

	?>
	</div>

</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Media Excludes', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#media-excludes-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Listed images will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
				<?php Doc::one_per_line(); ?>
				<br /><font class="litespeed-success">
					<?php echo __( 'API', 'litespeed-cache' ); ?>:
					<?php echo sprintf( __( 'Filter %s is supported.', 'litespeed-cache' ), '<code>litespeed_media_lazy_img_excludes</code>' ); ?>
					<?php echo sprintf( __( 'Elements with attribute %s in html code will be excluded.', 'litespeed-cache' ), '<code>data-no-lazy="1"</code>' ); ?>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_CLS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<div class="litespeed-textarea-recommended">
				<div>
					<?php $this->build_textarea( $id ); ?>
				</div>
				<div>
					<?php $this->recommended( $id ); ?>
				</div>
			</div>

			<div class="litespeed-desc">
				<?php echo __( 'Images containing these class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url( true ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_PARENT_CLS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Images having these parent class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_IFRAME_LAZY_CLS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Iframes containing these class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url( true ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_IFRAME_LAZY_PARENT_CLS_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Iframes having these parent class names will not be lazy loaded.', 'litespeed-cache' ); ?>
				<?php Doc::one_per_line(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_URI_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Prevent any lazy load of listed pages.', 'litespeed-cache' ); ?>
				<?php $this->_uri_usage_example(); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LQIP_EXC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_textarea( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'These images will not generate LQIP.', 'litespeed-cache' ); ?>
				<?php Doc::full_or_partial_url(); ?>
			</div>
		</td>
	</tr>

</tbody></table><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$placeholder_summary = Placeholder::get_summary();

$closest_server = Cloud::get_summary( 'server.' . Cloud::SVC_LQIP );

?>

<h3 class="litespeed-title-short">
	<?php echo __( 'Media Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#media-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>
	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Load images only when they enter the viewport.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve page loading time by reducing initial HTTP requests.', 'litespeed-cache' ); ?>
				<br /><font class="litespeed-success">
					💡:
					<a href="https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lazy-load-images" target="_blank"><?php echo __('Adding Style to Your Lazy-Loaded Images', 'litespeed-cache'); ?></a>
				</font>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZY_PLACEHOLDER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-long' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify a base64 image to be used as a simple placeholder while images finish loading.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( 'This can be predefined in %2$s as well using constant %1$s, with this setting taking priority.', 'litespeed-cache' ), '<code>LITESPEED_PLACEHOLDER</code>', '<code>wp-config.php</code>' ); ?>
				<br /><?php echo sprintf( __( 'By default a gray image placeholder %s will be used.', 'litespeed-cache' ), '<code>data:image/gif;base64,R0lGODdhAQABAPAAAMPDwwAAACwAAAAAAQABAAACAkQBADs=</code>' ); ?>
				<br /><?php echo sprintf( __( 'For example, %s can be used for a transparent placeholder.', 'litespeed-cache' ), '<code>data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_PLACEHOLDER_RESP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Responsive image placeholders can help to reduce layout reshuffle when images are loaded.', 'litespeed-cache' ); ?>
				<?php echo __( 'This will generate the placeholder with same dimensions as the image if it has the width and height attributes.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_PLACEHOLDER_RESP_SVG; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-long' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify an SVG to be used as a placeholder when generating locally.', 'litespeed-cache' ); ?>
				<?php echo __( 'It will be converted to a base64 SVG placeholder on-the-fly.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( 'Variables %s will be replaced with the corresponding image properties.', 'litespeed-cache' ), '<code>{width} {height}</code>' ); ?>
				<br /><?php echo sprintf( __( 'Variables %s will be replaced with the configured background color.', 'litespeed-cache' ), '<code>{color}</code>' ); ?>
				<br /><?php $this->recommended( $id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_PLACEHOLDER_RESP_COLOR; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, null, null, 'color' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the responsive placeholder SVG color.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LQIP; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for responsive image previews while loading.', 'litespeed-cache' ); ?>
				<br /><?php echo __( 'Keep this off to use plain color placeholders.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lqip-cloud-generator' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LQIP_QUAL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Specify the quality when generating LQIP.', 'litespeed-cache' ); ?>
				<br /><?php echo __( 'Larger numbers will generate higher resolution quality placeholder, but will result in larger files which will increase page size and consume more points.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 1, 20 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LQIP_MIN_W; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_input( $id, 'litespeed-input-short' ); ?> x
			<?php $this->build_input( Base::O_MEDIA_LQIP_MIN_H, 'litespeed-input-short' ); ?>
			<?php echo __( 'pixels', 'litespeed-cache' ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'LQIP requests will not be sent for images where both width and height are smaller than these dimensions.', 'litespeed-cache' ); ?>
				<?php $this->recommended( $id ); ?>
				<?php $this->_validate_ttl( $id, 10, 800 ); ?>
				<?php $this->_validate_ttl( Base::O_MEDIA_LQIP_MIN_H, 10, 800 ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_PLACEHOLDER_RESP_ASYNC; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Automatically generate LQIP in the background via a cron-based queue.', 'litespeed-cache' ); ?>
				<?php echo sprintf(
					__( 'If set to %1$s, before the placeholder is localized, the %2$s configuration will be used.', 'litespeed-cache' ),
					'<code>' . __('ON', 'litespeed-cache') . '</code>',
					'<code>' . Lang::title( Base::O_MEDIA_PLACEHOLDER_RESP_SVG ) . '</code>'
				); ?>
				<?php echo sprintf( __( 'If set to %s this is done in the foreground, which may slow down page load.', 'litespeed-cache' ), '<code>' . __('OFF', 'litespeed-cache') . '</code>' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#generate-lqip-in-background' ); ?>
			</div>

			<?php if ( $placeholder_summary ) : ?>
			<div class="litespeed-desc">
				<?php if ( ! empty( $placeholder_summary[ 'last_request' ] ) ) : ?>
					<p>
						<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $placeholder_summary[ 'last_request' ] ) . '</code>'; ?>
					</p>
				<?php endif; ?>

				<?php if ( $closest_server ) : ?>
					<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_LQIP ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10; Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>"><i class='litespeed-quic-icon'></i></a>
				<?php endif; ?>

				<?php if ( ! empty( $placeholder_summary[ 'queue' ] ) ) : ?>
					<div class="litespeed-callout notice notice-warning inline">
						<h4>
							<?php echo __( 'Size list in queue waiting for cron','litespeed-cache' ); ?>
							<a href="<?php echo Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_CLEAR_Q ); ?>" class="button litespeed-btn-warning litespeed-right">Clear</a>
						</h4>
						<p>
							<?php echo implode( '<br>', $placeholder_summary[ 'queue' ] ); ?>
						</p>
					</div>
					<a href="<?php echo Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_GENERATE ); ?>" class="button litespeed-btn-success">
						<?php echo __( 'Run Queue Manually', 'litespeed-cache' ); ?>
					</a>
				<?php endif; ?>
			</div>
			<?php endif; ?>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_IFRAME_LAZY; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Load iframes only when they enter the viewport.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve page loading time by reducing initial HTTP requests.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_MEDIA_LAZYJS_INLINE; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Include the lazy load image JavaScript library inline.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?>
				<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#inline-lazy-load-images-library' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;
?>

<h3 class="litespeed-title-short">
	<?php echo __( 'JS Settings', 'litespeed-cache' ); ?>
	<?php Doc::learn_more( 'https://docs.litespeedtech.com/lscache/lscwp/pageopt/#js-settings-tab' ); ?>
</h3>

<table class="wp-list-table striped litespeed-table"><tbody>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_MIN; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Minify JS files and inline JS codes.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_COMB; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Combine all local JS files into a single file.', 'litespeed-cache' ); ?>
				<a href="https://docs.litespeedtech.com/lscache/lscwp/ts-optimize/" target="_blank"><?php echo __( 'How to Fix Problems Caused by CSS/JS Optimization.', 'litespeed-cache' ); ?></a>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_COMB_EXT_INL; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo sprintf( __( 'Include external JS and inline JS in combined file when %1$s is also enabled. This option helps maintain the priorities of JS execution, which should minimize potential errors caused by JS Combine.', 'litespeed-cache' ), '<code>' . Lang::title( Base::O_OPTM_JS_COMB ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_HTTP2; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Pre-send internal JS files to the browser before they are requested. (Requires the HTTP/2 protocol)', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_DEFER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Doing so can help reduce resource contention and improve performance.', 'litespeed-cache' ); ?>
				<?php echo __( 'This can improve your speed score in services like Pingdom, GTmetrix and PageSpeed.', 'litespeed-cache' ); ?>
			</div>
		</td>
	</tr>

	<tr>
		<th>
			<?php $id = Base::O_OPTM_JS_INLINE_DEFER; ?>
			<?php $this->title( $id ); ?>
		</th>
		<td>
			<?php $this->build_switch( $id, array( __( 'Default', 'litespeed-cache' ), __( 'After DOM Ready', 'litespeed-cache' ), __( 'Deferred', 'litespeed-cache' ) ) ); ?>
			<div class="litespeed-desc">
				<?php echo __( 'Loading inline JS after DOM is fully loaded can increase JS compatibility and reduce JS error when other JS optimization features are enabled.', 'litespeed-cache' ); ?>
				<br /><?php echo sprintf( __( '%s is recommended although would cause the most issues for scripts that are placed inline to avoid being deferred.', 'litespeed-cache' ), '<code>' . __( 'Deferred', 'litespeed-cache' ) . '</code>' ); ?>
			</div>
		</td>
	</tr>

</tbody></table>
<?php defined( 'WPINC' ) || exit ; ?>
<?php

\LiteSpeed\ESI::get_instance()->load_esi_block() ;


<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$lscache_stats = GUI::get_instance()->lscache_stats();

$health_scores = Health::get_instance()->scores();

$crawler_summary = Crawler::get_summary();

// Image related info
$optm_summary = Img_Optm::get_summary();
$img_count = Img_Optm::get_instance()->img_count();
if ( ! empty( $img_count[ 'groups_all' ] ) ) {
	$img_gathered_percentage = 100 - floor( $img_count[ 'groups_not_gathered' ] * 100 / $img_count[ 'groups_all' ] );
}
else {
	$img_gathered_percentage = 0;
}

if ( ! empty( $img_count[ 'imgs_gathered' ] ) ) {
	$img_finished_percentage = 100 - floor( $img_count[ 'img.' . Img_Optm::STATUS_RAW ] * 100 / $img_count[ 'imgs_gathered' ] );
}
else {
	$img_finished_percentage = 0;
}

$cloud_summary = Cloud::get_summary();
$css_summary = CSS::get_summary();
$placeholder_summary = Placeholder::get_summary();

?>

<div class="litespeed-dashboard">


	<div class="litespeed-dashboard-header">
		<h3 class="litespeed-dashboard-title">
			<?php echo __( 'QUIC.cloud Service Usage Statistics', 'litespeed-cache' ); ?>
			<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_SYNC_USAGE ); ?>">
				<span class="dashicons dashicons-update"></span>
				<span class="screen-reader-text"><?php echo __( 'Sync data from Cloud', 'litespeed-cache' ); ?></span>
			</a>
		</h3>
		<hr>
		<a href="https://docs.litespeedtech.com/lscache/lscwp/dashboard/#usage-statistics" target="_blank" class="litespeed-learn-more"><?php echo __( 'Learn More', 'litespeed-cache' );?></a>
	</div>

	<div class="litespeed-dashboard-stats-wrapper">
		<?php
		$cat_list = array(
			'img_optm'	=> __( 'Image Optimization', 'litespeed-cache' ),
			'ccss'		=> __( 'Critical CSS', 'litespeed-cache' ),
			'cdn'		=> __( 'CDN Bandwidth', 'litespeed-cache' ),
			'lqip'		=> __( 'Low Quality Image Placeholder', 'litespeed-cache' ),
		);

		foreach ( $cat_list as $svc => $title ) :
			$finished_percentage = 0;
			$total_used = $used = $quota = $pag_used = $pag_total = '-';
			$pag_width = 0;
			$percentage_bg = 'success';
			$pag_txt_color = '';

			if ( ! empty( $cloud_summary[ 'usage.' . $svc ] ) ) {
				$finished_percentage = floor( $cloud_summary[ 'usage.' . $svc ][ 'used' ] * 100 / $cloud_summary[ 'usage.' . $svc ][ 'quota' ] );
				$used = $cloud_summary[ 'usage.' . $svc ][ 'used' ];
				$quota = $cloud_summary[ 'usage.' . $svc ][ 'quota' ];
				$pag_used = ! empty( $cloud_summary[ 'usage.' . $svc ][ 'pag_used' ] ) ? $cloud_summary[ 'usage.' . $svc ][ 'pag_used' ] : 0;
				$pag_bal = ! empty( $cloud_summary[ 'usage.' . $svc ][ 'pag_bal' ] ) ? $cloud_summary[ 'usage.' . $svc ][ 'pag_bal' ] : 0;
				$pag_total = $pag_used + $pag_bal;
				if ( ! empty( $cloud_summary[ 'usage.' . $svc ][ 'total_used' ] ) ) {
					$total_used = $cloud_summary[ 'usage.' . $svc ][ 'total_used' ];
				}

				if ( $pag_total ) {
					$pag_width = round( $pag_used / $pag_total * 100 ) . '%';
				}

				if ( $finished_percentage > 85 ) {
					$percentage_bg = 'warning';
					if ( $finished_percentage > 95 ) {
						$percentage_bg = 'danger';
						if ( $pag_bal ) { // is using PAG quota
							$percentage_bg = 'warning';
							$pag_txt_color = 'litespeed-success';
						}
					}
				}

				if ( $svc == 'cdn' ) {
					$used = Utility::real_size( $used * 1000000 * 100, true );
					$quota = Utility::real_size( $quota * 1000000 * 100, true );
					$pag_used = Utility::real_size( $pag_used * 1000000 * 100, true );
					$pag_bal = Utility::real_size( $pag_bal * 1000000 * 100, true );
				}
			}

		?>
			<div class="postbox litespeed-postbox">
				<div class="inside">
					<h3 class="litespeed-title"><?php echo $title; ?></h3>

					<div class="litespeed-flex-container">
						<div class="litespeed-icon-vertical-middle litespeed-pie-<?php echo $percentage_bg;?>">
							<?php echo GUI::pie( $finished_percentage, 60, false ); ?>
						</div>
						<div>
							<div class="litespeed-dashboard-stats">
								<h3><?php echo ( $svc == 'img_optm' ? __('Fast Queue Usage','litespeed-cache') : __( 'Usage', 'litespeed-cache' ) ); ?></h3>
								<p>
									<strong><?php echo $used; ?></strong>
									<?php if( $used != $quota ) { ?>
										<span class="litespeed-desc"> of <?php echo $quota; ?></span>
									<?php } ?>
								</p>
							</div>
						</div>
					</div>
					<?php if ( $pag_total > 0 ) { ?>
						<p class="litespeed-dashboard-stats-payg <?php echo $pag_txt_color; ?>">
							<?php echo __('PAYG Balance','litespeed-cache'); ?>: <strong><?php echo $pag_bal; ?></strong>
							<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo __('This Month Usage','litespeed-cache'); ?>: <?php echo $pag_used;?>">
								<span class="dashicons dashicons-info"></span>
								<span class="screen-reader-text"><?php echo __( 'Pay as You Go Usage Statistics', 'litespeed-cache' );?></span>
							</button>
						</p>
					<?php } ?>

					<?php if ( $svc == 'img_optm' ) { ?>
						<p class="litespeed-dashboard-stats-total">
							<?php echo __('Total Usage','litespeed-cache'); ?>: <strong><?php echo $total_used; ?> / ∞</strong>
							<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo __('Total images optimized in this month','litespeed-cache'); ?>">
								<span class="dashicons dashicons-info"></span>
							</button>
						</p>
						<div class="clear"></div>
					<?php } ?>
				</div>
			</div>
		<?php endforeach; ?>
	</div>

	<p class="litespeed-right litespeed-qc-dashboard-link"><a href="<?php echo Cloud::CLOUD_SERVER_DASH; ?>" class="litespeed-link-with-icon" target="_blank"><?php echo __( 'Go to QUIC.cloud dashboard', 'litespeed-cache' ) ;?> <span class="dashicons dashicons-external"></span></a></p>

	<div class="litespeed-dashboard-group">
		<hr>
		<div class="litespeed-flex-container">

			<div class="postbox litespeed-postbox litespeed-postbox-pagetime">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Page Load Time', 'litespeed-cache' ); ?>
						<a href="<?php echo Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SPEED ); ?>">
							<span class="dashicons dashicons-update"></span>
							<span class="screen-reader-text"><?php echo __('Refresh page load time', 'litespeed-cache'); ?></span>
						</a>
					</h3>

					<div>
						<div class="litespeed-flex-container">

							<?php if ( $health_scores[ 'speed_before' ] ) : ?>
								<div class="litespeed-score-col">
									<p class="litespeed-text-grey">
										<?php echo __( 'Before', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-text-md litespeed-text-grey">
										<?php echo $health_scores[ 'speed_before' ]; ?><span class="litespeed-text-large">s</span>
									</div>

								</div>
								<div class="litespeed-score-col">
									<p class="litespeed-text-grey">
										<?php echo __( 'After', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-text-md litespeed-text-success">
										<?php echo $health_scores[ 'speed_after' ]; ?><span class="litespeed-text-large">s</span>
									</div>
								</div>
								<div class="litespeed-score-col litespeed-score-col--imp">
									<p class="litespeed-text-grey" style="white-space: nowrap;">
										<?php echo __( 'Improved by', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-text-jumbo litespeed-text-success">
										<?php echo $health_scores[ 'speed_improved' ]; ?><span class="litespeed-text-large">%</span>
									</div>
								</div>
							<?php endif; ?>

						</div>
					</div>
				</div>

				<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
					<?php if ( ! empty( $cloud_summary[ 'last_request.health-speed' ] ) ) : ?>
						<?php echo __( 'Last requested', 'litespeed-cache' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.health-speed' ] ) ?>
					<?php endif; ?>

					<?php $closest_server = Cloud::get_summary( 'server.' . CLoud::SVC_HEALTH ); ?>
					<?php if ( $closest_server ) : ?>
						<a href="<?php echo Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_REDETECT_CLOUD, false, null, array( 'svc' => Cloud::SVC_HEALTH ) ); ?>" data-balloon-pos="up" data-balloon-break aria-label='<?php echo sprintf( __( 'Current closest Cloud server is %s.&#10;Click to redetect.', 'litespeed-cache' ), $closest_server ); ?>' data-litespeed-cfm="<?php echo __( 'Are you sure you want to redetect the closest cloud server for this service?', 'litespeed-cache' ) ; ?>" class="litespeed-right"><i class='litespeed-quic-icon'></i></a>
					<?php endif; ?>
				</div>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-pagespeed">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'PageSpeed Score', 'litespeed-cache' ); ?>
						<a href="<?php echo Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SCORE ); ?>">
							<span class="dashicons dashicons-update"></span>
							<span class="screen-reader-text"><?php echo __('Refresh page score', 'litespeed-cache'); ?></span>
						</a>
					</h3>

					<div>

						<div class="litespeed-margin-bottom20">
							<div class="litespeed-row-flex" style="margin-left: -10px;">

							<?php if ( ! empty( $health_scores[ 'score_before' ] ) ) : ?>
								<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
									<p class="litespeed-text-grey litespeed-text-center">
										<?php echo __( 'Before', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-promo-score">
										<?php echo GUI::pie( $health_scores[ 'score_before' ], 45, false, true, 'litespeed-pie-' . GUI::get_instance()->get_cls_of_pagescore( $health_scores[ 'score_before' ] ) ); ?>
									</div>
								</div>
								<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
									<p class="litespeed-text-grey litespeed-text-center">
										<?php echo __( 'After', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-promo-score">
										<?php echo GUI::pie( $health_scores[ 'score_after' ], 45, false, true, 'litespeed-pie-' . GUI::get_instance()->get_cls_of_pagescore( $health_scores[ 'score_after' ] ) ); ?>
									</div>
								</div>
								<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
									<p class="litespeed-text-grey" style="white-space: nowrap;">
										<?php echo __( 'Improved by', 'litespeed-cache' ); ?>
									</p>
									<div class="litespeed-postbox-score-improve litespeed-text-fern">
										<?php echo $health_scores[ 'score_improved' ]; ?><span class="litespeed-text-large">%</span>
									</div>
								</div>
							<?php endif; ?>

							</div>

						</div>
					</div>
				</div>

				<?php if ( ! empty( $cloud_summary[ 'last_request.health-score' ] ) ) : ?>
					<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
						<?php echo __( 'Last requested' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.health-score' ] ) ?>
					</div>
				<?php endif; ?>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-double litespeed-postbox-imgopt">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Image Optimization Summary', 'litespeed-cache' ); ?>
					</h3>
					<div class="litespeed-postbox-double-content">
						<div class="litespeed-postbox-double-col">
							<div class="litespeed-flex-container">
								<div class="litespeed-icon-vertical-middle">
									<?php echo GUI::pie( $img_gathered_percentage, 70, true ); ?>
								</div>
								<div>
									<div class="litespeed-dashboard-stats">
										<h3><?php echo __('Image Groups Prepared','litespeed-cache'); ?></h3>
										<p>
											<strong><?php echo ( $img_count[ 'groups_all' ] - $img_count[ 'groups_not_gathered' ] ); ?></strong>
											<span class="litespeed-desc">of <?php echo $img_count[ 'groups_all' ]; ?></span>
										</p>
									</div>
								</div>
							</div>

							<div class="litespeed-flex-container">
								<div class="litespeed-icon-vertical-middle">
									<?php echo GUI::pie( $img_finished_percentage, 70, true ); ?>
								</div>
								<div>
									<div class="litespeed-dashboard-stats">
										<h3><?php echo __('Images Requested','litespeed-cache'); ?></h3>
										<p>
											<strong><?php echo ( $img_count[ 'imgs_gathered' ] - $img_count[ 'img.' . Img_Optm::STATUS_RAW ]); ?></strong>
											<span class="litespeed-desc">of <?php echo $img_count[ 'imgs_gathered' ]; ?></span>
										</p>
									</div>
								</div>
							</div>
						</div>
						<div class="litespeed-postbox-double-col">
							<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ) ) : ?>
							<p class="litespeed-success">
								<?php echo __('Images requested', 'litespeed-cache'); ?>:
								<code>
									<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_REQUESTED ] ); ?>
									(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_REQUESTED ], 'image' ); ?>)
								</code>
							</p>
							<?php endif; ?>

							<?php if ( ! empty( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ) ) : ?>
								<p class="litespeed-success">
									<?php echo __('Images notified to pull', 'litespeed-cache'); ?>:
									<code>
										<?php echo Admin_Display::print_plural( $img_count[ 'group.' . Img_Optm::STATUS_NOTIFIED ] ); ?>
										(<?php echo Admin_Display::print_plural( $img_count[ 'img.' . Img_Optm::STATUS_NOTIFIED ], 'image' ); ?>)
									</code>

								</p>
							<?php endif; ?>

							<p>
								<?php echo __( 'Last Request', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $optm_summary[ 'last_requested' ] ) ? Utility::readable_time( $optm_summary[ 'last_requested' ] ) : '-'; ?></code>
							</p>
							<p>
								<?php echo __( 'Last Pull', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $optm_summary[ 'last_pull' ] ) ? Utility::readable_time( $optm_summary[ 'last_pull' ] ) : '-'; ?></code>
							</p>

							<?php
							$cache_list = array(
								Base::O_IMG_OPTM_AUTO	=> Lang::title( Base::O_IMG_OPTM_AUTO ),
								Base::O_IMG_OPTM_CRON	=> Lang::title( Base::O_IMG_OPTM_CRON ),
							);
							foreach ( $cache_list as $id => $title ) :
								$v = Conf::val( $id );
							?>
								<p>
									<?php if ( $v ) : ?>
										<span class="litespeed-label-success litespeed-label-dashboard">ON</span>
									<?php else: ?>
										<span class="litespeed-label-danger litespeed-label-dashboard">OFF</span>
									<?php endif; ?>
									<?php echo $title; ?>
								</p>
							<?php endforeach; ?>
						</div>
					</div>

				</div>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-cache">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Cache Status', 'litespeed-cache' ); ?>
					</h3>

				<?php
					$cache_list = array(
						Base::O_CACHE			=> __( 'Public Cache', 'litespeed-cache' ),
						Base::O_CACHE_PRIV		=> __( 'Private Cache', 'litespeed-cache' ),
						Base::O_OBJECT			=> __( 'Object Cache', 'litespeed-cache' ),
						Base::O_CACHE_BROWSER	=> __( 'Browser Cache', 'litespeed-cache' ),
					);
					foreach ( $cache_list as $id => $title ) :
						$v = Conf::val( $id );
				?>
						<p>
							<?php if ( $v ) : ?>
								<span class="litespeed-label-success litespeed-label-dashboard">ON</span>
							<?php else: ?>
								<span class="litespeed-label-danger litespeed-label-dashboard">OFF</span>
							<?php endif; ?>
							<?php echo $title; ?>
						</p>
					<?php endforeach; ?>
				</div>
				<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
					<div>
						<a href="<?php echo admin_url( 'admin.php?page=litespeed-cache' ); ?>">Manage Cache</a>
					</div>
				</div>
			</div>

			<?php if ( $lscache_stats ) : ?>
			<div class="postbox litespeed-postbox litespeed-postbox-cache-stats">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Cache Stats', 'litespeed-cache' ); ?>
					</h3>

				<?php foreach ( $lscache_stats as $title => $val ) : ?>
					<p><?php echo $title; ?>: <?php echo $val ? "<code>$val</code>" : '-'; ?></p>
				<?php endforeach; ?>

				</div>
			</div>
			<?php endif; ?>

			<div class="postbox litespeed-postbox litespeed-postbox-ccss">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Critical CSS', 'litespeed-cache' ); ?>
					</h3>

					<?php if ( ! empty( $css_summary[ 'last_request' ] ) ) : ?>
						<p>
							<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $css_summary[ 'last_request' ] ) . '</code>'; ?>
						</p>
						<p>
							<?php echo __( 'Time to execute previous request', 'litespeed-cache' ) . ': <code>' . $css_summary[ 'last_spent' ] . 's</code>'; ?>
						</p>
					<?php endif; ?>

					<p>
						<?php echo __( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $css_summary[ 'queue' ] ) ? count( $css_summary[ 'queue' ] ) : '-' ?></code>
						<a href="<?php echo ! empty( $css_summary[ 'queue' ] ) ? Utility::build_url( Router::ACTION_CSS, CSS::TYPE_GENERATE_CRITICAL ) : 'javascript:;'; ?>" class="button button-secondary button-small <?php if ( empty( $css_summary[ 'queue' ] ) ) echo 'disabled'; ?>">
							<?php echo __( 'Force cron', 'litespeed-cache' ); ?>
						</a>
					</p>

				</div>

				<?php if ( ! empty( $cloud_summary[ 'last_request.ccss' ] ) ) : ?>
					<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
						<?php echo __( 'Last requested' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.ccss' ] ) ?>
					</div>
				<?php endif; ?>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-lqip">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Low Quality Image Placeholder', 'litespeed-cache' ); ?>
					</h3>

					<?php if ( ! empty( $placeholder_summary[ 'last_request' ] ) ) : ?>
						<p>
							<?php echo __( 'Last generated', 'litespeed-cache' ) . ': <code>' . Utility::readable_time( $placeholder_summary[ 'last_request' ] ) . '</code>'; ?>
						</p>
						<p>
							<?php echo __( 'Time to execute previous request', 'litespeed-cache' ) . ': <code>' . $placeholder_summary[ 'last_spent' ] . 's</code>'; ?>
						</p>
					<?php endif; ?>

					<p>
						<?php echo __( 'Requests in queue', 'litespeed-cache' ); ?>: <code><?php echo ! empty( $placeholder_summary[ 'queue' ] ) ? count( $placeholder_summary[ 'queue' ] ) : '-' ?></code>
						<a href="<?php echo ! empty( $placeholder_summary[ 'queue' ] ) ? Utility::build_url( Router::ACTION_PLACEHOLDER, Placeholder::TYPE_GENERATE ) : 'javascript:;'; ?>" class="button button-secondary button-small <?php if ( empty( $placeholder_summary[ 'queue' ] ) ) echo 'disabled'; ?>">
							<?php echo __( 'Force cron', 'litespeed-cache' ); ?>
						</a>
					</p>

				</div>

				<?php if ( ! empty( $cloud_summary[ 'last_request.lqip' ] ) ) : ?>
					<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
						<?php echo __( 'Last requested' ) . ': ' . Utility::readable_time( $cloud_summary[ 'last_request.lqip' ] ) ?>
					</div>
				<?php endif; ?>
			</div>

			<div class="postbox litespeed-postbox litespeed-postbox-crawler">
				<div class="inside">
					<h3 class="litespeed-title">
						<?php echo __( 'Crawler Status', 'litespeed-cache' ); ?>
					</h3>

					<p>
						<code><?php echo count( Crawler::get_instance()->list_crawlers() );?></code> <?php echo __( 'Crawler(s)', 'litespeed-cache' ); ?>
					</p>
					<p>
						<?php echo __( 'Currently active crawler', 'litespeed-cache' ); ?>: <code><?php echo $crawler_summary[ 'curr_crawler' ] ?></code>
					</p>

					<?php if ( $crawler_summary[ 'curr_crawler_beginning_time' ] ) : ?>
					<p>
						<b><?php echo __('Current crawler started at', 'litespeed-cache'); ?>:</b>
						<?php echo Utility::readable_time( $crawler_summary[ 'curr_crawler_beginning_time' ] ); ?>
					</p>
					<?php endif; ?>

					<?php if ( $crawler_summary[ 'last_start_time' ] ) : ?>
					<p class='litespeed-desc'>
						<b><?php echo __('Last interval', 'litespeed-cache'); ?>:</b>
						<?php echo Utility::readable_time( $crawler_summary[ 'last_start_time' ] ); ?>
					</p>
					<?php endif; ?>

					<?php if ( $crawler_summary[ 'end_reason' ] ) : ?>
					<p class='litespeed-desc'>
						<b><?php echo __( 'Ended reason', 'litespeed-cache' ); ?>:</b>
						<?php echo $crawler_summary[ 'end_reason' ]; ?>
					</p>
					<?php endif; ?>

					<?php if ( $crawler_summary[ 'last_crawled' ] ) : ?>
					<p class='litespeed-desc'>
						<?php echo sprintf(__('<b>Last crawled:</b> %s item(s)', 'litespeed-cache'), $crawler_summary[ 'last_crawled' ] ); ?>
					</p>
					<?php endif; ?>

				</div>
				<div class="inside litespeed-postbox-footer litespeed-postbox-footer--compact">
					<a href="<?php echo admin_url( 'admin.php?page=litespeed-crawler' ); ?>"><?php echo __( 'Manage Crawler', 'litespeed-cache' ); ?></a>
				</div>
			</div>

		</div>

	</div>


</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$menu_list = array(
	'dashboard'	=> __( 'Dashboard', 'litespeed-cache' ),
);

if ( $this->_is_network_admin ) {
	$menu_list = array(
		'network_dash' => __( 'Network Dashboard', 'litespeed-cache' ),
	);
}


?>

<div class="wrap">
	<h1 class="litespeed-h1">
		<?php echo __( 'LiteSpeed Cache Dashboard', 'litespeed-cache' ); ?>
	</h1>
	<span class="litespeed-desc">
		v<?php echo Core::VER; ?>
	</span>
	<hr class="wp-header-end">
</div>

<div class="litespeed-wrap">
	<?php
	foreach ($menu_list as $tab => $val) {
		echo "<div data-litespeed-layout='$tab'>";
		require LSCWP_DIR . "tpl/dash/$tab.tpl.php";
		echo "</div>";
	}
	?>
</div>
<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$cloud_summarys = array();
$blogs = Activation::get_network_ids();
foreach ( $blogs as $blog_id ) {
	switch_to_blog( $blog_id );
	$cloud_summarys[ home_url() ] = Cloud::get_summary();
}

?>

<div class="litespeed-dashboard">
<?php foreach ( $cloud_summarys as $home_url => $cloud_summary ) : ?>

	<div class="litespeed-dashboard-header">
		<h3 class="litespeed-dashboard-title">
			<?php echo __( 'Usage Statistics', 'litespeed-cache' ) . ': ' . $home_url; ?>
		</h3>
		<hr>
	</div>

	<div class="litespeed-dashboard-stats-wrapper">
		<?php
			$cat_list = array(
				'img_optm'	=> __( 'Image Optimization', 'litespeed-cache' ),
				'ccss'		=> __( 'CCSS', 'litespeed-cache' ),
				'cdn'		=> __( 'CDN Bandwidth', 'litespeed-cache' ),
				'lqip'		=> __( 'LQIP', 'litespeed-cache' ),
			);

			foreach ( $cat_list as $svc => $title ) :
				$finished_percentage = 0;
				$total_used = $used = $quota = $pag_used = $pag_total = '-';
				$used = $quota = $pag_used = $pag_total = '-';
				$pag_width = 0;
				if ( ! empty( $cloud_summary[ 'usage.' . $svc ] ) ) {
					$finished_percentage = floor( $cloud_summary[ 'usage.' . $svc ][ 'used' ] * 100 / $cloud_summary[ 'usage.' . $svc ][ 'quota' ] );
					$used = $cloud_summary[ 'usage.' . $svc ][ 'used' ];
					$quota = $cloud_summary[ 'usage.' . $svc ][ 'quota' ];
					$pag_used = ! empty( $cloud_summary[ 'usage.' . $svc ][ 'pag_used' ] ) ? $cloud_summary[ 'usage.' . $svc ][ 'pag_used' ] : 0;
					$pag_bal = ! empty( $cloud_summary[ 'usage.' . $svc ][ 'pag_bal' ] ) ? $cloud_summary[ 'usage.' . $svc ][ 'pag_bal' ] : 0;
					$pag_total = $pag_used + $pag_bal;

					if ( $pag_total ) {
						$pag_width = round( $pag_used / $pag_total * 100 ) . '%';
					}

					if ( $svc == 'cdn' ) {
						$used = Utility::real_size( $used * 1024 * 1024 );
						$quota = Utility::real_size( $quota * 1024 * 1024 );
						$pag_used = Utility::real_size( $pag_used * 1024 * 1024 );
						$pag_total = Utility::real_size( $pag_total * 1024 * 1024 );
					}
				}

				$percentage_bg = 'success';
				if( $finished_percentage > 95 ){
					$percentage_bg = 'danger';
				} elseif ( $finished_percentage > 85 ){
					$percentage_bg = 'warning';
				}

			?>


				<div class="postbox litespeed-postbox">
					<div class="inside">
						<h3 class="litespeed-title"><?php echo $title; ?></h3>

						<div class="litespeed-flex-container">
							<div class="litespeed-icon-vertical-middle litespeed-pie-<?php echo $percentage_bg;?>">
								<?php echo GUI::pie( $finished_percentage, 60, false ); ?>
							</div>
							<div>
								<div class="litespeed-dashboard-stats">
									<h3><?php echo ( $svc == 'img_optm' ? __('Fast Queue Usage','litespeed-cache') : __( 'Usage', 'litespeed-cache' ) ); ?></h3>
									<p>
										<strong><?php echo $used; ?></strong>
										<?php if( $used != $quota ) { ?>
											<span class="litespeed-desc"> of <?php echo $quota; ?></span>
										<?php } ?>
									</p>
								</div>
							</div>
						</div>
						<?php if ( $pag_total > 0 ) { ?>
							<p class="litespeed-dashboard-stats-payg" data-balloon-pos="up" aria-label="<?php echo __('Pay as You Go','litespeed-cache'); ?>">
								<?php echo __('PAYG Balance','litespeed-cache'); ?>: <strong><?php echo $pag_bal; ?></strong>
								<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo __('This Month Usage','litespeed-cache'); ?>: <?php echo $pag_used;?>">
									<span class="dashicons dashicons-info"></span>
									<span class="screen-reader-text"><?php echo __( 'Pay as You Go Usage Statistics', 'litespeed-cache' );?></span>
								</button>
							</p>
						<?php } ?>

						<?php if ( $svc == 'img_optm' ) { ?>
							<p class="litespeed-dashboard-stats-total">
								<?php echo __('Total Usage','litespeed-cache'); ?>: <strong><?php echo $total_used; ?> / ∞</strong>
								<button class="litespeed-info-button" data-balloon-pos="up" aria-label="<?php echo __('Total images optimized in this month','litespeed-cache'); ?>">
									<span class="dashicons dashicons-info"></span>
								</button>
							</p>
							<div class="clear"></div>
						<?php } ?>
					</div>
				</div>

			<?php endforeach; ?>
	</div>

<?php endforeach; ?>
</div><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

// $widget, $return, $instance

$options = ! empty( $instance[ Base::OPTION_NAME ] ) ? $instance[ Base::OPTION_NAME ] : array() ;

if ( empty( $options ) ) {
	$options = array(
		ESI::WIDGET_O_ESIENABLE => Base::VAL_OFF,
		ESI::WIDGET_O_TTL => '28800'
	) ;

	add_filter('litespeed_widget_default_options', 'LiteSpeed\ESI::widget_default_options', 10, 2) ;

	$options = apply_filters( 'litespeed_widget_default_options', $options, $widget ) ;
}

if ( empty( $options ) ) {
	$esi = Base::VAL_OFF ;
	$ttl = '28800' ;
}
else {
	$esi = $options[ ESI::WIDGET_O_ESIENABLE ] ;
	$ttl = $options[ ESI::WIDGET_O_TTL ] ;
}

$display = Admin_Display::get_instance() ;

?>
<div class="litespeed-widget-setting">

	<h4>LiteSpeed Cache:</h4>

	<b><?php echo __( 'Enable ESI', 'litespeed-cache' ) ; ?>:</b>
	&nbsp;&nbsp;
	<div class="litespeed-inline">
		<div class="litespeed-switch litespeed-mini">
		<?php

			$id = ESI::WIDGET_O_ESIENABLE ;
			$name = $widget->get_field_name( $id ) ;

			$cache_status_list = array(
				array( Base::VAL_ON, __( 'Public', 'litespeed-cache' ) ),
				array( Base::VAL_ON2, __( 'Private', 'litespeed-cache' ) ),
				array( Base::VAL_OFF, __( 'Disable', 'litespeed-cache' ) ),
			) ;

			foreach ( $cache_status_list as $v ) {
				list( $v, $txt ) = $v ;
				$id_attr = $widget->get_field_id( $id ) . '_' . $v ;
				$checked = $esi === $v ? 'checked' : '' ;
				echo "<input type='radio' autocomplete='off' name='$name' id='$id_attr' value='$v' $checked /> <label for='$id_attr'>$txt</label>" ;
			}
		?>

		</div>
	</div>
	<br /><br />

	<b><?php echo __( 'Widget Cache TTL:', 'litespeed-cache' ) ; ?></b>
	&nbsp;&nbsp;
	<?php
		$id = ESI::WIDGET_O_TTL ;
		$name = $widget->get_field_name( $id ) ;
		echo "<input type='text' class='regular-text litespeed-reset' name='$name' value='$ttl' size='7' />" ;
	?>
	<?php echo __( 'seconds', 'litespeed-cache' ) ; ?>

	<p class="install-help">
		<?php echo __( 'Recommended value: 28800 seconds (8 hours).', 'litespeed-cache' ) ; ?>
		<?php echo __( 'A TTL of 0 indicates do not cache.', 'litespeed-cache' ) ; ?>
	</p>
</div>

<br /><?php
namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;
?>
<div class="litespeed-wrap notice notice-info litespeed-banner-promo-full" id="litespeed-banner-promo-slack">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title"><?php echo __( 'Welcome to LiteSpeed', 'litespeed-cache' ) ; ?></h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-desciption-content">
					<?php echo __( 'Want to connect with other LiteSpeed users?', 'litespeed-cache' ) ; ?>
					<?php echo sprintf( __( 'Join the %s community.', 'litespeed-cache' ), '<a href="https://join.slack.com/t/golitespeed/shared_invite/enQtMzE5ODgxMTUyNTgzLTNiNWQ1MWZlYmI4YjEzNTM4NjdiODY2YTQ0OWVlMzBlNGZkY2E3Y2E4MjIzNmNmZmU0ZjIyNWM1ZmNmMWRlOTk" target="_blank" class="litespeed-banner-promo-slack-textlink">LiteSpeed Slack</a>' ) ; ?>
				</p>
				<p class="litespeed-banner-promo-slack-line2">
					golitespeed.slack.com
				</p>
			</div>
			<div>
				<h3 class="litespeed-banner-button-link">
					<a href="https://join.slack.com/t/golitespeed/shared_invite/enQtMzE5ODgxMTUyNTgzLTNiNWQ1MWZlYmI4YjEzNTM4NjdiODY2YTQ0OWVlMzBlNGZkY2E3Y2E4MjIzNmNmZmU0ZjIyNWM1ZmNmMWRlOTk" target="_blank">
						<?php echo __( 'Join Us on Slack', 'litespeed-cache' ) ; ?>
					</a>
				</h3>
			</div>
		</div>
	</div>
	<div>
		<?php $dismiss_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'slack' ) ) ; ?>
		<span class="screen-reader-text">Dismiss this notice.</span>
		<a href="<?php echo $dismiss_url ; ?>" class="litespeed-notice-dismiss">
			Dismiss
		</a>
	</div>
</div><?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

$health_scores = Health::get_instance()->scores();

// If speed is not reduced half or score is larger
if ( $health_scores[ 'speed_before' ] < $health_scores[ 'speed_after' ] * 2 || $health_scores[ 'score_before' ] > $health_scores[ 'score_after' ] ) {
	return;
}

//********** Can show now **********//
$this->_promo_true = true;

if ( $check_only ) {
	return;
}

?>
<div class="litespeed-wrap notice notice-info litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-banner-promo-content"><?php echo __( 'Thank You for Using the LiteSpeed Cache Plugin!', 'litespeed-cache' ); ?></h3>

		<div class="litespeed-row-flex litespeed-banner-promo-content litespeed-margin-left-remove litespeed-flex-wrap">
			<div class="litespeed-right50 litespeed-margin-bottom20">
				<h2 class="litespeed-text-grey litespeed-margin-bottom-remove litespeed-top10"><?php echo __( 'Page Load Time', 'litespeed-cache' ); ?></h2>
				<hr class="litespeed-margin-bottom-remove" />
				<div class="litespeed-row-flex" style="margin-left: -10px;">
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove">
                                <?php echo __( 'Before', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-grey">
							<?php echo $health_scores[ 'speed_before' ]; ?><span class="litespeed-text-large">s</span>
						</div>

					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove">
                                <?php echo __( 'After', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-success">
							<?php echo $health_scores[ 'speed_after' ]; ?><span class="litespeed-text-large">s</span>
						</div>
					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove" style="white-space: nowrap;">
                                <?php echo __( 'Improved by', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-fern">
							<?php echo $health_scores[ 'speed_improved' ]; ?><span class="litespeed-text-large">%</span>
						</div>
					</div>
				</div>

			</div>

			<?php if ( $health_scores[ 'score_before' ] < $health_scores[ 'score_after' ] ) : ?>
			<div class="litespeed-margin-bottom20">
				<h2 class="litespeed-text-grey litespeed-margin-bottom-remove litespeed-top10"><?php echo __( 'PageSpeed Score', 'litespeed-cache' ); ?></h2>
				<hr class="litespeed-margin-bottom-remove" />
				<div class="litespeed-row-flex" style="margin-left: -10px;">
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-text-center litespeed-margin-y-remove">
                                <?php echo __( 'Before', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-promo-score" style="margin-top:-5px;">
							<?php echo GUI::pie( $health_scores[ 'score_before' ], 45, false, true, 'litespeed-pie-' . $this->get_cls_of_pagescore( $health_scores[ 'score_before' ] ) ); ?>
						</div>
					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-text-center litespeed-margin-y-remove">
                                <?php echo __( 'After', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-promo-score" style="margin-top:-5px;">
							<?php echo GUI::pie( $health_scores[ 'score_after' ], 45, false, true, 'litespeed-pie-' . $this->get_cls_of_pagescore( $health_scores[ 'score_after' ] ) ); ?>
						</div>
					</div>
					<div class="litespeed-width-1-3 litespeed-padding-space litespeed-margin-x5">
						<div>
							<p class="litespeed-text-grey litespeed-margin-y-remove" style="white-space: nowrap;">
                                <?php echo __( 'Improved by', 'litespeed-cache' ); ?>
							</p>
						</div>
						<div class="litespeed-top10 litespeed-text-jumbo litespeed-text-fern">
							<?php echo $health_scores[ 'score_improved' ]; ?><span class="litespeed-text-large">%</span>
						</div>
					</div>
				</div>

			</div>
			<?php endif; ?>

		</div>

		<div class="litespeed-row-flex litespeed-flex-wrap litespeed-margin-y5">
			<div class="litespeed-banner-description-padding-right-15">

				<a href="https://wordpress.org/support/plugin/litespeed-cache/reviews/?filter=5#new-post" target="_blank" style="text-decoration: none;">
					<button class="button litespeed-btn-success litespeed-btn-mini">
						<?php echo __( 'Sure I\'d love to review!', 'litespeed-cache' ); ?>
						⭐⭐⭐⭐⭐
					</button>
				</a>
				<button type="button" class="button litespeed-btn-primary litespeed-btn-mini" id="litespeed-promo-done"> <?php echo __( 'I\'ve already left a review', 'litespeed-cache' ); ?></button>
				<button type="button" class="button litespeed-btn-warning litespeed-btn-mini" id="litespeed-promo-later"> <?php echo __( 'Maybe later', 'litespeed-cache' ); ?></button>
			</div>
			<div>
				<p class="litespeed-text-small">
					<?php echo __( 'Created with ❤️  by LiteSpeed team.', 'litespeed-cache' ); ?>
					<?php echo sprintf(
						__( '<a %s>Support forum</a> | <a %s>Submit a ticket</a>', 'litespeed-cache' ),
						'href="https://wordpress.org/support/plugin/litespeed-cache" target="_blank"',
						'href="https://www.litespeedtech.com/support" target="_blank"'
					); ?>
				</p>
			</div>
		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'score', 'later' => 1 ) ); ?>
		<span class="screen-reader-text">Dismiss this notice.</span>
		<a href="<?php echo $dismiss_url; ?>" class="litespeed-notice-dismiss">X</a>
	</div>

</div><?php
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>

<div class="litespeed-wrap notice notice-success litespeed-banner-promo-full">

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15"><?php echo $this->_summary[ 'news.title' ] ; ?></h3>
		<div class="litespeed-banner-description" style="flex-direction: column;">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-desciption-content">
					<?php echo $this->_summary[ 'news.content' ]; ?>
				</p>
			</div>
			<div class="litespeed-inline">
				<div class="litespeed-banner-description-padding-right-15 litespeed-margin-bottom10">
					<?php if ( ! empty( $this->_summary[ 'news.plugin' ] ) ) : ?>
					<?php $install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_3RD, false, null, array( 'plugin' => $this->_summary[ 'news.plugin' ] ) ); ?>
					<a href="<?php echo $install_link ; ?>" class="button litespeed-btn-success">
						 <?php echo __( 'Install', 'litespeed-cache' ); ?>
						 <?php if ( ! empty( $this->_summary[ 'news.plugin_name' ] ) ) echo $this->_summary[ 'news.plugin_name' ]; ?>
					</a>
					<?php endif; ?>
					<?php if ( ! empty( $this->_summary[ 'news.zip' ] ) ) : ?>
					<?php $install_link = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_INSTALL_ZIP ); ?>
					<a href="<?php echo $install_link ; ?>" class="button litespeed-btn-success">
						 <?php echo __( 'Install', 'litespeed-cache' ); ?>
					</a>
					<?php endif; ?>
				</div>
			</div>
		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_DISMISS_RECOMMENDED ) ; ?>
		<span class="screen-reader-text">Dismiss this notice.</span>
		<a href="<?php echo $dismiss_url ; ?>" class="litespeed-notice-dismiss">X</a>
	</div>
</div>
<?php
/**
 * @deprecated 3.3 Will only show banner after user manually checked score
 */

namespace LiteSpeed ;
defined( 'WPINC' ) || exit ;

$url = Utility::build_url( Router::ACTION_HEALTH, Health::TYPE_SPEED, true ) ;
$url = htmlspecialchars_decode( $url ) ;
?>
<script>
	document.addEventListener( 'DOMContentLoaded', function( event ) {
		jQuery(document).ready( function() {
			jQuery.get( '<?php echo $url ?>' ) ;
		} ) ;
	} ) ;
</script><?php
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>

<div class="litespeed-wrap notice notice-success litespeed-banner-promo-qc">

	<div class="litespeed-banner-promo-qc-content">

		<div class="litespeed-banner-promo-qc-description">
			<h2><?php echo __( 'You just unlocked a promotion from QUIC.cloud!', 'litespeed-cache' );?></h2>
			<p>Spread the love and earn <strong><?php echo $this->_summary[ 'promo' ][ 0 ][ 'quota' ]; ?></strong> credits to use in our QUIC.cloud online services.</p>
			<p>
				<a class="button button-primary" href="<?php echo $this->_summary[ 'promo' ][ 0 ][ 'url' ]; ?>" target="_blank">Send to twitter to get <?php echo $this->_summary[ 'promo' ][ 0 ][ 'quota' ]; ?> bonus</a>
				<a href="https://www.quic.cloud/faq/#credit" target="_blank"><?php echo __( 'Learn more', 'litespeed-cache' );?></a>
			</p>
		</div>

		<div class="litespeed-banner-promo-qc-preview">
			<h4 class="litespeed-tweet-preview-title"><?php echo __( 'Tweet preview', 'litespeed-cache' );?></h4>
			<div class="litespeed-tweet-preview">

				<div class="litespeed-tweet-img"><img src="<?php echo $this->_summary[ 'promo' ][ 0 ][ 'image' ]; ?>"></div>

				<div class="litespeed-tweet-preview-content">
					<p class="litespeed-tweet-text"><?php echo $this->_summary[ 'promo' ][ 0 ][ 'content' ]; ?></p>

					<div class="litespeed-tweet-cta">
						<a href="<?php echo $this->_summary[ 'promo' ][ 0 ][ 'url' ]; ?>" class="litespeed-tweet-btn" target="_blank"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
								viewBox="0 0 250 250" xml:space="preserve">
							<path class="st0" d="M78.6,226.6c94.3,0,145.9-78.2,145.9-145.9c0-2.2,0-4.4-0.1-6.6c10-7.3,18.7-16.3,25.6-26.5
								c-9.4,4.1-19.3,6.9-29.5,8.1c10.7-6.4,18.7-16.5,22.5-28.4c-10.1,6-21.1,10.2-32.6,12.4c-19.4-20.7-51.9-21.7-72.6-2.2
								c-13.3,12.5-19,31.2-14.8,49C81.9,84.3,43.4,64.8,17.4,32.8c-13.6,23.4-6.7,53.4,15.9,68.5c-8.2-0.2-16.1-2.4-23.3-6.4
								c0,0.2,0,0.4,0,0.6c0,24.4,17.2,45.4,41.2,50.3c-7.6,2.1-15.5,2.4-23.2,0.9c6.7,20.9,26,35.2,47.9,35.6c-18.2,14.3-40.6,22-63.7,22
								c-4.1,0-8.2-0.3-12.2-0.7C23.5,218.6,50.7,226.6,78.6,226.6"/>
							</svg>
							<?php echo __( 'Tweet this', 'litespeed-cache' );?>
						</a>
					</div>
				</div>

			</div>

		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Router::ACTION_CLOUD, Cloud::TYPE_CLEAR_PROMO ) ; ?>
		<span class="screen-reader-text"><?php echo __( 'Dismiss this notice', 'litespeed-cache' );?>.</span>
		<a href="<?php echo $dismiss_url ; ?>" class="litespeed-notice-dismiss">X</a>
	</div>
</div>

<?php
namespace LiteSpeed;
defined( 'WPINC' ) || exit;

/**
 * NOTE: Only show for single site
 */
if ( is_multisite() ) {
	return;
}

if ( Conf::val( Base::O_AUTO_UPGRADE ) ) {
	return;
}

$current = get_site_transient( 'update_plugins' );
if ( ! isset( $current->response[ Core::PLUGIN_FILE ] ) ) {
	return;
}

$last_check = empty( $this->_summary[ 'new_version.last_check' ] ) ? 0 : $this->_summary[ 'new_version.last_check' ];
// Check once in a half day
if ( time() - $last_check > 43200 ) {
	$this->_summary[ 'new_version.last_check' ] = time();
	Admin_Display::save_summary( $this->_summary );

	// Detect version
	$auto_v = Cloud::version_check( 'new_version_banner' );
	if ( ! empty( $auto_v[ 'latest' ] ) ) {
		$this->_summary[ 'new_version.v' ] = $auto_v[ 'latest' ];
		Admin_Display::save_summary( $this->_summary );
	}
	// After detect, don't show, just return and show next time
	return;
}

if ( ! isset( $this->_summary[ 'new_version.v' ] ) ) {
	return;
}

// Check if current version is newer than auto_v or not
if ( version_compare( Core::VER, $this->_summary[ 'new_version.v' ], '>=' ) ) {
	return;
}

//********** Can show now **********//

$this->_promo_true = true;

if ( $check_only ) {
	return;
}

?>
<div class="litespeed-wrap notice notice-success litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15"><?php echo __( 'LiteSpeed Cache', 'litespeed-cache' ); ?>: <?php echo __( 'New Version Available!', 'litespeed-cache' ); ?></h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-desciption-content">
					<?php echo sprintf( __( 'New release %s is available now.', 'litespeed-cache' ), 'v' . $this->_summary[ 'new_version.v' ] ); ?>
				</p>
			</div>
			<div class="litespeed-row-flex litespeed-banner-description">
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Router::ACTION_ACTIVATION, Activation::TYPE_UPGRADE ); ?>
					<a href="<?php echo $url; ?>" class="button litespeed-btn-success litespeed-btn-mini">
						<i class="dashicons dashicons-image-rotate">&nbsp;</i>
						 <?php echo __( 'Upgrade', 'litespeed-cache' ); ?>
					</a>
				</div>
				<div class="litespeed-banner-description-padding-right-15">
					<?php
						$cfg = array( Conf::TYPE_SET . '[' . Base::O_AUTO_UPGRADE . ']' => 1 );
						$url = Utility::build_url( Router::ACTION_CONF, Conf::TYPE_SET, false, null, $cfg );
					?>
					<a href="<?php echo $url; ?>" class="button litespeed-btn-primary litespeed-btn-mini">
						<i class="dashicons dashicons-update">&nbsp;</i>
						<?php echo __( 'Turn On Auto Upgrade', 'litespeed-cache' ); ?>
					</a>
				</div>
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'new_version' ) ); ?>
					<a href="<?php echo $url; ?>" class="button litespeed-btn-warning litespeed-btn-mini">
						 <?php echo __( 'Maybe Later', 'litespeed-cache' ); ?>
					</a>
				</div>
			</div>
		</div>
	</div>

	<div>
		<?php $dismiss_url = Utility::build_url( Core::ACTION_DISMISS, GUI::TYPE_DISMISS_PROMO, false, null, array( 'promo_tag' => 'new_version', 'later' => 1 ) ); ?>
		<span class="screen-reader-text">Dismiss this notice.</span>
		<a href="<?php echo $dismiss_url; ?>" class="litespeed-notice-dismiss">X</a>
	</div>
</div>
<?php
namespace LiteSpeed;

defined( 'WPINC' ) || exit;

?>

<div class="litespeed-wrap notice notice-warning litespeed-banner-promo-full">
	<div class="litespeed-banner-promo-logo"></div>

	<div class="litespeed-banner-promo-content">
		<h3 class="litespeed-banner-title litespeed-top15"><?php echo __( 'LiteSpeed Cache', 'litespeed-cache' ) ; ?>: <?php echo __( 'New Developer Version Available!', 'litespeed-cache' ) ; ?></h3>
		<div class="litespeed-banner-description">
			<div class="litespeed-banner-description-padding-right-15">
				<p class="litespeed-banner-desciption-content">
					<?php echo sprintf( __( 'New developer version %s is available now.', 'litespeed-cache' ), 'v' . $this->_summary[ 'version.dev' ] ) ; ?>
				</p>
			</div>
			<div class="litespeed-row-flex litespeed-banner-description">
				<div class="litespeed-banner-description-padding-right-15">
					<?php $url = Utility::build_url( Router::ACTION_DEBUG2, Debug2::TYPE_BETA_TEST, false, null, array( Debug2::BETA_TEST_URL => 'dev' ) ) ; ?>
					<a href="<?php echo $url ; ?>" class="button litespeed-btn-success litespeed-btn-mini">
						<i class="dashicons dashicons-image-rotate">&nbsp;</i>
						 <?php echo __( 'Upgrade', 'litespeed-cache' ) ; ?>
					</a>
				</div>
			</div>
		</div>
	</div>

</div>
# Copyright (C) 2021 LiteSpeed Cache
# This file is distributed under the same license as the LiteSpeed Cache package.
msgid ""
msgstr ""
"Project-Id-Version: LiteSpeed Cache 3.6.2\n"
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/litespeed-cache\n"
"POT-Creation-Date: 2021-02-01 14:26:02+00:00\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

#: cli/purge.cls.php:95
msgid "Purged All!"
msgstr ""

#: cli/purge.cls.php:140
msgid "Purged the blog!"
msgstr ""

#: cli/purge.cls.php:191
msgid "Purged the url!"
msgstr ""

#: cli/purge.cls.php:247
msgid "Purged!"
msgstr ""

#: src/activation.cls.php:420 src/activation.cls.php:425
msgid "Failed to upgrade."
msgstr ""

#: src/activation.cls.php:429
msgid "Upgraded successfully."
msgstr ""

#: src/admin-display.cls.php:121 tpl/dash/entry.tpl.php:6
msgid "Dashboard"
msgstr ""

#: src/admin-display.cls.php:123
msgid "General"
msgstr ""

#: src/admin-display.cls.php:125 tpl/cache/entry.tpl.php:6
#: tpl/cache/entry_network.tpl.php:6
msgid "Cache"
msgstr ""

#: src/admin-display.cls.php:127 tpl/cdn/settings.tpl.php:188
msgid "CDN"
msgstr ""

#: src/admin-display.cls.php:129 src/gui.cls.php:595
#: tpl/dash/dashboard.tpl.php:52 tpl/dash/network_dash.tpl.php:27
msgid "Image Optimization"
msgstr ""

#: src/admin-display.cls.php:131
msgid "Page Optimization"
msgstr ""

#: src/admin-display.cls.php:133 tpl/page_optm/entry.tpl.php:45
msgid "Database"
msgstr ""

#: src/admin-display.cls.php:135 src/lang.cls.php:210
msgid "Crawler"
msgstr ""

#: src/admin-display.cls.php:137
msgid "Toolbox"
msgstr ""

#: src/admin-display.cls.php:211
msgid "Cookie Name"
msgstr ""

#: src/admin-display.cls.php:212 tpl/crawler/settings-simulation.tpl.php:51
msgid "Cookie Values"
msgstr ""

#: src/admin-display.cls.php:214
msgid "Remove cookie simulation"
msgstr ""

#: src/admin-display.cls.php:215
msgid "Add new cookie to simulate"
msgstr ""

#: src/admin-display.cls.php:234
msgid "CDN URL to be used. For example, %s"
msgstr ""

#: src/admin-display.cls.php:236
msgid "Remove CDN URL"
msgstr ""

#: src/admin-display.cls.php:237
msgid "Add new CDN URL"
msgstr ""

#: src/admin-display.cls.php:238 src/admin-display.cls.php:799
#: src/admin-display.cls.php:834 src/admin-display.cls.php:885
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.cache_mobile.tpl.php:70 tpl/cdn/settings.tpl.php:48
#: tpl/page_optm/settings_css.tpl.php:149
#: tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:167
#: tpl/page_optm/settings_media.tpl.php:156
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "ON"
msgstr ""

#: src/admin-display.cls.php:239 src/admin-display.cls.php:800
#: src/admin-display.cls.php:833 src/admin-display.cls.php:885
#: tpl/cache/settings-cache.tpl.php:19
#: tpl/cache/settings_inc.object.tpl.php:210 tpl/cdn/settings.tpl.php:48
#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:166
#: tpl/page_optm/settings_css.tpl.php:181
#: tpl/page_optm/settings_media.tpl.php:159
#: tpl/toolbox/settings-debug.tpl.php:34
msgid "OFF"
msgstr ""

#: src/admin-display.cls.php:281 src/gui.cls.php:586
msgid "Settings"
msgstr ""

#: src/admin-display.cls.php:446
msgid "Dismiss"
msgstr ""

#: src/admin-display.cls.php:674
msgid "Save Changes"
msgstr ""

#: src/admin-display.cls.php:897
msgid "This setting is overwritten by the PHP constant %s"
msgstr ""

#: src/admin-display.cls.php:900
msgid "This setting is overwritten by the primary site setting"
msgstr ""

#: src/admin-display.cls.php:903
msgid "This setting is overwritten by the Network setting"
msgstr ""

#: src/admin-display.cls.php:907
msgid "currently set to %s"
msgstr ""

#: src/admin-display.cls.php:917 tpl/cache/settings_inc.object.tpl.php:103
#: tpl/crawler/settings-general.tpl.php:60
#: tpl/crawler/settings-general.tpl.php:74
#: tpl/crawler/settings-general.tpl.php:89 tpl/esi_widget_edit.php:70
msgid "seconds"
msgstr ""

#: src/admin-display.cls.php:948 src/admin-display.cls.php:953
msgid "Recommended value"
msgstr ""

#: src/admin-display.cls.php:977
msgid "Invalid rewrite rule"
msgstr ""

#: src/admin-display.cls.php:994
msgid "Path must end with %s"
msgstr ""

#: src/admin-display.cls.php:1012
msgid "Minimum value"
msgstr ""

#: src/admin-display.cls.php:1015
msgid "Maximum value"
msgstr ""

#: src/admin-display.cls.php:1027
msgid "Zero, or"
msgstr ""

#: src/admin-display.cls.php:1034
msgid "Larger than"
msgstr ""

#: src/admin-display.cls.php:1037
msgid "Smaller than"
msgstr ""

#: src/admin-display.cls.php:1040
msgid "Value range"
msgstr ""

#: src/admin-display.cls.php:1065
msgid "Invalid IP"
msgstr ""

#: src/admin-display.cls.php:1085 tpl/cache/settings-esi.tpl.php:95
#: tpl/page_optm/settings_css.tpl.php:151
#: tpl/page_optm/settings_html.tpl.php:86
#: tpl/page_optm/settings_media_exc.tpl.php:25
#: tpl/page_optm/settings_tuning.tpl.php:35
#: tpl/page_optm/settings_tuning.tpl.php:56
#: tpl/page_optm/settings_tuning.tpl.php:90
msgid "API"
msgstr ""

#: src/admin-display.cls.php:1086
msgid "Server variable(s) %s available to override this setting."
msgstr ""

#: src/admin-display.cls.php:1098
msgid "The URLs will be compared to the REQUEST_URI server variable."
msgstr ""

#: src/admin-display.cls.php:1099
msgid "For example, for %s, %s can be used here."
msgstr ""

#: src/admin-display.cls.php:1101
msgid "To match the beginning, add %s to the beginning of the item."
msgstr ""

#: src/admin-display.cls.php:1102
msgid "To do an exact match, add %s to the end of the URL."
msgstr ""

#: src/admin-display.cls.php:1103 src/doc.cls.php:61
msgid "One per line."
msgstr ""

#: src/admin-display.cls.php:1117
msgid "%s groups"
msgstr ""

#: src/admin-display.cls.php:1120
msgid "%s images"
msgstr ""

#: src/admin-display.cls.php:1130
msgid "%s group"
msgstr ""

#: src/admin-display.cls.php:1133
msgid "%s image"
msgstr ""

#: src/admin-settings.cls.php:259 src/admin-settings.cls.php:294
msgid "Options saved."
msgstr ""

#: src/cdn/cloudflare.cls.php:117
msgid "Notified Cloudflare to set development mode to %s successfully."
msgstr ""

#: src/cdn/cloudflare.cls.php:134
msgid "Cloudflare API is set to off."
msgstr ""

#: src/cdn/cloudflare.cls.php:150
msgid "Notified Cloudflare to purge all successfully."
msgstr ""

#: src/cdn/cloudflare.cls.php:164
msgid "No available Cloudflare zone"
msgstr ""

#: src/cdn/cloudflare.cls.php:250
msgid "Communicated with Cloudflare successfully."
msgstr ""

#: src/cdn/cloudflare.cls.php:259
msgid "Failed to communicate with Cloudflare"
msgstr ""

#: src/cloud.cls.php:308 src/cloud.cls.php:325 src/cloud.cls.php:356
#: src/cloud.cls.php:465 src/cloud.cls.php:798
msgid "Cloud Error"
msgstr ""

#: src/cloud.cls.php:356
msgid "No available Cloud Node."
msgstr ""

#: src/cloud.cls.php:465
msgid "Please try after %1$s for service %2$s."
msgstr ""

#: src/cloud.cls.php:548 src/cloud.cls.php:560
msgid "Failed to request via WordPress"
msgstr ""

#: src/cloud.cls.php:570
msgid ""
"We are working hard to improve your online service experience. The service "
"will be unavailable while we work. We apologize for any inconvenience."
msgstr ""

#: src/cloud.cls.php:579 src/cloud.cls.php:587 src/cloud.cls.php:834
msgid "Message from QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:595
msgid "Good news from QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:604
msgid "%1$s plugin version %2$s required for this action."
msgstr ""

#: src/cloud.cls.php:646 src/cloud.cls.php:823
msgid "Failed to communicate with QUIC.cloud server"
msgstr ""

#: src/cloud.cls.php:654
msgid ""
"Site not recognized. Domain Key has been automatically removed. Please "
"request a new one."
msgstr ""

#: src/cloud.cls.php:655 src/error.cls.php:48
msgid "Click here to set."
msgstr ""

#: src/cloud.cls.php:842
msgid ""
"Applied for Domain Key successfully. Please wait for result. Domain Key will "
"be automatically sent to your WordPress."
msgstr ""

#: src/cloud.cls.php:893
msgid ""
"Congratulations, your Domain Key has been approved! The setting has been "
"updated accordingly."
msgstr ""

#: src/cloud.cls.php:964
msgid "Domain Key hash mismatch"
msgstr ""

#: src/cloud.cls.php:1049
msgid "Sync credit allowance with Cloud Server successfully."
msgstr ""

#: src/conf.cls.php:773
msgid "Changed setting successfully."
msgstr ""

#: src/core.cls.php:257
msgid "Notified LiteSpeed Web Server to purge everything."
msgstr ""

#: src/core.cls.php:262
msgid "Notified LiteSpeed Web Server to purge the list."
msgstr ""

#: src/crawler-map.cls.php:267
msgid "Sitemap cleaned successfully"
msgstr ""

#: src/crawler-map.cls.php:319
msgid "No valid sitemap parsed for crawler."
msgstr ""

#: src/crawler-map.cls.php:323
msgid "Sitemap created successfully: %d items"
msgstr ""

#: src/crawler.cls.php:767
msgid "Guest"
msgstr ""

#: src/crawler.cls.php:906
msgid "Manually added to blacklist"
msgstr ""

#: src/crawler.cls.php:909
msgid "Previously existed in blacklist"
msgstr ""

#: src/css.cls.php:552 src/placeholder.cls.php:542
msgid "Queue cleared successfully."
msgstr ""

#: src/data.cls.php:197
msgid ""
"The database has been upgrading in the background since %s. This message "
"will disappear once upgrade is complete."
msgstr ""

#: src/data.upgrade.func.php:42
msgid ""
"LiteSpeed Cache upgraded successfully. NOTE: Due to changes in this version, "
"the settings %1$s and %2$s have been turned OFF. Please turn them back on "
"manually and verify that your site layout is correct, and you have no JS "
"errors."
msgstr ""

#: src/data.upgrade.func.php:42 src/lang.cls.php:112
msgid "JS Combine"
msgstr ""

#: src/data.upgrade.func.php:42
msgid "JS Defer"
msgstr ""

#: src/data.upgrade.func.php:43
msgid "Click here to settings"
msgstr ""

#: src/db-optm.cls.php:132
msgid "Clean all successfully."
msgstr ""

#: src/db-optm.cls.php:159
msgid "Clean post revisions successfully."
msgstr ""

#: src/db-optm.cls.php:163
msgid "Clean auto drafts successfully."
msgstr ""

#: src/db-optm.cls.php:167
msgid "Clean trashed posts and pages successfully."
msgstr ""

#: src/db-optm.cls.php:171
msgid "Clean spam comments successfully."
msgstr ""

#: src/db-optm.cls.php:175
msgid "Clean trashed comments successfully."
msgstr ""

#: src/db-optm.cls.php:179
msgid "Clean trackbacks and pingbacks successfully."
msgstr ""

#: src/db-optm.cls.php:183
msgid "Clean expired transients successfully."
msgstr ""

#: src/db-optm.cls.php:187
msgid "Clean all transients successfully."
msgstr ""

#: src/db-optm.cls.php:197
msgid "Optimized all tables."
msgstr ""

#: src/db-optm.cls.php:204
msgid "Clean all CSS/JS optimizer data successfully."
msgstr ""

#: src/db-optm.cls.php:256
msgid "Converted to InnoDB successfully."
msgstr ""

#: src/doc.cls.php:24
msgid ""
"This site utilizes caching in order to facilitate a faster response time and "
"better user experience. Caching potentially stores a duplicate copy of every "
"web page that is on display on this site. All cache files are temporary, and "
"are never accessed by any third party, except as necessary to obtain "
"technical support from the cache plugin vendor. Cache files expire on a "
"schedule set by the site administrator, but may easily be purged by the "
"admin before their natural expiration, if necessary."
msgstr ""

#: src/doc.cls.php:40 src/doc.cls.php:92 tpl/cdn/manage.tpl.php:66
#: tpl/dash/dashboard.tpl.php:46 tpl/img_optm/summary.tpl.php:56
#: tpl/img_optm/summary.tpl.php:96 tpl/inc/check_cache_disabled.php:42
msgid "Learn More"
msgstr ""

#: src/doc.cls.php:76
msgid "Both full and partial strings can be used."
msgstr ""

#: src/doc.cls.php:79
msgid "Both full URLs and partial strings can be used."
msgstr ""

#: src/doc.cls.php:91
msgid "This setting will edit the .htaccess file."
msgstr ""

#: src/doc.cls.php:104
msgid ""
"For online services to work correctly, you must whitelist all online server "
"IPs."
msgstr ""

#: src/doc.cls.php:105
msgid ""
"Before generating key, please verify all IPs on this list are whitelisted"
msgstr ""

#: src/doc.cls.php:106 tpl/general/settings.tpl.php:87
msgid "Current Online Server IPs"
msgstr ""

#: src/error.cls.php:42
msgid "The setting %s is currently enabled."
msgstr ""

#: src/error.cls.php:43
msgid "Click here to change."
msgstr ""

#: src/error.cls.php:47
msgid "You will need to set %s to use the online services."
msgstr ""

#: src/error.cls.php:52
msgid "You don't have enough quota for current service left this month."
msgstr ""

#: src/error.cls.php:56
msgid "You have too many requested images, please try again in a few minutes."
msgstr ""

#: src/error.cls.php:60
msgid ""
"You have too many notified images, please pull down notified images first."
msgstr ""

#: src/error.cls.php:64
msgid "The image list is empty."
msgstr ""

#: src/error.cls.php:68
msgid "Not enough parameters. Please check if the domain key is set correctly"
msgstr ""

#: src/error.cls.php:72
msgid "There is proceeding queue not pulled yet."
msgstr ""

#: src/error.cls.php:76
msgid "There is proceeding queue not pulled yet. Queue info: %s."
msgstr ""

#: src/error.cls.php:80
msgid "The site is not registered on QUIC.cloud."
msgstr ""

#: src/error.cls.php:84
msgid ""
"The domain key is not correct. Please try to sync your domain key again."
msgstr ""

#: src/error.cls.php:88
msgid "Credits are not enough to proceed the current request."
msgstr ""

#: src/error.cls.php:92 src/error.cls.php:116
msgid "%s file not writable."
msgstr ""

#: src/error.cls.php:100
msgid "Could not find %1$s in %2$s."
msgstr ""

#: src/error.cls.php:104
msgid "Invalid login cookie. Please check the %s file."
msgstr ""

#: src/error.cls.php:108
msgid "Failed to back up %s file, aborted changes."
msgstr ""

#: src/error.cls.php:112
msgid "%s file not readable."
msgstr ""

#: src/error.cls.php:120
msgid "Failed to get %s file contents."
msgstr ""

#: src/error.cls.php:124
msgid "Failed to create table %s! SQL: %s."
msgstr ""

#: src/error.cls.php:128
msgid "Crawler disabled by the server admin."
msgstr ""

#: src/error.cls.php:133
msgid "Previous request too recent. Please try again later."
msgstr ""

#: src/error.cls.php:137
msgid "Previous request too recent. Please try again after %s."
msgstr ""

#: src/error.cls.php:141
msgid "Your application is waiting for approval."
msgstr ""

#: src/error.cls.php:145
msgid "The callback validation to your domain failed due to hash mismatch."
msgstr ""

#: src/error.cls.php:149
msgid ""
"The callback validation to your domain failed. Please make sure there is no "
"firewall blocking our servers."
msgstr ""

#: src/error.cls.php:153
msgid ""
"The callback validation to your domain failed. Please make sure there is no "
"firewall blocking our servers. Response code: "
msgstr ""

#: src/error.cls.php:157
msgid ""
"Your domain has been forbidden from using our services due to a previous "
"policy violation."
msgstr ""

#: src/error.cls.php:161
msgid "Unknown error"
msgstr ""

#: src/file.cls.php:140
msgid "Folder does not exist: %s"
msgstr ""

#: src/file.cls.php:149
msgid "Can not create folder: %1$s. Error: %2$s"
msgstr ""

#: src/file.cls.php:157
msgid "Folder is not writable: %s."
msgstr ""

#: src/file.cls.php:164 src/file.cls.php:169
msgid "File %s is not writable."
msgstr ""

#: src/file.cls.php:176
msgid "Failed to write to %s."
msgstr ""

#: src/gui.cls.php:82
msgid "Public Caches"
msgstr ""

#: src/gui.cls.php:83
msgid "Public Cache Hits"
msgstr ""

#: src/gui.cls.php:84
msgid "Private Caches"
msgstr ""

#: src/gui.cls.php:85
msgid "Private Cache Hits"
msgstr ""

#: src/gui.cls.php:395
msgid "Purge this page"
msgstr ""

#: src/gui.cls.php:403
msgid "Mark this page as "
msgstr ""

#: src/gui.cls.php:415
msgid "Forced cacheable"
msgstr ""

#: src/gui.cls.php:426
msgid "Non cacheable"
msgstr ""

#: src/gui.cls.php:437
msgid "Private cache"
msgstr ""

#: src/gui.cls.php:448
msgid "No optimization"
msgstr ""

#: src/gui.cls.php:456
msgid "More settings"
msgstr ""

#: src/gui.cls.php:463 src/gui.cls.php:471 src/gui.cls.php:479
#: src/gui.cls.php:488 src/gui.cls.php:498 src/gui.cls.php:508
#: src/gui.cls.php:518 src/gui.cls.php:528 src/gui.cls.php:538
#: src/gui.cls.php:604 src/gui.cls.php:612 src/gui.cls.php:620
#: src/gui.cls.php:629 src/gui.cls.php:639 src/gui.cls.php:649
#: src/gui.cls.php:659 src/gui.cls.php:669 src/gui.cls.php:679
#: src/gui.cls.php:689 tpl/toolbox/purge.tpl.php:39
#: tpl/toolbox/purge.tpl.php:45 tpl/toolbox/purge.tpl.php:54
#: tpl/toolbox/purge.tpl.php:63 tpl/toolbox/purge.tpl.php:72
#: tpl/toolbox/purge.tpl.php:81 tpl/toolbox/purge.tpl.php:90
#: tpl/toolbox/purge.tpl.php:99 tpl/toolbox/purge.tpl.php:108
msgid "Purge All"
msgstr ""

#: src/gui.cls.php:471 src/gui.cls.php:562 src/gui.cls.php:612
msgid "LSCache"
msgstr ""

#: src/gui.cls.php:479 src/gui.cls.php:620 tpl/toolbox/purge.tpl.php:45
msgid "CSS/JS Cache"
msgstr ""

#: src/gui.cls.php:488 src/gui.cls.php:639 src/lang.cls.php:79
#: tpl/dash/dashboard.tpl.php:361 tpl/toolbox/purge.tpl.php:54
msgid "Object Cache"
msgstr ""

#: src/gui.cls.php:498 src/gui.cls.php:649 tpl/toolbox/purge.tpl.php:63
msgid "Opcode Cache"
msgstr ""

#: src/gui.cls.php:508 src/gui.cls.php:659 tpl/dash/dashboard.tpl.php:53
#: tpl/dash/dashboard.tpl.php:402 tpl/toolbox/purge.tpl.php:72
msgid "Critical CSS"
msgstr ""

#: src/gui.cls.php:518 src/gui.cls.php:669 tpl/toolbox/purge.tpl.php:81
msgid "Localized Resources"
msgstr ""

#: src/gui.cls.php:528 src/gui.cls.php:679 tpl/toolbox/purge.tpl.php:90
msgid "LQIP Cache"
msgstr ""

#: src/gui.cls.php:538 src/gui.cls.php:689 src/lang.cls.php:142
#: tpl/toolbox/purge.tpl.php:99
msgid "Gravatar Cache"
msgstr ""

#: src/gui.cls.php:562
msgid "LiteSpeed Cache Purge All"
msgstr ""

#: src/gui.cls.php:578 tpl/cdn/entry.tpl.php:7 tpl/cdn/settings.tpl.php:188
#: tpl/db_optm/entry.tpl.php:6
msgid "Manage"
msgstr ""

#: src/gui.cls.php:629 tpl/cdn/manage.tpl.php:17
msgid "Cloudflare"
msgstr ""

#: src/gui.cls.php:708 tpl/img_optm/summary.tpl.php:169
msgid "Remove all previous unfinished image optimization requests."
msgstr ""

#: src/gui.cls.php:709 tpl/img_optm/summary.tpl.php:171
msgid "Clean Up Unfinished Data"
msgstr ""

#: src/gui.cls.php:727
msgid "Install %s"
msgstr ""

#: src/gui.cls.php:728
msgid "Install Now"
msgstr ""

#: src/gui.cls.php:747
msgid ""
"<a href=\"%1$s\" %2$s>View version %3$s details</a> or <a href=\"%4$s\" %5$s "
"target=\"_blank\">update now</a>."
msgstr ""

#: src/gui.cls.php:750
msgid "View %1$s version %2$s details"
msgstr ""

#: src/gui.cls.php:755
msgid "Update %s now"
msgstr ""

#: src/htaccess.cls.php:355
msgid "Mobile Agent Rules"
msgstr ""

#: src/htaccess.cls.php:843
msgid ""
"<p>Please add/replace the following codes into the beginning of %1$s:</p> "
"%2$s"
msgstr ""

#: src/htaccess.cls.php:910
msgid "File Saved."
msgstr ""

#: src/img-optm.cls.php:109
msgid "No new image gathered."
msgstr ""

#: src/img-optm.cls.php:143
msgid "Gathered %d images successfully."
msgstr ""

#: src/img-optm.cls.php:420
msgid "Pushed %1$s to Cloud server, accepted %2$s."
msgstr ""

#: src/img-optm.cls.php:457
msgid "Bypassed %1$s duplicated images."
msgstr ""

#: src/img-optm.cls.php:495
msgid "Cleared %1$s invalid images."
msgstr ""

#: src/img-optm.cls.php:574
msgid "No valid image found in the current request."
msgstr ""

#: src/img-optm.cls.php:597
msgid "No valid image found by Cloud server in the current request."
msgstr ""

#: src/img-optm.cls.php:828
msgid "Pull Cron is running"
msgstr ""

#: src/img-optm.cls.php:884
msgid "Some optimized image file(s) has expired and was cleared."
msgstr ""

#: src/img-optm.cls.php:901
msgid "One or more pulled images does not match with the notified image md5"
msgstr ""

#: src/img-optm.cls.php:945
msgid "Optimized WebP file expired and was cleared."
msgstr ""

#: src/img-optm.cls.php:962
msgid "Pulled WebP image md5 does not match the notified WebP image md5."
msgstr ""

#: src/img-optm.cls.php:1022
msgid "Pulled %d image(s)"
msgstr ""

#: src/img-optm.cls.php:1109
msgid "Cleaned up unfinished data successfully."
msgstr ""

#: src/img-optm.cls.php:1180
msgid "Destroy all optimization data successfully."
msgstr ""

#: src/img-optm.cls.php:1215 src/img-optm.cls.php:1288
msgid "Rescaned successfully."
msgstr ""

#: src/img-optm.cls.php:1301
msgid "Rescaned %d images successfully."
msgstr ""

#: src/img-optm.cls.php:1360
msgid "Calculated backups successfully."
msgstr ""

#: src/img-optm.cls.php:1422
msgid "Removed backups successfully."
msgstr ""

#: src/img-optm.cls.php:1619
msgid "Switched images successfully."
msgstr ""

#: src/img-optm.cls.php:1648
msgid "Disabled WebP file successfully."
msgstr ""

#: src/img-optm.cls.php:1654
msgid "Enabled WebP file successfully."
msgstr ""

#: src/img-optm.cls.php:1670
msgid "Restored original file successfully."
msgstr ""

#: src/img-optm.cls.php:1677
msgid "Switched to optimized file successfully."
msgstr ""

#: src/img-optm.cls.php:1740
msgid "Reset the optimized data successfully."
msgstr ""

#: src/import.cls.php:83
msgid "Import failed due to file error."
msgstr ""

#: src/import.cls.php:121
msgid "Imported setting file %s successfully."
msgstr ""

#: src/import.cls.php:146
msgid "Reset successfully."
msgstr ""

#: src/lang.cls.php:24
msgid "Images not requested"
msgstr ""

#: src/lang.cls.php:25 tpl/dash/dashboard.tpl.php:302
msgid "Images requested"
msgstr ""

#: src/lang.cls.php:26 tpl/dash/dashboard.tpl.php:312
msgid "Images notified to pull"
msgstr ""

#: src/lang.cls.php:27
msgid "Images optimized and pulled"
msgstr ""

#: src/lang.cls.php:28
msgid "Images failed to pull"
msgstr ""

#: src/lang.cls.php:29 src/lang.cls.php:30
msgid "Images failed to fetch"
msgstr ""

#: src/lang.cls.php:31
msgid "Images previously optimized"
msgstr ""

#: src/lang.cls.php:32
msgid "Images failed with other errors"
msgstr ""

#: src/lang.cls.php:33
msgid "Image files missing"
msgstr ""

#: src/lang.cls.php:34
msgid "Duplicate image files ignored"
msgstr ""

#: src/lang.cls.php:35
msgid "Images with wrong meta"
msgstr ""

#: src/lang.cls.php:54
msgid "Server IP"
msgstr ""

#: src/lang.cls.php:55
msgid "Domain Key"
msgstr ""

#: src/lang.cls.php:57
msgid "Enable Cache"
msgstr ""

#: src/lang.cls.php:58 tpl/dash/dashboard.tpl.php:362
msgid "Browser Cache"
msgstr ""

#: src/lang.cls.php:59
msgid "Default Public Cache TTL"
msgstr ""

#: src/lang.cls.php:60
msgid "Default Private Cache TTL"
msgstr ""

#: src/lang.cls.php:61
msgid "Default Front Page TTL"
msgstr ""

#: src/lang.cls.php:62
msgid "Default Feed TTL"
msgstr ""

#: src/lang.cls.php:63
msgid "Default REST TTL"
msgstr ""

#: src/lang.cls.php:64
msgid "Default HTTP Status Code Page TTL"
msgstr ""

#: src/lang.cls.php:65
msgid "Browser Cache TTL"
msgstr ""

#: src/lang.cls.php:66
msgid "Automatically Upgrade"
msgstr ""

#: src/lang.cls.php:67
msgid "Notifications"
msgstr ""

#: src/lang.cls.php:68
msgid "Cache Logged-in Users"
msgstr ""

#: src/lang.cls.php:69
msgid "Cache Commenters"
msgstr ""

#: src/lang.cls.php:70
msgid "Cache REST API"
msgstr ""

#: src/lang.cls.php:71
msgid "Cache Login Page"
msgstr ""

#: src/lang.cls.php:72
msgid "Cache favicon.ico"
msgstr ""

#: src/lang.cls.php:73
msgid "Cache PHP Resources"
msgstr ""

#: src/lang.cls.php:74 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "Cache Mobile"
msgstr ""

#: src/lang.cls.php:75 tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "List of Mobile User Agents"
msgstr ""

#: src/lang.cls.php:76
msgid "Private Cached URIs"
msgstr ""

#: src/lang.cls.php:77
msgid "Drop Query String"
msgstr ""

#: src/lang.cls.php:80
msgid "Method"
msgstr ""

#: src/lang.cls.php:81
msgid "Host"
msgstr ""

#: src/lang.cls.php:82
msgid "Port"
msgstr ""

#: src/lang.cls.php:83
msgid "Default Object Lifetime"
msgstr ""

#: src/lang.cls.php:84
msgid "Username"
msgstr ""

#: src/lang.cls.php:85
msgid "Password"
msgstr ""

#: src/lang.cls.php:86
msgid "Redis Database ID"
msgstr ""

#: src/lang.cls.php:87
msgid "Global Groups"
msgstr ""

#: src/lang.cls.php:88
msgid "Do Not Cache Groups"
msgstr ""

#: src/lang.cls.php:89
msgid "Persistent Connection"
msgstr ""

#: src/lang.cls.php:90
msgid "Cache Wp-Admin"
msgstr ""

#: src/lang.cls.php:91
msgid "Store Transients"
msgstr ""

#: src/lang.cls.php:93
msgid "Purge All On Upgrade"
msgstr ""

#: src/lang.cls.php:94
msgid "Serve Stale"
msgstr ""

#: src/lang.cls.php:95 tpl/cache/settings-purge.tpl.php:130
msgid "Scheduled Purge URLs"
msgstr ""

#: src/lang.cls.php:96 tpl/cache/settings-purge.tpl.php:105
msgid "Scheduled Purge Time"
msgstr ""

#: src/lang.cls.php:97
msgid "Force Cache URIs"
msgstr ""

#: src/lang.cls.php:98
msgid "Force Public Cache URIs"
msgstr ""

#: src/lang.cls.php:99
msgid "Do Not Cache URIs"
msgstr ""

#: src/lang.cls.php:100
msgid "Do Not Cache Query Strings"
msgstr ""

#: src/lang.cls.php:101
msgid "Do Not Cache Categories"
msgstr ""

#: src/lang.cls.php:102
msgid "Do Not Cache Tags"
msgstr ""

#: src/lang.cls.php:103
msgid "Do Not Cache Roles"
msgstr ""

#: src/lang.cls.php:104
msgid "CSS Minify"
msgstr ""

#: src/lang.cls.php:105
msgid "CSS Combine"
msgstr ""

#: src/lang.cls.php:106
msgid "CSS Combine External and Inline"
msgstr ""

#: src/lang.cls.php:107
msgid "Generate UCSS"
msgstr ""

#: src/lang.cls.php:108
msgid "Generate UCSS in Background"
msgstr ""

#: src/lang.cls.php:109
msgid "UCSS Whitelist Selector"
msgstr ""

#: src/lang.cls.php:110
msgid "CSS HTTP/2 Push"
msgstr ""

#: src/lang.cls.php:111
msgid "JS Minify"
msgstr ""

#: src/lang.cls.php:113
msgid "JS Combine External and Inline"
msgstr ""

#: src/lang.cls.php:114
msgid "JS HTTP/2 Push"
msgstr ""

#: src/lang.cls.php:115
msgid "CSS/JS Cache TTL"
msgstr ""

#: src/lang.cls.php:116
msgid "HTML Minify"
msgstr ""

#: src/lang.cls.php:117 tpl/page_optm/settings_css.tpl.php:167
#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "Load CSS Asynchronously"
msgstr ""

#: src/lang.cls.php:118
msgid "Generate Critical CSS"
msgstr ""

#: src/lang.cls.php:119
msgid "Generate Critical CSS In Background"
msgstr ""

#: src/lang.cls.php:120
msgid "Separate CCSS Cache Post Types"
msgstr ""

#: src/lang.cls.php:121
msgid "Separate CCSS Cache URIs"
msgstr ""

#: src/lang.cls.php:122
msgid "Inline CSS Async Lib"
msgstr ""

#: src/lang.cls.php:123
msgid "Font Display Optimization"
msgstr ""

#: src/lang.cls.php:124
msgid "Load JS Deferred"
msgstr ""

#: src/lang.cls.php:125
msgid "Load Inline JS"
msgstr ""

#: src/lang.cls.php:126
msgid "Localize Resources"
msgstr ""

#: src/lang.cls.php:127
msgid "Localization Files"
msgstr ""

#: src/lang.cls.php:128
msgid "DNS Prefetch"
msgstr ""

#: src/lang.cls.php:129
msgid "DNS Prefetch Control"
msgstr ""

#: src/lang.cls.php:130
msgid "CSS Excludes"
msgstr ""

#: src/lang.cls.php:131
msgid "JS Excludes"
msgstr ""

#: src/lang.cls.php:132
msgid "Remove Query Strings"
msgstr ""

#: src/lang.cls.php:133
msgid "Load Google Fonts Asynchronously"
msgstr ""

#: src/lang.cls.php:134
msgid "Remove Google Fonts"
msgstr ""

#: src/lang.cls.php:135
msgid "Critical CSS Rules"
msgstr ""

#: src/lang.cls.php:136
msgid "JS Deferred Excludes"
msgstr ""

#: src/lang.cls.php:137
msgid "Remove WordPress Emoji"
msgstr ""

#: src/lang.cls.php:138
msgid "Remove Noscript Tag"
msgstr ""

#: src/lang.cls.php:139
msgid "URI Excludes"
msgstr ""

#: src/lang.cls.php:140
msgid "Role Excludes"
msgstr ""

#: src/lang.cls.php:143
msgid "Gravatar Cache Cron"
msgstr ""

#: src/lang.cls.php:144
msgid "Gravatar Cache TTL"
msgstr ""

#: src/lang.cls.php:146
msgid "Lazy Load Images"
msgstr ""

#: src/lang.cls.php:147
msgid "Lazy Load Image Excludes"
msgstr ""

#: src/lang.cls.php:148
msgid "Lazy Load Image Class Name Excludes"
msgstr ""

#: src/lang.cls.php:149
msgid "Lazy Load Image Parent Class Name Excludes"
msgstr ""

#: src/lang.cls.php:150
msgid "Lazy Load Iframe Class Name Excludes"
msgstr ""

#: src/lang.cls.php:151
msgid "Lazy Load Iframe Parent Class Name Excludes"
msgstr ""

#: src/lang.cls.php:152
msgid "Lazy Load URI Excludes"
msgstr ""

#: src/lang.cls.php:153
msgid "LQIP Excludes"
msgstr ""

#: src/lang.cls.php:154
msgid "Basic Image Placeholder"
msgstr ""

#: src/lang.cls.php:155
msgid "Responsive Placeholder"
msgstr ""

#: src/lang.cls.php:156
msgid "Responsive Placeholder Color"
msgstr ""

#: src/lang.cls.php:157
msgid "Responsive Placeholder SVG"
msgstr ""

#: src/lang.cls.php:158
msgid "LQIP Cloud Generator"
msgstr ""

#: src/lang.cls.php:159
msgid "LQIP Quality"
msgstr ""

#: src/lang.cls.php:160
msgid "LQIP Minimum Dimensions"
msgstr ""

#: src/lang.cls.php:162
msgid "Generate LQIP In Background"
msgstr ""

#: src/lang.cls.php:163
msgid "Lazy Load Iframes"
msgstr ""

#: src/lang.cls.php:164
msgid "Inline Lazy Load Images Library"
msgstr ""

#: src/lang.cls.php:165
msgid "Auto Request Cron"
msgstr ""

#: src/lang.cls.php:166
msgid "Auto Pull Cron"
msgstr ""

#: src/lang.cls.php:167
msgid "Optimize Original Images"
msgstr ""

#: src/lang.cls.php:168
msgid "Remove Original Backups"
msgstr ""

#: src/lang.cls.php:169
msgid "Create WebP Versions"
msgstr ""

#: src/lang.cls.php:170
msgid "Optimize Losslessly"
msgstr ""

#: src/lang.cls.php:171
msgid "Preserve EXIF/XMP data"
msgstr ""

#: src/lang.cls.php:172
msgid "WebP Attribute To Replace"
msgstr ""

#: src/lang.cls.php:173
msgid "WebP For Extra srcset"
msgstr ""

#: src/lang.cls.php:174
msgid "WordPress Image Quality Control"
msgstr ""

#: src/lang.cls.php:175 tpl/esi_widget_edit.php:36
msgid "Enable ESI"
msgstr ""

#: src/lang.cls.php:176
msgid "Cache Admin Bar"
msgstr ""

#: src/lang.cls.php:177
msgid "Cache Comment Form"
msgstr ""

#: src/lang.cls.php:178
msgid "ESI Nonces"
msgstr ""

#: src/lang.cls.php:179
msgid "Vary Group"
msgstr ""

#: src/lang.cls.php:180
msgid "Purge All Hooks"
msgstr ""

#: src/lang.cls.php:181
msgid "Improve HTTP/HTTPS Compatibility"
msgstr ""

#: src/lang.cls.php:182
msgid "Instant Click"
msgstr ""

#: src/lang.cls.php:183
msgid "Do Not Cache Cookies"
msgstr ""

#: src/lang.cls.php:184
msgid "Do Not Cache User Agents"
msgstr ""

#: src/lang.cls.php:185
msgid "Login Cookie"
msgstr ""

#: src/lang.cls.php:186
msgid "Image WebP Replacement"
msgstr ""

#: src/lang.cls.php:188
msgid "Frontend .htaccess Path"
msgstr ""

#: src/lang.cls.php:189
msgid "Backend .htaccess Path"
msgstr ""

#: src/lang.cls.php:190
msgid "Frontend Heartbeat Control"
msgstr ""

#: src/lang.cls.php:191
msgid "Frontend Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:192
msgid "Backend Heartbeat Control"
msgstr ""

#: src/lang.cls.php:193
msgid "Backend Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:194
msgid "Editor Heartbeat"
msgstr ""

#: src/lang.cls.php:195
msgid "Editor Heartbeat TTL"
msgstr ""

#: src/lang.cls.php:197
msgid "QUIC.cloud CDN"
msgstr ""

#: src/lang.cls.php:198
msgid "Use CDN Mapping"
msgstr ""

#: src/lang.cls.php:199
msgid "CDN URL"
msgstr ""

#: src/lang.cls.php:200
msgid "Include Images"
msgstr ""

#: src/lang.cls.php:201
msgid "Include CSS"
msgstr ""

#: src/lang.cls.php:202
msgid "Include JS"
msgstr ""

#: src/lang.cls.php:203 tpl/cdn/settings.tpl.php:96
msgid "Include File Types"
msgstr ""

#: src/lang.cls.php:204
msgid "HTML Attribute To Replace"
msgstr ""

#: src/lang.cls.php:205
msgid "Original URLs"
msgstr ""

#: src/lang.cls.php:206
msgid "Included Directories"
msgstr ""

#: src/lang.cls.php:207
msgid "Exclude Path"
msgstr ""

#: src/lang.cls.php:208
msgid "Cloudflare API"
msgstr ""

#: src/lang.cls.php:211
msgid "Delay"
msgstr ""

#: src/lang.cls.php:212
msgid "Run Duration"
msgstr ""

#: src/lang.cls.php:213
msgid "Interval Between Runs"
msgstr ""

#: src/lang.cls.php:214
msgid "Crawl Interval"
msgstr ""

#: src/lang.cls.php:215
msgid "Threads"
msgstr ""

#: src/lang.cls.php:216
msgid "Timeout"
msgstr ""

#: src/lang.cls.php:217
msgid "Server Load Limit"
msgstr ""

#: src/lang.cls.php:218
msgid "Role Simulation"
msgstr ""

#: src/lang.cls.php:219
msgid "Cookie Simulation"
msgstr ""

#: src/lang.cls.php:220
msgid "Custom Sitemap"
msgstr ""

#: src/lang.cls.php:221
msgid "Drop Domain from Sitemap"
msgstr ""

#: src/lang.cls.php:222
msgid "Sitemap Timeout"
msgstr ""

#: src/lang.cls.php:224 tpl/inc/disabled_all.php:5
msgid "Disable All Features"
msgstr ""

#: src/lang.cls.php:225 tpl/toolbox/log_viewer.tpl.php:7
msgid "Debug Log"
msgstr ""

#: src/lang.cls.php:226
msgid "Admin IPs"
msgstr ""

#: src/lang.cls.php:227
msgid "Debug Level"
msgstr ""

#: src/lang.cls.php:228
msgid "Log File Size Limit"
msgstr ""

#: src/lang.cls.php:229
msgid "Log Cookies"
msgstr ""

#: src/lang.cls.php:230
msgid "Collapse Query Strings"
msgstr ""

#: src/lang.cls.php:231
msgid "Debug URI Includes"
msgstr ""

#: src/lang.cls.php:232
msgid "Debug URI Excludes"
msgstr ""

#: src/lang.cls.php:234
msgid "Revisions Max Number"
msgstr ""

#: src/lang.cls.php:235
msgid "Revisions Max Age"
msgstr ""

#: src/media.cls.php:217
msgid "LiteSpeed Optimization"
msgstr ""

#: src/media.cls.php:267 src/media.cls.php:292 src/media.cls.php:321
#: src/media.cls.php:345
msgid "(optm)"
msgstr ""

#: src/media.cls.php:268
msgid "Currently using optimized version of file."
msgstr ""

#: src/media.cls.php:268 src/media.cls.php:322
msgid "Click to switch to original (unoptimized) version."
msgstr ""

#: src/media.cls.php:272 src/media.cls.php:326
msgid "(non-optm)"
msgstr ""

#: src/media.cls.php:273
msgid "Currently using original (unoptimized) version of file."
msgstr ""

#: src/media.cls.php:273 src/media.cls.php:327
msgid "Click to switch to optimized version."
msgstr ""

#: src/media.cls.php:277
msgid "Original file reduced by %1$s (%2$s)"
msgstr ""

#: src/media.cls.php:283
msgid "Orig saved %s"
msgstr ""

#: src/media.cls.php:291 src/media.cls.php:344
msgid "Using optimized version of file. "
msgstr ""

#: src/media.cls.php:291
msgid "No backup of original file exists."
msgstr ""

#: src/media.cls.php:300
msgid "Congratulation! Your file was already optmized"
msgstr ""

#: src/media.cls.php:303
msgid "Orig %s"
msgstr ""

#: src/media.cls.php:303
msgid "(no savings)"
msgstr ""

#: src/media.cls.php:306
msgid "Orig"
msgstr ""

#: src/media.cls.php:322
msgid "Currently using optimized version of WebP file."
msgstr ""

#: src/media.cls.php:327
msgid "Currently using original (unoptimized) version of WebP file."
msgstr ""

#: src/media.cls.php:331
msgid "WebP file reduced by %1$s (%2$s)"
msgstr ""

#: src/media.cls.php:336
msgid "WebP saved %s"
msgstr ""

#: src/media.cls.php:344
msgid "No backup of unoptimized WebP file exists."
msgstr ""

#: src/media.cls.php:350
msgid "WebP"
msgstr ""

#: src/media.cls.php:360
msgid "Restore from backup"
msgstr ""

#: src/placeholder.cls.php:83 tpl/dash/network_dash.tpl.php:30
msgid "LQIP"
msgstr ""

#: src/placeholder.cls.php:141
msgid "LQIP image preview for size %s"
msgstr ""

#: src/purge.cls.php:193
msgid "Purged all caches successfully."
msgstr ""

#: src/purge.cls.php:212
msgid "Notified LiteSpeed Web Server to purge all LSCache entries."
msgstr ""

#: src/purge.cls.php:229
msgid "Cleaned all Critical CSS files."
msgstr ""

#: src/purge.cls.php:246
msgid "Cleaned all LQIP files."
msgstr ""

#: src/purge.cls.php:263
msgid "Cleaned all Gravatar files."
msgstr ""

#: src/purge.cls.php:280
msgid "Notified LiteSpeed Web Server to purge localized resource entries."
msgstr ""

#: src/purge.cls.php:301
msgid "Notified LiteSpeed Web Server to purge CSS/JS entries."
msgstr ""

#: src/purge.cls.php:317
msgid "Opcode cache is not enabled."
msgstr ""

#: src/purge.cls.php:329
msgid "Reset the entire opcode cache successfully."
msgstr ""

#: src/purge.cls.php:357
msgid "Object cache is not enabled."
msgstr ""

#: src/purge.cls.php:370
msgid "Purge all object caches successfully."
msgstr ""

#: src/purge.cls.php:523
msgid "Notified LiteSpeed Web Server to purge the front page."
msgstr ""

#: src/purge.cls.php:536
msgid "Notified LiteSpeed Web Server to purge all pages."
msgstr ""

#: src/purge.cls.php:555
msgid "Notified LiteSpeed Web Server to purge error pages."
msgstr ""

#: src/purge.cls.php:582
msgid "Purge category %s"
msgstr ""

#: src/purge.cls.php:609
msgid "Purge tag %s"
msgstr ""

#: src/purge.cls.php:640
msgid "Purge url %s"
msgstr ""

#: src/task.cls.php:119
msgid "Every Minute"
msgstr ""

#: src/task.cls.php:138
msgid "LiteSpeed Crawler Cron"
msgstr ""

#: src/utility.cls.php:250
msgid "right now"
msgstr ""

#: src/utility.cls.php:250
msgid "just now"
msgstr ""

#: src/utility.cls.php:253
msgid " %s ago"
msgstr ""

#: src/utility.cls.php:874
msgid "&laquo;"
msgstr ""

#: src/utility.cls.php:875
msgid "&raquo;"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:14
msgid "WooCommerce Settings"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:19
#: tpl/cache/settings-advanced.tpl.php:12
#: tpl/cache/settings_inc.browser.tpl.php:12 tpl/toolbox/heartbeat.tpl.php:14
#: tpl/toolbox/report.tpl.php:29
msgid "NOTICE:"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:20
msgid "After verifying that the cache works in general, please test the cart."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:21
msgid "To test the cart, visit the <a %s>FAQ</a>."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:28
msgid "Product Update Interval"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge product on changes to the quantity or stock status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:33
msgid "Purge categories only when stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:34
msgid "Purge product and categories only when the stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Purge product only when the stock status changes."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:35
msgid "Do not purge categories on changes to the quantity or stock status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:36
msgid ""
"Always purge both product and categories on changes to the quantity or stock "
"status."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:49
msgid ""
"Determines how changes in product quantity and product stock status affect "
"product pages and their associated category pages."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:57
msgid "Use Front Page TTL for the Shop Page"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:62
msgid ""
"Checking this option will force the shop page to use the front page TTL "
"setting."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:63
msgid ""
"For example, if the homepage for the site is located at %1$s, the shop page "
"may be located at %2$s."
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:71
msgid "Privately Cache Cart"
msgstr ""

#: thirdparty/woocommerce.content.tpl.php:76
msgid "Privately cache cart when not empty."
msgstr ""

#: thirdparty/woocommerce.tab.tpl.php:3
msgid "WooCommerce"
msgstr ""

#: tpl/banner/cloud_news.tpl.php:23 tpl/banner/cloud_news.tpl.php:30
msgid "Install"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:13
msgid "You just unlocked a promotion from QUIC.cloud!"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:17
msgid "Learn more"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:22
msgid "Tweet preview"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:39
msgid "Tweet this"
msgstr ""

#: tpl/banner/cloud_promo.tpl.php:51
msgid "Dismiss this notice"
msgstr ""

#. #-#-#-#-#  litespeed-cache.pot (LiteSpeed Cache 3.6.2)  #-#-#-#-#
#. Plugin Name of the plugin/theme
#: tpl/banner/new_version.php:59 tpl/banner/new_version_dev.tpl.php:12
#: tpl/cache/more_settings_tip.tpl.php:15 tpl/inc/admin_footer.php:8
msgid "LiteSpeed Cache"
msgstr ""

#: tpl/banner/new_version.php:59
msgid "New Version Available!"
msgstr ""

#: tpl/banner/new_version.php:63
msgid "New release %s is available now."
msgstr ""

#: tpl/banner/new_version.php:71 tpl/banner/new_version_dev.tpl.php:24
#: tpl/toolbox/beta_test.tpl.php:48
msgid "Upgrade"
msgstr ""

#: tpl/banner/new_version.php:81
msgid "Turn On Auto Upgrade"
msgstr ""

#: tpl/banner/new_version.php:87
msgid "Maybe Later"
msgstr ""

#: tpl/banner/new_version_dev.tpl.php:12
msgid "New Developer Version Available!"
msgstr ""

#: tpl/banner/new_version_dev.tpl.php:16
msgid "New developer version %s is available now."
msgstr ""

#: tpl/banner/score.php:24
msgid "Thank You for Using the LiteSpeed Cache Plugin!"
msgstr ""

#: tpl/banner/score.php:28 tpl/dash/dashboard.tpl.php:153
msgid "Page Load Time"
msgstr ""

#: tpl/banner/score.php:34 tpl/banner/score.php:74
#: tpl/dash/dashboard.tpl.php:166 tpl/dash/dashboard.tpl.php:225
msgid "Before"
msgstr ""

#: tpl/banner/score.php:45 tpl/banner/score.php:84
#: tpl/dash/dashboard.tpl.php:175 tpl/dash/dashboard.tpl.php:233
msgid "After"
msgstr ""

#: tpl/banner/score.php:55 tpl/banner/score.php:94
#: tpl/dash/dashboard.tpl.php:183 tpl/dash/dashboard.tpl.php:241
msgid "Improved by"
msgstr ""

#: tpl/banner/score.php:68 tpl/dash/dashboard.tpl.php:210
msgid "PageSpeed Score"
msgstr ""

#: tpl/banner/score.php:113
msgid "Sure I'd love to review!"
msgstr ""

#: tpl/banner/score.php:117
msgid "I've already left a review"
msgstr ""

#: tpl/banner/score.php:118
msgid "Maybe later"
msgstr ""

#: tpl/banner/score.php:122
msgid "Created with ❤️  by LiteSpeed team."
msgstr ""

#: tpl/banner/score.php:124
msgid "<a %s>Support forum</a> | <a %s>Submit a ticket</a>"
msgstr ""

#: tpl/banner/slack.php:9
msgid "Welcome to LiteSpeed"
msgstr ""

#: tpl/banner/slack.php:13
msgid "Want to connect with other LiteSpeed users?"
msgstr ""

#: tpl/banner/slack.php:14
msgid "Join the %s community."
msgstr ""

#: tpl/banner/slack.php:23
msgid "Join Us on Slack"
msgstr ""

#: tpl/cache/entry.tpl.php:7 tpl/cache/settings-ttl.tpl.php:7
msgid "TTL"
msgstr ""

#: tpl/cache/entry.tpl.php:8 tpl/cache/entry_network.tpl.php:7
#: tpl/toolbox/entry.tpl.php:6 tpl/toolbox/purge.tpl.php:135
msgid "Purge"
msgstr ""

#: tpl/cache/entry.tpl.php:9 tpl/cache/entry_network.tpl.php:8
msgid "Excludes"
msgstr ""

#: tpl/cache/entry.tpl.php:10
msgid "ESI"
msgstr ""

#: tpl/cache/entry.tpl.php:14 tpl/cache/entry_network.tpl.php:9
msgid "Object"
msgstr ""

#: tpl/cache/entry.tpl.php:15 tpl/cache/entry_network.tpl.php:10
msgid "Browser"
msgstr ""

#: tpl/cache/entry.tpl.php:18 tpl/cache/entry_network.tpl.php:11
#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Advanced"
msgstr ""

#: tpl/cache/entry.tpl.php:39
msgid "LiteSpeed Cache Settings"
msgstr ""

#: tpl/cache/entry_network.tpl.php:18
msgid "LiteSpeed Cache Network Cache Settings"
msgstr ""

#: tpl/cache/more_settings_tip.tpl.php:12
#: tpl/cache/settings-excludes.tpl.php:62
#: tpl/cache/settings-excludes.tpl.php:95 tpl/cdn/settings.tpl.php:72
#: tpl/crawler/settings-general.tpl.php:39
#: tpl/crawler/settings-general.tpl.php:140
#: tpl/crawler/settings-general.tpl.php:145
msgid "NOTE"
msgstr ""

#: tpl/cache/more_settings_tip.tpl.php:15
msgid "More settings available under %s menu"
msgstr ""

#: tpl/cache/network_settings-advanced.tpl.php:7
#: tpl/cache/settings-advanced.tpl.php:7
msgid "Advanced Settings"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:7
#: tpl/cache/settings-cache.tpl.php:7
msgid "Cache Control Settings"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:13
msgid "Network Enable Cache"
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:17
msgid ""
"Enabling LiteSpeed Cache for WordPress here enables the cache for the "
"network."
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:18
msgid ""
"It is <b>STRONGLY</b> recommend that the compatibility with other plugins on "
"a single/few sites is tested first."
msgstr ""

#: tpl/cache/network_settings-cache.tpl.php:19
msgid ""
"This is to ensure compatibility prior to enabling the cache for all sites."
msgstr ""

#: tpl/cache/network_settings-excludes.tpl.php:7
#: tpl/cache/settings-excludes.tpl.php:7
msgid "Exclude Settings"
msgstr ""

#: tpl/cache/network_settings-purge.tpl.php:7
#: tpl/cache/settings-purge.tpl.php:7
msgid "Purge Settings"
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:13
msgid "These settings are meant for ADVANCED USERS ONLY."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:32
msgid ""
"Enable this option if you are using both HTTP and HTTPS in the same domain "
"and are noticing cache irregularities."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:46
msgid ""
"When a vistor hovers over a page link, preload that page. This will speed up "
"the visit to that link."
msgstr ""

#: tpl/cache/settings-advanced.tpl.php:50
msgid ""
"This will generate extra requests to the server, which will increase server "
"load."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:19
msgid "Use Network Admin Setting"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:24
msgid "Please visit the <a %s>Information</a> page on how to test the cache."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:27 tpl/page_optm/entry.tpl.php:41
#: tpl/page_optm/entry.tpl.php:51
msgid "NOTICE"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:27
msgid ""
"When disabling the cache, all cached entries for this site will be purged."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:30
msgid "The network admin setting can be overridden here."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:34
msgid ""
"With QUIC.cloud CDN enabled, you may still be seeing cache headers from your "
"local server."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:48
msgid "Privately cache frontend pages for logged-in users. (LSWS %s required)"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:61
msgid ""
"Privately cache commenters that have pending comments. Disabling this option "
"will serve non-cacheable pages to commenters. (LSWS %s required)"
msgstr ""

#: tpl/cache/settings-cache.tpl.php:74
msgid "Cache requests made by WordPress REST API calls."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:87
msgid "Disabling this option may negatively affect performance."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:108
msgid "URI Paths containing these strings will NOT be cached as public."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:122
msgid ""
"Paths containing these strings will be cached regardless of no-cacheable "
"settings."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:124 tpl/cache/settings-cache.tpl.php:141
msgid ""
"To define a custom TTL for a URI, add a space followed by the TTL value to "
"the end of the URI."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:125 tpl/cache/settings-cache.tpl.php:142
msgid "For example, %1$s defines a TTL of %2$s seconds for %3$s."
msgstr ""

#: tpl/cache/settings-cache.tpl.php:139
msgid ""
"Paths containing these strings will be forced to public cached regardless of "
"no-cacheable settings."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:7
msgid "ESI Settings"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:12
msgid ""
"With ESI (Edge Side Includes), pages may be served from cache for logged-in "
"users."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:13
msgid ""
"ESI allows you to designate parts of your dynamic page as separate fragments "
"that are then assembled together to make the whole page. In other words, ESI "
"lets you “punch holes” in a page, and then fill those holes with content "
"that may be cached privately, cached publicly with its own TTL, or not "
"cached at all."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:14
msgid "WpW: Private Cache vs. Public Cache"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:18
msgid "You can turn shortcodes into ESI blocks."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:20
msgid "Replace %1$s with %2$s."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:27
msgid "ESI sample for developers"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:35 tpl/cdn/manage.tpl.php:21
#: tpl/crawler/summary.tpl.php:48 tpl/inc/check_cache_disabled.php:31
#: tpl/inc/check_if_network_disable_all.php:19 tpl/page_optm/entry.tpl.php:34
#: tpl/page_optm/settings_css.tpl.php:143
#: tpl/page_optm/settings_localization.tpl.php:11
msgid "WARNING"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:36
msgid ""
"These options are only available with LiteSpeed Enterprise Web Server or "
"QUIC.cloud CDN."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:49
msgid ""
"Turn ON to cache public pages for logged in users, and serve the Admin Bar "
"and Comment Form via ESI blocks. These two blocks will be uncached unless "
"enabled below."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:62
msgid " Cache the built-in Admin Bar ESI block."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:75
msgid "Cache the built-in Comment Form ESI block."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:92
msgid ""
"The list will be merged with the predefined nonces in your local data file."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:93
msgid "The latest data file is"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:96
#: tpl/page_optm/settings_media_exc.tpl.php:26
#: tpl/page_optm/settings_tuning.tpl.php:36
#: tpl/page_optm/settings_tuning.tpl.php:57
#: tpl/page_optm/settings_tuning.tpl.php:91
msgid "Filter %s is supported."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:102
msgid "The above nonces will be converted to ESI automatically."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:104
msgid ""
"An optional second parameter may be used to specify cache control. Use a "
"space to separate"
msgstr ""

#: tpl/cache/settings-esi.tpl.php:107 tpl/cache/settings-purge.tpl.php:110
#: tpl/cdn/settings.tpl.php:137
msgid ""
"Wildcard %1$s supported (match zero or more characters). For example, to "
"match %2$s and %3$s, use %4$s."
msgstr ""

#: tpl/cache/settings-esi.tpl.php:135
msgid ""
"If your site contains public content that certain user roles can see but "
"other roles cannot, you can specify a Vary Group for those user roles. For "
"example, specifying an administrator vary group allows there to be a "
"separate publicly-cached page tailored to administrators (with “edit” links, "
"etc), while all other user roles see the default public page."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:21
msgid "Paths containing these strings will not be cached."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:36
msgid "Query strings containing these parameters will not be cached."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:37
msgid "For example, for %s, %s and %s can be used here."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:57
msgid "All categories are cached by default."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:58
#: tpl/cache/settings-excludes.tpl.php:91
#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "To prevent %s from being cached, enter them here."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:58
msgid "categories"
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:64
msgid ""
"If the category name is not found, the category will be removed from the "
"list on save."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:90
msgid "All tags are cached by default."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:91
msgid "tags"
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:97
msgid ""
"If the tag slug is not found, the tag will be removed from the list on save."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:98
msgid "To exclude %1$s, insert %2$s."
msgstr ""

#: tpl/cache/settings-excludes.tpl.php:124
msgid "Selected roles will be excluded from cache."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:13
msgid "All pages"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:14
msgid "Front page"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:15
msgid "Home page"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:16
msgid "Pages"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:18
msgid "All pages with Recent Posts Widget"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:20
msgid "Author archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:21
msgid "Post type archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:23
msgid "Yearly archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:24
msgid "Monthly archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:25
msgid "Daily archive"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:27
msgid "Term archive (include category, tag, and tax)"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:47
msgid "Auto Purge Rules For Publish/Update"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:50 tpl/cache/settings-purge.tpl.php:89
#: tpl/cache/settings-purge.tpl.php:113
msgid "Note"
msgstr ""

#: tpl/cache/settings-purge.tpl.php:52
msgid ""
"Select \"All\" if there are dynamic widgets linked to posts on pages other "
"than the front or home pages."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:53
msgid "Other checkboxes will be ignored."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:54
msgid ""
"Select only the archive types that are currently used, the others can be "
"left unchecked."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:72
msgid ""
"Select which pages will be automatically purged when posts are published/"
"updated."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:85
msgid ""
"If ON, the stale copy of a cached page will be shown to visitors until a new "
"cache copy is available. Reduces the server load for following visits. If "
"OFF, the page will be dynamically generated while visitors wait."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:91
msgid ""
"By design, this option may serve stale content. Do not enable this option, "
"if that is not OK with you."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:105
msgid ""
"The URLs here (one per line) will be purged automatically at the time set in "
"the option \"%s\"."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:106
msgid "Both %1$s and %2$s are acceptable."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:115
msgid ""
"For URLs with wildcards, there may be a delay in initiating scheduled purge."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:130
msgid "Specify the time to purge the \"%s\" list."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:131
msgid "Current server time is %s."
msgstr ""

#: tpl/cache/settings-purge.tpl.php:153
msgid "A Purge All will be executed when WordPress runs these hooks."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:22
msgid "Specify how long, in seconds, public pages are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:37
msgid "Specify how long, in seconds, private pages are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:52
msgid "Specify how long, in seconds, the front page is cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:67
msgid "Specify how long, in seconds, feeds are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:68 tpl/cache/settings-ttl.tpl.php:83
msgid "If this is set to a number less than 30, feeds will not be cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:82
msgid "Specify how long, in seconds, REST calls are cached."
msgstr ""

#: tpl/cache/settings-ttl.tpl.php:105
msgid ""
"Specify an HTTP status code and the number of seconds to cache that page, "
"separated by a space."
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:6
msgid "Browser Cache Settings"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:13
msgid "OpenLiteSpeed users please check this"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:14
msgid "Setting Up Custom Headers"
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:27
msgid ""
"Browser caching stores static files locally in the user's browser. Turn on "
"this setting to reduce repeated requests for static files."
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:29
msgid ""
"You can turn on browser caching in server admin too. <a %s>Learn more about "
"LiteSpeed browser cache settings</a>."
msgstr ""

#: tpl/cache/settings_inc.browser.tpl.php:42
msgid ""
"The amount of time, in seconds, that files will be stored in browser cache "
"before expiring."
msgstr ""

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:14
msgid "Ignore certain query strings when caching. (LSWS %s required)"
msgstr ""

#: tpl/cache/settings_inc.cache_dropquery.tpl.php:15
msgid "For example, to drop parameters beginning with %s, %s can be used here."
msgstr ""

#: tpl/cache/settings_inc.cache_favicon.tpl.php:14
msgid "favicon.ico is requested on most pages."
msgstr ""

#: tpl/cache/settings_inc.cache_favicon.tpl.php:15
msgid ""
"Caching this resource may improve server performance by avoiding unnecessary "
"PHP calls."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:18
msgid "Cache mobile views separately."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:19
msgid ""
"Only enable for AMP or mobile-specific design/content, not for responsive "
"sites."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:42
msgid "Htaccess did not match configuration option."
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:43
msgid "Htaccess rule is: %s"
msgstr ""

#: tpl/cache/settings_inc.cache_mobile.tpl.php:70
msgid "If %1$s is %2$s, then %3$s must be populated!"
msgstr ""

#: tpl/cache/settings_inc.cache_resources.tpl.php:15
msgid "Some themes and plugins add resources via a PHP request."
msgstr ""

#: tpl/cache/settings_inc.cache_resources.tpl.php:16
msgid ""
"Caching these pages may improve server performance by avoiding unnecessary "
"PHP calls."
msgstr ""

#: tpl/cache/settings_inc.exclude_cookies.tpl.php:14
msgid "cookies"
msgstr ""

#: tpl/cache/settings_inc.exclude_useragent.tpl.php:14
msgid "user agents"
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:17
msgid "SYNTAX: alphanumeric and \"_\"."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:18
msgid "No spaces and case sensitive."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:19
msgid "MUST BE UNIQUE FROM OTHER WEB APPLICATIONS."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:22
msgid "The default login cookie is %s."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:23
msgid ""
"The server will determine if the user is logged in based on the existance of "
"this cookie."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:24
msgid ""
"This setting is useful for those that have multiple web applications for the "
"same domain."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:25
msgid ""
"If every web application uses the same cookie, the server may confuse "
"whether a user is logged in or not."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:26
msgid "The cookie set here will be used for this WordPress installation."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:29
msgid "Example use case:"
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:31
msgid "There is a WordPress installed for %s."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:33
msgid "Then another WordPress is installed (NOT MULTISITE) at %s"
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:34
msgid ""
"The cache needs to distinguish who is logged into which WordPress site in "
"order to cache correctly."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:42
msgid "Invalid login cookie. Invalid characters found."
msgstr ""

#: tpl/cache/settings_inc.login_cookie.tpl.php:56
msgid ""
"WARNING: The .htaccess login cookie and Database login cookie do not match."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:6
msgid "Enabled"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:7
msgid "Disabled"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:14
msgid "Not Available"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:17
msgid "Passed"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:20
msgid "Failed"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:27
msgid "Object Cache Settings"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:41
msgid "Use object cache functionality."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:47 tpl/crawler/blacklist.tpl.php:32
#: tpl/crawler/summary.tpl.php:124
msgid "Status"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:50
#: tpl/cache/settings_inc.object.tpl.php:51
msgid "%s Extension"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:52
msgid "Connection Test"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:78
msgid "Your %s Hostname or IP address."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:91
#: tpl/cache/settings_inc.object.tpl.php:92
msgid "Default port for %1$s is %2$s."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:105
msgid "Default TTL for cached objects."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:118
msgid "Only available when %s is installed."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:131
msgid "Specify the password used when connecting."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:144
msgid "Database to be used"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:157
msgid "Groups cached at the network level."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:184
msgid "Use keep-alive connections to speed up cache operations."
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:197
msgid "Improve wp-admin speed through caching. (May encounter expired data)"
msgstr ""

#: tpl/cache/settings_inc.object.tpl.php:210
msgid "Save transients in database when %1$s is %2$s."
msgstr ""

#: tpl/cache/settings_inc.purge_on_upgrade.tpl.php:15
msgid ""
"When enabled, the cache will automatically purge when any plugin, theme or "
"the WordPress core is upgraded."
msgstr ""

#: tpl/cdn/entry.tpl.php:6 tpl/cdn/settings.tpl.php:21
msgid "CDN Settings"
msgstr ""

#: tpl/cdn/entry.tpl.php:14
msgid "LiteSpeed Cache CDN"
msgstr ""

#: tpl/cdn/manage.tpl.php:12
msgid "QUIC.cloud"
msgstr ""

#: tpl/cdn/manage.tpl.php:14
msgid "To manage QUIC.cloud options, please visit"
msgstr ""

#: tpl/cdn/manage.tpl.php:23
msgid ""
"To enable the following functionality, turn ON Cloudflare API in CDN "
"Settings."
msgstr ""

#: tpl/cdn/manage.tpl.php:28
msgid "Cloudflare Domain"
msgstr ""

#: tpl/cdn/manage.tpl.php:29
msgid "Cloudflare Zone"
msgstr ""

#: tpl/cdn/manage.tpl.php:32
msgid "Development Mode"
msgstr ""

#: tpl/cdn/manage.tpl.php:34
msgid "Turn ON"
msgstr ""

#: tpl/cdn/manage.tpl.php:37
msgid "Turn OFF"
msgstr ""

#: tpl/cdn/manage.tpl.php:40
msgid "Check Status"
msgstr ""

#: tpl/cdn/manage.tpl.php:49
msgid "Current status is %1$s since %2$s."
msgstr ""

#: tpl/cdn/manage.tpl.php:55
msgid "Current status is %s."
msgstr ""

#: tpl/cdn/manage.tpl.php:56
msgid "Development mode will be automatically turned off in %s."
msgstr ""

#: tpl/cdn/manage.tpl.php:64
msgid ""
"Temporarily bypass Cloudflare cache. This allows changes to the origin "
"server to be seen in realtime."
msgstr ""

#: tpl/cdn/manage.tpl.php:65
msgid "Development Mode will be turned off automatically after three hours."
msgstr ""

#: tpl/cdn/manage.tpl.php:71
msgid "Cloudflare Cache"
msgstr ""

#: tpl/cdn/manage.tpl.php:77
msgid "Purge Everything"
msgstr ""

#: tpl/cdn/settings.tpl.php:35
msgid "Enable %s CDN API functionality."
msgstr ""

#: tpl/cdn/settings.tpl.php:48
msgid ""
"Turn this setting %1$s if you are using a Content Delivery Network (CDN). "
"NOTE: QUIC.cloud CDN and Cloudflare do not use CDN Mapping. If you are are "
"only using QUIC.cloud or Cloudflare, leave this setting %2$s."
msgstr ""

#: tpl/cdn/settings.tpl.php:73
msgid ""
"To randomize CDN hostname, define multiple hostnames for the same resources."
msgstr ""

#: tpl/cdn/settings.tpl.php:78
msgid ""
"Serve all image files through the CDN. This will affect all attachments, "
"HTML %s tags, and CSS %s attributes."
msgstr ""

#: tpl/cdn/settings.tpl.php:82
msgid ""
"Serve all CSS files through the CDN. This will affect all enqueued WP CSS "
"files."
msgstr ""

#: tpl/cdn/settings.tpl.php:86
msgid ""
"Serve all JavaScript files through the CDN. This will affect all enqueued WP "
"JavaScript files."
msgstr ""

#: tpl/cdn/settings.tpl.php:90
msgid "Static file type links to be replaced by CDN links."
msgstr ""

#: tpl/cdn/settings.tpl.php:92
msgid "This will affect all tags containing attributes: %s %s %s."
msgstr ""

#: tpl/cdn/settings.tpl.php:93
msgid "Default value"
msgstr ""

#: tpl/cdn/settings.tpl.php:96
msgid ""
"If you turn any of the above settings OFF, please remove the related file "
"types from the %s box."
msgstr ""

#: tpl/cdn/settings.tpl.php:120
msgid ""
"Specify which HTML element attributes will be replaced with CDN Mapping."
msgstr ""

#: tpl/cdn/settings.tpl.php:121 tpl/img_optm/settings.tpl.php:140
msgid "Only attributes listed here will be replaced."
msgstr ""

#: tpl/cdn/settings.tpl.php:122 tpl/img_optm/settings.tpl.php:141
msgid "Use the format %1$s or %2$s (element is optional)."
msgstr ""

#: tpl/cdn/settings.tpl.php:136
msgid ""
"Site URL to be served through the CDN. Beginning with %1$s. For example, "
"%2$s."
msgstr ""

#: tpl/cdn/settings.tpl.php:159
msgid "Only files within these directories will be pointed to the CDN."
msgstr ""

#: tpl/cdn/settings.tpl.php:173
msgid "Paths containing these strings will not be served from the CDN."
msgstr ""

#: tpl/cdn/settings.tpl.php:187
msgid "Use %s API functionality."
msgstr ""

#: tpl/cdn/settings.tpl.php:188
msgid "This can be managed from <a %2$s>%1$s</a>."
msgstr ""

#: tpl/cdn/settings.tpl.php:192
msgid "Email Address"
msgstr ""

#: tpl/cdn/settings.tpl.php:196
msgid "Your Email address on %s."
msgstr ""

#: tpl/cdn/settings.tpl.php:201
msgid "Global API Key"
msgstr ""

#: tpl/cdn/settings.tpl.php:205
msgid "Your API key is used to access %s APIs."
msgstr ""

#: tpl/cdn/settings.tpl.php:206
msgid "Get it from <a %1$s>%2$s</a>."
msgstr ""

#: tpl/cdn/settings.tpl.php:211
msgid "Domain"
msgstr ""

#: tpl/cdn/settings.tpl.php:219
msgid "You can just type part of the domain."
msgstr ""

#: tpl/cdn/settings.tpl.php:220
msgid ""
"Once saved, it will be matched with the current list and completed "
"automatically."
msgstr ""

#: tpl/crawler/blacklist.tpl.php:15
msgid "Are you sure to delete all existing blacklist?"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:16
msgid "Empty blacklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:21 tpl/crawler/entry.tpl.php:8
msgid "Blacklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:25 tpl/img_optm/summary.tpl.php:194
msgid "Total"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:31 tpl/crawler/map.tpl.php:43
#: tpl/toolbox/purge.tpl.php:217
msgid "URL"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:33 tpl/crawler/map.tpl.php:45
msgid "Operation"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:46
msgid "Remove from Blacklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:55
msgid "Not Blacklist"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:56 tpl/crawler/map.tpl.php:69
msgid "Blacklisted due to not cacheable"
msgstr ""

#: tpl/crawler/blacklist.tpl.php:57 tpl/crawler/map.tpl.php:70
#: tpl/crawler/summary.tpl.php:159 tpl/crawler/summary.tpl.php:180
msgid "Blacklisted"
msgstr ""

#: tpl/crawler/entry.tpl.php:6
msgid "Summary"
msgstr ""

#: tpl/crawler/entry.tpl.php:7
msgid "Map"
msgstr ""

#: tpl/crawler/entry.tpl.php:9 tpl/general/entry.tpl.php:6
#: tpl/general/entry.tpl.php:11 tpl/general/network_settings.tpl.php:8
#: tpl/general/settings.tpl.php:43
msgid "General Settings"
msgstr ""

#: tpl/crawler/entry.tpl.php:10
msgid "Simulation Settings"
msgstr ""

#: tpl/crawler/entry.tpl.php:11
msgid "Sitemap Settings"
msgstr ""

#: tpl/crawler/entry.tpl.php:18
msgid "LiteSpeed Cache Crawler"
msgstr ""

#: tpl/crawler/map.tpl.php:16
msgid "Clean Crawler Map"
msgstr ""

#: tpl/crawler/map.tpl.php:20
msgid "Refresh Crawler Map"
msgstr ""

#: tpl/crawler/map.tpl.php:27
msgid "Generated at %s"
msgstr ""

#: tpl/crawler/map.tpl.php:33
msgid "Sitemap List"
msgstr ""

#: tpl/crawler/map.tpl.php:37
msgid "Sitemap Total"
msgstr ""

#: tpl/crawler/map.tpl.php:44 tpl/dash/dashboard.tpl.php:464
msgid "Crawler Status"
msgstr ""

#: tpl/crawler/map.tpl.php:58
msgid "Add to Blacklist"
msgstr ""

#: tpl/crawler/map.tpl.php:67 tpl/crawler/summary.tpl.php:178
msgid "Cache Hit"
msgstr ""

#: tpl/crawler/map.tpl.php:68 tpl/crawler/summary.tpl.php:179
msgid "Cache Miss"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:9
msgid "Crawler General Settings"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:22
msgid "This will enable crawler cron."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:33
msgid "microseconds"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:35
msgid ""
"Specify time in microseconds for the delay between requests during a crawl."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:40
msgid "Server allowed min value"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:62
msgid "Specify time in seconds for the duration of the crawl interval."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:76
msgid "Specify time in seconds for the time between each run interval."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:91
msgid ""
"Specify how long in seconds before the crawler should initiate crawling the "
"entire sitemap again."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:105
msgid "Specify Number of Threads to use while crawling."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:120
msgid "Specify the timeout while crawling each URL."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:135
msgid ""
"The maximum average server load allowed while crawling. The number of "
"crawler threads in use will be actively reduced until average server load "
"falls under this limit. If this cannot be achieved with a single thread, the "
"current crawler run will be terminated."
msgstr ""

#: tpl/crawler/settings-general.tpl.php:141
msgid "Server enforced value"
msgstr ""

#: tpl/crawler/settings-general.tpl.php:146
msgid "Server allowed max value"
msgstr ""

#: tpl/crawler/settings-simulation.tpl.php:9
msgid "Crawler Simulation Settings"
msgstr ""

#: tpl/crawler/settings-simulation.tpl.php:23
msgid ""
"To crawl the site as a logged-in user, enter the user ids to be simulated."
msgstr ""

#: tpl/crawler/settings-simulation.tpl.php:49
msgid ""
"To crawl for a particular cookie, enter the cookie name, and the values you "
"wish to crawl for. Values should be one per line, and can include a blank "
"line. There will be one crawler created per cookie value, per simulated role."
msgstr ""

#: tpl/crawler/settings-simulation.tpl.php:51
msgid "Use %1$s in %2$s to indicate this cookie has not been set."
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:9
msgid "Crawler Sitemap Settings"
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:22
msgid ""
"The crawler can use your Google XML Sitemap instead of its own. Enter the "
"full URL to your sitemap here."
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:35
msgid ""
"The crawler will parse the sitemap and save into the database before "
"crawling. When parsing the sitemap, dropping the domain can save DB storage."
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:36
msgid ""
"If you are using multiple domains for one site, and have multiple domains in "
"the sitemap, please keep this option OFF so the crawler knows to crawl every "
"domain."
msgstr ""

#: tpl/crawler/settings-sitemap.tpl.php:49
msgid "Specify the timeout while parsing the sitemap."
msgstr ""

#: tpl/crawler/summary.tpl.php:23
msgid "%d hours"
msgstr ""

#: tpl/crawler/summary.tpl.php:26
msgid "%d hour"
msgstr ""

#: tpl/crawler/summary.tpl.php:33
msgid "%d minutes"
msgstr ""

#: tpl/crawler/summary.tpl.php:36
msgid "%d minute"
msgstr ""

#: tpl/crawler/summary.tpl.php:42
msgid "Crawler Cron"
msgstr ""

#: tpl/crawler/summary.tpl.php:49
msgid ""
"The crawler feature is not enabled on the LiteSpeed server. Please consult "
"your server admin or hosting provider."
msgstr ""

#: tpl/crawler/summary.tpl.php:50
msgid ""
"See <a %s>Introduction for Enabling the Crawler</a> for detailed information."
msgstr ""

#: tpl/crawler/summary.tpl.php:57
msgid "Current sitemap crawl started at"
msgstr ""

#: tpl/crawler/summary.tpl.php:63
msgid "The next complete sitemap crawl will start at"
msgstr ""

#: tpl/crawler/summary.tpl.php:71
msgid "Last complete run time for all crawlers"
msgstr ""

#: tpl/crawler/summary.tpl.php:72 tpl/crawler/summary.tpl.php:79
msgid "%d seconds"
msgstr ""

#: tpl/crawler/summary.tpl.php:78
msgid "Run time for previous crawler"
msgstr ""

#: tpl/crawler/summary.tpl.php:85 tpl/dash/dashboard.tpl.php:476
msgid "Current crawler started at"
msgstr ""

#: tpl/crawler/summary.tpl.php:92 tpl/dash/dashboard.tpl.php:483
msgid "Last interval"
msgstr ""

#: tpl/crawler/summary.tpl.php:99 tpl/dash/dashboard.tpl.php:490
msgid "Ended reason"
msgstr ""

#: tpl/crawler/summary.tpl.php:106 tpl/dash/dashboard.tpl.php:497
msgid "<b>Last crawled:</b> %s item(s)"
msgstr ""

#: tpl/crawler/summary.tpl.php:111
msgid "Reset position"
msgstr ""

#: tpl/crawler/summary.tpl.php:114
msgid "Manually run"
msgstr ""

#: tpl/crawler/summary.tpl.php:122
msgid "Cron Name"
msgstr ""

#: tpl/crawler/summary.tpl.php:123
msgid "Run Frequency"
msgstr ""

#: tpl/crawler/summary.tpl.php:125
msgid "Running"
msgstr ""

#: tpl/crawler/summary.tpl.php:156
msgid "Waiting"
msgstr ""

#: tpl/crawler/summary.tpl.php:157
msgid "Hit"
msgstr ""

#: tpl/crawler/summary.tpl.php:158
msgid "Miss"
msgstr ""

#: tpl/crawler/summary.tpl.php:166
msgid "running"
msgstr ""

#: tpl/crawler/summary.tpl.php:177
msgid "Waiting to be Crawled"
msgstr ""

#: tpl/crawler/summary.tpl.php:184
msgid "Run frequency is set by the Interval Between Runs setting."
msgstr ""

#: tpl/crawler/summary.tpl.php:185
msgid "Crawlers cannot run concurrently."
msgstr ""

#: tpl/crawler/summary.tpl.php:186
msgid ""
"&nbsp;If both the cron and a manual run start at similar times, the first to "
"be started will take precedence."
msgstr ""

#: tpl/crawler/summary.tpl.php:187
msgid ""
"Please see <a %s>Hooking WP-Cron Into the System Task Scheduler</a> to learn "
"how to create the system cron task."
msgstr ""

#: tpl/crawler/summary.tpl.php:192
msgid "Watch Crawler Status"
msgstr ""

#: tpl/crawler/summary.tpl.php:199
msgid "Show crawler status"
msgstr ""

#: tpl/crawler/summary.tpl.php:217
msgid "No crawler meta file generated yet"
msgstr ""

#: tpl/dash/dashboard.tpl.php:39
msgid "QUIC.cloud Service Usage Statistics"
msgstr ""

#: tpl/dash/dashboard.tpl.php:42
msgid "Sync data from Cloud"
msgstr ""

#: tpl/dash/dashboard.tpl.php:54 tpl/dash/network_dash.tpl.php:29
msgid "CDN Bandwidth"
msgstr ""

#: tpl/dash/dashboard.tpl.php:55 tpl/dash/dashboard.tpl.php:433
msgid "Low Quality Image Placeholder"
msgstr ""

#: tpl/dash/dashboard.tpl.php:110 tpl/dash/network_dash.tpl.php:78
msgid "Fast Queue Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:110 tpl/dash/network_dash.tpl.php:78
msgid "Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:122 tpl/dash/network_dash.tpl.php:90
msgid "PAYG Balance"
msgstr ""

#: tpl/dash/dashboard.tpl.php:123 tpl/dash/network_dash.tpl.php:91
msgid "This Month Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:125 tpl/dash/network_dash.tpl.php:93
msgid "Pay as You Go Usage Statistics"
msgstr ""

#: tpl/dash/dashboard.tpl.php:132 tpl/dash/network_dash.tpl.php:100
msgid "Total Usage"
msgstr ""

#: tpl/dash/dashboard.tpl.php:133 tpl/dash/network_dash.tpl.php:101
msgid "Total images optimized in this month"
msgstr ""

#: tpl/dash/dashboard.tpl.php:144
msgid "Go to QUIC.cloud dashboard"
msgstr ""

#: tpl/dash/dashboard.tpl.php:156
msgid "Refresh page load time"
msgstr ""

#: tpl/dash/dashboard.tpl.php:197 tpl/dash/dashboard.tpl.php:257
#: tpl/dash/dashboard.tpl.php:425 tpl/dash/dashboard.tpl.php:456
msgid "Last requested"
msgstr ""

#: tpl/dash/dashboard.tpl.php:202
msgid "Current closest Cloud server is %s.&#10;Click to redetect."
msgstr ""

#: tpl/dash/dashboard.tpl.php:202 tpl/img_optm/summary.tpl.php:51
#: tpl/page_optm/settings_css.tpl.php:98 tpl/page_optm/settings_css.tpl.php:197
#: tpl/page_optm/settings_media.tpl.php:172
msgid ""
"Are you sure you want to redetect the closest cloud server for this service?"
msgstr ""

#: tpl/dash/dashboard.tpl.php:213
msgid "Refresh page score"
msgstr ""

#: tpl/dash/dashboard.tpl.php:265 tpl/img_optm/entry.tpl.php:6
msgid "Image Optimization Summary"
msgstr ""

#: tpl/dash/dashboard.tpl.php:275
msgid "Image Groups Prepared"
msgstr ""

#: tpl/dash/dashboard.tpl.php:290
msgid "Images Requested"
msgstr ""

#: tpl/dash/dashboard.tpl.php:322 tpl/img_optm/summary.tpl.php:336
msgid "Last Request"
msgstr ""

#: tpl/dash/dashboard.tpl.php:325
msgid "Last Pull"
msgstr ""

#: tpl/dash/dashboard.tpl.php:354
msgid "Cache Status"
msgstr ""

#: tpl/dash/dashboard.tpl.php:359
msgid "Public Cache"
msgstr ""

#: tpl/dash/dashboard.tpl.php:360
msgid "Private Cache"
msgstr ""

#: tpl/dash/dashboard.tpl.php:388
msgid "Cache Stats"
msgstr ""

#: tpl/dash/dashboard.tpl.php:407 tpl/dash/dashboard.tpl.php:438
#: tpl/page_optm/settings_css.tpl.php:90 tpl/page_optm/settings_css.tpl.php:189
#: tpl/page_optm/settings_media.tpl.php:167
msgid "Last generated"
msgstr ""

#: tpl/dash/dashboard.tpl.php:410 tpl/dash/dashboard.tpl.php:441
msgid "Time to execute previous request"
msgstr ""

#: tpl/dash/dashboard.tpl.php:415 tpl/dash/dashboard.tpl.php:446
msgid "Requests in queue"
msgstr ""

#: tpl/dash/dashboard.tpl.php:417 tpl/dash/dashboard.tpl.php:448
msgid "Force cron"
msgstr ""

#: tpl/dash/dashboard.tpl.php:468
msgid "Crawler(s)"
msgstr ""

#: tpl/dash/dashboard.tpl.php:471
msgid "Currently active crawler"
msgstr ""

#: tpl/dash/dashboard.tpl.php:503
msgid "Manage Crawler"
msgstr ""

#: tpl/dash/entry.tpl.php:11
msgid "Network Dashboard"
msgstr ""

#: tpl/dash/entry.tpl.php:20
msgid "LiteSpeed Cache Dashboard"
msgstr ""

#: tpl/dash/network_dash.tpl.php:19
msgid "Usage Statistics"
msgstr ""

#: tpl/dash/network_dash.tpl.php:28
msgid "CCSS"
msgstr ""

#: tpl/dash/network_dash.tpl.php:89
msgid "Pay as You Go"
msgstr ""

#: tpl/db_optm/entry.tpl.php:10 tpl/db_optm/settings.tpl.php:10
msgid "DB Optimization Settings"
msgstr ""

#: tpl/db_optm/entry.tpl.php:17
msgid "LiteSpeed Cache Database Optimization"
msgstr ""

#: tpl/db_optm/manage.tpl.php:7
msgid "Clean All"
msgstr ""

#: tpl/db_optm/manage.tpl.php:11
msgid "Post Revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:12
msgid "Clean all post revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:15
msgid "Auto Drafts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:16
msgid "Clean all auto saved drafts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:19
msgid "Trashed Posts"
msgstr ""

#: tpl/db_optm/manage.tpl.php:20
msgid "Clean all trashed posts and pages"
msgstr ""

#: tpl/db_optm/manage.tpl.php:23
msgid "Spam Comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:24
msgid "Clean all spam comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:27
msgid "Trashed Comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:28
msgid "Clean all trashed comments"
msgstr ""

#: tpl/db_optm/manage.tpl.php:31
msgid "Trackbacks/Pingbacks"
msgstr ""

#: tpl/db_optm/manage.tpl.php:32
msgid "Clean all trackbacks and pingbacks"
msgstr ""

#: tpl/db_optm/manage.tpl.php:35
msgid "Expired Transients"
msgstr ""

#: tpl/db_optm/manage.tpl.php:36
msgid "Clean expired transient options"
msgstr ""

#: tpl/db_optm/manage.tpl.php:39
msgid "All Transients"
msgstr ""

#: tpl/db_optm/manage.tpl.php:40
msgid "Clean all transient options"
msgstr ""

#: tpl/db_optm/manage.tpl.php:43
msgid "Optimize Tables"
msgstr ""

#: tpl/db_optm/manage.tpl.php:44
msgid "Optimize all tables in your database"
msgstr ""

#: tpl/db_optm/manage.tpl.php:47
msgid "Clean CSS/JS Optimizer"
msgstr ""

#: tpl/db_optm/manage.tpl.php:48
msgid "Purge all and clean all minified/combined CSS/JS data"
msgstr ""

#: tpl/db_optm/manage.tpl.php:57
msgid "Clean revisions older than %1$s day(s), excluding %2$s latest revisions"
msgstr ""

#: tpl/db_optm/manage.tpl.php:78
msgid "Database Optimizer"
msgstr ""

#: tpl/db_optm/manage.tpl.php:107
msgid "Database Table Engine Converter"
msgstr ""

#: tpl/db_optm/manage.tpl.php:114
msgid "Table"
msgstr ""

#: tpl/db_optm/manage.tpl.php:115
msgid "Engine"
msgstr ""

#: tpl/db_optm/manage.tpl.php:116
msgid "Tool"
msgstr ""

#: tpl/db_optm/manage.tpl.php:130
msgid "Convert to InnoDB"
msgstr ""

#: tpl/db_optm/manage.tpl.php:138
msgid "We are good. No table uses MyISAM engine."
msgstr ""

#: tpl/db_optm/manage.tpl.php:159
msgid "Database Summary"
msgstr ""

#: tpl/db_optm/manage.tpl.php:174
msgid "Option Name"
msgstr ""

#: tpl/db_optm/manage.tpl.php:175
msgid "Size"
msgstr ""

#: tpl/db_optm/settings.tpl.php:23
msgid ""
"Specify the number of most recent revisions to keep when cleaning revisions."
msgstr ""

#: tpl/db_optm/settings.tpl.php:35
msgid "Day(s)"
msgstr ""

#: tpl/db_optm/settings.tpl.php:37
msgid ""
"Revisions newer than this many days will be kept when cleaning revisions."
msgstr ""

#: tpl/esi_widget_edit.php:46
msgid "Public"
msgstr ""

#: tpl/esi_widget_edit.php:47
msgid "Private"
msgstr ""

#: tpl/esi_widget_edit.php:48
msgid "Disable"
msgstr ""

#: tpl/esi_widget_edit.php:63
msgid "Widget Cache TTL:"
msgstr ""

#: tpl/esi_widget_edit.php:73
msgid "Recommended value: 28800 seconds (8 hours)."
msgstr ""

#: tpl/esi_widget_edit.php:74
msgid "A TTL of 0 indicates do not cache."
msgstr ""

#: tpl/general/entry.tpl.php:19
msgid "LiteSpeed Cache General Settings"
msgstr ""

#: tpl/general/network_settings.tpl.php:20
msgid "Use Primary Site Configuration"
msgstr ""

#: tpl/general/network_settings.tpl.php:24
msgid ""
"Check this option to use the primary site's configuration for all subsites."
msgstr ""

#: tpl/general/network_settings.tpl.php:25
msgid "This will disable the settings page on all subsites."
msgstr ""

#: tpl/general/settings.tpl.php:16
msgid "Request Domain Key"
msgstr ""

#: tpl/general/settings.tpl.php:18
msgid "Refresh Domain Key"
msgstr ""

#: tpl/general/settings.tpl.php:20
msgid "Waiting for Refresh"
msgstr ""

#: tpl/general/settings.tpl.php:24
msgid "Waiting for Approval"
msgstr ""

#: tpl/general/settings.tpl.php:29
msgid "Requested"
msgstr ""

#: tpl/general/settings.tpl.php:32
msgid "Approved"
msgstr ""

#: tpl/general/settings.tpl.php:36
msgid "Next available request time: <code>After %s</code>"
msgstr ""

#: tpl/general/settings.tpl.php:74
msgid "Visit My Dashboard on QUIC.cloud"
msgstr ""

#: tpl/general/settings.tpl.php:76 tpl/general/settings.tpl.php:78
#: tpl/general/settings.tpl.php:107
msgid "Link to QUIC.cloud"
msgstr ""

#: tpl/general/settings.tpl.php:83 tpl/general/settings.tpl.php:94
#: tpl/general/settings.tpl.php:106 tpl/general/settings.tpl.php:150
msgid "Notice"
msgstr ""

#: tpl/general/settings.tpl.php:84
msgid ""
"There was a problem with retrieving your Domain Key. Please click the %s "
"button to retry."
msgstr ""

#: tpl/general/settings.tpl.php:85
msgid ""
"There are two reasons why we might not be able to communicate with your "
"domain:"
msgstr ""

#: tpl/general/settings.tpl.php:86
msgid "The POST callback to %s failed."
msgstr ""

#: tpl/general/settings.tpl.php:87
msgid "Our %s was not whitelisted."
msgstr ""

#: tpl/general/settings.tpl.php:88
msgid ""
"Please verify that your other plugins are not blocking REST API calls, "
"whitelist our server IPs, or contact your server admin for assistance."
msgstr ""

#: tpl/general/settings.tpl.php:95
msgid ""
"Request submitted. Please wait, then refresh the page to see approval "
"notification."
msgstr ""

#: tpl/general/settings.tpl.php:101
msgid "Warning"
msgstr ""

#: tpl/general/settings.tpl.php:102
msgid "You must have %1$s first before linking to QUIC.cloud."
msgstr ""

#: tpl/general/settings.tpl.php:107
msgid ""
"You must click the %s button if you wish to associate this site with a QUIC."
"cloud account."
msgstr ""

#: tpl/general/settings.tpl.php:108
msgid "Benefits of linking to a QUIC.cloud account"
msgstr ""

#: tpl/general/settings.tpl.php:113
msgid "A Domain Key is required for QUIC.cloud online services."
msgstr ""

#: tpl/general/settings.tpl.php:116
msgid "Current Cloud Nodes in Service"
msgstr ""

#: tpl/general/settings.tpl.php:117
msgid "Click to clear all nodes for further redetection."
msgstr ""

#: tpl/general/settings.tpl.php:117
msgid "Are you sure you want to clear all cloud nodes?"
msgstr ""

#: tpl/general/settings.tpl.php:129
msgid "No cloud services currently in use"
msgstr ""

#: tpl/general/settings.tpl.php:147
msgid ""
"Enter this site's IP address to allow cloud services directly call IP "
"instead of domain name. This eliminates the overhead of DNS and CDN lookups."
msgstr ""

#: tpl/general/settings.tpl.php:148
msgid "Your server IP is"
msgstr ""

#: tpl/general/settings.tpl.php:148
msgid "Check my public IP from"
msgstr ""

#: tpl/general/settings.tpl.php:150
msgid ""
"the auto-detected IP may not be accurate if you have an additional outgoing "
"IP set, or you have multiple IPs configured on your server. Please make sure "
"this IP is the correct one for visiting your site."
msgstr ""

#: tpl/general/settings.tpl.php:166
msgid ""
"Turn this option ON to show latest news automatically, including hotfixes, "
"new releases, available beta versions, and promotions."
msgstr ""

#: tpl/general/settings_inc.auto_upgrade.tpl.php:15
msgid ""
"Turn this option ON to have LiteSpeed Cache updated automatically, whenever "
"a new version is released. If OFF, update manually as usual."
msgstr ""

#: tpl/img_optm/entry.tpl.php:7 tpl/img_optm/entry.tpl.php:13
#: tpl/img_optm/network_settings.tpl.php:9 tpl/img_optm/settings.tpl.php:9
msgid "Image Optimization Settings"
msgstr ""

#: tpl/img_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Image Optimization"
msgstr ""

#: tpl/img_optm/settings.media_webp.tpl.php:14
msgid ""
"Significantly improve load time by replacing images with their optimized %s "
"versions."
msgstr ""

#: tpl/img_optm/settings.tpl.php:23
msgid "Automatically request optimization via cron job."
msgstr ""

#: tpl/img_optm/settings.tpl.php:36
msgid ""
"Disabling this will stop the cron job responsible for pulling optimized "
"images back from QUIC.cloud Image Server."
msgstr ""

#: tpl/img_optm/settings.tpl.php:49
msgid "Optimize images and save backups of the originals in the same folder."
msgstr ""

#: tpl/img_optm/settings.tpl.php:62
msgid ""
"Automatically remove the original image backups after fetching optimized "
"images."
msgstr ""

#: tpl/img_optm/settings.tpl.php:66 tpl/img_optm/summary.tpl.php:230
msgid "This is irreversible."
msgstr ""

#: tpl/img_optm/settings.tpl.php:67 tpl/img_optm/summary.tpl.php:231
msgid "You will be unable to Revert Optimization once the backups are deleted!"
msgstr ""

#: tpl/img_optm/settings.tpl.php:81
msgid "Optimize images using lossless compression."
msgstr ""

#: tpl/img_optm/settings.tpl.php:82
msgid ""
"This can improve quality but may result in larger images than lossy "
"compression will."
msgstr ""

#: tpl/img_optm/settings.tpl.php:95
msgid ""
"Preserve EXIF data (copyright, GPS, comments, keywords, etc) when optimizing."
msgstr ""

#: tpl/img_optm/settings.tpl.php:96
msgid "This will increase the size of optimized files."
msgstr ""

#: tpl/img_optm/settings.tpl.php:109
msgid "Request WebP versions of original images when doing optimization."
msgstr ""

#: tpl/img_optm/settings.tpl.php:139
msgid "Specify which element attributes will be replaced with WebP."
msgstr ""

#: tpl/img_optm/settings.tpl.php:155
msgid ""
"Enable replacement of WebP in %s elements that were generated outside of "
"WordPress logic."
msgstr ""

#: tpl/img_optm/settings.tpl.php:169
msgid "The image compression quality setting of WordPress out of 100."
msgstr ""

#: tpl/img_optm/summary.tpl.php:51 tpl/page_optm/settings_css.tpl.php:98
#: tpl/page_optm/settings_css.tpl.php:197
#: tpl/page_optm/settings_media.tpl.php:172
msgid "Current closest Cloud server is %s.&#10; Click to redetect."
msgstr ""

#: tpl/img_optm/summary.tpl.php:55
msgid "Optimize images with our QUIC.cloud server"
msgstr ""

#: tpl/img_optm/summary.tpl.php:60
msgid "You can request a maximum of %s images at once."
msgstr ""

#: tpl/img_optm/summary.tpl.php:65
msgid ""
"To make sure our server can communicate with your server without any issues "
"and everything works fine, for the few first requests the number of images "
"allowed in a single request is limited."
msgstr ""

#: tpl/img_optm/summary.tpl.php:66
msgid "Current limit is"
msgstr ""

#: tpl/img_optm/summary.tpl.php:78
msgid "Gather Image Data"
msgstr ""

#: tpl/img_optm/summary.tpl.php:78
msgid "Send Optimization Request"
msgstr ""

#: tpl/img_optm/summary.tpl.php:81
msgid "Only press the button if the pull cron job is disabled."
msgstr ""

#: tpl/img_optm/summary.tpl.php:81
msgid "Images will be pulled automatically if the cron job is running."
msgstr ""

#: tpl/img_optm/summary.tpl.php:88
msgid "Pull Images"
msgstr ""

#: tpl/img_optm/summary.tpl.php:94
msgid "Optimization Status"
msgstr ""

#: tpl/img_optm/summary.tpl.php:111
msgid ""
"After the QUIC.cloud Image Optimization server finishes optimization, it "
"will notify your site to pull the optimized images."
msgstr ""

#: tpl/img_optm/summary.tpl.php:112
msgid "This process is automatic."
msgstr ""

#: tpl/img_optm/summary.tpl.php:127
msgid "Last pull initiated by cron at %s."
msgstr ""

#: tpl/img_optm/summary.tpl.php:176
msgid "Storage Optimization"
msgstr ""

#: tpl/img_optm/summary.tpl.php:180
msgid "A backup of each image is saved before it is optimized."
msgstr ""

#: tpl/img_optm/summary.tpl.php:187
msgid "Last calculated"
msgstr ""

#: tpl/img_optm/summary.tpl.php:191 tpl/img_optm/summary.tpl.php:242
msgid "Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:202
msgid "Calculate Original Image Storage"
msgstr ""

#: tpl/img_optm/summary.tpl.php:209
msgid "Calculate Backups Disk Space"
msgstr ""

#: tpl/img_optm/summary.tpl.php:216
msgid "Image Thumbnail Group Sizes"
msgstr ""

#: tpl/img_optm/summary.tpl.php:227
msgid "Delete all backups of the original images"
msgstr ""

#: tpl/img_optm/summary.tpl.php:239
#: tpl/page_optm/settings_localization.tpl.php:51
msgid "Last ran"
msgstr ""

#: tpl/img_optm/summary.tpl.php:245
msgid "Saved"
msgstr ""

#: tpl/img_optm/summary.tpl.php:249
msgid "Are you sure you want to remove all image backups?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:250
msgid "Remove Original Image Backups"
msgstr ""

#: tpl/img_optm/summary.tpl.php:261
msgid "Image Information"
msgstr ""

#: tpl/img_optm/summary.tpl.php:270 tpl/img_optm/summary.tpl.php:297
msgid "Images total"
msgstr ""

#: tpl/img_optm/summary.tpl.php:274 tpl/img_optm/summary.tpl.php:301
msgid "What is a group?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:276 tpl/img_optm/summary.tpl.php:303
msgid "What is an image group?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:281
msgid "Images not yet gathered"
msgstr ""

#: tpl/img_optm/summary.tpl.php:284
msgid "Congratulations, all gathered!"
msgstr ""

#: tpl/img_optm/summary.tpl.php:308
msgid "Images not yet requested"
msgstr ""

#: tpl/img_optm/summary.tpl.php:311
msgid "Congratulations, all requested!"
msgstr ""

#: tpl/img_optm/summary.tpl.php:318
msgid ""
"Scan for any new unoptimized image thumbnail sizes and resend necessary "
"image optimization requests."
msgstr ""

#: tpl/img_optm/summary.tpl.php:319
msgid "Rescan New Thumbnails"
msgstr ""

#: tpl/img_optm/summary.tpl.php:327
msgid "Optimization Summary"
msgstr ""

#: tpl/img_optm/summary.tpl.php:330
msgid "Total Reduction"
msgstr ""

#: tpl/img_optm/summary.tpl.php:333
msgid "Images Pulled"
msgstr ""

#: tpl/img_optm/summary.tpl.php:340
msgid "Results can be checked in <a %s>Media Library</a>."
msgstr ""

#: tpl/img_optm/summary.tpl.php:346
msgid "Optimization Tools"
msgstr ""

#: tpl/img_optm/summary.tpl.php:349
msgid ""
"You can quickly switch between using original (unoptimized versions) and "
"optimized image files. It will affect all images on your website, both "
"regular and webp versions if available."
msgstr ""

#: tpl/img_optm/summary.tpl.php:354
msgid "Use original images (unoptimized) on your site"
msgstr ""

#: tpl/img_optm/summary.tpl.php:355
msgid "Use Original Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:358
msgid "Switch back to using optimized images on your site"
msgstr ""

#: tpl/img_optm/summary.tpl.php:359
msgid "Use Optimized Files"
msgstr ""

#: tpl/img_optm/summary.tpl.php:367
msgid "Are you sure to destroy all optimized images?"
msgstr ""

#: tpl/img_optm/summary.tpl.php:368
msgid "Destroy All Optimization Data"
msgstr ""

#: tpl/img_optm/summary.tpl.php:372
msgid ""
"Remove all previous image optimization requests/results, revert completed "
"optimizations, and delete all optimization files."
msgstr ""

#: tpl/inc/admin_footer.php:8
msgid "Rate %s on %s"
msgstr ""

#: tpl/inc/admin_footer.php:11
msgid "Read LiteSpeed Documentation"
msgstr ""

#: tpl/inc/admin_footer.php:13
msgid "Visit LSCWP support forum"
msgstr ""

#: tpl/inc/admin_footer.php:15
msgid "Join LiteSpeed Slack community"
msgstr ""

#: tpl/inc/api_key.php:11
msgid "This will also generate an API key from LiteSpeed's Server."
msgstr ""

#: tpl/inc/check_cache_disabled.php:10
msgid ""
"To use the caching functions you must have a LiteSpeed web server or be "
"using QUIC.cloud CDN."
msgstr ""

#: tpl/inc/check_cache_disabled.php:15
msgid ""
"Please enable the LSCache Module at the server level, or ask your hosting "
"provider."
msgstr ""

#: tpl/inc/check_cache_disabled.php:22
msgid "Please enable LiteSpeed Cache in the plugin settings."
msgstr ""

#: tpl/inc/check_cache_disabled.php:34
msgid "LSCache caching functions on this page are currently unavailable!"
msgstr ""

#: tpl/inc/check_if_network_disable_all.php:21
msgid "The network admin selected use primary site configs for all subsites."
msgstr ""

#: tpl/inc/check_if_network_disable_all.php:22
msgid ""
"The following options are selected, but are not editable in this settings "
"page."
msgstr ""

#: tpl/inc/show_display_installed.php:5
msgid "LiteSpeed Cache plugin is installed!"
msgstr ""

#: tpl/inc/show_display_installed.php:6
msgid ""
"This message indicates that the plugin was installed by the server admin."
msgstr ""

#: tpl/inc/show_display_installed.php:7
msgid ""
"The LiteSpeed Cache plugin is used to cache pages - a simple way to improve "
"the performance of the site."
msgstr ""

#: tpl/inc/show_display_installed.php:8
msgid ""
"However, there is no way of knowing all the possible customizations that "
"were implemented."
msgstr ""

#: tpl/inc/show_display_installed.php:9
msgid ""
"For that reason, please test the site to make sure everything still "
"functions properly."
msgstr ""

#: tpl/inc/show_display_installed.php:11
msgid "Examples of test cases include:"
msgstr ""

#: tpl/inc/show_display_installed.php:13
msgid "Visit the site while logged out."
msgstr ""

#: tpl/inc/show_display_installed.php:14
msgid "Create a post, make sure the front page is accurate."
msgstr ""

#: tpl/inc/show_display_installed.php:16
msgid ""
"If there are any questions, the team is always happy to answer any questions "
"on the <a %s>support forum</a>."
msgstr ""

#: tpl/inc/show_display_installed.php:19
msgid ""
"If you would rather not move at litespeed, you can deactivate this plugin."
msgstr ""

#: tpl/inc/show_error_cookie.php:5
msgid "NOTICE: Database login cookie did not match your login cookie."
msgstr ""

#: tpl/inc/show_error_cookie.php:6
msgid ""
"If the login cookie was recently changed in the settings, please log out and "
"back in."
msgstr ""

#: tpl/inc/show_error_cookie.php:7
msgid ""
"If not, please verify the setting in the <a href=\"%1$s\">Advanced tab</a>."
msgstr ""

#: tpl/inc/show_error_cookie.php:11
msgid ""
"If using OpenLiteSpeed, the server must be restarted once for the changes to "
"take effect."
msgstr ""

#: tpl/inc/show_rule_conflict.php:6
msgid ""
"Unexpected cache rule %2$s found in %1$s file. This rule may cause visitors "
"to see old versions of pages due to the browser caching HTML pages. If you "
"are sure that HTML pages are not being browser cached, this message can be "
"dismissed. (<a %3$s>Learn More</a>)"
msgstr ""

#: tpl/page_optm/entry.tpl.php:6 tpl/page_optm/settings_css.tpl.php:14
msgid "CSS Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:7 tpl/page_optm/settings_js.tpl.php:7
msgid "JS Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:8
msgid "Optimization"
msgstr ""

#: tpl/page_optm/entry.tpl.php:9 tpl/page_optm/settings_media.tpl.php:12
msgid "Media Settings"
msgstr ""

#: tpl/page_optm/entry.tpl.php:10 tpl/page_optm/settings_media_exc.tpl.php:7
msgid "Media Excludes"
msgstr ""

#: tpl/page_optm/entry.tpl.php:11
msgid "Localization"
msgstr ""

#: tpl/page_optm/entry.tpl.php:12
msgid "Tuning"
msgstr ""

#: tpl/page_optm/entry.tpl.php:22
msgid "LiteSpeed Cache Page Optimization"
msgstr ""

#: tpl/page_optm/entry.tpl.php:35
msgid ""
"Failed to create Optimizer table. Please follow <a %s>Table Creation "
"guidance from LiteSpeed Wiki</a> to finish setup."
msgstr ""

#: tpl/page_optm/entry.tpl.php:43
msgid ""
"You are now having %s records in CSS/JS optimization table. You may need to "
"check if you have random string issue or not."
msgstr ""

#: tpl/page_optm/entry.tpl.php:45
msgid "To clear the outdated CSS/JS optimization data, please go to %s menu."
msgstr ""

#: tpl/page_optm/entry.tpl.php:52
msgid ""
"Please test thoroughly when enabling any option in this list. After changing "
"Minify/Combine settings, please do a Purge All action."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:28
msgid "Minify CSS files and inline CSS code."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:41
msgid "Combine CSS files and inline CSS code."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:42 tpl/page_optm/settings_js.tpl.php:35
msgid "How to Fix Problems Caused by CSS/JS Optimization."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:55
msgid ""
"Include external CSS and inline CSS in combined file when %1$s is also "
"enabled. This option helps maintain the priorities of CSS, which should "
"minimize potential errors caused by CSS Combine."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:68
msgid "Use QUIC.cloud online service to generate unique CSS."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:69
msgid "This will drop the unused CSS on each page."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:82
msgid "Generate unique CSS in the background via a cron-based queue."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:83 tpl/page_optm/settings_css.tpl.php:181
#: tpl/page_optm/settings_media.tpl.php:159
msgid ""
"If set to %s this is done in the foreground, which may slow down page load."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:93 tpl/page_optm/settings_css.tpl.php:192
msgid "Last requested cost"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:115
msgid ""
"List the CSS selector that its style should be always contained in UCSS."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:128
msgid ""
"Pre-send internal CSS files to the browser before they are requested. "
"(Requires the HTTP/2 protocol)"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:147
msgid "Optimize CSS delivery."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:148
#: tpl/page_optm/settings_html.tpl.php:130 tpl/page_optm/settings_js.tpl.php:75
#: tpl/page_optm/settings_media.tpl.php:217
msgid ""
"This can improve your speed score in services like Pingdom, GTmetrix and "
"PageSpeed."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:149
msgid ""
"When this option is turned %s, it will also load Google Fonts asynchronously."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:152
#: tpl/page_optm/settings_media_exc.tpl.php:27
#: tpl/page_optm/settings_tuning.tpl.php:37
#: tpl/page_optm/settings_tuning.tpl.php:58
#: tpl/page_optm/settings_tuning.tpl.php:92
msgid "Elements with attribute %s in html code will be excluded."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:166
msgid ""
"Leave this option %1$s to allow communication with the QUIC.cloud CCSS "
"service. If set to %2$s, Critical CSS will not be generated."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:167
msgid "This option only works if %1$s is %2$s."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:180
msgid ""
"Automatically generate critical CSS in the background via a cron-based queue."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:203
msgid "URL list in queue waiting for cron"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:216
#: tpl/page_optm/settings_localization.tpl.php:62
#: tpl/page_optm/settings_media.tpl.php:186
msgid "Run Queue Manually"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:232
msgid ""
"List post types where each item of that type should have its own CCSS "
"generated."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:233
msgid ""
"For example, if every Page on the site has different formatting, enter %s in "
"the box. Separate critical CSS files will be stored for every Page on the "
"site."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:247
msgid ""
"Separate critical CSS files will be generated for paths containing these "
"strings."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:261
msgid "This will inline the asynchronous CSS library to avoid render blocking."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:272 tpl/page_optm/settings_js.tpl.php:86
msgid "Default"
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:274
msgid ""
"Set this to append %1$s to all %2$s rules before caching CSS to specify how "
"fonts should be displayed while being downloaded."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:275
msgid "%s is recommended."
msgstr ""

#: tpl/page_optm/settings_css.tpl.php:275
msgid "Swap"
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:7
msgid "Optimization Settings"
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:21
msgid "Specify how long, in seconds, CSS/JS files are cached."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:36
msgid "Minify HTML content."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:49
msgid "Prefetching DNS can reduce latency for visitors."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:50
msgid "For example"
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:65
msgid ""
"Widely enable DNS prefetch for URLs in the document, including images, CSS, "
"JavaScript, and so forth."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:66
msgid "This can improve the page loading speed."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:80
msgid "Remove query strings from static resources."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:83
msgid "Google reCAPTCHA will be bypassed automatically."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:87
msgid "Append query string %s to the resources to bypass this action."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:101
msgid ""
"Use Web Font Loader library to load Google Fonts asynchronously while "
"leaving other CSS intact."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:102
msgid ""
"This will also add a preconnect to Google for faster Google Fonts "
"downloading."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:116
msgid "Prevent Google Fonts from loading on all pages."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:129
msgid ""
"Stop loading WordPress.org emoji. Browser default emoji will be displayed "
"instead."
msgstr ""

#: tpl/page_optm/settings_html.tpl.php:143
msgid "This option will remove all %s tags from HTML."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:21
msgid "Minify JS files and inline JS codes."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:34
msgid "Combine all local JS files into a single file."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:48
msgid ""
"Include external JS and inline JS in combined file when %1$s is also "
"enabled. This option helps maintain the priorities of JS execution, which "
"should minimize potential errors caused by JS Combine."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:61
msgid ""
"Pre-send internal JS files to the browser before they are requested. "
"(Requires the HTTP/2 protocol)"
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:74
msgid "Doing so can help reduce resource contention and improve performance."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:86
msgid "After DOM Ready"
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:86 tpl/page_optm/settings_js.tpl.php:89
msgid "Deferred"
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:88
msgid ""
"Loading inline JS after DOM is fully loaded can increase JS compatibility "
"and reduce JS error when other JS optimization features are enabled."
msgstr ""

#: tpl/page_optm/settings_js.tpl.php:89
msgid ""
"%s is recommended although would cause the most issues for scripts that are "
"placed inline to avoid being deferred."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:12
msgid ""
"Failed to create Avatar table. Please follow <a %s>Table Creation guidance "
"from LiteSpeed Wiki</a> to finish setup."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:17
msgid "Localization Settings"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:30
msgid "Store Gravatar locally."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:31
msgid ""
"Accelerates the speed by caching Gravatar (Globally Recognized Avatars)."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:44
msgid "Refresh Gravatar cache by cron."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:57
msgid "Avatar list in queue waiting for update"
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:79
msgid "Specify how long, in seconds, Gravatar files are cached."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:94
msgid "Localize external resources."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:116
msgid "Resources listed here will be copied and replaced with local URLs."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:117
msgid "HTTPS sources only."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:121
msgid ""
"Comments are supported. Start a line with a %s to turn it into a comment "
"line."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:123
msgid "Non-`.js` file extensions will be ignored."
msgstr ""

#: tpl/page_optm/settings_localization.tpl.php:124
#: tpl/toolbox/beta_test.tpl.php:27
msgid "Example"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:25
msgid "Load images only when they enter the viewport."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:26
#: tpl/page_optm/settings_media.tpl.php:203
msgid "This can improve page loading time by reducing initial HTTP requests."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:29
msgid "Adding Style to Your Lazy-Loaded Images"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:43
msgid ""
"Specify a base64 image to be used as a simple placeholder while images "
"finish loading."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:44
msgid ""
"This can be predefined in %2$s as well using constant %1$s, with this "
"setting taking priority."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:45
msgid "By default a gray image placeholder %s will be used."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:46
msgid "For example, %s can be used for a transparent placeholder."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:59
msgid ""
"Responsive image placeholders can help to reduce layout reshuffle when "
"images are loaded."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:60
msgid ""
"This will generate the placeholder with same dimensions as the image if it "
"has the width and height attributes."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:73
msgid "Specify an SVG to be used as a placeholder when generating locally."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:74
msgid "It will be converted to a base64 SVG placeholder on-the-fly."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:75
msgid "Variables %s will be replaced with the corresponding image properties."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:76
msgid "Variables %s will be replaced with the configured background color."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:90
msgid "Specify the responsive placeholder SVG color."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:104
msgid ""
"Use QUIC.cloud LQIP (Low Quality Image Placeholder) generator service for "
"responsive image previews while loading."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:105
msgid "Keep this off to use plain color placeholders."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:119
msgid "Specify the quality when generating LQIP."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:120
msgid ""
"Larger numbers will generate higher resolution quality placeholder, but will "
"result in larger files which will increase page size and consume more points."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:135
msgid "pixels"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:137
msgid ""
"LQIP requests will not be sent for images where both width and height are "
"smaller than these dimensions."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:153
msgid "Automatically generate LQIP in the background via a cron-based queue."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:155
msgid ""
"If set to %1$s, before the placeholder is localized, the %2$s configuration "
"will be used."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:178
msgid "Size list in queue waiting for cron"
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:202
msgid "Load iframes only when they enter the viewport."
msgstr ""

#: tpl/page_optm/settings_media.tpl.php:216
msgid "Include the lazy load image JavaScript library inline."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:21
msgid "Listed images will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:49
msgid "Images containing these class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:64
msgid "Images having these parent class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:78
msgid "Iframes containing these class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:93
msgid "Iframes having these parent class names will not be lazy loaded."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:107
msgid "Prevent any lazy load of listed pages."
msgstr ""

#: tpl/page_optm/settings_media_exc.tpl.php:121
msgid "These images will not generate LQIP."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:18
msgid "Tuning Settings"
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:31
msgid "Listed CSS files or inline CSS code will not be minified/combined."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:38
#: tpl/page_optm/settings_tuning.tpl.php:59
#: tpl/page_optm/settings_tuning.tpl.php:93
msgid "Predefined list will also be combined w/ the above settings"
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:52
msgid "Listed JS files or inline JS code will not be minified/combined."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:73
msgid "Specify critical CSS rules for above-the-fold content when enabling %s."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:86
msgid "Listed JS files or inline JS code will not be deferred."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:107
msgid "Prevent any optimization of listed pages."
msgstr ""

#: tpl/page_optm/settings_tuning.tpl.php:120
msgid "Selected roles will be excluded from all optimizations."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:22
msgid "Try GitHub Version"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:26
msgid ""
"Use this section to switch plugin versions. To beta test a GitHub commit, "
"enter the commit URL in the field below."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:31
msgid "Use latest GitHub Dev commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:33
msgid "Use latest GitHub Master commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:35 tpl/toolbox/beta_test.tpl.php:46
msgid "Use latest WordPress release version"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:35
msgid "OR"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Press the %s button to use the most recent GitHub commit."
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:45
msgid "Use latest GitHub commit"
msgstr ""

#: tpl/toolbox/beta_test.tpl.php:46
msgid ""
"Press the %s button to stop beta testing and go back to the current release "
"from the WordPress Plugin Directory."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:39
msgid "LiteSpeed Cache Edit .htaccess"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:44
msgid "This page is meant for advanced users."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:46
msgid "Any changes made to the .htaccess file may break the site."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:47
msgid "Please consult the host/server admin before making any changes."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:54
msgid ".htaccess Path Settings"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:66
msgid "Specify the frontend .htaccess path."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:67 tpl/toolbox/edit_htaccess.tpl.php:82
msgid "Leave empty to auto detect"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:81
msgid "Specify the backend .htaccess path."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:92
msgid "File editing is disabled in configuration."
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:98
msgid "Current %s Contents"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:100
msgid "DO NOT EDIT ANYTHING WITHIN %s"
msgstr ""

#: tpl/toolbox/edit_htaccess.tpl.php:107
msgid "Save .htaccess"
msgstr ""

#: tpl/toolbox/entry.tpl.php:10
msgid "Import / Export"
msgstr ""

#: tpl/toolbox/entry.tpl.php:14
msgid "Edit .htaccess"
msgstr ""

#: tpl/toolbox/entry.tpl.php:18
msgid "Heartbeat"
msgstr ""

#: tpl/toolbox/entry.tpl.php:19
msgid "Report"
msgstr ""

#: tpl/toolbox/entry.tpl.php:23 tpl/toolbox/settings-debug.tpl.php:10
msgid "Debug Settings"
msgstr ""

#: tpl/toolbox/entry.tpl.php:24
msgid "Log View"
msgstr ""

#: tpl/toolbox/entry.tpl.php:25
msgid "Beta Test"
msgstr ""

#: tpl/toolbox/entry.tpl.php:32
msgid "LiteSpeed Cache Toolbox"
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:9
msgid "Heartbeat Control"
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:15
msgid "Disable WordPress interval heartbeat to reduce server load."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:18
msgid ""
"Disabling this may cause WordPress tasks triggered by AJAX to stop working."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:34
msgid "Turn ON to control heartbeat on frontend."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:47 tpl/toolbox/heartbeat.tpl.php:77
#: tpl/toolbox/heartbeat.tpl.php:107
msgid "Specify the %s heartbeat interval in seconds."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:48
msgid "WordPress valid interval is %s seconds."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:49 tpl/toolbox/heartbeat.tpl.php:79
#: tpl/toolbox/heartbeat.tpl.php:109
msgid "Set to %1$s to forbid heartbeat on %2$s."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:64
msgid "Turn ON to control heartbeat on backend."
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:78 tpl/toolbox/heartbeat.tpl.php:108
msgid "WordPress valid interval is %s seconds"
msgstr ""

#: tpl/toolbox/heartbeat.tpl.php:94
msgid "Turn ON to control heartbeat in backend editor."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:9
msgid "Export Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:14
msgid "Export"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:19
msgid "Last exported"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:24
msgid ""
"This will export all current LiteSpeed Cache settings and save them as a "
"file."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:27
msgid "Import Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:35
msgid "Import"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:41
msgid "Last imported"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:46
msgid ""
"This will import settings from a file and override all current LiteSpeed "
"Cache settings."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:49
msgid "Reset All Settings"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:50
msgid "This will reset all settings to default settings."
msgstr ""

#: tpl/toolbox/import_export.tpl.php:52
msgid ""
"Are you sure you want to reset all settings back to the default settings?"
msgstr ""

#: tpl/toolbox/import_export.tpl.php:53
msgid "Reset Settings"
msgstr ""

#: tpl/toolbox/log_viewer.tpl.php:11 tpl/toolbox/log_viewer.tpl.php:28
msgid "Clear Log"
msgstr ""

#: tpl/toolbox/purge.tpl.php:7
msgid "Purge Front Page"
msgstr ""

#: tpl/toolbox/purge.tpl.php:8
msgid "This will Purge Front Page only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:13
msgid "Purge Pages"
msgstr ""

#: tpl/toolbox/purge.tpl.php:14
msgid "This will Purge Pages only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:19 tpl/toolbox/purge.tpl.php:25
#: tpl/toolbox/purge.tpl.php:31
msgid "Purge %s Error"
msgstr ""

#: tpl/toolbox/purge.tpl.php:20 tpl/toolbox/purge.tpl.php:26
#: tpl/toolbox/purge.tpl.php:32
msgid "Purge error pages, including %s pages"
msgstr ""

#: tpl/toolbox/purge.tpl.php:33
msgid "Purge 500 Error"
msgstr ""

#: tpl/toolbox/purge.tpl.php:34
msgid "Purge error pages, including 500 pages"
msgstr ""

#: tpl/toolbox/purge.tpl.php:40
msgid "Purge the LiteSpeed cache entries created by this plugin"
msgstr ""

#: tpl/toolbox/purge.tpl.php:46
msgid "This will purge all minified/combined CSS/JS entries only"
msgstr ""

#: tpl/toolbox/purge.tpl.php:55
msgid "Purge all the object caches"
msgstr ""

#: tpl/toolbox/purge.tpl.php:64
msgid "Reset the entire opcode cache"
msgstr ""

#: tpl/toolbox/purge.tpl.php:73
msgid "This will delete all generated critical CSS files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:82
msgid "This will delete all localized resources"
msgstr ""

#: tpl/toolbox/purge.tpl.php:91
msgid "This will delete all generated image LQIP placeholder files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:100
msgid "This will delete all cached Gravatar files"
msgstr ""

#: tpl/toolbox/purge.tpl.php:109
msgid ""
"Purge the cache entries created by this plugin except for Critical CSS & "
"LQIP caches"
msgstr ""

#: tpl/toolbox/purge.tpl.php:118
msgid "Empty Entire Cache"
msgstr ""

#: tpl/toolbox/purge.tpl.php:119
msgid ""
"Clears all cache entries related to this site, <i>including other web "
"applications</i>."
msgstr ""

#: tpl/toolbox/purge.tpl.php:120
msgid "This action should only be used if things are cached incorrectly."
msgstr ""

#: tpl/toolbox/purge.tpl.php:124
msgid "This will clear EVERYTHING inside the cache."
msgstr ""

#: tpl/toolbox/purge.tpl.php:125
msgid "This may cause heavy load on the server."
msgstr ""

#: tpl/toolbox/purge.tpl.php:126
msgid "If only the WordPress site should be purged, use Purge All."
msgstr ""

#: tpl/toolbox/purge.tpl.php:170
msgid "Purge By..."
msgstr ""

#: tpl/toolbox/purge.tpl.php:172
msgid "Select below for \"Purge by\" options."
msgstr ""

#: tpl/toolbox/purge.tpl.php:199
msgid "Category"
msgstr ""

#: tpl/toolbox/purge.tpl.php:205
msgid "Post ID"
msgstr ""

#: tpl/toolbox/purge.tpl.php:211
msgid "Tag"
msgstr ""

#: tpl/toolbox/purge.tpl.php:223
msgid ""
"Purge pages by category name - e.g. %2$s should be used for the URL %1$s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:228
msgid "Purge pages by post ID."
msgstr ""

#: tpl/toolbox/purge.tpl.php:232
msgid "Purge pages by tag name - e.g. %2$s should be used for the URL %1$s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:237
msgid "Purge pages by relative or full URL."
msgstr ""

#: tpl/toolbox/purge.tpl.php:238
msgid "e.g. Use %s or %s."
msgstr ""

#: tpl/toolbox/purge.tpl.php:251
msgid "Purge List"
msgstr ""

#: tpl/toolbox/report.tpl.php:31
msgid ""
"To generate a passwordless link for LiteSpeed Support Team access, you must "
"install %s."
msgstr ""

#: tpl/toolbox/report.tpl.php:34
msgid "Install DoLogin Security"
msgstr ""

#: tpl/toolbox/report.tpl.php:35
msgid "Go to plugins list"
msgstr ""

#: tpl/toolbox/report.tpl.php:41
msgid "LiteSpeed Report"
msgstr ""

#: tpl/toolbox/report.tpl.php:45
msgid "Report number"
msgstr ""

#: tpl/toolbox/report.tpl.php:46
msgid "Report date"
msgstr ""

#: tpl/toolbox/report.tpl.php:49
msgid ""
"The environment report contains detailed information about the WordPress "
"configuration."
msgstr ""

#: tpl/toolbox/report.tpl.php:51
msgid ""
"If you run into any issues, please refer to the report number in your "
"support message."
msgstr ""

#: tpl/toolbox/report.tpl.php:57
msgid "System Information"
msgstr ""

#: tpl/toolbox/report.tpl.php:63
msgid "Passwordless Link"
msgstr ""

#: tpl/toolbox/report.tpl.php:67 tpl/toolbox/report.tpl.php:69
msgid "Generate Link for Current User"
msgstr ""

#: tpl/toolbox/report.tpl.php:72
msgid ""
"To grant wp-admin access to the LiteSpeed Support Team, please generate a "
"passwordless link for the current logged-in user to be sent with the report."
msgstr ""

#: tpl/toolbox/report.tpl.php:74
msgid "Please do NOT share the above passwordless link with anyone."
msgstr ""

#: tpl/toolbox/report.tpl.php:75
msgid "Generated links may be managed under <a %s>Settings</a>."
msgstr ""

#: tpl/toolbox/report.tpl.php:81
msgid "Notes"
msgstr ""

#: tpl/toolbox/report.tpl.php:85
msgid "Optional"
msgstr ""

#: tpl/toolbox/report.tpl.php:86
msgid ""
"provide more information here to assist the LiteSpeed team with debugging."
msgstr ""

#: tpl/toolbox/report.tpl.php:93 tpl/toolbox/report.tpl.php:94
msgid "Send to LiteSpeed"
msgstr ""

#: tpl/toolbox/report.tpl.php:97
msgid ""
"Send this report to LiteSpeed. Refer to this report number when posting in "
"the WordPress support forum."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:23
msgid ""
"This will disable LSCache and all optimization features for debug purpose."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:34
msgid "Admin IP Only"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:36
msgid "Outputs to WordPress debug log."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:37
msgid ""
"To prevent filling up the disk, this setting should be OFF when everything "
"is working."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:38
msgid ""
"The Admin IP option will only output log messages on requests from admin IPs."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:39
msgid "The logs will be output to %s."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:52
msgid ""
"Allows listed IPs (one per line) to perform certain actions from their "
"browsers."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:53
msgid "Your IP"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:58
msgid "More information about the available commands can be found here."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:70
msgid "Basic"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:72
msgid "Advanced level will log more details."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:83
msgid "MB"
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:85
msgid "Specify the maximum size of the log file."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:100
msgid "Log requested cookie values."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:113
msgid "Shorten query strings in the debug log to improve readability."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:126
msgid "Only log listed pages."
msgstr ""

#: tpl/toolbox/settings-debug.tpl.php:140
msgid "Prevent any debug log of listed pages."
msgstr ""

#. Plugin URI of the plugin/theme
msgid ""
"https://www.litespeedtech.com/products/cache-plugins/wordpress-acceleration"
msgstr ""

#. Description of the plugin/theme
msgid "High-performance page caching and site optimization from LiteSpeed"
msgstr ""

#. Author of the plugin/theme
msgid "LiteSpeed Technologies"
msgstr ""

#. Author URI of the plugin/theme
msgid "https://www.litespeedtech.com"
msgstr ""
�PNG


IHDR��qT@r IDATx^�tT�����ށ$@hBo�

R,(�OED��W�T���
�E�J�^C�I(	�}�[�&3L���	uߵXʼw����5��}4���:8X��q��a��\v�%V'��@@@ �����ͦ�3p��!�����T�7���L�����G���z&�F$@$@$@$@$@$@$@$@$@$@$P����ӧ�����h���2	��R�Rq��!���#�Z5��"����www���&�^	���!��%DT����^��q�	�	�	�	�	�	�	�	�	�	���F�aX"w�܉ʕ+�zd�[��{�8y�$ѢE�Q��رc|||���s��n5��HC˖-�>�ΗH�H�H�H�H�H�H�H�H�n�׬F�.]QP�_.S^�b:u����_�t�.%�방����������;��+N�!!���Oa�^^��4�o�@�������8���r�l�ʁ��`C��5P�R%�=�3p"�*U����a9��5 ��jq�B"j֬e���c�$@$@$@$@$@$@$@$@$@$@W��^���)�ޤ}s��#GP�z
���p�������Ǐ�^�zjN�ӏ�ii�;�zu�C?%�K0ׅJ�y:,o߱�/�NTT�,<%�kE��c*�uL��Cؾc��}���s
��j�د�	��� //��3��"	�	�	�	�	�	�	�	�	�	���@�Z��5FAA�N�@vqu������[L�u~?npuu�
�� ##��"��%��ر����A�
��>�H�irrs�}�vDE�1Y�Cxx4��Ό@�q���`C�<�N���xDEE1
���
@$@$@$@$@$@$@$@$@$p+�G���_�e���;�����Z��y��N����ä0{c���� .�d�(`���ooF�Zݾ��F% Q�999h԰��)�o�~m���P6����γ/�Qys���vqqA�F����qD$@$@$@$@$@$@$@$@$@$@�J�VX/�Μ9K��W��$[���i^����9u�N�>mvժU-e�lO?�SR��~�~�j�Y�jQ_�:}��wÆ
Pl%���e�S�R�w�^4k�>�>ΣΖH�:"���7���X<_)�SR��X�bE��{��F�)�
�'���iػo?������\����bh(no�
���Em���a!�kM //.�GÆ
K}��ǖ|9/^�*C

4���t�NH�H�H�H�H�H�H�H�H�H�#`�<�Ћ�zD"�7�"�C�`��͸���Rj>I�.b㦍���;�]�G޴yZ�h��U�b���Q((G��g����̙�عs��~de�����"#�g8��7MX����C��C�b�
�{�0���ۇ��<���3sqqU��!�{�>9zI�.���S�L�����v�hдIct��b�+E�-�/	\kII����ƍ���}{���_th���`� �*��RQ�vmx{y_k,�H�H�H�H�H�H�H�H�H�nz��\y{ư�?�����Rk~�}�*���0¸P���ŋ�H`�:�~�\����"���QMEE���"O�4�إAoBHH0bbn�[nּ9�{o8z��y]?XZ���y�0z]�hp���WP�w7�a��1ꣀ�s]gegc�Ν�X���M�G`-\���u�p)	����)����/e��
x�z��7��TI�"� ����ӻヒGy�[�.S����N�C��53k��9��`ժU����1q�Ǚ}eef!��e���A�R(��\���̾�����ŅТExyz�F�k9qj5����!''����Q���ͱ          �l�oFh�Q�Iظi�i�7o�,�C�Vυ"0�w�^4nҤ� |��ʲ9M���))��2ƦǢP�T�^���������ox���*�����v���?��8x� ƍ甩�A777���:�=K�l߱��|�G����)J6W4.n�g�v�=���FzV*|���璌,��d��+�aA�q9�*�#0 M7B�'WbyY
``�ҥ8z�(
T�v�����ȑ#���O�A�vյ��K�.����� CUm�V%x/�"6Ё���[�N��D>t� 

��+�a@�RSS]�=\S��	�	�	�	�	�	�	�	�	�	8��-�^�5��w܁G�?jv4�[@�s�4�f�Vkf��G���������K�("ҧ-��-��D������X�+�a��l�>�`�����D��#�oxB���&N��M�'8w�s���H딩�*�?QQQ�^0�B:v������$$&���(`�V"w*�gOO/�u�95-�W���� )��*z#; QM���@����
1c�NDթ��<xz����o�
�+��l`
�WW��y�x��S�
/�+�Nr�Z�t^�d	*WC�V��֭ې����]�ZevV���JE�|�|"���P�r��v�q��@W���ӟ3��6H�H�H�H�H�H�H�H�H�H�F$`M.�[r��zjI.�,"�3g���R$���E[�!  @��
(6,{`�cV~��x�"��߯�a��<�pW'D�	�'�N@��l���������RQ���cbZ�ܹs8x�0*U��"�|�Ue��Y���p���_�G�>|8\]
��֮[��c��С���E���0�OLvW�-��_~� .�$���bҤI��m�����?�����Bo�֭

�������-�/@��������(rNlkǍ��_�,W%t\6�Y3кUk�sV�_��x��p�n��"�ԭW/��~��$%%᧟~�ƍ��?b��
�^X��KѴi3l޼	�#��Yǿv��;f>��{���Ǡ7+����K�Wb�:m�T�`ӦM*�]l��T�@�����=������/"""P%�����uuu����UKiy��'{�V��T�T���^���аt���D�-~/\�h6�W�_��q�f�����7Od� �SmD6p���3qGEw4�wũ�x��b4jq.g�#�beԩ]O?ջ�lGiX�>׭[���G�cXX8�z�7�T��k֨����ϝS�@�^�Шq#5�!C���Ƕ�ې�����_G͚5 B�+�c�����j���٨U����f۷mW�ԏ��{��Yy7����ǟ@�zuU���,\����S��q����h�b���R���XL�<���:Q���q�A���0|���?�����|˖�"s���v�6��!���s�9��U��B�~��x�9fdf(��.]��F�+��̙�кu+�:yJ��pk�2��aK��۷��^-򊏿�?'�?��j��r�䌶&��{��A�;����Rc޴q�:�]�~)a�ܻW��Ex��e\�0��O�\8�w)�NAtt4���6�'        ��	X���5򛷥""�q�M�Rx��hҤ1���-
���Iسg/5lX��	�
�,E4�B��B�-��Elܴѡ���Z�I�D��'�ʔ���'.9�K�D��,"W��'�썦M�b�̙X�f
��ݣ�<���\%�����s��F��!B��"������J`���;Lv7v�X,Y��F�B�zш����>���؏̯xm���rߗ����	�'�B�
x�gѰaC%�Jy������OQ�Z$�oۆg�}���H	���~G]���ϕ���W_)!uÆ
���"�i�/��"


p�m�!>>^Ym������ͷ�(qx��e&�n��E���ߠ�mOdfd -=U�[x�.�t�R<xH��a�a�|9Y	��'XD^)������ɓ'U$�^,�5X���"K��X�����'���/oo��
`���/�y9y)�P?�]�����ڨ��뗠S��H:���ߞCBje�V�OP(|����;�Iɥ`"w�څ�{\�U�"��=%phH�:QY=���DG�77W%�U���?�F͚���9�{�y%�,>��T�XQ�U��a�{�O���jy:w���?���'��������K�p�d�'���Y3g�Jժx��',"�V��VcF���c��	<x�Ad5em�M�[�����V	
�ʕ+���0z�h�A��];%��^�g��m,��q�F�`Р��b}/�y��h�����BrءK�.���W�ʕQ���qYcY/���='������|E�"⯱ l��\���T�t˖-���f�"|p��i��_��\��Ҕ`^1�po��	�	�	�	�	�	�	�	�	�	8��+���tEkf}�V��
�2.�
�R���38}�L����D�{��im,E����W�o�Ǭ$NH�W��?�[�N���l�G_����v�C��رc�!B�A��]p���a��JT�_�f̘��ݺ[�D��Z?��-^IV^�����rBb"�5k���j����y�0q"v�ک"*5j�����;nW����t��֭�F�a������{�u�_�ܹ�y?��c���"�{�]��v���0��p���=E���K/��`�%�~���1c�w�V�͒��+b�o�kK"�b�,�{`�_/��+��E�!r[�ISQ^r�z����V"�%M>Ny��/!�E-hR����0M<�Pw��7g������"d?x��pvV6�6LqӋy�c(i-���Ǐ�D�J���>��՗��t%����_�V�"b��Z�j�gϞ곒ug͚�>�۷p�߷�gLDŽ��!�w����>��p*fÆ�X�lF��"]3�Ӌ���U�Y�'��'#>QQ��*��#�
_�RJ
�)�S��Yrn"�O�0#G�����
��{^E��,zX1��8c�ԪY:vPUE�ر����"�r��S�Nf��e<"�G؊�.��s9��T/˧����=!v�U"J}���,����ãB)F�@���,ԭ[���w���"	�	�	�	�	�	�	�	�	�	\�V�^�\.ss�M�R�_}�����Fp�.e ��%��_�R�=��[ТEK�	^z#!ڬ^>s�4v��a5�X�i��u�V�V�.���Eܵ�}?%`�E�H�-[6+kR�0q�m݊/*�Ё��ao�&$�w�ԩ�wРAf��={�(�T"O%"�d���	�r������?�֭;\�"�Z��!����Cu�ɸ8T����X�j5%Ke�N�T��
F�ǟ|�C���Pu�	��Λ��>������)♈��r9�;�+l�)�o��&bZ�4`���ܢ���gq'㔕�XZK�vɒ����G�B�I77759�p�`߶��p�x,Z�.�M�<k��۷I.�	]:~�!25�?K�#�#P=51*�����ddT�kx�*x���GYg�Iq�m�D�N�2�d�gIX/~���S���`��9eʔbv¿��Ν=����WS-YWl�/^��o�r��Y-?v�X$�'`��p1��;��g;fla仾��EԴTO���ҎD���*�C_J
�ǎ��fɹ%%%��3�u-�b�ީs�b��z���M��%9�X�B��}�飆XR�=.m��)ea"�j�\��\�v��|��-����H+��ҺD�I���/��G7�Д�F�Q��p�;�Ͱ
	�	�	�	�	�	�	�	�	�	����ڷo���|�s�������o�y��?|�
�����sR��_mf�⫹�E���V���l�G�����B�oWS$�V�$5����r�����ǎE�֭��Nlwm�GOВ�"��v}O?�����{ME��`iGl�?��3,]�DY_�#b��{\��;��SR@AY^�^�\�%˶�ۋ�������l,����K��J��p�"vI$������Ts�D?7i�D��o۶M	NYhvc�;~}C�l?�ʕ+���U~T)%�ǎ)��'���)��˗/C�5���XK$kPP`�`gX@�$�q���^���η$@}�/��J�KBZ.�hz�h��`�\�9s���<U�nD��ϴ
H�B���!A*�찷���e��h.⹱��������ꫪy{�KI갅�q��x"p�ROr�ޑC)o���Eؖ6�	�2^�崓��i׮]�Õ���+V�\��N�b������V���"������=`��3,��]�V�C;�ʕ�XT�5�g,������%6�����9�W�0j��H�H�H�H�H�H�H�H�H�H��ąW�$
�8�:���;��IzƂ��RM>r�HvV�\f�>o�~dN6��wlG@@ �DEٽ�����ܣ�ؒ,EN
H��^d���!lJ�ܜbo[�>��'l�d�?���m��w��k����&a͚��GJjZ�����/бC��q�
��o���<�.���kȳzםw�v}�a�n�
�
O}fN�k�ߵz��رc{�1<ӧ0"�T�w����`���x���~��*�XrKNܩS�x>���/%�\J���kע{���`��"������>�aɃ+���)[�m�r�_�P6����]�t)��ه��gP!(���"��+H<s���Q�b:�4GT�0�M[�:�HLKFhxeD����g��/�RKMM-��r��,e�%UD��_Ð�Vڝ8a��
�ֽ���X����^|�%4m��f�"lZ�����1cƢA��j/�}D׮]
},[�\E_�m�[ڴE�w ���N3D[@��8s�,Ԯ]K��R���9�"�s�w����M��nݦ���m���pt��*��=E"o��rӲ��������$���ڽ
T�p9(R�ē���N$@$@$@$@$@$@$@$@$@$`���Kݾ}�

�ߩM9�Zo���{��9�ƞ���oo/��^�-((���9�.�npuuUB����|hJ��O��O��G��I�G�J�Xc�a['l��k�=��,	�)sF���W�Z�w�y}��U��
���hִ9"�T��b�ȑػw���JMIr����ĉФIS�Y�?���,�#
-��G��λX��/e�+ɟ�����l;v��Ne�,�6��n�:|��t�0mٲ/�𼲀nݪ5��rO�>�##�7_+��͛7��-	��/QcHOK�{�CpP��e�w��͚!"�*-Z�)S&��a�ʕ�={��,W�ЊJ>{��q�b-���i+{�J�*;��s�\o-/�����Z쒅eI�W��cǎ᭡oٺ��}��X�r���h����b�<}�,\LJBFV&��O~!��ʅgZ�|+"(��a.H�O���<<+��E�*jo�*s�~�"�%�T�D�hw�.�,}�A�!ynCCC�~�zux��?4��X��%���w�'�Pk�����c�jj~��+�6�Y,���K%`�^���?���?�����I�ckmZ����ԳY]�'� ��G�V��z8�NT)�RO 2���j|�`o<tP����ZNAթS�U+xfF�jϖ��b_]�rX)�W�a��6�myt����#::!�!�*�����C���X\ʷ萟����Q�����	�	�	�	�	�	�	�	�	��DM�ҥ$���B�s,WiD+�N����񆶠0}d�"p��5���gV/�Y4�wlISzE>�ڵ��e½���5L�su�##�I޷���-K�tb��k�=zd�rKt��yy�h߾���P�fM%�_�D�ht9�2j��oC��M�afV6F���E�mذ!ƍ��K�Hc�@��&����Q��<��O��%Kq��yԪUO<�^z�E�Nnƌ�ſ/Q��r�A��, } IDAT���M	�r]�J���4n��|�1Կ	jI��4i��Z���oq��;�B�oa���m��u�vF=�@<b�!(��",ʩ�U+W��m��V��v�T´�^�BQ3,,L�W�6�,mJġ���e m�)ɸ3��Q��t��Z..����Oسw/RR.#77���<
�<*�������t�<<<=�*�x��K�\�\���ݻ�����U��'�T�jY`��]�v�g�Z�H���� ��X����eK�a׮]��ey�K�n���#�K��R�s���3���CW)�f�V"��vwwGvV6f͞��'�>�bi,�`�;����Zl�+U�������1G�KP�f
<�H�b��%���K�/1;�z$d���5k�0`��m)��۶��K�x��۸Q�b��m�<�ii�		u�#+�u���E�)~��          �Ш�c]\] �˴Z�E[iq��JqLxF�華lЛ
���蔌�_T���Ī,��{��UB��_a�Pܝl�ڠ7a�I�6}��_Eڨq#�^�J	��Y�Xij^�z9��-[_��7n܈�u��Dޟ}�9ΟGNN.D���/���7\]\����������
<��p�h V,$ ��F�R��Y�g�����"(�p�:cl�,{^�#G��/O��Ky
��]����9	�B$@$@$@$@$@$@$@$@$@$@�:��Ç�`ըa�2��XU7ݐ�p)0��v-z��cǎ��ǧ�k��(Ѩ]�v��}�-� ͵��A�աV�Z&[�a)"���W�ع�n��i���P����S%������'�ċN�N�����L )钲爮]l�,��0��_�[\~s)�堒�`!          �[��EX�%�s���-抽�:{�b�����ڵ� �����͛a�d�DG����?�/�����r�9s�n݆F�){�E��~�����Ǫ�kp��i�(B���C��+g~�
��ܖ��&�����/�E�����4�_��/]����X�ݽ����Ɋ=G��);,�#         ��X��;�r�ƴ���&v�x�Ř={8��v��C����q��s���C�f-0z�h��8�+WAr�֨Q݆�4(t��G(��uF��64�[H�!�Å��u�Un^.N�<�r�K�o�.e��DԻ����5jԠ\6��E$@$@$@$@$@$@$@$@$@$p0+�k׮���a7є9p���صk���l*
�tO%�iMX�%(���,$%%�E�������j�O�1K����'����2�!          ����YX��ϟOd��M�ܜ��	h�b�J���#""�ͳE�\�paaa��V�-�H$@$@$@$@$@$@$@$@$@$@77�p~A>v�܉ʕ+�z�-ֶ77$Ύ,ػo��EÆ����JX$p����P��[�l	7W>���I�H�H�H�H�H�H�H�H�H��+�`O��Crr������u5`��7999X�z
|��P�j5����q<�N@��)Lj�`ԪU���N��	�	�	�	�	�	�	�	�	�	��y�_�R*	���;�W��ʕ*�	��
Nĝ�������0��
�x��F�����~ДLs}�M��!          �뜀����9<�N	P��N�ú*x��`f'$@$@$@$@$@$@$@$@$@$@$`�`n             �IP�I��              
��$@$@$@$@$@$@$@$@$@$@$@$@$@$p��|�2/?���8{����r��H�H�H�H�H�H�H�H�H�H�H�H�f!���zpws�Y��y8�`'@����G#++mڴ����=Uy/	�	�	�	�	�	�	�	�	�	�	�	�	(������иQCR!
�Wy3��v-z��A�*sgw$@$@$@$@$@$@$@$@$@$@$@$p�HNNƪU�ж�7��8Pv^Y��^�O���4e��:$@$@$@$@$@$@$@$@$@$@$@$@$PH@|7�[�oמDH�@��U���2pvG$@$@$@$@$@$@$@$@$@$@$@7+��͛G��[<V�d�z���˵�B�*s�|���;           �Y	8M6/�ެ�
`
t�O����
�7�p޼(;�%["           ���@ff������}�)�����)<���������Lh4x{y!(8�����{�\��.�@�qQ}'$&�����E�*U��`�Z2����y�_���;w���HJNB~~��<Q�F
�y��V����puqqJ�W��#�3��1}�t��<�j�Y-���+��ŵ\��y�_�����ٳgUU�TA�ڵ��C���S}6�|<�ē6��XvIܽ}�6�ŝT}ԨQ11���ޗ�ͣ�$@$@$@$@$@$@$@$@$@$@$@$@W���
TW��s�}]�A��ɗ/#6�RRRT�"�������U	���>�S����,�ٰqV�\���ӧOc����V�>>%�֋�ٹرs7�nێĄ$%]����((�*��������v<�pWxVp�� ��tI�&e��CpfV�O���*U"������r��mߎE�Aڢ$7Y�nݺ�رcغu+&O�d��*˃>o�<ddd"�eKT�Q]�q2�$���o���ǦANv���p��QԎ�m�Xo������+}�l�r���!**
_|��իw�M��FF��^x����h�V �}���?��/�
��I�H�H�H�H�H�H�H�H�l 0`�u�ԩSm���;`������Ç�@�5Xk�J[�U�<�<q2.���Gtt=������ۑ�G��鉹s����/~��G�;w����bn�����z��ܼ���/8x����橅��\�!;S�Њ��V��z?xx�����z�U*0T�@;<�P��Ƙ_&�j}��ٳ���k����Q$�…(X��~��"�[�j�{�U"��i�=w��oP�����`gΜ�ꑑx��7Z1�֋.bҤI8y�
������*���1g��Y�b�ēO 1!k׭�����_kq��E�z�N�8�
6"!!^�Щ_��J��Q��p�:`㦍صk7
��ѸIc<�Ö��-;w��
�����?�..Ž�Ϟ9�u�֩7�>�hu[+�~�����Z�֮�6n��<�@�ڵ�/���|4h�:t��kq��6G�Q$G\�d�77�[M��N*Z�b�ͽ8;        (F��1r�����Q�A}�	�)K×SR�F���%B
���ТE4h�Z����HI���Y�3�Ѹqc�>�2ޙ���_|��)*�x���HMMA��ՕV�.�F�����m�vlٲEE?{�Z��$!/9	�, 8�>��/�����ލ^x"���<��7
���I�H��Z��+��z�5�%�C���ry��2/����޽��m11&G�����آk:�FK�@hH(F�e���V�����>{��wq��EL�2բ���{�7W7��ٱ"�ouf[�#�j֬�#F�[���ĝ�Ë/�h��
���>G�6mԋ��?�T��j�BvV6�,]��ޥK5���W��ٳ'\\\��n�zh۶����7�B�ӢI�&X�dI)8!!_ϝ�6m۠A���ʂ<�%�f��d�Mk�dܦ�y|���˫c���iuX�x1���ЩS�b�m�� �����m��3���Վ�a�|����~L�e�d��)�'        ����Y���q��۷��ӱS���E�MMM3��,�Ν:�<�����Y�P��������t�-�����������?�m�*�x츱�뮻y�mt�N��/b�w?(a�d����;����;�a�v�݅9����Z���
>*��w�F��Z�&F�.�n_�)��-_��ߒ3u������'�x�$�`��mE���p��믿b��_1uʔb���`�0p z�x�>��ٍ`���+���)S&;����3۲6�^={�i���V*�fΚ�aÆ��ݽ��%�N�Ԑ!�թ�[?������3�a��*ѱrAlΓ�/c�ԩ��"  >��Y�%�d�Mkץ#�6]]�,�#''�ǍS��j���c�_`�!�h��,��.]
�ǎn�m��q;�-g�c�B�*_��9�[�2~'��Y{��˘��	�	�	�	�	�	�	�	���L���S���TC<x�~����R�8�>ӧ�!5���7�W�4?;`xw�H��('Q�M�V���������q��Axzz)�744:�V	�͚5U�py���q�FT��ŋ�`ԈQhٲ�̞ep�u�o���/Æ
��s�VhC�����Ѥ�WvC���v&��>�i�֢Ræ���G��n�o��9��hʷ�]���_�}.���Sf�Lx��	Kk���ƃ�"��\X�z%ZsЛ�l�3y�d,•�bJ��/�i�ӧN#<"3g�@��ڣ�#ݰb�
��K��-[�HZ�^y�lڸ	�>�=<��3�K{�JMI�;#�+V --
]�vU>�҇���][h�@۶�<y���"�b�P���Oy�K��;��/P���s��w7w��
~�v�m1j�R.]���_����R~~��mS���}A<�y�z�J����X�d�Ȼ=�ƍ���:����~�7~[�H�;h�@d�g(�V��_�
F�m�s���8w.O<��q����x�
\8A���;���3f�y�DD\�>6%��<j�H�}�/*V�X��w�Vc07&s��~��imAA�7v,���K���3F�ήZ���q�9Jy�������*RZq)�x��!$_NFP`:t�`�w�ܥ�K=???t���j�m�W�6��;7/WEbw��~,�G�QϧD�˳+�aFF�ڗ�O�R'���>4m�T�Y�+�#6�е@����a�?+u%�@l�	u]���*[�_�-c�o�^�l����q��_�lܸ.\D���L���Osm9�������Fr��V�#Y�j�"ѫW/þ;ra,y�]4�{x���r����=hm�M��j�M�~��I�k��c�օ��	�	�	�	�	�	�	�	���D�8ŧ��׏ƛoVM�4Q����\�Pu����c�p���"�g
$�ofF&�ԩ�~[^�a=�>///���)mF��w�jժ�NT�ӑ�i�qw������5����s����3�N�O>F�Z���8d���<a�4���H��[�֨uGM�&�ή8��l��ؽ'�]+!4�)D�
����|��@Z\�,�J~�!�7��%!1A��xx�#�r�=U�zk�.Kg{;Z�f5���(�4]�H����^S�RY1ll
]�ђ�X�FD�+{�xq'�b�8.���4o�'Nı�ǔ���?�*��޶:v��a�1f�XI����f�Cl�?���J:.^�"���www7̝�5:u�W7W�"��Q|��Gj�%#�%Q��Q	�:�m۶�S����X����͛��G�����t@IXq��ر8���o��v|���R82����t��O�g�`������۷mh�]�v��g��{�A�ƍL���/�Dt����;q��q����xsp�^��A~�݃�W���3SblZj��?-	�w�ܩN���֩s�bⱹ19"�i�<~��)ۥKgeu{��Z�nݺ�'�����i�&��o�����x��������$G�;ԁ���tL�0O��ڵk���dȩ,%�I\o\TNe��wߩSC��=���g 00�l?�F�K��ʕ+㡇: 9)I��/��:��ͷ�"8(H����>u�T������+��J�)�CN{=��3��|�1:w�r(���6�M�����u�خ];DEE�����+
�<ʹ�,�&���ڋ,��u�:u�*>b�.Ϝ�U��Λ��w90 �1�%w�a
�i*����~����X�Sv�Mɷ�0~'�/[|�����g$@$@$@$@$@$@$@$@$p��@��|���N�$s�5z�G����|*P;�={��ҥ$�,:����J�]/G�Ź�g���"�z{y+�7''�&�#�Y�wK��wnFrz
<+T��o�kϽ��-[�qxzTpJ�"����pp�Adg�t�j�"+bϔ�8�p�t�����n>�
������兯��Sn�5�����त$uJC,�h���Ϯ�|��!4m�TEEJ���6���#�<��F�i���Ðh�K/���v��}hݺΟ?o����Q�J�{/Ѻ"���^�2d��|���՘,	��@�eLK\�x��O}��E[�%R�vTm՟�3=����d��yJ䳿�V�^�\)�j�V����Y��ӧ㭡ol���!��rR���Sc�E8��7%֊��٧�)�11�)a�=��|��,�-���p�6m��|��\�B��qsuU����UĹ���q���^�f
.''��c��z��b��o��(ȩ�{�G
0��e/"��ȡ����D^��%��qg�H�%EA916c�e᭏T������"Knnn�Yc�a���=gv�����>���O���_�ð�Ν�x�n�ZE�����t�����\�ϋ�u��q7i��,OSm9����*���k"Ѽ%�^�i�i�ѣ�ZgyF��5�����>��)�C�XZk{�q�ڔdW�$׭����e$@$@$@$@$@$@$@$@$p��B�E$���_*6@��{��z>`;`�NJ�__�*AQ��S����+�`����		v�����h����w��2ұ����`�� _�"~E$wEG��o�=\�&��vuGÏ� )+��
��dDh<�T��C�k.V�[������兹_�.7�0P�p��'Mth���6�g�ژ�$�^�`""��CQd�-+aM6gm.X,��x��Qf�7eo,�{Çc���*�o��o���S�QR^�|��������D���V���#6�x��Jo���?V����\��Z�.%�p��!̟?_ձ$K����������^S�b���>r䨲���t �9k����h�o����؛5k�=�|1����x��'K��ج����}_6�T��N���V����}�Y����1%����b�����ۣ����)����5jXSY��gz�z��[�^~I��)v#G��/����B+�

���^[��7o٢�������з�R«X��?�z�=���m]M=��ֲ��0`��R�-�SR�}8�����q��;��˖aࠁ�K����\���Q��U��0%�ܱS}�ҋʮZN`u����+Оq�{�y�l�Y,-M�ܚH�vIF�֮�ŋѳWO�K���w$��q�9s��Z[�[y��q���Ir��{̖�U�C$@$@$@$@$@$@$@$@7*�x�irΜ9�	nz饗Ӳ�m�B��w�ڍ��	�.*8<"���S�KB|DKMMSy�%-��U�Vu�t�K�&�c��)�
	��
�1�x���k?��� IDAT����4�W��N���~���c�����Z蚷����W,�f��+��G���X�1\�傂0o�h����Y3>+7�0x�r�G{4������̬l�$V�b��k�*�Zg���j�J�Z*�����U������7su�	�����S��m�-S�Di
8Фe�q�zXN4D�)��.��"�y�];v��&�XiO�6M�]�
����YK����%y=E���z�X�cϞ=�s�#��b�O��Eب\9�!Xڿ-�6%��6���򔀶c�4o�\]�&/[��<�f.�י�$��[�&�-Ξ9���%B�X��Z�[�]�v-5�g���N�5'֊Uk��m]��t��`��V�6͍In-�\�M{�b�Ǫ�r@�mj���sx��' іS�ME�>Ϩw_^^�����y.�,]�"�|�A���b��9�����#b����Ap����[ÆAYK�cNQ��>*�X|ԏA�$z[��3�TN[9�!�Ԧ`�i;q������}��ݺ�Zd5��L{�mܐ)�%�rKs��&��s��)�c��7�������qH�aKkmO?����k����;I�.6����x�H�H�H�H�H�H�H�H�n�;��������H�ߠ�
ƾ}�Z����DK�B7w7����#++�T`I'����ЬYS[�
wZ?k���T�$\HD�����p�+��k>\�
W]6\�o�E4�������E�j�X��o$&�C���g2�Rڋ��$T.�D��HDW��ģȮ�d�L����E�f�z�r�m�f�-v�ҲX�N�>�H~
�Eѣ6��������deg�w�޸-&�hSV�m۷C�Jy����
��Ś,�ˀ7�@�ʕ v��bJ�ha4�N�f����I�z�詒vK�[��+���@K�ڢ���>��Cu�`���{S77W4k�L	�cƌApH�
%:P"��i���-Z4W/�iS���D@
�X���͚5Ô)SU�q9�"��_���CIh{"�E0��K~V9����OF|�-[�(h)5k�B��O��>�ѣG���
���.��mڴA܉8��c���S�:d��
5Tw�<�	�r��>Ő!C
��2�˗S�$�5jl�C�A���غuz��8���o�_�>$�R��������%������1]�2���S�p޾}������GFf��1Yk���˗M�im"6K��z��8>�~[���ۣA�J�6�Β|���cUd��߻g�ʗ+��M��
Wv�"4�{R�����3U�N�;��YY�HNJ6ۏ��믵*��D�J.l��3g�(�۵S{V�@�o�5��/�.���u�{��j������AxX:t�rcK��<U��o[�Z���?��41!,u���wAA�E�%ے�8���&���-��5X����d���w�����5�PJ�SNݙۃ���ڎ~,�){�F�Zz'�{�m�N�}$@$@$@$@$@$@$@$@$p#л�J0�����"����*��X'2;�2��´��
����YJ'hݪ56nڈ���L�(Ū�T���͛)KfG���Y�[����EzVD��\�2\
4��d�."�ĿХ�;�Lv��tp��wM��lYY����'N)WԤ�$d��"=8~�tyx� ��A^����`o�TТB���=^t�zujC���(�r�_&X�s-#��C��3.w�RX��{�_�JD���c�T4��g��E,,�m/�`iII�
Z�Fu8�X$�z /\��)�w��3&����=�'L�SO�F�~���/�����ELLfϞm���~XYپ��3'N����q�F����n�:*�T|��m���S8p��!M�ʙ3g(�W��ްq<�=��2��`$�-�u�X&�r�E/K�ξ����-[*�P^���|.����C�V8�4n�"a�U���iN�9�����O[��b��}����F�D�\,|�Z4n��}� �}�ͷ�ݒ����
��۶m���*��z��h߮�ڧ�6m69&kmZ����n�Mk�P9� yiEdm}��hܸ����qZ���k�X�?���T(�����D��Td���]�vAp��P�oD,>u����/B��~D�z���HIIA�m1*�X>���>}J}Y�����hw��l�r�0 0n�n*�X/>�����gO��%X�\/��w�}��Hg�>�g�"@[�i�-g�4��kbMֿ{~�e!�.]���jծ��ߚ\j�<hqoX[ks_�6��Iboc�=f�K�7�	�	�	�	�	�	�	�	��
N@o�,Ӑ���:��X�BI1��6;�2����h������W��-�/�`B}qu�(�d�в.A��W�߸�7n��.Z
\t�.�n�Tx�,�.��P�&����D�F/"��*E�-�s���^�~��:W\Jʂ��S��<�P��y�\�yy{�Y�&���#������1�+��g�%��˺�v�KHL@nn��)a��
��g�^%l�zaX�q�˳D�W��Vl��>%���[����{��5� �r��\^"V�"����y옱�믿�j�*��6�Q6�l�R9� Q�">���s�4_c�Qڴ��p��[��[�<�ǡ�m�����ꫯ*��$��q�l�5��Yk��(,�.��<�˶I�H�H�H�H�H�H�H�H�Y$�p���J�G	��"A����SZ�{Ç+Kh��NXr�gd���O���9q�;v�@@}'Ѩ��*e��:��I����'�����Ö���	�P�R����kR�38�w9|qp�$���
�/#�Q��ܼ|L�4�F~^��2���'I���N�3/?A���4""C�V��DE��<��7�|�L�4ѡ�V�`}��H`J��,����k<����c߾}8{������r�jym�,��+W���m�q��)5�ꑑ*�C��m���H�>O�Q6�3fL�:�+�aԎ�R/�	H�q���ܹ�C×�?��ӐS١�X�\8k��epl�H�H�H�H�H�H�H�H�nq���m6�Ob�P��{,��S>r�ҽDȔt�5k�Dvv6bO�"66V��I/Z�V-�l����3%"֑����/&L���n���V6�!�i���<���q�\��+V`�_�wquEVv.���6mތ\�.^�w7w���7���駟���
���-�+�^�\:;<���pXv��[��=�-��\�,���b
	
Uv��z�RvжDQS.ץa��H@�}E�׀cǎ�ǟ~�/<���p�z���p��w;�+;�@y���FȖH�H�H�H�H�H�H�H�H��N�NXR�8���l�ӣD�(*������~��FpHD�"9{���H .�\t�
�g�H�-[�PQ����;�r�e�Z-\\]��ǎ�ҥKq�����(�z��(HU�v-���B[Pg̽���G�^b�O�A�T���t̚=���U4��~��ݻ���hm�y�-O@�5��@zF�:�u���#::�!.�N0i�D���AA��`���c����8         �����e��djԫϿ�`��
�f1}.^��"H���=����Ps�`�*	�	�	�	�	�	�	�	�	�	�	�	��e��_�WW6� _��,���U^7
�W8�#           �����n޷h�α�����%_Osv�X(;�����Z�=z􀻻�U�ݑ	�	�	�	�	�	�	�	�	�	�	�	�L����j�*�ms�M3-
��/%`�����#������pR�o&           ("����m[��@�E�F
o.nH��&������&�SYz5�D�=�,D�4�`G	�����gϞC~~^j�
	�	�	�	�	�	�	�	�	�	�	�	�	�����w7����&���;��wd���.\���� �7
G'B�Q��O$@$@$@$@$@$@$@$@$@$@$@$@$�M>\�7d�)pA��v]�ӹ">�F(
��o�F(���9�	�	�	�	�	�	�	�	�	�	�	�	���@@���'.�S�o�����n7��2
�N��FH�H�H�H�H�H�H�H�H�H�H�H�H�H���$�'�08              G	h�-]F�Q��O$@$@$@$@$@$@$@$@$@$@$@$@$@�MDx
��Bp$@$@$@$@$@$@$@7:X�A�4��3����ѭ{����Z$@$@$@$@$@$`D�0�	�	�	�	�	�	�	�	���^��l��~~�˄��H�H�H�H�H�,��
B$@$@$@$@$@$@$@e"@�L�X�H�H�H�H�H�\	P.W�l�H�H�H�H�H�H�H��%@��][ΌH�H�H�H�n\�oܵ��I�H�H�H�H�H�H��)
��?;'    0I�07	�	�	�	�	�	�	�	����#O�>�w�g�f͚��^��^���è]��y#	�	�	�	�	�B�V�w&`[v�!       �R,	�,^�?��7

���׾��{t���e���}1{�,��gϽ��ÜM@y	�	�	�	�@���Τ\�-�J$@$@$@$@$@$@$@$`N�wI�	�1x�o��ǟ"77��xxx��GϞ=^*{D]{�u�,��*z����8�B�O���CʳC�����~ǹ�s���BÆ
ѫW/���^��Kvr���d�I����8}��Bd�H<�ē�R%��juھ}{̙=�kT/֥�֭[gu���ӦZ��,7�:{�6��K���~3n�<ڷg�r�1�
*�f��do����ՔN�S�����g�cw=�S&#�i�>U��2�hq�Z�ׯ^�h��j|�9co��Wc���eַN�Y���k�ǚ5x�];�o��z�����E�H�H�H�H�H�H�H�nD��"�WW4�zQRvL��u�#�-�_�~����m���=���mϽҩ�?�Y���u����[C�¸���Q�[�9�3g੧�B��M����5�AfF&�{���5�`������?�
4��@���c�����pgp}Wo�`;�}�-d����k�����X���r���c(k�Wko]�~l�`<���%��ڵo����M�����1x�`L�4	>�>��^/s���o���WW��Ü9���^�uQ��w��`㌽an?\��ۺ�����w��g��SRP.��;~�8�,Y��_z	�>��&,�~�=g�v�ڵk���ͨx#	�	�	�	�	�	�	�	(-F�*�ר�,"��E�9&��õ=�ZZ[{ڱ�^����g|=%%_}���U�r��}E	�*2�����?��N��{L}��o��~��+L����PUWڑҫWOH�ɓ'��C�>x����h��$T�XQE�խW�)�������+A�\INJ�Ws�B\�IDV���_x��!j��� m�ر��͵)�lYgL��w��/�X�R��^�u��c�3���{U���?�3f #3�>��4mbqoXc���۴i�{�ڵO=��М��z��%�=���Ct�h|2b����7�s�NH$��������n8r�^�2fϚ��f^^�r���\h0r�H:|QQu����*�T����Q�����U�V)'}�O?����ۃ�#G8:eC}S��g�z�K�a�-=/��Θ|�y�<d�P|��4�sl�g��ao
C���jH%��m}n-�����w�}W	ۣF�¨Q���,k;`�@<��s���<�����W_AժU-^3����Z��?��#.\��� <����U��{��?1�K(�;�Q^�ށ�������k%���>�_3f#�I�&A"�e�<��l�x��%׸���0k�,�]ާO̘1Ӱn��_��َ�9�[&��3���w�)Sq�ԪUo���A�wڧ�{Bn8p��KN�fT��H�H�H�H�H�H�H��	���.�I������O��ݻ�+��b�)6��5A�d=G��֟�u��CBХKg,[�����L�`���ܩ<��w�y'�t��p�B%<H�Ԏ�i�C;���"��DsW���;�����TE:d(�C�ͮӗ_~��� t���׬ƅ�p*��,��R������-[�`��hѢ7i�D���1��c~��Wѡct��	�JlmִB���󀎢������ХKG�(�JQJ���&UPzhқ�ޑ*Ui
�"(J��қ�����6��l��&�%ߜ�Cvg��}�{ߛ0���d��ŋ18x��؈O�k"��O~�2�����5k6%X/\�=D׮]���q"�4j���}�/Q�W������*�z�e3f4�Q/.4m�˖/��˗1`�ՖĿ�В��"E
[�"�r�%8볔��sW�������wW���\��~���*��������Ǭ��w�OW}��ؖ���T�����o���E�(|b��aիWW/g�?w�:w2���2�Ƶ�ɒ/\�~9p7m�����׸p7��;��V�8s���G*����6o�_�kW�K*�bC�|.q�;��R��:Æ�1`�s�3���
�$׿3�^�Ы��rmM�����E�%C$@$@$@$@$@$@$@18�ݡzz�;K\헇��6�CU�c�	������#;�=���
VY�R�t�pk6�l�Θ1c�>�b�A��Sǎ�6}�:֓v���و� �+U��2o����,�V"T:ۤ�a�~}�.]:�"x�`[IC{�>���]��_\���Ed8~�8d=��-�+!X6�6j1��F������b@2`S�J�dW}�O�k���G�BϞ�T�^��\~���ض];,_�Lٯ'B�_�R°d���&ُҦd�*�z�Bİ�3g���-yy@+!-m�\����Y2�~�� >��So�8Z�`o�mG���������d�wD���i��5��̈́���˖#���9����s�Ѩq�}�yl���j��Ư�G��R��h\�N�?8��{w���_�1@\́����`٧�3G�#��׮���S�)/bU�Z%�]u��]d>�����w��/�
��9�pI �g>M��"�\[2c#�ʹ����x-       �g�@��G��2�Lk�B�Tf^\7gB�;���~{��`���3����m&�@������&&h�%�/6��!�7oڌߏA�T��B/����R.U<Wq }�<i2�~f�Vn�NUv�}_�?���h���y��yp:o�\[��Q�-��>}L&k�w�z�2u��vIW}�O��^lEl�E�}��U��*�M6�8�D�]�`>6l�ŋ��K�-E�f�1s��Ҁ�%坵R���m��~��Gi;s��J�}�ֻ�vq�Lm�qg"���6:�����nd��Ǭ��w���lދ�ؖ�7o޲�M�LU)s�b봩S�<&%�%�W?����H�u6��>%/8\��BCBa����v��$��@g~t�w�>�ŏć�#F�P�:u����ņ3X|3i�$5��3ƽ�o��@\���Z����u�"�|[�WΥ�A$@$@$@$@$@$@$@�"`/ۯ��Q�	iӥ��x�bԩ[ǐ��ϛ;{�/�/z!N/]8� IDAT��(�������N���v1�5��ߏ�kת����f͚���Q����d�Ͼ��ٲ����_��݉�r�#����_\�/b����J��)����*�+�T�� �޻wOe�:��}��f#}���^�gΜ�x�bE�j�ʶ�n�
 s��{m���^E�ř3gT�ܠA��:�����d��2�3fʨ2�[�j�����^��"��_����SK�(W7G;�H�3!(�cۨl$bÈ�����oF���ؖl���~�\���T�~}%������U2��v��Y�V%B��d��K��لΝ�����v4��6&�<ws�+?:��<��ŏ���[�.֭[n�9��zȟ?�*��l>����[�ݧ�[j�z;��ʁ�'�-X���ܽ����*�����GP���        /��ֲΆ��%��)�ٳ��͏q��i�⣏�L�2�L��,
�"BeȘA�E(��?�_	y��=��cێ\K�������E���/��s�9c�M���Yv'\�t	cF�QeRK�.�'O�`Ϟ�Jh׮�:Z��2��5�~�%x~�IK�,\�m�MW���wYk�B�P�Z5���5�U���wq�ol�Y��E�a��ؾS�Mu�D�)+-B��G[�U������������]زe��è��T�fY�w۶�ؾ}�*�,����X^ٺuƏ�.��jժb�����]��ϲI_��@���`���s�M�q$��7n�D���Ճs�Lq\��h��cۨ���lt|:�[B���kԜ���o�Be�Ν�N�D��v��j-WY����|���9[�Ѹ��U){�9K�رb���ReA?�����,�c;6�́���l^�dn�3г���>���{p\���aQ~��F=�����\�,���y[U2ظq�C�iݳ�ʂ�&�-�id�4��H�H�H�H�H�H�H�M~��w����K�Xo
�R��F��2e���T�gl6_�����}��Ҷ'N�Df�>jb+��H�v��?��K�`���8z�Z����<�dg�z�Tl\��i_�_��*R�H��%J�~P�-d�C��p�ʤk٢�Zds�•�F�t�/�Ddƒ�*ea�!�����)�+�E��+�Y�AAAX�b�ZOT+5�Ϧ���?�4y2?~�J$��ҋ�<W}�O�ۋ�b˩���:�"Xi}�,�Ç#00�c���w��J�~��ǥ˖�2�7j�o���R�Rmɜ#}'O�D�b�lb��s&�>�/^�JI{k�f�ѱmT��X�T6:>��-!b[2�E��_m;Ǝ�^�[۴i�E�!M�4J�͖=�ms���=�ٸ���'L��)R���O���A�'O�~^׳3��ќ���nt�Gg��dn�3г�z�*�֛Ϛ-k\��΍ܿcǎS����˗/��r��߳g�Q�Tpf|��q��\�ߘ���Ν:�KN�41���t|{��	�	�	�	�	�	�	<��,��l�<��6�|�]��X��8��$@$@>M���N ����R�B�sgϢs��ō�_�Ǐ��cǎ�X�W/�WZE#�(��cH�H�H�H�H�H�H�H ���;v줲��7m`�͞#֯_�Jc�V�̐' H�('f�D�־}{<���hݪ���oXN+�����T.�%9Z�je����x�̙�o�
v`èx 	�	�	�	�	�	�	�	�	$��v�Z��aHH�2F+c)�W�Z��"J�gy��0��H�H�H�H��	xK�ճ�ܽ��ӫ��}a��^��$@$@$@$@$@$@$@��@���@Ț�/^D�2el��,[l��Ev���B�?�Ӳ��z0��&�	�	�	�	$ o�����p|Pe�$@$@$@$@$@$@$@I�@���
|℉���Q��-Q��Gk�y�dž�    �g�@R�;3^���L;G$@$@$@$@$@$@$�{r���e��m�˰�	�	�	�	�	��S"@�)��eH�H�H�H�H�H�H����ϫ�	�	�	�	�	<��g^�H�H�H�H�H�H�H �	PN`��$@����C�M
�	�a�,I���#	�	�	x�`�#e�$@$@$@$@$@$@$@������D$�@8�!���$�Idn?�����0%��'��$@$@O�৆�"      HH��>�M$�H��{�#Ԕ*6���9f�"��o��",!���H�H�H�<'@�sf<�H�H�H�H�H�H�H�	$v�hѢ>H�&�	�'�'������ߤ��[B��r
�TFr�}�gn$@$@$@���93�A$@$@$@$@$@$@$��ܤi�J�I��@�	x �ȠR�9����%��3��6	�	��3L��3�\v�H�H�H�H�H�H�H �`F	������0�fx,�5�u��P�%I�F$@$��	PN����	�	�	�	�	�	�@!@8�8��$    �$N�pv�H�H�H�H�H�H��

�I���'	�	�	�	�	$m�����{      H2�)�Y5"BB�~L�f)�
�$U��	�	�	�	�	$%�����W      H��X�߰PX��E��`		�%�*�`J���RÔ>�UN�"�_�t��I822H���h�����]��r ��O�p�-$      ��gB���r�p�6L����0���`I�Ȑ�LY�4is��N�@�	���ǓM��Od���s3w�'�~�	`�X"�O^�0`��7~���!$[���SH�H� 
�A�0       �&���d�>�˵k0��/p��m�W��˗�s2�ʅ/���jՁ�@X�f�)0H��+���ϟ�m�q�9\�r9rdG���P�Je�͛7V�X%�:��
�N�������(�~���_�~H�\Z�naaa<
D�&M�x�"����a�&�a��=�����j�W�CI֝l�?�?>��ׯ#BJ��mf�Y�dA�ҥ����J�%O�
�'��D���}�yO3>e\ćҦM�"��~���|n���7Wmx���M|]?�Ɩ�طwV�^�k׮!k֬

Bٲe��,��E��}�̝3'�s�ͳ��ő�Z��C�A�9�펍
C�A߾}U;�9ߑ}�6���k�%�y.	$%�����W      H�|^
Aĕ�a�r8v;g�DȱcH��í��??�M�ɊC�V��bE�#�9rQ���aa�w�}�5�W#<R��3���^�^=|�0{�m���q9>�<У�b<1�A��fK�N���!���If��1�M�B�HY�F��vr�΍��ۺv�\�tI	R�aӋ�b���9��S�:�t��M�5�г]}$�<p�â|�+G���-X�![�B/8��_�R�lb��#�bIȓlݶ������=��i�?�������������G�ܹ<���
��QzӧG��ԩ�ЩcG�P��<q�&OV���(�����[��̙3a�D�~O�*��SO�E�(_���E��͸�ء#&3Y���ٮo3>���'(3
H�H�H�H�H�H�H����-�ܼ��a�p��A�cH�d���`�R5�b���+��}�""O�r�)s���.��5k�b�ʕ�*U*�қ��7_>�9�g�n%������u�xԾQ�SߨAQ��D�իW�^�z�%����5��U�C
�=�[�8l'̔�M���3���i�\i$؋�d`�\�
=zt��0n�8�]����ܹ�iS���S(P ?�u뎰�P��|��7��3C�꫾*�L2���#бcG|=bڵo�l�.oܸ�ʖsk����{���8{aFD���aΜ��W�۷C��U�i�f̝;�|.��l"�-_�7o�D`` >��)RD�sv��7m��d��i�T�dضj��ƍSm�ǚv]�q���۷��o&���sȗ//ڷo�̙3����_�3w�����9s�b֬Y*f�n���A��K�.�s���$��\�>v��/X���,Y2���*U��F�.�U_3dȀΝ:�fwc��+W�`�ر�ᅦhӺ5^z�%uW68;���M�6X�h1�埦M���k\Ə_y2�{ӧ#G�T��[�lfn߾�BϞ=ѩS'ܺu[�˔)��w�-�5��X�С�6m�ŋ��b�(߾��kqf�(>8p ��8m��dž�q��3|�p�y�(s}�>}����}}�R��̙3������v/1��s����1$����{��#      P|W��a��|	拗pn�J��;Y>R¯�Z��7��o���߲%�5B��aΕ𓒳FVG�
	%�M����R�8]���˓'O�2�&�	��{T�@��X��U�V{,fJ��3}�_A�Vo�PVkig{�R�W�D��
̜�����W��H��`��=0h� �N�>�� b�lz!`�ĉx��P�n=�Y��?�d��>��{%K���
�a�FԮ�jժ�����ѻO�X���X7��D��diK���,��D(���I�qK�˿��a|��^�b%*T�
c���{�"�A��c�

�֭[�@��nm�q3��������3��Eڶm�^={"O޼8�?DЕ2���:O����A�J���+V 88���3u�Td̔IU
ظa���_t��A>z�%
׬�.�/_�m۶{<~��ZD4�ݻ7�M�c�bݫW/4i�ŋǞ={�z��oх��S~$��鿔itl��p,[�U<��9̙;�F�R�����95߭�:u��?�`��Ř0a��q7<����S�
��3�L�y�&$Ƶ~�����͛7G���Q�n=�2��Dx^�j����s����Xt�[�9�ո5�H�+^ޘ�Ş��6m�?��ܢE��m۶��ڙ('t^�H�H�H�H�H�H�H���YX�{�<.�Μ��#FE��O�J�"�L�x�*��
(��$O��Z��g�ƎT��ǎSk��̙}��M^�h��D|����g�v�'��A��ԯ_O���yZb�b����ç��03��}Y�ZEM�W�ǫw���"���)�li��ɋ�ҏ%K���*+W��;~T���5T}�?\j��QH�&
�߻����*ac�O;��"=�k����sg�(4o�<���>+�g�1O+X��cK�v�?�)aH?� ��>RY�c��/�2�o6!ߍ�<��e˖�|y����挱�e�d�P�`A���3f
��[��3dH�>;����.]U�V�e�j�uu�ؠ]C�^�{�M?n��0e�T*�������C);l�05�H|J�V�V����j�dv������m?����駟b���1ƞ+�z�a٬Y�hّ�'OV��0�٫�S���ض��6m�`��	H�R��;��mpv����Ջ'rN��ͱp�B�q�n�H��%����s�e�kY�Mo?�7�O���\o2��$�N��|Ɋ���j\9��|��r����2�gO���9�]��~�G��J��7�� /�d˖�W�B;����K�	�	�	�	�	�	�	<}>-?�o�O�ƺn�x�*2<	q	�N�d��=;�;(X�*�I�,ن�ΝG��Ȓ%������D`�N�.���ĉ�2���B#^�D�?7Ҷ�O`un�:��o��B2^y�8R����"9��m��a8��1<	��K�Jx!���֕���	�S��²eKѿ�Y�	��˧��Ϯ�����^��ӧ7ƌ�N�:��=�wDŽ���6|�8*'�)�u��	�y�����BM"�~�'H�{3�����E�5*�k}��?�-<�*/Zd{A2��\ι~�*��C�����V͹:O�.��͒qާwU�:O��]���ŋlל;w�Z�T�oٲ�ML��ù��)qKĮ��[$:XJ%>�&M�1�\�>~�8�,]���АDX,���~����'-
̮���-�=�7�\����r�F�#s@B��.]�`��Ȕ)���[�na���h�����Yg����#�}O��ܹs���x���c��ƕ���ʷ��g��F�ߗ��{c�mb?V��w����7�|���O�Ӿ&@8��˓	�	�	�	�	�	�	<�c'�ɧj��y��+����{E��o���#y��j�R��'��A����b%+��,�㗀�sD�tϡ���>K��d��_xx�:7%�ɕi�B�X�N�;��.�c���6�B���.%N��z���?)�)٤/^Pk�N�4y����+���{�pGj��"uˏ�#%���7��/-Bp*�k3k���?O]�T�VW>�y����g|��t�����!κv���J���]|��ÆS/�H��_}iS%U^L�l�k�^C�n��,���֭[)���ԗXwh�5i�ҥK�l2�O?�&O�2Ee>K�iɊ�:uJ����LjYKY8�7W68;ǕHh�G�DB�-�})�[�jU�Y��ѣG��쩸��|lt����,oP��+���/m1�j\�cT������=e�*��1���ɋ[���G�0�*e*���ߧ^���Ϣ���E��O$@$@$@$@$@$@$@1����%��`��J
�`<$8Z&��G~�ԩ�Up\J@��d��O'�y��H���|uȹ�Wp��4�_UJZ�E��l|	���_�˗/#o�<hҴ��T��Y3g!c����^m�z�?�ލ���R�w�^̙3-Z��믿�}{�a��ٶ�q�>�V	hw6���N���)j�j9'��&7F�x�OB
��|>p�@���+���3g�`Ҥ�6���y�"�d�߾u�2gF��͔\�������ӧ#SF���׬��;�mkY�:ղFn��U��[�nK4���w�s�Nl޼	�������^2q�Z����M��m�v%�<�������n͚����s�е[W������;f,J�X
�s��̙31z�h�ە
��q%����1�P��g0j�ht��Ŋ��'0q�$��m
{o
�qa�q���d�Ϙ>~�Z�jW�J�_�~)+,���f�^2qվ�Mg���1��G��~��L`�$�W2����;���~       �g���
��$��!��%�/^¹+qv�\d}�~K�u�E�
7��o���߲%�5B��aΕ�S�o=������ճ���s�ʅ̙3�ߏ$�5�E��,)Y8���Ñ����>`��ɇ|��e�ϝ=��a̠w�AF��qQ�D�㥄됡C1h�@,T����u���3Ժ�Y�dV�j%C��(�c�ĉ*��ѣ��ܩd���v���F����+V�W_qK�����
\�0�Tw��~W>?r�.\�֌Β9>��c���K�5W��_Cڑ��/��R�J�=_�A}["�J9�gϡP������}��Թs�4q>z�&M>œ9sm�[��x��u��AѢEиQc�ʝ���s����tt�)��g�p��IlذQ���g��}�vJ�͘1>���g�c<���իW1j�(űu�V(]��������J$4j�#�y2�yӧbˁ�b�
5&d]�
��W_u�SO�`�94.�4������c���0W�J�_{	h欙	���׷�}��7��s��'��e�M�HEn$�`w���H�H�H�H�H�H�H� ����9$� IDAT�ܼ��a�p��A�cH�d�J�M����#�X1���y�+'L��&���Ѧ=`6�M�Ԥ&"J#�P[�H�F���l���*#�D�ڳ�]G}E֋�F�?F2J��6���Sy��Q�\8{�/���AՑ^֚�P��6b� 6}x�8���u��
�(�����M+��Ku{�)#k�XT�mg��ӧa2�P�r�@��)/8d˞�ҥÎ۱g�8�#���p%�[	�>Q_�s@��`,�.�-V4�-�F�pR�8�K$@$@$@$@$@$@I��O���D\��+W�cDZs�L�;��!O�<\V?����n��HV�*�j+��9`Α�+vۚ5k�r�J�fe�5P�2*����سg���Mʗ֭[ǣ�x"x԰����"G�x>�53��٫�r�O�T�pd����F�8eh;�6���C�s�(�%~x��W1}p�2 �{�ׯ]Ǒ?����[��V$�2���O��~�ԋ��\/G��ܢ��T��'O���ŭ>�����Q���p%�[	�>Q_�s@�� �#��D��S�ː	�	�	�	�	�	�	$,��%��}X�]����k�pm��r�0nGf�f̕9^~�ժ���d�
S` �&-`�}�@)=��w�a���E-��[��Z��Ӳ��	A�Q�����)�"m&�|��U��7�R0 (��W$$��^��	h�����vRG\�844���0-�8��~��H�&5b�-����!���G���Oi%	�@�!@8��	�	�	�	�	�	�	�#���M���`�u�s�{��G��P+9�R��%]: CF�2eҤ��V���޾m;Ν?�+W�"G��ȗ7*W��Q�g��=�1<�6a��g�`���p��muN�l�Q�bx�9�L�-˧y@�	x"���.�O%��f�x-�u�2��:g�O$�4	PN�~g�I�H�H�H�H�H�H �x&`�d���r�.��KH,��) �d��*5L���q�}A�3�	�����X'(��������?�S��w�8��y&��N$B[��)4�H�!@��q%;B$@$@$@$@$@$@$�3#k"��+k���!������YI��^������E�t^)�-�c+��L$@$@$@$��	PN�.��$@$@$@$@$@$@$@� �L	���6H�H�H�H�H��I��I��S$@$@$@$@$@$@$@�(3&H�H�H�H�H��
�I���#	�	�	�	�	�	�	�(3H�H�H�H�H��
�I���#	�	�	�	�	�	�	�`�	�	�	�	�	�@� @8I���$      H���ʕ��H�H�H�H�H�H �(�!       ��]�S��/`��$@$@$@$@$@���D� �G$@$@$@$@$@$@$���Ñ��	�	�	�	�	$n��h	�	�	�	�	�	�	���P�H6C$@$@$@$@$��	PN��q$@$@$@$@$@$@$@�"@�[$�	�	�	�	�	�@b&@81{���	�	�	�	�	�	�	x�����{��{����w6��H�&
*��:R�J��v�=K�._�����BC�r�@ڴi�+W.�ÍH�H��:
�I=�      H"|E޺u^)S�rS�H"��n^�t�U�V�S;<����P:�+nߺ�Y3eD��e�,Y����  xVP~V<�~�	�	�	�	�	�	�	�$�+��5kѤiz�X�h1�ԭc�xH����}�b%�j��|��1�y��I.R8�w���	�	�@�	P�3B6@$@$@$@$@$@$@$�(���hclįl�Ee"��(�:�>6�H\�h���<���������=��v,��F���ZF���ʱ��#���G��T��K�*��;X�u��5��\ǃk^��c�tl����w�1��|�{�W�qn�WƏ1:���~3:?�o����c�XGoٳy#*Ҝ��b�q*�9�{G�ڏ[Gm���q�ؚ�����'�M�����#�
�O�3�B$@$@$@$@$@$@$��('�x�x#�H�X,8z�(n޼�����6��Ȝ93�/�I�zb�(�߮R
�	&���t�t�P�x1th�9�g�Y}kT �7����w�w�Ɍ*�+cǶ����x�Jl۶-g�{�{i�*U�m�v�-6;�ۑ�>��
cǎ��"��k�\Ǖ���Ȯ^���i?��;�͖=*V��ݻ���+�Ãa劕�w��(ؕaFժUQ�|�O��w�~���O�ݻ��xp����_s�oߦ��믿0u�4�u����
�Sǎȗ7�G�Q��w� fϙ���/ U�T(�jY�i�
�2�Wm���4�N�_�t�����q��]j�4�q�+G�����s�|�\�����h�Qc�ز��x�#���x~�m?b����ؾm�G~�n/Э[7�3֣~��t�ӡDɒhѬ
��g���ph�#���eJ�����7o��s�!O����0b�H,Y�T]"����q��2�W����!��iӦa��شqc����@�܅���"g�h��cTz�M�|hmw������sM�0#�H�H�H�H�H�H�H I�exŷ+b����
�w����?���z��$�ۤ�IG�dP���(T��x���"�# ���6�x�j5%@Z`�޽��k����C�0~<̑°}�2=���l-o�]{�_�r��-J��^�)��9��%�Y�o�0V�*�ms.km5n��˖Ì��Y\"T��ɥ�Ǐ�`�|�Xt�KY=,44Zx�(Y���W/賃]	��1��v'߿����ѣF#u��x��1�
�A���"E*%��+�]��)�Y��ʕ+��m��a�?Yr��oV�m�T�-?i�֭��ղ�"<,��}��M�:Ű`$�������޽*��:n߾�o��{w�w����?��ڴQ�pxX֯[���S����I?EPt����Lb�xw�B�5k�B�֭P���_�~���1y�dlٸ���W��^��O�!!!n�Ic/�h�_V���<q8���9E���l�5n�o�,� v���#""�\���?|�իVa�رȟ7o���"g~3�/mR΃�
G��E� �~��'L�2�ڶC�w�ƚիq��q|��W�K�O>��x�{�8��Eű�A��IH(�ܽ����c�H�"��?�8�3���y�Ï>�ҥ�����!�U��_Ĉ��ѯ�,YG~����/��_V�K�K�-W�W���j/H���N0�����
��       �$A��`M�u�,��~�z�~�v��mR�#X��+[�-�}�����vz��q�	3"6XL���b�G,�y�F��?�C��E0h��K�Z�{������wЮ][L�0��}s��?��Z�B߾_�h�b8v�8���3g(Q��捾{"���kB.^������ƭ[�ֽ'菟�nQb����Q*3�H��4�?ҦM�2v�M�{��%�͛�нGw�00R����C�0e�T\�r�Yѱ}{��j������ٳf�έ[1�+�J����`k�S�o��Ť�G���]�ì�sp��u�ȑ]:wƋ�J:�6o���ժU���ѶM[lٺ�+4W��n�hm�+-b��{��#�+1i�ܹx�B.R�f��{!��G�#(�6nؠ�@�¨&��_�s?j���뇢E�(��,|	3� �n��7T""�y� B�0��`6���+-5l��:�X�"�n?y�A�c��~#�(�#+
H����!�~:v숩Ӧ""܂v��!,<�g�3ѡ};T�l���/"����r��y�j�TO��֗'L�5-Z�v�*d�:�Q���ՏK#~s&�[L\�~#F���S�P�`A��d����p�o�m۵njӔtخm[T�R=z}�_R�̚�o�[�`������3�߯�:YƼ#{d߹1`� �bG����z�rn���'W}�N�S^T�>c�޳� ">=z
,��u�(_~Ԥ�ƋF�����0e������W_AXX4h�bY�2���o���'[��@�F�p��
�aQ�>2�}#�B�s�ȹ����2��X�v?�c�Μn��w�Qm>�*��yիW�r�ٌ�7a���64Xw�1a֬�hӺ5z���ӧ�yC��U#_<tt�K�6-BC����k�ƪ�+�Y�`�~�r76��1
��       �$A�Y�e�i'�]���*�'O������2fB�7*����[�
�d�֫W/I�³�IG��h*Tp�ս{����'9��=��e˗�ԩS5r��oD�̚M�~�ŋ��Ç�ڹ�j��~P�P!ԯWO	8�7lP���vޣG��y�Nسg�*�9~�t��7mjX �F�mp�*�'�~� #��߿?
,��A
�튕X�p�M@<�ٲ�iӦX�x?z�.�;E+�,�j�@(X
��cŊX�p�M���O�Y�6x�L�ݒŋ�d�|%rhv�,���O���{E���LaT/��	j��Æ�y��vb�o1m��LU{8K�,x��([�d)ܺyS	K�y[VҬٌ�Ç�t�2�w�.7ReYUƴ� ��D������z�C%���~ʋ��'��7�@���P��W�B�Չ��k|[��	��!�,���ѯ,�mٱC��!�*_�����L�����Fl�Zl�_)�+���-Z�ā_����իB�_>K��҅ԙ2�*\�6T›�/R��U�t}|�_��n�.]�B��(Z�0�_��CG��ĉ��߬ٳ�e˖X0>������KRm�Æ
�xɲh��6.!��S�k��˼��۶b��yЏKw��|��D�6|��Y��X�x	��|	���c�үQu�����/0u�T,Z�f���V%�޵�!V��@	y闔$��\^�y�Z�j���V�&����}�ͷ*!{�l7f�͙mX�:�1c�b��i�٣'>l�˗/��Q��]�~�J��&�>^��I��Z�m�(S��mۊ���	��X���lq��ck��T.�T�M���l��㮳��gF���^(���l�RL��
�����ە�k�.XB��p�����7ƴo�A��l�Я^���]�b�ⅶvw���BQ�jU՟��[�_1u�7X�h����ُ���B8|�QcU^�O�q?g���`F	�	�	�	�	�	�	�@� ��`q�^޷w�Z۱x�8z�OU2����r~�~fѢEQ�hQ����ȒDL<+�t$�_����޷�k���VrT��d6���@~ȟm>k��Y�c�ԫ��_L�>n߹��;���a֜�Ȝ1.]���-?Q�E@�[�n��dSDd08�aaH�<��~eX8�F�5X��U�#�O��!����^M������Y3�!C����Æ*cTq�_?s��C�t�q��m�f��E�	Urݺ
>ĬY��)}zܸy6jl+-\D���BBC�n��q��D��R�[JEú�d��{Ň��p��4v�L3c����Z|�
�+��2��eͪ�+�9��`ɾ�ʕ��&�a~��qu���E=t�7��h�B���l�
���y,�m[�F���c%v�f��k�y�n<xH��ѫgO��JCe|5�׬�.֭Y�����6&��~=�Z�ڮe�\��v�ߘ�c/W�RkW�R��T�V
߭]��iҪ�5jTǎ-?���̙����ւ�!kr(}5Ϋ���v��o�NeUV�Y�?nf��u��G��iq��t�����%�>s��V�޺s
�׏</z}@�?B�-�@e�֨^M�#ڸtwO����,��`�mj�6l�3gLG���q��}�m��.]���yj��5Ȑ6
���Q�fMH�u9�J�w��VYG�x�^Ve�M��'!��~|����}Æ:�G���,F�T)��Y��x��Z,�W�>��v�5k��&M�`��hؠV�\?(r�R1��"/
���/ B��U����z�jؾm�"k�8�`��[|;�;��g�}���Zg�ٲ*�J�G��,�n��|P�&���l��ǡ�S��߸����m;��U�����Xǥ\�Z�������e����+�1�̇�;��!@8~��U       �DF��`{�����k�~�wk�D����$DeժUK5)ǽ���H�"y"��1J�i����?��S'�R�R�5-E�Z��*�j}�kR��lڨ>I�٦M���g“'OP�Vm%T�&�@��~=��ucF��_�,�랊�`m�U�o�����e�:R����OB��n��6I8��G(�G��&K��7o�!k��&�������l����i3f�¥�x�$���hv�R͈���	�[ج�U�&��wk�k{��_ڙ��KIk^��._�K�.�޽{�%sftl�/�*��,٠�ҧ�9�����������C�N�\�~��0v��֊	�fKs�&җIe�Z�*kk�
�cǎ⥗^�%4̭=���8�_�ւVy�V��l���Ǐ���aC1o�\C%�5������Ñ+g��R�E���Ub��=�*�z��I6"36��w?bcfk%��\�ZՎ>;�_b#Kְd:�=����J~k���w�fk�r��{�l`\�c�l
`�?ԨQ�6�W�OX��ժ�-�7�f�g�Z?k��J�;�G�`��@>����K�.WZ�Fu����6o��ɰ�W�z�z�D�?��U�1q�t��	
6��ի1n���q5��:^Dv'��ߏ`ڌ�e��O��J+�T�뚹��bƵ#8��MjTJ%�.�A�RB�v��R��1��.��64m�qcF#[����^2��D�����i�kƹ��"�j����yn�J�p��e�$@$@$@$@$@$@$@�������vTZ�뿗,_)a�mf?3�ׯ�>�K,����_8�����'�{��ʕys�V�%c�a�Ƙ3{R��u%[��A��;Ϛ�w��e4ka��q�FN��G/�ɛ�ϟU�e�\w��o
�FK�*!�dQe��Ξ�2�k7��G��7��9s�6��ϵf��f]8Jl��F)��1C:Uʽ�GMU���~ؠ���+��k��>x�v��q�`5j�Ç#_�<*sT���	UVt��ʾ�k�:��`��C�uM��s�b�ҥN34��d��ϟ_=�6($��s�}�v���W���+WT	�)S�Q�mR�[���"�������B׼�į������YCXʽnذQ]����(T��*+>�s�.�4ijx�a��c-�/_>4n�8�=�q�N�P��&��p��=�i���u�@W���7F���^v4��V�4y�f͎����N�:E�6i�� mJY��:^�����$ؚ�s��K��m߾*V|S	�5k��08�|��6�<,%|�O��*ܾsO�c���*��]�z0c��i��z��)!��g�H��ٳ��d2[���������Ņ�#c�Lj�	�ǫ���ϝ��h�Ɗ���'�0^�%�Ev'�?l�v���7^W=�^�]�O�������*��b2��m�r��%Rn�M�w7�� x��*Y
u��v?�n�&U~�ZJܨ��n�xq�d�g��h#(��cH�H�H�H�H�H�H�|�@R�7l؀�5�uX��χ6�_���Y�J�Z��cǢC��j�Q�F��,Y2�u8��'�ؾcF��@�^_۟C� IDAT��Tk׮�P�[��&h�3��y�ɺe�v1B	q�W�ީ��`%D��*G~o} ^b�<t���/Q�d	|�A,]�B�ѫe
�;�3gA��w`���j�J}�<��U_/Yu>x˗/Ǣ�K#�L��L�֭Z![��X�j-֯_�)�' g���S�>fΞ�̙2:=.w��"�U`�׭[�nݺ��8Ϝ9�1�ơ���7߈|���VX��Р�۱sgU������ɓ���D�^~��8{�\dyX�X��G��q��)���^���_�Ɣ�S�2e
����g��U߾(R�(�T~�P<�Njd�Z��۶EJ��$:u�W˖E�
�a���ZSU�n�wUq֠A`2c���~��f�E	���]@�.��s�Ψ�FE<z����'O���յ�t�%J�à���g�R��#�
u�ߝ�;VXƑ����Y~�
��q��s��}���/G�_<�+W���۶b߾}?a":w�\����c�	Jhԏ_�1��/�r:��߶mۨuqe�nܸ�'�GԸt}?�8E�Wԋ#�O�'s��J^�p!�߽�^=���Q�wP���5s�d�dH��/I.���֭j�_Y6[�l�]W��8/�.��;z�ϝkh~�I������]�v�]�]5N�>���C�����]��i��J����=z�M۶���V�Ɔ
�0q�$5G��kg��(�dMl�:u���}��8��i)�[P�~5/<�)�!����S���K�/�(�?��C�
Lj�G���5���f�8s���%j<�|������c�+�	�	�	�	�	�	�	<EIM��ϒ]$�����J�J��{��E\8�ު��S~�AO�r$���ʫ����/~Q�~�m��fdMM��	'N�P�{�衲e��Qc���~G���y�.x�����0t�0ܿ�۴��I��i�&U��������s�_�>�Æ
C޼�p��q8���F�T���}�>�R�хM�����d��=s�C����ֽF�
뾃��nݹ��c���G`�s�֥J�,�?���6�ܾ���o�w���g���ڻR�N�n]��#G�r�J%�ر&L���k��q�z]�����b�̙�|�o�A�U�XM�u��={�2�"����MZAX�b�)�z��p�6m�Z��J@���۪"6h���T??��W`aѿԪ�ʕ�Z?{�/�(��N���߫M�v��r�S����x1R�Tڕ�ڱ��+�H��}z+�^�7nb��8�����Nj/�B�N�9S&Cb�
�ٌ��+��⅋H�:%ʾ���ӧK�|z��Me��Z�;uB%,��~���<c-
�J��ߨq(���R>�<}Z�T ���&L��=X8����!����v�J�J��f���ν�9j��Y�fE�ϻ�D�b*��_��A�Cp��mt��ÇU����/�p��i������ݺ��G�|�2D�Χ8��x�'�p�J�+V����L2�q����-`�Ν3n,�[��P&�&KF��uyHʺ��m�a-%��ɲ��w��A�=P�\9�bPپԫ��'�d��8z�z�A[��:Ùp=���~�;��z������S�R/�=z˔�7��k��ǿ���~�Z��'N���A֬�Щc��ܲ��k�zQK���V����[��u��U�ΕK݋_{���pP4��1cǩ���8ufw����W���y@�	P�5:�H$@$@$@$@$@$@$�K��|��%��Wԭ[G��{�*CLj�)SY�ˢ�Gؗ�ر��`�d���R���&b���k����
���E	:�oV�PS��SdIO9��o�!GΜ�<�����?�R�ZI�h�i��J�F/Ik�D�w������'�#9�B��~XWm5�2��9΀�J��Ʉ:�/a��GK!��R��H����V�׳���.w���h��F�Y�1�����޷J�.�d�l����СC(_��LD��M��vp�wkF���'Q�Ha��.��Z���D�;WLd�[?���"Y@�BBt��G�s�~�'KY�U?^�D�dφ�����5�̈�GDXh��Ԛ�R��a����?��KD�j+<,4�N�t����,�kE�ƚ��`��&�m����u|��?K�����A����n�:��G�7ΐ��ڎ�?vD�g$��8��?dD���"���q<�z������lR~H�C«��]|Ey�ھ�l����e�85�L���΢H��,�m.S�!��՚���'�ۣ�+�F���<��+�
�����/Nƹ�8�Kַ���ǡ!.��Y���;�kc7��u�n�Ϣ�W�F�2��<(qj?����c��%��ƛ������`�	�	�	�	�	�	�	�@� ��p�p;k�`�<u��"
W֣o���!c~�02e����6M�s��6z�Q䪯J�2m�lۆG�� ޼�ޭ+
��o����o�����^ߝ]�{�gG��r�4"6;��Q�Fqvd���[�1s�(���[e蘛#[���<��n���sl���[��d&Gm�`�ױg��;��5򲂻q=r���x������8��|�9�_���y�<�4��Y��gd�z:ҵ�X{��Ugs���l��Z�٦�y��y�qN��k:qet��W�Y'j��D��ygq�U�5��o�Zq�o��{�c����pv�������X�q�(3&H�H�H�H�H�H�H��
�I��I����P����$����g�C��i�,�d����.���M<}�~ߒB���}���8w5c��(_�|�vb'��6oL*3�d�k�ʔ�ep�ۅ�0	�	$z���h 	�	�	�	�	�	�	��7P�E��	8����2���&a	\�|�#�F�,U�r���8cM�
p~I�N�I$@���D��@$@$@$@$@$@$@$�(�?c^!a$~8a��K �Y����`ߍ	ZN$@$�
�����$@$@$@$@$@$@$@>J�W��۶�t��ȕ;z暏b���L���8��1�:��˲y�WR�С_cU
Z��ҥ��si�x�>'  �8�g�l�H�H�H�H�H�H�H�����ؽg�Z��	�#�6mZT�P�R�rw(�����r��s�����:��? iӦQ%���>�\�i0	�	�	x�`/@d$@$@$@$@$@$@$@�������$-$    H�('f��6       ���5�l�H�H�H�H�H ����C�H�H�H�H�H�H�H��G���X�%     ��K�p�
-#      �"
�^�ɦH�H�H�H�H�-
���54�H�H�H�H�H�H�H���\�\9ov�m�	�	�	�	�	$Q�����m      Hj���Ç�%�[�Jj��S/_��\�sũ��z2�����Fn�#��s�cGn�;�?�1;v��]n3f�T
R�W�E$@$@$@$@$@$@$�c(����ˇ�A98��bǎ��-vbc.v�ȍ�bG �g1�bǎܼˍp�x�,       %@8g�l����Y����`�O=4��c��3�q��3��-������eR�7�������;�^�όU�+�����;n�ƫ�q�y�J�ӿے"7}�cWO��M'<�H�H�H�H�H�H�H��P���L��s0���ȳ.s�%~��G�|F�|�g�B�֞FD�Ӿs����;r�����+��Z���4{
@xr��ch7^�%��Ĝ]�9��o��"j|G;>��W5���#7籥�X����F�;:�       !@؋�2�}S��Ė-[p`�Ϫ�KW�A�q��i*T��"G�����ٳZ
�TO��=��	S�4�%X��;\�v��ϡ}����N%ų�@awF�<h ����s	;GO$���T�	v�O['N���w��C��ѡ};��fEr32nL�ƍ�cPp0��ۭDKƛkp�q��p��Iu��bA��z�٣����\$O���#�=�~ލ�l��6 7W!gʖ� �g�eX�o�n\�}�`5{���#.��7r�̉�:���q�ss'N�ư�#p�y/^��G�����0u�t��e���P�Q6���!      xfP��+#N���:t�A
�K�ܽW�/P͚5���q��E6={}��G�~İ�12�Y�*��.R��	�4_m�/A�r�7_>��ǟ�ӧ�߼�z�F��q��1��Hv��9,8Z���U���,v�[�`�m��oQ�\y�̝����7���am?	Ő����֭ط����58�>�����E��l��2�zp�s
O���<�R�F�ƍq��=ܼ�/J�,����:�"�jH���{<�.]:+nro�}���֚��V/M���K8t�78�7��<�,�"�5o�)��ժU���3q��
2��t�z��u;!�������'������8
��8�~       �g�`/�SW�SJ��/_�&W��.�.[�,�����[��IS|��&T��.�-����o�_�Ia@���а�ؼy3�v�Çc��u�ر#�֩�+Va��x��1l��
���!���G�͔)�5s�U���K� S���q�b��b|ߤIl�~����;®Q#lڼ	ݻu���Ա��y߮\��'�͊�c��!V|Lָ�G���ǔiӰh�\rs5�#����t�W�Y��6���^~�jM<�'Ξ9��y��W_�P���yΥ\'�!�z��Y���C߯�D��P�}����{���1a��=
~~frs3DžhҤ9:w�ҥK��Ə������Bno�U۶nA�?\��_�n��6|Gnzn��Ѳ�+bo�l��Q��y�	�	�	�	�	�	�	��o��E?E>��˾�~������㍷���ݻP�7����}�g�.�,"+��Ǝ��9r�y�O0d�P�ʑ-Z4Ǯ���F�Z�1s&r��a=��2��f�x�g�~,Z����G``�������H�oVz{v��}�J����h�e+���c�"G��hٲ�
	FΜ9Ѭy�ܹ5j���3g�\�mY�>#�q+W�u�ϘQ��-Q�0��x�/C���;���7��+��P�&3��̇&`��y(��kȗ//V�Z�-[�b޼�(�`>�<g�)��WzmڶAP�z�a�f�X�
��'77B���@���з_?�ʑM�Q��U��"3Y�<v�;w���!m��7n�n�M�~k��SԭWի��oW`�����V�W��ɼ����?��8
�^�?�"      H�({�G:XD�_"��V�QK�H�o:ܸ~M�5���P��{X�dI��챖,p�
�w��0���*b����g�~���ذa�̛��M� ��0��)�FX��K��…Q�ԋ*�F��5�U�2e����:�b��j�JQA�@B�&�P����{Qz�&�iқ�A)��RޙIv���nv'	�w��9�<�ޙ;����3���۴Ůov����i�{�	6��xW���G����8��q<~�v��
�i���6�Ρ��X��dkT�X��s��E��X>t��>�	Ff͞��͚!_�<f�弢���G�9'~�<{�ڵ���V���\��Jjթ�a�����Yjס[��}c���={q���i����j�p���ѯ�@����;wN����;���������
��6�w��Ơ@�^5����,c��Z��ź��8�^K�߫���(@
P��(@
P�p%�	TM��W#�|>©�d��G�E���Ѯ][��}��Їr���#� ~/���9¸U��q*f{=��R�D|*����M����Ŋ�����p�"�^���>�M�#G#��ڶm?�>|�ѣ����������
�
[��:�lY���Ghִ1��8f�m��?DΜ9q��iL�4	;C���[�y�
~�
�!�	���T�R��}t��ǡ�.hʈ�N�̓M�7��X�h>�ٱ�1�VѢh֬)v������m�!�@�[���գ'�{��#� ���O�^5�9W�v=�?�.�3g�a����f'?؜q1�v}�E�G��9�y�&���#��э�p1N�oݲ>���C�r�(�7m�8�^KʿG�K��S��(@
P��(�R���1��؊7�MF�p��^��m�6�7��	�xƏC��Yp���7n��׳g�b����t�:qT�Sֻ����w�<q�njŁ��Щc'tl�Z[@��H�._Qb��꣰c�6DEEb�	�駟�n�1v�q��X_ϑ5���^��c�L�+{:u����2[>w�0BCC�+wn���+x[�ɖ�n���cˣ�O%�<~X�<k�n&?#݀��`׷�"�a(�~�F���[�yƟs���b��I�����˜Q�P�p!���A<;9x�d��i<�ν��*M�^���w��`����s�.r�ʍ>}z�RE�~���/������e8*U���C��3]�~0	��ߣQ�Tn��sC��[w�q���T�W'��
P��(@
P���!�8�d�,[��d�
aS�W/�_7|�p��[�46��3�M1l��a;�-�M�`�zYl���yhu.&c7ks��-���v�������?�b�_��{#��~0�~�<��?��a��$�9W���!{�q��k�g\"�1V��`K
P��(@
P��t(�X�Es`�����s�Hb)@;�9A7��	���S�����[q��-a��y�(@
P��(@
P�:`����1l�4T�+����F75�V�sjvt����z+�95;�%�`5O��(@
P��(@
P@��uZ8��V8�pU�����[qΩ�эnj�8���薰n��<ي�(@
P��(@�
0�i�'Z�x�U��ntSPo�9�fG7��	���S��[º1V�d+
P��(@
P��t*�X��c�h��
W5Z��MM@�眚��&�ފsN͎n	��X͓�(@
P��(@
P�Щ`��p��7\�h�F75�V�sjvt����z+�95;�%�`5O��(@
P��(@
P@�Z�[�n�S٤6o���N͎ntSPo�9�fG�t������M��dҊsN��tK7�<���|窝�Z�۷�H���(@
P��(@
P�H��o���}��J�W�i�^oک�эnj�8������Ҹk _��&�߈��"��`lg:�iΩ}W%N+����s;{�,���(@
P��(@
P�:�z\�Ha�+WNg�I?ܻw�!W��I?��vjE����[qΩ���M�3f�G���!�^d�-2{W�D�-�T�ww��$�Vz�sZ+��*bύ��)[Q��(@
P��(�C��[�3?�I���D�L�bŊ%Z��ֱ�oT?~�W�\��y޼y�?���zvK�9L;�
��M�Ӧ��z�H��8<GV��b˖@괐��˪�^���G7��0Vsc+
P��(@
P��\L ��n@"�(D�0)nܾ�cR��I	��������u��Չ=r=ߨf�ϙ��9���zq��w��Z
��q��k�p�t�����/kz�sZ���*�X͍�(@
P��(@
P��p{ IDATp1��?u��}��1^"@��D��N
�
��A�b�TӅ7
��i�fG7��	���S�Ӌ`��j��^����V�jnlE
P��(@
P����	h=���=E�����?}j���/q��+���߈p�BddF��"���H�w�H��m��8%`��%o���ntSPo�9�f�7�j��b+��9���M�"���؊�(@
P��(@`��Ŧt�/�7\��F75�V�sjvzqc�V_-��˜Ӛ��*�X͍�(@
P��(@
P�p1����F�r�\�[@'8��t��j�����[qΩ��ōpt}�ݢ�x��yXE&�
�L��9���x��f�X͍�(@
P��(@
P�p1��G�a�@8�}57cu�cn�z��эVq�i���J;5;��MM@�眚�^ܒc|�������W��GV\�|�#��#ԭ(2=O�͟7EN�]��9���x��f�X͍�(@
P��(@
P�p1���Xc]o�W�vjvt����z+�95;��1��/`�y�
���5k�Z��C
P��(@
P��@�0N�D?)o��N͎ntSPo�9�f���[�(��V���J/߫Z�f���p<�(@
P��(@
$��$aO��:1����F75�V�sjvzqc�V_-��˜Ӛ��*�X͍�(@
P��(@
P�p1�.VИ��MC���N͎ntSPo�9�f�7�j��b+��9���M�"���؊�(@
P��(@`�be��!��&�ފsN�N/n����Vz�sZ���ZE���(@
P��(@
P�.&���
�8��
W5B��MM@�眚�^���W���2�fG7��0Vsc+
P��(@
P��\L����p���j�t����z+�95;��1V��[�e�i͎nja���V�(@
P��(@
��`+(�x�7\��F75�V�sjvzqc�V_-��˜Ӛ��*�X͍�(@
P��(@
P�p1�.VP��.(o��ҍnj�8������X��Zl��9�5;��U�����(@
P��(�b�]����]P�pU#����[qΩ��ō�Z}��J/sNkvtS�`57��(@
P��(@
P���XAǻ���FH7��	���S�Ӌ`��j��^����V�jnlE
P��(@
P����	0v��2�wAy�U��ntSPo�9�f�7�j��b+��9���M�"���؊�(@
P��(@`�be��!��&�ފsN�N/n����Vz�sZ���ZE���(@
P��(@
P�.&���
�8��
W5B��MM@�眚�^���W���2�fG7��0Vsc+
P��(@
P��\L����p���j�t����z+�95;��1V��[�e�i͎nja���V�(@
P��(@
��`+(�x�7\��F75�V�sjvzqc�V_-��˜Ӛ��*�X͍�(@
P��(@
P�p1�.VP��.(o��ҍnj�8������X��Zl��9�5;��U�����(@
P��(�b�]����]P�pU#����[qΩ��ō�Z}��J/sNkvtS�`57��(@
P��(@
P���XAǻ���FH7��	���S�Ӌ`��j��^����V�jnlE
P��(@
P����	0v��2�wAy�U��ntSPo�9�f�7�j��b+��9���M�"���؊�(@
P��(@`�be��!��&�ފsN�N/n����Vz�sZ���ZE���(@
P��(@
P�.&���
�8��
W5B��MM@�眚�^���W���2�fG7��0Vsc+
P��(@
P��\L����p���j�t����z+�95;��1V��[�e�i͎nja���V�(@
P��(@
��`+(�x�7\��F75�V�sjvzqc�V_-��˜Ӛ��*�X͍�(@
P��(@
P�p1�.VP��.(o��ҍnj�8������X��Zl��9�5;��U�����(@
P��(�b�]����]P�pU#����[qΩ��ō�Z}��J/sNkvtS�`57��(@
P��(@
P���XAǻ���FH7��	���S�Ӌ`��j��^����V�jnɶՋ��u�����U�f��7��7_�dk��(@
P��(@}
0�g��5o�%d�}ک�эnj�8������X��Zl��9�5;��U���[�k��a(&O���[������3dH�f͚a���Ȝ9Ə��˖�j֬��˗#E
�dg��(@
P��(@}
0�g��5o�%d�}ک�эnj�8������X��Zl��9�5;��U�����V'O��7;����Gp��=�>E�,��3g.����^��([�l"�9q��o����7���x�1}�tԭW��3g�y�OgPvz�>}BC��Z�*�U�f���Ç�{�n��=�c��af�o߶�N��ڇ�{
�O�L�2CX�*Y
2fx���R��(@
P��@���O��y�P�2�S�����[qΩ��ō�Z}��J/sNkvtS�`57��~��g�5ǎ���r��b��(�N�8�M���틍7��P��w�矛3x� ����_��o�i<�߀�l�c���b��ٲe���͎:t֬Y�е�J�
�|�	F�ɭ��A�(@
P���!�XuH�Q𦡺(����F75�V�sjvzqc�V_-��˜Ӛ��*�X�-V��w��������#�*�&M�8rx��<o/�/^�/�wnݺ�?�=6l܀��ŋ���J��蕷)Sz`g�N�S��>��
����k��{�<!(@
P��(@
8/��y3=��MC�*�N͎ntSPo�9�f�7�j��b+��9���M�"����Z�ٳ;tD��I��Z��5j�Ph��M._��5k���sȖ=����Z<�W��^��ŋ!,,mڴ���w���������Ǐ�@�ti�Ă'�(@
P��(@�;n��#y�P�Z�S�����[qΩ��ō�Z}��J/sNkvtS�`57c��7o�F�x��YO2��g�}��*}��9s�ѣG�x�"������c?��lذiӦ�>�(��s�"##�=[v-V)R������5{�3}z�&""�.]��?��d��������h��׬�۷��zn[�5�����/� **E�E��9�O�>ÓǏ��R�N��odt�R�#��3{�SDdBCCq��Y����_�e6ֱcǢK����R��(@
P��@�0N��>+o��N͎ntSPo�9�f�7�j��b+��9���M�"��܌��u�;v�����%�Wɚ��e˖b��I�*�%�fɒ%�(D��x�b�[����7{?cƌ�_���r:w�ܱڊ���������ލ��3gΐ��%B��u�ֱ�)Y��\����XqP�,���֫[S��"�ek�,�n�X�^�p'L����*U�`��I

œ9s��Ė��~W�u�"�6���������}��8�ʕ+#00����@
P��(@
P�H�I��g�MCuaک�эnj�8������X��Zl��9�5;��U����lu���([��Ybe��;���w˖�(U�$
*k�.^B��p���vG'Vϟ?իW7;�Z+K�B�֫G�9r���^��iw��b޼y��֭�СCa�_.�a|�����A���_��6���ˇ�'O�c��)(@
P��(@
���C����7
��i�fG7��	���S�Ӌ`��j��^����V�jn��ʕ�0b�yh�n�ZT�TI��7n@��5]Aj�3�@Ŋ��Y�����I�x߾}h߮���J�[<z�h����3��.]��H	x(@
P��(@
$��$�O�S�:.����F75�V�sjvzqc�V_-��˜Ӛ��*�X�M�8` ֭_o�!s�L���pwwS�5
�S�Ο�`־I�ƨU�Rz���#��fM^�xa<Fl�|��1xzzʯ�
�E�
B�ܹq��!2�?1�S�z5�\�����7Ξ;���;����J�4i� C�q�~��+�ǝ;w�j֬jԨ�ط����rձ��:��`Λ7N�:�6'؊�(@
P��^���F�ZOě��ܴS�����[qΩ��ō�Z}��J/sNkvtS�`57٪m��ط��[υu�{���N�>
-[�4����c�쳖f�(�>={���Y�˖-�-��&���Y�1m�tcߞ��p��U�s�>}���}��?b]R\�޴i���k�Nl_�����k۷mG�=̾������Q��f}����!��i��(@
P��(@
P �'|"��7
Ձi�fG7��	���S�Ӌ`��j��^����V�jn�U�-p��c2dݲE�G����Q�F����\�ᳵ0�Z�j-ܽv���*�۷/6n�do�ʕ`ժI��8q��3s�-RS�M5��铧�|�2�����w̮k�ȑ�ޣ��`C
P��(@
P�x=�_���>o���N͎ntSPo�9�f�7�j��b+��9���M�"���d��=zb�m���oݺuq��yccǎE�.����СCh��3�{�Ҧŵ_���������y�&*Tx��`��ŋ�9s&�q	����ԩ��~텢ӦM���s��:W�P7o�fl߷o2�f��̙��S��ϝ;���{���5k�8=[�dɌcG��m���(@
P��(@m0�v}TGǛ��r����F75�V�sjvzqc�V_-��˜Ӛ��*�X�M��>}f͚eփx��o���k�J���7�m�͛�ƍ[����K�Y���{��vq>����[����Y�R��x��\ƏG��;Y���s�⫯^��u6�S�9ʭZ}��S_�gyR���ŋ���{����-�P�L���F�(@
P��(�z�^��u6�4T������&�ފsN�N/n����Vz�sZ���ZE���V��6lhփo�F��`~���r�.R��z����ٳƯ�=
ݺu����ЦM�{����y��F�3��.[<�X���ճ�l�j|���c�Nؽ{���[o��C�ڬI���p��%�W���kV��L�6Mԩ[Æ
C�<y�<��(@
P���!�XuH�Q𦡺(����F75�V�sjvzqc�V_-��˜Ӛ��*�X�M����B��?��k�[/^��[q̾}�йst��	#G�0����̇b�WA��9�����/�>X��I��h�b�xE`��w��
HE(]�J<{��x���ҥ�0~�x���X�5jĪ��#Gмy����w�^f_��s���ƾ�w�[pgΒŊC�R�̞��)Ʀ�(@
P��(��F��x*�4TǦ����&�ފsN�N/n����Vz�sZ���ZE��[}��[t��1V/���E��}P���Ν=�+WbÆ
Ư���"�/����3]�v5�Ϟ=�ء#"�O���������7h`vo�Ysf�A��_?�<z���ׯ��l|���(_�<��#��d̘K�,�G}d��ɓ'ѹsg<x��k�nn8x�`�m�-�>���;�9{؜�(@
P���$�XK�H��𦡺%����F75�V�sjvzqc�V_-��˜Ӛ��*�X�ͬ��3dM�̐!=D����f�l�|���|O<���Sf�U�\5k�@J��8v��o�n��ɓGA�4�e;-�b\:tķ�~� k�,pss�F�^���[[6��9~/���X+�E��M�`Μ9���8�Q�(@
P��(@�0�x��Ǜ��ph�fG7��	���S�Ӌ`��j��^����V�jnf�D�*V�n޼ũ�R��cƌh�i3c�;w�v�:�믿�+u��ظa�q�h��84��3�-�̶��\9s���ɓ��-��ٳ��\?^�萣8�h�"	���g�6�f��(@
P��t+�X���;p�4T�+����F75�V�sjvzqc�V_-��˜Ӛ��*�X��j��˖c��ix��I��)\_M�
�ʕ�u�͛7ѡ}�8��lٲb���(S��YZ
�� ?~�#F`Ӧ�V����1{�,T�Z�`��_0?NS��}�/z�鍽{��ٶb�
X�d	2g�d�X�q�
P��(@
P��`��Z��4T�+����F75�V�sjvzqc�V_-��˜Ӛ��*�X��f��C�r�
�ٻ�_0۪Y�����o��hҤ1R�Li��a/�f��
�O?�lv\//�6�E�.]�񍌱��rl���F�y��/Ñ;OnT�RE��.\���
��]�`̘1ʕڷoV�����Ǎ���L��.W�,ڴi�:�|n�O�X��
)@
P��(@
�F��nJ��@y��).��i�fG7��	���S�Ӌ`��j��^����V�jn�����_}�Y2gF�\9����P[ӃD�|��=D�G {��Ȟ#��}h�����o�t������w�}g��E�P�A�x_�˗/q��}<z�H>�9G�H�:U��e�(@
P��(��]���W����u�����&�ފsN�N/n����Vz�sZ���ZE�����@��;����߿?jT�a��t�'L�<�,���L��g�Z}.��،�(@
P��(`U��kN�4T�+����F75�V�sjvzq���ѿ=x����d�&�\�Xn�8��[�R��$_V�2�V>��U���[)\�x	5k�2�L�&
*(�b���ܻ?V�#�G�^=��&�(@
P��(@�;祗�y�P�R�S�����[qΩ���M�3f�G�����82{W�D�-�T�ww��$�Vz�sZ+��*�X͍��t邐����S�6/Y�)��a4H
P��(@
P��Z��y��kcC
P���)����J'��nx���D��p9�0���~��
�P���[��y�Z��?�K�����Ƹq�k�.D��-�x�J�
�{�B�~��꠮"(@
P��(@W�zܪu+W��uP A���	J��(@
8'`�ߟ�S;7jM�d-�8Y�?q.^�۷o��S'q��u<z�iӦC�BQ�|y�l��sdO���W
P��(@
P���
��Ч`}֍��(@
P �'�=�L
P��(@
P���k`��y*
$�@B�g~8����nW��WZ����(@
P�HT�����)@
P��(@
P�Њ`�T�㠀s��z8*BnW�F�f��(@
$/�ɫ޼Z
P��(@
P��@�`�lK�׹`���y3��(@
��`W�&���(@
P��(@��99(�O��׍��flA
P�p%��TM^(@
P��(@
P��9(�b��/(`��؂�(�J�]���
P��(@
P��\#v�����7|���7���I� IDAT`���y3��(@
��`W�&���(@
P��(@��n@$�r���WSP��G0�e�+�ĉ�pW���=����L�28}�t,U[_�b�i:{p�V����N�o��:v�ܹs�璌mE�k�/G;1�&�&}zO)R�ڶE����%���0�(Q���s	T^(@
0�a�8d
P��(@
P�����3�݀�*��>�0y�D�N�!/��wE�8qD����������m�1Lv~B��k�_�z
E�1����`+MN�!�}�{��ɓ�0a��Vӄ>�e8����޽/^Ę1c�t�鏡�nJŁR�Hp�	N��o޼�����~�ʕ����7p��=y�������{Xdd�ݝ��x�^GF
P��(@
P�5
�-.�S�-��gЩC{)e��_�o�ى�G�"G��ֵ+�U��Z��F�-����ܹsضm+���5���w1n�x\�v
o*�1cF�͂��d���q6�T��
���",X�&M�F���={�`Ӧ��ٳ'�{�]���O���3�/�G��b��iH�>�<�X=<c�ܺu�r�Ɛ!�����=��Ç㯿���Q�1h� �jc[}FDD�f�hڤ)p���۷��ϗ����Ϗ�C���JǺθV���!p�����5�9{���ժc�7�������x�"\�zo��&���00K/F�ԩ�Ν�`֬Y��п���/_b�С�v)R�C،9
�'OB���z��E�:<M��Ϟ=�c�%^�ƒ.]Z�ީS��~�z<���ڱcG����r,��9�w�eK�!C�����'�=|����_o�P���ѣ�f�*ۉs�n�
����B�6mP�By��k���h���51Fq]�ڵǚ5k��x#�#�n��Xc6mg���޽�3��ѣG���|�rYk�(@
P�	0~}֚<ӹ��}�v�K�A�jr�����رcx��	&M����M�p��IL��%�hJ�J���(@
P�����:~'LF�n]�#G6�����'�W�FD?�|
���ŷ�w§B�7^��W�6l(��χ޽za�����o|5BŊq��Q�_�����z���h̶�/_"0p-�?.C`�ᯏ�>��%R�LiU)>��aÑ;On|�yg|���x��	�*�����ݧ�}w}�K�^۶o��
4E�C�֭�z�*��a�i{}�+�ڣC�H�&5�W���s���oc�=2�[�fu��t4�"4?s�F�%�iۦ-4h���Jùs�"{��h��[�n����о}{�=͚5�ᅬ.`Æ
�8q��ö�~9�KԭWO��A���P�n]\�x	;v�����A�ӧϰ}�vܼq�؏����t��CF��q��I��1�G}7j����Ǯ]���/�0x�`9�E!s�,hذ!B��q��=���S�׮];ԪU������9s�����8�9�^,iӺ
�ԭ�F�|�ż��Qe4n�$֘M��wmӧϐax��u�~�:�ݻ�o	���(��mT���X�j���_�̈&���{�������Jʠ���.]�G�B��$�D+p�'��<y�̙2�K�.H�&-fΜ���{�ңI�&��Y3g���H�*���^�d8�6�Of�X�A�h�bٯ��5��;�>{��
��o�{�I�ܢ�-[��s3v�\��9���>)@
P��(@
$���`o�8u��޹��~~9r8�Tĉ�Gp�쏘7w.n���\�!���S	��Ƚ�{WđC�2e
���"8��J
y�X��(�M��c��}&���-�MC`q¸�_q���֠
a�`7n܄L�ސ�?�3f��
˗X+�b�nÆ�Ȝ9���oԮS��=[}�m�E�(V����?��#4i��r�iWlh(�.\�?�9r�_A���'�Q�DXiX�߿�a��Q2����<~��mZ#00iӦ��o#��V[�`C�A�W_~%�C��_1d��X��
B�*��C�Ͻuws�W/xyy�e���FF��!��-]��Q����prSq�����ŋ�۽z��_|!�!����/�ot\�d�\!.V۶o����;�-3�1L�+�m۶X�t	<==c�ٴ/�v��&�?�����X
<p�@�*�c
P��`l�Ν;�0a���mɒ%�I
lܰQ�ac��X�;T��;ür�
fϞ�~���X�br�b{�Q�F�OdV�T�x5ӦM�o#_.RX�
�71
��������1�e��c̘>��8a��)%�h�#-̩���D
P��(@
P q��>qD�,^�eʕC�n�e�[�nC���W���ع��?���e|�a��ǻ"����"�^�.�m�ϴ��[?��ɍ9�t�N@��,`/��ܹ۷�7hPu�Ա{��������)q�1���~��9s�?�A���!�=*wt���)�K|��^՟�	???<xH.l<h>(�A��+6�ڲ��֬1�S��O&�~�L�!C��~�]n<u�T�U�b���`[m�
��Ç�-�{�3gb���3w���w���8����Z��bgӗ���c������Ù3Ȓ%3Dj��)�^�z�\�!�܎;`�ʕ�kѧ��
��xl�X�mx�2|5�w{�7NG,L�q$6���l�j'V���Xa��b�i{���k���(�`;N���#n�޽x��7���f�bk��O�b䨑�����޽[>+A�ħ�ʖ-+��
Z$�@̖-�{�G����.�8	ٹ׮]ŋ/���ڟ|�*U��O&�
�ؕ*U?��3~��4������l�M7��kx���}�]4o�\���D�PnC#�}��;(]�����%�(�z����z�W(�z��
�3�[�j%���+w.��=ӗ�H�A*ډվ�%B����d�ѭ[7�51~�~��T�����1�[;��clgHN���װ�۰���x�c,�ټy3��ً�}��mf��k�A��U��޳������矱U|�������z��c?x(@
P��(@��s��yF���N����ѳ�|Ff޼y嶢�6o�[�6j�P��e-8h8��]m۴����Ʒ�������w�����+Vۊ�a;h�3��!�'[������Oj}�����r�蕫�+du�X)�;6������ӱ/#
��N,\������+�p�cw}���ҦM�<�(�����5lol�k+�
����7���͛�^^򾦳;(Z���V�b��eo,ƃ��#G� ((Hn}-^��EW����ݻ7���2d� W�9���3���ʃ��ϡq:�ݝp׮]e�/V߿w�`�`�x(@��`lG�2��)_ G���ҥ���ͮ]�ysf������6}����ۿ��ݻ��-[ʳ�V�Ň��I��6D�*��}��a��-�p"���C�УG�S�\��:�Ϙ�j�r�[��ӣK���0q�D�(�.ڵkksb\ׯ_��ʗ?�������G�B�<yd;��؊E�����s��#��{pss��1=��u�}�[�na츱��"������Fb�`���ߣ�睤������:�ʕ�dX=`�@�����~���k�U����c�ر�zM����g���>���05�w�v����O}.X��f=m�Q��(@
P��(@
$g=����+�ԉ��dbq�o�`̘q8q�(~���|tR��i0t�P\�t�k��NĬ�1i_ֻ��8��ޓە^�t	�s��С�Q�T��g
spr�����
��#��Λg�Y\��}z���Ϭ����b�F�v��}A�=�a;`��m�>}�u��b�ƍX�b%���+W�*U
͛���U+��t�`�^��p�Ѫ�g�Z�c\�tÆ
�+�-_	/_���dF�z�e�.V2�9B�R�~��Cdɚ�x��4t�����r5s�P�By�8~B��ݙIi-��"�3�S�N%��7�qc�Ʌ<~XF�'�7o�Y�۴iS|��'��7~��}.Y�Y2G?x�-r��a���մ��go�Θ�c�"�w.Q��ר!�,�p�������/�؎��-�Ŗ&�2e��=zL��"���rK�:�k�~��x�R>��𼌸`ˡ����u�m�wl߁`欙чF={�D�&�Q�Z5�r�̘90n�,�>>x�`t��&���r\���d`ٵK����\�+�1q�d˞M�Z|��V�Z2>|����z��!(X�`�0�r4��ɓ'!K�,�z��2T����`ѢE�n�z*TP>ؑ�v��c�q��%��WZ�rh����kr˚�5kB|��Z�7�� >ej�����m�S����v��r;[p\�����@
P��(@
P@��	��Ύ
�����6T�2�5;ԁ��{��,G���`�s�w�}��ի!�x�5�L�{��J�*VW��c��	�Ǐ��r�ʍ#F�g�%vo�ѽ�|��-�ܹs򾡸�$�s��m�<�#G�����6�bA��>-`��b��i��m��u���X�b�)���Xٺd�R\�|ٲeE�N���#_�pA�7���}9���^[����9g�\��C�S���ϗ�1�yY:oܸ!�G�}ܸ�Cl�,�+f˚
mڴ1�U�-v\�|92�� �lx��������7P�pa�S�xγ���7[�7NgL����k�Bj{��k'��͝��Ϟ�+��F��~���S��@<�t6�&��?��ܹs�v���^��⏆����ꕫx��)���F�!W��
��=J��uP��'r��ƍ�`X�y�;�X
}X��מ<y�A���Y��9rD���������?A��?F�Z5�a��d��j��K�`2x�ܒ�B��2P=f�

���m����cࠁ�eG��Ԛ�[|zp���r%��1[����#�2d� ?-*�r��k��^��g�e�ظ��ϟlN
P��(@
P@��
�u-�S a�z��g��:ۗV�O��쭅˯��z<�O�B�ܹ�1cFy����c�!�x=3(@�
0�S9�X�~�]���?�'
ϼ�++oEx+V�~��3<
ŗ_~g,��S��3O6o�b�R���sv&�С�|~�C��v�:�E��l�l�BX[��g͖�Y��Ç��
6l�ܳg/,]�C�
���k�6�ަ��q��Z�7.{�������̡��8ǨןT7(@
P��(@�`���I ��yt�Λ�j��9�5���m���?~�Kc~���u£)@
P �����矘8q�w�f��d挙H��,�-��3�o߾����x�����|����3}�
�
�7
[>����N�?�x.���5<�d��mr+��ӧ�չ*�+W0{��W��0s&�zC�CP�Fu����왳X�lZ4o.���J��#�c��b�E���
�����Ll�A<��V�����ya�i�1��
��U�b�
P��(@
P�:`���q��Z����g�[P��\I���j����2=z�{�+��ϻ?~��9((H>cW<��o�a����zX<�b���r���ɓe�+Vෛ��-/"""�3>L_��e˗����lذ�����q��"W�\��9_|1Ynk,�kkk���6��N�8�R�B�~��39�޽�T�R�g�:����r��<yrc�A����a8p ��͋����~�0 ��k���(X��v���̝3W>ceҤI�o�3��	��9���m�^<_�޼0�qk[�)ї�Z��/^(@
P��(@g;+��)�
��ׁ��flA
P�p%�v�y��e�zw��!�P�X�d)�>��e�Kb��-([�,�֫�M7�?����ҦM�O?m���YĊ֕+W k��Ț-:u�d��q͚5�x�G�̙���d�\�paԨ^~�~x��)�����c��r��'N C��hժJ�,����c���>R�L%�ߚ5k���ZC�R%�V��U�TA�ƍ1}�\�~�3eB��]䵋������+gN�6�ŭ[�d���W>#�h�bhѢ����_��z��������S��j�x����ֹo޼)-��W/�ʕ�G�
�#GN�Z�R>�8}zO��x���e�_[��)l�^l�mo^�b�;V<�x�mҺP��2d��9��j�DX�(@
P��(@��,�89W�׮g��W���flA
P�p%�v��s�N�ڵӦN�+z��(@
P��(@
P@���[;�<y0v����7c
P���+	0�QM����/��+ok֪�J5�P��(@
P�����dYv^�0v����7c
P���+	0�Q�ŋ�>@�r�\�޼
P��(@
P��@�`�lK�׹`���y3��(@
��`W�&���(@
P��(@�Z���U��X=
P��@��@�n�p��!M��o
P��l0��(@
P��(@
P Yh6vV�Y��%�E$��?�(@!�H\�t%�.F
P��(@;��(@
P��(@
P�з�V�(�G��u	wD�]��=P "�w��m��n����{��]Q��(@}0�w�8z
P��(@
P���r�" 5j�C�[J�E
D��
ǁ�[ѶUs�P��(@
8(��A(F
P��(@
P�����o@��ᖒ+��=�8�����]�O�gvG
P��\W���֖WF
P��(@
P�����.`�(y1�g=�v��e��8��
hZ�����Q��(�Q�-�E
P��(@
P��@�
�5>y�����Q�a��W�4i�,�%�z��q��7
$��$��i)@
P�е`]����(@
P��(@
P�Q=�n���MA�y���B#,\�
�~�(��~�:N�������aB�q��Wm��u۪sB�7��q�z�q��=s۶mÝ�w��3=|||�۸1R���s�;v�$����v���R��(@0�$�(@
P��(@
P Y�5�v�v|ު��/F�0�Z4l��n�V�Ю~�:		F$Ŀ���{E[�>��[�*���>���z���L�`yQ�ڛ�a~ǁ ���g7D�gϞ��`a���ay��^���!<5?�c�����M�c����s���0_Y
��r�>��n	�#%��K/a�̙x���ХkWlذD�O>A�O�%�ģ'��cS
P��@2`��'/��(@
P��(�\��#
�6�G��-��T�͛�l��*T�fܨ~]���˿�C��,\�L�3���������,Y��m�v�R�
v�څ�A��\�r�[��x���c�ܽ�fϚ�+W�"_�|�ٻ7�+j�o�,YѶ][?~ǎ�}�
B�1g�Lܼq^�з_?xy�իW1g�L�>|�F
a��ذynݺ��sg��_Q�����<y�M���Q�:��C���z��R�L���ahߡ�z�x#SW��2G��+�E���b֬Y�c�������!�w�`��x��	fϚ��1�z�F��������#d͚m�
�c8z�X�y���ެ����cգb�
h׶
:th�������Q������+�1c>�mڴ��%K�*v�—_|!�+^�}}��q�C�*Um�o���a5��nt�wb��f�/b���(\�0<x��S��t��h�S�|�R�§N�FXXʖ-#�?"##еk7d̘Mj_� IDAT�6APPR�N��:��;�jW��eP�d�ܽ{k��_�…�u��Ȟ#;'��N�N
P��@�0NxS�H
P��(@
P���tGEaۦ�8>+�Eܺu+ԭW�~�	�������1���_~����n�:|�i3L��+�͟O��6o��9�dU
+PŪԱ�G�d�Q�^=�p�S�̝�(�F�@K�;v�X�[���Ս	(�0j�hԩUe˖�?|���w�)S0h�`���Oj�D�uشi3��씡g���^ݺ�fg~��L�<
4@���РAC�L��&OFժ�P�|y�:y���ǰ�#cB��q�����!��k=z�\�Y�L|��9�/�L1s8&6m¼�sd���
�njA��ߗ�vF�se��\Q��k�`�u�[�^�y�W�Z�=.S��z�E�
вe�o��/����Va޼����*UB��5�k�.|��r9.l��>ȕ����2�8��u뭸o���o�v�2��$	�E�z��e�?y�y�t����A��ʕ�iӦ��.00{��C�Ν??�֩];u��G
�gH�s��C޼y0q�D8��׷1�W���)Sb�S�믿b䨑x���M��bE�b谡�5�{�C�(@
�E��^*�qR��(@
P��(/����˕��V���7oބ��� *
�_�.B�w����_���F��0DDFʠ0$d'v���e>D�>�����9e���&�)ܬI�^�i�y��?^8��~f��-��խ'W>�����/^�xa��XE�y�f�6n�5H�6-����[cGH�6k�+W�3]:<y�:u� W_֭[�7l@�t���S�NbϞo1j�HL�:\
�?���Ճ�x����0	b�&�
���cp�*uz�	�p()�׭+���5i��W�A����
/_8+��[x���V��<� Y��x^86��I=BBBd�a�&�N���m�@��YӦX�*���'hެ����e��-��e���]s��M���*�!;ܶ$I|��}|������=�
�9s�}]�/_�cٲeV��;���>z�E�6�@�=�!�ae��S�J�Ν;�@x�ҥp��ܹs�>���oq���pt����W��G>S�����d]~^<(@
P��(@
P ��=V],����g�B��A۴i��;�l�r2����O������8p`?�
��;�zr�͚b��?ҥ�h�k�h-��+�S�B�
͛7�[E{zF��/7�E�4���G��eK7o������OEܩ֯+j��†�5""�?3g`�r�gw�1����^+B�`�hټ�K:Od��=�<��`Tű͚5�ߊ���
p[aۡ�˕����ذ8z��m۴��&�j��U��6i��H�&?~���
���4�6<p��Vc�+8��4Ś�@�I�F�����>�k��v3�7�g1;��Ǚ-���s|M_�+WF�ƍc�ʰx���H�.�q��8���kt�����a���¢Ec��5
jj����O
\�tk׭Ž{���'�ؑ�c(@
P��&����(@
P��(@�d!��X�����Ç�}�ȕ;6oقoB�!������
������Ç��������Ǎ��Պc8s����-uG�����W�c�+V�LY0~�~�M���ࡃ8x�&����+�c�Z�*6nX����ˀWl�\��R�[��w��0q�X��
��q���(��hݦmL�)����}5�cɔ)&����zM�6����!|��4p5lh��5�+��u�7Ŋ�������e;�o�ܹsa��-�������~+V!S�̱<GjխC�NV��ퟫ�g��0�|���}՗�~3e�"kk\��˭�?����{��Ў����F����n�n��3�ӧ�0i�D<y�Dv��Sn5.^�׼y�q��Y:Ŋ�o��Ç
ǽ���t�xxx�5�fUۉN�a�ѣG��h����d�k�I
P�H4��Fˎ)@
P��(@
P���`��@�zud@(�
+^����׮]���c�*Mj���W~�[�n�ȑ��t�RܽwY�fE�֭Q��DZ�����̞�kW�!G�\�ٻ7���6~�vcb���;w��~�r��w�b�9���U�=��b��w��s�d�aϟ�aÆ\�[��[�0{�L���M*�&���'3�\���+U�K���~��=z`���ȝ'e�U#����燠���s����ȑ#g�X���3g�l���ؽk��:�ݽ'�+�9g�\�ի7�.^\�5f�h�U�={�ĕ+�Vt��~+�!��/׮�6��{�B�����ŋ1g�\<z�V�Za��Uذi���9�%�+V8��`}\[�b̘ј={�+���غ#z���m�n��(��B�kb���p&�>|7n�]�@_<#���k��gN���{�޽;~�x.���|�lي;vȕ�ٲeŬY���;�ѧO�+��i'�%�{��	&�/ǰm�6�5�� ��7�%�`�(@
P���3�����(@
P��(@
�V@���3�E!L�l���f� ؑ����״�qq�m���!o����FF�ۻO��,�	"��kP��=ǎ��p��U5�䩼��Ӳ_[����Y��QO�v�ml[��p���F�…�v�m��rsdN9v��pdd���K��a���n����ؾ}��~Y<s�D�wѠA�ʕS>�w��M8}��?�"E��M�6��V;�N��ȑ#ذa"##Q�vm@�1�K�N�@/���E
P���+��
�(@
P��(@
$���Y���Ea�ҥ��~<�^��[��(V��C� V�6����9��3g��P�dP<����X���?�!�xb�}S��(@�
0�li80
P��(@
P��R@���
`��_�W�0�Z4l��n�V�&�jb�emU�3��n��&Ա�uO�q��G%N�Q�G
P��(�/���GK
P��(@
P�����.`Da���չ%L��j� ��	���f.'���J��(@
P�50~
�<(@
P��(@
P�I/��Xli�+d;:�n�8#,\��\bp���@��Q���(@}	0�W�8Z
P��(@
P���oٴO�{����Exx�իO�"2fʂ,�r�Q�f��NJ��ʹ&�Xk�x(@
P�Ѓ`=T�c�(@
P��(@
P �z��E�U������2�g��{���0�L)8
P��t$�XG��P)@
P��(@
P�P�r�2 5k�E<�f��lI�	�@8��܆��Z�m��A�𙔸>âU1����:��k�A���;&�y��z�.>/���ijQ��(@
P��(�DZ
��nͫ׬E��-�Lr��hZ��f��u��4>RϪ�۫�i�>��~����b�b�����:�;=c�h(������o|]��1��p�*y�����d��I��R��(@
P��(�$��@���j�J�؈�.���6�Ԍ5�g:+Z:vD�\9uCn���
A�1�~-���ީ�w�zW��G��6��Z���+��:o�p�yW�y�zNڻ[0	}	ݟ#u�w���Y�����0�����c���v�1��q<m�t��=��{���黕q>� ߲wr[�p�l�Y��!��p��Q}̓��>sf>�ulb�?��M��r1}ߑ�O����9�ʱ	��X�m(@
P��(@
P�Н`ݕ���H�X�Q��'0s�L-V�&M�\e�,Y�}{��4��t4�u�	��	�S�Y	���1+o-0r.\�	s���K�-SC���%̝;˖.1ֺ�wE�8qV��֌p&`pdV%����ߨ	�N������Z}z[�툷����ǰj�j\��
<�{�̇eЫwO�̞/^�c��Yػw?���P�F
�)S���'O1�`���!�Z�ׯ_GX�sim���Ҙ�)�O"�����'���F|E����g�����3�o�^DFE�f͚4p Rz��֭?1m�t�x�"<�y�J���ӧR��0�`��8���<��8��o��k	qlb��Hh�����n���O&�b'�D�}d9�ta��d�q�(@
P��(@
�Z Y�	�� �'�V��踜=��:��Ue���VpG�I��0��/_��g��2U*����������s����s�����Ç��2���4h��۶��X�~=Z4o.uA�i�j���\��իq��
DEF�H�"�ء#���ky
�V�޷�����:�����Q20�N�
`�ōb*�񩈓���_7��T���G������JJ+__6r�W��W6��yG���ժ���U�c.c+�����ű��޷O�\L�;�ck�P�\��p�ءXutx婭z��܌�g�X�9��\���\�sL���g��hѢ%J�*%Ҡ� >r�_/Ū�8q�4Ǝ'�z�ر�X��>ka���T���_}��
�� �L���C���y�Eumm��5�K,�ܨ����
��h�V�Ć=V
"��+MK��&&1�X
�g���3ÈY�re��ֻ��;k��h۶�V6WM=�X��ܹo_akc��ig �1!�y����P��� 4"�X�p/��v������^�amm
WWW.pGD�s+&M/�5��`;d�Y��_�Rm�v>�^t��B4�D��?j��J*�KO��Y���g%�Q�"��𶳱Cz��{^O���>�ƍ�&�'D�"@� D�"@^�*����������9���S-o(g��W;���9ˉ�D��5��YH��Ec-k�G�v��4}��8-5
~~~hѢ�.Dhh(�9��>�QTX�͛7���..�x�hʙx����m�"�"e"��h*����I'�޽{<b�ɓ,,Z�͚}�y��񶵉��@�ϗ!�����3�-x+*��b��Y��N	)�@�%#�dR��.v�E4��(�F2�<u� [�a���عs'7n�ŋ�^���"���V���w��$�)���l‹䭻�0y�d��	c�i|Qh�%��tnي?����y|��~5��|�dbŊ�x�jת��_~��-�qSRR�%�������..���9ظ)�O��?��FW�ǭ��]�?��3�4~��^�w�{��v�1s���afV	�g͂C�ϸ-,�T�e�tE��y�/,�]������a�Ev���㩌�c/X�a؈عs�s�"_ԭS[���ش���a�M
��)ǁݾu�|1�A�ƍ�`ԫ�ma��l�!6|��ڴi�/��R
�����&$=�΃sϞHN:�!C�a�ܹhެ)�{��u>�Q�a�vU�'����0h� ���UE�U����TLQy��2�S�	�
6Z�.m����p̝7-�5᜾�v�W|���P88t�ѣ�aa^������#�g�N��͘�֑���B�=fΘ�u��Hecc4~�}̘>
�[�Ը��M�z"��{�u{��].��y����0yD6M�~�wT^0������Q#�oƃ�0�͝�Ddia�.b��Mۮy=(�S�f5�ٿbŊ����6�~�Z+����g��[߬_c>�ӧOLJ�[h������_I��x_<x0�#"U_�P�_���<�Q���1}:ڴn��д���k��㧁	����� D�"@� D��ז��
����pww�k\4��x�!==U�@Ykc%E�<�}
"�ƾ��v�@C%hFS�˲K܎2e�g������믿a������[��̙�[5םR��H]K%�O?�֠ �>���S�Cί��%K4�ѨO;z���/T�����͛c�ԩ�^�������#�GD�"Ç
C����v�Z�3���
�Db�Ç�2%	����u���ڷ��/�6�����O���e�L��򆻛+�R�"00�w�TVkg���N��OlJ����t@��YXĿ����X.�����]ź�_�%3���?�kՆ���g)x�`��F.�z�
RiO�ܥ{/|�jZ�lcc�bMY��|�b�/�;t�����t	�-�O�z8c���h٪��mj��Z�|�����35ު��	�|��B�֭���ؘh�p�֭]-�<���q65
[�ow,�E� �5N��z���Y��q�����ܭA�HO;�۴��S
cl<�pɄ2f�/c����:����U�]�R�ҬA	�x�J���a����wv��9m�.���]���U���l��ѣ�m�6L�>��Q
�Z�0��fͺdegc��/���
G}
K�J�>s/^�^�� !���]���q����F�D\�N���u�V�5s&�+�j拶�)�)պ����?���ð�0Ō��dz���}`�v��q����1�����FʙD�|S�S៰n5�3f?�H
\��=A���rw
�A��]SZ��c]�AW���Y�ъu;s�4m�C�cgX�n�.hZ~kW+^��!C�aĈaؼq#��=���֑}ǎ���	�����]��y�7����᳨��'�p0o�;t��Cg\�t	�#�Eq���X=m�OX�̮B)�ݕ�<��Ё=��b����V*�c�i�����3�y��<GLl�m)�/�O���+�?߅�q�^>F��A����O���`R
"@� D�"@� D� `��ѧo�A����t	��a�PG�P!Ax�%nS�>��I�xH�I{�_�cgI~������_�Ai�H�.�u�Tx��ʉS`��ϣF�AOgg.�'$"<";c���_J~����t�b�����L�	y�V�T��q��/�s�E��9B{%�����LY
�L�ei�nj�V�Zc�L�CyO�xdnn������
f¤��D%:WW��6/]���۷�(`vYU��ѣG)#���e�z�H$��S�6M~����NHLDeS.���w@�Yy*av=W
h�\(c��N�De+<��Cğ8�zư8��h?�΅��;v�D����r�Z}�������AU+����Çh۶-Z4o���v�07U�[�?��q��=���	��XD����Ξ�&N���4��Ń��aYI.�kL���éwߪ�/+�u���De�J���A_�<q�����CRB<,��ag���&+���¬�T��"O%@�Nط?�XU����t��O���˩�x��.������^�]�z!&&5�WQ9���r��쇕�����үN���Lj
lm�q���يR3�8_D�~N^!����ƍQ��:�`�o��\���	��]�	ww>��v!--[�n�>e队������|�z��^�{#)�8���6V�Y��f�ޠA���I�4۩�Y
h��s|�[�����~Caa�<�]1_&��{{X���!B��	����?����u�3vu����S�K,�<���i��:q��a�'$����rodm�'� *:�W���A8��,͕kS	+_��YтhY,��b�������#���$8��4��\�c����|l��|�cgh��D��&��mM��_t�3a��gB���d��6�ؘh�_�?6���	��9M?"@� D�"@� ���
�������aÆ���ž�l����O�]�������6mBB|l�lq.��Ԕ���n��SͲt�,%���x�c��<h��]ؿ<<����dj��")�1~ IDATz��ͣ��W��|_X$C�N<��С�`)�[<psf�F�n��!�`�ŋ���������N''ge���	ظ1G�Ef�cԬY���MJJB|b2��p�823a��%܇��k�����
�+���")�91��tڕr�,�{:cҤɜ����W����V>�����a�!a���׭���~Ԧ5�ljղ�<��m�߻���8���066BA������l�̟������	�{�žݻq:9Q�Ye^(�
7K9�|�&\����i��>m�VXg;�p?)k���9��-��Ԯ]>>>���_�`S�gb+;f�<~�Xc� �ȣ����`]m
x���o���Ŏ�x�7�-���&�z{{�Ⴧ		A��U����^^x��i�b��|Q�X�dE�]�
X,|��,��R93T�,z*�����e���8.�Ϙ2��ٿ1�;�0m�dՈS�I�3{����l��E����p��5\8���lTF;Y!$uuꍽ����\.=�_�a�克�p��8�<
�=(���B��,U}`A����'O*`-��85v�R]gc� ��v��3�ytsVN:;8p��]�,���I�P&>/U}������E1��Sx4�Pf��=A�6_��~��Ͽ��f͚a�̙077�fy�R@3���p�����bA��a�?rEdD8,-�9��\8;�Br�)�9V���R]�6���-��?���˗#&2��"D����;��q��}{�f;�y�C���o�N�[[[��M�Ν�x�uQ�c=���_T�%�04�'Df
������iZ�����q^���u��^�`gk#���)�o{���}��S/�۷O��
c,����J����6��]:;(#�5�gPE$��쳶�ªj{���+I浰�F���.�J���?f���#��%JM"@� D�"@� 嚀�����&�U�^^�إ3���={� `�&���qD�P�g�L���{;[���"ng,6o�ێ?~<���1f�N��p�h����\�]�l��d���m�.Z����c��	���9\�d��S�yT�����Љ۹=t;"�b�����+<�eQ�?^�S�N���G��y��)����vvL�I��"��<#�=�ev-��.[�N=j�]����s?##B�B���X:v�-[��Q�FH���b���>����?]Dz��0s�,86��8�v{����5+��ϢJ7�PƏgiR]afj…g��?9m�3�����38�B������X��J|�r9pZ�I��X�q�v�,S�kW����=z�ѣ�c�N�ݳ'N�/,]���k���Y���a„	(,*D�V�(¢��O��[�na��9�儐��<������ʯV��rX���)��N����==�� ?��E\��Jһw�F\\���}�bǎX~v��Q���ԣ���狞�����	A���_�z|-��;v����_�j��㼽y43����5+���V)��0��
P�N-��R튍P��c��E��.�x�|ت��X+�"�ʀ+��Ǘ_|��G)`M��f�-X�*ժqA�Jes�)�Y��m�<z����ĥ�Г��D�?�{��}w��q�
&"��SQ�<SC�n���&M0�s#�
����?~<>��G�غe�2"���7�G;�T�ll׭Y��E�)�OW
h&,�n�F�z�|�
6�_�y2��	�EZ���q��)n
”)���`��NDd4Ο��rًWv�Y���Mi�zJmVn��M0�dwws��S��u3�d�� ��):�W�8hJ�L��c=�F��X�`>���s���3��\��r�
�W�ĜY3�ع� /�������b�J4i��۷#**J9_��Xl=ʠ�w��;]��ԟX~�u+t�R@7n�C���]����i�֟�ߺg��5�~f~����θ]޺��e�B��غ���}Q���<5���pi�3濮�L��꫕|?ؾ=�Q�*p�����B���l�%O�1�g�`�;�>�Mg
h�]<u��iԕZ����	���+��"@� D�"@� O��`��_�H`]��n���p��aX���iN.:wQ��O,R4--:uE^^$�rA�	O���\�MLH@3��;9%
ª��a�…pvr�B&��e+�"{Y��Ϝ�����M9�SS��+D`ur芣G�p;>���Lf�&&�+��p�26l�o���ܼ<H�2e�p�d�N������X���t�I�Eb%�a�?9)��b�J[�`-~p��0x��سwl?�E�v���'���P<�޵{/��8�����ʲN��GZZ�ϟ��K��3tut�����HN<�E��S�T��f՟����΀\�fz��&M���O���,v��b05��
w�� 3�'L@֓'زu���x�Y���4�G�4�o�|,JwŊ�<򖥯e���D�˗/#0p���L�`�3a���Pk�7~��#�o����}�0b���]���#G`ia�m!۔��"�w��ͣ�YTr�o�G'8��f1�W�ϑ#FjYM�k,�� �Ez�j�����H�!';K�”�ń����l�Ԯl-�3��{����x�/�S�D�d|��l��b�'ⓐ���K�����SX�f
�B�Uf�<e���e
4��	`gk�������Y���e���L^�qa��B�.o��]L�0����6.l�g?��M�HN>����ً ~��-Y���M�υ����*`[%_m��8r���R�\N��䩬���|������)I�Ϥ�3X�z5O��]�z����njELT$��-�E�w�(yj�/�i6nڤ��޺��{�	�q��<Ļ���v3���'�ƚ� �=�H�{J�|ζf3����K�ĄS015����곫kWG̞9�&Ɗt��$r��H&U�{^~6"1)99OѪu+Y\�n��OFRb��T�ܣk��)��_vi���/��5kq*^}ܵkW~���D9?+U2�{��!���؉�Ӹ���l^�Ce>~���La�Eaݺu|<%��A��%���%�k=hꏍ� ��f�޾s}�y���p�)漦�נ^]�VY_��3�i��[�=�v�N�.l�
ޚ�O�4��j�Z?���Xeݖv?ӵ��;ɳga�ر�[�Vy��L۸���6_X��[w�`�/n�zÆ
�/h)�]�|ҵ�xm�i�u�@W��#X�!�% D�"@� D�"P���i��G81a���c073Ɠ�lt��])�Ԧ&�iN:uv��w�挃�GK3e�<T�,�"\�Ѻ�&NDlT$L�T�RX=&���h�P��'΂ܡSn'Z��ݺ;)�EjN�z��}�3e
���ѯ�E�� w����"�&���*���B����"�*�Y�.&:	���E������.^đ���{����8G�u����wޑG��b������_,򫒙	����G~�E(e�L&��-�O�=��f���2.Hğ<��U�4
aA�g��[��(��Qy-�!�r!(��i��&��K�Ȃ����*~=�S�NE����D�`�o~�u�fZ_~PA,���ȏb��
�{%��..��+�Nu~��%��2�ł�v
��,r�̙T�lFTDh�Hg���b_G�����gu�J��_Q=��1:�K1�5�LIu��ϣ��O�RA!wM�����S�:�sлk=DB}�e��^`ݲ�l���|B�!��ymkWmR����B,�E�ƍ1z�p�W��uM{KI��>����zZI]h\ך|T���R��J�\�|ғ��.���C���g�5&y�Nݒ���[����۷��U D�"@� D�"@���$`��,D��^={�W/g�ܹ�6o��j���X�d	>���V����d̜�9>h�Çz��\�ݸi�2�O��q3n��>h��ǎRF�*�T�Rm�#���"4�+~�g��g؈��ׯz:�@xD8�oӘ��{�dL�<u��Att4����#
�����U0c�l|�AS:'O���c��)@�+L /�.M��ő��&y
e�`����:����1a�xğ8�`�إ�P�R(~K++de=��y_�2�;~�6�(��A�O�"t)�|�Š�.����L�~&%��d��z;/���NP�/s/���˄�I�<sO����S�ŏ�����ޖ(2FFh���hݪ���
�#!˂����_��*����U�_�~����/�a���O��M6�h��GX�z�XY�^?/b;�}�J��DKH~�0�)"@� D�"@� D��0tX�%E��wX�t)>|��c����υU���Ϗ���4i֯�lj��p���X�|9�^��:�k�ٳ��GK���_�nn�\����(�6�/�}��6�HO;��Œ�K�4�)����-�g�yt.K�,�h���O��ss̙=W�^�)t�M��
��p�n߾��+V�{̇�g�����8�[���T��SH���.k[�KSMe�m!E��F�	���cպu�s�.�~�m����S�.�_�P�2�SU"/~{��X�m?�����f��9�ѦM�g�J�,R<�f�?�E�ʸ�̆s��%N�)d���!��Q��}!N��,*C�s{݋�
�1{U����?m�%�4��
C��U�K�y_�|�e����We?��r	�v|IV���@R3D�"@� D�"@�@�&`�������`�gK����W߾<�W�9KW��2�
� ������/�g�^��V�\�9E�"B\W��X�����˨W���Y_�5��ލ��peT��z�(�`R�	��/��U+hD�� }��AZJ27EW�J�IC�N޾�{q;��J;Kz��������J�TMP�G�{_�6`��+@BM"@� D@'�i�"@� D�"@� ������J�Bp���	'N��� ��	�B�J�_]i:SM�vp@�>�����v����j��}Ϻ��߀�ǎ#��S4j��g���Z<����܄��ʕT��Y�����@e�i����h��z�}~f�z��>�ϑ�Dh}&��2$� @�N� D�T8$W�!'�� D�"@� D�TL�.�#���_����$��`I��;=���ʙ��ێ�P����ni�ѷ^E?�P_N�(Wn��+z��R��B� D��G�`�8Q)"@� D�"@� D��	���bg�t���^V;"X��Wa�[�ʼlzu��*���lev���
 �L*""#q��밪l������IQ��[*���|����E{��?��! D�"�
��
�R�D�"@� D�"@�@�#`��}����O/��`�jQ!"P�	���#u6{'����pXy���3
nn�hӦ
�2���r�·)S�����]�.���ڹ#	��{
�uD�"@�	�7dd0 D�"@� D�"P�*3Q������QPP��ucT�^
5kք��{i�P"Pn	��,N��#p�V��������"/��egg�$ȸ�+��L���*"��	�������)��k���a����	Sְ�D���YB�"@� b$�| D�"@� D�"@*C�+��D@����tV�B���al,��k��l:�\�i��J���\�5�����_�;R~��]�6����4C� D��"@�A
K� D�"@� D���	��%G��@�(+x��ix��!ڶm�͛���,�M�04���J���B,[����6m؀�U,���ٹp�pǎ�hT��G�e;Ǩw"@� ��_�%� D�"@� D��ʻ�ҿ?� �ۻ�C<�[6 �8��]���3P�_�m���(�v�vHO/~0�����sѬY3̞9�&�zQ�q�w�fL�D��;�� D��
C��
3��( D�"@� D���M��=���(+�H�+�W.�/��ǏR
�]���5��L���CGO!pk�L�G{���4�ER��aC@�թE��NK��"@�@�&@p�2�"@� D�"@�xYH~Y$�"��(+���-d����
4��	`gk�t�C#���,�K?������z��2&	�K�Ąx���"!1	˖.����iD�"@��PH�P�M�"@� D�"@���H��cO�6�2�2!tW�t�D?ʣy%�A�B�<f��N��V-���aYO� D��K$��a!�� D�"@� D���M�P`1��U�R%�����FQ\�z�OkT��e&�l�j��n��#D�"@���	�S����K�r�����5D� D�"@� D���A�P�]�va��az!àA��$��
�{��\�I��D�"@���B�"�_��$?� D�"@� D��O�����!<��o\�����&�J�v�E1�QqV�X6.VN'a��g-��P�"�%@pi�Q="@� D�� ���<�M� D�"@� D��0LXy��%a�j��{c@&�(�R�]����L�˳�'��ܳ'ƌ���P��֛�=sZ�l	�L�%�"H���c�
e��̙3ѬY3i��兠�`H��X�xڴn���U�W�Ç0p�##q��a�\��Kt����"D�"@*�+�0��D�"@� D�"@��k#��"d=��?]ŧm>����X�N
�H!�ϧѹ�#��y�_�>8r�0�O�B঍\f�R�1��}����#G�M�6�[׮6l�+�}�mۂt��G�^����;�|�$	��KM��R�{=+�����'� D�� ��Or�"@� D�"@�@E!��E�"���q��:~�`�̴pg=|��f���C���,���9sss����9r��p��aT�T	�R�t톄�x���}�w���=ƀ������^��e!��v���M�4��Q�P�v�W��iR�Z�j

Rv2n�x<�����\�m>o=q'���|�����1-XЃ��uF���M_��T�"@�@9'@p9 2�"@� D�"@�x9^VD��P�?��@ƅ<�˂��P�*�� .\=�Ed�G�����D�ܜ\8��S	,��������3��g�J�"��	�9��0p >G.�K�f�����˅ᇙO��Ņ�3�+l+e)s�S���cݺuhҴ	�.]Z��b�֭�?_L��~~~�[�.���o�L���A!W�~�	�
�7!1�aa�y�7��fu�9}��F{;������p$9��.�}��s�g��Rp���d D���_��&D�"@� D�"@����,�7�d�űcG���{ơ�-`�qg�I*#"<���������u���Lለ?y����0az���#������&���:;�2�ѻWo�:��	� w������ջ7�v���XDGER
hY#���2���ff���B~^>�c�����_�����X��011�Ç��b�rܽs}��P���;w�͕��gQ�b1UW�7~����H��&dR7i�Q#GqAW=ZY,�{&��!� IDAT�033�����z�ԩS���B~~

�h��o����F�F�=�<;�GZ�j���Bngrr2?���#G����)�߿��˖�޽{<�|\�<�_����_����Z������b��혷`���R`$�
�4�wY^k;d��(���}���'�� D����* D�"@� D�"`8^8�|2��3amm
+ss ���`U���wFDx�F8%57oBnn����y�f.J98v��Mxx(�z�M|>{6Z4o����<J��ǏGXx�z�-̙=͛7�)��2vVp��HH���K�`��5���ŀ���)��,�rgiy��R�"h[�h�����G�b��d�5����~���3)�|mvmݲ���I���ڜ4qN����I-Z�f�>��y�x��T��D"��c̜9���<���v��[�}�&�ǎ��U�b���h�n�Y����طw���Șsab��O��[���TL�8��*OI����q�'aĈ�n�V��@H�����4	��#�Q�`k;�OO!ѷܭr2�"@^6�_6Qj�"@� D�"@�(�_fX��!Wc����FrZ������Q�`yY��gC#����N�O������*�ӔH�R@wv�̅^I�(�g��[��K�~����j�q��1|}`?B������AF�ke)����L���ի����>���>l�ׯ����b옱���DhX($#�>��)I�զp�{��h׾=Y��p��Y�#G`׮�		��q�8` �mۦ�KW߬��}���pY���cc.�
B5�]#G��[5j 0p3ƌ�Ǐs.�=�K�P!�v��{�����J�.ۃ�����\�~��d���͓\"e*@� ��_��$W� D�"@� D��^�&��+}�C��F���PŢ:�y
h�3��a�	�NHH�D&-&�:�?'��zL.&*oڼ��������6�T�j�L��ztAE* ����h��?�3�Z����������K�www�R>I4��B�f�����K/�T�,
�]V�+c��Q����K�6l��N�>��e�i�&��.f�����W�K��w�Lw77��:&&Z��pO��i�E����Bpz�Y�����<�p�}K�Lp��� D��FH~��\!D�"@� D�"@�xm`���p�M�t�*,,,`�IG&ǠA�T��5'��^m�nI�5��,PXKL�/-�"P�03>ps ?��? �kׂ�����?��o+�đ����8���G�jSh����Fj�Y�݁7�x�ۂ���`&�N�2V�V����:�u*uJ�[S�&[��=z4jծ�
6(#�Y�p~~>�Ǝ嶋�,�:Q$�3|�z�㩧۵�D�����CZz
�m�q.�L�3�)��?�L� �I�`�7��"@� D�"@�xN�����4��f����a�%?'B*Nʄ@y��]�___����F�Ž;�w�E[�fM,]��[�œ��`͚��8w���]XT�r���i�q��-̞3�����G3TW�+�Z�k?�m`��S|���;u�y�������|~�n��k(�I,܆�G��C�ջ7�
�"��[�}��4	�B;b��K)�Rra������l�#��I�S������M�����i�g�^/��YJ�b)��djS�D�"@^�_Zj�"@� D�"@�(OS<777U��(�g*�����4�Ȗ�E�<�l}��0YO�`��-033CLL,���y��f͚�4�o�|,JwŊ�x��!\��GlL�R0�|�2��XvnpTT?/��L.**���_n�so�
�FFx����
6�mGGE��#������پ���}�=�,^���E�*�X�km������e�&����g"HNN��H�N�:aذ�066�\�/_��N8p ���߱;v�T��65�����׈�����Ճ��+���v6v��sv� ��f�,e4?��<�"@�(�H.�Cf"@� D�"@� /���	�r�w���#���j�blb��֬�6E��iC��e!�L�K�n}����m)D`~F�"ٽp�/x�u]��*)�I~�g
�G���H��S�"@� D�"@��U�t4I�צ�D�� ���L٥~hyI����'���%D����	��%m�"@� D�"@�(3��\fh�c"�J	��J�R�D�"@��kH���pP�%"@� D�"@� D�8��.{�a#D@v�-��D�"@�П	�����D�"@� D�"@�� ؀�L��H6��Id(D!���I!S��k	�`c�&����8��en��N���%��.mJlu;�@� b$�| D�"@� D�"@*�+�0���!�
gP$�B.?������&Ʀ��ʇsGg|�G�+��L
ǩ�d�
IШk8
�}%֊��W���v�VD.��O� �&@p��QE"@� D�"@� D���,-��2��[�m-�ѣL�DG������D�J��A�0l�0ԭW�\�IzZ:v�ٍ;w��7�@ǎ1x�`�][PPOy���]q���E����ld#�|8
�(@���@*��I�&2���==0°�CaK
�	\��b�Q��z$��.QR���ᄄo91��n���hgm���0R�anZ[�s�ϔ^��8t���G֓'8�~VE8�Z��� ��Z[�"#�l�~K�O�� D� ��#�� D�"@� D���@�P���[ 77vvv��S�^<�P�!P�y����0e�T�k��u�4o���9��u�Vğ��K8}�����r�
�.Y�O>��}|�mq��www}��e^�\()�S<E��s:���¤Ȅ���b��e�2�~�wx���o|
KXra�_ -�"���p��XXZ�U˖�8q"5����B�Y�S� ��нkW̜1f���U(&L��o����S���e�nkc�q��0z�.��%h�R���샡���aQ�شiΧ�@�o-�[!s�Y=]����oV�Z���O^T��Ѻf�(R��I�{�QA"@��I��6�E� D�"@� D��C�ccc�t���˱g���Zg$�6QB[�����5ॉ�{���!(����
���U1l��E<������_ ��I��=z4j׮��B!�V��>��"##q󷛐Iehܤ1F�U,�x�ҥ�r�
�,]��M����ż����Gm�����B�Nrr2�ER���c��055����|�rܻw}��E\�<�����h���!7'666�5&&&J?4E
�J��������w�Ӽ��Ma*��z.2*B�I�x����NJ�+P
�`.�$�!&O�wO���CH�R$&%a{�6�ݽ��H?w���.���
�x��=�m!���ͷ�8���ȥg�6�x��
�kՐ�6v�`��ZU���ʵ����:��&��6j���~�}�0�v�&Χ��bu�g
�!��������`�rKVk��u@Z�iey�.�v\�s�;��R�q���GF��lC܀�f"@��� �@��&D�"@� D�"@����
�D��}�rV�����L�`�X���*��z�����"*w��rB��bgV�!�)*dH�B�?>��x���穕[�n�F
��1!nY�0W�X���l,Y�4k�ŋq�����M�8��LP~�$�-B�f��/�ƍ���#,<��ņ�����8oc���\��~둚�ʣk
�5��g�nhh(�9��>�QTX��{x�ť�N8[��<�{��"�J.,�-Q�X.�H�[��L34z�?D��D-Ԅ��Rn�"��-�"������x�۷�Q�2d�͝��͚r����uTd�Ǿ��*�|��#"гW/�KK�C����?^��eK}y��|��.Z��~�M7��…�W�6yF*�K�Ha$��Y���=в���d��O���FF��V�o�4�W�����_X�?��3O��n�7K����d8�����REK%��L�S@�KW�dr�/]B�Z�0��/Ѳe3^��ܖ�~��A�����I6�
�l%D�� ��59J� D�"@� D�b0TXEԕ��+�=H�]���]��E�������ƺ����o�E���5�ysQ�F
�=;v�ˮ��WW7�����R��]ݰe�V.M�4��1�a�ʕ����ʴ�,%k�Ν1a�x�50o�<�h��=�1y�$^��H�U�V��6�q��u,Z�<����CCq:)A5R�bO�
�}Y�>�i��g�G^^g^�fM�L��&M���B�00BZeSS��D+�K���£��н{w�kߞ��,�V�"��:�t� $�fv�1������3z?~̣��{�_&�3!�]Ç
�"��uku�;��7�D���~�c�G0���)�,�U"�T"Cէ��A��A-�R����]�u���C��o�ѱ����0}�,,^��z�A|�qdg�a�С�>}��l��ƞ�\�-!t��2�f��'�`&O�>-[WW7����kW�v���6��v��K�RM��)��o��ϲ4�K�-G�~}���?���x��3�y��psu��m!JX���ƞG+�	��l:��Vq$�\�V���b�/�;t�����t	�-�3f�F�-��ꎘ�	&�����0 �B�`C)��"@� D�"@�x!/K�Ƚ�+��x�\6ݻƪ6x��88vF�>��w�>l��`�鰶n��`��8������h):u���v���Q��[��B���	ɧO#))	,�g�1z�h����o�E����",�O�*u�	8p <�cǏ#d�V��uĘ�#���o._A`` �;�k<:;tB߾���U6^hPeC$P�������/?���#<-r�z���o�-rٙ��a�s���.Mi�u	��.^���y0��*W��ѣ���=~��B��`�@��Fw77�4;#����c���*��sssD(�k�?,�C<Ĝc�q,�(T�F2�H�
�x�J�7��@�JNX�c����Ьa�:YX(ŝ�a{x����Պ%*0+��4={������p�V���3|�yL�e�'K�Kf����R�q�֯�GDD8lm��q�.�q�~XYY +;.��!��Q�~iS@���CZz
,X��Y�x`ӵ��ϡKw�?pU�*!+;��t�"�����.�CF��YŠ,�c��z*k�zLv�����p���!��in���.�](�!n�d3 �	�b��I"@� D�"@� D���"ݸNݻo�
TS������	�:w��#G`in��9�p�܅����С�aea����ӯN�<�+W�!887�a�h/t��ǏG� L���cѲUK~erR,+��'���SK�7EpRb<,�+!'�=z8!)�$ll�p:1��f`��6�r!��C;z����(�NN$W��[�������>b1T,�
������n�w���ɫj��Es���v�e����7RS�bG������2��qAZ8��_�|?���/�fg��kծ�
6(#��x����׳п�����?����U )�Sd#5?SvOF~��R!d�Bބ��E9F0�c?�Y�V0��^bQ;�<3+�G���B���w��X�|"#ø��.&V2ђ�<f?�|q�E�*Y���_�C�6��ϏG�
pe+<Q�� ��}�Y���Va��/�����HbUXS��Z�$��<Y!k���թ7���Ks�N.�5!���]��N*G� ��	��/5N� D�"@� D��/!b�\�;07���"E�!�6�@�l��G��E%<��F��ݹP۵�3��ۋ�V�\��ₓ'���C����a#�=�1�p��c�"<,1a|Xőe�3�pc�6�in��{"1�lk��\��!;9�䱣\~�)zt�NpyYDedGY�k֬�w�]��q��i�Oq6�,OG��'�`��s8	O�!(�����Κ=�YYX�f
�����	��L$�u�fϙ���G	َ‚.��j%��p
���\lf/\�y����U�z�W|9�K���
OK���D�0nn�رc'��ك	&������;h� <̷�s��,���m�x۬���R^/]��[��>kKy��υ(B&!��m8��Tml�|ӧ`o��X��B86r˜&c���Ɛ(RD�Mg֜/1t�p4m҄G�FFF�O��)��8�",X�V_߅����n��ëD�j;;\$��Hڻ��Q^�p�xj�iӦ�u�6��;v�+W�a�Ή�]�#8(�k�@���H&8��Q�˄[�;UGSf�F�V����;v�"(x[��ZSR����l�Քʚ}7o�bT�V
�^^�R�\������"f�Nl�����E�"P�K"D�� D�"@� D��ׂ���EEX;af̟�]���si�᧟����o��U>j,z��
g�صk6n
���i3Ѿ];�qq;q��E��[����{�[�x��رs7�CB0a�x�ׇ�ikm���J�W��.pL����.8p�k�<y
AA�acm���g��� �>
���Egg�ED!t�v^�Xz'�Bf����?^GVv,,,Ѧ͇�,ݪoT��0�xd������H�R�O�>�;&W�l������}&#0p��eg�4癙�<%��_�g�޼�O���{�a��hذa1�,]�;p��m%�ع3�ٙ����<%urr2$F��}ذ�066���,Z��5�R��~�̈́N��11�<�8�i�5k�1c���o���r%�x������;�D���S����m�ۢ:ބ��\�	p6-��B��O�Q�J�o��'MD���#���W�é�^�kWG̞9f&��M�W�^D��K:��U+Ǫo�–��<�1]�x	~��4n���ǻ���}3�4$4QQ����F�Ǵ	͂��v	/�X��\�Y����?n�ł�����
6���B$���-���+��S6�أ�_�e��<x�k֮Źsx�8��'�nݾ��-���u+Χ����?�$D��R ��� D�"@� D�"`X^�J��+�y�2����f�[�ƃ�qqLLx*hm�����K���������@$%%��oaѢE��כhҸ1̟�w������?p���P���<�� WW�޽U,�⍊Т���~�L�`?3awڔ)�[5j`��hٲ��P�&�\�p	��.㩪]�=�sg����iX���-
���Kc'��)����B��0A%���`#�𚈈�8װ�b�UY\]|�X�5(�r��Ȭ�V3X?�n�$�
6��U��"Q[�Ř��Cѯ�z%٥�Va�/Z$D�"� �?CM"@� D�"@� eI�u�QT�'�}�+�IȗJ��3`�t��m��dL�{�ϟ��Du�A���~���L��T�R��fۅ�ߠ^�wQ������!�ٵ;��I.��S�}�\�@�"@� G�`�22�"@� D�"@�(
��e2@Z����qr��� IDAT�nL���-�ѿ�K�����ś�3rL,���#��,��8�h����>����c'���)5l�Y3g�M��%+إ�T� �l�DF"@� �	��h0�"@� D�"@� D��0x���J�u����w4��S��Y�/��U~uX����RU�d�-��B��JdrY�B}�)��?uN� D� �
p��d"@� D�"@� D�	�0s�E��إH�,�(W03J߳8�E*�$?�t�D�`,2�"@�(H.�@F"@� D�"@� ����
���퇋K?��;X/���M�`�!	��0�-��PY�s�FKz��y�+i؞�?u?����v��R��̆�^�)ɞ�8�}"@�(�K��*"@� D�"@� �F�P`&�>~���7


4b716A���P�fM����А�D@'����b���%�6i���F�v�Z�~�>|o//���7oF��k���)�����]q*�u�+s@�H�1U�"�X�'$Иf�9�M�|������Lm�0V���&��ٿ;���b��~_�Y����*��#,��$#� �M�`�?��"@� D�"@�Г��
�z�Gň�kK�,`.�ʀ��t�[�M�6�ҥK�3�[�nE���b�lIddd`��5��\�YY�2u*lm?+V͐�vֶ�q�R�s�gaļS���y�׬�w�KK+8t�)�'����g�"22?�x�+WF�O?��I�P�f
�ª��X�	�Ɉ���"//�[��~�^�7m7 ��ФqcL�8mZ���_^~!֬]�S�	�^�n]1s�t�����s��#2*��\���Z�j�I&�Q�Hϸ���h�V-ٽ�x�Q}%W>����t�;lܴYſ�
��~8/��kW̚1��F�}(ir�}"@�Ћ	�za�BD�"@� D�"@��� ��G�쯨�\x�=��553Ctt������4������c��r���c�C�AXX8�$�3�G����sssL�0�Z�Daa!#���!-����#G����)ԣ����4�ibbRljDDD���_���	G��sOg�1����>�/[�{��o߾���G�2�[�=��W��ݱg�^��Dk�l���
����nB&��q��5r�֫���zDr1'ѧ�퐞�cE<�k<l����u0���.8N�8�}������R�;w�™3g�=X�(��?A�]�jfϚ�vmۢj+n
��ܫ/&�����=�.��l��Ct
�a�8����y���`gg��n����1e�4x�{����H*EbRBB�cϞ8L�:�uk�%1�4BB�a���J_�*���I�6���� �q.,�m,��-�x���SQ77�"�
	��
�R�D�"@� D�"@�@�!P�`����,���#����y���R!�R����-Z`��B���rau��d��Xv��K�~<x0�M���[�jU�^��G⺻�������6��5k�R��ۻ��ald��a�����}j8#|޼y��OX�v-f̘����W,���Gjj*&N����m
��3�U뽸8�)�\]ѣG�U2���&M��Ef�<y��E��Y��l�uOo�-ڪ	�E::t�ѣ�ai^�������#F`���*鍙@�8;=�{"%9��T
�1�y䨱�:Nݻ��jf�1��p�Ёےt&�11���T�n��1w�\�lք���u�X���a��S�v�����L�'$`�}���ෙ�+��2#>!	l�����֟!#=�Y���hxxz���А x��s�y������}����_-j�"P��\���%D�"@� D�"PQ	�\QG��6te)��5oޜ�R�^�������#���RÇ
C����v�Ze�nXx8��Ly�%�ğ�@��_A

�eF���j�@`�f�Y,���SlgQ�C�E�*��RH�?�����cFˣ��}��L�uO�%$$U�V�]�I��"�۵o��_!ZY׽皯ZY���-
iQg��3�\x���/YYYX4��R	�Lp��ɑG7�h����n�
�f�D�zup��?\l�{���]�7mB�:5u
����ð�0Ō��dz����o�p�/��Z*�p[�ի�͛6��\T���誻vwǖ��	X`c+b``��A�	vac`#�]w�ֵܵ���s'�x31r���G�w�|����sN���v++k@u��,Z���s��{��۠��-^�E
惭mS����l5�S�LE�V�vP�͵��ݹ1`L 1XN-n��`L�	0&��`L�	�[,�ۥ�gp_S&Q��?S4o�j�1z�(�]�tE���+C��׭_�!�R�V�ߕv6o�"RS�0E�Rze��T�ȵk��5~�ή�:m**T�ggg��>&5&_
�S͛RF+TCs:�<V�Z%���(h�>�����s���0i���}��~��ϋ�07G���}�H�<��Ǐ�1}���,Z��rX�u�����c��������f�2a�-"=x���ʕ��sqq�ظi._���s�����6��L/�~�IS��o�j㐐�����C�Y��޼�,Et8u��<�f���;K^�ѡ��L��6�����x�2������wYN���L�	0��`8��'`L�	0&��`L�	0&���������|m���t�R9r�,@��0t�P���_Q���j�C�/�S?�L5�]\\P�`,\�P�TokhL�񃃃�v�ZU*�@�ڹ=z�@˖-UQ�����'�su��#���I�f6fN����N���M��+W.,_�\5]C�zh�jB�2���	=�m۶a�*y����q�ơR�J�=�YU⯲�F�[�d���:tºuk���\�|��Z""�0�7�����*ν~�	-p<��~%Ǔ�)���|
3f̐�����<�yҘ$�~�V�G#��i��RW~��=Z�j%�I�>ئ�-BCC5�sh�G�餀�t���9�Q��1&��E��d���L�	0&��`L�	0&��@z!�^���SF!Ζ->~��:u�(�+o�k	j֤�o��~����B�v􇝩�U��1v4�&o\�l�,�g%=���s����oA�v����B���uWCOeM?�_Uo��R���������J�5jh��K/aҤI��m�>ؼy�v��}��Ϗiӧ����c<����憘/1�/E�v��A�ڵ>�$j�;�:��s��ӑ#Gª����0�o6���0r�H���FtT��;]3V�X!��l蜔l���,o\�,�F��ÆC�…0�|:gt
`�|�֪c�ӑ'4R;+y�z��g�����hܸ��IJe�6l(l5���%S+����)��-F��YѥK�e2��-�y��K�˥�X�F��ΐ�ɰ>0QQ�X��_^sWOm�5�6��ٳ�8a�pg��ɨ[��w�,~O�<��L�1�٣'ʕ/���_a����z�H��9N�2�P��H�n�\�z˖�F��"�{������ߪ�X�~Ξ9��~�Mؘ4q"�Z�E�.��WhN���#�gL�	�%�0o&��`L�	0&��`L CH�0E����è5��$��q��F�v�,.VC���sp��Q�̙C�B}�����Ѓ����#a��7oa��9�}�
*�A��P��_Ѩ�-"��+'�;4ƍ���z�Z�:yJ5.�?^\����ĸ����0w�|�}�o�ٷ��Y[C'��M� |V��>��u�,���{(R������]K��C�a��r�
�͛�1Okk�<��ܸq~�g��ݻB�7�S�'�<�����ҕ+b^䏓c:�;H$ash�Ƽ�Ǖ�766��6h.k�2D�����҂LB�@77�y���!k֬�$"[߿{�J�*�4���K�#�u�=H�`Æ
ѣGOd�$OT�q�F�����K�-�;�:���ӧX�x���ӧO1p�@��'�-[
���1c��aܾ}{�
��Yoڼ�?�{��S�AB����8ܼqS�]��E&33�.]�z�Bɒ%a�Q�L^�6Nԫ��њ�����bjT˖�uٲ��t�R�ޭ�l�s$��"�5.a��=��^AVj�(�x�Nz�…�8rDD���"���������U��ѣF�x�B�w}��O1����0ytn;[QW8kQ=7��$?##��b�}���;ԮUCB޼?�Td4��X�k�s�Ź|y�78�?z�+V�>	戇�>�c�(d�b��oR/�܏	0&`$���͘`L�	0&��`L�	0��M �	�r�"x�>t���(���
��3��b$	'kׯ��w�ѵkW\�rg��0�m��?|��IS��H£�	����:urF��
q:��[`�ƍhLs�֌���8{o���������0`�j�8��,��:�cG����Sr\R�i�]�u�M�z���̘1
�����~A��E��|h�RƐ��Ծ#ƌ��ի��`֬�ھM#ҍl
8,}��F7�y��)�x�o9�����E���
�-��!�PK]�@W���A�|y�h&RR>�E��Ͱg�.�̑C+BO�g�Pk�>�v�"s�!'o����drT[�UW=��zjc�~ԇ�+k�K�,5��]��mO��r,�~��5�A��S��1��T����z����樈��7�����^��5�;�`L�	�`�L�	0&��`L�	0&��@� �>�8Q��g�^F��>��]�
���W�ܹ0v�'*W��>��?��K�� qri���6�l����Ѱ�B<�z�Y�e�˳��з�+v�Qc;Ҳ_�J1gc�Pԩ�WI�4�m��"X)�Ҝ��x%�v�󅅥��E�j�)�����˗cŊ��G�!Ň숈a��|�Ͻ��z��
�,Q���(Q�$\��C��c�q��_X�d1�/���W1s�L�ٻwo,Z�D��#�Ūϓ"�H��y��5̜�e'<���ؽ{�f͌����7l��6OZ�v���j�Z䰴�)2�����_D�k4�G�����.]B�bEE�b��%�
	��:9c��݄�f��Y6�Rl��'4L	^�����q/7�}>��3�<���/nYv�	0&��XNM�<`L�	0&��`L�	0&���w��I�Z�qB�lll`H���m���8|�.^���f�-[Q o^���B�ʕ��K̙;��L�m�FB��HQ:H裟fz�Bٲ�Ю}!�j�_�h��x��F��Ю�":Y�X��	��q���C�5а��P[H��k񢅪(g�|������ҥJK·l���ߎ�|��(OO�l�Z�[��:���1g�ܸu#G���ׯE
�9~�(]��
���룅���كe����_��>�R�����Us�-������M�V��k��� �]��CB������к
J�.��7��D���p��e�
ὑ�\x�����/pttę3�ذn���Aj�TA�V�u�)]�#���U�fL�	0&�2*�3�ʳ�L�	0&��`L�	0&�2�oA&��j�*X2�>Q�t�I`ܳorX��ÇB��{{��رUK:x�v��+1�طh��e˪`e$'�����WG�V-E�)�߻W���`̛�-Ze�Tey%O]�D�bڴ�X�x�J(��Rf˅U &.{��CD�̛?_r>Ԏ׽{�j�+7m�>wy
]�l	�h4h�@�b��ǡÇ0g�\�h�
;�o��yV��-[!",\%kϓjk�g߾`�h�R�NxX8�\���3g���ر6n�+�|�,�K�)�ݻw#<��.]Jc�X!��Z4o�;v��<�F��f-лO�}�b�J���^=
��K�jԞN�e�#��B��0&��`��y��w&��`L�	0&��`��� �r�*U+��ѿ�u��ں��`J�CBTd����w�>Q'���E
�p�v��&M�%V��3N�{v�F��Y�5a��١iӦ"*��Y�O�R����K����H��X�JB$ɹT�6WΜh׶�|\���׾�{���3������ԶBCB%�ChkG'�k̟��SR�fP·d�V�Nܴ��BUν���T)3	�m�8"44-@�}ͳe��ׯEn_>{�;��P��=�Ib:���vT�Pe�ի������Δ֚�S�;)��#�Z�Ɩ-[D�h����ݻ���Wg���o�������k�Ň`�YqK&��`L�	�y0&��`L�	0&��`�@z�O�8!֩J��ȕ+�d2�x����x=����U�BX<v�(�͛�%K��<yD�߃��X�p�BФڷ25��=w�W��-��>IvӲ?޼D�Qڊ��E��,�7]���k�8�.UB�T������٫�v�����e�*,�E)�����+#���c����jv��E�~~�~pq�'�����G�

���`c�`��M�b׮��X.j���Sg��K�nnn:�%i'<,���5ʕ/����!w��®fDu<�#G�m['Ԫ][��>y��Ν+�(k/��c�{�b�Jh߾�DGc�u�ŋ�.��7#F�ұ;o�\���."�����rAZ�H�p��D��L�	0&��@
`8a�)&��`L�	0&��`L �H�0������w�y�&?~,^�'����ek�vq��5k����5v*V���o�`����?P�DIx���L�RB�#�4NQ�W.|�ШIP`�\���z��6�w�X�~��eg˖��7�~���`xx8�c�m�ni)�5��_/�4�w����E�`�Q�7�8|hR���Q���\F��1|�PT�V
W�]���9���]+V�F�B����_���)�{�셕+W����ҙ��[���I����K�,��7oQ�~=�5B�
�5�����/.Z�G��|�r9rJ/.V�`�������WP�P!�9�+W��7�K�¹�K�v�ĺR2�x���U��{]�1&��`i��is]xVL�	0&��`L�	0&��@
H�0Eg˖
�ʕ�w�}'�~�ׯ_�Ǐ�
�Bp����R�*Z��ʤ���Tv4�*
k�O���1��i����K�E�~��Ix>��i�6���:�ͭn��zg'��o����現7��#�g�XR܎	0&��`����Iz=�߿�|�`L�	0&��`L�	0&���w8�T�H;�'o^�����}��	�]���p�Z�H���ǣ�����I��]�`L�	0&��	�)	t���b��CɆ�`L�	0&��`L�	0��L ��gΜ����U0�~���H%\�fM�]�:tP��&)��W����	č+��3&��`L�	|�>���}BS�?�S%bL�	0&��`L�	0&��2��.Ö`c(q��F�r�ez�2ϗ	0&��`�'�,�6��x�܃	0&��`L�	0&��H�ҧ�ٳ�;w6�8�Fa�F���l�x�L�	0&��@���4n܋	0&��`L�	0&��ȸҟ,_�m۶���x��1b>�H.`�̙�+W.�ϟ�S@g�-��z�#����o;��`L�	�}�J���g�N���3dL�	0&��`L�	0&�R�@z��w];e�6��L�F4� IDATXN˫�scL�	0&��L��$��L�	0&��`L�	0&���}��	|�L!������e˖E׮]�/�o���U�V�|�z-9���Ġ_��„�8ɱ�V�������7�N����`���e�x�L�	0&��`L�	0&��@Z%���ݺ�Ut</&�u	��樆��=wK�,A��e1v�د�	Fg�P�$`L�	0��0�g�8tr��3&��`L�	0&��`���b�x�L@��	n�j���լY�bٲ�������}?~D�Z5ѣGOd�d�;w�`�֭���߈��C�2eеk��_����07G��-�/��ύ�G o����%[�lƩ���Z�k�~�s���3gN�o�N�Ζ-���J�+��P�B�2!ؐ�����q�-�~���ݺu��Ϟ=�ܹs��8��c���bX��g36���_�ƍ�/x���
��5��_�ƌ30e�dɒE��//�;V����v�6oƝ۷Q�Dq���_����~�M���c�y1b
.���8L�2�F�B�9T�]�p!�!x����̓vmۡt������)w��E��E�ܥ��>�8������<i�Dԭk�cG�b欙���X�z5>|���;�=F���_=����8L�G	����S&��`L�	0&��`��z���L����$ ^�tI��ʕ+�yjb�-��9sK�.CŊ����@>�~�����U�Vq��A���߽}__�/W#G���n�=�)s&ѯf��6AAAط/�z�����8G�i�������3gB����]��`�B)RS�N58��y�Ω30dg挙�u��{��w����
���s��n�����ₘϟ�v�:1,	�zm�;��urj;;[!�����ѼysT�PW�^���1l�0
�u�
�����Į	��Ǐ���䈀��hذ!ʗ/�#Gp��4j�
6��k����j�6i�$����
Ɵ.�6�Gm6mڄ\�r���x��	��#�	�ԏ��6����-2gΌU+W�Z�j��C��!|�C�_�=��������T,'��cL�	0&��`L�	0&���%�K�x-N��	������Ҏv?c�k/�y%����	��<�V���S�u�5�:�;I]�~F����Y�f�K�
��2a̘1�_ ����5��$�����DT��#���K,]�D���d��(z��_~A�
D�'J��/�������ͅ��<~��-m�Ey���h�(d�$&A8  @5���S�a)��I�5֎2RZ97C_�~���MȦr>�WE�⚒�)1�>�woߡu��طo���agg�!���D��,--��[̛7�ǏCtt4�ݻ��m�
1�D��"z��k_�0@ѢEQ�V-��PTq�*UP�N]Ut����)S0r�H��ƙ3g&L� N���ĉU����x/d3Ϧ1�>?Ë�2&��@"	�'�U�YN*9���`L�	0&��`L�	�+�U>q�Q���-���{����2@��+�>}b�Һ���
�~��$ ��6j�y�p+�ȩ?A��8Я�k,��gj\}�i-�Ɯ��J叢�Cv���񭌼9J��ѣG5�6h�@pڇz�+��ÆE
<H4�ׯbb4�dJ˼t�P�ލ��KG��"%r�ڵ5�j)����KQȟ?�`ŊB�sY�dQ������<�}N(�!;�.^¦͛���#
&$�*���D㪟S����j>+W*�80��͒�->|�
6���o�H�M���W����Tff���=��"-��ӦN��gy���^�as�S,?�a���ŋ�G'G�*UJ��fΜ	33�H!M�h:�}}|U�i�>�>�ߕ���G�ekL�	0&�A���8I��pR�q&��`L�	0&�E �E�D
ύ�H���K+_�D�_��p��e���a�s?���h�]��T}6nبJ�m��~:;;e_o[�NP���O���
A�ʪ.�N�R��1��:���F=������F���_�"f��eشi3�
�4����M�~�ѬMOJ���|�R��+���@ܢO���Om�[��`����~�&�-
OO�X���hl�v
��W��Looܼy�
�ȑ#P��x���&��+W�����Ӧ!oy�k�o�? ǎ�P����̘�-�!�ΕS�V���o'����Z���9���{!��}�V�n�^&��L�C[���'O�ն;f,���E�\������D#(h�*�W=��:��΍�sf�RS0��s���"�!X9��x�̓�'$�C��ӧ�0a���Z�z�t�ȫ������t�tΐM���3)�&��L�6
�{�ƚ�kEd/�+��p�@�lYu��}U�xqܿ�=zti��H������?�8��	
����hG��={v�`ogΜ%"�߼y�ɓ'�jk�Ôf���S�}aȏ�b�v�`L i�q��P�>L�	0&��`L�	$�@ʋ.��3&�X���:��{D�QcIX-T��ʓ�5�`Cc��X�PP���]�Q�'�c�A�|�`��QuQ5N|�X����C�3��h�1�Vt����fu=R�-�2��Q��r$���t�O��h���Z#,<k׭ŖM4Dn�K�Q���z�� ;����[����k�'Oaᢅ��M��ٲf����\�m�1J�2l�
B�^�p:Ry�z�Z!�����/]�ɓ�0b�PL�g�+
�4��Ǐc���b�T[�^�z��Z[������>�m�.]�s�.�ݻWԶ�4�s��C�ʕ0t�P,X�W�\���;(�~ܸq(T� �O��Z���-�BW�^��uꈴ�J�t�K�Q/�u��ptlcP64��y�;��l�����[L�<��v�ލO�>��\�Z��Ο�>~�(�e� ؐM���Ә럩ڐ�^�"?��C]Tݾm�8רq#�����5����ؾc;ڵm����;��m��V��}�\�JUܽ�֯_�J�y�y
`;[<xP���ܹ�0AⰣ����|�?q\�מ��=�+TB��[D-g:�a*�l�	0&��	��[R8��j܇	0&��`L�	0�D`8Q��1H�X�Z������;w�$J�,	��곢�	�;w�ê5k���3+R�����?�VDF����w�.��eKA)sO�<�F��m�@Q�4O޼�??U��d+"��UkA���C������O?UC�:6��<�����E��l�Rd˖E�^�}p�u��Ŋ��w�b�i�y�&J�*�	^�Q�L)<x�S�N�_/�d��7v*W���FV
��y�$v��'�8u���G�E%�R{|�����k?W�7U*U��������e�`n�UD�#���»w���5kUcyx��矪�…�P�j�����O�Ӯ� t���{E���/qhժ6m�("�&N��k�o�t�R�m�/V���hժ%vlߎcG#t�w����S�f�,��'�^�K׮����m�t�b.\���C�`w�6�B�M�B)w��S�LF�ҥ4֪�>;_Y�Ը޳�iq=nj��2���W�E�ެY�`��8�>�\�r�ޣ;���#��7����L&C�R%���ŊB��L�6m� 8$���Lj#D=Wz?l޴	�N�S���F�N����64���7Ou��
١4�۶mCll����yϞ=����͝;W�-[�®];E���˗#..V�ܤ�c�ϯ�����}��E�
�T�`z���z��M�Ν[<x�L���gP��q�Ƌt�?|Ĵ��0�k�d�0�E;E\��h��+Vc�~�Z���Q�]���2I�={����Z�l!�gꔩ�������;t�*U��~�����yl&���7M��ozy�9&��`L�	0&��`��_bv0`Xj�SW6f�I	���Ȯ����Tɒ�C��
X�f5jթ���1b�P��� �<B�%�Ϫ�
�vbƞ=�DT٪�b�ur�������=���i��.�ѹSg��X�t֯[jw 4Ç���7��ϫ��R���"�t���me����!h�v�<�E�c�����_ѩC;�>}�V���u�UsϤ�E�$�6i.[u�׮Y���ly�nܼ��'b���=ӧNA�"����Hh[��r֥J!<,L��k׬�O׬��kW1}�d��.��ce���Qر#���1t�H8:9�ƦN����-[�t�<X[����ѹS'd͒Y��S�!N���^���L���*�S�b}��P�@��
q�U�2�Q�M�4�E�=�q#��/��^�Q�JE�v�٬�i�ț��LG�ʕ3J��5��8E`#L�	0&����C ��q�8G'��eL�	0&��`L�	0&��-��%u`�_�H`}�$oڍAA��[�k�B�_z!	���6hݪ5����Ut�D���<���}��8q8^p��D�p|{�L���"�EtlL,P�Z)�X�hݪ%l؈}D��T�T�X�*�gN��7�m����!�EV�}��Ez膍�?$9,��v�T��hdU�"�y��=ڱC��L^���N�Ư���͎���<`~��B}���*���#h�H�j]��k�F�_F&@���A���͛���p�p"##E}�)Sg��n4�m�
���Ob~q��T�G#
�<"�0�[�+��OE��OC~�#���W89�S0(+��M����	����֯N�NJ^)Lxs4%�I�XNi�l�	0&���7L���qX���
���`L�	0&��`L�	�H��1k�/4	������sg�2eKc��A�]��H9���S�����J	��>|�k���H/�
���
W�":�<���3��S$WD�j	����c箝ȑ�\�m��p��4�m�}{v#gv��.�:u�e���Ѱ���J&1�C5{���R��+V��������[J
��⚎'O���s	ݏ���`�7�:�Ѽ�V�Z�…��>~�A���i���`��-Ȗ53�4m&R�f�����L����v�U��(4���>��b{{��o�������KQ ~��>F��];�h���w���`�<�L����8����a�mc›��N��v,K��1&��`0�g�y1&��`L�	0&��`�@z��S�O���쌆
��pss��"�D[7���ԩ6��J�L����"?����C��2`���LM�ױ�ƙ�'ŞR�FV���<���ѹSG4jX_'t��SJce�!�G�V��h׮�Fϝ;�ys�`�hOT�\Ν;!��i�X�7�G�f�:u*~��6�Dۓ'���kQ�U�CB���g���U_�B��+�={6/\$�{���eKՅc����NĺQCܾ����v0T�%���q�L�������kL�'ڌ큊+�{��8t��8�ŋh�Q��*����
+��uK�x�����FѢEЪu,^�Y2e����)����g޼ț7�����P�X��	�Q
H?���R�'t2��ф���L�	0&��0~�a�d�Ɔ�`L�	0&��`L�	0��D ��ư�|:�,|g�ƃ�"��ؿ�5k"R0S�c�q;z�hnDc[[Ejg��a���ɛ'���U+i��_k��<	+�$G+`���z�u㖈L
�(Oc�T/e������I���֭�(_�~�0ŋŃ�0u�4\�tYD��;U�V���'1w�<���Ƽy�q��~��>?-��7k"Gj`|����}1m�T�)U׮��iS�|�HsMi���0��&8:�|����/_>������P�纈>}Jc�s�_�]0oj�E��w�!�͜��/�P�����O?U��̝��1���U]Q����{v#s�,?a._��jU�bڔ)ȝ+�h'Rr˨��<g5�v8~�
�ΞC�R%1���ʖ³�/�کmU�O�R��R��7�	o���6L�	0&��0	~�a�$+�F�`L�	0&��`L�	0��F ���5���z`}5�I�S�%iO="TJ���E�*U�a5�TiW}�5�k�ҁ�Z�Ȗz���i��
�S}�Q�O��jD�9�>�r(C�+�<y�mZ�F䉣š2%���d�>��im�Wg��hZ뭾~JN�Hd
[
^}?(�o}�ّ⨽���YNk�J�`L�	0&�ZXN-Һ��#�;V�D�"�1mڴ�71�	0&��H��$�<y�N�ҥKa„		��L�	0&����E ��Ƭ�d0u�V�:5�REĮFWm�NJ!$[���S���K�<�O�4�$7}�c�'S��7 A��ܩ�tdnb����DB�ib�%!�W
�o);�*�	mn�Mhh>��`L�	0�0�g�N`�n޸��
�*S���?��`L�	0&�6	\�p��:��^�B�����`L�	d�]V�VF���^81ˬ� �.������hm���W܄7GM?y!���0�PR�k��1&��H)&���p��pJ���k�ݻ���zuI�߸�~㙧:����2����A���`j��4�הGdL�	0&��]6��i P��߆y%�Wb[��模�<����S5Y�d	��˛�٧J��:j�c���W@�>}P�`�T�C�"�פ��)�
�d��2�1&��01~�a8��c�ě;�����ʕ����ҁ<ŴB �樓�?�Cf�������oD�+���`L �ҫ�s�.899�v�	�F�ƍ�@*0��QCDGG����s��7o0l�pX[�M%�u��G��0lݶU�R��ӧOcΜ9(_�|�,c'`�>}B���jW���me���'��$"%��P���#x`&��H�L���v���lX�I6B6� ��RF���3H����ϜGdL�	0&��	�W�D�W�^�ѣG����$�̙2#����?~8;;��e�1��0��QC�Y�n=���{{���¡�z��%���� 0pN�:�woߢBŊpqqѶ��}��	7"22�@�:u���2��;w�����3(��=��{!_�|Ў���5`@\+�v�,Y�b��
x��!V�Z�7n 6�ʗ� �'��]?�8w��u�`nn777T�V��{�Y�f���S['�ٳ�޾��-[�/�3g�S]�~=n߹���8�+_}z�A��ET�H	�� �f�z8y\��*X�ĸR�U��P�N=D��U�K�ޞl���R�8~�߲܃	0&��$`��8,'�,�I��f,�|Ë�ʮe��g8��p��X�:�yT&��`i�@z��*O�H5&�9j�///\�z
�g�ƨQ�P�lY̘9Ctٲe+vlߎ~���p�˜2u�� 7u�T��V�^-��!C��K�PZi�.]D��R�%��P�#�x��bLm�W}���"OEb�ܹ�R�
&N���ߙ3g�͛��:e
*V��)�'�cǎȔ9��틜9s����K����Ι+��
�8�?@K�!_,D����7�<y2*U�(�a��OJ�{��ؾuʕ)�)�'�H�Bx��%:u�=�w���g�-��5+A���2�\,C,���D$��x��f��ƹ��Q�@x���U+��GODb��?���|��	��8D�"N���1&���7M���qXN`��M���r�E+�0q##d���-��x��p�S(�cL�	0&��	������q	���>�_�Ģ{���������˗X�v
�dɂ!C��ѿ��z�jdϞ]Ì�s���Ë�/D�-={�@�b�0{�l�0�f�Z��Ţw��
K{ IDATȕ+��X.�#�O�r��"m����֘�2:8s�,ܨ1n֬YD$0	”}��K_�������Q�t�l��f͚�V��B���`c�l���ܩ�nތ�.^�l?a���
4@��-0�k"j֨�����9y�
�D��O-��Nm��o�����X�`>6o\+�5i���}P�jed�$���_cW��1&��@���3�	��Iڲ�T'l����d�����R�-�p�3��`L�	�ei]vj�6-��1��F�r�����L_��ڵ��?^��Ӧ�B�
�ҥ�H�L����4��sN�0�\^�~���K4��V���^]�N	��G�,	��[�Zu�=J���Fk׬Ń�D�z{maY�wJ)O��O::w�$��q�~J�r��y�Z�JD�Au�]\����ƨ}����w��x���89��B�=r�6l�����`޽s'���&l�wVV68s�D|�^���&������2��!��Q�!#��sԪYU*WB�z�`a��k�b܈	0&��D��$aK�N��Tc�]8~�%��P�HԯWm۵�y�Ψ����Ξ=�sgωKϞ?�Ǐ�+Wn-Z���Z�n-j�$����#BBCyJ��y�⅘�y�r�J�[��5B6s�'So޼�ѣGſ;���ɓ'0�d�
�t�Rhڴ�Hu��'��GJ�ùs��s�H�#u6T��=z�&���}��T:<��ϑ�2;��͋�~��l���*�I"��ʐ���_��]����u��O�b��:���ˇ!C=���/p���^�{��XO�Wy�����o ��̙+�Q6������B�G���ꥳg�!h�\�rcǎŭ[���?��X�"Z�i���čRѓ��G�6m����}/%�z����k	��``ԞL��r,cޣO?��]��u^�7�P�B�W�>�:9!o��FM]��۷oq��!>tH��z����P�ti�5�?�o��`��i
�������E�NL�	0&�L@�`@e�L |
888X�t�k��Į��Уg�l�������X�zr�ȡA�й�C��߇��ڹI�~(�W��#j�R`�@�Ø`e]ݥK��{4�,��(���'�1cJ�,!��A�
	��"�
������ԩ�ؼi�F4sB�FJvl�����c���ekX�X��	�ƈ��0$7�o�];�`i�->�W�/&&gϝ��˗}�cb�"`�ܮ�9H	�gL�	0�o��_oU
	��!j�ҥ�7�x
M�41cǎCϞ=�r���W≺���	+���Rsj�I�&%4���aݺ���[?��0���f�`��|���O��\�R�1t�ΕK��'����#����D1����!�^���nw���c�C��Ȩ޹b�
1b��r��#4t?&M��{����F����xb�~�:�ʔ)�c��OA:HZ�p֬Y+R0tXZX�/0�쫄�����V
�~�zQӆj�h���-�d͖��w�܅��u��lٲ���s�J���R�zaJ��õ�6�)�S���3�#s��w�:��ҐQݪ�O��mNэ
J�fo�Ӯz�j�j�p�mL���Z'mR��C�sG&��`&"�����Y&`b_CV־9r$��X!**
��f��G�)�#��	�~�(^�8&N�(jO�6��͛����
����c����'�c<UB,�3�����óʇ�v�&j�R���ô�"��}��͛��K���o߼�����wlٺU�"��WϞb�ⱺ-?�و����l��Y޸tY>�p6t
.����'��
����c�֭�x�"�|�� Kz��܅�K�S���t͊жvͰ" eJ��7V���0q���ؿ_?�̑]3ųL�4&��Ÿ"��@�>�M��f�L�	0�M�௷��nnSn��U��Q�8p����ݾm;�L�b�>�
���Q�dI�c��Ĉ���5ge#��;w.lmm�O_���;����$�E�.Z�P2U�)ؙ��>9�g��v���}P����KK���iӧa��eF�5k\]��7F>s��<yj�x�FE���U�Q�j���K�Ǎ_>>}��џp��_E���9j�x�b8:�18��;�Td�N��m��p��D�I���^J�녩�O/�S�c6�)��b\p��
ԯO�h�;K���>}zc�ԩ	�C�rԨQؾ}G�m�=$խ[7Um-�NiM6�:�;���Z$n��`L �	���y8&�B��<`�@<{�T�Gȗ?�Ȟ6p�@�=oٲ�"��ƍE�m�XT�XQ<�NѶ	��$�b߿{�J�*��*4	���C�"h�@�?�K�q�F����_�r�]���8`��޼~�e��p&�֭_/��QV8�A�)=�K�tH	��;c�tQ����QD�*ے��|�{:T7���;�ek�ջ��wi(�Y��ee���ذa=ʕ-�)�'�h�B�		��OFaμ�عm�F�_:�r�Zlذ�޾E��*��_����98-�cd�S��ee�8�D��ŋc��Գ��ѿ)�>f3L�	0& A�௷-�	PI�ќ9sЩSGɮ��(��K(�и��7]2=�h�(�=�
u�򠔙}��J
s��Ȓ%3f��F���z#t���)D��+Vⷉ�qU�
E�nذ�`븱�$�C�Z���:M�:�~��'y=iܵ��ں������_bcu��]�vvv"Ӯݻu��X[c�Vy�����������ؾ]<���#=�^���t-��b
��CS]�ز8��PG6fn�m|��EZ5CG�~���:}Ғl�uR�<5�>��"�&��`& �^`*�d�AY�(+�R���c�[k��ښ�H�祜��o�\��#K�՞�7�6�줴_CNi��g�0j�!�y��}n��J�aѸ��a�Ѽ>~�o���|�r�ۻ�F�_e3e_��jv�T���.��x��9EW��1&�����޾HI�R*S�Z}�		.ٳ[&5J�.��MS��_�UR0˛7��Y��ܻOgz�p޼��^�?���ڶ�c|�)"u��a
v˱3(H<I5����-[����$����'Y"?���������;�R�!���h��&�=��\(-��}���Iy��Y�M�4��'ЩSg��O�:�%�K��9c&-^�s��8~�xB�H�Oo{)��)�z��ЦHi�و��>��!�C9��N<=/����t��g��={vI��~�FK�#�pJ����I,5�>���&��`� �^�m۶]Z�����rq1�ɞ�W5!a2)����8�7n����ɢ'�)�5�F���L����֝�E�۷P�P!�1U�T�loԀF4"ơ���G�x�~�z�������cș3'���6�ܨ.���z�Z�:yJǎ�HR���-E:�w�kW����O�=Ţ��аaC�
rK��h_��-�W��?��3��|�3��f��T?���O���=��`L �`�뭸1TӦME�.	Yׯ_��+��c�I{Ϛ�nݻI������q��Uq�B���K}�*W����}��5BBC1m�T<{�\�E�*ӵ������N��ӧ�W�^��_���s"�t׮]Ȓ9N�<)��$� �����fH�k�D��Β5+ܿ��ܼyS�}˖-���cÔ����r��I��}��u�;|���6�x�H��~.k֬�٣Z�l�bŊ�z,�Oǂ���t�5�ɰ�~���7oޠv��x���\i?uvv����"�P�JF�	�T�i�&�|���Xԏ��J+	���K��;w��l_�F
�ڽK�1�?�DK�,�\�saܸq�Y����O̥�:d����}�>�%��x���n��6@z�K��^����ZB�'%$v��h�LNP���
!S&3P�pJF)¤}1Q�5��Ie* ;�*U�%�T�����X`��|r`�SjMM�NR��Cb�'�gL�	0&��ҟ,��C���Ŵ���"N�jF��_��i�yu�ѦҢ���+V�X�8�LO��[z'�X3��*�8�̬,��B��F�Ƒ�L��ϙ��Nj�Kg��3ɫ2���
B�f�м�=�;�-��`���Z����d.�S�kJ����IS�#22G��e����{t��Uܛ:�����=<��:бc��4��"��]�T�t������=����d�0�L�ܝ	0&��@�`8Ց�4$@eΜ	K�.������6F�fM%k��0�(
$���	"���c����AB��۷t^�5s.Z����H+^Lr�k׮㯿�D۶m���o��1�v�4������u�}P��	�v�:HH

E�9$혊]J��_�l�N��3�
a�B�
:�H�pttĭ[�u�9;w������.�|�777�;ff�_fIpuuűcґ��`�U9l�pɱzt�.��H�Q?H�p�p�[�s�ʕhּ�F��`��޽��}L�{�3:s<������E��ϝ;�<y�$뽐^����)�z����I	Iل&�>& �*U{��SժR���:�-Z8H���O6�A�ٳg뼟�s�ڷ�[o>�	��I�	@j�}H��>L�	0&�R�@��� ��*YC��T��Ώ^��I|��cx{��ҥK(V�(F�%��?�����;�Q�x1��X�bpj�NmہJBQ$���Ç�A�pj�^�yz����7P�D	xz��hѢhߡ�����E���S&#(h'�?NIf�wwr*�����/�h׾��7��]��?4X|�#��o��=<=E�N�����W���F�vGժU�ض1�vl�k_l��Eǎ�z�
�Ν[��V��`����>�Od����3h�~��|���T��FB熶v���!��Ϟ�H��6t(~��:.��'*W�����wh߾��'���۶lA�Lf��%:w��+���;I�m�w�}s{�ٵ��!
�:^�W��]�a#�V���c<q�"����9Vf׾��,}�'��nj�-���dra�qc�N��O�#uy70&����B�௷��(����.99}7[��*�)Pp����(S��d*M��̙+�F�s��o�l�T��D}"pJ�oݪ5Ν?�c���W�\�#L�7|��H��pwG�ʕO��RB�iѢ~����oٲ66�f���#Gœ��G���q�x�}�/|��T�h׮-,X�������@k��������货h��6��2Fћ:��е�ƍa���/'$����;�{�j֪)"��e�h��{��Çu�y%����Lu�H	���IJ00v��K��c0Eo��7����{��N�^s�ի'�0̯�����v鈿J�t��U�V�׀�(�y��:�`j�}H��L�	0&�R�@z���$-�0z���˯�A�3g��a�:����5j�D�6m�g�nq���vv�0f�8+Jb�H�1E�����ؽg/�45x���g1�GuZ����A����ѣڷm�?�� ��,_�ƍm3|�&B#e#񶭓�f�"�ܲUkԩSQQQ

œ9s�w���_�CB�ŋ�q�Fä�~=�ncS�"���;��	+	��M�`��1B�9z4��)~v�.ؐ�Ii��6i"|�����+�/��UD-I�B�G�֭1�</^ǎŶ���l������M��P>a�D�?N���]�����s�nL�9�<i�(N;�6Bئ��굅I��/0w�<L�2��	�� �*�7w�ټ�nق|��c�;�T��#+�o�T���Ѥ��(�Ia�&��@�&��'��`i��_oQ	P�/52�t��׌&/��"���$�^�|W�\�5޼y��XM�n��}�N}A(R����D�>�us�
(��M=�i�f͚IFk%g�={����S�6[�l���'ǼNߔf�\��R����U�ǘ���j�R��k.���H}��H��=���ڶ��֔�ɟ�W�|���PKE3��w��y�X���p��EXX��Nz�ї�5k�$�wz�괣�V�^�z�"�kլ)�צM��_�~�c%� =�%�T׋�ޯ%�6��c	�O���n<]�rY�e��E�X[�>�"�7�ޛ��]�ر};��Xt{�@7�ٳG�M��)�%?��߇���gT������#�`L ��W&�{�4%l���:{R�x*I��vԯv$��`��l�;�`i�5�άL�V��u�VXZ��ݻw���{���l�BT�k���
�Qc��i�|��;(��$��<B�C����!!�ȖED��6m������Ԗ�V!M�d)�C���+�;��O��cnn���!������g8�m�z�jGF����:c�L![ը!�J�BC��$��? ~&���_�L�`�ؘ�84�k�!���$���Z��P��_Q㗟�v&w�ً��0�̜	KK�EATt4�xz�{�LԮ]�5F3��
�uyR���لPK���~Z"zW.��[��-Z�lٲ��"�W]�ӧڴn�aϮ�X�<��T�N����R4+�o9�tR��{O�&��`�'�p�&Ղ>*o�<��݈N�8���z�u�������N�RV�_0��!x��U��u�4�+�їn&�����Y���u�����I<q��<[���)�T$�w�c��8�[�.��L�.���>���
��w	���IaW]l���T;H�0*����n,I�?y�H��}#h+���˯���#���z���
	�R�R0��=zꜢ�~��Y���΃�VZm�D7��>�v��N�Az�K4mS]/��z����2Hʾ�>&�>�)�]t�n��r��^�B�ʕ��Iv��tK$�wXi\_�qZ�M�N���!����eW�\A�A���`L�8W�]���n\�mU�J8x e�~k�]6��`�֭�e�䰴��[�q���[Z��s�޳G�$z�a�H1J�<�U.��;8"B<d�i�&X*�S
������a/,L.���c�?����� �P�ڑlo�)�`Cu���Oh׾=�����I0=Xߥ[w,Z��F���+�Iљ�SeD�����W���C�Z��$�6T�4�O���!��!�.Y�W	�N�;`ɒ%(�(���sz��%�����ukV#[6s�rl��M��'v�
��^Xx���&�Z~�	�{w��w�n[DZ�е[7��z�P���p޿o�F�`�LM����Hm�^ML��|:�4��؎"W�\hР��'���b�v� �o�u���vM~{�\��Z�z����,'�,[`L�	0�o��_oU�	P	�]�n����*�1��)�)֤x.%���v�*�s�t?��ҥ�1���w�}����J�megS�K�`s��!���;E�T7�k�NԬYS�t��18;뮓uݺF}��a'%�[O�ZC����N�4Y�n-lE�*�aH�z���z��)�4=1���:�Qm��C��/!���$�����a�Rd���^R:j��Er�O��b�\Iو&�>�z�$1#CC��o߾:�{}�t��4m��?�	��Z�������}2z�B�
�i��	$�@Z�ɕ��
?P�LwS�{z��^X�1�P�R%�o�g���a�:Q[��sjԬ*�B�3ϟ?oo4nl����.I��ƏѦ�]��5<�0�|��@)%�wʭ[6#O�\"r�R�k�җ�80�kʔ-�.]�"<,L�Tފ�X7��hղ�H}��QI5��9��{e˔�K��B<V���Bs��M�H�,��L�b�yQ-a�����?���Q#F`���j)��
�����
K�����q%n�φxʅsaM�~R��)x�D��R�UFS�%K�����I^�Ё�X�ҥ IDAT�p�\���W�OMb�aE�`��t����˴��DF�!C�b��u;&�D;;;���$Z����*����"p,++����܍	0&�2���"��R��6yw��	t��9E�'�q�.���cǍ�"�-Z���kB�6o�"���>�PNȦ�yS�K�`�o�>��? 1.����K�޳;A{���֭��Nj��[O��l��ǢݻuGx��F���]�7���v}||0�n�%K�䉓8v\Z@�(��3g�z7�Y�F�a/����׋�ޯ%�6���Lz}L%�R�����q��,�n�B=��iI6�:��M�!����g<,g�5g��O���3Զ��`c�HG�{oo\�z�¨�#Q�r%�s�fΜ�;��2�K��c4�+&R=�`E-�On�"e�*X��
����(T� �*�#�݈�p��H����e�DT��|���%�Q��2��
����+
��Q�Zu4��Š��f�Q2����+WVD������+Jdn�?{�ŵ��*X�w�&jb�%��
���^@c`����;"���"
��'�MlIlQ����;���Y`)z�ދ��v~���u������	�����K�~cR?��?	�:���Fmj+P+�?wN�Sy��	r�̉n]��^�:Z�W�u��W��݃B@�B���D���ߘK6��iI�%�ט�
5�7w�H?5m�\�|�(|W���N�$Fj��'6]j��X��R�J֯�2I!O�6
W�\��iSE��g�>�	P�|9���������APP�g�R�*�u�*L ��ٲ���
�7����G��M�+S�4"?D���WD"{�^���ջ���D~~�8}�4ޅ��x��ѣ�xg!y��#18.㤱(�"65��ϔ�NV����X|$�Y�v1qx�<^\�	0&����IG?��:u���]�ӥ�W��#{�lP�����ŋ����L��	�R�A'��j�j�:yR6��8�ΝgO�cǎ�K�`��յ�8������+ؘ
�_�u�k׮�A�FMfΜY�յ��T�d9��|:::b��m��jP��]�nTvǎ�\���sS�_�…ġ	��)���oٲ�6�b�޽F�Y�լd,)a-�ّP�E|�O�{	��/%�L��M��D�Ϝ9�V�Z��T�5BZi}K�bNm9O���`��g,�`�`�zf�j�t�00٫��T`*g�3���y���_�P��
:�[O�cuF��O�����Sk�OI��µ�.��5����ضc'~�yS'O^��بk���Ө�I����_����9��շƒ��;W�߭��S~fߜ�f�U�-�R����%�,=���'�ܷo?�x���E�mËB��ܱ}��A�T�E(��͛�cǎ"Ltj��"����;g.�)��8a�'֯_��b��A��Q�I^�-[���-[�}�6���_�
S�NAѢE1u�T14]�V��q���eX���.K�.�&����8p6,D�IV����c�<y
nݾ�bE����M:����+��|d����4m>�3g�ƅ��7O^�;eK��Ӗ"���`ɓ�I7/�!���������#F�O߾�?4˔)�/^�S"K�(W1�ޱ};Ν?ot���o��@�dfL����ʼn��+!1���)ﳊ?���]:+A([�F�Ȟ=�����+�.]Z���&q��5|�pl�j�FN����P�n]����͖�F�y��˔Vtx!�ϟ���۵Gp�� ���u(z]i�a���֒9[�_������2P�֨���D�?~��+�ng�W�\EV
h�Z�x	f͚eT"������~�f}r�/��_漳��#�p����N��"r�J��2r����P�
�H�b���$�̞->�#L�R��=z�D�6m%?nJ�;�cO
�B�GGEa�-������7�ft��
9r����˴�)��i��O`�I���Y�{�{�ƫ����0]]:w�^�0h� ���o�_��Й��:N�s#^�f�ć�<xr��*�+��i��
>�� K����_o`��Q�N�&�5gʔ��S�_�õ��OD�j�Q�f-�s̒E���כ`���`L Y`8�%��5�
M�~��o�'���
	S�XQE"�Rz�'q�ĉ3��6mZܻwWiSz�(k�r?Ȋ����C���̶K/�//O��>]��Μ`��}����P�<{�\�X�ܹ��hI0U
�~���~�Qq�W}��A��r/^�(���y�ˆ:�ʕ//Nu^S�LA�����/Q�1�K�c6h��
`��]"���+o�<"�s���?[��4].��%%��e����)}/!��e�dn�26�I&{�8U��?�42�I
>�$���C����JX�w���	@�}?X�@��I��/r���x`8�e��tX�X��^_�L�+���7�ח�bb�c;�_�I!���ϟ=3��+���µC��������{֔8K�u�Im������Q�6'H��#�㴸
Tj��A�&��E�l�ù�PΚ�F!�5�׮S{v�B���6�(��E�
Ë�/Q�bE���{T��t���s^�~#�~�F;�ԩT8r�`���`L Y`8�%��5�S�С����%K��<��L�¤��<��/[�B��aC�P�R��q�ƲB��٦fjȐ!ضm��m�]�f
jԬ![��?�@�^�Dx��Ŋa׮]Ȝ%��l�����}#'�9|�J�Ҏ�<$ӧw0��:t~��#;u�$r��;vL!��D)��1w-\�s�̕-BBDz��P�pa��'Oq�����3��z��1���cT�!}z1G�Lt�?m۶����\8�ƍ�k3�ϟ�1���ׯm(	��Z����h�6�/�����`�h������ĉ��v�Z#�������gg��T��^E�J���|�$����L,���VǏ���'W;��J�|��6\&�H
x����ྔ��ӿ1c�t�������������ɛ�/��<x�`<}�T����כ�����֯�=��ؚqZ\-
`�*Ur
"��Nn`IΘ!=����s.��_�sg�ի���6�Ν;�>��5�Z��m�c�L�	0&����nF�*@Y#ߺu5k֔5r���hۮ��^LL,�n݊���!�{�:r�s�Ъe+��Ƣ~�� q�lٲ���d`PP�޽�ٳ�ڵkq��;��V�Z&�
�i�Z�.U�R�J�?����];��""��R�Y??�I�F|��'G'Y�J�*b��Uȕ;������b�Fa�)�,�7���'�����/V�\!D:IJBy]���R{Z�R��&NJ�TqF���.���.S0�duvv�r3eʈ1cƊ�6�ӧ͇��c��f�Uw>��3f̀ӧO#G�zÉ��gʦ�c�j�(YZ�քR�Ԗ���l�_�����$�~�t��|LD���*U� **��4i�`����/�A��S�NÞ={L�J08��6�'����t}r�/��_漳��#�p����N�0��:(��"L\(�H
�Rz�7�~(��C��{��U���С=�9�R�с����z��x�b,�V�,�I��s�΍iӧ�ë�F��)�p�޽��7�`ҤI(R��M�&f�c�N���y�iLtm�ek���h�(M����l�W������a�Q�l9u�͛q��U,^�)�!�bz�\�rcnjơ���g'���Y��w�>Ȕ1�)�Y��2&�����nI�U��F�_/*T�ӿ��5���K��׮^�
��[�P�"�N�:Ff�ҥEh�%K"W���������DnëQÆX�fu�&b„	X�N�%>WӦMŏ�Ttt���q�������a�'�$ȓ�vٲe�+o�X*�߃�5GFF��GF^������N�&DZ�m2th|���5%S!OO/̟?�d_4^��L��_�%+K��-�{�2j+�ϟ�A]�t��4�ȇ�
�d�+��%[�	aJ�KhM%Ek��c"
�d�ԩS�b�J���\�`ADFE�%��9��<iH$�E�\�%��;�lx<�x&��<XmE���W�/Z�P����Y�dA�ܹ��)kf�s��@bH
�l��Y��l�Ç���U�V-!�;)��G��D�J�B�5йs�J*�0������!�x��%K�gϞ�����ĉ O��%J��y��������I��HN�q͹����E`���
:�gϞA�X�
����0��o߼��χ�0e�Tܺ}E�Ť	P��D�J�Έ�
��@b������~�����3g�
;���\$�2�`L�	XO�`�%T��
PV	��p�t�/!.Cx�����5}�ױ��Jۡ��C�лXi}��a�d
Uk+vR�7��@����WϞ�y��z�#"ޣU˖�Oj��%J�09�Y3ga�%��*�<͗/_ѫgN&ot��Ƒ#G��K�ySxR�+�ϟ�ը^���1;�U�V�q����T�侖l�_$��)y/�u��.N�,ӼS$�/*5�l����;�6�'
���� č|�X�,����1�pJ���0T@D6N��@�'�Tp�gkLm1��r[J�m�){X���Ls�L�	0&`+,ۊ��v�*@Y+�)���ۋ�kJ�bE�����F�
�K/aذaE/S�v��Mx^%�E\(�M\D�T*<Fz���^�d���ϓ~��5ka O��/ySX�nݻ�ҥK��1,ԢysxzyiC+�j��{#&M�(.հq<d��ݫWo���|�i��DmZ[{�=ڷǬٳ���H���37�ŋ��PԦ�9��������MJ*%絔�EB؟��Z#	�@�Z���0���g�ر�l�zS<h�ܵ{�����;�6�'��A��2_���9g��O >0�����պu+|��+<~�۶mòe��F�17�G��ߨ$n����0w�lD�`��f�`L�	0��%�p��e�L�}��
�(��٥!R���).\dG.wi�H�\�
֯7jڰ!)gȘ1cԑ��Z�z
���3��ְ+��̝��+ʎ–�?~���1����g�D���f͛ɖ��$@R8���HETs��wwt��QQy*���7������:U*8�8c��q(S�4-Z�ٳ�赯4�U�E_o޼U4>�)��1�;�d�|\�?s�>y�?�(���^�~}1~�xEvĵPr_K��/�~��wB2��m�?&�,}W22k:�
=z��ܰa#��	-�wNm6O2����_���PE�%�*s��I�R�P:��H
q�I����O?��Eq��"�ޤ���ڵW�o]�Y�[��y�7q�0���5#�+�2g�����/)�$�����
_�&�M�1`L�	0&�l�G�U��	$�s�G����*@�E��<p�V�^��/�cL�� �ΥjU!Ȓ`7g������<�����΄�ɓ�F尭W�z��#���E/�}6����|�����'	ݎ�����K9T,]�d'�}��Q��Ћ7k�,hѲ���yr[*H�\�v-�=&�M��PI���:v��k���? ,,�<��/�1cF�͗W�"ٳg�VkѼΝ?�׌��̆�Q:`p��!\�~�h8t��r�аAt��2d��(�ϟ��[�l��g��;u�$���[KM$�侖l�_$��)u/�E�P�,��U��;wP�ZuM~�O�0>�J��;R�%  k֬AHp����Y�&�G�����	N�!'�wD�ϓ�őX�J�'��2(�oܸ��x�6\@�����D�=�g����Q#Q�FM�{�/&��*�>�K��3�(�ɯ����Ӱ���s��~r�f8)�4�3E����a?�	0&���<	��7��xɼy��o���W/��C�"E�B
�w�O�����Ϟ=G�4� OS�G��߾u듀��?�����3gN-Zq{ї�(��?�!<����-^��5l�������#�|���R�y(P��"�4!�!�D��
�3f�K��Vw���+<~�H�']9���dΒt<�FL�8I���#�o�f���R֒�����?%�%�~��������1$�}�oܿ�/_"g����o�A����;��e���!��OZ���XL�8ٳeG�v��`�?���w�᧟~bpb_,'6q�ϐ@\�`�����v�jɒ%āc��VgX{[�������p�`L�	0&���
�� 3č0��C�����СCP�N��x�x�����^�py���Fr.p��YT�TIo��5•+W���x�"�j�*9��ccL�	ę?�WL ���E�gg�i�F�W*��>\�vM���͛�@�<��+7�)"�<z�XD�)_�<Z�j��Cה�SD���w��!�>�� *:
��]^�|%"�4h�eJ�	�NNU�.<��\F�E�''����0��*�q�J�,)��+mڴ���_��w�Y��`9d)H6<G�����]	���mm����O��!C;�mǒ�ִo�.��l�r4	����Ǖ�5�{>��7&�zܵ��j/������֚z֎�T��������>j��\�	0&_6���p|'��3�dF`��u�0q�U�Jѭk7T�VM�{�rU^�~
������(�6խV�*�����u�
���#�ֽ;ڶm��ݻ!o��X�f
�-[f���x�"ҦKk]'\�	0&�B�C
���x��`2}޼yx��!J�*�2eˈ�fpP�� �E�m�[ԯ_�p</����HQn���Ȑ��}������y��V��h�]
�5k6!4W�\˗-Ã?�P�ٳeÕ�W�%KVth�^���D�B���Ӹ{���/_�|��l�iɅ@\`��ѣn����^�|�רa��,�!K888X�|�K���G���E���e��;q񑥗�zU+RS	ڮԿ��5�u�`�q�G�?��Rq�qڡi�ڑ�G�4*��|inI�mmyMgz�`�}�s�\����9�Bðm�6<~�Y�dA���E��T��P�l���*���_�ھs�,=�q�5������8b�ZӞ�sW��1�TP���\Xp�����J������1����Mn����澞���t��t�7�G�ˁ�3&��%`��8,[;\�	$c�ϱ��#���_�QR��<y� k֬����' Sy̐�L��œ����իW@J.��N���(�aL�	�8�����������޽{q��UDFF	�]��UѼys�G��%K@�M���k��͛7��[�N��c�
��w�x�������7ߠ�&�	��Ze��ѰKm'�\j�K��(_����ǘ�7�/Y��8PG׳g�0m�t����RE�#�失QIN ����(R����gdÊ�˅�ܡHK�,G(q`:����ji��}ٲ���V����f�:.^����ȩ�:���_G�*8vZ+`*��bI
���Xaa�?�[j\#����Ϙ�;��@��=j$ʖ)�i���m����3Lܼu3g�ƽ����W�0b�0T�TϞ��	��%�cƴiȑ#�����X�j5�O�,	D"�>bƬY8v,t0�}�0ԨQ
�ʴ�=GV�=+��>z��`Ѐ~p��hu�	&�+��(d×��FG�]�M��
*`����و�ch٪����T�+W�m�W�UҎ$Ƿ�x͢��JB)	��"���ό�N�6	�g4m���{�X�p!V�^)�����x庤���41*/���NUq.�Tr
���t�Aƒ�䂰�`![����an�7uOg_�8�H#�	�*���bU*�4U�f���c���`P=�
[]JZ�{�
�t��,[�;w�"66Ŋ���Q�Ҷ��qe&�>[6����g�jذ/���+0u�x�N/k$0 IDATE
�v�����g(~��>=N��p�Iɛ�fL y���=?_���
�L��'�th�?F�����vzȢ��Ѹq#����{�ܹ#��N�/^�@��eD}�H�%�V
1}��!�L�<YÆ�'O�ƍ�[4.��hݺ��!�2�lg���La��o�&<�,\�?��/B�6�7���K0k�,��������ރf͛)�39���ȏ��KU;z�3�miE`�R�)���G���)�u�����ڶ�A����-9�/�'�g�b�׽���k��hԸ1�6m����ظ��������]t�e؎�Mz�����ѱS'ԫS�!!X�d)v�ӧ�FڴiЯ__�Z��=5z����!�Я�t��U�!`�zo���C�.]�ۯ7p�t����g��e�vF�tG�FM1y����\�|	?��3�+�T��aC?M��U�
���)�M���W�b괩���	q�|�r�ӧ�����ム� �|��ֺu�*����Y�e����7nD�t�п�)S����6m���/BCC�>�H5ѫw/!NYӎ)��P&�n�~�֯���n\��ɓ'�K�.�����ѢEK�ܱٲg�q�+w.PJ�qRfEf���NUq�R�F����A�!<:Uř�SZ!Tn�;n<�Ԯ�Z�j�����Ά�GW���}M�'$X+,n��z�JS���~E���P�p�5d)�J�i���5�� �'��f��AS��s����D^�}]�����L	���!��kܤ9$�F�

:�E�c����Ó:l�<&���
���s��1[�٣':�.�[`��a�j#�+߹}u����Vr�5�VR��0&�R$�~H���
Z�L9|�+�^B��W��Ɇ
�P�BX�|�v�<���$��{��
l޲&�G��9�-��}���L��5l(�S+V�/k(������ny�?�e��
��L��p4h�@�F!�I�g�?���`���UX�Õ8�$�޿_�P�B���;*�ܔ�ֹ;nݾ�T�1�C�������B�lԸ��K�"��G̝=�˗����\��o����
b����	�'��p�C��?��S�MÝ��P�p!!�Q(}j��%�M���̙���+�ݻ�b�o<�_�ϏQ�_��zq���/4,�����tʺ�����Q�ti�R�"ޣQ��رc���o�اV�>7m*����1�n�w�c���"�D��$"7�m�Oi���>DF�>��P����ֱ#܏f-�`���(�U<|��
��۴mH�	�$ΐ�>e�T���T���Z���u�ٱc�:u��A�Q��q��5q��g�z�<*i_k�%�ު�ƅm�r�����ϟc��7ԇ&t/z�v�؉>}���g4_�����Nm�={����Ι�o
~O;�+��_�Ġ���1��h���
-[���Sv����C1�|�;�ʗ��&_�ۿ�V����ݧ���Bc!A��7L��eE0=�"��(b�*6V�Ys={�
3f�ƅ��o��cǠl���	��=G:��-��^bʔ�b�Q�_(�+�7#�b����‹��-��:����G��U�E���#=P����M�q��9�L��bO�~�:��Ǝ��T�.�!���:��=6�����%K�!��)�>&%x��;֬Z����b�^]�@b�:��)�Ç�|YuTɎ޽z�g�F|��X�n��w*�4��\�����H�Z��g�t�L�������^�l8��.y� ,�]p��f��?��QΩ^��=Щ��V>y�|���~�ju�)i_����3&�Hl���D�C�	$
�X����g�Ƴgϭ�BV�?HjԴ>�U%Ba
uJ;۶m�����Ӭ����X�0&�R�~H!�yӒ��?�p�"F��t3fʄ˗.���H���;g�x�J/�)��o��&�=�G�K���M۶m��w��ƍ�ػw����+��Km�y�
4@�\�D;�o��[�=�T&�u�֋0r�K�֭[ѬY3���⅋�ҵ��b���l���C������͇����!�,�*q`%�eJ��s��J/�+jV�5У{w��o�+�/c���ظq=�u�p۷m���0�]����7_X�)14z!&4���ce�n�۷��ӡX�x>\\��g�n�о.]���˗�v�zX�r%
.�����
��`i|��6��+P�P!���&lܰ^�/	
�>�����>m
F���U+�ql߱��s1h��hA�E���[��l�b89W�;n��!M��BؐR�!F�?�N��Ŋ�}����R'�N�>5��\�F-�:u¤@�R�~������'w.�7�J���L;'O���;�ѯ�y�Y2g��eKP����g�$0˵O��l�]%,�����)���:":*J���;p�@�=�^��(eD��9�|�2� J�q�4���~���I��(ۻwo�z�J����~��a�y^V�c�C��%��!a�w�^pww�+}/Heiܱ�1"
�>^�f5̍���x���C��c�OB�j5P�fM\�x�-�fMt��o���Ohа<?��Ȝ)���'OX�{�B!S	�p	����mEi}z���k����R$�ضE�>헺�睄�k�
�|͚5"�{����^B�4�i3f�Ç�2xr�ȮEv �I�wk���Oc��ؾm�ށ������y�D�۽]ܓ��SGt��˖.Ũ�b�נfϙ�ҥJ#M�O����1�F�j�Q�f
1GK-��f��~�y��b�L�f�h���>7�
���#��V�?��L�J�a������?`���MW�|yš��y����0&`6����Mf�eIK��:t[�l�6|�6�䀾��{���O�ei���v�	�ѣG���o7�ZΟ�+�5
�[�N�^�9&��@�%���wn���Y����������L�2�~��pqV{2�G����믿����ٳ�aÆ��cE�-[6�󈉍E�b����1%S��wx��ƒ8:��x	D�;%���J~��S��~[���X�j:vt�Ç�zcƌE����|1�l%S���}�U"0�r3����ׯ�'�)`z+�'LЋz��b�B��K���pHk����Yb�Fͺ8t�2�� ���$�PJ�H�?׮SWx������Ѭy;''�<�t�� Z�6�6�w����\��+UƏ�#5��׉_J�

��{�w�s'T�T	?V�R�>��ݺ}>���!�Cz9(B�N�0V�L"ѫN�ڨZ�>|���$"P���!�?�L��h�]�0�Ց�ј<u*�����u�悁�Ku�
p�F>uB�sM�!H�@ۧo_�j����7�l���vHH8hjש#��=���c�%Z�Yw�M���!�	6|9jjO�ׯ?�?{f�XW �pͮ:���~~�F��"��ߥvt�A�q��F��1--����L޼�\P���}�����*U�도b]�̍S���>��|Ӻ�[�!^�~�m*u�T8��o��^��!ðh�BT�T�S�]C�P7�1�7����#����9����$��8��iTu��3!'���Iu��	9gg�]�h<~
�ԁ6��9p^�6�f_dϚU��$�o����~�\�N���Ο��y�?�Q�s"7����ǐ��ӻ@B7`��F�d�.�=�U����҈�v������J�
����CO]�{B&���>w2��,BzP2��y��ߺ��70���`Ƀ��3t�������Ŀ���D��E��)�E��1&�� `��8,[1\�	�D�^��q��.Y�fA�ܹQ�Ȗ��y��m�B�B79dȀR�J��˝�M�s�cfL�	ą?ą׉%��~dd�ȷK^�r����G�ާz��Zo[j�ÇV��է���2�{�O�N�X����|1k	�R���>\�k�<ECcXS�
�J&J�ؔ;�L���j�V��)4�Zx�U�>��٭P�	�u����;�!���[�l��Gh_��������8�<�"�~�����
��B�^�p^���ȷ<p�V�נ��m�?_��}�G�i���~psuŶ-[�6�=j�m�ݻw#�C-V!<x���IM��0�EXh>D~���;7l�F
�6D��m�7s��9��2l����I�E�X�h�Ο�?�a��<�-�b��z�PX��5j���cHk�Bd�Gԩ['O�����R^�S�5�\Q�I��O���3��C��������'o,^��*�RR=}�T�׵�W��.s�1�1�{Wӈ\:L2�c$jש���3“5u�Tz����M�x�ʕ"u��q*ٛ��!���];w�!]Z����~�c�>̜5cF�B��	����o����aC�����:�������R�GM�0���TϩJU�����]���YB	���qI8�����-Zc��!"����hԮUKO6B9�c�؋o��Ξ;��h�[�L�ܰ��O��B/k�V9�Bf�}s?e ��Q�V�Fm�o�F���(�D�v_K�����Ƞq�	פ
���!�=�\�	0�$`��8,'�<qSL�	0&��`L�	��Ff�L�	�	�Z��3�r�W�k�O‹3�i�c֮�P���2�j��҆q��{Q�{��}4J}_���LX֬]__P��={�"[�LںC�
޹�Z��֭�1a�|O89~�_XΆ�g��h��*R������ORU#*Ha$l���Wx%֨Q�>���8z��^�e�����͘���Ə9�}�/�.?u��#Gp��!,Y����B�J�KB�4���1k�<�(Q-�5֑5��s�!�hެ)�.]��vvp>L?���4o�b�șm۶�����f�
̙;
��k�rxv�����հA}9r���
>��j���(k7	[����QSþw�Ǝ�r?���!C�a��TҪukt���7o��)�Х�iۮ�E�c�N"�*��= �0`�8�?m�t�-S�F������rʚbJ$9r$���u�g����T�l��+W�D�j�0h�@��J�);�Z�N}����oj�qz�&L�Y���ӻ72g̠z���/Eh����9w.|7n@��ٵ�k֩�իW����Ջ�ڶk�%�"����D���G��N���9L�e�����kѲ
�M���eJ����vV�Ե$4jʛ
M�Ph|�J�;�oذ	f͚��E�a�
شi��,�o�J�#��+W�c�18rp�`7n�ddɒ}{�B�L��Y�W΃Ԗ9�޽��f��hڤ�ho�}8xB샒�nh��Y⨳y�t��K�(pss�J�9�Ϝ=�ukV��}і{.���@���o�o�'&��`L�	0&��`���z6<X�<U��/���&��d�<��n���S!�?""�a�X�`!��0��8�}�N�(	�O���iS�
������1�Q��ص{-^�c���LX<�?O�����@�bE1a�x|�M~q_7�4�3g�aμy"'#�c�ק֯#̭�X�a��g.�.g�^���'?~�ܹr�_��hP��M%�*;��}w��4,D�ˋ�=~��3f����Ř�(_������ssSwCzC�*UK>m�@�ڿmϞ=ƒs��	���o(S�4�N!�$��g�ob��^@�1L�8Q������P�ȷx��l;�޼�3g�(T� ƍ��%�Y�~�"�Z��,��,c×��̸x�"6o�,R:�8I^�$SD1J��AAAP�R�C	�;w��5��w�/�8 "�,_�~~�8}:DDm+Y���ћ+w.��n;k֮�5Ŕ�}�vlټ3f�@��ED]*Ka}I�޵s��h7n���x����^���6��]x�v?��/_����<��9�ׯ_�gD�/<F��wE��w��X�z-�޹�9�gi�Y��&�A�c{$��b��z°�~h�wz��Ʃ�\�,�8j����4"���0��o߼�zU���7�d��]���3�1"�]�,]�AAx�칰C�"X��A-S�C��`���"%
���^^���n�}��Q�d`gg�o
Ā~�P��Q�~��
<��4s�^Nt�oj�=c��,¥+�E��?�Ð!�P�Z���N��R*S�*ேO�
W�]��a�#�u�|��$1�<�	0�/��
���,#��	0&��`L�	$��=w��	����`��DH7���i1�;S���u�σTGt�1�'�)��]��n�]�O�?��6k��� =o[*�JU#0i��1ڔ�R�H]{��.E�g���~HTM]{
��q��
ۧ&u=�|.
�l�	�xٶE���_�11�����	�S�N�RIH�8[�yt���W�o��u׵�L�C�{��СCQ�tI���r���~���џ�;��L�Qڷ��t>�7`0�w�)5��9.��z��r,E����p2��k?�$���'́�?�f��R�2���z���8?\�	0&`@���qX����`L�	0&����	�ls��gH��Ԕ.+!"�,�U�^���T��o�
˙�om=s�h�֪�j`��о���*�2��)�۔B"�7�0��#�,[�S\
�(��͵�dA%�26|9�\LL�qc�ҥ���1|��ͫΗM�M`�}���k까�>di��v��\�gjR:��%[�~a���<���ԟ%;M�gi���hk�?K��L�	0��$`��8,'�Dq[L�	0&��`L�	�`�����3�T#������/�W�2)[����x���q}�m�1)#`×���e����e`d+�`L�	('`��8,+�.��`L�	0&��@	�Gp\�&�p�OJ����`=�Wc=��J���WƆ/G??Xl`L�	0&�b��7�)f�@�`L�	0&��@�%�pʝ;y�`8�٧Tx��]hٲ�" ����j.������ς���ß�ql`L�	0�Ϙ�
���6�	0&��`L�	$,'���q�$,'�l�T�D�ׯ_��FTT�,��vȚ-+r��
WWׄ��-2��$`×�IiV��*]��%� X�&��`�B���qXN��N�`L�	0&����M��/{���`8n���J�p“��@
#`×��HH�p�C/V\;�p�‰� 6
@�鷲�3��B��n$�,un�
A[D�xL���n\f��-5iҾ�ڑ�<%4�Ju������1�l#:�Ο	�
�7ל^J��4�|�	0&�l���Ę@�	0&��`L�	|�X���',�	��J,'<Sn�	$
�55~I��V<y�s�������ӧ�P�B�^�r%�����R��bUj�KK
}!�VvrAXh0R�M[�_*�}�GxΛ��c��z��}��۩���U*1�sa��ǣbTvt���^�H�v��5�Y�o-\��t*>>�p��-dȘ��D��9O//��Ӵ{<�$6�����{����Ά���C�8uZ���T���'wv�yJ<4�ht�o�`\�t	�BO�5S��E�%�ut&,D-ڛZ?:됊�	V8���}�ނ�:�<�u6���={6t��
͚7A%��2h~rk'Jo��%K�	��X�>�v�py&����	��7���<n�	0&��`L�	0ܼyy��C��L�	0����������#
G�|�%w�e�V���	$!��������	�
���s�\�re�����u�q����|D�b�ѣG�͛G[W�M������P��x'''���vvvF�a��d1	��N�p6�(&y=�Pv&��d�)�q��4�*>�=� IDAT`�F?��=�I�&��?�<.�����N��?G��j���T���$klx�.���+��<ѳ{wԫ[�҈��[p��A�n(W�<bbc�u�V�º�����3g��O��9k�x���+!S�tb>�
�*`��a���ʕ�:��T�)lX�JO��Az���p�*Ν=��uSѩ*B5b����kG׽Y���:��J؅O�zJ;��t|�E̘5�ƏGɒ%��3�[�&�CE�j(\��}6�v]�?�����'W��>�P��?2\�	0�$$�p��mF��ӿq��9ܾu���T*��ȁ�eʈ��ӧ�Y��0`L�	0&��@�x�
?y,<!�bL@9��
)/l������S��~��6�!�e8�XsOL !	$�ݻt��3e���;s�L�}��S��Dɒ�2e�0]W@^�~=8�A��c�G,[��nnhٲ�e�ӈy�S���B��B@��7|�;֬^����9�ի�����Y�*	f��-	��&Pt���ƏC���D��.8��l���gÂ��N.8��ҕkX�`!֯_�/��_�xy���cQ�tIQ��e���8y����_���RG�`�&<�7FЉ��ةƏ�ξXХG/�m�
���Kb����:�=��u�4n���,��x��W����Q��{��4i,y�t`i�Z���:Ѭ�J��2�"�5�r�~ѵk8U��e&�UgW7�.YB�~�~~8�I6|D#q]�	�iq[L�	0�XVJ�6���e��6~��m�t�LZ���tb���!�!��[�ʘ1:uꄁ![��Ʉ�	0&��`L�	0&�R2�S���ؿd�A��1F�%Nm����z���nago??_qOW�ݻ7^�|�jO�.�;�믿��</�Ӫ�utt��L�#	e�{��k��=��˗c۶-XS^#��W>MIP�v=�߷��c��<u:�6m��u���U܏�]�n>DE�v�8q"��OF�jUQ�fM\�x�-������3��C$��9�
�բ�*�4���Bȟ8ajծ����Ye̓K���ֽ~ٲ��G'ww|S �2QR3�y��?Ok�������?u��#Pչ2H`��tUrtA����.<�r�D��ѣ{7dpPG����
�zstAX�&�N�lٳ�]�;�6�DYͼ׫��vlC�z��4�l߹k7&����XL�>-[4׆��j�Y�й`L ���H�MtC"hѢEe�>z�0ig���v��<s�,_�B���ˋ%�����Qq.��`L�	0&��`L@���.�@�$��/_�O��Ț-+V�Z��W��{���pB^��%�����:":*J~�t�Q�VѬ��I�;�����1p�Z
!!�0�N�`l�0kjP0{�.Ml(׭��_���=�E�T�pZc_��M���ٲ�+��[�GFc��xp��.^�L�2������>�����O�B��:u*l����f�2��
��@c���c���ȜI�ܢЩZ�Y;~�ddʜ�#��6($�YM�pij?F����Gذ�o޼����qʅ��*
���D���G��ajs��򂼌L]T�����UAa�'N�"z�2e�X�³\	EbL�	$1��vRMZK��=�l���F�������>]:��������u�`L�	0&��`L�	0�@J�CCO+�ĴiӊP��_T}�fUԖ�
�"����ַ�?���ՑĠ��Se"����Ƥ[�T;��c���A>s��<��R��F�~�E��3f�`����.9��?}�T�����&0-
C�L�{h����ٹBN�D�T�ۈ(ԪY�84�9��p�:!�KK!��%8膀��k!'�8
B@_�z^��cÆ��װv��	�tꬳ��;N�F���C�7%K����;�ډ�]5!�����m]�q�F!��߼�D�ƍp*�iX3��b��q"�Hww�Og'ڐr?��)#Wv"!5���ZJ�
�[忷h٢�6/k�Z��gB�esNK!�_�}�-[ ������W�~�ݫ'*V�����ְ�`!ZSnkݱj=�Y��>µ�H~XN�9I(4i��[�	e���#�y˖�
@Μ9|*�2g�s\�	0&��`L�	0&��l)U��_ХKgE���m۶��>��Z�"a�f�:8~�8T�1V��q��R�V�ZP�Ҵtլ][3>cŊ>�w�<������U�|>l(J�*��W��Sr���G�b���8pL�8�.�STt4�z�CP�IdΜ�@5g=�$Nݾ{�7x�t�i�v��#)�$����s̘>O��sf�F��ѭ[w��}�����r�2�l݊��Hl�Czt��I�������1`��ΝӦO�G��,0���L�Y�6�ѯ_?Tq�
�͛�r�
u]����a�C�Ԅ����p�yL�8A����d8W��Nn���Uv����\�fC2k쪬�޽��o7���'�u���`��)Ȝ5��Δ1��ڶ:�F�����\��C��vM��"	�|�p��u����,Cڴ����T�Rc�֭=m����}�a��U2dj׬��$��i"�4����Z�#ڶ�=��>���C,�-�S6�F�������fnu�x��g�^
g�G���<Ϲ�Cr��A�X�|9Ǝ�%J��5ʍM0	���i\	�<)76�	0&@XN�u�P"h�Z���vo�;V��BK�o���o������#G�����`L�	0&��`_<��'�_�S.ʶ��)�?S��笩�k%�<��@�V}ߴ�)��5H8�T��MM�!�?'�D�T_ȱ)ԠO�jB�%�7�3v���'�}P�*�7���'Z}@���ѠAC�<�-��`��5�C��N���]�?�JDDF��J6��Q}Xx�lB���u숛7��g0�__#�}�H���}��5jG��J�BI)�ٔ۷x�b�ԩ�+� q"�6���ܤ͚5�C��BΘ1-Z�M���|���������!�x!�<{��\�sY%���\����a!b
�8q
s��ETT4z����s�r���K�z�re�sU��ȏ���c���u�\��v*�;6F%$_��u6,Ĭ,�U��E�I�E��k���[����ū7���™3g��.��w�K�. �={��?!��8վ��gJ}(���٧�ܹ��� "2
�-ƉAxA9����}���Rg"%v�a�X@�Z���4�
Ϯh�[mN_���R!W�\�R�
�뇬�3�֙�Q�zw�}X�j��V�J%�t����!K����r��������O�<A�D���͛�9:�^��㲔�8	�+�	0&`��•�BM�A%R��=**
5j���dG���0r�(d˖Uܧp:���'*
�o�-�S�N%���
`L�	0&��`L�	|nR��pWܿ_LI�B��֝#�\N~��0h06xo�]*�ݵ{O�[�������t��
-��['!L�_�9rd�H�([���XK/�>~�Ys��Ν;(T� F��/�[�j���Z�������8�C�B	����uȖ5ƌ�R�J��ǘm�����0s�,�֭[7,Y�Lx��@�R���j�-[���Ç1p�@\�v
��}֮U�j���#G�g4y�Z�1c0e��(W��^xQ_��@1�M�6�勗ȟ�+<?�P7�]��J�R�]�;�i�����ѣ'~ٲ��S���h����׬Ż�wFv�Vmڡa��سk'<��?�º^�>�|Q�x	�*�<�5���S�B�^=1n�x.\H�l"����
1H%�z'�g=)�d���O"��9�CR���[��By�yj%(��j����C�>^S�
Z�(��h�qh^k�9&�ƣ�H6��"OS�°QK<M�R��`��·I��O0)�A.��HFXN�����	9
�"w�W��չs�͛GѠ��P�&�S�O?��W/��!r�̉r�~@U��ptt�Sڞ�?���\A�~��W�^A�R!{������R�Y�H�.��X���p̟?k֬,�k����ѳ�l��P�q��f͢�-bL�	0&��`L�	0&�K ��JfSN&)p��Yp�ZU]�q��!�1G�Y�6@HH0N�<��cǢf�:�ӷ/Z4o���#��1,[�T��~O�_�#G�IӦ"���3aر}���C�:�1z�8|]��GǰaCQ�@~��{�^�۫W/�j��±�G�x�Rx����͛7C�C�j�ѸQ#�ٳ+V����h�u1v�h!@ww��a�ş=�=�g�n!xR��zu�s��hݺ�^����Wc�Z�Z�$��hڬ.X�o�)��AA�e�:tn�X��1y��|„I;n�ȡY��8{�v�ލ�3g��c��]��={�u��H�&
(�nna����W�?~�2�k��-�A�T�����[�l�w#�=P�d	#X*O!�YV�4}e,	�_6�	0&��@�`8i�O�8	k׮��s:�Y�lY���Ԯ��v�܅ybJ�(�aÆ�I�&�����1{��~��l��ٳ��[G�����d֖������	��]�`���c��+Z���:qE�Qā1&��`L�	0&���%��`�X���ؔ0	Wn܀�F̝3G� ��c��b�2��pG�.]P�Ti!����O��Zc��BD�*?����ÇH�g�H�.��G�C���Y�fM>ti��a��U�޻w/2:����ѺM[��
6�����^�&M�m�6�O�hԤ)5!��	�d��D�4����?��I¯$��z�~�M��1��[����+�pL�s�J���B���r��jgƝ{�"�x�̜��<�3g�b�Q�=k&*W���5k�~�&&9Qh���
��<s���z[�^�h16n"B�j`����ܽ{W4o���Ş]��n�*�y�cL�	0&��@r'�p�̐-DP�d��=p�pGx�;�������!��z���0`���oU�։�tk����l��ɻ���E��Xt�2e���K#Q�XQ�l��L�	0&��`L�	0&��@J��̢��Z(�ٻ7\�����׭C����S����ڕ+�*	�"oi�4B�mE�1Q-L�7m�����;
)�'��<Y�C�]S�J�{,0P�����
�m۵��}�Ѭy����װqc�ܱ�����7�_!�,�j�T�h��	T�/	�Z!Xg<B86�9�5B5ɼϟ��ŋ�p�(�-T����J��e��"Z\�ܹD_ѹkW�HУ{7lܰiӦC���g��'!;V��I&��N�zB�V_�"��ݻ�)cF@�tV�c�N�;w6�}��GD
�C����
�4!�I0�2a�����(�!���:���`L�	؜�6G,ہ-Dеk�b�Iq6ȹJ��&M�4�mL�6
˗��S����T�R��-lW:��7o�v�:F�S�T���-���>�`L�	0&��`L�	|yR���R��]{�b�
��OhӪ%��؁
7�WϞhѸ���ש�~��i��"4E�Z�p�Q��'�"E��pǏ��\O!d��kd�}
��`�B�?^x��ׯ�@4l����î];�r�j��,崥��l�L�/��j���%ܺM����?`İaؽk�Nhu�\m>^0�����-F{��ǘ�$	�jQ]��y(�3~Jc�n%oa*�l�2dϞ-Z�� =|�/R���Oل?���-�L�+��N����x�L�	0&��@�h	Peժ�عcbccq�u�˖)c��ŋe�=zݻu�����)��ܹs����Ͽ�P�>ƨO��^9s�@����>�=>zh�}ܶm[,X0_[%�m�d��}��pP�W���o���ִ�e�`L�	0&��`L��%��`%3'�L�(gmxD:��6�G����t��>>�1]:=��{=rdώ�#G��%�B�h��c��~����͋�C�ޑP�g�\���"a�h�q4n�ݻwdž
�={V�3���	�7�Ө=��;g�'^�z��]���z�dM
'M^�$���@6��O����Z�6���ϟ;�%K���'ș3'�u�zu�h9HB��|��U�{P�Y�P�� e�S���X����X��K�nM�:o߆c���|�

*�Q��p!a���E���.�k[jO��J�2_�l���j0;�}S�a}�ɵԟT��̂��,�����Ys�A�܅>K����ྙ`L e`8i��ݻ-*v�ѣ����8�8�ɓ�F�)/M�ΝѸIc|��7���SX�p������	{��!���T���#��O�>M�#I�1��c.^� <�w��{;{�� o�<Fu�vE�4����
C���B9�;thoMs\�	0&��`L�	0&����@J�
s�a�y�M�����:�6�qu�eIܔ�PL{�Ro�T!}}H�%�c�)K���iq��Go��YVߐ�Qx��/_�}�8r��;V��%-I���wk���ng�q5�w}�e�]�=��НO<��6�p���d�l�ek��RQ�s���a��q�8$�������si�t_0%jZ�O�!�E}���8Ǣ�|�S���jǩc���V�g�ej�'�����7&����B�झ�AW�X��S��7O����x��F��?�-Z�޽?�v������f���%K�ʆ����o���x��m\�~
�Z�����+��s�Ήh}��
��0FvvvJ��rL�	0&��`L�	0&���tX�t��VR��
uge��J�L)eȣ�~��ѳ'ڶi������gR
��ߕ+W"�Xl.��J���>g�B>	�*�Ͽ	o|�^��5kTǐAa�������1I�Y�dƱC��
�&��IԨ��1@���p��%�
_�r
K�.�ݻwED�bE�b���(W�4"#���5�Ľzu��c�p�۫���A�ل�w�w�t��lXN����M�y�2f̀�?��A wd����w`Q\_�
�DS�5������"v�B��+`�]@�]U��������M�O�Ǯ؅�wg��ݙݥ
����vn;�{�]2�s�6�5m>�cLI9���?"44g���97j��F�D���
��D�,c�K� rH~�~�"h�x*�+2r+���
<z�(<{�Ի_�B�>}Z�U�eK������VV\,V�
��
�M�=&Dwuq����={v�I�&�4Ee� D�"@� D��(��4X��e�J����c�U�e�2��]��0�V�`����+�c��M���ߑ���^��ؑm�-��۷���{���Ӵ��	w7u�;�"�����))I(*L��4d8,-���͕����|!7r8/%���<mO�ޯ���,Tb�A�?�H�
��q��38���Sɉ��v�`���hmk�N8��+Wb�����ԓ��1c&�7{�,�-���;�����}�ѬiS�-[Z㖣F�������K��HGT�6$&&a��@t��ѣGi��b%�ۍ���X��	>>���6�cƎ��Ѥ	��3�p��6l��[����]͒D�°e�� ��	�ow�r*�޿���������Oj#11Ѡq쏐�����\t��g���?�||��a�0@�=�6���]�8���	�˗3	jNm7��?��ݺv�Mw��/\�}��6�)*C� D�"@� D@�@a�M�ڜ
���Ae�@~(h0�_��x;m�4.��gX���9sP�~}̙3,`#99Æ��p����Փ�a��
h�#�в������YI�DZ�3���;�E�#��������c�v�2+��Sp�j IDATZڱ�[Z�	���?g�_��IS�%8�:t����
�,�mmy�G��MгWL�:
ꫳ ��x��

ق���յ:89�g,��=C�p�H<���^==��c�Y���+�99f�͖��f�>B\��ܵa�����p�l�H� D�� ��ENE��?�F�Ν��(^�ʖ-kԸ��ǬR||�V��W�^���W�>��h�"ha���.pqvFI�D����vc��?�ֽ�]�.[t�A�5{��f�> D�"@� D��
�1���n�>V�`�0Q�BF�m
����h]%�=����ŊGxx
�G�a��M<Bw@u�Ѩ_ݎe`1���z�pE��7���@Hp��"��}&����n=2Ͼ6r��������iOѫw_��򂍕,-�5)��޸�#�Í�y�l�ʕ�z�T��1����`n^^�0g�\t��	qq�a���Ƕ�H<�M7���jT��� ��L�^�l9�<y�ӧ�1r�H��֬Y�*�>F�V��uTT��fc�x{���&K�
����jժc��ըX��q��V��B�{�p� �	�ow�r*���Ġ_���n��ݻдiS�vϜ9�ȔK�,7��?�&����Sv|9�ݐ�ׯ_�g+��L�^��4s��:Aj�"@� D�"@�K
����m۶��������k�)+Z�(��}T��1z��!$~����/���l�����Z�|��Ylټ�o\Ǜ�L�T_�������|f��i�u'TFfZ��\���;w�ff|�3��ؑ8�|�ү�4ivn߆�ŋiZV���~����Jq� 8O�9e�+o���Kk�JN�?��
�����������b�����ʦ=}���m�лwo���@�"E�h��|A��h���/^cނ�믿�j�
�-S���@�?�ּM6�"E�"*2�Gb�6����ؼy���a�¹��$�]�a�6"@��[$@�[� �"�}�0t�\7BNf����	'��1�饥R[sj���7o�B�n]���iӦ
P�X����$D�"@� D�����*�>I��i$�ΎJd]>|�޹��f��<8�]Lγ`Q�����D��F6mФ�5�-[�D7��z"�ּJ�R&hn�Dc9��_�d�#%�8lZ��`t4ʘ���>~�R��9>F/���K�b��<t�޲eK	���D�푘��㯫�<e
ԯǣx��Jp�ں�=�����
��[P�܌����s�o�G�6�ѳ{�<C�N�q$Ay��� �46"@�@!&@�۝����Ǐ����k��$�=r��H<voءF.??_�H��.�忷�E�n]�!;"���M�P����>�� D�"@� D���w_�
J�(x
�ܳg/�z�,�τ	H{�~��8��/����6o��吏<��3�U�@�f��HIN�®���?E����˳��۵�eΜ9��gc��m(�r���X�?VU��y	������� �~��¢9z�{@UD���p�<���A��O��3f�f��G��tNJ�kP�dIup�"���ƣuׯAt�!�Y��c����Dv��V�Z��%J�g��ͨH�f
֯_����o�>����<=wph(~��7�Y�Bq��<ݵ��LhDD�"P	��vg-�"������3���ѧo�lתU+|�F�߽{����;p�����Wط���9�]��{��[�n����q�?�BCCa.��g�8*@� D�"@� D�D]��K5H :���k1ų�}1%tXh�8�R���ի�CB���;w�1�L�Ҙ2e*,������[#��&Y;J�k��x�f~^�q��#n�e!�q.Y��|R�{���}+�@<r�(�m��:u0Y���O�"ZY�	�?U�?�n���;{��jܤ1���P�je�|�~�K��9:8`���/��/^a�ʕH8rO��3����ժV��2��Uj
��q�{�>�(�B����ڜ �|"9�AA���P�lY4o�����>*op�&��x� D�d�@����R��)�}ee��v�j���†Dп���x���/���;w�L�X����Y�|Cp��EL�1)))z}�7����<ǶKZ��z��K�.�����ȭ(]�t�񠎈 D�"@� D�C���\����<|8����s�~}��\�r0�k�Zh��άUW�'ʤ��|�0�<�U�O�2Yҙ�_6 �a���DKS0��Սn6��^�~��6Y�\_Z�	�Ϻm��k��R)"@��"�<��`S�"���ׯ��>|�6j���Eۚ��B�R�Zeǎ���н���-���")�RH߾}..�FG�v�ZԪ]�ڵU,���kth��/\�+�'h�����
�Ο�W�F����Ϩ�T�"@� D�"@�@v��jT�y�p4���7o~��7L�8w��Ū������9��z�wV_�Q(�����*��m*�7V�tB�%�ӟ)
{v�C�� D�(�ÿqH6��,-,�?��n֬)���
�ԩS��A�.]0n�8���.^B�6m�����|ƌ�]��VvV��a��B&((����#f�wu��prr�رcФI��=q��Q�{|P�ΩS�H���������_�(��C��(_�x:k��9s�|`���"@� D�"@�@&�s��B���uN�Q�x�N$�t�9��U�sK�3֎1���ֽ/m�Xߦ2a����hV��������a��M��?anf��_�~�/;0� D��w�@��C��������*��gϟ�[�|����(_��VQ�(`�P�
�Y/_��k��"tY���0XXZ�
!--
�z"5��mٲ%�կ��?�Ϟ=�����F�v���yNm7f��S�)v���묶A� D�"@� D�G��
�III&M���9�?kkk��g��RjT�!���
�9M�*�g�Ѥ�~�
�����2@#�Ɵ�~�#l��66�ri���Z��<|8�U�T�"@� �F ��!��Y�p��89�X<hf͞�U�ٳ���₳2Q��6\�l�޽���Ӫ�5�KV�5�]V��`��j�W%����?���P�%8�PRCD�"@� D�����*GDD���ä�2XV.:3+�*���,��W�ժUŤ�иqC~<��u��cG��մ�T��
hf��)'`aa��)�3ۑ;lT��o��;��F���IU���������IY� j6�h�������D�_���ڮi�?��`sl�Q�����������Ǐ�0y�d����T���x�2-����J�+aĈ�hm���O���Q���	�,��B�o_4�̛�a��ܹ�i�g���_Q�^]̟7}XN��I^,S(�fwH����1H�0�^�ǟ[�3��֋�5^j'	��:���T;�:�����٣ވ�qy�7	���kJ̚9�AA&�(Q�N�>���:�0?���I��r���K����L��ϧƸq�p�߳���1w�\ź9���lM	U"D�"@� D��\&PX�{��s��&�P�u�=��1]A��=C5�y��оCt��qq�ADD(^�VV6��9��ʘk�U*�}IH溜���5NJ[�L�:�H�
��n��c���kY�m;va��q<�F�tR={M�����$��k���x�싰�-�{K�vq,r|�h��kӮ#,\��S��=��9s�­{4hP��ݣ'��[��?c挙�=���e�0g��(QiO�`����B�
x��5�L����$���#��/X��%Jb���X�ׯ^a�/�Mq��1���6�J�g��ZW�9��ݗ��
9�\��s���?��Or�R@~������+��sgV�"��H�]��m�͛tL�<	aa��(]�������իWX�h6n܄�/_�4��?�>���٫�b��/^b}@6oڄ��n��n�
#F��o�j���]='��l�TP!"@� D�"@��c�UE�?����U����
�v��̝��.�V��2yw�هM�7��{�^�*&�x㫯���=��Q����=�F�AUx��9ڷ�8��3W���"�<rwժ�8���B�
>t���Զ��ݰo�~x��_~�{���	Ц�=�[X!9�8�[Z#::===�w�n�,^��D�N������{����7��A�޽1l�@�(Q��d h�Flش	)�I�v�&fϞ�߮��Ok����P�zu�m�D�Nر}���Ѯ]{��G���q:|Ddd$�^�x7wO�G��ܬ8��3���
���~jת�����@�A
��Æ�ȑ#�K8ʧ26&m��`��)X�rǘ��W�^��9s���b3�OG���Ѯ];.��ؾ�Gx��-lp�X"Z�j��IG}0�o�B�>�4�ޤE�����'�n�ZD�l��x��5�u������b�(�.��Y�6nA�
0v�x�$'�ϝ��b�ըR�2�^��ѣFa��m�Vv�������3�'-lj�lm}B�;���/n�	Byu&���WYo��U
�o(ڡ�_nG��v{�8��*`߁��%�'�k2�Sja�'SN��:2e<o����ĥ���S�T4GȽQ���� p��t�
��{�&X�0XƉԔ�9oO�En	�����7��i�>��sF��� 8���|LL�/_��[����1�ǠB�
Fq��
lذ�1����Ŋŷ�6;�׳gO��_�^�~����)'Sp��M����6m�`Ȑ�hܸ�ѱ��c;	�&㥂D�"@� D�"��
�l
%x�X/|�ͷp��
)))���-�����	�׭G�Z����Pl޼	v�NX��y��M|�3{p�%$���+�ϛ�?���Ʃdu4�	���_���c������jɏ̪^�:�9�&M�"�wߍBl�!.�2���҆�'M��EZ��FR�q.*ϟ?�?��|�]�H�	��,m�d�?�>y��m��p%��0n�ow�Xo8;����
'N�@Td֬^��5|�0x��r����Æ�����)I�5{Z�j���þh.ڌ;Ν���c\̝1co&��#�!�r�q;�����[Y�b��ѣΜ=�m�;{F�gX[��ĉd~������Ç���J/�ٻ���I�1o��]�K�,����-����`g��'&,|��GX�b9�~Z�~�p�;���fc��hai�����{��?��E��x�"�|�ϭ�[r�h�"x��Ӊ�#�#,���Q�u��mn����U@S+�����褅��!/O�ֿ
8{���X�
�"Ǚo�;+V�@`�z�h�b��v(�m�'�����s7�������_�Y��|�2����r��b�!p��Q�MVmDI��b�w��s�Sɉ���/��R���"=#�?3g��K���f���,/C-�Z��F�O�lh	v]�Yy��>���@m��"���P
�LK�?������X��֫�bŊe�Żw��ڵk��>�+
�[�Z5�.]:[�I+ݼy���y��]�(Q����gu��ٽr�쎁�"@� D�"@��
��.�F��F��i���(c^�#S�nߵ;w�UK4o��~�5T*`ۮ=عc���ET��kԎ�8x����G��ϮL����X�����x��c��������D1Ou�t��/�'��p�����.��3gr1���B#0��/>/nfi���c�<q"�.���)S1w�\X��rض�#^�xҡB���x3���Qּo���5��Y�M��ًĪ����8�q¡C��yc2x05n�Vx��V?G�p��3X�B��h/�	�LH-Y�8�zƉ��e+;�&���mff��	�y���X�)e���ݹg?V�Y�����������7O�:���^�v��ã�֭⟏��3�ٷ�ő�Ǹ�0��]�h�Ν;��:u���(솅���gO�+_����}�e�cR�=�c�ѰaC���h�3���D(�#�թ��>��5��/p0�g/lh� � L��4��ڟ4u���h�RKf�Δ���`�{�V�������#��z�i�L6JU�@�������S2Nuľ-�OӛGi�y�HHc�r�4$
�4c,��Hzm*��bB=��@��ݼ}�<={H�wS�X�WЦ`���Y�JMŏ��x���Ñ����3g�g͚
k����&�$tyeE�4�Δ�Ưle`c�Va���5R�}@�_�?u�g5y�u�n�#�v�׻��,p�����T��rD ���_��"@� D�"@� D�]%P�`S�E)��}��w/�+mƛ`����O?r����>���F�2����n����6m;`㦍�Z���=�ܶCg~��
K�
��9p�	�'���L�d��ń�dI�(��Hٮ]��9�!(ZD�˫�~��~b�:u4�gڴY�ر=���Y35�;�i���w�l)�Ы���_���v�ʢ�z�ݧ?z��
7 "<��0p�`lټ	���v��g��~�u�12\����'�&&6�6K���P�X^7�)��a�T�Vm��ª%�=���M:�{����q�Ӟ�B۶m�x$w�=@�N]�&�qe�*���}X-�l�&�}Ψ��X�v�^��~�Z$�����5n<v�|'#�5�nT\]]y0ǠA���{���5jր���F�eB1;�����X�h1J�27]��z�M��|��-[6�w//o�G���1a�Z�Z��*q~24���\�Sɪ=��o��u
Xa_hna�����T�u���ٳQ�r-Ѳ�y���Y�7���1���"ĝ�z�6F���Q�<��($�
B*�XR
֮[����/_�7�#���c6�;¿�b�…���iT�XS�LA�F���II'�v]���o�h��v��F�>ê�kq�X"���_�"�����9s�ە+���g�5s�U��y1������L�	>>hݲ�z���ב�<�m6O���O����9k6�\�777lټEs����W�OM���"K�~����s��Y�Z����Z����Z�Z���f�
W�]Ǭ���K!�f�@�j��}l^5��j��s���M0y�����"�x�[�=n\���K�y��{F�?�0��ɂ�A�����E�aKp:v젉v��S�ME���v�_�.Dx�f��۳�Q�����K��A�K� DȲu6x�`����Ojc��@^��X�p�໕0u�d4|WV���+퉍Q�RZG��Kx{���O9��^��֋��AHH0?�`�@�u$s��;�(~��LQ�J�%�u$~?߻��ƌ�[���ܩ����D�� ���	��"@� D�"@�(\
���3��yOD�
��))ڰaa!4x(��=�Y����\<|(�e>�9��@�;��V+�$��#F�Q�P�je���aǎ�

�Gg1a�]L��'�P�>��E#�S@��e;7����F��?����g���ʈ�K�����7`��hݪ%�[Z!9�8��'�^ݺ�ۻ'bơC�j�*.�hR�
����c��]���õ+�Fn��1ݝ;�0�u����g��Q<ݵ.��y�޽(_��ƕ���i/�	�W�.?�8�p��^�jO�-�����ضs'�M��9v��£��͛���w���������?�y��=޼a�[q��%̟?[�u�YhР>zy���g�L�d�>���o	�U��N��`��5(^�(|��jD>���s�"�����.f��b��[���{,�	��ej�� IDAT�^�֭����Eɚ5k��q��;w�!&.1qq03+�Ũ���(_�}.2�����y����#5�7���I!�Q�X-��"U�']�Lb)����y���/`��"�`�.�-_�J+���5�L_A�[�|d{���jOIrp�E��hܨ���2�/�>�e
vo�Y�������X�b9�Â9�6m�c�b?4jܐ�Т���)qav�[��G�=��!�F��A�&M����a�t�"�@��c/w0��8~"�֮Ů�|,�>fh�X}��X"�����:u��3ҙ��> Ps��$�T0d��郇���+�w��,�[l��e0g�b<�cF���.�,�>y�����/]���K|��?v;�+���0~�X�:�N�-�/�/¦�as�@�z�r�)]J�m�d�����R�_:��~1�I�3���㼼`c�\�ȂV�m��~�6///̚;���w��?������821��}�fo˪���mЧw/����W���	�ܾ��f�ƶ%Z����ӧ�j�
l
��y)	�l��>����r�H�?C�)��˖�	�+��W�>�ׯ֬Z�I�4�9�`q=�/��~"�[G����/v�������.w^<2}���D g��oJ�����D�"@� D�"@�@!!P�`S0+E_�~s��Å��xdڔɓШQ����S�^�~>�Ç������m�5Chf�))'�ai�م˿q����'Lą��ϟ�F���j؊G��������W�RQ-�(��dQ|������ҥ3��f��Âp��T�T	�'�૯������@_��c�0�����ڽ����^s<~��nnؾ};ʖRG�����eܸ�X�r�����c�׮����͋|�'N�u�򒴗Ϟ���I��`�|�)S��).�|��1y�d���¹��翄��^�����w�>;v,���k�|�t��.]���-��ku#�¸1�d���t�27j�ys��ex����~�Kߙ�G��UV�mQ�)i=�gAͮž��R��t	�ik[�o�S�NC��U�"Y
��ڝE˳T�'��S	�+K)�Uj���p�2���8���� ��mAEN�W�Ҟ���[��P�����Ŧ�q�Sxx�DDx8�+mn�<|�8ܻM�6E�
����f�4���e*�ީ>z��P�H$?��5��?@Ӧ�K1-mmP���H?1�^+5���m��\������4⾵�v�ً2�K"-���� ��A^�E���C)�`��Z۴���G5�Z��O�-��e��)IZ0�0��e2(]��v��k2S��
����ظ8�8]�v�/�<{Y8����ʗ�Z�������ٍҥ��$�\���ά`a��I�����㉰�R�0"
{��"
���0T���H�ӥ�b��tmI�&�Ϝ����^�	����+�흰�>.���ӗ�ة#��ִˆ��_��L�>��N-M����[:�A�y����a<����]��2^�|WIf��n�ll"g�udfV\xAA�?�u�ჼ]q~���Q�T	�)dבh?�W9廘���&�/�u��ki���+�����f�,q�y�ω@~�ÿqH�ω��� D�"@� D���F����g3��s��f%idٯ�@$F������%�%?�]NǓN�45�8]�x���B�p�"|/0�&m�P�r�
����}q,�HA%;
q��+FHI�
���r����mݹ�Jo*Wπ�FKҮ
�M�͸�Ax���\x�^�:�Νk�(����GLL,O�lnn�֭ъEP�l��s�����@�~�:S4���IN=�3hu|!4"
�o߆ט���
�؊[��Ÿ1��ױ
h��'N��A����
p�Ӹx�"~<���/_!(p-/�d��u��]�Q�L-!I���o2��O���0�N���W/�1`-/'
s�3Q%\L�EA���bbX!"W�i�	b��zg5��)�`++[O<ƣ��<{��	��`�8ccԂ���i�,�0�����b�{�/���YW
�33����3�b�y&�;J#��)�����"ZG�H��=z�Ŵ�S�HL}�7��K}��9v�		x��9�����耏?,�3X�,_a]:��]�vi^t�
��L�6H9��"�"`�G�:9_f�r�u�V�����Z�D����F�ϲ�H2���]�]#}!�}��*6����#F⇽��x�|��S�i�Mہ��?$�k�"@� D�"@�x7	vؔY���<xմ��ȉ7�}�ۖ1e�ؠ���k�֨[�/X��?*o<��nd����Ќ�?���qU�c�_�z��vc�&mO�-��J���l���R>�)�
E�{[�F�(�Q�G���ƴ3�%�̦���눉�A|\<BB��[;�C@` >�]-S�N{G'~�秵kh�rg�W�
��6fQ��ϟ����S@��:==�ܱr�
Tcg�K|�U:���U+Wh�
�����s�����k��bdczp��y�~(z�F���u;m��-WC�A�2fZm�/a�6�m�D��V���K=j�7���ܰukΝ;��-�&*�dV��m)3�~�n����?G�����[����f�ҽ����6�غ�׭�)���R�6n=X�H>�K�}�39H��P
��ƣI�/�)��n��g��{�y��٬r0;c\�_${��B�n�r]�\�X.)��.)��傢�5X�7�6��ԏ?bƌ�wv��U����޽�������V-�[�� ����F�/`��l\�g��{�ǐ!C5�+M��ť;�Ι�&�h�X��*����햬���}����_/_�43À\$�`��:����zWJ��|#�͓�q��y�.^��AA(m�^�F����(t����2�A� D�"@� D���
�,�#u���������SE��f'��8�<|8�Թ��Y�>s��<�?z�aÇ�t�RX�|���Û����r[,��Fx��*��M!���giOx���[W6m��u���!U8�[<ks𠁼�g�}�9�g�z�JF`vNq|�̟7G/�p�$$$`�ٲ�j�����O?���X�x1ԨQ#G������%��=x�S۟<��G�����H��ŋ�F��9b8l�,�=%.�u��gX�z-�=�;w�@��˿����s��ʕ+���g\H�^�� �Yi��#��%��n�yqn�U�d�J���-̘5�����АO:��<r$�~~x��5?�w��X�'k�	�
Fxh�|�	fϞ�jU*k����<}�U�W�����׸x�ە�Q�N̜>5�W��֤��B&�d��*���T���M�OcI�^�Y���?6.��vtt���7JS��:�CLt\�z5֚�=�ۿ�؏�<���e��>Қwv��d��uk�{Q!,]GVV����_ר�NC/ί��-ا��H�4����Y���-w4��o�~������3�O#��Z���@��C)��4�H� D�"@� D��<$P�`SмS03�Xd�)P�L�'��G�wq�r�BY!P]R���HA��к틿Kץ��AC��э5��KX�
�4�//Xe'r_�>�a���b�=]�J��͏��B��Tۓ��#%�d��'�!(����"�u�P1e�&%�!��_Vx*pm��/J\�R�+���q�\`���تF�����o�2.�ʭS8+��1�W����gV�C}�p����ؔ�:26Nc�@����&�����'��'D�"@� D�"@�@a�w��
g��s�IVS�w�@>}�ٙj�Rd�)�
��!�g˚�����4RF�ɢ�Q�jլ��S&�Iㆆ�f5Uq.U���ؓ��+[�cG^���%D���ÿqH.�nA#'D�"@� D�"@�@��
�L�}��nݺ�W�^�Z\�h1�+_*T���G�PQ"P����B`}�
1���j7������X�硰��`y����B ��!��L2��"@� D�"@��S�U�S(�8(���ha0��H� D�����o��Q�!�� D�"@� D�m$�G�BJ �R"4l"@� D�] ����.8�@� D�"@� D�%P�`��]��@���@���^��_Ġo����J����)]SڗKc��i5���ؒ��ڷ.������έr�eg~����m�kl~���X=�~v��m�K�ڕ��WP�!�|t�ȩ?e��w�<	���l�-D�"@� D�"@��� @�۠N}��x�kW>�mQz�'-lj�lR�,���rEX��*�#�\^"*j�Y]�
V�_i=�Ls+d@��LI��C�?S�16V�1���xe���U���e����c�L9.QO��E�L9�?��� ���y4�/��3�����
�GNןt/���/��GN���S�-Z %�D��3�؟�2�\��=����0�%�0���"@� D�"@�(�H.��Bc"�	4���%r]�DX����,����N�D^&Ĉ��T�`u���*�����ʈ˼���}p��%,_�������|�r���X,mp29Eu۔����׵O:i]��K�ԌE��X�XģX�T����ɹ;|�|Q��'|uu(=���yɭ=����4�~6X�����L�Wia
��a��3�����E��o�N�[�փ
H7��mt����r�V8��~��K����03�})(p��j����g��2���ϰ[�/�H��4R�XDnv��Y�|��ڟ�[Z!%�8,�}T�;��/�R9��K�M�"@� D�"@� yA�༠Jm��'P�`Q�
COϞ(W�<=<�%8fff1b7n�%߼y�&MDÆ
���uqX�a={���d���A�Z�Q����L��� 59�n�}�8!����F��ISg����v-�����`o{����l-X"���p��R���iH�_R3.:v��丱{&��S�-�|�h��/L�Z���ʓ�u��qʉb҆�ʢ�b]i?��(~&���9kV���jq���m�.�ݠ�Jv��)~f�}�L�"�փ��hz侱mV�N�
&+<
udן	�5���Z����$��i~�K��S�>��t�D��}�Aܗ�S��$�V��
z�:0(�4��! �:����t��
�^Q����S)������GV��UbT�"@� D�"@� �
���|¤�,Y�$^�xKKK����)�����|>�)��%ɬ�'��T)�ը�ʟq�cT8**
���(Z�(
���{~�~�Q����5"/��N���ϟcѢ�(U��4X�xln�]�������cs�f.�xy{#( %��D�liͣ{�U�K�1yE2�y$0���1�*��HF�f��կo_l��D�:u0g�lT�\QK�m&�0�0��^�qߍ���HC��z�F��m�[Q�H�qM-�������wG���n�z����x��%T<�5O�c�&�����`�"�t�4*V��iS&�I����cI'�v}��Mddp6���ziO�a��58z,���/_e"�����9sp���l���V���lo//�D��0��m��XX��<Y�T���$-.�\����f���ܰy�u�.M�0��q���>���N̝=U��J��.l���?]�z3����>k�ԨV����Q�&�]�&Ο?�/�l��'d��̧��������wY	Ͱ�=�...�����B�?�"%��k9�r~f�}��xoo����Z��Vϕ�zЫw_�;8��U��YI���!KU�����BD�!C�Oj�Ɩ���m� �So����1��la�I�.
��K��K��O�"�"O��/1vz��k��S�h1��3x��/�h�Y�)�w�w�z�1&�{�������Q�(W�}��b �/U�VES�͟����/b��XY����r���_H$g'D�"@� D�"@����*o۶
}��1i>�lٌ=z���=�5��ljmo���x.���=������?P�r�7���z@�[6��.]��/_�?��+U��ac�B�?��8�p/^�#q������6nތ�O !>���<wn�oj;V��r�W�Dq	�ለͽ֭[#1)	.D͚5L3[���{��q�����YI��١��-�P��C�����O�����c{�f��}��I-�j�����2S�1�kؐApss���(\�xK��$�v�-_�J�*���U[�PK��B�����C�_98C8��E�}ѸQ/�ɤѬz�e���i�`c��[���ӧ�j�
��m�ܝڶ�b__4j�%�6��l�(qa��[�/^<ǘ�c��h��8o4n����E�l�?�qf<�=<p�x2֭]�]�#5"�(�)��t��>�P�������ȭXģ�إ���z>��"��Xa�СpwsE�֭�t������_�_.;z4>��<�G�;��7���;��Y��|�//��5h�F8AAA?~<b�D�K����]ӦM�U+�o�V�N~���)�7o�6��O�HP�X����S��D����2����O���ܻ�G�C\|�=��`{;T�P�6;0����
z��}{cͪU�4чϓ�zۢ���'����s�K��"���[3Q���}�
Cq��h���}Iv?�D�~�;w3g��=;�ֻ�)F\˽� D&OUX)��X8o�r��
�ۗ�-�פ��6��E���Sv��{ôo;*E0� D�"@� D�"@rF��	��ǯ���CW��qc���� W��X+}�'�3�7!W^�ĕEZ��+�)��vt�g�K��)����2�5��Z<>b���©m;=v�[#�iC ��ZP��$�+٭���٫7�mlp��Y,\0{v��x��|�Ys�#99Gccd`�	1h�P6	qq<�S)Zؘ/���A��őI�V	�a��bԪU�4��X����4�ԩ�P�fU-�	-			(mV�逕�-N?���8��Z�0�/,�p|�a�.]
OҞ��KW�>���Y���#v�=�k�a([��֊x���=��J�i��<|�8ܻ͚~��
꣥��:2T)r�
G�;u��G�y�3��,R��®�F�����Ьi34����B��T��S���ʕӳ���v�ك2�͐���G��>�c��8�2/�����-N�����"����αv�ޥ��Ρ�D�F*��DKk�
�0�ظX�-��s׮�9t03�Zn�cB|��|�>*_Vk�l|��m�w�n���8� >&Z�I'�`ee��������H��L�R����SڀE�|ѱc�����:�~�%�)�:¥&B[�Y��������B��}�poh�)�Q<g���5̟?�.\Dr�Q�fX�z��Ȯ!
��ū2�ŵҺ˭����`1u��7���.3&�8�q_`l���)���}Ii�R��K[�����?%9Q�ލퟲ�]�'����R�ð!��ۯ���u�$�ۗb����/�I��
Cn�
��\
׻~�}�g)��6�E� D�"@� D���
��up?���]L@���\Nf��.��|����ҽ[w���"::׮]�~��wԪY'��Z�j���
C�C`�z��y��~�E\�v�G������ڶ��ݻ�{;{{����֭��]��#�W��S�֫W��7|}��ǟ�f��8q�W�����	
�{�Q�j�=_~�Da�:߸u�����K�-///ԯ�9��?�а0��3_6i��9o�I���
 IDAT����ӊ"E���9�u��P8�##Q�h1�z�7ww�i�S�����N�8QͰ[w��t���8}�O�ZB�TYX��7�o�*Z�,mj*6ac`��p�"��C��Y�z�<i"��`��j.,�Thm������L*��"'����X�ɓ's��;w��Rw���!s�R�k�-[�����3���Q�h3���K�FГiJ�JhDnݾ��c�ӊ�e��#"q�-�3ZO@m��'�'��:;��R�_g�ǟ~…K��z��-Ak�+��ڴ눝;wqaC���vy�/!�ԏx��56��]Ƴ+[JX�T6�����lq<�۾���X�9��f��̄jQR�O�Z��DNNI���
�ؿRX�_���8ws�C��زe����15�����@"��^|����������g����Oi=ܽ��G�'$�ٳ��<�6�<��]���5�BD��z�F��'I��}�^&ҤV��3�%��.�b��Ec���~el_R��N��0v�8XY���W/ag�yà
����z�E+����#QLX�J�֘,�/l?2&�r1�[�J� ���"@� D�"@� 9#P�`S���U9zlZڢc��|@�ڕ	J||ЩS'~np���ܱK�-�c�v�ӧ�w�sg�"((�A�0A����
�n.]�9���	�0a���k���N�JEhp0��v���)�t邽{��{L�vl�V��@t���/�5j�ı�G�-j+֯[��/U�����I���o�����	A@�:^�E밺Gy�H^�s��Z�o��D��5��J�Ј����1c:�N�����hڬ��a���	�ة3,-[��ɓعs'�.]
4]]\8;{;-�	�b*g.��٣�����ծ���}�>��e�9�L,`���r{hߊ	��$��f������[#�s��=
666��,b���k7���CH�f�^���͌���g䊿3��O�i�z����?���Ojj��D�e��!�l�Ȩm�p�<��/6���k�@wW7�\��*W�*�*���U+��j�J�c����s�����c��NΜ=�E�C�4��}Sg�����{��:�T�D�,�̙�2y2G������b,�^h��<��֭8{��_��w)�`f?KS2kGK�M��cA@�ڦp��h���:�ݫ'"#��n}�V�{w7�>-���U�ם�f0�����"�p�y,���JɬwV�
0�z̸�I�2<bk$��X��n;;+��+�)�W|a�E����7lE@�Fس8<�����6��҂V�%kL�g�����O�ޘ��w&�*��&�W�~�;���ժ�׃����ͦFV�	t�H�Mq=������R��85�(�Zw���$dKP�'dS@��}��~������:�a㦍	
���SL-��P�@n�J��^F׭ܾ�|�R�4�"��[�9����H&7 D�"@� D�"@�@�vX7�W7X9X��;bǎ�<}��ҭ;?�]���lGulj��J�<�4����,��7�<
f\B�(�RU�6/�d��s��۷o�E�Rf%2#VU*���QQQ(en��O����{�vv�2��s�x�޽h���~�
���K>^�ޕ=�NWA������
س��޻͛7�7�|�iV��'��ۯ�Ҥyf��={���h�"�27G|B<N�L��I��h�b4k�vv�Ѯ];�x�R�fff8p�j��J�2���#�t�L�F�N��}�����˖I`��\��:��>������	�9�'�ڢ��s���<~�Æ�r�/_��}��z���G-�]��|s����7�=h�����iZ4gw
:�ɽԔ�{Qf/.�,��X��*��`��ظ�F�ϛ��{8��vdgV�G* �P,������c�q2{�?+^5k���`ce�B���1?�;�d*=z�d�� �D�bŊ�F͚9|8l�,�=�T�����V�^�#G��Ν��M��_�\��sq�+��N̜1
իWU����9�UG�c�:�&έ:��J��24��s�&fΚ�+W�����!!8�t�s?r����h�!C�`�����dg~4�!���'�3{�U��q=%�,�c�s��������fϙ�߮\A���`���Y�
���R�VHI��Տ3�/���G��=xw��ݰ-r+>�����Si!�V�3�O|����4tZ�
����Z�
�*��k��I�B�փt?PZ�{�!QZƟ�t_���>��ײ�� ������+�k<����[|AA�?�q������3��;�qʭ��?RG��K��ܾT�zUM=�y����bԯs���
	���y'�� D�"@� D���#P�`SH(E;��]{vìDq<|��]�q�KgDDDp�R}ƭ�) �NJR��YDilB��3�cǎ��܊2B��q�
��� <"�K�s���{����xv��o\B<�f�޽�ӧF\l>�UÇ
� ~�':v��*]���̬�s�>~�֮�aC��h}^��,�g0�T�ڭ֬Y�J+r./^�D�~��a#�ӓ�,Y�G1GDl�y)u���l߾�:R��#|�t�%������|�����/y���3`�
v�N`��R�?�ٍ�e�hi	�hh!���#�M�R�m�\PlW� TH}N+� hJ?��Nb��/����B��د&:QҐ\?
�رcиQC�(���b�رhҨ���%�!7N�,R�F�3��6h�SҦ䨅Q�/�\t��Ԝ�j��'�|�)�M�~A�a��d��'�!(����"E�E.��R1���Zb��?�^�n��I;}tf�{e�r�Qj�$��[0�m�~:��s���;�δ��k������h�����C?r4��i�͗Y���L*�ʬiԱ�:26V��m_��C��ܺ�ݗV��3ݵ)b`�+�:�ǣ;J�������WҾ��d�E�D��_B�7�}=�~�_�/�!��4�d+ D�"@� D�"�
���3�U8l8OS���aaa<*����6u*�����DB\,��c����#��ଔg�)SP�^=t��
�RS���
�0q�m�-:w�ݻw���Y��,=�~���w��xm�m���k�8�ٽK�&�a唩SP�^t���RO!$$�����Q<���F�;~<v��%�)�|�8�ݵS#�\W_��K��T��HK{�	|��S�Nç�Ձ�gO���E
���C*��W���"�Ξ={�U��8x��ߏ�5,�Z8�?�Y*i.,���*�'(�b��pp|��(D
��˫6IV +Uڸ�j�U��n���")6+8�:��J+*Mp~��ڏ��KE)i�Y�)��l7䜆��ҟ��+)�J|�D��yjni���V�Z�6e�h�P�_���#��D}c�dh<Y�3�9�9���&��Μ��Y�|�>���7�Zj�J�e�_��K���++���2���zrsh�ߛڿ16�_v���S�3S���> �
���'7�	�Lv���<��B�)4� D�"@� D�"@rJ����د|��3�dzgOѭ[Wo	FlLn޼��K�/�r�J;v4�4n��L����*�I
,"؁G��b���n�w�/.�zU*W���hР>���*.\�?���~�	&N�F����=��)����裏п_?8::����!>>7o����~��믨R�
Ə��
��ԏ?b�������m�>Я�8�s͌	��]���_�_Ξ���/Z�����ߺq�&|���ҥ�ñhҸ	O��Du�g��.���~�J���?�V���ƣ~��y=�Y�l2^����J�ɞŲy�q�B�i&'��ɦ�6ş
J��a&�"@�k�"d�9�"V��*����+E��x��{�E�;�=��2Nc\���k��&@��!D�"@� D�"@����.��hH�6t�O��A���Q�\9<��{vcC`��M�"�Pd,�F7�Xy�p%S�Un]�]�ko�x`�?�E��w��'_?�]�7-�Lګr[9[M�[��|����|u#0��*�*����g�9\� ��y����q�B���ܿOp�3�� D�"@� D�����.�2[��������OQ�F
�=
�6,�0�2��	�y4��`!�y��ɣi/p�Ҽ�)�"��H�G�� D�"@� D�"�N(��4X��e�J/9��WG���}''��z'�����,Ѽk���&i�
�Р��G$�#l�"@� D��\'���K��$D��k׮zF��e���K��/��1�ϗ_|�˖}���NXh\�v�i�ɶضm���gR�J�I��(�ކ��C������3x��!J�,�zu�O�>�Z�j%�3,C����fa�'SNHs��+b��J9���U���
))ǡw&����l:uc��njT�z:ca���*��XnyS�0V���~I�ܢRRN�m/cʾ5T�"�u$g�� D�"@� D���}ѥ��F#!�$��t~��޽{���n���l&*T��
xڴi����0f�X4k�����~�:4h��&O*�
	����b����
�)�M�T���z�Z��LţG�P�^]����֖���]�*�� �
�*��KX�b96��7��F�J%��W��}2�aR�)��}2%I_h��R=A�|��5��,Cll<222���o��(Q�[��M����:�e�Y�<��sZ�R@� �'D�0 �0���"@� D����@�'@�����E?|����/^�z-�LE��ᅬ
>F�=�82cab��/ɂ���!{z���W��i�&�.]Z��/���d<����<d0�zz�D������;v"<<'N��;w��</_���g�w�޼\V�r�����-J�� j���$h	���$�T�K��K!*�	��-�q*9I[5ᛡ�f�-Э[W�)]�^�����-^��*�Z6�����>jfi��d���=��΀��=�Z�Ӧ�6HNNԌ��Ţ�
F�
�+����'����
]��B���0��<��3g�ڳg΄��%zy�ˏG�Ɛ����#���xC.����5N&�l-�
Ep���ѩu}��Eo��2��?�z��"D��C��34"@� D�"@�A��l@�*D�� XnB�G6�tsg�l:;*Y�	�
x����^�:Z�l��M�v���tӦM�>�Q�G���7X�f
<<=���WWW+^�nnh۶-J�,�]�v#"<�~�`gw���c���X�z5��ߗ��r$�hs+����(�S)I|���*|�U!E22ԑ��;��c�����iT�X	S�LF�F�y�֎N��j�+�?{����� �ޱE{K1*(������7,�K,XP@��)b71v�B�Xbl)vM�*߹ow��e�*�}��f^�����ޫ!D
������Fhh(*V��ٳf�zT�}����W�YS�LA�UŹzƣs7n��w3g�ʕ+�9��fU�޺s#F�c��PX��.�墩�Ī�i�fc��vP
�=z�´�SQ�je������-�t{���Ǎ�uk���
&��W
�AkN�ϩ��TX������R�Z��5����
–-��|ylްV̜������[Q�b̞5�JmG{-�G�j�NFFc�5�~�:^�z�Zڇ����v#�gL �`8�����`L�	0&��`L�	d7��1JV��ۊ��L�4�C~���Nǝ�˗/��Ŋ�(wwT�T�
��G��9 @��ݫ��}|} 	��ׯW�{�F���;v������1o��t�e5}�2/_���\pZ�
K��W��˵!�bNO��U��2m\~�ƍ��̙3X�A����X�ajT��*�+����UW��$J4ݺ�bkh(���|-�&O�	��
Ѹqc�r����!(H�u���F{LD��5���u��k�4��~�B�vs�	�BB|<�-�ƍ�B�~}aogk<T�!�jC��N%7i����;���1�g{�m�ovH���L&Q�M�\������`��vCLtV�\�;B���uj�S���v��!8(@%+=�{�����˖aʄqj�ꁃõ[W!_�p>�����S�j�>k�ukxy-B���ai���<ٍ��9�M�;p%&�����j�-L�	0&��`L�	0&��@v$���={dG�l30?3�5f|rr
�^���?��K�.
�ž�BD����� `K�Z޶m��c���7O^!"4�z�B۶m3ԗ1�I13Z{�	���*�y��x��zxKNE�P����s��˯�|�
����q�&4���~�����Y�Kt��a����i�6x"�$3��V�ih���Zb����>7��'�I��"��*{.�ƿ�[w7l
B^{;
d4n��Tܺ}���ٳg�^`20>����A�x�I!�e3S��vFDx��Z!9h��P�|]!�)���u�Q�Sz�;#,<y��}IǏ��!�}n��'�c�N8|�Z���N,��ht��G�Q�N]�w�+���һ_$;Y6zg�
L�	d5f|�Q�t(��>��PYm�=L�	0&��`L�	0&����`��qk&����娩sJHHD�޽!���F���;wE�^+++�n�hޱ}v��)�nڸI��.R�2җ1�I�#�r�s�j	�:s���^
�Q%�Q�▭�b��ݰ�Q�Y�̔zt��~��9:}�-"�J#S���#D���a��=��QJ���zǣ��z`I�ن���c��MaW6���y��MvJ��航/	�s��Nb$M�~�x	s�mH��]��H��ƾ Gb��u�{��@�g$KB|�q��A�o�C� -a����~>��_��ӧ�:�6�Y�w����t��ؕ��`oI���8,���ps&��`L�	0&��`L {`8{�[��0��Q}���}p��Y2_�Q�Q"_o�ڵ1q�Dl��];wb���"4��ܹ�U��8�O�q���͚'o^�(^\���޾L�Lœ��VD��J!��z&��i�X�f->)_V#���f"_��4h0��y#3n���J�*#55�v��C��I��2x���K���ϟ�o/!�M�1y^�R���3��>nj֬%�ܺ5k֮!�i��)����K��Qڡ�1W�&�uj*�߃G��۷n
{��x���@�sVe�t�PNo;i
����1c�wb��3��s}G����u�ɴ>R��*/��M9����p�f��f-�mi��������!CЭKl�*���{�F�m�� m��4�&��S��~;�)�'�ȁ}z���w�	0�lK���8,g�]��3&��`L�	0&��`�!�pzh�����g�y���]u� ��HCc�5�.c����_3�Շ�r�R�K\��簵��g�}��}�"_�|HJJBpp��������U�b��(Z��^��rwwǝ�w���Xz�2E�B@�*P�ҩ.�8%��R��zY�*t���Bb|��8����x�,ƩSqx��F���ĥ?����=jԨ�#F�\��B8�?Q�B̞5eJ��=|��>>�>��3Ve�c�]�y$_��z��5�����p4,��0�s�R��	�u�`�
�-����c�С(��^=]�Ԏ�R�HM,��]�p���4�WI��h����J��M1�c,�s��wu��s��Yk�*sS���$�Ƨ���k7n��\�~]� ��F?*��
���-�X�ϸ� IDAT�c̚5�K:���jG'
q!�4yח-��
��z���N��P�
��K���8,�ۆg��`L�	0&��`L�	�dW822Ҥu���ŋ�pv�Lj���*?#��鉖�n�6S�+�k����k�]�1
�+�!`Ɨ�,m�*)����*���׸�G��P'F�/N�Օ��X���@;�Ԁ�0z�hԬQM�K����\�_=����jTm'3A�y��L]k���.�d�B���6��[��.��/,�~��3���	����z���`L�	0&��`L�	0�@v�CBB���f�B꭫G0H�>]v@
���	g��������+�k�������k(]�&M��Z5��a`�`��ԫJ���ǃ�3'M�W��*)�x���0ȟ�ƎA�F
�K��\ê5ky2q��iC����\I��_�2i3P�NN�Qk�a�ߜt5�Vy�=�Y�}w�y$&�>f|�a���"<&��`L�	0&��`L���*��{|���W�,�\��M�z�Fp�f�a+�GI�/����ӲаtL����Ԗ��B�����w�O�hݦ
ڵk���plAHH�^;%8�m���y���x��x���Sg�<�Oǜ�B�<7l܌��x������h�3*�w�H�1:l8z���,��o�V2��Q�cs��'����3��=�f��aۘ�����pV_|��	0&��`L�	0&����U�Dݿ��[p(W����`�>x��}ذi<|�ҥJc��nۆ��㢋��C1x�@��g/��s!)9m�}�����k��D����n�\�r\�M��Oʕ�@oݾ��s���Q�2y�U��j�2�Ja�x|����#�K:����׳�E�PJQ����[���]�ѣG��{XY*����6��!((�	��5k������݌i(S��nE"r;�ܱ'�+sl�r
&��r�V�ZcnjI#'�޳�̞�O>.�[��VU�uf8S�\f|9�Y&r?ٍ@����|��r��(�4��쏛3&��@� `�g�s��I2&��`L�	0&��`�]6eu	����q��X�z5ʗ+���0bӦ����ؘH!hN�8	�[�B���‰��?p����;O�Db��Xt����.���Ah�V�^��);r�8Ԯ�%�u����ذa#6lD��-�zU��4o�UZ�6mS%Q����[�p��%���qѹsg�w�#lعk�����С\� ::�BC�b�R85�
C�A��]amm�z�
�����?Q�҇��`�/,�'Gg�Y�Lp�FMѫW/�X��>u
jը�&�d7���X��娉p���5�<��>1��=`L�	d{f|�a8���`L�	0&��`L�	0&`
��.k{�j{��&x���B,mP�	���ŗ����r7��]BOFF�}?�k�L�n6Z�j
'�/�L"�W����K��I�v668qDC(ui��@[+Q�\Dw��v�L3���{�k��]�7^��v�C����v�8|4111�1}
��񄓓�5k
�F̈́m
�@�T��� ""�������B�%!W+b����{1�}��*},�{Z%���
e;�����:��عcB�lJ��WU�`S�J��娉p���5@�����8ݡ�Y�`�
O�	0&`.f|�a�\��2&��`L�	0&��`Y�@v�M��/4	��>x���I��T�#G)y�R����)��mglظ#�
^��Y���h��{����F����+˕�U�����^YG���t����չ�[|�6n@)�⢿I��ܥ+BB����
;BC�;��4o%l�kGaX��̒n��[����|�j�X��
"9%U��
���9�|y�EM�;u�
�%(]�$^$�u�V8q�`S6���1��Q]�%&����(������
���b���=??ت��}�.]ŏ۶oKӥ�s��<~�Dx��v�7<y��s�F��U�'z�ҥޖ��III�ѽ��yщؘX�ع�o�A�����W_�k׮�YFKFy/P�c���x/T�Г��c<|�i���ȡ�O<NcDm|a�`L �0�3�9w[�̙`L�	0&��`L�	�(�]~������5j����Æ
��C���H�E
�:Ȓe+���J��<��8&���<&�J�����#����CX��_)�(���1ժU��k7���ź�����k���8~���L2p����a.��s|7m�8>�c"*W����#��С�X�|�:6!�-e�uyK��N.��9���K��?�%~(R��t�<��`��U�K�:���ȝ�Sd�QW^&L֌/G�Y	?<͚5CXX�cN�N�ƍ�4K�h�z�j�
�)�;�6m._��ѣQ�n�ŝ��U��56i�Lk�c�ٳg�9��k���Q��eK��yɻ��eؾ�L� ������y�`��Su��T����z�c��T@�qaL�	0&����qX���`L�	0&��`L�	��]6e��y���E>>�}�.�-����e��سw�.�G���B��-���b���(U��8����b�p��xΟ�~�C��4a����0��c}��F�Ν��3g.�~Qx�N�<	5jT��c|]ǿn�\=պ�����ę_~��#��u��\Խq�.��#�.�&O��?�T-Y%T��&wo��F	�V�q*6ϟ'`������gP�|9L�6
�*�ט?�B�R���B��V�����x���\GI��/G
!�5snݾ��a„�(\�0�ϟ�&F�����R=�i`` ���Dh��/DX�"W�\�޽^'%a㦍��Wz�K%99n�����E��{�.,TӦNC�bE���+��:��̛;���G���m�ңY�g���'�vs<�r����0m�t|��g<x0�ܹ#�_�z))ɨT�2���%����9���Q�J�9bdai!B�o!�Ix�Y���y����x(<�y/�啪,�A�w���8}�By�}��޴3�	\@}���`L�	�&`�g�y�1&��`L�	0&��`9�@v��sӢ����,y�J�����2����x�!��q��yx{��D$�D
�,�&�RbJ��\@�7~��8�:C�ʼ�����QVO�B{阮�r!I���sĕf�I���!koݼ�q�P�hQܻ{�s�R��:��*Scyݍ7���#G�D��d�X�nݻ�c��>}:.�q	eʔ��k֪���ʫ7��y)��%ڒ�<f���й%��Qv���Hz��5�׈������`��Ͱ��MÅ<�I�%���x̙=U�V��ٳ�M��&�K:���9�Q�bE��$8���â��P����68/��a�*^	�C�N8|� �r�·�:�U������B�}��S�q�ʟ�y�0��oa����dL�	0����qX� vO�	0&��`L�	0&��0F ����G�uz�	�t�ʪR�pi�Xx�͟?�
��ժ��E�q�Bz�i�)�f��F�g\�Q�����C{���D��n�cƗ�ƨz-���?��
*`�yz�gT4h?z,<]����K�>�>x���|:�4^�|)�+V��݅-�Iljj
���+��]���5tn@�x���:�B}R�%K�[CC���I粲BppF�)Du]���yY[[��[wX��7C�`R�~Z���\\��ŋ�q�L�<Q���1���8�.c�I�M_h���M�L�	0&�3	�����x�L�	0&��`L�	0&�r�	�����
��J̛/��BP`z�졳�$��=�%�_�����
��Lܠjꐨ,Z�k$�N،/G
͙<�=�{ ���U���Y�G�P�-��DT��8`�R�Bឯ^���?���K�.
�ž��RHhI`5ԯ�s���<�I�MMMa��м��\�H<��?���#x�͸}��S�Ȑx�����x޼y��΅�T`��IX�p�F�q
Xuc�i��tѰl&���ȉ���pN�P<g&��`L�	0&��`9��y`�B`*�T�+��u�`]���k
n����娡)P�7n�k�Ə���Ŋ�u`O.p�5
w���z���MHHD�޽EN\�垲ɯ_���x���0ԯ�s�0y�z�
�6���.������{�7o�CMB�СÄ@Lb�G�>B��ʏ\���Æ���ņ��'O�y���+-Leh���xU^���^�Ы2&s�wu��q�`ْ��qXΖ;��fL�	0&��`L�	0&��K����)}l��5�x��="�)%��)�s&���娾)EFF���@��-p��!�_�Æ
C�ƍ�4KO�=z"��+���hXv��)r�Rxg�2�U�&&N�oo�;wC�ŗu�DTd�/_�ڵk��ҘdSrJ2V�Z
��
1r�l���_C�h̸S��=vzݺub���?���)S��O?a�7oڄ��t��[��vC߾���9y{�_E�mb�$.�ݻ�w��AQ�lY|��w"̶����@Nc����x�h@�P�����������#����0u��1%������/����rx\&�������pV_|��	0&��`L�	0&����U&Q�rr޻w�GSW�e�
y�qa3���)1�F�v�����aii!�0�;�����󇭭�FSC!���I
��������U+���($&$�jժBt.Z�(ȣ�r_����?���>��S��7_�|B���@�.]�g�/QS�NC��ĽB_���I^����s��"��$�l�*8h�3?���Э�y��?ܴI![X(p,��l�����1_��䱇�����p��1�$�����\�Dq��!ۍ���e!��](sK������B��BǏ
CD�1!���F�%T@�qaL�	0&����qX���`L�	0&��`L�	��U��Ód����hvo\��γ3��	�"\���=~��5]uNtU�s��&��1�	0&�>f|�a�C� <&��`L�	0&��`L�(��"�
L k0��Ѭ9aӬb�4N������C��+)����WϨ�oU�d�Hn��`9���qX6�&JHHa�^�HD��x1Z|B<�_'�-y��c�y�;wn.Tֹ��lw��`L�	0&��`L ���p�N�rޢ�	��jyP�2����k���pF�����.��c��("���`��k<{�>��E>}%%U��j�P~f&�nkc�B�	18o���k�l-`L�	0&��`L�	0�,J��,�0l0B�`�"�O �M�x��[A=��S@i���4�9`L �`8{,5	�ׯ_��}0	�ҹ��L�2ȗ?�)]r&��`L�	0&��`L@�yk0��I��,�n���fq���i��Ω�8d��}W�0��#^�w�3x&`��Y{��W��fc�,�e!8k���	0&��`L�8�۷o���Go޵)���CI��:Ӡh�����
*�f�"66���
(�:u��!M���/�%{˗/���?�����D�˗eʖ�ݻ���?�(�_ʕ/{{{����e�K�k.ڝ<z�11т���/��Ge��u���%$&&�|��]��ƚdt>�5�k��\,g.O�	�+,�+�G��J7���
 E���0�?u~� ɖMT�(Ow���߳���Ő�#D��"+�����ZW�	�,����Ɲ�w2�8=�4@�R%Q�\��Ǎ�`L�	0&����$0z�l߾=�	�h��3g�D�ʕ��՗*̚9P���%fϙ���@�~��1N�6��9�Ŋ�P��-dkhh(��;i����V8{��5k�͛7cΜ9X�j�A�A��hԸ��:��_�PA����c�8�ɭ�^b�����7o��P�Dq�q�G��cǎiԥ1��!C����"��1���y�I �
��A�)%w��"���t�z�$�/�K�q}���k;;�bcf�Qڡ)O����
*�6o����n��,�ﳟw-'&����(������
���b���=??���h ���J��Ϗjժ�W�^(\�02#_��G�֭��sf���K�ul���(���>OCs{ W�g�sl�Tq?I�)C��<�����Q����x	�?{&8��pt��S����6�U�*���T�tld��e�ukʾ�:L�	�=�ߞaf�����?.^��'O2Ե<̳v`�9]��7p��U3�A/C�FL�	0&��`L �䂦���h�����H�ˆ��B�<�?
H�L�g�n�p����Y[[�ի7��>*[j�4=���-ZGF�bE�ci����ǚ�k���d� M6I% `3\\\�R��:9Yc>ݺv��b_u{m�\�r%ܼy�n��J�~P{���cǎ���'�|Z�?.�!��ҥK#<<Lx)�w>����-�ՙ�[Ȯ0}<ӻw/��y�&t��E��&���M�!<<��������H�',<M�4�z�ME� j���DC���?��ş���;f4jT�E�y��R��kb�͈��Ʊ��s��=|O�y�t�2*W���Ӧ�p���{��s��%T�T	ӧS��j���#��k��FFF����B�f��իVcذa:?��$GGG����TReFɪp�lI�Ծ�	M*�[G�����|�L�=~�~X�f���2�x����c�7��utFll$t�C�f��fn.�Ѯ÷X�p!�T�Dy��B�<��̸4޾}�%==�D`�(wtt�����6=��L�	��ߎ_f�NHHĕ+��y|��~�͓�+V�����&��`L�	0&��	H�&E�����z�
˗/�����}��Uh۶��Y^�ر�i�gmm�\�r�㞞�X�r���aC̘>��TA���
���BL�<�
T�������NN���(S[�����O?�6)����%^�h��h!tӿ)��`���s�aŊ��޽z	�j��J�9pK &N�$~vn���B��_|��ݿ���c�m�y�._�͛7G�z��p7e>�7��_��� ��`����C��]MZ����6	�HQ��$Z��y\z��{U�OD��B�����
a�MI���v��M�t���hѲ%�����8�Э�ذ~��Q��GES��uԴc�j��	�?p���G��`��/�A��6�ۯ6oڌ�W�0n����^>>��m�~��b�MHJz���G�51��I(�Vz0��5snݾ��a„�(\�0�ϟ�s��=i���У{��� `K����K�x���ݭ;6�:$,׬Y��,����ѱSG|���H�O��ݺ�"��;v����N�*"�ܹs6l�իW��g�*UF���E�ׯ_#88���H���H�9�ݔ�aҤ��^�:Əo��2�}I8%�d]^�u��q*&R\��+�����q:&R�਽u��:.t1U�4u�5m��M��3i�)S��Y�fhڤ�ڦ:�`'��f~�
� �'5�0YX_���=Ef'�X�~C�D��X'�>��+=a t	Ȫ�tvcL`62�4}J��u��揄��bd���S^������;J��g��O�}[_�ʿY��[�][�,����bY��Yg�H�=w�l��r��m`/W.KԬY�E����L�	0&��`.����_�����s���+~�W_�x�|�Q���&�P����+++�j�/_A�J5��ڿ�y#G��h�� IDAT��JQ�]	�4���{D�f*�~���x�K�={��5j����D�<i2�l�9��ժ��W�p��U�(�n�:ԪU���0E�H�F�
L dO8U���ݻ�#*�J�Y����/]�CX<��e�W <,����B//����(S��3_�Je
�Z�UIH>�&M��aÆ8q�8�߳Ϟ>��…�r��}�&N�����|��W|�#�J��q�l	����>j>�����ΝC���$$&�s�.�����PXYZ 9�5���b�B@#�H�M/"t��U�ÿ߳�W���ت�ϩ�HU(��,�����n�X����%q�L?[5�ݻ���%J�[�0�AA��yfg�V��x_𭛷0�c(�ǽ���9wn��		�����ŇY��9&O��FLݶ
]�v�e.K�E�|��h�"���,�����w1bbbDr׬^#����1,�u�-]&B��;ӦM���orZ�3{�� 8{�,��n��;�7sI��"eFŊ�g��'	�S�Nŋ/D�r:1%<4	Iu�\0v�֭]��VVB,���3Dhe�!H�M��BSQ��UJ���JMUzK��3z��-Ro���g�Bi�bB����*1�֝�1�۷��J�YY��;�1r�H��
I[%�����X�\�ׯ��W�^�{���5?��t����?�9�ŋc�)�Q��0#22+W�����U^��
q!3��l�J�8q������Hܮ߼���g��+�T�f~7�K��#A����5kam�[ܟ�|�&��X�:��6�EW�i�nܾ��f�•+WD$��<��8I�ݪ�T{z�`��^}� 4t��s���(�PB�#�x��˖/W��z���[�1s�**U���3f�li��W�֧(W�#�?w�}V�'�W~0�Z�4����3Q�pa�=������Cq=I<kԪ%��;w��)�N'�3&�=
–-��|ylޠ������B���u�'ʪ<��鹎�.�n����>��2<!&�	���ˆ����ϟQ$�&�$���
���_C���KNQ~�JmJr���-55U�Q��e��'�����}�CC��?�q�g*�	\�FM�5�[��`L�	0&`��>�u�p=Z���lkc��-Zh�Lᢥp����m۵��eg���LZ�c�Sgr�)T2�t�Ba��6m�N�
�7`��b��
o��/O8*�}�������_~E�w�ׂ��"�3�H�J�2eЬy3�vsE��ur4E�H�&-WboI ���Lߠ
�N�m�֭�g�իEh�	&��_�C�8}:�X�f��[X��Y�@�&o`�P�H�B�v�ɩ>N�:��;wb�����1i�����8�׬A�o��??�-�H8۾m�ȥ���U��X$y����k���0e�Tt����|�8�a�^̝?��OD�v�Xw*�v��b_4k�ķۋ�6��6��Q$I$",L5�B!M�����[4��aaa��)�hݪ�<�1��-[�{w.�)���������*�ݫ���%�=^����?�B�
�7���P;�}�<�V���_�C.�J?oڼф<�I�����ӧO�q�F��__�s�\�vT���-�u��i�%y粲Bpp�;I��>)���H�4n�'##�`��GeM�݈:�<h�`��vCLtV�\�;��F��uj�S1���:uj�8�9I�#����n�\����_��&	��fv��?J/7׮or��a_�eB����E�?}p��m�`�BԬQ
���9�5e��$/g���i3�Ұ!��/g�`�����_����"ԨY]���>�q�yyΛ��/_a�(w)�1/q5f<H����
!�A�����Y�,U<�\��U+Wb��a�Ku��?s�M�z0v�$T�\=�wb��5k�|Fv�B k	���8p�`�v�*�]�p>���琦��^x��@H��؃ƌ'D^�/!�!�����,�H�\�~��z�ǎ����+C}��f�x�<=z�_�j�~Dp`��W�r�zY��ƎAء�z����z�O�^X�l�L��S���"/a�\}�n@6tI\t]���3���0J�`���Iz�"�K�,	�)��@K0=��1�J���ܹs����y�E������d!'%�ɓ'�����S��)����
���.�Y�4��r杀�A>xrp�?�"��%7n��4i��ϝ'��`L�	dID���u� 5%>�ŋ�A��̓�~�ɤ��0��}���]�v��n��$�
���O��`zqߢEܹs�g����߯��ܬYSlV����0E0�e�4&��~K�Ŀ	���,�[�����Ξ9��y�c�N���+V�ߤ�BC~�eq|�ԩ:l��M�L���x��F�ѣ�E�G�b�|2үI�ƕ��[����ׯ�'�Q��i�Fx��X#11�۶Cxx��w�ڹv6�2�_�D�(�$���a��L9���'��U�VB����MnܷOC��m[�ܹKs�{��{�u�:��ڵ����n������i,
�Lv����a����CX�1���ä��`>�ի�ƍ��e�*�ȏ9d����b��6�xqO��(J�������pRr��	�V*g�Vm���F��%���x��_<���|�IH)�'�K���Ϲ��!�u�=�Ha�����$�={Vx`޾s[���ӽ{���YXhƅ�Ʀ��T�z	�FS�J6<"yl��h���Q�P�T�Z��(4t��#�co�g�/ѩcG�ޯ�]O���/���
[�����N=�g<�O�[�	F>{[��#���G�S��W���\�ak�&ڌ��ĥi�6x��(�>B�c�N{��t��G�Q�N]�櫆.�˭Lm�3���׭�
q�p����@��I7n�{�~�<�����;��ტ���3�����67^��._�T�qu[� �?T7y��Fj�M����={��>7��'�I�戍�<�U9pu�z�hX��Ύ�:���s/+��ڊP�E
�MJ�i���~�����y�K�!P��J���'�#Ѡ���N¹�NŜT���Kl�O�>�~~�_��� 2ꤺO��*>&�d�=�cg�ᅬ�ˡCĘ����u$qѾn�T��є��ԛ�cL�0���z�ȍ%m�\:.y�L/grY��<�/!rr�VJ���aK�I�O��͛7E�%��L����k��~ɫ�Db�X��^P����e��b�A�<C����Y��3f4F��]��v2&��`Y��!���p���i䜕�gˈ��5f�'o^���K���E�|B�B�w�)���/m��ӧO�s��"5�v|�"Q�����e�\O���G�&Q�Ag�>�X�1���S�Y�l:v����g8v���ŏ�~D���C�m�,u��~MY3��ޖ@v�M��1`zw����Vx���u�(`ʿ�-t+���j��
�$a�L�5�0Q�}��	�*�X*$�*C+߅��ں�7"���8"���=|�3g~A��#���G"�.�O�ȏ2X-w��E��u(VT��"�-�~�z����6����:tBp�V֖B�J6�|"(��a�*aya�}xx�h#��n�T:��g4��ֽ;��,F�b�p��-L�<	�[�h̿[���Ŋ�ƍ�4y���C@���K���N$��?ŋ39���L�M��{,T�W��С���0o�<|T�#�g�
	�Ç
�7lܠ��N�O�����'OF�2e�QVL����9�
eK����E��wu`�`)<%��'��G��=�������70d�ȡ<�}D�ܿt�w�_�q��qJ9Q� :Z)ʅ�W��ψ�?����WIX�v��8M.UU����a��=��Q:��=�_'�⧟����Aϕ��^aÚ���!.��� ۾CG9���x��Cc��V��'H�4h���'�w���$4i�X�T$�Sn��#��z�}S`��~Q�ǘ�H�M������ڦ����y^1y�$|۾��_��M_ԧ�dzS}�F����B}���IR�0�k�L��܌]GZ�)͋֟8Q��u^&� �`F	�l�Y+�K����k�A޹����;W
�L1�Ģ�ֹ�5�J"0�G��Uݠ)�?�y�q�ȹA"���5�^���I�h���!�r~�w1&�Y(�\�ڵQ�Xq9rX�m߾�D��^���YCq?L�	0&��@  ���f̘1�u�֬U漢���V)_zI����%y����Bf�B���y��pus�H�bj��Q��
�����\Y0C�E�w�p(!�m@b8y�P�ɺu�j�rqq���%��O�<��A���E:
qz:.E���?.������T���EnB*R�h�@���7\<�,@ ��o�8"B|�ۺu+�h�{��!;ɓwʔ)�Z�
:w�V�#��P��i�~{�
&r+=�)"¶�P(�S�N�'*��
)�0�N�]�P)�D��S��j���P���#G��Ν���"�l�3{���y|�ݲ�*�Z���^�/�]^�?�I��	�e���6i#Ž"<�(�y�W��"7���2���L��Q�w�D�"4�,U�[���5k`�+܇ט�b??�*Y
mڴƚի��*F�.8k�ef�&��>���H����<�-Z�����ćÆ
C�ƍ��1�/�T���G�/7��X�j�1<r�л�󋼽�ۯ�"t�6�>��E�ݻ�w��AQ�lY�.�BZ{zzj��޺5TD9j$��؜��ŘܸY+��I��oD`��ٴyK�����eՂ��v���d۶m"-�o/�!�U+B�׻ts�R�v(�Q?)�ڵ�-�G):'���خcg̞=�֬�!֒=to�W�g;/>�8t��(���6c6�( +������M����I4�..�B@�큚�~*�Ʒn
��s�a�b_a����z`i��
�M!�+T���=z�5��$��Ν���7��]�u+(t?���B!��n]�`۶P������O�T���S#!�G��Z�>S��޺�Ϟ��%���T¦.8�~���=~�Dx/Z��-�P�p!�̐L����Y���U�Z�
t��BCks��^(�`44}���@�����:2*�����>�)L �`��.!�~&QV^$�DY*�2F��B�R�Q�hQ!���/y�ҋK��Iz�P=���ׯa�+�����7������+�3�K��A
���m��t��}���(���`L�	0��!�Kp<x0��Qt���nݔ�#�>y�lڼ)�Д^�T�R�x@��B�dI�1U�V��;wE�������N��J�Ɠ��u	���o�~8|���6sxk��ַ�����C��ʕ*���5j�B;�j�
���:u
���Ѯm;\�|$���eʔEpP||}E]]ᤍ	��m��e����)���!tR����b��Ex���Vz�8pw���B�����(��qcǢz��2o`�С�G���x���{p��]!�RD�%0���֬!�e��pܽw^Z�P���?���˖��;(R�����͛�<ޢy3�]J��p��������c<��^�ڟS(�Tܾ{�ȶ?.
�F��Z5k�q�f��ɇW!�q��"�/��~#��Tbx=~�9s�k�V�*��̧U*���'��!�\�jq?.�?�����,r�����"����
|}��u�n��1"t���?lmm4V˜Xj�|��=̛7�=F���5d��D-7WW�(BQHȓ�X�b���1L�>�l�'������
8O{��� ((H|$�����U��|�%J�y�	��gJ3As��KmE_Xk�ŐVx���n�"<���Tl��Z#�l���Bb|<�b�D��<p@ю��ٳf�L�F�#a��8�����o�Î!""�=gize��q��Q!�St��4���*�Ї���y��������S�����Q�:*$p�]��#S���Æ¥��8��ՏOHIJ�+q��	�R�>M���s�6f͙�+W��R�
�1c:ʔ.�����X��M��
4�{��nܾ�3g��\]]�e�"��y;v-BR�kP^[�E�p:6R����܂�>ƬY3Q���ƾ�%?Ox�e˗���7o	�򕫨X�"��>�))xҼbb�@a������Y8j`���8E|84p`_�]�׮^���eNeY_ԧ���t��l/���	��e�$�ks)U�Á��t���~�]G*.r�X�$�����_�;�Sff#�����X���xII!��TH&�V
�\�Je߲���;�ֲ�e��Y- �KK��+�����'��$K���'�^�F��+���Ν;1j���%a:�rU&��`L�	�!�K~��1�5m�����V�612�:wss�����~*ӧOdž
���ׯ/�̞�v�JO�����>y��-Z��v*�S������������ŋ�7n�gϞ�r����e˔b
�K�cpF��K�	��]��L��y����z����h믭��<�%��ƃV.����+��f;M5��ۨ?-:�7�i޷i��_8}�76c��οk8�0%ѧO��"�y�g٢#��U�Y�G��s�Z���V�����ѣG�f�j�V�w���jը�V��"���w������-���4\����Y�8:�SkTճ�r������@r*p�d4֯[����i<���iBf��o��q4a�����/]?C�H�Kǟ")�F�tc�4r=�	%n��,�Fhv}ן1��<`�`�4N�u��Y�?�Oӵ��W�K?�n��ʉ�k�wN%�8E#䜼S��t�����������L��)�/	�
{�c��>�9�>}��K�.X�dq��3gL�	0&�2��>�ĉps�.Ơ|�{�����h%8(<�Μ9#���>G�)�7�Kz�7.���о}��}�4?
YI9~ccc����5j�O߾"$����勗�C���$!���mڶ���S�g�v1&S���)��;aFdwؔ��lJ;���2��$S�˗.c�ĉ�ಥ�ШQ#>,+/Q�٦Pz���5e��x��
�S[<3��󆀊'y���>�S�LF�����O��K�c�}������:��d�:�h�w͋�c���j��%kHܥ�䝫P(�Z��ŋ�
��1X��-z)��MU�#��Ә��ݝ;wp��u���!��BIӸ�
{����!�J9�}��g#��paL�	0&��@v ���+<|�H���m�����
Ez��	���1�y%�Nj����\���f��.�=�%�_�����9{�{�Zr�|��5�q�_�
�(�>��4
���YkQ�i���9s�kNY�oC�ц��u�M'��d������{�mcY���gu�V�n��9����:䳔��*���2\s&�6���^�JvP�g�
�����C�G�x-�ҥ��[̜9K�9��i15gg�a�<&��`L�	0&�r��.��L,�B��d79I�nk�2&��`oA�ව�M�|��W_�B<�g.��$�~��gz�<gĔ��\�p^�Z�P_d�����p܆	�$�a��(T� ���0r�(T�T��1&��`L�	0&��
��)��=\]]M���I��R6#�p6[06�	0&��0���q��Z��_��%��r/`
�\�p!T�R%3�}Q����$4�"׮]ֹ�3��	0&��`L�	0&��@v%��`%��۷�ɓ����Z��[{
,sY"��(V�(�t�eh�L
O�]��`���,���UiC4T_W�D퐶
],Y���X[c������������X~��O�w���/�����|��^�B.�\HNI�C	����vI6��M IDATXL}�Q7������Ʊ��4������݃��`L�	0&��`L�	dQ�U6gzT�{�L�}x�pb�������=|}}aa�@JJ*�{x���g��󇭭���]�j�NdT�V
�z�B�…�7B��'%%�G������Ӟ�}�<�P���탒%K���@
�����UV�~�����iԥ�
;�|<U�7�̘ �j�+��k'��Nu��`oO�{`L�	0��D��w�W�\Ž�����`������`L�	0&��`Y���/gm�l�(�w-�������Ǡ��ЬY3���a���6l5n�f*�PJ"*����Q�}�*�1gΜ�N���L��8�
���4-\��/�oo����T�
��@����1�}J�(
'�����Pq�:6@Ll�99�W���}$J�(�Q�����5�����@����R�L0$+���ؼ%׮�)R���iQd�r�T1�Z�U��z�V���k�D��J+bİa����my{��`L�	d,��U�p��>}�w`�W�[�`AT�Vմ?��<���S�kה!��S��ˇ�5���	�eL�	0&��`L�	0&�A��p��J/<.L�	h0��QC�g͜�[�oa��E�0a<
*����댮.��OIX���A���~�[�l���Ǒ��g�E�����O�>hݺ�ZxvusE�N��˙_Ę�}��N�!&&/_���	
�!y�(X-[��Ν��W/_!(8(M�\�r��7w�x�ؾ}{lۦ�5�,��ytw�+kk����/]Ɔ�@}�;�Y�f�o�~ظa��~��Upll�F<|�-����E�Z�T����:*����bNj�����X�b2��ISg�iӦh��+1,	��x�h���a'�p!&��@�:u�7��r&x
S���q-U�'O�6m�c�ȑ�꫆����'�t)~ܷ��P�7&���p	��GQҡ��?Q�{���t��j
Ν;oP�SS�PX��̔8w�����aiia���	��>(������s1�Th<C��5k��3&��`L�	0&���1X�1K������!T�n��8�q(Z�(�ݽϹsQ�RE�M�=�O?�+V�w���LFHHv�ڍ�C��nt��W��cԨQ�\�2���իW�ԩ8�/_ӧOǮ]���ۤqc:t#G�D��d�ޭ{wt��]�vE.++�v놯��ֹ��q�F� m���d�DGGc���Hz��5�׈9�S!Dh�EިS�Ə���,^�S�L�g���� �q����z�� �
�7�,��|��m۵ñ��prrF\L�:��R���zN.�S	�R�vm��D�u�[w�a��Qض-V��}���>��K��hӲ�f�uSޮ˄nINлO���]-�8qA!!ظ~-D=S��Юw�`L '0�3�z6RlL,^'�ֻ�(�/��6*�	L�v�/�,k3�Wʯ���k�
	�$<+d�����j|�	0&��`L�	0&��@�!�p�Yj��F��/G���Z��Y佝7���r�V�VD��0b��q�q�F�G�>}Q�H�\�+�����	ooo!7i�۷oG@@|}}�� <�?z���}�^�P�L���@{���ț/�8?h� ��� _�PSrS�B�c��Y(V��y�<��#yР����@��Ņ8lJ!a���bԞ�O�%(/��U+�A^�fY3��1'Qϩ!bcN�<���.�~�W.-�A]�%J�[��J�Z�p�B�����E��Q�F�߯/����+���΍�	���x�"�j��x�q([��P�C&�nݽ�a�G��;�6�X�b9J�(���l �����������A_�*�"\y� KB0�P0*Vx�T��յ�����I�RIPN�ķo��_�
kk+҅��L?+N���U��L�	0&��`L�	0&�r�-��9��76����=2g��Q����j��^S�Ϝ�|ؽ���!p��1�����4<��_�]"*��޽^'%akh�x����*�v)\3�^�v-�,�����ذa#�G�c�1(���+�ˋ^Z�}L��U{NOW}777�E,�����
DEG�o�����mL��,X�!����֭kҞ�`ʑ�@

(�Ok}
�ѣ��PT��Y^��W����vį�C1Q�i|��	B^{;��L�+]����۷�) �O�a��\e�h�-�Yߥ	z��z�����B�Ύ��ƺ�+�����ǎC�j�ѽ{w�9$8��ž,����`L �0�3�z�F\\�x�W�#�2�%����Cyꦤ� ��(_�<��ͫW�\䡫+$�H�=ƍ����#1y�R!1�u�~�d�Cbt�z����g�`L�	0&��`L�	d��*GFF����Vx�9;;k�Wh8��T3i�tT26��\[:��E`cv�
�:�_���4����:0��f|9j�+��q��za��	(^���9����{�S	�G.^�8�.]�;w�}���|��exy-�b�����}�0m�4�[�w��y}���4���?L'ɓX_}�x���"�ࠁEFC@�rK�5����1a�4m������"E�	E;�\C%�����ir�*���m�w�>ƺ�P�������y":v쀈#�D=�j�_��N�]�v^;k1�g	�ЦMk��8��/���/=!�6j�����F����[���0m��*L�	0�lO���8,���_0�X�P��B�!�SԞ�$�R�]
�B_��=���Tt=���'�����B����k�������**�cC�rW�Q=��}�`L�	0&��`L�	0��"�]`�J{��uE�����↞�d��y�J�����+N����s����+�P�t)L�8�j��k�w\m{��)��W�a՚��<���ȴ�����5kp�d$N�F	v�/]�|//\��'J:`��1�W��f{���Ï�9g�b��/h��A�k3�Շ�>����[�l�C�B,6�7J�L�+��uk(v��)��;EʑۥKt��ET#Q��˗B���4^pH�8�y�f�޳G����Ŋ�ȵj���I�^�rWOW}ooĝ:%���I��bT���T�<==�S�0a���4o�Ǎ1��0���Q��� �G�8-�~T�cb��8|*&2�PJmS��]�	�]x�Y�M0%�ᅦ���n��b���ю���qO\�t���(<�--�m��|����iک�(�.���T���c}�
��c=t��&��T\6�[���~�v3&��C���8,�Yc��������r)�/���?���p	�(U��s+�#�W�o��=�CC���uܾuK|�ggo'��I��g)���}D��ժWK�6�L�	0&��`L�	0&�>h�U�~���7&��>X�I��"����J�n*��i��:��c�����oZ�i�v��",,[��S�(�q٥�G�'�4�}��޽��X]�O�pC}���@Ϟ=ЬYDFEcٲ�ػk�V�R�ū$L�:$$��9�-�%c�rT�A��/D(f
���X��1v�$&&����*�M��1��"��{��q(,"�s�^���-Z��q�1e�|��g�q�ƍ�O>������C%R�U�J���h��:�VC��޽�y����;w��ɉ%d��4�/�CB�{��ի�_�~(\���Ν;�5���S��3�D4�(`q�}�!<�h~@�����TL�v��Ѱ�G�c��4��x"䴅E�A���1|�P�ϗG��7���e��.Eı�HH��51��C��@;1��2+��-RS�%Tn޼o�=wN�N}z��?{ge���Pvw�Z+Ɔ�
v�-va7`*v+* v+e+������v'��s��;�3�(���>���8�w�{g��s�1�\�ϻ��`L�	|K��3�:�����˗/uNm��!�����KB0}�*X� �(K��BVx�R�� �~��XE�g��=JT�>���R��ŋ���1���`L�	0&��`L�Ȩ�$�R�UJ�}_�](����H0�y��M�*�3u0˗/DZ�c�U[EH�\����?����q���s��:e�)���H�m�];w`��=p��
���E&Sc�E�V��A��Y��R}���ƍ���)Tc���o�p��u�/_t�U�"���{еkW<���2e��!�׮S'���uy<ӓ��S[�,	�U��TWlL��L�N���{ac���Ʉ��=Q�k�5�����p4�����)�aTT$�L�"�Xf̘�iHt�J����r}�9
�By�d៥3���A32����B"�	���_4�lMd]ntn\�4���	0&�2
�t�����I@goܽ�_�S�B1Sh)43	��q�066B-��3G+^���J|\��
�G�ׯ��=y��=���Px����+��Ua]��S	( �}Ɖ	0&��`L�	0&��2�l���)�*	����ac�vmZ�<��,].<[�B�B����;;{ԩ]�Ν�v_�X�5j�àA�б#�̌�<v�5o��j�̙�8|�fϚ�u*�gӨ)V�Z�ŋ� x{m��ME�$A�s��ܾ�Y3]1�i��P�Y�
ΝƮݻ��>�F���][�vUSx�����P�z`*���V���y�V�P
�:sʔ)������o�c��\�͝��k���l�֑'���*.
w�HBCF�����}:U��^�����WV��f=�����t��Ӊr	&���(��3�:&Add���O�S���Xx�J���&�"oLl�nI��8���SSS!�RR}U�����������'����8�ׯ�H�5�8oX�ܭR��2����|�	0&��`L�	0&����@ ���^����)yW�^�!gРac>|���ӶAC[�\�O+[�x
>�����2$���3��ǃP�Fm?vY,̄ z�L0�<�yn�0e�T4o�5�WWz�J��ڳ_�cZ�f
T�Z���F�$/��⨟</������36�L��3f�F����A�������k�!���N
e-?cT��tS�3G����8�����@[�6�B��s_����P��OB\���f̏pӥU���hZ��0&��`L�	��g�S��/�/9��&ї�1S�gh)�HK�o�bEabb"^#�BCKgk��]�y�w�.^�z%ꈋ�?IX�ߥ��ٖ)S&T���'�3.��`L�	0&��`L�{&��`C�F��\�ߠ�������#`ۨ�R>w�4Ld�9�ڈ�m7��{���L�<	�RHd�#6&>���c��
:d|�n�	)��8��Lb���p��E9|?��	ÇQ
ύ��u* �"���:���]�`��/2e2E�FͰo�>�vQ�t��<�pbҙ���`�):&NN�h֬9Z4k�bZ%�k�ZuGσ�g~& (�Y�X�+҆*����(�eL�	0&���W#���qXNaTig-y�jK$�R�g:8&&Fxgϑ?��	Y�d�?Wt@�(��x��
���_Z:[�D`���@_W䉄�B�
�G�s0&��`L�	0&���F ���9X`��uD�-вes���b��UB�mܤ9fΘ�J�*�����oę3'��4e˔A��]��/��e˗�3}CB��X1���Ēe+��([�4��#y�B���K�Ψ_�>�����#J���$y���3g����
��:i��>�i,ʔ)��.ճ>�s���5j#T�Е�	1W��#��ϝ�2e�®uKeHh�g�����V�Q����m��g,<�p�3��"L�	0&��H����(�}�]��3�������G$+V�3[�=5ϖ�ԩ ��,&/��p�����cȻ72"�&�J/`:��
�D°��5�f��-r~&��`L�	0&��`�5��.28�<��\��Y3g���7����<<�|��9,^�QQ�:t(/���Q<y��g�ƍ7P ~�wq�o�UR
��B��й���\�`>!xV�^�!��0�z	��ɓgț'7
pD�&��]�Z�&BB�)`�p�Ͽ0d�0x,�@�ʿ���<ì�sR�K!@k�F��|��<E&<���(��Q�&·��H�&b�'�x�"��H�E��Dܿy���%��Dt��rV^Cj�2	��<�p�{��}bL�	0&�2�t�����9p��u���%�E�+�b&�����J�������95S��@Ka�_�~��""2�6�=��(�klDb���y[��NM�\�	0&��`L�	0&���wI ���g� ����`�;�l�Fx�j$��|I���L��fUd�\����6__ܸ~���V��}��=Z�n��*�Kڬ�5�m�%5�T�U�|]QD򲥼��f�.�U�KWu��z����n��w���Ԭ*�p45fqY&��`L�	��@:~�aX�����`}K�(���s(�_�҈ιIE��_���H|�y��M�'&$">A
�$o��*��o*�sQ&��`L�	0&���~	dtؐ�Q�V�u��ǐ!CйS5�W�PΒ�
M�W��֪�@�E�;{6��Ρ<���\P�t.�f��-&9ڪ_�|]�6�Rꌾ�6�����}]��W_W'��G5`L�	0&���t���������V
�\�`A*THm��A��B�(� ��ȻW������@�)1A���<��dɌ�+�#���`L�	0&��`L��#��`U`��~�&m�t]�y��ԩ!�{�R���Kג����p���������	0&����	��'�y�
`��8!!y��A�2e�MT��kjjXh}c���D`j������?���W�^	�I611��ʕc�_Ɠ�0&��`L�	0&����I ����Z�3�uy�J�����>�]�=}�C�$�����9��	0&���H��i�k�
DI�l?~��mjj"�߬Y�
8�c�2�	/]qn��/4zB
��K�/%񻱉�*Kb�Ǐq��M��� >!^�\�`q�'&��`L�	0&��`L@;��*�ٳ��v
k2ؠR��	|�"F�U���`L�	0&��K�+���Y�X�������͋?����1b���/���X�����
l7!Q=4#����[�bp���Pκ��5r6&��`L�	0&��`?&��*����ϟ���mϞ#;��͋.]���̽�n	��������n��cL�	0&�~`9�����R,BI���{�_��ȈH����015���Q�!6�^�z<|?�Y�Y##�p��u����BŊr�cNL�	0&��`L�	0&���NU�!e?:��^�ڭ돎����`L�	0�	�l0*yF^�ʔ-�.��E����=v������E�"Eaii���L�	0&��`L�	0&�~<,�xc�=�>��}�#��	0&���rX���_
�_
՜���L##Y����i�I�
F�`L�	0&���.(>z'(:cL?U#󤦓2��y�^O��3��O�m�sY�=��W�۷.۷m���L�[$�g��4��ӧ�ZW--,P�dIt��y��1h�I�dž
�׵�������q��B������uvv���U��.&��``�`TZ2*�H�/��,��?��Rc8�eL�	0&��`��� F���q	�	2y�$Ӂ+$.�P;iT�w0���N'�J܉=sO�?d�,��|	 IDAT���Ν���,�D��KX�bJ�,���s�<=7��ɓ�X����b��`L�	|X�&���`L�	0&��`L�	PT��~�_��"*"m��D�4hce����q翇�27Aêea���f���IlN�М���ij��Lܯ�{���_A�����ˀ�1Q��?p�t$�p:�媙@:Hw���jff�U�V"66;v�@h�DGG�j�*�ѣ'�����;x,^�gϟ�iӦ8z�(bbb�a�z��+�,�<eUڔ�w��oߎ��M~��gt��
@�[Y����m>{�>�޸��]$�'�nݺ	�7o�`ѢEx���7k����)���		�0` �f�
��
q��A�^�)�-��Ϊ?�}��ٳ�:����"���I�0~�x��L�|�m�-V={�B||��c�)b.<~��=cԨQ(X� 1��c�� s��J�^��Ç��wȝ;ڵm��~�I\{oo<|��
B�ȑ]\��H��&��M���5k��ɓ��6/���ƍ���Gt�����Eԡ��`L�	|�X��G����`L�	0&��c�0y��,9tϟ>��y}�-��(���vDv+s��ـ4�5�&ND)^L&x~�8*B(�A�IK��2�B�N3���G���?�;���p���̥q��3gK',�X��	�3C`o޼�Ւr��a�yc)iz�^�p+W�Bٲe���ooo�����aÆ�h߾�7o�5k�"$$�{��mܸI�$aV�^տS���|��&##"0o�|�.U
�nju�
��8�6�̞��w�b⤉����|ww�)]cǍ����۷/�bc�y���:�l�\�&&ư�o[[!���[:O��{xx�L�2�}���G��&�nݲ9r�@#�F
Dtt����ׯ_�K�‰�'p��	4h����Ý;�����;m�4���
ĵ�WE���F�<>>>Ȗ-lmlq��q�z�J�\�L别MC������o@���+g.�ڽK􅒮~|
��&`L�	|9,�5�4zؤf�{N�Q�`L�	0&�2��G!���WE��;�AP�?��tb!�����Q
!,�j�I�	�b�H�|�x`��Sx��-f�j#`g�.�>*FvI�I�Q��T�k�B+�YI���9�y�7�q���n�C�^SE��I�P��;O"��{�8�@[�?�JI��.�C� ����a������K�Kg)�������I�������q�����
yX*��d�m-���G��8�5��?������#Δ��t�=����$[3�|� �2e��5j�P��(��G-�e��Ou��2��%*ڔ�X�4��6�T��G�p"�������w�{��1ƍ�����$)iz����wޗ�G�ƻ��r�
Qh��(T� f̘��#G!,,˖-�
2D��'�T�t�<g��w�.SFx�JI���ٓR��e$ho׬Y#���E)
:T�ǔ��\��C���o_�6DdD$Z�i��������j�)S�ܱ��@DD/��ĉ�G��m۶B.V�����׿v�ލ…�jժj�"�bkkkԨQS��+epuu��ѣ/jg�…�<y����LצN���Le&M��L��%)������m2&����#�pz�N!����^���2&��`L�	d`ҙ�$ԑHJb	�$hZ0?�%��
�	���D@zMx�*^�2T%�'+��O��o�m8�aQ�<��I $q�~�H��I����6�=���$jJפ�H��kB�>t������#�(��$�R�~P�낶~R�a����uD�T�Le�-*GI�=^�~���uʫi	�/]�C��C�K��v�w���Q#��#����v1k�9�	�4.o���?�n����$|k��N,i�T�Geh���5���ƃ��e�vM����=]g8c.*U�0�={�0���&t��Aqd�
llt�6l��ǎA���V�D[��2�A��)S�L&�SP�A-���O�ܽw������Q#Q���xd�X�d8���s��DP T�[�)6.�,�ɓ�D��aC��n�Zj�����b�&O�;{.Y=�l1D�:H|�srUS�z��P��TU?G�2T.�:::".N]L�M+W�P^[�n��dj޹)y�T'�����˗/E�VV�"s�j���`]a�Sj�捛����ϟ�����Qѿ�ܣU��*S����땻�M����O�b�֭B`uw_���*���-�]JFFƘ;�
QQ�HK���3D�h��n�8q�؄@b�f�e
�7n�����%J�U�;s��s�BHS}�%}�y���ys�%�����dL�	0�o��_j,��-�_�#���`L�	0&�� ��q���A���{�3���kf�.u����[W!Z��;"!.��ѥEԯRVhv��
��z�>�ƣJ�rة.��䢤�-���s6Ó��K�r�w�O�xx5*���
�gmt,�}�$.��"��v�mѬ^9�����P b���8tj��*�P
��������"�P>k�X�b���ŝO�>*����w�J��W^`�a�~֨R�.�Ěm�`�¹��D�HL�
(��	��ﻈG�|��<�+��}��7o�uJ ��=��sQ
����ۘ^J�u���X�B������3_!ԫ�3nݼ��_�l���>�%2+<�I��>t�.\C��%޼G6+s���UM&�콗�c��d�{�l�
����M�:5С�B�=�1Z6F������E<zv넃�k/{���	x��{�ʹ;�(l)D~M����̠�x��a¡�ѡcG����5K�[����~��h�D�_��T^݃����Z��$0��ZS�_�¨f=2Է�EP�1Q�ʬ��U��Q��n�[��ah}��6�w�d��f��U��I�5p�4n�M�6��S'��֯�G;Pa�ޔ�~�M��i3f!88'�`�e+""��е+���۸zC
L&;���o��8p`�z�MnC���(!�EDһ
`ei�I�'Nͤ)��٩gϜB��;~�x<�k֬�uUSJޱ�p�v�Zᑯ�9�R�R���z!�w�B��ŋĥ��Sj���ׯ�`��I�k���D"�j�I )WL�R�S��TVW��z]�9s&z��M��³����J�]�]`�I�֗d	͗�E����'�ѣ��\�`q�s��}t��\�|��ƤI�D>�*'����*�0��s�	o���pL�>]yF��8La�]ƎM6�S�Gz��z�`L��`��[��`L�	0&��@
�ÔD�Ћ�Q�ry᥺���ؾ
{
��1��Bxu��H�Ӹ��<��g�_��'�еkk�a:�c'rYe~��*�4y%~+_û5P�H�`�
A���C8��
���+���n��Q5�xz��
T�l-��;q�;�c�3����2j0*�d���n�{��$��X���Gm���o�a���{��9Kv���EкEU\z̚��#��p�����N���������9���&ۜ�F���0�{-|x;�VNG.pU�݋���p�z
o޼vQ]�hJ�GQ~ξ�q��)����΁����0u��W( �t��cx���M�s��7Wo����=�y���#��e��,]}���Q5o
�9���E�q#�����{֥��V�N�ת�y#_����C�����d`��Ή|�2���p/ܻwOP,^���wU��6���6�<7��H&D�^}�aÆ
��d��������,A�n�J7r��	�1�X����)M�GO��m�<���?(^�Ǝu�}��o��~~��<�>��#G�B�޻�������C��E0v���OC!�GC�����o\|<��wD�fͰ�9r�?�\���+.�:�'�cj����V�F@` ��> O�<�ӻ�8����#زu+޾y+��>�*U��N�bń�,�_�ж]{ط�������^��C��(�L}
����f�Z$�'�u�4�Z��ښ#�c�3�NԴ�Ƶk(gm
!2*��w��������056B||:t�֋���h�ڶ�fM�xʥ��O��w�V/�,S�Ǎ�I�Vl��'Ȍз?�X�Dq��kM��i�L��y��I�oy0T�zN�>��;w�*۷o�:u�h�^S��s`�Ν'惃���ً�3ps�΅E��\�_0|�p,_��._F�>��v>.��%QpĈ�"L�-[�w-	�)չd���m8�8���&L@��1k�,a����w��ș�ލ�I��)�I}	�����v�:���'�X�|96�_/�H��5��#%}��f������Nlh�Hh��})���;w��4l�?��S��Β����ܵ�ڶ�o������mk�V�����lm]>�B
�m���`[�����۝;wU�8lgg/�f�5��Ә7o^2[�Z�˖)+�h�Bg9SJ��Ŗ�eL�	0��O��?l`L�	0&���!����H���M�61��ҙ�RFEO�f��Ɩ�P0�1��B~��<y9���>�yE�����
8K��%X���b�"�=��w��{G1��f%x�@<{��ۈ�_D���#�
F���p�&�B4��z�	0f�2L�3V����СeS�of-�A'D%,�L�[	�W���x�h(���<&�X�U��#_6� �o�2tnR5��֠ek;�~f����^�>/߾���"��{0|�'f�E�����E�V�DXcɷI_�-�ݛ�®v��y�� �ptNѯgz[���Y�_p�0v�b��
�*�=w�G�X��[M��e��3����Ht��yCQ�B.c��6��¦VnL�14v�ܕ�S����0o�
��o�F��É�l���e���!<�	�$��rsC�:uP�v-=z˖���мYS�={�N�Ƹ	Р�-�6�q��!�t���
�T��'/U'�qh٪�8o8�|v�ډ��ֶ	ƍ��"��i�h�5�������g���R�2ڴi�����…P̛?
R���"\�1��oR{
5A�~��ξ
�����2�4ڧ��I@uqv�z]�_,wn���7�{��A��m��c1�-�S'O�MF$kkg��"
q%ԦQ#L?Nࣝ�0r�h񻳓��#	�ֹq�F�ѣڵk��׮c�ڵX�f�ң����chպ5<�۳z�*%&��^>>B�<y*&L�{;;T�R���cϾ}�5g���s��I�'����IH��>���¦a!ܒ
b(�ߴy388t�v__!��89����|���4��)Sݹn��cǍau��dBe"�2�El��dff��;w�Bh(>~��R�J�{��ȕ+^�x�E���hѲ��G����o��$�v��Il� ��ո�8�u�o��@�+L�z��]P�hQ7�x�Ϊ���PvI�L�u��̙3¾��4k��y������ĨQ�D�v���݃��8�gsbb��:�٣�o��m鑇D
qM�^ʔ)#�P�)�	���ٳg
��ͱ����{'L�(�=G���Y31y�d���	��q�3G��k��eˊ6?�}��Ǐ�W�Cd�Jqf��/��$�h���p�!nWM`����iÉuykQ.�~�W��	0&��
,�V0&��`L�	0��@ժU�G%:����Ϡ>�*Ά}����?œs|x���{�X~�_!(�O��&!s����t�F�V�к��7�6ol�5E�ȅ�}g�bŶ�p�:5s�ž��(<iǴ��h���J0�����y;
�pw�waQ1x�:�]��Bv`��@�]�y�4�6A�Y��)S8�Mñj�v�Λf�C���ޠ�M54��
3��ñ�7�IA
�cZ��;�"���7�jW�/���� M�5qx�_�-W���+����)���TƇx=�s�RtkQ�U����q�Zl�6?�۳a�y�3@vU��h���-yC���"���4m�m���@mi�I\�M�iS(�Ӄ�i����ݺ�d��.K�\MO`]�$��u�<7o��y�0x�`�i�U�V`��z��)<�H�<|�0,�̈́�`׶:,DL)�1��ۤyDG�
B�'��<�(G쑣G�Hk۠��B	�T����}aia���Ht���@Æ�o%�Ʀ�2�1��z)��m��4o��Zۧ����Y���~M����/�^�>��E�$Ԓ�R�juT��T��W!�6��ΑC�B�\&�~G�>�#G���/ǎ)`P�>$D���D4�m�&��
��쑇Ɩ{��Aǂ0o�XXZ"�	�
Ÿ�c1�m�U��

N��I�I�(y撰/�%-3\�d)��h��%K&	�
_U�O�^hӺ5����>lX��	�d���������勬E)�=�"p#L�	0&��� �0O	&��`L�	0&��U�\�r�7��(��G`Ԕ(Y�t���>n�7b�(��H)0��uޙ/��L���Ax��.�6�
]�b��p���VWG��.?���ҭ�0�u���.�'�,��B~
�v^G��T^�����:��W�^o�c]�a��~�5��A�ߍ8�<����Mu8����%��aX�k�BA3��.��]')r�F?{�U�Ƌ���0L�^���x
k��Ě�CA�&r����]=|I~�C6t|����nW�@Mp�KѥE}4o\�>�g�&����V!�7�Ź+7�L�pR��<{n;Na��^(#�5ѥ$�kb�&��!�9q�f�߁�΃P����C�٢Mc�����!�{�C��stDlټ7l�k���//�_�Zx���y�\&�Ƕ�;��C
1O.������M�5)�+ɓ�<y)�4�{�R�{���>�^���p�.�3XS�2��p��Q���l�D����k�m��'�M;���$��]��ùV�Z��-[
���7�_���?����ZٵM�O�b(BK�����%X)��±�',	��I(?.��<U�4p�R�o�+V�@���-���za����ۧ76oڈL�̅��:�)�g��U�Y&)��w�F��X-O����}{�%sf�/C�n�0�\(X�b���у��
��Rh̅��9�)��O	m�}��yXNk�\`L�	0&�Z,�� �gL�	0&��`L� �}���N��34����;���ŠiCP ��1u
6N�"
S
}������a(Y2+���<�KC�r�B��.\�Y�{�r�,B�>t~�Na͂�(�B��6�߀�ho
�
�n�~�1k*d�=F�Z�i3�pf�p�^2�8k�����#��9���&�1�0}�J��u�Z!�<h��H�֓p�*�Y���:�<���3�g�i/D˳מa������!�;&�[��&�)	����.�E�
8qX�h9ܝ��b1s1.�\�+ױlz/!���G}���^�Ç�����LDB�h�C��@,U`:��
	�����^]�Gi+<
���ڠ��[˔���=X
����߰	=�wG���ص{76mތ�����E��Գm�A���U�"��'���#Y�	�&�璥��|<(ǎ�}����`T�R�[�!e/_�$��M)4	�$��P+	��'�n��I'
�UM�F�q€�/_>�ع�����k0s��o�uj���1f�(�ݻ���̇L)O˔g��|��n��S`IL����Y���Z�\p
 IDAT{��ݣZ&����Y�q�cě��I��"��Mq˪.p2�L��
���0�\�rr��
;{�9�~�X�t�\��%�&���@�Y�T����~F��	0&��`�X���N�޽�ÇC��8������8K���a��!�6e��ȑ��rbL�	0�o�@��s3
�W���]P�B^ly�[�j��o�e����������u^��6J�s{��p���(��S7�x��=�
��iSW�A����W!��%����m�8K�D�7�@[�� �myc\��	��݉!Æ�I�O�Ʋ�~�:c�8�w�E�5
F��S/p20;]�"���&&x]���9�^x�R�a�Ͱ4�a����e�x�Lfx�=���h�~.�9P��<�p��3̟�Sx�R ���|�م��#'��_ W��8|3+V��ٺ�'
B������LveN̍�<`u����������8<����%����Z4D���A��:�_����c��B���^��r�>"�$����g!/����}g턩�<F�Fc�ɳ�0�Ȃ{o>b���Zǁ�*wsp$��:s
�{�#�)�1�#��mG�Nm�{����p���#�ON �����6`*Ga�#��Э{OlڴY3[�Ç�ٻ/�lٌ��b&	����+gN�sqA�r�(�FQ�������n�@��9r8*V� B=+�
��GI:�����3g�ݿ���I��[�H�p,�|<(��$a�ړ�������S!Hk�w���pq'�0��7n��Ν;���˖-ų�O�;wn������)�SK=Ċ���KVn�z?��d�
�D�0�#���<t�$_�p˖-S��q#[�8H�T�+]��3��v���*F*%N�<�	��
r�e�^v��A���Y�q��_(V��:;���E��Nb$�a#<�)I^�R}��.볟�3&��`L�K`�K�@"p��U�*U����)5���G���LS2��J�a]�:�j�j�`L =	��G���o�Ǖk7��@aT�]�^[P����J5l:p���[�=�6m�ÿ����Y�M����
Q�d��D�ں�^����	lkWEG�
I޵*�ߕGX�鋘�D4mX}�u�'B�F��1ݱJ��-'��[(�7+j֬�u��t�R٧vx��݇O�hl�L�Y�ס�(`!4�$
�x;K�z�P��(�;;�9���;`�ֽ���#��f��y��W�021���q��s�~�.d)���|���B�9W&vl�[�����ȕ�*�ΝZ �X��w��'~/�.#��̝H�\�^�U<�\�w��B1�5>۽6�ן
�q�V��~;"?���o�1��ܷ�©�P�4޵լ���QX��#>�d�"(T� ���]st����W�L.f�����x�߲�ߗ�ʗ�;�n�[|��
�*�yr�v�Z��d%"M�".�&��0M��YB46xLA�LI�s�s�iO ���g!�s�u�,�T�딿*�F���Z�%��Du�P���1J��<I�}J5�F����oߢS���Wx�&#ִ]{}�.������sMW���dUy�TU�,��K9)<rr�7D��j��nS�����m��D7���{��g��>I�Y�7B|�	0&��`�X����N�/]F�J�/�a���	��_WE���9�UIi<~�����aL�	0�t$� ���K��ٰt�-�+~�'�!2�H����K��5�9�Y�Q]���P��F�5C��ʀpE��奺�w
L�G0�I���^�Du��r:��-t�/�i��/P{&��Bm��,�%�i��$ȣ�^����~���:y�R]�=���/�ĩ�fU��:�%]#�T���)��HmR�ă�&��T�A����Q����//�b����Q�D�(i+#��6G�;����>bH�(Q=T�$n�㗎�W��2�l
]�����5T�3�n]yȓ�IӦ�ۯ:�o�I�¦��o�,sHyDX��f,���`L�	|�X��G��c_�	��˗G|��c##\�~]T�LSK3���`8�,�&���! ��q$�I�.��?,�u�[`E�J�?I�����E"#����QC�%�Q�G�(/աڞ$�R>)�Ԇ�=��H�%�Z_{��T���RyjGe)��~�5�"	����N�%�5�R����S�C���o|��T�X�f�?���Ɗ�5ۓ� q��'�C��ނ�Ɓʨ��ԦԆ���#���/r/p#�&��`U`��~����TOJ����.�_BtN�~��^栛 ���]\�	0&��������8��	|����Y�f����x��
q����TV!����ř`L�	0&��dt�ܩ�
i��0�/M��TW�����Ԣ��\�f����w]�5}��S�S�jPء�P��F��O퟾�էﺾ���>;�]�����L>�e����V���z��}n��-�k���K��~]��K+��vF8�,��@p=L�;$@p�_~Abb�<�cbb1p��,U&L�֭[�…c������Ϟc����2�&��Pr�"�#�#G�D�l�Ѱ$���n��i�����˒�� \��
�gώ�}�&+�#����_���`L�	0��@�������s��
�a�L����߾}���JZ+V�@�<�3=�Y�d�x�l�Cc��4�>�|�V������,�vZ�d�L^�t��3��M��R�]�z-$ȌD�!gt��z��8r.��AaW�����!�b�2��<S�����L�}���Oq��FU1h�Me�t��]K
Y'R?R%�W��А��_75����뺾r��J�}��e��d�9�i5\�	HpB�,Ow'׮Y�%K�"&&%J���r��!
DFD�E����pw���_����*V�V��iL.��@�D��&�,��D)�`��޾y�N�:a��hٲ�^{V�\	�x{y�’N�ӟ����`C��˥K�"!1+T@xD82[eF��Ѫe+DEE�q�eş��=z
��m�|�e<�a���D���$C��1F�⧡�K����
�cL�	0&����A �	�r�;v������K��R���6��&ռy�C�*�򿏱�^����
���ʜ��1r$jժ��c��ՠM��wl7��CjJχ�U��&��~]7 �t$	��@^��!�^��%X�f�h�j��	��j��٩�	To�up>���(Cn}U�<�t�S=6�z�:�|Z�h
Q'�n�#帧8�ڞ�q��������ڵ��c�-�#"�ָk
O�:�>�<�����<C��uB���4�SZcuD��}�"!11�5���055Jѓ���ǘ�׮_���ԯ�Æ���$�r�z@&�z}1t=H�SYqM�:�e����ƔT���k#4��Ӑ��|�Kz�U�Ǥ3�R,g�<2p>����ϥƍ�4z4�L�
z�cذ�K�:|�02e��˨f��O��eK�k�_Q�~�Ϫ�1��"@p��e�_�y�е+BBBp��_035����f͊��8!>�d2T�T	��Z	��<��\QO"	�F1���9�U���&�`�Yg;�&O�ݻ�a��툋��޼}�E�������ݺuC#�F⚑��֩���1|�A��Ø��-�~S����˜1c�ß�#G`���r�e�MkJ��e�hM)���<>f���c	��ub9@�2��u��f2W���[͗�
����	0&��`�
��*>�>U3�F���_K޼y8�f͛���#hޢ9z��%�������ΝCdD���MQ���ϗⵘ�xy{��h�>�F����9�K��b����=�ϴ�~��Iȓ7:v�u(t��2@��*RIxU����V�UEuu�zIt
%�S��@uȀq��g����ͫԨ�`X�c��ujKz����]
�U���Q�Z�$�(��Ж����G��B�J�R]�Kjv*U�c���uT��՞f[�8��H�4P2W��;a�$����a�U��!q�*��]ujkѴ���3�E #�3�u��/OOi��Uۼ��*+�]�-[z>S�L9�O��Z�k��Cg�f�9B���ЩSG�\}���bq:d��r��M�5�}�j~U��녡�r��X�ݛҺD���~�l]�X�t�i'י���qZ���v֮^�)�&$ۜ��>FդXNe��<�x�չ�j�s�f/�
Ŵ)���)Ӧ�v�Z��Й����}2g���?����X����Z�jhٲ�g���@Z �t�҈3@�6�	�gϞA��r�_J7l��6XZXb�}��~�M���ڮ}{<z������7/՝;w
�v�Ξ=E�3�[�F�H0	������(R�ڎ�Q��p��޽E�z�0q�$t�(�2E޹����777�\�
;w�/�ʉ<�c�޽8y�$ȻW_211Ɲ�wD��az�B�����{ԬY9s�@��}ԸFFF`ڴi���ćssslܴI��R���2J��c<����Cf��v�:㗊>ZX��hQ|45U JY�������י`L�	0&�}����k��7L@"��I�&���,�K�,��sf�|}�c�Νp�
�u�+J�*�3f�xm�ƍBL6|�x�Aѿ�88���N)�R�&�&�	ģF�mJ"0����k�)�Ч	2�OX"���v�z����p��e�˗�&�G���&M��9saԨX��{��T�	H��E�5$�(1Q=4��k���1t�pl���鍄��NNX�f
2��b��3�ի��S��U��F��Q�X1\�~
��Z�Ǻ(EG�r�0`���2��Tɒ3z~�h-�Na=z��6__��1�>
�Sx�B��=�5o���Q�@>QN�TS�ў,�!�e@Dd�-_���N�H��B&S�Ч4��vV�h�{$�hE9m�=x��\]���>L�2�T��i��Y�fffpqqF��������s>;|��D�Ms��{�3]�)��/:�<ʵ�k�Nb��,�γT��X/k"$�܃V�=~�)�]q��ѹSgxnڔ�U%��ġ[L�8�~)#�^��?̙3^[<u�����^[9r��D���(����v��:_�.�D��Gۼ7�E�"���<��i��:ѹS'l���`yԇׯ�a�����*®�:�!,��b��=�07U��Qc���>>�HHH��9��G�"6f�ܳGwl��.��t�>
E
�׹^R��)�[���+x,]��c�����Ð7wN���|��������P�P�2@�s:���7:w�M�6�G��|#'�2�sמ�8i"�RZ�v�K>[6����O:��Z8����' �>��������'�3gN�	����]�v@@����ᅨ�K�.Űa�DXc����w��;�έ"��b�J�k�3g�2��H|�{����"Gn+d2ʆ^�\`�Uk�'N`�С�ں�~�U�	>'l /�~�����K"�2	ܣFɿt=zNN���	������xä�9Lχ�1����U����n�ݻva�ԩذ~���#��"��U�;�l�"v&��xd���c��ضe3�,_���ّ(3B��1�F��i���N�K���f._gL�	0&����E�[��v�}��0�4"��_���(}ݻwG�,�A��
,6e��
SSS�,��ظi#����z��5GGG�{�Nl��ԳG)R.P���=11�{���׮[+��}5y+�0^�k�^�м�'MC���РA}\�|˖,���\����=дYs=r^[� kfKт��|m\V���p���<�
o�.�:*�g�0=�p��	���a��Uص�7I��b']$c݆
�۷֭[�ѣG#���A�'	���36�v��M����v��U�Q��s���ݶ
�n���s�5�@�~�ԩ3��nǭ�7�p����U�h�<�5�Yn������Ñ'w�C�%�ΩS���N���?m�
�
+�s���M��w��u��g�c�ʕس�WM^����C�ʱӜ/ފ�"y~�q���N1�<ϔ�CF�g�?-0�_��\`m]�:w���6��P�ژ!_��|ߥ��zC��8|�,,2a��\]g�e�V8�}���p�ڵСCG$�����[6o����uop�s��ג���A�6�yJ�)�n�݆Uk։�J'MEݺ�Q�A�ޱt��yy&�������0i*jԬ���+ߩ:�s��0s�L�4
u5ޏ��<��5jc�c!DӺ{��
,r���`�|�v�?7�3�e��o���A�Ѩ�-F�&k{#�
)�M�4嬭����֮[/x����[���6�4ơ��`ea�1c�1m�,�j�'��YN�gLzs?r�<|�ޫ\���
4R�l���	.]�K�ث_�>n߹�,Y�(=�i�`������[\�tQx���٣p���s�ț//�8����L��uФi�ߪu��r�v��#�}��L@�	����B7�H4%��SȞ#���1��u�ì���x��.S���L�i>�<y�,B���5,,,���3ԮUK�tI1��(�	�K��A����3d�̇N-��(^{�b„	سg��+%ڍDB�q�е��� L�۵k+<l)Q���7~d�%ڹ��?��l��4$8V��_(I܍���KB����vRjѢ9�
�ܹs��i
!x�fOV*��#��h<9t[�l���7�[җ��޾��_���������י`��@�4З0z I�7��p��RM@�>��<��+��ޘ�W��~���-�
�����;c����"f̜�2e����8F�<A�g�RO���kz^�y�f5��h
	mbj
oo�qN�,S!����!K�M�x�Ax���*zF|��R�=�'�����P��J�U�Щh/,"Jx5�x{!���xo����Ǐ���		@�:uq��)����y�*�?s�jժ��gO���3u�S��X\�x{�������ٽŽ��,�戈��]۶�;*��q,�VV������m�X\��E��p�f-����9��?�O�N�������З�J޿6���S��ı XZdB\"P�v]�?{JI�CD���#{�Z�+��m�|�q��N���$��<S�2�<�֏�?��G5�M��ؿw���?Dƈ��$S�^z�FE��""�����B�}��	�-pǵk7`an�:�MF�N%	�:��Z_t�k��E� 5ѰQ3�ٻG�N4�m,�p�ԸI3���+�:
�ٓ��	q�]��\77�\��#pqv�@�����m�a�G� 	���.�k��(�W4����zyMw�	ǁ��!�׬Z���'&mj��>F�W��Y(瑊G�溫�S��J�6�|_T���C5X�|P���֤���ݻaaa)B}<{�>��h߾=�7�/�p:��Çhݺ5�g��ܿw*VP
�#F���[�.�+�cǂ��-{64h�@��y�!��������-Z�n%�j�q��i�I8y����H/$���'��&8P�'O��m�X�~�xx(�ʣG���T��L��0u�T�u+�0�=�6�
>>��Y�t6�W�����R�f��Gě���ֵ���C�=�h�t���sT�y��3g�0	��*Vm�ꈑ#1l�P��z!Tx<E��� ��촶��J)��࿻wE��aJ����%^�y��
mP�F
�\�R�+���k"j��]"Tφ
P�LY2��M7
$�8��#g�G�2�q�h7{ޘ'}	P�":)Ά���R���x��o��u&����A Z\~��!���UJ����@�mP��6���~n���qb<���<�2��j7���rX�S?��!:t��<ѦM�}L��{��E��=ımC�z7l܀̙�7��tm���x��8�<�U�$�:� IDAT0=��Hdt0y SJk�q��ؽ{2[$��
%$���ws��b�8�m��`x��v<��GU��H�Ig�JKU���z��3�^�B�Nq��$W�Y����4�?�P
5�om��a���U�>���aC���@�M��&I��Q�BΞV#*̑��UVR��L/a�F��U�<�P�
�e�fLo_<��FW��5_���w=���5	e<��2��K�	w��Y]�������y���KO9C�ϊ���F蛷nc���I!����X��� ����ر7�Q�)�g��.n)	����Qj�N�:�Onڬ���-BU�R�q ���	�.ط�ƍ�`�&O���~~"���~$E@���6�HLT`Z�����V^�5Y�O�k��bV�^�>&��)��T���4�,1Q)�C@_�u�gϖ���u�J�,�L^�aaa"�ʚ�kP�D	�������ܹ�ЧOoT�RE�Byɓ�l�2j��uy8:�yh� �\�۷;F(���b��MB#AW��Zǫ����K!b�ר�|��.~-�L;Z
I
0��̑=;��޽k׮������@��P�Z��KL��UK;f�/_.ή%A��m'O����й��r�=Y��(Kd�H��ײ�|)!!�9t�8��np�,f`�`$�@ ��D�׍W�^��Q#q�������(4n���W�n��5k׊�)�
%VW�^�S'O
�~}�v�
��ʔ`K̝7�v�g�/V\�+yQ_���
���3\]ѪU+�5L0��K)�ǃୣG#g��h5y
�2eB��L�~��t&q|<�����x�J��������ǃ`}3��3&��
Q2��w��}9�L1kt'd#/�oL����
dƒT� ����?��nB��?�k��?���7�%x��[�v�_D���i]�M�C��O�AiV�~�<��VzӓM�9�~k�h8y����'%ז�Jj��9sː:�x�%}aL�@]Ԟ�P�s���:=z�CQ%��]W�?���폞
x��E�����}�W���cF�МA��c-ZT<W��_3g�L�ڶm�"��!C�7o^q�U�
0v�X��K���z�jԩ[Æ
��v�&6���o�C��N1��<�g3?�(�d闉S�#[���+kyxg)�|�F��vv����e3�䒇'���&�,ߟ*�8>h߱�8�p��jתT�%ζM�U�[��T.8��%4�I�3�zZ۷���+*U(��?���\M�lO��i��ps��R�Jc��Mغu��LN�:����v�:��Sz�
�(�D�n߁ׯ�P�;����:+X��]2�vX��d��Д��鲓ʧ4)�7l�T�TI�"ݶ�W�]��EE(����rA)���D�C�NX���
�W�CJ�勏�b�Iء�&�*D}v�<S�2�<K��9z�p�Щ#||�}H�S���y�V\�p	S�L�մ�SQ�VMts�|[V;sX1?��7�C$B/\�?{g�����(&&�����k+J��`��"
W��10QT���kw�=gv_\�]X���<<��g~3���s.d�p�ω��k>����~W4R]]̃���F��>l(;�~��/��3�9s���(UT�p��@�<!��֮d^��Fƈ<�109��}$-Kϻ�B���|�x���\���M��В�"9�K�
����')Dn}"�B�Ӽ;x�@�������)�N<��R�7l…�1��%���֭[a�qP�gK�`OH�)���a��%J�������-F�…X�vW[�8-?�����Y�۱cDz�$��W�^�7o�����6l��Da
7[�Je��t,�+�<oߡ���9���	�U�UEZZ�pؾ}X�l)>~�B�ƍ����{��C��k�r���~8���`�2/�����+��3$��J?��,
_L?DhÄ��a�Q��l�dd�$#%#gϟ���WеS/ԯ�7�}x����Z�5[�tt6�R�*B��Q�x�-��kmm
u

&�ҥ"�p��,����:f̘�<}��iF�:�1{�ldI<Z�"����'���$�2%�v���)$vzz:�M�T�R��D��J?Z�.Y�ꈎ�fa���5��E��6�O���,��Q"5+--Q�H���t.r�bHQSC��*432���1�	
F��R��`hj�z-[ * o��\���	^'�	p?�@�����}ǹM����tq�;�$.�6n���&ރT�L���m�3e��J�ߪ��ڮ|�]�aCcl��G�r�v���2�U����Wď�!ޤ@ϴhN��f���꿪|�� �KKK))ɟ%u&�PF^�a�“�8�ЃB�(�z���#?����*��삝��uJ�	�
U��NI9ҟK���r��y2��Ge�H���y�(e�"�1�G�tQ����Q��?C;֚E٢��˔�Ǐa=�%uu�z�7���i�&������6]��.9w�}u��)$'%�nݺ,��A��Aa?�۸l���5k6JH��"����qrX�K�o]6n܄���O'��A<yz��󈋋e��9��7m�tT�Q����f->���N+�Re���E��#����FIh�AN�y%�Z��$䉅�6�Î�=wF"�?p�!!>>W�Ȟk�ob��X�:��� �z-g�<���'ĂB;����c[��pv��
��}li1�	�$�;;9��^��q��CX(�E�K��m$k"n�<������b�*=v�9*H��~v��y��+8����,���٨T��X���aA"�8y�����S.��l���x�%�~�~���P�/�����,��𫍳o����/^1��Gif��r�>��+5-���tu46�T��PWWə+r	��y��[š�Z��j>l��:䈿��gR��k���/��OJ����̙���1Sl��G�<�E��%�qlN泼�	ڀ�o�@�ر���o��2��E���K�ڰyZv�U4_W�P>�w�\��+V���[��W�
l����c2ϼ9_�R�r��^����9�#�F�a���l#�WO"F���"�<,KF�bo
u�(.+�)/ɩS�ـ��uuŞ�����^&?z����r��<��W��K���t\��N�پ�	�U�Va!����B�ӹ74Fɓ����v&N��EXq�q�D����c#�y�jkk!++������B�B�����~D%&%1T�"�ʍ�8u�02����,tE��M��Y�yg��#.�-����ӧ� 5A
v�3�y��,���޼~�»ӏ�F���I�%�=�dg!>>!��q��>����e.uu5"�.e��@.��"�tv/���	�O($�4W:����.JK܉oN9�@Ll,���Hz��!v��˗��:2�Ta;e
��+����c��?zv����@$jj YM-�L�����2����8N����1�»�D8M�
����c�~�0Kr�+y+��?��Ep�_�GO�g�
�T�^��W�4���s��:��D�q�}���v���J�>!�p�1�nT.	qBT
��ާ��_z
�^Ǣ��QY)Ry���gT��B��"f�
N�����y7��󤾠_>�F`(�9‡�@"�Ce)j?�C(���N�}Ap�t$T�����J�_�c��H�e�[HBɄ\Ҷ�N���y,�}/q���:�A	ውA��vfˎ�}�+ۿ/�m-LU�+?��#�/=�)=՗D�2���/�{�����]{^����M+�������ϟ*���W������T�6�M+9C3[$^TUUe�l�lѢyS��/�����'�߄�I�.T�ng�k�J�x�+T�x�i��3�<�ycNܻ�>��8~�d�5|����i��5�.\��e^��>Da��#�ܹˢ������n�B�#���J�ߞU�Ta���ztcv���Ǟ={ṣ��t�"]+�0�9�H���=��}I�W�^�� �8v�3;su��r�-�ȣ��7(_����ۧW.�ý{����ʄ3�� �ɖgei�.��s���.a|��擟!+u�}�D_�9?�6>P�\d6EH_J?WUH��D�I�����?�ءa��r�q���>ۈ ��!�Ty�%��'�7�ƖEp���_��Cߡ�i.�� (P�T�9R��y�J������0!�,Q�gP�|7���Nh�P�<;e�5�~����t?)�W��[��?���?�U87H��c(��߬��?2_\����Ǚx�)���8��'��	m���™S�o��kޕ�d�_���<@�6�)ظ&������-��%�y��	�Nf6p��i�����
�>�8&����T��c&��#E_oB>��\k�`�fM�|"�7��cJ|�ʭOf<P1֚<�s~��+[2o�e&I�kə����N#�<��5j�ƍ��L���6e0	Ut`5�)��\�E��[�Шџ\��f��>�0Fi$��+�	x��)J�,���K٪�?ZN�F�J��R�G@�?�9tT3���I��s��.]�<hUՄ���M�s'N�ȼ�uK�b"�2����={ƒ\�ʴD~��,hedB=;�s�GGa���of�R��e�Tt41�_�N�:���?
��̐z������s���8�I@��=��qi�S�>�ܾ�w��E���1i�BB�f�N�ҝ�H���Я�1���`枾�;��Gj�)R���ѻI9h�P"��W�m=����"1!�ʗ����x���z��2��6)}�u��6�q����L4(�����;i3��H�y�1��ض9�:�f?��G�#�kЏ뚍[B�P�z�>x�
l>�{wn!5-
�j
�A�Q�"	=���c��)
�-�zeʗ)�W�!>C�T��=e4��`�i��د=6b"0�».��w�>$d���nQ����I��1X��8?y���D�o��4dB��{tB����Ѕ�p�yI2�O������/�19��Âq=�Λ�N�ҝ'����~
D^��ڠ��r�4�y�
�h����_gnDa��/W	M�4��W����Q����r��@H�-&X$�����(����=PR2.H�!�z�L�*hg`��a�-3�w��m�X�^�օ��ov:4��޼O.�_���Ə�d��]��ְC��H�FV
L�����p��{��J�CU�dX��{�bĨA�V�\D�Sp�e����� ��yBٺ~Uxw���b��5/��Y��AF&p��,X�={v�U˶8V�T�@��',�KZ�<O�R���ݺ�d�r����츟�a{>	Ny�y'�0�&�z�
F��osP0?y�Y3��,<��[�?jԀɠ�p��M
M݉B��f�S'��H'�C�ޔ�4\�~���ga�v����<tO�>���Q��%P���ߺm;��@1�\<��W��p��	&~SԪ:�j�߳N.�L$�Ю5+"%53g�Ɖ'ٙ�t��p�QP�?vv0� >�N���Pja<�A,�s.4�$�Z���L����|A���"O��t�/-W�z��Gf�<Ve�	!�'m��U���e���o���Q��<eJ^	v*[_~����>��YFY;��x*�#�~��L(��_:ξC�	߁
C	˛?����<��}���R�-Z�D*l�����H&�}�f+��e���E�=*�o^����懼�We�e�+�^�����^Q��[
��``I�
�s�Xx׺u� 3#�yבLWtt7��5�i����F:4���;��-HH�T���
��b�	?5��d�Lvt6p�Z4���H��w�g��\SS�ݻ�߿ϳD*"��-����I�KCCϟ?g�,Se�G:��,hde�ÿ��k�'���G������������B1�7��G���A��"8N����k�^�ICQ�$p�f�|���d��K��#��B�Fz�34�tvo���-(����Ű�:	u*�g> �]L��S�f�٩	t�ъ}�,^vÚ!.	�h�5�f0��W��~����2�\&B�7`�b3h��I���]L�m�2�Jz4q[���4B���������F�Z�1|N5o��ݫ 63+���3��bB��]��G�@L0�)M�ׄ�I�K�\ģw	(����4nX��3�D�~^G앳�xO�h:��`�%t^�9��I���!�&��WD��
1Ш<�\�ĔI6�Y�(�1��=Lؚ	�l���1���?�k
Ӆ��x�̞���N��:p��k�iT>W���eB�R�]nv�(
0�ji�<����-�0^��&�O��D��hU�����Sm,ѣ�k��Sx��=���a��7xx��\��L�h��='3v�G��hh����аE�\�����p�_��%iOo����E�>�?U*���5�0�M��N�B���eb�����R�p�d/�I��x7
���C�~���<���O��W��_`��мe[&�8����8�e^^ر#��Ϥ��[�����	�?~����,Y�B�X�
��#&6e˔�رcЩ��
�	ФI\�qK�.���aan�-!�PUUa¤��)�7o���2���&�_�bŋ���%^vt�~��Ɛ�ðg�h�� 33�{���͛P�xQ���ޫVBO�<^�|Î�
ݱ/^��gܻ���R$��jՊL� E�8q�|}}�!@��"YT�u��mێ����غM{̞5˗{1;�6A�D���s��Z	�%�(t�1c�r�
�����9�����gN��pvqaNU�Va��+W�9%��
u
5�gf�G�^ڼ��'��|�'�j���b�|V��_�:��៉�@��t����mna%�<��G!�.6**&�&X�n�=���=>hC5���"��\�X<�G@QH��3���q�Ku}a��7��\�"':D�Y���_�_~��\�g�R�U
�J�i]i�bqLC�SHقtp[8��%@pŊ?����}�|�7��9+�sQ1K5	ɢW�^�]��^�&eiJ����Ey�F��/X����硑�	��4l[��q	(R�0�}���s�"VC�jj��/����%[��\��ly��'�	�E�X�x1��C�u��Y)`�!���$�ir��a�Vb�xk�B�0�$�v�=0�e5滍Eau��~:��A�z��S���Χзtv*=�_|��I~pq�MK���C���Y$�ѩ{��|4��i69���.`��&����oێ�{���]��9���Ģ��}F7E��
0j�:X[�a@}��h�pT�\���ޓ$�/����NO\�p��!�^d-`��t�lĪifh�'$)�q���Ѱn-x�����+�]�vܨ󖦺H���2����x8O��Dֻ�3a=�.V��!Nkj�ݻwC�V%1M�c"�W �����~���+����5ˊ=iw�����"U,�_�Ƣz`��.�I� ��!�I�'X6���X�,���݇O��Ê	۔���/���V��.
�����YW���+4��n	�tј��%�AC
�VV����Z��p5i�`�P����5~F7A�v
1l�t��:9c����~�������	�����V�WOE��Y����`:Ӓ6bjh����ʔ)�B�5jT-[�c���C����1�`hd���za��]Xᵜ	|t�v܌l�Ν�,��{q��CX[� >!E�êU+Q�zU899�C��о=v��τ�v��ի;�?�cG���qVN,V�$X�T�D�i�ի:�a�w��
����m��ı#L`N�:t0��G`k7	}��E۶�ر@�!!�^��38.!�{�±���P|t4ͻ�X�p!湺@KK���u}���d�^�~a��pqr�����`x�\K+k�w��ضc'�K�k&	�G�%��M�(�Ok IDAT6e�;{k׮eb4�U٭[W���3�77't����vB��vί�d�����1����`�����&E�ld�{Bw�)o"�c�04�޽���zn�ȄkE��J=��D���G�`���r[�m�g�o�Y����y0��U�����2P��@$@�^�
TV,����-�3@p|��_�]ڛ��A�%}�ڏO��+:��*�H+3�RS�������^��E�����n�/�[����ߚ,/��8��	4o�/_Rpe�A��8p�R�x��G���~�>���xc�10���λ}��8���"*%O?&���
u������P�,��0��LՐ_"�0r��w���	�.�$�P8o�m<�;�.<x��:�}�3G�rYUL	��ب�3d���	�܂�e
C
�HS�BJ|���Q}s܆Z5��mDS���sW���m�aG�����Z4�5����)ذi36L���5p9����Z����/"t�)脆����k�D�!
K�+���~��<�{���P��?@=;o�E�ԥ��+�U
8�;1�*���X��7�S�
ق��cPF��9{$�O���l���Iϳ�ܜPݒ���|]y��9[���@h��>|��ơ,�`0y����vEq�c���c�
Z�Y.{���������e�hQ��&�_Ɍ�����n�*���15j��տ�&����!�e��{�4G�p�t��_F�2E0��:6*��	랲�$w�q�$0��<{�eΣ�'����N�n���w�Ϝ9���a�Z�2���#OC���s/Q�;�}CÎ�m-M$$���А	�W._Ų�+��3��KG�;s&����;wAD�!����g�r&���Y�˽`fN�p�~�[�l'�������^�L"�l��c�<|n�Nppp���!:t`��������#h���M�$~kii�ؑ��	�Qѱ�ӯ?�9��!

=s��O����K2$4�ym$4kj����QK�)�G����͏�>!4sC�C!���'N�ž�{�ds�ѵkW�jٌ	�;wnGQ��9pt|� �6�<=�X^�f��`�~��u��
;�o������``����8����]��ܙ㟍���}�
%?�8�Ћ?p��Uq�'�	p�'�%��%�xZN�7# �))�L�\�Ldd'�C�Kd�$![-�\�ͫ�`g�
��k��ާ�� -�RL���533Q4-
�����v
u�����ZZ��~<z�����/�\���8�o@@Z�W�""*U�"�c*�k�7,��bP�K�5�^�솶AT`�
���ФX�ߣ��#$�C�v�޳6�J	�$�m���5���w�x���1��$p�O�8�F��0Ԭ'��s��?�˩&����ڍ��8���Z3����`ޒ�(���Ξ�fl�֍+�t���ʝG�d�
�.,�/�a�
�8s$*�U��I`��%���W���7<fX#=!�D�qB?���1�K�L���cQH$�z�ECu0Q��F�]��*�#�'+/;�[��EV��.n;]�������2.O8Kr&�3��]��!�g�c����X�%^���X��`
G}7��3�fY�J95�����~�
,<�z>3�y�ާ�C}B�χoIJ1M�f�����MY_y���;���;�X��׉�hZY�y���6{T�R7�J�;�BhB���	�Qf��-ɺ\^h`G$�c����06�sgN�G�����E۶���2a�AB�\[
uU��g�Sǎ8q4����0b�H���G��02X���B/Sb�X %`a�HN�d��`f6
;�ne��dg��������Q?y�����}[:v���P�����+���	��U����3������\����$T6�H�� L��z���L0&~��;�C$��F��'4:��n_�c?3}���u�0~�
6o��SK����~ۜ_�:(8�W-G�6퐙E�_�x.�K��F8/�_�ݩ�V
���*/��`����lD�%1����@f|t�摟"˄�����w�/д̫�8N��8��D���	,/��/�v�tK�BM]����lQ&R��}W>ƽTӐ)JA����y4T2i	��^**�̋:..�q�՘~	-��,�HGdHnE���
����8��"_�?6{=��8N�����g�C@��>�*~�I����!�`?XYY`P}��هp
:7��<}�����cQCx��j�*ż]����8�����j
M��7�`��6L�:��0	$o��
���4JעH^�YcQ��
�^Gtt�l;�<G�����qCѾ^	��H����w^GQ�?Ы��H΅=u�#f���dt�*� �x�Ç"��Ü���r������D<j�[Z�wDk��J�Gu]
�iS�����H0�X��c��4IZ�ƣD�/	�݄q�QK�~�HJx�<|)�#�w�+���Oy���²��X0q4�W�bm�tT��3�|��2
�c[b��>�B@S^�w�?4�B��ZK�Ly�ѽw_�k���w>b��`̜aI�m�}/p��E�p��^�!`��Q;�/�7`��Z�B���J9x���_�g�����Vy��?���CB&B�Z�Y(�U����sG�5��/)~�A-��|�%��3s��
$|�D�B"�Rm�A��13�r����XPm��gO�q������jj�hٲ
.�=����53sK���]�uŖ�۱b�J& ���	��CO�"6n�;�ic ���1h`t��F`�֭���
��;B��LJ�l2x�Cv`��lƍE���>�oэ�&qU:T��������…
a��D��d�BOT�X={��ʕ�����ɓ�0�~*�ԩ��Ç#�`�8��+�вe[�?{��ٸ|�
���1�a6Z4��>~�^�t6G2n�'���G0	�8p+Vx���=ztG�=X4�U��`q�E��׫S�={k���)�q[��O�<E�Z51�j4K��	,Y���i\�nܻ{���K�w���rl��4oՎ�Lm!��-u����*�^�:�{O\ޔ�S�����ק7�t�6b��uL-3>��gN����$����?K�|�V�\��";;�yU�����A��/��Uy*N��8N�(��\P{���	�����'?�_�e#��D� 1���,��
Q�?�W��]H-�����ʯ���^�P�ʆzV4�2�$���Y�?J����	p�'P�	$��w$�������ӑ	�Q:c��ô.p�[��ߋ1��ѹ:q�
Vl�'�QP����͒�	!'�q&b�;
���HL��F8A���mڳ�޾JF9=mD�N�o?�c3�Q�����>�-P�07�6?}�i���F^�S]6 [�fM��DŘ�(����%4a���-�a�V���&����PKޝ#�B�[�G7Gr60�)Fm���c
&h�]�6a�bS��x+S��+C��ԓX�f�a�8cT���*��4���cC$���Â}YHl�x̼�P�,�ɝY�����)����]'�#�����=��OuQ�e�9�P�T9L�Е���uj�W���0�?cl-r����(4-
��صp���	�8��>p�%�������a`�L��?�	���h����vm���p�ͨ�GM8�5c<��\FܻW��Ѓ�Ǽb%�H��ni�̈́�*�c3��P�0v�A4j�:W�
B?����t���O���z6^}���u���j��8���b��6ƽd�����WR��y���B�@B<�w�>L��M�e�8�� �1���\J��w��{��L�</-S����W����
Q�Ѱcp��aܹs���6�N��[�n"((���pwwǓ�OQ�J̜1���bC >)�֐)Rq	�4h��-\X+�Ӗ�̦�A�ɆJv6�I�қ7oc��%���Ѱ~����1:���wаA�:;�X1�|����u�6ʗ+�iӦ�q�?Y{���cs�Q�ѽ++����RJ�[�
6��bN��!���Ӥ�"�1&���Z�4G��W������o��
z�۟
�1;>y	�ھ+�L/F�w_8������7L�69�;�w%>K���,�nqb{ "�>�x��
*�Ǹq�00h��p�2�]ݐ�����C�f
Ξ:��2�c�d|�D@���q���{�|������=zc��-��1G���r//��
�pA�ܹ-�'�	p�'�.�A�	p�'�	p�'�	p�y�_{�[��	t5ԇU��p�܈�Ob�[�8\-��Z�B���,.߸���uкuk�nك�j�vtl�t/�>TԡV�,��A�r@!���Dp-X�� >�x�҅5��
d҅�M^��8n\���zѴ��n
@�%1��Gd���UJh�R�"�`�oc���YX�rE5Q�LQ������������N
�fAU�0�U(
�>(R�Evl<���Ϡ��}}}�1�Ʉ��ן�}�Q|�KB�2ZhQ�,lL�0���/����EаN-�Ӛ	�҂�p��?�c��.��Z%Tam5����}|e�i�Jْ8�2ԁ���9��{iX� iQ����р��}x��
��h�a��0h�,U�}�Y\��������q]�KW�K���r
��ޯ$���9�����ͻ���f�ZЩ|W{�cr&�4k��#�����AG���Y�
8��Y��q�P�Zu�\G�Ÿ�-1аQ.�ƅt�ʗօ�Ew�
<�7�猇-�ЬZ)L��Ց�'���-WH,���l���O�2�0j@d���{�a���*�(��K��������_�R�P��Z�m�U������$Vo���3���s"����\���0w���� �E������K�"q���T)�䦕x�Rҧ�HOrC�J6��hN�[�*��)'�)����3W�R�	��Y�TeB��\�ye���N*G��_{�|���̖�ڈ=d���#k����	����Ц��7�y���`6r84�Us�&�
a,�?�X�����_�s��T�\�K��{�}�Vo
`u)j�tYTN���<|�h:����'�y3֯���ϗJM8<'�	p�'�	X\.�]�
�8N��8N��8"@g��w&�~�F,��J�'S��k���5-F��<�/	[�"7+S�0Ue��P�B��^�G^���@��5}.��Jv���V*t�`;�$iF���ܹ��@S��~
-���u`�O|��P� �';�%eQ���Iޮ�A�*���R	��fᥥU
�x&��6����������K�Ji��>	�T��~����'Bhy�Ey��#�����Y�d}F���o���'`�ˣ<��.�/B�č�K�I�L\a\��&a<����vA�掔ۿ��ڲz�$Ȗ�h�㑲��B���I�[j/��4>�>�j;��79�����H�njE"��b,=�Ⱦ/=9H�_Y%Pȣ�\E�������8��e���򔈰tﵒ��Χ?Ȝv��]���硌n��ʴ�ܗ�߱��o޼ƑȈ�Ϧͯ��[��,Y慰�����jU�b��=7��㵝���-�|��gy�x���<���G˕/�+Q�|.+q[�$�'�	p�'��p���5s�'�	p�'�	p��oH�m/^|��;1k�=Z鉵����1qd4�cB��@�'2��KBߣ����߈���X8cM%<�~���M����ͭ��
���߯�N�e=��e<wsy5K�J�t_KB"�
�Ƃ&�О��G�|?C��Rv���n��bj���,l

¿�oc��E\V��xN��8N��y�����9N��8N��8N�w$ 	I���~g�݆��
T��P�D	��d��uJ0�L��T:$�d�>*%�筀�va؎��e4��	ɿc�|�6���V����p�7?��_��+V7���ߪ��yd�z�)�g	�m;!<<:�����i�ޭN9����bī�8N��8N@���x�8N��8N��8N�'H�Ra��P����Th`�M�,�S��8�VP�<���y�)]O��o޿�T���K�W�w�܅�}���>J�%�+U O�	?K9�-[��0S�TDܼ�Ν�z?.�q�M�8N��8���G'�	p�'�	p�'�	p?����p�j
羲���F��x�R�tѹ��|ۯ)�'0�/U�]����'��W�Iԍ���۷o��.��!����x��(S�LMMa^-'�}������|�E���q�kX�?�~�dT�P��~���r�'�	p��7"��o��	p�'�	p�'�	p�'�	p���*l��:N��Y����J�ct�o����k�8N��8��&��F�3r�'�	p�'�	p�'�	p���D���Roq[9�O~�,(��:���|xr�'�	p�@'���A�<N��8N��8N�����ݛ%�L��6a��ĎXĐ.
�M���B����]�ۯ��>o'�v�؁�Æ~}<''�	p�'�	p�.�fΛ�	p�'�	p�'�	p��Ȅ��N�$=X�����E�u�D�%~i���5�ל�r8�멸�_�a޾�*.�W{����8N���./��\N��8N��8N��&�E@�D <:�`��?��E_#��x��?��d'��tQ9��#�����>	��,�j^
����k��)ߐ�7��/)D�et
���FRbz������ɉ��ݲF�<��J���%��_���7.����Z/�����s��z�|�@����A�?
V����SxVN�����_�E�N��8N��8N�?L ]$H�X&��}�%��Z��=<EⲨ�o�y�!�H�65%�D�w���������ms��h>����φ�7�𣇢 ����^�.��7س�7%�߾~����QL����~,.�X޼6N�[��"���! �F��������^���)����?��5���l��e'/��8�_�����r�'�	p�'�	p�#�4p��+��X�$�)[�����T�Z
�tC]]�,\�H�&yC��%-���N�
��D�m�G�("	,��	��^�8Dc��^��ʺ�ذq3L�B�z�,�I��;��Q懿Í��ǡ'J*Zȓ,|��|�ꓶC�UC���Iq(,��3�F�������+��^S;��?!�p.�tI3d^ܒ?�^i�ҋ�B�T��'���Q8���Y5�:2� "�M�o�߸Ϳ�|��i�zMSS���hժ�$}nw����Sq�/T
��&�҅�9�)j�8�l.y��/!���?�_�6}�i�v���S��,Ś̗�R��,%eڟ�����@���g	���1ce�cѪU�P�t��m�w�7h� ��oٺ��K����c���T�`ˏ���'y�jٲ5Ν=��T��۲e�?{J�zE�ް�X�d)���q��)P�,��E��p��r��
���\�M���g�8N�C��y�eR�x�~�B�?����u5uhj��\�������_M���edd���7PSWG�re��>���K.T+U���իW���AI]�\u$'� #�|%U5����cccP�LY�}�����'�	p�'�	p?�y'����~[��j��Ł�4`��n�fd!���J��$h��#��<�I���΃��$>F�	��[O^�ٮ3J��$�����H�'*��G*�D[*�ޣ�)�ǾǸ��9O�GqI=T�Χ�r�.�'�A��-K���ߋ'�gv�*P
���L��-9f IDATw�P�>jq$��)Z�C��X#�0׮3�I`j� �/��$�S>�1���v$�ӕ(�Ey�>i�l�>�|�'B��=�\�?}N���_*��b��$����$G����g�O���{����֭[1r��:$ `=(�=B�m�"O���ϑ{��p��������6g�T``h���P���W��c��!8!Gf�o���r% {�0����/W�l��ѮMk���-��؁�p|V.q���</���O@���ؠY�����B��jii�R���ۧ�u��f)�a����Z5���7oa:d(�lۊR%K��Ç���M��ahd�ʠ>���BŊ1j�H�n����9
�nO~<�i�y4#��q��q-Z��@�m�|�
�H����\�m���F�8|�0;��K�Rj�I�����c��"��AbB�m$c�k������A�H&��^?St����6�м?C�]A�e`��ٻw,�X�ڵj0Dt�3Z˖m�L.���\�M�C���8��I��y�˲e�p��=��٢v�ڹRN�2��l�aÇ��������1z��]m�z�*6nڈ�DZF�T��q�ơh1ZN����Į]���!��_�F
�?������ۛ��z��a��1PWWG@��={�}��_��ʒ��D�������쵊H�v?6��M���Sp�'�	p�'�	�d�Dˣ���qU0�N@��b���;�8�Ŷ&8�5��:>�/V�
B����<��3��!�~�	R�3���z;X�"`���	ލ�,T�-�j�I�;ib����"���$&& ]+�֔��)Y��-Gp�3�$��r��;a�_~ם����E�PI;N��#)�ڏ{�^#69
�m[��kc&^��u�%�:w���p/�Ji�b�C&�R��"�U)-��/<�ˮKHʷ��0�ڈ-����"+#
�Y�0�n�V��`���
��8�*�*��h�wl=t�yYSM�Ӈ��	��]��Ù��%�j��}����(,����D�v���c�%*��a��N�[��XY����( 0(?�CV���l
d ;�l�!:X��s��Y��ݑ�|�	2T�11
���T�:c�q��x��iᡷ8q����O��H���,޹�o�^$߻O�"8*�[��(>�ϟaԈaL��[J�OTЩSGX[�A��}ł�H���`�ʕ�<����.�T�N|^�������se3k��%m�l���,\�v
�.�صm223aԹ3v��F�"E>	�RB�Mf��<��;�칳��A𦍀L;���FF"-5�o��%K`>j$�;��s	jԨ�>�{��h�XZY�C}�ݳ�o�Č��`h��$�"�ii�p�<==�c�&�\�پ-���˟�`Ԯ
��HLJƐ�Cq��]\<6㬿�z�.]��e�f�=k&��5XOv02f���O���Y�
�ػg�v��6t��
�F�b͢��͛�p��i$%&�v�:=z4s^�보�4lڼ	gΜAJr
[�����H�Sh�F�>}Am.Q�fϚ��eJ�x�
LeE`E� �/QCL� `��y���6l�o;q��1def�m�v03���>~��yn����;���[��Eii`j'y+������?>+�o��ؽ{7�����hyzK�>�,
�!=I��F.�y-S�\��L&��m����Z���'�c�(rҷ�ǹ��?���B��J�עU[\8s2w��C|���.�/�#|�j��e_�?_�2���8�M��yt	�􀬣S3g�B���_|��p|\<f;�F�ƍѳGO|��T�^cƌ�w�������͛5�qǎx��|}|كt�n�X�m[����077G�Z�q��ulؐ�F������r`�w�1���u����'OY��'�8N��8N�(x2%�[���-��I���ԥk�u����އT@�
��hҰ6,���Dzm�-�	�����v��_
�j���]������uR/�LkGSW�A�Z�aީ�>K�ą���b��U�e�w����̺�U0}�3B�;B�L�xQQ1��g��G���v4�^	��7ǥW�<7O8ۙ�A�����"^<�œ�CC
���1��u�����%��[�$�F�CGja��K!�'^����sc��F�*�1b�7��[�m%���x�����<mI8�I8�w����������_�����ƣ\9UX/܋�eK�cdK�m��7غ};¼l������w���J�j�{��W#Ft���Mh޴)&����T`��z4o�7fh��qy��L�C�j��o���
���O���-�ص����w�<��w�~M8b`��ߥH�|$ܑ|���ڹӧOGLLF�6Ƕ����!=3�ML����~K/X�۷�E�J�0�~2j׮C#C����ȑ��PGFV6�b�ƍ̣��;p�?Q��0e�5k�`�����N��Z�k�w�t�2,[慮ݺ����ؘ決a�z��� 95����������ƨQ��Z�}������U�ssö-!���ĽG���r�p$:cڔ)X�a\�Ŋ!=-�LȦ9���;�o�ێ�{��SGc�'1���g��:���2Q��ٳ�9k�,Y��E�������>
��C�^�a��#9�ӧ�����#��B{70��H4>|8S�f
霜��矍`a9�f�F�jUٗi0$����lz�$'�}*��{�Ÿy�:F�K622đ�H�	L���Y��ٳ�sq�<y2���cm
	ق�۶�j������5kք��K���[����l' 3#V�t����'G�2�T��g$O�4�ՙ����ϲ�A�AUM��m��X��U*cѢEy���;vb��1PUQe���;t�P,]����666H�Hg�zt�
�eK�u/Y��	�c�����)�E!�%��W�1w����6r�_/��мe6^�ަKE��3�Ţ�8��
�X�+��hֲ-F����`ԪY�NsQ�|��;+X��9�·8���pV,辏����;sf)W�,f͜�
�2�[H�;�m������DY��XR�g3��HN7�&MB�?��Y��
w�[�a����l�ZqU?yޫ}���S����6������P�%!)+V����'��|dJ�V�`?y�����&�N��������\��'�	����G�����k��GO�<&O�g?:��SSR�c�\�t��ޣ�(z :u�`kk�Sӕ�W�9h3���SX;w�•+WX=�����P��٢y���ҥ�l�^�>}Yh��� <{�eʖa;�j��!`}}}v&��˗ك�~;}&����x���mݺ5�.<��6�Hݺy�}/�??��7,,a�°��C���d�tmggg�������Y�r���y��Z�Cu�…9���/�ବl�K�
D!���	p�'�	p�'PP��/FLl,���йKg�L�$���[��f��E�;��1cU:u뉑��q�,�GGs4�/t��`�<�X�~-rx���8p�$V.�e^�+�#�>:��Xh�;/�0v�Z�_8j���5���a�X�+&�fYVޮݧ1�gk���I�W�;C��[`��V�٢l1� <���ԥ-��n?L����:�0~.{��g���}ٙ�#�6�~�z�5��O��Z��ૈʧ>�V��sk�n�f3}ѣW��a!���b�š�K8̳]���}�m<�A��� �������߻�-?���u�txc�i��t&�Xf
��r:|C�d�0�ULu��+�/�;�#U*W��
�X��ݻa�qŜ����������+��ő�y� �V��=qx���.]�9����d��̙3ѯO4k�g�_���P̛�iS��I����…� O@_&���!11�F�8v�$44�1}�L&����B�}{t�уy��^̈́�Ǐ�m�<,X��f͂��#��mhh$C�#0d3���v�ڢm�v��y��˼1O�:�c'N`挙L0�-W��pn׺5}Ğ�G��M���Q�����[8q3f���p�"��_�5kb@������\��av��&8.>� ,<�aE��6n
db��<w8̞
__>.NsQ�Zut0�Ȅi�O1�W�<<�\�rr�ӶMk<z�X.�N;aĈ�߿�0���c�{׮]0d�)����t�Ҙb?u��C�N��w��Qn9�,tv$�w���9J�)��ƈ<r��J��H`�M���Z�����F?C��)׋��^�����X�&�0a޾y�u�סpa:��ӕ�gVVVl��'.]#G�`�a��=s����b(�+�5~kXZe`Y�҂,������I&�7/[�یg��F���R���
�-��3J#{�`�������Ά��9�G���%��'O��"72�![ؽv��	v_ѳ���%��.����3��e�v����f��r���D�o݂���l��B���I�SQ�Al�͛��f
��1{.�����W._�r�eؼI<>;[���3b�X�:->�D�Lm�ed7��œ9���=��(��َh����t���7|y���(�;����ѰA=������>���}��)i����E)��"U�<���&�8u��"�s[��۩�D��p�'��pFprR2{0^������D~DV�]o/^�@׮]Q�Xq�{�v���ٓ�prp�
===���R�y�ȃ=,Q:m�B�8x�߿���#QI̥��*U��$�+^�=���g�&���g5塇&�џx��;��k�w�ξ��WCC%K�d?vd�7y��	,X�.�ʤ��$dO�6U�V��[�ჇX����j۶-#3{�,-,Фi����?���`��R8�YZ��1�s�`���x��9^�z��z�ѻw�\�_dO�	p�'�	p�'�M4o�/_�be5�_P�\A����>�(Q��#e�оm+�o^�-���}�e��b��� Y�;���`��A�"b�3��#�
ދ�N��W�������<�{p$�T�݌�,TrtR�A�zQ�n^�}KǢ��x���&�7�y�~d��:pj��a!�3DjHJ�C����.ZKv`��X�("^�s�D"���+/�MVVT_j|�@��x�/�F9��0���ꩊ�Z+���b�s6�wf������k�rT'LX~��A�������1�dp*�"|�JK�����;�R���=�!��)�ޘ4��������;TCT"���%\���Ҵ��f�D�r$����ԝ�{&��`��R�R��삉'��.m�{�>r�ΝǴ�30�4o�$�u�֕y�jki�x��C6�@x8��3�Y�йsg�nѣ{wl߶�mbOLNE�ݙ`J׮�{ABд)�hٲ(س؋T�Q+���q�&7`��"���a�F:o�՘2u*F��
�H8�W*�X\���11,�}̃��adh(�+���lC{�?�D��=Y�=z�j	�$n�
��110:����Zi�:�yvss������<mml�sD**L�>)�L��w��ƕk����!�=�)�'�����;vbv�ln>
�{��
���aj����Q�$x>��oް�ғ�L�����ݻ�ٳf}6Y���Hǡ�HOg��!�!�&]0�+7�xI����j��ؼyK.-��5P���Q�Vj#�5J�cjj�<��?#[	��]�uK�Ay�
�,4Xٸc���	��ڈOL���Ο{�Ҕ�����c�<����0�-��kb�-�+���+����{�c���`W��X~{���?svﺻ,ˊ��'>�{ϙ3�=w/��ݙ%���ǏQ�����\�����aa�qqoD���{v�,%Y��;�M�V�#t;��M+�l.R@�a��WD�Уm"^��8�H���ӥl�(�Bp>u�/,X��n�ARR��KB74��h�b�/���@���G��*�4l�X�T�n]�`c��011(3�B�עM[�f�`�\��������4'H�n�Q�g��t�t~�	0&��`X�J��I�m�6��.�\�ƕ�,��T��f͚�?��ipwsC��q��]Q����'������G����5>&O��R�K�~����0�7q��(����Ք���'�"����F�9y�$��}���""��O���0f���q��i,\�׮^�k\��P��g5Ti��n�B�J����!\'&&��N�5�u}T=z���DT󨑣�#`�o�5@��ʕ++�SM����l�
�w��Ŭ�u�ר�…��l�d1=��`L�	0&����!�*W�Z�����I��%�Wm��{LѻoC�'	�aױ8 �˜@߮�)���lزn(�H�v���$ n�Q)/	�{��Uf��*��<~�����PI�nJ9�}�5�oـ?<P�"*V��&Ȯ;�UA�X=���kO>�����wc��P�2��w�T����A�hF��;E���M���6:�R*6�
Ǔ;7`��G��XO��P�aָw��m��{��!hBk!?0�y
�X�{6��%�Q4�����QD�]����[��� |�PV̅��Cρ�6�D�D45@�-Рf!!���ڬ|�L���+UA�Mq�50{�7�&٣tQ,`X��Է��[�)�3��2	��"�V�x$$%�o��X�n�H����+D�vm�b�073K'S�'��mպ5��ߏ)����6.E�o6bb�D�4I�T�D�.�Ѯ]�`I�HQx�����T��޾/E�+6M�B�fĩ�V�A�l��ܥ�)�+	�$<�C�S�M���~D����U�ѾCG��"8��~������j�Iubr��;a�8��an�����Y3�}���:��[t��
a�v�	̪�WZC���B�|^rq6���0o�e��M":w��ަ�A�@���u>>��N�3V)�(o(K�ڐH��������)"�������Ly��!��׾�x8�q�����,,,�f��e	|����O�-���,j
S`�@�C���u��L�����_�d�2��HLL������?4��������Y����������]�]����J�iI�e��qoСc'���;Xw�t�+^!�JB��PM�[�i���03�*���E����7D��I��i��;v���NhР���}K���ê5t��Vm�"$$�&�=T2�N�~�'��ΜťK�p��I$'&a͚j�6_�l��}�Q$t6�w�`L�K'���T�I�]�`n߹
ggg!�֬Q���Fĉ��ysվ����]�����¿c�DFFb��98}�|||adD�9�z*�}���IMsm�٠}�����3f�xy@�)�t�2�EJ�ѱc�Ѩ�(1���<\�xQ�q���+#��aJJJ���{�P�P!�(Q\��թ(Y��^�
ĉ%}�=j�2%4��4i�Rp�����c��mX�x��K�����3=]�N(O#E�1U���_܈	0&��`L �	P
h��
�n�����g��b+<܆�2�\�oҴYE��
���v\�.Z�����N�\B
�{�b�QB�]�n���>���y��k_��F@�����FZ,�]���K�a�����&��_ڠ��V�`�m�`Ƽ���
+����>�;v���o�4�h]\��[�]�=s��;�hL�m+�+��*�pF���{�� �[q|���9}뗌«ā`zԒ��U`�;�����G��J�q�	�6͉E�j���d�����a"�.��r��G��bn���7b0|��t��l9��|�����
'_�.��=y J5d8�?�_��oU&1s�zo���{4k�DY�=y�V�ܻ� IDATx͇��9��b��o��Sj�ʕ��k׮8u���RNIp
?�� ���_d.�t�$>�۴F�V��k֬��Q���P٧�&��S
�ҽ�_@�Ν"��}���ҹ3������
���xLV�6r,\�
+�W�J�����c�V)�����$�ܹ"52E4׭S[��"�Na��9"t�_� 44Tܻzt�>��r��S
���(	���ѣDŽ��a,})���&k�'͟���f8p`?V,_����c�Nسg��݇�K�f*�.�7�	p���g���=�6��Q���UMk�w�^��2�D`�kF�3��|
X�OK�,�,A{k^�^�����8'�>���v�ҥK���2����yn��M"��j�R��̙�Q�:�':+^����`��U"5�ȑ#";��HJL�x�����êmu�C�INI5z�V4�]����ɨ(1����@�����������P�"z��M[����R��z� �?x+W,������uJ^KV=�2�G)���ݺa��M�x��{�U�^�G7���ͬ6�""w�	�^��w���v�j��S��!W޼�6w.�`�C��"P�F��j���K���+V����j�M�V�~��J������y����/j����z��V�BpOΟ��ɓ&���;:��d�Z�����n�|�	0�o��:_U�f1�1�֊x�5&uj���˗�p�"�9U�V�[L��Ucna�>}���1ݻw�ΰ���m�Ν���	��Ŋ�y�+W.!&��K)Aڵ����_�T��;W�ܲy��8!D��W�ϸ�|F�K!�۔�Yk԰�I��Z&TWGJ�,�s�8�*VT
���ŋ���K���(�i���Q�S��R�NLH��8(#����aL�	0&���<$ˀx����˃0k�HX�H�LR�JB鎈X�]DS
hڔzB���7���a�
���@�V��Z���w.�y�y���J��[adl�EN�Q�x�(i�y��?}=��Ա݅8���S|_��
�)��q�]�N���}E"��̌dpu���G10�i��&�3�Od�5����Ӳ�x��	��t5z7�����2��(dF�"�	�12`�{���y4�
��l'!\�<�/�8�C��R��s���qp�x	7o�A�sk!\��pw���2��b~��^������kO�z��8�a�E
�3q���]K�Q�l��;`^j����Iħ�֓"���#�j�S�� �^"/_�iCz�N����AX9�%�`�G߷;��{��=����6�Q��ԍ��ǀ��&߲L�$©Fe�H���5k����/Av��Y���{�cΜy���e/V\���"����G�^�زe��+�b���3o^����},_������B,,W��^�.JK� I�T�"s�}�V�z�C�\��:N���035�G�:��~���TY����VJB)	�$�6o�T
�#)\DE���燏i�c��Ɠ����C�-����$$�z�+V�@�������2�-B�j?����abj"j�R�R%K��0V�N���9B+�_ڴV��E�������P�l�6�7!�K)��qP������2`_x8f�]D�8qK�-�۷o0�a�&CC��u	��kO���uf�O!:/�?��.$ʕ
:��ʕ+@��~��!Ptl�ʕE�,e�����=q�(=W�J��A¬���Y)ژ�m�L��,kF�(J�����䂫t�J	�)����krr���>|�0d24i�}�ڋ}?
R�5k��gL�P*hJ�M�7(U4�b0��:�����:bㆍ�Kw��������+W��g/��c�Dsr�q���I���\z`B��St%x�
�G���a�W�,^Ly���Ľk��z	�d���>��o�W�Z�S���/^��P*���h1NT�q�xZg��ܳ�<=���\�V|U��>,Z���)8x0xy)�#{�}�7qqj����@�K�`�*t�;��-Ú�+��I0�u� (zX�q�p4h`)|���Kl|���P��gϞ
�~��J�V�-�gv���L�	0����:SS���>�R�����A��B��:�K�0}Y!A�j�mI^�t�\�"R$�puE�"�E�hw�@�N���{��QgA�5�U��iѢ9�U��k׮bW�.�ʈ���2�6L;�؁ĤD�au��
��j�֭E�2�)�:7$D7i�$]w��`F~Q:):�Kn������Cpp~i�+U��qܻwo��Ī0�_�)�T�����T�RSi��>�<&��`L�	|�e��K0�&<y+C3�T�3F�Q�$�p����u�/��
¡Wq�4�؊{O^��(�[�Cw��ʾ���s�&Q��9����b�u���{�6
�1G�"yѫ['�c�;/�Ձ����
�2A�r�1�kk�0�/�`�_��o���b�C'<}�؎�w�	[�
�E�.m�?�	�>H�*�@�}�
��+�%��О0j����u�'q**���F��72`��-����
��X�y��{C�6��^Q����P;��P������2"Ϝ��o�W���+�=[���<b�J4���_�D���P�'KoـV���Z�ZX�!/�_�r�\�]�8��j%���컃�?�Q6�"ۡY�-^�:�G>��=�u�fX�_��B�J��ucl
�G��K�Ǻ?�g�A�Z�d^X7����È{�
�KX`��AB�6�,R�$�Ĉ��*�MyT��w�U����ҪzP�@I�jS��"��6�4����Y�ь-���؎����<��*~��Җ~Z>�ܖDU�O��Ւڦ�m�T-�~��v:�Qώ�ϧ�����+��}m}i���ߠ��=��ˋիW��B��$)i�ѣX�v5���5�3���?���a�R
���cB�T�����9����֮���zRSiWaS�%3�qi{�%��
�9�f��#E*�:��o��d���\��E�f����&n������cI�	��\JC���{驿���#5-
���C��]�S���ϟ5`(�U�6/	�7n����\�@~����ёU�^�zx��9���_��uCQ�G��}�q�a"�>��o�q���رdHx� R8W�\	C�I�]J[�y���(_:H���8G��9=MLO���O*_p4`z:���hdbZ�pa��^u���O:O�	0&��`_0�$�<j��CJ�L�q5J�I�M?�<Eђ�H�ا�d����9z��K飩~�k�)E3�9Q{:G���\��%QY�G�H���A>�OԖ�![���gz��R�e�ƒ����A��vR
h�b�L�B�3�xP7�?�]�~�k�8�hN�v��k���%��+"hU��+�&4���J\�4�t��ќ�Zķ^�b�g&��E����ٮ~h�S9��PLS���ʚ"�%�4�1�$�ͅƢ�^�9zܔ��,�7�lp�[���{���Tk7��6��:|-�D��eX���gg��e_�|E�ۣ}̥K��(cլ��:�HI�-SF���Y�������8V���M53K�~~

Xh�V����7D��l^lJ�Bu/�7Ҕ"f��Z�l�311���#;ƥ1H��L�<o�<���K�z�M�||�&^�"�h�-11���}�`L�	0&����J�"1H�#!Q^�R.0J�m�K�%�DA�Gm������_��T9O�K}���tH"�$4�ړDO�'�O���%���U�Ks�s��t^�8�R#K�U
U��H}u�'R�0T�O���'��SMc��7q��Cx����
!�c�'��� �O����lIc�8{���4�=7m(~*$�륧��9+1��/hVK���_�+�|TxI��������y�z��_�] ��f8�X�k)��2}�|�v_�<>5Ǭ��pV�}��_�ooܼy�&&���ѯ?���#g�qd	�&Ԛf&tfv>��r?&��`�H��l�ɦ����+W.�r�ʌ�	0&��`L�	0�/�	�}���?X��$�&%�QYL�C�g�j�$X���$�,����|F)0HK�E��h߲)W4ѺB�W���cW?o,����1��|+0_L�	0&���.,gI���`L�	0&���(R�L����_P��.EIK)�U��)X�.��R*~
��2�/S������S/ʾ�>�֭�"?��z��FL�!��g��`L�	0&�`�Y(v�	0&��`L�	0&���0_�,��-[�
O�>Er=F��0�a�<y�p�B,�e½?C,���-����9���/-�IF�
e6�������+`L�`��硙`L�	0&��`L�	0�����*�OHs��#��g�-?g�J~���88(�,_��,Qu��]��y���ҿ/�)E�_�Lw_�Gm(��x�%�II�K�T���h
.�q&�/a��G&��,��sdL�	0&��`L�	0&�����L��$��'O�s�'�-,��cƠA����U��?\����ʲh>�"����kEe@=���<.v���l����x��%��X�������A��ѯO4l� s8�~j*ђ�Y�ȕ	�������HKKC˖-0��	�F��A�=wK�-���E��*`��pԪQ-��O���v���5ϔ	0&��`L�	0&���7M�s��z�}��Ógħ�|���c�h�K�޵������'�LNNFP��8q�qq�T�2��E��<������@DDD�훷����`����ЫgO����c�N �;_�|�:e*
.I�iF���>|���q��5����b�J������y��m/[������ÇG������S̞=O�<A�ΝD=�xlܴ	={��H~����x�F���$�lr�ȡ���*���i��z�{G�ʀ�
�P?��Vֈ�8������uѵsX����" 0s�̖��#����ԌHV�U�q��D9~��"��I�N�&�Mw�k��c�S��m�v��Q�дQC���X�x1v�e�o�L�	0�π���"�L�	0&��`L�	0&����'���g�#0��A�S	�S�Nŕ�W���q�ơ|��,1�M�6c�֭p��Ŋ���
*T�����s���BL9j$R�S@i�{�ڢS��J��l�0�!Α@<�i�S�ȫ�̓������qpwsC�*U�6c�w��!>h� �Ν���C�2������z�aB8^�j��DX��T_g8���6�a���Py�=�Y����ٳ(R��N��ժ�)��i�x�Y��FFp�0M[�+�E�
���Ǡ.7DT�Q�4o??_�,^T)4�X�P�P?eRr}��<������:W�\EϞ=���#��UEp�ϧ"guO;{L�:ժT�/\�,��
�>:�>����M5�=�
AA�Y��/%�Ǹa�M&���gB���d!�
&��`L�	0&��`L��`���e�L�c�pJJ*���\�,@���
���h������#G���G����
sss���:���W/_�h[:�E�R��5�K)����"--���G�<y�f��6���sIII"�7������466��$oذ�i�i���w@��Tf���t���&�kK!�N��F���IӦ8{�,�,^�����{]�pp۞=q���X�m[7��v�����`k��8�M��`���C5T�X�6D�*��)��ii�^;�U�={tGІ
X�v��R���N�O�4��<.�ol�a;�`nj�q�&��}&ڵk���{u
��>�p�x��t.Z�V,[���
����
�`���1���`L�	0&������j�6��m��`��Ȃ�u��''�,��)��7M˼)����o}��m���"���Ւ�X��9^F�5�׼�eT�R�o�O]5AU�ev���2�W����N�����G��>�|��UL�2%wwT�T	��v��Ŕ�@�B�眪aJ����&�M)�%��ګ
��)�%{�"dϟ?__<x�@D����۫W/ў�H�j�g]�t��˦�M�L/Q���� &&V���Q���Mu��q��A��!5hаN?���aI�"gɐ�L��(��&�V>�u��7�\���Ѭiu����#����5�U�uM����PX�� ..͚�Dd�1���%)�YU�Ư��`-�o��:�i�T���z�7l�?�.a�O�3�`�`L��`��3��`L�	0&����`{�~,�m�˄~�
�8��ƌ���p\O�e��LI���2�
�bu�b���H�&�S�酑15_�|�
|��511�۷o`m�>�+#@M'��C�ڕ�څpQ��5>�~�S��Ӭ��zNU0QO�V���R��jy*��9/iMT#
I�Q]�H�U�h��59j��3�
��#�����ףݧ���„hڡCQ8((�C���}_�m������S��^�Y�:7j�(<z�HԺ�Hb�CU)8%9Y��:��LGV#�)z���g�5kʔ-#"���,�WW��$�mBbb���+m�O�M]l2�L�j�6�b{H0�Lr���[��Z�B8)�UR;Kʯ�@������p�?�Ii@Ӧ68z(\-�3�{�Ν��`�^�8��?���B�&7��-��5zUYZNE��h�����q��К�3�dH�nb�ݻw���X�{�&�������S3�`�`L��`��3��`L�	0&����2�5��!��x�!ܜ:���V��R��&m��O�$��)�5g�U\�~+F�D.�F��9��IG}h�\�<�^��Uݨ�
=)2��*h[��H�R[z���֒��H~R�SWaס���d2th��j�m3}l��֌�2�ϕ��*S*V[�92l�E%��E�EF��t��E�fy��=It���g�F�����ct��;��P�@^\�vN��#44?+���j��
�d�w}DD���.c��%�|�HQ[���;f,~�ZI�s�~Q����G(V�(��C��핢�CG����ױ�U�&&�6ŋ��g/1u�4���eT�\	�<<P�@��K��T9R#��ai�@�b��ќ�'�r庨�y��m�X�f�� wny%g%�i0HK5<�8t�<��#&6�jք��o(Q���'����}�(z�p��E̞=S�!U$-^�F��ƍ�J�OU��huE8ӃUg�a�����V?�9�sM�sQ��T����	�V�������,--�4�I�H	�`��(]�4\\\D�`��6n܄�m����…�c�LԨ^������Ñ���U+W�a�F9r� eg�I���6p�B���������X���Ĺ��Ʀ͛��U�[2�j���'����v�{���7ggDG�ºu�ED4�ʺ�#�3��]5��s7��U������jQ�u���k�@�ahܤ	:�m+���܉b����0n�X�
+"i��={�������j�����E�먱�Q�fM���MDm�Z�F��n��$�������p�6M��e�ԯo�>�=�k��L=�4	����C 3��?(QQ'�v�z�۸`L�c`�c�e�L�	0&��`L�	|0�72`���X�)���(Q 7����N}�<
�:���n#>>�6@���E�l�ߏ��O$�)2Ctk���X�O݄G�iħ�Z�$63������>�*�r��HMz��~E�:�p��K�s7~��$�tm�k������6}�=�����,l�7���{Q�p>L����π�������Ԩ�r�%#1�	���F|2�jC8����� IDAT��$��u=nU	O�@p�^����F����ظ�8ܦ��uQ�"7�?x���B|����}�h�١UV��Ԍ,%[RD�
��(ӈ������ݗd���9�X��u�={�a��5pt�6�*Ҩ����i
�T���ʃ;]��İ!C�ȺRSS�w�~>r���С�X�x�O���+���b��H�k԰>8$D��.�Q�T)�߷�O�����Ϝ��9sbذ�X�z�����x5��Q���=�C��)o�\p�FD�1��7;uD�ͅ���T�w�j4#�ƺu���2]ԋ�y��n�x����Q�\�R�{��??!ZS�ϓ�ǐ�
����w�C�¿"����#r{���026F\\,�g��G&fv��q�S�C�Ë�ϱl�2*\ϟ?ǰ�Ð�@�\�TK700�BjJ**U�,"v�-�鹠�
8q�8�ĿA�*U0h� 1����֭��6.R��L��|����]�`fj���֪�ӕ��C��I�o�^�'���\D#�!	��0=�1k�LQ���׍6*۞;w+V�Dbb��c j$��x���Ǜ<yJ�6��.6�~��l*��W1�A�Ȩ��~�j�[�5�^��o�}��	񜎚�ja�Q([��>
_��{�2���Q�Z5��r�J����_�K�f�J��J�g�O���.]�u�W����s�!�����~��+E
`�>������d�p����E��6�0~<���R�6�nVw�?�\8A��^�:Ə��%�e� z�"�	`L�	h!�0_L�	0&��`L�	|�(e��|���U<F7���7q�^��T�l���#�a��#*�Ǝ��ѿ9�r) <���]��n������UV8�����?�k���}F��G�-l
�	�(��}3�΋1[�����" 8+��AB��'ן�"�IobQ�ZE��Q�SV�F=kt�P
��gg?4�S
C��$"�_�R�k�u��p���
�#{�~���H..����]��֨0�d&�|֫��1�OC�K�?8X�耋�.��~��&"Q-��:�K/B�Ơ �˗<���;.��ʖ)�ɓ&�j���ŎT+S-�L�=J��wG�����3�y����ׯ1a�h��y�Z�j�ҹ�����<���ηn����G�*�E%eh��r��Ѡ��Ja������U�Я�@�ሺu~J�*�]�.BP-Y�����#G!8x+nݺw\�vߕ+�iS���ˉڢ���N0��ʔ�2y-Q�7i�}��"����?j�oݬ��Zs������uj)�I�H̷m�!"�W�\���hӺ5:vl'xX*j���g�>��..��G��=���V�X��F鄛/_�W��رc�e�ڴ��k��� �ϗ		I�ܵ���ٽGwoق\f&�*}
�SܥtE�~
Tnj�#����ˋիWg�;�&}(T3��F��fy���ϑX՞�^[�vm)�;�€�Q����Y��'�a��ԭ]KMV�����4B��$�_����2��:.�=5[>#l�	0&�!X�zܗ	0&��`L�	0�	�s�ؤ
�3Ъu+����/(m�x��5ܜڋ���`��up��������_A+��p��:vC���A�s
���@,	����+��fb,�?��c�ĮȣH�a�:4m��Z�<�`�k!`�0?y����L�tx�=,��4G�+,O�w#pr������UP�����J��ܻ	�?������a(`&��;|�����[��4�񫱘��c�9�sU#��5��n�T	|��bg�n��<�(Z����
K�Fpp��]��s۽nn�3f<j׮�ݺ 22��{���[�Sӎ$�	 ��)���k<۶n�]o{̟�&L���:t��sg����SFʒL�\5�#a��}�����*Vď?���(�}9�g���=�J��U�t��{���Ʀ%�v�s3�tu<i\�b�8<5i�#Ga�('XZ���]� x�V?��K����)�Lɛ��~*�Vؾ� t���Z���͛Et�C�
��mZb玝�ef��(V$���CG"999rbղŐ)"��j(|��(�TD@7j��g�n�3�s�H��E"0v�3�t��uq�D���s�pa�޽8r�(<<�1u�+�[Z��/�X���s�)����W����/�c钥hҤ	�;����]>��t�h�<֩�ꑮ<����'9�垨滾~j�d����!2(���י�]�e�F������`L�C��!�/`L�	0&��`z�W��� �W���ٻG��	2�������h���*��7�ƃ(\�4
&=�QZ���e���Ұ��Ƒ��E}D۶6h^��v����/^����fB&����ǘ7��tI�m��RUjaj��������؁-E-�𨛘��UKǠ0��ױ0p'|��FYE]5J�8l�jT�����x�e�|Lq쏊�aÙ��D���ȁ$� �K��65�� �"���;�ȭ��Av�W�k1���	�,Z�L���ѭ���P��Ç���!�s���8�&M[��]�`A9��1��tU;�Tߖ�K���Q$T�ݷ?\]g`����]_̞=��?w���]�,��GJ�E�J�-�Rp��y�={V��;v,�4�pHȶwu@)���xt��M)���N(qQ���ѣ��̦v��sSJw��;b��� ?##�����j(���wD�1�������勗����X3�CCC���T�L�o޾�n={a���(W���x�oQG����
4@�vma��Zg��q""ӧM������D�Xw�X'�V�Y�&8x���o�l��5�?����R����7n޼S�E���`n.��d�6�����I3u;?8���8Ϗ	0&���|Q0&��`L�	0&�P��V�*R_�sh�I��}�*<7�c��PT7��$��c��D��=Ŧ]��tl��U��
�m�l@պ
�Ա$<���`�<BΙ��8��.��F"1E_|x,X
3�\(`j��6�ѼVq!0{���O@fFi3y�0��#��~�F=E,�7KV�����]�X���Fl��>��a��7++����֠XѢ�ء��!	�$�J5"��-�^B���m.�E �[�Uv�^^��&;�,՜LHH��ɿ��w��[�{X�5G�ۤT�$R�T���Q�*	�	�)016T
�����T�
Ɛ!Å�ڤ��Z
�
7b��%"��а�U���b�U(V�nݾ����a��-hѲ
��PT���;t�}{��U�S�E�,ɩ�u�F8~���x��{�f�B���r�R@�F
~V����;�Xc�TԒ,��Viȿv��!��̟7[��&)]�udž
A���[7mBΜFx�"m۵5��הd@؎P*�/�N}+0ߪ�@��(R8[acL�	0&�`�s]��	0&��`L�	|e(�����_���]��$S�u{�0:3�:"�7�0~�/F���!�#�������?C��E_��Wq1�(- �ձ~�٫h������~�p��s̞�ED
?��L\���F�EU�s�6����A6"2���X���KF�EG�	�~KF�Db�-�b�q�����V�a��+	��w��s�b�p;4��O��$�R�i�����۪��?�'�b�������BY��>)<��I�[��z��x��hӺ�zD��5"#�������O�U��W������u��Z�)��P!R�����;���~��m۱r����b���B��^y�gq��"��@���еs�0��]��u�6��С�X�p�O��*U*�T�3��E
��V������
��Ȉ��
Ü9�1g�|�(YڷòeKa�#�9�����s�z�ҥ36oބ3g�`��֦�������0u�t�p˖.GP�?<=�I�ƨ\�֮]�|y���ʵ!��j4K�>@�._��.(_�{���Į�0̛�Z
P�~r?�T�q�v��`��Ç�@��ѴI�S@��V�Y�aff���X�L�$��?h��=k��e0u�+~�Zv�=��V�7�m����ȶ�`L�	0����:V5�m�S�?(����촗��������`L�	0&�H���f�_8�ݏ��I��@K{�Cf�� �~�J�m~�,
F9e��"�V{���(���kD�ہm3l�@�tW�>�j�VBt��E��p��+xLj+D�
'p�
�O�-^��x�}���=D���9�>�5����z���Q��HL�{��	B%��h۸��C}�ĉ4/'7?������:!?�'}�͑�\y
��l<v=�~��`f
ľv�al���]&�<J���b�|t߲L�`�L��g����z����H�L�J:�)"l>|ww���?(Y�8&O��jժ�ڼi2��#��~���z EĿy�����J��?�\�}�X�rjת�懥UDE����K�\�}�<=��ҥ` ��2L8���+#���k׭����ߡ�}_�ja#���'�ļF�50q�x�,Y�_Fc�����P�Z5���@�<�D��3f�ƍ��X��O��ҥK���T<�D�����8x�fϝCCCL�:?�\{��…��u,l�5ÔI�06ΡL�L�@�XrT:,�5�����&L@��Ԅ]�~~(�GQ�����v�Ə����@QY[�nr��_��8r$-\�zu~�d���njQ�������# �O��������=���赎�g,��#��`L�	|eXֱ���~�:\\]�eٳ�^v�ʖɱ&��`L�	0&�$��B���a��(T�*�3�0�����߇�7��pS�)�ݺwD��q?�ݾ!�y�툺E�ϻ�$b�Z_�ɗ��àvX�����y�#�A��)��M��HY|��r3����b�E<��hP�
�~����x����ú\^���J���{;v�A�|yaa�3c�*Y=�6CAc�A4�4p7n޽���s�\�<���+n=~�	K6"!��S�h�d`Ӕxl���&�4�,�+��~��e�~Q�]H�Ai��2�J}$�X�e��P��b�>��m$�h��/�Ѯ}{?vX�o�ʹ�d��m�/���}���P��W��&�j���6#n�U��>G�vT&��G��?�\�䚑}׆r��Y7
`���O���r�TpdD$�nۊ"O�<hܸ1�w��s�ţ{����-��h�]���߇:���P_>��].��Y"v�	0&�5`XǪf�Ț������xa�`L�	0&��iF�*)%2����$ӑ��<�
u��O�U�0�󔖙��Km�T�q(��>�#���.E�Ju1��m��RJNi�5�'�C��߱���uX8e JY��ݏF��k�z۶�G��4�E�?U}�6]Lm���s��L�߬Lx3ӫ4�C�%��b,�D���;dH�J��Ne�K�$݃6j����٣��ii"�?|�����ѣ�8�O�v������?3�3;�:?uX�W���:ft>�q�1�(����]7ms�g�3�>�|��yx�{�v��9j����?�:wB�^��|��.��c�G[�j��kVD��_�ne���xΟ������-[b��qșC��s�aL�	0����,cxx8BCC���3s3T�^}���^پ��P�|yt��E��.\����`<y���/m����KNN�Νa8s�4^�x��Ŋ�}���n��ݻq��]��a�:u�*�0���WqE�$�`L�	0&���L�j�0��n��y�lQP!��4�d@ȹ�X�z�:G��fBp�x/��ǐ}ѱ�9,8��?^q�[&�M����+Rk�&�)��⏆V��B3��*��j�����X떕����)`�?w��T��=}��Ӧ��kaȐ!x��!֯�Ƶkא����+a�b������6�ĉ���C�ʕ��H 504��!C���Q�z�jHLHD`P """��[XYYa��`��A�}���G>�������HMI�uÆ�߿�0bgk����¶�m:$Wu4j۪U+l�,R�gd�����^b�⃜ٳj��R�]�=����W��x�!��I��L=]]g��A}��_�|}��vL�	0&�T�������+�����\�,P�h1�󜇘��k���fطw/�>}�iӧ��(ƍ����N�ڸw���͋Z?�BF�.\���n��Ms!�={��僩���O�d=~�
AA�ڵ+�4m��V�b|a3&��`L�	0&�$�������Jcڠ�(���"l�v�����N�}�9M@�o�X�mk�\���l��p��9q&��`�?�2>V���"`3�bV����>��>ֺ}��>�<t�0�x�>��033M7��S�
��Gll���P�J����M��m�V8q@�b����
*���]�$<�s�Ƽ��P�Lixzz��ػw���Q#EP��������:uL7~f�mذ!�!2t
��:���N��0ĠA��@)��͛E�FF�٣Z�n
����vo�,	�u-�Q�FM�-[/\@�Z50�y�xp�jU�W%�9D �8''Ԫ��1e�+�(��cFb��E�~�B�����L^�2�ͱ�Q���y��C!�^�z
=z􄯏NE瞾��}��Y-RS&OF�jU�>/H>H)�{��c��)��JEa������?��ݙ`L c,�:4�,_�z
^��c�I(U����	~À�����ۄ	�V��6m�
*����=X�Nm�'��i�_|�!6���b���([���v��?�L�	0&��`L {$ɀXEZhJ�l �"��D����)�)�t�"}5٣4�$��OJ�L�}�`L�!�
�!!۵
@ڨ�0�!�i����Q�����������qӦLk�&%%��ZJ)Bv�ȑx��1�}�anN����J²�����%!�>�x��ʥþo_�*U
^���̿�#�������G���b�r�H��j�-�wݺuȕ;����m}�GS���V
�v�z%�v�Z89���=��ju'���.Ӱ34X�����]�>h��W����?�0ם�]QZ��~����_���t�,�6~������퍍�6c��U8qT��4�
5���=�%�!0�?[Y�˳/KKS
ǍmZ"lg�M�0n����D�vmq8|/��w+��L�	0&�X�KSd���������U=���E��6mZ�ܹsغu+�={�|y�w�ި�CU�\�^ĉ���c�9�/PԎ�L�Z�
W�^E�|�ah`��/��f��8h�V[��ܔ	0&��`L�	0��H�/�ܥ�@�֠�����+Ri�]�6�Mv�(����f��	0��#�
�$��?	Mڎ�9DJ�…��~���|
xذ�x��Y��T����Wd�h]� �S�8��Y���OuI(E����R��Α���?U���ЫgO�@����5�����Z��c;�ˋ��ճ����РAC?~�
"2�rO��-­�w@{��M�Y:G��"O�ƈ�c�x�"ԯ����+��y\)(G��[n��-�Κ,EFȣ|[�h���!�07��4���IE�M�_�Z�'?h���#FӃ~t�
��:6>mY�����L�	0&�X���\R*W�����X�p�zU�\�r���B��CܼyS����Ŭ�g�������/Y�!"M�t;v��A��pG���nnn(Q��Rִ���wgL�	0&��`L�	0&���R�~ax�L �B^0���+�~��1f͚a�J
 IDAT)��R��$Ϛ5eʖ�t��8�Q��[�^�_�r�_G��G�:�TOWב��Q�T��k�-�%K��	�4�.����}ۙ^�li���c�����On;t�1c�РA$$%�y��jp��5g.&M��.~U�S"1ّ���m;��PM�f�ĸt��[�i���03�K�R�tKK�V?H >y\�)���&����
��Й^܀	0&�>��:��۷;v쀣�#���Q�v̜�C��ܩ��w���ļFϞ=p�
mB˖-��;v�ē'�E}:2�'j
�m'��:}���Ý�wagg���+�…�u��`M[���{���.���`L�	0&��`L�k%��׺�<������i�o�ɨU�F�-j�<x��t������<=q�￱i�f$%&�������`��(]�4\\\P�|yxxx�[7n܄�m��^$�z̜�ի�y�s�%��?����Ñ��,��u��
ݺw�T���-�Bu��?�)����M<N7�L��m�b��9(_�"֯�F`��R~�H=�7gxΛ�*�_g
h�8nѦ-~�3+T����PFS
h*�׻wlڲ�V�T���:�
����<�,L���$.���"P��/H�N�>M4qq�����׶����o^<?&���'$�����yٲe�z���χ��'@&�a��
�x�"RRSQ�@~���^�zx��BCC��_��$�ھ���A�6{�*�j��ț����ŋ�s��8}�NFE!5-
U�T�dr�έ���ʗ/�'��xh&��`L�	0&��`�7��]�Թ��
��c��@Hp0�z�#l���왳ظi#�ݻ�<y�Y3!�p��!Qڍ�+�ޠ����-,�����@:t}[�re�[�h��+E�RF�'��M�T�R�
B�…�N[��ژRT>|2�4i��}�ahh��L�{خ]bN�B����m}`J�yII����$����>,Z�X�<����u'8O��+`��X�f=�_���sf���Q�a{�aѢ�HII����0�|1.�w��C������k���~��8vH�{��5<��u11�ꩥI��`���)����E�-Z`��șC����汘`���X�7o����D�eJJ*`ff���{��
��͵Z��}�"!YslU��l�1%n��`L�	0&��`L�#��7��<ᯄ����|��4�\�:<��UeS����>���Va �=�z�RG��G�F`�����,�㩌��U]~~���2&���gN���|��=&��`L�	0&��u҆��ײ�iF��RPɎ��֎l���~�X��׏��v	���>s@�00@�2e0e�dԬ^5��;�s�y@&��`
,��`L�	0&����M@&��H����I"p��d�F1c��#�v>oh:��f�_,v��$��7��<鯀�_�"~ISЌH�־+~Ikž2&��@�X拃	0&��`L�	0�Ϛ@�Hp�A�m���}����kړ�"zs0P�/�)�i�ާd�ǀ_@挳�T�E��#{R�?�G�-:�w�����Ԏ��-���$;��y:G�Sd�4���I~�U#��/�PWӟDW4x
Q��M����}�/U��8���s��)�UYYY�ܵ�j�h�������j?=2���f#�_�ZO?u�3�#S!��Zz�̴��f����I��.�3Jk�ٸ��2z�͎*�����,gF��3&��`L@��|E0&��`L�	0&�Yx+^Xz���n�[!?3��$�RD/m@�+�a������+	�$��I��
��o������
ZaO�66`�SI0�Mmz�\U�YiÛ�Wz�ړM�O�^�D/KB4�Cc�XE�Mc�(M�ǫ�#��&́�I��8o�/٣�d�|��t�Xɟk4x���!�՟�E��1�/U޲e��굎��>�֭��#+�IS��?p$���__<z�E�E�����_�}jw�ڥ�}I��Y�f8�?�EN��M�٤��@�i8x`?����R�ʰ�eY���q�V���Ìn��j�*U�:v�/�[
i2�=��K� 6.ժU�8''+\H̓��gfϙ��J2DD�Ě��p������f��>|�*��|�-8�u�V�^����D�p<����׭Ƕ�m���?�u����n3f�B��x��)l{���-�Q�@~\�~ӦMÆ�@4kf#�%��%��r
d������}��_��`}(q&��`L�	�#�0_
L�	0&��`L�	|��e��3��bSbS
P�@n��W�ވN|����{���CӆV�Km!�������Gb
��NF��-ѢNY�9u��� >��r'��P�n=�s/J�-#ccܼq�Ioѣ�hT����{��F��J�O7\��~A���q�A2���4��넥�7�d��p�o��O��~S(��Aj�5�W�1R��c����$`�?q��CD�ID��V�ۺ���
�O�d���c���ׯ!>�ѱ-��)!�|��>���HLLD�Z51�g#Tѻ�~�-��!599S��צ��[ag���XTG���kl���T�]�H3v� `���T6�`�+ł������kb/������KQ� g�'a�ܙ3�ܻ�}�9�u��g4���f�B�T�	\I({X(7ݷ�#F	�b,@O�NN>���@���AGGW�^�����ѵ[W�.1!*���P����2,���Q��*SYF��$X�l.���\�ʿ�"W�~?O���	�v��wM��޽{p�6�K�o��	#Q���def���X�bƍ
SS$;���p̚5
6DbR����7{��]V<-BJj�������_�3gpa�����v���X�x�P,�̞�"�Na�
3���f�VHb�ps̞=�;t�ٳg�|�mCvN�{���ݻQ��V��%�J�_6���t�7àA�q�=$�y3��={�Ğ}���3g�h9����'Oİ!C�X ��={�v�Z$>(5~�.���t������R���sY�O	 �.� D��'@��_c�! D�"@�(�X�S^���+,�a�3�ٗծk��y��׫��y���ppqB�F�,'_,�>�j���+���[p���3����ÿϞc�cw�}�YF�o�!\�}K<&��*���Yl�w�=��`�p4�[N�q����9���u��~l��+����<A��y�۷�Xk}��]�n?v�հ�x��������c����
؁v���g�~���O��h����
�o��ƹ#P�"�!�v�ڃ��h�-��ꃨZE��y0qq:�kw���-`9k
��L�~# 9�ݿ3�1�+�d���b*]�o
�eS�A�<�H�[�NJ��{�5
�]:���|�$�mێ+W�2�$�I=&R�&��۷��틿n�B�ƍ�D��FuL�:a[�@UU�2�cܸqزqXI��<�3kV�z�j2s(�fZ(��{߯8x�0V�
��M��@��P(
3�E�4-�6nڌ��`L�4���ӏ?���ׇR�a���i�n�fs�^Ӝaei�Kl8�Ô���q��e���^;wl������+�}v.F���7�F��r<��9�:l8��C�q�L^���L����4a�L�4���g=�]�
!�����՛�>�z=z�^^>�x�5j���3кeܺ}[n]���o����ԴS�3w.V�X��U����pptIJe�Ѷm[�
4��3����G�RE5d��aSh8"#"p,�e�ܞ_J���a�����U��=z�SQ)��x�n���h����m��i�S�n����w	�Y����>��,�.D��]t�"--E�K�]��o
�g"@�  L� D�"@� �	�C�l��/^�����.Ҹ��9+ۼ��<{����Q���b��MX�=4��ffӃa<p(�����~0����%�s��i�"O��>}�P'#^6����;���?�׬`_ɳ���oBϾ�`۫&|�v�N���6ޔ�X�?u+���f�GN=��~,X0�j
K.�}�����v�:��/X��
���_Lp�	����KQ��pL�i�a�K�u���xx���{�n;-Í��}�p���Y`ROX���׻�OL¯���%`=o��q&uxv�7@5-�>�"�K���&
���H�#5*�H'aРA���@UMMQ)d���9j����e/�i+t �]�Y�eW��s'�!�g�������˗-���>�
p��a�]�S'OB�~}q�d
N?���Xf�����Ǥ�c�ȕ~��̄.�K���3�t����_��tF����0s��|�����Ā�-6���e�b!<{��+W��c���;f��ff��G��ZRr�d�7��_`u�jԮ]VVp_��g3>)��p��ax,������)��f&�pvƴ�3��.��ػ�e��3��kT�Z
~���i֔�(��f��������Cp�t:���WW�u<��_o/<�S�: "2&�b�ҥ�?o�����/���ၦM��kD(�
�l��y�&�F8v"+i`���_�>w�/Z��~��Kp�/!>��y++�R�a���Wz������8��,�'e�*�$Z܏��ܢf�ʯ���D����E��RO�J12G�,x�-=Χ��+uW	D� �	���4W"@� D�"�	t�ܙ�W�^�ڶšÇ����tΥ�Կ�lk�4h�������f�O/S�-���Й�S�	,��W�
�
����L0��%��ߏ�=ےQ�w�;ѸuG̵l
_��]�*�K�-���0�71�VF�Ö�S�@��/�w��hز&����%��s�Z5�����!$,-�TFEd#[PY��b�Q'����y[/�ۈr�ͥ�C&��G�U��hҬ9�b��k:���
J���(l�=
͵+baX2~��
9�6��67�E����WF��PG��K��苗/���1عk7�{I		r%���K�@�4������`ii�}{v���
���/�L���	��\�e��ѣоM�“�g�r/Å�
��ޗ��e��ν{�e�X�n	ŷ
�'o���]+�_��\��\1�bwe@����:-������y6d0¶lF��Ux6!cń3�Lf�Y8��A�]����KIM�����鉥K�q�����8t`?�fB���C�gc���P����&&HL:��#�X�'�=ML��@lm��닝;v@�InQ4�{���\~������v�汎����s�bɒ�ذaƍ�www8L�Gܮ]P�{B���…�l�2,t��ܹ�ѧW/�x/���/��x�b�;{�/B˖-�ϓ0o�|��CGL�8��ټ���cǐ��}�+�Է��A��ame�а0�}��L��V�Z*=־};def!2*����x����m�lQ�B>^TT4RRR������㡭]�_y�LL�,�B�����S�d�*�,P�c�i�����0cW~�R�Wܗ|���,+����%���Oq�WR?�C� D�#	��Hpt D�"@� �# -�۴i�#G���0�<	���y��}'ob����Y1-���;�Lr�3����wan��A�y6�b����l+���s�Ѷ�>fn�m�Y��D'He�a�6So  b7B��@#�~�#`��MШ\
յ*b���t���؜�
!Q;�=�+
��Y�ne3��l��wo#ʥ���������}/�,����x�^~3t�84���Kg�_�E�<�s6F?`���|��<�Τ�"]��� @8	NNNa>ݺJ��NƎ;�翂g�&�=���2j0��[������0�[{w�	��ĉ���FDX86mڌ���a��Q���Ć�`�_��<�����L]�t�_���{'*�7	�cǎcg\V�\�I�'c��������H���r��d�0س;�g�4=zt�y�zfb��\f��M�PO[����rrsa=��Y�3g����*UnZ|sI�-����II�	˸e"�_߾ؽk�™�1�l���f,3a�Z,�[J�
�d��냐�����wpvq���^�Ҫ����aٲe\�I`����"O���G��1w�\ʮgI|x|	<i�d<��_l	
��&�0B����q�����*֭[������e�U+��rݬ����7i__��|}�y�f������}ZY[cȐ����Ŏ��a7�������>ދ-�I[�?*N_ߢ`=}�JM���cڴi07�AfxL���K�/��gΠnݺ�7g6:�k-:�K�{)<�J6�3[cbЂ���
��.�t�񇛇��N�Գ@�
��Ӽ9fN���߷���IWii���y8�vR"�٧���{z�E\�z�?�Y�JI�� D�|"���N'D�"@� D�hX	h_??�x��<}D	�C|�E3���"y��+LY�
��0��{�:&7fw�Ə�+�==#���HXe�DAx�l+T��50r�Z��l�6�ߪ8hhV�[S.iN����^�e�e�lO�_z�7h�f�2���;��O fۏ�A+
�q&�پij�^��w�f�
�f�΁�5~*iha��(̞1����>|���k$���B��U�
 0�8~�-�V;C
���B�L�=��tѮcjU�	�{�����X�f-��\ѲUK\�~^˗�O�mhȄj>,�<usu㥃���l�?���˹��۷��;���6t(��CXXl'��ـ\@W��|$�q�*%��0-H3�������ٳ��|�\�ѩ��8~"!7�r�M�k����43M��h�������oX��3�ѱ�x����}{� "2u�j��Ԕ(s}�D�@��A!�s�.�7�Ǝ)v���		�`;C���I�I��֯�7����s�U�6>|8N���%�7l����uR�Oc��e�?�@ܞ}\JZ�kkV�X6��{�wpxDƌ��,3YJ��BfY��݉�FV���O�/!���m���=������j?�?��-�y�l�뚵j!0p�D�2y\��X�	a&c�rV�1;;;<��g
�ۯ������<z������{�})�g����`VVy��ݘ��į�޽����2�g�s�A�04�3g�`M@"#Cy�s�-D��=��А[�
[E�:�u�{��bb�nť�����%#f�X:sX�C8���?��ڽ�wJ�S(�Y0�l��҂X�we� hjhb��_�iK8�231e�>���EE�*�c�P�Ԁ"@�@� \�<�7"@� D�"@J�@�@�7��C�r�!|��پLj�_�j+b�3�V�?|�*��4l/�UK�CE�p�1ߏp��
�nN�o�y�.B��Y�,[xE�Q\����Z�7Gƕ{�`�,k^rz�֣�����Z4��ڰ�d�9v�k���I�7�&b�f�H��e���G@��0̤-?��Ǿ�d��� v����
��~AM��QYMj5��u��]D����yG��;p������2��x���8�
�a�ɷ�q�>�7F�c�L������8�x+O�x�����\�3�oO�^K�|i�W���^8x�B�B���C|״)l��`jh��	���\���k��Ȉ�|��],]�[�o�Y�fpsuAcQ���|����Q�J�|�����Phjh|Ȳ�
U0D�R��Q��K��q���_�=����*�W\��Hr.[�_F��m���8q�$V�t۶m�Ӧ�A=m�2����z*��
 IDAT!6���;�����
%]C�=-LbF��Y�-Z��ò��"BѠ^�"�`}�׍��2��p��U����hܨ�g�@�:|La�D����G�����W���3��m�V����,���!(p-�6k��W�c��IX����hq�1�'o޼���5�mێJ�*���3�Y<µ��~W��%���S��?�(���yyy`��+��!**2_��29��+}Lܧ4V>:,<�	iec|l��~^K	`m�z���
n�N«_$��{�Nj�����QQUA���6�ջ/^�|-FUE�N��:��#>!U4��5x�P9tP�w
aƮ�Nc��τ����U�p��-��f)
>��U���F�����K��b�J����p�9mZ6��+�_���$��x� D��H��i"@� D�"@>�@�@(KS.>���ԪU�jV���p�{	lߍ��o�v5-|[�:,͇����=�y�>�T+��f������/�⯼��P4��2�kׂ��@�	?��]C�j��
ޠ]�:o��+
���g�X�>��|�����?���{ѵkW��N�a�x��=�ԯ���0ƪ/�ч.c�C�|��*�^�"�6�V�u�@
x����ͻ�9|W�����p�z'�\@3�Td�Y�&k��jB�p��GB]M��0ظ-/!��n;���CEEU�+��j0Z4��_��Kx�D�o*b��h
U*[���*�X�	�W,�1R;l����u��c��
4*T�Q�2JK�+��|;e�3?����S(J� ��ơ(gX6��ʟ��q��L�Ǒ�A�M�K�!���a|&�32�xF�˗��c!�kQy�rP6·��+[�����s��W0�O���x��
��x�a��%<S���
ҙ��d8ۏ��v]�^������#>x�VSc�k}x�O�Ǔ'O�i�&T���^�U����Y�zI	�)S&c���X�lZ�4�w.��}`��8T�P�y��=^һo����^)ߧ��4d���Z���q1p�0L�>ݺuE�,����q��)'O��8@�I��r%�E��C���{�O���bx��ǻ���
�|� D�|~$�??c�"@� D��O ��<g��2	̄*��P�I˾_c%��1�b��,S���9,���a%�Y�ev����f簾X;�NJ�4\�'N=�
�%��׫�\�b�YYf�V��,;��������g�A��K`����E�J����xF��s{L3������_��c�,'�5�
n?y����P]�/��8�w�9��X�,^6O���������~g�I�d�X�$�?�b�SK=��,���}�>x�s���ee��ٝO���2��2z�&�0,�U�!Z�c���ؼ{���:-�����!�c��Ǯɗ�7o�Ĝ�s��ptrB�-HJJ��a�`ii��[c�s�L�2�9�
���9�G���ioo�:u�`�%<��m�/����E�ƍ�p�B4o��/�XmlF�}V�7���^��bK,�|k'��LW��X�u//lڸZ�`�T�V��lQ�
��F��`�BwT�V
��P���L�0�'M�Ƿ����.8�V �˖/G��\������l�pxzz�m$���%�����g2��V�ƽ��FÆ
0��ARRZ�$��؋��#D�"PBH�H�"@� D���D@�����Lp��?��B���vbA˾�c��3@X?�}�D}�'��=x
ߙ&�'�LΊ�^�/�K�%��{Ca�RQ\�&���}
��H̝��˜o>|}�q����ɥ5���_鄖�L��ĭ�b��\J��N���%��3�-�Ғ�'5O���8�Y���e�|���-
Hˮ���<g��V��x�Y����%7���sy�Q|����,�3���֘��w�o.+����f{ggg#tK(�;��={�ĨQ�������������FJ�I�{��[�Ƅ	P�Nm�c���8z�(X&o�V�xֱ�v]�42"����K��|�-
�3ߺ	�K��v�e��+4,�o���s��Ϟ�����N�����������/���/:��WHO;)*m��l�fM��ᎆ
�_gd�
���`U@�3�+����ROJ�n;p(>��x��L�h^RZ�k�T��d����s�<i2��⇎$(��O"�?�b�s� D���%��!D�"@� D�l�;Rn`ˮCx�>�7o���P��T��GL�����%��4����T��8��7ի�_StiQ�gW��,+�	�]'/a��td��F�o+c��j�S��G,�B$H��@�&�/%��&��(j�zl4���EOʼn�?$'_^�:�0�����ROHj+�Pţ�P�t|�e�&�P#�zJ��o~�@�t!�0D�"��	`�6� D�"@�(��>���8[�eײ…���'|y'�W��,�)�R���3r|S).mͲ�ً�#�F����B����)��={���ҲHk�������=��HH��W@�p)]D��W��'EC�Vzj"��2r��N~�+��>�>�
O�4y���)������e��� D�| \>֙fI� D�"@� D��({X�d۶mË����d�g����VP�%j�ԩM��_�_�_ߚ*��|fqQ�o9BDS%D�"P$�������lhii�e�m�����k�������B�F
�"@� D�"@� �'PVp�g���i�Ϧ�D�� \ZW�3�%�Y����n� D�|�H����q��/,�k@Q			صk�����t�7�ԩSQ�R��:!D�"@� D�"@��~L+M�N�^˗.�Y��8�0�:o|� D�|������X�d1:w�SSܽ{�A��׿���IK'"@� D�"@� �J��iCKF����(����m�+�ٛ���&�E�����U�qy�B�D�"@� ���ݽ{7r�s������;`Ԩ_��8��څ?�����<cw����֮�{:���v����fM����z�(��J�$Qxzz�Q�F;v,]�D�"@� D�"@�@	 \�0�+"��x��>��m���*z�c�u�!Lw��T�I��A�#:K:C���+
D�o�A��X�ׯ^q�a��vũ���q)ʸԆ"@�@%@X��={�Q�����>F��*U*��v=�����˗8p 444q��a<y��,��Z̜9]�v��?��{��z���CG(�^=��o\�_??��XC__��^R6 D�"@� D���I�p�\��F�k�AAAH�O���2e�v��GZZ2TY�
`�@N�q�((QF��n7���,z�-ra��������V-�	�t:pq�6'D�"� \�"ʗ��~�:���1g�l4j܈����k���bܸ�h۶\]\Ю};BG�TT>lNQPI����
6���#$��}M�"@� D�"@�@i @Xj�D_Q.���봴ί(�M>�Qggg#<<ǎCnN.�
0v�����%y�c�y�y�i��qcǡA�g�OR:�X�% :)��T̑v��ǩ�d�9�P��c����]��q:5�h�I�Zio]@�ˆ���ҵ;RS���(n�L�WqP$�E)�0�^Ȅ�)�|�
�S�u��D�"@Hp
��S�Na˖P��+�z�>fff�۷Ξ=��۷��E���1r�H�iۆ7W&�Y��+V��75�����t�"@� D�"@� %C��
����"PW�@Fƻ«���	Y��j/Qe{|&]���H ���F���q�8i"TUT�n�:4��U<�~*?~�U����kxxx�u�V�7oG&]J��e��	`p<9
��p��mdee�e�va���qe���\��+���<}�e˖�3g�]�.�Ι�v�Z���S�>w��AVV���4�3W T��B%/O�	,�o޾Ú��8~����F�s��==q��5��i��аA}�yuu�1�y&B�CP�b%�dcأ+�Ε�+�^,��#����di|��C,t���k�`aa��-�<������"�-�hf�\W�ƌAL�V���;��.��R�~��5k׊�X�l�{߇���u��с��h�PX��׮����&�p�<:v��n.�/��_ݐ4 D��	$�X&����ױ�}!ou���\�
v��Ю�-sf�*UP�re�௿�BTT4޼~��˖����Z�jptr���F��p(H"@� D�"@� e�@Y�L4YYY	�ҶR�i�&q� bo+JZ�O��7xa
�/�}Q��Դ�\�H�:���qŇ�B�+��{��j(D��T�i�5k6}�S\	]�բFE%�%��Y��X�n޲�7;f,j֪���u�����g�ѻwot�҅��
>$�Y�J^�6�=˽�Ѿ]��
�i��Wg��8�z��'�f�f�s�A��g�`u�*DE��sz��//�k��*�}����H�ꓝ�2�/]���,8::�V��1�q��.hס,,-�K/���G(��0��V�V8���������ca��6��~FC|���H}F�p����`cm�enPp�RO�>�t���@�H@�����`;q",-F��.��'�|�
��s�2�2���(�;�9}�L.y-,,�K��*?o�x6n���a�̘1
���wQo&jG� �	���ȑ#ػw/����������X�d1TU+`�!\���p/_����n޸���(���u��޽���#,Z���"�+����615���&o����rs�D� D�"@� D��ʪ޳{��	�B,�Y�:b�[���[�le3Q��B�!�j��Ҙ���t����+ߟ���Db��)?��D.��Yܑ���sk/}��xV6� "2\ҏ$S�2��t�t�/)��K3K�[kkd���11��˃��%*��!**g~?�M�6�,`�Ҫ\�Ǐ�d痴��0O�=C�N�жM�0Ї���d���ƽ����W�.f���**H=y��g��Ϟ�S��h��n�JB����@(R����n��x[�{�Ф7v�ރ�Z����;2G�����q41�������$�6B1+W�Z���a��i�2�ȴ/�v�B�Jx���LL����Z�OH��9d�P>t�`!+L��	A�jT�<X��f���ƞݻ�����o21d�`$9 ۺ�8���n�p��	�w3���$�K����#D��3$�X�̌L�]�׮_�7�Ԁ���n�ƅ������5���;wO�b����?��B�УnjF˖-�(�
27n�+1P�.E�. D�"@� D���K��
�O�.^�Bw���?�����+�Y�&��/��쬜�ѣG��t���#��e��z� ��x��u�`�ĉ��ۘ/VݮHMK��5��/���v055AC#L����`ԮU���A���������YO���\��<x�E�����E|ۤ1�̞�6mZa��u��¸Y\	G���	�"��;X�x1�߸�����ǷM��_�~p�:�����oo/�ر���֯��y�`kk���m���oo�Z
���+e֛�4
`�`�0�ެ�]�W���x��RRNbk�V��!B������ %E(��jVp��3�x�"~;����(�f���>���	`Ӿ�3n4�Y��]d������ϋ�p��id��¦�@ގg���#]z�b`��4x�	`%BVz�|{ �nQ&��ݺu���yv��w�adh�2{��t��G~��)�����WR���敚�̳�Y�2���g�H�Ή �	�",�w��P�i����L�%��1�玖�����W�0�	 D�"@� D�"�	ʳ�0q
��0�l v�C��52�9���+�0m��/�Z&X��˗o`���f�Ie�_Y?WX?NN8|x?�L���������ظ1X�]$D(��Ms��?��aHKKæM�&,�+O>nq�W&�N�&��qtu�`�ps�ر))�X�z�{`������g�!00a���}
��v�/,X�����%�<Ѱa}IIZq�p��K���zji�[��`��2e
�s��C���0a��^�x�"��ݡ��'G'ԫ_�V��mlF�}V�7���^ҙ�
�A2����}��2�L��L�<����A�C�I��I_����w
eJ@�[�*իc���TVϗu/���#����xƦ��~�;k,��/���4g���{XZX�����b�
���\�X*�WYIjV�y�i3���X�+�_����ɓ�U��[�"h�z����J@O�4	�戍�������-3Oɞ�R%�*=m�t��QXz�V\8w�W�
�#\Z?z(."@�@�&@�L/O� D�"@� D��@y�ݍL���TW��w042��?�au@nݾ���L����d�1|���j��u�22������l�O)��ۙ�X�:_?L�&%%���22�лo?$%�C��pL��44���QYCX�V��?�bu@���糶L�9��b��=��`�W3`6h0��,��I�PW��K��u
�5���Ą������!��`�<t�օ��Y��RL$�,c�E�?�]i������cǎA�"@Ϟ=1j�h�����`{���-^V�iӦ3v���[�͇ߏ|k8�*�>p(>��x��Շ�Nr=
��
6n��S�@����q��pDDD�ݛ�2�=}�
�~~8u*/_������]�jjjhܸ	�L�A7]�}�qs("""������a�ě��fm �;����W�}�><-µk��B�9,��F
�p7I;aIg��R�3�c�I�vg���
��򄥬��ݽ��=�x�������|�G�������������{��?�Q��i��hX������^��Ě�kEs"�����z�:ttt�p�|4iT_�y"�\���=%���Wc��n!:�"@�!��p�i�D�"@� D�"@�#��,�
Mp��AhT��W��Ĵ7�������#�B�H$��"������6��ݑ+P���Q>ܧ����#�Z�jx���~� 1�D˿//���{cߞݨ�%��&��
��,�6����⠥����!Cq��~�q(.�*.!�0��g�T+���B6n���񰱲°�${���CT��~�|	�Y'�K�ϗ��
�?� ʖ��^�y���O�/_Q�T�N�㬭\��ͤKc�?/r�'R�qC��W���tU�|%��_Q׷�u�ϕ���vD�"��	`�,� D�"@� D��rA�<���l1`�@���۶m�zLO�w�%�4����H�ر�g
�R�{��75�`��Tަ~������eo�"�P_��n���4�Sd�	����yY�aCc��]8r$���\˿��f�孳�,�m�V�8���
7"22��1���kԨ�`B��^�ҹ3����m��߱r�/�t��(sQ��ijJ2�Ξ��K���]�_?�]��3�7g6�7k��~�������Wr�$\r,�MO���,C**|��sf�C��g����Lc���撡�"@�6$�����"@� D�"@� 
	�g����a��%x��)���.0G�&���kprt���:�\�����ӧa��UH�?�K����i�54��ꆋ^@tT�M��nW������kp��'2:�22�4�	BBP�4�� IDAT�fM�ϟ���ڠ��>��M�y�]�6`���B�놴ԓx��1/Z�?/^B���ަ����W���$���ₗ�g�}�.�=<q��_�i�����q����T,���m�18|� �l'������Ţŋ��&�z�:/^�=ee�%/�hb,N���3R�;	�bB�.62:�(,#Y%�8�& D��2H�p\4
�"@� D�"@�(>��,��s,�w�.�*.��̧([�΢�^q_l�N��B�+��X�*��*~Oz����#_�UQ5YE�Gz�2�H����9+s��x�/��_��� D��&@���RwD�"@� D�"@�@�$Pn0[��[��GeK�N�.�*�7'{�e�2�+y�(q7���+;���*�oa%�)��>H>:�"@�(�H��E�)"@� D�"@�(�ʵ�.*�,�RR5_f허��,3H���*^���(Jӗt(������){�C��� ��O�{a�V��8��U+��U#(�J�� e�	�2�`. D�"@� D�"�qH�O:KY�+e�~��v��#�Gp̱�b��aa�?r9������Yq�y��C������{���U�Q�����&M�����+3�����'�K�KJ��=("�J������ʤfa�;�c�ʗ���E�c,_�RoH�+�J�/�;���
��b�ҕ�Y�J��>� D�?!@�?�L�"@� D�"@� _�@Y�qq�0d��"ዎ����U��R#"PV�lii�ܜ\l޲ZZZ2��2�~��9���O��\�x�+V�A�x��$=�evA]!!>A"�����	�%��x�<����BRܹ�7||�p��hjj��g89L�Z�
�"9Oؖ�Q�ZU���@�t<6I����&Ou�����d�����f�:ܸqyyyh��{�)�ء������		�X/SS�̜55�>NL:���ܸq��� �i'q�x2B#"p��UT���N?�����S��(`<q�a�>3x�ii'q*�7DDD��s���@�v�0u�=���Q�qR&p1�6jN�(H��u�(� D�"@� D��O$PV0��/_�ģG��{�*�V��S�	�O�N���G�K`i���ȋTv\]]Z�+c����W������Fxx8�;�%���Ǝ�A�X��{����aa��)S��}�v���BdT$RSS��.zzz���E�
�-����*VT���%����xDDD +�=�߿�q?x��6m��ב���-Zb����֮+�Y�yTt��������oޠe�V2mUTU0i�|qY���w��GZZ2TE���	v����#�X
�rw��d�J:�v�<w�j�cFZ)����{�K�'���qs��,N���t�	>N�������|��'�z5~ݻLĦ�Jǂ�1wwt��kK$&���7�\�ѹS'T���'XZY�cǎ���El�6�8��M�B��`8::Ȏ����BR�1xy{��Ņ�YU�'��Ӵ����: 77IG�c�ƍعc��8GZ[���^�n��"@>�	�G�"@� D�"@� e�@Y�e�2EKJ����lFIM�1&ߞ=}�q��ɴgq����I����u��aРA�����#�ZA&L@ժU����M����7oƁ���耜�~CQE�@ ��?��
��<�V��Y�����/
������wٲex��
yz�U������m���۷�n��׫�E�����E�x;&�mmm��]d���p��&8p�Wh�W�q�y��nj��m1����k�o�q�t����P�ׯ�x��쟳���9
���%��1�amc���y,GO$#2:
�7�f�(̟;mZ���.\���F��b�1��{��I�.a�՛w�׿?�M��10��Zf<&��x���b����m�TT�:7x��%�bg\"#6+�32<����%;S�D�"� ���a� D�"@� D��/K���O���%PV�͛0�i�3z4�.��S����Ǽ|4{�35k�B`�:�p�ʳwY&0�L�����<Ö�F��F����/J�t3v�mێ�7bҤ�>l86l� �E�DVQ�e ��ᨨH~HZ�:88���G��Vw��Y�gw��s�����<��‘|"I&S��ō�O��0������L��z�#��3g �.�t�%%��=x�)�S��}����u��@�6��{a����Ш��ή��\�"!�0��4Ÿqc�-&�С}�8�D���D�	o���k,�?�<�����xL��׮�=�1n�8��Ɗ�lgg4���cC�
M
6�ڵkQ��7J�LL8,�Ie��u�Rc"@�@Y @�,��H� D�"@� D�|2��.����s����H n�N،��O�&��*��|Ihq`L�����[B���=kk^�ykL/glei)���#>Oz�DtXxX�r��6L>�}g̘.�L�r��9��yV�t��g�x��VQ�M�-(�b-��\䝻��������:��͹�>~4A"��_��Y�fa�m����,�p�_av,�[�G.U�Y^3a<�;�T���x��z�8���v���m����
yy����Ɵ/!`���Xem߼͔`��F��_`ce.m�RS�!h�D�fdfc�ҥ�}�6֬	@��Z|�6J�3�n�d����"6&��f}�^99���eK(^�y���)��p��VjL�(SH���`� D�"@� D���%@�c��yD��(mX����u�|}|���^~Y>���ܭ�]�W��WZZ�/GGG<|�����V�"H����-M-ddd�����'O������K��ɷMx0{��5���~�=�<y��\�re��?��*�,v����`۶mؼ)XR�a�L���Æ�哼2�Jg�*�8�Ǥ1˜V΃J^.��N �18��y���e	�5'�WZ��+X�t)/=��
a����):�m���I񼟿n���9sЦu+�ū�^�{j���8�d������:�����7GE}J��~�4��$�qR	�/��F�"@>'���.�M� D�"@� D��$�K�RP D�Xʒf�?>�\������֭1عc�L���l�V��
`�y,��N�:X�d	:�o�Yn��I���0��o�D5��1Ǝ�7�_���g��?����}VX)gMM
�،俳��G��m�lѸqc,\�͛7��ŋ���{�������Ů���/_�E������
WW��mΞ��ؾm�X
㢔0V2;U��~��3@z�	�y�x;��v�HK+T��©S�ش!a�����X�`o�p!�v�
kK�^�J�*	3�UU��g��Á��.(�NN01�.�����m����p��k֢RŊ����}�ư>��nnsx��-Z��˗�����W�nm��8GZ[���bݙԘ"@J3��yu(6"@� D�"@� D���.1���O	�5|�d
V�\�1�����.;v�Ğ={bԨ�PUU)P��=z�����r�޾C�֭1a�ԮS;i�z��,���¶m��2cM:���p^�����\W��������ݿ���>���8z�(X�r�V�x���v�O���j��2��2n�x�-{��8W����M��/#G�ĸ�D��;�O�>8��寢�$%�ED��e%���X��~~8�<oվC{8Ϝ�F
�!++>���OH��LML��<jj*��|��N:zo߱=�����
���
>d���g�S2^��ϣ<����*�8%5!6��ի�R�
�t�����U�F�qI���w<
F� %A�pIP�>� D�"@� D��RO��
��Ԕ"�e�f�䬞�����\:�
�E���B�K��2��6�P���$�m�$CV��/S��_1@%�IJ&K
&=�x�a�9�OXE���Jg�g7ˇ�츲��ղY�|�2�*��8�ڋ�&F��:	��:וfE� D�"@� D��(���{9z�"�gh�^ZVXHU�����ceh�^�,۬8/Ccc$&&����`q!I�=WX{:^>	��J�]�x6��}l��M�x�L��	��Q����+l�ʎ�xE1��G� ��	�R�< D�"@� D�"PRʞ~s��41�H�	��\���=�w�j�ʅ�\��6��d��%B�0k�B�6.�2Ys��+ ۯ��R��~q�Q��Q�RK�p�]
�"@�(�H�҅��� D�"@� D���%P6p��c�C�`�ĉ�~�&��	�Z�#�G���+Ԯ]�Ǝ�O?����' 6&j�*��Ɇ��%B6l��aÑ���G����/^D�F
�>��Z�ĭ�w��탿n��&�����5�ps��MBHHrsr��၎�w���)P�����ѣG���ŋ���3�g�u��u�6��}�׭[hܸ1f����Md�r��P�2K�p�]:
�"@��BH!�4, D�"@� D�"��(�8G�
Cc#M�˹��`���^��Yn����Ü�s1d�`t��3�O�B���X�l��X	�$������q�t:"��WW��s'4{���Ǽ}|`ګF���C��sذ!B�E�.�Y\���psuÏ?����������$�`�ٻ������%��{
�h_�	��,����������g��P�f�,�O-�]J�Ia"@��� �i��l"@� D�"@� D��(�X�i+������� ܹ{���������IIHO?�Ynn�Z�]�t����M��ׯ�GXS��2��
4Cll,45���[XXZa�޽\ؿ�Ԑ��c�^HLL�J^./-�L.'����o
uuX�i�8�bc����7o����v�&\F�p	P���aY���}j���;���y|�R��Qz-�~���\�|"@��WH��W��4%"@� D�"@� D ?��,�y�e#�f�!��8i2�u���?`�>+�G��ƍ1~�X�mٌJ�ԹNHL€��55d�AC-M
.�-���{�.������Er"T��aB�(�[KSSF�
���Q�������{wő.G7���#�e�����D�-1v�8hk�-�~XX8�ANn."##
m���κݐ�v*l0E���?O���+
��n7�P�TA�PeIg@�tE�+��?�+��+�A:]ݮ8��R�Q�.n�%�'>jK�(%H����0� D�"@� D���K��<m�3�&MBݺu�m�v�ٳ!!�Ю[�>>�Ԭ�7�_c��L�(L�&$%aΜ9hݪ��K1G���=�]�f��N?�l�v�Ù3����FF&HJHe���IL��[&s����;gZ�j��Ç�t�i^���vus����!n�.�q�w�._N���.���/)�c��r�����h��/.����%�z߼e3���
m���N"������(�VW���N��X�.\ª�U��^&M��x�Ÿ@Hp�Qg]}��%C�<��,�/�"|n.�c��a�F��d��˃Uv�g�- D�� \N��I� D�"@� D��(���Sf'�2�/_�ƥm�J�0}�t�y�vl߆���ù�g���J@/�O?t�H����Cx{y��˨_�fΘ�6mZ���{X�lnݾ�fM�����5�!�L����#�,;8!1QWb<>z//\�r���nj�ѶM+ܽ{K�y��n7W4n�@��Vޯ��0�/.���6�6P�X�g�fef!2*����x�===��٢B�
�����P�6//��Y�Fu���;v�DTT�Ҿ����e��+�.�,X�6����q*5�gK�Dv�v�����d��Q~Lr�7Q�>{k��016��Q�Ɲ3wL�M`l�SS'eX~RRq�q��O�&v��$v�Gs�*��F- laPRq��t�Ԕ�2�$n&�K�ua�s�ٖ[2�}+�V�x�BS2�Q��K�Z"@���b�i�D�"@� D�"@�@y�r�@�'(��^�0Q��|E�H��R�~V�Ĵ��
��ҫ�(
85%+V�@۶m��}!6oތ����9�9X�n���1d�`�0�RVi��1b�TPS�����郊�**�[I��
�Nz�1�B�PIM
��.��]������L���}VZ���1VB�iJ+ڞ�'�P]}�3111��с��֫##-��Iп<�TG'�Ϸ�����%�=xl����04��B,�'�!p}�ܹ���L�9�J^+����s������Ϝ�vݺ�A�v�y��)\�;w� ++KR~� .,LV�~��@?~O�<����ݹ��z�Z�4���hؠ>����>f:�DHp*V�W���cas����f�$����d�w�?�Bw\�v
��3��KO��-ZOI�7�5fbb��8==�Ѡ�v�{H��o3�f�Z��Kց�w��p�`s��::p_���㱰��u��~�ΟGǎ0��EX�\��J����qH3%D��	�"���D�"@� D�"@�@Y&P�pY^7��|I,M�M�6p�6
5jT����?{�а0�d�Q<���ߏ�.-ej+n�ݮR�
?���r��`&���&����)'���c$�w��S�ǹ��~�g��uG��X���
0�����������"	`�A�bU��j��r�Er��.dm,�e�S&�Mz�roo�o����9H;e�����f�s�A��044�g�`u�*DE
׵W�~�2A��m����S6��K�!33��N�U�:?O��q��u�KDGE��ŋ��
`O+K+�LI��@�m�汰~Y��։�:��G����Y�i�
6��\�������l������^��(}��E"��v��M����&vĈ��5:h�Z}KQZo�_�������9�w�srf���=��������u���~�X^vqvS�D<�-����vǐ�C�ѳ��w��),]���Қ�|�/ƣ'��3z��wqI�9v�x)�|����ӧ�b���6l�///lذ�ƍ��v�[}k�7�/�|8�H��`;:]&      {$@��N�����E[e�y��pr��	��b����O���-\�0�C�¡�ln�v\T�Vu�u�51VZ@��A�"�,
puo��q�V��eSh�Z0���߇b�Ep?�1�v�轻��=+�W�����'"��Pܱ��
!�O~�^���E�����[�o�~��x�N4qwC����k-��h�w�ݗ�������CrވQ>�u���o�@���(Z(��f���K�����F���X�@S�ܬek��5�9Brr
:u�}{���\\�{ E�Bj����q�s����,-�nR�=�y����⎅� 9�[�BB�RlZ-�GGk��ҵ+������*�U��@�R�3�oѲ5�޵��E� �1�t�����mg7>z��;7Ww$��
�F�Ű��5�! ;!@�NM7I�H�H�H�H�H�H��	P������@v��ۚ�5����
�/_�G���+W�پ
<ƺ�����7�:ު��Nִ���E��"��k����2��
I�g��AO�_CXS��k׮a���g��Z��� IDATGD�k�1�g�~ũ8˸�;�U����g���������XR�<ņ�5�*�g ���х`��w�D���ZS�
��g���8u��;�ԧO�i�9�k`E��Թ����&*ru[cg����4%H��]]#��!Y� �)�7k&d�R`];���lBطFV��&���*hQ�,����|�*�9�H��`��;�&      �#�;`�믿����U�

�ݻw7�0���A$�c	���Ә={�<�w�� DFn����ˆ#P�lY̛?���0��ɒ���kn�1���֜���\#p��m�>0�U���:[�j-ϥ}筪ZANi��С�,㨨(���I|��thM�����{O��G�
���?Mz��U+�QI\/����t���\��T[O���ai�_~��)��=�j`c����g��xɒ����
m�-�E��=�J��~ƸXj=j�8���<�922'O��/�/���j�lR֩�5ՒZ���^�&���#c�v�:)�
��[��6l��#"2�֮�-��K�����ٽ;�����.�\uű��lc���k=f�8ԫ�/u��H�z�V~����
��g��%�޵h	�	d?
��Z@$@$@$@$@$@$@$�
�>X
e�֭�{��_��ԧ�FI�˟���ʖ-C���x�r�,�aÇ��X�n-
,(��=���)�]��l]�l	GW�-�M�5&��:�Z���+���7� 44)����m�+��������d��@��C{�yիW��٨R��Ex_����y�*|�F�"&&���o%-6U{~؏%~~2�v
D��jժ1|8�\��~���֝��[���I�w�/8��8��)���V}#������f����0�V�����p��
�ZZ��ߗ1g�\����Y�:fΜ�*�+i`���Yߘ�j7)�:�"M���U��[Y+��}�̜=G�'&

	AܑX�gl�a|�d	�>M��.]�D�`��C���Ɯ9�Q�b��0f߃���j�j���x�}����jԨ�Y3f��*��¯��8��ZT���E;k�M�˫�q7 �U(�p�X       ��ȭ�������~�$��H ;��!�6i�,�Դz6�Q�}��M��V�����5�cƌ�S�:�Y:�����խ�Qc
om:s�22矱�,��Y/s�Y�Ӑ��˺����]�5��ŵg���G�qC B�7g�t6\:C�l[����z:����k��8 �C��0�t�H�H�H�H�H�H��@���1���P΁QV�+`3T�Zc�)aS�@�隆b�5�s�s��E�0P��71m��sz���x���u+Ƴ3��& 0I�0��H�H�H�H�H�H�H�.�t�w��v:I�
?�R{�_�0���}Hr���AXu�NE$@��l-)�#      ��(����x;&@؎�O�I�H�H�2E�p��q	�	�	�	�	�	�	�@n#@8�E�����`f	�	�	�	�F��m�8�H�H�H�H�H�H�H ���KG��`�O0F������ΤH$@$`W(�U��,	�	�	�	�	�	�	�/
��{z��	d�ܣ{	-jk����^%٧O��w/�Y�vYcCv�n�������-�X�j��A�P�|��,�;���*�� ,��;�G+I�H���
 s       ��'@8�c@H 3(��QΘ=z�v:����e˖�f���7o^f���Y�n��G�,�g0J#7tvE�JU:p,��=.N$@����/ZK$@$@$@$@$@$@$�I�3	��H �	�48"2�(R�:w�۷���0}�t�)[ׯ]ǢE�p��5t��_�5&?DHH��틒�J�u����Õ+W�i�f���HK{��5k���KV�޼y�/�ku��	QQ�dQ������!>>�R���C�� ��"��b��"6��셠�`.\Ç��S]��㼴��"=-5j����P�r%�����"<<G����d�z�]�����l�����hE$/P� ��B��|��,\�W._�����v��'�ܲ={j9�t}0g�9~���.4�ڪ�m����ٍp6ߧ�=	�	�4�sZDh	�	�	�	�	�	�	��K!@��`�$��	�4X���@�=����G@@�`ǎ��˖KQ��aä��~�z���=z �R`lӦ
*��ӧK�W�$c��/ޭ]��s���/��:b�<M}�|��Qؼy3��ރQ�G�Y�3i�g�^�ҥ�IX�!_�|<x0J�(�%�/A�7����#G��b�
����̙�ڵߕ6��o˖(|�m��*�w�/jԨ��s�ꉧzb�	��KӪ;�h<�/_���{�f�2k���?�>�����֭]���N|aYW�5g�9~z�o�2��*X,��Q~� n@$@����5�L$@$@$@$@$@$@$`3
�6#��r��eP���0p�@���k���^�q��=l�r3���e����q�F/Q<_��U�Ģ:Xw-1X죬���;���*^��߯�T���˖fXWWPT~�,X@VA8""ʚ�"�AÆR�U*���7j�(�s�鳣����*�u�V]��Kw�:u�g��*UR�1FC�ݻw��*���!N�`s���'�eai�U>
�Va�  �G��1��H�H�H�H�H�H��`;:]�r��Y��R��%j�����Y�l	�������"W�/�v�ZP�rV��s��	}��W.�y�K���k	1Y�#^�Z�^����^�E;��`�}�	`����ODZi�&Y,^�Ŋ��k������"|vp�8���X���Lˬ_B<U�NN�0a�x����t�
�����`sk��'�����X�>�����A$@$`�(�c��3	�	�	�	�	�	�	�!
�vt��'d�<t�PܾuJe�8/v��7ʔ)����B���}��*ϻ��[�Ϊ
`EX6l8n޸���jo�3z�K�Q*��>O�<���!�k�G���+W�9�
0kk�Me��W��ѣq����V6��o���~�:6mބbŊ�٢���x���J[11�~��k� 66+������ҭ�6�6g�5��'�3����X�>�����A$@$`�(�c��3	�	�	�	�	�	�	�!
�vt��'d��m�6yfo�O>A�N�!��8hڶm���gi���cԨ���[���Čg9[Vh�AH~�K������-QQx��	��+�k�3�?~�
6Ș
q82r����V�lY̛?���0����n��x�b�>s�gφ�&��
+`Ŋf��wl߁!�CP�jU̚5իWǼy�0n�8\�x�&O�ݻw�q�&Y�l�Y�Y���ӧԶ��y
2��'��g�z�+��ٜ}�	�z��#c+�*.0�ڪ3�U@:�4q���⏨��ś|�	�	�=
�v�@$@$@$@$@$@$@�A��}ę^�=�!���۶m�դ�<�ҥ�@�6mѶM٪Xt�н{w�ܱ�ʗôi�平��s����|��]:�*Z�2%x���"8$D�����h�"R.V�S�NӮխ[7�VZ����HK{���Y���0�kז-�˔-�!	���q^������o��6�jժA�X6���&y�=KC�wߕUѢ
��_~��5ke�8�844T��+|�m��mnC�2������}�]�4i���…d�w��]���9��=K5��9~bq�����-c<e���-
�񷡳+�TB�UA�t��ӑ�G8���	�	�L����8�H�H�H�H�H�V/^t���'�*�K�.fu�l����E��3�(�RY_�xq-����= 4��$�?:�o�Ȗ�%K�����ò���1��2��E��n����� �
8G��F�	�@v����7	�	�	�	�	�	�/��	8�I9�`c����R���a�Mm�ϝ=�ɓ'�歛X�r�6m��#���(�~�r�,p�~�F^s2� x(��\�H�H�H�H�H�<
���(�����?��A�'��`�6�E
�| �(;::�|�vla���8Vt�H�H�2
��q	�	�	�	�	�@	P�"@N'�@�0���4�N	�D�NCA�I�H�H�r	
��$P4�H�H�H�H�H�H�H k^��(l���p6	XG��u���(�ű��ذ履�s+C�s�����~�v�-��E_�n^��/�O���wV�l��k�����4巉�)gW�r_       �WJ��+���H����P枅T�����{�{n�pH����;(o�o�[j��}ӵ�0������n��Ο��kM�^�}"�y���:ίj��Χ��i*��	�,�G$@$@$@$@$@$@$�#	PΑa�Q$`�@v��΃}�g�޾}C���lP�Li��^��/�
7ϊ��:7BB�Q)��WgW���#1!N-�j�߆ήHS��J�%y��Ē?�Z��Ҭ�;Lois�U���t̘1����BE�"�k�(��h��'K|�]*@��ήHJ��\�l��-c��,4�Ok|�ņ1�T�LU�ۘ�L4W���N���s}��AG�������-3u��J�����~e�`��`��}��|C���6���
�\;�X�[����[�,)�ș30�<��ݛ�)�f�&��,��e��Z����X�OM;;7Bb�Q���L�`k�1$@$@$@$@$@$@$@���\B:`��QNJJ��?8+���3f\]��X�n��G#jk��}4���z��Q���C�		
��U���Y�r���b��nHH8�|:_���Ղ�[�`��'=�_�Nj
b=ݗ
��K�:����o�r�����hݪ&����զOp(.��9����t�(���͛��%�8�;wb��r)����JO�_#@��s 1�H�*��q��";a^+Ș�"!�h�c9I�E��F(��Iz9#T��_~Ūիq��y��5k��#�z��=�c!8$T^���u�SY� 5
>b~����`]�&���{pk��z�_�����l޴>�l�t���ߢek�ڱŋ;j?����]�����X{�+��������9=�cyfNX֬/�_V���'����P���	)ZNu�bĈx�ZyQ��UHW�
*�Zq�~��xhX'$Chh�����V��r���!8�x���Xݪ�둸�8�����> ��@�!���x�:�w�/qU�g�	qh���Q�зWi�X�:I���"`�6?M��<�X�RV~
�A]�t��ܸ�*	�	�	�	�	�	�	�	d��L��4�f9Q>��y�����"=-5j����P�r%<y�a�a���ǣ�Gpqq��!R��ݫ7J�*�֭[㫯�#<<�(���|��7hۮ-��ރv��a��r�kױh�"\�v
]�v��_����eR�>��w/�^
F�…1|�p89ՅR�lh�I1X#�5tqC���!,4TN�ݧ.�y���QgAca
���X5�
�7��0��hD�T	��/��Ӧ�e��h޼�<��#!�������cL#���!!�f͚-G̙5nn.���ü@�f�]�vmۡ��������#4$X��ѫ7f͚��j�Զ�vvqDZ�òZ�4�(�$��h�-B�6�\4[eh�m,���Z�wqvGR��^��P��B��jc�2�e����=�\)sLU�Z�3�&�7c��K��P��1r�h4i�D;x� V��cϷ;s?_���&�~�(Q��~�LTt�0OL۸9��/���6���?����ƜSm��ߺ�����Q��(]���mc��p)U����O(yڷ�@̞9e˕E���s�׸{�.�b�uZRo�t ]
��VD��������W^�x�G�Ĥ����_Ѫ,��������u
`�t?0j�xx��zᅬ��4���bӆ
���i���Xw��9x�V
���ˬ<z�8͚�³�4���k~�Ubba��ϵ9X\����_}��C��mQ��h�ʸ����9B�!��"G�K��H�?��:��]㭷�!Bs���^��ģ��(�e�s�Py��ߋ��@���H�H�H�H�H�H�H��
�y)��Ş�Dx䈑R�]���?��9sP����>}:6o�,E[Q�,�D�f�^�ХsgY���@x��6mڠ`��FC)�9w��.]���ǣz��X�p��|�r).:l�Ҟa����}!�Z�;_�|<x0J�(�%�/A�7����O��mqm�ݵ����:u�H�����!"<B���.]�\��;j֨�ٳf�r��r/��,]� kGEWؤ����[=�X��۰�Ψ���U|��/~Ԩ^�ǍSWB�*�\èQ��-jԂ��,l̞1��һO?L�6
ujג[�:}.DXȗ�w�恵�֢�%����3�����$%�c�pnHJ8�\�5��!!^�rZsͦV�`��[w��??����a�ԩ�[������W0k�ȉ����!AA8�����]��پ�z�R�RE�B��퍐�`���[�(�T�E�:�c�~���+-��Y�MUT�T��0��Q�`!)�5k����kѪ���0���߯�QcƌƲ�{�6��2[Y*\�nj����ٻ�V>t�""±y�z��F��Ѧu+=��d��R�kf�����S�����I�����y�?7�`ذa�a����=�OH�]]��q�6�g����-���;g6*V(����?�?�lق5j�w�T�PV�3w��q�6.\����*s�]L�<�	����e��3��6v�܁��g��iS��^���}�������Ɯ9�Q�b�&��O��0�!hۦ�V�5z��hw�.�$�pHO�U�z�S6��4�+b�,�{�����s�vD��	���l����5��L<0�詚5k~���`��۶n)�b��[��X�v
ʔ~]�K�Uܯ��B|}w��� @qq���bo���
����;�<�^�[�]������sGb�+��Z��� >�	Gp��=����ݻ��XlO�Y��$@$@$@$@$@$@$`�(�s��{n&�`oooܹ}GV�6h�P����痘�kB�����J�*X�l�Vdݸq#��x^ɦ�g��зo_/^�-�a�e�YPЗ(P�{
ƽ{�����Rt���%`k��2(���YDD��oQ��5RGܹcf̘.m�7o>:w�"��&���	==z""<gN�Ʋ�K�Ą�b��`t�	��D�E�Ɋ�L��}��T��=y�fϚ�owmW��/ח�X%��ݥ�RpvC��K�
�2eJ�Y�&�4�E��i
.�[|���~��E
a܄��?Ɓ�,V�5i���(�_�$V#��<us|����'X��2�U��V�0Y�(�4�-�������n-�:�:}6�7F�f�����X�aa���	�P�n]�����Hl�
���ND�z���e��%�K-�����C��U�:i�\S�-��4�ĉ_���ڮ'�X}ְ��OJ��"p*�P�!���D��x�]�;��?_z��:���?HF�>�жm{|��;����bE-
��L̓Z>b$�\�,�/W���b�2hҴ
���-x�����0q�T�\���.�M̫\��'?��7n,��\�ՕJE���t�h�GFjR? IDAT[-�nҔ�po�T�w�0͟����!C�£g)�9u
~K�`w�8���!;#�v��-Y�͗������3�޸	�5k��"wW�#<4_�X��o�)c�����C���?�wC�`���U����
�����<u�W,��\+W��&j�[���x.⚪��j�4�"��P�V�����~&Z��[�J�J����Y�rohEVqm���P��ѫg7�q�<0���ʕ+!`�j�+[���ĠA��u�<z�����rPs��&MZ f�^ȯ��i�S�k6�S��]J%��R:�-�e�(�v�܅ӧ���_�Ν;K�.��X�=��ߺ�;w�څ1c|�5p ڶj.��
`���g       �<K�p�
-��r��Y��R��%j��t�6m�U��%���777���[�b�}�v�!��E֨(m?P����ϗգ�����V�Z����B�/QM,^B�jo����o�`7$��̙�VǾ���T��h�_�څb������N]�`���œ�F�������c3��k�bզ�!�؏?c��������T�/����V���(�X$C��g�x钬l��>>_��d�S!P�
��K��Gh/�Y���s
'M��'O�~
^+^,k�0.-�E�Uwcݐ[�n����k��LG>�S�Ug�~�k'��A�c�n[��Ьek�Z�0_�ģ�p�>pŊ�,���el/\@jj���<��rsKտf�t�i�nE�" ��!�@����n�M�wPnoJVZ�M:��>>X�b9�|h�U��F��������!����H�:}+�/�{�f�۷7zyz�DEmE||֯0��n&�]������Ə��6��"~"�����U�زm�\�g�nط�;�˯����GGk�K׮��=r�������c�O~��]� z�ny�T�x�U�v�'sW��砒��%j+.]�{��+@��O�������ȼĸCڼvw,��>ع��^c�;$[[�
��n.z"p�<�y`�hh�P����R������W�bSP�<~ɢyڏϩ3��
�m۶��8������g�t�2��G$c��pm����E��ȗ�A2�-6�0��9X<�a�����A�1��,�LT�Μ�7S�p�+�u>��ֺ����Kc��P�.�4~���`�Ǚ?�	�	�	�	�	�	�	�e��rt�[^&��СCq��m(���o�Poo�)S�Vkq_����CdD$^{�5n��ѣq��Uy����}Y#�~��w�2�:uB�>�e�ɝ;v�_�~�С��
`[�~�����G�����}���s��ݻX�dD�����F�0%p4h䎣G�g��V�	a���;�˖�ʙ���;�1c�������e�f��/q=<"�\���>���Pb�T�{���tF�>!WW@5�Z�q��Y�_`]�=<�f��-�g�񅋋�����OL7V�]�^S����,��f8343���7!D�j��w�D����<]�X�a�e�ZF�
�E��5&���:���ӧh޼��g3+��u�A��x_f�%���F!��6�����x��M���-���]�a�E�:y�v�h�ll�p۽i�޽ŋ���)OЮ}{<�ݺ�DHp�),mMNy�v�:�`�~�(h��bc�K�Wo��Ű���۲u��-�U@ⱟ0b��l�����?������U}X��?�O-��O��[��;v�H��m���q���χX�`�/X��؃X��uj�@�yb�����P�>�6!�G̘>�+V�:���0��5z��&�3{?3<���t���c�Knb]���Фqt��)�fθ~~�L�k���'�=�bE
H�?|���۩�3%,k�P��_`��1��~�,f݊}m%������{��.��:�_	�J��h~jn�b���5gMx�����X�p>jUG�V�b�J�lm�!/]�h�x&       ��M���&�I���x��m���B�O>�Bldd�<�WT�m��-��3�1{�l��^��>�P�V�X���-��W1bʖ-Q�+Z�N�l�Um��3~Ǎgg$&&b��R8;;c�q��[���D�g۲��ܻw<}�D�Y,��U�F_:�r�
*�;n�bj�؉�W���P�N��_,_&��28�ѱX�v
5��ż�b�h�S�t���\��T[{n�XS��ԥ���S��B�Y�h1�׬�M�6��J�ϧi���'V��G�
��*�����K���2?ukb�2<�U��c�~�̙���gς[#g���a^�S��.@�������|��yL�>MV�
�X�|9�z���ŵ�t��*\�¼���Z��U�#jQ���"YS�g��xɒ���
�	���O��S=�;<r6���aԘ	pz�}�|Y�|���)�U�X�x1j֨�͛6!44��I���κ�o�o��T�70)(���S~f��\e����I;��7o�Г&M�ߒ%
	B�7JYl}��<�^�h��ޞ�P��ĤDl
\�U�V�`������|�d+脣�4S,����<�JW�7.�Ǟ�ǜS��3���+Q�dI���W�b��MH~��Q�~?��S���]��'���Ehq���� ����~����3f�F��JA�lVrW������O?L�2]>n�Ç�0a�d�ݻ�/��F�)�hU=T�N�ZiU��®��+���u� Zj+���ϭ�֬e[��;oU~�P���ϖ�-������j֔��^w��Y���~��g�ƶ�Q(�Oi���>(.M������5k�c��~C��U�_�B�
�*t��QH�?j�X��w�<�k��?��6��A�OQ��{&���*Õ��r��=^��'�j��,)����~�)���>�~�G}��/'~��aӆ
�
�/�\�H�H�H�H�H�H�H ����BsH�J�!�sxE����X��u��o�M��hۦ�T9�q^����dշ�~@�j� ���#dep��Ԯ]�F��e��?�tnݼ�իW�97o�İO��7�ڵk ��,�/� ը��X��Xk�ކ�����(Z���YY�h�4_Tg8[Us�c|B��x�������Q�Fu̜9U*WҜ�)ΚT��J�}�jR#��wTj��!=
�	q�/����K����}��ŗ���\S���~V��#5�����K�TjELLΛ�'��/�5gb�d��k#>L�^V�.c‡�2^�d�G�>�j��&�CA��J3nG�&�ԩS:d��=�|����.�:�5�n߅Ç��~qHSe��vV�Z����X%̙=3Xܺs~K�"11	���՞
,l�x�l~��C�~��إ�᯿/c�ܹz�R�r%�u���~�'+1�={&��-[�Ą畵��O����z~Ʊ�	Y窓���ca���FH7��=�ϗ����'��
�%~Hд��<�3�S�&�����8���X�x�EXlF�����-]��'NHW���Ä��P�R<~����{))�T�	����*@AS����y����g�7�ރ[��V��)*��ϟ��5kHΞ=���g j�)<�!�Q�m̙3�*��S!��%�^��l�\�by������;w�t�&w�����$?LA�-��_�|�7��S|ҭ;��f��u��<�#Dq��Ԩ������"�ڶm'"�D"00���3����!ҿ��z�����J/��	I���ΝE���ѰaC�9B� �a#F�M�6�Ա�ѳύ��&$"P�yN�f�f�7^���JYI�0E�\'���3�'q��Gz��A��HgC�"��B��x��5#y��
/>��c�	��/��
�իe�~m�s���|�L��s�y�{W��CB�ׅ�9c:`+���a$@$@$@$@$@$@$@���\@�o��C�-�>L����Q�TI�_��՚m�u��F�2�?����X͗��4�r�-5�6�ol�C1f�ԫ[[_ذ��bF�3�Ƣ%��tH�k�����1�o��tƙ�C�v
���ѩ8� R��fDlK����)ަ8krE��%4kf�?3N�i*M姵�L�3�ˠ@Sw	�i6��D���F�2u:�͛+�յXi�[c�+
Z�kRR
y�Z��p�0�������0s���V�{���
���T����K������Lާ��fL�y��л/�z?��,~�1Jv
��?X����`_s�y��R��ҝ��I�H�H�H�H�H�H��
�y!��	P֏��y�p��9L�<7o�Ī��дiS�n�̗
t�(=چ%^�PC�”��6�i��(��u�/���<df��׆��:"��
��؞���K���|z16%(���̬�Я8�#      ����;w%����OP��t�…��ӎ��YEm��s��Z��ڞW�߫β��ߋ��������Yy �E�ڊ��'7��9�T����,��E��N$@$@$@$@$@$@$�;P�q��$`H���~ѝ��y��1�I@x�y�����Q��B�5��
�V�a���7ȅ(� �d       �	P��g�@N `�pV[z��V�Y�''$m�y����^���<�=�/����p	�� @�@�$@$@$@$@$@$@$@9��#ZH��:ؔ�����a���I	q���̥�
�:m��E>U̚T3�pA��MH��y�����u��챥��)�Cdj�%aͲe��0�Gf�(�g�?+�~��{,[�ܿ��<7$�y�		G�12U֪\�
��3���\KIk��m���$@y��<\�F$@$@$@$@$@$@$�`f	�N�J�h�ba�_��?/����5p �t�)�!ˤ�.p�{�=�5jh��* ��|�?����V���йsG4tqCB��3%�eG������
�ظ~������U*��Սm��'�k�/gg7=+-�q���㧩�[���@zz:Z�j�	�Ǡ`I##_ͼ��� $$��v��Q��1j�H�-���˯X�z5Ο?/׬Y�F���뽇��r�W��k#GG�zu���BCC��/'P�h8խ+�S���8�Ls��e,����_�cQG4m��G�D������߼���5HLL½{���5ѿ__����`ņ�:u�~K�V���稥<3�چ|�$&Chh���x�ZU�@��"�J�(��?|g6��� :��CBe^<~�HrLL�3��^'�+��*�t�H�H�H�H�H�H��`��==���M�L%�
H��g,\�ӦOG�wk���ؼif͘�_1���Lş�$Z�
�2)��S��^��b�
H��ؽg7�̘j���9��_��g�M���7�vm̟�.�H�?,+�3T�����آ[��;װ������M��ٴ�h٢Z5o"E�.?��QWtvqGB�a��YA[#T��!!�f͚-�Ι5nn.���ì@:r�<<z�_��i�i���‘#��ic �w�Q�F�I�&r̓b�J|��Nt��	b��U�+���3vzy�B���GZZbbc�y��j��8���`6�{���ѳgO)F�+#�3^��2�{4l�O>��q�����/�>��(��vi��G�347�B��勑�6_|ƌ�g�ި����,-
cc�i�|�UT���͘�wk�€>P���5f�f���k������ϗ`�I�_�J+,�(�V4���<�'x	(��\�H�H�H�H�H�H�H ����bB�H��"����b�…��q�/WӦN�S��+���D�Ш�Z�Kсnܺ��k�,�iS��^��Ã��e%�C�q��5��UQu��n݁�����
�>� ���+���s����5�c����R��v�n��að=*²�zC>�נ�h��P�+�
q�	���
��IѴ��v����퍐�`���[�h��ʕ*j+r�֫�jժ���_��Ǵ���<�q����\�B�֨-(��u�N�p��PGV��={V�J��}�a��i�S������2G�B�4�[G�T�"��SЮ}{�=���w��Z��СC�����1`�z���q����M��ϳt����������d�lȥi��س�;)\H���)2��ںŸ@��ҢUk��rŲzB��2\�_�˟5�W�qce�x���4��Q���n
������֝�~���L�'�HL8�MnX�/
�A�T
����������3۷mC���V�[���;�#<4���ѽGw�i�J���v���H9�H��P����a      �O��3��:��XTJN�>��Y�f���q��_��`�gߪ���rJ8��W����g½q4k�Ǐ�*�`�w�b<z�>�G��%��%!X�ڵc}|0h�@�n�B{}�؉�iO��R<s�4�/]�����t�h�GF[%��I����(Q�Q��F�V*H����ӣ'��a͚5�j���Ryۧo?��Va�$��k��eK��9¿�7���6l�"a�h�q�TH/_�����ӣ��o!D�z�u<LNF�2�Ѭi4E��բ5����kB�v,ZD�_m5Bg�a��ߠh�B7a"|}�CǏq ��-�5��w�8�A2fΘ��W����W�\�ە+_kP�|\�rM^�|劼V�|y�b��*Z��ШT�T���]��[@��"*��\I��ٳg��@Hp��1)!32j6n�(��߭U�����{u��Z�3
8q�W���׻�K���EC��H�WW+y+�P
�:�ٵ�b�)�����z�ݚ��ݜ�r�J4*W���իQ�li��b�	'�����ѳ��E�����z�j�+������yT�<Ny�zNN�8a�T�`�3��o��H����@r       ��M�pΎ�#S�KnѺ=�޻�9?6�w�fX9�V���u;ܓk�_�TH�;$nն��#P�Tq=�WKB�*_��\]1y��sqI4k�;w}�b������N]�`������K�8��@L�) �9W��8wH�'D-q=��+ZP+�	;�ٹo��Fђ�H�a���#.�0��[^���8�����<��E��H
���t�������d�-��g�x������/4��X����(��#���^�-��-���b�����_X��ŋ;�g�Dԩ]�==d����H�:}+��a�	x�Nm���DZz:"""4זi[p���������d�<������������3�.���{ȳ���7)+���{��?�,+�GG�'����O��_������*wO��T�jbQ�~,^��\�u����3�V�
��U��=_�/PSO���ҕ�2(H
����~�~=s�?�۷nE���-���p�=HNƢ�s�޸���-�.�;QQ[�������k�H�tPf:�	�	�	�	�	�	�	�
�vf:�	d�ܪmGl߱E��Tk[{yÐ!Cа���n�p#1�ڴ�;v��h�YSj-	�Ç�7�va���U�m�(���ɖ��:w��}��7nC̵��hA;d����B�MH8����m��:���s߾��ȕ�y]��p,��g.�zhD�]���>#�E7���w��s�.�����.ָ��!:w��}:B�n�k#-�E�N�9��Z@���Y���_1e�4y.�ĉP�P~�nM[`��=(^���=t��k��G�����(ZD]M�0�ڵk�ؘh�3��<�_ǎq8f�67�$%ʽ�1D	��[ IDAT��?�~�Em��M�mjq}��}t����Щs7�;���x��)�7o��2W�3�E�u+�;v�cƎ39O/�t}Զw�
ͺ!�-_:#f�F�%Y���9�}�a��w�.�C+� ��cc��[��	��=YƽƘ���}�.�	d��3�
$@$@$@$@$@$@$@���\$�HFd�<}�/��,����(^���p̡#X�F�[��ڸy�:w�$Ũ��f��k� Z(+k*����.j1��Ģ�?Ǧ��X���5j�8��><z�DddN��+��+D�+��q�{̙1�rU���b���+��gSd[�۷oa�̝;��Rآ�m�l��/�/S��9�טl*B�{����==����+�{կl1�ܸy�!��|���-�\���7n�FHH.]�����-��Z����ر�0s�,9��Ypk�>�<�"��<1�={�f] F��A�f��\�xy����==�R9 4<���شa������3zy��J�BXx��q�zL�<���G��5e�����ٳX�/�B�h-�������{�رcX�bL�8-�75�;�U��g׬���b޾c;���=�B��Q��X�hj֨�͛6!44�*X<�p�b��
�:qo�y�B����r�c���з�ԬY���S�>�V�����g͞�m[�P ���d*'OE_���=wkV�c��(X�0<={�!_>�
:�h<Y�ߑ$@6�l,%      Ƚ(����r�&��Punݹ��K����{��J�'1!Ϊ�=w�!�a�z�
*W�t��w�܅���5�A�(*:>ƪիq��!ܸq]�#H�ݹ(B�/��p᯿0[����2�̝���5kT�̙3P�r%� �.p�q�5�N�W�1�d����O��Z	��B�����UrPfC�S��:£1;�T���5U��ߺ����0s����y���*ъZ�����A�2eʠQ�F1|8J/�=;W�� ��6r�����Z�bf���OS�d�2��x�j��&�C�����WW8V�zM�H��Sd��>��q��g'O��k:ի�	�ǣJ��x��ɓ�kNN�Z��p4�6n��sgQ�xq4l��F�@�7Jɱ��Gk�*To��6���V-L���<��:���P���Yut�Sݺ9rުV�����L�^��l�2$&跀6&T��>�03�T�)����u��i2_3�/�P��#���ΝӰn Y�~�u���ѶMt��N���������
bM���~�?y
�U��=����p��I��J���W�'0 @�)A$@$@$@$@$�J\�|�o���%��:E�
Q����E�e8��z�����/]t_�n�BBB�_��R%K�~���P�B��Wl����[���!%%%J�@��Up��?�y�Y��ުGGG��[듲���wT26���ƛoV5��.�"E���w��0�벵�x(X5k�Ўy��������2�3��ෳg�noU{�����U��E�p�
�!�	d�,��i��g�a+WCOL�3屎Hj��8K�4�N�:��͕�
ghlnCK~X��L�[��o�?qy�`o�3Nu먗4hl�>��,�ej�L�f*�,�7�);�	�.��|7svjl4�V�glϗ�/��ǐw&>F�Y�G����H��"
�y1��H�H�H�H�r �1c�b�֭,���W7W̞=�j��^75^0g�l2X;�����+�ʥ���Ğ�ڷo�ys�l���Z_�Eغe��4r�[�m��8q�$Z�l��� ̝;k׮3���P4m���[}RƇ�����T��[�j�E��|�rz��r.X� �8���ڵ�/���R*T(���(Ǭ�7C���1k�!��9���z���z)|:�S|:l��S�r�&Y$@�"" �I ��I�F�ž�$��k#�3�;8�%��     x%t�ƢE��=��h�.]�
��šX�b�=[`!|����t�I!F>y�D���U�"&&�
�y}][D��}{��L�2ڵ
�b}`�����L+H��Wpp���M���'��f���x�".]�,���7�|�Wm�yذO1}�t�]��������`1(��
�
��51�l�����m�J���;�@��og�b�h�y�@��Uۯ�C�Ml&@�fd�@9��,���Wr:	�	�	�>�s_�h1	�	�	�	�	�J��X�RE$%%I�<~�իW˳��kݺ��С��Yw|l�>,X����ϛ7k֬�?7n쎙3f�ֻ�"�����a���1e�x{Ѯc��"i#Dn٢�5�u������	�[?�x�h;jc�է��   @.տ_?YQ���
	���>���\]�%jK�ŋñ�c(^��|�G��;zT;ޒ��"/��9+1�[��o�s�\5B��(鳨
^�zZ�j%���+w����G��`��=='  �
����Y$@$@$@$@$@60&�%���ШQ#��8�n��gS�
���u�֕��u����ߡ@�z�Ν�]��Z[����訑#������`[}JMM�����u����ZO�l
�CB�����C�:��8��g�aԨ������б�KK�����K-c���@�g�ܴIS����lذ��ճ1�9<����#D�H�8
��   ��`�xq4	�	�	�	�	�@&	�t�m��1c��*��.�V}���h-�w/]�r��/y
��B�K��tm��:,�m�[�h��`[}:��)|Ժ��i֬Yz��
����_��TW/^�}����t}+\�Ο?�7)1I�y�w�^���E���x�g�4+�-�!+1~Z#��ѫV���O�*UвUKx��{u߳*�8(g����C�H�
��
   ��`�xq4	�	�	�	�	�@&	(^�B�РA}����歛8s�7��h��?Zu�n��C����K���ڵ��BsgV�ꊏ��=>��#\�r�ݽ���k�N�<��-[ ((Hok�GC�m�I���ҥ�\fM@>��qW�\��֗�O�6
Æ�?�6i�$�?h�@lڴY����YUiV��|cAӍCVb ֶ&�%�����Ǐ�4f�&NT���+���{cG��`��?�'  ��`ۙq	�	�	�	�	�@&�\+W��zg�*�K�(��#F��X�xq���O�w���l�J�<i�D���Xe�������;�nݺ!5�>��<z�"��%��Ӆ���&�6%T��Ģwu��U�ХKg��غu�l{� �P�p�/-CQ���5�̷��@8c��8}��}�������葼�g�n����ӕsQι��e$`�`�	�	�	�	�F��m�8�H�H�H�H�H ���k�a�ر�t����:v숵k��l��ii��?��?׮�7^���믿�]K\�����޹�֮/�0V����7o>�v�%g�'www��ʪ�C�e`йS'�t�8
,�cII(]����з��-?~�֧�]�`�ʕ�0a�EXT"gu���2�5kdŮ��X�uk`!����,Z�Q�������ѣ��Y�uv&?���(gs�=	d��L��4   �%@�nCO�I�H�H�H�H��0&�
:�~��4dٲe��S-���2�\ٲ�2��ƾ��T��|?88S�L�?W�X#G�B����ꕫ��f$%�'�t�_����Z��e}c0��1p� �ݻOkۋ�3�ӷ�~��C?��ԪYS�\ש����!��ym���6mj�J����T4j��.]��J���T�Q�j8��-�٨`�M�����hINNNF�q��9�|���R�*��°t�2����گ���ݲB�pV�q.	d
��Ǟ;�	�	�	�N�sg�h5	�	�	�	�	�:��۷�e����?pt,��{��Z�j�7s-��uOO���i9̘1C{f�18�L۹�s����o�Z���{h��G�x���E
�b=[}���ş��
Qi�z�j���AA��:u*>��c�Y ׳�X���|SF+q�J�ږ�_D�>}�5�j�*RD/Z�H������(3H w��;�F�I�H�H�����cϝI�H�H�H�H����:O�^��8Ow׮]R��E�U@���=֭]��Ǐ�YZ�v�ѣF����e}s�O�8�N�:�ɓ'/\����y�oBB�>M�>;խ�£gOݎ��1�D�w�±hQ,TP��E��|SK��g)b�%X�y�豬����
�E
F��1e�T�/_ή>�y�Y
�y1���P��(�G   �I��ɵH�H�H�H�H�r�'�������<�B����j��>�V�B�-�X,�0�*C[�?|�����(]�t�ܖu86g����AkH�Z��%�q$@$@$@$�&@��@$@$@$@$@$@$@$`(�E��d$@8�.�	�	�	�T�_*^.N$@$@$@$@$@$@$�SP�)��$`
����h   ��       ���"�t2���J�H�H�H�^*
�//'      �)(�H���`�xq4	�	�	�	Pf�	�	�	�	�	�	�	�
�vf:�	P΃A�K$@$@$@/�����	�	�	�	�	�	�	��sJ$h	�F��m�8�H�H�H�(3H�H�H�H�H�H�H��`�3�̃(��%   ��J��K���I�H�H�H�H�H�H�r

�9%��l#@�6^M$@$@$@��$@$@$@$@$@$@$@vA��]��N�A��`P�	�	�	��K%@�����$@$@$@$@$@$@$@9��	�A��l/�&   
��       � @�.�L'� 
�y0�t�H�H�H���R�rq       ��B�pN�� �P��G�	�	�	�`�	�	�	�	�	�	�	��]�la��y��<T�D$@$@$�R	P~�x�8	�	�	�	�	�	�	�@N!@8�D�v��m(�Ƌ�I�H�H�H�0s�H�H�H�H�H�H�H�.P��0��<H�p*]����������p��{�e��,K��ĭ��,E�Ub�i�����"j��Ľ�̑������
���{Q�� �{��>ʽ���z�/��P��(���Ӕ��S��(@
P��(�Qg���8(`�`�x6(@
P�`�{��(@
P��(@�l!�8[,3'�g�E�(@
P�HS�i���)@
P��(@
P��(�3�Jp0N��q^<��(@
0�=@
P��(@
P��@�`�-���̂���rJ�(@
���4�e��(@
P��(@
d�e%8
'��8/�M
P����(@
P��(@
P [0���IfA�YpQ9%
P���T�p��q
P��(@
P��2���`l�Ϧ(@
P��yP��(@
P��(�-g�e�$���,���(@
P�i*�8My�8(@
P��(@
P�E�pFY	���	06΋gS��(@��(@
P��(@
P�����2s�YP�p\TN��(@�4`���l��(@
P��(@��"�8���A��ų)@
P��`��(@
P��(��:�b�Fc*j_��9�, �8,"��-g�e�)@
P�x
����K)@
P��(@
P �t�3�_Q$6`�8��ٌ0�}@��)�8s�GM
P��@�	0N?{�L
P��(@
����C�����۵��zx�,��&��Fj]��
�T�j��N^R-+�R���Z��Sy+�Wi'������;8w'����n�W�'���t]R�!�֝���dkxS�ߔ4��(@
P �0Nd%S��Y��<(@
P��޴��kW�t����y��!`IB� 888�sq�U�W�`�A�4ϙ�vR��(�@�A���R%kf��� /�+fu����Ԩ�����(�%���ct��W�9�%A����C��y_q}J�{a]R�!�֝�@�[?�O������W�<y��M�W�5[�Z���Z���P��(���1N���b�
P��(@��)��uus�-[6�V��5R��k���
8R�~�:FL�C�In,TV�DT�#�,m��m��}}�ZH���˗R-,�K�����1g�J�
�Ii��|�U��Zűk��ժ���c���c̀��2�#}&�_�k�����0z�m�y�ֻ6G��`C����G��/�8�H7���s�m��<���v�#���w1�H���>�X'�I���yOP��(@�'��(4nax6(@
P��4�����k�^!�����Qs�a�'|h
�F�&�������B^C@��RJ�)�TK@+��r����Z�'N^����(��V	m%d��3���XڔPXړ�Vڐ��s9w��8}�
&��
kC?Z���!��q�uZҞ�eҖP�}h/�m�DVm��Pc7����W�՟�Ce�Rq��H7�jpp�o����ȿ��}�v;:вQ]��0�#ഽ�S����>�T^"6G��
0�A
P���`��W����(@
P�����4i��ߏ��pܻ�~�Э{7���'bݺu��t�u����U�u����;�Ұ��Ǯ]�p��1T�RM�4��͛q��YXXXbΜ9(W��ٳ�F�B�P�����ؽ{N?�*U��k�"�Ⴧp�pGPP"�#P�~=xzx�����6e�c	-w���=��[�C����6p'&:����`f�_wu��KP��
ti��h�o�6�8{O������ѻ]m�逍G�bV�:<�1Aq���3�p����-چ����ǨS��5����'1��e��.#4<%���~m���E�X}�&��7%,����5£�9K������D����[��s�%x]��0�8��f�p6�
���X��L��2o9��Y�RZ����5���>�c�T����m�ش1ё0�y�M����a�;��>Ρ�y�ul�����cSe��6lڌQ?;�F �L����>�Lup��V�p�]:��(@�t`�N���(@
P�H���g1ظa�6k��c�5kF���'O"w���߿?N��˗/��u>������[@��n�X�p,���5kb߾?��W_�[7G��(Ԫ]�k����q�~(��\�v�Z\�r9����o.�֭��vph��ƍ�8�X��6m`kk�Y3g�Ν;�ߠ>�ԩ�ɓ'��3C���;p����!+�����1��K,��g�>t�0y|U*��kaܔ��e��z4��(`��>��zv���y'���ۡ1¥���\s��x�ܻ�ְ�\�����p��?���L[������Á�\<�t�tf���		��Sm��FM]��eK�E��8|�5�Q�\�^|W�\��_"g`_1H
 IDAT�����	�um�*t�NZ��ե6rk��ah�2�y�	ܻ�t^���(^�����f	`�oGp�Ut��BU/�78x����!tֶ����3!@��>���}j~�3�����7!��M(�
����7e��(@
dm�Y{}9;
P��(@
d��-��J74,��od��=r͚7�Ν;`���j�ƬY3ѬY3�f�-�ǎ???�>}Z}�ҥ�0b�'�{���z�W�V_{O�Ƙ1c��l3��
IHK�(���CѫW���?H��V��'�|�>wuu���\�ʕ˨6���◙����U���?ĐKаIst�[ۃobҢMps놏m�[7K�:f�TL��'*��P�@��>��]{�=�IU�z�nÝ�a1�����p���c�GeK};-�g�N���T>?�xN�t�~x���joͺ?�M���T�,8��!!��_�߽����S1��	�����?x�F5Q����u\��@���I{n��#G�`���z��7��Q�|y�Ҷ��A��N�cyE=~������ZU��l4k�
��T[QG=���o�=��0r`��4�R�-[G�=�?O����D�����8}.d�>���+��uy=(@
P��M�pv[q�(@
P��$P�zu\�v]�^�Bn
4j$7n��Y��6�<��˗�50����w���M�|U,�H$U�ZxۧO_\�t�6mRm�2`gW��?���酹H����'�x����s�b�PW5�
+�'Ѧ�8�A��"�[�Q�Q�J�/j��K��ts�ELY��}�b�g��#K��%��ε��cF�wwB���!���F=�w�����M�=�U��H�n�
�fy�v�\l��M���ҷ��a�"��@Vޟw�f.X�rs#'��ˁ�GТAmX��$�U������?[�s�EC�y�ZO'��Ӈ!���'hT�#x.�;�B��Ѿy�(o���:�8B�0z�v\�t�<{�p��ب��'���t�g�x-���Nj)@
P�Ȇ���s��(@
P�H��p���m��d���[hР>�U�cF���[7Ѹq�V��CQ�H�fr`Wס�ݻ��F�.`������?��_mA����^^طo/J�.�>�?���۶���'��M-�~�>�Z�a���X�wsX	v7�S����J��e.{B�d�
,��	;k@�2�t���Lj�x�Z୸��ڨ�6�;���wcܤ�xW�_�M�ܽ�f����͠�i�g�J��@�7�f-^��c��h�Η�v��0=`3��Ƈ9���
`k��5�J?r�J�
Gr��J_	�%`�m�w����M;p��yt��[UW�L68�������l��1�����Q���
��]���?�d��<�0~����"�8U�(@
P��H�p6ZlN��(@
P��) [@��0aa����4jh����Ֆ��.N�8_�q]�:b���Ƨj�!޾};�t骶|�g�1j�(���O���<E��Sw��
���O��`	F%ؔpv}�X���c�x���T{'�
�o<����1u��
|���g{h��<��C�N������ٞ��Mg��ӽ1ֹ>-c�BR���p�~�
`۶ˀ�8��+j�g��,�K{{τb��p�-տ��
�>��n-�ؤO�Gn@U��\���'���_�w�έ�q��8|(~��9h�3�%ؖ-�O\}��3~E�n�Q�m3ܿ�l�������}ƾ�`�;��S�p�\7���(@��`�~���(@
P�H���u�ѻO���l4i��s|�6l���+S�}�>�����!:*
;u•+��zx��-�ӲX�3�E�/��oc��?���`o��۵���D�%�J��X{�S�0|�b�t�Om��P%��*U	J��?��ר
`�ZB�����҅��OK<���A��k��F��x������E���v�Z��91ť�2��C�e>�����H���
�o\�����B�	�ˢC8�
��?�7� ���2�a��acܾ��9abm��]�î�F������;B��ƊamU�m�οTe���x�J�\�@�lD��aҜE���
;Oc��]�4��
�gƻvQ�B�@ym�l�=�tm�\�@�`�"�l����b����p�
�`l���(@
P {0�����S��(@
P SDGG���ܹS�_��R��|RK�,����1p�
���+��r��������ѽ{w��E�/[cʔ)��300��6�8q""#�T�*v������;fnݾ��>�?��}��hѢ�gx�m�W�X	�7v�K+��{^m�|��XXX�}�v�۷�*E�}��F�������~Kq����,P�xn�;uVU�R�۟W1c�*�|�RE�F[���X}v)$3����!�0ˁ�5��z��
:u�}����em��]�6���]�W.]�[�r�t!kth��|&��^�
W�߄MT�+�m!����L���
�Fq[k���;����5�p�jˮ�5�l��-p�zf�[�'CQ��۰)�6vnD��Ѥ^��
��1խ?l,���g�nOF�Z�k��0ɑ��m�٫�`bb��9гC+�+f���`����[(cc��jք��4�D���W��z�K&��B��m�)���� g���ϴ�3��q��(@
���t�g��(@
P������C+�<��RY+�������u���T�JU�|.U��w��}`����}�RY�>Z�,[K;�͒wJ[�r�T�J����Z{2�=9O�!c���\�Gڊ��Yޗk�����<	b�:�򹜧m��4������U���\��O���C���e�� �J�b.~��o~��`c���=�p���w
�T�pJ�x(@
P��U�pv]y�(@
P��T�:})����:Jx+���^j�k!����Ok�F>׮���z�LΗ��s��v���Cޗ�䥝��'�i�i�H[��^v�6'�L�֏�O>�C����{��vmR�����?>�N��� ��9r~�G�J[R�6���L��8�,J���(@
P��	06΋gS��(@
P��(�Ig҅㰳��l��(@#	��)@
P��(@
P�Ȝ�3�q�`�{��(@
'��8/�M
P��(@
P��@&`�I������-@
P���`l$O�(@
P��(@
P s
0��QS�0�
P��(`�`�x6(@
P��(@
P��T�p&]8;�0��(@
P�0R���`<��(@
P��(@��)�8s�GM��(@
P���q������(@
P��@f��D����2���<�^@��@��)��ޞ=$*��72��̹n5(@
P��'�8���3(@
P��(��4x`�?�~����{E,��	ȴP���>�?~���	��g��j!X������0�A��)�8s�GM
P��@�	0N?{�L
P��(@
���!0c��޸��]݊��J�@J@*��R!+/�RY�/�˦������g�����'�)
��逧�u2��W�W����G�|x�{�J�{�VJ�A��#��R�N�?��[�m�yP s
0Μ��QS��(�~��Ϟ=S��(@
P�i%��	����h�m�G�?��Nނ��x�#/
*�<�ሌGa�wѥ�P%?���@RP�^{��+0�Ǯ� ���hK��.���_�k��>�������X5�-�_1����^J�A���>Ԗ
e	~徐p[�r]
���Vf��+�8u=�ޔ�7%�~(@
P��*���Jr�(@
P�ȢZ%�T��K�9�ޔ�Nm�l���>���'n��4]Z7��ʪ�O>33T{jmɟ�Kk���[#���	G7��#}��k�ר�x]d8�: �a�ɝ�8�׾���ׅ�pq����X>���xɜ�Jd�y_���1��ܿ�ӿ�
��|��&Ҧv�T�Je�V},�أ6^ñ��֭�
�Kj��U�o3���	r�������_� }>{�v��+�C�ә�e���[�$r˘y'g��g���h)�	0�@
P���`l�Ϧ(@
P��ް��G�Eb��0�ʇ���1u�V�.��t��π_����s�����_}�����@�*#:*
��\E1��p��%
��=�nb��-x<ә�]�hY�0,_>|���

BDx�կOO�[�c���pus��]i���c��=8q�8�T��9s� ��D�Q:}����ap�Y��#z�Z^}�:.�&�nف�?t�ƕ�󮗬yKh���m�X�G1�j�e�����5��s�ƅ���_��U���1���p��k�����]S�;r	^�""Z��y�P�2�]:�q40k���r��hP�c�O���l�I�CD�<8���&���L��
nk�ɱ:�z�;x#VB�3�W�W�ڿ���M��c��툍�DΘ'�д.jT�C��;��d��!J�G�ێX�~��,̀�!`�>x��5�����7��7���(�Z�SK��P��(�]g���<)@
P��(�I"t��p`����#Ę�DT�#T�����㧬�E���XW��C�Q��չ�����3�i�j�uuU<j�Z�x�c\�Fh��D��J;��Ń+g0��_��8��M���`��Y�s��7��:u�b��I�|���,���\ԭ[���pph��ƍ=��E���Sw��r���`��-?���O`��p�N�{[�m��y��\WU�N�?����1�]U,��?�؊��VB�zEp�&�9��]��'���SW�*�
�|���/Γ�r�3Ls΋��v�#�|WU�2F�i�Q�ШA�y�1�o���Yc�� \�z�Z�m�G���OR�%��aS��toC������4n�>~e�o�R%���_�o�Rط�:]9���뫠y\<[�v�k�gB�o��D�6�ѧv�W>�8�~q���(�9g�u�)@
P�H?��gϞ)@
P��(���b�ĉ
���;��'k��:}��W1u�Zw���/�
9j*�ꅊ%��s]�>�-��b�'���-�[���
Aw���s����	�V���S`ߪ-��_T=��P<��[�R�U+��'���]]���ɓ'�+W.�;~~~8}��~��@�%0�u(z���|�xǩ���#��-������+�4���Jb���>�Im=��7�}�j��37���h_x�뉲9��p��ѨY|P>/�xL����)���]�n/:7�	��v^�'����S-�����O#|0at�X韩�{�tn�1>��=��}z���&��9�в&=]��|��p�P/.�I(+��?$��>�ѵ~|^�:�2MZ�F�:���0n��/��Xh���Qƽ��#���>=Ѻ��8Yߗ��$��u�8��.�8���?(@
P��
06V��S��(@
P�)�^�:�]����X��&��h�V���ɋ6�z�6x>�bQ�R,�ꅒy��{��;`#~��2����&�[k{8�y_mO|�R����ߡvY`����}��)����~e䋷5�6�Y�f�����P�Dq��ܹs1t�+��B�
/�����899=7_-�~*�g�A�����.�LQ�V-|Q�0,l5r��<��|`��6ܹ��mT(�y�y�
�
���m�]��F�V���8 ����ɽP�D�J��T��3|�CHH���U��;�>��݂���ib�Ǐ�U����k�I�+1iDO|�G�l^�
q���qk���~���}8���'CѶ^u4�W��#x�`tjV
>xK�SUBFl�*�%�C�_���9����
L�芢�
a�#K
0��Ie��`�9E
P��RU�p�r�1
P��(@
P 1���Tn۶5YX�ੋ��3J��{C�d�
,��2�xC�%L]�n^N(��/�P��?1x�<��J�C�]��`��p����_?5y��>3|0�����E��A��/��!C�}�6�_��D�~���?7_-�)[@�\���I~��]9�r6
���˜y{�p�{��x��������;0yBoT2�
��
V�dg�	êK�~|O3�
��J^�_�?���,�-JZ��.io��t���s�K�.�C�ӬK��e�i��)[}�3L��իW�e��Ҳ�
���$[	�7�~�i��`��Z2�
�՘dp������Nb��V�㥀^�0�
P��(`�`�x6(@
P��(�B�z��	����Q[@K��6�
B�O�^���m�;�#����;�T��x�1l޹�&�Sa^���us����yK�mŌ�N0{\�|Uՠ#��{�kR7�$�oߎ.]��-��r�9
�����0�07*���+Tw�W�����燪>�6�l;�i��y��V���K+����c�$������f��ugb0��c��������Y��%..��nh�8�O�m�lS=v:���/��W�K[��=}?{��!ߡNQ�{�6^űÇ��M?��R�,�:ޡR���dl���G�p�zJ�{Km=c�1�}�7,���?��0¥��������5�cV�����Gw����6V&j��S����/c���ã@"�ykP��(@��ų)@
P��(@�7, Ϡ�`o��{��pLqD)@=�7@�a�`[�$�������G�����#�ur��f-[�U�R��x����ѲA%��3f�a�׷*L\��!�o[���_���������o��y����}C�o�.\���6l��
�:}u펳�p�	�(��</P@��6Tɦd�m}�����w�3�A���^���abn�Q�Uz�n,��ușp6ymcp���;7��|�s��,9���ob�`{�J�� ��5σ_9�1߿X�E�,_tv]��e���c��un_�J�fjn�w_E��M���E,�An�x���8{%�BT��~7�箄����7q`�Zx��ڝ��A�ݕG�`��`t�RV���������PUK�Up���7|۳�4`�F�l�i,�8���<(@
P�YN�p�[RN��(@
P�YK@�ҝ^���5���J-��v���^�B������073CÚ�С�;��T*l��ߎ?�^@s+��ȁF�>E���T8x�	��W/]L̐#W>���
�^��ϫ-�/\�K�o�}��U{���w|��{��E�-�=�[m��b�J�����㞫z���O����p�I��e��E-���Q�2���[�q�v��w1�o޲�A����ӳ
�?|lígQ0�%J*�m[�&/p�>�x#�\����s��]a|�eaA�HL���򛣄m���€�7���k(��e
�A�֍�/�9�o3�ij�Qʮ,򔬀]�з�h\�xo���0{�#
�|>~�6��Ĵ9I�W�`>tm��9L�|'�]�3�X�37���D��fj+�`����-�ȉ5���ň2�@�g�*�2�	�g�X1�E-�����G��0��o IDATΚ��Ye}�Y�9C
P��RW�p�z�5
P��(@
P �bt�g�J�)/	n%�Ԟ;+[�Z^+�W�L^�,؄��0�_'_�yZ��i�X���/s��֯�2KJ�-�ȵ���K<�dZ��}�O��[�5���9J[O��شk�����T
˟j+�x�-��Hjh���2����qH�2���'s�ޗ��+���'�K��Z�9�X�-���T�&�@�1�@���P��F`�T
P��( �.Z�X��X�ڵ�ĥ(@
P��(@
P�J�p�Z��`�l*�H
P���`��(@
P��(@
d��b�9�,(�8.*�D
P��@�
0NS^6N
P��(@
P��@F`�QV�㠀q������(@
P�0�
P��(@
P�����l�̜d`��S�(@
P M�)/�.���7ݼy���2{Γ�(@
P��@�`�9։��@B��'(@
P���q�_�u�~h���氲�4N�g-�<��ff9`e�&&/Y]�j��s��_�������;/�(@
P��(@��`�v�l�i)�8-u�6(@
P�YQ�p���YJ�,wF�������3���/X�bEQ�Re���5�4i�!��8C,A
P�������AK,�R]@�Z�UM���A�&�8�-�C�d
0N&O�(@
P��I�
���Ir����ǯ��
SS��^���Ϟ=S��(@����HC0i����F��z���(�C`�W	�霪�l,u��#[���`����(@
P��]�p+�������2�#<�����G�����)@
P���K��?���[w�A�bx�X>L���`R�Ϛ�
YH�c��L�$���W�,m�V�j���r3�(p��}\�u����]ȃsr$��%\�Tu�R�`�嗘̢����rZ�(@
���$h_7���]���ɓ���@�B�P�F
T�\9�^��#G���c�s�bccP�xqԩS�J����u����#�N�B�Q�n�ڼ}�6v���~���P�D�S2����q��NN�\>�w�.֬]w�������q�Ɨ6m�/]������vZ����p����J�_��j��Wbp�@�������}#���y�~�����?�V
eʖy?�(@
P�x����o�ڰ�Z7@ۺ_L���LF��#�jd�BV�`sy��29ZH�r�2pMj^�-��
A�66�d�Ot���� pO0��a�gO�`����_©��C*�=�ʸ�3��pdHJ�0�
P��(`��$�^'^�l9<Gx�޽�z���O1a�x�.]:�3���<̜5׮]騺us����j�㟇�����yV��8v�r���u�F��too�^Μ9q����o��6v|�1;�Wݞ�5oղ:7�s��{�ic�0ĕ��c��ϵ]����3�
�{?���m|}}�y&:��H�"ϵ��鉙3gŽ�o����W��s
P��(��� 5~�(��TJE�^jի����Wt�a6z84@�/�TP*��\gL�kJ��q��
~�Y��&�(e�9u1��%����&(�i�xdN��M��rȼ�gk�X�gO��_�ct�U��\���=q�
��c��p��
�s�ת��KUAmxi�=p��ugp��A����)���5�Sg��/����am�V|�yφ�j���r���X�#�wJ֞�d\�wm82
$%���(@
P�0N�p^�
#61e�&u���ڵkagg�N۽{7:t������.8��I4����t�1�ԹS�2��U��*b9Z�h���)_b3vܯ�`r��a�֭�93��x��sM�d�	Cܤ�Z�w�q�&XYɏ���3gΠn�zqM
0�.�q_GGG�J�*q�(�g�a��e�b���(@
P [	h�Z�'��T�J�� !a��rHp��p��je��3��˖hY��
�$ ��%LI�m��
�K�ј6�W��v���h`�������j,2n�Nk����N%��d���x��_��~�!��)�C<�Hi[��]yO�c�=��T��]�'N^�����_u���w�4��ȯ��5Җ�/�ȯK���y�y(��wL2���f%�?���-6K�ҿ�/s���;�%(?��=lݹ��!"G����VZ+����}���7.�����C
���Tad#�(@
d#�I,vr��M<x�Z9ĽU�lYt���ž�{�?�1��_5�Jҥ˖Ɲ���*nٲ%���Q�XQ�?Ç�rmmmp��q��&M����>��M�6ŵ%��۞q_/]��5k�uƗ���N�+9�O�<E�ڵ�*��)888�ٔ��e���k��&&�;o.N�>׏TdK��I=�E�8|�:O�t&&��mذ�z��k����Z��F�	�T)@
P����"��W�7`rX��]0}��(d�]""�[�
'�^ē�g��ry�nW�:}ej�ިV�b�����K(f�N]�B�
3nu��C�{��ǃD�G�^�z���9�Q,�nn��+���}��=8q�����9s� ��V7�߼�t��s��i>���SU�J(<w�)�߲9aͪ��cn��_7Ĝi�(Y�zws@X�`�N�:s����ǟ8����C�0£MP1o$JXF���k�Gs�l���7��5?�c�T�y?�_��ϝ��G����s'�9z�KV�Q�	��䅝y8��tV��[�
�/]��ǏQ�V
�kRU�I �x�!�<�'��BH�#��e���[@ǫ��V{Fq�Xs�|�nLVm�TUc���e�ظ��d͢ѶYC4�V�/�s��,��K�vذ~=:uuPi��m��u���kT-n�f���[�g�A�o�]Q �"&��(@
P [0Nb��F&��G�ؼe�z�L;l޼�sku	���c0uڴ�˂@����׏=RA�V���;�nÆ�]s��1ؾe���A�ǽ�50*VP_w���v�R/U�$������2v�I}g%4o޼9�w�.y�7o݂���6�h��KUլ)�c��ZժX�|y���y��
U(/����z����E�p@�R0 n|�.��O}ݱc���淶V�t�쇆��F�$(@
P�HD@��)7���'�����;�R�]��X㦬�M.s|ף9�FC]}�Q�ЭsU���ijU���OU�z�Z���1��
l����l�򋗳f�R�^�A}ԩS�'OR岮n�X�`���n�:�Z��q�F/�B��O��\מ�+h�*`���`�|ƍ�7�;&������e�M#���y�0�k-�>z�X���ýC�-���
_��j{k�
5u%*�-�M���u��k<�wG�r��뼹1����0�=x��tW�N�
�Cb�K0ˠ���v�wѭa9��米�`|Z�;'�^���~�
��� �8uݻ�J���`�|p��BU���X�3&�����?ʖ~�?n�}Q����>���.�_{U,�R	�UOK�R�|�!0����U-t�W�?�����Μe�`��֔3�(@
P m'ᛒ�����=3�v�Z�* �q�ʕ�:�?���o,���׬�����x����<��HJ���
ܺv�///\�z
�a����~B�~߫s^g|�Q;�n�毺�%����/_�|ܩ)�c�8 `	jժ��V�^���[ʱb�r��F����G}�G��GS@ӦM0{�l\�~�T�$n�����݇�j���(@
dZ��-��8q"B������F��rb�XB�Unb��Mps놏m�!��cFNń{�B)�
���#ܵS�8�-�{:MAW��hY���b���8wF��l����A*^�j%>��u���>�_�˕+Ǝ???�>}Z?�X�D��:�z�zaZ<a�l�v�2���K1�0y*Z��C�F���0�!&
�
�7���3�0Ç�B�"��{l���;vb�.�4\������B׽����S1��	����n�3�}-�_�������y~}���}h�s���T�m�s?#�Q[I���ޣ�0z�l��n�<u��A�O`���ܫ3>�d��-���;�������u*��zwl�\�T�J@���5o�z����	h۬�4����c";K�����!��_[�x[po���0߶F�ʅ�}���;�~cq�F	06��'S �0�0K��P��(�I'�P����)[֨��>}:Z�ҥ��ر.^����XN����x�uM�<�q��1L�>
�'�+bs�0��(X��
�S:����q'֞1�[o��	�������1a��'P���>�w���<jծ���esR[@�Ƀ
¢E��u��b��I�&ŵ�s���\�@
P��2�@�����Q�Bn
L�T�t�gͮ��ɋ6`޴�!{�H :�0,	@�W/�̣��}�1#`�z8�L~���d8:4�C���V��/=��x_����y���f͂��'�x��j|s���С��v�y!`gW��?����9i���sagm�<9��:��}�1}RZ=��H�c��Y��ە��a��m�:�/>���wVp8�/Z�y?}��E�1p�q���S����=���P�`n�D4�u9��C4o�bLr`��7�;ȿZ�*W�T�_~Uq�!���F=�w�����M�=��<��H|Ѹ%L�b�>�;��л��:�?����$��N���F
���Jc��<�
-����a�x������:�������ŋX2�+u
���o�,y�,���T6`�
�S�(@
P U'�illLx�u;m�T�n��-��w˕C�R%�ә��[8&�5��cG��i�fq�M�0�ǏÍ7�{R�����:�K�)�V�ƌ;���1w�\ȗ/�:��qղ��
��G>����1a�+�f�*U�O�8�ƍ�Ľ���*W^=r͚7���<�yq?��Z5�Y�&U���(@
P��h�����c۶��b�NP��/�.\o�0���{B�d�
,��	;k�-�7]Ĵ�k�����}�M�ck{8�y_����}��&��/?�CÒ@�x������uG8�2۷m�������C����9��'
s��շ��K�m��O���[���uu��S��f&��j��a��'��?�vD�Bf/���0k�*��EsB��[�k�γ��z;�L��H
#�X�I<�w+�>���6*ް�<F/ߍq���]�>0��dlK>Œs�tToϥ�oU0�8v�=�[k���n$p՞�_������8OFcŦ�v�
��[VR!�s��_-���]x�.ǐ��vQ���?�8Y7!O�2���Rr"�L�p6[pN��(@��`����4U�fM\�pQ�ڧOo�8��$�,gN��t�+S����*y.l�7.ϐ��I
4ĩS��y��ۂZ�ê���N�L�'hś��k��h�q�&)��O�nڴff���G��D�B�;b�'�k;�v��;ʾ]���4"[}�>}F�gia��'�#,�![!�k��kC�
P��(��d��&�G�xzx&{��`�m����
/�oP�<*^��w���	N*x�*��Ѣ�*D]��Y,]��Nꯂd�x���ѥKW��<�W�Q#G�p���0�0Oq,[@��
[<���$|��*sw�}}VbЀ�h^J�Lޱ[�CƸa�70�=�����.��|0仮����
a�}٢y�_�0����c4)ȯYJ�����8�@�`�m�gG�}��Ӗé_78�՟/�H��<0q�7��ʥ,���Շp��_���U=CX���)H���ap�/N^��ͧ��+�P��ܪ�E�X�~��SmM?�*�ek�C׀�޳ѻk'T-��������=�8#�pl�/�8�M�"ބ�7��>(@
P��J��Ẍ́ad��-ѫ����&�/��1b||f�V%���
�r��q���qc�!���HD�S�R�K!:Z~t��Q�PIy~l���q���6�����/�}a&ŊEP���pS4���R�K�x�/k6�8::͚6ß�wi�޽�3��)�c�*^	ӥ�W��+ǚ5k���ԗ{����7�٫*��ٳ�����ֶ�:�(@
P�	�-���?��ר
`�Z����
��҅��OK<���A��k�e���ĎߏC��hm_w"OOo4�SmTRϺ�/��������o���d��}C�o�.\�����
`�3h%\]w�0m|��E�B�
`	f�k	��=���|l�����o��p���mm�G}G,�j�w
ʨk^t�/]������x��|X��0|�װ1n�|�0�o��KP���5T!�+�Q�DA�4�?g.��8�.��W�����K�S\Z�-S��0�Z�ó|���x�Ta8�n��SV��0L����m[��n�N��3��\���l�I����2.�<�l�=��&���ݷ�mX��I�I|������ʽ��(d<y����K�֨R27��;�벏��֜i�`��֓��(@
P �'al�v�^^#еkW����N�:�{�^\�����իW�*u7j�Y�g��T~L�
��q�T�R�C�kKNH?|�}��s�r���Ri
�t|�1�θ_�櫪��9�����S���X�4@U^����Z{e��!"""n[m�~~hh�P}���޽{�R�J\`����o0r�ȴ�ng�(@
P �
H`�۟W1c�*�|�RE�F[���XU�^
��̅+p�v,�r�~��^%U]���y�q��E�YX"�)`_�S���^\k� <��y���`aa���ڡo߾*T�}�����-Z�{���yŊ���)�~�S"��ڽ'���=�G�-KT*Q^NT������t�>��{����Eѷ������>���ոu�&,�LQ���p�WA�r�30�W+��m�ѯ��>��•�x+_.���㗍Q ���|��k�`����A�����8p�&�.���-�ژ㻞mp��`-�\���*]�ڶ�M>�\����2�=~��K�@��E�y��wh�/�x+Wm�ރG��>s�Wq�L�_�?��_��_f��%�p��uĚ愹Ut�%�1QAx|�"o@��?�ة>7ˋ�XS䈍�Yl$r�<��73>�Ϥ�v
���P 0���!P��(��'�\)	��9yN��_�Bp�+y�o@@
*��>r�ڴm�\���/��׮]��<a,��3�/_w�l+} ��-��S2�Ę^w�	�}U,���۰aq�)R۶mG���ٛ�H����*V|��8�Xg縷��Ɏ�ݰu��Ϻ��
+d��pp��(@
P�M
H�l�+ϙ��%ؕ
U����K��T�j���
�Ie�lq,�K�*U��\o���Z�=cW�"��BV���e��-�l���_�,�K`*�:*�Γy��|&s�k�s���!�H?Z{r�֞l�#� ��5G�̕�����-���2v�y_Ηq�g�����9ҷ���Цo�E�LNҞҖ�]��1K�s��;ȹj�"�	��g鿵�kd�ږ�o�^f_�/�8�׀#�@J�D��P��(��'��)
���;��`괩X�f
BB��R�t)t��ݺwG�-e{��Ç#8����W IDAT�:_B�F������m#����h��!���u�`����.%�K���w�6��O|:t�ݻ��]޴i̞=��挝c��@P����tٲ�`�lٲ<x�6m�\_�
�׭]�>R=b8*W���[6g�q��(@
P�J�(A�aw_X�K��s	��ky_$�=�N�V�Hy���8��Hҷ6>���O�ZG�ϵ���rh�?�qk�k�v��ڼ�/q�5�E��ړ��s-����z�mI�/��5�Z�Z�q_k��.9��rhV�w�I�)G|mr���۸�F�/���w6OH���>)��_ߐ-P��(����z�7n�Ç�P ~ؾe����ŝ;w����R��G
Ɨ�h�踍!I�q#"��-�r�΍…ӳ:WBmS�����T[Xkǘѣ���F��(@
P��(@
P�x�ƛ�

d�a8
P��2��̴Zk�
$����AL�8	��ѦM�M��={UV��8z�(r�
�xP��(@
P��@Z0Nka�O��`�6�l��(@��+�8�-gf�@Z�/^Dݺ�^�l��~�a�{�������(@
P��(`�`#�x:2���(@
P��F�p�Y*4��"X��0ty��eː'o���ۧ(@
P��(@�`�
Ȝ�3�q��(@
����g�L�̙3ؾm{ܨz��s������S�N!��56l�n�`ee��m�
P��(@
P�H���[�L
d$�i58
P��2��̰J#(@
P��(@
P��-���	��E�p���S
P��2��L�x:(@
P��(���x @,�����.o��H�vS:�,|]�N�~1d�L
k�{����^�Z�'ωgQ �	0�h+��P��(��g��(@
P��(@�t���O8�߾��v�^K�01�bZ�k����Ot��+Op�V�b#�����
�,��m�8Ѥ�@�`�9׍��(@
P ���={�(@
P���B�Ԇ���Vo܂^�ЮnEXHiJĴj�X���9
@��BV*�ex�U<Kլ���t�SØ̥�5��
[*x奍+�|��w�{�����x�D~���P���.�_i?:��T'+��:��<���/�@�	0N7zvL
P��@&`�I�æ(@
P��������i
z�j��u�#����]Z�k�b���]]Ǡ�����el̑S����([�����r��U
�.�����0y@{X�0��Գ��w�
��+�ș���P��>��'����,��u�K�	,��V\��pC,������d#n�t<�p:�k
������(@
dK��r�9i
P��(@
d�Y���K�?�”�Mm�l���ky�	��:9ME��M��*�����Z�jj�+�JI�mrWD��X|�4{9fk�2��;F�\
������	-���g�����w��!�1��ܿ�ӿ�
m�Z9G[��)��R�,��a(�VU��sW�7�����5�����[���~�keo�5GU<ݽ��^�V�C^���d�s�ٟֆ�/}j����9v�6�
��;��61G�FuѴJQe-N������</��SL�)���ӕ��S��(�	g�E�)@
P��(���Y�G�Eb��0�ʇ������:���� ��{A�PPQ�"ł�((*`��B���B� E��X@l����{�AZ�dc$���#��;��œ/33j�jȖ^6*�k7�O�mԶ�����+���{��
y�Hz��X�y��n\��)w�tj���$�y$TS�.��rgRX�e����'P�7o֕�+�Z�����+�-_�\=z�T��T�F
m���oۦ2e�hҤI��7�u�+|h�:v�����S4�盺/sؖ�A+���U�Ծs-\�A)���5y�Rݟ5�Z5�nW�Μ�I�w���׮�d�z��r�&i͏{�o�O
��L%�]W��7Ի�k�|C�0g�v<�sWn��'Q����w��g�.]�tQ9r�P�6/ꇭ�4u�B]
In���g��u:T�:{���ۯ��˪�d5�Y҆�&L���oZ��ﺑ�O�.�W�T�ۻ�
�M���N:��f��?ոy+]��~͒6ߴ�����RWC��>��s�l��Z�!w�j��K�r�b����K�|��V��\�>x[��1}�[f{ӛ:�J���T��=��"� ��W
{��i@@���	�vK#f��?'/)$���_���Kܯ�
��!#* ]&5kZ���݃�X��j�Z�
�m��чV�����}�W/h`��u�_i|P�;����d�������%KfM?A'O�T����r�*1b�]5ڣg͘1CS�LU�*��e�խ[���jռm��HK�2�DM��L����c�|��ڪ�ԘY;t��q����O���kO��'k�&m:ul\^�nH�̃��g�26�m7k�N���q��*M�����(���Ӆ��)iH��ܺ�Jߟ^]�|�T�3��k��B�Ծ�����Ã~бs�կm��ׄ�]ƮV��%�R՜����1��C+=V@�4}�v9��]��S��]�o՘ލl@<d�xeɜAm�ih�`G�j�l6+�?r��NZ�<R���Զs=�WZ���ڭ�/=n�q8�>|�g�&�eVwQ����j��cj~�4p�l!N��C��N���� ��'@�w#� � ��]
��r��
�s�ϫO`�jԬ�RI��}��pH�f~��=Z��Y�jVo�>0JC:7W�|��|֩K~ї��ȑmlP�N�е�*l��?׈���F%2K�b�܁��豬R�H��M�e�ŋ�|���=z����R�N�A�iʔ)ڹsgX�B��y�{��j޼�mV�x�'S52��
d���F
���W�s5��_��iS5���z(W�6��_U�!��G��d��m�?^q@_�_�eCޔ2���̙����I�pB��o��|W�S���;�ԫ�U����c40���f
[�;糯����V�ç|��.�O��vﮣ7����;��
��¯t��Z�=�J��+��um�H��̪k���o="��]Y���*Y����Vێ�#p5+�͊�]���g�Q��2郎#U��Kz�Z.{Ft��R��agH���N�=g2�o9mV<�m��KZ�_4l��������%��g�4��)��c����xa�@� `L�� � �@b(W��>b�X��j�*��{�G2g�.��F�Z��Oڪ@�9��?�Ys�i^��ʗV6���=3w�>��Z�2J-[�Л�j�n�bv������)jݶ���O�:���к����E
'L��>}��͛�'o��S��{�Z�j�,�������}�vjӦ�mV��|��WJ�6��VxD�?�ݮ��5M�6U�G5��	Tlءы�iԐ��?��x��5}�lM�����S��t��i��b��i?]Ҹ�U4[j��M]K�K�.�v�J�OrM]�B�G�PaɆ��n��֌���kt��y��X�^�b�
�����Χ,�O�7�_�Q�g��?]Z�t���zW�3��1e��~�ѧ��9�v�o���f�oG�z�Gvk�A.�W�fM��dV�
�Zڮ�9���窪Z��2�}M���ت3g�X����i�`6�3p����o�>���8Ζ&v�}�P7'�<�"po����� � �}��7��@@��/^\k֬v���Q��)����͙�P��4S�a��5j�g�ٿ�
��ލ�0��/����֪�Wڰ��f�vn������qcǩ_����oU�������g�k׮Z�f��/mܮ][�m�6��l=�{3�vk0j�(���UM�����	T�Cc�l���p�x���4e�t���Xy���O�rQSf��́�(_���f5�	B�ۡ�K�k��V**ِ�\3u]�48R k�p�⻿4d�:��B%Mh>���3�\��A��Q�IV���xT��viS�Y5l�L;�Ji�SS}���eB�
�Nj��_i��S�Iuy��u�S�X���61H�:��cy�a��!v�}�P7'�<�"po����� � �}��7��@@�0[@:T�ϟS�>}���l���6��>�=����A#Ǩ_�&z���6���r��X���m-�B��6#�z��e��6��;5g�j}2��]�6��tD�5Ae� p�ڵjܸ���ٜ�k^>`���۶�?���'��f��⿥��&kb���P6�-�Mi���4��4]�G�e�Sz~�㴺�����R�a��\uP�׮��o��;�U�Ϟפ6O�նH
�D�[6R��ö:n7�v\�'.P���rް�<c�Œ۠ɫu�|�;Ա�~�sY��m�z�H��,����#>���T2��-�l�i��$�u��֬6�0p�-�MlV�~�b}�������E��g��K���6����_u�\��پڼ��?���
�[o6�#�����쩤�)��	��j���Jq�K�8q��A@��/@��Lj"� � ����]��xZ�f.ӌ�M�_�翚�m�iʒ;��6�bC�~��T�R�[��
����^��:U���5��>��|�r��tI��sE,����Jc��^�~]�*V�}�ݧiAA:��jԨ��
����vp��QW�-���Ts���=Ҡ�s5�GC��$e
w1�O�x����9Z9�eߞل���U�<���r�*}8G�*<�w��ߞ��e�6�>pL?�aCt��}�+�?�>�\��s�������ӧP��J�%����dC��G�(_����ç�Ӷ��q׺vke���%J�Jޯa��S�B���i���>U�B����O٠w�'�t��}��%[��u[�t���o[��+s�Q�374f�T
�
��}{Q��,ע�Wm��ަ�����?�֒o��զU�>@�zAZ4{���F��I������8Q�C Z`& � ��{^܍ � ��,`Vv�����Z�#�n�@�lz�`5{��
&�����^��'����W՟xX�T�߮d
6�[���o��*�*%O�B5�|T���oWx~�1���8V�ul�8����=v���*  �6h��-[ڥ�_o�Z�~O�ΞS�ڵ5f����…��9s&
48bŴ#��N�Rg��P��=�7���nh�q���~P�oЩ�z0[��ήV�Դf��Kf��٣�L+VT���`�<���k=)H�3�+o��j�N]?/}2��;pX9��P��z�^-e���/H�f�֩C�(kj?�,�[�^�)���;Ni�ʚ%��dL�w��מ���kt|�neK�R��gR×�(K:i��@炯�y�'W.}�f�֭��̯K���?m׀�Vʓ���ln��\�綾�膯4s�ZڿOJ�����W��aAud�\Y3��'��ǣ�+8Ez�Pr��\S���JzSSFvT_��烻��+�$��1�@��p�+Z� � ��W
���m'l�K�eVj���ׄt&�4�w,�4��Y�j�6�̗Y���.���l�X��-���9#��̈́��˱J���\7�����p|���Y��Ŵ�8����y��o�5�M��3Φ���\7噕�濎{�5G���1u�6��i���q�v�r�8�p�k�3�;m����>sݴ-���3��+���-���h��f�l�%+�c}��f����IYğp�YS �x��g�#�@@@@'�L��p�7Z� �	'@�p�Ԍ � � ��(@��T�@,
�"&E!� ��W{�0�I@@@ f �4����j@H8��f@@@�G�xĦ*bQ�81)
@�B��+��N"� � � �0s��)@�4ǍV#� �@�	'�=5#� � � �@<
�#6U!����IQ � ��^1�t@@/�n�w;�$���8p��z��I�H)$|�X:��dL��uG��-�E �'���% � �4���8�J@@pSএt-<0�\�	�c;0��z�����#]WXl��|�0Ap\���G�����p�7Z� �	'@�p�Ԍ � �q(p�G�~�I=~Rʭ�s���a�X㫞h�|�2m����F������n���H+�M����Մ���N���H������*�UJ�4��P_T�Xu��yO�13CH��Is�h5 �$�p��S3 � �ġ�iܗ;�xŗj^�i�T����.�_�D�4G0yE�y��zv��5A�������7|$S�y9
\c���FxP�h[r�}����U�lQp�%���L%D��=��+��ps�GbO�8�,)	�� �Om�B@O ��Q� � �x��#���&@4+z�˄��U����/I:$��v�vݧ�R��6�4��y.����'����T�qt5���gN#?�_���r��ϨP���6v6v����83ٱ]���_I���Ϝ���U�bp7[m�g�X��"�g�ϬP�}�&�^��߰��_x;���_�J��/�s�%��4i�.m��G���IJMl��*i����m7�:�L[LY�"ٙ{�sf�{�3��b�����,@��@ i
'�q�� � �p�	gO� � � �c�#\3A�Y�jB�4�ϛ��t�e�t��԰�x5z��P1�
�Lpg���.���Dž.�wK�6�f���?nh�O5�׻*�E:qC�=p��]��&����88Bpr��	g��lB^s��(i��=ڹ理����~�V�n�¼L�f<L��{&8v�g�Mj�>����Ǿ#�Ӷ�2�7�y3�f��iO��q2e��z.��أ�~ڬ��_�16+��J��b}���n�`�fS���|���|/��i�	����V��FN�וiU�F�_k����
:w߭����	+@���Ԏ �IO�8�-F@@�����_^�之�"eZ�ޤ�>;Gy�g�����
iʼ5ھ{���~S��*�
**�O؊�Wێ�åJ*�:t`�rgI�6�_V��>6vlA_�8�⅋
��͛7�J�U�VU}�����/[�={�`��Q��6n�F۷mS�2e4i�$��;��7�H������i=���&���O-�r����FK�������4z��eϤo��iƜ��s�_�v����ԴaEЮ�i��.�Y�7��D�kʛ�;����Ҥ9_j���:嚪=��zȆ�gC�����=�|��6��_�j�%��Ly2�SA�`���ڬ5ڳ��._���O>�ϔ��c��+����t�%�O�q��mi��	lg�HK>�q�V�T�Kϔ�m���Z�r���4s�^z���~��V��W}���;�M5~��V,_�FM�ڴw��Z�b��wz]e󤊓3�����%�T�D ���*@@���=j8� � ��'`�ٽ��3Wjש�B�.�T��E���Oj�ȅʜ�_��~^��K�{�S����*��o��'˖T��Oٕ�}���!��
e1�چo�_��
�^�__Y�dք�t��IU{��*W���;}� IDAT#���=z�Ќ34e�TU�RY[�lQݺ�l\�V����KL<j���h��ْ����Q?n٢��ҸY?�豣J��O������:z�ҥM�^M�Թ��f�ԃ��J��s��u��9MnS�n�mV�H%
�U�g���#R��Cէ�[*Y$���Y��Ҩ��t���^5>�>;r�W:q�u�mf���庯HQ�Y��v����&�mǶz��4u�z:x@]�5Q�������.
llW2<C�2�W��jەþ��iV������V��J]�Q�-U�P*}�q�Nާ֯԰+����p�ڱz�TiV(�tQ��m�ޫ�^�Z�_0�wf��p�7Z�0s@pO��=/�F@@��X��*
6L�ΟW��@ըYå�L0kµ�?Ӱٟ�g�7�H����4JC;5Ӄ��6�S���U��ȑm�ֽ�ڌT����B�"��u?հ�5�wk=�EJ)��zL6o�l�ŋ�|��]=z����R�N�A�iʔ)ڹsg�S��7o^u��]͛7���=Q{6S�,�O�C4t�(�P��j�,�y[��A35��kz([�ƿ���NR��U-gع�}V�u�Ő�J�L�0c�Ξ9���Ul��q�{�Q߿�����l?V/�xR�J�T�A40��*d[�;e�w��|����kt��y��X�nŽ�p�Z�����S��a�Z��DUy��*>�I�;���_S��Y�9�A�Ц�jH��v�m�cU��j��ӷ�W}�s& v�����S�
Y�a��z鹚�_�A��8�T0e���glՙp����}#m��r�4h�X�y���.���?�
s�&;7Źp�Sq"@'�� �,@�K�@@HL�ʕ����T^�ăj��U.5�O���6�ӈY+4m�{ʭ��r��5g�\���\�҆���w{4v�
u��F�2J���uk�n�������C&�C�V�SDJ��W=��&LP�>}����ʓ7�u�:u��w�իV��K*X��ڷo�6m��f��~2U3�*m��ʐ&��>��j�/`��
�度鋑o۳|�9��6�����h��_@��-��>k��uyCr���m:w�
�M�;�K?c��dK#?��
��|颞�^I!�Rhꂕ�6��
���k�TS�YE;4<��ӱ�=���M{5`�:e˝_�o���U�
��J�^P��4��q��]�6�S�����}�Ƹt��Y}5�?�zOШik�ꗿ�-W~5|�iU0����1}�8�'�̄��m�}�4����v�-�7�+7�!k��FIA � �%�^2�t@@���/^\k֬v�I7|‚��Ѩ��)hL�
/�|sFs,��>�T0���+7��號�g��ʟ^z��5�WCu+����\T���a�֪�OJ�W=���ƎS�����wߪ@��a���ڵ�֮Y�bŋE�k�Vm۶�1ޫ��e
[}kBV�eB��?��iAӴnT��-��Sc�nа�-�p�0s�/�jj�tM��Ty���O�rAf/��AM��Oag݆-Z�[S��դ�-�����-5�9�x���:y�߯oW�n�.ب�Û����LY�m�~��93�jހʓ:�{So�[��'}��m��������3���]���~��U�������z���BI���8�^G���S�?y��vzWs��;��.Mvn�s�8'��D�8NX)@<X�؃��!� � ����C����ԷO_����.�5���A#Ǩ�7��im<{�V�Z�QÆ���`3���jW.f�ͥ_�ּe_���mm���I��1Y�v�7nb�|6�׀��pv�������l=�{3����l�lL�9�,�PsÎ��8n�:��L��;�w��#��+>~C�>�nmB�5����ԵU=�@Jš�-��~Z�?]����3y���A�	V�ۃ'��g�}�����?�r��i����ߔcB��{�a��hHǷT*�ߩK~�[ר�&�a����	pm;���ص�LǮJ^R������M[�lҺ����ԑ`�
j�5�O��ac&�E�F*[$�������r�w&qbz/zs[��y��{R NʣG�@@ !�B=���d�|t��9�ۻW�W��B����{����c�m�>��me9�~O����љŦ�]w#Tڱc�N�:�BEl1x���˃.�%:3�qL��۷O����Yz��ܤ:/]�r�%>��O�
�z$�}۶mӎ;�6m=��Ԍ=��04?t7?;w���۱*��^�ģ�ck��蓙K�
`���L:aB�^SU G&ux�]�z����5�g�n��`�����(��W��}Ǩz�z��Z�([@�u=���T����>�%���U�Fu5l�P��`uo;8|��V�~�pu�ni��׽�Jf[l�Y�E�tIS�����-e`ch��F�l�ȕGީ���R�~������Ӆ��f��=�*�[]����s��J������ɤ�.(��O�3�i�9ʔ9����nCڃO(g�lv<F�Ү�4�Gc���lC�V��������5�t��y��L���]'�9ԾEm�H�N�ר>oڰx���Z�z��릜�Wsv�9�x���%K�V��k��ٿ��%�&m<��׮��>��Dv00>���֢o��M�*����5k�|5nPOe�?�n�㧅���q�Q�81�
mB@��,@��G'ڶh�"���0`�v�ڥ�+����c6|�=���
_�������ׯ�me9�~O����1��sG��m7L�r�
}��z��z�V���u�ϹҖ;�E6N���Ow|m�u��-_�T�R�c�ﹽIq^�j�*���w���W�ԑ�GԾ}{�3g���?P�l���_��'����>%�:�Y�g)Y��<�c�4g��O���KWo��;�V�6��_�_fY2~���mF I� ��i��:v���ʦ�
eQ�Wj���τj�̅:t�|S����rՒvի
�}���7 ���K5*>�:O>�:>���`�g���yᄑ
H��
�e˖6T4���~O�ΞS�ڵ5f����…��9s&
48b���o�8��A�u:����L��y3��W�
Y�a�>
��F�.\�����r��+5�/��8+}:s��;���dխ��
�ͳkw]��O��;S�ɒA�����sҸ�K���!eM�Z�eP�k)S��:+M��DGV�4*U(������K?�yLC&�S�,YT8��Z5��C��3>���mY�g�+/�S��>�u�������y�;W.}�f�֭�+ݯE����U�����ߊۛ>a���5|�E�݌9˴���&����z��U6g2�Gvș5���PA�F�S�o:�M����zM~!W5edO����ЃO�A�IW�J�ث���"� �@,����S�<��W�*e@��!�}�ߧM�o��ysu��M=��3z�gbaWK�,ն�[ճW/�
x���ꫯ�96�\0��m�v�ؕ�K��83�M��<������j�Ju��M���~gm�j�8��0q�v[�N�:�ʔq6o#WbVi�?�~+M��
еk�U�H���KJ��q^�4펅�c�j+����{�R�.]�={�����-[4{�lu����e��*g�gmpZ��`��9���6�'���_��"eK�=�����֫�k͒�z�NE����{���$-��l�k�5��b�]�rԬn56��bV�:���	�f>����f�^t�հ�y�7��Y|����qƮ�q1�4+d��q2��c�Kv8[s��������c|���fͳ��s��gL=��̽���N�bs�1^fe�)˱u�)˴�<g^������L��͟�=�nR;��v�;�p1e�R�)ϼLY��M�ͦ�9Ñ̽�-���<g^�9f�1�vlI��Nyw'@|wn<�@B'�P? �$5�hF�h<���jذA�]��RժU��X�U{��2��,�qvݝ��ިf�i]�.XhW��z:]���Y[��,!`c�e�M�:M�z�R��u��Q
8PŊS�-�9��r��駟5y�d
<HiҘ�������ʐ>}�OF������68+���GlVJ�xZ��wT�^ѡg��v��VǦ/)�� �&}@ �	� τ&`�u�������&�37�w��{�9dz�-��(p|���[@�>:L�������\7/����y��ar�k�l�ul+���}3�.S��<S���o�s�,G�6�t��y/��2#���HG�R��Y��0��d�i^���u;�Mp|�1?m��ũX��R ���,	'@�p�Ԍ �IS�8�q[��2�]�V��}�1c;v\�G�R``�R�H�+W�բ�����t��5�(QB
6��L �n�Z*TH/����٤,P��`}�C:t�ݜUڨQ#}:�S�șCM�4��E��W���?^�q=��s���_4o�|e͚U���C��?��~,TH�K�O���Uǎ������haèkW�i��믿v�ڵk�x�jլ��*?��;wj钥v��}��v���T�y����%�?�d�2+�̪H��1]wx��':SǏ?��U�V�U��U�Z*W���sL��l��ѸdɒY]�v��o
�o�^���W^y�n�=o�<�����/h���1��du�Y����W����w���8��f�3�|ݸy�n��&u����ydB�R��+R�V|�2gR�7G�Ό�5raf;�5k�(_�����վ��t��u�5a����}�p֖�fw��1��	�Ν;�"E��y~��Q�)SF���ZD7bꫳy���_~��O?����F����G������"???�M�V�ڷsj��������;&���/t�q�Ȟ]ٲe��i}������Ա�
.��Q�'�����T����D���9S�"��~���Ι��!!*^��Z�~��yu��cG�n����3��~� ������8�F��S�R>v�Y��8+���� � �@b Nl#B{pM��5'�B@�1̅��^U��=T�ti�M�6M��w��x�	���ÇW�4i��wt��E���W>XB��a��>R�l�լ�;��/��R˖-��#t98X3g�ԉ���L��{%�٨M9r�
.lC���GC�U�޳?�7��~���{OE�ծ]�4b�H=��Sv�ِ��6�*�@1��3X����-�׭[�%��h�С6H�?�~��=c̼b
/c*�?�_AA�mhݡ�J�*����ع#"��Y��Oty��g��i��Z�_���?f����^��m�b<d�:���
�W��S�L���ho7m7+�˔)��,ƕ���c��ƍv���%�럿�֐!C�jчz��\3�q���;w�vF�еlٲjҴ�n\�n���={�K��g��L3�'NЁ����nv�����+V�-�s�����pLm�lf������X���ǾG���c��)S��G��ʕ+��KL}u6o���q�x�����1>1�o>gLhݶ]���7�>Wnܼy��ݼ��?X��{7��c��?���:�ș{�IL��lDn_L�S�W���9c|ny���c�s8�6E�M�=l�0U�TI�=�X��k�֧3>�UK7��'j�ֱSgu��ʑJj���z ���J&g\G@�D*@�H�f!�D��)� ��'@���o���=۷oo��={������a��~��|`�2[�~���6X3�A��!CưX�w�}o�0�	�Lٳg��tV����.R��j��?��}�(K�,�J�֭U�F
�i՜	����]�k^�ǏץK��xn����={(gΜZ�j�>��3��t��J�,�z��w�~[eʖ��q�|�����o��=���w�gj����?o7�1C��:}�t��n��R�ΝT�re{��ҥ��ʕ`m��>��#��G�6�6vf�lk�[��=CժU+�{�E�ո+s��8���7mV����ֵ�n�܌q�E52!�Y�޽{w{ɄQ:tP�j�T�n�s?�Бے7_���udcgc��ܹ�6�oެ��W�v5~t�r��s:/�}�F
�M}C��߰��c����;�_*)]��m��
g�+Q磻1�S���)�,s���l�4FQ?��1��Q_��9ݿ
�ؼ�ƍ�bŋ�J�ʶ9�5�+�g��A��W^�/��o�W˷*jŢ�j��2����'�@@ �
'֑�]�,@�A@� v�eV����l�\�~�����م��~ʔ)�-e�W�j��u�+�5��m�Ͷ�wz�m>g͚��9s��'�T*�V�RE�kT��
�w�m�����C�<i�N�<�.]�ؿ�U��ׯ��]�|%X�N��h��03j�+���>c�-��F>�s��b�n깓�3�ן~��zժUK�<�HD�c��_&�<w���vw��z��+<d�6h���[�����>��̭8�!mڴQ�ZϨV��v����v7�c5y���
���ٝ|"��z�.]�
���~��܏Gn�Y��,�qLc���e�����M�|�i�M���t���s�[ml�~6��A]L���/�8�6�G=����Jtp�ϙ�6p%v�ލ<�|>��~��3�n>g�΁;����s8�p�9��wߩs�N*X��mNl��9��q>�UI��ݡU��Gݛ)�$��3����G�@@ �
'ҁ�Y8 f� � ��	��b�
�\�y��]�Ț5k�x�[V�:~h��j�YP�J�q�F͙37b婫�Ë/�S�j���`�҄�fK�W_yUgϝ���*��,s�	�+f�Y��<���;�8�0[m���/���[�jU��/���t-
�9�y�� 
0��������N�ZŊ�U������
�k֬iW �2��&vlޮ][?~<�yu�E]l�w��Q��WZ�^k�v�-f�ngpLc]ܴi�1�!W楳���+��y�f�^�Ż9Oڜ�S��|���E��1u;�\q%�mW`g���c��8��~v��wW�3Q&At��~�o߶��p`>cϞ;�n�>��R��� ��9�]�uI�$HJN���#�� � �����<� fj � ��	��r�J�X�����~�رc���
?�l�a�
2خ�6t�R�Ne�r5�趀�i�#3�4�y��<8V�9�|޿��]�1�u���7��-�[@o߾=�릛w
Ab�0�>|XŊ�gO�2Şw<��Ot���h���$�˜;۹S'=��3:qℚ4ib�6+��y��eS�y�u��\���������ڳ���gQ}��f�e�n�"V�:��QWGn��=�8�q6c�,�i�2/�}d�ih��t�:u���w���r�H��mUQW;�u%�mW`w>˜���9y��}�9s��w7��6�z#��cǎ�_߾v�x��<��Ԝn�^�"{L�
�}��}p@�p" ��@4�L
@@�=`��߼�޽{)G�����+W��G�eΡ}��gm��g�֟����>v�����3���Sl�1?���S�v�*UJ�����ڭ��
~��}:iR�y�&�\�`�]���,��ќ�\ ~5o�B!!75j�(�`�_�~��ؘ��;31y����M�j��5g0��r�6~�Ѯ�ݽ��h�E7L�fV�=S�=��c�ݜϚ#{v}�Èm��:ve��@v����ջ��f�iԗ	]M�m�	l�'+V��L;�gQˊ��W/����m�:��|`�v6�cj��+���X:�c�k��ib����[�gʘ�nu}�W���3r�H�ݻO�{���f:��t�t�ԣ{�ɓG-�}�o~���c�}���+�=ܡӮ���X78 IDAT�1w���lDn���<w?g[�G�#�?��mݱ���s�i�?�ϥT�SG;���k��@@�S�=e$釷	{ۈ�_@�W`'�&L���t��%�3=k֬��.k�:q���̝cW������z��aK�$�>}Z'L�!b�ܹ�P���d��{��J�,�ٳ��…���"E��a�wl�)g֬Y2g��O���u����3g5~�x_V���ո��0a��nݦ�iӨ��u��
M�:��������ٰ��S��9���m0m�n}��G���l�
,��\˖-��K���@~u��9�o��&Љ�,s��}��uӾ|��)G�����]��=�8��Y�d��':�dɒk�…��'��R�L��_n�����lݵ覀c����T�ᇶ�[�g3g��df����ˣ5���M�:��-[Vo������k���v5jdW~;�kf�hP�4eΔY��d�[o�u[<u�T���/���+y��z��z��Sݏ�N��	�������+E�*P��=������o����-fud�yW����y٬Y�h��l�m朙�O=���ի�!C���Q�Ԭy3(P��7��2}�i^V�\ņ�E��[]G}�U�����ѣ��{�瞷+��ݫ�C���&$�y���^��\9s)$$DG���c�\)T��-�F�n���8�w����!�l�,Y2��S�\��g���g�9s&�h�ž����E���5��G��Q���.��c���T��]�Dws~ul~G�&�0g����詧*�n�:�ٳ�=�=C��z���������cz��c�� � �@b ṆC��^��ف ��'@�w#��$?v\t��8X�`��n��qu� � ��G{���9 ��k � '�q�J�x�@�3�=��	ۻ�g'lk�@@��-@��Ǐ�{����==G@�� �;7�B�k���}���_��…��߉��kQ��S&OѮݻ|YU�VS�:/�QM� � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � ��q�K� � � � �H��@�� v��@@����~
� � � ��w{�8�K� ��1�G � �����Jԅ�.]:�͛W���P{��K��>}z�Ν���_��7�<E
�J��.]��АP������/�>����J�2���_�k�o
_�����{U׮]��^@�����"�= � � �ěp�QS�*@��� �^ @�d��mۦ����̙�wfΜI���?X<�{�ys���s�˚5�5zUE�����#Gj��]6L�߿�R�Hq���
THh���UK��~>�ڽ>���˗S�&Mn)���jӶ�mm�ԩ�*��^{�5{��9s�q�7w�{��z�V���}�" � � �@R NJ�E[�O��ـ ��'@�ׯ�����~�,Y2�F�ʙ#�
x׬^�dɒ�>�+|��ɓGu^xAٳgסC��x��9}ZmڶU�"�G��r�7^y��*V�q-(h�6o�l�]|7ϝ:uJ�?�_�l�Ȓ9�
.t[�ҤI�n�>Tƌ"�E
�:�S�O��&�ΐ1�52�ܹr+K�,��D�F@@@ ������#�8��X@�X�h����u��M~~��a��������իW�V���]�vQ@@J����ռf�f��7Uʔ�ջWDM&�x�\�"���Wɒ����s�ѽ�|�Am��;�w�ܕ�+�ҵK�ٴ�ȑ��o�r���wT����3Q���T��բE�}��1@@@��/@��ǐx��w�;�F@�� ��n�?{4x�կ���V���㾨+y|���Z�|��*k����&h5�l�'*h��9jҤ�ʗ/��s��믿V��]�рw��sg���¶ov���K`�hW����I�T��6l`o'��7O"� � �$��1�w���~@�v�hf����5n�x5{��.S:�yⸯe˖*Y��m�m޴YAӧ�s�N*X����Z;u�lW
����m�v��%J���o��V�ZE��s��ᨯ^�z)G���v�ˬ^�h�֮]��M��\�r��IA�@@@ ��A�^)@��N�@@����;x��W�F���C��G���5����Z�`�֭_�(C��R��o�լY��;w.>|D=ztW�9c�M@��sf�hRG~�O�!b���
		Ո�õ��~{�����P����뷮"6ϱ�=�y@@@ ��㍚��U�X�0@���9T�٫�.\��.]�ܲR��ѣ��ߌ3H�R��}�}~�=�{�/s��U ���>�`s��Y�{��Y�.]Z͚�#�ƴ��w�\Ls:r��}�_�ᶿ�����e�{��]D@@<U��SG�~y����0�C@�� �AԜ�;r�H{�c�=��9r��cڴ�{=P����]{m��v�l���SO)[�lv5�
_��S�N�����ռ&Ι3�K�)ǝ�N�8�*U����t���G��^�v����F���!!�������<@@@�x �7j*B V�c���@@������y��ڽk�
A��|U�r�[��R�J��cǵt���矺~����l�l*�<5h5�yO�8n�_�re��ϝ��tp�|�dV;^w
�͵u��i��E�^�@@@@O ��ѥo�,@�ɣK�@@ .�]T5a�+�J�*��%�)���
��>��6@@@�%�X���Y�8���@��p�B:� � � �����=$>��7&�@�p�Z� � � ��$@K��@<�38�!� �@� N�CH@@H���$�>�B<M���CI�K��Y��;wH
u��-壴i�F<G��&!�{���n:� �� @�� � �1�~�8ķ��	��{R�w
{��k@�{໷�I@@pQ��E(nC '��I�<\�����!� �@��:)"� � �@T`�I_��8��bz�T�����n@H(��^@@@�W��e�����2� �ڡ�� � p��w	�c � � � �����x�Z��@@�=`���@@@��p8���^?@@7���v@@@H��Is�h5��@@�=`���@@@��p8���^?@@7���v@@@H��Is�h5��@@�=�h��_��={���ի�r7 � ��$���B�
���7�J�@����{��}� N�cG�@@ a��qߵk�2gʬ�i�&��P+ � ���\�xQ�ϜVѢE��@ 6�cC�2��7�F@H��ь���U�?hK�ӛ�#� �I_`��]*U�T��=@�p"���]�� � ��W{���#� ��]�8���C��$@��F��"�0�@pO��ؽ�� � ��*@��T�.@��L�<V��c���!� �@	��ԢX@@�� �
E�@���	$M�9n�@N��8�f5#� �8 vJ�
 ����.Sq#�J�8Q
�A@�$ @L��)MD@�W��{Ǟ�#�@�Ǿ)%"��L � �I���4�� � �q�7�tP�8��{ �<E@� &�ʉO�@@��"@�TF�v"�@R N
�D�]��Y� ��'@L�ތ�n@@�x �Wn*C ���{+@�CK�@@ ��	��hjQ, � �@ldž"e �a����p�7Z� �	'@L�p���@@�
;%�@�e`����D%@����� � �@ &NӔ&"� ��+@�cO�@ ��cߔ��P�@�$``O���@�8`�R:�	(@���T��=��"� ��W
{�ħ� � �@R N*#E;@ )'�Q���.@̬@@� &vo�p7 � �@�
�+7�!���{��=� �ء�c � G��q4�(@@ 6�cC�2@�0`fIS�8i��F@�� &N��G� � �N��q ���T܈@� NT�Ac@@ 	'�iJ@@�������ڷw��B�+eʀ��ȑ#:{�l�}||�*u*�ʙK~�~N'ř3g�y�f�<yJ3d�#�QΜ9�����OE�����…J�2�
.q��6�3��BCC�.]:�͗��:<������x�⒏�Qʙ+�2e�t˷w��C;w�ҕ+�*X��ʖ-뒅S,n@�K��d���	{ܐ�!@�c�h��o߮�E��1?�#� � ����}����l�?��M-[��
�]��Z�`�m�O�,�*<QA�{�VѢ��?����O�>�9s�nܸy���>�����lٳE|�QO�ܹ�e˖[�o��M�^�چ�k֬���:/�я?��,Y2��V�)"�y3D�<����8�ҥKkŊ�Zt�s<ػ��~�m�׳g���ӆ
ni_�Lբy�x�]%O���8 f� �4����j@H8�h�	�nRR3 � ���_�+W��Z�2��M�o0#��R���_��c���NiҤ���	4h`�X����O׮]��{�|���W_�?��~/6��m�v���'��g������?�;�4�:t�6lpK����p۶m�p�"{k�…e<v�ک��o(O�<Z�~�R�N�[�3EH��Is�h5 �$�p4��	7)�@@�?O�����[�n�s���\�S0{��5�3FC���O�0^�=�\DY���Ӹq���+V|R={�T���K�4k�,}�� u��U͚��Ll�&x.S��Ν?o�3gND����H_��ҦM�_���u�z7l���i������L�2vq�����fU�1��駟V���y� ���. q�P�8
MB@�D-@��'�yK�@@�����JO鯿���*_�xQT�r�hɒ%��kt�����{��뫦M��?��D�v��)���W����2w��s~c#6����K�'O��}���ʟ?��¦�!��z�ͦ2[_;^1�u�;��j�I�&�T�R^��{weu�q����hd���b[�j��mEYD�aA!�OAi��Q��(K�>,!fc��
�>���>��h!,U�~Ι�d&�I�$3�_^9�s��?���97E ���Ԥ/*N���	@"C��O	�#c��
@@ �"-~�ה��ݖ�\���w�j�xg(�a�z]�:w����-{�~{�ۊOH��?5~����P�]��}�z?�����{���`3�'�;~�{;���d=>�qM�4Y�f϶�ۼy�Z�jUb}5k��]��{��\o�O�8I��{�������v�ֵ��Y@�UX��
����pX���#� �@%�A'���Ȑ � �%"-�ݫ�6o٢���i�:s�}�9��������%��ի���:r�v�ж1��Ν;����_xa�bcc�Q�����9Q�q��/}$�IDAT�s3'r�o��}�Ν��[�հaC����W�ުo��F7�t��f��꾴q��k��~z�-[�̚y�6T#G�h�4B��W����U�8\+Ǽ@@�����W֖d\@@O�H
���߯�n��.��+�_�����mۦ�颋.�Ν;T�~}����f͚i��^���n���.��Q#5t�Ѐ6�k��/��N�:{=c��_t�<���V��ɶ�{;v�ڌ��3RRt�^}�ƽ��K�<h��w�DG�z�����^�6oRvV�N�>m����p-t@զQU ��;����p�V�y#� �@e	��'��-ɸ � ����3F.*��#��'
>̶q�uj������_j�/��4w�����tӍ7ꫯ��'�MPZ�^=w��^R��$U��}��l:4'uo��F=z�ݿ���]�T�Fu����;�Mx�ч��}����եK�y����٫'< P�0[�� Ϻ1k@�<`?����)@@�H R༼<�p�
:q"O׷icCRϟ���>��5n�H�wl�\��=�C~�G���m�6m��vu���%K�j�����7Qr�`]{m+:xH�/��;t�}���2CQQ�.���o���7o�{N������Jlk׸f͋S���~��jڬ��]B|�>ڳǞ*��`5o~�^JKӳӦ���<����x: P�0[�� Ϻ1k@�<`?����)@@�H R�/.�_�|�.,+3Smoh�U�7�O���fϞ�N���;����y�}��̕�6lЕW^��WY'���}PO�Jr�A��~�W�����sںu����e�m]ֻ�����g�����={ڀ���͛�*תU�?(C��-�@x
�gݘ5 �T��{��۔�� � P$p�t�oo׾}���_�B�����?�z��o�M�8��m�*++�o0��k�))��}ܴ������>7w��͝k�^>���n;d�`������>l:O�?Q�M�r��JOO���
���gN��'�W,_��k֨���8��g]vYc�l@ ��h�@
�`Q� ��������er � �@�����e��{��1խS��;x+qZ?j�'O�d^�4h�>��:�a��p*6K�(�*'�A@�
 &��m� � ��+@|�r<�� fW ���Y7f� ��'@L\y���@@� .�� �@��S��� �r0@`�0ئL@���U����/@|SzD�"�+B�1@@ ��	�#i?�@@ ��#��,*Q����!@�#�x@��0p��,@�p��D�p �*1GJ
�+@@�s &>�Ck@@�
 �PnC� ����� ��Ҳ0@('`�r�Zt� � �`(� � f' ���Y7f� ��'@L\y���@@� .�� �@��S��� �r0@`�0ئL@���U����/@|SzD�"�+B�1@@ ��	�#i?�@@ ��#��,*Q����!@�#�x@��0p��,@�p��D�p���k�
F�@��޽[=z���q@W`�pݻ�@��U��,*H ��ظ�
�`�K ';�8�J�l@@���	�+y2< � �@i��@ x����'*R��"�@"A��8�1k@@"V�8bK��@��+�!�p�@��0p���,@7�p��E�P ��07��;@@�s &>�Ck@@�
 �PnC� ����� ��Ҳ0@('�r	��i�t� � � ���@�>�p���s��C�C�����Җ�)6.���y�8w������s���R5� ���p8T�9"� � � �@
T\\�(���Ɖ�g�X�p��g�߇ ��)��sWD�c�}��I(��ϩ+����Qw��^��{�Y)S��Š�j�]?Wg�v(k�v<�s7�þ!.��|� �x�#@@@@�������2s���ݧ˚\��C���k���ݻ￯/���;��u�96F��y�9��Q���|�C����S�;'�ly.c�9�X�Ry'���>?�_ =?w�6nܤ�u.U�A�����FӦO�G��u�\��.�U�~�w�~͜5[���W�f�4x� �j��c�gCz�תUKW]u���?���|9ߒ�[_ϙ���s��6=h���x�8$� � ��l@@@@��?6��С�tg�;վ}{m޺MY���3{�
G>�����Q�=�u99�*�|z�T5Ku���N��\5l����N {}6'�mp����rщSs�֡��(���K˖,q?c��lh��W�ĉz(��feg��C�ҥ�>�`��lޤ'F��+3v�Z�l�N�;)#=]�O�V�~��n1A|LL��x�ڴe�����f��srs�|�>uZ9��k�
%ڕt�6ڵ=��x�w��uB���w'�ص�V��_E_\��~(�|�׉h��|����|<D,I�A@��"@\U*�:@@@@ ��x�Z^�B��Rީ��ѣ�2V����	�L��u9����;�8{V]��T\|�֮Y��k�u��QM�6���\s��<�]Rxm�9q<a�>|XC���g�)}�*EEE)&6N��'�
���8t��=;m�G�O�p���տ��E��:|��.o�X�T�6��'�h��o�yϝ;Gf�ŋ��]ߦM@u3!�9|�D^a\����A�C5J>��^�Sa����uJLT�%�����O4u�3�7w�m�駟ꪫ~f۝<�%u�W�׸�l3s��E�vݻ'��g~g�y:<7{��g�z��ο4w�\<��7j�G���M7ݨ���]��?�Xks�w�a��w��G�9l���q��}���5kҵj�*uOJ���׬�����=��؈8@(�!� ���l@@@@��?���	
��������	O����`�Y��y.��{ԥKWu�r�j\T]OO��ƍ�0r���d�m�8n�8�h�B�:u��+W��+�!;�N���q\�sr�ٹL�8����Z��e�>uJɏ��u��CcǍS˫~�7^]�W���'��Cl��q��%���k7k�9�\z�k�=�8�eO�&''kΜ9�_��5J?iִD|��4t�|����l~��rr��;��ر^p��x�@���<e�������1«�9����Y�����z�����׶m۔��
-Z�ت$$��ގ��G��ڱs�-\�ԅv7'y}�G�����]�	鋪�PBB��s���5q�D�u��v z��(�@( f7 � � � ��%Pq�	�|���:v�Ǝ�+�7+q�pip��8����a�:v��ݒ4����S;Z�;���GhѢ�*pȞ��s�S��9��={��˵�k׮]5�<ծ][�����%��~�Q���[�ƍj;O/�vp���9�.��!��ǫK�6 _�f�>�`�&=����O��խZ�s��Z�d��fdz��6�ҍ���
j��)jv�e%`��Ϋ��5�BS&OR�:u�ڙytp;H�rͦ<�����Q&x7?:����i�]�����Y�۱��ee��{)��0�_��Tu�֓������u�v����,�?;�@�h� �8��	 � � � ��y	TLl�Ͻ�?���҈a�t}��^�u]5\Z|w\�rrrU���{W�����?kBI���^����%��때tU�����u��K;l`)>>Ag�P(�}f�M�A���K�W��;T�^=
0@�[����+�׮M��U�����t�'���J����5k����ԫW/�]������&N���mOD�X�^Y��j���Ȅ�������2���'�Njmf��{�=�ܦ
�`�z�_���^\�P�~@gΜ��{�ֲC��u�	h��@�K��>'�m���2��ieu?�?+K�~@@��W�J�N@@@�@��&�=r�F�|LÇ�/�\g�v]��z����ټ�Dr�����A0�5'�kլ�����&%uӋ����h>��z���cL8�J�.��зǾU�=��������W�Z��g3�Y绊e���[�lQ��E�D�;��.�R�y��g��KR�)�
^��Æ�e˖:�wR��+����e�g��z�駵45՞�ݹc���p�ժ�T���;u�^��z��q25t��Zo�U�Wz���z�T��֭��j��|�}�8.�#��r/�z�~p�#96��n�λg��~��?8�`I� �T�Ri։ � � �A(���N�:U״��:v�h�_>:
O�8L��P�}7o�
\��]��+�6s��5h���D��m�^ݺE�&M4w-k̘'պu%$ܣ��+�z�Jm�6W
K=z�Q�t�
m�t�eff)3+�D�JI�a�BNL�b�S��֭�2q��8����۹�~�����{4i�-]��i���;g��ի�a�G�h�l�r�M0��|��ϳW]���Ё������v�cƎ�۵S۶m�����?�����!C�tW���i�fmX�N�SR��؜�������x]3�yƣ�3h�ҵ�u�[��bbc�WM��F��>}��I�&Z�����l����I���/.������~�$��J��ߴ3}��@;�W�~,볿?P� ��Ew � ��_b� � � ��#�/v��->�+�5�;�n��,M�qq^�`�����`mтmh�_{b�0h3�ܜb�
�\wp|���5}z��}�]5j�@�ɃԦuk;ƾ��5y�}��
:̾��oش�^El��~���w��\��^%��w�iZ����{j԰�''��~n�ܱ�m͛?_�T�F��H���喛�w���Y�fiժU��]%�ꖛ��㯖�z����'O����S��;�R�-�ب�jܰ���wh�s����wh�Gu�X�{�i�̙ڿ�35m�TC�V��[�x7���	@kԬ�kZ�R������x;���`�+�.��^}��'T��Z<x����I_��5k�!F�
O��\�������fߙ+�}�ov��;���{�w�Uծ���jK\>���+ �D�p�֖�!� � � �@�
��x�A�#��..��7�����<Ce�+��]�O�w�񌞋���H��W[���p}N��*g��\#����~K�xL^r����ӋC�O��؟���}ͷ�|�޷�/M�~�V�] u�|��P�һ]��jW���#�$� � �@U �*�f� � � � d_'�z�>%�I]�j�=�8�>��'��N�Ğ� All�b�*�8qB=�'��8�S��r .'X�E@�� ��Ҳ0@@@(_�W@{���ᯙQ�'��w�e�^�Di�OT^3�����S��D��+E�G&:)"� �@�Gx�Y � � �����،�<	���Zx�����	��K���u������~+V��b�
@�_�8�k�
@@@@�RJ��!����;r���v�:mY�b��*e�@��z�� ���p�U�� � � � �@���['�ä�L3D�C�L@�F�8lJ�D@@@@ ��C��&R�#���@�K���d�@@@"\�8���BD�8D
�4@@ l�æTL@@@BK�8��l"U�8R+˺@@����K�~@@@@ ��#��,/D�C�L@�F�F<	��IEND�B`��PNG


IHDR��QVh�.IDATx����OSw�qgv�3˒�bns
V@����iQ)--(O�)L`X-"Lt*
hpn""Sqn��].K��_@v�e��c؍A1M�N^i��s?N~��=߳a_�sw�egB�iw*k����_Z�sqq����'O�@���H�Y4&.�����
hm,ڋ��~-$���j|�l��]���
`����:'/������qIi����M���pM}���gs<ݏ6 U4��J4wt�=vg����8Sԏ	�|
r��2}}���8�r��@;MJ����]�5y���.^�>r�ַ��GFo9�d��Ֆ�B��T���;5�@�7w�Ao��7E���/R��y�"���)���P�O����O�ӭ%�B�A[�z\;ya��V@�3a�GY��Lg����iV[�%+yO�9Ö��ϖ���R*}sb*l��K6�ތf ���<��s�ԙ{�U9���342��qʠ5g�,��C"���TQw��t��D�j�uV�z��Nu�t�|�V��Z����t�
t7��v���:��pE����DG�_�zU/!4^e�cS�=�畋'�3�5]���^�t�Z߹KJ����תچ����>e�Jg�;}�KLS֮�d�xܬ<۔/�R!��#�
�s�Ш}V��R��&nݐ�r�2��"�@�ڶ3!���{��ܐ��hvo0�6e�~���.���co�����/V�N4����sx���mumL�m�<ܩ�c�/!�r�*��|{z>�ؼ+1���Q~w��/�8����E?�����-'S-{����z������ˠun;L�����;3�F�፿b9�#��ZF�՟����K|Շ�����8�*Bڔ�g���i���,l|.����pz"�5��}n?ݧ��W]g�k?TQ���P�?�,����:������ݒY��ּ�pSlI���XR�d������2�ϯ?�����ッ���;�����f��db<F��
h���ⲉ�s��@�\������)�V��e�U�\���d��)��O��:%�������T�c�&��
ۜ������%�~o+�"�~��>�n�o���w r��F�.��ѥ�{'-':T�������k<����s��LW�Ѧ�1/��濴=Izc��jl��Q���RC���H��<L��jx��W�A�8Tl����ɠ�e�ò:�=���M���Kb�1j�*��޻��#"������%1V��M��F�X���wy0�{�������9�y�̙s�o���|G�2d�x��
�o=T�|�w��=<���]?�<U�$���4>Ҿ�������V�j�7���{G�.5~^O+Bo��t��5u*��.]�o�Z��mM�w�
�Q��f���U�@̝�
慄OD:���S�j=�ccI�*�r���ʚE�ːB'g䂞�>K;��涎�﷠�p�EK���
��,�ƃ�H4͈npQF�
����c2�f�̚��
;v�����12��K��1Z�BQ��<DO?FM拑/�y�NV���s���Z��w�N��<i��B';���&Ѱ�Š���+��.=>��ib�#��o*�kT\���ˀ��~�*�T�ңS��l7��y.��l��tN���z�������Y�U{߁j�
~}_�ӿdȐ!C�2dȐ!C����Pʂ�}Mtn��o�>���`a�oM�
�	���5*OL�mb'O�kH����2�����z�3rQ1�ig�+ηnM�S�-�;_Yw���ҍq�m�[�M��!�5z�(���]�8�����B4���A��}����T������8��o��Ѐ���8�	N:abzn��U�
�3H�elaK��Z�T q�l�wlHU��B1J��k4��۲u۲��Q�<��_}�o`���;k�b&�W�����t�y���������C�F�>o"'a�mH�J� f� i2$�W/��wQR��E@�ͭ�-�ٱ����H����m��
�Q@-(�ӑ�J�oln5i����S}��J��ߎ�j�b�C;������J�Ȯ��ö�fF��/Y�r��#���~�g;��R�f�y�A�M�1 �lU�rݼ`�ҋC�2dȐ!C�2d�xĩ/L &~ʞ�{�l���
�ev�̯6���s��=���^�qcQ�b&���P+7�����!a�蠕Ĥ�|4w~=���`���QU��/�=?0T��jk���Ԥ��%A�'��7�z��m��	��bJBB�ٙ�M��5����>j��B�"�/,v��)������z�d�.�P�ѱ�ǃ�4�&�U,]���&��@äf-02���A�l�o��obI�0+Q74�A�3-'�osf
��ZjLm��Ϟ=�9�GFs95�0K[Ǜ7o�?…%<B
S!mh|�+ &_1C�B�+�ۊ[!>v�ѻ��9v�o9��k�y�(�;��ů8��dO��)D�[.N�jd����=��iW�\�f���m�0��{�oٶ��
lR�h����LK�d�
�!��f��4��D�����k3S���N�|�J]�Ot�d<F���
�h���bX%-3;;wf´���3
�O�����at[�.k�o���7�Vv�~,���n޺��9�ۿ�OO��\�R�[�SQ|��s�Z�`
��j��y��~�>s�{ �y��Q�F��Y(��|�-'RȐ!C�2dȐ!C��)n�OS@[5��|��	x�{#nw��e����n��8���sqE%����
�ք
*�~E{^�
��1#�������n�����q�0>*Ш(/�%�%�|���؄���QK
��*頪g�ס�*ƁL�U,����1�Ի��'I�&�Ф��y���qޕ��nݭM�j��0�l{)��~�4���4w����Zp^��D��%�JRؙ�����	|YԠ-�w�WklnC���'O�jߠ�3�N�XbnZJFe��ĴlF9t��1�(���y�h7/����t�m�ѫ�@��q�g�<}��o
�R�a#��j��07k6�x�c?��
ާm`4$;�K�Pz�H�Կ�����S�v"�/,�)�Gm}u-m'!�V�+*G���o�oӡ��b�๔�14:|$����\�����'G���3�������,����������H �_�JC�?���%��s��mi$��Z�^�r��zFf\��R�m�����I���[���
C5F34�3bE�ةId��r�ࣞ�9�-���Tf��gOo߾s���ǏO�����h�ܫ�����ܙ.��D�K��;s����?,�松�f��G���7~�I߁"��8z��/�%�w�r#�S���\�z
�[�a�T>R�m�N�} �[�}.�y���9%s&����q��3���ܞ�͛���8��:xqࠂ2Z�eȐ!C�2dȐ!C��f�y�^~
�:P��޵k�s��L@�'h'���o�0������VP�j�L�G��
1�[؝0�m����wLн�wA�T�) l�� ���^��\��
h�иO��ԩ(���o�h]#�:t��hn1�!���eto��10���!���DU��&O
j���q�\��(�Y iH�Kt�����[C����u��b��J߲��"{�C3gEo��u�8�hZ��Ҥ=S��;隷n��0�6:���P@��"�4.4bb��D�
]�X�
��?���"�����_u����…�z����kGW;g���|�%[�}�ut�������A��IJ�ᑃ�.(�X��v�f�40��6�"��t<�S�N��9��W��Kjw�1���x:�h�;���fc�|����2�6l�t��-()#���˯6�WV�}�	0�5��o�	�IA�l/,)k���NOںu���g��;0w�����bȂN�pQ١C�O�>��q	�A�\&߲�ނE����;w�����P37��o޲55=kϾ}ǎ�(_R�����]{8Ŷm��B�ԗ�fi���O�<r�x��@L�1�0��_�������S�i�s�b��5��w��ٻo?���o:|dQiH8.�+�~�4��C�i!����������V��+7
�^��1���1���Q�|I�7�~�768o���Ϟ��4���������D$�����Y�C��x#^(��+��g�G��e9�(@*	�=zī��/� �54��_@К�뎟8q�񚕫m]y�:�y8xhzr*oO�8�{:|�1$z.i<��IK�hI������SMS'-����߼�>����M_���K����!��<|�6�D�	��!C�2dȐ!C�2� �f�t���Y���՚�G��
Nl��e�	�J8ն�;�
�Ssr�ڻ�@vެ��
`���
�*v�n=z��҅��xUV���~����yW�Z���-rBW�^�vC����������b��<~I���G��8qræ/h?�?�է�G�::{�8h'�mVa����ܹ�F虖�Ca��W�A��4GWπ��M_~u��={��HN�޳+�E����ak�ҕ��l�q�næ'O8pp����F���T�Y��oj���U-�t0�yO׶�v��Ǎ���ѻ#�n.I��~�8�`R�{{�6���iX�ҳ��TY4/бS��â4�j�=|����^��w��1��%�pŒ���❫������gb�5�rݒ�����4r��Bv��
BW^�"93���xq����h3Ǿ@C��^�z��e�"]h���(��n�*�3���b	Y>�h.�����&~��u[�Xqs���)y��탇߹{���+V �g<~�ob�6*�����O�\=�u�>&(��mݾ#���YO�<|����w�Ql݆�fж�����ͷ;�Z���UFV�H�}G-��q��ܻw_�e�W���۷�� ���_��0���?���ݸq���W�!y�Ԟ>c�ݽDZ:u�G�~``b��lr�*��i��˗w��{����vhx���;4���
XsI��>�:!��d�����Q���z}tK��1�~>hR�t�� �㧧��7��/
�����]-��^XV�G��F��
��������s�Wp��st�������,D�I��1���0�S�|.����
���_`���ޔ�4v*K
��_˾�5+W1,VQ��n��=p�a�Fhi�h�~$-3k�9v��iR��K< ^�l�'��H&
𧂏.^D�ߺ}g�|���3w�����*������������,�{9�E���o\\Z�`?h�/"� �]0w/(i(/C�2dȐ!C�2d4@��Y����nש4`����'O�BãPC��Μ=�z�Ž��Ǚ3g�9whp��cbJ���-[���-���@���㫐�1i��ɍ��8��_eV~c�=x��e�t�zv���(�!��7��`ϕ�W@v?=|x��]��nվs5*�_��Y��kW�?�����\�r����^ێ�s�$6a��[w<���ݸ~���G�~�#TD�U�j`���1���;��u4�}_��4fX^Mw��(�L���q6?VM��:}[��뻚��M[iX��q�k��,�����50�5��7����mA�
j�V���=ad���xZ�C#�G�"�f�9�ђ$c�;�J��z���9��>7�w�<���oMy{O�}-�&���ܷ���׵�
؉�9<r�b��+W��+n�A��{���D~GM�#�Y���,��a��6oY�q4
�ela
 �s�v߁Cӳrx�A!a$圢�l��վ���۟~�)~�t<1��wr��1<B�������c����Ѷck{�#G�1���'�%P��={r�
hB/^�����~ T�����K34���Q�1~��z`b>�:��Ծ�z	�0e:��F���Y��ϱ�EnLg懻74��?|�hvn>�JI��;��oBע���C�k��Ǐ�__a���׬�pfv.W�<e.G��&NF�L��PB�'M�.fU4���d�x��"y�����j�6�,I��p���?>�f4���';/���E�7]&.U}*���>���W�p�����D�����)�L��Wh��u:Zn^>���ɧ}��c
�!���b����.��da�<J�ݿ�z���
�;v�AÏ���Lx�1��C�����,�����҂ؿw�!��'1�B<A~��*$<��eOYeM�����d�ui�g�B��R-C�2dȐ!C�2d4@?{���S�9����q�{D�p'��/��q��dĠ̙����������:u߿� x��ÇP�;�v��,9���SX���5+QY�:�;w��P5P�i������5k���c�?
3���2��$u6!�"��*�9�ܼ����6
�P�b��n�^&�#F׋����"��Z�U�l9�м���Q�ȡ���4�m&u��1R����ݺm;�D���
h{U}��U�U1�W1pi�o����#�N�?a"��d����u�K�[��S�1yw�Y+M�aNo��+AnB��	�ŝ�̛
#�6�,��D�Sv�_T1Z�|�
��0xM~Q1�Q�7WnY�CX�����}���`�`�xqP+e,8x0�9�༩Y<c�.i�~�&V��y��y�ج|���d14����ǟ��@������-�srur�
	��2�%4�_1��Qչ���ܽ���m�~�v�z�`N��>sKw/?gw/��������0���@uM����P;���4�'Ҫ�*�}�GFV.�A{�ÆH���0(�j���

Ρ~7O��Z:׮^cT',b���BZ:#- ����8���v�yu�
�1�H��ET�W�+����/]���T�"w���:�H�vv�.^TB7;�s��@�M��q�%����6���si[yq G-�X*K��5���2L�ڳ7ܨ��D��̜��Vh�gL\Brj ��ht͂�*�Ʌ4���}VIMz�~Lڐs�1r��M�f�Q3]2aZ������'N�/7o�l��=�1A#���Νc�$9-���8�N��Nͻd<F0�H�QM.�^k�#c�b�
+|��nB�����4/�����	H�/w�?�?dȐ!C�2dȐ!C����.?">I��K-��V����+���2���ƞ��07X��.�������7��w��1��<�n���<@~QL�F�r�ŋ�Pt��c' `k���ѡ����������8��
.�Y[���O�VvNmx�"!E�'�e���q	��u�#ū��)��vR���쿷��@�I0F�	좝�$@&A�,��ڮ���[C<>����V϶����CK�\������*�VqL�'���u��� �Vj��W+�_��&����tV�x
$U,{�	fֹpz@#z�O��+_�rFj&��gl��� #X\sK����A�}h� \��q�8TEa�Ǖ����sGv�ًOq��R����x0�h������2=�i�k׮��'](�Ĵ:C�R9	u�$�����ѣ��uϟ%��㭁�2��:��ҶC��S�ӗPFs��A�,d�<Q��q�H2A�/�D�Lˆq�����n�q��`y�����%���5���`�L����\�ؔ�,*t���q^2�t]��3t��d^�E��3����y��@��A'���z��&�L��u��68�/m���wi�F.	�F�:s����c,��b��>q�1��$�4��X�P���И���X�xd������.~#��F��\GOTD�1!no㯖�X�x���G����Ca���[�oߺ91�^���}�@�Il�N�˄�Et"��wr�J�aH�]��nٺ���)�;�%�$aT����C�G:��2֥�c���g�-2&A�`�*���>�1�3�|q�	`'�Pn���2dȐ!C�2dȐ!CFK,8�$��1�60!�b6.H���LgV4f�����L�U�����|��+���s0)�$�e�?phGm-�p���P��\�M����X���#�A|��\����?�8n|�s	� �g�e}*�h���M�!�@�)3з�9s�
�`
��/\Nh4��D�@|���4.�(KR��/����"��{s���9,�_����5ص�ȩ�:�7�W�sRѶ���s���=m�F����&��(�(�i�MRt|C�9�;p��/��
hV܂A��2�fWլA�HI.XMKGp^]#ss[Gl
�\���U���H�z��[0�$K�8��f���U�oY�m�ϕs���g�/����̙_*pe�%g%9JItN^~��$
�I)�<�+W�2���	���0�Ѳ���A85�٤B<��$L[�V/G���;��Q71�'�����D�(�a��'�e�n�&p6.-��00n������wo�!���u�+-��Z����;���j�0���LǑ��
�"�@ӯ8Ph��佋�7L�����E�p�!��v��s�ٰhc�NK@�ȟ�,���|��6�B�AǮ�����ԾAT+��M,m���sb5O��g�d!�%�GƈE�^L}
��#Q��[Xndn#����+W@c7����ai����	
Csܓ�rfFD��)ވ4�d��*�",흽����S٩�:ͭ�#V@3��U��ONͤ/\�x��A�̨*�'�"&Ɗ��z�"�ݓ�K����Yi��ݍAN��螤m�[4��9�Tsr�NJ�F�;6e�k���f�FLBb��à�bO�^�?�?dȐ!C�2dȐ!C���h8�JH�?�#���������3��p�p�"�z���[ر\0XM���@<T� f�	,kI�Rt��q���i?��sIi=����(J���< ���dt�B��/2�={��f�uL��l���3�i�Ą�;7Ԁ3����
誥����k��9�C�G����~����1�ߠa�_��G9��=ı���TM"{��t���[�4M���~�n�1�(��茞fٽLN.)9���q�S��b��R���{N�\ lhDPXP�i�W�AS��YNoӔ�<�������y�=}c��9�R�8yZ�D��:[�~p��-������J�T��#�ŤUX+�l�+�7|��@��̪��I	e.+�x�]�аH�w	獫׮1@A�8�RC�
�*�r��H>��P�sO�5��T�x����7k�2��O��1�޹s����{mU�v7O_�8���F�i}��h���SD�8ӳr9颒�O>�O%��o۶�:�R@C���G�����|�K�����1�E�ol�|�6}����̀��3���…�n?\K�
1�>u�
h���K`�{�oc�ܒEU�Ń~�%���|��n2��F޹[O\P£�L,�z|ڗE2)/��М�.�frUM�c)Cg���x&�$&��HN�S���!��{X����uA���s9B�;6d;I-E�V@��H3�Zl��K'��8=}�96�&̒�iՎ��*��9yh��㮬Z���jY�V��H�M��x�c����/"�e@�
:h-GwotКچ�a��V��R�}�>�N���_>}�H����yPU���W�L�N&�I�(�bL0� �	\�]�+ ���!�"��4(��ʢ�B����,&����h2cM5�4�4:S�G��4�M:���wrJA"73�o��r�w��s�s����U�T*�J�R�T*�j��s0p)�/��O�ߩwN���!�9.a؍�NX�	[1������`tp|o�d��Uڸ֑�/� ��M���Lƀ�Al����A!��Jr@�U��7�|ڍ(�܅����s{���Y�gP!�Pf�X�7;2x�#v��0}�ԙ���9E��X�hX�O��>fy��.4��ڬ�.�3�mx:t�a��-�q�}�Թ��'ff��!�8jp����>��]��\�+�R�^��2��0x_�ƭ�;~�{�x7/?��CG3��L��oھ�yq�&�`g�IS|�Qf�7�����i@����3
���@�94�@�V���c�n9�t�	�I��l���T�\�|���Ԃ�|�+3�Q����l�`�!N<?s�=�!�<3�`��L���~�����qUp��ا~�����כ[�V�I?�#�29�b�z�/�����<�y����\��õG���W�rA
�~��k�4�\���2&��<���zcG�u.\��������	������^�4�X4��=�|�����//��K/^�x��xl�:�����.N:H$
�-	-���_���x
r|�ډ� @\�\��:v�i�n��.(zf�Z:�3?�0C��s�g<�������>�h�ھ'm~&�|�,������⒲��8����z΋��\�i���y�F����#GyW 3+[.7f�%:�:�����b�f
�b���U��=!}+c���\��`bp�o\�|r�9v����FZΠ}�f�6�AàS�, `$(,*�x��>�}����T��hy��|��J�R�T*�J�R�T�'ɴ�Ѿ�^�)�?��~�S�k�X�7�7n�mQB�U�ww����j���N�!О7�xs�@[SHLs$ae�j��x�X!#�kh[�a���QawûI-濑N�j$��_��
�ycE�^�~PnYN>_]������eI d3���|��*���
��v+][��_�л��@��կ)�Ŋ7У#"���#cdX٣�W8Y����=&:aD@�̴?ե�9�ijD�kd�X��M����s���-��Z�	ƽ-uM4��sJYBw/?+l�r`��B�pF�W)��'�LV@Mc�D7OB�Y�J�C@'͞�#���c��W����9�K�%1����x�C&���J���s�Բ�
�&��;�������#�<`�,_[YŃ�s}C3��ˌ?�>G2�}��@7��mHxau��x��	�����3�[ĖΊ���t��W����g��74�H]����ŗ����~3���PrV�
�>�m�F5�x�C�tpa00#'���-�q\����&��1��5kI�a	u�<�b���V�gT���!�=	�š�m�.[[�<d���u),y��c������b�h�0s�$��$�N���m��"�%���cI�HJ
�x|0͸x�W׸��u;���q��
Y-h�,�5�0��6E`	zf����ʃ���m�L�B<� _�&w��ɩs�S���k�&*O�hV�a�{:�#$y�!�Ao!���+=���+�\���>�T*�J�R�T*�J�HͿ�[w��܀�ƿб?y��@'`(ȵ����Y��}N�>^g�ũR�)GZm0�nO�|�f-�m`@IY��Z�[��:��~y�$��6Te�ɩ�p^Vܸe+�v ɠ0���Ǐ>��._�L��Dp`��]]SGW���K��=�P.{E>��C��<Q�,��6��B8;����K����b--Y�ݾ���9�E;���$#1�%ϒ���a��zF=�H�Z'k�S��ѦuS�������g�L]����q��G����DCUϚ�+�Ndf�
@���15��Ñ���#	�b����.��߀���h��&$AB���.�a9�C@3f֌�M�!K'�E�3^K9Rx�᪄���$��<�L��_�%nh�8��O�1S0.C

��-�\9hDհE���N3#q�Vrm���LJ��<���ᤦ�)�~�YN�)!9
�l�M��I����+C
��q�}������>���b��"�2�	����?���xOMt�e$&sD��t*x2�21�{�0r�<h�v'$"*>)�${l���ONe/�O�9��n���}I8/K:�£	�L���
n1n���r��'�t��ͣ��}ݻ��t�ak��_O(��=b�"Ո5c����>U�7�+��I��5zf��G8�Y"�%������%�(�G��>5Ƀwj���&��h�����C�y��tJJ�7{n�(�lj��g�J�R�T*�J�R�ΠAXָ$�7�Lsx(`��d	�drn� )��؍%�؝�f2E��$
���� 3v���ܴ�
!I��IG����5��=�3��=]X��d��p��95��lT�
��f�f~2TAe���eT&dG�������B6bf&�"��I?�8/��
4G'vx5M�	QfJi��!,L2㇞\���.4����Ѿ�f�[3c~�xWfVc��rbD����)%B�b�.���dc呪"�"88��Ј.���Qq�=��VqY9#�l�9Ng"8�zpa�/��sqi�uf2�����Y�����1Hl��E=��#�F�B�/v�r^�$V4�;kG��3WL�'�:œl��.�Cy�C̨8 ��В��򫁥�� ���fC��
F�B�D�2�2��O�"�/�GzLy�cl��k��Ko��o5�|�{g;�Fo4��q�mk�_ҿ�� �`��%Lז���^f?�\U]��:��
��l;q����c���&}>p��-�ip��:l�����?�H9�<��)�64�Ef&+��ڃ��%�)��ͽ��B�-���d�9�A���9_D|p�ʢj�J�R�T*�J�R�T�@'AX}�������[sa�I�}:����at6�E�i�P���p6H�)����q�o����|��L�!�6�V�[Ѓ����Ȱm��R�|&w��}�Gtb`��D���xd�'.�:��5���(�t���g�~��M�o��ѝ�~���26�ʛ=����xעe�@a��h�r�dޢ��f��3��3�켕_xd�g_�^"C���q���^�����]&O���(
V���.�3�g���0�gL�,�Ԡ�
0Z�a�_��I�\&R���w��?4%�Ca�������H�5���!�� ���y���g�����%�S��`�j�;�&ξKf��A7��ih�7}�[
}��g�J�R�T*�J�R��$���xY�7n�I�3�i&X(d��֩wH�v�,�(aT���)+|�sX�fט�ޯ�<���"�K�qB�v��q�-^x��&��v�O�|��K�̀6$_����X�_l2�d���M5�
-�6V���N�!4�8T��@(h5���sZA����6�unk��[,��hC\5Dρ�Ŧ�{g,ɦ�����o��x&����yhh�l��$o0�a
�Ew��9fg��j��X�g`�@s4�Y�R�T*�J�R�T�;F�A&�5+{EBJ/@K��p�dB<��v(�]X^��4�<~QEA����+�����_Tظ����Piv٪չ���%���mU;6�T�֖W��h۳�=+���-+Y0�V׷�y��2*����݀G�*B�-_��[�[ڟK��)�o~:o�ZBFKWE��{�XNZJ��cm��C���Ի��S9@��o�k�>s�
_�/2��U>h2�I�>s�P�J�R�T*�J�R�Tw��vRr�q��a���$��i�@�w���?��d�
2�M	4�M3=���e
�dI0�4O�5�z�{����&y��z��:�|{����(��<g]�04o�o��H���v4ۋq��9HZ�g���B��:U��'�����a��:�|��g�J�R�T*�J�R�T�BR��%��3�{!�0���)�B�.N�����<�KJ#�c���M���T�!��nُ�*�J�R�T*�J�R�T����9�r��#���d��Y�R�T*�J�R�T*�J�R����ki*�8�;hj:s�J����U�){�HJc�I/fuU�E� �V�l��=���]tv|�|`�8��s��3�e���
b�����'�
��5@����(d� �zf�
���#��	h�+Wgf/L\J���������h�߅'3<���Q'�Cc�����5rq��D2=]>Y��]��4�KO_�}�����
�b1�{����|����Y�<~��Y�f���򨗲��b�\[Y]?�<|�5�����=7��<Z�`��V��Wp8�@$'��/|�J�$I�$I��j������U,ԣF7�:�N#���������ݝ���������׻��h��e�f ��ӯ�l5�͊$I�$I�G�J���ӗ���yo��R�Z��s�&a;.��z�yRX�����i�|�P(����(
7q�$I�$I�����V�nE���%I��WI(��8|_-
�M��R$QABF
9�T��D]@���k������Sd.�����?� @�.�M�@���N��B����?���hh��	���7��h�I�1�^�����gh���1h�&@ @���k!��'8\@�
�d�����e������M+����Տ�����U���?qm4��˥r%�j�ngs���z:R����͹�b�-@�
��Q\)mTki�u���vӬOmt:�rekai5�v�+�8{w���y�ߓ$��'8�$�M�捽{�I��8��k{�%�?��Y��
(��(źҺ�hg3��i��n�괚fk-A��n��؃��%�}Q����+�	��/W~7@���>eM��k���w��џǾ�������h�9o޾�����Z��m`��d0R״��3����٣3�
�z��B�!�@N�>�*+����=ɣ�ʫLV{A��\׸���@�Cd+ZS�h�;lM�R���d-(ֵ�<��G��'�+�Z�����`�F��͑\��`�!�@��-m[�s�����x�V��^�����)��/BU56�z�_J���/��M����
���踦E�ێ�S����{�:C��FF�t���+�(r�TN-����}���D�m@����4�$�nuw��,/g�l:K-��T-��%&نN$�[Ѩ46�NuJ^
�%����O�eozs3�2dZ���g�A�X���Ey���r��}iyE��L44�.�nnu;�:$�-ҳ��dd�!��*8z��uKum�~6]�?Xy�L�	�r���������4Me|�}�d�{�}�(�Z9_N.���=zWe��0�ȩh�r���j��h��nzfv|rjbrj�����Lrg'�<T�����l�g�q�RO��A�4T�pc��b���\W<�9!�:�	�h@�ȸ2@߾S�7^�aHeH����-�8������R^�~cw�d-Zʣ�1hZ�|W��B�*8�9@oF"R�Q����c����c��ls�<��z��%��
��qfeuMz�eu���2uȱ���i���@s	!C
���Ͷ�����9�|aY��oUʃ���E:����2K}���u�\rg�_��>�G�����g�߯J*N�U��^�~�����fh��h�V^��P�I`X\�;��`79
�y����~8�
��*ewww}����ZzQ���e�g�Z,ݟ}0�����tz:�|��g�4���s��)��p֚cƵ�.��B���B�DČfr�a����&פ"�����3g�ی�a�ƭ��t�(����f��5�L���.k��{o�~������'-[@7?4&xqIJ�hC��/����}c���:������G�7^�J-� � � � �	�Ν��߈���_]-�������"/$��͜ҫ�w��|4�{�ACm���5017z�Ђ � � � ��-�q��L:�u��n ��9��˦]��F�
]�,vC����k��%lݘ��:v�_@p_WC�.��`-iF��}(WS�xõf��nCU�h�hAAAAA�Zx-#�;���k�Ї��-ۿHޕ�cw���Ss+�!����-%u��S}��,l�
��U�z��1��3�:/n�i���������v�ڝZ��}��,����s�^�m�E@� � � � ��71��}\=b�'�f|�sO���]I;� �
L�z���>��[w�ޕ�ow���ϖZ���5� ����8<b����G,]>yꌑ�Apk���%K���񹹹{R�b���u�z��Μ��x�fw�F>c'���<��An�hAAAAA��;w�h*��am�H�
���O��j� ht3�9(,<b�>"��6m�<m�l�@����&���h߱�4��U����A��R��@�a/��B[�d�Iw�����v���
h�!^���~�l�á�sX���D��O����&��'>������߯�����h�94��+*�UUU���>����0B��>�@�l4ޘ{���=ҴCAAAA��m4��}^Lt�`n�ڮ��u�$�;�y�tl$$�,'Ę�7$n����L��r�&Q��;���^�zm���-Z��7���ۿ�^w�_��q)u�4�M�S�d}�\�T�_��60Q��S��i�˹J-�
�6���ͼ�/u��G�V�������k�u����I��Vq��,ܽ9dz�B-����R�n�Kt���?;.�qX3aHp+���4Q��:p
�Ht�Z�xqqq��_~ň=s���"T,X�5��0�L�ir0��ه����;��{���g���YT\L�"�˛�)o^������?v�䞴�ݩ{y
���T�����)�a�����t�R˂\C�����ato��>�\AAAZ8�U��|�Z6����g����R#����݉w�=�}��	���D:MA@&��爑��%nKa��5�v�u�H@:����Om���ے:#;'�%)Yװ�b���}:c�����Q��L�fݓ#1mn�c¤��V�^�&�c���KZG%�o�4L���:z�A���-�Ɗ�>��~�>cƯZ���c�"�I�M0�s�@T���0�a�Q�~c��?�8t�7�C�

�1��iW|4
��O���A��6ď�h"�12������6��)ӊ��D@7>�1h�B;w�6�bu��iF|�V4++k�oK���X<��lj/nE9�`�3g�N������҆1`jnifa�5u���3��[����yyy<�t�wOք�����ׁ��M�H��{tY�)�w��Ѳ��5�կZ��4���Y�!�zVv��l�Ʒ;~��O�YX��	�],)�c��{����Ɯ�>�L�< v��8���]�B" &.�Qc�cם����5�X^
����<hL;��555
=5�×2 ��>�� � � ���A�]���XxY7�Zj4�u� 2l��$��m��"j������m)O�Եlxx��t�4RF�L�(,�.�+W�:���<�}��P0O�t���m{9�p�LjZ:{����G��ι�D�"�srnd�;O�r��k׆x��FK�m�0R0gg琣���ۥ�A4^)������^�p��&��i������w�\R�$
	�^��U�Q1�Ff��&?���#`2O��7���Q�
�����D�:r�q�ܘ��#Y9pvH��ZG����/).)��p)�=v�z��aQ�u��o��i�V�u=>��D��$�a+o9�o,Ɛ���;����3���������|2�<�
]��tyc�Ĝ�9s�߸���A�+uЊ��2}&
�ֽ�.^l��k��������7y����6�j��ZKO�Д�1�IS����%����I���V��h���.��4v2z��C-�u�V}�������B������Dz��X������-� � � ��rr���=�HEeU΍<^�~q�R4��է�&9���6�)JԳ�`�7&&�t���������M��w{'BY����d��ǎӡ�N��5w>��x 	%�M��=zX˞���3f��>�#U_~���.((�}���KA�KWD�����A�� �Gx�=fm�����&�����A)���h7nn��]Ԯ�YWZZ���à�E8G�4ֻ��	E��v���#C'���aE��}���88�p7���d���3��]�-9|��P���FB��ѣ�h���X`
c괙�Y�@'_���y���\�txݾs��O{���r뉳�,]���{�J��5c�W���"�y���Z�:�4(��Wܫ ���>�mc��%��M���h���<׼(�T�M喽"��I{{'�N3h��jI�r�;ぷ4���4e���k6%la??p�`���0�0�*���=q����?V������0����!���36�-���G����+cU-��X
_jԹ�_�M�P�g�&�"�AAA��LEaaq�����z
�4��ܼ[�
q��КF@�8���>!)tɲ��'���D�eV��`�I�⪸�Z@�?,|�r��W�����o[�o�9ǟ�J/o��;���F5�]���A,���5l������Z˱���F�#�MFZB_G���2n�c��D�;wDT5����]�|�rɠ���W[��޲m;�)�v���6�m�
x;�Mk
�͇��a���&_�V�^}po�&��t!;*:�hhL}��~X[�.'��,z���G��~��せ��o^~>#^�X?��V���_H<.��BC��}��)��kׯ��T?V����=j�Dn4�l��α��6�������fT�H٥ש�"^nj��\�(`�K��SYŚۍ�z�}GC��*T<��+��ZMtӻ�\c��9�u-}c���{&V���}Ͻy3n}<9I��<�4�B�Z@=p�0&�2���|���N��o�������g��m��{�jRv\���׉����w�W���~��M����%�hD�$("����^AE�^�&�"R��4a��^��- �h���~��eGq�x���|��sOyι���y��-Z�hѢE���?޻o��������S'N�D�����A�o����Ƈ{��n?�G��7��%BWk7h�2'�7Z��LJ}&�b%J_|�U��5��w�K?@��K5�M�1�S�R5���ԥ[��I���i�g@�a�z~�S��+�t�_�����
NQ�bPP�4�C�n݆�:�ˍ�r�p�q�g���&��������"���Xܶm{����+Y�TE#���w��,�6H��ʹ>�D'�K_��TT�F��~�f'O��?"�D2@a��{�D����4�v^j��� �4����BuޏP K��+R E�.ųK��OPKl�ݵ{�HX������B�
զ��7�����r�?Wҭ�tɏ���
�v���UC7���t�]{��N�a;��x <��5
��V��=.����1k��+���>s=nѺ��5�s�A��0�9Oagr�$8��0���{9�.u��a��W�;XF��,[P������ ��S�a#Fy���ɢw��mJh�7��S�N*�>����HEعkOA�����͞;��Yt�Ȫ@�z��G�@G�-Z�hѢE�-Z��ItF��]{�~�i�#m��a��gI��;hdC%�+��q�B|��፛���T�N]{�,!a��
�*��7ݒY������صW�
]I�k�.��w迾�.�z�L�)��a���ԫ;w��X��x{�$]dRh�%����)V���wl۾=h��[�m�=��wh�rէ�+����4��x\5@����u�tm�pĦ�+�b@�3Nw��@�_�ȟ�~i�.,�>��-r'����P�p��,���!�;j��+S6_�����ծ���Iȏ7f��ǎ��sX��}�fΚm�K�^IɃ&L����1̜�P��X����N*���/��`���Q��aa�DN����=vl�̷�'�ܵ��C���g�
�<������Nw�[O�:_��|���o�U?-^2z���ƥ���x�ͮG��z��p5����7Ij;'�-�shg ��~{퍠j�B�(��YgM���\s��W�v��q�Y�4����7b�r�K~m��7���������o�5���6y��7&L"Σ��Y�<~��=�L�7`����Q.pr�ʝ1=a�[�
�ܵ;�xuп6��yyk괰�d=�P��ξ%��W��ip�W��WW���*�oE%"�K>T�\�U���>{�N}O�h�'�=}�H��	��.�
3궊#��-Z�hѢE�-Z�h?��,�~�;��OBm��Lә�F1�?�ғ5h��A�^l�JB����_!ҵ�7q���~�Í�_u-B'<0---O�{�-�B�?>>j�8ж���a���S��0
��W��� o�g�v��g�-�0�@�R�
�x�۶g��>|�݅�l�N��1~�o˻x�2��5��#ca�w��5A��臒«��h��?Q�E��Ǜo#��"=��4�]���$0ht{
Єt�����hWu�H�%W���n�ʋ~y�vN�1@5B�E_޶}GW=�*&H��U�˗^y�{�-��*D��s�<�����
�hve	@ZK�-�j��l�۠��%���Q �KO7�;Q����x�R� �NY���c�,$k[a�0z^�x	�0�.��n�{6i�;O~CS���N�Ԯ�����c�W�Y9�1O�Tk,�JOV����B�:��^C���7�����Q�s�eϞ3��*�6���ڶ�OQ���Oj����0~›YV����9%dq��)L��ͨ1�V��t�����J�=t�z��-�M�'��b���+�[&��c�^�;�����R}ժ�gr'��ѰI����6�pNo{-Ν���ӵ�V���AC|�Nͼٽ�l�)&�����m��@�V��j��l�D-Z�hѢE�-Z�hѢE�O����6�0����(W��=EK�>qj��s�-�l��x}V�.�h����
��x���h�^}�Pk�R�p\�Kt��|5/�e{�M��)^��]u��W�ض=�%��/�@Ӏ�����D��%�lPL�f ��������=K�-˝�e�W`�_�"��z���`��u�o�q��^�j�O�{��+[�	�G
��W�v��Z�(>}¤7�T�=~6Ŧ�7�l���"�3ߞE�[69��&Z��#��Q��1<~�Chh�F»+S$u>k���lT��Pk8�]�T�6ٖ� �/w���ep�yޞw֜9�U�>��u�⁼)K���%����}���������B���N�'���5��U��GI��1��,m%kZ�D�����t�-�6���J�;?��c����吏C�"lEU�#G��3�^�&¢����y���}�S�����Z(l��J�r�j'��o�-�F�c���hNӇ�sUfQW��8��d ��p��*���/)��!�ʭ
�i+ϝ�,�ihH�p�wW���q¡C��j5&��������5o�Jp���4�>3������\���Ѝ�5jfdd����E�-Z�hѢE�-Z�h�1I�~��GG���>;�f���;�.�|w�[�D��s�}��RU���ZuB'ؐ����9fEJ
ԅ�`��8U�ly`�ǽ1i"� ꓽ��|��$����e�֮.]�ܟ�f�	I�
�	���C^�zϙ;u�L�C�l�r���z2i�����GDžF�l�/��5�z�ږ�^@��BQp["Za/HKӢ,۶�X�p谑��g͙�-MG��h᫂��u�6/��H�2����}-��&�Z�����[��*�|n(�Uk�]���6i�F�=	w�K]o�\>b�o��Aai�hz<V��AC^[�tqKTD�)N����7j�r����#�6�~���{�!]�r�V���a
�h�����!�r���͟{�3e!��	'[r�s��)\�Ĕ���M�Kߗ4`�w�8u���a��nGæ-Pl����럼e��1z�@`�8��	@�쩩��*X�D�-poƑ#��d�`���a���6/��`>�A���34]�Y�����'�h#��4n&"�ԬKM��Ը���W������<��V�:}��x�Ν=��Ӗ���~s���3R^��b�دB�m=�x�Q8�LJ��,fN�Z�C�[�x�:�='�
����A5kaɈ㦬BdCt@S��ٰ�;6:/��}�[���:�/>����Cm9<��N|���3�����_���bѢE�-Z�hѢE�-Z��8�dA��;�>i*��8A�ܩk�*OU�Y�_�P�ΉK¥�M�R���7�S�F�g��e2�W�2� W��(L��d. 4
M[��WK�-O�@�`"�\J�*�@[�'��W��,����Jd��-�/�p�?�0�	����7o��E��pӭ-�k�V&������_U�Ղ�7%.ie���z:+�N'	�m�����恨P^�K�.��+#��@ڽa�ee�*��2x����A�
��7I�� �by�^�d8�֩�ȮC��w�
.j��bT\(����,Dk4���m�Wh�TR�ol+Y
cǍ�mè����U�[7���T��-(0��R������i7B�x�c����� ��2[r-m�n)RU�n��Y����@��_:��@���o:РI�.��}�}ǯ��e���m۶��I]%�.��K�rU
�8�'���C��x�c��^ٵ{/NP8h+��ύ<���}���g��7��e�ɿ��>�r��@4܃$���ʔ4
dO~k�!g��رc��jo�>�8����j-'=�x|�RkfЦ�XF�g�{�n�}�������{6-X�ڑ������^���@��i[�\�(emڶ���,��=�h���-X�f�ƭ���-Z�hѢE�-Z�hѢ��h�&���T����J�ҳ_� -��ѽπ��{�M&M��:^���+P�g����Y�r�3�����
��-�W~�:Iؗ�k�{�U�Y���O`i���W�v��/��͊$n��ܖ'�ӵ�"š?���*W�!�Qt��Tx�J�{�9I�QӖ��U�;��7��Z��sh֢Y^j��q�4�.Y�A�f�(��Rb�
�*���f��B�UF���S��Q(pW�"�n�X���/��&�\FЭ^hK�7b��!��zǝ����`�M)}�S�>A��Ͳ��N��̭߸�
�bZ~()j^~Ηڽ"�Z%�4�]�f-:��6����UO���M���;"����7]RX�>�+|�݅�����җpF8s��G���ddv�굮��tɕ�ӜU
k+�谔�Fq������i��L����"�hn��/==�����oe�W0�7ߖOڿ���پcG欀n���<���BQ?��蠼!GbأJ�b)C�HĴ�!*��x���
*r"��Q	��ǒ��~��׵����Y����k��#ˆM��Z�B׍H?�Qv�{��}b�E��9p�@�T87�6��&�4Z�x��V�S�����1t��y���V�d�b
:
h�ꀗ�Y��:�9K�2���7�Կ��Z�6w٪�>=��hѢE�-Z�hѢE�-Z��v�@���v��r�IT{> f!w��7�uP:�%��xd�E�Th@Ñ��;\
���3�c1��T(����"
�����<S�3���Ր��~�`*��\R s��k�M�n2�Lz�>��C�̭;
7*�O�� t��6+�$�:o��pЅ�2}��u�=E���z	�Ig�c�6o�B��m��&EoKE���g��a�r�2Wn.�a�d�~EFSQ���`�F�/r_IJ��Y]Z�pѴ�o�t����`�-�C�=�}�PIV|��E��7ǔi�!u[,�^y�����*yh���9��@r�.�}4W1FQA�#G���!Ŀz���9k��맷�$tx�+Ϟї
Rz�+I$!��S�ɲB�N�SFk%d(�<e�	��f�Ƿܕ88|��I���u���$TM߿�ƒ��3!�����6��ԥ������@�M�M��������
X��K��Y�2C��-�n��>c�lٹ;u�֮�'6ꜜ�.M�s�0f�z���݇t��=��K��4�m�Q��̬�A�cĔ�u;&
�<{����kַ�7�U��R7m���q�hѢE�-Z�hѢE��Z�|#��`R��p|�;5C.h厜.���"�����k־O���,|nQ�C
���+w^h�Da_5��k��Ƀ}.�����̷g��]Q`HZ�J�d��e����,\���mި
~Żހ�u#�z����D��n�[r*�KR!�P�Ac4SO��,n�'atz �lNZ���6*V�F�r��+��<Zj�ڽ'�f��5g����7dVt ���L��B��k�t�yLh��>H��L�%�	M?
���|��Q��9
���4�
N+Q�,!�*���:�{k�_��_
����D�c�=t�@3�ޚ:-l�����3�L��c�P�OW��4y���{���cǝ�._E�h�w����~�v������
��u�?e���\��g-j�9y��=ԟ�;�X�n��'�Y��,�駣��Kzc�#���3}��tu�1/b�hѢE�-Z�hѢE�#����j�IX�|9؊��|[���ٕ��p�,\
��_�9;xU! HX$/.I��[�^��r4�H�YRM�f��;�/UVoɀ�S��F�.X4��,�ޮ^�ƻ�B�*P)�(�Y���W��ðE*�Ԣ��X�J��{R�x	�2'�̇�}�RU�LB]�54|�@{YPR�/��T�R�6L���Q�6�n@�6��ky�s���x�V2hN&�~�e�V�<ԌX��NN��ǫTg���k��'����ӳ,v��ȩo�n�	^�Έ�?�Xx;�2k���9hF����@�;wQ*�	@L����&]��1_�@Kw߁����I3�;�@Ƒ�TI�:yŸ�f.��m�V�ُ�t:������@���x1i䠉33�eHU*A��:urϾ�]�Mh�o�[��F�-Z�hѢE�-Z�h@�#���yUu�q<�3��������D�	I,1	�^�Fc,�ED��
cTA� U+����Y"E@ݨ�����wv�}���d���s����Kf~���y�4'1��rr��H�rr.^����#33+�4��ջ�ΜI?w�_M
(�_�� �)xq�����y:���O��-�G�������M�<���S�y����
CRg��ט�(j���q:'<�ƴ�%�R�|���լu�����##��I�W��e@�c�8�Ӊjf�
��rgv<كB��
<��{����,bⶱ�"��tW�6���S�+�p�!-��L��ڍ)�he��mд�nϚ�H���F�UҰXaM���;�,gA��q�gޫr#�M�:ucz+�)>���#�@dDd4��C��|_
�&��;w�2/,ex"�d�RMB�r��
	,[�t2}����g/������ә��a��{E�;B{m��ϽY���1rם���y\��Ѿ1{ ��f��������hC�ee�-�D"�H$�D"ѫ	�U�h9~���e9�5���\�X���e��3�v�`�8i\�d7��ݖ��%��M�Է�qd�����qFh�����p�!z�)2�2G�O��m�ᣱu�:/7�4$�w�.��.rr�Ӡ)Cۑ�˴1o;-�}V[ح�XOc����F����f�nB�0ٶ=�b�x��#F#RR~�C��Ɨ�v�&!�4;��L�5�ϔ�~w#��Dq��j������O�A�c.	�D�"�R֍7C���h���wi�$�(i����{z񇲪57'	8�0�;w��.�҂q�{K�i��u,Y��ZV�釴��2�*m�E�ؿ���jO�>�JP�~ֱ+SY)�V�8b���^!�ٗ�|�ѳk@L^a�*s��9)5��+t�w(�n��{���Jg��B���˻LVn�G�D�ƒ�0�f*�)�v��1��b�����D"�H$�D"�H$h9��wSRS*��>6=pc~!��8t���BΨՉ���
-=7x�"9E��-'ؘw�H��e[��c|���W�(�
^�SZj1b���~�}>��߳�'E���*>���@L6�t_�AE/O�n?��^嶖�p�7�3������~�8-�?���i���
F�tي.��v��35����7�g��&>Δ�j�0_�Q4t$W��pC4a��~���A?�.#�&y -�n-��e[a��ILu��G�S�S���$‚S
@��^��ۇ����t]������ss�E�����n�΁�}�8��T�ky�_ oҡ��{�#i�k=��͕ح��K�Q�M�KN)/�	��Ϳz�^���G3��A��3��4l�����/�'�ƙ`Φg���a�="�F[Y�T�	�����F͋�*͠���v�KL9D��&$a��%J���4`l*�x��3(f�C����e�XE��)%*'�m����6�����q�F~h�A�՛S�3���H$�D"�H$�D�t4���=�Z��@���m�.�ڵ�F��a(X���:���cP���rVd���m�ul���Y� ��;����YO�[x�85�րG��b��һ�Cò�=7��9->6OOϠȗ��&90Ё�Ϧ��&��Fn��Ό�I�./]��c�{"�ԇm?�q��:҃�UHlW8s�\��N�6���\RR†~0G���D~~�jL�^�Qʊ?��+�B'��1|�%���c��X\1����-$9�z��0��I�*�y.�4 (�
FJ�0���؏p�Rk���*�?U�Ο��)�ؼ%�I
����	�<(
�%E�|�遯�b�Ι,�y��K��c7.�9!6~;'�y�0�m�����+�@x��if��n=��)Q�l0Xih����HxL7�7�y��*/'���)s,R-�i��zk�	!���+����[""�V�r�XK�6�ݪ�
/ЈU�����{�M$��jK�|b���K|��f^�����pQ}�����R���K}�U�2K����֝PS͇Ne�/��}?d���.�s[������C!�k�5[�w��{<=ąC$�D"�H$�D�W�Z*��xY4˕"������FGמ}�V�]�[4Ш����|�]3*��5�
P[��
���
��֎�{�/�hIq1�t�*�yy¶F�he���keJ��ZM:b-9���nHc�R�a3���ؠIs��v�j��4]Q.�[���������w��R�>��d�d;�Ng���jS;�7�<C�W��;\�U��3���$�x��D�8�3S`Y"��0�G�~�J'��;�z@��G�����$��u�,�����2L�.�f�]��h�^�SgPw�*�)��2m�X+<�A��j�h2@����b1��)��I�&�N
��&�S|���s�)k���D��1�1	�$��L�ʴ�jY��H�p�$3R��;v��aD�,F͉�<��虮TT�f���a;m1�?��+�
�f��-����P�PC�b�	8X��"�����.��1�-0���?�q����. #G���/^�u�[���܂�]GRٱ�KN��p�ML>nF!	Is�mIN�@4�`j:|N��?�eS8Ӫ٩�9���p���h�H$�D"�H$�^�
h��e����6lJq�F�j7hbz�^�-*wq楎��ٴ:���<|@�;b���,��m��߿�x��2�`����ݡ�T�z�1W1J�ݠ)��h�y���zޱ[/�bC?�}�6j�n���[�2[�9R��X:PQ�u�y
7�O|�V�C��<xE��y�m��!ўA�H����;ꋷ'�4��
pI�4#$����m�w�X�Q�ok��;v�t��ۭhFش�۰9��j��4k�5�	�L
}F�m��@*�l�!�Jy�>����ە���Ғ$�������y4Ǜo5n�N�'���L��z�4�S�:77o�t�VfmiO��'l��ʬ�xۂ�7�`h�YF���z�A���1��3g\xePh�l���˺+|9�:�U��5�_�g��`���o�mM�8 ى������8Aҕ���7	Džηo�h]QΜ�r���o�X���� ��}��Yd�3axd��S݆��L3u!׬Z��B&�z�p>!K��(R��ws�g�LW���=*S�J=�=�3p�� ���a�7�L���R�c��{�<|0�[P�;g��g�,���+2���WV�?���F�5[`�^[܂�=���g�?��D"�H$�D"�H$�
h9�5h���f��)�fVup���p˅�]�zg牶v!�Z�1��ߖJ����FYF���ҫ��~3�Cs���<p��)�l����F��a<tF�¢"<��~�E�_ii5���}mAA�z�����;c=L���B�a��R)�k3��v�}����F�{��Q�y�O����p^�U������RĨ�Rn>d�h��ð�iifV�z퍜���&]�m)1���n�,8;W}�6O��<k�#5�����������-�>�r'/_�z��uDn�6'$u+]�-�lx4���#���|���
��SH�5*f��٣-��4��b
����Ϊ�	�#�C��o���Q���oWѧfX���l7c�_��[�������5���
8t��w����$��M�����\Ģ��n��2�g��zzaK��3��boFnd,�a���a9-_�Z2���H��U�f�m�5󫺗�Ndd���q
�Y�)f�r�
v,��;[w�f�_�]^�΃nA��A��!�Y�t�ѓ8J޺�L6�?��k�h���������=!�H$�D"�H$�D�n�h9^&�Y��E�OC_�UgX�F�O9����QH�7�Ɔ�܂�u�+��
��2M�إ���ݻ��:\pF���:=��D
��8��Q�J�鳧7	�x�W\?g�ܾ}���kmCSq���_\|~J�A~�<�����+��9D����bz����p��$�����`�ʛB=Z%Mk�E�T%s�tfg��tʔյ�P�%�%�5�ᛎ�����$0$���f��eLW��{)�V�ȉa��2�����)O�?f�
�a�7�o��j��A���+�
�n�*��y��2��h?�O�?�Ϟ��E��ր�E"�H$�D"�H$��Z,8��QjOB�U�*�k� if�Mo1����jVF(�Z�R�Ӕ��Ԥ1�V?ؚGHP
{#<Ƅ��>E퀧p�]t�:��@ȃ���W��b���2V����X��H$�D"�H$�D��r�"ZT)��[�H$�D"�H$�D"�+
�eB9@��z���߽^��Y�����E"�H$�D"���ݱ	�0�ѽl,�O�3�H��+8B��s��׽�Cnp��L���b<����~�ty_@�	�C��x�-.$;��t�Y�6���mP��|�n��'8�y�M�h7�M�9��h�����^k��	��#_@�&@�	��G�h��
��hN�����u�C��[�l"y3\�D�y=��M�
o@�&@n@�
�sZ�6h9�!@�
���h�h3�$c�h���$^@�
h7�M�{���dp��j���n������44SS.5̢͔E�ٲ,�_�&����<�]�U��WC/4a#a0�Ř�=����i��w!��x�Ӌ/����0���&��xZk��9h�����0�t���m�dh%��+�
���ު���64���?h��4z���V!@�&�S��9��&�C�w|fd���뷌�|�4`:���3:N��󓱩G#Ҡ��My:��_Ǩ%['y�J��W���?t��2�-7��{�w|Z�������k7�A'��CZs^AQumCm���rj���0�ZoN}C�Foa1����'�UZC��Cñ	h9�4�
Z��&�+�ʙ�+++��"��ܟ|�vn��ڡ�7}�2I]PTz�ۣ7�V2>
���
�خ�+�ټ!�9��#}76�\�D�TΞw}^]����S3�3��_��}�}][�*]�h��/˭��i�ޱG~���*�1�ݝj���q�Ӳ�����˕�B����_�����G��h4*/��-�2$��W6w��d�F|�9���g��V(�5@��s����w;TZ)²|C�q�z�f}��wtLg�x���,�h��*���ҙ�.�޶w���T[GW�J)���l%���gqqqiy�������d͗����[Xboi?�r����.�e�t:h�eXXX���{d���p8����\�������w�1Q]�פ���]AD�e)j�

���
�A��
�P�D�wm�*";RQ5��uCF�IHu�
&vΗ2�w��}/��s	!�B��àn�\�\���A���ߢ�ӳv#�>k>�8�[@{�
hXK9%
|
�p����(�V$��c��K����޻�{��$L.ZXXD�7n�4��;w�$&��3
	_��܌񠱱�b�ek�k�Q1��nݺ����-�kjcb7�9��l�w�.++��|L$�򪫫�����~$JJJp���+����߿��B!�B!�/Wp��Z@Ow�؞�	����-r�x�R�F�>�UB�>{���3�{.�*Z����*.��CtqI)�4yzC%wuv���g~�����RP`fi�������
��{�̯p͸�9~k@Ъ���xcSSS��s;2w��[y�@]546"a�����֢܃9����������H�?�F@������I�	�M��(�	!�B!����M�; g��`bZVF�^�f���9��<�M�j���sz�>c��K��|��H���������ܣ�ϟ��k�!�r��kl6|�`��ˍ�j���
2
�	�ɸ���g���0)9/���s�Q�2��q"ѳ1����{�w��	����U
�8w�T5�JMM���d��~
hB!�B!d�HDǠШ�02�X

�,n�q>$|=L1�Ȣ}�`���FH���{ۓRR�2��Ѷ��3Z2����7������YK�@NYc]T4T��]������B����rcL���;9����!P՚2͵�����:�Gc=h��ys|g�3$�׮�rptƄx(��}��&Є�B!�Bj$(ma3q��e�k񝸀F�s��8]���u��Wn�ۋ>�GO�<y��!����`�A�yYy���9�!Z����Ba��Sg��621�p1�q�c���ֶ�Ҳ��uX����+��v�CQQq{{;���ja�o�
HmhkM�w�Є�P@B!�B!C�Dt@�Wp�AC�n��.V����l�}~c
\UU�����/��������Fu���KSss��jC���K��G���0iyee��>A�Dt6���cGf6��(뀀Ɩd}mԨ�k?x(�����ǘX�d��P@
hB!�B!d(a��M�S��7mA�n����7��wZ��6A,�}�J�������l�”4FY��WV^Gf�g�MUm=H��4����4�j8���`���G���c�bb7�k��$������5����͜�CSw��#�
M��$ I}1��X�	AS@
hBM!�B!�%�=�4�>;��HHف��ҳ7�ŋ��+�h�xK
k)P�z�*�0tCC<���!�l���u�q�/���
j'N�jkmE��ݗ�L-�lvu�WT`I��WU�UEDFM��U���2���SMͭ-m&������F����	44��&ЄB!�BȐ�
�~�3"�Ӿ��=53k��7�`��W���k��q�[���7����ϞuTTT`C�
�ړ�8^��~��lW���铴�L�ѽf|Ū����0ˍ���::��1'*8�/��'!��)�#����]��

�����6c�����Ļc
hBM(�	!�B!����Z�@�����ϙ9�a��]ꋤ0*2��zM$��+����J�l�(�C	��0����YX��m;��gϝ?r�xXD������>֏�,^�N缳�1��K��zϿn�OuNJIǥ̬]>��G�
�'N��=�잽�Q�{�h
hBM(�	!�B!����Я6`��[��'@4����� m�Ǚ�|c����)����T2YE�׈l��e�d��E��d�v�UԀ�V��!P�e���1jEuQO66�"�:iHjM���Є����y�V�Gq����� DCtwͮ�``EbY��5�5Qc!j����%v#��;v�Uc�(��(6;�A�A�/���ݹ)7�����!��;ߜ���B!�B!����ߢK����1=3+7�_�KH��̎���z���a�w.nF۽�:��J��YZH@	h!�B!�B�C
�"�I|1:>����l�=f0�2�Z$�����B!�B!ʁ ������S�2�S��_�7C^�j���$��/���o�Ǐi���5�I�WL�KZZ!�B!�(��?K�?G���g-�!��}�v���3^N�>���?�x��S�hy�ĉ�o�2����9�
��9�r��Ŝ9sfϞ�9m��ɓ'G���+�=B:S��F4�{���˗Xf�w�ɓ'sssi���k׮}���5,��C��i���Z	h!�B!�Bg�?BX�վ�7�Z�C@��7n\�V�5jT�Z533ө�������l޼y�e˖�*U�]����ٻwo	��\�~}Ϟ=�ҷo_�S���}Ĉ���qqqcƌ�1c�֭[�ܹ�;�rɒ%��q�K+�Z��Æ]
ԡC����w��q޼y(΂����g�i��ͳg�z�\�r%h4���;t��^pʸfƿ|���RӧOG��߿�1��~�=g�.\�+W2�kX�����s�.X����k�}�6##��srr����B!�B!�M@�#�Cޙj	�����իcQQ��f�2M�ULNN��@AR����?�I�&�ܹ��1���=~L�0�xd3�'N�oP�Z5�0��Ch-��~��_�~�ҥ�(˂�X�n�
�.�R����m��ӧ�6Ӹnݺ��…����p'�@�_�L����Æ
��x�ҥ<%	L���ùI�k����߿?��f�իWgee�7�O�>+V��Д"ݣG:�_�x��N��f@j���G@�B-���\YA����q����5#�FZ!�B!�(wB#�EZKh	hd_�ʕ��&s���~��s��[Ĵ��#G�8�|�bry׮]�e��ݻ7
�Kh�C�8����-[fГ'Of�M�6.\�hQbb"&��H˯�f����H+LHH��QQQ.^�����ϟ[�v�����Gh-Ͱɔ��j̞�p�q4h@{��S���D�j��Tx�����I
h"߇�	�w��y,���N�����e�Di�×�L��^�z��/���d��6�08'�iÞ�N <֛�k\�	h��ܐ��3 1�6/#Ӓ��K+�n��hz�Z:�g������(��˫W���FZ!�B!�(G$��h	b]�fM~V�2ƽb���ӴiS���ҭ[�4Q��� --ͷW�N�(D(3#%&�	���
���g
mF��lr �|���ݻN!q�n®��j<#� ,����K�.Y9�1��b3:555���8t;jL�ȑ#����ڔ�hJ:�{(�cǎ�k���;֕��,�Hy��SRR�N��bp'��+�%>*�u$f
h��/�cN	�+8XN	�-�;O�|��0�~���Y�0y��u\�v-�S�h�bO�p�Oa�5k�p��=�:M�iaH�h\J��>|h���ٳ�۷SE7o86m���cs�B�:70��4�*���hnގ��-��@���˹֔�رN��B!�BQ^�@
	h-Ѕ�;w�K�$�e�&�۵kGw���ׯ�j�L��'u4��7ڗ�pXX�]K�a)8�ԩ��F�!RK�hJ�kIK�!�/���72S{|�W���͛�"��)�8n�<B�)1
�gD2�&A�t�4i��~:-�5kƃ�Z����78��͛��9���:��o��C�X��<%�=��6M4o)�^�ZVMG�:��ܮ�S#�G��h�D蓔��g��d��q�)D�#���
*�r��҂��͛7xg�Pn��ρ0)1��9�gpl8U$�a@nl^?p�,��3�����A��%��B!�B�� "��Z�t!�^X!��E�e�]�v-2م3�����V;m�4�	��Є��q�orh��K�H�֭[St�$�u�;��-�4r����HF66lh���E1S��$�yL̜9�����Kk��t��III��ؽ{7�*��#��PS���q��&�S���t4ڗu�����m�6����+�-���`'|���Eݲ�Ly���p��Y!��a-����	"�q��_� �;%�W1yu�.�bL�2�q�T�z��V�1��Ŀ3&��D�3&��֭[6l�z#�I�M-{�S�I<Mf^<��	覐�x3GG���l~7n$�.
�)-�B!��o��5�.��x!b�Fl$���DD�X
�.l��J++��(""���X���M@,�=�B|>��0�Y�>�s�ɝ;w�3;�wO΍���lٶ
�.�3�>z�h/���MX�r̆�o�SFQȹ�9��Sm@j|�����EKa�b����,�w��Ϸ��`1�M����ݻ�M">F��P�!P�}y&U�@ZV	gwЀ�}<Z����my�&|����hGF-E(o���]#�F���A^0P�Cw��qbĵ@������R�P5g:�|��M(_�Y���zw��A�mӨ'��ӭ9����Q�'\�,�(6�O������2�@k�����"���Zg��/`��(��(��(��(��69��z��@����g���4S��Ç������	7���p���&���Vl���&!a�f��c�؂��pv��k׮U�E{ZkJ�f���l��i�hf���lP-ɚ�h��k�ڏ�y��Z�q�h�<-<@r�8.o�LM�=��ȫ���ŀ�N�n��y{�P{A��3"X������c��UYM���V�����\ƚ���]|��Ar��b_a[�P��T
�+1v�
��:䢌�&*YF���(��(��(��h�t�l�k�ȝ�gϞ�徐�K�o��@��/h��@�?�R㛅���q�7vL�uϜ9S��?��U��{��)��<y�^\\�]@��=��F=���\�M�����%�#�e5p<�hb���E���'N�A3Ѝ>���>�(t�s"�#k��[
���#���yK�֬�'O44|��%���`	D�E��V)��&��ĈW���80n���t��5���U(m��fiZ0	��U�&=����(��(��(��(����^X\
����Z�����ŋn�,�r��mB���
-���߿?
��кK�ݾ}{��#�lv��:S�b	b�spR;�Ⱦ��w�!���
���/8b@���4�4�ӧO��H��57��B>��׏?o��Q�9�n�g�V�i����}��h�b�e�g;~~�jl*8��=ۗ�M�f�=�J��
A�����,m�0bh��Y�~Vt>k�*H��kh�_և�L��k��z�=)B��f�:ln͡L�?�QEQEQEQ4mf
�h$�l���}�<�¾}�^�|��I�%e\q�X��@x��-���[�����=M�Ђ�� �-�ׄ��e�9R��C����W�zee��P��ʕ+�&�B�z����J���Dڐ9gu�2:P�O�>{wB�]��<Tƴ>�k;�����h@�}��!^�JC����/_�_�@�S��\�f X�����p0W��x��f��+�6]���w�7n���F��bC\��X�G�󚇚���s��5R�k���u/�����LtEQEQEQMI��Ȗm�h~O�_�[;�&Xp׮]�h��.�}ڳg���ʀ���Ν;��T��CP��޵��:���1����ӭ5���{�n�y��}��-�h85�����Y�q��!���ו�a��cx�XF4��z��.���U۶m>z4���;�0����cǎ�<��uC+�����_h����Z��+�Ɣ�q�P߫�GxAd�.��q����9��$`޴�rW�^��O|ٔ�*�:^�>�F�M#j���U�G���Q!\[}%$����
	��0^lWK]�-~ Q_�+^�|Y�*�~��,��QEQEQEQ���"�ٲmfm��¬]�� y��W�ܹs��,
�ڎ;���?���T�E���\�ynn�5x�޽xD[��R	���l�ϖ
�x%u�����r�H���n�4�����К�e��pԂგ-�Cf����y��<#�F�g�p3n��D�0�.j o�#B�����7o���10�%f�!���v;,�,�B�}��>�:˫�A�ab&wD�Ż��Oq��8������ab
���l�:��UY�����%
�eB��p�Y1 �~���K%,՞%!�z�����z�ʥ1h�S�)�6�Y;]�-T�d�T��t'�u��\���(��(��(��)(:[���QTP�r2%��q5����7�NDF�Âٙ�\;��w��.�����q�!��_�7P�"���2ig@O�! ��*�ꩄy]7�����*�	�F�q[�#L�9@]��M�g��J��Qf�4�������>���O<����{�
��یy��;�.�g�V&TS�҈�SR�@GQEQEQE�4�E2���,B�mkh��|�%붍�)���+=y��w�faʼ��mii�qۂ~"8�)l��%լ4+p�!M�[����5�&�3ϸO�ή�кhR�<J�{��������j���9�9��l�`��@��m$:��(��(��(���8��eۜ&�s�έ[��'����󸚌�b
��&7�\�;�DR�+l��:��A�8l]]]��K|���s([A�޽{R2؟�+(yc�X<ɵ�"�3tn�B�}��b��Q@GQEQEQEѴ�u!�:�f��Ɠ��@m�Sұ��[�
@�~u���R�������߿[]:��,i�
����(��c��~���8��.:i�P�qP�>0�&�I2P���x* ��O(����:aDı�1��p��W6�	n���>��Ø�M���+��r~�S���W F�	hq/��ſD�+�ߌ�5�2�� Fg@�Yh�A�q�u[�=s�"^�� @��Q0��F{t(7�9ڻ|ׇF����u����k��f���"@�M���$g@���G���ֺ��	ɶՉ�O?�{8:���ֽ�z]�تڨ�R��6ӷWh4��$�p�&�u=ͱ��lU͑j���/�ΨA����;������*���ƣ�qrh�@�΀�<����e��F�ԝ5��lD���z�����!��Dk�K���NN��ҋe{qh׶A�+��3��h�h�A�1
Бπ�j�LϪ2�5�Ys�Mmǎ6y.]�u]Ԗ���o;zN����iKV�^�S���jܞC��ٛ�K*�~�g�TTV��7�|T]86^�z���Ͽ<)غSU}���@��ٽ&i���
4�`ŏ��C"L@�&Wvߟ�1�Ɯ{�/*kْ�a��m�>���Қx�˧�����z~�^��ܦ��?�w�̪ץfd�w����W�Z\\<�;���*��W����|�p{�՞��ٯjX��o~�`��>�A��`:��u{t�h�'I)�ᰛ�����[:z�r�?��v�ںNh��|��ڡ�f�!��W�<�-�@@���Ҽs�~c���ᅅ�`����t���GshW׵���繹�ԝ�y��4j}�o`{q�n��8Bw�6����
4����hM:�����d5_��|��N�6t��kˎb����;��5=��Ww�w��Q�}�����˗k�k�R������W��gz�����)�ҽ�-��:OcޖP���FzVM֟Z{ģ]綢<�K��F�Ve�7+���U+���vG��*Z;���:K��Y�s�M��*@�?����o��=��4�����-��%[��%K��ʲDJ��%ѽ$���{*EN��)]�l��������SJ��Qa�R���;�4kڭ̚L��<��<�{��>O��̧���tee%����ŋ%%%
��!y/��ߺu�N�B�K��sB�!���Ͼ&�qW=�(sN30\�T
aT��΄�F0t���i��X���a-lT�(�k����kko�O<�a�յ����;�

C�5�����榦�Ǐ����!4l����(����ׯN��������0_���i55�N.��@uv^��*«;��y)={���}D@��宥�����v���)ʜ�]��I�#�,��BH_�������rB�)++C���BH��Q����/�P#8���'3��;~2�!yG���:8
�Y�N�^�
C���'�JJ8*遀vT
�����AUvG£Ѯ]��|��7
�~�0睿��ڂN�X�-��%�CU5P��ijl�v������W��_�8��Ř�sy/�|���s��(Y�9�,G'��̖=~򸥹���OC[O�,�^%����ӧO��m'�B!�B!�tQ�WWW�W@�E�~��Xٮ��q��;*9���������8c߿�N�А���555�.�%R���?� �l؄�+*��~hlQ����Hy5^�����)�GEc4�l��ĩ�p\x�����*�~V��Х�w
�H�m���ѱ��D���?8l��fXd�{�tr�)��N�8AM!�B!�BHW����ˀV��Ykc����!�qp\�Py�������WUC[�OE}���m�4}zF���&s��M]��*����'�Z[��yn��aj��Cq�`�[�9�ym������w��]`|��eL~���ine��"8:h�$�9V`���!0:I���&[vv܄)Z�ЄB!�B!�P@�P@#K��J�����^ciw*C������ROg�H��A�vF��
h<Ex.b�-l�{$�qC2Y���i?_�Anj�v�񒊊J����
��u�۳wĨ1�	G`��=�lm<�����xɲ���Z�i'C
�9󍫫������iHg��5��cE��������hV@S@B!�B!�B�ݭ
hTO�e��30$" 8���/_w�	���DS��^躺g��!#�"���������2�r
W��u��k�p|�R����~{м}�\<�Q
=y�2�_����cPy'c�-Y���Gee���V�@��B��(*.��q��~�P���(�)�	!�B!�B��~������ћ� f��<���?i���ih8�_�E@��_��i�IUU5���74ԛ�[:Z��<\��w7�
,��BB����"�m�p?��hooK8���QZ����w�u���֭߀-���
�-�YS@S@B!�B!�B�
���t�ZhE)��
A�H|�5���a���.3E�p>���h�	hD0���_T��E����3��`�'L�1p�j����
_|O.ommM?��b�ź���E��M0��6��44@1��Zn�f���ӾSzY���lrr6Yn����!a��[| �����
hB!�B!�B(���M����z��݆�~bi���Sskt*����36�۰�?8:6Q�
=:ӸRT���-���C�zP�����!���n�>
�=M�M�6V[Xc�B�H,�6�7��UIKI�m,�B�p����/b���KE]+;�l�7x�Pi�?WUU��B@k����U24!�B!�B!ни�^
hD[�)G��V��Nf���%KO�0����^��*)%�>wS@cE͑1��W:C�#�3g�"�Z�A���I�HW���F�
�W�[���'&�Dɒ�����,���vĤ<�w�|�X��fC��ؽ0h�D�൜ݽbb�M��L{��9A��Œ�)�7�_e��士?��ЄB!�B����i�*��_H4��Đ"iF�b6��E�Ơ�\�jӦU�ڌ��	C$L��-�������qZ�u�0��3g}���?�vY��������;�*t�݌`n�|LCtY�2�.�F'3#�e�������D�謤�(��+3'O%��1��0z��T�=�g󛏬�U3�#�C'�g�3{���M�ő��cI�+c��-社W�/��l�:�!�н̀�:m��o,�y�J���zm�a\Z����O�\��~�]k���T>>���v�w@���з�+����G{�`qi9���B:�;��[	�߶v���4OY-����2���ʽ�{_���@�|������N�S{�:�<:n�LV-�3�������'����k��|���\}������l�~���Y-����}��dг���g��|:e.+��b.�V@���^�g��h4t]!+4��?Z�� ��ot>�B�!�Vh@����ov����`1tAB@�ո.�#�����+��t:^>"@�
�ho@�
�h�hpm&@��_�M���	��h�
.�h�@��
�Uu�\[�6����h�=�a���yi2�8�gD�?�i�A�PȈ�����QD�JѲ�0��(�t�K?0�faA����:�>6j#4H�z�9l<�ã�7��h�::^��F��!���@�����h�J�9��-@�!�/@�zv�{�kNw�O��h���R�ѝ���'��6w�gb��o�ܑ4}��hh��T����ف��Os���f~���wO��mkK�U-�1���iZ��fـnK��&;c�9���_�]m^�_�/�8}n{{W|q���q���ښ��hZ���x�z7��������2}{��n�?x���ۓw�nM�+��8:t�X�踚4}��h؄б������>�=u�ž�����t�\�]���\�Q*�
�f*ϐ4}�����Й�=~G?�F.7 @G�L���?hi������'�Ӆ�_��X�}xt<��+'PNj���"�VoR���|��6��������L�mc:��!@�;���
��?�S�ET`dqdTT@Q\P\YdG�����E�m�E,.A�غԵ(�uCeXlqESńM(Xe��Hcl�(iSZ�''��ޙ;�����""b��4r<���c��2p��o�.��!�죡�N�C�L���U*ێ�lψ�F���E�%D�Ļ{����c��k0\k����m������>���&h��UȨ����_�ISBW��'y��m�-��F֌`��nJ�ʰ��԰���;��fMDDDDDDDD��o��%�w4�1Uum�E����YZ�)Է��\P i��������ƌ���4�#t�����iQq���H&{���A3֘��	�|��fi�ì���Ǵ��z}(;4�7D��A�4�?dMDDDDDDDD��sИ�g6v]-��jo��G��2,As��냇�<|����ƍub�RR=z$omM������儊��Xؕ��8�pcZ:vG��%v���SEMsuD$����jk��5�.^«�^�n<���ܽ���e�CV����5v��f2hQ���@1��dhT@w��1�=}J��ry�����6��[Z��+��G#y�&<�=��CE-2*�BQ��D�/�
z�i"�njj��:���ǥ�W�r����}:_��3���U~wxx�YG������7>�"d�4$->�L�X�����������t�+��Vh��
�4����{��O�����e�ʑ��U8?������q�8)���cX��3g{�j������ͪ�x:r�;�R��q��D��w��Cۑ=9{7Ċ��c��KJ�_Ae������a��lہH�h��@G����n�#3�&""""""""b�߯������o���߾�QT\�ݾ����s_Y[[��T(����:�:�SU��ïd�8q���oCT�E�:�.3fϟ9����'/^���������R�:�!��ޗ����-L 4,{�
h�DDDDDDDDD�;Q�hL���RL	�3�h��ZB=m]�����ͬ������?�$d���'�e�7н�����d���)�5�_�?�jbɍ�PC�8��n�{����t9
�q\!'D�36D�3Zv��w��eD�-R���'��@1��|maݵ!��V�B
m���L]��:�*��*�>E�f4}F�Դ�6���鳪�Z�C��m���G�s���	�'&�V8���x�ٵ��L��!���atbr�D{��3g�n���XCG�5+[{�A.o]�#,�Q2h"""""""""Нh�ѵ耠%�B���{�8�j�ohi��ؙ���3k7�@���%H$E��?�=q�Nj�����������vt�'���%$m�ޝ���?�4s���^�z��޴%c��{J�f4�@��G��4�NН?�p�8�C����Ɓ#���p�@1��畨��+�蕡�#��P�-2�32QŬ|��H
q���"$�v�'N�UUUK�͕���|��:bh�Z��&�Y���le���
1����y��#�81�fh�DDDDDDDD�3�M����Ε֝/������Š�W�
��0��Z��/X��?�w��G�aa3��+�1�Z�,[��oQ�~�0�>Aq	�k#��-6?a��Ѕ�8rP�7t������p��7&��gΞC�h/|���h��zMdTL������b��=}�q�h<v���MQ�ϑ@�o���O�w���‚&�h1DζZ(�@�\L�a��¢fjT���XPDٖ]���-ADT�Z�x3�M!�,aq)uC~{�g���XK�'�i���ے�<��S��N�?��g5�oi�("aKږ_�N�׵�8=��>t��u����ggYS�羔t�m��Y:���
T�*p&OSG<*zBԸx�~��`Tl\L��1|�����	����-�����~�Ѻd�'Q��S��(ٽWi$&�h����~�ptL��Y��+��m.>f\<g�)�"̿�zWT\��y�Bϥ��>�8ܾ)�j6tFp�	�AО��G�k���U�����5�ͱ����������7��Ǐi���?k<�@`O�~m~�
�Y�� "u�� ��&gg�]���_4�#���l�g#8f�g�i]VQy�����
��?U���z�&�L)+�������|--U'j�mؤs�LҠ���~ϟ�i������}�;L���1w�H-����G5%9Ò3׾К�`����i��*|5�C���Ĥٙ���LUϚ����{�S@@n��=��d>�ɜ//�m��#8�8mF3�5=�5����؜���Uhډ��g
hP@S@��Z=��$8��cB
@M(���	h
hB
@M(�C2��P@#h��������&�Є��1�&��ZOO�0�[�V�������>|wo��+�,9����3u��Sn_���p+��t�Q�-Q@
���5kۥ{�?^^��eMͲ~�d�������xA__�W�|�,��v����}U�'����w�2�5�g\ťZ�Fk�1ȭ�N]��TU���l���?U{zu�G~bRJ�Ŷt���*vu�e����G��9v�c�bDt�p+�\�׶�iގ&���B\������mO���l�s?{Ȯ]�Ю.�]�М������*k���T�N��D���b�0��D�1�1GT��ɒ��`QT���h��
��( 94YR°��)���̟���nu�w�}7<鞪�ΜK
�?tgg' ���'�L�6k��lT�[I��~�v_�;��q��ԉS��<FHd�D�u�*ޏ|�rd������c��
�l��KGG簩��c���a��֝{�ُ����=|�$����M����A+��17/��n���DK�@[����vx���]�5u,m쪫k�]�o~;j�w�'����h@^;�z��U&̅zIm�"�(�s�
�	���o�e�[�c��Q�:���զL��زU�8���R��0����k��&�hD�5���!��E�V/[�up�	��n��:�6��ԙ�)�L�3XpI
r��t��zFB�3�E?y����ٙ����E��=x�����kꎞ0�N�6[Brɞ��V��a.�����W�r�ԮQ1_�ȸ���{��W��W�~��O��e�������>�hhl """"""""""""""�wР϶�߹�Kti�/%�rO�b/��@�&k��1y��
��<�~��H�m�(c;O+R\#LŚu�=u�C��
-��1י�)Xŝ��u	)Zaw�&���X�e��F�jX��~��o4q@�B�oJ`sD����,�M[A][_5�oܲ.cp����HK
���cb�
��e���+W]�1E����o���f(�A������⫊�~�NSs3�����L�<��ㅧ�?��村i�-��MM��#ìc���&Lư��w=`�h9�
�&M]�bMVvZ�v~e�����[J�������?�^
���p�n�PZC:������C"""""""""""""�!�F��:s|�v~��ͼ��_V�wM��)g�j�F7�b���4Tp�с�L�iU��Ba~�j�i��R5@��Ƒ�g�g̢�^��9�*:L�eJhF�ע�XǕ�w����׌\{.V�&a�h��Oj��D��%baW���'��ʇ<�hă*T7j/�E��P��-�ol��ؓ��@�B�oڶs/�3�†���ު��D����p#�b(���9?�`X����-���3�"]V^1@�L������?��V��H�n}?���3�A�WRE�`cwO�����g�eU�W��w訳�[eeu������qߡc�26"�d�YSM�]���B6~0��Nj��>yJ�a�#��Խ�P�8\r:x��I
�Ҳ����	v-#��vrJ�{�:�����їSRݾ{��5W�+NR��GW�y�d�gYy9P��]{���E�?�5W��E�DDDDDDDDDDDDDDD��d�(�ð|���o��+ۘ�܊�\v���Ė6�V�JXo�„)�MF.aF�9�Zn#k��p[�i��3qp��L�G��e�Y��;�}#�cƩ��𹠲-2�&���ڂ��G���c�_w�N;"~&�z�.�l>�cb6��9z�6}�m�fv����qK�+"m5O��@���2�C�����5�b�t��K�6����ϳ�E��q�1O��@0z��)�&LL�����f79M4)@�p�J����<�	]�\��Ԝr
@S��9�	F��qw��q��ka�?�i�(�gL�`�2������kjk����9��z>��[4<������(o��NJ�f�2mָI���̧�D$�ͷ�h����eP�on���1���S�t�ݨ1��k�R)�n+$:^XLK�p�\)`z��E��G�>{~b"������:^���'����#���	�0n�?唆6�3#3����;I�
3�kgde|���UEZ^��_��²�Ĵ����#o���d�wv
�y
l
<[=<���|oӊf����~����F�<eWJ��W��T�֧���斢h;G=|�q�6G��+Ik͘rq�k�X��c�:%ɚǮ4����L�~�j����Y�4#W3)�K�����
ֱ��<��U"���{��zS����7+�2&Qe��Mm��o���h�봂5"c����\��tOYo3G#�y�K�&n�[�L��%�"���t"������s�D�u✺��`+���w8��Y�d-�$u$����Og�߯Q��u��E<��2�Ss.c=�t�B��M�B�M
��+�`1�蝹�t����pYY9�����ҡcj`�?��xٙrLSzƜ�8�O|�b<�˛w<�8�F,�5��"3ė�Ȟ5�@�G�G ����ڰ0���Y�n�NAh�[v��.((������b�)!�x��J7�����*����,�b�y�.�����M�8:�F�D���j�/��w�(7��
�|��i�k��>Nh�2}� �d�����6
O��
,�3�t
�q#�9����&�	y��Jx�8�PM��g ^O��@K�
ͭ�2�1NٸF'k�6��s�w�nai����9H�;ZQ���^�_o{�;z��%��/��s�B}�b=���U]Gg�������ˁ��?�+���sx����\�R=�ݨ��~��/&
9�<��5�y�����Y�L,;�*���$X�E��\/��i�͓�b��k�Z��v��޾_u<Ӗ�_�v��+Z;z��t�zE�Z�O_���$ڃ^R������D��]�Or�kE�(�����\U�؉[�7�y
lX�
�P+Y���pa��-���Te���e�}��0���x�q��?�r�1c�c������6���W���_�hɒ9DŽ����3��$�&���=�L�	Oݽ�PK��S��к�8�ccS*ј�x$84��=o��i�|��"�hP��,1,<�,
�2Fؾk��1�.)-=Cr�r؍H��I�ql �3L�x���GT#�
L(�a�>�.�xTs~a!2��B��X��p[��ƾpfczf���o�p�J�^!#[U]�?��{�O���syyE������P�$��hx��W��4'���vp��:e���0�W�����=�@���������+���q��*>��[�T��u����w@Goh�3z�΅[&׼�^U6b��^�hȒ>>V��""""""""""""�/�-o?[#""����|�?_�,z�m�	���kG�����g�@���Zpaԁ_w8&ze��Z�d��%��ƶnP��W�[;{p�Eqs���v~�5�~jz`^Dv�3��r,����|�E��1�G<#^��t�2�ђ:�kM��k�������,mA2��!t$�J�K�[;{�2�2^�o!HZՆ5�h�9�3��5.�0���Iǂ��Ó�^XjMn�[
�^�,v26j�v\f���?4��8��'��
i�-NA�?�(�%�4������Z�I�����0P�= ��ݿ@[��S�8��e2R��g����N��&oڶ	&��~@C���-�m��GM���

1X����^��n��o��,k��$"0z�9\�a����#�3�OB�q�N\Ma�Wބ��+��
n����mp��_PR����DgJ��8�7�e�/��A����4Z̬Χed"Kd�3��+�����-1��~�>�Y/_����-m9E�O�~a�癍-��������%Ø��q�����畔��BI�}	"��X��hm��o�3r[�����0A��U�ƈ�7�P?+��\����J��((��4���A�蔜�^�Q��#�y�|""""""""""""�/@+۲��ٖUT�6hc*�j�\(g3�T��.��'�)�bDž���>�J��/����!������ջ�!��g�Ggr����G����G�;�S�9�M���V��Ji�X���u�-u�V��ML���G��Q���βf���8��#d�gI��t/�>�$����6=���>t6��1�p���"�A�E����'�3q����ǃ�%�mr[y�V��~y"z<(�y�&5M9d퓃zL��=O�R�V���ٹ��[����> ���k�!�>�V̠�U^�ƛ����̀&hR�~+D�&����{ߊ�Z����C�Џ�����e���5 ���p�r\_���TqVv�mO/=ó��|�B�8c1���cfi��d���eqf�=�Q`�^�^	=��|F[K��.+���&7/�w4�=����#�-82Q����a�����p�0�����ƒ��<����=W
��E��u������u�-�~�m]�>ִw��O�R;<�'m\��X�x�aw��'����~a�n:n�_��T
nc�������e�������A�G�xx�D��h���5}�K*kͯ��tt�Œ�=1-1�m�w|1���u���:G0�m�[�?���X���$�^MDDDDDDDDDDDD��B�j�	{s��1a�8;�EuMs�[hP߾ω���Q����L�Pp-�e����������~�Y>�/�Ψ���v_X����/�r@���W0M����
�U�ؘ$��q�~#�*�$bI8$P�&�"��j9��Һ8��BDQOSQ��'ݏ���G�6���Mw
,�T���v�7g¡���Q�4�`�
�I#���ہ�i�
���G�{6O�6�p�	h��[B=�0��`~d���S�iZ��n«8p���^�!��V�G�|��hR���2��L��S,.y���CG�@o7�ҕ��!��4�5El�̹�g�Y �Y�zd"GMMmZz���ơ��7m�sd�ia0\ `��(���?tC����]�4A �0���!S;��mԥ������
�4�8v4N#�Z�}}ctƻ���� <u���J$��h���2�S��	�Z�\}�Ax�pk�`@����O����]��[T�GP�r���1����u��uo�K���:��9����w���?
���Y���V�R�@�FΞCc�Q З�_�L�-��U�,	��Vk���x69�A:GJN���M�@��X�O댝[rV�ї�6�煛��sτ˘F![������?��+����yFq[zz��Vxm3!
�1��=�����98��nt��+|$�O��-e�<�@jY(�$�6e.�G�r���̙e�Ζ�����[p*�@��2��AEd��O6@ӊQ��-���g��aX؜ӡׂq�f�Kt[j=M-t�8؜S����"��12i�����A����sg6Rq`�;/$.ԍ���Gp`�&�h��_�d<�T ����Rȷ��o��h��Օ�\�mXw?��s� �h,�KC�O膆Ɗ���
ވ��[w�En�9E\Z���|
謮������i��'$&=OI�p�JJ�Eplں�Zz�Z��@#vg'VUU���N_l}?����KꀦTYU}�����Sk�+#�S�Ӎ�
k��>[��������ڽ����Ɩ��6�`:�.;=w�tqh!k��Gù�2��"L

v|�ۿ����]<W��fʱ>T���)�Us�ػ��=G˫�Z��7�����g��-B��|̓O!���y��’���K��Y�ySA�˜���G�7��64��I�k���""""""""��cC���5��xo�{�ͽ�{(* E�
ĂFcM�Q��"�Фw�`��D��s8瀊��D��bC,��[B�y%���X����s�5�����$���4�0�}�3|����{Ɣ�J�S��U'{,�s9\���Z������0�X�=‘�
|ܑV���MT�
���9z�U*c�v�L�:��M��ᙸ	fxa��</X1G�(�;"2+y�R�.����pǭ���UIJoX�Lq^�~�� �F.�	�Y�>�}e����V���n�kX�mJ*�����,g��̛*��.�+��x�
�~���2�e�k���ʩKM�*��f��8 m���0�S��R��6MmM�?i��rƜ}�|y~(U@S4�n���?A�>PNP�y�jh�儁2� �IQVl�q}u���j�]��U������+4z�͙���@�9:����1�].q����6�>S������9/��ru�3�P�O�ă[X.�Y]}�l�%L0t���w4*�����3���7�c�^6����xng�ݻwa����w[:��C�G�wb�
���(y��}�}G�K�!>c��
CVX����*���:3.1��2�#�a�h��h�<��@#T=J��[��Y���=W��H����W��̙��@��K+�X�4x��团Ol�Nč���	s�(�G��`٨�&�H$�D"�H$Rw�S<��n�{�Zc]F��I�6�Ϳ�l�.����Y����&���6�;R/��h���R|l�߆�ΪYg�^�~Xt����?��
���8^v嘬�d���G��k�����,�s�n?@�̊q6}V$O��n;Yδ=�<0����6��U�6�K�r�i< \5���U���"�#3��@W`�r4z����2�J��1�cK8YK6�Kkn�4<�S�J1v��!���	F.���5�5z�|���̳��"�"�ǂc���,�������#���*�itw
��y�C�����{Y��^kk��3�K��/�cX��9�4֓S�.��Rp�(5=s���S�g(�
\uӗ��*8[��k������;PG�mф01�$��GR,>7o�W�a����VZa��Bb@l�/��&�Ν��>&��'N2ܵw�(͑��#+Mm}�P�gϙ���a�������Oh����o�4p��w�ڋ��t�¯�A�6��Y��?���%3�����B��;Y�A#po�L��hT1�s�u�¥ʫ
�W��j��M�Y��E[B����|�Fk�s���%��ic��,�Y@gÛ�X�V@��D��ml�CdR����u� l4t�X�Jj$_Y[�jC��;OI$�D"�H$���,8��|r4l�IyW�|��9)��B���*a��p���ʦ�R����z�l0��L�b����g�%a��k�ZPe<�I�e/��#���A�'�5��.�)��&��f��p.���z�`�\�械��ڒ�=��a��~+S̽E57Z�¬�>�x�D�I��f�3��"U�uyݝ�3�uM���@����|�_��������b-;|<���\���(��Z/
t��ʂ���U�����N�H����O���s� UQɵxYM}���ȬJX�3��@SB�g����� W`��:f��Y�]0Qw2�������-=C]CST
���zF0X0�7�c��hhw�>\�n��(^�A��U��F���K?_�G#ma�|�7 ax�	:��nŏ�P4|̿{����-�ŅEŸk��Qx���}�V���e+WQa�i泷n��4h8>�/�``2
/��8�^�
�g8@757�L�QЍ_MVk�c -��*�f�����3
�y��!O�s�ď�I΁/�Rn��8u�&�(.���J7�#ɜ�`�Cg��L	�Ui�Ewڲ���o�杖m1��}V����@��؅D�h�cEm�Σ�e�W��H$�D"�H$��y@�sP=W�{������^�%�֙h�UX.�z\�t�d~�sh�Eu�d��#?�t�a�<�3{�W��u�K6��jo�^�hQh�&D��A
���rCgܙ9�E����n�<ڜ|QӖ;ޖg�&�F�x;l��]$�m�CL�����i�d���Rw>!�p���Z��Q�{�V�9�P��"=�Ps[�#��c��Q�
�P�wZۊ�o�D�5���g.)i�%�o�	4m��=bKke�����u��9�����T�6a�s��E#�=�A����۲
�`��������^���@��'l$ʥ�b^�ݫ߿>��� ��ГMg�{8���Vkm�ѳbb��w9�hZ��޳x.�e¾�h�j�q4��|�Y�o}��q��Ȗ���(��={�gr���>}�l2�DR
n
T��Yl���=>�/K�\:���h����+V�f�=z��?��q�5�l�0pm���o
ŒΩ�T����z<Wr�y��_3�؀�0�ؾkϡ��x��MQc�o4��O��he����\�U��w�	�aQ	0����4T~�>{cp���_D�}hܙA�mC�F%ga��0}t��8��d�b�%��{;���$��p�`�D
���#Od�^����Vy��J`�a���*v#�o�qH�.,"U���[w[��E>-�,�
�n��y�6$"�`<̠��H$�D"�H$�;hօc�_���f���mQ��(X�
�g@d�[S),,Ʈ�Nu8a�	t;ўk�N��Y�碩 L�'�����]:'P�=�#{�
w��
L݅�<M�����Of��Y~��N�1���2,|�����i���$'�c�.�s�n���5������+-��&o�EJ����<�cm2GZ�k��&q���q��
a6�<Q=m��:��1��sXb��3�}�'mP�i�\��e���,g��nm�3<E�9���Z��ucw��<)�Ѕ?�C��j���$Db�;�~�
�j�z�	z������PY���!,�@������֮G�1l(��𓋻ש3]ʥ�m�h��˗�(�;"2������eO�Ä�dg77�RԫW�|�9�Ѵ��1�2]�~cK��U��-Z�-�°b����`xO���� .�x��V�Zo��82w	�q��,���\��+�K`�h�����p䏕\y���������ݷQ}�7>WP��F����߽�3g#��OH������4�<`�([g6.�a[��mpX�b��Wc�Qѷn�˿z��&>]�(P��cG�X� c�W$s&g���<�(6/��IL�I��ϕ�I�+j걎�h�� #82'�����sS%
���򊕛0s�b���Ϭ�s�H~����W_MȒ!��I�Ґ�����������Wv5�0�N�ί�k|J"�H$�D"�H�n	�1@�a�a�.�q����-o����_1;P1�;U��|mG���
�h1�;{n�BI�����༨2F0l(0���l��Z�|�f�*�)�A��!]O�8�{�-���P]a�;�Cj�)�PA^�`�m@�TO��?N������
��rC沩^R����.%g7�(1v᫋%ު���yW�͘G�{"y��$@�x@v$?7H1+@�s���ڎ��`OP��L�o�Q��Z;�{�֝�[v��| �7p�/�AY�n�a	@�w�����
x��#�ٯ�J͍_���k��_�\�_O��;��y���&!L�AV�[�+B7m��H�y��`���5@꿌����J?�<H"�H$�D"�H�@���]�5{��6����
�-C�f�g��`���gP�y!F��@ψǜ���S�l7Ŀ�	�2(l���7��W��dNW�$����#X���9�Q���M�H�`e��`���������j;�ևm�3*P�m�"f��lۑ��"fl�<�7�\u����1������Z���%��s�KL��O:��ꁰ]�O�	s�?�/a�{1�ɟ��sMz?�郿�Tc����{y�"I�J����8l4|9J�.>%�H$�D"�H$���h��+ch��3�d�?#��eN��;�%�J�,X��(D�E�l��X�&S�#\���m�^"}�-*���A�P�|�h¡#q�Q1�ѱǿ^�֮o.A��T;|�8Xy��
���S�VSG?7����*�.���՟
�>��_�z�m�?�0�)�D"�H$�D"�H��[M�;Fy5ܥ��u.`4��L#��r~�A���`+��@���V~s�d�o����2���u8F,�J����Xd8�}�����u4��@����/0�r���&��'b�$�Y�hf(�����D"�H$�D"�H���x��Yi��h�J�i�5� �V�<��~G4N�54E�3d�2�m{������䓚��RV̌?.���ƿy0;^��������$�#����S0@��j�v�|酼�SE��jjk��"�D"�H$�D"�H$���V�~`<[!��@�2�`��Ǐ�ֶ�L�[�̘�u�N4[{�ގK���1����0t��35���b��W�u`�U븊�jL�?��W&���
�c���`\3�̡j�C�4�D�G�e���ް	n�W,�ae�8�f�j�W���VZ���������g#5�c�s�!h�$��_�y4���ϙ{��3gn�H�(#F�ɭ&�,E�%Eɾ�h��2�,���"K"��E�
�S����$i��6D��M���;�t�:�����|��}�s^���K!�B!��I����%8�HFOc3�;w�={��w;�@�WBJ.*:�w��ISGO��S�g:��>p0n���\m����1�+�m~��棎Gl\�����p�8�#k<7`.8�kln�8WG��c��C�>�~��-�
�v0��M�'�MGgg�WR�J	�s0��ou�p_a}L�-�oڢg`���c��6a�������QbR
�}Mm���v�Uk��P�FfK�w�'$�ٷ�yǍ(�)�	!�B!�Bޞ��s��~��<�R}?nB�N4b���/^�WTLR�*3AQ8'��͜�ѱ��GϜ��Q7�bi�k���Y����.p���꧓/�+.G�Ċ��?��)�(A���sG����seet0�~�Q�6�D.� ��<eZ\Bboo��


�.��R�>_��謻�C__�p�go$�2���kGG�>|w媊��e+l67�k�|�ۛ�x���)�)�	!�B!�B���@@���}hx�6�7���x���FK"5�e:p0�Rt\(���1�‡��N��ە��vq_cecw��8���:hb<d^~𽦦u��{!�4�3:�+�vgH.�7Cc����l��u[���_��/)-s[퉄��G���?�70!.�|4��톆�^��S�ˀ5�������/�������Za���
����3k�vPHXKKke�5��+�)��]�k�鉎9h`�1�bRƋ��~I�4�Nuuu!�]QSS��!�B!�)�۟�z�ix��0
f�fR��������1{ސh���v,�w�� ��m4�
M-����ZZ�.6
�A:��ܠ�<%�l>2Έ<���(	iT�<oTW�_h�و1S#����X�q�1��Q}.&���R__oj�����S�a���PvCq��Œ2��ƤF���v�_W����?%����/j���01I�x��E<�r[�φ�1���b.�T�aq/$��ݿ�z��ظ�f.����iR@��_��O�>#��+���!�B!�)ݽ}�⮎wʝ��h��^�%��jZߖ�x�U�8ST��C�=�!ᑃА�o&��`uQc��%����֬݀�E��%d&�7tw��.0���nd��Զ�w�����9!=a�6:��g����5������ac�$�UM���Q|����2����4:�tp�6s��[��ęY9(<w81&�е�7p��?&��5^rӣ$dd&*���)�.�<��Qp���2�),uVV�mok�=uz�V_݅�Hy�1X�%8!�B!�B��w��C/����4��filC�b���I����'j_0-h���=	)�o(��S͗.D	1��}X�Դt�@�+:���HC��FHU2N�>3|�8х�;�`�!���J	������*�\[GT�@�
���U^iJJj:�m�^%�q!�"�/�p˖cq�a��ƃ1�q���	�����v���`�Ķ�����O���ֶV{g7ęq9F��`pl9�+-��\��P���@>^�+Uuր��&�B!�By��~�8�Tmxv
�'�P�]�չ������ �8�f�잒�
-4X�_Igѩ#Dz�#c���}C_9j����/�j��:BR
f��>�����oh��w^ZvIV^	����V���+�J@C@���4V'�x>�a�JТ����_
�b$�
)�ΈQ�M׸y��B�Ԙ�5�k-X��u���g�F4������JLr�PQD�.�	h�
�6�~Vj��<݅�W:$$%7���F(Z��R@S@B!�B!����B��f���+"�@|2���57B#�p*d��-��h�
��1�+
4_�~������t���&�	�vÝ��s��7ݻ�����N\J�w��ٍՈ9�9�*(O}���~-J@�o�Apa~�9�����G�c7¤#G���).u��H	�嶎��55�d".-�����4�o�ɞ-8�����44!�B!�B!��FC�Q�YX%�i����2���z|�&�	�&C�����顬�?�l���|�bi�����Ȋ��غ
~ygp���,�C�'$a5#�b��*���������BZw�� ��\q���l)Y�?J@�.Y�gF��%V6]���EŘ��Zy�)��ޞ�O��'&��n?u:���ܼ����������w42ڋ�͛�6!���{���M��?
Щ�'r�zF�閖V��^i�44!�B!�B!`
�A��U��
�}��}���]��u�~���/���n@XX�a��7	�G?�����j/0+3[⠦�>FJN�/�;".-�윓8׌)�ⳡ�z������/�H~!/hl$���=[�WR��=XMm-6EDOh�2���E5�SR�����zD�'*��Ox�G���{��M�DC577��� �)�)�	!�B!�B�/{w�U����ab�ؠ
j�dfCj���hjJ�ЮMFB��E?�M�~���7C�fP(�.�3�{�s�˛�眀й�ScSmЙ�\�>I�n�3�S�kͭ7������y�i�I��t�乳�3z��������k��#$2N����D����GOV2�����,�l�.-?��G�fcf��j�^g>��r&;�Z�r�֝DՉ��tv�˫�7�W֚N��)���0�4J��_&nO�B������w�֛[�.�6�YO6f�5O���l���]ޗs�h8#8�������%}>��Ź��2g�G������R귾�|���,K�rz�Ϸd�Y�f��q��������R��y`��\��5�ն97�p��,�&Ղ쟰;��3+��Nrnn�b��M�SR�h�~�<B6�A�l%�@������_̀n�zpx�ç/�^�����l[vVh4���������W���[�Э3����J�s>��J
�C�:�K���� �>lGn�W-MVh@����Gp������M�J
���J
�`�ma R���+�,�����+�-@�-@�+8�h��S�	�&@������'�M��&@��B3h�h�G��/y��h���6����&@�����6���A
!E�{��ߨs��U��0뇤���m4��	�4��B7�M���t�%/�M��'@�h�@�^y�h{7@gf�nvo
�n@�����"���#^@�
����	� @{m�
�d�U
�0_I�2���"�L���kh�2ZZD�&����!��,g��-��>�|8g�����h?!4hWp�-@ @;m&@���	� @'�y�E��k'M�h�h'�M�zYWp8m4�)t|T<$�	���RV��ʕ�l�ë	��t��yo�v޾��\՛�x���V����h�
�Q��O{��y�����~֊�B��O���>5���t�=y��=Og���/��re7��X$_����
�{��Օ��3�;�;]��Q�b7X� ��� 
�" l��=f5*�ƲAQQ�QP���W��AGt����Ϝ�\�{��@"O~y!�B���)}���\��3�b��+s?j�!����7&zy@(�9	��2�q��Q��M���j�7��ЄB!�B!��s��6;��46Lƌ�]�� qS���
ߙ�
�,6��{�%mL�[�j2v���1��3��m��t����Q=��Jjt��ЄB!�B!��d@���ϱk���D�F����/8bg�~Q@��ȑ�=|e\Hd���N�j�
T?eڝ�Rlٱ�?�*��v{�KMM�$�

�	okme������L��[��B!�B��2�����f����~����_�:h1��c"GF�A<�3dX'S��+�,����\X4�$����?P-�Ul��XE����b��������>���G7��G�#��a���Ň��w_w�f��Ż:�~a��]
h
hB�_���TY[�2����\I�9�.j�gs._�_\|�tE��w����	!�B����3�?E@#���_<xQ����ڳ8��Ƀ�5���7:i��MK�(��a��U^Q!�JW���Q�-���8�q����	S�-��	���@MS��M���m�[|�jk;���Hwc�1����n��:��/ x�8;'��G��wMƌ�X���i��xv�0S�%K��q�͑
���m`$��6r�8wϘ����Vv�Jц�2�\�c6a*���7`EL���U�p���`L⥣����4&n�_`���Y��h��>��zS�[��b��N�C�M��44!�C456>�J-�}R={�bV�[��/�fx�����\#�c����ɓ��[��G�	��B!�B�}"8�
���0�4�8�4_�A��װ���p����8eze��oG��y��������2J?ȩ��=p�PM�T�V�ٱs7�oo�9�m^<~�ҕ�W�#zƻ�w��!|������EM��s��Y�̰ɶ���{����^�ܜ�����YAu���޸QX�G%n�,21�|�eqI	^!��kO�t%7|r.��cB�>zs��������9�V�URגW��;t��͵���._��tK%58h
h
hB�{ikn�r�Y�@�.[W6�}Y����M-l]Ԛ[ڪ��(..�J���&�B!��3Пx!4���iҦT�o�q�b4�,����������ѱج-i��F"��ٳg�η�/�����#B*��S?��|���=�L������Kj��///OX�1 8,/��*��(D�1�=�}��ůMD���g��e-}���R#����c��ɩiUUU55/���zP��
[��R�lu^�}�v��O�t�7 xsʖ�?nnj��.��WV�����T__��9L#}����
�x����fX���j�`�q73+���xW?���+����Çk��F��G���s:��L
h
hB�{��E{��n���镀nhlf�JC7������B!�
�n�-�@#�bC�VQ@�Ƀ�D�ࠑ����Ye�.*|����J�|�W.%m6n��D�xy��j��$�\
��JzEt$r~~>�U�%am>�����ԸYT��e޾(�F�3dnTtl�>r�����لk0�vNc����a>�A����k���ơ�G�.�|@(��C._����iߠ~��Ā�_��ш}�۲=}�ǭI�'���e1��n���Ğ}dT�mێi�D���32���C|��#�U��
ٽn�&���_����^e��*��-3�Ԭ�N)�{�$n��)�)�	!гO�������i-�m�w����)�	!�B���|+�1���uV@CC���E��#yCT��dq�1��_��1���j{��=���B��� ���<PG��C��B22��G����"��
l��j�&���ܩ����3�=�e����ྑh����_��^w��Ǐ��*yo����a����WuM��� �9r�5	I?�>���݌ri\'�ۀ��[e,�?f��.������'Z[Z�m�<�{o�� 
�gxx��i_�~�m�l,�}��:0�7`�
�F�z��3<�
���S��W!]:<*�F�M�x���ʛ��BM�M�ݲ{ЄB!�P@w��l���!|C���~� ��=�O�a	M�?AY���
����S.*�UVV�j�Z����A�耪a�S���	~����:�t�<+���g�&M��?��u{:ҥ+**�U��J���鳧�2!i=�zڶx:c�0��u��̀���ѱ��502����ar��N�/��i c�4r9�#1y�Ş�'#SFA�ڵ��������1 ��}�	�oUo@g�?"�*���BMMM!�B���;h,
�|���]�T�⥨w��wƵ�/T�
���-$o�и㩃���n:��X�2��_�p�Dm޼��f���
��
h��p�x
w�d����p��F������Q�گ4���_+/#+p̠O@�\+[����Y��Y`y�����P���7"�y��CΡ#xP�A��F=�|��FE3$8�����vv[���a˶���Q@'�������ge��`�l�Y������T��G��$�=zR�1��D�ke��Qf���И$~��r�w�����
��b�OC8<�4
]�8>&����|h����ޙ@U]�q�3s:3S�4Y���q�555��]�bU\@%-\@L����
�n� �Ci.�Kq�Q	�l�w��z@6�Qf�}�=�����������^ٹK���E"�H$�D"�觛�hh.�\�I|�7pyvY⡠0�/[������W�3�R3HZ�q��I>[\ҭW?�},{����nˬ�#�e��
���sw:S�����&-ڂ���w�l	��0y:C�{箃����ׂtcnq���܃irpv{����`�4f��_볁-
qѨp�>ڰY+|�Wv�^
@{�@c����X�����uA����=@c��OL��%�Z�Л�!���/��Z�/:~�6$|�~�Aؖp�C������k-��M@*_0�:KJJ�g�cj��[Ǘ\{o+�W�؁����?���2^��df ==���+66�n?vJK����V�^}��f���"�}��g~�!�#_{��qN�~*�骊�<u�SLn -E�h�H$�D"�H$�6g@O�̰#�Y��xn����ɪ����jѣF��V�hkƍI)�I^�ɫ�L!��.�ɧ�� ��لP%Kfe�wt�؊=ؗ}Aؓ����-�Si��u�I1>�a���@�o��7Jo�[�i�|��x=��a�X�rs_�$b���{�̬-�4�Oh:����қ77�,NݹK1��#�*�K
���8:I|RJ���"]X} ~���n=���w�̷w��'ݿ_N��O�֨Ykе@CE�ddd�ĉ�|��7�x��)S�$&&��e�}�o�N���㧟~��c�7m�4dȐ�K��Fp���1l�0�"Lb>O�:eoo?|��A�
<xĈ[���j�=<<��͝��U>�c�7n�֭��ٳ�ˌ�r)�accÄ0"����PPP�%��޻w���	P����ɓ'�>333��Y�f]�|�����.�jܸq��}�H���E"�H$�D"��Z�M�sg�^���Ќ���b[���dI�FjP�D>f\���Q��q��^H
�A�cʡ4)��EE�J����Ū�6�ї.�;�1�K\�zu�����Zw0�l���+A��~�Zڣπ�̬݂�r�~����_�\s��/�
5�N=
i��C�4@9;ta
^i	n�8$,RM^�.��P���CF3l}���\�vM��0��Y�&-ڐ��0��ׯ_gD6?�)е@�  x��Ž{��իW���ǎ�'�Ԑ�/���y{{[YYM�>��O>1��˗/�~Μ9gN��={���+W����={��}���ѣ�СC9&���͛��<�P�6����X��s��nnn&��ቿ�9����i��Ϗ�3���S*a����}�Z[[��~��������L��޽���%S�-���`�Rd�0��F�_U�²���י����y�N3
�𙚦sU�A5W�@��D"�H$�D��w4]z����L�J�sxL"�$h]x�̈́�*��q\;��~�����elׄ���?��d�y��4]_��<e��w���<w�[;Y�7 Y��/�����6��u�^�,^j=z64E22М4�v�๞+W{��3~r���Jj�U�~Nn��>ܗy����Wxa��][s<h��`�
��y)Ҟ�VO�a۽π��+G�O�.�\5l�X5���!4K�67r
9v��R�M��m���dV+:�'��s,�X�f-��&�TS�k�V����Rh�%K��󋋋8���T�ző׮]K�9s�	����~�ܹh�^��@sJn/����u�ĉ��Bp��%A�g�����Aҽ���h��\ZZz��E�9�&Nj��5�"U��鿺�:M���p迻���#G�VNII!�Җϝ;GLrr2��*���M�4Wը�W��E�u:�j�ǎ��j���J1�R�%���'�J�SZ�ۥ���YjZ�䔶I�m��?�Ĥ�)
��
���9�|�F@��D"�H$�D��O2��#l&*�
<�������a(�Ќ�F���MZV��F�ٯ�Q�V�{���/�kL�^i��
2�	�xN�6�_~�����$�Ea=>�l+�4m	w&Ul��%<���f�$[�
���۰)��k�1x?��
���,ln'�Kw@������T��CeCs@;��D���P���
�Iе@+@L/I�d妢�S���-�tҤIX!�@_�z�S�6ɼ�ظ�8�+���ѣɿ�V^� �^�N��ɓ��m���F�k3�0a˜1c0��@(*Jt�U�`*YJ������3.n�Aaaa�ׯg�4�gΜ�5�<������n�k���9>�h��ѣ�q`�agg�
H��a�Z�h�O�>�O1���1,��.�ah�N���Mn�}}��O�_u!/��R�:A�2>�~D$��%�K�aM�c`�0h�UC[�m������<�1���X�Ln�����;�"�H$�D"�H�̀��l�Ysz��;{�C'˞��>�Ca�9���=|8�v.D�㞀��ΰ�����?o	��2�ݯ�
��U7ݸ�Z��?N�<x�S�,;O��\�)/*��
G�W�����ߟ�`8�	����<j�(�.60e(-�8)��M4��v����!�P`�1eV��lff6c���;w����&�+���b��W	��a���*�Y���ѳi�
�u�4n����T�Y�nS
q�5k�n+<I���@?�Bj3Iʊ,3�z� ��$��x��
�u�u�#� �-�Z�����u��瘛���fd�4	��H�/��s���b����y\<����Z���ۊ�غ��G�-`�b�5�r�*��\ ���ەk�%�X�95��*��yq�G��|I�h�H$�D"�H$��e@kٻ$?
�l�
��۰ɿk��p[���/cs����9�9�"��h�,��,���0�Nz�V@*�����=��������ȄM0Q�`�Y��^��!�Ÿj�A"0������4t����eA�6�$t��Á\���+nj.]��
x�лw�8�}q���|ڴi<r���~��i 2�W	��
�5��…�fbf��:UhD@nn.� 쬬,�=�3L2��ǜ����"���J�bh�."��g���l$�o�l�82�qtL��/�˩7ѭ��QѶ�9�y�+�����_M�C�@�gh-{_ps[�oif�ԩ?�%�ʾ�b&�����]��,��S���qhh]n�~�@�D"�H$�D"п@Ñ��q+�t-/�g�F�p���*���	l�������K�d�+{��!��yY�d�b�Ѩ�fԴI�2����Uv�r%o8�F;V<�nw�؁��1���j�.��"I"^�p!������۷I��kұ��,.�h�l�՜��s~ְuV�*�S�f,<��a���+�\��6$�N��p���|�X��?��#��D��.��ʞ�����%Uå�mێ�F���ee|�C��9rԧ�o���E�������'�_��Q^�.�+�=V�Wt�q��q�m�^mT��.^���ʆ�Ю]�9{s�m��2biaF���_899�KՈ#I�ֆ��Nba�5cO�h�H$�D"�H$��h���<3�"�����4`+��ʲ�~R�8�M��0�����[h|0~a4��pU'''.�<�˧	�f9�.EinV���M4��tP�m��?�d1A6���S:##Ch�5 �B�0_5�|�ru��Ae@�њq��p�ˀ�<��`BrrrLtYY?�ͧO��#Z�,xb�s�_B�&�N�W���<�5�N��:[��`]~��<��;�N`P�а[_}u���~q�u�7�q�g�mnG0^�u���ff���ӛ��	z����>X�14��t�²ӵk��[�r�g8�
@�͊ͪ���Z�U9`Z萐P~ۓ�%Z$�D"�H$	�~\���~�5rr��$�*S�8`�Pi^���p<��Pl���W1���-ZDI��@�nA�ϴ�]ʂ���Y��c��N�
OPIŻ
���k	�1���I���4F@g���1��A����/��.�

4����~��x���4���@;��f9��E]~~�1��v���pL�9�؀���4�
�h��Xx��sA�^�5��m��.�O�A��g��C�[*��}���
BB٫�ADd������@o`���a��#���1�C�1�=y�?�����(��m<Ȏ�&��]�t��߬,8Ȁ<h?���BB L�H$�D"����}LU��i���n��5�Э�VM�5Y��5���n�&�v`�b�61��[�*[��ڙR�p_�.o�8y�T�Ϊ��t�Q\;�D���"3��y���{���Ԑ�͓�{�y�s�s�>&��ߟ$	@O.����h5���MJ:%%�X	�+�׷d�>��b�
B��A�l)//�'C�2����ʂ�"@3�q(b�p8���NLL��%�5�n`^�E�oݺ՜�5V�FhH.(�S�]����
V�#�q׮]�q*���B�/�a=&���Pu6�ns8(��U0��h����|�ʕ���و9�j@�l�
�N�dl�n�:��M�4P��q,Fih�;�,=��8}�?�m-G�;�[��`蹥e_r�_l9�.:�p���_��n ��r�t���P�t}����_�CL�k8��r8�����@�P:�1�`I)��/�1+k�9���	����Е���?��r�D�����l�ɶv�@K�$I�$I�$�yh9���'m��DlL�@a
�F�4�e,6ʷH
��>rss)QH�?P/=9�Af���j���1�CT�����z�ڵ�LQA�P�](������@�SZ��ffBBF��
h5�t�3U͛6m2�7���B�Hh��;�#s�,j0w��N�����8��EhĀ$b��3--
(_SSì�'B64�	
��z9W����L���W�2s�"4��g�	g����
W�7�%��v�O�a�5��P�X�?�v?�����_w�]�z��&'����}�Й3�Ϝi9wn˱7�ͫԽ?1qmb�uk��ٳo�?���@0^a�}�NV������s+��X[�.]@��\��o�aZ��+�В$I�$I�$	@+�CMz�hd����o1�A�P������Az2�;�� �S��7oތU�n�
/0�X���6�^2.i�3 P�c���M�}����ӧ����`h�.�r͉x�=�^�ލ7Λ7�lr-X&pRcs6�0��-[X&��\����'%%�n`71 ̊�����es+V�ZE���M{M7�pF��e o�C4��Ș����p?1b�f��
����
����bnb����c:nw`q �W�[k@�(�N�W�.:,�����nF)�Յ�9�@�{|����C��o�p@�Q�m۷�>���"f�jr�|�SO��W}l�?0he
���%�W*��$I�$I�$IZE���"����L6�_��5kx?��K���^PZ[[��Jإ� .`���+_Z�/222l�.���m�F�6g˰c|��4@����;w�$�=Ú1>s�y�� f�bf�t:',��ԩSآ��@m�ΔX#�����2��ƻM�A�
4��E|3�ά6l؀���B��^��6��7����.�g'����s���q".�W�q:�q�k3X9�}��	&��om����~��4��m�����H�tw�#e!�2��X��u����y'�垝_0@�̉�5�
�TQ���e�{�*�q�S��y���Q:~X^��'*�~J�FYhNYHE#�;/�gcN�#�͢�c?������0�…��:{�BrJ
�����Y��%I�$I�$I��ZMz�h#c݅xR��b���ׯ�vg��7+BWWD�|� ]d0����|o{{{�)v�s�Qv��C����G��}
&1+��nG�������9EDӁYٓ��-3���n<�f؈�-.����%�;����8��{�i|���/�[C����wvRZp��k2�����<��x���Ri���i�!|�_q��,��Z%
��؟���̍M�7<���n����|�������/
��.�F���5۷g���%I�$I�$I��\͔T�PMz�����U���h�A�	�1�ޖ�:��F��DU��S�Og{��9G�=��Za
��IY�bh�����[_� ���ߟ_�Z���l��V��j�\���q7�W�y$TN^ǣ�P�=^��q�2#�*�
ž*_PQO��g�v}���[�`�.mhlbb�[#C�|�}V����!@��\���R�	 ��$I�$I�$IZh5���"�ƒ$}�4����KJ�9�5V-M04n�j�j�(l-{{z��ù8���׮���?QU�U+֙á؏VV���B��=CC��P���k���#�����z��ޚ���K��{7�B���d���^�����4�g���vhI�$I�$I��'=Zh5hI��'��I����Eŀf��0�	�Ex��_T<2>N�џ���/�c��8���7�γ���$=�
���,��H� a����ԣĄ��x�"�7~���������O��ʄ6hfWGG'脄���ZhI�$I�$I���V���$i*h���X����ƦW��k{{����jm{��i��=��(ϡ��-G_�˱E��@�a#�.)�^yE��7_8��j?&���S:~�$EV������N���z���UH=v��
�%%�##c|�<&n�<��1����v/��%I�$I�$I��V���$i*h"2�a��q�1gL�c��W��
�w�L�6gb���
�����R1�gI�
c�y����A�+�i oZz��8��8����ODHWdP��$I�$I�$IП@sQ"�&-I��� �D�� �͐ho故L�����_Yap�IР�[{
}���D�-X��8VZ�/{w��t�q���|ܴ�@/u�:Ayȃ�"���?�KѡҲ��t�P�jǜ�Bu�a���~;����m�׋�a�vy��+��6Z��o�n4��Y�d8켽� �����g�~=���g�»�N��=�Rϩ3N@�
�&@����;���6�M����'���r��;�M�h�h@�v�h�h���h�h@�6z�4���]�a4�!�ҫ����V���Z+7��j4�mzG�t_�X��Q!�h`��/�ϓ]���ϵh��K��V.�h��4@7���|��s��Ęm4����sO��NfVƗ��u�M/^���Һ�d��^�E>~�f��R)��* @w��������3��R��^�'4h���?=�Y�u;����Yk�<x8��)mn��֊��߭��r�|>_�T����N@��5�pq�ޣ��T:�^�q������$��i�#�?7�������h���}�D,1�X,@�`��b�8�0ܴ�M��� �E�%*�,z@��"��l.X+V,�E�Me�E�4�F�E�-���
j"\�b4E9��8��
FN��}�g2�o~�\`�|�B�G����˵-9�YR�I�pL܈�w�/hkn��L����]]]�τB!�P@�?�Z@�[$oحX�v<7��,���5�Եu�_4.T�ԁ�Y%59e
�NKg�FD.�6���F�<�E�޾�&斸�椗�Є���a����/���]�u۫k���嘈ZQ�����Ay7���Ç�5��{F!�B���04~�2����Z*
M�vC�׫��l���g�眓��Nc^p�/�����Ԍc'�2�	#v_���Bƴ��,�
Ah����]0�.�!�J���`��6�}14!��=4�<h�	`�L0�τB!�P@�Z�h�`��\s��gw�EKm�S3��g��M�Ȑԁ#Fs�8�C·������z{�r�t�
eT!�{zzk��Q\�2����Ca�z}���s�
Ե�J��蚣K1ޚ�B!�B!�
�FpH�
Q��o��PrAə�����b�����MBJ���P�f��>�9�L������8|���Ma�i�s����s��

��{�숌����n�&����NPƯ	n�,3�|j��`��hl%��ghj��;���b]8��s
p�j�4��g�A|��1[s�e
hB!�B!�B(���G���J�
�k/r��.@tvA	����ݽ��-��;$�^䚑���h+�0���axF�MM2�jx= ��I�O}/UT!Z"����Q{b�öB[]㝻���`1�#.��E����͋����������䪨������>t�#	����=}֮\��������{�X�	���t��m;"�
r";7*:f���k��ЄB!�B!�P@��Zj��������g��4��]<V��#�gHj�yExg���7U-ar$v#0�7[oAhJ���ZPh��ӧ׮�M,��b�r<���f
X���3З�o��<E(�/e�SR1�x���g�n���ݻ�uu
��lˡ����� ��LW�Լ���v��У���9�-34!�B!�B!��'zc��ⲳPϒ�]����iLB@�-t�����в�jZsQMNI�b��j�5y����Z@P������$���E�Fs�u<��W|�����"ijCw�TY��CI�����(�mݎ������|��'ܿH,>�0e��Թq�!qXTR
��<h
hB!�B!�B(�߃��	���;_�B���� �'`�ϰ���"2ƙ�A��711�06[���Ȏ���������x����S����[`���#޽w��~�4ye\���4S�!��D<{6��{�b+���*�g�@=�t���r����ϝǍd���^��A�2r�Io�)�	!�B!�B����"�X��5<"r����A�\=�,��S3���,�����d����<��B��._���1Su|�F��tG�n\�����Եu��W�u��E<�146��C4kc�Vc˸XQ9MN9($:���V��4�A���3�)�	!�B!�B����Zz-�A��A�t�Xle-�}�J@w>z���YSWWW_�4��琀a�p���WcFp pC"�ѿ�R@-��'~4=�@��RZv�I���p��,�_[^Y#8lkww��K����:��Ʀ��>���

޾�J�̀��&�B!�B�a�̟���8��/������ZK���[����Z�Zl׎��*���]�"�\"r��r�cTJQ*bAPTnEZQ�3�L*��;y��4��T�8�~�w2O��|�'2/>�B�7!\��a��.��0[bN�����bh�Z��mm�/F�>��j�
�2�
��';p|9?"}����
B@#�h
+�y.��9o�Z�<ufAa�Z�o64*Ke�'O{(�w�Q*u��2o�����Yk��/��9�\D�f᠀&�B!�B!�ڬ��86v����6��ƞ�v>6jЂM�^��e��+�c(��9�7#V���v���D�22��>�3�8�Tv��t�?�9L1&�����Ս�o�)8�
h���wO�Xy�3rI�DrvE��7o"�z��i6c^4S@B!�B!�Bm��2
<w�RO�!�q%:>���:u�k��ʭ�wa�`-�&L1�/�i�#*���"�y���ee�vIi鉓A�I���z5
�4F�\�H�����`~����r��U�T����;���^�~�y�:<�FZ�1���ӸZ]S�z�㰛�͒R��OH�2�U]��1/�)�	!�B!�B��~*=	:y�£>'bS�]�,�;�%�Hd�^�1���	6��:� WTT"�i���HČ��$��� %��Œ�+2���ߘ��0)_��%�e���������,,��������<�a�V�S0�߾4�S��Z�6�R�V�^��9�����t�yK���f�[f
hB!�B!�B(���	!\�p��m��� �sXT����a9������5���.X��c�B��.f������V�ű�
��>�0�󻓧=<�b��-�v`���^�������?�BF\Z�a�򕫖�xg���ڊ�L�F����V�s�q�
�/�h_�����E�V��+�=\k���U��,/M�:g�u�?ܴe���[���l��FZj�1o�)�	!�B!�B��~\hi�Ў�>C�gyR�4"vͺ�_-_���4��"n�	�@Ndj�R�2"��:�a��'���hiYy9¥���X��Oo�ܥR�������+��A����]B�8c�������ߢ/p�A
hB!�B!�B(��'������U�;���;�߃����O!���Q���>!iƀ�)"�;0H2I?x�1/�)� ���C�f/�<.��9j�Wr�ZCK�B��L�W�:48��g�2ƏW���!�B!���䀶 ZO�֫[�?��A�Sg�v�dGDdtzF&��EDmq܉`m���v�����
�ݏCCF�I<|�v*;�]��U�=�J����K�+#�����Ӎ����<:6ҔBkh�8�NeWO�H�f�o��޾����8ZC���>2�Tp�d�s�ITx��:}��dP'd
G",�	����Q��,;�D��vŸ[����7���_���ٯVc�Z;:�Z���}��B!�
�����}b���?�����C��<�y5LMMȨ��Ҿ)��Lv��sQ���r.��yeW7�����;'(>-��98G#������٩�5~<5���bIR�����KW��{�-@z^������ۋ�EyZ]['M΀1�w��C��J��CՕ��{2��L�,%������ ��[���%f�����Kn��-��6����LN>��xt*���
�]c�w��a=��,+����š��x�L�ZeM-��^C3*���^Cn�S[��f�A�Ƥeg�5qY�晜o�!�L�T�+.���y��}]��鍭m��F����
�9(#��Ѫ�a������
˽z�:�]`��KE�"�*k�b�A	i��sQ�B!�B=�)8ЈQ�h+�w��2�|����&d�����2T~�x��$(��r7�A�B��ѯ��X�	�E�P!�{OĝƗ��%L�{"��%$��SmJQS�v��t�W;���4'/�KP�OT��D��S�F��p���n?d��q����ſ��	�7ʷ���5�a�5��H�x��%�#���	˺|��ͦ
�,�+4~�ꎓwhrV�XX|K��ƟD+�9�2ZF�WJ*wxa�F����P����W�[����=�$)�y�w{aI�#�.!�n�x��~�|�b�.@�q�yE;��E�b�A���/���k�퍲���CQ��o����=��ɰzn��nϐ@��Nڹ^Q��|kk(��.)��!����ok��гc<⬅GP�L �У۱截�s�P�ځ�wK(,��[q�q��F�B�Ql���kQGA����Ov��6Zƿg��nW�&���;�_�����O:b�B!�B(��.�i�Y(�	!�@@��NA8-A@�ַ�!ɀF�Kh��U �L_S[���I�mhn�%��QBX]�9|i@M�\�p(ܥlj�^mx=��{��j
"�Mdž�a�e�Y���h������I�Ne�5j��c��3�H@_-����dmC�nVฮ��������^������˽Z���w�M�0�?s��Y�>�/F�2\�`�q��lPe@��l�Q�r����n,��;���-�Aܘ#�)V��-���%M̼�ECo��U�Q�vx#Z?�*G��%��ò@�]+
N��Y��8�'��ս>R���T2N^)�Ċ]��?���+���o�E�ݫ{ժꪤ*CYU������	(��LN(�"2*�������8$ hLLe�Gvr��
�����Y'��s����>h����#�h'��Y��l}qg�q�x��.�o���Ǻz�2t���?�,�l�	���C���샇��<1����Xd|�Ɗ�x;�2�[TG=�-�>Uc��'i�R����������P���J/��̗z��w_zN�����[\R��;3��,��4)Mޞ�[*����@�WMp��O���O��+���?~�)8��@��߂�EDDDDDDDDDD�t�@GD�z��ܣG~��>0\���mh�9����P^S�ڃ��k�!-ۇ5%0�̽	�+�ֲ��M嵫���޸sW�M[�+�]�ҽ�����EՍ��a�l��!�D��mQ���ljl��n�o�+k�ƘH�4��(�ZR{<9#;���DV�|��P��0���]M��В�<~���e�.u��dru���Ѯ�Սf�[
��nk��-��?�Ӡ ��m��s��eГ���$Ľ#W��,(50M��29��8Y�]t�%W�T�7>.Y��&R���e�ס�kK�6��Za�K���};������h��/Y[Z%15���1x�QTu�m{�b]YU}k�|i��n�Q=|��I��s���9ѕW\��a�%l�w͉�N�zU5��(zg�꜁�	J�������n�x���DK�-��Az���B��N1Ӱ&u�ڤ��0����X�U6#
�
��|����X;m~i�	:񷷔+WC��kS�=�)7�Y��ށ
e5`��ga�'h)��#tDD�/I�F�y��:l��d1|�4��OJ�ۺ���7W��D��@�<E9��/-�=������9�E@���)"�9(C��U;�(	]����W��o��j��,�-�=saTχ;N����{�G^[���OНg�H��h3��;��`qYe�oF�+��i��M�k�V����y.ò+6�0�mye��w��0��7�����\&z.J�w��o@�w��F��vU�����f��dʒ���N
�?|�2I3�~����Sq(��w����*�-�e����:Ó�5:m��Ј��p3&��/�Ц+�Ɗ�2�L
�J��öy��akO�Ɗ�w+�c�__�C��E�oo.���K:�_X�UGm�
���l*f�^��ۑ��& �������`��r+%g�niv�ʊ�����t}Y���f!g�5���!`g�1O�[��X��-@o����yz��ww;��r�������h�깭��sI:�q�����,}q=�ϱb�Ώ+�tI\!T|-��B~01���Ý���4�ȍ5 �[tH��7�P@��Wx����E&<����zkUs'w^���6�'yu
�O
��wdl���s���v����5�G��[$�;^4�YC$w��G�_��:<vݍ�4�q��š�hﱓ}��z;^2i�b]��n\�a��Jn��%�.����W&��fYI���h*r�Ո9���m����p-�.���k�m�f=t�
�䁦
ToYm/	�Z�\�	�W6v:�]�Gw�?�uw֋��Vm!a�!�ҁc�^0�}U�3�f4��[��
߄�L]\��VI�(�������f�CW��/��n�����M�zcG���ت�+6�K��wV��w0���qҰ�ne9"y��[�ۗ�J�'���L��%�P�>ީ$h����.
�._���:?�R�#"""""""""@�:���#"~�deP��u��4��g��L?<qkJ�hhan�}6���y}yM�n�}�p=d��4�|��=���\t�-�����9�*�@S�‹�{������n�ޕ����E���m�V,��+0�p@3p���~���ޓ�ٽ���^�?�Åek�Ù���q
ϼ�L ��A.��ù���V��U�d��e4���ɢ�I
b��6!\@���fO��yN��fx�hmg��6h��s_Y��w�r���זоzO`jt��7�Ls���%��]-��:�[U%IN/'Gm�G:πŲ5)n���=y~�w��S&\���^�����?�9t>m>�Na��%��{u]���Ғ�Y�
��<�h��ۈ�XO���i9�,�6Syf�Q�QŇ�ͮ�x�_���F�""""""""""""t(��:"�W��3V^`��M#JE��Ll�%4�i� �UP���2q�2�f���H�Q�7u�b�;�Ƽo4HsMie����+�o�;���:k�O&KK��|�8#��ƾ3�����Xp��������̕�C�Ԅ˜��� WFƩ�ٛ*�վ��"M\pt��-�~۞�s�����.a�4�ޡQ���qv�-G�����湠��W�h-��y��T=$���3�a�{���%���i�.)&�
���-o�b��8ԫg�>(ڷ�h{šVd��	�\�p;�c�(�וT1���k�8l�i:��h���ؤ:�����&����
�>���1Ɲ���ۓW�n���vTZh��h��KZo��<Θ��{����3s!�����������������7���?@�:""��q@z^��Z:2���'��1D��ų��q_r-@�y�ˉÂ����"���������8;rre���Ǐ�?x��qvnIOj�D2䔛m��r�@	ixI���y �HD,a�8#���?o�ɿ8@��x�y���O�C�<+��0|7�Ǚ!u"XC���B�VlqOc��9��������9���HU��!��Ô�{���v�q:O����vŽ��)ʳ��<~#o���e6!d�����tn���:@����a�7Y��-+�Gt̳��
GcW�ʂ��MZj��}�1:�DP�>ai��T�5Fr�F�-n����=�1m��y�����������Պ5�Ϫ�D��Lfh�!|I����!P�4hu��Ýgh�2�\69��O�~�]�B4�m9<ҒI�跚&�IH�����`���t�#""~i�Y����dCtLܺCa��NeԀw�
as8iкB�R��G0(@� ��6!L�g�G4
 /�����O�d4��-�8�L�E��,�B����γ!F-�fP&M����l
b�6��'R�� aӯ.92��(�/���㞌�oNߝ�5����W�m�9=�P�M�T뭸������`�A�T�ڭD,��yu���ظ3y@��[O�Sc��������^�+,�;���ܨ+�I)�M�0��&b��Q�!� ��'��о¾{���soY=61e�L��_jhɸkCY5$=5=���&��I��Y��
�)蕂�]�82+���DxX[b��I����@#��=�.!���O4
2���$��<{i��[y�ȡ�my��.-/,z��zի{��Sav�vLK��U����6�fr��S:興���������?Ƃ#�q�����E��M/�na�&<�:^^��V䞁HBx	@S�bjhu2�L����n�{!I/�3�����{����#����E�wm�À�����ƅ��Do�]L;��-�]���Ab(��+6�&n�d\>��/��E6mN;R��%/�~�����
.�����;��f�b�N��Z?�ai~�����%|V���f�"�ܓM���[�(�dl�
�leS�i�y�v�Rݪ�w�rA���n�D�'gK���Lgx��U[��V1m��Gܕ3}d��Z':I_�ۂ�I�ϙ�K�}?_��ћ�zkKESw�J"��pǙ�=?��S�H�G;����̻���-�w�3pal<s��2��eq�%�NW�#I�s�z�kL6��k�KM��NO��/Krl�����M'N�OmwiU�����~�KT��}��~z�A�4��+t���(�k��/�Һf�ѯ?_�"̚�\&a��l�=�U�z7`5��f7�/�v�W)�x��Mk�3(ϊ�Lu��s������3����C-�����l��
�������������ڤt
�8@GDD��y�O ���8�� c;�M��j����4�,m݅���
��ե�|4���v�6�j��H��+�7��	���@z���g� n9�?26�s9�Ĝp�ӧ_�Zw��2�{����QD�p�
�� ?JU�`��$�5�϶ݳbj���_?�ln��5��#-����SK�b�l����=ɑ��2�̕�Y���r!��B0Y�\�>�L�ٷY)ݩ�������%mP�4w�z��h[o�nm����
�/������	X��ȓ����OQN	�
�L�%%ޤA΀lܠHz������e���~�.���������Y����U%�؊����i�0��I�b�����'��=6$̺UCH�K��d퉺29%1i��Њ��sV>���zӔʘ}3��]���cS#�ׇ~t226a���
T��rxzyW��^��bB�V����=��9{�!vO]n����4���כ�S�F�o�^4t[����M��<56���"�u�sDDDDDDDDD����#tDDĿP$�pNd�:O�O$z+|���������6���&��%���M�����%'ܮlR&arecgY�	�.}ە�4��9�ϫ��Ɇ��LB��\��%)eЪ�N��R�L	g�ѧ0�l�
�����.TG����K�X~�K���Eo}�>�.e��z��LS��R&�=��%�
��i�r��-rn�@�n��1���9IO�+i��f=�멱�|�'b6�w&Y��L��W3�!C�Ev�骙��%����u�����z���d�it9���%���GGΔ��Ј����������?ނCJ������e(8�>��9�Г�aa`��(B���M0h�
q�-�n�|G����I�>OޡC��vj~��#@$i����|��;t*�m�V���z�����f�_��O�&�_mۿ��8��� >%I��6�֎��z��e��nBhhr���P7��a�Kv@��Z������>�{�� �9��^\^��
t�;���04�N@Z�@��;;���64п{G�T)��h蓫�@�N�
�!=��S�ىJu�P��������X���vv�O��N��7��64$v@��4���O��9��?8>����}���jw[���d4�������{L�u��[�exA��\�p�
BǨ�	aR�i��Y�pj
"!�M���]M��Rmii��MmӴ?8���͵�at;��Ύ�y�s�s��߾���[�bB���ȅ�(:�*�-,�VT�ɮ��}M^�k�LkW�L�	� @�wW@���
j�H+�דWj��ҳ��Dg��>�v����V[
������.�
�&�#��=���̘1��Ʉ^9��1":���&#3��Ʃ}v�T\R�s0��'@����.�
���#8FY��.J((9|����DZw�ߔ��M���I�o�k|{���v��>��޾���͘=����q��iM�W�=�_}rj���UO�)��w*��h�=�=�к�`@p��j�F�.,=�4e\�{e�7[[[/|��{��^~�---W�]�3_��� ��֦+y�����;�c��:��Fm1��W�{�\������[��{��G�ҫvfߎ	�z�#8tI&h����U�ʏj��o�1ln�z�P�״Z�:ԋ�#���gVV�VVU��Ȝ1{�3n����f݆��Ҫ�ڏ�s���&����K?J߷4)ykꎺ��)[S�i5{^Tzf����ջ�d�G.P�Vȶ3��L��d�vv�^��CY���q	�mC��`y�̹���A�����ғ��������<VY��۫��pӖ�:��􉓧:����5^:z�rʴ�

�z��թEO���#�c��X�}A&@�;@�ksp��2a�Z
�����b��Nn��oLX���\Z~D���*��!�B���O�two߱S�56nڢ�Ԕ_�[��-mgGG��7g�Gj���K���۷r�
�FDO	��+��u�A!��a�>=��[fցᣭ�̾ ���z�3�U�5%���/:f��7/g�ЋZY��pt�ۼ�b4z��Bg�7��]V���J&xO�G�9�E-��Ui���s�{{zR��:��ۻx8�z�>��)ۆ=;������k��
��k���ө���N�W7�S9�����2 @������A!1@��N�
ܼ}Wq�1�{PwL�ʍyu�Ak�zt~q�6�׫�_K2�t4@����l��'4?
�:lIbRGGGww��
�%e�k֮��Ԛe߀`u��~�\euMM]��&l���y���
��.y�*Ul�y�(넥o�W����ať�׭�dai�h4@�L��
hM�Ь��ԝ��`na��)7WlLIM۝a܍��od踄eF�P����E
���Ԭ)�
�as�k��f}�'&�<u�޽6����/_�Z��?��͟�޹�Z�����������?h�s���Þ�������W(1���ugBM�hkm5Nu��7���)vf_�	��;{��SU�q�_hs.D��D�r���(� �FFs�"�k��l�l(� �rBam	
�-Q�/K������)~b�^u]��m�_����=����s����W��Ϊ(���^��fʼ2t�q�}�<����t�{�9�En�����a��SSSi���( �X�.��S�
�'&'�RU�):.(4"2v�ze<[]{st�ϖЮ�Ԍ���Z؁�'Ԋ:.!%:.A�;��,Kb���U=3�s��:3�Vk�nkB�U���U5_~����:8�g��� ��o�-8��rK���yIᲇC5��ˡ�ל��֊���=��ꆡ�S��L����gz}W?\��G�����RV~d�_�_����1��|�
��/��s����x5����t���O�U��=�v}�[�����pv
�;��RM�|�����G��
�
��	�hoh-J�xQ�46!���2˜=*�~���Q[�=�¡]��_�������eo}���911����io�A��!�CC�m���;m�:������_n|M��KJ˴���_��u�ȍ�
���
�����5peff����:842"�Q�Mk*���/�o�0}玦:���uA���'���j��PmM�VW
�h]���K����C5�����K��[[\X��`Y�_��6 �*-3�``��=��myYk8�b��
����T};1�S�ϩ�zl���'+Tזּ�}}.��xP٨���-k��>�/ssK�Kz����ަ��y�O�	���؄P���z6@{8��o�x@�J�ű[��KT
�v����Y����#b,j͑��g���=hl��*�6oW/ێ�yř9�t��ѽq	���畩tJk�((ޟ����j��Q�����14@�J���m��ϴ�wv�t�~���
�Uଖ�+��>�P_�*�Æ���-�ۂbE��C���(��1��w�WKs�^��/�m��Hj�	���ɣM56EŦf��>^Qy�F��h��mst�q���f�Y�3��N4�>�RyE垢҄�4��Xhh�
�D�jX�}�
`x�ŒhM��[m��ٻr��
O'���^�j��n��C�,�	��݄нړ�+�j[aD��J�56�ȂA
@�W��)����;8 ��(ؗ'��ɠE$`t�_����Sހ�M�Z�6Z�@�n����m4йo@�Orm4�5zL�]���x�
h��0@.��m4Ѕ��	� @'?�!@�
�h�h�����h��ݯjBa��;��w�05�0�-/`�-F�a�bY��04xi���k��y�Ճ�Ïsh��0Z��f4�.�M�:��$I�����.@�
t���	� @��.�M�:�;^|�h�@��?!,<U��l�@��,@?�rL�V��~��4B�l�h��t�m��g��j��l�?FcG�A�� ����X������t��9������r���b�����
W��ħ�;��	��0.9
9䦵r*��1ݼ���ԉns��"n�(N�Dƌ�R(��yű������N��*�"P�}�\̆65B��<i~����}�&@><��B!�B!Ĭ'�e�S^X@�(��K�9�8�W������'EǠ=�Cu�.�v�n�,#�!C�X�щS@B!�B!�B��2��аϾ�Ai�����[����	�}~z>�{��ܼ����|%�*/_�kPHg\���k���̸=44!dD�V+�Ә|�ƞ5,Վ�7���ju#1����q��B!�B�<~yƜ�9��߀�Ft�,��Q,��E��5��O��>6��Q'N�������������+/]�u�ڵ�'O	M���p���LYހ�i�l\Df��)�	!#�N���R\\2�@n�2Y��ɍ?{����^{��Ѵ���*����n=!�B!��h�4�ߎ}?;���ow�I�í\�ze��)v�f�ol��.������ب�{��ѣn\OSS�Z���|bI��w��Ɛ5�<���$�%��x"�ghl����a���b
hB�� ��ֱH�^��T��LWօE/]�
���X�+�膆���'�B!����a��~s����4�]�0-
����B���v�9D��$H��?qALl�J���(�L
��X�e|��XX�
�`9�	N9@�
��6BD5�'N�
�j�b���QW�(Ɨ"��b
hB�`~�OΊbO��/A@~�2nxO��e��������o=���B!�B��f@��B"�!��9���g,গ���z�:��2b��ں�����z�3�F��W�-R(/�W���y��ݸ嶎�8s�kk{�إ��E��ZyEqI��5	�.n�q~Z@���{KW(K��WT^��4�\����Dd�֘�B͢�~EJۯ��p>�	!�B!�3��j�W�iKRV��yp�;9Z1�?3���s������_81:lڼ��0���|�d�ok�$|�B���y�'���ڊ'��:��&��
������>{������Ԥ��p���x��5	����&�P@�(�_����o߾CM!�B��8�Q�ž[@A�aS�w�K>�u(��9+G��s����y��-�41Fh�gwdq����
�gd�y��N�/������Ժy��O������?ZP(q��NM�EB4�L�t���������XY���)�������Ӥ�gX ���14!��EMM!�B��6U����1�nF�ƀ}>���'���\��>p0;qkR�̹��:#�1�a�Z��̏eg�D��w�RUU�ˈ��[�,���uu��2�r�ܽ�~>����f�K�c,��`}��y��#x��'�p�fo�)�	!�,
h
hB!�B��M^D@c*n�*�f���327q+VK�£�xk���30\l+G)��SR���MIma+lma��f\���?E�FoO���1+;��x��v�mI;
�O`�����^{O�y���v�������@f@S@S��p1盃D������D�J�'z
h
h
h
hB!�B�b�̃���8N��?ڙ��4i����QD1**n���&1&�����&�c�U����{�=T4�4"��ܨ�*��3(����ܹyXj�v�}�s�9�{�}���y_�G$��}�И������LȆ�}&m�y���(��9@�j����<���P�j��4g�����;oa�ի�l �R�i�3���tk�jB:'Nz��؄D��c�x�

UU_��w=5}k���^�`�̙3

��'O��5k֮]���}����ϟ?u���^{��ߞ3gΞ={�ښ��E���������h�������wBR
崱$k�����j��	&r��>� ((�u-����y |ʮ�a���:88|���D�@�-Z$�D"�H$	��?t@C�{�^�̏�g���� /?[��[Ͼ0�6.���O�~~��9;g=������l��cW�n��:坙3f}�ӥK�JJ�%����&'w�]
����&�cqF��;�Y��L��Ǿ4�`�666��o;��:4���[����������/?x�����뗚���75��#G����Ջ�p��}�6,::Z5���1b��@Ϟ=�m/)\�fM}}�j�=z4�L�6��ٳZ��N��0a��m��~���mj�/_�M]\\�ڼw��'�|�/,,�&�?����r��D"�H$�D�w`�u����Ts���́:hmT�A�}�C����q����s��,���怠�K?^:q��O77w���ֺ���PP8��{�/��LoԘ	Q�CG<Gm��RZV���Ow�e��G566���::s��w=8}:q��s�=����ח�a>|8t8==]_�Ǖ倇s�ޚ���oSSSw$k�<dȐ^x!,,l���������ʠA���g^Y���nnnx�I����jժ1c�0�޽{GFF�����K't2�h��@mLӭp�ګ��x��|�MF��裏l4/���ژ���Nds����"�w�;ge;�-��]�388y�l��*�)+��l��!#S;�3�\�d�r�r�2�Zj-Yt"Z�H$�D"�H$�_h�tS��C��_bv�t��j�Q���G�{�	{�7�@��� ;�Le:GF��`�;���pW�ŋ�\�_��!��V��ä����]�w|][{��&<��h2��7o�
p5�s\B�[
�l�����e���Dp���/�x�ܹ�W���������������#�#&&�O�
�H�� 7oެ�eƈ�ٙ4dE�Ќ*99Yk�o�>�0��4��hz��
6�Wz��X��|���ߟ���߄��L&�"A0,o߾]�$88����;v� 6���,YB���X� '�%��.\��|��K����hQ'@pfM^����d2���>#'��>$??�[�p�W_}�e�)�z���>��s��duIK41��Ƙ�F��1��(tl�дI?�dz06�O1��T'��Q�~*-��jU-�Cq�INCC�@����������tM��4������E"�H$�D"��v@L��ܼ2 Ա���?$��8S��Ioi���]�{�ٳw_Ee��ݞU�KW'���[����/��*?���Ѐ�N=�-\�o�)��ȱc~��8:Kͅ��x�:�=�@E���?"�p��i��9�ו�Trt绞����.t�1|�~:;;Co�*S˯.p�Kr8��4����BcR~饗�� ����n�����O�>��M0ȶm۠�8�SRR4��4�cǎ%Q��4ț����T9�f@�z ��)��0q�>�w眱���U/��2���rGF�|�֭�/3_.���s����Ĭ"�9'$..��+V��֭%\E?4V3;;�Z�����遮�0a���*x�wX=��@߶�S�cI�{���'�߰�p�ҝ��m����u�NI&l�]22;��G�-�-Y������f�<��hJ���~�B�
�9��R�`����VG3C�r���U'���?�Y)��K?Ykkllj���u֟/��s�U�"�H$�D"�HtG;�н�
4&���1���e���Q1�����z��ӓ]����mb@88�7ph�~��-��i��%��{�u4�˵�tE����!Ý{��%�KI�://�s,D�O,&\�Q�f�~�����l�=�����ƍ�����1*2�o��|���ï�:3~:�pm,ðr֗�4U`t�:��M̻�֌�IavV����v�&�\�7��V�6y�d�B�”�DZ��ƬM-#�Z�`�:M�5�`
l�H�C��?�U^o��T�~�ĉ�#�dv\K'�{��믿w���y�̗7���*���	���o2��A��{��������W�6�<���ɔl���Íi�]�l?9�円ֵ[N��7%?����Z�
}>Wsa�j���Z���R�6�EE���=�₅�ꌿ�ҏ��$S�77����h�H$�D"�H$��3��s||�,����$���~��mǓM�/f"��d?�zݑ�
�*�4<<���ʢPQQ���3b�Ř��[41X������Ν;�t�}o@�9s�/��={��q@C��2H�Ĭ�ڶ4����Ӝ@�)		a��sp6���Z�L�&�uJ]N�F�=p|k����ѣGU	����ϗ��������̙39���l�������r�|��H%n�\�R�X���/��rQx�k��o�
wMK�uT���jHΞ][RVRz��Z��.�c�@Ll�ظ3uu���_VUe��gUTdWT�?z4�СG�1�����W���������<���x�}r�S����gΞ�1cf����z뭠�����|�s�o`���s�==�\]�M�8��g4�L�:���kc^�h�H$�D"�H$�]4�/���?hj�{O���&r���z��8�|�cV9@�tBB��g.a�(Ve��}�7��! &,��+���p� O�6�\��ӧÅ���A��kS(�k�����P�蜜^���.�N�6�&�|��b�,(<P2Ԙ���2�y���2�ؖ_|�E��4=������M&5q�hŵ�!�pd�7#�n�h��L�jW��\3Z�?%T�Z���"M`�`w��o�>�C�q�#2��V+�I������981�|Os�j�i�Aw6��\�|�ʕ��iv�!����7"��u��va�S�7557���t`�o�#��FFQ��Ωi��@/[��ٹ��E'O�fl�j�9;;��U�DJ�^^�)a	b�#�H�sPe0I����$Z$�D"�H$	�ngݶZ��A�n=���'B��m�z�X����~�-TO10W�0???h)�
�%����JP`���X���������v�ݲߦ�Df��(���*:�������k�4�j���1��e��s���9�QQQ@g///V(�М�<�dn0YnJ�S#��@���N�z�L猊ti
@�����L�l�y8|-���W����5��[-Zt��?�y �8�����@�Pd�=a�MH�8�)2�B�֖����T��~HJ�]��@���=�����h=��]T4U��e��M�@�@����aC�M�4�H�R��.

�O.��#8�9_���ŗ[-���Œ���D"�H$�D�;4���tI��C�������B0�B3�r�.�ګ���k��1�����U��Dp@C �@X
7�4����3�V%T���2�������8�0q�.�5�V%����mͺ V��
�{+
�t��n�Bx܂�H]���M���a�V~pd4y2�����X�Ѐ!<��K��82����í4���i�Zh��7�|C�>��g"��@���u9-_o�*�}�ڰ��r�lq�4���p���T�VV�&,��u�vO���[������1��i�6�����[�g�j��ҡ�h�H22ͬ	+Z��¦
�3Upg�<_{�COO��-�X@^?���m@�D"�H$�D"����xt�a�r������ēK 2����X�A�*���X�yy��q�DO(�l�2.� f>ᥥ���χ���	������7mڄ�d@1�L�!E
�]�x1[�"h��	J���V~C���a��4�f^��K.�i�E�����`w8U� �[,��ZY�CCC�ɘ�)a�L�j����	��5����\P;�1S����И�Uo*�������-�
�n��N�)N	��?��`�������S~���y��8%/��������?������Ɍ�W��dm��[UǕ����ջ�C��6��4|�����LNq��_R�@V	cLlk}��$+��s��Kh�-;Ws>!!	g���<V�"�?�;��&�8����(9Ap�	F�D�ѠFD�W8�„�`
��B�b��u�a[;�S�6E��0�D"��tq�a/~4�De%�{�}�~��]<��!�B	�(�I@K@kH@�]�LQ�xU�ɘ2�(T�F�V�@1�^��E�"��O���Gc���q���A0ڈQ���p�^n�Z`�y�ceĄ�A�� (Wf��E�P���[F�.��~^�:>�e֘��D
(o.�c�:�\��L/..6(����scB�ٞ5k��cÓ4�>��o>�H�h�1���ȧ�.�*8;�؜��6Y�5k� ��S[׈�go�e�r(��	s����MZz�z��br����~�9��w8��0��͠���M��bA�����N%R��T�@U��og
�w}:��y(yX:�2����K��j���s9ґ��˷����h�Ǐw��x��G&M�x��B!�B	�Q�CZC:���B�JV��G��yJ2��f�e��5K��3���5����@�z��t�Y& L�)�msss�����'�y

H:�I&��7o���I����=���qʜ�wYB(�L���y�p8�w�M�2�l��ࠩ=B�+V�HnBh����L�Ŕ�4��h3�A�G3]�СCT��,&���5[5���ñܫW���Bv��1����"$�!��cݞmmlf�Ά��v��	������w60�����R��R�1���l��h57�o�_�m�7el��m�J8�����Lm��T����w<^]3��u8�t��^WR2�ɩ�v��%�~�������F@9r����[_y�Un������B!�B:�M%�5$��%#��T.f×[��$�lrʩ��d֨�'�t��k��5wnU�ShJB#�M�;�Y��-M�smp�ĕ����ׄ��[������O	�AԀ��SR��P	:c]��r�39�1��֕l:x�)_KK���:]��S� O��1�����W1��Ԅ��n�`�8��>��):��oqa�*��5�ܼ��)S(��ۙ߻�'.
莣�]����K�.}�����	h!�B!�����z!U@��"�w�s�fff��&�M�C��P߃z#�Bzp	�̚0}�44��ͳ7G1˔~�rSU�����,nh�q.��~�\u�P��@p|04!TEh�F�s��[���#�ef�)N��_Z�=��I4Ϙ����/��wic�}���ނ�7&O~����X<Y@�5+�	P��*I�B!�B	��
h��&���&//���n��ro5�Fdq"Pu�f�T�����Q�4H���\Bzp�`�؊���=��������{�V�����i��G�w���`��x��$��G�y�&�l,�-N9�?��C�x�ߚ5��%�SC�޲�)S����/��C�2b]�"����<���Ġ����M{VZ!�B!�����ޠ�Hww7
�.W���-aA+�455�|>��S__�ʹ��/!$����P]s��t �ug���a��3��a��{ܞ�޲���������r�Y���.��O��'n�`^��!�2L����3��o�c?/QJ�L�A~d�=g��_|�n�;�<���O�X:Z�����]46e��h��B!�B:�5���֐�BH@�md�n�V�m�N��}���.k�Ŷ>��y?u�/Lѫ0WQ�:�jm�Z]3��3&�����#��ھ�v��C	i	��k{��‘Ȳ��,\�����;�!��V��>q���^���+��S��ǹ��P�jٲ���퓀B!�BH@+�!-�פ�~�?�L7»�e%뇔��.�e��󘞄�z����Jj�k�`t��tT�?+RKz:���H_�o*��>;��8h?�W��Ͽ�����x��L
x�ɨU��B!�BZZCZ!�Em��'Ԅ�8��w��;��]���br�
�
����<�E�u0��g	���N&�|o��B!�BH@^@��8����B�j�	2��Ǩdxju�O,��W�o��f�������!-�B!���V
h
	h	�?ٻ�&���t��P�R�v�M77w�|��+(X�XM��J��%I�K�r��j�����W����2ܐ�����m�
��	��/U�s�h@�6Z��~���	Ѐm�
�?����6�M���	h�hz`tK��|�m4P*��h���Mvӕ��8EЮ�0(���#O��@,@�"@ou6��Z��](��	�@��?������Ϟ[~�]�=WBH�,�%i�&�F�^���
�}��h�T��<�y����=S�,�
ݾs���o��|�<�����n7���w�N'�
��t�XOӵh�6s��CW�U.N옸d��r��ɻSk�7���_ُ(��������ѱC��=,{~�XZ����(:�:|srx��>�g���8S�]]Z�@n��f���$I��ޙ�DuP��M�V@v�F`�(�(�X���"(�ҺQQd�a�}X�7���j��ʦ�u�HA�$�;أ�%|h��j҆�ˋy�w�{��~99�B�����K--�
�� Oߓ�!Kޫ΁�񉩳�-�O�ʦ�&�B!�B!���
���Bg7�7
h#SKK[ǝ�䂒C��e¡(=�Wt'���3�O8�A��q���:�چcp�}�����M]#�Q�H4�14!�B!�B!��V@#���F�N9��$GQ��_�)61u�pE8�w'�m��?�cpw��V�Z���Y�M\�&<,"2`v0J<���9��k�q�]�K��ɳ��h�kb
hB!�B!�B(��EǠл����fy�~�D�%�qE����Z��w�}9
�-KVW@����?���o;:;��G�z�߻�9g�"]#�7��`C��_�&��G[̝�8d�
;Gg\�14]���?�g�t�N4�514!�B!�B!�oW@��uwwH@^@'�e�;I��o�и�d�*����yfna^Q��9eGg�_�U<���s�Ϝ����sUݺ���ob>p���dL����ص�������}�h}n��ү��D���y�F?q��ȱ��"'$��C����w���0
���߁	k�qa�h�Kg
hB!�B!�B(�������+VG�zx�::�Yڢ�bZ@*;��VS@k�Fm�����

�� �G�Κ3���{�w�~�A������_�wO�_}�+5��'���z����iڌ@�׫k�wtt,Y����SK[]c3�b�z�.�1nm�[����rr��y�_�m�u�M�	�=r����xhwk{a������o��i30l���h�{g
hB!�B!�B(���64D�D��A�
�z72zs�cj
h���v���^�ru���k�<:����uQ��2wFf�r�JU[Ww��	�_
�����\���tvޭS֟8U�*,�g\�S*k�X���S�O�,��EP�9kEaIvn~uuMKs����g`�X�a�3^VUS�Rݺy�V���(O���Z��a��Go�z���&���UTnڲ��{5N4��34!�B!�B!�oM@���EK?s���șs�:#��h��F��=b���Ů�C�"-d��6F���}}�������0�����j�o��
����nccS��3�õJ%v�D����	��7�4R���a����tvkk��'�q\�LS��[�����cTQ�--*l:���lہr���W"[����vmm�gO1��[�ѐ��ЄB!�B!��h<*S�'���`��,��hE���#'Cã������!�������S/�?��N���%�6@ݳJ�C����ܾ}�fа��?]��o{\��Q:��*�
�y�D
���M]8Ph���
��,��ko�
Ig,���N�����'2�q��(.��1�>�zxa$<�,)} �<�Gc�P������k��a�%��}���w�,N|K�6��،!h
hB!�B!�B��|������&��G�(J׌�+�֋]=R3s0lP<�$��,I^UU
�,�Z{{{rZ:Z���L\�p���)��O�ݹ{O_o/�8P�1^삮D�'y���Yp���!������SK���h|ذ�����
m��jh�gbG***m�B�"��㥱V��8�p���#��iϞ>��C׼*���/�4h�)�	!�B!�Byɏ
���S}��
Yr�ϴ�?C��88;I���F�A�{�� J��h7π��1�q�**Љ�T�]	�䑣�1�;w��1V~��|E�Ѓ�H@��%�!��x;Z�1���Wbbw�x�(*F�Z�N�rrѳ�b���J%ގtz�ZzA�2�l
h
hB!���;������9�g�I6��]p,z	-`��i	��.IX��4��U7�IV/V�zw��%��]V��S/o?�]�ӳ�����~��ywf��͝�h>�7����������������D@�p�l�7䣀S��O����	��B
�}������	:~�g����Y655������p�ۇ>���O/ihl$�/�����{нY�ُ���,y�s@S�u����)������S��eѝ�h>��^4�‡���YY�����&��|�A��Ch))))))))#5:1��7��}
������i�����Bkrz�kp���Z�ٱ^����NJJJJ�&�}���
ڻx|�����/.{�>޵�Y��$���k��̧׬�/?]�@��~�f�&�n����<6v�ؑ��d���ŷ�v'[���K�.��5���^�~
J5F��|�����Z���jrr�M<��/ў��z����[xˢ��ި�����v��\/���eo�E�������LOO�����%4~��@KIIIIIII]T�񩆮�����k8QC7
�AKII-0}n��*�nγu�K-%%%��	�E�3tt�$Ǧ-�â�ˡ���sK/@�w�]�Ob���Ӧ�^|卧�[�Ŋ���[@`0��d�)G�4Y��p�eo�M|4�ǶND)���%�NU�<z�m=���=�o?�K��C{�ǟz�=/�0�~����ee�q	�fJJJ����_m��G����inn9ba��cOR��󉙙�Ĥd>f(��RRRRRRRR���lk�x�`1�xb/m}3��HII-��'��ǣ���)�����ԍ����-�2q�6��0b��;���j�i˲7g��~�)8D~���2n�kkkI��%A�o������`JFnlj���vuw��sR��¨�X6���%4���ן�������/���K�qN�>�ʯ�������G�8���V�(/� ~�466=���p[kkMM
�߶c��o���΁|����i3	=Lכ��C��ZJJJJJJJ�⚘�Q"����ZJJj���3v�_�!��NJJJJ��M����~𱧎X�	�,&g7/f���h'7/�'�ַ�q2Y8�����=��[��`HX��o�<�
`�_>��K��K�ˡ�g�k�|׽��C�#ț����5S���en�%%��uu|���_�����t�*��hw�y�db)%|��g��1��q7);,�l�#�\\ݗ������.s(�<�s����²�
�uVv��5��=-��RRRRRRRR@KIIII-%%%%�y��(�:���"�YL$�P���G�9p�x&b^t�=�n�3y6n�}1��d|�����9j���O�����_����ͭO!�l~��`+��ʙWW.JD�-�m�Τ�����?���_~-;'ۑ���X�g�q/9�I�q���l�yCh))��1MNMOMΚ:==39%�^�z�筧��>����4ťDo��@�Ҏ�TC##�SS�@�4�Lt�:�u��
�c�������ej�2X�d<���mu���S��WLMMKw�����]�
oR���^�^:=3�W���8�.f�@xږ�7��.@7�N��y���i����;��l:;IIC��RRRR7ah�#����~������?[�Θ�5���^��k�h�w��s!d�B�4�BK�<�JJ�8m��ΐ貲��Q��	�f��0-��'�@KII-��znYU�� AS(�xMarn�F�>ѩ�)���/65(1ct|�r[XPQ������]�Ԫ��5�I�+���f��j��1 ��d��H⑾�o����,�u�Ku-�1y#�c���qY�CZ��)�䔝�����c:8�ɭmn��`:�؊�����/�,������zF�@j��:���M4�����+ ���+*IS{F��3��3^�җ�Y������Ljn9�W���F'k(SBF~]�1�����k@Vq��Y�����ů���z���<�c�0�ucb�eaɚ��̨�ܦ�N�Ҳ����^����y.���|57�:��Y�����Y\q�����f��貚�UR�Z[�ȶ���������&i�Eg�u��Sշv�<q��Y�)�%��Ȩz[���U��Ճq�G�r��������L��ܒq �����������-,%[-��a���x~⎎��i��\3qS��x?�˴������Lc۷ޯ�Lwtz.=Yw�����! ��!�����.�q�y��͍����J��z'�j٥u)9%5C,�ZJJJ�&�����wYr5z"�&��导��F���j����$Y�I��wޅ�/����@KIIݘ!�{}7v�|�E5���q����g��G�m���.�fB�|�R6q�x�i�Q��h[RN��
��v�wXŕ�"��c`4���@"ά?�D����1�/-Nl���L�T���Q����݀��L
N�q�_�(c]PB����\��<%��d�uu�%�?0��'��60>}�>;�n�Ut����P�n�m��
;�? ~����3H$)\�צ�Z�Q �SP��tj�݃�)�'Xv�aG����5�D��o�d��'�|��g˗/��*�d���+V�Z�b���kL�V�^�y�V6�-o���/�0Q�ټ�]`�K�伒u�#�s�O����dhc[���+7p��:�����;���ƣxc��Z���+�qM���Uo+��Js�?�)٫��B�ڻ�{�Aǹ�7r���T�H��P���"SsV�jl1�P:0t�;���l8�dz��e�!:=o�k|�p��a��/��
���Xan����31���`���s'�u��*&]{���3���K4���]�^gzz�V?�Xy��ŕ������G8"F.?�i�?4��f�+?ͭ�� ���Z}}ܝ�$N]�F�'k%g�V���Ĉ/wj�ˆ�Plz�>63�M�srv�>����������7�"3�ڶ���M1gi�DIAU�Zh)))��.���^�t�"T�9����e����6n=��BI�%�������;O�pYuCCkQZ��ʃ�x�V0#�Ʀ��O�E4�s��cǓ�h/V���2SG{��Q�Ra)���WԘ��\;�()�iУ�z)h�8���?���"��G�Ǩ>���gd2O�%�������%���y��]���98��|�N���־�2�_��8���D�嬩�¬��S�Թ�(3Ta��Q���f�E��J�-_�V6<׶�KHb֚}�ڑ1��5`�B
f����������I���Y�敓�A�sz��Y��q��x�����.*�͎��Ƥ\��1a}��."��i��{,%Ʒ�~);��*�Д��D�,�#u�Z����d�K��\��������_Z����S�Z?�a�QV:�	�$����(=a�I���:�Fh�q]�v�������Ԝ�Α#�6�OD7w��s���XZ�斥��7���U\�����-_HL���E@�{pdD��9�*��2G����8X�~K͆z�z����x��Dž����38���Z�#��z����xN����[vo��������w����Ǧ%sx7���U����h%$�N�3���_�ז�f�3׷'�t�G�t�9-�T�;�����_z�`}6��xة��+���OF$���&dʼ�¥�������+���x�t�=�T��/6��+��J��مx׺f@t�om\��������BlK�:�&��*��A�)?��NH�����w\4/ʈ7,{�(���ø�S����!��Y�z�/�;�IT�(�.!K�0Fj��j�O��;sup��-�*�u�3�oW6g���r��V433�]L����\��Y��ש���y��s_�J��nL���.	�y��8̾����4�����[LJv��속f�w� Rs�[_�fm^Ec��RRRR7u��tޅ�;q�@g&����$������4��Į��e�J!��V�H�ผ�*��Էt����/��3������'��>����5��h�)��-4��+���ڻβ�7�'�E[%��=�B�\�0y���'�P)�/�j��5>Q��u��i�w�EB҈��1�G0��?��rLF�q���X�NkҎ�%g84�<W�G�,?5�t��ʕ�/�� ���<$���8#ɣ�(�_$h�l笗�W̾���p���F�+,�76���ً�?QZ�Y�����k�kH<�&l�;0����,�?�T^��W*��LO߉�����r�3w���P�=�GJ4�ل��!�0�y��'��!0�����I&^%Vb�����"��+�[�EilN@:��7��Rv���)��;�	��`��{�i'��^Y��~��y�V���T:$#��ρ���[x���*�/�壠�@��f0�JFQ�Sp,m��=�
a�nj#%��w8@�5�������Aݱ]�������m��[t
���@N�vt�j�a���c���E��o����y�_42����P����ӠO(���p��0��8��4���9+�DN֡���ό�dVP?	�Ź�J���I�A���5�m	�C�T}3W%�\��a`�%4�6�+��>Q��A]~E����n�,�|�ч��d�&*)$e����t�]�yi]�3�����#�:"����v;zs�*
�8�ψd:�28AB�.W'�3�y�J�y@��tQ!g�$�trM�л��fr	'�R�O�rTZ�`m�����y\��WV�<�0���x���Y�BV�ce}Ӂ���;q�-H��'|m�!�aL��:���KLR
�1&��}8}�7��+2‹���I���υ�8�ɕ��{za3�*&dE��
�Oc��v�V��Ut?^�����ffG���� �>��d
�� N�8��6���'�J�w.
�)a�ur��#�;�{	�Z��ㄕ�Wv�':��E�&�X��%n�&{�s�Pr�b/EU�z�~�X�wt�ѓ!�q�P��Y��@j���鬩��е�?�U�\����B8�m6�m<�H�x=M��'�e_�%#g04)�Qa�
����*n��4�#�H�vgo?�p���k�x@cyu�9ǎ�'Ah�X�
@��
`P�kkw.��rC)��V�;A�q:�{XbVI%����[{W�/��������
�-��%(�fn�ڱoGR���'��5�/�5@��# �'N2�ԋW����l��HO�������,b4n���M2ZJJJ�&�����ػ�着d�������{ݭ
�m�(N�$3�eC�B3Œ 2��@aADq~�ܒ���$�J7���{ݕusr�9{׮]'���u�+��r��7�q�"�>�v��Qo���H����cyF�ϥ�"?S&���{����ع����	�ـ,?Φc<Eƥt��8���w���C�^X�H���Z��y�6iM�s��.�z����_^q��a�=�L���S�����a��b���W��`y�;v�2�'�Ձ&}Q���5�|�v�_F��?�	�(�}v:#��J@c��ZE���`.�N붍�#f,��K�̎�6) ���|z�m�ۨ����}�sC&��t ��
8uy���Z���o}'�>z�<@/o7���k�
�c�y�N	�Y+�u�@���6�k�
�� �BZD�&]y�K�?�I�))���I�d���O���}����"]}kڂ��b�$�Q��M=%��^^���<G���[���%
����k�L�$f���/�R:�6
��i~@��j8T�0"҇ ˯�}��1��3��Gt>�p9p�P��`�f3z�{ze�*f
`8�>��@<��qg����2v�(Q;�:r���‹��9���:K���(�L�$�/q�"�:�v��g�3�X�.�́�-&e�mv��� kV�����0�}�߭�fY�39	%�ACȜĬ�t]�5A&�͉�̗��|t_
/^��ݻ7�}ͥ/~đO\�5�v��O?���E�����Qg�ǽ�@�����i
,�us
�bMY����dp���`�I'
jl�֐
�!<=p<3�`����"�f�XZ�y��h��("�7vNc���gȴ�l
�2ku���>9���Sg� �cl��<�Z�9u(!�`+��\�A�}�z�D3��V�)Ē��ȧX���[A�X5�+�]2�#�˘��X�^C'�V����d��qۊ�ֽ�v�A��7&��ᓅ"�&D�9�#�l��>oZ�:��xn�� ��E��*9R�j�p`Z"3�r�po2��Iݢ�����[�(,�(�:A��gd*jC���s+����@7v{�̉���-���;:)�8�?�܈˒��}g��w�K��[_|9{e�	u�9s�N&��%�t{"�[3{	Eb�X-��}���B�t��f0]���������)�~�!��@+@T��+:�b�:�o����6 �R�M�CG+cZ�P��\���P����s�`���#��XL��̲��f_W�r�Θk���CJ���Y9�{�n;�N�D�sϞ���}�g��ٯG����|�vb]й�[n�^�K@�Wй��o@� N��YKjJH�'�3���5x��Ƥ�q5���Q�]>�,ph}+Nȕ���b��-iB4��>����k�4�y�d��ph�<Q2W$Zv�Vm���IR�T*�ozߵ�F�d�Ϭ{^�r�P.p�Z�a^b**W�cp�4l0G�V�|�>��i�̳�`+7����n�+�C��9�^bm:���H�U|Rw����%�RYQ�1
�|�;�,�,�.Q%�A3����a���~u���V�<>i����s��Em���8�:)u��՚O��x/��\��%���� J�j�쥑3��;��w^:&��b.d :| zM;�=yƟ�9�hZ�ࠇ~�>T��uP�*�3�b�(���%��L'�DK#���Y�׹��g"���`���{��19��Z�D����G��㟴]��ڧ8��ū���� ����t?�e=��^��W�v�5r��Y�_װ�W��"Jg�]d��������$!Z�`S��B�V"�@��`J����^j� ���w~Z���M��z����LEi_3�BI2t��;w̻�]�.�h	��ۚYK-g��Zh8F���J�c<�p��y�?���֛��O?%pĨ�^Ң�n�u���
�={�e��1�Q���$��Wl�$���.����U+�"t�A�nފm��`1޼}���Y��d[�{��g�;�&�8���:9)4����;r����Uf?�с�qV~�2����`-m��L
a
L��b��m�#s��P��y@=�Q$�f�}�@�����#���L�������q��$��q:�,��9|ܠ�l��[ʹ0,H�(�У�3z�w�l����
r��0t�)��(D���VЉ����s�!˫�~�������N��pO�'�x��nR��h	��+�S�iE��Au�ډ��WG�@�9�J�m����^@�����3EM�^Įܼ�7��]Y0�s�A�qp������F��Fy	���[��#���op�ݾ����&����N�� j�qg�D[���B�p��Q��S�rm�El�j�!%�ՠ@������s�d���la�?HR�=�W���8w��*TH�'�`I��x��E��8�����MV��%���c�'���@_��d��ݻ	�1w^�p��z_��zVz��ژ�R��;?~��s�-��rt~�Wй��#�y����k��a�ͷ�>:��snS��S=|�\h�3Jpȼ�yo7�"]���*�;KU�g��+Axq��E��R���mN��`�=OP@6"|��D:��]��,/1�r󸬑
W�Km�<pi��l��\}����8�D���m�����,[J^U�����L�}mX�#A�G6�ʅT�#�P@�P�lW�&ڒϫ'�~�fC�-��7�5�ڛ(���tu�?���z�`��"�����c�'.噻�8D�Jm��x��e��\k�-!��N���P�^mص��7��O��e7��cI����J���i���%��lr���/;R9���?�������d�Aj/��?}���aL��=����M��SA�x�L7Sk,9�R���w��-KcK�Ҫǂ^E����Y����Q|�5����9�K��W��_ez���'�	z%a�h��*�c�M@����H�s	�ivKhd\������RJلd����"�^@���fhcd����t��T:����o'O���sϭnޡ��_�)�?��x�g�{�~���7`��5[�����Q�Q��l�@S���u��u�
c~{
���S`�V��e3�!�$��͑�4[gE'�I
�B`��K�G��_�/[L�7�բ&)��>�9:s�9�ܴ�C��y�	�sDf�Z�x�GZ�Ф��b\�&��n�
�ӁT�{e��f��I�L1?w�':з)*K�4(6=/f@È���K4�`��H@�ս�r�E��m4-(�\/��M���u��_O�EW�о.�g.�y��e���'h�T2ŻH�乶$dZ�ca%&/\�Үb
h��W��I���3ط�����>~���	�ug0��jq�*d��$���5�"%͊Z ����6#d�O�]h{�	G�@3��Iƴ0�q��=��c���.��$Zb��u��Ru����)���k�п@���O^��o��}^}ݳU_y�u�y��6���4uB��_�tn��[΀ί��:��r{$JpLiX]|>����~;,+��p����ЎO*C�\Y��V������+����m��b	E{;��0�� �40��`q�n�p��"<7إ��	@���o��Q��V�%m���S ��H��+�c�2�U
�9�d�p�f��F�KW��˭&ب��MJ�rM��rǰ}#F�Y�a��sG����V�5�jھ�~aDA0e�`g:��+F�.��W�ϒ������?4|�������YKO|�
[�)�MVe�7dK�.!�S��rMz�K;��@�<x���	��x=7x��QH2���g�1���h���o��&Ŧ~ޟ$w�E�t&�[,dE{�S`S�^B�W�d�:�lh�:t e���..Б�N���l�JC�X˛w�c���P~k��'����c1BV�Z�n�M�����@�NާO6m�Щ��f��28�p�S
�V紾a�SO=�.j��?�)�I�4��'��%8�u��yK��S���1�Jp1���q��ʿZ��h��B��
!}&LE��k5�p�Z��=��9���V�&AU��!�Z^,�Ft�Zo��i^pϘ&)���m����x��e�XU�h��Ŝ\5�o���r�V������1�r���^@��wݤWS���hQ�݋��	&m�[ 蕑�D )��i�vX��
E%��t�r�Kp�K#r�>)�"O-h�?e�}H��o�wc
m���>�ʏ����@��M	���Wr`�\�@���؞C�Vy�v h=$X���f]���R�X���������m�s���
�@���T�ݠ�������<�AF����o�],�hEZ�&��˞������ۘ��O�W�m:FC��n�����X�����f�ŗ��t���Ȁ~�w�<}��+��3�^�!�G=��S�
~��>@�[n���ʯ�s�-�G@+��u�yn�w��Af��Y�����S���M@
�J�(p�H�'����"Z��_}�)�Q*Fã+�t�#Rn��MM���͠��/��L)�6,��|�"���7hqJ�[[[:	�m$:�'^Ă�Г���>����B�^
�~�&����t�k�^G.��@��QE�����+7�^��)o���l�Ϸ����K:����'�%��$)�����Ȁ�Ln�QB�-h�C�3�QiE��ʧ�D�Y^�v�Y��_
�$�7.��@��Mz�n|��Gak(���=@'��	�ر���#�֓6>����@/^����v`�����T��g<�͐M��g���e�YD�RPc���	7`�e�)���)L��ؓX@��#��i�~��c����l��+/���e��c��q�_
�q��I
�Q��>���d����[n�p��j7oܹ���4{�R���o|t���/�~Yiԭ�5���;g�O"5���:�g��:��:`YLPv�YFc�m˞�S,��ž"���7��aO��/��y�$Xr��vT�!�-7�/�U$�)N��-�-��	�5�E<�bH��*�J��o�hU�� �U���pT��Ԕ�	]���3ط�)y�#�wY^TAx�$���G>Ru�I	���y�¥�������%��s�=~��MhŠR��@7,�/c�Y����a�G��9=/?�����un%h2t]1Ҭ��|*YW�+f@GAjG�ը�8D��M3)T+�S�C���*)Ze'�e1R��j�]]� �5�r�����?�3����V;�k
��%1@�s��aj+�W��A��N���W�t��$�rY�Cf+�����Wl��H%�@���U�tw�͗�cEM��
m����W��>�PS?q��	�&:VM	�Y�Ȁ^�zS���s�>��򝽇�GԌ�v��u�>���'�w���k@�[n�����۷��t~e�[n��64��t��7<*P�WxDv�t�@0y��I��_�<4n��z&���׀�z�{�4u|%��V�~�㪘��o��q&9�OyC�X�e��@(��4�в�dN�s
뱝6�sh[��������Ћ�m�+����H��R?�Ӳ�1Jss�%nn��b>���	w [��	�JXKIyP˸��=��l%�N$h���8�4�j�_+�����0�l~=^���ڂ�OF��g �NJ�����Ƣr���>��(�y���A(��A�eF1*�/�[�]�oo�b*�RL+6Gm����O��n�ȕ��	���S*�Ui B!�+4P��t,׊��F�J";{ZR���뽏*�j��P����vp٦��e�zr����*>#tc;ܙ&��@��Q�U�U�x6��#T���c��M��RH�KO��J�Up��z��������������ַj�-Qfה�k�R�D��b�h9�G���ٳg�~���������۰L^���?��wT]��rV��@j�422�S<G/�}I��`w��j#��\~�d3}�r�H������!N�H�?'ΞW�P�Egā��X-3e���ׯl&H���"�Qm�#O�`rgѫM��օ9M��xܢ�]�eO<�-y�b6�=�k��E�c�|��j�+>ND	@G�]�df�����a:�?����֋h"��� ���k}'�b3��Grn����
�2�c��|�-�h]��o%��g���Vo�S�m�^����RHh:*tsk�<�F��z�]�k�:n�='?i#/�e�ԾH�}0#��ୌv���y�����G�8$;3w&1�D���Q(YB�Q���V��4���Sӓ��2��:� �������閗�j�$/����^!aw��!�@�5��͑��(È
=_�����q�c���Q����_�;-�J�IVI.���YqtZjMU��u�d�^���?������Κ����[�t���K/���m�����Q��Ϗw
�M7��>k��[n���Q�9:�2��-��~S���%r�1/����$����!i��%oM�;�y��x����h��d�Э�j��DSX�q��8���H���\��T��3�ae�ۅ}��A)r�޸y�y�Q�%�8x1�B�����8I�i$�6s uP]=g���'wZ$�p�+�-'�i��8aP�~�^�_�I<�0e0%ڵԻ L�R9�@-xZ΂_>��L&.
���EJ7��	���
%m�3�& ��A�Q+	�ץE�~���S��U<�X�W��!�gEÈ%��(
�|�����,,�Q��%�@�trs
D��'�H�5Y�?���@��TnY~s���=�.��j9��T�4nC�γ�0��ܤHe�TѢQ�	qR`����M3��b�꣰�x\ĵ����0K���I�r*kr�������m��>n�D�S�ymt�y�/Muc��no�J�(����& A�LY� M�"�S3�~Eؽ���no�Qȵ]�6Eg�L[`�N�&+�2�K��N��(Bʀ���n��vI)�>�k�d��Q_ľ
S�<K"O�%��PJ�	)�!���w��:���&բ��h/yKV��Z^y�5i��(����+_�(9����o%S�t�g�m�yna�~�@K?7��{i�r�W�Eh�3˲AN`�ۓ�E�H�+��(��v%j��)�b_$���I'(S�e�!�#)�1�]3��a��MN5�-�/�.�_G�'v��O�C�q�baM�<ƍV�e��:f5y\y�&���5��ֵɥEW�to�̠�n*<�>C�#��z���
��"(&�p,@�4��û����W	�/��pC�ш"i�t���T�Ϙw�����407MvN���
�:~�?Wܰw,�(��n���Qň�18a��_�mY��̜U�A9E�3v����EjWo|&�+�D���0p0��E�l�ӝ��I�t��`ķ��6V����d�Qo!3��M*�)6J���_Ʉ*
�E��'�1|ޟ,�	�9��㮝n�dB=nܼ=tz��(�I��P~�޶�	dOq�H�gH-
*A�X��g{N���	���������ss��Q���)X�OK�m'[g�T�q�\kS�i)�m"褵&�����,�Ǣ�����c޻�(Y$�X���)�[��݇���j��X�������?��1�1�'�1x�Cg����表}����;��x�O���/jC��!��z�oM���-��r��o�Z	���_@�[n��&#L�Tb��饎t+�Q��H��J��q~lx���@^�X��g�0,>�G��4@K�9�*<p�R���8U/.����b�
�Nv�ʮB7��9�.�����2�@
�t��W�K�4g��n��p��L����8�L=�#��"?T��PRgb�	�%����̮RQ�Rb�k��'LY`;v��tB4\�I���Lv:�ר�j�;�M�G\K�+*�nص��.Q]~w�Dn��l�����V��E�%G��0I������+ʌu�V0�6D'pl�Ӂ�c�$�
(~P̗��iN�N��K�yN�fʒ�B�K$-�7��S����Cx�B���WH�i���>hg�_�u�X�����銩镮��=q�`L���"��Kkօ_C���x��pE���t׽*6���m:��ﺝ�R�_�+���0�R��W��W� y��ӂ��o~�.�7JS5^]2��v�����R)XK(߼�`(�L��+7�������t�����k7���i�tW�s[��ϕ�J��0.�$�ѩ7�����s���W�yh�`��KW6���r��#�@�\#�oa��٨��YSg�h�e[O�}��j(�/���:f���"9��6�R<9Y�S�2O�?�ҍ�$_t��QHe"LY��$��U���R`��Eܘ���a�̈�XpP��J�.����Bn���XN-����L�9(�a*�!vH[D��y�9IE�S2�	��Do�a�at�"��q7�1v��ea��({KEw}tD�wIV_ŲM�y�l�t�A�0wņ���t3"^i�{r�u/�'�ݡܺ���D��4k6�X�Pr3S�Lʶ��Ғa�-'�B��!^"�ń�I=�����;l�c�N��M�hJb��W`g�$�g��Ѓ��
Uq-Pɭ<´�j��C�f�)�k��o�q�Z�fӆ�����hf�r�"�����7:I�]�)�q�@7�:�_�$�{�+�|�R2��g/.^*���oYI������j�쒛��JͶ��j
O��LJ˹�T��<S��:��=۳:��˃NE�(��(�'^
��p���a#G���;s��?qA5�3W�tp庭��}�ԥ�
�MW>{�쵯;�-�m��3�s�-��)��9I΀ί�s�-��ʩ����r��5�6n"5e���-z�n?���bZ�������u&��3g�lnD,�5�.��u�Y��1��N]������o|��FK;>��5+�Z���;pL<{ЯU�o*�HU�t�Ѵ��G�C[^���_�3p��&��U]��3Z�"��`3.�5N�75��
���[��Σ��\?Ա�_���v����gu�R�
/�����W���й�[n@�W~e�[n���Clp�
�(؜��|�!~n�b��J�]���ȯ`���'U�
-
0JjT�zxZ�lf�{
 (�������I����[n�t�f�v�W�)�:��r���X�C�2�ί�s�-��r��4�H�U�;�3�r��Qm��a�~��TX�z�`@���׼����q��Q{��r��ػc���0�^�pᅡW�V0*�lB��-�E&	���9'o�щ�|�i�>L��O�h���U���i��OyZ��%/���V����}���&@�f]m^���s��x{B�d
Чf����w��n�wgs��	�p$@�
py��>���-�o/�'k��5����~��6/�r]�T�U܀v��h�=m�
�s��&@���	�4�f4��=�LN�-@�
�:M��:I�,�U0��J7�w�	� @����t:�
���w�'8Ñm4�;���T�q��.��[���O��3������Z�-8�"J��;I��2z	v�$%�1L.x�!��ŋC��#\.7!���o:���l]�Z�����~�ݎ�9~k8�nݸy}m����Rɬ�]YYi��:�β,��?�F����|<�<]����3w���5+l�f���o @�C��N�ۭ�j�t}��j����S�$�p����|/<����w��G��H���ЩA��`�eY���f����z���<ϧ�/����d7<~kV����e:�*@�b�dz,]���#�}N�'��I�6�S��h�@������^x�6�>��
tq:����	� @�G��<@����^�e�&@�=���~T��S���><|����h��޹�6U�q�B`FM$ŨDŘ�F�Q�$QL�?�v��Pa�qs8�!��]Z�X�uc�]��l��������.�z��A7��/��R�9Yڞs��>o����_
h��!e@C2N���t��η���e�t�<(�	!�B!�B���9�#(iZ��l�i��t�]�ʖ�鲐Y�w�<p,JԚ(�	!�B!�B�E����zLn��ij��ߘ=wq��k��րp�,�s��I�n�7;6
hB!�B!�B��t��N���M����n��1o!?9X�&3L���頇�}�H�����n�Z,ЄB!�B!��G�(�Y�aw�m�<�)����N|��c{ެ=��3�d��ݭ�^��m5~�pq������9*`mx�Y4e�c��)�R��ro�:���y_�3�!���8lV���B!�B!���l����ϗ�{ϙ�cש��O5\�E(��˛�^��sf\�'��|7y�УK%�zK;n}�C�Oo��k���$2*/J��LCd�@�CgKB�}��;6��]����v��؇�	�G�͐-Q`�n�Qp��I�ޗ�Q3D>�c��,�34!�B!�B!�V@cIw0-f���6���cC����
�ꖫ�~uTw��:��8h�Uw��5 "c�O�N��$�]�R�����+Rq
��lh�|�j����T?�GE(H7�T��i�T��r�;²*_�z�i!X�jU�G��9aS��Է�����e��v^h������o��Ž8{��L���{�06��ǿ����G#�
}���aЄB!�B!�0���h��)1��}�0�ƭW�I���]�	z�����7~���d�[NΌ��C8�����wU�Y}�}�u�.��ٝE՘�
X�RV�\찎�P��A�,���*.Xu<���?�P������vI 8�S�w���|��mw">oԗ/�������R]����L�uޢ�A�;<k�$���f�_2H#�M�R������}��;��
hB!�B!�B8����VM�Å�a���4������<a�����@iݼ�ᠧn�pOat��y�AI�:�R�V����Y���":cld&���[�C�B��FI��h�@����*c.;2DŽ��'�e�TW������1D��øؓ��
+��}6�H��+��h��?��B�^�w�E0���8��#W��K�����m�X�W�����i�s���4'.����l≇N�:=�*�ěTrp
.�^�x+�_��")��7*ȟ6�����
���ЄB!�B!�P@�h���s�.����g]c�;�7\o��B4�3i`��Rd\ OYݽ"Z)��?���+��Ý�9g�����c"3c����N\���v������i��@It�DLl/�F5t�sT�8���5���Ѭ@�1ڋ�]�+3+�n'�hPsR��9����W���²+_ޜ�{�l\���ubE����
�����xm�9����i7j��
M��k)���z����~/�+���2�7w��^�w؝>u��:,�B�c�����.��yT��_N��R�t�rc���W��0��J}_���s�G��A7t��FlԦ��w��j��<шhsbTΏ�h��Ӧa�ZZ4�9% \�����[<P@B!�B!�2�4�=x�H�дٜp��r�A��c�o�g]Õ�6缾M2�x���J3~u����Nl�G����2�G���!h<gCUg����s��] ���&�k��Z��cq%����_�T?�!�z�I.�7u9��/.v�ނ�
�,�=�����O�t=�N�:8 �B���:�~xt*bC�O�t��;�͖�Z�Řm�X�����{�
��f�-�,~lMFQ�%�nw?d1������u�R�������	�ԅ���7p�n�hs��†+7݋ߖ#��#���B!���;���3�G��`E�N���HGG�VZ���i�q\>t��m]�ʢպ0�
�!@HA
XĐ��ޛ}#!����n�BB֛���9=՛eR�N�>�y's�y��.�_~��T*�J�R)��,��u�a:H����������"bo�	�T볏<���Z�	x���-�����[s%��en�2�^hsӻ���\��`\n؜3}U2(@̺�n*
N[�4?��3�c�#�r�p�v��wy}���W�K��LbNL�f����J�|���5imͭh��6��U6�n1n��K��;;�2��:���]�Tymhҳ{�]^�9�=��zd[��i��
�%��|�����x���?[���'�g�`�fX���6eߺ&-�����a|��^n)�������V�jژ��M�rL[E�̰T07^l�D��g��voI��a�woȂ�s���ûcTd��bϹ�~�7@�T*�J�R�T*�J�R�T
�G!���?"����ǟ����թ3�O�i���g����_�z���qj��4��lj.ocg�H1���7L���,`A��Km��.n���`�@XGe+Tn�nWgU�dK�G|܄���B�s����bҟ���g���x�Ҍ[��!ܶ���u��۞�>�3��wS*�=��	�eu�I5f�p6��I��z�0\ޝ�[Hzs�����tu�5{�bR�wc����9�p7w��/{��Y�}u�8N�iujn�i{E^l9�k�1�:�yr���'����-��L
���wLMH[I�h�J�R�T*�J�R�T*�J�h4[":q�hX*�7�ّ"��[�LH�R����A���GM�+�ٻ�g�w�

�TK�1n\���0J&r�iI&��a�j�%\�l��Ҧ��Ƃ��<�9��j/X��H'�yu�%�c�w��my�����&K<��ղ�@����h��_�L�4A�)5m�X��0DC��F�6�tԑ�\��t��v����G����|�>֣4OO_9.�g����~IJ�~���ty/
�-I2h�.g=p��$a�ʀ�F/��wև�.l�X�z��A�MrL��,�!�_3Ϙ�˃l�����oX����Y�J�R�T*�J�R�T*��@��"�li����|�E�$R�{A���֏�=��6�8c�%�y�>��π�>��ye������?t׺a�
-���ܞ����k8�:���h�H�3���?�I��Yj�b\���ƹuƜ���˸�
��098��ݜ�ލ@�����N��z|y�Ł�#��>Y3�p�Bx��*BEltߠ�|Ox&[�C����,�>;L�G��V����YnEF5�B��8���h�_�"�'�7c�M�v��c�C�����rZ.�Ÿ<>�7�!��U*�J�R�T*�J�R�T���@^�r��'f�Y#�`-�
�
�q��%�S�opXN����8���{O}�#>�7t�A���N@�jY��@_��!��T����ԣm�&��ˉ0k?�~�{��
x3vAt���Fl����ʰ���#����q�f��Gp[�0�5#I�:<2B�25�M�>yq`�%�̎K��T �zy�vs�qzCӪ�;��`;��4ל+��؟��<h�߷!j�
���&ʃ�aj���\��j�Y�Q}I���$���o	K� 0~ֺH1D�u�WJ�����8�D�\�p�R����4���,�BT1�IU�}阉$~p�	~;�'E&c]J�šZ�R�T*�J�R�T*�J���hf�2�'���/}��h�QT7km����j�l]aC糑N�Iޠz���L��N@��t��5����t��,ƀl��5�G�=p�w��]<���R{��a9�u7_�@2Ǚ�`�<$4�*�n����������A�x��{.��D��gVb,��K[�ග�ɟ�]D��b{���iU���I�^���A�B@��n�n��ԋg"��.Ƨxk����L+�˱G.
��w�q��
��f���.O�gcf������Er����4���֤q�����7;<��Jʯ0Q{�`�]�s�V�R�T*�J�R�T*�J�R)�6�?=�z��`�8p�R��Ӣ:�3Y1��9�����RxPi<�s&M�i���w
S��G�3A���˛_�q1�u�ۻ�Q��ʜRs�[�!.K��w��������U�s#�>��	�~|G��>W���~�nS~���	�P2��B�A�np�*�������y7��bye��/v���xF�̵(6��p��}�����kΪ=ŵh�`�~e�8Zr�q4&!ozMv
A��Q|����E����}���FzeB�<�?/i��O
= �.����ǀ�ޜ�5��~�h~P��x�]��$Ä[2F����A��%�Z�J�R�T*�J�R�T*�J���y���C�x{yF` &d� �ϑ�+��X��`�n�>O�1���y��;7J�5mD�[�K1%��a�OF¸߿9'`ޮ�?�.i>c��50�r�+��}�'{��%����}�K�2k�R��a9#3ЈW��"\Y�Rc����Z����a�CJ��5�̴���z:z��r�n�usW��evq@����o+�}(0yͬŀ��Mv[];�
q�qu
0��`���vᒸ���q@�x���g�J�z�D�09�;��c
��<ߗ�d�E�)���*�V�T*�J�R�T*�J�R��=y-�KY�o)�Lq�ms����g���u���<��2OM��2��/�V������S�kf$��;߶&}fX��'�ix1��cܹ.��$͙w���	5&\⯱%X��9�[���"�(n_����ɄuXeN
��64���\���>������iu*~p�`y�ؙY��qqQ��-a	�&4�������ljT�����k����f��,2��8��	�^�9�o�(>mE[��J����qΏ�K�2�|1>�u+��լ�x��~�8f��1'���4��,�*�J�R�T*�J�R�T*�w@�!�
zcn-�hK��+���g�/��N�A�:G7r�e])�7z��Hs��e=7��`�ȅ�(8;����q�a����q{�/jmi�^��(���S�Ah�rO�F�z]6�<���d2ǜ<��b�A�y{{�@�T*�J�R�T*�J�R�T����C�ǀ��AϏq�9���.$��dw{��]V��7�	�^�n�
|rg����}���,0����h����1JA�a�$����@�9�)l��.eL�$X�l�Vb)	�D�ƇC�l1E�f����bր�h�	�
�����8+o���xY�m>��o�R}�lb1���>m|n���=rz=Z~m�hhy�$��k"�.���ptWi}N��c���\p�A���
-��z�g�N�AG�>�Z_���֓��@�Nz����z�C��Q��{��@���H;�[��F��P�����D�64�����
�mh��C�?�6L�
t���+	�F�����z?d^���o�����_���kVq�|4�+��|��+t��;��&�(g�;�V�҅mi����"j��(��t'��}\�;W.ň�ήR��%�Bf�?z�&1\3����0������sr�Ln���;���Y��/�vMZDj+=��3��84�����p8�O�8�rNģ�\�/_H<.�d"��0N�?�|B��	gƄ���\�Oȏ���Ռ	�~�X5g�瞨�2Q�Wa�Z%�V%��ά���3 R����J���lgi�����Kog��x0p2�d2aY��w�+o?��|h�~�i)�ջO?~*@����������ӆy+���8����98q!\���x	9�'���r�Ԅ���C��0.��Ҧ&����	9$L5VŃ�C�3��'*�&j���>V�D�J$��V��/����*a;��J�W��E܉j;kl;+}u�:���G0dh֧�w@�}�˛���?�������w>��M~)@�Ȃ	]�&=/��.;q��O�0�3L���$	9�`�
�8Qk0��m:V+�D�U‰j��J�G�D�MEEn�a5��|tt�}���|��=���꬯onl�5-�����z=���EdaPs�c�苙�������b	5і[�a�B�Gww�ݹ{ks{��ѴTvcu�K�k�-"���>}.)V��3	�t�����V���Ed��D��2�
|I�U�z[�w@k���,	���Do�DDDDDDD�v�]"Y�6Y��)��>iw�)@k
�"��t��W����Rق�U�w@���-"5i��˰������H� �"g��6V�&���-"uۂCZDDDDDD*"@�ޢò\m����)@�H-胃�����ݳ4Ea�A"�b[�-(������AQ���C�l�v���%y�"�i;���r
@&�Ԉ�㔪�m�@G��TӀ �tJIZ������\@�I�"���t|$�@	�SJVp��)��*��@Vp@�
�(��hЋ�\mЀ!�kRqJՀր6h�#���,5�Ȥ]�e�Wp�u�@�]N�h#���]K
@&tJ�Y��Z��+8��Sj�Vp�M�6h@4����&����/���r0����vv��9���x͚S�<��y4`4���z����t���3&�������ӧ�������ϫw���o��MB���o���}�����{�)��b�L����0�i������T*�$n�5	�N$"JXdQpA	j$�A�h�T7�����ni�c�$���b\Rj�J&�L�Σ����&A�	��)��s��}�S�~��\@_�tIB!�B!z�S*�U=�nC=C"��JMeUeU��*[aie�ÉI�G���N��d%U�s��?9;����^���{�\i
��2��}>��-��N���p��NYZ�?�U-�B!���T@S&�E{,�q�sb����;w���w(;��b��s�ܽ?�w�޶[~ʘ��.م�v
�y�8��y	�\�x�F�����fZhdWwcL�V��h�O��3:7���PO/��І�>z�ǩ���{�]ZZ��4�Z��B!�B�{V*�ު�g��ag�_`�o����nC��Mt��9�ٹ�8�-����@g|t��9o��4���z���F�E����a�F@S=;6a���ఙ��^>�9�8i��,Sy������ǘSC�I�pJ� ��'M	���3~��w�2d�����DБ�5v�Fz�
����Y1�8�q�Ϙ��u�ߔbo<!--�x*>�\T�B!�B�^R}��u	h.ɹa��S^8w̖~.C0��
ϋS��f��]9��2��l�<��v���=x�rf�-2����SS׌�>~����C9��m�Z����Ga�镖y���;2����N��Y'�����G�Y���c�2�,���/NX���c�!��,�:z�������ʕk�c�Q�Q1qf�5u׾�B,sҊ�_�jҊd��HNC��}��Y	h	h!�"8�B!�B�	h��kDp��q*��oކ5v a�=}Ou]#!�h����D�[����mh�dv��؉C=G����%c�5�7Q7M��G[w��c�RCM��x��r���:B{�Um?N;p8okjƑc&��=��5����KW�!�m�)%u[Z���Pi�g@���l����ts�5uDjDD�p��Ӌ{)*���;>{~BU��Jk]zfֶ���l��I@K@!�
}��EEp!����;w�vv�=�s��m!��S*:�xJ���F�h�xպ
��V��u��5����܋��
E4#sߚLn��mS����K�m�Y���g���s
J؈�R���'B@c�1Ȍ@��~�r8Y�����*l<8u։K���p�E�F�M!�Q/�<�r.����8��D4���
.���<�mkh~w٪A��1TtL�������h��M��B!zh���}W���%���>��Ν;��s���wm�Ν/nm��}n!�x�+������u*������KW�E�4��ojp\�|4��BSzL�3��i��)d^�vCԜ8�a��56���s%4ס$uP���Ȃ�GG͍�5��/Y�>�:~�{[]�H"�F_O/���jNʭ1��^�t�x�mcJ*ҙK"�cn\bөO�&md����/_����(�̬��EpH@!�}��5	h!��7Ў}��_�<��bA���?͙TQ��ƺ��]o������o�+�B��
ht��!��V�Ǩ'���^��#�;L��/\S�h�s��
���N��}좢��e7��fЅ
�Sgc,D
3��%�5��#��hk
���f/E�F�F��d5��6o#�ø�15�%���M!sM��ƕP�z��Bt�3rSTm���+r͜��j��);���B���m!�B�L�O]��f*~.�ؠ"����O�E�A��
���_~y��o��C����^v�b@��ׯ㠟��Y���w7Z������O����M���x
���-B��eKwVD����i!A�˫����V����;!mO)�h<�Q�<�o�c�y�%���d����y	�͑;3�'��
�Y���Q������4��T@#�w�Ϧ}i�c:�7����c�^L7�;$"z�����Ɩ3N���͈� !d��x�򆌳��-B(-����8t�>]_��D�c:�?t�C������ܲ1H7�OV�g�{�U_!��=��m�nE�7�p,ߥ��gS�_��k�^���g��9����[w~'�c�s���0��իW�����Fhkk�;�}����5�I������|U���͛7Y�ʕ+��,=�[=m!ģj�.]�dDp(���5��
[��=�|}'�EΚG"3�[v�pu'��dr����FGD�QVe���0�%��^;b��ʴЈ���*;��b���62��dy��H�5.�u���g.��hb�44�5��#c��a�,�h�w`�_�Ƒ���S7����:1�'����IX��V���i�|.���� Z�b���奥�����l6>G�n�'�U�c�����0�j�u7.\0��v������#������7n�����g�}F���>���3gΰ���ɸ���������\$
�mH�'O�L����}�W!�o����mmP�پ��ƖW8>����7�$m��!�ڋmm���d~r��i�������I�bJ;y����R&�1BAA���||<�&c���a�����0cr�Dnƌ������ˑ!!!���---���
	�΄�@YY�����A���;���8��F�ZGAe@�D�j���c�8�"
Q�l°�d�2�X4Ҁ"l�6Q���
��Nf�aG�|3����}����缿�9OZZZ]/z�2�F8��M�=���3��}���2cl��;��ɕ�6��38�yY.�v�
(��hT7�m	|x���z�2�b����K4+�����Qh��W���hh�-�+�Uƻ��Z�˘1y�L�u�p�_�Ե��G�o���*����K�8N�t��?��8uF v�e툰��{�5R�|��Ց�#t贴�;�]0K�h�
�7��C�m���K�.ӦM���e"T�}���:u�رc��}��G�|��W_}ս��ޱc��w���WVVFa��ܹS�����ϟ�Z�͞=����<x0�N�"¨��\���>˧R���i�� �н{���~��w�A�U�SVVֺu�#G:�1-----�����;+�����r׀���s�rc����/���-�z�(Z�j��s�Q�c5���ͺp�B�~���M�6�����ի�N�EN?�6l	z��l�֭~�7A�)4^��U���j|/j�0�ѣ5�Y�,z,))2dB�\K��ob�w^
��G@w9nB徿˰�"ѕ{?X�nS��r�6�Ҋ&Fr%S>�Q5�+l�b�J�a\��e|^�eۡ#��F/X��[�>�cW��Q�K�u
-��=�q��g�n޾k��y�*�����-\�76p�^.�R���ś��D��ȥGz�[�b6-�4=s�<Þ4}�m;�7�#=�����[ppl]��x��y���†�@'�NKKki)8�N�6/�k�)���'O�]t�֍�1~�x�%�hX�
B~�z�'�x�O�>�;w�(w��Ӯ];5
��W_���0`�]@���[x�8��KSxY����.�XL����{��ex3��X~��m`�S��3nܸ�iiiii7@_�r�������o�m�c2��'��u�O�d)(r%�A����(�$�c��/w��u˖-�U�6���h!�׮]�v��J�-Q�A�v--�����?\�8ؽ{���8q�"�СCdR�޽-s-D��PR�Y�:u
�&�����~={�4e�$ߔ)S8��<M�S.&�j>�Zq��H�(�F1N?���e
��@K��M��ʭQ|d�P��ױ�������j��t/�;�%E��iYIq죲
�Gw�ѫ��'zWAv��>��*ĥ:v��Gi_�)�^��Q�.��ܭ��.=J�v�i�m[<MN����7!���M�b�
ߝ��Aa`����_�fM�4*��j8��7�xkV�^��ΰ�Hg�X��x��;p�z�9s�g���gΜ	L><��͛x��2�{e��d`\/�Yw���Jp��iiiii7@����={�/�:��믓4�?�<�@��9sF�/9A`?~�/�(��YŬ�:y�䶫��ک�U�x�N�>��_���i�"��:xD�9v��w�}�~�zk�
�
�ȴ)�X����8�X3f�ЦB�	�c
�	��o��%.9��y��N�xѦ�,23T�M��PV�4�q�[�{5�1zJ�Y���(C!r�]�|��Q�H�d1�ɿbKFWa 7ZK�q�Fu.]��0tZ�&��֎�nޏ6��sc�b�nl�%�M��C��iiiw�W;�po��^;��/��2O��^�#�rs޼y�S}�|i�N��R����/�(�H`q�(lv�+¢����$�NKKKK���_	��4�4r%[�E0�����!0���nj#�Q��⒩�Jq�믿-�ӷ�~[~0R��	~�l�2}� F�UGD
G
�1���v*4�/�lw�H�Q�FEt--��6Le�1B&4ڬ^m9��hm��I��ۗ��V�5�`�а��H-m"9��"�z�ر�j�M�>]���	�=Q��o�B��n�V4Y#���#/#��H�Q�v�S���ӹ�aZ��ͯ䎵��5t��$�NKK�dעΛ�%����[��i�Ք';"}tZD@�g�j��L���4���b�+v��M�h�CN#��얾##������@'�n����Q`�%�e��)ɱt��@ƴ��Κ5>v��q�5���{�=��,Y⒜�^�r��Bը�GìZ�g
CR��Т����`qT�X��4�uP�.�Ʋ	$ǵ�>���7�|�.��L/��-^�X���mvﵞ�ep5��F�9��H"���eR� �[�Mе��&��/b��l�!�D�����5#A�=.ڂף��[,ţ���z��hJ����@�	*Rp�x=P
��I����)8�o!�y_,�*�������^mM�c�=�9Y�pa�� _���<��yϞ=�Y~>��8\�u�	��L���WSQQ����:-----t��h���9|�0p m��D���s���@-��m��\<��F�4@c1�/{l�-_��x�
�`j��Q��d"�2�k��u4�KQG❝:�4i�~�/��%�~Po��n��,�s�H�B�"tlCM@c��:���0"�#r�ܹ1嘑G�cӡ�p�qՓt�rl@��9�<g�!~��iii���
g
CJ���iii�	a������������E��c�ȑ#A�]�8ע��^jhaG�t���bg���ݒj0�@�����%�N}]M�`�4U� 9pd[;�[T&?b+��&�tՈ"����@Z�bY�z��\u�ĉ�`ZS.
����R^�PlxPl�Z}��$S���.���H$��D���@f�7@C/2��(�	�t&�HG�t�KԹ��}-Ї��r劧�^ۇlذA�����=BN�@yY�=C�&�cZZ���g���N�:?	����~
�b3h�'���4|�X���s���L�\@��P��v�J���@[e��b�(��χQ>t��@�p�n���3�]զ���3I������:tc4Pkfr�,Qb!�4_����<z��BKD�e9��h����0k�����*��5"��}UUU�r$����1l~u�#���.�]�X��۷[v��Rpp2֑���F��H�Y��P}������l��Hj�KZg�FH���,�v���ĤTi�!4O7���YH��x��j�����MsQ���
2tZ�m������s@�Ա�#	��:--펶H��\)8�%�p��ėy06!��g0�_����Pw�6!�0�l��گ�&����V�x<�X誼.��ݪU��7��X1��^܋&�jmB+d#(�9ǯ��da�qMZZڭ�xy�5�w�7�Ns�n���1_��@��rW������u+T΍Jڨ�����	�{	0��F4]�j�{ᦑLN덀X��Tӿ/�`�Z+Z�o�X����N�O�>M 3"��l�;�ku�����I9�E@�Q��xd���;{�������$3G�m�U�m��ЦSD@��?+���]��HΟ?_��é%[C��������؂����nK�Z��I����)8��8`���8}}2��^��)6!ܻw/��C�P�0�[j�h�;ac��Z��Ʃв��B�pх]
KKK�(�f�uM��uw�&l��9'���)8ј���x;N�����|�����K�g6��6֏�H���t���@�N6	�x������Ӱ_@�S���;��?0�O���rٗ�g�����U�[_�\.ٽg�яGVo�w]�v5�wڷ_�Ѝ�Rp�/�d	�Bx8�?�pc��!~j倦��V���B����Ǯ��c�v$_Ƃ�)8���˗/�k.���ď�F@�g �j5��u�Kn4A�p�Ҡv�hRh*�M& -ts5FX��qj�"�5b�楚��j�:��ܷo��
�1�g�G��H�PRR����ii��y3��)Spx'��O贴�_�yE�jo�� �r��p�<�����M$��)y�D
A�J&��/EL
�*�`�І��%���z�S�A�3oD����I���! H#54�)�y#�xP*�&��+i:��c���3i�c�~���8���g�a:�[�Sg$�`။:!1�����ER�'f�E��I��-+�1���
���/a�۰��e���N��w-�J�n���i��\���:�9��{>'-m�M7=�{_,���~��H���i���i����5��Q��k�O��5dv�#�Q�G��}�F������*�<�������{�n`�A�E��W��^�;�p^B���˜��̱��Шtr�����,X I�ybke�T9!)
C�"����E��E�KX�ŭ��w]�@�-v�?���`O���w
����,Y"w����-[��Q���Pvv�A�Ȏh��
�⪄vAĦU��U7�&��M�ýբ��Ξ'-����B��~��Ǧ&��O贴���i�_�z���1i1�a���(�FFgbe�$P�$fceS����|�ĉf#�cF����ill�LdM���ΥK�bO��);�R��	̦�X�j�`�h��br��79T��jXL����������<��	'�ܖ.]�a��TO�h�V&����:��JUf��]�ɥK�mM������ԃbg#meA�-PY⠹
��\kE��*���M.r�|��-��^9�=���7��]�s氙�-=��[|�)r�W��П��D5��?��N�z(�zǍ�ކry����e˖���d�`���XMe��f`�6!t	5FT��¸N�d�����`��mc�d�E��*7�� �h�i�|�n��UR������1^���L�b%D-�F=4P��/���N�W�Sv�ЁX����qF{�����Y��ߊ�u)�ȑ#�se�����Ylᶄ��^��u����Q9p�
�_B�v7��tNK�hs���Ij@�'tZZ�(�&*���>7���\�;_)�o(]D���Z
z��h���:.i�l��~�.Ue��\���m�u�֦7ֽZ�I%ж<W�\��˜J`�@9K��1�s�z���G�]bZZ�=����"3���ŧ�Z&-��X0*�ՠ�:����Z�,�<K�j!Hl!�H�WC>��
]D�� C5ѻ
pE�D	ql��SI��PCi��;
�o�WL�慧��
�轚�J�d����-�	����^�ӫ��]ze�U,�ˤ~4���v�x��[���W�������߾��{~u�[,|���fo��=�b��X	�_;�0����y��!�̃�~��ψ1��.����.b�?�{�i("��5s�ї [����a`D|�=F#Vx�c�"+c*�U��x#O/ˍ��Tl�W8j{��	��V>�e�f
TB<�ǎS��x��G�f[�n�z��2bt$����(y�L����\��6�zc��Fi�kU*ي�V�;QM�4����h�n`KK�����
����vh3���H�$�NKK=ڀ�o�ݘ�;�yL-�n;P���;�pǃ��N+P���T�R�qZk9oIKK��:�*-̷v!=�rH�Y��Kb��x�b.�|�X�NϞ=A�
��L��3��nݺ�?r�Gi9�����8~r�T�I4*�Z:�K��ٜ6`4���@{�'�&�9�������P+�[D���I�Ց���*�+�`�U,���QY�<�?Nݙ���H!��;j,���-է
�i��8;��j��/�l��:~�K���xK�c|���C��	��{ۯ޼���t�o��z�1FW8�SΠJ�,�FDB�Җ$UÕR�U
Nb�S���J&���
ċ�����J����V���9�j>α=��@�⣭hE#�X��j���;K@r��VG�T8X'0f=��S�M�:---=�� ��{�@�;\����J
���!�j�:Tjݽ�C.���"�HvE�V�X�^4/KS�d���/����?��^���(�l4@�\%�!4����:�,k�7n����N����dkM�����+7�rX5��V���	}XZ�*�L1ŗ'�*���8��>K�n���g̘���\�ڦ�!2�E�_b=h�ο=׫iX�[Z����\��~�篷�g���>Z����|��-��	��uX2,1]�O�@����
6�!��~�gb%Dd��!2i�$�
~�w{s4������:?	����F�����NKKKK�7�Uv��ٲt䔿0�]��
Č�©���QX��O�<�����J
�ʊnR�DW������v�Y�P>iZ��Ж�C�B��f�;=�ŝ"JChr����V٫wH��5^ر�l�_�v-8.26�u�\�Z�\}��ge��-��00{�l�g$D�K9�W�rM5E�����r�J��}��e������W���Ǝǵ��!B��=W�9}��u�s�~��_��@z���ߜ9+�7o��@�WZw%�N�K��@o��Yր�T�W󚍒����$�iic
@<�&�	��:---%8�������%���s;n��0�}}��]]�3gNY�N)����Es�m��hۋ�����aA�d�6��
���O�>
�2�X�ȡ4���v,���s`ݱ
���G�^jNU�,Q�Mi�
�Z�dy�j��=٬�/k������Ǧ�ʢ�m��dpɘh.���ի�4��O?�����V���!�Q�b����Ú�{j��;\�z�����h��.|�mǿ�=�:�n�gֳ��T�C`X�紴1ey�u,Kpй	a~@��������NKKK��mpͿ����ݻ��rsFrE@xu��3��bŊ��+�PC�
@����(�h��Y �Ɔ��s1�
^���qV88L�<Q��h����Ȝ32����[ת'mg��ijj��,Gi��}��.i5x�d�1�8��j�8ޔ.\���ե�й�Q��o�����q�枉�c�]��(��;�]��>�\�D�㑊K���{z�K.]��<ڶ7�O�����>t8�8V���ϞK�v�Ƣ�s�2���U�>��f,Kp��V��I���6J�Ե�:---�~4�K�"�2:\��k�6G�"�*N�pj4�,2�l�ވO=�T�2�5L
�uR�����^r�v���<���kK���f�2�-�fG���pC�ц���������e�ֈh�=��Z--���5��	p;��9Vk���?���̆�k֬پ}��&����Z�g͚�A��>#�*S���;�z�v���ï��}�V�H�w����+��o�m/�p����	�>�����K�����62;�Gz@�'tZZ��i����iiiiu�]�I��������aYXpUPXH��I�ܹs��²'����ŗ��ЫV�‹�3wuuEV���N�&�d�CC�N�?~S6��s3,#6����Ǚ�GD(�ش�)l+�g��-G��4'��-��y�\
scyOC�Q�P�n�B�2�KH=�	��f:����_�sVV�g���/���/|�^��t�R����|��,tZZZZڈy@_�vmL��M�x򱩩���iii)������v����y
��d�;::�T����!�
h[�IK�CB�q(�l�>�u螞��9s&��M�6��Yh�,�;d:hL��
�M�6�X�<\ڈ�ﳪj�l��P=�HN�DV�
����s�q9��͛��)����g<�e�Ԕ����9xI���^�b���A�p���'~v�O?:��t��[7n|�����[wM��,�)i�ڐ�@!tZZZZ�Hh�tC�c������;��*�8���jk%����EAE3J�0)oi$�d`�	����
LSWh�jf�E����]�T���e�Ȧ��6W�Ӵ�n�Y���pޯ}w���|/?���J@!|mB(���񶼌��l�٨�l2�$�P��E��V	������S
���K��V�����o߾��P�-%2���Յ�e4b�G��333�s u*��\b�C 2������l��8F��9�����֍3nLZ1���k�b�#G���%�Yg@@��;�$��bR~�r�15F�����K� ##�$����!ٹ��#+�A�C�Y���.��ĐKnn�G4�Γ�<u?��'E���ǫW�::�A�x��Rq���ǛЖ�v�9k��uI��B�A~KE��&�b	���&-��_��&e@!���{���7m�d�3��$�n۶�4^�+���*%���f_/>	���$>Rp��\��D~~>�5���I�b*8�kIj&�����g���YCEE999�K�
�3�Y�a��"��f:R��L}L:�C1I��^�]�Ysё��Y�2ƛ�d���x��֬�B�$c��c�{�$iڤr��{zzP�P__ox!����f��НϦf4}�w�F�i���2��%���
h��g���r��o�5���o��^[gf�U?r�ï���5^�T4b�Qydυ�I�ok�e+Z!�`g@co�	�p�R���BH@!��X�ua��F�Zi}���y�3}��|52�$)�3�V���	ր����ә�~_�h
��|��>�/3�&��|��

�Φ���&c�Df���3�l��8}n�qL�8W��qɧ4
�hi�#%�GUy�yk�z~��
=����4�sȝ��g%t��B����,�%�	�=ր&>�1!$|��萰	��QCJ��GńM���{,--�Jp!�f	�Ţ�`>�!�q�u.����GV��Kmk���>��4H��R����u��Y�������e�7�Y��)�YZ!�Jp�?5�Yҽd@��E���?�����67o���L��L�=b(�O��¤�>>�()%04��.XZZmB(�B��n����������l�.�$A�V9O�>)��&-�bhf@���j�_�q܄�H���d�V7�<�M��:w��Ծg�]hI��Ы2�O��IM��p�������O4��-�b�m���V���>����t�UFCZZ!�������&���M��썛1�5
ͮ�K^]����IIYsGס�#3f�@�%�96�98����J〫�٭��;r�OGӋ�w���I_�-��u�����#�/^�(-�b����+--��'�Rq�����}v�ܪ�c�ƖWW�&�ylHXp���	K�
�޵�k��	s�Y�9��1Ӧ#�iS����3+����Kgfo\��7?1��i�"'M}i�ҵ���6��[�d��R�E��t������q�v�25��3���&{#N|�T�!XZZZ��B!���B��x�%8d`�6{dVn��;v�g��Mr�c|b���溺X�1�ȨgocsCK'����>-�1��Ѷqs.nj;���=�Z���8�y3�oq<q�����?�z���������3�]=��\[
8s��H��L�w�b��lj=�Ξ�話,@ZZZmBxG�
�-!�^\�.�%$�%��Bz�o�ʀX4{���v5�t`xI@69�clZ�ؐ�Ǝ
���G�y)��X�aO��]�SR�v��z��5���xd��p���w1��U�ؙ�C�\[�e�\��*mufIE���S~3ߍeF@o{�������������J�\�y�1�45�5H@K@K@ᇿ�/_�|�3�oܸ�oί����������ت����뭦������]�&��hun������&��C,����X�ȀF:�-���eJ?S�7k{�΂�w��sO��
�ȉ�E-��7�m}b�
+�T\|�Q/y�Q��%����Di��d�c�#�b>���r�^I��8�PY%��^Nzl��'F�0�m'ϼ�k��ORv�c�v�#���"�K�G����f��� �F:;�rF��+3$�%�%�����Z�Jv�_˫��=
�Μ:ۣ���6Z��s������ySEb��r	�%���A	h����3aj�
�����ԩ�EEQ�hժ���U�*�b�J��.b	��M�� �@�� �h�I�BML�p�Zq�E��|s'��}�q2��89�l6�i�a�DEVt�B&O���#WƼ�B�{S2r��+ZZ�蠉�	h�T�
|IЧ�î��o���/�!ь�fę�b��+��=�^�_�"�VNRdF�&F�'�')����p��m99N��g���)�:�z�E�s��N'W`FBr:�s̅�)�gC@c!<z�2��l�������8yZJF6.��}l޺����Vp��>{�<!-����d6[!d�����K��myb6��	l]��a��M�V�:;��U�~����U�0����~k��I��1�C��v���U�w�k��5M����fM�����&-^���جm{����\����Zb5w�xO�.�	�	h���>�Z����;ƪ�a[��.�o7����
��"ca�!�C�DŽG��)�tpx����@8���G��F��ӗ����\��	�.fg]QA(cU�B���&;�BG�����5X���klo(�77&�.�P@S@S@��M	Ӌ�w�9*!��P���k���t2���Ϯ�=7�?�'Q@�����o�a�!�~(�qK����[� �Z[Z �L&��U�/���Nc{��h0`��{�Yг���h4vb5	h�F��H@�:Nv��]�k7|훘�1��лc�O�qF��}��N�X���P���������jʌ��f΅;^��;
�&���Z��Ws����]�h�'��C1c�,��=~�i���^��3�ttB247����c/z�)�)�)�	�Y�o�(��"6I�8��BF(P���N�Τt,&S�^?'��G�Ѷ'��+3����L���{�MF#�������I[b�����C���s��$~-�����)))��A�VWWWk�Z����/8�v������g���X���NExg2=�4�8���q�*�c�%+���w�E9�j������l��,Zb�0��scLb*棝	�7
�k�#R����NSg8M��k��>�X�W@��Y���e+:�8v,,*�IMMM��
膆�A��@�B��X!dd����4y?��`���bl��ԴQi
�c����KJ7��q�+�v����`�y���<Lͼb!ĺ��ϰ���yyy�=�@�R=z�������;R3;��m�X��tmY@�����q�4���%n��Td�s򊰻��X]��=��q��S��:�xQ�y9eUq�Ϗ���/_]Vy���S�qi�\��Y,q_�����ٹP���ݖ�XRR^��
�D��@Ic&�6�L<b���w}w�!����fu���6�h{�w��Є����t�LNMٜ�Omm{JM�/M&ܰ6�z�M
�:�oo�}����H�{��r��Q[P}�4�~-�ϰ�H=�
�x�o��+�
}H�]{4��4bR�����Т}���������J�W{z#�,΃�	S����/=}6$�lh��-�NSa��,�e��>�B@�d��O�̓,�*���Ʀ��8{mފ�i,�<���?\"Ju�ȉ5�7I#dK=�AsKܖa9�>pE{�w��Є0MM!�d����o�h� ��@@g^�b�Z8���Zd��EQ�AWTT@�a24aں+8\\'9H@�ϋG�Y�&M�	G+�wN�	��v�&��sm7/B:c	R�b�x��g;'<�O1A�O1GXo����)�P��G��ǘ�U��6�)�)�	a44!�P@B(��$���uUZZ���8@4��)�	;��P@�$�$���!y�����N.V
`��_
h
hB�m^@���B(�	!�ddhѿ!�7�� 77����)��u
h�F#*8(�%�t�Є�]@��׳��B(�	!�Ħ��Ǐ)���ޥ�m��T��D�AM!?��S�	hB��&�P@
h
hb%	h��ME��q�344!�C�hע���������8�?��I�|��8@D;ʓ �u� M�s&�B��}c5�VAB��f����:�#L���/2;qP����}����O�F|�������c;>Ͻ�zh4�I���%V�3��G"@���A�@�@��@�O*R�RU�:ǘ�������N^�4;;;6�OLNIM�?@�¸�34�p�����z��‚�3av{<#�j�=55�����`���-ӵ�
hA�֎��3�CB5!a��؄�ީ�{4�ctt_YE�f�c�C���V����7������W�}4T�������q?@���N*��Lv@�Yh+�]>	�@��=��/�	I[��N՟n2��x]B���j䒴���{�,�Ԟ45_���2:^���hnn^�z��ݜ���UU�hn���Eku�/�K��P�h�׫�-o�Ɣ���`�0��
�
��0��q�ጌ�P����%"2s���{�����7���-nW����/jO��纯�
\���Z������u�� @��8��
�M��FI{w�zk�984���]iz����w��2�Y��x�=]�m�|]�q���/�:�>>����Ey7?@��:�R��X�K%@�Yh+������%A|���
_�&n�V�A��*;��&�ᄦ&�yOD�h�b��Ըuɲ���!/L7dm+�5?�
���В���2��"@ @������yI���|�J��OkI��'�xU���Ҳ����{�]��ݻ}���-r�v�;:>QoȪo8#�8�o�<�neR�^	�yŹƢ��3~�
�h��VFp�y��H�dq!�
�hh �|ҏ��7�\�m]�v�V��ܶ����b��nyp�[Jm]�.��~䷴<������3n�
(O'&&��7=�!����!$LS�l��I\�I	��M8gj
\m�Զ�@���~?@�#8�5�#ǘ��h�����X�����7��q�S�F�U�M���ϻ{����>�=��v���kG�>��E2�r�n�'�X(�	������#G5Qqu_}s{fF=(?��B�dn�c��q�)�5'���'oHW�����Ϥ�7g���ɩ����L����h�c���w@����D]��'���%& �w4@vC0$eA�њ�_1�JW�N�E�l9SJ�ɻ���n!*�E+G�f�p[��'�v�ڔ��c���ܝ���n'�����������v3��E�VZ�	�@�Ƽ{�
�2q�9�`��el��Z�7d���\w��5��o�~�pk����
	�B,@��"�be��Q��O?�
6�N��e����޲mg�ƒ����]U�_�X�dd�D�y��U�m^-��krt�G,�W{bQFV���
���-�"�7��h@�h��2#8��y'E�w�g��}�� 5Vk+�`Lh5�_�������{E)������ ��
�R
:,V��N�=�2I�L�k����q�b픫*yIQ������xNolq:��1�S���[-�����y�ܷP���U��(Z�rFp���A�@�&@#��7��Ɩ\�K���Zj0��o
�+���_��嚷
��G��n�sBv@���	!��t9@*�R�A����Qg���՛cch��0�&�M�#�Yha���t:�
h�B���ri9@��=:���+W��4�w���`t�Z�%+X�:>y�M��t-4�
z�=�}�
��Z�T45���|jF�\�o\���dyLLˌOI�y&E��,�c�ef'h>��	��h�	�h�	�X�W��k�?g@�HLKZ���Ŋ��{�:��ͷK+6K;�MH�/V�	�t��?q􃏒W�a4�
��@��M��
v@/�=>>>��R���ePFf����:{l}��{������r߱�O��o�l���P�7u�=�L�&@���e�� @�	� @�"��tN�[��9�\[�a����fy�fo�e[�W5�[{����o˖%�ɒZ-K����粦�K�^W����ic��q�|�M�����#/�
���n�wlj3Mh������'@�M��#�J���M�$s�-	xcIy��������ry\���W$��Ti�vw��Ul�*?����{n۫���ٻ���t�v�2m#7�p{���u��9\R�rbZ�����eAQqu;���ޓ�l�Ԗj��K�TZ��[��3��
�T�&@��~�w�ɳ�=���N5~u���P���
���Iy�<��I>L������{g��u��әΤ�I�&�ETPAPDQQT��(��"��M@AY\P	;<�YȦ�R���`i5��j駜���'�o`l��3�{�9��{��{>~��������ٺF�&��q=5��--�<hlR�a�#8Xxp�`yU}�#ؖ9J����z(��mz�]�*���(.��E�e��j�M�/\�q���ʒ�ʋ
�x|N���s�./��\��s�U�u���O��4�N��}�K+/�^��tQw9%K�8����W�h�H���k�l{�8���bM���H$�����MWPڭ&E?��Y�ka��,������������hii�r�
SD&K������i8#�z6�>}��p��Du�a$�b��I�0�ɵ-.�^Tl���ی���������m\�-Z$Z$�@3�@"8�ˬ���ͶV?�b2z�S*���
J�E�l��Gh>z��N�����+��<p��}Ֆ~�>���Q�x��c?Z�f�F�,}!'��<�d4�Aՙ9���-\�q�������-Y�@�D"� T/��q�o�}���{���H$�����Ss
��[^�|��x���qqq���2_ch���5}�t77��w�rk�=�����
�������=z4$$$   ::����z�֔���#G���ULLLUU�!�����D.����IIIG�G�a��î�(��hz��֣G5������?_�4��y�ɭm�::>����rC�^�\���r��#
z]VV���{��	�
Z�Ç%�����
1�.q6�8�ֶ�(H���&��l�5'�eO�wt^����'���|8|��ʵ��]��F���<lю�\���Һ/$����6�@dLeM��=��Q�j�uIE���L��fo=�-Z$��E%�75'���ot?}���K>��"E��7��C��|�tZ��+�~�)�"�˖-9r$����k�nѫ[�@[KK�9s�ܺu����C���~~~n|�W´
�<k�,�^�;v���vvv�w��%V��5;88JNƌ��fΜy��aŗ��˗//^�xܸq�177�Ä	V�^���V�Z�u���#}���4zrA�s5�hŚ������F}@��a�@�7������#X�+4|�o�h����T�a�tdl<�䵞^�h
�Y�r@�so`���R3r�ǡ4���ƭ>�15+ZM;�j�����sK+�r�gEu����59~:����u�DE���YQ�h�"�H=������9/|�YRQ&�hb��iR�H�򦗸�}QY���L�+�s0�
5���Q��Z"�aH��3-�YC�gΜ�<y��o߾M�q����}�R�0�ڰa�w�޽�6��W�=�ommͽ899�ܹ���+~j�9���hO�4�n`�������Ё���t�^�d	�8::��P{yy��؀�׮]K+W"�_��֞'�;-v�%���
�O�P�ͳg�Ε�>3kbAa�gԠ��vŚU�s��V*�^�h� �
(����p���J>@��c+Z48g���d�*�-B��H
24��@k�d�2�籖ֳ���ĩY���S����+�ڃ
@�aƱ�`�h�г��"��֊b���(�����>y6�}*)-�p\dL���cE�G��tr���E"����`d���_�D"�/J��*���*Ct^^^AA���Ǐ����}�3��*@�����l\�			��O�!��,̽�9vFFƵk״�)RSS����@W�^��q�����
�1Y�꒸R5�	a����7���
J?~���������˗cs�������f���'N\�h��NݸqCgR;ԭa�������D^̚��v@C�ݿ���wRp�f��22Uǐ�l��"�gZ�
�V�
U{��.3�C-hТA����M4��G4�禦&E�@���7
Y��K��"����YN�ɷs��!�G�ge3#�TRfn�%o�e�„ӟA��P��*�x�
R5�b�M���K��ܳ��q��9�{t����4�(6A�[w��;�N�b�`3c6=��z�+Z�H$RB�2���*�D��-c
A� �h7n�r%��KšC������ ����4v�Ű��۷�9\�w��,611!g�	�z��\C��2��@(6���i�&www�.�a��W�\if :0�'��ΰr.{ʔ) ov�z��ҥK����\v׭[�R[[ˮ�͛7�q�������j������#�*пIψ��̟��Ǐ��y�q�z�5�ˇ�n�t���3�]ϟ�����wT���Qrg���g�~��+

������ڪ5��
��|8:�Ow�fͧ�g����kko����X�_Kc
��Ǔ���-�������4@���TQ�,v������e�{̱�U��IƘb;s��i��ֶs����=��/&�9#��|e�ߧ��63���N�ʩ�ot[��Ԏ��Є>�Y��A�vqugi����9y6��-Z�H$���H$�i����BiYK�\1�Y([1�m�,��'N�ر�V"�#""h={��������
@o޼�`eB�����f�s
 5�M�6m�ԩ��4#�_��Nv===i2t�ә��Ә��Q������_2	�5���ٙ����Ԭ�
�31�={6��﨨(�ӜN�
�hʯ��?�MpNok�8���lh���4}��=�\)x��ϟ�4����j���z�.Ǵ��'O��x��!��2�c�nec_[[�ZC�"���ǚ�[�;l���S]�%մu����q����{�Gb;k�z�G$��Z%AC�x�!��R�h���C}-�+I����LЄl�MͼP�@�F��/�`O����d���/J���Jj3ME�/��q7Owp�u�:O9菍��
F��?ɰ3�8����S�����X�xs_p8RI��џӥ��k6l�S�	Z�h�H�=��-�Do.���U)z�+4)��2h�h���_�
v����ח�������Ud3�R�e����.#(ͩA��ѡb�1_þ�Ԙ�5�F�2�i^�b3Ŧ�c�����:�@s���C͘1cժUZa������@�1Ds�aaa�3�h�.���}�4��n1x�V������oK**?���q@C�W~QE�7�u�2�����:=d���^��15�NJf������U�ח�^��)�k�gdO����������lؼ��?^"R32��'�L�����B̼ꓳ�z��.]"v��o�U��$Z4��|�%q@Sx�L�s�ݻ?*6>��阄S`�.K�ƊP;/^���A�B#XKp�.
nex�pL�DD�&���޹��އ����}[��"Q�=|�N���&	��
$�cӶ��1!�Q!Q�=�)�g��E"�� g�Z$��P���obb"��0��:3u!���m۶q���@(H^b>�����:o޼�ׯ��X�
���	��

'��n�ʵq=EEE}V2

@sF.���'�R�2�������p�
wf5�j�j��D!�J|��Ǐ%��g24rq��C�t�@[~N���M�@������y�N�j�w���@�@�w�4{'�ֶ6�2=+{�x�����]�+�j�����!�r�4���������������ZI�X��Wj�$Z4�W*R�����y�'M鯏"�W6��'XXM
cm���m����4����Z�u츉lPDV(�mzZ��>�G!i�0Z��(�5�h�"����sQ�H$�������F�X:��DSf�B&Q����A�Dd@���dH.�@C�� �>V�шs��T:00�sqv��l 6XNp��阣
_#�LV�e�5XT�O�ͼ�}ȶ�[(���̀���ˋ܅!�!�I#���j��eBʯ��A�=��?x�J��M�dϚZ��?�-*��SzQy�����Ɇ����3��]t����o������m�'�7|���{�2�tZ�9���51u�xŧ����G�D�ƜK�H�/@�5�2�_6d�|��8)���
�-�����TU�q����2��Z1��i���0yI'
7�Z��R�Ӆ��۠(��"�����E�W�D�@��xI`��-�\�`�>��uv�s+���w���y��<�\�p���{��"8$I�����Bx
+��64���)gff:��%�]�p�':��0�]�J>6l؀O�tNN{I��K�l"p0���taa!ؗ4���z��GP�ϟgp>hB�Ř�12s,i�6�]$��j|���ՖR]TT���a5́����wU��f�>��uj��pp���^@��2o�u�T��
�40>��J�q��aױ�!*��p�L���Z���k����/�`{���nW����˯��H�1�^���m9i���G�K?�a9�],����H����0\��2��&V��$I�J�$IS
@755�SZZ:w�\l�,<ŝ!�YYY�Tlܸ�x
'���rA^P��Lx�z�U
@y-]����c��a�ͩ��eeel"�!�y˖-��М
 2㧧�S��jkk�4��e��	�8�Ds���٬��\��@�)gj褀����f���a��~p�UUUж�`�!��AF�v�JBc=��s��st�ݺ�����?���9z��ͱ0��� �{���[��m�4B����ǮФ����ܼ�YϤ��`�:���߿cg��"�ywwkI���f��:�����%=�R0ZZMZ����!�$I�4�


�@�m�>4�̩���Z�rEE{4T�ͽ{��,f4|�iii�a0.��!���ɘ���,�R�h�K�b08�:��AB49IIIخ
@;��L�3�#���2f���qs���)))ys
P8nn^�s
���r1�(�g���hc��5���B8/�@�f���n�`�vm��O�3��`��阮�
�޼ɂ��h��kpI@�@�t�Hc�ϭ���VVvdt���R�k22cb��h9����m�L�-Z��ko���ώ]�[ϴۮ���ّ���`@����q@���a����jВ$M��LZ�$i�ˠ��� ��Xh,�Ǐ7��v�
@�z��m=X�a�`\��<B{ɬ`V�^04�����nK� �x.��Í����P>���������l޼��1��m۶q=�lF^c�&�c�{HĦ�z�j�q C253.g�D��@g�����$$$TVV���g
��0�~��EQ#��=g�<Ջ:D�����wȃ':"h��r���7V5%��9�զf:����5�])}���4K.[�
�l�;�3?v�Vܕ������O}���]��Ï�|2~�����������WT�������/[��������q|��$	@K��yW[G�;����jВ$)�C�$I�O�����K�`e�4�O���\0?a/b��&�%ٴ�@�Јǹ��������Ha7uL�z{{�!��J:����J�-s'�"C�3粡��L�( �����`d+0����Ƙ$~�A�\�;�ܒ3r���N�=��^�7��jxB2Zyy9�mj��~
�x!mmmx�I��X�†��)�vZD�A���c?nm����:��4��A̎�yEC#-��6�2S���כ����/t�6�/[I��իYO��31�͈gcȃ����{��]�5�(fu���̉�C���ٮ}� �hCLܢ/�+8{@��%Ep��Z�jВ$iBI�$�~��vWf��'N��D�±�مg٬���i�<w7{���=�k�����@��q��ƹC���H��~艍�
���b�i���4��O1.�(�;f@sK=��y�N�^]�ty�)oe�<�.��I�����ת�f9���%I�&,��EhI�$I�Rz�6h7Z��%��|�������$I�@�eEpH�$I����$--M�Y*KS��T����$I��$I�$IZZ��%�?v@�s#hB5hI����]hI�$I��������c�b���y�@�	@K�������-I�$I��В���{��y����S�D�#Ecű��x�Lf�Ĺpn��dٖdٲ����:�^Dg���蝅�K���e����^�ȑmax�E>������_޳I�ܥJ
q@K-��Tv-�"�H$	�-Z$Z�h�h�T$)8$��"�h��AI��I]�o�S�.q�mc� ��D���_�zW�H$Z������9����W��w^{]��"�HЏ�G~{���ݾ�q7{�e��
]�3�}�����3WЌ�fD�;j~�_nvaaѶIm��'���O�\D�{[D��y�"�6�~>1I�gIi��,Z$-��
@Kh)�E"ц��9��W5[�z�+벵5y�u}�F�/c��G�'�u-e�-�[^����31m�N]YPat|���a�l��Ǵe���qlb�LSan~��Mߪ�u,�Qઍ��Ǝ��ťť�V������(�
��]:����[��+�:{�v���7�m\niny-��l�P�ޡ��ʦ6B��n��+�m&t��]��>m���ኆ��������=�H$z�Z��������ߑ��S��Ub4��L;i�.��@�6�$�ӧ���"�hi�����߄��Oo����/�OdIM3nd�IJk�?����#7�����؂��U���f�{�o��e���V-�=��qo�uS�������EފL��/�ʠ�)��B@�Րx��ev�zX��W�N�O=CC�� �0�a�	����|��#��rPRN]['Mlk8�։�	���L�I5
r�����	r����z\�Gd�UM�E�Y�{e�>�_8r#HE��u�����	�r �%�Q6��m�mJ.���
dC.aq��:�&���V��T����ȭ�H$z&⫇��I�s�	_2�Դm����>94�`]M--���,���X4�"�hі�K��n�t"9����D[�[t@�U�^R	b����c�2�U~�v�Z@���o�⚦����f���
�O���N�D��S^;V�?!Ը�A��߳�Mh��������4g�w�)�Yߨ+��u)nw��j���c_
���k���nOz�������c�����ʉ��Q��j͸�ef��؞�Nʥs����+v��8�-�3k���=/�pX���Us�`�����"�p�i�~�;g�R�A�
|O�-]���=4�_x�U76�{8���z���@-A��3;gU�6ֹ*>Pju����E���gH?�;�ά֤m!W��MsG(Ԣ����0�Q���vL)>#�3u������t���j	,��ٖ0�H����li�mj�s	�?�O�>��q�{��Vk���Z�339��)��nב��X	��@���zhhH^B(Z�h�H�u4ٵ�-4?��Ӗs��s~Q@[�,x�)wr���vIMxZ[��w�¸C����c7���Pݢ��>���Qz߹�M=k��cg���!=m>ﯹ�`�����]
���L?Gx���$۲�4�n��=@Cu���p�V��Dx���~`����?���_Y?8:�t��Y���(y|n�|VqM#�l��b�7<�V\�������Vi�L&�UV]�ж��~zau�E`�F�$�ޛ��@azf���Y���Z��Y\��!Pj>�BI.,��� 
���<�6�ۚTN���bܪ��p�����]���YV�?bdt�CT���&��oh��8�p�G",%�?!��Ôy�V%��,dxlB%�9����)Nٴy�����!İ����NA^E�z�xpJ�{�����/>���Fk.�n"PCFSJA�_\7MM+t��d>fć3���m6�B�D�g惮=U[w�����TX�ʻ�+*Y>��<^]S;6�%QB�E"Т-)��"I�!Z�h�H�u~��O/�(��ZH��Q��#��1�R���YqL۪5�d�\�JSx���W���� ���h��i�ซ�1��D#-D�&�O��vlח�b0���p�[��5Ab���%�y\�9��KƏ��V�&�4��������`���y��f華��*�~��@*=;��}�7�Zh����b��Cl���M$��&��� b�lVǢ���
�2؝=5�`YF���+w����+�gV�ye�T�I�nz�ƛB}���*�+��wbId�wxw�0��Zt��{r�x����uАS�Q��绚!�zv�Z���yO3�Ʊ�ɣ7���s�8��):�!�|N8_tD�����Y,����+r�;���/�]��ݣR0��0�|/g�4�_�C�<�
@R���'=��y%$�>=�{V�Z$=��} z�V�o�V�f�%08,+'�>?�"�h�s@�L&Eo�%��B)�E"���X�3K�Ax���S�|�K��h�Jg8|=0"=_hr@MS�j��pUvG�@�&�DL����L "���zG�����Jd<�S����z��S�62�P3�pY�J��&�k�tra�2�F୼"�e��=��KtD�����b�e'5&�bgf�pp�+ax:yN�Y�ɚ ����^837�'�/�-��/.�OEc�ef�8xF����h��t�Ă���RMV!u��P�wt:]1;��7#�8)x�^�%���a��ٱ.N:����	h�����!͉^ja���<��A�ۺ�؉A�|��d�V����C��,37�Y6�'��.��M�	��j<�}��@kb��LJ�;�_>���Yc�l��}��e������J�:�t+"��.�m�H$��w�c�}��7���N*�H�h�h��*�v�͔�
@�~�;_~uמ���٣��m��E"��%�`�������K�
��;�ˀ�l���r��a��L
�}g=��#S@�=9m��5��AL�ZU,b����
O�e|r�9g�T�=�ޣ��O�Y��2���B��ۋ�����D͝ ilv1��W����}C��qV�Ic�f�,�6�,�h�8�N����Vh,
iF5,�p�Ԣ
���,�6�3"d	'o�0I���Lny-�6t@{�d��!���)l��pe�]���V�#��� i����׷�W8�+�XQ��̐`2C�2�V3C���sj �G�ek�iN[��w�MN���B�M���k!�$����RZ}�#r�6���O�m����{09��!���I�g&.���8Als�y�d��o����L�cFY朊D"�H�hDw�Aש5�6��n6�:�]����q�c?$����zk��hk��| 	�m��T�+w���[o�����,���k�kϿ�땽o���x��ݱsώ�/;��z�+/���Q~���P"�<ʋ����~�c'�&��?�����K���=��
�-�����d2}���#��l;'�PwY�s@��{\�!��������G��+>Y��K����p�|�?��f���
�Gg'�kن*�l�L�'���`�i�w�3L6K[M��.���!�P@9Sr��U8�Kq�!q��K@3+�W�t)�qB�d.8�h���P��%�4l��+~�� W��X���!GW���p������wqqI%��ֵ0���4Folŀlb�SXg���|-�n�N��Ӌ���O]׮'g�j����dV']fh�_����f�0�u�gm4i���:�%'\d!��r@�+�Zh"�g�u�ϰ�|Zq�+��
.�j�K G��g��>j�$�D���V��L���Vc
v�-���3�����x��S?��VQY$	a��
R�JT�pTdPTЈP���-�"���o��8��0d�NV�B&��	HžH0��y�8N&K���-�s�}�{�޹����D��h��$��������{���������i�K�/����!�X�>����hp�<�|��#�h�I��k��kzD"�";s@�W-�@�;��g�������
gi�D]�ڷ׏r�D=N��sݠ�%}��S�&�M���4q
58O�����	
	�1�	p��y���њ�����q���=�-Z$�@�L����U�
P<L�|��j�ĭ��$�eaJ����:l�#�1���#8 ���6���ظ;�O�@IT��3��+�Gs�@�(I�iq
|��e�RiJ	�� ��]�,}h+E��/>_���p:CA�`}n�D?�Tɉ���G@�q=�q�3HX�4�3p(�@Rk�K���uj�5��@w�
)�H>�\�"$/���5���5u ojS��+(nNm��g���G9���N�7ˀnn3)�7�������p�<
">H�Ph���X�I,�e�U���K�.x�N89L���	i�rx1�#E�m��;�_�h*WZo�=�!δe�������v��=�Z4���A+\8;Ih�kW��,A"�H$(���+�s�Գ�Gkⴺ��_����A��j�w�!�_X�J�WZ���}���e�ߨ���6c���EFkrr�zD"�";��,8�8��,~��uͭ-6�#��Ǐ��������L����W�q����	��¡w�u�`J|�h�"��Dp �wL2����+fx�7929s��=�$[4�vuvq@�����c�.\�h�74�]���@�Z��Њ_��&S813�-�W�����Fȯ���5g����H��t�VTa�d@��}�:ՂG؆��3��Mn7����j����^B$pUCN{g@3;~^b�a��҇i���vǂY����\#�w?���7��A�|�+���L��N��eDqҪ8d X�����V���6rQ���pRsi�����oB4���r�׫�
4j�)����h��U��;|��̷�ib���5��� s-B�5�#�R��J�+k�x8��m^y%�_�G�pM�8�LuHz	�:��i.߀4XV���_7>�ؚg@W�5r��o�mj5Q�혔�Ȥ�Bsl��N$�D��
����y�c�9�����_\�𣏳^m��1g��9.gΞU{��!.67�𱮾~�ߟ��E2�E�E�a��
@?��G���0~P�4jH�%�a�Q�y�<1�]�}�
o�}���IK���ڒ��	�f���Q[xjzk�Fx%�[��{�G>$Z�h�Htg&!T�����g��W/�!�o��E@Q�by��8��܃H1&��f%AB1Sf�{i��/o��BW|����R���J�Ls+Y�qxC�#���9t��W�f�V���DպO��Es��ml%����e�JL�1'��x��V5AU�v0��@<�8����7����lsn�xS��P
�/!�V(*�`.>4灞�.} ���f�aq����{{�� ���)e��:-X|G��l�c�5���Lmy���f6��������wv���:�&�e �:x4�G{��&�hmci��b66��n=4f�#�����G�W��=��b��N����uA��BBӜ�+�_�s�q��#R�u�ÌhG��\DžŠj�64�7m��MfO7[>��PoJ�j��v3����09o)���&��?"��r�>��T��V��0����|E>�!)�w�������F\��H&�D��	���M���朼������2��o�1��OMp�����u���������Z�<�ΆM���H���MMM�1`M���/���d�wK���~n&�Y}��E/.2́x��+_kmmS�Q�6��ȇ,555�qY@�oJ@�-���/�F4��B{��&Ý�6'�g�>��vx1���������S�4+���O4�eK"�a�o�6��/S-[�Kǧ��ҁ�}4I��l4AA��$T�vYᆮ�6a 4
�b2_�%")#���o�k��V�$���Io�;�M��O�{{')S�6=�2�gD�&g��\\Ze�����%s.��:�X��ar<RJ`��O�n��8�g|�q)A	)�o�u�O,�0�~��C$]�djꥇL��K�{��C|3���m�e�K+7���u�bf�"ͺͮ�W��VM<�7���4��r�26�pf���%6���n�6t�>���h�0D+O7e���sl!1���*���q=�a2pVh���DU���p)��=t��POm�� ����+��aD��"Oi�p�h��"��U�$ ��`�E�u���DNK�����#�H$	��'��oh C�Mld��Y-㰦M�YYu�W�w�7B�tк�DE��--�{�LE���=�H��μ�d0T��W�;:1���6}���n��_�����+V;8M� �
n������	E�t��R�3��E�h�"�hp����h����}�&�SYϨ�_�r��)K�l(3o6�
5
ck�li���u�������2��{SuvA6�	���<~׺�1�p�>;f�
]�G��Y�y��[�zh+��:n��Ԭ�IakV���Um�[4��NU��o<��]uնy˹���j���[��6W����!}�'�u�S1�W�t�2R�[_Y�p5��Gʿl#E�����WS�����T�p�Ku��P�5���r�D�.$�_������%�W����:���xa1w2]R
����ӽ�_��a��T�����5��	���S*,X��������TTV͜���<��ј���sx/��P"8~�c&���L6��LٮKN!:4<�|7�++���m�.�d
�-Z$��[x
�U6��h��h�;W,��1q��#�1{�L���v��[�{{-��}pR�#�`/Ƿ����y�	�5��zٞ��4'��}�r�D"$�V�Ö7�3fϛ�pq��7��YQq	+`h~Ǽ襥�)b�)�+|��9�kk�3纬^����D"�"��KM�~�D�'!"����������z�l��:<�7����@�N�Ll��(Y�!a�'���PS�zGG��Uk::��-Z$
~B���(^K�T�U%�
a���<��D"Q��[hR�]����k]a|����|,��CGiby�$(��a�f�7���Pk��6��e���}�nUQ�.‚Ə�[��zD"�"��I�$���������.��5��
�6�p_��
}^�p���њ8�1��"��7�����Y���}��'�
�O�h�"�h�v����V��W*�3�g��QL$�D?	��s�3cּ��F���ɶ�c'�;ԁ��w���H�P��ֺ��.�7���7�}���j���ۏ0���+V���@���
΂�
��&�c�V�����?ݸ��̍�.���UVVyx������e�(2v�Tf&�د
zx�ż
@?1�Y��߾@>*	�-Z$
.]K�H$�D"���P�}Zn~�u"G^Aatl\HxTr��������#Q1�Q��#Dz �{/]������W�#	���f�"��p4�g���e�~a�rr��M���U�L��x����o�~����(Ŝ@g5[1�/��z�(g�vy�9>N�>�7��@��D�o߱|'�,�m��!�HdW���cw7߿e�^8'$��y-	��~�Tp�Dp���4qJZF��MfEUU���e+_�����&+8}�l۩S����b�&����|�=h�6�i��=w�]�{���1�@����3�����}��6�iKTb�uiZ/4�E��Xj�K�P��U�@��-E�mMk�TK��e�

��2,̜�0��0,�_8Jg�e43X�=yc������y|}?B��&�����;�>#R�]�F�@DQL����n��u�E�eQ�(5�բؤә=�4!�D�Ђ �:�
�Э�`e��ˁ P�##͝��/G~��b����G�4Ƃ�>��	��h�+V��3!�G�YGNn�t^�A�E�)^�R@S@B��EA-�g���g�t1�
���q�}|&"����4�c�K^9S����.��J��BjE�H�����t�h�*Q@BMd,��S�do�,�1��Ј����Β��ϡ��-8���5Z9Ϛ;���U��32�Ǯ�m;2�R���c�|�>#�Þ�;3��>ݺx�2|�d�4ܝ����ظ�q�׸�Є���V��{[;o�]>���3���3h����e/B����f���:3��$��TQ1��4��4�r�Վ�^?�pǸ��s���ꎯ�SY,p�ЄP@�?]
�g����y���� l#�"���"h�r;��֜7�R�=��ń��@6�A�<�3\v��5.44!�y��GV���Q�-eD#�sevxو�"WF�~<nn�Ҍ*�X��g�k��.�
j�8l�)Pu�����^<�S@BMdY�2)��*�?Z���g붌�B�S3��"�
h����e�3#JE�z�w��E��2>2���P��U^����ʪ�v��x,F�7��^k��R@BMX�
h���􀦀fP@B�s�*���sŰ�
�Y�%+**u�0����e�P@BM�Z���t>�+V/z��AMy���d��g���~Sm�?l�j���g�yp��/�?3!����h!�|̚S@B%�!Ug)X@//-�k4�0Hi��MM4���Aj��x�
h4!DZ��D�4b�Z�G�(�)��0�C�K��:���Θ�U	�[݃*ю����m*�Ɗ�p� C[��%:p<33�ֹ�ou�T��Qz9��Z��6���o��=C.䜾�u�{qOk��&�(J@�[���e���^
hB(��|�R�����{@S@3(�	!/�[;�e�Z�6�#�}��wgƮ鵮��)�k�n@O�Dz�Tmj��r��bZu�����?�sV��;��~��y���999�|]�h<1dzuõ�O>��zGk�
G�r�+~��}u
:#[���]㍻���7nڸ��EG "������_����r�+:���-�7W7\�S@B�#��(�)�	��&�?��(*�I؂�AM���Fw�hh�u4'/?=#c�E���w�&�9[^=�uf�
Y_톹�l���լ��Z����>��ǵ�m_lߓ���f8�0�8�鄀�=3���o:q�����z�9���7�U_.�n�,--/���
�
�מ,*
Ш�GMt�Ό=��b���Є
h
h
hB(���4t<,�/�ق�AMa��Ш��LT�B�N��^\���	Cš��5_���ѭ��A�f~��''W5� �%�z��})�B���1�� �yX\��ALoCǝ���]�Y(��A��)(LII���1-�AHCH	�zc��mB@U@�4zO�l�H�u_cz(�F�)/m�l��pC��k���zO`����}qr���?,�Y���&z�ɢ�m�+<���K�7�؂�BM-Km�ُon�:y��r�UT�t�W<�����3��J��'����]u��Ks��mژ8$�Mbn&1�2�ʬ�2��	D�y�gTP�8mk�p�S��Ծ�iH:V�|_�:���k���u������.��}�
{�R@KHH�R�/C��ӻ����?������q���<>�R��>�܋-�R���M�<�����5��k8�ҏ�DK�-/ߜ��⪺��֮�V2
h�k�o�d:9;���;:9�oj�Rf@ժ�
.����3(�kӃ�&e䙙�T�5bġ�ϵ
m����c1�P(T����������J�	-}7������uvv!K&����_n�Ѣ��[�:p8
��t�0�$��q�ٰ�#8$��%�����K�\��ʓ���T�jl�������
�6eU*�K?j֭�b�8:9;8:�㎍OBS�"7=s��欷�k���Bu��T��֭w�hE�q&�;8س�ə�W�d?����q�
�uvHh����d%�ng����������@���=`gks�,�JHH�������5#���,m��s.�����-1�Ѓ���	�h)�%$$^��/A��w;��l�����aei�'.�e�����ڵkml�q^ed�c����o�LMMlmma�����>�����^�Kl1`�&ƫrK�=*Np	q�#��¶��6�T>Ή)Y_|���s�sʩ����~Gd�V#uE��}���csgȘ�I>$l{LB���@�
�NJ�3Y��/ (:.!8$��k�}�y���<*�O	P��5~���
��'6�m�F�.Y��XX�W��V����
;�5�EU-�7c����8��ՃÂ�l݆��Y���6l���{��;:KQXq�����ۗ��������"�#vae����� �{�pkk�؃Gn>�q9���s�8����S.;~�S�6���wE1S���k~�L7t\�VS)ZBBB��W@�x�NNUOO�=����wjim�;�$$@KL��7n���lB(E����+�����KЀK�+XM.��e5����d���F�;P~�>��8�a1�e�!����-9
�,;~�.H���R��t'�Y����1�H�+]����B�"`�Cw����s-
)��`Mm=6 �wG;::�kP2gUp�(��%眢*�Q���5f����bh9�P7x�)ӡ6tČ�Nw��%#ï���sI|R:���|�6�HƋ�0����377ݻ?��#����=����ĕ�Ʊd��}fA�b]��{R��LHmjl��-5k2p�	�*/������2#�>��G��:��ىZ95o		�8�:@��8��d���$kk=��Ig������ݝ��u�W����̅�C��`�F����xL���ӧOucA�?/���Q.��W���
#O9����y�������9�Oh�zN�k9�/�%��=����o�������-1탷�k�@�&�R@KHH���4J`댛3?h`4��N�8V��:����u HIA��C�8��10l
�1R��{�o=�1�Zh&c:y��u�:Oo_�ts��O��Q@9��
HxY �łcHc�]%Ux+ԝ��&1T���@X̦��tKVPot�E��W����4||��bt�:�\~��2�5.1���i3�������U�d����<el�?��rKH(8���F����hF��/u�B�'��C�:�=��\�j��NN�^>~X�Оlw����r�p�@�1�`S���+x��w�E��=��$�u/_��-ZB���%���C���烃�cbb؍v�_���QRRRPPPII	_I2|�7i��j������P�L���ë�:�=��_�򍪏54~���Tw�ݢ�9� i��/y�_TTTV��_��^�aI)����=��������&��R.^jv��[Pȩ��~��(���%𛭋?�_��g�
ͬ��*�t�%�q���t���(��H-!!�o/B����4���;�6Z	K���
r�f�-[CQ�*�d�f&�Ii9�kh�^8,�V�4�ȸ<�ss���\�0C�?:7zx�������;�
B��G%�NNNXkA6��gWv�
�<���*��
@��F�o�T�Vtt�A��"ݐ\2�So|E �ͽ�ɜ�C�����S
jK���B��?
�1�����Me;���a����U+
Ss��S�m�s4Ӂ���A�!C���$����D��4V���G���3����D��p�P�ةW@#��,?�ߣ�?���|��zxx,[�,<<>�KzC����8o޼������u��dn߾ͯ\�f�
��_2�'N�Ɗ+`�JR�nl�g``���/Y��Gss�cǎ)A�蟃w��M�o�sG�	�~�-s�PCC�s�O=���V�Y����.�=�ϑ�h�䢷�ђO���w>��`���EK>7X9g��{8{��y����{�.x鬷,]���Jc��:		��.<�7!ċI�R@KHH�R����@�o���4zጂ��?耛i�>{8D���G�����c�ټ;�:dѩ�E�+0�hb1to��C��b��ѱ	z�ˠ�_��B�S����'A�Z�z�b���M��[�׃��ss34��o��@b\��j����N�.j9�&۔�B�DM��H{�\L���߆b��2p�
v5Dp�n�zZf�3���m
��fV�4OS2YrV�HF.�&���V�hf�N5v��Q��[�:rr�RRnҦ���	�[Ouʂ#��lgg7��:.�B�8r`Í�i�r�3m0}f��f�=clB/���
0�dx����҂�H��@KH<#�W��s�zzz�a?=ɥ�Dv��ˠ��:t���*=�CۿV�ĵ�i���s��	�r�U�L&	��P�����nmm-]�m۶��~{����/&C���|����R=�Mv>u��c�+��f��5ߺ��
���e�9���gj=}jUs�OY�z���M��Ƌ3@O@o���nwT�nT�<�/Z�l��޳/��M�߃��|T㼂���|;3;W'!!Zb�oK�բ��M�����=%�#���c�5���}1/�T���d^�����{��P��sA�p[$��y��!���+N`4lkc��~T�@i���G�\ܟ��օ�b���-
��;"��S�,AJPf����4&[�Y��xD����r8=Cgd�8�g�7��1�eB�MV�F��U�a�a$O��w{���*����RV�2bB.���Ҋ�“���i�.���T� ]�fj�k֬�s���)��;���9�d�ML�fC�^�g���WWv�S.a:ƫW�]!�d�[�Ɇ6���z{z�d�W���Ul�����f��	�n�y�u�M�@33�C���q�gC��Ɇ{{��~��A�XH�~pss?�:��h	�h���e����V�|I�_������N!���N.��ZuE{�g�z�v�$�~ԁ@k17i�Х����E��<y��9I�٩�t�Ree�_~�X��,@O���<���uL�|��M�ꣿ��Mj�܂��N*���n:[�����X�߽�^Q1�y��!zr���������w�Q�1��E퍙��r�^�5'#+G'!!Zbڇh�R@KHH�ǔ4H1t�.���
hO�m�;�J�S\
�tpt���AT��a�pU��5vv�NH�q4�Yc��r)��vJ}Tl<5N�.pU����aW=E��-9��F����nd�7���m�Zʌ��dP�by�}�Qr�����
�G�ɩg�!�`������C{J���}7�-��(o��������zO&���V��Gb��G������y�#�'�+`K�M��Ψ}$�}�tc�A����|��G�5vk��ʱl��^h���VekcͅH�Yv�aKF���
�X:�����?L{�6+�h�5��+�����=����}#,��C�g(�uԞY��_@���Ř�9!4|V�,5K

�%�a��#��,(瀩N�U��%$&��n�aO��������X�TY(�˭KHH�������


��]]]�0�@����A@FFF�b�/�\����P�t�0��ؘQ�O;//o�ƍz���-,,V����eNNrjJ����n�eee�gQ\\�����A���T~�����>x��x�o�3�xf�A��T���s�F>ԯyZO/�����|�
64QRV>g���={@K����R@�����6!T�������S�'�l���De���e�7���ܶ���ȐPl��q	G.u_m���<k��kϵWםi��7z֎Xr����Y�A���M3-b.?q.93�Ks��("Gh|�k�f
�#R�Lb�3��!�p
���P�it=� �C���h�|G?������
�F
�4Jj5.>u��4V=3��g6�k�|��q�"=fmAϴ��1"hd��i*i����L�Ԯ!�3E��#�a�e5���~D��rˑC�0c������)4�@c�iPz�lJvQ��N��%$&�kjj>�装~��'�9�P�;�R�=
nܸ�H��wޡ�e /�XHà9���ꘘ�̞=��
���-�k���Ƣ�L{�1�.]����㌡4D&��>���O?e,Φ�����'���빖&r��if����$7��zJ�7i��;X������Ҟb,׺S�B�6�o��
��{����w����:2���ᣭ��/�/b�>��%$dB�"Z���4�|.��
h=��ְE�ǣ�1�4�]�T����MM�W���X��6~��s�1����R3�9(��(*%�Go)*%}��6f��l'�9����trr@�TCh����L"�q�-ʎ�S��g���k4�+*����Rk��@KHL@��]�`�������r777�-�P	/LGFF����d<c���t��������
�z����1����:��D��S�4C������>�M"v�fp@{4�x=q75y=22�����[��vXXXVVVoo�Rv��|ytf��,]|{��u��5�Μ���ኪ�7��o=zt����U�)�=�ܿ�����@O@�ƞ�p�F��JL������%@KH�4��˃���@�	��H�?�}n�λ��"ZBB��@�3^����%:h�~?
L$�y��и0�y#�pg_�"Z��;�,�<��
����n�&�F!r�!A�QQ� �oQD^E�o��[5��F�WmLb5�Բ��7Soa�@L�
ߧ�������?><-��7GDDp��\�S��h`�"Ln������!11���5iii��aaa#;��j(r�9��:��<n�8������ܹ�w"�����>�F�o�&��� �P���ل�G�L��xoqW�1x��V%�\���K��:ӟ�[u
��_<}ʥ�w�

S��)�����YtL\Ff�:����x�g�w��{�����t�ᣠ�lB(Z$Z$z�*����'S"8�-E�H$�����O���A����	 �3�}&@�t�[}�>S��z���+Y�@�h'''�$/��f�/>e��:��u�CBB��F
BK-���GEE�K�uM���;+2�u떷�7�
@�݁!�H�D��c*sss����^�*���z�2%0tqq1`��lP;~j*�*����9���T��]"8`�SNTq�A[�s�	�b�=kj���������~~��
@�@��7|8p���7;��@�O���Xڎ��s�4��q���H;ǘ��^�|���<��f��8�(#;�C$-���ǒ�4}9������-�R@�D"ل�g��'m����L�-a�/����[}=����>���Y�@�h8/Ĺ��Hae6��tkk+2���mԇ��4p�����:  @����D��)b�B6$�Rh:��L��k��~ݺu۶m

eSD��ȌO�ƃ0�6��`���'R+@��̟Ir��9��c��O-��:��
^���Ve�V�&���r�K=�--Z\��r�H��ur����O����o��ļe[�J-G�ė�[�.t��7�US[�RG���ҝ��|�W�O:�Z64�򞿨��d�H$Z��lR�	a/�fV���~:���z��0�_���ܔqzҋ����w�8|wM,�;&@��D��
�����S��� E�;)��ߵ?�ᙬ�D�_Р��tUU��Ğ���^ P/���T�5��,��]�4�Z�ߓ�e�%T�h�ؙU����T��8t�tmm�j�‰�iRAX�iD�z�24�M�jɔ�K|Gss3�999��59�?�����{T���/8�}� ��e6����{N�c_��S�q��~�y�nh�^>�yxi��?}@�(U��:�
h�j��DM����@�Dot@���@җ3�{	�iiamKy�'s�B~G��0�c��d7�N�L}��5#�^�zyo
�5�u:����s����3�̬~̓�U[��>d�ߊUV6�_�h�H��-�n4"$����R��������	��x!�������IՀ���n���ptt8p``` �d-/3�pdh2�	�����������4 փaI��1MwmB�9�� �����2��f�C9n޼��S��h�"��L�`��Ȝ	�P���妦�̜=I�JC�!�܎�kp����%�`��ի��7\��Aϫ���x��ʇ��+O��aSZ�h�5i��
���^�}����L��NM���/$�m	����꫇"�h����<*����Dp@Eݦ��),ݰ5���|�賱����9��ӊ�O���+=^�]P��&�e�ISy@��<���"c��]�����E����|cGT]z��qf��]w��Z�������"Z�H$�"84����"�]I���w[��B�9���#�F����4[�Ariå���ߠ�����DX���555q�Ќ�W�r
���}iG�kC�MLL���T.3y�l�C3���8�L&����;��
���A����&L��8�����ɲm����ezn85Vk���qm�&��(���o��.ď?�����z�ŋ�-j�9H�>�����:г�#/_Q�.^2�/0�=�%<2�?�e��Z�5��nj��:D"�"��V��`���q4�i�.�mlޱ+��<J
��"�ͬ�8�`��������Wr�����fjX��j@��07���*k�O����OL>p(]w�ll��my�Z��3��Ө����j,�}lJ��}t���/V�d՗.FC���ԫ�k���|����8W�X����G{pU�%���!,j�Cģ��΁z-��������l�a@�������*�D��[|c]D���?��f�/_�
�r�J�L���[�ҥK1,s
5f�����l�2��K�,!��…
(�&��2�Z��k���%_I���tt�^*����\��L)��L'''+(L����y̟?������#w�գ݋�
///III�%�.��|�eڸ�I�pww���	�Q��ӂs٢�x��=��ֆ�Jkk���nU��h2�1J�޻�֜Ά��l`x��5�t����>����������!	�����?ݕZt�������#�22�n&Lv��i�>c΄)��:�)����5��f���5��R`(,����c�\GgWN͆�h��v�+]�{agnm;�e��j7j3��Փ[�wr�p5�:r�cZNA��3a�G�w��S	�=ZFe�gk��	������܂�:LRZ����)���Z���љ9[َe?A�m��O��A�]�h7���܊���'x̜3�͓�C:�H;&3��mKc^�V&N��0Ʌ�
U�F�9L���1��f��	oo�gk�U���{�i�3��[�a�*WZ�s�����}�M:|$Հ̖��2x&9��6�M-�@�����
�"�H�K��nh��!�K.��О��u��!!Ґ.� V;�F������Gڀژ�������KKG�%��]
���[2%jxF���ٮ@�F�{Wp.��A�+?�\y����~�)\2��ع]!���	���@�D�1��W??�}<ZhW����Ɯ�58-�`O��1�y���n
���Ow$�hYea�����r7�[��)��$c����J����^l���[�z��)��_|���yE��P��EK��}>��i3f<`��ڰ 4trZ6�~�8��Q�b���]zN��Uki�֥d�U֖W���e�|�.��^��
�\M�Q{R��UGj����6%�¢bF�9�	��]��ݷ��9Z�UPLa��Gy����BƌwڶsWZv>���I���3f���7nex�����'`%Ĝ�!aL�2j܄�]��C�8x�!�Cc��B���������P��NSV�h���2���m/D"�H�Ǖ�'���fK����[�R�y}ʌ8��@g}�-���B��k�Uw��E�E���sW�۾�f��;��/�
8^s���)=�0��L���u�g8ra�q�0~d𮛗w��j����8]�W`�z�����L����K�.,9Qw��d7[I=��Ԏ����L�2��$x��O6��_����f�qG,ո��O�9^�)ӀkW�6v4����;iHr���C�#w�5^�2���O����7nil�@{8uRJ<,���L�}��m}��"\{��!@�={ãc0v����4����'Ƥ��%xtt��B����r���y�#���w��^s>en�u�x��͙UT�>^l^q��؄��:��ܚ-��1����Ā�O�9�i{�2M�-����Z$�D����"Z�H�h���&%�e�@00���:1��������M�^���^����19-���̹�v}��M����B�P,��� �u�`��`�*<�Љ��<��ٸ��+�ցP���?`8�c&P5+����E������kR�D�Ͱ{�oj����x
Ĺ~�o�@j�2w��0����Kd�$�0�Â�A��it�Ͱ]��Y������3��ׅlOo�Fǥ�Ab���
���.�j����5�%ʙJ����&��B�H��th���'OJ�5#3[1��zR��~;�z@�y'��m���-a���l�`V��i��F���f�t	SF�u �C�h�H�"�H$�@�--��w��#��z��Olz�9�����&Lv�;}6:.�Lj����
L��R�a#<��g����?0��8�/�T�e:.]̅ϒi�3:��;��bJ`�1e���T�
ޅ��Y��:��K��������ɩ0w�P�`ƯM�b!6!����L�u}����KWЋ��L�<nG�t�@g�/�b�
@��4Ḽ��m���y�0e�Б�����Zs$3�L����K8�CA�`k9x9P{nD�4�9w!Fl�Ï>	��il�Z�v��;��Ӳ�:8���{g�T�u��?�?���im]�&�3������T�U�%bD%L�V4*�K]и�Ԉ�]@�� �lŵ�m��%Vq�iG�8��p:7�	�Z�}�9Ü�}g���\���@K�2�%I�$I�����%I��7��g@�'L��%�����/.%k�����7`W�
��Ar*�9��q7C��I<1�]�,��jR5�&�Xg�I���M��t&�B�ČGO�t��6����;i�;���Fp��--�)��<,��%�k@�t��B�d�z̀O�ťH�`L�b�f%3��1C��m���@�qQ����x
�cg�m���r�8�l����d�E0��45@vQ�IS���d�~cBI&ٲ3î;��l����h�_{x@@K�"8$I�$I�����%�蚚Ep�X4ڸ�qskĨ@L�`�~�z�_���P�/ZVXz�'N����dW%m$H�3�&��r��[x�lf�_��q��@������;�S��ؐ&��&L����"�EN��%H��d@C���`d�,�
Ь�[�1a���@C~Id6�;qj��@�[h`:+y�?(#�Б����l#(���<'a1�"q�ٰ�+VMN���h怞�2��G��)0�C��]^��̈́���[ZZ�l@WUU)�C�$I����.����/��5�c�$-I�|K�j�����>C
����UI�a����8���x�g��o�Q�;:h,8��7ބ�2а],�t�%������B�
�=!(��4j��{����^�{9:���<c�\�
B4,x����钼y�� Z����Bb1Ȫ����n=^�����A�'N�m���}F��\�]��fO��#�u�#��{��M[z9�n��Q�a,x{z��P�3��-j�`�N.--I���η�В$I�$-�ttii�P��]�
�$-I�t@����������v@��]�-���t@S'8"��,�uѲ8"/'�f
���w�Ē��<x�4��O��A�t�xô}@��S�Q����L�U�?�?ȳ)�f���cb����!eK�¥��l
��~����k}����0��c���9��}��͘X��`�
h8kNX��a��%g/Ztə�c#'M4� ��{é�_��K��ĕ�_��7 �s����qóp<#.l�q��2�Y�������&9eLX�?�?��"��M��3��?��QL��?'�Щ;Ҕ--I��I���$I��6������

?�w��轖�������{�A��%�����!�?@C�$,w�L}�{	&�
��M��c8)�@��k6p7��4��h^�r�鈯8��#}�ˬy��͚�
���8g�;�����X���>�w�
o��9qʎ�L`.8���Pv���Û[L��~j,�E
���g� 3A�j(6����m|td��<λ�C�5�jH.95��=&4�5���S�S�E�΋W��%3/)ب߈�a1Q�o��:��x}����hV�R9���Φ1S`O�Z��#*L�f.I\���yN~Iʶ݄xp����&7̀ΰJ޼�.�В�I�$I������w�d��~��q�~Hn{�����]�Uw�A��%��'�*ݺC)�e�&?�B����[`S>2��#��v�����)|.�^\ẓ��݇���5y*�f&��
��d�{�Ri�3�#t?g�:h1>XL�놽�WT
�fv�S�(�u���m:�4�yp��nZ�gg.�֖|��4[�D4kVhl�����c\�/�ߺ]����lkވ�K���0_&��e3�Y�)�O�+--I:�P�$I��g-�;�������Oк��K���˯�6�"|��
�u8BE�u�T*+?+/��Z>l��u�V���_�v��->6������k�++��pׯ3`�d���ڥ���ږ#8����jMKS�խw�85ol��ڏ�l.Z����£��,[�嫓pU�M�Wm:���w.ϸ����#�R��9�=�Z��uZ���#�<�a�5�<��?j4����5}����%��hҵ䀖$I�������~���C/�N�i{zd���4<Q[?�4�DnŽ{�;֖��˗ѡ��iԋ�Ow��ss���	����B�.�o&%o54�e��r�����������]i�U�ƕ��:��B�ο{��;�OI�J�gN����%-�ד���)t3��n߁1�qD�z.>{���4��|���0?���s�fphI���W;ߋВ$I��v��;w���7�czF��=6R~���={�睜]vn֙��,o��}.�{����/]�&o߹�zAaA�N����2������]�6l4���@�C�#3-�	�y=�s���3w�&m���>4<�f��
��&y<'�A�y	@K��}��-Com�B_��.�Gk|�C|�2	��"V�D?��H�p:��>6����$I�$I�$=K�k7�������l����+�q�Tm�#K~mm���?��O@��cW�����;��UTV���V\w�
X�s�.���y��s��ze��~���Ϫ�_��6����ܭ����ݽ�c��$-)�����6h�C��\yv�������W�$�BI�$I���~�
&_���<�Sп��mcJj������|��\uu���[PX���k�/\�x���_�������V\rڮ�Ê�4��G;{�ww15�qǯ]���N靴i6o+VI�Ǧ�����l.X�1�Z󲨔��R^F*-��9�N�gs���sȕ��y����t�9��Κ�.�����4���*9؟/!�7�K��Hd�
��hw:�L@k�2�z
壠�<��?h}�&�p,S_1����~��}�����В�2��Ji�,�&@�
�N@KΒK�&@s��e�`Xt`pX�\H�#�A����f�Ś0-qUVv{ǛƦf��<ki��Oâ�V+G��F��ڻ���/!��&@s�X�@���L5h�	�]�1G��ҹ�~����)�=v��{�����k�!*�w�sۋ��.�-5}�,�p8?*���9;�� @���-��4.! @���eK_�lS�Vi���)��ࡷ�fy޶s�XS��Jw��P^���X��>E�C"&feo�>͝:sv�	i�VV�,-�HN[8m֜�IS� @èК�q	�'@��_:uz�C��h�\$@1@7<m2ENLL�g���;|���yR��6��Ш SdΖm2ˬt_\�������q�DŽ��@�[�Y�\n��:8g��x�޳������HVp�
�hY魷~��	h����i��b��jp�����E�Z�^zt�%�7�k�8ߨ�}�䪴c�ۭ|Hqx����Z�|������W	����g-���.\.�������|J��	�������=8�ˇ
eع��=�t��-������K����lQ�Gj��������������7a�C��%��A,^�dZ���|��񈑣�+��_)�p9$"6:.a��+W�����;~��0<�2�4�
� ���	h����];{��l�*]�];v��bU�����]����efe�؝_Yu���a�	hyJ��[&�����d�`(z���؏��O}}��Lh:@k��
.!��������=EU�q�_覻n{Sy�]��7��eaq�WAD���2CK��ImS���|�@
0�su4�)'�h&GC�"/�ƫ.�>v�ƱH�y�7;�s����p���]4`��R�^)�A����h4	�1�o���44P
���45�ih4<�=::J	4 ��"o�r��,��ݻ�_�t�˔���!��ix���@@�|D�߼y��q��hS�ѱ�?�"	hŤ¹�4	h�*��Z$��0O�7~���c͇H@Ch}S%8�t�)9��:9О����Q��脤Y�(&qatB��k
�kYg�3��h�Ѯ�"	h4�G�销�����8�G:�C@C�$��޽�Z��<m��M}�G
�q���9!))5�UTR�+��΍5%k��0}s�5�	I���l�ߵ75#[�����6��sOCFv��kMkP�v�����}�$��h��в'4}x��k�h� ��O�(���B@+��-�������!����}ß�\�~�cKC�����>{n�!�e���.oy����+�,���Idw����ǟ=�J4OSa볣���wWk�ox92n&�9ޒ�.*��������m�?\�������h4%�oݺE	���'::�y�����'�ߟ@@�*���0/��%'�Ut�z]��ۆ��Ɩ��S�C�K���n��3
8b���6Y�BG5��76�
nU�/���V{�'���/��7����:zr��7��U�jU��8M��:��HJI�@o?�YDL��*���w���g9tT�i��
e���5n�֎��丌^��׮����>��z����L՞��=
������f�M�ЍR��*4௰��)K`n�ׯ�}e���I��d###h��;w�B#�o�ڧ/�W�]���}�_g�f.s��*
}�o@&W�ȇ�{˫�+V�g�ʓ$����ܥ�5no�NN�X�_Tb���X��V���T*Y'?2��e��gE�U|C��EѶ�%�2�G:N�-��"�Y�\_b�b�D-��N^�������^�sf�HG�r�/��T���6{�NP��*�2L6�
b������]^�+�Z���?j��j��x�-7ߣќ�^����5�qW�H
�����NL�V��
�e���d�5K��@{�)�*'�^1���Dkd�YYo�I�1in#�m�Y�t;�h^cUy�Z
�Z�:���4���V������n4�����
��Z�L���=�_\#�RD�%5���	U��t8-)i����ށ!��8���W_�7-[Z��^���_}-��q�ѽ�{��f�L����0>�LU&�ո�B��H@V�WAA����MֆDh�]�fi(JL����f���Y>$�2��T1?9)�i'3j�P��-���s�y�*��<y�Qgwo", �9�G��ؓ�t

�0PS���v&ML�E�/[���UU0Y�@�Qq��?��~��J^����9!W������*4*\����QmQ9��\�bc4
��k�R]�`�4RLS['L�Tw�����o�dz��8W����z�w�;�;�
1��j���s,�������3`�+,�Z��{F��5yV����v;	�b��<Un6�D
s��B�ޚ�b��w;�ڧ�����UU[�=`5�]fn$��@��$�C$�D"�H��'�~���76nR_��ٽ�Si�>DJ��'���y��7м��Ƭ����QТEةH��.y���;��u@����|
�ah/d8��4�{������B��E��QH1��0��hb2s��*�%�X����
O<�iYy�7߃\RI�`��Jk��vo{�� �W9�͇S�gn����
��tS$�4�v����'�f��p��p���3��-
?z�����F\�ֶ�
�W	����hl�53��B}M}�‚qÈ/6����>Ďp�,maFn~jfns{�����-�<��3�H�>WQ]T^����G��O�e�w]c�lq��S鶎;�c��8�ڊ�ش���Kt5<�ξA.<�9�_�Dn���/.����)��!��$��-IB�H$�D"���w�t�膦f>��W^��n^����Ze���ޟ�~#��svvvGG��E��}�޽���
O��bㅄ�y��+0N�\��%L#$*.5+p���+_^�
�
��8� �_l���MHN]�v<?2T$M䅭�.|���]�����V�%�y�i��p��H�v���0_�΄$Q�}ّ_����ȁ=�q�[ rJjs0
8vر�p]C�R6�h�@_jjek�*b�ƕ���ŅT�|��u��2
2�a�rW����E�h��yv�
^���|&'��?�̭�ǰx^a)SV����QЬ���뷒Ng���j���%���\�����{G��r0:�j�J8���PXZ�N��}c�z��E�%�I��H$�D"���x����k��6>������W�
jhdt��?���o^$�-���999����lKB���T���Q��ZT�ؗ���GA�+�lع�현$�mjF�gnT�qP5`_녽`��lt���ӳ�\=aӝ}�Yy�\�ŵ��J=t�g:�hmq�и�cO*G0X��`7nb�-���a����@�f�lk�e)rB0D�U?@mQ�n���
_2�RyLB2�r�E0��D��)�<Ot�!(,��@��
@�f)|�W:zw��
%�q�J��$M�)s����s�!�\�h�H�H$�D"��i�V>G�����?�wO����H��43GFF4
���P�H��̀V�m˶Nj�L�@�3�ʀQ������m�������}�����|��fȮ²�7���37	���27a4
���%\�!�����9h��}md��7[Dp$�f^�������j#AS7oE�(G0�Ҋ�J����Y�[c�*���
��@�}��b�	���ЬC�A�E�Р#"++��������M�L�'�����	@�O9��g�q=�:� 7~g�3J1��`s��@C�����.�NN"�h�"��!"�H$�D�@��7�!�oͼ���\W���΋D�@�R}&y�3x�3?���K�H"8[Ǔh�j���\9����{�i��Mל=��~%�����r�v `��q𚔉��paOޘ#pL�=~���A�dSP�E¶�k�\X-��e_�y`s[7��9�����PA����*!~�@3d��!��X�8��F�m�͐��43�l�>��
 ���Ă�0.)���d�����`x�p�yg���I���@�8u�-��=��{�x4Kasvv?�@o�wR�?8\�h��%��	�H$�D"�3��@�FHD4o�Vmx��q�ּH�4o��T����w��-�&��?��WT�5�[�=`����b�&WO_<�`ߣ	Ʉ>���&���	WM��c;0@gp*��HƳL2F���ZR5���$�e�ti��b�ٖ2��*Y���ܹ�"�Pc�4��3������ք&�s��ő��ŝ�H �����
��d�w�C�5�._���Ca�ɀf_<���
����<A�3�E��M�G��웙��LF�b�I;��C�	�-Z$=���/��H$�D"ѳ�S����t��ʃã�E����@�3�x�P��>�H�����-648+Џ
�â��8����"�精��43���!���%�
���CׂzI7f���Ӵ���܉��rII����
�e�k�uB��_j��LHM�h�hh��Ҡ/0,
���qb�-ں��L��	��߱�6���n�7�8�x���N4HZhCkW[׵�zھ�R����;
Y�u�W �.���m�L�O3|������o"�'�o��t5�����{Ya�	#90�j�@f^O���I������=L�4{��J�jz��w.�dڪ��Y����`�� l���	�--�t-�"�H$�D�@��?K�*����@/|�Н�=4}}V
������<:/=ͨJ�0�}�>UVV�F�h�h~,U�R΀����{�&��1)�Og�@�u��kl���M���Xp���e�c��;X����Q�'��@[W/_�Tҩ�ξ!:��cC�U)�������|� ���o�`S����. ŧ�5��l�bPLw�pͥF|�dUgpD \��sڍ/H���X�6-��*�����!��h�R䑰hPoA��M&����
=�G�������l�m/(�$������܂�)^%�`��]�27�v���~,�4p��H־�Үb�a��'N��@GUM=C�(M�54�֋�~��E"���D"�H$=1�6MN��l�6�]��'|���??p@����l5�����aX�x'��ޝy���h��g|'���}����IB�"|K��Jǂ��m��|t��/�_�Ҳ���-v��6���k���������� (V��c��=��SK��. WF��ޤ'�ס#vN��j�ɟ�
Y��Ѡm��T�ּN��객��z���W�3�,�q�n�߾g��6�0_Mlc��N�r;
V��N�����h�"�4!�D"�H$=1����âb5y����>��/5π7M�����}("&���y���h��I�P���\XX���d|-Z���?�\ЖO�`5�I� ��<�����Y��	���UCZ-�}�]T�>���L�̝�{?4:G�Y�6z��G��G�E�h�h�h~/
��D"�H�o��0��pr�(.DQQ����A\\�]ڱ�"qP�T�o���A�Bj�[5�&LO��4G1'�W9���R�4���C^:�s��u���S3{��*8}��}��1�޾�Y��&}&�����8Joـn
�ۜ��ڸ���1;���'URq��S�T����v����U!�x0��@h}�L@蛷��?zu�7��@'���g�����Y����@ö�T����6��Mm�*�&����'Μ�pI��0�o�疎Y�;�����;�/_�z�d�щЁ�4ol�}j�}Vh�D����a�t>����?m@�	���hӓ�ڊЧ���@�h���
���������L��@��=�m������@"�Я#��+�K
{֤��П�@�>3e���B��4��|�wJˣS/�/���>�G���~5o�4 �J
nj������xpd.���~�?Ò
h��@�A�h�ӮE
�-e|�?$'��j5.$[(5�f�&��k�L&�#J��m�,..*�2G�J%�N+�6w����I�	�u�����
辞�G	�h�=���rTp�K&R�U}����oN��T\f�N��.|J'���S
�hOe��V�Ry�ܬ��~�#�rYG6n��)��H�}�
Xs���Ug�l@��@` \��W���/����#�M0Lg���I���װ�P)8Ee^U�
hkh���g/�"�f��
.�O��3耶0�f�!�@m9KU�J��h�@����
�d:��sB*8h�@�f�U��0�PKIh��W��{�[�h	x�@f*�����x;�s>�v-��sSіWp�C��Ph`�֞}�4�L@GD��Vp�����@�w��.!@+4�B��)5�`���P	��qZ{D����	�Lo]B���B%�	�K)h:	�3����	h%���+8@��Vh`�־,�	hz���<ϵ�<�n>�6��7M�����7�R�
��!������t��d\-�RK�ήVk��Q3{���@�9����ӭ�v�}y}k�&��x�:��7�
��@�l���k��{g�SU���%��ֲD
�
E�Q�y��'PD@q�E�Q@E�D��R�Sm�@/�0�/��vrBBw8P��������k����r����˻�(���>}��V�����r<�i���o�¢0���%������6���]�Ԛw�������^ҕ-Z�(�@��	Z�B!�B��C�E����#�-�u��#��w)�[��$���x�z�Ϳ^��eb�uϳ��ʚ�o�;-�����/���jlR��w{�F&g+��)�:H��-Za�J���
/~�yu���@�t����������ʂ�X���8VzKh�-0Qͮ�D�Xi���뻄�K�G��5=V��
C��k}Biiиm�fd�L64���>v"������ѣ;��ⓑ���F�3��sp��m��G'����˨��)'�hfTRc�(��kȀ�s�Pv�T�y�[��ߚ_���!�i	�B�5��#/
d�oߢG�{��Uw����sə25��i�P`EdY�.Y��e���[�Hc:�ht�
# }��D[4 A��'�p�ƙ6m~@n����ӓ�HDžic��'�ߜ��עc����2{�-8V�-0VK��MTz��D��1Q�7V�ԉ�
�40��՜����k�-A�/���K��������3��~������-����ʿ%�42�S��E��<��Sҏ��\,��a�͜��<�_�yg|�U��$S��ޱIi��%���E��/�s�+�5W�4�>M@{�ݾ�G���]��>��'�&�ƭj�����B�fd���14n�!L{�gϥcFf6�4na	�x(#��$��ـ�&�z��M=��_\�s:?p�4h	�B�5�����?X)��3gr��g�F�L
̩7��`�\8V�5V+Pu�LT
�&�
MT
��yKpWo�
���ŗ3*��Ku��J�of@<!��}���m�^�}��kk[zq����x,.9�4�ؤ���?N�x>216�����'�X�:^�^�lx�h�p�‰������F'�9825:��qO����-��i������P4 ��(���hʈ��#Rs�N����co�~na}��qxb�Lmzr}�jk['���α�W|:}9gf��f�"
Z�b����������z�w��Џ����~4�%�K��׿��Jo	��_U�l�	b��̀F�Fh6գ##.�O��L���}�6e�R�2�N!O�{��;q���������H�!��#�H����v�fU���Jk;'/_�gd↖��������4��k77Y�&��V[g��?��g"L���2�;�-ұc��dd��et� �D��%BLҡ��\4��ȹ��u/K�B!�B!��7"zEh�s���s��������چ�چftސ1ް���I�3��D���/�hhǞ��-W߽��n�����I�h�u��MXt<��N���IĂ�-���::1��zE-�?�Ǔ����%�����d@c����{���h�P~����웜�s����P�B!�B!��-f�aI5��c$��M[���b�|�N�����F8����$N���L�Ec?@3|�B���4��<zBc�W߽�^�L�wGU�\��3����Ц��㤁x�?"���Jݽ֖����gXKc�a�u�w@���~ұ��
U�7�=m����Α\i9�z�0�@�~�7���W�q[�h!�B!�B!$@[V��, @{V74c✒�IM��V������;uM��OG��y�/�uD\�0v��46WV�����$@WT׻��B}�S�wޮi@D��z0���J��h���k��i�����K��#�C�kGSk�.�����&��������&�T�<�%@!�B!�B!z%,8�;��\��y�����@���S���l$H�2�1���F���;$"�ŝUw�#�h\/
.\�7Y۝-,᲼�v�_0i�tG_6e@�I`{�S���j,�1}F�v߽g��ϗ��	D
��;�Sa����Ҟ>��n�<LMC3-Ƀ��C��mj����ƞ�����,�Y�B!�B!��WG���Ե�*�b�0�..��th�����KNC8F)F����74��ɂ#<:��d��G8�;w�����1}
���m�IÔ�&��3$)�̞�xe`�|��.Ož��o�.��Kjli�y��F+����;z�c�a�����fu=��ߟ�uv�|�i��wq�����p�L��h!�B!��޽�T�a�9aE���D݈�:8V�2�.V]��	Q�0H#�F��P2�f���3�@o�rЍ�� z��}�Zg�������r蹹�E��{&_�M)qR�	F��$��.]mji��o�'�2'w.�ddMZ6'�N��JO��M��ޓg�´k��y�EN�<�������qN�t�RR����y�]�K���w�h�cd6���^L���t{�^�I��pO�ʞO�����̇���z:5ԙJV>9�.ΚWo?�G�n��e�����Zpl����t�����#�C�)θV�;{1�6*kZ�7���RO?��,8v�ܑ��1c݆�ɯW5�����?<|w�Z;�Pi��R�<rw<���ZV�8s���-Qv}p�Pω�}�O^'���;���F��@wo���GǮ�uTk����K�2_o
��	�"�D�%t��1S{:�r�l�J��o��G�V��y�ХЋ����7�#m4V4��wkRn��7}�s�P8+���EQF��K+��ȝ4��&Y���u.�}�,�-n��sv[xP��e+�<:��U��xD~R,.ΐ������l��Y
��[p�X]�Ȟ��]�⢰�g�����w
�@]~�M��khi�!�tY�hC
h�!�@ ��G_B(�6� �.�t�$�6� ��KЛ�5�j�a�@]Zh�!������Ka��C]�:x�]� �Cu�T݂�;d���ϊZ󢠕����2���D�Ê�*K���r�#�B���&�_��gfg����4k@S�� ���ր�3�O0�"��7m	h� ��!�44��MQ���qt�[�<��8@��Z]2N�B����u��]״��m��D;@o�C�%����@��A0<=]�?p��O;.u&���z2::��-��VЬM@ؙ|��ot�ih4��1#v[��}UէZZ��IeЮ�a����<�C�y��~kx��[[�D������"}�7��Fڽ�}3���y����5�)������l�|�c���(-�SQy�����Qa��Pm�JcIiA]}�Ȉ���P˶�uI��?�2�X��dR?��h:��_R��g��^ζ�Ls2�����1M�Ɓ�[�?v�����\N[��;�������U���~,,h�E�v��{_����{�g2>�w �f4E@�/Ŕ��]y�B)��ʽ�UJ�;��t�k"��V��qWy�2�w���u�գyxxu����Z��|61>����^��W�y08�����]�Z��r�ʸU�:PS[�Q�Rf�m<�.��{��N#�:|�ٶ���PF1��R8��>+⏽�Հ�y�^�J�kk?�0�mf&:Pp��Qt�orr�?�'{��e��qM�/1g4^��FE�@)��@E�� -
�!VBi��@��-�P��g��
��2J������w�����?��󼯱&��>"�‖K.�"��(�?��7��1�L�&�|	-��t[����V���Yk�w����j���v��-
v��?��(�������.��
�޷ߩ�Dgݢ�6���.F��qVWE���\���yD@�36�DŽ�Z�����{�Ӌ�[�ś?��jk��z�fI�4�
	}��-���^��R���rr����;�VVRS��{�o^r�j�m����T�[��!��h�H$�D"�H$�)�l�?����k���\�=��
�-���,>���>kk��nГ�#�R���b+*ӢH-�vMY���6��\n�/�՝�~�����.�iEm�7h�;u�KݢI��b�����W�6462Q1ٖ�:o��?�BM#��q^\���D�6ߣ�������3�6��IDp�+��_wuÝ�YV��7��{�/�8�k�nTU��!œ�H#;#h[E���'v��G�J;�N�ET�E�k_�R��?g�"�H$�D"�Ht�t@��Og(�C����a���h��c�G��n���@�D���?Cx{{y�D����'��L9rP��!=� (xRX����W]\���OKW���R�׮� �UV���EXN�ae���>^�;rrɵP�^������2
[�����;/&v��ef����ٳI�|��N�ŋ�������*���)L\{��GǢ1/_�s�1�d^|���W���?#�����
#f�^�_WWS����&��Y27vk�����{��,�DE���'g�*���a���}�I&��w��/��;�<֤�657�
������3��Y���MZ���,�/;:U�׻�-�D"�H$�@?����O����?z��ܵ���۬>^j�7ڐ��e���Y�q�
�j<�u��v@��DݝYw����
`hhy9�j�uk���e\ht�$:�a<>�A\��xxr�᥺������r�¿��$)�
�8<3�EZ:t��ޜ�E?'��\!��G��~P0�l,�.]hBBȸ���:)yq\<��5�t�zƲM�NJĤ
i��u|E]�sr�2��}ԹsL�>>k+o��/���}T�����)��>��Vnq��М�Ș�V&%�tЙ3
@�ee����4>@�^��~��b��Ҳ)#����89,���w��ްK��8)Z$�D"�H$	��Yh��x�}�N�yE���K���-tt���<�u�	tv�	�Kɘ5oVk��v@��D]Jy���ZJ��p<��3Г�j���8������Bа:W0��o���؄U�4�HI����Kqx�f�zA!���x8��w��KK�zjd]���U���9�Wgצ�����(��n;*(�{�j���b�0�7�ȡ��h�bno�?u���aw��4�>̵ٍ�Zh�1���g���]YW��@�]��!��k�eF&-n'[�}A��<�y�h�H$�D"�H$���w��m�Sf���~[���ңq�k6ZN3����<4*&�����35�����*��#�ܨ{~;�;ӢU�������jl���Uuӡ�j�&���@�D=@���p�\V^|�L��ӗ4H�Y�¦!�}|ağ&&)����G�|�N�V�/:8��A,2���d )�^�0�*l
V�yI� �Z-�/�^��sW�(<�5W��A�����Pa�:�~�dܒ�MFQ�/8:��������F���8Z��摽1�Ug�^�to��,hˮ��q~�����]+����q���+4{��}����,�"�H$�D"�H�S���
۝=oQRzNLb���e}��3`�܅KR��A/ZnFb�j��V�[L�e�u�n�=5�y������m�ے����0�Qc'��߼r��#F�8b��U���X3�Ƶ�,����m-��?xl�5���~e�o�RSF*�LF��v��MLW[�waqL�-��XI@�_�&����ğ�b%�GFѥ�IX��V�5~d�ƭ�F��0e�A�dDP�GB���B�3,��
�����絇B
S&����C�e4��"�:��>PX�ȷ=<�6���p����K? PM�;���QV]
�m;�8���sƥKdz��U��urJ��<�����A7��0�Dp�:R�oݻ7-"�Ws,)5	�.��Bϛ����ĕp"�.Z$�D"�H$	��}Dp<Y4~�Ú���`��ҶÑm�͙�D�`\dtBJf�[t��8���-7[����o��������3�?$2-��hC#@6D���9s�
��<
���4�\�Z�n�>��#(��������_l��0��l�|++�����x�ς@��z�Z4@SE^��b���>��)�PW�NJ2��R}����IaP�.���_��K�3��tf:1`�`t��d��&0�� ڶ^�ꞽ��h�¯���r@?��WQ���L�4.����x����%;|����m^���~D6����!�0z��ɚ�kq~Uռ�p͑�
@�m�앛�zl�uu+����Qɵk�b���W�.�||\ᘵձ�K�����<��n�g@�D"�H$�D"�O?��ȯ���s�\��{m;�d�λ���&��;�ŧ<�x��8#��0fm�|�l�E�۬R��b��l��,^���7{��h�-#�(5+�b�0[�!+�xۮ=o��u@�0���#�x	g����b-�R��,��/��MJ�d�p�٨qF���=��-�����#���_p7�Ο�_|�'h‘U;v/`��@m��X���ѦK

�h�0fa��@X�*�U}�!�h�A�P�fJ1��n�-.��
���X�|��3�����yT#�h��0����A�~/9:qn!<��B-[�6h5)�Ǣ�jVܸAv+��˴�C�%����?�UVr�"l}mJ*[���O��zP2���Gg}��53�R_���V<l�Z�H$�D"�H$���O���\^�n��˄h�I��I�&�W?85�SfM34T�
�����<n��e+�!�$i@�;�����{��=d�]z�
s`�ʀ�9g���I�[�Ϛ�v߁�Vcv�9`K��M_p�u���P��u�	���,X�h��G	ʙ~�"� c|���'ڣ��	2�u*<Jq�&��r/_&΢��gK�`e�m%�V�S&zbF�X-d��Q�*��Asba}c#�e����]/o�ـCIigM^b�Ł��e�عGs�aEm��n�s ���85dګ��ۏ�;����]y������x��kR�kb��b�ac�c�.s"o���.����{1�w���T��m�`q�Vq%\l���q�@��]������eE]_�7�'EfH�fo���%|���"�H$�D"�H�S������^f�-���8*���Q1��QC�
`�*9��hږ�>��1	�����@d���)�M��
?yzDt����OPXP��	����EFǏ��)=m����4i��S��\��@g��C�Ȍ.(=�`�)����X�h��g�ECWIgC6A�
:���#��y{��4��#��b��Ur�1�O۷��A�q0��8�(��ҙi�Yg1�Z��D�,,��v�,;�e���9�Z�7^wu#3�%�˅}���H�paUaSA1t����;��\ٽs._���e��z���"�Y�jp�W�]ȕ��ܼ{��&��6~j��_.0�����2
2@�f��,�RY����jC�Ȁ��aᜎ�c�#g���� 3z{v�Y!�O�u��MU�N��
�~���D�f�|�,�8�?��j3KLBH!�
I������()Ä1E200�`isF�J1�WR�m�����^%n�HY��r�N�q6!׵{g�y���އ�]��s�������?����ڽd@����o |Q̴<'��df�4>#�Q��ˏ?Any�M���	��9�uvnκ���7�W��4T��e���.l��![����P<"�����;�5��u
�����D���I)�E@����
X����)L0g>�֎`���uA��=��]�ʄ[8�Ɂ�
���S�c��&�㗑�޺y���N��إ�@c��?U��(�WH�S����'��"��h�Z&�o�'����M3��$u\�q���VG�G�"82��%�y�ͨ�Q���ol�����>�����wDDDDDDг�B�.z��z�YHC4��%,Y�L{�Q���_LLM�(�Q�d5_�����]�Ȃĸ�lj��gW�"6�S
�f���Xl�8��??Ik�mU�爀�)XKj�?�9E���l�e-fZYy�Z�����#L1��$i�)�gLB3,���4�Q���`�#���-"""""
�'�c?��A�Ek�aڙ�>>^X�!%-cuц]��
���d)�NH�+��
�.^9�iB�2��
\$CMKu��b4��I��ɋ�v=N4!ѴHS�܂�>տrM�[��N���Oef��76��?_��L�\~��D��V@��]Ƃ>���X`Q��0iDC8�k�U���@�?DDDDDD�vth��Z�Glƹ���~3D�2�����ϕl��h�2���1���Ώ�^f&�
V��9O�2Oi^FF_�q�����b�kj�x*�tib:p�yk���]��؉�s�����S�[M�uZ�r��~�m�Z-"S�;�:�׮�:2☮A;�%�q������z�e@���0�����?h:ر���j�n����ILM�V��fd��8댬�����~m]�6����%)��g����k�^��vi����ٷ�Kea9uJ6�R�}gZF׏�'qz�5�xj
VT�$�����5�{�ݿ,+�ֳ^+��"2U��t�}�쀎�BFD
��+����OИi:���܉�~��841�
Ҫ�S����S��9�gȠ�s�13���0B��s�-df��
f�:�g�ZDDDDDDDD�3X@����O�u���e2�Vm֫^�ZDDDDDDDD�k��u(�EDDDDDDDD�E�ڡ�Q@O�����t��ٹ�8+�
h�TEp��P@�_�ݱ
�0E��R@CO���’�&�E�;���"�]�#�
h�@��B�h�}n@;�a4�-�h�@��:���m4��	�4�'8V�~�y	�&@�]��
h�@��
�sN�h�+tf��3�h�c�^_�
8��9��s�G�sN7o��K�2���F� �f`�V���%�lYv}c�����O���*Ⱦ�9��s��_��}�[p�4�
��9@��A�������x	!�
�Od4�A��'�B4�
�O$@'�B{�A#�X��̽�ieZy��|�%@�@�>�Z7Q��W:Z�VN�e�ٜ�6�+�X�/�5]�/*�U�:v�Р	�h�Se�-�UXR���Ec#��a3tlFu]S�X�~����Jc�u�����r}s��A;R>��	� @��V�r܇���#'P]�yn~c�����:X���խ��
���j���O]�u3'�b�����N˵�
б�����+��3��G���:�}/&�Ա���5�
���#��֜,W�?PU��Tܾ�`qm{`d�W,��AMH�g[n��8���4q�g�����k��g6z6��Ɔ��n6��P���ꅕ���M�L��aZ����V���_�G8s=:5�+t���4?GOїq�|&@�@�>�=�M���~����ƹt{ǭ�������&%�����*��'��GQm�l*�J������w|*��486���e��=�uq�����~�a��̝��[l�ܦbkqt$6<=���wz����tGv�������QOQ��e��z��ԫ��V��&@���ޙYU�y�efR��L2�ɤj�Lf�T�d�b������T\����(��!�
�*�4�l
t����4�
t�� �Ҁ�޽�3��~��k?:ڙ��|u���9��s���]G�9r�ȑ#G�9��@�A}��_|uF�Д�P`���-ȉ��`q���q.*Y>r����{�U��e]\�|�‘�'��;�~��2�tǮ=iC45=�N��
��n=A�A���ɤ��X2f�Ա��J���2�ti2�G��P\��e�iָi�E˸S�N]:f\�p���ȑ#G�9r�ȑ#G�9r����/!������
��/5~������;w����]�.��"��o�/Y�=<����R���/1���<�u���h�ĵ7�����Ͱ}���Ș�����aB	��_��[��2j�X��G�͞7q��F�_�7	�
�ٽ����v���9?�~�?	Gg$�$�0��;l9��w޳�rtF�r�W�����"$I+L�[�웪�G~��f,}e�����p����pG�9r�ȑ#@Gj@#R�d@�e�y!a���M@�4b�7�;��z�?��<�1����pq�����Uʀ&���W[qN3����CAQI�7ߩ��M��7��<b\*D3D��Iw��)KMv4Yؼ�u�����%��v�#G+�3A<��}y�#�-�?�H&�ܘ�AE�����i5@� 8s�?��w␿{�whs�"Ş�{V�{Va��Ljճ�@�O&�x�8��de1�Վi̕���V����86w����so��jy�3	?��[�o����|��/���SA��6$��'��K�}_���[�#;�����e����.�ĩ�.�Iք�Ķ�S5��!��9r�ȑ#G��@�����p۷�����Anr��.��Z�����:r%2n��nJ?���@�g����7,^�j��)']����O6朖�}�3��o�	�6yͽ�g�]�Py#+;g����?T��
�9y�y����h@;rt!hK�l�����‘�M�7��҆�
U����-��zAQˠ�c�������a�����v��Em�%��S'���%�������}'��1�U���`q�/��#��Z�f���������;���ٞ1�P�	�xv�����e;��,��أ����yz��M��ܬ���Y�9�XZ�Y��]��0�����`~K�rXU����5o��J`���F��o�dv��t.�d��lۘ�֐;v�Ol��Y?ZLq��v�ö{̬�,���M,�Ǻ�o�\�:�:gQ�Ƭ$����1��K�v4K�؏bfk~�aJ��(��
��a;�8Gv⅚�I`�]��6+F�_�8r�ȑ#G��5�k2���&�
�K?�ؕGp#��{�Q�y̤i7�vǧ}�xz�=�h��4�,*]Fi�J4�)�����(Ӓ���jMF3��=�pr~��!9�b��yȈ�$A���ˮ�����@�ޠծ�������_y��\iߍ٬��_�5��7cv̝���ȝϳm��� f����h��<
L�f_iߦ��6z�~�v�%m3�r��z3r���c��g�
���w��Q�&X�1�y���{�o��Q�0�1;��=�-XՒ0�/��0 ٚ���U�4�s��zV�~q��&͌f�7��9h#~���&684�|\b)����#
�}?��-cfiXEDR[uM٪:Ư���ڑ���ҟ~��j@�o@��<�l����y��KeV�C���#\+z�&4�y�ݎ�Z��v"��A�6�{<*�J�b@�D׹�y��R�q�W}���#nͺ�᷋@�Rno��}�{���W�`�T�5�6�
&�Ҥ{'���J��+;*�l�ײ��R�G>��O������<皟�^M�on��#G�9��@�d
hr��!*5�G�gPc`�盽Z0oQ�!�A��~܉zЀȜ�MSC�zД�x�f4�Tzނ�ev�p�вg��s�K�4oAJ5�2��j�|��y�a#����%���i�,ʀ�<�z఑�F��v��9�`�u<�TĄ	*��MSjw{��C��l���_�P�&�h��	��Yr�6�7�3��fI'�%s�C���Y�
8�|1�����e� �����	�
_D��
;h��������"��V�/�E�"Vr$�U��ڬ��l\F׾A���Z���2/?�B�����bϜ�Хr�m�)�M���(Ê괌xhY���NqV�g�O%ñ�z�gf}�wx{�f���| ��G&q�Y���x��):�a��O�t�%���\@��g�U��ت�:�:���P�S�T�S�
�iA�G�J��j)`�LJ�L�����r�eԿ0��^�Q�K���QL�geE/<���)��0�����y�{5^Ciy��ľ���稟
B=��Gc&��9$"N�MD��#R�9QRI���v���ɾۜ��/,�,_��I�s���>;~9=�M�g�J�+"g�@�H|�Q���h��������M� 2��u�}L<W=���=�'��~Զ��i�G�(�Y))��Ti��l�)��i�va}��7�a��l�Ji���;٧4�{'�F����p���J/[4{�Z�HxDݔ��h��M+�_E<$��m�
m����JR�$��U�6��T�vd�ʍ����Iq����
�=ݰ&m5�BG_�1�ё#G�9rtM���7πnҬŌ9Ew�yA�Ij�7h�S��R[c��T�x��+��
=Ci��Eo����<߽OJBg��R��ʌk��Ϟ��4�q������h�ٽ���I�o���u�]�K�s7~�&/�=a*��ﴹ����o���g�H�&�Z��6�w�B�v�#GM��͌���C�A�@��C�~�	u�$9Q.��o���a�ضRBA.��E�)@{�>璛��nSҘ;�iBD�$�.Ӥ5)>v�-�VdGr�7����f�t�0�B����<c�Q�LS6�߳T��rB
�����T��5=��Ѕ�f�4��V�f0m(�O}!��x�����)�%]l�����o�
dO���6�;}$AwO�/da6�6k��-�����p��b$��� ?��^h��aK@η䛍Q���0�D��P&���B��<:�)�f
�3����?K�8�����>�\\��Ӑ�H
@2(�5�Q0�hYpI�ϔ@�l��c��?@Z
���b�X�߬O����a���/��'�����.d�JǕ����/�E�kq0�u��s3�i~��&���Vg�u��]�i�����f6Z�#^&��iJ,����;��^�AH$�Sމ�rk�		)b�L��;�ϚUYxPM��V�r$�ݱljeE�"4�f4P��f��đ�x�
P��f��;��i1;�$ޘ~@.AE������i�E��mPP,�a��mz�h��G��iA���$1��5C98I�Q9�}�u��a�ٔ����TZ~�@\1��[�
���1��֙�����2S���!��>;a��M�B:����U(�:��KCu�*��i#�];C�&��0t���3���I��24��I|�
�w�����K��pL[n�PT�Bw�-K�����i<�5+��#�ω{���F��50�\2>E#Ġ��-Lؖc�{Gv�T��Ib2e �9O�7V$��
<��&��D�(���ζ�d���^HEr��>�wX��e-5[���Q��Y<1 ;���)xZ�;�ba�ݬ��0��@_"��(��`���b89��Q��s�z�*��΅��'f�9�.4��1+-1�m���q��U�����8����߳�UE��8ߥ6eue5;��I{�}��+�3��� +���&�kWL$Yٟ�ħ�thY�6���!fs�w|���їŁ�4�މd���0�SMu��B�c�X���#$�<s�_�-?R�bX�w0�|h�8���E��%��E�'�#��st��/K�C�E��9r����[�+�-�Xhp^*`P�W�,[�h�*�5gԒZ�'�Ԣ�2,Y��y����\���/��Cܹ;(s�F����s��=t�t��ť+@��z�)L8�p�}���.(Z��s��w�J���u�[�q?����ux��������;�Ў]0����t�!�2l�@�I�>�'�"0�<�C�V}�_��ڜ��>�_
�H��ԁ(_U��bG�LD.�"�oXgI��Q��hH����H���~On/�+���ٮ�p�!�y�X0�
�X�J_9��К��#e6�G��;�h�S�Bw��:߳��рGd�	�KD͜K1�=�a��8d�)�{Gw��E��"����3*ȝ6�~Ҙ�g�����Ak2hر}(؄�h)�mQ+q�{4�d7��(-�y��L�@��#��{�Yѳ���8�y�v�=�|b�A�a��m��15�pn�c�%�DT-�1��Ii��MvԕQ�"��w�x�Hb>փ9�h �Z��/p�K1oK��/Z�	�m�_��"��:�::#�@�v��>��wlNGAQl;��TH Л��esG���*�(X�$q��j{뗴E*u��t����U
_�@��Nhy��VZ����k8����OF%��䳋$C~�.¼
Z�$•�a̒L����yj�Ϯ3AX
�����iF{a8�`�&}5�Ix���DH (}5�p7�Rl���x�m�p�� ��7��/�5��\xO��!��h�(�W����䄕�Ī�����@c:JL�L�_l�,x��e��e�`"|rN�L��A_�����d'��:*m�8��!��*����=�64���4徊����jy��'$������A�$�t��.<%��w0�5�M��*ԇ-p�f�˚6�'jd�p~CE��s39��}]���E�Д�Ct�mjm��l��{Wv�O�qV���̵[*�Gv�
���&�����xO��C7�n��6ĭ���j�n;�1��<�Tb6�F�`us_����st� �v����X?�l�
��*�$KS���)���&�q*�w�p��J/!%�'7`,6�[��Y"q�=NTI`B��ɨYɼ�O.�V��w{Gv��K���jy:2.!ݗG2��H,x_�Xn%�|�����-���k�o�<}��,���w
�б�d�u��F2[z��Z
��X�	~�qI���<r�lA�#G�9r�
�L��Ï=��
L���^|�盁����n�
'Tj~����\~�gn���h��n��N=Xї�w׭�Ï�\��?=��٦/=3��@cNHpe~�i�g����n����o�#�5#�l�圱^��;�Ў]X45X��<�v�VS��Z�#@�N�MXބv�h���EW�;�H�U8�tg�*��
ާ�34����D�+ߓ�`^-y�d=��B?A�x��#3*�M4�~�>�(߷�f%1X���!�ڬ����B2Ž�~��Mi��VCk�j"v��-�]%m�4:�w3�	��!ysT�@6����9F�2��*���b��8�zəO	��HH�XALw�)�n��=�1lwA��|D�*̀&��R�𡯂z4@BqPg[WE�Q�'N��@wz�2�8Q������tZ)��͉����1Z i����k��9h`)�P�Eo� Ƨ�/O�ڎ��yJ��p�=���[aE���k��l�)�P�>���h\I� '���_h�V'��^�R�e�̂���y�/Ū�z]�]݄���4v9�frJ}��bc�i�o�W}�{@f�vql�&O�g�bUE����>��Dpvr�s�c���/��٤��VI&����I~1I�_e@�&���K�3g�����a�$�8�4	6�
�%O���R�u�	?���#qx[4�T����g�i/.k����s��=\�nc��d�a+0�
z@��C*:�'x*�=�p�gb�Aߧ%�`<E��}"q

XF�Q�ZVP�0h��yɹ��vf����Z֜�!l���"3T�
~(5�I���q�+Xy*��S�&U�u6�)Q��v�`ɀ.`?�В;8��;L�+�sr�����mb��\>T�����*��D;;�i:�٧=���^ι#�|Q[��5�zŠ,id������Y��;L
Y�'��P �L}p��_?>�8�tr����SX2 ��x&��Jb�8Jxys��@3�,S�tG�u�x�d@�y�+�=�5��Y��.ߍEwc^�k/��NB��cM�g����g����g���/j�j~3����͘�7B�GN�`��\x
�؅/��I|r�[�TJ�~GОt���q
N�ߒ�2�A��C� �,�����
�ֱ���ZX^���5��IYZEHr��=Nw���>0+'@���2V{	����c@���K�-�@�X�N|��_��S�[;���Lgrټ�B��|��K�� ����’촉����&^���,w$h��<f� �#G�9r�����K�� ����&戲�\oҥRG���1}�
�<C��q�+2j�z�s15wh�q�c��v�#G�V�
2�C �'�/4�V@��8�M@~���غ�o��2����U�#G�X0�Y�X:R��L=zU7�ȯ�����i.p��4��d}��I�~ׂ����`�o�A��$B'��}#�^��Bf:4_�5Vؖb����(J��W�YqL|������ה�޽���z�������#~E̸�=�I��%C�:$�a
�Y�5"�}T��Y�e��*hمC�.�2�يY&�si�Y?�.�8G	�^�I�i��r40�Zr9)����Peq
�˄�h\�%�#D�d@��;�C�8Q.��(�����w��ʊ<e܍w԰vP�%��$h�A�4����f����&�K�	U0̑��x|�4"�G�)+PTX�/�~�يA'-S��HB}ʹH�5����|��@W˺�V%A�HMIz�ʤH�*� @O���� �ʙ�$f"Xb�Z���ב�s�o<L��C~��Lܩ��%v3!�﨤%U\�j����b����ݍ��h�x�M��J5�Oh"�)+�,!����:E*�9�);O-�g�4�`���d�xʒm@���Z���$���U-h���]���k�i���C� N�9Fm��؊�¥X��=r��>��
0b���#�,��0e.��苜��3?\@�/�8(|�S�&9gwJ���ھ�tdʤ�Ƌ2O*v9���	!��	h�u�=�aO���MYq�����R��/N"-�z�Әle�g7_�W���#$�?�Hk�i�K���S�9͚�кn�ȥ��%��J%�fg9W]���A*1F�2�w,� l�i��w���(�8�]����*!�D��O{ܭb�q��E�)��e�l��a@/�*�uof�c*bpk�Z�(J�ҌƬϲ�'���ECBkns���/��#���5�r�{W����h�!�����|r]��c��fQzt@��CG�A�eE(�9�RAgVr�W�drZC8S�?�b��qEjt�����){]X[�'�#G�9r��-��/x����޽�\V�wO�D�jL�'[�6M�Ԧ6����M�1�I���jcS�F>T
�T����tĪL"���0�pU@�2�ˤ0T��t@����9�9���߳�w�ٜ�^G��q=ٙ���k=��μ���*t�"EZٗ�$լeQ$@q\��<�K�w>���BZ�@^}�<U��
|��O��*x�������QƆ�d���Q�9�M:����W#$;T(C�`�H0���5�
7�齚�a3xX�� �Z�ȋ�i�C�b�����{���Mh�ޖ�4�)��O��Yg�P�`lh���ay[�(-M�.A��F�����9��� FPД$��6
0��$�[/,
@��I�K����TY��͟c8H=�r��4��!i8���JQ�R�&=���X
�P��ߑ��ۿ�5���L6n��cI��)�H�S��+KgW�θ )P��D0�(��e�:e�����Ќ�a.ɜ����U�p�	42|���0�3�,�ۺ�Z���1_��6 "kOH���)�.z�9=�
�kZA�؛�uhE1O�	f�Lc?b���+Rl�6��P��
@���~
�>3��3i��	�'E��U�3�Jh�p.]����֕k\�m�>K��Rp�j+I!����f@�3zނ���j�u�6��mP����-��[�b'�c�Bn�?�h�ȅq��J�Q����C�YU�[�i��+���'� i���ks%����F�n�LкrTl�  7��ݛ1#4P��uֆ+\e�\�PᐫV�2n:���`t��+��G�#6�?­M>��[�/�fKp_7K\*���tF��������C�g�<�[�L1Q����&WH�?ՖS��"M�Н��i�W-G<2��O��]O�&
���~�*�msb��[j��-�䮀�4�,��&�I�,�u��Z��{��H����l�6&�'*�y̎Q>�#�8��������C���Ё3��pWQ�Ϣ_^&��ķ�?����"Ί<,�Q�5�(e�����?is�Д�n;��)i��2���ݙa��9��HUᲢ7��]�L(R�H�"�> Ыy�
]�@)R�����'��W��V�ޘ�#�v�40k�$VMɂ�ړ��m��5MP,��u�zu ���F���G�3�=?9?���)yT���przzќ�����/�wIl��0�R_1��V
�3���ƀ#o<:Й�3��Ж�$�-�6h��R�$�01m�鳉�A@:}~:�b&z���;�,’���5J^��|�e��:wf�v��G�'�34�Pp8���v&�{	@�$�Y���J.uaؘ���@@��,P��|��$ja�Jg�������Ļ�<k��™ʙ�`L���EWհe�7��pI�.9/RYm��D
*w���v�ԷrC�	@�`>ίA:�n7G�v���M���d���w�I��aM=�?x`Ò4��ۂ��U�c�8m̤��9s"��:��OV�4V?v�A������E�dHn��7����I������	�o�Uk_����MBV��1B����恁=���&-O�)[Q�>�;5/m�Hen�ጎ�^��H���uI�OI�A�z�r�Y8�N�MZ3|܊D��`����J�=P+�ib��W5��ڂ��᡺�[�rtH�n���HZ!b^)m��]2��׏��5^t3S��(�tp�D�A�}��4	���4�,'/��\(\�[K��/���k�ҫ����r��b�>=<aˍn�Y��m�[��>��A��8��DK��v}�>��"�w=+�s!r��o����4*�s?�^�����3c��b����\�;R�m�|�+̷����i�ژ���?�7�R�%	%�^�����"E�)R�_ ]*��U�"E���H���ٿ�쬗@ØP[Zqr�5;|v��5�/?���e��m ��8�P_a�5�3�q{['Ks��f~��M��I��ju��E8:�|j�V@/@+a�@���N�ڶڳ�tS��jh�5|;ө�>#�:����t28��U��G��,�랞�:��M
���C�^`H��#:�U�uo��A(��@e�Ӈj����Z�!�]�ePn�j���b���\Z=z��;|�FV%2e�!�(ثY*��"+\��{-�)r��Qٶ��ff������˃m7�T];����l�V������G���b�-���׎�M��،N�iZ�=�E�$�!W@��z$�8#�����[�~�X�hh§ۤu9)��1��\�g�9�����M�8��j�AL��E*����
�Hh�R�[�pp���ɢe�(0�Q�EQ�iZ�~�^�Ж2C�Y�)l�	�m��o��K��Sy��,��3:��$-	���ǙN՘���	@�d�O:@�U���(x��k�ړ�?�#�+�Ao��j�E���!H�:2]�EnnΙI��6�����g.@�:(�pru1��}�9�E47���п����������<�V�/�k�Ƀ�;OɃ<ݷ��^�[&uШo�+NЏwhu��4�o=`FwVW�z0�,�������g��{(������<4SM�۶�Fʮ�9U��,+������|�V@��0Aze��&��N3�($�F~ht�fN�qT�[*yk�;e� ����b�@)-�J�X:(d�E�)R��?�{��^���>�C]�@)R��I]c��3�\`\m�I�G-���}�2/��o���_$|��.��0A{Cu�]	�Á�\!qMo�g����K�E�����C��.�G�.^�O�|�Z陁��1ԛip�d^���A����$������}5��І^ד��ћ"��v�3;*��t4��&N`�F��l���$!��;���p�O�*X$��C��3��.��W�O�	,��+���Z�i�͡�#���^E��E$͔6Q�%H�	@ϱ��W�e�ŋ�yw�4{���D�%f��h[2�5�{_ήPRT��`LV����[>L�jK����9�
�!���L���3Ә/����V@O�8I<�p��B�0k�S�K7~:m�_z����۶�z�D"��Pڹh������ϱ�&@�K�t۬H+��%�
��v9�9�k �UOmN���0��;�+	�����^�������[��a.�ՠ��&N[�Wu��TC�u^���M�<~=����{N��:33ox����)v�B�~owr@[�zI�n8�m��
�7���Y�Y��ݧ��_�.�'���>o9ʖ|�z�<ܚ����۾����t�/�V/�q�;�I�<G�}�Ig[�K�j���:�5Ͷ�Cm	�ۋ��ԛ�]����A�t�[�K�vq@ް~7��oxد���ʎH�D��@ӳ�ny��MfZx���#�+6HMl�Yg�{�����g;�+^��o�t��Y���(E�)R�H��T@���E�9���@!�u@'���3Ѓ�@����{��O�!�,
@��	��d^�f����7��O$��,�_���+��^��Gc���mB*�Y�ڑwa�w~W�"��z=����ع��Og}�[�s��������w���-cU��Me�{��
x�m�JV#VmP�ͥ�a
@vR��$�E,HD ž�RW���,ۤ���@~�eJ6�~�����s���B��"���<��}NЙ`U
�׮���Ҏ�����b��>�� )y�Z����f�$�|X�u�ѽU��4�y�R
Z�z����4���4��'�Qp,@t^:���v:7M$d�	y<0�C|�^H"�ͽp��ښtƂ�}n���>�^�:wH]�y͙_Ÿ́��*�;��,@#�~����p%W�lT��ي��~��m(y>:�Ր��wv}�$��2O� ��UG�ȇb�O6vh�R���[���;�y5�R�nfV���yt�ߘwxl�1 �J]=��9��k�%�-�ܛ�C>q����<�~����!{�c)��}T����������h�^���tU_|X�R:,�~��"�n��AM=oE����s1��g0��N����G�WW�w�š�Y�OW���s&;����[�~���<���ˆ��� %�<G��
ݶ�N7�#i0������ڌ��!�>;�ᅪ��Z�?�5�aԱ�|�Z!�DP��yX/@��ҋ��j�>�z���i�]����w��F��o���Wf}�1|^��ě�|H*�ܜ�3A���D������>���
�6j,O 
D����-m�X���(:���[�������;�J�O$p��`�E�)R�п
��:���]�@)R� ����^}\�ܳDia��&`E����t#����缹>1p��6���=�E.��J�s�U����q�M|\�W'C��5\ :�����
�G��Vs�خ� ����K��S�fZ���3Y�Rs@3
蜦��\����<�W��:�ϊo�)rC��u���N<�ӳ[�m7�[�ej�<&��]?	���;�/�!�sd�
-5S��X�ǀG�ٗ��p����ǽ�h�����*l��������ż�4�@z�%]�Z��{`�y��5�!��k�:�m�р1čY�ٖ%R��n��t��
56"_���pc���i��q���¼*pŪ�'>�^�\kPn�����2ꈦV�M���!�Ȅ
��Ϯ��lJ�
_t�a��%	@�wo}�G��8�

5���5x��H�v��!tumF��4��UW�����T���HE��bg�F�%����a��~�V��>9��0�Ǯ��Θ���~����^��~eܳ��j	�$dz�e��
�~T��-��i�/Q!���z�Z@�R#'W��9�6�1��;��sU���)�f����l�걫��L��te'@?)]��i؋J�c��Ko����u��~l�w?ߒ.}���;m��xft���XT��� "����'����������*�Ɩ*׆�=�X��5�h����n�ù��3gM��&E��2�I���pw��[C:7'B�K�m�W��C�uv��Ŝu���},��B�Ȼ�Ao���ҺPX�f�G)�UG$�r�$���6��`�����U��Ѝz���5abKKPc�ͳE��Ytqlffz�J��S^}�Gr��A.%fj�=�8	�x���B��!�v�G��[rYv_:��i�#��Z'[�ӷF�zx��|5�X9�
3�=#S�iг{$o����$�s�Pƕ<�&i�d�N��r#o�m�9f���ԗ���D��_Ukv_��G���s�F�ʬZ_��@9Vl��"�X����jW���*AO�B��y������.Y��%���H�"E�z�h��
�r�H�"�� ���k���V�/n��m��a���}��MQyş��B
	,���[�kSb�~��O���$�R�_ޢDž������c:0�D3%�sB�2�S<�ib���l��Nܚ8����@�P��(�TWe�JL`���
�x����{�O|��-̓�9�|{��U��
�����-�s�̜Y�U�f����X�O�/�䉎)�>�l$�����n�׻]��%�K8�8�Jn���qh�TY���*<qbP��D��J�4I�x�5�@x�6;�	����z���b���}>J�������[9�(۽���	���b٤���n��>�A\T��VbS>:�Z5z>w��”q7�Ȫ�|���R(�Jw���@=�+"E��P���-�G��]�t�G=ۮ0����)&{�^��DK�n�8I�.����Įg��q����`����T r^��������h����Mylt��y�RO���M%٢���fJ	*��q�Bx�>�.�I-��"ҏe���c�n!Q9���b�y��wC�Ǯ�l���+�{�^k,pa�#+�*�96{���K�F�Z�����@J��/<�|+�2
*��+U61���l5�ZOb�S{�y�U���s�FW�*���:r0���Ҭ�6���lۤ�ߒh�������]}7{v�ض��d"�m��U�U��7��D֠�H�$�(��4��3V��N�l{�]v���
Z���e
h�V��3�l���Pf���(�^vk���"gJQ|�7V�G2����k�4�ybC��V9k�h���L�O�~�3��X��*
�Sj���^�0ʖ��K�R�;�-�*�l���!�O\3~tN����譈~�,Sx��h�<|�p󗭱�y���fS��$��X]�3η����`L4yn���6jnA�!j~P�Wf�Oy@���(f�qm�*��7���|����h�+�z�C���^]ʷ�X�	'5=-�c���J�Fɓt赁�F�r���TRh������5ҒB�E�)R�ȁ�@��\�.R��+�
�F����U�ƣd!�v���
�C���~?5�҇�[���N}h��Wwb�i�|��A���V���u+i�Sxo���_m&�F%v5�g�|RM��i0�z��C
�Mg���w�pk���߉(�j���ӎ�Υ�^�E�|8���p���p�ɸ��U��/9�j��^@p��m@���'�0�3J�1L$q2����j0q�dFut�c�l��[&��1?o���T�,Y���9@:&�&��TU~�u��9C�t��8@]�LMos^g�x��V�CSmұUBt�lL��<5�8����MsF�n:	;�ٵ��X�:i6�/���V�	_��,���t�_���rv���8��JK�o�6�U�erҚI�4mza\L^���۩]�rU�ǿJ��s%����x��ͪ�'c"(mt�����2��OO���zb!�w�OjHڥF\�t�W��c�;N<2�$�a����
T5_�C�)R�H�T*t�
]�H�_r�'��U�zo��w�렏l���{l���>�>��MP��O�������8�v�W�[���P�ץ��,�����,[��&��s阾�Y�/<E�)R����U���p@���E�)R�H��J� �hoʯ�J$�^D��� *=�)R�H�"E����M�A�@���E�)R�H��J��Q���o�7
�\�H�"��޽�(�avZh���4E��a-"讽-�t��%�����������>]ʍ&@����&@���	�4�7݀��K�u��h�����M����#�&@���
h/�M�����/u����bXT;�T��
m?�q��1f�2/*�T�����
���G>z���.����h�0K�nx�?B4����0�V��g�Y��#�7;g��F����P�Hp�7��Bp�@ n*�GqE�*�X�4��ͮ,��Y�4���o��8^ƞ�s<�y=�#'uK�؝I�>�Ԟ�>�|��3#B!�B�/�oP@3(�	!�B!�B��n����
hB!�B��B��AlhV���M����Op�(�ЄB!�� �0�H�F"�����^��ͪ��j�I���!$�B�߀fP@S@B!��
H!4]D�t%����	o\��t���ftBG�:*�f�C-�tЄ
h~͠���&�B!�+�gt��JL;Ti��R!�7|V�z㎋�}-��
~�N����
h
hB!�B.=����/�w��
R��Z�ٱ���	!�Ъ��oP@3(�	!�B!����!b$�	M�6	�pRs����j��B��/�Єrk��@4	�BH>�8��ˍ�y�U�$
H�������jy�.H��j�%8]n-o�m���]�ݔ�(�����"]��އ�4&v�Q�Ÿ�hZ@���{����Zߕ޷^�힫}���_�q���+��b�R}S�h]7r����I�U4�i��r�taG$\yݸj:I���i�\��5�a�S8LL�RI�
�l"�f��^�E���m|�s��=�Y(�@���Cb�q�E���,�8sڗIl����|&�S<'Q�[�E�6ֿn�8a��5�����@�RKl�j�b�ª%$#2�̕���y���B�V~Z�b����P�1;!���
�t���Eo�d�c��3���زs�Δ#�J�ҥ�&CRF2�`ʬjhlU�Xh��Ɯ�r<R$4!��t�?���{���w��?��˯o}����~��o>��w��যw���NMMy���({�u��L�[s�EӜy���������CJ�SM-��{Ƿ��*V
��8\�Q��ͅcih?���Y�t�ly��<
�����O-�z!>�]㏖3Y)Q�^S�+�=�I�2֣�� �±�����m%���<<��@n)���PՖ�<�̪�z�mo���\Vͽ�g`Tx���ϱ�@x7.^HEj���cֶ����n��"�Ռ�s��˛nd�'��
�:��.�wsׇp���d
P��/�<��/��MM��P�� �$-p�.�������q��3�
PFal�y�i��hG����wF�C�qT��䂮�j.?��:����x���'f�\?�{�Ơ/�|~y5>?81�J�$��̾���׷��]D3��柠+�ښ8c���Z���6��r���J���{�X����@���#��Љ#�
}��/��z*��R���Ӂ;Er"�S�q��c�3O�?���a-��ʢ-h���[�c��'��F��ڵ��?�����������TF%)��&y2'���KX�ԍT�$Rs����X�X���8v�P�M@�>�#�щ�����c3S�֔X����]����/wG�C)����(�Z�D���%�Q��4��F��]�Jw�'�vl�E1JX��\�,!�r����w�Օ���9�g�Όgl6�3f��qƬ=�xlL��P@$$D(���I�VI-u�Z9�,�A9�ό�~����Z�3^/��ѩ_իW/�w���wK&��3������׏6�?``�ԩ��e��U�**��
���62�Wh��޽���ﮋ��r�]����{b?�S:�S[j�X=�� ʚ�yP������F�l���Hӄ5m_3�v��h�{��.CsK:
L��l��y�0�*��:8#czӽ���ǵ3i����W5��Z�eG�I�����?��!93�lڡ�䒠E5��@�X��&��Xt��I�r���O*���7�3�䢫lS���7�wZ�S�tu�>c�*��Ra��n�&�޴̺��lڹ�6=*�yּeO
HX���%U��k6�T������²�W�+m�u��#����=t4}ZU�a�:��q������<���	��y��zfxf��/��<b����aM�@i�>J��f<r\V1N�97|�L�_n��=w~la9�$�#����cD�}#Hן�xq@fq�$A�-���g�OB�"��t��/���ŋõ��u���Fy=yj�����7��_c+:N9-R��ν�
��orY��R�wJ翦�.o�%
z����R��8nʨ�R����?	���Ԉ���;�lj�#0h�jLu0^�俒-�r��>���D�GL�54w��S�����sz���|��[I,u�cxf�Q�ύ��ӟ!I8��ѹ�������V�.M��j�2�?��>�#h\��s��~��ٰ�Ȟ��hzi׾��W`������?(�x`V��K#:����=^I�GHc��[v�WX��;[�6�,Z��\Q�h�r�
��:u��!ҋ�=�<�g�m��t�ܥE��{���^xiǡ�~��ߧ��>��ˏ=�H�g{I�n���O=��C=���s�q͝������9�X�df�M������e�7��=��j��0{�j����s
a����Ԗ�R[
@��}��W�{���3f̨���9s���
���%%���2����-�_7�V�s_��/���}�;w�ݗq���y��k���?��ͷ}�U�Z<�t�� )�Щ-�}\ج�W2���|p���:�@W6��	s�����x�w�I�]:����uKr�";+4r�d���e����\�8˗0��(��9w)sn���dsE!9K�J6�F&
�%���.Id+YTV[r��LT���"������L��RWD��y~L.��Z�R�_;�q'J(��oT��J>񳑿g��E��pYb�0�othd����1�倧�;r�T#�u��7	�R9��_�#G�v�-��'������B�$�K�,i�FiC�.���Ռ"���.`h=��XS�ۊ�6nX͢���;�&��́i���Ph���ĩM��x$j�Q�Kk'�S�d�kO#�0I~>(mb����}�����K!�����Ұ(�Y�|�5v*�ֱE�%��������(���,\�:��V/T0��Crg��Ջ#V-蝞o��O�<s����G��0qFMTǍ��<
�:�O.+�������o1A�yp�f�Է�Ͱ�%���3�W�%ԕ�u4v����*��g��ƅS���O��~��Y���aL��!�ʠ��h?C�C6T9Jx�ĩ��f���Jᤩ{m��ܰ}�9��4�I��%W$z?DHbl�c�4�S�.[5w���8�(�69�t��1�i�R^���8rd��퉹CGU_�$Лʓ�~�0z<9O�$��v��Y�n�*�a���i:��	%���\��N�E���^�v�1qr%Jc�^��k���fO;|���i��jL�`���Β5����T�R���q�pJ�sd��%��C��~\Ay��y5c�X��tI{O��^���ҵ[w���a��w���7�9$�w*vq��-^����mS�ZT/Y���	��l
����Te�.�]�<"B2%h���׉�O~�*F�Ҏ�2ӤZ#-5i�3�����<��b]�	S�e =e���yz�Dz��X�v��S�9;˓f�M�[y� ���>e�"4@� ��/>�����׿������������~��qǡs�J�=���={=�hզ�{N:o�[��s�-o^6g� M�Wy��C��֠�����S��v��苄ڱy��1aIe�[���G�k���1.
-Aƒs�kj;~�AQ�~H<p�$�b�
���R[
@��}���}�=zLYYYII��+lH��23�����w^���/���5;'G���wVv�/z��>���_��{sf�n߱���t�7�󃺺9��l/>��{��)��R��@�z���:���UB\\��H+��TRk0<��B��|B1X���^�akάٜO��s�	�S݈�i�i��\)qd�Pc
�x)�v��'Oc1�*88��rh�y�u:�_$X���k�e;��?�jGlF��k��@C܅�g��<�,�U�qE�,a~���M���̙�w������{Zr������o��RU-Z�F�")�ރG4¨�Y�5�X����d�B#� G'T�T_%�=}ņmQ}H�˫���^��=y�Y�@]�y�ۭ߶{��u;�H�C���W�;r�LΞ�`"��z~��|�.�'����w�d�)m�oS���6nQAoֽ�u������/k\�S+�<N��pXB�ӧV-X�y�9�~��!��:�K�4�9����‰0�*ѹ��1OFc�E�r���|Ss��=xDfgY����H�������_ߒ_9_1�=��C݉��ţ�D�9Yް�����yă�3�j�0���6(���.Y�1�SX>|�Ӗ[P��v�#'N2�U6�a3"~�s]��R�š�(��j�׷�"�M�ʑ"��j�ح����e�r
�Si<�g�*�]��X��k��zG�
9��ڊ׷)��ֈ/q�y
�=9�z��'�%�}'`X��3�Hw~Q7(F֬9|�4P��'c�f|z�Ě��	��j�A����t�<��ɾc5��QY!�ˇz�z� i��.$~�����ֽ!��Z9���wtB�SĎ�!�h��p�&Hd�	����
Ji�l��M��L���|�v��.$�y�s	'��0$Ӑ�7K�P��6mwG�s!Y��h�x��D!��s/\���t„��8&=�t��FQGt(�Df*,/�^�����펮�{�H�╅5�6n��ŷ�?{�l�O��G��М�ߵ�X%^����3-�`x�?�r͋QY�z�S�&u��f�^\�p����쥫yy��j��Lh'*���,K(7b���f���F�5w�=�O���n(u
̯��j�W��n�Q;F�@f����އ�\��=h8�g�W�jmYY(�A+dp�J�#2��NW�����c�q�]�M�q�o@��͡��WO$߂Woٻn�A�Gvtd��ήڼg��w�]�qWj�0�-�N�ڼ��5[�m�{��h�% 	]McO*�!�����T�UP��^�:j91�u�^B�Af�p��t��
Obv�X14���h�7�"�na(ZZwρ�NY��$1��'�I/iLm���f5В3�Q�K(FE�>7&W��WXO|�-0ҏF
�=sr���}qVy8���I�
�ã���m�ߟ6xGČ��4`e��z���;�[����vF�:��]�/�8��s/$h���ضmۧ�?�a�1��=�ߥa*���X�aw���>��m��m
�ee�馩�������b����K�m2�T�|
��-o�5.�^O1j�6����3�Ι�uM3yI0�j}��(���S�&+�0#%B2��e�ho;��-�oE��l��y;/N1��Bo��!`��%r:�������wL��K}��Dž/˝!�Y�f%~J6r��{�r�PMD�>i�h�.�{�����=^|�w�Ԃ����-[%�2�q�mw�|���H�����9s�u�@��̝[׺���`蟹��F�
;q�2�[��>Y���.������Oʆ*�]����S~8OeV���\z��$N��Nm�����[/屔ޢr.*ܯx�=;2����,�`b5u2��K㦄���3gΆYYz�o��,Ff7���6�*r�ˉI1	P��<ņ�t��,_��d�)�e�#(���/����dذ	UGy��1�0��-�dX��I�d>���]�h��r=!Og��)����«2�"�򨲫��0����4n����X����=i��C���y2��,y?Y��{���}�7��A�5d�Rr;�n��M/h%��c	R�Η��V�z~U�)��,����12�C#Fƕ4�8ݧ�.�5��tXt��haf?|`Q9�W��J�3ؠ�nC'��%��^���<0])��)H$
*�)�b����>UiݎgxE��dz��l�Q9�k�#�1��S���@$�zӎg�eV,|-@���GV�K�y9�<��O߉�D�CT���sG	05Yqf4����	ó�r�$��5tDZQ�ƑXt�l���92[T�Wy��#}2y��*%f��V'�U0��)��zjPz�W�z�В`�d���}%WqB�������i��L�\M�u2<}�bK�e���N׏n�v@����}'{��f6bЪ6lJ	�6B���+8!9�=�'���7�צ��@��S5<@1	�tޣ��<]o��;��ak�G�ͤ���0��pc�%'N��5���B4_�!��S��p�,]U+�b��!k�wL�^-m�����O
�}��7�`�&��c*�$�^�12��<҂Q��F��G�HZqe#O�O�R��75�[��D�1�$VE�m�o��̋<pT�i�W�9�x76iu��U�Ъ᭷�K봪k�|��!N�7�B��4��a�X,���Me6QǫWy�_�y���=Ff;E����rP�gFdF�^;EpYQJ4�A�1{�̆�f�]��|=N7R��W�N2UD#�&9�V�_	�M��H�F��5:t�e�Q�F�`��"tl��C�kZT�$��i���zmy���wf�@�
U<t;tbnRMD2���%Gd��w~�gC*��1�3�q���g�b��F�k޼��s����H�u��=�1&�G��`�i��f�e�^V�K��	��K��7k�x�fO>��ܩ��tp��!��Bcs7��(x����M���gUV똚�G�͜9�}ī�2f<h�}���*���fM�~qac��a��lw�v����'o�R��{��lfX�fu�F�I���`�FZgy�p�m��yns��tn��y}3
My^'��!N�Y=�+!3D%��5=�Ed�VVӱc���e\�Kk�w��u���G.�W�`9X�7�t��:���rRn����C�a�~'h�~lF����[����e?S9�z�#�:Z)gj^@�:6��ѣ_�L�'�@�x?5��ԛ�KQ�B�dϬ�M�N�-�kTv:�t^������j�T�H�M�~,����3�l���#6���[��b���5筥Moۧ�	���([21�eH���{yx�wnjKm�-��tZ��� ���j�19bn4�f͜���7b��d��ʊ��Ow���M��,��|�����?ܬ�M��W���lѪmiiiQQ����?����K���������~��~̙3;�7�9���J�����|�>?#+�L��߽���w��?��_�r�ƅJ��O����n�����7���
�^��ޡ|��x ��������#����?��N�?����pdU����~��;���qGy&��;H,����_�竷�t
@����Ь,��=ƒ_��uo����Ҕ�7{�La@$#�K;����)�K:�a�J���a<�/�k�ƭ����Ey��U"b~���c�,����`+2ˮ�9+đazq5������X��	�&s�J���2�I2~d�F��.�̘ɜ5�����l8[�a�D�/�R@
�08�yDl���8:�zAWf�l�-���`���U�����-+MDc�&�i�S��ː>t^;45��AW,vY��vC�\�=�
�ue̫
ܸ��3n��'��Bԉ3j��<�C�x��)Z����G�z����@[],�.��]�mM[���K��ٓ�#_`NOZfse����>t
�$��X��q`(�S�������rGeǂh3sW����+��.�gT����"�Qx��v(f�,�9�v��l]s$C�.�bJ�\͢���LD�w�;�C�hњ�b�/��p!�A�Q���wi�ύ�1�b��Q&�yh U	Kոï-�,��D�Q0<�Cd\N��^�i�F�q���Y�~ˮ����7�\Z�sw�9��Eb�s��������q��J�Vƈ��b�8���mv(��Y�U�Oc��Ž\ۈ���[�8�6Q�;J���Ud�X���C��	��<�~#�|���Ē�Y�ɡ�e�`f�h��)�A��+cF5�t�/�{�i��K?KM��a��]��k7���9���/�IƸl˜4jL��q�E��((R[�O�a+�	�AK�n&ص�V+�O�<��a�8!Q&���w���z1.e[���]>tr	\k_��ғ@�;�M�I�0�J��”�]�\��ӧ'Ղ�b4i$؜�%�z������Dv�<�mx�_ht�)"�/�v�2��x�S����|�v�]�=��6Z��.ƩY
��\"�{�%��}�52Y�x�!@ڑG�'汓��23����*���M���y����"YMД����A+锆�4gI�qԞ��q�”�Λ��5.#�]�v�[��ͺx��+��о}{��N=թs��1&�[�gZ�h�а�^x��^|�|�"�^z�U����6j,�ث{@�+�������Z�%�x�i:�����>UI<��G��v�X'��+�e"���迬\u��4?eH\eEx��R�.^43��`��e+ �uT�ڃ�xX�e�E*��R�z'��=� Qk�U��zϩ٣�z��7�>cm��m�LkE�Oi�-�	�}-pJQI�VO,^��g$�
�l�ɀ�9�����۵{�U�V/�Ի���M���S�=\@;(�x��Wt=�}���_i�>Mzn�{��\@k�x�[X�~��ݣכ��:T�{%�r��,Y����x��6��0r��ͻ�z��ô���Ё�)+�f��y�3��A�y!�~c�y�k^��{<��?p��ڏz��F�{��h6?��Ҹ�����=�8�S����R.Щ-���4�k�gL�5k��t֬!Æ���Z�����F���^�W��ͷ�~�CeeE��?���ŷ]�����I@�>�S�W��T���\�?�eeg�l������e�>�9�<ڼeVVΔ)y�S��:v���ͷ��f��Se���g3&L�ٿ������={��M�<%=#�?�E��5*}߷|��q[^^��A��t�7US������}�q����[�gz������QX���ii�s���
���ϛ�/�~a偶�1r��)|QQQ�Ԃ�]���'��x�d��JUO�?w��/��
\��)��R[
@Ý�S%���̺�xw6��3�����&��N�`����[
ޗ�6��f������ȜQ�6y���4��Q|-1%�0o�:�ei"��X�"���b�ۖ|Ji�����'���[o�&8;S�O3�fX�D�Q���F��b�`^�DX� @p��YƕRAH�-��l	,�y��A*���b�m�nT��ۿb�j���c'+-��PH��|b�	{L@��3����ة3LklhӕV�62�O�>�X�q����GМ���Yd�q���|�-���a�3/O�9÷H�-��g(7��3��lC����Y`�}�!�^�5'�D�Gvl�g�d��g/���Fڌ3}`yM���SJTӵ���>�����u����Yrpp�
j'9���G���)i�����=q
kx�Ϙ��QB.`<��W�����x���ў�9�Т�֡78�e#������P��.4�B(?�Tx3=���h`jjF>a�A�6�2A��I&M��,�9q	���%ha?@�O�Vro����Q4ơ�!��Z��U��E�Z�}��Gy�'�?{�"g[94�%hEzq%���* X�du�?d��
�V
'���-*Q���j#�d�p�F3��.U��(��!N��;(���G�#�k�(�S%���׭2�����'W�K(̫h�q�
Rw~'3��ѪM���N�jm{�6���)�
O$jv�K�)@�:��4��ږ�#�Q�Cڵ��U��9q�S����(g��1�c�3cP��OT�����1X�ަ49�Ls�SIkkU\).�nƦ�en>&��c��Rx�@��J��
�Vc�o�#�[S��(@i�HѶ����4\(�#Ǧw|��m�f�m�}4b/���{is��7�~��hߩ���^/�����<|��`��:w��ѓ�'F���G��&��!,�5ٳ�# 칋��0:��x��ڇ�TD,]��?z���">Jh�Y%��G{^iC�%J�Q�.���4Gț!�bw�y����;5b1
�{��d:� 㪦`�3Is�o������YӞ���BQ�ڐ�\����?*h���j
��+�ea������zE���nq˖-z=���8,룬)�Wм��Ry��eN.�s�8���-v:o��7u�<�����G���/�����re�ۏ���[V�V��CJ|���x�1��})�)�P�6ʜ>яz�¥zLA�Q&��;~z1�O
�vO�G�����2�'���#�oS[jKm)���M�FHa�F��;��l�vx�~�w��_2�����jޢUS"B|�[��٫���'?��d��Ze��{�h`�͓��J��.]����qiiٯ}t�,�����IUU�)S�v��L�gXL�������4oٺ��J�nj��.�_�#Hvvη���'?sǯi^UU�c� xYyYff(����7���z��!O�yr��N
<��F��s:tx����
mx�'L���v����jkk�
زU[�ڭ���lƄ	�������{�~�oAA����Q�6�:,\0鎀tnn��)�Щ-�������R�}g�t�ʒqfa��U���9B�']2�Fq��n�O�Z�&�S��f�`Ts{ai/^��)ȵ�����Ꮵ�^)�Ё,�+h��1��n�h#�}�ϛI�@�1*�?�T2j���-�I��0�0T��g��2d3I�_�L�0�ƒ��Vťq�U�pnB�!�"�W
���B-�H�2�ky�2�����pLE]�~�kc]<��jrڵ��E<���}9���-n@��=�Bc�;�vh2/`��@kۘ9���A��6�5o�neڱ�y�+�����2)�:B��������>�Ɣ�m��3o�)������R��]�54Qr�b�%���X��-�/p"v��=w�E����[$Bp �v�������U��TG�I���U��NE�9W�>Ȧ@X�W��2X��˜��>U�\�ޘ�e�q�2�j+-.9��^�+e����?B8:��Wl�b"n\൒6I�EtM-e��o���/m�g�_�:")c�r�34�-��l$��u��zR#HC�IQ2���B9r5Uq�R��i��Fzɸ�Yi��3�&†LZ�@۱�("֒�@#E�x��i�8Y�(��N��*��ݺS�6z��R2�Ej�0$�J�J��
U#r�X��ԅ5��4�0yG�)!8J�,Qڸ��U�ʵ4�A]�|]P$��;����m�,#�����E�%�I؏��P�de����L�2��߱w?i�S �x�E���On:C[w��d����	3#1�tnЁjad&�w�õ�q�kƀ6�u��qL��h#�fR��C]t�H��&ޞG@��H�A�'ʣ�f�iӦ}�YyE��\@���@�x���If�t�֭r��x�nݞ:r,H���-Y����-�N/s9�	jw�ޣ���:��5H#.�*�`ϑ�R�T��4r=I���{b�h@3f#"Z7�"��yd]��CpPӪȿ?Ran�m8�W4#�8a�>O�GDu�9���~֍b@;��S�Z��R���1S觮1�A�)R�\�tM�xx�a����D���q���7gT�i�>����-���{�=�w����!.�ʼn��/QRY'�Ǖ<�uq�B=6�>
@7%��z-��k ���4���>�k�
4D�j,�
��^?Eh�X@�$��q����U"�%�!�C?��N��82�,}�q"�/t����VCz�*Q����V��p�Mm�-���Мy�@N?�n�Y.8�~�p.G�Ejn�]b��5CpHpӭ�7�h��e�p��2j�XQ>���-�c����9M��7�/�s�7�s9�;dءSg�/����o��~����-[���O���O���{E���g��Ե��ٵm�u�I�N]�x������.�BW�q��T���F8l��ɛn�����B�J�����ǎǙ�~��(/��{���ig�D�?X�ů�
"���ۛ?y�J�媐���8?�x˿�ۛ��'ڴU;���Vmۉv��$���=vܸ�N�Ԗ�R:4v`�g0���c��>��Er<{`��$y@�����f;�,y�Xx�EF�[0N�ba�O�%Va�R25����ɣW9���8�o�E�n�Y�N�� ��E�7B�	�r1�#�7��J�e�z[��G�qٖ5P�w��R�<T�n�[�a��jX0i�@,��?��e�����V���P׀���[�s.o�%�6s[ơ܈� ��< a�[�*�!c���hˌ*�����M�E���޲Gc�%cAk`�yVN	�j���d��#��n�QD	CM�ZN| ka5N�7(d�#�S��P$-�-V23Ax*�B��2T����_TQO�D��ٲS����v�*O��6�s)���FNhN��v05�GŕǤȥ+�g N�A/�$\Sk�X��+s<�@c�J��`�&*��	�yS��e��WК��l�΁ƒ�����@�1�������1�d>�*C���������b@�""�A09�б4�c�����NW-Y"��Ц�h�+�-�-L3h^t��j$NU�W��B�
U!��%H&?Μ=]Z�Q��Z�48zbĄ�5��
��Z��^\}�� FC��Rb���ҹ��ć
b�(�DD���ص�<��a�j
�Td�r�Ww#(cZ5~�������
ܻ�v�zT_8S,�,ƴ�{Y&�63"P'R1y@pȇ�C��m���#~hw��'Wԅ����N�p��\���v�J���<J,�|m�\�M�a��hB���O�W�bt�^�FA�l� �F'Wo�;~B6��sY���I�O��WЭ'����{��q����7p�����>��/g�̇21�9KV	� RG�4�����)C̔����|����R���D�C�RS.	��|QSh�D� qie��j���1�|���Cz�%Z��2�>�r�'n��Ȩ������lB�$+�M;�x��p��!���!��Xy��҄�P������(�>2�6��Vڦu�k�����K��ˍ=t��m۴)�Y�(�+y@?���c�3w}Kn�hq9pn �GS<�եѣߧ>A^�"����HЄߴ�#	-�e�'��)��u��
G@nj������|.;4�cr�"o��7=/K���X}A'�u����M^r<5��_��)��R[
@��h�\_�W���X�-�a~��s��,�����-X��BTTTp�U��A����rrsG�e?���l����+_�֥Z�
�XJ����]�?����T�m��>��[h0�U�vpm �{��mn�=�}�іk���-��ʫ*{�=_��E�x�f�1r4�j.�zL�8���ct\
���7�&Ȇh$x7Gog���wE��y=Ϯ��#O6&O�\VZ�H�|�'N�e��P*���P�:vR��N�Ԗ�R�u���s�t����,�F4���l��&4���oez	���d��ief`��1�¼���Fz���[{�y�YY����خ}L��o=	6�h[=����##d��e8EĀ�hu6�bۀ���e��u܇��՝ߏr�}0����Anm��氣l�ǦRe�Ds@/X_��ށ��}m-��@�{�hç�
f����i��RƗ���8��Hp���&Q��<m�i�7�V���q�7:Sо� ����yP��q�H)\G�y���S~��� �!��ؓ�WcR��
�wА�B2�.��D���5@K������7>���������ȕ�#���$��}R��?�5�����ӊ��L�����K���>�|@�����'����z��)Y����G�bN�߷��c>�l�H$tĨ�P�|�
4�Ξ?�

$':B����hi�ꗆo<���C��o$ϝ���f�p�m�#��q��	���Fl�h.��7@��{��)i��Ϸ�y���-����EՆ�j@��k7�?�4@'�*�ND����E��7
@��t~�����
��!�Ԕ�5��&�BBXQ	��@��l�k=߅
��6j�e��7�����˶��D���hQW�F\y}�~������+6n3�ӧWG���!6t�ٻ�/��k��?x�d�+���3j�DcbLb^4���r� ��!��H2+3͠�`7�@ӂLS#>�h�HT��&e�!K��s�6'�{��.�a����s�P�j׮:���뻭��=͘��Ƒ���&��K065R	��r�~�N�6����`D�st���ia�/�hΈ;6�)Ѓ�,��s?���Б��m��s�����wHpԸ����9�*-zq��ضc��^���@Uz���v=�QXdD��v�:CE�d]�6�8�.�@v��}��*�k��3�Z�^!�\�qӦh\-�(�����F\ɗ���s皹�?�"��}f��c�G:���0(cs}�GX;����B&�Z�0��n���ߪ&L�v~8��1�:t�Ћ��i��Y����w�
�赛>�A�W���"���z�m���r@���;�tS�;���v�9��-S�E�R���6�f��:|z Lǔ��h阦�O>�^C�f�7̆	i/4].U{��5�!53t��ԃ,e���x��w�V<�Jԡ�mzl˶Bm���g���� �A'I���F
w�����.n�?����ǂ���* o��͏��]2���:�it�~����Z�uN9-���k&բ��<mZ���\�З]~e�~��7-F�;�x"��k������u7��超`�s���4�l�4���u7�e���O��*D6"� �[�_<�?�]s���0����wdiiJ��|N�8qT�h��C�Eõ;�h^�ę���$I�iz����G�X1L�$�i��
@s'����#a���'�r6�e\&a��U3.JM�2�a�
�c�Էp"D{P(�����+r��tF�F�*c3�����2���qd�,G<>>�шt��,�/�{-���,f��V��0�PL�q`a2쬃@�a
�2"�����Za(E�����[\/p��3�˰.�,�C~���:]��u3
��|3%h�¢u�UirZ|h���Z�r�^ٔ@	���`�0�~��	�B<<�k	�&X��X6dr@Dh�W���#zjT��݇���`\SMh�P~���0�߀Р�n��G_�{�[Тމ�DŽhN��A�|r{!K�π�,zUdSEՋA� �A/�G�V�3<�,�!��x��T�\n�,-�,!}N��(�\	�� x��f�+���Sk��ܬj���,����?�r
�g��/�Y�k��:LN�0EI)�],҃�p4���+����-� O4���2�4�h��'�%Z��i�
&�yB~Y>���>��wd�jR�%���/�>�L6i��x��2l<|�����ܜ�V&R"~s��]�$��}��b92W�iGI�Y͚%�V��Ȥ���'�:U�%,A�*�PNpUk8����t�,�6��5<�!���0TpR����o�g�Ըӊ�7��A��r�P���&{VMܛx+A���]ߪ����ѻ�1�5�����y��[�7��#@��XDW�'��E:�u#�{1�0� ;ݚ�ѯ͋gj��qV:����d�R�3�3W�B'�p/����䝻ո*6W�}����#��ϑ�z��7ּebitÜ�&�H$�)�/�Q�k�:E��ѓ�+�ƃ��@�Ո�(?L�<���˺
�h.0�w��� ��@�j
Dg��oj̃��S��À]��肴A?��vԵ���T��u�[O�֑�v<:��o�s$'�P�i/�^���Mƚ��p)�WԚ�x��C	M�,
F��2�cf����U:#�}ϔ�W�Ps�!�$���O�]?�7�FJ�4Ɯl:�B��*	B�~��76�|f՚�ǵo߾s�O�Z
���ǹu��:��4��W�mn��ښ)���ҥ+�y�����^}��mKoA��۹s���&!���LZЧ��Ӭ��@�nG}�����p鲘7m(��F��.��~�Ѳ:�/f!T9���&�Qu�3�ynF���7~��ٳ��֜M$���
��Q�x���uϐ���S׭y�WP���y5�{A��қK�@�1�
����FR�`��.V i\l���!-�����J��QX��i^�ݻ�bn�C��]���
z��M�rJ
X����?�ʠ����7���L�6̸��+g�[�v��Y˾Ƴ*]3e��W]!e������߻���k�]K��[��P�0fV�y1����n��w�

�l��A|��<�]�
���7��䅨KQSމگΐE���}��dE����>_}{��R���ު�e��F{gـ��(�nAY�z���I�$���۷o��:P�_�ꝧ�_5z̏.��	Km	��Y���C��}衹Æ�(�YD�!Ѱ�;t���������}�J�x@�^]=A�@�3'�8�廽`�<N�.�M|�e��,��O�y��uGy�q�ݸx����R��m��s��Թ��ɓgL�~�9�E拠CN<���;�R�,�{�v�g�����[���)g�5|�(4�?o/��n�|С�� �4m��3�Er��9�]�"i���p�1	�Nt�$ǚ��G�g:7"��0���ah�p����m��ʰM�z�(#=#����S�G�tY@Z��@���1H���Ȓv#4NxA��fmE���s�=>�q��P�f�	Ë����왡�(7��R��C*�IB��l�� OZ҃��L30���K�e���=��Ɩ@"#~��S֖l�6ڑ��-LǍF#cZ��s���UƍT�@���Hm�1�����e����{��dZ���)$0���A��sx�ʘ<Ȥ� F(!�4^��g���ɍ�,�ƅ˕��KN}�(&�bH�
'A�$��YM���J#��E6\�@*r�b��<����� �P�T�o&fc2#����ʘ��d=e5Am���5����T"���B
1:̓;y�Ai��"�R0��p�1̀���8"�R,���j@�q/�s	����TY�-BC�t�&)ãY,��X�-c,�񕫜b�"��$������йl0ab0a�R�E �n��2 q��2T�!`��{�_�q�vMĐ�a�����e��?P�ɃKu�Q=/N�nŭ7P�K��X��O(��X����J������x(.�P�����l�J�M-[Q�0��|Σ�z�p!�K���2 ��I��Քf6�"ָ�`��b�l�K�Q��F8)XaÂ&h���G�o��Ŋ�����`9@�>q_D,�h��/V��	��6<�u���G��%AG��*"��n6�%�85����0y�ɕR�G��D#e.�nzC�:5˘�DN�э�eeK�w$�W�����yˬSQݰ�ӱ��))X'!{����+?����,��=׾����c����:��7ҋ*��DKQp�)�z���u\c	< *�d����oںM�c�5pcW��Ÿ��@�	�b�s�r#_rV�T�~0����ͧ�-�s����6=ϰ�Y�f�T�H�TY�`��O]:|а�� ��4��47��.ڨh�-�+��q0H�eUo�D!�4@��\.�hY�����Y=�x�� �ZV��:��g%tl���=O��Ɛ�UO��g�"��i3ۻo�>��<�x���x��{�‡�<5nr�,Ht���c���>��{���[�j�x���Z��b�&�+�R���V������k�Z.=h�^�z��-��lI
�G[���B[��D��b�b�{JjG�
\�g��	�*ЫS��Z@�ٛ����(��5��}2��O�d`fUkyV���Ѭcd9�A�$�~u�>�����_�N�pS3���M�8qW�0���Ͳb��_�����Y�-���[?lz�9n�KW<�Q�$��+�6xg��{��a�=��tl��k<���O�	l-:e󰯢y��u@�M��t���G�;ο������'�ù_t��[�T|,f.�)=���dc�/��9K|p�*�VU;�Bôth�;����S
k\�\IS۟0k�S8�X�Z��I0?���<�ԋDmzzU����
>&�����$I���,��wΫ����]g�s"����]����oBE[ �~����`_]����#8���]G��|p�g~[&�
!N�O���3ǝ5��fL|ַK9��[���[����ϝ�꛼��8g�(�'O��K�Ӣ(�֪O�|�bH���e����?>�y� }nZ�
�9��9���H9��V2l]�r�1h��ŗ�ό�kkk[}�O}�����
aH���=��+�^�ǥK�p���XF��G��$ɱ)Y0�z�ǘ٧vE'�/�1���qD/�_�3�r$�G�9?ʎ�qc�r��e�v���(ϭ�zf�!�ĥ�Q4f���ڠ�"?QLp@��WΧ�� ~I��,>�+
V#.�4#�LW�-�3��`�C��>�ǫN�%�N��Z�%Kְ�f$�����ʏK��
%ζ���iO��,�ff@?��զQ_q<n�F{���Јh�c� 5�!�M��?������bK��Q��B����%�Y��
ׄbC]��Bܹ{W��Y�ĩ(c�"����?4�8	2J�߰'z����]�'\�HDj�s�Y��!�i9������E�r���[Y��{n���m,c@[_�qW��qѮူ��vV�0��������}N�i�\�m��jV;��H<�t����!�C"��K!��\��CՑ���\C	���&}vv�`I�V�_��4�%JPm<o�n�[ʋ��(�M�z���IVA{�+���:��h��^�L�0�8�\��"�@]>
H!yM*9Ӱ|���m'K��"�9$�]�[-y
���t�x�IY
��fM-�5������5�M%z�Q�Lʭڃ�=�+�-ZTPi��B:D�D
���GX3�����C�NA3���Y�e�k�{e�zݑ77�܊Ri��o;}���$�t�/V�09�|��e$�i��i��	��m�E^E���v�@Y(B���$G��%g�z��+,�-�;3f=�G�s6�l��?L,y�)U������n���~��=n��=y#�,ݩX�[��/���:6����6��n�z�����/��2�P�W)o�(��xg׺�{�gu3��5�?���;M�>g���K�շ�-Y�m�kۥk�Ͼ�2���տu�Wf�[�Wg�B�f�p^��K�yd�胍��z�I�uJ�	:��5��GjY�h�WA�7Ϊ��-[�uds��`'I��#��rh��οp�”K6`��!.��%�Qxn	
M�q�J K�`b��ȑUX>�\���|܉_����|��W�^8�n���o�6�G?��*�`��%`Y�'���&��p�;t�8WWO4.���s��ts���g]}=|Y�C cƍ;��o�>/kjB0ݷ���Æ�(?��:�N6[.>�؀�
ϟ?EI�q�]p����;>���}<�b4��S�8K�﯁�;���wΟ?����Ȫ�(�i��ʩ���r����K7��hI�T�~��!�=B�$:�I�$�D�#��~$X�[:��s�vHr�{nF#;i�b��V�sS���z3�F�"��-ِ��?@������@R_�P�k�%�E�C����qFW��'�.`�@饼�^B�%iU�W���hF�R�$��I���.��X���E�U��:C!+�,�m���d�6;�����+
y�$�����V�Cf��:m�?���|��RiK-%�p���|�S�-r^�|3����&.��W��Їh�Yc�ԩR��5�b"�K�V��l�4�	���_�Epژx��ʧ��]�"%od��y0{X��1:���+:F���&&ԝm�Fg��W@�pv�>����س/
�{赭��ڵ*pn�h=�:�P;�>��]]QKty9��'�C�-֚�}�J����F�$	�>�Еr@�3�<X[�AX��
�ӐTp+�3{vv
Qr՘�`Ӡl�d�rF�bC���n\|��a/r��c��{��$�>� dǔ)h�oij!����m�B~����� M(-�e��W]{��F��'��!�t���8�\��8EV��S&���ށwݍĩ�OR��A���Ꝛ��سWoh�l�(
�_=q"&TrȻ������]�
hk�FVU�����"�`�d�"�������Q@���6�~�׾�F��?8�"���:�ƫZ��b�(���\?�p�"�v��$I�c	L/�8>��E�V�"����M=ޡ^E�Yy��M���s�G��Cx�7!�u��6HN��$I����� ��Y�w�onW]��74���S����Ζ�3ÍDh�#O�����3�^���������~2@�
��om��ky칗�vӣO�(^�	���DL�$I�@i�c������B o���v���Ct�	��MtA����ɘ�Y��'�װ�qq�uA�~�Eg�54<N	A�+nP�S�#�oWb�.(ɆS��4K3��-�i��~\�g�����+#'�gi&:�I�$91�=��?6~y�:z$��HN�i[�}�bK�s�$GV2_Σ[��V2���MǛw����[�v�b��K�@�3�οl?�L��:=�[�T��9�ܰ���{���ꍻv�[zG%I��%I�Az@K�"�r���<�9�
�����_��ちn�m?,B������%�_z��b�-�I�$I�$I�$I�$9�`����0{D6�F4��~$?)�ؾfc��Q�q~wۮ�>'I�$�Gm+8&��n�{��/C��ŠgE([��|tn���W~|��=�J~�C�	�N�$I�$I�$I�$�H z��"�/bێ�>�u�c��n��Q�>�}޴}�����$I����ƕ���_S9D�&�fa�-�\WW��v'�wԻ��|�1':I�$I�$I�$I�$G����f�Ȇ$�1�:�R�Q�13K՝$I�@B�� ���c|����ޮ���	���[�{����M]�~�wFG�G�V��1':I�$I�$I�$I�$G�h�l��H�i��$I��<���pV|�N<�4p����ο��o}�7�g�;)�Y�-�I�$���+M�'�7���C���Ez��U�LU��2;e�gpDgPQA@A�YѤܝ�����T���O�7�=?�������D�%J�(Q�D�%J�(Q��x@�ch�<�˿���ID��:J�(Q�D�%J�(Q�D�%J�������@ǝ(�t�(Q�D�%J�(Q�D�%J�(@�*znn��-8��?�3�xD%J�(Q�D�%J�(Q�D�%Jп:����:J�(Q~�ɧO���[J#����s�h�K���L�1�vy�6��J�Q�'O���9��T�����Q�X~��^�ǀ`��J�����F�,�狩7���
���hŷ?��վq���J�~ I�M0$�$�>�o�%J�(Q"�^��:@G��U�Ǐ��ƿ7�k�7�:wml�S���\�v���Se�7��Ƭ��ʏ�{���d�=�B����o�'���S�#�(�|�X��j�Ѝqj|�����ãӳs�T�"^���Ј��0M3izKk~�64�����؅���>�<<��46<~k���_���9�����w���{��E'�GKT�T��X��ћҾ���q�%Jh&y��0��K�زf���\ry���_�|8-�4
L=�9uq(i�/)��.\�1q�9,<zt����i�137g�T��s��+�FBC��
_�r�ԋq�$�\����k����I;5=c��/<z%��ƎN��y��R�J�sWҔ�
I3r���|97�SW���)���8��,��+�dH��rݜ,�+�oL�Q�G�\��;9	t�(Q�D��+ɫ�����t<"��%ʫt�^�%;��ͯ�v���L~�������\����c�X>D�_X�(o~w㎃����0pϣg.J�eN����z�A�y�-Y5{>�.�<�lՎ�}�����z����[w��~�[!te^U�����yl�]�[G�\X[X�і��l+�^����D`��h���o���=}�q���f�Η����EM�>�*ӊ�;������_���boܼ�߸�/[K>�(\�W��&I�tV����5~��$��e���_j��?}��W�65=�:����2�u��2�w�<MS��w�=���M�a��2��w�xd�F��˚6�6ܾw_G<'�������g���ٹyjlh���b��̘�4�Ì�U;�ۏ���l�^����v}Q�ڂڍ%
e��?w	���`��
�	?q%\�t���Euϙ
$
W�V�+�sd�5m*m\_X'+'��o-n��W�4%4w���FkzI	]����?�ֺm���+î_�>��9��8(�?��ͩk}03k8�>��֢2
{N���0����M=\�M���KW�Z��;;?|�;�r�M��^1�5[ʚ��7��������s�Kq�}M�WG�]		[���V��u���Df�n����5fU�9��1�Х7�p��V����Fߖ�fzJ��/\�-�5�+�;q᲋���=b��_�V�?�,5���P��F]�"�����{:,29�J��C�m-������D�%J����t<"��%�+u�1�7�d��p%1ҟ�\t"{�|���A
�̱����5Y��{\�0|&��|M}PEHwsy�6�8�w�״PD���|l�<���?~��l��x�'���.4�|����?o��s����j9�~�U.���
>�*����ջ���Pm��"�V�ol���F*��RѴ�V�+@��y�R�bEK&R<��+TL	�C!��*�����n�~�v�������7?�,��v4������{N}+�"���w��J�k�T�=�"��k��U?�5u�|+[�շR����n�H��b�f�m:ЋE��#'e��X�5[*v��ʙf�a}qQP2f��V��oܼ�і⒝�b��SB�W���T�T�n1ӊ`��"��4��jI���S����zd?��g�J?��:�W����;�_�"Y�4c�%�)�ū#����5�h9` �����\������,
�Z���jB-�ܙ�
F���1}jQ!�
��zO뾬�_f��6�7Y��^���-E_d����BN]���ͅ-�����P��+���a�ſj��� 5��dD}%k~�u�u��Mѯ���@'�Q�K=�G�:I�-�hP��:�n���7�|��T3�r�C��	��x�xd(a곐���'��)\
���<u���+�}�Ā�֢���J,�4k'���:'+I�N����\~�*�Ӵ8)S�sG2؉̕%��M���[�Tڔ�G��5��@X����6������:_�Y�W9���V�5�[WKk�J�t��`��l9�[��|�����2Tys�gu#_���W%�|GC�ۋK
�Ff/hCI��iSK�OcGϻ�[���ܛz�|�����6��6�H5�9��c��_�Q�D�%J�@�#�(Q��B�_׷��F:���lzf�ֽɮ�g{O�G��>�.ɞ�ܟ<r�|g���	v��&<����g�?7�1l��`z�1ޡYP������.,l��	w&t #�8����+�R�O������\P�����K��
y'�_�OFy$�?�'��vv���d�S\�������C W���'�R���*d�4��f#&C/bw=�ڊ�@�8W��@
�z�յ�sA�w�o޽��{G�4���Ῥ�^�W�3���n�hr��"&gdlQgi �F�h]�x"�o�ˡ|�q�q�?����,2P�򠺪���㜗923�˫��N��|�^��/2�V}R���/nn�R��`f��NO��ҭ �S���a�Bm-(��X�6�J[+�I�X�����Yr�/�Q+t�l�Qu� E䅅Gcwh�J�QN��bU�쥫�-f�{��|�_5�!�R�pht\�\���%l(����^B�k�q^Zg�()+��K�
��e
�!c��mM�Ȍ�l�a;�l�1P���Q|9?�\`�|�[v�8a5��sr@����:���V��ƚ̂�vWVKw���bO'+
�9s���>�IY����
4Uϭ�+�qE>�N0�v�\_�UXH�o����##�63c�2��T'h��cg��wzf�JCprl�R����$�?��Lh�`�3t ���XX��㞕6�$`�ЃZwix��o��|��A/�5�֖Rq���Xs�[U��+r�6�4�vFBMX��dr8RI��b^�
���4�N<@+Ѽq��VKJ�>Ϙ��#��F'��n��\r9�.Ūa�/�ƚ�o��r�+	)��Pyq��d�έ�$g��Mh���t
:�;s�)E6s�/��%�)��VA����ۊuͪ��TƢ��l��)���yXB����b3��Tu�^WX����?��l��ѡ��e|��qV��b��]J�,
�`i�dr��!�����6�k�����Qo��9MDT�_h���M�����2?�`�����~B���썙�ᝋ�m�(Q�D����a<�t�(Q�h,ónNm�Żڽь�z�A���Ph��3(�Gq<��%P�g~�C*��h9�cr�����c��Į��N�,{oS�'��]�{&����.��q1�A�Կ$N$C�
��@*2n,iD$w<"���W�vI'�n�^�LQ_��!S�5{���'O�?��#ޭ�^�έo������B}���tT+��6r��z����KA��éQ�b��+߷���`9�+R%�;�d_“whd��9�+'9������µ�98��\�U�iȸ

����a�ӐpEN%�La�o��e�ߪOەb�h���:_SP+!�2�a�޸`��.�o+_YT�
m(i�0@�/�	ڋ�h���.�
s�:��s>�h/����h��X��_�T���>�^�O!$���Fd�P[lȫm�A�.�{h��ʼJE�,n�4&����%�Z�@xUI_S?b�۶��=��r��冔m(���_fW���T��d�B5��r�u9�ʈ�d[� ��M�q��dE�SI#e<=U8/�M�E�-�j�U{��ן���g8����2R̰�ǰ�dyZYbjW��:��+�E�*��h}�w��rO�9D=��/(�́9����0^K8��M�[����Ǝô�b}�s��pt�1��)����A��8>�>��do
2N�3t��L&"�����2,CRY,��R�Gi�Fr�bd��5�цR��`^��l]��S��s���P�la��Vs���4i����2��d}w�AX�А��>Y��"��$J��p]���C�L�TI��t��3{^C�s�2f��Ci�趿�_�J���6j	�+�?�X�h	G5������n�����.��H(���2
@3V:�"��v̠���	��i�y_@�7	��lp1�C�φ<��2��=�͌�g�*݉e!9[�T���f�q�jL�X�/���yY5-R	p
�2���M���<�NOL_\���IɍR�)Zݘ������<`��E�p=��\���8�D�%J�(Q��h���J@�#�(Q�������7zN�׹��ѳ=�|�I<����f���_�Y��� {@'4���Wg�I@s���gi�������㍋�xU�	���I@
��罟Q(2��a�<A��}�}|P�u���M�D��q���(Q�J�а�����S\�NϺ@�_�m�(��$>�A6�O��01
���;�0���n�Ӷ��*g�>�Z��+�yexl�ѓ�<���z�m�|�»��z�`�����
��|�iY5����Ϡ3v�x>��g/]{�Prj�`t��ZZa�S�Z�ˢ���:o`�f�Tfն�
�x��A����,
.�N�>��w�K��t[i*�F�D�G�78L�^�\�
{�p��]�U�s��P�����$a���aВӤ�dA���w4�
0TA8�5	<�zg}��ww�i�V�c�4PK�6c�X��e�a���;8�Z��-�*<ɿ���K��Mt�d��
8S6��	2��{��ZJ��_c�����o���.d�{�%����U�5��[������ŦS�f`m:4h�9�������b>�\['�h�]4�I��4H���q���ڮJ*o��L���v��b�'/��2�T�f_��$��`�i�cp�dGˍw06��jا��̩��ykO����{��g�DC�R��a�h�&���e���<C��O+�e�:�E���v<B��_Ʋ�v@O�r*��Q��;j�il���Ke��J¼̈́r渝X))[�_�r�X�~��ㄅ&T��f,k���9�h��>9�����v歞a�hl����=&����f�j��bV��]�G���Bm �W�5�9×ߚ
��
�ww��h>��j��Y�(���.��
c�w�H���,�m(m|{}�9��x�"��C
�{�l!S��h�8q�2�fR�Ѹ�I	�m;��
}��>� 
�d�̜��CSo�S�i`<�Ś=;�7w��|8xo�q���`0�$촮�,�V3��0��ÂM��3�}V)<�m�aBqFVFE�8	���e
j=t̜�ś�P�[���FAȸ���W9w���|t�(Q�D���I���x^W�GR����'�))��Jl�Ų�m �"(Ģ�	0�E��,�X$�I�6�B��T>O��v��0�a�9�<Ow���soO��sKU�ۿ/]��%%%�P�4[��>��QNP2t�/*ʉ�I���X0�	�@�0zm@� $� ��	��N";~��>���P��G���{��*�+!��l��/���A�nCܮ��`R�^�
���Pb���v���j0��N��+T�h5(�J˧�w��������n<9}��ek�M�PKEK����4���{]��FU�^d���h�'��j�*�7�~�ʌpo,�C��a���[_9n?(�Q
D5	��Bۮ�z��f�[�C\��h�?=��znxo��KW�џ�q�i�S/.�~�I��I��H��.^U��/��M0n@;�?�7��?������������18�!y�O�?�# wѪ(G�B�T�ܫ+����L�D��5����B��'~1WX9���3�T��o�,�$pp��-� ��x��>���p$Osq��~�
<�˯ٺ#����3:>��l �i�@u:C`�Ԑ�>+j��f�w�2h�g��hB�7,$X�
�4�h�cv��}�=�|�՚�/��=?�T
�T�ӛ�h�Ѫֹ��/�B}]J�_��-�\s��xs6ו�9#��%ֲ
�h�}�����C�E�n$B���X�	X=}�r�5N�	��?�¼��pP/r��o*��::L�k��[��3���{!Y̷��`���^O3��A�hM���X4f�i��B9{�UÎ��6X)t뻷It+*�$^��Gf'��2;e�;��5�����qʚSR����e����2�@8��Эi�KIb��4���?��i*��7�f�,4:��Oc�HtS��b}a�ʄq�0�rY޳� ��fk���om�a��e���J?Za�h��67&�Q��n��)�}vN^�Qb/��N7,7*(KtV����5-���U�p����z�&�`3&@
1��V�L��7k���KJJJJJ����S����!�:w�`�h��u�Gn���nI����y����@�/�<�{���1��_�$��'�H��?�
�M�M.o8&;{�Z� X* �a�O�h)����V���\y�0 ���Nd�2�̋�P �cn�@��H��R�Þ�J!�Cw}tx��\�
:��8ښ���x�� <�_��\,҂�ҹ]�qv$�X{[�����-�,�+/]�F����2�@MS`��/��4_��g.\��4U+��%��t�_>\/���B6�[�����*=�G�Nῴ�N��T`ݶ�ON�����BE�*���2���OTq�X��Ɯ�z��oSV���t.�@j��$���D���@Cz�ZKb1��R��#�5�0
���`��!\��	l�M�bo,V><����m34V$�
��ћW5 �e�����>�n�^�|{tJmyJ(X,�F��|-�Ж@���{�C><2�:�)��*�{gB�_�Yf޺�,�!o����KVJ�#'F�y@�z�:���NY�){3���!р�~l��5�d�ô#Z��*,5��l��"3	g;ο�[t�Q�]�K�j�OfX���ݶ�%C����Itv�L@�d��2|��r�?c`�����h�%�A��M��!l�?�c��B\�_q��8My�3&ЦD/��"�4��`T�
SZ|���t��4<#��7��;|%�Ҕp"�0#�h'X$:�1�dz�{	T�
��,[v��ۜu)�\��v�?t���w,Y���4��9��^�&e-�_6�a���>���(6�w����G��i��Y���LD��z)�|bVI���J&j���
]RRRRRR1�@קtII�C�=u���P��n�u�����oq=F��D����6!z�$��h���$tʣ~����,oA��^r�wg.[�\��0����p�h\�e��~�9D[����:�����j�~�b��˜Pfz��4,8r��)��F6��	�$��J�K��l?��8����S�^�:n���mz�p���b�_��%#����ab�E\8A+mO�Vp��6�(��n"u�����	�x_[�P��?����}ǎf�	�چ�@��0�K1GoIh�8��y�rE+E
����Q�[�(h�Nx �m���ʋ��$Ÿa<o��*��N�p��P�a�b��@gB�O���M��JvHYm�D��
���Ј���j�~4>�Q�^�m��o&�f]��[���0ĩp+-��hĐa0�Y�G�t��b@�'�dg-a���
h���|��܀�7Z`�u7�M����m��	@se�a����Ms6:!8��4��%�_(��zmc�?���6�w�r�;������s4K�kS�-}��,Ճ��0>5=�m�l�Z�bh,Z��
4�x�5AI�����+�:!t��(f�:-��f��8>P/�_3É/Ιs0��ߥ��Z-�6E[����t���1i
��������'�����8���1�[_��bZ�Qu�8�
�!�Y/�_n@ir4%�v�J���pv���㼃7f��m����f�]�q�^��f{���f�r�m�	S�ӹ��d�й��6/�܊e���IwKb*FMR�^H�!f�} �d�đ�f������Ø-iK��0W����<Im���������ш]�>�KJJ~�������
{��8
wz�F��;@ "A�{�his*O�	���9�Q���y�۩6njƯV ]�����'�8��w��������ڜJ���O�.�f4"��j��YK>Bg�p!3~��̥k��y�{m�5���e
B�����a't�m!A�NS���!YhP�S��*�W��	��y���e�/		_yszKKI"��Fm�':�u���r��/�z8x17a��>�ũ�:�9m��أ�ҙ�k"\y,r6�q)<q�#
�V��S�:�f`��l�=��&��ԕҼu��%�_ė��ARqKr� ��o�l�ބZ�@'�	�����"��Ξ���
�<�|n��,������~�6��z@/{��4Љ��ԩ4;X2�@g�7$�����?��3���;�^��%�e],�n���	k�
���m7!̻��v�D�=3o����;:#΢��x�No���|�:���;Uhit�\��+��;��,�{�׹�ŽFt�5er����"�L@�j��Tp�qvBp�@�8 �z���Pճ���(ĬP�h��#�
mа}y�H/Z�S܁���k6}�� ���2h���?	�a�2�H�m�Ц�aM�&�DF��Jov�DWu� �w6�+qƩ�����̦ �3��(��e<�.[�3!�Ib���gl�>��,��8/���ЄA*���_��2Oc,�%ΖI�D��6�6J��V{D��w��n�"�$Na�Ja3rsc��3�#n
O�r!y�c�.k$�`
,��-�S��4͸�O��

�m��<z̀r��%ӂyL��7�!v�J��())))))]���.))y�4�3���&�����e��&�bD�҅u��t�zX���@
��'r�G�i��k7!��q%Ef��#Z��{O���:b7^��vy^?� 	Z�<�9�ϝ�v���*n\O�n��':��������u@ C��n��}����
�<;�l7��W�h��24 ��/6DR����z:�j���"m�zBL TU�*���A5G7�|���\\�g�R8V���k*Zs�����B��#���>�f�.�h*�
�QY���7 *�E'��>�tNܐ��po���]�i���"�	~Y����}]YJ���:n7�^[ !��E���j����C!yzj�e�}8Jcb
38�_x �"��ڊ=���Ñ�@�Q*�`��ok�Sз=��0�6Ƈ'j��3���Zp��|�[���/���T؃`��/�%�u�i��ǝ�+�С~F%�ԋ��x��NMQ����7������#�;�19�[�1h� ���ґͪ'>���n�Wm‘7��G4���4v_�Qࣱ�M�`g�&�ya�����+?г�����K�њO�:l�/�'L&z�7��1%�Ť�;�w} �I[r��O�,�y�u�{hk~:���g���ެ�Ԩ�:�{�욨�����
�^y�b[��+�ae�e���lX��Dc�"Q�)���\���[!c��d��Y�ܬ8���j@g��1Fe&O�Ă�j�����f+��B�V@As��>�9��օ�#���3�ͽ��c,О=����6��K�d�b�^ݰ����MU���{�-1_,�j���5�i
b����%�t$��k�������6!�O}
@���|���}x���G=��X���,�׍!�ǟ��1��"
p�(�"���&��xwrb�SX�'�k�X2�ņ�8(�%OГ�W����'!GK qx����P�w�Ӄ������@M�h�&`^?�㩈��j�s�Q
0Z�NM��ҕ������VH�ˌl���4�y���̑�·$X����6o��q�Vg`h��u/_���;�Ȉ�d� �u�#F��Rr�]��/̇38�AE����%+h��F?���p�"�S)0dg<��{��Y�?>6m&b҃ך�J<�f����M�uZ��ձq|
��7g���9(������K5�)��E�6�-N�b@��z?>�rN��h���~"/�>��y��g{�4M�	�
7��p�ט��N�Žz���.7�hn��e�����`t�eifԈ1������E�X���N�e�R%	+0H7�A��oǀ���w�~)�����,]��e�&�~z�r6#jWA9>P�vˤ7x�j�5�R���f��MGhX�Z��պy�V���;~���p|�v� ���Ǧ��9H21���aS8�����E��h��2���~f��|��E��_%��ۍ�cNw�.9*���C�O���s�o,{C�,�|g�KzS*�GƂn�b`uՉ�{��g.�ydWU1��a�5�!�����,�09�
R������?w�W\�h�9�R����z���ʹ�fBߴ(_���1Jq�H���H:�Y�����t@��:�<��UC爝�K1t0j�s�v9�t���Ŋ3��V
(��zZ̰��2~�����8s�z�Ck��QC��TRzӪ��(Y�X��A�2�6����ؤTn
)�
�:�����X�e�ݶӍ�B�Rڝ6�~_,�9)ꭧTLW�bQ�\�(���&�Ac�ф�;q�Rs�"	s���4�]:����}�b��Z)�ԧ0�T.�5n������&�Y�{0�K
}\�N��2��xC]RRRRRR�lBX�)]RR�P	U�y�.ARO��|��+,&��Yڕ�d�cb��<~��(�2�&����N����-��{Fy�4��+p�ɳ��B������5"K@��Rث�H �lO�;�mw�
Q��!JQ1�=����Ǽ韸�+m�<H��>���a�/�i��]I��m�=�hѮ4_��o��9/l:��4G
�\��ꫦ�.sA{e����M�-��
��L�tJ�:6&g`T�:�TLUm�ΩEzs�e�2�@�i|�7��<�
x�^`n�1hU[��$u���?�ɱ��w�UH�^���ؘV�T��k��#�ߖ����y'ɸ����5�����9��i��Vâ(4�+Na�.��)�_!/ZW~�q���>cj���Tagx����qĈp�+�u��n����H�l���JX�`#�(N��mJf��bcjÖ�;z���48e�%��/T^�����Q�}36����4Yqi�Or!)���n��H���>�e��j�6���P������=?i�wL�(�3�u��:�UW�`/9��Ef3:�*J�T)P��jK�J�z���x���F\��Ԥ�����$��\�4ִ"�g�]�|���AEF�Қt(�i�Fh�Yf� `�e��߭I�V3!�S5\�kn�Ԝy'T�y�Ĵ���rjg�D�u$���]��+
���c��&�כ7�7%���'Ӛ���X;�@��ȉ��)St$
�M=~J��n��m�r�6dTO}nhK�D�Cu���J(�	�+A��BO�ӭjS�����<�u��M���N��ᶳ�4)ќp�ɣɲ�ض�
r�3�@y���pxDPi�v�LzW����IU��LłY+��Mj)Hzv�`�=�'�GW��_�֊]RRRRR����U���
@קtII�C"z�1ZT�=N��mo��8��;��g?��s��P?���n�$i�i&�R��w�,۳ɭ�Q��g�HC�$u��K��]��)�Tc��:�3QG�s�����N�~iE�{Wz�'�%�jW���Gi��0=ޞKVi��-�-��66Y)�Y��]�nm�K&TB�H��������s��KA�H�Ʌ�Ы\/m7��|wc{u֕mBG��B��7'5i?�mX��׫dז&�{Y�ĩsW��o��6�K�bh�v3�[~.6�\��~v��k���4��lZ:�DU&�aSO�w�O6�{c�W�a]e��[Mp�}qAb�$ao�O:N�s�3C=;�Br�۳}J�n�W�#S�q$�D7����z��s�9�ns�o\$�!����x~~.)))))y4�L���>�KJJJJJ	����
��*���@ ���.|ɷN�8�犑2s�j�൯]IIIIIII�@]1��S�������ђ۷o{[_|/��!(�#_��|;�;�Xq|%�DIIIIIIII�]���KJJJJJ�"����n`6mD�-)�?��)�+��7}����E���N��D;5jP�A��7$��h�4EDP\Xa�#gfǢ� j�|?s�0��g�����I>g��i�Hh@@�M�@�7��Oi�4w@��	�@��44@��4h�����ёe�/����F
@71��h4T:-��}X��T(��f�<���hd�i��3��.
�fP��x�٘�����J���kд���C��6i����K��Tv�
�����f�w�v{��'������I�,�L�=��9����FM
�R��1�����t�8����ԕ�(<L��V�j8,�i���k_i;�Sr9���8��q6k۵�D�M?�;?D�Sl ���a*}�x����?R=�r��T�)�����4}۳'V���^N��u�/��ɉe�8��v@�y�?�FU�A/V�g�S�l�
s�kw\�i*��aʖ|sh�ҙ����yV+�,��j�ޫ#-@�z~|�����E��[N�6�u�S�\[Uץ�|~^r�Ew�p2\��Rt+�ٴ��p�ec�����:t���lN���ٲrgS%�7��h4�EJ0����n��f]�{���n	Ιd�6GZ�����j��@S��M$����[�Q��|� 5����NLL��N���V��8K�Q�/���ެ�����i�f�������>���x"YmO)C�%�_�O�&�vy�g޽�4D��К�S�.3�R��/<[�{:����nt���y�s�i{�6��<n�D?�4>m�>�?���,�3(�������!�K����է�=�vG^���)��:���B
���VKSX�,j�w�L�O}�Mh��Ul�ީ����p`�O��K������`�n�f�[1�犽���М�W��X�Q���"f��r����i��6�I{Od�}E���������|��\ٓ�aK�P�A=W���x5*Ε��?v��-�jӮYQ�eyC�g�O�<�tF�����rx��֗����Y/�p
��v�9��������
��?�q�+;����������*�}��vlprfsgW%j�d-�501��<tGrau��O$��7Q홦����v��[;Z��N|$V���8	k�6wz����	5��y��Ux���w������X�ҥc�Yer~ᗮ��/<ze~y�ѯo�6�A�3��3��q�9�@�h���;��8�����s�Z�t��I��x���y 	!4!B�����<	$�$3f�q���/W�'/��Yw�.�ԩڵk�>��O>���
0MY��_-9v�����=���,��%�Uն��)e-[�����zz������営�U�ԷM�Q��Kz����W��(�����F�]��tM�o�Y�N��f-����w��8�!��š�fW�;����U/��PRL�J�ù�O�@����ƗǑ`�]�'ͬD�tpN}���W�n��h����W&/����QE���k�|o^5݆�>[�b���H�})n(e<�B���^Ps��-�M���Q�o<z4�q��WFR9-\����ֱ78r�M�,n���h�ݪ8"�$U���_?~�b�N����6r&̭_;�j$�.���R/1�Xj/V�_��Nu������}���q)9��ʖ���'#~��%͛�>{���Oc(!E?Y����w�.{g�7g-�r��'�҈m���-o��?ϯ�pa��6'�F���4���w���\xcF%�78S���s,���5�M�1�����~7y�����ɥ�r����[����1']�s8|�wϭ{�gն�ڂ)?^To�CC�>if�ݯq���ە%�����̮��|Ś�]��
��צ.F��5f�{	9u6Jzp�\ձ�,�R�꣫8�"V�Ƭʮ#'}oظ��y�O�=��&=����}9�Fa��;ƛ�1c�7Y�1K��<�a�'��
ݦ�t���k�M]�/�N�+�w�qZ�ݚػ�́m.��r�GkY ��y?��w��4��$�0.c�D�;�X�O�&�������|�ߚUE�ւ-}7�]&Yuʼa�A/�1�Ps�n��9��*Ք�el��n7���ô%G�ϱ��M�?,���9�4��q�9�V>�|�#蜂#2��:��Г��?}�L�� bk}�{
��(Ei<��GH��j�X�Y��O���n�Q����r=�K[7NE�=�j�,$Mto��
��Y���q^B�,��_�U��h����&�y�zY[�3�N�l�ں��K`}Z9q����w	�T7�j���2�T{��fR�
�Cr���4Q����!}j�_�����ז�>%�N����o
�,�_��x���-[�aڲ�"�~@_��W&��9���x^�F6K/&D�{pC'��.2��p��C�f߹�j�{�ߨ���S-J��U:�X!UqĬſ�^<��IR�]蒧ϟ�WE���N.�RK�+���)����7�@��È��v�u�_��)}�ɖ�Q��~��R
]���'ϞA��"n��:�]HH�"3P���/,-���t��㗇�[J�QЕaU<n�W��ZD���J�h���ƍю6�_�;g��r]�ǛL0d&9�S���][��)�ѮLŚ���wLI����+�	&��@�v�x�X��U�Ƭ�-[{\���}Ga��f/u��1|6�ޜU�u߱�ȓk
Jx��5��W������ً��O_��/����T����LV�P]�!1�h�ZF�����D�9+�ǵ*	��0o�ip��D�k
��v�F�2 ��xI���pg"'��o����2k��K޸+��U�8�Pޟh�F�tŢ�п�_b�=���]�����KIC
Ժ^$k[u�G�$�i�6�u�?��O��:���w⣴�&��C1�5>��]b�t��b�@=%C�J����b�gC�m�r:K���'*�K��a�nj�p�Wl�18t{��յ;z8�ϭ���ý�,O������}�j'�[H��*��U�ϧ����m'0���)eGO�
I�f�hg���HNX��`��X����V)п�w����l�7o�gJ��HS<�{�O3*�Aଌ86�BȊ��6�<|]Uz��N��|�G�֒�|�#��G�%���t��ǯ@Y�JLbD
cL��P�(�W7�#"
�>8�t���3���-o��[����ڃ�j[#��2X ����Z��mڼk��5@!���q�@*:
cL+�wb�3j֬޲[sP�X»�9�r����7�B
k%F�8wy�^�z����k"��z��c�W_�j���Y�K��������|���ڝ{6m@�N����zK׮����N�7��n���R��
�9e�$�
'V�vݶ�'N
��ў�?y�fQִAdb��K��^
L��bU/l�\�j��:8H����/��T����U�Ÿ���F�����G���ާ
�A7cs,��X�0=�T'MG��zO3T���{B�ڶ�`��=�����t��m�X��"F�8.l\O�v/һ�`]��\�.���G�<�d�{�
Gn�����Sԧ'�S��#���oؾh���p�F{&2k�d��&�B�|i�d�$2Ւm�����$��{�Ol,��X���I|*����ڻ�-��T�S�Ť3F.9�w�pS�|��1\A�b�˚6굈�b�������kg,_#�D�Z�(4��
;�V��;�}��,v̢hO�g	��Θ^����jT���o�@31��'M��B(���=��ښ�۰�����CHnv��-��� r�8�;���	}t"����K[ڍ�iO]�YCw�1�B���HIj��w �����t���b�����z/_*���F��ؓP�i3�?%��n�^F(�&�Њ�(�a��Z:X5��'��~���0���A=�/�i���%����� Ⱦ����<�)�gv����[��	'˝JZb��ᦽ	h�2!2ۃY��s_�i;�z�Q^�Zا�@U�<���k
l��M;mQ�8p|��f��9�4�M{�� jS�nRf���d=�n޻Ϟu��LЌp{�э2�n���榸�Y�1y1�=�OV����'S�Í�T��%�)�&�pa�̚5.W�L�y����@v€�.g��x0��d�I���Άi�N
O�gL+5Dbu|G}��Y*�(�H�$�88԰q'yT����(��۶�틽���y7w�C<�vM@�����/�1X@���[�1�U�>�6~��Y>�$oS�ŷxF�M/�si�d���@G=�T��(��Gd8�p����a\��|�#��G�#"���t�d��|��W����Q��EZ�9{��s����@F,����B�A%�Ń��̩�&��b����Y�=I��0�~�R�2ք�?.��j@���yA��	򻙒8������U7ﶨ���ɳx���ʸ���XG�F� b��2�I!�F�������q�!t:�ږm]B5��R��ђ������h�kh�A
��vK�s�ѓo�\*�����k�h�\�3����P'H�R��A�Ϭi�a�`.
��>l�>]\o�AO
е�����t;���pDfd�8҃"de]I	s��i?��7gUAE��
��K��QY-�
ڝ]�⋘Vٷ#���*��Z�`�:�$EJ2!i7'2b��G��b����6hzh��M՟W���`��
�oܺ�G$�P��G
�8z���g����u�w�e4�ާ��G�4D{4lF��+ J8��F�F�`�T�"��7���%V'���B4:���4���U99=�.�
Y2�!}�R���R�4�f
vlpO���R�q�Ԯ@'�he~ú7gW���-k/��
3B���3{�����1���x?�K��L�u�^�Xԣ�O����M�l61N:AR�3�T���UԎ�W�8��m9�|g��9�I3���E	�Ɠ����n	fd�_�6Vĵ��X���߸ޠ��g4O�
qJ��ڌ��`'O[��?ZTg����^gZ~A�1�}�O�ձ8y�HꍳzݤC���_a?j��e��wS��ɚbm(���w���)`#A/��)�Mz� ��*�!1E��
��N@ϱ>͉ܷ�!�Ӕ�M�!��ɡ|���,ͤ�'��KV�i�3Ә�>��*mѿ�)�S.7��D"Y�>z�=*�@��	��g ��-	��i�m'���{}�b�4m��- $��"�&G�m�Sb<P���+E�,��}�IHS#��1�!��}�Y��SƎ*"�?��ۤ�[Gd4��cwdrEMr��Nm�:k��%C��l}���V4J�T�QY��T�]�M�)���\�"�$wNs\{n�:"̴��KVm�[���l��9�gV������կըV��Ie��|c�F{�\�>��G>�|d=j
�����:2��G>����&��*",��b1	~Y��y*8
q
 �۸#��
�}��=�(O Z�l]GN�.�&�*G$X�#�-������K���.FF��4~俒xZ�uִ$A&:F�&�e5[�K@��HOQ�~Kb�P�N���D�]Q��ő)L0kro[�*��,���ķ–����]��4Kt1e��߹WG���v��0)2�Cd��t"ż�OӔV�>�:D1~����F)��FB�X�%2N�"� ��2v��݆z!��'�w�wĆ�/T���Jg������̞Ǝ�� �Sָ�fD�7:�U�{$��)�H!�1��?�]�G
��
E�.،O�k�~R�(W!�x�`L�
!�Fsy[���D�bI��u%��u�B��t�(�S��H0��՛m�DJj�Q�ˤ�1�;S\��]�4��Q�nV[ r�2���_U�N��Lq��F�&@
F'��?,�՜-�d����O�f�2cF�f�#�,���4d���?�4g����}\�t��Wt��6kh5@s�L�3"�gbO1�y�
�O��L TB{T��P]����F��|������k����9�6���/��z�"[S�j�.l\=4�8�K�� t��x��$�F
��e���%+oS�`�>R~N�ZeL��
[
7.̤�Ae��XEs���cW�%�#E6O�/jk,J����[wP���@������s_kC|��UM��~o���3��M�ZsS�)����O�!�t�‹�6��\��$��h�>�Ճ���b��@���V91����lA�&��݋צ.���F��0�L��%΄%3l���%'��Q���d�/��ԓ��2ߝS=m�6L6�)�q�P��=[�ڶu����=�^X;�*�H��c�ܧ���ǖ&��$�j�I�݋=�q2�N����x�_�qSy��@�O��IM�}=9�sÒ�2���`�<��ը��C�f�>�
�%�b%
�S�7�e����{�[.��p߀=��{81CS��Sd=U�	�k��V���&�
&a�
�'	9���]*t2��;�C��G>�|d�s@�O�@�#�R���.Y(.^���j��G���_!N���1V5>��-��K@
���u$�E,��x�h���Q1��+��T���@G�J2��L-�Q?�jΊW
V�H��J��N��$v[�2��pϵ�w
��xmHB����v�-���-�u?����� &V�

��n�mɭ�I �X����-�D�F�!��/N��r����-IH�
����(���m�C3~?u��;L�t�	���{��Z���-�2�ܽ�x�D�	p�t�9%n�JCw��P�"/`0b�K�xC�&�bN�@
ż�
�@=27h�Fa�gq���@�:H�^���IB��`(���zo�;u� �P>��'W6B��'�-��
��!&�(�E-�ϯ*���gm��3;�#�����P8�ho$�F��Q�Aq����l�	@�Ɲ�x.J�=����c��"�2�Z��75"����z_$�f��#G
�d��l�/��Tឣf�@+i�`��gHn*!�Ԉ#��8����@���(�y?� ����E�m"`y�m�����#7��J,�I�m�IwV���c�:d��Po3����W��p�6�b�8�h=�er��^BG�������"�Zψ�y#�K�3�Y@м 6�>�r���	hUq�o����P��fN��h��(�1brMa���k�����܈ɨ��hS�\6O�H���{��^K�c��@�ЦcH�a�+�j��� ]��Fi<�Sodtdq�Mj�5*`p%��s��_N���A��Z��C��Tܛ$5�`
��L���=�A�d�J���Um�`�B&���O�Q�Q���.��[��&��ӑp�~�:�oF蠚#y1���\�t��_[ ��_�
fk��J&�.�:x�ރ�Jh���r@��0C,����Z���$$`������x��}�,�?�#��G>2��:G@�O��G>~��:_$�|�=c��PP�@4�Q���� G��*а#�{<\Ы1�bXN�x-�&�/숡 ����?�����3�q���_o*�	@?�,��&�]t�Q����x�;gFQq�Y5-�3 5���*�<h�&tWd�Ռ��*4iY�@`"	U��&ɟjЯ]��wa����ED�S���	h���AA�R4�	j#�FA%��8)�X G��p?a���;xj�}����h��"o�bR=�P��ڢX�Nd 1�ё"N�И�q�K�f�(��A��Qtێjh\��#��0U��=ۮ��
["0t�Ғ.��܃詧x,$�,}2{���–���/K`�"�"#2*r��u*�FϘZ�)����EDn�l)�K�h4p^���g�"���^��B5}���$^B�"h1Y�;�:fJ:�Q�0]�H�B�p27#2��C��cD@�;C!nH���vqiZ	��4oG2\cdd9��i�H�j*hr��%�S�7�у�Rٟ!��c�(��X�AV��tT������"@!B*C�
��vŨ���qj#�X^b��~��'�Yߩф�"�:�@��njuq�|=d<O��������e%
=k	a�1��ؾH>��zFJ��l��f��~z{j�_N�J��"����N�Tj ߥ�6}�<B��#�$����ap�F�Z�*$<=�����Y�2�����	%�)�@����]r��]�K^1.�0��U|�@inS4�Н�%�T�pz1�#�h:�F��S�W��n���
��S���i�&���'��$Ɯ�(<��p?mHjo(u=9��\��II�bͰgյF�+�=V�Ey#�\�o��H4�	S,�D�
�y<N�ޕ2& ْ��CC��7�>@��M��ʰ�#��G>��OZ%9:2��G>���ЈX�\�P�#�QD!�S���R�ٸ��{d���B��I
JV� �\�i{d2�����J
�H�;\�.�/&��c��I���Gk���V
�����B�A�~�n��"��ú�'$�y�,^��W~i1#�0�ȏ�����JD@C��I>S�)
,H/�J�m��#��Xh��K���Gcp*�c�"�#�) �K���}��ƻ�o�34fU��V���?�+�ɂ���Ȇ� `L^mg�"fPH椙�����w��b%^NH	u�t���7����w����&�@LAy�s�r�PC�#��h�����ҧ��a��2dCE`�k_.b~)�/hp�jM�0F4��0�T	@S�t�a`���>��v�GB���@۟0��+���R��s�`K�o�Ƣ�f�.��o�F�ul�����������]�~�ա����ڒ�Йf��j���kc�@�{��,͓֖O1�vy�"P>С���0P���@۰!�k�Ċ�R�w�\�(��U��k1/��1�oXkPh�3�ip@�4�����hc-r��P�6�)<Ym�h�>N^��K^B�de�lI�Yir`5[�@!�3�hMxb��*����@@^TU��e��X�`1ό�sw1w|i������B�˼0��؇�$�HJ�`.��?�6$�#-��St��R!_���ݯ�8M?����1��WL�\�y*��"�K1.�Ǝ�0�O�)�č�ȑ�>B�#1��DPc��%
<?������f�A�WJ�� k��|�<xS#]�~�c1�I����s��=~qǤ2���q���_	�s���G�¥��U��Q���	3��	sQ��G���@�1�]I�9t�}�k?��D�b�ʄt��~.M��,d6FF��)�jPW�D�Y�I6��싛]�C����G>��s
���:�|��_@��v8��W�u
�SRx����	@#���p�M{Z�Cl�4sX�؂�d�Y<n�FEh+p�XjZ�$U��:8rF�f\�b�"��[�qѪ
n֖�x1�k��R_��D@1�S�zV��'O�6x������m����/���M(�7r��>
��@�؈Y��#HA!��>:�=�bHH��V���	�(��T'�3E��D"�5
��&�	:�����h��t�
��z∉V���m!*�CZ �JF����u��H"Yc��)Ej�8� ����
�u;�߸ΠC`GO�@=�4~��C��$�7��O]"~Щ_�#�>�%�3A�R�ī)�Dy����ô�ȯ�#4Y��JY0�z5{��t���p�0�Е�t�Ŋ�u���hD��P�8��Ҵ��ЕS���%�^m|k�me��26��Q2��4�ՉN��֗s�P�?�MFsJ�g/�11�F�X{Ũ��	@���/�j7�jR�@5蠴�6HP�Wm���3�@CԘ�����9��<L�i좙s�2�Ҷ�, ���0f	�$�fH�G��C���t��x���������d�$�U+b�yK�)���B����W�_���+C���l���@���ЪQ�`h�P�ǵx��Ğ��6@�h��	Zv���&��s�th�
��>��g$��;W��\����+��I�l��s;��a�h2^W9�i�%K��m޲;<�ہ}n��st��i���}�17�Kz|A���ӐF@3i��(�i�1�<G�U��\�d���6!��/�_Du��#��[����SxO�~̜b�O�u3�Ӵ��A^>M�ٌ�ܥ"&�2�˒�wպ���jKoM��ܴg���ָ�]l#4��dS�6&�Sh&��?cy��R�[�S�.�ʎ=�0�4w�MP:g`���]�&3�|�#��G�@�O��G>~}�Ňeu��|�u�%��o?_����x���ͧ��gY������;��,w�4M1���|:wuǮB �=Q���P��X��,D�3%�V���.H
	�uD����A�'�H�Fz\�yq��U�������݇�I3+��ъ�84Y�b��|eJY��,�Xfi�
��9�&��]��G!���gm���j@O^�R�3��V��	g�J��},PQ� !#ފM��J�c��
�rQ�z��ٴ��A
a�h����SPt`i�����m��H:%{�ݿ�z������|6��#r�@�3�W�(�(��aZm��vQT�>�P�~j,�TH
�R'���l�K�U�-Dž�NU�ʿ䔸9����a��Q�_廗����Wo�����:��\C}��XP;��ы��kC�&Ԏ����k/��R�DT�
�Ѿ�>;�bu�&�d@�թL
>�>���R9B�`|�@��V�/*�8블){:d����r���l����#�Q�W�Q������3�4��`NXp�5m�f
UҿD�Y�
�M—�_1�fm���l�e�YڢP�(fc���Ր��5m��:��6���j9m������k�l�:���Pp@R�<"375j�����9���`f+'�B;"*ܺ�����}'EIz �-;
�u�iŠ�5А.?�BqЯL^AFD��&��r)�9���c�f%̚�vz�,�XC�_���ήf�P��΋@�6���A��^�.y	�sYT���05ҳ����6��JF���Gb��)��� �sj[#�`�݇N�^W��Xa1��g��6[����J� o���_<��
;��!(i ��>lI���K%p�a�b��]f9��w�%6���Y	�Mj9ʽ"r��r;�Q`i�Y����P����������WI��A��#[�	w���C¯w.�x�T��a���G3Ҥ�4w��M��7x�D��V�DX���0�z
�c���yK�G�t�<��@6�����ޘ��/r(�ko94}ǝߟO�"�#ی��'Q�^�o��{do�D<m�Qgŏ��G����]�-��E�h���Ϗ�_&���0��w{W��7R� ��5���簿xW���ҡ�g���3=�\>�|�#9t��?@�#����R#�I"��n'V�w��X{8W���V�Je�8qRu�oܵ����BT1��ׅ��<�[�UƪR����'� 	���PD���߾H�!�4P��X��@1h��Wh'����aeN<��HFaI/NӢ}e�N���u�2z!3�u��J(�~�v�ؿ귖���\��>X>��֤1hKX�� �d�:�8{e0�J_8�S�`�BRc">�Bᥰ�V\n3@�2���(�W=Fw�t��Z
�r#Ts��.'<��Z߷8��@rᄠ!�Zgc�L�_]�h��r,h�p������1�v��~�i�������o�:`8�T&�`� �4��HG�A����h�� ��n!eb��@u(܎	�'􁌤����	���cХJ��_H ����d�[�u1'�{a�v���"b�a�>1���G�4޸u�L$ ����ýI��["C�����$!Xǒ|y���&b��s�]{
8%�3^��o��O=��GH�S�C��A`
�K�X�bTY�!�s����Cu�x�N
˜ #��)Ǐ��̵D�݂���m3���ww9��h�kݴeՄ��
Gcz���f��}�Sf�Y�+������'!���{�F/���A<r@Xf�;zjdrLW�Z+պ��41ۆ%J3]b�)\�^�`�<F�Uj8�B��<�Rc�9��Ŷ�<���5�
���|G���$�(�H2���q�
,�%�II^B��	P�7�Fd3���'Fُ�Y)��)y9���0b��X_�ͷQG{��|4�#cϽ�o��#̃0Ԩ�9Q;�J��0 ��c����E�F��q��
	�Wŋ�j��FT��X\H-��X��%ۏ'c�|ꍽF.�s�Y��N�ıD��e����=�*m)`��ֺ��g`�&`��L�T
{�{�ν8� m��1�C%tTH�?~~�#�C��O�`T�Z��c1���'��=x���ߡ+NXw����?�d�22{H�E��{�=�:i��6ܦ��ڑO���8s���z�O�Z�	#bB��0���a
^�*�#
4�R�i�S����>杧@X,9���37�_3!V�rn�����"y��J#(�;�2|�9`7��st>����j�VF�^���&��(y�@.C����B秡�����B���HU�bF�Z�t~��G:��9���.@'4&�p�GW@��E�;�^��q��#y�X-}��D/�fg�g#�D��M�]���~����0�d�_S1������7d9'���4��ʼ|D�����Ч_�n)�������F��\�՝|5�5ƖS[�-	i:)a�n�cjcJ5��dq��"�ca�`�@�0tW�|Hܕ]��"C�������Eet����S�$Q;��UI�
�=���>D
���l��BU�j���Jm��Uݬ��K7+�إH+Ü)Ry[��7���Z��JȌȅnEt4}�<{���V1c~]2�j�k�i�DS�q3N��A��NUؐ�Uvt�P*�eg�0sG�m��1~��F��{�pT
��<yz�k�N�U!����-��Z׉J�A�Зg��e2vfL���A�Ɂ�0aCY����S[C.�� �|����9����Yv#;�������.�q�]t:�4�sS*>^�E�U�����S�U��Q���ݙ��O�:�\�9�8�.�(����D
�i%��ٛ��?��
0P*=B��ab�`''�k�w�}�y�S��h&[������wF0'�n�˟EDD��\mR���NVC)�MI��ka��鲭��'��i��|�tj�
H1i)�!-�3�p������+�?=]����Q%�K�)Q�-6�ؿ�ts��o�.���H����E�Hτ�`��2�r��ɜq��v`��k����d�>KD�3?��r�ݾ#��!G���n}��n��om&j���K�!���}�s"`��W�EQ��@��ʳ��,""���/..�mR�YΧݫ��H�������
N�緓�y�w�=|�AW�E��JA�$lůO�y3�fy��U����(@�B�����|_$l�v��>��%�y�5�9���"�8Ո����ƀ6�IZDDDDDDDDD��Ю�6)@��������M�#���!��;�X�U��$h���������a@��on>^�W�H��o�>��_�]�-
�
�&���������a����ߝw���Nޯ#a*c6Ə��u��qt�i��IZ�W�Cڤ-""""""r0X,��Cwr�b�������cޟIwР�Ez}+��mR�9h���@*]i�x�0\�|�������r���Lڤ-"""��w��UU٢ǿ�ys^�p����NݪSeyT�EE�N�.�}�
}��@H	!BZ 
�%��:۝�)�,��k�5�1�k�k��4�)MiJS�^�FHq��"}�w���ם@�)M)�~A��ёz@�G
�Ӕ�4�)MiJS�Ҕ�4�)MiJt
�Ӕ�@�!8�#�)�NS��4���?f.~��!����o�H�ڬ㱧�B��vuyh'�x���%���Wj�����GG�/K
H~�<�pkC�M
PBܯ�G��\Jzc�����<�c����WEV���A���˨�(M�š�gMv������%��؏�(��S���mx��BQ��a(���r{�ߊ�W���Ė�^o����v\f�7�(�Aw���&C���H:�:�T��K�XҪ8�Lt5͏j��jzXs�э���7�~_���w�U՝��
��ˑ�4�)������Ht�Ҕ��G�{����N�/���;
J*78^Xz�铁
u�[��/�~�TMí�C����Ʀ���4g��ﵶ-�v`�>zv�-*ٜw���n��+?n߽���Gk[ǫ�TIk�����Bp
m�ou���>}�Dry�_)=�_t�����}��q��s��5�����/�����r��Jmc�G�Hi��ڢ���aAiea�5u�ki�w�|eM��h�����/8)z���<�-
MwN]�R�t�ȠCV�Ȫ�ZWׯXXw��X~a{G�J���P��_(���+��V�ɢ���P{ɯ��wMmf���vuu��s��:::l�⃇���kmo�Ï
K+��ݖ�='�U���쨥������_�x���p�N]cS��;-mm��൵��x~Fb�ת���`t^.�8�!�u4����_��\�Y����9~�0e{I-yp��%�A�ﵵ�.�z�f�������6���R�O^�r��%��ܮ���:z�ZMݓ��L��?p�}��^ܹ��yTr�F~qY��'�~v�����O{�=|�,��%��9��מ���>���Q�	���=�W�U�
�-Ի��0���k���\Ͽz���-���BIM�N��W���g
���Z/�ן-�^r�^US�K��ݺ_PV{���g[X��fˏ�:Mi�H�g��ښz@�G
�Ӕ�4�����UۆM[���/P�����{�3k�c/����)+6}�ݼ�/��X#�?�������[5j�?��sr�>m�ɔE�˱��,��a���s6�?nY>V\Y��5#�5o��Q�W9���^p�~;��	s��������j�촆��.��#)��TT����w�^a�<@~a�v?�ѤL�k��w2n�Z��dA�ǓXr�3@hik?w��1(̯�t
��h݄%�����Y��Msˬ5;F�[MJ/0��|w�������	��K�D}�qhl����{���9z�ҠofP]Bμ��T>
7d/%�U�5�۰{蔅��x��9�v��F��U�5�]����+�O_��e�-ٰnk7���_�h��F�Y�v�aE�f�XQ];~�:�ZY��>N\��-k�Y�������QsW��i��x5���f�ʭC'/$���:7���j2hc��=�L�UR�n醷��a���^V�=~���3��/f.3��c��%ش�Vi�Sm�x���#���aaR>��7n�Z�_*��lڒջ:g�
:���y(s��%C'/��j�����?nΧS믏/��8 
�[([�l�b�(j���e��uQZ�SƆ�C��f��ڿ�t�j��~�m��ТH|7�&dz8/��8zƃfծ�?���\S���_,���B�¯}��5l��&��g��:f�����x��FP5������w�����;
z�J���zTY][8&�]�����:�_<iڬ�^�˞#��۟�ͷ�����Q����+d�~VN(|���'/��%�iJSFJCp�Gz�:MiJ�o$����9�����Y,y�����<3��2������lݯ�a%�1J�����p>��ʼ��&��^tcd�3�u�c/�� Pi������ŖĜ�X.�<�80.ڼ����<���{���2��/g�H�w�K���_���ɓܣ�(&z��U�K����|I�Y��R��-}�#���8o�ܕ\,��/��|�{��p<d�1r�	dV�$��ž�rk,�9u�0g�J�k��g�%F�Ov&����q����z��Nƾ��1�r���,9n��|;�X~�fG�����)x_(Gf�NݙhZV
�I�6N^���;�-'.^�-tK�����~��R�?2G]n�!iE��F��O�PT��SN]@vHÜR~oEM<�̆|����в
���L'!+DxҲM�d��zt?t>�����z]�����/����S�L9䝹8�y�L	I�Y�)�,�#D6�l���}�Z�O^��̥�˯+�6�'/߸���u{O^�	"�bֲ��
�u�	�bC�ԥb�U��ݵl�5f�ĩ�[��n����m���Z
�@"��B�!�1��!ӻ��L4Sn��B��e���Ǔ�;w��A�	���EE��̩�.iF�#�gmI���S{cP�,FV���}�~�sE%ڏ~�*(Ƴ��R�J���J�"T,�l�;�f���M���t�2�^����{�D���N����CNc��J}�o3�O�3uù���w��,��zcĬ�v;��<zG�{hfM�9��ЧS�<�5����x�M5��V��Y�@g�鴹��>��;:;� �"$��za:�Ŭ5�'.ݐ�/eW�cf�:vF������R���)��	�tP`�8�*zw-�:uъ�y��Z�ɒ?�����R��'F)Ӑf��q�F7�}�5Ȯ"�>;�b�i���w�-�B�CO󿏙�����gU��OH���&3�m*r��B��Y
s�c�
E��,j�O>�v?�v�s1��=�Ο@#��G��Ϻ��@�����_~=���C>:~┺�'�y��������dA��+�y睃�
|������z�yԷc?�eec�?Z�GO����ݔ�
��-)�NS
���0=�#�iJS�^M�����]�Zn�[VY�z
��:s�
��a2��m���5���)�� ����U;��*��r�J�"gǑ3x�����DŽ}���2s��@��r���r��Њʯ����[����x��)�&��H�1j�8� @?V2�
������N&�PuCOd���5V��L]���)X��]GϜ*���y�XCaǑӘ���-�~���/�Dz�_�.�T��~�oa�TZ�w=��� ��	�|�����䓳n'o>`ŹTS�%�Y���b��� �3˪o�ZW!D����+e�s��2�7��p�Qט0#h�La	/沪�����W��s��ݒ��˯��"�u��h��':�E�O^8s�0&������٪��ppB��Q[Tv=3����T\�M]���s��UEB�����+�4�W��x=�{.���y��:���[�U7ܙ	��/�)�@��Ð�b����|y�װ���5��ch���n�6@6nݹs���'@CÁZNn��=���g�7�{O�磇g�@e65�sI�V����4@�?WX~�y�.�#S�
��FmW=I�<��dE�u�]I0�i����˥a
bfI�
���x�b�9�ceZE!((6��S�
��Om�E3T��ME�ޙ��]!y��f�x���-����Ȑ��(q>?�%s����7����� B#sV�_
w�9�d�B�=�pW�Cp���	2eĵGO�k�n��/��F�?tH�J3z~h�27곅Wɓa����V���y͛��!�𰜌*�l�.�ɴ�G
lA�̸=q}߉�汮Y�7���Qp���4
,nim@�j�rt����>6A��[p��-����@�JU�$�u��9bB]❄FEE�$���y1I�a3��r�-�lpQ�P)-m\������[��0&E@C3����{�t�nظ
��v2Tf2+�V��,	�{��w Z+���&�
cn��/Yo[E{����)��\��Ʀ�f\7�.'"�ō��i���*q��s��Ac���-]oX
qo{���
"T��Ys��6�E<��m9@ 4$Z���f�X�e@�ݒ<V��ʈ�[��;�ɺ�	+`���'"|�8*��C9��YQ	�d0�vawC�H��C�,����R�ˉt���e��
��������&��<�n6�V`L=���Չ�+����l�`x�q,j����1��-�d�ֱ��b�2�������DV���0S��`�w����jыS=�_��[�2(0���5�~��nPE�;!���U��07C��H쒭��6����Gn�w�V��������s��f�j�[��O�躋6VI2�Q���e�7@
�[V�ZZ��oECG�UEC;�a~���e����	���bim�[*���y�ˑߌ�0YΏ�~2a���Χ���3�ğ���3E�Vo���.�����pd�r�=F����0��׷i���==�Z����?iꌻ�?��o�{$[�M��nK$�iJt
��#=R��4��Жd���:e�dkc��|�F�[Y{�v�	e|��L��+��ʓ���	��n;���ֹŪ��7UG�_k�5�`nT�����ɸ��M[ZPƷ�?�0ω���M���g���d����(͉����N��rK����%h�6
��-��z�d}P�z��lB<:nqȇ�w�]����Y�`�mV8�I�Z��u��-�`�'Ώ�V�<dI���o��^��/f,�<C"ܸ`ӞE��ɖE'�vwa��\bح--���~�f8xm�^���-�&�]T�Y�#b����7(O�0+�ݺ��_��>!�xR��#k�aӻ�T=_䮑sr��	��h����(95C�N��I7�N�G�G�쎩��l=xB�"��'ɫe롓$	y�0��Xf(��c7ȲQ��7"����f��z���UD&���x�vĬe�G,v(��cg=��/Dtٸ�É����3��P�E�͉LR /K���&#��B��x�%�ᖟ�|�w��:���p��1F�N��o�	?M����K������MI��-�Hټ�O��UVuYc'$�"T���,'��>�*�^�BRD�@c
��Z7j��5�Й��K�v>���tm�µ�!v�[d�[0\`���P�+�Y�@X�L�}h�ݞg�y�'���aj��c.�g=g1h�b�(�4X�V�fv����X�6��<�D'�K�׽��dOw`��l�sQP��P��G��]�z?��ї��o�w�9NG����B��Ctv�±]߅����M{I��9l�R�"��0��;u�l|Z��h✨�v��cgW�62��Wm�LR¤�LP�P���v����Ƭ�C��Lfuj's[VS�o2G輎8)�VooT�K�VG��%���E�YHzh����˜��k���h}�׸��-R~�k7���`=\����~��&k<7�_&��@��0�j4�-�ҍ���`pDa/�94�u�Q&1޳�TT\ҽ{O�3����z�I�wf�m9��FVk�]��D1ON��=�n�و2��,���|����/��Ha��^\�e�t�ۛD���F@��mp�j���
���J0v���2g�u��]�3%w� -�@��z�@�d3	�T�8Pu�J�+\����h:�O�Y����6'�y�/�*���5{r�S���'(��w��f4�B�n����P^��0uj�݆>F��m
��F��l����J�3L�%7?-�C�
�Lt�"��|![�����(��ⱏ�c�ޞs��>��pz�V��d$pBv{�r�B��e�PQ��|\"ݹ;����6M���t�6������^$·�A��2U�v�$�"
��~�HS�6��*w����册��ɖ�.˩d?U{~2��AŒ�o��/���!�m.�vG\t�>#�f��g�E4�,��h����%g�ҷ�z��7�|kРn?�&�JuWe�������#�	����φ����
6��GN׶��,gdw��KWo��N�=oq�ں����m��Щ5
�yҴ����V�/�r~I���x{�ۃ�z��5�bi��|��~���>�:3G~��ߐ�۱���p�LaE�&���.��4���~�a�^�:�iJ��@+�OPMJtz�:MiJ��@��f�`�N+F�K��Yy��$�=� 㘅k��i��9@;ߞ���T�LJp,��`>��X��ƃbm|��Eߪ�Ԕ��2i��@��txNW�5F��2+ٛ��`��IJ�bLAG��}�۩A��#2�+����4n��l�"�艅�蹫v>�q����[F@X=�T���� \�8+j��`k~�^�,��#ά�,!��fF�,-b�`rq�z�u���v������G��s����",kAx�_&�Nr��5��;��ܹ�!�����
���.q:o/����|ȓw����l܋irLs@!1���
��Ɇ��fpO[�[��f�����:�K�rr��XRnq�����-Co�uPLU9�_c��:P�34��j?�parӶ#�
�}�����\�N\�QC�O���$d�r�\F��9��P�+�`���ySjŹ��v\o�����[��d��:B�{���մ�.n�j�^��JW��<nΉ�{h�(�tn�l���������D7�7��S��1���u'4��U��w-��nq����c�+t�'�M)����P��9kwBT����KU��3q�!�Y`�0�*b
8R]�@;#z�F�߾�mp�ۗm�o�3���F��ˎ,oEr�Yp#�����h���0��Gw�LA��yM%�~��������̠��4�
c���|��|�����C�dz�V%�r
i��f�³��26IMyef
�X�m���@0��1��f���[3T�3}�n�	���I��ؙ̢®Ʀ�
�Ke��z���M^(����sT}6�l���!7z�*]#��\�@ۻ��<&|e���;R6�$C��"38�����x�/�?�zb�˴tb
@3&,�<���mإ��Nm�=�� ���L��:��-�d��$[�Lf�C�����i�r0Sjo:@k�Ǩ)'�a���PW+�MI�۠��J :�h�C����$Zr��%S�Л�ƚR���)�_����L�U��j��X���"�%�-2(
߰���h�x�\�X�������ӊn��8D83e�Ml�*ANN�~�0S69T
@�������(,��k��uh�i�
�en�Clbm�H��蟟]�-o�w�:��F��B{=�<I��HQ�G�vN�llK{���6S�8z@��t����<�y���"�Vɋ�쏝qv�J�f{i��Fu1�N��cj!�Dʐ)�m��&�ou��/2�:�7sWzZD/�؜�|�R�;��g�������IyLF\?T�m*�mh��u�&��N�ȶ@��Ќ��⋠�7��iT�l�p)�*�u1�W��f�Q���z��n���U��ώ��~ˮۺ�?���Y��\�u�U�-���o�#�}��A�ޚ:s��#���㡢*c����k�
�E�-����0iڦ�y�>�u�icg�Q�9�u�~�F�Õ��/�9/�̟|:z��$����_���#sQe�Ͽ���z]��Ź��d��7a��4��k��_���!\���=�O����>6|��9���._�GUw�P��@�)Щtz�G
�Ӕ�4�rڒɚ
4�A�N��&�B�d�1��x�5Ʋ�y�h�B���v�j�e_Z�Y�Xzaj>bݸm[�]�[*�h����L��@[�Y�(*c����
�a_���C��K���t�f
	�j :��*�E�%Hx�Z˷E=@��^�[h�g��T��8r��C�����o�5�l9kv�<I���Z��Kg-������*���~�&d��sWJ-��z��z^I�M�%=�Qo���w����⅊YTc^J����v��b2�y���b��,&@��Ϭ�E5���Nh^�̝{��u7:���+aD�'k{'�X5�b�CCδ��cg����A!�#���Ѐ��G��O�ˑ3z�V��q�G����GaT�ޛ���S�����jΛ��/9 "SN^f46�;����
�дb��ݑ������h7�v=_U�5�Wb��fh���l��Ȝ\�5Ĝ}؍���
zk��ꭻ�"3�p�\��]��]�jSDP��c3��v�לj��P��:p�[�ͤ�i��K�R�w�y\onm7����l�4İ��t7�!	ba�L
�cI��뽒�Jz谄�:�Rx(���i��4��E�W+���rµ���B��rˋ3��E��q��^�������
�\�M7zh��Z&]���>S��nJ���>��YZ~N�흾R1�t�5��TK���Ө�X�8���Y�zk-Ww��4s�6�4
A{g����D�"Y��0��!˶�瀪�Y{�V��=BE�(���2�"?K�.E�O
�c���5;�s6v����([��z�
B`G�n��I*Cȡ��M�[�����ni������V
oz5���ȓ�uvj�F���ũ=1��9h�Y-��]��q�:���،4_Xc�$Ht<5"f�N���Р�P���h�],0��	b&�W�z�)+*150�t3�L��&%�#�{\w;3Ȗ��w`h|�\(�d��g�����d����0��У�w�~
�
:!�n�Y��=��,�E�N��C��;ƃ�����q�d�ݬ_���0�9�v��m���"h�}�n>M���;?4�s3��]�h�/6�ŠJ����7Px��@k�s!J�ڞGܥ1fM�;{66Ƅ���lBDx�Q��W4*f��@��7[~\�n�����텏Š��xLQP^'z�k��u��5�<�Y����	��=�YQPV��Ս��+��;>y����%ǴYsg�,8_\-sT�o���3O^@��<�g�Y������>B�|;n�_~���Vͻ�N6=xz�멈���N_*�;yq��EϿz�ą#g/�����φ}��q<��k�D��%7��^���!�Wk��;����4��7���˿�[
��#�iJS�~��҅'Q,��a����ă,)�[��5�����EM�Ƭi�>�zWu��e�%���������`+s�0����܋�<���uX(v�6;i�L�#�#gh�:���I�	��A���ZԂ������sV*�b�{�.f�����H˽�ʇG�#3@�6V�W*�b�DžP�,M�a�ڃ�9�S@O^r��ptB��.Z�jY��o�X%�����`���x*Y����+��ݱ9uڠ|���,�Z�������I�r6���o<p� 
�I��G� �	H%��Y�ܞ<~�A��ahh�^gvM��ӏ�|�*�Og����iE|��`�����J���U���QQ��20͓�9`�4g��2GKpD�`{!��:TUo�;�r��8���M�Y�So�&�DK�-R�p��t2����7�� �+3��^��05���2�Ig��Ƒ�@{/��R�B��X�e�]b��C
��<L���xh�Y���	hg��w���M�%`��;0G�{�7���!��O�ѡ��^PZ8�#s`D�	��(��'�kT���0�hj�+��v�%�Lf�v���ɜAƎX��v���;[G�#bF�}��fne"?�>l��EA�G�+ޢ [��f������z ��2I��\�,�/�Tx���l��(
9�[J`!�_cΉ54�lB�!�)�G��6@k��$ƐL��U�!��oQ���/���М�{ ����M��\�*9p�����v�����5M��_���0G$O,��bg�ޞh1�#��iN��Åܴ͢��d~ay@09x_�d��o�ie�H�\���!z��O�-��@�)��dD4C/��@tkvvn��.qN̠�P�s���s�ˌ��f�B�8�]�1s���}�0݉���w�y ����w�t�,���4�EX�`5��F0n�V��@,^or#~�o�G���I�,�JEO�~���񘳕Ȗ�ʍ��h��t��b�b�j�U�bg^h8;݌AؓWl�H���5�@��4�����
�ӷ��z3�싚�a��^�VُG�����,��~��x�!CƊ9r1��n�Y��|a]�c�ppb%���hJ��$x�V���ٳ��n��|əkA��{1�d�}K�Y�;��D)���|=>4���S�1�����Ā�m}r�l��7��ɧ�V��K/d@��|�ײ��қ�R:]�DL�O�ݺ䷾�)'h�W<
�q�1z��VX�v�8��ln�IO�:�ZO
����1ㅟ.�h.���>�Y��ym�Z.���N�>���umO�>����ia7��kh��!��@�X������E�p�Cp�>�_r��')�NS
�[:��N���ޝ�YQdi_�׼��gFǞ��nGi�Y�mDVٱde�E)A���n�o���I�V]�l�">)޺�q�D�=�8q��J*�Ш�E�1�L��!�.X��}��c�0'\Y�FC�1��n����7�Ǹ�<��P��T�i(c��|Ѫ
��l4߈�4��[� ��#���c�N�	xIᵽ`�zT�4tб	PV.�y��
82��
�N�v|���_-؟0+�g�Yj�p�F�E�p�3ީ�����-�w3^�����+
��=t�����Ebg2+�E�@�GM[����(9w�
@�ΈF@�5�.,8�8�߫��:�W9q�Y�Ƶ*���MV4+|;�^�e�ܲ7#wN�ŵ3A<p(%x�L����h���jM�� p6g�:B=����@�L~����E�h�ƖNɽ
�����7.xTQ�Z�����@�H)��"����
D���n�デ�N������XFxJ���
����(��5�9�U�L�T�Dx�»W�	��=��	��P$U&���N}�{_�#�&�Ao��-��o3����:2��i�'Ɖ;[��!�7m�{dnC/sH:�⬩�4I��h��k�y�Q�I����c��S��hE�d}#��ވәM��1Gw�S���@�_�y��-b�SJn��7_�d��G�\���$,@����K�sixB-��ZV�$S���TW��At�h�A�|r�LX�-���$��~�-���vZ*����	�t=�0{A�1����_lh�?��Y�m������xc�i#U�/�&7�O�[��eUG��wd��#b#Pi���
���:�5f������ӽ�(�ˋ�!�3}������\d���J4!tО�F�y��d�]����g���U�n�b��KYY2���z�`Y���9��d��Z��/����^��e%"6�2bx�����=q��T^"��@+	<�T��P�z�#���V�?'Jδ�rnk��Q�,a]�v�ȷݟWՔ�����f7?��K�L�l��=����#C�}�M���Z��}h)	>k�rM$O�͎�tdKa�ם�PW�j&�+M>�XЋ������k�d��#%/5�a*�Ry�8���@�uF*�A�(�ץz.:k��hT��Bw'JX!�>�D��	!g翁�V<���"T ��o���O>�o��^�}�Em�󮻆�}��:�|x@�����ٍ�+�}��g�=��yu�L������*��Oa�m�EUy4�A�Ω���3��QHt��֧̚/���+U�-�6�"����ݟ�ykY���r����o�]*������@���J*��Ы���9$�}���Y c��8 ���(�1CQhW�Cppp�����=�^���0/���ב۲���d�B?1e�(k9�u�xȁԕ-L|�hΤ�܌y��wR�u�~b���,��|�\�h|�Ԛ��^U ��κ�1�Y�c@�h�2p�R��7[4��C�S6^�T5���T~�Ae�N}-g�-K�3��6t�I���r��n&��a�i��~S��p��r��[4ztBppYe��3e��!���Ъ���:��>5q�z$��|C�8��웤�q�WS�5��F�Wڴc/���Ys9�a�+d
n0=�؝(�T@���׏|O�,\�tW�܅��ۊ�I�
MFN�ײۑ�oQW*'ց3�� 6q4��$��껷�E�PM����U�<r��[4�R�Qc�:���@���J��'���p��f��3@�S�C��� ˫9�gFJ�uN�*;i�v�OIJN��P	�������}�wz�a.*����i��0P,[�K'�2̗��1�%�:w��+�f��	��2��6��g'͢HZ��)��"=�%P�?�ym�xh8":�	��g-�)�*�M�!�A�W����;uI�_u8�zb�I�
@���o<�[�"GcLSgi��Б�@-�xD�aNH��8&�Y��ߝ;/O-Rh��_m�nx@L�x
��hY��T��I2c�L2���:C�nB,�gZ�
��Dž�ڢ@��7<�ݫ����j�Q�L+f+Ծ��7��n<a����o����A��I�C��4�b�Ϛ�H䫳���&&ŗPB����f��+o�GF�F��/���q/��h�	֜
i
�ޛ�|�7�
�*�ц�Ⱦ��.�u�K\i-�y�_KU3��./��gk������M�P�#>���YQ��+��m@�|#�a��.K5�UN�x(� !P�1�'�	���ڿ��h�@gE��W
���ɨ�E�����o=�fQ��	u��t�@���D���������6����j��D���Z����ӭ*�B���箄�W��I��2�	�~�T�K�\�ƦE,K�z�_@۝OT
�'.�ȃx��i0�h|��O�gk�2.�z��=��[#�8/\+HŤ)3�P���[���r��n�՛w���@�2�gv���G����[~�OZ�ga��w�Uڱ�_������ÏV�&�OA��p�������`�?��^�2��%�v\��u�Ā.����Q��K*��2�~b�Ի���-�l��U�ж���ɱ��0D֯Ѝ֢��E��-v�rj⼥�'��3�H���绡3S�m�J���%��L2��ZfP9���(���vҼ�H�ey��Tۄ$�l��)@�qq|���2��^���q�ްX|q��x�V�Xa��D�D{d9Uh�e�qhe�c:*W��Y�V��M�6�O�9�eK��
i�*
	|0�.0k���QݤWAq9�Y�:wٚ���ٶޟ<�Þe��5m>
�B�{���ƤG�+�y�Sv�cB\��(Ax5��g �̃	��2���#$p
F�SFL�Wh�>Z�8����xɁαZ1�G���t"�(���x�@�~w� 4�?b��"�G�X�����jWCΛښ��wNj��c_�1��V���vѾ��<��}��W*���`��>C�V
��,�:P�ރ��}4�C�v�1vP��:��7pO�
K[����k����~Q9�;��p9��e�2�ae����i�,k�FA��۾�ni����7��ea
����0��O����t{����)��u�kz5a�e쌷��]�Jf-]�E@1�h�qC�R�նTT��Wf��¯b��N�
�D�Kz���
z~bVQ4@<�U<��57�L�)h����U�F�wI���H���Q�S�Y�bs��RGέt�>��6 �%k��Q{��X(#�-�,�o�:���3��O_�n+^�Jr���l¤RN�>pp�H����9t�:q'RJ�1S4|U�I��F���
�$F��XM
Sz���}ύ:!82���J�^&
���y�@�N�C�oB���q�e��L��쓉v	&�%�
c��@���	�m�1�=���*�VV`%:�����Q��p(�~A�])������ʙ;�-�&̬hXY����_������A+���c_��t����dJF���ƣ�ǽ�F2�Ôo�
�FZ
hP,�k�P]���>&��:�J�zIi���W����5S��{�Z~-5�����t����}���_��y֒�t>&=�+R����]�]�lG���/+�&�^O:�7�1�suɐY��m{�e�1o��J��w���}C4��~������m��Y��k��9"/{�("^(����~!P{*A-
G�_nL��USͤ`����U�j�M�)�י6���L�4��Ъi�I��ᝦ�NP~r3
Y�eLx�	���ֈ�`kt2�U�L�����Җ�����������M۝ZҚ����\�_4�C�~Ҩꀨ��d���y=�8=�+�nt�$��u����O�������o&\&j�R�]Vo�n)�$A�i,�m�P�ub&NȐ��.[�U�94��1gF8&c(�T;5�{�	�@��O?;h�Yd�F����/��p��՛G�4��3�/���x����a����虿Ϙ�6�,�J;m���/�,`��ç�l�]?Vo޵n�ޏ���y���ᡓ����[��a�<7`��(>>d(/l|���S�>?���N�*Xn|��!�����G���q����!��_y��G�p��r�oƾ��gl/aل�����MK�r]RI%�P/lN�P#Ko�Gݰϒ�xZ�98�e�:�s೬�g[�H9%q�b���/~�L&+�&L�Ɛf�x�J��3�S�I�{c�/Rc߰K�>�8κڪ�X���,Eb�}_#��@e�ȁ~7�x
"���V��~�/�� �=nP�E&,��-�+0�`�1�T�v��m	6�1Ft
��3@?�j�7,ʖ�"���Sw,����Zz[w �f�o��l�ysP�F���Q��8f�3�Q��##_�	}�YI��څ���X�V�̀T�#ǻ�U9�ȨW�/��.6�.�Ir����2g�~�ݐe�YUY�5�Sĕ�}�T\pQ�wڑ�!ծ���A�-�|�O�H�~��w�?�:z�,Ã0�:'JhK��!C�	�[�q�{���\�}Vl��z`1�f�ؾG!w~�_y�|�Ka4��xj�t��g���_�/{l�d��5nw�s%4�h��4�x�ԂPHW�HA�+��]'!�SȞʁ�\ρ',F��Y���-:�U0���	�"u���ts�2�i��ڨw['�)$E�1�)��|*��&��GL��$ցV�C�a3��ݰ�����V��b���%�]�1�	j��C�D�V%�S���:�S��&C$J�0z���lG"�RG�;&D	��E�<_}�[��]���#"ȉ.@�E��x4s�m=.�UP�"���v=5q�ib!�׎*.�Y?�"�ZJ$T�΢:��W6�H��o�8���(�`�k�� _�:�83�������	ܙ�9�A�Ђ�3p@̦.�L�0{�j�4-��O���L�F�:�f4���S�~�fה���qd���1�c�Z$��8��G c�: �2�e�hk��q )���ת���P1�wD_y��m���E$���C^�w��sVT�.^���|mfYT�1z(,h�M�D�݁oQ_����=`'��[zA"��A�M��Xgq�+��mf�R���={��M�u�>jIm�Gr�������������kh��=	��k��
QQ�^7�N�4:6T�߈�ʣ9q��6'�7x����W~��)��T!�D]��ُ��T�|)C�30���jCSA1��U��0�x����|e�t�9�5^�ѭL�y�3��z���v�j��mݶ��k�g-:�
�>���̦�C���F���z�M�P�zgW#2[�$�=s[���"��F�	~b�)o����q�q�n�\�q�[88��_����|��lu���rP~���~�q�j������1�k�j!��(�U5�K�L��ذ}w:�I/�:R$C�{����x����ɋ�4�U�u�85�1����=rZd��|n_>l�=�n;�ͅ��;��;���E�m��#l�8��{ �5���EA�o��v�"�";��g��_�y��C��Z�vܤ�Bp||��UpӮ�=���o}��A����@�G�F�gz�ֽ�,P	iqK
�.��#�"�r]RI%�P�m�����		(���ǟN5.�/CbD�I����&�����Y��c{�uo�=�;L�sEڋ��Q��<�7�ȿ�$�yf�LA\&!�@����θLx
?�b�/�}�?��T��Oa�g��ʡ�R��e���X-O��Jz@^�P��qF/�q���k������{Q�����j�t���^�[I�ǟ���R�(�S�'1�)g%:Qe�kd��gzԾoS��]����1��n�)��R��эdM������0�ⲭ��;�^M{��:T�A�)�P(3�:�̠jK��"����蕩��
&<mQ�4q�����]آ�u��wBS,^2=��hw]5
��M�$��}z�]����~���;�qc������D��ڗ�j��kM���]S���<��5J�8Z����m���b�����
������U����z�TT����ʇ���u}{�5��Ђ�(��4�T\�a.K��_�_~��YH��x���x��.=���g�U���A���S����)XCB.�2R�ot@}���:c�W�^��of�nW���a�M;��)��Ps]^�8i���*-��n>�z�J��mWN�-^�O�bt�Z+�Sl���]�ޭ��KFy�Ϣ�r��b@!R���h�K}h/E��uC���%lLF�ǵ�D�����e����u��y�4y�C�Z�Z׾׈~}Շ;w��>ƀNT
>��[�~+��ì>�s;��[4O�ͻ4.k?��v����
�?��l�∻�`#���C��Y��eV�Ы6�����m�>߼��C'�ETeU<�K�R�7���-��(���J�IS��NWT4����k����)��J���2��\����U�|�yœ(�n�x=�K`���s{�r����\��w��s��ȹ��k�ʘ)�Ԧx���nx��9�B��U�P�dc�/�M.���*���%_�g>�T��s����F����cg沸0l��J6u���u�V�3�	�.y���S�[������^}�H�G`�1eɅ��&�N�%�RȲ��Zt����=�ڦ��Jޛ��S�r�s�R��v���k�(SJ<�=m!{ۍ��;�q���7���$n��.��l-��2�51m�ݛ�k,�jʰ����5\�Gv��t�1�\�G]yC�����aYG>�Jt�8����9t�RC,
�]R�7L��]��K*���n�=��+�vie��~Xm��n���JˋM(UHB��KR-�Ō%+-Z/�t%'gy1ĺ
�.�g����d=��Z����`A�߳a�Y��J��=��ɯ�6�h~W`�"�յo�.�;X�a�L����(�IKp�͔���;:�kq]���oD]b@���J*���.��|ښ\�S�FBx��Ջ%]�d��e�D
@4|и�JK�r��-���ʜɞB��MJ����BJG֩q�����I@/�����?ܬ�6���P��>��
_�ݸx{�/��/����b��CpȤx@���J*����Mr�턣�>_�T���T�1��Җ�C
)�P�l�wt��QӲ�i�n�f�����]oN�
��
ߞ��q��J�z�x@��@�TRI%�TRI%�TRI%�TR�:z���m��^��*�b_�:����K*�x@��@�TRI��t��|�
�Q́�J*���J*��;����0�g�Mg�i�]t�]��n:�v�U�m�ڎ���/�jD�R((��H�V|�"(��<�oZ%�Bx�Ar�7$��I�d���7�0'��s�9&����%�p�K�9�F`��eG�vP�Zd-%B��4BȠ�&�D.QrFpH�{�RqV�a����=�BY��#��T����K&�V��3�Є����M���f6E�͢�%Ϳ�;=0ۥ	�ƴ�M�: �B!��7��4!d���-�m?�k7������0&��m��HB!�B��f4��B�6~Y/�X�K����Q`�C��{$	!�B!d=h��.I&Q}���ЌЂ ��R@Bִ���ts��'w�-5�9�M>��B!�B޲��56�L�#���`4!�z=
�Q����x=��&Z�<��]m0���B!����̀fP@B(�Ëq�{R�'�<h�ebn>x
ǵf�Q�|Z�o�z��B��*.��Y�Z��i;����~�M�gl��y��ÑQ���Z�7b�!�qR�=��
�약�o.��^�ť�͹�,In��iw�����Pu��E���&�B!��u/�1	3�Є
��Bk��6�J��������˵M0�85<�Pg-.��7x47��%�����m=fml��EWK�׷��:�ޛ��{�Ҋ�X��zv?z�u�P��w<ݯ�.9}&��g�����sr{4'N�c�cFH�4r��v��ypcU�U}������K�y�>�[��|ZЦʨMkP9���	����%]���䒤�+h,,�ʃO�[�f4!�B!���AM��/��[]���
e�U57ڿ����/\
��ͱ���9=�#;v&�KMC�4R�k�n�l�t�j��UY����8.>>y���¢���!�������=�����KAQG�`lllvNn0�{Ͼ��	��2���S$S���(�1n���Y��s�C�jT��t��7:5z$D��9��+Ls�>Ƨ�O��.�{�@;��=�����>o``p,�7��ZT�ϩ[�E�
�8��@� d4z�TO��Z�	}�A�.�᫲۪��n�=����C�TX0KvB!��^�g���D͠�&�D��v��E� �8��`hf�Я3v���&��Y�2�V�D�i{`�K,]¢����m��U�5�썍�ih�[�����#��xʦ�ed!�Z���k鈋��XӠwֆ���BO���v�v{�Y�C�2z�+HHH�~4���lK;��I�O��G�3y2��M�K �95=sh|N}�:�;��6YU)5�T�L��z��5b@.�jg�{u�f-�<hςk6$,����A4��i��T'jh@8K�[�}�,O��9���kۜ�;d:;E	3�-����>QE�T��1��I����h��Ŏ��@Z�S
xp��0^c�~���.�t��FO4�`ƒ��G
^)���B!��P@����C�Є��E@Oι��8��u�d���7T����w�Ƒ��?�o�[R^YX\�t�7hfۺ�,�Đ��?j� y����I����h��x˖-�������)yE���gf��_�5�X@��_�����E���4�U=jq�3����;�J+
�Nݾ���/{g�y��۸�ɤ���8��OS��3I'i�4�4�N<MdǶ.$$��$@H6 t $$[�Nta[HB���7�}�r,7�ba�{%��d�Y�����|�y��}�]i�3�<��{(:!�Z��x8��Jޛ��;�w�]�<d��䱎iWW7�sk���^��q�Џ�*����>v���#���3��
H.D�h����[���αU�fL��ئ���Of��q��k���A�m�v���d(�/���3Y
4����z'����� Ӄ��	���U�'�͸���nP��zV&<}2�Y3`������K>I?<�_��y,y)���N��hpa��!Y|uh	CF�$��B�����K�WK����Y�+CJ|��j 5s�k����|R�I�;�_���sZ �H$�D"�H$ziEp�Z�h�H�tį8��>�W����l޼����
~3+�֬���i�]�J�[kw�ҧ�f�sTB���VGGG7�]_7ww�nD�Gئ�ښT�����Q�[n�+�o�h�׵V6�B��@烀���Vǭ���C{+{��v#�����;vU+ޏ��ARGs��i�Kw��޼��ŵ��t����
:��og/��'�Z
D�1>x��Yj��@Wkt0�⚶��As9Kgi}'<�b)��?@ǯ+ÿlΠ ;�2����7ub{�_���(���JeW�+~)�3V���αTǘʼց���w=��*~|>Gq_~���_�_\2��2���|Z�v��Q���щ�m1�8�I��[����Ѕ�ʇ�o_Q��5�F���_�cq�륰�_�o��`�c��@S`�~�[��([�"��{���'L�x�P��ɹl����O�Htzs���n�D"�H$�@/E�/{S�4�"��O]3PŁ�=��ر�0��Qu��Y;��q^o��acЍ���6�.������÷��������E�-����[Zni]i]Vb�;�����i�0q_^��y��Y���i����+)*>����,<=42�a��y\rVaE����M`4��������H�����:��k�N�'g���F��;sJ�ˤj2:xd�s��.�kyM�/,e>
�������LBt�ZJ>�V?�P)�����k��/�%��^����G2�wG'�#��t&�^��o��$��fm�����۰�3��KG�q\� v{lì�B.f�4𚑾�
�{t�Z��K���U�t���.e��}�u�����*�єO��Gi�k�%*��"��<�Z7�^\��<h�H$�D"�H�Rʀ�i�E"ђr@�M]]�z%���Ĵ2uiȀTsȆݚU?���@�â	��J����T��f�YA�����uk6n�4�/�Ǻ��p��|��'Ϟ�-��e^�j%T���>$2��iI)�h�􍑌�e˖+�7��ZX�N�=<�z��d���CG�r5"| 7��O��a�z�u������6\���=9��&�Ʃ��O�ƹ`�d�w��T×��P�#ֆ���v��_
QP]f�^�5�/�e���u8�;>i�|)�5�����l������S">x���ʾ6%d�x�5=dz���pݍ2��e�2�-n�k1t�ۅ����
n	5/�M��9�}�H$�D"�H$Z2��I-���h"8{���$i�jw�K�Bo���V�\�_��I��BB���!�7�ڭ�
����4����Ќ�4�B�1�>3M4�$���,��Xtpx�D<SG��)��w�]�����@77w~zzzEݢ�(F�����k��FN�n�2�4����Tʜ�-����#S�7�Y,xCD�㗏��v"�Տ��d�瀘A��V.U�g�m7�}�؟��W��NL�@o@�6����8��E�����oI+7��ϞIue�k�ʔ�8�	q&x�{�h�3h�4h�F�K��ҡۄV�z<�Nd��?{}x�~lR�"�H$�D"�襔-Z�h�H��t����ucs�nCbZ��{��4-h�->h��N
���j�{�wT}c���
�<yǟ����޿��n����@;99E%�pΞ?�A�1�i`1��r;bs�񀏯���j5�}�A�4�
�&�� O/�2�Hs�"h<-=95e!�6�n�?�"ӰL�'v����>��&%�h&�xg�脩��002&n��f)���(��ʺ��:��\�7}o���n-�g5ֿ;2/�mP�-�S��n���d��\/}�D�oZS�{�Sӣ�F��Z���䃙��^�t�@ө3���_
�"tR��=���]��(��S�ƈ
����2*•�@j�H$�D"�H$Z"8�I-�������Ш���ֆΡ��a��+�7%�H��4(��c��squ�.��j��L��6"����+gK��9fd�3Б��\k=h"4�cC���jJ�Vq��hz�i���^��ʼ�yhd��)O@�7G^yݥ���탹9[�7�>+(l,��o�FA���'3I����@�er��x&�L|����p�
��V�Ĵ&��U���o�8>E�Ʒ}�_:���:P�5�|�Jq��n�-�f;�;��2�o�Ɓ�"���r\�o�����-��*u�$�c�X�n+��iP�'2����W�=�Ab-�?�qmO�L}�+��Su�����=��?<3-h�H$�D"�H���r	�4�"�hI]B��?�mۆ���^��{�����ڶ�������VfA���S������٭q߽�˥-�Q(-�ڦA����L|J���$!b�/q���JH�!�#0$�;1w[����ȩs���‡`�v���GdC�����s�>�!�Y[���)��a�O�̹��3��6:����;o
��a@0�X�|{��kE�Z2+����ZH�P\"a���wC���&�$7���/�@�h��TwæY(�"��;�;n
-���Ө�`��]��?Qq�y; vv�spDY�?��SA��⪔�alT�ac��K~�X�bt����`�|'�H�z�������Fo�^��?.���v?W�aM�1�3��@�Ȳ�Y�4H���>�D������Ofj����"�H$�D"�H�d@K�&Z$=�wv�
*����B"bCn&eV5ka��I�N�R�w�$K@f@f�W��c��d���'C��@s����ʦ^��I�h�1PBmk��ruWF~��k�rlx��{�G��W�G2��EgNsf���5�S����{�K�_٨���33�v��IS�ZG�Etu7����C�<gsf��}�b��|���]��9�y���]z�I��
��[_ҩ�
=i�gΞNQk��i�J;�*�jT��NNEVu5�@�L7�Or��Tm
}�/� �wqN�%�e@����Ȫ�9M�C?�a}�9IR����h�����=�m�y�LgF�����ӹ�l�;<6?'��D"�H$�D�+�K�͑���B�4�"�hId@���sx�A�4�8�{��$��"���c��K�S̞�wM#Rc���iK�3%P|��=Z���x�Co�)�0���s�UuϦL�7�֝��}4[y��i�`�-��b�l�-~����/^ڴ�o�D"�H$�D�%�C�4�"��yРO�}��U��e�s���=�x�e�*����+ŏo�%�_f�d���t�Χr6�%�?s��mx|R2�E"�H$�D"k	������ݤ4���F�{,]y�
���5��d��
."���$<".L��_���Gpe��0�	�[f�������YN����j�h� @}�mh@�^w������Æ�/��Gp�=�Ў�04 @�o����2��'���t$���Y��
 @�mh`$R/���dv:��ۻy
u�D�a������2�g����-	�F�Ơ��*鳧s��g1�_���<�p��,�9��3��
�M�{=u�%h�g�h#@��v@Z�@�T����=@oln	�F����F��F���_I�^��9�2�=9��<q��ͣL�EέU�VjD~"5��k��,�[��Q�˅䜗+]4��m��7��+}���]�{w[U�%v܉��S'R�(�:J�|��|Jԭ��V�)�2�(�O��t���z5�梪��b2�13���`�3��1�l�؀��m�G���x�˵MQ�5����{�>{����x���~�pȊ_�W����}5�?xp���"
;�o;�H���H��H�@�Vh�$[p$g��#9��v|��Cǽ�W�����=��N��2\�̛�����Y��w���&������h�����7���(-�G���Ļ�׌���$k�{(�r&�}�έ۷U79�]i||��-����:ί���X�0�����`��}7o�f�w5s��T�ߢ�*���VJ���_��G����*tt]����^{s`ЃT'�g�
�G鿼�:�]o9vJ+�<;�^��p�����03��o��߹�E|�6��������u,�=�`��H���@#:��N�@'Gr$�w�{�n��}�G1/tðv뾖�E�ol� ���ߡaRMa��[v�+(ϯ�v���4}F���T�ً�K��=�J{ZZ=y���Š=�F�����s�t�~��'�N_QZ����v%¾ZĆ�]%�;ʷ�9z�<I؎���i*��%I��;�7�u�N��-{�W74�nm��K�_ԠXƍ޾6oھ�w/��c���B��5��Vm���� �--�iȯ�tI�u�h$)`��v<{��d�Y��╫��U�jv5]����ĭ9y?寵g�-�tQ7VӚU䮫�կ9�6샰���ji[\Ry�/�v�8�=�i����)��6���OX���zǭ[���%�+',)ؼ{�y>K�a�-{�jv5ǩ��{註���rbvŎ}�g[�K�nܺ۠�~����}�HUCd��$�ރGo}�լ�ܐ�i��_���{G�'�O���كo�A����B��y
�*�t�'o�#��t}v?	O��H���l���ə��H���ya��[�z��
���~�ҕ��.�0�ds�����+>�_��>~p?��H�^��#)RWwQ�Д�N/�7GZQ�#��n�����#��2w��" ((=�(�)(A��ڀv*��4u��e��
�S���K�љ��8t����g.ɫ�s둄#dw�Y*(M<�dظuW\wg,��z��3��|�$�ъ�c�)�+��mi��1�s���ωsCW-v8����+�7Q%U!q=��~�rC&��ݳ���-~5kٛ�,{}f�[��U��w��wI"��ݗ�,r1N)'/-���Y�7f�n�8e!�C���^J�Dr����k��d�¢M�`{{H>J>��L=�:j:�x�G�p��<��!4�GMΰ�X�A4ıK���n����4/Ο����Z�?X�Vw������I��ߘ���Ey
uwTi9j���
7��H�w{���i��v�\F�窲-/O_<c広�N��k3�T�ˊ���9[�v�=�>�b�UΌ6j}���T$M�%$t��T�ꄩ��<p���9_"�$I���龗jq�s}�f��Nx�J��N���}N�?��f�ܛ���*_����j�4)%H���u���MHR����\��ԯ�������e��XMmJ�~W�Vw��>��K^���|~�)K��^��f�V�l���f��sJ�(*��t�9\�g~�0�ũ�d���\E�?2����]��5�z�<�?R�����Dz�?S��_���*7�dc7ݩF�o�1������z�hF��T�˴��C�M �(.��#>:i$nE�Q��
�/e�V���6�͇=q����~Q��f��T"�˩P���cU+]?M�@�#9�#�ɏ&g��ɑ_��p�9y�{{��DH�0e��gF.�'}q�ؗ�X�zpí��9Ҹ�ř8	�շr�l��sW,)��u;g����n)…�7c��n��\��0�V6�1QɆ���R��'�
�}�U)��ᢺ�re�!#��x�^�������}���I=��;t엓���׃�O�3wE��>[�,7���F���́*n��XRi<�J�`8|Xn����V54�f ��y:�u}X�}����f�5�"�l�t�(%��t@)�A��PiZqet��f�8eܽs,��z{�e��'�����|�������M��'�G��PIʔe�^�}t� ��H�t}���i��"���ɹ�Z��֣j�s ���,o;uV�����9��9�h>@/__{����÷.���+�ߣ*K��ʵB�+P�r�U3��᮴�R�>�=�OT���5�s�w#���8*=H3��J�Rr�ak{8��
	���tN��������Ss����3��yiR�Q�3�G��$j��Q��?sei�eH9�\��F_�<{z�ꮠǎA'Îz�"��a������Sz	O����r�@����i��J�����"ا�p=�x�	$~lJ
�u�'Ȫv���g���'.)����0�uEV�/�K��0kN��(H�{�@� ��n�m9v+\�iK4+/��R�+�q+:��X���X�Q��N��������+�-X�����^X���ZXY���{ѻ�K5}���V�Y�)�1���@ṉ���W��z��g}����ɜ�&C5{nޤ�0}��9�����i9@69iIK�pEk�]׺��Tk
�$�r����rz�uo�+���/��.	�@<��T�9p�=6��`A�֗�-��S��+��f�����G�;wEv���K��,,�\�e�)���)M�&��L]x`(�Z�
�O�>��k拏�T�֘Kx��sJ�])�i��e�J�U��D��eU���1n5r�&Ո��&ݵ���TA���L�K�V�3K$[MΖ5�MO&��n�=z$�Ѥ�'����>%������_��\wl$�w��Հ�=��Hk�J�ӽkV���-_���J�$��j���G蒃�^)�z�h�N %����������y^�d�9��o�"��$N+Z�՚n�)��7x[��=L6�H��H�@'�ə�@'Gr$�W�����߈�Z�+�_�^[�m�c�(@ղ��&�<iuٖ涡��ŭ���_6��D���>	�U
�\7�����3k6m5�7�J
_�ye��[9qI��
���^�mϊ�/�2*^]����))��f�ރG�Vm]X�sey]�3%�;LLAX��q�&bX��Y���c���M�@����u;�[wh�_P���zO��ܥ���է/\2�h��M�k����S0���͇rJ��䗕��9s�29ۯt���[i@�l]u��w�"��:JT,�R���7D;���j���;��
}%���A�)�0�Ā�4�-��و_�|$�#��ϔ�yP{hD`}�.;E,��}}
�ʈd�?v0V��Z�>����A��
��[i�![Iࡘ�1��B�ɰ�+Ev�Ƞ�h�2���Ѧ69|�,h��U�XM�v2-��o�J~(��j���8$��Z�g���P�m�K�R���8�m6��x���#`M$2/��_N�GO�*��9؇L59�/�k����X�.���C��i�ã�<���/�c���~o�*n�.��N��7g/�@<ן��I���F9'<t��5@nj=�6ˊ��-Jth*�n��O�l�
��D
$q��M[(�l���g�~���XxJ�"N8�l�}���W�UlS������sJ�ݭ�]Wc�a{s+ÑaنZ���p�Cx��J���m���Ƽ��j�e��l��%�>�[�xU0"��q���k6R���?���.���b�ԗ���^�^P-m�rY�,2�x�i+褸�^z�f�]8̆9ZP�ޖ�y�6���iX�4f�"5��A��1<E~Ȍ��Ҥ��tŌ%�	�y��z�C-�����`�SUc�}��9'O���VX��9��4�Э	S��j�A����mȐ�U�H>'�Y=}9i8��R�&��_ѭ�F{zhJ�	Fv�j��3��ʴ�"f_tMv�@�#^�q��y�ج��4UJ�UVw�����J7���e�:+��b�gF�)��X���kv6�����-
�PR�s�l6r����)��P�ٮ���>u2�F=\іG�H�T�	I`ma��R�}QQ���6��-{��Y��
����4��*Fс��ބ�W��P_՗[����?
��b�
a]��]ؼ�yn�=�dJ�s��4�\��	��0{yJ?�	��ޟ�ު:^;yܬgP��T�$���%�8r��{~�nS}�ik�E�
e�
[w+zϡ���h�t8rָ伴�Q�N��GxP3�
B*�_�Vh��9���%zo��nklQ/�GL�EI�9!˶ힱ���s<��N����$��v4ҏ����ۖC�®�#zlغK���؞W�v�	Qx��N<��r�s;bC_�\)�@��@�P4u��mG�k��fl;�����Ӓ�S�]�@�qށ[w��?���O�IɁ��4$c�-':T�����g����=g����WӶ�������E
�����(�ù��!���+���b�w�`�?]��?��|����r�I^�rლ����DL�y~�iﰂ�O^�Y��Ս����ɑ	���4��!L�@'Gr$�w@؉���.��ѐ��D�B��ZT�D�%Zj��	^�r՘�0��S 
X38*%D�@g�b�|4�p(�BDHA9X�k�3�)F�b��
=%<71^\/6��K�=7h7J���y��>�x��-!Ӂ��Μ����M#����72���V��L�1�%Q�+�D���4͌_�?��	Z�ԟ���]�<u�Q��KW0S��9�?X�f��0H>�]D�	9�����vAa��@(
R�[�K�r�2�!N��(s��e.�U:
!��L=n���+ׁ��v7n�̢��I����qmU�_�'k�����ؚ���%g_���&d�)b̧-/!��U�s
C`���f5�skrn�>S�
�j�ȯf-�j,Rqh�s0��C�ZMW�����'�
�d�-�|ym�њ2R��l����+
�jZR.�8Y��w��J�⨨ʸ�5��rߘ�{�¥tJ�u�Aa邗���}��P�*�4k7��9@��XZ��1�lH�U��യ��S���V��:�>�0+(9)C�-%�;o����Q�[O�-PrvA9Jrx��g۹�`Tg�|��摁{Vͳ�&F�k+�����6�
�?x�A��`�Y�υ|`VJ�Ҿ
�P%�z��;�|��b�@��.�k灶��
MJ���-��mXt��Ek�QV�n�y����b&I,�٫tVZ
'䓜�*��+���m�EAÎw,�yLlXoa�����DE@Z�ь�liC���&	�A��&�`�
����o�0�s�OYV<aq�ؾ�kɳ���/(�w�y�{q�"v��[Hu��ap/O�ykβ+Jߞ���y+��9�4��vb����-/Ҕt�>,2@�$�|���p"q`�D�)��QЪ�>\��.,�|���f䜽x9vh1;BB�0�IJ�Ł�jD?z�h2�l;�a(�V���c�c�/������^
��>��=� PSp���:On��,��n����u�S#2���3��\NN������]Q��3@)�_Y�ԫ)A��,�H��$?�{w|�8ς���
eq�hQ>ݖ�?�I@{�ȁH�w�x|�g_r�qQ�N��P��%�-��/+0�;s����;5X�l���u�4�\W�rj�K�z��}g��]/GV�!5�oD�#4��}���|??�+#@sN�^�J�,�(��|LK�d��N!j��ڝ�{��s�]:��Ƈ�J�M�A`n�eG]���Lqib4 ���TV����>V&&��o��ȡ�w���ɵ��g
ӫGo@Z��ܸ�?E��25�mj�P�4n�ELos$׻z��yؘ��/�������ݕ��9s��ٖ������g�6�;	�Y��}\�G�ۅ-��[`e�O�r4�/W�ev~�;;Tݖ�r1����/���UY?\�f�]����?���[����@���ߟ���Oߒ���8�d�[�[�hR�ͫ�Y�?�Z�AK�\Ɂ��UDY�s�>�qjD�{V��������+^�� ٌ#9�#9�D@'g��ɑ_	��-���4&^:r�2`dx�w�x
�\��
P�<"����Ue�Ɠ���B{A94|c$� �)�0΀3B�;���U�j6��� ecZ?�&C�)˨����+"��g[@���� _���%‹���א+�,scut	IQ}���{نj����Bch
��C�����~�IV�I{��[�N�Y�,@�rΈZ�*"�QM8
�Oaw��v�J	ݒRܥ�a���f�!�ۥ#���fa�/YZ�p:H�u��`��!E��ٱ�r�ς=4i�{yF�'&�����]ol=��VP���:ҷ0�-+R"=�<[�g��ˀ{D��ȥ�kؓ�4E;�-�	CW܃�����ѵD5�@��-�����|bs��r0�\�?��o�,��gP8>y�".&�����w�3܈�E^�9�X�����ƜfeD�J��d겒5��z��a/w^5z+	�h�	�L0_!ZnDo����xw�T��&�V�[":�>���^�u�l�s]�7�$��s�H��gr��B���d,`�5��6[�Q��[Z�q)�T�̑;�6R��p`(�!�-������iդ�����0îuZ55=��+nC�Ȧu	Dzc�R
�6���4����jN�B��oR(e*H�]9��	uQ�$ql{�3�΍/��ۘ���HOɐ)U�R���v��Y)�
��ޜ��C�2	�A��{�
u��B���vW3tk��x�4̋f(�Tq�Z���[����c�`�0@;X���y���L��1���5
9��Ȁ�Z�@�Z1%����}�9�����/�BaYv���M�Y^��r�GNҹ�4i�Z\OSU��j�0�;y�b��h2�^ݞ�ߎ�W}�����FdS��R�;E�p6ZUAݩHv1��_W���Ujٺbٓ�c��Yy����
ʈ��]�%��(N�-�W�����^4./��^��M�O0��w���HV�*��-e�6L�pc�j��Lv�0����e�Jõ�5x��)zB-7�<���ᨺJ���)G���u���K뻸��\8LrAҾ���ѕ4<;ҚL���|b��y �q1a N�$������j��M)=s���R��?��t�J(�grZi4R�F�B��8�^ڊ��Z�-�b�鵥7П��U�^��P��h�jjt���ϙ�b�����M$C���M�v�� $����-����޳D�>��t8���lDt�_@6^
�x�;�m^��O���jt��5�U�vc`���9c��ۆb�?��Kw]�~�o��k���6����I�~y�8�%�-�yپ�Y����x�X}�C��g����f����;��B�_4�d�]Q��^�j^��֬��z�-y���M�tJM�Y;��?]�GοN��H��H�t��	�N��H�� �6��fXk{���H8@��u�b��2�4��T��`ذ�@b�S`�8�zFmT���4���XZ�$��:Y��f0�}�*`���ː_%�M�JxQ`¯\_D8U�Gn�����4�����1�+I���!�����J���0�ؐ:b|ކ�҃��2<ƀ��XS4���Q1�a`ʬڸE���%���<�(#�X�@�*���Y:�6\�	��#'��c�d ����0Ọ���3`E��w�����0�
3��8��a�=�#2�e�����z��!<�c�^��AU����v0��+ $R@WC�O�����k:�&�	�Z�:<�W��"#�M&0��щ+u�Z�J�xBA�=�叼�����h,�b57����%�?q��C�@����&_��QQ��9*��
y5�ll:a�`�y�K>�6m�C�P�&���a#��@�R��/�
�lr�zI;~I�hu_r�մM�Nv!�1�z-��0D@��V�?L�
c|�ق�
��oF�}$�/8�O,�+�)���:��`,_�ͷ�:��k�+y��]�����K��)�V0�1uyI(���W��!6$���XW��tb�e��7a�8���������p���W�RmP���x��x)��'����ФbYA�9`|�dd����,2�u�*�m_��dȔ?�0�,�-9� ���"��6���a@Y��'@KCRA���;,�gEz/$7����g�'*�սk>�٬�gmY{!^,:a �G�:q�{���J�iB�ex��j/ )9�gGNj�8i)�]��)gz_<?y!�Dߥʀ�&�n�w@�(AX-Un�$����9r&IwMK������3��h#E�d
�!^4�l�9:�S�/>@k�Ӗ��H�"�C�� ��μ�[�֎�>(�}���L��A���?õL���x1��â�������h�[��R�M�rr��D�R`�S�yG��đY3^KK��`k�^ʟ��eޢR�^���P8kkL���S��B �َ���jv7S����m�).[�C��i5��<���70��=�"�#^^r�nG��i'���~�-^.l�R�5}֩�A�{���Z��ܾ(�)��¦�WK?�n�;��|��M�a�^6m=���6��2���W�=�?Y����W����8�\t�=�`㎬�X�QtYۥ6���Ǯh>�����O�l�|�o}T�V��X�/�
���Da�>�c���`��k7_+k%�vh{�X�t>�B;GW�(o���z��o�ԧ�� ��H��Ht��	�Ntr$Gr|ژ�pԀS����H^�zxR��0�4����ˊ� ��t
#m:��{�
[	�}6�-�ظ1����F�)
�
pd��3��[��N��
�)��X oU��q��U��D&�`��DF�`��1Tg����I3���a�T#JI��0�T2`���R�R�M����4��co�����ԮhÆ$�Vw�	�u�s���f����4��1@(4�ђ�)
i����m� �Y�6�\>�
h"�W�$�i);|\꺪�lM��D4(�`�����t�K�x��5� 6����(sQ�$����q>�<H�p_mM��|��t�.r��\����D�R)���Duh�U�Ђ
��2h�(�r+�fij���|fp+�f �����]�cQl�������|�PY9���hL����"���J��y`
@s-����gf��mL稸pxZE�q%3tEH��'����H���M���+x�fh��Ѵckfs9hK�S4��+ʶ��C�&y,L�j�mEl8��d����zJH���'(V4�mCL�v��F�D���B�I�26g�yF/;ڲ#ؖ|쮫��#_,No��S�V�����[2�C�|�C���Ex��1���|z�3UD��̌`G.!ԝ���c�ɻ�W��R�$&�o�Ă#=�]�� ��n�"�tl=a�Z9+�Qe�k�?���9���U6�R~e�N�_�R|0�E�<���eI����ɱ~q��UФ�"/��m�R��mI@m�aAfU#���2�i�q���<f1_��8ő����M�[�	��x�0O]���X�i�h3I�Mh ~���S�
%j����g�^�����S�.�cx\22f��������;��K3��_cV�P�o�y����E�B��b�UV�q|M�;T��ۘ��a1C��t�}��&���n6O�کGT��ƨ�n���]��j�r1٩��jl���^<&,��?���@���\�qZ]���o�������4u���?�_�����2��C{D�I�u�2���F�4�);r������vŸ@����=����}��ʲ�/w~oܦ��Q�5G��ĺcx���z��w>(�{ƛ�S���>na��V�.L.�Y�zQ�m�h2���{�:�-�Y��`���[!c9���s����d����L���ǫ}��M�/vsI)�>���Z�u�F������֝��.ɑɑ�@'g��ɑ��v�Hܴ�bT�
i�?�`#D��i��I�
k��	a��
�k}

y�
(|�bGl	�y�X��ZP[h?���eD@F��2��3�H�g
@Gz�C��&��\0�t�3~�]������6�̳�+e�u����=H���0DhR��j�����.�%���J�%LP�@
���� 9��v%�@���/�RDOB��ɸx�bQ���l�+�+0�����qQ���"�hV�!����:�tݳQ\���X�O�$L��5@�`���1~�ɲ涓�0�q��_��	s3�
���G��!N7�m_�俼NJ"�++��
��!Txp
�{@�u�{������Ϫ���>c	��]�c/��66
�G<�F��#�x�#&�K]
�'����
z�%�׊4�C>��	�j�90C؏���GBb,�a5����l�j��i�#�����}�G��߬�nd���G�g8��Y.GBr�W}���6z��@k抦��N�h�������324�����sJhmJ�P{|�����=��bhš��즭c8pM���tm2lpzD$"8L)+��`��^L���
�Y߀�}i�gch�/i�������T��KM��<m�hw�U����{��R�HXb,��D�����#ʒ	<���g�~�ɞ�9?@�o��Q�ݚ��X$zW!��+c8�5ゟ�4c1�3舀ә'@wt��CSn�ֻ��+���,��s��'&4Zg�֨1})�'B4�U�4}N��		��`r^u��諱c��-�Mo��go.�_qN[�ۂ�{��awo���;��]W��ݪ#|[�:۰D�yMU;]���̖^˛%�.��Q�r[���LZ�)4]��U��Z�BM�h2L@��^�^���"65ۑ�v���L,��v꼷=s��i��力ǟ�h��Ķ;�W�K��j��d4]8}x
T7N�Gk�۾y���l�|�����vkG��o�w��l��CYo�G�S�dW��ݲm�:@��<&��8z��<��_̬�����^��:�u���5a�k[.x\t����7����[/o8�7�mjn���a�2�Aa3a������L�sr$Gr$��2Itr&:9�#9�{���Uu�|�hۇ>7M��M��m��/}m�C��j��z���hE$D�Q@!�"P�a�	 �a`�A���"R��3���x~��Ea����g��Z{��߽���%��S�_3������$�b9����L_[z��7���q�2����
���z���
��1��$��%
����f]�	�^RP؀�q���@�+�ȣ���pmB0�~fB�
(�	E�����q��X�3B���3����4�&�~�l�[������Xݺ�H
MYgU�0������d��gE��w���٣-��<��&�$��mk�HܮHU �?� 6b�J��!5��V�8�+?j])
���>�ۋ':v2&U4,�B��\:��R�C֟k�X�e1:�_��L���ڴ,;vZsY)�I��"	.�p����|(��r������B��_�#@0�g��Wr@cVh�7]�rK��J9�����EɌ�A��/l<@U��h�Yㄨa��vv�Q���l�w�Sc	�5�1�y���Ţ*
�"Cb!�fx�T����D1����&�Z�C�֭�	<2ȫ�(X8�0�D�҈+�7�
hY7+��ټ����'+��f?pa�v�L瑮����*V��)�y���R�C���$'\
Όh� t`�� �B��κ��>����~����
@&��p4.�`����-�&�e�А֙b8%���*Y�iV����T[����^e3��|��떹���N>A<,!���tg�&�=a���x��
g�!�5�m��
�	@GF +�z��[�#\=�uK�@{�d�v�6���ͽtVl���7�9C|��R�{�;�A䣷�`��%��j9���X����_����A44�4;��s��,o9�٪V5g`R%�">��ѽnB���.0\���S/���!`q�P�ĉL��f�3�٘I{����>}��(�E�4�w�D,�c^sk�B�UEq�.{n��B&�w=徆�~��d�����D�8�`��1l��R�eB<O�:'q���]j��{��,��܂Тn�F@ˤ�S�v�;{�ܬ���5���0��?>w����5��ʝ�����cV�Ph)�/�n��m�Ϸ�y L����u�����~��~���b�ǭ萖��9��v�����Mo�<�����<Sv�����:j��(yN������y$�tRR�e����e�4�XM�����Y��Ә���`���8�7������x�E05S\�H�iH"P�Y3|��Wv�8H�(7���CuYL�f��!"2�G�����v��ga
����b]��Q H��,�g�m,�y>�[�}7~fVOy�C�%P�m����w81/-*�$�b�2V��	j���!d�s���*@���s�@W����m�: P��͊����&��҃FJ��]���M\@6�535dƀDPĠ��3|W�.�T���)�2o����xj]���v�#�#W�p	Ą_g��@:8J�<�2�n¼���AV���Ț���eHR��Fd�&��Ԏ"�Qz�|��jݲ{ ��L��������%	/ ���1Gְ=h ��Fu��ctP@���T#d�F/�����L�e������6R�����Ȑ^*4��S�T���aI�X�D@��#�&a��\���]��&�"���}X�A�1�#im���`n��/Y�F�_�?8|��31�Q�3U�����w�0A��]�r���":�V/C�`�=�K�Z)h��]��q�LJ�3�S�{a�ToR��M��#Z��Xh'k��(�~؊p��<�"������ ����4tE1���b`�*�˭9�J -CϺ�}�>��9Dn�pelj�},�"��h�o`4aU&��Q%ҝ��D�d�l�JI;���#lD�O"d=k\��w�j'�Z6����dxˣ�h��??2j윭���#
Y����i���ƿ�9l���M�yW�d��VO�o(��f���M;vi��$X]`Vb\�q�������M\��`�@���$����3�2��>���)^7���L��(DWt�'�
N>eƂ"����=��kd	�ŀ?<�4�#v�(�"ؗ�(��C?ϗ>-��e�i��%��<h�pȴ�8�\�/s�Ya$�\��!|�qmil��jF�dK)j`{T�N�2^��
ɽ��Ɋ�$��O2$&����n��)�h"��|!4��O�ۍ]^�d,[�f�H��U3ޘ�����'k6#&��eͰ9.�ם�{ 
`}�4�l
1#�L�͖�<b9V�\�v�"œ
v�v�'w"wS��b�͍G�M��y�j5�Q3�)6�&S�E*�dK���0�[<0R����r˛
ε��m�`n�������S��`'7NZ���3�3�Y���_X"ָ�ԇ?�H�����zà�����=}���������:����f��o��@O�m���/�~���n7(�q�n�GN�`�,8����;��w�o�/w���WVb���M7(s���<������2y�7x}���ΣN��"�=����6�=���g.{���%%%%%��G@c��g���<�NJJ�ȋ
vf������KV�*`
Zj.'��L������Q������kg$8�������+����kd5������T����D5g�j��'R���9�Q�D��L-JK�i��|x��<8d+����O5ab0��6a�`YsiO�D�
�$����@KSwSk(��^�C4*j�*��>hk)aYp���]��~b;V���É0;0!��~�H5�<��ɳ���R�F���@la'"r����&
���
��_�Y�8�
v������,4u�h��kuV�/����hS�:2��3����T��A�&p��bN��<�k"�D[G�d�&"3(�8�C#�CdjCxULA*�".Ɏ�*B�X�U
p��`4�
�
�_O���Z�� �4��^p
���@R`��(��{bC��B�n{��f���+�H���%|'��"(��i�q*)��:e�b:5��L�N��DH�!��d""�-���|�V-q�ʷ�>�g$y�m33���q*RR�U���!
y�G���j�>��Q�����z$P��E��S�[�W��s񚶓=�,B䢵��<����@Qf�����^/�e�<��}xa� ��X��(IA���5�B��CP��N�:-nW�
jbWb�)H6��\d�D�m8�u9:�Ik}��-�X��K�_x��+ �$@e]�N��S�w�B\6$LΓ�❠��A�+�3A�ܰ9��ǖ̗SU3��G/�H�~�O8d,��`��֟{ʮz���B�cC�{�h��l/����5��M#��[JDg?:�V�Ҫ"bZ�x- ��8=�hݤ+:S�Z���|�5^���:!���n�[`<F}컎s��Ў~�lTr;�-=�*�)h��6 |�o�ȸ#.�UID�Y�:��e�e�C�(��%�d�T�d�P�9�K�L˱��_+dž��c)�i�M%|���F9���w
�c��myJ�e�nތ3d�f���f�b�V�*�tI�n^�N��^[�+b�Mo<P����?�'��[��	�#Qu���m�V�+�.qe"�q
e@[M,Ʋu)ж�bb�߼�LV�ü�=������E�+MpѲ��6�x.��X�p�Y.Ԩg�Včz�A�>bË�i��̰
�`���i��di�d���K�V�D��y�C�8�zc�ҝ��p���Q-�%��u�:��R^���<2��Wjnkn?����o��7�Z�q�Φ�C'�ȍG}����j�8��A[
��$�)�?8s�=(�y��]��7	�Ʃ�C�m�{��%��?�o�~���q��'������߼��d1�.�Zs�y<6o�2[#~��sRR�W�����G�III��@1�7�#��׷{���c��6�l{w�be�Ϟ����t�'p�z�G�����1�<בy��QC�c|�8Y����+��T���`حr��ĭx��9�sE{%w��h��E�VK�]�,,&
���g�Z�~ƴ��BE�y��g!��݊��OI��٣ŊRj/��h��6�*�P+��v�W�ǧ�V>(8!����g7���{;�'�&���LԯI5��zk�R6!���t��B/���*Vk��X>K�d�FO4��e�Cp�g�(�^�L�Ƴ�E�N�çbr
�uC�Wo�q�*��9	�Ve�]�a�f�،�B._,�S�X���6|t;����=��G���א.׳v
*<�^�0	ŢfT��B�\d�]�c%�r)�4(�֐�PE�Qsq^f[�B�}xݰ.�������ƑP�ƅˊQ/�
K�R�����k)ʨ�l{j��]qZ�d��.
u���,sR�P�&�L��$QI�WeZ+�R����U4}�̇Jj�ඨ$ހ�W棒�Q�2�&�,{	8~1�+�n�R/�(�d��O�͢f�\��o�P��5�L���b�@�Bݒ�m��ǐ�OZs%4���c��+�N�~̡h�-_�^Se/�b�Xnr[k�9d�)Ar=?�I��w�w��pƕ8�ï�6�����zXBQ<�}�ߨ�y-K)7�����
s¤����Vt��#褤���@�Ik����/�ר�ڋE�m?���]A
���Q0�ݧ���Y�`h����w��rʸ5
��x���x=.��ݮ|v-`��|�}߿�	��(��DP,v���u��}�.
�6��>���Y=,}�M*uI&]�FP�xN�EW|t(sI<�o\�v�sXO����̕g;(`e�������˸�b��=:e������ex�/֒�_W�鈏�{�o�[�^I[P�lF���{Z���b��V;��$����Tߴ�Tb�Y[W��r���ջ���{��c����{�j�w�W���U�q��U������Ġ������<�N:))�&�]}����"�ƵJ�;� �|�g�ݑSI_y
����s�Un������j�*�Z���um���� %-]�i���Ο�O���.�n�]M=�]lL�*+Ξ�/dؤK$�zH�tM��W�u\;�J�t��a]|�䇼����~5f�p��م�����sIIII	@��	@�tRR�uJ.&I����������|U^[���,��(K��T�@½�����s�e8dyz������
�5��z�\�OJJJ�jЙ�#�����������������������)8��#褤������������������:7!�#褤�����������������3G	@'������������������������`_!�Ki`
R��vF�?YY���
tD�&@�����	���m4Ѝ��&@�=��h�@��Й��h�G.�h�@��M���}��L��?�
��h�@����^��&@�����0�^i��T�J�������
h�h�݀6Z�@����m4��	�4���	��'�^@�
��O���	� @�o@瓼�6�r�v�h�݀6Z�@���L������P&[Ф`�i\�
F��@w�ux��h�&@�]����h�]@�-@ @��6�@�vm4��:"v�n�M��0@��6hOp�]����O��.��m�-@L���`�� sA$��	�
ҝ<@�'�����'	�&@��'�&@/����h����=�#@�
t1@;�a4�ѿ��	� @G���&@���	�4�f4���	� @G�t>i���	���{�I*��8�'�f�Uk�~h]�+u�S�R��e^��������HbxKm�(�p��1bh�N�2߯}��y8�s��O�����܂��4@}����{@S�4���"�&����l�A@�W@��"���jy$h�����yy�S�I�z]X^U���4��vj62�{|�5�Fb��+��;��=_�T�cl*��e�Z�'��3���C�gނ��"������ַߩ�/�l�*���_լ�0�%S�
 �o��z_��z�>��絊�����Z^�8]R�W@�4E
��@?��_4u����嵑	��zV��צ�dә�SP'әS���ש�.r��jX~f�>:��RrZD�vs�"#H���2�Q��F�hvJ*�ю���<��[�$pDb%3���ym�F���WoO�9i)�?�i�GV��ȗ���5��>=��*�Hwp�譭-h��#�~��W�w�������O��Jk�����?��e��0�ۻ�B�ŕu��]����= �xHԫ��P�	C���h�x7�j���ѩ�B��)�]���r��c�����	i�jh��YZ��Rg����S�B�}�]g49��d:�I������0
���-���]Ӷ�i���,�7L6�t*}�;��N�E�?H/O �7�T���M��Um�1������zp���Hf]^���n*����U-��ThqL�e���ј�ᖑ;�#�X�dmv�F'g
Y��%�2ꑉk�����*}�(_{>|�<��Ɩ
nL�H$XM@�b?���0����:����� x�ױ���BB��BH�'�f�L%��/J4�q��L��|��a��{�����y��E"�H$�D���Hb�XK�h
�^��(�f�i�m�����SM=G��v���L\��Y{�n��I�j�	Ŷ
��l��~j|�2���;m}v�a:6s5��O'��w��K /a�4���9�z��@�=�~^1����S�vk��z�
�9d�e����;6
�0>e��DSW)G<BM���nT��-��
�3���1�p��=CT����)4Q+Ϗz��D,��k�q��>�t[�E�4C����!!	���T���6u10(UѬ��w�6��t	O��,�a���#c��ii��`�������-��oP!o���_[$�D"�Dp�&�h�H$�D"��3��-"ylr����ؖa�1�gx�G�}l���ɗ� |C1���dF�ha�Cc6A�0ف����Z85F]@0�acE�fw��\����]���E���o!o5���g�,���Aq�^�rel�]P�6+/��W��/[�亖�-��J�|!�.9��{�v��
�]�S3�j�撮�A�4�xx|BsUwv+��r�%����L�fT8yy�d|��zpt�Ό �P���C�S���_�|�%��ϺN�NM��˵ke�M�.1�h���{Ŧ�~�)����`��=�I�T�u�:�~��0?P��o�E"�H$���5/	��M�H$�D"�����;^1�B6�T���<˹eU�����ý#pdtLV���i���	z?�\04;��)X�a����1�0ָz����l
5nHJé<�щ)��$T��]R�ϗ��fho��0��n3��F��ir*F���Ȭ��t�ɚ��N�����٩l<O�جB�l��Cn��m��;�)4�B�E��\쟐�u�7�f�	(W���O9�$�hZ�8��5���ә˕+�bX�M�5��s�O�9{Sz|X���;,%���P�����N�8���]R�E"�H$�����8�e-��������khh`��UYYYTT�gͬ�F���<{��~�oe"�H$-	�����³L��u@i�����2�x�ɬ`�G�Č��?D@F�:�%�� ��+����z��O{�"��W�J��5l8f�K
z.�Ol�e@��$�4&C�3�	�c����܂���4Z�{��:bjpav�&I���U�6(1���ڻ�N7�CJ:�u�rB��F��smK�~lZ.�@v|��YU�2��q"8L]�H#����'�=v��&�b����Am�R��"���D"�H"8@�&�6c����������{��'&&Z[['%%񒳴qYL�����������.����h�������Ǜ��k�/C���666nnn��ͳwN_|��<�e����W^y��+//����-((���wYL���[�g���7���ٙ�g���#..nbb�KU��;�j�*>�gE"�H$-�J�8�K	���o�
z���p���}�@�_��?/�\��z?dΪhP��k��S��N�]@c�%�c.��o��4���<�V�QhNP2�Q!���+x��"�A��r@��d��r��:��7ut��2SL߬���ګ������
:�.�F�g��D<�fn���&�t�
���BsG7�j��na����f���@_��3����ZH�(�hT~b�D"�HB(Z6з����u��=��s�S��m�}��͛7�w��MO?�4��g�Q/i�c�Ն��=���Ý�������O=��޽{�A������s����}���j\�缳������S?��֑#G>�����إ{>q�Ě5k@��B��fii���~��S��{!_�X��~XM�u~��gW�\�^>��C���7�[{{;0���+V����w5���իWYa:�n�WfV$�D"эB�UDO���S�ȝ �9$9�}��=�S�f�;.
�\�>W��*L�1��Y'�k��F�����Z^��qt]kvf�j�k�1$���k�4,p|�+|bj��M�]��B�h�S�O�*#)�80).�S	��I#�S�� �E3�Q��O)d��Z�Al�hJ/*'�z��>8��f�ͥw��?�9<6I%���T��ĥ�a)y����iVq%�hV$�D"�h�d�\uww�����?��<�Iِb观�F�q׮]433���Oa�o���ٷo_xx8m@���O�3A�t��	�UV�������櫅�R��ի�~�g��|z;X��WO>�$T�zvc��(D>==������eee��*P8922rQČ�p@'''��Y��7�dI�
��js�̙3z���;::�{�=��eggg߸q㫯���>��3>F�g�5M��?~��v��9�M>�i�i.Q<��H$�D�g�vm�`;C�����B'�;0����-2�ȓ�z��B����
͚ۻ��TK�@�srA��$��@X`1��5<� N�^̹��_h��,��5}�j�Y��
�b���3�9	�����Y�f H�.m��dk�ds�����%�Cl�Ҝ����@�N�L�`h46�:ͯM�5�w����_4&n:��
� sc������W8�#�(�E��"o0w#�Z5CC���g(����-:��S��������3�c�N�ZH0�S��m�q�����A�\��KO >7qV$�D"����MI�B�@���o,���.quu��w����/���a@'8��Yh(�r�[��t�~���^{
FL�����fH�
��J��S�|@K�-�k�A=�YڐGA	����c�����tMM
)4f�\�q5\KK�qUc��s�CCC��D�6©��~J�d)�Diլ���~H� I�ƍ��KO�_��L�رcL.�%���,--I� �����$�;�� eE�S����򠠠s��鬜,l~Z`e���鄥04X@�E�+�wXXXSSӼ���9Q*!!!���sϞ?��a}h�-á?+�D"����jv�9���j��%5��?�MN��+j�� ^9���gpX���
�a��~E�
z*1)̠[+�e^Vd�ȣ��y�[3��U�����4(�/��hAuUim#�j0���x~��[0n�0����tcLF!O#$�C��	��+�Vh��ڙz�G�֧~l.�n��:�Qh��#*$��r�5�"�b,
M�M�/)�kb��89Ɗڨ�|�����3�+���tC[	Cc���ށafD�����Ú�os�4jFf}4�xA9CY�Š���V�O ��W����"�:O�j�S���VV���"�H$�Z6�@�:����=�_T�$?,�Dv,��i����ݬ_~���h+ܙ��Wc�%M��N����}ft�&��G!NJ<�ڵk_~�e�=����km�	���o)�L�E[��������!�*��i����H�4Ӏ~8�[�c���`M ΰ阘�E��8����ô���fP����λ�G^@C�)��澅����գ0�Q��>7	�SRR��-�%���Q�#25f
�V���Y[�D(�S�rfG�B�w>w������>���j,�����lNNg��JAD����E"�H$�k�����x@���/�햦sݫ���N��h��D"�H$�C5-h�@�
oA�Uc5%$$`M������t�A(����g�>pip�:55�z ��b��e?����l���o��/�!�b����۴i���F�8�M�S�ZP6�e�	��P�h ,��Xˆ��U��*$����*����AՆ���q�4�4�j�Xɪ�*�N��2(G�,�e)~Y��4�_�>[XX��pyp�MhI�ATK����̝��F�7#�D�'����/k��7G�x�i�h)�]P�ƚ��]�Fp��on�{�A�p�
�L�1xة��
�@�#R9��ΊD"�H$�D"�H$�hq@�&�Nh�8jW��p��eh�&��	���Y
U���.ٹe�}�v.X�;CH����9XtI�Џ�P���kp-��T�	N�r����y�5�
�S������qD\@�i�V�%�BO��q�z���11�[���)Uٱyk�d�,�_�ÛvQ�
�
�f萩1vT�5ӄ�*F����i����3<M��F�fm&�D��\McP>��D���όg���Bn�D�,�:K�5elݺr
tf �077W�9���,fE"�H$�D"ѿٻ�ި�;���	^@W]v͎��A���Y$��!5u��b;aJ�Ip<Ɗ(�`Bk���Ou���kb�	3	�yt�f�{���5|��s�(������:4,����ѣ��رc�
.���h���9Z(�e��f����a���I_@��F|p��ӧa���E���ܶ4�>��d���.��,�k�[�z^�͜"�Иo5��a��@�2([8��*:@������j�;���	^���K4X/	p"�,T�g	�sg�����S���C����˪^��mY-��7
:�ֶ�����n�U�|*��)�����.β-<w��H�H\P�:���DQEQEQEQ���h���BA����
�ڽh�k��᭰�����,Zͯ"�W��$$�{�Q�AU�l'��h �@��p{u"��{��	�9kW�#��
�%0M@C�����h�n�)E��_
�}j\�̙3"G�Wx-�O
Lz�NMt�X������g*�.�A�צse���#G�����Z�6clvȊ�"�T"�Y�&��(��(��(���1nB���&�@3[ඌ`”�~���2�@��
]��I�`ME���Rh�7a�+W�|�����' ީ�fӼ;�&�U+	�0�I��ו3��aii�|:99�t��Z�o@+/�l(<��W$n(v{{{x�\��wO�8Q�MMM�����FDv��{ln����ϗ�.�����̕�����	J�r�f����g1'v�OC)��w�/NS��+++:��@|��zr�v_ɰ]�B�N~U�[���DQEQEQEQ=^h!�:-����6@�j�~D�U��6"����^
�!Z�΀#��M����y�g����%Ku�M�*��a�id	�ړ�*�Q�0��sgH�nC����Y^^��
.ZO�F]��"L�-/�6�6l]�IR�3>n�<x�ф�!�=y@C���x([���S�Hٰ��ˆ�j�,2���aĐq)�>y�$�ie��Sf�LK����bp���抮)ļ��"����ƚ9��Mm(ZM�O�ڤ���p<��~aa�.�r.�MEQEQEQE���?�y*����=4l��2��.]4|�(�-A��;#�P�Tw@�]
�ϥAU�����MSm����F��bk<�^��B�(��D[��̔�I1YG�U�-�]
�26��C�����={�E��y��:K#N
��	@���)�NB�]#�ۺ����>���+�8&.�ۦ0�k�&�R!N�TN�e�0�o9��1�
�r�ؖ�k��ήo�/�8~�8z�u���_��poY�
��+i�E�<4o�\��n�]z������ѵk�`������i3F�������~ws>---m���;s|�ɟ?�|����(
��t*���_�V\�����ԮvN9u����s����*�jD'aE���XGj�2�Y�ī��A����t\�pgF�ʥ��ܹs��Ӡ�
��/���m����:��"���h�Ŧڷ��6wf����8ru�P��:�b����rZ�jn�ռNG�KJ�|��:š.x
�¶���.	���P>�ggg-��!�����XgLe�$�p��dƟv����U+��&C��+dI�����3Y#p,�R�\Z�@{v��.רe�C�]J�t�8�rS�H�Z����g�{���������A��������ѵ�k���\��5oL��o޽4sijv���}ܻ�|?---m�q��[�w��%ߜ5QE�c��N�~=R��$��^ܱ]��N�b?�샭�s܏��~�+	-D�}��,o�foˑ���zb�'�0<�j��Ux�c
�=�煃ed�E��렧R;'�6 ��;‘N~��0�y���>mLl�2��,}T���]��a
b���e��+��]����v�f	u"�m?~�X�'�J���8�kEf�\V��S���*<���EN��%	�^\����Wh�~��ܼ-r���p���UEQ4.�`�����OF����^�����ֿ�������ж���z�h㝋S�Ͽl�(���b�a�T@�@G�U���&��.�nܹ�DQEc��m]�����7�(���W�h?u�YE���j���~yizv[�JEQt*�����7]�Y<�۷�G�X����YEQ��soy��ҌR޻:X�}�����|�����G_����(
�NtZtt�oƓ'O��>/�&�~}a�[N)QE���^��G�(��������?GQ�=���3y�����(����lB�E�OJ������ޝ�D��3z�Jri�ܚ�T�p4R���^�"�\2�\2K*3i!���6G��ĵ���iF�\��RW���B=�I����ν3�f�|9s�7�l�T~������fH������zַ�`4�
�
�3:&V@������f�	��@�&@ @{@3hh����@���EQUu"@��	�44�
�
�?�Y� @ @��@���-8X� @ @���E�U'S���W}>� @z�Zn�
h��Ъ:�IoS�^�cR�o"'��aE�yIn.�:4$��s8@KD�/�}}}��.{WW���������n��lr^�W��^������CQ24@�4�A��i�;wk�#�\=|e��o|�Xӝ>[�!����MIK\=dd�I��=S~>0��b�Y�bkʎ�Η`N艠�(ת���Qn�d��]Ws���<��}��أ�E;w�^���~�6>������,0�,
oS�֔��摑���@����'�h�.@7>yj^�v���S%'��#^�ֶ�d)(�6x�X��u$��Z/'3s�\=����8�����c
_���[
0���s��Z����1�y�
�= $���X��@�CU�7M���>��Ȩ���U^PU5�P�L���s-�{S�{����[Z�&�L�@��2��[:+ײh�Aʂ�kjn)(:��L����<}��K��64�Ӧf_SЦ-���ҕ�;[
�4��rU��̜EΆ����Nr�Z<�~㖇������_ȌH�Z�|���/6�]*�pyE�B'��ٹ���F��ނ��?ػ����8����Z9�\X�&��l��m�-�j�L�t%����\�*�xa*�f)bn\�2!DK�@;G9�p��紓�j����g��r�O��}���?,hs4�V���V�{��-6���Ԕ���Y�;]{�}d߁�Oy��}}�}�>i���=8hvf^�������x3��l�/=F�e��єg��:$<jwN��PGT"����_���!���ֶ�7"|���t@GǮ �f@�S�`b���X���������)-#3:��8������?��vfCm�X���e���/�u���-�M���O�߹��Lu��;wt��z��b�|U��ۨ�X��f�@�3���"�0h��K�K�*���DD)�p�R;��]�����
K�;�:::��@��cUJu��k����t��:q��n�8^mP���Tő�jtd$'�P_4^����u�idx�����"���@O��}���5yC��:����$W��j��o`nA����Կ=9���03h�:遊������NM|�_�&r�-ްq��j�;�����CG<��5��f���f�vuu�2
�Uw1 ��=��E
`�����]���L�u1ٜ�s��NY��fdf{-Ѩ���{{�^]�Z]�ڥJ��}}�[��|�������o���Y[ȚL&]n�(<2����ثo
S�2|��gL��� PZ�ʪաQ�Ot���qk���/��X�f�@�4�s]m�y��y/���d==�ՙ�ϭX��,lI��_Țu�񪗒v$�=S���ǩ/O/_�����%>���b(¶X����FG�=��T�t^���Gm�K�}��?82&Vq�&����Z����H�1/��ݹ�py|l섡f��=�C��#���|�ۥ{zz,�����!h6!d@�+���_c@���������'ngV�᪣�o8��KU��Ju�9�õ���Ԍ�]Y�����l���u�h4K�V8x���_'���…�켤)ɩ��j�V	�}���Jv^ACc��1;�(i��MNޞm����~�b��>�@�h4<@���CC���k�_���	���Q��{�A��������Pe59i�٬c���}����t@��X�2h4h�,���6'T׳�_���:@4#8X�@
�@
37�֛@��@���ٹ{�&�8��¥>�N�t�Cq�U�P)�	AQp|�MT��"Z�8(NZS������%\�%w�⯤Ah@�����oH.�����s���h#@44 @�v@Z�hZ�h;���@��@���$@��@����4�
 @�m��4 @Л#@�YY���0�h@����4�t�^���k�h���,/�x�f~q�[�$5@��z�t,��t�|T�640�z�����/^��0r:?����Gn޺+����:ϲf��� @���64 @��?�`b���Of{�|�����3�����t|;M���m;/_�����W�����trj��E����{�<�h��0F�F?@�<|�{����s�a�UN��_��`�$IZ���Z]u��Jea��}W�߈�Ͼy�u:��(��v,��`����ϕ�C���c����8G�K�Xxu����S&~f�z�v�"nk�AqnE|�H�X���0�-�x�q$�YiZ�4�V�q��040��{�UՕ��a�dM���D@PP@@P��#�D'���^Q@����(E@i�~�.ŀkE��3��+�~�Y{�8�����˻��ަ��k׏;���j��+W;�̑�$Ɲ8w�b|Mm�ҟ���~�+�aS�g^�����\鯭���w�֝{���O����񓧣�;���R�����CUqIqI��g��H?10��c���=N�vuM�FA�@����	W�:�������M���MM��Q1{��:z���W�(�*##k߁��c�M8u�ܵ�7Y�q�w��/�<��`��g���>�A���&=L�<���!B= ,�xx���p�ރ�����p�Yvv[G���7oq=@�JULg� "@� |��d@KZ�/T�.���3��Y�o���54�=�U?Y�Uh�����-����٥���������JN-]�����7h����W]�6l�FgEeeP�4]C�o{|�ӳW�AK���t��(�v�.]t�z�u�3v� �!���F�'NB���[]k[G�#�O�k;��ƽ|�����kAD��o곺�j�?W[��Uϸ��ٰ.?�]�gd�����ظl����4��71����bǮ��Z�8�g�5�
e	�M#��d��kH�64��<�H��H=C�铧%�3��q����nc�e�nfr;�����ןS\p�܅�mm߯���Ǝ�zLzs���Vn�� �-� Ҥ�-��%@�۰���ἅK�;��/����Y�W�^���L��5wa^^~������̑�9�LB�@�a+V���55��}�v���dO�C��9��&O��olq��M͇yQ]m�4��mIе��]I0��;o�F#���~�ƭ��
����è੤`���n޶y�?(��<� ����K�2ۇ�/&%%���_Hh�i��H���Ŗ�ۘq7o�����C�u��BPF~��Ͱ�X�JUPP�‰�ec�~�#�gdf��>�$���]����?k���8r�Ĥ¢�Sgβ�1g~mm�Z�f�ѤW�Q^����?ɬ���0�W�	��ed=]�aJ�� �6
� � �!�&MhA>������
���Cx���C\P���t䶶v�,�-gG��Uӟdj�f�F�[O2���+Q4����y�v�~��S5_uk����a��!�!���F�ύ��6M�u@��I��s<�{%�eZ�r��y]]�FA�N�����WL�2��QЋ��~#��
/^��OU�h.�w?�ŋjeX<��fε��)--�y��%Rh�LN��bL$l%����"&O�L��a�&*;�!k�Դ4D퉓&����,0�x����������-�~��Jt;~��3�6��$�n�����¢?�A�A$Z�4�A�\�G�SIX޾sw�NLB�]Zh�l�h�#��l�e�������!%5
Հ�7M'�TŔ1$E�q��$z����.X1u���Ysi!Ӧ�ܽ�~�o=c�I!S��}�V�@[14�\��?�7�iTPh�FA�O	Є�̬�N�<�B�q�a"�Ο�\�.��>A{�};v���Kl���g���<d�QaZ���y�?�̄�W���s�B�ƅiɲ�Cæ�ͤ�5��F}}}Kkkph8�
4��p)�������e��޾��|�ƒ�F���1���/0���
���(G���Q�A>g�G�"��D�����'&�LɩΝ�C&P2�)-8�7Gܙ�#��u�!���s�T3����uI
Ρ�7mU�N�<u�	Xy�F{�ߴ����{���;cM�^��i����W��F�^�a�v|Jc�[<g�b� �П�Y �J�Y��ˬЯZ[�����߼���=l�����)y�#ݭ�����*@�����iܫ�ֶ�]��'�K����Y��z>s~�������y�I��N�����7)�mN�`�_{x�`�A�Y.kk�����s���	xxAD�A�hi�D����S��P�1��v�ha`�'�C��>{���w��!5���1�t��)x��]S[��e��^�I�Smµ���ѱI1�`���Vm{��	q� ��y^��u���-=�O�v���z
	�Bz�pgW�M'��0�FA莔�6���eg�zx{��᪯(�9A����I+޶}���-]���3�p��y�����.#@���x��MsS3z�bټ�`$y���'#F���T��j4em�T�y ���6�OIM]����F{�b�1���?0�#��;'7���u��I��ە���zN�43K� "@� |�В-MhA��h��̧55u��6���eA��b�oҫ�"@c��᳜�����T��z@��=!!����aqii7=�E˵���Nt
�;5�鳜�ظ��'�!��-,T�|٤���7��I���˦&J`Q>�B�A�/^���6-=�
�q����cv;6���<%L��b����,�
�*Ò����C������љ�y4gU��CP����8���P�'�+���C�2k-*�=y������&/�<�Ѡ,������omw9�v�q��.�=�
�ZD�A�hi�D��]��y���Y�i�g+5�:�g�>~A��O����'զ�(��W��/\���x@�J���>v�V�F��sc�Cy���Nnm�Su��+?�^�Z�[��0I�YDZ����lڶ�������J���}��]R�G��=u�^�x��:�+V2�kA�x���Դt�3������7g�]��;��a�=��D�Κ���Ʈ�io2���Q1GɆƅ#*:�pT��_�I�x(!@#�!�oem����Xt�ϞG�&���ettqg��?0��؇|��!73CGN�:C�Z�J�>���:�\O�C�6/I��	��=Q���Ep�q�Ђ "@K�&� ����;w��,f�Y�8`0��c������y�E �X�q�;��qth�L�	}�ި��w�	�6�O�h{������z��n��AR���k7=cą.�I�s������4c�ts�
�=%B)B�R��}.�_��[j
������� ��������JJJ:Tݗ��
2\����}�c�Ov70۵g��H��o��G�F�^�ê�s�l�Ь�N�>���}b`K���L/����5Y�ޱ{���xz��?*6�l�9��f�Vv<=�>��c
~>qRHIi�"@7E��4�A����ܒ�FUq1�t� "@� |�4��-MhA�/f<:�>;����f�䖕W0�r��֠�?�TŔd�&�����k�ytm]]�J��r�`�������g��444*��8�m��ddd�Uͬ��{���9Z�>܅1�22���_��-� t746�VQ�Ri+������)�j��C�e�b��eGvvei)<�~^Ջ�3k
��!�IF&_�(�0�I�k75�Ď��?R�ha��Ҕ�Tj���V�T+f���-����zf���2�%r=3
��o�Ђ �b�^R��0��/'�1B6�ih��80��9\��(N��Dg@#@�����m?��x0t�3��#�CY7N�=�.�l����y���J{5�/��4�s5^���� @��t���z�mh@�`�
 @�p�
h#@44 @�7��mh@�@�h���h@�XaZ�64 @ @4�=1@;��Ѐ
�
�����
�Ѐ
 @O	���Ѐ
�
��#8�-@4��v��ѩsO�h����4���}v��Q����OSg��?�-N��rJ��Չ6q�2T6�s:�x���dCA����E%�;�٦��9 JD둋���C;��H�$���'��-��i�/o���Յ_�i��������:@wvv2@s0@���k_�R}�F9%e�w�Y�ο�f�DD�=zs�?/^ڶcwiY� ����S��A{�-�]�����Z"b�&"b�6@www����ٕ����*@�JN12���H#���wk{��^��5����h�����Ds��4L�T﬷��Fe՜y�M-m=~����V�UD�MD�
�h��MD��S���
�1��<-=���g*"b���x�\f����i��7d�f�Ag�q���j�ظ�睻�ﷴ����������
hh"2�]XT���*��篞��hz{����_�mD�ӗ�;��}�?���3�(�{~���º�Q�(jE��@��g3��1R�lnl�����.fA���8�c(���`kB�,����Nc�R���x�x���ӧ��#S��s���$<XED�DD�0l��+�9���p�4�ēɛ��G;��x�
�t._�K��[��&�o�_Z!�y���mb.[���[5�8�l�o&����a���a��p�����G;@[�8F�
ظ�R�8u���s��
є{zznVW�vp�]S,��=�kjo?���M8�#4��R_���
lR*�=Y�N��>�-�ɒN%��������a����Dd�Z�0g���ߪ�#Q6o��;��y�SW��^�T����b�­��������$#S+�e+�F	
�W�vv�@��;q��>K��t���%�W$i���z�ٮK|�B�"�l�����:PEQs�F��������:�@���Q�Xl�������"�sP8�r����1e����[�W�ܼ7$���'1@1@3@s0@������/V
���8Y�
?i��LܽTR:y�媯���7H:���K䚔͒NvN�$��ᑒ�C?�ԇ�g���zlh3+;�䖖<��q��;'��8�"@�ϐ�|r���E�V��o�9g���WMm���N6��K�u�{�D�SZ>��j̣TD�MD�͋r0@�4�D���Ҡ��Wߛh��4p�bI�	���� \��llچ���w����u^��}�����	h"�����vX�����\]\��ɦ���V+b]���,(8�q��E��fdb���>h���ojR^�z�������.a�����狺���������-4^��Ob��`�&"�aAa�4��{��9>�n������(7���+�'!@��փ�Bf��������MD46/Bx�l&N8�5�U7���Dň�@�ƮJF�C���ɋ}Q1�8�G�����L��]� F3@1@1@��
h��+44`�ƺfiНƻ/4��x-@�NI�qT|�9'�.E���љٹ�/�k4�DDc3@������ʪ���CZx�ק�KHBq^�>O���#9%53+���]��2@1@1@��=��9���e�^_�
8�C�F�L(I)�)Y�!E!�D`�EQ�^� �"�
���f��B7���(���(o��LLms��%yYMm�~N�!%$����0�s�r{�{xп
�cW@WVUǯKL=r�����٩h���'��^�	h͎<,[�.�C��~�޶6���Д������ @���	���-[��̷��=�>�Hٱ[�\�~Co�z�n�+�/�0�Zs�ݱg�S5G2�_hѼ(y�.�RT|Q;�N�����[{���S�5� @zB{@�h3%@kӌ���7%%kP��|Uz��9��}�����z���ɬ�����

��l�\��~El���+�Rv�w�~�����-��	M @����ԧݓ"��h^�[�HkA��V�6�{@�j낂C3�sLӰ���F����t��a�U���e�zqC��5Qѫ�o�e�M�*@ge�._|��� @�� @ @�p�r��W�~�o�Ԛ�wo�]Y9g_տ��6��3�JҦh��I��j�\z���%W?�0G<��Ԫ����=@�b{�ǂ�����\.��G���9y5�Z���Z[�[�3թ5����3����ѫi����|.ߪ0}��ZPlw���K��+Ԡ�]�܄�A�@�̐-�==?4���Є�4��n��
Ǻ��OzU�j��3�":��
�_�0���9]�x�d�3@���ބP+�hh��������
��7�hh����ah�.{@��A�@����=)�=�hh��.�
h@�@�4+�h @�/���'�3��?Ы^�n��E�ip��.�SܵnQ�&Xk�*źD���EK�DEq�,"Pۺ$U�#2� 3*��0��ˡ&Ƌ�F�������ՙs��fX�p"@���M�@�����'�44�
�
hV@3�hh @�����hh @��A�@��_���Z�V��2 @���l�;@�C�f��߈��7�̘U\R���e�W���f��������:-'�����z[�f4�
����/){��Q„�(@�ENKK���)�r�ԡz���������H��쥽r�ԩ�UggG{��d257���e}:�ge˶��*�%w��rO��:Y�ӧO��,˥�X�ϳn��]��Wp0hoq��S{���<y����K�:\R���Ҧ�@�<��K3��(.)�~������hi量�YU�����ضc����M1�'NVU�(��VKaQqZFVFVΥ�Wl6���'PPx����ڻu�|2�s$V(@�~�-���OY���uod&�<u�g���jVYZ[��R�/LJ9$C6<|�b6Ur�t��6;�HBbRr�!9�w�x��o1[����b]Tzf���WdBy�0���%��x �`���z�^���y>z��\���[M��cq�{�kj��(���LB�f�����@J?{�}�I��4��C�,{��Go��dRT:]}��5n�C��9�wpu���\���ࡢ���9>t��`��)?���;uFn��p�����`O��8��+7��U��^~2�����}�^y
�]uZ�G#C&N
�0eF?{W/��f
���]]��$��;.>��PW���.�C�}�I��I���!	��"V����sp�st��
�Xy�F��&���sr�vt�y|����KM��`���M`��@Ȝ1[��c��
�~A2��Y��d*�F�n�644�|��aç��q��w��-(�3d#4�4��8@'&�JV���}�����y��%� �22e��P�n6o�.%Z���f1��m��odo��kjج�F���q/]	9y��&�^zG��J�HLJ�w��'gG~�~��׎]�Mz�FS�hي�Ng���;a�$��f�?[PT����O�_?@�l�{�;���q^�\��������ɑ<�@���}�!z���{��芊ʊʛk�E�;{D�����E�Aˡ[���ߧ���+a3�Iu�
��KKϔ��G��_��m˞�D9�/]��FE���l��VJ�w�ce���ƥ+V9{���d|꡴?�^�sZ	�Fh�5_�!O�� @�uZ>"-��ea����Y�6s��ܢ����=x�򕲭�::;B���w[sG~���;yzxS�^Q�
�=]Zv�����JJİ�g�_�<w�N<JzDWW�<Pȸ��c'6���b�\����8��3��TH�ⵁ$E�(jP�x�����^���M;��xV�X�T�
54�;VqQ�E��EX���`v��w:������y�������|��|���+�Fc��D� l�q����W47�P& ������{w��Y\EF-�9{nYY9ߜ�1�N;u�����Ȍ)SsK��3{���̓��FDdTpXAӮUߪ5�A!�2���1�U���}��
!Z!��P�.	�Bw��V���U�L�a�_�>;�v�j._�靿��9�-�vIW��#�'m��Z���q�t1��T�K�.<x�2=~�?p���_1��g��ٹ)���y	���{[Z[C��a��oB	Џ]�&N��#,���V�f��{�]��	����(a�̊h�7��l��Ab��)3g���|�j�PJC>nO�<=f���&2
�TyE%ۓ�a�Nޝ� �_�xu����k��c׾9+t.�ix�S!Z!�̂Cк$@!�W�F(-�p�����xep��م�{����9c�i�_�)����_0/2
[g�h�Aʩ�s���������f��ϙ�(f��L�--��ֿ����)���}擳����z��щ����՗O�A�Fef}��[Ȟ�d����\��>v���#�L$uhD$��|��9�hc�E_F�
	�6+t��tC=�������.xOK�B�B�o4Kb	к$@!�M�FP8Pt�U��7��[G�399����c��&�0��)���gϛ]5�==�M��F���zn��7�<wތ���G(>��ɳ̿��0��
��u�V�n��0�&����4�,�X�P���h�2���L
��V!� c��R�g�O=�O�+��?���l�G��L?���������
B�F�\;~�w@�F��6�u��XHcܱ4f��5�zCccSs3��y',>�9$@!Z!��Z�$@!�E��{�^u�e��:�:��+ُ�JKˉe�43*.�,/\���Q4�"ھ�ڐL�
J.<Y�V�{?��^���
�5nR�Tʀ�3!ϑ//C����
�u�e���m	�B	Џ$@SC�2n55�涿����蘶~��ϟ����8l1�2
^�h	.4���#]�X:�;2�Y��i�S�{2��|��i���[�
�T��5�i	.c���"9���mm�����-���V�.	�B�.@�<��	S�~���h�	S91��[�2�f��]�h�$���Đa�t���h�(Z��k��L�n�n����;m2�nC&���@�������:$�<C��h{2��׼�p����Ek��Q�;RR%@!$@?.��g�g�C�"�A��c'>�8�:v-��i���I0������w�y��ru\�1kov!���[w$��^�Z����y)͐�RIq�F�6�\`��ض3��¢C�)G�UN޾?m����>�86E@!Z!��Zк$@!�E��焷�x�;�xgL6.Y��؉�>����G�`��ݝ�1��9jMrB�q3����.�����w���0�X�4�j��z`�"���'~��?�N
#!�Ǥg�Gڠ7��w�蟦�[M�fG @߿/h!��G�+�g��b�|�/�h��)�
;�^c'2�g�Y��a����պmG
�;�K!
��{��s̝��kV�~�&�yf����;�l�2��0[��$��(�mJ�o�sr�_�9��3�3����/��Yna��M�B	�BH�BYpH��%Z1�h�Á����$�U5���߷_�7`��1pd�����ꚥ�r�:�}}�k��y��O���ML��t��7����[�s�w�Z�#
��뭸eZw
!��GNBx����WB�������X�ťK�

�"�s�!�U3�PYZVVZ^Nah��〹3��\�j.)���ljj����3lo�q�&�"vsK��[M�U�%?����LM��!=�9�N!�h!�����.	�B7IB��a��Ri�S!�H���5$@����6��'��v{� H�=�-��5>܊�L��R��z��j���ފ~�,�h!���h]���$@2���ƕWT9�B��%@{���=��@P�BH�BH���<�y���(Z�h!�{	�V�������)�b�	�D,c�q�l�|i��B!Z!�G��P�.	���ݱJ�P��gpr�9\\|�>����n��:J��%�H��V/BQZ%�q����	����i�f�纮#����tD��Ѐ
�������#@4�-@4���������hw@��@���iI���h��4�
 @�a�Ѐ
�
��N��z�""}G��@���-@�˲��f��\n���Z}����y��`����,h#@4?y|z>8<�����!@GG�TzV{�w�ޑ�=�>Nz�m�4��[��j�ֹN󺝳�1�qoٿ|��z��v|rzv>˲,��]��{�TU����׭�u�ީ9��A�TD`�c�9���JF$��� ����dt�$Q

8���W����T���*���*j��޽z�{��_�-�@K�\�E"���>0j>yR[W����M��Y�%෡�5��tըI�;uʻw�޼i��-�߿��Gf���b��O��V�Y�Ea�|R[�_���h3oD��zTu:�acc7$>y�A]�
-5?�oh��U�J�k���+���^�F*����uz�K��
��755I',��f
UU~1�����VWW�z�R�a��TVVW>|�=}��x}��!}��*e�E
b\�����+������������qu��Ց���ٳ�DWUUQ	�
=+m�dYYYuM�+jQ�=?��@m�S�E"���G�/*.�������(�hC:oKS��y�2ڦd}z�z�)/�())���~�yzn�e{G�Yn����"�h�H$�g���
��K�H$�k���m;�u便oL5f”��7Թ0�^F��zF��=V�����Q��M62����SNNI���z"��+W�~�10�cɲ�:�}$�QvǮ�=�k��t51fbv�/_P���%�0���w)�kot(!�W��&Z�&?q�R���u���c�5mF�ê�����t�524�Z���!]iRxd4���R����ܽ�~
o7d�C3M}#'��ΜU�,^J;ͭ�-l�
M��?�D"�W	�!�L�����j��LG�A��(!�
����-�0��&���v��������t���\��j�sϾ7o^+����k���7��x.���5�y2F�;�('�'%�8Jߨm`ڧ����`��geW3+�aҭ����hh����޵g_��N:��T�<hX�ɓ�@�N��2��
�9}��w��g�ͧr�zȦ͖��5��i�I�rs/S��l]�w�A[�~� ����)�T�z��q�9�&���&�{����kf&khj����0}��#�h�H$�Gh~�H�\�E"��@JLꤥ?u朘-���l�ͭl=�&���ˠ���>�6ED��꠩7eƜW���=p(�����̋�v�=`a����D%@ئg=c;ǥ>����MbȦ�N�#�N�f��Zf��v9yW�"�x��iP	ϥˣb���u�2X����dt��y�nC������ɺgC3���B���#��0l�X��k.^�&q�؉� �M���sAGM������{IV��]4���[�����vd76Yg�gw�޻�sPh8
��:q2�4Y)�'�شaꬹ4�Џ"�H�Uh������mz:rc`p@P(���~z�馦ƻw��ϳ"��s�P(}ogm��WTT�f���f���̬�Z}�R�e��t�<1�d:���q7&M�ޛ�b��{��7�ֻ�u��]�-v��������	���Y�_��Nu�\�.:��3�bֆ>È��V�*dhfy�|��R�nWsG�A{�;p������*o1�����}?��B��x�	:�a���nj��Y�d�w㧛�]̬��a�r�ĩ���D�3��_�Z����Y�zݞ�x�h�h�H$-r	��D�
@�}�̽�yKI9�y�ж�Ǐ�gN��v�X�f=��Ĥd>�a��/��	1#��P��/\̂/1��T��7�����|X��O:��QK�
d�]tW��S��$=�|xV���7�
�T�q���Nu��
7o��~SD�Z�~c��gJnTl<z��Z�e3ƯZ��u:{.�7=~���C�J��6����i3�+��r��[�oC=e�L<�H�jyY�H$�Z4�P�w���J�KY�t���1I��\&�)���ULv�ڋ�QNn�w���R4\�U=�)!�>q2���F�w���a����np���@g�#3kV	+޳� ݦ��r�7&2�u�.�]G�q�mn�>{��E��)i��ҙ�疭����yPNI��5�2c������F,��N��@8b�l=(��Ftl\�N�a�핫�}�E�eQ������_����ZC�uxD4^Lʦ�A�F��\���N���o�߽���"�h�H$-��%Z$���h�-�w��7�3�Z�)�u_���+��'�t�6\�!�{vp��μx	F��/@�{�x�7�wN:v���3~�����lacG���7���k��|
ٹ�V[��)O�>��|����

� ,.+;W�2{�|Iiك�&�e�_�n����/[��
��e���y�ȱ�����yR[S�tꌹl�&KE�����<�H$��#�_�nHL:�Q�`���,�WTR����9OM��+��[UTT(��D�^
/_��y?Y@S�+a���y����3�`L6@��W�B�5��W/g̙�s�l�!�L�pR����@��E��'
)��Kx
2���	�f!�y��Z?F��	���1�L�y��[�Q��Л<m6J�1�[S�7i:NJ%�n,���=�m�Y'5�$/�!U��.s��(̓��D�E"�H�h�@�D"����Ʊ��:��P����I:��A+�9l�e�Xf��	G�ة��)C`�O�t����e��41�b3~5�}ٰ�nݕ��Fǎ��5�vݽW�o�C�l��;w�������#���)3z���Wt�~̬z�m�+�æH��ɵ�sLP��I��k��E"ѿ�fvTQQ�l�/}��c�[�}3+���&;8�>~\�V��w�]8Z���m;~З�Z�,:n�(����������U�N�C%8#u5��Aӑ*}>)��q�`�SY&�7߃������f���ش����Ug�Fa|?�z�(�l5Ȯ�{����r��"Oo��t����-��-��7o�2|4��7��~8�(t��h�h�H$��h*Q�ϐC�-���5�m�o���������&�c�bP�%��3?�j��ÉIXB㒩��*�sk�#�:����o�k�^���6�?�g
GhX��Ca�/�g�tn��D=�nf��9��I	�����K���`�/�,vd�G�PR�ȼ߀�O�=�/���ޑ
�4��(W�1B�O���6-��r�`���7�.��e��Pc����8�u��@��5�n�}���\��E݋�Ik��!��îH.�~J4Um��1C��H=qƽ92���-�G/vO�n�0�<�{�~�=��r�����i31ˡ�"�{06ѷ���z���hA��QsN$73�"��f��B&����u��Y��4%���f6��Og��Q.����C��8D��--�D�%Z.��E"���p䒒2���h��������g�����[�չl��U32z�؉~�A�Dz�:�MІ�V��/��g�q���V�/��0��r��ʴ�a{8��蹲
=R���i	��*��6��ۇ�����������u�·��K[{�x/���NH<J8N�.����'556�$Ž����ح�>�D"�W���ܺ}�޽�0`��q1�^yڬ��y{-�20��H	�!,:%�D{
]v��	��a^����-zE�lj��V�hY��h
��
�lۻ/'�2�#����0L6H�����4Uo�Y���^t�|�����W ����w��c��
N��)�>�4|;"*�SaP�Ѽ䚑�g�j ;Uq_TT���LUL9���j�����!���R�
��?,1���D*)�~�h�&��6<�@�D"��?�B���K�H$��h��CG88�@
ު��8~
����C%7l丒�RJ�m�]�mz*����?y:��i�����H8r��Y=n��}R@�=Z���8(t�7n�1���`|0樼�����_P8r줨��OA�n�j����\_߀o����Y#+tS[M�5)N��i'l��N�C:i`J3��w��)a�ps_�m`�[�2:h�;TX�����Ys�^�
;aJyyE�[�H$��4q�D�.Z썃��})K
	��%C�+x&�K7����9�s6��;s.�7nX����t4�xգG�?N'�y���:�<��t��]�~}cIiYph8�ͺ�/�G��]��:���zc�/�WXڄ��}�L���s��̽M�>�*��a�
�hA&m)�i�4��axb� ;j��묽��!&�s�-`8���z�Z�$�k�2����ʼn���lj����0�)\�aٷ���}�����az���@�D"��?@K�\�E"��ł���D&�i��ch�	~D�{�cˆYe�l͑����(Y�_/o4��l�=~2��la&S
=#�[?*=`����-��oB��|F\�@B®-�cE��Rd�������������ܣ�4;G�F��@�Ѝ���^��S*��6F�ѱ4�:��/�eK�v%K�g�IKzN�Ȃ;+Y���g�[����4Ϳ���9��%���s�I���Џ"�H�UF@��~괝C���,j��Q��nL�G�u��d�78�—���)O?���X-���<+�Mx.)�YL�


'L���2�<�F���V!��P�n6=9̖~�!�~���I�3�a4���c�{��H���b��"�N�œ��!��;'9���?xw����6��I:����I���Z��E�����,x}��M��΄��+��I-�z�:��@j�Ȁ�E�U���7�L�9W�:a�"�"�H$���-�h�H�wА�으��BŽ=���L��9�0*6.;7�u�u���_�1��Y���&����ʸm;�m���6��w�˗�[r);���pgL?3Μ��T�0*�����C�	��d@H��k�<U�1�.�}��#�b�m�\D����P��`�9������DU�M���W�?���?x��mlo]me���;����
?�D����Vq�q~?�tӕP�_V��615Dl�(m�R���DJ	-��U�p���U6�1l0��^��`"�y��Ι3g���|s�7�Nн���>����<=���?^��s�
���%Է�o/,~;3�����V1y�+��*�u�v4;_}����>�o��
%J����J'U���
���[X~��s�v{U��
}������w��J����-���~S(��z�����W*�1T[~���?w/\��hn�v/N����s���޽׷�L:�p���Ε�K�r�N��݋���G�����x�1_���_F��93�p����As�����r�L�~si�іE���hM
�Z���/�N�4j�q+��[8\�z0���W���*=bH��Fj�vl�v��{ѧM��hK�7�z�Gֿ��׃�j	s������Wz��Ѱ���钬�O#�E��:�R�}��=}���"
Š'&��?f���*%]	�{������;���~��4��HB��&��| t�T�<���M�<���C��5�>�)�{�m�r��>#�@G
�d�&���7��@�g�V@kh@
�@����К@ ���c	�Հ�Ѐ4 �@W	��Z@hЀ@}�+�К@ ��h+�5�@���4 �~k��jh@
���bcc��޻/��e������kkkh@���Ͽ8�ɧ�	����ڱ	�@@ѵ��s�s'!��'f�x���'4 @�J�/�L�����#����|��
�����<�խ�:��IEND�B`��PNG


IHDR��QVh�3IDATx���mOSg�qg�@g�%ۃ��)X�+P
�H�Jii(-HA`�j�A`�S�hDs���s[��pY�7��1�,q?w{b���&�|���9��+׃����.��̴mOɰ��`5�ӝ�}>~���h4�LE�hBR������Z;����Š�E	��sUMN��u���H��~4���Q�tAQ��ʚ�Zv&�e�v�*C
͇;c
�m�ʠ��8ځ���h�ۑj����Ɲ=%�O�,���*�}e��
�õ��*�����e/;:}n�Խ��n��O��py�������ޞ��~�P��Q�=)�`�R��78=w_�7��*�ޒ�l1���8/R�;�E�2���)����T�O�{��ǧ-�ҀA{�z\ymПnO�S�W�|sz�w�b��,�3Ö���g�u���v��G�J_�5��$&��_kF3�no���9v��Ň�����O�n�2h��*���~�@|R��*�N6������ݵ����`S�P�񾦁��/��z;k::#��ޑ�����c���PWO(���7��׃૭�^Nx�)ߘ�>�\<՚[n�9=z������>��9�����>5���7�lZ��Z��I�Y���}�ϝ��y(qئ|���ʖ/>��`���F��g��J��p���+�ʠ�z˨�qk��hW_�}�g]�g�շ���h��Ӹ�W����ՙ�:e�](�><�/ܚY�}�x� �ݻ>'����X�ҏ�~	��+UQ���3���Y���*�;�`a��?��$�yv�r�v˴����s��gFS2r�.�ֵm���nܙU7j=o�ˉ��icTj�;�V�+�î}���z+Nڔ���5��5~��>����v{��?�p�yj��O)}�7�v�*j괜VT����2hzq�8��[J|�My՛��[��%V�Y���OU���:�/s����_�-�~st����cw`�#�n�oS^8�oЫ��V��+��uw�&Q�����h5<]�_E�I�<u69-;��Hyt4v�ȅ�(a�Et��~֫2 �+1%CU��\GFN��,�ŏ��[�/Y���G[���͟}�D�^��A�Ѵ�YXM]�;�8ڣR}M�W���S��:�ۏ��/W�2��CmG^���i{�N��\_L��Փ�GQ^ZM
�
������p$'�������scu�V�?j��5��_��;*�c���s����Kb�Qcl��{�" Rl􎈈�
�"���.�޻��^O4��>0'�aaT.��ܛa�����͞={�w6��o~#C�2d��x�����J�h������J��ן�Q��Y
�k��f�N���A�������ԥ��c;�Jo��AO׏y����W�J_�^� �Ǩ���&��}�b�A_�Fy@Y0w�Ν2�hBJf��5 fXD���ˉ�%ˋ�*�,F
���z��ͬQJ�X�q�߃>�}�.Bf��͟[��VlG �4#��-�>ZW]���$��3�s"*lݾ�;��{x=���Et�d�����$}�!:�y3j�0_��@x	6�[v�R�����Ԃ�߲mGRE�I�o:ٙ�4���3(���_��mn��K����f8���r�Z�E��������N�v��t��v�nȝ�r�l��V�.@����,l��9\ۀ�YQ���"����W�����A�2dȐ!C�2d�hL�,��W��@��l����~*�^����l��T
��H�@��:\c��eԄIô�ha�����|:4�s+���JƖ-twD{�Z�l��WG�:[��x٫��֥F�5l���4հ�dXo���V@���5*(#'M���1�.��>�s
KDŽE��A
e�7�	Kh�SHD�x��;.%+��*a�����20�"���
K��b��5*��r%k!�
�~'���-�7m޲��R}�Ϭ�W_��9-g�����	�U��y}���y$VvN�A�s��<�?�Mdji/�a��5IRĬ$M����jނE�6����sQP��K*�m�r���6�F����ن��@��-�ӑ�����"$|��IS�b&y���α���������j�f(95��jGhD$ۊ��ZP�p��}���3h1� ��֎��%�Os���c@�) ت�%g�9�à��2dȐ!C�2dȐ�>�SO�@d��]�w�[�+pˌ�i�m؈��s���<|F]�~}~�&���P++'���;��a��I[��b֜j7g�|�U�������}��d��\߮��aS���^�2B�����pU暘��#�l;X��C��#��ì�h��B�"��+pr��);v�����=arxM(�hݡs?�Iqɥ��!=F�	y�<�0��s�M,!}�>[�J�u�hf%��5��a��L�������j��S����/�!a\��2����֭�Տp^!���THj���W��P���
��V���;u�-�G�]�[�%��t>���Dg{�+N�z;�S�@q
Q����S�Y**��bO\B���W���[w�7H}��l�!r��/Z��� ,�������{�j���D���=F��,(�hp!9���#1Ac/]�L&�9����iC�4x����bX%9-##kZ��qI)�r�ƌ
��{��its�v�֬�_�x��ܺu���Zq�=w����*�;��~zJu窕��R���#g�����.�S�>�U�HH�vr���kg�8�xv�ҏKIG�O�G0h9�B�2dȐ!C�2d�h0H!��po�x�ڪ�߻o��g��kq��`Vo��a��p6�� �����_J�=,T`�:l�>�W��u� (3��K~����Ј�ʟ+h�����Prr\��_���$�H%���o�a�����d����G�Ԧ�����S�<�l<�u,��s��[�-�Q������Ӂ
2i>̪�~c=�i.��Y3f�W�ߡID
]��$�����Ӟ���/�k��6Nn�j
L,);u܄�\�{�}��iK�MNL-�X���(���	�%�4�������Ç<�-[�u�ї��x�)i�ϟ?��ܼYT�w�ڀ�Cj?6�
��u$�|���Zw����5��ܥ��V
����}ͱ�:k'���˜�|�cȣ�p�jE��r��#t@��Z�P�<��z��WPX��π�4����0m�.=�0<·�=-=c�ű���U�4�>	d��\i򇖐�D�s��-��6#3�K�/<tX[ߘKWJ"�M3�h�t�Q]�5�½a��p�FxF�5)�]N|��7��EXB����@A����;w�>}��ӧc���p���6w��72&6=k���+�'��c'eM��ol�;�O�y�/�\���n�u�t��Wd;�����ҥA�����Rnhu��v��Gȥ1���EVL�#��&��򹑾���"�7j|�Ӧ��M-���=S@���y�Ѽ�I鈣���*(��Z�2dȐ!C�2d�h0�Ο=������U�;v�z���!0����@�S���P�b2[A	j�E/0�G+Āoaw�T����P2������
S	����f��{��r-�V7��B��R��<��{�~õ�1fh��Y<@D�!(,Ak<@4u
��z@��]�C�0���S�����^.��sAS�%�4$�
:�VY����퍃ۛ�R2�m�c�tp��ˁ�!G�#֏w?[�y89�NQ��I�.m�L�6�`�Y3M�z�T@�@�����U�k��3rf�U@��9�����_]�0P��!�ha�d�����d��Vv.�>C���1�w�>��A?�)�<r�⬹ť���N�\}��}~[�:����O�8	�f�c��n=��+�ڹ���J.���[�m�����NNM_�n�ɓ���?0������o��PRV��'�dW�^�v�7$'
�=��� ��4%~��'N�ڽg߬9s�j�!:ռ��<q�$�G�Nas�|˲{s��ٻ��n߾#-#�B�]kZ�a�椔�]{�9z�da9�n���v��[�l��R_Қq��k�=v���K�1�����{N�|����L��2���u{��������={��_�v���C��`@j��\)���:O#4-�·�|`0=���J�7�]�Qx�
/�م���P���%�.~�������3^�x�'��
]#3���&����&Ӧ��f��x������Ɩ]䤢yXO���^�O~�)����&Ǽ}�W�Z}�ر#G�V.[ae��;��}�S�x{R���Ì!�s�K���CZ2�@K�}�϶Nn*�ə���>&5�Wv�h�r�^J6��06��5��':[蠥�2dȐ!C�2dȐ�4��v�&͚X.�>�W�:|lpl�onjT©�lݞ���������2��w��{�L-�WQ&v��]m������⒅��޼y��/,]�r��MrBW�^�jm��e#t~��ź�0fa����;v|�oh?�?�֣�_�9��8h'�mz^��U��޽�F虜�Ia��w@��4;'7_����~w���]��LMH�إ+��GFo��ak�Ԟ��l�q�z�c�O�۷��Y�ԆXި�n�m�߶!�f#[X~�e�dD����[�;C�o-���r� f|�KKM�fzF���5Ѷ�lT_4o�Q���5j�j\�����na�b�w��1��%�p��D���❫
�����mh�>-rݘ����Z�r��Bv��
BWR�4!-��@5�8�ASR��c�	���W._�{�n��
�.�tp(�۷o�ΜŃ_P��[6#����&��ᚡ�y���_d���s���޻����`��3�>�14�g3%��!���Nn-�v���6o݆Af���Ϟ��v��(�z�:3h[���^��x��t���*5=��ۺ���7�_�,����Wd�$�9{���+�ٳ� �(Lq9x���v���W/_^�r�3�v�y��}��w�S�8
�]CS�d��VV^AK.]���j���πo��B�l]���ׯÚ�|�Y렱�t$ #��>s���W���(����~�c��U�3%�{���](]3�5�jQYż�2<:�4
DU���
H�E�ϧ͘ɽ��h����Szf����Hf!"�OJ��0�G����sH~;gl(D�7������&�%�SXR��N�
��\��޽{�e�n޼E�up�	������yx���̬9t���'I��.�x��͟�"�4��
>�;�Ӗm��ww���_���J�qv�Sk;K['�x�e���'j��AAQ)w�=0h���V����_t�����2dȐ!C�2dȐ�p��+�g	0@�����E�HЀu&�C��={
�
	G

�;u��1�n�N�F�ܪ�ł�q����6�
4��5�U��f��_��I���|����&��5�ѣGp(�)��
͐F�Xg���� ��?�w��@7iٶ��/���,���+/_���ݼu����Jf�S����O���ɝI%Q���ٴ��!�=��S�O?yR��"B��
h;e]��T���Ȼ��է#��K}��ٕ�_�OE��m�c��WS��{:}����Ĩ��iM����A��Z@�YSXS�c��Y��
��f�`���
F��p�����/(Tu��h枓�I2漣�D��m`ZM����smx'�#��>�2h��8�q�;4�X�dٞ���]�6d�.;�6��BN�.[q����M[)�����߻w������d3ˣ���1�݆Mk֭�FA�L-dw����w`Jz&7�?0����?�m���?�z��O?�L��'���6�N����6�GH7����_~
>�=vN��[���q8t�c�}|t,��ܵ�!ڀ&������
B�Z`�ȫ�4=#3X�Q����
&棕�#O��H�؉S }4�W�2��}��.rc:3?�=�������3�r8Wbr���1MC��Pm�&�;w=}���
��\�r5��2��҆)s9�;n�gr���=~�1���4�<$CPǣE��n-�W��MI"��sg�4�Nn��9Vv��0��2ѱ������	�ಠ���];�- j�'NILcb�@��x��Ѳ�sHN��ٗ6����s��t����hA)%��gSr�޽ת�,��ȑ#�j~�̬��`����O�\Ҁ���~Z�\�Ŕ��{2���	��W�!\/{��*���
ӡ�1
Ԯ�ןU
JK�2dȐ!C�2dȐ�0����'N@��l<x����N�(ȟS/��)	�A�3
m\Z��w�~���Ǐ�(�w~��0Xr���8}V�2��?s�,%�j�މ��~���+W!NE3Ǻf�5L�M�I�46xlE 4%��4/8l��s�
�m���ݴ�2L�G�����m�w WEF���|����93>n��C�>~�0L�Dɧ6T��W}��n޲m"M�M������x)�)�(�:��1��jhw��|N���=�x-'��ꈅv�>M�y+k~<ȸ��� ���
A�� 7!A���N�e��H�A��m"��);��/�
�)Y��' ^��_��sT�
�[V���V�kdN�h��y=�/4^��
�>���pޤ�t�1l��[�v=+�ݺuk��lV:�����Y�C��h��� '�/׹u�#˷�w�wq���2�%4�_1��Qՙ�g�޻�q���X�z
e��	
!�O�:��������;�~Z��g�ChJmt��zFXy@ry(���@j�i�R�>�#5=�����c"IN`�� ȫ}F��*(��7���ݼ��z�*�:������ґi���(�I�#��C�+*�z��C�L/�2��_	M�D_���8�����ֹF����G��B�ؑ��0o�odn��.�(�F�U�����c�ʋ9ja�"1XB�,�̚1�a�w���F��$*7s�t�@�=#�c�R��@�k�Uu.��~F��Ф7��
��;s6#7(���k�+5�%c'��9��;����v�&�������0~���H�S8��s��1a�԰K�c
�4�����6&,
�,ް§;1�&���j^�>�c���n�~����v���A�2dȐ!C�2d�h�>w���c ����ެ� 0`u��M�-�W�e.���
�an�>�3�]�I��?Bىo��~�ec�	�y���154y����|
�����/����#G�A��›�7�U�!������'��q� \�����㟌̭9���PEB�2O��!{�c��h;F�W
0������p9t�l֪���`&���E;�I�L�Y�7�u{]��~6<��5ڹ��U3�Y;���<�gs)�ey��Ș�:�:�{���[?�&*����*��'ŏ	��tz�\x
$U,{�`ֹpz@#z����.Y�ljR��sT�k #X\sc����A�}h� \��v�8TEa����S�20���ܵ��yE��qQ1 `,)�<$.?5#�eJ:~ӪW�^E�O�P��i&,t2���r�JIN�K�ÇM,l_�|�����o`댟K�V�&L�B_B́�I��!�D}�F���#��[���3Y#���f�Z��G�L��1>C×��T5���`�L����\��Ĕt*tt���q^�, �~U�ݫ��Ƈ�k-A�L���r^:�П~ֆ�@����S$x`��N�K۹s7������K¯�N�1����3kƸ��O�}d�0I ���,'��?4f&�(8����W�8% ���@����e�鉊�=&��բ���7���gT�P��p�;�o����W2t�`��-�h��)�2�d��om�żFk��Ez��ݛ6oe?e�f�i�%IUb>GZV�ա�.^�u
���Fq��3�+\���W�gO߀Ș�X��x���W(7_�g2dȐ!C�2dȐ!�1x���kH��,m��Y�άh�l<�U����W����y��-V93fbR
7HHNۻ��*���s�(]�b%�60C%ͱ=DŽF�����\7����~�q�P>�x	@���
�T<=�h33��C���1��o;u�86+��_���h���,���9�t0"Q�(�%_г���E�	��iAsX�@�۴�3���S󡓾��m�磤m�4���-{�p�<�x/5�b�όaF�J:��&jz
�7���8c/tcЬ����f�(�\����\��M�y��ML��5�s����� ��ֳ_V�l�,hi�#@p#W���e���>�͚W��7�����3sN��y����
��z*�3�s��R&ip(�OL�\�|����e�Lh�&��a��5���1éI�:�M&aڲ�b	�dW��,]��y��P���JFWA�؇�������5�ٸ��^�����*j��#]<|Ćp���Y����Ch���"�j���0>C30G�
��͛��M��@�Qv���.d0
f��z�b'qá�����������ڡK�2��9;-�#�W�Wj`j��[@�g�ۣ�Ʒ�S{��S���44��7̉�<�n����ؖ)�{=�)L�	C�?{^����(��hh2�����h�f�v8q��04�=9=sZhD$��x@�KV���2*����7@�3%�����C��B<�h�6�
�	Ii�s�/�3H���O��dQ�(�<t"'7/�ޢ{2z�!��8+�WU��1�)|�ݓ��|��f�"%s:�j����蠽F��cc5�y.��Lڈ����w�Y����G�2dȐ!C�2dȐ�
@R	�#���;P���`:`���	zM�<S��QP�_ �+W�l�Ďm�*�L�⡪1�M`Y��;����p~G�L�����4TGP2��A��l&���/~�Y�ڵ�6#�c27fH>�L��_E�bFUݶ�����Z�P@�/Z���^���8&T\uph�[���5����
B��6=&�^Y���vM5�w4�l��ر�PǏ5�?��a����[�ԁ��m��v1��fx|a�
ߍh>�=x@[ٻd����F��ee����71>���6ML��h�������10E
����u?�q&GM��z����7���Y�!�1��g_�+�1]LZ�����ك�i��4~ͬJIڑ�P���O[�	
Shq�p޸r�*$���5ԩ���o7lD�e8���3x��1��A���8��}�M=4�xz��f5B���2�w���b��Is%����&�zz��~Br*Ct3Zknm��jC�Rҳ8���_����U�lن��V�@C��ć�����|�K����6�E�c`�|�6}����̀��3���ܹ�n?x�*��ĉ(�Y�.��P���Cc!TTY�I�,v�)����x�]pA	��64���eOɤ�ȟ?@sR�����h�K:#��3a$.!ijB����!��{X�k���uA���s9B�;*p,;I-E��'��f��X�ͷN2P�q>:z�sl�M�%}Ԥ��UR�2��8�7�]V��56yղ��GMZN��������z�_Dˀ�kt�C�\<�Ak���(]�G�j�3��/h|�T��)�3w@��f�̃�:�0���d�v2�M�DIc�Q�M��U�
Ȫ n����b
↬�(�+.�6���111���ESM;M:���Q�$�m�N�����ҋ�Dnf@��3����|�;��%��s�W�R�T*�J�R�T��h���A�L���?���~��9
ڢN H����Y`7R:aY�'l�����ă�
𽑒([We�ZG���x�6�H�3���~��?�:*�
ev��o>��!P���#0��v�"8ֳ�נB�7��T��od�G�tQ
�ީ3��w�)��Ѱ��}8,����ċk�/<�������-O�mv��O��{��<�88)+'oP�F��%9}���ygg��CG��剱�����/0�W�q�����5#����|����%�S�����A^�I��z��i�Y���,�k��D)��sOn{���g�3.��E��ع[f�1�s"i���O��!8�[%�/_�� �� _�ʊ�b�'�o5�x��'���9�Ѝ�j�0�d4�୷�..)e`\\*8����߿������R���ƹL��\��J[�|�~�ؼz�ub.���ڣ���W� @�r��|.KIp��@��}@����9.��$F�$�x����Gh���8
4
��(Ǩ���ہ�Zm�/^�DM<>�:������N:H$
�-	-��_^��x
r|�ډ� @\�\s�e��ݶ]X����t8g~�a����(�x�g����sѠ�cO��,�Y<Q-�ͭ%���-�p�u
�� �".��@��ua\n���Y�����X�1q|�sk����\��,!�rT�߰�����]�%�oe�YK�U�+����'�\f�"g|����3h��o�aЩs0]P�Zr��>S��u��g`��qu��wA�R�T*�J�R�T�ۓdZ���m+���@_��)�5P���7ׂ�(!�.�;i�r�a�d�'��h�o�9v�D��)$���
���t5�Y�q<]
����76���v�?������$���H�qv���|�/^z�
ʼ�#�^�~PnYno]��鶖��eI d3���|��*���
��v+]װ�_�л��@��կ)�Ŏ7У#����#sdX���W8E.5=gLL∀Ι���xsf�Ԉfר���
��-]�����]�[-�b�qoK}3
`y�R���ˏi��R��[�^H�h6�*����
�mj���IH4��X�p����s�
��=�^~ŋ���ӹ�VS=�XN�%^���������?��\&��h��IF-�ο=��?npKD.�,��VUs#�ynhl�Wr�����g&C"c��~�&=8@�
	/�/�7��_�>}�r����?2�N���_�~�!8������1���1�1�oV04J�.<A��'#����H��#0�O3r�Ϟ}?2&�KW��؄9:FU�f-)<l���g�W,�]�����F���!�7 ��'�� ]X�
5�k�Y�l����#E���x�wa��z�_T�͹`f.���ؤ��ٻm�W�$�!aVF)�i�a������꛶5�mǸ]�q3.u��!��͕E���ڦ,A�,6���\�1ֲ���)K�������?~J�\��?��s�5���|4�ڰi�-���<�򠷐��폕��ys��I7�������*�J�R�T*�J�R9@�o��V27��/t�@^�.�	
r�kl"cV��g�r����مwq��`�Q+̤�'ߤYk[;PR�����N1�_�8I,�8��
F�&`�S�2��q�V*���>@��0���Ǐ>��._�L��Dp`��]S[OW���K��=�P.gE�C�y=Q6�,��6y�%B8;����K����b--]�ݱ��׹�̌
@{S��X0[n
��G�E����O�#Ak�,�Na+G��MMI��G\�ק��-��:9t���ώ�Z=*�E'�{ה\9w"+'PZଇ�����L-@IБ�N]<�2��
8�l�\`�PA�!$D���&����1�gL\Y:A�-B��Z�Lቆ�vLK�G88,�Z��db��n:��GuK��,q�ٟ>c�`\�ɻ�re҈���ڲ;͘F�n-�ڦϛ��F{� ?)�	e�IM'S��j���kbJ:(���gW���k�!��%�%(}z��&$�˂&�"<j�h���=5ѽ�����)�3���H���H�����I�[8�����4d�qdt\BJG��X~�́dt�@`\��H�y���}M��we��gU�����(7+}2`N7������׳�F�A��6z�q��w;SϤ1��a1�	��3�x��1��P�x�RX�
`_�g����-�ZB#cbSy|���e~��S�<x��uk�0�0<DÂ쿌�ͽ
�Srڼ�s3��"�8 �}V�T*�J�R�T*����e�O�ip��0�G��۸��@��J&�J!��
l���|��	n&Sn`KҠO!�.
2�a�P8�
��M{��<;�ton^���~�Ե�k�vg��cP�
�F��Pko6n�'Cı`Qvj�\>�ʄ`���5<�!񹐍ؙ���0p|�8�T^��h�Nl�j�L�	QfJi��!,J2㇞\����x4�����Ѿ�fVX�b�xwVvS��jbD������B�c�/���dSՑ��h&�V�EL|@9:�z���*)�`ĐM�4��LP.�e�q=��UXf��_�=0���m�Н�0���&�Q4��;h�)$�`�)��JbG�q�6��9s���SL6^g�T�j��O	-�>+�XJJ�̎�=��^W0b6J'����0-�r{��d�M���
^z��~�����8:�|�рf�[�⸤G�9@��܅KX��;�X��
~򺺦!9m�m���z�0���̣\MV�|��T��%�K��>L�#e��GE%R �mh΋�Lv�;6ڂ��-�%�򳮽�]B�-��]n��͠my�
-�/">��ʢj�J�R�T*�J�R�T�@'AXv@�@�h�[�����g�m�2='g�|�f�)����/\�
Rw��odk\��5<�7�!���S�
U*�)��A�>�Pvd��_i)[^�;�k���X�f�8�)<���IDŽ�{"��-q���7J6o�����ߪq�+�G���I�8U�T�p�����|p�{Ѳo��m��Zf�#��hiG׾��s���@�='�^����{���`�]�������b�f��S�48
@��!;p.>���	���d�36q�Qj��-ځ�	�/��$rP.�)@[����u�͡0R�S3��e&Κ�[���C��<KW�3[��MH��-\U�j5��f�%+M��v�6�ʓ>|[
}��g�J�R�T*�J�R��$���xY�7n�I�3�i&X(d��֩wH�v�,�8qT���)+|�X��؊ޯ�>������qB�v��q�-^x��6��vݦO�~��K�̀6$o����X^Pb
2�e��M�5���6����N�!4�8T��@(h5���sZA����V�wmk��Wl��hC\5Dρ�Ʀ�{g.ɡ��֞�o�˸&�Y;�<4i6�p�7�0�������1�M�۸-�=0b���}V�T*�J�R�T*�ꎑx�Ig��Y������0�0ك�5�
���*˩(�_\YX�ni�ʌš�e�5����=T�S�jAaM^YC^iUVA{e��͵UEeu�{;�����-�9@�@̤5
�<o^����i�eb7�Ѥ�Pq���D��֎���g�囟�[���ђ�U���2�ӆ�n�X��ãƐ&�;����T����뛡�\k×���-w��z�ơ�|Q��Y�R�T*�J�R�T�;LB;)9H�8I�0x�DG�C޴w��;����a2{�����ݦ��v��2{�%y�'��\��=���|M�<�\=�ٝN�
FF����9몷��y�|��&r6(�V߼��V���AҒ<�}L
=P�@T
��d_S�:�-��Zs�U*�J�R�T*�J�R
I��ۖ�oπ�/B8a�eSH$ٺ8�// �4>9��	��7��R݆42���~L��P�T*�J�R�T*�J��]��#�˱��tr���g�J�R�T*�J�R�T*�J���8�x� �l暕�/��^S�=P$J��C�[D
��d�>�9����\'�Ң�P���lc���o�A�Km@;��D~��50Wiw����a�Eq��$��-��:��(r46��\nn9�p��l�T�<$�����.��9]�I�V�NeN�M�P���W��O�5�2M˕	��l@��Lӕ[w�u��?���D�wv=x�60��o`���=y�����Y"������=<���W<�o�ޮ�f�=�o���8LË�|E6�9����X�$I�$I���X*�}�/�Z�~66�	��]��(���+�J��lUo''�l������t�������3�9�����[[[+�$I�$Iґ��8\�8�ef�����p�	������Օ�����5�����B�P,�5�3�q����4666:::55���k��3�1��$I�$Iҿ��Z��י�QYUV����)���ʑo��KKK��G���

���T�;�7<<EQ�l������۞���$I�~�s�*mFq��.��C'Ă *�,ހCo��(�Z�B����	o�F��!I��"H�H�`���;������]�(�	�/i��Y.�w��臎���d~��
��7�8n6�O:�pm4�-@�
�Ϳ�C�	���h����h�
�z=�� @�
�-@�U�n���h聴Zq�Rm4�_p��6�a	Еju�ۏ�r�-���;������x��eywo_�0@�\@�
�P�p�q|���l������|TH���/����	��	��]
ŋ�O3٣���Vzz�so�~�ώNNR����k�j����M��w���v���?�M�摽{�I�8��fK��nɲt�	"gQ��t���V[g���[�nCA���X-��GD,�7H/'Ƕ.�}C�`��%��s�
��_����]�
��^1���v{�c����L6{>@���糉×[�1_ ��ë�LV���f�dk�[M
M��`��헏s	!��P�ze�4@�x|j�V�s��pu��P�Zc��oONJ�өi���.S�Co���:�o�]�^Q8����6���bw�#r������a�(�]Sg��.�Wٿ��Ý:�MM��S3Wj��%%K|�K����ɒ=�?=�lk���s�T�UWO�4��r!�_nv�����	�ү��<�ɧ��4*>@�L���V[sۻ#!X�������nˑ�ͭ�t:��L���r睻����J���u�_��D�K_h3���>���@�PPΰ�a�(�]�5x���V4&�މlm�i��԰w������.]�4L7�N��UM�}�|�����Rt�z���\.�\fd�Wg�˃d�F"q���a�����1�,qV��y�y��ē���fB�C�+k�
�n�_)J��ζ������qZR�Fo}��R�h�!@��tx�4@�F�N��쾫7��/�3�S%˼wGO߀R�����?G<�Ju��k�f�Y�GVp0��g���/~�1�r�8�C�.�WVp�x��/!���ҠG<�d�(�i�ޡ5��^ĕ#ݬ�"*7@s	!C����%1��׋�����*�ڎs��.�Fo��3ɥ�U�l�V�\YߐU�C�'�%F���5ۜյ�+5z����T���a�(����"[Q)�%�?J��۱lqF>_�}�Kˡ���؎$i��q:�"��L��m�;��	�{p9�*o��o޼�?�ϭ�����{X�w��|�x�k��L%�U�	Q�hr��r���)�H:(&I���P9��95�<s��9,I�R-5���Խu�ui�`��纯���������������*�_?'O�u�3���.�>SppJ��-�ۨi�k��K��^��"ZAAAA�whRE�tr=r4Nt5��&���fN��˪���a�ㆌm�`Ǯ�:m5u
t�z�*�hAAAA��*�s�]�����jt-s@�M��g���u"��o	۴.<b媵���ֶZz�,�����R�>�wS����Z�ţ"�AAAA�Z�G@k�m���l���k�ƭ;#v�ٶk��_���Io�k�6�rK���M�&;8�u|�PhԶ!�b!����f
ާ��6�l�zսmڵg�iw��F���R���z��l�S� � � � � ��~#�I����v՚��1��G�l�رy{2ZSW�Kw��5a�ܴm׎=�w�=���F��k�+	@����s����r/�eK��y,�4y��O� �[h���%K���ϒ���vGc��x��틗.Qf<�kw�:�c'$'?���(
!ZAAAAD@�]��L{�d���H�A4������<����M��Μ�䊡���k`\�\�[jOu�UXPP���������T����t�N����㋗.��kU�NMM���-�Nf�?�usum�G�9{Nt
�����w�#


�����5���+�—AQQ��'O������>�*���/Z��5Wl��!�_� � � � Z�������nvr��-v0��z=	7��d� +a�#]<�1���[��9f>��kL�3v�����f8̚�p����999������f於UE�4��i�/��[��,��.�+�T5u�{���7W�\e/+�
m���Rn�t⥲W���ʕ��W���5�\m>��H��Rq|�Y�{�g{���m���DE��윜S�ψ��[hGzk�Ϙx���e���b�������/F��́7��s���F����z��jr��(������ۣ�v���`�͛�jj���J�:XN�P�\85��ؠ�J�����9s.:f?w��Gb��Hດ�n�Mϡ)��{ieݛ{�?�\��DC� � � ���N��M�BIII­F.���=��#ޙ� h�~GO��e;ҙ�h4�θiq��
>j|��H6.Xݮ}�k��騍.6m���` ޖ����p�7G�k�Q,p��S��Z����?�iu�‘��60�4a�d��+W����V+�9���9�^<w�[˾|�j�֊���v�������V�ts_hc;H�$�f�"Y���������i;�v�����?�8p������mA_ہ�z������`|���-Y�~Ը�)������J��>6��j*�*�o-':l�/t����LIM�~\1�*�na�r,.��+FQQ9u��8,=����Ƒd���=Cc��Iϯ�`c����K�}�>�|�T^���zƷn�9`�0*����`�:�0}���W
𰅅TZ~CBm'%�2ܞ{����i��T#ҩ���u0���t���|���e+��Md (��͇6*))���;w��&-�ְ=�I��14�˂���`��tj��:��`d\ӣ�:�2��]0�T_�Ǵ�O��X���7n��hxVs��YY�.�m۵wtr)� � � B�tRrJƣ�߄*<}Zz�vb�г繑a׬�� �Ϭ+�ξ�����m�,�U����9��k�d|�H,,�y,�۷���mC,�U���ה�P�__���v�ٛw@��޳�-ʮ/��p��u;d(&%##9���xv)g޹{w��aM[���x)���K"G{�s����(��`Cx����D`p���1��50Z��BV�}�(�a�RP�c�O`��/�?g��P+�
�"���


�;�}zz����D@W�SRR?9�����$�N�q��\ݙ�P��7a�R��U�'%5
ɕ_[�Ϝ�4ߍ7'�I�j����5SmŌ�t;z<�!�ߨ(}��١Kw.�i���_\R�x�E[���V5�&��Y8]����v�sE�?�\���4
�a8��L���,7�
�ˏ9$�!LG��+��LM���Z�
��[<t��u��0�@�9�y�p4�@~��?l�D��,@Ā�AV�c�S&'����G�GFSE���)��5*��!I��.��v�3�^CG�b;p(��>�`��[M�������Sy����	����˗���RAAA��g�s�AZ)�M�3��)iy�4���֫OMr@���Y���+�.<��h������ˊ튧vpt��k!�+�7��������&�B���3����s3��C��ぼ$�7��y�3�8��wy��v�u��NKK{��)ip+K}���Ŏ��a��?A�����:�7f?�K]M���HOl&�m������z����c!�7��f�,��T$�����dfN�![�~ޡ#��1�ٛ�h�����k�O�1[�,d��"��V@�tf����j���!8d
����b%/�0j�0vCG��?��@��#/�͑q�j7d8b+b[$����Ɉ�:�����kt�q��<l$}��zHK{���5�u�Bc޻�����kօΛ�f����*�}VPۜҐ�(�^R?�!��}���YXX��`��/Ν>��
�{,r�\4k�<���	���çϜUt����ش���:��y�/�L��X�}�		�))�\�gܩ���oVu��sw�n��C�2Yȓ.�o����'����(bc�i���MTH�ė"��p�y��I�,�0�*��'#�ݦ���-��,� � � B��(Y82�%�O�IL��}�o���ޚF@�!�w�&l��b�џM"�3�8�\�Ã��O��(�
�vO�e����E@� �[��g�v"�Ë��j�����aw�����{cp=�X���{�=,��.�I|<:��#d٨�0��'::ͧ:�^�'QQ��3�.[��@���S�y��A��[���c��D�Z�Φ���
����e�u�A�4mѭ���D��x:z,�Xl��UDC��+�4�/hu��w3�dz��祥"��Q@+��x�ñG�t!%KÖ���k���\�>��P�_/D!�H�Ig D�&�Z��azi)��Ju��^V6����0?����o�5���*��>-Y��M<,��\�<wBJ�/��		S��&71����_��OjQښ
��[�Z�>�cg��t�������w
��2229����٠?��7J�(ڝ��>���	�ih����4޺�p��p7m*���\T��PR\�6�{���~h�FR-U��k�oD��U���˻��~-��g�}�w_�u=�&�4]}[��T�x0�)>���%���*�>���[2J�g�>��,򼏟�����8��H%((�8 *Ir� ��ɒs��s�$rFE�	
Hn0�:�g�t��̝n�w<�;�<�Ͻϭ�r���*Z�hѢE�-Z�l��f��?t���_��$
lT��������{�H?�l,��)���x�|����f�ڢ̉�F�_@`!��<�pj��U~~��Mn�o��w4���[o�q�6��<����q��{��?hg�x��1D�[Z��w�yO�DK9'
h[�)lp҄�Am�'�OR�ŅA���JO�ڕ���*�n��
�1s6�h��jش.K��<����n���+�2�_�l����C�O"�8[D�˭���*�t����^��y^���v_�u���h�
]N�P8���ռF�<mF�Ԑ8U�n3Z‹���?e���N�)zc��k=�T�d����
4�oP��!9�>EƝ$�\@^FA�`��K�8B�R�si�( SO1�|-����7��-��0H����0U�����5�K2Z�G�urh.�I/�2�z�`�Q_}%(S؜�E�0Eڬ�T`N}�$px!cn���9[*n��*V��n�Fnظ6�mݺ=�H�ّ�>i�
���U��	,����
�8g|P����B��;���K�+V�R�K�_�b"N&����+IbHHY~B�Kd�D呐��R�VIS{��}:y�t��Ҫ��l���&&����)�j�u�zZ�I,�Qh
u"���[�6��ŲwT�0�t��
Iq��f��KՒʜ0yj��$��B��\�L$���%�XHƸ���"��$:Z�hѢE�-Z�h��N�~X?���wgھ]{��d�P��G�����g�@��������4lԸ֏u�p���{���ف���+YƧ��%�ǣ�qw�����y@μ:x� ��5�R<�է/�����N)����^��x���;,^�Ԟq*����ja�<^V�b�w�}��pм��߇�A�!�Z5PG�gD��Y���|��={��aV��:�i� ��S�3���1蕯��-�@IGy�ˆ�a>�R��s��@��ݻ�&L��|��;wa�i�۴�}9/?ڶ��3�fXHHDf��={��Q#F��4ˑ���H�ЩV+siԚVh�ӕȎ&�@X���\_�?|8�:������G��9{��z��7f�e+^	;;V��7�adc��1�҂��-�P�^j4���ƍ�D9�0ȌYsȦAf�'v�J�-X8|�K^^���TS,WX��p�~��ꦟJG'�H��ۘ%���r���_ҨQ'r���_o1ɸ�h�zP�R4А�C��V'&D��h� bP�S��0xh��}�-f�q��Y���bӦ-S�Ϥ�ާon�Fn�M�G�����~B(\��ԡ�Lb�}�K�4�S��o�V�����c�^^2j�X[44�LG�ϙ�p܄�+V���ZfZ�2�L�:��O�:���v?��B�(lg)Z��M!gt�
h�绦7��הrn�8���L�I֡׬[�]�0Ѡ!�g͞ˣ��JQy�1i�V��I��汎��̝>s֞��D�,Z�Dl����{�y�O�d���O>5"�����o����=%���4��У���R��o�)$MƝz[�~�g�}*�AUd�09d�&M�:�B�԰���_�H�շh��^C��mӳ�٘j\�Z?��J��|��+d�����T�'��7��`���b?R6���K۳GՅ������6��Z�|��bs0�Ad2yc�})JKG�-Z�hѢE����o�x�X����:w�A�8��3�1O�1�f݆7�\������>�:�0���/�-�x��������^���ڵk&�m9==����v⤩�m������P���>�W��)w{�&-�����s�N�F@cj@����c����(�Q;�m��*�j5|�E�&�/ǝ1qI�*S�Nj!1;�(y�z
��}M�B�5p����@#�T����h��	�?�V[�=����?q����఑�����{ι�ZpqN����
2�..�3gͩp�]�H���x�#�S���a���מ>��;�<\'[�s��|���/�ԩ�hwZ�~��ď���Z�[,(O𨖴tW[
8�
�t�=ՐG5�����+��:��-p�~%��F����/��,	,!���{�#c-fy��y��t}}�jC;
�)��(���ys梭1v܄�ֶ��:U��𡨞��
R�UEsx���ҳz�:#"�>c�},Q��/�:���*B��uĉ�I(@��v���:���Ԙ�y�<���۷OC��W3O���*Y��u�E��-T7TL�0�����A�T����mt�5�B��~=ڮ�C�e�X�a�&e����PEfkǎ3���9�U�Q�nI������N�-��V-٢a�S�����e/�2L�����4q�����m*�
_'��� �a�^�|�l��ʳ<�p@	��<��66�U�.�PB�������&^Q�\E�z�M�����0�hT�v��	��j�,rq�	(���_�/]v�{�3��!!������������E/˧�@;�^���I��M��3���8�����Я�������yL�S4q�b:�T�_�>��S�R3O�b%�$�8���*};��{�%��zA0z��)A<+��@�����c�H��5�SV�b%�y�����.-Z�hѢE�-Z�h�wHp�x�g1���o�[���e+N���π���|��3	�F�Ƭッ�|��@���M��a;Λ N���w�>*�"e���� �7Oty�~�[�W:�~��]�~��%?e��r�����`H�*"�*�C ;�\`4�h$E$����y�ڵH��u@%�s/��r�j�3P����A*w���|W�|"D"��E
�@�R��R�<"� oeM�C&u��k���i桅#.�:�vL��4�b�,R^�������aӇ��
��$ԅ���NBe�b�x(�M��\�����X������æ=F�"C粊d�}rK��4=}�u�yJJ.���i��xQf��t[ҟ�_�}�G/q���:y��%"���|��t)�l��PJ*9h�\�a��8���Y�Y���0�1��^�c�RQ������j�H�l��o�=����]vM>�R��Pђ
DN�7jYR����H����~�P��xP��W����sr��v,[TB��7#W$�r��O1�
�?s�hP :|�}��M�<U8\*�ڥ�,*�n�&A���f~�E��$'a�J�V���i�V�4�{^��_�47����="��{D�Z��K�|�N};3rr��h�2��|l��ܴs\�-~��B�9���N�
�6|�tܥ�4xXp���{�U��,*�r�5-��3f���b%K��r��\4j���ʢ%K��=����p�?>W�K�̣&
+W�ˢ�*�Q��#��k��@��(�j9�����\a�����y�<�CnܸY������3�擐^6�<��g�j��}�����[C[o�)��=���ʐ���s�dXh�P
G\�z���˳��To_v����ѢE�-Z�hѢE�-��	@���t�M����š�4�o�R�bU��U>z<�`��1T�/�~�i�G�u��~�M��a�&����{��=Հ]����wҦi|�͙7_������;:t��S"��.]�<BxF�Jt�����^�b%�Y�����K8���s�n�� (ܡS>�� ����wƇ�#*@�x@�!
hZ�T�~��Z�c�N�4�<iI:�9��4y�@�?���(�4��;X���x���%�C:pS	���O�����q�&���r%Z��;O�L�(�	�t}��2�6B��H���[�ȯ��Nۣq�(�uA�;�D@�A��[���J�A�`,n��Gv�x������s�ߵ;�_{r�+�����H��j�˿��~�A����gb�|.��M�A�*"�7�pI&�`-G$a��������.��T��;咙`�7��$A냈AuK�����f[B����@3P�g_�!�y`՚5���+V��OVV�R$�3��S��]��wꬱ\�bZǠ�
T��E<�M��T�0!�N�G��z|�����l�b�:uZ�KԈ0'+N���"�b���=�}e����[H���
n^�������͇u�7���Wh;ZIc�M8x�R�~J,�d�*�m�@K˴��gaŹ�|%EHO?ŕx����S�|+vg�޻op=�B��dP�YZ%s�v����ÓFv�J2Qg�qBɖ�cHT��)�}����}�=rd��!&=�t�����+��{�߱x����:�o
1��M��r@�>ç�P���[>thn��9h^�("�_��VV�Y�M#�@3RY���l��v�[��������Խ}�XmR�Z�;�0qʾ��>r8�@�Ym��B��o2ՈJ#�C�}��7mQ=��u淿�Lr��Q�R��-PDU��H���a��%~��۶o���_ނ��qY�Q�
xVӬ%kh���+і[�������a���Aȯ��!Z�hѢE�-Z�hѢE�.�r�����f/�����3�{?P�A��-��9�����Y�k�k}O
h@�s�!�@޴�=�F����|��I�
�k�	��(��͛�fp���6mS���M�x&B�a1�`�:B�#����ͯZ���c�8�<:t�,'y��@XVT�Fͺ�i
'I��+�Yq�y׽5��P� ����h�Kp��
6F���^���Dm=�H$���-�����?�a	JǼw�(=��l��քx��Z_��WR�P,�c���I7P�����!pm���H�42-c J����~��˚�l-��bjPiX;���ܨ1
Y:bT��$��-�w��i>H@p�0h����;&���&�ދlZ;	9a���y�CG�@�8���I�ޞUS�Ux�g��HCXLR��h�jƠS�j?���g��T%����TK`mg�{߃�R�{�Z#Zj�S��[a���b��֏�\U��u��i�R�V0��Q6+(H��JM̄���o���+����s慃+Y�F̹O=����K��SӢ��/�IP�Xpț��Q�z����t	Y%§�4����KQu-]�"��ms��0��3v��!3A�Dl���,ơ�>#\֩(�X�S�:�;~<w�h]Nyw<�I,С�<�ԳP)=\6O�|-�x�'C�%�y�ۦ`�IR�����4�7k��0D���_^�:����7�	�jqkr(]��"��Q�Tӑ<ht���~�.��Z#����|}@�b
g�v��������ͨ1�$-��o���~�Y�z��ӷ��Ot!�M�[h]T~�{/W����>��+w�Wf�~*�:� e?���K�j[��������a�x��5[�~u���6n۹�/(�g3=�ȱ�����m뷿s��-�?+�Pڻ_ݸm冭���u�d�Q�:Z�hѢE�-Z�h�~�:�C�+s����H�~���47g׋����;h8ah�AR�;/�۹k5hҼ�Ï4m��ո���z�o�W�3~m�µ���
ھcg��d�rv=W�6l'������]�~�M{D[�/�m��$�t#5
7�I�\�.�6��`��˹��s�mہ��|���^CM~į�v�;U��&5h�4gW����vȑ�d��*ORi�[��-Q'�x0��j�m�x*�6b�~�!�Z�F���	�4�z�:���mwc��`Ɖ��+\��k�F� �p�*�cP�?F�$!B�G]n�ଝ��U�C�12����c�5�X��O�wF<�& Ix$$��S��Y�- 8�S�ĦfPW^ɯ�|U�$pFTG��v��hpF�ܧ�5�J�y��Ԝ0�_���F"L�v��USŒ+V�6w�B�q�����J��ժF�*PH	M�<�꼅T)d�**��D�~@�i3gi��U�A�l�+Oխ�hQ<s���G�4PƵ�x_�4�(��T�J�g�@?߭��o�R�~��#�֮'-e�.�	d�?��Q�/\�v]�ȵ�ٷ}l�2yV��$B��1�Xj�׀
7u�y� ��L�ă�7g1�9)��
��^l���-o����]�뚻e�1�W�\ԍ!ZC&��JU,�YI��s._Ԏ���@��~i���~`�D'ܜ�N�>	%{�z"��>��T��m��C�_�z.:�<�t�
��
b2a"��W۹�o�(��ٟ����s&���6
��?���x"g�>rl�\�*]oˮ�F��;GfS�nfh�����Uf�E,�3ulҒґ�I˷(y���~Z&��������=�e����{jؤ�fqp�v��M�ۺWF��}F�����S�gI�۟6Y<w"ξ�8�9�hG�-Z�hѢE�-Z��}�+�G�3]%�܁w�h��dL�r��J�J����t�i�8B�)�çA.�~w܇��.�X�+%�� �o_�33�L��oF���OT>1	����q)]��U�)QyJҙ�:NM�/��@����`��;#�.��7V��0i
Ln�*Y��Ez�����dTz��C��K�"�����3�E*��,H�����E�н�-N�x���'5Kh'z�J���\A-{��7�Ra���t���7ԛG�W�N����-X�v-B��9��VL6w�e��ԍ�5jz���=G�M�t�ݻuբu��x�
45Q�ƒ�$3=z�ɒ�R�P2�b�M��In�U|��.��	�<}��b{�[Ϡ+ݩsWr+�+�̠�6B}ڽW�\�A�7��*J��I��Ӧ�[�6��{����aǷ�y�w�>rY=7S�:� $i�+���hp/\�o�yZT�X�L�T�ƌ��eY�f]��M�i���&���,�y[���>�N��'O�2O�H��D���b��Uf��'O�S��9ٚ��aZ�-q��V�I���d�UB�ԒNuU����'��Ж@�;g�i��`}p$OҢ��չ���k�U�W;-@B�;�8[�*P��Ɋ�F@�Y��L� ϔi�u���˔�����TeLV���~xg�@����>�h��%͟<{Ū��eݖ'�{z�c'N~����3��_[w�����1l��5D6�0�:z�]�QO
��᭝��&.\�q�8�-Z�hѢE�-Z�h?

��v	�Н�������Q#w��ts��@��4��Q0�r	�'b��V�c׮ݩ40Т��d�˳�w���-v�c@W�b�*����*�$΂Q`��x����08�389�$�,Y�@�O���-S�" �Sa|���/bhW>b�ayp�S�'4�sTU�9ha�,].�8�}�rg���+(S�vyFZ�!v�*r鲷c|���M~v�ݝS��Buy��9h��	��J��h1М�QK��}D޵;�`�"[%�Qo�}�]s��B�&�^ym�J�>rt�$��<`���,�����K2�K�̫u,!m�&<�S��ݻ�Xd�o�������W��Y�3w���8$U:�Y�bpن��ҵ�u��
bx�{O���
�3�V��b����f��i��ʶ
hE}�
;‘0E��(�Q����_oܴYr�Q9�	�}��'�ڈ�WC�V��@xf�h�:C*��B�S�q���h_�Ԣqy�����fݽg�pe�>}�
�ۚ��/��C���2�u�t�5������՛V�ے~��y��붾����C�-1�ezT_p����]ޡ�m;�$���[�I�M]�VJ�9�|i�#Ǵiҝ6������6�E����z����|iFF�@G�-Z�hѢE�-Z�W�~jmqS0Ḁn)ƫh��`+60y0@������^_U�x)ژ?wނ@#_+߳woV�kd��z
�aH����08�bR�;��:'�Y��[�^9�-`��ih��ZX��d�rTA�ws�� �fP���K1��'2�D5'�8�rK��Mn��v�ܥfiu�pX�L���pqM�:�ח�e�)���5�
�1�ӎO<	̙�ༀs�,��y���B�mt�_��7��*�ֶ:i��4�z&}�
�_g��|�p}��mÄR{�g7<Z�X)I���V�9�Й��Rc��Q���<����tf`�p�o���C儔PN}�@���D���j�)��ȓ ν���׮�H`�h��9�i��y �M��Rᤓt*Ŵ�@r?@�Y#{g�F��^�����
�֦6����ˮ�v�24_�|��*SNAt����
�����}?�;}�
�y��~*��c�41kI��#��Ls� ��76���A+�oQ��n������x�Ï���˫6��3r��-������;z�;i_����0ǚ�񈁹r�6��V�U�-Z�hѢE�-Z�����b�>����=�����D�Ē��d	�%&�`TґޤZ@���RE��{��f�}���( �K���އ9�}��f�aE���u׬��?��}����Z߻��sV@�t�
�б��6nܸaC�YYD6�D�`ZH�$����q#��������lM�r���ĕR9=�T�W��N�>�ʫc[5j׷8g͞���`��͛����K�.�.��}5�Kd��*lmR���p��G���P��=׬]G�7ݓ3AR����
��f�áw�V��V!N)ۮ�
�4�>c&,�u�v��-�A���!o1ϕ+W�|[q �� �i�����I�W��Q���U�È�
lH�4QA&-m �k@�Q��	�L��>w�|��NB��s/�d/��̥�F���d5
��q��UkIqn��}�[��և[�T@�����M����9c1�����*�jxe`�Vm��R��$c�'�d�ZYps�A�L	�]t0��7o��̿�Rr5���GrV�
���_hF��2�4|FF�[lٺm�	�
�  ���^���ҘWi��=�S��u:Z���;i7�^��?Nv����>���}U5O��I��Ł���
;
�."4��~�i�.�Amc��Տu�2�=�9U��؟�����sV?�kX���C�YԀ�-Z�hѢE�-Z�3	@�E@���C�
O4����5�+�T�
�8�b�
 h�YE!�|7����7{J\s/T�{���h#ܩ6Мwkj�_j{w�ٻ�Z`��U�g�;��J\��G�OM�$+���'�@���n��v�R�i�ch�#5�j,2��扞�j@3`�C����"�-[��&1w3��3�h Ž��ݠ��~v݉���4h$��f�Zz*�i��H����im�	75�T&(%L.�	a���t�^��T��M�43���4�|t��m�ŋ��g^3t�փ�Ȇ��.�N4�5&)���'��i��@,4Z	��]��Rs�MF�p;9t���y��j�B}u�e�W���-�S�u66�Lݵ�&����1?��DpR��QW[QS��m���9�ֈ������{2��p��s�e�g�G�s����J�K�0}j����+��`xו���7C� �e�W���M�?���M�6���u�@��ct2�����w�E��GL��a%B�o�t��ϼ:�U�!S,�-@OY�Ԏ�d�C{\�j}ӎ���'@3��|�F�J�;��֜�v�hѢE�-Z�hѢE���Ƿ@�:;{/l�>`�S��ڪ��m`(d��*Y���h�Z	z�;W���$8�?��q���M�����������T�V�[�D-���'BgK@	H
��ںu+g%�|7~b��P��L'N���p��z׮]g�A�
u�7��t�x��5���K���	���[�S�.��:h��zG�
�Y�  }j�M�І���ްQ^�FͶ�ةgS�4��B�͞h�:([!�VG�@�`%=�0.����4	�F�2�,���[eTћn]�8#�'ek�җ:��#�
t�@�JZ�̙7�V~�a�R�޳'�w�3)a��gN@���ӠP+b�,�3�>��hS[�"�@�j��ц&�h��ڽ��K�U�L�$�s��N�:���ёp1�I�} �t�	���%ޝ@��*
�ݔ�������]���T�`��o�2��"�f̜zK�c�#G�uƅ��3ձsH��+=B`D�	�����6H�9���$���*�;u�n�H�sh*+DQ<R��$�b��|�'�r�I5���Fyh&�w��O�_1x:��}��)��i��ݻ=�i�c5γ��j�rߝ��޸I5��7y�Z���e+W
Ӷ��FLi�s��uo�$�3-W���-|���Y��c)��c���/>��͎�h��/�A��ѢE�-Z�hѢE�v&V@�+����ж��َ;�m۞v(ťG{�@�?3g�u��˔߳go�}l��1�Ƙ�IS@A���֔z��^W��RG�LcR�_uMP�h����'ou��q&�[�,�|�U�Z�I%Z|P���n߱C{kr}V�#��W�e����F��^A���s���0��� ��L�Kr���]�2�wߥɠ���J�n�—��-Z�k�C�*���@��I0���Z��䞡a�h���ZͲM�0��&�.�=����t�,0t:�
lM"t8y��EoDKK�`F����2�MLS�@s�D<���
a\�p�`�၃�hĻ����_I�#�w������;�s��vï~m�+
]'�Z�f�z��/��P�N}�*E�o�L;�pLв�;���R�Ju���1t���ya7���̚& ��J���7%(�~���o@��^xɕr[�������ҥ����oћ~3`���H���n�^��	�5@����k���F�P���
�򫮝6�-�f�r���U�ju5�a���h��s/�6I%&��j����ͅ|�S�Q�7ގ��ӆ�J�M�q�ܹ���w,�GM��8�3�
X�,b��y"g,�;KܯYJ\[ŵ�NGZa���۞�1x��noL�2lB���b��t96��\��׿�E�aS�]e��K��-�?'�%!��GMm�kH֦�zvtvræ�V�{��4�����8��f�g�;���E�-Z�hѢE���б:�V
o�J����=�=p����䋂�u"�shm���P��6[C��\�-�c���~���u��
9�mA�ؐ"ٽ{�C�$C���b[���_�J���T����{"��"Eo"E�{а�ί)RL��%�Q�ZM�P{�QR
���fts�"\/֮�%ʊ�1��������2����ǼB`k�m���Z���_u��.\��'����_����]�t�OT�r���+����_�'@��chH49~�>PV��p�W��G��*~�15�y��\c���+�<7�T�e��_�r[P�j4�,Iه+ɴP�ݱS׀���U��7lpGB�l��uT�?\��5E����gۿ&�t4�ٗ,[.'�l�^*Я�]�ђ��P������v%�f^�$l:d~j��ᆵpћ$T@[^*R��%56��V�z�6y�\���_��߄�%�lD2����]w�,�?-TXr�i�ʏX\�y �W*����!iH�"��ƽr��JW��!]���U�&�7$ȅ�b�S���#��E����S�7|
’Au-�p���H�Ǟܾ}��]�f]�!ӌ���T�`%�](�'M��𓚼���]K��UgdH.�QY}��\�m��`�.����0zFi����P�<x��=�>�e�9ǿ�7޶k�]vx}̇��t��h9���3�/�Ve�7o�1��~�Є5�F���m�I^c���>��c���\Ev�n��f/jܡ���+�E�\�8��A�@G�-Z�hѢE�-ZԀ�G<�m��/b\�K ��
^v�E��>���s�,_T��*j������7�����Mk�j�\x�w����	Cq��݆M��E^z���QM?1�˖���6��-:�B����巀 xn�˴<��Oν�2x�Cu��`��6h"��7
}{ҹ#\�1��V��L� p�����D����������"���Pׄ�P-'��������گo����H��OF��Ī4㶖�詼.~W��}~�R���,<M(��V\��\z��
q�w�`RZ��R�a�7����'=�Ǘ�[�Y���]{�"f}΅����pU�X����V����P4
�.*�m��s�|ybRv��u����Y��q�} ]p/�2��^HȜ��g.�.1�^΋�ί.R��g�=��G��K���_<���i��Q�h�}q�y�jBd~A��[~{�w�6�-C{>�;^��M0E��c�^���w0~� !Z�E�j�\N��w�|���N]�%$=/�MǍ�T�Βr�1I+�~1�^f�����#&�T-�>�J�i����`B�FM�i� =��H5��Ͽ���������H���f�N��d����X�_�8�������+�,)���+�,>x�`h>��\r�Յ���sy���IS~p�E0)���s��'������KB)�U���E��<���;K��ޫ��W�b��aI�~8i���G�玾�a}i,���9��x�V�pi/�4��}���w��mjBb(�6��.��I}Ѣ�g�s���ҹkPzI3J33V6����־�Y�g�<�֢f���;�׈�����f�{���i�w˗ǏM����G�9����V=/Y���M�\�e�x�
��h����9�4�=2Gl�OQ�#Z�hѢE�-Z�h�bt<���	�H�c�dj����Zu��J�������ZP����&o͚-��jX�r���jV�ZC	��n���P��UE� �@��V��&~�v��"��d����ѡ[�:Ϟo�%	���U2ڷ-s�FM����j5�>պ���+��U��B�p��q�>tL6��n�����&���4������j�i���+�)_�F�v$�۴�H�����'[�ސ�1�
(�|�c�PΙ?W=�p|��<,�2�-_E��ջ�����3��QW�ZD���=��d�����?<���C�<�
:�(->kRLM�u\�8#����<x�_Q�J�؃2�
$�g���
�D�c�s����z��
�Is�g�3/bjQnj�P����.^����ǻ�Ο�=R*��y�=pYM�����RW� �xe�=�C��R�m6尲_��I�—�?Gb�Ʒ��.��@Ϫq��T�_�9������P�t?LV�Vm�EWa�ik�����#	��R��	�R�VX�ﴫ�1��N,�Z�u.�:W�l��i��`-��c�]�z�|���L��I$��@?��jn:'M�?Q�^C�8�0غm�l)y;�{���H�8��DZ�m'=�C�2p�ݏ6i^�R5���m۵W	�{�^>PVs�8`տܩKΣ��'��4|���O�F�z-�n�:#�s-ᚰ$E^&�9>b�f���f���=��Z��*5E�1��b�Z��h���N�~�����O�?qn�ނ�3@��K{��ƹ���æ̦�ARçS�/yc�\U�P��)m�=r**�o��5Y��;�0sf�
��r۴}��I�;��k�z��<m�2�~˟�E�-Z�hѢE�����:�&�$���~��K�\S)��Pt�/ǁK@Вp2i`�`�Ҳ����jA��08n�>x|���.�
�!9��ְ<�;P�d<���`�.}�)�k�1O��C
<����c8'���@����pC�B��L���k�����޴yf�8Lo��Χ��:��/�)��6��+:��.wIZ����I��zH2$�|��vǠĢs&��o�\�0}��ƈ������_���~�]���P��S�3���	��Mn�T�H
rp^z}x�CE�!=uӡd�ڴy�M5m�(R�J���@+x��.�	R��r?���0���ٴ`��k�dP<W9�Si����%�6!�^s��8<���Dޖޭ�����Xo�ѭ�i��Ǔ>j�Lvm��ݒܷ�UA�=���ᆬGU�A$=�1��+��i:�uK�&޺k�f�F�l*HX#�?Ѕ*�w�y�����h�������ѣ4=b�s�hѢE�-Z�hѢE	�3������߼�
ּ�jɰ�ߩ@��?�}f�^�'��Ά��y��!��	�oƦg�s�Tz�4C�j��S�57٩�)��ÿHI�'���YZ�k^1�J6�$�B��_#�!��,+D���e�Sd����y�E{�tֈN��1�4�6_=h�0�3I>���㷂P�6���|��$��dl�Ȍ��C|=�e�3m>7����E�-Z�hѢE��L��:�z--Z�xZq�Sm�٠��)m�A�yʴ:v��7�/��uD�I�ȫo(���q�G�-Z�hѢE�-Z�h@G���.S,���m�}��,q?�����o��er��Jg{<:��w��.���+�p�ի�$��8��ڽ�|�G���	Q�hѢE�-Z�h���;HI(���'5q	�ܖ����Y����-Am�~�i��'|q r�>��sЂC��#WO�����돟�3Oo��}�ѡ���n�2�e$��m�^��7n�2]p0|�9����Ǫ��y����~Ƅ.������8���{�\8�t�jGfй_g��f�]�?Vo��V�u��~�\��+��<Sɚ�0��@���6pH�9U�ډv��"o2խ�WQ��
t������j��(+��8������pZ	����̋*��	h%�!Th@��!@+4P�	h=���/���`u���_0�LNņ��:��M����M�܀6p�L����m4�B�/��	� @G�m4�B����&@���{i*8�_5��ًۤi�̙�\h6M]�|[�d�̖eI�B7��t���]�U�	^��o70f�Z�A����w1��;�_v@s����p��Ŝ����l @3@gw�l�؏H�VJ>�r��h���wj�U`|�h�k
���B�&@�������{��Eg�_ߺs�d�bZ!@�t��Lo���痳�g�A��+��&ۿ�QK��?�,�&@�[Z~�w�v��hY�Q{�ģ�OCs��_�#����{�Ҡw��CZse�����i?{��WNK[�!G�Sk��7�h
V����]��Jgt�j{25����#�A��j��bG�R�\����%��R�T2��ϟ��}=~�޴�(��������rP)�4L��7Vpdwe�N��
I�G����4h�a�R�te��F"��,D�Ko޾[���ckK�t��+7�,U�NK��^��H�V�L�o�k��֎���D�<+��o�;e���hE��tz�Z�eH�ͭl�����#s���6{���=|ytssse��>�N��,ߐu�?|��N�³zS�4J�,���646���u���`?|��{��?�<,ߪ����ᵵ��X���S��h�U�+��+j�\���j�]�,��	�~�w��X�q���sv�ڔ�A�*jjh]F+Ec���	E)])�Ѷ��:V�S����Z�RI��R�t�K<����y��~�8[�f�)�~��tx����:�?�>�#"""��,��a�nm�&��M`j��z��i�>�[�A��}��v�6E�@�6�H-{��� ���}Yײ�����7JJ���G�;�d=�'�����{���%<2�h��j���^8JK�.f\�Br��70h˃qdEE�Â�����qv�ώ@1�~8l��sXt��ȝ	B֌��Ҽ�� �*��>�y���o���=�i�	O~����u	ڠ�߸�&�y.nع��ߞ>s������9t�5^EU�s��ľO��Y3^�����;�j�XVV�z>mW�n3KwO�TZRZ�	k<�˱j�z�{p�4�}B����`xL�΄�[?�;#q���'G�Yc���<{�̹.H�q�З._��^J"MEe��#F=v������Ƽ3V�w�����v�)g�p/?���IIU34<�&���S�O7�ޮ�������(�4�F����/((D��QU-�cǛO�=4��n�������_@T��2�fMDDDDDDDD��mWp����|�:��Ț[��x~��F$ŘG������-�R~��qXDTT�ND�h��3Z2&:8�7�������8���q�>:����{�amK�V�����́Av�Nh���o�v��޸�����/,,B4փV蟷����a�z�F�	�8!.
��>3�&""""""""b��M@��
�2����4J�6i]�����+�H$R����Z"�ʻ{�e�G�n<��ߺ}�����4m�\.K9u3Ѧf.fH�⢈+�7o�Z��Q��}%�FZ=r�mv�u\��y5+k��r�ڈ�u�|v�Q��J�셤�EU��*Iu^�	���Z�}�n�۪����B�����˛���d���2'��C�a���ʞ=˿�ob�YK=k���DR2�ҧ�N?wO����1:]YYY[[�+.��(�@]PX��F��dͫ�>r,''y7�揁Ax�C�4���J��IJ2++��/jʫ�ʉ����oT�TND�1"���ƝdZh�o�e���a깥#"v��(�vO�t@_��٣�����������e��{K��3�MM���#�b�����j�;Nu�1����z��0
�RSSSXT�%	�'O�
M[c��Sg�k8��*&f!�B1I}1����8�1�JICC�B�Y��+�צU��cН����^�ϟ?���	��11�
b_Kt�h���n�Ш]��`Dl���!}��4�-�0�Fj)��{�U��x�+�q��-��ac����.Y�KU+9�.6��-G}9�|xȶr��vN�4�v�<�T���?l�H�F�.�/���V#�GG��jjlD�G3�3�W���N*4%+4%)4�R����dru:�;dDD���L���]��0�<��a�q�q��9�Ѱ�b�z|�ih<f�[���v�.nuu�999��a�T5�ǎ��ʺ��؀�ܮ�������ӯ9_�U'ry=����Һ�Z��8'*8p_Ĥ�)�-B�k��1�����sJJJq<.�ӧ�9N���e����@'7G�M)/G�kk�+PGDDDDDDDDԅ���3ШW����總��8�p1&�Q��>��0��7�kw^��
e$>�������
��ˎ0;�OK?�tr��������֏��_�N����8 ��х�K��9�m3�>"*/�����H�/��8Cr��s��8����,�fMDDDDDDDD���Z4�]3��P��}��s���
��F�ޤ��5N�$�PV�� ���jZ���Bk�+��vVV�A��k�S�����'Ǚ1F��m ��Ɔ8�:�N!�n�O�@��ݡ
�P��wDP�`1Z,&��A�ɠe-V��w�X|Bϸ`P�˾�S�.�t����'�[���t�?�q��b�I��m7zn���N睫�1}^Ջ1O,}�@���란����:�>_���t?[#@�]��{�����8nwE\�W�1��jh��\B���Ñ��F���躗���5����kG㛩�@�ε�C�64���h�������
����y�"��8�D�nE�hDBƒ!^*���G�Y�AwKs1�]�͢N
F�s%�hA:3;c���3;���EC�R�������|��
h
hBM
�zii��P@М�&��@���UЄ������y��&�4_�A(�)��B(�e
hB�G�?ؒ�Є�_�#����<1[WY�8��yQ�ֆ��]���r\WV�I~�;/��o�>���v<o��h�P��͏��Q@˘��榒c]Kӯ�A��dݕ�bj�9�xY�,3�f]��Z3�DOr8l�t�����G���`����'����>��";�����{�|6W��^s,�x2G�6^�NFn�7�j���=[7����X	��N@�Ch'+�����2k��Ȳ,����T�4H�v�u��Xfb��P�Ⱥ��C�Gg��6�\.>P?_�G	U��{�~�E�i��2 u�|��X�);����Y_���:�W�ʆ���Z�|����Y�-�!6���Bk�l��@���
�G9MvK-/��A�,n.ѻj3	U��:T�6�$G:��v�\|�(�=|�軺�[�=�T�P����n.�n���F�Vo���j���LFj��sƳ��D�Igi����~��f~|�;j�`��R.c�+�p��\��/�ߔ{��kr�X�ʈ\4�.��<�w_��9m�d�\��:�8>�?�o�i��Y.Ġ��F���CM�&��7Ĩ
�Ơ�D��.��Ed!�(�(Fh�VMB�Ll�jE!�.{awٳ��.�{���$���~?���yγg��7���!�B!d�	hv@�|J@�L��Y�ڌ���4���5��y3���-޶^�*�el�F����[�]�竳&i����	#�rc��K�V+��.d�\c�7$����Ʋ�s��p��Y��#���:ղ�
M^���WxDW�v�^?c�.\���E!�B!�BȈ̀��f����n�dG�ƹY%g�MY@C�"��^X��)��+��L�s<-�QX�wz��!��)�xh<���0
]u��f�4���n;�K_��
	�?�tX����<��B!�B!����Ʋ�ఇ��5rtX��XD[hEh
��
�Y�M��1�/)�-]�ߖ�4�-7N�u�Ѧ/��/�1h��u���;3C�v`J�/�+~z��jvy4�
Ɔ�g��u&�t��a��!��B!�B!dB8�hQ7�nܜ�]P��S�R�mK����y��:3�����άp]m��y1�hm��ՙ�qN���Љlm���SŔ�ah<(�ԋ�#���G�_	����1$���ȧ�Q��db@z�Z'3�	!�B!�B�(΀�Ը�C��S�j���WV����X��u��׫���6b�؀`Hj�ϻW���֖,���j�0��u�����C��2�{�q�#Ke�,�f��sM�l$x/���Ơ��ߺ
��f�\K��nܢ\������{c�Gݟo�>�|�ЄB!�B!d��s~��A��b��|�[+���;�i-�\p�9�%�k���_�<tҔ������/�G�g
�6�\AuN�&�F9�M�'Zչ/���~��r�Meb~t�T��E�������by�����i7�`�M}�t)�t1�v�9�t~O?��?��hB!�B!�2z3�����/�wF�3t�$����*\`J�UU������NY�{�/p
������O���H:h�Ћvr�n��yQs(R�3]�zXfd=��=z�{P\�u[[�T}p��h�]���N����:��c��=z�ө{�B���^�?�{KE�L!�B!�BF����hk��juEM,3\�d���f�{�I޽� �1�)T��lM{j| v��x^�HGF�Z���ß�~�2�68,"nي7W'FL���X�|ZL�_�kh�6s�z��:�F��i�c�V��,�A�[(c��,�&wH@�`�݃�3�8�P����hc�dž3iڢ�����h���a��mW�<ޕ?}�Ɔt]�˰�b uu<^�!��}֟X��M�X��.�ЄB!�B!d4g@�&/__^U�,�?�+
���'O��qK1��<v2ys*�#�w!B����L\��&|��?}�_��.ώ�^��d6��!u>��d(�O�����v�N����nݺ�/�����>/�}B@�\ƿ~|�����Ah�b��t~_�ހ��q�+���@�M�b8�����A��HހMV+�v�KǯY|H�f�xZ`���:�����N�F�G9���Z��'�s���5k����J[�
��^F��=c�;x%'!�B!�B!�2��[@���*�>��؀Y�N��Q�Z��R�N��n�{�[R7l~�q�ק��m�?�+	I���+��?�~gy=�
��_�� X���5�k
� �́Y�c����ֻ����Rh�N߹{��X,x�]Bŕ�g��y}<�4��l��,ߖ[����밙,ת,͕vu�$��^f� \?i����\��I4_�n6:�v1�Y��=`7�Y�+,���򔨰�-=MG����8i��՞�é��U�rX�U���\�����r��?��!�x!!�B!�B�ht:#|cr�Lxg9I��w~��hI@�I�<��y��>�nQ5u��\�zn����h�ݮ��_[����S�D��kk�?Q�>�	Y,�otI�.Z�.yӛ	I��EǍŒz�Mƫ��Vf�g͍��A��$�a�q���Ep�X���wq�S��ݰi����Y���%�(В�N�{h�(�`�A�����k��҃�Hd��zv���{P�i����u[DeK)��X�$�V���H��%�Hw�tA�R)�t:����Ȗkbg���A$��M2ӅZ�pN��{�5Mӎݲvg��g���<���y���g~�:���Va��J�����͍�^�x����J��+�6!$�B!�B!��F�s�萩�L�j�:�?	V��z�ٌbiFf.��Ш0>Y4�ª�;S���S:l�����[C��Ϟ=4��5�P�y�>h���'[��b	��}�}�}��x�|4�xEeeY�]</�hƑ���:w/oDp�:���ޭ(��C�3�\j��{�H@��eΊֶwh��V�S].M!�B!�B#8�d@K�f#��p�X�C�50vvu� ��7�N05�ڛ�p -nj�AI��Z@?x���q�Ê
tG£1�\�
�|��T.�C@c%̅�ϴ��bR$���
����:(�����5�r�j���[Z^�Z����~��¦ߛ<6���"+8�����C9y��'5�J�_@��0#�k��U�[@�@�B!�B!����~O�b��984b�������_�A�Lvh�M(@�2}�3���v�
�M][[{��D����p�~
��K.]���yh�(\�����X]��r��z}��{o,V�O��/1	��KL�,>�����P
]Zz[А�I<6l����ߟ*/Xd�I��5u�c�p���ȡ����&�B!�B!���К�K�Vfd�thVT�>�������3L��=�n�s�t}}}Vv�2W$A_�v��h��=i�QU[[�p� A@���cC�^���w�z���Hhܼuk�˳����/CU���t������E@c�0�x3��v�@`t�(�Z���Q��(�)�	!�B!�B��F��k������^���X�,#+��cd�=�����ㄬиD�1�N+{$��E���x��OW�"1��n��9��?��;�I��q�탆�'&��J7<mx��5�OUY���y����S'C��斕�����"�Q;
�|�N���?USS#���ܜ���
h
hB!�B!�B(�{*�q�nU@�:�d��F��a;��FF�i�DD��0�Yֺ_�����o@?��
�����g��-�*UNn~��Z[Cñ�-!a��8�g�]�	��
�/(�k�J��N4Efts�sdw�Ǡz'�#��[���������m�:�VUs]r���8o�}��-�KMM!�B!�B��Fpt��h4��q0r��7
�1�F�`�dXf��'����-]�����x��\.o��_ګ�`h!���@퀠�hXr�G������MV�vsrq�~���ޮJ:���!z#��_��;���Z��+V�]�߻�R�{����)�)�	!�B!�B��~k�R���ZXE)�����<y�꣣c��g�I�|hk�=Ј`��N���5D���H�,�q{��Ѓu���)+��d��Y`�|�kqq�R��Y�8vZ��\��������;��/�V�mdq�`����|���z���c���]ѵuu�^FpP@B!�B!�B�.��h�5�����*��P�4Sz섍�2L���O��vY�.$2
:>Y�
���],������@.b���j�#wF�cX�N�m��>UUU�Q(�69,C�B<�X"���1٦��ƍ���UU���Y ���b,yy�jh���į���F�sEE���P݄p��a�J��&�B!�B!��?Ј��S�MLA+�CG�Ň3Ӥ��-���^��15=�
a��)����昸x4��ɨ�1��j>��p�vK��%҅vK��Bi[{Ǹ���T�(M�g���s!�����x�M~�8_$������
��w�BT����7.>��z>ʴM&M

ߑ&���K����Xo�C�1����&�B!�B�`�nZ�
�0��A��@	!!�Q����E�rѪM�V-j3A&�0���v�C�F:ո���aΜs�<��ݛ�V\�9����_�ҝ�*:m7#����!����������2�cpxb`h,=:G���*���S'W�J�5��=xq"�˵��C�F�쑕��ON�̜����l��04�,��6r)��>��z�%����}D�@������7�]����=Χ����xpq�Ng/ݹ��w;���j	����Y�:�L��h�{��fc��w@���;�_\J���������D����7�S�h0��+C�o-�y�~������>����π��x�����{��?�}��h0��Jh�[h>|����Z[�0哛ԧf���ͭ�'[������
f@�m���̍\�
Χ+s9�����h��uֵ��-@@_��B���@��h��@�>�M��@�6���h~�w^/V$Q�Wb�8ct̊	�A*�Y�s(
⃉U�1P�,�f�E_���z��蚺�]��|Mӷnwթ�����3� � � B�	��߿���!ZAAAAD@瞀�߀�!ZAAAAD@k��"�AAAAA;�u�-� � � � "�E@�-� � � � "�E@�]�����d�?���9O.��|X3���q]a}>��nޒ�Dd&�V��nq:e��B�h�M�G��u��RY�Ra-�)�
��5
j�-�N
f5���/� ����!:���I�ׯ_?}��EE��˗/�?N�����v�Z�9�Mf_s�u���~���;+&M�I/9|�G��4����!-_1����E:�r��ۤ���ʙ��B��i��ևr�[S��
���W�Ȣ��N�H
d��I��f'��GJ�aD�W��p�r�o�)`�
1�?x~�B,
�[L���
a5�%�A� B�!Z�����իW	B�9s�넄M�9�޽{����]��8كh�P	�|7�b׮]����/��$/�ڵk7m��i�w�47w��[�n�)sj;u�5?z�(��VW7nu�GL<{��лgϞ�;v��픗{�"��bŊs��y���"�{��9������C�={vʔ)/_�D�D�O,\�pɒ%$Ɵ1��˖-3+��&MZ�~=�E�]����ԋk�7o�L8�<|��1bĎ;��|3>4A�.X����\ o���{��=���*]P�����ꡮ��1"
�x�"l:߰a�ĉ�tf�>�Ν1c��۷φs��M�F,8��L�4�a�ȑ#<�GD���~ܞ�B�C�2Ϝ9sϞ=�pF	�?~��͛�˩���[�Ν;Q�ӧO��K�L{��[�HPݕ+Wf̘���c`�[�޽릂��޿O�i�������СC脀Ņ�g͚Enϕ~,�s��q��NAAH1�O@S�?tqI�h���W�~���lٲ������E�]�t�<y2�6��0aBII	-��71c��Y!2�����ڵk�U�}�6|3'�G�f.]�d<
M�>���{�B>��O�>C�	����V���>�sz�ʕ����c5�PW/^��۷��å����ׯ�x�b�q�F�����8�WXd�'0Y��h�}���:u�Aˉq��s��U�Ti�ҥY�����R�Z͚5o߾��o��:t�ڕ��{^�~]ZZ
�̌�%�Z�j
>����pk�~����dמ={2S�rW�Z�n�aÆ��p��˗׬YQ��-��ߺu��˗ x��%�V�Z�…\�*�Ykذ!K\'h}�U�Vݻwg2�F��?�;v�N�:S�N��z�jLC��	h:�_�^=[E�d˖-=z�hРNU�vmܒE���a�I�&��e�'N��[�*��`z"�^�n�}2��X~J�F�R�
������5k֌��uzF1�!n��i,���Y�cȴ�3`,�����ߝ@��G�6mڔ�B��Rc7��=,C6jԈ�ʠ��FY=b�b2L[&M�-� )G�	hv)i���H@�ޭ[�����cJq۶md�9�;3!ױcG�
�o�ۯ����W\X�;�2XI��TS�ԫW�Q�F�H�$I|�v`��ܕ+W����D+��T�V
����)hX*��O�
o%�ʝ�~|�H��
&@�w�ӑ��u7p���j۶m!V(�oC�]�/�k7�X�jH�v���6
�o��5XI�;1�t�r�U�9f�ݨ�c�۔{|]����6�:��M�U��-B�&=�/�н:��P�NصP_�0���L#1��{�&؝-^�z�_�mങĎ	f���k<���:3=�+�
"��[�6nܘݝ~
������sL��ϙ����d�o�\�����\�4����̰���V�*���'OҮ�,��p9V���&���]2M�2�/���Xf�aj�$߹sg��0�-&��s�D��"q'_Y/la����1oe�%{G!{q\����$m�2*.�W���H�N�x)B"����Z�
 �Nr�Ya��R���:Y�C�$i�̸�������സʢE�(������w�ï$��=sG���[hzg/����ľk��ߗ��!�'O�U�(�|>"���������M�6n�����DC	�9.$�(����0;�F`��x�OV�ƍ�tf)�,�nb�4G�$�����3X�9f�p��b?:�Dž��!�YV��Q���`���#̩2��>�� �$��#��Q�RP�&����u��jAA�?��{w�{�U�q�e��]z[�FH�4&pP���H�4�h��Q��4�&�`Jj�P�*h���=�9x�� I��o�2��{wߥM�������5k]�k]�Y��qۯ�@�	�ҤX^c������v��3oJ��K#�II�K��S�C��W_}��Ii���c��wIn#��V�Y�tԙ�B�BQЖ�jU��r�}�ߴ#��r�(_�fŴ�-.iG���q����h
�n�G�
ˀ��g���o���u<�.�Fd��_�E�|ĵX��+���K��j��w`"Q�ey�x4�RݮB2��Ӌ`Gb�r�;���,�D��ѩm�]{]�eŻ�n��������I�^QHťv���P�U-��_fd�Mkܨ%�՝�v5,q4��4��o�����{��F"�s�A����}��}&Ѷ� ���>ٺeh��R�ޓ��m.4"�4kǦ'n��(ɰi�u��G�P�
)na�^����pp������T�	�F�w�Gk�e6,��������-q?�+:���X�>gѾ�
5!&��i
�z�]���Q�SS��c�'@�rO��/2���׺cD��]�d|�c�=��C��/!8����XFܛ�g�d�"k��L�ɰ���#X"�ZV��t�/�h	6Cg�F���]���c�=��#O<�Ĩ�����6�08g,h���?O\T�ݢ�B�GF�d�&��zp�lKZ�,�q6�
�@3]�f�5@M���y2Q�T]�<�#2��j�:F�U#[���Z�5"�X��O����P�����E��"_��sb��*M@(���#��]�ц,0�Y�\��XPND�?�8E3�Ix͖q�0�G}T`�A���Ͻ@P��>�-"��sLqT))9�Z�HS�J��<]�#�R�]��������v�M�rc��S��&�:I҅{S7Y��ޒ5�*�+,A�Kk�;��DoB���:�w�'[8�+�`JM�O�(�~�TmL��X 
�\bɸC@�OwL�]i���LEw�յ�^w
����f�HI�Q�\L���S��%QB<oڃԉ�G�W.����R�=��Z�c���g&�$�Q�iƹ���7��~����s���`@՗_~�Z~�U���s�9�B�KE$႙�M��i�@�jn�lXv(�؆)�xA��	���k휹U:u�,lv�\��ȑ-6�D�M�~_z�%�G�H�l�4��jFC3@zaWK�y];G9�Q�r������678��8�nSZ���tߒ.	3s@�s�p�%$�_�x��E�����R'�׽�,y�+���R���r�+]��q���z���-�eE[{��N����0*�^kʼ��X��|��^=���D��Dʇ�4�)Kw[�&i���4�A[+��Pk^�Sk�V�g
�
�TdVD礜Nj��M	U@�]G�h��M eE�U{*녔���s�IV�חW�E%=F@н!��њe8n�)A�p�A2W_p:��DƊ�	���:��x�<�OB�SO�_B|'7ԪC�^wŵ�/�I��G��rLٛI�Ż�%f�D��
pJ��7BFҺE�5��yBP�16�� ���N$�.�F���E?�%i�@2�
�A��1١W���iT���?��M��'!ohÉw���X�i�"��f}Q+�-�%��[Okp�6HU倹-;�,7&+��]aoi��'$�UE�%a:�oPx�S���?�U'�Nא�B	Sd̃Q����>�q�}�+)�}ȶ��g�E,����2��ᨉ�_|���f�Ĕ���Uǧ�6i�-8��sD�B���r�#Wq�Zc�ף�@V!�L�����}�'���vsVSGj"�Z7�U\hfϏ��0�Ih_Aƭ3$������ع]O|�K_r#h#<K_��N��U�j�Dv�	���j�#j���k��B������i��b��Ex��tQ˚w-go��e-"7aBZv	\��K��!�J�AcA�QZ�\�?��3�7o�h�"fc��j:�B�[��R-S��!88`i.-F�1���"��X�%ءH�S�^�V���z�]<�H8ަ�m�AP\@F�T���	e���h"�ʉ|�W�dH�����P���
�}��hSY�h��o%�4K�hf�B
kD +2A��hVm�G�qծ�f����C��y
[��0r�b5��ә/{��l���J�8�с��%+�d�qR�h I�]e�&�o�}��l˼���e�v0�e��=�aث��<���i�K"<��E��D۹2��.�x����`�����!��ء/��\�����`�q�@U�F��q��}>�f�� �CZ�fQ�&�{�A�Z�VRJު>���S1���24w�?%
�42���H9/)��0HW�H*"Q4��h�mm�Kn�S=��'{#��/��PTi�M� `���z1^k�z�%!�̳^ Ʀ[�#H�d�Fk:Q��e�v^����	���܇�wf�z)��ǭ�j�/�>����G9�Q�r����>V@�)
�(����z��c�$B��l9��ͼ\��D�d��I�dI�3�ےO�pو?I��L�TT*
�0U�������?��0J�@H5��z���D�#�x5݇��Km.I<dM0���zDn?-�;Wa�ڔ�@a�
e�R&ɉ�J/�3����B��w�A�(	�z���C�����"U�u1�5(��%t����d}PPi�Byd�P07���
�
��3;:�?�0+�	^�n�!�G^�C_�I��%�=��3Q�0!c,�#�d��jG�W��VR
������@a���,x:��!8xau�4k�A��T��0�k5۝ `Z�[�qp�6���$5��r2/]$+QX�Z�z$Ɍ�!��
M��J�T@�|ASL�r0
a�<�Z�ɩ�"q*�j��JԒ^JT���As�Cz
�c�Ă&���d��>5@kp-;l�|P�<�Ր����(ِ2��<g��4�OY8��6��8Z4�"@b������p�(R}lp��%��
V�.�ə/�-ڤ���v棂��P8kla&���)��SS����_�H1"�c-��蔞���0�N�虸@9�4Ż��@�J��t�_�ͨ	B��x�p�Kwn�V�%[C��>Kk�3�&���A���RI��[��K��B+j�=�sf���u
�!.q�����F����'��+�J��w��5v�0`C�d���H=;Ɍg�9ga�A�ܐ�p��b�Dd%����OE��g� �"g�a &����F�ۍܪgx�s�X�En1j��q�B�>k!V=�&�$�!E��bl��#	U	��#�w��v��6Z��P���91�j�S��J)E3�S����ibA���ꑺ���wU����913��by	_�����,�`%W+dEK�6wÎ�Ϊ�d0}��D&j�M����k�v��4�k��ga`�N�'���Q���d�ѳ��N�Dj6�3E]0��^�M>�ÿ�Jt�~+���M{�H��!�(8&�{�fC�pM��uI���+ޭ &�F"?IR쇧�aR���ڞH�IY(d�G~�5�S��p��|�2�,}˩�`F�o���?��ޭZ��0�bb�f΋��G!7)k
�h�Z�xg�B��0;��
��>�@�q�߹�M�����������s��+��G��F0Ek=�1v�.үwM0E��#��x���?���U5m���#�߅/������xz�w�-�ͣ�r���(G9�f����7�;@�����a&��N���^��&�<dh9���@߂���$���vͽK]��@Z�@��ĩ�9Rq�j��z1���wo��I`T&`f/]iѨ�deR�(T������Jl'm�XE��=��IQX@��ʋP(iq��Zv
�*��T�0��8��P�����Agd,�9�9Zb�M�f��nn�J���e���°y����[p�𨣌ˍ�ғg.r��4b坖!b-q�v�|~1t�Zp(�^��N	a�"4J	�l3�.�NZ2��xd{j͠����b�N)��]�)�ny]�zx#�BL #
��U�l�2�s4�I��g3���	q`��U��ZP�@W$��z�-�3
�Q�;pD�I\I�g�\��rT���F�����G\9<{��l�m�gWV?��*q�=���M�!ȭGvܽ�RF˵3����5l���0�[�8�%�Z� 	M;t���1~Hj��
_��l�������[K�����T�2��U$_�t;`�"�	��D*��5Eb�h,U}'X����,�^�vp�����(+�*��IRB@v6AcE�cΎ�"<��]��`�DJ�8��{��ц��@�KM\�ytI�����c����ߵV�ˑ��$�$�f�:�
^�18XF>J/��PT��z�
��t�Rơ`��	;��$Ax6�c8���sГ��E$�������B����B�K��"T�KR�v��w�/����%�T�	�aB���
�3�b��-K�[O I�=��c��Ђ�>��}R4+����@�f���5���� �nMQ��V�kX�;.��F!�\Q�[>��Z�d6��,F	PBMC@6�� ڳE��U̒�h�ٯq�Tn�"��-�%X�50-��@��Z\b���Vp�8�[��ȼ/�>��0��I��4�1-O>�ʼ�q��e=����%�;g8��4'�-���,��wq���@ʨ�%���`�@���
I!tb�F�VfH�
�Jฐ„�rQ"�����Q�y�a���B�Bz��(G9�Q�r����Λ���������߽�����������ٶ�>�W:�=��'&��[iD�z\*�Ʃ�I��*$��&�ɷL�/�C��B��`���P� �ò�Le9�$Mv$p�IUJ��(1��2���(�mږ1�O�����ߓ��(��r�3Y�V�"���#6奺��F��+�mP+=��b�@�ay
Ё&��.z΍�q��0�r?��Ѝ�
��j�M(�pPE�^���6�s�v�e2g���)�E��ehZ:���q٣DO��@%$��pB/
F���@��7�G�<�U̲�Q�v$��V�UXSa�jʊiA�G\� ��h-D�"&���[o�s0"s�`���&�����L"�m��M@^0��_Z����x��r�%�h`9��A�S��	;���#Zc�>����HS�xp��{=J�5 �@��I,1˄tʌ��	�n�٭�Y!�2Z���($�Ź�w����7�ȃ����ڧ;�.,�FHr@c���冦�֨h��#���W���Y��<�e~�|��v�20��d�HO���+LS��P��yN�5q�U&繑�\m����Mi���	m7K�]� ���Շ鋖=f�>��i��3H+��#��y�@ 8�Y��)���q�Xͬ��Y�K,a���7����+����&ɤ�(����IZG,_+,����@3K���5�a�!�j��>�r
����<qQ�<CvF�#��"�c$�`�!��2��}M��R?��b ~�;2g�k�-�hIizlO#���ie`V�Ӛk��q���ƉL��GF��Z 
1V,�!�&�qP��'?Z��>���L@��d#��&�߃a��T�޼ih��b�3vF���9���O]���]�G���["B�N�4�o�!b���`A�D�r�!�*�a��*�k"j���>ɐ$��L�i>Cm�	-��j;�xоw+���C5t��5����?:��
�<�V刏�x[a
�yb�ޙ���xy��_Ӆ0"����i0ڞ�]�o2���pdz�Z�*#��{��o�1:�bV��1���`�=Xh��c.������r���(G9��w������g�쳟��s��/���/<��wݼq�C���@Kk���ER_p��|^��͡!2�.�8���%��Q5M�%?0�lk٠Q���z�fGn ߐ%�~��᤽����r�j��sTI�J_QRA���e>RkɒUxm�*/�����*T?%�@k\���f� ���w�F!\��G��Z;��th���B�~薯
���I�:|�R)�@�N�Bh}���U�T����3˅����*M
��*�삯�͓�T9:eT@�6�[�9Zj�Ҡ[��h�s��1�u����Ȝ�������	�/�����6h�2M��ev���-z�6Z���;&@�S7݁T��]
MeL;5"�\�5�v��Ȣ��^4����z�&�񨝮�X�@�d;}�>�Z:`��؃G/�l/��O��Ў�|��--��h�0�C|��e]�
f����Ў[�O5Rc=#����A���g9V�	U����گ����
�0�	��.���#��=�6/���Q�2[p�9];/#,���w�Ч��L4璜�P���{��E��vͺ摞��
�ZH��F��Д�*ь1�VK��I;f��!Y�7|*T���v�H��t���Ieb�l�A&�]@
�$��wh�$����b�Т�N��`C�sj��e�0��yG����<�4�3�zd�h��������C�m�ھz4U��'�)㲠G83%P�("o	�6j���ܛFX;d����ą5��H���Y�%�}�f��At�Ц= 8��h�9L����$xj�[�/,X�6UWG��j���S�|���핝���蔖�Q��6t�RY�?���~QwF�1S�� �p���Iw�#M��W$6�ay�[A	��9�A;&�lD0S)�L���}C��
{hL'C�\ �bd�0\�k�����m!6Mq�-�xM+�'���e�sZ��$7v.~�,_�be���>�Q�r������?Bho���g�����׾q������+���;�%��w��>�	�6���Vf�>4��&K>[�:%\��p�%K-:@�O���a ���4��*Э��e�RG:�7�YZ;�oH�%]ҕ��h��:�QS�hIc��nl!�@��"����*,�-,�B/���@�<M":
jP�D�*-lA�G�(e�-gI�q�����w[uq���
�,����������y���m�BS�~��.�A�$i�T�jh�?�,�.��I7�3����.4�崰$tf��2�߂#
+�Ɵq�r����a'h*j� Fp�,�o	��F%4
;��<P�"�hE[��k��J��R��	�<Y;�/�&��U�84�Vh��ӯ���o�_\@7	���C_4�ޡ�2���L�L�of����K��b�G����&󿽹)��O���s	G�(/�L�Ϻ������B+3����S�4g��L�]KZ�@'
��[-D�=y�+�������ljT����9��a<�'<�#��E�7@��I���9̊� 9�q��I�)���©�/h��|
1.iY��@��t4EG�@���@���=�y�ƗX��'DmPZ��4
��\,S����ꫫ�٭YS�ٹ��{�=�ևU��i�z6�H(�q�d��G�.q�)8��14�p�\�_��e���P`��r�e�Ë[C�d[�y�2�-���dѲ�H���ܖ�q�r�Ȫ�'�H�@D?{����I�ޭX˨������CK�g�
�����w���y2Q��"�EM
��n��n�ű��������77ɛ�h�d�4�1ȯ5�滛y@�/�
����O;ڿ@.��(G9�Q�rз���{��ƏY����?��_��?�����~�o_��ÿ�؏�n7^��Z�ۿ��$������t�y�'�0�J�Շ,H���шUB�1��2I�T߯�y��@mq(��b���v�W����D���F6$Q:*7h��>^/OеTSV���Kr�Z�9����hP��H� -��ۗ��%ohăK�x4�'$Tւ	F]S�%�m5⼌�:�����0HD��'�
���+�%X��Բk)������p���.w=����uM˚-D2ܥXcH�h��!F6�fY=��+�@1
�Zb=��8�>��
h�
.Q��e�p�@Fx
� �R��F���h�9v/�?- ��:�;B��d9(�]ڿ@k�Ca�{�E�G*�F���O�u�7s+0Q���A��@H�^�:�A�o�ДK��%0Kg�
~�����
@3u>e���z�"��4�Y��h�_@#	L��=���Sz�ۊ�d�~�&��h��6���7��eŕtM��U�4cj� �FV�s��6: 
��9Z�ed% c��]��Q]��@�1� c�9O�@�@�
��Rc��Ͻ�@��J��[-;�|�i1\�*����~�섎Z}�*Y1�Y�9&�_0t^�-y
��Q
0��2�le`m�Az������M�bѕt[~�6�^�d� a+�&m�j�}a�ɍ���@�hMi`�&fQ��g�%v+�e���b�c�G�;VD�ȿ��.q@�S��m�G-],�ҖA��>��IM�2!đ�Fs<�u.9�e��шɌ��Z
PH2d��c�a�N#l���ec�����#[^6Ɩ-�
�4�}C9�k@�n}�Jb�%�d-����.<?6� �O0rVS�9�4��c���R0�P��Xl�'h�����S��6���\	��ա_uhsfMZ���v�+c͕�Ѽ�-�����k�/X(�í�bS��x6^&Z����������>��
�}^���
�-��(G9�Q�r����{@_�ھ�p�~����O�4t�g����?��}�?�t���O}�_�D�z㶇t�-�UM���ɬCj$�!��s��z��D\^-=Ђ�ټ���]���A��L��M��@pa�y�r��-��Pɣ$nw�*�!`���md,z4�o�
HJ�&�q^�G,����%�X+ۗx�2`Hb����w2�ޖEj�z���%`-��S�Oq%m��Np
	�fk\�$��j�3��>���6��)��m2�Y��P�3d�;֠�D�t !4@gP$ܑU*�V�*��!J ������E�{���h�F��ۚː2+�3�AO��S8�DQ�p�乥�/§/Y����}�S7��m,��2�� d]����oܑ��Ę�
tᮖL��.��~�ƍd��뮻��M|4��y#Rk�8����8mt\�>�">U*�8y
��-Ar(�>e���nTg��y��i��e�
)q��w�LTO������'�����1A��]�	<��,F�S�5����b�w����0V����l�$̀1�)"u�K/�=7i�#$%�G��4#�a8`��4���S]�w،P�<�#����,��%
����I���;�ܮ�N���m���ܳ-�A6��s�[���)b�.�;1RS���(���A�H$,�,�~��nT2uFս��#���J\E	���<bzo�Ƣ)F�ھ��t�O���#h
�NZ�,�����3��g�x��R��13�rd��ѣ��K5�� Y�
�u-�e6Ԋ#:j3�\~7��W�t�p��$~E�OH{(�^��',���k�3�r���n��������Y߼yS��i��6��xY{@��v�<���7�[_˜�{��!�U�I �F�@G,́�Ưe43Zb@0���z�K�U�B�V�b�����D��9�6{r��ԇ6:�w(�-��<�tq�-��6C`�(g�z7<�ǀ0J/.��ň~5^���.���7��/���T�t�
�ƚ>B@J�qFU#�	=j!m�<�Ro�1Lځ�{R�;���F�kr��W;��bY㪑���,pQ��я*�7(O#98�y���a�e���I��Q8�+@��U��5�#�޹�L�;�!E!fF �7_���j�W�]^M��a<���fwxa�Ƅ`er=�F^�m��5���Y���N�mg�)q(a���>���C�К�<=rK3�\�y#�A�珳�|�W�j�KYǎG9�Q�r��+��Zmm��
>�̟��_}�}�'?�����w���-���*�*�2�����m���	@+f�v�JhI;+�~�6�aH!�KR$�'���R��8����w�1�J�jtr�6
�g�E.G� x�td���(�-���E��۝ �@�Mݩ/&�G�!@����k��㒬�RW�&i��d%�@��WI��-M�jR�ƷY���UV�=K#���2��b�Tk�3(�&]���X:�)d�t�����D��IwP�D4,G�����,�&=�����Y����e�Zg��$�b}A(P�N��Cg牋x�֍Xв�iX@�6)�X�W#�K�E��Tˀ�;!8̉�h�ܬ��#�HT�42�u݋�@T1�0z�3K��Z��]k�F��e^	��Ըk�!�Ix�/�����
]�j�:yH_„;���Z��ƙu����
�GD�ƙ�V�ĸ�׷X��@-tm&H��:0�q��B�x�>]Ϫ��cg�H�����ޞ�He�{��vV��O�\����F�K��F�E�hf6��E��gZ�KkD�'m�o��uF����^�v�O��k`meWz��lL2z24�<���l0v�@�#* U��Հ0����F��"�����%=щ�u�;cǽ���E�����S<Z��j1�5vG��\L;�#$R��Hz�i�"���>��ى��IP��J�
	��k'hNG�ڌ��gB�)�ZɁ�x:�ܨ#��Ge�+a��J��@kzw�ݛ���`����F(���e�XWY��v�l�JP3r��
�6:�Z�ki1*�I�	�`Y ��YŴ�`Ѻr,��Xέ`�΄�0���lB����Ѭ��!A���%O \��0۳I�3�kY���p��
����K�
֪�#�Em�		Dxt�e��Ѽ�D�L���i	�9#xe�Vh�v���'λK�w׍I�E�i��KQ�,�X����sq�$�����;�@aD�Q�~N��!�i������"R�e��v�#^b]������~�3,Peχ΍2L=��UM�Z	��V4�~�qqg���ά�m�dXa6N���3�4�I}Cg�x��S�1�$�E�4%�	�\_$О$��\��ؒ���&�
~If�D�2c�9�sf����µ	����
2�׎r���(G9�@_@�?��񜭟?��o�
4��Ư}����w��ӟy�穧?�̿��|��_���g,�nj���ρ�����{���X��;��W�i����}?���ʼ�x�*'Y��8t4�|��]�gS�J�,�-̥��#r��yJ�6�,�\/en	���"�}G��-�_�\D�x'��JC)�EF�N
dV�XP&7���]�����9�9+���b���Lbd�/볦���jA�uҀ��)��+U;��En��������{�٬�ZT����;�K��e�����E��w-�R.������]��w��{ػ�9���,���rd��7����r{Yes|����nO[W'rVg��G�� �	�ʸO���_bT��P{.��3�@̶�m�d����j��`Q�E�-�T��ȺB��^�cH���]u�/Ja�Q�ok���%���W!-�d�K>�m�:9��,*�j˽�k'�Z�v�e	/K#U���k��Z�Y�m÷�U�����"mo���z�����n�r
�/x@'h�bͱ�e�<���^e�*���.qo��z��r���隱�r�WE��,S��jk���]RNJc+s�-U��v�&�$G�s|���fO�P]U��p��]=��f�̃�:�0�W�I�ԠA�ECD1A� ��F�FE�L5�o%A�E@4jJ���c뒘�*.iոQ;1�h�gԱ�i��3�N��s�2�\z���3̝��o9�����	!��\���4�k60�`b�l�	�l�j���
�i��˶n�9狽��F�? (!9-+'?3;7:.�?0��X��ko��aa����[U8#!�/ ���_�xe�9���#G/X�le^A|r�K�ݼ���h�ӡ���/ZUX�h�#�D��b��8�v�:������6Y���LIZ�u��-�j[���M&-��P�ޖ�������o�=����I�煜Q�5�x�����𳇴�`�_�a�6�5$�l�U[iQ�Ha��H7~�-msJ�JN�0��,B�e�GW����r�q8XQ$�W���i��`B<,�#$�~!#ԑ�?�/xv#���~չ�(�I�œ)O{a�,(į�5���Ը�7���<_������f�}4n��Ң����a��=\8l	j&c���6�h�8$��c������XN�mn���&�{��Ni���a�f!E�ۙv�GPnmn�ݴ�m��j[;�|�!��)�m�nO:�?4�)�C�ę����P����ϰ0��0�9������<x�s���LƢek�ٳg*>|05&��:��TQ�BU��7'����tL\�%��j�2��&DZ�J�m	#�I�'�SLQQdL�p��L�1�@0e�Լ7�LL.9˼T�5�w�noI�n=����;�Ōƶ�����jN�x+a'�=�P��U�S�Q�ZttFB&1�!��T��1�h��ʸ3s��5�#��R��'C�ϵ;�]�6pm0�rmԌo�E}~,fBB��o���'�zhh6���Xu�e<~�ơ�B!D���#�C�;������btsv��h)B󉓧������)����]����c��8�Pҽg���W�^�Fs?q�iW�Y�S��h���]]/͠�n޺�A�GK�e9z�S�<u:``0���^����ݙ>oі�m|&laH�H4h�N/%K�m�%߼Q���XRY��g��iK�{���k��5%T���7/�F��]�ۡƫ���@!�>����=��FPڻˌ�?�B!���q#���3FtlBs�54�|���3o��ܐ���tw��ͩp�Z6��_�tWnj�l�����#"~��YG�k�N�2+�c_�p�%ݝݟ�\АЋ՗X35&��{��hV�7~�tW�>~s�`��8H��E{�P��eu���g�+�]��x�P�	!�B�4u��[���^�RSs�lA���b5*9�b����И�$�漂�=�}N��C��88m.ۊ$Bt���gÑ��+�	p������s��H�n۾be^n~avn�ٟ��'2��/�����￿��7"I����
�W�ב%@!�B!�B!�I��6tmm�����K�X*Ϟ�ݎ]ac0��K�g0чIKdeD����8���Z:'���Ń�!US��q�xc��q&_���ݻ��km-�|��!���i��ǎ�`�i
�`�R�D���B!�B!��m[t��)�U	љe`�PWo7O_��>�^w��mB�w��=;}~Tt,���1H�3ݜ?�TJ�J��=����bO���F�;�'b�#'L	�+�}�Ǭ9s	�f�B&'$ؙ�
�tƲ÷_��Ĕ̬�#G�Bھ__?ez���%@!�B!�B!�I��0�g*��ኇ��g��>�؊+��)Әݣ��
�1}�ǹxͺ=zt��a��s,�V׮�9r�䞽�P��U����&O8���_��Z�q�@�^UX<"b�k����>9�m'wϧ�:��

�|/k��W_�N/%K�B!�B!�B�
K�NI�m����V�3z�u�u���o�T�����tq��Xpp,U����>����}��x�[it=���:�p���c��;w���NJ���l��?���q'��4��^�~�[Q�Ek�����-Z!�B!�B	�m*@�<x�'_�����]���پ�����+��nxԀW���W���~Xd��PBk�r#WT��3
:�y��G�ݷ����[���jjjv�ĩ���Ю�������h>1ܺu{Ev����mw�kbtު"j-h	�B!�B!�BH�n;���9�?uF"�M�O�KFzf:�b$栐�w�-L�9�G��&����.��L������Ξ�`F|2Szx�04lԨ�#1܈KL�C`Pȡ�_b���n,^�����p���oEy����W{��&$�~��Yl��J�N�#K�B��w?-M�q��DNt�[�@���2��,�@��D(�$����H�ʬ��K%]C�c�=
�$�>��t�H7�׋�al����͇�@]�
��g�S��G������f�X:��[��1U�G�vFF|��-Ւ�׻~!L�3͙�����"�DCS[�o���ٍ���>�t�J*�=�y���l<d�i���S��1�
͙سNޏIN�b���Ɩ��g4�k@ߞ]X|���bv�~~�du��v��&��#��x�zm{����=�5�����67�����w���ɢg4��&��n�t�`�O虅�+��W��/&�Ml]��������7ko���n}}����7coZ��е��*6���hI>U8=2v�x�|�)���s2_��7<"���u�z�"z�V�l�?��Y��5��b:��\���=&�i�8ip���S��&qU��h@�%������_Њ����-�6h@����@-�6h4�;:��~�w�*
Ca�s[�(x��J��ѵ��9��4	M��!��Ah�	y~�B��
�ހ6Z���	�ŕm4�G�ހ��U����m6�އ�c�K	�
h������|�}>d�dz��v�ӏ:1�H�X�6�PM�֯���yU�<��:�C�>�H�,sBHϱ�?+�b�B���)@�mS�_�f(6}Y�1V�U01�T~݀6�PM���o��M8@_
�v�
���&@K	�n@�
�m4��s/M�a���ӝ���3��f��%Z�`w�� �
���H��"�"����K��}m�����@�ч�!Q�� ����8|�s��\~x8`���&�����@S���Zm��7���t��:���h�m/��ӗ�gz�n��;�a	�	����Kt�:=6195=;�d���K
�<�p�r}'�9,��u��t�١��κ~���j��R���j�~�m�|��p�i���2�%u�J�7ߧ&�p��&&�'Ovk�9�jm~q�a-,�_.��x�ZȎ5\*q>���w�S]�
^;�}�Z�7�V,A
 @�����GO�+<��<z��Z#�^����Ʌ�҇b�X�����=~O;�sz�=ݕMez�!���ju&��A��t��Y+���e�R�������va�m*ӫ��ƊM���wܰ��fSu�m�K9�}�����x�>EE
��o�-V��B�Z�h�3���

O��nn~�U�:�b���-ٞ����:n�xf���\_��k]g5R��_����k���h�iֱne�5pm�U桮��܄�Q4�4����{�Mt�~��j%ޡ��Lm9�~skk����ѐmu�i�%�:�suCh�+{g�T�u��?�ɤ�⃀H�D�FAdQ@vD����TEY"��(OVQ��-�"*`�Vۀ�h"(������w�͋M�T�L3�7��s�;���g��=�B!�B!�WS���i����a��зۣv�Z��
��iX��Nc3A7�֟�| %��̰�E���X$>+\=v�64Y���Lqx�y��vq=!)WB6lƻ�
䯝����Ef��CGF�ă��q�k��G��Bö��`0�3��k͂J�O�$�XĎߛYX�w���wr	
�fam�����������6SW��ani������;�w#�v��
��C��:�ؽ7V�����!���?DM!�B!�Bc���4b��1q/^��74�Ԟ���)\�����PZ�Ci�L0������X��ֻwW{x���\ilj������R�T���un~J�ᔋ�N�ʗ��nll�F��)���g��t��칙Y�##��-a�}��E�>_��280x��W����]��?���R|���n���3X��X"�ח/G����<���&�B!�B!����)��MVDj:|Dw)�.�h h�������1���?��zx�;�nk�]hb,�BypWg�-�8�n�**���B�\6q��Řjہ�����_�zYS[�n�O�<�>nim?A^�|4�t��[�#��.8Yk��rZ�X^���۷'&��ݫ��ƹ����قE���==��M��W�/�u��ջ��<2<��~��~9bڏ?�KY�-���4!�B!�B!�W���g���.�1?��E����Ģg������D"��x�z�x�i�@�����y݆�ڳ/\,G��g�-ORPB��psK�+�'LA�d�h�_`ړE��y�Q�<^N1b�N45���98��`���}�h�j74u����#����<�Cl�?���$hln��I�J��q���+W�*7O���Oqrq�b��V�i�[H:wuw�P��� 7M���1 x��ާxM
hB!�B!�BȘ뀎OJyW
�vZV��#,������0[����ǸT}YAYMp��	���&��@K�0���������VR�	��'
�0��e5�ՅE�h�����*�&��|EUCId@b���ϝox��}���2Og�N�8z�v3�Z��qrHXcO������<C����a�v=<86
7���5��.))ó�}�gΝ߶=���)o,�ЄB!�B!��1��֋I؟�_��Z�[���*8���bA'
q!��j��8�؝(���2Z2Ξ�b��i�w�����YH@K��M�.�S𹞾h�@�����5;����c��N@�AE_��W�a�+�.�}���321������������}���I�S�}��A�3�q̆�`r9�-��"ӥ���&4� 
���,}v@B!�B!�B�V4�����_X
-|`� �e��N�$��#5����r�T���(D�����LH
�?�?�\fni�����ںk��Z�&��Pz�$.!I�u���F&��ME�J�7>xSL%hY��y�?
�j$�
)���Q�,�w�+t:�R��d	�7Y��!�[���7D4��
����VNQEht�U!���~�ϊT��[�����ɕ���PZ�ߥ�&�B!�B!���
!��a^���	�qI)�'��B:�ٹ����[�n۱�����!^Q�|�m4�|?]=tb`��:z�2n��`���ɒή������E�a~����[s��
��:-}-K@�k�I�`yE%�=��p��bc~�F��w|���DyQ�O�
Jn���-w��D^i�2;G<�:i,�7�����XQ�J��	hB!�B!�BȘ�BnzfVk���}�'���SpjcX��L�W���0=�:�n��O_��Z[�{o\RrJC�u,~yo\��H�������#%5=&.���	_��A(k�~"$�ͭl���gO��T5~*�b֌���O�.U�M���������G����qvndԮs�/`�=�r���UU�}�}��?"���^f�����3g���,m��^��3H=�i���wW��f�B!�B!�2:�6����<hx���s���ޅ�ݴ%���ce2�� ,,0G����g������U�K��*π����hln�ň�k��_qr �҂�.-;�+p�xe�_�m���k�|%6������1 p�Ėյf팎���-�Nk+E�Hh�:� �-��/8�1��C垡�{T����3\���/�{�a[��&�J"���Z�ЄB!�B!c��Z��0�����,u�E[�(�̖\�04�DS[P��:	�H���I'���t�� �li���2���ά�7�'e��t�tf=���GҺ��LW����Zs��{�w^f�r��2�.������bgn�q���3�'�Nws�R�ã���djsW�@�`�>����Z���zc��j�Z+g>��r&;�^�?d�֝DՉ�sZtv�˫�7�W֚N��)��y�a�i	r���=����s��W�F��-�7��=\�c$���7r�_��ܬ7��w��Z4p��?������E�|����$�eΔ��y��r��R��/8����eiUNo��w�ٹ�9��Tw���_)��	���\��5�嶹6���}Y�M��?aw6�gV�7ʓ��<���C�M�KR�i�~��l��T��8�t���=�I������z��f俔�f�bg%�N�K�e��XZ���r��߇�J
����H��9��g%��t'�e���� ���i�@��Z	��|�Z	��J
�:����'{wӚF��u�E�����cYME�A׶/d׌�

���p	!�l��9�wnx~}>�����L���.(L�3hh��0|A'�*�E��?�V���f�A7�ZW7��vM�e�����a
m��u:��:����=��L�Y�ۭ�KC�i:^uC��ݛO
��׫�V������p�Z�~�v��2�:��jO7d�����On0Tu.�KB�}W�H�e�v����m��kh����o�ļ`PB�o2�d���S;|�3|y�a��W{p5R���`M��fXA�yK��-��a�X��f�YzY��<�Φ!�w64�x<�уګ�GM��U�R�I|�5��v��FP�K(ERx(���J�;e�r*��l+'޳���[�aʣ�U
�
��wЖ��П��4�h4*ЩW��|�R8��*u�%�nY��D�0*�y���x�N����:}R���`@��@�@���A����1��C-4h� �F�Z���������h�h4h@#�4hh҇:m	�@#�4h�h�t�����	hK���;�����nb��	�1&9��PDņNDA!(���@$6t��%QAA:'D�0c�?@�字��:�V��ʽ�X_*��S{���DЉ$��$�I@'.v$�H:�H:�h�߀N:_I@'��N$�H$�H:�tЉ$��9%�H$��$���N$�tЉ$��$�I@'I@'��N$��B�:_I@'��N$�H$�H:q�#	�DЉDЉD�
�|%�t"	�$���N$�H$�H:�H:�t"�	��#�	�|%�H:�t"�t"	�D�I@'��N$�t"�:_I@'�t����Y$�Su��H��<M=	�.���L��1*�:����f�ɴ�H���U�I@'�%��o@�+	���K@�?^Uj�@MG_�W4+ ���2B��L�
��Ăq%��y��Z���W�'���B����ܺaW:�n�����zi��[E��x�	hJ)�V��X_�.�K�l8͖�Ҹ)E��oAtm�=�Wͧ�txw㡯��S�����r���}�3춖[��'�C/ED���\��R��nW#�H��P6��L�|�L;��n63�D�n�m߷v�C�͉��N$�o@�+_�C@+�O�8q�ԩ�'O���꒮Zʂ�J����M�6}���D@���o��~��?����n��!������3g4�X����H�3+
�����;w����X�J4}}mm}&�p�w�}���u���wt�����?��3VG����EAE�C�i]�9҈~ci@C���R��s����M6�u���{O�j�cp�e�Rm���<S�i-W�ay�w���C�C@����Ra�gϞ�����jx�{�z�v):��#����JY�;/ဇf�&c6��'�|��dD����hI�o���i�EgС�HpG�����@��ᅲs"
VUV�Ԉ�5��+�u��6����_⫙�.6e?nݕ'�0
���P��=�=���;�&p_���T$���
1z�ᤔ^�׉��H��}��ˈ�5�X�L�Ͽ���0"���+}
�(+-�M�dTImJ���ӧO[®]���1��XWQ��E����P]D�"�b�A�m=��?���?f��զs�����ܜ�,[�{���k�$�����W����+��b��W^y��O?�4�s�}��-_���W^��\ٶm��W_}�UW]s�5Z�B��L��gϞ0a�ԩS_x��*��v��iӦ�?��x饗�r�.( fΜ9q����'�8v�X��Q{�1�'M�4w�\��?����?�%���3�x�dǎw�}����Ot�EI��ږ��hpŊ�֭@]���_M�ј�m�cC�'��A�Q�XQc1��{nժU6lP�
�v�h�_~iJ�C����À���&�uͣI5cs��/�x㍌��W)��H@��7o�Z�#V��O?��S7��\�2D�{�n������ɓ'�zʕ�*T�4Hz�CG4K��7Uv���al���n���?��3_�z����9r�H�oϷ&���?��3I�5�z[��V��޽{˦ng�n�9��L�E�qS�ȱ#�:���o2rv��V�lf۷o��a�j�.o���`��*sI7U����A��_��Q��/��Y\���Mwc�<gΜ{�G��N8n���1c�|��G�p��[�n-GW����Q
�b���)�H�7�p��ŋ��t(bѢE��	�
�#!7�ݸq�K�A�wk��oT2ENd`�gZIL�2#~ɶF�60\ޘ���q*F����g��0�>��h�MY��)M��`B�7��Һְ�����
9�߿_�a]�_�>m�4K�E�}衇r��D�N�z�j�dX�i���G��E5�z��˰HO��� ��y!���ʡcǎe~���<}��Qj���"�@8H��ԇ��H�E2��馛x�ܡegКI"	��;�ʄ07U��޲e�$P�sv'F�_0S�*��K���Պ���;���v�)>sOY�۾��˪��EJ5�o��FP�r}ĈR	���$��|:_��ږ	�
Ç�뮻8����:
8��/��i��j}
����K/��u�Ev5��A�Mhkg�F}6lذ�6�^{-N'��=FM�A����k~����_/��r�(��W_}5t�PS��nE�!Cf͚E�qŮҰ�]wQw�Dê�������wod��D%w��k��C2:�;}��'�1�r�w�&ݫ>-:�r�-�,\��3�W�>��3�j��ѶF�G�([�-U��WpPᎦd>f��-�f������c����f��j{�x�[3����B��¢%�!��?]�
��
M��{����=�:���yh4 a-���a#1��*R
��נ��'�����o�~ E�\_��o��v�䍌D�2e
-�N�P_��≤%K�P%B�Pѷ���j��+�a�Dᔋ���aS1<,�^�m�X{#�Կ�U���<Ǎ�f�����k4"Dϟ?��aBc�����
��FM����I��2u��;FF`aؖ�t�RO���a�m�����<H8qn*��V��3f�T��q|-�20�#:7j��WZ�=Id�Ψ��0�a�˯U;��� -\p.GWCYf�Q�
*����5�+$o�Mb�	ǔ^$D��+e;�?O���"��U��>`[D�u�]d�u��H��]�DGV��$P/yyQ���#���K��BH�ˀ"��M,j=�����o�a��g"S�a��OXN!2o�<�i�j��	S^F�B������#�x(�s��\�{���e�$)"I��������>���H�����)���#�Ha�a9�&��Is�"wGg��>�h<l�p$��-���H���N�[��U��`�P�լ���5���<2"3D�ȵ���4F@��-X�@�(�v�G��|$S'Ė�WڑL{���{��jٵ�q�
ȃ��R���ȣRIa�V�����hCAm��OH��a 
D���6�K��_,�:ggש�k-��מk�1�k��[s����_wk�sPa�;��[c��7_�WBJn�rF"'�]���F��@���jN�M}7$�LN���NbK�`%߇%�	��S���&�:���L�[�����!G^�(�Y��-ɲRSZ+�f�4�)vq�:����;����64XPc���3��%4��3ϴٹ�,������l
�\�"΃t@�_�����?�����oE3���D�8�eg>��SƩ�l�N��{��믿��O<����x"XL;�����X�V����7 sRWNJ���I�tq�
k���Ȼ\(ۑƐ�tQJ�9_�C�((��%bG��@�1� ��wQR�t�24���׻È@B�'ɘ@͵r)A�+m\m����a�$	��VT���%m��P�vOT|��cz6�MmM����*G�Jcw��2h�R/��13���Q��<&e�&}���g��<�<������i� �R2;�>��3A��dnehZ�p��Pn<8�w�}G@:A���\�N�&Q�mG��`n�N	�Z�������v��۝Ϋ�����ĶwGDm^��:_j�����g�h�6��T��RuY
,Ս7�\8`hr3�����H'uH=<�Nd.�?8�'���>����g���"FdT�����&	�L#�u�C�
c�3�@�E�cv�Q��ٍH�9�z�������]��š���ms4��O�b����%��o�k�d�h�_����lm�IkGE���X^0Ӽ��hL�I�y���mj��_}�}�:�-"��eAt�NH�M"��ΘiJu@��uɲM��)���Ԇ��A�W҅G=��݁{6�m�Z�i\H��]�k��ݵѬ�,�;���	c�ɋ��r<akЗ_~�']�r�L-��x&�l�.��Q��Y��['�\n�A��#���QԔ�2[��~�u�L�!�q)
��|�
�H��M
7Ia�o�
L�����G�x;)��9Z�~\Ϣɾ�E�s6��%�?�LZ`�����ȝ_�Bt���0����t;:P�YYr�3�T�_o�\�\c'��/������`1EO�i�Ur"&��L�x�눂d%�?��S/�-��V��(��"���%���b�O��7r��,�Dj�/��y�ϗ@ې����4MzE�lqHh&�w��p<
�*��KI��vS_4�3���6Mc�ԏ��-G��D���(�4棺U�l�h�[����e���Al���?�Ԕ��V�C�0&�T����r�a�n���r��5�b�M=��D?�%ɂ���'H�Y��KUvz?�c/�����f��3"3gg�X���z�e�
��qZ<����,����*�W��W!ȴ�Ъk��k�	��8Fp|��y����0kP�z\=k��o��{�w��51��~ϐ
�����`�r�6\���u�p�c\��*H�=_��N�J�|�3��@$!l��8�%m��H'd�v�S���R�կ�>u���x�-]�\�p�0����[������N�?:m��y�5q���vѕ��QI�!Rb ��
�I
�q�Nl͐�O�j<D8lG�4J�U�%܀'�t���@�!hݺJsG�� ��z��QF[i�l�]*(wқH���D?yN�X+=\�t�9�A�'d�ϸ!m� 3ZM�"�2
��1٬�I�|ì��ubGM��֕���P4f��q�c�L��<��B`/k�c?�VOZ�L�e�&{�%z$\�Q�nK`2�Q�RnF�r=�.�u���x����L�����W�"�a�d�~�۴�rݎ�ќt��A�3�S	]���*Q���������.����O����-wu���3L����h�K��1S���.L�H@�l��E2jAj�I���d���.m���&h0U�v\uI���t�W<dx�>ǭ���(dx��	T�[��~�Ҕ�8M�}�����K���g���PN0P�-�f􁳢��;@�.��SH'�'!b���$�um�z�3d�,,��w�v`U(�y-�DAڨ���]�1��Ybk�Z�B��3%1���ЎoN�V���"'���i뇀�
[`#.7)���ᖍ��1|�=�o@�xU�&I=�-��'�]����`�Ђ��o�X�Ԍi;�j��t	/Ax6̴�0�F೧���'2�	����d��x85�ȅ�*�c{z���ƌB�;ex��_J���"��޹�t�z�5`hh������&2n�B��G'j)<��N��Ýy!�4��%��*1N�6��$�&�`s:CW{�ȝ��{<'/M����h�qZ�ď�)nt�|�tG���gS��c��MK�����:N�S"m+1���N4��������]W�Լt�K1e��sSdA�r_d��2.-JQYV��f���U��Wr��@�n��c1"כ=�V�MT�W�q� c��ވmL̔����a$9ɫ�'%�n�2��OɎ�74�҉K|։�#�W�ț���sK�M�UȳFS`�67�~i�A��r�=�w�4
?�/�>;J7��GAsx�I��W�"�R���$�t����_��*�#�ˍ�w��
,�>d� ��ɣ�e�E�V%"�،D�9�V�́fR9�{ �b��ct^²�f"X�V�J�����b+�NE�����2ub��'�U4��g�Hm�F!�t"�0)��'���̛�S�3��`�	E�B����7zΟ:�b��ޏ��w@�;�1
8��2'k�իW�8>�fQ�n���O>YnflK������-���6�#�����y�%s�R3�r��Т�U��`N�^����^���!�ѧ�`���vO�T�޽�<y��m-E��i_=������ݛ�pg8~�{�1a\[��G~E�3�:[��+��[�I�BAO�>}�
�8�=���Ah���z���E�%�N�AZ�6���4_1Y�"��=W-���E�η�K�[�c���(~*$G�AH��� i
o�������u�3���tR`*
��t�"<��8�LӡM�.k�
��C�R)�}�Q���)�u�h���?���CTVI��D�.�t�<|�=��C��9�M@~"�����3�����cS��K#��>$�`#��6����i����*G�-z^���)d2�0B���O���M缜܆�"�,d�&��W���o��'��3J��|l
��㣜8��J�RK�V;Y,�Uo���X��~��`���	�`"ƭOA��h�M�OFA	"1�t�z��m9d4H����KUNL�)IA�Z��K�H`+zY���\��c9��aHt=�s;�n���_���U������y#bfZ�*Ɉ�P�7\���̡��F^�:I�-��d6R���;����K?�-ut��Z�-
.q-_d�z#8X��g���ݟ���t����
܌a���i �{P{m(ގ="ː��������)�1��5�4������=��-f|�K��1Ϲ|E�)4��%�6�k����F	��C,� �%X4eK�\H�"���@FRV�6�Z�2jGR ĹI��-��Nt ���[�5���R��՘ot�_�㚐D�+�44��R���\�:S{�3�< ��|�QL
�H!��@�C�kj�RAj�#ef������Mhs�6��H?��5г���o+�%��ݗ�M�[�Sp���+��'��/�?y�}d���#>+��a�~x���Z�&A�-L8�s�gq�z��7Q�O��
X-���B��hHW��AO!у�(�hS��4X:�m��U�����9����s�Z����i|�	R<z�<!�3h�jc�տ@���VL���C�nDR~J��
��NL�(�XL�/UzP>��ϼ��
�.^���n�浦,�!��stwK4v�r�=�@{x��7��AB:0�SToMY��$��l�L���!x�ִ��%)}�7C����ȏU�N��D�N��BI�{'ص&�n�ЊB2G!�"�>�C���+)�$:I���:Q�Q�p�q�ƅ�H�f!�j�@}���������~��@�;�%m}eK����A< `�
���Q��8����z����R,��(j�C1�xB�xd""��{��h�JlY�B��5�@��W��WQ�_����Z
�T�պ�r�v^���u�V���Q#��2���u��o�!=�cB����*b�I|~��'E�Bg�CH��f[�(���5�W�c0D�S�@���EK�%���嘻)��"��QJ��hL�"��@�RE����dKEZU��Ҡ�K�ڍ"e�d�L�DO.fZ��	��Q�����Q6��W陽�>"Hą��n.H���Ƣ�
hG5�oide@q��G"8�f•j)�Z�~ဥ
�RӒH&�ҭ,�4U�P}Of����Hu��%��lV�WW�)t���*�S�<m��}
�	�mtK��:��iIL�j�|��y0�nYZg :�4�bt�U␽W�d�
�4���F��h�El
��.?x����DL��@3���"T�C��PN��aPN��#�T]�p.�Aإn ֪O���r�?��x+e5�� ҅m饮4Y����ҋ��ќ�=�5�d�l��L���zy�t����r�.@k@��G�U���zr�nS���;i/�(�{��'#J%q�K��8�;�X�lB��h�Au�&
!E��R���]��|-1Hͻ�_A|�6�� �%ai���Xʊ��6��&
��2[6:ɩ�]c)���*��{���*r�X�3Ӡ���UTq���WzeD9Cӛ9�VM�g�.>3�n@WW�D0�P؝��{�t�v�8�3w^�;Ld�'t�P���U�n�%�3=_qO��_��+��D8�&�hΓ�0w
�g��\����{��L��}`�v$8\�>�Vs=S?���勐d��W��C��\�_�@1��h,�0Σ߅Сr�-,��Ս1��m���͊Ʌq�`��*�D�fh��3�q��!w��
h�L�&�O.fa]�5�rz�7ΜhL�H��|f�骵2��	�M�p��0e:C�H���Zp��䎍�!芤u4x�2J]��+&@|L�t�;Ѡ�~�T��"��_�^3�j��f;(�ؒ3�L���~�P�;���b�����s`q&��ޥ�r)M�����S�ۡcT�|5
�P~�	:�g��`�ڲJ�y�V�0��
}h������B�쨧I���<g�izثztb��s��9���NܤL�����Ƶ��fFAc�Ptο�CW�? �ӝN��L�Q3���1VM�X��\ՔV��)�>�*�oP�3u�v�6F4���O�2����4��SK��XK-� J��X�帰737�+�����$�����G[h��a��X�̤��ӟ�:�%���m�F�x-ĩ4�Ouwz?���h�����Ovz�{�莋���^hI>>��u�e8�,|���M��}x]zps�.xw��y�I���ީ�J*����t+.�����vg���O�����Q����EK�Z
Wo������t6���WA�XY�"u�h�K_������Aom	���T!�gH0M�(H>
��+h�n����z�i��J��T��XS)8;�5k�/+c5�,�3�X=2YM��'��
5�[��x]��9�����b��	��c�����y�/j]��Ud�uai���"��
'���Y}�.	�����Y��������r�]��,h�ՠ�G�i�'#����0��+HS���y�u
/��[PN�Br�YK)SϖꓘP�*V���@��&x�t���~��k��T�
�d:�x]��H�M7(XH
=F�����\ӤE���%޸WE=�'"�ݯ(��~=4�����룟�/ϓ��n@�؇Tڕ���hBq��d���B��` ��$ȅ!�	�T}�l����׮Zm�.��O��Q���p#Ղ��0�'�9H�%����-)�Nz���~ޒr����#߲n�uK�������
~ZоV�8�@C�A��T�Wj6.]��cRh����L���O��	��mh&��I'�8c�I�A!�D���y��(�]Hh;ֹ/��������3Y1��+���*�2*`
���րJCO��ȩ_���ʟ	@���@�c�X��Wx��QhÇ�T�'�Ws�ޛ*
D�����h��!t�{�\ލp
r����We�F�+~�zyN�]��gDt��v���D��l�-���ѽ���ݡ$�q^'@��B�	����Ƭ1fb8?Z
�¨*AV1�/�
�w�W2Ҳ�e�ӳ5�m���
�0;r�ly�ĒJ-)'+0.�\���%����*�@�\��bJR�.SS`چ�.����$�W�V��u�!����L�T��Ȉd2֗�f�o� �ۍ|�!�ݲ>���-�^�c10�E'��9�,I�K�з]�m�j��8P't̯k��t�>듶hL�un}1;��M��I���DS�Q'2ҹ5�J#�jU��3�;(Fo��"���7#Rf�����Q�ԉ�&e\�1��')�0��I$���Yhm�OK�Z�-ԩ!��~�����w@�;�hv��_-��;�|���][;<'e����Y�=C�>��u���a���^zip�0�ާ�~�rH����^��U�8@K��UZRI
����������:;��I��[0
]������$U�&
�{p�lS0,���H�²	��OC�L�NJ�{��N�1�D%�BX���H�h
	�ƺB�0�h��y�������5��1JBm�={��@�])TuF)'���5>��h������&#6�Shh�K	&Ә�8I�x�h���DY�<����C��	@�[h��\:@���E�ib�*�Ӡ�ԡ?��[&.�c%?b�(�2�
s�i�gh��P��r�2+�>�s@S�ِ�3���vK���OnF�C~�d����A��hd̋�����L�V\?�a���ñE��KV�F�z�А��˲w��~��m	����W�9jfn.~�KZA�'�avݢ��.%��!��D�@�����(_�EL�|	a����5M��bt�ê�� �m���Ѻ5����>�8�5�Z�q���t=}��ʆ�9C�u;��4�D/��
��l��e����ŵ	��u�֞���δ ZYP��us�X=oYb�f$���������8cD^�!@�*܅Jd�L@$��4��[VT��
��Z�]��������T�U��Z8�^5.w�K�L���=P��B�SZ�J��3p4
s"
-r�$Wa��9S�7��i�s\E$G�zK�&k��kd/��͔t�-�-F����@�O�Iı$��h��̝燗4�N$�%S*����5{t��	�^�	�����{���~���X
@�WDr\Z����WD�I��ڈ�k�h+Wa& 7a�:���Flc�:n��Q9
��-���B�rݴ��ڡ���|���!�h��[���)��S����d����OA$���̭]SF��3�8)j�)���B,��rA�@S3�V��ud�H�D4kZc25�nHq�� Xc�[�D/S��p~�9�]e\č��k�h8�d.�g�1�#�d�λ�]�3hCP*AW��rIO�L]��R�|��5���8�B��<vMvz?�c���o���s��?�ς�)�1塭mR��]8��ך�X|S���IY�A�¾�]��CA�Ϧ�5���?�����6b��@��~hq�T�vD��Ϋ�Cq��I�Ŭ
h6�j���T,�����A~��3L���h,[
*�� I�CoK0�f���[pf�h;�§�Z`J	m]� �"!���J�|�o8���b_�T���|�D�ӠmdkY�3P���d^�h�V�M�'	�|��%��@9��eט�-��� �zv�i�T<�	V�A@W&Œ�,+^U��DZz@��_�
L�J��$(LO|˔�Z��(A=���D\uKn
�ʬ�\�R�3Jde�D?�7�Aՙ��!�A3 ��TP�Z��/U]vA�۞|a���U,)�	�a8��Cp�
!�Z��:P	`K���hl�R���$����%zƐ�h��J`�DQZ�k���t&ڠ�yb�l�*|�vT��(����;�q��%�]�1a���WW���+a���i��&^�F�	V��H�\��9�1�����7ڠ�l,s�XC�6@����p����*S�(:]�#賵�jT�e�0Z@ŵNa�{��pE�q��,�衟J���J�_��ۻ��#t5�MUzs�ڸd��
��#�V}a|�Wк�Z�5/!\�\M��hh�)
i~��ӿ�F4k:F�P��t��Њ���ܐ��I��6��ܶG!v����,,�m�X/��9��EM����+�M�=IF���aQrq�su�
1�t Έ��{1P���at)񙝻�ɢ�=p2�<�J�r��
�ī^uHI\(N�*~��
>8�3��n<s1E�kq@'(��U� 0j�sb�3
����Y�/Re^ݏt���XdMǤ��=Б��3�YLf͉m@��^�g�
�����i`����w���b��h���ܑM�p،��p\PS虛��<Z�Q'��K�WN[H�Ӡ!�K�D+�Cp!
�͚�8&��'θĔ]NC�4��mUs�4
�-��3�S�p��8����А����W^{�o��ߍ���z���Q���ͯ�1(�Z���m���EZ �
�T|���*��~�yEi��p�:�X˻pq��ZRa���l�B��G}��g;�����=��h�c�r���h]U�Y4���_~y�u��	�ojb}��R~z��g
�н����&%��4�6�Sj@��Nع�Y�̓Pd���P�$
�r!21�DH0*3��	�hT�u!k�3M�Hх��4�*=��8�������KՖ�`�gxs&]��I$�pT�WɒA�z�.�=���	7q�**
6���_@�eY�#�!�l��,0���q�}�&>/����<ɨet�.��F��S���v��~=���c���:�+iO��.-ب]ƀ�^L$���F�m\vY��]T�vL8j\�N����P2�G��n�Ԩ���q��V!K�ܘ&WL�Rx7�$Q,����L֗���ᛞu��1�B���V� ��1q�KSeqT��"�7�u"ג��V�18��@1yVv:��!	��z��<{�wh�Q1�G<1�'
$�7|�+��4�A��|��#"�B&�42hp�ʻ��H�,�E��&S�<��%�*�b�lP��Ê)��m�3�J`W�_̝B�8�
�گY_J=��[,Y�졖v\n[����K��ɋv1�J@�/݋+ͽ}Й~Md�T�D���2s��[
��cmi�W5^���!T��U����z�i�kiB0�	y�"u?�U:�W��W��m
�;���}�hM��z��>xD	q����Ǔ6��I�0��5&뙎�ܵi�����h���W�;���o�6z1�gPR�
P������[��B(tL}�Za�j�=Āɮ��F���.B<&P&߂��=�g��3�O%�{�G��"��p��S��ٲ�^تmFҐ=l��ăc:���@)���Mqn:�
���JpP9+�r1��G4�ku������
�זu���W�_]��V]��O1.��FDe��+!��hl�!n'`�-��hJhI�����}�14�'�9@[t�(|����h�S�%��e��p@�t�1d=��CbX�B
x�v@��孭U��].�o�G��+��v&�[���\(Y�Ջ�N�����j"ֈ���IC�x�=�s'����~���%�@�_��G����;���?��O����7n=���H���j}á��k�lg�U���?AL�'�jv�����f�ۖ��W^qR�q0��F�'El���
�D�{��]'E�ڈ�*$-��*���[�ď�j��Q>�L�tx���hI��3��T�ǽ{�:#&���l�L�\T#�r�_����(3	H��f��"!�(J���HH�����aN�5������So8 /���e!?�8�1��;�zd�����]";ҿ8��b��2v#�F�x�f�B�h�ZBp)(�,�i�^�a�t�b���ey"{�a�~���=����(R��<�|�j���8]�VS.�׏�U�]�+��s���8L0�M+ߦ`����aW`o�|X����=<K3=h�0)�SN� �U�qv@z4�h��иJ
�w��*3�"�Ф7^Ң��ꊄ����E�9��v���0�zDS_��Ni��*�]&�Cslt���c'��N�t��;� �Wd�m�%/C�
�9�u��X��u��h�l)�ԫ#;%2>��5��h��_zJ�"8�NS�Wڢ+�Ńi�� �����a�	���E��nKc�Ưk:ط"3�V�J���3��T4��!U�m���,U��^?�V� ݫs�t+���tZ'[+M٢�7¡��{	a�NJ�eȆ���!M�>#�I^��1�5�
����}e�L���bC�<@�Y��a@y	��$�@%3��V�����%��a�U�"M� ,l?@b(!I��Fa ��70�|u;^{q"7�Ns�m�U�SB�X�>]�|U5r����F�2�5�v��E��ԩՀF'�hRL�X91A5&q����׸�+����v[ڢ�sQ|�G����C�^��0b" ��3V�f�%�F�@�!ı)�CF�_�4ƴ
g٤\�x$�G34���Z3+8�C?Ϧ窯��Qr�1Y�����3:~��/!�Ց�:�f:5����Μ@MZ��ƏY�lF/z����ݺ�Q�}#��7aҺ�9��[L�{��2֧�$�9��c���H�H}��3�����($A��x��:d���>0���!�¤�j�{�e�4�>D�p=EѽXK!d�M����_oŐ�>0L��V�0��Z���D��=�!�fW59�fP��_5�:���X̂=�N�=S(}3���K��g�.�	�D�];��������o~������_���_��O����[?�A�=��G
��&[��X��O4��E_o߾mH��+m�V��ꌺ�m@�rw�͛7�w�{�j@�"��+��~�k׮U�W�R]�+�A���WyېE��6��
t�,Bϥ��fڠ�^x3m�g�K%�/QBn�;w�'b�mh��M���D�Q8
��z��h�{3$Z�S�&@B"�#�8Cb#��J^�?.�M�Y<�d��P�`���D��}�PMp�_��S@�6Ҁ�y�Z/�a��DZr"m6(&DX��3�П�"�%��s8�΋˷�YR{ۤJ&1���x~�tG�ڌ�+�3c��8�|�]��p���%uVh�У��1w|pZb�=B�|6"e��!��	+6JW{%��MJ����AY:��z�rj`:����njЙ`��$��<ۑ����h�����r%�@:�3�	F|�I
*�	�����h_e>eA	������
ڇcTD��qC:�����v���+��*!��+�N
�iK�ڦX])!����e}Ft	��;�8=�=�t�!����9��S���ɻZ\�4=ϻ�t�K1So��[����z�
z�1&_=3�`G����DHA��T�f_-:@�
���N��KսaPXm�
�.G�X%,��+�%��%��c���~]й_��k��]Nb��z��Á�9�;����R4�uU�p�x
�*~P�ע��4��կ�Л�Xͫ$bjo������W
e�f���
��	N`fRi��X���M8��:��8,�~5q��>i)'F|�0Gٶ4�Fu[��bW�gJ��@��}�,n�&��%~��XV�+�B������B��ϰl�e���(QTΠ��֦ŚV�!�3z*CA���J�0e�
 ���2}E��U�1(��
C�@;zy�Yf�l{��!q�0ڪ�K�[M�W�<&�E�=��Vb|�Ѧf�|"�A����N�e�y	�Mh0M.�r����Ͷ��=?ѻF�ƒ7h�Q��W‚��L��C�ݳ,����F���;�:�ڶ�U��Io$F̼�7a �J%�� XNM�\>�f�V��^~` KωtQ�I5S(-*d�4�L���+�f6]��~���%�����_��������o���g?C�������x�m�9�Dώb��)}�ƍ�h/�-Oh�����^�\6���
�Hp��z��PUd<u�ůu2��<�[=��[�뭷$!�F�'`�_�fe�Wa
�F�?�����?�����]Q5�h1���P>��C����w�ygJp�D4��U�����b�$F)-,8�(��!�6�x]�-�/ra�P���M"A��"�0\\"�k�|u�4vIi�^{}�
��1�2���� �PO�'��F���3!�3�R�� Rr���m4������5M6"�0S-
�v�m:(g������� 9?m�B���q�t@E��v�9�����Ar�F@�
��f��y�xEnP��-��:�z���ij����?"C�U�C��d�tU�cPZ�RO�5����ն�K�$��'"Y(�IWe��?Q����+��o��鮒,�KH��%V��9=?�3 s�v�b;�𾥶gJ���ywUeq�ߝ�qp�P��E,PqA�

��"b�PBB�A"]Qi�`[E�cu-�������θ�:�$���z����3�L!�L&�~��~�=���;�\ ��*�Z�j�_Fx�����)�-Q4Xjg$�^���h��NJC��;��X4�O�(���z�����d�:M��N�7�d���0R�#v�d,�C�@��5 GM#Y"��C8
@�wFySDx���(��!l+�*�px$H�=ԡ�(.�,rBJ�����D-N�:`M�PH#U�C��.tQ�ve:���N��w4�HCi�	s�G¶@?��Y�RU�xt&"��� Ҡ9@�Ŧ�{��龪�B�֢�f.��*rqUh�_���-%�
�Y*1�� Җ�׈��13@�V�"�,�1�f2�XF��D��MD?�(��a�!.� ����쌹/
A��b2*ҷԎdQ4y�
4�	Ќ���e�ED�0^4�w\�!1d$�~3dEvVt4I��������D�|��O�B[P/L� ��B�=&�G�x�G�Ȫ�d��Lcy馦������4���x2��J���Q��9��P��:�v��#h�Gp�EB��uy��5k@��FJAc[&)�0��DQb������!#iA�@YR�%"� ��KF�U2%(�xA�H�a"b����pI�	fL��EQ�v��)-x��+�VP'@t�4�H:\�:���%fL�Az�p%,\%�zˢ�=�k�"�Fœ�
�L�B�Q���@+\�)|J�p`�(����	SC�b��6\6���K�B8H����O��&d�&rLZ��֜���v�а�b�)
y�e�3Å�7� ��b��:PH#�0���@���6L�/�}���ɔ�k�@i:&a.S�������4���vȅ�כ��W�zk���!�4�. ����)���-��P2��hyS�A��g����8!*t�*���v*4�����h'�rp9�E�f����NY��a|������A�o?�����]�1����w�ϿƕN�_�\��$�_�~س`le�1ZSK��Μ!�q4-R��:N�$��a��#�B��`�VEA��S#�#"l0+��J���v��C1���Y��aų���b�>P|	�EC�v�$������>V�0e�V��q�r�w�4�T��i	c%7T7K�V2��,��A,t��A�k�(Z�"��@֗:']�93�I��1,�(�����2`4rʰ��;wz�l����Z�ږO���T�]ŤF�t8!m`�N˅�R����G$@*(�m�ƴ�W�JS���l�G)�n�R���R�J�f�O.H���2��ʲXrh,��e1Ͳ�(Z���a�l�Ƅ�*_�M9�$
�$!.�hXI��?a
��u�5J/nrq��1�$��S䲼	��F�E��@*�Z�
	����>�V-ك�b4ݗ,�k��ؠ���O�,H8�����A�NC)�"�����I*$�H/�'�'
Y#U�񔒹N.
��!���F��E��(T���SgIg���-1�,��/	[imx�%��P�Z䟍����5 &o
CA	z*�SH5B�
���g�)4m���E��I`h��/��4I�DT.�TdOú�R/&��,[M2R����� �
�QZP[ʺI1�ke�D�
�*A���8����v�� ��Q/w(�]��h�S�i��D�jR�Ј|���y?�IGa���o+7�0mQ85\v����f\P����Ah��X"����R2\$�%	��B���07�)�n'7��-���`
�Vb��U�"�/6��`L̬'4ICD��7���Ѕ�2M���r@�f���	��3�e�dJl�P������X����Z*�#�;t��4��rS

. ia�Hf���G��7hIfQ��U�kj�Z�J*H��D��1��6;(��_�Q�	���#8N�ʫ��H�xAR�a�H�J�!I3��XP-��;aΚqG�k�C��Nʠ�XjA
�^E�0��i�CZ��Y\8��Wi�z�Ih�Mmڠ;��2�������rKR��A��[
.yM��)���^��gp�(>�~�֛r���}H�x�v�NO)��m�J;��C��V�"k'��Բ{
/PdTiR��Ѱ8Q���D#)_�M-k�@&��ƈ�*A��(�c�'�+�e�,�
mS�j튨0�+	������|���j��NN�����.��&�F�3�̜=����MZ��0iŚ����<����_�d���;�ٵi�t�oѶCæ��%���A�����o��A;�d����P�`�TTJ�+\�-1��o�FGo^Gc��x���U�Z�PDƒ�ys�[��±=�!�G%񽰜\Ȣ3��+56
ot
�9:��,^��Ȳp����rH��b�ÞA1��#xY����`��t��X�4�2�@�b���Y`P;`
^<rQ�;�D�&@��(X]4��:Ț0/,{0A���L����$�M�Ǒ�pbKSlQW��#�=\�#e�e��fwW6�=�ۀx`J�EM*a�G�Ia��’C`�I�?�g�v
��"<�\��H	��U�����hvD$+�mi
��7v�xc�����bɁO�bNnR	��U<��)��X���Q)��(U���	F��ٝh���8<2�LcY‰��,��D�H�)JVcjlQ��5sQb���%@�`k�@X
�����	U����x��%*����0���GVN�J�c��bL#�Q��4<����S^���c@��A^�~Ѥ�u�����7��wTM�O$�rw�w��#zo�slCeF%f�)x��
~ၮ�����bR�f܉�
1C�+v���+�
�
&���`���P5@;9���82�y��+�yc��2����L^����ȱ�I�r���}q��Q5j��ڥ[�O�%x򩧫�I�_�\��@cT�2�]��_�_3+$6�,��}1/c9E�O��]0*��X��@�:aM�…�yy�F`������]_�hU�R]��z�P�3Ip+��\௄Ƿ�H��@�e� �ˠ��_D|خ��2�ex
�.O�b�h�a222��h�S�"y��;Ѡ�� D�Ed/1Z����Gԑ[vbx�F�p@ ��ʘH;2ϼCh�;%����2�d�G"�#��I�[0ƒ!�*rT�M���D�ǤN�T>)��p>d1�FB��Y�`�8��H�4�%�� ����4�l������0:�4ҋeDm݈/��pb���jk��ѺS�+v
�ZY%�9�T&�zZ�I��I���q��/D�x���SيMXN��G1��o�թM���9�m�8�9�<��,�Z�3*�I��ݐ5��p�����ޫf݆���D�Y����Ϧ�!|�%�O|���K�v+�d�G��X1KoE�W�u1�TayUW�W���I�5
D��HIĉ�r�G���'��ؔ�2cM��@�P�l�?=B�W�d�Ӂ,�>��^QIe7��fuNB���5�y+�J�>6�&}UJ����O
̄�
�ty$�jͼ��F��i'n�,���bS�hډ��B���^�ؤ�`�SRI@-g�$
'�!_��]p����E�
� ��E���c��@�����J#I��q�ӱBgU^�bLy'�[.��XD��@'ST\tb�3M
��-���C,My@Tqx�6�o@uzDyY�Ú��zF� ��L��vr:Fb@c��qv� �6��_5�H,���x�\@��K��3ɚ�l��c�����;�f̬�R�GB{q�4dx˶�v�q��ٹ��\|y��<�i-�\v�U����͛2l��g��d�y���{��7<�M����i�3:��!+�	'Sr�������O�4��면�݉
rc�ئ��U�����;y݌�Y���^�o�z�_��2��!+��y�c�O�Q0(sx���k�oL3(�JO;��a#��Q0{lvN�^����S��Okq���fO��m�ޱf�F<r:
�v*{$-#*kt��1�Wp<Qg�i�-0��IZv������~b�slr*��χ��O	F��Ѣ^����'�=+$��eJ!�5:���&VJ:-q2���5ұJac�E2�i���W��<��-F�g�����?��89��T�Bp����� �A�X
�~�6�k��Ԧ��|��>��;v|��GO�>c��=O=�,��\�����#��ٽ��u��ܹK ͽ+V��VN�}�eW�'�x㭷����~��g���<w�m;�i`){��4��A����s03=ڳw�K�5lҒVu�q6Ɏ�v�h�[�u8�{�>o�F�Fػr���*)u��ŝ
_Uz�R_�ē`д��ɩ�^�i�_X30��̩�ڤf�Fi��ܺ�N�d]x�ͷ�~~��:
���v�bR|��%��3JR��h�S9�X��~,Q��'�6�)��]��ʔ1�@��F0�{���S	��<��Uz���/!���{���A+��5�4~"�s��򀞖?�f-]vw�v����.�R�z�O�u�=N�����/���{Ǣ%���ɛ}��W��}?��������m���?|�-��c��d��������_��o��ڤ%'+n��#�~��'��-Y�A[;w�8x���jS>k/��P��w
�f��ͤ���ƌϹs�R�ؿ?s����V�>��}��
4c��U_�߽{�N��_�Z��}.�_{v�I����4�wS׉5N�4e�����9�n͞8�����F��+��Jg0�v���@�Ir���h��$���vr��vJ"9��tƀVh�Qܶ�.����x� �ё���0.�l�����}��M�w�jȰ��X��n�x��yr^�V�����s�
q�&��@dΕ�@�tۓ5.�G$ ��[��|��18A���;5f�*5�z|�N]7m�̢j����gf��e��@��N�V�^���?A]D�P��;	p���qn��_>�Z-€�(klv�v�v���=�W��`��k�2���~���g�]�J�Z�/������_���f�\S>�w�*)��K��v{������8{�z��*���O���3G�T���@r�h���N@;Uxr��h''���vr*?!82b�:�qznj)3fyà�X�Z��8���9>�}���o�һ��CG���w�ms�iDF�^���'�M�Z��#(g���t߶���!�E۾���m��\�&�Ŭ�����6oӞMx%߷��xg��M������pR�Դ�gv�F\�)�o�=w�/�DF">7�.�����s��U��Ͻz�5�%��g~>xpނ��S���mԬ^�fD�uc�z�A������o$X�y$�U�S�>�セ��K8t��%S�o&���o��(ٹyxy;��!��vڹ���S�'���vrr��h'�c-����y�߰�+��:�ك�A߻���z�&��b@��W��q�	0�[?�$Y��w���o� 1��a�`d���C��/�
�I؍6�t�{i?:���/7n�Z
&�i��y�=ˉ.�6����{����7��;�V�ew�K]$fdiî];�S�&h�/��g�R�nCJVNk�v��T��*�fc�v
�&.����î��d�׬M�UӦʹ�ߕ�p�V�)��2n��H9�q!"qa�>Bs�;��!��vڹ���S�'���vrr��h'��@�".���w�OU�q��i�\ADE̥Aw�J͍@E/� ྀB���V�2��֔K%:�F�9�L��6�:�N*=��M��h�z��g��9ܳ���r��_>/"5l|��f�A�3��c��5��f�ی:X�h��Q���q��ѣ�@���|���o،��iR�>���e-��?w�<.���'�7�_g�@��h�J[�i�����1��ĩ~#�CBG����
B^[b'߽{��g���m�.V4zj�t��Gv.�T4#���$�:<2: (d��U,�^�t�U@GDY��M[!d�u�b��0��v�5� a�w���^�\T\D�4ۤ�<�F�bګ{Oe@K@	h	h	h!-����BZH@a����B(GZ�)|�n��l��h�0�'$O��9nJJӖ��O�֬�J�2-;u�L�N]�t���إ�G�-{ˈ|���vj�m�N�{� !N���`�#��ԩ3�s���R3u��h��&ׂrcV�)ˀ&܃��	ߪQL�F��9������t�#u\���~�ݷ�*�����O��}q��6}�:�)�e<U@���ˍ�Voܼ�
�ޠ	P[}�…��X�cyy�0 a�ZN�0,ahx$�!}�}xw	h	�	h	h	h�e!-	h!-������T@#O�����j���H�\�Ѷ��&�
ܡ+A�L?��tuo��6m�A9�W�rjȖyP�^�v�e?�AF3!C�㞽�#�b2���
�˸�(l���߯]��ϝ���o�;d�ѫ/Jtڌ�ܿRten��1ak׭'s��R�~O�O��M�rxD��=���l��
�#�iXtLE�ş,�Y�e����_G�/ͩ@@ר�2�w8,Y~æ-�1�9+V�����ȾϞ��4׾Ys�ED�[��Ν?i�P�u]�$�%�K$�%�%�u���px$����BZ�*RM�s���de�a
z^�bu�~���媤y~>YI%r�AC���A��2(�u%��.��uB9����?;Ɓ�E@�bu�tF�Uq���/�Tp�u��ҥ�(��.n�Z�j���5ܜ�,�*3m�lli��vﱮu��5�)i2��r�\3���E���Y�67o�nNpJ�L,�YQ۹���e+>7��jK�$^ٽw͸��i3/Z����ޢ��kJ�W�]�nZ�"\��ٔ#hN�m8P�����5y�����#=������g����D&.���eQ���̍���gf~��œ���A�{"s��B���->݉�O�7_>�P��$^I�|��k׽�6�A7SQy̍�Q�J/�B�'|��W���
��y����g��sV���B}���Ԏv��M�e���3�^�{Q�<zl#��!9a���s�S�:n|sO��*�U���������:�7��!�\�)����i���MJ��85u�P�z�n̥��mǮ��g�K�OHbSԆO��J(3k��Տ�}XF�٨��b)�NJ�><0��W��I�
e�MHJ��=�Xv����,5ڬȏq��ffa�	zfI�jY#�%�$84<!1%u���6�e6���~��E*l�b(���2*����Ǐ�|Z�9yyyP�Yf�'t�E�\�*��_�񋠮.�܅�$��ӈ�'O�d�i!*W���|)	��W�|�Er��=�f�3��V��T<덕��
��O���Ͱg�*�����
2��������e(��L�F�z
�m�X�w�6`������_‡���]�msvu'���i�x��u���_C�0��QX�g���F���]�ޙRe�5�hf��Zl�g ֹzmĴ����ԧ��i��8d?S����i'Uج�2�"��������L����f��$�v��uZK�i�����B�o��<%�a ���c�'���5,:��0���c(-��y���pUL�����$�R7S񲯄B�-ƛ٫��u�qG��:k~��Hώ���ʛ�4���>�?($#�+�er��_��i�#A̺.�{�?�FCwӌ�nܑ#8���Ҍ!�B!�B!Ŀ`��f��a�ޥ��g�f0�_����w�ۖ�K�21Y��DŽ�UL@�Eח�B!�B!����ƛa�^+m��
Ҋ��5���u]H��p.����	l��J
h���B!�B!����ƛ1��k%�����vxg���B!�B!��/$�CZ	h!�B!����;�� �a ��f����?.^~�Wt>�?�!@�
�l�vm4�0Z������M���	�4ThBh4�.�M����
h�&@���hh3��|�m4�c�M�0�N����	R$bcamc�D66�I�)�C��������	�4�����h�#�h�@���g���h�]@�-@��~@�&@����0�^pD��Q%y)d�
td�>���ݵ�Pԍm4���	�I^�øn���%+j
�h8�;ӟ(�8��M��,�.���#*�� G9EA.��V,Q�K��DQえx���h�(o+h�"�R��cWDI���'O&3����w���v@OD@�daGG�h��o~����D݉S�M,�%�&P���od:|��jK�?]�’��2=����\:�e14!�B!�B!���Vibl1���|E�Ѳ򚆲�zlW����N��I�ŲwC][�����Ɍ�bka��C����n˳]�acH��,��&�B!�B!�z�ӧO�
h{G�q	hh���b�Z��go�>C=�V�)��a^p���p���>�[p�(��0�vg�]#dLk�D�����>�tw��d���7��jj�Z	�My_LM!�B!�B�d	hԙH4D��/�����' x�׬�B��9<r"2Tu��\<�,��؄-X��w,.U�[�i�AF���y���UI v7�8��C���/UTHd&*i>Z͑�oMM!�B!�B�G#8��
Qkln��?���������F�h�蒙��&*�Y共�h�]{�EDɌ�13_)]�!�����{��A+�q�������CnKJ����f�<���A�܂YfT��8���ت9������t�5q	ĺp
M,p8<i�:sP?i�I��_��&�B!�B!���4l6�h�\w�oaI:�K*j�\\^�2�l���<TPY`w�_Aq9:�1�ܖ��I@�����hkS��y@ԁ��9��Wx�| U+qp^��35&~� ��5���M�ڨX,w�����]%e�Դto?��Д�4Oo?����/0����G�҃BW{����<X\Z��w;;�	���v�-ے�
RTR�������e�z!4!�B!�B!Г�B�X	���g�7���}W��#�gHj�"E5�8N����L��'v#*���6��J@�i���^��~�'hb�K��yZ.�ZX�ia��"���0#���Ν�_����BM�����ه>�9;nS"����߿l��㦽�R�f+�EM��of1=���wѣ"J��e��&�B!�B!�zr2�!���l�i8	����%pС����>h��$�Ѳ���p!z\Z]�/�������J����:���H+��x�M͗����q�w��Jh8����;���x��n������ t�}��i�oފ������g�""���|���R�g_�YZ{22Q�֭N��`�aum=+�)�	!�B!�B���� y���B��0� �'`�ϰ���"2Ƙ�%B�ͳ��s��[��뤮G��R*3�����1��|��%��6�A�J���ݽfh��Z$o<��“�"�7%�|9�k�"'י��3g�B=�5�x������xM��N�F���WG�m��P:�-34!�B!�B!УFp�/Z��_Bb҇Z�-��sp��-DF�*�c�o
+{���?�����-��@��76�lni�-i�-)+�OCSl5u
N�9���?���߄�Y�3X���fh�D�&�Cgwv��9��>h3K[Tc44!�B!�B!�c���@����|9��D�r��%��x�������ڊ4瓍���a�`����Q#8����_~+���LMó�/�2Ђ-��7��|���u��b�_[SG?&~soo��sD���:��mϞ=�iH��z�ZHX����ЄB!�����TU�q��EW��\�"��WL2�	/NE��2��vS����Cg���/|)���F��l�����\_�z��c7�X������.��{�9��^{� ��p�e�+&]����p��_sU�J��ڏ���%~�ͷAVkX�6��V��E�ƍ��
�3����o+�o);~�ŵ���Z�Ku*�[�G7�/�.���7�Ns����h\q�����a��C�0�Z�p�y��S����w5���>���Z8�h��'���n�9Qm�AkM”���N8�E���m�Pd�M	��<ch-N�>}�DWWWdL��o��� k��7.
ч����׻k�^%ź��y�?����9��p@���o~p^Aa�����V�g�]��ߵ�h�������A34@=�h�!ˢ�ˌ1���_����o�
\4ռ2k[�h��&�q{�zSf�hj���簨�����ֶ��c�k����<44�xZ��J��OV�u���|��ѡ�g}W!�@���_SX\�ج?�Us��
n�yW�}�������s0���M^����_0R3��A34@=��KqrȲ�E�՗�9V԰�c3r����N���g�X8�	h˦�l%�w�~��
'�\�
3TĬnh]�B����'k<e=���F�#hI�Φ�*>z�����������
���yGt�{EЧ�V��>����x��s׃n}��,����?i�i<h����^�%j���|�L
@O�����Л��*_�2���O��`�?2v۽Ϟ��j�Z�5<J��`4X?d
{!95>!I��`q��0V<�����'��	�[s�f�	IZ{0)Ŧ�>O.T#�v���/����]�\�v}C�������&sH�Sɩi��1��š)�
1��e�U�&����O�c������~S���Yk^�Y�5��Zj�˧���t;��f羦�狵�+*���)~�T�cS�3(̝κ|J~5��lw��P'�����:X�Ȫ����ƢݽG���n��иt�Ѳ%�QO�\]v��"������nf�`�^u#�]ML�[�i��y�J���6��~KoX{� ��\���j(��=���W%�Qb�O�m3'�4�.�7J3�G�V <^~�k��-.@�3eB�����V��3?�Ԑ�o@PƖ�ʪ�u
�ZN�L�������]>&����z�Ў9����h�F���z��hm�rE�#-�.
@Џ����i�����h�	��G3M-24�;;w��`�q�_Q�A�Rʓ�l�X��Y
-�\���PN�$���@�B�r0��djnv�?l��׫����� @��6�M��@�Nľ��
�z���޴������h�pܾ62�w����J�:��'�۹�5h3 Տ�h�|d�2�^JZG��(-\L��V�����=8	�&@l��)1u2��{��][���^���]@�
����Ӊ|9���
K�+�Ӆݳjؿ�pm4@,�<��ݲ�f�o��z�n��h�h�h�h�?��;*�;����}ϾYc��AE�[@0�F׼n��Q7*J��!QQPTT�� ��0�2À��
��X����y�3��E7z��n������z�^���璀&=I4倦B� � � � �4��B*$�I@�?zz{�%�����"$� � � ��{-+�H@S
*|�����?�x��_Phęsi��]]]�"�>�����q��'o{�G�%z�
��?�Pέ�h�>}z.-#,�kL��̬ή.�/�7�ϔ������^~B� � � � ~���1�jyd%�cT劯+����JG̋�#��;�VU�i�+�*I@O�h3��$������d�-�i�PבQR�WQW���1����=����H|�y�T5�fiN�U7�321�����n��5�6�i�����̔WQQ���5��ܭ������Xcs.�������gf��|J�����(f��L�굉\���Q%��I�ݽ����4�
���
"$� � � �+���G����|J�p�K��V�D��Ǣ�#����E���8f�k�R�P�!�id%�M���e�YE�r@S!=y4��G�!�gk�+�4]Va�����i2�J�Z��jv�����أ3�Upi���L�Ys�*�M�QTV�F��oH[�>h�ԖSQ�8��9
]#M�9Sf��)��%.�oh������rʘ�Éc�OfCCc"�p4>A�9��c_N���U���?�&��jbx��[��ܾ�/k�2�YB� � � � ~�J���J�2u�m�+�>Ls��S�֮B�R�����_X���He�eS��/Kww�����%v!<�`�]p�����qEN�4E@S!=I4�������-l`isr�/de�q�Ď�DZYu�7IpsK+���!���؅,|~UVv���;D3*gk�U_�!���
����e�K؜R�oj����N�no�ZMmV������-�b�����_�˜X�������ŸB|�q�ul�X�����ӟ�^���B� � � � >0���~e�n�5y�_m�E��[r���B+��e��c�����@�銯Q��*K�0NEW��͒��C�5��~%��
���N+m��w_o�\�$��-cW�<O�|O��ɺ��q�Z����t�Q�)���C0��D`��╈�t��8qv�|�B�'lD�;�\EGq/\���[A�r@S!�C��b=��z-ll��Mq0&��VUˠ����@
�f��x.�-�������J�7�ϐS�>N��.����kd��R�C�gdN�QªV��/���l�M���F^�]�RΜ�����p��K�==ee\g7�r*��׬/)-�^0ڵ��H-��⸭٥��G�sSKz!IHj���gR��x����>s�R^>~ŝ��2=�����3Y�e����ݓ})/84�Ij�n���������NKN%�w��V|��������=AAA�K	h���A\#�☼�7��WG�u�-�W�,�biH�!�����C�,	��s��WH5�0���pqEk�}K�R�V!1�҂f��wf��042.|���O�1�v\�{F$�3�e��z�-|8���E�"|��6���}����ѕK��H߁E"}��_	�_ca����8���٢ .n�,��a���-�؋�e8�v\VaPf�[���Ӊ54	�h
I��^�R��j"+�8οR����㟯� ?K��O���.�MM��j�埍�������K�����7�ttt�ϒL�l�ĖCCC,Ni��B�-��qǒ���W�u����C2QSK��u���?GEM�\�h� �RE���y>�"��������UW����-<�^чba�?�������5�zxs��9�-a�T��Qv�z�����V�0n,b��Z<.!	yH�̔������𷭳�u�է�T�ʕT��z{�!,������s�����|`�_��U}'��GAAA?K@C�"��c�_0�.	���Y>�g9�8�}>�1檱�—����ȵ���z΅�?k�Wj��F�h��Fdp���,,���wa�1,|Xf^,}碹,I^i���F�
�B1�emV�L�=�Ro���&��i��l�S�8>���^0�d���FCd4d�Cx���-�"c�b_��'Sww�|�;��}�X	��S�|�UDy�2��E	�Cx��q0��7[ǩP߹�̛mP
��D$�.\��
\��܊mCx�#$��k1N-1�W1r�`_�a<G�)
]���o���7����T&��>������j�ľ���_ �����g������S?Q��Z?���55в·`nm���X/��ʾ�����q�9@�-�ᆄGݼuA�ok�� ⲱ,95{Ǖ��оx6a��N��Ŝ\M=#
]C,[2���=c���Z��CP�th�w�����.�/1J4����k�bF#s�b.;UF)5�PLm]��X.Ɋ�W���"������r���"۸e�fD���&��o���J%UM�b��	
�f�x�'2�G���Ф��Q���yHB���/�AAA�4b�
]��8�	�.��֜�볔��j��ϯ~\q�k�᫺Ό����ɵ�܇�>+��u ��\w�|Ofqݷ�٭vA�/�X"�8�$��%���ԓ3�aѥ�������&���l�K�����b�����۔��~����ʌM�G/7���N�����6��uU
��[���Zp�xs���]�k2+�o�am����.�f"w��;��A
��5��}�ۛ�s�������7rc.
�$5U7#�HOTV�WJm��Ǯɵ��Ű�x�Y-�����$��>��!�P�k��Y��;����Ȭ_"2��}}����I;���F��[�~3�AS��:(4�����[�\����vX��"36���Y�q�`0r_�/��H\=#g4�0>W��~9„�k���C��4�� /��8�4�f@oؼ-0(45-7db��{Z�����	I�]��]]ݘ�s�%-��x�kk�|���*#�y��7jj��
��ں��
�gd��녶�r���cd�Ac���A�G@�]`��E�`Ω�s�o� ����AYM{\�i�8�y90��,Mc��'�p�~ͺM�c�o'�іČ�6��kT�(===�� �&���'�02:v��=�8�����2w����Q����OIL���AAA�ό��{�VE�$�%:��\עi���=9��x��}a�%�4���'Ha�"T��s�;���
>�=���W���*��7�z1(�-}��Cc8�i��c#s�(S3�w$�܇���pht\0<��H��|�а,5�`"t��;^)7�y��Aw���J���)8�0Ζ���
�F���r_�B@?�u|�j`d}q��7�YWy�eK_���P���D�9@b�g�-��(^{���F�E������J��VFr;��P�b��x�-O_,(��%��#������h�'�y���R/�e]JI�ܰ��H�?x�Je2
�M_n�a�Y"��]�<�|sYeU�\���r�HRg��j1>�t�ƃ���(`I
8hDO#%4l���9�y�wR�`�3���DP�ȭ��Jl���,�_
������'v߸y���A�y�G��o@vO�Q\���0�wh{4>Q�,�rjH���E���c�v�lEU��Xi����jlG*��$��T744I����Ø#�t��v�� |� �JJ.��P�
�W��O:9Wk�[���{xd��N��퉱ɍ�<������m~�Wss����^4�v��W{�m�;:�"Ds����^i��xXb�����I]���%�wtaI�[�GG��h|����r�p��=���~��[s����� � ��������㭷ޛ5oM&��I&EI�+�$1��%v�� 
"�(����H�K���қTEDAQ46Dc��s��\�8�ę��Z���:g�}���x���w�?))))))��
���7jcgE�Uq�Ն{��Z��������CW/ߺWs��:�������n�v)g�'�|'�ď��{$���JEfE����c��^��C|Н��N9�#�y��T�ŴÂ���.OY�1�&�ScEWse'3��_�@����HZ�]�r�!-�lS�•���6�.�>��*%u|��z�>���Y&]��B����C�U_nˬ�z�C��,��}���+wg8g��]"+��u���F���`?2�R�U�a�9!ԟ,�F�^b���SS�j<z<�5o�}�Tg	���Ay�W��o���p$�/(�-8<z��W�~�_��0o⠔1�@���&+a�,{���*�]n��|9p�h�ڃ�V�zA���kۦH'�5�.�O>pg8�;�L��:�|����]����}��CG�b�"�b��3��X��*K������H��&��@[�y@�+�7x8�{ڌٸ��!�fUUg�ݮ^�&��}#�K���!#�V_�i;����u]��w�'-\��z��h��`����_gM(�$��ݾ�un>����ߦ�_��)Y����_��c��SZ..���x �m��Wpbڭ�;.����{2Cm>p$�B���w�ŧ�>����{�6�8
���oL���C�n��@�H�t�}v�F���5wٟw��Fu^	�2��n?��A�+��HIIIIIIIIIIII�K�y�S^���ɣ�R�N�߸�j{�D���>V��&�C�S��Kh�2tL?_��e��NCϚ�fh5ʄ`p8�N3�^�r_k:��=�J�{��_����>^�0as6�R��y�}�G;q�H�Ta"�
�ޒ3vc&��=,���2��+꺘&�9?��q�H�X�;������bȚ�k��"��������^+�Pr���tv��䪽q��M�S6;XD��G���Z#Z��N�ګ�Z���j��k�e�Ñ2N�W��R�p�$�'/6.pc��nf��L��Lt̙���#8�y,��#8�5���z$��O�)_~Ա�+���c2g�=ؕ��o#82/��|����յ|Wg*��CB�m6��|i�4��~ٙ�0=#������v�-�'�,n��É�z�OU���:�sX3���Y<g��9ڋ���:��[�^!�������'[�M<�/��r�)$���L���[�9�o��r�Ӎv�
�H���w��Jֹ����c'xzy76�~�t�:{�vOB0ʪ�'f���{ BA������%���*>i���y���S.>V;�<B�3��.����7:��ËC���J��֞a�/��p��w$��/�^�}�x0R	���T88����a��#D�^r��:��h�M�A���`���ޜ�;�߾[y���C�KO�c�h����DJJJJJJJJJJJJ�������[��x��c��.�63K����h�Ņ��EH���;��W�\�2
��)[3��9sӀ�
��.��A�)c2���)nw�I�D�AC���8���Fo��i��ǒ��JQ��`R�ۋb����úH�E{�;%��.-�n���~��w�wH@��n�|���p<��q��}:�vԸ���<fٴ�_�~oQ���gC�';�74��ԕ�{T�&��]���^����m8����!��������f�^�W�K@��Ϳt�ܖ>c�	
��w��ЙA�g�@����F���G�����
������dR#�9�vy�̙�r��O�c��|}�eE���|���ߊD���f���a��,^���+6G'6���
�4�kx�j�
G��x�֭����m4�������{�%�~P���:��7 �[�B<|$Z���������z�򵧘8Ba�x���SH��7��槃��a&�C;ףG;�#qR�b���ؔ����+���:W}��Ʃq:ÔY!���1w�[�U��"KW����+7n—�K�)���\~�Ff��p�[u��))))))))))))�v���S���m��1c�{��5�V$�wߜ�3�BM��v���_h�H8KHť��߉���\�����vO�bgCp��f�d~�;�r[�)J�m
;�5�|�w�0�ԉ[r�@���קRr��e�G+4���	�uaʃ�i��[�+L�J(f�F7����K㈍���]�e֎쯝��ڊ��PT��:3 �����������]W&-�@c�.�n`�K��+�1#o-8J�CZ�1���c@�SD���m�CO�8N�E�F�倉S���%D]Oٚ5�6���@��W��*�_��ph�p���q��2�s*����7�[�aq'�N�چo:�����<�+|�z0�DXVY��<tg��B35ڞe�Yh���q�ЕUgy�s�܊����v>��x�	��&�,/��x�3���{L�1�C
�[�w޷��s�j\�c�O�ǑGc~�* ���.Yn|��g�{�;���ɬ���t��t�V."�ل~҉�g���պ�������<1���s�����ݻw������mE���)��3�ȃ!������������
��ŀ�i)�Edd��{�ē���?j�G��ç�_�R��Җbo���PO��c_���1)���*�D'Ӓ�y�D�ku�h�|g3g���b�U��U�kD��r!}�"��Z��ЮQ��G�
���3���))))))))))))����)o�]�K����)�-����Su4n-��-e4~��}�s����V*���%q�7���h�� ���)[2�]K��Z$2�N��3�gN��$�©[�Z�⹆}��1�!����h��$L�2�3QˇT�i����Re�]"�.Ma�N�tpZ
-3��L�����J"�
��j	��T
Y���<��C�P�ay\H�v���b=>\��j�=Z�坌Dq���U(��b�[�MQ���`��.&	ő$<Zs���C��:I}�_��3
3���-tP�QG�`�W��f�xL 0�S[�Ȉ��o5�Ӿ@��D8��X�X>�ѧ]	@�Խ�H��ڛ�ָ�}�e����k�6�@��A�g��@�mX�]���1Ľ���+H1���[688B`a������˧q��)^ns�r�[�O�
Z�ݳX�Nw�`�¥�+(bLZ�9'*��N�IM���I�~^z��z����K^ԕ��w�6��w��0�R���Š�u�П͞����,<���f����F:D>{�w�xta��#����y�
�M��k-]A�3��ԯf��[�޾}���p�@g��Q8q˶�Q�\%Fc�T:e
s�ܹ�@����D6���’2��3���tK-8N�3d�/Z��q��ܸ��/�D3{�&PNP��;���������xe@9J���J�@����"�U�"$߃�	�}T��7 
b����]|LjNBƱ��j�HIIIIIIIIIIII�CM��z�c�Ģ�����*��
�����\+��R0PDp|�%�"�w�d]�E��#��eJ��I+���^�g�^P}���I�X��f�� �7��iy����ƞ��=
��.�(��qUo/8jx��C�s-Ma���h�����-}J�poݹ?qSZoЭ�o6��J�.��*��YO��?/���#���o@ޯַ�/����� ]�9$F���Ws诹�{UR����=mKH]̸�p�k�@��"��l��#1�������o�h���P���x�3f��8���OH�U:y��t�����np	KP(y�-^n,�8?�,7�����uW�*e�����ԯfz�KH��Oܳo�����k��	r{Ш��lמ���8�Ɏ�U�)���s�׳x+t��Z�
�uk�Pӳc�t�f�|�� �)/fdљ�s�"���g�M擁�::�@��\w���=yo
��x��X�?��nI`P�҈#��x��x���x����@�H
ݢc��7ma�o�
f��1}�x���k�~�,�}�47ӎgyبq���$J��!��4��h�OTЇF�\��eF�)����Z�����0/����R�|��M�y��z755�&�s��������_P�.?{�����5���|]����	�M�?��씞9������gZ|�U@��x�X�a�Ua��U;TT_�R{�>�L�Ⱦ�.�����g@�O�����������������?�!��j�1���k{ys��]�g��Z&����o'q�K����}-՟�)�?�]kX�qE☍�=,�'lJ+�۶���v�����).Ǧ�f����̔���a@n�>�b^�j���)��'�|c�(����C3/Ҳpϱ~�U�'���R]s돏0_OpHh�4���U�
�o3���'��d���,�|'�7?����3�-�n�֔=c��>}s���S�����t�\j�Z�¦��K�o�]{
�^�x$��/h��"ł��x3'~1���Z�"<ҙ%/^�4�˙�D��ЖQ2�V��KNQ��ĩ��x�i����j�=�i�\�7��jc��=An��ed�:��Z�}7�/�$Z��-\����A����~3,�S�hѓ�t����
��t�b���w�0���9��F���6��8�E/���auk0�Oą���wޱS�t���K;��x��a߼��^m�F�+��������w��ĩ Ӄ�����w�|h��n��ß�gs���LT4��gu��3�������:gt�z�����[h�ʒ)�Ey��0/�B������f
����{}2���ʊI���L�AeV!��IY�8��9��Gk�ṻ�b�7�jW/�X�2�  V��͇��AH�_tr]O�4�����"��(�w%.�܌�M�|>QI[�p[X�Ͷ�T��ʀ���k3}h�g���Q�9E�.��FE��DJJJJJJJJJJJJ��h6]�!6�Da|�3�oH�Š��Ȋ�;r	h&=��U�P5��m$>�ڞ���+�R�1�G٧]����w�H�ԑv�N����ClR,��!��C%��i[k&o͝�����i��H��9���89�f-����T��z�]�M�G�g��
��G��M�����S�3��+�3�w�sD�Cp���K���)d�v��.5�*�XϨ��[�X��.9�b���+��;s�?]s?^�˕�u�X�]��j�6�A�<
K���Z����{Y��d���R�z�س���j��%��*��K���J��cv��H�Zi'�v���[h�^X�����Us��$U�c
v�r�|���)�2��#�l����� ���7�/��[[��^��I8��1��_��>zܘ	�jMڃ?�|�{��>4�x��y"Yi�=�ܽ��������0�ͣ�M��x��6n����x��Wu�����3�~ֵ;=����@��˗���|�H��Q������Z�D��T��Iy�)\�����]{��F�+U��5z���ARM�C{�|�ˢ���k@g>9��v�<إW?���]"���S��<�k׮�Ǭ�q�Kh�k��Ƴ�������72]|��w���c��߼E�����`q�5��O&���O^�I����o���n#��2������{�D;F�;M�M�?,�4���I�>ᢾ�v߈��4��u���>
��Jӿ\���h�6�k�|2�����$8�l��!��O��N�Ǐu��kun�˵u��!�m�,�К��l����P�ɳ�HIIIIIIIIIIII�K�6m{�d�\��u2Vt4J�2��Je���&�a�3&l������q"�'��f�]̓��X�
��F�e~j�40U'���6^/0�r�8��`��O(�-�x��+�Ht��4�2���.f
b=�?5Q[nΙ���̔�i@�\�Lf�4tC�盳�[kX�l,���ң7f0�}��a�oΞ�-�p�:�3SE?ku?+�Z�2�ɋ��qa�sdEӽ�غ)TH���MY`�FJ2�?5Vp<�{Z$k��H��X{wC�j&mə��?K��4��&ti��Ev��,�m6z<�F0�.:��W��mec?�/Eq��@�]����C����{�E�� _�9�?=~�m�+�O���ԽwjZ��lY|��	��>rae�lx3*<"
�ŭ�H䀧kW��	r��B���'�OE�V&��=W-�/�����I��Ҥ�W������:�ݼYPX|4:B��Y���I��˪
�gf��\z���K�_q�%=�_2��u������z�A��'-�}!�%/l�Ps���D���7��v#��5z�V���s��բ��3UU,���&�(���o$$,��<ۿ��] ���e!�-/<|i����
}�ƭ��{/A���=��������������5�8'��,r$�����Fm��P_-B=ns���1��\�򤭹�gN�aʶ����l�?

)�*X0|yܦ,��g+Úa��f(6������r'm�
��Ȭ'�k�-O����2V��,�Ʃ)�y�pv��}����,�7���=M>�3������&
��ZC�-g�q`��o�dfg1�� �;d���͌�Y+��Ќ�3�6z�?	�����:��K�A�zx��]�K&���H6�9���\�t�Z��wL��~��W�
@�m��9�P����[������<x�85����C�"I�Ϫ�g�^Bo���mR�y��k�،�Za�R���-$,�f��A�G��+3�%�������[$P���3E�|h���DHh�))))))))))))))��@�
�Λ���g��g��,��s�O��u�sV�kq���?0b�z>�]?;l:�+Z8�6����-&b��D���*A��f�Z�2r����#�5p�����]��l�@Ϻ��b�bv��`F�J{ۧ$t5�~�TD��6W7����
�|8$r�6ם{��j��v0��f�A�*]\RB�F�yIj&�m8�k�Yˍ�Sԩ0Ia�,+;9s�|�t�^��P_��:{�*�T���:�t�C�m�B��V fa��ƩLH����F1Ti��%ˍ�Š�d	�����{�����8�/�5�H�rDn����\ Q�DMc8EL���#�-�%�@"IEDBe6����)v�R����Yc�&

J/�:<�4�y��}�8�/����/޼>OO�a�GiCn����u����y�LZ�ʹ�v�<���x��5
���C�tH<�?U��X�1gݣ@?Y��PpJj�f����{�f��y6nZgӻ�.���j�~���=[W���)(4���ki��yɺ|�.��
�@��,�i��Yue,\�ZS[������s�@3�U���.�Ʀ�s�6LSڥ	�7�Z�$���ë�mPjzz~��~����M�<X��Cdh<=K��q����:�Q��UT/]�
I:t����"kN�<��W��	n���H�	��<����CA�J�s����S�l��L�z9����	kE�%}uk�
C�Nsк30$���*��vQ�/��T��/)�N���r��N��Uk���3�.޷__�ڽG��H��1�����?��8�~��Y�j|V	@~Aa���i3�QZ��geq�^����:g�&��	��P���#�o�^��J[��mll��}&�V}��f�rD}Fw��'�~�Z'f���X�q�"c��֥��5�nҨ��-�0-}��[����jk��n�jG~A}��x���o��T=`��ѣ��հ�eގ¢��W��-�\�N��q�	z���w+*+���35
��]�3-^�Ԗ��
1�v����y��ܴ��}���v_�zU�Z�q�kNCMv� @@���G�h��p�j�(���7df��kcm|����r��{�u����}?3aNG�j@t��Ј���[--zHWW�*;'��c�!.z4iA��z=�K�a꺺���&i�Y��_ZjQ�����{*��&*��޾}�~�uѡrr�t5�N��dhh��:N�耐u=�6.�C�ٖ��z���o�F��iZu��bT���M�n�^����<�8�=hr��*�6^�.�	QSbC#&굺G����g
>wJ��
L����ovv�Ԝ����ch��'�ΏXRA�G��"�.(/8�@�(�	޺mgA�⒃*wV��gUBwG�B7u��^��%�t3c�z��ӁbE��K��q�'��z��k�֬����ߚա�ݙ}&�x�d�]2�/��X���7W̃�9zC͠y��\��h�6!��120426~VR�2V�[#+w{^�#n�Rܜ��`��mk7d�.]1')y��xo� ��G��}3�nnnnll��Yjhh�|�&����J��Vo-��Q�G�U�|�m��f&�[*��>���e���X����������Sâ�(����
U��6=�a�3u�}6�nii�G�Oϒ>e�������o7��+=�/wO)wM��-d��rM.�H)wK.��Y�z��.6!����e�k+Ln�&�!��j�AY����c��XV�0�@�Y%��zi��;%~�����N���j��3S4�����
�0��ʂ�6@oШ�*��;��_��;œ���c��W}��Ȳ���iۏ���m4�M�6�@���	a�-@�
��&@	�I��	� @�m4���	� @�m�
Np�	����M�Z�6Z����;�I
�8|�<!��4��D�]\8��0:8�`L�!Q<Z/��A����m���WWpX�'@���	� @�&@�p��,˿=���M������	� @7r��&@��H����	� @�����%qr�	� @��;�<��,/�W��� ���Z�?!��㳧���������z�޼?LgAZ�w@W	��^�K��b����|~�._Wy1�I:�>�ػ����8��Bs:�n"ȝs<rU�Kjx	��THM�b���Ҧ����DND@9��\�f,����	���$x����:���
�ev��}w����=��s��!@���m���Z�R��7��5�*���
��-����h�Q�>O<�A[1t��;M�
���ЃЪ�aQ�E;K*l
�k�o
�R}~|tH?W���3��3?uUt֧�Z���U���{Р	������<y����}����Б�8W/?�U�ČK�\��{��_���/v\���η�6�����|��/�N�ѹ����:r�Xd����n9^W���8q�������0 @�3������J�T+@������[bFx�*�Z�7�nߒW���ℤ���S��:/]�|�j���=w��io�r�r��+W�5i�����d��'ޏ^ҡ2�'@�կ�Q�R��h]�j��R�+>���1�=s����C���oڦ}Ж���]QU�ź��Y\�8�m�N�3;-��ŋ�ݘ�	Q�8��x=z�
s�T\֏Z_'��L}W�武i����N.�ƈj���G�`�~Fգ9:^���O?�Lߋ	���5Z����F}����9W�Y'j���Q��g�V/V�L�8������[��-�z���dyuMm}C�O?�۪j��X���;W��ᓾ`Q����^khܷ�@ֲl��q~<@�j�7,�=p�������~��l=�EL_�	���π�J�a��UkrJ�m��}u��{���K�[y@c.��5+��o�2nL�VX�zm���?R�ԉn���+���
���>�~��o׮���n{��IOO���V��E�#@O�6�e�Թ�����_E_Ǎ7��~��˲M���zG���1�9~B��m��_ Ա��Rݹ�̦��r�owULK���=Rc.�U�GiGGG��BG�E��Si����A�cb�[�>z�poeU�5�70$��HߎBs�$��P#@�O��%�e:�W{��?�/0�����zW~a���r8|5&@��9�è��g�iw��l����{����ܞ���(�lmN��%m�<��=�+?��ǿ��vfEdg��1���-�:��3�/����v!$Ҫ�:FG�pBO[�5\�К�1t��歹:?z�x�yZM�k�t`h��>�;T��R��Dy��ucкLG��%��
��g�ܨ�X�����ʫSf�NH���Ů&?�]���ݹy�׭��C�\�ˆ8�h|��������ޭ=x��ݻw<ȆM[�u9�#8ֹ�}i؈9i�׻���?�,,*�4u���hG��p�;{w���q���V��8��"�:G�&z���mD�2���u��an�u+
�m��T�`Ӻ�
�S1z� ��}��x���c�_y�=��p{��xG�j����3��X8,"vMN�ҳ�lx�>k��Z{���(+kS26<�]]S�s--�TA~��|�pZ�y�ݱξa�ٳ�Ӎmh��ҳv).����z��q����CGn��###�cc��wr��|5&@�w�Z8.)-�SC������o�,1	j���?Gp|�y�ndc��c�����PsTǕ�t%K�}�b�WC��W�]׷С#��hj>���S
��`<�0K+�cR��u9:r��%-����]��]&�y��c4@���
h�ݤ4kQyձ�f��gmZ]�ە�:ר�o)@�k����~^�f}���%e��o��;39=�j��=��qIY�R���z�Cw\<?s���3���[�oO6��~�F���M��eW�q����e��#���>��_tHXĶ��Z�i�SO��p�?���)A�������٥[���3�kj�4.C�p����+ʑO��8�&D�q��xttTw�r{�/��Rw���h̀��]�u~�>�?�׺�ZZ[~�������VX3��
���5�Bk���w�T�Gū5WTk�#'�|��w���)Ö��WovwO�D'6�d�B���B�ۭ����+'ס��4=�d��oبuӺH����v���Gj,�vܻ����j�T���\�{�������鹵}G�19:8�1 @�;@�&��?�iiV[��ٻ]��;ٸ����4�[�jNJ˯�Ѧ�)s�S�e�:7�I�>��IHJ��ݽ�צC铗��*=kvFd\�fI�-ӟ	���ڛw��8��j��;X��&A���t������B��<��	���Z�'@'�[_��mxd��ʫjKwլ�r�9*^+��>����+zhh�
V@�+�KL����g64@������[0���
�'�:�Gp������?J�P�q/!���8z5O�	����R���?��`!�&5*8*��������O�|>���))_��3���m4�C�6���9�	� @;m�
�=Wڟ�
��&@�4u޽{m�6��=����	���KU�=<�d�i�[�u�(��h4�S @;m&@.���e�y~�zp���,'�i;�ۗW�ǧ���b,��4M�,�L&4���
��z��뛕d��9�x}�?��Ӣ�i�ޫ��`PE�����M������e��=V�aKI���ó����Р_�ʻ^/�nshw@�w�?Q�Q�l�&ݬ��[ي�ZDI�Rר@�h���K���X�	�"0��lS�i1�
�јH�.�I�P�ȢSӧ���`&��X�ߓ��;�=���N���
�������`����oL<q>�~����SZ!�B	�׹:J�
	h!�"�#$�%�߬"h*�%��B!���~M�*��B	h���B!�B��46O=����"�dY!�����B!�BH@�Z!�?�L�t:}�>�C���O�@ߏ�;�[rt�BH@K@��#��B!�BH@��-����Ô���������.�Gsܬd�ω^ޙ�]]]MMMl}�^F
f���2��.]JNN����+�m��v��֭[>���C���&���YYY���L�+���BZ!�B!�<�
	�{�>�9����x��e˖effboݢ�pZZ�ҥK-ZD��������n�4淶�6111..n�…l7o�|����*fHMM]�z�ƍ���x�|�޽+V�HII�y�&�۶m�4i�իW}�cF���8v�غ�:����3u�T��5��pH@	��`�
	h!�B!����VH@�f�Z�
�;z�����O�8K�G�[���knn����0aCS�L�<y2�l�J��z�Z�H�/]��İe�iӦ�ȍ��b��ّ������q�[:u���g͚U__ϑӧO����K�d��ri�zmFϞ=��޹s�8���>}:υ^ǡSm�8xI@�!M�U��e�#\�yyEPeU0�\Q��@� ���L��!&4�H@K@!�B!$�%��~!�����c�,pTTԦM����kjjv����^�n]OO��)FϘ1|���b�l6���͛7nܸ�+WS
M�ꠙy���,ݾ��h�ewe��������s�6440�W[g�o^v����J�߷4�7np��+W��� &�4O�ힳW?�AU�a����~b��w�`@^��y�
9^��r9h��K���1���X�8���
-)l�}���A��L4Z�G<u>#$��B!�ЯY�^*�%��A@3덲eJ�ׯ_�y�}�����Ο?�F���׬Y���P�e˖%K��j�����T=c�M�9H}6X�}7�%(�>w�1��E�
���'N��eGzz:����ݻ��4����g��GDž����riz@8p��v�=))�K0!��{��x�bAAn��#�n���h�^I�/��o4j����VN�GsbJ�N����뀬��-.��y���i��Z��E#-�0�}��6��–Q���Tda��s�3w<� ̾��~��O���׹���q	h!�B!��+���;aDH��/��{+����aaa�6#s=;>�ha��=s���L-3�,�nf1c�ݥ�FIS��(}3���o�6b������G4�ٴ�0Wg����ƨ[@gdd���.X��ə���B+j�97F-6��(�t|F�Ϝ9��6l3fr�S��;�������xjӢ��		!�*i	h�5L��;Gs�~��n{;��������S{�^��y���oY���j��h��n���'�?޹��N���Ǐ[��:=F{��o����D:X�� ���o3��⿞3����KK�hm{�	���{M��)�x��{+*�}��
yh���;w�8.-��/��(�+_�z��f^��b�***.��
#D1.q��݈���E��$��"k�C
t�c"*�n�>D�2�j%N���S�E`��h�KU����u���{N�{M����D"�H$��@���f����;0�' �9�;|��N���A�)[�����u���u�7=
�U�R���[H1Vb(0YYY���Ԩ�e��o��)���R�pd�ƴ��E9)��M��f`1�Њ�S�r"���4neb4fΜ�]��t„	��2��0t���F1g7)3���� 44��m�>�ό�:)��ܹs�U=��Hd~���zËa၅�����ݻyW����|��S�J����a�	�����cU�֖ݺu�����w�eTV����q��%7n�~�����;w�
	���\�r��}A�ގdyxz�qcttt���՗.S�JJ�M�<� ~/�����9�7m|cW|��?��D"�H$�D��@�YF
�b��Q?	�;tvpp��' N���OR�ΐ���N�-61���Oa�O�.����be��Ҧ;ϑw��ӦS�Vm;�F����3b���`�oÆ
�e�Ę��P��Y��m�Ճ����
��\�L5�<,�tH;��1��	����:���rpp0���Ά#��f�'h��8;GYWXC'���
�ٳgf@��L�Ϟ=��Cҹ�pc�.����S�%"��]���DkA�d�s�$��v��Z��e��?-sO��ˤ��"�,�4襤������V�a��6�Qv��v���l1�s�xm��u��6�6NG��Dp��ޯ�~��
�f��/06Ty�jÆ?�����RZv�P#�fdee�3M���\\\�O��h�H$�D"�H$��4�<�Zh��0�8}������M�Aa�Em��~�?m��@
-��|jiݱ��}�	S-Y�t��IS? ����5����B?��0$�FF���۟Cvf��@?����U�6b<}h�jgn[ZZJ�31�ʤ���<�<޼y3//v�&��E�y�MP�޽{�w���hP�ʕ+iĪ��Oh�4t�u9�Z���CjX,�)���MKQQ�B�42l:����
tN�+))����4�Ϭh�	Ω��*Ȼr�� @��6�5����-5�vD$���nW#�.�u�]X�h�_�x="�ET4�
��tbI�Ŏ�/��=>�F��:!�i�)ڴ�q��	���͛���*ʙ���7n���s�=|8����r7�]u���E"�H$�D"��1���h�݁
7�k���?�y��
�Ӣ�tr��%+?<btX���>���l���ށ윚�5uuu��߫�U�|��:�dH��5�}�����Gw�݌9s�߻� Z�l:Ϛ�@M�u�Ngg��X�K]����_��*Cb���#G�\�|�J � h/G333U�3�4rq���!�\�,h4�9S���Y�4���q�(c��iӦa�*�d
�f�*'�~��G�м��h�B��L��x��3�y ��vHπ[�G��U�8砅�M|�}J*��1��i3�?�;b�����)n�	�:����V1�����	��Ξ�زC�C(�-�щz��tЍ��`6$%7ZH��))���|v�*�r֬YQ�1}���[_�����D"�H$�D��/�10�����&�KW�3h���-�p8t�.�pm|LBR�4>�~���,��~}�ա�++/0ê�G�߾c׆�V6� ���ҷ�ވ���#�n�ގC-Z�/(,�L:y��m;P?p�sz�8]B/�8�զ^�?���q.
H��}`�džk�*�3{�l΋��"�Yr,k:�0Y,̰���Z�*<==�*�
��B��NOO'mc�ƍ\���Pc8/D��蔔����:3�Ӵ�۷�'t\\cF�FjG�4�!X��hb7H�ƣM|y�b�/�NKo�fH�q���.I�/�G��f6;���	�O�?����o���Xi�#;gξ���f��rPr
6j��F=%#s���d/��Yx��nz�mR2�[�i�8�\�j��ᇾ�m4*����[���K��2u*F�w�}yr�L22k�"�H$�D"�H���~&
/6h�7~�xŐ�.���;8�t1n�4";�A7@���Y��uu=w���f�ߴ�����s��eHX�¾<�jg���c�O<b��c4ܺ����c�/V�WT��8�[/'fD{Q�隚�y���VgǶ���bb=8
;f�=��Vӡ����d�ė����HX�ۄ���-ڴ�ڣؽ[Ͼ��Һ'ru��θ�����hg���<4薋�ի`��8�k�
��Bl	Vf�X�ILƠ҅�E��ڵkUll,D�����ѣGɵ��իWC~鹸���������e���Z݀`�L�5�f�R�Ȝ�ژ	��=xp��	-"����r�QuJJ~5<bC�a��=/�2$���F�YP�?Z���a��.��6g�\~��?=M�ɂSܣf̘�4�G3f�d�̙3nc�r�<}�1t^.Z$�D"�H$	�~���@��:���xWq[���JL�l&��n����;ޢu;#Y�&UC�[�f��)�C�#����JJK32?�����h�2��g�ׯ�(-;���,��+�����Ҳ���2f��A{��}�E��#F��u�(mlQQ��|�e�L�)����9U\\Uu�����`_����SKV�fl�p�??~���v�ɂ�O>�hk�{����鳹hD�`Y�Dպ��j@1X�\K&FNN&�8v�g����;V�8�i���O�N=�b�
+F�H�nϞ=����?5�,�{.�ڀ���<����(����՜���Y���1h$�޽;Nm������
@3ZL��	a����"�Dd��ul�D�_����ocR�^����=s��z��a��\&�ϰ��hC��G�j��w���t�ؖ�'���ߚrL��� ���_�Ys�m����'{�
��?ޖ.[���k�~�M�����&�p*v#!����s1���Y�V�H$�D"�H$�дo��;{�G#F�Q��������lt(�:b
v��?d�b /�h�e�m�9c��=�u�&��x[�@aaż���y^{���}��%ee�SL���������. i\��{��\߾s�3"p6<��~��Vmm������뉢����3����[	���p��{�A�|0d`�)�3{�l�Z�2z����b��_LFaa���Rõ:���'�9\]]�Y�|��ӧ�Q��\�۷o�J�>�v�Ű`�P��.\��O��]��9�<��ͅb���€:����]���3�e$�GS��֭[��5
�iiiPr�xyy9Oy�2D��؊D��g�i~᎙Z��"ɀ~#,���M��u��Iv�MH�
����{3$��k��C>�Utym�eh�A��B���x3*�2NG��	��۽_��b<�2Z}�"�M2��x&�?=#�)�����/E��w4�w�b�*~���7���c�>-�D"�H$�@?��=:.1% $�|�z�!͔������5�����}�E�N�~u�k��jh�~��Y��6maYBKk��	q�\���_�re�{�^z�@���c��[��x�M+G�A���u� c�~�U[(�xҔް�!�������k8���˘�!�/@�ήk/���D=�f�>9�J>�����0�'�mz�Ֆ�$��7$��zk��;||�����f�bk/&hs�\�*�RL��q�>4�a
S��|�ʄ�b4��j�2�
�2����0`�e������s
�P�hlt�mz�*���U���27VnX6�y|T$2cM����Ưm�jj:�G�en�%�����ӎ&g�@�*}��Md��:>��� �;�֗�Ri�����s� ip6'�!�������:9�]��r��_6{.^���9�@S�
��k����m_�X$Z$�D"�H$	��v@����w�;`�����:�b�ln,Z�����A�є=�f��sv���?u�H7t���M0��,n\J������o�پs7,� �2��LVV�a�\�zV�U
�S?��O��2��Yذ��z��K�qW5�L��G����\��s�7y]z�e`p��ա\�t��-Z�i�,H��K�_��{���0�>�-�nD��}��	5OuB�/�;0H???bUY�ؐ��@�?��@�A��hc'������ҥ�)���]����νU_OcZy�oCB-�4�tEmm'm��.�KjZ7��i青S~N�G�ee�k�D��:�f����ڿ��-]�мy���w��sw˖�"��w5И�i� {��a�_���D"�H$�D���"����j>�&p�' �u�D���^N�u�X�����`%&?z��Q����kӶ�db�J�꽋A�g�a����>f>yG��� ��O�q@�A�3�b���BS\x���M[1���V����<
�&6�OΎݕL��g�ud�m>�=�-��7�����$�H�w.0U�wN�.�]�ک]LDԣr��D.V��n��u�[�S�L4�֮�mf��x������i�t֬�֬N9��"6m�KtҊP�==_FN�h�4�,�'��|��>^^��<��{�M�I�s�=�$�+==�l\�z�8o�壏斕�i�����Y�HǕ+���%��f����,$>󮣽����*o�,}k�B�V�Z�_ޘ�IqA.NJ+]�-L0���LC@�K^~�����3gF�At�KZ!�B!�	�w@��)k;y�b����t9��V�a
h��y1\`���4�E�9��u�,�Q}��������jGu
U^e;XVNǴ�Y�����紘�$o�~�X���u

���s��?�hF�>�ܧ��U���}�A����G��h?�
gD�&0����8]�|�®��!=�|_mm-�א(Bd�g��B�x�W���0�;����z�/_��?����ΫW�nwPA�hKA Q���X�����7;;CJJ��0�<a��Np��޿��V�e��.��E/3?!�.������ݧzX�l��-Y�]����|�oiii�׊����|xiCF��H�KZ!�B!�ue@s�`NA��צ?��J")bSW>���w�
=�h�ϫ9��Q�i6���Ǎ���i��ᩦ&r0��y���f0|���rW����D������$`?
J5��؏���5&�;��	�Co逦��'O�����ֶ�؅���w�_\b������m;v�]�I�S��*N��[TQeþq���9�,>HZzdp<�Ӓ#B��L�f�hOt@Aa��9��bT�~�4��"M�F��>���>��-����
�A�43�2�),�XYerVK@�4BV�s���n�����G�&�d���%��B!��_��6:�9l0����̬g퇎���5?n���N�q�� jk;���M�SfϏ���o�����Nt�u�|���u��]:1u)��t��ͧKy�����6���YۦGDO��'�74⑝�5����tԼX�z��u�F��o�I4u��	�3�[�m7�E���k��v��7-|O˳b�x�-3����B�dM��<��D�,����x���bN��ٰ��As�q�`�_�v�Ae��4D��Cꆦ���K@!�B!$���C��mhe����pě����T��&=3+1�a��:�#���E/%�;{�,���5r0hjNY�(��SC��NF��4#w�?��~x��OW?C$+<z�un�T64�C4κ���mb�BW�ܘ��I�]�3LN^�H��k9y24�38����onv���������k��k�����;ض�1>���\�QҬiΚ	�H��D4�"8$��#\@�SFCO��C<�e69�+�hd���s��w=�Z�K��B!�B��Ȁ��{����F�[�r�_4G�(�-<�?�=��T�4'$?TZ^�g�㮋�(X}�p��e�i&��'O߽g/M�M���j�3��6O��+��>BnFmm=����q��KN�n:{�gΚs�OoW�!�‰��?�Z\254�o��]F8�0r��LdǞ}ه�-(��-JA:#���|�b
{�]�{����Y�54�*-��i�g	h!���GF5��I@K@�B!�BH@߮:nP�9;w��Vs�6g���ջn�t��K��ɢ��'!���9>�Az�upʟД�3"Y��x�n�	���F���r_�|��v���e��ù�~�1b,x���DE�;���w܂����F6�8�Ɯ��!���I�0���
	h!����JZ!�B�聊	اצ?�>��6���z���6���O�L�2-ư��;�6d�p���5�ݹyL���|��O�H�4_�{%TЈ7��B	h	h��B!�B�[@6�(z��,F���D�M��Y���%�������r_o/�F`�?Œ�x�,-���������B!�BH@+��b�P�U��sv���0#s󆍛Q�](�,-���VI@��t[��B!��߄h�7�p���L��]��B���H	h	�oN��h~KZ!�B	��s��M�qdzN��]��E�Q������ꠃ�VHDC�P8� �K݌ڣIk�r��Do�)����97dx��6�Z�6؂}�e�?}����az;VV���x|�e�% @�f4�FeQL�󝗯�t>ު��X�]o���K�Hj�V��ɏ�Q�i�h�L�����7o�8�}�a�]�����7�/��lzn!�$g�'��p8h�h3X�'8���a백�w��܂�~�O����=��z�n7��<�/Z�6���Z�e�$��5��5��pOww:�(L���FY�9zt�;���{h����g���i|zz�$n��5���oB��\}zs�h��-TŪ�,�,L}z�?���h���\@�
�m�
��!�7�M���w5� ��$��DM�b&�b�P@��	�	�4�f4x����M��
h�hh/�M���
h�h���0Z�@��M����
h�h�Wo@�m4�'8"[�6�ά����T%7I����E�ƪd.�$U��K.�&ꌊ���8*�(����Qd=��a�A6��"��;8[�@G戎���c������*�O=��������%�z+�澇G�����m��m�i�sckK�;!�B!���~����
��/_~��?��OG���V��g����H@!�3�{^��[���[ٹ��ߚ[\r:�|N�c~qig{�8�����Y�ϟWu�X���]�O6&��Sf9?�~L�ӻ�77d��L�.�ӹj[s	!�B!�����*����������_��?���y�ͫ���a��B��ॕղ���֮�u����F�N��׵6v=��l�K�4[��R�)Y�����1^�����52�0Ȕ�+�|���-�{͖���*�����	S�d��͏{3J���,���}cn[[/mhK+�N-�*�i��]������lijIɋL/Z\^�h��MH��˯n��)s��.!�B!��?G�|*<.{�/TS;�v*��r�n��B�7v���&g�Ɲ���v������~�F�b&��O�]
I��(4�8p��i��?ZDz�w�ɝ}�22>u�/�j�)�R�>���O㍛RPy60�v>(��/�顒9�
嵵u�3�=�}>(��Nԕ�䪖Nc�@���r.g���C}�A3���O����L���Tg��Tyݍ���+$%�J���t�=�̃	엩B!�B	�Cп�V�q��q:SM�0����g�5	h!�{�^��Ě����Q��K~	��߀�,*�y}.,�8Ѳ�T8�v���5a�r��S2�����M-��7t�p$]8h~�Y�����j8���o�]S�ux�:�ʖN﨔�o��<饗j�on��>�{:8��mO�
�u��ӳ�&�Z���y��n/-�R���w��Ty��W�z�q����	&��,dy�F����B�����B�K�F0�~��&���ƶ4�B!�BH@J������ь��p/�l`�Ո��+��HEL?�b���l��<13K�EcgO��nkr��2�E�A��Қ��q�7���-�;��/��?�>�t)818%��M��*FF3>W`�'φb�JƧg^*i,66|�fL���d�6s3��=��;��歭�W6w��74�~����'soF���$V�6�AyT7�T4 ��'�`������c�S�+�ϭ�})��3�4g�>�K�-��Sy�;8a���;`ʷ�'ef��s+0�r�B!�B!-�&--�8(��ߍ����-�i�%�gii��)Xiܫ�)4��(b�\^�;��8����o�|�b��E�2�y`�E~U����nŦ&d�N��f��`rɻk.��yzn�H�No�yv�7"�����(Ov<{>fEpwY��^.����.�76t3��=�KC�~E6��6�W����K��o���VQ:��7�&�l�4<:u'����Ű���!���r181<5��nsn��e�K!�B!����^/�8g��䅩���иע���qi�]")���⓾�GgߎK�	�t`�p��ҽ���on���WVm�d�<��M?�҅��Y?1��b\
Il뱢�y��A�2��Ⱦ�
��A;ݢ��O������F�ۛ{����Y%�~Q�@��<�r��cF3<��O�p��^<i�5�s�{"V]��%�����f�����|_@3���Eܾq�u׆kpt���SF�4�R�m@+bJ�p	R���~�@!�B!��T@�ZMZ��h�ʯ���|.(�;y��v�
�)~M@7���D�	>� fl쾀����H�Y]�!%�4���>�~�̘)�G3�Lm5� v]o¨zny܋���Ay2��/�L�Ӽ����i�"P��W���^�U�vQ��;6>���h>��w�@BM7Ҝ�ξA�!!djv�y2�Ot*��#S���݅!�B!���~�8/��wЧ2<<3>uߪ&-��@�_���˔�b�Z���p���Y�Q@�ɲ0tpyS�U�	��B�P���y�p<E�����;����p�[�7������j4�an��V�ڟ`��Ē.�1�ߣ�9�
h�@A��Ѧ]���[X�<���a*�;�C�1C$�_L�2����1�0�DX5�qgGZ!�B!$��m����d����J�lj�O]��I@!>]\�JNFRN1ͱ�R*�+[�;�K���&|�Ж�vt�[��}�[�H�@S���7��.�9�<
.���t9Q����0.���i�7��H/�Fa�߈x�23i!kk�Ye�,�.N���rśK��
�4�4vRK4Y����i��ɰ&����3=��?<��8v#4����\�=-�B!��a��c�<�8Nk���d͖vݺlk�uY�^�٬ͺ����&[��K�?�%��bm�[�bV�E�6J� "��@.^@�\�� w<7�b�9��NN�H@[���ON�{��y^ʱ���П[4���ܦޠ��A�r�zI@!�tI��<��c���Dҙ��)
h��~wg��x�O663' ^%�_����,�9�dL�w���W�kK�/���.�v�k�f�N�f��b�ﻻ�_�%:�&n���z���,���Q�3�f1}�C��M��,tsD���K)�~0rOZk�yϦz�0���d;]ì�<Fp�ʃB!�B	�
���X���k�s��>:��h8���A����U/^/'�4J@!n(4��;/lSza9���4l�C�&�x}ܾ����
�G&m9ƒ��N�{46���$���mJH'H��1�O}���h�C.X��R���V�Zgw/�������d\0�p��Qث��e��@�W�Ɛ�AW2�/=Q�$��k�-�Dz�}Y���*d@�U����)�m|�!2�k�N<r�d��erEތ��^,����s�Ȝ�#'o�A7�ʘĐ�d��g0V՟�ۊ�T���.�;S!�B!$�g&�Y�uDp,Hz ����n�߹:���/e6t�Y��P}�_�������k�{��N	h!�
��k��s�*Ⱦ��䉖�ά�c|h~��6�V�����?Xx����z��lId�.Ӛ�;�O��iK�2��4�X�V���S����4k�c�A1��"I�E��?�<X�)h�/{F�-��w`�7'�����T8qՌ��Q��B�hK�֤������Qw�חw�]1M�\�N7��?HE]SqE-�ߦ ��)�,����2x�aU���Y;�\s}�}�,>z���Ռ��Z!�B!$���:,=S�|o���>���ku.o���u�rY�=7-K��������}խ�.��n��B�H�ߋ�mDZQ�����;���9o}�m˦Cf>��c&��,_���[�;�(?8�W��JF��A4��B,��t
^�����3��p��L�0[`レ�D�l�!�5���_�-�n&�[�Y!�B!$�g*��sm!4���~�X]���k�?�õ�M�z(�艘R*f7�-�V�Z�UӨy��+{�^�\�]d�k��s�le�������'��ӹ4u�'R�3����������K@!��������33���|��ᡈާ��O*���O:�/����\��EE=!�B!���B�)�σ#��8n_�|��X�PPh�����G�z�8z�%=����&��w���l��o����b�g$��L*qВ4��"GgS��`���8���-���L����7�fܵ:�YA�R���o�)�Ԏ�{�~&���B�l�}&�ٸg	h!�d1�ͩ��?�P8�B!�B	��逞~�s�k���y�;9��Ԝ�?��p\e[Hf�	�����W��v_��j��N���;gƟh�=����T�XnRM��峖gzV�8u��ϳC3^M�-8�{�����,l�_�[���3otZ+Y��qax`�}ך\���'�:�dw�G���{��ڇ�:�.�\F����>�I)M���'��t��^���R�:1:l	h!�=o�gA��B!�B!=Y��2���E��\��㝜i����v�`��Kb%��?]���>�A�4�,��TrV}�#���X���g�\�B'�����B3���	�ʄ�$՜��
(BS����S8�ZC��8�03�h���l�^Q�2o_������]���R���[�$���Vp���)������_���6C�+�Y�,r��Z?v{�7$��B!�B!�P�4����c�c���j+;/̍*2�&.��x�3��}����Ĕb
���M���Q���n�M�_]��R�θ=,��0�VZ�i��iSND��h���c#^����2}�a��Vce���z�����8F;�doJF*V��n��_���!���K�3�$
������sF�?kIZ�G@�}�
M͟m�:�YX��#�ܽ���{����x㡓X'���\�*98�i�+^�䭹�PL�I����j��ͩ�������g	h!�B!�B!$�Mt�/z����1��L�s�9�C���;L���12�Q��i��?N�ydq���<��M�#�k�O"�q�w�+�P�|d�ma�Qe-}.7��i}+��U��1���y$��4��-T#��ϩ�8���%g�����߈��s��%���{#�Լ'��S�����]ٶ4����
8�e3���`m�Yu�';�?ц��ʊ,��௢KV[�,5�[��>����z�k�CR���"��Y��_�8��ME���~�;@@S��hc��nq�j��-�
��|m�if��˦T\e�����<������M�o�|���Ҽ������ޓ�Qk
�8wCə���|�Zw�-�G6�<��f�-+2�”���s�e$W�����^$��B!�B!���faSg@��7��N7N�{��#=	z�U�ϕ~���C�����j_�S�2�eT�o������3�$]\���Ҍ.�<�Jj
>����=a�����~��=m�/%�����dI\���R��U�x^�C�L��
�e_4�;��
�X�'bJۇ����<o�����BLx�]���`�8ebC���8yNc�}�
��bz�n�<��qn����r8��̓�e��[��*k����b����}����v�F�n.��i��&�o�c�J�6��-%�\�-y���4r�%��B!��;�પ;�G��`E[�ZK���X��(^:j�u�����A;�zi+�������Ā���AIH�9��HIH�	I�
���BB�'7bg/�Ǟ\&���͚��{���^�����/I�$I�$	@O@�:�($z���ڐ����&bO�I{{벏����Z�	x�����~��|��#[rM4i��~c��QF�Bg�b&�r�জ�+�A�b�vSip��y���!<�5
Gn��x�w�U��Z|��Ỉ)�JU��^I/�);u�괇��V�vr�X�b>���w�exfX�����Pf�@~�aG� �K�*�MznOQ��w�<�sw>�� ל4|��R�u��|����%�t���*���N��4^��Ͱ�3=�o̾muZ�����8�ڶn)����my��ܦմ2���F���a�`n����r$���힒�[�R�Y���vK��w�,��r�Ş/�H���$I�$I�$I�$I�$�QE����/��(`�gE��sqߴ*u��5�=���f����_�~���qj��4����NocG�H1���7-���<`~�K�S��Ny7�� fa]�-PQ�9_�*��'��=��MH�a�vhuΉ6�PL��q@���q�G3�4c�֤sn�����Lz�֏o;84|�����K���PC��Y:$�7[DQh����Z�w�!���9��}M:]D�`�}VvL
��m���	_f��A���9��
9 �	q�i7�Jͭ;�hƋm6��p�.��}��=�Ǔ�a�z��6��L
����wLMHGI��$I�$I�$I�$I�$	@��&:q�hX*�7�"��[�DH�u�� :�30���k���Yx�g�Y�YP�N*4S-yǸqMM�o
���d"�Z�d���B lVm�	� $��Tdqc~�Y��x��`�-��Sd��Κ�����m=���,Mn���6t��ٷG ��{�\����+o"`��甚Vb,z�0DC�
��*=��QGN�z|Kg�h��|���CD���oZ��a=@�����+ƅ��ݹ.s��(��l�ke;͝�˃��|4|gQ=p��y��ag@��Ƙw�G�<)hhX�F|����m�2���'0��k��#e�#�]7үI�$I�$I�$I�$I�U�p�h�#&ߗ��&R�{A��ʖO�<���nb�%�y�>��π�>����β�����f����&Z:����s�A��ux}��>`+�1&��w�x����􉒓lij��c܌��ƹu�91;/p�s�n��gr24pF���}���}K[�v�����6_�8��I/�aF6\��䱊F�;0M�7<�O�C���MY�?~�z��	�fE�kf���\S�/B����Z�@��I<�@�l��Fm����4���rE�#����$I�$I�$I�$I�$	@O*ڟAg��@-�
�
�	��%�2^�0]hwqq��v���F|�w�.}6,u�Vˢ_m~��.�L<�͌O=��m`�р�c�f��;�}?��o�Ώ.�Q܈�6S��sw�}ߑ��`+F�c�-D���/I�:<2B�25�M�>}i`�e��]�9�@xͲ���U�wf�)�NVgi��W��a���A3'����YPc�hM�5Q��_C��C�r�f|YUk����˂��8\kX�E���f@�!ڬ���R�\U-,�NM$��!	/q��o@s&�C�og����N�j�俶�H�ۜ��<)2�P��,hI�$I�$I�$I�$I��3�'�6��}��h�^X7kM����n�l]AC�s�E@��A����Ɗ;y]��E��n�8��K-g1d@G��>��m��M��3;)��z�f ���ز��$��v���~�]5�.� ��
/�
�l
~���T�q~���L��J�ۋ�cI6 ���n�.���]��X,r��;^�VE/�?]����wZq�'G!4�۸��%����"~�Q���OY�_�=rI�����k�+`^$��Z|����Ѳ�{7daa�=qȸ�����l'80}<�����i\c|&u�m���� `���W��q0�}nϗ�>--I�$I�$I�$I�$I������A�y)ƍ)�,ܾԵ����L�ELY������RxPi<�s&M�i��'��Pُg��M�?��r��oX��E�r\�P攚��Rqij%��P,O��M��-;5�����.O?�=߄>W���v�nc^�1P#�2�ɀ6��r%p�ە�|��n ��Z,�C�����,
sg<#���(6��p糽և��לU{�k�����ck�վ�1	yӫ�kb6��'�M��`o���9���n��LH�G���Fn����"��q~�8p�7�r�&��@���^��f'�<�6�0ᖌ;"|b}U�c_��--I�$I�$I�$I�$I����σ.浏`Ћ�G�11!��}�,�*ȉ���9�v����v��~�O0�����WbK�~%�1���A�l�	xi�g�4�����|5�C������^��|f{Ç}�O�4d�.�g²Gf��L���]��1�����Z����n�CJ��5�̴G��z�{L����ξ�K���g��J����wP`�Y��X�춻v�'�|Ӫ`:����`����ۅڌ�
m�)�^"�%LN���z{����1��M��
2����{�z�%I�$I�$I�$I�$Ih?=)���A��|ϴ�;���{�&��;{m��}�|C���&M_�|�Wڍ+SSnb
��)�53x�_�o_�>3,
���4��[�1�Z��[&͙w�˗jL���bK�T�vS�0��gv�Dqǚ�6�`O&��v(�k��u�I�X$�Ǥgphv/K����U������e	����|�9�$,�׆&��6S1�8�ʟ�G���?qhfXj�B 6�;e�{�e��LF�§-O��O%��ٿ�$�'�'�2��u��d~5{-^��1����5�8�<h+�CZ�$I�$I�$I�$I����΀��zCn-�hK��
+���g���N�A�:G7r�m�5<w�`; ���x�vӘ�\�it�Z���En�30r�|���ڟ4F/ͼh�s£0���M<!L5�u�1~ϣ�Μ'�����_t����KZ�$I�$I�$I�$I���W�$���_�Aϋq�)���>$��tW[��v��I3zyzg�Ԏ�2V��
r}E`|i}6hh���ݱJBa�a�)pi�"�� o�KС�9�嬺��K�"������-���-ʷ���]�����	�cz��z����r�?������4�)�����\z;�r�=r3�����wLp�ӞC��ؾ}\�ZZ��q�o��9�7��h(1@�u������;������Y<�Wzru4�M��6�'6��xt.>�.��:�7�K��N�:_���gZ�v4�y����
��h�m�N�!,>�:�|����عc���8�Î�Cs
�C*~�'HlP��"]��[��4D�SctBp���[u_���ὀ������/���0�߼}��.=��^�bn�����P��׋���?+���b�3~�l��A���ހݥ�v�h���`k�j-˲<�h(�	�A:	��U�[�Y�Uj����(@@��x��	� @{m�
�}z�NC��M��	�#������a��`�܀6Z��b�~Z�8� 	�����	�􇤁�S�HaС�7ЯC���E��"�n^?��>��6�@���	� @�&@� @�	� @��U>�	�&@��	h�����w>��u^�&@��M�����&@���&@��wt�X�Wpg�:�I:$�p|��ѣQG㜞+j�O\W��@�>4@�yG��e���P��:_�-.�^������Go����ӳ��P���G�z�V��?����ޙ�Ty�q�z���$�5m�UD([Ad)��#��
.�(E��
+:�U�lr@vD6���a;쨵�K�f�n2&sU�3Z(���p��dt�	���<�}���r#y���'�B!�B!��+Dp����sr��o���r��j����������RJ�!��_OV�e�=)�����d�˪�iK��]}!����1����}:+wh�f`p�RWǷ�)K@!�B!�B!��h�y�޶3��:��>����bu}��hp��վ��/�W������"��ٳ:q��뷾OL�k���W�5+��:{7D�.Z�h��$/�e3��˽����E{gF9�yrݘ�r^�u���������B!�B!��sy!v��}C�_|������݋���vV�7㠳rM���@g|t��m�6�ѳz��B"b����1C#��޺3��{EX�战xO65�T�t����{%s��&�cV
?�q�X�%4:��?�[�od�����!<����q�Z�"8,��Ӈ�c�$�
f9�y"7m
�`�g����%�%��B!�B!���~mB�����6��c�|`�m��Sx^�������Eu�櫖~�����1"6��<��-������믘��/��kF@�\��c*�X�H�F�����!,:#̨��
z����4�����k��K��2/��'N_n�ʜm]}����8�.7Ds�C���[;z�l�:r<���KH2[��ʪ��̩�?_�����ǘ�'Y��뢲�����B!�B!��o�:#3k<ۀL�E���gp�g|4Vw�o���rʫ뇯}]^]�b����Fo�U�g��o���/�塃v��pdqfnAck_K*k��.�z�#Tť�s��5�[�K������.��IjF[����)(��w�
1!;�;�:r���nv��;H�FL|�ܑ��Q�˕v���*8,z����ASqeN�t6SQ��B�yď�������՜��&'�����Gb��!�B!���гЯ/�)qډS��ώ��9�H:��$o���9!���^Fn����ׇE����m�g����i��x꺦6.b�q��,���Bh�3��S�[x������X�&�Qhb�����Y��?��.(�pt� v�X����w߷y�}�Œ<z���JA@���`��EqEu��O�-�wf���$�-V	h	h!ļ����;Nm�?66��Ԭ���U}C����p��=�\���݉����?>!�B!�:���v���>�v}�`�]�����h�1h����g";Ӱ_�����Sqے��xkl�����N��N�$u�Լ1rr�!��qۓ��r��>GX������Aƴ1��ӧ���Ey5&_���@�gog���l���I)�7�ݵ'��h#����l��z��O�#���K}Ê�B����]���WZ�����~]�P����TsR?N�LN>�D�7ߌB!�B�s���v@�/L����&^w�������Αv��2n��L�2��Q�B���v�A
3�{�s[WoHd,�m̈́�Q�Q�ܥ	��H=rCMx���:��������.��h�{�(vB����X��k�W���
	o6w�7�Y˜�n����:�PZ1_��ԔGG�����44�ܻ����)����͟n3B!�B�	�g�B����"[GNDs���
��=V��ik�B<}W�T�Œ���}�+��v�'�r�:����\@�����<y��g=��%q7�5�O:�Goܢ�h�wQy5�K!�X�����WT��Fy���/�^�0z�Y͊�l^�2�<H�x%_9ސyJ�jt��b��xjʡ�����п�z:���۷-�B!�x�2�{��Ne���<}}W�nI$��@��<�⥎�]��L�7�8,&�@���֠��U!x��qw/�߿�pCDLG�@G���e1���62�M%��~���es!�����&�ACN?It^a���G �
�a����df����4�ČB�0k#$!y�[��B�y$�I����������_��y���3B!��a��c���8ޤ5M'6�4i�Ѩ�TT\0W�Vq+���V-�pC�����,�n��X���`�P#֥%P�F��ҏ��A�Ek����˻���9��=N>���	!��mT���Y���G:s��~�����>\r&&1e��0�1���e���IH����5��%,(,.>~
ջ&4")-��.|3�R��ًT�4�"ȵT�0���%���*�#c�c����pI0姙"��ۈdjjnL�1�M�_m��B�t����.Y��ǟKI�6r�qȰ.,��#C�jS�CZZ!�&--�B!���n��~��������m߽?615�A��0��lbL.Ŕ:��%m9"*���h\j=S�9)-��х��E��@O�ĩ~_)�>��sO#�)*���`�ߐ�̏ڲ�lȲ�AC�+:�%�
xd���(�)�/�e�a��#��������4:8d�^�`'���s�w�L�2w�%xp�:�������
�����R����BH@�I@K@!�B!$��K��caͮM�R[�jT����fi\ޓU�>ț�$���.޸yx��5g�ay�&bd�X�i@��>ifvH�v��$1M��rt�K�w/F㤙��	~>f�ޮ^��{8�x�r�o�%���j��B!�B	�w��ƘMt��lR16���͞��Kd	�7�Y=M���ǘ���I�p�}环���ѣǏ���n-;;;99���N	h	h5	h!�B!DK�m�|������gϞu��-^�x�…+V�صk�\9����|���r������u�����𠠠��^###����>�|hh�e��͛�౱�|bu��A�����>}��v�=zt��n��	!-�&-�B!�h�ڔ�V��~[x8��prrrvv�޽{�.]8�?��?~�!�k׮...�����ibx�G�I������ёױc�^�z�uSgffzzz�K�1�dʔ)�Ν�{\�t��ݝ�N�8�h@yy����СC�;V'D���I@�I@!�B!Z^		h5	��6m"�_�~�&M�֭[���\]]���K*���d�>}<<<�Ν������0u�TL.W�۷��t„	={�=z4�\���\f�F��3,�z����>�4��fX�����A���e�h�˗/8�O�<i���Y�h^�'nſz��|���@��w��<'�}}됛�ɞ�@�x�g�|ǜ�̈́�ى|�J����A$�%��B!�BZM���.>�w���߽{לdوf������1HR����i��m����������C�A@�ر��bʜDLWTT�Zmy���h�aÆY�ưy�f�7)ع���N�FB/5���������+W�Pܙ�P�=���ܹ����v�Z.)))i �O�:��ƪ�����em+�P6�
�~��
����m�F�ŋ�@Q��$M�����ׯ_O�͛7��t������iK�I⎏��J��Im�3��d�k��_��~��L��פd^['�|���>;�mf�?y�W�')��GC�%��hO���&-�B!���~Jp�r��_ZM�m��3�/��<iZ�9s�<cƌ��"��A��#�,�t-�פ*�$34��n=zt�~�����`�ɏ&�A=�PO�8155�C���xS��[�n�̙3�1M<��s��$Y�� ���t,����ۛ�gK@�d={��������ڥ����N�:�޽��%K�888P���ǹ�f}�����[k#fԨQ��:!>L��2jK�(>�u\�gn�a��}�{��ZE���df���k���Ζ攖�jsLIu�5��j떖�ޖ�IrJ;	HI��u���ir�q�Ѝzg������ͼ���~��hx�4��H@!�B!$���&�~�W�,7(^Xc�[c�����n��_�Rٙ�VpUU*��t`l׬Yóm�n�`xq������8kҍ��F
c�

Hpf|r�)�a�nj�PfR�7n�H>5U��ˤf����c�&�Lg���I֋-"�y֬Y�E?�Ac��A�;p���V�b4��!�900�5s��xS{���xy�4j�9��wڴi�/�(�Q�$>����{>{�-|���ѻw�22?�O�,-�Ur��=�o�������Ok^6"�n�QLl��cU55jk�Iz�L��ϳs$��یw�������VYUM,����-c�{E�9I3]aa�~~�������B!�BH@K@�I@�/�P���q�(T#�_��ҥK���]�8#���p�7!K:0��eT/ŝ������S$��&7
�<���b�D�w��heLِ�g�rh�/a��T�`y(i�06�I�f�9�v�Kb�T1��J�J��j>h�u��Qd��h�R$ơ3��E�!�ݻ�p���
B|h���m32���y��[_}����=�(iM͈��ߏ��Al�w��M
�|������/���9ee?��Ys��x����4z˪�מ:M!����m��?t��s
�s`�<�2���Sn�*'.]�ʎ�W�+V��σ��.`;:���N���pTW����ZD+-��P��.u�h��2����H�u	Hx��Q
�c�,��w�ɒ�f���*���P��B�@��$L��h��c�^�
Eיf�͙�fϹ����=�����B!�BH@�������z��OH@�I@�9<T�ׯ��1qkmd.�9***,,��,->���|kL]]e�Hgr�����-
�n�G
5�AAAd7��Q�$,[���_P݌F1M�{�ޢ�"8��b��(cvD�4�k6+W�Ę�('��O@�2���FKs9ҫyM<4�\��k*��Xln
}cnBt7=��?%u�7�>o��dO�m�h��<ś����ӧJ�ۢc&����--C�)���&&=DqtJjߔ��EǬ�	蜚ۦ���~�衊��m�|��t�+��x��_����̊+G�d�Km�y���I��Dz3�'�oú��D��c��B!�BH@�Z�jЁ_L�/�<�~n�p熆���;�—�f4��e�<�K>2fWBl�_�4�l�K�Ŗ�`&��Ǐ� �/�&�p��Q>�Nճ��4;�	h+]�'���dMZ�����~��sk݉���lF@��!z�΍pZn/O�6�ٻv���[	hҟ��m1�{Μa>�

wo�F4?��J�1�fy�϶�6=�еMM}환�3)��=��{���<~M"Ǎ�d;���t�ss��V#4c���c{��__h|���L��Ŧ&�1��).)�� >x���{��)-�B!����hU@�I@��;w�_)�ݲeK����P��i1����S��A򚏍�mII	&�n��kER`������,xd�.'�����M�3��\�]���<8ޙ^�/K�-4�?M@c�	��H���;��U@��%��dI[��e$w�:e~ �;�����+Zt;=���?��l*�[Ph���n��r�H����v_L쮺:�V�?@]�x���ij�c����8�9�JJ�V�㞸����WU�֭�m�����^���Y��	h����FS����k���[�=#G���k����:mڬY�;���Q4}��5��B!�BH@V@#���2��$��C�R�He'=S�L/uv�W2�yhѩDj6�J2[rTqqqHHql�gl,��̮���|��9+���s�F�^�4�Z���;vl�ܹ8k���`b.��eJ��%��ez���*w&�9�ԩS<�ogǎ,sȲe��.��)���B�����BB�{Λ7�O'D��nϷ����~������9��b�L��FBbD�A�ꨪ�8�ԕ�S��޾p��9o�-(��gB���QFm*��Ν��}G���;o�]��s���i]_�t)�=E�%~��ے�},Y���ԩ�z�Z����9}�C�B!�B	hmB�&���C�#F��̈́Q`]��7_	谒:T�t�!�nj���1�…�(#�9�K��)S������y�g͚�!�!���e3t0yʔ?3ˌbf&\�LV5�!==��;�&(����1w�Og@uu�m
h�g �9'I�(l|=���j�+���	�o�:���\��f��gd�J��ͣ�Y
��zb�|A��:�#j�S��n���a꣍��J���'=��G�s{~�lV�ʃou�o~{ҤI!υ���K^WUU�>��۾#K@!�B!$�'�9���t�9r���ٳ��X�o�����y�N��ba�� 0�\XXh
����
Ϝ-�W�Ⱥu�.^���)���/_N�ڄu�I����Cq4ʛ�n�\�^�ٓ�v2�/^l	h6�\"--
��	�4'�"�kkk�̤���o׮]�U@s�9s氊�-��2rNN�-���C�rw�
���~��{[[��N�s51�T@S�Lt����C��j�wl������qӕ+,� �cUY���5���dn}�����U�V���aXE�Y�~Y��Пl-b�R���
���=5�U��,�&v���aٙ7>)�����B!�B	�
hmB�&x�^�J�1$�ͨ䶶���u���%9��cx�Ϟ=�&B����g���8�Oxeee~~��C�P�7�k�fsB.����C�$��rc�1��0>�u�.�%̄5���['��Y�ñ����17n�;�N3=&�:�!D�̀~8Ӊe������Ȁ����FC�{��W�?OWxq	������>�	_���ZB"%�lB�'-�G|�Й�ն�WeB<؄�<X�]2�7En9r����*�=�Q�Fnذ�O@��}��eÇ��p.�o�B!�B	�@Ep01	h5	h!�t 49�7�<�|�56HJ��k�3�N��ov��,dS�_G@?mtK���^�60쟑�=g��_JH4:����}R��3���&��F��t�F�rIɾ1�G�

5����ssK�����'�́���g��x���<8XZ!�B!�
h5	h!��,
hv�;���3�lBȔJ�ݞ�Iɏ:���t_�/�<����8[t���>��<0��@z��<�#�6�=sr������7��	�ug� ���Ҹ����mko_�d)�y����Z:|45��^�f�Q.jmk�*�)�����O>�c≂%��B!�Ё߄p��O(ZMZ!�f��{���|�G}�ҥ�����uS=6#�˱qw'$N�xy��ҥ!�m�gXfyPn�=I����ܵ��Pte[�4	讍ɜ���9�#F̘1c�^�_O���'ǫO�b��ihK�«62�m�}GZ!�B!�
h��w�1U�a㲗��V[��"���pG�G� �����G���C�Cr瀐��\�"H"�pы�֜]lkc����c�*�t��=s��?��;�g�=?
hB�"ގ �AU���bd������''z���5��hJ_֔b0�+�������3���l
s�!�'�Z^����D��%�-������wj�L������ ����c�>U;��:I��R� �����x�_������~BM!�B��^��R�uL@�(�	!ЋS�34D3!\�)ݤm�P���E�ү�+3���%|��j噳/�hެ��{� Fm�7�v���Ә
��3�>S@�����¨�/ƾ�26�4<���g�)�	!�B!��PT�Є
�*�q^��dTWop��%����+p��1���qF4d4
�����q��au�۵up��&���(,p;4!�B!�z�!\�h�[�,m���u��8X�8>W���U��"�{LM��^�Yp���f
Z]�2Af\`���~�v\��R@/�(�	!�B!�K8z�	h+�#t�fi�<�@Zf�~Վ��.��[�>�B<(L����0�+�޻`
hB��jh��ˇQ@S@B!�B�r�^�<��'��.w\�5p���7>єWo
��C�x�tB�jhd4:>��B,�{LM��fQ@S@B!�B(���hL�P�g�8_��Q�ݽ'V����o��U����64̊`���X�k�'
\�b�۱�{��}���?�n6��|Z<j����B͢���&�B!�P@/����h�]��W��:{��&"�lf)���o��Vk���>�>�+xaoi�By;{�\�7C��6m٧P�nD\:E�~0-30$�i��`��mghā�������0�Q�$
��@^;L��u?�jd���러J����s�LMM��fQ@S@B!�B(���h���2-���g�0�C�ۇ�G����&b�<2�s[gOG� T5��5ZO��&���A��C��W���]��Gaq(#['����<N�����}��g��w0;'��i=^�>����m��
��xuqi9zڻ��ow�ЇE%Nn�
h
hB4�z�����1�_g!�B!DO�8�/'�dG�/�B&�T$F�Y��[[�8��i��o�tm�au�<:��L���p����w��#�r�
"��s�O�P7��yl�[c%QɁ_���1	1�)�Za���3�s`�!��/��S8�zRg��Y��r����tDt<������<���p��مf������~21��ݩ��B!�Bѓ4�sqI�������^~��
rO���;�AAQҁT��svn~��pj����"X�^�MېSvtq���컩m����������-�I�x/��y}mcֲ]a�f�MD0�C#�Oۻl��
�1����Z�b���T���=���9^
�P2Y�%Q@S@B�_&'�*�l.�2��t]}�W�hDtYϨ��>������m�B!��w�?U�q��_Z?������$HH*2!WEAԔRLE���(���H�D��s^X3��9�ߪv�����b���S�y>���{�|�_~����p������ɛ�_�:�5�Y���b<��2��'5��he���[���O4מl=�ڥ�ZM�+�"̑q�ȑSPj�}��K,���i���zTCK�v��N)t�oj�[�Z5�c6S��c�%e�U�56�t����
��Р�-�v@@p6�33�/�����q��W�75�O�|dx(G�w����o��qctt����>�:���{�Rv�]�|�u,ap����i��Qb9�Е�'�8+����ZӠ[E���-�Z���?:lК��遡��	:�����zX��v�n�>R��L#8�]�Z��-�M���
��[��5�@@pf?޿�b�ե���g)G�K~AVo�͉�q8�����Ą��Ow���h�bNLyW�osGO�[�ᄒ�W���.���V�{ '_�5
�*ԭ�}W��_u_�]~���A+�G��+�։���c�mx�����m;��+�qYHد��)+;w6�V�"���6��z���Bwc�344g�s��G�]r�CS��G�vwO^�z	322r��e����Z�iZb�n�Q�j:�^�����#c�:���ίILQ���u��194"���;>ic}s��k:�:��0�^�����Ҋ*m�+������v�;��7���z���
�5����MQx��m
������W�	�8��񩩝����l�#*�6�u�qll�Ν���o߾{�����#x:h=�:���3�Z�Ϋ̑'Z:��<x��N�Rj��=Yz,֣�kt�&r�ˮ�Oԧ<�٥�21��[���G
gh�Kk庤T��樸�S���Q)�n뱅E���22>��
���HZ+u��V�S�~~�z��L�c�����䦴�
�ݝ>&��l������g�7a�?�����%���1Y�44���^ItMCK�ź>i�����b���]��-�kˎU�UTmܚ�aZ��xy���)-��5d���V�Wk�J9����cUuy��:��H�S�lӀim�ݺy�����+j,֚���7[��b�7(�6G�j��}��N�@����p/��y�F���W��V��)#V*=w��
��<�]�<\��T����+yv��QF��g7�n��Z�Z`<A�Zc��^ۍ[��@�W�?ڸГu��5{���Y04@��Ş�zn��W��@�U=�Í]�X��/4@�
��p)h��o�AM@�<�0��7��"���� a���2�:�7��}X(vVL��9��#+��%|�+8h#@����\�d��@�nv�
#@�m��hpt-7+8�
t���@���-@� ;�h#@��s�ݟ�.+8�Z&'��
�m��#y�C^��'y<��u�����WjM�qk�?��%�����y@�U��Nx	L�e����B{dB	-4�3@�@HH��۸�"Y�X���{/V���{�ٖ����Aҕ�v�2���,�}�9g�+k}��ߖ��2d�vFkW_aU}^ymaU���e,����DJ�™3����:]��[��.��]�C�HG
*�z�FV<�7<J�*4wW�{���ږN^�-�)�k���9_-͝=���N�jʯlhu
Oh� ?��.:#|r��NM��Tl]ߩ�3�:29U�;9���x����k��u�⊭�Ki�>�02srÉ�cY�X��3I
q�B�7�m�.�=�S�����;Guo͞Z8��������a��v��֨���g�k�O<��-��O�\?!��usﺪ읠
ۜ��n�c>��u-h��m���S��nz>����Z��W� �᝱5i�CK3���X*K�8���>���O��11w*���1����mY8s)�2wz�0�nKT�]�+S�w���'�^�	=Q�7�����/dȐ!C�2d�C�%/	�eȐ�
��)e�m�7��jh����-(���r��z"a�W������ZdW^��R��;�ӑ��6L�
��+j�m�nim��k������;�̒ŪQ1�Ƥ�:�έu6[̝l��VC�f`������3�x��>ҷN-(��1�{�{���_�	:�X�����v�>�+�u��S�žJSm
Rm
]�>V틄�v�ϐ�I���04}Łhն��r�D�e���0p���P��hV���ɹ[
�K�G��8<s�ÐR��p��~�}U�C�s�)���&�g��I��@�=1��G����{�_��D�إ�̓g�ר�G�>U��6�y$%��K@�5�J�7�������}fa�"h�蝸�*E�1X����#���:�P'���������<t<�n���=��[�j{�k�m�o�W�q�<t�4��IѴg�	�dL�>���紈����;��)�id�G�{b��}���qi�\?8�>���X�FV�^uIm�B�2dȐ!CƷ�ZZp�Kh2d|�"�����[V��38�����m�2�J�=�����?�F��z��%�͟DD�κ�wՊ�?dWm�t�.$̈�#Rr�X{n5w�l�t�wp�����:�p�z���FS����f@ޭ�"k[;��<"����|#tkD��{@\�ٳ�[ӳst���Ӥ�c;�w�|m�2�!�#�J�����2�Q�c���Qی�cO��Ӄ
��}�J�"��«zC+{b��f5
n�@{aQ�7���S6�2���%�<����F��N��W�S�?	ODB�{���n�������'��Ч�3K�dz�F�BW�=�*X�?>`��:g�j�DV(���/��^L��%~8�^���#��M�U��OT������w��Z��T�0P30��������͘9�@��;����c��&�4Kd�t*�[g5��PL����Ln1I!�N`�j����KzƊ��䞧z�sWt�n;��ǯ֋ek����)D�/��>��#
��v�G��4[��;>�96sQ�t��N�N\����U}�U�!>�]�N12dȐ!C�2��hi�!/	�eȐ�m���Ig��xS(��?9|< .U|�=9�v�oP|zUS��<��Xp�t��%e�d��#�hl�8G��òtL�A;o*�.���H�^�}b2!�xpt�tUSkfIUg� rl��Ĭ�j��$�rr~�ۉ���1��^a{�=��P2���-<CH�4n6s�,+w��x��O��3�rm�"���P���
��DcG�z�1w���ܒ���������щ����@Rn	m�G�cJ!��;r�kv��鋫�/W@{w���T4$+��k]X�^u-��I�S^+����N�Hp������?��SҩAr��v�T��a���
,1Mk��X���#+U�t���%��mà1��No��Ī(��)�XQXU�$��J�Uf�ҭ��4�ֽ��Q��Z��zA	��{�5����w1
��B��Ɯ8~8�G���h�)�ehWl���a�=H�E>.�E��	u�uHM��Ni�N���z�!����z��*�6�u���c����~ۿX���pap�{�����jf��K3G��qp�hf��Ǽ�����#*i��԰�!�����F�����EL]���J��z�}�=wU���O�-�N�m�*s$l^Xiz��K��b���'��o3O��%H�N���.�2L�b��AP�SNYm�3��'��x/�Dy����4�U��ܽ䞻b���<���%�݃Q��i��hL?뒃�yN�k�
�"�*�Z�	�n@	�;��O�{�Y~,���6���z���ͪ�?3TL����ń�|0XN��0��|
7FV��{�$b�-�SA�ع�	��#�ha�1P&�
��|Y�3���(��0��&��o^�y ����y����)����Œ;Fg���)e�1������J;G�M��.I�!C�2dhBhi�!/	�%��!C��1��:�pi����%�M�Q:�Xs���x�7��D�	����l������9[����磣�K��F�/6��m�Vg}��F��!:|?ҳv'A�(��Z��<��
9¸�fB>7u�L
A���ջ�#eu�paǐ��T�~�9eդ��vZ�8T7��|��z:(>S���EZQ�����������²WhH�nk���.��j�!ч��X8��sw��KMK��	��^��I���$��=���1U���
5+�]�/���k]s��#�{������Վ��ۣ�!�z`�1�OoD�ʭ-��5������/�I�Lүy��ۤ�ҪO�	(&����JTQ*x���JZ����,��>�a���ޞȟ'�Glӡ�@�l��H���O��!��kGxbӠ.�6�h�����������-�����U��A����_ג�+DS�͆��aME9���xk�n�L��3��G�<���U�{ʗf�

S��z&H���#ʹ�8$z�Q|���:��i��2i����t`y7ġ�VKM��Y&�k]�񲀊�s�U
F(W�Li�oa�0��q���A���8�Mt4;
�.�`��bye�s���.D�z	5�ə������Z�F��U+9�a�,'�	��r��gjp̸� .�(�JLΟbq9/�&m�HÌS�Z��:2}�I�ύ�W�������O!i��z�>Y�15כ&�zo4R7M���YtS0h�gطx�1��ñXT�i���v�(���;g?H![C��7��|ͫ@�u�i�
F�$lrZ~lw�i"[?2�c�o3�>�ϻ�$~���	�ߡ�r��C�[B�(�>�466��ZijnǨ֝c�zC5�u#m��fS��9��gY�|��(ms0+�]�/dȐ!C�2$���h��\���\h	�eȐ�Xv��񊆖�=��*��ȖS�-#=I�X��5#v�	��dj�\zx|2>�x��Ӯ�n��]�#�n'!Ũ�)�?6m����C���c<I�1�ܪo��`l#�P���;8���m����4��?
b[�܎���ߣ>'V�#ij�N�{>�����y��!8.<)���[���{��0��5�;*Og�Z��llF>݌L˝����rd�
�F�M��)�����ly}3&'��o�~F#����F�C<����/���S�ޚ�_K�1!��$��'���PZ�C*��O�5}<��vՁ��y>�a��ZQ0R�l�Fk	�z�X��OPd
�z�y�j�	P�.�f��k\q���эF��
}�~�Z�9:sׂ
��cw�&^g?�	x_�����l��ZH.��)�\�*��1�\>�p@4�;b5K�n`
�}�E�����}Q?�B���/tj��=㐉W5��l
 �T�M	�^��ET�.��o��b$�c�w����ř@�G��ƨ�t!��s��@<s���Af���n�R@,8w�"5���b��[�ʄ�c[a��z�E�<�"�>'5�.�/��GS�'zN���ar$v��?-����S���}'����Lo���4H�x�6X!�򮂹���W���1�z��H�G�|,5h�R�4ܟIYc��ahi.�}I�w_y 
!�W谪(6�eK��	���Ymôs]X��|��K�$
$m��(��~,��}n������Gl3P|����]so6M`Y����Pxڿ��{!%,��%�cP��,��S!*g��(�0���(�[�E��ɍ�$���4�����z(�-U��A�|D�θ�5�wk����F�L�I��|������ˑ܎F��2dȐ!C�@C��<��Œ�{x�W�>ȿ�?�Ľ=v�"�w"K���O�?�J-�2.9�˪���%y�0q6u�C��W-\���>ϡ�q��0��c'C�v�
��M�/U�-�q�ə����@��eVZ�=6 <��b�l�hzjf����E��^a����fs�dj9���k�,�B��D��.���-�MJ�г��yBh������I_�{�;��rc��]	m�TZ�7���u���m`4Bi~+����#��BTŅ���LU��(=�:�r�E��Ր�2�]���
�iaYƻ��� 7O�o[���C�
&	4H��1O�K�ȸ:��+tT%�M����g��Vh"�e~M���浏�B'�&y���%���� �:�,�eS^���a尼�s��ٛL�����t��qX�R2����y���2��XI�O�
L�C��/�iZK�ѷ��3�z�-WŘ��r�o%
���~Z��3�n˼�^&~�# �����W���Xf4�o�Ҡ�qFN�cQ�M��|Z�'^�?	��<	�;ܜ��K���I׶EW�.�ˊ���^@��2Ņ]c"�ڙ���S�6��r��˞��K]�1
c~ő��:��T�z�Ҁ��2��K�0�À�c-�./n�䞇f��Wh^����lB��9����W0��.[�"k������`��5*w9!�v�������1+Wfp)��j,2�z�QIm��Yy���a
/�J��w����X���#�0�Svh^����1z�؈���M���5�_1���FW���o��X�P��S�[��Ȑ!C�2dH��P@�}��<��k{gӶ�F;���a�wݷ��`%>��Gm-��=��o�Zh	�eȐqi�����5��{@���>(F�=C8HXy��ON[�E �%A~{���%|�ׂw�
Y��[k@!N��I��������h���ª����h�������<8��)�V�
/à�e5��@uƅ�zbj��v��`b�^T��n}k�sX<���Y�J�А��辡Q�L��Bh3��4���	~�ȓ��[-�9�H}��5�j�+����u�%�;��M�qf��ᨋƾX@�Т���}&F�jL]ʩ�
�(ǣ�c5�lK�'��Ƌ:��P�hV�{�}1�={y���7�%��$��I�.�&sK�������*�-n��޵FԐ����z�������A��P S?�9��C.:�����z�1jLB�H_�F"��{bTM�E9�*.�KE��‘u#���P;�ߝ'T{#I@�V�@�b�����a��V�o0T��u��zA��D0����G�
�qn�`�`}.]�!�;�0�P2Q��y"��	`4{������:��Q��*��t��_D��>S�|5��9a�t�X�y�i�Ǻ��"�����IM��e���M�]:����ߒ�c��M�P@����Gf=k��oXE�h�<��Ȕ+�� {�#��Ԁ�u4����K���]5_��B�x��o4�s��څ��4�f<��h����Y��IuJ�q���;%�!�4�.+� >v�Z#C�2dȐ!�7@S�9��+k��Q�O?gbi����_\�[T�W\���o����/]��|-<:�; Dh	�%��!C�%G��0�.a�8B(�hr9a����
3�=���~q����d�05��h�����?d��]��5
����
F�
���Zx�Q�Н+4�h+�p�PA.���N�^N���BƗf�:�?k�Ӥ����Y�n[w?�����s�jp#Qn	�tЃ#c�ip}[�����Nྦͭ�-]}��4�E9^�I��#Rr.@���lB�pm�;�[�Iq!x[밌{2
S�Xȶ+��i�Lp$�>X@�|j���"��d<�.�O�/.�Z@c���-O�X?V�P]Z�g�ܩ3<<�\`+��"
����������d�^b��(�w�*�-��~��.��
�E^��Džh�k+6͖�O�g�+�`��×�z{Q1�g�4�qp���[L8�{
ܱs�3��
Ȗ51�&K*��F��
4�a2N(do4M@�+.��ɏBK���բ�$x����x@�TJie��"�ԂJ���-�X!>Z���U����23�4�gL?��8��]�x7̗ѧ�ǥ�"4�����fp��/��j����
&񈠅^�/mX�l�fW|}ж?|<
@?�|��6�S%��Ɨ,�@��v���(��H�])nk�"���:����4�fu����Θ*�����i�3
��U@3\t��߻�N���O�X��Y�ٵ��@ː!C�2$��&詩�KT@��M��g�G�&nݵ�����Ɇ-A�Q��e���iY6�qA��H,-_��i�ڗ_
����
R�G��R��/_���C^	�eȐ!Cו�+2�buN������>K��E&�VX.n%��
_��c��)��������a��g5��p��b�ȵ��AP���𹹣���.D�m�I:���V�Qɤ�*>3��<`�i����������b4Ѐ{�r�;�Ɠ?;7����W
����4A+�8�1Dι�%�����Y���r��…_�����u���V�h�G�
N�H����SY�s���z1��`te߄�{O�f�#ƅ����]�r0�*��꽑�8d�@/�

+�u��G���Ο��j�a��=��B�ed�&�x��ٳ�<�ʻ���
�-S��FT�^�F�,���Zq�G����W��٘)_g��ub]-rPI?`���v!��P��R�g�^��I�v�_i��w�잇��9�}]x�Ij���lb����I?i��*P�PB�M>jbT���[\�5}��tp
8�P�l9��s+'�h����8���I�͡��d�TBG�h��:f1���vg�_��I�^p�S�=��y�0`A �vil�Y�����Y`��ZD>>�1��y'ژz��+�G)c��qj=#��W�"��g�LJb�� W<�%q�2���z��_Y&cSs94,����Q�
�L�����m�Il ����_
�K{�y��M;��z�5����j��T��_eȐ!C�@�w�����o��3��S�x�;�y����ݏ��S3��p=9��������fV����_�n�{��
[v�Z8l�[����w���9��+�m�u�����m����	I��y���׷�242���g�{���VZh2d�X�^`F�'��k�q�H*�`K��ޡ�NL᭱㈋�g��{�Yz�"^����cR���c�Qw��I�K���G�3"�{���|�+l����
m]ܪi�����:->��n���ѣ�x�����yu��[��0��l��}�����-h����s$b���f#����=�Ł�'8�;�5�wip�+7K�P���nz���x�(��3���b��2'1TՑ/��Is� � ��m�#�;��8ԑ�eܠ���Ex���צ�'�;��oz
ԥ�GA��U�Ү1aȠq���]��'��'�V��a��@�oj�_�EQ���F�{�jT�B�lr�őn�A������ݿ"6��a��
�^8s����m3H�h�.��W��]���NQ=�2|rWW�k1w+�l�c5M�=j���Z/����?��J���O�g]�7
n��bn3�_�55���ࠐ{�u��#[��<v<
�h���E��W��꒫)�/��s���8x$5����HS�vx�6@Ɏ�V���^,UN���3��m��znq,!m_�b�����S��k�r�þ�h*��[�Qu�S��'�@��Kε��4{'Zk��zMS�I�d�w�&��K���m�"S�@K�k�TJ���T��y,+4ګS@�p��O�'����䢞��{�F(����PL�[��/6n�L��ZGi͜����fδg*Rwm��:�3b�v�U|d"�ؤ?D�5rN#�twG�aHU�#�
hf�xWq�@3M���]&s��B�Oo�i�_�b���ΟuȺV?v|�ffssx�x�2K1X��Ŏ��k'�N���
�$��8D�U��-�����W�))���ٜ�ŋW��n�8t�޽��$q�m��i�>�4��rJ� h���M�������.9��_(�ݔ��ø2�{��UU���?e�V�C+�45|��P���fR&�2�Y�P@@|  ����#������+�t,5��
���|`Og1ދ)H��Yg�����*�s~�B	�-�;��ă�����U�]���e���g�[�v}̤���!��]�r�:��p#���C���oe���Xh+s�&���5ᴏ=nO�켢�"[����t�JHN8x�)�^�lU��P���E�{Wf����ٱ�C�z%���6����<;����֧�K�w�#am={�R���]�c�r��;�t�F4ſ�eT��#�x�A[Q��u�/o�)q�c&$$��0
�>0���oΘneSz���e��-���e���wgQ� [>���
;s���H�0��\����
�MGjn�.\��R�̙��eb�)�&��l�f��#_���c��՛ws�yΪ�&/5�u��P�m�u��On�.2�����:fe4:ݵ	[�9��U�-��
�]�����~r��U.��u�R�ێ���8ŕmɋ�UJm/�P��e\j����s��_������nU�;�G	�>MЄ7(
���Q�ե'�|�<v��Z���e�h�)Ά�;=��c��=��_��uttr�)�%[��e�������O:�h�{��C�^l#�����F��VumG����q�!9���/��h���c$���Z��2B�G�{`����X�ÓR����Z�}3��,#7O�hFc�8�)&����x��	�ͮ�#JP��68��MA#7�����o)����J
f��Y}��R
�7�N��Z�>�3��.ʫ�щ6e�C۩�ց8���n��%��d���\��F�үy�3��������<Ɍ�<�����؇:+�8�Me�P�i��.T�l�����BN�r�_N0�"��h��^->X�V+Gen�Q�A�ZH���.�4L!?��kX��pyjYS�Q�Ɣ�!�y������n$U}˓�
��
�r��qʙ����K@�����
�9��_aV�7w�mK�>C�7���g����m�����D�X)�<��B��B��I�&؄w{x����B��3�r���A5�*�}+�0��Iq70�|�1�m@����
m_6�(����`ڙ����f��B4
'lJ����?kBB!�BH@?x͉�sr�y��s�n�?��o8�'z�q�����9�%!��?_�Ds����R��g���,[Y媰����|���gd4�؋�u\��7��1��̜<D�s��=錪�ؗ<��񓧮��f��M[��V��Bx�Z�u��M�'�H_�a�`���Ď��&�c�v�/�e
�\�	Ǹ
�����_�L2�9�~ɍךi��p�G��al{��ˏ�/�7H��Wޗ��0�����o�(-�8��-��fl�|m�g���r�����W��u�iG�R�|���M����k�\hh2�i�n�xF��h�ox�/�~�B!��h���Y}���
1�/�q��8|�1� ��'w�ޫ��P�S��?n�£㓶���{���?k݆���?m�~ʢ��Lx�{/�.
�3׏>�#,2�Q^����?�Գ�j�u���w�_KF�Co{%��B�! ���ٻ\�l�wri�q��[�ߤ�S#{���=��ӻ�V��q!�o��nz�g���V�;�}p�Wg�e�{��5���� �zKNz�q�5�v�_�s�����Hu�z����&�h��͖C3�$��62d�w�n��e���f�o_i��珶�-�v�Lj�9~�O�>)]�p��v_�;}*����7Z#_�F!�BH@�'��Ν���w�f�s�y�Ќ�A�@a�>4�ւn6�a�l�ڤ�ӳ�,&��h�]U5-XJQ���,/�y����й;���c��ߝ1��Z�b�_�u߼m'Ed���%*:+�	N4S J@K@!��C@u��̚�"��1Т�,=֕�&\{�j��4��^���c6���^��Ê����]��\d)�d���������\�~y$��e�C!�B	�!�qʨ���rt{�MG�ill������g"5��te(��� �)|~a��+c'd��#�wg��&$���?Ph3����&��e�~q��hJ���I��5;0(��\�|5:)e7;95-"zcdl��Ma�c£�F�S��B!�B!��]$������'d��̙3t�s�&!�0����=�r��P͎=z��:2!95#;﵉o͙��Y
��8����_l�S�!U#*.��K�p����)?]>�?��ձ�:��oO�I4�,6A�}���nݑ�,�F�:��~�U��B!�B!��]*����͞��p���655��-�8��fA'nM�������;t���MIen�1
�=o%��2�0~��Svg⋉~N��+q�/�|��Б��ە����f��vdd{Є>͜� �DO�4����B')e�ZZ!�B!�B	���A���ѣ�V쭰��>~���k�L�sg+�M4!)�3����l�8K��'g(|g��r�2�������̦�'���G�f��H�?e�$l0BlB��:����YF@s�i���j�Z�&��i$v���π��b�+胹xjAK@!�B!�B!ݥ�8hZ�ZWWG5���>q��O?��q��3t*�,�g>j�g+��6n����&�0kl��7��[G^��%8�2����ϾП����q����-\J;<|���!��(�O�5�?1,2�$h7ؑԎ9/��

�
��
|/��*��B!�B!�B�wЖ��[���V<4'f���:b�0	��ӿ���0��L'hme�xh�0� �Xg�CX[[��+�#��Jf��mK��}��Q��Nd4���g��j�%��B!�B!���t�h��0t��6���^2c�y��]Z��]�J@!��/;w�Q�X������+(̰�<>��z�s���h���}�-@�
t*@��6��@�&@���h��	�4��	� @Ǿ��M�Z�6Z��߾��6�h�'{��� �at9�CM��EM�I�_��F$A��F��O�p�!WO@�
�&@�0���+@w�z/@�
�8:�O�7g@�
�Gpx�h����9�h����hh3���KM�z�3�
���.��<���	� @<����Gp�Eh�˵9�yX����:̳j�lU��Z�^��_塭��p=-�$-������-@���{�i��8��lK�Ƒ6�('9y���]6���X�DDc��
�Az��"`ؒ�5�`�gi��
�'����ኛw��>�|���qjf���~���<��)���m��{ko��'���j�5g�u@+)��i�������*]t�����k�
'�1�p	�h �v@��_,}�p7�m�y���{�@dgnq���u}�Qh�c!��/��������O���Bs�b�/�3m]Ve��p�iÙ����ݏ�>9g���K�&@�}t��0���<<fWq����ved����ݵ�:��YZ�1fw��|�
-i��⒊����Nx{z~�\j�tfn�sy���ye�է��i���Eͺ�A��vb���	���]�q��ڏ���_{����֬5��˚t�u��G����]\u\(��g
8�X�1kbz��i�z����kh
A�QS�qh�M�&@��Z��;�6�����jZ��_(����n
}
Ѕ���2|=�WV��75=�М�S��W�Gƴʣ��:��6�M�btZq�o�g�-�llQt>Ц���:�}��1�ҚG�8Rҳ���5O@�0�:�Ս����o��Y�G�&@���G��:�K����4���lVq>�6r�7@��F��p8��:Ք���Ѫ�uMw4R=������z4����'^Bx���l��t}�Y�X�$�I�C�6ld\\^��WgS���^s��F'�J�д�0����?���	��������������ޭ�e���cݵ_�K�^�k��f�;�Zgt)(��Y����_t@C�Z�ꮩ�w 293�
D,h4�X��A��
m�Xq��T�8�yg����Kk��`卺�O|
�z-�Z�f������vwhtZ/$4��h�0uyU���[
U�-]��h4б5�K���4��n������km��_
o��bb�lJ�j�ݡB��iիͭ�lp}�?��lh��3�VlhU�F_�'&끺�a�զ��'@�	�?�ݻJq�ự��eqw��
1�JP��	��6��H�܄�6j<�!��r|q����2�Ç,3����?��]��e�l���~;<>9���u����6G����IG.w@�V���>ws�9����v�X+�yCv@��?�Y˂����f����h�x��agw���V�|��h�j�r�s����B�g`A�ol�Ym�Fr�,�Y��+s�+O��9g�Ĝ)�P4�eg����<\^IN��n腥�����z��-@ @W.@gr����Hq��ޢ�S+�q9���E���<����\�c�������z��-@ @������������+�[�
��'�Ed#@�ݑ���
��?�7h#@�ݱ���@�~����@��T��f��@�~�m��xd��U�0��
�"X�b!)��&e
�ܙXy�]��!^��:��&��1����8�[�q��y�.aa���9�?@��h�=Bh�
��B3h��
4MB�*K�qIZ��= @;m&@/DU�we9��:�2K������%	�y�A�=�w@;m4�(Uw!�/���on��ڶD{�zpx~���X��z�n�;��
���	�@s������mo.|�Y�ٵt�m�[�g1��%Y5���^oP�h�h3���MQ|���>?����i��>T�hu����v:��
�m&@��EQ_����a�1�C�ey�� @��L�&���Z�n̪q<�th����7�e�����	Ѐm�
��yPVW��{毮����J�TM��fѸ�o��,�( �"�&���A⮠�,���(*���[ܗ�l�8���]m����<p�o� m��j��թ��=�{�'����{E"�H$�D�@�Z�衒�I��/���:������ڕ��z"�-E�h�H$�D"�H$z�44��$�Ѓ,5��>��~Ԁu5��>�|*���+X�&Q�9�Ϗv@����/>���{��GO����L8(h������>�u�VOO���R@��D"�H$�D�_]��啦�����
L&�<��$�u��秌�?�kln5(����g<��Я,�V��ԩSeee)))III]]]TҤ�Nmoo���OLLLNN.,,<���-���iUUUFFFll,�


�'v�u��닊�.^��v9�Gmmm%%%|r��g�U�@*//'f�P�������v���ؿ?�㫯�b�J-�k3b.���-[����X�Й3g��Ν;9fO�*9���R�����Ȧ��b //���qŊLȁ�I$Z�h�"�H$�D"�H��~MOcsK�+=�
�������3���˰"S���诮=g�G�$�{���g�����ch�s6§�6���~���Y�2��W@�������������������✜�

醸�>}:�X1\6��,Z�h���41	�K�.�����5
��1#�Ɋ�/���

z���ttt�dnn>a�>�-A���޼y�MMMU%5\���͝;w�]�����@�)YZZ�����v�&����ɓ'�G6�mVV�ԩSم:F\�z��g��ի�YE���4i�…����%��w��A�����/�Y	�-E�h�H$�D"�H$z��ˤ�z͜SQ�CD��W�>��y�d��8|�p���}�������-l��SӉ6q�{�^��@�ц�Q�.]��Of�K�bE�	���Sq'W��g!<]���_A�H+�Xt^�|yxx8dDK
�V=P�;S���ټy�ƍ�M���bU���
x+Îcbbi�à��U����tpp0�`��\�q�1cƜ>���1�)SfϞͭ��/��۷oCf����������h�n�l��ׯ_W��:C���eff���9��5�e;;;��ztt4[`8�4����_�v-�k��{zzҟE����?Ws�T0]	���&ѳjR�p����T�|��]U�:�=DE�RS;��flU��2��f\M�E�����֔�[
c)ϴ�&
�-�D"�H$�@��)8~2��~.
Zv��Tt®�:��Qj �\� B��L�C
�_j��ψ��q%��Y�(.覦�nUR���,nln9�y���nOFnzN!����Ԭ�6��Z�ڑP�m|�}��ba9V�n��f�/xGY��X���iR�"���.ٛ�� N+��+ڧ�<������&`�CGۢ�F�ѣ@|gJ���.Ա�#R�}�j9�fZ�C
���ƍ�Z�&�T9ѧ�~
��ϒ��15+W�T&\���s��iL����s�=r��pZZ��T�4
�UcC~6l��|�@C{'N�����U�+M�ffc�Γz5��2fXYY��OYS��%*i"f�ֹs�����?��c*y�lذ���۹ݶm�o���U+���٬�����qݺu8���X6�;��fQ¦�L#��Ϟ=���y��!Bbi�&Κ��<���
�
@s�K�,!4����,W�\awBv@}���|���?�����ZN�o

G��C�i�yLe���%�-(�����a�E#J�hYQ9��DS��
+*~��-�����S@�D"�H$�D"�:pIȑ���F�N��wv���N�����<m�a?���p�f�5���71g ِ���T���>~��<�54��@XsK��!3�'X��[N�>���I�������/K8�L�����z�SQEMˉ���D[�8���ʺF*��~��X�	����t"K0�$GW5���픩�ҲY���ɍ��,�l�8+#���Wr�0����n:Ff���������K�>:lnmO0&`�����L�6��u:=�欬�g̚��3��b����[����G�'��������y^�V�9\�{����&$ZV�0�AN���V��\�PhP&d���T�VS��ԄC��ˋ4�܂�����˗/k��Ҫ�5�Y�1ٟ5�<x��a~��,������}!!!ͭ&OVh���^[�00Wh�����5	7rss1tÈ��܂�������-hzN�h5��������h~��x��ұBC�1��#G���kh;���3g�T��}��l}}}���###ynҤ6�ذ�0M�L�---�� =����Ȳ�_ee�ro�aa�KM�=0:+����6�`dy��ꚷ+��,.��;,3�2<+{XV�p
�:/xQ���sr��J%����s� �̀�Z�@���?.���wO4z�.�Tj�W��'���D"�H$�D�7��xK��Иs���$�f�5&�EU���"�/��/�kl��ߔ���U���sK�z�c�$�P^]P)3��;�(.�FǕTֆ�Y�|ʀiV7d`iU�ƈh5��^�t���R;�n���e��dLйE�Pr�5�D��'���f���ﭥ?`:�����؁�cU������e,�=k�8CӐ�5�O*,�V�	^���w0*>��މ#"&��8��#��+��4P�����3��spٶ#���w6���[�={.�9|ca���v��%�WA��%*��8���1	�8C:�<�pN`���
[���K�{�?�L+�e�
�"����m�$D��,��/�+ԛ�@a�,����yU=bk<t>��h5��0�8''�…L����`V|�$_>z�(j>�}Az
�
�X�zD�V���c�T���n&�Θ��OHT�d82�2jаfv��k�����g]�#""�˸�5��)}�W5�O�Y�A�t�Y�7*mkkkoo�Ȳ�r���g��ЃXȒ����}��ݺ������s������^�<:7�?�s�8�{A�ꚮ;w.ܻ�)����+W�%-=�h˹�w�߽�����_��^u��
��TT���k�ʏKK�I��48x������?���
��ʝ��]|BBTt�~�m�f/�����_����D"�H$�D����F�.
Z��r�h�������|L���í�g8rmcD?2x�k�����$2�b�;=�ʨ��$�ƫ3%�`7awjy�í����J�c�!�@�ؤ=�Z��$Y��_����gCV��}�\�kK+�YK5��'��Zڸ%�v�v�]�iݼ}�����=.��U�g.\]�n:|��S�N�YP��e�2�qM��'����;�\�k�=�H���s�J�"���._��8iLN���޹;������L��_̄%Uu����ؚ[;8R��D�����j8��+5�����f@?K��Ķ�g�-���4 ��]�6m�Q�i�C�����M�6:ɞ܏(/RI0nݺ�J�L���a�~�����[.�a��BT!�p^"���<�Ov?�"���		�0_��
.���������X!]%�<e���������h^WH�j&'l��h�L.��h�#á�Px�"��Cs5��	�
"'Cc���Z.=H������x�7}O����AO�z�]�ߺ���2�~���Z[G����i��Ν��ңNvq���G��)�.^�F=J�'����k�����u�C~;�fM�����Q_�z]��ONޭ���E<��_������D"�H$�D�_=b�.d։�L��=q֋���Q�s�mnm�-�����7�P|����(x9(~��(ݰu�`��`�*<���U���1��+�ցPy �1����ZV�0�e��������k�63��3�iS�s��<���wS�x`�r6	���ܽYy$�&yo�	�#l|JO���o���U�������W�1c��Ѻ-��#��44@�j�h#�AjlbJk�iR9S�;|�V��d��@�:��W�w��e�$�@cda+�~��q�Zc�v���sSݽ�)�6�8�{kTܛ�t�l�%���"�	Vp�,v��]`5ɑD��@�F��zR��{���d�`eP,�`J�^BH����	�6.]�3��JO�.~�~�+�|.X�`�S���P��k��z֬Y�F7.H�$t`!r^����:�ф�uOO��̐������c������4*�22-oA|>��	fsN�[^��j�*ҡ���)�S'xL�ܢ��F���0��=X��$а(-�cߟ�۷������ڞ��[�=x���7�--�{�:UUs���`Y\���gTPhTX4��T���R�l�<Ik�͛�IK7�/0T��%:�%o������?��$6.�@_�w�vvv�z~��ﺺN���Ƀ�"��n��Y�����ѩ���	~#u��%�"�H$�D"�H�����S��1���4�pR��;gw����;w���C%���L�
L��R�	V>��X�#w�'�I1F7�����\�2��%�񎝻���{ұSB�7�)3�.`Qm4x�hɳzwj���
���-��3�B
f��$��A�v�f29��0���ο�t%��]6�@X�������_�"~���*=#�u�9P8�
SfY�!�[{��J�3������ut|2}؂@�����@�Y����7oFl6��ȱ[��Z�Oa-��%���ܢ�I�.z��2)�A�nnn@Xj�[��;ָ� ����S0�\HnPP�&����w&�U�w����r�Ѻ�:��Bdт�,!& ;B)S
N�@@03�$����$/{^�I����@I*��p���E<
������7�/�s�}�=��w�7���������t:��,��5��z˖-�H�����;<�������8PR 

����'N���7��� C0(�@�d�pE6�]Mz�D��E�
��-{%�LqB�,��NSQ"�����U�V��,�9Ӓ͑&V�+T}T��_uIg�͜Xp����x�j�O�QR�vG���/��qM*.	ظit^>�'>��'Vۿ��wYmw��w;��Oqޞh�u�x��
$r�ݵ;�!3:3��������[M�����N�k3'gξq2t���G
��/��W�R�T*�J�R�@w���g@���
K ���nj�\S�H�������W��RB��
8i�z��P`>�'ƴ��BQ%U��f�-��F����&X'A����c�^�ΰWO�F�&̿~����=#8���*d0.����0(�<���1���������.vof�J�jz����f
��n8��<k��xnю�1!���0_��C�[d�����/��Í4g����,zY��$C&M'�$5+�n8�7�E'��
di�_RݱE���N��Xj"A� Z���WTT���v��qO�N��҆��H���}�v�V����˒�.�fh��a�qduT�\NQAJ&�k����
c�,
��rxI��|
}�A��uA�7r@×�+���jy��,]IY)���jhP$�[ȃX��Ӟ�
@Ϟ=�̙3Ғ�l�
��{�(,z03���g?��:`���i�Pijޗ��d�;w��Vu
:H��x�o3����;�ajڷ-��	����n������G���a�2@{:��6;Nggj�g��0��̟�쉄�h~��_㈋�D�|l�/����Z�R�T*�J�R)��;���-.`��;~2&_�i?7�2�tr�A���]_�x�
��_Z2rtp��n1����L����0�\���<�v@�k�_di�j*~a>������@�
��`_4aPWF���6'l!�� i��
�&F���h�f�u@�WNza�h�/������#W�.p������	S�JJ��L�5�>eA�����o�+BG|��+�&'D"8��/-Y�4�1��!0�C��u��̈́������Д��-`�0��/2g�-�$���C�/3��Z�wnmm��b(�X	�9$����@`.�^
J��7ЄD�`>1\f��[ǎ3�Q�Y��l6s�x׬Y�@�L�� �����A�ٳc���Đ���8�ې����
��?�p���C�8@+������>(+�Ë�A�����Hh��T&��ն��-���������ι�>��?4+{�+wd^~`Aa�̬5'���ԩ^�)�s\��w�0Yg�47O�r��z�؜+���_�UU��{@����?~<k�l^�{��Z�R�T*�J�R)��/���11#�4䗯����:v1\jq"�ѵ��/���Sf����/`�A4l�1��?d4����
\��X�g���<_�Z��-N�W��O�0m&lp�++VI*а�"蜧h�#�������#��j����Ǟ�mMI�,�_�2��%�ٻ��3~�t�E�SÃؓ�3��G��{�ّګ�@�zf@�����-7y:�h�55��+��%Z�ivv6|�K1�7<<d.���ʠcv��?>::�tjdI���(�|�!jy��6l ̔~�\�� n	�>t�W9D6�΢���D��da� uq��v�!��I����̓>}7YL��*	Ԁ{\��ܢg����Ձ����ŋ�=Ho�u��@+����=)�狊?�z�䝁��i��-f���}yuM[��ɓ��'�e{���x��о
,,�?#��@{�g�e�7<��y.�9��
͏9����}�[�}�/s��Z�R�T*�J�R)���)B�f��G@�X��������#0ֵ�7S"����
l0t�dhl��]X��� }�
�A���v�\�Y��Q;��I��l��O�{��dwU��{��o�2�)����9\<a�}�t�s�>�Ŕ�VT�"b��&���
g��o��[ rÑf@7n�1'L4���@?���4���͉+y����SG<R\��ɰ�3��f���+ɀf&�O��c�^���I/�2��8���%ld����8�p��.�@;3]���Z�.�eb����𚐐������0�n�낥�!4��UVVBF��2� Th2���K��nݺ�;�А�޽{���Ac��֭�ԙ����i��<����	�	��"�<H3/4Ll��.��r�޽{w��z�ƒ{��,���r�.]H���[���k�ɞ�9न�(�5���Y��d�J3I��'Sڼy3]�{�q��{��|Eeee={�Ġ��{ﵱx�h��O�>�t�"��r��x]\�a�ʁ�Xm�nB���[�s\�v��ի���Ǐg��f���9��< a��S�~�hj�li���--}r\}0VO�GDDĈ�#����ں�hp��pOMj_M&3���+8_���*�J�R�T*�J��4�|u
]��I3瑯EK`&�M��c8)�@�q�ܭ�=����c6%ȃ������ܬ���{��UP`�0����H��S���oL�6�q�
o��<g�K����\pU]ciE�{�� n1�[���<�h���>���VC����<37<2�'����$\c���򕪉,���z��P�\@�/z�s�-�w~3nKYE
(�q�ȁ����&3/��%��׷��Px43d��md���*h��s�K��R8a863&n+>n��5
I�9�xp��Fg�=3��K-�i<��C4��b���UŽ!¥��dD���4
Cr	�����X,0P�9xmΝ;W]]M��1V������
�2����\(���$5�V�ߞ���ٳ�ǀ�L���x[���F���U���A憡�p�W_}��ଚrG�m����l�WS�Ѹ����
ڰ��d$d��!C�����E
�w�\|B�"e���'"(���,�]�h?f@w���dw�{�<�W�
�f"�����n�?Nϸ;Ѳ�#�յux���!�l��d���v��~Rr����-V��--!�{�w;%�<��Mo��M�3��c�N_�sg?�Z�v���~~���y�	Y���+V��Gz
�U*�J�R�T*�h�R�����G��s�6�+�_������gGS�oȰ@�p����\6j�ҨU�.�i&a�o0@�[�W�0 �\�!�a��A�й�bN�.�UtՁF�4��&�B�<8��A� ���p�]Z���s�%_���ED3��Ʋ4�*pt��
�r����6�6�]�Ʋ|�K�Ȉg�Ȁ�҉LX��n@�h��/�sΙ��@������7� �ve%�{]p�W��}g(
n�:�w%:s������L����26�F26Ĩgh�V�;�
��[Zz
m4V��ڏ�b�@�
7e���o�2�o3'RT�
�������;v�m|V���s�����9#���:�����9�~�L�.���ܼ��
�ǟ�������-[����1&�ɥ˗�G��aqI���--���2e*�D!��)�V�T*�J�R�T
����ľ
���^���>���O��,
�<aꌊ��]���Y�1b�+��pU�M�lpUil<{��ګ=ᐉ�j�E�C�4��M�i\������b�}���&3z�����8+о�CA�I?���ҍ���fB�q7>��RX����l��|oR�B%j�Դ;a�V۔��'ݿ�Pq�L'�=�
�O^��%�i�b��a~A��<�
�&v�r�dnt���zf�^��'���9))���dn2�������<��/�h��(!�.��Ƀ&�^�J�R�T*�J�R}K�?p��X���b\�G�ju����i[HHȄ̼�ȕ�h�\Ъ���N9�"�7@�	����L�#Gy�H�F�����OeB�~|�����f���:��PtWg*<+���m�}�;-��.9��:+��:�L}�!�{22rٶm&��e�� ٹ����x�;�&O&A^4�a��+X�i9n�h�J�R�T*�J���E�'2��X�A�B���i3�'��JH���ꇽi�X�+�|��h��e�R-�c�&+�{��E�|����!~�ٳ�22��J�Arʨ��O�\i���i�`��;������zzΖ��OtO�7���f��߄��
2d�A��9�;w�[ǚ!�Ru�wOB�煅��^�:}z�̙8���5�*�J�R�T*�J���w@�8�P��s�t�nC��x@�Z�J���L�X�;��}�b��bퟑ9�|�Ģ�Iw[��nwH�F�W��S�\�+�XA!����SrЙ�Pve@��<�/���w����������}�W.rK�\����K_p��1�t���/Ӏ�
�U*�J�R�����yi:��8�t� ���cz
������?ք�}3b�#P<�Қ_�5�������r���ແ'�'>���z��(L��^A95�U�?^Z����Ray�Ium��DM�H]�����}�{�i||��!����Y��	���c��c���ͧ�?}0^��-@�-@����8�)�uS�d�jQ���#._C��b������7ģ�����O&@�`��0�Z�6�s��������3@���v�h@�6Z����7s/��	Ѐm�
��6Z�hZ��a��6�M����&@Ѐ-@�Ҿ����
��f40�������3#��{�ޏ��A��g����
ܡ�Cw�햪k�vvK[۳��
IR�?�ߥqD�rZ�v��l�mN@�-@�	����o��V�om�?Y~{T�W[_.z���S�c�o�K����3��$���`ۇ�y���R(�3"QQ�"�U@��-�JTD�&nY��2\65f��es���U95�i��a7?[u5�+w���{?���\ܹ�}�nggg[[4!�B!�;���AMyI~nC�Y}�C��C
�v�P�/jh����FlFkkkKKKOO�3!�B!���
��fP@B응����;/?txƾ����6�Ww�j���vb:::�Fcww��b��&�B!��#8
hB��Պ��&ӷ��}}ť7�M&��� �f��̴τB!�P@۩��K@GF��)�Є����GF��G�F�-��)B!�B(��Z@cv@?#�<Tr��
�2O44!�B!�B�����1*��̀��O⅛k�Y�_|���x�Jܽ,��
�jSJt�+�H���vka��B#��)�)�	!�B!�B�	h6�h�V�V�����3�^~��+I�d�g��A��՚ܔ�̀�w�J?����5�Ds�"��UL�p1|a^��:�n�%��[�L_��.�Z���)�3��/aÓR�{{{���kԲ8���B!�B!�P@������uhh�l�"�,����͛�;>�R�B�ܺ�=����[�����w�޽�g������I���[���@�1��,g��-�Xj``pm�{�n�,�m'��_|�D�ٜ���:=������)-׮X� UxCdk�,�nÖ)�)�	!�B!�B�����+�}��Z�X
��/�t���ޝ��>�E��w￙_'�b���Y�	�+Qx;J����(�utS<Ӻbđ��B=[,Q��u=|�
G%.2�������(U@�[cGiBr�H��OBIH�\�ij>�g_=ں���fhhԆ���.2,��E��ؚ(k�fd565�<���5\�T���[�
"P!��I��t��~�SS���7g�9,�Zv�t�'��"D:.�������"D���Xs�<�;�)�)�	!�B!�B�'�1���)�*�Yw�PrjF�����3e;*�d�Ac�]S�CW�sw�v-���*\-el.(�UUgfk���Ղ���q�O�N`�Fq���fwޖ�Ј�0��}���L5�7�'��R3�5����ie��c��8/=K��_-���������P6�b��ڽ�zî��5�ג���
9�)�x ��hgޘ�%2z�L�ag-�1��v���:��U
w�Ĥ��|C�|��krQ|n~��l.�8|QTQqT~ZF�\�ǂ��u�h,G='O}�:1�C8o�zc^z�qa�1r{EbEU
�,�bZ�1W���?'����i�K��(�)�	!�B!�B��1}�[C��>c�ó][m8�8�ɭ�f�|�����V$B��\�x��)�1�o��ڵ.ﭫ�h�`�Sw``pYc��֮�?�e����8�����|QI9�ѿ<�I�$f�o}}8i��g�������.b^�x'0-dS�V�?�����	tw����?x�W~��'{g�Ց��`旙3K�1�cL�d9'�&Q�%�n�DEQ1��]\GAqC����{@�do�١�d�c_�`<b����wLU��z�nիn�}�-�D��
�	#���y�b��a���B{DZe�#F�gȾ��d3��8ښ�IF���'j��	Ԝ�2#/?�\��nn�[��n ����7��i��z�Q���/}A���E_�1�kˤ�ԴtR!7���ە�VZ�P(
�B�P(
�B���M��um*MGD���?�j;y�t����'9UY�W�$n��Y�\mQQ���_�}]j2���B�� ����ZScu:����qgC�͞��l�s�a�� ���V�!���k�v�8��i�ܩ�0���k2A/�2��d�qq�	�ٵ'��ј�O�;:�xd�OauL���>q
��K:������<cv\0\3ƈ_w�֋���X,)��eef�qq�=w�b4�IK�����p�|'��G��^�'O��k2�I�ˑ�JO�9��G�Z׉�O{�)��B�P(
�B�P(
�B	�������m=�.��1��Ѕ2�!$��]{���o_r��@`$2����B�An�q�g�]��޾~tq�4�,5a�a��.���=<�����s�/ ya#X�E�)���[8e�\/��a������9��d����
�N��T��	��5g��?h��B@_��8d8�JeS^����N.��%%do����6�A�H��	*�t��h�}0",߹kopH(4��~�lj�]`���{/��CF�f��7hK��C�3`0|��>IP�>����k���Θ����k�c𞳋+�����*��B�P(
�B�P(
�B	��]\R�ȃ�br�
J s�}W��	C�#�F��B"ϙ���?ݽ^m�&�!-m=���egfeI��)w�]�+l#*Ϝ����	����%���p��F	hВ�r>��/�����TF�B*�5C@#�Q���Yd��Z��Vm?��~Y��d����dc���zD��t��8��	)�r��v�,Z�|���߅G�6H�P�1h�HV��Ո�pd������Ζ޴��w:�N�+ܤd�ҕX+C[�lE��p�#��d����VZ�P(
�B�P(
�B��Ϩ=胏�&�!-��Y��E�m:�iZIIi=Pa�_-_)�e+��n�6�
�m�f��۹DL{y���!B7w��=>>����O>�V	����	�"�lt���!z򸰃�!��'��O����T�/n�����e$��׏�o��������fh(8#�AaRrr��z���ow�ؽ��Cr�%�w_�����e�����!��#b�%=g�"�B�C,\�v���S�.g!�y�mKDN���H	h%�
�B�P(
�B�P(J@�|M'���s���0vZ�=��9�+G�:rL��[?l���'.�?��^��������^s*Fxz���"�L��͔����w��%8�	�s�'��nk7rzp��_Hd��޽w��qx5��\�ڶ=ԭ�`1���Hv�Im�|�
�+��¯��j���l�>~�����K��Hg 0���)%�w���
)���I�fh?j�!rL���2�A"��=������n�m8;v�Է7{xIɢ�+�Mt��Ys������VZ�P(
�B�P(
�B�t�$���eƬ��
+"p�b��2��Mr�����x��/Zҩk���2�~����m��}b������gϓ����j�����Z��������@��f5�����OeF���=y���
I�[��ݰ�����8D�7$+ƀ���ܺ����d�~}��m��=q�3�vCG�ߩ�%�(�hk8������)S;v���[�W�^7b����"����!�F^����v�>S*�8��h	-��ɝ���i3�o��b	\9d��J@+
�B�P(
�B�P(��~�4��N@Cy�:kQ�Rn��غM��I6yh\�x�WZ�ۼū�s���_����v͍{��!�As9�m��`��`��~�g%%��֫߫����:�Q����}aiG��~����}ֳ��H�9���v|�h�r$8z����%�= �!�k��vH�6T�4p��n߆#��ƍ�h�$����lv��srLd�CG��<u�dQ� �;`�N[s�#9��s$;s�<��Z�d		WZ	h�B�RP�h�-����W�����C�T'��-`�X�����_��T(
�B	�Հ�ӔC9ʏX���Jb�n%0�v�{v����������G��y#j��N]`��/G�%$��D���l��� *��Fh"9%���
��UUE^���#��3�v���Uk�����[��|s���O{��.���V����,F�{�j���<��>!Ț(l<B?��k7l�lN�ܭ|��lF"��b44�A�������>����ˑW^z�5�=Ր����0Ȍ��*��gV���Q�F��ny
֞��!�L
�0��9s��Ĥd�R�(oƎ'�+*��
m�P��cb���hiY�����g:Nq���0�o9:M��(\o���q�J@+�P��x�Z��:WMM�x�kZ�E\/m�b�)�O�Ë��:�j�%�Խ�d�n1sO�e�^I[��#�5V�^�iŮ��&>���,���q�,�je��#�%OY��P-/B����{/�e?��Dޔ���K�Q�R(+�t��J�F/y�~�>��m��栅n\@�h���
�B�P��$8���࣮M�)���j�Į���}�O�R�4�8y:��Oo��}>'���S�ظi,3uDУK�>�F���%MI���-}A��a܄;���l!�
��hht�чVu�Icۣ���l�'d�L��E�u��7�?ȞQ���{(��4�ۉ�$8��~�ʩ�հf�%���V(~9�?��
��y���+���NE%�/��l�U1I�7**+�?��P~=ᛈ�ʻw�$�e{|>NN��;{%����(M�_TB��lS�����}�=�ZS��M�5�
����[�b�T+��̴6�yQi�j��k�d��.��8~��?�]O�o���\��KJ76Ɏ?Ŷ&A&B8��O��I(�S�l:pHц��X����H�Ĵ,f�imj�’���į�G��j�Oj�(_�ev�gH�zHy+��k���RoB+��{5>9*>�7��+Wݯb��$��ed�`W��m����&Q�t�lx~qI�]��6��oY����?�Zr�̷�m�I��s�K�n�-1�2���.<YXZ��
��e��۸7����"�1^�Sؽ#n$&�f��Sn�}'=;/͘K&�{��-K�Lw�ݻ�q�k�7��ҳMg��0�+�P(
%��%��Gs]B=7(씐h�����z!.&z���B�֥���$Q���v=�˹2s.&f�jbҋp1���{PZ	h���ϼ������n���k��S��\�����h�g�u��K��`?���\8�EASW{e�2�'p:щ)Pؤ�v���:W����J��ܕ�}���mu^��?��_(1q��tD�m{є�w�����VR�6;��'��|�VzN[��?�G4d�ʐ���7n>q6#'���<�[�ƙ�}�?C��Ǎ��|b(37�I4
H�Ⱦ|���\l:��{tf?Slc��݇W��em� j���y��9��k
m����& �y�׆��p~�.]~�k`��X�C�M_�-��EV�RLM�$�,�δ-����kB�^��'�M�8Lп¯����n��κ��ɟN���+�L6����ׅ�$���z+�U~!*����斔adP>��e�o*�U Il�q��U��[q�y���!�.2;~�5{#�u| �86^��#ߤM����|�pw����}��n�C�Sߟk��N߰���&���R�u��τ�Ԭ�}Ǧ��f���9�ع���wdj����]^��[�읳���;���8���hZ$(�Ci*P-ڤ�'qv'�*�Z,kE��HQ���"E�WQ��"���em־K���B?�c����2��E�܋⽙;w9��3��{�Mk�B�Z�ht�>�Ҭ��QZ2��RJ)���}	�u�B��<^�4~ࠨ�K
��;<9995�����t�)���NV�X��U�[�ҹmw��Ȼk���_[Vk9�)�Z�K�|����npV��\���ם��a�:�SzI~z�n�^M��
��h8vR���y�y�ͨ�����wGK�T����[�h^lyfɏș��<b��I��Нޑ��f-{ui
��c
��k����6fVՃԼ �k�Ό�k�~�֝�5�m��C#?�W���:X���+9��+$s��i��:}��
[���O�Сg�����K�TP!}��rɝK���$��=?������1��m4��.]q�paQm�xV����Vnл�����]����eW�?s�����L(�sj�)���,Z�ۇ1����Z�r�8z�;3�����(j/�_ϟ��á�����1H.�Pm����A#�hO����ra��䙔�(�|�cTRf|�Hy*�]�+d�x㻔/d�9�m.=?9�.o�+A��	�l�|墠�n�|{E��Z��]�"nܼ�MWo�ڻk �QU�\�����(j+j~q�T�F����3���\	��xΌ�
ֲ�>���¡��4��>�T���g���>v�xi����Y��_�z��w����\����C#�[{~<o�����f�w�d�;��t�j�����F���w���}�M@��-X5gu��Qf�V߯�9z�l4�-��U�J�(�l�ɰ�nrx�>#$Q�z�����Y&W��\��,�lꊑ-���
q���W
�oo@��մ�_��M�R��RJ)���~Ѕ��a����_u������_��+���B�^�Ÿ�����/��7�'���N:���F�ad�\c=��'���̮���7��=��ie�]c�Xa�x�a׵}7\|�@��F܉�=��\����*m�a5���Y7n��%Ze�m�N�J˒�;�w�?�����v��9߁��E�P5d�?W�̎oݹ��,�+^Dž��ԮTzx�M��k���Q\���W��XA^����>�3tm�;���R9|�
���\�?@k��;��3�6��4�X�a3g��]�d�0x�ML��]:w��º�7��W݁��^�[%�����̆��R_o}|�b'�����9��{f<XLh#<ȹ��E��ٹ���9u�WSI�t���|A���+DQ+��Ǝ'������9<�3:F��.����tn�
���To8u�c��W����jC>rc��7��.�K2���&)ީ�fTW�Z��ۺk�P �r/_�޿{�}h�ڸ�Xt�/'į@�A �h�BF'�؞q��|Z5f���^�b�⃫�F�tJ��7<t�4�W������S�S���v�V&c�	�F����*V��᳉�oپ[P��>�}x�����}���n�%�:A�h���CΘ,C�}��8CV֫7nj	GNz8z`Jiv/�}��e^S��G�0�Id��$
�	�m�"���7�X�7v�XA�t�<2�m�t
�ᨋ������ �b���ġ'�sh�F�{����v9��u�y���{��%�6��GOtd:����N����CSF0�K]#&�h� ��vGƏ���A}�Uh�e4���X��5-��od��9J�lj#��0>u�n3����BX��rr�\������
�C,�6�.��$��_����ٕ{%
cƺjզ�����!��(�a�p˥��]�V3Pҥ]��D1p���ÏH�,#�K׮SWʌk�9E�(*2�m`ώ=N�a)�~�C���5m��0�>��yz���h.�&t�ڍ|�C�d�%�&v�Y��a?K�
<O!�$r�#�U�;�Ħ��a��Ҧ��IM>�MX]��״m�\���w��Y�r��[��j�#�E���xw�[�6�K�*\(<H�`ej̞CSΪnx�`wf��yʘ>qZ�l,爅Bblݣ�a�o߻��'��jZ�Xm3�.�3�e���Q�K�a�̯���8��߰xӶe�AS�%:�hSL_��~����(=)��RJ)%��2��;��_���//<�D!��'�<��qp�	@��ҟ����ſ�nYk]���{uk���Y��'�����+��i���ˡ���3 k`){����Z����P,��x}�%���U�����'�N�<wŢ�Mj��s�ޮn�NV��=;�r�ɼ�_.Zm9���R�L�w��oz��k�@g�l�E�L�. �x�����}�_�
�W5"?�6
W8�kSK`#O�S��Zz��xn�%�F"#��Βޱ3g]�,(J!<�!��<@ˏ����˓���߾CGeQtm�ct���Q_@F��ķ��x���
P������"1�Rw�HA0@�]���w9������r�{و��K�:����4T���#�ƅ�H… ����^�]��=�=���)��SjaņN��lC��*A�H��� j�?�k��HȚ�Nu#��E@+S3�Q�N�����i7��p!�6Ij66�IP6q�âZ���˅k��p�����kA1�@��ь����qH�Ĕi�������9om��"��爺���^H)��	��t��_�_�������3�II�0	Jku*2��W�1w��e����0}Uk�9�p�g�jze�j����-�T�O�Phq��Kp*f�(T�q�U�FE
�����D$O�� eS3����K۲!�Fᣙ+���y�aDi�c}ܫj��(�p4m0�H��hN�RE���[˩Ah���V�W�خw׶G�S�.���5քs��ݥ
���2Ei�S�W��4"*|p�z WD�*@[��W�S�_O���vL�C�@���oU���R�9���.ΨZo�T'ۼ��TW����YN�X�J��ͯi}>�&j�X��D��1d!X$Q��ׯ�h�g<]��y(a��g���ۍ�C�`�]�/�-�Ήш�e��7qIf֦��񽷗2����Bi�/��b��O��`�����B�j��}8Kh���qo"d{i�)	�$��,���>���_�c�����)h��1�a�&s��ez���d�>Ė^�����."2�L)�&=��ӫ�f�M5�ڧ�1��9n���m�]�s\GY9�R�i�;���q��ƏP���h���ȃ�lj�H5��3D9�_p�[��XP{�3q�I���?k�L蚡T��&7p�q�����B�j;C��:"��9������ߦ�RJ)��R�/$G���tJ)���"[�d�/8m���������m$��(�$B����!�>0��_�/[|�?yo-i�p/ʛf�+�g[�n�&�E!5�	@!z���^��q�P2��3�%�&q
]<E�
�m��,�`�X��v
|�Z�s��6}�زc�ŭ�c����3rJ�ީn�R������=����<?8��O�����H,�-�EKa��+
�w����X�}���1��-��̅�~�ȿ"j�]�a���j<��TG����t�+�$s��_~�%�6r#�R�/OO��c'��j[1��|@|�3������50�D�o�"d𥦽��!\�k; �qT��s��2��8��"��]�L�*ǻ���Оq�&:C�#
���CPtXu�:H�@+�P'�PpR��w�7gu3�F�yS�큿�U�I�	|�<wE����?}%������|�C����*������Td��q�	"��um��,���#_.Q��A�J� �'5"YӍ�{�I$ã�΢~oU�c��;��Œh �0/��S5�D�����B�]/�Z���¥+��{o/���hNِ�l>�y��ʶm���5C��xy���:�Y��^�F���0LSk��9���*�cp
ZE$�9K��\���5��.�����C�]ӄy��*V���u瞉�KZ{��N��4pV,xӡT�����.�:P �ʁ�.�-7q�	�V��7���C�N��.������sMP:���j;��S$;��1�e��an5�5fILy�n�^Rc e�o�/`�=�@�f.{㈰ۄP�C�h��4sG�Ms����h�e������4x@�Zf{ �'s�_���*�8{uL9:1Ik7��єs��nv@_D&��h޺M���E9�f��3������Y1(���3��qS`���
t-7p���.��#��c��qW'Omc\�A��P�i��N��WD�dC�̵�Qڰ�c@��6�#�|�0�FC\Ќ*��LJ�7��Zh��h���2
�1�2n�{��oB�BX�X��w��Yt�B吵1Rj�yt�662I����,�ی�;E6�d�
��^�b��D�Ǝ�S��Ǻ�-�Ps#�`�/Qb�	�N�F��CXCL8��M�L�ő������ě�����϶�C��n��s��'m�z�/)��RJ)��t��t�)��R�q4��
����!��hx`�w	��Pr:���i�k%y��r��U�Q�j��S݂O���`Aà0�M�,��(����F*�����v�P�%�
� �O']�q/�\���m�s'w�e��X��G�Y+���mQZ�(~T���wtB��W�vǻ
�o"��1�"/��&Kp�)�~��5�E�{#2=�f@G�jh	���ʝ�"Pq�e:a/���h�,���(�<~ٺ��c�P�R�I�K��s2Y
л��F_@Ӵ��>�t�1 ������Y�v)�E�\c�Y;������BJTH;y�|��0�B�ģ�y���,�+�݌8��1;TN(
ڣ�4��)*J0�ߞ��rJ�_]V{���8��x�����9��/$��r煉�Q��ϥ���h���������k�LC=�Y�bB!�C�<U0Уg΅�c@g���}4D�Q!��b���m����d<x���\t>�<�f���?�B E�	�W��>ĕ�|G?I���!�S���w�?D]K�����<��"sQ��e����{��@��zk�E�N��W���}o�ߡ�
B>�W����v���~$Ӂ��Y��f1��{�ψ�Vʚ�d>V�Po���v��ߝ�4"�
4| /^6oM����$�%�
���F�#����\��5�Ŭ�9k��s�6�:ŤPu�"x7�Z��݈���&���MV?�Ӊ�!�-�4�������-ʧ�
Mu��(�7uG?�{vĖ����`F�O��e[��o�0y�yi�=44i��<}b!{����^�:h�'�7+�J����)
��d�v���p6�c����
$�Y�
�����S{`v#�K)��A��s�~8k�������V���T�|�f!1y��/
��8�e���:�nU��<��3
�+-�r�ה�A��33�ks��ģ���bLj�ٸ��sV���Ԓ�#0��ر�CR�
7w��_3�}7��j'O{h[��^�m�زJ�)��RJ)%�B�?~�+_K:}�N)���:�Q@c��1A�x����,���#.��u�X���h&P��/hE����qx���<jj�k���(��0�I�O
�Ʋ�����FFX?/o�
L)�l�SU�y�=@Ë�0΂n(�Y�'�	��8�س
&�&�K�|�ǨB�-nt�I0�^�`��hp-�9�/xiC;�(���ì(���=�������Bh���-�V�N⿩L���pSU/t�C�
�Y
�e����<a�	��%�7�F��7+���%�m�RA1�I�CM��p+��
����Ñ�jt��p��<+���S3_ᗮ����&‹&g�"1��w".�ڦZ�q�?)�qa�%��b]
C��W�w��D�9�d@�bQ]�u'4b�SI@uH�V!G$�`���UO�$��̅ˠo�~AȍC�(9�i�F�Bpp�D�����v��m����`�V:�Sޢ6�$t̷�ZD�#*WST��H�0��,����;��e�u�M�Ҷ�Sg/�}|��b�%�<�(����^�F����@�k�ݚ5r?�~�n��@�~��+,���U�s-����YLȭ�;��z��ټ�\;U�����+Kl�Y`{�~
e���쉑��i�	B+�H!@*4�����`p[��?�B�iJ3܌Q���UǶ%(�|1�6Wk�<Ooݾ�_4�O6':&��NEc���YoL7�ne_§���`)�|�� �܀SQ;�$
g��\�����!�(�>�gh�Rc�ac'�-���&v��Z� ����qi�P@�W��B�x!)
S#���o�(�O^B��e�yLCvƛK�א�9�M�&����)�UW)�fE7t2��/�$ط��?�ڀ�7S_�X�l�z�<�B����P ��P-	��;2���q_9pDk����H58��F'�+š�5ˌ/����?|W�}�x��5��dg�@0#�DL��2O�X��m���f�܍��7l�Ơ��%ƈ�dH�(�W��RJ)��t�N���N)��>�� �m��5c���S��et�����j�ٹ����Sֽ�A1_�X0CN2{~�1����8��e$V�K�VB
p�,�=��&��e
ω�yj�t��)�S��hnzO�@P�H�k�QǶQ�q`��E��,XRË����@���{�tЖ��/JVE9��k=R�I$� e�j��{�Uw����2�)|�A$�F7�Ǯ@o��_i���SD����غTqe}d�h\�m`���>�GpR��h�)3�C�����~*A�	�{&��M�\��`u�t.4Z�u\���6�1��x�_�%��ӽ{��'�4�n���^�aq�	QTO��A���pt��4_Q`@XР�>bE���ז���Am�S�������X�:���h�\h��|MIl�D؛w� ���U )_�(��h��%-|V��E|��J�[�t��12�
���&^i����A��@�i�����c[5��`^^O���N���Ȧ9�=��ڂ4m݆�����͹����2|��`�b�i�)��}���O��z�'��)*�QZ|^��U��,��m��	a�Uh8�^���qF_/��4

�MH&U	�X N�^Uj�]�(�:v	ٜ�P^Z+��S ��cʌ�R�����d��X���^����	m)'{�D]�c:IGh<�)�C:��~f�z���
-�<:HšӇ�1}r]�?����m
_渉Pl�<���@]F6�R_�u[����7�B����aK��a��S��/�:3��!3N���бS�<��³�S�,��܄YjOJ� �dh�2M���(��U�.�[9¯��_-Zk.���3s������`��q��>�!�	����.t�=�ж�|w��Y�s��l��60��}�	��$[L=e�
+��^L������ŕ�fA�=)�Bp��RJ)������@��?|��	@�O�)���'�x��{��)Χ����V���
�NIWo�B�ZU���?�Rg����eƞ�;s)\{����ۯވ�>p�cڢ٢ݚԘ�4fd�̽4�� b@���9�n�d�(
`_ '飇����1Y�1����^	s_�H�ǜ���#��К�\O�D�*m������ON�����u���7�X�V�A��:��Zx��ވ�B:}�R��('Yy�&dz�ՕѼ��	;�z;�R��~F��hX��q��-�Nrfĩ�>
��3QtaeH�������[:�����lx��:���4��4G�	p�s��!;��y��AВx�9B�|H1G�R�����z�j�X��|�2o޾����s4WY�&N\�i[Ĝ��	Ύ��,A�X޵�7�����r��3����z�&�h-��:t΋22d���E}�����_��^��h�0����
Ow��]\�˰l�FJ��.E����Uб3�.hE�0+
L�r�X�.ky9���/Ug�x��(�'�==�;l����%��a;���H�>~���B���aO8P��
f7�nc�3.fAQX1&�w0v���{�S�$�J�K?I�=|�I��a"o�6����P�6 ISRD{аl*=n��F�w���y芈��X֛Do���\ȃ0pԵ�r�ec��맖�I=z�$���$9�1���=g��(���
��Q�A,yڛ&�e���u�	���,�$�L�3L�$X�6�!���n�g�
��#\L<���L�[��zh>���x�g�V)�x
�,`W�XFu4p��a
P
�5�N��9b|co�4��c�1YK�����#c��6��O��ރv&(��V�:}�mb�Y�H���8��� �����6��.�'�RJ)��R�0��w�^�N��SJ)�/T��\�L�\>��r�☖C�O� )J�yy+�x	ay�b,�Ý�3|�Xa7?�S�x�V�B�6vs����l�;`�@{=��̯
\1y�)7w�@k!�p�&�̪i���#:��O���ZX�I6�~�Zu�]�Z��8�p?�jZ�������'d�v�"��#��$5#	Ab�����r���ޚ��-��cgbn�&�	�17H%���ͽ���������d%��P�/ ���������,�E��J=�HA��Y�0{ucxXc���%G>��P��1
�"h�[%�.7շ���U}/
�A�p��4l��t�Bj6����J�I	��cX�ׯٓ�
�yY1К����!`�)����ڈi���P�/!��@��^]G?��wƊ��`�@���������+8,��V*]�F/�X#B!��J���$��Mpp�Y�*�B�B+�9B�l곯�;v{���q�34��]�A������-+�tw�b��r*8��9����-�B\ #MA�����Z��w�*t�O�t�-�4�S��C
�R���35D������!8"bTH��aH�E0
�^5q9���Ȝ�pV�R45�z�T�!���r��e���n5!G�ի�jD9�jɄ#�ӶkKn��� !4'<d��Ԗ�
�F0vL7i��D�|��gd����L�K<�@��U�x����t�{�6�/b�c�u�/�Z���"s\�V%,����ݦ�88��Z��缒QL	��t鲨���*R3B�
�Rg�m�Ǝ����z�+n�B��`	�:�ZN�nh�3�JWu���<=���\anj�Yf�4"{��L���~s1L��R*Q�@��4JK�$��Ȓ�*�q���L��S;���<��ۯ�(+���+О��qI����_�&I[n�M[
/!�S�1����~n.��΍m3�����4���-�k�Rj��~�t~5������@�\�X7e쳺�x/�r
�<eg�:�ܞ���z��t�{�OU���龱��VG�wI��&+{�e��	���F�T�q�ӝ���F��n����M��s�wa��y��������yX�%s�4v7e�ɓb@��RJ)��t��>	@'�RJ)}�ceij��k*�N��	�8���󢑾����ך�Ҕ3��ʓ�4ꇶ@0��b��"g�w��	�º�ߜ���*��%sX��^=�Y�DQV��h���
��0��2#5������,FO�dxK������C��<[�i~�:�^O�UFȄ�(Zn�����C�I��Z�#Gs�6o��
��ȟ,{٠S0
�SF�PlwEӖY�W��h�S�̘�O�R��5�mo/@{��
U@$l/H�H�j�$@9���Xɉ��F$aZ�FY���OԵ	���"�Cȼ�pv�uA���yW���Q�g�cAU��0-o���]ղ�2|t� �LL�0�p6с��T#ζAJI.�Z�1��ƞ!��d�����~3 ����;�^ְ٠����Yz[���lx�A��܊�7YiR�Y��Ɔ�8���������sƔ�PHsPS[��#S:8gU#o��i�<z
P{5�oˏ�΁e�~<C>���+bwpN��v�"�&)脥t$گFln��FsY�$ex��8�I��B�\��!�#Wo�D�M�&�lr�H^�p�&8O�ц����ԅ>°P�y������Os]�*H-g
�x��i��]��BUA�Z�GF�0��>�@A�#���1�e��j1��l��inڮr*���b�H7#�4`g�K>�Ij��m�|ky�SKE���R6�a�^��=Duc;�еž��x��m�R�%�K����	�߾sO�3���\�s�J�n
j�����mD��ȾA�'a�c��J�jI�GdvUKw�2Α�=Q��C��EX!,�X��&r����N���!`|f��'f|Am��&�#�Na:t�v��� RC���O��Z:�UJ���7p�F�� �n���
O|��.���<?����=�A��D��+�e	2k	0�^3�S>�����R��ʀ{�����e����~l��2/D�Z\�fL�t;�;
)?+�8S�셺�u���L�6��A��X�>��*$BӸ?�OL7�,g�k͋��q�XċO�y��ѣ�jH)��RJ)�?@��tJ)��EK�YkEX����ۚ��;��(�(�nHE#��n�u��܂���g��M��h|�H���L>���3�T2JFϡԞLW��[U��;w�}��ր.6���J�"��{5q:Fr�G (�c��[� A��۪kZ@��L����7w!V�a��ɪq�-����Cے�\CDH�Z�Q�Z1/4>I;�Ķt͉�\����
��FD����~�'�*8Nke���'�a�b�"ܔC��������uT�����2��$���.z��3� ����e��m��H3�TA�l���Ì#I������e�2���i��Z��Ǔ�i�&�-�l� ^�u���o��{ޢ���g��%�U����{������C�@(��{�����L&!��ȖF�mq��2��SVE�G�Č�u��v0u�ޘ�P��s/���j����P*욠D�r�!��&�҈V��l(M�k�Xε�C\�O߻j-3?�ɥ�]�t���lB��Cg�"�J0�+B���.�,Uj��1�yx)v>�,�+�2�������Ȇ�*���{�Π
F2U�T��gM�&iQ��Y7�f�8�z'��~<PޠR�z�� ���vl��N�o�:��6Ԋ��>	ToF3�櫏��ql�֘�58���5�#��}����W{�q���.w-�`��2,Ze8����1�f�J=�Z�hb>��џ����+:C0~:�͢��D��9��a-��?[��S;�0�8�|R�5w����3�'�Sv����ADD�O&@c�)8,
�""_�\]㎨<&JJgש�hZSs]ݴA���nq9�DRJ�6��`�>�,ǘ7�u��1M)�t�&�c����b5�m�uO6�;&a����'��	���w��qcY���:�Ա��^n߹7;���_7�e��T�n|�~:�.�q!A�>V��N�N��O ����д�\r7\
e�cä��3�t���L�E��xݕ�"R/�1��FK����2��=����-����
5�YDD�O(@�ڢ-"""���<zB��Aq�Ԃy|
�l�O�fAd5)�I�^����F��I�N6�������A#"w90��?|L�^�~�c0����ñSEDD�$��M;
�h�UA�"i��/��fn3Rdl,�a�~ޛ9>�'sg��s>���U�ED�h��Т�-"""���5ַe�
���Q��K-
�
�""""""""�m�Ţ-""""""""�m�EZZDDDDDDDD����(@+@����������F�����4�T���EDDDDDDDD���_�v���*g�o�W:d�ںv����{1WZZDDDDDDDD��w�=m]�'�ڤ�3	Fp���	��$���W�L�`�#L3L1�H��C�N_r%+�*��R�(�+��sν��z�W$����t@c�o@Hb�J�H���T�x���D��Ğ��>:�f`��T�����1��W��ЄB!�B!��+K@�}J���4+�زl{u~���W��l�竛�}Cz�2�gw��,�HC£�:�Ҳ�>*�o��;<��W�AMMM!�B!�B(���9	h�m��n�NL���ݫ�nj�z���������,�bθE;������]��8�W}k'1����	�4Lw߰	h�W�����`��H��G��_�b�44!�B!�B!З�"8��d�व������0��#'g���SR�F`hZV������>15]о�ύ�O�k�O��=��+��D�U|�\�Ԯ.�
�Eb����ɢ����*�H�$7v����UWTcaQi`Px�J�̻E����G�#��%Xp;,�X�i�(��D�'�AS@B!�B!�B}9�v���H,D��=��j��W��#朜�������֞m��͎���Z���I���ٲoޱ�OeM����JӴm=Ğ;{G֣���$e�uWh�4�//�ma+L�Vh����G�S��8$5.���g��w�����ã���$�����Q]-{AFO�-����X��ҲG�)44!�B!�B!З%

�l�G�\�#׌���y�t�d��2[�G�Ӳ�ؐ���zX�AmznTr\r��Z��}��/�׎�u�
�ܼB�`���'f�
K�
�e��3p��"qNa	�-��<�-,��ƶ
���e߫�#ı�r�����[E�A��Þ�;(��VT��p�Q	)��o^S@B!�B!�B}4ƫ뛡���^��+Q��,�לq;:1
�����#Ə���3Ƒ�F�9!E����C#[֍?C��6�j�lIVf^ur��䜨HG���ofʕ�����"Ef,sπ3�W��K���
�-��rE:�(��O=_���_u�(o��=<}[^S'��!�ЄB!�B!�P@�
�/&�a��>�.��8\w��E5s��j1^,��o�ႀ�NRf�����U8�a�	����ƙ�/1��Ƨ���ݡ5\���qnzk�M����i�OǦL3�ˋ����FՆ��{hd�Šq�M��`DzZ��'r�DV�H=�E( ~�����~����&�B!�B!��2
h��@��4J�s�J1b�2AF/�-�id�8�b�ر~(�kZm��ʂƆ�Kk���!�8
�!��z@g���>�-��	H䰘��_����Dc>�5�'�G ��+o��F��F�|�,gb	���q�5�5�
��i�MM!�B!�B�Q��}3�S4�+�t��	�?���U8H�eTj(3�p���J\��C�	��g�v�֋��'x����qcn��Fo��"����4	�_ސE�AU�Be4J�!������冶�`YTx�*_�
k�Z:P!�F���OLc&r�	�*H�Q��' ��Y������ݛ���B!�B!�
�ˑ���?��B�
#=����{�b��}X[��U9��0�P��HtC�)�+8�D�q�`x�⸦����AJ��S�F'ѤaO@��]�	B�h|ƙ���@��n_�3m�o5M�R��U�����*8�:97?�Y\�B�������~���+���_�\Gh�J�~w��1-i��ࠀ&�B!���޽�T�a�9х�4D'QHeHd�N����Y�t��'�JC!�(Bh
"��P+�[���� LND�<,�������Ƿ���;�{f�/��8)s�#�s��7j���c�ԓ��ɝ�5Y��͉���9�ҳ�i��{n o L��sӣ�ȩ�GO=��.�_N�Ng*%չH��78Ժn�֎���#�)�~�zf~�˃�Gy'᱓=�*{�x�&�o�>=~�<�ө��T���9pּ[��vI��h@W*�^ZZ�@76��n�|����<<:t,��7��W�m�j{]��sϾ����Ø̂3O�=��;w�M~������蝡���Rש�U���6��O泵ԕ�}/U�5$�.�=����q<��u��z��Hzk��;�{S=26qk�~[�+�ݽ���C���{s��1�i	�G����96L%��k���#S���X
�J��'g[s��)@^i��~sMn��&��I{�g9	��2�q_e����:��&��$�����E�O���ʹt�n�ʁ3�q˷G�~�*��O����Y�_~z>3�m�>�@]�+T@Wvd�Ugװ�(�^i��~���_Oy���$��~��h@W�Zm�@-�6�h��KІ��-�6� ��sЍM��Zph@W�Zm�����A
0���S<�o|.�ɩ�4�݀6Z�@��=���6���	� @���h�h3��>!��
$|B��	� @�&@����
^@{m4�ޝ55u�q�0���@kPBe��B�Z��� �(R��P@(��;HEf?Q��gʅ�:�V��L�䐜��g�y�	h4p��o�8�xm�	�av��K�&@����5����b�w�����x5��䩀�P=���a��;�O'@�S��W�v7��%:ӊ+��h�SY[�]Z�%(T�?F�Tڮ�k|��cO�}�˷]4��sڤ�f��zy����ͷ��[�����g5���LE�G�=sK�I)�6�|�%@�?h���wb���������lAYU�=1#;�xls�݃�]���C1��`�Y�z��:1���rg]1���tǓ�ѩy�#Yڸn�8����/;�	���
���V�=��2��66��HNw���q��+19mj~Es�)�ژ�W|)+��L���ͺƖ?���P[LV~ICs��i|{!U�808"��"����?Po��s��uh�Z_������stC�����������o9�2�I#:kGG�պ���y�-mz
�h��i��?�r�^�7n��S�շ���#7ܾ�p��24:5���N���#f����������7�k[%�'O�?{1���:(Ԧ�����=1����
âbU�w����槟���d�n-���ԭ���W7W6��o�U���)����W��w��f�o�h�}�Z?l�+8����=P2�),��u�_%㯏׫j�6r���_s�1�Dk���g@�*��=�H�����[��X��7)�����a���ڥ�7�+��Շ�xd��ll��h<��7������x��[
8��3s�,5��<=���e���,j�:9#;0����[0 @|��

�+.��+���hkh��Im��z诎�ԩ5�g���	���^h�9$2&=+_�Y�4T��?\\{���n��ǚ�i\:-+_1���p���ݛ�'~�橛�Vkع�v��>�_�y���尻Y�T7�|&@�_��O��5ˬ�����n���kV��~�?�`Uk66G��b���w����]�]ZWDV���>��̓����3�����v����G�����8�:6�aw8��������j�Y�Y����vFo�w�g�ǘ]>��{��Su�q�����"�ÏB8�d�_4���()w�C��	�C���ᜓ�!&�$D�V:�c�{�U<��+���uSl���y>�;��|���^{�t4]B��������Z]�
|1��Y㤳�7��@+��5o;?���̓�:�w��CC���_Y�eʬ{���}����5o���;u�@C�fkt���Stx8�.�U~齪�j�nm�n�8y��.hw4&�gj�h�"�gb>&����B��w54C��ڨ�hm�OLݚ�ҙsʝw��'-+�Z�f5�~���X�7'�%�����S/�kl�n5�km��V��@\珸��ڼ�`���p]T�SS;�E��fzh4��l�:6uK�����	�	��C��KU�tq��3�3��0l�ڝ�S��r���gg�o)DV���5O/>I�;�.�U^��5xɳ�Ħ|Y�z�f5CC�Z��vV)�ցJ�ӳr3���5	ZC��"��,�(��,�����OW�sv�f�������L�;�j�>���jhh1m-�P��{�,����Ft��͸6�����V�D%�#�+�VרZ3�(k���ꤔ-Z����/f�nj�J34��{uF��T��
�o~�s4~���Ĺ��U�'ӥ5�C�uIE�z�����k74�Z9�z��|�cަlz��|?)�f44��5v�v�w"��6�=T�j�s�k~~��-.R)���_���D��w@�����Mm�v����9�p�@+M�9iY��Yw�3�¢��#��������־}@[2s�Z����im��P��/*�;ѹ��:c�Ω�y��t8��P��6����[�S�@G�a���F%ץU�>��/,���1@�A�WV6]���uQ��G�.����������Z�Νߖ�~$���뿄P�5�Y?�=m�xN���c���z�}�O<���X�
�UY�j�"c�S��O�F��t��q	Zޮ��NK�KH�J���.#�9���b��B�{'�t�nuQ�dž��	����U�=����@b-�6J�p�)C?��z=e����b>�%���@����0�F*����D{M�K@�t��CM�a*-.-���
@�π&���@S���Z��=�Ū9��4h����
�逦��՟�	l�e�w�M�2"+�`dWW�e�*�@E�}ɱ*���@�Q���ڙi��k��v�-�O��zr�Ӆ�S���c��fҩ���y�yS�{��{I~�_��c��\��	�]l��_���G���"}/�h�
�U*�J�R�T*����<&�1�5)��=��<|�p^^*�"""z��f͚jꔖ����Z�j�ڵ��ԨT�ƍ'N�ػwoVV����&�+77wӦM�w�O���N���ѣGe7j\[�n�߿��ɓ�]�Vq���ŋS�N4hжm�*T
�@+�V�T*�J�R�T���%��@��4(�U�V�[�޲eKŝ�q��.�������=z�hѢ���?߼ys��1���?g
}v8����?n�e˖�ƍ;~����<q�D�E�Y�fԏ���~[�;{���tH�w�] ���|�v�*@�^?t�҅��v�+T
�@+�V�T*�J�R�T������C���#��/�ءC��w^���kڴijjj��IIIgh8�O�ڵ�Wv��i߾}R'!!�:�����w�}���_�����^+++����i۶-=�?��ɉ���fn6lx��i�~��^���u�޽������ɓ'�u�ƽKOO�P���)3���fd6�g��L�
�3�n�gd�t�$�Jɑ�Z�J�R�T*�J�R��ZCphR};�<���K��@m�,���(,,�I��J�9�n�:"]\�p�gտrZPP>�|�2
	(�c������@���$o޼�}��—�C�F�
		y���i�M��^���ի��7�i�T-M0޾��`e���܈�K��;w��fC�;V�@d	L��!��tŹW=}�����g��Ⱦr�
�)�14�^�J�Vt��vտs���q�F��B�2�gϞ|�qϞ=�7r��%"���~v)����>Y>G�iBW�p��C��۷3��ӿw(ϭ矁J�ϝ;ljln1�gQ&�����1�J�uQ��'�0O:9�����3������Ǔ��&&��R�J��$�R'3��ތ�4��;]O�R��)%�oi�
�O{�
R�&���'SR�j+��>}��$�*�J�R�T*�J���Ф����PJLa��f6�;w��ӧ�����n���x¥0
8�T<�)))�����*4��N�I�` ��2�.�C��ﳡ�l2�$������XfK?+W�4������?�U��|Ȑ!`�e˖	'��+Vदg�7�y�W���ɷ�l\���Ajrh�C�&M�V+�|�ռy�95Y���6=�	���R��رc\\�p|��<s�qX���8�ٴ	&@��a�v׮]��~�M��o���ᒓ��I�/�M�;t۫W/n���۵�0��&�t��4�CJ�Ć�S�:l���>��yr�����z���5 �}���w�y���|�P\\���������Aі�q���QRrm[�k�d'�}~ҕ�=�!����o-[L�X{���I��f�-FJ�@�:	��@�o��!�N�����M��L�_�b���h�J�R�T*�J�Z�&���+@p��f͂
��PB�`d���O����>)=�<l��d�3�+�>����ٳ��4����s�U%��!��ӧO'R3��Jnb�ؔ2g��nǗ-
�C�-�g��9s�	�ؐ���Z
����
��#����'�A���Y��j���|f�̊� !�7���24�zƌ�&=�4�""����d6��@۱c���>��r�Tc�1,��i�l�}C��Y"�`R�	�䄿�l��F$���`�XM�~�!u���2Hs)2RϜA��%؝����E���'$������ŋ���&�73祋�Dt�$�0����bZ����n*-ͻti�_d��L߱��-���	x��:]�=^gaazq����]XHJ+*�:vl֞���^���4�o��N�[_���^�Ht%׳.�ܵ�爌\D���v��E&E�s�s�����i�|{ÿ-u6n��t�._��h�J�R�T*�J��6����"��hM
�������H�x�B`�$�…��d�t^�3K�c%3�f6��dڴi��+6@Èy H�ͯ��հ`1؂2�TC��!sĘ���e,�,v�̙�����4�;w.`����bFf�5/6Ē̈&5Q2@�,��̸�ĉ
"�a�pUP5a7@�j��8�᪘|�maΔ�f!�aPեz=z4����_�����^�%�;���M���f���L	N��L��%u�fo?��!��{B���R�O'��!����e�8s�(��
��NKK�@�;Fl~�����l�t���.,�q�K�d�sˈ��1�k��P�c��5gx��>M����k_�]�B.^�m��k_Տ[B~���IO�{@�'��W�{=*�¯S͚�4��c��ϖ�_�F�_Pލ#%��?>s��d�>�g�*�J�R�T*�J�:�5)��74�\q:�&���HXaf��"	O��;-x422�'��~� m	7��@M ``7v,��jD������cp���A����>e�PQVLj���vK��љ�	�A�a&��W*˘K�"V�
�����`���9�
Ɣ���L>,��� �4<,X/�	�w|������Nn�T�X
-�ta�hǎ���^�(ޠg�Ćp)�h�4�C*՚����b��sɒ%fJ,�
8�a�L�z=i�$�ֳ4�2}�ʗ�W����Js	wfi�7\tMٟ�%%7LL��s������k�=a�	NH��%���ܼ�����y3�>_^> {e��{f�O��/���Keԡ��n��|���W�z�D�n��j�J�79F�
&##���Vd�Ѕ���9k@�0�fX�=�
��0a�D�ܼ�
�U*�J�R�T*�hК@�3��D��9�L���TB�9H̭���<��s�c���m1��Ԉ�<��H�-T���G��ˣxn ���!o\�|y��'b�f��S��f��a2UF�TB������m��L�t��6�䡫�	;�f��Q�ǫ�&~�^�nnn�д�LLdz`�8q��Ѕ�Jb@^��1J�?�1n���T���B���F�w?��M���A�R����?����L�~�ZJŪL���B������-/�Ħͭd�De\�RD�0���������I�5 _�?�^A�ɿ�Xca>����yRrВ��n����x�̝��/���3�a/�%ee�Ym�Z����/�#��_G[@�������*�Ā~�E��*�6�����85?,�9��@�$��w�C�G����˂�b~��I�ȍ��T^~���9��
�U*�J�R�T*���MhР��=[�V�I��UA��A�0�b��gM���ᒀH���P49<�	��_,m

���x�%�1�?o5P/����kx+n�5%|�D�&L��,cJ�P�lNNN��pg��x�a�☆�~$���p��[ް�p��3�>FcdR��@�2��X�G�	�4A?�C�?7�c
�f�zYZ���כ嘹!�Ϣ0J�/Z"��1
�ssMs�[S���meg�h8�����B�fB�r��h3t�O�1X�*���ƛ,>�s��ٽ�xBb�Tw���?�����Mز5had�[�~L�-ֺq�����$$⡆b�ݻ��Ԃ��k��ֱ�QJ�
z��,S�?�MJvr�DEE3+ę\Zm6��!�_����ӦM		v8��-�
�U*�J�R���޹GU`��N�TeJ��(���E$ �������Pe:���M����4A@r!�MB�Mv7��&\RL�EPh@�D�B;���0}د�.Y����Ι��s���Ξ�゚̳$I�W��hm�W@�gHP���L�1 E�+��e1>[Mj��ӧIf0\[TT�
XiYqq+c4̀6���VB'��4d�DIyf;��<�xu!��D+�?/m�zl`+x�2�ZeH�ۀNf,<�`q��X���B���[��%�/�u����&��P���Ts�����������WhS38��x��G�%�tt����&�r4C������^�I�4�&?�IƠMa"M�V�h���t�K�
�M�Q�g���X���|"��7�)�6$�S3�"N��42�S��)��<,�]��bW��M��鶶i�w�{}�i��<%��̽��*�¦�>���p�ܻ�z:��z:���;����u������F����
�r@_��89yxl얭[��d����'�0�g���w��;c��1cF���BZ�$I�$I�$�N�r@k��L
O�Λ7��A��Z�yÎ
y�_���aX!t�DV �b����LL_0g9n��ʀE`�Y.�#��Pm2`���,nb|��WZw�Hb\�t�F�0�Y�D�خ�!��0t,�V�A���e�܄����ҋ�:�8��U.�C�d�Q�6�633�怶�XS�[�53�`��13'��J}�~j0`@zz��W�\���_��,��KW�[CCå4��4jxd�)�����k�Q0s^R9��e��&��h
0h>n�M�61:�7BsآCЈwM3i��@8"�U���(i���Z[[N��u{H� .�S��ܼ?����n8|����q^_[ �l`3O�c�~q��Ȝ2g[���+���)�-��m����&M܃m<@��7L��d4@ϟ�>��zs���g����$I�$I�$IН��ytL���;G T\���s^������R 99�h��P���p	��@�\A\�5	�JS'eH������b1|Fp-D������M�xi��b�0<HJ�Q򒑑az�����1����0qζˉ�xXX���-��vj���b�>��X��f 8�!�˗/omm�ʳ��� �Vo���~�9�1�י%�����ln]e?�r#�<<<b�ɺ_f\�WN�~��1!��3
s7�5w
�Μ�c֦Nf�
q���g�Po3?�b&��n.g��|p9�d��&q�ʙ
pC���|Kab�q@C���(.g
C��f��́�[�f�z�(F'݅�g�2?����1^�Α�t_^��>�{]-9p�;�ř3�9sfoss]SS}s3;�������g��S������ܼ��q���g@����G-J�����
�Pi~��S��j!x��g��Q�b�JN	--I�$I�$I��!�&�M^]߼1Hx`��7 �,���2��� ��88����Є3��~�5^\��h��`\f�5�Ap(���\5�w��߮��O4�e˖AT����-]�Ug?��S��)ϧOhsX��Mcȥ�v�@��Tz{��?���k����	.��ƒ�*�8iTb�^�4��L�����՘���Ǐ��3(��ؚ���FnPee�G}d�1���\�LV	�ӖuG��\R]]m���m��WY]�Nn7(��t��\9��fsw�$=drZZZLbLxdĸpF[�.��L�W��ԙ%"��0���C��;��Gk6w˶Ý9U��Nю��������9���>�mVGAaxQq�b�w���߾.-����u����PGH�s�/��2��P]S�y��aK�<����A75�s���|�SW�w��dhI�$I�$I��;@S��6�o��c�O(`.�������*, �M���c��?�d�`W�C
�t�>^�uk��,[97����r�XW0��9x$VU�����B��ȹ����B'���)��!|a��0g�]ᾲs�Z��BP�W�[��������w��j!5u9�<%�����;w�…�(S���%I�$I�$I��,}��z���a�݃���'枘�_�WZ�������� ����sQR��2�x6M�
�7��!݅WrD����T�П3g�>���6�ㆬ��ŮڣG9���Y�$dcR@>q��b����/'-��9�@���V��t���e�HΖW�*�ѐt�Xc3������f�T]�y1�IS?<�
��Ns횬,4>h~I -I�$I�$I�tgEpб��pᨁC���m���+���&%�~�#�L��ĩ�؏� --}�&�(Xj���H�Ѝ� 8��jҴ��m]Jf��s{nȶ��
��^�op���1[ �_|��n��϶'�Wp�������]nԦ�|e?��Ky���ރ�e��S��i”�n�q���MU#�@�q����[ز�v��G��۸��ކh6~��º���L�>]Z�$I�$I�$�.s@;:ar�ҔiY��2RV���}�M���Pc�^�l�ƪ��?����2m�K[�0>��k�
@@_;"僼l��+�ü�����ֱ*��,�#omZ�����|�����9=��o�/��~.�wO��*v�yJ���t��Ҁ���!������Y��Y-�i����>}���?: v�N��iSU��S8p��^�̙c�Š���Ϗ	���ƛВ$I�$I�$	@w�"�Sf��P��a��f�7����n�+�_�;�w���W�l�Q;��@j4�B���M��+��lٱ�_>�^�a߼}��"�|�z����v��\�}�(�ZZ�$�y�\�^�=��f�c��3��o�����;Ɨ�I�^������_�����������D��d��U굹=	��!�^6$yC�+��c>�ش�����xK<����y�X9e��>y�Ȼ���CQ�|x��;���$��%I�$I�$I��4�q4e���;.q�Ĥ��	���⚗w���;)i”��(`44&.>~|⨱ῼzK�g��k=sU���m��{�Wh��U[_�1�A
P�\�>p<fD���&����xi�3
^R��f8�Bg��y,-I����A���nύyk�ȹ)7�&G;?�/�]Rگ��<����K�=
���-��+�Yʐ����BV/�
}f\���@�[6�K��؅���$I�$I�$IН�=c��9�-�1[�mТ�<�y��e/�[���� ;ݾ\�'��T�
e�D��8�ɧ�f�9����Y��{܀����f���L�G��k�/�Ó�q������9:eUzAq�ڢZ�~�<[��ĩ3_\�x���Qc&�VLl<me�κ�!eI@K�$�%b[�
ݷ��;����"1AE9��u�u�?[ykZ}��׵	@���3��
�p@?4�5m�k{��\��]Dd+*�J[�"�&�*.�^�DDE�{)H[k4��i�Xc���I��~h���y��L&3gι� O޼G!�B!=���c�$����
h�91��F&�Vw����g�s�\�%��.��d��TT:�-�;��^zY�ї�7�̇�
����!M�G}s+��s��ۘ��ͱM�~ܮ��R�|���o��F\�dvM�EG���L��O������ۗ-���B	�������x��^GZZ!�B!��!�F�
h>_��/�'��l�b���e⬜�]-[���r�WV�h�����ƨ83�oE:�S@FO��o

���#xc��eׇD���8U���U6�P���]=w
J�Y�n��Wnt^j�gkhb����:�PZ!�!--�B!�����跖�&e�	�Hx��qz�)�@:�
G1W]h�InA	�8t�^1��sN��[��&o��2{\��sRj:�Lc��}9�vg��=ޫ�64_�54��+��!�-l�M^ޫ�O-5�hR؜�����}�!��B	h
	h	h!�B!��	�>�sx���FӿA693;烏ge�K��:s���w��T?w8���}6�:�����LM�M���G��(��5!e���ެo1��K�+��X�捊��k��7��9���~F��FN T���BZCZZ!�B!=�;��͑����}�y�j$������\�t��ë�ho���c���9Z���O5�8M�3!����䚒�A���h����Wۏ��6,6W,��ZBЄ����Z泆�6�zc�տ!-���֐���B!�BH@O��~k�d�}֬�����@�3�������S~�
S�����A#���MӡA4u�q�L���ݷ/7��vafqى�����4"�e��~낑��g�.8�ENU_�C�<��#Ԁ���BX�8{��h~���.XZ!�!=��g/~�w��F�B!�„б�im7��I^L1�沓g"����hli�
#:1I5s[�}ח߄E�)����F)��\�s�N�4:����]���f����Zݽ�1��9y��4wT\RlRZ�����=�.3?��.�,9v�X4�k�gd��nqH@!L�_�ËZ�|���jzA,�?φ_���Ç?�ۈB!�B�2��i��bC@�yi��뙣��?����f���&����NWF��A�v��!��!t�,+[�?T�e
M@**�z��X�Y�v���A,sĖxa,^��`ai���E�n9��S���틶�q��}���-�0���B��'O�Z���4_v1� �������Ϟ�����$�%��B!�fL@��	/��@:�}���S�����f�xμ��ᆦ��M�$��"=���F��+7/o?��[�/��_�>d����k���oE=�+���!�e����L�w�ы���_���۸r�^KW�YL�%��&���л�E3�k�7_v5�#�X}�V�pT@�I5&b<�s�ѣ��?p:���6"�B!�f��2�|����Haƫ�ro<�qOq̷�������n�j��}ŕ{cDZ�x�d��]���$
[O�y�P�%��iL�x��0�����w��000������y���	!�B!�xǘ�6�3���;�M��8̭>fC�0���0N��f�dRQ5Q�����jv�~������˗h`��k��j=Z,G�g��������{�H�4˲�(ڶ���$Lh�����~�<��m~�H�|���v�GUUu];�=@{m4�=�i��t��	� @������h����&a��	� @���?��	� @�&@�0���	� @�a&n@�
t�'8h��e�����8���~�~P����L�̹e���b�~]�iK�MQ76���/9Z.�/A@�!ZPA�. ��Q��^���{m<S��Z�~����<}����|�HDD�]7�����,�DDDDDDDDD��6���`1�&""""""""b�k@�@3�&""""""""�^��Oy	h"""""""""�μhh"""""""""������@1�v�5�9�������������+g@>��C_ 1�w���ڹgh"� ��jZ6M�se�"ވ�j�x�?4>%6M�34u�htz�$6�
�`0-�ͫ����h2��^�Ɍ�\w��jx��V�Ml�50�^м��������xu[����	�d��Ʋ��������b��v�Ʀg��i����y�Y��gp�Y�ˠ�v����
/��آ��̹�)�=C��-�u����%�����D��z&F�g�¼�b[{�ǧg[�T�4�$�Z]��(:�;>��}/�����-tM�\��Dg� z�p�����q�zq��4nqi
�g���x.�.s��ocADD��*����ą���߳���ڶsO��me�4y��f)]V}.&�dH��i҂
�
�<z���E�a7���_f�v7�A��s�5M�g��6\��<��[dJrQ�ߵ�����O�&���ucp�yV��5��ox��`)^��{���f��}�$���Z+��O��W�)Ʀ���VU��Y�5�O�	J��Z���e?IVMS��>8�ؘzt���͓	O�Vu�K�u͂�Iv��s�O�Ƅ�Q
���}%�Ԟ-z�������e���A��-��\^�x�|X}G7��3�BҮ�-j�,�K(�H���K�CӮ�N�-
����`i{πp�ƳW��	����Iw��k��qa���B\�%iv@RZ%&Z%��e��$ގ�`�p�3�^6^��_��8��p��~�ٚu��L�\ɾqپ�Q��uM,��X,��Ǘ�9�	K��,FKq�0y���'H�����@{G�8T|�Ͼܾ��-~�u�.�Y��[�[Z�eMDn��q&��\-�]�ؖ[y�thb�Q�:��{Q��|6�r�T�b�0A���xk8z��/;$�ɓ�����)���F�]I�Cc#A��ߌ(�qo���B4s1>�LT*�xlBdV��@I��i�kh��W�H.� �7��uM����
n�f��^N�C�L<��&�T���Ct�h)*�d�&/�
�ƶ�'��F&n>h�;V�7ɩ�{!.S�}�F��z�OG�C�ꆶ��^��hq�Z:�<:�FV�k?�T�^�f���}{9���,N���;�eD��j�N�Q�cҕ}.�і�"��H!�W�W�������f�*��Vvyu|~9q��˔Ug�Vc|4�����):}#�q�e�ر�� ܥU�{*$�H�ݎ��%���n֦ސ_�d�ddL��>���p��'Dz99C$�g�SQ�n	��B@1����?�j��H����b9��`+h"r?��*�1/�~�����kN�%�eitܢ��L��a1�Ii��~��:���bse���Q���8���)��6��o��w\�=�{`����w~��Lg�X�O��;<�p�iM�>OL�/5w�p8���c�f�Ξ�:����S���I���!oy�+�J%���ʋ+�cI޴X��H��@H �e��aðþ/� V�
 6!H�-�3��i]��oFE�"wׯ���_��ӧϝ�������u誧}��ؾע��i�㶊��v������/�]ұ�[7��+u)���w�q��?�B ۻ���u��ʈ�'D�v��x�]ƁSŞY��3�}Շ}o����D��^n~�0
�K��]�\���x�܅� D=m�g�όd)q歫��Q�-��ō�Bq5~�ʵB�¼�uߡ���F�_۶�pOɻ?���u!�:HǶ�;|�J�C[�h����8���wt9Vl�y�J�2�t�p�@��N���9U$+(6���8�S��Q�إL54�2��&02��O�S���15����4��	�x���pIk#��Ƙz��]wӚ�X��;|���"k;u���:xT��~r�������>��e�I�zW������v=%{�ܶ~4y�Վ��[���UjV�T�򁣧hx�w�NO����[��]QN�%�m���S�*��5VŨQ6?9y�b#9}��o߬�;��@uf%�K����S�����<�rr#|���b����'	�
U��N���}��V�W��5��
�Un�R3��Ͳ�=o��C?Rxb!�����3
�<w�:�e�ŸD��S��:༄2o�ĈN,_U�y�&iÁc��A��p��*-)U女�&ɜdz._Q��%�Hjl��C]���}��ԩ&�'F6��G�a�zf쌩�V��3�x��5,��u')���G��j���ή#��Γؼ��O��ڼz�^�;�<]��ڇ��'��pC�dh8؟��J�?���jv@!�fW%W�pG��}�6���4?�c�h�W�ASڔ�J���J'�?~��j�����.%cVRo]K�NX�[�҈3|7�u��޽uGSɟR9Ϙ��K��>�/�r"�ϔ���٥��M[�t.��K�_���~/��:�\r�j�I�trs�U|~�q|d�9f��`�7�C�g����S�N�ϟ=��7�|f�!��o��rCӸ�K}�Ĉd����4	4�:/\��2��ֽ����ό�����m-ꇢ҂�h���3X)'{>�yФ9�y~���,���a���f�Hnٙ���d��
`�]��o�*C-n]�:2o�:m��׶��W'%
�<;n���[K��E��0��s-�,I~��.U���g�E=���2�@�>}�ș��.@7eъ��'T�_ؼ���ৎ�ԖU�^L�@CTC��k��=>�aHCS�ɳ��<�[�>���g��xn�L�z�G%�I7�O�����5mQ������7���d8���=�Q��Va@� �������F�Zi�?tjS�N��1�u���O��.x_͋ڷ�O��z�^�)W��1�rl7��Lm�ň��Z�|p��E�y��Ұ$�ꯈ��6"��χwD>��HI`R&#����$-ZN�&����_�U[�'.X~ĩ �A��N\�ڣ0g�:�~�ͳh 5 �}�L��,I���B�M�%[t�W&��e�9aAuF/�c��8�Tm�w�l�r�r�*��""���i��-�&��+!��n��?=z��Sm�>��C�LR���?S��/sӌ��l	<7؜��l�,l�D��ѻnݺ~{P��G4��I�I@��m�'x���F��~'4-KZ�
��[+�5P���	�*R]�	D
kyrԙ�d�r�n��rӏzz�j9M{v�,��R^�g�U��6�F N�]wB���1@s��Ү7N�hB�l��p�����#V��~MmsI��.-���ؖ�W�-d��ם	H��V@�·�M��������W��Nt���P�Fi�{qŢ�
7L]��-�nީv��khE2���Qx�

�j�u���Ԋ��3o�<㡦�tfRs+Q���}��(�{�Xi�6O:ʣ�x���N�Uӧc{�DO1�/M�Gt+6�2e�Ȋ�G�c0��DU�M+6ĭ�7�\����Mk��D����o^�I�f����٠#�}�J�y�\�{�`
�J��г�u�3\҃�o�D%2� }���I�	��p�\�$��I����T:�7U��1"������WR���l��G��G���4.�H���Pc����$�
͋?Q�7�ygS�Жqs�1,��t.��K�_*�#��'�\r��+U��hИr���	��>�2Rn��;��
��6�Q�|�v�w۲��e$B��-]�-��>:|2Dضq�<��fa�∹F�_�Љ��Acbe.�m��}����p
f]ٰ�%?��]1\K�n��D�,�	%�x[ ����� ��$,ƴ
z�\usꢕX	��ߛWnޥ��f��z���O�#'�><l��Һ S`9�pT���ыcc�����p�ݸ�q3�z	����}}s灕[v�����FZ-#�=���I�`�A҇_����%��X��>�Z���l~�z��q�
�������'FM�J{�UD�2���_4G�A��s#�u-t�Q`�U�|6О��}њM�#^��<���o�����Z�]H'�F^Hޭ�C�{����!.�����,�_Ȫ�Z�n1v
���}}viWKǖ���5;B��&\#�����c�.5R��O�N�0��f������U/U�j_�kDCB�p"��Br$4�ܸy�AQ����CLp̔[$���`E���)�t;��s���+1#����3a�j��dr��m��획^��HPc�F���S�:�U��n
�;g	�f��6ea�j��7��՛q�KW�x�x��Q3�i�I���D�(V�/��!95s;�2������y��ۆ�`-n��-���W�Ŀ���(��.7%I�
�O�Vfym�vhE��@d7�մj��@2	P^�i,�y��|'e�������u�֊��G�����_�<�_l��ֽ�B��]�y'�A	���+��F�B3
ܪ
4�qF����掰��o>4d��#4�k��{���MD\?��6���U��&�y]@7jU�B��Vh�1M֑peI3m�m�������=1D���M��lR}v�,�ʬ���i^�A��W�iZ�U[����%\�n+=�E�3�07�0P�F�����_.%
��@�<�<|<Z
w��3��-�*��E��#�Ms��ԊM;���>�8-"
ޔ�t�
iϡ�(*cNn��ճ�WgV���^O'/l{dؤgϋ�'�F.kU�0X�
����1kx�H�#
�Q#�{��U��G{����sآ�k|i���W޾��n��W�e�ޅe3�L�=R4!�כ��^P9^�c��X�D��*�F�i$�-Xl.k���ߞ����aÑ�8l5}0�8'�wffM�q2'm
^����k^�2&7�\r�%��s
���:�\r���*[:�BV�epc�
1�kl�h=�֟�Ec�7��M�s1z؍�v$�P�5a"ap����{���
�v^�5�
hb�/z+���Y"��F��v}r��{����U�7�b���"��]�w�U����Z�Z���p�	�%K�'洮�Ј��و�R�l��5�YK�Zڮd�d2�8�c�R�#\���#g��X9�Inj��&8��P�inE�Ľ��{���A����ـ�y���+�*r�>q�h)�uǎ}����R,�"��rIt�y��ND��'{G�Ո���iU���)qf�B��9�����O-U�c|��9|4��s�ab��e)6�A��
Cp�$�KBY5�����l��7㘃�١Պp{�ɑR�l�q�PrC�=��p��"�j��qi���P��
I��U���V�F�����p}]$���f,���:��oB-�_sV((U�_�5��V/�J�����Ş���F'[!���&�p	���b
��)��ʙl�lӸ����hv�=�l���(
��G�ʏ�U�_�@�K��`|�O��;���e�%λ�W�ůCf�NJ�k�k�pQ�N�BD���}3�_��]��̣����s��Sw�5�/2��2e	 @���a��m�N�W�9q�F
���Hݎ>sҘ����D+�P�0�a�y,D��i���	����=���F8�X��}λ2�[;.%a��װ����dȈQ�`٤͡�b�b�@h?�*Ē`QI�!� I��"���0V�.a���V`�+פ�s���i|ta�1�=�3�*��6 ��HV7}R)SB�T���yѕt��,�\��
'�Y@�"�G5.�\οa�8S.&�[����1b��E�Wt̍b~��?��)j�G�UM�H�B�v8�??�Q�yIy�l�������EvL�)�cߞh�����"de+R�3qA+��>���ng��I^���LŸ瀮���Z�cs<
�8����,��J�,�8��s����i��d�<��:�\r�%���'��s�%�ϫ�S�4���XH�fki��Zc[��̹r��X�S�6��2�oeE����j��X���j��kh���TPc��7���+�<��q*6FL����!E&4#�D�p-�cm��ݹWб�l!w�*ɦ���M�|L�܄�B��F6.�:%�`�2��>�uP3k��{���W5�K�'���F�9�!R���JI��
-D�c
E��7�G�E�v�����͡
���b�k�+脃��|���5]s/���y��Ę
��[ )��"e�!�M1B3RI��x�fR��|�����@x<Z��))XOL+0A��mO�<]�?�b����@ �8���%�sJ��F7%yJd�&��.�"C\-��Mo�[C��7f��
�)�8u�<E���h)��rcv���D�H���������m�;ʠ��{j!㰵n�����<o��.ʬ;�O���Sݫ
��j/yӪ4X�)/�?��w>�8r�,S�D�K�)�
6�m>��ϰ<z'oy󇎻Q���0�%ڦ��G�C�7��P�VF�v@VT�*&Mb��J9];|��ЭN�������9̠t:H�<g�Xt�.4��Ni@�l�#��6d� �r�4�-��*
�/���f��_F�6Vh��DE�,Z)ޖq���Ƣ|T��I�:�����4��}M�Q��w����;h<y��F=��O"���X�Y$FKQ�4C� ��@�a�4aR<�8���j]C{#+4#L9Y����zq���I'Z��Mo�`�&�V�501�r!8���oeܘ>?�E.�6靷���`�ն�5}���q��2��uZk�VӮ_��f�R 9�Ly��Xc�5F���W&�B���J�s���O�x�X&��Q����>�������R��zҼ������>Zbں���!A�(<���;�/��c�x�� r���s�%�\2��:2��:�\r��
�k;�-�U��zOf�X�Y?["&F�*7hH��K�`��_���A(hpQg�D��k��US���8��["Wr*�D��>��x�A�h�xτn�ʝ8�:�kn*��/Ѓ�c^��󒸤�NZ<,��N]���e�ſm�5�]��NͲ_g��u�`R���B�Q!����	��b=���ִJ/f[~��1�(��I�I��/��U؟�N:�B4Pd10`�Y���ъ�8�$a#@�j�޲�v{{�C�Rp�:IDgj�T�ԧ�ZOy���N�T
R>q�G��қ��0�*��i���Vm2���|\�*=B�b�el��[U�p����0�����U�rz-���Q$w��w�HZ����&R�ǃ�Rq2�V�j�S��V
�<����uA��3���U �f��z����]�J+5���khcwq]�m6�qkyK�C��UMI�8�E�~���"�&ҙ�:4[�E.�]յ�tCI@.��I��.��#S-ܖ�Q���&z���yB+�`�V$,���j��t�8F�hr&%M���]X~:��2���$�/��]��a���Oպ�-!xȐ�#�2/�#�%is�B�,c�-hs!�PQ�	1�n�U	2
-��u���Φ��n7iA��dɏ
?���J�pLqL^c��hf�e�T.v��0fG�if�:+sp���6@����f�'��{���OL��Ŏu�~�YK¯I�_��d(�UNAd��l��&�m�I��h�� SK�oR%re��&�68S7�=`�5Rl{ș}����?3�����B�"�]@�#?��T�>
:7��L�kF�{��Pc+�ŋ@uʓ�����ě��o^��h�O�r�~LL/��bC��36Ќ�z��2�&�y-�?7�-2�S��hй�K.@g�?@g�K.�|~Ez�a3Z�1�W0Y�X���'5/���: ���#�O%�V�@Gx)v4����Y٦�����G�b�4�LEB��~��H���+?�M�%�M�֭�w,��!�y�s'$Z�Q[�U���)��K}�%�ջ?=D����7�m�ܭ}��p��{�G)�t~��ip@��/T���0qv���=h4*�����qʃ>`�zZ������FP���e(��:^��ݼ��^�����ʋї�0���#)h�"���>�dԞ�H�c�1�E��)�f�7���*��5���%
�����ܬ��|d=ʙ�"v�N2v��0�k��&��O�谉���ʙ����_�U���P�ͭ_��
cL^�g�)�)#qp|E11wz���ꯙ�����W�)�a�[�)����
|ߩ��`
W�3�
�-��6�3�F��F\��LDw��
���<	)��A��wL
���Q�	��C�0��[�D�*��؃�I��g�.S-Ɛ?	�G�ӢHc4)~�s���}��I��%��g.4���>��D
�TdT�_>��K�U����"̀h�;H�b �Z�?��=��3�/�'ҝRp�<��<�ߧv�赇)��#-	�b%�OCND�%�O�&iдW����H�3}�M����9|�̭;�G�{@��S�����,��)��K�bkNt�X�Y�;��_�s���&mL�>ӺP	��ƫ�-��wL����%�*�.�FLGš�!��[Q��X�2G�Ę%I)8�SZ����(�nU��P������w܅b��<DZ��0q�8nc�
�0/W�FS�ٰK�*U���>�F
��I!��B�Rp0~�r��\r�%���@����_�{@�Oй��W�z�c��O���{-�-��7��+KۊAo�#���R�d)(�M4�po�
б��;. 53�-@,��ʵ>��Z�ہ��`%�Ht��\^����	�B""�2�"�U/�d	����/҆Z�k��Ő�0C-����Ú�����q�%���EN�Y<� ���t�����q��l�&M����0��Cn:b�Nn��S՛���9����C&����ք��+j*�޺
�X҃�^�$��Ϗ¼�W&j?5�h8p��@�ZJ����
�n�_tBf$�‚Z�t)�)A�^�隔�U��j��)'��;��,p���a�M^�`���kq���fl�{��eU�C�6QrR�K�;���.�h�K�ʽ�<Gi�n���F�d��0.w����7s�5�C/�?|�L�ʧ�b*���t��i<xD�OT��MI㫆�K� �r�TAX��5[�����bS=5SH�����ܔ�<<�n�.h�Ջm;������Z%��J��u��ϐ; ;tL�3Ċ"�Ⱦ�Bl5��ٹ5�Î�[�[����lܽ�R�|�D��
,�[��'o��&��D��o��#��.��9�e�*��3l0@�1�Y�ɠ'ST�v����`@[6�-��vS����5�I���/�MH/!�M�u�_�,�s1U~�I4������,��2A�gi�M�mb^|�����4و�>\�H|EgF�Z�fmjLkh��d�%�N	%x�Ȱ�ĂE4�n[<�PW&������x	!�r/苗��h���d�� ���ʹ�獙���{4�7|��#7Q�pN8�;��Zv��M^LO�୔��������/b.P�6�& �7���Ԍl��Ş�pw��ʯ�_OF���Wj,8�ؓ�eKi�jIv'Y�n��%�\r�%�/@߼y3G@�Oй��W��]B4��@.kHkݧGOC�,�"$
����h�k��8�xלe'�o)���e!��̘�	@�;� #c��&/�
*����^z��Z�B7D�� ����bx����x;�o�~u�,���р�$<jm<�a�U�e30�#�E$<��G��'�u
\(�oa�8����jYR��y� %����t?҃����{w:�%��T�>JxrD�J��	�@���HL8C���ݎ�6̿�mx��iK���)h1�`����޺v�ʢw�[@�>��f�Z�Y~�%�
7k�˼,N�bm�zjd��J�3A�A+��@
�o����4��$hR��$A�܉��s-�F�A��:�RT2�*Fʰ���̘�(I��S��a:Ŵ	N�eȉĥ��r��?yy""�1.���J�(�JD�F��Jj����6hL$�!��	
b�y��T!H�=�ZmPQ�-޸�]�fXώ�	����	?�����BRzlx=9���-Q�|�酉��k��?�0���u�����������Y��^�
�ŝӛ-U�u�D��11��T���h��2�&
�#�	H]L��́h��K4�DF`���aO�IJ>��f��>(�NBx%��4��Ͻ�N���D6�Y.z�J�D,��±�Dތ��\/Kd��#�K��ey�{��VGz9�ɀ����P�E�8����ъ�4�V������7�jhJ� �Xx>��YD�F�-"�^f��N���@?9��kDé�>_�()��ܙ�1�<G�,?t���p���5So�F8<�r��9$<z�3��|-R9.�,?$1y��Gַo��3T�Ɔ�E��b™�ӛ	?\��爧L�ܐ��E��>N�a2V��9���~��E-��W:��}L��n���������>:l�^�n]����I�S~s*�dA��p���j�S9��s�w��>�	d���C4��bR�dx%��S��M�����{Pzu$'AjsM���[���v<=f�oML�4�^��GOx�:OLG���G��<Q1c�.1�R`��«D��Nj��DH.��K.@��M�q߷���}�k߼����џ~����}�����={͟�s�%�/�xܝ�pYt�=��<��#�i#�����{��t��lK��Y�]��vlt��Yk)^�*�VU�п��	ȅ&����'��>���L��#	(�,���b�,w�_�V�cq��dUU!gă{W���6�����/�|�vtY��WVŰ<A }�����*.��-��q��b-]�*����S��OU{�<�!��j�s�Ě�%���!��Z3R��t��F'kC��u�����K�(�u���c
N����˜��4�TS�/�0	р)�T���s=~�����,�[�__�q����_q�R#�[��׋q��r�E
=t��#߅pTn������%9�,�
�І�d�b��<����$�%[AR𚌤>w/���W��CD�z�Ï�rS"�2N�B�}��p�j�4.去ϐ�XD{.&7��Mݽ8
���u�6��|q�S�S%�޾ig��~dB\~�O����8Sh�N�0&�	,�aB����=/_��E�S�狓ک��e�A�
Cq	#�P�dЄٟ$�P�dZCb�̯	Hu?��w�eo���M�߃÷�J�u�+⊩�l�E���~$��ӕ� �/]�rm(꒚��(p���Z-ړ�2�o5�*�,���r�c���L@4�V�FK��X�Q���.�WM�+1}ܰ0�,�0j2)��9��X'i�$�K+ʳ�y�d�E�/٦z��'�H�e^�iwa�R��}f�ع��)��Ξ�Sg�5�-�7�Mu޼�k�I@
U�d�{�:x��Ԗ	NG�����q�KF���i�έ[�X5�]��ۑ�S㾪�1/�r�%�\2��b��p�׾���/�������������~�O��o�w��g�W�¦��{O`��tй�˗�XX�r�W��os����
��t5P��)_�4WP3:�6Cf	�xR����B >���&��%��y�@�E��ߵO`�7��+"���OT�kz�M��;,(���ݠ�RuI�e�퟈�F�V�?�Ҹ�lѹ�K.�������3�*=��u*UIYǕEQDeDEq�;Ⱦ�����(�"Ȣl���uC8��"W�KUn�M*�qfb*3�*�c�椰$�F��}����>������<��W�v���4k�]�s��L�.����l6���\�ˏ����k�B#����ǜq�qwf��{����B1�?&	m$E���g�=�^-:[I	���x��#q���D����
�� 
�ȍ}���7�-�i�����!9-�)H�*EG�|b����Z�(�ۅ�mRD�� ���g�3����l�l�U?��B(�cT�<w��Ɍ3�n�2�����������n��7�_��]��e��e`�gΞ7�' xe����9�y����D7��Q��n�w�Ŭ����u.���B��_���9����L|3��Y&^���\��6��;����ھ�J ��i�!�]
#��-p��Ck��x�k�o��_��{���#Z��U!�"��3n��]�X\|��������K�D3�jU��嫦;���Z:��^�iKMm-L&����v�vγF_!��7`i__�����,�s�?6!�|j��K@!�B!�B!�^w@[�=�2���o�J���c�%�
��=��1Feɖ���#����8�y0�ȉS�M�=��Q1���Ds�;�ۻ�"dc�\�-^z��?1y?: h��߉�A@����ǐ������v�b�q�Ź�ƥQ��'#a��(���|�&k�Im3��,-�B!�B!��cB�r�1���BG{{CcCAA�mgt��|�`�Ӭ1�8S�o@mm-�w�G�9�M��Č�����lm�>w��M�������Uk�C�̞����tB?���폀��oh�2 p�J:<���(Ŗ�>AN��Z���ns��]c"�

��d�f���?�K�o���ו�-
$w�24��̢&#�,_�������^����#���ٻ�{�/����܁����(��ٞ�$��B!�B!����^t@cB������sgGDž�|�nxd�x���Xil�X6$�b�����m�:�3m�Lc/A&:�����@��a�Z�j���:�?�Ꚛ����Q�#
�i�3)�+"������������a�T��d{�;��(XV^a\����ᓭt��t���ύ�]�/��۰��y���[���

�9�罼��<&�ZRVV�ƌ%���[�:��~�O��+Z�[x�rY�o�a����{��������Yٹ�rCm�],(,,>����[[[����H8��v�߬�j�gz0����r	h!��U����o�Я,!�B!��X;�1�h�!�y`B~6>1��i3���V@CggGDd�X!&�9N?f��Y��[��\���FL�%$wuu��SRӐ����ή� �GМ�Z���]__�z����,�L���&Ns����XzX���I�R2NgRSS2��u�Έ���1�	�eꪪ�F
c~�fe[,�������/r)�|��-8$�봍��]<�~��|���`ee%w焑ԤZo��율�x�5���
�VTVvwwc���g�9����ː��q�ɿ���0�F�����rY��K	h!�b|<z���7����?�r��7���_\B!�B�]@���f^�40�ϻ��ې��9��V���tL1I�C4S����8�f}z�$F�NjJ������KH� .c���8t�&��3��]f{z/Z2R�+�� �b¤�?���M[����b�?�>#|O42����c�7	��f��O=������"�S8�����ɴK3�Y�^<r����a��}4��ٍe����m4#��%%�4S�CBיM&����M�x:W�.�|��y��z���d��TWV�^G��e���]{�>�b�؍������H�u������))-��B!���'O�|���z���o��W�}���B!�B|����#��t�Y�}�͖�a�v��Ƙ4��ba�X4a��>;a6�i�Ԑ���ZR[WWPXĹqG:���U��db,�]<\@R�&f$�w߁Դ�G���� �I�&MwB@#�c�ѵ�2�^H򑣟�i˷-=�-�:}��u�\�&�b��pf�RMK2��W�����	�.�y�Iv΄l�F��ћ��$ڙ}IA1���ۋ�6j��q�ڵ��Ν��_�
U~���*���w?O'-�B�)������T����=B!�B	��4�x��̳�EG��A��W��ӈ�X6nَ䵽���ݾ!k�757���6�4�Lf}ċ��	.�Y���k�j�� =�����OrŠ�޸y��P��&�q2�4w��nݹ��\�AH��ǭ#��1vT3h%����ڮ=�LyA@��޸q���al0��N9�6�Ճ��]�:}�j�����`M�&���f�UUUEŗ0��SO[4^;�F@��m5�|\�B!īB�3�����?<y&�B!�����82�њ�O�����Rɪ5���ԗ	h�5��G?��@�L]��֚F���MH:q괇����`�+ظ�M���J�+W��s ��&�!9�ۥw���MS3�&۸������Ry��h�fb_oڑt�a�9�\���@CC��7|��E�K@pq�g��Rm<�p�v���AmN=t�ʼ���XP���G;2&��J3���e@�s���Ӟ=ϛ�D����qVm�P�n�1�TR"-�BH@!��;��3��	��$ϳ	Xa	�ń��lB6dSذOH����M�$�ƽ�[V��h�{�Y�Umɲ,��7K��b�g�ؗ��6���c���r�{���|�ʐ!C�2$��
(�_Y��G[b�}z��-�l�������n�9���"7�\�=x4��o���DGE?��O)���)���7������C�36�`�~j�-�5Ps
����ݧ׼�������B:0(��y��3k=�&C.n�e;�����o=�u0}������_�W\l/䎘r��3k(0�\��������"##t:ݚ_��wy��5�l߹hέo��@�y�cVf&"k��T�j����2dȐ!C��2dȐ!C�2dȐ�>�;P@�=���`�&�]�!~�?F�&����W�,1�s.���� �ˋ������C����X{e牓6h��~Hh��ᏰW^3���	�}ˆs���NÑ7~�!�Y��9vš7�!����#�)??��˼�Ww��x�'����9��L9v����.R��׼���O�ڳ���n@�
'''aQb�FC�~�{J�{�'7��~�������g_�>�~pv���Prr��F�5��]��6\��5|�燫��
@��V[�NcK"LE��ֶvlsZDh2dȸmL�\[�R&��+S����Nb�}��ã_���ۻ�����=H^��#S�+�mC���s�ϵ��k��N�o��F����9�&�#�C#_H�zG��o������6�����ٕ_ghL�{�A�g�]�����nrz�ohtq�=0s�Z���‚4�^i�M�NL>E��_`���dȐ!C�2$��2=��x�Y[{`�	��‹C�B1�@V�|�Q����TX6��lE���
�
h�p���o�%������}/$�}���Y\8���iވ����-z݆w!����5���-cK��wPX40���c�q����/��bp;�L��y�"瞰����y��ҭ��UhXؾ���$i�}��N XyPB��~:�f�-|%<���8����x����@�d�S��3�q{�S�'�cND.��W��4�'�[N|k�(6�g���6��`8���-�2�q�qӊ�ⳆF��k|N�>>S9��k	YIy�����Y�b�Y�Q��kצf�
�}u�����z����a'��V;9���2=�̢љg��j�K���%Ҹ�-`n~a�ə#9K�'@���<&�p��st��b�i7
��O���nl��>g�G&\h�G�tuc�O@he}?���8�r�=p��n�;��O8=ml���tQ�)yl�4���,�\i���J.(��l7�v�J?S��96��g�J���ӯ�J%	ǵan�	���V-�j���������2��D���t4��*�x�����w	N�M ���Ȑ1�2dȐ!C�	��4��cF�,�7"�"�@^��3��]���G��a>�]�1�ݣ`��O��E5̏�`5���m���kh�����R/�A�|%8��D!%f�L��Wl���͈�J�[����?er��Y����#EI�W�)�2��������m�GD��я�u�-b���$�f�a�54J�3�*�݀�[��~�A)9��|�=p|r��0PctfaxZ�jg&���gZ���6:����ޯ^O�/�'f�\���g�>3{m�~��O]�I�+Ѐ�mV[�ZXX�9�����ڲ����oj���}���Bcz&��'��T��˟����ǯ���Df�������c~EͮS�켻�E���d�����<��2�YY�*et�|�d���{�ٮmj���{��R��@�}͇QZSO5����D�0�?q��b��^�(�����+O6��MD�.G�S���1|X!`f��50&���Ab�k�pV�_%��
K2dȐ!C�@i
h�"�����\��V6��ص�cκ;ʉ��9�+!��cW13#�7�
�-?@ː!�A������TֈK��o���}�':��&3�E�{�\�na�(%����;{&͐*K�㞡~.�#s�Ö�ށѱ[���C�h�k[�/]��zE�F�yezrj���	�r0Z`��Wk�9�����b|�rG7T������30��2g�_��.G懲���(	�b4ut�Ř�<�(��&�s�˃THf�y3T��-�N�|�#����<�[SU�X'8{⊡���g@�P$g�v��f�#�-ݽ"��R4;��p�c�@wO,�:�޴iSjn��Rn�w��`ʥct��C�޻��ڽ���s`f)���[o�%���N4A�XX\�n��l��-�n_��VP��$�����#.E�ʋM��%���'�hkw�Ҿ�Q�S���;z��L���=0Dig���
��q�M�+UW����7@���6�O+w����+���:��Q�NDEN�^hj�0�r�R��o$�lj�V��[����c~��^�J�֠��y�EC�E�+�����PhJŌq+u6�����:<�9M��fg�@Go?�sG�6uu�����������ȧ]8@)3�me���R*d�|GB�qf	\\����q�_X��l0�II3q�ޮ�A���4lu��Il����s����ڑl��������?D7S�6B�E�6�$���>���g����i�5M�7Zur[u����H
%QOѣ�	J�E*C�2dȐz4�0���nݾ��2�yYc�����2Bȟ����}ⷯ�����_y�@ɿ��Xh2d|
��M��#�Ǹ�b��C��tq��G x�m�Ǭ���>����-
hN?S	.a?*Ÿ�b��a[6~�ŕ�aIxX�F �5Gr�qȍ?u��E�
I�J=���������%0Mpr�R��F��x,��������a�����P6x�5#��.������1m(O�J�9��(�)DR����k�$(�E���Ϣ�D0�0����p��������c�Υ�+���R#���.��q������+&lH����S��^!$��G:p�������]L:���x(e�I��,������<���h���s��?����#c��M.,�x+��=׶l߾���c��K�;c�am�y���sM�޺�7n��z���+���w�i���ljJ�}c3��}���F��g�]5�"R��G�OJ�]�=;�EC��I�X9�>��"<+�/�ԋ��&�V�:꣑�;Ą���(~4�1-
|:(����mtMCc�W0�#���v�H�.��&�64<=OA�n�B]($�S�����@3��=��^R龜����G�u
���<�@�;U�+���*���\f��#��1,_i"R�x藩�	����s�A������$��r�����DZ�x���$�4���u���1tW��8�4�]z���tof����?�%vҷ�;{�&�yL��pf��5��'I&�(�iD����<
y��Jil�..�$�mqS��QhwnA���6��)+
�=LnAҜC�Fq��0Fe�df9��t.%�O�}��>u
H;S!*�j��܈<�ǔن�����yF�3��2�n��%X�"{�%
��
]��ui�L�B�s9X�u���@Bҋ
ERΥ��·$C�2dȐ!�jh>�
��u|���D�118A�@г^�����z_yY1>�/?����@ː!�k���w;��,�B.��iP� �/����p6�x@F�ں�*Z�ao�n�%Zi�%$՜߁���tX��#���؁T���V8��^���8�D�C��q�P�@6���ln�W�u�Tn���a�D����Q���83���Bp@c�Mm`x
�f�T��CVI5�T�r"u���
;����A��<�O�I�>1��x��	5�:`�0A6 �l@���d~���ۤ���]4T�-  )):��U����CN�>�4m��p���ʷ'|��؂��=��
�B�HN�u�h��=Jp�B�HI�hB�� �.�ʼ-��[�>S�����g�u����ׯ{���m۾c�������ڻаT�"I��ӗhtr��
�59�$����m:��^�6
��Nnc�䓇���7=X�?6�ĒR�8W�(U���{���c�6�p��.�rZ�N�J	�*�v��^�s4J���r�OuDaM��QE�BP�8��u�m�0� �<�k�~@�L$���4��uc���=(sxz>��k��
ً�NaH}��L?�����8���B�btЩ��i��.��#��m���˓N1�&����e�I�0���ի�#85�_H2��!9L,d��ۀ�*j��h��f�ŦC��9�(6Jm�pk-ܔ�r����b��R�%�,��4�Qj�^��BM��;����O���ҋ����3d�-��o,��"3�����L̤�;�Y��f�
R��=++{��HS_QT���	�<��V �`v9�r
M�W��p֜��zf`B6ܳ��������[���L��+���F��ج"�h8:�`�$�I2Sl[�6�;{)<��ѡ��@/OP4�3ȱY�`eN�i��+*mI�2dȐ!C�{@�1��߃.?��m���ށ����x����'���p��s/��hq����P�o<,�Z�_�@mg4flm>�z��ܾ�A�~�&j}(���`��u��� \���p@��\h�N�)�.���P�0�	h�2�ݏ�X�C�BJ�^�qX 8<:�"�2%�%2k|*���r��s��rC[
=��x��Q�
�4���E��Zv��F(�RԎ��Ϭ�*S��l���X]��@��̖�>�QM�ī��&��"?FvN),/$��t9��<�Ǔ����+m�1W"ɰ3<F�R�Xqk�\`j�K��l#�hZ�D�fT��;��ܳ�I�H�u�	�I�$��7W�qv�O����A���=8odU���ϙ���O҇D�5�������pg�3���s��YY{�kW���3t`d�C4�{���#�E�A�1?��+�,�X��^tZ^���WV(�U
���UX%�~�ȝ�gWB늫/*�ݧ|�5��Z1�Dʊ!;��>	�B����E�JA'���㬼1�X6�#�t@!Xэ�?���ݡ���~F���їxa)��ȶWd
wU���f��W0i��!Ʋ�a�(��.V�(̚=0hƎy�I,Z|z��3"���rAe�SaU�N����U�+��l<y9��#�O���H�5ko Z3�����;o䜭$���2@�8�M��{�,��dx�`���1׳�
‡g�#�U O(!�1�PX�djD+�圹!��Ԍ�[d̞�?<��|B�0x��x	'ϗ��Ӕ7:��!�-F�-:!�n�I}:�ZFI���<4�HG�͚=
�Ό-�ba�R+���_|����;l�
z���}���@�a��h���w��w[�2dȐ!C��S@�ߞ��G���π���߾�����&��ÏK;��Z��1����%��@F��EH0���%�D#Z+(O��ZP�
�O�Y�u����R����S<'^Q��������m��@UDР=�yP}��?�Jy��!H���L_����:����,���k���� ؎j'H�"�&�V�8)�ty]JF��.�������ИꂨkT|���}�ƽ����
��-;��d�&�V{��U$?
��LA=M�Q����(�7�,01��F���@s0��R���X�X	�NH�@k|�QP��ڿdV�1�.�k�$���2$*q��o�*�����@u}3+"��*���O��h�5�ܳՠa�$�TzWCk�@�z!��i�$Y���'��*�0c[��tjaP0.�6�i��T���c2:��fbB0A���cM4c��B}����mά��I���i\CD�c%��@�9�Ԛt�2��3����W���Ģ��i2X�?��%�0c0�y��+�d�M�D����	)=I�P�H�lpX�4k�4�w�������L��f��(�Y�j�u�-�m;��*��,�DP=�����vnDWd��Ց�]$��&�-,	�Β��	���1K�^��s�+:�c&"���[l��GE��yD$��;�C��mBkB�_#��l3�i8ܟoN�z
�����h��0ү@���B'�a�'6=��J�g��^g]tV!�,%bBb�Ŗ!C�2dȐz�����}�	>lH�,?@ː!��߉�P{}�;h������=A~�~}�#&���pN�;@��h�s�=XI��
@k?S@��)7�n�p(��@��wOU������‘�Δ+{0��W�}/�,��|�_QX��Y9����Tp���T9q1���~��W`a��o���8��,V~+��Ĕ��T�(�m��+��@c�2=3��������4
%/€���ax=Ӭ�Hb�L�)Jj�v��/S��x@����XZZ9�vX�mh6,6�o���)�v��ع�|S/��
mee�	sV@ӯ���M�"0�A�ʿS
YÍ=)^�����!]B
�	n���n���r5�B�gމ�)!��-��iN
	�V�F�ZBc٦R�Oe��8>+ħtT�$n��VD(�	��R,�p�� ��{��tO�"<��
eV^����C��#Y�p�U[�C��
'�� ��2���)��J~�+T=cP~Q���g�`y!>b�`?�#k��TH���܅q��]|URS��C[Њ�`y ��z��VC&��\��$y�d�<�@2Y�0
��ָ�3r�?[��ӊ+�l<�L�<*�V/S�˶t��e��f��B6���
�:Їn>��MYYQ�;�*�$������ו>Lc�C���X��&��vi�%4=M��AqL,�s1F�|N�_�	�&���v��4�J�dȐ!C�2$��;-�(�Gh2d�?{��\Uu�q���/|ٙN�W�t�Z�vD��E!2
ZD�jZ)^�RJ�KrI�+����� �$���kNsB�hg*�=�_v��{�uK��g?랑xS��w��
�C
�$N�4� ��@�(0��!�S��[h���T�X���p��MÃ2�.,���h�9`l|"�hD���/��:�B���#cm�ޏ�(�__Ħ+ ��^�v�)��7g�csV-�
	�E�3��dd-��Q?��-������1�N�H/6��{�I��
��Ԛ
�_+v�0��B��R���G�n����\3���pS:���tWE�ޝ�n�m�_���+W�����~n��e˾<״�b��'�:Q��18��ŗ/Z�����&6d���,�n*�O��]h�P�	GNU�N�$������7Z���2��q"���,��>�}Cc9�@�K�6k�Kݽ9-2vQ�C�w�4��R�5V
� nY�X��.B���b+�ܸ�j\�97������?�{<#rZt��(��O>��H.c�쵿H�H��`�J�ht�=�f��jBUԹ/Bh(۱[y&��U���-��&�y*s$��#u����gޢHvc�������4�d�f��S�ƵXdgHs��������Ai�UW���ڱ@{�f\���|���v��Jv@	����	@��p��|m:r�0
����%Mȩx��$��+�|lZ���qLI�z��Bv�M���3xΑ:�w#�'
�扅�%��C�hs)꽵�X�F��K�����KC�P(
��@���@��@�B�{I@�	?]�)�Y��౪�t2��A5��vu3̖�,8j�?9�+j�B�8����Ѐ
���
����R�������wM���S�+h��*�\šJ���*BgH˲:� U��?�cL��MՏ�jP��\�!����ᯌ���N�����g�oT7�8~7Y"�T{rb�,�j:l�t����x��^���V�Å��d07�S���;ehtL�Nmk���b��ŋ*��_������[�wMnش5hIǾ�[���=��Y���U�@k[8u&�ɟ�*,X{]hnO�(��o�3w��sg�5��_�M����ui}N�@���Em'H�Z2��H���0�"��f@X�2�$Ǵ>��M|;�������N�s��}�Ƒ���uͮbt�JJ��ǔݦ#Y��7��*�{LM�uA
����Uc�2Lt	A��U��"t�%\�s��(y=�mb־bn)Ю�>n��1c���+��Z�zn�0'@��X	�����o5j֍�|h�P���`z�"��LeO6��ܡ�7�:t�J�}Vu�@s�<��<Z���\$�J`�VW	�����L;h�w�-nٵ�К�{��J5wM�^{v�wP�p�[3P͟�k�#��
�G�����闅%��v�뱁9P����J�\��o���+"_D���L�2d��3
@[%RU;!�x2��e��
�B�P(�l�y�[�P(to�!�{��f���1q=�|���v��l�\�rC�'be�A<��
;q%6^��/�ԢQbX}&~C0h�~�e��7��n�X��B�T��^���Rz��(��'��e�9�o_��&k�4�:kwT
c��d%csHe�Ἅ�+�#n�+��rH+"���Bm`
2�Ԡ<~�!�x��U�B0M���^��}���j�P�r=�\��|��� �?��J���#ϗ���Wn_�ХU��^�����n��
R�An
���g�N�
�q�:�q�������5��QZ��������n�|f��.\�j��t��\��+K��B7�
�7_�^�m�/~���G���4?�U� ��h��,�����ϼ��r���a�h8����`�9��g��(`�M�ڽ��xIt�l-�;�Toi�@�𯇎�b���N�MAҕ�k[����ش#�%����Zd�%@C���k?��v��߽�泟>��V�5߳o��~Ľ�X�[vi_Y�j%��|��<�����ȩ��5�|}�-H�Y����z���<�ɡϠ���=�~��+h[_���D<?����h�9�O����?�����V�G�nI3��į�i�[h���덄
�P���3�캮r�̒�ʋ3��Qr���<���7-H�(�YhM�ݚCiӬU,o6xf�e�^5A�W���!��siw�l�T<��e�u�|�?�~}�*�{n��)�����1< �D!=�R$iH�b5��%��՛rt�5ծO�3_KD�?Qf�<ņ�n��4^�5o���y�s�b��5�-��M&p^{C�<�~Y/:��S'/LY���x̥��_�M��i��N�B�P(
�@����@�B�{V�,�0� ��ٝ99�a~1�@g�(��{�,ƌ�v&�cbXHn~����5�[Z���`��;��1�@k���\��_@�~}���Y��&=�j I�/����$N�p%�YN�3�e�7(f�(�/Z���E72r�S9!Z��*|W���#_���g��T쓙�ɪ�Du]MC��'g���mj�l��{��'k�8бEnD|J��wv�+X�T�&������oh�,�aɨx�b�q�~U]�9T�����h[k�XMKテ���ػ���;eq�_U�ř���!�Y4Dž���NTsI7�������E�Ү�&�n3ݔ����R+p���O��9�A��4�|ժR��m�M��H���_<U���ӛ�w�74wF�n,T7^��Bi�:r���S�:�{r�O���K�w��K�Õ<wm��rOn\�]�JVٮ޾ӵ��7_��"ʖ�R����GO�^hjˣ#�q7�0�ݽ�ų�›�2z��%��Е����ժc<PA6S&��#�DCd�
w�%;��f�y���yܵa�-\.�g�~���?]���U,���!��vtæ,�y K����z�Cp�M�-����ED�KUM�>����Q�����?5�TH�����]Zǀ}e�����9I�:^�%��=�eB3�5����7`s}��k����F�n���Hg�����W��D���ZJ��-�nd���Ǐ\(�1��Z�]]�
�mj�}IO+L#�P(
�B����<tl�C�P��Ā)�y2t����Aߴ�����X�m�c�s�n�:��s)���.G�&C?힊�6��ӹ�Y�9�����w͹l�‘�h�|�<"�g�v	�'��P(
�B�c��@�B��G�)�v2���%�=���[s2���[��M��9�����W}>�?���
�"^����z��a�g�-bUB�P(
�@��-t(
�[	1�9�d�n��;ڈ��[��o������BZK�&�"�eAHIQ3�FTFk�/�,�y��+}V�,��
�B�P(:!�-t(
�B?D��/���뛶�ћ���+
�B�P(
�Gtd@�:
�B�b���)7�o�ϭ=�GF�'C�P(
�B�Ph>;����B�P�����1��7|�d�����
�B�P(
��}t��@�B�P(4�ޜ���;�m�ƕ�݃���l�����P(
�B���w&\M%Y�j���Ң�6��ۋ�B����(����` ��NB�KHHBB’�=d'�7u:�I��n��z���T�իw���_ݺ�@ShJ�	@�H$�0j��7�7u�.J�i�/���"�H$�D"�@ShJ�	@�H$�P����QH�sM�pZ��H$�D"�H$��)�&M"�H�ã5w@G��O�B�-{B$�D"�H$h�O)�&M"�H�ã�M�v�5����=a����H$�D"�H�?�4ŀ�D�D"�H$�_���4�D"�H$���"M�4�D"���/��Ox\��඗���'�r`+��q��	��ϻ�N��F�h�L����'â{vmkn#d�{l�!$���i�o^
�Z�d��E}�J�e����h����y�����MA�����z�x�u��'�V ��
mmW��V���|A|y������~��q�I$�D"�(4hJ�I$�&���B�h�)�ZU��8�$4*
Nk�}c�[/�O�Uh�oZ��Y�SЎõ�K#�ma�˒iٖ-x�49	,魼�S;�)�����_w _,�u�	�єWs'�vP��j:���ĩwK�u���[Uۨ�qp��͓�%�36m^JU3b�Vk[�Gv�\c)���H�j˻^s��h��@���xe�F6����͵<��9��\_�d&��w��س�R��Nt�`�<U_��jisվ��[ë�vq�p�#�L�T��,��r{���C���κ�.��7�N�ě�	���=~o��Zb��H$�D"}��b@S"M"��L)l����[�|ۚ=��?�\}zr��~i��p�=�$�L��ղ2�{�E��S�DZ8�M?[wOlå�
��Eա�����������	�~�{/���}#ÈE61��%u���U/7�)f5�õ�������<�{�j��Bã��?]83R*kX�l,���m����~3��ޝѪ�/��zS&�4�8|�_=k�O̗YmY���v�٤�򕫧ϜVLYg�>�f8�����z�ƭ;���?�E S���Ӝ�N�<���p���v��כ�ou�-��u��=R�[�n���V\�l���^O�)�ؘ�t��Z���k�O1w6�I�����`Z�ö,�_��)�)N*`wL�!�*qÿ��v�J�.��=3K��3�uy��8�-���[X�B$�D"�H_{�D�D"}q�U_hx4<b��.���a_�bV=8�,���l{���pF�KR��x�-+�����S`T 
�b��{�~n}V4\s���1������3�w���qǷ�w���GpU�q�)Ƴr'�ǭpؐhۢ��<*̮.F�?�+����_izR�hB޿Ō�M8���3��=o��"�T�u$r�*���-�,�5kŽ�66}��-Y��v4>��[am��XZ��`�a���У���D�ˁ%���`*�ef��֕-K8�#s�~]V�S�O��e9^}(d����=�Q�����[&�/r���~����|g2o-⊰�?^Z
��HkT撌
x(.�7��K\5\Ey�Rpp��#r����Ǧ�����q�
�j��i�'~8s���K�DJ�ݢ���~^A�xt:%��W�a�Cp�]�v�
�1)���1x&�IN�ayo0���6?��?��e��� ����y<�F�38�4[Q۹����{�?�ϯ9��a���:����0��?��(�Y�uon݉�z���/g�
y�#9��hP��4(���\��{td��]0�>����D�_T�^%b�CaTO��f�y��Q_�]n;���9lXf����іDZ�1������P�Z"�H$�D"hД@�H�/I˛�w;_^o����0|��k���(F<>���4�j��L&��f�����U�ƶ"�<@��Ȭ��Rn���C+f1:���:έ���q�W�9���f��-ÞHk�N�Wf+�b���jV�tv3�<V��e,&r�DoZw!�8�W�f%h�� ��(�rGf��ct΂�N�	��+���~��f�C43���T�48e_�l�B�q�~4|�ZK���D����7�Kw;@�C�X�d��`�Q�ם���5�BD���R�c��|��3o卪y=ܮ���h�y�4)��y�0�8쏖1D/�5C�qP�0��p'z��!@�H���;�/:�E-��`b�dl+W4j
�k�4�&��)�d�ғ����*s���=be��j�	�����^���/s�C�qF;��:iZ�N���[4�������ζ�;<�2���G4�
Pkb��®����!\��]E���`�~n0�Y�'S��.G\�@��?�%��1� +4�n�Bk[c��'
�a�Rg�'� 01Ba�K&t�u���F�����N�ݜ49w!���������)�jf��[wS�=��+�?xTV]�_Xr!�"F��%��g���Q��/^*��k��&�{�e�{?�>j��>��x�n���A'�1����jX������|�ഄĢBa���K'Q�ty���v�QXv��S��c�'�zn�ެ���+��[�l��!`l�������<�a	_;�%x�X0&1͢�c����>�,>����À���Ma�3�آ`+���IJ�w
/�BIF���t���őp�XR0�1&�)V��v��}�ZR�-|ץr�V���e�jVG�T���L�,�����:[X�6%�0�h��\�l���"�uXF��#�o�>��;8��{{.�l������a���n�:wb^�窺QޮM;���$M"�H$�<���h��	a"R�Mt��$�?X�\�	@k��MO@�c4�Nk�m
��c]ڕ�'�w�&֦f�0V�x���\�
?ܫ�Y���&qӁf�y�����0or���KC�Xx�{��ꊸ#EJãKM��7d�)�q>����J�ӟ[s^V��ԧ8�ˀ������@�fL*�����K��<����|��fWR�
�>�3�����������{s���y}�8�NK����y7�s�,*��x�v��4�:�2^�O0�lWƜ�p��/���h�ց�"|�QO�C��������&�V����/5e��s0�Wã&��^C�P����؂!�
�z�@ßq!�Iϝ;w���gϞE`bx����$'�?v�hb�	�w�G����&5-��_䗿�C(	�Z82��)�gd�x�n�!������*c��4�F��d�x��G��n�x(��Ǎ��̬���Ǐ���GO�����"��y~�h���q�����w���D����r��+T��?y2�Gb_���A�=��U���oTpx׮���oP��Ӏ
�vv���\��~��u�����ōmԻ�ۂ�"����6|�
����@�Dh�JNcנj�[j��#����3a2w��/	�ޓ�uixU��x�ix������ڀ�b�p�~OJ�)�;ރʘ&)��)
�`.��{��]ő�q���7�b������1C��9L�D`�@$	$$"�$@�B�H� @$c�͘�pk�sWW"y�xƮ������]]U�����_Mݟ�c��>eH᜞[��\��;�@bQ��E��{�ak�]e�qo����V9ߥp�q �pd��o�ă��
���['z�F���7�QpkŤ}KG�3_!����;�UA���d��^����qm��Uf@�td�N��|L%̅ݷN��>��)ʖ�4_�]��O3��*8�O��F���UO�g�!���k���o�L޿ܸ���~�BC�����\ip��K�?��y*T[�	}���6�����l#��.��ț���cĈ#F�@G��cĈ�;�H�^��*Ŏ�K'�����Q����Āh����6���i�iv�o���R�]�u����,��G+�O$�����AJ8�ԗN�Mq*`���3t���C��k��W,:�����쉺A'��A$��^��+����h�Y]4�~�
">
kT�>��)&N�j�D��2�`�.
��Q���H
���zXst�n����b*�.��ESk3�SPwX����x@1�K��"h�OY(2�2I�a#���
t�� Du��&��ʁ�uG�������M�'UN0HD�*�n�����Y�\l��\BlN���1A:Gz�7��S���p���*���\�A�W_�J��Ν>Ɨ˫/.]��w����D�}������c���,#��l#쭨m<d�v�9|���&�=�f���"}U��׿_�݇�s��y��O���г,BÑ_�Ɏ��YK�U��MQ�[���s��s�w���
�j��8�O�OU� �_�D�V�W����	�-8j�X��
��/f��y[���7F�_���#Gqj�v�:#7�HM��_D*~�T}ζ��U�q�Pa���6�˜��H�Z�]��~KM �u�C'�6�����
o��34���Q�
x�
&/H��>~�$�{�H�=�ر��ũ�}����	w&'�v��(�q&�pa�`�J3F��1T��㻾ʭ~�4������|YB+��õ��T��vKh�X6SO�i`��"�N[[�V��Ҏ<3�g߫��5��C����OHD�5�:7ݺD�̥�\�D��"�FC��u�i�@�Gw�g
?�6%X��tBמ.�K���������ȫe{�h"qV�A��}��L
"�訜�"�ȍ���G����.޹*uO)�6,'2R998���T�D�z��}�@Lj#F�1"��:n@Lj�wu�.���Gf�@$��|��"�³����(�!$�K�@?��9�A*�.�A��I4q\���ƪ"$7�jw���S���s���IhX-u<�u�F���jp%>�O�����w��`�00tQY.�A��4Ė�R	ƵN������.��[�C�}$�P�X�
�(�r�\�kk���g�ܦ���"��o�/Ȩ!��f��6��@!�o$=��8��6TO��-�q�3�x�M�
�A��	�{�I8Yv�������¹�,�K&����Ǯݿ����
Ḣ�<	s�n@���7h.�+�?�뇫s�^k���y��k������]�r-�z��.ka�����e��Aυ��]��	�
^�8J��ѣ�`�曏_L�9�=�Ќ��+Ķ%�f�@��8h���;?���i�P�/9�I�����~����+w8&��ٓȹ+ww�.M/��٭��w��i�M���nܺ�{�
�W�Ƨ����/�ŵ�w�z�V����_������`Ϛ���+�nR�ᓵ��G�˾��/�h`��/9������� ��~�(�m�p���/��{�c�"lx���Gw�n�����&L$PT�%q3�w���>���;����G�]��5]rǿ@�H�sǃӎ@6�^%��V]��r�ǹ'#�01��#뭉�B'�P{�!W@|sU1���R��'v�;����j���Z}�f�42��Z�=7ܢ6�@�}-��II���<a��8w��*�a����jM�p;}�^�E�!h��(�"�-�����h�*=0��p�<��WX�Ȩ��-���@sA�6��n_JWfJ�H����H8��w��0D#F�1bĈ:�E#F��U0�2 Nl�y��$��,�
�Md}\P�*�mt�g�RC��%���D7>�
(11�R�4Rݘ/�
��_4��ӻș��P��m�1�%`>	&%�u�^w� �B�&�.�`Y���^wU)�E0���i�����%�^����	����T�w&��l��LM҈�u�:�2^�����U8@����`S�k���&6����h��n@�JJ���V��zG����Ճv~�?��&�R;����k�.O��B�[�_�Su�v�=��G��@Z�d`:���5�V���z�J���9�a8����e�'��_'z��
B�l#�^�&5�mj�}���}�h�\;�쫺t�sg4y�wO^��W��!����y��_�޲cV��N�D9j.��'�]�5wAϞ=:w����fp���͏�,�;��s�ҕ���g�ڬ%ي=XQV)$�ݻ7b�̺K�O��X�x���M�swk��mg��[���:s{?͓��
ˆ�=�C���i��?�$�+Y�.�f�!'$��r'熏`k��	���B��4��'�%���m$�+����_9������h)(��F9˚�[�{���Oz�\��2OU��Ev	v�k��@����Wɑ���\�zg}%��*�+QCY������G$o}8M��QR�{?<TF��pdݙB�c�7K�~n����0x��5Tү��4�Kej��Po�����.t�W�ɝ�a�1bĈ#���t�1~W�L?�O\X���"��/^��s���p\B�G��0������#��"���
�b�;��CG`@7�h��5O��*"3<q����%���h�>���*�izW�����׌��5��m���ǓJ���lܚc8�)�W�=
o�*��h��L�4��[z���cUN��y�m������ܧ0A:V���,���+��,D�4���+Uֈ�T�_�|K#�z����s������Ծ|!,B�@]�a����u�/<�t��ݻS7�gD���|�i��J�6�)OB�I�]�?�{Řqg�!iN0¦pk�����-�.�WoD��tm�]v���$gv;�3w�0
ڢ�JH��>��,Y���O:a�L�U�Jƚ]�A��%�O`ǽ{�B�k�2�����ƒXO��,k�%�>v�A9@#��[ۡ�V&}x���m4�6��@��N�9ȓ=��	���[*-�N�Ξ���s-�������Yf0�3�Y/�H)	Ŗ WC2��\%'�ܺ\�|���r+��>�n�߳�X��9�)&캈�ߞ��u��%�Aʩ.և�ebރS�T%o�*5����K�i��y���X�ʫV����oֈ[[r0L^�P��f���p��U�$m�x�l�2��&@�KB�ž8�Ҥ���W�Tp�P���B>�a�#_yg�y��Et�1bĈ�������_@�-�1b�>�4�zݙ]O~����gf��!�mpc���@#�[jJЊ�hp$��h���b��i�dzǯV!�<�_�)��"�+��\Bɗ��x=�&@����q��&T���	��@6���g�F�Pv�>�Ѱ2D��dh��a���=;�/��Ȩn >d���y�-1!&�[8�!��h5��L�w��wf ��'�(�E�����KB��%�W	��A�N=,ML�X���ƶ�~PPz�ƣ�-H�!ړ��胿���2���E�/>�5��<.�4�9o7�0�J�/�;���s'��F$�1'���^��&����Q������ޙlݦ(G������
!�8�6'5):p����/�x���L(�+��h�:�4��e;S�;zJQ@3� �n��p�nv҅�ǯ�>��N�(���`��AC���
6����>ghG��4�f��=��0/.�LE����gD�X0��
���?{p��j}B9�lN��"��%^��)c�����S�!q���6�]���Z�q��S÷�:���*�l>�~�(���o�}���d�_�]:Y�44(������K)�%xIY-��8Z����W4�Fu��^5�u2��Td𮯝���8�Bi9i��A�������a�SG*���w;�� !/`�	�Wj2䌃+����i:�5#F�1b�C言�[�1b�]���t�4�4����7u͝V�2W�	F���,Z?�R��6��k2M�--�u�ް�����25�n�B��6#�@m؏:Nڌ�#T:�p6��$�˯�N-)f�f���ֳF���1��yH�����w��J�;�:A���nMس�fY�&�[����c~�_�Y�!!?�$+@a�A�d���`^J�
�q$�&�i<j��g�1��
PFK�8`�U��JV��ݚ[��Y�>�0"�@�*�S#��W�K��߻��5<x��Y�
��%w�?C��t��gm�KR�
(DCI,���.wc�˽z���ܿ��A����T����[i�G�n���[�>c�Mp���հ,��P;�
�K��5s�\�˫�o��I��g��F�MqLzLC�.��-~�Lt�u���ߛv�F��Iؽ{�!Æ/X��Dþ�a�V䳱)=~����(�3~��o7l!�m�[߾��-�Z�j�СX3�V��?s��yĨ1
͏!��3�s����9Z�j}�J��y���^8pP�n�&L�rƬo����r �
;s\>sS,�>u�1�'��ֵ_i
�ܼbw�5ڰPx���['m�.M�?�8�j��n	���Oٿ�`�~����Z�3�Ev��
�rm���뇣�@���8н�4J6���y�\�L�L`��M�I�
�oH�v�%��+`�E�.7�b�ƘS/W�dMܻT:Q�w�0��Lo.3}Z�x��8ahJPF#���<��~q�q�ٲJ��d'�ț�s�.�V�7�3?��—��u}90�J���S;\e�T�Q�zs�ܿ	�?`$Ҝr�����X˟.(ۤ���8AG;�����h_��r�!�N��r"
�ktq���dw}�W�y$^8^MF͛�ʮFqW1��4m�F�D�:o�W�?L7�T��T�/bĈ#F�1�G��t�1�ȭ)!lyܚ~�<
��䵿��$���0K}i��bx4��	����|�)lk���1��MUE�/��L���n��N�,%�6�-
��f�o��K�V���>�r��&�;�@5��KC��&��u�&��首�

'|��fpÙ�M|��	D�U�6>ba��P�i��hSaV�C��-����ed:�ô���_ʮU[��ms�K��L`����%0,�?�,��|��*��Z��k*w�}b[��+-�N��=�f�*y�����W�?�h~x��W�Qe�C��ӫp�i||o�*�H̲�*���Fۡ�7蠺ݾ�tҔiSg�ڱ{?��e��{?��4y��i3i���oٹ��%|6���9{�
��-�J����Z?�˩x4O��C�-$�]}���z��#dˊ=s�y��,��j�ӿ�3�tNMw$(&U޺k�[O�>S+ޅ�V�?���}�1m��q&�j�
���B��O�����;���
�-^���;ܑ��b�dm����҂/�'�Ys��W5�N�ܔ��&�V�7����˩�5�}����`
�`�
��is���-������vޣ��L���Sr����Q�^�s5q�R��\#��
?m�3��M�"l?W�V����q��_�{-����?�V��c�8I����@��x�-W���QF�p�H{��Q�2�s���\:��zOXOU9�Ġg+o�g&Xɹ���3��"��؛�j�~iy�
K����O��?@{9Y�#5���8�~>!��[�0ؕ0�v����Z��%
DIA�%�֮���SH�e�dӤ_��!?�i(s�
}������.8���fM�dCq�n0;DCDߦ��E�#?_�1bĈ#�@�X�q�:F�1�yK�l�u%���;��&Ur@~�������怄��%ć
��[d�E/%n*o�m�$x[��[��\��7xGP.7�||�%�������B'3��m��	$�}����ܟ������p*i3ٲ�:�A�NpS����w���ְP�?�˪�u5���/n�d��p\����2�v��/t�\w���ாܒPiM�R�=|�E��jes��n>jh~�r	��w�v�6}�ܢ���;��0v��?��n���{��0��2��7i��@j��W�yߝ�NY4�u*���UG��y5Q����#F�1bĈ:�E#F�1bdĻh[��pp��m�YIKE��&R�_�)�~��ܺ��:�(�M;
ɥ��ٳG��}G�\�S��i���l	��#F�1bĈ#�h���#��#F�������>7Ϫ��K�QX�1�:F�1bĈ#F��a���s�(QE�e��w M#с`��1?N����᫬�<fmRi=\R���Bz�c*�q�0����h�h~Jh�����W���@�^7@o�{�h�l��Ϸ�XY~+�mu�^�3�h�h~�h��߀vm4Ћ\@�/��h�=�a�
��
ހ��	� @/����	� @3@��6���A
AA�zG ��*#�ޝ
 @��y�an@�
���-@���Np�
�~�v��h���0Z��L��r�C�6h/�M��@�����m�N"@�
��&@�4{wlQQ�/��I�08����/?q�zh�@��
�W��ym4�Np�-@@B����M�Z�6Z���n@�
��&@�����M��1@{m4�n@�-@���ݱ	D1D�����,�5�̰�e�<���
>B��	� @�m���~*ФP�F赽�����4I���
t%@�m4�n@�-@ @{m&@��^@�
�m�
�=��m4�e�U�0������4NQ!�C �]����th)|\R�]@�-@ @�f4�6@�Z��r�m�_����Я�l����\@��)��pm4�St�1�&@�-@�-@ @o�=�h��	�	�4�Gp�	��:����1l�Fk @�~�r�M����.^�ݿKa���C�K�6�oA�N���.8�TT
�"��(��mնI�(
.FP���Vk�S��Tc�d0�؆Ԩ�_�\�{�<��>Ot��"ߏ��|��X�RV�p�|?���ܭhր�(hi�>����v��?{<�*���\q<z������z<1���+����7,��5�)�@:Ї����_���e��JIɇ��o&,V��zn�)�~�ѩs��8hր�(h����tk�ӏ�I��2x�RT��N�˘��<��8��5�>}tr�b�4KpP4�[���Ɔ�w8��3b�A�4@}h~��"�p�h��f(����j!4@��E�4Y8qrh���[����"��B���5eM��_�eD��Y�/"��&��RW��&SP��m8�EMM
��%8(h�M`��j����5�����䐩���Z����%�دH[�}~~~ff&�}2�akkkn�;�]D��!%��v�rh� �EMM
�:�h
�%8(账q**U�:00������544�t:�=��Ծ�H���hh���������nM���nnN��i^���233+**���H�>

���fgg�=��266VZZZWW��>��)���������k
v�]	��qe��������4����a4�?>>������mkk�	0::������EMM
�:�hր��������Р�3;;;///'���ZI���sl{ec�1��|��s��PH�hkk��������{�3;�������|5qE����---^�W}�[�B{����*�f���������r�#�����⥥%5H0���Ծ:����Ve�;�ͦ#e���|M���������Dgր+++�@35�YVV�0Z}�w�������"����J���@}
h�hh-hػ���;��l�m��v[�m�{uWF���?[mL�Q�#�@��e�€+��V�XA���a��Q.��hTP"��r[a��WO�}�h�fwB���L�s���~�9$������5:-8�H�B%<��W_}5���^v�ew�qGee�y睇�B�2p��4�8�t�GGa�
�2j�V`�2��"�8j6ZS��z���=�\8���.�n/�~Q��dȕ0�o���2|����sSS�ީ�%[�� {F>G;��=$���S�}��b >C�fp�
s„	�p�=,Si����OX�SN9�z
0`Ȑ!r�h���o��2k֬q��SO�ڵ+d�;f�fi�
xS<X�3�8��K��:�,sۥK�͛7'�N��sqm�
m��?��h�pZ
�]���b[G�-@�R�T*�J�R��i��G�@������(�K_���g�9��۶m۽{���@�|�I鴌�ulܸ1`�[�͛�v�Z���VUU͚5K^�EG۶m[�l��+V��n@�СC���ϟ�u�Vn3g�F�U�kh�ҥ�#|�ٳgs1���
�cǎ�/O�U�V)�Y#K�,�2�X���,���z+�D�/����2d����g�ؠ�zlhh�pqXC���#��Bv��W^AlO?�t)�Ƶr��}��i���2ޡ��IX�z5�3�������I��a@�v�i���g�
�[��r$-���]��q��'��Ž2�>}�X�[o�Պ�Zp�;�B+c0�H�N]��?��?�8�z��;���z���Lq�մ���gV̙�n~���s�c��cg�F)�'�oP�-��&�N�R�T*�J�R	�ӂ#��G1�@aM��.��r_�5��hѢ�o�}ذa/���S/�;���C�M6���x�)٦M�K.�D
-����T�u���^�z�XA�UEd�v�ԉ�r߾}UQ��3ϔ�GW�"*B�ҍ�=bĈ�N:	T�С�z�q�!��t�8Bɨ�.s�[���.�
�b�xz��m�7l�лwo��B�EP^GN/��R
RU�y���<�/a85���
#E�۷o��x4�7n���6p�x�^{�?�#h#ґN�e��x�4(*`X���W�֝��6L�
�ZPKy��ߥu�ڰ�2�9�*U���Y�=���
 ӟ'��]���'	�ˎ�kn=k���<Ԫjl���4.�Ը�_��ٸ�?��P�Y�%DW��3�[O�vܔ�~�|�Ć��4sV���V�7��1hW@�R�T*�J�R��	��H}th�mڴ�gϞx1s��>��L���$��P��B9M�6�'+�V-X�	F���	1�N���*��x�\u�U���e��#G�K�A��H���l"d4Kν�{v����r����^E� !M��b,����F���ʳ<O�u�&�Ν;�B�ĭ��",{�ʏ���ׯw�ԟzǎ���_�����0z8[��$eQi��\�߿�iA��x��)�1֭[(��i�$���5��c��G��a*i�8�6��Я9aġd)��amB¢Dֻ!�/��k�^�/�����:њ�+��b����w�N�Z6�n��{F�]Y��
z�<��/��
x��|c��!C���P~���W�y�?~�o����u���Z���'���4���;̞�l˖��?|����o8�m�Ξ;�[�!�L�;o�5o��᭷:54~or��h�͜���Lix����=w�¿���b�T*�J�R�T*�:t	��Z�����"�5<�����ӄDqL~���hJ�F�@Ee���� ,:�/#��@��x�ifů�d�V��~���a_�,�0�P��$��ڄ�c�?!.�"\�p!�+?��SN]�RAp�Fw�k�˳�l�-������N�e�����H��aF`:5��ɹm�T	[c�zf��sm�[ՙufDHF��q�#h�̡��I+�Pf*m��˪���
�,T��Eb*b5��0���4+�ݯ�:�j����Ş={��'�je��w����������,f���Fy�.zn�u�C�3�nC����Ǜ��f͞��,����9s�E��9tHxv�ܱ��/?N���y��'}c⤢��]��a���O�&�9��?]�l�w�zҼ�	�S�T*�J�R�T��y$�>j4�g[�aO��c����+a,��H��ZpY�믿6�e\�
����)�5�\ښ=�Y�2<m�;S�؂��5�P�҄�v��(9��e��*��4������qX�ő�9ר+X���&�ʋʩ���j���U�S5R���j��M��Ph���(�M�Rm��~�i��Z�^�J�
�����V]��_4L��̬��-�!X,�l���|h��2����be���F����)�\�h.��.W����с�w{���y�m�m~�u��	{�ѥ]�u�O$8�K_9�sy�(���~cכi�o�}�����K��@�����M��,�Ѵ��<��#~��.�阪o���h~�s�X�շ�n7��;�E�~{�+4깵�7�غ���/3��>�.���@�R�T*�J�R����Χ��?;#t	�[��5�Y�d��4���� sg8�R�Q���@��K\��|I��Ƭ���O�~z8fXK��|$`�K�՚���wG�6u�TtUN.Wh�V-��r)�V��ޫ���O�
��K�V�]��҇�{���
Բ5p��hV�>��ÑV,�@3��8�H�n��Fl(	�l�_
��b��?���eC�/�~-����샀e�O�81Vk�[�0w4\�9�m��	a��ɤJ�b���:����?��{�9
*�Y�Y�ě^�)�>����*k�����#��_�Jn94����J���ɷ<�R`�<�~f�Q�h��5>��nƞ�}\�X�D��vnh,��|���z��N����q���ѥ�:�J�R�T*�J%���4f��y$�n��A1�n��9�f%i���h	���s�6?��c1,gV����`�J������9s��k֬�����c�����y� ǻC�+�+0n�8]���:,8�����U��,��Q/��}�aS��:�����6�P�(����N�4���"�<��z��f���(%<�F"_
���n�R��XѸ�p�.]jkk���w��ΥO�$�H'W؂VWWˆ6KE�q���t���^�g���l�r�K3�%��w�6�׿y�Е���.T
�G�Uz��O@��o_?�ꉋ_{M`<����j[Ϟ�@�1��Ϭvk�-�Yp�}����W�ƽ{�����2���>ir�T*�J�R�T*�:-8�H}�h�|g�j�z1e3�=�Θ�,0��"�-�	"K�vW�={��1��`z͂�E�Յ;g͚�@p�a����2�`
�jA/N-�رca�@�]��U@#��3e�0��&�C��˼���a��b�^v�w�6|1p�[���e@C�r�ER�m�C����9��8rd�����w.�YI1Lfܢ�R-�ʖLas"�ۊ���QPxj�~P��;Xp[;��@��ɔB�i�`l�F�MMMV\V�����3�\-@�;��Ν/�ƛ��K�z�-\�XZ��y
Vp�g>l۶c˖m��[����Ǜ�C�~�}q�׷�ع��1��q�-��9�zݞ=�tY�1Ur��64:0h�W?��-`�E
�,����N��)��ݙ��Kߪ�M�N�J�R�T*�J�@���҂#��-T�u���A�w0`���~ue���F�U��������T�+V@�R/��`.��ؕ��|�޽Ͷ)*�aE��j�f'>!�
@��+++%;���+��TZ-��L���j���K���p��0���� �_@��b���馛v��)���֭S`ժU�
bD�
��ax��630�Tε�M����yJ%A���D�c���ׂ^�(��f�%��o�f+����ݻ<�6��e����-@{I���'�G���XF����5϶�񏫪����M\��sbeC���Yg-_�����*�zd.��Z/	��@���Q��ꉻ��o�eK��	s�}��1gn��z-~���?�{�`�w75��w�K��?+���孆�x63�S�T*�J�R�T�?6���<@�\!�l"�_p
s�[�/�)�8�c�E�pd��2�
K�֭[�).4t�b��i�*���GK��zS�hR5mNX�-1J��bܪ��)�Z#�ԁ_O<�D<�#���L��k��mC���f3܈!Sx_0���Cd [`6!,В�
��th��;�i�]�v�%S��4�(����aݩ+x1D��&bn�Lpv����B�����Pw�y1,�:>/?�d�bY���K��ۧ�ݒ�Aj�"BS��)�I�[,��o��g�^����[p�G��оD;^8l�=#G�w�#G��Q�ֿ�!�G�o�F�v�1|��1c�lQ��G	�K2��f3����C%�<n<�ۆ=���^��-�?t���-
���)�׻	�+�oO�J����s덪��(/jEEj�(rG?����Q��^�<&b0@���2m鍖v��Ăx�^�T��5Xh�&�ri�
qev<L���@ld��4�{���ϙ���""""
h#8l
��E@C��S�K���>��e/�
b�(Ҷ����a�&��b���"g�v@�qC�.�'\0������V�t����Lc2g̰��B�2�<Px;�&�q�����|.R���)�p�p�	�y��I�N$dw��z8u�U�/�'#��.�tx��6�wk
L1�!�'ip֬���M^70�(ȸLnit�tx#��*88��Z��%��>��ώ�y/�.!|F�(9	a�I]3�s�aC�.����q�3�����͟5s֞o��Ȁfmk׮�듭2��:��u���?���Иe@��G/�C�}��ջ�`����X���)��+���K[���+����n����Q�wokWτW�7+�EDDDDD}���(�m
�Ndc�� �C?��d<<��t4��h�P��o�g�#YO+LW���O?�:��_��YK�t2�2j�/�!c�e����i�1;��z	���ӹ�A�1�Z�2��e�(�_�b%�?Ϟ�Ə��EA=!3��h�7.<~�i��G��.�W�YC���)�3���
�ܾ����h�r�sJJG���y���`�=�|�s��1������.ɟ4���_-"""""
h+�m
�$�ED}m�!l����3g�~*��?�ZNq�Pǒ%o���ҥ̉*�	���9�a����k�G�V@_�g'�֍()�(nK�ź�����=��'��R�7���<\��j����?P^�[^qc^�ݝ�����s?lV@�������j	h7!�)�ED}MmeU����E���|Ŋy�^�,�-%������ǽxj"8R:3-������V�R@��
�C�p�'S���X_��C�hG{{��ԙ3�n�24�C<��MMT@w��=���]
G���z�@��&z�ZDDDDD�V@��
h�:dh|��s^���ӦM�>}:��.^����adA���~��d#О�Y*���7S�n]�z�6)YO-�-y1j�wut��"�h�ݝ��&�o���++�����_��U�_�qj]��
ӏo�e+£}}s�|t���)�z������(��0�
h�ZD��.��,����#_n��-'O���`��Ko-���0	:l98���ּ�آ��^l��`Q���;

s+*'n��5�)+]��I�_QIv�ӓ(����(�3�_����i�+�EDDDDDm�M���A(�3#�yr����6��qJ]r|uMnYyNq���"����2DjL�o���G.���Vm�>����e|n���MY4�a\-"""""
h�M�����v�	��Pɸ�	�bg~�ʙ��44	fI�i�ʯ
hQ@_��fa
h�ZDж����,�Ϗ����6�ZD�
��h
hQ@��ЏYmS@���ν�6p�o �q-J�e����
K����M��Bӎ��@&�D��Xm�h.RsIҙV|i���Y�?�h��g�v�h@�6Z�ho@�-@�-@��f40�=9I'��г3�|Z�6�������Wo�fg�K����V�N�3Ih�=�a&@���j�u���Izj����F��x�q��m�vw{g!�p��Q�'@�}A���M�f*@���j���t{��0�m!�����������M���­�7W����
�m&@��h4��bǥ\[�}��{Es�_y�h�6��i�#/�>fi*?��	3�������f�V�U*�O��^_�ݽ����+h�+��}����ѩh7��h�<�w�%I2 �d8l�[�/���~����Q����
�/)�eY�'�N�2��,��ٻ{݄a0�����_A�Jե���1���R�����w�2yxd%�7@���z���&@��+@��m4�C>���	� @�Э�s�h����hZ�6��Oh�@��|�7�M���Zʭ�Y-4�=:��� @w��Zoh�x�_\���r��٥HQnr�`���9���v�,�8��ހ�M��O�J�~��g~��!�s��M��6��w��q��uѠ�7�h��M}�䲛r�ϯ�.�?��
�~�;���-�k�W�����M^������{�q�q��{�,ɒ�nI.r����}�
&���H�L9sι�oΌe��+�:w���~�C?�5c��ޑ{q�$�L2�$����g��Z&�d�I���|ciu���2��o�p9�d�I���	L����AA�
-�L2�$�L@��T@�$�L2��z����
�p9�*d�I&����^>:�k¾.�e�I&�d�I���Ch�d�I���x{�t�!I����M&��h����h���o@!�� 	�5��ޭ�o�4��{?K����!�L2I��h��<$��I&���_��x���
+�!������j�`�(��(����W���ٶ�vr״�J��g�YzO�Þ�B]ߊ�? ���%�P�~�24�����k��������:�')Kse�ex���p#G㗄�>pk�ǝH�Ks3���)(Z�U��P�h
R���`_����M�;3.���u��Ͷ=��z�w/�r�gh��S���@�l/�i��W�ת7zQ��_@�)B;�W�T�tD�j�xJMB�'�L2�$�W�@�Ch�d���ϛ[[����ߡ2��$a]X*ml_�;4D�K#S���n��~�rŏQ������F�f��u4ysƱ?j�7u�4v
�,�}q~`ja|fU�æ�!âW�,��KuSK�P�(�cg�UM[�t�;��;;;5m=-]����`���ZPH��Zamk�(����7u�6��
��* ���n�Y�فSe�h�yva�`�	�ežJ�Ԃ�V�x���m>�
_�;8��۞muu�l�pnr�����gF����h��Q�O�)Y�9p#�
�EP��Jq]+
!sO��\�yNi�~zrzfݹ�n4gsk��*�1f�h����z��OqiDo2Y�ĸD(���G
�����=:�L�8��I#����e��bUU�:����|Y�k�rvrC�!�R���Oή��5t�M̂��y������;n1�O���ץq���7�tx�2��o�<�R,�(�{p�ʮ�7���j�_s|��-�T4L�,��a5d{{�sh�����p{gG����43G�#|�4�[�z�_oB�Q~.��ׯ�V��*��ͱF�?c�mss������XPYS����2�������¥H��wH�?���J4�3L	Aѭe��2�7�d�I&	����Zh�d��c�م��!���
��8<��es���2�i���3�eV� �����;!͝�f�z1�kΦ��I�F�{��|�^RK��6��
~ON�8���n߽˰����<�
��3�ĝ!1!� i��+��>畷t��&F7’²�am@Ë�㒋���w>����<s%8�83�:��0َ�1]�K��&
g�"�s�@��68 1痻!��5l
�U�޳��-�Qc��/?��4z�>���ugek��ȴ_�#O���V-e��At�W�x58��.
UC\��u��	S�Y[��A��L�7���\X}�i��ag��o�%C+k�ȉȐj�ﭧ�c�Ct�����?^[�Hc�E��j�nG���A�/=��SM��#�E�`봒Z�g	�9�B���Z�i4�������^z����S��n���Է17 �O�Ȥ_\�Y{/�Gѡ�E�Sf�����
���4�K;��A�K�AI/h潘�Û�V!�l���>p'9{�u����7 ������A����ȟ��������eu:��wt�����]�v㒏���+��_���Nέ<漏��s���ն�)&�QEf5�sʰ�S�CQ�;Qiu�}($��)�슆����jB������Ł��TP��m��6���_	Idև��a7��^(����Òk[P~�J�4'V_z�R~n@��1����?���W��{���)B}XM)�f���h��i��5<NK��|ƨ��A�*�x�RC
ħ3�K�b2��g���z�M�.`Js��1B9[z�����A���$�L2I�����Z&�d���O�bRJk~�էi3�T�.�w��WN��rQ��ŕ{���x��,,Ax�G��a�y�aqR\Oq���N펵]%QI����eM��j�&��*(�ArDf)��6F�J����f�pv5�K���Uc�����c���jJ��O�>}��2�Y�?��ٳ'N��hl'���h_�k�n�6-���;�&�ȶ���`Ƈ4D\��x�ɞI)I4D��
��DyА��2��V+U�\zW+�U
��x��N�9_5K�9�*���$��v�jU���jn�gMޖ¡4S�%@���Pckk�3j�
��4�C�W�s�Fg��0g&.�Ϛ��`5��ޕ{Z��v��>�ki]�S����4<���fx2W��!�&CN�ַa��/b�G
&�,/�\I"0�g�0�W0��j�uVy�o�1�FN-&�HH���Y��_Ddv	��Z�M�pyx%<׳�B�n6��t�K
�W���w�{\�Y�B�
P0Z��_\�j�:�G�S	�l�+�����suumDșЌ��1}]{/(
q�����<����e���[{���g�~Q�s���r%$�i�4!����E=��$F�3R�]9Is�@7�-֊���
��9���f���GtfY�ϓ�ۊ��'��)��1W��1�B��N?��QZ��{4�6}�Ax��p_^���b�{zNL�e���N�n�����i�=v��wd敦d�'��U4�<j��<u��ŋ	�٩م)yə���96�8��ς5%�I�U�z#3:�ÒХ��.�y%q��bǠ�mvt�83�^��W!�d�K�ͪ�=�)(�e%2��	��;�K84&c�<�(‚j�z�fb,i�5���YLl!*���{Өl�VDL�L��5���������k�f�<,Z|�_mMYX.���_<C��$Et�L�~����:<
��Zm��0��9ڥ�pI���	9O��3͋�=y~�v�]cbZg����;B|~�Yy��Ev�?	޽g��SB�0%�˝C�aڕ7�Nh�d�Ih��<$��Z&���h���J/���!�}�������©x9��t&B��e^��2�2Y�UN��(fF���	8���l���!&�ikQ���$b�G���2&�2��W�4t��8V�09ͻ�ƕu�
�^b�l{q��<;��tR=O"���zS^uSEk;���-+�{G'�(�{x2��yh��y�E�!kZn��$�6v
 ��l��c'Ј�l-�kc�Ϙ�1������N"7�U�#{г�oJ��|�IHa#�y�H��i��=���/�����/�1!u,߾~�����W�h�X,o��<ϯh�^��`�.��X��_�B?�d��^��wAEK'�ALM��9���@�6R\YC;���h�L��d�� CN���Ɋn"޶����^��Gj�]ި���n�G/��L�����q�~�[���%Q��
y-��y'�N4p�`�+��΁�͝+v��6��)�Υ΄R.�TT����h�s�؞�	&?���f�{�=�i�(�x�3l���H����,A<��z�[{����u��R���>��Q
J1(��t��܅�����Xx�ji��l��A$L�`;L��g����L�dBs�������D@ȩ���TN�†nE�b�X����0�P�Ie.?{�0.�aH vqŊA��U���6�;�f��cE�!�e����Y�PZI�"7̋�	��f87k��9 ��>�,�h�P
�����Hj#�JIx ֭j 
D�� m�e�gAM���
�It�@��FJDn.,�P�Q�Ԓ��	��t�(�-��jm}ClM�@�����Cl���Nr3	_�J����5@� �Hl��F��܋N�P���}Q�8a4c�4G� � �B�cs��+�|��g�5X��ܾ�)*�76):HL�ն�b#��f]XV�R�#�+�H)�Ż��;�r�w����(�Gdv)��U��̙�3`�XYNyCK� FM��\�E�V�@��F�y������^�Z|�JE��(��*�(�O�Ij�&`�/�:���Q�����<y� ��so����G��M\�z����r�̂����>s�>>��S�=vh��:�����:�5m��y54���ih�����8|D�xُb~�ƙ�IO��{�8�tn��"+��d�v�s��B��<�["���4BB��t1���[Fe�` }?&�`�
o��|��ʏ_��d��yk���`�%�0,��7� /&HPl1%CY�C����Э�Ɓq�Ɖ��~@����y�bcx�Ĵ\+>am������tTu3�>�7F�j`to8�־|;}��OS���\ċ�bE��i��ݱ��q�x?�)�{2q��~{�O�p�6�����1r`��)V�p?��_��(��wa\\�$~1�G�b.���s�.,ֵ��� �I93��2��Sg�y��S"�y*ַ�v�To�0��t�O����$��I&�$����Zh�d��4� �������$:��ӹ�ȍ�-�Nt#<�I�0	F��?�V$�[�1�_@�;�6�ҋɁ�)��,p��x�<!��L0W+0�a<B��Xߧ�A	���EE�ϳ���)�ux�u��%V�l�>`ch�З�(�;�T��`m��3��P��� �
��xB�y��(����?dj$ "�X����Q#L���#�H�!�9�������4�"5��o�ϮQ�m�5�l}��'!��]����/��8~�
���4���[��+���cU�jw�H�78����lu���_�w�-�H:�a'
�P4ˢ�V����;Uo��G?e1��=�.���3�+��/��ݻ��S�!���#�܊F�\
q�����K�˝�+�K�(�@�ѧ��b��_q;"��q�ߏ�̮`Ux<��f��Jn��B�t��
�s�q\]��	(�ߍJ���>Ca�3#��Qi��
�)|e$��
ɓ�DpE�
N�)�u����!2Q�
��VdjL�K��-a��+�����)C�9�Z\�[�	-B!n��+&:Ŏ�*���Bv��8{�R���\��PDVǃo����R�s)��d��f OT��CT�� �{D�+��a8����8�������D�W#�J��<7�y5���Y��i��D̈́��,:#,���O��]A6a^���L"�脦A�D�	ʾ��9m�S)7#R�ka�����@+��LjD�A-$E���̲���Q,kB�[b��xB��B���N���C��Sc\^�����]�%�I#&��[@,�G2J۷PB4�-Ԓ�c�܌??C�؍!�E95��(�C�Mx%�:��@���yU�(��DJ\����!C��H�LP����z��;�qa�j�
��@��&<*9���/�M��7wa�TFD����N/��h5M�,�P,��*6� 6�s:�qyB=�}�8`h�����”��c?��e��-N�~�j�Q@�d孾~���lp�l�GA�p��i2����a��o��i	
�W"
!+T�(�B�a�(:|^�(�!(��5�p!("�u|�,,"@�\��"����לp/@C*"V- (D��PT�C��O-~TP��b*Q�L-Ln��8ď�wL�l�(���S�Nj��%
9P5��xE���eLx��p�b-sN��| �AIy�2���<�@s�IM2�I���*�7Ó�m�"2K�>�|��<��/�[)L���4?c�M!sLǎ�!.���
+C�/傃�uMK��q|>?�(��K�H)��o�y���������OW��2�����I'���W�y��G�	�,]�Ϗ�.�ك�9Ȅ�2g2�(L��y�d�oë
S�8�_�r�-��I5(�d��H-�L2I-#��!��2��h���0,d����G� H�AI��aL���N>��y�^	�w���8����+9��1U��C\0�?N�s�ȕw-_03�%~Hʏ"��0����	��*�ב!�u�v>�������0K�u}#�wo��&c4�
3xc��n�g����501�`@	��0�%�q`HZ!w��	�q�G(��޸D�pG�6�T"T��C��S�DEd�2j%|�@�vm��KUL͋U����<	�1^�|��=���>�5�nݾ�@k�;��:i�.�d�_�2��ר0=�q� �nTĐ6N���c�i�{4#y$�U2j0s@(�iEd��Aq�u�=DT1��8� ��V63:u����&�B��H�s���G�����ģ(B��&�8:��n�	J+��0�Dr�W.1&�U*W��d�Q0����`p�J�”�y�&8VE[���(4���ɓ�I�d�e��i�*R1�N�0���z6�	�c'߶�Nj[!t�X�cCF�q�m@�A�Q"
F='��h5�([ICCȢ�tq��(�&�l輺��B� Ď&����w!gT��.�ꁐ`��$����v�7�
0�������)z��)�7w�R�lt@�!��
0E�r�S�-�\��}��8��`�pI����3��CP0SNE��T�UA�c!IQt��a�A�X@�xT���U��T�sc����u#�`��n�4G0k�9#y4&Ews��H���oAm�(�9<�#�������qY�Y���N�E0�@�i���(�l�|V���ؠ��%�"�#��U�2�8��H7Ee������b&	5P T6�I�J�ch{d�@#U������<<ȸ���kHEE(<�49sC�N�
�L��^��U��G-|���5����5�™ʖN�$�$�I/����F�S�l����Ah�⊝�W�s�M��e��'"��y��7r�+ڇ\=�q�ܓ�_�WZ�UPV���Y�a�!�!zo����S�#[n@>�«!I��ӹ�E�p���Qxb��2�"�E���!5:Xl��p;�����
�'�&�^��l��$���Sf4Z�x�xC�jPC�_�Sl���
�Bu��be���K� U̦�v���e۪�W���*+�P	���1���;yq�<6��6�S4�rqD�*q�SA�[р���G|�M/0Y�4	��)��態E�`
�&6��5
(�Ͷ$䉔���v��°]�HR�?c��&N�.c�`�T�g�K.�;d�X���9��Ɖ1��c��x4a�b�ϐ��Y��̭�#
C�46EY�����'�D����~��&���H`������ߍl��&	�ҹ��v!
^�(OCgJ��Qy~J-�L2I-�<$����ٻ�.��3����?�-t�^I:!CGLTpX��I�( �(�2
%��  ��ȨF@0*��PE�J���U� +K��.�u�}���g�统���J��hs1�0���O��É��cd,ZV� ےىK�׳���S���_�G�bρ7Y�p3���D��_,C[b�&�����|<zզ��'p�:�0Uh���?ܻ^n�+.ll?�V�Z5y7���J.n@�����0}kE���"���PT6��;�Ʒh���|WU\�����C�䔻���ve���R�"r��t���>x��=S���׿������n�安����
h/\����_��vEG��w����e����8���;%d�O������j�I���wv#�S�N@�<:�U��$̅?������O`�$���XxÞg:�������+��a`�~Ѷv^k�8)Kh(��	�-uxܱO��FkLqNe���n��3wY���$��Ξ��O���v�@�ct�w�ğZ�A����˶t��)�Vb�C`�ә�j�:�%��\k'�[�U=^�4�z�`�2h���m�n!K\ ��R��j"�פ�<g��9s"�7�Yn	����J\������h��J��zJ$���n������"_-��zc�J�q�PM5�����X!g:B�˹f%W���oS>N�i�TC�:��4RCI���K��±�V�
��F_n�6�<Z�O�JO+%����+�p��d�I�U�O��G���FV�Lz�>��`\?44%�qԝ8YP����4�gP����j:U���5E4-Z��>��w:��qN����b!)!.lM��F���0A�Q��Z����D�iF��z��12f��0N�h�Xkę�&���V�#K��V��M8[is�`��gt�JVJ�t}w����s{���O~,��;_�w�5�ƛn�R�{^=z4�.yE�%Fj�-�7��HN��?�w���3�@��������^'�'̆��F�%
�J1@��沅k7����@[��Y��(��N������9h�5�X���H'��@
S��ݑ崘G�i�}��:J��P�;3��e��s�D�k�WS�N�TI(9�yx�V_��O&�+Ў���D�5!N}t��.�LRt��#S���wS��&�By�F�tl!Y��5 	ӏ~���F�\-,Y�E����?{�S?ZN�d�]��-�QS�50бH����W���*B媻���k��)F��h������S��>4.���2t�d�_��g���\�'�播���.�}Z� �hT%GI%�Tt��St�%����NC8<g/'3��>S�m �&�'�L]���n�C��-X��j�)�k�q\�|*��9��˚%80Vq�%��"�AX������e�gf.HQV5�8��]r1N�H,:Β�����p�ڋJ���Y�H+sK>M���k���ǭfE͸/	[��G��)���GF�=jԨW��a��3f�=ڻ�}�ͷL�9w�7�t��?���	���
���� A���ca�
1�1�S	�$6�ޅ&�aZ���m�A!�����k -�M�+��5 ����ҕ<�^�V@���h�Đ�d�S-^|���POQc<ca���@I�I��������c�'����?-X��UW���A�h�8Pf�'_�ĭ��0���v��O ���U��h4��8�i�!xt��e����l
�!0׫u�K��+��P�cι	���5����_��]��=�U��v��d��_h�p�zb�˪g�ӊ����� �-d��4�2���j�'�g�c@C�-}�Ѐ�r��M��l[q�ŝ0��U-3Ƭ��м�����k[O���zDHe��D�	]
��k����5y��b@w���9f:�)m�l�4��O��LZ�Q�	SJ�C�On�
?A�d��fU8�U��R��Q��6)-�a�+�xœ����-Z�X�2����F����է�R}
�3@�f�`������t��g����҅�NQ�AĆZ?ki�Bw�GM��ߺ��^���54�R�2#W햮�j�8Z%��Q�D*8x%Z�=u��B��{f�L������N����Z�ym�_x@<�Z�Y�
��8|ʛc�w�+g�뮻n��)�y�X�S^B�v&�+�&rԝ��s_�DžƎ�tA�EP����Цx�I��Y�)/��k@46M�5�^N u9�(mkR��D��
�m�B��-���)��):����D�E���焟�6�)"Ƌ���)H���5[3��|���hZ}��Պ�
<�G��N�(�S.�0
q�����_�,��Iւ�����Kg[~5vtQ��RS�hiM�S�⢑|�%2�L���f�՜BZ��~��F�a����`���GMO|�
+$]3'l��"T��enj�BM����21��P���O����^�	�|'	�R�/��|CҞ9�pp��n��%]tI%�Tt��St�%��Ќ�,a|U��6�3p(�C�a�
�w=��Uf*_�����b�bX�0�#�.�'�w��a	�"���Z��	�	�Y_�h�
cB.XV<�؄6`[ΉЏ(�y�S,OU���"�U_!e����fj8;
������f�d&7w9��pJ�w5{���
��:|}���Tŀ�ۨ^?�7��ŀ��<�./X�|��~�on��#Ь�x��8v�*!O�0wv&�\�[�����Z��ž�P�csv�HM��VoV@g?M�Y�Vn�s�R�d�YG��鯧/�01�-)�HK>�����L_D��G[��f<;B�Ȩ��q�@�S��x4�h��Z������:1�]:���t��#g)%0HL
-/�6!��x�+t�k�}:4�K����
 
:�YXk�@�=�	�e���v��mP`#݈0f�w��thnhOQk���U��3n�"Y��r�!>`%p�R!��z��lk�_�����w'l) �0��X�_���#>B�hU��H: W��l4��

���NIx�!���Nq��Ѯ�R��
<;Y'w!��f<����[�I!��ŵ�s_u�"i(�wx�L�Rz�_#x1���:2iP�7��syq��9e�ZulD�lLyv�>J�L�
��ĩO��,@��7f��0��^M-54���j�[U@�	��Cqܖ��Y�0���e�����t���j��ED��{��P�Ji!j�Cm�P�lj	��]��h�},��
��w�Ht�ҕb@?�e�
���߂˓�����-Uh1:x=[h�>85���q��ZcNu���$����H���Y����6�iI �H��.��whK�ڄ�ꋘ�'�^���""������K�����n_�	��4F��3�N|H<�y��o��z%Qf`���G�S���"�N���LĆ̂��X��~?���0-��Y>�VW
���_� ��B�Z�N5U������"~�l�˰�Tu��Q�W�M�	^�q��==+���G!�� n��=��gES��\�
�O';z-c���7)P &/KA�ٸ�ж%�e�F3�~3h��1J>�������T*r��i�le3�L���sȩ�{^1�OF_�\�AS�:�m
��P��,���
�.�|
�.������S�5��2#S�@Ӡ?l	����ҚQ��G�+��Dm�,�:�c#����$ #�����XM���Ј�R�]��i]%ߕy��m�7�v0�n(�ͼ�Wƒ�>!8��M
&���gv2���p�&�~tݦ��ј���+PKO���s��<���F=<��X��hŢek~��_,�]���c���^�篾���~�O~��q��9��tH�2Jy�j�t4���㶼��}�`�}!b0"�����*�]�!S8��*�Mp�B~	%�/n�o�8}���S�k��G��ɾ>��9�ˇy�LuwOX����y��*�Ƨ.]�)F�1���Ҕ���o��Wa�2���x��� ���x����:Bpxp��g����$VQ�uɆ��tݛ��;��&��, ��
��&H�����$�fp�ϛ�G�S'u�o؂ ՠ~��̓N�?��/!��Y�Z,�G�yE���ݒ���P4j��5�I��u+o��F�
�h�f}�i
�@f��@��'>��K��Q�*��*M�-+���;6�{N���y�X�'f�[,TxV���F���R��M[�D�A�1,Z�^M�!��]���F*'��t�ʉ�s�>�a7��ۂ\����Є�j���|X��&<�\��Wjzx(M��T����ڱ����MrHnT+�%s��8"�h}��s�ԏ��`q��]��@+	\)��]���n�ֱ {L+gF��EX[�S|�_��sB�R�VU�V��9��SR)�;��l�;���g�ߛ��w��{g?߸�ş���-��/󀞷�1�����'�+pG���tІ'��,��T<`��!l.�R�ʄ�}(�.ڕ�m��Aj�>�,��^~��!���W[4\6��-4�9�8
�{��k�|�<���S��O3`ŧ�Y�R>$0�)���$�����n�[�vlVPq�����7(Z;ψ������P͛W��-��e��V��d8R��Cy�a�U��n�<lG�Q���K�=\gvlƁ�y�'�G��
>�� @��H�n��2t�p�/�[���{u�jh�\c�!��U�h�%{�J�7�dH	SH[:,4�!�VPԙs��O���I0��ٳ;_ƾy�{���J*��|���Vt�]RI%}R6�2?ľ�1o���	J�d9�BxP,��k�N��K���	2�\sߣ�ڔ��@����ez�qv�����9;�w-�I"��Le����u
1�ʣ:늕;�c�yo��F��ǟ�=����M�5������Wmij<E�����;8L��a_�X!!<USo��[�z�܉�����1-��V�
�s
p�̈́Z8Q"r�-�awmS6W�;'܍\�_�|�ʵ�^;wvp�C��pß�N;|���g//^����;{$ڎ~�lfF ��LՀ<O�N�V_n*�D�w9Q�Y��М��#pMV^�ȒEC�� `v�.f����bl4����%ǒ�F�H]�Z�;Z�,�ѧL_h���S}�SdV��$�rg.�`_p
����=�\���]g�����Sc�r��|#�)�w�Z�[�W�,��1�����3�un4�v
E%��LUPn,po�#H�^��q3���5�f!6�o��{x��.��+0�(
v��Y��=�8�)%�.f�n"L*≭�:|j
)�˴D{#(���$@`�`+�b��-��	� �I�K�y��S�ڇ����F��iE�*�����l*��m,��oMH�AKV0���Ad<�
2Y�����e��s{!l�n݂�t��`
E���MZȌ��o��y�4ឫ(+Gt�T#J��"��S_x)ʇw�ۭW)<u6��m���u���:�nX�W@*�[bC,I%��P�,�9��!\u4@��J/Ю{-�:�zb���ܰ���5��4��޵�!܍FSY0���8Î�2(E�e�D�!��UP���J����M�	V�L$o����o�.#��"a���7���
iWS*��3�H��)4�-#ʦ��>C��z��]T�Nyh�:s����Fu+���Z�ﺣ�}����� 
�j�'ja$��85��"��������@������@;��2�x�I�b��eTˬ�8%���}�TP�$N��]�7�{�
cD�7=�Ox�9=KZZ̍k���	�_?���5�+�{���	(�9V�5�@�[���1�6�=�o��W�:�U�ٚ
�_o�aD�"���k*�̨AH �e�ṽH�y�1OIJ�J+���l6�y[�$kf$ӳ�P��s� ��6�Z�2�8��$[˽��Z	�Kl
}�Ԅُyb�Jdyu¬��w
RT��^@O��ܨ�[�1���]@����m
t�1-,�FX�~�S;��FR_
��[�Ѥb�_ȼ�O��;���p؆��Ӯ��b3Go[^��@f﫠T�&^CKʡْ~c�>���>ʤfMHI��0WӨ@�A��=%a���sZD���Pm��(mJ&A�M��{kM��t yЌF�I�ܗ����k��,�h��3�d"�h��Ο����<Lx��*~��(dfg��ۻܴkO��[RI%�T��]>@�TRI߫S�è`I�#��UK�aέ�
�D[^Qqud��	M�V�,XY쥚p�s�&nvH����zV+���Gw��.vҼeC5fdrD
Lʌ:�6P�J���
�U�C�ʖ]{;�p�{D+\�:`;P�̀�����j�_ơ����"6r-�G��s�_�v��{�MM���Q�h���B�P��[4RVNu�>��K�7a�c�@������_;̷�]���8/�wr����h�c�/{��\6��%.��e��W���Nw�^Bi��U��eOo�/��� 3�-<��&�v�8|�?����
���ͷ"	O�8�C93�r��g��E�r�de���#{��ֲp�J�T,Y}��Q�HLL<�TX���3����<U����]IH3�r���¯~�����h����@�fq�Mk�!TQԞ��e�\�L����"
�����O�a�\��+Y��J*��ܸ�P��w�?u����8�I�?�P�Ŋ���zSn!���,m��
�{x����Yΰ&��	�,,1�ѸF:�#"�~�(�l�!��;�!c���)�1u!(�O<j>�J�Y0��������Dx��;J�Y��a��U	�C�9�^�,�U6��Q�����@ܧ�4�ݕTS/����ø�㪌�hUZ��4�1�9k�C�e�}~�`@��n�yQ1?uw�%���X�x�S(E����HWM-�9��N���Vz��S�ա:�{Ҫꈻ�(Os)��X:NB.�K&�3���R�ڟ�7���}F8.�]U5+jQ�xU{��ҫ���r��{v�^�s�H{��:�;��r��H�[%�m�$>
�k�B��<6�w�2��b��~*�X����r2��>��)Jس�mE�9_���U�4ᅺ2�H�Z�L1��(O�|Ϙ�7�0f��n��ɭ��s�a�[o�C��
��]n���1{�%�wO~-������M�E-:ÉP׆\HrH�%+=���85
iM��D�ŵ0�4�C�YS���g4�^����;��~	�|�#�rf��&Y���ؔy�����a�˹UBA'+����$�X�w��QVV2p��z�i�xɌ�CV�-�;�������W2���
���][�VA�#�
f�
?�
b*��ۻ&j
�hԻf.�Fu�*}��F;	�s_���B��j�q����~�%�Uÿ�L'؟ad�&2��S����1�g��UV���W��P
���m-�
���#W��/
O�&/�h��vО~M�>"���s�P�f�6`M7a��#��q����H�F��$}����PN*W�<E-dj�SE�<7$�l�%�S���4J)Q�-Cb�/Y�󫠤�J*��K��)��J��X����S��`v�)c��A���لڭ@~����~��3���B::���B���]f�f9���f�ݩ�c2DI�H����)����.��Z�Y��ܣT�i�ß^��)@}6���3b�3�j~�x]l����t>Hʌ;o�*HaT�b�XߧG���i��/����b0'�o
���\�4�0�����9��u��=��C�����m����#�
������ln�q7NJ��V͞�/�o�&mf�"��`jOW��:����ě�M�=�[��h��S��bI�П0��z%q0Tч��T(!��h�kFQCB	p+7�ɪ�ɠ�ᆹ{[���UݏΩ~XaNɼ�=;�2'�T��/~8N-7,�/6p�Z7�is���&�?+�(�#s%���8���SI���� ���+����qx�������4�K���a��;��8�|�C���e�]w_��M�����Ԕ4���^{�xnt`��*�>t}� %Q�rīZ��]�HL�5E�S��0<���T��_�C�fИ5<��%;e/A~[��&9g�H�4j�8=���yo�t�U%]�.)m�$����	�t�2?hj{��}o�����5�R�Ƞ&���[�8�.`�?���4��s ��n��(<R�q��֧Z3�ܚ�\�YM�i�ŕ�kLg�Jof�v��G�3b��]T��	!�:K�Y~� �ѡG�Z�M���sl�	>��׃����� %��D3�O�Z"��Q۹9��NM��_5יp��î7��q"�7��b�:�'�j�g�<�u��/��PY6�K�AiU-��6g|�����M��E3�m�tFvܟԠ_��J�C)���d�M�wM�"i��㩝?���TRI%]h+�|
�.���~p�zH;<��|FvK��oPȑ�
,�ښB��r*��(֦�<N�qF���|P�#g>E4|����{�v��]��
m�]`B-���ۖ��H�͡����j=i�SW�MW$68� L@#D6�8��M���ɑ�p���t�G���~q͐ǥ�Z�-#�~�|�Wg��2C�u@�:�ɋ���!��j	��d8BY�Zύ�6��b9�*�t{�n^'x5>��U�{��z�K]`ABr�M�I�i�JWE�G�-'���,����g��
�g�p���{�-vÈN&�͊��l���g�B�f.�JE����U�O�+�{	�QRI%]t�]tI%���v��l�?�w�����}j]L���YR\�0���V�"5�w�	���m�)�U�N�CNA�|�E����cƢu�vrI���ےJ*����|ʧ�J*�����.�sWa����b��TRI%}{�ę�@�)g?�d��lU8cI��]T	�(ZI%�Tty	a��O�%�TRI%
�DJ<zj���Ut~����U�TRI%�������N�r�u��/��+:���J�����+�W��3�#ڎӱ�t�V��7PA� ��h�ⅫD�2N�K����V�R�pI�5�$�svٕ�ɖ�"k��g�q���gwO6���,!�SpP@3ЄBR�!!��1
���Ĝ"9:�B�}����Q�č7}�
�P��B�&���O?��f(�	!��MSAT r��-m�1��Q�z�t|�c��R���tE|,!���4G@3ЄB,A�(��U
G��Xt'k�ڼ�*R��mB�|z'�(��!�B84G@3ЄB6��>!�d�
<�RƒME�!!-rШ�H�߂�a��Q?�ƹ!�B(�94CMM!$#@ƌ��a�:�tH�VV��4ܱe
�3<#��B!��Sp0�ЄB�:�9*Ԙ���<�^x^�U[u/�k��ӫL��%�B����f(�)�	!��W@����L��1�Ej�j{��'P�چa"�M!�B�9�
h
hBHF����������u]ϸ�C���L8!h��]���
]_�r#~0���
hm�sR@B!�uӏ�^��3��f(�	!����
1�C���E�����������֘�5��D���$�[��Am-�������]��#3��y�pV�/��>?^�=2#d_Je���˧b�xT����cifxZ$�b���'J%�g,h[���+d��8?�Y�D@�CF]1�����y&�t$qY�|Y���&�B��^��#�
hB���EJi�[z�zYݍ�
7+�n�7��ĥ���|��<(��U�21�7U7���t��{[Ms�/R��e����EpU�mA�8��+�H���[eހ�<;�c�׵vtI)��k�B��79���vC�Q��ɋ��Ɲ%U�?����^�������	�kI�B�jj���%)�U.�v��+�����#�J�}n��'��>(9}6'�f��[Vq��߅�hd��_S��m��]����E�z����Ϸ;�/׷<}=�k�
-���ǁx���V��s�JNeee��3�@�����дX��F��~�b�����F�ڴώ�DžG��v�UV_�spj4h�r���w:{<�ys˶�{-v�s"�NM!��/��@@��a����&�l q���K�\/�m+�x�v��Ÿ���8^�������#��6�(��L�w�����}��é?V�#j��M��cub�-�U���0m����\��!7��}/^_hnw�Oa35�/��K��0pNJ|g`erWl,VЖ���k�EMS����S�wt�~����21�2�b��/�cl1X<���O��n����q�pɤ��
�=b�ľp +�IG�!�U{�ݞ�8쨢Ѿ������y�h��W#3���ɲ
�d��q��s��}ǎ��$z4d�^k�z�X擧˳�s*�.a�g�m۶���D陣'J��y���م�ǿٺ�Pa�ɲr۞}p���c�sw�}��Mmw&#���w�]m%[�_�e>�����	�	`���s��䜣�"J���m�m�Au�ŕ1��{{��N�u�u8�j׮:������mck��;����/�y�e�q�.���;�k�{s�4��ը�]H(��VN�
ax��b��Z����(x=<y�, $�Ν;O���˻��i���S���i����O^�|�!�2dȐ!C��rByH-�2��0��l����<
L�l��ak��)��Hn���������^�x`��7����~k�^_ch�[i�q��������8������k��w�L�t^��h������O(�����
��?������$�o��J
Wg�7��
x;����/q�ԒHH\)Ȱ���\�/V�:�}�zvaA��;��F&g@�o;��Юm�����Ld}�e���7��[;����{��9w��;Jfh:�f�W)�L�i��g`��旱�`.OÒs��I�!_Y���ޥ%?푊����?��B&H��Ssȟ������gh�^px�zq�#ؗ�j�_�2�-��rT�u����Ga����N��oh������+��9���H�Y��A�J=�n�*,�]?<Z�;�X�@��x�K9y�¹��$�i?��;qZ~�:�#��W�\FI=�fd��H.&H�B���ق��^�����ND15esQ,��*1=��ݻm}ck���㡍"'�Q��I�2W�\��DIbjԼH{ӷ����\�G�LK���f��ASJpR�ɗR9��"';�����޻g֭�s7ǏmB���!/Q���V�T3��<�"��<#^����0C���=B�lee�����ZA ��՘Ĵ�#�?�|��-�2dȐ!C���--8�!�2��Bl3Z��7�Ɛ��g��;W��IZi=�U�>I��~)��q����U'׀���m�#��ϣ�}��SJ�f�L��
�֫�\�&�U���4����G}�`ba5�k︜��Zh���'�)��S=c��r�a�C�i���t1#��!��|�-J�u�1F"e�1���q�tĕ���d�5k�|����*!e��.��1u�0���[^�ٜ3�@c��ƨ$��p̯ܪ��CE�?�s�!��m)��V�``\C���6X9m(>8�xvy�[�=C�i�/�3���
�f�V��:2����θ��V�������*�Y1t�d�R�g�#�O)H,����?���`fq%$���]��_&�[x*S���@���ŕ�(�=_�A���p)zM�����a�o|�B�C���ti�QF�&���N}���
h���K/mǠj�pĕ���z����UYm+�Y�>������a�A_X��襁����vpt�wp����
0ݪ	�|����?42���VRzNrFޜ���o�/�I��m��MJ��s�_ ]����=�AXPV�Zy������5#����7u忭fy@���P`r&g�AT�I*��`�;����:�Оe�k�a.Ƨd�ή�&�y��ML���	Ь^�a�^�}�}��
�(2��7��d��CP-�Ev
�n.�mC�z㟘����X���{h��T�}:W6�z���i�ň��J���\ň�w=�7��{��+�w��Px���A�,��Ս�ܥ���r�k_���)��ׯ_�s��A5L��K	�eȐ!C�2$���hi�!	�eȐ��g��À���3��$���a`�{d:�a��(��Do��p��|����$�W��b����V���_�Y�Xd��;%�T�4v��_ԕ!P��~��Z��qdn���8�/�`��FͷM
%b�.嘝w$�0ܒ�N'�X.	óJ&��!���Uϸ,�D�2W����*�Hh��A��q�K
\h���ž|�qpT=�����5�Ҧ.��$�
�]�S��a��Z�|cV�����6^�iE�8�
�O.�z��(9A���Էu<�������d��K.���L/.?
M.�k�7Xj�z�����E0=t��U�'CDN���{���T$툲3+@� ?�`��~��q@HoZ�p~�S`[[�'��М
�kpD4L��1��twvyB{�ijV�mk����B�>r����̺��n/�؞�T�o�'R\07W�MЖ�҇�.7�_�R9�]�Y��N�s�+��sm[/���˧������n�8Pc?
���q�Z�$��m��N7v
���Ƽ���ܱ�.*M�,]XT�͛7�
������NN�Y#х�\�v��~�!Hz9?vrr"-X���ιiͽ�푋��.{��M1:F%�n�D�ДGKkkk��/��>,:�Y���ܾ�?	�e"h�/�?WVۂ���[i}�փG�8h����ր�O�h̟{��s�v��m@��C�{��F�@w)�y+�>͊!G�X>ߪi�Ş�7oMGﰳ4�)�����*A�y��{�t�x���0oA����]��%��!C�2dȐZZp�Ch	�eȐ��P����s�.<2�;��[�AiE��;`b:����\W��a�����h�������3��݉��'!�Q�Hz��QN�m���L�G��jf9B���Q���1�Ȣ���D�1�M�9�h�*ɩ�[k�۞�YaY�b^f&�
��#� �)%�LvaE���njP_�P�-|-@��Ք7�9�%�پ��/��h����@�$Y��\�ُ�d�Qd3e�2Op3m�����g�ћ��I1�-p?���-���5,%��1��+���<����',.D�C�)��|�d��;oF"q�1�U�N��4��x����~���}$��^�x$��@������Ñ_P(�	��}�6�U����($"�+���Qca��]~i�����K���G�90ZW��H�~��R)��閞aP/��c`��t���5��V�)R��q�����Z������ �©�k��o�׵���=�|tb*��;��,H������K@j�:�[Ƞz	b�f��v<4bS)`xj�[Ȋ����U�YE_|��]C�666��S+��wG�E�pt��x��E(6�Ʋ����p�b�q)��ЌV��mkj+�m���[R�ČX��(Õ׵���s^\ٰ���̅G�ׯ�X@v��|�"�p�Yw��yׯ]�Vj�����og��%G����y�/�aK�rhb��@��q�x�
q��t�|��RX^���
���uV/	�eȐ!C�2$��Z@K-C�����8c׀��o������0h�°`����J�)&�,�&��0�Pf"3�4nˀQ��Ĥ�+��
��
݃4�=��>��	MI�o�[���	{���%�:���QL�[�n@�I��`��Vs�ض�ӋZ4�)�_I$
��1��ͬМ�L.����ܫt�3ٓ�w���`�x�[d�oV�<8��6�'1�
EG���ˊ�Z
�f�_Y[����L5�th=��˲n�ub�8�rEK��<���ohvA�X�����@����ٵ���^g8b�υ2�x������<s���[!��%)��E��i��3���B́W28��w����(6������\�.���F�:����]�nq��Z�ǧ‹������M+7PcJ:ο���_���mS���Ȋ]�<X�4l��6�L
�s�@��JLBp�@�M�̚�-i6��ƍ� l&�g1!��T4�2�����9h8�!�DC��3��"!Gx�w����U1
��xT��M04"�Ys*�WUS˕WR��;.4�j��6)�	)5-=�ʩ�[�[��]p<�k^*�3k��=`�L�?
�{�8��tLp
Oɬh�����G�C�����0}3�FҎv���uyd\r{���s�p�x��[h2dȐ!C�	���<$��Z�:��f�
��(�3N�q='4 ؤ2�*k�BŌ��/4��O&�}+����/��3��q=�0��8��Q��T-k�Fg]��/4�b�/,����'�l�ǰ*�;�*h,��1y�ȢU�J+�P@s�J�s���J��$Oj����Q�C��
��������
��>���+���2X���M\A5}'�0 ���
eM]h���~)�$Z��@-��	}�?c3-*��x�B_z��E���\XߎY���Q٦ �
�9A�\�̤��cF���7�V1:�EP<�j@ �#f/8x4p�e�'`��
=@s��SWD�Pί�p�	M�)�2�(L��P�ڋD���4)ر�Ac�D�{Xg���~ͤ�{���&��<����
خ��*�7��?��>��5�V�&n�ef�;D�4�֙tŚH���g��+�؄���h���.4�] >L]X6�����s?��}32s07�1�@������N�b�xM�)�5��{W\g�Y
�
,��\[݌i훻�Y���Vʠi�իW �����U�T�"/�n�au�5��¹_�*�@����Մ�*>z��[���*�)��P�7���-80xa�A����|!�Q�׮\��G�mM~��Q�h2dȐ!C�	��Z@K-C��?\
������j�Q@���ml�g�v�0���[s����{o���t$�ۻ�!�����C�1�@
-�F�U࿬Vq�]Մ�Ȥ���V4��~�
�˳��nckqu�Hr��$X0�-���-~A`�?���W��b$"���:"�S���ȨY���
���=��IF<tA�����I�c��R��Q"�٥�=����b꺮~��9	���P�1�sP���&��g@���_�r.���_��8���T�@��O�'����`E~�>��@#/E��d�:�&6ޣ�m`?T��3��nO.�l�z�(����	!y���KUc�����R�6�����
wtrz��64��T�ˡ3e俅�"��ۯ�
�3P�F-����B"bkZg�>�AtbZ.Z�d�x������$d|^O��΁{&
��4��d��Y(�R�v�R����}c\�@S�/�1�jZ�yzN0����W��@3���>�)4lu0���zG�ϑ[\�iI^iuuszm����0�7��>���fֶb+j��E�u,���Ĕ)�z��+㔍�����xdFG���7Su�iR^�#��y/����T���K.,*�sVR�����o@H��k�:�(�)�ڵ��p����m{w�2dȐ!C�	�%����@ː!�O�o�;z*�״�,i��i�>Iyl��y�'HM<��G4sK�-=pd����H��Um
��"��n��Iy��~#(�oǎ#���L,��H���à��,1�`[?~R��]M�p��)����G3�nf �4d܍��Р*~I�=�%8	�-�-�:A�L��X[�1YD��6�r�v`c5T��J�4�Ь�f~�T�4�
ap��^����a�p&���K�g�9��,�qc���iU ��"y�}������ؤt���#p}K� ��<�?�_d\��0����g�<`�|�F�Z��s�ʕg�s�!���J����:ԋ��G�!�3��lecX�

NJ�f�ʧ�>�F���bG��&Ð�6�5��pm$ϸ�����9�M��
�5~ �W

)���٪��Uѥ�B_�\X�t�5l��f�Ɠ�NyPoh;k�����UP�f<@C�A̐e8r���9?~ʈ��޶����z�x.7�ࠒ��B��=<�𹴦�҅s\a��L�x}@��q�xւA����ԟ��Vkh�8���,���F�#*��m����
���)`z������26�β�RP^�O
�B\}�����d��Z��7�{2dȐ!C�@�/h�� �<$��!Cƿg�\`@Pךξ�:����	����sh�[h���(�7wv!��_sA��yqq��Zp�Q͜W\6�ʴ��"&��!y�<\x�KP��8�2�{鵠�aQ{�e�z��;��T:��^b�*nN����kW��f�~П����2cq�++SD���g�o�z
�圉�k�0#7&nԸ`�0Ie�������b ,������on���^�`5�b9��-��2�΂C�����f���V�M���)%u6��=<���2�!�`�J��N�Ц/���-���l�+:9<��Q~@���`L!�+�/޽{�dIæ�;:ݿr�"Tu�MX3[�!�� ��M�_[�����_.�?��\f��7d1ܩ����༷��!��M$�`��O\�n�I9E���?5���ـ��UQoNq���\�������e��\��0v�k�����g&�̙�qd�j�&|��7 �A^
߄c�@���l�/
�K���~��/%'s�m��5��r�Et�x9���:��-�����~��qv@��aW"�?���v�9�qf�!���j4hl�1�@�
s3#���Ζ��j[����5Ԉ���yX�5-��sO�W.�0N�G�}K_�l��S��7��,;k�1�w3��]C�z�0����Y�n�-U�
�*�ku�����*Fp�*,���=B�{��P�����pA�Pv^E�м+�s+�x��v�~ʐ!C�2dȐZ*��!��2d������0PX�A��x�����;���[+��u=��>}��ݣY�zX=���'�͞�񋘜]�[�h2��a�H�q�X�o���f���������]D�����S��ղ)!��,���4��`\r�h<�!�^�W�6��[��r�/L&��%��1
�X
�����s�F����#d��i(��w�V��^�m��Y�D,5�#f�}`4.������f��O��^b"�#�|}k��aǻÜv�̜�1''��$�sb���)�,�i��h(-����(�8�z���t�R�fNQĖ�\�C�v�]2�X��JF��32T�\R���9Ȟ~��k����5�ň�zȠ��%��1`\崎<h�K��C"� ���Z��X����MJ���-Az,��OMNI�t�*NЂPS<��bB*�6v)3�J�EC;��!p����i��zLCo3v����,�K9I���޼�U͊��
��"���.&֯��P	�뾱YV�b5Xana��S,��HG�&!��)���?1g6�&-�XH3Y2�?Z���3�GG�E3Js&^�ܝ�������?!�.�Y�;W��M6a8놟5zp�c�h�d��7� �ş ������o,���{����%v#�NL�@</^cLD�ъ���<D^��k\�@S��)U��A�@ː!C�2dH�'���Z���ٴ6E�wJA]t�PW�]t�F܈�Bqa���.��hK*V�m>(mg�Ɠ��c���б6�9\�d�͝7�I*�������C�}�Y�ʲ*:8`̡6E�d�п,x��I�F[���@Q�He4ſ4J���EtKDN�1���A�\��%�����M�ik�dHzk�YJ���d�޼�HY�텇���&?�
��Hޖ�/ي���U�t^i&q��^i@��#K��eH�`z}JM`��C]��5��zŃ�,�<)o{�&q��_va=Zv4�Xϒ�)UE����6�ݐ�䏭��j�0�:r��XS�|��8k��r�84NJ���O�K֨��~�ꫥ���$�dwT"�K٤ǵ"UT�6������.\���&�9#I��)̰|^D�8�ǘt8�2��F.˔*V�ֵ�}Q�m��/��+�x^Zx��
�4��R@��*�&��;3��
�N�s�����'��w2[�
O��/����GDDDD}���Ĭ�6�""��t����#.�u�
B�S�y��{/�|����OY@���#4>������.�2�8�ݗ3���Ȧ�����]P'{��g�,�k�$��xQ@ۂ�P@+�Ed����2�c�[c��sTo��4V�]��3�tw�����2W���x����<�/:r\���4���X��7&����{Y�w��G3�V�Y�m��)�EDDD�W@�Gm(�ED�%ZC��&z@����n�4���ڷ��A�<��ు#���:� �A�0n�_����������.y:���YDDDD��6�
h9�"�<Z|5�z��q���o�f;��27�lv������(�/@&�C
����8(�,�6w��è'����֪R���g��V'#O��g�ІZ-""����7���۩v�۫in�g�z�ІZDDDDDDDDD]����P@���������(��Uh���Q@+�
�ZDDDDDD��w%1}����ca��X�����
h�@�v�h:�o^@�
��&@�Ѕ��	� @�m�
����
^@{m4��	�4t��m4�^@�-@��ݱ
D!D�����j�F�3�t���h3�
�U�t��M��T�����h������h���c^@�
�m�
��H�v�h�}��h�	3��^:F
�&@���d�N�a ��{2��HF3�;��h�
h�hpZ�6h'8L���Gh?!4h7�M���y��&�S;Npھ
��&@��3@��h�@���n@�
�/�M������1싄���q\@	N�f��
���
�m4��	�4�f4��	� @7�|�赏m4Э��h�@�v��h�	��cNp�
��h/�M��	�h�w�8	�q���qrT�`<�gp3q�>�@Lp�ԑb*�ŀ`L��bm�]+ϓ�L���X����m4�.�M��`����
��$I���3��z�N��>m�[A;i����8pm&@�D�aFQ4�L�?��}}�.�­�j�
�v�J��y�Ѡ��}��	����h0x[|e�da-˲��R�R�7���֮�n�i���6���?����Y�G�x�ZA�	�Q�R-o| �����8�h3Xz�� ]d��7bZ���	�&@kv�Mhz��/@ހ6�Z�6���>tm4 @�-@��wp��'N�H�`�LB�m�2���轃�L������$�(*!S� �M��M
�O�
���:����w�h�޾}��۽e�_�+�Mhq@K-z�ĭ�������Z2�@K-Z$�D"�H$	��h)�@߽{7//�СC'N�`


L��Oݼy��ɓL<77�e�qbbb�֭���Jj|�ʕ�ݻ�k�����Ӟ={ƌ�l�2NPIm?~�x'^jj��˗�g��ͣG��]�v��Q����p�[��s��ŋ8p��):�&n*AL�޸`@~�X�h�H$�D"�H$Z�R@�~�bcc{��٨Q�
�I�&s��˚�Ua1>|�pJJ
��;�8Ϙ1�Y�f
6d�8p }r�����k�J��ׯ�]���(������offfժU���v��az=mܸ��޾o߾�%�!H�…�7o�O�w�� r����ҥKӦMkܸq}M�qttd���tddd�.]�^�z�mٲ���-TTT�x��Z�jA�@~��zy�]@�D"�H$�D"�o�-Z��wZU�$йiӦXw[�h�Ht�N����L擄icC���Z���ݺu�[�.��СC�>}�~CM1116v�
�޾}�����רQ�����tKrHH�����p�jժ
0@hk�ܿ58���@�@���ի �ڵkӆ�f��n�#GT����:u�Ѐ%>|x�Ν��5k֜9s&lښ�.X���Æ
]��3�@W����%����MD$_+G��0��FESi����)4-�D"�H$�@K�����q�H:�J�1V0%\uҤI7\�8|-r��,�r�r� �e4Y�X������,�]�\p��n"�&�gddpK2?/ǎ���¬�&���Ν�adfӬY�@�x�q�J�e����pXA�d�hUB�2�1��X+7t����b���,��E��i@�8���3<��#����*Yj�m���m��Iax�-��L�۷o��׏Y�ϟ?��-L���ϧ*
��f�x�q@�1B���F��Aŏpj��[��<a�MH�t��M
�d%�=-(,zR�6Z�ݟ
��.d�r��͟��6���ʧ��>���M�蘯#"�����a�+GE�?���D��<0��J1���E"�H$�D"��7�!Z��wWs��&v��nh^�t�Ҷm�b���y�xlA��l[�j5{�l��ڴn�:��f�F#H���E�"u����ј��бcG,�
�BcA��C������l�D���H��ƍ��*,zn��A�g��W�Z���'�-[~�l2)�0��˗��`|��x��Ν;������'O��V_0)ɐ\�e���^	���\E���K��iӆ�����{7�Ƃ��?~<Ӵ
�U~]��9��{�sJ��
�G3<аކ)0#l�Pc�*��`
�Tz�ڵ�0���2��s~�N��,X�FEE	��m
������Ο���z8+��˹�����u���QANn��K�/e������7n>)2���}�Z�9�}@[�gL�eK��B�&&�u�<�q4k�ޔ����@犑[���m��8(>��&��!� iE���+>�11�BHh��H��h�H$�D"�H$Z�����L$
�:�&�%��
�U�5
d	�d_��KȃJ"��d�LMDD��m�ʕ���Jp������sa��B�£�	C0�`�>r�H�ĉ9�Dd�8a���^�^���v�8�#�
����D*p�"c�Mpsxx8x���Ř騁�1GGGS	gq����0 �=z�`"4��|���>}�>��n߾=�3��gƯM���&+c>M�6�޵k�%m�la�&z����B\\�r@��Ƀf�-r<68���ãm�vA��c	�3�ʫ i��X/�m����n��Y��n��Kh��9?i�={�<�c���u�0k�bgWi�ԩl�OH�梭]����j�*��!8�@��h�e��?7��OK/x��TXT䒑�/?����#>_��.9����Fb:�����7oR�.D�h�H$�D"�H$Z"8��~o�����71�\��)����p$^�"��~ޤC���$<�uŊ�fjxs݅`��<��"��I%�b�,��L�>����J��*f�����g.]��<,n\�&^^^
(�;��X!��I=�ʎ4����T�lʔ)pR:�Q�mZ����h��!쩩��Zp��,��}�"��3�b��^�8A��>�d��»
�>kȮX�"d�¸�&&hz{���'��C�o@�V��xb*Y8����n՚�ڦ[��J�H�s�8��cǎ�H�{�nV��5�n�3'��ķ��r8D��.$k�FuͬZ�:.nkxD�ѣy���c�ՀO�x�+����������'���r��ظ����$�їzU�����2�m^���C�J�\32M����g������q��2�G^����M���Q���}�D��N�^�锴�M~m�"�H$�D"�H�8���~oE�/\HP���&�Z~X8)���Hx��Q]�z5��,Q~���L��W���訰)g����g^ӧ�4��Sx7�����U��k���%��&�P$%����`�: ��ɚ)���aa&L�^�e�c��B�^�z�amhf�u�ۙ^�?�@��X=Äh�	�f
�X ]s����+��4!�L�š�rM����l
F<o�<N4���p��8}����n<�*$����H�Y������O}�,)�pr��Z�'cm�	�_��]z���{�,_�O���

�P��Og�F����J�V��\u�im��Vɀ~��L�s��H֞��KK/�ѧ��[)�2^�+����S���Rn�]��t0/�M~�A���VzXb�'��@�D"�H$�D"����~�!Ÿ
�ĥ�jX��������l����>	碦�&�"�
L9f���T�2a���
6@iIϠCi��i껳�]�
@��k24�
5k��}��@�#�>@�B�&T{ޛ�©�l�L��C[[qU�4b�
�����%h�z	!��@c��̐�֭[M�&�0Mp��4���mh&�rKx���%ĉHII��aG�әJs�ʚ�XB�3�a$�h�=^�qX�C�s]@�̅G��j�bg�w.\\ݴ+֤���޽�!wH
@�qh�0�����?�SC�U������A��V��|�Bxo��|凮^����G�傂�̇�����i��S�n1��� ����+��?xz}��;����@�D"�H$�D"�o
@�o +ՠiK�R@�k�{A�#�>l�u%�r
%��\c,� *^X$���ߟ�X��4H����!HxP����`GvVR���h��G�s=h� .�a:g/B0�iH�^���-[F�Iv�Po� 8
�ik�3æ1#ĉl^Ͻ��A�qy3�zI�qqv[;��)c�f���J�9��|�j/��/�H��1�z£�rf���V�$��aX�tƌO���f
�?{�,7n�
��s�ɐ^@����g��F� ��	>�c�`�R�]��(t۶cǍ����B@���ZLS����
���!9'���a����Q�@d>�ur�^6�r[tטX2����'�I֬���c�~���@���+Z$���������8v�M�����&�%��ѭn�����rӋ��JL�Z��B�Jl5����o%b%(9_�6(�"���7K�����Јl���/����{���I�$I�$	@�KM;��V���ھ}��…�%�@a�($�J�=�#H׭;nnn&fvM4�����
�t/Dzg�c4��p[�&,Վ<xPk�\,Ќ�l �@4z1�������nD�=2����p<��n����X�;
�6������/8�pr�g)������z�&!]���kŅ��n�ʕt�Ix7��NHH�Bh3rﰙ��u0'1�h�JZB�9�ɗ��n3����Xd�̳�cp���t��@3?��E�l�8ٱl�˗?��������
����K�,���NQ�&!�^�YI/�5���ʯ��r�'��F�x1��Rb+CQ�9�{8��� ��A@���V��w��rJZ�$I�$I�$�ɵ�P���\@8�A�0SC��-��͛��B���;v�_R��q4����1n�\NP3�l�a��1�!&F�/4���@C�#��Z��5���&ג�q����q���.���؉cͬ�?�k�mjj*�N���Xp�K�tRRR`�p^趭\�:��:�q�F�8��t��ac^��g�Xc�ݙ�D4jhh�)�R�DTf�\K��v�4�{n8Q�Dac��W	1�,8�a^����.�lق�5��L٦�����ЗY��O�X��a'�9��n��۳���x�AR��̂�h��o��qMJJ��˿
@���p~i�+��c{�p4�@ãW��ԙ�a"�����ww;��Gm}���ihI�$I�$I��'@C��"�U���F�c�K�/���BA*	�uC����ጐG�P˜��fi�9o޼իW��#B�	�%8�>C�=�9�*Z�}�(���ꊍ�%�^D�@j.v?�����===nZ�M`.������๐STI[�±�
���	��>��������V��#..P�a�L
Z����n__<�e����#�xF�O�U`��OG6`z!㢭��4-/�����JGGG��FD�'��uV��i���k����ekNs�Ӵ,��lwǖ�*�2999,�X�ʇ������s��Y%>9��|< ��#�SW Δ�O&z��F�)v�ʋ-����'>��e���;�QK˱�G?`���9������?唝mm�xh�M	@���Ҳ�}����C�5��d�Z"2��=tT��}��"�m�g����dsꉽ�r�2%�~ρ�nhI�$I�$I����PE��%X����t c���x#�A�szz:��ɺ�����b۵���S,����6m"~�P�C����@���L#1��X?�K�1^�]�4�G�M!�4�& �uF�] *�;��1;�k��u븄�o���V%*�����`e�FMF躑��2��e!��%חC���1���#ۦɒ��Цi�� m �{1VD�����;���y�/
N|4u@��k�`��Ț5kx!�6�q��k�X�GnO�2T�G��DDO@O5�]��vli6�4��_|��L`�a�$!L]�vhx�]��$�۶m?�my@��zA��Yy���6�����z}7��쪘]P83�[��N����D����d/<q��##x��4���$I�$I�$IZZE�'�u-�yY��&�ԩ~!N��y�č�N��b��.7Sg����
�g�4�{�K�]�&����
�K�A
��V�z�TW�h����?R!�Й��؎�B:���U�f�"��QZcӌ,H�̄�eF��еu�h�����1�@�3Vg��%L<�%I�$I�$I�VBhI��i
��_��SJr
�3؈wv���a`�����,Y������
@OV���榒�u�ܺ��Ⱦ�ã)����r����x�'{y�[h��gy}�e�1;w��T]3t��$I�$I�$IГ-hhI���*�g_<��SK�
�K�b�G9N.�韝x���O�k4!��D@ފ��対���ߺp�lp�?pGQ���QSWם%����+�+v�_�x����͋)ߙ��,�:�h5��H}o߬@��$I�$I�$IГ}��{�U�%I��tJ�{�lI�4#ckZڳ�/�gey��s�R���w����PU�ؼ���O<Os��[�|��n���>�����}_WWSwwA[���o��ǣc��]sK���z�×�SX��*�U�..�����G�Z��[S;���܆В$I�$I�$	@��hhhI����\�";����`��SƊF��_\no<����� �+㳁�s�?@a��a��5�VU=�xg�oFn<:����X[��S$�2�$HX4��%I�$I�$I�����$I���V0w&�m1��@O��;�,�qcQ1���2\��˜�f0�Jb�q�v)3���k
�.��$I�$I�$IZ�*�{�R��q���<F?����L�rE
+ˤэ��݋��+�yϜEI.�9��+5q�4SifZM���Fe��g/�wGr;`�~�A��|��s��/?���ЪOI@�jh�2��bèg�QOvߖˉ���B!�B	h	h��BH@K@����B!�BH@�GU�bH�z������


�KII����^�j	!---�B!���f�ʀVI@k233���-Z��\�2//����2O�<�5k֘1cN�<i}�,[�lԨQiii����B!�B	�a*��%�U�Ñݻw�7�;S�L��NPP�ҥK�]@c�Y�&b�eŊ����q[BH@K@K@!�B!$����������ٳ��LJ�.\�v���b׮]Av\ږ�b���uvvZ�[}Ӽz�z�ܹ������ϟwww[�»��}}}��?f|(�;���~j�i	���NOO��x��ihl|����w���B!�B	�� ��������~�z�y�S�NE@�۷ό �	A���Z�`��ŋ7n�x������cǎ�^�����[��ܹs�Q؄{���޽�ȝ;w�o��������M�6�Y���RB�����Z���s�Ç��bd���{���B��ŋ��m۶��3�������������sbNN��ӧimƼs����[zzz��.Y����#��p���oMM/�{�~���kb	��>��ʟI@!�B!��RI@�I@�gM#0/&�8  `„	l��0s$Й�����Ϙ1�ƍ�ĥ�������1}����`<���݁����E���f���qΜ9����7m�4�?~`` #UUULؼy3�9��p����{�SP�3g�dANČ���'N0��WSS�. �	�f�޽{������2��Y�u8�����E�v7Og���L

�t	h�O���;;�T
��GP_���/	h!�B!�:�U*	hwhd�y�RRRP��&��J�7��3���A�ڌ>�@RBv�ر���ٹsgmm-��t%�9222�`
Z�ɀ���l�˗/O�4	_���m�INN��y:t�֭�G�⅙�Ů��fŽ;�fdÆ
\!�c�0	!t7>|�G�.���SN�:5q��ٳg߾}�]���(���ͼ�����l�#�TVV�d���&%%��<.���_�t�viΕ�.�7oޤ���u_��F喂��۾(��L��}�S�_���?^���B!�B�*��{�Y�+=�^^^�VlHH2��&��̋c��/[�8F���9����\�����O�>�����v�Z��Y�K��8�\Fm;r���`���f�?�����2�;++�%ƚ�KKK�S@�Uͥy.fQ�[�ne������G���gϞ�PsE	h��ͿLp�MMM--����Q�����y#~(T���,*�<+{DV�3n�B!�B!�RI@�wM$�D?RA�sBB�ȘhҙN�~az�I�@�rEK�2*9..�m�����`"8�qFRӶL74�joo�
�쬒��ʈ��J;4i[�lq�D!�n��L7��i�fM43��D;N�wM�7>�;���=z�D��ѣ%��3|���V���*wT���$��<��8��rc%�HIͩ���B!�?읻KQG�;��IH,�V�pA����6*>װ�+X��X�H`���? �er�/_Yb�8�K�޹3���OD���F�d�+�.5��\�|rrB�����J>�S�7O3@��xE@S�Ljf
�zꦙ�b��bl/�
�/�C���,���R@c�www��(�Д0�"��+���CG@����������t��.��T,fOO�m}�������7+l]]�LDDDDDD���f:�i:3J�LM4)��W�.%�>��ۛFplnn����H#8Ⱦ ��P(�!��%����e��,#���f�4
cdd��T@S�(���J�077i
5;����?䢏4���f�\.�J.��0$x�n��������$�Z�P@+���2@L�=�7�����@=#�Q�,X^^f��R���%:E˲(I&1i�,����	!	�4!��!�'�9�������`lu�'㩙"�cff��e6lkkk��4�&����|���zccA�'ф���i�8���ď�\��U��b������c���&�""""""""�)��緀~��E�P@�!����ĺ����	Ϳ�c���G>j��h\�1n����5�\��Y����,5œ���8���{����F
�#
YLm5V��h����(��\�"(crr�MR��Bccc��T*Q�9�͹N�����B�2�l�f��"� �/�YdwSS��@�Ѧ��k�6�q~~�ӹI�7�1�8<Uቈ�����������t]C2��~)344�1r�Z�t
q���TI���q�����d��l�9��6�`
y��9�������������)�Oq𚠝 ������Mc{�8�Y�;XL	6��
nnnȒ涻��Y@�t������L���i
�Q�2�yFs?X�t���*[q�H��i}}�m�Y.//�Ϙ��������(���p(������+�Fq5 �ɸX[[#���4
#�	��f^y/��~�y�+���DDDDDDDDD�[@sc
h�Z���熆�.&&&��&����DDDDDDDDD�
h�Z�
~q_���S�����q������������Z����蝝���û��DDDDDDDDD�6!t(�EDDDDDDDD�Fp8�
h��ޝ65u`�_����G�V�ؙN��2Z���,	�N��.�"(�T@�[BBB�����w�L��щ	!�Ϝ��I0^oN��Õ�����"w�W_���4����㕱pHODD�{@��0�&"""":w0�6�����|esWr�<��������4�a�?X�!#��,�kzI:`MDD�{@��0�&"""":�n/r�e-s�ev
"""�-8XX@�6��֎t�d
�n�쉈�@��0�&""""b�����4���������@1�>u����;�Y@}1;&�fS���=\��6;�%�K��K�A�����5�@t���-�׻����_j��3�M"���(B��x7w�f�M��=uz˾]�b�θ��d[o\��F�@���V���/����4|Sޮm��z��\3�V��с��������K��h[P�lvI|���W4�Dp��m���z����M���6��;��� ¶�7��lz#n��]�CrCW�5��樜x����1Z0�;�0�ĵ2��ٲ�c�D�(�h�faMD��t�T5�
>w{�A�"L��-�g����
Z^m{L��qh���G}/^�ū�s����YfsH��p	�M�E���b�Qd�r�Z��DvE�ͬ"dC�̝���ꑩ��}⍽��TշsK��5����**C}�H�ʸ�R�L��4�i���ڣ�ܲ;�rEM�f[�o���T�u8?g�s��{�jڲ+�E�V6��sK�����`�݋J��y#N+T�̲F\1�� ��YͿ=����f���d��'�5��	�_�}f���,o��>�=knM��T6��Ђ���]1��c	��]o��e5��1��7oU7�-���MH�;���Ŋ��\e!��<���ō=��Ԃ��B�*>z>'O]�W7�'��?ZE��)|�h
�U[�᩹��(���?�S��ŕ����t�Č�U]��,|T�ds8?��0�wg�-�)���Co8�=�D��p&��"�O�Fw<<�Z@x��
Mx���T�O֖7˚���Α	q��v%�Wx�r���[z�TU8D�4�<������"S��iLof�nj�܆|%Y1����;�e�-3���tYC��k�%��ӱIw?��?y���3=f*h쾯��VZ!�k�CڋT���\�����u�#��C
L-W�+_�j͖�҆+ɹ���򫯥�!�:�F'I�����tuFiCE[/�i�Oe�������c��	jQc���#:]}+�d~e]�r�����9\���{�����̀Y�M8*�C�V�=t\K?�{��O)||�z�%��?Af�X(�l�Á8��q�A�Xq��;�����N�}��.7^M��})|������cpqu]�mza	mB�EG�	X�J-�CKf����Z{�By��{)iI�)��NYX���,e+T�.��p珤�Ļ�I�좪����KQ17�������,Ԙ��XD8��;&|tF3�����~󣰡;�^fWJ��j
�!���}�MF�(��?Y�ڗ��¿��]e%�"Th~MUb����Y"o��Y0�b&�_˸�@���-]aC��*�ە�tu�8��[{�}���B{�j��B;h"�'�,,��w�MvTW����}s_��p로H�&Z�%	�F9�0�9�s�F�Q�Q���_��Z�uzf۸��ۻ����ӽ�J{��^{u
@ץ.u����a�(�F��G�T�3�p.����Ĺ��n��K�ĩ�Q\�ًW��ˀ����f���s�W����\s=�Ꮭ�B��KW>�.Rg4E��D�P�ƌ
�<}�R��eZ�뺝|^��H�C���֝�>Cػ+�08w�ʕ��ԩ��r2�j������?�л��ϟ2�ױS^Y�tp��?<x��T[�����^�ڑ�]'�����ؙGΜÝ�Q��^�DWo��+��>@Z.\Rh7��x��>����Ӌ�y�����T�g�Gk�G�H���UcB�0�]���G.ۼ;���q�V����o���'^�|\�ʍ����6EPu��y�;C'N<E@aV/}<b‚U]�Ÿ��Y2��ï�W�&X8�m�/E�8	{��RWŅ��.��T2�=t҂u�@x�v�:y��Ɖ.�D�;{���KW�}�tC@�m���\�y[�r#��v=	9��`(1�H@\3�=F����U[Mv%pMk����󗯻�����N���sm4�W�H}��:<x�(v>�hIu�g�m���<�}s��P]���C�o��̅�4H� �\�s��9/b#�����*	����E[�U"�k�$�:4�A1�Z�^U�+��! �)�O�_���q�c���wĿq�.V;�^E!`��e�k#�Ur0E�|Ù�h��
�Vv}6���7�R:~�BTX-z.Gun�N�O�,�L-X�u��X~�4���|��B����li�������o?޴��S�����L��u'y�_��=�ϋh1f³�>�����+_��tǟ��;g/Z��ӿ��d��'�[�|ӛto��S�ȩ���tL8���k@x!�&;e��H��k�m���������B$�+�9� ��3;�~��ۅ�!0�2���D*xE�Y�™��ݼ���?�@�;�s���Q�����+�	v�&����
�yu��^��$�R�G./�v^8�La��I�a~7LB��4������\��M��,����-��t)p[V"o�ٲ��}�&�t�_/H����k��u%Y���s��=�G�r�"	i�%1c�X+Z�p���Řh�i�������D�l8�V��Γ����z�K)h.U�&g~�����
i�0�ˆ�i�[i-4c�1	@��R��߾w?���31�Z��F���>�pT@�t�1t���@՜ٱ��i��!���Hrp���Rп��u
�����R���^�L#������Ӊs��@�"��I0��?��;�&�/d��:B� t��nM��(3�lp�EwDF�T��u'�o���78`��n�A�?Ǯy>��g�6}Żvq�ڭv��r�-Z��a�+6YR.��WmH+B����Q�E��.�	�]�}_�9}醁���R�w0p8�QH)�~�Ek��m��>󯒆z�d�N�7^��}�T�;K7�>���kh��G�Ÿ��)��
�5�C�[�Qo������.]�0��]��o�L�1��Z4u~2aZ�T��Wl�t�
���sVok<sŦ�F��:���3n�J��y��Trn`Če݌��tg.�d�Q�z����#�S|�h�g���@s�G�����t�l�
}� ޕ��[��$AZ�j��FU�Us>�Da7���K�T�]�S�u��ç ��kj^���r���4uД�Gδ=��"�p�?׼x�N~c��;\=w�Q-�jgJ
�M�M��W
�S8;��-�`�tN�h~,(
�v��9v곉��Ő�v�5�S='Z�o�ā���!2.�ضנ4�o�!��Pӝ�3�L[�>��뷁���a���f.&F1m�4 �K5�}�%QU�Щs�
��΍�
r�����K`��}>?I�үn2�"�%]f���R����[C&�<��Q�	ר!�v���6�9�m����d‚�M���5�Q�g����h�{.���`��O��������
Ld���U5�x㎸.�ļ�[tR��0^@|�1� 8�:x�4�v.#b�13tg���N�ɎȐi�wi�t�.߲[?�/V�VJ����`'P{��y˷쉯��������1s����A���Y�
�7���4b:�{��wb�]�Y���CcX0�Y�2�hq��S)8�x
=
�F=�^��>z���=�i�Q��������<�y���{�ą[W��l���Kwp1觟�ݲ�[�?huo�}�ϼ7b
*�x!z�9�{���y+�6M#B�Wox�f��"F-
�4�l���d�vC<+���݌l���.��[��!�!2{�MZWM���*a7�l���ϧ�eY<\��{�����1��nkJ�5@5!�^�hYZDŲ�lᷞ�8
QpV��,L+{��,�f��k�=7�=v&�e�w�|��|}H�ӟ�0�ǘ�a���>������CD0w�����aS�oa��"����r�ZG�,�%��&��:��̰���ɋ�a����co�lB�c�b#��Is�i�9�kD>X��m�>r�2�c�t��8x�\n
���f\�9��3�=��d�,�$�i��!l�uH�)�9b
��
Ip�!(c'��f��N���GZ/_
g���Û�0��-ܸ�;E2��>,�Vh��C'�ӠC1���56�X�O'�qp��WCPQ5a}�q���y�a�H v��h;�W��5�nXEN$��iӎ�;o �&�����bF.�����T��0��Fx�U��;�Ȫm�:U[��c#Ja�
;bNw��ͻb녥u���X�n`Vg]�Rп�N�Q��t]�R���"r{�j@��M�̸>u��w�O�����'#��@�¥���BQx>��V�ր�>�x��P�%���_��Y�s��N_,�䶃�b������d��e���x�����lq'��<�4k�FI!8l� %��F�4��!�~�́𺏀�{�&Z���1z��x���?�]s<�7����.|m�X�ۊ-{ V���\~r�X�\&�����p-�,~��Khȷ|��ѺaA���H#��9Ct,+!�ӝ��݉_\��'�Aţ����Sͯ��U�s��4֐
�m�As�'�K�t���R��WN���(���U��Jn�C��c���**�O!��:�L���`v8M/�Z��>�W�������.(���©3`
ȃ�|�\���@�k��	BI2�k���x��N4��ܓ�&x�8�	t��+E �h�1��r�t��#U�T�{<�g�/P�8uZ	���Ӗ�COʢ!x��T6a`�n@��A8
�;tooü?v�*g;����g9���}
�l�n{��	zH�žm9p��Q7h-{s�褱����-�}M#���B�x�8�����lM�.�Xyk�$�4�p^��Jk��g>��Û��ыh�+�R��z���BC\��q�_���8ddq�V��o����]G=�����νoܩoT���hTc	��S�# ��Vna�Ht�;ˤ0z�JsT��(g���	�	�� �R��41�����S�#D�ux���������vg�X�]`���UZRu��0;�(:��@[?�Q����s�t�|��#�
��Y�X�����pH(�c��
�Z`vzH<�T�%MD�I�SM/#O4� �,��S��C2�"L_4֠�)�9+�][��@ټ����-u-X�U���!^�~rB�~����"��K߷�}��K�|J�v�d��^�d�`?�3�g���hk�ᖫ��#�e���Z��*�42A4��i�)�j�St��3g�VZI����}��GC�|���D3}�FH���at�����.��v	wLd�l'3Acʀl���ꏟ�!9q��#��V�}/;I�Z^�n��&,\#��{�;O�6n'�c̒��U�ZCS��]c��j!�4c��!e�uK`�P�çϹhs�-cb�6
cB��1����Uˉ�
����/�T�����mu���$�b����RD��Ƈ��Qy�!��o��y��u��Qs�SU�n��ڴ�F:L͡�l��2/�������
�@�`<��������q��Z�N%���5��[���i���KQ�_ω�m/2���,35�;�z��퇎���30�d��j�i�=��.?����HD�H�ƒ]2��ɣj�mcx�Q�*�fCCI�T�����lb����.	�M}���8b��ze���S���$��B �GL�D�	£>��T�t�A��Y�$�M���u-Z]�X��� �c�=kz�7L"��f�	Ҁq̈́A�J�D�o�It�n�I���f��R�MbV�B�lZO�&�A�푰�dX�.:�R���Sp�5]�u�K]�My~����aa�+�7~��z�"���	!
�v,�%�T8ű���HK8���[�&�k��m��K����<1B�8{B9@'�m�^%�b�
��Ha�5�NQ����S0G����I��� ���h�����$B�}$Y��в���!���Ç��%+~�t
�S
9H�\�S�Y��>��C�����Y�@�9?�..hb:�Gh�`��xgeԜe\ͫ�"0�
@���O�b�����-�	p<��<����('�,���
�f������ ���	7&�5tO���
��l$B��q��
@%	R�W���-�����[v����9���?�-�����j�DD�/0k�|z�9gu����ys��=bwx���U"�*ѝ�"���D'Ѭ�a�<��XV�)�7}��t~1���
Q�	��
@����&}��>��.M~�m�:R-[w��W?u�bB�V4Y�6r��4�1	!3�KmG�,�z�^�f-��dۈ"0�
0�O�q?oڽ|��L��k�՗)ї��b�=�q��LJSX�s�!��V:���'o��#�2@���5,���ɔ�K࿄_C H����Hs��d�1E8y��A<���TC}��N��X�?�c�;��"�,r�<�1;Xq����~����<�F	F�~
�w^_L:�`���5���u�PZ�Dl.25UZNhW�f
m��z6{$6ވ�1��{��Q��"���lW7�Lz�~�Ƌ��k.����e�!��`.�@z{	@�zž.U^%��g��M�����M�C� `ЀV���ή�4Z����b�C��-+P�(�
�~t�ڃ�^�~���y��c��~��~kn;�w���KE�Ë/�����&4Zj�^|��(k��=߻�:���m���Q�{�D���b:F"��%����w�"[��}Gcϸ\`�ء�	�
7�@Ix�o+~�	x
���̹H T���'��v�[,p���kq�%͋B�S��v
��)BA;l?�eX";�,Z���!2"a�p\��B�
<z5M�C-�b8lY���m����V��f�r�5�g-i�8(@ �S�/	�X'��vm
��@����:+1|?Ŕ�:c���c괳_U�&c�,/Ȼ���y�d��b�cپW��9��ʀQ�HmSV�a%��L�)�g������-{
�a���2��f�Йf9'��Fi�()�����-^�lt� �}#���1jѻ�I�muT�$v�#!��0I[[/he�`6�}�S}!h�����L:�Ssz��˺ы+Z�si,����`�$�!���+ʈ�%���MS�Б�w�NҜ3vV}��oYt���E�(]������L��[D�H,k�&l�+��'Ҹ`5e[�*"�z[�<�u�K
@�t�W�5]����g/"[�ިش�-D�Q�!�-}��A9�H�+�Nś�Z����S�p����?���o�s��/�-���o,�a"]л���Y�w��0�R�)Kփ�`�
����� ����S�U�o8��
�'�.3o99>{5<ʈ4q�������'�?P�O���08����xJ���3����2��HP,U�ƣ�Å�F���7��o�6�P����E⊈���
|���s�C�v��l�Wx1���k7�Row@4�R`ğL��q��8ɐh����R%�4*�Q�V�z��=�3|�?�b��^Vߦ��K4�����hr
�W9�/8��E%�
4��g7�"L,"/ܰ�H2��<?���q�n5�%W�4j(1SkX=�IC�s	���dX܄\i���'Rm\�T2��8��+�;�r@�����U�eD��m���O%
�
ؔ�:�,�m]�=K�Zl\�I�!o<�$��!X}v���`��I5̢,	�z�+7?�"ҙ���S�!��c���#�$?�}J\��u;�
c"�H����k��8��\��`H�}5����� ��:Q{�b�8u��7Є�=��'ލb��4-�s�%XD����"�PN�����%�P.B�Ol�_�g~e��%͌# mJ@�\$�Ea=�UA� �!':&�Q?�QW�U�F�=�7�ǣjmvP�q��*%ܣ�Q(xo�7��������Ǘ�|/���~��"��g��>g����-]�`�3�������~��a#��u�O^���7���m�1��6�Ӆ�E�&sͳ���U:l���g�T�����������(�pC��f<�x��5׌�����q�kOY��
[V��c��8��[Lg��m��c�j0�7�g�yGԖf�W�42���v:}΃5�.%�Q%Q�z���A,}N{Q
��H��3�S����7+j�Y�UsibEsDTb�d?���:��{E�	?����hF�OIO�a]g�'!�?�d%_'c��C!K��q�/��XĶ0�Z|w�d��9�g�!
���^�@Sd4��� �!Rre�+��[Y��
���0DK��l��GtF��R����(.����n`�Tʀ�,'�.�>i��U[��B�V�)�9���'(�'kiZ�nxM�dJa�wU�@�Ċ��1�&m��%>;1���M�#A�O�gk�܄,����t	��8qN�l1mA.��OW,�;�R���Sp�5]�u�K]~��82���tdE�n���m8��s,�����D'���A��
���[Ԝ8���xa�O�I�PN�Ehl�[�q+���R�c�m��v
ʅ����wƜ�U�S�������.�҃T��\���%Z�/�������4tOF��g��(.�(*>9 ����?)'F���q��9u����-�$<
@�d�H���8:7���lV�(p���޲�
����G6D����Ss�{���N|�k��,�?sQ�W~w�ܚ��ć�m9�y{����m��;|�NF4�K��]~	a�y�ׇS�T�np�Yr|sW���k��iN�
�*Acf�����j�
@�E�Q%��j��p&~�߉�����O�M^ӗ�6q��|���
��,CЉ8GL�W�'b�B%gݩi���&H"Y	V%�����A�^��j�߀e��g�3�":AW4��������wO�į�q�h�y'<ڮ[�gG"���;��S�E�!�C$xJ����74$.�Y�0��F���6� �'�W(��f�
ҵ�@�B��0c�&�����^���4�*�_�,4"����ÖC��d�$��2�X�W��*L:P$r�av@`o�]����r��~:B���+���Ϥt`$�"fЇ�B[l����f�~6
�Y��T�~��M
�>�?���X���~ܲ������C���x9�O���x�)�ƕo:�9�W����{��C9�.G@�ʗVu�^�)TLӭ��
I�����	v4���6�L@�¾�AH�b!��&>�kИ���JkD��v\^<.3���y�	����i�Aڧ-�}���2�ަa�<�:#��/!��t�cDۊ䯱��=m�=N~,~�W"�)!���&�zں�� 5�)6�q����g%P����BaMMy���0a���@�+!����oi�P(���\p��mV��G�ˊB���~�&Q��x�5�q��|da��|	�� ƒ�@�vxkl��7���h����=�;I��5̯�	�\���a�t��`�K����j!8�d�EE$
� �,�-�0A�f.I�W&��"�}S�K����T��G��O��؍t��S>�`�@kL�^,��E���v���ni��+�r�V
�!Tg]�R�ut�W�5]�����-�3޻e��A�}'Z/:�n	ߌ�]nC�O�	 �Ё≩o��'��U�>�/h�I ���Y�'-JE�#���{�u1�22�JF!k��
��I���+G��"�F2�D֌�#��@0�
�&�C]9�L	
��TG����$�~��-��s�` �LF�Э>}8��x�ϸ
����ɢV��P��x��
p���tJ�Y=3D@O�\�Z�7��͈��
) 3X�+9��)��F���I�`���d���Ó��U|�\ʑe���J�Ѩiڙ=1�D�g���$
���%�a\\�����/o|>� �t��
L�9h��%�?'����PF(��w�f
�Xݐ!������
/�r�X�6Ib�C
���l�{�&���	@������R�|}(R�\L�;y�������0�
�H��<�٨5]M���Ia'�aa$�@G,���FJ��kw�S�f��BĻ�T��<�.ad7�)�s��l]�XԖ!��	L�9�UQ'�:�S�	����d��A�u&�-v�D(�����
��_b:�9��6$E��6����HW2ߌ�W�����@���d���T@Kq�"��*������>F;�t����C�U��+��o`S�G��Tұ�&��[�H$�20V�e�-%܆h�
[a8]���������M��*36PVl��4@y�Y��ͯWm����ƣ�ū6�ꩧ�.^�v�[��R<��1�9���X��K��0&�s�tX	F�@Gj�;��۴�Pf��Ш�,��%�?ei�)��B��k2�D��0���~8z���a#@�h�̱c�v�ɗ���H��3�=�'�S�m����<(и�V���"����=��h3uH>��@K|�])KM�o����Rė<$�]j�۫����%���#x�Z��`eF;g[�P�뱟���=�I�Q��r+�FJ�*VB���Rp$��F�ELK �ӊ�Z�m5�Wh�A$o���n��N;�����ؖ�2,�X�u���fp]���/&�9#�#6+5T�P��o�fs�a�d6���G����f�@B�H���Wf�i(����;a���Z(�YJ�qִO��rA���b7��-N���x�D�C����Z�u�����j���R���[
�;�v>^�h�ٿp8	\Pl�(b7+�0��o��/���gZO�^��������`LVɐA�l�'+�>EL
ϳ@3q�,�������$^�xI�������RgL�>:�h"��*fɈB����:}!��Cq�R���N�r�
t�3m R+�زWȳ�\��#��G�M�#�[љ/
�h��.	�q�.�
.�{��ei(D���E���Ft+�8NQ[4dิ�D�tМv�.�J�թ�K0G}�C.��^FWH��;:�?x�I�:�*7Z'#A��!㲳��y2�/���&N�Ԅ�k�	ZEJ��Fۂ��EY��e�ʼ6�vg�-��D?*/!�90��m��KP��qG���:�?h�G�8�v�	�Cj^:O؇ȧA��#̐�b����\pW��AyI��$��u�t�E#W���K�͢Ξh� ���&P��h�j�]��а�(쐡?w]i���D ��eF	�j�U���E��qyîC�A����e����քJ�(�;��'�Ļ�{x	!။���)u����>@O�'@[Թ��\�I�N�	�L�+m��mMYe����u_��S�-�.�~��
ͳ�%a43�r���ީP�J /l>���1h�DA��܌Ѹ	�y��@��.�G��O��,`
�.@��m���&*��潇��1�a3������h��m0���Gl/+d���ߊ��JnEP[3�dG�����T��!�8�A,��$}�{������0p��m��H���?��59��4t���C��0���{�%1gg�SL�-IiM
�.h�0�Xf����ׄj�U��~5���E4
�)8��e:&	 T��@U,Vv@�L#3�LAL:��y��4����J3t����=��,ɗ�‹��=�����%�č{!�KGw4�t�])��3�2ԓC�;v�YQ��+߳]��D��_��e7g��S!m�ULI1ф���H:y�+q����Z�)�R-�5B�=�e�P+s�ˈ�koh��0��[}�p*:�:��Ѐ~}#c&)�:b�b�ˉ���U�݈d��;��m�QS	u3��h���t��r`�mӾ|O��ya�,�%�R=��]����gD&�W1:Kb�l� o���yč���_�S�:u5]�������t�W�u�K]��
�B��8��,D�u�x��No�3�B�S�G����?	��۳62�\�qwZ�a&p=�TΆyA6���5<�G��ó�išT�n�u��6iѪ�ҵ�N�B
z��qF�_U�Ψ���fc�Ϳ�J^�H7p �tG1���p9��Źk�@�����?G�7��]��#��$�3h	�0@���=ˎ�;��3}�tg�˷A�W��p��.�����\x�U��;���+p�|��F��
��Ac�M�Ux}PB�R���%!���U�����܇C$����9|�
J��5r]	�k��s�^awDђ1�V�=��Ĩ���*�x-���v~u��=؝\�7���=�PF�jV��>F�3#�I�g��g?��o�� ��
��(#�E9�����ؐ�>$g=0���tr�ܕ N�b�i�!ӻAr�NHMBJ�o݃�^9��@�w@N�Jh[���t`�8�R�&�r���G��s0rk�'i�Ri��\�ڰ���2�N+��2�1P�]c�$��u	@�X�)��HH�s� ֆBA�r�.����V���e����*ND���]�FT���q0X����}�&�
F�s����3�P���V����B�q�(�lL��g��a�aH�ګ�6i�� ��`�t�%�K(�5F�P^r�?�ҟ���R��#���25��5n�)W��$�|0���϶�+��p!�C�}!��X��"��Wnƛl?R<�^��DE� /�n���O;@���O�A1o_�RU�z�@4�1I�T�a�@0(&ݳ�f+�1]5�d��,�Rp�wl���"Z����ԛ趛�Θ��7��U���x�O�5�/[)5�4�q�P˕2�|�~��K��-X�����k��:l�m��~	C;���ͼ�>_X��rJ�<m�NL	���͎ X�Z�d
Dar�?�lۊ۵t�.=�F7=��2f��2�}�����U�!�xA�lxT��|믉��-ڸ3�M
��8�Us�c'�v�����	m����H�=��|�J+U�Mji߀��A~<�H�i7&8"]�4e�
�(�Վ�1M�q�A=fUO�t�lN]���J�ӄ��r��hN�
(8yMt����c"��}8�"�@�ݩW��)+�X��/�xU�#���lC�<sG��R���\��=�g?��.Lǂu;��\?���F筀��qWEs
�,O��T���es��(��Z/����=fR��C�E\�g�	�I7�J��є9�ل�b�\��X~>i���3��XL\���b�j��XcF��܊������p2N0R*�K[�$��^�7��5����e�4�����U�u��:������K]��ϸZZhfTW�Cb��_����s�WE��N�8��G��l�����B?E�	c�c�I���x6�_b���	(�'(p�%��G<7�p��=>��Ʊǀ��>^��C1dA�C�U+o!K �ɗ���x0����6�`�
��$���s��#�Py�&  ��ėʼn��--co�V�Pn�	�"x6 �eq��p�o8h(��(cD��?'	�4��B��4��9�nP�̪!����D嘅zܒ8,�]�R�P��&#o�@Ar9�*LFH!�W��U�J�zp*u�5"��)�B���ij\8�
84� �+��`-tYP�;ɏ$�n �Q!~E��^O ���e�g�Tx��gS�Jj�ZlȻ,x���s�t+��Y�Z�,!���u��5(��IO��ո4M���"����=Tm<�u�S�D%��z�����Ot0�-U^>�_S�iQm��
Y���u��JfG��BlIuǭ;��+�"Ұ�C���SB1�I�.��6�8�;C����S��f���U��a߫m�
�h(�[�|.w�|14�P�!�>y!e�s�gIy]ghb�BM
��ӳh����~�>�@K��u[��h�䙞��BX	�fmb�y��㖴��ٽW�\��idH��T��k�.��,U�0+��qK�"q5زra�!�]�DѶnczk%:�
�T����C'ϡ3��Joh"���;��<c���y�����|䢟����蹳��z�`�����o�>�z��m�	%�
/f|��cC+[���Ѕ�2<6/��в3�4����&T�)QEl�*y\1�i|L@�!)K�*�����A�h��}�F��˯>i��*^6��jv�^���0��OU��L�A1*�|�ې�K��_���\�Q��)�~�4'2b���#���e9�*�:�����Wl�ǹ�����~��U���X>��b��p��&�O���=�X�%ﴨ3�},ɑ3��m�k�b�����z�)+!~�M"�U���R6�0�M�����h���\4�[Z��	���,��Z⦱�g�L�(c��>
"���Sva%��+բ'H����YC�t7)@�����4Ϊʒ�Xu�>�JX�:���&*�g[ۙ�VC���z�����<�}���]Zɠ�5.6u֥.5�����_5]��t]�R���'�ʲ-�M\����7��}��Ůr��
I���u��/��
%8~�k�X�����R�R����j��E��O�g!�B����~�5'GGۍ�aЮ��s�t�����8l�ػ{ݤ�0�Ç�y�:g��#p1qs1q��4Vk1�B������N�/��00��y������7���J�T��^Um��|��8R�ݥ������?���Ҽ>�
h#�8BD�}�7�kbwj_���[;����z}�7U���xUwE
��W�P'{�qn]���鳖���75h���p^5J�>�{����P�}�r���q�f�EsUu?a��@��0h4��t������}am	]�t�ހC����t�^�7�݃�ܪ���a��Of��wE�;����RZ�B���p9����s�wU�J�)~G�z_t�#�6h`䦬����.�糋���rhc�p"���ǫ���uqlo��}�.V���*8�`.!4h`$׫_�����iO�`�4��u	�
h#���h�F
�mu@���h#�@�r	�h#��w;wl �at+A�&�/r#x(�B�y��r�n@�-@@�����6���y�s�h���E����9@�m4@U�~1�
h�h�xp��hp[�=}35h�h`�}\mY7�h�y
���R�++*���C"IEND�B`��PNG


IHDR��QVh��IDATx���mOSg�qg�@g�%ۃ��!X�+R
lJiiA(-HA`�j�A`�S�hD�sS���s[��pY�7�7���-K���
�.�&�4����ŕ��ϟu�
];2,ے�M;2x	Ii6��G�=y�@
�?Џ?&��աU4>1���`�KKK�@kg�Q���^�� @l��Ii;�m���SL1?��Q�-8

�_<�V�gڑ��iɳ��*�M�:"�M��
���q�����uo{���o����J|��'�b~L@�S��������Z;蠩�ֲ��SgG�O޹r�����3�/�\�2v����f�Ư8�j�ٵ'��b���v�L��S��Ĵ2�-	I���E��|g���)�z}���>�.����n���kwy��Y�3hO}Qς� +��~�
�O�%�x�5ߜ���ػ/Ӛ�n�Mۙc����ݕ_X��V*}mb*jNHL3N�֌f ���<��s�؉;w�8��[0:6��qʠ�f�,��C����TQw��x��H$�	�Ԅ{��6����Y��Q��
w��w��
uw:��Hu����Hw�� �s�<{ы��6^e�7��N+O1gW�{�O�\<i�܅˃��)}��U����&g�z�M+�Y��91%SY����A�SW4%
۔/�R_���G��b�>�Q���Y+�g-ܺ!w��Ueл�e�A���e[r����ӵ.õ��Yg�o�5|�j��)����w��xΗV��lɨt���U�{��^���\�y�G�����v�*��|kf!�Ҷ=%���E~������ܽ����w�/GK��K��t��C:=����v��m�)�_�x��Q�Ax�XN�c��1F��f�M9`��noUб�T�SEI�rc~�����چς����G��N�7��]n�����J��u��<���Z-�{+��g4�8@��-%��Vߦ��M�mq�Z*jM�R�'+=L�뗹������92R^U��ӷ��{7dz)'�]�Z鳧�rbz�:R��s�w�����jx�L?��+�>q�LR�Μ�B����1#^���*�y�=�Y�ʀt���tUa��m�Y��g�/~�>"�~���>�3��7��;��n����i9��(���w�~�[���د�gշV�:����/W�2���_��Ϳi{�N��ܒg������(��N
�
ۣ����`(+�ե�:
�����P�����H
�{��ձ���9I�Ib���%5F�]�b���{A���`��""** ��[c��{O,��~�$����|��Q�`rso��.��7{�����3���2dȐ��
"��z(u����=<���?��p�FI��'�,��\�M�������Z{LS����t��ݟ�=�0�����^�+{yz�� ��*�﫛|0T��N�@7�Ȃ�svޜ��	HGR2+W�1�� bl,�\A�/]QR^��t	R��,�3��ghf�R��ʎ��l12C�W^���E�x�b;���n!
ѺB��u��L��<�z'�¶���_��7���XD�NU�M�(�G�g���7�&��H	��`��e'+řZ;�OM-��w&UD�4�F���UXB�h�[�b��>�6���~�5TQ�G��U<\K��x��!0t#^��Uکԡk�N�خ�
��\Ο����蜔������;Gj�4+���U�4����9Ȑ!C�2dȐ!C�M	��Ӂ��1�0܀��4}9@�����Җ�ߛ�!��>R�kl�=14���4e��-l���@���}j��J�Q�ز��h����.����—g�_/yv��h��L��b�� ���]
�n����V@���5&(#7M��(�q�.��>�s��ƅE���A
e�7�	Kh�SHD�x��?!%+��*a�����20�"����ʐ�b��5&��jk!���~+���-�7m޲��Jm�Ϭ�W��韙��}{ux䤚���!�rN�|+;7O���9jt��&2���0@��$)�bV�&C@�|5�bs���(������U۶W�x�I�~��F��lC{����H��o`b>qҔiQ1S<}��J��ߏ�jh�a�C;�����JNͨ��ɶ�fF��.Z�|E�����Z?��+Ct��9��}�`�1[���L;gw���!C�2dȐ!C�2�q�
����k�ns+{�`n������o���sn�Ա��Ϙ�׮-(^Ȥ��je��ݼu+08t1i�]fϭaqs�-�_5@�)k�m��'�~J��-��Z6W]��u,#d]��1�Wg���1>�(0ȶ���?ԍ>P1n9º�~C,8ޤ����s���}`��Ο�D�g����45��&�s�����)q�e��#=F�	y�<�0���M,!}�>[�J�u�hf%��5��a��L�����Æk��S������Ϲ!a\N�:ffe��7k�"!���6�=�
����N!��mŭ;v�YWf���K���<|˝���W���v��ށ���-�~3�TTHyŞ���K�.s3[��4`����{7m�
C�֫_���AX�&�1��������5�f���?��H�����[3S����x���OD�$<F�	��

���h.�a�䴌���ة��Rr��Ǎ��w��itK��׮���w&��m;~&���s�~�y�q�N����Rӹ�(��������&0�<�4=���U�R��ܼ�}���@����#���R�Q��ZN��!C�2dȐ!C�2
R(0��7����*j#�����S�`�:��$���+�?܀
q8((8�_���²r�_�lH��y�6
nj���F�V�TA�XhT��S����bT�qE�(�%W|��U�6��`/%�6�>J�6-��?V�f�o��c�g�g�0��n�X�r���F6�`�I�V]�ߪ��q��7y@�\,M�f�8T��C���2CI
;���%��=}�_�jKm�����XR 2v��IS��w�=��*�����Z^�2.9�Q-}L?J+�h^�������y�[�n�ѫ?wG�8S�2�={ʷy������A�4�>6�
���$�|��O�v����5��ܥ�V����}ɱ�:k'���˜�|�c8Tc��T+��#��c�oѦ��b�๔��3<l8����\�
����'Gh�w�Տ���i��,������/����H �_�JC�?���%��s��mi$��Y]�t�����\��R�m����ӽWM�M�����j#��"\Ԕx2Dt9E�Q[��a	Mf6d�����nݺ}���'O������h�ܣO�Ș��[GW�O"E�N�ʙ�ol�;�O�y�/�Z���cn�_u��_d;�������!j#���RnxM��v��Oȥ1���EVL�#��&��򹉾���b�7j}��r@̦�v�Ӆ�) �M��h��t��L����R-C�2dȐ!C�2d4@̙�t��U`\�2�;vݻww�P
��@O�N��O�!���1����Ԣ���£b���;a*��Hm}(��h��w��S@��A���yy���kP[�A����SQ@׳π�Z�3�i�i���{��!"����ε ���_|9�]�n耡j��D�AE}��{\/B�� ���H��n��c��`���M�(�6�1k>������&��-�<�q�8~הp�vZ&-��7Ĭ��U'��.BH�B'DO���5�uۀ���J�+!bh��|PGI��.\�Ga�y�	��s�vpI���Q���g+;|���~��;pTϠ���L9xq����%�i'mn8��{�.�-mD��x�'N�L3ʑ3#�G�~��w�26��x:�`��m���f]�|�ÒS�׭�p����+*!����o6��W�}�	0�Uk֮[�	�IA�l�/*���L�߼y뉓�v��7{��ZzT+��%<q�$�G�Nas�|˲{��ٻ��n߾#-#�B��k[�q�椔�]{�9z�tQ�n���w��[�l��R_Қq�5k�=v��ᣕK�1�����{n�����L���A΍�ܺ�������s���Hȯ^�v���%t0 ���`����ԏ�������Cr>0�|9P��k��(�z�ǜ�2�H(�fG��E��}������3_<�'��
]#3���&����&93f�3h�N�P�W��x�@c�.rRQ�<l �~��1��ǿ���^�P@�c޾��V�9z�ؑ�G�����s����o��i	I�=)���q��aƐ��q��!-K�%��>�g['7u���<gw�Z�̫;o`4}9tb/%z�ps�S��-t��Z�2dȐ!C�2d�x��m�����Y���gŪՇ�
����u��J8Ֆ��s��S�wv߽w_F��n_�c���%�*j��N]{�jhA��*)]���7���²�6~�	CN�֫V��\�\}��o���X��c�-�X|�Сcǎ����g��=zu�򹝃+��vB�f��\����h���i���_}�D	L�sr���7Ǐ�ص{�����z�bYxd����J�
�6�k�m8v�ľ}�gΚ=Du��
���P�mo�l6����GZV�F�:�^�
�1/bg�����/�\-����ZӲ���Gjfʹ�?3j�4��Q�����k�j\�����ab�w��1��%�p��D���❫
�����mh����n���F-�8o�V!;@p�+�X����w�*^�))�̱o�P�˗.߾u�bI�H�?68
���>o�l�²Eܲ����D7��W
M��c���"˧$�<�?p��l/]�]3#��cC��P���~zd��֪}����n��mdf�x��)�z��~��bk֭g0��U-[����~;]�}�JM���n���k�8�ݻw�Y�tI�`Ξ={�
�~��9�0
S\�߻ǥ]�v���/_A�̩�<G߽s�c�8p��)��@�Д;YユWTҒ�/n��y��]��3��0[Gh�M�k���}�6h|8	�H��Ϝ���5�覬%Jc>�r���ib�A~�LK��g �_J�y
F�Z\^9����׍Bnja�m�Ӝ���Wr���sJ��v���,D��I)��&��7�S7}.�o��
����_�����dv*K
���ʾ�U�Wܹs��|14菶�8�0r#4�4t4o_���5�9~�$)t��/S����P$��S��s��#�o޺=p>��n�������y~i���``jmbagi�}����D��1(,.���4݊}���Λ=��4��!C�2dȐ!C�2��|��,TW�@�j�		���Dv�ӧO�~A!ᨡat�N�A=��^���ԩ�Ȝ�ԺX�1.1|���l��^�b���,#�W���bҶ��3q��=�ɬ�nj}��!�|��w��~�:�fH#�M�3�s��%��O�ݹ{�����n_�J�~~Fy���/^@�n�x�{�Jf�S����Z��͛E%Q�S�ټ��!�>����S�O?~��"B��
h;e]����V���Ȼ���ǣ��Km�����_
OE��k��b��oS��{:}����Ĩ��i3M���oU@�ߢ�fq-���,�)��չV�obVP3d�Bm��#c�8��B��:t��h枓MI2漣�D��m`ZC��j�s]x'�#��~�2h��8�q�[4�X�t�����^��1J��X��s!�˖��t�R����m���;w��ݻO�w��h�����z�r��f㦵�7@� _��۷n��?8%=���LR�*��6}]���駟b&O�CPo{�6�]�����?0�Ͽ�;'זm;X�8:|�1
�>1:��v��Őm@z�����xx�P��2�j.M���Ga��h��Gj���he��S���M$t��i�>	
�+f�>�N�1����������Y��+19Mh�!]�~�����8(p��]O�<�3����W�ZCᴌ,��q�\�"��O���� 9��lO�4M̪�+
&���hQE�[���m|]���Y~�h���gFv����(�o�Lt,��$0h�tM�9�,,��n�
Ek�:���Ә��o�t7^�t���\����{���Gj4C8��`���/,�d~�J�޻�j̀�%�9r�a폑�5�Lx��	��C�������U\LiA�߳!�l!� �A�|������*n��:�@j}�Y���Aː!C�2dȐ!C���ϟ=;~�tm/�����]��H���!������">N����9Ӱ�1����U��{���>z����W�YC�0�%�={��7�`%*3+�3g�R��<5^�j5�T4s��Ga�_�4^�P��Nc��GPBSZVA��& ��3o�1�Fa�jQ�>��[+c`�D|���z��ݶ}rUd�X�@�*�,E��;��J9���'�
äN�|��5�������-[�&���T@�(�}���N������c+��

�zx�ϩP�c~�ǃ���\���ڧ�oeM��7S�b�,8 Ȱ�� $H��_ܩ���0i3�R��@$19e��� `Ց:�K���kr
�x����r˚�z�
u�̩�@<���Ƌ��X4Ă��c�Λ���3��vk�m`�9P��9�ج|�ŗ���g14����ǟ��@�\���,�������/0����~��FUgΞ�}�η�����e�����& (��?y��.��.�h�i!`��a(�сj�a��� v��iO�Yket�t���,ڃ���$9�
�"��3���p^�,�wv���y��Fu�C'�;�#��#1��k�Y���GJo��WV-�퇄�^De|E��n���…q J�+rW�!�F����G�"�ؑ��8o�odn��.�(�F�U�����c=�ʋ9jQ�b1XB�.�ʚ9�a�����F��$*73gw[�鞑ѱ	I���w��5���zRw?#C��hқ��`҆�ț5���h�5Õ��钱S��]���p�}�q�`{M�y��g�?s�c$	�)E�9r옰vj�%�1��F�jr�x��ZhoX�ӝu�gh5/O�qxqp^7o?�N@��c��� C�2dȐ!C�2d4@�;w��1�q�
\jo�����~���+���2���҆��07X��.���G����7��?��1���x�n���<@~QL�Fh�q��Pt��#� `k���Ѧ֐��������8��
.�^]���OF��Nmx�"!E�'�%��	ѱ�Z��#ū�q���vb�d����hS@�I0F�	좝�$@&A�,��ں���{�\?����R۪���������x����"�fadLw�	����hi�m�a3_uthSt�!ḝ�(�O�����`���:N�hD����ѥ��OOJ��x�	\�rd�‚�knJ�q"�=����6�
���G��(,�xCtJZF�Pڝ�v�S\8��:!*�%����fd��LI�oz�+WP�.��gڀ	��!e����vS�S��r��aۗ/��%�ୁ�2��:��ҲM�I��їPFs��A�,d�<Q���H2A�.*G�Lˆq�����n��1Say�����%�v������
�a�x�{`�A.rlbJ::�z��8/s�K���C���}�l��˵�� s�W�{9/�Y�?iGr�QX���S$x`��N�K۹s7�����K¯��̜SRQ�c���c\��'�>:@�$��PB���3���bU�N��
��w�Ykt��5�DE���j�Ռ4@?��<&=ܺy��͛a��] �gn$��&�D
�L(YD'�[{g1����4q�ޱs���[�O���s�IF��ϑ��7h�p{/ƺ44��ãQ�c�L��E�
�5���7 2f:�/.�����͗�Y�2dȐ!C�2d�h�����t
	����#c0+����큃��3�}��55r7O��
#w�,LJ�	�i{��V]���`�<��W�B��f��9���_q
����>��cDž�(��Kb��_�PЧ��F���4R��<}۩S��ٰY�������F�Nd	D�7�`��c���D!e(�*��=�}-�O�7wH��"��:ܦ���{�Z��ok=%m{�Q�Wwh�w�����;�ߥ��a��3��a��W�{��O0�@�����N�A��R�gVT�B�HI.XECSp^-}+;l
�\���y劵H�z���7�$KZڻ$e�
��U�oY������z��c�/����̚[,pe�&�%9��
����m�I��Sx0�.]f�?v$���%`X�e�=F?x�pjR�^�x~�I��,�\�$��k4K�n�:�'�����D�(�a��#&�e�f�p6.-��00n������h�!���u�+.)�Z>���;���j�0���LǑ����g#�@ӯ8Ph��佣�L�����E�p訁!a�vv�6�v�V�h]�NK@�ȟ�-���|����B�Iێ������^��T+��
ͬ�ōsb5O�ۧ'�#�%ƅE�E�^M}
��P�ϙ_�ob)����+o8��n�!�w���N�c��+�qON��	���S�hr��ѕUFE��8x�(<�c�%�S�u�X�G���W��?!)��p�r	3�>���v�,
�%��N����[tOF/?�g��C��nr
_'D�$m�B��Hɜ�����G|r:h�1�(���X-}��'5�6"c�z�}x"����� C�2dȐ!C�2d4@��TB��9�Ve�?�تm`�^8�+�q�=�������nb�6p�@5���PU���&��E����q8��b�����E�5���(���^X6���
y��ʬv��M���1��$c�L��~1��n_[��+V�Q(�+/El�J�u-��p*�:84�
���Z��>���~�n��k� ���;��W6�j��f�㇚��W7����y�`��v#S�g�0<�����o��K4�,8��]2�fa�B#�z�2�2N=����rZx�&�fe4�
VK�·���"�N��r��	��FM��z����7�����!�9��w�+�1]LZ�����9�Fh��4~ͬJIڑ�P�Ҳ�[�
Shq�p޸|�
$���5ԫ��¯7~���p�18g�N����S��žYCSM%�(�Y��p���۷@�ػ|�R�lwv󂉣��������݌֚[�3A��p���,N�����}���[�l��C��!�`��G����@��\>�%N�OB^�Ң��10A��p���E�Itf@`C��I]}�\M��1�
1�>q�
h���K`�{�oi�ДEU�Ń~�E�K�=G�n2��F޾S7\PB"�
ͬ�~ޛE2)/��М�.�fr�!���R��ȁo��L�KH�����
}�CH-� �l׭���*���r��wL�xv�Z�
��@̓#�k�᫯�d��|t��)��Л0K��Y+����ef�q�o���b	kl�e�����2=��1���?/�0�1��5�\<�A����([�G��3��/hb�t��)�3w@��f�܃�:�0���d�v2�M�DIc�Q����U`� �E��4(�7�*Eb�K�����Ԙ�Mf�ESM;M:��T��8Icۤ��v�ɖ.j63�o�f9��o���,�w��*�J�R�T*�J�R
@���	�f��䎺���x�$h�:� b�c�g��H�eA�����;F7��FJ�lM��k:��a�doH A�d����DB�$7���ƾ��3.�ag�_��Ï�`���i��X�.`^�
	߀2SŊ�9��h�}�I�'O�+�!�pxؒ�BR:������ǟ_�y�y���u�oz2d�cx[lʕ�O��pa`BFV΀4��58Kb�\/_�νg,�c)t/wy����|�f	�;�5bZ����y߁�鋲'y�6n��@��!�N�I^��Zf�'������O�<��=
��ٳB����@Ė���m�N�M:Ąω�
�^>�w��Tn�\�x���Ԃ�|�++�Q����|��x~��@76rV�g�d��L���y�����qUp��ا~�W����כZZ��J?�#�41$�t��_)m���{�c���7�� �k�O�/_����{h�1�,%�dLby4��Ǝ��\8�b���	����+G^�4�X4��#�|�ڻ��o^h��^<�5��x�RR��L8��(��$��=�wi�
�5���j'�qq�Cr���w�� �e:��فh�p��\�iO�a���$�R�����AKۮԹ��>�x�Z����K��b�Λk�8/^�rE�]��)V͗W?�.��:̳�Yr��*£b�B��"7߹��YB��(_�nuy凿?oIH��0������W018�7��O?��;@�D7kZ΀}�F�mȃ�A'ϚG�H@Hd^�J�}�L
L'��B���r�����J�R�T*�J�R��'ɴ�ֶ�R�)�7��~�s�k�X�'��o�mQB�]�v��e��j���N�!О7�|k���@[CPLs$ay�J��x�X!#��o[�a�ܻ�QawûI-��cl�	5��_��*�ycG>�|��ܒ�<޺v��-M[�� �@�f.c��B7U 	�/�V��n˿��w���>���P.�o�G�E<���[���Ǧ.s_<bj֨��a~��S�\�������a��%�����5��:�.�푃;�6/Xr[�x���n���`��T�HX9��%t��aZa�����R�3���J��^~F��Zƻ���0V:�:q�,&��"8h���_��c��t.���T,���}t�#�ʲ
>���q�м��&��;������-�<`�l_]Qɍ湮��_�eƟ�W��
�:��1���@��6$��;~d��߅C{��)�-bKgG��@:y�s�S����k�.�Y��+G��X�Y��d(9��K���ֶvk5�x���}:�0�5'���£b�tŋ�M��cT%�V�����ay�q��e/.�-M-�Ϩ�A���X{҅5�YWU���u�����:TP��G�	����܂"�h�0r�$�F'�LK��iY�"�%�q3�bH�HL	��{|0͸��W۰��e+���q��
Z-h�,�5�0��6E`	zf����ʍ�����LYB�� _�/L��Rf�M�ŗ_B��^X���Yź
�,�4���A���,O_�����LL��x�g�}V�T*�J�R�T*�ʞ��l3�����B������ ך�2f�|�%!{xX�]x�H�a2�L�=v�-�5���%e!#s)O���3�ձ��b�Z�`dtVQ>1)%
�ˎ�7m�����}$����c��⥋�HvlL�Uյt%p�S�岖���:p��sd��X�h��_!��S1��o�&��,���U���m;�y��W��X�'%�a�)y��@'����=�!��GV;��B��4����3߶��oOl=]0�yb�ڧŸ�rDȾY��Wv�*�t�XFV��gݼ��mpd�h�H�7�q���I���o@X�y4`���
��
#!z{G'���Ќ�=�bp��	o��Rf
O4\��cZ"<!��2}db��n:��GuK��,q�ٟ:m�`\�λ�re҈���ڲ;͘F�nM�ڦΙ��B{� ?)�	e�IM'�<}j��S|R*(��G'g���k�!��)�%(}z�D�%�˂&�"4b�h���==޵����aI3Ө��H���H������I�[8���ȸ�d�qxdL\R
G��X~�̎dt�@`\��H�y��ѹM��2Aڳ*��qq�����>0���nn�t���i�Ϡ�u���}�C���fw�3�FL�_`HTt\h�I>���y�h��\)�L
Ⱦ�3�?���Y-��Q���<��Zb�2?R
��	n<Sú��0�0<DÂ콌�ͽ
�Sbʜ����"�8 �}V�T*�J�R�T*����e�M�i���a���p��l��L�-�B$�X�����L�(���A�B��dFÎ�p@@,���!$ qf�8�\<��q�ܡcW'��EY�l�hǠf��*V����,��G�*�cނ����|�	9�0|�kx:C�s!��ّa�p�����9:���)2E&D�)��nV�� ~Dд��sN�?*����'B�Gz_fʈ����
����a
�Sw�%������ڮ�
�*�
���[hDQ�	��X�Rz����C6y��3@=�0��)�\TRf��D~1����"���@���`s�$GQǦ;ЈSH���S.���$;
�`-h�s����'�8l��N橼�3*&��Z�3|V~�b))-H3�o�����Q:a/�)��O�"�/�GzN���~�W��Ko��o5�|כ��d>�7��:��8.���x��~0{�"�k�V/�������KL��o�5=�O&w~���yt���L���>��0��t	6���Ӈ�b��3���D
������dG�a�%hɺż�X~��KH�����M����%����E��B<p@YT�}V�T*�J�R�T*����$��	
�	ں-7A��lӡEf����3�/�L1Su��s�A�NY���v
��Ma����)l�*�yW�A~(;2l��-���M��Nn�k]����tׄ��B�<_��jd�E�6�y��h��ϊ1S�dž���JH;Q�Pw���u}x�s���h�e�|��q@ˌs$s,n��3=y�Y�ȝ�g�.��K �]{����2�\=}�B�4�����4q��{h�2d����;-n�~F�π0J
:��@�6a�%:�D�er#h�x�_��S�n�9B*yrZʜ���`�y�y��;_`�
}f�к	�S�+�W���cL��{d�ItC��fy҇oK�Ϛ��R�T*�J�R�T*��$�?.���
�?�v�1���q�>�.i�C����Ə�2�7i�W\��~�~��]6���g�r�L�C>i�׏��d�<���O�T�xߩ�����O>x��Fp��-yK��A� <��[X�����y������ӄ���3��ؑйO	 h�3�٬֎--;z�-�m�����q��W��EY�t#=���=�
rY�=BM�
+��
�:D��螲���,�mC�n�q�hf@s�U*�J�R�T*�J��k$d�Y3���'����z�Mt#ăx�!�8���+J�����痭Y\�<-�ji��
�*���d����_�SR�S\���Z^�mcuEAIMY���];�2��n��W�^����,�I��y�<E)�����n��I�▛����M�M�mϧ���7?툷H-!�%��"�)�=e�NZJ��}m���E����{��S�@��n�m�>s�
]��A�*>h2�I�>�E��g�J�R�T*�J�R��2	�� %�$%��C$"x(��=���F7�7��#���0���2���!�ݟ-����8���������m��������tbmed��K���r����on g��o��ۚ,Ÿx�$-ɳ�Ǥ�s�D�к�I��6��~H�B�!�5�Y�R�T*�J�R�T*Ր�ԯ귄�&�ʕ+�E�"̿�o
'[��¥yd��&��1��
�Z�T�~H#�����J�R�T*�J�R�T��:�m9�X��|�����=�T*�J�R�T*�J�R�T���w/-Q�q��i楼TVD.t�*�LQ��P$I����=��
7�А�Ұ�(�9��E=��:bY-:�����/����;�5�>S���;��V@*���Eq.���m
@Z�0s��8d
@�蓝�Ti�Q9;��;ٹ�࡚����HK]S[M}3�
+���5ť���Z��\���Uw�mo����le���Y;�I_k���W�ݿ�?�����Vσ�G�F�QX���{{z��Խ}�=w��������|��]]込�܅�k7n��`x���JEv@S�-G^M�.K�$I�$I鵞$?g�ڭ��/��j9��~MJ����fy�$I&'&v�rrr������r����l6�h��@���O��J�%I�$I�$)��8�Fѻ�����J>}�,,.///�Q�g2�b�������.�8~����466633n	#ܒ��쀦Z���Z\�|�%I�$I��+��O��-Ke��r�0�v�P�/���|�I�lO��[LMM����a�4�z���(
�J�F;�������$I���s�,mE���K�D'qQ(�
V��C�����
n�`�FCA�!��"��K�$�!7��M�6 zC��y�Ӂ2�8\��t|(@�"n���O[�,t���9@W*�(�Rt��	�)@�0~��	����h!@Щ2���hh�?/�M�`��J�6�A�t�lt���<���	��t�I���q��	��}	1�~����'8��6�a	�'g�?6�q�{�<$��V.Rk�M���~�^*���	��/�M�`X�N��ql��{�������B�wߴ�s���|>*��	����[�5>9}W�������م/�:�ߙ���������W�o^.�&I��>�!@��?����;���-ٿ��%s�K������d�
�	5�Q(m��B9�H�  �mPq2+��{�IӴ	����<��y{��/��H��]k��Ws���@S𷛿ߕ�����zbj:�?(1yd�a�9��26>���V�WKk��d7X]F�;s�zk��'�K�
��
�Z9������KW�z~���o�}qBgqx4F{����s�_�Z���*��&A��Ƞ3;�v��w��t�<ivxң�8e�t<��C�@hU��F}C tS8���^_���36�I��!���Q�1

'	I�g��șe9��}��h�ɯ��s"�ffv������\_�Kٗ��p��K�8Kd���=SR�	�>����pt��l/.�	���S[e���\fiye3�z��?V�-���-��!i��0��}R�[ۻ����ȩg�Qs�ucSs�_�f4�5@W�{�'�f�O�LLN����Ar��ֹ��z�K>�i��X���T�ku�Y��4;���I�|4�H�3_��*��:���|uo��}�s��7��0h�Я/\�&;1��>y��3;+*�:�#�pw����/��7=;����⁡��{FFc����Q9���EOY���=O�h�!@ ��nm�O%���ꋵ�e���ںta�甄T%Er�����sWp�6�@�V�=w�:Ԇr0-��@�ݥ���`4s�����,W��ťe��W������Ku�,q�D%[�
[\�VWi�Ŗr0r�m2�������!@��?>���յ5%ëW�g�WjM[�`*:j.�ʪ�zKA��Pk�o))�ﴩ4ƶ�n����=ѕ�Xd�}�1~��ȟ��(�;��
��Л�ͱ��U��d������L�<��K���h���k��{"EUI�{cCn/�،�g�/ �YX~�"���6��+��O�����#4C���w�Q9�}��=�{�c�TҢiѢH![IQv#�.c+ɒ�b4v�%K��$�xmM���Dx���R�G�2��s���8�I�p�9�8�s���w���N��~� |FZ�lN�4%���̿�]e)8�I#3KC��������^��"ZAAAA��tj��>��pQ�4����F7�׶�}z��ԣ�w/_ǖm�L�46�2���UЂ � � � �g,�I��y.���"��D@W$4~���}�>�#f�]�*~����k�Ǯݰ:>q�U�!��yx7nb�R1kYv�Z�E��K-?bwcu���hAAAAA�&���5��Kns���Q��o�>1e����s-mbe���ʵ�����a�`K[��Fm[#a5i=�54n`d�~*/C��K���]��v����έڙY�~Wk���ֱ���hAAAAA]#�I����{���{���X���1i2��ܲE�vKW���ͩ)[w�n�5��9��-���� ���9rf���f�n����Q����5����Yed(Y�����ݒ�
��v������WN�9C������74�847�V��t�hAAAAA]�4�!�9�&��y�ȱ�� ݌u����`	_бq�nj����aneW�\z�&c��>yR��^�~}��k�ɻ[e�S�728tģG�N����A�t��o߾s鿗�\>|k=����ǎ��.�SὶW��^RR��z����g\�%��y\���w:n4���&���������u���t>��p���=T�AAA��hJ�2m&�͓�"��4sn�d�n�ɼA:>�ݘE�1��O��������&޹������Qc�&͘5;m����ׯK�ge��iϮ4��,J�鿤Nndne��L�"}cs��?q����UJ�@�О]�ߺ�w��%k{'�*�ʋ�6kX�)-�֍9�	ǵf%u�Vl���ފ�Y�B)�����Ԭg@tQq��#GE@�-\��j�6lɯ��*�pb\�������KIMۛ�cv�5��>M��)V�U9�L9߇ee]ؽw_RJjzFƵ�ځ����3�BK�u���è�%��3���p�|��}����]G��Ͽ��*����1�U>̕�r��ռ��q=�A%� � �PmQtv�
�)���G�]��)h$�[���;����w�P��	IHg�Y��;�I���ӳO���	ɬ\�d��C�k���q�թS��40R^��%u�7p��7&4�P,p���G�Z3Q�o�6mւ-1��:b���/Y�6έۑK��Z@�4�
��8f�����w�(����:i�����!DŽO����M�$��Ur��09$:fyشH�n�(b���_��۳/�C(
	����פ�
>�
{�tǧ���b����4���Z�������u�7c


D@�-\�g�t��cdf��o`�-��7%%7m�ܽw��5:�_�[I+�(z��������ע�C��{+;G'��Uqw��9��S���+L:Џ�&���p+//f���^M�1���5�d��Ys._���s][H�O>u�ŭ��i����:uv���1��?�s�:�u�
���(�ɹ�`ђ��<,���wz���ݗ66�͹�8x���'LPT�|����|��C.n�:z�8q��*�^��1�OĬ��J�hή���_�8��a�R�֡ӡ�Gޔ
� � � TS}�qɓ?�� ���4��
�Hz”p2l����ge!�y~�r;G���)	�o�4�|��އ����>}F�L�XX���»r�[Ob��;w=w�<�9�=�.-�ۺ�u`��Ӷng�RTZ����L/B���ݻq�毙�(R~y5;�k��u4��ҍ�ׯ� G%
E�E�C©��L
	c�R�/fyl+;*ine�&~�Ԕ��H�����!,�GѢ襍L-�mH����“'OO���N�2�����_΢�0�|zhx�r���7�)
����SD*U"\5/�6yW؃�B0�~��r�Z�Ȕ).���~�R���Ac�=��\Z���~b��tSR
S/5���Gh��.� �vPό\Κ�������GJ;�>-\�!�_�!�(B*c������&s�'Q�Ɛ����w��ǎ��H_�yϾt�(CL�\6��2"�G=B�#i���@2r�35u�Ӱ�c84u���
UU��/�e�����)��P����+gW�>3�Y���>r4�M%� � �P]������)@0��n߽[PXRu"��Z����vm۱<9�cb���,JԳf�J��O$&���ɡ|լW<u@p;���ָo��mrrr�޽Gl2��t�(�>r��S���Pb�t���W/�`MH�q��'O���'�qa�;w��`/]
	��3�����L�*�uş�K��:�}�N���}�j�7��|
�9)��%KW���ex�l#n�}�~������]��wxR'�6��iw�%���"�S~E7 gW�\36p�r,��8A�ڡiXfMp�]���L:E���'��f=.����hv�C?�ې���ЩSgئb��cȈQdDz�,䪸����q�֏	�����khܭw����2G�d4�̌���Z4����L�殸fuv+/�a�g���W���"�Z�$�l!Z���9�N.���&N)��!�G�[ɒ_�4j_z����b�y!�O���5k�/����g%Q]�FAW.'8]�?:��O�'O�_�N�u���ܫ94�0�ŀ�Ø]0�h�q� 竻"��O�I�Qc���F��1��ο��3Ģc����AAA�1�#]͹��d�2<�M��s�RNZyUX�"��J-Z�\�1b��C�I�L"�2�_<�6x�h�{�h�GF�S6����h�a�ԘxF�#��ԲM�u��
�"��4Ҷ�s� ��u��W��
x|j����vtAa�;��E�mh���ef���u$���h�3��[�oـd�?>��F/Em�O����T�.G��l�Om�ͬz��:�Ɂj�i��֝"�
�ɣ����8 C[�P_������I�f��k��W/_����
h�'��όS�J3�u���<�zZ^�E,�?pq��lH�D�VV*�N\ɻ���)$�w��8-RL�/T�����Jx�a�Xx�#��������5�Y⑙�1T�@�sjy��;3$�T�Դh6�*o��h���໊���5��japqG��ۋާsq�q����ځ���־~��V��'%�� H��LWrg�Q�~�N�<|��լ�V�{Ͼ���Z�rk�{W����v��bRK�*��(//ϹU[.$[Gg�KY�)�e��7+��=T՝�D^l(������J�<��L�L���c��mJ[QlS�P�( (� �*(AQ�$Yr:�C�$#H�*�H�(A�T]�o�|�Y�{������]���^��Z��]�[ѢE�-Z�hѢ���1'�<�s��_���o�9��߰i�N�����ɓ��QX��Az����{]m��%�9�x�]'Y�2���'�.[�+�4hԬw�!>�9��d�&�n�bs�W}h�>�\�.�����g�x���8 y���[���.�*=�Aҫ�^4�q"
�Z!uܐ4��cG�z����;�k�
7ݖ���5o��&O���JdF�7x��ާ����`Ϟ��Ԋ�m��O��G�s�@�F,.nn���&*Y�L����Q(�PՐ�����Ξ��8�BƑ�U���7]c�N����d�#�p��쏠��$�Z<�j k�[����rU+H��
�����2+C�	is�P�ə�9ҨHR%%��LΛXc��_Ob���%2���.@��
�Z�Ϝ�
K��r~�3����f��h�@o��D�P�����J����@K����@@EKcU�,�!�O��M�.Y.�#�"��_6�U�R���M�RS���N�"��l��{�	n��[|��!��(Y�K��ъz{�"���*)[eE+��1��i��/Xե�ڟ3Q��Q�~����%S/njNR�h�?]���G���
	B�Y��D�4$4_Yz�72LZ��Q�!P�P.S�P�ЫiLVR����=�T��:*�u���L�
�#虸%�_�C�d�#���gD(����[$
QA�Fo����hѢE�-Z�hѢE��1?�N�>s��$ܺc���{~�/�'�}䋣I��/e����EIp��M���Ve|�K��߇9;��F�"�}�|-�*�����ܣO��
�:p���B�:=t��~oK�q�9{ԫ���غm{@	Z+
��@;+�B�e+Y�������w����5�;�K�)v.oٺMA5�ԣj�|����+f��*U%6
�(4;Z-�J����Xޢ�H�raq��.R�T w⦝Ӆ�������zޠ���x��l�
*�L;v�:q��=z,d�_$�Q�Sߙ>`А�=��������SIp+��pgc���#G�;w67�ݼu+��=��CW�qSޙ>r���A?;v�T��G��I��Q���T�Gv�x�_~w�<�����}����9
j��9m��}���$�p��m��)Ӧ��ѭG/
+V����2�O-+s�>
7�HA�6�lҜw8 M�87������'��,>y����s���LQ]a��j���A��DW�Y3n���}����wĨ�Ņj��07�nּ��زu���^}��7#��
MR�$�l*zz��og�H?;I�'N��õ�K|IZ/X�M9f츭[�!�� �=��2濷0�y����Rԭ[�ޡn<��Q1�t�r���w�V1r��9�-�]$�%K��7Aj�O��Z�F}��{& ^�D�C3Gv��sX����X��k
�O���f�՛FąB�aQCP�X��2=(c�A7��m������K�+�I�u{��z;r�Ü:}:0_�-���N��t;^�ז�
�/�UԄmٶMK�7~׮]ኧP���M�7;���|�K����e�ğ~��ISZ۽gom_�j
_J�>^�b՘q�M=��>�c�'�O�tޗZ�_�A�0"aWê5v���3'O�����d�����T�|�xP`Ĩ��b�R��x��2߶m��)�񵆐��E�`��^�l���g�"u����)k�G��2{μ���pH�N�2����Ei�hѢE�-Z�hѢ��YN�/�_���_@���Nt�~4��o$�y���5��/T�T��C[���ua"�A�ٿB�4~�����>^n�"�5~�k��;–�V?�μ=vh[���F�w
��
�u*^����>߳O���vi�hh���O�}_6�F^R"���}O��J��p���So�������9'��qgL\�Ո~H)���WZ��4C)J��7�NX�x�r5�.Q�ܞ��0�
�EdBt��/ȥ1��!�y����J��g�t��/��lo 8���ݾ}��aҢ�"�.�L�%�'��N�g	�#>!g e�5�\��sߚW9k�	��[��<���[�p����˺���3�V�$>:�µ�8��Ad���]ڈٱUr›����O=�q�M��;��Ï�z9�O%�/���y�AϤ��⤦��t���}��weʛS�������g�nB������^��/P�	a��=�u�t�R�:x�3bמ=!Y0�<t�p�V�(0�%�4����q�f�S�.�8.(yy9K����B;u����jbh��eE_���+uZ^�]�QmK�����e�^w(%�i� L8�#��|7�:0c(�y�����p1kL�\�:v�f7�0^�w�h��+d^ho���?\��j�t&��cq�d����Oy���Z�>��c��A��U���aU�>c����%t�׵7P1X���8�Y�f͙gஹ��e�éi�l�V�VmT4h��6���8�������r�>�4]a.�s�Ru0뭮�Qj��+++���?�^��r
==}�^vſ`��D�,\l���?\��a
�g>�O0^�z��-U�Ր������[��:{00h_=D��B��[|پ��eWPJ}�Iۓ�2@�;tSFM�9s!��_%S���|�;3�b�XӨ���ڥ �*��]v�����N��r����&cG9�.����	�W
���4�Ֆ�+y��W�V�м�"�T���V?۴��6N�hѢE�-Z�hѢE��?Y�#薭;`�A�9�ߨ�X����N�:뭾�n+X�e�	�F�%Ƭ�T�y���K�.BK/�Ғ�(Zѧ��j�׮�T8h�R���o`P���
2��}�~��<�]���v�d�S�@����_�~�Ӏv�T�d����Fv�6����ߓΫV���B~��~��v���y���P�Q�8Т��]úu�$
{D
d.�mNԀ��t�|�h�:p%����A1����.��_�;wY��^y�14�"A��]�x��,��'�g9̵����Ɇ��Gs2�Pxk�ۿV��x����j�?�r�o��
�+�!>Ttg��kc�����Z����B�@����]��
�p0�C�o��M�J�β�ؿ#s�0��B�F�#O���Jl^���I��1�h����	Э+iZD�M@+w��-}�Y,R슼׆��`65�Om�0��J���C��ą���ow�7C���#��k�nݕhM.q_9\O�o���ĚcjC�rikqΩ& �}�**WV�N�JA�w�f��uмT�&X9������NVK�+*�ڢn�	���(X�%�֩à!�m�ء�͠�����M
e��L{`�bʵ���2�u���&�V(�-Z���w�N�Z�&MXs��t����^�qW�J��ܦn�r�{Ң�if�^�d�F��i�N���M[��z�A��\֊U���|�٬��5�*V�fbr�׮�;hBjN�����r^߿}�o���E�Bu��b��E��[�P�z��3�a<2G�~�v]���klpP&��@W���J��7��\hL;�@
m	$/�R�*f�������A�~���C��U���5QlNx�MYۓ6ɴ�T���:��|7�[t���g����p{.���1e�.u��}����"�>����(��qȐ�un_�tY+X���-Z�hѢE�-Z�h� ��	\p	�B�jc&�}�š�4������{��.�1|4�F&U�k/@�)@y0��={�5f�k�Bw���/`�����܏d�������&�Ό�L���&}�i�0I�z��[q����h�@�I�1�~o�b��r��|�J5=�&�D�yX^���<p\���-�hզ���)��<��VC����v;�2�9�Ҵ����i���'迷|��]x�6[��[�i���(�ht�ݲB�&N�zu�Ѥ�C �_��7Aي�1+�7jL
�㵟�h��8w�[�(��3Aj�a�4�$��&����W���i�w����7`���gΞ��| &`D%`������E�<
 1�r`�ҦZW���ۤI|����L���=�/uS��{��V�0.�z��5�[�HM�'�j����[�h��G��
�G)� n��:g3ɘo�(KX����cd1����"M&����5hOb��h��{�|�9���u����<�*�I=�@D^(:�jk��u���[]aR�%ԫ�3����q���"�i��4.n˱�0wV�i�.�:��`��厘S�j5j�<Y^���Y�{�A�7��d�&b3f͆5ٲ��FGJ�w� Ր9��F�7�١C3g��(~ ,�$����J��$��.���S�y��\1A�	9o�y��j��=��43Q/�.��"�=���}e+��b�3��u��]�����4��c��A��d4O����h�z3װ��[����i����a����6K�޾}{�_�Ϯ�д�|���2��F+u?�ն��P",�b�*��ΐ	��ф)f���/�@
KC��X�Jv��%��
7X�����kS/O�H�I��VênV�%Z�ݺ3v+}S\�3n�m��1�
��c5M�T�L;4��|3�����N�g����p��^���'L:��!m0�t����~{�Bg��껳�|'P�l?�p�o����Gʻ�ېUV��#�-Z�hѢE�-Z��Vtx�u�N�͂��� �]z�x��S�<? #S�s�p�	Sg�z��k��|���5�L�N���͆`@�@���3tAH���8>��>}�ң�u�OLS׮]� }��[�4��}��c"~��e�?t�	oa���:�e���5%
j�����x�ud9��]�';��5��%�|�
�j�.I OA%�+t�88��Bz����>�:��lmp��r�N]�@S��z�X����m���ÑJ�d�޽%ʔ�{�Y�R���ͽ�~�h�Z�8�[��rULǍ�t�ȑ��sh~E��m���6�(9*V����%ưh`�ȓ:aR�\ʔ{�������m�79$^�Z��D�C�/e4i֜����"�@���E��^���#r5Ẅ��c�h������7`PHs����K1�t�p�:Ur���u�6v꣪k�Tu�S�R�ahtlZ�XiuP��[��@Cvv��L�Lo�����BA��ʛ�X�R@��"�qm�Fsx��b�^��y�9=�V�jӂ�K���<���
U�$O�0���q�~��-iYs�d�g���y@��#F���p��3F\�F-!����)�':|�A�8�'_z�J���p-�V�y��N���fW=�-����u�QC�$[��
����Nil�m������ݎ|7bܩ��	жI�+�.��� qX-}v}��r�
��jT���ڰ�l �D9�|�}Ȝ�D��
o��.�#+�-en������٧�*ˍDɓ�(�s��:�j��T,8-E��EK�=�
���nj(uy+	��:8mH�@k�-R�)�pW�b�S��>��X!��=�ޘh3�BE7mڜ8�n6|�5��F�$�lir��lܹg��|��7}y�T���f_�e�ҵ��ݰ}ϧ�rniiN�<���M�?X/��;�f�o�Ȏ-Z�hѢE�-Z��:�!����������3�{�ɋ�0g����^��?�04]� ���/?�E��{�����6x���3
ը����kn�	Yɲ����ԅN^y����,R�t�g:�
"��Ow����юj*��u�@x���#š>���iX��~��O���ǟ@�\lױ3�&�Z��E�7�N����F�WZQ��-�f��r���\���+
5����R7���:e�m���U��B��r��d},ɧ@�����jߩK�RB���!���D�y,`��i�T�b�a�T��첊U���fpM�u��x��xJ4oG|�̛��i���.>@	W�&N��P*��R�h�H=���V>��	����i��S��J�m��ĤRc�h��\���FU�>���`V�҂^"Z-��J��5Y�ϼ$Bb���*�tt��G�JCjթ/R/��.mӶ��!SI>�A���P屚FF�O�s�.Kd�XV94�@�-��+^m�֐i�S��7��[�<�����|��Z)v�RmPR�yP�[$.����j};
�.���͜5g��E`2?d�I+��������9��N�U��8�~�Z�	��
�+k���%��u�oW��+5��4n�ܧ��G�z�Ub��������g���@�A�\��;*�醍���phg�؎�w9h��WBhvz�g�c/3�|ڣW_5��=j�mB�u�Gg�o�3��@��*Y<a�.3Q�:L=���'p|"M&���!��h�RO��X�n}�v$:�6�B��)7��k�;(D���
%%��u��X�2�+������!Io�����4������d�����[��UߑM�n�eP�
�2�Nnjrf��\��Uɺn�-�������I��4G�0q�Lw$e�����숪 ѢE�-Z�hѢE��[���
	���tq�W�WP�$ۋy�#~N��K9��:?�a�g�G�K������z�^D��Im&w]�W�|
JtE$���3;7W E�!��A�V��$H��!�3�R�>
��٨:$N-�?Z�F)#�Nc�*��e@4�1�l��E��$�e+VBKbN1#�2I�Es��"�`�٨����^����,�)h�AtB�k��D<�;)�[� AC�B�*	�L���7�t���X�E��sS�r���!�X@���}�X*no=v̖���=���&�1)n�@�l�F[�מ}�^����K�zO@�-[=��} ����d2Y
�� ����4)���E)�$�)�(�1���mۋ
G�ćp�AC�Z����4.t�A�%�Ir�"=����R�@<0�}�J���Tqn6��\7s��W4���D�…8;=z
��h�� c�p
n�b��T����&�J��k����S[��0e{f��0������;c�s�M��ct��)QF
�k?�(��F�%o�$��C���O
���dm�n�!UFV���-�oR�r�Lo�u�m@��ܵ��2���9}:�߬Zʁy�}��_��C ��}�z���]��K�
�S�P�bY�A��_�z�dž�����@�î�O���3K�ϗH���l�q��;�(揷�l�mpǡ�7n߽k߁��g��-c�e��C������֨i{|����8tž��}��
:��F��={�ß/_�I�cZ�����W�-Z�hѢE�-Z�h��5�/!: E��^�*�L�鯚��O.7}���د��t�o��a'ó�r��6��?]S�޳0��R�6�����aA��H����S>
t�,IH�f€*��N�l�7ڛ��V">��J��*�`�0$��7��0O�^���&FE!��7�zFL��5Q�p��8�@Kũ�#�t�%���L���m��%�����tU
M��D=�Lp��m�_��k�甩0�Ry�@�-:��W^Y�Rz��c�A渤HR�&�X�(��t޿���IP��y"�Eh�9�,�����S���[R�6HFp�Vm�A��#w�g����D�h�����Zs�m.P.���^	�^�xI�#q�۵49�[���)���j'�s��#G���43��9�W&X�hV�\Ex=��3+V�Ʈ���z�g�?�JQ\ꐑu
z���~�ucv��@��hR!s�ͷۄ>�ض}�rS[��ι�޳σ��_�N��94p���k�~tI�X�j;X��h�6lؘc_D�����B��d��y��*�=R������?M�s೩��˴�ô]�y��E�t�G��w2~��=����ڍ�Z�1p�ll:��#�Yв������AJA�M��L�9I��?gN�����5c��F���`�ѢE�-Z�hѢE��_-:���7�Y�n=B��w�sO�����нM_|Mę�-wѮSS��-�ƥ#�Q�@�U�arc_�9z�
����q6?ah�@������J�^D@����)q��D��&�p+V��y�����s��	���
A��2G�J�h��|K6}#U|��Q>�X�`^8��ݺ�����
i���h&Q�l����b^�y�x)^�MNZ
��:D������3d���7�n����[�hI�9���h;Ѓ�hѲ2����W�N�PmȒb�`v��M�K-^�)(�ཅ���J��R� \o�y��\�-xq�s]!K���6�F��4��d�RƎ��z�철��9��?�K;XW�Ɣ�a��k#�?@�@}!��ڟ�ݸs�.*Ҽ����>�C��FJ� ����y8ƪ���0���'h�Z�HN�w����9G$:��O�W�3�L��9���.����u4a�R#��5s��G���$��c'�T����'�_F@cƢ�I������Ƽ�氉�#C�G�8֬ǐ�V���� Ó�[㡄o�~���>c���y F@G�-Z�hѢE�-Z��_���������8��bb�(blI|/.�O�1&��"R��((ҋ�(""HG)ҥ7��2����1>��3��;�;A
<I��5��9����}f���o��h f��1$)P!y��W�x�e)���wq�e˖ېP���ޢV�rժ�Q���v�����l70|*h��|�*v9KS6� �v����n=�*!:��t���%}�%?m@g\~��E��\�����ZXqbժUF�K�f+U����S�']����-��o˖/끭��)�����67S�jkս�Q��଒21

��wк�ó2^rƥ�Yk&O�����'(�J�����b� �i��La���^=�^��]r�	����
�r�tP�H��
���XQ`��n����N���5
@	|�|���F�J��Ё�yy�Mh�����kݝ*���-����e�t��/�D`KT/j򉡙P(�i���p{���7��M�@)�Hz���-��w@��޳����	�A��1�m�Q`�MD�޵I��m�^'�w�Vaj1O�%K�^��?ZwT�aP������=GN}�����|����P|�5�2�\3l��c^x�װ��g���K��^��Q�t�ST��}gn~ɉ�jщ�{����#�����2di�̅o���Q:Z�hѢE�-Z�hюn������3��O6!�3�UD-j[���‰Yf��۽��Cmೋ.��׿��n~���izbt��'OyH
Zn/�J3:��ꕆ����=7l�>̞� M;?�*�t	����KZ�:���>�ە��D���$ؚ:�Ж�� ��$ƥ�=	��k� ;�&�L�����L:	��~j��P� ��pDi׭���x#b������_�߿/<ΐh�����
������J��e����H�{��K��u�'~���As�gڼ�ĶkW�,���u�4�q���v��~�#�V�ΒE�������WTD�W�?��J;�M4>�h��]��ʌ�a5�\gĹ�	0-��v��Y��(�=ШY�?�VL[�#�Y�h��)Ӥ?�����8yJj��B]�>�(��w@*����V1;���@��={kѥ:��O�wԶis���;���W���KR�v����)�~���Ehdy�k]%�
M�rsRa{HO��ʿ��/KW���h�=����|v͆��j����;<3�}����$c:��ʯ�Z�H�Q�St۾�<����ܞ:�0nV&<ݦ�p�g�ME-Z�hѢE�-Z�h��@����[��p$�*|�oMvE�_���8o��%����J�
�{ol�I���7݊ߑТr*���`���XW,�O+�-�g��ʮ�Ex�'��K3A1����/ρ� -i��\�B��j�Y����gX�]J��v��p�eW_׹˓~�U�f��F��LB!}�tY�R�K��/�@�l"���~���HjO^�9�s��hӁ���?;=�UҷN�Ɯ`ٽ�V����ȸQˀ6.��FMe��j�@�?���ڄ���uu���075m��X��!|�s�}�/��̘��~-�
��4.lZ�&��:�'�}�'e@�8}/���3^RrҔifwlߡ����ӢK�Kt^�
q����d��L�����]�O��`T�\�;=e���h�����
�U��V�uf��?�ܒZ<��{���E�zx)�2����٤� 8|�冊17�#,DU�5��Q`�+��-2b����I�����l��{W��~��U�H7�Dr[��]��K��ȿ�9��^D΀6G�l�*�Eh�7�[��aQ�ر3y��`u�Y3��z�GO���o��`�)��7bؔ��w�|���g&���,�˟�)����Y��Ď�B�%�k����[�3w61�fw���բ�`�
z�#2S���r���I�?9pɊ�8;Z�hѢE�-Z�hѢ�Хct<�>�!���~��g��iGV֚��y�Ha�?*y�W@����P�t~�C�@'��sI��/�$X�!��4`5�G�>�>������ۼ9g���W���� �<D�XI4��Աs��Ů[�df�T�\H�g���b�"�p�;��_��T^��Y��g��7q�N�
��P�@3E�+}��ZuL
�l����hL�6��
y�J�@t��`���t�M��Z��3җf�ٰa�����Y����g8��-*���٧�3�׬[oŊ�̔Vv���ԥ�!�-�Z�[]�|%a�{@���#b�uR�R��Q����U�}��:S���ٴ-̻�g��5)�^�{�GX�㍿�I4�lJv���5��a�/���lB(��6�;��V8=f\�Ν�o�������;�h�š#G�	��b�*Q���^�?4]ⴟw�ޣ�
�l�`��r��5x��_ٰa#'���-��/��0������@�E�O>и�ƍ�4^!�}vҍX*��xzv���M�d����#�M.�7%�{���W�L�¿��A�y̸	��%qn}�X�� OۄPR�1Gn�1C0:��4���w��O��Q�o؄p�����/�gg��W;��x;�u�V��M�@�cg�ں�P8X���EK�A⫥ﭱ��$y���W���k~t�h���d�ڻ��>c��g�^1�*p��'��1o�g�����r��/��xy�:wi���uZ0nƇѢE�-Z�hѢE��(׀���8Z4�%n��u�-e�ô�T��c�T�4 ��Q�K�~&|s���pG��wc�xe��A�h�%W��V�6&Hȵ@[��Idض7��rss�Wa@ʓ�E��wպ���&�_Cm�<&h�~�yk�
�+1���
�f�\��NˋtIgUMޗ�%�J4��(ӄ�m@`���)���+W�S�>�{յ�#�������6d����[A�ȔK Y=����qLY�6O,J:1�z��v�C��˒�\�߻ⳕ�܅0�&�<�<� �9��	��+\���&�����
J��D�#`�9�fr�D3
SS��=�+�	��O����|-�<y�<fD]�d�cw�ۀn��^V?ae���~�4mn�B�X=�}�*wս���g�{�q�Z4�s G��k� T�7��!=��R����My�	��~��j��@j~��N��ј�
����8�goH^�,�u�֛��Ϯ�d�-+�\ǁ�}�y�:bTB{
1����n�UV~���)���I�j��}1��v��>��9�xsw�.��B����>W�Q;:_��]01v,���FMu��m���	�&�X���PC���z�f-D���9}M�����)�<��tp�3gr��E�G�ǎ�z$��\�dE���@3�y��e-��e�N�deo��Йi�o-s֜�mG�c:|~˶���v��}:>#��S�GZ�Ŕ�g5�>���jW��~�E;w�yp��1��1����?o�;M�|V��ѢE�-Z�hѢE�-j@�#G@w`�Wԋ��3���)?=�@����e_�⍛���cO@{g���v�%-��#�q��g?���\��X!��o�X�*q��t�i?�1�TK�a�
3���e4l�CJ?�g~��~kp��w!�%�jҢu���q�r����ig�q���y��0L^*��j�k��	?9CI?O���
�mۖtɇ����Z=d�C����~@/~K�Ia��.�)�C�֊,c�ʆ|̏��mЌ�0h�S�
�
,�<�i�O�:C�B�'�'��C��������Ф�����;��S+T�p[��n��Y^�w��ᖂ�خ8�9シ�c��sJ^x�q'wv&�I�8y��N>��3[�y8�Ue̼�˯�=��U�T�_�ɕ̮������Y��λ�^{4�7����rB������_B��)�KtE u�82�N鶴��V.�a�2d��~��X�����7��ҥ`�	��@\;�`�z��1�j�:��/x-@�)؜��Ź%c!�Fk�;/NB�����
��?�肋.�=ai���C$����7����L|�h�a%!5�iGXD�
�O���9rW�m<��!W���I
X�R:���ǎ�`\��{��{�k�P�4ݻo���2v܄��ݴE+�M
��"��b%N��f��y�z�%�q�O1) �J�~�I�%Ǐ����cOhԴe�U_�f-:o]���d(v��z�P�Gh����'a��\֯��O,���b���-W،�㊛�g	+�65���͢3�{>@ޖ�	���3����ǝx
T��]�~=~��k��Qs���U�y��
�x����7���S�����6��5�1�۰	�FOm�gx�C&͞������c��ްyk��c�>5��)O� �yȤ����Qm�� ������s�QI��Ӻ�w��?rݦ�(�-Z�hѢE�-Z�h1:�8�.�esI�u���^�:��2T���#FW�^�&�	$���Z@s���'�6(3q�MF�r���TL�r��sE���>cf�KitF&1��7�W��d�K�X�L�۫ը���LEOB���S^U`�e�[�h���v�82���S�H��w���6�k�0�I<�R�Dž�.4ݨi��5�V���>3p�
�\J+�F=?�JC�;k�����!�ܤyK���G��'=���Kiz�n��ʔ+/�L�
|[���nj��iʁ)ϝ���{�iӨ����-Qkխ׫O��{��n�ڵ4:��kP��jn��ۺ��<G�zB���Q���<�T�аI�~b�I�����dF�W�"_U�j�6�U��8�ڳw߻jֱS��U�I
3�&T�2����)x��Bϩo0Y���=l"V�T���iު���r�W6�f���}��kI��u�b����#���a�6�c;��
��^|�5Ҵ
65ƌ߰qs	�������Æ�$�����&��Uf�<�ަr�
n(S�U�o۾�_������Ϸ����[��@|�v��R��ݔXH��{�oX�f�4O���ጂ�U/�;��-^��[��h�v��=g����J&�3�%΋ɬ5k��+)[ �VU�._.̬��H�>�G����cLJͯ�֏?�Mf4ox�"*�U�ڲ�=��_
����5�k����f���s^�ՏP�N�V�^-�������-wE�
��O�Ī�Y _�<�ڶl�X�.Z����"�u���ٯ/�˼�ݕA%����N������7vz�EV��o-_�|�¥b�CR����]�����I��a������sպ
��!��o�ϒ�q�3V��v��ѢE�-Z�hѢE��(π�:G��xƗ$z����
gD�_�z|m_>�R�i����pL+�2E�
f
��ȩ���

�Ba��X*��ɞJz��j=c@�>ߧ?F:�faC��%i�a�Fy@�\CV8//��$�5� ֮n�˜��D𳪒.܂��„h������� "\�-�j���٫E�j݇���6��:�*�ݜ�[pL�&O�d����>q)�Z��F�gd�V|ܯ��`�2}I��_���e>�5�Ԙ�ɐ�:�c�7��ۡQ��!S�ֽg�.]���74!,��0���򨗏|K�
�j*�N��gюxH�/�B��4�%�*�h۶�FDZ�0�L�$b/*��BT���lW�ؐ���	>�!q]�D+��9�pZ�0k6\J�ҺK-�L�A,Y2I4r�֭�H�C�nOܕ�Lbu���9��I�!rsw��\']-�Ƴ��%�/����tf�
��k�A=ݴe�ڍ9�#l(�v�H}�&_�ؙ�L�� ���چpϞ��;r�m/�9��hѢE�-Z�hѢE���a�G��+������T�!ʿ�p�^!
%�_�A��!�C)R8��J�A��[�4�3n`>�(����!�,� �q8b"�����+3T���^z��9K��\ꥈ�i2mɑ�-�a���n�墢EU�z�5�>):����J����ʲMV�w�t��C���]p;�Ѣ�k���XZO��+|{�S�0s>Z�hѢE�-Z�hѢ;�@��_@+@�/�G�A@����)��}�z�
��M�AC�9���CH&%�~y;8���hѢE�-Z�hѢE�-�x�#�oe�[K�ؚ��N�נa���9��g����eIo8`h�V�i?��7�ה&�]��Abٻ+.����}t�hѢE�-Z��a�U��(?�����.t����	��� ���V|+�R��5�����Qn �q�v�z=��?�Q@+�W�9c���\�?<��/�r�<#߱��)�F�㝽���݃ãӳ��r�x��8cr`zcV��̊��
`����Q	M�Y[7��3P�s�^�>^����r�����3�nhk���B;�P@�(�K�n�	}o�n��N��u��a���k����(�zt2V@�(U@o��j�-
h��#8�4P����:��!4��Q@�!�
hQ@�w@�sТ��o������0nя���TC�Û����+[�6��-@�
�m4���
Np�&@>!4��B���]�	��OM�����&@n@ov�8�����<ssN�Vjj&ih��Chj�)�EF�Y��/tAYͧ|ʻ��
�+��5aѮBA��>K�04'��~�ggggc�ޏ/�
��,`�FF��Yh���z���r]����Ǝϯ,4@�ް]TZ�����=:�iw;��h4@�3@�����eO���ޡ���7n�u���m�	�:�as������=O��Ԡ�Z�9�l��&Ke�Х+0T�
`{h]dvv6�S3�����|�胇����
�Ϻ����o�iW�^�,�渄���¼�S'N�h��OJ�fj�����H{,�A�65@���d��:^�sy���A7�i�#f-�m1�7\���ѝ�S-,,����񇑑��j�ͱ�;�Nꄤ�+W��5��]����	����]��-m�����t��v�A���ٸp��������_�~3�e��⢪tAIip��nUS�U�ud�Q�6Y�g�X�������>�7�V�CO֙!������.s��{��_�9��?�lI��u��5.C�68����Qc7�۟C��A���w{u���b�>����]&����oh��w~y�{l��,F�tTTצgfG؜�u{o��s�PY������#Y*�z�l����OLLLMOgf祤g:��樘Ĕ��s�gj��2�Z�Mo����ccc�l5}'''Wl�:�?u�g�H_L�JҠ�7{gM���v�N[��p=�J	5��j�(+=�'�(=(Q��6Ǵ:Vy���A�J�
=y���*�4ʵ�e).�m�g���9ޯ�;��}�~��?\�����B!C@�ԭ��,;�Y�L��\_�Y��_���)騃v��A�-�=�t~A����=TQ��{-�8��Kw;D��덍�������3'N�G�ҁ�UVU5?j��݋�K0c�)`+>w�=hjzx�J�
̵pxx��۷X�|��6<b֡[gzw<�4�V}}}uu5�[Z	!o����xYY�&�VUU���P�B��w����~�oB!�B�?��f��E�K�\�۟*u�x��䍴#8#���}��Y�?���h�IO~����c5ҠK��"Ic��'TrG{;~=�'(L ��`��D\ET�--�̘�?�5���=>�

��D���ܤ�f��^>�#�MM���!��~�[�:�*����B�6��7��
h��D�>
��B������ACC4!�B!dlB9��cR���h�=�a�C����m���f�-Z�`�;�3:`������ZrJj�&�8y�����(�F�3F�v����*�9:W�D�Op�vEU���8\MM;���1DN�c՚��ܠ�PE���d�J����9*BUm��������99%u�́�/AUc��Є�~��4��!o�&�B!���S��[n	
���k���8�) ����}�`OϽɀ���������O����
�?#%c��+r3jjj�����@�z����m!��Á���ߍ����",<����z#���!�қ6c������.�1�B�+��J�!�N����i�g
hB4!ЄB!���ePU@[N���2��9�+Y���а���d�{/��1	�#km}����ǿߪ�t_�-/��ƃ�2SsC:׹$���sPmjfq���?Z�"-�����a<*��/h��IS싋K�h�t�¢�U>� ���u�;��&�P@BM!�B�G��j
��=lG�L����.�S-s��\���{���|�qPL��{燏��E&f��K�wJ$�3Ϣ�����p���c(���A��SQ݌���ڞ4jDv�5��;~����K�mxN���BM4!�B!�a��;��܍,�tT=��o�&����sqOt^~�������l�ԅ�ml�**nb�zF����HH��!6>�N.s��/a4�=y�Q��;���j��Ő����}Chk��e�|����WP11����J��W��;�E�Є
hB(�	!�B!�3��M)�>;Κ���cS�vDJ��'*��n�:��P����UHaȆƈ���@�'S����bL�c��a��g�ε��ȃ���t��e�����ri����[��>�B&XM�nt�j��c�[�XM��/1�yW�<�L)�)�	!ЄP@B!�B�Fp��'�$y��s��%��g`���˽���~�V<F54��KW����Z��������r�a(�@UK�4Ǣ�k]]�H̀����ڞ$�O��6��6l��H�a�����=}�5B�����g�0ۮ��k�%(�	�������؄�X���.��i�zwLM��&��B!��P@��@����3j��ӎ�8�b*���<�[�P������W"dAǎG��t��
^������(v�ɽx*�`��H���x���B�sv�E4�8~b�����n�Mw��Oĥ䔃>����ݰ	=��:�svΡ�G�{�h
hB4!ЄB!��~��2	f�;"� ������� m�ƌG��p�1�^y���Jj:�٨fVR�VRב�v�P+�bg%5!|�����@��g�Q��HsB��!z�Jg�ICR�zkLM�����������8�φ�QQ#*F	"�O�ӈ�*6�"���P�R�bA�a���c���4A{K,1��?L^����	+ٹ�wf�3
�e29g׵��|Ϻ��R	�S�T*�J�R�T�Uπ��`b�	S�ϛ��71:Nd.lυz��w�M4�c��XE?U)y�s�T*�:�J�J�R�T*�J�R�~G]��2l�s�g͞3`�`�Il�'t*�J���DP��"���0���M�J�R�T*�J�T[�˗/Ǡ���H7~��}��+��y��?	�S����}I��U�W��~����_�0�g��ErױPVj�ָ��|m�/���ܺ�[)�[}��q��-����l�'�N�R�T*�J�R
(����[�޽���|Οu	@C`�>��^x��_�~h��_~�L�|��7��w����O��j

<��gΜ�3���#�<2dȐ�?��Շi�\s�5�{��Z��L	�[@g6�O<��SO͛7��W_�ͥ����CN�9�����￯����3�(P�WT������B�����?���.Vk�n.fϞ}뭷~��W�B����O?=��^{�~�ui�?�p�}�y�|��'�	s�5`)~������u11.Y��ꫯ~��G�y�x�T*�J�R�T*U�6st�_B��m���Ϻ�o��v��m��~��N0G�#S�L9��&N�Tz„	뭷�&�l����^��M�j���n�
�t'�xb�޽{��y�!�\y啈I�ZX�b~M%���O�i�=�o�=�PwԨQ�>�*�-Z�=��C�Ù��7߼����#�	}���	�+�\����/?ꨣ�?��c�9欳΂�B���cǎ=���/��iӦ}����x��Gی��z����f0k֬�.��4I	c�X٘�3���/��.�P�ް�Z��Ҭ�p<蠃�]��e�g�}v�G�����o\��&°��6�f�#�8��Ͳ�ju����{�%�\�ߕ���K������1��ͮ�g�<x��*%t*�J�R�T*��R[Е�m���O���]wٱcG���/^��{J'1X�/���z�;u���j�#F�p��ˌ�q��jԭ[7ܧ�vĥn��F��K�
�����BZ�Ԃ�a~�z뭟|��U�j3Œe˖E��eU׮]���V�'������Rq
�&��T4�7~��A��9e��ۤ׽��Q��;hF*�P���w�^�>}:6ZbUt��7ߜ~�骃��`L��c��"�AKVc�M�-7
=��c2�H�u~�s�9F��vQ{�2ϼ���9�y�fG.�)�w+lܻ��Xi[�%�%��=y�dO�W^yES�T�x��e���G�>���ϟ/*ن���=��)���K�WM_t�}�Y΁�	ǮT�ӫG���6=��}V�'*<0��
7ܠ��S�F�
Ǔֺ��5U�����e�"�I�J�R�T*�J�֖#8@�O��_=D(RUo��k߾=z�������R�"���v�Ѫ�g��VE�걤��~�ܖ������ÿ�{pda����ߍw�y�*|Rg�4�oj��=B䣏>��e�j��J3��.�6U,-?X6@��/��:�YRȵ-�+������!����pӽ�i{=����=u=O$Z��4�*
���
Tfƌq���[o���)���R-����o�S/��K�B��+���4J	��DV�lDI"�=|��o��r�~���eՙ��[ŵ��2�sZ���Z���30Rx�3fV���6�0�i�E�уe�…V��'�,����$�ւb��	s�
-D1���b\Q˵߁eխ�ba�ku��cqNw�Ӻt�R���瞳�U��ü�b�s^-Y1v)�ve�j�A���8�	'��E��]n'M��w<���y/S�W�Y�E_v��.{�f�k��q�O���M�f)V��������+�D�4��rٸ�2�7����S%t*�J�R�T*�J�?	��h��ㅸp�l��M7�$$P��*���˭@+�3���.�c`�s�Yȗ�M�~�*�a5�GC��ob(�Ήz�Ǽ
v��t$n)#R[l���_u�U��j��q��I'���lI$w�z\q�Æ
�dy�׆n�"��((��c���k��e"p=U�	B��^��;-05S�j�Nz�>�|n�A�ꎨ���r�M.�V<$q�,�/G�0`�����]�xV�1�F!�ֹs��Nu�9�*�
�2s��a�'%��$�[~�~���z444+t�駟�œ�I�('�H���r�Y���X��8�C�P��(6�R�u*�����c�TY`�#bD�4+���뮻bu�	�_��6���B���4qZ`Ci����m�Bo֕�v(V8n�8�K�[rF-��0}�Ɠuh���wܡkՔ9�F��ϟU�6��f6��#��d��N�M̞@�hC��gʲ��Y[fтu�c-�npl-�֔Nc��@դ�i�n�H�6�!>��Z��f�E�͆ ۳H�ƫ$�WQ1}=���&�V�a���p�{�V�3:��@���3�L�e��*�Ž��VL�x�Xi8*�)-{��/+PV� Zx��wKD0�XnG���o�����fD[a�{&8pY�ꍅ�O��F�u�ֳ��ϓ%�B� ��w���l6YƦ���q
��q{�1+��mU}٘��A�qds�׌q�������-c;���?h��l��7?3@Y]����-p���̩'��X�.]G�v�T*�J�R�T*�Gp�O�@�"�>��U� o�ΝS��~C��+N�()��(0�w�(�'F.�V��\��7��@��&ȵ��^{�Y4v�u� ��!�Y���{o��޽�[\O4qiֹ���h��w7�Jl��q�	��bN��дʺpL �<�-��diW#L���bC�^�ȧ�~Z�)��ea�y�-�p�05���Y�p�Z�٥���ӶRR�o�[m��;�c9kDVf�� �a�ϵ�T�òu��a�Jw�y�R\�E�����cPd�Y$��O�C�c+�U
v��v��S���Yډ�����`!����A����憫!We�o!I#�Q�Y:N�#��i�l͓c�O��m
�Z'����E.K]�(���ꍃ2��8eu��‹�ۉ�R��XT.q�*S��vP�y�elpB��d�'`k��Vb\k�Ux�2^��~�yŇڔ��2.��潧QFu��ՠ�*��7�0��"��|��푃h�'���K|ū��qR�s{��O��Ո�ҩ,�0̆U���0��6�	�9��ָ��Y��f�H��A]��Ԉ��ӝ�݆�͚�],���Ek�m�Ӌ��Y_��{.=�M�w���e�_{�f��QxœV�ǎe}�-���<�<I��3�U�����ЩT*�J�R�T*#��'�jTk�r�괊��ҥ�[\O�����
�2��
��3�׸��d�1�*\%��յ[�NJ�n�-Z]�BB�FB�AkM�Œ�[!��4D��ի�[B�Sa���1z�`m�\�Qd"�+��ߖ�����h��bԐz����LA�i��,X'8�[�b��)z�1��D8[P��€k�w߾}�BEY�7�����s�>k��n;e�-e��&1ݨ����6۬xc��:����#E�j]j��Z����,��*�\k�|�%34��6ۘ;�xS�iqf�訂��3�r�-ݢf
4��j�q���;3ƨ��������
X-�c���]��2�z��>a�DP���`�k��%.8�j�|����Ʊ�К�,f[XX���+ �H��Gȹ�0
'EX���k6�F�2�"�,�e�S�,*�<��\-`�[y��n�J-tX�m-���$�Yr�{��5��6�#��2��[V��ʳ��d���������R�8/�nԆ	:��N���٪X�p�e�-�����"�f��l����17"o2��eѠ�fS����+Ax8�Z�,��a�}yAbN%jM����q�N��7�,�����k��FQ�MY<&�Dac���j�b�g���Fjh�`u�塻�����!kY�IbD�a�:�,�{`Z��]���ƅN��lY��	r�*l|cd������+`\L��������S@�R�T*�J�R���w79r�H�oॗ^H����c�����7�94�@"��ܒ�O�U�L2��Ǩ��}-�~By,M@������V|�#D(�"��G�s�G��9|�‹8ˤ��:@CT���
.�ׄ��[�����Y�-FÞ��0�BFy��E�"k>����Y�+��X�b4�N���b	��0�#�>
"]�̕=�)�p`(��y�"B�_>��hW<��x/8q�`�⻍���;R�
#�,��_�W��l��]��hv��&>ڕk����-��@C`VC��Ҽ4��b�̰�%�&�]r���t�
�T�2±ǟQ�vP���/�G��
�$���oм'��A�b���4��7������Pm(p�=��jZ��.���_d��h4��;���Lԅ�t(��-���x�n�z4�)|3�lN�C`�R\�@]6Q��)@��.7�)���4/7�9{B��c���H��@{/j�~ު�	��`�."�+��9*�b�i�Nj��}A���b���B��B�zʛ���M|����Pg�F�4��hW��N��1��]��G.�о���Q@�fn�����O�C#��R@��n�	@�h��W(�YcAI�)ܱ����qW+6(6ڲY�iVB�ieo�{�y#�WVVVVVVVVVV^-����cZ���O��R'�_�э�⊐�
`( �Ȱ���?��d����<�b�4��=����gW�����/��cQrKL�q9��tJs�=�i�%��@p��������&�A[��z����И]t���8�"k�b�l!?����qPU԰%���0+����#u�@�E���l�Gi�R2e�KH�l$�4����>h��W]�r�ys�"�����F�+\�hgvrO��MIZ�]���@�h��z�]���u�
õ��_�������1;�W.�o��.�EH�GX�����N��0��Za��v�v�#�P̲�jKa�X93�H�׈���l��f��{z�r�	Sٴ�Bw=�f|<�Z�����!��u�d��
@ǐ�@Ӝ�;�O�4uZ��Y�h�@�m��AOU+ҹ���EQy�f�A��*���.����?m�dJC�=]���F�m��
Rg��v3���Y[
FG6/p�p3� v0�|d��h�\�s,�A�[ah����U?��²5Q6j�����^m���!o�
'��F-��Ԧ��m-t���5�9�WVVVVVVVVVV6z_��.��������ٯ����Mϖ�B0���D�%.b��K��Y㪒E|��	��5P�8����;��M�s�9>|��9�h�f�ȑ��"�p�����,���\��}]���-a�$.��ߠ�"��Z�7W
��5�l��Yװ<C�1'ѳ�ݮ�G��?�:l��)�M��̗$Z�7"���3���Wmw�
@O
"R��4��9���;���#C��!kL��
�)NS� �@{��
��_�����"��R�}������x t�M��>�.ɯ\������F�razzP�Z70Y�c�~���j,cœ#� )�J�,JK�„��#�6:74�m\�xj�@�˳���9E�-��E�nH�]��y ��-�꽕AUu����Yڦ��ݪ��Y\4�����z �Y����idg�� 
�
���{�A)>Z�����z�����u�h�3/o4F<G�&EA��蕕���������@��[���O�q������&c�~X�所�{��i�jC|�8@O�4�aV��W�ޜT�b�p��:��5J��NQ��*�3�(����x�x\W �Z+�|�"�e��>�gt�+"��V:�f�yO���~��ԉ<ƈC{�<l����l���C�#?q0���\,�_{G�%����^�����4�K�"H\�vwſ����Lt�ڟ��"f����@��2%4��J�O��hINZCh	��]SÔ�R�-�h�R�U��,~*Ǧ�ikRp0��Zd�x�n����*���=-õ򺯳�S��
��B�4t�2p�g�U�S�~C0Zݼ@s�#�V�cB�V����Ƶ5����!(I7U���4M
jA��)�,Ҙ��&H�����[���r���谯�b�I->�)��f����FP��`4cD:@ƌ�Q&����af�"�h>p�
t�`iX��J�G�&�5�A�U��FG��WVVVVVVVVVV^-�V�F@�k�K�N�+�����K*_�2��D�[܄n�Ca�N�C"tO�P]��l��p',�E¼Dj���Itb��8d��
f��Q��$@D,-�z�2��5Qj�hT�v~�[�x�P/�c4��B�G-�E|��ɴ�]������h�j�5R�HIZ+���m�pj��J-̼�)O
�
��M�=b{���PЍ/SH�mL��5h�h�����_o��`X5{�I����
X�/�h�g�%�b}4��z\_.�Z�|d��{L�[i�05cD�#0�*ZĴb���5Q����+6ܝ��|�]:�mBQ�d�Fd�e�G�
sZ)
g:0�V�'��4}h�&T����X
��^�,�C�q�[�Z�P�TR�q�~���2S{V\�Q֜�,��TC
�(��,+��[j�e��)��h@�3�j�-a|=�pm�e|�ޫּ�[}q75��^XtʚOa>�+I��+++++++++++��c_�H�A|-��`OA>B%�@�*�t�r�2H��p�/�'�E���tC��[p�
t6�C��к
G`1J���k��ξ#PW.9�;��S�8ª'�(2�
�`kK�V�D��fʍ�\�����C
���_��ׯQ[��d�O�%����U
/��-uRE�h�0���������+4T��q�^�&e���"FOZΐ�=' ���&>P^
zW(�^��No�<:��q��]�9���S��	�*���U�d
�Q��q������L�fЍ�+/�K��B$�G�;_r��!p,V7�&�YhF3��^S�~��{6[��2K����ю��.��uU,^\��>�٠wT�>��:xMX�/h�2*TU=�~����e�Z��b���q��8�f:(��Rq�(��
���FE;�����n�OI�I,�6�������
b|_���`C�*l��?�PRͮ��6��b�&�/+�M�T�	Z���X�҄5(����T���,%S64��B-�C�V!���DU��2q���t����S�	Io�4?����F+�L@�^բ���`��M=�Cj�ݥ0��+�,���XYYYYYYYYYYy�Z%�'�z_o@��hL
�[�r�x#J�|�Ќ�b8��%�.�)MDIyD��
�~�G��Tp���.'��H� @*B6]"$����*x���%�*�H+�h
�/n�4F,��D-%�@�*0�ݸp��b�JDx�E��V9�"��*����-L�a�m�L3��믝��<k1�
ɉ�T�M�8D��Y�`�r�gG~'�3bO��q3,�5}g
�ag�=�2q�3�+�vܙ�6�>O��$�ć�Y�t7��f��
�q�����6i�ˡ!���;(��'m��׃Pw�;{���ܠs9�x=`P��z�ٽ ��_����>بYS�Ä'T�oL�%mr\�T�ԣ{4,�0�hJ��"���j-�-o��iwE%��
ߞ2)��*T^UB�ՠ	��qj��҇�3�-��O]t�������|�YӖu�n��)�k��+q"t�E���,��j��ѐڨ+�Ya�"�9�E[�#dس�-fCa��5hϪ�|�4q˳<�W�d8L�"%�H1�F�,5��Cm��AS�uӖ�U�����u��P���D�z7�̅P��c�=��z��PsD�(�����E�B��`VB�>�d�͒��)\wW�2��i��n���̍�eM��xg
���h��.���;��2f�_�[��4yh��GK�g�•�����������Z�z�xU�� �b���b�'_�V(�@?��v��5i�H:�xm��K��v�Z@[(�|H�p-��G��گ.�$ݮ�N����b�w��#�-�r���G���,��%[ݩ0�)���wqJ>���o�� �F�AU�P䩙~�Y���
�<�%�	
�O���į�W�Y_�5�iO�l*��,Y ��
���yW	�֢�Jeȵ��b��^�������zp���mU���jP�J妸�4�K+��WC��,f�ol�
����T����pk��lN(�z,����ʿV+��m���
���׹͐q��pC�J*-�^YYYYYYYYYYy�9���}�Q-v���2WL����LJ.��gF�fo�X��h^��w���PO�(����G�y_Vޘ���C�ك�x���b��/�R�����d�t0}@Ǽ3c�(�4��0�PY�ς��f�d��-zܢzz��;-.8�z�w��%��}�}�Jk�ʸ��
��Wi�
��A��P�\:��-��ǒl(pT���@�����������l�@�F]�yr%�_���w�Z9
��Y^T��i��"�C�5Fd����k�1;�ίȿ��11m�~��D��Etex�*a�,�Cn��sZeBP�_)�i@|�-?M��AK�.�/.!2��)�݅]����៕J���e�36]���O�K��O-�^YYYYYYYYYY�Q!��}����
B�eb�D�!Yb��E����S�ŗ�7&�W��(�V���`^@'���N�Z�����EL��q��<����l�C%J�P���JYJD����m�W)'�ɒ�,�^YY�?{�����q��p�2�
E�a0
��l22I�
E� �[��H$˲%��xA��Q��#H��|L�9���Ժ�!9�W~�{��'�������f����z�]|�20����K�D�)Xi��!@X�g@�Yh�w���"@0]��m���E�f��4�H��F~t 7'8[|�����
h��=��;19՚ఙ>������qtHI��K\�޶:��޲���ˣW/Oh]�����1q�!:֮Hm3}{e��� @h!L��w�����g��{J�+�ܞ_~?346�\j�}�U�%��Eťj�+�DN!@ @hX�3�5Լ�pO������������pe\/�����>eM�w�R���㓴�bѠصm�����R�i�hh�
K�ß��5�)���VeVk6��k���v����뢶�Ư�lj;��%^�pE�yu�t�sk�۳�@e��ΐʬ�ɩ�%e+�R7g��aDo��z���3��PU��6=;7�mn]g3},&@ @hX�3�U�K����O�Yc�'N���IdK|�}cZc�Q]Ԗ�����΃V�]�t��{���UUm�>����X���1�I)��(�����嫗�������Cu�+��?}:��-�jO~����|O��O�Yl���hh�
K2y��:y4g�ѱ�������������6�e��Z��jl����I��C�m��:����|��=�;�7f�O�P�x������,�t���GshW׵���癙g����R����ޖ���~G�Nۆ�sM��	���Raz��Ig����%8��櫓�;�~�	�F���dm���������s���(�F���x���r�����S69]�~}h���~�K���ߚ���]T�m>�N�
4n�l�O�d}��:��;]6�*���b^�n�rݯ�mw�~�Uq}SkmCs^A��8�����Я�A�P����a�܃�*�0�g5�Y*
���:d�)��(����"A�&����
�H�\�eYVT���
�&��;+wvW���EV�=�a���7����������Z.����ۏ�������
�0!�?o����6!���h�o߾���b�X,֠(X�A/��� J1���T
�~�1V���z�ż�bijZ���QaL�h���^
h�^��+.�P�M�7��}g ����(h���Ԝ�u�;:ڱ��7w��)6BDZtYy9T�޹�z,�B�,..��"�#�hZmm���'"8Н�w�LSS3��wI9����z���#-�g���>BMM
~�4���M�e�����+jPK����O���[��o�Q󋼸�\Q\V�b�X,��¢��JekK���b��@ʳ����k<���U�ς�v���EXdl����%}ЮZ]QY����T(�;���|�
�r�\�V�!�1��o�tvv`P$�d�rq?p�ha�k��h����+�']ȿ��v�œq��^��U^Ss���^/錑�~��@stRrJf���fuG{�����xS�<�*y�h�����i!�B!D���
|F�?]��qMU�!�B-�w�K+м;�7!D���?p�
���>��%G1�-�ݷ����9`����:�MАѽ�xq��D���l�G2&���g�o-��mdt,�!��E�z7w4ĪT7�-yf��p�"�p6�T���_���8�b������tp��Z��򫂀�t�lܴ�:*�@�H��#�熎�k��?��j
�%�pA
!�B!�<��Џ����B� �EZ�<�����J�5�i��G���8���)�7y�������k�ʩO�k;=#s��&��?����1��������O�/����cC�۰�}����=�B��[a��yVgϝ��/CU��#����<���4&	c����u��(J�w�n����)�Q@S@B!�B(�	!�
�>
hX���V��F��?w@�X�|<C�����]�'���g�g���/^��f{�5}�x� ��Nzm��� 1��v�<�E���S�4G4f�k��1����J7�j@��^�&s��w�E����;�Κk�T*���F�4�sQQ���
����u�4��9�쀦�&�B!�P@B!�}иl��;��<m��f��A��C������]AsX���������Ҩ�Q�9�>o�ۡ�����yq���`�xG@�1����.x�n���������S��#3�����cP;�q-^v]�*))�)�]?���ת���.틈����xDKgQ@S@B!�B(�	!�
���hcS31�`���W�f�Px2,3��}��z���Z+J<,)-U��l�V
>Z��6R��o'�
,��;����G�"kֹ::�`>���h��&"�c��Dq������բ��e��ǟ�ł�����١�ᾅ>k
h
hB!�B��B��~R��<��[&���B�3�gζDtxT�{�m0(<�Z�I�4"�����7g�M��q"�$�+X�)�O:B�[@�6_\T\��ٙ~2s�r��?q��/ho��q�f�]�7{`�͊�{��	V�P~Y�����n�Ħ��gC�/�`i��uu���ࠀ&�B!�P@k!�
�~؄�W��;s��n�KӤ�O�حƠ�ԄIs����n	���I�B@����.\�}Ɠ�W;�0E�k`=�!��x
�
��˷��
#���#4H��~5�-��%Ru���Z:~��7�|U��-,}�B>Nyxz��e眺w�."T��
�����h���O�J��&�B!�P@B!���F��rT�!lE�r,C|$-Iz|��*h��e+�S�Q!�s/4΢�9":�
�`ؾ�̚���pж+�%�e�+��F��vѱq	�"Q�$|�w߇��)�:����
��%�n��\����~��|/wO��8+�%hӞ6cV`��$�$)Y�����틈��5��;�)�	!�B!ЄB�d��Y���8���|�Đ"R:�Y����rhjiij��@�`��
����EXN��k7� ��g��?��t����F���K�_鿹���Go�WҝwVt�n����l�.0@���2#ߋ�Y��^�ؚ�#Y��ya�鮝�R���N��?ٞq�Ž�̟lh��d�������;W�<6g�	�Dck~���
ͧrY���ґ_���g�}D��π�;|����O���yw���_��,�;�?zf�204��[�֙u�S{���Y�h�(w@_,����W��W���Ӧ{z��z����T"���ٳ��S�h@�3���2�����g���,�l��^�p���_�����Ϛ�x�����Ǿ�
�4 @��Z	�}C�nO&=���3Ly�!]=�������ݩ�岽��
�`�atwfn��lp�]��#��|1[Y�����߽��-@4�]��P,�h@����~�m	��-@ @�`ǐm	��-@������ڷ����ju�P�Q���������-�K��'{gSŵ���%/�����bAEDDQ��bQDAĥ��+��Vm�JQ�B��7@\�U\Pq��`�j��P��e�W��[�M�KZ��sϹgf�H�|��A����̯oݺt�J�͛��Ɠ�O�^�v��uT�Jٗ>arH?���(]�u ��yi
̬w��*� "�����<"����AAAtC����c����y���uG����KG�=)iJ�IݗnhfM��3��u8~��7Eª����d�v0���&�&�&�K��PAD@��
hɀ�&ZAA�
!�K>��3����{����F|��YS+�
��(�[1qj���
O�Iۓ�nTV���͠�;`�h]#3_�_%γ�O�DϜ5��}�`A�T@K-� � ���A@?|�h��;x��-������z>���<}��?<S�@������s�������T��Y�*��/x��)��nUu5��|~��?���T��ĵ�M,�[8nNڦ����Q]sYY�w�_w%x_�a8���WTV����˟�0�o�~�Ke���ju\�j���2�n-35��/^N�fM$Ps��Xuu�R��҇�C�Q�ܳ��/~~��=���ƒa�M��X�Wo�5�v��U��"A���
hi"�AAA���[���"v����G���;�/`���ZbW���3`RHX��ˊ�Ù������{x�����:*���̩a3��?q*�-;mzdШq�G
��E�,^6,h�8x�8.w�޽z
h\�����������i�=��\�&�̈́�G���6.nV����%$,b�����v�ޔ)��}��8��={�Z�<k�G��cR��?s�\���Ξ^I�v����9����=ufrHx�~>�{�X6_]ȿH�r/o��C�cb�ڊ�[�o�}�8bL�^�}�N�<�P��r�9_�O�ܡ����s�N���-\�U}���i�&L>�wN�p�lޜ��u��=�񟮊���}EÎ]{��^�h��,�oX�W��,��<EA�hi"�AAA��z���o73D����WG�X����Ҿ�����sG��୦��f�-H�h��Fq�z����L,u��iL a���	f��P'�۰��΁o��e�{q�V����\�F�s��v:774�mfLnndNEAaQ}4*�¶<t��;m�nnddnkbe��4"j�""��Zڵ�k����nKǶk5�����&��,���<9$����c4��nx����ŭ��ѿ�,Z�WN�n:z&���f�Ɩv� ���ۻwy��q\slԜ�T+s��CF0�g�ˎ�o|00�޸9�o��o73�.��&zV����=�qsC�e�=L��ۓ��i��V�o�^��5w���j���u� 7�kdajՂ9�\gKAD@���&ZAA�
,��F��Z���)&v�����; y�lZ�d)|�YשkwFP�[��s��B����{`F�#G�|
AR#��'�bBq�M['s��v��|�QJZ��q�-'���IHT��q��L�j���hIt�q�������q����߰ᛶlE�sE�8�v���������vnk֦�;��e64�aZo�v���M�GU2]�ti,��Q�\9#r�Ӽ'����<Y��?`��86�u@��mڻ/[����,�����}�٨S�;35�Ó��6n�����Ԫ{�~JK٫Uq�u�ћk�w鞴-95m?�|�qڽ)i�¥�?�{�O�XvΤ���w?v�$5d�Nj��Υ/[�2�3�w����[�"� Z�4Ђ � � ��nxM/5�	k�ӅOW��?4�t!����\��2�)�s�WjR�Ϟ;��R�c���'`N�-�b)v�0����Q]#��ts��ojea��!�k6������Fq=4��ɥ㝻wb+�V���K����x�7X�L���n�=�/^���\�إz�S�C�n����E)ծ�<1��좢�������j�r(#��1��B�(a$�����;�h g�̺%��x�
�'O�L
8\�@�*�SR��%W��tr>_Gp+#ǎgK�Vqq�*�9	���?^L�\��<5%�,LA-Z�hAAAD@7���,cT����f41�Si����<��?^�T�p��;�g�ܽ����1��ήRR��*$l����dEÉ���\B6�k���߸QJ�׭�Jc�}��jb�v=4e��3�T+��6X֞�U�zH@�
�;w��ՇT�	S�)u�2-��k*�U�������%M��������:�F�;W������lc�4��WWU_ȿ�~�ع��S΍S}>�"��+�8�Z���i��FDΦ���k'l���@�a=8����n�g���l^]5���j�t���!bA����$
��)��D@� � � ��4��K�^����ÙGq�<Re���$�F@/S�K�ǐˁ!}��^�ƺ���Q��1+�4�,f7�n�n�h���-N���,$���c����D�V��l���)�9$v�E��hn��;W@�;����=}�,�Qs�]��/���a�k���4�!Hs�`xD���U43��u�ׂF���)��D3���q������Q�G����ѣ�����=��MY�*�Q��x�/Z^fH07%�Y� �L�����&ZAA���6��\[�K�35�<R=�EWո��^�x�=)i:�G)%^�<&m����{I@�تzʴ�$xضjMZ����T@c�q����{R�8~�hV�������E7�[@[�ĮR4�����ģ[O����J�fD2��ӋPf���]��H�m6k�:F�=ҳ���m�;U]T\�1�ㅩ�3næ͙G��7^OM�4k`%;��ƪ�jE� �wN�go�F@w��v��=��oѰ�Q"�A���D@�eC�8��Oη_���u7�D�g/ �#{���+F]��+��F���/Q�أhQP)JSP��AiR���tν�G%��,����ܙy��;�{/�7�<� � � ��n��}2t��c�l���
Ǥ��
hL1��i�q3�
`
��G�bm�c�A�h6r��iECII	Κ�T#�G@�0��#�0��l���}.|��t�����"�3��p.ٱ۴�2b����B��V@��������<�I�&�F�#��.�2�&�^亂���(!�hAD@7$�َ��I� � � "����&ĊU���˨d��?��p�*VWЙY�C7#�W�q��gּ�o�uh�ـ}m��E���[�)��9���~.4|��������5qʍ$�a��;�a��#.D��b�̹̲�K,�s���� �
����e�F@���r �fV��wY���
��~�̆�Gp\o�ud��$G6ɲM� r�"�A�3Z"�e-� � ��"������!�1��9.)h��[+�)-���mI|��V@c?	�E�2K��*~�D�&���00���s���4�/�����ڗ[���y[�k�VԒ��;ؗ}���� 92���Cy�_�lݶ�^�n{�9�H@v�nDF�Xo
����%�r�!�`�X6���
�w��0u۪M;:I�y���TI���W[�������UO�e�U���]_y�
⩵�]�O���7�]�le�Vm���Ē:���h�x)�

Ԍ����Ͷ��}�o����2���׀�<6!�94�����cf���+-�@�c������WD@� )8�E@����Hm�"�AAA�RRZ:�i]{�8i2B�\�ig}#�hS���8{.��6�����?�1�]���e���{�?����3.&�"[�7��m�
�@��z� �S�g���I�A�����>}�ߠ�X��EO�8���OW����0��I���(�����m�IX?q���?��V{�ѴY����&MFF���&�vBw#s;�Ju-)8�{4�Ѭ[��Hg���C��:u��oc�������ob������e�+9��=6n��[��!�\(Z��ni�H��^�߾~#�����A��|ľ�C3k�����>���~���5���g�VUM�5���Z� �S@�����g�\��{�'.��-ZAA��|+����)�RRB�R[�������!O�0������ׯ#j�
��>���xa(����H�'
�쮫�{�K���dfeݻW�� ��n�h�C[خv������Uk=���w���-���n_n�ܵg7�)��oQ��3��	W�6��`��}����IW�f��o�z��׎��J�a��n���iRPT���?�JcRS[C�	�n޺�� � �1tS����s��[�������gBv����{�[z�Hq�R�"� ��~��Y�r_��}��}���������#�ZK�$��"�����x�Qd�Y���ܹg�Z���d/�҂ojD�3p-)����K/�NF6��>�C޺�^nA���c��?�ڒؓ-ۼ�����i�̜��=�Ul�p-�}�^}&^��4&�9h�S����7)� � ���(8z��u��v 2��:v�AA?r�[�k�nEA����Pl7����=��w
M{�}��u�0���<���V�}݉��lAL��.�kkk�o��7��Z���koP�7��C�c��������_V4`3�h`�Յ�@Zz��(?M
h�8D���_mU�1���4 C�Z�~�Kp�|EE��a�������3�Ν�J�W�^m�9�4&\81���ß��EA�,$����_O���^]SGO�'��ߐ����T�g��!�̴�ݟt���pI||�?�+� ����7D@�.
�l�Ї4��!��q�]�l�'�X����4u�j)`�Y۱�+]�MW@�qYԦ]�('�h�O�>p���z�(K���u���[�SYiji����*�*|�9q>R�7 ���#�jj�� �B$���y�
~ڝ9�h
�̞����Vv�fe�(�F��B��IT	W� _m�ε#3��K��Ƅ�T�!�|ŪOAAh�D%���M����~���������ৣ�V{�tU� � ��n�hb������{��?����6�]@�~��	�⪔ђ����C�C�fouE@7��.��������s���l��7�� 
ﵣǎ�)q�J��o�̕����9��y�Z�##++>1�w8���hʇ���)��+�c.�X��M�������,((T3,geeS
���Z-<B*紌���".���UUWi�G�^��c)��u����/HOϠ:�Z�9)%��	W��t'6[�Sp����>����4L]���܌�L5Η��'���D�혋��]T|[���Yzx�J|�Ǔ�I:XSZV�<cSSS�ln^�����+�[k��?A����R�	rr���Aa���P��43&�/,*bw陙Z�N'Y�x��2����9���Rt�Wp̸�\��s5�����"�
h�z�~!2���4�5�8Yꏟ
	���~��]e�;�YMo���*�wI���<��s'$4<2*�s����=r.0�DBB"�B~^@3DdjfTv�C�
� ���7�$$h��G��YW^Q���̬lN��ג�MNI�5��+<��]���Ԍ-#v�d0�G���:�����I���O�LKOW{[T\�����L�&�ܫ����G\(��ցs��<�9�갟>�ٮ� ͕c�Q�6팈�=
orF��u�˿�[~�Jѡ���}��
_��9/ZAD@7��60�����~�:�����N�9����1�e��KW�u;y*��!�f�qAթ�y�pz�Y�t��
�Y����=�6��ej/y?���.��������l��f���˼Y�xm���T���N���D'���^M���c'<L�֩��'"�]���گ<��~pʌ9���KW�¯��?�����u�~��Q���o20���gV��;a�i`je�S(w�,�ݘ9f�7!1���0��~�t�Q���6�Xj��c���:��hda�t�*f	ѵ�Տ�v�L���:�ab	�4��kIN��Z^n>F����}}M9���t����s��xCK�w}�͚���̪��y߁ÂN�B�q���UON$K�y���k�{9�I�
RX��odn3`��a�c�[�M.��04��4�h�q�3Вm��֩m��qilaӾ��H��D���MN7CS���9��
�c�>�	8؅K���Ao�UΘ=�a�3p(���/�)� �Q���-WP����/���\+�'O�M�����%c��;h����0qq��N��Q��Ͱ��Y�^��.�4Gq�UN�+	���
��`ɠa#Ԃ�[<��̭��pP]{�r�=55�}��ܹB�onm�<n"��!�G��5n�}t72��;iF�vV�Ө1Ըu�ؠh����{�Ι��0\MY��={=���>�)�g��?#�)��Е�e����E�X�v(��+W��u����rZN�:����z��$ٷߛK>�\Lb�F�r�7�`�4���C�׺�N�5Wu�QQ�4cd�=����w�6�ڛ�,Y���x����_�Sf�RA��J`X̒ͻ�_~z턪�ڋ׮ǧf�����W\����W���^Vy7�V!�4�rn^NI�_��啹Ŭ��/��O.*-W�FJf���v�ͻ¢�<wO�/v��D*H���v)9��^�����*���o�$��װ����K�7kE@��/����#����&�bb����&1�&1��h,�EMb��{AĊ
H/"�Qz���RŮ ED1DQ��YN�JY��|It��}�3w�93s΅w~�2d<k�r�@Cs̶ڲ���~=�U����l��i^p
wodsBC�U��M��d��Ѵ�s%d#jЩ��`)��765��n[�tE�~�g�w�ګ��:k�B4��{��Ԡ�4�j������
E~��~tA�5���ޖ^a^�q�{��Fl��6v
J?��d���bGX�Fg�-.��~zN�~��7o�7^>�
б�m:¡���d0a�/��c���y�N�C�J�A��6��B�#ȳVw3��W��@؞����5��6vl-��>�{c8��b��$̍�|���?<��;v��N=�$�u�n�HvN.�Ͳg̮�rQ�t:�:��	�m;�1ɀ�jֲ}n>ȍ֦S��m;o��RoSD��^kѮ�����#�)
8��B�����B
{mա�o�'�l��$
��\��o��]9(�*q-|������Z���v+\���
����qg�FJ���0���g',� �j�-&��a���S+�^i՞b�B�\���ܼ
��^�I;�ܢmph���b��r�!��^�t1��I��}���w
Mѷ�g���T�G],:�I
]G�������׺cw��q��ӷ�K�`����B�y�r!��O��@{r�H�9404���ڍ�G�:���EM?v·tM��=��P]��� ��u4���g��U�n����ы�ӻo�Y�F�|�s�,z.�
�����KWt�:)�I�abÿ�a�v��Рs��C��!��n���⫭��rc.��	��U8~<�nI:h�W�\)%�E��܂|�z�Q{c�UiL.��8�|5m�NKg���)���
����,M�X���MKk���Ys_m�=��N=���fx��2dȐ!C�:�,z�v�5��x�;���pQ�^�f����}��+t�98��j�ھ�cl=�\�T��!g��k����lږ;�8Sf�z�����S�`��kA��N�K�xql������\um=cSN���أ[��,܂�-]��Y�[Xb���ڕ�{DN�Z�2dȐп)�^���ԇW���ٛ4BB��#�KJJV~Bw��@,�K�ױ�@���l��Դ��Ԫ�;�C
\���50TY~�ԩ�㿁_�g�3�����Aw��A��th~����w��M�����r0儾���WxA�/��G��&�κ�u�����m==#c���@��TDo��e�jH���`�����
��b����a茅��c� �����Q��'P&�iF�a�ak�.�ͅ���r+�O
�%������V�niǎC������V��lj����:�Uz���_ p
���SH}��iֺ#u����jY٤�Q>�����i3�!T���Yu�OY]��{�%�~�o�7���V�\����3�α5ρ�˵PI߸y��ʚ�^�sp"�C�S���۱88{�W(�+�
��a#ǂ\�����gT�8ؗ��q�,���N�0X8?�P��st�{]PpQ\H`p�`ex(=H[�m1"�3�w<��J����􄫲]$���,4˴H}��0��§&|�}rjZbR2�l��!�9�T�%?
�LAqVV���h�V� �&OX�n.~���K�my���{
�rc���&%�uw�fkO;�/~���(�����о��ٶswTϐnf@ml��2��N�V���5�32����8��N�_
�<�B�T�勇��In�z4�b0�n�[�Z�/G�����-�Eh^��������36��Gc0V鎙s��_U�^|����d0	�V�'}7ko&o"vGqx1?d���+&SA��C��
G��V�Y�2dH�ϑSP�i�l�r��I�a�0���7x�c���[]CI:��#t�R#��'Β}$M����/p_<������l�3+g���J���eF��A��k�&��J��::��!���r&;�h�K=���hu6o��4w2�s8�Lf��[��!P�G�D[y�i�;��̕Z�2d�x�Ѓ���4DLLp�Мp$�W�CTr�c��H,�,�rss�WW�����U����A,���FUw���pČ�
�X�%�H)׬�ů����~�	��|FƝ�Jo�+u��=������g%?�:�t���7�w�=�-^\�)dюA�7o?��T85�i];�#'�5r
�h
(��!���o��`|@�Fq�HLJQ��
M�y�ôc�O�D�	�202y�(4��"�h[��J�\-�Y#q�����lj��}���(�/p)�ჇT{&
Gdȏ	��3+D,���S�
+D�^�����paa���<�X�7l���=�X�5��q��.*�!�<���X(5�s�#2p�h('Tb�8V�ԬW�s$q��)�f�J���g	`�F���:�4b��Jz��ig�M���S�^�������^w�폣��T!

�^���.\��6$�14��/ ���=s΂W[��*�߲���f�+�V;����͘C�h�0W
a"��3��~�$]�/4�Lb{x���·ۓ�!���f4�7.>^H���������S&#�h�f�@��B��K�|�M`��c�J�҉T��#�X`���t�D���'?\��G����[��v�=����2dȐ!㙏��c`�a�w����e���,F-~/�.(����ڻ���tV�R����.�|#�`�Y����68Ao��v
��n���;�F�%�t)��qZ�9�"�
x7u�r A��ሊ�T��`�����!�����2dȐ!C�3����	�Y�=m��S�O?��ə
,_�J��ACY�2gsKk�b󫗚���l@[ W�EPDB��H
����!�����Fۈ2�����r���y�//5���+�����H��
��z�R�xF���h�^�����u�=}��ޏ#�6p�w�jh�6���.Pu�u�-�z���?�����0��.;��P��pᖋ��cFi#�J/���Ȁ����h�䢀6�'8:��f<B�����_�"�7:��;��G��iE��D���5�ui���:�˫����ÿ�ihj+��Q7�F�����0&M�F[���>�V�N=�C�*�9p�0�/.(�����S�}�p�,j�Ux}`�����T����"�f��N����	��(�d�g��(
�0p��E�ʕR2�q�h��<p,[@S�*Up<�����)�h�伔��U� �J�‡��7ȞȽu4��z��n"C��}.�(���0~��	�h��������\�LH�.����T-ږ9jZ����X^\/�f�G���o$�?ړC<��|e09�wİQc�x��0ឥ�u�s�e�k��9EўLU򵊚-v�ZV�|�b(bu��,��[t�P��l��	5B{2dȐ��GCz�W���ap[��=���'�1o���0��e�L6`1��(����FώAQz�>�W������^�/���m�-:h_<�8��e��1����؀��&l��K��N�l���ʪ�B^͒A�V��GSy;��T����.�2dȐ!=�Kh(���G>��YPP;x���3g�����x�J7cq�ڻ/����Q]}u3�2Jca8�j!p�R�8P���L<G<<�����#M;V�`PFC��SR�ѬX�����F1��s�@;E����]QR2��Y_Tr�f�
�:���`��j��`;��H�.�F�,L0���z��^��iI�xDу5��Գ�yx���6h��q�����_d8|�j��T��:P���[��gh����F6�bU��0h�V<O>����7��yLͦ|���)t��G4�����Q�4���i9)��,\D�����s�R�b�@!��;Z�jNm�������#�D	�t�x�Sa@$O�!�^����Ɩ��˯�3��H�5�†�2g�B�3B�y5�i�O�3D@3&M�ʳ�v��`wm��:������`>B�q-�����N=����~R��	8���
6ʣ��'��b�GZ����3+`a�����!�Y�lH�Ęa�
���	� pGid��6�s*4)X�3⿄ڝw1q�Qύ�`Y4Ø���ZhF;�
u�7��ǹw�#v����ܚb�U��L�hQ2Bo�T� ���@�L��|ː!C��g>и<Â!Ȩ��˾Q��[`�|��]�38`�����!��W�9��e�8f�8<u!�����O�l��15�8���}�h�vw�=v�2Wݽ���d�)8�2P��9�⭔ә�r9�ǿ�{Olp̑��%��!C�2��7�eeegΞ={�/�d}���
�E�U���
Y��9@g�U�mq_�[Uehl����@�\TT�^\8Н��bB�n�?�WT���|kʴY�%E�Qm����T@?��'��f'_���MK�6II�g��{%ť�nA�;N]ȫ��K%��!V��V@�P�?	`���=򮡩�m&�OH\�2<ji7u��[pb���Mi\
8v�D��#�zC!�hpX���ۗ����d%�=_�]�,Z�[�o��ԋ�� �O
����КګE
V8���L�;�����+�:�(`����\�v�_��8�4WYp�[mS��;:����8��t�H�-����P7���/5���YhI,/^�$zƜ�u��"\h8(�U����DWw�(m;b�x�ddI|"4�d*�\�7�z��4�P�#W�Mt�np��<0w�b}	yX8��~�L:�4(��)���S�M$�؝e(�:�:U5�Ǵ�`k���r�Z�VeX�zh.y���J/�S[F��˵t�L����Y���~��$tC����[����tb ���>z�D�����i��T�y�j�*��E�@��~��YY���]���k�a�2�)�t��s��%M-�2t���9-1�HQ4����C�2d<�PN�G��}$���-\�N���+��́�ު�\jl�yP|mᧁT�m��[r�)�FtA�U
q�4r�g�A�y�lNZ��@a_ˑ�;��(<�ktv�⹱h��G(Ph�/�^�|Eh2dȐ!�R@��4�=���*�yt:���䮔\�.[�5y����1�"�6��������:t{���o4��&|7t��h�������B��ؙ
�U�!�ti��al\<(���+U)�~���}�#�ÕX\P�$1���s����7;�@���>��PF����>��Y��r���� ZI
y��{]h����r!����k�UEv�E�"� �K�"��`�2n�_@��
_��U���(���C������w4�)Wjbnd�:�}E�6�mj,8�T@0G.�������6蜫��`�Q��k�^��-9%��t�c�6�����	}Vl�H�,�B<�^b60��8\���%1�P<�f�\&�`\|�ZS����oh����?�:|�� �Lj�X0gG�-}��D��<Jgff�_�~"M�f����)���+�t�z@Î�<��Q�P橎9m��7)���`D!U��B�s�M �TXh��T9�2Mm��Ǩ��)ʩ@s�a��퐙�-R�S��A��a�v�	Nz
�Z�6d����߰%%W�Ī�(�:�m�-����� ������v��AYohb���*�2d�x$��'�#v�ڟ�������o���0u��
=|����!Z.�W˪��]e��ľ�c����ԡi��?��Ձ`n��9ž��J@�t��l��TǦ�d�n~X�u���4���ƭrK�PzTB*��씨alL*�eȐ!C�i��[{@C�0"����l
�������fL��q��j���1���^�U��䎛�-��
H��.G����$���AZpdk�6r�ט{�[��]�/6k���W�����3���b]]}��f������������$)y|��{&��^���6 2�v�6-��m����#��Gl�	c��v�
��`ɪ5���r�0z��dS4�����[�…�n؈I4��zQ��4�k���wN�>T�+hZ�#Fs>���y�ؤo�`��윜�<��zx��:8
9�i��7m�n{�]=�F�����*���?w��(���e���~�c���FRCN$4����[�5.׵d��0A���M[���C:�@�r��m�����ᐖ�إ+��[Y�d��<@��r��k������
A�l�����b�5R��#�@'�sr�
M��
�z�366��^���q���"=�����檵4,
ȩ�@3��y�CV���u�mذIo�#�j�a�h@0��5z�����
|Qh1��W����@R+63�2_S}�(q2S/�C�?�q�ד�xڴj@'&��Լ
 ��yz�b��q3���ZZo'�ٌJ�װݰ��e{��s�hM��"�-�h��ய�ŽƋ��I�\�b���s���͹.���}�(�Z�2d< �u6�]-Km��0�XY@u��$"IN;{A|�ȯ�*�3� ���'��x��&�F;�$��&�u7!̸xi��m~q
����MKϐ
���w8dg�^�&����u�{rj���CYP���r.)eb�a��i���*B$��@��2dȐ!C��;jDx����/=�2�M�_����z���
g����-dO0t�h�����Sk Z���{"��].��ة3@Z����X�/(&f�s.vs�D���O7�N��GCrj��@
��ۀP��P*��n-|������{����&n������{ed ���Vߏ8������k�;��#���)6� ��a���j��y1L�SU��x�1ڌ9�Sb�M�r��7���(��{�v�0n�{�lnOd4��yA��C��G��r�1�)�y=|ᕖS���Bڷ�
���Co�2;"�-k���x��i��鑥˵(���lT����
�ݕ�\�"��R�?6�cC�&��"L�CQ�z��^��x�B�:������l��G&���/�X�]��z�w(�./�:�bO �`D����	0��?q��#�ƙd)��`�W1�fsjH�_mՑNa!��O��������Գ�Jk���f~ᕹ ��pu��kӖ��$Rҏ�@8LMH�NFF�#�o�/|9j�
"���G�k�?������#�f��y�1�xA���KhS�y�6������[�������-ZxV4>�����qNAC�)p^�V�׭�����n���L���>��`n�:�z�����w?���.��%�w6!|��V�h�<a�"X1�\UZ��Sl�?���SG|T�ٺ�5�q�A+�=�`�~��I�n�A^iَq�B�f���5٠}������Gt���E}����B
��K4ԭϹ���00M�L��	j��Md�Ƥɟ��Jߐ�ʐ!C������uOy�;��o��E�����0��P���._a1S��[g߿_S�:�yK-�Ç�5?P/H�?�Iٔr���Y�w�� �f���j�D��Y*�`�o�*,�ʻ��?�.�\�}1���oɐ!C��������z�4K��wE��D4�
��gڬ������
h�?�ʀ;<�.�5�e6���k���~@�پsO@���DF�V��(/((@��zsZ�r�w?�d�����pA�X\8��o��E�䪥�S����+$�p
?`��ՆKXL��s�_�{wƥ���·��_��xF���hg�����Gs/�<�Y**+]=<U�13G���$ʪ�녧3���y��5��f��5�6������w�Uk6,�\����ظCX �:VLr�V�[�a�0�%��s��j�^w(>A����%���ǗC�o�,�._����-�d;8�ګ�骿�t�
9�\�5W��9'������̙sT���r�����)m��BOMп�V�KU�d���3lO�uQO�y]nn<��*>h�Ն:û54W���R�{���c��ǹ��bB0��X�����f͛�h)����u����9�M��-�r.���.��!1+u�.]����3%%�F�m��O(��O��34f�µ��EMl��h�DW~��\y��98��vpri���J�bg�_�p�r΢�Yus���%#-g0$����)j⢢bQg\g�r����9����þ���BR&<h7��ż<�~9�V}�b
d��#M��G���ў3�
MO?$�(�i�h5M=�*T�Y
Z;($�YFf_h���z+ɟ�a��Q�p:�\��9����0Ʌ��%+c�-�Ƃ�fW�?�W'����N7Z�^f�Gު����Ճ+���������(����a)C�2dȐ2dȐ!C���P��E�~��u_�O�9��k��a�� 1��l0�a��~
%�=�V��݌KΡ8�N�5�-����!_��X�>s�|~�v_�~L�QP�A�	\X
%20�}=i2k�yqj��Ϙ=���y���z>��YЊ~��E�eHH�Q慪���}��T�E�wF7�<ʙ�P8]��a��*x�o��4��^ݨ�h��VILJNAi�d�RM-�Y��@�Fx��?\(p���ֹ(��ҏ4^�_�M��7�����X2d�{���s���Rr�A�Hj�
�Ͱ�&�+�X�D�H#���_CX(#�ZnR�.�+rQ����|=�=(�5����G��n}����=<�z??��^�)\�7x�ыZ�<)q�[4�@=�
辛w�{Nnݶ�ik{sk�o��޹z]c��J!�_��$MF�3�9����\0G��ɘc�"��nђ�o�ήBa8�xJqA;����K�L#���ʻ��39����ٳ����\9��+�Yx��5@�:��M5��u]{���R������d���gS֬m̧D>��>+�>�K_�?���&�4�h@�@�9���;_ΌU�|������&��d3�G<]�d0�R �=�y{���6:��͹�?�0��E��j�R*��U���_fJ
��9�le}�v��bߔA�5(=	eTp�@�T�T���9���u�t參����on�8t�g���a����>{������a���֤ٛ!��_�"`d����b��T�+y���tC�8��N�{����Z
�z�\$���t�����m�;v�i߱{��ܵwæ�j�i�ȓ��7mi�м%�sZ5~�?�|,��h�U���teҹ���	f���I���V1��
�Nr����Z
��*t�TJ�kZ�@h4��-�6h@-�@=-�h#��h�h#�@h�O*8r�@h4h�F����gi+�8�:٥����I���A���u�бu7DpS)tV4�*m���P��Eb�V	
&qHbB�L
]�P
	��=�?�sh@���	a(�M�h��h_@�
�4��&@��
��
��'�n@�
�4��&@��
��{h�Z�@�v�h�Z�T����\ɂ]�˥J��
�n@�
�M����a:�d���x|v2>7�}�E��P�u��#�������R��vr�W6Y���iRAo�yY<������(����b���&@��}�l9�;�L~�ڛ��c�yۇ��k��V�F�����,w�Y�r�g�k�'�#��O?��{w�O�
�JM����yEu�q��7o2�L&�$/�`�%��(��5�5��PAP�& 6 �(JWDQ������#ł�",,�)KS�}�L��l��̙�{�=����M&��w~��Ӧ���g��gy���gEU�)M���45�$�	� � � �RZ��2���x�׷�;�� �OC���*�;�5,��A1��
C����eH�̏C?
VP��U�sLq|Y���k��>�i��R���{�ttt@�����544@�qA	hJ@S#MAA	�%����s2�e3���w��}<�i�^�3zkCBg�8���bt�xީH�K���/|�7�u�tC-����)����+++�������ݻw�Ν�����􂂂��F� H@���F� � � �|���ʏ^�#����%i�<����'��qf�1��H:�
�:����_˄��k�8M6b��-��UY\���F��;
����x�_Y@?/�l��\܃��ꖢ��ª�<����&�_T݊c�݀���x���			��c|tii)G$��(�1l�؉��Q�e�z;�4	h� � � H@�6��|������(��-�J�H.�wnꨰy��̹��"vܱu��e��4�3�H4��n�w%���4[�=��I��1��MA��n�v��VD�h�D^m�l۶���sTc��\�󜛛��~��u999��W���M�QNi��2�/?�	�<�O�㘹i����;��=.�>-��4�
�ggh�����#��פ�$փ���|� H@��G��8r��ӕ���f��0��'���4	h� � � H@�:�U�ƿ��3�� ��`��
�{?p��eU�߬~L��̻�Uïm��ݐr���$�SY�w��b4>|ѿ�N���^�#t�G��__X��f~��߿ɒ%�z�%�a̵������V�D}Г'O~E]R۞��;��q��_�����������eĕXD�џYT}��������F}}���e�U����p333�}�e~����w���������D��Q^^�	���8�DESK[7O�#��/o���u��3�=,	h�AAA���۴w�}x���e"���8�	��a�����D���9��-��+P����0�dV��
�zF�%;$54�u %�&�0A���aٲe�y�R�݌-t	�ǟ�`<0�IQUUՃ#�@���˖�C��FFFjjj1�.a�x̤�ԩSqI:`�b9I=eʔWЅU�Y%�=�6��;�掞�z.(<ZSC��WL\��n{-M���n�:�s�98�<��mwo?���Gܽ���Y�b�d�씼*=^�S�Tz��~s���۰Ϭ�Fqq1+�O�}dxH�W��#�A#�1	���)��f��U@��؉��Z�E^:�s�0|!�<o��1_�=}�"�
��S��&MAA� ��e7w~�J͊ݪm���2�J�Z�_+�-
�U�7�f����k�J�P���O���qHKGk	h�'N����Z�JCC�RQ7mڴf͚u�����o�%333t�^�ZWW7>>^|	�DSS�k׮=u��|`*�vik==���B�%�]���XkÆ
vvv(���Haa!�Dd{ѢE�������o�a��'����͛7�X�b޼yX���U��뱰�X�~=v��^�*-��:�n���/���sa�ZZ�nވ3?̫������A������P__�~G��Dž�#|��?yfd���~oFAeaUO!h8nV�#�X�+��)�g�9e�8ƽ٥�Y�5��=��F�d�d�֡JT�ǸE<-�B�̘��Cr�p:�������5h�1�/oxC�-##f9��|�JLjj*�>����p�"�P�0zA2��4t��dyD�φD���?�^]Gf丿*.a�?6j�_���T���0�@���Q{�W$�I@AAA�/�*HP�^�~�t�2�?��(F�Y�\ǽaUg['����F(�
��ςg���/|V�/:::ZIIi�…�������+W�\�x�֭[mmm�.]:g�&�Qa�ܹ�
6668�����b����1xO0�***���G�������˝�����g͚�~J{�HUUU77�ݻwc'�9WV��V�wA=c~��r�
3��z���<{�l��%�o������5�w�}�`�����Akv�[+**�&����v�LN��>�x����C���T�=|NB43}l��|��q\rz��v���|#!EWW��'&�!]\Ӛ�/�?����&�q�1�������𱘛����z�w�����0��w==|���]�LJ�q�����b�r�����[u8��gkg���i��>�a^�����6v��'f����(k�ބ��YcfYLR	]�o,`E�޽�N���E��I�H@�Q@:���w�As�_Ј<�ʴ��m�٠�q�q���7���Gd{���T�Ir�I@��&� � �t���6�w�D���q�b��㢦:�-�\��o�AЌ��a�Qd�5=����hd�Q.����_�����x
.����p�\WWW摑>F�Mr��Eyy�.��h$�!S�%�]�aHm�Y`����oeWq�3gpA<}�t���7n�0��vr�����b�e��Y��H2��2��_K��@����~��>x�@VV6**����?���x+�z�"���^�������51��zס#��5mw3
�-���E����b���W�߂�E��頣��[�ZX�JJ�C	��g�[�?��߻IW�����PK+3s���vtvݺu���t��C�Y�d��u��Hd���@Rz.4��T<�33ǃ.�v���0��f;w�����:���/
U�S����A�=��_�9��Mh�9�v�yyy�iD:^<�fzzz��M�F@c�t�h�"�4+"�"����������/�b�$��Mq�&�)>���f���?�7a�Z�_���CeF����5�$�	� � � 
�g�	Q�,��2a*(����$���hi�̏��
e�ť�!Ǒ��U3�2�-h���Q�]������t�;��xH.�۷O|/��p�P��,c$�5:�ޱc���6�@ ���>������EByڴi...�
+��1�j3��C
h8quuu���E ���X<v�mHp(��<yKt���uLLLdd����;<8:��%k@C�%zА��&#|��4~�Ns$��zF�g7_mm������Co޲Yo�^������+���aj�L���v(]��������/�V6s���#��;LMy]��#��jn>X�•XmMML~->I������n�bn�P	Bӈ<�w��j�
�q0�\������;��%�pĜ(��<5�ڨ��B@����TO�8� ��&4R���9;;Q��Qĩ��F
����#�%�?1�T���6�7�1/�y�T�/t;�Y]]��ގK���F~1z����c�*S�xب�l�xE��a�&�W����{��ƣSr���d�q���`��`4��؉�F��
��	�l0� ~�0	n�+:Ǣg��p�,����ᚺ��35-�S���d����X��&MA�e�>����4��O3�ڶ�Ң�

*-�@+��,��"A@�%	��d���("�"B��dQ�+v����ﺗ5g�� *b��u�]u�v�T���Ͽ�zv�1b�8��U[���9[
}>w�M9����ᇾ����M_n+5��9#o�6�֤z��ܨ��Xt:�ԩS_$���ѳg϶4�9�\�Gb�,,�E�+�1c—�d����v뭷�1�e��:K�{��m۶���h2C�i����	�Z���>��Q%S[c03��6 *௔#F���!�n����Vl֢�̷�m2s�����K�l��5��Z�kû�
#���	��[��5/Y���_��xyfY�W�}~�Q�6�:�ݱ����.i�����w�R�vYm���5[��?c���.^��|h��3�f�e���T�a�������k֪�������ў�p��=�vۿTؓߘ�D	~
�#�(
1S�9<��G9�Dt��͂��R>V��mۿ�z�eX�@�{a�����;v�,T�����/xk�Zu{���+��4mq����*�U�\��m��y�|<ҴE�[�(����-��=��n�-����/���?X�A��
i٦��_�T�N]��2��FM��+p�Ĉ����^%w����h�|�Qn�Nj�nԤ���<^�F���7�J��W\�?G���+Rt��Q>}֭�вM�u��p��h�R2tx�>/U�QG�
�:�1bĈ#F�1b����߶X��o�>��Tۍ;����s������>�G��$����;�.;�z޼y	��nA�U�f��v�֭q�:����LG4�
�5����a{���1�hc�	�
¶<{��R��V���*'�fm1�$F���X
hjkm|��hf=�y�fЙ��hpv��EժW�a#��n�z�N��L�tj�^ �Rv�޳^�����ExåG���d�b�M����r��U�o����q�VϷ�\��Gg����% �f'-�Şx{�*:,0H���o��fT�\�`�:����O?�p��~��~I����l�6�
]�de��iu��/W�t��6~�N���=���qN=�G��=�c�E3M&���>̽S�����W�	�1ق��R��}^��]���z{Ѣ�]�aC�JURIN��X��ǃ߿��~&8PX�5�)3�<q�T{>\��W�X	�d�{bb��i�?������C���ܭ[�V�Y7{�\��o�_��/7lܔ|�0�ٻ/��TĿ��e����l�ʟa���]Fz_bC����:�1bĈ#F�1b����|6.I5}^��ٵ6��z�u��M�r����F�\hz�5��-��F�Y�/^ѭ[�@�N�w:th84n�8�ǵ��*���Q|y����3f0�ضm���s�Νً�@��)�C��,�;I	PZ�PA�N��V7�;mР��'��J̗/_f4p��zŊ'�AX��_��J}Sg/ L~�]�KW}�qt��4�la@h�h���7�9h��[�~��Z�L���ϱ},���Z�\�e�g_8t4���5K�MPm)�)������������w�Щ�r��
�*��^y�|��L<�:v��Z��
�.|�K�l}�}��d�����:�h]�9��q����+ˏ%��3�
kfЈޑ1��o���狩�U��W�d��d�� 4���������%[��5��/W�����_�&Və��@����̳M�^�MC�̙;�F�˚
��r��e
���f-�Ԯ������[�hq�zOSX��x�"�<���9�}�oٺ�٦-�Ǽ65^�v,�³f�A�������.�*>5~�d]�"�^���w�۩K�ݻ��X��d��-�'��kָz�����%ȴ�b��<V�\WFt����3[��܂�Ya�y�)KPd�r��?�[t�o,�}$F�1bĈ#�_����E?�+�Y>g��*�o�k��#hږy'?�;�
[2�X���5��Z$��@���2e
]��q8�#�������>��ܹ�M7��y�FÆ
ɍ��Q�F�g��p��J��PV2�6�
�f�]�+V�82v�W�^y��eRw�ؑ��bŊ�������gΜVD���yX ���x��,�C�bذa�l-uV<��ʕ++�q���)��˙�\s�5(�m���� N��fd���䃵�0\�yۃ�r�xyȈ7�zo����5kn����9�>�]&�Sf�5��Y�j54y��Y�@�/���ةk�J�xt��ú�u�ֵ���hD�a�Ʃ�^����Μ=�gL�1�I��̦�!Q6W�'+U�?hh��ݩ�˗/ۡSW��K�=|�d����~��^�|]��_����Z0a�ܦ�[ԫW�?�i�/��_g�-J5�pA���:��M��6z3$�1b��
�[�o��.�}m<�ۮC'>�x?�DI����w�.��\�������Ӎ������f�8�<s[>��K9i��k֮�������l���x4�پ6~�G����.nѺ�N��Dɲ8/��7D��ۍ<�
��p1.C��Q��/:��th�-�p��4�ӫO��_��.���[�V�
�����ي�.��L��{�U��'�>A��uh��\V��b5�6�W�&͌��h����;�����='�^�?/��|T��l��Y]����ی�l���\��/��š"�,Y�2��S^$�p�
	<HHb���P�r�	�ٰ��it��W1k�,�m�l�{�R߈�5fP�1bĈ#Fп���e�Zܒ��~C��m�>|�L��|����E�o�H�o��๯�*k��K�����9s�p��l��8��&*D�z�a�ܢEGW
�i2j�:��HÂM��.0C�۷/au�147�޹��0w�{�ׯ�+�_���B�u������(��?=��,s�2eʐĦ�Mk~��v�
.�t�XA�b���h
�V�dt�bv�-|�{�ſ�I3�Cm��n=�������<��w�ԩ�gr��hڬ��V;�Y�ʙ�4�.��/����`�@�ְ�`�v/ �Pu�ʴ�][�Nj0u�ۊ�Z�lM��Yq��������1n&!*��y����`���E�6rT�k��7�
h�/$g(&�u1�sp������9F�>1����h���t^T�3����tV��V�a����.�yE`�n����߅���D�yw�ڕ�T?t��)S/��j\[����K\�ty��q�'�Uz������_��7������Y�i���Z��[����&N��xz���j�GYK��/��va�Ͽ0gο�Q����u��6Í��{_3CWO�4Ź�{ӧ�x�y�6�=�(��jD��	�ݜ�T�����CU���u$�W�?/<צ3Y\�ɕ�\�����sgr��x:�4ڬ�{ᨣ��&��`:��G�qQ�d��<�	Lg�_���D�=�D��2�6����;,h
f�G���G�/��7��
�9ƈ#F�1"�����
�KŸ�s��-}>�cѮ�ܟ��_4�p��VK{|���%C!�A�ډ�9'�e��I�&&�~*��d~R^1�|���|�.��X?9�I��j�+��A�?	@'��D��d�f���,��ܐf����:&L�Ke̔�5�q�ܸ�_��os>#a^�n;~ݾc�Ҳ
�,k"[�\��y���N��?�8�)����怘9��ݖ�e��J�nٓQs#o/]�to�-���8���%�2h��v*}&�>#FT@�@x�[ϡ�Ɲ$�2bL�2Nނ�j8�W�b5v����[d�c`���)�)�_��l�$'�Сr
_y�u��������V�VS'�ڠ��o�׏3N)����-E�ˮd�
�e�7��u0p���������>���d����.������g�*5j�3;]n�#sK�C�}�l޲9|I��õ���`�>�nG�^���#|�׫W�#Qɍ��;�Z��X�!#�X�ד,�ǁV�NA��o���#%�Z+̜�u�=C�4��N(�6�:�{��k�B�l�����V�yT���c���~�X�,s�<��{��X\&^;v����;+8�YNH�B�(��fE\�H*@jY���}�%�1�*����QlO�y��'i�S��&ؓ�ŇB���qF�̏u��t��h���سgO�ݳ/�<��
�Ə�ň#F�@����_lNm�,,���F,>��7��I�g�e�ߡ���|9^]?�̯9Mq�\��}'O�<~�x�csf��a��	�>����€��5��˸�&��9�٬��l0�?m��Io�iׁA�Kd{�����G�@{��~�A�|��8+9��谞$�g��R%ω�3��%c\ň=���*ר;j�d:�P棠srh�k����qO�W�QΦ-ۨ7�;
Ja/��u���<Z�jM�n��wr��+s$�~i�@-��-��XV�"�&Z��0ɶ���*�D�x�2�@ϧ�������wlܸI��Ը���[�"E�z'i��yo��T�Y炋/�"@�LЬB`�Пl�s\���=T�ɪC���|�n1�VnЧ��O�>�,7a���	�pH�<��S0=mڴcq�bȕd��ɓJ�fY�(�'
y��X5�#G�|�g�|y,Ct��}���@
�S��*�ʳdy�D�#���˷j�*�Ha�N�"R�k�9d}g��[�޽"�(��$1582Y�·��b��:R��j}�P[O�Y!���qd�Sf��=|���NT
���A3�q���ސ�_�u"��	bR]���B5��J����K8鹰1��-�6mڨs`��8��j�H L�)��M��p^�&4Y)z��;�k�[�	Wv„	*,s@4�Xb2F���@Z��"�o��ӂ���
C\�?�Hlذ�E5t�3x�ƹ0�����vr$�fE!�~���D�Y*���!Ƙ�x�QK�Y���1@ݫ�ɲ-��U��m�ԫ��Cz�����;����C�S?6�����(�喃"��X����:0�Xk�3$�Ԍ�bTgI�}w&�_CBV�^F�U҉6u�R�[�޹N�
S��g���Fy�f�1bĈ#��
�[-�n��@����"oT�/�b�GӲ��=���C+���-��«�7���6�7_�� ��4_
O������M���?h�r�
Lz�6o9}�b�dl��*�b�i}���8!���t�[���?�1蠉]��H�cD�� ڕ�u;u��9�o�^�8ӃΩ��z�s�K�>�[�p׽�$;c�A�ի4[�/��yb���x��m7�Q�{���'��u<�=����C�[�f��x�Z������;	�(�O�e���s�����i��o5��#G����y�s�=6�>��K+T�@�]���I�K/��bNd'��yΟ5v֜�
�޳wT@�~���#�%��tX�-�GVR���D	h���0MA�`��\qB��}%=)fW�ti�]�Y�%X���S�����Ã�/0��N$Y�	TuBf�;�d�_�g^��l��M�\Ubp���0O��J)x�C@���g�9.FE�[-��)�]����3[+���A��Cd��-^��:4�#3�A�hW�u���^0.�&t�Ν�q�_���V�'6P?&h����M�/�F���*%ȕ����g����+xtHطF�/9
�u��ʕS�m%��+I[ۉtׄ
��u��u�TX�^����ͽTC�T�2^]�j>��������5J�0��|�CM|+$"\	�����
��'�
�7h��
g`��L�9�9���w8�Y}�M�p��b/ڨ�tZ0Q�D]�4wt���kD),�|e���<��i��r	���I�OCT�]nm��L�����,���NT���7W�Α��i��"�뜀��L�q�q\ά��._�…�-WG��(2�̓'���ږ����'�Y�(�_���pX�\JUu�!W���.�#F�1b�}z��9�J�-�p�q����?~���ݲ>�1캋�A�3�&f������d�+&(��b�?m�o=ͯ�>����ʏ?_��K��u�/���m�bͶ�S;}����/w�Ё��a�Z�"*F��O@��"�l��nl߹Lj�}>fB�&-��:�*�d���[�皷�+���E�_��9�W�%K�W]
�ع[���C�A�u��7����W�\�_O9�y�-(��{�h�U��r�s��X
�'J�Ug��Ur��9_KS4���l9��C���WC��h٦݌�g����?/Q�<=o���{���@�h?�X�;v� S�M�R�v��O��7y�4�gNӻw�q���U���h1u�T�H���T��b
���br0���YID�Xarn�0�	!��&��/���'�#\�y֦�D"�,�
��AU�희��ɢZ����@�`�y���F��LnV

�e�$s^{|�����D�:z�h�M��y�W&U����"Xp���<��z��M�6�(9��{3�!@oՄ5DXGض�Ŭ- H-
t^����`� g��M,,@@	l ��a��B��
0Z� �A�5��@|"
��50d�
�Ҁ���j�ˁ��*���8���;D�c��N�†���aot�桟����^bD8|C�kV�; ��:^c
��m�J�+R%ê-����o�yFu��

W��W�qd�p9᝛Pl�h����ɻ���1�p4��������5���I4�FT�!����p�������lh���9�{�_�a�;VW�V��Md�j�\z��S/npPqY��`�a�h�f#F�1b�8����]��9q�`=�s��3��+=��9)��w��Gb��q��w[v8� N�?��������������@�QЙ���v�;�H�[��?_��>�lӏ>�8��P����I�
�6t�H��ܮ�=g޽<rQοЖ���}E2��W��ɥ��<e�=X�&㿶}����>^��ւ��%w���V��ɖs置m�S�F_�~�E���.\�s���Qc^��n�F��͓А���gF�/���^�&��ԙ{��#�>�Z�V��)�R�\b�!ȟA1���x�(�T��[Y'F��7'��X!S��n�Z�c��%�T���lݺu�G�p=���x1�1ɧ:��"F��$��![p�8:,�l�e�T3e���Z瀹�R"7d��d����p�O(y���2h�#�	��J
�ЁآN@-����D���$+�X�Ht�s�a3h�pv@̉�<�Îj��'д��.$�1��Dܭ�4!sWh��SA�^M�v�pq��Thr9�r*�]�允�s��-��T�E�	�.�7��z8A�p����(�k�6M,OF����;Et��CḼg����Ӆ6��
R=�/"�r0����^va?��ܲ�s��v����6L�n�<�K��N�{�%\x��G��!p/Ae줼�=F�1bĈq��>�FX�/�Z/�
�1W���/6ZM1���B���{gT�l��#1~�����d^�I>�w���H�cD}:=���4��D���Hw؋.��{�T�F���9�׮�4�et8�ہ�y�	~��k�+Z�T�n������n-���K���|�W��
)Y�b�7�����(S!O�!1��e�C���8��_��X���-��XL7��r5�L��,W�[چFT��蟊�ce��t[G7]J
폠	nSbBlЄu sk���^|9ϳs�iz�9ׇ��}���~�������7������b@V]u-T
y;��n�7�i��_���7a#sj�ĵ�{�!3� ��|�#�В|о�,���5��e���ԍ��W_s�C=�e�m�\��W�����S��J�-�AL0�u���'��~�?!��켔ۮ�v��:K�e�R��Vi��C*�3�D;j����˶��/�U�����"$��ea��r�Ѵ�Xy����E�j��G��@j��HI�����=�~�q�+oT��q��	@G��9��c��8��B<*@��"�!���U)cX`\ �a/���1k_�?����k'�z�#�����g�7�]�@j=�,��rU>K-��\=�Y |���F G��8鱁C�Z6�{^���K@������78���D�%�g��鶮L��]'F�jl�5��1,*Qm�Z�.����b������$�����2�"�	t�od�5YZ��˿���SV!����������p�fw,T�]�T*�J����|d�ε|*�վ�7+����^yӳ�_=��­ˣS�F�do�����JS�S�N�8y�xm�n'F+��T����|������>���\�e��΋޻`��Ŷ1y��?+&UYn��}+,�9�����;�\2g������{h�O�g�����—(��,�~�[%�*�
�ĵ�;�a�k1h��4��W�ڱEU��
@�h���<���lppK��8A���A�rN{�3(�T��J_���
���`��j_
�)��	�H K���VA�q�"(�����(34���s.^���jB$g4uڑ��kH��>�ڻ]�Q�p�#�\, �lY���h1г�0��m5ġ�n�`Te.�X����5Og�-��pOq��/�Ư3��a��:��'�D�J���U�	�;gLt_�l�D��#���磺g���R��WV��!�|v2>��.�Nd{�\5�c)�[���Z��ԃ�hoh�8�Š�G��J`�ȀFx-Z$��%��ꊜ��!r�3�&�B��bv��h��	�S�6q�-��Y'	��6�}���TӦ�u$7Ja�=���H�U���	�n̸C�pKΧ]�T*�J����z�o�����mYz�_v���2z|�#_:�ѵ�V�����v�R�T�~:Wx@O&z��+����dd׾N3j������^-�f��)c��D)��.�Ȧ�`�R8��t�˔�*J��Z���b�:\�Rgh0k��X� ��T���S�7�e0�������Q���
h.�4#�D��b���$�,��D%�飯���T�3�01�3����F�dH�Z�2_���QB��
����W3;9!��̤65�7���v��c`7���ZQ�@�S�Yx�'l�P�U�֊r9w+٠�Z1gt��E�x��e���.rzN���]��.dw��<��!9�􀶊�tC��aEy��37 ��oT�o�l�CLO��rwk�Xa�>F��i��VW�� ���;�LZHl�-�4Ta2c�����͕a��rB}�h�L�T*�J��;���?��|��K�?~�?O�B{_�?����tG�ޱe����+�J�R��.���2.]�r�ͷ"���L{�Z�`h���n���!���*�$�o,F�n�ʣ��m%HʠD�z3��/�Lq1���&~
7c|ṁt����bhih̋B���f�ܞ�w	
_洫E�DJ��K�
���)K�{�r�q@����$�j�kihO)F�#�6m��ghh��=�T�F��c��kӜ��
�kw6�b�^s&-<4z�-�6V�LaAj���;4�a�a�4�J��N�ёY����_m�Z����p���*��������#]�4@�@��@[}=��bO|d֌��.\h�e6�i=�� 6�So-�v!�L�j1�l]�,���D��Z���<#�;���v��Z�&7nW�ڢrG$��bZ�J�%�I��.����$nXN��ahw��`.'k�,o9�ҖÕ{��ٮU�>h��}��e�6��y�՛#c�UȺ��NfU�D��Ȳ/�J$?Z{�͛�hc�a��I�f�\��P�y�����ͯ�����7�.xNЕJ�R�Th��qAc�q���=�� }}��[�4�Fxكk^:Q��*�J�i�=I��g�>�60�A?�8L�����y	#�clB�|���ѰT_�g��5�|x��ߟI�0(��Ao�($~�͉�b���<ɛ�����'
T�|��X,�7�d�i-���`*l�WI�:�N��)4-Mu�9��P̀/{��Hŵթ9Q�L���^m.�^�Ë��a�����pq^Y�	�5�%�F3
j�����C:Q8�9��a���V3�y��͛7k+�Oh��DY���
��W���Z�ZO�
6���@���u�ԩ�x�^^�:пW귖dj1�T�Š����1�
[��&O�|
W��X���v�~�.��r�##XaO)rN!Z㐎�Z4����%�Յ��![G���A�ř�H8x�s9o��1Ԇ�@�Gg�{��H1��b�X�@����GM�Oº$�q+g����J�dt^���}�����SA���G��r+��Y���Ba���<I/ S`6�R�T*�J����[��33��>�%��Ǿ2zj� =�?]���3^��[�����]�T*��%��Ltn�Q� h$���O�Ñ.�\�5u�F��}�r�����<�|ܱ�DX���"U���	�#��665s��!0�*�����)xЍ�E�eG�8�*a(�Ƨҷ�w8�ߖ#���l.#�uc���U(W�D_z
zG#�&���t�_U�G�A!�6f�e�;��}U�.��v���U��v"r�o��g)Z�V��5ў�Ʋ�~�vs����Wߡ�`$Yc�b'B���U�Ùu�ㄓ�N
1[�t� �wX�Dn߽N��Ĭi_ �V8�����Ő62���_�K�t;G�~z/Ե����G�I{�9R�+�J�R�4���#��w����~�ȇw�]7pZ���ܲ4���<r{W*�J���3�imo]:w��e_2>FͺRi�$�X���e����i.A�S
^ܕJ�R�T*
����{ޖeIfW=�ӧOu�������V#�a3���}�@W*�J�е�VzZI�+�	2@�Ri��Ց<Lx1��X�`#�nu�R�T*�J��td��u�f=s���y7��׿O^��s:���FVa��|�ήT*�Je�Q[m����D�u��T���8�0���ҕJ�R�T*
"�~��[WF^����<�
����f���%�����_�R�T���j+]*�J�R�T*�
@�>z�������O���>����ԋ�hۅۖ/ݹ����R�T*M�/:*][�R�T*�J�R�T�?��MH�q�񢃄�"�V�(Bo��57�0�Cҥ�CPD��DA!إC	�s�q���H�����Ij�zqje.�|���O������;?<�ˏ߳���y��ꆲ��R��z9f�����v��1eU#�6ZVA��E�f����������RD�S[ƻ���[��u'ڒ�~;�>>Np0Z���C�9%pC��!Lj~�����B;O���i�s���<9"����r	�:�Z��b�9U��QeiǛ.M�!��ޑ\���Uh�s�7֒�Q1�g�M�O�9' l�|�z9ta��貽j��(M��](BF��=�‌śc�Mh����Ԛ���j�/7�Np0Z���-�o�!���D.�^�_,BC�x�^1��Wrb,)�3n�Ђ�w>��|����Jw������!N�������g�ן��d��)�(sz�p�M��%'֒�T�3���Mtk�՞�������w��A @3Z�=����㭆���ѦP����Ȗo���-�ܶ����{�㖼|M�����O4t���3k�;o�Z
�Y:��v�A���co*��&WnH��k+4�/��-�3؀&@3h�`h�{&�"W�q�+�[�=b�4�;t�I^gV�'ɖ��>k�n߃�%;	��?!d�!@ @=@O/����a��j����$�����n��:���_j��ly��Dp��/�\$@@�h6�4�e�NB�����!BbPh�0�X.Eٸ���\��.�֥�̦�ԡ0�N�Xot��6Z������(�vL�r�u�?��%<��.~?��
���ˏ�������2�3�ox��ͲC�$T:�wH��^S��gY��sl��
h+v@�9hh&�;��A�agT�
ꚟ+�<�^���pFe���
�
�Q��fzr�?�%�rk���Je�&���hں�=س���%�s<�n|y�LR<��O�|ȃ+tZ�;����,�:ɛW��AY�`���x����4���'қg�G�շ�>R&i����@�;s�gE�gy���
��h}����}��RYL6S�{rb�A�v@�9hh+t�H��F<�"���2O[��-5��)
Z^!�PYd8���6���g�մ��$onmsXY�/�_8:�XB��q��W1�!@ @[��w�]r��N��SϾ�h�?��m��Doؐ1g�].ճ�z����˷�>����u���h6�M�����
���s	:�N��X&������ògCv=�(�D�u���
��
��)�|�y���?�U���	Ћ	�0�4;�9hh;t��*�J�)V��{#}�l]v\��LY���Ӳ#�����{�J�(�Z���#���
_:�����-�/d�YhF�55V�w�8��D�
����KS���
[��h�E�����jIWVpp8hhs����Ί�C(���Ff��QY�����?Ͼ�R޸�jm}K������c�3�#��D�6�W&�94���W_�Ƈ�cAv��V��ZY�s�K�Ý���0h���t���ufe���y��m���}�yf�ϷLƓHqf��d�dl��Y{mOv��LlO&�8�`�Ǔd�]�U�UY�
�H�	 6$� H,`�޻�;ثX$�{�B���DQ2E�g�p^^��SN{��?�yn@g���e�QFe�QFe�Q@?p��~��+��t
�_-}�Ɲ���.ܼ4hS�ڞ-':x�h���R���j���ӛ{3�(��2ʎ��>�'�3�(��2�(��2�(���<��
��GQ���WO?��eJ�?��|���ֿ9~�toFe�QFYt��>��ѝ;�9񽛷z3��!��W�=�󰍊�:~j�?ݾs���n����3��[�;���g8��~����z��p��GNj�,%�On9��/]�5��7J���[�y����ᓧ�_������k7p��c���������s/��ܥ+���(i��t��%�GN��t%�)���KW�]�r-�*z��=��?�Q�XV��ݳU��7|�"⓫���(��2�(��O��JЇN�.kX�M���\L�=��3g{?:�s��q�6��ߛQF����zI%,�>��w�N|T-�^x�lӮ����h�k�}ߡ�ޙv�d�I�3Q��5Ϗ.[�~kp�;F��z�_ze��;�<�����ƭ[�K�GL�?}�£$�%]�V:q�aL��N�XO���M��f�s��gG�6-]��tٺ-oN��U����.�m�+��>�t���c��/����S���,�H��$	N��P��ϒ,,kX�FI嘊Ƌ�$@�������?3�}���	3�>o)��,�Г�������G�Ϯj]bQ���F����U|#���=���:�I}�?���i�����`{oFe�QF_%*x���^�7����}�����M�>�n�Ժ��N{e܌S뇕Վ�>k�c��?9��؛��n�ݛQFU�_:eN�ɞs���v���S��=�Q��^?��yϡ���#��
;��Fv�ޛ�����3�y\U�=\?svPi5�5:�s��A�Wo���Rb)��n;D�"(�����D���K;�5y����`�=zⵉ3#�����a���X��=0��q%�z����ý��-\�̈I��W0"���u���<�,�zrxq��e�����WՔhx�вZ��'E�7�n�L"����a��G��.\��
�Kg�o\���4@�>7zr�n?m�w�ű�9�@��8:ױV�N���f@?\t�ަY��_�Cf��;�GW>z�yz� �n$��ۭ�ޝ�z3�(��2�*��r�JV�}��4��cs���5jjl�����Ql�t�_��=��^�z=�+PR�JTN����9��7o�
�}d��NH�k�U�֝۩XO9��	���DW���f�x���k��6L�h��3�L'����[����I��|�Z��0�V��v�'�ny�Sg�諀�� �����(1'�p�
��H�y#�v�go��x��iE@��2Di��!�{1S��t(х<�'>_�v#�t�ԙ{��8s��!�<2ټ������ک�pwҫ~13Q�u��D��Ϝ�p��9�O�PnH��>�7���.._�f�x�+�v�����9������76����IQ�Q�g��y�w�=�WI0���4�\��e�=w���C��vo�½���}Hѱ3gò��@d�Z�/q߰�t&����'�!�ǝ�^�u��o�4��2����XhH'�<����dJբ:����g��K��'Y���J�3���zc���f����c����0�;��4n:#6qr��&�ټ#P�B��q�s��Yf��tdG��߸w'�<~�C&�����a��rRZ�P��et�XaFz/Ġ�G��qˬ�POl��s����@f�6���"g�=��ʹ�"�$�����hE�q"��-�R�"�v���3{^q;�S�;��G�ߧ�T�`����h�M�_x{���0"]3L��_J�HV����(��@���&�y��;��x���p�/��'�V��7j����O�ir]fa�Im��ԩ��nJK�&U��ѐX����t#����Q��c��CO�jQ��+Wқ��g7�a��B�q����q�MC'��RO�����{+�x�����xX@̼dV��������園S��5{1��d�L'�Ё��*�\U�}��Қ�oݏB1BW��i�f!
�"��M�<~ׁÅ�!1�8�������.��b�:�����]��J3��F�V�SgiZ������޸�?7����8�k6�6�bb�</�&YLmX�;�8�Nc�{e���E�=����?���?p֑Џ��i�E�{v|���@����(��2��+yGV�}�3�{��(��l��Y?f�Hߞ��ܱF�5P��&�(�Rl2|J�=���sk�gnGgD��'�YR����s���~J��`����`A��U����ۖG_Sۻ��H�����yQ��g����ua�̹��5��ע΍�S���ն��S�!M� ���m{&�j�w[:xҬ����fA���6}��*o����y&�e��5��ն�7'U�M�m��2}�ː��b�m|�p�:})(5}6�t�۬t]X�O�N����Ɇ�+GΘ
(�m��T<+pm]���98������pfhY�i��Z�c���j��Q�K��oU��ًV׵.X�ΟHjrÂ}U b�����T4�9�7,Z�R��6�V�%��7�~7��X���rz��_z��^�s�Z#��L;�7���p��z����5���@	��׎w�TB4��?�NeSז���\�ܵmՇ�n
4a�C���yq@BL��fI��ԫ7�[�l�W��؞9}6� $^(�|e�t�Յ;��Jߚ>�A��[U+2jڜ��֎���a����
(|���Uͦ�j�v�&�(7�xn��T5Ae�䰉�zz�A���?V�+�%�>|-��d�X�9lu�=tz��,�Q�Ig�|�5-6I�.X�vBM�����2y ��V��"�YX��k�؊F*�ecmT�M�ɱ���#j�ٿ����`�\��;��<�4~J>�6Җ׊+��l�@�'��
��t=oy�k4�c���y`�[v����7J*�!\��ً�ՄΜ�^�`)���M
�LolRVC"�r,�}���r{��g�Ǩ{�Ր����ʦs�7�vy��.�7����!S���+�W݂�j[�!�8�_�i�G���j[�f�xH
xMkǡ�C�Vnؖ�NWÍ�̽��Y�|ke����έ;�*`G�����sM�Nec����:膹�*����o��Zɱ}�ތJ*
Ih�ūhn�/\Q6k�O���f�<��p�b��}i$x���[�"V�RX9o��Ȣ�!x<x�;V��eC&���_�	�ѓ	I�X��e1%˜�p�Œ��)?5����o_aZ��>L	��^�|{�j�2�p�ʘoY�Eܘ�)q��y霡�k;���Kq��6�:��b��0IfEF�N"\c�9�#�lY�i�?)�y�K�.�̩�� �MKְ�$-_��7=���I�<~:4N�Ɏ��>��<��L�RΧ�\'��E��ާ��A�T�b]�$Hg�Y1��J.�A�lL'�D��S��vB
0�8,=��$Z��WZܵq�Ê����8`���W��� �a�?>��6#�E
ܰb��xp��`��=�!ʜZ��)��Vó�Na:ȿ5���t�L���c/����۶�.Q~>���ň�Y�iڂ�}ٽu��7�5j���%�%�SuE�R�[�%2X>�(m��^ZR��u�$�(�j\7�ANÉRI��-�"z�Zݛ=(?G�ʗl6��`��Q3<�����M7f���coǺ-�FK�Z�†:����S��)[�4�ӽuw@a4z�s�?�;J�o�k�i���а���w��	�~k�7f��k�Qie�QF_EZ;���~�7��*>����_y�5�<4��O_�÷&�V�*��~p�K�L�P;W\���B5����pZ�(�K���K���[Q��Ê��	��3U�6�.�m[�k�	3kt�-,��LA܀`Y�Əޞ��L�1^���/�H�zI�3#KE�0H���=*aL�<7�T ZX#7G�9�W���b{uQ�&����׋+�bcL{v��W'��!�`M%K���N
��8�� Ł
���ʊ�Kl��U�G`"�/�}�pk��y|p��U�A���r{��[�)�0�v+[��H���ؔ�O�l�H�M��@_�g�	D^����RCT�0��ոx�԰b��(��0��,�gFN+Μ'3Q��Љ��{`_�i��a=��7"a���à�*N�>���p؜�-���m�X��6��Q3Lе�(�߾6&k���S�e�3�.yb�-�W!p"��2Oj�U��Z,m�J�D�X��qÎ}�ߨ̒#��{�:�/‡�b&5���,,׸|��f�:p$�Qz�x�3�?6h<�Gɞ��L�j��UDC��=�qGpU7�j[~����ϼ5	�h���X���#�0�n`�}|o�x�d���e�M�lyfr���fʅ����Jɸf8��1}��'}�����F5�"@]��g��O�(Ѧ���C&PBK%�p��-X4hL�ơ�/��!�%����У�	�߲���,Y���QtI����
�ZK]0"�ǃ`0�|AZA���c����TY0���0\���^��P��]F�3aw9�t1:��ҟ���a��%5����mY�F���8b����L���,�ƈ^���-c+�3�@�1iIצhaq�F'?�ݶ;�\Z6\Dz{�g�EȈ�qRv�ة�GM&H��g$#��<��
��kc%E�Cb���+c�-K|��C�"H�D�|�po������<No��F,��r���YA����9����ÿ;�X
h���P<��Qд��i�-�;i �6%���ۍ��۔��)�����
I�j�6�sbV�1�%n�UfHN�%2L#��H]/���3��z#��"^:�z�/|�l���#���pt�!��<Z�\1[����1��9e�s�hnlk�`���`G��"��{��LN�@�0Vvm�����K�u�g$���2$+��>�_?鯲5|V��M�y�x�&(�5�K�k٠���Ψ�ږs��؀UӺL*H_Li���d��L��lPu2�G����kŕS���8��֮rq��+Gys�sQ|&7�
dl�ɝ��`�mx���C)��������Lil�
 ػӫ_��kF��:�݊�HmAnY�4�x*8���]�㴝�X�ĜYA�i�H�B�<ұ|�lb�#�"�lQ0;k��M늮𮉼��F��݆_���
n�5X߶2�f�ec��v�?�V)��]6O�*1���xɱ�p�X�KOQ�X��0��eI�f0
��(�h�T�W>" Pr�4g�*n�[�K���ۑ��(���.�^t�O����+Y��셓���g�@�t�W��
���w/v�j�О��/R��?��Ə��r�yoFe�QFُ��t����?���/����oW;��W~��_y�5�|�hq�xܦ�-0�
i�[��xi�^�E׊�r��G����3<b7��R�J�r}���(�|faJ���1�D;I���_ "ȱ/>��%k�!>�@iSX�0;؍�D��"&�?E�j� 
*Q�5��}G�Ͽ�xb^hފn��”U&pG��~v�4D.�G����ݺs'ʽ�_�f>+vK�d!}�׀6C�ɴ]Ty�:�خ[ݺD�g<hR�(������7-r-�2���ؓ���Ե��ټ�	q��F��0fJ
� 5Ao0S((�6�^":l'��.~oD���{j�L��z��
S�e�0>(�
�s-���>��s�oԙ
�'�^��Q:�C�+튃}UD&0)g�F�@�����=PU�c@`@X��,f�;;�Bnz��sl�n1��i�0%`y"К���l~�Yp��
`1�yh�5@"0=�;�I�Q,z�E�3���'�{�t���vt=;+6�z^��jM���ҹ�z�G�RJE����]>GfT&�kH^7̇���^�&���͔^)�M�1�g�"�|�;:]GŢ�� �Vk�	H�^�3��'ꀹq5�#���@Oq&�"I��|0�0�Oӏ��0
�F���W�,�X9���0�+�+k����+�xhv���#�,�x�pG2P�P�(:�B�&#B��Hm�;e&���A�ҿ�D�uy�S&�l}xu����lډ��'��T9�Su�rE�W��R2�ׯSȲ����޹y�(X��[�����Rf��Q�A�zQ�n%�
���\·Q�|��J*����QW
F�P�/�a�;X#"��C`�����?E2/8l<�@�|!�*�4�a�7�TlF� �ڼ8n�5.L�U� ���O�@T.�:���O&N@��;���2&�닏5"T�n�dq,Υ�ϴʿ<~�����$)Yy/)�����QЖxU�l2��S����åo��Ƌ���6���m5��u-�c
eV��~�hF���\�y�s���^ ��0�"�)s��H���V�Ɩރ[��V
	vO�R�9P��iN�\B��*JA6�
�P�X��A/�g6'�*f.|E���j��}[���*$�$�i�q�4�P����F�8�����5�a o����ty�X/��oR�H�������Vpn�\�q�
���G��,�?��X�(��1O����Rn^����b7wz��q�q.�=&e0�ؔ��ѵmߡ���xD�ύ*��
�ox�:�x�O�7�Xl7a�^W�Z�_�)mM�C��_MX?];F�p@�_����j���e�KO�߿���7��bj����U��<��7��2�(�������O�G�����3�������w�����>_jکy`�p��'�g��yYO�;��&���7�E���|{u�[B �[�`�XHH��
��,D�
��T��8�M=5\��;:>[�r��8b]��=ha� 00
a�Ӌb!ȯ�*�y6��~$lS�,4M'3q�yo�;dIC�s�+�G�*qĥ��+�T�B-��	�R#�
�Sv�Y*�Yi[��X��@E^`ǀ�]@$�$&����!�J��h_d�t�&
*T�k��}�Ӈz��/&G���7�W�!,�R�j�`��D�HjvIj�ըx���|�C""�Z+SU"zo.fĤw�ҥ@�&c0��c=>L@*e���h2#���apU��՘��^О
��j��y�f�:bR�oj�X�xXo����{�T.p��mW-[(n��^�����R��R���lޱp�����UcIx��S`�[���3q��G`(p=J޺b��i��i�,����֧|���E3��&��m��n7w������D!��  B�̿Rj��,y�)��U	���ʍ�\lj%ps|#8ǧP���pϨ������(P��h?���CsB��b�<�)��
�$�f����o��T-8v*M��0�qJ�d���B�z�85��M��P���p��5-}{�j�#>
	d�<0,I�1e���؊&�9��"���~�&��-D�!L���;.�I0�^�d���^��ū��K��v��Kd/\�����_�%�0��j��{�@C��~J�ʾ8�����q�����?hR�!���B�*��h�{lp�c��N�<�j�	''2Qcvg��c��b�i
<���Ia�f��Ĭ譏a$'c6�Gyq:�=��TY<-���ѷt�e����H*��8g��u�w'j�U�@�@����t�5�:�l��3��V����Y��sg��Oٶ:�'���\�C���8��T�ݙ8gظ��.�˘>6x��)�ߖټ2n��lh��K����@�$�=�J�R)�6/+�u0��ɗ��Ô�۔�l�Y7�Zӹ�da����E�`�@���2�?'l01�XgU9�m��j��[::
#6Z%z랃���
Z��2�{9F��U�r����r'��޵��śXze�:J�7��m=��7g}������7WoI�|���H�/�M��T���ò��2�(��G���>���ɨ����U�̨�CO)�˿��_���h��_f(v@�]���"����mņm�S��E�
[����o�����1������`�"��##Tr��)>�v�B%���ƒ��*��
@J�[���)�<��fi��D�#��AE�]"�� S�R�qc^��h�_,0 9US��Z�'�N4B^�?��}���b)$"xh+�> `�T�hޡ�z����G��=cak0���U�U��O꾅��!�%UZQ�Ha��E*]0�ЧΝ'wP�����6�����=@��m���=�4�m Z��h��4̴�W�hE�J�@00��WI�qb��ێNV0�by4+��%��o�p�μ�y�ڑzRZ�w�]���@C3aL	l�@�U�B�޶bW2�5��OR�.4����@cfL��̈B*pCC�F�����UN�}�����*�
Ra��*�F��2�)��/����@5�0�R(9H:~uT����C>J1���í�>T�c��#�Qx7!q@	'��Gh-G��.@�S*4�$46#v�L[/�h$����|�;
8М��a,���<��h�j�ؚ�K;-h�=�f#�9�'�M�б\~�}����I,���c~��z�y�Rq	�4���`�D T�e�t�ɛ)S�o�D���l��$����	40����ɀ4�IO؝\�mʌB	�I��I��b��3��V4\S�_r#H	9��sŞ��@�r�}�hʴ�ɔ�E��
"�{�L}��C�e!͗�vX��]����Dl��}!�Ч�O�ə�x8C]	�?K��Y�u��|���Mys�fr/�U���Q�Q�\��4e6��2ߌ�d>����O@;�߁�g�7�}���`lZ�P�	0�{�ޠL���`�\R�?��W�D	!�W�|�p���ޡ)���?��N.ľ��kZ��|,��ٻ�h�������y�Y.]�D��`Ć���
Qc	�X�FA)*�Ho� HD�tP)��b,(�R�^�N�Ql�}>�������[p��wΜ��{�Ξ=I���g����c���qI�ߟ�@�p�Cڌ#+嗭*�
��N�S�mG"L�Gmش9�:,�Ý"��ďEK��nԥ�i���v�6���s�j2��4i1���pN
�q���f��9���0��D�t~�Q7�]�8/�L2�$�,�hp��g�V�x�F�����O�!�!�>�Xh!��9�d';��#v�=�t�~�$7�@c���9|Yn�b=�5F{
�� F�7���橇L�r��M�?!��0#,1�}cԗ�B�4,����9Vcn��������]�|˙���pk�̅/,��0�϶|��U����&���\k�D?��]h���*�?��1�cS�4ij\
�$�vc�}6g�6��I.L�[���E
j�K]��y�.^���PA��:DRD���;�>�}��%�-�!�)r�"p��+�ɢe+&�7[���rZzO�������M�BZBU�.�He.���y��A��U2��9��l捩3ܑ�U�G,�c�;��2Q��	�N�i���I��[�P�-��al�s�(cx����Q8@.+���;�~���a�;�6�fB�O�2�����P��_�[�GW~j�Z��D1se1q��,Z1k�?�GW�6h03�.���h�Kԗ�9iSAl_��c6ڎK2E�9��՘p�R�؄-u��pM��i�\6FS4.��M�.Y����)t�
w@S���:q��"7,��h�E��Q�
L`D�|�-e}�~�C֪Oַ�1X����i[����(��Cv���R�ܢ�r�j���ɍ1�u�k?�@��a?Nv]��2����vN��wд�О�R�Jƒ���P�_��O���cCH�0��NI�O�apm�~�m��;irQA�)�Lu����Y�#~-��|�}g6P���$�U<㖦�2sK;�:^j嬭�0u1��خ�(@G�^�8���8V�4Al��s�)č�e�M�'�c����;2nR��L��@���x�)�=�	�S%ű�m^��1�e�c'��6ns7V��ЂQ_�1�%Ȩ���1"���>�f�.Ц[���{��-�gu���T�rZ�G�wyߩ�̕�B�W�(��U����6���@{X��X�u�r�G��FY�Iv@��Yن�N�GÏ����K<�_�λ�S��G-i&���4��E�ϨW\�oԊŞ��`��X�keҽ"H4�⫮�{j��J]��vtT:}��ܽC��9隔B-�hR�Zf�)���Bp�c�|���cnM�*

���3�����U��2!u�6�3��e�I&�d�y@�,}�h6J^tI����R��)g�m�t����s���?۩k�
w�S��Y\�g�}�I���.��|G�*�Z����7{bƠ3����{X�K�������FC�a�@E?C�$V�k�
Hkh�3bR\��`@{/N��v�F�(%��^��6��Y�|��)LG��p��i�o�qa$��	��qa3�A4l�k��2<�N_�B\��c�\[`�0p\A�y���{�@���-
a�7.Y�J�k����`O���߶�\��k<ol��آ��#i~��(QT�I��K=s�R�r�%+V�
C5[��ЪHN�%^�GڨR@X�"1A���V~��}/�19�#�
��G��2~r������x�m�e��hp�b���C/ܙ+7��2-�2Q��m��7v�"lI>
�
�U�ѯi���mta�\F�ԦLB�����U��s4��� ��@|�t�.q<���C⼂W�)WA�3$�ֶ��:Z��5(�!\2�ޮ4�hJP�֬۠n��
�i�4����8j2@+�e6�Q���y�F��#^y��=K٭#)��@�4�U������C�^��C��mR꾬HS�&���h9��㾎Y��2������h��#}jObo��Rɰ��#�w�wxtJ���c}��"x@�@B}`�f�@�Im�XѥM�y�!
A��ܷ�ϙ°�4��ȩ�j��`�z6~��k���������_#�0�Fm\�u��jW{�P���$�w�,⯙�@������&��L�s4��c)�Y٣9�>����Y��J��5aӣ<��ɗ��M�h��z)��e�KS�R��
�hUAo=������-����D@|�m��_#2�hcB�.=���z�nc�#"jy���M�<1V=��z��`��f��;{~ՖO�~mG�6}�Q$���/I�B��|��i��LѦ��>& w
���1�s��1?�C�iY'��O��h��Z���G������:�=�_�m������w�g�B���5-��h'��4^��r��;�q����q������~ɓ]مg�>���=4���D0k�u��C�ų��k4X����K>�;(�m�wEL�"*?�[t�z�khʓ]V�l�7�FS5�t3���}F�����h����u.��2�A3Q�i��C���ճ}�8��3S��>Ф�����;AC�}�"�g(}�А�,6!����_n�2/�L2�$�,�y@sd��M�����1�|�*�C
�
:"�����馏�mԼ�u7��ͨG���%W\���%27�8��	�z���}��{�Ob�Q�Nx(�h,
�^e�� '�u��f�դC:�қƁ�1�&]�����5�*4l�6�<�a?{��0�V"M���/F�N6��cr �
�$k,L�^C���
.nnH�'?��_��۾0���
�r��B4AjNÕ�o��`8�֌����
��vx�Wh�.���!{W�ѧ\U�j�-�W&�g�,3�W��RA��G(���R�%�F�FV���'ю��a^�`��MnL�B�PHw��X��j�a1���rܨE�A�AT�A]J�6J+s��̆��V���E��
�g�������2?��!�rӎbD���C�|Qt��Т*!��2u.0cj�/�>�@!OY5!3��rܪ�3�9�P����:���.�{�9�a��ڷMmTj�!�Т��IP{��7�@M��dx�]�L\;may�
���.]D�Cq&�$&nFh�s�������-���隵���aft�7P9~�%��N�Uo�-N��Q�J���'��؇
�}�Ѥ��)H�m���e	�&�>�\�s��S�v�	�R���)B��:5̺"="����8Ahe�_�̢uwѺa�u�>��Q���ac��UlHeƔ�#K"��i��b|ѕ1!XM�� ��־�H=��v�ğ��Oj�u�X4g�5$�xR��.2L,]�W���p��zi�}�w���܍8�:�Õ���ꭺ�X����[���(-
)G4���{�6�2�o
in���$}�B�s�Y���t>jI��
�f��q��tꟇl��'џH�<�m�t�3�%5�g�E�s���ç/��̉
ijO,j�]��C��^�z�Zm����Xa��%�ڲ���'���S4gK
���մc���d;bXɞn�f��T>���$��C�l��,1� wf8��o�I
_�jzQ:˃@툌����=��(”9��7�&�,@i�S�!S���L;G�������������p�I6��	Ѩ���ߨ��a�꩔��׹����a1i�<�R?�ڵ׮�yP���"G�i��F�#v
��[��R����?%e����1jh��M�t��Eȋ��Լǜ6���nFtu��z�{xS����~��/1LN���'3N��L����~�{�P'��{�z�X���'w�TR�DH�tG��؞�S��]g�j�ݾ��v�75��j�1��K��<g�V ��QU��~~�BBGf�������3`Z|�3d���u4�����.��l��Ȉ����'˒�>��T�B��ӆy�W&�yLgz�hr��&
:/M�3a��������$��|������|�[���e�I&�d�y@�)��N�C�{>��mw�U���j��t�ő?"���]rZ�sw3*�o�>��:�M^a���^{�q'��':�M���Rl��T�ߑN�w�~�1q�?ωk�uyJ�i�{�)�Wq5��O?p~d;߽T�[�k�^�@�?���
�A��
��&L�
�Wi�@\����Q��A�b@��9}w!C8�>�1���G��_�1�K>��Ϟ�2V`��bh�<�[��^Ʈ�i�3�m��ˌ�
��`)*wi�.�B%?�p;��m�خ���y����W��yd�/3��ɱBy����c+GP��9�ʤk|���-
y
�i�Rp�4�_�l��f
�v>F�y�_�D��SIS��\QE`ĔY�c?X�J����8LAfnD}F�Ky�S��)�9cf�F��d	��X�̋�hv��._I�鎋���yu��3����Q�"؞��0-�D#
0��t�9�U�
��?l���]�lE$�s��n�H�̳4>�)z�{-�xś�͖8�bi�#'���.�&��a��L�9����eLW�o5�,���璋y˖�?�M?ˉlkM N�QC_�e\�P4(��4�@�DnGH ��Z~
���)M%UTzaܠJ��)��XKN��ȇ�����l�
E����I���4�U�ړ�di���W�]�^�B\�v��Z�����5׉���.j��հN���j8�J���X]���T{Țe�	�+P	�q#)�v�Hc�m�6
�6L��Z�=նv'�`�Q�R�󛄢����j�*Eӓ�<����t��ߟ�?~�rm�B���S+k�V�߈F��f�E
�eI��ޒB�Ih�Mm�.�~է�J�;|���x�%�3��>^�&��c�Ed2lO�27�vzw�B�9�r?�f�E����%�6��JF+A���O�u��j��қ�6�����Ʃ������\$��uQ"�a��U��&է���
wW{cch`
�[�Q(�JKeQ�	t&����#Ov
0uD�''ɶ#?��*zW��J$W�eƻ�p�찭)�l$3Т�>���
�nf�z��C�&K�5����Q+�)d�9����N3L�o��xR���H��I� �:�i�tV�^|���ړ~՞�*3I�C�VK*!Y�S��J����Г룕�S�j�8�\䊖�)#oqO�m\�^�I�[�B)�Ǔ����f��a�Ҽ%˒�m��HdS�/Uf،{�^�0d�4�w�
�>���]�@�F:�%<8T�{����Mj�~u��=�BL˫�b*��Q��N��͗h)�In�_�lU��y�іW2�oCS��O�:U�%f/��(�o2���Wn^s��T2�ۃ�WeBß��}s�/<g�u:�ء�|��
8���.y�d�I&���=�����oԬ]/m<(��\����bq4)�1]�^#�7v�>;
�|~�J������Z�nsh�c���st��=��K�����o��n=��~R�"g����w^}�_D�.W�R�&ͫV�Y��E`�_����k�{�ᆏ<ڶB���*q���/y��5�ӪM���I�����ޮ-vn�{j��_^Vl��<t��q��_xq��Z�mרi��o�%�)qA�Z��)s镪����lݶb�{�8���'�,t���Ǫ��kݶ�C������ǯ�9��W^}�C�+���.V��Q��O��`^&�d�ɏ>�<
9��!y��r�Yo�9�D�)/��,�����y�Oy��A�� �X!v��N����k̑W,��L�o�a�g��$��������.�"�QC.:x�y��?�<��|��嗍�p�r���߀�+Nx�SNܙd�I&������ib:��r~-ljE����c��gb��`��W\�~����x��_lyi�+8f�V�ؑ�����F�ټ�Q�9�B~)t�M-���L�6}�{�[p钥�*T|�>w��es>�g^u�
(3�|{�*~�Q^Z��O��}�)E�
��31g���i��wa�k�_�x�[l�䋁��Ӈ:�j����8ir�/M�z��q�<��5j���e)���Ǐ-|�Q����g=�)JJE�:uڟ���б'b����$�L2�b���
bD ;y��R��Z-N��dN�y��e��/��^n��hl"���t�p��?��]�sj��d�{*���ӌ�e��u�s0�\��IY8�G������
�m^uŋD��o_�Re�+�e�{�0��_X{����Y��K��'�1�Ʊ�)�^�D��4�`2�R��-�L2��z�7!�q�,^�ӓ=��Hន�x������>�}ޣ�|�[�j#[�z�-z�Bp|��'�k��u��=f��y��k��kШ[���֭��4l�����۽|��k׮�й��
�L��gϙ��Xp��uv��U+�=ޑ��koL���i��R�Ί�,t�/������q�F:�tw�C?F��Q�'����}oM�6s�,��պ7|�G�U�Wo��*��8�#��S}��ot�ޜ(�Z���*M[�:�𣯹�&���$ݯÞN�x�{����5m��=���X�x�'�7n�֤��	oM<���*3�y�d�I&?B8>��m�����D]p�L��F���d����X��3����X7BB�e����]�HD�l��U��t�Q�I.�A7��髭_紐��^1���I�Y����y�m��5ꩧ��ڵk߾}?���
�^��v���<�̞^8eʔ[n����ʂ��nݺ}���N7hРz��\�r��q�ȑjo�޾_�~
6�;b;����={v^&�d�'�a�ţ�ҽO���A:�u�79i��3dy:�3f�3��rՃ;�Gᄇ�X���|��'<?�߼5qGl'@�-[���͘1C�j�
V�^}?9AH�y���!�]�4g�E�Vm<���a��\:s�,d�B�*�K��߰I�z
��8��Ï:��1/��^�|�
5��yw��W����-���<T��9�A�Q-O���;���*W���.��<􈣏?�wߧe���=�Þu,}�C)u�=�G�.O�}ޅ��~��o�~{�c8�P�Re���+U��ۣ��t^&�d�I&�d�I&�d��/@�������-��"1�����f�-[���[��L?���D�D��C8a����8f�Š+�*U��s�-Q���������?5�������_v
�-*Y�d۶mw9����O�l�2����'�|2�_��o�T�g>6m���K/]�`�O�>�Á�h�"�Wo�K��>}��,�lԭ[�lٲ�/��̙3)�K�,�y&��e�2��!`��x�2�[�y#���8N+V��;*��)�����>�3w�u7��]�&?�ߟqֹ��@�~a�7�|ݠI�Î��K?�ċ/��?شqS�3ξ�rz:�1�Ѣ]�N�x�'N?����kx%�L�fo��M�Ϛ=뛯�n���{t�"EK_r����y�}�N��1��">��ܥw��E��BƑ�E_~W�{��������c��zАa����O:M�ԡ�g��nيY��됈�H���?]�l�rz�{��]�i�Vs��3�V�Q^����$�L2�$�L2�$�L2��h�6�����9� � ��_{P���G.}���ex^�χ>_ؐaK���7�|�^رcG��F����.��2eʼ���O�5j��x�.O潋�v��a�Z��^{-�L~��C�+]�\�jժQ�?[�ju��W#�?a�
4����pfp�W�����@7j��nX�d�?g͚u��w��-/�L2���������7R��v��`b�?s�5�ä��|���$sʆ)ϟ���?�
-��m*
��^��P�Z
��_��n�un�o�M���'�V,2?X��r�y����^P>Y��lٴq�'�١��z��+���g�m֩Ђf���o��#�;Iʰr����ޣ�����l�1-����-e�꽵�6x�BG�0s�,9�������U�fE�;q�d��
�t^&�d�I&�d�I&�d��/@�u[�c���#�\���A�ν`�-//�ԯ�4�ֹ��\*eO��σ���w:th�b�
x�
Cq�)�ԪU+�9s�>���ѣ�.]���*;a„�>�h̘1�{��/���oN�6�3���N��q��9�O��C4���Nj��T��3��ɓ�"��>�d����aÆIЗ'N|���,f]2�6@KS&G�ѫW��c���{�]<W\���i��$��������|��	ˏ_]�(6��
�޽��G"�.e�����%�}a�=Ш���\�,�<o޼<Z�aI��B]uQ�ʕ+_y�*���}�UW9�4i-�E$�#V�,A���{��+��X�B�ʮڣP/��BϞ=G�tr���n!*k޼y�*�hѢ�I&��-���~R��{��fwv\��<v#�s�$�Gc0wOy%�Z�Ti����2&M~��w�jc�yB'{v�
��V`1�ZW��\^v�EX�E���i�F[�t�?��ڴ{<����0�6�unp�m����rw�uK�;n��v��u���K't|��8η���1c]�A㦎�#��!e� ��:_�껫ո��;{�}�9�t�����z-�?7|�� �l���}����O)*��ee�]�r嚵k����L��|[���4���L�����J�����[o͚�73�ML���|f��$j��'�i�Dub�X�!FE�*�X�"�HQ��&��JQQ@T#�ߛ=W�X�	�o��:��]�}����СC�:t��ф4�s���P]���ʁ>l��֡��cso�?��G��?�6��x���N���~>|�����5<y===ᡲ����p�~������`h���ٳg�݁�׋�ݻsY1pDy\���ҥK�>}0v?~|׮]���۶m;b�Pc�N���������Q�2`M�޽��E�d؟�9\U��t��a�ƍBH@"�駟zT�0<x+��=t�P:�M~�7��mѢ|V�5��ݺuÓ��#ȝ0a��/3�A�m���ܹ3�_�~��,�1��������ɩ1��#G�ʓg:C˾���@a&�HH5�MLLh���J������"��̙3�_���$��p���4Y�L�^��*K/П���Y�����'w�wg�
F��:*�1��d��Ha�c�i��h�Y�!C���nd"��J:4��_�(h.�'M3A��7py�6{�@a��1�������I���?eF��t򭞽�t�յǻ�;v��yّ�k�w��l����1�hٺ8�M�0�HL<�8[�}��ꤩӸ�Z_��T�^���)�d<��Z���1f��rK�(�E��]:�E���23/_?���
�1Ya��~_���~t����wO���A'��tr9�*���Qm��3g��A�c���
	��|K�Aؖp��$C>�l�k]�C�:t�СC�M@?W,��tFY�/]�zq����k��cOaY��5�9~��mW�����߽��!�>?�@�:eʔT�`D���ѣѥ�;zg�%����\��Pڹs�"}���<٬@U�-�G*�p��fw@���eF

U�xb�[�5`+��)|y�ĉ��%2,d	�Q�����``(�).��B�Q��h�6A�5��Ҿ}{0���̎�ɞxBu��|9�tZ��20�&CE�
}F���0km�����@���EΧ�����c�Rc4#S4a�0Ǡ|q��^���+W�:��6lģ� �I
0�DqU4Y5�d�,y�{Z2F����k~�I�<����<y2	�
@��s�*��3�_y}�T����Ձ7�%Q
@òQ�W�С�C*���C���Y�g<7VZm�ح'���

f�ҽ7F�?�lݮ�]����ϷlC˼�9��ͷ��#�$d�1��@���>~�L�Z���HV�+�f؈+���ܼe+V!1	
����.�p��;w~���Y�r������� ����9��h���&N�����
�5���������[�a�����M*�ۂc
�[���k���!C�W��·�N�i�k�|{Κ=��/]�R�f������;8���1����B�W5��ԡC�:t�СC����%��L=����w1_�����w9��6L�+�E�Nz�}��l����}]>�W��x�:�	Ι3��2I82���\�$��A��}A�s�u
d��������p��@×EI-=�A���'4NJ���1c��B���BhZ4X�M�9:܅J-4�p^E���h!����`Y�p�
C����/{
x%�n�
��P�c<.HT$��A��(C��v
�Ew�H
��2h�$�,�J�$����ɼ�yknnN�*	�i�IŽ�=*����^��2N1nF(-�H;�i�T��̄GC�9�b(�9���A��xj�G�0֗���	rX�C����F�ܩ[�U�6c�������?` P��JZy�J�O~��W���j��KH��o��yL9@3���X=��t�bUQ�����4�����i4er�V���S7�|_������KA��{�9��j���n�`�*�??��c�5�0ߐ�v�����W�t�r�Y�j��_���صW��W����9��㋢��`��̬,5��at��Z���o[;{�i��.�l~HS@W�СC�:t�СCGS���
�5t�น]O0����2�]�gY�8|xd����^�@ �l�8+r٥�<)���Vh}P�"tU�����(��As�ނ/
�-�V����O>IIIQa��Z��@×Q:BX�/,,,F���@	B�
��~�x� �]�jj\�1*c�8�h���$R6C����P�*HB^�Z||<��#���2T�G#�A�t���Y��!�X�`�A��hL�I,�aCGfT�h�y�
��k�2��Nl����h�pB2/LY���ә/_�Ifi�*c������r�TT �<��Ρ�ߣkƕ�<igA�]��T��ڵ�jV�
�@�C
��y�m�������z����;��0�2m&l��~��c���|x@3�	����s�b�Ȝ�M��do@T�hr�����g��Ϛcf�x�,�_|��M!F�#�1�{x�<���7���/�~��H����=u����&s�����c�L�>�p��G�*�p6h~��L$���8��o��c:��Ӂ_S��s�-���/%�L�w��,m*� �ٗCLL箶Z��虒d�Abj��ɨqFs�.0_dA;��%iJ�J:t�СC�:t�x:4�u����E0�vB�����k_gN��V�Iw����^3"-�q���>���t�b�����&HQm4g���cSSS4������+g�(��!�4�W��x/���p��E]'��悫0kKKK�Hqyk��h�T��*
H���2N�טf�96���4S�h(�!����Њ&3G�3�`
T��>�	8ˌ�
�m4��m<�ƭ��x��3�"j@K��Ea�}V
LϨ�>
�;��f�`n���6ՁH�c�Ym�؜N��[
�z'ɸ� <'��h��	�R�
�@:h��n��n�>���P�+��f/�bز��y���{��G<�������E�R�vxV���*�o��䷄��`���٢�?
l+(��M5��pg��`kz�KxFS�f�Il��m�
0-P��/#d�X�F�~F�
�wƉ
����Pf��\�;iA|<D
�툓����Xg�8o� 5��Z�:t�СC�O�&n߹��ǰ?پ��
���[ڿ�/�m���4�s#󘵞�Ay��~�E�;���S�%y��ە�hb��ې6���M�g�F�-��'u+��������D�"7^A�*��pA��/��v...�UP�b7�����U�@F�'�V�N
_�ҵB�lgg��j�A<@�P���bǎ
@�+ |�]�8�Qm�ę�д�Wgm�+8Ր�3�p�{-�	�aC��RQ3�HK�;�����%9)�/h/�ڻw�:�VЈ�Y�/��t,8�gp�!�fqk(�*x֝��u
pP@#ss3�
�C
�Cf� Z�}֗��2�+u���a4�Q�;�|ɊQ�O�ص�^N>�	���
h��qa��d<�ѷoW��2�-A�n��wv�
��2�{7��S���VE�ox����c��=�ף�?��;� ?M9�p�߄��[�q�?�_�	��;�o�n5n!*�>V��o:t�С�/Cn�X�̦��gk	�[ؽ�ZYT�m>��>|L����u{R��N�ze�(HN(H�u�r��Yw�3�w�F��m����,��كF�w����`ەK{���3��e+��^��111�@P#^�b拂��	L���틂h�0�f�Ѵ����v�f�Ad��)�qɀ����"C
#j�sA!ΆɊ`�4�[	Z��j+��<Cf��-������?��Ԑ��f�M�	��E:̬qv�}ʋ�F2�,<==�>��G$�⌌�D�K�Tl?�E�MҀ�����f����2�b�B��I�p@?%�
v�T�)��4�/v_�)��̈ف�yPA�4���#�vww�_����l{(�B�P����.��ڄ�����*x�C����z!�Bφ�`�?��V��~n[�*�el.֬�0j�x���M,�/��p�N=�8�«�Fħ��b^��gpA����{ʹ���!EW��4�;���կ�z�C��䆃w�oın!�J9�ɿR�D#�d�þr�Y> �8/��s?~��}��<�{<��������/������LHK�NL�JHINϨ����y"5��/����o�
�����^)�����z��!ǒl����=�83/��Q��ؓi��ո�q)7*�T''�>_�߱�Ng^d!�˧��֡�СC��M@K�������W�c�&������W#iD��g�u�HZ��ؐ�(�)�¾���zڡ$-|�o�+թ����>�#G�d;  �b�1�gU�f(3H��U��A'pa@�2p�_jٛNނP��pd��q�৴,�XH�l��j�qA�`_1mb�>r�\Ž��n�Ůta#��<���z�B]��h3ez��TDY��D�8�c�`�y��l�'�7�7#�'s�2�*�
L�҈��6m�xxxp�{2:n$ƴ̐��r^�1��S

��,����$����2pY4�e� ��[S�i����LE~Γ�k� ��$V�.̗ee��'O�-L_@��,��y\A�����\m�H�j<�$��3f�O/j+K`7��IV�)c
چ_é��h۶-�d�fc:th]@ӈ|:~�[�п�l<�B+*�
"��}�>��W��h�<���RR�	�Ke��34�78-p���?�{s�`��Ƿ]	�{��
ٹ�'���gR���7Dl�Վ������3�G��NNϪ��bᨤT���u(��:zN��z���h��خ�q� �\��e�7po�H��_1��P@�?�	>��-��bN\���7�1�t����U�'-����j��{��+�OH�\q( <>�L�Wx��1��Lf66߼��R����l�v���^a���Iu�ܷ9y�Y`�8~��MX�e���&[l��r��n'T.���?�`�͔e\�L��<��Q�m�;���6�Y��p`xY��J:t�Сt��g�3�&���>����Ĉ�2��_@gZc�*)�]�A&���ſ��CE!��#���W�5�U���R���D�dU�GՋ��0�`C�
�)�jX*�Y�-`�h�� #��a/�p�>U`�h��?ơ4�ny��A/��%/\�b����#,�-��/��b�l�mi�1�u��=/����P�������©`\5T�7�+F��� �cǎ��:�ܐ6���y�GSIl1�����fQ��KI�S�ynB��e��*k��?ÃPs�5F~�50�rI�����=��
U��)�@M���HI#�TH�5�*C"W�I����2p�ԡC�4>,w+��zf�_O3�����p���f�m��$�̮Fk.a�+�d��Iv.]�RC�'��s̮�Y�Nԧd�R=�nL>
[N˸h�v'�R��N���e��=p�K�ʭWh��m�A3t�(2Ɇ�����-����:��Y�����Lp'���y5*'��eX�W�o�F�ߨ�@���^&����ܨ]�zi)w/���US�r�M��R,�����a}���K��7J�9f��/^�_�z��bAA���s��t��+����{|�\@�\|�>e��m�RW�p�x��#Auv����C%t�Eܱ
|�U�k�՜�’�R��M{Y�:�5R�\ZMA�u#���Y�k��v+�.>�l�>\���� 3;�lƪm������[nSk���s��kvl:��ɋc�F'�V�СC�
��(����g�O_�/Gk����L���8�ȍ&��K#�FM�v���a��+�0����Wk��w��([qx�UdK:����#I��GPc��Xm���㛁��[�C��&j���~=�s1/�h\��C�Q�ʥ��_�ss8��s�t�E0%'��‘��V�ā����
@T6͑	ɼ4.�Fā�@6Q�Q:g�\v�	=�u�Tz�<��V6�����?Uv������ZD���s�����0}*=��#�5(����;Yޕ☓i�	�F��0PIi9�o���}1�rTb*�FѢ�Yه"����$�Bi;����֖�v��\�Eװڠ%i�y5��]�JL�q���e\F�=�F�4�|��UɄ���e\���z�$����2�e���GK��r�BΑ��:4��:�b�)�~lRK�II'�|�t&��&��j���p� '��3�ټ�V'��0�,�7���l�6�&�̋��9�s$T�>A]�"�|��RE��Sg31�$G�RJ�Q�c���R\r�h\b��Q�s����ra�pFe���t�!_��D�<�e79���U��X5��Pc� �aI�a�([o��s̽J�F�碤��ͼ��v�"���g�����=��4����=���f�D���aq���d��3�d�5My��@Ee�9���#�D�9�DGn�0���Ǻ�"��{h�V%�
2\��{��o`��+,Fݙ<@�ϝ&&A�'0�����/�V�W�
p��$��G��u��{Y}�lV���E��L�c�@��uq�<)�Nͨ��Ï�$��$Q<�ɺt9�dw�S�)���_d<���SiB�0Ɯ �0w�9Þe�4��Q��;60&���cV�/���~�|�d�)u<��+(�M�I��E�ς�CbM�vrSq��v� ��=$��w��[,���փ�Ȣw�f��y�����*u�СC��M@��z�{F����|'��`{Ǐ�a�&/���gl�����}]Z�w�O�y�sT��Ƥ=��)O�;�����?
�5pZ���}EK��ba2����h���6v={����R��5KP��ػ��.�4����/�/��t[=�2bw#��"������aI�AŽ�,͎ a�}G��#�3�,�(r��ϩ�|���]�*9��͑�_@+�'���h���[S+h�>�l�[�Z��	Zں1�k����A��?ڐ��C�[V�T|b�b���D��ֶ�XԑT���S`�~!�R�:PZI=��;3�X��>m�Ɩ,R�o�+ں�/��Qn.��jX�aY�e
���N�m#>}w��q�
��-7��u$���E�Ψ��p1pc?�����K�/hT���A�L7��ΌJ5QIu�~��$}N�B�虼p	�U<U�e|y�����3�U�<,����:�X�D�hp�w�����]���WFA�R�NCƑ����>�����	t����ď�S�IE�Ϫ�ݸ�	C�Ɲ��4�T�����3��i�ú��ٲ���zx��%|�
�*��i�}[	��A�@J�cW8�Iْ�o~Z>��y�z��-g�T'mJ����)ez�(��g�f�.��o���zp��T�
,0W�ʷ���Tm�2��clI}����#��8,"���ium�.
�̪V��y\[JH��5K��qp7�Ӹ���&���������=���1��Ѐ��iy��M��?�&�;oêo�Oc��y��Q������4#��\����7��+4�H���fhPK4��YB����>����
��/�'�.�_���ɺ~����I��n��ރ��o�1�][�<��d��&5���2�9|�,n45��Z�@���ݘR-�ʽ�(
ALW�ؑc��=W4�!�f��:��b����h;&E��"]�e��pe�*�����i�][v9�i�:�R�q���V��4EC��7'��d��a�hA��SJ�o��G�"e�޾[��c�ϫ&�4�C�K}�IK`	�m����KOf������ZhBš�ۺԵ?�ȑ#G��_=�3��9s�|��;Ot�=\��=3���k[�G�k���}�b���	ol�xʁ��-+�n�~y�oo���53j(--�f Ke>~ye�,&��^D�>�(++������
~9r�k謀��+
�)FK�"�$�q�.������(�C����dֻ� <�ݷ���Yp��ٱ��tpC l��S�nX�g%3�2tBI���V[��t��N(��HI)��C'��)�X�\W�
P�t�j�ѽZ�
�E�T	�†��v�>��	� X��QO��8]��u~'uT���Wi��
�����hB��.-�y��j���*���eq�}GO�+�?<D���&/l���qϡ�kZI��iE:֣�����VֺF[�\�t�B?�E��DI'Cu��\кe���w�;ӫ�+ ��A~zu��:�\�L�Kq����Pmġ7=`P�`wټ��/#<.@��p�O*�Rw�רhakx�����N"���[O��E0%R��=1�m <��K��}pС�_�m��ŗ$�__��u�Е�S��__�<5�fP���k7������{w��*�@����!�X�&�b�V^Ŋ���T �AxfCA+D�1Y��s�4����6�d�g@�	CM�-y�M�9
ˍ�~ �&�U���Nů��=d(���=w�򔅭�(��_�C�x8E��>x�K<J��-�eE��N+��
p4� �<8�^:h��L���k���t�H��UH
e�Ѐ��ɘ�~b�R+>��PѢ�%��}��{��n�*�B�@�1���ާ�P��E9FO�Yz�|�5�f;�.����]�G��)�t-�=t����9���9*i�t�W�:x���F����K�fn�0���h{^�ܸi��Ok��4��W����*�e%xKD�r�J�hs$��CǼ5A��I'>v^�.��t�9rd�j�a������k�_�����?d�#G�@g��e�bР�#��y��1
`q
�:ɾ��U93�(ijU{7��V�C�+JLpM���41��E!R�i0)`��'S��̭K#�y͝(v�j����şT���c��j��:���I��wB�|��<[�V�euX�c/��W�p���+�k;�h��q�^ꢫwt�[é0��
�g�����R�׵'^�|�^�ϖ-Y��}B�ɏŸ�2��Fe���+�q� �N�=rrW�8�^&KZ]Ŏ�G��CM]�>$[�m�D��|ަc�*�o��*�%<:�{wߞH	8/�;Ay�$Rм5�a�gpyS�F&-�=9��U8�;����Dsx����Q'��3�e`�r�@���"��Z0����)sA��n�C�F�Kϫs��4���*xџ�hSN6�CU�I\N��,��ژ�0�IE ���#=���0ۊ�
OMҼ�|iF�{��m��șpL�߲ʍ��8��
�9:��0����Sv�8������q'��:AG��H�0i8_���G�7����8��W�~:g�6�Z̢	���� -}���h{��$zX��5_������X'��Q��4�sC�Wo�
7�7a��d0������!��~GN�K��šv�N�9r����9r�ȑ#���
�i�y{���G��߄�(p	r��+����&�_X����"W�ܔ���˒E/�g1ڈi>!b�_$�F
Dd��� ]�����.>�G6�sx��'�T���ά��kN�k�=����q�u�5*�:G�#�ո��݆����u$Cd1W�D�S����pG_��A��um�hzgB]� NX���%�g�
�%O��0�P�xf���I�|�Ŵ�Q����'W��&����i��Q���j#�i=�W�
zs_���v����*����ɴ��QY���!��X^+��%rc:n�
c��6t=���~��t���V���X�R�d�R����C���@���?��!���B��9�������IU�= 6���1O��+
@�ě��~࣢U�4{_�lZ��NNp��n7\�a�w(����(�~�ФO�u��������)�@W����s��M|T�ɼ��~J���/�?�Ć�<v�—'�3كh�V��	@֟����wEtnڡ�S~���+F�;��d$�Z{������GG��5��gz����p�X��)y�0]�&U-�B��Y����b��l��#G�@g�#G�92��
�e��4�'����<�hr
�aYjSh/4c�6�z(�1��߄]E����#��[�oX͎�@SR��a;�l0�fe��&
'�>��0v�i��!A ]�pֽGN}��7�(���j1�E'�G[�
�#��C���gE�1y�q�@xV�r���!<�X�M��ڨ�0�gB��[����+�DJ��3����$�H�����e�z�T���7"����{	�f� �_�S�����X�"+�p�V�{���T����O�-V@_���Ԩ�o0��#�8v�0�|Ry���!S�8W�*�7��`NB�����}ӪP@o�<�<yg|aIA��<���M6���T�e�G��.t�N�5�耉����4����g�u�&���Ƀ{�FМa�����᨜9|������OR�]����Ä��
vl?��)������a���Ta����>�	@{�=�@�IC���ި���ЛG����hY��G؍�)�6	��8��v��Ɉ�֓��Hv%��T�^����I&��;�2��
��9'��嫦�|�`�+
)�<g�y��9r�ȑt�9r�ȑ#���"�y{�����-��O\rzF�S�`�NK�b�v�`�Q�0�	�Ƨ�X�z'^�_�!u���/--���2^���C�9��Do�|9�o�Ry[���5.A������G�	d��W�s��N%��<,���l��L�$�x�lڇ4����nzm�>�c1���"�8�y/�-��?�yr�Q��G������_��q۴ԡ^��cr�@���%����=�?�:Xj[�}Ž#J`���p��z�#&6>J�3�M���'7�7����ɹ3
h��[5.�ܪtO-8��=!c����^�t�Y��K5.��{�k$!7�������W�WlNK2U:A�� mе�#9#�A��-Q�Nn]��r�v�E>�U[z��l��f}��g$60Jџx�
s�y���ԫ�u���s�@��]R7�p�Y�y�@K~�v^(�뽂<;#h�J��Tϒ0R����
�~�ה��oGRHO��R>eP
���ǃo9�Y��^��j տW�θ�ĕ?�4`k_̪_F~N&��I��̑#G��3�Α#G�@gt�2�~I��.E~>Z��F7�:��lj���� �@�WH����@	���j2��;�:�=�m?p�8�z(�]>��ς���]	@c����'c\�8��be�7U� /eq@I|
��@�r�iR)�NK���V!�:������A?AIԉ&�i;펡��ٌЄb�4����u��vܪ��{Bys�=d������vG�\�;D�LҸt��K��Gs�_
���UĹ\��%�=�y�&��­�����wg��U�j`�/�k�\��@'�Q,��0��>��7�?)A�
��~R�8i��Y����~��5����#5��hf�L.�nMY�d��*��P�W����F�����g+��ً�����\Ԯ4h;eK
XQv��xN�r�'�1�i�.�?��A�p���f|Y#
�\�91��F�I��U-:ʲ~N������/�N-
���.~܆̼3h����g�J�"��'h���Qt�6��Ts�A1-�.W� �ڂS�r�8nر?Ω���^�e�(x(䃴GW��p1FH��[?{��+%����u�\��Y��ذ�aY�Ĕ	�	(+���t�)��=���K[�i�KǗ7��JS2U�k�'Ů�O��{q�Ge
��WN�iU�y�x��d��f/bA�5�D�EU�� �n�/h�ݸ�>������",���O��^k*�%@3��a9S�*��u���
2"�%O�HNY�z��DŽ~m�*߭���Nb��Ϙ9�:0>�p>	�&���[�����Ԓ��Ժ6G%����4GHz�9r��:�9r�ȑ�K���
輽�А��Y?����W�7}`���T�����RT~�t��,o]S�ֵl�$�Ş�	,]�;ztF^Ҳf��qq%�
MG���b�EJR�ɪ f��]4�!m�Wm��@��O7rZX*+���@�H#����X���kFf7�W`���޼3j�ky�lr�em�p�R��(4���+ۺ���Ԧ�#gg����l_�ͭۉ#7��h�A�����Ri�ܷ�b�܀\3��Pm���yS��Ff��FTN���C՚zI��3���vV,/
��@<���O5�z�ҨeLQ�]@��U
�T*W��^��f�[wK	��	ĩ�.~s�iR}ݴj#l�p��e��ָ�u���„m/Y��kY�{�ҕtHV��1���>���w)m]m�X��unH~��oF�f�z��M��9��w�+6nO]��p֜.�jkfE��͕�t��4pK�{/S��w�#���w&K诃��I����ݽ(g$��V(�=��L�"η��ɉ0?�y�^�ƭ�^Ѷ�.;�u���]�u�Ρ�F{�ޘ���1�7��p�L5��n�K-M��ܸ�����4/����n�;�n?��R4�#I�X/}H�q|9u����S	"w����OH�w]䥄���+���s��|���D��4b�H#h�Ƨ��OwI�&�`آ!�v�U�'��^5��c����i��~Be\b�����)I����
�Lx��"�3^�D��
G͑#G�@g�#G�92��
�e�Rt��?	���s��icC����P�
�#H����?�N�\y=�~G\釟ٟ�^ ��Uu���꡶�s�Y���S�މ��3ig��j��8����(~�'�	@@	��a���$n�|A/7})!5F���y�n��ϥ����{���b�߆�v�kō;�t��0�;h���9r�ȑ#��s�ȑ#G�@�-���9~���Դ��2������K�x�A��z�25I�%�Xm�3�o4G���9r�ȑ#G��3�Α#G�@�H�����+���ٱ�{2�������-��[,��Y3�����o_6#�QLZr�ȑ#G��e��q��0�C�w����XHL�B
j�bcc(���44,l�'��.�y����-@ @�m�
�p�/�＀6�h��7���6�h�����h�n@�
�4��&@��
�sZ�6�h�h'8L�h�,'8R�z֯�{B�	��
t���v<����b�A�
��w�#I���ϳ�b����*�O��РM�h����~~ܴ�Ӈ���ܖ����kd�fgp\�lu����A��u����<������"+Fٿ��4��5&�3�6��`�Z�6\G�v�x)� w�B�@�R**r�B�J[7�TԪ(^@�����bm�V��Eݥ�(I�T�R�����SNsj�T�Tl��˛�s�9�=�g�/�y!�B!�ЄB(����51�hH�X�j^A�\�))���U	R[��V�-���fhfed>������<�A!a��'�F�<}�Wƹz��,�S^S@B!�B(�)�	!�P@��V����G��H/
M�����VĢ�yqP(j�����>,UV�_pӿ-��?x���G��;rThY�w�Z�(dL[̎[��o5��qtN$3��

.�\��l�m�b
hB!�B44!�
��K@c����+�!�CdQp��e�eQ��sr����u��ǁ#Fq�8�R�03�/�w����n����2���ޙ�.&�<�=Gm
��M�2�
��*�6��4k��C1ޚ�B!�B�GfxxX����ʠ�w����Q�޸}���=W�����Dۙ�_74��Z�@��B��Я��n��=9
�G�JM�\"[��8���7�&C7�^����ޕqkm��gp�5�R:;;[��*,"*rE,6K�w�v�
7fl�)�|s�:|�8]W/(�Q�[0�B��O�}0,��8�9Nn����]��C օ}�ik?�'Mc�|��
��z�z�e
hB!�B�M:���7B���{5�-U�)��"w6Rz�(=�U>��h��%.�b����|����wP;�#�B=a�{nF�U@�����)P]�P��P�\���K/8����)��2�/`	�tb
���K�Vx= Ɓ�=p07ғ5��4f���[3S6BK�y.��ټjm&�3�p���-�ۊJJ3�v��£b�df��L�����[����u$A�cێȘ7���+{_a��ݿo���5t���´��9VT�yK���A܆o/��&�B!�P@?U��� ��)��1�XZ�zz�����B틥�$*��%m���
Ĵ}ePLmڡ�֮[�:B!Г�BS+���x8e$>C@�8�J�A�-_S,���>CR�P+U❁z
�/%�6B珱k1ݫ-�L,f��@b���:����hb�>/���?�0��]������&��ܹs����78%���i΁\t���&�ұ~���AnBx]�����2D���Wm]�H/����ڊ�hS+[�)o�)�	!�B!�O�!^��]�
t��D�rw���6�iC��3
����j�n���B����h�5��U�*�g��G)�c �a���E�D��%�ѱB0�^��t���=F32���X��~~�����*>!IXX@C�֝A�Z��f\�ن�bbQ���t	X�lT7O74۵gt���{�5����6��K��'>]����[�n
i�;wg?;S�sW6ƹr�!bS���g44!�B!�z����<��cճ�Qz]��f!|cTC᳙�Qm��|�T�'�Iʽ���ﮎB����75}�(��&�A��Ga�>c��YBD�83�����q����������h�}AV�9����8�|��Ǘ\�#c�ƅ7o.
\���9�E���6\�zC��������?��b���3�L��:>m�Q��|���r'24���:!y}PH6���e��&�B!�P@O(�u��~ dn���p
�4f_)x���MhA��~^P�	�n~��
�ϣd�D�~xj��׊Z+Y
M!�zEp`�4�kjzƣZ̃�E��,���GF쳘�1~��L���@���@+m��Ϡ}g�X�O@��urۘ��-*��#�����O|Z��S@#`/<D�6l5z0��S��'$�vw����r�<�A;:�a4f@S@B!�B(�'-�ϳ]c!�hA7#?�œ?�=�a�pKgkakEzcVxm����H��	�a
m��1Qz��G�J���<4<�#�B�W��427P�4l��_L������n��hoo����oh@�s��O������cFp pCШ_�I@;/ؚ��k;t���l!?�B�Q���-�u��B�����Ĕ�p��>y
�(�E��n�x	wq���ϝ�^g&e44!�B!�����"�1��щ���	�E��jg��vuZc�͒i
g�jt4�dh[´)�۞!�g�ܣbL�8����=ֱ"E%K�R�uY�
�Da9��b�uˆ��6�K�C�ʭe�n�[V7]6�mM3��j��6/�m�.�f�s~�=����1x>��B(���@ס
��見��[G�Nc���|d]4��p;��vvΨn��L�,!��n/\]@�Ξ��_cc!�q/���>_Y��^[��=���S����M\B�J�ԛ��C�0��\@/X$�V	h,BX��Ѿ3����k���c~����pP@B!�B(�����	��270��w;����������N���S�.:�����z�|�U�Bt}�qа���%��>h�I�5iZ�6b„�6&fP�(^�u�h,N8y��J���8�����0�Xf����8���/]��/pm@�\&G׷���]{�	�t�x�3��a����G`����h�6�����E34!�B!����1����q#T�T��Bs"+{v6��؋����~���A��� �K����h�BtSe@C�t
�,�9����8��]�omӻ��b��U:񖉙U�����	11���0hHj�/&�Ν�;v�?�PT}�z��0׻~W/�H��ů&�:h�vA�ܴe���v�!�#�ڛw9qϦgf��[��ڀ�;xx",ܪ[Ϫ���ЄB!�
�&�]L`�n`�+v=��+�{��?���]�%
�9���"�\&B��~}�:�~���NF�VD���D�~&x�>���]��jt����Y~0�w��C���b�4_$[!つ^��,Z(h���"��p�~�^Ԗm;R������u2T̀܌�7�+���?hbn�a�����K5�_n|`b6�m�՘k�������-A����[f
hB!�Bt���~m��^L酖 �8wI��C��V@�:�w�5
Y��B��4�r���ʋXu��D]��dB�<�¥6D@Ϙ�~�B=�=�~s�Z����o��>v���}�
�������Xωn���{BϾ�1�Q]���>s�<��������V�B"��8i��n��F:8�Ԏ��.-U�X��������s�΃1ھ��|�8
&[,{���=��oK�N�}�<'N�>s����M�sD6b�-��2S@B!�B(��|�A�>p\��h)ԕ�cGE��uh��r�;%��J�����]\1H�%��OT�
Vݕ�X�W�R��O2��n�h�^�_!��x�����xzC��+ZW��d����d��:��L$5�'NF'2�3��[�-�Ԣj�N��	ڥ�n��8����w�z�|��hO��/�m�]�P�,��kG��x�S�q/�p�A
hB!�B��b�8�7}�~D@��Jd�t�� �
������ʬBV��Q]Z����nb=�~�g�����+�׏tc�#5�pԧ�@�n�&�R!�f���Z�w���Y;xK��ЄB!�
h�И�K���6k�4�by턐�J�;��qq)�s�
}�2�Zh�p(>#b">�!̀�۞l�U�h76|��&e���8x�BT4��w��L��h֮��Fo�)�	!�B!�%�1��k�
6^��05�/"Đx$-�x��2z���BG��)4~+���222���o߾����mJJJVV>A!�!��π֕����K�a�������u��Jy6z5L]MEe����b�x���!�B�U@c��W�xC1|D�a�8���z�De�������7oƾ�"��������a���ln�
�l|���Kj����qA	�&�X�,�-	>?$F�=!�B�L@���&L�b�
�AD
�nTPP�;
FOvvvHHH~~��	��J��V<�	�v���tR8O����/�����j�׃'����d�~��Z9W�j�����^
'�H`�����n�JJJB4�4�۴���
��v@�Xo��N�)v]�!nt`<��j���,��l�B�a�<����6��-w�Ɍf�In�G��n�*"�(JG�^���� "�T���Qz)��-������ɞ3��/�|�y��g��Z��3��3��D�g	@Ú5��%o�#S$`b:��L�f��~���n,�@�'|�]]]'N�x�����l���UUU@È;���4w�8s���ܹK���#�[{K+�h?S��?����j��Ww�{U�-=��w��U�o?�yPQ�X\q����oL���o�auc{v�1�b����P�M����)�9����hSS�Ơ�A�E"q@KI-Hm[��[�����uRRR��Z]����.�#w~ҋD"�H$=��!}F�>��ӷO�.f��.[���~���mmmMLL�pɤ��E���i�S�N���˰����*:Rl�i���n����[����%�b.8^���biaA���]�����Sl�g��7w7��rqq���Pߘз]��;�����7����2�{�S�g�^�2-�0�Y�zll�vJ
@��ʃ�W^���1D�>COB:�H�����K�NT����~RR�=�2��ovǿ�ЋD"�H$-p=s�3���8Ŝ�A���|��$hț7�x{{�ƻy��с�Ԉ������611a�A-�$ܼy,4�Ce��ia���^6]�	�Vr\�2�3��6n܈k���=�� I]��/U#w��k��7���N�+T�L���������}��:�/�������UA����z���պ����(0�|�4���n�I��P��Ĕ䴌Km׉�O�kff����} 84��J���?֦�)��q���]��";��]��!�ب)�Ѵh�خ
ۉ�Wm@5e�YM�ڵS?���򈫫��~^x��ڇ���U� 	����H�������,�Y��#?)����GL�n*�-�D"���РO#h�ғ�ɽk ��b�����9�����o�|����ȑ#S,]���z�w8�!����+V���{o��6rss�1srr>���s���hh�G}�]XTT�K:���_�5�P��&��v��:��S�����o���

h���OX��J��%K�0sYYY
�^^^�j�*Z����n���ddd<x��g�8��o���,-Ӳr��f�9{�/���������ƔI���|�z�L4u��v����]P]��%�YGD�—g���;�;	��>�5<��O7w߸�s���&��C�����Q5��߰Z�]�i�m�j�R����V��y��N�c=Č�6w����D��i�W���M`Hc�P���0���Uٟ5�$hX����Б�a��1�E"�RR�����@?'Z$�D"���3�V(��l�`��A�s����a�_~��={8`nn����w��������c��	
��ZZZB~���V�^M���:{�,�������Pi�ʰ��>�L蒒�/��k�@3;ju�믿���z��I���?�dl흙��v�Z9�߫�33���:t����W^a4Nn���A���ӧO�z��2j��tfy�>hx�ߧD��h�l��D9�ZYY^h�QHW�Z���h�tQy�bl�$u�Uֵ�<tOO7 o��k��÷�I�ްa������f��|���'�֚��h{�-���Ҭ$!y_Ph8S��SҲ�ݦ&��wǃ�����>8,���33�QF팃w�_f1;�7�ښ�5%9��?����W���CALTv�"���Wzo�b��1�wϭ���b�4CV槡���շX�
;����H$ZJJ����h�H$�D��}a�ee��4��p�QuZ�@C`���9V�h^����D��G���������X��0_e�^�~=�:����Ń7���`:�Bm
.LII��
G����.��(�bĠ�����Z�8��^��?��S`
/��әBˀ���$�C�\>���Lj�A<�q�CO�A��/C{�]\---�ʀ�*��pa	�2kmeI�Aj��-NN�1��{�'�b:��g�n�`[p�T�Ȅ��V�@<��u����3n?��=R\Q�W��n㑒S���1��ba�۶��/ <������k�7#W5��5���4�����+,<j�JϨ�v�t����s
>�n�Ș���ml0w��kprv&<s4�;5� �9�pa��V�����[��h���0-dn(�3q�S2dӓ�,"����������_*ZJ����h�H$�D����ck�A�~����FA�׹���LB�:�}��W��Z��W_}Ŧ��ٜ���$l@���v���SDEEa�栿�ݺudeDGGGDDDFF���Th��?&@���
4�L��G1�����˗��dj	������T�ƛf�Eh211���Y�
���h��d�!��n���X���W�p�fP,1�;�v����ܺ��8�	�(���;V�v�h��a��w�>s��3�s�p��4w*,��El��45�#z����
{�M�'N+�
�NJ���U6����esĒ���Yq����k[zر��Oz@>��_�{�s���X��AZ���'���m���]�=S���5&�f���<�q�������Ş��?΅ڈ/#^��3��Fg���h!hq@K	�-%%Z$�D"��
��5���Q� �ঌ��g@��Lj3D����---�,�h�I��0
333"��b^&s�S@d��
����%��6�*C��\����X0 F
}&Ѓ���f@����h�Z�kOOO�>d��������@��MMM���9+���8�-���	�2H���� ��~����g��T�5��#r'�K*��Q1�d�t�胘�Ks�*�cƂh�~w�@�K�'�9%=�3�dH�6oߚ�����A,@�x��{�ED�U����?�� k�ޝ���1�{��dȦM0�M��B�+>U
�&�/0��"#�w�n��d@#�X�g��Ɖ?	�D���!h)����@�D"�H$�T������J�Q�pv.4YɆ�DfCtpp0�[�n�)�GFFT�q�
@�G&PX����'$�jid'@�a(���t�a �a�"�c:�&/Bs@�W�\	5��2#)�K�4p�
�V��}}}/���lhU�d�,��s�׵��
�
��rt�|��i��c��49�&����:�wl�Da�m ���k;ķ�s�n�?�H$[&�e��`|ƭ��p
24BvD��I!���;3����m��$�f�A|�$�����8R����3�ߝ<K-9͒�;n�L捉K$c�oj�����u�g�|�4�̍��|{1=����"�fq@K	�-%%Z$�D"��
��۟�Kp
��a�Oh�+�,Y�.42ZEp茧��
�`%؟����j1PsV���X�^�=�����ҢPcBB¢E�`�F��:99a�֜�l3S��IJ��V��QgqX�d
�Qo)a ����6Ь���a�'�@g�Gej&��w������1�]��I�L7u���O�p���U�[@��u��[����74��/]3י��=����h�0Ye@���m
@����x�˫�ʀf��P����7g�B{;��W�c�NN�2��<��N���3����v�g���c�>��l��G4�|��b��ꬼ��{v��e��!eu'��L�s҉D���@KII	��D"�H$zN�����=+�G0@�(�$/�Ȭe@C�A�Ck���#�x�޽�jx48�9X�x��� �B�I�
Mr9Tokk���		d_���r@ ����ɀ(�bqX㳞�	!.c[j������f.B��M�$e�ֆ��"�s��k��X�9x����Oϲ���{�`k���dyccc
����]�I���E�s� �V���?�'$����
��=���ŭ��8HP��H^&^#-;{�:��1�q+_��όC�����]�^���jcms����\TPo����[����E�m`�_"bbUǷ)i�&��wS�g��[��I43�]\]�b��
w���s�(�s�C��[{�}_�a϶����v��˪�wz��NHNK��e�C�u�J+�YϬ;��z4X�5�\__?::��yih�E/-��R���ޙEu�q�J6IUR����u��Dѐ��HP$��
ZV�n�5xr�}
�@
n⮫ƨDE����k5����*�ETd�3��^
 W������z�������o>�="mQ�R��ȗ� V\3��6B�Q#h�D"�HZ��@�'����$h��
�HXYY�2����kqq1;t��'''Ʀ!�;��da���bX�
;��Y�Șf-AI����������cddęV��΅o
 /���7\\\`@�C��,ú�2�7��-*a�x˿7��ߏ�Y"Re�%;::�d	��l��|�Y���v�إ���v��]��wuswtrrvu�'���L�Yp[�L�����}���o@ ��=�*��������?z�_�� ��J垁]�<�}�)��e̯�	��	O�	?�
+�a�]S:rB�\V�
,����]nh�O� �$[F~�!v�G�+;x4H�ܥz8r���V����
C�hs�����9�$���И�8��]������k\�(h�+������~�h�Jæ���%�D�M)(@���Bpd˝y&��w}$F>co�C��K��Wj��"\N���4�D"�H$��l�A>�f�S#�e�;��G<����7�q���A�DZsss����D��[���n��;:<h������(.����z�2?�և%5Ͳ�ygJ/5��m�ʛ趡��beS�%p�@��@�gU��
��q�[���A���j�gf9
�ސ��ƅSB��~�*�x���S�tWRp�Byi�M�K�4a���nņ�����seuh���d�`D@gXE�6Z��م�
�f�1��r���B%4r�w&�D���}�(,B�yJ��u���vH�s�'pHut6�!1�]l�g#���T��z�HAA�D"�H$�6hF�Z �[�H=�Y]3�:v�q���!����ׯ744�eG��H@�w�U��U��T�G�<����go\W�,�o$���	!�������<}|7��cwA�As��ko��=�j�����+����ϊ�B�>��9I$mȀ~w�h
�C���}6Ν�!^�#)�|�������|?�Ch������q�x�S��J��� M"�H$I{4�՜�5?!k��'������G}d�H�ѣG1I��H�N�����c<���ϲ����h���@����L�D��pްؙ���Ǐ�繤wt�O,�ەX�R�u*��%_��di��/��]�&��N�/���)�rg>h

�$�D"��@�7ag9@�����z�\8��v��U��D��Wq]��3�Ȍ����+��h�V��ȑ�D�2�)@?Um-T��y���|����|���N��º�76$O�O��1u���S�nL~cC��/�q���sS����T{���J,��1	�)(@�H$�D����W�x�jb��[�jkk�k���`�>{{{�t	���>�������	�õ[����a�vՁ;���u�wU\�b�(�~�����D"M����f����;���6%}�V�Nnu�o�}o�.��Ot6'���=��W��Oj�#k���u�٫7��{�}�׎5�37'�Դ�N(��1�"$wlh\Ba�^#�����}�����@�H$�D"=<�i�￁��!�=������_~�gƍ'��l�����[o=��s�xz��������&O�<�k��/C�iK]UU5w�\����В��YƤ�]�<llSek=_~r��y��n��X��6So��9:Z�\)4@;��PX��{I�vN��-�d���3
+CeMm���r'~����-9��ݳL�es�4t����1�b��s:2����@6B�
�2�r��(BO6�P�<\nZ�B�@�;��ܬ1�p�+ʨ��0(:�ͷ
+@yX��t�jc>����O�?*C�*��"��"�&=*û����&�H$���cS���b�q<%&&�nv�ԩ�^z�5@aҤI�Ǐ��gY���\��ĉQ``aa��%''�6�X�v-�����?mH�.�/�w�{�}��!�A��$�c@=O�>k����z��6SG�+�&g@G/�,�I,��X��u������3����*8���
}��_�ǟ?MD�붴����(���m�[���݉�̂C�q������=k����K�^`�Uh��p�@$z�]�C��n����!�yi�l�g�<�B�,��C�2C��*}����BpgL@gK�<�,p�!1hv�BOɛ[�~.�gj#)qVNO �4P����܆���V�7f�B��e���_f�+3�+"@���R��H����Ƕ�1:�1���G����҈�e�o$��
�D"�@r�a���lLL̄	����ꫯ��g4L9f͚�C,O��!幬�I�țf����\{OOO�����:��~�!j֭[��
CvzTT�P�!}h��r�%�H$���F����nw��
[����M��
P`}�5��[:���\jh�>���'S���*Y��]�2�����'�6$�
7b��Rݭ)j�΀6�ކ0��C�U�lex�;.��6p�x�zt(��Ђž�G�]^���Ȗ�Fd�������&&2p�X�m�1�3��C*p96T��d�+a����BIW�����O�}+�ڲ��b�ldC~��}^�ɞfUm���E;$Vʏu�k�n�g���l&�|���>��%��X��6�+�e���g�ID��E0o��Q4m�����Z�fc@�>��`(3��o�&��S���Pi��2C㗒�D"�@��!������?�<��������쐩��k�������P(��իW���ˋkf�]]]�WYZZ����쀏�jZ�GB�UӟO�H$�Vz@�@�5�yg���ة��'bO&���dž�Sttu���Rh4�>�� �����W�qE�����W�;�i���O�:�E��_�{*�ٔ4�)�����蕪4d�K��IgW�_������~���Vʏ
�a�z���ьø��*��+ϭ��A��QCê��W��^`�b��D���>�9��򩢠T�"s�q�g+n�6��U_i�8Wq0]{β�r@<�7.����^�� ���6
�5��f��~]�cb�k�:�[��yt��X7}��ʕ�p�2HF�E�s>��+�ed]=���,D�5��6�5
���.�@�kZM��fA��9༡Y��9��pm�%�	m��JO)�~�j9S~+��=S~3�����%����3�����7n_..�ES��D���kX�̻���Hn�f"�$�}$0���Z!`�*c@�	����N҈�e�oXR�#$�D"�~b"3���;�I���3f�`����}���F###Կ��+����Gg����ÇY�e��6::�kv�|6���k���%*utt`�1��&�?��,�3�[�}w�I6k��Xb�],X�+�n416@�"��P����5���0�PED���`o(��(����y���٬_�ϝs�u�s��s.g����2dTw�n�����p㳱V@�{����݁Е�6�n�6���O�����6�@���6N��L��'�;㹰��zy�oU�E$�*�kxgBP�I��FӣڻjIB����o{��!~	�kq-yq�x��~4~����He��8WP��dZ
��!��l `NQ�'�]β��sUe�	l+8e雈�H'7��v������~B��Cw��}�>�X��X��)SN��oP ������0�V>�ØH(P-�ũ��NڵQy>^q�����+O<���N�u����P�2�O������J�ύ`������9�D�_���7z�7X̋��O��Ol�Li��B
3qp�>�t
@�
���KD��I�W\�h����?[xƪ+��t���D�L0c�$1VI�N��w�Y�t!�*c
F�����kwJ�zN��?����a�&gL>-4h�W,�3@�tj�թ���w*��𸐍%5=0<�b��Ư��x�ĺ�4r�3]�ǯ�ͥٮq#']�u��g~��<��g���|k"���e�h��^�2dH�OQ,�ޭ|���;w�<t�P�m+�0����:u���F#*���G�g�h�p���B�677��,;*a�W	^�K-C��@����n�Q�~c'7�Ϡg�A�7n�e9dD���^Y�Lm-t�&-W{�+�2��#���s�@WXpT��o�y��ڶ�Ms���Uh��MԂ��>1���+�O_*�Ga�b0+���(p;̎k�ih�U�\��FQ#�7�|N\k��.圥N�l��E�#��a�D�E�5���Is0��L]�� +h!�Nhlu����&�ڌ���$O�p8<�i��
�"�3��͜u(aqdn栦���n�y;z�>>XuH�pud�F�sE
��4[7ny��{lW��^F
�����rVSh��3pp�YZ1r3]��0P6�F)F���m\t�5��6C�:�I}d��Rn%F-gji��i�����M�y�:��_�#�
����Ë�vt����4��>`�M��)~��]u�ͯ�y����!���Χ��r�[8j������~�„w���G�qؘ�5�k�1���=f$��W?	P�ߍ�<sdY�_tʝ�.L/-5��r�����)&^��w,���D�S)�,�@�x��4�e�騍���;�a7�_�97��<~ʼfj��r!Jv#�i�� �qB/��7MѦ�@ː!C�@�|�#�tFF���?���k׮��~5mڔ
�%
�_���5j�����#G��oߞ�ٳg�K�F��o�M��ɓ�o�G$��!C��ꮀ~E]�ыzӶ����۰�+��|<�q���7�iд2}nծӾ�l۱�]G0t�j�v%��wП��&����?�.����m����mfiZ�T�� ��*4\��vA��KETަ;��6#�?�
r�q��{���_
=�Z��`���Ǫ�\�}ٟ$6�ͩ>��}����2fo�·aD@���+#r��dvqӁtA�L���Qm��ࢠ�K�O}�Mj��H���Pe��
/�6�ӄ��^wrX���vQu'�h�\�7����6:m˚��fj������\�-G:�ƴ����b�_����XLp���k�?�:��,-�㪞^�f���_%��q�y�=cSƊ�\�Yz<��:k��M_����.Ki>CÂt�Dx��t#���'a��㳷g�nS6�m��[�8o�tٖE�=�'���;��6^r��{�9�o���I��	�7�g��#(����� ���8~{��gL�Y"�
��G���qV�Xmx+\��ob_��o3�����F-I�۟�<,w֖#�]��lS���κ�~F����|�$��q����ޱ
}{B�^���KI���n�����vŠ���'Y��Y��`��tP�8���1��a9��N��ٰ�t������7m�a���G,N�㣰x�3�x���֫Yx��<B���==c]�aq���"��c�(�9�p7��d.�&�47��,M�YZ�\l���π��_ȶ]s��x=o>$��Z�2dȐ�4���b_��ϟ/�^�G�I��_��")b���)y��w-,,�ի�~�:u���9[XX�Y��P8J�Z�!$��!C�����j�o<�z���w|w@h�8�n�֥G������Y����lw��q�ve�]{�࿁C?����
0MGh�yV��ԩRLM��g١J���=8��_�B=���a_��g�#_�|�'����M�8z����\X*�@w��y��\.f`aiWjLn0-��L
��6&8;�k����s[8F��͢2�����Ghu[C��b�x�O�?	L��������h]���/>@Zk
4�xk@��&����lJ�V�y��g��tt�4���	f���?��j�}�]�&����M8V80��D��-y��^g��3t��I����nDZ�Z6�t��C��d�ݦ�����]��q���rY2%����!��:DC�7k�R�+�<�v܊��Nو��+�9�&䇜�.�����WpY8����C ��H��s��+h�Y��uJg���\�;��J*�0�sx�L��m<u��~Y��I~���·$5�w�|N,������b$�d�2R��	!��b�w�=�,�씝�Ġ:�觑c���~���rW⦂�8K�{�O^**)}��CO9}�򹻏����è�ɸ����o��������7�WX���\�s�M��ś,,�ۃA�y׊+/ݝ��_�8�G�-��2dȐ!C����@Ӕ���(��,���
��=zT^�ti̘1��ر#:hq���S���W����@ː!CFuЯ��&٠Eo�
[v���޳?d�e�F��j�mh7c_H���Q@w���ٳ�Ο4l$Z�o:B��H*�u��m�5n^�n��[�n�5�6��ײϵ�p!x�C�}�TG��l�jώ%��EZ��8��1W�&��狒��/�R�\����%IS��	�]����y{/H���00(�6}����]�uޚ���F�rR��m6C��ؓ'
<}���uǁ��p�y�����:֢��sqj�-q��pUr���
����Pl8Q��PĔui?П*d<��wb�)�'/)mnT�m脟�}#`�޵
_x��o��?)t�B���EkPrݱ�Ԝ�҇��\.jd��4	����KMD�8,�2�=�0�)aIߞ�5�b)��n���`1(����/��͒�re��K�ֶ
�bނ��N�蛠ɺ�qU�~����.#�<���^�x�P��iǘ}C��]\��#�Wd}�Ya{�>F�mfEo��>|�,~&N�ب�E`�L���W�Yr��{�D�\*��0��^i!�/�+��
h,8]V�d��d�ﭝ�����
���W]�S:�;��m��D�Y���7#��22���3ԭg�I](���[�o�PV񚡣��
,&���1��F�Bb�Ra�R�׼�:��I���r��CW0�~*~����L��S�e���H�����uN���1YׂR.��:�Gh��@ː!C�@�fZ��(�

^v�����?i���V2==��ŋ@jQt���Oe04�@ː!C�����p��704�|������Σ�Ʃ^<b�k�m��RG��֬�8p�H��Ԉf�̝�ݾ��h��[��L�L�O۩���m�wtZ���V�x黵����u7G��""�V�Y?�10h@v�jO�%��e�2Py)�/����6
��
B-{��[�e���ދ0R$��q���פ���%!�1�bю�s.�s���c��s�D����N���сul�S.RB�†�T�]�I�^-���w&��4�S�]/i=K
���r�z���ȿ�j��;z]t:yMZ�JnHB����&j߽'�O��ǣº�|���\�gr��j-��X�޼7���oM��{\����pr�_�Å9\��Q��*�m�:"��e�	a�֥��V]�{�>.dY�)1B�NjY��uL��L~�#�uܔ����?5�����b`�m�_�;�Ңw*�#]�b�n�|ml���?��(4�֫Ұ=�ݧ�#L�cH��	nb�b�z�&�RMB�Qy�E׬��~45�ƄЦ�*0� �]�c:�hQ�sH�ɮn��C?�cj����v�gV�FM��.�;?���8�v��P�Z�a�V�����h�e�H��kJGȱ�
V��ߟx�*�o�B���^/�����c��svf����ԗ@��"v���eCP�2Γ�:ωa�j�^jZ����8��ԗ���f��ߍ������8{'���F*O\�bR�b��Z��2��"��2dȐ!C�п)��O�aÆ�r~��Zggg����~�v��ͩ٫W/�:�/�����7b0M2C�/-8dȐ!C�G�ys7O�]{�6o�3�f�p�`��4������狯�Ǧ��.�uP3<R%���}M�����Qy���wĩ���}��a��\YJv���?�b�bc]�	��?�o+I�%�M�T�:���M��մ�=�Q�U��.h�$�Ī=���oE�C�\x/`�t��G�-2�n�MJ�����R����4�I�P������u��]��d�G�,��P�x����&�}T��i�4H���;?V�)x@W�8't�k�_����0b�����@�:������1$�7?K�lh[�$À`a�`��0�:Ps�>�̻V�x0Y���0�5!�q���c�ؕ��ԗ?V&��5��M�9D��QH��2p�:���I>�i�e��f�`�^�+,;�S��c;(6�(�#a�
�F��͓�/
u<w#���ƇF3<��<��M�j�z���u��Z��a-|�͜�M�I{����W��<���I���}�mG�-��g�]�L����X�J:,,x<�p�V)���K C����ݯ��h�#
��*�O�:���<�~�����R��l�Z;j�:� 'w۞E!�5-gD�	@k�d��k��򞣛�^�|��E�w�4���S'^Z0�f#�VN\�J�7�5uP��֑���u�8��eN� �Fcx-�J-C�2dH��4?K~-���{{{Q�����_A'N��k������3]PM$'$	� �...o���h���#j�s��I-C�@�V"�֤�2a@-f���Х�GMZR޴U;ʅ��o���Cw�Jխg�>��4ژ'���
�5|�Z�)��D�)���^�lŽ{%W�\2�3��ȥ�<�^p}����G}ѣ������h-z��m9Hk`I7n�އ5��Y��S�g���-�<�BZ,&�My�v�P�<�/�w�}p^�iQs�/:(t�bC"j��eNl�)��U8�ժ�;b�^,,���E�Lr9!%�]Rd�8{_QgŠT������=�+�����vP��Y�HV0JBNɧ�g�Yj��%!
��^��W���NVY���vߑ%,,۫XU-X`%l�j���:C���u��(Ax���|������4���NW1��N��su��BV��:ߝ��[a�;��Y����=�����!�"��'d���C{{'�z�P4#"cT]��0M��y�F+��7j���{ĵq��M�_�&��f3��.q�i�����F�O�ڒa�
�_%�!�ԩ4O	+9�7��?h�J�������>qȺߝ�zY�d������++v�mB#ӯ��S!s��Fr!��?_��ЙQ�p@�����0��Uh3'
$4+^W<}�J
�L �nl�B���F�G��D��O�(��j���I���0T�e���aY�TޗZ�2dȨ��f�V
�C�$�.�z�����l��Tx�7�Y�;w��,Y�D�,_�\�:���J���ÇC�ɀ@ː!C�п@C�qInӡ�㬽|�]��u��e1�d�����㰁v��o9x�H�[�A
����mͻ*R妭>;�Qa������'K�6iѦq��[�����_��7ޮ��~��|��C3`�-�v�ԁ����0�f����OWF^�	��/У'a����E	@�u�ܵ�\�ܶƴ���!�[��P���!�V�4Uٔ����WB��Z�[˙j+R\�����;,쏭WDk,<��B'�����S�~ /���X�=y�!xk?�Dr� �ˋ�?2w�.�w\$�"�����5���I�� �8iwŝ��q1��#�j��fa�ɾ���31�
�F��Ǖ��/��o�{��"r�C�:�(�؆G=�#���i�pJ���j0��.��^qPT
��Q7��ڶg�U��Fv���=��t�>�
I�����}����k���,sࣳ%�*Phz|gRht�^~��j��f��֘|V��uY�I�݋��j>[��".�D與�%�19]t����mz��c�UZp��|�lVt7-�q1x?6��"c��/�8��\,�>�U�\)�?q��}�:S6l�����w"|Y��/J�&��}X��,c���f
�����#�J�3�0�"�"�swC��&a㡼�8G�D��ql7H`(�pt�KjM��
����J�
cIJ��_r-���n�����ԏ���Z�2dȨVZ�X~	��z˖-���߿�/\�P�n]*ԪUKx=����
6�΀D �{�Gɼy�D���0�Rh�%�w��2dȐQ=4����(�[�~�@C{�w���}A��$�����M���rx�}Al�s�v����WtJj>�t�N��4զ�9��waN���Z`ޥ;�������-1)92*:Z��3����6m�׷���i;�́b��{|4�~&0�������1oA'�^5�4��@�@'�tr��ү�OٮN�Zqp�ʗnVl+RQ%�-[r��_�F�<( E��V�?��2�[��E�n�n'=��Wt��	�=����/+G\�6
���a�2/� �z��%�s���u��t�b��}m���U�|br�䑸�	
�J�-&!n6�d�CƋ�����D4�8r0<�
�\sRskلY�3�V�s#��,�u�}d�@���c��<u�D��
@7u�����U�{^�Ш�[9i��H��h,8*t�i����g�}'(���i`n�uocM���"��ꈜ�>�H4��B�^�����]�ƶ��h�����y�����p��o�7
��\c�#S��J[�
��f�z���XK��p��_c��U���Z��U�4 �a��w7k�I�m������wnl��A�����si߱
�S!�X�
$s
�~ቁ�D1��;l�6+��>
 �==c���F�U3�Չ�s=.�	���ֳ�d���B�{ǹl;r0G!�|x�F�mH��i,�����X�	���:�]y�;{�A�_r�11Ր�R\\B;����T�w>,��>�Bf�������Lh2dȐ!�kM�c�2����W�:�N����UyaPP��0z��*+��dԨQT�Y��S�D�'��?ԫW/;;���C(����2?x$��!C���	��
��
h\5��X�������y�� ߀��V��E���6�f�/�#G0Ө�/N͸<�
�����v�:}\Q�B٘ϱc�?3�c��W�^�s�6�:�Lޙ�����'�Ob�lŪ7jԌ�VӾ��+�Y��8�	q��K4���e;Վ^U{�,���Tt�#'"-*-'� [�?�n��l8-
ʌi��ZFJ��5���L�5��' ����}oOA�,��æ�9��"��#5_m�0D�#%�ү�O�H�<��	�)�tK'��ɂ�$��E�D:�ːM�>&��M��
��2��:K���T0/���CѺ��ͬ��j�ȀD��x��0#���pM�p��"���̗�O��:|M��'�`R�m���Ƅ��?h ��q�t����,T����.��̤�}���5%Xo�5!c
@<���#(y�_MI��.M�
�d�}�p�#]��ѤoҜI�c��P���u���NōX|���Ҿ@�'"�Ffn��bU��~@?�z�cG5Ce�P.-{�uxM�0�S8|X>ny
�k[�ˆ��>�;Zx�񡋃����K�kN��75����x�HBH�ʺ���
8I������q�):�j�͢B�����k�1&]�L���'�z�!M�݆��z2X����∃��f�?)b��t!���h��2d1n3���:���oھg����b۰u�t�8cqI����
S���EE�����)*.��/#�y��W��*Mɽ{�5�a�u��3�ό�/�N�%�a�L����6\S5��T���R�IM�$F��%�D'���hVgL4��Q�B�
���ͪqEYD��nv��]A�U���D!n$��}Lۃ�P	�S�.�{ι�{���!C�@w
@w�
��n�|Ÿ4i�y��BѮ.D͢!���=��ע����� ��##F�hhh0�9s&���:�����2dȐ!CZp�&"
^�|
�gA�
�]��>?�]c6��4a��L��3��캺:�,��f�_�� ���O�y�*(,|e���熍�;`p����3�g�-���-��O�bV���/��G��6�����Ə5U5
hR>�/[)46�h�鐟��?Z�4�D.]E��1�,H���@:e-ࡖ�	����'Z;%X��:��'X�K�/�ϰ�a����c�c�&`\ L~C2��]��ǔ¯�u�(LI��.�/$�
�'�X$��0a���5z-�+b�'6(�q:~uM�v���!��K�p��ͨ�H����B���p�<�E����\t�o�ΰ"����*-Ra�!�C�_�,�pgxQ���u�'�×�@l�$�s�4����ޖ���}c���
�����V�0;����Zf$4S��}/�5���)�t�1�z�Y�p}�'���}����ʗ��`�8�W��p.�p\�s���;�\)��A��l��m�Yh�HV����ۘ��><Wxsc�
'��Ш��h<���[p�������sv�㝂[�,#lZE���I;��wJ�1�밢��'Bҫ��j�K��P��ˈ��A띡�;ͨ�>�3�\���-`�!�����7݊�h�c�=��P�I�i�~�%ETN<�@&C��p���Nb�6��
�
K���V��0����sn��i��_�~���3EA�J��>I�DZu&�i܄}Zq��mhD�Bt�8�"��QC��MM��B#T�	|b�Q�紨��n��
N��L���\�m�2Pc�Kf]1^(tk8+*߳!ո�����%��!C�@w/��k�y�FM����S�
B�l|��A����������}�Q*��1�
�:اO���q�����
5������FaL�YX�s�2d��M���`L�����=\�`A�/�Wt�@�5�d�)u�ap9t������&1PUt��O>�P�"�Q����}��k�伅�)i���d����`$��+��ڹ;Q�]�t壏�-�@�ۆ��Ol\��������w�ُ�gjjcL��z�,�(휚��xy�ı��L�5���f�}�D6��
�{�E�=��ƫ�w��Å)�\~�F cC�kh��e��U:\��-���MI×�Nߑ�d�VNp�,��6D���po�b��@�מ�%��	�4IJ�N�
���ز?�B(M.>4��x�M�]�8�i+�������]7�W���0!LFͶ��	����G�9$�k'n�p���ܖLs���6hH�6�of��@�Va^�������[v����H�ʩ5>�t�����'1$�$�n_V�k�lFq�oL���T��,��	�jx_X8&<� P��	��\rB��4x��$�&kP֓�k�|+`�?��o&zyT�p�Ī�y�6}G�H�h`qtN��-+��E,u�f�g鰬�*�
R/�
g�(��N��/�}������X�WY
7�
���|9�Ҳh��r�q�=��`��󿯈%դ8~�(�ǮӼ����s=}s�N�77_V��+�T�|����60\�4MC��������Ҽ�����fded�TTU�3?3�N$�f�9�	�A�d>�<U�NJ��ɭ���l��"���$��>��Ԕ�w
o\�Q�mmN^~��!��&��3pqIYJz�6%�lqi�FZH-C�2$�����il7覦&SSS��8%%E�R͛7���8���}w����̌��ٲ4�ׯ��Ν��>p���{|9���:5e��uٶe�x��OX|�m�.�ʵ�m�����Q44�t�8o?!s�hA�y��Ͽ�J]8�
�r��֖�pǏgp;t�ӻ���W}}�[�߃G?�P\\��a��a���UULi�[qv�>c�(�b��i���Pf��|wJj�*�i�/��g2����
����u�����\>��O�&�� K}_풆�����L�<��T���1Å��lL�De��pČ>3Ef͗�g-�`NZ$����>R�t�u�+C�꣮�t��)q�}4j�1�	���c��ٞJ��I[RI�g�E L?掉��[�4_�+:߀����[�?�;�
����0r��w%�
8_�,�̪�b���bU��q�
��)�5
[�6����	�$�"��p�m��fM�9i�ګ0;ީ(BA�-�v��������GOݚ�GY�+��i�)��Ic��Z;�VN�&�"|�)��/��v8��t��H‡}��ݤ��ywd1Jm�l�N�5�lwDɤ�I��MWƂ�R*����Ä�I<�ޗ�fkȲ��9$�;��EŒ�S�b�$�N�!�Q#�G���?WFn���e�w�J���j�ujV��Lؤ�X���(l6���ʷX9����],/Rh<�m7i�
+ڧ,}�%�&�yd�F���֐����@���1q.���w�r~)��G���b��R3w�؇b�>v�ƍ�Voҍ��jL�k�D�M�F�^&lJ���=��b]"_��Zw�����Մ)Q�ۥ(~k[���Q�_^7|i���cJY@����g�Ù�k��=�t���4m�;��q��cO�~�ٹd��`�%U�$��u�����o\�s
����r�Nhv�����E/�+W��H��Ʈ��?��ݏ�dd
usv�IW�#��!o���%��+*)���m���Ht�Z(����w��ӗ�25j�)*�!�������݁!4�9\S[��Z�2dH�]���%TQ�/0D�C�䰰��Ϧ��0���GG�{#�48V������hnnn��ǟ��'��̙���� �!���j.|_Z�RR'�J����+�E�d�@w�z��-��������F�� �Z�bMqQ�m�U�|����~o֜'�6���,m&D�T-W�r�D¼p��w`��/>�� ��_��tA�n�1Aff����;c��d�$D�,r*�?I�Ī��6օ��8�j���	���2ek:�u���>���
�W��q���#��…ᒶ����̏����|E�y
l�!�V����.��r�'���c�j�۩|��\���9R����>s& ��r�>�[�䇊Q���"Gb�4�0h���� tȢ�WW��=ql�o��i���-i詟j.B�na�Ȍc�Q0N\�aĖ"��NH>n�v�'�1�!��a��/,�Acn�D2`�-�~ʖ4��)��S��Qd��6�t�
I�է�E�7�6��yXy<6;��|H�)��	� �)���UTgW,/�[�=/��XCV��=g�bx�y�T��c�_KVF�5D��Ԟ��@��gNx����tgu�.RqDG�Y�m�4���1`���I���n���4=;V1���S��
�C�B�KCD�|���1���9w�
N�:�㚂�2W��YX����~��h�����~�D"A���8��:�j��h�Y�	�����
-y?�aw�s�ѿ�s����?FȲpi�26/fRj��=�M�be�6/�d�r�z�d�tz4�FML�z�<V*�k��~���:��=tm]�A)�8:"*�J�4��E����!�T���1@0Й\�\�}��%7ܙ���G�\T\
hV�%��;9q�˯��ܕ+W�?�+d�:�od1�f���JFRYU��s4�亂�/��
C�̛��Ӆ�����&�2dȐ�����<Y������O�`����F���1z2d����=/��h~���Qgɒ%��q��o{�1�����D�/���;�H?ʐ�P��T_�}I}KYC�,,�
��u-0�eH}M'<�:�ͭ'�U@w� �b׾Nhj�_|y��7����.c��ob�>6��i��C��Ěc��i��5�܃&��3B�h�Ǹ�&M~��	Sh��RF��������;+��;�������q�Ggm���пJ�\! �{(8k�©i��F�l�1�|����Q�i�
T��g�#82?�~�9��e9*eBc���R�M4I�BQ���N�\wԪ��+��� KZ�=��p�t�2Pc�~w{
:b�(�ߐ�ɌP߹a�L�|���Y7Z����sv٦	ۀZ��S`Ct"z���m�3ցa��z��r��¨�k�����4�	��&�U9�z�
�&��s
���%lu�'O`���[C���
���5��t��9�'��9����w�FEL
��v�;y�~���LP�kz`x���3�ޙ�����Ռ��u�䧑�0rn.,Tq#0�@[����"t��
�=؈���~čf�Ѓ�f�AC��7p��^�O��k�g�8��Y1���~����(��\z0�F\��M����Ķ��O�@񉓧�J��>������U���d
)z4����@�Aa��iH��[����N�5���{�3�x�A��f
q�h+-�p��a:��m�7mjƾ�^��� ̵Pv��w��5=_�&-8dȐ!C�������ἳ=�̭���3?#�...&!�ed�\�~�A���<�\��nllLKK+���}���h�t�o2�8����ގ�;ˠ�ϓ�H�K�M�����^7o���A�|<.#p�Ox
H�
v9�)r
R������b�q.�ğ7�Ю��ej���m7�;]
*��@��E <%�O'yFUꢃ�ƂY�A~�P�Q�S�>=E��T���D��`��
�Z4甞�RS��O���:�L�戸4��9�18�*nƇ��m)(�Ya*������ӊ�u��HeWl�qg
b��f*�m�ى�0�,�sQAL�"�Oi�h��P�
��IK!VU�?�،n���C1)��=Y�/�����2�M�3���M��~�%5��BY�U6��,�� ���k7}QGTc��Y_���_?�)㙊�SL�gh���1�'���d���+�#���C#4��˙ύ�yp䇶6�<���Qsۭ[u��1k�`l$ED��ӽ���W��s�4��q�I@�y�<|�1#O����(���y�\����g�� ��
XN���ω$��!C�@s�n�Ch�d�&��$˟�l(ce<�Q{�?w��b�ߐZ�x@w4	!��_����Ό�/Z���)����Jp3�ϫܽw�u۲�埬�3Ѵ�g��Y��z+��],�
��g�iz�h|6l7�m�5�c!R���0�xgqG4�D/?��.��Hz���ʪjL-�+�H9H6L:���5����=�t
�j�04"?
����@757c���)VX���'O�)�Ô�-�e��¢bъ~x���>�_FW��p���/�`���FCC�x����#�bL��M!u���!C�@s���F!�̿�h�;ҏ2dH-������ayI8h�ȑ�Ǝk5v���픉S�?�
��k�*�@7j>�o����Z�^U�͸1�~���0�o��WV�s�ȅ;�;�T����о��{�9���?h0G��hh8���Kt�&�?���OM�������\F�,ƃ�sPh$���p�)�yƋ\dJ$�a�:�<�U՜դ�ϥ���V[��76�+���>�s4,2Fh2dȐ!t����`�Ǭx�3.
�.�be�:J���,|f����8�x���(w��}�:�l��vG��8��R�t��@���I
莃�۶&C�6D*?C�PS�I#Y$����SoQM��/�yH4�g<18"ttf�.	�5}��q��}4�X^��O�p���2�6�Q���2��h`t;���P���q�h��a��MFc����UD�i�NJ�U'85��4m��3��^�d8D}������❀~�<�k��Vvn��Cޱ�I@ː!C�	��}�<�{�32�������O__�U�V�Hb/����{MK�艫��������pVUU�?~�޽]����\>YZ�[\{��|e�M���N�,�+�����ؽ}��5�j.��]5t���Kƥ��ʃ}��[Rs�s�T�7^�ZF���
�^�Le�Z��(p�l�{�R<$Zx�`��O	�;��K�q�8�u�W�vgy	nm�>Q�J?
�
��o�Y��p%I��r��Pf�"Un���лv�S�m���$h��,}y���!�T 	!�85z���C^T��f�.]�b����W'�g�	@}��M����̀�n��vIi9��\�JBBh;��L	����H-C�2$����y���M�u��nyUpvv�8qbNNΏ��`�V�^=k�,^ƺ��̞=�'.�F����R*�]hK�Lss�]�vu@Ô5�[\>������+V�TĔ���+���Z�p���}�ծ����m���Km%uW��Gm����ȸsz�4�8F{|�/�n�|����[�B�k����w�Hs����X�aSe�
v%���=�%����é�k��Jf�|3齗��$c&�ٰ��X�)���������
bAQ)R�(M�����&���țYsr\����f���^�]kt��--
�@kѢڄ-b�x�2�??�=���FM-m�ink�r�����S�B��Ȋ�X�-ҝ]g8����O�����O����>Cu骥����ˤ���6�E �}O467���dO�9r��F���g��]�q���l�p�P	W���~pyKo_?����ဝ�r?��)\�o޼���	��������Ȝ��c��S��y���]�x�����ؘ؈�
�����OX�a2�BF4ԅ<e
���Y�Y6��4�����C/����L�<y$���c��P+H��e9���f�


�{�]�v
��c��a�����1cƬ\��!t�UKfN~�E�[2���
�4e���]�]��t^��|�*����3�]����_��q�S��#��N��6uJlB"Rh�3v�O����pHhЂ��y�ӷ��
�)���9K��
�5@kѢZ�-���
y��O�C�ͳ���·:��h}lD�\B��&�{w�th��_T�cWN߹~jnܸYXR��!������{r�ӄ���s/��D��������ȜG!�F-��qr��Yh���WZZZ@@���ݬY�jkkO�>���p��a�ƍ�BN-X���)S����9rĜ�+���:h]̓�����հ��}`` �<�’�����9""�98����iӦ���r�-0��~�:p�P���Ehh(.T�����/���O8�z�j�n�.]J�{MMFF-�^���Q������,qrr���O��Ϙ1#))�1�8~0E���7o�H��u�hOW\��X_���M%3������×,Y"O����111�%9L�0n%/���h 2^Z/�������aaa���T�Y��o��裏&M������G_�MnYYYֿ_k׮������~h�'�Ss�H4��������޿x�r���
]q�����q�z���?0�5+�S�q	�蕫S||�[��r�w�5����|��~<::�e��� �>s���t�Y.8�!���79e�\BK�A�������h��nɓ��~��(�V��nB��h-
��hѢ����C�?��My��j��朜�e��mXT㪑s ݴ(�ͅ69uJ�������ѶH6�؈���04[�{���zk�ر�g@0�腿��Kx������,//�eKKԕ��NN!�X����).��@@9?��j�������r��w�8�?^x.L󫯾
		�P���Sލ6	���>��$	�D�LxA2�}�vnG���$1~���8���_
����m�MMM}�׶l�"/���;p��2tA��L~~~x��d�2���g�qj۶m6�k�7$���&ɉ'�ky ����2L���W!��>//���X���ɖI`~�͍�̙c���x�	p<�dKb\H0�t"��a�LWPP�3ጅ�.��B&�qR�1��| �.?~<3�y�f�]tt4�R	��f��w�MHHlX�K/�D	� �}��f�톴�Ӧ�}�W���T'G�ŕ?�bٶ{���#z畉)���k[Wַz����'��}���7��av�Mk>�x�����\?\�z�Z���/�]�Q��9�<�ӡ��{��8��\�x�r����ys\]�||���a]�6�g.��G,�quuu���
�f�fd�?�@gg'~�ג�`茬}nn�/�ctXY�Nc�
��Z�h�Z�(�1�~C�V���������HIY%�
޾}���G
�54444@�*���?����q��õ-�޻w/�հ��M�6���+p^A$�Yx. R��H�+**���믿�s�N���������d�@�:x���pL04Ǣ�B��)))C�E��[E�0���_"�F��V!�H���ƍC�l����?�c���A���Ŭ2:��%�ҊX�;2d#R��‘�%$@?�o�[TT$5


0_@��H��a�Ƀ%`T����)�/�o@��A���z�)04ǀ`24ˑ���$�R2p���;���X)jLn\��R���է=��QCC�a��yZ�����B�G�Q��MݲcY�ʙ3���i:s��MKlB��.��o�4w{��ͧ���H�Ҡ^l�+�Z��}�tjz�d�I���I�6��q��� �>6�F3f8D��ݰP2��+��>�w��� wOD�>?�uw��/C�#����`"�����
��9���X��񭎎�'���o��� ��=��ͽ�-��u�/�Z�y[š����*j[@+�~x����֢Z�-
������Y�������У/����>�!com�srr��H���-X�hll�%�]s-�+��5'&&%/r`�� Rf `Եu<�QF~~~zz:�yٲe��oE�J?6ZZ
�Ș��Xv��sA�Ƙ-0Bi�p0���i��(�E��L��{�J~h @�(�q�0��h�1"ȸa�`n /,��0uV望�{D��Z3q`:���=
�'?��LB��ׯ�%�fi�f�H��~�
h�ͺ��⋱��t��0��@?LoZnذ�\��_N����<B��!���/R{���P�=���q	��;�;:9��t�/ �蚖n.��h@�#��ܨ���>?N�0��"���� ]�5 ؍r�
@��O?.e�ւ�cv'�'��W�����d�-���f}��mKDt�\?Rj�N�s}���w,';��M���s������/ ����&���n��ow�/�Ų�P������p鎥��}�;ԂC�z@kQ�Z��
��A3@	1�P�������o����H����\ф<!��޳gX8�qd���)�%�Y4�b� �b@�|�7��d���qqqH�a��w�l����C�&FBa��Xd�h9��X|��g�y�dL���5��%0��My�@��ՠm�8�$)#El�0�ə�4$}$Z<����DFF��LW���3"��{�fK@�7C@�щM�̃@yYV�H�"��E���"����`}V�Seee��h����6!���s
n[�ڳ�`���K����%$�q�{��m	3���C�!�i�Y�
�6@��-�WpF}<u�]hXDәK�q�vu��ޓW��vM�ٲc����*��k�z��21�vK�U���/�\�fkă�լ���Y�l�Ռ�n�ĝ�
Nv^�5sB�а��‚,Lc�}͂�\�G���$��ִ�0.�
�N��Z@+�֢E��h




�-�6"h>@�-�`�H`C�E�6��5�F�k��x+�e�*N��%4�,5��
�F�3�Ul7���,��s�ف�ZF�5ą�Nl@��/>�#�$F�k�I�� ����� `C�I����2��	c$[�.��@�@�gmf�3bpv��mIW<B_N1���Ib�N�9Z82=����
h��hY__On�!�j2$>-�4aVi�7@H4��Ԟdȍ��t�ʒ�8�H0�H���hًh�
4�wiT���f<4���7w_m>{e��)�W�b�>��h�թ��ӣ����K�B~�9��K:�@1S]��[\Հ.��XS�O'�u�}�hi�rO/���_�`e����ȥI5;��ĸ{q���v��k�F����䍱�I+V��[�oh��u�nc��u3p�F`^�vg.��h��֢Z�-
�@+������P��h��6��|b�<j4d�l�Њ�!��=��=�+��),�
�7+q��Xl=h��ne�B��7h���%��6��'�|l:r
9E��6����_x������;
�y3���l��3���
���c��L�tK�@���4S*�ݛnq��˻�5]��,�4���K88g�a�t�hx=�T�X���bZ��B�ͧ~L3�9a�FA��9����j�r�����1!���c�p�6�*III�Po�Bg$����΋w���^qL^��󑆎��񠫛[q��-���H�S�l���e9�����"1o�/���o��r�\�ڇ}s������5f��+w-�`4*f�0s~�X�h���bQ4w����<�h4�X�i����
��Rk��S�LƂ������	��{��)2��������N�Tr�-;sx�.��o��Y�
�ՂC�h�Z�(�V�ZCCCCC�h��G���%��hA���C�^"i4���6���&��v�&cj�~tl�GK<�EtL�@gH44���t_�7^,����^8/���N�8`���Z���
��쉱����T�8K�12:��8&&�L��嵡��I°W˟�n�+@��1��r*I�
���m�è���X5��&���h��K�=�����ҘF�F&�D�$���[��؄�r-zs�>���9:�1c������2����z���̖��JNN~���g���
�s���b�C�d ��s�k&7��D.ͷ�&X900�o@��F��Y���JV�nG������-d7��#
�^T�$�8<q1��H��\��.(;�����kIg��]�!
T���Y�]t]ܘ�smj�{�J�h��vd#1���@��=;�g�@þ@��>|�[jʅ��I�6bT���g�"f{xz���j��2��ϟ�/\����#G��-���Qj�T��-d�E�0qܟ��ܛ_XQ�i�NXv��u�i�Q�Z�Z@���Z�����?�
�544444�IZ�O��ڸ'?B��g|*F�^�#�mhh�֌��(g	�0�Q<����h2\R�*�S%�=����lW���;_F��Q���	���t�E�Գ:l�G%�Z 5��	Î���N�25�H�FSz�s���W6-�Wea�6ݚ�E�
���g�]Ƌ�[�[�@��0a֠|��p��h0�hS��]1Րk�/Rk�ES�-p��9�b�=�Y���j�=�e�X��ȵ�~�2L�lɽ�U�6�����N1Q��4ӿ�ͷђ���N'Plp6v%�k��s�e�G��*�MM�բVv��tr��d)n��h��!����c����Rh2�+V��=k6������>{��t��Ө�y��>�a���e���: 0�L�aK�!��[Pڮk�e�C������k����T��w�þ�rT�ɩ�,[��k�n������BKV
G4������
�����V��doC��P�Z���?^T��?�i��)�DU�뇜S�@+�������h��f�^�*�8�_�^��8u�]؁
{Y�)L��2�](EeL'n���*�F�E�R�PuR�j��ծ� Sl�2�v�sV�k��'}�r�Ś&M���KINN�yOڦ�<����9h.�Ѡ�o�	d�y�b��,"���]G��e��..�Dk��ir�}��Q��'6��u���C0,�9�尵<⣂0���)�n�Ǐ��P/9�Bb"X�~��D|0f6>g�}�^dl�6$g���툻����ಣIs_s��fs^��#d��.<1�k��s���-z��Lg!	$|���%�b^Ї�|���}}z����NO�B7����%�"u����?���+nw(�u��ae�AV&�9�>��>1;-a�"W�M�m�`��>��A�FX�W����Ag4s!f�96�dx�T��c$G��gP�-=H'5�Dj �ɉ���dž�Wn	��U�rF�$�
h#8,�Y�ҡ��w������~����9�ܿf[�M�����,�GD�#�[
>�d!�3����ɽ�����P��Acʪ9y#n�y�7�	�H$mmm===tO'�Ir$���lVy�	�$i���ё�H� �:Sc���~g��G�<�)�����؍r[FC�57H�>��'Iؠ{���.<�l݆
g$�>+{ `����M[����R@ϛ��<���ǫ�����#���,k�9y��gz������Ε��%4q�2-%Û|�Ɉ��(�K#�s�pk"��	@�k���'�Oioo'��YȻ����Lu�9�MMM�JTϧ���ի]g����Ѷ'��oiy��u��W���$�z�?�Z����&u�k��[^�p'u�eY�W���Ll�jl�>�Xe:��Dވ�g$������l���KU���f�F�µ堉�H�RL�lj
>�&r�9��B*�~$j�)al|f�7�j=фl�0r���^H$�l�s��yx�Ez�Z]P@�./Y}���44���վ{w�ޟ<`Y�"�};z�up�@e��d2"""
�NW�Z=�v���6VI�mU�Y��e���>3U�:�r����C�H�5xjk�ta�F�Ǫ��R�"""""���eq�4dF��"�n���833J(����0rvz��ĠU�N��>�lK��x�ЖZDDDDD�U$�����}�FcZ���
���
s;gD����̅�i�HM��=k���4۱�R@����������°��� ��2��e]�� ""����$�W^��Rg[
hQ@�>E^�w'\��˔F}��FtBtE���Q�+V5�r�m�o\�X�6��V@�������d��A(��Չ�S�2�
�o��""
�NB�s������<�}מ�{����&��
h������(��:jF�a`��r�b�����D��F��gDDD]�論5,kX�q�o����?|���_^�x;J:��%�Z-"�{g�����1�aS@���UY�j�Vl�XE�V�b�����F�.U6�5"��1u�%��j�z�(�&�M�O�����'_N>�|�s�9/��~|2�n查���Z`�h-���5���!��h�^������t��ȳ*���
 ���m���g��$�.Z��`վ�
m�}�y̸H�qt[�S����;������&8q4 ���6�;v�c����]t['�M�3���
h�簈��½Ee6	���F�>?���j�c�E�	�<1ƆY��A%�uu�+V}��K�qO4�V@;4���u����QY����g�ˀ�_�6knI�!�oH@+:�k�7^�$zR򲕫}F���:n^�1����<u������;���._>v�Q��C�E�w>]S�KM�2����<��0�Z@w`���F���=N�/6Z��o��S|�RZC�lϋ����'�k�Mؖ�k{n��������m�ׯ߸u���={^UK��7Zn޼%1��i���d��S�G/iȌw��k]jR�L����9@��+�,F@z�	h
wVD�L�μ[�sOq$G�M�Yր�gt�Ep8/�_���!�5�
�i�N�AGFOVCtYE�W��Dq�%*2*>d��y�iW�]�7���k�eb�����ܼ$����k2��ܽ�w9�pk�H+��y��??�KM�h�T$����8�ro�h6z_����O�s��G��_J��T�#��@�j��b�3�%̀���$(|ðώ>��m9�Ϛ�M/�|O���:[�Xv8a������.u=��Y;���e�WUVU������s����җ��t��#=}�/-�U��k�u��\���7Z=Ώh?�z{qF����u�����+Wdi����5F@�	��&u���im
���=Z륆�"�֮�.*��;w��VJL��.R�r�b.����a�]]Ɖi���u��W���H�z{{G�k$�]=|��?�ڴS�S4��r��AU�s��Sgn���͖����7�;w:�_o���,����~R@ ����뵀6���S��,0�@����\޹�Ħ��s����f�Y��3J1Nh��@eq������wKk�EL<Pn{���+W�F�?!���{��"���[P��F�9fRR@p�!�''OSGQq�懪������v���+(tQ.Ǡ��h@@#��"#8�<kn������{�|��]Q�]C��S�ņ����%mTvF@��yͧ���N�X�vfIdWO��	1

���Դ�EK��	��WC­
��^��]�Z�.mh%{�mG��'O��3�������B���9�1�h@@���V�^h-�H�X.�,��>+s�*=c�%*>��קϞ�4M��&��q��Z�;'7_�#'o���X6��M�ͺ��~��
}�G��z�8�A6oݮC6fo�Gp;��ʾ2l�Դ�<��|��p���u �h@@#��{w���q�ߨ�@�qؑEuh�h4��=T[��*,.U���"�
��E�F)Fq��n���= 	�2H��'>m8��0�W��l�3�3��;�|?����h-��Iܐ_��!��gM��Y���1���ڔ���+@����\�+�U�_萟�N���tmrn{��t��A�S���]J+�l��nB��k�t�#��؉�^�����Xo�-���}����	��[X�
���U��[C���
��΢[B���4�����v�ҍ{�ϜU>��Y��#�q�~Օ|�ɧ�׬՟�;w��]
��B#�i9���]
��l܄0O+�S2��u9:r���mm��a���e2�}8&@ @�耮�V�M˲�T�|��b�}֦u��=���������]�=�
w�E�l.��z���?�蝟��mwt=����*���U�7;]�
��"Kr�i�1z��ݓM��ݿ�~�氹6�����1�lKt��(<��1�
 @4@GD��\����v����
��c9K?	��
����.�O̘�\Wߠq�{q���͎[����G��%���W�.�%ݸ�q�j���_��ib�f@_�xI�j_����G��q��ֶ�_.?}���VX3��
�M���5�Bk�����UG�%�5�V�j�?�X�����ڒ�����sm�Ɖ�k�j!�w���թ��ٕ�ť��4=�b�snݦu����x��Ⲉ�X��֎�5����O��4<~�D�`___O��={��`�՘
�M���S36~�iYvG�=��=ټ���0��jNJ�SƀhӃԌEI��Ʋh��y�z�cR�2kw���t(���J/X����Y�z��g44@�t�6��|��Zj��:�I�N�v#��l�d�M�=���êg44@��{��A���&tz������Uk�U�ԗ�[��ָd�8���F�@��=%@�
�|���6'W�3����O��lhhЯ9�c�t&W��� @O�u��FpД��^�w�(1�ԭ�1`����ᱬ�
�=���m4 @�гWp�&@�
�=��!!@�
�4��&@��
{���
�4��&@��
{�v�h@�����6Z�h��h@��?�~�m�tU���k��eU%@�;�M���̼����IM�0�����A7�o@(E
I XɳPj^�Og� ���0d�>.wx�k��|�'�4M۶語/���-U�6lf�n@�ۀ6NpNp\貪?�a��������z���
h�F��'8�EQ�N��c6߹m@�R�v���};@ϋ���/�뎗6��-@4�#@���F�hz����Z�@���mh@���h#@��
��Gz�ѵh���R|~�e�6�>0�ѧXZ�h��;���<��tO���I��DE�E05Q5 �m�ј�q�bl�Pl�5�
.( ��&{�*�"��ožT�C!PU��{ZM�g
}���;����[	?>�G"��D��z��KVv��^���֗=/\�Y�n�{�&S6h�D"�H$�D�4�D"�@*�lkk�h�y�@�?y��֎n��:{�����=O��>\�Ч�K0�~��ϕ�?ST���)N���8E��I�ƌ�WRÊԇ<#&M"�H$�D"�@�&�H$�������h@���|��펓�����	�+67����hi{�٭{.�\����Re�D�	_,Y�r�>���F+V�E�0t�o��{- β��1[���{S�k�����I$�D"�H$��Ə�=�]�4��B]����Ɓ���s���9a`qO�.D���֊�EҲI$��,��?�󗯲��f+�[�z���-,�����;px����;N�A��º�ZI��˾
����=����A��,>�u�ƌ��!!X��-��o�6y����Ik�o޲}�3�Т�:~�֟$�.^��ԇ<&&M"�H$�D"�@�4~|���䷴ˎ���J�����$���!lh�D}�xAk���s����ꁉD�]U���9U�m��j�"�j��w��)�=�WZߌ����k[;��]D�I$�PЍ��`�2t��������h\w޺c��Y�f��n�u����w
��L�y�	�د�����a
�����E˔�M��YQ�Sd�-k��1�����f��:.��+'&%��W�9f,�Ϛ�������2u�&����&~���I���}�	���g;�y�L�D"�H$�D"�~�$�g����CL���8„;�2�Lxv��E��1h���bd��^�e��e��+�l��q%u�r���_�-�3���m��98v*�x-��8;��+vP=��7��׽���ݗ�͹�����ud.~���)�����X�s�D"tK�;h�b�F��ν�stL��5a�4$],]���A�@�TT=t�X[[kn^�ʵ�G(�~��ܼ|Ty��-�V2JI�˯g/Z�b��|�_eu)�WR��_\ZR�_P��ە@�X�SR�jkk�n���i_��<m���b�z�*�1>e�&h5\��{�9�8��e�QP���%˿ݖ�<񋯀�'M��vPP�-\��oK�E��*�ԇ<w&M"�H$�D"�@�S�����c��3y�c��� V��Z��|���H�{z^3բ#��x�o�6�-���� ��,�7�)����t�[P��4JL²@l����Fü�^5��ޡ�5Ȱ��������nɼ5��68',�����ͮ�h�ᕌ/@�t�f(����Yd[�JX���%im�ٙ]b��:��ߣ�������UH��.ɖл��GFҳ�~��\�r�r2���	�Lgv�F�H$ʀ~g
Ь����e�-��IW/�>h��s�/�D�'O�����p0R5�:88t��)p_�i�\T\������;Rq쮽����3��>;'7��{�!�;`FcvNNVvV���Zܠ����`�օ�����]���Ԣ¢��vױR,K�6�`���Z\\���eecw��jbR�>C#Ԇ
�a|<.�Ya�څ	�I'N�V����\}��g�$�D"�H$��+:,����_F���lh�c���~�Y1�<�h�뚼Ry	<>�%R��Y\���˩nTŽ,���dVp�*��$� ,�gZ��#�WTׄn
���Uܝ^ɇ���o�-��=�8�<����2P�ٜ_<��*Q$�h�Z}��7�X�d�O)t�5^F#��a��H,��5��g`1��(���܊��L�]2�W݈5���'���.�gV5�d"��[����K��ƒ�f\z�W�mDaX#b=Pj���4�>J���i��vL�KE�W6R!h�.ad�,ߙ�z��z���4�W�;:+Z�Emp�	�{���6��f���IK�$��h���peӏ?��/A��~؈0����z,(s{[v鲕��K@^8�Y/3��0 ����"������, ))�qoNn���/
��ɩ��pU�� C[o�4\՟9�1$��.--}�		�.X���muնS(D5,**na$
MΜC�Ǐ;v�[�������{�Œ���Bԇ<}&��Jx���l���[��O,~G"hh�:�΃_� �GB"�H$�D"�
�*�ս�j���.nsO�ys��q��kY?*�7��xp�7���깐G5@"���9�����#��h����d�.�Y|����p<$��X<@g���6��s.*�ꞈa��E���zZ�e��Y��Q�	iI>�q������;�.�?�ϭx���T��U$��(�An5�b�y*#�&.�m��q��q-8^�]�;��Q-fA�]p����2
jhmg�001���D̾��{��G���?��`�g����Y��0���17����xR8�l�1�Ƣ��^�l�JAM#�n�?��ׂ돑��Ѱ��n�5��@�5��ap��,8nc�=�I$�Њ�8o	�]����@2vr��e@{��18���{�CB�;CS;"��_�n�00(���,K�����	q޳�J///_���?���D,>kva��i3������gi� Â��10A�X��U$5�-XRQQ	���,X�;bim��>q�YN�n�5 �y��>z�YXZ#�g�hl6�į��5l���Jus��p�<��,����29�Y�&�	����bqaQq̓����	�����޼�||�}2Z�����6���PX����KG"�h�
�f�f�bfС|)�QTt 7$($�q̓��z	�D"�H$��@o��U���&�_�1�ɩ�K#�4���VA3������b��8��u�EG�׀���sz�	�1��8��[qEf9ʿr9?�<)�����r&A�r�Kf\y��5���G��9۝T΅��2	���^7ɞ�'��pIʮ��<������61Rn�g�QζO��?�Ǖԃ�����OZ9�9������c��fz�n�m32h�(�X/`�et��` l��R\Zb��G��-R?5nwI*�EJ5G%�K�*yэ�hw��`[8�<�
�4F0�KC�ɟO i�^|���;ɬ�����s3�G䨜
�����*�G�2�@C�4����q�L˨<܂}�l�Ȏ�Y
38���D�8�0��2DŽ��f������)��D"��74'�;Oל��莓;˚q pc��stmn�A�~h�s�ZXZ%'��D	���
k[;�6�!�v�o�%*:z�7[�?+t�Yd~�X$B�2�Ҙ��X���_��g(����@�Z�\~j��e6���+���<�p<���IS�k��o�s��Ͼ���@�QCDdv�#9y+?�߳O~
��W(����@#���}<�r�HE���}_�r������W$z�����0�1:&����J��E��+�_�0�KB��2w�޾~�n"3Y�3��a#�u�KJK%�&�[k�k���F+�a��$|���Y�����9��gf�o�����{���o#$�D"�H$�����iѭX�w{�̺��S�2�[Pc�3�
�����5D<�r�G'�UP���I���r���Z�hߊ3uJⱎx���&fU6b.�OT ���'g�c@�K~��1"�����-#
�u�
��i����[
�/<��l�0���*Q�b)7�j��d�Yq7X��p=#W'psK=���������F���h�bP`v��2h�Η�~����5���D���a࿩�M�T����a��?E��)������x/`�fw/�L���?��±���X|� ��P�G�	��W5߯w�G�胍}��O�D��f��6QŌ���
S���D"
Ňj͛�w��
k��K����u�-Mm�ݿ�A�;��,�#?z���+V�115KHLD&\���_B�>��XpMMM�Kc=p��)������Qq�sa���H�F�������#�\\����pb�.r6�vNNf�Q���ްe;@6�����y��MH!gC̑�����"'��s����C�s�
�ںd��;��^��Hsy�:�D�}�^7����b�xxfܳY#78�2��\�`���#�	ſ6�GO�D%�(�`��>�3??9��~
nt���QJ��w	�D"�H$��w&�9]�Ϲ�9mo���T��CkVC
E	B�CI�҄���S͉����s�A�H��A&d�2
���}ߪ}�
�r�>�U�}���k����{���_@�Јs��>*u����p^a(����r�3l�[y��D�]g�L<�����I}
?1�GT�a����_���D�e��-�:n?��"@k�!��`S�8�x�	L⊤F��Vо���7������i��/�m���U?���Y�Ёq�Q-6���go�P��a6�#�"�A�h�V�c.Q#������?{�*�����F��w_hI�C�"�!�S���bn2�L���:&��3,2������t�tZ�A����\��ű��|�_�hy��S� ]��/��Lr���x�8:k&jsp
�x*��2d�x�t��n,Z�
?
P�P](Ґc�H�_@�}���+�Ed��_{xz��#"逷�Qf�\x��o_���.���hש[�}�o�����`=~���ˆ����4
�<5��䗕k*��1O/4���k�<��l��a�.=0�������?��
������Z��7�������ݻ�~�߰Y<B��耖V�|RQQ����'b��؈S���6S�Q����ӧ������C�}��*�0k`k�F;�/(()-�E𻴴�v��cuU7�����������ȵ��=/N5��U�Ś�r%p?�K���F8K\�r�+>xPR̈́'&&}գCXj7�&�'�'��U��IOUC����M�k�8q��4����>�D����սw?��KU��E����g=W��f����!C�2dȐ!���9����U?Ys������9t)������o���E����Φ����AU���kO��S��d�I\)2K*a�j��*�޵�ba��cg0z�1�Q0P̈ig�_<�\h��낒�v����B�Y��Q�ͧ>Y~|�u���D;��Yޗ�'�]x<��t�����|�_bCs̠�V�a���_R
�@��:�!Z��"�Fةt�Z�X����2���v�r���.��K��w<��s�wm����^��i4������WD�4��c��|S�T��KSm�ˋtڝb���.gu��Ǵ�>?}"�2dȐ��h�
�s�1��Q���=t��ik7n��uдϿ��lI8w�B>ɇq�ߩUw�|3��D��`��oM��l�.5j��)g���ڴ�FM��;n(�!j��oE\	5�Zӂ�������(�A`?N�+++MNI�7pH��~X�qm��+W����2]���3�^�u�C��?m����o!��/�^��M� ��zZ��}l�������{F����t}�-�v���A>�o`4z�D�%˃C��)Q��M,��-�`���.�<�vރ�R��f�2�$̜e4Og����t�Y|U�tŪKq�=~���d����u�L;x�S��l��
fo޺���5��F47��Q�>�:m�`1F�<���c�^�.�rsoo�jIN{^4�"&
k�1Mo&5��#�¶�ҳ���=Aw��!��Y�};�nL�7HHJ�ԣ���^w����`�#�ǰ���f�<3M�̇:#�L�3`
����3���<l�f�ؕq�.5�ȄI�K?�X��s�O"�>������u�ᜥ�W�4����`�Rf��ׯ�Q��[pj��m��L����<���aN��2dȐ!C�@��I	����sE���<����(�'�s�=��U��FAI9��`|9[�߽?�-ohǘ��>B�ɮ�Sr�$�jMw�K�d��
��.
����h�-2^X9��0���\�U8��E��	9�ؼ{�4��\4�`h�&���r	��d]��5Ш���(��F�Mg�o!��s�e@�QZ�P�辫ha����U1\M ���/�lZ�h5�v��I�`֓���)�م��24�w�p3��D�7�5�Y��y�dȐ!C�j�P:�l���f�l��Q|94=����_S���;8���\�U^��:=z��5�8�\8=��:n6�c�$s��S���CG��PﳲA���299��A��w�p�~��Q�h���ҽ7������{�~���Ǐ�<����̙`����P������ܶcW���h
1)��$��Y�J�h(3,$�C)TΣ�O"s �1(�H��Fk?��iXC|X�粶�}�i5��bu������>�G����	(�i�:
����ِP$ҍ����o��z��_#�znܼ����
p�@e�򆭽��ϰ���~ɲI���q
�"-!�钮����646�]\ݩ��w�Q��6�ބĤ��;�}�N�P��Y�ւ����N-�EBX�q��kԌ����148��J�O7g��-�=R��i:�����9���з�C�C�)Q4��岲r~�4�����S�;5�^��D����=�T�A:�s-����{� 8�N2�w?�Kz�Ĥ+*�O>d+����M��
v���?�1Eu6��s/Waa�R�2dȐ!C��
�N�՚���b�@ջ�˚�?�G���Ŕ�!�<�>�!�Ɗ�Id��7rJ2=$�Cm#p:^w:��oOȃ�g|'Zm���������f^�,$�n�¯��\g�	0���
�D�3�=�p�X@O@/�@���[C��g��=�+m�� �=w��7.�s����e41�>pP���ϊ�C鏎M��?�@/?6�*����[M"U�`��L�Lϋ��7o5�n��
����s�h_��P����8G��]coqhW���Th=���@%�`�?�غ����0���z������]�.O���A����l|��U��K2d�]Ik�-�2:��0�E��V�3������2�#��:�ԂC�c��'`�A��_����D�:�G�_*yx��{��I�ƧH����k��IN�#D�	fM.8戒̬��}`ˋ :��U*6�����ŋ��4�I*��?^4����[�o	�$;++55��[����w��A1��hN�1�0��h(-8��	����� ��V@eN��8z܏�y7U��0f����l��)����ƭ[��
��5k;G���dfg�Y��u��[�s"�v���k[�<��h�lN߾k��?q
9v��̸���c=��,1����<���v0Me��cǩ�ہELæ-�9{�
:�;e:c�=rrq�O���Go�!�d�*sg�C<��*H�'N�Id�[�t(�Qcq~"��>+kVzx�GDFS!-�;wX<��y��3Ē��4T�U�Ƈ���`�`�\'׫׮i�{��Gn�j�J}�['�����u;h��	�p|r(6#i.����_'�c��,���orpv���΢wy��5�%p��m���'�u=x͜��NN��w�`
�0���J2dȐ!C�@�6�P�&��+P�ΰT@����c	Z�Zf���>{B�s��E%���� ��!��x�bF��\�<�c�QZ�\k-��5�B8��O��r��Ȋ��^q\+�u���b�Q
N���4*c�_�%�)�Ҁ��v�4�R@��4tDNk� ��r:,��˴�F2�p>�N2�e'�_�Zՠ���{xt�w��лΩ����Ư7�KB0>�9�
1FS�8�᫚؊6[Ni[�:>�f�2@���#ã�&f����L)6�0ۜ�=����*2
0�Xp����-�Yno� �V���vk�P@�'������c��7��1Q;B���D��-�=x���9eȐ!=�_
��u�m�~���fe�l���!��qt��wQJ��c��+"K ׀!��lz�ge�C���1d��:*�ڴ�m�ND���j�3p
�h���ӡo�f��Gš)��_���5..wg���7lݮ3V�H ��]������������Xv�ص>e�������j�:0U붝֘o���ۂYGDE͝ʔ�
м?c���^#W�M��3�E��Z�(�$���p^v��0���ѧ�&r�
��Ԭ��)��3I;���K󖰶6jR܁:������z��t���[����o%w��=��e�F��ւ��t���Q�^A�9$J44�'�/:t��"�f�FTyC�Qm��b5�7�o
t���guP��N��gξp��z�֘��6��_��*�pu��L,Y9�Z*�����w��(	
;}���xQb�p1����+�)�$.!�:�w�]���׮�Wl:n����5E��R�2dȐ!C�Я��{��G�W�@������{�.��ⳊH�G�`%9]Լ�W�.e^�SZ}Z�; ����"`�ԧ.��k/g��	r����司֣G�	�[L�>j����I5:��2��;�.8��’2�pF�}
{�D9��
�Q�~ә�rՉ�V��\�ӕv�ar�^���/1@JHK�)�*��D1���@�1��$�K5:F;�Jr"SM#�r�GM�Ѧr�h��)�(u7"[=�L�r��:������S����L�&c��I�,C���@�%M���z��@�,67��l/,?|��&�Wg� f������SM�	ER�v�*� B�4No۰G�K
��F���фr�8D��l\���ܳ��W�w?��̀�Q���8v�F��
�u��t�x�4oϸI�q�`9�z��<'@R{Gg�Y��F'^IV�DDFA-�	��g�.��Я�ig���

�ԭ't�d��b:̒&�7�}*��?�v�#���䁬 =��U7m�D��5�Tem�M7���04.l�4�=_?@x�Ϙ�_�[��f��x�+���v0��śjܷ1h;�^s5�n�k��F-*����9��]��s1��{�e�~�!�i����N�6��>��$�:(�YC�u6�;��m���R�2dȐ!C��F��"2D<�!C��]
O����610�?sμW٨�gh���5��>m�JBȏ�uF��e{}~*R�%&%YY�B�����F(��5{��}���Q1/�e%	��IIW�8(s	`}=�@�����t�b�6�:vW��`��+hJl�D^�=��e+W)�d��Ѫ̙9�/�x\��;r:x�H��"O7m��O[�
����~X6�kh�JZ��íĘB8\+��.4#�~��_�@�yG�
�ny)T�Ͽ���&��E.�g`$��Z}�).>Q�2WИl@�I��T�S�c���m�/;p�^@�Z�4�	��Ɔ�ò�c-M�L�I?���!C�2dȐ!���W���"�6o|뺞WI�eȐ!�mЯ�-6pL3�� �W�Io�.���!-22�Tl��?bb�0��y2�����$�a�)O�m;�;TPX4t�XX$�,�.�	
8n�e�J5<X�̒����5R@Sbec�h���pd�xEE�(�;oa���x��r	��Bl��{y��[q�`�	�����{�7�"���}4&��4G��E'O���P+��hm+�"Zv�@�g�Y��k�ݟ��|f���������q�M[Ї�;�`2Be8��6�좄�$��2!�,V�:y*���	��X�<c�'���P'%]��!C�2dȐ!�k��D`J�����dJ.>�?ː!Cz@��T��ۛ�P�g���q��-�<��I](��_@_�O�}�{
�MHL�<�a�6n7
�)��Q%+I���#�0_���Zu�:�niY�	�(�O4]��pI�M�!���5{�|�		%���B@Cl��x]@�����VⰌ<Y�$$h�}��>n�e���-�;�3�x\h��?�׈�SQ�X�!�8u(:�i�(��|;('7WbҌfY@��6O��1��3hv��h����.���4>'W��fdf��O**�.d~�'OUʐ!C�2dȐ����vr��c2dȐ
h�=GQ!PPH6��r��z�Xc��	��0��G@0t���@�EDV@���Lj>�3(�om˲�+TҼ�Ʀ@�$�ܹ�|L%`�?@���aw��-^:��3�v.�f�,�����i쌹�))WNM�a*��F^G|8t;s�qЙ�9\E@����;q�T�n�a���M��nֲ
�THKK�)�>�{�83�_{��A��Q�1��Z��;/u�edf
�߱kO�ާ� '�D�Y��hf��5>1鐇Rh��U�e+�j�l�`13���ͼ1|_k�!��;GgH��}�*�V�vc�NnƬ윴7H&I#�ypHh�2dȐ!C�	�eȐ!C�	���
h	��6����h������_b	�DZH5y�ڎ:
�tv�5�]`1�Nw"�V��ڳ���p���b�_Gޝ��X��gV6��P�b0L	�+���4�*z��w?��o���v�L��Næ�F��y��#P)����m:|�+�f��fK�}�C�n�2����\��s#��k�A��Z~Y��gM��s��}����^�t��3����z1!pXP;cFn���t�"���&Ȩ5;�ОtR����n��o�7{��R��q|E?�1f���_‹i1I��1"˖b4���
a�+I�m�Q��"IqK�׾��Q�*��5�c据��y��S��%6���/���x�x���C�ˀ��LU�U�h������O���Man������i��Ñ0?:,����LN<,܁�͗Җ���L��w]����#�ެGʌo~Т_~�|�KKVpeƒ�r�[nh����T���r�W�N$�$I��%I2�6��@�7<����J�L
�te.Ϝ�.�>cZM�I���k�{j�C&Km���F�xE�x8��0VJ��X	�?��ĬK3rO����� �fqjT\���i�Y�~<�x�=x���7o��^6w�^�"{�
�C<�0� F�bZN~C��4�����P.^[FNM�j��ֶ�7vT�J�?H�'ZZ�6lz��X��{�x{vTV�kWV��r�7�3��M]����Zb�Q>E����ʁT���=s�BvA�s��r{��H<~��a��b.Q��ap�斖�`2���߿���9A*�lز�=��
�_p�|�׮=5�W�֤g�3�:Z[�Dөue��V�g��D⃏j����ݪ�}?��s8H��
�W�ss�ůs�c��u I�$hI��
�m�U����rG'!xB`FMl����&���d�� bP���61�Ӥ{��z32sL���GF�IG���PS�a�2g�������g:�Թ��[=ߴwPW�ZҼ�f�/��&��U���,n��X]���4�����>~�R������}��*I�$hhI����z^��%I�$@K�dmm3��+�
H�a*]0�6�$I�d-I��,4��k�+}��f�,�����D���8�@�$I��$I�)hg@��%I�$@@K����3�mВ$I��
�%I�s@3�3�mВ$I�����
@K������=h���$I��� ������_nܾy���f��l��z�{��G����Z�$I�t�x��%�_���b�h_JdP��(s���/h�=���&ҋ�|}��hh���V����	�4�_�>N|z�%@�
���&@��
h�h@�����	�4 @�f4 @�-@�
��i7�h���}	�&@4Pp�c�%@[��������^v�`�(���!
�`
M�5�5ƂP�Q(21e�<��4f�sx�{k�Is-X9yG��߲:��u:_���0�G4���;0�z8�0���--.���-�jf�O�r��6@�C�eY<����Z�`���,�h�7�k��S���Fkb�,�*���V;�<�x�����K8텓�Y�w�Y/c�J�g.���C8�7K��}8~�J��m4 @�	�4 @��
��v/���,}05���7��n@�
�@��h4�	�����씽��
� @��x��(�7��;���t�)�ݕ=��
� @'{z�v����{���c�ՠM��f�\c�:�8�&J��J�6��i[�-Ӥ��i��j�u�>���I�T���[��iC��B����hHRXH�%,c�ln�1sY�Bpp�1��16�66���A�@��-��O��}�{�󾯣$���1!�B!��B���Zp�s�N�څ�g��
�۬�v��se	+޽2o+ј��B!��Lt��	!��� KM@#�<Zp�O���{�~ϣ�J_:S;2vG�f�٭�ųz�G|��nJ�pQ@B!�B����}tu��;�n3����h���0�$+���?���+6�j�<#�~aݡ<�p��GuHWh�?���z���5�yͷ�N��(�	!�B!�L@�
���j�4y/��0���c�3l�9�ڍ(�^:Z��T��
h��v��a�|�p��꿟|���M���r��vٮ�u���ٍ_r�V;�ˍnU"�_dsd({ĻsSIS�Ol���yb��sQ�3>�P6��G|A����&�B!�,G=<l��X�!B!d9 x}�v#���B�}���7��k��]�_5�d�jh��>��R>ٜQ-���O?h��wD�z7�ȁ�W���`)c�0ȟM"#�ٲ�ȃ�!P����	��}��6�rSz�����vy�aU�zݡ��ʶ�����H���)�,ʪ�3^�F��c~�T�OM!�BY���BM!d	hT@/�Rt���`�CX{�8�bK�ճ�?Ug��in�v��mx����c�[Lbʖ���}"U��iR��w��ݞ�S����"���{4�'�EY��&Q�v����q��is�Ɓ]%�_ݫ����`&{4�!��Xw�DZ����)~���l�]mr�;��=��&��:\����؜ͧk��*��8<����W�*���(�	Yh�w&\�Q��`,Xx�c�!B!���B���\�Dj9�>�څG������ʬ�����_ҿ�݈���wes�������7�W��Q�+Yה��}�ƈJޘ=u��s`xu�zF4�"��U�yI�����(X��S��:�����qj��0�I@{h�����+���?zg�xCՌ͌��];�V`���
h��/��o�<;�2�����`ub��M�P����Q@����{�v_���X�0:�O��B44!�
�/�KQ�|T��Q>���o�mL���3�{��_ά����y�z�-�~��ߞ��Tz�Gг�����SE댵IE�?�W�"�)m��M'[[Ċ�E�s�̨�N*3�o���(n
��Iф�c�`�c��%#V�gl���~��Eͼ���e	�@�F�`��q�E��;�{�:��Y9?��ab�]O/��6�^nwH������Z�y��U��Tr\.�a����>�E��ȥ.ؓ%�b�sG�r�d��I�LM�‚�cmn�g���X�0�.�h�B����&�B�h=��'{@�����>�����̉��搈�Dh�g��|������4Ћ�?*��V��4*�b�����}�H�Q]���N*J�1�{|�δ������i���u)��h1q�ڈlhЁ�ȖPx�u]NHXQ4���T]g�ۿ���vC�9ק\y��*;2�w����H�Ŵ1�^���7����}�
�%�p$�8�<CwH{K�bI��z�|�.�3i���߆��.Ta������A�70C@#&��Ѝ���$�1[�Ē�]^O�h���Ѥ"�:�أ�[�����b���"��7�!v��nrn4%�s��b���µGuOTL-�z,��oEXf��̖�i��9�>���V�6�F�^�4!�Q�ܵ�=)c���	B!�ЄB(�Z@#O=��
�d��S�ο.Cz���ƴ�)��h�������
5���O��o0:���U�����k�N�и5�&h������}�d��/koݙ�[����2޿^x�b�4S��_�T�`	</�+h��}�/:��B�ƅ-�S�=._d�kV��#bMH"���}?D���!���������%�U��]`�+��	��.�*����5���-���V9�,ƺpǗ3�gvO�j�ۿ�
l�$�-n|.0��ϟ�I�|�t�yhڵ�nɇ�eF����E"0:��]+ޓ2)L�ЄB(�)�	�?{g\Wr�{C��	�!*!�B1@ �W�W@�� �-�%y_�y��}�vɲ=�-[��]�^�_IW�v�K־��{ۜ��d=y�C��KuN�>ݿ�M��G��2$��,4���2@�u�_sJd�Y����eo����?*hSz��V�����.��n���m�ۏ
��T:�ڨu������?���G
(@̺�nN��[�E�vja��v�
G6��%M�����o�'3'�`��r�kF�H>F��>�r��~�P�������p�d�=�t�{y���������En�%7|�5�`D�Ĝ��fO��^!��i��x������7h�#p��x�n(y"|��
�o�5
M�}H�����_F�ۆ���E��?�_T�iH5�y���+�����;
̍[h�w���|hn#����;�A�yn��yw�Y.�R��0��I�.����Dz�X}���ϺxW�gڟ	^��E����o;KF/�2dȐZh2dȐ!�'x������OJ�}.j��x�}�3�ypZ������3��V:�k���F1
E����gb�{l�ېb(��ЖFm���u<���T��	n�x%�� fa5
PQ�9�ze7�s�X/tܘ������Ÿ?4K���y4��J3l�;���s��S��O�.-�L�/��z��v�pY�����=)�m��=�py�� �}[��f���ٛk�ؤ���9��C�<9������ƃa�_u��i�V�1���G�-6��p�.��}zrچH��9,��6S����y�%��HUU�;
���g�'���'������{��^�o�,z��X�3)쬹[�6��	�tye%���ay������M��Z���2ך������Օ7�$���~Y\������C]����
=�ۆ�v/}��3��X�X�/�
�t�,n.� ������5Z���I:F{'�]���ܮ�eZ�q��g|�wʐ��2dȐ!Ch	�eȐ!C�П���y@�R����<b�����}�� 0K�HM/�w#��#���f�t��

ET��1j\q���
�u�Q<�k��d�����6,�%����
��.���~�)������a�bv��U�����@�,�]��7�H},J����|\m�=�6bc1��� :/�mdM/KGV��Y�4��9�x�����2�#���a�@�#���_�F������:~D���2�v�'�~�^u5�@�w�����
�:m#>�2�)��u1�B��A�6{�6�V0���y����^��X�'-8�%�J<�X�ߺ���(�����{�/�eߟ��~#�?�SƇo1�[�1.9��O&Fg'ݳ��w�Y�}��z��&�O��WR������d�{IW����c+M}������1AT��k*�j.�i]�����\-���6�~>��l�8��3�yeO"b�����V�Z�6T��5�N��{'3
��<MFAy}��x.���ꇒ��yTZ�g�(�75��y����%��\��<6161�D���K-C�2$��Z�2dH��B��4���y�VX*���*�a�v���08E'"Y1���賶��2!�����A���]��L��?	-���:G��[d9�؜A�56l@3F�>�. ��O�r���a��i�\��2R�t�D�l���bnqypj����@
�fw�6,m\W����P��v��>C�,�Yp�8i� oua$��3K��
�"�
�U�8����
�{Ǵ������2��� �
�lGМ�(4��tK��m�`n�n�&�O�ӷ�4<��T1Z��ܻw���ʽ��hǪ���K;��.�&E�N�Oà;�h�����Һ��o1�K����z�'������ϩ�f�&e�/xv99=��o�2�0��{/�:��Y�]�14��{|5�T���ems�i��Ix���g-�lD��������������^\������=&8��A����ɑÇMMM㒳f�n��?o������uaU�����1�c�;����mJNi��"���uǃ�7�{���&�v�=�橃��ɞ���~��st����ҕk���s��G�'���Ph2dȐ!��2dȐ!C���z{
�et`~�
�zt;��٧�q2��²�gxev����_�����,���>��S
�e�m����F�2s�fƧ�rk�R��R,;B��k꯹$�s�m�����nd����� 6=W���^�w0�h܄�B�i�
N����U|�9S���M/�.�W3k~�^�	�_uN���*j�kz#zg������Y�k��aL�4��͜��ʆC�7h쭱�`�wN3�(;����2A�88���+��b#R����`��=�LH1D�u����H�8�B�TX�|�)������������,},����Ɓ/|d�I8~��m����X�����;����v��o�vzavpztay	�liw|V��*�Ե�����=��@�pza��ɀN��#=��iW��sK� om_������ɡ��*l.�|�奕%�����X��<4=61?Ŝ䌯�*��--�j�'�ܞj5��Œ�a₭�O
�.γnEoc�؀x��um�}
�έR���e��?�Iu}�aE`����K�<Ա�����x~i�a��=�f$)��|��ҿ�L�������r�0��C����FV>;Q�U}��@��%��u�6i��̏yja�_��O�7���@�_�������=�8[�]����ɇ-�@�knn~�С#G?~����C�<W�^�4ߠ��iy�ź����<���u'W��֝�iO�%���8��҉p���[�=��̯t
��
�\���_���^x�NO��"���֓'NB��թU-��}SL���'
���>�_~ECY]���GfqUEcg\R����\���F��p����B��ɓ'��mjۇ��<"��ց���ƞq�*��ǃ��S:)��؃��ҏ��)3l�
%�)
���:�`ny��+�LL�c�B�-�2dȐZh2dȐ!�v�@+l��1�Vh����QY�|3/�0m�֕t�+��
N/�~@����@��O�5V�o�5Fe1d#���m�6�}u�0�0yZ�Q{�㫙G���~�)+d��%
�ӉitU(�'��?P���?����t#Mh����&G��I���;�#I �f`n�.�|�2\,.�k�;�7�ӏ�sK6�o��F��M�
�m��F@�| ���b(ť�?(\2��ӱ�_�Su��pM�vY�L������m�Ŀ
�F�L{�I�Ps�{V&6���:����>�\#|�u�m�����G���M�0�8�~m^0�w@��p��"�J��u�l��E�?���#t)@[���	7�"�ӌ�_^|T�pA�}<������|����sA��[n�<sYk�J�tb@Js�Ǻ2�3ex7��'b�xĊWR�*{�L@|9%Ȱt��xw0(�Ul�rr��\&!�qnwJ"��z�<�Ϫ�G94��˱���b���ةx����)�f�N��\І�wT�$��V�K��ZYi|nGr[��.Nƻ1�l���Ɨ���R��!�<b�j+z�-$6�[��l�l�v��S�-4���R&aSpޡ�Q���T�^��.��O5,5>���E��9�Ɋ�))��/�olк��KI�Y���Y�q9�T\0贖�#����)~q-���N�N�{�3|�u����j�B�b��r�d޵T�M�}�bE�3=�~�������鋸S�O�{�W�Y�&��,���¸Lp�$"��U;Gg�Z�0<t'����⚶Bm�a�,� Zz ����\ :.o袓G,T�Н_Q�_�P�>(�+ �au#0en�z'K���:�[��1���a�];o�v��T�<�TM�H ��^���7}����	��x@+�U) �����ɓz
@7t�.2��w���s�/�a�\��C�8���2=rӒו�T�ݠ8��ԇ:@�i8A��ٝ���P�B�-��ԓWh�QF���w��#���&�R\�B͋���[�Z]�1D'�\�>���~8�,�**������0��9�SIl�Y₥[�-f�Z�2dH-�2dȐ�S��H\���AG��h�e�Łڗs��u����@�>?+�(<�4���>�����dqy����q�HZ����1Z\0j{/jjQ1C�S�_r�q��i
�nL9 ��T�f4��z���@x9x���禡�!EmB@Mp8!
h�_!� W7���l"101x]@ޠ�6$�C���uF
sg<#��kq� KÝGf����k�n�Zh	F�4bk)M��1	~�>��1Íʞ�/�����6�~�Gf�a�n��	9摂�����%z��������s+�k��7h<�����mN��V���	�x�(��3�߰W�Ut��(�~X4�����M�N���y^u�Y�&�>�32�6}�5׬{)M�1u�OԵ�/��b��U��1	(�1�Q�6j�)yP�z�-MC��bR��8�R#||Q�
�S��Z^��[$�TyC�M����IxX�rA��Bf��&�3��7�ɏ��QL���{�<���334�H��Vh���ǒc�,�(7̓��\���j\�u�p��!��|����jhoaG5��W'c�
N��?R=��A��&�xT�����ޔ.��{*Ν��6hD�`q��W%Ry�)ѓJ�ФA�ȍ:<�Tq�s�Q%^��ƙ�"�ʥ�@�2�m�|z���B_�E
���j-7�C/��h�H����R�Ǹx�=��5���/�D�����2�
yXi��u�N�+�7*��M"���8s'�[8i��Zj^�����4��o�{��(�B�FF��v���>'�8��:tp�>�C�ߡ�|�ĉ���y�OŞ��_wrAoˣ(U��ӧ���c�gT6�w���8Z�N�\�՞<u*Z��m����ȇO#>��]�p�0����E�e�g��6	h���F��`���܇̂e7�4Ȋo���1��u�\M�*ڷoﭻ������{>}����QS���z����k���~��H�/^�4�o>u�����!���D��N{��~Ox����L�8����,&1�~�ǖ���ݨU����
��}�����;����Z��ڕ�w
Y�&=���ɞ���=��>+؝SrJLM������~	�eȐ!C��@ː!C�	�?M��z{?�J^�A_MP�#bB6��}+�
{5f,���>�1��9�os�Қ1�8[�ɘ*tİ��OJ`���V�.�?��[�7��51�x:�Z��8U�rjn���~��.D1�%�A�Y�(E8;�=2
{eN_\U�W�Ԉ�yD2��M/�Uf��ۧ4�ffڿ�-ЏN+��=�~�71�%G�P@oA#%�W��P(0~ͬŀ?��v+�B+:1��8�+��HUw�f�ū�,����QC�m�Tq^"�%L����Ne���+����z�gLQb*�����(���f��cr*��
����$�&hXP`��M(�G^
_���L�"�#�h@<��~�Oa���\Z
��[�)�cܨQ�+���R2��"��r��q����
nj; N����`d�i0ect��у��!X�)?_�;7�@��!�����C���8�-%��a�
�F�!���"��^��dy	���-C]�)	��rek�]�"�N]M	b�4��y&���_Pݸ�"4U��
"�6�g�CrF��5��Py�GH��։�[h������3�bɒ�Z�F��u����u͌	K
����zpV!�FF/vG�.t�h/�u�V��C��`����'NlШe�}�H>x�BȐ��M�4(6�Pknf?MH�A@man��k�C��ffǐ�S��]�n�0��}���+x�q4���v�,".	V�M/���F�%�P-,,Ξ;?e�7!Ƚ�ki�0Y8lzA%>Q�4��6.X`�x�037�d��=�k�š��	)0q�����
̲+���9�]w��;v�xC�(�~�� c$��)�d{���ܲ:@<�� LC�;�\�t��Q'����{��ʇB!ɾ�7�鳨�����Bfs�fÄ�I���Ճ������O�>�g�T�R@7/��8[Z۰q���gQ������\��9�Z�2dH-�2dȐ���Za��8�#�S�����Jg��π��g	��7@0�����rO����)7��/�T��	<�'����x�;�K`^�-���[�͙w�I�c.q*�
I�?���m�'�?���;yȓ1�P��h�u�d�X��wpϠh�S����^i�9�﷜����I��/ثH	I��\��D��T̿e)�ȬE) �p��OJ��N�ec�b�a�L���oS�hP�7ܒIII;����y���-�R1
���)|5e-^����66lsg
/�W~�s�S���Z9^2'E�+n3[K����(���rn���̋�1�Z��T<��{�1����q/Z`���h�i�yOa�W���P���2���sӛ�Y"��9� 
V:_�R�Ȃ�B3���\XDh����k�-0K ��@I���hxَ��#�!�T8��G������)��
Au-5�$�_�����l����O4�9���yYy�~�fM,������3?2j�ԛ@��uW�k��aāE�X���f��6�s8��~j��O�]O��Q	%�
4��j+;��q19 �8}:�pʸk�#���R��U�E���X~�;�4�h�Vv���/HF�4��h0���'�#�w�/�={=/�
8f~VgX��P�:������#GP
/�!�EA��g?M�+�i�t���t�gFA%4�q
h�#��ۜ��ƙ��8#�99���QKk[l�!�$���d�����p[��f�4�;���ر��7|�'.�i�����XHX�`bc{�3�/��
�6Tؘ�ͻ�Ct�+����X���)����XQT6@�]�<Y�i	��/�(���lj��2���֐]_�b�Q56�D���~�l����n�%*�z����T�E
�X�)��crM&l_h2dȐ!��2dȐ!C�O@+�o̠�ڠ�@[l���l�}��ˀM��A�:7�s�����y�b�H�x��O{�i�#.ċg����r7��Y�ڧ�UR��)M�(�ܶb#4e�m'����^�l��Pszv�͝3h�B�:^����k[ކ�h4��6���P@'7B?��7�d�C-�hh�S�Lh�UX��m��&��G�Cnj�_p��|*`����a�X#Ć���e�����8N'x�C�D�4Î�j�! ��b���H{�����@d�;���Ϯ�o+cH�\씬p#yR�b#m�؋2���-!�;g~H��6P�I��ƍZh��O�c�
jg$�6gNeN�$��*�-4
q߼�����1d��)�^�#�:�-엍��DP�W�t��w�C�xKF	��œ�Z`(=o
�q����x麣K��xCڙ3�@c�q�~h����B?9�����$��8����<�k����?�����1��=z����9#�ű�����f����P���q�����OΆƲ�6��e�)`����$���
4G/L�J�8���+�Ϝ�}�MM8��33sUj� k�;:���M�o�;�Q�6i�>��<�"�]ܽ�o�>��s�!i3mY]�@�'A������5f�5i9�"a�K�N�<�)��s[��m�=I=}�,j��M�cz�[���'�8�SR�r@ː!C�	�%��!C�@z_vJ"ߔA[�h�w�U�_��Sb����酿Q|�ߑ&�[��-*c�~���]G�?�d��MN��:��Tܢl@G�$s�uЌ1t�H���<��C������5D�P�xkni?e����r͋h����Z�#1y%հ2^�ߊ�Kb\#�qؐ����4>J�=������k�('6ꕧH�+4�������(��f`� ��u�c��<1�&���������v������G��8o���-�͂���d���n;�"
����V	
k��3�i�r�"���h!&������4$��Ñ���}�Cxk@�_�WWW��sS+N���d�L�M���a��K}�#+Q����Il+�83���q�s�!"h�00������0����F��V `� �&��մ�2tx��.�	�Ȅ�S���s4<��ģ�h2Lcd�����y�I�YT��ç�/X���a9�m��\�ð��7���9���`7ca-<�[��8�%rN��1�u	�����Ј�މ5Ƈ�}�W���7�׮��}ȉ�H�!�ͽ����wo���IYE�P�1j4� @v�}n"�&j.�L��E�ljjJ����4�8��8��M�״?
������
?"%1� �����J���d�<����5|frf��c�c�9�{�GcԨ�=*E�`���P+��t��4EA�RD�bA���tD1����>�+�����5��_{�o1x�7�'C�@K-C�2$��sZp��$<�@��×rbn�.{����_t��E`�1��3��}gǵҖx	�t��o��R��
I��
��6ȖA��Sӽq�vE�_ާ*l���W�]1z�@�*�{#$̘�$��S\�U"�{�_г��%z~x;T<|�-�qu`1y�7
bfR̈���~��]�?�ȕx�c����"i�'R•
�jh��f�"�a�96;�[8�R6P�%3$$K��)��4�uAi���@�Ҡ����h�Ea�@�5�r΋5!4���^�N�)x��h���"���xX������.�[ 5������FZ�qv�{b������
I�!�x��[�s�q~�^@�mh�3l�s.�=���G0�����_�b�x(T��{A�A��.�-\�Sc��� P��ve.��0hUc�TO߀Š*�Gi>��F_��Q�v��u�^���V��v��B��f��L��ȱ���a
W�x��7^�BD+JV�5���Sc�䈸+�^E���_f6���R��D0�c�^�'N�s�t��n�0"QY�c;hk�?�����Vvv{hkk�;:�z�	�͞5�v�����h�1�((7�l��y�63^��q�ĭ�*�,,-���˙�⒳�R�6���35�WL�ϧ栤�7_?Hh2dȐ!��	X��n(+��_*=b�*2dȐ!-8�c!�8��ay�����
I�kYZn���vQ�S�W	�d�h�������)n�N>�EJ{�t�����b}�=��8�}5�KƦн���7Ç�Oq��_0�Rt�C����Q�ƃe3�LO���s|L��SƇC�WX�Ya�x+{_>%-/��E����p��ప��߭�V\��U'���K��#jN8d��$	lw@�;���D�TS�:8=���A�!�x��(���o�6ȎE���|�^�E��hl�+���L��o%2X-{�‚1�p�.�1�l:��CT�N4=�pGQ��L`����@`��n�+u�8��Y���c��	�EC̚qa"2�a�w2/��8���R!�g���	N�
4c�|
����E���0E�9ICG(�S%J����xȐa9�h����7��Xe����d�����B*���{�&M����Ȣ�b7m5�r�`�6n�bjr6A]V��j�55�,7\�x�R|*�|@#�JK
(*tXy���S��t���88�����ز�<5�.���gϙ���d��s����ݎ�@ϙ3w�R�]��Z�6B]T���'������s��5�(�����g�A��`V�r�\�CD�>�L����\���n��d�Ѻ�k֮^��bz���������v��7_����������y��ej�K�˖ZZ;����
�od��S�ID+�A�\���;f�!/Ύ���X�|��d���W$��ɀ���ƭf|�@eB��q�h!� ��ݭ������4��#B����U�Yh2dȐ!���hD��+)(,�/((.��v!����g_��8E�)^o�ܼ���~�o@`pHݝ`���~�3��մ�:α����)�}����J�2$��c
}.--U�u�	����sL�0J���U�w
@�B�O=��p��IcG��R?0>'����q!7��+:h�q�p�?h�9��_#�E��'�M
EB�wDFQ�ЌY|�T��[�UwF�lM���	6�ؿ.���}�>�HZ=p>p�8��[d� W����)ãVË�6f�
�U�Ѱ��xO#��t�-�������.D7�`��q)Py��	�ˁ\�+�h�cI�\�Y�:��vl�y`�Lc�3�	
�&ch@6��D��5�gl:�/`9Bɾ+���V |�n�$'��G��&EB�}�8�W�.q�O���L��:/A�Q(#��L��d��PV�W1E�q�:��κq�J���F`��P��\Px.��+*r�z��*B�ų�s��1�a���~�X�wߤp��|����4� JA����Z;�B�V7m3��'\s�5��-�b$��Vz>u��=�L<�bܐi\�(mWSy=��	Ws��R܏:xQ����p4����t�ǃ��ϼ�����݃��i!�	 ft�V�{�b���qI7@����&[�OijT XIP�	6om5��p5WX����,*c��(���y�(�V���ݶ��?W�LjV�K�X�h�&�ϧdA��;3)�k�!�;u�3�<_��5��sx1c��~�j'�֬d��}.pa/� �P0��k�7;=���&^+dId�h��"%��DZ
��iD�ͽ�mB�I���
_'pL��כl�n�}փt=��u���&�(�r�YK-C�2$�~��JR��k
ֱ[�v�{����,?���
s͔�Դ�t���WTh��G�&
����?�z+<�a�f������V��׮%���2��zܸ��>ru��ȼ~c�v�����j۩{��M��T�5!C�@��f��������E�B��U�7
��~�<(������Nr�x2��
��2X�o�ɫ�
).�Z����Ǖ����H�}€BЈy��%�E1��t���Ʋ�2n��υ��x??�E�w
� �B�]S�9s�����kڅH�+EqyIIEYMc:�ǯ�
W��5Q��/��c�B��GtV�����IP|�ZaX̥�wd��yTsAKSi�P=�.��jcsq1#�/��|�8Lg��! y�X-�Tgڴ�������RҐq�COt�xq�[���0w@6>�(���]z�D��\�����	����xC��5��6Ү�#�8���]Zu� bd#��j#G��<�<�nȹOK�+������j��FN�l����aF {���i��`���ȇD�#����3WW/4�����2dȐ!C���}�}���4kݱE�N���7kݡe�έ�wA[PZz��F;��ٽ���<�=���͜��h���[E�5�
6*<"�Vv��_��|��׻�m��a�G��4U�jZzU������-۵hיl7nѮi�'	�,w�Tɐ!C��o��}���I]K������1�Xl�i���705�v��N�e�\`ý��6
E��ש�7�(Bx�܅EK���Euk��VWW���/|��c2l�:f���L--�}�\���������p]<g̘�9u*�dX��e�����u�d�8�W�OBj��E��U9�A��ə�$��ҍ�
Ĭ�(�
��…���5w�퍾�yS�a	�eȐ!C��o@�Ɲ��˦�ڷh��{��70(d��.=��?i�j�N�W�����
� �
>U���,((,��?�'x}�VQmm<+;�u�.�_#c���o���%�4kݺC�ɚ:���FE�[����&-ۓ����dȐ!C�:Ќ��вI]�q*=�ztK��1t^yrZH��:�-�6�s��'e�d�\d�����;1Xh�:,F�{����P_�RC�(e	���P(����z^�h�����92t�+8���8h�:��X���t�rK�sS_��cH��Sl�=2
����2dȐ!C��=z�p�A��mZw�j�b�C�ܞ��Q�n��hҲ�7�NI�ʓ�\8鎝V�����/pq�Xl���b���8�����Qߙs灳��+V�uvuKU�)���L���$x>ΛMͼ�}*<@��d9�]�s0�ȡ�ᫌ��[��q��ow�`��9`�ˉI�3d���.���b��G'H�x�������Z�s��r>�^��_��E�[Z�������5�9�s�Cv�u��t +;GIE��;,��z���@��d��c��wX�zII��q���V,\�x	��hE����q��C����/P�[Z�t�޻��_����mę�d�����+}����r�E��6�	
..��y1��-�.^�'$y��դ��݃
�b�k�י��΁��6o�>_��#>�Ӭl���[����Е�2���i!���u��Nq��w�AW7v&�,+9��6g��ή�}���[�
������!;���*2dH���@�&t]��K��dȨ���߸��ƛ��0��M�A��V�d�Z��H�D_,V�n�gr�F^?	�ן�~��e2dȐ!�З�t��sp񷃇�7�3�.X��U����p<��mTT�p���נ�6oج
������ҁ��I��m:R;v���z�Nő�A��`ia���W���~\�hY����!c@ѡKOw��T��3Q�]AC{Fyy9�\MOg��Z�u�������Ǎ[�X!#��حe�.��ӡ�t����1
����h:�h���&%���1����H������G�2��V����td�S��D�$'�S��>i��F�YS@̩�ȧP�&��F��ԙ�ZI[��MZ��oޡ�s^��"V'_}3 :&Vy^VV���Fn
W�!	����g����!f&Ū�y�$@����Ѡi+6��;t�y����*�?iڨE�\s��4"�f���"�l�~�l����(�{|�O���Ĺsy�)���\�drĜ$�5b�\QM�p~Xi$	ԫ��h�,�t��F��R��d�ʿ}��},n�2dȐZh�$�~Y-C�{w�W
�!���Vk
��������*2dȐ!C�:�����%���?
?���/p��bj�mLl<pj�j:�t�J��s�w�����s�(a��1z�+�	�5��_���w)����}J���B�PQ�������N��?�٧/�sب_4�����s�)}<��y%-=�aqIF��ZL�<}`�ښu���bp��~7�ƍ�t0X���
��g͝�By��S;t������O�v��Й�^�t��g�.����sk[{f��p������3��۸�t�#X�{��F:@4�&cp��y'��ٮsO�C�|O���zhN�,&o��7ݱ�d`pnn�3}V�c�>}���j5ӿ6R|[0n�&e.��r-�z�6�F�<~��tnYy���4'�:b4���v]z
ǕϾ��q��Â�����N��_f��u�[�e����qR�
�2l$��`��G�%	>ǎ;p!�<Ap��^<t?	?�<�J�@��"���"��=0�Mh2���gy���fQy�{�Le�Ŗs�\�g2dȐ!��G|�=Н�㕡�)�V�tН���EH�	��\������e��1�ࡍ�n�5W�� e(�M[��h�QѮ56Q��lӱ;T{����ʇ�r�/ﰴ��1�xf�++��.����3�����-���H� �x���Rcq4O2o��حkX���!L-vZ�
�G��
�l�n��3c�1`��[�mrr
o	
���ѣJ�8�m�D������ag@����H��'$z�����'��7j���n7�yyy�f�y��i�X�ͻr����
��G�:�"�Ւj�?Re��o� ��`b�ܺ�SO/�
���#_2|$pQ���dkX?�fj� /��o�e���TV>R9���<�cm��J�@�=h	�e�Z��w)?��M�ZkD�2dȐ!��X��m!�x���B�/��A{��Џ�O�l[W�5V��+)�J�;|�AE���t����h���7�|B���4�8!���,��᭦�ܦe��!�<�m�nQ�1��b��ׯ߸y3k�d�MZ
6J�;g���A��������#�]��LܾK���J���v�P�Tn��f��[�@���;��u&�j��ˉZ:���ȋ0nh5y�O�1�����4I�&^I�VX��X�O���R�8r{2 �k�����g.��_&4uf"y��_�jn�>$�T��2i�6��ǑO~y��
�E��qE%�jOg�V�f;v�}m~��dȐ!��S@K���3���=:T5M��n���J�"�C"��"�6�mw�,�.S3ZGɲ�l��m��j˺�M!�q�5䐄��X�y����� k�5���<���y���<o��y�>�B!�B	�'!������]��� )9�:_:D؍��SU��[����)�����{�QQk	h�f�hDj`p��\1J�.]x�����Řt�3�Azێhƥ
x��?ɾ\P8e�t߀Έ]y��)��̓��Kwh4qMo��}2%�a4K3p!��
j��,�0��0���p�f9��+����I���n���3��-�%,���g��v�[@��\M@�p��–��q��9s��[��|���3߳ch�.����r>�i�%�6r4��!=�����3�O{�@J��ߠ���I��ͷ4��'M����=t�@����+��gQX�[�t��O;���}u>��3~��ڣl�vԙ--�B!���6����E���l���JB0L>2���r�Z�&�S�Б���;T@{�;�`M^sQq��{�^#�)
6w�22�j�tn��<�ޫ���fy9Z��]C{��0���t��{5������Q��)v���hʖ7mن��?��<�a�Ζ�m��� �k��
,�9p؈?Y���ۤ�z�0����H����~�.�O'�1wrs��)�W�s���W�D[�v]RZ�A��f&�΄��0y�_g��F-s5ML6bs���kn^��ic���3x.��7o�	!$��zt��#Z�|�s���}��U�'�M�+%�|�!-�B!�����QK�p��]w펱9PTTܹ[h�_4G��ϝ�'�4y�I�T^�\�k&�O���q��g �xמ��*�KKK9�1J��ٳ��뉉�l'FLEU���[ �-�W������Lc9���@
���D
�aM�8v�h�1.�
z8ͫz��n��˾p��p�8��/s�#��`N;���JG���	�ڃa������{��ҟ��S�\QQAf7�!�
h"�&O���gϞ;�w��nL�M!��3�C{���������VS{T��(_�%%%�B!�B	hê��)��Q�m�a�fJv��E_�>�{��yĨ��f	hs`݊Uk�w�����hl,V4r��
�j�e'L�3�8��!��"s�!O�5g~yE��+%Hsf�E�2:c���D��j3Z�{W�]y9ż(Q�#�>]d��w�����-8�2缋���E�Rs��M~>�+��SR]ܼ�Դ�_��(ܾ��Lfb��v���-�r��gD����NΜ3�-�ϓ�ׯ�شe+���#gݹ�=�W�\�F+ƩU@Á�C�ɳfOƌ�N�B�����8~y�iܽ���U�'�}� 	h!�B!��EyyŇ&crѻ�JܥG��C1�V`ϟO�&��z�``��;�YѵX�6ީii�[쾸�-[m�z��8�p��]�V@�b%��8��o��u��=�[6�C��{�P��ۏU��C��
��3�[����߰�0U6��-5mjҜ�����U���O���Ij&P�Pc������a#8�G�&Y�鱟�C��o��;\�E�M~m"�Y���G�Y��k6�I
�Ҳ���.��m��x�C�������"�
C{�f��3�]�f�M!�L�po?	h5	h!�B!����p�ƿ���Ů�(�������2����(�Q�Qq�.��ih@P�#G�n��}{�(FC�}���e˹9m��睚`!ѝ���>��\O����".!z����M��gϝ3w�32[�v�[��U���${��r�%�䊅��>��k��ߤC4lV՜��VϩC�!&v��o ��W1O\0��sj��1�m��?ܝxU��M�0�`�~�&F ��4�K%�5�p�ކ���|�����l�ҥn�����~�|mw/�̮��p��|�N|}��r�ZWw/v�����[5rԘ�u��|�.����{�Q�.�F��
��w~�U����;NvN�S�W99pђ��>�C��_.�G�!��λ�Q�TK@2��gsL���uܼ��'������C�8�'Ͽ�f���v�Q]'�_S@ì���:^�Tsr�lB	hU@�I@K@!�B!�4������p�IJ/��0f��4�[M@#����ϟ(���'O':�&#/����N%�������L���_�b����YY���~�z!%�|as�G�gd�
j.�S���\��]������Z���DQ#F/������i騇��"^���m����䔯O�6b����)o����E=�CG�n�y��i��}�x�f�����ʹ�t�UXTd�L�L��1{?[�t�O6|��9;�88��q�)�ZBE�!,��:�
�Srrro߮�!��;<��r�o�`s�d�\:�6�E�%]����� 3[�^�d�`�1�����gb�Sӟ>��`�?����>r��B��V��#�&-�B!����.����~s���6!j���\Bƽ�:��A����GlB	hEp�I@K@!�B!$�kr4�8Y8pV�M����z�wn�s>���'ل�π�f	h5	h!�B!��3'�I3vܘ�'r���q���_p����w!��"�BZ�j��B!�B	��W����{���D`��D,b-Z-(�ł�ڕ"���›�a�m���.�i45�I�:�t�]4�8y�E�$��&���a�1��ֿ�j�V�(��]mh������
�mh@���h#@��
��Ks7h#@�$+�2OG�J���\m�
�#?j��ff*5�,�
4T2@�N��� @�47/@&T�����L�&>��T4T.@G̲��F��I���ԇ�
O����U� @�{@#@�8t�*O3��$@�
б�Qo�1l��9�^93{����+�������9�����Ӧ^��j�3�}��R�шū��Z����ٍ��Xy��(OI@|��,����~:���:h��=�-8�W��c"Ԟ���o�{�����Ocoo}���7�o�y0,��0qFKO����i���_�;�M��:�pss3�\�[,++++�ٕg �����y��c���X1cA\]]�up�h������|���l6��׷��O������A�w���D�w?m�u��m�a��#��{�}k
��8g?�uj�vygp��O��ĩ�+��ǫ���_u�3�qh��ؚ��%�e���TPAEDQQ�yRD�Efgp�"8�����u�+����Iܫnݜ���k��Ͻ'�ǯ~G�:t����K�;��XX�СC����Y�o�<y��h�������l�3�����V�Vf���J�]2q�4tʯ+Q;�{74��y-4F��ݺ31��b��͈�����&�^U]x�L��?7�gʿK}��锔�˗/��A����r��W����JNNF��,�U��;;;Jnii��s+�Y�������?�����N�z=
�|�Lץ��좲J��P����q��[�����\�q��y_~Qhؚ�,
,,e�}4�:Ɛ��Ov���I��}Q��xzy���HMϺv�ޣ��w{4�֡C�:~c
��ݗ��:t���+Q�=x��kS@���4,�i�giU
z�qI�{J*����<���p��+@���vi�8[hW��-G]=��p��йE�ߛۼ��(ɩ&R��lF�
9�j��w?�'	d��|���
���(
���̙3@@�&������>9V�W�ZN
�#VC��%�Gѓ���WԬ���8�*����<�Q�,T�QUj^&�J�2�z��ΝKKK�p��n�P�b�2�2Up�LOO?y��P		��d����yn�_�o��D��j����a����W���YZZ�\���7�������xΜ9�#��˪P@ã���_�24zs̲����I)���W�J��ڸ)�����ﺸ7��#�G��������_h:t�СC[p�СC��!�?��<*���l�~{��1>�:��inrF6z]T<W:ã-m�f[ڊ8Z�]��enci�<���t�F�8�s���L-mͭ�'M�Fg�4fGBNaٷ�->��99�3��CA�A��Ӿ������nʴ�9�V4�ñc'|�5Y������f�Z��4���._L��t��c1�q�,s�
���m��
������D:t�+��2�_���E�k�#���ʏ�St`��uJ�������hnn淧΢�eA;R1��������K束�K݁)����R��ۙ�hkk�N���


ǎC�K��/�x��5&b::S3?~y������Y��ů����D�"n%d�Z�M`�����2I�Y��%�,��
4�0�D$D�l�IH��2_zRsUUu=z��jO��2�
�b��=8�(���eee��IY�`k��#G��Q�[�@&b
�˪�љQ�eO�@g�IP׋��F� ù
Te�)����#!N �P��D��p̂�233��e�K�,[|�N�s8���p�~x=���a�s���g|�h�|���Fi���ٰQ�`�Ɍ�#�HZ$Dx�����ť��y2����gn��a��/]�������8wy��8Ťl��BE�KB->p�A/��¨Pab:��Y^���#��b!�OZT���)��!=�l�n9y�\,�\&0��:t�СC��:t�СCǛ��!�?@�Z�ֻ��i�ˈ!��%���0�)Ӿ�ܼ-=;���2��21m���=�t���LLC�L猽y�������5�-cb��w㶑_R�+5���"̨-���\�ߴ5u7��bx�΄/���Y��}�iЊ�Y9��-�H۽�s��Q�>���$!-k_a�󊗆�B�A�v.�y%���3��̾��zﯾ��CO�Av�-.��j��h($�0A`eQQQFFFIII^^^nnnqqqVV�#韓��K2?*� �-//�z1�e,?H$ݠ������*�O*��L�GN	�fjzB3��n�,�f:�"3?l��#�TD�`P�&?�Zf
s	


�HgJ�,�r#,��Ę'&&���@���RH��g�K
#������e`B�$�,Ő��t&��mKhj7S?�@9��'�~��G:p�tc�H����\ ����7NQ���R����!��3E���a�Y&=�_XX�&���"7Y�m�:�ÝIȻt��y��w���͗I	�3�'��t
@�YW�o�p4ܶ��D�ᶎ����T@3������քG��X�2���8����ZdTt��3����7lDw���� �~�ccTtHȊ�k��5��^{�����D�|��Mp-����5f[�K�/\��#.���p��3$_�*����>��	S��ٳRӲb��2;���Wn�svrZ�r��ƺf�w{����	_GaI)��kq��r�~ܮ������T�ј{de�c-G�O��י����i��G�߲u{�������G�e��6D�^�nǴ�#
�	Y�2���)d��7�'&���X�b媰5k˫��K�t��gfjJ{�s
�u�СC�
�u�СC������5V����ej1q�GCu���W����q��9>9}�g_�?�S�k���%����F��f�&p�˼�h�1�GDmٽ���;R��,�ʪjx�J�\�55+��xO���鈿�]�S3�:<2z�ؒʃ��$�B��U5�|�tSaQ�,5��](��s!�X�����ę�V�n���k�+��&lܲ�M*^@�!�2ǐ�g���pd���Y��fU1��`JOᰨ_��t@�*��s�~A�@IP�!M��Hz���_qi pS�I�`,|<*ؚ�TB�2�w΂h�:�͌H�9��(��dE�WNIn�TH(���9ݔ��.S m�}��{
@35��ܘ(���M����vP���c�JP5s�1�qf�''Bi��…��A�dS3s�v�|�$�%��Y��h*d�!�k�3�S�#�n�N��Y��#��������s,���S���)Lz��N2DH7�p0�Ե7�<\�z�04��T�Ņ�����}|�LLf#�F��z����Eĺ
�^^tpuu���;=w�\,�CV��X��޾����}�3N����/�Y{8t��>o^H�Jwww����]\\*�‘��%ܺ����$ ~m؍�\�����vв`gg��QE����g�g�����"��kw���A~/ooOO/GG���|(Ӓ�-[��Ɩ6�y,�i///;{���2V���sg'g�%���f�i)/.>����9eee��?�ɩ�vvvl,{�yH��D�@��ca�NNN�Bî�~@m@�СC�@�СC��{�<����4/q�0P���`�}�#%�y��/�
h��w��f>���;S���ßp�]�����b8u��\��0_4ˠaF1�A&:�O������������†������qoٱk���n,
7�����ß�e.ȸ�
ft��
��q�A��"vWr�E���}0�T�.��[�Ti��h������W�R=c �#%Q�a�`G!���!UAUੴ��.	re,(	��r���*&dʋY�R	���.���%��r!��N��ɤ_�c��̑I%
\B҅#��fA��[�逼�zYȫ4�)�-��׀�/��f,�A�����x��	���ZX�Ct�h��,�1��8���4(�9�#sV��+��g���S-ep)e�`q�3�lZ���29E-��ᆨ��ZTa����Z����Rܞ'@UW7�چ��D�kiiYX\���>�m���	ɐ܍�6�����emeu����.^�Y��σ�"�E��t��':����VV�Q�[P�WU�X[o��C����X?��]Cg>?�	vpp051�_p����+��l��,S'Bo���
WU�-�g.�8٢6m�q�__?�8~�,�<P�* ��O�������y��6w�(��:����<z�`ᢠ�嗮߹z�&!��/�̚S}O�Ok�4�i{{��W�c��:t�СC��:t�СC�V@�<M{`��^>��;#�g�����)4�c���L��`B�!avN�#nj�3�X�p�����q8u j�m1��<�q���;�L/�Y�`=o�i���ȁǴ�?iJna��4�4i*�Omk#��Δ�q���w��y�}1�o��=y�y%�&M�N^�8%6!�⠶�x�4zUjV�`��#�C*!��8 &����O2�S48��|-D��@/�ɐ,��~��KdŨq���ŏ|(-+�`�)�&��� E�=
��`X���a�dq=�0ȵ�+M���
��,D=�Y!{Ṝb�X���ŚZM�4�f�?��GV!�G�,1�x�ʞ�PQc9K*���_��Ѓc9˪��JxΨWh��P��E�ЃݦQ��0�9%_'��9k����&ˣ�������]V�S�p<x4 �>|�r�΋WV��r���HܮD4� ]X�P���s��`�2r��cԸb<B����c��
���B� �'�66������;s��Pbj������9z�6�����e7��x��F[[ۢ�
�2ՖUV��’
V��8h��ͬ��z�V�9f,{����̝�詑f;�ɼ|435!3k��C��1�dde����d��:t�С�:t�����&�����0��c�p��ڊu�c�3M,�9
��q�Bьl�
�9A]���c>h���}0�[\>����&���-������@�w�r5��a1�U���D��-��[�C�2���E%h��V�1
�Y���̲�2��B�����ܬB��h�0��
���(8&Y =������͂2�48�$'�e~ü�S�y�˄�%��)�@��baʨ��4٠����1A�R���X��  �/h��4�_!E�NYqaD�J�t�R��$�A��Ԭ�Œ4�`I�������z!��e��ب˕ڐ�\�4^@���'4['�-��h�;W��e�B�խ���!���_@C<Q�b����@h$υ���q��_�0hO���途O���;��<!3-�Y���M-�Ш}��d�ؽ+����M����Ȩ��	���N��NHJ�ch.�K$���1�(��54~ Pf��8c�ge�
�؝���<��ҍ��B���₻^`�ȍ�L�)8���+�U�vB|6��X�b�
�g/\a8��qxxxZYZ�ߓ��_��"r�+�}�8��:t�С�:t�С�pB>�B0.-o�����<����f�X�UA��~5c֤�_lّ�3�+:��盹^�x�8�w��6W���9�Z)�\=@Ϡa�Q4�6��_F
����(��30mwΔi_oڶ�
�6���x�g6�.�M�
@3# �%�+B&��s>�xC��LL�!��@�D"R�
�ĹBY@pl�����A!iT���IO�Ģ��I~�/�B���DŽ�h�hr���ˌ�0�<�>b�l��fA��X��t��J1�Ya�@��Cf! �ts,O�3��a3�J�K���/u��si��)4L�@���ʜU��]�<���?@s��n�j�2�gj��\����b:U���N�\�M�}����+���k���G�����J��陻I�#��mx&�
@���*��+�@��~~���`��{�0�<	�bͬY�w^�D*>�ь�jeЉ)�tf�lj�̡� ��7����"�����s̨G����仙�R-@��-�q�!5�Q4��:s���q9yEff�-m����~��jqṋ��kh����-�S��'.!��V�5�il�{?����}J�AM7Ѷs��8�3�_�~7  p���s��5�֡C�:4�֡C�:��O��꺰uQ0b��/��8��Ȍ!ƺM1�?
�|��};a2����C��Ҫ�̧|�5�\2�O��o}on]X����
�2�����#a�_���e�B�5�8�A�����޴u�c��Ċ�:(��Iψ�t���:!��1��Po�����I���lȦ��X
c��A��:	Ь�IN�y����R�PH���S��䡧șA��U�h!���(0�1�����zT~c-p�Έ�����U)UaP�-���+-�)���>X,@�13�-…ᰌ�D~�,�X�XbY)u�I±1����s�\���d����A4
�e^�Z#��=�&�,Y��~�Y(3�;�1��}@sED��(���mSo���lɹL�j%Ng.�3�o��>��T%E���ܗ��A�ϱ>r��C�g4����-�'��x��F$�:�ZV�HRJ:0ۍ���6G"
�Uh�wl%xPa��|�)d?��� �,�Md��>�r?
��Xd�F;�3�\��K2aX�P.�ly0��ة2�v�׈�O`Wq�^��, ]�-@���#�j)�<���ggʴ�e���Q4�"6$<b]Ss[ؚp{���}�&��qGumcnA	�R�����N�����ʙ�3"�f'��\�|:��<2���䍕6���N��UXs�q6�<w(�5�֡C�:4�֡C�:��w�?Q^Q��/�Ц�M�i�K�FM��Vk�hPԤ�.��D�b��Ă�֥u
�(.(�Uk\q�+XPa�E����7��2N]���M���{ν�3o�����zk`'=�c'}C9��m	�3F�/����DZfN���8/�e�M�9
LY4T�4�8PzԻ`QJV�&�r�e���ة�8x8�)���a�4�aȢ�TJ��ݩ�Pc3�7�iR,Y�����sctL��7���G��LN��9	
@��<C!��e�Pa]t��%IIM÷�\;��@s(����F� Y��)�uu>h0���D����� E.�%T�� E�+"�j���|4/f2��9iC��<2t�pGMF�)�=�~�}�!�
���ғ�\8Cg�e����e�s��-�!�pX����r��@V��/�3���:�F��p�U(3<//��E��6�_�dX5Y�40q���E6��p��R���J�#�+e�f,�\�_c��}@��!�QR0a����\W��ۙ��V�_�M�s���`�t`��Y�v�#��bx��]T���u��@@���?���H���r�a�_�.���O�+6tu�x���ں�Ĥȑ#A�߇32DH
��;/a���	5s֬%�Kccb�9���qc�M�5j���?Ζ�
�
Rz�$�����7�j���þ�?̛Ga2�w�*�-@4��d���
|30������=i�$��O��)��ld~��X<u�Tl:Ȓ�6�[�����B<222;w}\܄�lk),�
����>}�X#��wj��cFGM�6�p�NK��o�4��/�	'b�M)�qvhI�$I��$I��.b�Dt�q&oٹ�
@-$zˎ����)�3�ڀҚ{2$3�=�%0\ʖSV���������{��0z�ҕ��
1�;~_I٘�?�aS����������6m����q�N0���X��ي��̘I
��y�>�"��lв��i\��г�����g�ۭ��	���G.�L��u:�;�45=)yU� u��FW͝ٮ��E��"�s��=�Dڬ�Q��$��&�-,���Eƺ�c�vm[\:�y.�ߧK�@�1�'"��
�[��,#r��I�o�NĤ'Suk磙V����Xd�Bv���Ƚk�I�eZ���fo@D s`���v�ۓg@6��}{]Z7�R��s�p�C.��(s�F�r]|���!����M�?~`�h���]�\�a�4.Η_�#�4v��#e'�)2�:e���5\�|�����Ü�w��E�|q��Η;v�k�>�;�U��5�
h�2�•U�Z:�>wX�k3�F�[4� [e�����e祮Zj/�k#�߾�������4c�ܘ$O/WT�74.����dH:��%G�s�L�ƛwj� ;���Q���3�r������xFj���(�����>����j�|aQ1��9[��o���ą�z
�I�$�%I�$IZ�$I������:�M��������y䚪�>�� �&=�f���1��S�ca��KDd�k���}���4�NJ�{G�`�H�A��8~�H4n�,2�ȉ>�1p�}"�}�>s���ir����̎��Q��όXJe�&�g��9�+�3�+�=��ɱ7Z�)�4���4��+�[\���ū7��8w����X�7(���V�yNp3a���m�>�4n>|�f3�" ˩�����Zx�>���Wߔ��=ztT��e`b�J�-�sj�m̺����ضp�a;¶�@��Ly2��<��Ɋ�է��o_�Y����]E�VZn�Bu�]8X�G����r�A�s�'P
���7�l&В$I�$-I�$I����\R1;����N��!�tpD�+��Ea/�2�n<.̿"D�2��O�9Fp��
�k���o�У�OᏁ�������G�w6�0[HkVN>a;5�90���uـڊ[�Vj����-5�E	{�t���S3���9�Щ�V�߰�*�&+zAZ�$I��%I�$��y@�oU����a��%4���n�YDh��a�a ���bz�=���
�f�Wn����?
 �.�xdw.b̓�'��*l+��|�5��a=���J���G[]sp�(-ǚ����В$I�$-I�$I]@�����$��jh�5�
|$h;v$j��i�Q�K���.^ac	xq�Q��P��u����o�OZ�$I��%I�$)<-8���%�u�u���J��k�y�O$I�$I��^��?'�����7�����H�$	@�u�������ilūA-���S��$I�$	@K/���mUu���6^�nx����{�Z�II�� ���{��V����Y>ߓ��6�pjԶ����$I�$-�,�����|������0����I�$�ZMZZ�$I�$I�$h�����nX0h꠽���$IZMZZ�$I�$I����;��=��?~���<�3�LEi� ���I)RN(BB��fH8��JJ�4�AE�!��ܽ�^]���c���~�g��~����|�����~zo	h�ӡ^���e���A׿z�&-����X�/^�G@O�3h����B!�BZZZZ!�-+���&-�B!�����薖���,ľ�,��egg���}�a~��.��雊Ʒ��o˟��ӣltj��9ڵ#�b4s�Cc�OG�`��N���'
hU@�I@!�B!$������}�֭˗/���]�j՚5k���mll豳�������ׯ_�l��gIMM�>}��S�::t���ի��IY����ٳgQ��_�a�̙��^����������V�3f�…UUU?R@��M�T5����V�<j~o�^�1�E5����BTuU�{�K�^t�>3��>7{J�2H�V�����%D<��`��T-��q��Eq�ʀV��B!�BH@w�D޸q������3x���,pqq���ѱ������������}q�s�΍7��;�^��#Gb���ܘtҤI���@�%iii'N���i�TWW�����.jc˖-���8�&�1…U͉�<���kc����iK����[��=���`©���7�U5�щ�n��q:%-0xǙ��8�֝��W1~�w�Q
�a��"��j����]�F]�*��z-���2��a�O_H�l|'-��K��$��B!��B[[��`�|���G'=K�߼y��9ra�YRs�g�����&L8~�xg���=k֬{�������`2�ĉ�p�5����Г'O������LDǞ���9s��w}!O�ܟ.�eU������õ������bO�I�ogo���VT�7}�J������K��.���Gs	
8=�aH�nk+K���b����L�P�k=r�P@]Xݲ��m��뼼i�޾��N�8�h��XB96�u/ڣa;�T��I@!z��f��EZMZ!�B!�C3�Yy�>}>ܱ����"e
qW��H�Ν;F?5�s��;v�ҥK===�'����M�6!+�-[�����_�dn0Nqq��y�̙#F����hq???#[]TTd��
	c.��'�m�~���޾}�m�8����f��'##��õ�\%%%F�E���Ɖ�y1�t2�޽{M�|��E*���%���.]rrrJOO�n�T�FDD�Ҝdj��shw4�2�;��Gnx���=|�~qA����M���]\\c�'�Zfͳv.y���'z���;""���q��ИENN����[TK��L�ST�STs����������R�f��ڬ�]�%LWPְ�[�X[�j��B�<���I@!�B!$������G@w�P~���:���%p�(g��9�k�.�*�GF7#�?~�XXX8c��4	�Oq���_����3����c��`|��b��e��k׎5���m���_�~РA�����<xЈ�6lXJJ�Y�M���԰��fL�:X�ʕ+ٞ6mZcc#q"xg�)�&����S�L�4�3�D<u��u�֑X�z����^8��c�3ײ�ڌ<nN@@@�^�������;�$��GMm���[���k�=�n�ҙ,f1,[�U}#�_��W™{�Q�%%u�[�mG@{������heZxd���]F~���|~�X�tI�o�(N�~�O���B����8�j�B!�B	�,��o�N(���%m�K�/�F�֌����$��|oatt4G��_��@jc�ɾ�  КDppBHH3�o/�/��ݛzd����2#jظ��C�:!!MU�)��ȶ���3�x�8�ܬ�&�y}��Q�+++�Ԩm3{�nf��hw�1?#���qcFҫ��lJ�7�:N�<���uS@�aмo�kiiq�t
�8e���|�fnm8�75�>b�I���9!)�Ȏ�K���X��e
h�%dd\��%K���J����v�vT{���6�<p�
�7U�GJ@!T��&-�B!����J�sq��X��M_��%1èA�L��?ˀ����q���˗CCC��QQQ]h2uĤ^PV�_|.�F5Pz������\�B ��it0���
t3�
�z8Ѕ�nhh�ap��AAA&�G)�6�����0Ν4�����~sFN杍HgcF���-��)���RXm����4�y_\���⨸#�.��������W�M�������}־}G���W^i��&Ca�iy(f13^��IN���;;����k\\�B��yz���+-��/!�>g�0e@�I@!�B!$���.//�>�m�cعs'F��Y@WWW�<{�lʄ)(�8�=]۵�&SL�5G�m�ֿ�
6�}
����Df�40���!�ٽ{��9����64��T�$x�o�2jʷ�;х��&�0P�/�(�m̈�n����Y*�&ݏ���~1�Ǭ--#��5�3ҙ�������ņ�ͨ���w�o����~����;s=]\���G��%u�qT<}{�j������Chho_�����[�3b���'
hU@�I@!��ޙx���q�O�sg�F��c�{-3���4HY�҆�PJ��CF�(TL�J&K�/-Z��8R����޴���:�9w��;i����8O��>O~N���+�D"�H$�Ch�I� �X�`�e�3JKK�6����=���%���a}@g��
�U�Ꚛ<�$W�_��1�D0��<x��2c���q[k���L�rO������:�g@���LB����،�4�+��%
Wk% P�#5M��@��tE.@�؟i�_�"�Z�3'��{��~������o�0�-�ޜ@��Qw��2˥��$3K9�Ь��S���`�<_��[�]7
��D�:�|�‖-�D"�H$�@�h///r����ԗ>�lkk�U�dY���h�Ғ���x4(����h����"D'k`���8r||�������Eu����q(�脄�=�o߮z�׬cee�3,�Ƹ�+**T/��C���������5�����5	!|�޳g�Q�y����A�Y�;�\x��F�M�=��j��D0SP`���E�Qxg�ŢԜ��m��5O�E���*0q���uzJK���U�M�?iH˻E���k��b�m>��.quYE�Hf@�Pk�e�j�����]F�m�����K*��-�@���.Z$�D"�H$	��˳���!��_q&����w���`\خ�%��Z����������&ʙ�*��L úh�4����dB?��*=֌���i|�l�Hh��UH������G,�l��`�������pO�_�cU��^�<d�Dy�ő�dh@���0b�<����;d{q���{`�022288�.F���\�����G#a�2�I�O���	eNJ�%��g�����?�Q�w�~ų���9�g/�q^��rȱ3�R��A�vf\/=s.9,�4^f&����p)�����B�ʎ�N�~��=��/+̍���n��ܽ�խ�s���oV>��.���tRZ�Q�u�8�����WZ�R�@�D��x����F������I#FO9fb��c&N=a����E�M����^/%��WSk{���/�D"���2�ʵ!��L��$;s hUu� #��L3��32�
ϝ;��U~d�$�󲶬��A�2�Wen(������|���
���h���k�����5��,�/�.E��t1�M�)`u߸�8��V����
5_3�%'Zm�4�"
@C.BBBX�“b��y��.,,�4�!�.
憪�������+W��˼�@d4�~��l�ʆ�do�����}0�8�v04L*
}�
}!5��Gǻ�j���w�u��R\��L�tѽ�6�y�ם/����q��ɉ�hV[c�λu�u��O���D�6��董'��g~knmc����y�����)�6�dl_@����6�N�^bm��1����
*�\��F�HI����40t�^$�D"�����_֤�+��|��J���J�2+���Ԍ�YMT�2W]w]��V��Ȳ�@+
�I�#0��;j�l�j{��T��e.Z����`�
�v6�w�p5��u}���<��f4�X��uYտ��+�5�x������w�����|�I״��`��
��S��ca�-)�Ʉؙ)��FV+\�uK�i�H��(Z$�K=���2s�ϋW�r
J����iY�aQ�-Xl4j����]=�nܲsZ?���tг`ТA"~ʬo~���z��[A�D"�H$Z���M���;��w�����7���EB��^�0�밮--�K4i^��KWҽ���^��dL\z���q��2��
s��9�ָ����^.�ε�DZ'j����`�H��w���u�@��HC�m�0T�����M/�D"�H����[�E"Q�=΀��~�݂�ɩI���k]�;1�x�sͣbpCo�*.����un[hYi�8u�L15�sֹ͝���������"����0�i?X����m���%�j)��-�u\�_�����w_rk��s�>��L�j��0X�hѠ�5��z��@�D"�H$Z�T��V>��3�ѿ5�ə$"�h�e@��s����aeFV���t��5A�جu�?2�9I�~%#T�9:�T�,��?35���ky������iY,���m;ހ�ɓ���{�Hjfn�լ+�ٺ��{�N��y�Ғ��c
�����Ƥ\�ƟW3�~::i�6 Z��j������r�Tc/���-O���k��@��z��N�N޻�"�H$	�֋�a��U��B��=m|�Ъ�D����L����+�^��=�Ȕ�t؈�>6d���1��`��z-���[��l���-�YÑ����#S{���s
���?�4c���#G{���9?p�����k����j82Lyێ(3z��}k�M�:c��ozN�m읝\�Ϝ��^i��@���eee�Q}�Suuu~~~BBo�3�Ys.�:[������H��*))ILL�{�Ӊ
�s�5'k�>�n�]�ک�_J����/BU;�;T;��oۛ;���-�����Y����i�i��a��{�u�t��b���vƷ����ͨ��������D�E"�H$-j���qM3�dq��|��[}k�؟E"рt@����\&���
���f���ܻ?`O��ߴ�t���A9[}�?b��z���$|��L7_�T��{�f�O���8�ĩX�-��7���q�^���O�}���Zލ���O���
�I�n2�l<jܷ����,F�e�pn
t^�3#��@wK��呑�3��c�0hpmLLLaa!�G�����J�y�};6@<::��b�z���U��
�Kcbφ��8u��>�PaS���\?q2$4,��_=kl�������d��c!G’/_��oU(v��'=y*��Wzf.�U}kjZֱ����OH|T�G�zWŷ�ɋ
�����@�a@���ɺ#a��#O^��b^썒;�g�<�d��Jxtw�ƺ�L?���go=뫞�
;�㞠�˩����!Z$�D"Т�����֎���~]�!����~�2K�[;����a�������ٙ��6�sNPP�@P�(��H�9]rA�I��HF����~�3��]ho���[5��n�z�	�y^^~��o}���q}%�fe}��Q���Q4�׌�sy��פּT|��ߌC���_���������F�ǃZ�tq��&|�0�jf�&�9��2TJf>���e���s~�o�@��)3������Ĵ�̼��2����'7O	�%��M �5�v�	
�����z����|II	�gu$-�v����[�[��>O�CCCq4E_F������O����=���dccckkSYs�:���ho�������hee���><1��rjanN{;;;�Mϯa��<7�o�))�b����gΜmm�F
�H)(�235=w����-�J���������K�6��`e�����4���?~������qw7w{{���6v��5uwW5C��T�mhdx��{��϶�/~�]Z�ų
ss������+�2dȐ!�2dȐ!�_@�>���-�Ϲ�1�>��s�%��7���]p��u�q�g�p���NAґ1�4;�k�8�� ���@:]ZU�gl�΄y�e��:�2������>��k,8j���B&���P�o7��s$��z���߯襥���!�/�\������s���Ku;c���������Qukc��B^Kr���a@Ų����	z���`�Y�z��������U3&;��)7Zi�$���:��dWWW[[s�,~�NNN�!�0&T�f4���qppPI�H^��7ϗ52/��]��"���>����� "1��D�@z��[�,�����i��_s��w���^X)R��>��uXX���=��uy}����n��'2ތ�<==�܂" �.~P��ܳ��7��Zj�b��a�,U|�_�&z	ϊ�W?r����XZ��[+���Kc�9�_s�oN�p�]���W?���=��'_���`p1�����k��=��zFX��";���^�ދk�"�n���g�����5�tlh�o``�8@���uw�����ڶ��Ay�m��I޻�������6���6��J)�ol����U+���7�������K�4Pj��
�)<C�u��R��H��b��&�EQCn)�"���b`�)8da�W$��!C�2$��!C�2$��+�>��_�@��la����-��?����>�8c�����=��FXD4jew�������w_���;��7@���6m`j����|�˪�����b���������/+�3H:!-��,����/|�%����4�4;;w���¼�������f,#0�����R^�]^^��JE����{��	�
E����/v`b�"df@^9A���E��x"�d� o���)H��R[[�@�­��,R���!Up�����4���ۂ��]ZRF3/sssY9�}i	f@� �d:`���a:��7r��:�}���_d..2&�\�C�(5�
D�"��9���Ć׈��%`�����-s	7ַ�yr
���Ҋ��4��*H�����h7��i�pI��Î����’������C0Б����酾�����̜|�)�[3K+L���c.{<4* ���4�v|j�6d8<���`�q˫�s>�\F�����A���%Ϝ��bUUm��4��'�K�N�(�1$a^uS��@����J#CC������=2>ellt;>���^]��bJ�P�f�,8����7P����\\�i����()�R�UU��}2�D@�g��[(]���Ҋ�嵦��qdr�.[���N
�o|F&L�{`�	��XHc�Cj��ܢ��E������A%�ŕ�;������$�䶕ɫ��7tutJJ+9�Z�2dȐZ�2dȐ��������b�R�*��a=#:�q�/JdUU���-���ٝ������oM��2ri�;
���6H��E��18<�g_�������J��}f^��h��ӲA�v�nt�8;64�I-�;h$� WDǼ]�ymb����J{�@���;����m�
9�0o-A� Tᛌb���B�W
5͘b'KEJ�*2���x�Ʉ��h�g�,�h��w0==�\�F/�6���S`V�6n�P,gRb�AƁ﬚S<wy�bB�ê C��Ng���2F�
eaQ���4FSO5�9��X��
:"�J�Gc	�M1E>T	57��F�){0*٦��"0�5��ĕ��;������`�uE�����+�����4��ݝ���M{$�W#"q�051116���MJI#��;M��va��<<<

�~�]Ll<�wjn��M-,-���wC1��64��]���>������,&6.�r���0��յw`=o����3gX������)~Ss�4�����b&E� މ���Ɲ��Oy��O��^��|�¯��!	'[8���igO���2|������j���;u#���83;��ކ�*)%�%ВUP
JD<OO/߳~�V���ظ<=�9�W�����jHX8���������@+kꏹ�R1SS:zxyQ�T�U��}}=��x�Xȫ�ـ�И�I�g(��-?]�MM{z�d���R-C�2dH-C�2dH�+� ��-�͡�?��F��C:ə�h��k�]���
j̱���_���c��#�K*�)�5�w�8b�64����0@#���������av��Ӣ�j>��좲�:�LJ�{:ث�.�$MK�6�%��^�����ȱ]�{�u�9������,X�]h��B�+P2 ���Ɗ�*�//߯��
���H����d^<����X�Y�	���蝆�%�b�ӷhF��h�AH	2�*�<��t��[4�܊�E`X��V/hX���:�hFcR��bvWڳ(P��:�fu�m�*��
�õ�A1-�t�j�Ԋ5T|�@C�4���1H%Z��g����>��A���uw��&�:��633Ԣ)��j�3X�6�,�?e��И&C�#"�z�Gp���z����h��V_�u��J�e?�[n��jddTw���Ӭ��\�a�vv�t���l��CI
�
G�
Gf]Ūr1��2j_�{����pTpޝ���%m��3
���*.!IWW'1%M�!�_�~�����W7w<�mml�jb�y��;;[Xy@�%D�t�@��W'��
K`Ј�������iVMyO�񥪷n�c3s�Ѣn�444���偶u<��֪��� ��}N����	��}���:{©�C�旟s�x���Ϗ�Ǟ̝:�mooG�)"s�@�gȟ)f,<&�:?EH-C�2dH-C�2dH�k�w��_�OO��$Ht|JfxT����d1�G���n%D܈����w>���Ϡ���f�.���d�؉S��n��6��ps#618<�Mq�sr�`��t�t߇PA{�f������A!�6G�b�M,�܇t��3��Y�л���Y�	Ufdv,#P4�
�ļQ�`��D��-�O��(Rb.���
�d��y�ȭ��28�iФ����Yc�]�8���|�Z~���0�r�.7!y&^��
�B���L���"��/�q2�� d�	���eRlCHM)�(@��{��uB�B�Y\Z����577�Ħ�\Gc��r5����82$T@X��K��a:�h��gP���� F%}�l(�@L�$&���f��@Ϲg���?��PR^����1�Ř&�F4
e^ )�B]]נ��
�{ʎ�ǎ�b��G��~�ĉ�O�TĔ��	`����W��IU3�����9-\)�����/�����:(���<C���n�RB���
�������),�,��g
0���:%=3��U�?řYXA>��Ä^d�m]���N��;��:�"�eKɳ~�nD��[��\���Q+$ۘ���%C�\�w�P�gk�gDa6��
�yVN��]���������Y�y{W�3f��ʹ����֔�b�$��!C�2$��!C�2$�ދ�7�?��=h��|�>��+1Tz��x߇��վ~��#.��*Yi�1��}�T�kNi F�6�zs��*S0/S����1
���Y�лШ��h��B����Q�h酳�X��a/�h��h��
kFk��D�Vp��{�~�
@C��ȮIC�P��TO�ʀcV�a�/h�4�\3��%2#�Y a".
@O/�\�D�gj�
@��wh�D�������bI��:�����E˃v'��v\�o_ر��x�
�3��7�1b޷�Z0�c���<�%s-�)���A�e��<`�176�<�_��e.�4;|�`gO�:�j��i���t���#��'gQ��AƸ�`��>r�0��A�M�'�1�Vo�A��OXZY�"��R=&U�W!ѲE�b�q+6��]	��l�E��&����%�2�哐�"G`��������	��2���D�q�I�np� �Ѩ9n*��N��'�z4�:::����r=*�;�їCì������=<�!�ȽyР�����ƌA�.�<l�V@�x���Q�*�K-C�2dH-C�2dH�;�8л��@^�5PH>{\鸇��=���@c��:�h�Шz?h���wc��V7��$����"�V����E�η��!i�M��493>W��q�fB�f�P�μ�*z7S��V$ظ|0��Z�lX��M�����(m_�w� �ٹ��m����Y�Z��|��o~Q	n�J�)�	\����ʪ����t��IQ�"�|3]Rj�;�<�ă���>}iy�&[#oh亹E�C�1���a#��"9�=��kh�:ywcL9�\��9�������ϱ:�M�ʅ2��pRE�wp���j���?�@��=����b:s�f@�,�M����5�$���NV���xh�J 4:#+}�lrj����.ZZZ��晢d��-@c�M&���CV^0H����C����hҩU���i�
�fs�W���6��l`jf�bҭΠ��g�*v<ZݐZ�2dȐZ�2dȐz�Z2\�yo4z۷Yp���q'���;���F!7��Rx@�lMK������
l%�A-y)��5s�����n�;"�cf画�gX���k�T���9�4\X3�f"��Cᙑ�A�Baĸ9���L�wn��[m�p�mN�lcHG.�(
��(�r���.4rc�}A��D�����0�zqL�;ww���Ad��S�|�z�:\�m	��[;;\)@�oS@#Xf�:F�[z^S��ZШn�*k�4�man��3�PL��s����0}��~�����=��:5=��F'g��f�(�W��~�������7 �ΘKp�6��e�?l��%���+�cE�{˧䃩4�#o�^�����}C�P�'O�L�R�bU���w��O�.�3,�7cn�,��R}��>��7���)4^(@SR��R@���mUc�2��jh++KD֠s�pss?z�-9�g���Ξ^^�P(=]~'�{�?����x��q��Od��&ף�cx|�t(�R���ճgϱ�$�ZnB(C�2dH-C�2dH�{	���}��̔��a�8i(����,n\භ��e�(�!��Uxtbb"N��FuE����7`*.�^�;�?�i@��hwgg�r��藹�-���Wx.�� �b�D����-�+��ۂ�\�3D}OB�v\\��Ғ��`b�a.18�eQ:*�1��P{��fX� 4��=�)ZBB��6��N�~�HI�=y.4�
��!"��u/����@�v|��z����hIXY�137�$zrz�-�@�7oű9!
\]�=~�����oReSc��#���HJI%%�֘;��_�w��?2��~�{�b��ѣ�f�(si��1����d����y$��w����$�ZXZ�!(��Ȑ��`3@{�64�j@��><1
�����eEq�lmcmh`���(����i3����a@A/��&
��%=3�[g|}�\���q�`(v ����N��l�uԫ�Dpy��"a�\w<�H3(�1_��}��5;�7r�'�x?�s�z�z�|p��(���c�������;�1p�G��T>�R���
??�d�����ֆ����s�^X}I��2�u��t�%K-C�2dH-C�2dH��M��@��	��)0�U9&�m�Blyy��pa�t��o#r`h,�@�ZrL���sa�h�1�`4H�p���ARR��q�P��W�E�d.���B�i���.$�-����f�mNY�8%!gX-��0kdFg
e����H�'-�7Ê%0�p&R���Y��tH_��؄-Zr�i�
C���fd#
���a�:4�sKkC�iYemaqi�O��"����_�8��}1 �l��f�r�x����Ɔ�#NI��!0<�op�B�����D	I�xR�B�����A��)�q0TVN���:,����? (!9�1�wi����@4��6����zuc�F��\9E�ZG`�(��#[� �A�ୁF�Y��6��JUQ5��g�> {pH(��Z�#ՀM��g]��㎸YZQ���\A����B�&E*t�h��g{w{E��5�u��t8hy�! ~BrL4�TUVŃ��z��R��؂�2D⬑�$A�$�t~�)/eg7B�HYH}c3U��s�����I��p�STZajj��szz~Uh2dȐ���Jq�/˃���/��:�>n!3)���(�>�$*���N�ʂ-r[�uwfggf{ؿ�����Ë���?�Z=��F�"""
�"8��~�]���LAtF������?s�ڔ6�ot��g${�P��A|��2�Q�y����p�J��J�qz1�ѯ.l#�㌇�E��"j�����m�<��-Z����
g�G~��9�;�Vv\�Ɯ�1�5^d�%e�FW�eg��Z�s����B�ĭ�w9Ȃ|�:��i��3\���-46Q�qƙ�._e��##���d.'��n�l-�KUn��F�:+��rĎh��J����ŧQ#/�,c�C�َ}7-ڕ.m����IJ�,�����(�]HR��Ű~h��<hD3��Rd���=~ir�5�i��[��:=�ؔo�
��,����`��{N�>���c�iQ9W@���(�EDD�N@��0��R@w2��� e��8nJ��G$=�����R>�"�Ca�`�b[��Lίċ�w��]ޟzL�3yG��<88861����(��n����-�q��-^�{Id����
22|�䩡���GOCJ��
Y&�W^O�y�Q����2�M��$AS��`�$_��ڴ}ݞP�#�Ƃ�m~���!nP-""��Q@w������>�5ch��g‹	M&��)�'qۡ�D�h�v�|��XH��o���b�����W����cr�[[`��/�v��7��sY���Ud\����]Ml����cw�?�Z��y��3��W����ZDDDm����=ON���CzF�bf_Q�]�"Mpѣ�x�7
ݜ,�,B�G�;��!"""
h�3���a)�e/�����dY��0���g��j��0_�V�zWŅ$�򦈈�������AqZ�,��%��CDDD-;��ڧ���=�o��� ��Zm)�EDDDDD���/�ٗ�;���u����jt{�
hK-"""""
h��5>~�b��G@#��""
�3��BK-"""""
h�5>�O@���tG�}����"""""��V@w�8�˯�4mvN��ZDd7
�R���6��R@��a?���0��Ċ�X���h슈H��1�X�p�F	bE#��"�Az�(�`��>Þ�ab��䎹���5g��k���>����x�B!���~�L��+++M�W�^���dِ��]TTdԲ��C@@���9�_lڴ����, ,,,..�B}����
OL?=5�Y��a�~�����yZ��_���M�j��k}U���%-����&�j�B!�B	�w]\\<dȐ]�v��|}}Y�1y�d����7D[�5jݺu���2m�>��#???t��
ON](�۟�]��’�ڇ�b:�z���ED��ܽ';���/\�}�TTr$����������B	h�3���&-�B!���~�֭[����6�;x{{O�:��� ???55uɒ%Æ
sssCIt?�����?6�s}}��	BCC-X��3V�\i���m��Ra	����������νF)���Ş�}}�<=<�xy��K�������������h^K�v��c*	h!���Z�j�B!�B	�!�yo:thLL�mL�E]]]UUYYYX�W�^�mI�8r��͛7͡ɜ�`�:t��Y�M]hhh�?--�������ϲ�2�@zB�4N��***��ӹf�x�?���]� ���G4ǥ��<�a%�"y�nt������������fϞm� �iz(��[:�JSO\��His�,g��-wzZZ�8-�̙��\�{������݊k6?7E�Ļ����v"������ke��BH@+�CMZ!�B!�.	hR)�M����L�'����źΜ9��ʊ�������+W��a
4bĈ^�z͙3�Ν;�X�y����w�ȑ��/������Ν��x��cǎ�ʁq�F�ŋ9IE6��l,_����h��z��ɓ,m;�K�.�2���]��ѣG�܍��~Ud���Ӈ�~gʔ)�W�6z���C$j��ФjP�\������E�܃C�.��P&s�Fo��_��tuq�]���igL<����G����be@!$��I�(�J^��P\ZZ!�B��h�����7>>���ݻw�7�q�F.;s�����F�����ܹs9Y]]M�����͛��7|0_���������i4t`` ���a�/_����$ıх2�w#���Xj�vBBBO*�8�5f ra͚5ܑ���Ń�����ƪ,X`����WE���w�^;��<�ڵk酅~�<H�tY������o�m����x��y�%4zoW��ߪ�MH$��?[w�5�5=3Q�����r�$IdF3��B����CG�����j��>l��6r�۾�p�7�%�@Y�׫[	h	h!�B!�{/�Q��+o�T���SM__�|����Sl�b^�90.]Ha\�����+sX�XlC��q�]DD���o�h�"473477sk�.���?иoz[[[oܸ4f�ʴY�e�M���~k^����bš�Ͼ���XJ���\��S�P@�|,󂯟?)���n
���U-�^��o��rZ��ʕ�lP
�S�i�����/^��o��{U6?��BH@����
>�n���k��^�~�����ߠ���J&;�o"���i��h�AK@K@!�B!�o�DF���}||0��d<,���4�8�
6`E	�?~<��$�D�����'���_r9��^�s�I�z��M�1����#����O��+�:˖-�2�:lll�D�J���k4�tyy�4���*
���?~�ԅ�ӧ[�	!���+�5������
�^�#w�7��\R�(��ӻ���tٲO�_�S���Q�t���9��M��_���z�xa�B	h4���@���:k��_�e�7)dˎ��y�s�\�-�~�Bގ���O�fY4ԟ̴K=����"---�B!�x�4&�p	���ָ��&Ǚ�Џ�~D-��e˖��pJ�)^f �
�N@��o�(��-�M'�o߾����\��!ⲉc&������d.�	�H�;�Ɖ�-�]41 o�$D�*��V�l�n�8dL��@Z���F�sݣ�d@״� �y����[UA�A�F�cӽ禤��\]"v�"�+����^���|OO��_�?~%-����@@cɒ����-�|n���>[�a�����I�Gs�"b�t�l�Ѱ�4��o>O3��Sf�M9|"~�����
�.;����WZ!�B!�h�*�t����l�2O.��ˋ.t;gAl�y���t
�
�s�N
�ٸ��-��QmH�d@�Aa�)g6WO����v#����X�צ�_�ٹ�xR �r�U�VY&���ɝ��v�Ôr4��.�bau����yb:����
EIs��~�S
Mi��M�xj	h!���ˀFϙu�XF���go���^��]=�:{�|���7g�m��龟�

۶fC�;��������[����mC�;�[����7���Yv+�l�2t�����c&%՝˳���nSPp�6f?i*S�VZZ!�B!�輼<v		!�� f�#����2^�ٵ�m����GgffΚ5�=	�=�ȏ&���h��q�]Fq��� vS�+Wfdd �W�X��e�����H6$�>�_��0�ܝ�v#��UQ�M�yU��Y{*�)��阁�w݄������VUY�w��|��1l�7.�N��K�הԶvn0��}
�&$�V4?�z��FE�݆'�M�v�I$!:*6�xh	h�_���+�+���&�٬17��b��AM4(,�`�+(*(@AA�(M��"T��`��P��Rf���~��Y"���3�[��~�0���wE"Я
�_ق��]6z�g�nߵ��eVi��읶��oa����%5#_���3�x`�x�j惌gZZ�$&љ�������c�6/�'M�w2!)5)5=U���}I��:��	���y��9}ι���.]9�8e�l�W�H��Ԋ�_K�fi�z�55����D"�H$�������z�k�2|�c�4���ƚsdH1�yɒ%�dp��_��#���ĶJ;z�h��	���dXa_e���z���Cr��ʾڋ�4=�$��i�d�$v�>M�&Ԍ<&N�N���
@ӣ��q�+S.�V���u�UNN��r���ɓ�BE6kkk�+6 jT���Rg�2��dK���^>{"��VVG��U��s�u�Vή��8�ubΆM���>�w\�9����N��ΞE���%w@�D"Я�����e�	/_mϵ��O��~�8���)��ik��ћ��48|9r���q�Y�<v��-Z���g`4�X����/��<�e���ML�F;4�ɠ���v3-��y�eM�n��h��_���dhl�nh���&��Z��?j��D"���М%�VB!���D��_V�)))�h��z}BB�t纬�,<<��e9��!p�桁
t\\�����z	~�ҥ�� �7^�b->L��a�AX���;J����M>L�A�DkG���2�Qv��]�7n=z�]a9M������X�]^@c����~��.�789���矘��Sր�ƍ{��1'7{x:8:m��z�����粁�7n��+4��rN&$�h�H$��+�_@��b01\��%ve6�q��<yࠏF�G]sX��'N�1w>����2g�߇�m�KW��w`��5�#O��,z�׳����=��L��;�}���W!o�-��Ր딌,���C���W�H�d|�R��T-MZ��ʆ���f�H$�D�;�>,����ݱ�gk��T{{{������xP�D��1nμ�ʙ3���¢��_~�Ď�������ri�7p�(�me	��Vq��:�,-�@��&��:��/���+�S�Z7+S�017xl
?�p:��9�8��n:;��Nn5+FI�x��>i�>?|�e�p�ʌ�\�-�2pС�n
Ȏ�;�Utܩ�@p��9Q�h��_�o��;*��{�I�8D"�H$�O�Q`` �npT �g|00��.ϔ0��=6v�B�)�!�"To@�D"��!�T=c����zwO��A�/S���(�/�ϊ;� >���k���)�
@s��Иuc�a�hJ�'O��������.OϾ�y+:(�8;8,�{���o��w�����|���-�+���~I��RÈ�Y�h�H$	���hܢ���6l����2��]M��
@�z@?�-�@��!�&��~��?5a�4
�Y���c�}����\��ΜRqf>@91���s�/�Uc�_���Y���׭�<q�4󯦷�H
@�,��
h4Pl���_��A@p�؉��}�%3��{�+Z$-M�h�H$	��--�3����~��N����M"�H$��,8^�� <���,�5O7�l�,K����Wp�;�|��%��2���4m������c��X?G'$��/�n�0���n����k֋�����5����[;�`=��z�(�%+�'(��Z���ճg�ph�:�������|�L����5疘��H8�ԑ�#��*..&{��49��h4������۷Iț�ZCK���}o;4模������g&^�~[�j�����3��?ԃ�Z�O�2Q�sU�V���1_}}���@�@�D"�H��U�O���0��nE�1.�D�{�ZAc�z<&�B>g�2�2/P�w:e���r|9}vdl"��63���	;���ߓ�2�h�J9�O5D�
"��W3p����S��,Z�*��
����A:�� �	�>�϶]a��"h�o����s�3GHsf�'���8X�����LD�xP���RRR�&��|�~Յ�q	�S���������bccO�<���ϯ�ӧO��Ƿ����Ϝ9�S�Y"'q���>(v�?���~mmha��ayMU�3���Iݣ�����������R��RTZYx�������B��G�
�&r�3^��#��>�5=zRx������LP3+��g�42��u}#<�鷇�����Uֽ������ܩ��gϻ�y�1
M&�"�H$-�m�*?�2=��VQ���*��I$	��Mh�p�l�$�
�{�������Ͳ�+B=c�|���k޲ݛ�]6ҨV���H*��xz��z�_�F�`�}6��m�G�yG]�ԙsw���	�
�ڱ�a������O�=��˙)����PԜFEE�
��C���Ccbb���
BUߴG��M*�Y~���W]H�x:J�M}Llܜ����ݼ�wSAA�Wl���܃�
�
�@7��~)�(���m�˞�NH��;�vm���u�j[==��V�Rɛ��wpp�gii����U��4
~�I��`+��K�.-���c��vvv<����g�oܪ3��F�>�s�NRD�h�n�#c�}��7FFǩU666!a�ؼ�K[�r���me����9�<�}����?Xp�>���-�D"��E"�H$��4q�����c_��"�A�C���t��aJ�9NP�{h�p� C\s�-�Q��O.�"+��53ۗZS��F�d0Z����.���{@GFF�c:��ԩS`袢"E��P_3%�
�v��2�|'�^1�K���
|{��`�U�Զ�X�Uڍ�dtt���Y�>�#�l���i�
�n��S���������Y�=���(��y[≠�pa��m���܂�PQޙ������&L��($�+R��8Zb;�$?��s�-T?�> ^M�D-Nnn�kh`hl\���vs��Y`c��q5=
@ov�pvququ��:;�,\��n�w�eUr�ZΛ�}���y�ʾx�2����aHMC����C{�z�Mr�h������(�����{�`ZFVXD$�p\�TQc0����t��..�hwWW��؄�M&2�����9���		���#N���٩�3���v���~��ψ�3�]ˏ�9�3~oo���§�&�"�H$-Z$�D��4�V
je�y����qS�����w@�l4���;A�t^�x��� �i�haa!`Ta�[�n�={�����T�6p����`���ݻwY�S�!��1�����f@$1U4���~*���qF��

��VA���s����p�{��)�a����C�1�Xȣ��A�zK@��c��4"3D����8�g�z��
k�j6�<,���S'Q�Md�HW��e���Z�E�XVV�Yþ�U�b~vv6C]~��Q��,��hK��S#{-m"��8L �ܔO��?r���2D�<{S�)y`�P��P܎'b���h@��%h�凍�\�7�^�ï��m��+�ɾ�,�yX^��ђ�U�e���U
�W���?us[og����"bR
={���[<�*�/����^񦨨j�i�Nz�V������ͅ�\Q��qU=�
˪�jM[�+�\��i�B-Q��U'��Q��F�]]u:���R!�@-ɩnx�:h�<S���|��!a+V�Ƚ�_�|K�,8�q����$�� "��F�a�i莀�=�b���ў�=���
.h��\klU+jh*!���50��j�Ee��l�����T#��{�yF�F�Ξ�q���b@�D�a゙�:�<��Y�2/�x/��krFBA$�`�	0��&		09g��M�"�(2cl0�)�T׹(�ؔ�n��V�нz�곏��Y��lٲe�t�lٲe��MlBй�8@��;1AD��VVV&�/�J����ӏF!T��%r5���M��Z�B�]�tqUV��\E�yW�›���`�x�f`���i��^l
�Kܠ�CP�F�]���B��Ե��P�O���=��D��k"il5��U�����a�]
^� 5�,��qy����-YC�M3�
��Ag���MAZ�D�eO�Q.-61�)-2&{G�m��������j<X_�K��8�A�D�Eeh͸����?J��穉˧���@�"'ak *;K��$k�v/�
�/��8o�<�_]���E�f�����N�iB$�1b�A�/]�Pd���<]._�ӯ_��]�v��r���⪶�;r��	�Y���{`y��Uk��{1r瞃.�۽{w���T��_��베rѭ{�0�m;���co@��� �A�X�����f�	Wʺc�?Եr�7={�xg��C�j�L���h�o�~�")���n���6x�~����ĝ9sU����C��<ȡ!>7�oI����<}N�����~��ĸ 2y�'ԯ��I����1�{��#��,+))�8������|U�� ��v���WZZ���Q��Zu�r�}�^�{��i�V�^�̞����*�F؋���	�Ŀy��t�"Qd@v�?,���OE8}�l�V����e˖-[�@g˖-[���D��^h@g������yA�^0KMO��ċ�	i]�B��ڃ�/h���q23J!B�Q���
)�E�ϩ��{�s�a��"��e4gTac�
Q��������U^���!�VI�����������4�����N�6M�>|z�(K�
3g���x	@cӨ� ���@�NٲeF,�P5��_hi�4����I�ז�8�r�<�jӏ�m�Ғ�R��U�.Z���u��g#Š�u7�Fa>��3��O�Q��q���4�]/Y�"�Ԑgϙ߹s�R�gΑEC9$IQ>h��'�c���4Dk;x������L�O�:���k�c� 2��b���OpK��Ν;��0��̅��EQA�}���i�Z`��p�C)7q]l蓺sρv��}1�K}�WT2>Ww�m4Ts�?�t��F��P��|嚙��d8��1;wѽ[�!C�:'X�;�y-y�_M����V-9WwE�M
��xŪu�wߒ�'<��ω��b��7���!C�\c�?��\f�~��q�'���^QQ��?�]�O@���_PQ��[\ r{��Ѯ]��Z�TT�h�o����Q̾l�
�����C�'����Ġ���$�t�lٲe�:�lٲe˖�	a���GЍh�V���;��VW�<�Y�RE��6�b��|���L���ϟ7�J^L��EЅ��9l��0B�"j��о;����'�.��*|�'�+3FT���'�%�T����fc�Z�Jl�sT(��(�6z�Zi3��<̑O�PZٻ�.]��Q�І�l��.\n�=h�����7���XPc%�T�OC�$��XD��"b��؇�J�I�~��X�koB�	��u�=;v�z��B�;v��ر��
�~{ܮzk�mR6۶M����yڨ�2�/@g��g_�Rr�-�)_Ms�z�FN�:R㲬���3r�h���Q�0����"˧j/W���{�Qbn׶�ރߝ���Z���wYEh��[�0#1S�G�������;�ޚ3�r��
��̇c>.-+S ��+�ֆ��mò�$H��z�ރ�ReܧO��}�c��M��Դ��yS��ѣ�{�SH�Z��:m�}���q�;yv����7m�w�R��i=�qA�B��鳮��>EE�|è���k�.0�sP\Hߟ����m�̫�2�Bx���Ń�{�ݫ憕��ҵ��+��x����e˖-[�@g˖-[��ߌt���_p0V�^�DaD/XSRXz��	U��@��nh:��$C��QD���@#��H�������sl�@�L����
G�M:�2L�4R.v��ㅁ9WU��4���4S!AÁ��"�2��o
@�%7��(к'�mO [1����/��#�~o�
Qq�C��@�"���˒��#Ga.M��Ч����V�X0��U�;�Ï�P؂oي5mZ�R��(��@E0:�p�7D!PK��e��M�:MH��ns
�b׸�.]@�ū:lXhPp��n߹o��m	@+ȅ�@������_��D~���^�5� 
W{�za�ְ��s/\���iS���o�S��yH�;n<A䕫��2ӊ��o��qk���>��͑�£U�S�/n���ش.\5���
4�ܮ][2�ԥq�[�]�}_7m�IU�m��uWoʆΙ������9sN����3d�Zҏ��8o�BQ��B��>��篦M�K,�n]��8a�����K
$�P�}>�ތg/�1�:[�lٲe�t�lٲe�:W@�#�7��M7�F�4^��.�r``1hDRl��|��;MU@×�GɡwR��OO�2���g��X0�:�kC$�@��kh_
	@��#���o3
-3d�²�a����c��KQ��6G!�p�[C��x���}�IiS�&���.i�z��2�H�i�n��D��_#܁�hY�@2�0l_ā��H��+��G���D�V-�=v2X�G�o�%��`�{����S��TM�1�����V-�R�����w�N��J!�Uk6([�޽�XQc��b�D9�A/]��n۹w���t��}�,P�~�6��.�&�lq���ږ-[n޾�愶re�7T�U[��s�Ҁ������С�^�.�.6��܀�),1�������P���)n�b�Z+g^�k�K��oʹu-$�?u��n��}v�=x�mC,[��d�
�;?(�6Ĕ�3��):Wwm�j	Y�l��<����J[ʭ����z�9�(x�4	�
�|�ƭT�-.d�iku�`WW��:����/�:[�lٲe�t�lٲe�:W@�#�7
�aS�3v���ŪH�W�%z�4�ae�@�Ʊל�Mh,�>��T�G�c��	o�)��L��6�bF��^�!����@
��0�q%*p*���ï�+Fi�����`v�
�M��
å�b�.%ʉ��~0z�ȭo�F�f<[#�f��PVIa�i�:@��,�_#4���5б��)�j���@�<��%�o�Kh@�7G�W� #[�j}�G���a���nݷ���
~�ƀ�t��e墥O���M�ʶ�v�n@S��<{�<y���C��1�6cVT@���KE�Q��ŽGOF������T�a��6/��iz�96o�ַ��Y��j�k7lr��ߞ�+�>|�ýy��_�nx�~3ǵ��ʰy_�\V�ᘏz����ӧO�=����ď�<��iI�K�8���n��ݫט�>���I����+������;��V@S,y��w��xz�N�@��g�q䕫��VŒ�k�?�_Dv�e�Н;u�b�d�o�{����6�3�¥zp�<r./O�=���fw��O�?s��v�?d +��;�f���Z}����t�X���e˖-[�@g˖-[��3��G�.���N�=$.�Eb���≱�0��W��L�e(�5��́2�"�2�4��F�
��7�m�>��
~M��P�^�g*���
��_��7����K��S�.����_��K���4���ۣ�p	��&QH	��p�llf��G�ƣB�jt�)�2�֠��#���H��ꥥ�"����M��!�p�_�\��A{�#��Q�t�<��>�"E"�4�1�ȉYV'�h���t4J��K��e�(>-��\�ϟ�t�"��aW�ݰ|���:v��Z�p���p*ab�|��ͻ?b�	ӝhݪՌY_��n�WS�H�K��&�z�ӓgΗ��4��7�>�={�6c�� �ݻ���	��k�ʟ�^�� j1~�D�h�u����Ĉ�w��&�䡩|G^�~��I��r`�����L�8�}�̝_ѡc�z�T
�$ƈ�V��{5�Z�5�6;U��y`yy�^��b �N�>s�ݛ�TS&A�,[�LܽGwb͠�������������
hyɲj��i���>Z@�=WQ^w�2de�
�Mv�c䶤�D��z��w���E�qd����|����V����O��aХ�W�מ��B��G��K/�GO���"zEf2�Ζ-[�l@g�-[�l�2��S%82��ǿ;�A@�0$�aM�2
Z�ym BO�A��MB��#t�b��Q�&�`���!�a�@ɌRs(,3o��91Y1��2����\�S�2�;�Y�Zx�p��BK��Q�,��.?i8�Ėf*`s,�N��Ō�Gf!f��V�s<פ�[~�P���YS����7�s<7=©I�s��bv�O<s�* �i���v2�"hq�(8�
���	���p\Eu3�If$@s\����<���(W��<�cE|�<��&����}wxII߲~����A���AR�ӭ�3f�y�3���nC�=���t��mƬ�
�S6z���6mU�L<��L̕&��ܽ�P=�_m�KII)��D_���s�!���?�l,-�^/(���/��=K�Xx�)�.Tt�//�e�%e���1c��4#m�Wo�Eo�u�n�?~4�k����
���dk�n~ԏO�2�G�����6��h��*e�2&�`n+.��_�A���|�	y�۷�����̹K.���7��9���D� ���ݻt��ظy�|�=�r�-]�t-4��ѓT5(D��� �_�+��{Y�P4��Z���,TI=qF	�O����{�#?}�6M���e˖-[�@g˖-[��3��G�M�7o
+��&���_�B���LaGHC�#U(�J��N�&r�7T�C�C4���ڽvx�?zm
� юW�	���~6���x�yE��<�ui�;_�qG�)`�l�|VǦ�@��?���L�2����	qwVvђev����>MA�+7�/ջ�G�H7��{q_� ���X����iJi�ڜp��ʜiS���p�:�]{��K���Z�,|�N�8UK����¿�K�����>|U?{���IcՒexz�2C�GO�F��UJ�M9?Zs��NC�����z���j�!����0t�ٲe˖-���e˖-[�oF�����e���_�bCB�=�w2kj�JwM�U��Ҳ��޿��5���PZ��	A����_?����#*|���Q��}�C�"�[�wSa&ǡ&�<Ń����9`n��\�����؋���
ߦ8x��W�������-�R,|�%#��V�ܐ����AL��,�J]���%��슚�/[��j����&�}��0
{5�m���й^;v�DQz��GN(�ƚ3�Ζ-[�l@g�-[�l�2�������;��6�0���4$!���TT�T�d��b�@b��U��tɿ`YUUU�. 咤8��{<|�6��}�(.`LH1��G����̙3�B�o����m[57L���Be�U�C��U�X�7��_�\��>K�k�&��Ѫ��J,�}с��&7�={�\����:U|~��0��6�p�M�C~��r��q�xX
CoV|��F�6����rWDk�F~��'-��Y����/^��Ju��^[-¯����О�OD@
h4A@_s�(�Б�G�~���0��E�Ss���l�v��{�ڧ����+v��Vڊ�T�X/4�p���%�*���]ƹr]�U[�Ͱ.�ı��ך'7����9Z��pj��^�#���t{��`>�?�O��=B@4�;(W��O.C5�M�H����ߚ��@r��L���)j4�m�$��Q� �܇S9�2���%Ѕr�����F@��b���WH�D���U~[pk	v@4�+�,��iOj��}~�4�=�j$UZ�*��I4�8���M@kj@4 ��n*Ig�J�xq-A:(��b,��_{���4 ��
Q5�s�&^,�ym	�4 ���H�**���*�#��=�{�x	!!h@@_�Or��z��.G�E���)'�*���G-s��P�ѷ�����Siu#]~�m5�J툙�)6��s듇t~��"I5�V��1/2�Nkzj��Ҽ8�3҃�\=���4�k@_V@�b஧�^�C�5A@�,����n׀�R)�8�s��P(466622�������=�~h�mۖݸ����5_4��߬nJb�o�Қ�x�o�p�**���Y�2��~p+�z5��.b������u�D3'�Vg�4*�ƫ���LͿ���XX��nʏ+k��&���zr�]^OX骙�i�
�u�E��f�ٚV*\'hVK귳��?7J��c���n�G.�����@l>��͜��${jMV7sk��Z����V��⚡ҴzY�Q�#�n��'O�}t	y�[�=���w�_}s�^/G?���u���gwzt�l�qsmI^{�7�����~�����p�h�1Z����LMM�k����������3����


OLL����D���\3�e�<��<�5��d���&���xM51&��P��޻��^D�*"�I�"�w�I�f,�hD��=fTr�G6y�11�����>���9��~w��d<�<����z��+W��c
���?�R��ڦ��G������q$.:���P�������7v�g�RdL�������ښ�F'gPR�.���C�Aa��A�J�|��㨘g����5ffjjh``go�]p�cư��n�L���^V�
z�:{q:9󄝽�~����$�Pd���8f��9����($�p7��<,[���
y�D����"cR3��x.6!)-;&!	>�}]����v������0.���E峏�
���(�S�-�կ���>��&&&<8�ϖ�cRX3�������:�ZJ�ɀ��@�톭>�a�Ii9��Ҳ�C"���Ml���?<*.�p��<��-��Ys�@���l
���7�0^�һ�
"�L,�>X���%�p%��ZJJJJJJJJJJ��|o���OSRR���|���?�ˠ}�G��{���O�Z�*!!A|�s�NFFH7�2F_��
L����t�Ck6՘��0b||<KŲ��4(�o첽����MiuSlb���nRZ�S	��.<���cec=venQ��\S�Ĕ�[�Չə��0��VP��ξ��¹'�eun=zzsy����ܧ������5WR�ܥ����F�%��,�ifU�A!:��ַ��n����W�����@sH1��Y7wϬ��ʆ�Ĕc��>~�����I);�������ꎫZ	�x.c��3������E4Lߛ/,���׳��;=t^��.M�1�J�=��O�����C��.�mqs�p��bC<������hO�a�R����/�H]\Yg711n��X���7��i����z��RRK;^�c������}����==%��*Sz�B�����u�a�\M�]i��uh޴}Oc[c|��ִ����3[g�3g�CǼ����K��J-��������������hkkc���S�������i744�t�����{���8L���������sbb��ppp���@�ر�����kff�š�JOO��ӣ8��������u��E���b�laa!��+�Zj"ooo��2���#65y

���$�-[��Y��v[[[჆b��~
��;��_��O��s�ޯ궾333K+K2.D/���ҒF<�4jh����vtr���`�1�@
���7�h�B.�CR#���@���Ndd��z��	l=9��Y�ݤI�>T��L
�6����/%$(��Cq��+������>�-���3��_a�v��W�<�8�C¯�}
ǏV�8Q�C�����q��tN/?�K��wO�#32ڏS�Ό
���}$6��Wld�"�cb��<w��G�CĞ���Ydc瀲![Q2r�&A"Լ�������dY-�Ɔg��
�%~0+���[����/����/�N�ʃ8g�bX&+c�֝�����l^q٪�����+�il��s^�q�CGWϼ����Ҋ/�]�ްuWYuCS{w]K���ٿ�δ[�;ìB"H�X����@KIIIIIIIIII-M��ݻq�����v�ڭ[��l
p�u�o�����_��q��-��q®\��A��_虙�/�W8���O>���QY�K=z��n�06n�H)�������+(e����Pr޳f7�X���0��ʊ/���a,>44�.����չ���g�ِ���7o�<11���Ł���
�FF���%��|� `,�����㈰X��$`0J��B�_�9y�	�c�Jeݾ�P
�U_��`�oz�{�t<U�.9n���W/uD�1I����3|���䄤��z>|i��+��;8�^-��#C����]upt�q|�u�"��*����S5�L�=��;E�4��K3����zx�����8�lk+k">�̓\���������vC�,�wt.[!'dC���7ʆ=�.B�1\�w�G��w�f�pXS��8ni����+H9�+�o	���ަ��
��� ���SU�6�5s#�g��W�t�v8���av~qEm�N-=��183�뵛r
J�{|���]�1AS*��� L�@K-������������У��G�ioo����k츠�����Ҕ���(��`�d@�I�7�|A㎌�twwC~�/_.�+c�V�1��S^�V�T���t���a�|��k&Y��M�6����Z
স��������yh~���yRх��j�
��z���z�����q��_h�&��_�#4���8(���l��)'�M�m�I�)`y��zn�6!pR��r�A��/[XZ�;<q.������X�)�,�g�2�fܻ�>k2nB'�� ��iz�^-B6නG�����ȭn��z�ـ�Y���gx�>����4}otr��h/_�4���
_�,�G(�V4�������մ�y�
��7=tq����@O�|g�M#��S��{'�H��M�.���9)�}���W7O/����L!qm�MMLp=�ͅ��K�`��R��@��c�����]��F}4Yh)���M4s`x$��'(�,1AӾCK��–l
��޵O�_�?8Z��ơ���4�y���U�-;��E�GDL��-��@KIIIIIIIIII-�h|��劊���Tttt�p@�#&��g��c�@oذX�+��D�a�,�:u꣏>"ЃX������L��BP2�ZqC#楅<�?�gΜ7�ر�
\���nllLJJZ�b��a�u�`$d#++��J܇�5�Δ"B�M"8@��Ǐ̑zx~����9�C���8�_������i9hB$��
�%����΁�4S�1 ��M�;:B�9�`����SC���8���
T����ao����gk��a�e�:Cfṍ�Z{���d1�����a�f"���yA��ƽypRj��� cH4�-R�C�0S+kP�E�$��2����$.1����Y9���;�Դt�IY����,�f6�:�{]\���f^�و8��</f�8�I!���V�,���k�Q���^�uI�9���;�o�}���XJ&�oK-%�D���l�V��@�El�^�2Y@+�ݴ����,���6�ݸ����3��.��m�쵲w!��&��@KIIIIIIIIII-%�W'�5�,��
^?��3�(Doee%`��<����o�ɵ ������m۶���+����s�N�A�������������Ԕ��
�NNNVz�;�&a���,ĉ��&ksc�F`����x�X���Л�C�p��a�66�dYT5tˆ�"���q H:4"
�{0t��Ƨ �)�'H� P�w�󳡋7��&�$
M;3���L �K9P���>n:=�J�
,1��N{�VIu�H�iSS���Y�1�"�`�ŕ
�e�0kRO	��i�Xg��wY�c����9�&���ff�%UM]��!a��vyŕ�c���f
�:Ss?_��/N�)00�?|D�;&DOW�Dqi'�Ș
���F��FQ��(���M	Y�
�9� �]Cm�ZJ�-Л��!� f]Ťl��&���h��Zb7�ʪ	��v�V4�
�V�8�R]\^�-���Vh	�%������������ZRC�e˰'󽝯Q�Q�zh!��Î����9	�M4�Z	k�������z\ZZ����I��z� qT ~gM�3	�r�ٳgЬD�%�ʌ��	n&���>kj��dAbR���51 ��V�ép[�'''����;ry�������qf����S��ᘑ�	�;8@k]8�����܂����艛�A���G��q^�A�۵����BմZC���]p��� Z�2�n=A��n_r-�Avr���}����D${��Y
��S����p��$QȘ�υ�j�Z�@-M#O�D*O�=�q�&��h�$+���V�\ޤgL�>R�;���:�p�crv?�A�3O-�!ds	�]L�y�|����&&���O1]~i�Nlg�U9�$6��>#�Hh)���¿�A�sd\"h['7�/��I�t�CM���{�Z�Z�z-n躦vb�V|�
�tdܱ�3g�������@K-��������������9�/;;��.B*�R�)�G�nkkÌ|��5х���wߥQ f4�o��$����Ν�#������x3��`K!h|�|�S�8I"�������f>B8B���mhhY�'������t��f���� i���	266&�w��R�Do��c�%�c2@����M��5��h�m�'�#2:tm[o�$c*��I{��̩zJ5�iN�)—��Z�ͫo>P�>PÅEvDG��֞]��X�5���f�8�Y�$c(��Oͪ�T���[J-T{�&Q��ۇ�
���w�z�3a��K�?����;����z��j��‹[��ָ�U�$\3�u��˽�~Vs���o�&l��̘��!���I�.�91�͏a�LOg�@y�M��h$���
`:r꿼�'����bf�|��c�3w���dn�M������a33S2=zF'�/�^�ZJjih�w@(����D�1w)�YWej��f�EЌ�(�y�w�$�f2������˛:zrKZ:z�%��Zh))))))))))��@C~W�\I�rXX`^CBBbcc��Pih,4/0���
�1��4�qc���v��E<Z��F<4!�E	��>kF9���`�&�C|�����!O���x4ne�8��j����3HZhV����`9�S;99�E����$x0����S
��2c�~�wσ�h�b�&�A�"�:33�x�}�����"+������{�XV~���E`H8�\�z/�y(�,L/ܸ{��p&{��/B��f߀`��1G�s�UrF.�db�/޸�&nb�����T(Ķo��~����~z��x���'fp��I���!J��I� �"��BOW�hr&�<*��� ���_ԼgATHJ���$���
�a��A��A����e!�,�u�g"��N�T:p���E|�I�`C���jgg}��H-B3pjÈ���`�@�e����l�A�^�x���� �l�ɲ:\�'�������zxQ�:,��{X���'y:.RS�¾�z��_'���I������RRK4#�C�3j����_��3y��Aie]CK������o�9�֌'��zFf�5�dw`��@�v+���
�-ۺ8���|Hh	��o4yb��RRo���*�?�Q����������@��u%@c��"��|��
�/���/��\WWh�w,��@�!��\�9�O�s���۷+�Ί�`��B�A����h&�v*3/ �.�Add$���9f�yI������…q�3J�q���+I $x�n��0h����#j�b: /�+�.�6��A�={._��:y|@����h�5��
�zZZZy������)�8&w
-��+����C�G�@	��kgo�+����P���t�V7����%�h�vus7��_
��	��wp �B���Ln\��%'y��p<�,�/�����A��b��3"FA0S��̃C�K}���"J�6�y�a������!�`z�,d��I�O���T�R���MML���ʚ_QW4,p�'Pf�j�P���7�_����c�f���y6dac����Y�pI�L{{{,���"���u@��ãb;{+�ݽtM�6�Vv����\����W��
�hA7olh=���<�?{A��P��+����\4�GB��%���@+�yff���+��[*�x�w����� %%�?�[ke��4�Ћ��R��HZPD�Q)���A��7��/�V4�h�S�%�m������C/��
]��I��}�8���$}��?�d��l��'~#""
�t�)�J|rK㒳�M�g�w�&�V[�O�Y+�b��YB�g!��9=���ˡ�y�����ɀ�t��[n��r��Dp��[:�������s�Az��&
���}q�"��A}n]�[i�ۇ�N�|���%���qH	�G<��˧_��U9��z�P�v��4&�����!�����B�bL����t"gCNH�9S��0��Mڱ��
;���,���R
h�x;����7p��ѷ��'��&�翻4Kk3:{�A<rȀf���"[im�P���[ؓ�g2���S��Б�cX=�?|�//\9r�]��F�p���|$b@�P"rO�/y�zVQ@�*��Z���n���z��n�ؽ�ܸ��ϝ��8�6DC_�%)7H�J�K�p�-���m&-]�ޝZD]���xp�C�晁4A���s/��?p���P���g��V/�A�5��
#�"3����f����&��>�!Dvo�W�mM4�!��S�������(�ЭS,����ufy�hkG�ZDݦ��hd�w�L��\'L�2�J&�#-��g�,���6�mb�y�G�F�p�wA@3%��}R8�""""
ht��A�3Bm)�E��	�'��@�'C�F�[-;�E�""""
h�6���squ%z[�W�+)W|���N�V"[
h�����Z��Y������b�B6��_�z�\�%�$<��>ҙ��+�-t��o߁i�k"��Q@KX[߸v����ײ��oג���oUف�hKݩ��y�����/?9�٥˳�4fg"��Q@K�Z��֭(J�,r�d@+�-t{��V���/~��3�
����>1za��V�A�ZDDDD-""��f#8,t��83�xl����\�ǥ�>:>za���������ZDD$Zm���n_@#�+��±�>Wj�pei�����X]M�qФF3���w��E�ͩ���w�Jhy�ځ[�oz�;�ڙ��:��$� ��
o]�@-"""���$�C�{g��Fv�៕���2��/�Ly�`V	$�؅@ ����%Ħ�Ub��%p���fjR��V��>�������h���(Z��7n���{��(�q�<��ѵz�}].?
�}qq������Vb�0szvFj�V49I��o�e�p����_�|�X<~�����I&�3�R��b1_8zJ�����Dr(462:�,-��
GG�z�*����ޯF��!.L��k�3�EF��`h.���w|���j����-_(���(��O�P.�i��$I�$I��$I�$iBm�,�}nhi]|�b��ϙr	rZ��27�ts}�8}���ï�?�4���m��
����8���^�}��)�������]m]���y�d29��=�=O������u���	�6Qe*頷���Va�.c�v�O�1Y����!��z�n'R?��
q	����;���<=������������d|�J��N����o^�4�ih���L%�2���{c�ClM��%I�$I��%I�$I�j���<u&���\� �U�S��������#��7���Z�ol������t�~�z���\��7xt+])x����Oى��>��
�v�򻲑�˻��M�
O�1DŽ�m���];��=�]�@e��h�n3��?jj��d,�_:��"^d�V;�p�b$_� ����d���y���Ƿ,؜�ߋ��h�B�����I[��7���}3�|����7�I��~p�w�x�Hᣊ���"f?����ol2�
	@K�$I�$--I�$I�3��"���/��&n^ZYmln�>W�>��3��:�������ͣzy5
}���LM�nnn`�$̎N̔J��;m�_��B*���ɒ����V���s
��vs�>�{vv���\���d����]}�j������*[����C<4��L����|���<>5������
�
�f3�fs9����zzwϴ����.���ds��⒁�I\��#`�����|Ǘ��/L1���̇�m�
;���}��0�Ŏ�Q%ڽd�D"�).�4��g!��A�д�z+��ih6��seҡ�)F��T�H���L'f�Ȟ�'��aͬх�n�*hI�$I���%I����ʀ�&�GІ>��[�K�+
�M��ld���!?��啛�ohJB����5�-x�@��
�OL�|go���sl��n;��xL�G��&[_�7�����j#��:s
������
�u��*R�)���
M6w6�'۷/���'������\M���g��SK��p����k�)��W� C��w�r3�<:1�o�/�1�
���*
��t_f�?�q8a�noSK�A�0���8~#��~��9=t�~�M���Ƴ������{��� s���
./�=�M�X.�7�Y��yon�`��fx=�݄��T��v%Ri�B�s���tӝ�M�vz�F���4IZ�$I�$hhI�$I�;�V�6��g9ol%R��;�|U
p�Xe
k���]}F�=�\,v����V�)L����2
|�|Go?�a��'g��I��-m]͞v|p{ ��ə9����u�����I�0���j'��J��s�������?��������l$��N����ү�T�o�l )ɤ�t;�i`7���h� C�8A���Ҏ��).M�c��)�òY��"��<�7�ѵ8CA�1i��غ�Qj��S�����D�e����w�W	��f��^��j,�J�@��Y����#Y�f�ǧI'ǥ������<���+�C��`x�Y�̺\.��
M&����9:582��nr����Bzw2��d]^����mlQ#�K��В$I�$	@@K�$I��a�!�&�Tm�F�&;{�
9���3�g��P�� �!�����W�\f:`���c�����Z�/+�m�:z����`���3+�t�7-��i�!ק�3_._CN�x><@�-��I2�����0����Y.|�&�w(4F&/��D�J�A��W~���?������&͙����h�\���4S�b�:�q(ƈ\��o�HE7�8����P�%����68<�oZ�6+L"F���v�i|6��C��6ga��h����Y\��@�����.3hBa���9:*�����6�o��A�s
aH�<�n�F�%I�$I���$I����	@��4�:�C�Õ�S�O�Y���_�>g�⑀<����ly;��0W�dhh�(��	e��`�hd(4���^�آ��5�:4:�?���=GF'
��*E�a���}Yۄ��4&�-�	i��F��0b7\�4�.��#c0t(�Y����N�-��̀�������
����TB�����J�+��EG�jf�l�S��	}�����ɂ�X�Akg���3�uN7C��5Dvl�V�����O�S�nV��Nר����r���g�p�y�.�J��px�aA�В$I�$	@@K�$I��6��k0\Js�WDsKJ��<����D��p�[����ʺ�V��J
W�y�
%�6t�q�Z��,�u�h��P�;=f�1��8�3Mp�������}}��==� �Rt!ݡ�;
!��8�ɚ1$�J/ص�`���6����ɕ�ꍋ4p
;�.l(�f4hj5��R�K�U
p��f"�#���q�L�����ˏ���3��1?����X<�G�P�F��������	��<��	�{�6�+:}�p6�\H�<� f�`�L"7�Y㑺0~1������.%�Z��ӂ�$I�$I�В$I�ׯ���&�GЗ����qa6��4��	��E�?�b@�NLGpՀfBW9���&��YX�	�ٽ�� U�|�o02�����<�5<1
�5��4��&�*�����4��/��z��h�����5��@C??[����2F�X|��\�Ai0�bR�KU���S�-4>Ma@�LH��ɀ�;S%��C�f5��Dž���Ki;�&k�����P�����n��A�D��Al��5ɀ&8�Azenhi}�"�L���
�k��7�ONψ����P�
�`9D��k�\c�<3��e���$I�$I�В$I��}f@�@�����_�&�M�q��x��޳(�� �n_`e5:69c�3�vL�'��B3Z�XJ/��<\����� S�h@$a�3�B�m�p�n�X�ŘE��xV`L�	5�a���rc��!�P�&��e�yL?x_�@r.}���j�t��]ұ������4@�J��Kz�N�v�E���C0�'�;\�{h:��$n���q�?6�\B��bS�@G��|f`�<tvY��gf��[���S$&�X��]������5��T.����;R����DN$S�6�&�ΗW>0�L��p�����O�eB�]z��o�/-I�$I����;���3��L;�I��A4�+����� (
.��F�V��MbjDE�#�(J�4* ���*�5��D��;�:n�P�r�͹�����+�<�x�J�R�T���:��P��Z�!�()���Ġ��a��F�Ϡ�wUCH���p����4������]�Cv��-��נ�a�/[�Q��|Rt��l��K�n�7 A�m���S�3��޼e[ƙL15�"���U]c�Wp���%
jz�w�j�����w�$�ug��]�(X����ҍ��<˜���O�#]����
�&I'��+?��_l=���X4(-Zh2�`��򛖞A�{��]7�$@��-�'N�e�톆M_l;����r�U�0	0�ڼ;
(S%����	@#���L���b�����3~?88vWӼ��b�nn~!�޶3!�Վ?�Z�"��a��^��5�qdzR�e���"���6y��!6.A��P�9VTV��3�����Ӽt�{�鹼�Ͼ���>V�R�T*�J�h�J�R)�ne$���/q�:v����+�s�������a@�M-D
�
���D
}~�h�(�A8�h:��-�7���
��k����БԲ�G&���q��B<�n�$�e�\�S︲���ā�R��̦y�k)͌��.�ZRK�f�/�́�IT�)E%�<W�1�1D;yʭ���sY)	m&I������������Z>�N�;ay�2=q|��y;@d���bn� ޴'�=f�g�F
h
��b&�J�|�)��铧�jZ��&=�yAjO�y9�*��Cm��(�1�I�w}�R��)�)�(�\�'
�2��64{3VW��y�;�Q��$��L�n�N,�<��d#D�����d'ݨ�r%7�R*$�p�Ρ����,Ż���WU��f���
�U*�J�R)�V�R�T*�����^lӱ�MG箯
���uE�e��ӟm�,&$��ڻoO��Μ*�~kZ�@R8/�T��lU�;���Bs_�A���I�Vn�+w�0H���"��Ğ2����F@�I4ʜ���E��'�4�1��6=��(�Aϲ��P�ى�1���h7O���Y�-�,�,����;���/2��2&G��g�G��(J�>t�M�k5^�f�4V�R�T*�J�h�J�R)�n�5�_@s��t��h��[[�. �����M��ګ��}'{~�b[vp�& ;0(�s��}q��@_��׮gg_��IJ���G֜8^c'f������6��mh$u�O�>�prډ��z�4���3��^ɧ���r�85�H���E�6(���z>':��������;�짒2`�x܋̎Pfь�f���t~ف�='2[42o>Ќ����j��f�e7�i���H�YoY�J�R�T*�
�U*�J�Tt��/]���x���Y^ba��
�'�vڌYW��b�C(R#ۚ%%����E"�)�:}FD�<��#�t�ݾs���)A�./N����k<3�j3��Q�	>�Q���i;K����J��qm-l@�e->h�,<��(ڍ�
A<)q%/����v��uI�J�R�T*�
�U*�J��u��xi
B]�n�������;���`��i�ѥ��Ç����i�ؙv;+{K�����\��Bmo�`e�l�k-��[�Ta���Rbˆ�X�+Oiy0v��u���ߋ�F�͛CFx�#&��}'z�e&>��D$B;K����~Ɛe�~�s�.>~�2�Ir8�Q�lr�:qH�6��&@�)S����؉�g�f&���4碕�f݌��lY4;�&NL��=�*L�h�8"p�M�'��8y�dNg��
H� �"�dK�������54��g�oGR}B�>�Z�@�T*�J�R��teIYΓG*�J�R�n�;�l1����Uk�I��аHp��a^���=G�v�-X97�u�`��wψ��1��cݵ�u�w���gxԼEKW̍^8j���b�.�z�G/\���ѥ���#B�f����:�cXXd�ؙQ}����҃��[U]m��s��9��,����
J;�)��x��!�\�{���f����e�����6�uX)����1�r�����'�N%I��=����E���>��/fѲ�������Gz���p	�&�&��n�Ԥ)t �

�6c�q��bL��TH��p�w�t<Ը�۠���ں:�INI#9v����/�>��
"g�����I�s�/�2
Y[:�	��u
����q�eW��U/#��|�Q��h�J�R�T�w@�WT�(.�
�T*�Jպ��[�u�������+萰H|�'3NQ5'7���T�їsr,Zv��:�l�B�����a�pޒ�R2�ݳn߾�v�F	�o�P�0�q������w�����|h�X�l����N�	�m�9=��K��_��\�;pH��B.644L�w8�����8u���
�Yc:���%X�׭���MC�2�k\���6?�2��!E�%$y>�B]�m���ɩi+V}R��&:�Y���"�8s�O�N���3����=H}G�q���/��=x�������%c�9�H}�o@MM�?�cY��K�^����ߖ��~z�0�…��Ƿ���=�_��>{���^���%%�C¬�@+�V)�V�T*�J�R�h�J�R��5:��'S>�zQ1�H��J��� �_��'����m�7ܽ�)�jjn�9m ������;w푱m��%�;��6�&M!u!�u��ħ]UU���Ө_��w�����6L�m:�lشYLJ�-�]&�6@x�p�O����?7����Vn��f�a���ʎjҟ6�!*��S����c���Qc&�f�o߹Cz�b��B��I2��E9�u��,w��X�E����8n-�x
���AKW��[{뭱;�K֗�����	��2����,��F�J�J�R�T*������ٙ�g�J�R�Z�?~t���	��5�_pMN���3%���Dx��M����lN��ԋ�1:��y�_��>�9��f͞C-a����3%�k/ףǎ�O�KJ9J���̏i�v��rwͺ
�����T�D����[R
#<r.�[��O�����{�gωv��kO�>	�5v'e�C�#�*�:o����#��\�)>b&Łu�����p����Ѐ[ȳ�8�9�N���y1��)g��@<f�ry�7��$HOׁl'x����KW��/x�#�N�G=h�O����t��ְ�w�13�$<�{���Uմ��+F�oߩˑ�c�C�q�H[~8�B1��цѳJ
�U*�*�J�R�T
�@�T*�J��PAA��Øܹ��賙�1�R����R����[�۰�Sp-Ŏ1��G��ݹ���#�B�����v��vN�)-0=3��?��MA�u��8���k��Դc���o5н��_���o���6�wV�!��>��Љɩ�NŨ�������5�1�\��d�����&�._�4��`1k��z�SV�ZQ�Z�|�	�&���1qC�)�1ejH}ێ8����x�B��R��7Ů�3f�
��D/�c�Z���[:W8E���2z�iK��z����8����?�d@7�T
�U���w�_UVy�7f�d��DS���󊒰S�PZZ�V^-�N�#I����4��҈�S b:�e&3��&���0�9_};�Y������.�~���}������>[!�����B!�AЖ}��㝟���73+����Vr�	��\��q�T@S��5�)Q�3��v��^�kx��#���m�x�}zYDF�����>�ͳ?��{�]�}d���ai�
24L@o�~KN0W(���WG�"�I�0���ZV��	��k�1U��P�aN)�&�n��ӓn�#�ɘf@���H	�Җ�����_���A�3[ :��aa�`��ɇ�q뛻�y�����S-M�`hЖ��3�dsZ��~FZZH@!�BH@K@!����(�n�;sr���
@�rJ�>u��:�*�	qޔ����9�s�,Ku4���{����,zuoa�?{��oN�f�<*�'DL!O9vN"�S��x��J��
�n���A_/���TX�2q��
�\�ٻ௃~�Po��Bre��)�f{C�g_�n=�(OƤ���7"�y�"O|snޮ�����?��M��f�@�m�ĉ\���K��C@*Bv+c5�/,\�@��-���#����Ыߠ�yU@Ov�b�P�1V��~󏎀NI[m���w8-��v�@<�V����?�/|�B!���B	�N�h7�����R_�UC/O]����A�/��?�_\�ʱc�̀�e/�5�����B��'�#+����L��g��F���~<亍��Μ5����6Z~A!�'���ɤ���>oC{ش�-�5Ц�w�ه���:5m�]
h�����]�DžGN�:���'Aۮg�������m[W@�8�/B�y����V��K�����U$���('G��hd�Lz�Ftj��/�z())a��B���%��MC!�BZZ!��	��k��(I����OY����Ƅ�
h�p��U7�_�	\#yE:u�f`��呂�֣oԴJ�=�����s��q��*z�s&����ol��C�2{::�6�9��Ϛ����f[A@ʏ�8ML�UC�a'-MvO���aX����d�������v�\�Qь��TTVr08?罸�Lu���7VW_ijjr"8x�!!�E���fζ����KbU��x������Y�w]]=�q37�̀��S����W&D��;/�B!--�B��4��#�X@aLb�W;sv<��hKjflff�;V�4�2�5�<��ꈷm��������R��]��FGT)#<D�3uʘ��JKM@�{!7̎O� �\qI��D&��{����Ҕ�Jo��eA!*���F�r����L�F]}ݹ��$n`D-(���Xʷ����K#Dž�b48]���C�*���a��'�����G�͜�@��5fBD�|t�i�2�毯]o���E��'iP�=0`�B�Hqq	ObI٤<WU��g�p��2���q�֝�~�7j\8{$���_^��X1
�9�㏏�L�uж\5B�׸c�B!$�%��BH@w����M9p�$f��L�/���F���F5ګ48�)HF�����-p���Q��G�C[�A!ܓ������`���SҬ���o}�O�bGAFc�1�s1�A�g�6����%n&胈䄤�#F��PJ̫����r�u�T3>"t�8�����\yr�X�*GH��A�M���P��֝��>��Smv�a}2��3}iS�L��>h��P6��`�v?��es�;����YsyGn@�ӑ��g��>�mz�J@!�B!$�%��BH@�{�͝�2s�� �)o}��4�Uj]�k�L '7��%��j�_����t���!6�������h�>���l�Z��}��M���t��`·>�s�����>�ևut�d���r��O��
7�疹�xg���B!�BZZ!�t�V@w�Am򄈨�|a�`;�q�8�:(s&��Ǐ���4yE���CZ!�B!--�
�C!�	��M$�$��AdA:G\BҬ���3bG�=M�FG�F��Xw�31�b�./�%��B!��-���;;y
�b�x#��ߎ�cdCcI�I˺�n�F`�!lX��KCKs�=�\
-Mw<OƢ����j�q�ijc2���Pu�v������&��
h'���`�A�Ұ�r������XZ!�B!�q�1�DM�V^,�yT\�t�������������
�V]�F�~���F�s���x��<���+�GO�:w��GfѮ\�����e,�O�|y偯��A`������lǾ|>���[u���j��}<1�����.���mC�3.�]����k��������v���og2�5�g.V_��m�Y��ڬ�osN�����GJ��\r5��Z	�w��q]���h�-h�46
�M�&���u�6
��-�M�(�%n�nmC�mI�bɒeK��H�H��ĝ���̐��p����!9�ŝ�m�E�}8���iY6��I����ι�~��s�Gϼ~Ϗ2������-F`9@�D"�H$�D"П�~�`tr歰�Ka�B޼��������������w@�/y�R�UZ^��uq�;��F=0�܊�����?��P��j;�UV��v��7uo�w��xﺠ��lPlC���yTޏ�/��+!�uͪ��b���7k�,Hl��{�\�7������k����~�k� @����R���y;}�{���'��W�y�Ƚ��+�Y쥣~���|���.���D�@�!Z$�D"�H$	��4(s�6��ߝ�"���%���?.�ԍ���9˫ʡ�*��*��D�@��uP�8��H�X�[,d���*u��R�=CPQ7D�F��Z�����=葁�L�S��Ou�Ct~e���-������ڏH'V� nWk�72~��]�{�G*�zT~��>p_��7���DC{�]�z�E�]�?Ǯ�cz.,wט.�&4u�r�^�\SW߽�%z">=_��_��KZ����/w��'Nټ�)��9�3�
#�tS�ƃ�W��GJq����:�y!�<�8���tN�hV���}P��ިԼ���=E7�����q]�,��8��y��\��I�MM���u�5O��Ȝ��m��?�tpuV=��cV*?��b��~66!T���-�D"�H$�@r��񩗯��YmL~gggsk+.��t`ty�T�t:��l���Vs�0W�~H�wv��Oi�[z�m�C!���9���á�����7H�&��&�ayu
�{�fL���kpt}s�Q0 7��T�D0���sPpi�^g��5��L�(��7��V��mr�������xcs�khD�Њ�[a����͡�ɲ�V3x4*�A0%����]��+��PV-��i&@��Ҫ�De��+��k5�]T ��
���ԛ-S;p��(��'+`��b͍�����ɫ������--���hd��‰����Ͳ���&ݴ�����N���~MO���$�B<~��8�$�V��:O��Vaʗ�=�㙚ӹ僳|��!I>�ۡ9��y��8��P,�vda-�y,�cbvu�F�ke�Q�;���tR�
�6����ȼ}taMդ�@�;F��U}��A�C�S9��i�I��Y�Yݤ�!��\|A۳�p���ʉ�P3d��u��z�i�}r���
L�l$��R�6*ГQ�퍣����F�i�d[���ZV*�ve�Qk����A�D?��‖C�H$�D"�H$���0P�
e�S��JpD���s�eDV鹠��o'����51;����I-�|#8�rx2L���!�'W�s'�I2(���	�+�m�B�ǵ�t(6��/.�\P�;�S�LJ�2.X��Ta�n%���=����[�=��=:S_��Pl����Qi̓G`�e�f,�h:��p;;������'Ô���]]���{���7���= �bX"�’�G��:pKhjᅐx.]�N��܃������K�S��6�mI���+�p�9�}'���J���E�9��%,���d��rq�	�)4��a�ě���F�_l��h��ZPR>o��v=c+7��-�n��̠�A,Z,GE�YmO}Q׫9�����Fj�����X}�k�U�e_À�t-�\*��a�`o�kz��z�1�~��qF��ΩJ}+��K��[��f�>4
��8_��D�Çh�l9�?�:��>Mc��zU�'�տ�N��R1��K�2��R��5gs�-Ӝ/м��~����hҜʆYk��1�žipi��{~e�~U˳s���F��K�o���ee�q�c{�ۡH�������_C��E"�H$�D"��O@��1hb�=`�д" f��(-i��ٜ��^�.ZxhL���9���PP�a�.ЙsL�i����=@;�⚦37c*A���tm����70:�����V6��h=�0�_$�~7���7*[���P�1i_�H��Z@}���"�m����	����]SGo���'6�b_@xh�q�F�_|0�����-�\�1!ݷ3K���>�\��,s��>U7��Av6�a��
�f>�g=k뛙vr��_PNe���$��ls� |989v���7�	��w
��5�`}x"�j,ϯ�E�Z����̄����#yX^������֖�Ub5`�b��
O�ڣtT��GK/b1ˍf���Tv>d==�Ҟ_�R��a5�c��
� א�!�D�duN��������=��o����κ@��ޓ!Մ2{W�5�.bL���D��ߌn�b@��sje�+7+�~�l��zx��L��c}D��k�oD5Чɶ�f�SE��A�pK�Sa��-'�lڙ��Y梞iZr�&��/涓+�<
��B���Y�po
�~.�-�cbi�'�휮I��P/d���V7�e�C�H2��-Z$�D"�H$	�V���Ȭ�]5��3��Nf)�ZX-����!�.<�'��ۦ�&���triz~�a
��
�Ut�
f��g�\an8icG�C��۝_\y�˕>58yI�P����q���@�������}�vG�0��n~9���n)�k>�I�.�#hb���Ou��a2L���΁u	�~�Z8��
p)EA(��Թ��
.l0u���?z耆���Ӿ���;<��s��0}�-��E��9g��2g�Ԛ��&���I �t^�Ch����&2���XA�"-�tk��֧3!��Rxz����֒�
��Li�������КKE�Z��g����pnCx�=�ſr4����Ƀ��s�H19�8�����������E6h^���k[�=в��Q��
i^N'���h,�_�Yɢ2⃽�Kna2 fr34�f~?��Fz�!Ȗ�ս��/Bk>wM��ށ���үUR�v���Y���r��՟�\��m�K�H���%Z�"�H$�D"�H�����v��3��F<��u���:���n@b`��sr$��BF#��o�޽|;�z|)�.
p�\\���28y(�����Q�b.w�t}�3p
{E�a7&wX�m=!#���1�en�Q��ǖ���	�`�|B�1���`2��9�kۺ��а`b4T�3�u��QL����b4�ʘ�)�W�FEj�+�paR;�M��փ�����e��=�r��\��͠�f���!���j�VVy̔�*�(��P�ʀ�Fi�?Ё0��/�*�{X�����4~�ﬠ6�^M���d�J
�og���eN�-�=\ᘻ��	�Y��J�r�ayӡ�e�A��	G���������^�Da<����G����Ϻ�55�I�V�#�vm�̟�T�G~�WOzC��M�ŢgSZ~8��e��I�K�1
���W�HXq8w�*~Ƿ�7�u���1G?�W�����L��kb�pgb��WKz�5/��=�D"ɀ�C�h�H$�D"�H$ڽ	!Ve&��$
���0D�.��PZ,��͝�k�= �"��@^0H�A�8���=�1���?@�{��z�lo�E^|��jd�ᶞA�g�vf i�И�����ƃ��&�O�2L���)�����1��Ra�
@״t1�C4�<<����C_M�2!t�ֵ�"�טn��"������8\��W:�Р:3���9�����.��]�KjM�-o�/�'�NFau؆O����,���:3C֓:�l���e�I��lYiꘜ��
pgD�� �����&ۄ��{���~�&=��|,-�2���Ǯ�X3�4վ�@��WE����G6����G��������м��n�F�����|t؊Cꇿ�Ҫy-��:��4~&ި(3#Ƒ��_�n�m�S�aq�[4�d�٭��y]���'�ʡ��}�I��?�7��ݣ����ԎgSZ�����	������"�8��-Z$�D"�H$	��Ш�Ԏ�?/�G`R��U�!O3^c� ��cu�n:�p:�x�ٟ����t�a��w����|(�f�*S��([�fK�e�������/�P�P�����F�׹�2 �^B9ppC]U����Q~�#Rǧ?@��YXeT�Q��c[�C7�Q�����՚֮����F���d�FT�����:�?����m`��QU^��b='f��OL[;�R�!�eƶ��R�P��1#�%=9;G�3�ebf���̲Z��7bS�`ǔZ]���L�Ĥo9���I�G�Yn�p�ж�ub���'���*~1��
Dp�Udz�����{g9G��;��}i}��a5;�h��p~1�@ �@)�Nj���s,3��H�芡9���:@̛��Dp0�'|�K�N�:v|5����m��)�]m0�O	&�$�~R`n��s�g<43!�����?�QA�7Jz��t���K��hq@�!Z�H$�D"�H$���eöɗ��b�>鰶��ǖ�`�.-���s�q�)D:�ik���k�?�+L�pIz��]VY��\�#�pU� �I/��߈v�T�q�pv���
	��L����/9}�zD��V[�|�SV�xz�Y�^Q�;�#Aq";��d3OJ���Pd`����*
���w�5�;˫�#�2��d$�P�i�bXbǀ�K u�,��
\��A"��T��ƻh��#@#$���A笆ol���"�"@s7����VH�e��4'e��C�����A:, ���ªF�vd��8���x�z��>��SQ7rȆ��a���$c2��љ	����Qd�U!�<�cT?xh�=[M6�tXZ1���_T��'O}��#|�/3��W
��5��F��k�'���
��o�XҼY@n�%]�b˯�]�o-�i.=��5~:��^1�КW�:\���?�Q���4`�>��dH�E��۱FҖ]��5C���N���Lo{.���ʡ9v�m/�S��94S_*fį��0�w�6Q��j��lu�y)ͫ��ޥ�9� �I2Bw=�_wl��q���0�	���I�4{����F`b.�+��=�L�--Z��E"�H$�D"��w�OU]g����O����R�w�"EP��(TD�Ɉ�Ѩ4h�Q� �*AQ@�;(��E@4*j�cl&�Z�J��5&�sX�=gN�Ek-��gV���z����'��̀����/{�hgl���ۢ2���kԝ��Ƨeǧ�2��ei�߄�FR:9�WK*i׷����*eJtoMʘ%��_�ښEi���:򎹅�=�ϗ�\K/�"��Jp���{�ރ�**���|�-����DF����62�Id����)�@��]%��d�es�T��4���S���:�g�F���҄i�ß�e��_�UHn��R$��ӓL'>{K�SA�V��x���#f$��Ye6��嫼ԑ�L��S�A�`xy9!�Hs��1�#����]$hsM�;�L�*�;�5�=!c/y�|�s__0��\u6���6�*ư'fS��1�E��}�����K�,�Oɫ�[FL�gƷ����=Z�������'�R�)�.�ź��rh���C_Q���_����ܷ�Q���
���Bf��$q8"�8�[.)M�v2�y���s۰ɼ��X����Ss�㨂d4r~	�G��i|%�@4���{��r�͐����l����Ɔ��Sn�-Dc]��߾�4K�Fm�<J���;�֌�)�mo���Kr3�]����qV�	G��FM��MdP�ǀ��o�?$	h!�s		h5	h!�B!��\@�)4̧�Q�z�����7�A�
cH�YT' ��K?#����]ݔ�f�ʚb-�44	��d��jL+�ۊ�)�'����M4F�P�����:�yE+}��� x�Fǽ����<s���[]]\X�"�)Gʕ�,f��z�VdFr|7nޢӊ�'�ؔ�Ƣ��hf�u͠�����[__gw7�kY_ǿ��5�sv������֢�j��,�֕[�ԯ��Y���z��y����smVg�Зov9���V�=th�-�i�}�I�z���D3��0��3�Zg7�9o����:y��c�y���Yc�{"��oT�C����WO	h5	h!�B!�t/��ҫ�z%4��Y�ǝ��}^�ﰴ��}x�ޱ�u�1��T��ܻa���A���E�:n�]~�'�J������[�}B%8�$�%��B!��B<����>�����"7N`eu����eb]t�I��T��<8��=������>�4V�Ν;=:0��CZMZ!�B!--��:��^�u����q;nS��
!z*ASQ��[�-��H?џ4A�����&-�B!�����������j�b��4�	|���,��T�#0����j@3ر�琑�F���^�2p��}�A�]�YO��,��<�m�����B!�BZ!�x~4q�0����j̥�,M��;�=z�_�Y�#�O��Ag��0K[s=j��qk֮�<�ϟ������������YO��s��7fmN�1'!.--�B!���B!^,Mrnx�}5��������r����x)h��>c�1��͍�h=�NrJ����""�M���!�K��?u6lf�}��|��?r�����j�'��#ݧ�Έ��p���9ە��~�~>)-�h	h	h!�B!��B��xlMщ1�uM�0�I�iY�e�Z�4n�]�
gj9bSԂ�^�Vp�o.7wi�ү�{�Lؙ�����򪺭�lؒ�;����1[SktL,%,�0��p���}��Ń��p��~��>��D>M�e~��zƥ+�Oذeb`�������,�4���m;��y��]z�όJLJ�=�M�a�@X��h����B!�BH@K@!����/!q��黀�^����[R^8d���IA�[R�˪�0������̟����d<�e$���:{����H{��2c�Ҙb>�w�/�1{.Y��5;nM���g�o�m_~m�׸��`L�²q٤τI�a.c�	-��;�hez���m�SX:5,�/ ��˾�O�������
W/
b̚���F�N�9����0�+�EX�xޑ�^�Cˆ4=ܴ�3�iN�M64|6��Æ���n��i�;���4�7o_ʉ0k���p�����$9147����!��B�Nc]��)�o�+	h!�B!���B	�S��	tc��u�[_0����c|�r��1> ��{�Go,*���;@�����%���-]�z-���
-�����)��C�(a�qNH�RQ]_��LzrNA�̹��N�{\q�/�Y��D6���R	1�(v)�ﮌ/��ƒ��/b��NHAIDT�K�D/�E��说5~�)Ŝ�}GV�^l2x��R�3s��6��=Ee8���Ye����"-5#�4ꞧ�euƗU�@��ș�������s���e_M�o7&�[*G﫩g��2��}&Ή^�*1K�q�<l첕$��y&��v�f��ǎ�O�dW~q��2wW�4�4����1�̒�B��w�?Y�w�G��� �D
�"j��AAE��IA^A����("�E��"ԶkҦ͚-Y6W���%sW�}�n�؂����<��}�����B!���B	�y��i�
O����/��͂%�c{i@��ZG'�m:r"k�X�²
�(��J�0��@J*��[OWY��T�bq���wC����)���)��J�S�CXZ�,�{?$������v*%-sr����S(ZL7E�HKG7^�����v�nc0WP��Wo�*,�=p����}V���<|�/H�"���
�ݥf�X��ʲ�`:�q�[;�oo�Ɏx���Ҭ�����]}�S��ڻ�2!a�F&�I�>]U[v�
�%���,#���:SE�g����M8�G�[KiӦ~�>s����sm�O��W�(G��NNc��+k)lhd�N��DH$��B!���B!$��C�+v@#F����bB7oۙSPb���ӏp�ޗ��S�8����xgjcw Al��221����p�>�~d�.J�����"s�n��Up)��cwfH۰M��S���Ԯ�Є�;��$
�/;�L*��'��݀"�T�6Wӈc�5�inhn'�I��P#�q��K�lͱ��Kӕ���˃T�`��e�+�E�M`���ށ[A[wP���f/�g����Cá;v���u>�W�-"�̫E�&�xAiSV����1Ь���w����z��ŔǧKI�X�̅��E�:��
���N{5U%Kg�W(��AO��俻�IZ!�B!--�B�5΀�h�����&����Q�P�K��ֿ���D�K��C�ҙ�/�0���
���ӽp�.���oOL!�7��{�
��� �7�!XOW[�h~.�����.,�4�n�Ĕc�#-Kd��nb�-��_�p��<y�N@��,��<�R���h7��U"���v�|��*OHN�Z.�
��	��TT��N�#-��`��������賾���!K��2� �I�F�S<���A>{L�!��zp	h!�B!���?��OO���oB!���]��?����+V�\�˄? ��z&[1�;j���2���)�L�X��3���u���n��-��ꉀ�ÎL�#�#,"�J܄uth�c�A���lE3�����ns!��vGӳ��|����ผ ��{�#�P��\s!�X.6�
h�&�Y�W�Sj���	�s��Y'*>�N@�'
-B�'"����!a=���dhd¼�����q�[M׳��2@��ߙ��R�$�9GD�!�1��|V0�NN"��B!�BzN�2~�ݧ_|��7�~���444444��_���㼋�xE�!���g��E�2L2S��7qh�63�(x��+���u�M�1��a��̳܇�&ebc�V��������=�+~L6��B��w���E�����x���E��\G@���4��2����TB����f�q�,�ލX�8��r�U��)#��˳4w.qv;��� ���ʂ�0�����YK�]Q�∨^���r� J�̯���'9���uuqϷB���R�9oڲ���^��ktDT��B!�Bz�_�>��b�y�@CCc��m}���#���F��Ubrm����V�ݰ�qX�N/�@r*���_$)G��U3N0E;0Hgt*?�L�2����*k�I���풚���堿��ю����.>]��l���z�D@c���ؼ=����oj�ۚ�d|.��w��^���H �4oK/3���ן�k�]�؉⹇�h'�}I�@"�h<�|�]�q=�]|����H�6�f�s'�1	I;��cu	���B!�B<���o
�Ǐ��#!��5_��oЯ"�c�'�q�Y8V�f:�-
-��3���R*�d1c��Bˆ��YT/��L�qkt"0$�K����Ox�L������e
�k�5���/���LH��qb[g/�������/s�:2��}�on�=~���ݽں�����i�>~h���m�������^g�-,n+�y�����
F804���!�m��b�/�U�p'�H둉idw�:f�ͦ�wqpt����a�������O��g������i��44W��ߤޙ�c��\Y����+^#�Qجs��LZ!�B!=�|/�B�&�`���/s!
�4)�ZOd�a�g���7��cN���_l)9]��E�2�܂�%����}�`i��A[��RG�g�\��	�C�iCޱ{�Iafؙn:��)�,|�u�M�l�0o�)>��k��M�@�����B_6���@���=}�ї�����X�6G "yM�3V��c���>�[D���G��T�Cj����nl��َ�-���S�V�TT�[�Ŷ���3LS�I�I��Єen��!�6j�����}�"Y�����F��9�S\'�����)�G��&���ы�~	h!�B!��B!�MǦ�+<_��|�/MaiY
CJ���
Og��oF�bW3swF��39�q(�-�Q���>n�^��|f�_��ʬ��{�I�u���k9Ր����\�,���Gm��̝F����^+�W��a�R������v��F���V�;�����L��^�O��ߎ���$���f���]��B!�BH@!�b^t@�Fp̭|�[�db1��|N�p�¬�"x9'���U�i�{�w1g�������ə��O�#�_,����e��,o�"�H@!�B!$��B��w�(
DQ����IPD�܄��+Ic�v�h�u�V�.�,R�Ȍ�<�z��0���Q�	a�y|r��M����c�%���Ub4����kV'g�t�����
��	��{�UΚ�Ӌ����S�Jd��A_�[O���y4�
��t�RJ�
�Y~hyaT�`��h)%�_�hWp��~������ڊ�W`'�'��a��|354 @��Z����lq&@�'��
L�
CйH�u?��q6��
�@��*Xku���
�mh�`<�
#@�7{w�E�q�N��S��AZ����Х"1ɰ�t�$A"�a/^���	չ�kI/ږ�����#RYcW��/d\q�0�"@���<�a4 @+r�m4 @U��$Q	�&@4�CM��|��
� @��h@��m�
��hK�4P�:�/@�����t8�|�>��^�w@��J���2sss�>I����
K��V����c����b#���L��t*�֘n^XC*��hjYR�\�ٶ�Lkgz��\�?��F��x*_�r���j!�k�t�ř��E�Z^�~�*��{GF�&��P/_ɴu�JVL��<w�B��k�ѓ�OQ4��:9�q�R�ϔ���jy�R��|h�q\C:�$�%?:�ڹ������w��/<ģ�co(ы<��Lk�?k�s`���kM-��O��
�r�����g��-۶omHu�?8x�A�P�}L��9���o������w���mHe��mڵ�����O�-㥅P��|��x�W��[�a��7n�J��{gTŕ��?߫��L�+��(n��1����"��� *("" (.�(B�dP\�-��]'�IԸ/11S�y�}�'��O3�3���.�>}��ӧ�޲>���s��^����v��������\�z����‹���w���sw�Y��ZT�D"�H$�@k��ѣ�7o]�y[%�D"џAm������P�٫d@a�����ة�/;u���5qIi�N��G����#�LfZ�߲����7��i3k��'�d��(��
����VϾZ�};i�ӵGG��ں}�����ޑ��)��'�������:w��\��ڽ�{�w��١�N'm]�����[~�ƍW����sSg��w��Q�74�̰���p��9�J���F�Mڶ#�5}?�Xi`8���G��p�I&Y9�U"�H$�D"�/�7@�D"��O�q@��?�"���&m��ׯ��)+���oŲ������9p]TV9o��Y��؜�%��M)0d�������M!Ԟh��RH��!�q�i8�9���p�Z��r��C�����dL����C��>����Ċ��=��ֶ��ݹ����ڡ�<��z��V�iEچ��u��tz��ff��3���l˶�X��K���Z+�C^)v�������q{l�f��{�����Ǐ��~��ӧO_��o���w6�<�����[Oz��D"�H$	�-�D"��h@�碥5
���c���}F�c�w6����݃�Z���'Owv���Z�v�
��>Gnކ�9)-k�UV��t8��x����e���7��X=�Ԝ�:61�����?���|����*�����gY������
P�"�m�o�����5��v��N�f��?|Ö���6� �p����E�7�`�>u�O?>�����;���r�x���hݾ}��.=�VW&�!gw���k�C�s�
�]��>�M��!��s�v�s�Z��'���7o�JM���|eЎ�.\����/����2sv�����ɣ[�|���3��K�j�%����<pU|���g���ŽٹK��N�|��˱*�;����Ԣdk�)�ON��k���:���-�1���|�(��ǎ�]��Ē.�{y��9Z�D�O�y{����={�Brꮽ�0���!jkXDdSs�r��D��'�-Lݕy�fMwEUMVN����޼y3;7/eWFZF��F��)�ӧ?܁c�EPPHXzV�ݻ��C�_��+#k”��ɔ/*.�Ҙ7��[�����ab��qLGm�^YU�\�"j�%$�g�D]o�̴3����Z%�D"�H$-�D"����V�mq�
i�F�����ރ%�5�.�8"�݋�T}�x������ê��Ua��}뎄�5
���Uu��v�Б���W�5�gUms]�%�vN����@S�`qQi]Q��H��PÑa�@pʁ�luM'v�=8�҆C�G'�ʮilũMK�lj�60��+,�o9��i˿~+���4��h�-��׭�vh�r�k|���+W��G��Y[�7.������]�������`�_�]�8�<x���*GO�>��n�^⿂�
�/����CG�V��֣��;i��Y�z�3�OܩC�uL#��K���
�22�CHH~�^*(����!Q��*����?��S���v#|`�\���s�tz��tq%�v�eam�~Ӗ�:v��U�A2`o_��y�eneK�^�����a��[�n�zڦ�gfB�4x��q	t;r�{���30d����.�_DÎ�z���C�����͛4��O�>��©�-+��ދ��h�F9/�)�w�
hæ-=���S����;'�S8�u[,3̀Ȅ3f�/�ACGu��Z�tr�m_�e�/���E�\�<g�;��l��/���q3sޱ[O�E�gs���x2E"�H$�D�E"�H$���h@���\�nh�������������\]���.�̜�ʼ#1e��(��޹���i���K�S�ZNF�%3���&��/\�b���]�0�-1�`,�EK9TXT�4�s�`�n�m��-^��Cر�=z���®�+� c顶�8=8�/\�ya�s�Y��xd�f���:B�)*�ܢC%؟�j��]���҆G|I䱧ϒ�v�4�\0(�p��`����b1�3phK�q*�:}�
��
�ֳX��n����9�X��<�!k��>�g��ݍ{��k���
��2���1�AHu���n�T�*��8%9��g��}���Lf�Mm�9�x����ֶ\����;�2l.��͞�x�r 2R̘��$&.a��9��aM�,|�,KJI�+��P����������N������ٕ�����o��$w/�8%0��T��}:��{���x�W�Q�ty �dp<}���r�
{����3�g�Gn\�h)sB�����>���uv�T,��3�/08���ʜ���u�N���Δ�'Y9���0��i���o��
���!��q�5�·��U"�H$�D"�"�H$	���4�!k7��C"6@֬l������������vN �[><��r��؜�8�̜=���8���¶����
�6hUR^m����3p�\���Ƽ;���NnDp��A�n^P�	)�\�H0A�s{vqg�:��M�#��s���G��ѱM�O�F��E�P��\=��`G��hy<�]��n��RA��uH`PJ�,�y�А��v�J���C<�8�IꠄP%��������J��z݆���c좔]�X\���p99%
�ٳ�����z@��ŋO���V�TT�(�m��L�C༳����z^��M|����{�KS��,���a��������ƀ{�:
�M�u��h�/�شa�@��x�9�kO��E,��P��(�
��ޤi�\���.e�(Y�tY{��-M��W�OLN��Ϡ�v/�<�	�+V�`��!�$G�{-�[ͯ4��Sr��]2�yӀ��Ψ�`nM��e�8Y��kJ�Hò�nruM�/Z�i����'x�"��-&���R�D"�H$�@�D"�H$Z#��h��cp`Hx�A� �D3��L'c_qYYe-Tg���|�LX�&�Q��af9g������}��L穙��b8 �)�V�=~l����$
P���s�m�����%Z����CGL7�>p�;���)9��G�36>�4���9A��Ce�,����d�o,�F�d#7n�����.݁�PE���I���2lX$���*��k��\'h"Э�{
�0��w��᪴Z��ҐR1�=n{���;wH�Fͩ3�ws�g�?�ඟ_��nE�1�]��������́��O>��ŋ�\r3(�~��e��:ZQ�w�32y /�ms�9����@�e1~��k׮���� j���nK�1���j.�R��e(:�T��o�b1t��P��X���B&��	�5US�y�^�p�|6��ڽ�mmmDaܺu{�(�=�q%���m��p9SM��E/h�������;n�^��h�<��C�J����3�‰L�̹�*�H$�D"�h�H$�@�v�����G����%�����ꌜ���9�����С�6*����"L�{�JӲ�R3	t:�tBj��YHHN�"�͞��{	^i*M}�5��;�d=ϲ�����CMjGN��)��X{�&����FŖ����.�o2�V;�k��l�z�ƅA[���9Z\R���I�P'ZP�f�zu'�tW�����G��@�ƠƩ�����ӛh��p�N��P2�
�&^��d�����R���3���S��]R)p��
����l�QL�l��VGط�9a�>�O8�����u�@������O�54��6��0_C��@�gf����B��oh���>�X����c�%!)E�s2�Č(7��/_�2q�i;G��^~�ldd�X����2�Pc�)Z�4��\�~
@��E(l����М:V���7�k�@�1=�Ș����1z��Mf��D"�H$-�D"��Gp،}o�h�+pA…!8�
��\�B�����pr�b5½[�;�2�@���݀`5�&�b�ƭ�����5�Q��%�6�
�Cs����"�����ZX��و�&�`=a�r�1/����jj
wpY����-=�t��!�I�ʣ&>�9�\�Իr
�M40d$5G�;��G��,����h&��Кh,��š���i�աd7>���7���	���e�G)좣�?�g.��K��c��12�3��;wխ�[5tPHĖV�BÁ�X�7��z^$��	�J�1���u��9��$�����mfa�"��zg����	yj[�v��[
�'N���9�\>����f��3��k�5���gIph���#s�oh���8��NQ���OX=��o�h�H$�D"�"�H$	��r@W�7�$���˜��gÖ�#�u��UakY���p)m�{Ȇ�)�#8l]�$���L+[@Rh�Fѱ���>[�uHڕM����"�5����I|fMB�2wNL�d$�y�x�t���F�8��g�6��$����
[w,� փ<�1�M�O� uzyP�X���a�f���F�3,m�O
��o��x34��g7�� B���|��CN/_�JI��RP/�丄d���77ԙff·Jm��h2[��d��r�…4']�l ��C}C9�~x���Ep�SzҰ��Q�˳fG�δNZ=����O}�� �#6��<'-Ȭ`ô�Lvy?��[M2	>nM��&ZXc�3MrEl|��
�Y汋No���@��kׯ�?�@�)�g^�r��D
���rR5����C�2z���['̚�)i��"j����r��E"�H$�@�D"��w&PU\w��r�QCD\*&ŵZ�b
wpA���*�A#��@\�Jĕhp
Z��5hlb�Q�P��i��
�(��m558��6/�B�K�$��f�ܹ3����]!$���w���Xf��z�O
�����]����e�;�6,�!�=M�3�҇���:a
3���DF������er�)�f%�<�>3a�!�Qu�Ƽġ[)�~o�є�K�Va	��}]�玘X��'$�i��TOSC�&\yܡDL���R��tK@?��I:�c5�"�����q����=���i�f�I�VN�]�3���7��!�Q�(K�mqQ1�.Y�qf�?j��+���2��^8�����3gɏ�ύB�R��f����E���]ǮH^
�������B�NB��6���=q�/�|^X�;�� d�D~v�ۧ�
h��6iA���D�q5��Q|1�3"2H�.~�@jZ���fF>�p@��K�r�֠�q�V�e�vy���a�|'ਖ਼t��[A:j�j:q�ۀ���s(d�f�Eb��Ȍ�{/�?c ۫����f��N�;&��sa�y;m�4so�!:��$y�ڵ��22��
=����%��B!$��B	������Rݻ_[����C�GD.[�8��a�9��� mý��Ѹ<���A��<y��q�H����uj��k舑�.]�bu`�ئ��(m^�b
���h9��Z{v@eG,Z6&d|�����z�;h�&ztp(��K�V�]�xD`[�C'�� y���匀�)�&�Cs�lz6`$�C*����#̓M�y_��Fp���6mqK;�5��N�=�B���l)>u�w���T�W��͕���s�+������ݣO�F�DIs�㣿~L�Դ��"8p���j��5dX7f��v#���^O��������(`|19�DL|���	h����� �K�^cƆ��ҍ��j���Ƶ�c��Y��lDy5�jb�M���xv�;��X�u���W�f�.�����4#��4gj��s�
���*����	��:?�٧��\3��1{P��F<G�3w����w�t0��3�!t��*՝9F2�����rrr�4�ϙ_��FYw߁C�[{re�!	7��--�B!-�BH@߽������{΀f��R�l[��h�+V��c��#P�'HaZb�	�0eԼ�ؐ'���	�ii����C3�5+�å7ہ0�0h�a=]����b�1�h�ێ�#[�V�ϭ����c$/Ɠ�
/��ʙ�]�>��I�o��9����r���~�����=��=�p�lMJIe��.s�/�츔�ävXZ�,�֨��:���U�V���]|(Z�?�n��gΞ{���)��[�M�7&N�J@���I�a���6�r^������ݜ/�ώ�]{��3����s�j��O4n�!8�nM�L�v횭��Ukn�m�R� ��ͅ���c��n�l���o,fvD纮1{��]�$C%sY"F~�q�x��	��M�lߥR�ck��sK�+�6K�j��||x�s�֐a�A&*z��0�=���q�{�w�`N���� ���6hشjugXh`�G-Ν�p՝��=���oL���+c���������D��B!��B!]&�î�"���CcSX]^'wڑM,�{������#I#|�<���3�`�"�s�2�%&!�33?�����NJN�˻ウ�=bH��m�_�����l ����&I##�S>�LH�i������s�.�
���x�m;v����'N~�;f�M�<2i_
�7z���8xh��u���k���K���&���T����3�㝻v�ͨn3��dqpYH1z=1��N'��\��IٶU
s���ŋ�f͗%%��.��঄�Q���L'��mW�E������&��ȕ�}Rr���3��%���V��y���o:�o쏋߼e�}��޶ge]���Y
m���˒3g�r���)(-!�B!-�BH@%����h�X-���{�>׆��
�=�'��ٿ�4��L�Z�*��&��B!�BZ!�����
h	h-��F("��ӳZ�Z�"�A�ޙ�jB!�N�ϰU�\�����~Tɡ���%�B!��B!-�E���&Oi��g��63�u���~y��V�S|�j�e���F,��B!���B!$�pB	h-��6�|6M1)ϟ�>mb�|�̣%�B!��w
�)*.���l4J��+\mK!�7ZZ��B!�B�ah�s~>+��S��8aZ+7o�X�+W����&�|������:ty�I�Z�*�w��lܼ�W'��'OZCq��l�.��-w��9b=0�.L71fo�%���T@����KZ$��B!��C@:�02(�óCW�Z��h���?`�KJ��AcQ'MLJ),,2k�_���QAN�k�m����u_��KLK>~�+7o�F~a���Ɖg]����4�ѥ�O�T��Ū��lm����ׯܥ]Ǯ�Θi=0�i�
��׬��ia�BH@�w��	h!�B��w�a=�}߮�yv��0J:J%))�al��Y,sl�j�6%g�u�9���Rbf�D)"a�dӜ�4�lm���w��6���󺾗���?����ߟz���_AD@�sz����;��a�
Z1,����;~o�y��Xiba���U4�z2oW���?�6#����\a2�^�:�y�=w�S���lg%&�':�����?�fp��!i�gO?�5�k`�ob���V^נ5'�mԜ	h�gX��_6jm�A-�2D@� � � ��"���,�u�5�X��?aO��#�G�̳s�jl�E=�1�{P[[۰����5k���~K�6����,��}�Zs�)�WVSsK����(f�/ڽ^�1��S��>��gM��ߋ�ǎ/Z�lyZ��5k'N�ffeK8����r�m������1
������w�8A�';z`�W�Z�hAAAD@?F}�f͈Q~���8Ш���v����?�/S�Ѧ0WN�4$0(����JJ��-��'�g��l�E()�d={x�跲����BB��#G���m�������YJ�ڌL�범Ԫ_�$��z��;~򖜜_o��x|�W�|�=����t��ꡪ�*&.!8,��A��2mF��Ⱥ�3+Q��E���Q~��y~4r�칟��W(�2�o�f��ڴ�M�A���L���G�D�����OWV.X�t��=��~�uF&�V.�:�W�e��"ؙwaM��xμ�<k��̬
�V���-yh�Kߕ����?�u�ph`p��M������Y����zz��7g��r����o�ojR@���O�a,��ܶۂ O^�h"�AAA�O����m��h~��{7nެw���t�%�)�k�Ҙ^iv��й���t�[��A�t\|"?_��|��&��[u P�g-\��K�3#IpF�*�oܤ���ڛ^>ßiԌlh2(��x��3���̬t
Z
pqG=�������j'��<����m�c�h�\�z�Al�a�6�;�(j�B�&�[7�5`2̼s�{��sչ��=ߔ�o^�����g;�D�)32�ܞ��2 Κhl�έ��޾����aÿ���Wtq璣S_R�_xQ�I2s}�B�� ݾ���޼����<�硬k7f�^J)8{����cY|j��0����!��*�15��zF�)k��ς�W��+��� �&�2d��AAA��л��ED�jc:3��ս������ѱ�?��D�"L�����H;-��J��;��KHB��n��F��͖@·G����]}�:�&�\����C�� *���S��!C�M�B�5� �iE��W��A�&�<Mdqi?{cނ��Yn�`��w����fe�htv1�׬cЊee'��x$l�~�i1����,¹s~G�.i��Np[���%�����4�޼����&�˙֖6�Ђ=r����=�՘��B@=~�M y��mGpɲ�^}��~\�l�&,"���d����&/
�iic�G�_�F�wC������ek�_v{�M������3g4� �-C�hAAAD@?r�fm��j5��>�Ο��ܕ��c��{큃�0�hb:mK�ʔ@�Դt� ��!PqӐ��޺-W�UxdL=�\�%�UN����nFI��O���I�=Ǽm{4+9���#����7Oꉪ��g�W��3�Ǻd��9�w`�`�8�&������*"^ف�<3R�A��ޙ���⥟�<ͭ�,������.>z�P4k��r�1ad�-���=���������J֪ve��b�B�ŋ�*+dyY���zG�^�d2�N��s�,��::.��R�W*��e�)�+P귳PA�@�G6!�!ZAAЏY@ciI�hea�x
�����h����Z���Y�����wd�S�$N����m�;�#�1�]z�dG>�`��l�-���
��W�5���tEH�u���牓&(���}E���������!Ѫ�6�
����ޕ�!��ts�igw��i���M-mH��ݑǡ��Ӧg������ק�������=�w�F��Z���)|Ye�凎�j�>��V~�����K���c8�񼮀�/
���bT�����F#��DnB(2D@� � � ���y�xR:g��hx�����Ep�_�����?m5
�!�p�_�~��ź�9���M�o��x�R�yKNKcsJ�?����Ke��)i�t�r�S��=��w%���#��D~��ο_h�̍ͬz������t@�it7�ԣ���h�����W�Z��yz��m�_������}�n*���o��.%K��V�[�+M%���q��6z��h����kys��ta�И�i�Ahz�A��ʶ�h���9�A-C�hAAAD@?Mw0iň]6��Q�jDT,WiU�)sH�"�SR��v���㥟~��И垎N�/\P
6mުhr-8R>�R@�.,$v���r�j{�uG'ҫ����gL\B��ը�kCM����G�[�;w^��ٖ���9#3��Z7O�z�����<��F����"����7�JB�)c��D�|jZ����u�jB�{OG���z4�LMޮ���x:�I16���Q���J� �d@ː!ZAAЏ\@_�\��%=��§Rq�D�7�FtZ��+�@�'�mM������$9P��D_������˚����)kc�cЕ?�rt��utr&�BS\9��0<:V��װ��tU@�a�֖��|����H%u�`O�zs�Y���p���R@�S�'Lf�ُ�ے�$�1ʏ�1�@JJ��Eᐼl�V������M̧N��ntph�2%���މ�>s�,O�$\��5� �-C�hAAAD@?R�f;d�5i���y���$W0�7o��=��D�,�L��Y�vl�WZVF���7]�d+'�U����;�X��+�^��б�V@cT=�}��b��Ϟ;�|JJK�+*PE02+�'L9Y�#�v����U@�9s�K/�o�"x'�I�M�1���;M̬x�w�
bFv��X���^o993y��h4���+��˺{z;��ɓ��+���t��q�&���\8lk�i��5��<�Ճ�0�ħ(:$,���~�E:3kcͭ[UUU3#��g�7m�� H�"���޹Uu�q��/�3Շڙ�4$�RP�.
(@�PP�%L$�E�*Q4H�G�_��ڦF�i�J�3	�b[�C:��d3�gl�-eJ��=g�^g��0���o	!�B!$����~��q��,�x�{�d��9R`K�/u�!���^���&���̓��l��"1��u1y���F��3g�;y�A�/�>�
��SR����b�2vv��jbst^�����y��g�2��hh���G���,�=z�Uᠹ�u�Sh<�a����np�Xx���x����t򗹻K��k^�l4k�ľ12�+$��w�F�s�ܬy���F�d@#r��f�@g
�_OHB����ܞi�����
n�ۤ2}E��ea|i��>�}��B!=V��6�����J@K@!�B!&��64���'B�
K����4�]��ƺ���y����t2=��ly��w�����u51Ȥ�S
_L�0�����G�&�{{GtuM�!�v?�s��a��L7�qHE3�ۨ��?^0�'���T4��FD�
��U�5t�y�{a�൹��Cy�Y-y�o�WY\�/L�YXd-G��35�
M��P�=�s0��ܾ�ӷ���H��v�SF�z��5hvX��)S������/�L��-�y,���2O�xik{�e��U�@7�r@�5x�a4��	C��s���K�<}yd<CV#���%$}y�ްBH@������`�+�59��X���y<\ݽ���Ů5h��{{{�$�x��Ư�!!��] ��(���0���2�i���$�����o���)�歧4J��J������s�>��: ��	� ���)|���!���e�σ��Q	t`C�K��f�]�ƀ�c��6��0W"����tu��0,��t&}̤#�0ş<|���p=�E⃃��޽����s�0��Lʰ��Y��F�%��-,���_��
=ݓ�?��jm�x����;wD*H{GgW���\���#�0dq�߆��77_##�����!��e��1	h��g��{DTlʶ�������b�]ܽi*����}����'SX��U�B!�B�c�c�/��<,�BXU�=���O�����n���׆k���.^JM�3W�H�c�+jBW�Pj�`�nWZ!�B!��t[{Ǥ�?��E�%�B!�������y��&���ni�URQ�~KjPHD\b��˭7>=��bj:2�~��12��Ȏ���S�δ��[�w�y��*kC"��F�1��c���~�2�%��B!��R@���++;#+����B1a�+�q�a+b�ַ\����^C�?��Y�ѱ��M�A��%�����fBrʒ�ȴ]�gd������7e��!Oc��U8b7O��M��n�����!�r]�V6j�9��
[SW���Q�fm��L	v�͙{s���OOC:�ё�3ciXd|R��<fQŴ�B!�B��h!�Bz<3�Yx��w3	�x�A�.g����Y���\�b�**��i����,���
�y���W�5S7Mcckg}K��m;x�~|�����������bWT7�G1�Ϣ �v~ᙹ���O<�+���}���PU�-�ͭM�72��As=���1#r�w�w���]��B!�BZZ!��8h�s�x�#(�6�on���_��l^��$r�?:u�:�������e{zXdLjzFeMS�嫎.�����ū�X��4�-��
�:k�ZS��>+q���7��˶�1�\=c�cn^~s�M
�C"�Vǯc.tl|So|�-�˯�Sd����$���]��B!�BZZ!���1GpPP�F.�۸�	�&�K��M<�+3��Ԕ0���̞���9��9����IH�8���)>p�h}K���ͣ��r)��MHFF��+M^)p~2xh��3�[M�s־B�7n}���]Y�s\��:0&f��]��B!�BZZ!��Gp�}��Qj�I����fc�@B0�kF@_�:u���Մk6�����v��Yp���˕���
א�(i��e�ʯ?y�gђ�eW=Qp�™%����<s��슧�b&2tPhdHd�4��+5����;#���vr1��~�vԚx.����B!�BZZ��w?U�q���0KH~B!�“��˃�#7�y��	�ClicD.)e�HR�mu����f]Tw�u�}|ܙuSll��g���=�9���H2@/��2���~�Ь�Hh��	�$fF�Y'��T(�>�I҅�
'GN�7�}нG�wv�$���p��f=0t���k��2_W�*S�S�w4��[�o�8����]��|�"_3.�����}��{����^�˳��E��/�l��$I�d�6@K��K�%��]�.K3�M�A�ypeZֺ��;q���ŗ��
�$fv5�~�-�G�]����+8�8?�\Yk�y�!_����i*6A��G?;�h����d�.����~�əqvz���=|�f����X��-I�$�m��$�S!@/�%�\l�82�!��'>��n�-(�T�����_]#"S�s�%��hV�]��<wm�ӱ��Q�2�1���e�����͵h�2�,s�N��	�%ьHse��=>YV]���>����C�Hgw߹ə�7��6^B��uh�$I�$�Z�d�^j�t��r�f\��f��y����A;�B]=���&(�U�T��������hf�*wr�C��&.�0��o^&F_��z�e���L�s[{�'ۥY�A�.��e�:R�e��إ+󬢦S3[��uAhmz{���@�v�Z�$I��-I2@���N@E���XSkg��G{��5���hj2�d��l��02�L6��Ҧ�}�z�����5���GrC�������.�ĸ4��VD��Jc�8��տo�[P\�׏e��텻����o��^�\WT�x�g}Ii⣗}6@K�$I2@�%I�qz�/!�JFa�7�'��9O2�L8N�GV3��M?�H���
2��oy�d��o�-��>C.�zh�*�L>������bU&w
�
�8�X�
В$I��hI�z	���e�������?m٧^�$I�$���?�r�ǟ���I�R�.~��7S;@[r�В$I���������S���ƿVw����;�
�^hI�$IhWpH�\��hМ��τ#�q6@{�%I�$�
В$�"��p��-I��b�N���8��;�QTDPp���DTewܷ(��""�`�6!��(�FHL|c�/4�'O=9�LO3�3�O�_:�r��ԩS�N��թT*�:t*�J�@w0����1���ЩT*�J�R�T*t�T*�J%��!�O�ЩT*�J�R�T*t*�J�R�?5��G~@�C���ۇ~h�u`�v�ƍy��j׮]6l��_:{��n�֭����![���;��QUi0�0p���~��?�X{��o�ݶm��[��p���I����>���mi�9������v�:)Pm�u�ֱ�-ijjڼys%�J�R��	�S�T*���tf@�'��s���.���^k���ףG�W^y�Dž}�;��۷W�!��]wݩ��:f�ϑ��>|�_|qȖ?�����CUL�8p���4���3�<�駟�Ż��sψ#���[i���s�9G�L�:��,����s���<L��j��w�)T-ZT�[��O?�����@]�|�G�p��4l�̙Æ
��R�T*�:t*�J�@g	��$�n@=c� ���.������v���/wา �t�")����;���̙�{@t�pw�}7$�޶��p�
�~��d
,� +
��?��}��Gk��a���}
�o���Oĵ����y���[o}��"&?�裣�:�^B��o�-T6m�T�[��K/u�޽$/Q��vu"3݋��
�o��檤R�T*�:t*�J�@'��O�F�èQ�N;�4	�vK+[�x�����F�W��ɕ5٬P�{�w��],9�4��hv�g�Aޕh�^�9��%� ��Flf��ے>�j䴶K܋��ʟ�m�UV'�m��՗��;d3mꭔuam{-��|�)�<�����;�4hS�6N���iƍgK6�mAҊc�צ��Ti����;��%��i��E	��WP��|��x��jŷ�r����m�J*�J�R	�@�R�T*t��ޣw���7hLy����!Cf͚e��В�5&n�ر2Kh�C��.]z��_=jV͸}���/��K����U�V�S�Z}�@^x�Ǹ�T�ꢱW\q�dπ���y,��+�d�M7���7�T�aL�3I�T�!:TBy�(�|��+�\{��&L0#��3P]��,d�Kn�����r���+>������C��K,Y�0����Qm�����={�l񫮺�]J
<x�%��ՙ��ׯ/V�v�m&U�<y�d�r���?��k����K��*��k%��,��1�an1�'Q�^�b�hF���:V�E81;��+XX��L�L�$}�W0������<�~����������0��4ER�h/_����.�(�$�I�=���r�����`�ñ�<�Hy���/H<[)�lٲ�Iu?!#����"^�&���{�^x�Tn��2�"%��M���ڳ�>;~�x�L�4Ɇ
cj���_�rʔ)q{�)���7�0G��&<��{�-���E/���[o�w�ʕ���/���
俖�X���jPx;��Թ�n�p����c߅=z�������چ�8q�K�G
��u�Y�T*�J�@'�N�R�T�̀�O�F�P�g�)*&۳gO���'�t��ѡC�BBT�^������}��9�]{���w<����ݫ�������~E`���Q��֭Je��E)�[FwRh 9lTK���0�[z����B����u����>�I~��@�ܹs��9�Co���0#���I�k�xn���P���'\��fd�K}��=�����Px��|����y>�Z��.]�cQ���<6x�`��O8�ѣGC�r��n?X,V�,9R
��v�=؟ō�
��L�e��ձF'�|��@�P��M�6�BW\�C��?����I�Z�N�̽ܮ+�.���*kx�ȑ��H���.����"zG�-��2�'�x�@+$b�V�'5Ϩ�]�:�צ�^E���o	�{�n��mk�KO>��Ɛ�p6{8Gd�����bH{����g#r����������et�B]�1�3�[����5k"l8�\�u�k+��N���j�@7)o��Fv�s"T4�
�oP�~��U���6��m^W�ʍ�
�f�ض�<�כ��F!�7�|�Ja����"�g��1��a�����2.�z	T]_��,�C�@���R�T*�:t*�J�@'��O��8:&�ұ��@�4�T����2T$�32vC�%�YW�{Cc�\@W�����t���ˈt�=�B���_u>�=�ΌI����%mS�0����5H�@^9�Z*��Y��j��	����+�\WJ�lЀ�$���1�
��@�ӄ���gfQ2g� s�Y��+m�]�R;�00�	�-�|�GF}��k�Bu�*� tak-?��-V32p-�!C��Z�]�H�n�a�Ę>zX[&ret+�c�ӉLvY�rcˠ&�6�^�ڱ�.�nu#�ڱ�b˷lٲ2�c�9���Ez2��cB�q.)�ZЖ5��	������4�L3*��D�R�����Cg���]�
Θ ��$�
�ꮂ��R�Ȯ��RX2�E)�^��k�#��"v���Q�CX��Bm�nB���G6_��ؽ0�؈���{�}��[�{cǞE��*��|�i�"�E�EK@g�ڪ��l�k1��e�c#0o����؏ީpK�p
@�}-$����R�T*�:t*�J�@7��
�C�A�z�J��/�ƈ�`������4�T����C,��
��E~'%r�F��BtWK��S�Y��h�%2΀�,��`��A`ե<pR�,���h,2�{=;�r�!�L�:��U U�}F� OnuA^�LK�N4��E�l<Wjg�Zޫ�R+K���q@g�"���U*]T[ee��ُ�����]/�*#�]�C�.Y�z���˲�Q.��+� t�\&6qo��5PR�yOp��'���IIgL��e'�H�
ͬ;c�u	��D���X�CU
��F!͌Ι,�)l�*����6�w�'��_G���+B�-Q�D�2#ew�F1/eY�l�um�m���ռy����[� ��'6�QR<�;;�%?8i�$����f��E�x��ƊpQ�j��|=���8�f��<�{�0wy�b�{m�*�쿥�4�n�rZ%�J�R��	�S�T*���2��t~�d�n���8��9F`Jy�RJ)-��i�Jim�:"*�¾)Q#5��CMъU|@^T��( Tľ��3�O����;�����~����g����=뮽�������x�„��DrL�	����؟EDOgœF���I��[���ЊAQ(��Pg�	�Y��)��?�ᷘT�w�pd��j�4����������T��*�9p�a�#�4�݄0��8��S�T'��D�td�%�QwP��/�R+�J�zTK0���R�x�%Pr*,�
�պ[�a��Fs���ؽ&����bRR`��\5gց��.�_S�(o0����SS-�Xn�Y �������lB�шmO��]Z�]r�3�М)ʘX2	��qc�R~g=����Z:Ý�1r��k�M��/�9Ж��/�Wr��}�%s)�
UG�!�:^r����ӯ,������%�X��_�oH�lrZJ]��[��S֬6okFZ2?��x-!�:��P��J�R�t�R�T*��[]���4Z��bF!B��'@����B;Q�I��-�Vbߋ���8/�X��Hh��g@�Y0����m
9��&�vW;A��
2��ڠ[�v�MG�5��8(�XsP���֖�P'ׁѢh���Yp�Ϡ�4�s�%�=�2�\.cP���"�3=��^�m-rYRC�
����$J��'Z�c�>��\m�&�����$��`�
�逃]�Lͼm��]ջ�Ga�蝧3'�n���!rY�[�^�L��y����iD���Z��FAyi�hM��|�²l`'o6��xC�ٍ�6@CCCm4�#&j��M�4I=��rS+f����;':�ro)��1�%�vb�U��}�n>x��j�K敫L�+��"!�O��:�@�E����������.���n�kq�&��R�T*]�T*�J����}zW�Y�ZV�*bi��ل���.���ڦ,�C�*v2ďQ:,/^XJ+qL:b�?�!rBlZ�I\5�E�f@���Wh���)��օ`7�˘n�T�,���P�pN����j��(�:�9�T��ҳ&R�M@2J#�F/"z���Pe֝�J�wZ��WZ��ؽP�<
��Y�i38�x��	�ϟ7v��@,p;/J�F!W�$[�Ȳ��F�KP�������fa�r%3�5���G;�M3D��HUL����g&_��PQw�^�N����]�;	��Qw�m;��'EFw�v��$�����'��hc
@s�m���2��_u����H	M�Y@�J�YG���B��s�|��h��9��Ȓ���)�n�oy����ZDO�B��WP؋��;'scS*�J�R�ХR�T*]��O���d#�;���ah[�h�q+��@�D
@��&r���P"pq�Бb��8�j�
A
�hѢp��;����Qf(�ԩS��Վ��&�۲C�ԏ�ݹs��(�,�0X\dk�Z��v�Ф9�B��1e���@��h�X�%�(����[T���X��80���6��1�o
�(G���bmm�N$m�8]�\ļ�U�}�I9čR�ovF�k�:���˟�H�4���MG.��1.)��nʼ�$�]
ppOyP[��a�*Z|��g!F���-�&vql�HF�N88�b
��ĭ]}4�>��#��.���5Uh�Y�
�'�v材gF�����͡��gLf���9DU0�F����(���~�@�"���4!���hk!�/�l�H�e�vt��֜e(��jƱ�(�ȧd��#l��bv��hPF�}�ٴ�_n��]�Ea4����z	%�G�S"xh�7��}c�r����E��ޞ�E\���4=�_ၨg������\J֝��T*�J���K�R�Tz��JЃ�����g����cC�T	q(Q�'�L�y��ܲ�}��@%,)c!����]
`�֡�):h/ ˨"���irr��9F�@C~�삞jS�JZڕ�I�=l��ڐ_�d��TG��
G]3���(�Y���Xr�4���U�a��phNd�t$j��>cg9�84��2�Y+���(`�Q���q����H��5~� �]����#���W���=b��-@\Ix4�a�9+j/|M���b;1K䣈�
�4.q�i��U�K�,��`@��Ƶ�E���d�}j��_C��h�,��5E3��]H1�uDH�~eL7$�Wr��NS>�m��'WLh���ʭ�nX:"���}��c���n�߈^�zd_��B{��rK4ja���s�����D5�*W��w�\��mP0�p���R`k�[%̐�$q-Z����)
j� ƞ��w��2�&Fhw�<y�)�J�R�t�R�T*��W=�M�ũ~f+Y��G�~��<�-���jIt��VW���!1��)�< �+��+, �]y܅IY{I�3#4�H�W�=���d�=�*���K3�ܫ��-��4 ���v�O�!��TL���zT�1���t�]�]��e�����$/E%����`�X"|�$��SrK��G�6ej'*Q^��ǫ���*6��C��Q,;�]�V�<}U�uv'a�G�x �s*.����K{f��rt��i��]o�85��)�F����0a��S%��A�
�?8��`@ø^TD�����k���~
�[�N�\�م��+G�x#�5�5ֆ��ݵ�<�8Zo��ϦT*�J���K�R�Tz�Rp�g�^�t墥+��,]�zv�rÖm/���lR�����<��t���4࣯��lJӖ�P9���޸qC่Q_��ghS*�Wx���'M�T*�J���K�R�T�G@/]�������;G'9~h�X�8���_�5j�韾��}r�o�ۇ&�~��Fw��^��1n��}%T��4��LR~�~ ;��r���º�R�%_/�Cz��T*�J�R��s'�B �H����y��ϰ��#���*����Y��P�~
|�kIdG>�^�/�ɳ�+��W��g�un
���ZBMrHn�75�$��?1:hwq����y�;�ߔ�M��X�fZ9����y~�_?�����x���_�����o:���|�������[�3�G���w���p��.}�{�]���7�|��S��v�:��<�.�ؙ�m]��S����4y�I�p��m{��i��M�j�𨩹Q*�J�R�9Вe<x�=��nvx���b!�v�r�b���s���Q�/��5�J�4)~��ٳ9�ӄѶi��L��,[���_(�L�NT��KN9[��۷�����-L�s:d�.���͛�le߹���Ya;5�n�I;���u�֌\jKy�����jll��M��3��Vf��6�l߼�u����~����&��\�eۦ�;6�lS`ɲdž׬[������_�l'z^:�Zn
W��L���G���tut�wh�՟\����*������營X�Ԇ-�X�Z���z�J���h�1�<.]*�J�R�T*�
@�#�N��x�bt�g�k���ŋ�C-�q׮]�Ν\L�<,�9s�{ibb�J��+٧�ۢ8��ݻ�"3Mrm��D���zhh��/��E��?::�
5��)[�sZ3������|m�n#���~v�����!���a�q�c��|Hh������68��f����s�I�-�}��)=�9�w�zrZ�h��+K����._��B���g�5�����3�vXB��H��[�x󭓧N�>s����_{=�w@�����~��r}|�?�����5�]6�&(���CG�}��~��?j�k/�.Y���~y�Wo8���M�^�N[��~���%]�T*�J�R�T*��w-$���p�D�xkOL_nL=k��S'���;��J8���2��v9� � (��ˢ����B��46��Ҳ�"�t�,�
�ڲhA��Lh����':'2��(Љ���QQq��s�ɓ��E��˃t�Wۙ�5�U�Sߠ$lq��w���ƫW�0`�4��*�/7���3ftp�wʆ
l*��fGC�߿_�@���E�
�h2�e���Xy�xq�/^��c�4q��c��~�� �j{kxd�O�>'N�h/�Y�H���Pr��QN?	��i�l���A��Ls����Çw\��"]@�O>=���6Xi��O͜#'�ԙ/�|t@�s_��~��r{�����>�����|�}�,������^����i#	ZM�Ƹu�b�:t��Ĵ�������s_}��Q��2�w�����_ϝ�P���g���ʝ~��x�������)R�H�"E�)R�{
�S�N�Z��Y�"�o�ȑ���?�x�駟.X�`�̙���z뭬���^zIM�,�qnܸ���O6m�4w�\�=�V�\
/_�\�
H�t�Λ7Or1��,�Qj�\�R3I�8z��+������*e�-�Q<"�W��,�LIOCɶ���ZBt���5k��~����_|�Eu��0g��i!Z3���D�����?gI��?��Ʋe���.\�s%2�a�aÆ),�}�`ʠ�:�.j�@�����o�]�d�G�=��+��;�C���-[؇A��^�|D���g�.f�ѣG���_��	Q�رc�V���c�ٙ3g"�u���f��P!a߾}L�)~9r�?JO6�|ms�b2M��y�#��	%w���˙⭔0=�#�m�]:���|]?c���"6��\�A� ��n���VDS|L��Ɵ|�IB|��Ft	u�E-��c��+ET{�:��'棦
�9Ss��$"�+��}*��[,&B��E4���5jT,(�N<��	�׋-
Gs��B"6�P�q(�>���t��O!A�����Ev~��9�g�С*�X2�O׮]U"|R�ӻ��p$����1
'
��7�x�#�t���	U-4j덞B��+{��G>X|J�;���¬�K��{��/F���3���}�;�Z�	 ~u�k7��e��>?�U��=*~���{l�S��G�:�o�:<��G�{�g�>?6h���G&ʘ޲m�Ǘ�D	�~����7��k�ȱ�>�l��N��Ԟ���?n��$���)R�H�"E�)R�s!~$=�E`[ZZ��R��{�**�@�$Hƒ(-�71���c�lA���;�1b���n/:t(���ݙ4i�DB:��Pi۶m7�x���K�ճש��5=^OU
�j)G=�e�U�uh������Z�*@j�n�v���ڠ W(����pu�A�
���@^f@c����1c�L�u�uׁe�b���:u��޽{8�����k��(,�P��v[VAQ*�}�#���Bɜ��<x„	;w���yhz���m$7�[�سgO�Ϟ���M4��g~A���ˢ�^׀͍ۣG�ݔ.���>�U��ԉB�-~�
7����j� ��#�6b�L�Hm�u(�� )�j6���_ƕ��&Ь�r*A�XU5�?���ֿz"����/Ǭ�#�X�F
.�D0+�3/��G �O%aY��q=Ú���;^���[�r&'N4�{��ֈ�4:��,=�ҷo_�����g�j����t`3�2e�����J��zzӕ�:��?��"V���LP�h h��F�tN1�
JR �h�zj�z�<K�6`��M-����sq@�
�Y�ɠ��m���m6�)���h^ҥue��g�B���:�_ŀ��h	?�Zn����	o��)������yQ2����"Wa
�_-Z��H��o���<j��y�{{�Y�z=R<��)i,�y�k�����f���[~ې-����ϻ�L?��,;�vn�:j�#{�P�#�m�=��?h���Rˎ���\��������)R�H�"E�)R���?�(!b���At&�`	B�����u��w�}���P(Y�܉yh�DB$:PH��F�2�U��GF0>)��Y�81h�-�L����`IX��L��n�Y���U�BI�	uO@k gl�P�z	��
� \�j�-S�ěo��L3��ݜ��>�oE�.H��[a1��]���H�n����T�Y����۷o����ֈ<�����Z�'�xƱO�G>qƝe|3�(py��飼@I��*H��ϸvyԓ���C��O��;=��Hgp�1P������_��ɺ�,g�c[���XBH��p���v����蜗�D��� LDy��w�3��C�E;e��M�X>|��L�(kl���H�������E�s
�Xx?޵�,�H�f"�ٙ��lV�,c����v�@^��@��� ���%D%fA��~���Yd<���g�N��[��9^�Hn�v�Bd�!B�?K���c��m�9��G&"�s'�����?e���.�>-�M�y�VHH�vdSo��'İuJ�x����"W)��������B
��!7y��e�r�m�s��~�%2��?@�瓧�99}�z3��3_|3��?*'�P�������ZK��~vm_�OD[^�7[������u�c'1�v�᦭oSc�{����s�E�)R�H�"E�)����`�Q^	"��$��b�4��|'4:����O�{(�
;H��b0(_]
-'��ٳ������T���F�Kvgޔ�h.�n�4��Y�p�F���qL�[Mk@k�	"��) Ų�ɇz����I㖩�%���D������:�F�i�.Π��mQ�7�/?"ed�jd�Ɨ�S��Dዜf�lBDU
3ljg�����Q@�H�fl��H'Q����رC��$Y=`��m��%c�0<"�ZcP�d1P�2�t���YI��<E�
U��U@�9����iK1L��V�gi�m��Z�h��*"�L6vhH��]hA�s�OA�OQW�4�H�e��c�à�%����ƚ���1���ΰ�z'4�?Ȥ�ر�X�JgTЛr,j)����n��h�=�o'�oUz�Brvf�d{�G�����i�O��\b@����|��ĈcKs��M�E�r
h�yҴ'O�_�|�Gz��|��Ta�`�����_��O�<L�ӎl;���
Z�g%8y|*�����>?_F����F?|����
��7Ĺ}����%G�p��?0\���hu��Qt�"E�)R�H�"E
���t h|�ے��_�K���2
1@<Bd�0�3��W�g��n��GJ-����$����%%Y��Aar�Ѩj�Y�a��Nh8)H���סah�1�Ti�F��$�pp�CƉ�ܺ��ؽ�N�}�L��ԑ2��M
�E��M:Ц���h�~aL�Z��3�(��Pu�eFS�/�es',�,����g�2j/ȇ��dæ^D�$�·;!�g=#�.=ҧ�Qw��Lm��RI����&�h�p��^׿��úu�X���*��uMCP�Z�f3�����)��������l}�.�]�h��m�ڶJ��Z�]@�*���K	�+u1&�8�r���*��1��0�DF@�ch�P	�mxP5knD����~Չ-��
����|)z��Ơh;>|��6��K��,������kf�u
��j@��:�r���7#���R�*пZ
h��H��{�����OΘ}���on߉��t�z� �klZ

���˘���j@v�%+V)�a-�m�z��i3�H�Ɨ�;{�ap��o��'�dۮ�r���nܢț�v�[w��H4�Z�<.�H�"E�)R�H�"@_9�Y��<�
��f��*m��^�t�{�J���T�zϲV�*��:p�7:�ߩƀ�b
�7���6АP@�8UML�
Q0$1��VM@n
��$C��O�����-���E@'kC�k^���T�98�����̍�Y�B�2:	MB���1�x���h�;L�h�����;&�ת~G�X\	l�De%ː��}J�����]{�.,NU��dI�r��QY�I�+�H�!��>1��J��؈.<ҏ!h�B�@2�@�3�!�LRf�ngS޷ސG�3kv@+ƒ&��Ni
�U�иJ�
�@|�5�b9���B�Ȁ���kA��󰷁\�dv�h��A]�O@����]L&�v�:��@��آ+E�S>2�)S=S�ǶGl��e��T>!���JE�9�@�[��YՂ�j�0QX���B��h7N@V��=��d�B��Vzڌ9GO�-]�&!/R,�y�_ޞ8y��<���ς��&LR���ɶ��ʣ��\��M%�[w�Q��֖����O?s�`Ԁ���~n��Z�X�S�p��{�B�/{��a��O=3�9�|מ�`�-����^����=%\�?ѫxw)�Qt�"E�)R�H�"E
���4$�tBW�cЧZ�Aŀ�xXL&JqEy�!�{.�;8;�4��� `qC�$ff
�^Н�Do8n[�ea.�Q�$�(�����p���ѱ���S��DQ����XM4	�‘�X���%T/8�$��	=j(=!��W$!�jq�HSm
���4,
�0��X�	�
w�y�L?sBͅ�P�#���QP]��y�nY�ԋ��B�KԥͳP	�*�֟YTZPe��7�	�4�Ļ2�Y�b�f��h����f,�H0��22ff��-;�!Nڲ!��_Yӣi
h���3�r8NQ����D����#<��$��#6],�Y�)�s�@�>�u]T#1匥ŋ3�K��6hk�9�5�5;���C��>�O|��,�,�aj6�~-M
}�al��(�b"K�hl� >LdU�1^ˀ��y�B�53��uZ ^�UC�gG����~��z�pK��P`����y^��3�����~)myĘ��o�a�^�2��������|s�t���}��7(��)�u���\��x�Y��9v���嫔~�7hl�q��(�=d�X����r-]]�H�"E�)R�H���L�����	��W+!Q�+��	9U)ư0_�ɟM�����$���M|$F�0)�U�84	]*���04�+�OHHfe '��t��1>���cE	�^JRF��	���cE�@���
�2&�ú�A�u��Ȇ�ŬK0{�l�J���\z�д�Z
)����(.��,����n�]-�KМ��9����ߌ��yd8��&�0�fTmFH����@B�K��C)�������>��n�F3�og��Y�ptB�I
h.]�ȶQAa�
�:�"_��XDxgt�a����F�n���!3�����+	x ��h!,���S���d��h;�9dg�Z�EKp�u�c��b�SSؚ�`a
	(�{�fm[b̖k�H��
D��f�8�3�� ���3���>y��uk�������G�͒g(nb@���|��~<ڼy3G�Q9���e@�͒�G?2t�w�h,X��O?;��(�f���뭍���?>U���G'��o�2�|tW�A�t�]�1|�#w�0tԸ)�gAφг4vk��S�Ϝ���Z��u�����_1t�۵��<��˳���)R�H�"E�)R����<�.�
�A�R7ˠ�~�b�AKp�ȵZ
qh^]`)�LZ�Fa�����n�\�����ª��m�eM4�������	!AN1EfALb�p�fHthh)S��9R�t�1 �S��Ѩ<vL?�.���(�_���iƔ�`e3%�jmm���:Y'����Z��p ����Y0k�6j����ԉ�@�9;��%8L�kZ��zګ\at&�A��U�+��9�@�պ�m���Wh��y��D�P���}t�0�2I�����3�7�&��h%�m�ś��V{��TH�Q�AT�04�������#@S����)r�����6௬^���@�T$
����}������e�⬋ȶ�$jl-�Yڵ��_�YyY�jt�Չ5���=ܤ�D{��?�W�VS,7�����w,"�W��ᬵ�/P����ɺ(�v�F��YS��
�^]Yv���z���j\ۤ�<�ED��
RsM,R��va7�&��esS ����s%�Y��|^e���X2���Q���t�� �/�߄�Aa?�n]�M�4�w{7��{K�����߮c���[�<.�H�"E�)R�H�"@_9q�9.�w�T�uy�P_>��)ѵ�Y��.��qL��s���uB#F�+8H�*"׸=��G'Q}"�S�ա}���h
��x��b5�S�4ej$2��fUM����]G�$�
��YjME{�y�R>2�;�m�)i���2f��So� !Z�.�S�U�=�k��:h�O��@-C����G�O��>���\^��t��7oU�u�f,_
����SL�j�DH��ͺ��$B������0ֿ��j��N�SXU���؊Iɣ��K)��Τ�\]��4T��±�ND���s���nj��O����Mcs	�����np|��Jc�ȸ~����5�B��v���b	�}�@�	
9�H����us�)�OtU�[�I�N��ᚰA�����. Y��<�~
D?����Z�#t�g���"E�)���]'�(
���PkE����<��SPo������9&���k�Z�e��/�o��F��S�$b�]�Y�LL[,�!�s3$k���YR�ņl��7L&����a�Y���nv�K-9X�����2��{���/� @�݀�M�Oh#@��#٦�!�lz���v�S������Mބ��M��A.6$���ʊn
� /������e�tuN��q��K.��EA���m@��_�|y�|BC�
謦&����<�.�+!,yk���\��5�\j��
����zuzbA�?@�)�rC�>=�	�F�hz?zw����Z�@����lz���Z�@��[��DZmh�LoZh������m{}��^�&�f�~|��R4 @@c'8h#@�^��w���44w���,4������
h#@S�z�1_���&?��6@��fNp�F����n{~��j>�68��?���=��ճ�|�|��&#@�wNvף�W����ۀm���'��&(��9��P�B�s�B%���rDI`�%xߧt���b��(\��[w�N�9}���ϷϜ��<����w�!8�O����M.}�>��S��Y����2�s��<�)Oy�S��@Wx:s�L�޽׬Ys=2?p��ѣi�(�����ϟ]/�����g����tօ���lٲ
�d�޽C��x�b�v[�>{��/aK��O����/����|���s�k�֭/��R�
O`�ɓ'�����СC=z�صk��G�9r�-��o[�5C=ҢE����={���fK׮]ݞ_|M͜9s޼y�[�ug�a�~��l�R��@_�йt��oкZ�3�yV\�4bĈ�C��-_ڹsg�6mb(�~�x֭[��Ǐ�@��3-zモS>��`�ѷ.�~�˥��K�=�ާ��흿�z��|N^�D���w?.~!�����M����O�\%����T��b�|������ٜɓ�^�����R�yIy�VV
H���;�ȹO��q�v�]=+jy�J騅T{��"�s��<�)Oy�S�r�E�9s�|�;�iذ�������~q�
Tl���Y�f��Q�o��Z��ꫯ~��_�'�i%���o���.*�����������͘1��n��o~��2��5kF-���k����wO�>}�LΟ���i�`���@���К�׾�5�
~ϝ;��;��K w�y'p|��U�T���[kժ��r�ܹ?���w�u�#�<r�رr�	g+u9�����c��o��ūf�ʕ_��Wz��Y��@�1��O����0a��ÊZ�kN3f̘
\�u�׮]�8A���d����7uW?�%,V�i9�e^��,�>��'��?eְ��X��E|3˦��xg�ʍ;�.N6�l�pԄi��ĩ���n�{l�ҵ��~?���-r^�r�??�ׯ���g��,��}����S�ڈ��<tv��/�;l�ū7��"�ǯ�9:v�a#�/Z�����.]�e��IC_=n��݇ϑ<$<z�ҜE���7aڜW�QpXo�w��{���߂���^\�|��׎C�eB�O^X�n�#S���t��_O��w'�_���>��T������k6��0u苣'L��ډw��_��Cg/�a���>���w�]Y�:Oy�S��<��Kl�.8�H��ߏD_�<��C o��iӦ�~��7n�<�b�-Y���o
6iҤ�}�{����	s�r��V�V�ذa8���ŋ�6��o�N޾��o��׊����׿����.�d�j��{|�ͮ��O~�t��k�Me}��ߦ.���-�^�z�g�-�K�;w��<�p�'���V�jժ�\p���Nj����������?��ڂ��[s�
���ըQ#�8��
I�g͚5?�6I�������$�	eӦM�w�~����w�۾}{94^��ֽ�ڴ�_��Z3	��A�`�P�Kc'լQc�eXg���r��T�z��S��/>p���5n��5�]�ϥ�[�jݠA��k�O#ߏ�h�r�bc=��?��J�>�aǁͻ�4iҬ��?޸q��u�ի'[R9	o޲e���e"Ǘ�L�z91�A���?���ԮӮC�m�N�Y���[����oРm����F��B������o�D��/{yk��G��\�z58��Ţ���L�͛�T�F��Q���[�9����
V�v�a���N��t%fEK3�hԸ�"��ڵku��e��1�Q@
�ߎY��5՚�<�)Oy�S����r����Ha椈v�'��H��=&xoJ����8qb���N�s6&����Pt�B؄t�����={��-�`cVT�#�P�	�w��H!O�`�����Lb��˹(x!���
,)ƣ��ӿ?��U4�H������!����f�6�pH�Q��+�8�F� i�;1��~%e��o��*T#�D~Ev��<4O���K3@�O�:��ɓ'���"��<��P ��O�2,P���V9������l��ʖnU=��[�H
��?������y�<:Vu>|���8���.��?2��%gy%M�7�T�hK-��I4��:�.����7��H�S�im�3��(i���կ�]�m��tu�����U;t��u��h۶-���ER^"9�HeЩ�p��ǥ�&!�n}���1{�ڑ-��s
)hi2Q�n?�"^���.���
�nԬ� n���ו~���T�=�"��IJ{�h�ʛ����%�r��;(A
�V�;�7����N\:�)G���;�;v��ѓ;�y��x�پO�~�z��#RE�l�)6[2�bK�N1p�c�k�2׻�=�r��K�1HGG�	�|�u��X��"�*EG���
+�Q
=T}e:�TD2�����b�v�ZR
4(t�g8�:����|/|y��]G��π!U*UZ�b�]����}�V��իU�2{Q�_��9�˝�>��n߱s�Z��4m�ѧ]�Φ��g-3y��)3�O�=z��u�t��u��7�E�7�9Z�N���F�������p�>���w�ޢe+����׎�����Rz��=�T�Zuٺmh��9�9Y�TC��"�c&��Q�]�z��/�ĩy�•~?ף7�4�[����	���U����2�~���l��L�%g�!�����D����c���S�,�2{���mg��;�^��6^�,t�+����@-�.��)g�6o�#���8�R�G���â�o]�!^�Z���f:�~x�ツ�s��<�)Oy�S�r�����7nL�dST���\x�����~����Ma�5o޼r��]�t�y�2�6C����С��~���q�m�|�A�~�ӟ�S�W  `���;�j��v�8`�ĉIT�}��C�8�&���E���B&��Ua8~:2�|I�����tE>@�Ռ�����z�NA�]�M�4)-F�J�PH�9�瞃9"� jԨ����^"@�!�ቿ��/�뷿�-c
�+&���/
y��'}S��ּ��+�u!���}���Y�D��u���2ʖ�dFm>��.�� ��/�K�Tn߾}�жP~��X�/��R�v���28�/�K�[����>c�z�|x��Hd�G�I�S@d
���֐�3�+V(��R�o�P���o**�v�z�dH�f�)J��h����2h����.�����gW� �_eQ�pdzx׉lmF�j�i^vm�D���` �ђYg�DӴ�Ӿ}{�٢��'�;���7n�s6����o/v�ԉ�z��ի�Yr܋q�y��ɐ�NW��_vm)릛nb�GW��ݻ�eE���­�W)4-"���0����񧞁�5{-�^2�+����^
���GBT+
(��I��B҇��.J֛�)���4�ä1���ws'��}���T�Ǎw��Ŀ��Ʃ4���3���=E�1nm�5*�^��c���_B�r]*�ֿ�
���I�H�-M�a[gg��0fd����)z�_q`0���uܺxG����,Snza����.�j@#ΦΕ�|�࡞`��~]|�G�
z.�Hq�֭�K��r�c�cbT�st��ϬԿ{�:XsZo4�Л�Y�j�C0�c�cx3�"�W��y�kU+W�j�>p��'��V�jU߂K� r�-9�oM-��<
�!w���y"|a���̑I@�P��:gɚ�5��Z�2�{�;��ӿi�fܢ�l�-C�����C�Cg?�G~����B��U�ҭGoC�dFoa�is�ԩS��a�x�{O��BX�ÓfΫU��v�%Ƴ��6{�*��or@����ow�ԅ��뎝<Sq�>p����X�=���׼��dh���o^*ru��k�{�شYs��@�+l�p����I3�#Ӥ�I"��%�+8���<�&�w�P��˷c��y�S��<�)�)��e
C�p`�D `�Ã�Xvf�q��c��f�5�B\,p��冡��f�KD���Ә�C�(��=G�0�y
���n@+��RvCI���0�L�ڈT��#J)XLq
�r.ʾ 'P%ϰVl	��Tz+a�	Ƥ���x�J�D0w�6��5j��8׶�����@Yћ�J8�Z��[�
dD-����1#f�x�M�� oH� ���
E�aX���2��튇k�'D<�D}����a��M&��N'��p����`X�QG@����S
���'��h�JS�"8,�ζK�����u1����K�>��eakm�8A�j�Pc�N�6͚��r�-�8h�*Z8=Ȋ$S�Nդ���u���a˖-��2e
{�=KEeК=���ҹJ�-������D�HK�qk��&��6#�2h^�ԫ"���L�b�hc��i�t����ps�U(����P�b�Gێ*Vq��V'+���	��AK����ؽ�*G���� B�4_c��
�BT�6C{���Nt�)0�]�H7#iU�B92�ωc�nUk
�,�N�ƌ�1�+,%KQ�g�Z�[�W/ԫ�q�(��ܹ#�JK&��u��^�N����UEu�6+�}oa��	Y@z�X��m���J���
�G���Ge��w_4'%U:��x�(�)t��r]*�6
�gM�]�U�Q6��d�=u�?�xfcj�8�5�h�P�����\Zrw[�P��Ҧ �-��9�����
�*�1U������n됺{cd�j��������o���ɐaI'nV�'��U�����0l�R�=��3$�aL�zlD��$FD���x���K�|���o��?@�f�˃+6lGB9s�%�fH�n߁C8s�R'�Z��놝��0p�	%�>-�<{a�*�@��X�m_���z��u7��.Z��F�j�+���Ę�p�+�17�K�<�П�m��"�f�F��:ٕJ��;uiа����4�jݶS�o\,���Ǖ�)��s����6A8�w?)��-��bhX�e�ճ��Q�Z@���3���-Z��A��VM(�����m�-
�@���7E�ln�镌�)
:�O�W.`�-I0`z���<ɱZTn�,\�^��+�[�N�@�D�t��<�)Oy�t���P`6H
���qr4�6�Bo���a8���
j�gIx�`=��?��K	@�C�;%́8m�WЮ�R���2�`L�� Ibk�f���0+&Mq4	:0���K0j@#D�l
��ʑ��UU�zH\�d:��&C,�U`q0C���)�+)&�.t���#~��=<��c֝���d
�Þ[�X|:�@	@gb���"S.
��0��LK��C-Ƥ
v��%h�5hU���2�
;�E�ڏ�ګ	1�(?��]���R��B��%�;>��S4�[q"������I�NԒ�ʀ��P����h#|��r�O�b�3~��ӽ�G.�"NHpXZ�s��E���/�f5�SI�S��F�Q�!z�}ä�j`�~�r�/���˦��*��7�n*beGΰ2@_��ҋ+jީ:,/!�К��V��&�%�h��t��t��5�ɡ��U�5�DBp�ih���87yι�E�D��|�TM�VAW�+�i��m�����kI�K�#@�@n�xt =�����D�g *!qm� 
��p�"�1�K�}��q���[�;�䟊�hQw�s�.��_�SǡǷZc	6��MÆ##h��B��?:���*�Ĵ.�I��.fi��F&��@���FG�Yz��I�J��h7?iSx���N����4��.X�LsAC�n��Ja�Auƛ4�5�e��ƹ�f�ş�ل�;��nݷm�I���'O�'�hw�^��F��g�_�}��Sg/F���:��:�7��e��hc;&;i��{�R��4k�\(	�6��m��Z��ԥk��q��o5P���g�Nv
�dο^B���8c�Sݺ�h�z��N$� ��{��y�5�.
��S�>����^}y4�[�r�+'^%|��n����}*����3��)��_*�s3��l�ݳ�2(8&���[�ԢL�}�k�i����2\���Ӵis:\1�iа��j!)\���M�@�40|�3=bܔ&M���ӿu�v3D��v���o�!8�<�)Oy�S���dpp"aɣu�PX,�:��t��
�����2N1�f/d��p���O?��Ԙ4��$&�@�ژ����y;g�Dv�
�̈��vd�#�&�$)��"�ssf=� �ː7���[���6	���f�A�%ƀ61f� ��YxE)�ӓM�5Fs����Ap�>�6$�<��,sz.@+2��D<Y��⒩6-0�n�xĸKB�g��@[�HZ�W���N�n��l��#�cO@<E����$4$�Xш�j�b�V~W�S�Z
jƥh�@��O3$�Ʋ����OQ
��5��&M��t�>��>��t�Dn�0�lmF5�@'g]�^E�TV �mMBӊ��EdPY�D�@wu�/��Њf'{#@qw;�M�G���Z�u��L<�S>
'
�wT"M��uS�i�
dp��U.���c;͐!4ɽ�-�m�g���C�٪�^1u��t�8WI��)ق����#��;];t��_������EZU���}��r�#�j�H�h��S%�*��[E�_BXr�_�w?\x�-��|��'�T�G����{���1+ҙ�juUl�	Ji|2����x�BRL4�8�9J|$����K*-64�b<�PaR��35)�zp�X%���3��0�l�K��2~��G�i�4
'\�u��m<�m�l��,M]xRFI��Q#G9^B�l�@�(�ʍ�
������v�8/_���p����V�v����?�/*L�ҵ[�Tz��/�gǤlK��r��c��%k7s���x�7/��A�zX{��W#���y۾��<|���l�#�t�v��aC,�݇�;׿�QT�Vm��e���� 9�<h؈9�WU���ܥk7�<����s��}
4�+؅u��Yd�GߪV��ӽ60.��ڰ���ֽ����V��Y���0j��<��W�•�A'u��eӮ�*kȋ��<�L��5�Q��C�t��k��F�T��ƨ�@�)Oy�S��@��2�����0����W2W7�G��JSzN�V�q��N.�	@�A��}�hΌ\����J�	^�v�m�%�Ac�R���ư,�c,��Ʀ0�D��<�&�'{*yU�ż^@3�聏K6+�J��3$�
��U`DL��\:�� 9����h�,��t����+@��؆�d���c�N�t���ⲅR�\_?@ː�w@'�N��UVu�Θ���cDZ#��H�b�R~B��[�XP�������!�KkEp��1Gbd��I�ӊ�J!p�IhI{��LlH]iW�{��[M���xy���(w���ԥ.ܳI�~Hd��o:�u��	�����j��Z䬤j<�?����ST�H�
ܼ���u�������Ⱦ�2�}Ru�[S��]X���v��ϕ8��<T�������8>=��j'�)v{�.�K��DB=��wV~�s���ѧɿ4�m��t��?����������1�䟊�hQߺ�V}�.��noj��O��+�i���]ߧ�N:=�U���T�V%�n�[�s�G�,~�pM�JЖ�Kк�l�+#G@>�˰�\�~3J�:q3S%SX ^2?#��&ބ`Wv������b޲��I<ݭ�iΜ%���O=۬y�%������!��+�:t�D�x�&h��3�;��3�x�����4P�A��w:�M�7�>"2F�A�
�휗۵�>��4l�,��!��ֶ}�Vm�^y���/��A/�;.�ŕ(�^=���n�N-?׳���N�1�l�kpC.;�����*�+�mסπ�ݺ��Z�w�>�\O_řڹBQ�}�U�&��Њ,4���=���H���*ȋ]����݇�Ðߺ({��)$t��V^�t�@�)Oy�S��@��t��gj-P)vf�C��@-�ǷK�Rf�p�Z�f�)�냛K�m�S�_&"�j���N�!8t�l�+㊈$�Ka���>�ϊ'/�{z2=���i~%[��JQ�K]�Ų�Kd�AE0���yU��^��Cq�4k��<����%�h�k��6��LK`T�@+N��z@�6�E �m�#�=H`	��.���N!8؉��T\�rh0Q=�:9-����0��q��zW��#�
s�%.6�M����Z����Э��,��n%6;vY\!�g���&��-��<�J�ԀZ%Rި�d�W��ҲZ5i�AlU:Vr��ޮ�Y�����x�[k��B�S�*��>ݕV\�O�Z�^^�:��҈g�un\��ơ�l����^K+�8��+�*�6�S�jG�sCq��7=��~{:��u�9�.�����↛nA��
7�SQ-��߽�?@���Y�DiЋ�JY�QZۍ"�ɘ��c�-H��uL)�Y���
?�3�IC�.
k)�PQ��5���V�N�m:��y�`�K�L�<���&[��+�fhO�TZ���uJdD1<��+����@���T+b����E��>,�q�6햾��W�A>=�
�t7.�mڵ�w?1���h����BR��-��}�|�6�J�2:,z.���õ���O���DB�
�߲��-rd��X�f����w�g?,���\���/6Wn����@x#"w�'�z�)�Tl�u�l�iN �tH^����E��_���՛	,�+ֹh����ӿ[��u�{��p�F׊�0�	rb�e?޼\��J����r�m%��2��}�)�5D	]bV~���v���G�2�I6�z�Z�*�
s9����Ԧ�@�)Oy�S�����XU]�?�(�P�j��L�4mc����[m�&MC@���F��f�RG�ja�b�M�XZu ��0
Z숈�OX���gr� w��L�{���>����N�!b"mNc�K�`3A�i�E~@[DH����`�!1��K��@d��GdǢ�4����Tj�B�z��9p[�
�IxA+
�z@[qX�c�W:>��R5����*B�`��p�Ӫ4���l��"��հ�,W^�ڟ��VmZ�%*����^�^X��hFP�Lv���[���D��b��������Ԟa`m��Aع�Z�*c�$����V5�Xޡ�+�T�`;�
�5�q$�F�-�Y�S5t���o)W�ȿ�Ѷ�"!(,�x!�kX�1�װ�:
�\�:?�`�`ĉ�=u8�Z��
���j�M��M�N�F��kN�DHt-DȮI1<�WwOA",{����e��4���#�@k<n@�g�Ռ_�{9��L��3��(��g�VDōS�
��N/][���1#�}����2�M�mF��)�I\�vr+z��Ǒs~f`hB[�:j��&T���+b�b��F���p�k��V-_WE�G웪�Q)D�4���ʢ�(X?8@K��F2#��=u�T2BDj8�@� �,N6��P�8�1Ob����v�r���7?BȀ�E�vt�O1�!]����e+~t�?��w����垻�{����7��^�3:Qrn/ly��c�r!��>�	�+���M;�力��+�	��5�~�)q<���j�e!���O<=�쳤�Ҷ]��{�-���{Ux��\x���7#Ⱦ�.��UW\y�ZV���)�D��;e�7޲����h�8-\��۴@�C�����.�9,���]N��A@sQ8��/[�d�r�}�ʇ�8�Ks�ی����YW���n��c݋[}#�e�m�sc�m�M�ᢞ�!�;��pS��5O�͑�6l�c{��m3�n�K����u�V�N��/�rZ��()))))))��8�[I�6�����I֜4	�az	���w<//��f�p6���ZY9
w�
�������ZY;����8jfzG�|k�`7�Jߒ��(���"�J4
�8�F�b�k��h%n����XÅY(��k��,�*#\�Ӻ�ZF�Wڿ4����RF�� J�d�k�9<ײEY"�+�b?"���<pJrZW/P�QE�m����N��Q����H�)���U4멠�jjĂb(+,ƗK�y[�)H�
IPE$��L4�}�uv����%-c���e0I�
��dC@0҄�p=�����J.�$ح�	�>�j�h.���sAvlnI��W�x\����b�7�X�:
h���h6$�~ٖ��o�2��h��6��|eL�)$�j����*�߈Y�fF)ʨ��M��A�ΰ0�ۘ1cZ��D�ִVZ&��Վ��*U�����p?ԋ�qL)�
��:�T�	I���c�(-AƔB���g��I4��p�1�(x�cE�|�kiq��h0�a�z���~W˚��!���\�s*�&���7a�û�%A���ҧ��⡑ډ/Q�!� -�X�@[�1��r&բ�hD��<�O�l�HJãH���.M��h�בjcz����(k�j�Π|��J-�K�&�.��:@�����ТC	1p�%ķ ��w��T]L<��a��z}�t�ƃ|���2c�5�s�Nʔ��O�?�c
h���,$��3�ԍ*5m�o��i�L)Ĵ5��@�zC:�ǎk����D�e�2ZHYjz��=���1f��B��=1�:��B'ÆG��/)'�|���"o9md���}�N\6��a'�_�fZߦ����p^��I?X���@(��9s�5��CBOĂu`��Q�e�X�����Ɲ�<���A~��^r��aY�L*m� �b�#g�y�!-&��o��bP���nO�9k�u��yC�����,�)�L���*|M�#�?�6)���/��/��V�CF�Ml�
�\>����+��b} ��u�tj�X�g|���%\�#��O�<I�ym3��G'O:�ai⣂?>�<���:�O[�K�m�j���҄�#�Ewޭ��+���_u�u�"r��|W5Gi�J��n^蛆?��R��>�’��������{�	?e?Z��b�r�w�5�$�9�����0\s9SnT.�_�Q��\R2#�&j�2�/��2�)R̯%58��]k���N�/�5%�
�K�;�n '.8⺦�!����`T�.�q�.rL���"�����E�P饈���~E�C
�g��\B"n�>!������Q#��Y�ϵ��?�%-��f*�*�G^D�����RԦ���DL�a^� 5~ȥYR�Z{��K��N�5���`1�豁"0BT�2Z`z>a����iE�:�'���r���Ų7�p�+'D�MQ�֕��zg1J�C���D3挗��A��,og�_gB��O�X��D1�.�L	��Pِ�L�����̩ͯ�0�=���e5���:ٞ��όR��;Dm����E}X^�g�p�͆�^�>i/;0������l�,�J�"q;SsWvY7�غsG�;?�RU���k�ٓ����fG*G���)Om�6	�<%�y��E��y�h�|�Y̭�a���)�����y��n%�!�
:�������`�xx�Q
֟/v�Oa�Ƭ��<$k��d����P.�Hk�UCyY�������S���+Gm����b��;[D����qTǭ�v�==���U�o�0C���q��[nZf4����i��n�|�n�q�p��6����7���L�$E8r�\��~:H�Ť����9D��X�Z.ä����J����k��As�";
۩�U�N���/M�ӌ�Zs��!�]A�񀶉�q޻z���3f^~˭��^|�����v/����^@<[�~ڌ�w���m&%�� N�,�4�U�<!}��}�o�����._��Ӧ�\�fm3��ھ�����:7iB�Tz�ϙw
rݵh1gd���1۽�<�{2�e���~♍�5㷳��p9��p�s�}.�^�\)�U�����o��v�j
4��8�|�����Z��wF��߼�w���e��QD{f\6�%ry����O��cm�ﮜ�t�����J�
�x=����oZȪ�x���sV>�ؼk��6}����%�o<�.)))))))ݦ$'%m�k��I!�Ф�80��O����FW�X�)yr�U2r�Om�?"i�J��Jk��k�r�Y���5B��_,��3�����m~�kV�왇�?i%qD�]�6��y���*��ؽ�jB�q��k���k+]�yK��n��0�dp�r�Q��Q��[�0P2���m&��י���?������é�iߦ<�%�L�um$�ؚھ�Ʈ�^��mi(�f�o���C.�B)_iצ��\
��>�������}�~�3����$��wnض��W�Ad�F8l���^H]A����q��)�oeD�]�+EJ��.�.mg蒒������G�p��}�=��(zþ}5�V��z�5|KywF�[N��%%O8���Ui~�|�TG����>|Do�eou�k壐��k+]���	=�&Vn�j>�q�g܀ZI���%�k�TF�}��xH�IU��Qi�0�&}Ν��9tG#�tIIIIIII�#I��[퇭�*2�%z�}�p�dA��6Aqga�O5b���`�W��gm,Z��+>�#+�{��t��
@�>btmG�V��������tI�a>B8�KJ�R��
�t6��o�
�_?��е�.��d���
���b;sS�W��������tIIIIIIGhT�s�򀮭t��-~��΁b�H�_�9���%%%%%%%%�KJJJJJ*G;۸	'=n�Qc�=��c�;�c�i܄��O:���km�KF�=|�y�"�a���u��/<��r.)))))))]RRRRR�Yz�!8�|Ա'�?髧���;k���/�z�E�?��o|�;O��C���O`�/]�dxٻo���{�|����v��A�>��������.)))))�0-��x@��p�q'�2�ܩ���s��Ž�+����{{{��3w���_p��Bvy
�}`�ʧ"�Ǟ0�U'L<5~/]RR���4��k��_^�^��:��2(�"ʌ��"(��e��IgdF&�Z�A@@��6�<O�<i�6�6i?���z9��ע��`���9����^{�}����XG�R�T*�J�h�J�R)��mJp@�g�y���?{��Ο?�W��s�����p���y��~��\Os�5��7pQ��������ϯ�q������+�m��l���Q�R�T*�J�R�@+�V�T*��?@c��o��1
�u��:���{�ܹ,d�hkn��`�$��7D-'�;-_����
}}}0�ֶ5�ìl�H��;odx8yK�=V�>�.]�KL�>��=V�R�T*�J�R�@+�V�T*��q�
���ZPx.|U�����6�Ҭ���e��0�Y�H�M�Qtb��/ؚ��w_^�ɮ�����X�\fJsX�:Z�9Pd� �^s�]IJI@�,�|�R\¯4��Ч�;�%\K�9kXыf�)��t�u�n^���W�0C>c8kZ��&>3SSg,�0�@c�*�J�R�T*�J�_@��|��G?�t3����?~�� �?n��f^B(Ɖ@-�.^lj?��W_}��M���?|���by<���'�@����ؐ�~�)���C�����"�u��/��7�|sMW�B����_�5ɧ�*з�C�rF�Ɠ�,57��}�|GgGyy�ift���[�m���3��x����acx����;'L���&*6������g��ɵstvu_�xi`��Yn�������4"Zh/
��/�@���o��L��
�q`���18}�l�JG�
	]�� ��4 >�||��|���ۏz ��E!���6�1B����4�J�Gw0������}]ܼ���}���fc�c1Bc'7�*�J�R�T*�J�_@�ڵ�7ڋ��V����|���QQQd��qS��ݻwWUU��8?��saaa��������^{�nZ�v���t|�w�Y�n]MMͭF��W^�zihh��/������ؤ��?���^JIIٱc� 㜜���ұ�����ӛ���!dy~�Y&2�R}�d@CB�
����-�sOw��2�nxT,��8EIh����k��{���S��/<4q�4y� ��9n߹��CBa�pՔԌ��v��ZZ[���L
��*��8eF6ED����8���u�DGǖ�L��=ֶ���;;Ob���A�646�X��,cOo߹�����

�+�X�y
����3�utt*.qu�1�&^�����`��ڮS�Pֶ��W�W_�p���N���y�
�Ʀ��Ý��';�YXT+�]z�����`Q1Ο>}��dWzfS���樘sgϒ�W�f�3-s���@�T*�J�R�T*�%�f͚�������tW�d��'o�����[mm���Kz�M��qy��0/H���>���p���q��zO<��M�L�S[[[A��Y������[���~�����ѣ��?���N¥�$�"O����{������8���'d���΢E���GU
�o�h)X֌>_ya|6!)�܉S���?Іzz�#�b��"��V6۶�X�b�)ɥ/��;�����)��=���l`.����wæH��U4ǁ���8q"3+g�8LM����wN�788��Gkj�S3��(����4a��������1���������(,��C%�c�Kˎp����2h�A!��?i㥥Gr���21D�n6662:��&ֆ�.��M�Y34���lCcc?�yk�������x�t9�>>)��<閂��ں�+o@�T*�J�R�T*�MZ.i�������t�����AO�~��s��;��FjooϯoyKyx�m��O�~��ٳgYƉ?�ћn�1cƌ7�xcTeq��***��~�������n��%K�<x�w�o�������Q���%�d^�i@N�n>�\t�x���e�RL�f3M�=�y��&���qص'�M&5�����9�U��t�\Ƅ�v0�e�H�.(,�srq���Z�=S��)q�ݓ���;W�]掎K�k����`tCC��,w*PO�j���5<<���#)iG����{H��#��]���ŋ��Ɓ�{���t��)(�M4-����5$Sû�B�]��#k�����&q����Z���u��%�)<�{�'L��+�:��)���C�7EF��^kʒ��'0;�M�؄$�]��薖���*�J�R�T*�J���%/��g�5�ܞ_��N��y~���z��%9�ꫯ�k�����/�茌&N�5+Hd~��w����'u������/��s�[�SZ(i���XQρ��"D���ڊ��S倾~~~�VS�Wj#�De��裏����x���B�I���=uu���&O��d�VWW�ǖ��3FFF���SO�zu��1��
?%OK�E��R!+NA��ȠB�kA̍�,:�'���H2��+����,a��9s��\&bY���_f��P<��3,�lF衇Xh>�)S��4����$��{�9��Ϸ�d��O�j�@�2֝x�U�b�Y��f�$@Ϝ9�>��#�j�,^��Ӏ�N�Є�r{��x"T�K_�I�n�Z�Qe����'c�WY#")�
�L�U�YAfd�H`��f4�aD�&��}�+#:È��ҋ�$Ki&|�s6�w�}G���d��i�n�lO$�	��I�o�{FK�n� ��/��]X��'�6�">��Q������!!!G�a\|�2�,s�в(/��"ݹ1�%9�R��h��@	�����>s��>L�.��hc	��f?RQy=�b�;w��z&�Sfg�P,jko/���XF$�����BM�9�s-4E*�Ĵ��gfo�QRZ�D�S�d�F��'�k�{�����c�Pm���i��3YG�9�a*]��WyE)դ$SУ���#�6n�@�%�f^w[�Rd�j$�n�9KKJ;�F�����zF�M*l�����Enx�1��5w>^ј"�*iK�S�R�T*�J�R�@�
�Z�p!_/�`p^gggX��MR%&+�$e
\�\���ӓ��'!I�Pv�?ҏ��!%k�B��mtww�-[���4��9`����	F���a>�H�ٷ�z��f͢����]=:(((""W�͛��[JT�%�G,�s��~
���Z�x1}���B������6��RU�2�T �� E{�1�3q�������2��J{
8p�W�0�<DZQ	d„	@3
V�=����EEE��#��6l`���˘9�'�Z@	�0�X��›7o�)3e�'S޷o��Y^���L@p����&1�`�3g U�nܸ���	
!�{Ċ�'�#b���u�H.[�neW�Hl��8��dz[p�ibPv�����ٍF�0+�Š0:�ƶ�/A ��p|AՐS��a��s�,�]X�X�z5a!bx(�(`�4�=kD_��s)G.����L
�f%�			�g06gYY�Z��ww�B�l|@�+H��}S1.눫��N� /��}�k�cf�	��3:s�)�E�D�@���---���@cb�:��@c���J��,~��-4(�Ed�+V�`\NadT�z�h�B������E	:�
�)q=��M	����k7yM�������d�ɮ.p0�Ђ8�
�u��7���%���y�[�۸���S�Ns��T�0��5����&S#7/�a���6�s�Ba"T����g��x���X��ds{��M�1t��
���BpC0��ؚ=�ޙ��]�:�t��O�닃�bS�M,SV?��XYu��zҢ�%�@����6�K�J�R�T*�J�R=.Kp��
!�r������J�-�,Hb#?���4#��PQ8���%՗'��H&I�'�A��y����JK~���H��"�PN���n�L
,(L�.@Fri�o!Y����|LS����B�i��>@�O�y��`2<��K{L	�^X��`�R����m��I_f��)�xY�ᧀ6bKK`II	����	H�4W�[${�h�l��$,S �{��`⤜��b�8eV��R�bNV5ɧ��[��PB�%��#Q�s�L�8R��e�,"�di	���E�\��U�Pi�^$�s�)�%�X��nG��^P{vΓO>���7���lk�mٖ|�@�Z���O@c�c���‚	�Q���	���Th8;d7ʭ�3�P+6y
�0�7V���P�=�3lDJ�!��= pY6��,���a�W^^�p oNR8Š�	�1v��\�&��p��f��g�ن�n��ٍ,1�ڳg�Pl69X�c��,����	)�EH�)�e3H3xwff��f"|pճvlr6Y����LM�;�D���hɕf�1&Ÿ����F�Q��[	�1·�րk���gZ��㪣Ջ�,t�R@ìy@��Jj�w��z��ʭ�y�C�a�q��{��;����R����@lN�'zVS�1�}&	�@ga��n��L��CW�!�8��Ԍ���`8��82<����ԛ/��ɩ�|S<p指oO��R��gI�1U�e��:;gǽ�
}!3k�y���q��M�vTlgdeK=h�����_�D��YJ�,
1��I8#�P�I77��VW+�V�T*�J�R�T
������
��<G�i�d��L��hҁ�`�x_@9l%{�i���4d�Z�,NA�c|ἂY

�pL3z1�^�� �X�ؑazM
2���7��X�Jj0���j�B�d�
��*<T4��pJN.��g�і��9`�|BX�z=�L��# @΂)Ax��d�@*�~C�(	�ć8��)&kh�@C���@�8�V�0I��A�D8�u��e0�a�bp�%�F��-[��-
p-p�92H�u�p
(�pL�Ĉ`
&\^4�Lʴ�P��[Y5���\,{	?e7�	O<�NB���, ��I3:kAa
F�r���Jz�ͪ�7XMS�KG@�F�X�8C@��XVBG�3���^eh��i�@S��t뒖>F�h��5��$��e8K��.p:J�7n�
�9"�Y�0]~@�2A ��J�G��\80�w�?vUe����t��"�b�.�Z�
)Ԓr�P(6�RD+�)t��P�c;��P"���03(���&J�~�Q���<~�׬l������d�7;���{�˻�>�|�s�e���B��P�������y�Cg�O��62@�#�-y@_�h�N��ӣ*�f��G�����~xʞ���ʯ��hc.��6��ʅ
y��Gf�<N#�����~���Qc���l�a⣎�{@����[P��എ���i������mۨ������/}�6�h�
_�x������� �0}��gr��۵s���Ȕ�#�;4���µp;�=�S=�M�OG��mS�u0Yr�R�\�C�Ũ�=�����ɟu�ˈq�H������������zTh���;ZE0���i0Q*���h��#�Z~��8��=��ؖ�eˆ��?�'դ��|��}}
@�M01i���ò�RA(n\T�т�",�5�S�S�a�r��Nbހ�5�_�[���C��*�J��8(�%]��#\8���X�|�ζ�}��5:�FnL��k(�E����_��H��"4y8,[��>Q��C$���X�n�	!���o':7Z䀏I�m�(�m'!�2� �f�ߋI�8B�U/lW��J��(g��Ӄ����Kr�Mks^�x��c�4F�O��ĦK!&-hk�F���c�4"\�v�0�7�@�<�*��v��C�l�E~$�6yh��%a-u.�T����`0������)5�F���Y!'nQ�ɠ�a�U]J��ͣj-��2<a"���7�@��p0�کa�8�hL##�>؄�E4�yڬ�y�aL�氁�r�8���Q<���d�c���,�K��*Q�ڵ�\>�T��}J�0�Ѓ&N��s}"{s��i������g�{�j����>X�6}�wH�q�+>�q���p�N;��?�7�W-
���ܼe�l�C���[�љ�RC��O
0�^y�mk���L�8�m�!7,����t4��㏱(�4�O��8Gk�.����S�l��4q��G)p��^��ٛo�����ׯW����S��:���媱��?n1`ѵבN�%	S���;�V�I������������zTh�ơ"�D��` �
��^A=*���p3�&�kw��*Bf�b*�…�r]�pC�IL�2I,��������s~��U{T�k)�3��
��{�*��t��B���
��u\��4�׭h�W����.�#q�o@F�����~����ZU����0�H�y�v+���xmPd@����ʪ�E��IRe���b1(�f
.C�&��#��.��6d���p�H���&�՝�"-a���*�bE$@p-�h,�h���17,��22�ƨ]�QoCl\S��عM�-Ƙ�5
1����k����:�4�%j�ܹ�U�̥h��&C�bŊ�c��T�K��_���EBTF:D�zA��a���(�Lj<a��˖-+��:Y��M��ʈ�A�j
hx�Q0L�FF�Q�=����X����G���3� +޵sg9�(���{QȰln�[��aYϡP��7f�9?v؋�������!!�	o"�\8�mc�|�
�q����R�W�0_��Di�-�����K(�C
F���ؼ�?�w�>�5Cu��S[�me���U����8�6YwG�7o���\�[�dͨ%
��ٰ�+-�n�ݴ��k;з��}mw7�
x���Z{n٪X�7޴�3�E?���n���Ït#��i��a9mBg�x�(�����˺�\|�n��	�G��T^���̀pa�!utf���C�6�YEtc�_(���PZa��D&���+�©��U�7��GmF�Q�	]�#Q�{���Y�/�j�Kk\�(�4F���(	[�����mG���RdD�����oU#
S��������;.&� �X4�<(��<�6��8<��D��P,IllC��+W�T8D˸#��Ee!$RZw�E:��}���kU ��<
�[3�l�G��,��h��L��M�R;Z]���F�l�']q��,���_���R��pֺ��Z��U��Rk'�@#�Z�Ue�K�
]��!	+
}}}V���|jq��hF��S&�l/�)��KY�pS�pxL
���B�_���r��f�42@��
�c�e�
�m�B�g��1w��H�A-w�v�5�힆��4/��a���W��j��-��k4<N�06!ԯ�P�S�#�CJ�j�p*l���S��6�Y��:.>�vc�.g+�ĕђ���	�G�Ɨ�9�Պw�W��>�L6�ˡz�%	$�,�W6!�{N�"S��!�D'������#��&/ac[��T
2��*pU��Sx�,b,��A4��* -k1)8ϟ��B�p�>*9����^�M?��#�vG������qLJ�H�g��I�E&�,#}HbQ=k�Z������n�(6��+S�@vt�mEj�.�M���t!�{�
�Z�dO�pR�P��hTH�5	�,�OPЙ��XH�Ỡ̄�eB�##�)��a�ly���Z�:ފk��͡L��5��)�j���l���M~��@J�(�}�GK�6-u���*=£��Y���hd_!d�X�<�û҃0b-]��g
����囟%?�[d��Wi1��5���~����h��X%�Y3ܓb�����@��=%��	�)�@�f�r�Ay��c'V<8���H��*�r%�ea�)(s����t���GG�/�悽$�8���ˮ�{��9��
���8�o���o�⏟�ֳW�xf���G#;�xf�c�=��?722222222@�P�U!�����ĉ����#0�&�^@-�H5��?��&u�&��2����|ۧW���*�
+�d^�����������Fu�/(Wj$�����U�+ǭԥ|,eC���T���N�ۊh�\��@q1EU9&i*��A�� �j� ?��u՜A�i��.��JÕ]�;�x}��'M�w�J{{{��ӕ�2dV����h�eAÛ3E<�eP(��`��21h �Ί��A�)Sz���BEFJ��JH4�Lsh�)�$t��Zk�$W�B�G�cBau���[�݌={�vc�:g
B���!�T�R��`�e �!Ra����m��3���eטx�����#)?�j�����'�2Y}����2
:N��}D�=>z	��oV�<��[��|%jl��L�u�gmF��sCb���I�^Y���`}	g}/&�a�\�3���v��h���g�b��Fz9uD<&�(�\���I�"�^6Z�0a�.72@��:��S�qݒ�}�Y�A�e�;v��7�����<�8���s�;�x�,��}�#�q��祏�x�����~������~�Gy���u=��3���Y#########���$��M^�<4%|��yU<���ݗ�8����
 &Y(������Tљb���&���?�Y���]
�[�i�c0B��r
�i�{�L�W�V�Nո�_U;i� �JVZiam&��j��ТVM!�n���MIe��B�bF���TT4���*AN(��+<r%��X��S��0�Ȁ6�(�)D^Ę�i 'zj(
���ԍ1�͡1��"�i&�Zb�--舳F�:��]u�����憌�P:+Wnc耕�TNj3A�D�#"�e�G��\�M!���1���nzP�eU�le C_������FĠy�Q+ӏ۟�jI)
��X�:Xu�1�j�8z.<f��o&H]\l ʍƢ�b�=e�`�\�[�=��و_�JҐz>?�j�B��o̫��}�42@��7��/�����;Ŏ�����'���^~e���F������q��-�������ݗ_}흷�l��V��<��c�������ʙ�}�����������c?(|�D�����?҂�^�'���y��.^b6222@�tЭ�Ń��#��̕�X�e����M�ֻ�m���k�8���.+��}���q�O_?�_����z���#�<��x�?J۟}���odddddddd$���9���`,sg�L	�Y�j`_�ۄt���Ztww�ܠ�nddd$�ޗ
���y�M�t�t�����:u��3�=����	���"����������긇�y��~j��o_:i]#########���WwLw�%�О���7�7�FF������4222@�[tCsy��ĩ/=�1�t�W����m�C�<�x�O��S�hdddddddd$�������H]��D�G�<��c��O~�R茌����wnAQ�g�z��U���)3i&3�M�7M<�5ɘ�vҙ�&�L�H�����L��iL[�h�& Ġ�
rj89�QDN�� �v���=��-���0;���������>��.^�x�]!��B!�4M�7�V���֐��������>�Pp�;�BjH@�B!$��B�;[@��r�ZC��4�9���{�뻆��X��+
�!-�B!-�B�u@kH@/Q@�g(l�Y�\u����w������Μc
������~�gRZCZ!�BZ!��#��n�A�ZC�i.�>w��O�V[��&�&���0B/$����+Sn����B!��B�/!��֐�^�@�]�9�E�t��T�$c�acs��-�x.�x&�x!��3o�7{=nsr����L��c��u{�����n���?�~���PՅ\mh	�+-�B!-�BH@khH@���Q窸b�3���x�ī���W�Zz��<�QklM3�O�SS�pH�1'C:u��F�	�s��tU^�o�Y��%Hs������0���lN.e��XWܫ�Ғ�n�)k�1�4���k�r^�5+��ξ��9��������/����9#�(~��B!���B!�%��W��m��lA�v�_ۓ�h|I{�(f08��}<"��/tq��
��['�l��'&=��-��,�/*��;x� ���7��%�S}܏򎌿���f���u�+�#�繙2
;\aO��m��Yb���>�n	���u���l�b��d�t�|��8��`�J�������}%��[����6��C��3��B���4v󁘳,,!��%:��;�p�v��l��ݸ"�Ž��1���|7���B!���B��&�����\�K
��g;�-i�Ŷ�����n��v�p��/����A�մ#����;~�<$"��S���0�36&�M���cd4J��`-.�LG��?AdL�jrv����\*cmR���>����\GF 
�:�:��%8��W�[m�*a���=�r��g^�B�3ִ��#)n%�y��"�s�C纆���sx�ወ4�&�wb^��bcدg�Ɨvf���9���<~��e�G��{�P�wQ�jX�C8��w7�����<k	�����`qu�gW�Q���(�H2���<ι��zo�^��ٛK@	h!�BH@!�з��j�	h
	��%|[z�ڞ����oE�c�9\bܜݟ��&�G*�5���j��i\䬛i�.m��/{��{h��wW����Z[���� A}��+�qa�C+.�I���F�Z�}^:p}�����;�j�D���‘xdK�b�ɓ^����+0�G�"%���R�]弑��&���$q�쿙մ�g�B@#O�PA7q��mcV-J��������4���on�x=����`F.�!o�qKn=���{�Kͩٺ�S���R�HeLL�/�)	�ty���3�	�W"�	7�ii�kED�F�.ag�~��–����R*זMf��ˤ��t���`��zwi�\���6����p=h���,>!Ig;�|��I8s����AK�(�'���%[��G
������EY�~oxQ��d��垩I�P�!�{f>r��͕�B!��B!��3�%�5$�%�т�W��#	���S���
�91�����e��
��kW�!%wm�'zCF����f�	Nsr]Z���nCMZ�՜��M��#q��q�fG�������}��x
����F��S�]Xs���x���r�4/��py^S7��I�Q%M�L�r�x5,�����Z���c9+�c.�f�Ͳ����e-���#���a,-9Й�fٲ�BJ�Pׁ(7'���g:
n�`�9A�DCȆ2�r8��*V�>��xk^��c�*���yb���o�=�^s�gd���ԇY��7��/ɹ��=l�X��l	-���:�]Ҵ�x�mF���H&�62�7˚Y8��O$V�V���<$�ߩl�2�uKty3O>_J���j8����7g��N\ъ�Ek�O3;�#���L:��W�Xw9��۪:��������t7��S�vnȬ��h�~*�&�Ts��,sel�ON���F��
�:_>���C��t���nr��j$���\��?���Ԃz�ȇ�OѲ����șN���B!$��B	h��!���x��w��mVgV����IÁ��6���ɰ��tZh������Z���)P��0'%M �v�$q�Y�,Nlg��%˛�M^�=�E��E�e˻
$��>����B2�i�\r�O������?����v�Ǿy �3�/�1pՍ��Izx�C�C�>�TO�i��ZeF���D�ݎq���;t���C� �����>C�1��l���O��]I�o͖�|�
j���|�l�慓�r�"�����=��
Q�M>�ȝӳ��a�%7*��nI��'�s5���_<����BA0Q�?�]�+��g��^r���P���e
j�,���Ӆ�>13˕\��:_���<��?��ZQ�՘Kl�%�_ǔ��*�2�y9�.p&a:��CN�R�*�ysR�淑��A,\��X�=���F6E9���Y�>~<�d>櫥J���3o��U�/,���V�r��a���;��
�_@*hAY�VO����_���]C��P���4�7$����.��|�ϼ��=.�g��C@f���`�c8O��ml�F��x��qljvjfn��Ņ�K�~�]x�b��,�ƃtSP�}�Wkh꣆H�<��S�ƭڕ̱����n����d���[v'S
	�%f��g�KY>5|��s��K��������h						��-M��a��6gj�UW�sW������<�
Y1�����z��
���>z"�9u}�AX�G�#����%v�r`eh�}i;����Y�����x�@C0㪻��_����}x�����Jn����%�)��P�Qf)�gfQ�Ǧ~S��p�2 Hf�*P��z���nYu�S�eY�����MY��>vS@"nȶ1U��4��Z?ݏ��8���4��bG"%e�����(��	�#���/%u�Q�;CXcG�Z��sso�j���+j��nM������k@��uAH�7��{=�
�#J+��	�B�
���P&k�8��|ig��j�^˂��M�����;��l|)s} �V���%7�RUF��c9�[rF�<6;G��타�%m�nON#��$����ȍ��3A�z ;��Id>��QN#X��|����;3�e�y���¢
;���2�+
���o�'�q$�f贏���#�b)Z�c����g�&���%$$$$$$@KHHHHH�-M�l����6(޶�J&(e(�O���	ܬ/G]}�� �sbɁ{4D���t
��Eq���5�jR�.�,û���ȇ=46%��j{@���V�8⫻���~ ���¢?�Sʻ�i�}Hho
�6 ��+=4?�Tvr�F���h5w���oh��z��R�>�Մ��߯	1@3�����zĥ��^���/��z뮔�t�]v�̀��;?����ٸꮊ@|kj]����1Ř]p�Ī�@?y���$I>c��E�͕#�m�k]T>��RR���gͥ�Kt��JW�f}1i�4�G?�g|�~u8c(^�B�п;�X�C�Ǣ�m�S��y3h����=i�����Vv.\���?rS`�?�h)�Z2#.H�f:�=��b��7�c*BI9�ˢ������X���룶�W����+0�_Fe���ޅ'�;��56���%$$$$$$@KHHHHH��C�	����j�1@f!q������@�`7e��/��h�?>�_JR
�e�=,Cc��1|P���L�ī*
X|9�����f�Fc���[���.��4�?:� s0v�0J����4���N,����N�wܳ?x���������>�Z�-dM.C��t��q�!<)z"�Ek�K�Hq�~f���_��>�����
�Ċ�a交�_��X<ɳ�E����ËI�J��@��{:��=��S(_��x^3)&��.���5ϝ���{�^�U�L0Ε� μ�TI�(��3)%5XofuϞ�l��3Ԉ5���ޜFc(�/��R����X�Z8/@��'7Xq��[H�bw�:��?p؄�^yw��#Ṹgd��� ��?���*�
4�Xy��L?0adU^@�3i���Wl.۪;+�(��A��������h						�W~�(��	��

]�=y�@���yu灪�+���	5=.���
��,;p����l:���i7��EM��eΈ2�f��Uz�������ʮk|�6-�΃2�UP [1�ѩf	�k"[�$��28�!�;b��zh��li��5���Y�m�G���+}��]
ha!��͂�!�{fsQ��|�p�c����!��ce$r�����TA�c�K;���룋�+;ɟ��`(�<��fEfY%�b$�4�����hY���~F�l��	�C�ߛ��м�#��z W�@�I�G�-�ڒ\�©'������v���{R!�\Tz�t��etr��	3e��F�o�}�K��z�"Ո��"�Y/��2r6H]H><W�y."��}����֊������O�G��˒O�$�kЪ�"Oc\~��
%uBM�Z����Um���������B7��%$$$$$@_%�~H�4�W�@��Sp
rc%F��7q�AY��Ӗ�
Y��@�v��>	.��m(�n��7�틣4�RIM"��<s���|���o�i��04���O�og��Yb��;����q����_<���3�Yl+���-W#�uہ���vB�K,��@���@7���
��n}���Oz-_�z��V(�m� �mY�][ۍ�s	�����)��Z �8��3����U��n?���O[�5Ĥ$�!�,A}��6��C���;�
^`���`Ÿ���Im�1��6�uw2�_)H�+_?��f!g��Q
�2_1��G�3��u�>1ml���C��[6���n	�[G'��K4�����1���ods�$�����4�K��ڞVۨZBq�x��a��>�.�w
���觭�:���<8��Z�M�)ө���r���^�$*`�"mZ���h_1@������F5; <$�~<�=����F<}�	?w��nSo&x%@���Q�\Wk�Dc����%$$$$$@��4�!�F6��w�dS�n�"d�����Hw1�pL@c����z�����<D����'�/��5��6�iD��Xd���W�jV��}a�9O�w�9�ŝI�ޗ�+�
����L�1t~�P
[|�h�`��~��Q�^I5�nS��5�*�qVw�j C@�m|�~��ƨ���Xs͖h��h��Q@o�Yb8`n�e��_x�)3W�2�*��J�`��`��!�zw�^3��Y�P�k�A���
�Mi���B�y
�����r�KR}�p6������?$U0c�4�Em7%Vbͱ>����
K+[���i������;��,X��"zRed�߈$Ê���hx.je�SP++
���u@�oH57cc�>��}y5����1�
�yѧ��f���L�n[�C�!�fg�r�*��l����28�*(�{oJ
�k~���� ��w��2,���ت������Ї�x�x09j�o�H���Ť
6�:_-9��_	N� ���-�x�!��ս#�JHHHHHH�������}Z<��	�V��4�e���u�5�b��Aw�G�-��$�>p44Ȗ!'��OX!
&xc�^W׃4�_q|:������E_i=���:���g
��X��P�e�+�@O #��{Œ�Rb�O�"�|u��O�"�@�Aן�ɞF�K�;2��Frx�iup�����x�,��
ie^4֨��1a��{����e����	s�"aFF�
,^j��t3;��[ߤM�{_�7e�@�i�K��RJ%�s#S�-$���r��J�c���z��I#l%ׅت�U7h�ೇ��ʂ]3'�1i��{f��B�����H&��H
Ȋ��˂������Yؗkw����<N����i����7Qm�q)=q�pdb���TO���J�_ǖ��?N.��Æ7Hf�?�I�393/B�ջSp�fα\鯿;�xߡL�R6'W�e��y�L������=|4�Ly;��0�f�|gy��,a�q�^EX|��\�!��{�-!!!!!!!ZBBBBBB�x@K�h���6�F���ѱ��r<%�B3��W���<>3��DtE�녭�:bu��"z��s���/^��T��a�|��o�c|pl�%�q��u�<���|V(��4t�9mu}�#\��ʁ�̥>a錛|���8�U��I�R���f��=��f�8�\�7�c7<4>
�\v���q� y�pIV%R���>�<5�WL��\'%:t
O 6[lX�P
���S��,[=�(���#%BCM��LN�ε�q�#��,���Z�-X�
�53��}�#KƏ��dE[�-삷q
�н���q��^��^2K��N05���"!G��:�dij	l�R_�$�ˏ��[5O�yPۇx<��������m��gv$��X�tv'��ƃ�-,Vۈ���o4������7:���+5,Gb�mh��Q�y���,A�����-!!!!!!!ZBBBBBB�(��	����b���e���W;��s����9��.����yL������9���y��D|�'��Nc�=W���n˔�Ӧ��A\룀�I/�I�gڳ�g�?��{@5�r����W�0At��,�L�ѣ�^+򮒻��e$�⫵_��l�{�%�Ж�Y��܎��~�,�ã����ã���|˻�%$$$$$$@KHHHHH��4�-��G9��=i�A�+���o�+��b��;DM���������7.^Zx{�һf�<����<��8{o��nNL���Y����	Ǝo\I�;���7��6ƐЌ��J�.D�������
B�K�^Fj�����0��P���wt޼���f8��7�+�T]=����kD$ZB�h�1�Fgl%`���z�OѤoK-�ɯ�W{@�D"�H$=.tEs�\�]NU߸Ro�Nk��:�Tr��i�3�;��/ʯӏ�I=���y51��o��ttK*I�lf����'�2��6���������w[*���H�厮��zWFU�фˌݨ������ڸ��|����9�x9��IM)ygU��Tߠ*���r�VP�'	��-Zb�ݝ��y�3h�7x.�"�H$�@�
��ά�������2�t��`��ҧ�.�lO��Β��7�y��j��}����Vz�fm������h}_䐵���ڌ�ӝ�Fܶ��kn�3�PlI�3;C��	�6b����}�t�n����i�9
x�-q_���SuuuQQQOOψ��{���!����|Q}�+��l��y��WԾ��}�->�-�?:'�x�{��jEK;)�^��p�6�.��&����������}�$�����i��C�k��	���@RH���v0���`M��>���G�k��Z��M$���`���}�m����l=8^t�K��h��-�D"�H���%�m>�l�����A?tM�?���O&�<}qSXnr�p�`_�6�D����/��6�˨Ж���ɞ����O��-t�z����%��������Cbτ+���>ʥF��Nh��[��9_�B?���"���Ov���p,�1�F�}�sZDQ����"����[;��r���5�%��=��%�-������H�%&��f;ݻ�;��q�M}nw�S�C����z �J#�&D�1�8��5:*�m��:��{­�q�$���J���#T"=�#��mnh��˃Q{�8�'��8-�J���u�P<������s�{���b8H���	ɗR��]�%@���-�D"�Ht[h���i�\�Y���}�|����u����ORUJY��(m�9���%
\�}�7�ή�J#��t�0�*[:\���^�֭,/�'�|�+/�7<�S�<P�.G�����h[���5���uOn�@�\�BW��e���գ��[�^X�]|c�xgwO}[�m�j��kzڡꑱv�������1�Ah�84����L�P�z�,U���?S����C��1�ZT�s�Ƿ=�5�AnD����ڶ��[0J�md`i��h�ºVi�}?�ͧ���'R�ӧ�[��l�N�m�?��
�j���B�5Cp�Z���ƛ�!5��_���>Q_��1���^��ڋ��&ZB���Ĩ蔒j�"�H$�@$���Ohс�"~�ƥ���_�c?���3��o�����4�D����)�y(�C���)�Yk����.�XZd,�ɀ9R��vnm+�ijϦ����؟]��/%����u��]�&�O��Q6�S��E�q�ܧ�S+�6>�S��Wf��d��?X�7�%���:�,kj�>��mA�_�Ȧ�'ph����,�C�S?�%����
3��2ic�[���s�(�}y$�WÛ�1�����3�Z~u8��h�O��K�[>�_�:�W�����F�v�s�$k3N�OnĻd`�J�fU�?��0|$9Fr}%�5=�+�L�8O���xv�	?��#�m��̎���9��mu�Uy�U���m�o�IEU����b(6N�<�G����xr[0���:yWhK�u��: �?62��l
�R�IO��7��=�1��yao��P�8�^���L	�;��@C�I��1pwT��]��o:F���
��V����>?�1���WTP����ʖ��e�o�g���S��}��^c@K��m
��ۮ�i����E�2���
��D"�H$=�<2*���ay�z�]+=���o�EMi�ۂ��|�!��c���`V�ˡ����m�������:�
Zv���q�SS��\��z�>����⷗����@�6���Ҍ9�K<�8J��;G�(�~��
��2�k�5֓��հ��g*��i崖�p�#��"k.�G�Z��״s��[���ԉs消��ЂZ����i��������s$�Τ�v�!��Τ�a��s鹰ºq�e�&`�;G�,�C�k�>�m�ӥ��н��;l�B��$(	pC�=�}�k����ʴO]��`|Lߒ�ɴIH2p5�`�_���z�����|
}��=x�j�?vM�\[~���a��$�/�0�E���V����ei�N0y�6�X{cMΐ=�;���z#ў��ˉ�:�B&j矚Ŭ�Q_dr�;��\�����r�Mh���%��ZOϟ\i0������7�xWT�*|���?
2~��NG���>��X�e��L_t�`>��l�H,8$@�M=e�ne=�L�sC	�Q��Y�����D"�H$=��Z;����%�M�l��u9U�eV�3!W*���'�.i�Nm	�U��9s���n)q��Ox���g�G��&�7�H�h־�7w7Y�X�O5*G��Z�
�8yW��<�T�3�m�O����S��Kz�Ip���g��ec}`��n�s���C�R�+"wE؅���.�6(���-4m�b��d!�4�![?��F�+�l#�Vw����@�V3(/;D�D��a��
#�M�چ䰍|��0�5ɺ�·��:��Խal�H*!�ȇ��:Jj�Bs~}r{0T���2�@>��Ln�rM�j�̳)�%�ڬ�>�z�5�ٌT�Lݽ��N"�<�+�%:�I9�Ɂ��Vz�W�`�z�g�u���9gSh$�~4};eOؖ�<�H6��y5
@�.ش��ë�c�ߟ��z;�Z?��0��6�N����Ǎ!` �Y@ߠzp��3;C�}i�O��O$��������J�K�=��n���.!!q+~�����3"�O$�D"�H�%<�G�-hj�Z��^�z6�L98+ah�o�W�2�.�냳q�([x���/�R�~}��q�-��?e�@aл��)
5����`�~���L��^`���
^�}Y�p{d�]��17@���L�>t�o���w���K�t~X.ոГ�%��O_*�w�/3������땞�|2�2+LLs��+M�n`ܙ~8�Vf��9F3"�#�&[���ٝ����@��m�͈�3x_\�L0���W��:�US����<��гП�m�g�r�;�^������uAY|vV8���C1�/�P�r�?)�^p����5�����Wx�@�v��T$�TP������e�P,.JWI,>�\BM7�ƜSqC�$[0�3�T\P�i}�Z_�A@�"�h	�����:�9��������Kj�$$$FW����ª9��~<��y~�H$�D"�7/|�9�ܱ�K��8�"�K��lu`/�㿭�é�ˈ8���W[�#p<�o�x+�es}�G�^�4	�$���&<1~{��^��"�t�`�0Ul��{X������9�3�t��V����c���<8$ۄ!-8����]�l���1A��Z1�
@����ZM�3}r�g����܌+C£�u���O�;�Žc@��TA���{�4��J>|��#�D^��tٔ�<��?�f3����>�6�[/>�Y�8NwNT�p'�Y���ñL*028��%�uY���P��^�T�}xt M�:�A=,:_�f�x(S�9{c
i$ϸ�̞_�ŧ�GT��uQ]�J$j��A4���g���/i�*��{�Z_��!Fdm�Bx���q�y)�H,8$$��F�c��R�����?��/!!1���C��}�搬�k�>&�D"�H�鳡w��YCN
pZ W�8)6��%\i\�p�����3\8uP^�����j=%�`Y,A��^l�g�9ÍbE5`H������>�����j�Q�����жf�Ma=�i���ΨV8���|��߈=�#
-���`�'X鮴�=�������:�:��&�������)w��)��pM�~Z�a����=.���d�W���0	q,��=���7��S׷ҫ<�E�7&*��Y<�Y���l��s�Sh��^�iN��m��%I�r�S�ǐ������@��@�x\����D;]��C�QnԌ&!��[y.�����x*�ͻ�{1y3|�A4{xd��8��ѱ�>����nv�%
�H�{�7��'��	fͧ�C1�~�dB	�o@�D"�H$���=��2��V�?ղͭ5W��?��6[�ʚVV���UK�-�Õ�jf�(+ͩy-R	S����I�KB\D�	�\
�&��p~���\f�~��������s���>B!nr�݋<rrN|!e�!��HL�&����l�G�:3��cWߏ�E:~p�ƞ����וi��UۛP��"?��fY̹KS��.�݊�R�c%��o�ԍZ��Q\�6b���M.~�Y�-�pLh�q?�{�e@D@G6���х��l:2�"hJq��tr��4�Mt/����������|NY�k��@nΥ�!�(!�ro����#r���%/nhc}H��g��D׊�'���9��_��cо~D��>�2�����67����_7��ZP�v�ҼƘ�Xh���|�>!:�z	h��F�N�n�]�5{I,�C��&�-t�;b/H���`e�qo'�^1��̊��!�坭9�Ա��v�,N.�ޠ|�\ℼ�Q�W���X�^��꾅q�/�W���.K9^�*%-T�&--�B!���������4�F�h�AE���fش��N���0�/���
�F�M����ɭ�9 ��)</	s
绊H�E���TxR�[�x�{^4O�N;i������
�b/r0��pב�!�hn,{M@�W^�[���hDp�V�t����Yȸǖ���
]��o��LmK#r㖿L.�@j��i;	��Q�xj���E�����=�1t�%.�|D@�ۂ�>P��Y�O�$��1c;z��"F�H�w�b,����Yx04�w��1<̠71&�[�A����j:7bQ"
��zΰ>�]�:Ţ���k��C��|[��G��g��Ǫ#�ȼ�_�)��T��[�<{X䚾;/(э��\�{}�	0�8"UG�J�
~ʎ\��[P�b*v��,��ò*��0��_z�a.��;s�G@S�^�-�������,�����I|�E|!/u =g�5!<cn����ց:z+����H�<��ݭ9��2&�O@����������dŰ=��<��8q���2I��'��EO8����|���7O-����=��Rz�ud�)n��0��<�6xvԡS��7��=f����B!�B��	ht��E��%
m��3�,>8�R�f�����侾1��+���]�#�vЬ]d��v]%u��rV�(��T�J��ȭ�����9L���R瀂�f���N3���"��Gy)��JS�̊�ԓNߓgy�i��qE5l/�2>��]U��l�a:�P8jm�Igl��K��>[�;���%ɾb�V�#3h��D�"(m�֤�8Q���:�Cr�t�Fe.Q���Q���̷i6L��:�ذ.�w�����VoןT�04$������⋓�K���\���]b��O3}͋�/��ť�ɰ/�p��, �h~t�~K�f7������G}��Ј����$ױm�+0�$�[�7�R]!BTwP47��1:6m�:'n��6�����n����;�Gcf����),��$�����Y���n���o��<��LJ�3|�xJw'K�*lz��6��P{>`�:.��G���AU{�܇���V����B!�BH@�c�(u�ǵ��������Ra'KlW?���ϴ�`@+E�>�����^��'|`5�D�U7;�{�2|���G��g��
Nx��f�?������?����t��o�nlR�K��Y�jt�ρ%"y��Pڙq��-O��@�˩�t��?�H����g�TW6��<a4e�ێ���T7��F��q�g��ܶ��cθ\�׮��lи�N�擮�}Y�g;.طîɼ�c"uw93��<���cQ}u���(0Z�]�O2�U�&-�B!����������!�FQ|�4�xDn%�ȷ��K9j���n�%����L@��gW���#a/B	hO4�Q���B!�B��Д-����uLJer{),c��9��CxǼb���4eӽ��Q�,(G���g�ҧ�:b	��
fMc�
�̯�O�u�I+M)o�kAA�%�φ���jWo/nH�'��[Ep��I@!�B!$��u� �"��)�*���jj��um�V7(�?V�\��a����iYUM�5�4rC!�"�d@<�����3��X0�$K�|m>W�w���|��jj�B!�B	h!�BZ�j�B!�B	h	h!�����*��$��B!���B!$��s�*��$��B!���B!$����njj�A+Z�O�� ������0��0���\8�hh��-@4ܹ��	��-@ @�h/�M�h�	�h@��L�hp�C�6�hh/�M��h+Z�hx��
&�M�h�h�h@��ٻ[a
��e1���&"ua���qp7�D���tU7�	��-@ @��C�A;m4 @��0Z�h(!@���h�Z�@��M��
��#?G�6�hh'�M���	aU7�	��-@ @����6�hhw@�-@��q��<��m߶y	�m��t~"�@~�RJ.��(A ���zj�"
Q_*� s��%D���9�-�1��g޿B����:L����R�r�B7��tJ)?�!���P�	��X��f�[�K?�*7�M�v�((@�&����-�|�|�f��	��-@ @�m4�
%h7�M�h�
h�h@�/��h@�/���6�hh�h����	��-@ @{�b�m 
a 
R	����`Č6��'�o�
� @�	��
��]3��>B�6�h�}�O�tm4 @��W��pm4 @��z��h�Z�@��M���y�C�6�hh!4Z�h���
�����	���ػ{�(�(���B��,�{���Em�,��/�0�������s��
c�Y��S��^v'����
�m��h���4 @����Z�@�������N��?@�B#@�
�m��h@��K���mh@�����04�����qJ�{��s��04 @�:@�a�����՛��Q��N:��sDf麟?�Zv"j=�"s���_�R},�����z�:"�����'w�~�~��z��v����Ҷ�9�N�Mf}\��F�!Kfٙ�i"~i�b�~�|s��0l�-�O�m�O��O���"DL�9�����u�>7����헯�O������n�.�^�v��2��-W�����3<�{f�>��z�}F���m��~�w�Q\��w�^{�zw�`�IdD��3"� ��9��s����d�
�1Ѱ��I3�I�&IH����=IH^(�=_u�zfN��wz���ޖ!C�2dH��t���w��!����ʺr���utjk?�����s���@�Z�6ֵx��]�r��e��<�w�d��{-.��P�=��~+b��>nFڠ�!���U��u��x�ٞ��盺�5�۾ͥA���:Ǩ��Fm��Z�GL
�}PZ�pvv��;�Bj�t�󖥾Sֽv3#�rC�2��ɩ��Q�OW��Ur"YY@v��+�<{��_M�	�ވ��13���R�t�kn���!�>|"�<�Z�[ij^/��/u�2dH--8�!�2dȐ!C�2$��h�/~�;~Zgn��>j���J�t�kX��
S��gg��HM�CJ��q�O�[{%[{'[:�3�m������BO4���$�B��-�&sBgǘi�h��������-�W��v<x���@�O}���|�����
����κzC�~%劣4��O/^��j����5q�}�d[���j}���3�E��	<�}�����k�A�1�r?{�\��'���Iz�k�e�%
���ؒF5:q��QhG�"w��;ɕ�q�490�,iG���N���n���Uqڳ*E�AS���ġ�nM��5�W���8z� �g���{�f�>�"+I�eȐZZp�Ch2dȐ!C�2dH�{hL��46lz�̻�.G�li�+�3�1q��L�g��1_�ӆ�3Ԉ��߆����3¯�mzdg(Fꌹ`�t����Q���̚���dj�:m�D`-
��q�A^�j�\ZҞ���	8�2BuO�kӸ�j8���Wnh��(-i$�@O@Ô=�
��n��DQ���^�-�ݱ/'�1	{�=He��l*��D�
�}>ܷyIK�3�cK;EB.�����C�ɜ�ʑ�CKJ�kG$�,W9Ww$�f[ưt�:"��J»y��2'�C�u�j���I�J��ȶ�
��k�j���%�\^
�Woԕ���t��OR�[��Z�>��q�^�DB���U�{�!�^d(�Cc>$+`�92dȐZhyH-C�2dȐ!C�	��>�Vi�{e��L��Q��{
���{Rv� ��
��y{�)IK�5�B�����L�fk�Իq'��_�=��̭�Y:�q/]��5�t9&�6���a�;�a�̺pOj�A�[pB��F�ҵ�a�}�0��e�P����Z{Bč�6�sZ��߲��Z��)���UX���J2��\l�3�L_v�½*E��O��Zӳk����]�V���t�ٔ�n9�����6`�ڽz#�%�"-iD��]��ԁ�Y�յ�q�":F���$`�3(���uw�|ȑ��-���:[�
����@�m�����hϧ��s��w���P��Rv�׽b�������Z�n��+�
[�c ?g���|��ڥ����n��y+,�قnl�{�&�/�|��H�y�z"��8&$�E��9l=O�ʇ�o�r\�a��v��Md�ǽ|=Ԟ�鳗����.,*l�(�s�1v:�0���E�q�#�Ȑ!Ch	��!�2dȐ!C�2$��4J�`�1f:hU�YS��2�����8m�x�gup90�����f���H˜u庡VSkb2}9�L��w�لR����,�B����-�1z��A+�;2N�<|��>�	m[����h�x���JCS|;[␰�
�Y�4�
i�>�fc|;���ͭzj4Y"�q��M���=�l#�‚\���R�w�.�Lj�V���W@��<�8iG֊f�c���_���b�P+c��v�9sQ���![�(#6X�0ӹW|�-SJ˹c�,ͻ�
u��z%#�f�T�ؠ%�ېw������3p_�^�e7��#Ғ�ڿ�d�1��!��	Y�+��Vvc�al��1�f"VjN���[�N6/���5�Igi�Ϋ�����҆�55�-[�1i��e��+[�z{
�A��BU�o�Q��':�5�z=e���	�n6p3��.��8Z܇��'C�4�I���`j�^�Ym�
[�a�ʇ���I-C��@�Ch2dȐ!C�2dH��4��@��s�55b�!���{@uu���Y_�. �ht�Pl��siz�E�jn��l~����MO�1������|�<Ƿ�`�5����h66ik1Y<,�w`�x\8�^SV8���=D~�!/9pj�v�/���Y��u��*5}сL8/�Ǥ9ڲ�CV�!�j������Qi4m��[ iHo��z���.����qs6�K���E¾�{q�N���sꏀ�<�=>�)��f�x���S�M�e�/3�
�>o�P;�΅g]���@g�.�`�AuE�/�)sa�Y���;!�ݵh�{���L��S4�>������	��֖��lP�}湟�/��	Xg(9gd�:v��
��kߏq��g�^�;e)�A�@�2'́�c�Js���U2t���}�����?�Fg���.�D��e#H�se�}�Vq-Y��2$��� ~�_е�K-	����|׮]�}�v^^��ãG���;�N��s~��]��d\�z�֭[o��H����C����z�ٳg�,M�:��…v���_K[�lٻwoi?~�x�ҥׯ_��h�߿�������G"%%��ʅ$C�2dȐ!�R@+�f�VA�h]1����*��]�+P@���~3�p{���=a��du�~F����8v2m�ĭX3r�n(����th#T��q�05n���X`ᰁCE�*n!
�]�:G<�Yw `l��ҥ?�"+Fn��<D��7F\����������E5��	��<�j�@�ܨq���摵��b0��I[hV�JWtF�^ ު��=8c0Ѐu:F�)s!��4���@vV���?��$�O��(��ѳv���<�p.LH�8	��;z�w�8�Q7
(�.�$7@�w���wʩ��7��0S�Ev�yG���`��˸�PJ
Ig��”_o`=���fS�
 6W��� ���%2���������\��6B�.�@Gh�` �
hy����qʔ)3f��믧O��lٲ�Ǐ;�Rv�[עE�����t������Q��!C�ԩCڜ�F�u��j�F5��6iҤ{��ovv~VvРA��c����$�7o���M�d�̙���۹s�[�s���*Thذ!4���s��)S�L�^�^y><>>�ȑ#Q;v,&&�:ܸq�2dȐ!C�Я*8�n�N�3W�&�@��fg]R &��O���[�HP2��Zp<26j-X0�d%
VC�/�u�~\���`ʇ�5�_�M��1ngd����c�k0�2�O���#u^������c��g�.��GO>+���wX��ZY����Ԥ-�2�xF_	ZXHg��#��C��+��
 ��,�9c�\td�gSB��ق�]�nNN�V;g.6�M
��xUЗ
h#[��^��(��L�6��&���x�/��Z�S��1}��'�U!9�a�˧�_���>�;��/7�#@0�
L�K��E���+֡�d����i��k���L���B��3
CZr��c�>���Z�	���<$����k�֬Y�nݺ���ժU�Z�j���[�ly��a�d��O�:ߴX,%6޴i�Ϟ=��.�gϞ+VD�*Ի,�j2����8q�z��Z�z��õ)`�n�D�h��]�N�jժջw�5k���`ǎ
4=z�
�Ǐ_�re�o9�;w�$%%�3���@�U�z��י�/T�~�ؾ]�vE}��h���O)��
2dȐ!C�@�~�lT��Iq��
����}�^(0^�<�/��A��K����$���Y@g�1鳗r�ݲ\�2/d�S��4;h~!�4@D�{2.�<Z��۹_Ф׸
�t�<^O��ࣧ�Ҫ�^x(�cd�;pI@a��g3
�	ij4����̲'��W�;��#bp(*�b\�ɖqJ�B�����w>�V}�.��vN��`�7�82���x7���T�١����P
�ei�3�Y�g�	�9�G�Y�ܦ7�ȼ�/"o�k�E�,��/�#
�>��ޮ��u�S��S6��癎'�	�;����s���Pds၏1
�n�Kq�[��=�P�@�:�dx��p �b��ږ�UƉ3At�g/Pg���!C���q��<������aÆ%K�t�رv�� i_Tcl.HK��3gΠ8�ܹs��n��Ƒ-	��T�ҨQ����;l��N�h%A�Q-�_L:$4��Y�f��ɓ'��m۶j���مga��f3�ب��^�i�p��9
�*�
�8����K�C=gdf��p>�X�̼%n%��[Ԣp#�			�Uw�M0`�
�'M�ĭ�͛7�Ѷ�f��a�,���-�J�_�].���LB(#k��ȍ��J��:&;"Nw�y��`ag���L���}�~�m�HDf+��+� ��F})�
e��9���$\����eV�*F/C�2dȐ�o�_�ȟ��'`�lM�����p=s랖}u�k�W~S�si�j
7�$W�&d�d��԰��Z<��z�&��b�L��ϙ�ް���r_�����g[�慜*̱��g�0�Dhm�l15heJ�2[�΁y12a���4.#�eE��d��s�|����1�}T�1a�X��V|�dػm�BEo��	zn�c����;�	�?2wH�������j�"a0+�͠Rr�eX:�3}�1l����h���k0YQ45+�#���Gr��hxjn�/4М��</��q�{�{\�W�����$N�3O�S4�ͥ��b��	�"���sy�y��`�~&r�ٔ_�#r��Xp��{HS���12D ������T^�ؽf#5wN�/�@�R-	��רQcĈ’��j�]�t��Fk\�|.�\Y�ԩS1}.@�c�6mR־}�N�8��,Κ5��� `�.]�
�5/��<x�…��q1^�h��q]�scժUP�@�ױ�u��F��o�>��]�bErr24K��s��O�b��^�t�t��Ehl�)�a�<x�ȸq�Ǝ�RH|BHq1@�݄�ϛ7�_.쌙����U�I���b�̻`���O�Y���ŋɜ2R̭[�
��>�O�>��>�|��#��ڵ+�t��Jz���ɓ�޶m%b���'O��E�B���0�ӋY^8nc�A��b8z����H�׭[ףG��۷3�bd�%.�!,��n�4�f�СTU�&�䖉��t�
{�f�����rff�m���(�+4���4�`p��ZEE�Z0���6e�B�K�|�r��W��zf:�r�E����^���|YV�\��\6j_.	��ˌ˃����KZLǰԁ�.C�2d�x!��&*z��RS��X}L�>���l
�G�]+S�/>��D+���pR��c���A��;�4@�)�Dą��>{	���A�Ku-Y�ټ+-yzaϦ�����ɓ��<�.�ay�Bf�~��YZ{'{V���4�o�#�<5��!��0���j+���#|�l&���X��&V�@gx7��Q���U�<dϻ)@�d0��|X�ذ5��u[yB��y'�.Z
���R�8p�WNj��GOa^���1Ӂ_ujEz@���^��D�ū���%�^����:�fRr-\
��ۢ_Ʀٽj�{ݖ����K?��66nˣ�Bc֨Zp���-c��B��6&�
[�5F��i���p^��l�m�Qk�$3��a��Yp`�a<�<0�����1y�F��6bɲx5O#46j���2>�@�E���l�"���F�1�;�}��6Y9�I2����}���8�_�#�97�E�Y鶆\��Һ1FF���%j�b1�
&��A=�خQ{�lCw㈖z����sW�^^vY\�~~����m]JN��/'��q�=��q����Q�$8�(=@� ���9��)^�w���J��:��>!�U�Vy�F40
e*���8��nb��v�C�/_�d�lQ��~�D�=u�"�6���m�s��nCo��D�\����z��ի�d �:H{�!%�!�[q%LB.\~�w�#I��u��$_�5:�#Idž�dc���ŋ�GT��q���Ӳ����7�c=B�Q����������F�N�7�`z�J̵�ӀU�#s,�
�t^Sw�y����G��G�0��8��~ˠ��+W*i��
�5e��G拓R�@�c�Y�ಹPK�d�(	7{
"_}��VE8�F4N���9���L|̸Ia�( �Xv"�^�6���LȻ��%��A���;-��N^�XYHm:�8�4�شf�^x�}��E �{������e;I�$�3�^1�u��ϗ��������th 
ht����t�����'��b��B�����%7� y1����
�x�UY� D�.f�N�䝼�fTH�l;��l{x�?�Pz���O^��ȃ�=��ؖg�qR�LXl�†���Ei1���4+ZR���xo{�FaJn�=M�XjvD�۠�c�=�,�)Ҡ6&�?"m�G�c��'{:[�� [���F
4Kv�~�wsg�<�~2����~���j��c��44��Wpy�2��;�6n\�2;�q���h�xjŗ�.)�����Ώ��Qf���0��:��p���[�\�r4}��m�F_|8�`�!��B��ˤ��.7j����g��!E]�����{:��[E9���֧ry6my�M_ĸIW�$�mi�M;���������f��/h����y(�h��/߅t��qk�f��ɥ�\�lv�2喜�L.������7�W}���ee��Z#@A�:
@�t�\���Ԝ�^6�O15陣Z�G�P�c���9��tT��U���JA�N�R�k�i����+�����Fy��y�Nai��
�u'�Uײ�U!?	��7�C��|[T�ed�%�F�C28�
���E��Q{qH�$������M�B���r�J�R���le��b�(*f�Y�.�Vp�}��z��=͠!GdcӦM
���z�,]6��XΑ_�"��G����j9/�p����+�
�<\K1�9)'��25��`�F�yӝŀ;�ڵ+�ݺ@��
���?11�_�*�����f��=7x�I���;ܶ����l"�v��y#��6�̂A���π��/�����uM�f۶m")�.^��g���$7�njTԲ�}���d��.�KI�U;Ң���/�;�z�t{�`w�"�M�`
,$�6_VVVVVVV���l��Ŀ�uF��?�$;��;^����(%�-��j��g5Hi���M��Ćn+V�2�o��=��Ǐ���q���	��LGݮ��Pff��Nt��oE]Zj�|�tt��8��iy�)͊��*�^·7�O�_s�@�?�癿�vn���Cm�ʝ�#GOM�v1���0�Z($��NOsI�����7K(f=�x�$�֚������8}��̞����d�y��cv�Ԩ���|��������`)�y7\����p�fr�}�dU�=<�?<��*N�v.�ٳ+����te@�Qz�Z0���9
Q3��%� *���@c��)N�Q]PLalTE����%���"�P�[h���O?
ၧHk�h���۷KF&1�M٣�	@k\E'm�@����6!K� ���ܹ
4@�ĪŇϠ!�g�X$R�<�MW!
�`�-[���SX����)=EHu.j��/ ,n��"�S����5whfD0L%ٓp�Q�E	�j@Ժu�7�a�E�C�2����\{Zޓ���B�;�#�Kղ�
�[IUd����gZ�fJ(���/�����h%
�*JaB'����^Y<��-�������ƈ� �`�)�x��@W]�Z叽1�Ǵ�Ծ+��(��׋E"3�%��m�C�R�ɒ$��bf�5W�}j��ܘ/++++++���2б9�\��W�>{���cx��2�V�>-t��W��%�Ƀg\��,d������ڄ���}���@=~M�*ʉ���<�!匷.}�q#��)/����q��:	(7=
�Qy(��Ȥ��6�3vu	M$�5�xܹh�Ԓœ;|6L$1��T�@PXJr̹_O�M]���Ol�I������&n,��^DE��/)]S�Wd������G��s�Ŏ���%���v��hs�~C���
M|6;���bs眇8��]���&	�&,�[_�}��d���A��J��Nk0Kk,�g��I���0�8{3J������X����h����vi�r�i
���
���}p;���1j�a��V����ib�L�Pk�gO�D;Fͬp��I�eeeeeee��/���&�X��[|﹟�%rn>t��=��!M�_Yc��'o����ա��;�鱙={|�[�6�
}�;?t��w�	1�gJ����te@�QztB��]m۴(Hk�ڌ�adj_
R;1S��h������0+�)��m�xQ�l�QnFӦ�ڗ��ˀ�ҥK�9�ʀ/\��8>�hi���@0�˼�u:p[@S���*}����&^q�@G��TF1���x0;��
@G���"�:��5lƉ�p	]UҸ8��(�GM[�W>'���2�/��E~�����N1\�]?���b�l;%ʤ�r俵���	
���mԖ�[u�7�9�z��@��Q����'��2�E �1k����8푺�X�
�j�f\_����-�6�Ztb�m�ܪKl�7"o��x�x�	��ƕ��;����������4@ρ��ɗ^=���K��
�Cخ�RJqjモ;^��.�}f����� ��o����_�ݷ��RVVV��]�u�f@�p���
#��?�mÆ
�t�t��J+C�����‚7nl	�x�)�h43/-��d@�t�kt�8zNjP��l��@�yh�
��B��v ip7T�xƧ��)�b�~)t�*~>�GOF��D�J`
���	��wu��L��O�Ši�+���1_�3�����AI>;�������z�6���2�!2܂�͛7/@�Z �2�-�h�{,�Ό�ۢ�Ӷ"��e��N��%�ѩ0�(wgD���<A��xnP���mh�ׯ���B4�h�BD3�ևX%���B2��@���4�1=�0��h��o�y�媛q��FB=�y'8# V'�4�r�nݚ=�9_VVVVVVV�J�,j�s��a'd����Ew�m��8ܩ�BE���
@Wt��hDC�Ef�YF-�lW�.��z�!呾k��F���&�T,�8T
*�%%l���#�Y;��!n@,�"h����zNbp�'��D�V���!��V���`V��L�@L�v+奆�Fv'�S�ʻ�G ;��&�
Ţ����_!UQk���FQ���I��(��6�S�tIICn��k����=�&���4v�sS@�‚Y�Ǝ�PKϚc��XM�%$�M
SF�-Z�_�4�ybȆ&��V�G��ǐb��d����
G�3��s��>
�G��e@�:��Ly�H�ɂ��&��s�+㋂���t�4|�����Zs�c�}�M~��z��(�Pݥ���������������
@����y�_�>'8)!�ܦ��y3�L�V�2U�Ԥ|�q�X�jS�l�y0`j�_u�Uإ;����j҅��Y��@(+q�=CK���ܡ�5�ʅ�"���(�&a�	)������\��s'E� ����8�=�j�d�"�!a� x�<�`�KB
a��`�خ�����i�S�Ƣ����z�gX�˨��q��	��Ą�ZPLyX�ǃ&�!z��fk��,�<1R3b��?3}�����,'G^��W3;ڲ4^U�����,f3����/^,��hn���b.�Z���-+!f�������
?�
���n��ӂ��g�G�]�~�p�B�h���(�Y�p�٥�"�iv[�zI��xo���›�Ą���|X�v�!�:
�fN$���v��w���;
�tmZ�:���������@�.+++++�t�v
@�q�h�@*H#��������F3e����7J-�Z'.)��� ����������1t����PŴ<j�#���\W��*U��j��G�C����(@f�{q#槄cƨ��U�$]�t�~��۸��Y=��'�M�Y�����}RV/4�yJ�{�I����9Kf�Ӗb<�Ak*�M
�52ANޫ��y��7QS�iݶ	a�Pw����|����	Z/�"�f�E2�o����a�d?�^@�B�nEݵ]+=��
Pp�`.�`�X�kC]���j��kP`[�-D�����-���v�0���R�L�:��}����"&�Fm�-��cZ�H��h8��������+�
@�������t�/�.�Pt+1VN+�>_6B��&�&H��Ҿ �"�&F���h���Ha^�f
�n��4�]J����������tYYYYYه:�s�]G��Hp�~ETe7ϗ���j��;h�P�p�A_�^�=��Mz{��������?�ݱ
�0��H��:!"7X3z
 �V�4lz��&@�Fo�.-t=y��M/��Tt(�����?����"�C�K�4�m&@4о�6�h�_@�&@�
���	�4 @�Np�&@�
�-@�-@48�a&@4�Z�6�hh�h����*8Ƙ�8/�h�ٻCa(���� �Z**��c�
�<1�L�7M@����t=d���	��-@ @/���	h�Z�@�n�c�j�N@�
�4���-@4�f4 @��
�&@�
��|��#@�
�4���y	�&@�
��{�m4 @���6Z�����{���
M'_V��{K:_u��g�w'LU]�ǿ�*�ޫ�N�:S�;���8+� �Ȥ�"2�29�("���2�(h�M��۾M����zv�U'x�9{Xk�uNU�{�u��k@�#@G�%J�(Q�D�%�
�2��?�����w��$L�&j����x�	=~Q�<y��)�Sw��k����oa�<����$"Ѱ|K~�6��Q"��:@G%J�(Q�D�%J��T���Å��k]��������S3s?>�&�4�|�@Qm��i�յuW�v>|�WHIN��3�d��NL�����,s��7ԟ;���won�E����������əY�_�	�������������܎��LV�Ɇ��4��d�Ϟ=c����g���<R��xq���?���;~jh�s�G���9o�3�^E��x�#�(Q�D�%J�(Q�D�����-���%�O����+;{��)�N�2$n%����W���•ug��ar���m�C#���釷dc����R��ɚ��w8Y=�ꖫ*HHKίn����ݽ�Rrc_�d�WW]������Դ�I�&}ٖ�"4[g������k�f��9/tcd4�����O�ғ'y�����#c�?{��^+��Sx\�޹?�L�_��
_A��Ճ'����5�֦��#UKKO^L�Nx$���*�&?��~�)^Rf

��\(�_�v��VS`�G�;
��>ٝ#�9j�� ��Xe�_���_�pu�t���N�5w���~F��������	�x�Q�w�VaU����G�f�à�G�Q�D�%J�(Q�D��W�om<P�څ�u]�~�x��EJ�jq����ғD{p�ߠw�,=y�_�$�������륱�.��MB\I�!�ðaF�A����G{$
�>��!%����ɽ1|W����v�OL��e
�v�JY<ǧ��n��ߠ�z �v�'�d�0�8����G����p��F`���dGuv�Dc���\b�*݂�&�gf��o^�bd�p��>*�@�%��Ѵ	&'�;�ɲ��K���YC�PO/��d����M��0�yy��!�����;�S���d���~��� 뢱��p�Oa�����-�#9;o�ݙ%p�!av��w�ˑ�����4�}��G�z�fx$����ŽW��@�����/y��	Ao�4�O~�X	��#��P/�s��+�����o�1�x����;v� �诙u�,i��\�m^iny}�AKڊ%���Ǖ�IV��c�LZxB�ޔr��&�F�i_^jq��ӧ������h�&�H���1�=�������1������)|����m�Cw���|�_@�#�(Q�D�%J�(Q�D����~�}�|��p���������1�����3J�7��yg,бə�ꖎ���헯b[m��
_�YV�z�
k4Pe��Sg2K�Nw\��`°�,kh��
�s��`UK����0YKwOVY�^2%�y�7����ʖ�)FA�����:R��"w�nS�v_D%�w`���S���s����w����H��ž��N�����{<�7`�鳴�Ϫ�ι����,�?w!������k�FCZ�[;|L�$��ܢ���|�^vq��tX��t@�j�t]�9�W�n�<�M�ڶ���Wo������T�܌	����O4T5^�v�H�-d�#�M�UMR;�����.����5g:�Kj�xW��K(0�f�M����>=;w��{y�[��u�E�MWn@(l�>a�2JkO��`����-����z���>�i��&��{=��7��{`p��¡�V��LUsGɩ3��Q�x�D�9#��}���P�5u]�9�o��-���Wt��B�V�e�>1��Ck}���p�i�
`�D�iuk��m�3�N6u]���[���dr����^HT�{$��oj��>���������������/\�vØ������Ƴ��,
�^Ye'9�o��ۖh����[�p���E-}���^:s�H���]�ܝ���������;����=���j�g�Vn��3VS�`��M��OVb@!ğ�e"��εz�x�z��|�EV���e��>phKN��E��R6�,������Ɛ���kZ;�h��M+�=��A���a�|��pWrsB
��ؽ�)wEQs�e�+mh��i���Å�3���`]N�INP�gg~��]V���O�X:�:J�(Q�D�%J�(@��7��B�(P�wd����mH/�÷��r�)w�ɮ@�u�=�+��io�{�2Ҏ�l�<��g{�l��BU�ӝ��,�7g��=��������)�����~�Z���=�D
3����W1>��,��7��ْ�3�
���С��ښs��_�|����[R���,�2.�(:�.<?!h�nM�ˁ�MY�n���4ǧg����K�b[n	���aR�ٰ_)	���Ԃ�oMc�'�s�6s��hgVausH4�%�d�Ը����(R��`��lk|��PZP��{2������vŀ��¡�	�6�5gYk��w��ֆ���]�M���YG��:�\�@�B�-�[������\JQ���:��ȂZ/]t�y���hG�y��P��پ��oWA�4^���'��mKt��ی��[�
�G�����/R�?n�>:3�� ���%%�	V����0��]��7
a�a!g�T��5�*�pS�Q���
<�j�Tq��6�|�^D�w��T6��ֿߒ�"[��yNE=�WU9\�d9<D"�PB�V�'��vdm�,���`)���*�0cY�.m̖�^�V�x�T��՝��bֻ���ޜ�V�w��ug��g\ٮ	��Ȁ?Z�hq�������-�\z�,�6dm�<���Nj![��{?ڙ�X�b}m2���1�(m�k[�f�8Z��XfWԋR��2�kПz�]��S)�9�9���^7�������w)G�
������N1qfz�<<�.���������<R۰2�-�{��B��&���x���pG�KW��A���eg�>��/O���xx�Dy3t����D�%J�(Q�D�����ƥ<�%��iF��]I;V�ǽ���My�;��f�c��N�G�$��!"ME5��S��/tr�€�K�P�+港�2�g��O�bSp6ʓ{������v!�R��!|�����:���y���d��g𷤾
k�?�)h�[N1�S"nՓ`��m��Jw����˩|[��J)����޷6hf{@��2+5{gs
Ԏ��w��UJb��)�k(y�{��C�h ����2�
�C��'����R\�H�� �J�fo:��^�А��ŁԒ���Ϋ��ds�Q"�*r��,���!ހ�`n|���}?>���pHM���~�QD[�R���>fO�|Y/`X�@���l٘yTw	(��B���{<��(������1�r$���@��)f�t����}?Q�U^�Wؓ���f�r�/�7w����m�tQ%�LIGvi�I�E33�^��n:#�z�f��[�l#�KͨP��8��"
~�.=ybJ3d���|֌]��|���d��E��-9ǘ���:�)d���L75���̬\i�:J���T�wfq�f�h2.��qɪ�4T�a�?R�a|��q���O����µ��Y=w��h3X/B,����F� �7	�p6 n���t�#�7>�:#�
�l�d�(�uD��~O7�<�-�À�w�Wx�y�	Ґ�r�\�z�a����ۂо��Ͷ=���l!m4+�SV�~�6�_~����]8|z�^�00b1�^��1ב��ve[VKFs���u�ϩ
���K�L+����\�I�Q��
M(Z��4�N�E�5�����D�%J�(Q�D��Z��LCu��L)@d�*�
�('QZ+�Ġ�;�#MP�tB����#�1��C�|��(�Rz),���ҁ�ܸ�y�+��AW�n�X:a"��0� �41� X�D��f+3�}��]y�J�ʚ���\M���J�����|�|;W��t!� M�d�y,l����Ŭt	�0"ĬKc�%�
UX}:$����2r�Ћ�
@ߛ��h-�:�����(�XY�a����>b��{����K�)6����%uС�֜f���`zNO{	t�:x��lO./-m��>V�@�d�b�ݸ߆Ar�_A��e颊��|mӁ���[���N�j�'��]P!��[��b�W�G5 QKVhN��騛s���/,��q�V���tyCȈ�k)/�2�-�f@s����m�8����@WCu޾%
<!VJ�x%ns�Djw�f
�`��'��Q�X�K�w�ofj�Ơ�}���j��y9h(	�c81='2�..�����0�l�A�$lZp��I�� �ZJ����lo�K�cR�]�F2��ݖq.1����Ԣ/��BH�`�T��aca��W����ꏍ/_����s��/O�t�{̍F7�N��2Q�7��l��g���A�*C6g;�����C}!O�@Uw���(
�#����d�}N/�Pkۿ�=�A���K@��x�#�(Q�D�%J�(Q�D���1*�e�3Kk�?=[�կRe=;P]��B��@0u	��%u��ׇF|D���4�2K�|kS���}�&������bLثo�ã���˔B�p�V������_�LQ��%������)�>�F�daC���d�bg$���P_(
�G���˰����Eð�/R�*�+u6T�4�ИȀ�eY�˖gm������r�������F��/n�+E��ٚ
(�*MaZ!�Υg�d(�}o|R}	E'�;XMʶm6�����U�V%��+�!�9�����Ȇ�w�s&����UK
����z�[�&�(!7�Ã*��$e͔�l�i��h�&k�cݲ���|�88 x��OtXY���ȑ̋������l+���bା�^�r�,&�^�n��k#;��;"h~�B��U~X�OE�Si�С��մ��o2�}�@���E`Bz;��,
�VB�#®��9
%����3b��F;�z��-�yw�q�����.�8�l�ui�r��ޜ�5�ĺ���7na�>�b��OP{�X;�J�TRj&9��B6��oo�3
(�X��H\8�^j(,nY_�"��X��j����i^M
������hO=e����� 8|�����uZ��l]a�U0H��ɋ�G����QM.�9�I�}�?��x�#�(Q�D�%J�(Q�D�:�7�����e��X��\����0Hm�1�>t����%0���5�0�(�(��$]�={�$
?��)�!Tˢ�&��~7TL��"���@�A�
�,�p���H
���<����_����tA����E��
?:�.C|�ҫ�eh%yY�fP#7s\o{z�p.��h}�.)��w���^��e�#�*I[��n�T���ss�0΅��:�ȯ�H���@�@s�����W� ?+���^����V5�Ȁ.����i��``��7d������pHbm[W ��-�i�*P]��dT �,Jf@c��~�54��L��㔆����&�E��l�[YT�`q��WhUDBj+�C���o�-���sjϼ@C�0hࡼG1 ^ּs�eU�yb��pU�W�zq�؃I7h��J�>��p����W���a��swcd4s-%5+��K��%�г&
�hq�[�,s/n����|�|"��2z�b�o������!���/<^G~xa�(��hȎ���Az�����7��`p+���9_�)�֔Є�	����^ј�WB���oZ���%��P������o�.VW�v<8��^@�>�����v���h�@��:J�(Q�D������oWw���c4Q�0^x��^xeⅉ�^h�%��0c�e�4L�`$�!Wp[��_�R�B�:���Rc�%
�R�}���o�)�	�WN����|�w���>�EQ��ae22�n*�T�,��%B=_�����3��+��x�j��
�Ł�0�@�܅�R�wj����s�\B�x�f�o�!D
�� ّ�s��ue|<{��C{���U��\2 c��hM��
S��{�Stj�} �A��7��G>��|V�
R�=wNO���J\��
�����dd�s�ƾ=e\�KVmz�Xv���6��I�pcZ�3ΓW���V�T`�z��I97��2T�i��SP��9xH��Q��>�ǍDG@��T��{���D17
<��}��;g�Ƙ&�
w%�0�-���O��#��Ǘ򾨩U��4|>�i�ň,u
�F�׿���Ƃc��]���z���,��%���U��6?9�ȴ��>v��+�k�ށrP��c��.�nS�L(
��bް}��Bf�U�,8T���ׄG��@X�^�l��k}Q]Z��UO��������\���۽�����S&�h�6X7��찰�h�/�v�+�����u[,S��{譊�GX� ���6����Æ���tmM���GgNJ���V;�_��xb�jD��Iȸ9\����*��-�1OJ٭���O����Q�Ie*z3�A�	&VX]��—Ɣ��L�>�j��7C�q'h���ѣ���3�={�@g���.��������v���(��(��(��^w'�FkX�������4�����tY�q�<A��p�uS����w�y'�Gy�o�B��T��,��q=��������.^)鵡�W��w�b�T>�r�#�NE(0�xQ�1��m
o��Q���/B��U��S����?��(��):��^���N��)�t
F/�P�I��ݧ_H��ȇ��"�s�4L���\�aa���P�O^����_H��ys,�_O��\��:���Hw���j$�[0�rl1z�VEE�i�}�m؆�8�ڽ�X!Q�pҰ�8Ќ�A��,ж`�걱�
�^c�T贪�ݪ��%b��蒁^,�g]��S+t�)��o�M�QS�Ɛ�n@�(`�l��R9�b�N��Vd��b�6��@��+���Ad]��5s���B0Am����rǩ�@8S����ܟŰ��.6�U�k~l��o��!]��-�ى�ϝ��f,x�S����Cyntf�U+yV@��mL`*�ݑf��7G�5��k��)�6h���	}�:��݊�+�T~�DGhq=�S��_J]�;�Ȓ�-BX�p��ydK�_��[�Գc��[�lq׆_P�l�f8��G�vi���I�`WJ/�
������g����Q*���@��0�,������Cھ�S�����Z.x��N�k�'BZ�O^T'>�h(MiԘ���ƈ{$�P�A䕵�}��d�oВ��n��˜�ұ��"�����^{3�_?;~-�ܿhy�L�}9��<�i{+��j�#¾|mO%�_�n+�6�GGG!澾�k�;v9r������������>s�K�?��Ͼ��o\��(��(��h.U����ʁ����ANuD�-�C�/�
	#�+�o}m`dCQ`��J���C�n�z�Kɔ�,����Ο�V>_%(�c��|y��c�7\T�dG�&����X��{�@6��6^(6싕�����8j_��%2K#}_�m�T"�U+��!rLV���Գ�W�e}�}p��ȍz!U�-�&8�>R�:�8��`]/w[�c+3w��c�O�.u1|@��t�0bY����K�gZ��kp���7�ќsm���Ň݁�&qU���7�^���=��p\`b�J��޹�Mb�5[g�ͩ֘�[�u��؟�C��鬩�����c�
w�m,x"�<�F�-+_����A=q���9f��;�}�xm`��o�4�TeB���푼���T����(�o�q�Y��󏒂9������B�5(����Zs�QX�����9nhx^Kt5�}�W�{;�t��W����7K��ˁp9n�C	Z[W�J-ƴ�t��pkV���b����]��2�|��ڦ.�׶7�d3�P:��	_o�!�� y\����r��2_޶OWEYE[�����}�+�Ϧ���=��t{o�‰J�l��2S�F��J���
���J[Ik�[����{�
7�=��+���Hc��@�;�G?����>�4Лw�x$˔��Wo����i`›<Z"3��̎5�2�?<s�z!�̸/��	�"�6�&�U�*�S'u��x*�쨴Y���Ӆ�/��j���U%�E�׺Ԗ��f�P��c�m�dR�۷ozt���ӧ���l�Wt�G?<�/���_��{���(��(��(��X���B�w��P�	G��X^����,�Z��Ӟ*�N�ynC&��#����Z{]	
�t��0��q�V��R��<
���U{��ٷC�[�|L�Us�[�jjKߧ�
��Ӧ�׊�`z�<=ڎ�VjlR_��O��Յ�m��h�X5��&����k���W�ԝO"f��Fؑ{�3�H�}d�s���qHN[h��~Ź��&ǜ%�,�	������V^��*��-L:[ǩ���ۧ��;�F�v*�mj�q�|ͽ�X�4sV�U���M���^Xj
��>��%�L?�tO�2˧�u�f��ُ?F�ht^�T��s��4��T��Z�_Z�	,�5Z�����m�T{uJ��������j8�Yk���;��Qo��N\��،�ҌS]�8���W!�	��~v�Dų��9����&��A�`^�
��
����%A}v�ĉF�
@+�%.�[�^t���(��(��(�*ɻ@�^��x��b�7�Fgǯ��ЋWʾ<��i�l:Uu}��G	��Ggl7}[{Q��D9-�\f4������_t�����M�Nb;7�ε=��T~��c�4�<q��������@��u@���Dǯ���_u����/S�Tef >S	��)^W�S:��k�n�4���pi�Z{�~vڃ�;@7zppn�D�s���jp[t2��@@GQEQEQ�:/}��@K5ey������I��U�����u��Ƥ��͈���|tv羃L3�٨�8u��[4Ӏ;���;38r���<��?�����4��###�B����$>����x@g����(��(����[�(/�_Qy+�����Y�S1&�x<
�C"6~�&���昗�=#�n0�D�����r��@@GQEQEQttEQ=KݮB������(��(��(::��(
��C�l��QEQEQEQ@���G�@@GQEQEQttEQ�l�e����0��D�%�fk�ʺ�z�{�c����n0,`��`zgz�C��A�yfNt5��
R��w���9�+�ܑ�܏chI�$I�$I���$I��s}���gh]�В$I�$I�$--I�$	@�h]�В$I�$I�$--I�$I��hU@����$I�$I�$hhI�$IZg@����$I�$I�$h����[P���9�=����:��/�J&i_�Ο+b<�s�[��%8����-A���P?�&���$�#8t	@@K�$I�$I����f���O;&g���Ǐ>|8�	���?<>9�pZH����G�w�N;�p���
��S�c��>��x�
��^��X��ک��[Z�z�
��3�����>�h{g�cpxem�!G��829k�v��c3O�X���vv���'f�I���f����	���V7s�sp�ox|��'w�\m}CC�&iߴ�>��_^]�k�Y��:���59�X�ѷ����d��ͭm�8���s���K���%--I�$I�$I>	@@� �˫s�r]>�{ܺ�Nρ�@'��S�KעR�ᏧB�W�Ó�xk���G1]�V�k��Š3(���X�a�I����6�a�$���=��UVc���j|n��i`������o��Sr��1CR_݉{�1���ͳ�r�N��-������,!����Ʈ�܍�
�i��[Z�`>9�a��D_�C�W?܉O/���I�7<�>>����E��,���Ͱ·�8��)�+/<����k'���n��Է`(��취T���t��u�.hhI�$I�$I�I�<h2��7qs�v�������4�,��ғ?Z=��F_3S�l&g24�Ir��i��O���e|G��/��3-���G ��ףӒ*��fB���?�"��+�yOe���]�`EsNJs�ef���˽��V�l}G_UK'|�&����>�:4��O���[����jI]��͙E9|��5�*Ĉ�p*��aZ1�v�E��}�<O�+��q%w�>����Nd{��!��&�@�^p7>��2aZ���y^]��bcX���\���$�X�rHB~E=�M]���=9g�c�G�Da��j��7�gߓ\Xq%,��v��$�^3��HOƚ9�l-����D���6�=��7�����L��q�_Z���b*��y�%8��|~T>��>6L��)qL�P��K�[)���VP�;�@�O�ğy�	_�Z��π��*�u	@@K�$I�$I���hbg��ͭ�ޡw=v��&��Bf\� ��ӳ�e�~k{wxr�_���6u,;�����\Cg?pِP���M;7����>J�0%��UhCv�\�Ѧ��յ
�d��&8f�ZdjxZ���,�`����I�]��Nc��S�
�}K�5-`���)���85�7���6}:�{c{n��3�9.�>X��ӤY„�q���/;	����A~��5R��&c����f��������褹���->5�9�(�l�#���a=��jbv�����錈hqe�����1
���&�YX�D�Nf`B��p�$�p��# ��kf������C[�;��቙��u�"Șl��2��9�qx�3H��r�7��&jv�l��p����]�������Ќf���$�<�Vh�k�6<�5�B�K$�kp��{�I�9,����7DD�è��%�『极UV~QeL�X ��y�A�|h��}l2����d�����f���Xe��r5w�]�?Ss���,1�2+1��B�iu�oX�kp���k��y���^̳|E��������'�l��%����</TI��i�|n�gK��	��j}c��m�Ϗ㊫���x̙��	��w��mCb
/4�B���^�C�*��>�#8T�KZZ�$I�$I���@�����-�)T)^M���!M��xi��Yt%418�n�(\Zqcǀ�v\Mtf��،�ƶԢ*�/�$\�Jm����\߼f��3,�0(��<��`�4Y�c�1ڻ�u�o��Ԋ��pb2�x��ض~ߜ�����’�ISq�;S������p��(z��<=����&o3�r�9��=�q�RH"��YJ��۰D	�Z %ؐG,�y�����7�*�yf{���45�\UM��t�	�oC?���}�YX��zt*�͘tܕ�$�5����ɗC�(ݭi��J�3C����t&�o�q�[QG��S)��F�۱�%��ؖC�03�|1sR!�$�୘t��1��
.�����-$��L�if�ߎ}�Z�!�儊�I9d�&(������>N�e���@�d�*Nr݌�H+z{�s�9�Ue��r�a�|��0�% ��7v}x�K|b�O�c���خ�4�W�t��A�U�sd
۞mp+6��`�ؑ/ho[��Z0Az��6����v��E�5_z��[
�1��9�M��W�9&��ir>�F'�x�Y���,�m�*��g��i���M��עR�c?G&�F�:��r+�'ط��+��,؊�-�:�g��ʛ�Ic�}��B���he!Xh�1�K�$�<�兦��gqIKo�J�'��j��}�����;$@�y09
������
*�YZ^��!�/"�5/�`��w荍
�΀�%--I�$I�$I�g��8�ߋ���Jp���;q�?ލ��W��'�f��r @fY
��L��}v?��U6�^�r#:�$d�ih�V��8`+���5`%'W��+��1���h��Q�h4�	��X�"G&<��M�$ų ���yR*[)�rq(GqM3%�QY�<���R]G/��W��UT�L���'/`���U��ݽ���*�jd���{х�MP3�l἗�����}�U]	���[[�_�v��j�lA�0�5�1��m06&�!L0Q�PB�9��Q�%�P�#�ʚQ@ح���y��{��B�[-��n8��s_O����̷��)�hh��ws��?X�VC�u�/JTC4�~�.�F�$&�>#�Θ��o�M�PN��	��b� ����ڴ��@���BWM��nq�=*Pr�t2f��+*p�L�&.�c�߃��ǀ��d	�
ϼ�������
�a��9≫�ʉA!8��T0�:'�Lt��e��ͣ(�LW!��Zz;z���=J&p��Y�{�y�$0��(�z�<ۼ��[z�t�KR4x��� �j�)4+?Ѥ�K��M�ՠuwjD�W-x�����(�	�m�E�=U��q�LE��ᴍ��a	.Z��l���zә�
ʣ��S)y^n�˞%�X_V@�����;k���V}K(��&�f-�Y��`��(%�g�R߲O	uYAk˶�
f��Z���c���BlڰS�13@۰��{�W�@�߼������n-��Şt�5�U:��a}siݷ�n��f�Z�Y'q���P:}��X�:�d�5��o�}Z�,e�6qd��K<�	{���Tӎ}FMċ�Yt�e�=���
��6?wH���P�A��
/hZMu&�]�|���{�0JL�DV2�=�0{e:�Y�JV����d%+Y�J��pm���F�œ�@7�$l��@OI��R��c�3�a�=)R3+BV��	�r|�ɸH���_=�;�p)n�tӎ� ���׼e�=�-9I��n%��-�k:�����8u\�\>D���R�]�Q���J&�BB���Z�/�O�Վ=֬�`q֑\C��Wr�?�v&B��OX�WD�bp8��R�LP�-���'�v<~�,����5j�c�#nԥ���k�*Ŋ-��큃�ĜV��+h��	p�܉x7�}��L#��4��b�He�������0��]d�p�3�ە$��:��1����.x��)�G�v��{��G�tk�<h�gM׾.Cp+��C��5l7�!�`[Sx�۠4��\f	�a��$߈Ή��ʂBQ���s��(���:���rh�	�?�e�Ͷ
�1᛽��H�a�u�"��l�GN�k!�"��=z��:�r?������9�'|!퉨aQώ��?ݬ�����s#lY�
z�=b�_!بp	U'?�F���d��B)��Һ��7��k��cC�p0�5v@������n<��/:,��v#�5�G�lk[�qhkPJ�"�/�
G.ٔ��mA�ڴ^��]�#�w�筥�pi�І;��2���FN�	,
�n_'�hh�ɬmr�ΦF�'>�ĥ�l�Q�O�,�>
9���+���JV����d%+Y�JV2��о�^���uǮ�ճY�n�eN���cO�R���(`y��Yj�* Ɋi�,�@Wď�Wqu�%���G�-z��&�[�>+�֫U��"X�l��Xm�Tt}��P�R͖�K�,�2@4فWM�Jl�y)8tBA�2M#t/��]�.¾
i��-v�Y�����"
��x�U ��FE�z{�a��4�H"&��MH�4�8���\��	E7b$�!
��Z����f[��9A�"dM�`.����rZ�X��l
�CC�^�-&��"�b�`�l��
�@��ۊ�[L6Mq�h~�1�Hb�%2��r1ۙH[�[��Lr����@�H2��dtQ�G$oh&��"L�������)D��M[�k.x�@� ���z1��+mF�C�	,�H��KWt\�.g);^y���谩��0�A���!`~n8��\e�Ԍ�"�p0@sMD+�4�����4��#?�VT�>�C�*[ڦ�m6n��1BB��]��5/Z���C�|M�f�[����h[��/�03��YD�ڎ�"�
��˅b8H��жO��,Y�A������'6�8����_��f�K��<�(�
T��?g�t�,:{e��h�}p�/��扬d%+Y�JV����d�ĉ@;��@��&�;)x�B��6n/֒r$I� _��K �k-�1
��= �3�	�Ճn]��@�!й�K`8xQ,v��z��h�\�\��qÀ�#����3��H�_����;��F��W���
4Q5	.	�)��@��5D�嚐�cr
@o߹���Gƀ �����E��<�M<r���F�u�X�4)�z��w��W:���F���t=v�|*Ih*�GAR��d�k�%Sf��*lfA�u��E�T$�Dò#}�Z �T�b�t���U7�Ч^q�LR�/d>(�G8�L�c��5����4P�QN���
�詋�3��%�v:�ot>�6�1th���?�*+�^!��J��	�&-1z��$�p���Ĝ��K(Ar|�T�Ni�{��hF���j��c0yQ�d ���++�d�Dj����
4W����6�ל�@[���E
F@
�	���춖a\�ѭP�%$�:税U��V\���.�])�n�-8)���܈��M�W����ը�@�14�-ϵ�u�^��}d���N=e�'�BN�?+��Rpd�@���э��N<8z���*GM�r�c'�����JV����d%+Y�ʉ@Sp _x"~)Y��9ia�o�
z��h�[�)A�@71�tɤ�Р����}��W��6/�VY���@��/�;���=�d�i�+ח�Rq�I�0�P�D���s?X%
E�m*iqʺ)8bĕ]��0ng6�o�V���#4D@�@WF����a�5����~�8t� -s��=�0FI���
P�)���u�Ȗ�Nb��2C�4澯�b�u nht~��-��x�h�:*e�-曣�lGi	�<~���S��AY�FI��+o|���4�6��#��@�$G�n�߲��J�|ϳ�1Rp����
Ob4��@(�͍���;��_�0�7�`��$���H.g�]��EJ�΃ǾкG
Spп�C�MRp�F�#?��ڡ�d�?g�e撜�Q>���j����}G�����<�U"�
q�8zj%�8jd�I�}&IZ������H�bw�݆Ƌm����k6m�[�[�����F��u[�2h܅H��n���-�w�4{ a�3��2��h��:~���Gl�����²�o�͵jo���{�����Q��*z���U|Zͽޒ�ϡ�M���@��|�I�bW7S*��_r�"翲��4=��sdS��`��"W�b���3��F!�:�V�}9���:=����nV�qv+�w��(�xY�Ŭd��|����4�?%�h�mPݷ:H=lуeB��W��C�F�'�%k��&i`2�aJϗ�/������	h�
����P�C�k�I���{�!�<M �qL���d9���EJ_Ou��Y�������-|� u�K�8U0Y��Bd
��3r���y�"�.KC@4�C���F-Y��l����Ȑ���̓�<
o�%S�/�C�f!�D��c�K�@{��\O��fE�A�0�B}%�mu屇��ܻ/��X�A�
��T7s�
�I.`��?�Y�r���DE�:�	�v蓞E���2AÝO�ݩʇ
&��&O�KBh�Dp`��
���$t��W�d,e�jDE�ŭ3
N-X+z/;
�gs6�,��[ցG�'���x���<B�%��uDX��5Ж��#�ج�h�Ų=�WkB~�b ��%v��<�Р�m��>���l*�՗�r��ض<q��e��/��tbk.�
��Ӄ��$�V�s$w�X��d�w�ɚB���ؖ�T*����=��[�$��h��,
�9~X 
=�_:�&=N�s�銗�!C�Ä�$���t��#{e�k���u�^����^����7�w�s��`�M�o8���[.�z�]��޺�v�*����X5Ŋ5�Y�f�X��.�=۶m:t�Ν;k��؟�k׮դ��B����K��5�ȑ#g�Wb3��!C�lݺ�L7l�0eʔ}��9_X�Չ'��2�:z�h�(�o4.}e�^�j����ͅ�״i�������H.�o�…���wpF̛ٔ6m�<y��^�×��M�0!f�E9�)c��d\���+V��OP��I��V57nD��%j���ݰa���{ʪ�0!Ύw��m9o޼��!��-C�e�3f|�&�e����/s7+�T�7o��_��M7Gu{�]E�6�3g�A:��t��9m�-'����DV�R}��7@���#;�n��]�&����J`�	�ݽ��9���؈ɳ����9�\A��8��:��ah���Cʶ�Q*�P�^��f�$=�����1u�"BvœE�+�ci�:�MM �A�q��M�d`ؤ�`9]E��h���q�7׃��8�,$'0��u�G�
�Pe���#�
҆��`>(qʉo��9�+z�>�*��z�L�s�{����^����!�^�K!a�!��]�Ubk�Fw��@gQ\y	��.G�1���4DW��R���ORp���h@�4�-C�0Y�[���%���t���k�֡�H���f�!9&���P�%R�@�#_� _��B���*U���i�3a8��w��D�Pr����I����M��m�Qou(��2������s^�?�'�~�u��M�v֡XZ�~�Μ��D���ޒa �%31Z��3��JI!�96{b�y<����	��ø�09v�@?��K�z���_f���p�M�3����6�>�@Eu��N�in�I!�b�^3-������A��K$IC#�4��<Yb�/�'�B8-NZ�p�3D�-.nsS#M��Dab����"�w���zm�$Н���C���!��6����{X�.�c�k⦡��<��L�8O�4d�6;;h�o�3��g���}�8*�t�����@^����mX��ꭿ���|��뮸�O������q�#e߹lǝ��![U!�y�7~��_�������~��?���M�x;w�\<����_�Z��֙��۟{����OM�r+�7���7iҤ2=?�u�ԙ>}���u����/lԨ��6m��t�M��;.��ӳg��/��u���{��4����Ώ?��/��5a���'���h��$��Y/X���;�s�-�,^��q�f��O>����{��Q�ܹ��_?{�l�+�Z������m5�Zw�ob�/�SYK��[���EJՃ
�a�2R�k�.l�:łʢE��y�n���+�d�^ziݺu5d�z��m��
�Bw��Y�f�s��ѣOmM�bI�#B�KJJjժť�=0hl(nܸ�a�C�,��ߠA�2���_�뮻l8>-r2�ꩧ�"��ϲBQ�Ǐw��ӧO��6��/~�#�N����ڣ���Y�K����]�~��:u�w�����?Y��Y��H���m�P�\����x"�&��������LlC����$�	u��ʪ,�P+߱���]v��s�+��ˇ ����_]�(�#9�ay���ڍ�;4?�Y��C�l�A�ҿW7�ܤ�8?�h���R�]�
��c��=!mJ£��d��[wi��ݥיC�?"a��0� 5�d��R�"R�e��Zu����ѩ��"Ys��(Z)z@!M��Os�%1D��Zy�7�����A�4��5�>H�‡�oeGC�A���%���W�2��{�:3*���u$B�lێ���P���#~,�ZB��*
IoG��2�M�v8�l�F͊�C\�yMMDM߲���ɴ0�8��8j;~,Q;
0������$��Yb"z��T�?,�[�gux�a����XЮ��c,�9�F�c���6ٴ��^iS���Ĉ楮�9a����w@rvo'+�zQ�T�ɬ�3�'��g�B�臮“�Z8|4I��� ��
�����OlSI����O�!�D�~���@g�@�����s�\t}Y���^tC�˭V�Xy�&eO���7����b�W��S���;>Z��.�ܺu맟~���.���_;��"�J@�(B'��gtI�4���H|��RM����L�U�!��۷y�梭����*i�n���P��
�Ia���zK+nnذ!V��2��TK�י�ݻ_r�%ԫf^�5J]�z��W_}�}��g��Z�BH;u���@�>��:�~�jq[9r�[o�e.���Z��-["��d���8�#P�xՍ���P%}\��Bv���*�_��@���G˗/����cǎ�.��G��Vi�-������?�[��U���|����Etp�ō�����ǚv���
��P�PKii)!��_|�I�&�=��e�]FTA��Y��6�F�Y���+!�&�sr�H��au�*	�.�Kq����!vx��k֬q34s���j���&o�5o�$���tk���K�O3
����\��2)����_R��"2���]Ž��Љfj��W\�ʩ}$�khw�;v�[e�^��5Rحc[���z������%
�mѢ���^(��ÇY�&�_��w�y~���d���J�<�p��
o��ߺ�Jn��m=r0rG'E��$(-@\�/]SoՋ�Ba�y5�<""��?�����<i$L!��&Rت�ϦtI�'Cv�N{��) ��x �'fV�sU*�Ӕ'(Ռ�?�i�s,��AU:��ԧ�?yzS�j�!�J���j��9%���♖���$��fj5\k�qW��T��tEnEL_��Y�S|�O�:���@���W�o���^�>=�r�81Λέ3����[��뷿밊���3�g�c���֑��Ȓ�Z�����z�m��G�s�yN�y睰�c��o�ә"��r�*��{븺��߀;�)��5z�0�(�j������b�sQ�8�V���mZ�:1��0ɠ4`PC��6����@��p���Q�c����>�%Z��!8=�$���.�@�f47$-����!��J�Om�[|۠���NŽ�@q�m۶f��
�W%�FT�~rjke9�(<��Z��M$$L����	9�&`\� ��������i�ж
���)Tg5�hؚ��<?����U�NCB	��i=>��b��b�e8�+i��s��W2����y��Չ�L��)�X���o�A��4���T?��O�^1D��1�pHg���u�]����j�H���C`N¤Z�X��4dK{Wl������n�`4��9Y���TE�vc�p�0Y�*��ᙡ��-��2�#c)%[%)��+�7.�Z]���M�B��{����O�� K.��ݬ��&�F�h#�x��H��ԉe��RPN�{MB�*�����B�KH��%~�X �?8�%}�7ӈ�N�du��$�粏�С�N�D6�K���0hȖ�!��ì,��1c��?��d���g>t����/_{��:|���scٚ�����V$U�+K�%48���)���aИ��7�����d:���^�>ktE�e�jo��Mu_��z��V�^�sľ��m��������G�Ω}x�|���䋮Ph��(��2��S0��ufΜ�1	
.#zTؚ�(�GiyHN5��X����-��{�JB��[��%J¿Ddɒ0�Wq��"����r0x��?���(�o��	������"��ɦ@0����dͦ#f3�#�������l���J�>��#�ʗ��^{MM�Ճ�!��~�a�m��s��aւ�X�6
��B���P1�$�H	J%���?�)@iF�$W	x��	aH�Ob��������M㪬�N��1YY����7
q��_^�uJfJ!��ʕ+��9�f�[��?���Ј������Kn8
i��]\��_}�U�xN��M�B?؊!LY���R9?��c�.t(ŪK��lt��1t�<�-U��
�QT�M�	ٵkW��<�i�o����A��Ҷ@׫W�e�H66䅀��Z�
�SfX��e˜���	����L��������8��j�{�&3i��B�XT�!t,�Ю];ig�lN3�$�PJ���iu�߈f-��F��ۅ��y���ur��XƋ8��ؑ��Df�X܅bhk_2�,h@�
�(�ժwK	��S�m����u��E���o��3'��]���>ًҖø���4C���l�z(�{�X�L����7�ԉ���-[�$�}Ĉ�c�Ȗ@�	�ԧ9F�֩`�
^ק=���9���gqm]e�o���Y*F�^�����^�2�)Ʋf��av��͈!]%�h\�.�Z��>qt���2͘ ������;�������m":4"}ZG!���2�m�T�h��D%�tk
�����HE����c��k�|���$t��p�YJ�V��y'�����UMt��gGro�.��<c�^���L�e�Be'-%7��ͺd+V���B03
�x����$�Y�t�k^�˞�W��
�6�3)��1�&-�L'��)�r8v,{�BVά�m�u��&��+Ч��g����hӥ7/�}Ǻ���8��Ϩʾ����#Ǣ�n+���M�yIe����L�w�t>�о�~�.��z_�}+v՗d�"骧u�b�tp��)��c٧G�}�o{�h����b���	.����9A�
C�|�j��UW]4~r�rU��@9B�cB`�As_���
BBl�Ǡ����RM�"�)`+���~������
�ث���/�����9�bG+�fȩO\��4�Fƍ�2r��L��,Y�q��b��9�(�-v?����:l�7m�Ov��<c1e�ڵ�,ӿX?�0D'�5�j��[�@c^���@!���Y"�\X�c�&l�ћ!��<�L���~�OՌ��CbU�%.�g�1r�deG.�<�b��:��",Fg�[��4�Ǧ|�%)'���ZV�U��1r����_�"�{�O�Ɠ94\ί��R��X̩5k\:4��"E`� ױT-I^J<v1�U�[LSo ]�vqI�����yϠ�cQc�.]��*��h2/�y@g�7Dxc$��QM��8�?���e��*�P/���
�*A�(E�CU�h.D
"Vě^�E(
x�O��+/�Q���R�I�7���hg���b���MS?�-��s�y�7�;c�7/gγ��k���:s�{=�����=T�����E	��hϵ���tH�b �S8"@���q�a�;��?��;�XP�#�S�f�=�� 4��ءj�QM�}�s�=,X²v�-8�7s!��z�4��)B��W�ŀ}4�}��&&�:n��~��wdZ�	זP�>���]H]��2�gS�'�&�<KSj�]��e��X�L=>�G�t�ޣ�Lc��+EB���}3(�$��܆��\��ۊG�y���}�����f��\�th"�V�\؎�`�9v*�A���3c����#�W�$*r�4vL0�/I�e��I��}EK���5.�kY�L�k��Goii�U�Xw
*�.��C)��3&"9�3���1Ёfs�<zw�1�ElL-��iA+�j�z��44�N�z��@�-�.d���n���Wy}��w#�V�j���"��>�G�r��z9��2b��_wݏh=˯�Y����y�~���~����O���/>��y�#/~���w=z����7~׵�|ۿ��S~d־V
�xN�*��='�h�	�9t@Ubsf8@�l�@C���#���1� `.�5%���uy��&��Қ�0�:��BSx�v�4���'�m]�+MR$"��XO$ΨK�D���J&������"�.�W�&�)�6K0���3@��3�����S��L
|�I/ %ڢ��B��*��Dd��1{8D��q��-d�X�"XYj$�k�Gd�v}~͋\W�r�
�q{0����q/�"88�<l'$,�W�hp��]�ulP�'�QP���Q"2��8�����B��&!���h�.�3���	&מ9/����D������Yv�М߬4R++�-�e�����`7G�C�榉�o�g�Gz4�P�ƛ�E�Q{�H��!g;�"t����^Ž�k�i�ĺ�b��s��F3sxE�)�̗HBzv\A��ȸ�:TS���)�d7O�=?����ٱ��tH�4���-h�3c殲����:��G�q�i0�T����H�ߍ��ʢ����J�k�lR4�i�vl��XD�f�ᳵ	Hf.#����.��.l�4�yi����W:�&�z�0a3wޞZ�`�*�YQ�h�tmęWp	�������)��_��;��{K\d�\XG�u3��h���!'ϱ'��ke�%	�N��Pw`����8DKQl�W~�`�w$�f��B�ϋE¾��7*HN����0�����5�"��X�"�-�?/�&)�6m:o,0�i�thº9���0�>P���3�%�1��+����3����@���Ы���*�����X��Y�@���_��ӿ�/_���z��������{��|���'�}�{}u힇^����}foV̓j�jt��#�.�7�4�j��ν��C���w���B���(*�A�z�ɰk?� �6 E�Ȁڶ�t��iX^�1b�@Ly͒�H�hi	o��
h��hT,�Z0
�M�-k�O����� ��	���{����`.O�����\���^4�g�5t8���`+�{ɕ�փŘ@���b���ќJ��?�a��i�E`V�&r~���U�'�SP�O�k��R�ЀN��j䷞�:Agˋ��<G
�aFg5~H	���e}�N
'��9�Z2r|�
�U�=�����h��|�������[R#�1
�%���[
R��bܕ` �	����<�����5�6~>/!��8C�y�	�*C�h��<�W���qH�0.D��
4�M�7�c����]9^���db&z��@�𐟩Q�l]����Js9m��R��=��-�J�Y.*Z�1A��6�_5�\bb���HES[�NZ����dQ����.�xkD('��h����R&����t2��
����"v+�4�y4d:�y��<\�i��悯���!	������ӄ�5+^A��tM��{���fuGX�h�f�®��34�G�[��[bӿ��Wߔ1+��>�&�yJZ���pc��G`]P~㲛6�����a�n�2�7��!��NX8?/%^�����ljP<?�wqU,Ry&�@���'X�{���O�CکL��
����j��٭6����ʀ^e��WYe�UVY�n��p��,}Y�۹�����x	����}��7�㯾�m����������o��근�w?z�m�m��?�/��W��"������О�=�ze`G$��D�dZ�X�����ntq@#n_�B<Фr��x�6�
6�/x�ʕ��/I*�id��@���o۲vv�,	���좦��0��y	a࣫`�8?{@˞O�azKκv!�/2�w�h
�w�$";�*D�2�MͲ�@cU{�D$����?!	��04[`"$��v9;R���
@�` �C�s@�@��{M�i��g�*��Ҩ5G־^"5EfZR+�G�K�1m‚P)��4r͗c5� �h�kOh:��D{q�"�u�!�fYE�K>��4I�%dl���6��-
�=��/��v�h��Qo��^�L��h��(O>�r�lm�@����LR�c�I�(��F͈7��0SS#��N��@'�o�kƅt��y�L�4pB�:��B����qT������WB�G!Gi�i �<J	�����e��=2t���Ჸ�g}�$qƙG	�i�3h�/�Z{�	��X�6M�̭�v�8��ŏ��Pl�vt�.�/��
�T���!����i0�&aU��	�E�
�F~��Szn�/8�2�+�[T4��Ņ��&�X� �W}я���bϼq�$�����Ɉ-��hmZG��i��$V���g�KV�[	%P���I�B��/���g���܈Ts�@S��%.���@���*������>@�򕯾���w�ܛ�~��q�]��o�q�C��}����J���>o��/��W��?D�h��
���l�s/����U���V�"�H��@Ե�r@��7�hR
ے%�1[�#��t�z�.�䈆da��A�
C`�I(�r���M|
��Ϻ�Z��ž��g@�3�����m4х�~>0��w"�j�31��P���!J���(s.[�Fߎ��*p�=��/��A����5x�~��{�h��A�0Pe	�l!E��h����Ts�e���6>>�4`P��.�����*�f0 PLb`�59�XM��Ǔ�;D	����XM���@#�����9F��t�e�[�����-�H\̜凴��6��9�F��O1\���aS	����\�B�wW�����l�dͷ����Ut%�;4h��|��2k�yX�uʀ��ʀ6Fv��KU/Gt�eyZ=�tb����ڂÔ�ۜ�Z�g@���!>�܆&�/��*��y�U`�ˆ�4d ���E�2�Y��}U�\�~��d-��1�U���Вao�������	}������p�`Gt�(�z��:U�`2DZQw:����E���NY��Z�@�
a�~�4
���h�6��(I�nl�v�mE@��"v	D���%ܙf�����rh/�,Xq�͍c�nCǢ
�$l�B�>M�g��F��O�.tf2��~%	�ӝ�ԕ�ϲS��n�1�S|pUwdclQmnF�Le@S��*F�6�\e��WYe�UVY�n߂C;�%���m�_|����{�g��G�����\��Ǯ��c�g����n���z���H����1�:x::�$���Q�8��]��hrz>�E�	�̴����Ϻ���[pf���E�z(!b���C�H�Q�z��R���)�J0e���\X�a5Mi�x�#��h�3X��׹D�rKAC����H����`a1{���\Ν)I�\Kv�0�&^)���*sx�WT׃M�໖�*@��c`��C���C��Cm�q�05	�(��4{@3��6�'�x�՘{�4Fr�]G�K��h8����4X����R�4����0��F7
*�C�mk�QZ�� �l\6�j�j��xv�|	�����R��CR���=8[�*�%����l"�Y�jU���Q����Ot]���tc(H��4C����n�*r��F��,�����B�46�	�	l
D�����q@c���e�8l\U�5�$	��	��5t{m�P�أ��W���B����"[4��y�X�Dw^;?��\�zc^��4��=���PE�8����{�B��j�>!.)9�W��(ZO땕y{����a��W�t�B����*�X��H@7[���c�����{ǩ�wZ�4�r<�7�c�ע��;{@3o�l�B���)���9��L�a\�F�"�����&sow+��4Xw�%�����@���*����ʀ^��y�h�m����O��_>���������]{�V	Mm��t`�h�`��h8���G@�(�'XO����8m�T�h�^;\��$��T��-�|�Ŝ�d@C6CR&<Q�F�Ȁ�t�_�d�5PP�/�Kl�����B�Ep��B/k��3:Ea���z��>����c
5����*!#�4�PyP�"�o�0�g;f�����jg�H��p��8�}�M�1)��W�q@0Z
��>�u �^�o�:*?��A$�.A/D|C�����M��}4"I9�=]�UY���(V�z���w��A�|���ҟ�)T.��.���D������A��eYvT�$�&!��Mj�
�Y>���:�w��Cp c�Ҝ7Z�@���aB:�=Φ[3��1��OTX��O|���)\�k�؂�T��Xr��:2��F�j�8���	ߛ�Tw�eC�|�����K�N�Ai���*��?�`Q"*g���sӃ!���U*7J�,�o�D�`�K����8fv���E��J���4-�pl��Ѽ�
z���Գ�oʷ�p���<۶pZΦA���M�H�8�0�f��"u�9��lǂ�(�E�	��6#(Pnt��4W�a6u��
;tkR3�fye��٤��:�5!y��!@U3�+&[� n\zԲIJ��k%�˜f��)��r!��H��]�����/\�F���A6K�<[�Cɪ����v�]�r�hA:j}�?ugє�ل�/e��6�2��9'��MT�{���Y�ї^���"}x�.67��K=�cz�QQa���z1YG��Dl�	1��ZU�X�`0�`�
T0yf}QN�Ir�{�:*S���^���ȵx�q�E��b�6�U6�k����2e��WYe�UVY�.|	�ʀ^��/�M��_��S��o|��ǟ8��k��~�ٛ���yB�Jt��u��,̨��hV�}D�dC,�!�=�zZ�זil�^��3piV�D���3{�A$��R��O@ذ�R1R%�ds��	_�$�1C�
b@uI8�j��
�Dk.D��c���)r��pHT��ݰ��'�6p�)d����$|Y�mm��f�d��dC%�,y4Af������t2h���/*����!?�C$��� �fw���
�˚4�􉼀_2.�H��4`���h��>�E�ۨ]H�s��
�y�5�-�+�LZP��$�=b�xJ[p��Jl�-�S5~�B~�N��X�a5X'��s|/�I��Qz�,�'ΐ�X��Ún��#�]I߸*�q�1>Q�=�� �l=\�#�H��S�3%�ω��i�J?�`�l�s{3����L�I�6�
;��%�������5j�^Ԡ�D���v9�������q��7k*.�A�`+��y.������]M���x�AJ(Ѓ4O#m�.��.��x.i>Q����4�S��
�	і^��Qo�¢
����G�gh �̆�s�&&=P�إ���X�(a�!�:��-J�3�R����qa�'v����O����\`��`c��AgC&RCv`:C�ͼw?
�J���D?�!��ׅ��<�mm�=%�����s�b�ֱ(���LV�0ƭ�K��Ex�6Z���T*dц�L����Y;4߻� �Eubl��ݍ�:��!<����!@ύ�J77���1�$�UF|��v��g̯\�_1��@S1J܀�[�+6��U�$��gA>��t)��J�|����f(Y/��$�M��.�,��*����*���ze@��З�� �������<��x��C���O��'n���=pܝ9~r�'�S�`�6�4�Ow�%"�K�ퟧ/9-LeZf5炎'��:�$7'U��ߦñ��]IJ�m�O���6�� I�qs3��A�B�V��4��A�k5\m�hF�L�� ը�D�)j*Lp��~�x/p
g
GU�vc�y—J
v[�r�pWI~jQ�Q�Q���j7۔��7:��1�9-;c4���+g6�t<e3;��Մ�'L����}����!6,�9:S���b�&N�O	@R���f=}������kUs��۶�wf���&g��=�T{��WE���D$�fn�)p�lFS��p�LO�x��*7S4��^NL�*[3����*Ww^��I:��R#��l�v&�M���ٯ	�'-�D��;��&,Ϗ��K�
>'���7�}�
��Î�A��`��6�csOU��ę"�ҩ|~�vx�Q߅�>���Ы���*���`���g�K�ԧ�����g��3g~T{�z[p�2`��\�h������U;g�wB	���up�˩��n��j�2�_^�3{��6�-��I�ڶ��̠�KSw��<Q��qb^�j��3�5^�luqI=�4�™-�/X��m�(�۹���8s��z^�xYz�UVYe�UVYz}��
�����?����B�UVY��<6�����n�\�Ыܩ�KPm��f�<m�UVYz�UVYe�U��_�����`k���L�f�E��8����&@�
�G�=�����. @���
h�h����Ny��@���x���6Z�Z�@�v�hh&h7�M��@���݀6Z�Z�/��h@�/���6Z�Z�@��M��@��`�	�hh�h�h�{��� EQ�h(���~�`!�F��KOi1��rj)	;�Q��L�h�m��*�u�����M��@�������i�:m�
�h����:
���,��Ӷ�$��p�h�]Տ�r{�������,�/�jw��O��'�M��@�_�Ѡ�{eff6�=�&�_�	�4���g�;����&�xm��#
�&@� @���hh�Wp�-@�-@��N@gy!@�-@�
��h��w�(QE7b#"���r��ÄY�������H���Y�e�h܀6��=���բۮ��2�w7@�܀6�{��i�)]���a���hp��l:"r�s@e9g�����f}�#��+����Y�@���9�q�M�h�	�hh>@��#@�
�@��n@�
���&@��
���;���((,�W�
�x(�]����\@�	��
�m4 @�	�4 @�mC��h�h@��t=7@ϵh��
�U3��	��
���h��]��h@��h�&@4��h{wl@DQ�5�/�TaA-�du�_��2���M�h��	�4 @@��'�&@4��h� ��.�M�h��	�4 @�m&@4���wh���	�4 @@����h@�.����g��j���9��&�5�������8��[��n r�j�t���ⱢT!�Z � UB�@b 9����$�|ݟi���C7�g�A\��zכ���;k)Đ�;5�>@!�BM!��͠�����zgqM[��f�҈^���B!ЄBa4���3���Y��@@�2�L�
���/@!�BM!��E�M͠��?dx�ٹԅ���MЄB��&�B��`P@S@~m��.y!����3 �B��&�BȢ����AM͠�&�B��&�B4��3h�˥���RЯ������T?��3!Oqmt��\�����}�70��������8�o�=FBB��!��8&��~aSDŽ)
����l�����o�"}��q~^��=2��@M��m��)B����zp,kqzl#�!�X�� ��������jNM!�BM!��
��@@k4���׷����~eeeQQ�۷o����4���?�νU\V��40	=l�̓Su-�Kȋℊ��n��62���������N<&4��yT���hhyҨ7�����0	�U %���mC^�w7
�ʫjMS�uz�0ڋJ+n�hZ���YA�6���ƍ��[%w[:��Ԣ��m6�5w
���S�
��e}�؆���o�\�k��3o����酱��9��m?Zߠ��W}��?�Ab�����?�����JnWT?�цcYd��g���KM!�BM!���A��t^^ޚ5k����v)�ʰ�0|E��F�-|qF�={��K����Sg^��	V�\�)!>�ܥ+桩gj�8��ҳ��y�Ve����Tr����Z0�L;y
#Je��I�2����n�Sq)�9?i�GGEA.c�c���rE�L+�J3/\cN���*#���
�2��)�)o)ery�,!66���!d�q@M���$���_��}��[�ƶ�a�\�[P����i����l��X���e|}�lBBv㾶�5���������|�ec��U(��W��]�+����>�A�S�A@I)�	!�B(�	!�
h�b�j�zݺu��c��H�j�����������Y|�d�z}UUUWW�����6qqq���f�9d5|�L&S?�hjjš>��6vwwc���V�sss��f��)6�j���z�W�����ل����"<����
��"®����
Uo�'��	�
ߊWBl�����tX`�/]�#��Ð��WA@��{T����^f4Y�s�P�
��+�`X�n�WG�R;z]��n׵�_���<�uF�v����vL�gd��Hj��1�T�y$�m�c�U5hp~�7���*cv�N?u��	Էv*��_�g��2�,E�j��p��m�IJ��q��x�՜<1I����?}�b�dp�2.�"��GW�cǓ��J�����}���676fwAq�0�	h	�+b�3�=�DŽ��9���eȃ��}��+����N�6W�LL��G�q4!�B4!���4ĚpI�?6�s+4�z��U*��7lذbŊ͛7���
�����~�r��-[��^�Z"�tvv���۷oڴi�֭7n���Yo�M�ܹs۶m˖-�
4�x}ժUxe����������Ƅ;v��� �v����la)T#---++_�O
h�T���LIM�qL��s��Q���\��w��^D�pRR�o��d��x����뉡t���5���p��eE9�
���W�u��>_��L�xItq�C�$�Q8�­�x����[%�_D���ڌH�z��
�G��C@����A�;~b>.��hE���3F���Q.Hj�'P�3�
�钻��и7�q�q*s�Md"�i�bֵ�	N}��%S����D~��4�*	��i'�;18��)��|�z�5�E/�c���1.����������/���Q"<����GC�tc[N�}C=KI����Qk(�	!�B(�	!�'����r��M3���o���Z�4���58�V��� ;�o���*ʦ�Hx�A��(��J��6]��}�v��۝{����<��=�~8��|�#mq�$>�4�h��K/����c4[ZZ�����}�0��Ϟ=;<<\[[>���ó���"��׏��[Lh6���순���ojj�
͏��
�vUUNj�@�z�-e�&̓�����={��ڵK�U�L����/{S����8l��ox�g�h2h0�v��qؼ�RZY��*�
Y�A�Ó?��Ӟ��%�P��E�1}�-�����r.�8;'����V��L����kPpok�:>��G�}�S��3'�,�h�X!�Ԍl(sMc�L�M���A!�6X�_\>��>���y=�h���&���Dd�F�s9�t��k��4�a�`o���thxh��u�#3j��Et��+j8;W�],�����5��Н�-">��D�����4u���Ev���G�"�H$�D�E"�H$����4��h�6XnzzZ�d����w�y�4^�Cy��Y�J#�������,cv�4�h�����%����*�2===�Yh(�Ν;gffT第�W^y�ܹsj 	j3�h`eK���{?�o��3��ˋ���IR�rBT�k>��sk�p��X���J�Z����:`.�t�5�KLs]�5�
@[�}�dd9:86���:�$!%�	V��S<��A{�����'Na�*p@��ܢ������r�=��oL��Y��ӱE���S�0,򨧗�a��ok���=�a&gKU�c�-]�d�h���7���!�Q�p�%��:6�hV�2}�w(����Y}�4������hl:�,��[��m��?��y�@��@���܁��\�G�@[�
��X����%�[v�M{7�!�E"�H$�@�D"�H��4>N�8��	���
&&�9==������{��V=kjjx�@�����Ԁ2�e[[[��F��DAg2������� �L��(
�%�C����C
Gii�~��h�=5��ϑR}�3��ҳ�k�:�+��=2C43�#��%!��g�ϓ�2&�.ݍ4몺f��a��Y�sӠX�<�t�1�b+���le���ݷ���^>��EKH>xнw�.k1�����|<o2o�'���A�[�7���~����jfS�^��t�Z���s3�J��=<�`�b�B
Q}h�Po9Eװ����W�
i�2�����Q��Βp}��jVn�Aw;;`:�im��U��ޮN䆏��j�a=�-�D"�H$Z$�D")B(M�_@ggg��A�3!���f
@������8,�dh\�tI�d:��@��'�������ˀ������D��@������:����&���Г�m�S�/5#_mzf	���&����7)�Dt\"p��TQ�@�2���O���]�U��6К�y6 0��}�ph�^��7V���||}���j�Ԑb"������̩&9_�HN46m2��:HǑ�P����u�|���`fV����B�_|q ,�7a=#36�N�e,s>%�� T�3�X���C�������	��,�7z[���<cU&��=O;y
������ŕ��1�Р�pP>Sm0�Od<���U�P�H$�D"�h�H$�@K��WзoߦZ�޽{)	��1�;���Z��w�&(����@d�O�^xᅘ��\Dph��uƎ��4h��w[.U�Ȕ�=��hL0� c��I�Gc�"���<���� ,���u{���[�<���*�.��#��'*|������D!�Z�-%�"|��;
�*orv~��`S��Jb�*J~<���]�	�8���B}c����郕���f�Ó�П���'!�؟���poy���e��l^�@������5���h��Z���Q1\¯N�G�c�o�x� �U�R�܁�:>9�	��~�(��
�$��@�4��A6�
���Esg��Õ���8�>ۤ����(�L�*�(Z$�D"ъh�"�H$IBi��>�&��V�Hs@S�4~it���ؽ{7��e�9�Șs	zV.f�C�t�.�!��O��a��/&$$�$?����7���7���K0pS�����b�o_em�*Yn�Z%}<���F7��)�C�A�
x$��a��>8�4����*������k6/c�&H��o��ٟ�G�a��i'�������΁	��y��c�uiX�;M��;�'���:��X�)��x�e[��J�!�?�آ�
�Nt���F��8�[M��Eg��[j��%�W8�9�yI]g$�Y��)��^:�VT���Zָ3	�d��Ls�K�ES����o�c�A�<[eK_�7s3d�@�՗©s���S�e�P�4�k�4�Rd8�Z�u@��Yy��s��V�H$�D���E"�H$��h�-�Y��l�A޶m۫�
�����G'N� ^��^���o��oߎߙ������b*
����o��fEE����������b-�5�h��2�p	�رc�`�&���G��ָ���F��瞃��z||�m	299�)��=)	H1<ܾ'r�`tvvq����	E�M?x�}s���38$Ɗ�6jkk�ij'(C?o�1������ncc}��/=���*��@��a��/�Y�@�%�rmݷ�9j�.>������$�6gP2Ը��"Q!a���%�c�<C�S�~������ff��S	��n?���?ݗ�V�p�
� ݬ�"*R�5�'"�r��q.nwvv�<�!�w
N89:�/^n�84��>>~Ę�݌��6��L�6���o�a��k}�Je��:BeH�N�gE��eUu�����j�t�����U2��|�����-�b��us'-�D"�H�H$�D�-�~u��ҞY��ݝ��yJ���, 2�������X�


���8����������T�R���� �SRR���-��+]VVv���C~�,J
GZZ�X�srrT	D�az~��������ˠ���j~қh
��_�OJ?p$>9����g8�撆f��%��olJ}�?V�c���yE9���e���WX\^�p>%<���<u12�'5�g?�C%�߳�����S�%$53�j���1Ǝ���/^���Y��y���R/�LMckvn�֟m����]bH��L9($�,�7���
[�|*����)(�x*�8��l�t_��̀����ʨ����TDL9�I<t��~�0k���B�ɀ�\C�q@���2�)��-ag���5t'*:.�dfj倾jf3���M|
������m^I9��9�"�H$�@�D"�H$ں���=��/(K��A�L^���Ls��>\��˧JX���p��7���@EBg���_�.���	㍩uq0��K�Sa��b�G�􍚧~��d5dj�y�w��J&a�� �$#��#1�Z��n�riv>��x�E1�~Ϥaܜ^� c'vp��ʇ�b0D�:��1������s3��ߜz@�(sZl��r�q3��n١Dp�D"�H$� �D"�H2��	�����M�,d�\�a��2+���l@+��i�(��k����w���[��(�)֙JE���H�H$�D���E"�H$�hi�@�������L5��"�H$�'{wt�0�atq�|��6���b�u�Bm���|\R��hzWK�=�p>��x5;��s�t�B�����6΢A��v8�O]@�}N��Gަ��s��oJ뫼;�
1@_h���	�4�C���	��
x�h����
����	��
�&@��
�]h���� CQݗ���8��?1��h�{�P��*.��@��M�h@�6@��M�H)-z��h��n���h@���0Z�h���	��
�&@��
Np�	��
>!�M�ބg{Gi�\WZ��h�	��*@ߦv�L�X����<��Q�4�a��~�����;\/P^32�n��d��@ɦ�8�d�f$ۜ�E��$�d�0؂Ȕ�RZ��B�u�)TΞ��!��-Y{�����p���7�<�����}�
4C�!9�,iX���9�{a��T�
���C��pm��� 4h���h�	h�}�ږWVd'@K�^q�@��f�!
�f��h4�gL��v���(��k�Y���ܙ�wG���C�kZS� @Vp0�P��w�rrrt~YYY����H��=ztppP�������$C3@ϬlM/o��xd^�1;���O�l�(�yں9�`�?g{hq�7|��	� @4C�M�nnn���LKK���{�/77���Zuuu���[�V�6ǎ��l�	�җ�=X���R��J_U���\ii�}�Z�R�m7��+�#���;���vם���J]n�V�).9k5�y	� @v@3�P聁��>����>���.""�@�V���/�r�|>��K�቙���
>��#���>�HO/)��n���^Iiy��'R�O�
OX����w��ji���k7��i?y*/''�gh��|J��nt<'��C����FFF�twwggg���=;;[XX��W\\l�X�g�޽{�����LY�QUUe2�T������^��j+8<s6�Ĝm���G�Ʌ��o�ɒ�/����S���O�<u�rCjJJ߈见�r,�7����G��mGzZ����c�J��d'��?����0�G詩����x	Ͳ�#66V�����$&&&%%ɣ��h�F#A�T9rD��@P6�o�.��-U~<[q��̙�krg`lJ�?���o���e^9-o�����V���^�&h��t:�A��9����%&&�…���7��_�n��m:<<\>i{:p_������%�$Z�[[[�Z�ȵD玎������e����A:���W�{�+(˝/32�z�$.�ͅ5E�9��'?�en�8�|�l���r.�5�WJ�&@�
�B��-�5?9��w�����їh�v8�-�			F�Q�3���I���***��&''���t�����Y>{����������i�)��mR��j��t6�����k��O�uh5�_���_��wo/M�q�/��6�y%3+�e��FDt Cf��6�He�u��*!��4t�9s�j�vPw��x�2����y�=Ϝ7�͇�@��t@S�����Q���۫}�SQ�w�т1h�6.����Ptvv�������V��TWWWVV�z9rss+**����p����<��̹�ɹ�w�6��y��x1�}>>�~��xQSs���bkh@�����@�@��f~~^���MOO��n�1�z���
�B�(�4��߯�
�A(��Z�-ϗ��9Rv�Ѡ��y��Y���'�����u���)H
h@C�����E]�A}dll,�Ru=����zxx���O!�Y0���400`<�g���	�k�N�>����.f�:�B7"O���W�wpt¿12��@P���(=�v�׫k�N�<�
�:�����!�N@�dY�q�[)))f�nh�ϧk�>������-J��:xP�к�p8���-KOO���TYG~~����-m�NKK�хqЮ���Ө<z��bes]i��'�n�}���Vr����C�?U���}��F��ؔ�'�t��`I�g�w)L�t������t��ߨ�Y�tkk����o��~�322��
ic]��v�333SSSտaD�`�f�[���g�k/&�U�56�û1����hw�����W�Z?�J��.��
������X*>doj~��ۿ�!� ��f�@+�[��昷(��a��O�6���8{�g�����]�l�����_����.�}����·ɹ��K�5/tKOj�s���w����[?	�@
���	��M����XW⬎�YM
h���RAm�$�f�wn��C
h�h��� ��_�w��&�f�h��ƔO��v��ȿ�������2hv@3?ػ��a(���_� ED*�6ɯ�8��xo�\>��{5b�O��7ΟO�)�X@�<�a�?�f)��x�ʝ��y��\W����}$�$@��!��Rz-�����m�
 @���h��B�pm�
������6��.��	��
tyZ�6��h�`??!��	��ͫ�;��(x SA*0�{�.
�j@4���X��f�
h�h@���t�^@�
���&@�0C�v�h@�܀6Z�hp��L�h�Z�6��t�݀6zb��
-�}�k�@�z4@��\�M�6��OtD�?uf^�~�rC�{�IEND�B`��PNG


IHDR��QVh�QIDATx���mOSg�qg�@g�%ۃ��)X�+P
�H�Jii(-HA`�j�A`�S�hDs���s[��pY�7��1�,q?w{b���&�|���9��+׃����.��̴mOɰ��`5�ӝ�}>~���h4�LE�hBR������Z;����Š�E	��sUMN��u���H��~4���Q�tAQ��ʚ�Zv&�e�v�*C
͇;c
�m�ʠ��8ځ���h�ۑj����Ɲ=%�O�,���*�}e��
�õ��*�����e/;:}n�Խ��n��O��py�������ޞ��~�P��Q�=)�`�R��78=w_�7��*�ޒ�l1���8/R�;�E�2���)����T�O�{��ǧ-�ҀA{�z\ymПnO�S�W�|sz�w�b��,�3Ö���g�u���v��G�J_�5��$&��_kF3�no���9v��Ň�����O�n�2h��*���~�@|R��*�N6������ݵ����`S�P�񾦁��/��z;k::#��ޑ�����c���PWO(���7��׃૭�^Nx�)ߘ�>�\<՚[n�9=z������>��9�����>5���7�lZ��Z��I�Y���}�ϝ��y(qئ|���ʖ/>��`���F��g��J��p���+�ʠ�z˨�qk��hW_�}�g]�g�շ���h��Ӹ�W����ՙ�:e�](�><�/ܚY�}�x� �ݻ>'����X�ҏ�~	��+UQ���3���Y���*�;�`a��?��$�yv�r�v˴����s��gFS2r�.�ֵm���nܙU7j=o�ˉ��icTj�;�V�+�î}���z+Nڔ���5��5~��>����v{��?�p�yj��O)}�7�v�*j괜VT����2hzq�8��[J|�My՛��[��%V�Y���OU���:�/s����_�-�~st����cw`�#�n�oS^8�oЫ��V��+��uw�&Q�����h5<]�_E�I�<u69-;��Hyt4v�ȅ�(a�Et��~֫2 �+1%CU��\GFN��,�ŏ��[�/Y���G[���͟}�D�^��A�Ѵ�YXM]�;�8ڣR}M�W���S��:�ۏ��/W�2��CmG^���i{�N��\_L��Փ�GQ^ZM
�
������p$'�������scu�V�?j��5��_��;*�c���s����Kb�Qcl��{�" Rl􎈈�
�"���.�޻��^O4��>0'�aaT.��ܛa�����͞={�w6��o~#C�2d��x�����J�h������J��ן�Q��Y
�k��f�N���A�������ԥ��c;�Jo��AO׏y����W�J_�^� �Ǩ���&��}�b�A_�Fy@Y0w�Ν2�hBJf��5 fXD���ˉ�%ˋ�*�,F
���z��ͬQJ�X�q�߃>�}�.Bf��͟[��VlG �4#��-�>ZW]���$��3�s"*lݾ�;��{x=���Et�d�����$}�!:�y3j�0_��@x	6�[v�R�����Ԃ�߲mGRE�I�o:ٙ�4���3(���_��mn��K����f8���r�Z�E��������N�v��t��v�nȝ�r�l��V�.@����,l��9\ۀ�YQ���"����W�����A�2dȐ!C�2d�hL�,��W��@��l����~*�^����l��T
��H�@��:\c��eԄIô�ha�����|:4�s+���JƖ-twD{�Z�l��WG�:[��x٫��֥F�5l���4հ�dXo���V@���5*(#'M���1�.��>�s
KDŽE��A
e�7�	Kh�SHD�x��;.%+��*a�����20�"���
K��b��5*��r%k!�
�~'���-�7m޲��R}�Ϭ�W_��9-g�����	�U��y}���y$VvN�A�s��<�?�Mdji/�a��5IRĬ$M����jނE�6����sQP��K*�m�r���6�F����ن��@��-�ӑ�����"$|��IS�b&y���α���������j�f(95��jGhD$ۊ��ZP�p��}���3h1� ��֎��%�Os���c@�) ت�%g�9�à��2dȐ!C�2dȐ�>�SO�@d��]�w�[�+pˌ�i�m؈��s���<|F]�~}~�&���P++'���;��a��I[��b֜j7g�|�U�������}��d��\߮��aS���^�2B�����pU暘��#�l;X��C��#��ì�h��B�"��+pr��);v�����=arxM(�hݡs?�Iqɥ��!=F�	y�<�0��s�M,!}�>[�J�u�hf%��5��a��L�������j��S����/�!a\��2����֭�Տp^!���THj���W��P���
��V���;u�-�G�]�[�%��t>���Dg{�+N�z;�S�@q
Q����S�Y**��bO\B���W���[w�7H}��l�!r��/Z��� ,�������{�j���D���=F��,(�hp!9���#1Ac/]�L&�9����iC�4x����bX%9-##kZ��qI)�r�ƌ
��{��its�v�֬�_�x��ܺu���Zq�=w����*�;��~zJu窕��R���#g�����.�S�>�U�HH�vr���kg�8�xv�ҏKIG�O�G0h9�B�2dȐ!C�2d�h0H!��po�x�ڪ�߻o��g��kq��`Vo��a��p6�� �����_J�=,T`�:l�>�W��u� (3��K~����Ј�ʟ+h�����Prr\��_���$�H%���o�a�����d����G�Ԧ�����S�<�l<�u,��s��[�-�Q������Ӂ
2i>̪�~c=�i.��Y3f�W�ߡID
]��$�����Ӟ���/�k��6Nn�j
L,);u܄�\�{�}��iK�MNL-�X���(���	�%�4�������Ç<�-[�u�ї��x�)i�ϟ?��ܼYT�w�ڀ�Cj?6�
��u$�|���Zw����5��ܥ��V
����}ͱ�:k'���˜�|�cȣ�p�jE��r��#t@��Z�P�<��z��WPX��π�4����0m�.=�0<·�=-=c�ű���U�4�>	d��\i򇖐�D�s��-��6#3�K�/<tX[ߘKWJ"�M3�h�t�Q]�5�½a��p�FxF�5)�]N|��7��EXB����@A����;w�>}��ӧc���p���6w��72&6=k���+�'��c'eM��ol�;�O�y�/�\���n�u�t��Wd;�����ҥA�����Rnhu��v��Gȥ1���EVL�#��&��򹑾���"�7j|�Ӧ��M-���=S@���y�Ѽ�I鈣���*(��Z�2dȐ!C�2d�h0�Ο=������U�;v�z���!0����@�S���P�b2[A	j�E/0�G+Āoaw�T����P2������
S	����f��{��r-�V7��B��R��<��{�~õ�1fh��Y<@D�!(,Ak<@4u
��z@��]�C�0���S�����^.��sAS�%�4$�
:�VY����퍃ۛ�R2�m�c�tp��ˁ�!G�#֏w?[�y89�NQ��I�.m�L�6�`�Y3M�z�T@�@�����U�k��3rf�U@��9�����_]�0P��!�ha�d�����d��Vv.�>C���1�w�>��A?�)�<r�⬹ť���N�\}��}~[�:����O�8	�f�c��n=��+�ڹ���J.���[�m�����NNM_�n�ɓ���?0������o��PRV��'�dW�^�v�7$'
�=��� ��4%~��'N�ڽg߬9s�j�!:ռ��<q�$�G�Nas�|˲{s��ٻ��n߾#-#�B�]kZ�a�椔�]{�9z�da9�n���v��[�l��R_Қq��k�=v���K�1�����{N�|����L��2���u{��������={��_�v���C��`@j��\)���:O#4-�·�|`0=���J�7�]�Qx�
/�م���P���%�.~�������3^�x�'��
]#3���&����&Ӧ��f��x������Ɩ]䤢yXO���^�O~�)����&Ǽ}�W�Z}�ر#G�V.[ae��;��}�S�x{R���Ì!�s�K���CZ2�@K�}�϶Nn*�ə���>&5�Wv�h�r�^J6��06��5��':[蠥�2dȐ!C�2dȐ�4��v�&͚X.�>�W�:|lpl�onjT©�lݞ���������2��w��{�L-�WQ&v��]m������⒅��޼y��/,]�r��MrBW�^�jm��e#t~��ź�0fa����;v|�oh?�?�֣�_�9��8h'�mz^��U��޽�F虜�Ia��w@��4;'7_����~w���]��LMH�إ+��GFo��ak�Ԟ��l�q�z�c�O�۷��Y�ԆXި�n�m�߶!�f#[X~�e�dD����[�;C�o-���r� f|�KKM�fzF���5Ѷ�lT_4o�Q���5j�j\�����na�b�w��1��%�p��D���❫
�����mh�>-rݘ����Z�r��Bv��
BWR�4!-��@5�8�ASR��c�	���W._�{�n��
�.�tp(�۷o�ΜŃ_P��[6#����&��ᚡ�y���_d���s���޻����`��3�>�14�g3%��!���Nn-�v���6o݆Af���Ϟ��v��(�z�:3h[���^��x��t���*5=��ۺ���7�_�,����Wd�$�9{���+�ٳ� �(Lq9x���v���W/_^�r�3�v�y��}��w�S�8
�]CS�d��VV^AK.]���j���πo��B�l]���ׯÚ�|�Y렱�t$ #��>s���W���(����~�c��U�3%�{���](]3�5�jQYż�2<:�4
DU���
H�E�ϧ͘ɽ��h����Szf����Hf!"�OJ��0�G����sH~;gl(D�7������&�%�SXR��N�
��\��޽{�e�n޼E�up�	������yx���̬9t���'I��.�x��͟�"�4��
>�;�Ӗm��ww���_���J�qv�Sk;K['�x�e���'j��AAQ)w�=0h���V����_t�����2dȐ!C�2dȐ�p��+�g	0@�����E�HЀu&�C��={
�
	G

�;u��1�n�N�F�ܪ�ł�q����6�
4��5�U��f��_��I���|����&��5�ѣGp(�)��
͐F�Xg���� ��?�w��@7iٶ��/���,���+/_���ݼu����Jf�S����O���ɝI%Q���ٴ��!�=��S�O?yR��"B��
h;e]��T���Ȼ��է#��K}��ٕ�_�OE��m�c��WS��{:}����Ĩ��iM����A��Z@�YSXS�c��Y��
��f�`���
F��p�����/(Tu��h枓�I2漣�D��m`ZM����smx'�#��>�2h��8�q�;4�X�dٞ���]�6d�.;�6��BN�.[q����M[)�����߻w������d3ˣ���1�݆Mk֭�FA�L-dw����w`Jz&7�?0����?�m���?�z��O?�L��'���6�N����6�GH7����_~
>�=vN��[���q8t�c�}|t,��ܵ�!ڀ&������
B�Z`�ȫ�4=#3X�Q����
&棕�#O��H�؉S }4�W�2��}��.rc:3?�=�������3�r8Wbr���1MC��Pm�&�;w=}���
��\�r5��2��҆)s9�;n�gr���=~�1���4�<$CPǣE��n-�W��MI"��sg�4�Nn��9Vv��0��2ѱ������	�ಠ���];�- j�'NILcb�@��x��Ѳ�sHN��ٗ6����s��t����hA)%��gSr�޽ת�,��ȑ#�j~�̬��`����O�\Ҁ���~Z�\�Ŕ��{2���	��W�!\/{��*���
ӡ�1
Ԯ�ןU
JK�2dȐ!C�2dȐ�0����'N@��l<x����N�(ȟS/��)	�A�3
m\Z��w�~���Ǐ�(�w~��0Xr���8}V�2��?s�,%�j�މ��~���+W!NE3Ǻf�5L�M�I�46xlE 4%��4/8l��s�
�m���ݴ�2L�G�����m�w WEF���|����93>n��C�>~�0L�Dɧ6T��W}��n޲m"M�M������x)�)�(�:��1��jhw��|N���=�x-'��ꈅv�>M�y+k~<ȸ��� ���
A�� 7!A���N�e��H�A��m"��);��/�
�)Y��' ^��_��sT�
�[V���V�kdN�h��y=�/4^��
�>���pޤ�t�1l��[�v=+�ݺuk��lV:�����Y�C��h��� '�/׹u�#˷�w�wq���2�%4�_1��Qՙ�g�޻�q���X�z
e��	
!�O�:��������;�~Z��g�ChJmt��zFXy@ry(���@j�i�R�>�#5=�����c"IN`�� ȫ}F��*(��7���ݼ��z�*�:������ґi���(�I�#��C�+*�z��C�L/�2��_	M�D_���8�����ֹF����G��B�ؑ��0o�odn��.�(�F�U�����c�ʋ9ja�"1XB�,�̚1�a�w���F��$*7s�t�@�=#�c�R��@�k�Uu.��~F��Ф7��
��;s6#7(���k�+5�%c'��9��;����v�&�������0~���H�S8��s��1a�԰K�c
�4�����6&,
�,ް§;1�&���j^�>�c���n�~����v���A�2dȐ!C�2d�h�>w���c ����ެ� 0`u��M�-�W�e.���
�an�>�3�]�I��?Bىo��~�ec�	�y���154y����|
�����/����#G�A��›�7�U�!������'��q� \�����㟌̭9���PEB�2O��!{�c��h;F�W
0������p9t�l֪���`&���E;�I�L�Y�7�u{]��~6<��5ڹ��U3�Y;���<�gs)�ey��Ș�:�:�{���[?�&*����*��'ŏ	��tz�\x
$U,{�`ֹpz@#z����.Y�ljR��sT�k #X\sc����A�}h� \��v�8TEa����S�20���ܵ��yE��qQ1 `,)�<$.?5#�eJ:~ӪW�^E�O�P��i&,t2���r�JIN�K�ÇM,l_�|�����o`댟K�V�&L�B_B́�I��!�D}�F���#��[���3Y#���f�Z��G�L��1>C×��T5���`�L����\��Ĕt*tt���q^�, �~U�ݫ��Ƈ�k-A�L���r^:�П~ֆ�@����S$x`��N�K۹s7������K¯�N�1����3kƸ��O�}d�0I ���,'��?4f&�(8����W�8% ���@����e�鉊�=&��բ���7���gT�P��p�;�o����W2t�`��-�h��)�2�d��om�żFk��Ez��ݛ6oe?e�f�i�%IUb>GZV�ա�.^�u
���Fq��3�+\���W�gO߀Ș�X��x���W(7_�g2dȐ!C�2dȐ!�1x���kH��,m��Y�άh�l<�U����W����y��-V93fbR
7HHNۻ��*���s�(]�b%�60C%ͱ=DŽF�����\7����~�q�P>�x	@���
�T<=�h33��C���1��o;u�86+��_���h���,���9�t0"Q�(�%_г���E�	��iAsX�@�۴�3���S󡓾��m�磤m�4���-{�p�<�x/5�b�όaF�J:��&jz
�7���8c/tcЬ����f�(�\����\��M�y��ML��5�s����� ��ֳ_V�l�,hi�#@p#W���e���>�͚W��7�����3sN��y����
��z*�3�s��R&ip(�OL�\�|����e�Lh�&��a��5���1éI�:�M&aڲ�b	�dW��,]��y��P���JFWA�؇�������5�ٸ��^�����*j��#]<|Ćp���Y����Ch���"�j���0>C30G�
��͛��M��@�Qv���.d0
f��z�b'qá�����������ڡK�2��9;-�#�W�Wj`j��[@�g�ۣ�Ʒ�S{��S���44��7̉�<�n����ؖ)�{=�)L�	C�?{^����(��hh2�����h�f�v8q��04�=9=sZhD$��x@�KV���2*����7@�3%�����C��B<�h�6�
�	Ii�s�/�3H���O��dQ�(�<t"'7/�ޢ{2z�!��8+�WU��1�)|�ݓ��|��f�"%s:�j����蠽F��cc5�y.��Lڈ����w�Y����G�2dȐ!C�2dȐ�
@R	�#���;P���`:`���	zM�<S��QP�_ �+W�l�Ďm�*�L�⡪1�M`Y��;����p~G�L�����4TGP2��A��l&���/~�Y�ڵ�6#�c27fH>�L��_E�bFUݶ�����Z�P@�/Z���^���8&T\uph�[���5����
B��6=&�^Y���vM5�w4�l��ر�PǏ5�?��a����[�ԁ��m��v1��fx|a�
ߍh>�=x@[ٻd����F��ee����71>���6ML��h�������10E
����u?�q&GM��z����7���Y�!�1��g_�+�1]LZ�����ك�i��4~ͬJIڑ�P���O[�	
Shq�p޸r�*$���5ԩ���o7lD�e8���3x��1��A���8��}�M=4�xz��f5B���2�w���b��Is%����&�zz��~Br*Ct3Zknm��jC�Rҳ8���_����U�lن��V�@C��ć�����|�K����6�E�c`�|�6}����̀��3���ܹ�n?x�*��ĉ(�Y�.��P���Cc!TTY�I�,v�)����x�]pA	��64���eOɤ�ȟ?@sR�����h�K:#��3a$.!ijB����!��{X�k���uA���s9B�;*p,;I-E��'��f��X�ͷN2P�q>:z�sl�M�%}Ԥ��UR�2��8�7�]V��56yղ��GMZN��������z�_Dˀ�kt�C�\<�Ak���(]�G�j�3��/h|�T��)�3w@��f�̃�:�0���d�v2�M�DIc�Q�M��U�
Ȫ n����b
↬�(�+.�6���111���ESM;M:���Q�$�m�N�����ҋ�Dnf@��3����|�;��%��s�W�R�T*�J�R�T��h���A�L���?���~��9
ڢN H����Y`7R:aY�'l�����ă�
𽑒([We�ZG���x�6�H�3���~��?�:*�
ev��o>��!P���#0��v�"8ֳ�נB�7��T��od�G�tQ
�ީ3��w�)��Ѱ��}8,����ċk�/<�������-O�mv��O��{��<�88)+'oP�F��%9}���ygg��CG��剱�����/0�W�q�����5#����|����%�S�����A^�I��z��i�Y���,�k��D)��sOn{���g�3.��E��ع[f�1�s"i���O��!8�[%�/_�� �� _�ʊ�b�'�o5�x��'���9�Ѝ�j�0�d4�୷�..)e`\\*8����߿������R���ƹL��\��J[�|�~�ؼz�ub.���ڣ���W� @�r��|.KIp��@��}@����9.��$F�$�x����Gh���8
4
��(Ǩ���ہ�Zm�/^�DM<>�:������N:H$
�-	-��_^��x
r|�ډ� @\�\s�e��ݶ]X����t8g~�a����(�x�g����sѠ�cO��,�Y<Q-�ͭ%���-�p�u
�� �".��@��ua\n���Y�����X�1q|�sk����\��,!�rT�߰�����]�%�oe�YK�U�+����'�\f�"g|����3h��o�aЩs0]P�Zr��>S��u��g`��qu��wA�R�T*�J�R�T�ۓdZ���m+���@_��)�5P���7ׂ�(!�.�;i�r�a�d�'��h�o�9v�D��)$���
���t5�Y�q<]
����76���v�?������$���H�qv���|�/^z�
ʼ�#�^�~PnYno]��鶖��eI d3���|��*���
��v+]װ�_�л��@��կ)�Ŏ7У#����#sdX���W8E.5=gLL∀Ι���xsf�Ԉfר���
��-]�����]�[-�b�qoK}3
`y�R���ˏi��R��[�^H�h6�*����
�mj���IH4��X�p����s�
��=�^~ŋ���ӹ�VS=�XN�%^���������?��\&��h��IF-�ο=��?npKD.�,��VUs#�ynhl�Wr�����g&C"c��~�&=8@�
	/�/�7��_�>}�r����?2�N���_�~�!8������1���1�1�oV04J�.<A��'#����H��#0�O3r�Ϟ}?2&�KW��؄9:FU�f-)<l���g�W,�]�����F���!�7 ��'�� ]X�
5�k�Y�l����#E���x�wa��z�_T�͹`f.���ؤ��ٻm�W�$�!aVF)�i�a������꛶5�mǸ]�q3.u��!��͕E���ڦ,A�,6���\�1ֲ���)K�������?~J�\��?��s�5���|4�ڰi�-���<�򠷐��폕��ys��I7�������*�J�R�T*�J�R9@�o��V27��/t�@^�.�	
r�kl"cV��g�r����مwq��`�Q+̤�'ߤYk[;PR�����N1�_�8I,�8��
F�&`�S�2��q�V*���>@��0���Ǐ>��._�L��Dp`��]S[OW���K��=�P.gE�C�y=Q6�,��6y�%B8;����K����b--]�ݱ��׹�̌
@{S��X0[n
��G�E����O�#Ak�,�Na+G��MMI��G\�ק��-��:9t���ώ�Z=*�E'�{ה\9w"+'PZଇ�����L-@IБ�N]<�2��
8�l�\`�PA�!$D���&����1�gL\Y:A�-B��Z�Lቆ�vLK�G88,�Z��db��n:��GuK��,q�ٟ>c�`\�ɻ�re҈���ڲ;͘F�n-�ڦϛ��F{� ?)�	e�IM'S��j���kbJ:(���gW���k�!��%�%(}z��&$�˂&�"<j�h���=5ѽ�����)�3���H���H�����I�[8�����4d�qdt\BJG��X~�́dt�@`\��H�y���}M��we��gU�����(7+}2`N7������׳�F�A��6z�q��w;SϤ1��a1�	��3�x��1��P�x�RX�
`_�g����-�ZB#cbSy|���e~��S�<x��uk�0�0<DÂ쿌�ͽ
�Srڼ�s3��"�8 �}V�T*�J�R�T*����e�O�ip��0�G��۸��@��J&�J!��
l���|��	n&Sn`KҠO!�.
2�a�P8�
��M{��<;�ton^���~�Ե�k�vg��cP�
�F��Pko6n�'Cı`Qvj�\>�ʄ`���5<�!񹐍ؙ���0p|�8�T^��h�Nl�j�L�	QfJi��!,J2㇞\����x4�����Ѿ�fVX�b�xwVvS��jbD������B�c�/���dSՑ��h&�V�EL|@9:�z���*)�`ĐM�4��LP.�e�q=��UXf��_�=0���m�Н�0���&�Q4��;h�)$�`�)��JbG�q�6��9s���SL6^g�T�j��O	-�>+�XJJ�̎�=��^W0b6J'����0-�r{��d�M���
^z��~�����8:�|�рf�[�⸤G�9@��܅KX��;�X��
~򺺦!9m�m���z�0���̣\MV�|��T��%�K��>L�#e��GE%R �mh΋�Lv�;6ڂ��-�%�򳮽�]B�-��]n��͠my�
-�/">��ʢj�J�R�T*�J�R�T�@'AXv@�@�h�[�����g�m�2='g�|�f�)����/\�
Rw��odk\��5<�7�!���S�
U*�)��A�>�Pvd��_i)[^�;�k���X�f�8�)<���IDŽ�{"��-q���7J6o�����ߪq�+�G���I�8U�T�p�����|p�{Ѳo��m��Zf�#��hiG׾��s���@�='�^����{���`�]�������b�f��S�48
@��!;p.>���	���d�36q�Qj��-ځ�	�/��$rP.�)@[����u�͡0R�S3��e&Κ�[���C��<KW�3[��MH��-\U�j5��f�%+M��v�6�ʓ>|[
}��g�J�R�T*�J�R��$���xY�7n�I�3�i&X(d��֩wH�v�,�8qT���)+|�X��؊ޯ�>������qB�v��q�-^x��6��vݦO�~��K�̀6$o����X^Pb
2�e��M�5���6����N�!4�8T��@(h5���sZA����V�wmk��Wl��hC\5Dρ�Ʀ�{g.ɡ��֞�o�˸&�Y;�<4i6�p�7�0�������1�M�۸-�=0b���}V�T*�J�R�T*�ꎑx�Ig��Y������0�0ك�5�
���*˩(�_\YX�ni�ʌš�e�5����=T�S�jAaM^YC^iUVA{e��͵UEeu�{;�����-�9@�@̤5
�<o^����i�eb7�Ѥ�Pq���D��֎���g�囟�[���ђ�U���2�ӆ�n�X��ãƐ&�;����T����뛡�\k×���-w��z�ơ�|Q��Y�R�T*�J�R�T�;LB;)9H�8I�0x�DG�C޴w��;����a2{�����ݦ��v��2{�%y�'��\��=���|M�<�\=�ٝN�
FF����9몷��y�|��&r6(�V߼��V���AҒ<�}L
=P�@T
��d_S�:�-��Zs�U*�J�R�T*�J�R
I��ۖ�oπ�/B8a�eSH$ٺ8�// �4>9��	��7��R݆42���~L��P�T*�J�R�T*�J��]��#�˱��tr���g�J�R�T*�J�R�T*�J���8��x� ҙsV�7���zM���@�(
5�ޏ�
��
$�Vh�;N�mn���`�r�0>_>蹘^�/�=B��K��m$���~݀6@��6�(Z�Hr���3@pJ�zE�
�МW{�.t^jjO7�� )��Mmi'�ґI�[R��t�m���z��|[g*�S��s�o�M�2=�n߻?61�tt1�}884=�brz��™<~224�͎=K�G��C����T�yx�5p�H�w���x�h0���åR)�"7�9��+o޾kH�$I�$I�U��>-m訖��~/W	���[.��zc�Z�6L���r����F\�R)
�ͩ���̽����lH�$I�$I	�V(���1��?NZ�U�Q�?,�y������V�Dmnn�ō���㕕����J\�Z
�/�in����������W��-I�$I���TX6O��af���am�P�X��#���[q{C���%I��ki*�8��ꦋ^E7�EBTQL(/�%$1Z��4K�bb�����[�9��v�Ӄި�`����o��0vq.�{8!��r�,@�.@LJ��� ���	�НN�6����m44N@�
�m&@ @wl���jپS�Ϝ�M�@��BI�����:���&@ @��R��̾n4�Q���w�?��Ț��i!_x�m�
'�M�@�n���W�.tYY=Zow���cz͚z�d�ROnt|��tBp�h����>����Zv�v���{=��o��YScϯ�<}6����ܒ���=�x��$�	�prt���ʱ]�ׇ�X���ryj�87�&~9��k��ب,~.}��Z[_/���Ϳ�T��iȚ��q���ۇ�78Tx�(M���m4?ٻ��&�0���N\������M�xZ�>���Ltc�n�t-��
��ZEa����\���9
޻֦��D�b��+�ӗ�=���� �~�z��j�����]�V��t:��uv���+��5��)����A�C�u��UnҎ�09N��ܽ��*�Yoi�B��mN��X+�nOCj�1�2�@	�e��!�����;2�w��ɦ�mv����

\;f������hqn�AC�9K���£�:����6�><[ZN%���nOU��ŋ�z�ٹ�䗒;�]52�`���$�4P��	�Mbߢ�ة�I�ƟϞ�z�H@,{�*'2X�`�(��O�m����eoz��M�.}��������UG�C+�m@r�3h��{�e�Yv��O��O����Ș��U�`�p9�"�Ѝ��eN���ԟ>Rn���*
���g١V��U�4���Q�����-�/�mN9A�oL�VT�4�1u@o��:�Z�2
)Ĩml�����?���WɔoMN�~͡ߞ�Q���i�S>���`vn^bn��\��@�@��=U;H�Ɨ�|+ɲ$ѫkkN�����իT��{d(�
dZ.-����	�/�����T�4����6/w�HMG"yK��V�7�����ݗ�4g��;��z�:�򸮱E
����{�y:���!�J;���'~�'�jYvn�p��`Mg2�vaq�{����BZ�-v����;�٬|5-3X�F���ҡ�ih��Y��.7i�
Gd0�����������!��Ȟr��5�P��N�����.	�H,����X<�Y_W9�K��#1y�u@���#6��=���qCr����?:�h����4�>5sW�����!���w&^UU{�*_�Af0���Q@@$Ap�Y�TT@AG�THP�̞�d6�ZA�ρART��0�}���X�}���^�s�>þ��}Y�;��;� ��!>�|��/h^%)8�dC3��&=���-X�i��RD@� � � � "���w����'����ǭ��fv8���{���S��Nt��{����F�V�^�J-� � � � ��֒�et+s@�-��|�L�Z�is���I[w���ܒ��a�f�����elaMi�����e��?rr\]k�#���ͣ"�AAAAAtG��6y�'������;v���Ͼ����Vv��S�v�1#+w��=�Z����^�ն5VSH��U�H���<�}�=���v}�Yn^ۣ�[��lfi���X���4����hAAAAA�#�I�1��kSjz�#{sn��޵7mdn�o�sbjw�ٗ��о��K?Xe�{YK_I�����1�qkcbW��]�<f��1�LBp��=�%K�������sr`��׺{�\�x��s����t�d���~v�!ZAAAAD@w,Mv�^�H��w���\Rm�n�:GD�Į��Gtʶ����_��^ene�e.�n�M�.�����)ҮR���C�F<Kz
]C��3�嗳��o�\@{��~��¿/��o����Mhޝ;w���k�Z_h��mG�555����/5|����NxPWWG7�_+�<�����⵵��(�^�k��i"� � � "�E@?M-y�C#���[�����$�;�y�t,���
��!�7�g��I��\v�&
�xg�Ju���s�.X�lEl���Ǐ�~��'{G�	����)��:��ܪ�:�3U�W�t����7���M�}�Zh��mߟ�VTt�ڮ�Z�E�OwkX��}ڭq^�k�J�@��^��ފ�YC�������N]����e�_��R��udT�W��n<ܽ{��6��B���*n�8��ٜ�>����E*U5�	��J�{��)�L�i�=��/{��+W�?;v<{_Ρß]�����J���Z�Nh�xii���9�y*��'�Q���/$�Փ9%� � � /""�;��F�:
�$ޙB����D�Yi{��DS��;�I���=r̄��Y�\�1��[���Z	�� gΜ�c��0oK�Ҳ2�]���=<�����֬�����7{�cKEL[��9;n�
7�MgrI�t�Z@����
	I��D8��,��f��F9����4m݆���e^#�Mbhh��0�������h���b���3��K�jC#���1�艏��ü}��.�^4,e��	S��SK��c�+�F�x��ޜ��J�j9����0}æ���5�C�z�9CP� g7��|v׌�:5�2�P�(EF���c'L!�8��k[+�ތ��Vbc_F]__��s�.C�}2}�>���~F_�ޛ5�o4�@Fuu?رL?�[x��k<�����ڴ��vY�U�1�7q*W�����7��o���ǜ���;��0uƻ_}s���^��\;n��`n+�]�ZKAAA�"�E@���
� ��Yy� ��,+�H�5�I����dd�^��e��w�k/���J�g�D!`9"j9�_�t��ՃXf7�ᅅ?*�P��MMxہN��ڮo�<�(UMM�?��F�"�oݺ������*e��W���Y�����`.--#G5
�jUph�W���p�����R,�li�������4RS{�ve�E���I�O|N�#������񉆦��wf>z�d����~s�ۛ7o~~��-���k׮�7���1���%%-���!����3���?��(C��h�s�z��Y�#�/����sS��ک��k]��rG���
<v"����KEC}=�W�A|n�����>,)-�FӖo�ݸGW=�N��)�n`f�o҃��w�-����0�_�;�ۏ	�>:��ψ
�����<A�z��:�򱻉���5?e���^(��4ṓ��f2�i9sJ� � � ��4��7�	芊
����'z��!��NHنw�(QϚ��ޒ�IL4�eAp5�O�0���B@k�w��%%%7o�"6�u�����ݧ��z��‡yy 	%�M�/�nl�gMhX$q��O����h 4�W��iB#�V�YO�g,vև9�6��Ac�P��I)�N�<�@$*�x��i���f�f��ͦvcb�JU����ማ�zWU��֮�U$hjj"곏�#}K�,������Q��;��R���*9u��yAʹ�$'�?��z�;�H�BhmI�Z������U�hͺ
|T¨���x�9��íˊ��w��8r��q���7&195sO���K��ʌ���;2{_:ͼC��Xm�**nx���53t�B��:4h�v�m!K"���d�btEl�:z�]�T���yz�!�1�VeemmM;d��D�ߝ�E�H�Sނ����A��<�t�9%�O]�E!a��ˋ$�����Rr
����AAA���������Lh�r��U��r&�F@c%��7(5mWԊ���f���D�eV�x0w��Is�4���1�����\�,���"l�8/(�hV�E!]_鬋�������w�Dk�ody���ȔW^�qpv_��'��h��۷�e&�c$QE����

yF��j��	�\�z���'�8����'��wd�f9+{���Y���)�Mk�̬�F���<���:��L�%��<��x>���	������W�i~
1��l��?�ɑƆ���VF99��=��g)Y2v�}��.�?�nk��q��.0���ŬZs��͆�zeRѪ��}?�̓���Op��eW�|�s�X{��ѯ�cby�&������H���Mj��|Qќ� r�]�� ����׊�j!�ۺ߸�ܵ���:�fܠ�x�2�@��	��W��#���B�<��d驯�)���TEE�
�����P���w�^Yǫ�jwvv�	�(㌎� H�(€(IA��� Ȉ��#J�9>r� YPQ�d%����::��@����
8�Ze��E���}�O��{-�}E�-Z�hѢE��c�
�{�21���o	� =p��e�AW5k�2'�7:=�
���d�gv#�R�L�_^���c-��ҿ���7����f-[�y�)^�|��M����7`�g�x���� �������U���u�4�	&Pؐ����ڤ9�;J����?p��1�]_�˙��B���(u�L����o@�i�I�n�R����<�ȧ�_��l�y���RO"��|[DO�-O8Y�TY�N��{�pCmg������ߣǷ�a_�3Lt��<y
0���g�7���������ɢƲ��������)%�)Ӧs�l�z�����G��Z��`nPI�_��aq5�pB0�$��"16QFG��ܮ�s�Zw��-f1��A��b�9������^-��ya���߳���3��M[��zr,���c<�4�I�efqpc(s:�}�����E �*�c�D3�3�'
�?8
ga�ٹk�7����n�DN� �%��UA��
xѕ.W�r�2.'��@��S�4�j�0g���d����M����?�L��B�Hpd�y�E%��!7�-]C
)�Xh��Ƞ�E�-Z�hѢE�-��AG�Ҿ�PC
�#�!�-<d��m:�*_�{�Φ9ېp��|��j��kr�J��x\�r������-��1��o���k>H� �W(9僦���^n<�|�m�w������""��Xh�VC�U���(S�w��<
����{�ރ�A���Z�#���tW
�|���|�E�{��!V���i8G����O���?
z��U~�aH�vaq��.X�x�;�?!�9�@�Z�w��9~�$��m۶|�-��Nkٶ��x��SRS�fXHH���ڽی6b��,��C#�@'sX�Le�h�v4�Jd��V �Xw*.
\�t�>�d�2����N�9���!)���3n��eP��e��_}��	Í�#F)̥y�_�d#f�5��j;nbOTx����ȦK�GC3�m�y�E"�b��E�=>�j�e�,��	��{��<v�X�����o�-��u���.����Ҩ����o��q�B�p�8��=hӦ�8x����bB'G��0�D~ʴ�~�gq[��b/р��M��M�^�<m:m�^}�I��五�A0'Sz��#oe�X�r�|P�9�6�Ih�@�f���'�q���'�lt9|*�€AO=�m�K�ƒ#<B�r��1�&��?PC#G��;o�`�E-:c�/^�T���ny`¤ɦ�olՋd����n�1{λG�x�d��3����,�U�=g������}���{y��N{k���S+���'4Z�hѢE�-Z�hѢE��c5p�|7!&��Jә�F1OL�]�Gx�A�;vy��	aB�����H7l�������/�~%r$9r���("m�رc��rj��)�m��U���P�����v�EK�ȣMz��#�lh�������.y@#�I���*�0�D����Rgܔ'��5�$�=�hc�)܎;c�(T�$�%1;�(y� n!����7�|�{�U�,ʃAd�]Ȁ~�y+Drè�V4�<n���i�C��4F4"~rQ6?-8�)����.�=w��O�"=}ƬR���:�G���m%8�T�½D�ɸ@$�Ζ|Y�~�,[���:u��ع�<%����-���f�@y2� �e����W�*|֥�V]�|�'��I�kԩ{�ͷ�W�'6��w6r4@��(5��T�>2�j��/.���й˪�k<�Yh�W�<�ʈ$(,76m�1c�W�Q�:Вe˅"���C�"W�۵�U]�y��7�l�g����d���y�?=e2���"T�YG�x�������m��@-�W���-W縙�={t2}��y�G�U%K\
;.����y�5k�F7�l��*B�j5����Y��b��	'ת��,��,i�'?�F)�B��L}b��?�u��-�U/
/�f-�����uy��C+V�����D��.��_]Z�h	(YB�%{�����7�wx�%P���'����K��I�v&#�V�������T�6�͡ua��t�:s����'?7�|nҦ}�Re����<[�?��-w|G�-Z�hѢE�-Z�h�~�$8.@��4�ԟ�U�׺�x��3�zap�|�w���˜u��j^-�����r�[�m�I��7`p��߽{�oށ��W^KP%/?��!�F+Y�������uy����u��@ӀF�h@�; y��gv;�a�q&M0�t�J����d�!���o�I
`]�-;FS�rU�(?���k�r7o�,wUʧtl�罽��h!��
����L#([���उ�~^}}�/���M��ẜ�E1��(�:���@p��/Y���k:i�2¦`(��3�
���e*T�Cn���r��7ߒ߸[>qؿ�vW"�:�*h��kr�6O��4a`Hw_wS�9�h.�8M���(L�X��Na+C�3���n=R�)h����ܷ����ݘWI��p��q�텴����7�ںc�[��j�B�=u�dF��'v/��1a�㙮@�EۓN�F����S�n���ߨ�%"�yn+��A��HI��N��$D������s[e�(�����-�x��D]�;`٪2b"n�\��[���P�s2h#��!5{c�^�a���Z�,ѤY��ko�m 0�+��ٱs��'U��A�r��v�5�-C�R��ח���y�q)8&��J�&���z�9�d��ྷ%�yq@��"#�I���,&Z�'&b�P�0�=6@�>ף��"f���?�z
N7�4�-Z�hѢE�-Z�h�~���\��P���S�����N��D�BŰ�"%�9wN.0`�(��W��nؤ9	 �G�޽��;~��M��;����qT��*��zP�;IZ�c���U@�.��5�]�N��s��%a�shG@��D���K�.�?��Q�d�g<�9{n���&A�v;ˉ��5���[�u|����?p@"*ҔȀ�!
hZ�T|eX�pԘ�m��-MG��艓�ک�>r��5($�3L
D#��'���9�
7
��m�?�s�N�_ٴI���\����ѣ�4�L��]��v�i�
��5���&M�f��ع��%��l� ����Fi*�w�^
��텊"�h���)nIK{+�ͷ���Ǻ}�NR0r�ɝ+��_���F+U���.�0�-����=�vp)`�dmڽ�gPA��M��o�>�v�D'U���[8ە�k�M�Sg�o3�)�&I	ɚ�����onM[�$�H����!��8Z?�4��z���z(�=�z��u1�L�ʇ�����T�[|��f�z$t��m;v2X�,Z�$����4㛯`��&:|��	�w����g�� ����Iͪ��U�xi��Y���
Z:6b�%�6h�Tf�+�6�޳G�-�YD�w����cǎ����<.����8xz�%����o�zy
&j��[���pIy��&�Dr�3�4�<w�K	�7h���[�P,͖��[�o/vbG^�2ߍ� xw)_�L��SSM3�O��Bt��4����?������G;����oɄn��*�ߓ�O?���ѢE�-Z�hѢE�-�:�UIm��v�:s��8$Aw���:��6h2p�(�ΉKҥ�̘[�n}��|5�7#'ʧ���;w�2l0(6�1p�ЀQ�CC��W\%J�i��-�ШM�6S	���@�8#ܜ�E�|%x�F�Re���}?�ð��ڴ{B�蒏��u�,'|�˪
s�������
tV@�N�S�:��	�uE�By��I�s��W"���t������%�6j�xQ%�|A�6퍑uK �
>����t,{����9�d����&Գo�~����aMH`�zl>�U�����4LB���h]��w���
&X���,cb�Y۰ᕠJܸi��W�)T��p����a�\<l����ǎ��-	���o��)U������R}���nj�f/xk'��,Ϟ37L�,�y��k�o�6n��
��»�����b����q�2��N����.�6�RA�]E6vC�|�v��I�}�m-5��ﭳ���bէy�6*��>���zE��P�R�?f��t$Po��|IW{��!�nM�a��U�V��Q��P=y��O9���Q��hc\����ֽ�.��3�����֭y�U�)��6/%�-�
k�dp���D��/��#F�1�.����A��%
%�0�v�OOw3ƷE���;�˽|�:y�k��a%3hg��.'o]*		��
Sz���+6��؜�#��9�G���c�+��ڴe��(t:�n�{��u��m��V8ֿ���[;O�8t�hѢE�-Z�hѢE����7!L��X��)}��7(���AZ���w�!��J�.�q>�(�%;
���
�4sH�#u*7�7�O���փ��A ��EJ�6���a;���'��S����l�h�]+���߰	R�qƇ��4�I�w�uy�z�:��p�g�{�U;��*�r��}��t�ԥuێ�5h��zg��������'+�TGd�j�o
7�*���>��փ�O�P���j?tZ����;*A<����"�g)�54 �}�x�R0ω�oʛ��W�Qy�xi��k׭�	�=$�J���$�6Pa�'46*_��СK	ǽ���#�n�S$�+�߄;<��d�|�y��j�UV��+H>]ջ�K����P�ֹ�u�7��)��dO��o��veZ�nk�炆%\�|���m�'q��(W���4���G�����IS�˙G��:['H�F׬Y+>��M�ZЂ�^�d�ۓu�e�J�N@�IW��8ϵ��t�Vt��^}M�͙�ZQ)�򸯸6g��-��
4:l�ѻ0�	�jb/_���X���3�=y�����B.X��%1�X��$5*U��ޑ�Ɣk��d�.G�"�a���IeL)Ѡ���3�v��z�!�ޮ��L7���EA�^�	M��ݳ^��t?��t�w����ٴ�`G�~cR_Zi(cj�̥��ݬ����}z�$��3�!ɠﭻ�n�2�m�Qmz�t��5�Ӏq���qG�hѢE�-Z�hѢE����0��\G�tg��D��s�P�+���jt,|J�\��� H�tpw�;\�ӽ��3΃M��.��b�h(�+������3�9�(iZ
��;�b�.)��XȸԮ��*e�ԨK���T
'��u/ܨd������m�Cb���%K��Åq���5�'NƂɭX����`����J�V��j�	�L� S C��+�9f����m2��WP֪��tH����"z�~��5a�U�2�]Z�v�$z����z�AC��]��LK���}�p�b����ո��2F��Y�U����c�9�l��0���4�[��f@c��ݥr��ݾc�	#,F��z5QQ����3=Rz�kH��C|�шHh@K���w�ONX�ET�������;u!�"\IA^ۯ�@O���Sze�*'$
��z
�2|m�W߹���{��|;p���͛_5��g�2�H�[��jD�����9��r�o+p����P����%��)��4-�9�K��tZ�g�X�rf�H�{ЌYs�&�湙�۽��O4K����X�~s�gI]�g��-�v=7b*j�~K>��W������9�������}d�C�퓏��6��w��|�+on[��ֵ�mݴuۇ'N��hѢE�-Z�hѢE��{Ѐ>�h�2�����!�i�o�n��#��^��-x1�X��p�Ca��X00�}��7����U¸D��>�4U�R�)�H���S�l�ɕ0�Q:�5�ZB����rcy���\B��ȣǎ.Z�hRYw�X^a�^�#����QZ�܍�m�'�0�(�Z�3�ʼ�h	oq�j�F�e�^�
u��]�-q7��+�}5W���Y���G��'>,�j͟���£�&L����e���P&������SI�d@�Dލ��G͊A�!n��*�֦kZs�0k��R����%X���-�KOП�>[�Tٳ��kȀ6�l$H;[|���5V�V�^ce±a�F���Ug�4A3�g$���@+�t�r_oh�A�x(,2�L��M9�
:�����7ޚ�b݁�G
L|���mxm�W��kN3]��x�W_�Y��U�����ݜ�����D������sñ���{Y����ۚ�p����;����������A�hѢE�-Z�hѢE�퇐�x�84��b5���9��
[��b�n��l��j�7!�g�=g^@�x-S��ݻ�c_���5k��ܕ�X��9f�x��ှ'�O�9]�%]�J5z�[���s澵@���2.X�U9�{�� ,20��}�ӡO�W�k�[nG�3кC9��{�-^�<+&Y�f=b����<%5W���A�Q�M��{���<g�{���ē���
"�Y��@�K��@��0C�uc����sk�;-� kծcF�i�m^��׆tI~g-�׉ �Ђɽ�3f�&dpd�	��;�� C��=��E	��n=R<�%�./Eڞ�^�~�H�p���wU����shj�F_���g6��%���N���!�h
�|eK�g�o���6�o��ݺ�pYϮ~x�$M���?���	�Y
sڮ���i���1�CV;�}��{�8�����CKzȴJ.���hͦ�i;]�(�oD�-Z�hѢE�-Z�h@�#�a�̣s:�8~z�ә驥T[��N��Vm5�RZ[��X�P{�K-	KBb�-�P$��-dA"d�D$�Q�"	f�wz�=o���)Ǚ���7�}�s��y�?>��<�
�_�N��)���}/\����������%L6�m̢B׻������KQQp�wK�/O�:]�\-14.8��	?��x�@Z��?�އu���p
<�c�cX��yH�)!Q�����쫉md���ic~К�W�D��d����֣7(�q X`Ɂx"����t�m6�g��rl����)�]����@@aaAB�UX3��{��N�9ț�����[y�ł�y�+I�.�\�/N6���'��#��O%8ż����!�E�Ț$k��c\Y��#f�'N�&f&%���ٻ�Ө�������:�d����V��p1�;Оje�C�8�"2_��j�-�c����ut�jͮ���Δ�'N�A�7�2�o��dʰחg�8��&��9�2Ի{�>,�o�r"k	בrh1zƾ�{W@��5c����u%1	|L�<4^�����~��7�
�Xü�9:�ڬ[<�t�v3�����y�e8ko7�]�=7��腫F�_���S�~��P�T*�J�R�T*��)^�Z��k��g��M�(h�ֻ� �.!�f²�.�b�tn��s�%zc�)6�ũ+���*+\�t��	�[�&!��h�ݗ{I��i3 ��Z7j�O��_\؈��$		Hl+8c����tn?c�����w���ٰ�������F�?r��JFD4��x
oF�2^�Tj3����n�y�N�����I)Cc���_���L���@��^K��v5��2XsΒ`r׬��eG�kO��x,�!�-q7�f��I3^"[����-o��>��&-�DXt�6��4�+U�ر�ߴmc�� ��[}a�Lqf���y��qnn^ݏ�H�4�+V����ǟ��ރ��m�q햭EO����-��d�̔�rZZ�,�c�n���,�"E褅)��@Ӓ�d�ǨzNIK'�v:�ٖq+KlR��xb�צi�}&,ZV����*�n;2&c
���t�d��^�ge����]�y��'-]z6'7/6)e��Q:!9U7!T�T*�J�R�T*��y@+���9�M��R
@�����r���+�ϕ��:��.��gÀ_|?u�L'��Xp�;����~�O��҉Q�%T�6o���������h��ƙ-333��B�@�			�9��A;v��UE��Q�����i�y��:������M�3~"��Ę��<� '
�F�7k����\>k�3�٧���nQf��ߏ1��bsӲ4�L�yfD�ÿ��_�4�'����]�{�9�̓�_}�m��q1X>��b�7S`h̦CBO�o+��g͂N��.���缀�(��~���@�B=υn���
<W�]FǤx��@���5Ù�Y9lMIR0/Ė �
4,}��4��vl��5�vji0��kj֪�(�L�e���62sM�)���:�ʖ!��S��]��3�7o�S٫O?&���8��Q"�&���v�����e�u�� ��w��/�o{�˗��^����u&2�z�Mj���0A���8x���)7nn����NP(-�R
��|}�jߥ���2��ndd���<Nr�-��]�'ZJ�PX�U�g~�Y+�U*�J�R�T*�J�z&�m�Z��@��]hة��k��W-Jq����n�������~B[�m����l��P�وN�tco@��3o>���XI�S���v��N�4|m(
eS��:[c
�kۡ��lh��sty5)��ދ�.��ODŽr�r��c��v(0����_����� 5��H�-��.�>�v%:��'M����-�
_�nj�T݄�q`����ظyKp$Aӡ��و۾	�����Јx6m�e�!��J�/�ű�q��0$ݶ�a�,�1�$�D�۠��;v
�1w��T�^C�P���&����>t�d
��^���b�M):<��,8ľ�*l�-ɇ�G]�w�s���pafB�.	[\L�����kףg��k���,$^?`;�x,E�g�B���7��{�{@����q_!?�8c�"��t��y����0�X��2:h8��&�3�'����\�D����9J�4���֔��F�1��� 0����'q��h�2^����c��q\��/,x@�rpD$T�Ν�����+$X�{��'l��f�98��ݻ�d��$&������S3L���i�͘J�K!^~G�@�T*�J�R�T*�J��=��Z��@���c��b����&M����]@C3�E�er�f�zMHnHX��c(�k5��e+?n�0t8g>k����H655���I���8B�@{lHAh��{����G��^������h��V���$�i�P��n�!�`Px%`W� 4
*�I�7�{/�AC�B�B��e�`��V�ii���ad���D���8h�0�B8�N�:�4(���ϕ��dt�:t�c���Y#l�+�
�);�N�2�臡A��� Ξ}�}��Z|$�.�<WR�N���hh)�\RWNc(�6��Q"g��$ʞ��6i��d�T���fjݽ+M��aOP�hqJ�)T�w�{�`O�8u��G�����:�$�fr���>�RmZ�X�����,*�ůlh�*@�SVV�C�O�co_�m�i��"Z-�͜=����Y�
w��e���?�VgΞ+����=
���Uw[����>��I&ї�����!�Ш0?��бn�S<6��y�2v�2.�f��`����bt<���]a\RJ@ș[Yم�6�?µGNEP.�0ߘ�xM��X����z8�\vN.��$��S��P�y��ƽG�����*�J�R�T*�J�R��
����ѫP�M8Z�j5*�V����˕��)))�o*j��re�w��XS�����������U���
;v�I4E�CG|��Z�=�R���h�'���
;�����<��&��� ���ՠe�joUz��������z��V4��
���hC�r!�a�f���@����XX���P�M�g�|�����-ĉ�������
��9�D�i�ָ3#�9��4�4#lZb�A���nն�K��ھSW�	)M�+1Pnظ�� �T�U�`Jy�w��G3��_�G�oԬ%|���ߑ[�Y�A�EK=0��X�M,�����"���/X����!�1�`���N�1�K$Lʵ�d����׊T"Sx.�S��6/$X96�v����dH(�"���^�'{t�a����w���4	�fOK�����KB�����1��Y�;ʈ��q���T�n�s�����4mц�p�����u�Rk�����ss�6|�R5����#ǎ3�FIu��#��S�y�v"����ٓ��c�x��t(��my� �08K�������!o2�oE�Q�
���&+gಓ�׾��K�v�ًc\WMY�a�&�E>~�� �]��ϣ�kw��|ϱ0_MI��j�Ekܷ�Y��}��1��5۝�yRF
�����o�c]W/��K��V@�T*�J�R�T*�J��z(�Fea>��|�E�:Y�1��e�[FF�A'��S<OȚ"�v^��o�`[�=�����&���BMU.U��A�9�~nB�-�";m�l�C��_t�ԡ�rK��c�:�@�%)����	;5|�h�d�v���<���plC�ւ�7}�A�,cҽW_G'�@o!��18$t¤���~���ƶ��#�b�A���ט �;���\7ar�(�#����]��o:ʓ=v>��Og�nT��smz��a˽�͠�8s%:�QC?�B'{#G�	
㧅nK���fgeguDŽ��2eԔ'3)LM���\r28��jآQ;<�eu�纀P��tR2<x����a�C����Ljj���R��N��bm�@F����Nʖ,�[������ۑ��E��,t�݉C��-`�p#̻��f�����O�:��Δ������%��2}&�5���#nj�'j�e�@�^��줉����W�il�
^�Z�=h�P^��db�}�`�?9�
P��k%a8�3��؀��T�;p��zy#���J�ޙ�-1�~�s�^g�m��n�8�ԧ?�U;F�$b�A�ث� i�3�zG�I�~���8�vס�k��Mo����ز��>|�g�*J�J�R�T*�J�R�T��^�Z��	@�z�E�o	�,���g�9E�<$+�‡�`@
`���4��^I�,&���$�e�"S�80!1���ErIq
�w�5���S��q	����E!��zj*\�4�RC�2��@m�a8%v���޸����KZ��I����ʖk�(>S�����c�M��[��W��s�s?z�4�����b�FT��y�A.��B�9o�ߢc���_l�(N,tΟF����N�M�46.�$���J�Ðe##�����Z�<;;��y���GRg>i/���K{p,V�,��h��(���>�P���~���<�
ʙ���~�I�Ӓ��I#9�O:�A�3�n��I�����M?�ރ��Y�+xp���;	ɩ�L��|C�R�T*�J�R�T*���C�ӗ8��������-@ؽ���у旔��y�q9ϗr2�0�7��������=�nJ��|��+g�"%U$�'��\I(~��X�e�w���e���<���e4��E���*�J�R�T*�J�R=S�z��ZU�V�T*�J�R�T*�J�R�@롇��)�G���x�^x���;b�Z�R�T*�J�R���޽�A������W�
N`	{��� 6`2��X�!��.�E
Y��缬�u猛���Q@�}uY.��y�������3�����z'�(��…�&�E
t�`Z�@�5�!4��Q@�#�
hQ@v@�^����`�2���&�3\K0z��	���
h�h�
h�7��hp�C�6�	�	���f4��m4�B���
h�7����{i*��8�_5��gn�I�JM�F�����fJf����,K������S>�]�U�]��	4u�����1��1.3�l�����q�y8g��/_4*�h�
h_V@k�"���7h�k�[���$�Vv|�� ��}@��76=��5�E�CtFe�'�
44@�ej��-xlk��u7���~��E�BM
@{@i�y�J���Yk��vɠ�uw
��Z��o˨%�v�	4�&�X����	�/hi�w���lm]@?m�h��q�A2��␬92:6-#;#���y2ҳr��&J1�Zg�CH�.�� ��5���Z�	K9����i�Z�����g�V�7�W��sU������$�\ZZZ\\���{{�JUZ���P*��c._�^���{�
@�k�2���K�
��݇���Z͠e�M����_��GGgwWw��W�>
|_^�T:+/�U�,�*]�%����#i�J�w��[��e�~s8�Ⱦ2ᄆl)-D(��z�g���֑e��O�v�g�WNp�r��k��tn1��vݺZ6WTUK�
W����:��{&s�l����B���l_߇]*�$��|C�q�y�ne�iki��W?A���K������� ��=���3�?XP|���<�p�$��n�^VQ9<<<:6�����l0Eɟo),9[x�,.�"��o:@蹹9��~���hhH~x��!�l`�Y���IY���\�dU�d�GFF<�kdrbb��>488��GSSS�l�C�l��^ffff�?�5�`�̃���(�_g:��*YA)Zк��`��{�PQ���šP�����o�k[EDd�J\� 6@B���I�=��L+�*��o�8����MrI���\�TJM!��y4�A�:�Lpr������_��>�W�AcҎ=����<A/���RK���YC�w��q�\�U�v�6�y�ɟ8�-+/O=v|�Hgt�ؚ���%%�j)�s�NL\�E�U몫�e
TVV]��r��6�����[h)�Io���o��P���{w�v	h�}�-..Ff�C�a*F��0�Q�X\TT��P1i����ON�⩠�G��M��R0��*49����
�	y���5WIZVV���wN�q�lČm�b�2�Q�X�:&^~~>��?�	!���4������-E���7v��U$4쳏�2�>V�m��@�D��SMݹ����_�$��^>P�
���9�;���.eg2G�WM
,szFƙ���5���-~�˳/��UUUi�ҷ'ﴱw���圤������5��:�Q@����C:�vK(6'���K"��#
��D(�mN@CO#��y���c27'�o6���{��
������TD��9I������-h|xqƒ�1��LM!��y!���b�1�;���hn��;�8�����Q_���1g�,/�gt�z}1�҇�t�t��4dؑ�cϞ>E*4
�Q��޻�r�����]�JD"�B򽆎ATL�����M�G�.Z������j�G8]��;b�l@���4M=Z�Ֆ��:u颩�ru`z�y�j������ƕCiO4�zZ�pO�M���4*�Q���
B^/�|�$�ëe�����uL<
hB!���@<����A��p͍�3��
�)F=�j�@���5�(R.++����O����
�?��v��r3P!(�J����M�i�0Z�ǰs��m��
�RY,nwq�@"�I�~H���7At���;�1�B��)R.�J�u�!�c]�!�L�>S@
h
hBM(�	��&ЄByeЃ��h}r��-�����F�s��~�=�^@�d�Rdk?~��o,��`QW�>ĸ���m�1�`<&OS*�N�EM������=���5�������1m}��4l���ι�y�=Bc���99��BjC[����P@S@
hBM4��&�BH{g@�44�"�q�}3Ee��,�aq}5���g�b�EK<<��h�bjDg8�u����Y�|���g�}�T;~ͺj��a������C(���~]]��T7#���X�N�Fd\��5��ỡJ
�NAS@
h
hBM(�	��&ЄBi�
hu�W�����U��ؤ�Ý�\A�΀κ��UKO��t�j`zF��;	�WQ���g�M�>��q�x��H�pu��9ufo�u�6�k����V\Z�!��ݻ��V��x�b36�������}��(TR_ȼh9��E�Є��P@
hB(�	4!�B�;m`�]&L��ߎ�c�R6DD���_T@#��%4��@�乣��ؐ
������Q�Ce2�����uz�<u�F&C���/���ܼU�PcH#��^�v
� 0(�n�0�^��p��`k�8d舄��pf���ceCMM(�)�	4��&��P@B!�]#8�%�㾞���c�A�78s�/���^��Q
�m��/n����Y��IT�0l�@�t�h���+Ϟ=Eb�+D|sm���m�F�����p�T�q*���'uu���X�S*/v%7E�!�?��Z!�K$�h�P(**�O������w�Є��P@
hB(�	4!�B�U@#^�i�j��w�q�v�T
#"y�+�� ��o�k��D��2:��d��`��n�F����O�	22�04���1�9�}��v.
>2�{a����m�1���I8��c����p��W������vn���=g44����&Є�
hBM!��v̀�۵�w����hF�3j�Ջ�A�Z���^�_&��]i�5u
[٨f���g�J�x�V�Κ�F���������=��Z��L���
уJ:#N�����Є�����}��Udaf�I xAH ��ؕ@�%GL�c�L�`69�hrN&�`r�9� H���A���/�Z��=�v3m��hԺ]�©��V�T�R�+U�t�
@W�T�R�J�zz�f��v�����������qr"s�vṠޡ�;��ΝF{��k��C�+]����T�J��T�Е*]�R�J�*U�-j��h_�;޹ϗ\5u�]|��m��t�
@WzΡ�Ȝ*=T�gh��<Uކ�b+ݫ��H>(���Е*U�T�R��	F4��)?~�䣎��_�9�b�<�ֿ
@W2Z5�M�ҏ?�H׍\��o͈���[��T�B}ȗ�
@7����X�X�	٦>i�^@����a�e��?u��rw���MA!z����a���]��h�u7M���!��&���'6C�L�g짟�;:�ֈ�3'BV�PLhP��W#Lá�#��|v”V�M��7��AV*t�b�^t�J���s0�H}��tfGnQ�'�]�+U�T�R�J�?!��?���u�]7>׿a@�1{�3f<��O>����SMP�
����{�v�믿���o��	����M����w�}o�����B��t�d5پ�7�|3�C���2M�N��*a$��7к�����z�!����|]D���$�����_}r{���1�>�\�VR�G�~���O���M�<����sU��������/��0�;���/|뭷:�J����o�y晈�端���ֶ�K�<S��SO=�ю�<s���諯�b�4'oD��/��G!�v�+��s�"����g�u�'�^t�Z��駟.���_'�D����Bv���?�����|�d<�13.�̈Qa	A�\r�w�ᖯ����>�oC�������__|�|�����G2=�4uH��{��p�a@�һ�[V"^{cc�&׭�;�S�{�;��$�ޗ_~Y:)��}�Y"�d8���v^���ov�{�zV+A���{��}�t�J�*U�Tiv@w�O��<b�GT�߰��>��7��/��.�������c�=9�ٻ��o�]��^x�%�p��{�u�' ���[o��W_c�5��n;r�g��s�Hǎ��.���[o��UW]��r9�W\q��~���s����?�\��v�m��}��}��1;��<��N;�s`:���R�+��r�ĉ��w�;��$s��כ�n������f�D���45S�2]{�,V�w�y���פ��iN��]v٤I�&O�Lnhʔ)�^z��/��t���6�l����$�2磎:j����n�4 Z���#G�p�	�;��
7�3�5h�$���6)��G��;�ΨQ��ҋ#��`O=�T�p���7n�N;�O��2t��`��$>Bq��F��ix��$��裏�����h�>�h��C�˽�t�S!��&���_��#��z�k��4c�6h���<:���hh�|������}U�����}��H�]/`ܛn����g�;餓�n��>=
�o��;���K/�z��Y���`9N�������7�l3Ѽ�&M·�v��x≾�_D:Y,����.�`�
��k/�ɠ���)^% 0��zf�b�g������tn��/��ro�c�4�}��z;���
x�gZ;T��ۍ6���ư�
E����
HD☹�r�)A�\v*Q���cl���m��V�J�*U�T��l�1�c��o�Ah���{�q��	�(�Q���)�x��s�=[l1��;� �Jۿ�I��`Vz6h2�&���Pb�dr-Y�Ll*Y��N��w�s�g���@K���g��6=�V�i���nj�@c�48�߾�����Z�s �|E&v����~{F.Q75=�:��4��d����4�u$��,�����@OS�n��A]rԂ���NW�)v�a �@!���b �k��n�Ӿ�׾�d�@���x�/~�h��}�ٝ~��w�u��˾Q�&c���S�����5�\C�&LPHG�8`�|
�H��5�z�R�

�-2o��A������4i��W���#`"k�>��&�Ҙ����
�흷�P1;�r�]�f�b�:��2�v}�0�8�Tf��s�PCn
	����&�O$[n.r��l$�o���3�M���8��	�I/
���	�Y��{��+�ˆ�P��?���l�߰�N�D� cPa�5F����6z�AY��q�) �S���Y�N
�\,"j�d""_��cx�6&�=<��s�Oq8�5���ڂ@:l��Ga�=����@3o*qQ.���/��{�ʊLL��CD�
�t˷��Of�Lq@Z��y{�w�!>]{���қo���M6��gfcY1:y�B�t�h�I)���.�ƭ��L:�G�CJ�	�ϸ3?�C�E]D�^�{��
�ӄ�鄜��+��NE?��<���.*]�R�J�*�#8�_�n�mw�UW]�SlJ^y��_^�"�,�Y��@VYe��жҸ��RKA�%�����l
���?�h���￧�{��ӭ����2mY�3�of��RM���"�ɵ�K"�:�vz�S�	����$]���e��?m�_hV�V���
��V�Ǚ�Z�6�Q=m;3�!DЊ�W�,.i��6)�4wI�=����q���[\@�@�*���~_�g�`;R�J��O?�{�`B+�l~�O���Ny�M)��rb5�a��S���F�
�^4�9��I��\���u���#SK��n���ch�C	@��͋��57�VS*�5z�h�F@W7�p���/��B��`����
���K�-��".1o
��h���6�'�/�I�?[���Ʃ긅���ȶx�F�ڦIT-3��e4�q��ݢ>�A���;3:��C�A����l�?EטћQ@9�5ސ:b_p<��	�aI�|F(猻�.���P�Vێ��
�[}�y"���8b��M3h	�2�B0������<�h%7�x�ny=H�b�n��{1<�5�j��Ũ?�3���"F�%�"=��_�.BA�Ͱ
����A�'�0�Zh������^	���mx�V1�r��t�x�<lgZ�̴?�푤P&�
,���8#o=�[<����_q"�����Vqe�"�p	���mq~�%M�L���p2١�-�/�s\8���ƺDE���Ȣ��-���s='X�+@����	���H��Yۿ�$�U|*��RB��	g�#_cQ>ۣM�x}�ڈ.�g<B��\IC�n4v[nE��)��i�?��0}kyϝ͔!�t/�0аsׄ��|�1����,ʙ��ޢ#>x��Ibc>[�`����H)|f�r�.��/0�b���T�R�J�*]���p�W^yeO�)��#-_`�ǭ4s��V�@�t��]�
�(���k����W���R�JNG�)�3�ak.�q��U���=����Er��
A� �O>�DnஶpX�ʞA0���0)C��dC�O�c	�x[Z`=�)!r3�4%3��҃C'�*�Z_h�d���
�)�tz���tE�A$S'?�&�Ah�F9���@�n4tR,Ҷ�Ǧ3!�[o�U���6��lq�8Y�����$iC@�8M9�ۑ�Se�n�cCh�����1`�
@kb��|UV�7xs��Z;�_�)ؙ��V�~
D�px�]��&@w5lо�&�D��
m�lI'�������5��9��-��`���aR&�Ή����&��
7�~U/?�#r.4�JD�	������*������f�_6�f�����CtfH���[�K�ͤm���P��K�6ʑ�Oa���/%�Lp/'�
�	߱�0Z�>&���֛ݸ’�i��P��^X���؝v�X�׹��;����;�hB�ޯx;�1ޭ{8���d~a"2��#K��ap�-�;�Y�ڒ��V�9�"�H�(.g��]pd��@%$���\|�
�.o�R
Yi'�6���H���Q�V�7R%
[�
��`��Keܟ� ls!7��x	٭����ڊ~�d����J)�T)�@k�g�d�@#�s�G�t$�E���х!C����?1�C����4����~��'�Vs-g����R RX'ɰ�DE�`&.F�R�9�ޘq^�(�$�񝘱Ϝ�-,��

b��BGxs[���N�
(I8&����ݍ�0i��a�#��@�X�&B��]�*��3�jo>�X<.���@�`�K�%�� ���Y'6�;M�z��]�:�� dr���0CO\�-�O��,�$�+G"��ↅ����=�,x��q8�O�Y5���f���<kġ��	5��v��z"2w�˻
.i k���"?���6_S���T*Y!�5�$��ԔB2�A?l��q�ʼ��f͵��%��u����6-(z0�,�<�W��+#�9q�
@W�T�R�J���W��-��s�����]t��h�����VXA&\�eJ�p�r��GyiO�1����j����k�:bĈW\�E���떯��q�p"gR/���Λ���2�,#�\n��J�5�\S����RHjA;�J{�Y[}��?�q7�dײ����s��I�r�>��V#����Q�DC� ���H�=M��I�44߲��Q�CH�!89'AZS�bi3�A:�2��4P~2�>��%��$�����j�T$�=-A5J@d��2�g5h=�L����7c@����#��H2�L5	m0�@�@���A}ѼВmC��`ʀ_�-����u
`-�l���I����_:�{���@Mhf�%����kϹ٬�&��I�]�C�����Sr�>
9�D���p����+8L
\B�i�AO�ᐎ�Vl��悪A�	i�j\��5�u�]��`"�!1�8�yN���I�2��ă��p��5��ځ��'�����C�ٗ�Y�Aؐ�&z�a���2ub������1�9�ŵ�#?2D�Q����;M�w�k�PR\�0��Y)�q���.I�a~��
�(�B��Z������$�)��&�Pa�-�j�������,����f��Sw9��դ�M7�TL��
M5�����[��������:�����S$GJ�k�������9$W�0D��C��r���{�+p��x6#��娨�[OeSx��VA��1i\k�0�����9�u�0I�4ReM�2.���	/}�)k�L�h�����E;(-�P�
L��LP��n	A%��׳�CJQS1��,d��*ȕ}ҝ�#Tf/��4º���9�Y�h�"�:v�'
�M�&��C�Z%�ưKsf�+����%��F�ma�A=1��ȯ\��ValL�m'ipX���T��f�<�b�)����h��;d��zC�C�6�
'4Zc�*�+'zU�R�J�*U�;��_��4�5/d�U��v@� /Z&�ʞ��-;�=��}�`q+��:����"hH�.��R��_�;*Ke���!�vE�.�ؑ'��Wi���,ǃ@�m�����]����r���=b)	�,�Ū�l��/�p�|ͯJ� d+�3�����H;]��r\�\4[�`R�N	$�TL8��@O�K:g'�weY�1
ӡ��YS!��@+B2pFgn����,7���6k=C���#:�5�	�b�.���������t'����2�>�.��*$��@�d�z#��L��S�*�g���~�}�ccL[�0T�`�l"BE�eX�����.��Ц@>��N���7�)~��\��1��D�Ϝ�c����@�9pCN�`�)���^`����	!3��M�0A�v��Ae&A�:�a�
\�.ǁ!�J�ٌ�	���
����#�kBB�K~�m:��UrMG�d���CZ3�ѿO5�����LH�!͒�GL�V�%�!Ul�.�¶������z�N�j"��]����09���-��Kh�d�qn��b�5�֤K�`�Af�7�M�S~�+ A��y��g���h%2*׈c�Y��'��b]�9V����Qj�fVh6����-ܙ9>�����M��LGH�D�W�"m��+��B!퓌����}�$Z2iKy`t�cCn�C�H�*���A�^H��9������

Ŀ�>�5�
��'ơO؜�-���b�¤Vf�m1I�d(�$��8��M;y�JŮq�0��]�'%4Z���fh�z���6���V�D�Ah$����S�r	Y^`��
�~s�	E��71	AL'BN�-�~��u~\b�D�P��X��aޓI�TӣXjPT�/�Mla�/��ot�[e��C���5�)EPxr�|޷�6���2{���g�,TZ\�9���M�-���C2�P�1(j�P�C}��Zi�}����$L��&�Df�5ԡA_�᭦�gJ!����4U��T�R�J���޽��R,mFDAT���L�͉��Y����e��P����zU�Qݣ�p3i��ȈȨ�/�"�>�����4�����:S���k�����%�����
���~�ea(�徖��㸿�
�s�#�aBm��V<�?{��Y����[����� ǣm���7��@���(�=����?v=�g`k�qš�}>t�G�r��OU�B>9wI�3"� ǘsx�*�'G�wl��+�0���Ď��F�?�9vE2r�����*��br��K�I(��/jCg\"����S5�@X)��pt��������s���;���4 �ͫ/�f�r ��f��0}��6��Pznl,�7��V��;�4f)�dA9v�H�
�,^�A-���&�-ɢ���*�i�Q�l�(��aW3�p�M���Mϋ��
�@�b�"��o0�֊`F�k㡁+e>�"�	��o��xp'�W�f��t�<��	�aj0A����'�0=-2:<i�I5�;�c ,*z�����%��yĺ�K%�l�"]��#K���1��x�����r:KO�S��
��#t�Y�+h��B��UĘ�Z�d��#\ZM��I-r�F2���MF���ty�}���b�h1:��f�8t�3Ȉ3�ܩv�+I4�ҚD��X���xh���� �5b/��h͖$�Y�q6�
HwU��\RXq4�Yu־�.Q`�RBw��@#�O�:��rS3�5��_�#����7<RZ�� �SZ�/I��V��BOYT�%f�:�E�5B7�a4�giɚ�lod7 j�j*XZ@E��>{��_����20�bP{G����1�m����o���KE�uДD-�x��{(;��(]�j��c��X�5��L��֩{S�܉l��Y72�5UK��-zir�s�0�I��:�4�)��WYe�UVY剕�@����V����μ#�m�Šv�1z=���mD;2������-:Q�Y����˧���/W'��#��?�e�Y�<���os�\�98�)�@�w�}ש��Y8�<��<��qC$�&N/w�>p}y\�ɟ�
����`�2*V��{Ǽ�T���rJ@�!�
����-��诏��(LNA�7y�B>tٱ��)pk]�rѵ�npxb(R�بD9���� �M���@c ڂ'\�Ga��P��Q������@�Um��K�&؂&��j_��4� |�P4�@���в����=�
y�<eO4��O.T7�X�ā���\b5ɪ��w�6���#�_wd�|�x�͙N�?W��\ü�@w-���a.�|c���gK�����0li������	���)�9��9�ۦC	y�9̑�z�!���~����K���EV@���g*1Ġ�ٌ(<��	�"ݐ����#�Mt��4��p�.���a��A��6��J����]>���m,m�74��h��"�I]��4a�
h�X`3������ivƸ�S*�kJ�H͑��4ַ�!���@�U��Y�ښ/��\I���5Fd��,�f��� "1�m{��P:���ю�h��>T���"�oJg�.�m&�{����K��B,cB7N��G9�K���8�Y�1�~g�4�M�Y���.�gNs��HC���mV2f�] ��^�2R,k�
��}�]��3�1A�l��zh��(��&�;;-r�nEٰu��jSku�t{Ar#2�)�Q�(�y�������3E@��WN3Q��������*����*+z}�g�@o��MJh�g[Ve�p9�l����4g�.��/�8���^SAIg�T%h��S�U~�o��V>����?�\����@���;�����?O����8���G���t_���7O��(攏�N�@�R�׫Up��*X8�uo�=�	r�yV��c7!�dީ�����X�]f�Ÿ{mB(�O
?ꎦ!uh��Ny��$2��űh%ZO��B�<�����@�U�
�w
h��2�r���n+�@�kC1���A0D`�9).u�V��$�֑����撶����p观uH����g�OX�4�9� 3�7��5�`2g��Ů���߀c��J��1UCF� �)|���@QRѻK2"����f����� %W�`����&A�н�ʆ@��ָy�#��npO���V�=�]��o
���r��Id�6|��dv�M���؁2���t�),u�S��\1�)8\^
]�)�t\NE/�wJ����Mg�N'A�@#^_�q��]�\�Θt��3Ew�3�2��4sL@����@��Ɵ�h2����)� �-��wV�Q[�`]@��ÞI3[>!���)8��j��)��$N�X�
�/�)m�;du�F�=��1�k�к ��P�S�����M���[�.n�t�Bb�#͡��ջY0�5�P��[��x4�۾*�������S�dG,�
h6/�T��n��
�
��{�tƜ��%��!�ѩ���@'�G�h9�<0ƾ�UVYe�UVy����>���F��Ӽ���r.�ă�l9hG�y9�|��4�~6-��@d�@����7���g���,ڴ_�����Z-�4�^z�%���t��[�Mї�ɀ	Q�3��yD���S
}����&@�O:p�1��a�@k���D�E���Z�86G��
��E��/ߋ�!�Р7���Z�5�/����F����)���_g��!�F�*�@p��&&w����P��hH�oLFRwhr�1�C��t���Sd
���O�p�b�����R!����S{����]�F�b�S~d�`~)jA�����1���X���	2.t�@�)_�Zh�
��vi�M1�`�������]�ǹW�r�y���p7�"�TӨ-{��T�%�����l?�TE!ѐ>�Y4>#�h�:�@k%x�H6�e�&�藖:�`#��J�+��r��qOqɱа6�*�+%Ѭj�D�Ra�>]���K�z��U��l��$�Ӗs���{��4Ve� S���5�>R�cFa*�>ЬV	UH�����`
T0ӊ"�Xig(I(��x��P]�2]� Q�|���`$QN�ε-���'������X�pF��F1P��:�@�R��(�m\$K41�Ⱥ��[�����]�u��,�vq�z�l� |�&�d]�ЙG��%����ݵ��ҍ
�N�-�ધ#�<W���,qd�HA�n42�s#�)���n���
��ȑ�[y��z/P;����'da�JC�ӭ3��I�umz]��A"�P�h��-��{�գ%g�.y.���f��4�#�f�go̸M Li���A�(̝^�h}�Q2�@���*����+0��>�~Q��
�uֆ�\e��gbx)�=��#���_~���Y\\�|P�_
@�g�^��9]�\0�>]�>4��~���?�s<�
����Ey;�E�sq7\�{м;�y;G��8B�Ĝh�"�;�w��SL0t��<g��K�ny�;vB�1�ׇt`As8�(���+Z#|]�
S���I��ih�p�ۙ���lR�\t��5�)!�[����4;ImB�5�X/��5�@��]T �pT*�@Pt�P�иJ[L���!�����h�8�(��Ф,`"JU��з6�"�3^5�+e����w�*�����8�6ě�ZF��@���Dv@�<�Ac�Anr�蔶w��)�:hS��h�.�]S�aѲ�C���1(�5������C؜H2|���W!�J&�o�g�8��T��ل����X����>S@.l���olGLy�e��=zc��}:���F�Up�Hy��4s�f��*ޜ�����l*��x�>���[��E@c���ީ.�C��fB�b��蘻�-�+��[a��O?�g�f��b#�>mQ(�4X3˂�yʢ�ir@�w���Vh&�
�
�D���1���HA^ٓ��60T,�XWw7����>8�'�Й_���&�ɾY�LM�����e��b�����4&0q-�YCjIo���DuLg�D��Y��J�e�-��8x>!z"F�)�f}~0S�u�nDc�݋Q<�u����Jn��V�F?�'�����2:�=�M��ܒ~]y��?���Ԇ��%]�jz�&��Ŧ�&�A�Z}��m�2���Y�>���WYe�UVYe��X��y�4�Q��}s@{��}�7���[�o��G}��T�_�MG4�A�����SZξ
�`�"�7t�7��o$}��W�|��9�9��9�+`p|C�<8r8��Z6�E�4��
�ƛ��v!��90��Qi%�2��6 �W�,�L�Β'�]���qR��iUP�Y��t���<
x�L�Q1��������V���co��O��"�c�خ#��a�"�I�\P̃m{C�]R@>��jb>oY�jj�oP��Xn��b��>�%mĤ)N��]
̄Š���kiˁ�������X)ɬ��M�}:�����`ۄ
O����d3���U�.�,���+-�;��i�аH,�,�S~�̜r��&��ZetJq6�榢��`���b�{Q`@u)\���F�t���0JB'�a�:z��EO�h��@7��!�!z��
~��&��((�����|��;�	R���)���WT���W���z�;<G�Y�E#jFX-M��Ƌ�Q�q4sk��W@��J��~-:����+�16E��W�z
ي`/��a1�&#�k�Ng�-P�]���)�ƍ�J\�z����&\�l�� �̅�K����a��5H�79��y�niE�)/� �U�7�IA�*��yګ3�(*��>��7�*&�V��ta0�4_�����c��l�2��0�]p��Y�g���ζh�9Ǧ�H�(5Ȭ�k&#�ɔ�2�tY��δ���!�ܖ�q^b%S��S=&�(p՝�Ak'cm���Z�iMzh<g|��=b��=�H���Boɢ����D@G$3e�*Dm#ڤ`���e�hR��5j`:k�ir|��o���ވJ�X�ޝPxL�
�;�Ij��ka�Y�O�����+�r�F��`oO�qjA�XT��@�ED�z��Xe�UVYe��T�e�>�h��?��9ŋx����ӑrV��@
�|���eՂ�y)��x�-lY�/�D��7�|�Y��.2����)���",���7I���{O�og9�.�(?9���'G���͑�ü��+�|���A��B�z�-P������#`�u,-N�w��Q|6ޠ�G�y; �
���=;4��V��f��`��ETq�0
�	�(|����n��m9�x8�r��V��� �Cs�h�!k�4�E�z�m��ᣊ획����Рl/��oEMP�J���,�Qc��\��+t�Z����_�
=����(�LS�1G=А���*���*�Q�o���Z�B���*��z�KT����H���*r$�Ch��ϻ��Im����ּ�N�ڷ�ɍ]#��N��3����d�V��Ҝ�\J.Z-���)�C��t0�l|C�M"k�3�R<�B�Dx.|�d�0�����߰B�FMatW��ʰC��)x���1^kB��d��r&�.,�Nh�h*���P��0� ���-8"�#d�5�,	��i�2f?���]D6�͏@S6���1RN���<#e�&񫎈υ���"�5�ɦ��rLJR0,���7����A�d�[��������m��}l�
�Ӌ�k�Y]pP�L=��B���e��F^n��K�y�I�6G���*"UI^��L���S�(A�к�v���O�`�hsI�A���u*ֹ�1�8�;lA��!U�>��\����)d�P4�L(Ɯ�
H[ؕ1C;�D-��Do��Lwzo�������~��z�઎�ل�kLc��(oK#%_7�1�r]wX!�IY#��fq˴Fja�X��r�0��LK�Ե�����?Y�7Yl�T�q<d@�5�����f{� M��	�/�"ӶO ��[�������V�2�`����iu�ԁ���c�z[g�(т
�j6t�d�ԧ!�hAe�w�0��Zevc�U�
b
�tn4�%�f�h�����")3"��D��^e�UVYe�@��<)Z��z@��f��\Mh�]1X������
��6ͽ�/��-�Ε��](7�~,��[H�%DƵs�P���K��wQ�l�UyNTѩP�hWM��=>�w�B=h,Jꢍ���\\c��(\S5y���
}
pp{;N
l<�'|T�p;w86�/����4;�q[�Cr@�/������L
 �
��et�)s��,#�JH�lT@��i�\n�D�\��qT����F��ka:��Z�FC��S>�dCO3���\RP���Sk��Z��B���%�'������Q�G���ɲ����l��4d�)�l�S6�#pW�4b\��Cx�|Q�+w�e��~F���ȹ�PK�wT�4e�y ]K�p{q����]u���z����\2j����H�Q�Xǎ�x�PVwI"I��y͠��~|,�NJ3=��D����t���V�K[ucK�}R���a��Y�`L8t�sGc�6��6%�'��{(��=H���Q�ӌ���P��JuO(ԩ#;:�A�����c2`�ȴ��Y�������#�D(1׌qЫ���*���$s@�M��@���S�K{WM�bA����' P��e�
:x
{��m?���x��88�˭?����=K�8􋗜�~��b|�m7��#Т�����$�/���T�m���/��0HBq�r>D�̍
����(
�.����?9ݟ�x�/AѸ
~}�h<\i����C]���5;��F�
7+@e�?(�믿�PD8
!4wD����C�c�0��c9Y�F�v@�x&D1�a��A-U��f�i�9/J�q?�jKLŏ��{|y폗�l�8[hl�Xznv���#�&:ݼL1+:��
y��V�}�n���=uwz)H�պ��ݬ���U:�+�(ԙ)���vŋς�B�b�)��q�dd���������*����*+z}���О}��/�b�7
9�w���v5P�?���ꫯ�@���+�P�*�/��:��؋�.Q�D ���J���^9?���q������îN�Q�[��7I�D�ʃХ`�R<o�h|��p�.�#�I���Г�rP!D��t2X�o�AE�|�Hy(�"��>��,�Ў��+�,�(��.��*���-.�X%|��!�]��Q���оE�f)�<�����%��۽���'��m`(��%��
�[^��g*S<��t"�	��^�*����*��]7!\����U��'���g�o���=�K�J�{��v�ګ��
�X���$��&�X�r���}^���5U�
c1@LhO“�k��e�f˹��U��KVy%����FVs��h)ҋ��^	@ߠ��߉R�'f��޹�4u�q���2�@)��0����yaDIE�J*�[��s^��,[�
o`�"�u3j�?4��,�d&+ф��os����h���������yۗs���stN�I_�I1�"���bӣ*��/_U�[g��
��h
a]�,�鎟�j>�<#y�%�OmY=��î�k���&�J�����9i�Qx�Jvq��>��"��
�5���#�y�� LMBb4W@c�`�49!�\@sĂ4:,�aɎK �	4 ��h4 �Ѐ���{�i׀��TgS��Dw��'{]g�8ҙ��eKu��^�h@@#��h@@#�
ӫ�����/��`ۼ����ꥁk���k���A�Q����w��5��F@ �
��@@3�׽+Z�ΥE�[�+�Tx�?�z����r�'{�{���vzJJ˝K��JE*� ���4 �Ѐ��hրVR��[�{�䝕�,�lHg3���Am�+��?�ó7��:3e���)�
m��{��������F@
h@@ �
���~
h��VYuexT�Y�ٰ�ʃ�mܷ����/jW����o5��,)E��F8�WU�s\�+=���2?wY,�^:2�J�*vWUg-_i�0����>�w�Aުu��#�G�=�ki������
h4 �
��4D��lr�N���>+����������X��Զ_��R\��k��<��JHk��������q)K��?�tAJz�ٛ`s����SSS�譧%C5>ϝ/�����56GƣG�����>��d�{Y��4Ѐ�@@f��U@+�]�bcbr�)v�s�]ݽʃ6t}s���ܯ}�|m���oM��U74+�Yi���voM�.&��������F��3=����^�<t�XRH��Ip[Js��jW�B��cc�;k�Z�R��tt�)(Ҁ����/�o��c4 �Ѐ�4�0���tV���Uf���*)�8�
ц�����X[����R1<z�����z���x���3/1�|�e.��O�*?Z�wH�[Y�E�J�}-��59+��[�
�,����k�W���9.�ҟ
-ˬ��XX�I�\㥳ά
_�64��5��/��y�^"�5��j�M���k�KZ��o�_ڏrv�(���ްw�Q1�q�swϮ�ET�D���n�"V�%R$�E*����H���1BJ/#���=��TH���9���L/�̹{:-�-�:��s~�;�;3ݹsϽs>��Fm����KJJ�s���{�����ݻO�|_'�w�3�<�6E.��'�}p�ڵgoG E8�9I��x���`o^�1���X�#�|�2q�U_�I@}�!���u�-4ʜ�D�M� UCX��#�J#�Q@�1��W,MJN��Fʼn&�No��V�f7����k���z6�`�q�4VaPԜ�S6�kkUJe�Ç�6�`!"-���;(���W�^N>ZZVVTT��7�t(��≳�"8P��}�4��
(��+&�u�={����G@㭇�+,,,�'��R��ެ�f($�P��N����L���Si��$|I��z���E��TI:8��f�ɄB>"�6
��6��b�NEʳ��a����od��$�gA@;��el�+:zoB���Vh'��.�{W�@~�����h�K�.�/�((P(ИG	s���uu���%�,A������ʢ�heMͥ˗��O8�s����;���_։��X�ν�FY�	�G'$Hː=|�V������o��-^%��
hT�P4B!�B!��!P*��?�bm�&�(j�
غ��n������~�!L6
h��^(@7q*�3��-w^
�B]QQq��y�D�-��E
26����J�ͻ�+2��hQ�������r���?��%��]X�y<�pȈ�1�Xι�klb�yW
<z���7
�z�5k��VGD���̷��s�a�x쑣�ȡ��n?�����&�B!�B!�	h���������vYRrZ����A�M�2ࣛ
�>�:����}-ٵJ@��IJj�b{$A_�r�p�F=i��:�-A�|ݥ����P,#z��5.�<V�v�F��7&L6;s��'�2T5�������Z�!��5���1��2}�r�5��%��TgȎ<\���B!�B!�
�V�(��4�.��z�"�#����t��Ƒt4�PJ��c�lT@�!�c�lm��U���R&�2:�K���aa�p�ٌ;wJ ���2F4��w�^}����|V��x,b���~7�1�꯿=i��PG�p�$���2�l�&�Q;
�\)EU��9�<�;i�Ь���&�B!�B!��:����#ǚ����3 8���5�{o�4�\W��w�O�V���z��@�3j�7�lj��OK���S�/ [��?�w���ݽ6z�n����u]�R�a��������@�A���8c��ryq��i�+:�+/��������a��XDK�S@S@B!�B!�B��-���7� f,6��a4t�ᐑ�3,3��?����=�tM������f�[
E��բN�{C@]{j{���U`�ş�UCO�l�����9

��{���Go �8��CQ�v�M��J�%K�;nݾ�R�O;w���)�)�	!�B!�B��~g��ZX�R�7����<v�)��"b��e�I����}
Z%��������h� ��h�1$A�y��ѝ{h6
��:�������R��͙g�d�CNN�J��Y�8�]�X�P@YFF�m�`��mho�=x��&�8�]����|�E�ӧX�s��s���U<y���
hB!�B!�B(��g�V
��o��dc�7@,M�9fa���U�&���;�������@@��V�Tr�`�qg��H�&"^3�q	����m��u�^���Q���6�[/F�B�"�D��R`�NMm~�uh����LL}�|V��yhh�ed����M�J#�����hc�nB8`P���)�	!�B!�B�����p�1�Њ��T���9�� �a��.��OLB�B��
h�EQsxd�����?i*J��-�&J�s-�#����l"�c��E�I��]S�̈́��*tċZ����T7��NG� m������cf>e�#njږ �$$J����<��n^FCYMM!�B!�B�b�n^���0�
*��6�!!D"�4#�1[آhcPB.Z�iӪEm&��!&�[���!q34������0����]�ރ��v�俹����_�O�;�)t��T07w?dCtY�2�.�у#������14258<�<:+���9�p����]I�s�`j�F�N��ܛϼde��f�L-���͕�&�ͯ�=0<�,iue�R.�s*��K^#\�Y
�u@w.߸v}�՛f�8��76������Ar粘���ZK��@�b����t���h@_�蛵���������J����n�Q~JH���{u��>e�t@�yR�|k����G�'�5Ї�?}6�+b����zf�c���۟�>�@�@tW��ya����v����fʔ�R����5��w����n7�}@�@��fг��Ƚ��|>e.+��b��V@�@ǿL�{��h4�u]!4�/�Zm� ��AG]m� �V�a��d�i�A(
��ҡ�Հ�v@I��U�`n�./�	�&@��~@�
��6Z��f4��	��m�
��
�m4��7@GD赏m4�]5/3]@�
x�a�}ٻ{֦�0�?CT�y�j0��`E�
�"����ժ(�FCK�*�����US�
��c��Ag�x$�Ch+l�u�	'9��7o`�� �<Gp�'���������#j�4$0@�j���]�ln���j��
6��Z�{�3��p��0���ܝ�
3z�xG�(�)V�� �z�B���
(/}�//���ŏo�:y&��+��j�1��h��ݕ�v������~x�]�y9_~��x����}�k߭�o���Q��-@���΀^�t8�9t硑C���m�q����[w
��o���/N�9Jt�%>�
�4l�
谛��报�Ϟϝ:{a��H����KW�]|ea�T*����3D����
�0@gv�{��i8�9?~��:����j����}r����7�3�/_����161����Ë��~�6��t5 ~��?G|4���n�L�m��8�C�~�w�A1�q���.I�j�jU�BQ��Jy�<VTz�TN���"��'E�<Lĸ�py��ڒ"͑��k5s�Z�n�m�s3�͙��k�����ן��GD�?��@���	��Z��ϟ?Gj��T��i���E���z�q�I}Fl;�1L������nkᴅ�`��ήn1�����a2;{�wD7l�(�w�W:n|��k�Y���!�BI�4�f�R��q�3�s��5����5h"""""""""�������8�~�M���b0}�����ͳ�T�6�Դ�����؞Y_+��555o��_��(+W��f� h�3��3�
7++�������A!�x���I��:#�|�!h"""""""""�aZ���h������@�8q9��+�z��Q��ƍUk�f�����j5��MF��8����y����+x�Ẽ���zu[:=��
�͖.OBZ�P��`�I�/\ĭ�\�f��z���v_ܢĝE�q���6J:�䳏�@1���hL@w����a��n�ڂ�۰�����IMw���HЭ�i����t�dqW��Td�j�������kD����Ty\�tY��n�\`$u1��8Jz����
EYG������_t5����K@Ň��'�@1��D:��+�+1�|�^u]ݓ����ݭ�UH�q+�?��E��Y��s��Q�)�>s���鎢]M;��
M��9���g�J�3���kҽ�jԎ�ڽg�ZyzFvjz��
<?&�-m�ee�<��f�6DҶÜ"	j�%�}�������������0�����nWUUݹ�U~�⻽�ݼ&�{X�2��ӧشN�knnF��й�ԙn�&z�V�ɳ��ĸ�j<T��h�<m֔龏=~��_����q�J� [$0'0������HH\��	'�@1���	�N@+�ʛ7+�%��XΣ�ŖBk�V��464b�y���c�Y�~=ݽ�`�B�FS�������zpo��HW��?c��g��DŽ��#&6�x]!^N�ag���Ψ�448<29%�K��[U*��`A3�&""""""""b�)Tp�;�e�=L�ѡ�%�������
=�oΫ���'OPߌ�g�8���w�t�N�541�OX����k}�����N���$��}��98]--U���j�
Ƞ3�sݽ�'L���a�,j��Ȣ��������jV��I�K>�(�4����\td�w_B���}�{OU6)[[U۶�ɢ��Ĝ2hTp�x����ˣ��O����E\Ed�B��`CaJ�\��>{�,#k]DT�΢��F�9e��Y��_��O�߸i�`N�}���ќ�fMDDDDDDDD�����G�9x�xߡ�i�?|������F~���Z�]�"ɟ��-mP����S�}#>V(�p�7
�$�^�'N��7�T-uuu{�_r�bh���v�΅;��>6444�I��|G���\B-��S��4�W���Ϟ��.��!z�%��Ĉ�]�-����B~7,2:-#{eRrļ�N��.�O�*�+ŖG�yzN�A�FHx$�]Μ=��h��|@O�n,]�����d��i3��V��Ӗ6v�a2�_�*����$��ϑ@�����k�q�?�a�pAYZ��dO�"W�Lv�D��r%y�+%l��PȍmIn$��.pA��h+���Q
�ag�����t�����ܼϧ�@����ܥڭ�K*��()�YZ�M�WMΟ]�ql`T��qr##<|tFVN<��b�����㇎�C�����|Y���;?y�|eMFf���){����aySb����ţ�H�!#���:�|Tj��Z|hV��g4��@�9��t�%�;�����3.�۸95v��*��]<=�zk{2��Ç���FX��'����_�'+��� ���D�K=���W躆��-���{�s��ߴ���w��_PW�����{�o߹s�ʵ�-ۢo�$
4��:��Ct�S����T�[T>waoU�`�Y����='�M�Q\6mfqD�1U#��},��<�����1=�'��=>R�������@�$���Y
H"��m�@��/v@����3��J
��:�t\���+���]�����gM'O5�>���d�twww~ߦ?�f@+��=_om۱s����qDgI��Uk�9z���7Ɂ�x�yаQq�����~���s�֭]{�-[���hv����5�x�*	�Z���ޙ>Eu�a���$J�l@6Y ,�*�T��5."��%�"���(�.�[D��("��"KӢ6���T�i5��������=}�眮����{)��,���W�k�jH�uL�����>1��I��?���kh�dy��D.�'�[�ch�������@5����-�O!�B!�B����KQ�I�F
d2��_�:zFf����f6.í��^�cEFfC�_��//�����#@=�Fh:�Vv��lG�o샶�����!�B!�B�����f4�{d�?���+:����U��Ƴ��{��Ω��@,j�DOLCL���qJ���M�t�!������ի���0w�V��J�����i���~��z�F!��:2�{�f���8�*'O�hJ
�(���
xX�����_�<f<:�?��xXQ�:8:
E��8��vc�ߣj����ʀ�w�^��7�[ZZB!�B!��h6������oi���ސ9�~�p�\-4���RSW]K�XgDž�/���^-*.)���z
�Ǥ)0���ԙ��y܁j�q��-\�{�6��:�;�vPX�(��EAaFC�������B""B�v�����U4��R^��	�ӆ��O�>3!qmɭ_�'4�da��0��={����M����J�r^��BKK+�kd���i>��߷����CZrJzjjk���`+0,����)^>�U),*/�{�4i��YV��nj�4ђCY��.�<|�?($0$�\VV�*i���rp�v�LN�A!�B!�B(���z��>{��nǃ`jQV^.��2q
�a#m�&@�KKW��j�ׇJ:¦���2;�omiA��%Q����1@�V�j���[w���'N}�G��1�S9����mMá#�R�	�ٻO"5�\]+.a����
��r��)-,��v^X�o����N�:SE	3���>*�p��́��Aģ�N\Pa���6�.���6mَÊG�%RC�f��6��K]K�k��>��O�;1h�H���1���-�CPh���Kq����/Ե�xۡ����+�i�K��夦e�B!�B!�����l�]����xϞ�Ϭ7
���PYY���3�\���32�c��Z�g1����u旒���>��[�͇��X�������M?y��~y�{�F��������/�Dc�a�o�:	�@%r_
)b@>�q�I_L��s&�K�11���`K���2�S]��Z�^��
L�:�X�9��#Vះ�`1�}�׵uu�
�����A��G��`]Y�d74l��jm�|�����{
nӳ�uZ�,��32��?:v�8`lB"�
g�4,��|�0a����TUU�B!�B!��ll�W@/����O�I�CZ���F�0tp]}CsK3��7o���+�JY��c���
����Ј�)��b1�|O
�}���Ѯ��IK+;�dU�|�	_OC�3�mZz�rnˢcQI����"�ϟ׈��O���;�����*�]����:rޢ��V�x��(���q�<K�ʐ݌}�-P����؊��»�����1�?;w�*4����c'į8+�N@�8����!�B!�B�ڑ��Z��B�x�%z(�Q������q���d�|���p��ۊ�o7~��f���wv���G�Z�X��;#"�ov��Bi�:.XU@_�aie����SQ��\��o�={�b�5�����uu��x�o}���I.���Eh*�1�h8���{�~�t��h$iࣳ��˦�����{S��@<t�;N��ׁ3��B!�B!��h6��+��,V@��%�P����K�W*<����1~U҂o��D�
�wrC�o��ނN��8xX�~������Pӌ�[�n�&TF;���u��q�~��7m���F�0�Z��Hޘ>��C�,�d�%�-ʰ�UV�d�wGV���Zᓬ]�	�#L#b�x�
h��6�r�Ke��g�b�6~^~i�m�n��{��_t,;ӅP(\<4��B!�B!��43��(��˞�T(Z�Cx�*�=Й�z`ܪ$�}

�"uğ�ՀWEm/|.ʫs�еu�Nc<�錙��

���ޕ�R|��P<�7Jn%�ۀ*f�8u��:%5�/�/^܇�g�!����ˎe���!�q�Ap/�S :K̀?yj]}}4���ս��+e�Ê
pL�l��:5=���3
���ڛ�l����?p�@!�B!�B����{�al�(��*�KK���+���a��E�2Q�Fc�|����D
'k���������/^Z�4�U)��L� �e$x�ٻ���	�a^������#�˷�ܵxY4ʢQ
��E�4�!�Q#���SPXt9�ʥ�|��+E׮_C�r[[�Em�����#3lf{��XP�PV������)�8|��(�\�65u	�ʪjt�_��
�f5�����ЄB!����w�AUUq���\Y�l
Ȣ ��P�� �Fj�*)����QT$%��b44�������r#��i�ŧ`���z]�ii|?s��s޹��s�<���o��B+���Z���~�����+��Է�T�ے�ϝC51��C�nVNz�o�jR@�>s�&�޾���":��ي�`���I�P����lfe�� *�G���e<���}c:�Ї�ut퇼f��DmH2଑
-7�^�Es��o�@���\^�ʮ]��0�>$��.)�ܤ�F�4��H�x�VuyyE��PTXc�ץgP@B!�B!������h�>3[���ed7�|���]�-Uў�~Ù� {�\*�Id@7#��@�B�"z��7ߊ�O���m����0FC#�c��ɢ���h�X�&�9}K�2�5������n��������2�AFk.�������%"��=V|�6����ա�#Gc�jW�ⓧDG��Tܢ%����'�
�Q�/������
hB!�B!�
h6�6!�+**p��'�!I�=���*�!E֕��I��7~4dx7��M�҆�i�
�_�.�P��~������,���k�dg;��O�nN@���vC.+L,0�?h�	A!#-���������V@���ڈ)Ӑ�}�nvp�4
�׊%�q�hV@�����^>0ȸ���5 p^��'�X�1ЄB!�B!�7Q��qf��
�tKР����9�]��pU��g�T�����nn�E��z��1�+��휐㌜�]�:i��̚�����;�,JxG=r�l%*��Ff�X�	ۻxv�U��u�����|خ}�����g�;׮K�w��$��q��������e��*--�Q��Ѩ†�4A���]��}8��KNY�y��%<����ų��7�A�������Y[�<k4�fs+ۘ��ں:1Q�/t�z��KK�K2F�
k׾���22�%B!�B!������5J��z:��wt{XÄPxfm^�R@�8-�1���GLA�/�v'N�����HeIơ�G�1�����R#[�`QD�i3f!+�ʕ�'��i�x-ڳO6�8�3йx�2�����=7� z���̏r$NJO�Q�DϏ�\�Uޏ4���Θ>)r�̸�%_:�����
=�0yŪ��Ic`ҕ��|R
����O@r�$���+�RV�A�K��i�塞���'M���5>+�#�ؾcv;j��h�~y?֎�΋�;v�X"�B!�B!�[@�ŘQ�b�RR�V�.o�a�������e�yK��@�R����0=!(=x[Q��̨���C��=eeW$��9Ͻ� �B!�B!m@@WWW�)�=_�{��Ƨ��57�p{N���‡7K[���7a�O�/�{� ��OM���&�B!�B!���q4tpo{�6g�m���dېS���iTX�8����p��('w/^����bjl�1ұ-l(�)�	!�B!�BiC���P@��2
ZYs=f����(yF��e솬��<p�܍8�
ohڒ�-4������+44!�B!�B!�^@�<y�/��Oo��&�2kh��S555�[��:�a�?ʊEkܩ��d��E{H��	!#G�?p0;wc��O%44!�B!�B!�OK@+L,�oȺ��PYY�jM���@/���U���7q�>R����F=-���2��L�k����/�:�{X����x܋�b<:働zZ����Tb0
��`4�Psk[s���eo1��7L�[������,��u��Mx�''O����Tt�F1����x.&��~�����6!O��{��e���?`g�lJ"}��!#��V�[�-�Br�������r�R��t�rI7-���P���&f���jQ�>=;��4s��6{�u��~���|����u��!�B!�2V+8��4F�98?|���߷=bj��� RMNI�B���Z�y��|�5��RI	
[hb��E���}��Hcs�x��g��m��o���q	�8�a3�G ��wFF-4�\|�hFx�N\����D$�Xp���s1��յfB%���?�~,l��L-�q_��;:�l�����HIMKJN��
P���h�Y�fe�vvv�ol
���6/���a������[��q#
���l������7inn~E!�B!��Mv��pdT̋C�55�ڳ�զ��d�>7<��v�P�|CcLhlnu�ƍW�hljru��),M8R[W��ɗ�5��S���HX��桔N����|U�fpmmt0J?��Н�g΢��l�Ys�3������b����H��˕W{�������pE"�$A+�T?�O���号����]���D��##��bh(3�8C�S@���B!�B!�Vp�'�H
cA��d�]J�5c*|�:M���R�}�O��A.��/|	����M�E^,-��hoߴ%��MC=c@Yy�_@��B�{��"L5�d���Gm����/G�ߨ
X�	�'O�<nim?^^�|4�t�X�%4y�S��

��ű�K�e0�]]�{�b]VyC����,02]��$:6������ӊUKl���ޫ�LI=bm�1�Ǐ㡬�MQ����B!�B!��_Hz����]@c~�哧
 w�F����A��f��D"ik{��ZFn
>迯��t^�a������J�qF�m˲
JhҀ�oh0���p�$��@��F��=Upw�9~��2r�a;v⽴��,uZ��y��z0�xG�ݘ>C��*�OĴ�P'��v�����7��}$�=22�x0YV^i��"vS�r�V����$Gg(檛՘�Bҹ��U�u��L��q�\?C�7xL
h
hB!�B!�B�\tlB�
h��w�Z��h�@�aaEA@���lA7��r�e5��B���Kē��<80���Hmw/�����3Jj���p2���]���/(Dˆ����W!414g啫*�H"c����o�|�@7��x:�XVj�ѻ��q����C���iYe�i�q���\�R�����Q�Q]}�)�ꢢ\���s���m�#̬l���2�MM!�B!�B�L@�F�����G������=*8�bAy'�!��j��8�؝ ���2Z2�]�Rf�酻�D�\C
��L$���,^���s=|��t��
���S]kVn^>�mU_'�q!�"�/�tN+��j�+.�y��S��1x��/�rOO��y�L��鉍O�@FWuuwy� Ό�1փɱ����>�,ƀ����"
���L=v@S@B!�B!�2�:�q���b8h���,=u�TQBR*R��+e'+��G b�6g}#S!)��,049q��������F�Mu-L�[}(5
O���:
mji#�p����<)��4m��t%ق���`Ĩu��77�NgTj�c~��K������|D��*.www{���S�*4����FU���>�gES��Y�����Αtv�F(��})�)�	!�B!�BCBh�<���c��HL>���<�s#.1�b�ܶc����{�C�����{(h�~:�sщ�4g�
ʸU�p�����y{GGWWW�M�"U�_+;���Ĝ=}�hh�~��x-M@�s�IpaiY9�'��p��bc~�F�}���U��E�?-�'((�y�@@7ܿ�&y%�%v�u�X�~={��7���	h
hB!�B!�BƜ�r�У0�0�Z3�D���9Y(����C��4g@�b������۶?}���еU���$$&������_�'/RA=tFf6���֖��_[W��UU7!��t>�fV�����]�kO�T4~*�t�J��]ܟ��V\�ē�����'�������.#+'<b���N�d��+tEEewO�Ϛ��h/�slԎ�v��s^���K�����Y���4��م��������&�B!�B!dlu@��V�l4��9���O�B�n���7^���U���t�l��3��?{�w�><<\ZVa��z��4hl!��Ff�X�HU�����tq�9�k�#���R'��Y�e+FFF�\����� ��� �Y��eu��;#��?�.�~c#6E�Hh��׫����:7���F�{�t���Ϟ>Ñ;�
o/8d�X,�N%�HPo-�{
h
hB!�B!�B~)�c��V�
�0�F�gb�?ؠ
jT8�
���V��
(	Bg�a$Tu�Et�I��
��� &��yX{���_k7f��3��}�H�n�3=���ٍ�����>��ʴ��U�]�������roa�I���G3�'�Nws�E�����O�2����,�nί�>��'sz�9��l}�V/�3cqe5��s����}7Qu"���pu}����F+é�0��|��f�FI��M��lnT�����}xt����fk��<F2���\N�K7[�͹G��C�V-�����~�/߾�(�s'�I�˜)��B����K�}�9���,K�rz��˾�8�����&�2��o�o�J�_�M�e�s����W���D��dq6�d����$�YY�(O�k�G~ym2�\��M��+�'d���Vh4tQ�T;У��?~����~���Pr�m��J-��.~	��Ac7Vֶ�j����a�@��Dt�#8Ri|Χ�Y	�@�����Ph@�~�4Y	�@-�Vh�o�!�Vh@�@��_��J
�d�ja ����bH+D�s�LNŦ�����	��'8L�� .@�}h�@��s~�sm4�	�hH�U%@�
�&@���OM�\@�-@@�'�.�M���h����ݬ6�a>/W�RA�;F��ނ�ܺ�҅?)!ikE��?�� #4�S;j�L3��)�R��\�dw���Ӻ-@�
�&@�R��F�QjS\g�d�q�eV���>	J�'�n@ۼ�l��z}���bo��{xɦ��J��r�S���>���ֹz�g������J�K��pڬl:K��LvV�~����k\[��~�k�z���Q�1m�w>�^k�F�B@��^@�<�?�~�o�k6�E�j��<�Yv�Ms#��4IϷ�o���
h�2���o���8�/�??
y���Bc3PdQt��@��6�:�]O�w���l���>y����F��v��'����Y��R�]��!��{�O��/��U�[m�-8�a&@#@#@���	���
�_��9�2���֮�niɊA`V��X����UQAto]V<V]�
9��p��H&�L2��N�A&	�&s��s��T7�
$`VW*�SoQ�3��v�O�z� H@� M� M� � � � ��A�4A� MAAA$�)M�4	��9]���g�C��rugy�5�
��=W.�ưq�,�`�@����Ef���.�T��
�B��0C$�	� � � � M��$�~Ӡ1�Mc���E}�F��=w��C^'���!�=�*v�w��?
���L�r�4ݑ����]@�����윻��&Ӡ�����WU?SYUY�\U���-uZ-�9e�
Wޑ#}������=kJ�J�J6��ycmݫu�x��ʢs���au�ߏ�Is_�o�s	h� � � � ���v:����e+I@� }|�긻�qt�?�K|Ts`�j�4u�<km�e�)�;n�T�+�)o�1��Vư��O�3�%�2N�eL{�\�1���.�_�o�!�|��%��pn��p:S,������H�E��Œ}���q9r�ם]�do��*�VVݘ�������9r��i��y�+.��.�k]U���׸\�Ē��5V��4AAAAWL@;J@� =!�);4{���~�o�{��	���h�-�ɛ�(�VE��`czl~����
.�f9pl�s
�on�)c?�
��l<N]��ẁMu�>�b��kQn���d�\��S�8���K�ȃ^�dЛ�fK�QO�x ��d� �,w:�nw�^+띞%^���lf<5Z�)��l<^���)ɾ-3�^��W�ܞ%^�_p��6y�&��uz�� W`�*��x��k��n7v�bM��'	�?z<��p���K!MAAA$�Q�A	h$�',��#�)kG|+l�!m=b��M�-̩)�]}�ӆ����]����Vk�d8e.��h:u;��mu�F���'M�w�i��V��p�9�������>͇�GFk���S��u����y��n4~jH}�p�Ys�G��5,��\���2�o��|�=S�x,�۬eۂn���0nD��
�s�s���X&�����tȔ�>y�I��V����6�R�ဩ`+^�)c���H�sM"��]1J@�4�����@q�?���T*�S���yY=K,��~��i��S22�-��?u����P��tu�����czd�7��?^^�J]}q��C"�#����|�־�G�����}��^��;���+�� ��utnnl�XFǴQB�k��I��gK����x��u%EJ%&T8�,�':��>���僖V�O�����m��4AAAA\�@�з�>kJ�LaL�>;��4�
?��=�}�g��L�btt��j�S�a���al��_�@Y{h�!%J��1�Z���
�oU�
�k5qT�s�I�~�MX��5z�u?�q���V횦I�O��n}��}�U;#,ş�8��
��${�y�!�ݳ��y��O���*f�>�	]�L��_���Wڃ+qg��Dk���v�,)ou�,<� ��U�)�z|�.�	,o� �y�Q�:fރ��
]�����Y����H@{�5e��̂w����o]�_���h�${�����cYA���Ey��?Z��ߧ��@�@q�i�D���1�%y��J�lS!|}sz.;�'�]��%����X���<^ƃg�<h����y� >�t+�m'�&>w��9�$H\cِ��-:��z�����d[�0����R��㲩�Ys�sV�r�wi����Q�A� � � � (��4�󼅋W?��ck�ݻr��׼{����H\�Sv�t�>m����z�<��`lq���h����q`c�kp��!�MC�C+ dN#�%�n�~KЮ�,�`d�C~/�zѭ�	�G�����0~��5]���<�SNק;� f��Y0`�~�ް��8Z�ѳ
�p��2n4I�g<�'E�U�4�5:F�7�Tp�A��8�T#��崽8
8���Oc9WgN����&�;w�K'a9�����vui
7��V��<0����%��И��^WY��h��1�W�]�g�n�$�:�m���'��cu?�?Z^Xtoa�骒��D1|�1�O��!p���4�G�cL���"�Ԇ`],
},�d,�4N���
o0�ynJ�x���i���q�/�����]ت���>5mtzo驊J����͑
�m�ӹ(7/"3��` MAAA$����}^�tŷ;c�gdc$}�ٗ�޿
�
=h��4Rƚ�EP���y�j�/u�Ht�&n!�������s��R�o$ͥ�����ű�j��']�,��>�e�oxN�e����~P{����A��/'��"׌j��~\��������V%;OH4
lN��͛�Gm�h���b�꼔�ƇXU,�g��n�w�q �]]Y�Yl!(
�>i4�)һ�	bĐo��D�X:<��4J6�����C��
[�[0U�R��
�<R��ٚ�P�#V�t�V������:�)Q*�e��D���HG�FS�P ��Hi�1�6�
h�iw ��仕|�������1��؄d� �'"��v5G�JK� � � � �G���}�\rߎ�c�#)i?K���w8)�
S��A5��ї�YlГ)}�&a�˦�􉏨c�[c$G?�$T�bZ3�=�
��	���1U�{62Ԗ�/��a���V��p\-r���q��!<��o=���֊o8�YU�\,=��/�zw_�PӌcՎu�B�X;ڒO���N�tG�r��~M��`�Q�Z��
L�9U�x|����!�g�
h�]D���ܲ��
R8"K,$�'.�!�e˗��΢�C�`���B_����E=�t�
����и)le8s]�G�~�G4���ƶр1M,A_���Ƨ����OE�jl��2�hl´�0OP@�5���� ����i$�	� ���w�AU]k����s�d�5�ނ���Xb�h�XPĂ�����b�jD��.�Q�������rs����/d�ɇ���g���^�]���͓��D"�H$I��eۖM��^��@���h��
���e	�DBר�%�p��>�J��ۓ\�e%z�c�Z�Ë3�coA���p:k�.&�+�?W��Y�_�h�ڤ��g";�P���^�M���e�[����d�&_5�g���WZ� �r�0�\�Wu�B�I���l�K�̪����y��r�4Q��C���ڽ���_��
��jm�\�N&g��eoƪ�S��.��9z@Y�$Rw��$4�x媩���J�^Pƶ쟐X'�0i�̺D�a4�kw<��o�I~F���s�q@[�s�tt�
@��!�M�2�k:2MNyS���{g_��a�3g�@�As�Z�1�İo���������|/��)G�@�+ mq^��Y�iVz{�c�"�H$�D"�H$�*h�nߥ{�4	�;w_����iZ�F�{�:z�\��!>[}&NmߥG�f��߶e����z�ǍwZ�|U�o�֬'Zt�����L�C㠮�׷�dL+��]=u���CR��g��7ڤ+���&���t��`�__s�v�e��X�S�|�8�&Ӽ�V��*�D��v^g�;c:槱H�5;em���{Fmnƾ!0hv{[�˻i�;e�l��0�}zM�zj���@��n���9H
8;�=:&���k%�e�r��y��g�N��u�!�/��\*e�ߎ'Nv>q���Ǡ���qՐP�3cD�B�3���h@�͘$��OP�|���q�I�ŝ�T�h��0�F�$h�G���T���@�2c�0`��K���-�D"�H$�D"��@��h���>�Y��@0��c�;���-�tĊA[%r��{��r_�z�p��jT�U�{�O��(���Uj֯�������F$5y3�{fE,$�Yul1й7w�tN�W��&h�7��U�?<�>��S���<��~���O�V9V�T�%/��q.���捹��l�&����}z��!0m3�U\Ϛ�������E����I�@�o��0�s��3�� Ds/ �p��G}@�;�����dg0zыH�&p#3ОQ��~0����j�~�z���J��V�#�@_IM����9�n��m�#32Hy&���̍K�N}�@��xQ�PH�'����O�y�4�v�ԁ'IX��<�O|�%6���S�9���%�y��H�]B͗�-!���1�~	��O��|�0�"�H$�D"�H$	���̀&�N������5z����.t��m��N�:�#M�U�T����u^������7�Z���x��?-�egNa�٘;�wX���7�a�Y�����Yp���>_@(_̲�2���V��|L^a��uJ	cj��Yt�C��2
�R���*X?2�[4�斖�
:�ԑ�@[��3���LA��w��s���b�L4*����&�f���� <:+l���̳�f��6訊��E\��+�L�|f�G�#��KQ^�c�}~%��گZY�::�eT��1VӀ13�^1\�UO2FA�y5�M�����ɿ���v|]3�/Zh\�C�_�h��H�g�A�^~*X��4FfԒ��š��J��ҋ�V~&�x[lc�/W��g��=���0M��-�ƅ�h�ο	��)�.��f�K�C�Ȩ�!� �J���dΞ�4h�9��e@7<rTɀ��B�u�d?�"*�����t���(��g*!�7�<�|"���븙�.Z$�D"�H$�D"ɀ.�&c�E�ƃDm��'��8<�Ƀf���ȝ��g�5�ku�x���(=#C�ѬX��|�L)�s�IS�Z��ѻ���]�=�U�Ɩ)�`c�b�����@m�0��cٔ�Z���e�e
��3p�B��?z9L�ܢMG�f�}�n��:�Z�x�Rvnظ����_u�:s/�֫� �6n֪J�z�:u�2c�j/ow��ߏvPN�զc��s�����睷�e�j��NSm[��^�K�`C^���Sf�Y�n��[�A�͹�eM]�>/t]���M�ܼu�j�2%��@�hA��i0��F��&m�O�Π��&�-zv��&��x���̓5�V�YIJl��&zs^bB-~3�/�}V6r�wMⅉL����W�i1����o���&]2�(��u榑U�}r�0h~*����J���q�:2=�4&���C���.�缤l}�S������=��[�2,S:�s��Ho@���
���P���j�L���/^|�����ď����dd௡��kt:��`_������
0����Z�����E=�&��UQ
���c�f�̹�S���K��)
'�>���xo.c�R�c�[�7�V��{��׫���+^�+�A��.�`��5�V�-�D"�H$�D"�Dp�@��Lg�(dٚA��Q���B�C��7n�-y�t�������	�W�.,,8u�,HZ�W�\����
��;���Q����B~�U�1|��7o"#�ܥ�YP��IO��|���gK^nS�X��wPfh���N�ϞYh]Aa�v_���
�
_z�(&K��TLl\����
����+��m၀ �t��5�L�ŝk�o(���~�$��Ԫ?s����_X�P��^k�׬ߨZ��6M[l޺=��
�Tԝ��T�Y-�/�e[��PZ~,*#���5�¶��چGе�Ë�ss1)�|�Gp���.|G��—>D�Ŀ��E"�H$�D"�H$]�&�`�f�;�l�%��l�A��dq�:����s��#��X���v��kՎ�J5l�}�ju�'t������8����?�����Ѻy,@?jlVVV�V����a�V7���o�LƇ�b��1���z��{�F<�.]�gԝ����Y1�q<��8qܼ��/;;;//w��i�*�`�ؤ����]�'O��w{�0��gΞ_��}�ש���i��O+Tq�:�`�k���W�Qƾ�Ӊf-�\��\����\��tf�C��ݼ닪�<��4/SR�o��d���7����^kҬ5S�h�)721���]Z}*%eM�õ���)9DTZA��,6_G�?������\z!�1��M�=-�D"�H$�D"���e@+1��Qlٱ����ɃV4ή
JG��W7��{����|��)�U���o%�]�Q1/W�^�XX8w�^��� ���������j4gs^���Ԉ��À<w�L��!��W���|�~V�C���!��Z������h19�|^�Z���O�.R>ʋ�=�˷nG��-���+U'�)煮v���/�,����k݆/�՞4e:�Ǐ;}����U���o�?e`���'傂C�?���9�O;}�ݛ�lkٶӍ���F�
�G���\�6�&>I�POp�V�Zm������LH��ZT2���@�~�V+�#�E"�H$�D"�H$�%]K
�A�`���.[�M�=���Ѥy���&��a�}.9�9f��QL��#�����G��/�[|ՑddtXx�^�[챴B�Zf�Y��7���d��ض:��2���M���ι�gs�mRS�p%Z�����,�a�^���^�y��m�t�M.�?���s�?ݓ�n�.�x�-$uзd��߹[��S��J~���Ѹq�V�T���
��iЄ�Y�+	=�ds�s��&$o@���j����^�xI�ƶ��W�H����U�bbI�pu���-Z�E�@�i	��D"�H$�D"�HT�"8��z�A��%z��� �-zo��>��I��O �}��^q�”��'''���hF;�'�����p�6��|
_�
�$v��W����.]��e��J`�-朻���.������Bيr�3U������g/�b1ؔ4�<|�hB3���_�fm��
��lӴ厝�x��^ُ2Ș�N@�ˡ���)�g�, (�r��DS���1S+ggCJ��A�}�f1P�b���hP�h��@��D"�H$�D"�HT�4�@3Hu�>���f��x��y8v��ge��
���]K-ݦC���q�2�߸y��m�6bbc�N9��i��C���)n�^��`ɍ�Z���ΦU`��o4O��^����� 0�6��.��=v��D�qG؏>j,�z��EEZlܼ��Qc���A3����?r53����T�W=y��Qcw��g�5�ޱ����Θ����B��Θ3����Rg�Fv$l|�oPʫWi�i�L�'Er}?ځqǮ=$Z��w�OU���i�\Q�$m�AsI�%*%Ip��DA!��(��i���VC:fi*�"YYF	�Z��(h�x�n�,^N�x���Q��>�͝s�9�߹���;�'--�B!�B�6���}4�ʡ����
Z�#�ƚR��clˉ?G����'I;�p�O��s���F�<|Ԑ����E�#ߐ᣻���w �E�~t��
�~�`6񣔣��4�6�貪ʪ��N��ׂ�1�D�耦܃u��wu��O�?p��5�lQH�ƍv�/���������9l	�?h
@�&o�{q����#�?�e�V@S����V���Cwz��l�?�hKX���/(�'�
	;tq��m	��C)��˷K@K@K@K@K@!�B!���F�ΜH�ٲ�tn�K��1t$��f7�;>x����E�����!n��H{s{�>�� ��a����� ��ل�-y��}8$,2%u3�h_�DaO��_f�coKJJW�]O��g���z���M\����y����u�-ٱs��]<�����zJ�i^	���3��M���#���()-}e�k����r�a\�5��S7��~3�v;��`ox䒴mo���Z˳�\��c��/�Z� $l��55�X����uwu��n6�e��$݊p{��7M��5D[&��4&��B!�B!D�L@�q8t��-�kXE�[�����A�ޔ��&i� ���ϔ�RT�1i���Y����y�S�a
hR����@�buI:#v����?���g���2��/\� .����C�I�
�߹t�Rb�Jl��Q�3����\��O9X�>�C���k��7�R�a>���{>��_�� �9x=m[מ���9~c���CWuĒ�|���C����t���Z�Cat�����G�;}�N�:[\\�.�l~�T�F3Q��Ts>���ʏ�_�.�i���%��8��ʼn'�6�B!�B�>4>��o�����a�	A�m�w�,3��\�֎a��]�8:,b	n�&>��qē燰�,}a袙��MZ���s����ހ��Ў��̬�	޾�Q1�����e^��Ps�T����Ĵ���s�l�c_J�:���;g�61&|q��5��1qLE6�ŗ(e�.�q^?5~�U0��FͿ�h	��3g<:�sY�m��T��ޘ��	ޓ������LKF�y�����,vCJ*v��g��W���i2���b�0'�̩$��f�ڙ�9�F�uC���Ε��iw9���{Ο7Dۤ��\z<��'�B!�B�v+�'����t@�n�:�{r��P�+����=z7�ٲ�t��~}�{��8x�=	����܃��t�Gg�i.�x�xn�/�GBX��1[v��ս�l�}0U�^�❉*���F����Ŵ�r����"�M)ܱ[/��[��;�L|3η�NR���5�����b��u�f�����y�&K��	��ji�0)�l+�m�G����5�]u�84Z`����ܱ���W�M������=G�Q__UW�������
ۉ���GM�!�B!�B��)���4�y^^;w~�ǐ�{[D��8͜����? #�'�W�2�5;����#���+A�{oyAS�����e�~r	����PZ�k����۽�oM�h���_�7��LFCm��t�'�_R�,��'dx�xB������deo9u���2C!�B!��V@[�]��-��/����7�<��cxۛΒ_��bcꦹ��VC�Qy��|��@���q��{�z������xQ�F_��x�Ju�!�B!�B������ể�bK@��a�lt��JC�-Ϣ�)�`�����J@!�B!�B!ZJ@WWW�%���B!�B!���R�!�!-�B!�B�{wt�Pp�y;�\�?�;2ţ(��#)�'8h�@��
�.�M�<�a�

zfh��&@�P�}Bh4��hJހvm4��hh3~Б�'@�
pٹ[���(���~�AG2!�	&�g0\C ������&����_�;*��yrDE�T�99��F��5@���"˲l�X���
hS���c:�~@��5���zހ�m����}@aM&��l����.@�i*@P��e�
h#@�P��܀��
�F���8'8�Е��vcG�64�y�P��OOz�(�j�F�'8�	�a����?>�$Ë�jk�F�Ы��r���V�}v>�{x~MF�����PkuVH��k����i�}!|v��
���y4T�jT��f�m�>��읉Sg�������A@E�CEA���C�#Fu5��QDAAn1Y�)�e4�lPc�F�F��*وHd�����N6�.����}ꫮ�o�����y��B!�B!�B=$����DC򆓫{Fv^AiE^q9����:F�V�����m���X
]�N�p*�&�3\$���O7�˳���ji3g�����B!�B!�
��?h�����ċ"b�BP�����g��E��K�_tӯ��1o�t����22��m���#cČi��ѭ��'N��Y�ڹ�W��K�p�:m�b
hB!�B!�B(���=y��U*�!�%2?��EeR/?�9�Rӳ����K�����}��_^��o�c�|Cc�ѪZ�����W��ap�$�&�(o�My�����/�џ�$�{S�%�[S@B!�B!�B݇�~V@C��oّZXv$��"��T"�혒�/,*�Yᅱ�h�M�v�F����R/rI�������
�f~a�����Չ�F�j�E,y����Q���Ͳأȧ�>�,���"��Y�[�fdj�M�.�M��&�TN�ƺ��
/��N��~��B!�B!�
�T^�*��s�%Y�����-,C�sNA����i�L1��;Kd�9��F�wr��퓀���u��~��6��8��i{2�/>9q
a�
�+�s��ncRL\�(��42�X�κ𨥸���s�lHڔ����y�����/pC��n257�φ����u$A��i�oࢅ��Sv�,xw��Y�N���n����bu"�A��ې4����s�B
hB!�B!�B(�jB5m}���p�H|��~����'�X+�}����>�_�9�)�����/v���w�+_Bh*�hU����g�Ν��X<�������:kU\jphss��x�^����s(�?�VKMKG���{�8r\l�J�߸q���U$g�ŋ�l��B4�[�<UU���=X�~5�j�z��2S@B!�B!�B=0�Б1�J+�B=+|tn!t D0,��J��	��W��"C�K@�Q��֟��ƪ��X.�z���ƿ�5���K�ue
I|���h
/�j����*:��ᢼ�w���7Ǩo߱:yk��7F��-_������c�.ޖ�����#�oMNyc����)���+x	� �%e��̃��&����!B!dh��mZ�ڰ!��p��;�9y<����7~�Q@+71���� �;��ϰ���#2��
�q<�������z֪��o�~!����F.��Np�'OWO�f��(�w߸y�y�
�������E@'���Ǯ��f����9r�&�sww��G+�����}Yx�*?:��Q�Ayut�2�6���en����#bn56b������k�od��ϭɻ�\�V3푥�ρ�#�n��#o��Y¯��'��"�l�!B�C�?�y�{�/t�v�z{����s���_�����-[��Bҗ�9�wM��/B~��KA��6v�m�`6�e+V76���nm��|&�
<޷����=!��:PX\&���{�I<|�������^|�%�1N+;7O �C6Z��/~e�o�"Z"�sHM�BF�"���Z�ö��Χ����yM�h�Q�&���ͬV'�ű�yxI�K���>>���٫�F�&<D�6l5zp�O�1V#zi<K���\�2moꠧ�Ya4f@C��3�E"�{��32���w���$��J�7w�\�`���7.aUl�*G	&}����ƃ0��c�VK���:�G��Ϙ�O<�2� n��y��F,		�ru�6�lj4mzq�!a��y�SO�n!6�o`fv���v�TU�ZXۙZZ�#n�[�����TW��&�H�I�E�}�	���Vםx�}�Byؼ5Yg��N�u}4W��P�J�Az-`Q8�>B=$*��/�ѐ��:�>3�`����[Z>|XUSSSW�4磕!�FSoR��Ph�/�,��glLڌ{ۻ/��l1?���H�ӧk{�BVv�X��������㟜T��&���/�wtt`7�Hz��P��3�����	A`���B C�o�����7|Şk׮CIk�"EG|
KJ��W����w�1�"{Il�@|v����ĵgΊ�9|���
�3�%w���[�MN�~AaX���G.B^V+�1{�T�V�z����)�z8JU��5k_8C��#
}�㉝�B���yxUumk�xe�w��˵��EP�����(�`�^���bAP��X������X����So��
˭Mb�e�q�c��g�k�9���o*��XԴ�
��FiVx�7o�Z��ҽW�v���p�N���&��UX������Z�6�A�?VYj@�)9z�I˶m
�xA�R�.�2tcpa-��3��}�]`ǽm���/h4�;p)~��mۛ��!�P�AӃ%%z�R�KX5�W��Ç�4MK�7���f��9N���sw�F'D�pT���{�KcĒ��7 aي�Ck���$!o�>��/�H��p�u�3�6����׼��m?�/_>-)�5w���x���AN�nܸ�9�#�1{�����!�O��r��q��)��]��z�$�X��Ҫd|˾��6�4y
r�������]=������6�>C!�-IH��3�d�~��ðƜ��\x�Nc9;vB��V��gd�)��6gނF-��;pP�&C�y1�2�d�|!�%�R�@��ˆa!e���R�y�cp�EDݼ��{�n^�eyv掝��@>�lV��+׈���1
r���
��Z��=%A��1�1�09��	a�KWp�)���ĕ�����Ysg̉Ѯ_Qә=\<�#���P�	C�y�e�W>2>����o����I^�:>tr)1��;,2�zq1o>~�0sNRB����)s�N���X&=,ِoB�`��]��c��b5�h���u�5�?��f����a�Q6KJ��be���s>j̸s����?nj[�:I^���a�ь8�F���.��|�Ɗ�9eʔ)S����Z�hߜ��J�z�Vl�NJA�Jɦ��㘉8q���q��/�KHt���>�1YfHyp��+W'�{���EF�@�J=r�8�/���Y��~�'N&����!� �BcY[s����Ljs�&9eT��zbe
����h��a#��~4=	��`���J
 c^ ��:Z�愃\=�J_�z��Č��� ȴ$|jڪ=o>|��ѣ���ǃ�#�L�����Gz%8��Hv0)L�:}u�Z�g��A��M
G0�xa!���֭�@se�>jhb��MG���{.t��f�q7s6�|�i��3mOې��Ȼ�y�T���ԏ�� �\�g
��u���[�	���kڪ�yo�V:�3�9;G|��?�a�6��t=�f޻e��H|��%����5��;w]�?b4�欭z�9�D�uƦ=����?�֭;� �m�z�"g�â7�<��I<xF�z�X�����GlD\jq���-�l�t[C��4f0�2e�������H�C�m��R{��G�5�5�4L��3���e�㈣��.(Y���/ZҸE;�@:�!�̛�kS���@�ɸ[O5u"�E �g 6��۩K7�N�sΩӨ��Q��w�݇�u��I��3{Z��᫑D$�C>�3���uw��&f�������;%�)�9�8�������U�~ᛝ<�*3c`]��)�po���]=�6n����I�׉��]��jվ3����Xaw��f9�M�kH�~`h�k�t����w25��st>^x��ry�c����7|�؝Q�IKD?��jo�ښ�>C�L�2eʔ��4�\����?��q�4l~��}y�D#S�b����l��̢���E�R�7 /���~)ӁL�w���]	H�]I�
0c���o��M��l�&��󥄺�g�$~>^�F� `���� �}�D��W��
̃;uV��9��29��N
��c��~�����:�!	@{x�rBnn�gc�S���;O�<9o�”��'O��a��\=���8�_TT��3������pt�Ϛ��_��K����]�f}�^�t)<2*,b
^���7/���@se�9
�@3�-�=����Ş���}��S�:�����9 �N����e����;����hdҵ�13�#F�%{��?��tww�^a�u�X��$���
Ϟ;�:�ɸەk���C#�X�Q��xd�4f�rbf6
�.^d��X��]���~s&5H^�oݶ��'N��@�BU�,�� 7�mXc:e�*�l@��}�˹�OX��A{�Ț9g>MJq����!��6l�265�f"x��~��;w��@Ԣ�>���c`l>z�(A3~ڑ�K�D�;���\`��w�߽g/��6g��FsL�����I1:x���ag�o�4Z,��w��0�-.�.�PP��Q��fUE��A��b桼�X�"vY�ܩ'�_���u�i��gڑ�R�l�{�:�)���fu�4�/��J�*���U�	l,��؉�\��; �X���j@����j %8���2keP��q�Τ[D�f��n\}1�;��M��)S�L�2e��>X���5�Y�8��31,��?<���	��x�l'$���D �bv��N�Yx׮_g%��0�N�e��ŋ���/û37g��Zmj��j����%�+ݺu�j�f�;��[/�^\M�
'N�T����ms�Ǡ�����0�g�[��^v��,_w^��!fq���W�&->�M`�1�,���3�n�}}�\ܼ��C���1j̭r}b�-Y[�8F�v\�Eq=����څ�Ⲳs�
hD�9y��W4�;p��T�M�^iޞ�_U���šf)��ŋ�[���-A٣n�G�+����pF�DO�iamW�T�E�M��dk��?M@K��|?~��u�G�0u&�Ʋ�r�&C!�U�%�_QS� �d�Э:ƒ~�5�E�a���4����/Ķ��5nIK%@��=m�<
�ӭ�չ�~(ӝ��W�Jb��{*�=���S�����5k��3,,"���g�p�e�qK9Z:��v��(yt���o��^��Q/
��B�\�b�m�.{�x]�v�f|��I~�`	XX�S�۬�18c�N��̆eeoc&5f�h���V�GIY���cG��'O���sb2A���6@����
��X��g��g�M����258 ����g���:e�*f,�9�v
l���������!	@�hA�J2�yش呣� ��]�8�Z��|�Ǜj��g�:4X�+&�2eʔ)�|=},*�&�EN�;��o�ɸn��(9�A:~�rʌM��("l���FDD��fΑG����i������g̚+τg@=7f���F�M��]�ơh@bB�ԊОC���i3��|Mx��+xB��o@�~�m;C�j0_Ѳ����l�=�Q�Fws+�A�}��Eղ�%*�8Z�Q3�����YP�N�:�vV��g�J M|]�&��N!6r�m:::�@A�Ϳ8�v��h����u{Cj
<��\=�wnٶl2Nu+=�\h¤[�Ke �rC��f؆gJ���KoIٗg:��z/}��J�^��F�����FO
�t����mW)M���l�Ɓ�%�}/��>�=!��l�E�%\�!c
���y�BP	�C�Heo�.�	����\���ۓ��B��u��y#�PG{$�tʔUb��`9�h_PB��f��10 �,��n��z?z�^�mz��M�S�3^�׬M��(��h�9�M[��sD��a;��N(�u��1����l�ok�<��ho`�~�(���4�$���@Ώ+��<ȷ��h�M�<{F�7/m����5Iɩdږ� ��o�4�=����vxd4��������32paHD�I�(4j��b�LY���?B,���SW���T@�n��0�k���R<̥��ʔ)S�L����p�(W�hh

���4����4����?N`�<-�Q�ŮJZ��˶�Q	B�0�4�vi�3O���f�@QD(
�
S�
��5��z}�QNJ��l5]A- ���sK_>�_8�`��
*Ӂc�,5'�DF:�
�Zt�:�-;v=UT�p��RIp|b,¼s��.Rvr]���P���,��,�)�̡�e�|��`���M.����6F�m;�<~�&�/�R�6|]��F^�2!�#h;ǁ��3�����+?іP���7�Z���7Ed�4�ACS3>�+o/b��
��`dҳ�@����=�%�hq�^̈�����b{Rx$���}�i�,��0V�Qe�*�͉Yk�.1�)����j�U$��kD��*7l�
&�&���M]=u�����@�|�h�lIP1fѨ��?.~|�(��E���� =������!�䁹���f����u�x�>��
L&�^�8�ZV���`����{��rq�ظx
iϙE�)�������Q"@�meӯ��M@���9���>ɸ�9�\/��A��0�@�k�3��t�2ZԱq�w�ҫ�^-�u�h�
)?�2eʔ)S��$8fA����"�ڄ|3A(\c����i���Z:>N��;c����m�N	@S���i�~:}�<Q�"BQk�F�
���u�W�������ɇh���:!<�W{[�y��@��@=���'B4����t��ŵ�y���
�� M�'�Y��-�F6y
\��񓖯\�l�/:ŀ���cM[��������`?�Y��2��%͓FF�[�4���yX��3�-� ���mt��$8�=`F��R���
:��}-����h��$���v��S����f$�1��ڝ�"8oA,Cr���
	/��o!:�Ќ����c2�Zv6�����Q�@�lh�(�L/���D��T��¶L��"�9��SEgh-��3�M��_�k�<`���aO�i�m�����
���W3�!��XY�Z
7g��)��!(y�=ej�Z��>�4<S�o_&~G�'
���|����t/@Ǿ@_�z
�m����(���`�y��%�7�e�7l�iG�ꉊ��)S�L��Հ�?tH�\m:��Fl(���4jq��=���<|L^1��5����K���
�𓥍N/Mu/�ZGT�'��k��%$�r5/\��	O@+��mB�c�Ӡ��'$�H�]��rK�VT� ��;��S
OWztX��M�5D�۷�M����ʕ�:e_6�*dB(���{\�^�z�v^0����7h�U/!&�M��|��H�r�T�v����T���b�ܹ�
`�܃�g�Y�ՠ����	�2(]QB���{�&���)�]n���v���!v7l܄{Ûb�����ud4���@�KZ^���	bh:�wpZ��hk��v�ɩ4c����glT�81_��Yҵ�.jr:jԼ-�l��{
A{���m���))y&�43��^}lY��R�ɝ3;�njh��Q�q�ƧʔU�Μ=������-�:{�cO6�''��^,�v0�\�8���Я�h�p��ݧ%�:C�c�Y�<�4S�Sٵ{/�7�@
?��ܪo�XP�L�2e��&�X������D�0ai����QVO)������3�+@#�F#��)[x\���{�&�
����В�W�X�o�:l����΁DKU�+=4��O�#���hg����fR(�)��
H�L��>CW��ݜ<䄻w��s��$h����f�.��� d��$�k�O�jox�+zn�"xXgΜսe�+W�$�X�F�Cj�A��}����]����}��B������/�����_W���e��8ؖ������۷5��\#@���H�H�|�pqí�`���:e�*��Y�f�����O�a�=^(v
�v`e���Қ���m���(�MZ�_�*Y��WU�>�� _���.5j7���l؍+:̴�mиBt���<����&��mQ�`S�Xl\��4#��?
�4	؎�5-n�BC��G�FBއ%��a�4�L��-+�欭-���܅��N.�A���=��ɀ�F�=I�M�1[�L��169�\�?�B0T�bɓ���7jѶ�}����++�{�'<��j7����Q f���_TtF����{��:D�P< p�=�w�좁NN�3{"�R�L�2e�>�Ѽ�F�&�}�� B���	�S�N����@����^CX�K�l,<qRhO�o�
�5��O�g�s��M�6�U(Rjh��ߪlؘ�6]�����]_U��™���Z��!Q-v׮K�MmgХ�M?n.�}��]��+Z���_��EB�">+��h���2!�02(�һ�+��<Uy11���j���(żH��3N�K;w��ﰑ�V���Ǐ�\�z<讦*95���N#&c�l
Y�B��S�N�׮]G����M/k;�1/U�Z&<���6��?��ǩ��F@El8{q�2k���2��j׮+f���nk�S��5�t�
�H�`
�z=[X���S��+mXD7pp���ӞV�1Խe��7����3�lQ�_���$����A:���@Ply�;Ha0��$Vt�,�d!����<C���&35mߑK�4�Nk�a]t�c�/s Wf6��ʖ�L&���h��<(�j�D&��|5��ܽ�Y�n@��E�9�tʔ}��T���OW���SH�K�Y<eXW�K�
Ygt�x�YpQ2?r�8O5E���$>!9r��C��
�4�7C {Ȱ(�HB��#�!D�ܼ}��2�IT�Z��S�L�2e�>����OЙ���KgM\�L�fdn�5��K{��֠�L�?"J��HR����T��dB�f;+;���}��=ڒ;�\�
����g�>|�XO���<kዬ���Ֆ��GDC���Y�3Z��U��Z�"���������׋�?&m@�KbZ��2ʚ�5���G�s�L���5<6�O�)ư���`%�(����"�ЅF���E��=A��Q[э!�D��c�	1����_%���Ι;�Nn�Mɧʫ�-=�ټ�C�⼼:{��0�\�?}�c�������\�����*����+�ש�/yˌ�6����*+��Ċ��ۋ˫<94�J��ˎ����xɊ�h#�@PIigN7��aQ���)���p�f�����*��y�-M�y��u{rv�2����
�h#�@PU�����˃�Ey��R�^k�jD@U��-˫�F3G&,����r4r�Zm�h*-]=e��L���펓x���TE�c�����v�h#�@ �@��@�Ï���@4�@�m�h�?R�a�@�@/>��Dyv@4��F-��?R��ڼ�w�(
�q���(
�E[��:��!\t�E\EQ�k8X�?(^),�[	h�Ĺ8$�y�^!ˇ�_h�OM���	3��f6�vhkf�g���PCEQ�ƕe��&@W.@�F�4M?����a�$!@{mt_@gYVE5T��x<��
h���'�I�����B�n�	�V�uzq㓫	� @�[��y.�,�W���V;n|u5������[^�8>9���;����;��h��܀ޞ&@���[Y?��}|�xxz��������Ÿ���h~ػ��*�8����Z-���p�� �\3�xC��1*qB�i��i����Hr����j���jKK�-nj��������>�$csmy6�:��Ύ�y�s�s��߾��TP�4�n�,|Uѹ�@MQY����Ow�䏟`�:h]�fz�;{0f�M���+�-�1��鍴�Z���ll*�y�J"fE�ugq�����F��svw���K�&@���kz8@�-,�1'z����r��Kt\���!7/��up}��TQY]����?X�d�m�M���+�-�1��)aQri���F��8��{C_�sr��W��:�����컋�T���<���_�o��y�.aZ�5�_�������c0�U=ѧhO���>�����
�G�)دm貪Cn�TƵ�W�,{����ܗ_k�������q�ʕ�9�������hm���`���5��m����c��ǁ����ޫ'z�������>8��N�WMVߎ	��I����ʻ��^u��Ak��#�ƨU��|E+�5�C�8*:nWN����\W�+7o��:̸5��o�u�+��?)(JLJ1��'-�8g��Դ�;����o�x~���y�9y�G�ꏚ�w�F�,P�V�6Y}A&@�'�ݼ�V����@m~QYBb�1�B��h-X�>sn{{������ի?ϊ�}��AG1�
n�:�-�uB��c�O���s�����#�Щ�[ZZ�����B�I[{{L\|�k�/�h������6gwo-V�հ��0�P{g�w���~c��PhU檚C��uuAS�M��lj>��ۻ}G�klܴE/�)���$ $|[f֝;]׮]����Z.�{w���7
�K�FDž�G��Ʀ��i��'>;����o�h{��d4@�~|ZeYS��|����`��w��������G'{�{9^c�W�~?bf�qs���յ����r��d}���3va��JC�O�9{��/}[�����������S��/�Q��aύ0�5�d���`h]����b����`@�T}�q�}4�C=��ʭ� ��e����
�Aa�a�V��y�Ί�#����:��_��-��~�蒊ZmگW��j��x�}��W��18@O�� @�%)�ꆽ��?��VV׬Y��/0Dk���թ�޽���3���f=����K�-(|���
�o��|�*��<|�}��7�������aU5�׭�fc��h4@����ۣ���T
��H���]�ʪ�M����vczFfv�q7��Љ�ˌ�H����5Lc��jR��<+@GΙ�ך����z��I5I}��/^�]��4�_nߺ�Z����������?j�sfV��gm�u�ԴJ��m}qݙP�7~��4Nu�·��R�)&�/�h���	Pg�٭�ڭ�=R�J��Ɠ���(�A@�F���"(�@0ƤVM�l�  "r��9��p@��nFAnf�ٿ�:5J� ��0�W������Cw_��{AAA	��H���
�stA�3�2K
���yf&e��aQ��fA��&�mܲ
GXUUe���_�O�@{��I�>��p�).�[���g�L�`���<���o�x';g0%t�%�
��p`V֟ �����:�H�ahl�k�QՈ�nk{l����Hc��m4�����kw����������B�^D&Zn�
�/AAAA1n����$��~��!���i��F^�L�a
ɸ���5�
�C4f.Yfz3=���&���d�q)*!1�z���'L�0I���c��Y�����.����C"�9z<�~#���[�;AF�F�gd�
NIM�`�j)����X��y>C�VUz�h����n
�&� Bٞ�0����o������X(��$b���xjbɀH,��/w,bQ?�4Ѡ���D0��p$�V��s0o���$��/	� e��XÍ�����8(�	s�!,��۩Ys􆙅U�\�tw���eg��q8Ũ��и�r3���HM���a�_@phxuM
��o�~��Ζ��[ZZ0�HIK�ַ��`���?ް	�ԉ�$����O��h�Ԛ��i4����kjk��	�S�N�@U�d���	M�e���)� � ��`���-���������eee�@����p�����z<M�=�%Z0�b�8���沆������;���L9[ZYvfE�ݚb�[�\���� ��~o�+�g�ZQGWoIUg����GW2��S|b��lgc�CRb2��r��<.����0b4�ƿD�D��z��;�
:�o��R[/Ŵ�i�	l9{An�ݵ�}ۖ��띮���
��
�_@A��c�m�t�j�����=�4u
�)@3;:��KYi��X�'
sr�n��>a�*Ҁ�)��	,VwW!Vcğ�}�fi�?m���gw��"|_5���n۱��H�����25�M���{{z���h�������^A&Z>O_�$86�os]�b�H0��� � �y�3�v������III111QQQ���!!!/^���CCC###/_��������Ā(W�D�(�Y ��<�F\�)3��_��qI:�p�.�m���F����@��S�硫^ߦ���{'*�4�a[3��C@p�d@��q���&oޖ���.���﹧�3o�5{�e��m�
[kg���{F
W~ɱ9^zȷ"�VSk{/���``��g��+�����n�Z�O�L�W�W�-�i.*W�-��U>E[n��q���+�?�\��zņڍ;��ΏΜ�.)Ï00�A�[����|9z�2S�zf@�P���i���&�b�y>����H�a��c�r�|,�p���L-]��0Y�f�:K�TUׂ����͑��C�k-���¶��ma:�����Ҧ�ǎo`���e+V�74V��B������$@��7��U�YE�`$�.&u���+ E�9��"Q�A�R���������h������I6v`�!���1�d�X�f����a%y?�
��k�n�]���8���=�pL8)sH�����>�}�Ü��zE�>�h?��C"����Jn0s�?gW>d_(�3��i|�7k{��|����/�~�w�O�5�a�jWN�&D����!J�E݅��ʅ�����<���D��^\1ǨBw���1v
�o�"�ĝ���^Y����nDsU�!� H�����/=�{>(�RxT,�;C\F�3RBK%i|�$fbj�G�a������Ő�e
��A|��
ϵ��e�š���䳇&Ӕ��>��"����T������L�?i:]�����jm,���8hB�{>\,���u����Y��CA(k�����ɐwG#7�_����E�@����d9$�<��h�o�1��m�c�*��AK�$#�y���6�'r��|-��o��7x?շ��8�C(t�3��m1	��W�f/�����kpNr5�W-]ۙ~�_B��	� %�=�"��鳴�,7��d�����Q����9����0��>�~<�{�������wۮY�I����K�$@+�-����̌��������J���a��5��{�����G�7��	�iJ(lNO�y^޾V6;6��ܼm�Ԭ�w�|�M9���_@A(�p322����
F�~��t���xu��'�B�1�]�}1��VHgw��A�n!5j[�:�B�U$C���:��� ����*�5�/���06w)Oݠf�֞��~A#d|E@KV�N �Θ��k`h`���x����>Zo�r-��F�V!h �|o��� z�x����caa�z��7n�FA�����Yw�����t{�SM�B��Eu?�6%�w�I}~�0���L]�7��:�9���.���ǂu��jh�`�+��Q3VSw�	u���6CSw�d��a$@c5&z��"z��s�	�ej�C:8��A��0�9����e�"�S�\9IW�y9��#���>���SIW�I9�)>��@�����9Puθ�:���MJ8.�2��#S�7�0���q�H��!v�԰��V�Μ�:����6�Y��#{���qrr��lcc�f͚k׮�XA�@�F&����2�NE�a���{�I�k{�_bN{K;�jH�~50YS�/��G]{T��?�)j�Z���������D�!m���	�K����X
�����{���9���\P
OA�L�V���k�uͭ�=5uK�5s��-����M�\���s]��`n8�Qg��`�6ʽ�x<���R\���wѕB�3pb�wShZzU�å{��ESDz��F&�X�o��4�p���D"y:4�HZâP�O!�i:�f	�O��!����>�����Y#�7��c�Fn���_<�#Cq],�����4�R�) H�~V���)	�`���W/׮]��9
�@��~��ui�g�C*��y���Zk.Kj�I���8�;}����7 "
z�0�.��vvv^�j�������޽{SRR^S&b&�Daa!�_&S�������#J�Ta�@���uuu��§ �ً�tl���C�U34�s�Lf�֭�7oްa�ƍ������]^^�
G+@WW̷������-k��/�����F�����FOOO��~~~���ϸ�[ZZ�������Ǟ�����͛w��Y�3b��m�^�!��ň�,""BA�7o�
�QE�*@�ź�7A�fRp�9+�mq�Y:"�|��B
Ъ���$@��<�m�bVVVvvv�`����c]�i� �_(��܌ό������w��a&��5���\���|�7�'������u��5��N���N۴�Q5�Q�&��Ȍ@�Q��"�Q��߿�c[K�V�.�
�	.!�t�]�ɊQPWD�~Ɠy���]P_=g��y���}�Ͻ���=����	��H�����@��g|e���Pf��o=�v�����׾7k�'����a@����0��ά�vJ݂կ؎<�V�?�oذ�gϞx�	~͚5�-�����*ȩ�ξ�p�5�"�����rZ�1b�@�����wl���\�Uo��зo��{�GehC��߿�wX�hL�F*I�QU���hs�Ĩ����o��nݺ!���
�︦���+�,=z?q��Q�@�|�Ix�l�2x���ݻ_}���bo`���{�k�Z��,�8?a�u������]�*O�����b��6�1�����j�̹��GE���$�N�:tJJJE�F,\��-&��ҥK�ϟ��7_~��w�}w�%��Vn=��S��
OjȂw��?�Y�"�X�X��oV|���֕��%�:�r�-W^y%}��zi��y$�nK���U�V�
@��>��%c���g�O��k�3�}n�t����R�of�
3��~�������"84n����رÒ�IQ�|�y�J��#A~)�-�{�nsv��-A"��>�D�~���u��L��G�~�$�B����xv@�+/��+<�G�-������E��U�Dm�Z����g(~Ю$�N���ab��8pٲe�(͜9��PG�r���C�ǣ�m�V�1+N�kp�_e��s,�D�둢=F'MMM{�����Z�u�%���f�ad���eb8�QO��<���}K�$�)_@��J��aO�����cX��J�nٮ���5
��/�Rߡs���&�NIIi'�f≱�":���%�k׮�B�����虾Ul��(��:a���6d��P�ʕ+#;G+*qi@��oQ	a3-]	+8AZI3�_\��q��ѣ߯TG@�xB9�@���5)8��="�>�Q�V�=�o��Γ׮[���;�6L<r��k�?����Z�oևzj��5��\�I��OZFf4�^,$�[�nРA^�U��$�1w�_��$��z(2T����{�9p�@�*��b.��7�.���b��v��9TF='��P$A����w�uv�Ys���b��ҥ�ƍC_��ݻw�h�	��n:�yXQ�$,^�#�+4�k��D��_�ƍK��y��(�>KMڋji
n
Pt�M�6�)
�H���E��r�M7�V@���~��~G�F%�<:��͛#|A�My��b<�-\��+FG/�.+� X\H�$����Ki3�=}ҤI���ܩS����ٳ]ɽ_R�8�t�v�Z=Z�t�c@��,=�z�ا�_VS�|��8���܍��XY��j���;�.�3�_��ÿ�u�]�����}kP�/��F5���8v�����^v��.K����~���*�iܖ,YB{d���ʏ����B��R8����'���!i��;e��P�sNЅ�G=V�2��ɓ'G��h�#G����-���6��.u���f����|-��,o:t�:t��#���j��[�}>�_�0�K�G��W�p�q�ݽ���<z���nz��G����ߟ�!���A�a�on:��M�0�A��dd���c��"�:s���_�3̸N��Ӏ,;MƆ���o�ܹ�cz��&$��K/��8/���m����E��E�L��9c�	X�ӦMS3'J]@*[�Dj��9^��T
*�Ë��Ck��ᰚ�~��*)С���1~���)�'�"�N;�gu�"��4ߺN!�߱�@cO
���{�w�yO������
%P��#ylV�Iz�n�x�b�Y&wa�@+f�)]X*j�\8��Yb8<���&�4
G�Ō?�a��8Qz�a���_�ܭ�)�99=:(���	K�4WY�޵���I�VO�,}�
�̨=���-/�x�/:�0]�{��D��?����}'tJJJۤ@C�>f���5j*����Sb7�'�>�%��(��������>|�p'b)��HF"u��k�.�,u���#�#�Ҥ�ɉ����p�z�d* +�-��4s��pxj1�������‘�S�J��nz@��wI{��.�3���!��a]��;�����}��7_���t�`ϰC�l�Y[Sw���u2AcЎ��P�q����d%"�ƌc��6�۷��6d����:ej/ЦmK�N,LÆ
󒄿$l����*�"�
obQK2^!��,����DO�m�J���bCC��iε"��%�u⯯P2,Y{gI��'b�E���AY�i������=ּ���ωمK�رc���*���]-t�gS�'zA͛OP�Ih����Cw����$��9/�K>a0H��7��@#���о��:'�2K�-��݊�h�Ҭi:"�0>,�8JƊ�L֔{cu�	�n8V��y�є�/�V�w�,f"��'�J�c�g�?�˟�|a��Ɋ����%C+�Zm�G|�c���|���JL�!�Ư8���^���qh�⃣����U��)))��q��|�g(~�F枏T�R��
4�"��*n/nq��%�b�N�$<-�����:�P���H�U=>N�8Q3�o�Q����S̆��r��#����	�3t	�?M�a��t�P��a����~Z%�7�x�UM;�����,X}�o��6�5Sj��k�y'=��0��;`
Lp�pU6��f_+��hJ�uf �,k�W�22�DD�r<B�,�'rLޑ1�V~��V��y�WzQ9n�-���B����2�7|16'4�s�������f=�GM�T.���Ã���
�uu���P�����C���z�⨷�-G��_�f���B#I�RAR�u^��R�-&�e�)�4����?Q�48F��xY��Ǘh݊6��ѻ��!�@sMS/��L�h���U�3b82�H��)��E��
mI�W���|qt���P���J�=�?g���cd����
ڮ¯\�����~~v��+2��]kϺ��̋~{�兵gu��)))���k�/�<Y�8�n˹�ݝ;w:7]Z�<�tH�##�MR8�E��Yj�iT
�i��V�/�@sz���)E�TY4���s�*�
�"h/���m}g��	�[���y$��$4Q~sM���&V}m�,��
���G�i~�aNӶ��۫���X�D�5S���ޓ��W�<�Ԝ��'/��C�Ir
Gc/���D��%��.�����f_3=>KlV&A�Y�K�m���n{�w��R��e�MQ0`@,J��-ܐ�1��7�R����u(�!�*�U�؄���V�2�N�pΜƿ4U�d�7\G�˽��c�]�h��,�K�R��f����'��Y/+А�\8������rԬ��h�3CSب���m���q4_NB���K�#�J�m�.�,��:�4/���J���Э��[?*@�~$�NIIi�4[5<�X�_H�drsy(�$�;d9��aR)��y\ـ���i�C���" 8�TF�±���uI6"6��+=6��&��:t��#���,�ԕ60迸bb�YC1���ȪsF�߼���׾���_V�^;�5��L��y�+oi��m���b��?�;��b5�w��YPR�.%V�Ө(L�h#�G*�H�A���'1���5G�e
igې��X��,�
+�d��+�L�"�kI6`/5{�52V��A�V�qE�#jZ�H�Qxpm�)�o�E��_q���@�=ȩYkN�c܈`�r����shә�Nӱ�����i=]@C�ZLn)�؍Pg��tT�k�Ez=;�#�{/����	�@'�NII���-��c:!o�BG�/�6���X�c�x��^�(P[h���?�4�>Iv��y+L�hZn�@�b�R5C�$��:Sp���h%�
����mTtSM�W�M�:wx�_
�9�}5?8�|�����<��3�E����&��l*Ń����fh9��:F`;Hͪ,/&�8�l:��[��,>e���"���x��0Gi~��o�� W�m��em��.dE���H��>����<z��(W�
�},r@kb���­;�s�	�)���翚{�z��fms�я$�N�,�H�wt���jƒO��Vm�q����r�^Y�
M
�6�Yg�d Z.�����9V�������@"x&�����j3�(���$�N�:tJJJ%lBX5˟��3�PIB�c�Vە��r�z�b���P-45UbF�W9���1vڏ���e�
�������d����t�hI����G���I<��i�Ao���.�:~��=/�i�U���.���8��Li�yc��2o|p<�s{%~#&�L-�����n��L�����\��'����t���(�H:��CB!@o]��s�Pgl<�}�����m��`�c��Ө4�M�-�f-kk	�&E��k�FJe��4^����+�X*�C4�V���N��ʶ�@��wq�{,���?+=z,|�C�IK�<�:�Sv����2R�},���u�y��%tkK
�趑��h;��ީS���~�̑ICG�LM��;w�� 2��f�t�zb�:`ͨ1;!X���hx�ȨJh��z��j�-b�<v��-��-CgW.7hMII�:t蔔��$�f3���t�\
�x��(�|�ү�����0o)~��@�\��+�k�Ž��βs%߈<βm�Q��h��452��:ُ��cd�A~Wg�
?*���<��	�@'��#t+�m[_<�a�溪�ko\����|ݴ�ޓd�8��[M�I�O���$�ʘ�X�GJ��+ �Hd0h���q��+����z2�Ή&c'@��n��X�u`#~<�6`�g��@{Cf—K�]�֨��]�sL((JjL4�set��h���l�5R�����<�[}N�K�qa����t��3�Y��	�S>y�SD/b�E<ctX�z���E�i���b��KŽ;�.�h<�X,e���xI뤂-�sa3�u%�0\H�-G�
cE#�.i��DN�3D;\��Kmb8�G
�_1��W�Zq�����%�NI����;��(�(�/�*��PkE��6i���R�H4&(hۦj%D��6�6�Q�/�;T0��H�$\�"��Y�;,{��7��ӭ����3˾O���e�9�3{�gϜ�������"c�t�|�������(�S<$x(h@]rB$~H!�%Y��`vv�4�dP�?����bb��)!�1%Dƈ�;�����\�0�J(f�^,S����
TB�v[��g���J�Nm0��f
h�4rd�d�����o����w�<��q*:oh'�yC��>TtM�{B��]�[K�;��Y/����Iwl�I|���{��E�����^�h�g���D
R�Dl�Aj�]�{f���s�v�l޺k˶hil������(u5�_�ɋ��#N����x��\�k���c��Xڏ��I����,?C��$x,�fس�rd�ۊ#�4Q��ƴ�O4>���yMw�T@��{�w5�����ȣ	�����R@/X6U�����B�u6�)�Si���W��>�%��Sd�b=$y*�M�_�Dډ�pxRz<}��ρ4+�9(��v,b;<���6Q�Y��t�sgFGT�&�`@o��>����E��4�D�g�y�h�����xa�m�8��ڮ.4��6�'&�H_Q��ޚX=g���L.G�:F�LT~�aR�{rss����J����آ��2��>(�<�K��~����$�eq�?
�=m�z��vǢU�����^��3,�P�h��&�L�(�"�e��g�L5)�)�9(��C@�H������h;8z�Kj;����A���	!����srr���g��D*}����q݉�c�K��A'�d�/LC���*`�>��^������<��+�5V֎H�� Ѭ���,\��7�9l�f���cV����~��B榀w���"�m��栀~a��ͨ�F�Fʵ��n�ʧ}&�B��Iz�466���$L�u�Jmt�@���}�t�Pϙ�WJN�\C,�6����˳n5U�FQ���wVΝ�
���ׅ�۫^���!xW����%���۰��� 6�j��_�	y�3L�:t�&x%}~�<0��gB!sX@�� +�9(����_\�=y��}�	!� �~�������&Z=5ѐΈDD����J�l�Qy�ᠧ�ƻm����T��iaj\Q�g%JO�@:g��9���slQZJ�?՗<h�z�q~*/ER��ǐ�Ӌ��hm1[]Ht=�r@��A:#�qD�^�Q�[2o�uh��Y����.��<QP2�+�},�y�͎�"T!���G�3���z�~�#]����*;p���B�o��
h
h!�%ϥF���n�>B!$�@G&L���ưV@SSSuuuEE�&Z)p���ª����ږ��V+��f'ZN��L
���;���B�͔� 	ŧ��ɸw�r]zU�>D�;J�]n�szĹ]�'nG��k�إrݱ���Z��7-�nX�؀
�Lh�9�z�R��ۺ�?Ƶ�&ĉhm�I�X�����²�3t�_�n����tMG�Bcit��ݺ�#��.��*L���jsp"@!d�h����Њ�}V$�L:	!�x�Rha�-R2��)���dB��L�'�{J����N76��b�09�Sv�L��S&����3X�
n����-�	�e`��3h�Ut�FL��b��=�!���.^����,S��_�ѯ���Y
F�@l,|&��E}/���:���?���B���8ԁf��M�!|1����}	*j�Q$�r�b �Çl�)v�R�p�7�	!�
h_��EP��+W��*rq芠�7�A�ЄB!�B!�pB4�wA�k�l;���y������&�:���B!�B!����E@�^�$<�@�k7~�Ux��45#k�균��^�R@S@�{w�u�q�_hA���u�A�HKѠH�+5�Ú��,m�H�$sD�\q�1&����7AHPG�zM�b�q
�ɜ}>�;;_v��كߞ��hkl�h=K:c�½��{ʫu�拍�a��p��`[������c�an�V��B'@�@���f@?@�>�FF��..�)@�ݰ�?$R�����\�7(<(�j��j~���O�dي�W�2�J�&@�@�~.f@�/O�1���N�7�5:����m<��脔��Wz���u�ܼcR=�������ss��s?�9{N�:�_�p��Qc��.zZ��xC�>jҤiNn^&�O�h4��h�/~5�͒�h����|Kt�7/�^klҖ�[�u]���x�L�՞˗;�����U_\g畎��+W��5i�xEumm���cߏҡ2> @�կ�Q�S��h]�l��R:1�},&@�?�c��崌��C��7lޮ}Ж�Dm�.���|���,�Pj��D���OKϼx�R___t��Hk�yB�n�}F9�).�O����cMW=�CM9�����܌�
��G����m�Qݚ����ݽ���d���
��_3�U��1I�a��}�9[rU�u�6�`���ԃ����
�I�����߸ѧ]��¬;�-ϋ�����?���Ï�lյ�g-tv��;W���9a���kl�۷��lW/_�q~4@{i�7�/�������u�rY���"&���h���g@�z��PK��9�e6u灇�����邝�ڭ<�1Jɚ�Ѧ��g�1Za��u�o�z��R�N��{zz��]�������r���}��.Љڢ~xP��w�Г��x�y���:;;�1�����_/���l�C����7�mb����i{���:v�V�;��t��\f�͞����1�Ъ�~����ݭ���h�oPxh䄊*�ݻ���������nn9��ʪ�Hk��p^a��
�1	�>!F�NL���%�:�������RRZ�{�7���As9����a���ӵ�YC6��󮒊��..�R�ޱ���u9)Sgj����p��8���{����Aۙ�]=#��47��c�gf�[���͛���#�ʡ�/(���x�ڬ��F��d���]�l���c�g���jZ\���C"�B&���h��T(�
9@�2Y��*7+4�U�5s�6k�2sT|�K�L���<E���M�Ƴ��ջs�
�^���pp6.�����W����o("�8����?d��z��M��ֹ�}aԘ9��z{����s��E;'O��'2�
��ٻ��(�8�������n�9�A]7��+�H��LeG�B3ō3(�2xB�d(��$�$�ؔ�] �I�����r�3=�9^��+
���<{z���o�?�����g@k�pdT���<�g
��}ִ��y
���|�C���x0X���V�ZZ^���0@�����&�k�s��
'5�кU�g�R\Va{��	�.�q�Y���#�nz����c����lq��\S�Wc4@��V@�'�d����gE�~�z�qA�-.I�w�ӟs�G�wLNL4�:�|���^2EXcڮ��W������

^����Հ]!,��SMg�xڥP����&�9Z������ѕs��hni�Ɔ�?\�)�榐�h�=�+�vS2�E�U_44�>��:貽����A��SmBh�d�����//�>��撲���o��=?53�����s���R)\�y�ӥ����K��i�1z�k����
'�]��~���lj�U�<cc�j�fK���)��1 @Ok����i�;o������G���1;,B�7����;T�#��1c�sMm��e�)_l��r���{�F
�E�ȳ^~��]<22���t��������W��њ}���zT��l-|>TT�����7�4_�����߯֌� @���L�5��ͻK*-1�j���}��W+�\X��m�rd�������l�ƍ�1[��y����*D�~k���������a��8�~�u�*�A���.,	�Dk,�N��u�٪���S�=u޾��zzz��n��]hL�6�|5��Z��0)m)r�|������sM�Ȱ;,��9��������5��n�v����z���(!9�X�{ܤ��è�����:=�{��>y�:��fE'�h���2�94�no��f~���
��/O4U��=pT����mF���������A��S^�U��I��=44�o�Nʹ?1@�[Kt���ʫjK�Ԭy�}kL�V�B>�r��c���3��6&W�7��$���g4@���G�[0���
�������2ػ�`b��"�j���Tm���h�h��Op�&@�=�Ih�hh�&@�p*@���h�]@�-@��7�]@�-@ @��6Z��L���t5�	�&@��
h���޽�4y�a�S�mn�6/#��nn��С(�1���y!��l���ʥ�\A�ʭE��b[@("���,�왎�*E^|>����=��o�>|�s���������$���hh"""""""""��r
hv@�@3�&"""�0py��cj�������B.�䌸��ܢ��k׮)�J�J��Ѐ{EM&�xm�S����-�4�2UabUΑ���Sű��'G�p��W�b+eg��Ϲ%��Wi4����n�1d�<8,k�Hl�r�~u��k�����o��ֆm�Lj:�uOv�C���g��d�o��/������m;�����V��_��/#V8\�{�[�vFw�y�39�PZiz�)pECDD�5�Y,�DDDD�r禦�����g�&&&&$$�~">>�ԇ��c��$%%�d���*\˽�����+{
��dEg�_/���[��om��_�w�|f�1�dCfdpV�����U�n����K�Jotm=��\3ů�n���W9�G1�g�W?U�_�
ǝ�0�Uʩ~Un�5;�+ou?~em�5wť�~���V�����Qkk���N3i�f��Pgh�gbZ[���T7������L�6ADD�h�4�C���/^|�&�bH����D�5{��9��7K��X��+H�>�a����!�^��{q\u�z@<���|�n��������Wi�R9yԔ͓¨0�/1B_�C
h�/0��g�=��A����4Z�<${��cEwf�c� ""���Y�����h$477'''�<y2A"C�8q"//O��c���4�s����C�+�Z��m���������~_a㋴W����Y��������=1�/���Q�$Jc5Mc�m��8ADD�%8X,�DDDD4LXU.��8Aj��c9a��^��.���D
c����]�=bP`�v��J�U�v�T�*6�U',�KJ�ƅ�ڜ>K��:i&N���V-������Y��Ʀ��~�� �hd��� eD���ާ+>K1��t钰�\��n�9ؕV��l���p�P����J��B�0����r����+�gv�
傈��4��p�h~~>v����V�٧ �Xw������2��<joo�p���e��}�
��P__�4ͷ���`۶m��_E��*//ǡ�����XTT����/�������cK41lx)����5%��F�K*K4��|����ZsI�t`����1�=��i�K�o
]g2nb+�z���Rq	���ި�k3��R�tuuupppvv������4���}�^^^x���-Z�(**
�m�tC�����������
b�J�Z�l���GG��>22���
�8��;t萓��JJJʜ9s�ϟ?�%K���hA4���`�GGG[��������������W]]-��ڌ3���|p�oHKKD�@3�fMDD�Qu@�����V6S�lߠ��?�(���h����������"�C��:�DŐ� �Et��Ė�4?nڴ	�ٻw��w��B�1�
b,�-���	�t�Ұ�0s�2�?Bj�)����˘~ȋq��x��Ǐϝ;�W�ӳg�F��[.��o�p�B��ׯ_Dck����XOO�DDD��3k�,��/�Y^�x����0Ox[��_�����HHH� b�zN?K�t�,²�g�Dhk�$���}%@Ov��>S���e�̃�8�8��o�*Y7j�oD1� ���}_x�h�� <ШQDE�E���M4���"(�B��B��c��'t��A�[<��[��af�Lo���o[$	��h�u���ڨ�u1	�*�b�Ց���L�V>h1e��*�&��(�NSŕ+WB�H�0D�U7n���yTV�3g:;;+�#��…�&��:??�t�/222@��1‚X��ͩ�-I��'Of����ףW2����5X��bf�Wk���詩��kF�+2�X���am�����識�������5\�yxx�!� ��AE`�ٳg'L���;{XBT��t4V8���NM��>M}�,�U>77�_�RT4��Le4����Φ�a7KXqq�ڍ��dڪ�����-C�Ǥ�1a�n
hg�K���;wN������x\�!Y��8���t@Zx�p@���c3�c�-�������E"�H$���ι�8u�Jݴ���m�U��w��#U�R��ߺs/��m�����0�*��v��Z�oܲ^�,����y��MZ��Ӡ)l�+��xF,����X���D8jԨ�l�g��
�:������d�,H�Pt�ܹ��Po�8}�t<Z�h�1f������W��0n�=�̙���]�.&JV�)22�x-�H�z���^��H����/_���V�BNy��T!�I��
I��Ѧ�'��߿?!�*� 3��F"Q
u2��m�@Ò�ס��{R�ƍ�d��m޼��Y��S�u����IHH`YE3Q
��bϴ�4
�jM��+���nTdU���a�}
�{���9��C�D�Ơ�����S�IMg���eOJ�M�6
�m�D�SRR�q|=��۷��0h����k�l�P|�b�5��&kv������N��}�խ�J�{x��^���ݔˀi�Ѕ6.����c�=���%^#X/Z$�D�+)PCe�@cg�)o޾{Kʞ�m���D�nTk��f}ܒ�a���dְt�e��m����;p��`���G�����y�^�Y��8��{�~��ek{;6YY<&mT]x�@�Zk���p�]��A���\��X������a�K�.e�������AWd�4���l�jqc6d�2�4���%�1�i3rU�A8/Ϻ,gff­0VC�����J�Iy'I���)��C	!hj�o~�.5������h�6���PC$���50Ќ!` �y���Fֿ���� Yڰ	w3.cZ	:u��T+*����P�����Y����qR*/!o��4jV[v����4��d��g����@���q��l��98�4Vj6F��Q�is�+%2��3C$�M��t-���"1\�����nd�u8���!��[xgMZU`��gY�@���n��;%���8��D"���GpT��.F�f|�Q�\=�.d�5�J�=x��|g�����V:"���a��}9~��{�8�?��w��#njoд�+CB��q>���O�����e<��(�	>�?��ɉ5���7q��l�>9���cb�Fŝ	�=�b��������	�>DLġe�v�2���,f2��-�|���<?Æ��>z�0�Te"�aU�͡��>_z쿩XO8�Xx!aR�+l� fVb����z�����nڴ	��R���|�,c��^�e�5��;O��44��,@���c�)0m7`���
�Р.�+�2�K�J��ӈW!�f�Fo�����bЕU!�f��z"��D�DJ�͗N��:M����4:܃���,���C��9f@��X|<��S	���G#Yo^����^ss9�z��<�k�����^�9��晴>#y�P�cHQGɀ�D"��	��U����]>Z�4���?�n��5lmTb�;S+��)wr�z񫬧O��S�q���[�
�l���Шyӝ�7iA��z�����n�rv��^#+6ժ�(+;���#��nД���y8��=eg{G��ޮ?**X[��$x�w`���k����s��܍������O
(�)((Pk0*b�e�ԩSI��c͌�����3�f~���f�<[O�<	��N`P<k��Ln�y���Q!�R3��wy����gZ�"���q|��(NK�e�g
�+����EV�*${��"��+͞:@6�&�C�?AZ�)(`�ԁ�Hd�a����U��:��TT
=е�EU^�-�L�ϋ�er�58�CM=S��@�b,X�@m"k�3�[7G�����֋/�, z�hR��4G�Hda�;����N��O+��>�i���%ӗ�Ds̀.��V��E��U&!�D"���p@���kM�Ƈ3g�t�e�ɩ��-I�� �t%t�M�.X����L6z,���M���οq�Rnظ�2���iجcgg���ݻY����6��ֳϝ�wn�4�m{���9��� 7q�Tk��-�m4k)&փ��c.���#���0�ѥ˚/�O���	��;pt��{��ؼvo��N�P�qN��w`�~����ͭ,�;�l�C~bb"OP��z���@d݀r�0�z�7T�`S
�@+Č;Z!�X��2�V 	��J����a�,^	��ߠ�{����l��Oվ}��	��5�|$d����vRC�U!A`III/
�M�@�ט���2��m�c%J�V"�ФUPA�����}�>���$�h���+W�hM��H9�UOR�a/�l���4��s!��Ha��������,@W,3мj�$��e��V�-�D"Я��������~�]�m��A�Kv�;TI
�

_��Y���6,#˭���j$oK�3w��)���ʅEE�ׯ<���]����Y��|����ݿ���~����P #+����^��J;vv:|�hz�k[����Y��ؽ9y[N���[�W�����r	\2�z��K�/3�ɵk�Q��Q1Yٗ�gQ6J8/����/�*��}뫬��K�7k�ߪ�����	����V�ܥ���R��7$$D�z(����F���Uˈ,W(�
0����?~���w����D>�Я-�8�kXa/�>	�"@V�Ken�����6*@�;V�f%��O솎�i�D	�2E˲6�+k�s��e@���Mtj��)涥<���H�f�W�����+-�I"��@��D"���Y�ru�x�i�=��琑��Nؼgt��M��?<zğl�(w��@^���ˌ���_}�ݷ������({0�agޛ���޿w��͂#G�C�s���H@�c�Y@���G/�#��v;A�y���&O~B?����Ӡ�;*&�$������V�����?<~�f±�~B��?^ʅXY<}�yZM��N�Q����,P�
Qu.y)���F@�B����,��V,��	�ʧɞ�\������8h|�[�( 5��d">�
L�!,��W�.�]_��7��P�nG�ϔ��g͛�h��A64�K�nݺ�c�¯�$�L�I�G+2��J.v�IE"��T*;���-�M��M�S�La+���npvU�i��Ӏ#�E�V�;O(�Q,���ր�
�q����@qL�t�H�h��E"�H$��3�����!	878e�~��z cF�\�n6o��$�_{G�Ͽ8M�~y���q�ز��LKX�1qϭq�0��&dg��o�S����sS���~����N���5wq�� c�~�N(�j����G�&$5{��{��78���^^��Bp�G�5�j��Kʮݜ�2���ҭ'{��#�G������OB��v��S
 Ξ�o��.����0��Vp�f��]�4�A�D�찔��#7�!���ህ�h�4h"Xx�v�4�y1�b�r-"Vm�c�Hh�����"�!G�&9&;C�X�miP�[��������e�D����2

 ��g.{��B�9ָK/^L��O��[zl~rr2�$E��,C�h��&������2ڀ
B���F�P�=�{�ڵk��GlUU��I%%t�e*#u0++KhND=]b�
Ϣ���
�
Gfg��t����A�J��S�{�I��s�NSF{7D"��@��D"�h�v@�JI=@����ی��-){k�E�_�G.�b��[�4/8���g��K�r�_��ݻ�q�63I`|B"k�|�e����v��jͺ_�=#�����������ݓ�g�@��=|�8�0~j�^}4�fb���{w��I�(�հ%��0++���㌀�؟��lk;
��qd	��[��Q�q??y��g��~
�y߁b}�yLIH.`␉��J|A���'N[����0���Й�R�RdB��(�>}����a+Vb�2O���L�3��Q�����4H~4��Y����k׮���dq+��=)$%����Qj=�eg�t�x~���k�Ͻm�D�!��it-йϤ�c�NHHP�����t�����2pXV�l%�G�G��Mk�_�N���Q:�'��1×)	`N��C5g�A��i<δ6�FS`3�_��CfG� X����%-Z�h�H$	��v�:u�^yM�FDt�g�A؟���]=��
�A�9��,X�ɏv��}�Q�B¾��"Wrh�Z
y�`O\�������s�"H<t�4h�<qfB�Ҝ�Thvξ�Úe!��~�%e�.�ժx,$mI&gM0.lg�p��A��X�ɀl�f�E n>k�2"��e�`���w�AQ�g�ԙv:�4ML$`DE��;�\�61ޚ�x�
D��^0)� ��7XEi%�Q��p�Q1T����q�Pv�[��g���s����%�Z�[_�^7�
�zI���hd��ږ�B�$�Zv@#p#"r�(`��V���
��ьV��оs�ݱS
��c{������
���?0���\����'����>q:6s�]o)�p�����KW�A@W^Yi���vr���L@c϶��f��7q)ܟ)S�� �
�Uhe����J�A!?]�{cb�AM!�B�h��g� ��Q@O(����~�	4!�f@����P�#ǎo
}��e����	X�rM�x�B�H4��Ϥ�T�
���^7�ㆀ��K������L��ĤT��f$`�Oџ�����z��
�����ް�j�j��Y��U���#Z3�
�B"���~�֬��y|���c��K��<��ǿ����F�����]��Ua꠫�3Y�Hh-��t��+�7����&�B!/$!!�ę:"wr�UT�7��c�tH=����-�~"*���*�:&�Qslf�J��j��ɷ�l�N�g�&�ߥ��*B!�ZS@�;�1l0%�$R8�#���ˡ���⩭�Ư��8]p�Y2���?Ex��wt�cPp�2�Kds��7��sw!p�'h��	X��htN>�.�َ�7n4�vo����s�aj��7�UTJ�x$��F{h���z]&�?y�w��ȃ�*.�������anc��BKKk|�!�9�ZJj�R9x��K3����&�B!C��42��u�>�Z���D���1ЛD1�:㠃D��}��Ѫ�����{������#�PϨ�n8��]���.��fk�fgݰ϶�MfN
���U�B�$B�]�Z+�:1%�8b����t�(4<�'�wI�m#8�2���e����C*r0����]�/�0���bd$���o�����mD$*<_x��TVJ�F4���3Y������6�����
�7n��~�y��}M*���Q@O�i����Qmm�8p�׮W(n�w�����0P�.j��W����
%�J �Q3=B�"�
hB!��?�_�za�������D7��0w�j�<�A�R��S��>�`�g��-8�ɹA7������
�����o��Fg���r�:ɑ�1kU��*���j���V@I�T�zP���jT�\�Rp��wP5��ފ�wVݲqk�t��n�t�e�q��s"g��l厒P6 ����'�WB!̀�����ZY���O�8�����G3N%��x��'$��D㰷�ۧ2�B=�B��c�`^�8`�b�iM<��6>� ��e����0Έ�@k�4K|�t���eep�����q�dM����	�
��u��Ui�0���Q��?ifm� ���:�wrC1�F3ّp(Q\p�X��s�?�3��轰�&�6�v�TUI�up�啒M!aȞ�}��&�B!��G;�\^TT$��B�z�_�x�3���+�KJJ0𼯯O5*}O�w�]�25����|7��������t$�T n����S�hO�w:��
���Q�,��P3�*��׌V��2\qm�U�7Ը��l��8��ԥ�{���Q����+��{��j�]�p��m�f;��خ��CẠ�oi���K論=�6!��I$�=�$�qLtL\��<ڜ����\���-����cw�P�SgBvC:c!gC��;5�:0�������^=�h�����zF�v�:RC]�����8]�p:�R��c[���=�~q�Q�?��+�xy���o�De�8\
Ǽ�	2��1��e3y��B!���M�<��(�J%���
�8޼�#"UZүh�_}�f�?+��.��ʬ� ��T����@��ۥ�3���<λ�����[wf��¯��/����գ����ۏ/�>�����}`�֮؇�>�:��SZ9�ҮR*U�B3�G�i��]�18���[Ʋp�`W/_m����ߘ��Bl�T��&��틷!�
529nPm]]rJ*L�\^�Co/���(�_׬�x�g
hB!�B!�B(�5�X3����F�,6��B'�����y~+*$���$�/{f�x�e
hB!�B!�B(��Ȁc_��Kw*�9�̻K~�u˧[��1�����B!�B!�
h�:�9:o$ᎾoHg,t�.Q@B!�B!�B�]44׿ٹ�@�}��a��\�a	f�*�h�hh�h�h�@��M�������1�m4Ѝ��	�4�.�M����t����h�h�h����&@���;H��(ں����(_B���PB�9�q�&�� @�	�	�48�a&@�/��-�"@�
��&@��{��'���#��&@1@���{u��1f�7�M��`I�v��hh3�j��	�4��лm4�Np�\h��ع{��(��QD�RXe@S��`��M�&`�F��ʘ�&`kS��a��+�6r��o/���zkcs��Zm6ײ�,�V���X���/������Nwv�,�������� �蹫�p1g�Y̵�G��i]
��n�^�=��A8�3��������hH��m�
�-@�-@��
Ћ�a8�N��h�c_@.�M�:V�+��7@_�9@����S�&@�����H�G�r�X�>���ԓ�	� @�w.PQ�y�:������m�=[m���;�eӲ\�N�����X�O0����E>��w�<M�2��q��f`^�{�;��i�2���ߙ�����w��;���߽Q9�Džfv�u)5mn��ݼ�A��&�H$�D"9%\��'��h4]��f�
m�	�\�Dtz�i6��F��h���rS��n2�L�Ao��_�z�Io1,�������㳥3a&�n���f6�F�� �H$�-����cU��������C�K�j��/�mu���-�^�`�'r�	@�H$�D"�.Ý�E�Y"�����q�'�o����%	.�r9����^��
���lwVh�m�M2��]|^"�h�+o�`�j��kku4�ȥJ�V��o q�5��A�g��W*�\hQU�g��T�O�v�aܲ�����E�!��zF�
�\����Z�R-nV�ի*��%e��E�iE���/T��U�5j�P�ܪS��o��:�D"�n
᪯)8VE�͔�����Rg������a~	n�)�����w���$Z��4�D"�H$�.�k�Z`_>����������\.�É��82�:z�hdddLLL\\\RRRFFFAAAUU�T*�z@4��;�e�lA1��v�'0�O�zS��!+�Vp��y��K���̰��c��q�ʜҦ�Fe1��W�z�NWP)�&��/��{��s���}˟Z�|i����_<fY��^��k+�W-����pRkIM���ŕ�ލVP�i�cy�Z}65-�h��@���O�,9E��x��'�a��QO]��.�6���E+$k�;v�JJ�i��U�D"�H�J�d��J�DŽf4w�TK���-���ߝFw�Ւ��A����?��Ra�J���&M"���}E�[�D"���)L :7����;v���@�'l��¸6���P������a�יo�#��O�M���	;��vx'���Z��(q�ۇ����U�_xrV�n_��;(;<��Xݣ�ۗ2t�ɨG���ک�Gߵ���J���d�R��1�Ύ_~�bt�O�/*yp~��E�ϭ>�R�s��l���lҴ���:�8{�p�V�;br����~�T���	'�MxQ8�987�\�c��/7�[�q(\+�қ)�D"�HC@+���{!��Ѯҕ�v�sG꼣��-=Q2qϩ��Ǥj����e��\15r�2�͇�/6����
7��b�@�����,���Wl�34��:�>W��;���G�T(�	@�H�+�S�G���D"�H$�:������\p^@^�FbI�	�ш��u��[�P�v`uB ���}�IF�$��t����t�A#��Z�
�h��~�3h�x����]vv��ґ�+��A�nNS���\ʈ&V�\����Ǟ����$���ǟ�㡮���:�D"��!���3�>wj�Ž�%{���4����K��F�8�`�-��z�A�~hE�����}��fx�߷��oA�DFϞ'�6r�r��g[{�h���gd�m����kc;���@@�][���`��>��W��G����}���i��H���3h�?��#�8k|7|�n�������H�L.'M"�H$�[Oaa!�w�B(����p��b�^�ь<˛R��ѳK\E@�wE\���eRFq�H��9���YZ
}<]b1���Y#!�E��'q��W�N/Y�#m�>��D"�H��
�Y���R���My���^�ee-��|�^$Z�+_Qt�U1"(Zk0%V��Gز�cC3�7�+������"�U&f���-<��'�|��?�'��^�v����M�)hߜR��Ox�-�l�5��j�;R�L{O�;ꅃ9�/�
;η)�4Ȏ�4>0�b��9��<l��{��N
s��BL��ԣ.�&f�r����h��Qc'
9z��1��������ͷP��4Ȏ�
_L��$�.��P*��&�tA!^;;;�Wm��<���w]C�j��"�G>�V������+�u-��t���Ŝd�E+���>����WHA�$�D�)8��
�<64y�+%�>O^ŵ��'d-�raP��q�E'�=j�O���6�sq��s�kU�)zE�2��]���������P�R׮��?�W4��.��h�).����G�A���UX�J�@��o��~�Z��183�h���O��J5zc/WuF�GL)6������U6��K����o���5��W��Z����@���E�2o5͒!h�ڞ�|�Q��D���nŽ�^þC��g���sgKs�}��
G
5�f.MMN"M"9)���8���j5^
6�s�D�����:������ �F(q�
Qۙ��8��49�A�����C��ʲp�'
�"�Fb�UY�̂hyG��X ]�3��Y��I$�D!���ѡ�!|�ٛ�/˧�?��3d2[�-�q�4c��vg�x(�]�t>�U�s�Ϡ+~k7�}����5�"uƽے0
ߍf��_�)V6e�-��e^������m���[��ϒ6&W2�ߋ*A�1@0��hl˒qT��6&b���8�ؤz����k��#F{�c)��c#��
�u������!
��eշOؓ�����H;��G
KlbK?m������d�h4ö��%޲퀝¢�Ylۺ��t�>sn�e�0��>-�EJJ�����͛���ooܸ���_�A,ƚ����%K�`�-X�`˖-���v�tÅ�	�>�7@�&��V�e�I���f�{Sy\�$���&�B:W�/�e�h(�(yzzΝ;w�…��� �8�g �2u�԰�����8v�ۖ����6��IJ��_���h�YYY��.
?���iCZ�R�-&��u.
��m��X~вhn�C�\@?2Q�_h��:�D"�9��YR�k�}V�X�g�>5uM�{*���u!S���ԋ��hr\ �rqh�,tæ�貖��1܇w���ԍۓy϶��y�J��_�nJ��W�� �3�=�u)&��
�t���&��qN} �
4�`��9uM]��I�@�cB3���^�&WV��"��Ԫ�;ӱ.�Fc��P`�lj�'�6)��ak"c�X��;��Q�)ȯ��l��B�מ�����zDa�pn��S�NU�J�@�8|�PW�v��{x�WLY$S�>��y��[�
/j��ŘȌ�|���/�oJ���mN�x00�t��&l��5X7$�v��S��`����%a�M�i�ݵ��)\5�s�0����^��fZ������^�

���O�̙�x�b�@@z0#���
��3g�;���lذ;$O޷�A�}�}��Jq��r�7'֬Y�Un�^�y^�eN���P3�ch��Pb�P�㶻���Y������A�Q�w�^�O���ח���4}��j�\TTP\\���͠km��
�c�t�ʨt�pDI�I�	@;	�[.h�б��@�H$i�h�����f�72ڔZ0�}��D�S�g��sQ��ѝ��w[	��K�y���x��C�����!w�Zr'�t����ԗwn��2��0�_e�}�#��h��NC[�xWDxƖ��p	��_�T�m{
8/�ѠDܥv�}Q׮�8�m��/�m��;?���ϒ�`���@��6}iC�w(���nMg$J-ڼy��q#��gdgպ�X|�'�y�N�>M&`1��8�sc�%�6wi��;�M����L��r�4ݿ�m�_�.�-y��y��$�FK�H�l�2>�3� ū���7"��P��`����b7q�\v�G(==}��ً-�>eyZ{��M���m{{;ў���N�4��:�+��W�\�8э�ݎ����	@�H�\������[�}�0g�Q���K�.���d_g@�3f����%��1ل�����ȀJ��yh�;O�d�6�}-�L�r��A6���U��g///0q���`)�R�e֏�]R��G�M�n5�D\*�����r�y�.
���ޙ@WQ�y<�N�9��ݣg�@��4�4iQڍe�P�Án�A�h�ЀF!BX$�BPB����HȾ����d_	�HȆ2�W�ք�ꘗ�߹'�V�[�nU��/�W��߁�L4�'�
�Vm;�p��K���V�B�

@��9hC$H�l͕��C�6�	�/�+�nm�>g3m���B}
����Q�O�ۛ�|mg��A���]�O�2)�7f".�q0.�÷��_u� f��nf|te����jk;^���#_�xCs{pv���]CiQ��|�%2G:�Y���;c�kX<�[#Ȭ6/"�O)�ʌ�˞�꯵��84��Щ_�44����c�����s���Z��O�T.�l���bE�߬	�t�'�g� ��Zޅơ[��Y�=�	�8ɅYd�E��o�O(5w5"����m�&OeWps��M���ޜF.4�_����-��M'!�,�L(f�.'Tdw�i�7Z���W4�����=G^:�Ǜo��k�.E{gț��F�ںu+WM��<�.!!�|xx�̙3��:�Y�bZi2�sD+�;�vvv0eOOO>��&J�͛7������>����f���/�UZ����7!�8���çիW�MOOG�g���FFF��ƍ;���b``����#G���l��yFF�?��}}}�e�2���4�<�7oЊ�2�0n�0RQQ1{�l???��e�4����ad��Ɍ$<Bb�8�,�v`�|��[�޻w/�S�S7�Jc��Q�?�7s�DDD�u�VkПs���{HҦ��Α;����M7
�K��4w�k�ԕ���]�',�y�C���X>~j��9U�mN̩�lW���+�B�
*���I����#$RiJ)�\��O�	|���F�[u�Z��@��^X_����~'#�i(�#�
��M�C���w��k���,���Xd�l`��E�T1�
Ω�����횓y�ٞP,:nLB�Y��1E5A1�Ϣ�fחm1��>Ziꀭq�n[}��w�Q������~�˫-�l�4,�Ҥ�z.{g���������q� �K.��<$$���=p}$EX� Ͷ<W�M
�/y��<:�P
u�6��}K��&r�A?�'=�&<��1�-��k�1Gt��T�:���Vڌ��&bj��Ֆ6J��L�^ҷ4A�q۰Uyy���~��;� �!�tǎ���DQ&�kA��Æ
����h	x$5�A�3,H���
�Ck�it��+���-<�i�ȑ��((�f�A;::B�hDh*~�`�F}������x���[o�d�f��3$�/�u'M//O���E��̇��4��������=�`��D�L�ӦM�ʉу"ާ�h�����c�W^y�a�n��3��ҥK�j��lܸq�6�B��0m۶M���������f��
@��u�ho-���o�����i�г
�h�Ӂ��'����^�����4�z|֕�g�æ�@�楶���r���b���g^VZ�
*T�4�Ǻ󀆥Q# �"�9���0)�1J�$.4�X�в�
�~���Q��u�B�A��w�W���:0�'r�&Iƈ�aO^s	�A|3*���J/����S�V�#����S0Ĉ+�$f��_�����5�o��C]ͪ6#��ã&2�Z��0���9,����v��y�>����Lel�y��EQ4���$��E��0N֖�5����v�FzncԂ�L��d;���énh��c�C���{������O6th0��O.��H�$���,�g��.�f�fs����M;]j�p�7�|��g-8��
h@I|������#/�i��Ũ�G)Ș��M&Sjj��e�/�#ZDYPP�3 p�Yޗ�?���2��\�Ct����&>�UVVnٲQ<N��S�f�ٵ�o�7G7��
@�P�]2/q�w�x(��%�7#w=�d�Nw�Ȋ���x�'�M���-[Mc��O,B�����P���à!D����B(6LK�G����<�z��WQF�g�aY�p!y���8q"C߃����o1�:�8c�؃����U��M������`���Pd]z�a������IJL���Lϸ��b��OOM�p��[�_Rp|����}`m��C/�:�v�p��Q�m_�S�
@�P�B�
��h��{@����5���?9���l�/(�Ԛ�3"Y1��_�gS�s' ��N���1��Jݵ�߻���}h���/�c�rs�#�7��e�׀�h��3�����'�k���
Yx6���L���Ʊ%�6;b�"��v��j�㡁2��ѽ�y
l޵�_I�[ػ�l�O���2���!F���s0�&!�6������G]�zQ%˴��<���cZ�E���V��#�D��,�9@3�h�[ʚ�g~N�p���ar��q��rw>-�-	�3�77�y�r
���&LpwwGO�`�yC�.�'M��TtOM���P\F��i�&��dhYZ�/+�>‰��x@�<���b�
n�8q�(�Ph*���(�
��uͷ�<"hK
�e��~'O�9sf����	,}.h�@3�!�h�2��f�a�4�@�� F?�P��Lp-��e`1�~E���<!cײ�T�ymI��v�[�lu�]g�:wL���u���ڠ��&&����z7�*=��Y�ij�m�N�<1�
��B�
*���<�-4p��O��`̆A1-���̌��z]�x8�;��é�/5ˆ/5�=o���R{
�a��c��\,��̀������,.9~���b�v2>��m>��7�`Z92^T�4e��88;����ua��f��n&�5;i�^�`�e�T�4,�O�~jn9�g�Ff |hy�vk|�.����NF�ή�s\�ZǦ����i�=t�I�1��@co����N�S�ig%��7d��^u=��SǠ��H-}�-�GK��' �m�;'0����vđ�%ȃ�!?^�h,�u�9aMBi���'�|hn�=7�1?8�[\;�'�L�����/�����E���1����F��V��'.�#W��eA�PfT��Bb��w	�a���F#�Nb�2e����ux��):#c�}��G�lj���|�'¿I��њ�*T� �$�”���3^��Ŷ����	�½G_D}I)~��<�\�5!��ܹsi���ݻw˾Ļ�;�YC
V�#ְ/�.[�v�<`�����(e����螇���5���P�
*T(}�
h��ha�]�a�砙����Kl�G�^ަ2��K,��Ꝃ4��^8�#J��=��W��I�Ýt��,F��h�u�,�*���Y�.�Jf����ghGJ�3�~��2�s�S0�g%��UQ@_in�X��m�?�����^.��;bi%231�K)AJ�$Y@vFMܖ���?J��b�1���\J1����P3������+,&!�m�͔�z1�;��b>�'b���=K�J��s�l����2Ţ�_����y	3i�$QsO>�,����F|=p]y�ϸ�p�\��'0a�B�
�J��:�T|�Et���Ƽ��dS�������񩨨HA�^��n1b����x�a�#qhe0D��E7�>���Y���A�|�r�{ii)����RG~y��6�g0����C%���G��栚��P��@3�#�!\IG�III��T����ӧO�'�F@�Y���)��V�<�h����@3z���O�ޢ?�!�#H�e�b6T�2��0E!��52ɶ�ш�y0��Mַ�P���
@+�B�
*��M!:������~&�^�}��nr	�/�̪!�|(����hr��>���%�]gʻv|�1��d8[����
�4m��,T�P��,2��x7�X֤VԻD�gV~u�L*�NO�ߗ ��yw'�l�/5��4(Ђ_!� W7X\u"������y7�"ye��/��(<̝��l��d���|��U��et�'/�M�0b=�#�x���h��u�1��FZ��{Q|r�W3�(��ą�6�S*
2�#'�Hz9��h�I,�74���q�p|���;w�x@sA9�X�a��0�0a��ž-���cP@�Yݗ45������,Rh�hcE�fF*zYp��4ӧO�7�ͅP �A��R��9�phEuH�FϺ��`ƌF�!��J '���I�"cz1�g6G�HQ��6��
������7�5uL�1��#Ԡ�
w������=�=^�)�4��4��/5�����!j�b
����
h���X�;�4���G�T��'j4N��GhT�}�V*�VZh�U�P�B�нǂ�@��:��6��Ƴ�������>{���ш��!��s����cZ?�#ϯ� �/���◎����D� �a[clfz
��^uYߪ���gt������ܱY6���晱!��T��# ,�H$앙}Qg��׿R#���خ��/��[��;�A5Lˤ�v��5J����U
��_ft'4R�]���*�f�E�߮�v�ESK1��8?�&���*�� Ck?v��;�Z꣆���0�/���{_r�~�m׿D<ߧ�m� d�0E�K+n���g444��-�M~����DU�~�(�k�
P�2��������y��g~F
;��x^c�
6P��w�>�E�2�4c����Z�
�[��
�F�&�>�,4�G�5���!
�NM~�s�(}s{V�4n��d�Pc����P�������Tܰ��b������m���d�Ȗ��#th�Jvд�"2 `-�cǎ����y����ƈ��y��`��Ǒ����<�l�xzz2Q�� 46X3A��px�3qtM��
��VZh*T�P��u*�%ͽɋ?��	ŏ:/ʜq�$�π��Q����2?���x��W��0Sn"
~bu~������"�E�zY����?���Ql%n�l�_z��1���ӑT��5�E*��d�(���=y2f�B���>����\���4��]/
xjM8zp���!"gf�t��=�At	I��.�X�^��h�K����r
7�@��p{3 �
GJ�/l�z�sb�
���]Ŏc����b�}�1���3Ɖz�8WM��p��O��aq�=Ixq,��ŋ�Ox@S0�Yx�Ld�/(�m�#�7��\\�똥k���TԂ�
�E�e���x��Z�oN�5fд0gΜ��\q��Z��J�-Æ�,���
�
�OK;w�˲��!�C��}��4ll����G*�BE����ٌ������۟������
ny32�J&�# �/����F)��<F�)�j�uf�0�L:��U���Z^�`Sx'''6�k�݀n3�1c<�"؎Gb�S�#F���QC�b�2��/Z�A��w�
��VZh*T�P�toк�3h��B�1��~����s����A�:->Ⱥ��kYY7���V_��כ��`�HF6���i�S0��[������ov�w��R�l(����6�I��n� ��\:�i�O�sΚ�f��f?��ƫW��&ڵ@���/_s��/��?K��@���u�p���c@�Je��u�Q��u�)t�J�L��ѱM2��,Q�t�]`4^]s~�dz��:z��1�5�5=
�ߓޛ�_pNh*�(Z���>D��s#L{䖿Ŷ=Y��w���t�]�N}c�%�I�o��Z��5Y��/J�w��^
@+���*T�P��{
���x���y���τ���b��c�!Y�\ll���l%I��H���탉�2V�[&�}K�5Ƞ���D+5��u�\��В��[\��JY�]+�����SR���R���TYUe��*���{�i��8��d�s2ee�-1�O|d�`�L�`Y�0.��\���1dq��d�dH�¨T��A.S@
��^ʥ�sN/��:L'DF�9�y���w������&_[�h��1d�V�O�w)?@k4�h��Y���M*
Й�
W胧T��|}��]Q5�r�*�m�DD�n�qG䝄U���_��sbn�%&�����Qc0�`�CW���[�o���O��NI.��4߮���c="�>��4�UWWc�z��`��е�m��r���>�苿�/�.�z���3C�R��{>*Y��
���ۛ���'ylO����MDD�9GpD���gqLͻ߼xC��9<�8���y#W��u�������4�-QW}����������)��ۖ_N�
r��i�Y5E'���o���[���=;S���Ց��O�v��w���`�B��,��iY���蹪��q��W�-y��E���
DDD�1@��-�uh�42���n�꼭�\�����������*++KKK��qR�7P�kkkq�C�>�����me�5E'u9
�йK�\^]	FW�]Nᅲa�$V4[}���c]1Ǒ��{�|���W��:�wOwkZ��a8A�3}��C��o)=C�N��籄���\f��DDD�4@�ެ�f@�È~�K�pz��V.h""""z6��_�&ƭ�z�y�%���\!�;�~���aSS�l˷
Р�.Ǎ���nkN�^���L]!R/b��sv�y�7x���B�.����G�g�闾��,F&�?h&p�_�=ێvŤtǦ� �*!:c'(����^)�N>2;�g1�����k���&F�6�|{����8�_K0�$�|��o��ij�DD��\\�DDDD���?m6N�𶷷766j�Z�߫у]��������a�Ʉ�W��\Rꕤ�/���L�~�W=`��C{�p9G>������P�ZZ�]�0��;9l�Yѝ>�(����'�Ҕ���o��ђ�ۣ��IY���o�Em�~ؓ�ӟ��������e�7g�vb�ح�ڗ$ ������g.^1vz�H
�E���DGg�%��;0�^�%��K�.4�C#��ܪ�w"DD��4S�<��������^�Qh�Dc.����阅hCq�;7l/�7amr������p;��3�s�]��ydq���%l�/��|ŋ��"N��ς�m�u����]V�;q{<���c-�χ'�
>��឵�L�(/��m��N���yy𙈈x	!4��
���� �(�X�2V6���w$,I��CDyy�C`�zFB�}�_�Fp3|�ADD�\\�DDDDDDDDD�{	a}��-L������������7n4444����$�qw��+P��/��4=���W���w?���(�ڼ�n������/����h�}��^yYW���b�i��������>\���/�f�V��l����
���^�nw;�`k�Z�(��,hH��0�����Bfk���G�� �=���m4�.�M��H�i�Q>ٍm4�^p�-@������)O�6Z�@���h�;w��0�a�D�b�-(Rł����Ai����fIB� �9�Ek(	�û��M�>�'��hp�	h�@��M�n4@�e_��+MS��說���"@E��=M��	� @;m�
�
�Y�}��d(@�
t3�<w�h�3�M���#:D�[�ۃz���^��������NW�=k���{��
�o�*��w��z�2��/u8>>>>}�//�n�۾_���?<=N��B���?�^�.^^GG'����MY����t)�+���J*eJ�"B�ˆd�QdgT@Q�q#�6��E�d�a�Ec��<�/�O;�L�"��'�[,�}��թs�B!�B!$�?���C�O�%՞��������gbf~tb���AqɕP[49��JR�y��뿼>��U/˶t�:��I�vo�/7�>��ߪmXz�2>1y�_����)K@!�B!�B!�Ox���F4.�ĩ��
���}C#���ŵ��u�E�ě9h��el:e��r�[�lS@�9����E���׬�0�ӹ�i����5͍�\6���v��y��\��
dV���ucF��?5-��x+��%�%��B!�B!����/!��?yƽ��ǟ�v���Q��}�T��(�����5����'�dd�hS�]R�=#'/"6����&}�TQHxTJFvZV����Ʀ�����كG���c�C����R�]�%:�`��Xrf�-:�[�y���N�b"k�b�
�JL���x>�X~L|"�1X'���4޳��γ�\ZZ!�B!�B	�h���7o�m���s�so?��k����)ۢ���muN�杮�ށ�4{.�y���;@����;����5#�W���w���mc��������fVs[7��;�-���0���{ ��$���E^�q���$k�O������������<z25��Q�tiE%f坓_�t��Z;��b�K�~�}�%W��O�
����|���B!�B!�Л�������d*,���8㣱�k?���U[��7���KW�`xTl�%�[�/Z:{�+��M�z��N#:8��Y2Ԕ{ �k���L�o{O?=�e֬g���ᝦ��Gcܥ{�b��"�RY9M�h�꺦��6��{�yC�ٞ����
��-R�����K�,:�,�����ٛ��y�d���ʴ{���S�|��R	h	h!�B!�B!$�7�m&�7.�8�U�ދ��]RZN���O>�|�O���͡z3ޝ^8(%�O�ҶQ^y��3���ԃ#�\��|�,����Fh�3��)G���a;�8��O`��6��u��8��nK(��+�S3s�l�t�{a�/_���y���8n:7xI����o~y���e�|Y*7��zk�GZZ!�B!�B	h���y��⭀�TV�>޺�'�PJa�|4�D����Lee��u�̥U9'
}-<�56����?�&���4uj>�~�9�ptN^!���•�֧�]d�مU9�6�Z���Y6��X|�5��<ϻݮkB:�Jw�?{���%�D� �#�Q�+��{2����<p/��CZ!�B!�B	�
������&/L��Q���^w��[Xu/��I@'&g���'n����-�Ė)�H�8���^��?s5̂�|�����sI�v�3ښ�3�Q��%mh��^�PS]USOY���c2�#�O�&3M�ynq����q�v��]H@��ۑ�"����:�|:4�dc��5uwu��B!�B!�Л*�oV�=��˕���,�L��S�ӧf=���'$Y#b��{haF@�y��r��N}�G�����:h��E�͓w��f�X��3j��$�W_�"�L�����,�2�L�E�5�v`�QީY�{ã��/~54;"���Q�ACH�W����
Y���_�J@!�B!�B!�y�sKkU�
8b�5""&�~��Ff
1j;w��wAo2��A!��┬
1&g<	Ii��8��t�"$,��-��eM�-L�x/S��7��v���Gƒ��es!����7���
M|��&Ѝ-���@t/�a��z��dM������ČB�2k�$��,�[��B!�B!��w&NM�y��;��m�Bg�� H�NW�u� rVP�b�;8��	x��v��"B8�[$�$� W�eY��T$(�w���y'�Y�d�~�7Lx�7��d�<I>��~_B(����~�h��`Lg�-��K"#-�z�-���%�J����H^F��m�?�`�1-VWи,�͊۷뛡z���S3�A+�9���"�Is	���Uq_$l���"�_�Te��Iɰ�H�8�y����s��%�F��~߃o�m-?�U��������Q?Ep�u��-�e�3�+n�*�D~!��bj44!�B!�B!���X��ޟ�/.C�D-Lt~QiҕoB���K+�'��"L���
Ӗ������g$>�f�W�adtL���N�P����T��>���(
h�J�����<����NG��CC�T*Ϟ���
xdq�r�g�hB��9y��xDX���A��$�i�NCCG��F���������[h� �����K�j�/$Eǝ�,l(u
h
hB!�������hgg�N��s�J������씔�TWW��׫����V�^�_J333¼�6ΌN<�=��jR�����HlʍU�E�\��IY���II��LnQ\Օ�hW){5ݏ��>7�y�0Ӧ��S�pI���Kz���#:�������9q���́��aE����Qx1��dffhx��v<5�����)�pH��G����,[�����u��/c�K��5�7��"�BV��g@�`{��!�3��%i\�Ƭj�m �C\�-���
7�8��;c��D�-�J
a�X"�Facl��h{�m�Qb��S��8�b�i還66!���
{�B��9-b��}��n��ۇ�ζ����ЄB!d�~�@7���ffffee�/������b@AA�F����W���^Y����G�cC�bB�d�������Q�_h��'��1�҉�����恶'S��`�N7����s���Gk孵��Xxi��Ԭٯy{�z��=0������:��eJS��Ϟ_e���S���_��k�ػnK����M=��=k�z�q���M��F��������'x��bzxD �B8z�}�bj��J�w\�*,_p�^"S@B!��%dxx���"==�7k���v�����扉	a�E�5��&("a{�zWf����1ʴ��?x1g�}���z�x��rW[yk�|��V^�W�ޚ߻�-h0/�k� �8�t<%�o�G�o��~o��8�ڮ�B��1�M�����_���G!���В��oeQ@B!�������.�n��
���RVV��_t�ϧ�ќ�w:�H�k�_Q.k��	&��'������+ox^3(��u;�`�e==�諸�7m{,��y͢z�l���wb�@!�0��Ţ�&�B!���H[���,s�\��
&({��
΄���|
}���4n��H���wU��U�v_ˉ�z���ʆ٨
K�>�M!�Co����.�B���ࠀfQ@B!K�`�F�2�������,`�W)L�ѕ��]��f砑[->
�UNGZ��k^���_|��؛~��
+(]�����Lޮ!�
h�ڔ��v��y��=��x�p����<\M���i��'dU���WUU���������ׯ����Y�G����!s���F���
h�R)���Zm�*|41&=����1O�qD�K:���
k�ж�&�@!�����6lr��fQ@��www��'O
d�ϴBn�޽{�|9:::99�ڵ+&&��Ç������\Ui��JY1444���������IGFF��ñP|||�S�F{{{��
�_SSSq�L �����B�hkU	h���c�x̰�0��l�2�u�ր�H������Z6����Hq\^rp���Ǐ�sq�5!+'s699y�Ν8��8%-������(�<yR__�g�������ol��x��`"B=?2_�|4B�M+��\��J#����
�u[z��3-
hB!��,
��+����]]]a+BCC�;&�LGG��ݻ�ʑB3������ݽ{��+�1�4�����4�'�+
�P��p�>��G�v��^<>Q^^~��a___l���-B~i����o�����)�ɤ��X��Q8UB����%JKK�9��w��,|�]��oy�N��$��E�ǺZZZ��8��?0�b@�z�t8��MGGuuu�s�3��0�%�6ccc������*�jppP0
���j���0��{�SU���Ŕ2eX 2�Xd3��d8�T\L63Q��i�1ҍ�D$Ԙ�&a�R9���U�5s���;�.O>]�p���y����{�s�9��9���~>i�h�s�/�M��[��Nh�^�q�4����m�z~��T��hI�$Iz�zj�@g�$$
@�	@?C������e�����d�t$���L��u1$�"#
�����V�Ԇ
�/�c������}m6�W�Z����ebŀ�=gddЙ�M/G���[Y�/�n�Z�z�����tx.����4'J


��D���,�w}}}���3�K�,)--5c]���)))&4���PQQA�����#f!�n��� �…y�ݼy�}r8y�^l
���������O7{�k֬��+�a�o��Y�y�3��#;�T�02�����\{����7w�L������������-M]?}���_h�_?�����o��ЁyI}�������Eڣ�ݿ�j���Y/-I�$	@����j��F9�x}�W+��I�555˗/���A���$"~Y;�}���L�'ݿ��C�


�Y\gHnDF#�*B��=����lq\���$In�	��`$S�|�2��b���7:Q�dA���y|I����	H��8fJ=;::�3�`���<|�t�fMUU��;ӭ����P�NL�`��0q�[f��w1�6�iX�u�x,�L��w�<��A36F�r$ivh�Mvt�������-
�י������Jo�W�V�v&
�I=��?F�Nx!����%
@K�$I���r@�	@O@�V�dm,o&ϯ���‘q%�5�;w�رc��ݕ���@c*=<<�ٺu����
#�EޟA?x���okrU�x��P+�$�@Ϲǁ��q��u�ɂ��G�y`Ff
�5S3XE��I�-z[�reyy9�a�I4�����-�{ٲe.;�v��N���fp�=88h����$�4S
�@pf���z���|�U�|e��6�����2Ǘ|�	zi�_�����d
��)#Ks �#�Gc!��=��RpH�$I�3DE9����-\�P	�q�	��EN9��,��={H�aqww7� �5	K��9�up��!A�%%kbb��ӧيk{5��pD�.�̕Ʌ
���$�h�2w�ɕ�����;iES���j��ŋ���GRB���ǏGh�m�&I�gVk��149
���ۙCz�;���L�jRNC�	e�/ΓL#ȑ�Y��)B�-B�����(BWt��D�p�kɁ��U�P�$I�VB5�@x��?�<.��q��.%�L�.�1,ۗ^�"��Xz6)8RSS#4x�hf�3����
�F��b*�IX�YIg�=C8��$y@wuu�U�k;��i`ߩ4Yw�G�Ƒ��@S��hS��Ǚq@��0#��T�������1Ä���e+���&�c�&�H8�$�&-O���C:v�*��nВ$I���Lqh5�ihw��>c\,cF @��J�ɋJ�/�+[����L�.�+$���C�g�"A�Y@3��D�^~vS<��o��,���hIr9�&?��:d;��@㏎����c���FN��	�!�6������.v8"֑��Q4��ᕒ$----I�$	@�@����4�������ǜ)����t$�f�ؿ?���jh��T*d��P@�+�dn�þ}��M���[���$�fp"�^�till�=@�ߊG��X�w��
�L�0F#�l.�m۶1V��:�%Ir%��w+c���!\pk�݂[�2��@���}�<A� ����6�E� 82���À�GU����(�JMT���xA��ܹ�>�72;��$	@@@@K�$IЮ�-�&=cqK���UI����]$�:�r��J����MH����>৬�,���U,C��DLl��͆"Q��_�+�d縧m�(vBBB��(I�kD�
p0CGv
Ж�$��ز	����L�cǎaX���1�B1w�\�?�������M��4i�YZ%%%���h�0���0>b�&�pt�¯��t�1g:�|>bˢE��#����ń#04����_��'OD"�'���s$IZZZZ�$I��ZMڻ3���!��c���?�����_��� ':P4��W�[��؊������^��v��(����D�`,�b+��aR�$I��c"�,"W�ApXmmmCC��S�������V�����D���� h`R6�m-�<�xpaL=[�	��0�	���"�ib�=[2�IȪas��'
�L����0�	�M!�����%I�$h�!��IHTh5h��
TIQ%I�
�9�$=�{��Sԉ'̤����k[*��ן�s�N�p��:磡	�����<	�_~}��5G�$I�^\-�����O�w�?ŨLD��>EeQ�x�(�j�A@��EQ�D�nFe�@E�9ʩP��̓"�]��P.��5a$ff,�چ�+���|���?�w�h"""����1'Wd�к#�'({;#��TdW���e�'G��vy��Ŀ�*��h�u�ғ��I���nj��1����掏���=��M��>�.��bMDDDD�!�FSRR�<��H��mUWW�&�L�����R��'��\:+?|��K;IW���g�����#z�F���zF����}�����O�j��d�j3����3�Z"""�ƻ�3�fMDDDdPp��x�k��3��1����c"}�����M;���/��8+�2��%������2��tk?�81��y��4�C�I�$Zd`�3�AU�m*���T_��Q�޿zUT�繶�ԾG��c�[:O�$rA��>+���8�����!��z4���"\X�:��,l
*�qt�vpO� �4h""""Áo5h���8{S�ui/"�}C&�JPrg�\��ى�r�����sŃ����	�Y񕙱��.�c҅~NԵf��3���3�U�{oF��cd�}ۏ�)g�k�ir[�Ie��HZ�5�ԃ���w���������x��ץ���G���,Bګ���9�y�;�E.(%a��cI�`���O�i������w@[X;"n^��'(,|{rJL��/`�����-m
!�D �v��x}P�<�ς@3�&"""2�c	�Xww�J�B[�B���<]�T޹s���ߔ0�z
��ǟ�z���kZϫ��=�#
�����4�v���36���F�������"�t "[�'��ᄒ���~�ўܲ�ʖ�ݚ�ѱ�)M��ӡ�����to�&@�Y�E�a�^=�,5�Ua��M��/�<����a�d��b'���I����hi���V獦�_�+\��_`e��c��1	�6���B�x�g��@h��i�=��8_����ش9"i�쫒���[�e�=�Wb�D�k�t\O�׺[,\৸��t\O~���q;�.�~����FoہX|Kdh������������^�)πF��t�yU���asD,���D�Bk���}
K/�z��2_].��gM\�.��5�m�b�X�zE�%-_�v���)��h���
v.��C�'�Kڝ�v}���#�[��Я&ٳ?
�x4z��>_�M��x`�����@3�&""""""""��7Z`i��������fd]�Pl�%;�TXD,�я��YQ[_�Ђ����J=�W�
�V�^olCZ]U���ф���ν�����9��ꔭ׮7��7�6���g�:�ǃd2�J��o���x�/�aϵ��������N�(�4h�DDDDDDDD���:�q�_zv^MC3^4 �z��
�X&f�&fs�--l�V��V�x��:q�,0L��R�ځ�9�*���X�Y�����cH�/�^��,�eґ/����؄��r��ȑ�)�MMGʌ:-3wKT����N���vl��N��my%��I4j`��41�6�h��'N�E�2F?c��g�%�iY�9�ҳ���߾[l眚���Ҿ;��9�ҋ�,�P�@����B�
�����J4;Ϟ+�ut+(*�8i���v����q�vCЌ�f�LH��T�y'�]`��1��������n��Z��p[䉝3�����v�
,��@3�fMDDDDDD��w�?U�q��Z��0A������"!jJ�-gh�8����R /a�.֜�����g��\[g���~�;�>�?����$��/6�޺��r��o��Ɖf�5s��S��w���^��e.��m�V������;�;8F���5E��R&r�<9���
�]�2�����i���ܪg`�]\}C׉�]׆-�'@��	����7l�h8{1���30:<1�#�����5��h�$I�$I�ЯR���q��3����	�1�df�Z���;���q)z�Эm�g�p˗]������b�,+\���џ}~*�����������f�ѯ�nޚ!(�+���􅬜<Fp|���u�����	�y�aо	�,�6l�6@�%I�$I�d�~�tazV�?��b.�!ٷd"w�*��;�(Ό]>T�@�=v��5.\i�r��|~+%�]�r󳗮����y��_����}o9s�ǧ�.*y��3�
����
g���$鎾!27O���O	�>�
�hI�$I�$�_��\i�ű�^ȡ����|���p���{˷���Բ��ɫ�ևR�U���a=�9��/�M����g���hxqn8{�#�FoL3�������ξ!Rx՞:Y�7���m��$I�$I�zv�ӧO�����$4�WE��F8�<}�>o��M5����S3�E��L��DZ_sNy滇՟$1�-�����/$4ǥY����XYW:t�&_'��p���&����P�|��/���-�0�4+y�!+���z���a�cW����o;�k��)s��
В$I�$I2@�F�N�t0�y��hi�D��4Fc[*vr09�2-��h�jǕ����=u���T���g��� @3d㣽�_n^Y�..>�<���k�w�ml⥅Aq��]Ài������0���={D{4�~�Թ�����Β�md�H��3�'��l�6@K�$I�$�=K#8

�3s�
�A����7'oef�R1U��ܐ��P��y��y�g�Jtf�����F���Pj��A��+�;�5A��w��5���#8|��|f��S�|6@�%I�$I�d��?4HyI��~1Cy��w�-W�7OlLb��h�$I�$I��/i���z�%I�$I�$�8���e��$I�$I���Kӳr�^hI�~g�m�(
�u��K��lJd@2E��m�����'Np�N�z��']�	����Z��Z��m7�Mp�W���9�l�����������>2�����p�h`�����	�4L�~Z�v4�r��O�
�	�']��N�z�h����0��ߓ�3��tZ����Y�4�E(YdbJ)e**��0���}��16*M��KaDv����͆�(����x}y}x=����!@�2h4;;�9��!@��M�8��a��@Z�K��u�:�N�&@')@�LN��k�U�R�&��S�IOHҞ��$�L������S�n	�h��WjT)uw��[:j^�*їK;>����X)f�����:���	�h vt(�����=h9(#=3��M�������S��cӝ��f�^��>h�@�wC�tm�h�qhY\�2WVV�������¿#���������][[����b*@���}��f�0>5��>��/�]z����}�ן�/ߒ"-[F��Z-#��߹/��}����5�m��y@y`�y��;�x�#/�Plnn������x�^���t:���l6��l����>rF��b��������x|>�T��'�hI����<#>��h��"N��9�,�[�c�������ܑծ�^�����P[�X�+�;ё�6��
*��5�^���Sj����m�/�U�64��}T]����Ry=mQI���-�Y9+'_�b�4��$=K��l2���a�Zm��!�}+I���ᘛ�[__������/\y�e�]��nY���,u+-�hU��ZU���eǵ�el�Rw��u��q�H��F�㝐Ȓ�'�fҤ�&&�YS�'��q��Ii�x���N|mJ6�-,Sk�+k�clO��fdU�6F��#�N�̝�ӡ�crv���*�;IiX��8,��\��Sj�fa=E�b\���SN+����nI��,����-S���4�y=��K���r��kx���G��M���;��1�F�P(�0������2�	D����s��~Fmim��>����)��Lzf��g�!hny�
�:�z���ڥ������'y�}F�ex
=Ȭ��^ވKHL}8,W�0�lau�U�*�<��)�n�S��/0��.Ц���Cϑ^��zvv���@DDDDDDDDd��	�Ѷ��11ra$Ο.�{\D^�Q�O���uv��\sw����hD4ʣ[�_a�w?������{)5�[�"c���
Ƣ���-�lq��B���>ci]U'��W�Jp�۳�V#���ӊ�|1mw��^�&XXX����5C��MDDDDDDDD'9����11��k�b0�^�Ca�x nJ9��O�*�_�
���P��C�17�[^{����f!��a��jcw�Z�38���*TE�NL��-痔ca�{g>A��L��h�b!8���"hЦ���c���3doo�@DDDDDDDD�mB��gTj�C�����	2�e>ۻ�B�e�	�}�r�����e|J-��{P�Q�a�g�.!�F�Q�_��ބ�E$�ر	Ij�R^�3��]}H�;�����$���֪�Fq}�o`(+8@�fqq�|'��!}��b09.!Y���?�x�����eiG�И�j�ʹ��R���3�#P�O���z�-�j�7�9^tCf��FDg���^	9
���t��dL@#�FRlI?z�w��
!87?��Xiw�^�����������NZ�)�8���ӭ ,��"������kWь��囚��i�2�����"7�ˮ�a�Ũ~S�h�yEe"��Q�wz�G��k1�h��|����x	J��#c]DwS��^����@���q%]}C��lL�����1�,��u�>z9B���q�͸513���Ϳ��n|b
9�c�h�$�v��J(ڢ{eB�O�OJ]^[/.c�A\D�ކ�x!�i�F�p�rjA3�fMDDDDDDDDd������~9OK뛤�/:%m���£�	u��Ҫ�5�TVc/���B�VF^|���%�uMm���|\��c��Y��陹h��W�k���kD4
7� Z;�g��$���;IX��g�����������NZ
��:��%���#�F����\=
c��	����X��q�8�G�Z�YNj8�u��B��s��x���X#D�xF#�>{�u��3h�DDDDDDDDD_a-H��2i��gM�P<rt��x�4h���<�����C�G�K��e[[[��Y__���=!�=��^]]�����=������!|3�;���*�j{{�pL�;�Z���{�_��OT]E�4�(bGvT,�����]�({��wc��ł%D�Xb�n���(/��v]�\�}�
{eb�;wι��a�v_!�B!�"�7!�h������!z߾}C�}��;RPP0x��={��#��Y�fM�>=�]�Jj׮�r�J�՘貲2�jFFF�
.]��>*++�l����Q�FqI߾}�
�mڴ�{��			���#F��z���?�W�v튊��*R\\����e�O!�B!�"�	����zH@����_�n]B��H^^^ll�I��E�}�vbb�y�"lxIIɒ%K�ݻ��O�>
2����]���������͛M�49��WE�<�1c�/�j���͚5;v����{�nܸ��ݻ�?�޽{M@߸q�y�fO!�B!�"7!TZ	�(��>}ڲe��˗[�G�,�`�j�^�<x`� y�ի��t�bFܫ��h��6W���S^�/�Oً���Q��Ν8�B�?��4�djN���s�d7��ql[±lٲ�͛c�_$N��Ӈ-�P������OTQQ��q��m�y����+/YZZ!�B!�I���5E@�_Ǎ���ʮZ�8%%?��>u�\4+F�����߿���շoߞ={���Z5P�����X�ѣG�Qt�ܹK�.=z��
yuǎ�bNv͚5���[�nMKK���V¥�߽{Gt��Ɲ<y2���|���36l�T�]�ŋ��"��׏2�Ν;�˗/�Ԍ08g��ɓ'�
�渍�\!-��7o8���>t���-�e�߿�Ӻu��/-Ϟ=;r�HF��ٖ�ϟsp���i�7nd?]��…333Y �_@���~g4Ƽs玻�Nh�f�iӦ�ܹ���B!�B!��zH@K@WK@��^s�?.�׀A/p�F�>~����hт㤤$L�yL��	���۷mڴ�ڵk���Z�2�L�iӦTyp���3g⠑�(`��U2��Z���w���s���4Bķn�rj8..��iނQ�ر#�?~�3|E�xjfG�R|�9�h�"F=z4�y��L���f��m۶E�m�`�.�u�p�իW#�1�Ԇp&�^#���ŲK��C���'�J�I�����`��yWLL̠A��.]:u��: �Ȑ�u�� ���>������耦h������g��|y�wQg�f^&JOOg"޸m�6O!�B!�B	h=$�%�Y@��irK��j�Bwz�8s���,�%m	/3v���i*���Eξx���H�Iz��Q�_�p�A���a�p�n
<,J	�s�/���72�i\bȼD��^�S�~��
Yjl�ەP#�	�&m׭[װa�+W�h�,����T2L�Ç��3fX�_6L7^���~X8��ȑ#^x�㬎�ȵ���榅�bG0�\$�D�u�ֻv�:BE�eX���Υ�>}چ�{�.�$����|�*���4W+-�B!�B	h=$�� �Q~2�!��r
���v�Z���U=C��J
��H�^�x��e�5�a��t��[R��j<)N3@@��ץ�#��Ɗ�kveϞ=#���m��WЯzQ����݄��.�l��z��仃4�f�)в� �i���xt3�i2��e����A����Kg�cŊĴ]!���������Y �ZYY��F�s2�:~�J�b�,�ɓ'N@[7N��,�U;v��JHH������]Y�5�'N�@pSQ�	!�B!�BD��CZ��+���=�
�#�R��ߊ�ır�A�5G��`>|�(4yj�3IC�7�� ����_R��WI@S�AM��ׯyn=LM_5m&�2��	hlu~~��H�1��{��!�t��t@���A�ݔT�jl/ih��v�h-��C���L���Ƽ0�=������`M.��I4�a����YN�J
�#��Z'���������d�TF#��p����g�nB(�B!�B	h=$��#���>��?�q��Rj1��ahCFb���Dت-B�j�*�%�	���K��Ga�ĉ�0s�{:���4D-w�#X�<��y�����i�'�	\�5vyj7���s���i��OM@8������/A�4�5dc�O@�O��e�mr�8_J�i ���s��g��G"������=�#X@3��S�N\�)x?�&��cN,��z6��&N
�Y�V!Mn�����I���ur�뤹՛���OO!�B!�"��q�I�z�4mʕ`��]4�_|���������M`h�Z��(/�d2��Z�0��e�9B$�z������0��aNN@aN���дIX��A�\��#Z�wEH@3��&��^�=	]!	���
�Ͱ_��I=�&KN"��|熁�j"�����Yf��.//�F�~��������D�ؐk�Gj7�"=��m���xpB�V�͇���*P:���"�p+�ƕؼ�ojC�9�M͞0�:��B!�B�sy�*
����pRgJ+� 	7�zZDآ���d�hS-��l4�pQPFA� 5�(â����C����q��Ν{��\|��wL@;�U�6"�> .���_zpV�B��%����[����M��i��}��b�'-�~bK)� 1MC1��א����.9\D0�M�[���ؙ�4��ˤ�C��;��!Ga<)�`"ۼ _��ƀ��疖�9qoVdKh�#ӧ��9UR�e/��sJ4_�q�\)=�P��wF��^�ns�4u0)�Ϛ�
�N35=�rFG4/(�&�Lx)�e2/gBL؁J�T*���]e�i[���Iš�������r<��L],�qf"Μ��
z9�VW7-"""""""
h��::�aI�R���%I:222PU���	���� �-�7�ې�noo��f��	����	�QE����32�Dv(kF+�bal&̋Z�Y��4�`��u>�'{6�"f�G��X[��e������4�'�k&�ɒF.sE\B�Z5𼤃9>�¦=9L����f;G�J�����I~}#�b���S���Đc+7�ُh�@gsX�����P�Q��	h6ƃ�O�=��q-A*��c�b�9O.�=CI||�͙��x�,��m��DDDDDDDDd�4F뛀nmkڠ�vԎ��E
ME%��S!v]!SSS�~
1�z�	Y�1���7����
�w��
}��å%#�v#ŌG�d*�{���/>�/�V�}��,��������HUt0!v@;�RM��ƨ��,� 0�羾>2Ԭڇ]MDDDDDDDD��+8L@;�R}XC�B��i��d2tI��������H-h@���P@˒����J%��4Z$""""""""�"��ZDDDDDDDDD��v(�EDDDDDDDD�E
�j�d����ӥO�]��ya���{���c��_�t��^�0<0q}��;�ǟ�����9���?�k֧3ͫ���׎��/޽��h��ƙW��>�w(�g�ww�gW�{ǥ�⏝�������|x���C�N��?��œOs����������H-%�[ۚ6�v�9Uא]�q��m͛��X�]հ6���>�<��c٪v�Vo��[��L�Ƹ���)U����{����������ɛ��>��3��1��@��]�c���
%��>y�Pz�,����4y�q�K<ۖL�#6�F���

�Z���B}A��"UDsTAV�ED������C�C͢�!Y����Yp'���p}�4O-F�ܹ���=��@�z}™s�}WYe�����/,ޘ�M59ܦ-�򭶲�KW����0Ӝ�>��]+��[m��/�m��*��=���=Y�EQ�����g5@��=�eY�
��U{#�:�*������o!`N�V/޼5����;�{���������[�v�ջ��u4��uv��~�j�wW�ԥ�2t@�ٸi���[g�
������%�Ksr-}��]*�hQT�o��Y
о�s��ڶ��)���vt\�����:��Ә��]w��VŹ�v���+c}Bҍ[��'��
���F-֨�u<�tf�s���v=�M����yz�y��uj���]-�vO�7�c���Q�ᴝu8W�la��vD��K���m|��*TՍ�K���c:Z;4�C#�?�{�v�f�f}P#�z�hjѤ�#'>�xIM]����Z��g��7��6���y�5v��!h}U�åE�&@���]��-B�v��5>��h�f>g-Qh>s���r����usjZ����p�Nޖ�8���=Zp_�oW�����mLz�ȫc��Z�Q\z]�Zu�M�&@�0O'��K����ù��Sڴ�U\VG����7njn��.�Uk7��:z���I;�[}]���g�N4�M������<�P���f�����,������h}���x��p�Z�z�!AZ��U�����HuCS�Ƣ3�r�h4s�!��^����%e嚀�9f��)롕�5�Z66$mmq����U�nk�ߨ���J
M��Ut�
����;�=h4�
�y���O�-�r��r�c}j�>��ڛ}��C��:�KA�r*?�/���hz2@�T]CS{ x�����	�h4��h
2o1���������b4fl��=����v�ޟ���O�Z�%Tk�L��|��}M=�ݡ�i=�А�2�u@���<��zJ��v~�E4�=��ݻw###����������̀�����wS�}�vttT?��͛7v�}hh(��4�K��j���;����gM;�h��������[���W�UM��u�P睷�т��zؠ�����ڍ�O��P�V�V���N̲8}�.�<g-Q}��	���Я^��|���`����dr��3��f�9==��˗�x����ht:�S�{����Ծ�>��x<,��lz-/^�x�����D��w�=Q�a�?���
"��h��
\pC�VB�� �ZdD�Z5�
�j�P��iH+:*��QJ5.��6iN�p�d2��1��}���=�{��|���~�B!�B!�t�)��B��|[S{��fK���͔6=^4?"�lf@s�a���QJ�1�_�p���?+�}�/֢�<	���cY=�ø����}9y?��r{�+-��too�
�������V�c�V�X��>z���͛7�Y�����x���ã���i�����g�'`ϛ���:������ЧO�B!�B!�b�h3��{f�U���:��]Qk?�
e�i�	�`��
Cc=�Y���
>~�Ɍ^�t'�{�Ϙk���?������WZ�	�Ç#y�9���+6���sѢE3f�hkk3x��1�p |)��/�X͟�9u�$f�C��x���:u*	N�KJJ|}}kjj���TZZ��B!�B!�� �2O��8S����GsB�\f��	��r��-����\�6��|⣽���J@K@}��}\�%Kx��Dp�q+**��y�����D^,X��@������y��U*��C�V�b�^�~�z�vdd$�-,,$��n�����������ٳg���a�===AAA����&�k�ܹ���KMM5�B!�B!�(�K|�����{dsx��oՐ��4�� �l������m���҂�E
#s���I�&�:�m�6�.f���f0888<<<777##��fCC����g͚�}���ܿ��ի����z:''gڴi)))$~�f@@��={�МF�ԏ�B���'(�64�5q����j��q��b�XJKK
!�B!�B1
+�%�5$�Ǯ�~���w���80nܸ�[�.466N�<�zgc��Gǿ��b{�4�_l�jx��m�P__���dS@�LX3s���C@gee1ommEUoܸ�^7����W={��ŋ�]��S������._�̜��T[ӽ�B!�B!��C@ۣ_?"���_Z��tqsUly�X�_\�~9�奈�ܹ�����[���I@�&���q��5�2it,��2�yk?����9щ��������ݻ}���yzz2g5�?~ݺu~~~eee�ь}����oٵkWLL��������,Ė�B!�B!�UZ�n-��ӘP��t)wl��M?de�l}�Ǡ���f�ta�ׅ����j5F����He�.y���*Sb���sZ2߽{��KB@L�A�4sd1��J�Z��l����f@�@m�ugM��B!�B!Ę̀���p7�r���w��-Ɗ}�ǘW~s�a�ӳ�r��Ұ��,]�����[�"�y��]]]�~�Jg,3!%%%�`�<��
������Ay�c4uָi�	!�ټ89**j˖-f�)S��&��!�����	!��#	�{�*�C!�B!�bT	h��(�C�}4�x����&�:/�b�h.�F:o���}έ+j���p�{��qr*2عs�HM�


�|R\�&�n�Ġ� �ΈfTojjj?��<yBǜ9sL�L���3g���jkk��>w�ܻ4^��r�ʁ�6����n�===�
�3g�8�dž+�yz���B!�B!�MZn-�����J�O�I����K9�,o�o�x)������2[o�c��a�cP�L&i��eǎb�ь���3��H�3���JS�L4Bٌ�&�",,�C۷o			

��l���g�G�1�2�b��ƃ����$de�B���ӧs��ࠫ�F.�����6{'vwwO�0����9�:u
��a�
!�B!�B��޽�DFq�/iSA7E�Ԧe`.��.3SA�
#*�L*(Pt�-��jӄ��l!�e%]1�n�dӡ	E��J�y8�o����-~��c��J�M�4_�|�n,�[\��|���t�tۿ��7[O�n?�-��wh�I��S���3*�
lhh��UUU���;b>�t{rliXWWW�USSSsss2���S��':��-S�TDҥ�eG��i�"h��9�R�rKKKD�1$��Aҹ\���迎�vtt|w���3���]ꭎ5wuu�~��;ڽ�ú����M���hfN>���9�8�2���g"N(����DiF�/���x��9+�4�
�*����&�J
�Vh4̑�:���#�6!Th@��8��,L=~���3�v�U�ŧ��=5Rsxhc��C��q����=:�>z��ť����?	�@+5������ӗ�WX�3[�ʖ%2��e�3K�eo��dk_<zY"S�Ȗ'����{��;3r���"��V�g}=6>�x�٪�7�E�ioy*[1�*��HzQm_�]�o�0��P���[�a嚵h��йw�]'��Գ<����w.Ԃ�����;�"����'���I���]�]d�EYq@E�G�QQDYd�MD�}_A@T;��[c��A뇉������I	a���i������9�~�sބW�ܯB!�K��*�u��4���o�1�G�~2�yẸ�#O~���wB!�B!�B,�
h����Ї+��E�C��'wџ���߼B!�B!�ⳬ����Z���n��������lju���[�&�/Y�|V����W�ߎ���*K;n$��Jd�>�D4�������N!�B!�B��]�!��6�\KPz�����/$b�oP�՜Df���5�o܇n���+

��#�Fn��+	�6������׸wpYw,3;��!{'w�K@K@K@!�B!�B�ϰV4,jk[���Y9��.5�lnmW]��;xk�����֮~��{z["���A'w/vj�֭���я:�W��?��r���sKY���0Τ�jq߀�񩙾��I��z����B!�B!�X�-8~���~&��{g�AnQ���z�)74�0��7�0B�/#�/v�s�T%/�lD`7L3�.|jd�?��}�������꺪����cS�*kֺ�7J��_���L�caiE��J��Z��i�wW���l�i�$kYbfi?��q#��؄������<%�E���&�ƍ���m��7G���,7�`B�����1��8"�@��:#����B!�B!�B|:!)��삒fVk�<���p�����[�6n���xRn��X{'�ն,�22����70��VvN���cvIT��������M����/�sr������xu]����5:q?'����?� .��g��}�a!��$���me��Wp�O�����k�Ƌ�W�n�ޑ���7���=ܼ��Bfg���z�����~�f��u�򋈎
�d��vp�$K[4��d�h�ڰq�O@03
U�Y�z�l���i��	����#7n���"
o�5�qH��+mt��罛��ֺ��H����`3$���N�m$�%��B!�B!�����]�����\J�Z�J*k�5��EGߍ�N��ߑ\s��g`���Pe���Q��3����`&�1N�9K�	�VUJ�������TnAS{w��cF�2b���}7X��ћ��k,\$�w��O�s��f'o�u����A�5�b����9�WXTv1��ۺ�����隫M�w��t�4w�"|v���cWY٥�f~naɵ�Nc!#�qÜ��9��.���|ێdޞ�[��s�������{8�ȭ�������E
��������-�(��,Ҡv{6�I�b�Y���OJ��z���2ΐ	l�m8'`jns�x&�9%|/���<�b{�o$���B!�B!��L�2����F'F�N7�wW�^�h�k�����=0����9�h�FƔ�W�bWY��~�F����Li��-*�l��56�Sz7#[�z�8��_R�����&�<Z�m=1�(�@�wa�tms{/o������C�w�Hx��;�4�@���d�Y&�9�|���bj��L����7�R���&<f>����&n�,q����=I�;������x�WY"��K��+#`�����ρ��d�я��s�;�9����cdt|͕F6u�vs�7�6<6őRlNV��8؎����ʺ�6"�����L�;�����Ȟ�����<�hZZ��
_��ߢD�B!�B!�g*����cfq����Ѿ�ڑ�i\/���V��&���kh��7<zE�I)��M�n�Ib�>T,����iGO�dq��U|4M'�6w��HF�E��c��b�iHD4R�����?xaU/��e1�tm&���hž��<>=C�3��C����P�4�F+#p/��Ӕ�����O'��Y�1*=��N;v��@'&���X��F�Ss룙g��Y9,ܓ�� N9x����A#���c�i�� ����OQM���#�����a��f�h
�Q؆C�=NWkJ�C#���0vJ�
6��>�S��
���|���k�ut���e���ګ.�|h�!-��/^<~�xrrrjj�ɓ'o߾�Ȁ�������^��� o޼!��O����ٳg<}��%�ϟ?���niiy'�B!�B!���~����t@�����I�߻�
���\y%==���6ӡ��]T���KD�6�,���ϞC�TT-75/�ǻRR��e�9��������r�jqEe�\����\Q��y��
h�.6<.1����������V�]ù�����k��
b�PVy���r����z�{��T�i���1��%+�742�H���!��I�i�Y�B^J��٭:r���L?hS۸�]���2�-�h�598�=/��4yFoK��M�����9��(-�)��;���Z��[H@K@���3����_��dli"	�(��DP��PP� $��EAKP�MYE�5���4J�8.��i�����-_$��|޹Ü{������訯�/::����Q������

�Θ˗/���{����o������=��<##��¢��Rm������oX$�D"�H$�D"�H4%Я�
���^�%C���/���#kb��
����Hu-����T�I[;{p7C��I<1�]�,���R5jYD4�59=޺�xө��$f�5���{��9�o��b�\ú���*k���fqo�/mӅL
%?v��1N�{�.����|���J�R3��<|�V]s@398|p��:gWN��f��k�[���(��48�xj�_#�
@Sd��".Am�E�z��Lr��zڛ8��qDL�7��ȿ�s-��.\hiiYTTD����			���)))��_���Ĥ�:k����
d�����P�.--U^�/޺ukX$�D"�H$�D"�H4��;����#�Oݖb����ή�s�kBݰ9���"7F����%h�� i<���c`.�{o����Q4��Ξ���L*~a~:�,�V=s����h�4��̮*-$"�K�4�d@C���`d�,8�Y�Ktc��_0�4�Df�Yp����
@��40��,r��>~��t�op8c�c�sؓӳr�!����}�h���1��2>�e0��Q�5S`����00��aB���-Z���xӦM3f�hhh�*?~n``��٩j�>}
&������ݓ�̧s����Pв;bccCBBp.���� ��ٳg�SC�o޼���~��
ʯ�P�y�慆�>y�D�Sqq�9s�z��!^_�x��_�߆n_E@�,�����jy���{��,I$�D"�H$�D"�H4��e��IА_^�����p
�ʼnL���q��D�x�x���C��L��h�.c:�6����rc!W�m��Xu�6������='����lsw�,��ऴ�
B4,8lE�Ӌ�t).)3�������u�AV5
�ȯ��<}��� ˑq	�v�g�h��R_�Eڵ��#g�B�3Yh,�ث��;���9_u3�ݖ����U5���B�ɀ�l1Ps#vr��P�}���ģ�ڵk���gΜQ���ׯ��ZYY��������_����Q�����Y1�իW�]��J�%%%i��u���+WΜ9���v֬Y���_|�ū�E����{��a�T.^���<x�C\]]׬Y��ˁu���H3�Z]Q
wrr233j�577w�Y�D"�H$�D"�H$���%���;�)�q6#�%���;�)���cݜ��+�Z;��L�V���X���5�MX��� }�
�#�V~Rr-*ޏ�����;	�|lfm��Y���ETL|s{W�ȵ{�r�g%dS�$������ݻ�������s}�ԙ��1�*49{��p֜��ǰ@�����p�?$Bh2�	�!m���2����͉+ِ󾋇���چ�^��6{<��J4+Y��_�|ta�~O� ���"��C��3��_�9(�۸%_@��WJ�o@�V�����uTPP��Ң�qb+@����y�ӧO߳g�#G�xzz���)�LG�1V�Z�njjd��������,777����������,L��������8�+**`ĄP3�>�oܸG6� Z��' ș�����P-=<<֭[�����Cppp��@��6�www'Q���.-��}�رa�H$�D"�H$�D"�dh�������Y���1SN~/KV�@a��]�I��}'�5��C��w���y�[��R�5gK˫*�ծ�ܔ�>
L
�26����PEK�8�J���bK��z8ފ�9$reyU
0���w�T;�{��#���'��X��4L��,sk5A�j(6����&,*2�O��6%��k,Ր\^�5����/���
b�etT\e�[�_�p��̼T�`���a1�Q�=��6Z�s��Px4+d�\��	�6��1S`��=Y��
L�an�߉��ykG���xP�?�F�u3��kO����1zo߯@�<���*<WGd:���7�.�>}z��b4�� dY�lٲ+�G� ������GV�h	������
F#R/�2����˒���f�� l�!�C@�f����ܹsG�Ý��������mܪ1���+��POGUO.Fo���"�H$�D"�H$�D�I�?�B�2X��t!�A��'�)�������.�6N��ge�@
��s����8��
� |�)x�|��B��4�FM1��cIX-�¢���W�U�} if�L0�����F`.k{GՑ
Ҍ�j㔙]�T{g.�ZK^��ꈘ�fc��qVN�,�����b�6�(hy#�+�"�\�H��j�`��߈V�o@��_!>�_�ghhɝ8'����{��%�z�d�X0ܖ��o||���`eŔ��_~��Ʀ���x���˖-�c��Ñ��(++@WUU���]�v)�M����/]�D�>�f���T��m۶+W���
���
���E\�ppɀ�D"�H$�D"�H$��2����zƔ���L�6��3��X�J
.�{��j�nj��� fuҶ��qU�M�W�G��Sn�1���z�t���C��@֩�k����{�nv�.�o4����~����=F��<|3��0t�W��gFN����g����ڋ�����^�z��]���p�JCi�5fR��C�!A��\sc!��������洴���G4\X�2{@@���hll7��);uTRRRH�@��A~��`��;C�!��h���GX0�ϸ�����Ѹ�A�d�`'�zX$�D"�H$�D"�H4Г����O$��sO������u\���ӑ�W������,�\��-������Cw��O��єG�F<a�
��t�ʭ'c��}�_�YG$&���8Lj���������F&ƽ{��ǏfҢq7�Hhjh�BBB���t�0�}��
�5Mz��
��_��4vA5� S���5.�ք��΂gϞMz�VO��m: ��pX$�D"�H$�D"�H�3]B��nfe��X�~�ɕ c���X	a��ODZ����W��b����?q��[꧄Z��lC��e#<:lJ@�wB���Ύ��Q�;�džo(�
ᅷV눋�HFw�|�#��bTd\�q�
��8lii�
����W&�`=44�kvv6�������+--�@��W>>>LA��b��ʊ��%iz
Xwuuu������1_�^�����+�^�㡹��߱cǰH$�D"�H$�D"�h��Tq@+4qơ���L�Aۿ{@,Z�?�~W��8��[ڧ�	WMW\���ѻ�|�����7��.;%]��蓿���‹I�����k&您
333��G�Ufa�0_��D'�hA41�@d��_����ŅO�b��*Ԃ���
-�����(p3�0q�Q1#@���t���ksO�6��g��{�n��7�|�+���pjՒ���PƂM�4d�M���ڀP�S��HP���?w$zzz^�|yX$�D"�H$�D�f�^Z�
�0��(�g�]ɂ �"
��AD-��E�H���0�邐A�,�E��njQ�.b���ԡ��R�83}0p-"m���[̙s�s��^>����=�k��0�m���{�|y�h�ڽ���n��9�>x�ֻ;?<z9���vND"1t�-GorSSSOOOz*ږ#䭯�oll������-���r��ňS


ѪAs��ȯ#8N/mkk���H˦��������9�~���y�����a�$QB���akkk��������\Π3�L�E�S�5}}}i�H���qߖ���) �6��Q�?55�?�w�u��'�i���@�';�m@40g�{��l@4�u@4P��h#���fg���◯����O��
��ɩ��|qf�T(�@�1�nY���]����3��GO���}�u۲��d�������v
�>8t��ɳ��_�y'�����H�76������t�}w���Ț��I�lH�oJV�&+7g���y~'"�Uu���d��Ek�"��x13���6�M�����gC�O$+j"��V�E�[��,�ؿ�:���._������b�d`p�W�֤�s�O�Ћ�}��^�o���OSg��D�D��{��H���Ŗ[������yʶz�RP�)�
�\���FQ��dS�lK�Ɍ3��1ݗ=[C�&�����Is8��<�4��7��JDDDDD�޷�`���Џ�_��\*Z</���]��~��CDDDDDDDD�*��R��4LJ@?��uI("��7�Tӓx���������؂���{@����$lQ���?YMDDDDDDDD�o=55�o�3H��9@3�&""""""""�o�ӧOY��4Ѽ�����7����c�k�:8B����S���D���I�W���gY.��@3�fMDDDDDDDD�4�Dy~V@��Z�؃�]&�3�s�B��5���mY�	IaR%vb
�'�X�؎Th��.qrjb��5l۱gYUlB��ʏ�5�Z�q}���-+�8h������������
�Q�k��m�r���������﮿غq��wV
��I1�ߞkC��o��oc%
Mm֬��`��I�f ��@����{���,ivT4�a㳹����X��O>
�'}��'�R3s"�Q�����ǟ��֊<�4�	��_�x1O3����������=�lf%DDDDDDDD�P-8|�EӉ�¢~�
$�U�j�֞in�r
�r߼S�}2SoF,�Z`�m+pw�bcv�����_�_��?�pq��w���������|���H�{8��-,�i���bB�-Q1��]�*�QT@������'�(.ħ����J��O�3n�Q���r�� ��3��..Ǎ�\��㧆n�Q���Q�1��˪�f�l�}�x!�Ŝ�1{U�@����޽{###w�6::z����A���PEE����_�arrr��/_�={����ٳg�*KKK�9"~u��\����z��������h�~��(Ui}��6mF������2U�Z=�[�B�w�#��<�C�[�r��b���zCXl'$�2r
L�L��Ƙ�.SG���3GsR3�Q���_Y���d�g�<��r�e+C�ѫ#�mln�^��"��k
�D�
+AGTm+WʼnX{������m�,��D=.ǬIRk�q��
f,C�֢!Fzv>���:�-3w��`b��1�ru�т��f���4�)�*�iM�\�h��H����k�s���.	��EŠ��
�*�$��0j��&��s�zm�3d�ޔ�.��J6�Ǫ@3��^��nW*�
�B.��T*�NW\\�Z��t:5
�i��8��j���[�l6�����<y�m�Db2�&&&<��ア���v���;<˃<DDDDDDDD�-8�
��o�/;�|E(�Џ�䚘3
M����GEu���rwW�-2Z:z�|�Oe4��]{(������s���;�uFZX q�WV��s�g`��Mmi�s
��HYT�L|3�p˲��,V�L�@Lo*ڊ��v�i��AJ^w�g��	ij�����T�����VT#b�>q�L�E��H�O��GI���Wz��Ɩvd⇏�b͸���oǞ/E�s�_�iS�W���TM2&&*�	�lAAEETdY\�E�MVA�E@@A6QAј�CT0n�X&:��&f�d�p�NO�F�ULj�����s�{��m����9p��]�q:�Ot���j��YYU��l{w�����,�%9�x�Ij`O�UIy��K�m�-<Un6$b;s��B�މ{3��m;�1��pu}SAIYs{w��^��OJ��s�h���w�ʕ���gϞ����G���cLfAnn�…���W>��E�>�裉���+  ���>���͛���뎎��q�ӯPIZZ�r�ʕ�D"�H$�D"�H$�D��^�:��e�I��Sޝ�eڋ���;�`�s�θ�KA�S�e�G!�0V\� ��[�Xo��-ڛ���Y��rrs�#��<p�}�5 �d��ں���Y�t�;B{��Y{j�������B�)�M*k�ڥ�=���a���.��t���N��9�����mݸ��,l+���N����}C����e�eG���F|�HmK�i��k8Ξ����7:>�����RyM=Of��ڞ��Tg���_����n�o�I�o:�Tj�����~A�<�ߚ��M��9:+��������S�
� ������B
����I��L�h����V�
��o��nnn��Θ�'h�ݺuT���2旈Aͅ�١�`�O�|q�.]�w�_�6��>3�I�{���7n����w���c�ҥaaaԣ�JSL��"D��й�4S�n���E"�H$�D"�H$�&+�ЀQ�,6^H���5	�i�}�G[��	�NH���7���Bl7m������o�Ə�Iyaa;�/0w�b���9���$;��!mC;YN���]x��ә�$
�/'b&�D�ɶ���)��`plc��piE
�LR6�h�@>R�ѴU�.�+�HmRɻ3g��ad��/�Yl�Mm'�W��H�Y<φ֎]��V{���u޵g�J�
0enm�_�'�gS0e��r;*�8��܅ȝq{G��xt[��L74�敞�w�j����ѱWSUضh������ttB�;zF�@��޲e�@�u�ց�>|��?~L���ٳ��͍��H��T�?"$8�����all̂�������:ͷIBN	

U�k2��ϟ�n$f�all,_zWW!!vvvz0Ŷ*��`
,��II�����4뒒*�5k%���,��h�H$�D"�H$�D�?Stǩ^�VԨ��/
��7�P��4�_�4(,b�\�37 $TMF��l�,ث��M~Iٙ�a�"g7�tckWBr:rqIY�53���_��wtJF�и���nS�`�,��n��[�1�_�p��,�P@�f�lk�e+rB0D�U?��}9h8��V4|���ʃ¢��A6�`�Lp$;�e�i����8�%�#�+����Ymh�_�%�q�J��$M�)s������O.��@�����RSS3�8nmm}*����X�z58�[ZZh᭨�`V@���Θ1� �O�:����ƪ���P��s���677k�իWGGGIy���g7��M,π����o��{OOO�˸����?eʔ��&~�ؐ�ꐐ(�r@��������ܔ�Ax��_3���w����ׇ�z�Ν�s'''�"�H$�D"�H$�D���:���"8p.�P�L�2`���[����dN��(�`�pU^�g8)�K\�n��*,kdj	����'���sC7qݽ]��r	b��SxP4CZ	�>q�	n։��?7�ATL�4�Yq�aS�rs(����P�6�6z�fsn�5�Ԍ�h��'�f�����f:
-B��Yq���-�Ϥ�g@�����~[{Gm����Ǝ��g�b'����	
ه泃�;9��_@�@�)��.�ƹ�Yx���C��
�A�؇A��/�w8�����NП�9�Wb���z===1��a�,Є5'$$;vLhWW���Ƶkײ��˗|��C�qC�����ܔʉa�ٳ��*̓���Q{�Ȧ��'O�~۶m�t�q��ٸq����h�H$�D"�H$�D�I��xEM”��x{A�����yKh���MLuY��J&2y8�	8����@�\K�>�5)�]V���!pL�=�+|L6��4!�k>̅�[�F�e�V�5�	��q4��	�,��⧵4S�&��:ęmg�[)4S
@�'hV�46��>†�0.�)(apQ骵��bOo_n���%�(�Q�#v�a`���x�g^��V؜�,[�г��*���'Z"8^P�M¶�6�	Y���[�b�������A�EDD���?k,--?��c�0YX�I���\}AYYY�`���f`jf�9ZEpdffZYY�����ɏ=R������!�
@�͉݀Vo޼g����ԩS����e˖1���`�,-�D"�H$�D"�H�g� ��}9�\�) )���ݝ����O�7qv����E�3�HJkBGg7�j��d���t��d<�$c�o�),!U��sJTLH�F^>���ޛ������B�@C���p]���*Jʫp[��e=xG�B�eG��ܝ�?��@v��_��zF�
�N4��DVh<h�Z�M=s��/�4xĬ͹�{���Yߠ-���͡�}����sL�j��τ�g�}��_؏O�վ(�k������/��_�	!7�>??_��=jjj
�
OOO���O�;C�ɀ~�7��aM2���ih�s�*�uCCCLL�gΜ�����
GVb��\N���qa�O�Ł������X&h�H$�D"�H$�D�Iɀ~E�B�1��`�:)�8��J+{G���!� T�d1C��������^ҍ�"d�d��rw.�}C�$+����
�e
�}
uB����LHM�h�XU�~�A�z��2k��=�Q���f�����hk;��74���oËC·[���A�
@W�6�5��@�����\@sG>����(D������ �2�1×����M�u�`wN~1��f��^��`$�ki�ON��A��_���{{����Z¦9���"�����zG�n��adʶeUu���a���}�_\Pۇczc�6׍l���3�}���ݕQ�[y��@K����p�gh�š`
ij%=��g�hr3���%�Y-#0Z__���{��A��(���,82=�R0k`1m	�6))�w���L�� �<�d����)����~JIx�'���P���G�1"Z$�D"�H$�D"�h�2�_�	!dL�-�;�@�'�:/�(����v��;p�2-3��e����2�,�8�D@i���+<�V�;�[;�p��u�j��*����&�#n�^� �����á�Vy����M��ĦM �4�u�ė
AVuzo
"��Ӗs��R��&�MD �Jv��b=fJ�]����7ԛ���&N]VU=�Gs/hqmS+W�[�K��#��������,�)^%�`/*-�2�m$5�=4j'p��H�.��W�Ѱ�-;��q"8
�˘"xDh����^��~q�������;6�bt��8����/g��c3-Ǧ��nNI7���|���!�b``���'�D?<���P�/����?Fᕆ_〦� H����n(�K�ƚ5kh���b.������q=c�>p�Sx�I��*����0����)��D�O)إ9W%;���)zN��qQ�2AY[[��g�?t��\�pAET�ǩ74���0bc�-�D"�H$�D"�H4yK\g�s�g���gMAi�
B�O�h����/������Ĕ5|y�8K�?�ӲU�Xղ��6�h���z�) Wf�,ߣ'�5�,�Χ�!���]�dY��mcpf���ur��y�`����:�G���4���l=��܊2�wS�[�o'�{��Iv�j����~i��ɣ3g�G'�Y�wk��
�EczV��0���_
F�2�nfw�����?�ÿ<\��������B{


�HCr�$5� ��)�2(Y!]𮅅�8�ilH����L���nڴ�k����ә�`b�H� �Y!lF��f�4��t&$��lggG�D�9�nt���XM�D�*j��D��I�O�ȇ~Ȇ��]3͍�f�2g7�P*U�
@�6�&�$�D"�H$�D"�H$��v��z��Ά$c�qn�<±�S�S1��'���T
iչ�OQ��t�3�48ryc`���l���^�y�Y��EN�GI�?|w���U7<�*z�}`�^���,*����ɇ������{�<̚�r6�~�hE���hhh�����'5�SSSqU��A��;ww�����,*//���;�������0
���ի���ykƤ�����ʊ�
�$��5 i>r
��DQk#�7o�S=���)��%�n��%�>)))�r�C`��D"�H$�D"�ػ��0��G"�H(�C.ac�$66�c�b.3soM,�ݯ��yz��?��T�#��l�?��K�Gv�g1Rq�\��]b$������1!]�x8���/�/�*�L�`<��׋�>f%b¸Q�����kվ�@5'8�_9��f�?����}��jLpԾ�:h�	���]�7��
��N����<�����
tEQx�h���h��m��	�<ٻw�(�
�,�|��`�eL^�&P�~62���?@�Hy^�a4���;�M��蔒m4�#�&@��#�f4�.�M�\@�-@�h3�
�!R���ay�t�+e\����]ws��~u��v|��o>��[7�M�1W���C�`�L��Z�0����j�"E�E��EQAA�}E�,*(  �lRHBX�� kH��:��Nkպ�T�����g&s�q������&�;�ys���3��>����\2�1����i������muڅ�5��a���
����>:m��F��"�x��5��z�KMM!�B!�B�g�m�k2���2�	ܧ��W
���iptB54z��+;W����*���n`bek������Q���n�P���WS@S@S@B!�B!���,B8�h�m�Ȼ��e�{B�DF%�dT�5�G7��wy�A13�6g�"�CбTo������ո�4b��'Z�&bD�0��yt@�y�R+��п8��մ��qm���ƌi
hB!�B!�BȂȀ�����;��vj�R�Y�k<k�3O�\,,�D3� �������q4�i���}a��S��ל+);��슂&f�m��IH	
;��z*h�3bk;Ǡ�p�

5[g-8nT��޸�!4"
'���
�	�;(&!9��-�;�!8�b�M��И���#1v�\�)�	!�B!�B!�Z+�ӳ���Z���lec_U�����/m�.�>���T�ݪ���Ne��������i��mS�u*� 2:Ng�����R����}ʾ��m;ܼ��X
����
�(�	(�Thjxd8eHp�CRcS���V�o�߆C��+(�R
�Sg��8��u�� �˪z�/��q.���^a`BMM!�B!�B�B逆��h֎�#C.+z��׌�%�
�I����ˬP�AO[oq���y4�9���T���{��)��}�>-���_L���]idae�M\\^�7$lohXAI9tj��%��~{�q���yO��{C �Q�xR�����!�c���
EBv]�b�
ݪ!Tp�����۾s�u��W�ЄB!�B!�P@/D��D(��D4/;8�!^�ȿ�F��e�;�~�h)�G���q�D��y�NۭN�wl�q3ږ�Eg����
�u�M���Xg�"='WO4Vc32��Lg7oDp�aي�-�u��e��a��h\	��
M-���lgWOt@#pW^ZY�ʿ]�Q~"�zh,<:Vߐ�R@B!�B!�B=��&�a��}�d�
�_D3�Η"����Eލ
:x��w���I�z�H̰��~,!Y"+/�9��(..*�/�&Fv��p���f��w��Mwt�"I�z��{|j��������|;�����|��-�uMmh�njW�
e�6Xc�����H�@�3�A0��Z�X>1�y�П�/؛�}�VC���D��Ok�B!�B(�?$��5��eq�
�Haidtc��PV�/��6��v*)���������0
V54KJ�r�Et�t�
�q���:�g<����<I1$������+�	��|dk��:bYϛ��3����C��YE�:��X{��M�Ie�*l9���\I��f@�z��̍;���������7oQ�k�RsϠ�K�7n��{�N=�?�{�90v�Լ���wP���7s��x�鍻�_�A��C�~��?���y���5?y�L�w������!>���׸�.��B!�B!_p�6㵖�V@#�����X��[}�Ј#XH�ˈ�p��j�U�M�.n�M�1ATt"X+��zw�$�q���c�����-�`�6g�����"�����v�P����gk������i���wz����`
DK[ZoV#��H��0}��wy@R�*�XX-�3��զ�(�ʘ��+���#�E���ai��������&Ń���ѐ>U���S٬�)j���jW�h>��psO�ϼ���
I���<��v�_��jW���?�y1�-=������4�щW�_k>1�f^�U�+����v��O��.�.k�|��.������w&5��N�o����t���=�,,p�=R_�q��C�����_����ɩ����'�rB!�B!�Ђ������A#
��wObjf�B	�{�h����8�)��^o���p��gW/�$c]A[g����h�>uF��g{���%H��v@c�.������5	���p�3�"\	�<T
��$�������SR^�;p�u�Of�7w �c����Z���B�N��26��9ׂ�i,?h`b��~�#���7�_������~�;�cWZT�I����d��f ���������|�L=���k7?��Ç]#�ݟ�{k�=m����,�g7�#W���~k�[�P��B�9H�F�Nɻ���pYSn�>~����DfI��w�g^�K�U�N��=2.�i�;�)�~�#fy�/��q��k�9.?�h��?�w�_qm�B���t%$%�]=,�A>CV�&q��v���v�.��L� �B��޽�v}�w�s�NӢ����R٤iS��S5����v�IH ����I�c��6�nl06�����1`c�
l�m���~)����>�S�6.Y�����7��\��9�+�y^~�1bĈ#F�@����m��(s0�����?^���~����?���̸s���=,��i�τ�Z;Xm��\;�knji��85���D)��|�I�]"�v�>ہ���'�W��˯{�j�J|������{ͺ{��+����]
�6�Z_��z���%��q�AvOs�avHw��'���'��֝{�u�.�A��c'��]Ln>6|��İ�����x�3&UM�
;�ߺ3���}��5���SΜ�t������[m=�U�m@����
�Ҋ���>x�N��O���Ӣ�<�7|f���{��?��>P��&O�9���m�W��Dp�o?�����ԹKx�惻�t�ڸ}~��Ubp��?y�ј���k78��g����c'�?AA��?�z���7nQCW7���9e�Q���ʆl��?x�H����t�����	 N�T�����T`2�vI6(ͷ5�6�y��hN��o��9�ܩ���p5����6�hz}�Z��=0�}�֝cC#�����w��Z���w�]��t���{�d���n:�
�2��!��{�U����q��Ç='N����Ro<���{��8$c�ÆDg��K�
*���3a�=-�-��J�t����%��q��zyAZ��-:�v�ho*6(�G.~Z��A�Ye�}��x�؉��g�#�!�v�$��/�<���{����b0��3�\��}�AD��H�1|���~c���n�yh�M���:�p����7V�q$��,�N��r)��#��
WY=}���+���ݭGƯ�P�G,{�k�L���چ=��Uһ��g1Ck����쥫�r�w��*O��ܺ{����yY�>Z�A���]�[M����'B�.\�&�ێ����ȉ���?��9�E�1bĈ#F�1bĈ��;w�<�?��w���_�я��*}E�:�a�E)�ޚ����������GR�a��wޟ���3������w���|銴���g���ً3H��3�g�sλ~�߇�SV��<k��~�K��N��_���xk?�^�M��.w�ԟ�8��Wg��Z%}]�:C
l�H�ګ�ѥ�����_��Կ�����K�����G���B��YO"��$�m���Y����Ԃ�%T�`�y���ل‘�wV�dP�ʢrgv�xea�i�g.�`-�qo.�&�� �Х��݈g`dj��ɻ��(US
��n^�W�ljW��8}α�5�,�!����{֒uJ��<�R~�[x{e�J����S��>[�rd��L�ݣb9��<:x�۱�d�A�]�[�𷏾����^D�d��_��F�P�U*&[
@�s��{�=3�]ZPX-�'գ5O/|#%k�7��X�L��V�gl���]Z���}?du�F^���$�@�����9D��ϩ�{/5��U��.���s�������)%}���%�I
�O+����xl]���ܤ����i��A��ڷ�稹����^�pV���p�ܥ��S�gn���9sq�E�M��j�,��C��;w�-�ޤ�����_	@C�������H�N��a�FNRI;9wM��^�r5�`���R�"�v���X6�yV�6t��ń�����xݲ�[��tA��l6q�P�:�k��~�&u�$Ӛ��b��z������&�d�,�)e�m棌
e�I�y�QF��zyE�V�6>U^�N���j%�Z�0�5n;�?.��?��MQ�@���{K�1��L~�n#��R�9|�FZ�Ѫ�mY�S"!�X����B�4K�J`���K�o�Jׇi���W��U�1bĈ#F�1bĈ�зo#�+z@���ɇ��7���NN������v'j�"Ȩ}����&�
q�;ñ�P��<N�tVZ�"�op��·2�	��H�9���|�v���ب}~���\r��hi������̲�d[����<:�Q�hZkw?Y���= ���/^���f7غ��h t���ɫ�m�86S�b�+
��S�/]���]}A��n��4��۲�+Vo�t����J�1ު�@�7�cg�5Ui�0����8�c��#����q{�G��^��D<s!�b�K��RO�l��U0k���/�d%L���džN;N/�v#�x�����'����m]����Y��y�jN�{����)�
�aVy˫��#{�5dBi���=�䪆앙%k!9 ��f��-�խ+ۡQ����F=����h؏b���'N�K��T�.���UC��U6�ǕE$�O�7��UF�2i6���ީ�8�۴K���ez��UZ�J�qͦ*�����X�E �>w��o<�mD��`�.Uw�kW>�ɳ[{��X�Xf��ZV������~�n�RT�F{��iO!��#�N���!ګ�ư���l�1�Yε1lr�n�v����2A
*�%����C�~��g�,�7not?�7��u���yݧɒ@0�j]'�x���u|�XR��K�'hCΟ�5��$�\�w�Ǡ��WU�P�r�#Wt�v����/��1��e�5�6�mɧ(��cm�y���z���R�	�\�*��K�e;�n��y�@�,���{i�qd�h�3C���4l�����
�,ۦ�r��7���+�4^~R7n��w�t3�MX��1bĈ#F�1bĈ㙵���z?ʜ��W�9��*d�]�y�����D�mI������.L�Lu[ck0��@�Dd��<��ʩ����F9N�?�w<&�>�i�_q[����W�r��¥�ށ�)Y���(Ʋ�{2�l -|����Ϯx�q���f|�Բ��h;tv��惔�P�>�zcJ
�9Vg���A7V��s�w��<[��٠�
P�#w}L��!�X<(��B�L6��̲��EƢ��Pp��)[�Z:���Qf�\�*��&��8"|��Հ�e�����cP��\�zv������I�x
�,�����y�@��;�C���Md�rvEQy�$��Gk7����\��A5	���>��Y�����O��c�e�W��;�>h�w8�ʂ� l��<��l��X��.��3�9�7d^"���H��Bf����Ӕ�(s:��Ҩ�T̚���&�tH�A�xŲi3��֊�#�G�D�2�ޚ��-K�Q�NC1�Vѻ�n��#�[�M�k7n�:�7�5��߰h��!i������
�8�V�B�^�k�%N~mȱ��a?@K/d�2�N4�rC�c�0&���L|S2�1bĈ#F�1bĈ�,h����il�<��w��
��vW�F�ǂ��>����aA��8�H �{���ZG�?h����<��MT���(��Ԓ��O���;)�U�J48�8��@�c�Js�@Cix:��u|�%,��1�5WU;���z/El'W���JW%U�[�q��
@�b!-���:�;-.����rK=�$F�0�TJ59�W}�q����O؄Pz������)��Id�Gf	H�b��S�}*7�D�+"'�_C/�@/_�uQ��D%
��@�(y�G����7)��C����o���U��j˰8�]F��)�
%Hm�I��!A����V̅wW��T�y�8'	Y���a�Ew$^���D�0e|����1�����sV�0��GK�(���<������	o�C��C�EvR[CםG����
o7�	�V��f3+�
gf�d��a��a(ZX�ǵ���6>�ɂS����3��w&�Ɣ��Jj�ǚ��,��ݺ3lB���'�O
Ǖ��%V�&h+ɢ���u�ad��O�pg?�<�1bĈ#F�1bĈ�+�#����ނc���cX
�
�<_m�@��V'|gMqhH+��D�-�լ������>����m�5���RpgB���X0嘒��qB����b�㮖"P[#R�2�@�бI�B[�YuP�xs��D��!�S�+I�ݣn�L�C*0��;�?�*Fܘ'L~D��=�X[ �|$��#��yW�NQ��5�I
h%0�H�����!Q�掙�:�4Z���/�Ur���j�yy���n֊'� �ƈ�N|_�{�}�Z��i�%�
�4�����t&�� 4�m ���B%-!
Jh�5BM8�à
�m>r�یU���P',5���D�F`

#ש�Xj���Mj��6-
�o�>�}|�7�a�]6i�X-�Roy����� �0h��^ȸ�c����
ʞ�3�����ѡSF]ZI�6�<��a�"?^g�l�n0����R�x�c�k��ً	����GП]�@'����z��1m�t�]Jf1J�t�1bĈ#F�1bĈ:~"��3ڄp��R\�r��*Jȶ"�a/%����O�[+���;p�c�THb���rB����c��k��XX��8W0>��7n2Ę�aY ���.j&���.y�c!��䥊��'hV!�_}�>��c�,մ/Gc{w8>64�Q�;�g���.f�\�z�֝���E��x��v-/,��fn�ʧR',
li!�|2�^M�;^�-�t�t���3�S����5�_��{�W(v�㴀����?�`�N	��N7/+�
�S|	��
q,4��Wм5N��8{ �����-\
��A�Η�Nَ�Ƀ�e��=��T5��<�T��jy�A���r}i��g�V�m{�qǁ {˩����7+sX)�=�[!�l�
1�9r<@����	��^g.�|i�7�&��|	�Tt�8�ۼ�`o?7��Gz��ZМ`0�~t�H/$�x��Q�4��cV�f:�.���ܭ�<k�$�1bĈ#F�1bĈ#Ƴ�	a���h�|�y!�Ll��|�Ӆ�Q`�,{k-��ROtᅓo
��LN.�1fd_�������v�¢�63��l6+C��J�
�[v|�Q�Ё��L�t���+V�h�q�ٽ��:�Fé@$-gUcKb�̚@!j��]N����O�O��;!9�E��Xؔ�y�O��l���a��W�NڄP�V{�X��^��0�59'���5��r�`����>��)[�m(��"�+
+
�4j���%��k����*y�PO�c7#�AdjI �\�o��T��Y���Xt��J��3�$
)�‰���Ḫ��㹁�����J�^R-Et�X�mNNH~�����L�ENY�����AϾ�8C9@k���p xβ�yY�Ɖ���:�4��
H�͔lۂ���qe��6D�?�(dV�F���Z$]	���dI$�;���f�a``��2xt�� k��o)��S%��[ÀOj��hY��
���N������qwL�lR�&�,�lQ6\�GhYUxpg&��Z-'^��$s_5�ZB��	}������HP��d�8��<�GQu���n��]RC�[݀�@�mH�>�lx[8*������
�@s�N�V;d��"��&��h��8�$Ƅ�[�1bĈ#F�1bĈ��:~�k��v�M$��~�а`���.�	]���$>���>p��⪺q[��A';>�Ɣ��u��`>�8�_u��K�v��&��
�@�����\��^�%��]­����T���E��ɕE���Wԑa�XL�<91��P?���lNŮ`���x�JA����N�@�
�r�q��e�T�E��q�� �8�҂2d����3�t��q�rqc|�;�XX�-�s^�J#���"����Ӣ�S�srCsG/��ə�~����27᰾�o�x"�m!�?n�+��4�	�1|yy�$��o�G ~:eb�܊�d'���z*Q���5������ņZ"ܠ�U��/h#SM$$�*--�qI`��^و��y���	U5$���]�}R
��m��d~�<��
K.�%5���ez�2�XjЃ�}��HVV�y���ã$��Q=�BWm�.Y�I/�	}�>��ީzIm)�U/(�LJe���x�����<�CS�KM��j\� �Ux�P��h��̦���f��,�T�r��{�s��`T'��u[���8džO'Oь�>A�m��^aK�P�|�v2U��Ť�-TF�����6I~X�d���v��1bĈ#F�1bĈ#Ƴ������h�?��~�}�����2��r��9N����\� �}���»��HV��*���<b�1}7�e*?�&D�"x�G�8}7�g��Өғ�7M�S<U�B
�ut;��6$t�O�����'dl�`��-_Xd��#������D�S��'�XN�O��>�����V�Ӊ	��K�n���E�1bĈ#F�1bĈ�{@G?@�y�%�$
��K��)4���el��E��ۄ���/F��a�Q
�(�+�0��U�Yf	&���L����֩����p�U.��繃�����������8�6K6�E��~Qg�-~|�n�9��۽i�>��Q�fN���z�B3�
�ov����z�=�6�W�hQ@��x�oۣ�Wj���7�Lp(�E
x	�(���ZD

���KE

�w����(��(��`ZD
.�]@���݉wUǝ��eN�t�8ޗt'v��$��L2KOw��nO'i��m�f�w�X$�]H	!!�����}�� V{>�F���"�;��yG��{�V��W���o��ޝ�����@')IIJR����$%)IIJR����$%)Iw�v��~��Ӽ����{���w���@')IIJR����$%)IIJR����$%)II��h ���<x�C��|��߿�އ��?)�|��?x��>��_<������n���t���η�j;�s�|��?
�>�rtˎ�.]�,II����Pkî���\�55��v��J��W�^=s�ܺ����Ү<|�Ħ�������_�X�c��cݽ����w^�|�iD&ecS��Sg�u�v����Ν�,I7L���Ҡ�����+�߱���˗�njln=q��,ϞUu���(�W����
;�/\��L�#�N�m�r��SV��~��#_y�lٶkoh��A:�1R\��m[�%�zkӶ]����h0������nS���i��o?��$%)IIJR��tG�_����-}����6��W{���hɲ������W߼�!0�OA3��'~��•��ϷgO�,��;��&�KI|��՛?Κ�r߱>��Q^��K
�8y��7�N���v�	1����G�&�鷙�k�w��W�f�<�τ���'o�ަ��=��w���_0n�´+�W�ycH���*��K�v�;t��x���y���'M[Z|s{�}[���iiY���@�;�M77�z��hV�kP�ū׽:p��U����w�=��}(��P˞nbJ�pϡ7vk�f�/���p�-^�z��s5s���T۹z�^���v��ѱ���������W�dX3�-��n�]������<���׭�:a�z3���kd��Y���ę��]��g
g����T�ș��=���s_��ϩ3L��/D�O�nk�>�5��),���q��n&��������o>t����w��0�e�2���ܴH��������!ՔϽ?�ڄS����$%)IIJR}�0~�w����4�|�ͻ �o��P�/�f
���O~^S�у��+�]8�e��E/��;{f�ښ����b���˿t=mqq��B���,qP�5mL�q|�%�6R�܂�GO;w�B��O����[�E8^�����Y�Kz�AgNg��9�eo
���ti��6i��v���)3������{����,_�ļs��^�7VC|
�b����M�_U�	��:��~�a���s���u7V�4y�'vk�a͆�"=o���J�M�v�u|�t��Ʈ��x;�<u� KR۰�<�W�߳QmL�d��Qx�cr�L��
]�r�䙳�5u��9/������cw���۱�K��u+C���͵����z��^�;��Ey�ٰ�|8����+��b~�`�s�ĤW�5mz������_�=*@�n;�wB��y�"
�6�߄�?{�g�?�Y����$%)IIJҝ����:��|�Z�����'N�n�|�����c�����>q��y�:v�v>�����w_���~����
����t���:����|b!��O,&���)z�����?#w8B�~�o��Б#ǎ�7�+esܲ�Oſ����}cd(��м����q��=���������.�U��3�v����5���[��vӶ��o�vc��-M��1Yv��ag��m'ϴ�h#D��o�P�rӶ����*�F[�"�V���`7o߅ X�s#�wGM���ܝ�ti��V�x�p�y��ٟ��n	b�Pտt��3m@��7hnb�F�a�2l]]�!��%���;	`��\�����ĭM�6��?r�%?Қ�u�t�R�h�\]H�r��!�Sb�*7���8��5�[��ح���Zd,�sȴy�<[O��f�"=y���s�����Ee*j�|,y~�tj����g*E12���&*���5�:f��W0k��(��M<r�†����+J��fkS��Z�M�W��y���U�7i��_8^�ꅌ�$��'*�����cu�DPj}1��Cε_��[��8�����5u�΢2+s�k-���O��Öƶ�E�����?bյ��{j�4��*B��A��@,�i���MJ��P+��-P~8i�6��ug�bhSM�|�ҞgGs��-����ċ)��*�+��J�rCƼn
�͑����[�B���x��n��+���U�z���O��``�?Nf�>}!=ܰmG*Pc�U���"���F44�F�ϟ��i	��3]��K>n����fM�7!oC�.gM���_RՕ��&բ���?e��j��9��B�k�v�{�z����SXujf�Ie�D�;g��_]�]I��h���m��}��Ϝ;����*�������P�4��'C�̲�y��3쪘�ek֫�3l;���V��=T?
_�ffԺܣ@W����]R���؍ ��:�TbWA0ЃC�����_�]X�!�� �e�fU��al�]�Yt����b��'j�L������ {��F��L1xM^P����Mq䕂)F_�W�YWݹt���ڼK�]��>c+붥vM�U0͆x	Y���n�n]u~q��������o�萉J�-��#��g�:�k�	�6M������}r��.� Zi���v�ѓ��ІuC��j�'�]�
�!3�L���R�f|��˜Τ�����z���a��ZS�&u��M��[�����iQ�z�4eBbi��y�7=�L]X�H:;e�j竴�x��2�����u�$%)IIJR�����@���@��w�㥭��������?���K���fϙ�����߿���E�F���W�5��W���g��z�-)-۸���r]��'�z��<����}�=��
-XQ4bt��|�[�?���o�,.�0i���
@���O�|��e�W�n��{��b��z�(*�;`ЀAC��kf���S?q�Cw<Ntj����¥E���������?�	�ٜ�|��s9�<���Io� �rˀI��E�Smص��c��U��~.�	f,-��3��O�G4߰�ȑ�[w�q1 �s�d��yw��<���9l��E+3����T��G�+:�	_V��0����Iܘ����͝�j�0#J��8�!X�b�3��Y�OpO�}�J�(O����|$\C�d#&//�N+�9�ŕs_4~ԬŜ���_�nctwG�-��D@�J�Q�p��9�<n�r��e��R����kK�����z^�r�v	@�x�]����6]i�\�n!6�W}����%+������ 
zcp�9���2n����V��-�N��5}m�8~;г���G��=Q�!�M!�)Ÿ���L���z�ș�B�&��)���r��'N]�7w�*OIЕl���3:tf�;#&љ���5n�[��5�UUV��[
�<]RzR��'C+�x
�0�M��;���9���b��a��4e�3+*�_4~��U=�y�5�֎��;�,�ol����KKt���Ҕ�CS�)���%����N*�� �}GZ�T���_2`��&+����tc��S�P��y+�n(��#��3A�iŻ���Vo��r�<�����h��!��f��J�=�B�ehߌ�S��i�K��9Zj�B�"�7�E����V�yU�Q3�/q^\����4�TUSI��F��R��B�J+]�2>B���!:zIJU �
4��{�̾ٳL�1���O�,L�@��M掟:��*�V=�Ձ�M[�e0�=�Cñ4�jK��@=���t���c=��N�xL�Ҁ���#�6(�>6�>�OP`5*f2������LJ�쥐1��Դ7�}~a��o�=���!eP�	�W�~d����,�ݮ���`��Vi��I�,�$
SPQ�������\�䚕cF�AӔ'�ap�V+�"Nz�Y��2|�e�X�
�t�P��:�?C�}LKL_�*�"OA���F�A�3��?k���.�3��b�n��!o��`�9�J#�O_0%����o�h��+W?��Ji���i;d�2'O��q)��E��-��H�JN�LU�g]�w���u�a�	�������d8p}��	��
��$�iP��@�򬊪�&(\�!|{��e�����@���r�
�t�����uN���$�_���F�P2k����QV���s]�ŐM�?+c���]�KBV���LsR˲{�f/��j���H�<~�r�)LE��n�+(a|(!)9��f�&?/�M��c���$:CC�-��u��rЕ���+���bW��j�+Vg�lA�o�0{�jʯ���$
��lx��T�]]�!v}P��F1��1��M��2��$N���n�C����E�#_Vr��9|�љ}x�Ϙ���|ܥA�Ss��əŐ��=�Y� ���^f|TdNQ�|������,,�6U��$%)IIJR���g��7���M�Ý���_|�,����������#9���o�B�c:t��?��͛���n���<�d�*�[��?����HK 8{�Ģ�����yW*���]9}f�Zڢ�Z��;S�74n��_���w��p�SӰi�9���-#�,!�3�^�9�:n������gprEE��PQw�}�A0�~�v>'�bs\�|��<p�s�Y�t���nγբu�x��y0PAy�8M^�+�2rQ0���I�-���
�z��X.1b�<�&NY��Z'͆��.�bp~xGa�l�{g�a4�g-!��TI��Ekk�G��ޣJk6��̜.n|Em}&KR����|2$"|��cH 
�
�w���1=}���
Ɵ�V2�BE�y��SP^�Y�$�˻�V@[D���<�(��s�3!Tb�`'gmD��I������*��!����-Y}��K^t��,>00$�P8�On|���!�0:6�F
��b�AO-Y]�!��4ٕ�/�‡�C<��TM���pH@sn�^XRJ­���#�?�����)���Uj��r�ܐ��iܜe�-���-;���/y����k�)�^g
8ݠ'"�DPr��rS���Q	r�$t@�����U�LA�z��7z�Ҳ��1�7t���M�G*iB���0+73�M�i��`�g�����;/./��{���V�L�,\UA7���Mq"�6~n�F��MN�!\�p;��n�6�=�>�f��{@4,�AՀ!f�־��
ު;�\�s�.
�Ja�Z&�bO��
@2u~�M�d�.O���a�3���5l��y��xՋ}� q���v��Y�F?�n�N	�<�i�Xe�(XFh����n`RFL_�:�=M7��kt��*|?��2�k�&S"��C�*�|�Q:o���)�2@È�b3����G G9�_���r~�•��}��>+Tп�ޑ9S2n�2꽠x-���J�^��Gcs� ��d�ʩ�hJ��|�Xt���^X�V5�_�~�R�BQ��:�dbд��go�f�&
��#kaa��qz����H ���}�I�|%
��Q��e�Ĺ��}�������W�e���XB���MӖc�4R�`=��3�����:O�o�Cv2Q���kH)�Ԉ�_0h�I'�!���=��3�}'v���n%Q}p��[�͞�ܷ*�av�?H�b�0y�u̅�u|&�7���Z�$H�_݁T����*FX�a�`d_���0�*
@X�N�檩
Q�K�5���SC>r����h�~9y&G��U�7y(�2���Hs3¦K]iY�2��1��3|����� ��@c��]�s��Ld��5�M^���Q�s���H�Tq�m�Lm�����FM���BÄ�!����r�,ң�l#u+ڛ�	m�'{�^l�ˆ�0d\�/��AG��R�y�����*c��K��m��ζx��NSE�j&f�w��b͔��khH���y��@�����W f\�W6fǺ�V�HF�K�)�)�:f���j�����c�Q�uN1(9;���@R3����w���
@�K��}�.G�ꨛh/�~�Z.]�b}�����
�J�U�����A/i�޵���$%)IIJR��j-Ay�ނ�/ﺯ���m;v6��
mv?��O<u׽����B�:u/2|T���A�3k�U}�I�������9p���<N�ӯ�����z��~�K?��{��s<5w�!��/����	�sݖ����,_[�OQ��ÿ-�G�t�|�G?I~�0�i���x׿���x>q[�����D��#��kYl�u�w�;�~Eo�Q�r�BL��7.�SȆ�bx4b;��@_��p�y9��pƱ��W���2<=�Pq?��B��.
��u�s�8Ƽ�PY���:<wA���A�!p�A��b����{�wE]e�^����xe;��<���{�B�q���<�����GZ��3���"nҊ1��H�Y�|�3�iqiepw-Cư�hёaͯv�7qvhD�j�0�܀�@� �T�Jm�Pp�9�r�L��n���Fx��u�̹����#N��}N�:DǛ)Af�=�1p�a��bg�M�'�s��3���UP�8,��ي��G�x��	�o%�2O;l�;T�Z|�X��L	�.��K��ܘZ�=�5!�M�p�MN/�dxΎFwc=|����փ"���[�Z�8%$+��D���<�kd�G`�O���4���2����#r��=���uq�����9ˀ8C��Ѥ�	��P{��m�'.,R��`��yK��W�
 �0��~Y.���G�; &lA���%Oǩ),r�5(��34��
��3qwk#=���Z��d�ӿRK�1؈�d-Y����� qS��+L���,d�e�.�aa`G�a}�Wl$���;v�_����kň�J���Un=y���l0��D:ȼ���Y�	�b�-j���&a�K
�ꆟ�
�\c%�n�gY��{Z�͇�%��n������������A���t{��j)��A�h;�FC����J�=|�b��AO^0�c�`����x�_օ�~��p����#�j�a�*eF�$�6�p�iz"[WZ]��ҝ�1Xi�/�_ܖLjf���ki����6^0q]�Yn,|�+�7.%���nm��zdh���*ͭR���=�M��������7'�"��Z���R\��)�^]�f���e&�F�yj�8�V���]z�	��UI|�	Er� {��L�:��j�SN�X,q!��X-ts�
4�Vt�����8
3;��+���hz��1�B��;���d�zhtå�>�Ys�7����!�{��۶���M�}�XQ��+�(hq�gd؄x���S�J�q� /9af��ŋl8��=ɫ�ɤ�U���X�-)��	�†x��f&̒v<h�KJ��y�b:���m;G@�Q��ϒ��$%)IIJR����m��f|ݶqS��x:uS�����D���	�~�^a������ӯ��o2��~�4��;t���o��70Vx¤����9�ۿ�h�����:���L͝鸽��͞�J��:^���_�0[뷅o��+ʜ�ha���{;��~=mW�S�'9���/N�/���}�W�q�D����e��\�T
�p`pj���(�Π�v<L��RͶ�a�,�U�]�k�Q	�t���4��	��s��5yqhi*���	1ĭ��9~��~&�=nh
�D��S��qz�w������r
��V�3��V�)L���/
���AD��N���O[�q�x������.��z�%�sb��.$<h,��[
��S������iP]ߊAC)���*�(�#��B�St�4a��^��j.����6�.M`W���CS�n؅�dǔ�L���EO���b+1��f�/�7�Z9Pu���a�	�O�5�ؠ�I�ŒV�ۘ�m���f�n�+�2���
/N��Jb\ @�'�-������mP]9��>�~�����9���g�k�AFR��i*�}�
!�N�TY�-lBKƺ~�ʉ����@x�=�r+�N_��r�8��m��t�E:�RR���m��	�-;�Yc�dE{��H�h��q��-���R�è�v�a�Ҷ��"�L0nb�u��f"�
�[W3����)
u�^%L�ޚ�9���.��T��"��
,L���.[�)�+]5
@�1�x�9��NE�]����J��s�g�jFD�w��?��e2ri�1@[|#�?g��x�m�c<��X0&F�8HQ<�4/^ґ�����	�
��]mJ�4I����)b7�D��4��e2m]X� w	���0?������20�h)�_����#�VE�’Ю4��@<>M�{�[ud���G�	$D�<Ɲ0�����7]37+_T�V�E?��U&�I�*7דU��f
��!lc�k���@ޢ�M9�&��&km١:���P`-hu�w�de�k=y*�A�h74��>X�τ%��{e�$��B(���9�8�	���x�64�)��l�v���Θmp;� ��.�$+2^��S�2a��
+6R�Vȅ�Cc7f�UL7p�I��#dAW�=74���P�"܃Θ�����^�d��������e�7e�&�$%)IIJR�����~��������F�lj���Oa������c����	��z�Y��1C�WT����Fe�濼���GZ:���^ȶ56yA���`+g�ճ ��E4?��EŰB��z��+�|����<�C�Jt��L����L=	�(�$Nq�%w2dq��:~f^A	
/�6U�-@Z<TE�����ę�4
�`�!���~ke�8!��R�6i��B˖/�kM�xA�pL.6��<(��X��e5��š��u�k�a�o8B*�Fp"������D��%��*�}k:bb>$��t�*�40��l�ˍ��:����J�>�k�����t�N1"�1��Bp�q���_}`=�4���E��y�8谘}₢��dh�779���#צE��:�v�s��u0A�[Q��~,��M1��Z^��
f��������i����S~@۾9��o@[�޹�@�����Bt�X<�T��c1��$(�bG���A{5��AMXP�ʂ�D|"�I�A�B͵�œB�A�I@y�˰@7:�P%"`��0g��į ]�'@ۈ@G��c�j�������`(��q�U�Q;��쀥�Bi�� �	������oɊ�щn�I��k�T�F���
�gu.kpy��i��R�@�W���Xi����Y��c�RH�@�!#F��7}���[���z4��I+�:��F-z�K.��z �]{�44��iQ�f�@3�0�
"�-nu�Z��p�-�z���ݳ���}e`
�_�Ro�n��}��_�*a�`��`�48��-���HL4U^iBзm���lx�v��:����3��獳#�mP���4���}���g>�7���S[���>��
�+�2>4��5w��WV\@�#׻Yr9Ē`�u`��6��;3�9<9,XYa��V�G�<�<`O��n�:4�}N�ێ����޽[U]��_�MP#j5�	�j4&ik[ۦ�����Qk�0M�#:�(�*��ED��A��%L�
�<| 
U�~Ν�9����a�P�W<g���^�����暋�������y�J��[�SN'<�u|�3VL�K"�Emh�.�
��V���̈́%���HT/U�&}�&���	~��n�����`o0�"�bYTU��6�`��̉p@�ohk��sQfU��~:��vy��H͗^UZ�b�E&(�z(�@L/�#)	Zׂ�w�aJJJJJJJJ��M���)��s�|�|�s"��g�%O�|��Ј���,���k����AjQ�p����{�ntض�����~��X���5kw�عm����޼�5�G`
�qd�&��™�,�Y|�ݻw��^/����nj=�ܯ��n�_���Š�Qz��/q��ȼ��y��Bo����8�{W���� �P�
�~��i�#y��
��u�	�9�"#�q�,���#�D�7͝�!in��5ciEg���?�#��ܨ
�PKCh����Ɛ�p�'ch��h#�6���g�2}�����c� ��A����o;�A��Ђ$�1zoh�i(Vq�h��{�2HD2����1�����-��]~�X�*W��jy/�V[P����"�@/���	


_s�{`Q0h#UHbxV~@�kn\��ճ9{�v�:��D�#��hA'��s�9�;�Gq(?(#�K_Љ�.rǬ��F7�F�Z���(�!hc��5���[@�C�@����(�烈Nũ3`��e�
��7gn"�+�][�e]��ݠ���įm��D��D�0���6��&�^Ġ�@x����H�V7�'v�rq4����f�0fqP*�_��@��ؕ�p�S�ň@�9�~���NJr"���:Y?�8�A��_�ʵ�V�ς�D�̥��
��b�5y��`Η(ݴ>��"���c�K|m�&�a=�I7�!�u�+ɳ��r��V�|�
�a�C�&����K���C� ��R����!hS)j��uw/kf��/���R����-���!U¿tr��U}sc{<�X�C������U���q���@{>j����MĘ�Ϟ�XT1TB���D��!8����:
.��L��2'��ʥ�z�ƴlrs�۸)�^]�}Y|6z
vLE͠$�����dƝ�EWoM��\xg`�R�3M���;�*�mh�h�O:��|8'}�|ůE���#�tD�H,� -9�e�L�Q�g͏�����ȉ�={;Ӌ3��!�Y��64L3y�whj5�d~"s�z�z`�t1e�E.�l΢��Æ�K���O&�K���Џw�x4;3Z�A3��d��`�%WFhQQ@�P�%�L}��L�[��!���m����E���������A��n���}hѳKD|>��S�d9�{b�ܣ�z��5C��"'L��Ȟ={~p�5��pӰHDjο���������+��y"�w�mwߒ��uBpL
�-r4����]x�wn6�]
O�뜹��U��~����f�FN4ƮP��R��Ae������߉�d:��jF�PZ�\���#����ŐD���8$
a���������F �[=H.o�Gq6�20�,�C�ۘ�]�!e���rH��!�n�Q:���k�p紞7VKٸR7�Wo�;G���#'�pfx�4�g��v�hIVe�pQ}�l)3�	���Z�T�Z��g��F�f����UK�F4h�è��"���̶�oYB;�@c+�+cQ���*Pn��&�1�a�3�r��ժ�]lB�)U��g�N`+CpĄ���gk ��C
�15�Zy
_3��o�H{{uk�Lgh��νՏ���`qbS�f
���ir�E����L��ڐ����8�gT1�>�ŭ�����rUd|�ꖭA=�֨Eh8$dC��X
�&����k�~��,�7��]7���X@T�f#���e�LD��Q`(��<�͑ ;��'�����Pr;�)�A�-+�ZD��Sh#���AI�&q�y��2q�ةv�@�Z�CƯ@f@��Ȟv��@*P)��h�Rp��m�P��=#Bh���?q�4���
�T���N��<˾I\[g�&2�›x��*JI#�����n�H�L�!܍��0J�ק��Vf#^��)Ɍ$���2�:vHK��i��}��߼a�c
'�00:c>,v��X9���]�/�.��n���}h�
d�L4x���m��+��Z�-2�䪸cc�4YU�Sa�ud�We66!첨�{�d�Xiqόy��ބPccF�|7F��Z���7?���s��,}F�a8��n���^�}c3~�=WS=8lj_��i�bY���%*��F��|r��%z߿��'�����&�Z�P�-��T�)�Th��
�S%~�m�%�Fg�=��8�G-�y�؄pnnB��Q�9W�����շM�9���@[�?v��g�5�Y�W�^�f��P�z�q!H������Si���^,���~�^�E\z���gn���llc�x�`�Ѝ<<��:؇n�4�c�E��)=�&�(*�*Qbb��^<�ɦ4lC�X�����JA��Y��C�ɥ̦�~t��ؿ�i;}�'�n��@
\Shq|wD�#���"�7sBxW��>�N�6���zY�&�:3S�J�N�}��cf���ݵ���w��qv����U������{4������ɔ-�m�n�!8n�)��tT�竔T��uZqٰ;���X��T
��֧��6�eBu�(8�29�k}�,T�U���kY�4v;�(���'B��'ԉb.�#OK�.���zi�U�����=��!�?��"�Ap��Z�7���������|B��ބ�i_:�������ᙏ-_���wߍ,^}�G!8V�y�ܯw<�<����9򾀆�{��!�Α��#G������=���G
�w��t����?s�Ikй	�?�v߾�%�ֿ8|ĭ���P�N�4�?���c��@@��^l�ox�_���$у1p7�0&4�s�����w�� Y�4X��0�X�?�� ���Arh��׬C�G�7j2~�қ���F,FP�C&�>�IN���+f$c���K�(��kw�[H�5V�t�䙂�&��R��b��<�|	�q"]��Z�7CV��PL�Ρ �!Vn.�bL�+�F19':��xI��\ˍ'���!8�����tn��
����6�PpgsZ���xX��_�I���c�2y��fP{�4�����.1���)/{���5��1SC�!�ީ�|��TT'��{�@4`����!�C$�Q}V-*���a��J�3��J����f���'&�1�w��&��#�TS�����,Ɨ�T����`^��C�	
��c�:x1�Q�6�6����8��:�a���9`A�\Cr�O��dT��y#�F{)�a�̄��>�2�)X� ���x@s���a� ihS�<(�,��*��\�=m�����i��Kl�6����t�W�,���kR0}P4����!�@Z��j%��y��mEa����;*l�_��)0*�XF:�r�_֧$l�K
�I�A'��$i=��P>,Z��㰚�ӕ���u��c��]��0>|n���>z�37����|��>r���!x�+<R��Lj?��ʵ~
+	�'S�\ǧ�z�4���cЀ3��Q�ū֩@%�P���w�W�BYL��c���\>�5��QHeL��eQ��yF��c<�+��ZGy]n�#Z�؅+�fW5�O}F�k
�W��і
����-�}���Le��K��Gc�s���ڗ�Wl�������h&\��9x�莆0��d�_�m�w7O=2E��2!��'�7v�u�T5@k�h�5��Y*�&3�E����{@���iV�,��Q��:�\��}����IY��E��Z�%Q�:�R��iƒ&"W�Nx����n)^�?I��J8�7��wf�GO�TΌ���)���űZ�[4{:o��T��X��Q0�&"׸P�c4�@�v��4�Y�8s��[��\VRӐ�Rt

�o�s���.@�ja-�_8s�0�̟��X��S�K��m�L��!V��!�}\���[�	9�06b�*�m��x\�
j�Pޔ���r-�4'�6��;c
3�Ye��c�F�o�+w�=�MR��Zy̴�Bu����kJ<�JWޜi�$%�z"���rB�,�U�Z%o6m��ql���W�&"7/Bo�!�3z9+��^D�C�+A�T��*C�>@�}�]IIIIIIIɑ��޵�ߦMͨ|v��{��O��SN_�|�#�V�9�7������7�SX�]�;F�>�ǟ�տX��u��7���^'���7����ǝx�y�W��_�������gO�1����_�d�CA�7��jy@�>8�?֌�� N���b2Fj
Hd��p��or��}�P��kf�U�����ĸ�z�_�!�U�M��ϸ�@Ɩ�;���~�ij\�Ž�5�j�j�[o�Q�;��5�m>�zI��LVٹ�P��6�߮ö�
= ���8��Q?p��*hl��A�*���|ߤ�(ɯYl
Qƃ̉�UK�97K!�&������v�ߪ��
�5��$�fJ�#ۍ���.w^C7|k7V^ȃ>ܱ��j����/�<���� M�^����}����a��:A���\�Db��`�%��j6z��"2��U��*YU�O#�vc��c�h}�S��SNkeL
tg��Q�Ѩ�Cu�:����L��yGM�I#а0��a���}>4R�[q�l�(x��YjW:3���]�R"�^��^t���j��LJ[#w��#-�4�2�4�4Z6�Ip�y�6����}N[b��U�s���U��7���а�:Ŧ�lU�<nɤ���{�2�,���=�үJ8�fڊ�6�5f
3�M��L��Oij��G������Qe2��P��m��w:ݿ�fT���*R8�qC	��F�+/�hb2@R���q-��G<�\�H#'��+Oy�4�#�}�ԫ�ُ4t,Z��\F^ξ�t�&4�B㙨]}U�����)m޲-Onh�/��vy��[/��*#O�4����A��ݻ�����<h�7J�;tW�����F���T:A�f���HΈG��n�k����������}(�����o�M�W4��+W-[�r棏_v��?�>�K7>�g�G�"Fl
_t�w����=<c���&M���K.C*����f=1g��RƬ�v��2�g���#
>q>���K?>�����,�0dأ��X�x���c�M���(R��;g�̻����A�z\����j/2	Gry�ג����I8s�ܳ�W�a*L]:tL'�MIIIIIIII�'�}��‹�<k��ߙ�|��>8�����Nv�ɧqmF��x���'9����3��WA�}��cOtBll��t�4%�să�4��n�#��t\ThgJsЧ�.)9҅�H�~�#ϭ�Uǭ�����pa:a4JJW��-���~WRRRRRRRRr��݌D�|��)�����N�ZN}�o蒒��B魅��_RRRr�����	%%��s��~��������|���T�_蒒�����������������1�@�_蒒���������������������/���g}�t��.))))))))))))))))))�q��(�+]R��il�ǧꡪR�J�J?Tj� z���ВB)�B��JE���$����	��|;���k���������Z���c��އ7ӿ=d4Y�%iB�O����3�����'AAAAč�ДH�&� � � � ��BJ$@�MAAAA��4��D4AAAAA��	�$@AAAA��D�h� � � � � �hJ$@��t;����\^�ݚ��p{�},q�H����fo׺�:����_qKt����/���p�ٛ�׻n�9|>�v���=���B`>{��,AAA�!8^ܱ�q�)}�əB���Z]P�A�nl_XZa7Y\^�̑��M_&!cb�vB��6�*̜�8?�T���kE=n���3+~�%�F�D�c`��������Y>gv�T�_>0��Vdz����n�A����g���py�Xo��ׯ��y�#F���{<�~waG����a@�Q
tͰ7Y����ڑ��T<�k���h��ռ�N�*{록\ c�1���*���{�� y��>V9R�L�v����Li�|.U�X�������%�J4O/�q��ag^;��ƻ�նa�m�ݽ����圖��AC��(�k�do.����&�.b''���}.M�j�f�[��icXV��:"� � �D�6�K��%~���q����$�4=�x 41��f�K��5ü_|N5,�T�����{K��kE�70���Ë�����
%}����>��/���1�;痡�PE��P��O�8�c(�̻�̇�o}$c�0��	��Z���3�b R���GEHh9s�z+{c0��0��3������WrZ٫�bp�'*��ǘ�1��Q�,{��:=�$72o�3GJ���3�K3ۧ�m4�Kӽ�)w8Y7��qsL�1���Z�����/���Oh���.<��c�l�e�҃EXb�#�e��gv�I���� �q��O.��eG�p��3����Y0�H����W����w*������4��
�]0�7���W��D��kV��al�����;tu��j;�'�5�G�ݱ�t\�B�~�Է�ϥ�'f�ۜ��9|���[`��΁у�I� � � � ���T�.�mx?,Y�m�X�C���U�����e�=^�hdZv�B(@�X�PІ�/}/.��-�˴��]_ߪ_,�Z֬��CQˊնb��[p�<p�v
����	����
�?5���8<l �\h��H���lއ�����*>"DX��z���dw�A�ӌ�������,�}拥=��nPوɊ�Q�;>��6ZV^t�f濹�嵣��-���E{Oi���̝�9
�e��U8s��6�ls�.��/w�(6��9"�h�����^�4���γrX��\&Ի�r�i�f^M�q�'`�b�a�U�r$Zkuy���I��7
;�iιTC���R���9G�
7�6`��+���?*�C|���t�xc���a��eªKvw��[]�3��y�K3��'��W�1Z��S����K�<�[�����Kj���=�8sr����/����Ú���3n�����^�qz|[5z�=��A��aJk�b�`���Z��9��;��q�z~�q�F�{a�O���N���V-6�c�w;_�!�����E[l��ӠY��}�͏�׼���8���dw�jZ�Co�<�
Ǧ�U��}E�r����`/EJ�����t���p�eC������^�|����U˲�*���Y�2/������ԀaLl'��o5�_u�}�M�l�X����ˣƏc�bDeh�@H�L���&�IԬ�֬�r#�y;~|�`tS�(�y�#	VeT���h;����
����,�ʗ�����'I@<�� ���@��@.G�8����˝�򣹕��"zG&��a
:"�钛;.�W|W�[Kz)"AAq��6����;!��WT�>���3��+������FӒP�6..��iC3��Ry�\���y=E�ҕ*��J%W���:zcEe�SDy*�����W*Ϧ�#�K+�[�p�
���f�e����#29-U$�+��E����a^(�]0����X\���[vy��l�����
��]i��Ѫ{#���^�_��U�`��%:
k[hD�+��Ҁ�ʱ3V3j�"1#�n��Mq��ŗ�0�DB�}
䣜�Ӛ�/
�~��Tל?���q$��l���Wp�;�U?9U�h����5�=�
x�nN�ij�y+{WN+4N����?p�@"o�:B��L�"N�L�z4V/�e6C����Y೜�<� ��cq���m<�%��� �N�F7��@;����|ÚQ0:��ϫ3ڦ��m��x*Q��ZD��f�;�y�~߿
�{S܁X�9RrV9�zaǽ�
X;�u�?x�Z~;��R����Y� �a����P�0�UDԏ�)��t�����$-ׅ�y��"���$mPM?t���?��(��q��
�p-��_�N�5��v����4��RN�Q����y�+�}�����nÚ�݆�e;\�9s���x�C�}9��^�'"'j��#������]"@#� ��_-ǫ�0���M�}s��AL{NROh�x*I����'7l�
���p^Ƣ�Z�;L�I���`dL6���Q����`n����{0J��"X��jWn��Oj���ݳ�j2�
�kNz�G5����K8�a���&ğA᰿�	SK�6�C�)�6��ʱ�9dM�RE#"�GUT�B,�+
�x0�7N�?�D����o����Z�i	���=��70>�+��u���Ϥ�
���6ԅ�:���tja�����9[�mU�O�`[��n�G&r˕gR#r$��f��p�!��N�Ώ�U-��G]W|a��"4��c�Fg�;2U�'6��'U���E��ϑ)��_��	�;2����rM3n�S�9"�ΐԠ���ڦl�|L�2uSt��L���&
��Դ�?K�;�z*E�XTɉ�3�&ԅ�h'�±���CK�����\�ȴ�7
I-���C3�pa����|i#D�Tو̳��[m�F�)r����L���<���w���)�bd����Q�t���-���@[6���)C����ʕʵm�z�;]��B��%Q6���r4�4�ƙ�R�ش1���f���9�"t�媘�7%mD&IZA��2���	�Jt'��s���T��m�B���eWշrf�������E�]V	�[Sy�jt-:W���K��R����a|���Q�T�C��:X� � ���w&�UU����Z�����־g[��W��<V�P穎TTP� I3�2���<�#�焄$@$����w�G��ޛ`tٮ��ߺ�u�'������o:N*����/
��6w�s���G��@���#"��9&���/l�(x�ѓ�a͟�
B��dܲV6�~�:p�o\c�w�+}����>�I����yN��2Qƈ�L��v�㾗7v>a���P�q������i��n�is����]|�����|W?��M	�]s�D�)��,�A�S�9���?��?���)�oV�ڼ��v߂���_�2�uτ�y2��+�����y&������y�,��_8$����$�+sZH��%q��8�.�4x뛑>@[+k��w
�$�ܗ����_(�G���ךh�Dj�5h�?�#y��1��,,�!tP`@Ok��h~�$�Lս�@��X���'ۡ�q;M�#�e�JI`w�w�Y��a�o�S�)5��r���=�—"+8H��[�D(#��B�"�9%�E�!��z����IRG6��д>�7���(2��:�Wly�}2���M��p�7��w�����mf���5=�n����6s7�����P���|�k:>�����K�����z�����"����I!����[:�������u�*{��<ǔ+�fѵ.vJ�����1E�	|<:�N�D��,\�&�|��_x�Oj���f	\v�j��^y���í(߁��o�wH&�Uc\����z-�|�z��}+*u�o���E+���U�����rB��^�Ds��_>��4<.��Əp�{m�th���nl)��"���r~��P�#�竛�s.sN�\9X�܈+ξ����@�^�o����th9����e��y��Zݛg0�6W^7v�0��!�v���A�	{��0�7{���	4rT����'*�7�A�Bs�e���`_�'cc{�.���6g�;C�b��~��,
�a�.\gb�����8tĚ~2D33N�
ٶ����;�1_�"8&��D�3�������l���7�{�.C���XQ�rM#{����O=C�U`��Fn�� �q��/�����7�gB���r��W0��)8����\QX������:ӄ�q{�S@5�=��@�c�J_��A���<p�bg��Ƙ��7�n�ڑ�8�I��?��c�B&٣�"IV�?4�K�y��;*�F@/�
�!�4��}#
��	'�O��ݕ��^Q	��sP���ͣ���6"�~&�|YmKw���s(�k�b�xƪ�L2'RL�NJj���3Ô�"�
웏�QP�tr�:��eQo��]m473,%��.b�u�aB����5A����~��6��Oz��(��},�&��W(�e"fn��.y�c�f�c�2���x�� ��B��4���ʇ�?[(��G�_t��w(�Y���=���o1���tB�WZLQ���
D�3�K�:t�СC���
@k�~im�yuܖ�>����X�~w������T��K+��V�P���)�J$�@g�������n��đ#H�D���U܂JR܂��=Y<�
����������{F�$��(� r�M��
ѼG�E������r8���J��nE���r�>����a�J^Qz��V�)�%��%�U$����
��D
�W/�Я�����X$A�e�sl% }�G{�k:$N���c_�xE04����!�k��>E������/���	j8d6�}eB7��ux\��M�n���ʿ��vpL1)1����Ԓ9���m~)�Bğ�4�7���)Q\)���O�Q��)/u�9�K���
���?0��5��Z��)L��t�ثVg���[����O�nP8��oM�4��p�ȫ	����{5�
�L�) "���}�Q2yƧ	F�ں��e��߲�����X��_��,p��I��x���9�H�J�4e�߿@�L�h��}a�Н~�d{iZ�)?G��dwz��@c�1gk��!��͠���Q�6~�2
����H�c�q}�s*�Ӗ�]��<bjk��K��;�P�"�nmf)F1�㖎������ڛ%�㿻9���y�F���
����Y��G������j�(jn�&)1=G�?ltDSQ�|�9�L�L���F	��oYr�"c�}�zw1�T픏�{ញ��4���b"|
���"�T6�o�{ vf����+�_x�z‘a��R�Jv��P�-[ŊU�XO�J(�6l?%I�A���荠�,�v��s~P�$�m=�@��e�~���+�LPk���S���=�c��_$s��ظ�5 O^��T�*X8\���C3左�W�q�&c `�vI�1�lH��Tz�W�����xS��Y�d�j��UO*$��x���.�[M.��q��oh~GX? ��
U�#&��M�8&�9'f�t����l������"�I�e�����znb�V2�W��1�w���[�W��#s��x�=T�̕4�T�h�9�e-��z�`���Rj��Sf͘`t�(`n���
k�|ڴ#G�Ϡp��`��;��E�,�/0n���\�>וDp����<���%�i�N�����efy����!Լ��4����t�LHw}+�&��}q�5����|�C�:t�СC���	n(��~��w�}(�����{�ы[\��+n����9\07���r�]������p@ ��G�k[:��"r�z��v�3��YeՈ��#�譀��
��-Pc~�ѳ�����ā/���EJ��Tn��f
:�_U�:��x�L���Tr��C�����7Ŧ[���
��s��x�Ht+�t.��w6��Qt��,����LHW=�0c"x��-�W_�q/��5�FKR���^�`Qp-*��ja�Nk-��Pڢ��u�W�wQ:��]c�m�
�b��5��.�����} 9<"xa����P�`Tb�)�`_�l�(`��M�{�	�(�i�p��1,Mp�xs�Q�P��q_�a���6*�������=�	7z�R
�l�H6��*�!�U@��hZg-�Sr�K��x����@̻��J�xQ5 -�b�-��F�<�2k�7���7���<	��{v��7�P���L�������Bîz8�Ԙ�ٰ��TX9WR��k�)}iq���e�Z�x�и|�æa�3�"�&ӵ�J���ԹX�ۦ4����;��
jR��4V!\��Dn�>Ot��[|L*{�/>�����l�\S���b��8}R���M0?����8�1{�)��(���Yԙش�$eU��9b����^�ļ�:�iZ�l�hW���+�����C��J���02���k-a��t����d�F`��/����B;��dŅ@�[��&ˌ�\Ht�DvY�<g��pҞ�a�X\��*cb~�0`"�Ug��6� ��,�= �Q��dN#�S
ʭ�!�X^�Z�c���uF	�H�A����5"��f*��ßI
3��1"ǁ��J�|��L3EuS�B����������k��M���v�W7��@�ˎ�m��—�0)p2�Y��k�����3M��{�FH�A3&Lj(�i)ڑi��D%X$X�܎�[�Ԣ
�"A9��g�&/��T�$COf��)���;8�d�����6�e����?�1S-g�IX�`g?ꊚٜ�
V�e`�NM�̰��ޯZ�ЅX��ݒh��F�,N�&!+���ͫ�3��t'T`뎁�!��rz�_�mH-��[%�m�h,K�Op��J���,b�ƭ,��+88�b�7S�:t�СC��	�~����w���A!��
ʹaFh,��h�J�c�d]O���n�o8���fC^��|���'s'IjIYr�̝6&|6x��� )��n�{iI������k���)>�����q�l�(B��=*�-[H�B������rH��shm��F���w��ƿ����l1g��s�s�d�qџ°.pJU[����2�4Hr��}C�:%�ƴ�Y�� ��/^�ն�c��n�h�!�[�vᇀ��;s�y;��D�0W���2%}4��r����[+��oWe��������d�Ⱥ��*�Y���TJ�
�4opg׾CL\��:	=?G��G�#�E��[�>V��v�"�N����� �t\0yx+�}b-��I�x�g}�k:M�����j���#�]�t��Eb��Yv	d&ð?F�lpҎ��a���JO
�5�����\�JVZ)�3
?
,��wJ��C�y�ɗ�JGa-=�NK�������߯�@����F�<�	��By1��zÈ��K�TT�t���5"L����`h�U�v<A�Mea3P�e����9�;��x���������.7y��i����Kڕk�H�*EO�s�ɰ����})���z]���p��I����wLA��r�q�A||:����(��D��`�VN��E�$�!����A
��,��1s�X�!��i<&�4�*Al+x�C]�_A��܄P�fgI;�ws�U������/�k޻G��͐Ӷ�~��S �T��'���KYK�dUdA��Y�N������mVY�r� �ՐN6�FKo�Sp�56 �T��H���b�~7u.���c`���%�>,�*F�,�����g1��y��b����z����NP,2y�7bXQ��Yem���sP�z����LpH��4� �_PR���[j�
��;�������o�G<��%�pV;X�@�l�������0�y��A�
qf��7&���C�
[f�Y���<�����b�B4w���	�|��д�Gk��u*��K:t�СC�:N*=>>��~��Z,8�e�u\h�P�ann��ܵB�:�u�о��6w�r��|�Gw�-���ġß��^R��
Ŗ<EN��!jA��<5�8��W���Pn���]�b�s��
4���'�.;�s&7�䰡���g����7݄pA\'
I�o�(�]� ��0�+6'8>V�{�`�=\��-���ˑ�|���hL�϶Kz�����@#�����R�ѵ���n�&j+��)h��ڡN�:�]^�$����Y)6�J�s��Z4��$���wټ�����l��#�婍%����7�C�PWhe�(e(��P��F�\P{��L��]�m;��ܲ�e�d��QЭ���(��-"�OQQ�S4*A��9���T?ZF�eJe�X�_;$SX��<遠"՗ #�>t�$�e+K������xeq�7���۰?f�>�2�S���f:��'���QU���fD�g,M��ű�����>h}��VO����|K���ֱ���4`��������!Լ�_�]�a�)寚��q]����m�����%��~D�'Y�a�W�-�-��G��R�/��^��ِ��I�z҂:�G�(O�p?Y��0]t:
m��f�d\bl3�⍀�'"x1�uA�@é��xL��#+|z_���2��G���>|V(_�l%���j��T�}@$�[^�2�K}��E�j��E�`��v?X�m�R�3�S��z˵%��-�)a�'yfE�gPj'���H��1오��B`)��r&����"؍�vO4ӑ������	�O�i)�Vzq%�����@��;��S�n�!����u���G��2|6��O��sQms����*�ԑT8�������9��SR��0������hZ�V^���l����Q�,�de>Cj�_a_*
p�3Od���V�_�iGN�#��g]�Ud��3�õ���n:-�$�i�g-����<ey�l�mȡC�:t�С�$��r«����a�������Y7�)�p5���h��tswf��;�F��,�(�FV�a4r���<{�L��I6S4#��gg��C0��~T�r�o�{�`rJ:��'�2��,lLq�F_�3�p�CG��1����&��s%n�0ɴ!/<�-�hq�:��7�W.a�7ИD����'����z�r�T?�� �'BJQY&4
C�z�&���qp��$�a6PlZ��A�\�-��c�wq'j\Rm�<��C~阢�Vf�������+�F�k3�"�	)�cR�O��z`�g�孈��>k]���Y�c�[�T;8��-5����|�	[��4x�.�<١�����e�5�h��,<T�W�m]݇�{9�UO�K�h��w�"og�F�����%(����4�K�(�a��>��vI�ѥ��5ڔ���Z�<��<�-��������ϱ�V��B�T�+x?x��E�I?^��G
g"QG�
��n�sf�I�����c�A��1Б.tJ}*�Lȸkn�6��Gz�9�PW��{�]ܸ>{숥��f����:t�F��Z����3ߞg��%��-�_��(�e9G�9�4�~!��V�7ѯ���i$�4���9$��8�
�c'4҂��,�~��ý�;1W�R��Z��H�@ӥO_��
���}$S?@�<��l������
�y $q�Ap[TjY���hChX|&P��A0i'�L����W�3
Bu�s-{����K$)����;��u;y�,�x
��"}�޲O]X-�g_�a�$�/��L�4��0h����5���k9�dR<7��5��K��48Rh	�#�C��Z#�q�m�V�K��9��Ǚ8�>�����=6?��Ei�	�d���_w�GH��E�&��Z�eM8/gZh4�|�=���nj������<����U�#�$g�l�l`!�9�S�jtf7�@��y�_xHB���].��.�i�10�,�żOہ_��ނ�q	��h�s!���:*�oɒS�f���TZz�ꐭH�[��YfƇ\Ý��4�4�h�퐱�@C����l�(�L�U�d�����~�d�f���;eöT�@4����3��:t�СC�:t���@Å���+��v��U����`�=z��_����I��G��-wާ��l��R�
Q@[��wM�%�r�	2~�Ň{E�� M�^E3_s(�ɭ�a<"��x��o������ԟ�ٰ�-��I��
DO�6su�a"�uc4�*���=F�G���غw�p�[Y�������+�|�u]m��A����򿾥R>"Ś�-l�Lh�SH����ʀk/��+QUb��'�3Al���]c�x��o�I&�d@�owϹ�>yx�"�4��M�m��_D&�3�&�Q��7B��O����n%����9u�=��e\�i�
�G��k�smf��3e�9�9��?aIR#D/
�8�H>�6�ar~͚L����L���
�^����rT�	�Y���y6p�d�<r�C���#=S]�I>�U���a�@F &F
�~X��}�8j���|�D�f���S�ƒx��*�=��G�KY��iYN[��8e�`]ª�;�.�B���ڤN�Y�Ŧ�	b�~���Qm�4o�3�'۱�+��W烊�OL�>��x��B����襌ѓ��7sQ٪���!e�[�!�S4��
����T#9_�j�bpn���y`.e?ki'\����(<sq�n�XyuA����W�#��B�6K��	6s#m'+�����LiR3��,���9�	T`���o5�R����A:�+�D'�(a��.W�q��
���e����ƾ���u�����'v	�۾���h�Wg^�"�9�J�α�5��,��}~&���2�УDZ�xs�;�+ab^����+^�֓�<x��M{���Lpy�/#��ky��/&		�e,e��2|a��+�+���E��������L��e�}�v���E5M/ٺ�b!�ꐬ�ްȮ=7'0��"�5*��ζ[+�[X$<�M{O)�u0k0Dϛ�з�/�XͰ�A|Y״��p��Fy�P����sV�!>HzU�V\�n��*Ė9���5��3��`�2!�t�1��Y�kQ���g�VN� �4Džh�Ҍɴ��I�B��Ӛ����n4O1��"
�0��5f=�I�S!�!!A�pA��k���4���|�63
��K2�*|�G0}��ߴ X�R'Al�x����s�=b�
d�þ����M?X��U�n�����j�n,������!0Wg��F��Z��gV�MÑ[��x����`mr��3��xX��1�Y���n�l�"
f)���=�'�����n~dC�f8SKX}�>J��7�:S�աC�:t�С����n���\V�����tY�!/��뱧��ԘK/wv�O�|�ס�.k��3�~�t�ל�W�*�F��.{�[���Ư��+
LAe�n���ں�՗�FF��qG��
�]<��q�ť�����Y�GH�2+d�\h
A�ѣ�Ur/��_��؞��Y,)y����{o��z乡���!��ib�b�,P�D��ٸ,���|;�ڃu��Wb�`��bv��V?��,�A~��N����ڼv�2�Q{v �5LoGp�U�A���S4��A�jw���n(6�ց�'�	*�JR8<�w
R�Z? �ؙE�*д�U��l����<@�T��q����қK��W�!� f�C��7	�*8M�XOxu6L��QyZ�#�-��T�r�.�]_Ў{5u�Ȏ|�DY�5y�����zF'T��3-��0��YZ������g	������lI}�E���R���̪�0��w�j�Y!N����%���g�"�T&;1�V�vO�7�w��6�U}xS�ǸF��2�g:���>�%�+�#oo��7�^��'g"X^Wб8��Eq� ����4��������.6�Zh�����YB���){u��>�+�$aI@4��1WA��6K�~e4_z�����
{ي�΀�
�7�x�{��ia���������]�1*�OE���W�嶱�B���W=�gN0��}!�xV�=�ζڴ�����Sʄ)�M�|D�
�Ņ#����������di]�s�'�
`���B�+#�:¨��Rb+I���UP2�Ƚ�51#*�l6���|�W��F�e��El��h���”E��
�����n�"cզ�~� /B`.ʵG�Z�9~H��Gob��GV��3��ַvr!2@�+4ќ��W��b���S#�k��w�F��XR���vvt�OZ\JM1Őy���uj�
0U��2.Q�a�m����-�#��R3̜�Zz�
�D��r&mǜ�����A����lب4U!L�,��5e��h�R��w��HzcyC3_)��=��p]�sD�y�7�.���ZmM��	؈S%�Mt�C���p�
�� p�JժCu��7p:'(=��:zm~��?
�:��ԅt�СC�:t�896!|��n���^sÃ�=�5.9��<3�8���79�e���/��-z��׀�0h��e�&G8.�\�[��@���K�)x���]��k�K�?ǩC��ʙ*Y�hok
�u���˛��
�(�
��KjǾ�q��v�~ܴ��:N��4�ί�G��(^7�:t�СC��"����s���{|�G��㾇>\�4-�`����z���G8�ʫ��u�w��mw?�壹��U�n�[�oo��n1z�d]�z�f���l4��̼ǟy�8_a�*�u����'.q퍷�Q�S
>r&�Jq�
���g�@��*�`T�3y%�j�����f�|/$�gD��;����a���[�����#M��ɉ���ɯD^V���_��%-;����'�q;c~��1�~&��ed"�c$��2��S��/�Lʘ�|��L���#݆������NY�o��T�b�zF}oz�A���4�a�J��D���:t�СC�:NI��o�uF
h%4�+��3wAzN�� `�z~m�<rHDt`H���+��B�!�w?���e�A!!�1�}��[ ��
@{'�e}������-~�>Zlw��^=��؈�]�z�Em�����W^s���>������mw�o��7��|�6=��K�KZh�7����_����y�%�t��62�GpY�~��w=\�9���z:���;cH4
�0t�����_<�+�$}a�>2����FxG`�����c�����0��53��n�DDnR.k�r+P'
��6.CT@���"b�
*Vh-
d��w=	ql?,ф�W����{��??������(����1
K*��4�F0]�p2�fy�5����_���O
9�,sWo�Ͽ>��3<:���c��Z�2~@_oig
C�tz��gɸٰ���t���r�>=K��۱g3��9�m�yƥ��~2��X�Xs�e�b�we�;�	I<h�q�hنC���y�pd4y1�q��ҷG�wni�& �k���>S���%�Zߠ�Əマ>k+"b��39����O?�N5�EDe��4�mFvӽ��ȣ��T�&Tp���ʻ֎{�������f_ZlE��i�7[��$C�"""""""""�-Пl�)cN �@�;w��M	�s��B�<82������s���b��n�y��qaO�-�8�UVq�2��mhZ��&�J�pϹ&�t@��!�W�ƧcN��Zj�����\Ě�z�gB�ZDDDDDDDDD�-��OL	;��4q0��&��7}��~���X�Ɂ�1*2"c�~����H�l�u8.\^^ݨ��B���y��|��5+�.�����V�+�6s͝=}<nlB�Fo����ɔ3D՜p�`��142�	�jV-""""""""";����j/��
�[��ݘt�ML��yl�yxT���z�D2+�x����5�9���=S��}��@��|WT�0�LatrF�{n�~���b�M��d�!h����8�x��^D�MZ��
�"""""""""�]�'�f�8�t:M̓�	Z�I���K+Wz�I�n�A4!2�d�th�M]�����[:��W�[(��-�l�~���;��T�/3�E����7�Y6y44�!��C᷻z��y4H`���0%�7Ӯς@����������뀶�:�_{o�m��$�5w?ȳӭ193OFAia��b��y���\ka[W��}C.J9�4�:ϾZ�A���xa�_�����2����Ș��[��:1����^�}6C�}�jm����fώ{�f�5���[E
�EDDDDDDDDd�M@WpZ y�@��ҀA�3G��\y�}�D���`W��e�*�2��n����;ƖS���=ʫo��2�-�	蛷;�^/��{L�X��� e��/f>G����ֹ�]a>/�꯷P���DlMƝ��Kޝ����ɣ�����>V-""""""""";f������<B��gI�ɂ)_.(��������C�Ⴆ�sL.g�Z�bOP���d��Y��%����>w*͜_\N��+ؙX�Τ��ka	+CG2}�X<�5o4��\��ɦ]�+���@g� 3_���Ą�|>ܖk�&�lyиc�<k��;xm
~��+��B7��k㍛���M�>V-"""""""""�T��@��T��w�6�0�rMz����I�
L�N�'d@��}�c^�	� @7h/�M��tU}z�1h�@�^@�
=��v7�M��͛�6�M���''8܀68�	���	� @w���M����{GA�0�.��Bh�"�'�t׾4��0)$�pW�1�@}/�/�|��	� @G���	���&@��7�o��	�@��y�C�6��}Bh4P�
h/�M��|]^��Pìؚ��4�hhz�>��*&�<�
�XN���
�Е_�k�v��|���Y������B���/���$YV�p8I�b����e�nR8�������ڸ���E}bx�
�c$�Mɓ�z�.��(�y�/���?^^�ҟ��h�@��l�v�h�&@� @�	� @�&@@�	�&@���r�����m4Л�y���	h��?yG�w�q^��j��N��Z��Q�NK�^M�z�+8�˕Z=k��O�/��m1�]\��z{�Qh�i�l*@�P�����	�(�$���Mqw��2��fo��{�|>��N����q����Nݐ�?��2^���W�V��{��e����[[�[֎c$���d�4:���$:�"	�h�
*���ڙ�ث���×��������=�9��ǫ���<��B!�B!�⛉�>
��y<33���<77��[;<���Z�����YK��._����߱�ظ���(���
�v�����Ԍ���ݏ0+%=3>񜋇"A$��B!�B!��S��������bqqqvv����f�ˡ�'Ot�*k�b�>�ʈ�L���%���d'�#��!�:$���Z�풽N��Q'߿_��+ ����K@!�B!�B!�����>�u�O��ow%=??���a����Da|���JÛ)�35���TT>|TcyeY�ZS3�{���pv�r�8B�Ʀ�=~�z~a1:"�䯿���H@����gKõ��x���f��f�e.S���n��#�`|����qM��I7�}	�
��B!�B!�B|��3-+��d#sc�ss�mm펝����;nG�(Ǚ�!f���7Rҝ�<w�wAb�g�.,,LO�>z,�&����?��鳱�g���hL'�c}}����놀6l/"c���
�Q�+�#��8��O�
z=��w���*1�bHD�����h^!��;:_��$w���HfQ��FN&$1+�}�	,����G��9���£X���^�L}��"��
t��B!�B!�B|ИP�f_�����v��0?��������,�|E$4Vڰ������=��
����6�d���W�_�8����ū��ͣ��##�y$S�nw�\S�fj��y||�b����]\�����~59er�{������~�J�1@OW���,466��ߟtᲽ��+ �8w0�=LLL665��o9&��������bƮ����߭:駾��)��zz{C"+M͈Ʀg����&�Y�Є+7�v��Χ
Ml~zzz򕥤��#�pr+=svf��ov冀>����G��r	h!�B!�B!�7��!E�n��{���t�8�ɽ��Sӳ�$b���ݪ�����~t4��eo&/_|4b:'�pqq\ZV��E/,,^���t�Q@�{��ʊu||����n�=6L�ǩ���\S3�m��������������sdl�~W��ԕ��1�	���844��>�o��l���2s�ZZ�󪩹e������k��[Z�WVݧ2�!�)800��<0��T[]}W�И����fi�	��m����j�>ߩ��y��b��1��y�}N~���mz �GGG{z��%��B!�B!��h�y	��~�n��E.746��%��tL1I�[4ST�|6��NnG~~P�Ѧ��R;��h@Gg)�e�w�'��D�t]}���oPX�N�&
��k���s��+���ٹ�<���������"���!SqY���jn�m��򜞙�]{i�f"�L>�y��;��?�����I�2'E�sG�H4}WW7����s�KKtm��� o����A�_�z������s��bbW�uD9G����8�L�n�3b73'���k31+7���H=<<���--�B!�B!���4��"����	�u�>�fK�0}��gc̎Y����K4a�y���L3/���5u��x��h[{�Ɗt^#[�����9�]@R�&f$��������V�[P�������5�qPX$mȕ�~�Җ��Vh[~T���z���I����¬��NZ�iI&�c`�%0^�q�����s�qr'd�4|7�޼e$����H������Ud�Q������Ņ��tz�_�P��v�`B����os:	h!�B!�B!�7/�	��;o�5�=y�," ��iMė�Jtp6��+ב��K�����+�L7�!�Џ���#��9�]@���FF�Da��<55��'�bS@_�|���/���bT�Բ"�j�-|.r���:������Y9t+۫L�<::v3-�)	��7o��6�Хw*�|�H�5�Ӄ/����_���6k5�L�6���|�guL=m�x�G��n�\�B!�B!�B�?[@oll|E4Z�A�#��;_t�>sщK�#���>��W���]ZZlmms���c�q��y���GŒ_��}N�n_W�~��/�9�L�����һm[�������.^��8�C�����,Gc5��V+*��'�z�SPT211�͛�hn��<����cR��cn�����l
���T棏��4=��Y�l����ȃ6~O�d�ͯ���[�B�tN>�1�P�I7���ꒀB!�B���w.?Q^a�ڍ&U*��e��
*��b�-�`�Ⅸ��~QBU�f @�e!��4iu���em�ԕM*����L�-������o�|����3o~�B!�@t̔2�g�t#�=��U�GsrC�WbE����}#��4��׭Vʍ	��2�i<x #�M�:��"�9d��K�	ܙ��k�~Xc�"���FGFÒ6�T�k����!��T7S�쮀&B����*�tQ�\����h1�<+'�ï^���^�C���$d������r�j�X�9'����'&�����n��\�`�O`������yHs>�9:kO�G�E֔?�ऌ�D${H@!�B!�B!f�	��+���[�:;;`|�n�t�M	����	�L�1˧�,	�@�!lRUUM�"�K�>v�^���7`G�.�+o�R[��mm���^i3�r�eQ�8�\.J��ȇ���8[��E%t���������YF@s~^:����t8$��իoEDQ
�}��r0�QAaE�E�.r�K��Љ���OHo@V�����$��|�㾴M�8m��3�5��@#�)�	�d���ٳ�?���V[˞U՟	]Ξ!�l6R5�z�1 +���Ē�P<{IY9�|�	h!�B!�B!�&:08���Y�1+������
ʊ{���S%W_��65��S�V��Ѳ�!�R�n$&%�{�$�~\�R36�NCB�'x3K
GK1͇�٠�iѩi�0�<η���=���-K�{o:֦��nt8�(.)]�j-���xd�������-*)%�)g9���hb���=��yl2ǘ�!����$��	�n���G��0e2��������@�S�M�f�%�ԙ��VQ?^Qy	��|)����F�4�	�e���4,6�9j��Jn.�і�B!�B!�B�
h�L-�I�����@�z�?3v���"&�w�p�AwAj�i��x�>�y���j���fO��
�MZ��_c���MB��nT/S�#{.4��\sÄc0�5�ƌ�)�NzB���qmn�\8�*��Oǵ9���=%��B!�B!�s��S�R�K���c2��v_mq"�4��'CYh�?��_
�������w��!-�B!�B!��,hSn�,�X�q4��X�I�1N�%2”?�����%1�|�1�Xr�y��%��B!�B!����5�0i)�i
6��@HAt7ܸA4�Q��c߁?���br<�_����XZ!�B!�B�Q	�Ȁ~1���%���U32�**ih���Ws���2�d��ZC`��p��1�e��B!�B!��г^��=o���ҠPt�[b�FD���x����,4$��B!�B!�P���[C��o ��g
	������V��u��{###�/O�<����oo���B!�B!��/�����y������<�?~\gk��ۺ{>�����O�z����u��љ���r~�ٟ�9444�M>�������Ҕ��;gP[��˯���6?߿�.�߱����hpfe�ӧ7����.g�9!5�`aI�w��}��٨�w�AU]y�vwv���肈�
����"*(�� ���
J�bP,X	6PD�a�F�Ɩ�h{ETl�+�YK�y�
'�0�Y�&�q��Λ��;��S�Ù�AAAA�{�U�Y@w���h9���]���52�UW՚����Y�F��L��5�..)���
��c�Yc�M����,M^9g��k֭�Oi��m8v���YSR���m:#;��Y�،v�_J5زM���ՌH�瑛�G>�ƫ��?��[���&���F\�7L�������5Ϟ���h��#G�5oOΕ�,4�W���� � � � ��tii�D@�!��#�	�%���	!t[[;}�n��3�:�-/*z@�s�%Q�57��r�44o��G��޹{���w'8�+��8�ʏ��idѢU[{�+�樧o<7~��)�����wF�M����H�\�l��-xr`ٲ���+˴��u���#'k+�',����_��G}�n���k����ޯ��3x�FAAAᯗ�C"����V��r�w�VRA�:�r��2"^#�c��W�]3 l��U3�6��)�$�C�]���kݦ��ѹϽ{���jO������%�.���B	�f-�گM[��
b����o���Ic���o�YJ�v�ª]��!��hjxS�;w�30a5�X�Z�q�7y�p-7wּx��p��jn�����̄s'��C��3�H۰����T����'I"� � � »%�g"�r������b��-�9*�����Ν��	�
6)���U[�W��#(�zx!�O���S��yң�+I��N�;u�,�oy�næ���'
��v���1?aazF��MN��0���so_?����^˭*��F�>}������&���1z��-[˞�i�LҲ������ьLM�<�ޭ�Æ���
�PY�"5,"jZ�lRR�Ȋ��q��pq�:������ǎ���{~�w��1D����C�b�-Y1mF�͂[���W�֥m�D3S/��P� r����h�U�_�Q����=�DM�������5y��=e�gd�Uڹt9��͂�I�<�2��f		�$��7&�N�(��/!��'Z�n׮c׽��JX���1���=?!q�/����x�{�	!��xx�,���ooݾ��,�B�6kݵ���e��ɓ���3g�
�����
N>yJ,S�8qY���Ϙ��O����m؈�L#�\#� � � � ��a&���(E/���F��_�P�7��&���_����DC7hԔ�������cCSs�x�50��򕾉9�xŪ�T@%�7I����i���:џMU
.IJ&�e�A*$��&}�(�9���\��AC�H7nJ�&A��ϟ��TGYY�B�[7n6~bH�
���k�����{�r�ٳg���7l�'O�F��X]*3}<��yÆM��:�chڽ�+IE~��'|�ut��5�T��
[����i��U!�B�B�M�����V�>($���pP�Sp�<Pu'-��:�A����͘=�Z?/��ȓa��1|��ؕ�@\F����~Mچ�_�q�RL���52kju��Q�}���4�j�Yjr�6�;ge�¶/w�-]�\;�Ǐ��߸����*�^<�`tګ�T�8t����n��@�:�PN2n'����B?5� � � � "���	hX��B�х�a��|��MG��#� ��]�j-�<���KX�S�)�b��0F�:���lk�1�ؤqss�VD�c���]h��F���c'��)��oG5� -tvp��B���'�7��Ǵ�s�ll���l]z��7�V��fD
�a��R���s�/T���.\�t��ً�.34�<x�2��+�>X�؍�B��#���524mҢ�]����V�7:�/�
-a�Pҡ��T��̷�����Q��?nfݚη��Hv�:($��^���U��B��"[��ѥ�:F!�OZ��\(4nja�UT�����M��6má��->�,�oߩZm��&�nӞI��M�nN}=�Ϝ=Ƿ�B���s�V�)�آ<����=�ŋhhG�>����a�z8�f���m�3L��W܅2#3[e�&�]�p��r���鴠�pE� � � � �lB(��wK@cx�*g���&��u��q��]���7(8���< ��h�N]���̘5�Q�n�1n�<"�_�|E�k���Dl��ʕ��lL.%\��%�q��O����ʤ���
]Z����-�x�z��Aݰ�hNg>i���A��X\������e��ޔi35Ց����7��d�C2E(�kbr
�%�O����͂O�zZ�����gf��6�N�p+�$�f�F�+�x��j��._�ZC[w��C/��!���|�^%,�-<�Hz�v��u��Y�̬c45F�˹r�Ν{����V),,�,s:�!r������34"k�M�A,yqɣYs�S�ʓ�b
��=�8w}W'g$2�س�BHϼs��7�����e�_$%��)7��~#H�B�c]ͅ�9���
���:'N�v��aic��H"AAAA$�"��1M��.ݜ�~�T$��g۴�TW�8"*�o��Ԫ�O�d��#@	P
����+e�n|Gg�;s�<U���O8-��\��+��Z>f��Q�H��.jO�>v�g�^���fΦ}̦��mbi�M7�)��W��_�(�i�p�h+¹�}@\�\@����J{���98:3R��˻�=wr郀F���_����!(W��4o�ּYK��dQ�R�9�v��|$4�����ǸH=7g��:W���e-ԉx^4�#r\=X�ux��C��D1���mr��5c�^�����fy&�]>�d�އ�iV��|[iB��*����2%����7���"�+�c���AAAA�w"�x@�r��V�������Gx�[P̼��^���l*���^��	���:��*����I]�nn�6���ۃj3��:W�3A�{�>D:�BD*?@Lw������&��F�M��G�,�4���/�h^�޻WCM�.�I�6�z���.�1kn�X���,F�甧'�9����?�G�:�#V��&�E�����i��e������.�y�t��@�9�Z�v��#H���ipX�^�9�,�Ֆ-_��FI�EN���7m�J^O��,h]�\W�!w�
i�Ĥd&�;��n����;wa�����ѓl��fMY�}U������YO��ZPٺu{f��K���G�5� � � � �Bh�r���L򊕄�b3�ΘE�-�7�:vU�����h�o޲��X8� �����7p�0�����|�7n���:a�L#�[�J�M�
�%
[[�������4�?H�̢ |	4���&���3��]�.;s7�2*�a�ch�?�����¶{�֦�9w����
x�rΧC��a�˞�����T���~����r�>�~D�������K3^��i�Cr�J4�P�3�oIII�ɓ����u�k4����_�$����g�H̀Zk���G��O�71S��y�}�{f웃�4� � � � �e�L����0��LM*���b"51�j"
*�}YDDQ64!��ƸBP�ikbb܊�
E�(ٴ�ZS�
.�D��i*��o�n޾�Sf���q�s�=��s/|x���W�	�-N�&k�2w考����J��9E��+f\³��"9����S�	�)譨Ï��C���o�I��Դi���Nk�}�D�I�iM��t�(@��ѸMg
�q�}5�;TVV�yizKP��VW[4�tp�W7��Lq<���ə��;k	�@�FT�h�d*%�/�yQ��$���en�6lb����o�D�	��{�q	I��<���%{6m6	�o۱�h�nS:��1V7/OMMmuu
�:�H<G\�(�h�<_'��Փz�����'1�YsP���,&1������#@����cgX�ㄉY��o���i�J��P�0���kv!�B!�Be@�ݲh̿�m���Fp�'�����2��G1�Lӎ�s4�z��>~���W��5;
�g�ΒG��8ppe�L�G�K�LȎ�kYv�!颂���w���CG�6O�f�ff�f|f�D�/]r�F���eo5ߦ��Q{���R �j��p���[4�2c����XPJ��F*+2&�G��R;_���5
	Д^�9'�+��C9�o�ܡ�)B�D��������8��ξV��`$����+�p���s�[�(x��Fސ�x����D�4�!���U���.<_{۫O�/˾�Ö��I��9"@����K��M���o�������v؅B!�B!$@�ݲh��>��of��֩�[���`$H�I����ص.��N�>i�t�0.Wz:
��0����Q�]��X�ă�!,�iؐkkkid���1?����n�
�h������l�7$�[��
�}�b>H��//�y�!�΄`�	Qc�,MvѲ\:3��=;;�{�J��L׮�`���RZ�C�� ��ې��dO7r��z��w��!���o�FQ>�_����u�|a��jc@Da��<�����p�*-˫�cYmB��C�M㊕��^A��%�i�$!'��ˀ�ϣ��+�L#܁�F������k�J�<�gr�����Ɣ)S�b�&������$27�pv�E[�B!�B!�*B�Ct����2#��:�^�t��WO���T?_B�M���7�
MI�~D9�M�AZ�2��IC���gb+b���}��wQ	u��R��=�}p@7;�Â҈���Y;�l��l���� L߼y����6��֡j5�o��32�XB��s̀����i��~��<e����Gc6��!b�'�4\�}��N����&�@{�|��cutS�@�Dco�D�cô$���?����|�t��t.��#<���Ȩ�x������zI���9k|bJ�_�0+�Gz����6aH�p��yOh�13˥�At���r�'&���jB7v�м�}���.MO�©iI�5ϝ'�=pp �v!�B!�B���"�ʀ�!�{8�<�'Ich��p�R�h�o�ɠh���74�����N����\!i!y��6�<\�;�͙o�$���72(��<Њ�	���Ⱦ.��k{̳��4�xi���2��v��wti�'�.(׍��q/7���a�u���Y��	tf̳���-�4��2�O�q� >9!)��kb�Ip~��
�����]�#A���/�V��؟�<��v�5�W�	u������,����9��/:x��]Uu�
���Bg�jS�3$]�t#��Gg2�CΞ;�����w~�������Q��t{�ݽgo}GT���ٱ��i�����O;.uyRl`���p��~��}���%V�G�y~X,O�?{���Ӵ9z���?{������6n�=|�&�?��ӭ\��l.��>�pfe&�l[�����^��UbB!�B!�h1� 	�:$@�x]��%�N=z�ө�E[0�b.(\�tj�ŎOD�%��Ќ�'O!�G���!	�n����v~X�j��)̳q	ɶ�Ѥ4��������:[^^7�[�,Xh�h����3ڂW3��Q>��3��1�Ę�2��m���킅�?�MH&��i�z,^�ǺX)&�%��}u�-aQ1ɓ�-�0��0;Ӂ	�����˯^��.��q	I�~~�j�~����g���KM{ޱ:�Y#���!}"h�Hv,s��/Μ�:�(�m��7{��Al�8�����A�62�r���N=��n��3[�(&�N1��{��I�Gx��Cj6_n���O}ٺ���八����Ɠ�}����8��������
8ē'O������v�XHv�-";<k�Ie�y�L�B!�B!�2�ut���OM
1�������l�����+� z�5oK��&��@�o@�&��?xG^*l�dv_���{�v����;9&���-H	��IمB!�B!Z��h��B!�B!�ʀ�!Z�B!�B!�r@��!Z!�B!�B9���!Z!�B�/���@��`_^<�
b4�	G���0�_��h�G����f[�RJJ�&�9�Z @�9��m4�J������h�@��}m4��	�4�$@w=�	�&@�	�48�a&@��
�&@/;wtBQt�~
��� �����	�4�
�k�m4�.�M�~���h�>@�Ly.�M���0Z��L�?���6�{����6��.�M��w5!���L��t&U��pp��
h���-@���Np�
8�a�
Np�	� @�&@@;'8L���h��
�m4��
�Ih�/�M����;Fa��(�/��܎�6D��0X��!��4��+�e��
��Y^�&@���N�<7�M����h��SJ�	��m�
�m&@���	���>B��m4�h7�M���h�öm�0�߲��8֮��|�4Mm۞��y�ѡ����,� @�}��}Y�M�|=�뺪����STڃ�������8���`|1�k��b{ol ���n��^D𪈽Ec�^�E������`��'g$3��Đ�
���/;;k���c�9�c�	&<��C��}-^���s��s�=g̘�O�:��C]�d�K�\rɴi�~��^4�W_}����z��G{QEQEQEQE��KS:���_x��7�|�}���/��#�;��k���[U��?��暷�r�*���?�A}��+����Z���9�zp���v�a_}���c�9f�����i�����m.\���[�q��̽��+��zQEQEQEQ�x�t>���a�m��v��6C?���~=v��U@/]�������Vw��s�n������o�ʿD�{, ۽T0�ں�W~��I����^{������'��i������^��6�|��w�(��(��(��(�F�V�=&�|F.���f�����r;�3��]<��u\~���߷�~����O?��̙3�O�~�M7���u���>�_z�%�(+a�*p����p�
����۫����駟VC��o���w�m5C���*�`m���(r�����o��O�<���!��k����~����t֬Y�w�	���?�J�?���J꼿\������r�?�@EO=�ԭ����Ͽ��[���K�-�SO=e.h~�y@�s�W��ʉ��s�=���?��Ȳe˺Z�MY����'�|��)U!o�]v�]w���>{��g�y��tse���j���;��oZ�rn���6�3gz�w�	~�¾�⋟}�Y'��E�����߯!8�'O���[H�<�O�-��	ʯ�-*��Y�LArƍgv�h�{��ΰ�[q��)3�[}Sv���3��#�<r��7Y�3�N�(��(��(�����N
�|��O�'4�7iҤ��>�hp�N`�uT
�*
�W�ǐ4�`�
4g���6�xc�}�3d���l��Z ���"�ب� �Y�W_}uй~B�k��H-�~����s������?\��h��&N�8��B�u�u�1#��㎣F�R��.ЕR���[�i�W��n����E�	�nE.��"S&�����~�R1z�h��Bu�7��V։���Vv���?����f���OW�E����c/��u��|�AZثE{�g`�e���*W��[q[�9�#��]w�U<Z�)S���O>�d}ZD7X\?�ؾ���z�֓H�O�b;a����F�-�����;�/�)����]v���&x��g{�Q��%�
�d�x���n1��w�y�м�j������o^��^{H1h�5�k�>�h$�EQEQEQEQ��Ԁ�g�hT���u���f]24�<��3�Į"đ��fX��b�� �y�!���4�f`�-*�)�3P�YU�p@�+
�3�w:�t�l4���Cm+HK��#�,�����	IJ�B|g���1m�/�����X]a����цwͲ�2�j�UU21����5YH-�> �A�ug��15���}�I'm��\��e8�[u�%,Ռ�W��p'ory��uO*W��@9���,pm�H��`W��U7C�]rL<Ƞ3��X�j�I��[��(���`z��F���2��_�����Q��e'w|ϛ7���VߢC����ˍU�{@\�&���?�Y�.���a���Q#9�\;�'ZطMٙ^EQEQEQEЩ�O��hlѱ� iq@5��������J�
��
pt�me1�f�,ܩ,Z��~��z�	�\�v�ԩ���ŧ�~:�.G�d�G!�"�
@à�!l�Q1_��Z^.i��E����h}�0����9y����x�E��!8&�*�/�����ߨ6��g}�
�8�ϚH7in�Խ���h)�GqRD�p��*l���(V^l3�/F!6g��-��r��B�EP5/p��Q9
k{xx�Ŭ���!9��_��m�rwq-���_�ĝWD5���${"Qv�+��b�ȭ���ql)1��]t��]�R������}K���hD�omZ�E�{QEQEQEQ�x��O�J�̪0(s(&{��W��P��hf�V��,� �@o�����
q�=3S�v�iX�"�)�Y5(y���DWUKP�^�p!�/X�`�%��=���9d5ћ;1k�md[����,�m9y	���*���e�6;������
=7]+9���8ţ�H@C�<�r�{T���b\����|�L�J�H�Jngs��E�=f��\��[8�h�o�����JI������O��ן��B�����`��j
@[G�e�+�ֳ��	D.���'��=��O�bw���O��.��ظ�`�G�@|/��(��(��(���8��	�^���hf��T�4;�q��&�Os���hV\��V�΃Hpê��f�UFld��wڴiB�;U;T���P�-x��Ǣ!��*�Ꮬ��n%��Xol��郞�%$��q�"{�-J���N
X��u�|r@�0��bC��㘛�:T���񟦚˸�ArE^h5O*����8�h�C�V�h%5$׶XZ�6��.�F~�@���-�;=Q����.����䘎n�g�I��~s����=�����< ����H4�gu���mf��W�܁m�8��(��(��(��(
��'���Iq09��>��@'l��bv˖-�m֬Y���ٳ[
���W�c@Ϙ1�@K�,��
/x�0Z��e�g��
~e�-4<�u��B�+ֈ*���hL\V�lm�d�Y�ԛ���%uBL�i�����|��*��sY��<ɿ9v�����{��A�V~�++�͕h9��J���slR�v@Wae�hP�~Ze��h51�D��ٜ۶Q����*��?~�Y'[%8����l�*
�L���/��LYJO�Z�֋�(��(��(��h�ke����'�?�?3vcرh��Q�Fa��p�����Z_�7�vܐPNV����N<�DI�hV�*F�O����U��X\LԲ��,��3n�h�J7(��T�*
�1\�����łqdT�(���-#-k��$<�:t3�)�2����r.e�KpX���Z54<@�9|�YU&�w��*�m}e�-]�9���J5?r˕�2��p@/@��ѧL�be�`(��o��=��_gX����	����3g�,�!>n���"{6�mS�1�y���dy�(3
��_hXY�[�_����9��63��⪖��m��%�EQEQEQ�o��椵(
���(؂�`�,B�+�#!%�}�a�H�	O�Z\�zs�'���>��.�+�]8J����8�M�\)����%1I=%9b�y�D�]2ڲ��"O���2��t���(!��s�<T�����sc>�8E�J1����������{:�+L�vYT*y�{��K��NU�0]ͼ;�o4J�Z�9����V��4'�0,�b�b�g���1����UaF�<`�'�L��:���y���	)��\˪�3�j���1��F[D��*�c��.�N��\i]���.ڝ�ݔ,
|~~������Y�h[��y�~B���6�U�@y��De�I�Xwww�e�V�A)�fn�j7ợ���яooo��,��F}����ז�g�6�)݀q3�����?FDDDDDDD:ݕ��.T+�� ܓ�L+1'$�=�Bbه�@a����X�O�))�5뼆�&cCSϊ�Ֆ�T�w7���t�T�ݯzt�_%�]���s�U�'m�9cu�P��[�|��Z'�Ea�Y��Y�S,��H�E��,N�`�k��4:�����c7禎�DZ��ޏ���,�\����.�g�2�Rdh�7������z�\���s���+���l����=�(&�dk}}}MI���n�e�gL���"�5/^�
��ۥs�&A@�W�O6�����^L��Z,��	�ob����S��7	�~Q�>5̨�6���LJ��I[q�p��E�-�=��]@�E@w%��
�1Y�'6q�����U#;�.�<-Lj�����������t\'�ȸ-��#����w��Ź�Lj������� �A�ݕ�����������tW:�KRp��+Bؕ�N@GDDDDDDDD����+Q4n��]	興������@�f�T^�.�����	���&@���m4�Np�
��>!4p�h���(�h���0��#)�	����n@�
l��v�Ú�;���(苅�jZt@�w�*^�
��&@����
�m4t'@�-@�m�'@@�'@��h�@��U�2��	��&@��I�.���0x�]@�
�f�hB�Yÿ�m��B��&@�����&@.�M���*@���h��	�4����h��	�4�f4|��R�m4�
h�h(���&@���
� E��E��#sE$v3�-9O�o���	��7�M���
h3܀�M�<�a�
�<�!@�fz�n��7Nr��I���"@۹��Z�G��
;��FD�SD��VX�vb�^2��{��)�a2�
h�-@��M��ڇ�;6��(�����O����B��O���/@�}h��.��h`�	�&@#���	��OM�h3|B(@�
x�h�赏m4��m4�
h�.{wP�@�Z������#0CT,Gp�L����	��OM�6>!t�h��O�6p�h`!@�m4��	���f4x��	��m4��w�4�@���j��м
Hfr*6�h�
�m4 @�
<-I蹶m4pK/�M���0�GU	�&@�	��f4��P�6;wlBQp�4	d�i�%�#XD��O���h`����m4��	���"��	���&@^p�	� @�&@~@�
�}\@�
t��pm4Pze��&@�c�M� c&���ŇM�<�pU,��B��!�:�a4��	��f4��	��&@^@��h�h��_��&@^@�
��\�hx�ݱ	0���ud	�0H��IXT��6��	��3#@�
�&@wT>!4pm4p�B�&@���	���m4 @�
�c�Jb��������Q��‚$~@�
�m40��wm4��	��B���h�h��f4��vm4 @�
,h+@�
��6�c�Ma(
�ec��$u���S<$�m&@��2s�ևm4pJDxm4p���&@WT��&@�	��#'8܀6�	�	��f4x�t�C�6p�h&{wP�@�Z��
5�G
3D�r��
h�hpZ�6p��h�:@���h�
h��'8F�6p��h�^�h���&@^@�
,;wlQt/��&�GH#��M�	pm&@�-@�
�&@��
�m40��^�^��&@S���	��&@�H��	���$.�M���0���	 ��쿝��M�	ΐ*�C$�M�\@�
Lh��
��6X���	��h��L��ϵ�M��m40v}\@�
�|��]v����~��1��OD$0éXBh�h��f4|��	��&@k^p�&@�	��f4���M�h���t�>�	�&@P�ݱ	 Dѽl,���K$E�=n��D�RU^@�
�����h`D/�M�|Bh4 @�	��B�h�
h��E/��}�	�@�
h�h�
h�7��h>{wP�@�Z������#0CT,G���	��OM�6>!t�h��O�6p�h`!@�m4��	���f4x��	��m4 @?{wLAP.h(���K��d&�bC�
�m4 @�
<-I蹶m4pK/�M���0�GU	�&@�	��f4��P�6p��h�����@,�.�(�K�OJ��8�U�Hz=��M�܀6��h܀�M���0�M�܀�7S���
���	�@���&@-��܀6�	�	���3��8��R[�v��ݰ�$�l�K��&!�"Ǧ���ͦ \	gq0Gl0>1��
�-l˷|�떬��5�ct�Ӽ�4y�7�5�ٲ��`��z���u��}����ב$I�$I�$I�$I�$I�$�;��yIZ�yF��=B�tc�/�T�$I�$I�$I�$I�$I�$I�yIZ��iIռN�^Gw�6kųٵ�jW�#v�lYi^Gw��3b��;k�j\�" �ͥ
6��7٬�~�$I�$I�$I�$I�$I�$I�"G�yIZ�yG6�:�-��[�_`ѳ�����*��Ul�]p�
#�pO���l�6�1bs����[��4� ��s���*vK���$I�$I�$I�$I�$I�$I���%hI�NJ�(�Ͼdŗ�8��Ug��W��P|I��i)X�,��h�b_��KT�-k�<;��MHո�f��6�9^�M_�⩸{Ds�H�$I�$I�$I�$I�$I�$E�����Ȯ��\v�]��v��5�kN�v6���S�xoD�@{������8�9g,�j�y*���x޿hC-��3l��1Z�|��x�˽�:�H���`3R��w�m��_�tE#	Zs���d��и��}f�]��$=���i�:g5�	M��NR�yN�%��:�h�6��O?R����E,\�a����&p.+���}/d�+΢�p:���.P�$I�>��˒�:�'A�Mf@�K^_ZUG0K�������n�g��x]^:괫j(n�?d�j�j��q�	x
���QϺ����ASߐzRO!:�>w�ƜǑ�fSg�R����v��g����8͇9F�9ce��k=��L�l�Md.�j&S��*^��F����<��T��R5���T�����V�+�=�Ϧ�aPN�
��
���i{]�؉bc>8�ް�b��G�i�B��V���P�}L�
��+��h�
����p��{q'Sb��!��L1Sp����_�5Bf��u�&O!��~��N.�CS
��q�	8�#nv��Q�P�}C��Cx��A+�ϔ
0444%Tw���-a4�3���gN��;�H�*�OkǐaxꉆkLwa-��a&�◮K���`�*M1jP	�GF��0E)s����t=af���4�D?�-�x1@X�:�F��wp�L��K�>�h�
=6��Cƾ�ѝ���2���ԯ���ĥ[ʤ�L����qVV��|'���AK�$I��'f��y\Lg~��h3"l�a+"�)�;�����-=��8��N0��W��%��HZ^��"$��kS^��fq(ok��g�x:^d|�9�q�gd!���Vvl�m(h�	�2�v^�-W���2�*ݍ����N�9����h��$�qeZ
��
U��Q�ٌ�Y�g֛�}e��6d�t����>hWr�iCN�[)�k2j����-n��(@I[�M��.���7BI�0���-h��$h���Ӎ�}t��<�K����߬ڽ����R��
V�I�T$����ݺ�(�z�{�f���Ƣ��}�66v��H���Rk�@�2��ZV���m����G��y���]���D~sϧ�dkas̱���A�������ԍ��Y,}$��FK����=���5����М���x^噘ҹˁ�>�#��v���p?�VBU�ukR�Ϯ�QH��q��tpd8����U�2�fuF-#K��Y�]i�S���6M�7��D����4ԙ����*ia��^�Zsú���g�߶%�霼aNtGT��Q��=!��f��X�@��V���5����M��኎ݥ���9
ׯM;\�!ʄC�m��NS�0X�)�\���r���p;F$&��:Ӻ�:nmF]b�	�����".j须(�L����F���ut#j\��+��,�`Y;�G]�
�
�m����QM�DQsRM瀪z\�s
3�>¡�l33q�qk���MO�33X������d~k�{ťen����x�(n�5��|/D��ֹK�>������o�զ���M�Cc-T�~'��{kR3��OI�8��˃f�Wu�ϫ�j�Qo�=g���)�͔j_X�,��hc׻Y~�07���<j��uK�����-;��񖏏(k;�?9Bgv7_�:eOi+
���jV��%I�$� iCWT~1��i5Į����q����Q�ͨˡ��w`K~ST��B5x��o0�����'܏F���7�V^��S�)�WHv��kKAѯ�:��s�	�6���M\�\"��l��%-�s�y�wG�+ک<�{⚻���X�y{!&E`�Z\�K��)��+��IU�~pg�ꐧ�Ɣ���U)@c�� ��$wab�T@6פw���������K����XÇ�6����TE�:������>�e�bQ�ԾRe�!��]����7m�i�`y&ɩİ���Lyy������N�u�\`�\vPfNCvuD������$h�^�飀^L����\Y��}��ėa`ŕD����W�2p��P�(I�r�T��R�(#�;�T}�SI�2L*�4Ri�6k�x�dV����#vOå��<g���Ģ�?pL�v��2g�U�+:,���eQ��
����y4eZ��l'p��K_?Rc�cj�/��S��#�	���2(J�4��ܦ�������v�GO�y����t8B:�ƞ�?�V�۫,8��.0:L[;��N�l��ۗ-���7Criq�ەc�S�Є��5�ʃ[�����{V���H_������\�$��ޮ<��`�O�{��;k���m����05n��,r�4_y
��GLY<|�1����(�=f��.����e�|c�ؐ�s��w����h7挋qx�%�.l��X&������1���^�>���K��W,��xI<�5L�{B,8rŲ���N
py��3��r�G�ߴ!����ˮ�`YsO8fM��w�vB�R�}~l����7���ve���Ox��k�~q�\(�~r$��ڔ����)&���G�/�Zz�����a�����__�x"�����L l5C��FM_q�b��YҊ��' �ٍݸ�	3;��r��7�|�=�Iiޱ�S�ʀP��7Sj���g�;��~�6Myh[Ik��=v�FrV�z�0�$)�m/T��]،x�W��c��<� ���>� jQB�0�O(g��@�]w|r��u��F�H�an��_x������7�����c�8a��ͤ*a���f>AGޖi��eʽQ�.�g�&T.I���%-I�$I�%1��^�VA��)�S�iq3���� �P���j�C2Y*f��|@��Gw�
��z�&1�4Ù���Ƨ���k:��\!I���X����o>�Q��E���+�ep��B@���i���^�L�L�-��V���<֊��v��l<��+���V^ؗP�Ij�ȢbI~?��J~獄�&w<�C���p��c�p��\�6Uy<�ԡp�g`8��\L�bq\�r���y;_���T_�O�#�֚�e�?�P^�㹤�)�R�R�L4��CHQ�ꂸ�	$����+
-�.oN��FCE�R��\l�(og���k��vN���(���������oX��"(�h��o�].�n�C����H0�7o ������,u&uFo��bhDW{�ќx�ZGT>E��ن���2�������l
.C�q����]���
�p�����\���� ܸo���k���-�y(+��,�� ښ��6l�Y��+��&~�~VZ��+�ձe��:�H�I���Ns���P'
	H5<#�V9M{��
���ܰ
4j=�Ύmc���X�+���;;wi�m����P
����~S2nHp_����~�O��JNc��A��H`��k�6�H9�fN>��D�/�.YwѢX��"y/l��/��mdS�����e��fUʥ����pۦ���}�,�C����~�>
+(h�)܂a�[��	�B{��(Xh2%���}���x���7Q��Q^B`*�5J"�o���n�;����7n~���G�9�	C�}K�L�9�K��I>����C��}��t�Lv��8_��B�	�]��=�#[�!xpG!�Cz�o��޻�o��"�W�^�0�����*�;���B���1�xQ�863Т�W��̉)NƯ$�p�?�M�Vh>�J�	���д��1�Q3��'G�`�0�hμ�r���Jq2�аz�	h��V$�[�L�,�� eW��p������4��ī��E�t����L8�r|||��C���a���@C�y!�s����V,K�"0}dW1�v�Yf,�[8��+a=Q)e�{�������*j�eB<�Ϳ7������t,&S�F?\�8�P`����*O�X�^#�jCVA3��4����7���4����g����W9�f�����q
_]��cI�F�˗���X����x!婝?X��= 54��	��MJ,��x���+B-a�*�G�h�*) ��qS�<�6��j�"Bx�;�<+S��K�+V��h���j`%#4�Wp	G �����z�T���jt�g	%|���Y��t�NJ��:�� �j�����O�%�$'
�a������	���G��堥��x4D�A�	Z���ٿ�fe
ł����|�(k"��태zx^�$�H~�})�@��P'����2�e��&�G�Y&�C�Ң��=J�X��U�1R ���|w��C˒��[{w��iJ��rZ�}��~s.2�p��Ӑqa,T�i8�������QT�v�)��-�f���tn>.1�L�/g���5`GBK���#*"��Kn�����W����~A��8$�{`��p�<�Y��4�?�J�&.48�����T�$I�$͎�|�D���֥�ђ��A�a"@H��I ���!>��R�D|,��`ɸ���-��E/^�?ńȊ�����-���SE�N�@f��\z�$ U0���d�|���Ms�1L`r��E��ya�O1iB<|��<Ex��U),=��F�7�N�Ɗ���H����%I�!9+�t��u����O|��xK����W�����+c�Z,V`[+ү�)s�O�.��,$ȿ ���=7�U�x�di�߾~�pE;������Ɯ�ܦn,8$EN���}b��
C'<���Z��'��w�s1W��>Ȯ�m�!��-|�N���J��[�`�q�Ȯ�Va�|X-��p�.�Ί�we՛'V�le��;s�0j� \N�&'U�&T<���@�</�Dx4�����=��xS^SSO?�F`�D�|�
@3?���+�)h��4)i<��Yf){���\�Z-��E��!B�̓{K6�5‡��!�c`����&V�*`�3�;�t�\�y����do�י�`�/8��-��Ȯ"E1��5�x`�Cm��'Ƌ��#�i�9����2b�KW��-�f�vX��`%�[t��4�c��X��<�w# �h���������c�%X~k��nN�V5O䤲�d�G�K~4��/�����j��Zwj�աX׉/t��f�%Tuv
y&���B~s7�����l1����N
�Q�N��~�N:�$tX�X��bl8aF�:Vnh�կN��.jA�(CE���$�t�����7�0��Wu"��!|ou�e��͹�(��!3�ܳ5���_�uX��;�s���4
��1LB<�pG@u�'C�L�c�aGHE���P�r�<�Ca5l�M:��1N?�1Y�M��H
C�/�	,O�&=(X�„VqUQJ?�������?@�DB����*;-d^�,�����B*�nej
��:��
�?�o9	���6K��#^e]F]Z���_W$ޅ�d ��1�
��tn��7he����ƮϮ�l��F���g��I�Fy8���u�>���DO��֙-|L��nV}j���	h�p���'`��p�R/��(�3��Mұ���	-RG0�V�5�PE;�F�5�-�F<����g
l����bz������=��y�;�Aӓ�P�Z�r
h��jt���3C��O��	
�e�`��S�PW���
H��z�Ma8bX9�`߱V�ψ��N�y��
�F�Nx���U�5I5&$�f;[��\a�ܭ�s���(b�|q8�E����V@c-C×-�G9�k�R���������x��1��X
oջg�@t�>ԕ�h�h�󙛾�$�����F�ff�3���Q2��L��/.�j&#nr1g�EV���ؓ�؁�N.��;Jz�`
�0Ż���>�$Vw�!���%��f-��ӑ�.�ϩ�)o������&�IP������l���c�^h�E�DIR~�ɪ%@r�;�0�(9⡐s�q༚Zuf��o�-�D�Jƽ��G�Man��Iv��@�{�YЋ+�3X�Tɠ|�o�������@-�i�&,��h�I�g��Dۙ�(@/��@�>-��-�:FCsp8�/�~�ko&�{K�oW���q�
�Aq<}K�3��;R�ҋ����2���17<	����>t��3�>����I4E�lA��C)n��rUZ
ޠ�iW�E�`��C-�'J�E�>���̆2�cC�A�W���i���؉�Ϯi�1^4�*h�]���Qf��[�8
#-�_0|��DPm$�c#�U�>�8��hc�n�Os0�8}���t��5'�G� �kM�d��p�dh{TA3=LY�y
a�R�L��Q�D�9����WuZD���������X:Ä$�f���z��F?�		ox���e�9�Z���}��`yu�o��GVU�-I�$I��1	�������:���XcV��ј�j�c�n4��%n�jb�Qc�q�&��A���" �`i�`f���U)J/�  �����ua�?��������}�9O���<��N�����:�X��ȖCl��n�%�b���2��ϩ�D�Fo�.0��&�9��鸊��O�Z�:na�Y��sa8��Lfh8l�&��W'<�W��U�Y�S��O^�=hTP�p����uⅅ�N��K�Lu
����S�m�lfȟ�EƑi7�-}'v*{C���h���l�"HN����_9`�|�#���o4�K�H��M�v]�$���`��ܨ"��}@Gx������s@�IA�õa��w�jDi�q�+�)�����/�bW��\�(_���1:⓫^�O�[�C�Ut�#�ʿ�b���O����������o��o�,�:�s��D�
dr[���!:�U6ur��oۤ\Q��e�^���[��㈃��ܫ���.��دt��M���oy+�Z�>y~��l��:������\,����.1����2�Z����{�o�W1o)��oB1��^��t�T׀��U�Rũ�;�j*V�nJ�\�H����
Q���܍~B��*"6��T�[-�~�Ee�q�C���g7�^������(�X����>�q�k)���^M)[1��tJ��w^���є��θ�5�TM��'T1j�+@ɾ�U['�.G�F���}S��;BdյL`����,�E��O����q{&��m�d���[R���Ú�[+R����I
6�"Ll# <�Cq�-�H�1S�����_I��ݶ�B�8�5��z��=����vp�|Xd=���Z����<1���O�șO� ��Xz�Ѱ`���
��`�yq��_gap�{n"��g��E�y$�S#�w�5P�����O�p梣yK7���q�h�߷ri�;_I��:��������������N�'�zpӼ��<�4\n�`X�^O!�E���[R������w��0MF�P��P>�MZ�ⴎ#|��]4ϰ���I�u�
��JQ��v@��g�=K.�F(p�g��ۗz���ҴZ�3,�?Sf���� ����L4�=�J��[8�w�,�-�&r�<֒?��o����IG��{������3rT��s��g������۶P�1�5v��u��ZD���X�&m*��ڕ�I�u�\c�Kq�=�<�48�Ԁ](|Fg�ԅ(��G��٩#�E��Pk;�)��C낏O�Pl0=�=��A@'�Q�Y��ƹ@U\�6}�K��^����M��0L_h��:���d߫���X��m�
4�t��Q�"(4)��Mb���l�4�Y�UÊ�SHDu��w-3�v 4 �j���ʏXI7H�, 5�����fo������A��,���Wr"���i=�k�s��Y9�es�P8��dd
X�z+cr�C�
Q5���̀�RD�G�N@s���=*�D*
�Jd��EB������@]܌��7�{�E��Ua��N��O5�>�q	�� M����gn�?]O^L��d�d�}���_�Ct]��������צ0�J�R<�N�K���{Tz�ݯ������'+5�3����:���y��6����ƹF�lR�t�%�X_���
\s4;u-Ê����Rb�������Ih<Ӓο���1�A�q6\zm�������P$��6���p�k)�m�Y$i�.Y��&����۵��sL1ڴ��H�:���O�V��_#I�m	խ|�!J
�=���3:�"O�o��^`q�/q)z�}a,j��:R��t>y���f`-1.J0��h�t/^�/E�Q2�t����v���3��׺
4T:6�H��8��)56꽳b�q���F򡂪06?q�uk�ךae���L��'<Z\g~9�w
�t�������dU�G_ܭ,���*�'�>���6˃z�s�����`}
��ǸE^SrY����>\z��k�d��4��*c��L�9�J��Y��F9�4ɍ�|���ѕ=���,�}e_�W�U��
Vf=9Q�i�&�b�L6n����
s�)
)H6z)���L{���'̿L@�5G�V~�Y��n�;�Md"��L7�E|�$/�8��!v�)dnX7�vE&�+L\����A"�e�l����O�=X@K�2�X^~�F�|x�|ο�N}|�{*|pA�#�U��̸�D�l�Um�J=+�H�a�wz|��9lp-�=�;��C�Ζ�Ⱦ��h:�#
;ؾM�s%��kzW-�T��2�LR:¶�7��Kl�'ӧr�
7�-��e���ؑ��Ȱ�y��[�35�:�~���#�����c����,0gE��?7ƽ2�d��6C�O����x���0ۍ]�[=���K�j�
8F\��t�1���&�{y���C�K�풀〛�_�Vg%�bR��$�9����2jk̼��%��Nh_,_�/`n�W˟��O=���p�V|�����#U8NKB�$%DV5%Nʒ3#=�g���W'��z�'{��m�>˕6��i騦�7ϔ��mcT��Ŏ����6��Y����?����@K.~�-�L��m\�Sj����4 �cp��q�h
f�e���wU�՗�߿�A�
���n/�=�J^�q�Y()UZ�D���^���!V�Z��oް�yӧB��9iM_o�o�aU5�U�.H�2��1L��ob�V�3L$�R)#D�_�7f��K)�n\P�T�4Uh5<k��"F�$�F9bTi�,�yS(�+z�ɛ�6����Wm;���ƙi�.=P���gGK�����k���勞�ՠ4.�9F���t��Z&�ү�}x����9pɪ���
�����8���pK�A���4ϳ��Z&�_m��6ثʿvN�/4ɕ؅Z�n��2�����+��q�b��TUZ;0��d�6����U�?4Xʀ�3��M�YO���I�U�-����� / ��9�sJ��w"�>���O���4T�|�hq;�]!�J�[�7_�Bq��:�R�R��|��H����X�k��pk�l��08�5� Q;���x�TGR�0��ȥ;�Q��@OtY����H^ג�kO�8��H�3G�R��c�I|6z|\lyI�ri�R�Y7Z��@{��P�%@��:�(�S����O���_�V�#�ؖ��12�1s�:+��{��[��HI�)m����峵�);��Ex�vX"BM?�M[��o|u�W!Gj6ԉ��6�ra7��!6Sv��0#,����͡g�͋N��K)ê���!ҌK	��Oߥ}g�8=9�d����%���FX@sa��ӕ}7�����ht��	�}ÖYR�U&�2�T��O�ȨE��\�`�T&ot�Z��^Xq�� �w�!K������L�2zd(��p&4,B��62�z���X��؁�K���S�PSJU�1�5<��\x�ȳ�D$��)5@��w%�r�Zۻ��$�N�E
-�4hxn�tN{\,�֢�űV��)
��|��dC���O����?4�z���7Vb��=�q<R�oM򺍙wn7b��8�E�XsJ^p�T}%�	�l,w�ے�����CIh�ݲp��`2,z1d�Ӷ��
zi����M3o���VC<݈�Iݷ��OȾ���%.E��gٚ$=�~2R��ع�<2�*>�GM���� ��^��8���b��evȢ�{�dw�kp��wמ�8��#���a�d7zj$;��U�R�;p��Z��y�f����O��o���k̎��+��Ã���F'TW,T�Ӡ]�R#D�,����8��W0�Yy%e/�۩�
3�����'��s�ͰB�ݯ�-�`e�:��E��I��S���N��jX����)�
�;G7�I��6U�1�\S��(��6ƮG4�������>[<6�&����}�v�|�{��I:�.1/��6��F��/�Ԏ�2�"���O2�F&U�$�ʾ���+�ڋ��iZU(A�R�>޺��b��-6�~��P��iO����f��e�߅���Ot8k(�f"�q
��x�ң�2
n?�^7��[-
4.�-�嵉��ϑK^����*��f�6L,5;��`���[���Ο^�'������{pT�
R^�g��AL�(�H��	m����4�2��
�2`�֘i�Е�+D�5����s!m,�p�а�h�g���@T���ϖ�.y���m�*��`���ӝ�h�ڤ���%U�Nù(R1��_9���^?͒s�ѕ�D���Ωr�CQ4����P�9�l�NrH�\���OM5)���`���hQ*CbL�[��e�����+�{N�R�KM�[m��>���n�2��#v[��ɰ�-�d�����M�A�˜��aCFCl	���� ���vN����k D��ꓑ��t��)Qj��^��VC9�":S@?�� 	���]�x�"4a<�%�4�o�)��*����Q����	�/yv4%(7Pw��[��I�.����3��2xk����>�t�qޏ&�������T��>�<��v����&��޺岌kQ�zϩ:�Uv�n߸��=iʕ�
�yo�V F�����S��i���p
�hIv�!S5͇�2{x̯M�
�'/ 5��v����5(	��+s���D���l��P�-x�(�^�`!9�ș���~",޶�Ӻ��a'Wzk��t	�Ad���#���) O8%�+�7h�g�Lr�B�/�6��B���-,w;؅��@
�~�m�H��rE$��'AA��҅�u�:��U1��b�}ۇ�ƷoX[۾HM�b��睒����t�|�;�z���vE�� �p���&幀	�������K�2�[�j���b�f�6M�G�%��V;bu㦲J=hY�Z��|�Ħ�y�V�/7�w)m�
�m[�d����ϔ�>��c�L����}���{"oO&�8F~����i��w�t%8�j�\��y�X�D!QP�x�b�\8;�nF��A`_j�z
Ƣٚ��r�F���Kz��H<���pm�Q�F�-���r�52�(J}��:��i~y�M��ق�0�o��Uа�8�9��&L��H4G&Z�D��c��NP��*�_�@G%YG�Y+��1�!�
U$η�>	�J܈w��QȬ�(�{���?�ƒ {d�ɏ?�yAlQԬ��)�L+�61�Ň6ͳ�k������dx��
4A�+��v
@���)t���4���-�$@ʌی�G~
�i�ۏ�A�(ꅀ�-T�}��U����Q?hW�r����n�$Z�c����1��n�L�� �����T�{%cF�X���Ea���p{p��	��+��uS	�O�VN��L�.C�]���G�#�Gü*�C�큅6�LYHdj�RB*yVn���8��)�vx�����b�mV�Z�mWD��6��kW<#*��~��ఒ���~@�;��}!�n}��pm�,��P�_�p�p�S%XW)6?1�V�1��u��#ge�����bt��Wd@�`	����u��qp��rl@�Ȁ�$>�fcё��M	_�i�T��*�'F�B��[��u�A�����Y�.S%�]��՟��>�S)�³��`�)��	�r>B|L{��z[�z����gL�V���S2��6,
�Rf�'2��3�Yi"�Рazi4�l-q/�~�N���F%D����d��b�Do�7����m��j�7�� {Da��}e_��^�xԢKڞ�-����守)x,���;�k��l����\��p
g��?��&��j[$���d>j������R����痚��	�LeTΧ�)y�
�0PH��i
�
y���_-��
�n7|+��T�ζ-�.��[�_��Y��h�SI~z�bU@�z��#[Wu\�6���e�0f�R�D����j]�J��yeX�W��_�9�?���ds�ξ�Uhe"���G�DJ,�W`In	�[��P�������D4+P���!Dn�F��N�P.9,Y�R�ԓ�4:h�
c�$q`ȼD*0Al�u��A&���tuob!P]U^�K�iR8��/?�;l�V�,���]G�,Hfq�c�S#f	��7���Dx���>�QJP��U�5n�;�k׀��S�za�����Ugl��(A���[�)���-�$v��ÚjF�A�������!��JzVR�,eF����PE��h�kt
mQ���yv����Q�/��u,L���w�ԃ��b/dm�Mױ�����=��w��YS��o�2믮�kS�|�<p�gPuמPu�Ψ
d��M�;��D�7,/{o�֝�9CQ{=�y~,<Ã]L��S�fr�!6�U�`��n�De*�� �]�p��$�i��Cل�KR�L�Wj��2Pl-Ʊ���H�lYD�P�K�������gI�B�.�$8Q��oaE�
/�,��z�n��
�x�7��'v(��J�~`���Z��Z�(���%J��r���1#�	�F�!iن�A�����<*K/8��y��h��P������5�"����xFf�K�pX#p0D�b����r6�A�tf'M�!��I�d_�lt0#鳕M�zj\CU�@릐��}��a��W�	��F�RS'�)����<n�R0��=\a�$���d9�ؓ��BB�5����*xR�����þ��`ʿ|Βg+�_<i��dPJV���)�gi
�t@��i��)�b��@7�Kn�!5�K��?O�0��T�a��,�%g���6�*�T�:q}���bd2h��*�b�ܢo���Y����a�y��t��!�g�-!D��	�C�YF�|
V�jT��Iy�d��/�>�
2��f�B�M�輣�$#4�0
p��Y��53F���F���w�T��W'0�k\�w�5(�ы!%5ZP����XA����2�͵sw�w��k2t��My{��h�H��T="h���pvZ�Oi���ٖ����H����bu��n7���F�Hf�RY�7~@�C'�߯���Խ��w�t����6n�.H�!;�`�}q�<�P�!��	@s����H:�������L�x& ��;��iz7j�RJ��/A'P_7[r�Y��>2$���,DRw��4+����}T2J����~���b��f�-VT���>	2�<�h?�=�'�1`�8kj��>�0�8���Ղ��A�c]["jԀ�Zv]`׳;����#Ɵ�ol0��$��������k��hni��Caz:\��h	��NX�	��{S�]l @�]���J0���6��V-���ϸ�
5��G��KIٍ�NЈ���f�x-z3vJЌ3�zͺ���74��qB;�R�|�a�����Xg���+t��-	���+�ʾ���k/^t,�OKdX�XMg�d04h8��6�ݞ<�k@
��q-
�4��S5�����	TVN���S�G#r�<�q�?/�qr�Nn[4��˻`ݢf#72���I���p)2�O�e�Ȁ����e�-N{���V6y]ܭv�g.�@�6Y�(��F�`ߧ�2�ȁ1�?]�왲�h�䬗Ǵ
�qA�;�a�l�[¢9'Jp0d߾��=�0��<�� �����,�.�/	��&üv�L̀�������/_CP9�������2�;�U��4-r�N�8{���׮}i,����)�iX��E�}�d��s��MhAU
��R�W��b���@SrB]	���X�r��{q���(tM�[j����I�/��A
�+���Hϊ��QO�@)��2`ĺ^��Xu�x�#��6"�ѳ���3h#�"ױȦ�HY�oQ@��i��
�2�z�HCA������A�T�TnC�a6�[�����A�b���'���Ŗ�+�Ҕ�ׯ��Ý7%��z�֩W��NY�+*����TijWTiK�?�ӴN`}i��^��]��b�jk�ƅ��$���$�}f�ҀH��e���;��B57\��,�JD�O�m��Z�b�T�C�ʷ:�U�'2q/^ ��#d@�ay��- l�D��9Q
�܎�4m_3����ئC�=�_�&��m��-�෨��6Xφ��T�d�Bٴ%�|��bi�'���b�&y���S_�*s0"J��8~n��W�@�|q��i���Z./��g�ÑG���6��G���?��R#��U�L_T�����Ku��h/*wMw�������/4�C�Q�iT�2����
go��)��@�2�?3��D{y�)蚺
���0;���������Z�p��u9�輵�$]�
��e+
~��P�2��l<��W�SHo˧���r��c�h(�pT�B�k*�P
8H���ʉ��t��6mL��x����5{@���]�B| \��
�9��]��m7���BmM�y}hG  �����D���c�F"���'��o�!O�@:�Ǥ�&�7�q�X8��nt�נ\r	Q;L��j.��x�۩�SOV�qa�Q�Z;ڔ�4�,�Q��������C�=�k6M=��l���L<Q�p�)�"Lt��!�K����r���^ڃhH��Z@��S���p�	-O7S��O2���=���X���)c��6���~0�e@��������4�ƍ]��J����������O�W��I���m��kZyw�
eB�ٗ�:������S��b5W�;��ׁ�<ɫzUH��9f6>��1aA̯2/X��G���t��$�~"n�w-�97~�	>4"lR�ҙ^�uґѨ
@�)R����X˄0�?j_�ԕU�t	{�%4�翞*�^�`5��q���L0cU&h�&,��ԁZ��S���٦h=�B��k�\��Ő���	WT{S;ȣ=ԪC�(7F��t��s<_Y�s#��kS��Oy	�y�1)�x&m��Kw�h4��;��0�7�<�P`Z9+��E����+�ʾ���|Q��MPOlO	_�S
G�C-'H�Ru��R�̇�*
)P��N���e�,�g�Z�J�Âd/Q��Be����T
����>j4�]n<�yVw����|H^aR�Mi�\lޘ΀�T+�٪�7J9�`1)����3ml�ݍ�ZR5ꌭZ�V1]@mxM�e���lM\���h�C��|*��D��q�����_���<����;��HRB8����g���Qo�����8ў�,q��l2ݐdM�p��~:ƹ$��v|H�h
ŕf�j���Gl���HhR\�@�UcT�G�hh��[̰e�F�x�W�z��jG�{	,�N�ٍH�I��sE�kֽ(��A"eA����բV��G������]O�������f����h�)d�f�|d�O_3B멙��4�J,J�.2>[7ڲ
l�8�FN��|������m����Ա'�1D����ͤ_j%���#�#l\�[��v�|��^�b�nk%+��iAE-p�g��&ȸ���U���ܱK�&։���wI��^�m����������$$�*}�r�2�������d���nhr�`3�'�5l�[@�@��ܱ�Sf��,,��1�ًݢ��=��6�h-�)݋���"����6h��.��hJ`۾5jt�w^�����S:� ���ƠU�Z�t|v�XTB�5�r@.���ϰ���X	��fG'���D5jY���z�@c~BJ4� ^ge"�G%8<N��Ԁ6�`A�(x��r��_�d�v��T]�#��St<9�B#*=�~#צ'Dʛ��{�Y�U�(����
@�@ڢ��t;�џ1�"�aB�wӣ����"{+jM˜-n�E#�zwO�zv��r�_�s��L��� [��ھܞ<1��h'�~�rN�0�j�x~���J{Pm:/���)@&���j*͍0��%Ӭ`v�e
�������*9�c�k�_�&���&)�K�3�"!1��c�PY�%+��tj�'%������Z^�V�ZH`�w@�g#�Ԍ{�Gi��h���p�jLud�!ƁuS��o.^���[?X���a��J�E�%*"�;D۔!����F�_b!b��?��a۷�'���<��tL0����ՇOp>��D���﹆�c��@�|e�#�XѯL�e�*0�ˍ��(��T�cQ$VJ�|�Ot��Q���qm)"5
v@��o�+ڀx�M"�]6ݚu`��!U}!��t��@v{>�Tw�XT�h�@�_���~	x�"�}q�K��X%��j�g�:�
#V�Ɯ������v@+Jf.2ٲ�ޅe63N-��O���.��l�7nP��wϕ�$�Ki��"�V' j�c�Bf���P~u�q>��e�G�ak��ۨ	��B�!F�]�+ꋽ��x�0�O�@ǒY�=��(�+νԂ_k�6C0�@3�"gL+Y�P�i�'Z��N�D67�Q�
]�b�8�V��N��FZ��l�c������Ř,e�KtҠ�~A�j)^RK�@
���~~����(dg�1�F4K:T�4ř4
�{�M�ED9�7��0V��l99{�`��}e_��>�1�$����D�^t���m�-�T+�CV�����QP��„�˴�d��Ů9˄��i�	��܀b%
*¾��P�+������#*r�2��@�8a=ڕ"��k�Je��ϗ8��(��+c��{�JS�8���QN��K�t�nhn�ָ.���S1���7�,Ѣ%FL�f_��Z�s��kq$�\1~�><�0��}�h(Oޢ
�fy�`��#@2�QI�o���n���ޤ�o�7��i�u!r޺x�����
@T`��[�M�vܶ�1�(!h�w<ԶEө0�p���T�1Yr^dZ�S�E���{�cõ�ℷ����#��*�^�k�_	��e�5����� >�z	�\/���"34�)�-�Kz��9{�}ŲUطr�u渃�
��=��6	jV���[��A�%��<��^�}�7��k�@%�/o�1��$8t��RD*�o
��0���_�c��<΃�F�Nha���M��;Yl�sj��(	"ب�nZؽ.�{9Lo<�޸�h{�����8�p�.�
PcG-����Q�|7T��z���u($=��]P�S�4�Z.�>Z�M�ˆ!��|���،񃶘}������B[�f� S{��<��,V�X2�?]H�2�Mn!2I��b��W�[�C�5�	f����tx:u>��7�8^��`�-��[V{�6k.���\� /��� w���nrM4�a���<<ݱZ���Ƌ
��e��:5|#Wf�1��<�p��N.��!��qJ[H���f<�`����N��_!4
%+���,oѪw9�G�"�ŋ���xc�*�y�ه�)M����.]m˼~L{'
@�MM�b'�[��8oִ�*����x� Y�7w~�2٬~���&�}Ƕ)��dq��+Q����
L|�稯�[8�Kj���:ho�X�"N���V�>�eu��g$/�6���ĭ|w�oB�gBَ�%��Q��e���
�m
���W�t�ё/%��
m�?H�7�:�r]�q�G�y��e��ؓzv7�c>�K�NT�o8�@�,�����$����h���N�����(��t	L��B�8��+�3	,A�u��
S�m>t��		
�b��AQ�6̙�5L?�m�1(�eЖ4,n��]�Q�^�j���?�B�wY����l�D��b|WH���2�W&��
�$�a{\-��g�A�4�x�z(�l�Fg��Yg��O�5�.���3V����pL�.�H.��a@,"j�h�V����ʍ�\�L:R8���
l23B8�;z��h�8 N�m�R�����iD�
�����Y��VL�j�
���������S#�n��w��N�zG;Ry>�	F:;9��Y2H��±�®�k�9��{8o
�U͓7���2��t&��8��x��#� N��%3}vB���
8�R
����~��~�6�����Q���:�M��`mU���i�jBhJ��
����(Ër��Jwn��j_��e9�h�{e�q����M(f���m5�"�^�<?[���qa�o�,7[Ǎ;B�2	�og>�C����W�Y����d0"�^�/��?�y����j���>�<��#Z��Z�mˤD�$w���0��QelܐE����+�ʾ�M���s�8�[��'�@�*�)ap-�&'r�10
���	�U���fDl�+ �Y>��$�λ�I��^D1hF�E��)����ˮ��3d���E��Jkм;گ	ȏf�(��m*v���x�l��_^�l�"�P���w�º�L��ӑǺɳ�M�ݔip��R���קּ@��<��ss2�1m�u �8_JO1�
��f@gߟ��we�т��}C��^��^���8Q�z�I��7�'���b�����.{�B����u("�b�
(ͦ]R����jt�"�Yu�'�z����E��> �So�v�����!%�J$��g,g���2O�c�!)�P'��^.'�ޗ�����Bk4���<+M�x�P�Q7�t�n���*:�B'��/DW	�P���y������5K��湉jvo@3h�h:��r1š�y����D��b݌T�2z�)����_h�3E�(b.�"�OA��xS��ߎ��"��КB�o~鰆9vG�Q�4nLz�R1wY��I���̼�.*����
��z�6.�����^�^�Z��E�ƅ�֥j����<wwT=['��.E��ѻ�����ﶩm���v8{G�Ex��왣�"s-���w_��:��?^�u�s����gj�6St{߉��>�"�8��h�O�lb�vp�]�!���"��vKJ53;}R���o��oqQ:T�,��5��.Ht��2_Z���@1���nΟ�PO�����,'ZI�A��i���XK8�j��Wd�9`e�aDɢ� %?�Pё[^����>W�%پ�T�1�Z�ph�y�t>r'��>@��b��rYxt�+�H&�w�*�{@S��$��{�,�jc�'�_��W��̰8]*��str�ѳ������_N���Q.m+t���Y� �\:���EY�LPL�3Hw�x��Ї�8{ ���;�C+��J�Z��"@�W�-| ��g$=�[���C��h���$�&@�R������!4�b4�N�=�]v?h�A<+F�ۇ;���IV��N�D��,��_^���$�W~�r��š�>���2�M�,���*��Y��9����/�z#�)���6��+d������k�� �4-�[��N9;�g ��%K�y��[�I%�����+"#U�l���Ȗ�A<�)V6'������K���`|�������_#Jԍ����f٪5
����4��;�I.���(����w�1v��Q+�O�?���Ѵ
�T�?�]��jI��?B+�*�*�F�!MIPR��Z�X	RCR�@!"���(�1�v�m���_�5�s��ڽw��ww�>�=�ׯ��{�ެ���hu�}�9s�̙3gΜ���^d��!C���.��̷1lpz��x�ʯ,�UA��ߢ=SR�옹Y�u��?��XX�[~��K`u��
���2�0�41�4&4��f)4��.#��5�ˋ8J�~�̍���)�uѤK�a��56hUԝ�Y~���:g��;qR�|̌�!�\��e]�ĺd���L(}����f�o]ԃo�/h��/���'m������ �/9�h�։�!�Ba]�JLi1R���&8�X�L2ʂ��-��}�K79kE���W�N�9�fh$�^Q#Z
�w-ޤ	E��q�|�2�^͹������7>�[�m�7�*��z�Ϝ���O�10g%�h�#v
�e�D(j��gFμϷHƪ��0�Y?�PeFȗ�}e��	�p�z<���D�'��(ۢ
�`�j��W�Jj��4� �J�!>��ݳj��5!~�[}P�|�k����-���<o��Í�a$�q��z�L���k��c�^�
1Ldo�W:{U8e0����l�������K���Js�l{f^��'8bR���8@��zSۓg�����XL�9|}�����q�lm���[�j߶����]v�1y����k��yG.�ht4^�͗�+7@��0{���zU<޵��;�o41��W}cut���.F%
4$H� �O
q
��g2���|�9s�]C;�qT�~9�KѤ�_�i����"d����[[��0I�WdPȯ>���ʤ�ͼԹ�p8�-���B�ז*�=�_�Q(lꢟ8.[Xo蓔�잌�B���dB�?���z49���O�M[��Y��y+�;�ۅ�eu���oa�d(bI��^�T�
���,PV�zC��	S��`$w��U���x���]�����{�>bW5�yiBy5-�
�NÌ��M���z>�ܟ�ʆ�êK?�H{�s����[��:�cuWm��pvV��b�\��hq�/��{'�xx`99~�s��+��@��)�nJuv�VO��0�`�"%|�k����.���v�PO�J6������?-�=sv$ci͹�5>ڵeЄ��uq7�։@�GI�K�8s�fD�0�+��VD�
I��M��C�'a�-!�%
N�u+�~�o����U��)�
A�~�)1a�-��ޚ�}�,.LGL-���!�:���<���=ʋ~�z�`�h��Ax|��6��X1��w��:�zK1Ww�uf��K[ᮿf�Yh�Z}�?�9��W�X�m����S����Y|�w�t�+�G^��0n~���/1T��_��=Kh��(�3�3P��y��֢䷒��z���ܘ��-7�=��d���@�� �h�/Q�0e��	5�l��2(D�
O��������bаĦ�ݾ���Q���:FDD���ˉ�1T
s�K�2ye�3� ��L��^h��miC� ��`��Y�h%~��0>�(Ң�;2���G�o��E[�d���ͫ�
������j�Go)��s'GX�Q��f�^Ù��s�%d�ʰ�~d���fF=�n��$��Gڢ�z�G'�o�XQ�(2�M�l�М0��'������E	����ϥ�L�����Q8�:�Y��˲]:m$����k'�pW�.'3x��L�|�v��&�����h;
ِ ������yޖ-{�B�+��(7~��R�"�9\ y���t~.^@��'���N0(�h�7�%9}�k�&��� q橈D|q�/��6�%?O
�����N0eҧ�L}�i�*,�����{�R�F�1*3Of��R��}����"S1�-�F>)�8��3�ʼ��\	 �T�����w�r�.uЖϾ�86�Z{M�4��vA-ҿ����_�j�V�h/^�U&f�zf�^��9k�5x�8qu��1^�i6g@d��K(S�p���(�W.�N'�/,��[��ѿ�A\ަ��@MN�ByW�U ���y�2O�EL���Y�W��R�����-s{B"��fsB[�"5�ǖ��M����ZQ��Kkj����Tc@gF=kR�����h��X���t�χn3q%/!�����ijCh5Yt�&L��G�	E�$�43N��[�-�E5Ԫ�S���"?:=��
���&��5��������7�X��L̲����=ܝp��?�F<�JR��"(HiL��p��i�q��i�W�S��F,`TLB	tX�ܞ��o��n�T��@N刣$<�s�]6m����G�y�Nf}]�D��̷=f@)��."��&�s!w-ٌt�Z
M�-nq�@K
"<̛Z!(`��e&D{L4���HҐ�04�q��YdX���<�O��^�ה
c��vĸ��C��i��`��z�Mz3��M�w)(�a�Zxۖ#��O�3&�[�ޤ�hkZW��F�7��mƻ�Bj�#���r�(�N� A���*�E0�}��.[�*����,�.=��Ҁ�����%����r�I�,f�Ҫ�3>�Bs.�2!�Q8}�,�4!G@*b\�f+j3רP�B70a�}F8i���I��k& ʞjS�X��Y#�if4�rya1i/d5��Cע��P��n����ih��߫����fk�pG��hїo��,���]�#�X_��-�S���F����?����	��m��~�,�N~p��5rƅ��ANNm����ڰ<�ղ��(�鱪lMI95�Z�	��.s�f��q�(+D-O��`���(�f��;Z���)q�=��>6
1��@RX�B�ˍ�¤tztX� B#0�8諱ZEc#[�!l���Wc�
���s�Ԑ�̞"�m�
�6�Ёi�o4u���m|ۨ]~z���,4v�"�L��Oe�D-��L��oX��j<p��yE�{��~K��/����쳞s�o���犒��:�(I��o��gf�W��I�((����́=�3�՛�RK�/6aƿ����&��I#�@<d8�N����U�
�Z����ɒ2��Ȝ?��7:R�r"�8';��iq��ʉ! �j,��2(9���&�n.��aVZQ&d�"��Y\N#(�_~UL`��s��&�?۴�h�0�(���D	1�+�a�����	+|��}G������]�ysZ
�_�[�p羷�W�Cw(Y�j�
Q����,!�<���r�H�Gj{㯡}�O��[��%;!�Ld�m��E=��{l�>�LT*>�<�S�p��{AC���py+��c
n��`9ϐ��+q��kr��#��*�Q
��uw;�Z��J���CO��j�xƥ��f�l�!��8�آ�o�����h2@��|��$|�`�( ���nzYʚ�<zj|t�����3N�@l�q9���2E2�M1)g��:�h�
D��Ӣ�����UQ�p(��3^
�s���U�bV2����*���`��F��0���{�Y�]��aK,�A����<$F���('x}�Ж
��񌵌[��i=SB��Ԅ� `Qg0�%C�O��r�aͬ�7�T\���&�����
�~���������(�/"��H�XA5���ӄ�]�;W���ZLф��7��E!�C�1��|�zjgH�|��9DqҳF�`c����n!��ff]�yS�h���Z�jb��Q!m
=�R�d�)0�Ojsk�%o}n�KN"xVTe���U|�����kTH��bʋQ_
�d��2�lo���g�V	����)7O����z^��1v0��%��-���91�
M+r{L�Y��y]��!rCv5�>|��L�/����kH'�=�9�\^f�ye�a��H�	$H�S��ϭ�2��Cwh�ޱ�;'�s�B场ޤ�k�V��&���x��)n:+L�qb�\\�dM��ͧ�P�=/Nm���\a�*!��19�6��d'_�"�zE1�m��?���r�c���
n=�]B�b@��0@�y*2��Q/�x*uwx��[�$��݇D�q�ﹶ�M����N��V�2�r4�Ƚ��{��kxys��v�z�+9
���m>쾘Fi���kźNɑ���C)��]>�{��+�����,1��_��r��r���-�2�z���ܿ���w�tb�+WFf_F�ў��G֖���޸5j�<L��wr[.U���@LQc���БՊ	$/�_���;b�k-X�i�U�����e;�Ջ�����'T{��>
�q��>��0���$#(^�^R)�:�s�HR�/�"ϥ�r�5L�gĆ��dI�rg�Լ�
��9���]p�=8p��4%j�v�� �f��ҔkAI�*�~kv�:�d4�A���}�M���#�H2aqN'���F�]�쓟������J��eoz̿n�=5�T츶S^a&���Y[���ž��$3@�䄻� ��ݓ����ޝ�Y�8��ɮ��g��i�MB�,�^��+�{��ͷ�|��^������z�뵥CG�{��:ij��
'k���O� ŷ���	61��v`u%w�ӧL���Ƭ7�}���iL�3�r��D9zV��V't�)�ߙsH��5�HF�	$����a
U���q���̀�4��;�gz��3� 3�^�Te7�W�N1�S�[h�0���ë�~�YK�<:�!��㓳Y�$�*��d���bV���\O��\��բ.p�	��bx�B��F�����o,�odbff��������ά�!��=�#l�]�j����9W����ʡ僥�rn���������+��5߫vV�r�����C�+I\�����͋��y���=V����X�K����#^��1R����
C�؆��C��
z�SG���;�s���\Q{�f��|�a]�/��s���"8�F12:���k;vG�<ą�Œ����'���U@����b���Y\&'��"x95�ltP��k1��'� BZ�H{��S�"�;׉ECLX!�V�D��͖"�I,��C��W+^��m�<�[�{=~���S�J�&w�R�B��-芐AbC9�*L��s~�\����}��"2	#c�d�Xp�$Y���b�:A�	��Xr���+鱳����|�
��g�:�wu'ϳ���Yt?f=���"�')EB��v�ڎ;�g�C(f1?bۦ���C}k�#��j�v�ށr�m�-{t���e�m2+��|l���7�3��Q�
X�n��rp���F��b�e��V�m7��fh`�VuX��J����wfX]�,^:������i��r�Wi��oW�|���+�z��I���}�>�y�ݐ��g"���"ց��iqC��j/Q�P��hV�����e�:h��hy�O�q�o��K��4(�H>H��#�!]��7���d\wA�a����%ň�7�����I�9?X.�6��Ո��sY�$H� �t�FQ�>��f��3�F�:�Y3@'Hp)@�#��w14�BpRn��'����,��+�Կ�r�y���Ӄ�r�\�C�ByT-��:��
C�W�9Plsʒ5�żܷ�|x�@�>��XUJ�v0g�N��Y���>ޖ��nxm�<���J(e��3�	$H� A�	$H����)tJ���
Y$�ZXf;B��ߎe1
O��*�+��;���j��m`�Y��)P�:PL� A�	$H� A�	$�>��)%t�	$H� A�	$H� A�	&��#�d�N� A�	$H� A�	$H� A�N)�$H� A�	$H� A�	$H����6Ӕ���۹C+@���`0؊��$3 X���e�/L���M�F$���EW $8IEND�B`��PNG


IHDR�0��UtEXtSoftwareAdobe ImageReadyq�e<o�IDATxڜ�ٖ��$���#r �ܫ+���=���K�~���;T�̌w
��a�A�Y��x����=��������7���\��8��&�ٹ��?r)9�n���Kq�����Ǐ�?~�����^���OΝ��oW��[��3q:>_��>��?�=�����)�v���|�N��}��,ܿ�����z����ws�������w���{����]��z�pn�_w�8�C}���v���3�?��r��x���8�z>�m���Rߩ^��K<>SǤ��\���>�=a<�,�uo��o7���t�o}�|����}\��{�?��;S�/�uL�q�}l�o�<��q���5�����o�~���t�������r�:e����[9��V��p�g�w�y�q�����~����w��}��Y�3��ꟺ�q�����Yߵ޻��?0G�3�cl_��7c�-ǽN�z���K]G�������㘶c1�cT��>.�~��뭮��q�8ֱ�'?�^�����?�k�v���Y�s�u����r��r��i>����1��u�����=���^���0�t��:�#�k�k}�}N�����o|��:'��X����3<��u:�}��:^/�X�����V_��+�l���q�ׯ׮��R�7s���r:�>W�:_�Z�xǺG�����c����~��w_�_���%�{��X��7���|<��1��.�`���o�x��w�sV?_mL�x��k��r�|���r�����/x�j�������^o:�N�;����>uo�}X�@����ܿ����n/�;�6�m=�m����+�w�jw��X��^f|�������vz�����n��v;�^���j�u�c��9�{��q��9���=�a��ߏ=�a+�g���S��Y^���
��{�ʱ&���ao�=����
P����u_mʄ����c���G:�]���1~������ʱ��-8s2�i�s8�ɻ;�Q��>���},?ގ���,G�G��]�K+Ɗ������R��}o��c��T���6�S�
�?��X?��q�	{��ޥ���y];u,���?�#��\���c��c}�:�u��6y:�B}������{>�`N��z�_����{�ַ�z��?lN�����T���尭���3��|J�c^v�����X_��g�{9���^m�|;������t��������uJ��_�x��t������?Ʊ��g����r�S���z쏺�}Wό�aC��6�����������8�l��9��<�3��j؎���K���sk�sw��UYǫ����/U�^��|������N�<~�����c=�_��8ޡ���'�?��xW_�`�"|�pؕ��ᰕ�:�w;���GuM<���V�S���ǽ��s���Z[/��g��~nd�+��յ\}����}vg��W�sg^�뺞�������~�—����\m����[u����u�U?�^��	����Ǻ�}y؟���yZ�{Pm��:�=�
�~g�L��s�����&��V�>޿���z�f�8F�^�0�7Zo�I�����ǚ��306��m2�uBL��}�~��m��,gd���O�3�v,k���7��X[�y�g~]-�Ե\�z�}���9����Zu6�+���lĹ��9K�~��$��x��4�v�����>vk��z�_��syؤ�?�;z>,|����>�;������۰�ƪ����v�E��q��1�_όe9湎��y��s��nt�c��B0��97���k�W�X\��ڣ������Y�w�	ߍq����1w>i@���#��]��Y*X��܌�l7(�L��k1������t��U��;���ƀ�q݀~���cU�ə�P�j�A?c���|p�2����\�X�Y�7a�#��z�gyG �9c��O�:��Ɍz���9Z�9?<`��@�>z׺�7<#
R[��x�:NE)�_����u�)o���~i��ǴFޮ�=T��G�?c��Ɍ�Ü���4��݀c�ֵW�b�C\^�긬L��{��c�>q�AQ�@�`�Ю?��XS<T2��'����cb��j�C�3c�~��u�|�=���&g�-�q�6�����d��9)ui�'��]��g�bɶ v���:dX�X�����3{�A���;�E��I)|�{��|���P���zǻ8�L���H��p>/8�&���C_,X��t�8�?��N���$L�vz8��ǻ��M��m�l￯���ɳ��h��Y�k�9s�:Z�����y~0pa�T��9(��s<�W�|}=|�s��sf�o���s�Ø�u_`�{��~�|�� �-� R>��x��޳=W{�u�bL�"��G���6���YR��}����ͭ��K8�
�-�7z����G�{d^n�=���2��lO]���U��P�l;�~^���*�{�S�"����Y�e�gϘ����M����%�,I� >�#�z~�b��8�k��{b������x�m�$9�=�?`{��N5ѵ��[��4�?�]��|󐳭�8���o����	ɜ��+�������m�q�2����_�^f$s��×�aoM�Y$��(l�-����u\d�8$ �)����3��j�=�}Dž6���6.�>�+s����'����8�ul�2�W��f���O��0�u̮ɒS��z�/��`�O%��x�{iBM�E��,H)����ْp^l~�-Di�u��	��_('9����惲�P��P8��ao����B�Ј$���=H-V(�x��R��S��L̶8"���S�o3���a�!�ZtH~�9F����vN���ɡ�dz��H�dž`�Y���i�"�\�6�p��z��������Tz�0�~����fh�K�t��:	��͑�KpC�cJٜ�R������@*��53�UʝO߮�CvA��-����n��l��` ���d,�8��y���s:�QY�g��7*}9�b`��W��,��b&�ǚL/��m�T4.��Bep�����0��b��t���,�~���=p
f����Wf{hd�$K$�ޓ��$�|S�I��J֌gٰ>h�r��7a ���82����"�$a�]G9����A��
�$ p�����x:�-X�����N��$���jɽ�3�vÚUú`\�|$�}�V
f�w.�*:��qm��bϲ』����$/I;o�Idr�T}�=��^�[����I>�٢(w�N����8x��92دg8J��>�0p/����m��D��p=��
�f��?�q��:w�C~Bf����] ���Uɽ�AR�[:H���9�<a��{/x�4�&f��Ͼ`��$�f��^���׷_����ΐ)I���78�^�L;�
���4��X}�-g��!k)�,`Er����.�!b��R���v��6���9y�)X��w�^��<ϸ���ĹGF�(o�J�$�:�|�Wd�?�A�A�S��cp��ՙ
tX�7&`�d��%F��?kE��:��L�a.3��Y�nq��X��>�ҟ�J:���wI�*�}+��qr^L���I��t���pD8�L�{���W��uH��6	�Xp*��v��Wk�}$�X���$�l�F
�h��%�V�C�{f
�%П$)K��'^�8�=�$7��D�Lr�{�=��5�yMf�$.�PG��+����O)8�Ő3�L�%"���%My��?'Լ$�8�1Ϫ`Aj�dJ�L���S;�čG��0V��tAj� �{�>w3-�K�<w�j�>y������1/�8�+}K'��H���������:],�^�g�D��E7$�&7���%(��2Hl�u���x/�����I���6�٣��� !�ܴ�9�	�뇊��h3Z`#�וAE6��!���]��4�&�a�8J@��`��\1��������U�f�&��1��A�"g�˂���L&���,��3k�J������_6��X�~s�P]�b�������T��#����v\�����U� s�M�	����X�	�x�fL���s
��d�*P���3z��_�y0�1)f�ѓ&G��V�9c
�
��/�^�$�)���;�uB�U��`<�[�W���-k̪���%���g�L��g'�����[6H�CUt�V%��f�lpf^ �2^�OXhY�`՛K���k�/�b!�F�&�����Z�8�)͒��vhw�3$3���/"��+���ܓ	����ܛ�jcl� :��}�䰮���Kx�`�}�H*-UW'�Ֆ�z�r�zyGPr��&U�߄�������XE"`=_�-��t�׫����w�ط�̊����L23߁�rT�����,�������2`�so��yx���򓀕�
���y���g$o�1���C�g�C�g�)�D�P���p8~d�w5�B��mhA<���Y
fs�-���! �ȶ<��A�d�~N��
����$�*N��N�gg �'�c�=�V���%�7ߟYQ�
�����`t��,/�a���H�8co��,�%}VO5��9�Y�"}?$�y�x9ג�~�}��tH���̳�ɧ�n�;Cu�`A�&�j.��:c��=#�|ú{BB�R콼T�K�tУ8�L�k�x��ݑ����7×�H�ł��-���`��U�)���hT�g	XLbte ��'Z����3il�I& �m@��А�%}�JH?h���_;J��U�b�x�K����<=���4�����}g�z	�o��WR���J�1��}I�
D�����ٙ%��e|�|fU���<�P���+RDL�E~}�2TRc��șd߼����^�
�\GR��
���N�簠���h�T��g��X�3�T�wN�|��'d��ipH���y�<V/��د��
�E�%S�g��)�Zy��fi�36�ؾ��ͅ����W��
⚰ȃ@N+ߏ�`����{}E&��Ƃ������A��&���&Ƕ�[�>����в�E.��.����B˪�v3���e|�Ϊ�uL�ht�yE�w�;��ւe��d�ȟ]�e�6rl����0�
NRA�}�z�ӳ%����H���R�cBxS�3[��y��z�l7-���B�j�M\�d�Y�Mv�@]#��k�03�����n��r@�`����,
Ό1��
�V�UE��T��T��Z�y�S��dW���N��2�{��[5��J(2�P��7<�z��]��TX�@e����f�ۊuY�SݷdU�l�u�~|��]�,��8���ْT!WpA��8����0+\�r���U����٘2��cQ��	�8g�NBn��U�D8#�U������&��xsv���㇬f�$l�k�1
�Wǃ뗨�Z�����Bj��������]u#Ɵ�G�V��=���D����;\;zq�%��LL+��:�\���Y�R�s�ȹ)�L@�v湮��vACC��|)0�Β�^8a�h��ͽ7��k���7�-}�;
�N!�-q��f�7�<����$�W�R���T�5��!��IU{��+%;Q�I:�{`8�>��+}�-V�{R���J��XU�pB��	T[�t1�T��'l��1V�p/V}�B#j����!��턱�B�Xd�& n���"p��]Cj�K��ITd��s�l�ܛ��ֆR�=���M����ܣ��K�s��G��l�wy�5[�dfpHDb�ʣ$�wB�*�8�GDם��.�g��Y@Bm�,��$�V�iW�����TГ�B�}|g
<'�K#t/\2Ht��ʤ��(R��Ud�y�:�#�M�q���d���=�^لF��V5��8)�r�]Q[#�.�i�����YA���J�M5��v>WX��9l�I��	�UC�e:�&8��%�\��]%up(��s���q�4Al��!�TG@�U7C��.f�ˀ�Ob�K�nj��<Y}�,�#�g	�)[Ӱ�a����:�aK
�t
k8�p��C@=y��tA��;�][`9d�*�'�,2\��A'�Rl.'1`Y`+{�#
fP^r*V���Z�0�i�AC�8�Q+��B;Є��/4�&U[�� P1��!v��;'T�����>Hu�}�2m�$N�u���qO��f{�2:�4
�C��Dn�8eQ�I����f�@V[Y��$��
����$�m��N4
�\�u;#A���7Gm��
Ϲ~�Z,�T��	�r�jP~�a�j(�rO�=�'����
0�ߋ(�Z�G?	��6@?_a��Π�{�ٙ��+��e��IЭ�����{�y�1f��l�$s/9�b2�Vh��{=
�X0���N�O��?	9�g>�«\~��=#�z���"�����Ό5!�O	޼��d�^qg��A �0�Va-}�e�E�G�$���a`������.��@8Z(����V,1�8�G1���E�TW�$]!JT��lը�L�@���ͱd8�)Cp֠�θ���g匽{E�u����l�V��E��INR��"h�7�����9�_�@�@a`��
UJB����h��b��
�RD,��rp�P�'=�QkHy@�B��k�~�G$��s��N��n��񂹾:���l�*��w�8gT)��@�"C0	u�I�9�9���oZidpH�P=�?��D�,0O�\�$#�Bj�A<�$4��k��%�A�o���BЋh�)��Ŏ��L��
y����ž1��oA~t�Z�CH"�`?]y��R��!�6-.
�L�*�-�NR����������Or�2���׀@e5i��NAP~�p�gҕU��$u���~��1�B�*Z�sB�h�gѳْi���`>��7	���0�pzg(B�a߽����������Y0�������c�V�U!y*�S�9��U8��Lt�V]�y����$�"�G+	\������ޡ|�͙�!q��u�HF^B�N����%)@�N��R��E����̟9=�WgP�VY̖���7߀CM+{7Y/^ �̔�@36�����"{f�o�8۴-#5��W�7��Y3#r�Q�<���AJR~���2`�D8�A%�H#HU@:
79��$i�8�l	�,��Am��d(6V�Z<��Hq"ΡpzU�n��.f{�!��29�8fs6x5!„�^E���+�IXp��8ML�\"�jCл�^bÔN��)$Q ���T�h?��\��L�#}K�5&����&I�y;aƒA�H�s�7(��Z����M�"��B��8��1�悤ʇp��b��W�@_�gn��|<SAX�d�\|DZ|,���3��wI���!���@��c�	/�a=F��)&C�h�3��ݹ$x!���Ԟ�qX���3Yz�}��J���T��)y���A��Y<�^�ϖ0���7��7�?j������^j6{s����� ���I�:'kt%(���''���\T���2���>��bm4�{�#:�^��';|ס�|�~�����,Bjw��I5xS��$F�
�$g-����icSb�t��)�Z�cvr���ї�c�Z�o��v*����˙�aCJ�}��
�w��P�ا�׃��egH�,bJ�C��� �v�����"�a�RH"�����N$��+α	h����uK=�-��In+��ءԡ��DpS5V��K14Z�Vl[���O�/�$�.1�yr���˥Xq�il�1X=g�����b�<�,�tEף2@	j��P/�Ū�	�BoCr�q���C"�gQL+���,�'�L����ͦ���O����ggs(��`�?!H%6BHna���;s:�Nl������ CK�i3\R	C@9��A�J7�@ꍀ�=ǃ`�3��y*�`iٲ`*t�l6�[d�V7�"J��~��l$�@��,	�s�O��'o�X�,�O0&�75�:7�dcB0�h+��یM���F�2
X�:��M��x��R"�U��a)NE�U��b�,�#\�I�M���-���M�M$�մ��9�N��
QF`����gT�X5%_m���1�ʋ�p\�/���ÏɆ5���>�"��Nԧ	�K�3��f�4��Z!Pd�PQ#@1(Vf����x�����Z���=@�C�tE`���k1g�{c�aq���Lm���,��A|� ���b�,07r�y��:�L^Pa"wJ��'&�rq��H>�InYŘ��.���YK��0Z)��b�b�9���*Μ����23~CB�ɗ,��-C$��J��X,�J��a�lyV�i1��$|�DF ���:� ���g�����������H�_An����o�;�_~�c� ¡��Уk1���_c~@:1��{��
��@�yy��Z����"(op��/u4܋I���-��|&2�}Frq�t2�8��Z��[V�F�����J�l_u���XY�c�0v'�"�,IÄf�CR���~��W^��M�(�i�Cg������}�_���Y�Μm�?�[(��K��5nj�U���]r�%.��+� ^�]pLRi�Y�h�2��N�f@�$أTmY!$:������R���T�Ȃd])
Z�D�(�d�u�b��e�IJ���^|ҩz���"d�thO�V��K�$�T[�:�$T���$�ZV�G����ay�5�h�s��@���
�M�������"�4	�7d[�NNN�#����
��rd
�3�0I�M�}�ߪ��̚T�[��,���p[6�z8�1!Ct�<�
�b����hx�D�Lp��-8��KƍOO�Yj��xоaV�aI��G)��_�VW�nnr�ʋ2U�Lxe�h��(���^F<�5�,
3�M�\ŋ�nٲ:
[!_���8��U���U�*3Z�P��N��VyeFt�oC3�	}/��I~�%Y��D�p9V�so*��7��h�"�B�\��ヵ�X�G��E��'`E���" �[�K(Ͼz��G��m��������;rT�<�����4�GJ�,N�c��Ì�)
Pmp�x]��D��n�3��֯�}�EI4�X�䍗�a�*BFVp4dM��5�~`�=���>r�#���p�	;f�xF%�	A�8�{r��1�Jd�$�Ψ���T�$�
z�QE�c�N�T�T-/��2�L��#��!'�9kAB8�w_���u����?��s0����V�)ZEQ��U��79T7����e��
W���S��x~p�r0�/�{��x�B�G�G5�$\�\L]w�|��)�������g�hy�L�.I\DuW�g�o	�Ӄ�*��^�IZ87��`�j���Rk�Q]�*E�A�oBU����Ku�����+hgg(�Aq��"p���s4��mM�3`'��蒓��EZo\�K Ȗ���D�´	�}+&r�P�,��؛�/EZ�8��)���Ό|UU�K���8��S���D�Dy/�*�V3���X.в�q�?ܠ�����B�:c}^��P�<OF�yK�a��kh�E�A��ƶ,��s["�" b}P����U�����΀(27)z��x�s�I�Z�ё&Q�@�ܒA7�rWq��5jL@Ǡ��go��l��e��1���R�[R��� *�هގE.*��R JD$7Q2ր��j���xYtTpM�k��~��$cY�Lcp,1�*�器mP��6Ǜ�5	����l������J�&	C&�SBkC��v�Dh2���@�%x�J��'	4Z�p	�Ob�@���$�Q-�����
�/w��n������	��i��/��L!#B�\{��U~�	��Uv%���+zP�1"�mRx�U��9X�~/i��dʝ�X��Y��X��V�����Uy�l\�
���y��k�mlr}�W�+e��3y¦o���,�C� %t$ $�E����ڪs��͛�&�q B���m�,�����e��	�*��^r�@ʍ�|e�y�k m�i0�aX[�*ʽ�4ܶ^�;���#�&�AB1��_���ZU��Ib��qX�>�W��m2^�9a�?}G�P6��rj�Pɪ�Y�p,��	��W��7��d�}4��	��%��{�\�H��b��I��<G� 	��9�M�3�>���U�֜*�>��]��$-'l�s�^���$B�;����Ug/X��y8�jCX�M*W�h�Ǚk�>K��o�k�*�$��M�i�mV�חP�'��k1Qruo�{�r&��q�,U��0H^�:,N�����#p�d��Xe�y�����9���Xt�X�|�
�!+��D�U���������*w{sJZ�]��Y��t4�����k����-r���~���	��:��������^��hN�
���*��R��
+�*0�����qlGT�_��/�E!�G�Th�� �׭�l��Ḿ�&���"I��X��g;9�4ޘ|�a�y\���<�Q��S�&ڟ�͡��jDr�v�	��it��͖̈́*_����D�����[Z9���k}s�� �,L�g��&�D�;��.W�H4�oH2_�����ƒ�<�8iE���^�F0M�,��3��#�m�T���C��7Wg
�Tۥ67T�e�$�q�����h<��"��̙�!Em��@Y��zc+�	���BBGw`�U���,�h\�u@�T_��""eŴ@&�Л��g�ha�v1~�>���sm��2٢�������ԗ���y
���b��jA��lT���׵�q��l�&�����"g
!�q[Cc��EU�+�Rq�)�5.�H�E�{I���ۑ���5ڝ�L��p�œO����(n3�Pc����^,�$�z��$e��cɸ���ʩ\X�U�&�s#7N~U�<p �*�\��ş&(��D9v�8H�;!xR�Փ�wJ�G��޳+};k<#[���J�os^l��[+	����$�!	f��*�A,j%6+�j��z��妁���1�AJc��Y	��@MFU���2��I�)XP�g���1��N"Ʋ�����f�'i/��9>	�Ni4�U�2(Î�gd���~a�&	���i�'�D$3��A�hQr�Py��F�?�A廵S�aO�3�ͺ=a	�m��`��X�
���"#�����n{�5y�;��,Z��5\sO80>�����_�����8��e*S_ا���y�\%iw�Yɑ{̶�@�9�U�����m\X1��S�g�_���z�}¸��{��
.�[2ۑ�ɱxw�6H1ʋ�^��R�fC@N�B��
#���^�o���G/ԐYT`�.Z�c|E�����.ܼ��e��� ΅;�iV�/#�J���*EL�U
��S0h�"ꪏ��I�U�ik�FD"aŽ�B��&h�/�����1��'T�~��̈́�+���h�Ok�V�x���}�����zJ��ve�b�bmB�a�7�/pT%4.�T�(��.LPK"�6#��^�r�;D���D[��Ûc\�35(�@h���=�����n��1����L���e�OK�A�璼CMP�lO�j���woPS	�r�E~�����T�
[���93P�s����]#����	�0]/�a��w"|��N���(�!'�^)V�tބ}��OX�j���#В��d�hM&@�BUQ�H�ܷ����F�CE��/v�?R!��R������t2������>��	
$H�C��U|Y����8�ؒ��W(w�+�����1�x��H��l�~v�(2^.��[�t�
r�${�Pu�Gm��PR,ƞ�Z��b�b(W�%��w��c��`��6�쐞?,�6i�ҫ�qQ���G�����:�|���w������*�A���D
�x��}_���8�EՒ{�&���@i�Œ��<\�>5u4B��>:�8���>�	?YF�|�$͌9�Q[�$�TFdf�ot��r� ��e`\���]�-+�L ��Y�s�,��,����`&�ۉ �"ʔ4�R��w��T"C�M�q�ڟ�YYnƒ%�%jE��Ł��|��9���
k��8�v9�'!6�DQ�=�*dT�n� �*��]�L�%Ad
+7���ֲ�m�
�������7�cgS�Y�O8�ZU���z	���:g���_Y{�9�Ӊ݃��sԃ����R�[��g2�Fd�iZU�O�E�*?+��j�
Ԇ��*����Y�k{E��H�ku��/�(��?�%��1&|��
5s��d-k�w�j�r�`]ݫ��ѿ�#�x���w��	O�bB�z�a�P-]5W8{OX���*�+�x
XѭXi'}y ��{N�Vz�T˂3qE��:+j������0L~xO\k�B}����|��#�{6��k�������ʂsbZᛴ��lk�"�}�i�gT�.�ɧ��g�ssi�or~Q�)����s�d�:��)'�	j�
�'�Պ��������J�t�/�X�������9��JE�)�:�-Dɜ�:��7�{�u������Z���Y��.v>`��A�`�zh(�0R'>$����
�֖)A���Ћb��_:q�b4#"j��J��X!
������"k�A�V~���
�*��4�>h�B����697'���&�)bnYl�����V��^��� Hj�D�!����٘�-���-�`��h6{_�r�$�g����m���|^���G1�x�Q���B��eI�ʠ��}������懎�*�Ae*��R/j�z1K✴��3�U�*Yp��:B����mR��N���|�i�o����85I��<T�b��B$y0R��	�/p�,������R,��0،���X6V,w�	��Q�#�p�IC˱�pR̦��_��9K�tC�+A����m�v{��R�Zy�t�O�wi���kA�ߖ�q��g�zn��؄��(b_+J�+掠��=d���'�R�nJ���`�S�M���x�����f���xi����`�c�$pmN&�d
�3x�yP<k�`��6�玍*�"ٸ�}��A��@-�֛1����\�-u�Ps�'OH�դ`+.��O�=~He����h�*��)"�H�U4ӌg��,��"�Ż���R�$�
c��#YК7$iC�� ��K���Ac졌WT�_Q����~|�{�6��V*�q,�d�O�P��c5�ٛ"�J�)�s+/���䐛�	�L£���*���X��[��$kT�Q��gm��N�bt��0x��<5�:�	��o����*��"?�Q=}$��AuQH���^���p�q
�v'7�?(7s�����̄�iz�8�R�����$���H�L���ۥA:��'iǦ<�"\l}6�8*e�EY��d?�T�J?���<��/�ES����t
�>�&:ժJ�gm��Vt�k���aɚ��B����VP�|�V[ͦ���{!����j�H�a����49��zQ~N�o��c�� ��R>oN/��VyT�Ԡ32������(&�ث`��Is�d
H����VN{�'{�(j�-Q���*����ޒ���l��>�vR^����v@�{ks�%��Id�}"���
A!���ݛ_v�At(XW푪=k� ���w�b��>1�
���I� ��e�Y$aB��:$��K<K}���#�FA"4�a0��Q`����H��I���ymUV����/_�ڪP�T��=o�א��H��jq��'�o�
���%E��|}�LvA˚���^f`��}�m�=�\�ɡ�p#���l�o;� I����2�E��r(�p��*�k�or060��: N5����otSa��.�do�\�|�R���
��3	��-@n�@00����qb!$q�aox���k�Q�T��3��h�YU�*rDj��d=6i,�HyC��&N�@I���ɰ#3��6�jVs�X�	�>g���R)p�w5>�eQ/�~-Eɮ�W��VL|W�˓��(�S�JA)��
K�Z����.	�[�q�x \`,(^�*~v�1��?��8F�%�D~K�M�&Pq�s�
[!���پ "{u��;/��,��hN��+��p�����ۉ �N�L��l�M��=@O�L*���:UE�љ�g-9
��[��l�妰7u�E���{6�+�7�W��DL��:�t����	�+�苷 ��z�b0�M2�'�hj3��@����7X0�<L'�k�*hv?"*=�8�D���ǘ<��.��aΞ4T��a&U7��"j��'B��tb��k�Հ����4��Tk��j=�D)T�Q/{�"��ɻs�y}��$ZJ	z���
	!'�u�u�<˻��F���֌E*=Q���`V�-})V�<��&	m&��O�'�����v�z���M*xE�-���HU5#��?b�VU���� �
�{��+��]�;��7�p_���Y�]���ڵ�I:�7 ��/�=(5���N$���-K�E@��Y���|�m��1����.BC�)�=A{}Kr>c_����ޒf5����j��](���M"4�Dv[CE���r	�)�*�hZ)JB�u���h� �=y��C帰I1�6�/e%*.�^�8Ig
&�[cB��8��ihUX\�N�%�p5{�q��z�&���J�A����[$h���ςD��ʧ@��i�b�q҃$/6�or8�>��fI��+��>��ùHR�g�Y�	WH���m:�L�����;�[�u�I�3�N`t+I��>���=c��u�,E�v[_����2��z�*��2?�ed��T"y�Ћ(�����K�d�n�H�k�"�ЅTG��:�̚�{�m�1�Ŏ�C����wCU��D�~���I���~��̬���p=��q�XF�fP�A�fs�g?�A4�,
ǻT{���
Y��`7a ofB��$��)'����–M@IU�v#���L����M\wE���(2�\��V;���r��;�Yi���
�����Q�Rf���\{���%���w��d�g�S�`��"�e��>��d��`�	�h?�%���6{KP}dA����̬�{��pj�JU@�V}��C��I�9�us�w}r�
��,��j�Gu<��DQ��ؒ3�s��~KC_9`�~��J&r�_QA���@�ɸY��we�!H@����YT%G��F�/)��TE�j�5r�Vqe�0k���Љ,�hm�&ɃT�Y
�����|�/���7� ��X5��*c���L��$(����h%���P]�������eX�p�	�3��&�Z�vV����M�?_��|�8�OR!�������
,=x����x'��,a�9��\�f$��/YD������|��}E)LP.�z�
�Gة0�3�T�Y�=Aw*&4t�֧:��B0��ϱO�h�D���emW-�d��]0��d��j�����_�e��M����w6ޤ��u����X��{o6��7��3`"��
I�h���M*�9�E���3��D�%�w�5?϶7gA�='u��l���-
7ф��N���_˲��PV\c�!���vb�TU!.}Or�<_F~����Wy>0;Lf�K���<G�HiKV=n�"eN7�KE�����u��t�*(;Ax�߲��L���J�7��>K|�Z�d�W��>^2�g{���.�����O�+'Y���@��M"�T��
'��m[o'Ą�߄J����fM�5��'��K��5�pk��F�O6j�c_V��?kO��v�3q��5�Bbj��egx8MX8Q{mB����MXE�+&�Yb�
Xr���K�A!f%��BM�&<��?�=�9Ⱦ�J�c,›���8)��Y8�z�PS�AsS��&V�x���Iz�MR�N�ݩ�R���dPV�Y�~��ڬ�h)´�7H�6�0u8����������W�c�,��Da�	���2�9_�S��K���~msT玉��/�൸�7�!eN�iy�"��r�P���@��%��q�-oM�!v�J�8�m�$
��֟���b�&���I���{�XNS�fW(��*�E8�\_l�΄�G���z��v�թ�o8��ܮ���	9�2����zn���޲�/x�wpK�@X�Gt�*6�x��'o"l*��d�
x���/R�]|/>Ҩ����3+�z������7�_]e�=c
\�UV�.��`������
��k�cBpxE��	�Q�ʦ�"�����oϸ�������
��1`���E�G��4(K��;VXy4�3An�'��+����N���a�JoM<|�6a�l�T�ޗ�Mp��V�l#�����hLk��JGW�<f��}+v�4�%�#��c���Y�
g��Pں&dC.�����L�q9���~�p�6ʼni����>��q�
0}�M��b�]�
V�(�$A؆3�{���		�� ��Ķ��Y���`h�{��4�۵�I�V~@p���ߛ$�آ��{�{f���m�h'�� 
f2F�׏p�ԣu�؞�t/m�tؒ�-���!�P�j����(@�Ŧ1�`\����B27&����%;o�p=y�M�
�w"8����i:�*�^1<�Q�UΑێ�a��,T�ul����zܳ���
U�]� /��K�CP
7AIP��K���w��n�r����F�4U�%J�]>�{�XD�ɠ쏺���L��,�uQľ��rW(<������X�������J+'k����G?/Cr`��ԸB(���[o���w�I��k�.�۵�Bkt�9�p3(z��"��A��|��vC�'�gE� UxYe��O�P&D�ڂDǢ�L�j�&p�wl�[i�Nc��Tnq�R�Q�F�[��^�6�d��EHS#�K+��MݑpBQ�M��E�ZEp�̌�¥<�M�E�5�r�1k��{�MM�B�)R}n�l�g��Y��f�⌖���BQ�X!%N �� �w
��|� ����?�B��J�{�)�`$:�lN.X)V�a�R9�uΖ,||�&����d�uZߴ���fK3{��ȴ���ڙm��~O�8��"\憠�N�{ ��Z���V�`ZV�.�W�U��?;9�Z��:�BU�?1O��w��)�����J�H�
�|����V,pq�o	�(�UD�� H��Q" o~`�^�?)őv=�Z��*�?THH��To��+QA�z`e�Ή�S�u�6�M=}�S�ux�\�@G��NRxg�G�k�����	$�ϋ��S�v�>���3�~gT�o�N�����{�wgTB�XIJ"��Ed��QW{s����
��U��VY��~���ϋO߃����蓳޻�1X����J���0���y}�)ت�N*�*C(�,�5�f%��:�O3��iH�*�.0^�?�h(�� �f��P�#�	I�����f�VFN��Y��&�lAjQ�Y�`	�'�=�9I�y�b������-��
eDUU���A�3-}����칖P�d-l
I�S��m
	TT��S�8;(n���Xp�LU�`*����h/��"�U��)|�,�B�&�l�����A���x����$ɘ�cn����T���X�/�@Ƶ�`��1k1E�P_����rʽF��1t�'췉���x�IE�ӓ������r�yF�b��2��@�Y�(������A$Y, %Q���.��,E�e!�w�}�A%�V�j�pHrVX0�|�	�E�N����l��sV���z�ZA��tɀ�F�d��s��態9ȆIBh�DH���*Ur�b
���OR]ZD�)��N��;��W7^�,<
�*�!�I��I���za�F�&�N�+$-xJ-��gkݒ�͒��K4�${����G�s݉��Wh*޲�] .P����,mwf�*�[�Ov�N��p�4���E<e��8�.#H�fb��(��>8tC`A��������j���7!x�a��8�*��h-����?���ut�
:��*�WN:S��4f��*�ՙ��"�t9��k�(��9�,{@�7o�O���4�&ʾ��O��{	V�<c��RA�0�a/Mԃd����|�&���NQ�*��*��t5�}��8B�"�b����x�=���E^�<p\��Y��'ȦG���M��"�Bs�^��=�zmQT��I�7���[��_V���.ж,���b�k�A��
BW�}{��v|�8ֺ�VQn&�{���ܛ
�H�9+LMƜ	�<�OEX��b
E%���IBr���@�3^��\���-�&�VPU��U
�g3���y���D�`�1boH������t)X$F$�EՒ?gz��_*���)��΋��IڅQ�>�^y�$�Y�'Y]��Iy�?��-��O�ğ�3qN�$w��[�� ���'�!���v"E�IẔ:הe�7��)E�?k%h⬌z�o�B��@1TQ>g�~�^L.��Mt�����܋ZE���R����,e@<��V��>��UP]�=&U�v"|�%)SѦI�^Z�hIu��
c�=h{�T{� ���|�I��Q�l'�%i��ۮ�퇢���~h�'��E웜ד��L�!����zLz뻚�r;�Bm� |l89\��1�����4��H��UHƺ!��`?"�B).���b�k�lt��E+S~=�_��1U~�����Y�{��@�A;3�P���h=qi��B<'�1�����Q�F�y�qc[����9���l�v�;3�>��E��qOѲ*%}����n�c-��AĶ#t�w��ْ.��f�uF؄�V�f��D�
2�Ꙭ�v��M�]6�$��	J��N�s���I2�a��E1j�zNJR�Nu�Z}��BIzn}�}"/tG��+�W�+�50���G���l�V��brc��xܯf�[��b�PR�!��-p$�n��=�@G:��'�sNH
\q������R��������V�a�\��-MDۜ0dF�(t�d��S���[F�.
"Q �Q�ֱ���!���bU-���;�+��g�nau���_�@Q�"ɓ$�yr�s|߷z�\w��t6&oU͹�E҅���+�QP8`y����5���R��.�~�x�2��Μ���E�)\Ex�I���2$L�V{a�~�l����7I���Aw[2Xz�{gB=������ߤ��?�v�|�-R8 +N�|V�3�����W8�5*�2ɘ�Sv�W�N������p#��	m4L�o��3�9�|J���Ն��E·�Wa�N����W�	�N���~T�e�K1������k��J�J�gPH�K��M9���1�ف�1����H�	D��������,�o��dT�
�*��Z&�=����=<k`6 OZ��lA^�FW#Ԕ��^����e��n�M��ҿ6���3�V"�"�$1��G��-�~�Nҥ���O�QP��``�����ɂh�pE�o�(�
W���
yoBWQ��f�Fpm��$"�Al������AY-*@8��+�k33I�ת��1�Vz��?�.,8��'eG�s�ŒD���DxMt�O�?BYg�;�F�IE��O�QQV_�F�U�J�[�N��'IS�'8�ຬ��|4h]�)d�=F{�N��U4+��2�,�$3�+���
��f�Vc�����7n��z3�qKz��
�r�I��HB���h�O;[*BUt&�`�5�2A��/���7�",�r�K��I*�K�yB�LL���\k�Y��hР�&��͹I~w�*]��)��zK��/ˋQXU͘�
�v�Ee���ltd�(�y9��1+oZn�~�ɸ�l�pK�ŭ����8�=Qi��Z#7�Ad��7N��'���}��
d�����^�U�d?�����p\a�A��dU/Y{�:�$��{�p:Ɓ=]���< ��D�9�
���I�"s�9����X�D��
��0�K
l�y��l����-�{�c���xj�ܸ����ߐy����ݏd�g܇
۴U+�T{'O2�x�@8�ϽyS�A�U��L6x�$9�>�XF<���zD�����V��q���+���5�2:�!�N*�LJͬN�>�"U����G��Gxyp�.��E�Z���l����ׄ���X���L�S�G�a�^*g��(V��^�s����l|�)X��
gMk�v/���9�i{� �21A�E
�⼩��ؚ�@��� ���k��vh�}�wz[k�x�U��#�T@�b&��&`��v��`g���;�)��

��y�<�a��]��0٫=���$��I��B�w¾�;+o��$�*W��U>)Y+<�dm@���U�i�oI�b��	��|�%����$s�t��d��0�^�w�_In�Ϧ���E8�=����^9�W�ע�+�'��d{7�k����Z�T{�m��f��=Ê["�^��� 2��D?{&7QS��[�`r��Q]����3�/l^�C�t���I�Z����	;.���
+���^����c��c���ʀR�D��{��Lp�yV쳠Ӷ�hI�>�"̪�o�s+�u{�7�P,�3G`*k�$�@�t���e��������H���3�^���P�t�x$���V�������D@YJ�fl� ���(}�i�-E��ޯA��yh@N1�S}N��iy��!�}�'qp�!��(m���v4��Y��4Bz�NO�U$H�W��"���Ȧd'��<Y���@S�l�i��>�qP�~�64�A��)��e��=rRM��ݘ�lA����>�z�g�dF�,�7�"��$\%iAUE��>�N���
�;�}�+Ln"�^�2;��-�����W������L�m}}�Em{1�z_�=�}K�1W�!��-(���7G�$�i�R����r�<�$��+��L��س�Y8og<G�+�7���6��@1]�[(��(D�d�(�;W��4�E�d-}��W�$RD�á/p�
�L��$h
�(ė�6��E���v���
�ʌ��]�>"�������~Ɯ�)�M*�R0D���^]�*h
��S�_�.�w"^E���VX�
X%�=�yr��C�]��aI*���K��mM�<CXL��h�}�-x���H�]�jo�?�W$e`Z�[��?��'�~�y��/d��J�	��N�R��|	�
�^�Y�vh�K6�MDG*�Ot�rߒ��8�
��xM O�4)��M��{�4�E�����T��K�`c��}��?�3�I��	Od�jS�w�����s�&\�R>��Tqy&Q���ei�_#�}�Z�	�)v��D��3�a��l��B1
���8I�K`��ʊ�d'��}K&t�8)�g�C���G�8I&��"H�!�[?1p]E� 8S�fA�Q��ƃ����<�S��$�~E4�1X��R�g[!�GGRi�[U�����߮�,��Fkۈ>�&��ؐ��@��c
=��z3n�����Oh�^�pH�G8>��^��Q��K�)����{��s骢�}:G�I��M����`?E���?�Pe��S�=����e���������a��/�w`ZT��)�>�aО[��"?{_��jc������\L���"dq
(�.H�DI���
�
畂�s"��� �CK D!j;�w������
�5۝��F�~1"?9���"E� ����h�1��
���~~���҄>f[�	\�"ՃTz�����N�����^��7 ���@��^��'�6ڃ���D�R�+��y�؉�Ac�O6�bG�}V��z�ȭ$:J�Uk^�V,8�W����*A>�*jč�+�Q<��S*n�����U/�w� )�qe��իo-k��oT�Z��;+�[����3E�'��#Y;Nl	+vt���EB���W�ۼ�u	I^���J���2�΄�5���7���	�
#+�g�̴Įzb���Ǟ��`=���p���ꆤ����\��T�v(�$Pg�ֿ� �L�ϼ$�H�7Qg��j+����}���BKJ�3��Wq�q~_��X��_ap�:�T�2��H�7M��<��c@$�&�y����@�h*��l,��z��z�^���6,�5!�,�M��d��J�xK�тJ�Ϣ� k	}�a�̖-�ЯH�zgK�1!���q�߽Q��aO�[18�>=	ʦ�ًh6 м�^8��bb@��ބ�P�TL��|ǹsQjO��	�ss�$E1�P��MKC��>�Qݍ(�~�q�TX��O�ҽ�)'�i���%"�<���~�b��g�CBE��:QD����,�?���'�|+L�sR�gT��"cKd�7t]Xw�7ȃ*��%����oD�	b���
IL�I���hF�-I��	��4�UԽ���ޒ�Q�5�*��Q�J�{�����쒤���E!%�$@�US��VHpE����6d�I0�
�u�8��W)�w��ef��������4(Y�l\���4!�ʫ�&ur9��v�( ;���>�C�-	Դ����� ��jP4k�f�c�r�%�4h�=�:ye�P�,"6+xt8gi*M~�M�#N=�%ɀSH@̨Nj<��v�4}��)CF�N(��KRE�j�U
��ЈZ��K�(�]T߲� � Λ�p��T[Ռ3pIܡ�E����=�I���d��������!Rр,R���Ub%迈
��$��3��AU�0:�d�C�Vv�l�4.4
��n�cʒa�"^vˆ���k5u\����~d�JeT�n'�/����~�g�M{�����D�J?�:��3�&:}_0�oل�&g�Eb���қ��$6�
���b��$��]����])�D�"�J'@�8q�l6��w$+&Il:��-`uG����$`={����s܊�%�*����E]�H~@�,`��'80.��3�	Ĉ�����B?����~'��{��-p�$	��
�b@�p	��u%�/��ɋ���ϡ/��H?G�=buw����'E���#���u»@�yM�&���"����TL���{������iMb�x
�QR��!���O��1�|�+��	�]I}�ِ"L����Z5�Lo�m���VT7����mt�]ﳸ�WJ��܊�(�.zh
}�Vᑊtȃ�Y��Yz=n]R�fi��SJ��Z���>;�l��"�s�
��Ğ��es=]G�)�H0R�R���_�Ӈ���|B��&BM��M��ׂ���z�z(}�	'�$����sh(��jRI/��-��,��,�5&/&m�"Aߤs�,��˅��
�<�}P�%*b�5�d\�&[�~�<����X���MR�+C�"o���cO�_�W���&�'���M*wQ H���y�L�C��J�������Y�8�M���ڻ��V�Ń�{B�����P�&ߏ<�e��S��jij�L�oA�@3"ؽ�E�
��2%�[]@XY�@�g��MiXV.�j�<*�{�:(�՟���F�A��/:��*sE2��B�xr��!z-թ8�I��
	�h���*x�u��CBb�6Y�H8#/��AH�	�ʵX�q�}�8흕dc�·	����?���M.~�`"S���x7�g��˞�C��GA��d`goJ�
�.���9d��Nx�&��1X�N�x�R��8K��#�Rc�K'Վ+���9�z��̢�2{���s��Ÿ��3�I��1�XF�jeF�VZ �t�Ρ
�	�V/���]�������7DA{�UN����"��	�_a��me��`�&�[15+���I�6A�,)h�R_R�oq�	�c�pR���?3��Qp*
(���6A������H4I�E�B�"�'�J?Ψ���_k�����層D����
!��wg����i.�KڒbUt�3DŎ��sΰy7�82q�ۜ�U��@�C �rE�.��Y�}��S��:a�0�$b~?r�‹I��Y����U���&$bG�X&��p7�;��S�ۛ��y��ݵ�9��m�	��v�QH��p���:����\�9����<��)�su���i�,�JT��@�0͓��$�F��v�(���#�%�A)�exv�"7�:XҮH�0��K0����l��N�z>k��x���kzͮp�>�
�M�o�ŭgk�T�$H˟]hR�[��g�xoo-b�Z�_*��.�I��ݹ$ō(��@x|6Q؛�?���?�6�HI�`�P�ϋQ�X��juD�*��\z
��ob��(s��j�MP���^C*]��L-�a��gMj<<�_��Zp���އ������"��t�K��$���&C��NA�0̨l��;����dqꡛ��jv�'A���������?�s 6�@��SJc'|T�`W؉���@�����A[�8y�M�&$����*���Ȭ��}b�('���W#+{+*l4��$��l� �U*����Z$pk��<TҽV�XT�/9�Q����2ȼe�\� =*�Ur�q�D̀N{�bO�M�"T�Su7�Yx�
ڈ*y8p
��<K���a����h'�i���\E�3�T���lU�� ��P��rlΠ\�A���� @)���r}f��Zl��@�껳m�6|��V�PPϠUTu�$/
��ź7^���� ��~%A���$��l�la�Xo��g��Қ^�S0h�;�߳Qg}y�6D�|�i��&Pr�qd�":Q,�����6�/��P��U�*��3�B^���%��7g������M��j��U���{���:VL8��G�h�{�2�"f�]�n����"/��v��YP��b�ə����	�>���\���@p�p|�?�%0��<UKߵ����I�8#Xe�B_9W���P�Dx��C8�1l����@y�?[�DrR�����SZRA	1��(SL$���y���r��5�s�J� �� �.��=Ԫ�Y�C)g��ݛ�z�;�Ġ/��	�/��,J�d&�XH�`�ɳ&f�Ga����(�!ђ�+�t�M�"N�'�]��*����'f
H��h�@��U��������	4��x���|�,	�0���<D'�LVY������y��{�
��g��q6��7�D]�A���W�#�]�_MN �C?U'�bI^ԓ�69��b�U�mM&�ZI�mE�|�v6>�	,�;]�V$h��^%@�\�y�A�rxd���Tz�����b��[}�$!�PE.5Wl��D\+$�?�ײ1bgv�����%z:N�+վWc?F��`}���0�ɠ��EP�-x�`���8���7��Q�4:yw5�<N�*�@���
�Z��<��]�9�>;�a�PV셛6Q+c��(|I%qg�'
~����N�e�#D�l�V�`�K�z��6�����=F�
��,��
<�4�H:�;����̮����{�ܚ(𘬼f�|?���ɥ
C?+��kr)7j���i�P�q��z�:�rn�
��\��NH�LR��#������$d�١g{!*�X���~��A��,�Y8��l}n�РPɚMp�F�VN�d���ѥ���	�8���n뻱js�&��%[b��Aw�ToX�a��A�u�uvz%3X 4x�a��1�]]�
!���Mt�*�8�VLEX9�3�fs�Joe^�b
��OT��I�	x(�� �Xg/�P����?��l��q*��zW���ԕ�9H!�y'Ex~�n>IK�:�p>�)g$Fr��i"h���+/��7'B���`>��^�B�߿�;u,6��j~1�%~����1C�z�bD�=K��S��g�Dt��]��1���u�ص*�P
fQ�fk�M[���f�k���3xʬ伉�8iT�3����=�7	f����0��Zg+7���Fdg��x.2Xe/��q�S��2�D�|�t�c��L񟕡7��G���r<��C�­M���
��t_*=b�H_k�~��}���h�Y��c��	&	!E�8ў�������w�_��O�CC���joU�BtQ�72�m��
}�&i���Q�Y�פ�1�X�9��2�
7θ�(Ce4�R�^x�I�	eHHGA)x��G�#�P�҃��9�K�Gۭ�E�FYPJ��_�x��!1�!B��w���z��ݿ�/���HY�K'���*���Sh��v�2�$�FP�*��W�-�﫼*�O"��9�:b+���Y�b� �]>C�:�3x��b�b�����sr}�ৢMA�ΪjE��"���2�̲(vMΪ8Na�p"�(�������7�YT
>�^���7T���L�l(+���!亩����\�6��p,ʒ�\�Y�Ma_ �{��kͦ�d�s��_ƚm��D�K��*�z��G��˨w"Z��k���a��:Sl�z���V���gk���:[�۰�vDA$�p/X��a-G�)�h���>�<L�"Ö)�7
���T�[�'X��P��k��
�f(�tQ�h1�/H���`���#�l&��:	D�b=4ۚ�a��p��2��nT��X��p���F���V��Ȫ
��_���lrY���3��ř�c���g��#��\��Į~w&*�=�O��	��d��D.��28��Ծ�[+���������s���YzP���-�bֿ�yQ����o�ZI��n�s���\{�ł���?�`4�"I����no��m�+�{���Kb0a��PY���S��v�|f��s�e��{�"X�-Q �}��ڹOG]��Zz��{��&�,{���"CDC�+O�_�!*��E����	v�{#��>I�h�خ���	qD,�ĢZ��֮k�7m/�$c���>����ɷ��L�DG.}�b�;�Bb"#��BEM�M8������,v!�A��ە��F����>B`�����>x�n�Q��"�I⇢�I�/x��� �IV21�p��ˉt�Gµ�L4Z	}�;�y+����	��Dq��c5>�%Q��LLΊv��MA�?U
ς�l�G��r���ێ$I���s���ꚞ]��;����w�.@�Q�}��w7Sa���*���Gfo��Ό���������s�?�ԟ��	�O5�m;f�5Y��H-����&l ���eΛ�d����ws
%B��!N�&?��]e���
h����o�'b�ē��'�������]髪R��R�:��[[z�$���4;v�ޛBVi����[h,ӁI�����C�k!���/\�u6����&Rc��w��JMm+���s��G/PNN�f��i���!6������{iT��A�m��Vߨ�p���7i*�v>���iC!&-Θ�"��EMM��z���ae��CiA0�
!����c:|V�`:l��j���b��v�?
���"��Q�C��[
��>��#�sa��k��oJ_3��8u�!��Z�/�ת̎�.ߛ�����]����w�#��^,3Z$�D������]9�:�^�k���2��tĕ[�j>=W�6��Y'72��!��?gG�/}oP$��s��ߓ�0�Ep�7��:WQas�2�bU�TC�7ы��=9���}�a����<����4#�9��쓆U&ak73�!�0�1�ّ�a��&@���{���ߣ/hF�Tk�q���ҳܬ;R�G���׾�(����k�?���&��k	�j(�nT�3��a��C�@ߩ;!ˀ�k��`!�2W���ɚ��W�.�m�n�qr�u�6�c��<e7��d�����?��5Ŀȱ�E��ߒ�4�n��}*������
9�W7`�>\�YF�@�&�$�@��
{��x�&r���w��&Q(dE�Md�VZ� t�J��Ȓ&>̱����1��\W��Xʌ �r{1Do�!N�iN�� �%3#Md "�\FD�q)�ac<bTgm��J��0İN��i��>,&e��)S>�������`���9��0��͒�.����b�Z�����`��{�K���|�8�E`�^�g]fZ8�m���?�k��Ty���P���S��P�u��L��2���2#�2���z������z��6Ɗ�]/��qm�f"��l��ⓃS��x���O�1�w��W|��9���8�T�g��6L�2
�0b�F)��J�3��g����7U��Hؙ��z�AψQQ��^�����7xW�du�|ͨ�7(Á���͋�;u�QHuS(�����t��
ۜ>��5��*^i���ل�P��i!������G~[r��9��
z�G^p_K/����yC�Y����w��OM�4T���m�e��Nk��V������:��U��3��^U��6���̎ŠEh͍��M&�*`��=�A
��;M���K�Ch}_ϯ�M��s����B�y�ɥ
�/Xo}�3�aWq�@����7�������}p��/*�
�;z/�Ks�m�C��gth2x�a&��=��j��5�BP��޺�E���\,(����-��=52c�>G�NH&4��{�`�'C_��WP��T�G�0�4��VۓF�j���H�����I,�4�����L*��7Ds0���x78' ���lv�}n17T�^#zp�yˎ��V�fhi�֔�ך��l!��Z,>#�jN}M~�g�8��K��L�ч���&�N��q��M�H;>�M€<�4��a[��,!��%���
�_��X%o���w<G
�$Y��^{o4�!u�ڙ1�5��9�KB�:s53h�A�6�j�B��2g�j�~ms=V������������(�al#�	(�9��S!�_�*�����ꃯ�>�����u�~	�%��VLG�<;�]��Ib	9��f��o�QF���&fJ@R�~߰����E]���J5���^�Wp�I��s҃z�J9h��.�ך�F2�[���?�k]%օ�C�@/�B�z;����p���[~R�`��\h�[;Fg���Yy�}���!�0�j�,��KhH����}���ov<m/�Vd �xYr�X�/\�I�
��@G�f�-���s�C�.΅�0[�I��d?�mr.z�ؑK�zo$Ƅ�͒�.3��*(e>|�(s�0[��Z�}�
]�B�`����rmN3*J]c	�X���*Q�2"LVQJ���E٘e�sd̎��*
���&��&��) 4��yd��nsvu�#��f����@�u�
���Tv��
DRtƊ"i��:�ǵ��a�~��H'EN��̔�{f���f�>�!����T�9����~=,�5�
�U,�E��$�|��S"��h�
�&�j�^1���eN)�I��;��u�����]��r7�7��w}�.�g�2� h�N�|�O����9_�f�����c��uTqAr�M8X� �g5lЬ�4k�>ddSi�{_����\���<#dl�j7�i��n�����o	�M����=����ַ�� &/`7��a�#��*!����<k�
Ͷ}��f4�⬧d>����
���=�����{��<w�&$4�������4��?�[�;���lT��^���l�
�:K�
���%$������{_ڳ���z��E�dq��J�9�牢eD(�$��!�3X�����mn(*�8#�g��~M^����~�t׾�l]��5��B,*�ۉ��v�–�\�=�Mg�drI�}*�;�l�q��

�*�@�?�]�s�rc��ތ5�fs�gMӠf�̂CB�C5�)y�@���o�v�<����"���.k��a`�9��Ҭ�4Hotm��WC�~���N�YS��-�jO�^`�4r4Rh.��Z�B�a���t�g�F�
����x�4G1O��H�3�(Nj�������	TgռK��e%!�F�����w��:���S�?���5�l�4"��sYA����$��Q�DC��v�G��ȣ�곆5��������V���J��8��HjV

���?M��3j�'YtA>\
^A#�����}�"TW��S�
�V8��R����Q�	��0��s�:]��M�8�B$��"��i��Ы=���T�����1,�ͩ�`��*�L79�9TL�؜��̬���[��`Y]�ɤi�2'�^�/32n��5�-t�4h�L�TU�\�n�*�!�f����b>�p�а�����#h,�$�Ý�2���S��3�l�E�͹q�gA����Ql/^ -(�jZ;7N���[�L%�u����
'M!
(�� ��Ks���A�WsՋH�\ڱfD�3�y��/ݍY��[�ԅ�J��<*>[wy]x�VU�B�6j�{N�W\��<����Y������5{V'5Ru�3�V��ޯ������Z"'j�����y)��&�ҕ.lX��������y<CW�z�N�W��/`��MS��>��P�?�����9i#�[�=%�6�����3eh��|@�u��|�D&�K�[�kr�ƄJ�9k��F�í��|иC�@7��E�Y�x��}��qf���|��$+��#>�-+�U�Ր�a <�]m}(������"Z�kR~�{,- 
���~#�;��\��ѡ!Y�Bl�lS�scR�� S�9�G�2��@�4?�^@�͂��a�e0�[�pزkiP�F/�L�m���s�C�B�O��8�K��{�1��94�4�{ӄ���@e��*
��t��-�u�/�f�D���I�:��f��H*.W�r�n�++W��:�����^uЭ�����`�)M��c!���,�Gmls*�T��	Se�}��,�a&#b}���]����sA�ր�R_��0�C9�_[��IS��創���_�a��C�O���w�-�Qp�+t���S�i!)e����c�!�l#=4cRSa��\j9�m�r��lO=&�w2p�A���$2g�!{��B%����T
.a��,7�æ����9�� ���t����t��ɜ���h�8�\�Z�%�nz0,A�~��
�u��X�׭(%�h�d�`�25N�QD�l�.8����kB���L��t����6�ac����9i�mF\��o���<7��м�����IY6wm]�f�9"jk��쵸I�!G�
��؜hhӨ	�ת��L�e�Ģe��XTN����е��v���4B9���AS{�rE�K-��/dL��A���/8�s�B}�9[sɳ^-�Y��|���b�����Y��`�����9jc�n�d݈G�
(�NGV�OJ�>E����;�������]��d������}o��:�	a-sԑ������%4����0�E�4�#j)����߰��zs�Q�a���;��ꍮ�|߲#��E��\����'��]^;
U���1����{o�XD-Ȫ!�l>�|�C�g�	�Z�������n�`�w2�'����T	Š��,!�G�u4�5|n��V\��
M�70�ͯ٥�
��My�.�&�\#[j��g��Ҟ�!zmNJ@�@_+fQbW�J�8�l�eY��Z^��%���Oϒ����iܗGN,���~�+�f7P�K�K�8$Oi�-�q����I��� ?S��ZH�ކ��,t5���}���]k��Y�U ]PC��y%â=�[�
{j	Y��\�nS�
c�)�5;,�TҰ"x�"��n�-���q����1}��!��~s�c�f8W�AӄlE�I��
c����Y���H�N9b�n�˼a�G��~
�_L*�s�N4"�5�H0�Y*4��9�wM�v`hD���n�n�
�s�#yF�pÍ�P<��X�gN4b.H�5h�V�;�C�7g �]�Yi�Z��n���%ڥ�j�LW��|
M�6>5>��S@	�6Ot�nк���q�<r�lF�Q`�x�v���ɘz��;&T��KLӤ��z�C��"Q\
���*����X0�@�4mSD���n�A��^�N�<�9�eݱ�-|-�K�;�h�^�nd�g��M�k�|U��m���U*�����He
�4�k�V�y���d���?�@�ճo�*����
{�׾~����kG�?�֟ﱨ�8���h�~~�c�]��Pu��kw�n��@�i&sBazM���	H��ҙ+�7R/hvE���z��f|-����?�
臹i�پaUH�E��IÊ=ኆU��'�:[���uP��VK���M#]t_�����u���FM�ܨ)�
hf�5�r�?z�����P\�{~�����)2>�9-<c�y���G�-�Ҡ����ϐ���)	�;�ٓ�S8���^|
2�cby�.��2�\T~�Vc�%͟��kʿc����EMus��/g�߅tJ�JS���ѩͫ��;f��~���{V�$���mV�~�K5��4�a�n� 3��.��x��%G���e5����������ќR_����p3�wn���?���r�M�($j�V�;���[��j2�ה	��z�ч��u(zQ���j�4�0��b@�`ѕe�_�n��U�>�k��w�,4���~�fW�ls�.
��Y�C��.h�#8��@_��uύE�H՝��7��
|P
�󦡾��`�����Y��Ab�y+��!��8�j���ޚ6�!s4��~��k7ީ�Hߍ�Ɠ;�=x�+D�,�1M���U�������o��N#��
Z
��A!�3T?���s*������
�w���Z�3�g�\��_�mudQ��RA�h{]��c��cm
S�{�y+�|�H�����\[�'�ۨb[ʼ�߇���n!P;;jpKnrõ19����	��Y�L��,�:��74w��Ko��׾�bkxQ�N�~��E�S+�
�ƭ�ш��H�
}��ߊo���h�gT}�0t�i�E��qڜ�� �@�C�y�:�7�B�:t֒�
Qz���x#��7�4w4�&���G�^{�i{M���f����)�r��A��D��ϵ�}遯�
Q�]��*�������[G�.��/���7Yr�<��H����3����t:ʫ5.RC�A�����(�xg�4Ot�ż��u,��d����ù�%oFJ�]Zc�!4c���x:6e���>�Kh�p��!̪�}�L�B���:rßW�qi�/!ncrg���1h��*yC�w�P/�����4G�׼�Tf�?+�r��l��g�Đ�����H��4�5�&.iY�!�Ң�Zq-fd��l�,��N�'P�E[V��}VY�r[^�X��I�f�ېI����l�xF>�L!u�l.t/(�:O=�/A�׀()�s�<��4fK!��aJs�H�[_�y(�����tr��:2d�6���3��Ŀ��@����f(�q+�?k`�z
�Kud�ٴ��.d�e8'���D+��Z�0�nδ[�28%d�wY�`b�5�Rf�^���S����ƭ���,_���*�]W�.t�fn�u(��s�}�ZK���s�($hG9�9�vd���ĩ�����4]�[�4a����4õ��V�ȩ8�W���3�h�[����N��́������%g� j��t��++oQ5�{� �`YM�ڂ�W�����H������ki��{��&��F��H�J��[]Q�IQ5ڦ��A2��aQ��6� �Utgc.B�A-�p����;�O��|�y����S���66_��P/�5GOou
�(����͠��kߐV�s��X�;�����-d��͔�/�G�;��5h�Np�������R4S:�J�BQ@A����欻�'ȁ
�g��b���{��eS)��=�H��K��[���A]��r-]^�k��/̷ġ�V\�IdZ�P�S�Ԣ)��z�����b�P����k/��]�Y�P�u��u����F�.퉉���*&��r�?P/ۣ�ܳ�\]#�W5�*vI��`��P|f�0���s��5��ᥣ���Ƹ
�_�:�B�o=���B���?���S�,���kh��%��GG�/溻���*���M-�.�9�k�Tƨ(�gPt_a�рn���ws��bf��@޿��v��S�h&eH}����)�2�����mE6k��a�����s���@���)����\�,z�P`�*^��kms��a3�89�x�q�Spgih����` h��/��]z���;���w���dO#��iH��[���b�^Ia���k�&�� 6E)�F���vj?��i�k�>x�^��\Sd4;#n5�L�h���Bm��YP��a�!R���^=�Qz٘��w��pj��m-xc��2��I�~(���$��k�uE���
��-���]�A厦�	leT�!�е��ҫ�7`�P	�)@XE�_͙b�C�2�5Ԓ[i�5�`Xܻ1(�����)�c���Եa�>44É�ib>|��kׇw�fP{����f�J�����ZN����qU9���DC�6�rE��a����h4�\��̔'��S���tD�͡!ڽ�ɩ�#�ί���ӧ�,L���o"�����8�hO>_�V����&��Q'5`Lu`L���C�xς�w
/Z��r����$�ܹΎ�K�E�Ŝ>�Cgh%�>�}�+Z��-�h
�rr���\X�4[m(�`�fjD3
��0WL�5ݲ�%�g�z��>�>kr�m�8�a�S���9��r�"���bk�5Itr���/pj5j\AQ��VܴB��u��o޻)�&܂�K��VR����	�9��q�v���	�ʅ�����ԛ~�D�=c�bLN�B�OB�`����Y�և��UZ���-�}٧�"�{y����dp����>��M�jq�g�SoĄ�}f�$GZ�k/��_�Pk)�S�F�I*��дW��c�!���ð��´b��d�\̮����QÒ�9�sݟ���U^��w��|M\@�g&�4|�4��F@g���`X�Dgj��ʮ-��P�y�	1�C�/y�s=��e��d����\bW~�9�!��!�9�)�P@���1�fĉ{�ޟ3�Xw
zO�Tď�m�{
9�3��3"b�<��*1�Bz�4�2��
9����h,\�<���ڌ�[wz�"S�	=
̊��ڂ�!�����k!(�K�akeYF=D��B�ŷ��y�Ie�f�!yr������@�-0!�0�˸��s���6������`­���\*��R�s9��oDL���j3�74:�|Jq(�YBġ��5�
 U�.i6eM�b��B�T�I��f3P���� �f��)�3���qs��`l�x=E�<�Vh]�4�bf��
,��st֥�J��(�cc�=��"l
źEǀ�\�>e��t���=( ��-��
���W̩�r�J�̈�^څg���xh	�UaX`�I�A.��а8l��R��|��@
�o��{?�<�k>�0��>�y�
�JgFdmѸ�͇�m����S87�?�3GP7�<|������-;:���ƥ<��Us����L��mA�Q��R�S@5L������ꌀK�N��&M�m�%�f!$H��BV,�:-�q��PӋ���0H�Zq�XL�T��#{�v�+�֌�J��"�Ԙ׊�Y�`{Ssܧ{'�a�9?S�pm�B6D��Z���ޝ0��@Ednk2��\̣r4tz�^�(�c�NJ�=��L�BS-4�7$֋�sB6�����Pvo��n���㽙��������&�6>����\;��–�5{�)�r\ж��Wd,7j��|�}�r0�<:�B�9D�tlp������h"6��^��.��Ǽ��b{�J a���+������3�1F	���ndu�MI�5[�@[���~pC��k��s���\�+���N�x���<���tq:�(�00�@D��QU���2��잋{=|�ݼ�u^��,�a�ԇ5y��ja~*�����0�2����r�C�E��3�kq��ԇ2�p6��i
�j��"��w=���Nl��TQ?�;�+�FH��B�"z���ON�y�5ɽ����A涀�eX�
욌�S�T�W�ˆfz09tW���[�⃘��ּ�Y��Ҁ��&���]z� �]�1�U�_DM���D�Au�vU�����&%��M�d�Y�A�s��gJ1NO&�i��(�ϗУ$x��I�C��t��h���ř�?{�ӽl3����:���DžU�񲴰XR	��a�8&�	"{$*O��$��1UA�R��B�W *ّ��2
��"G�(�\P�
w۰8�3Q8�Zp��1^���f��f��^Y�j�Y�|�O"s�DV;�#��d�Hc��h�oi�o��x�f[W���*Hh85��y.��Br����aڪ
h��bY���b��o�R36،	��,��Z`�Q4ర�t%-%�<��5��hV�x�rp�#
���
꾆߀��6��pi���[P5�K(玐��G��8^-h(���r/�n3�Rh�G�.]2�Sa{#�ꋚVP2Oeu�`�����\G�:Jg��Y�F��"�{���h�%��
���7Q�:Zx�l>���oh��2~`=u���,xj�l>��z�ͼ�:ud�\ЎP�䙰��&(B־����$w�U����X%��i���N�,�3J
��*��T��O
zy�H�f2N=��u:�Ǘ�8
E�;���\��w�^���K
ñ�[վ��3?�0Y���x���!�(������Y݄>sm&g�d�Cc�-�I�4��3Ѡ]���RPW��mnfBJ�`����s�l��92�{��6[`�@�ܙ^��)r���sqs.ݏ�6�(r4Y��n�LS���_�m8�����,����e?G�N��s��<�6�_��@���~�Su�����1�-d���ed㴾m�lV�P1 �&a_Sg�؍a��֬Z��4�i���^�A9�y������f+V�5՜��V��F�+$�l��8Bh��Z!��4ǎ-6�_j���Q}�?*��%{ֳ��ifz����i��@5;M^@�0fl�(5'�`j���lo����A3 6�xn��ai�tk�J{��O'��y�X����جG�4@�+XwV�j\�iѳ<��f�a���#�3a��\&����9�"��Ѩ����Y��]P6�?��]�[�P<$��
+�[�<y�Ɓ��{�p�[~l����W�����͎6h=�K$�|��)sӻ���k��2�qk(��Į���I&?��L�r7Ē�}vz�"e��l�u�G?�#y����]���͑�9_�n3ux2U�,3��ٽ?$���7�6r7{�&J�ۧ3ji4G�ih��(�f�6�#�%�TP������ɇ��M���z�7F�tZ�=���}�S��~����R��{ߨoy&�������Y5����S����7 �[z�ޟ˻�z�d���4 �,�~�>f7��,@�@�v-��7o���
Z�7�:d���q������U_����_B���0!���]{���*�wU�E�~�>������;8k^���t�:R��U�I:V�a|��Ӑo�a-�ͩ����m߰j��nxа���5�i|ͳZ:A�u�H����9=���
̹8ő�o�ɨ����ȨΎ.����昴��o����`��ן��%r����_��\o�P����|+��
����k9d�Dr���c�o}Sm/��	�"���9����;���dLn�q��\��8���9\��Z�<��.�k&.���4�fg�HkZ��℆k_>w���(���;#��X���7�k����Xt���Ut�^|�<륺�3�����L$+�M-�!Z�V|Hq���Z|�N^�]�}F�dr�\�IDT{n�����W7�<��]̙n-�ao���k�cEs_�ƚӬWL掼FO��9Q�K��g�ѳ���8�{E_n�S�o鸑kA��{�X�km���SC�d�^�!���~�_O�����}��֥�L��L�T�4��v�#�q�����i?;�a����%#-0��O��hX��)zdr���t�)��6ZjM\ꐡ4�
�`�0nT~2i�?���uwo�s��w�����N�
y��al��
���$�lQ㜼�#�y���Ա#>gd�Mn�
���|�ǰ��]Ԧ���ɘ�ZF��$P�$�R�<P�(��H��U)N���±���M���:k
Jw�-yO�;��B���@9j\�;&�m�ni�C�:�Guj6���i�ta
���X�͹n����T ��rХ����j{
�Q��뿴��@|��#{T�]I3M�K��Ec&�_��2�u��[�o�+܄

ؘBG:\���Wt�L�y�p�D�*4�
D�;�k��.�/XA8�uyG�N0n�� ��`u�~��	Ss�qp�ґ���2�s���^�h^�QZL9{\��[�K��k���w*V"`��˵�9��$�HY58�ء3Э�Aú�[�^�t��@W��g�!����c��|�����[���f�7��k�e�и�>,j}��~�}���4e���{�'� <�A�)9CA= -�{���#ʵ��/@%_
�������|�#���K�Ⳅ�y�͂5����:�y���q�п~On�T&�
܋M���mf�,�� 
�M�3��f�{/�I��e��=�N�:e�_z����KF�R��\��B��yQ��a�f����PA�@�
YY砏�L���+D�4	���R`m�9�b�.�g�܇g+���O	Y�m��T������,H6�e��S�=dE��%!6W�����4f�8D MVs�\�o��Ի��k#_�-3�`4U�5S:�3�tN���@v7-��2��3uŪ	�2]��Β�S`96���I�*p������,�8҄J�M�d���3۱�]l��j\���~������p	���7�N/N)��&?�H+�D�A���@��i�ȅ�ql�~lx�T�Mo8��mn#߶��EƉ9���)�d�lm��z��}��A�&*�`����,�4 �V�i��el���GU��b�j�%>ch�G[��SB㽁�i3�r�{����$@z�F�r�9�0��p@��ox%h�x���1D�Z[%���'fCʁ�5�,�5&m3�D#)l�9�%��iA{C�Yi6OZaw��"j*�g94O�t�y]���Ш,(�t�*<[��L������
E5髢3fDf"/}@%���NT15�ҍ�XZq}��tO�\U���k#e36�9���e����fǚˡ¹ �'�
�6��y4��\Al���M�{7
9%7
�>86���}�mA�¹k������>�)��7I�a�@Xְ6b������X�����{׽����k0[�S�au�{σ��&�f��e�ʕ�~�~��h
�U��+���;�W4����D�c�ڒ#~߃�[,Joι>N`L=�u��l�Ghg�͕��=
r�I	t����w)4���Q�sG<���!s��z�B�qK�3��	�]
��1���4T�}i�gվ�lйV�O�7���
:㈒�8���
���L�He
C
��^���7x�<ZXG�D�<�2�{^mn�P��F���@�ƙʯ�Ȉ��xó���TaӢ�l�9�1���d��TҥL�l����o̶5�����>w?A!n�7�H�%2_��e�c��
:`;�St����:^U��y}QXOe���Faf�{�E�YRAo���YDv��)۬���!��
����%�=��&�	��X�Հ������j
�ca�E�<;�4��`L�9��5=��a�~��=%͔/5T���VM@
fN��$�7ìf�����@�Yb����$͛�)N\	�q���'������V�)�+�g<
iYa��^71f螛k�<U����8�Zh���	^��\@/)y�9K��d�#�D1��<)��3E�]�Y���0����w���L�h��H�
h"�`P��M�n�O&�X�(}c��B�v�dr�`��W�CbMlM}���yS��X�S�U����I5���&�zυܝEӆC3(�[���$j�4��z�!ڻ�\j�6����׽ʼ%���ڑq�bў�/���t.$S԰n�Ԡga3���V�N�_����/�����B�f3=���A�Ɯ&F%�ΤS��8sĎ���
��Q	��4�
[+/���dS�S���''�j��miּmAw�y��дi�nAG64�ٳ�_p���ҽP�H!�U���~t�&�Ѡg&R�hV{����3�_�ǚ�&�$�@hbW4�S��ƥ���05��-(^��x�r@#��C��w݃�%^�0��<���W�ν�|��r�7
�ɝ�f�D���PC-8?F�l��jp�(��&I��'�MQb�rJA(�&'h(���eD��pH&btI�Qb�7ƬT!m�}�6�"�sR�r�G~���T�Q�A�Z����,�L�a%��	F�L�nT�=-�zgF��m~>2�ki�#j�0�A.��b@�}�����0Z����
j;���}ջ�����1���|q5{v�krcHz��^���rҞ�7����Y�M�s��G�g�@�:	���D���O��z0QM9�5��t4�ی���t�)υ��#˲��NS�6[��4��ZD�vg7(ϙ�<�f0����4qb��Q׸�:��l��� �a��X�BTM'^�0.DbE��S,0
���ͦ��u6*�͚^M�� >-�C3��l����3��M��YB�Z�x!���f���EO=b3��kÝr�����g�6jY��Ԁ��74Ң�0�0-�B���词�˰֢��Q��T�k6�Qv�&��2����J�9m�Wf������[QG
A���������۰�_�뙬��7�U�!����et��ɱ�H��Tf���ܛ„�*sUtM�(�KДL�V��x��y���ю�4� 3�
6ωA���w
#uL_��ِ׺QC�]��jЂ��f��}O��F0ܫ��=[@X�N���ޭ����5�S~ʗ���9��x�\=G8w�{�F�5�~��� ����o�ns�n*Y�ڵ>�����&,��0c߾��}��-L�+
R>��ZAt�omo�d���҇`�7�N��� �T*]-H|�:XO4��و1cpP���B�6�i�!�{�kwBߒg➲�le�$��:�~ߖ
2�^g�f�)\.>8l"��u��{@�b�g��^YΊ�㐏^ғfPK(�)h1uV�����9_0� Os	CY��	�6e�6Ԩ`�������_t�{����'0�f��Jh�
y��u;��*׼YN��X�S)RPlAZ�1X��A��[��6�3]���
MY��HuZ�~d�ځIR@-�w�:CJ5�#�t��Z�h&x��`92Fr���Ԣ��g��nH�`��`��$�v`��{'P�>oN�=X>hP�{�����Rz�;��ӿ������A���y�u���#_s�ۯxU�v �z�UˏߧfVBn�Bo�ą.�6���g���'�OiW��f���֎ʼ�A�u�P��5��VX�wvQ����m��0D����A�܉��>�����۬��O��d����)	�,5��6�=L�NA�sk3�/�XaKX������_�['�&����޳�ލ��S�)��鍓��G_��Qv
,�w��%9�̓G�m�on���Q,n?�ϗ^�mi��!��w##5!� �2O̗?�2&���5M�{��2�{�MN��ś�+��xTCV�l���
y���qM�����u�4dw�,x�s��
�k/�ohZ����
���k��WC}��&O���G�n�qm��&P���}(��x����11c�׮)쩛G��!��n�I|Y��S��>4��
k}��:�CR@;�~M�ͥ���K�.�y���h�3�Xx�f��7���Q�6+_;E�ڷ��W���N�JO{԰��t��ũ�}�_�����d_��8o}�G_��^��],�T4\3w�_��0hy
]h�0lʮ���,����,ME����xP��A�w�;6^/P��5s��9T��J����8n�>H#�ɼļ�aLHB^;kڥ�#)P~�L��QP��krC��s���a�G?�o��9j�A�;�b��ǀ��k���I�v`�v�ض�{�3�~��~�x_�Gt�м�1���}�1H�t�4��� %o��@�ֽ��A�����_�������,���|���?���}m�E�\�+�?<	q;��?N�{�>�P�#��a�R���Mf�����/[7��l����Q�T�A([�y�=���-�Q�iP���]͙mdˈ��t�Xn!)�x���_&U;���`Ў��k\=�l�;�͟�j���vʎ��(�M���~�)�T�[s�<���c5�d���,�K�������/5��
g���	�\E0��%�(
�1.���=m�ԌUP~�[�'LCW�{��!��@��XO�� ���<��ne���St�Y�KWԘ>�ra0�Qb.MՂ)�"4�6�Q�6���݈�s/���ӂ�a�#!RrnV��T���|�^��I�'N�$f�)G5c�V��ƂQz?�ܻ����c���j��P�th�[�Oɫ���)�f�+La��A�+�e�yl0Q@�&�z7�j��\��F4����� B�7�"�Ba����1yE|���.y?$b,�Un��]���)��	m��/�HR$̣�)s.ebw���PT"��h��s����~��)�����B�ߜz�z�_��@�TT1%zN�L��	Ȗ�}5f樁hG���j@��N��|<	��ζ)y����wP�6��nB~�ͺ��ڍi��|���w4��`�@nK���^]�a}���}���<�WM񵣳�@T��54��W�~����aN;��E��59���9�2���f󐰦��y������)���0�������߄��k�W��X5Y��H�-���"K�z/�p��u�4�+�]e�G�� ��n#;L�W���m��.�lf�o��'��縘S��4K�޲G��4�r>��O�֝M3�����ߜ���P��7��D[k�aa��V̈́����P�L����<C��=�ނ�`dC7�8����(���F3��\H�t��j�!/��2,z��mi�*k�3�W�F�49��6�Bnt[H�����RKJӋ��d��Fz̑0��V�z�[�Q�W�,���k�l�?�
�h���p,N|~��T�V=����ڛ^1��R���f��H�)iH�{��k��慨�7����Y_��D�i�KW�Af�)GV]"
�!K�1���Ad�'05���HP[A#;:
�͐�	�j���~�X��3�SM��f��M���7Y�j-�9Z�9���=���&���Z�gP������&
���"�?�
ݪ^f.`k� �@�H/��3C�S����4�s�`���i�`���r#�=d����Z�)4�Lah����sh�	�@�3������Y�<�W�9�s��$5�(i�ZZ�؏�"ҽe�њ
6�f�2lB���tD��.��������d3��˱3��RC� �z���i�G�jiœ�/(0��qm($�8H'{1��,�����axa^��B�p8��)M��H�՛��9�v��
�)ůe��oh�e�/�Ğ�A_uRT�p4���i
~����GA��U�<%'!zg���>��yo�ȆU�WC��N?=jX��1?ZZ�-���g
��yћ����f!J��|�k�o��4fsT�%�t�`ܛ�/�ΥA���ӎ��_:���U�C54�so��9����[����y�T4.zO[�S�AAi�Y�ܕP����L��-�;��{PG�5,\{÷��t� wҨ�'��aom�i�9��d)\�j�ͳ%g>�+NN{�u�say�L�k
��=�5���8*�iҦZh*?���MQMQ�XQ�i9��s�a�9̡u��j��P%Sכa4�ܘ�����w	6�G-j'��ǭ,>h�!K����q�FI���&�F-�g� Bw�S�EU���?�!~o	���6Է5͑�K@C[�sj-�l�s\��yz�tړu������� ��nd����i�R#6�p�fN�������:oV/W���� y�*�D5H��7��Q�)�V�B�)ʆI-�%��
��H񩱁m���kF���p.M����_�c,\��!B�|n%��v�C7Y�c�la�׽H��Y���P����^ ,�Yi�I�u�����F����ģh?��o������{�i�)5�̛o���*��@�iQ4�I]�.��3˶�X�5'��n�~�X�Gs��I�����N$��ּ����kglp�ki6�*�Z-�#>�
��h'�kCP���ץtm�k�������w:X��]�Jɳ�
7���O������k�U�����+��^�wC���49��4g�6����jl�\P��qMWs�
}/{k7b����;�����K�o�C��b����k�r�Ƌ.�Y2KC4�X�:��N���ȳ&�̖���$��5SF�z4.�gD�M�ѿ��JhF��(\(.֠yN(�.���Q�,#�G�
��[�V�[��B���_:�wi���дl�
�����h������;' ����'��k��Z����B�:"Oxg�g�PO��-;�,�og1\��z�wM���W9������n���ڗo� '�ᔁƧ�u�?o�1z�D
�\5֥ vDt��?_r��!�qyo�󢈻�.�0��0t�������K0\�k�$��	�4�gp�Z�oK
h�t�9�=��L?�d�DK
�Uϼ$��x�b�ġF<˙�Z*��~��W���ϓgc����j�P��%���k���q����Saژ��"9�iՈ<ki�v��
5���������L)1��N���l�8*�W{��o�S��!�9:>RFB�I��>
��z?���7�T�SMh9�������P �u��i6�sϙ�σ3�)�-�ȓ$�b����s�_�x�K���*�{�婠Xm�A
�kC���]�s����i�sX8HDZ�>Fy�P��40ɜz��$;;���;��Y1f'y3�����|�SR[�g���	k�D��/&��m�s@���6Ԑlh.�^��zJDe2LҜ�<�Mu���@h
,;�{3p(�O�j�
��B�4P�3]#}+z�~�ؐY��W�%^A�-@X
��%���_��֪b��-L{��$*LL>��{rE]#r���[`ߛ�#Mdu
j4��,��Ih����%�
*�-ͺv}�S7�����{����ge���#w:T�$G��/]�8;�@��G�<�;�H�F(XH�^�\�;zI�a�>�4w��
��W�2�Y{1z��ͭ�Y/���U{�[����]����Y�=�?�wh�b�k���s�󭣩�\H�Ck�)��kf��;�Mthڂ���?�k��&3�n���d��^��b�By��/b�e}SJ�s�Z����<�(�@�h�������7���H��x�u�t*�h�g��RZ�lT��є�,G�u��_�
4uģ�k�$My���j8�@����6�@��
?������I�v�&�4�w\Xs�͂�����Ж椇l3͜�;9�sQ3�Ō�V�Ɗ��Fo�vm�ˌK�L�Qs�<�]�c��i)}w�`Kh2����!��A�	����Ћ�t����z��	�(�zWsZ��A
��یp1�V�0��L��<#��un����|��7
�}bRf����:���b�"�QZ�f����/�di��	ʚ�j�ް����4��_�qq*<���牨��|p:L��^��W��\��{l����I~�}3���aM��g�^�-�xb�?����cFt͵��>��Ņ�*��=T���S���tk�����`��Ũ@��9P�As����v��ke�P����-A3��ir����6�rclm����٘)
*�}c�4��f��f�n�3��47�h���<݋��s����ps��ln��4���ޖ^�g8�i㬠,fPYZ}_{��^�GsGE���\���ݠ�	kJFFa?ly�P�=��I���͛*���Ꝓ#���c��HCϿ�	*A�C�^�C�a���džC1�з�5���˖<�t
{��0#�\;��#���%De�*#�����ˢ`��Y��Q�����s4�探v -�"r��'��*:g��4.������?�h���K�"qe��9�߯�ܲG�=��̿��X����aM��_(B�q_'�E3
�
j����4�y��5d��h�
T`豨7z�B���ܟ�_��g�33�k`Y�@��)d&�9����UkŜ����Z�f�䞲�q\Pq(��|���@4�k�_�t�o}W<��Uר��{�r���>S�9���K׾7�><�rn3�H�0��#��^:J��4�~M�	�o?α
����&ꥹ�Uto=+!���zG�l|��F�}�����&���f��{RCS!��Y��̮���.��Z��^mA�}�V{�^L���8D�(s�b�Q[���N޻_ʣ���J�e
'�곫�]��
��[����q��N�?���לg�(�g��>�T�k�uÑ���{
w�fI׮����Q�R�Jh�.��-�?{��_׭]��R/��;�n.��C#��9}��ҕ���β;�w�A�u���yBo��;�e��"�0j���9���Ѱ���;�����ׁ�I�
W�Z�_���l1`=�
l�����񐬾��޴��V`��|w��L�d�i4P͞��T��̗H��!�ak7��Ͱ@rM3��p�Z�i���_���a�5���Q�ٮҶ�0��`:s.��%�_�e�����ȖJA�ZH
�W<��"x..t�m>'�j�d�D���K��$_q���oi�Y�xё
&�a���U�?&�hTO6��u�kqs$�r���,����}4s��^�@�)Y���,å��A��+��.��Z�;ޒG�0�=��h8�"o�
�>�~E����Iع7�{��f}r�dY�Qp��G����+D_�6M��������ý�M�� ��M�4ݎ�)�>"m�%k��^8k@��)wۗ�N}3��G������K0-�nAC"����S�a(�����gD��am�ª���ܽ���!����{s{3�l�lG7�3��{��.s���������3�N4�f�
���59�?ޗ�������(�4��`�@��7,��
>�NЃO����a�p�m!b���n�w��d��5�59s�z?R�e��w^N���4��Xh�~�	��7X��\�:��j��=gG�n�E�S���J�֛��)�fֈ�T�#�!Zr�\Cl�B�"b��x�Ҝ#�=���e�'+j��to�.6�"j���B���㰭�k�ڥ��Lj�6�/���_<��p6P{�1�&��Z硟�'Ϗx}����4��Ho^�W��c���t�ζLX�2GJ�ԏ.���=|�d0�^�X=�b�
6�.ɇK4U��Q򊵟�B~B�[J��o���ͯ��RK��P
�g(��Fd�p��Nn�D� Y�<�7������
�_R>���=��^�K�o.3��m�;6P,��[q h;��Ǧ �'����gp�t���aF>P�Wy��4�y���7a)h��1Jҕ��]����-��‚4cE#�3X��
�X�1�I�jN	��I�zIO�eBO���k�te���Y�u�A�c�[0"����7s���3���k4�-"3BSȘ����2tK����gy/(�8�bJ��~d��j���%���BÄ��^pHM�ϫ��H��S��k�BY��b4����%p/+H�>:_�,3��B*;"�����OM��|��z��k_�m�pԴ�`��Z%��4=�y7�Y�FX�4��'���м�w���4iꮳ7��?�aM��0�����amAvp�Xsm7�����+������7�|o!�r�G��o�l`�}��������c:o�sI�Y�x�`�p���έ5��f�L�bv/��@2pThY��{9��zd���L�����k�~��`m�7D��)�Z�joV"?��m�~k@�8,�dO��*�Y����*i�M'�{4_�2Hjpޭ@�
��G�8��u��o�6
>��s�P��c���@�l�ٚ��`���V�{���3��]C�óV�Gzn;m���)�Y��E�v~���Ь�����q{���0y�:(����Q�e��H[���R�^U�+?�0�4ٜ<O������:���T�Ok�'
�g��L#$hM��	,�H��t$���'�6�>�Xg���s��f\4F�$��n�t�W��+T�Ϛ�s�6����
5h�:�A��ڜ^09��Y{2�A!���է0�&Y��V�hj�:
�ھ�;Z���W��/i��S�NoP~�6���
�R,ʲͻv�f"���W�Ɔ1Q���0��:@�@|rvd�6�:�k�B�1�����xoZ�
hjh�F$�����0�589���^������>�͟����#7D�w@\�	��D�j>HQ%ͼ��	c���'Ա(�7`2ؚ���vK�f���j3ºK��������]���4��
��4���\n��e���U�E.�	�\���{���N0Ky�NY�IHZ�8��N�;?t{y��f ��F��5������������{*�p³:f%K 8rO
mГq���ܛVM��x�#n�M��~D�ReI�CG���ޚ3:.8��-E��59�]�|ӳ@1P�6SQ'vN8�4]zq�[v�tU��z6�^0�`Qr��=������EM{�q�8E���~ �)�_�l{Ţ�e��'��fD�����`L��f���Kº�κ
Ӿo��&7}Y� �{|F���ȋ��~��Ӈ��}"��-��^�a�-�(lACX̳Ie���h�!�m�&%/h��27C�aC��@IOioΒ��̇m+�nD&���d��/����5'H�tփ��`�<�����P
�e�'X��MD�
?����8̐��(�1��y;�Q���hTF�2���,�F�w���D
�7�5��a3�J4ς:TzN2��'�R@��.	����'ШS�A���+�prx޼���|��G�j3���}��f����=,���A
�z�ۤ�t�3䖬�]����27�����������ܪsdgN��k��Ɯ��9D��QS�s�?kX?�@�w�k��[���`�p��y�Ch K�&:!7/�E_5TA�(%����i����M5��?�?���xsQ��K�b6Tȝ��$T��%伮m�d��M�{Ȗ�&r�Mv2]�7�/K�0W4Q|ab!'@<@ہ�5X��^�����aj��͵��(����m�5���8tj�m�j����h)�u3t+�R��N�%t ;�H�\���%���9�'t��I0�~&H*4r��Ҝ���`�Lߡ�z�vleQ�a����@5��p����ୣ|���p���}lNc��D�uf��?GtJ��O���Ȭ«�u�$7���L%y���2-��y1~���{�����Qօ,����+�����
�sr7Ӕ樅��A̳���ƃ�jް2������rW��9�kX���~��ɠE~��7o�T]�>��&�?��߲'V��U�t���[��naO�����F�om?l�6�|�<��-͈,��~����R�<w�e�H�A����`�D��j�0U�;d`Xu�wK���}
�i~��ETU�_E���ԕ�Ke?�c�)��R��}3x�w���\�����+$��g~��
�x)��,pOi�;�8���'���T�����D����5/=7HD�d�!k>�+�E��F�
�O��RI�1i
�\
*O�_��:�i�f"�y��l�6���D��<o9��$��1&�2��)P�.՛��u��֌}@쭑�����NT��gy�T2�p�ǘŔ�Z駺�I�,+d��Q��l�6��4�f�{g�g4���)���3{aF_ү�����!)*����/Kuq���;*H74�̹ꉇ���O���\ߓ�4�Bk�s�F�nCq-*��gF*f6UL5��E�6S?�=#e�)[�|L������� 5Ϩ����K?��a�3N�fz�w���
m|mE���N=�;r���U�S!���!:҇�c����@�2�Ԡ,�T��S��1���A�"� �A׫f�	��-;�-�q��+
f�ҽ{h�;.pp�NOV�М@�g�	o�P�[ʳ$��0�L����,}
]�͑2�_`�10�i��p�I�
,e+~`pq������m������e��1����yj�w{�)�!�n�7��^ڱ1�	û��W���榽�8��2�h�����wt� �ڻ�ܽ%GY�φU�#ZlX3�죆��'
��͟�5��÷FKI���-���c��>-x���*�Lî-�2�A;�XK��A<��Fx+�4�%��_��	�̜��.R�s������/i�diy�d6P�w�v�iQk�qAY�35�����Ǚ��/�����=t9����#�
��Gq_}�<�<G�靑�RkFû{c�ޜ�q�M��ʗ�7e��^)���9pA�Y�G}\�������e8�&е颟p6GsEˮ#�~SB�W`0�sFê��s`h1�>�3G�Ѩ	͟�
�)Վ������6"��z���t��ɍu,Hu��{�:�����3���}w�}�F��'d�7PXWfGs7��HR�YY����:wІ�ƚ�fU��OփZeH�&��E2K	r�M-��
<�3��b`0ж�z�sqЅ�d�3`�}[g󭝿���f_�!bV[g��@��m�4�E���_@W?Et���W����y�l�KT��b���CĆ��<-���NGۜB 3��f��Ds�+a�ڞOJ>�oe�ef��[!�ʎ�����`���ѓ�a$��Bl�/���]�J���|�6�`ݥm�˲ �$�x���*�u���U��3F��eT��b�
Y�k�y;��ES��SYj�4a�H���}+��W�I�p��d���e�[���i�qP�S�-���HD�M�̋�Ĭ��W
�Yd_�YN���"�8�ZԈ�V3dy��|a�����hV{��9R�h�Fp/h2��5TTL�2��گ�#�Z�L�vv]������&��ǣH7x�z9*�+�_�s�ޙ9BZW��l�V�$�X�a�M��޻�C4�+�E_��}��������Bdֆ���?�X��5����8jX���ٟ�v����v����_�����׀�j~냨?e�%��ܲ7S�a���/m��ADL�SJn�"]�	���PN��
�0�K��nb
�.y��2�1�6��Y]�l�$��/�q�$w��͑v
Kn!�5��L��X�Bn����@�5��X��^�g������}�د�7�Vgv����̳������|���] 
a���^��8�L3�0��T���ܕt��@ۃNC2R1�ǐ`į`xS�s�<.��/h�+PD5��ͨc�a��ܙ�9d�'�y��u�)�̗&%�6g3��j�c�NhR�6W����`I�GW#k%�kF�}C\"��֡��Ղ>�!�4apM�YÌ����X+<��"��.1�����2��o��y�L1vT�K�0>�����܇�s��k��@�ɘ�Dߌ)�
�]��.�)��4�GӚ�3��޸(�B��
O�
n�c�S�Y�1�턦)G��*��������u;�<��\R�yO���f@��\x�w�9S\N�ٳ4��1�e3����,Lb+���Z���-5E�����#�b�xT����F�<�W����\��P�E��kKsDCe�&$Do���O�d��6N��+���J&����Иɗ@}��~��0��@��i669E���x5>�-�%D�D�
���Y\��as�P|J��B��}c	�����Y[{A�h 	�s첗��S��"9���}|�����leqæ-f`�o�m�'^��ݞ�ρo(֮O�Qoi��a�kX���U��/4��q�a�������&>��|�1�#�7�u�,P��&���+'w�U�羶��9�"R�v4�~�]
�j�����Ϛk`�Lk��X�-��p_��E�^)$	`�G��5D8
-����A�g��V�Z~F�>����Zܩ6A�!#����0�����<�63�$g��/�1�P����� M�
!�9�S[�ϟ�	��.�̫�YJ�h�8�{C��{�C��F
w��!���ڞ>L�šf�
kr3+���U
1}�Ti�\�ƹ��[�!-�4_�n�f��xȥP�h)�шK�p}�!_(�O���%�S�L�i6#�f@�}���7ɡWJ��Yu��'�dGL�}b>e�ެ9�u�ĆM�=Ղ��������֔�
00��S;��p��i?��Ѱ��_E<i��A}��Q�H5G���3�B�+��
�6�wLZ��X�7bXZ�W��RJ�i)I���9�^
��e�6�5y��z�35K6�ȟ5�OoA��sPpk��y�[`�i�)n�x�4r�h\s����A��)7�&"%P8�[z�E��-��#QC�p�COcs1�&3Ҍ7��^�i��(kC$����gD��O�2�g�꘤&/T,ͨ��0⫉mA�������d��稞��P��E1�w2�n+{��i�˻�ȓ�
fJ��S�-
�5�(��i:М�����vL.+Ge&֎`^m6�*����iv>&5t�A��	�K����R��ڬ#�G!�U��uh�7�l�&ʚB�[2�l�:��\�{��5y|�K/R���%-�y�{�>�����&��zV�g�:�a�Os3^�Y�'g�d������?߷���l��5�t^�}���l�VӬ]_{���5��HHح��?��0���5	�C
�Ib�G���t��׼'w�6^�08�p�Sd��1}S(��s7��I�PU��(ڨe7G����o�L6w(�=`�����<�6�%6$�گ[1N��Ȯ��D�г�5�y6P~��
Q"ſ�ۯ<:�,c�3Γ�8q���r��C�eton�����m(r1Tۻ'Ol����3�3�!�G��3�a��oDĔ�-��/E�
@�'�ک������N�5{]�`
��y�9
�$+4�exè)��P�dh�~�̤��F�^z��R
i��Y;�YG�!Q��!jJ��w��Mi��7�U�5�v r���ƀdb픙���<�.�)��%:o��C�
��g0K��`�
�?�3�e�nV9�qtm�����l�6mlJ0���x�g�_hXӳ���p'^ ��D��̅DW�=6��64t~����\r�(�r	Ycv@%F#��ːz�� �����D
�mFd��z�#{-�9�AmaP��F�kq���K�m��m�VM�6~N6u�4l����)��f�W�IP����ļ? �3Z0�pƒb��}�޷�-�C�ME=X��I�~lJ[����!4E�x�l3� ���B�rD�Xss&5W�}[��*밲�N�L��F���gݷS��>�Ť�����PN9�27�4kủ���BQ�ߒ~��kcA���jߚSu�L۱��~B�q4.�oi�x��Krz��"��YӞ\Ҭc���Ҟ�/��ʾ�?C���b����ذZ���?Ko���K�}+*���k��|8�h�\���?)�- �7��z�|��?�j2��B����|B;�ኜ��s�in�����z�f)��#�W�"�}��om����^�}z�ڹ�V �k��`a%�ٌ��4�R@����� j�
���3֟�Η�ґL�Ι�Qs��i�I�8�_#J�|�L635Zf��&���$���c�I
�8��K�Y��Tѵ�64�Z�r^WS/iD�a�\0�M8�
��)/ɳ*m���i7�e�9�d��y(]�L�� �!����>��I�TP�kBM1�X[g��_aL�pNm)�)��
���c�@����ĺ�x�N��&&@����A�gTc��i#����}gs���T��a�%�e����H�k�g��鰦����I{�o�c���7���`ԑ>�)lRY�1�I �EM([�駑k%t��M�O\w�u{�Zj���b-ϙx
1;c��HD�4 T�1<
�
�5�G���X{ƅ��i�1�F�f��s��;��R�����w����R��0ie���^��Q�)��[��m��W��Z�Q��
��"2'�x��)e4�6P�n�J�����'b)�q>gؾ8��ڌ@��.9�8��C���&W�^���LT2
��������+�?j�`#48YCSp���u�^�]�N�d/ "u�l����e����&�䩐Y�3�Z<S�d�'rV�sK�N4UW��k��aW���[s�R��q*��:Cdw��^v����C�|`�gh����s�!�<A0�@�%y;�\ѨaM�����Kv��*xа>sō�Uex^;�ww�K����ޤ��ϟ:#c�N2 P"}�V���ͼ�_��}H��Y�ɂ�>s;x�w_BD���R:b	~�e��
�)�~2�{(a�8r_�S�
̀���2g�\�����.��@D�)�ȇ��w��{���x��tCMn��&y��0M!3M��p�dLʨ�3��p�#J���G�J����
��l��[��2�!�oC�֟�̿�e_��޻[�e�As�}ι���U�KR�T����v�A�EРMA��4�-�4�G��M7ܠ��,,��%��T���^�̼������}�\ḵ־���dK�2�"_��g�ךs�1�?��0�QZ�d�n�>R!�w��dFi7�gx�a�X/4*D�̈́����Hj �����Pf}�񹣴�ll���
�\����HjFL��$��[�<9�&r������Z0`�R$%|���s�K��@�=��
B�䅃쩁�\F����ɟ���Vj��6ݝz!)o�gS��4�_��a̍hķFm�C~��̰��Q�/#��"���3��X|���WS�/t�|]�L�)��o�G;�P���|�CaaO��9TDU�(��Yg窜Cb�:��q.ڲH;�[���t�#��1� �+J��R8Ж�&֢TP��9�ci��g�`�K�yl#d��>��pfr��K��D�0��D503�?�
H�›ϣ�!z���	M/�8��|�<B!A�)�\զj�M�YbG^h\�(3�poora�N)��l�R$�	��'�%�c}Ld2��1����O��dK)@]"�P
"� �~����{v�����苛����:"�VAv_喑�"���fp�L�Q�u�siBOP�x���}�=�2��{���,fqI�k�K�X@�PXjs��F�i+ҋ,x�yi��y*��`W*���
�CiX��3�%[�ȍ����Lذ���y�0y�`ƛ����%�k/�h*<�ZΤ;٭�\�Y�C��+�[y<&���8n�g�q/�T����m�e&���ߕ�M��B'��b|�2
>'*���޲D�+��v2INQ��`��)�:�ܫW�sgT}��_Q���hC�D��B��A��\$�ؔ'��8�x*�.��Hs�)�N��zb����4�4<��b���#�06��”{圛��1���0fm�2�LK���``����#f���J�ʯ�%��3�>%��g=��J�HR^��Fe�Γ���=�V�,�q*�B���H��&��N�(�Fo��] Q$P@M:���<J��?_�����TT|����N"E�����l|^�$�hL��<`B��qt/�pM�7��a��߲��?�Nj��ut��:~=\D��V4�H���OX�>s��lm��C]r�"1n#쒍��c�oN3P�)Lq^Dhv�.\0L�IB�,��Ṗ�(��P���fJ��C#�9���u��{I҃0�"d�D�␹Q6�4ǹZ�/d4!M""��2!��$��lh���րo�
:f֡�"a��J�1>c�hɯ0��΀�:���=՘ٛH�lx��\���	L�В9FB�<���Q<���
Kғ�?w3�˴ǝ]v�Z��Hb��LZxS�������XԭE�����8�_P�q�1k�,�u-ހ&(�q�s � �bᦵ��7hXugޅ��(VXV�,�측̳"ټG�P�ł2ӖS�(*���f�ց�u��4^��]��ڙ��:�%m��o�'4xO��Q��O �޲m��^N�N�_�lx��@��$�e��b�����E��m7����FM,2t(�N$Q5j@|$��5�$K��fe
�&����j(��5���ഌ�:^g,9���3;;��t��7��~_��:���[�P�`B&g\�f�
�������s'�5P0����j^<�M�@V���k&I:�4����*5�Al��!�:�8r�(�eEB5�86�€�����8��{��,��rr�0d��A�]R	�Nx�Rt3�k�FAY��Ξ��FY�0��ޤ1¦��|p��5�Pj��w2}�����B�4
��b����A�#�::Vp���H fT>���IBCJ��|�l�F�ʸqa�OͲ��*�]A,K�g���v��f0�崍��w�~Ν�,֠�����.�;�/�9�lj�&e�"Z�����ms�Wk?����9�1��ȅqh�5��M��
�NʦqP}ɑ͝
��li&8(=�@�ܳ��ƍ�Kp�)�J��@�'��z��EF�!�h�D��1|�J��)�FC2|�Lksc��V�K'����%�:ƃ	]#=�X �	�	�)�_�04�5MJrg���"�ƙ�:hV����e.`��h�%7��z}�>�ɵ�|P���X-�,��a�U�|��D�\��6�ª�2�0�&���5��w�g�f�0����E=N�g�^�7'/dVEXZ(�<��Yis�O�5��<]�*�leL�<ɡ7��isY~V��Yda/#�>�~�����LsN�9�e���c�Iv�ڙ�݃J��{b��P�,)��֬2c�а��#�3־Vצ���5"�Z\̰H&�����MvN���1EB`�e������E�� G�yиbާ��P%k����:מK~n�G2�J�d�������O��s'�laA�'e��v�ѰR�L���%���;yX��d��]�����RW,Pr�WP\�3���� 	F�2�p�O࠯���Z�6�K��Y���U�I�46j97�9�a��˕e\�s��Gcg���3��&�5�Z'w��įMB/X���Q��ۗŒ��n�*KY�<܉����"^;WE@���^�;���i�����,�����e��b�e9�h&k�S�H��k�4f�6�7҅cW����Q,��\��	P5�Wb���G����f���ڣ�����R�P:w[�&+F����59�OJ��y�Q$���b�0{Khp�l���vq0��`�t����_`���Իgn1s���,����3DL �H�x�Lj̢��ځ/�-Θ�F��7�ި���WW�s�>�{p�0|���L�j���G0QIp��B����}F�w�y��lr1c=#��
�B"P�:@jt�Ei�#�5WN��S��7�n��(���u����>/��X��3�փm&=��{�7�~m���4e��#.ms��|���ՁD�5*�T0b>��s�,�4��
�D�~���*O�<E֢��w�PX�ȢgjX�F)�c焛ĭ��iYo/�����S�[/��.c?Kh$`_N���w.��R��I7 �d�
2Uf�YU�gG�<�6�Za��,���n�>7�zA���X���4�n}�A#}�[�y�*q<i�|X8�(�1��1�u�����3t�p�ϙ3��%&�Y�>~����p#�^��uE5��q~uRJ�x��<]���j
�0�J*��*<�h~ó�
n�!��?a�
��8C�ϖ;D�l�d0�)MV��&�$�tv΁Z7ɛx@���>
�E�Uw�A6�,�ƚ����xĺ�F�A��1�N����n�����8N��I�؆�9�Ǚ�{2� ����Ǜ�6{#V����n�J��@��Nc�l�)�g�m0�`����X�禋�����	�6F��F���*_,�K��I_AB�Q���kfd��(�;#���x�Gz���{h���z���|B��s����a��â�4�'pCo�ȯM��FM��<L��͔�ɘ��Ml+�sD�9�Lw6 ,`���C`��.���`>q*��c�����s�bƂ��:��1��rdt\����cE�,21�M��Q�e
�`��g.�д��RO��'���Y������WIT�S�o_� ʢm2���	�V�!w��S$g�9h4@�)�|�l*�	�R���F�6�Mg�'�u�$�p{4�zR��\�q ��ʚ�91
�v͈�k��`�,^�i;�34"�pza��Q��>7G�����k;h�����mFbo�����;F��Aԋ�2�;X�aug`k&Z�װj��/����ppg}�w�P\4�H�>���#���r�b���N�>������g(��<�3[߬���&'��UAqpH��_]�U�����c#R�/�biĢ�����:̀E�F�L�Df�$��Qta/��4����
�&�n8G�s��Fw�E�%����p4#4�@l��k;gR#SAz#A�Q�,��-]���;B�4��k%Sp�T�!8
=DF�,\��Ј\nJ�Y�9S`&sT�8;�g_��cHL�8@�RsQ%�`Tٹ>�|#��H	㌖A���9�m�e��z�����0bW㦠~7h�grW~#I�#�S��J0<]h�N"p�l�=^�%��\�9�h���Q#9�:��9���Q���HK��������� �P��/X?�p6n��$"�9��D��h5�`a`3��ƪ<O�I�g�Hݕ
��n`��7Q!G5�e��l�=�g�����7\Lk^
y`�~�O���i,dQvT��Rk�|�vIg��03�mT�k�u(��ʢ���x4�)�R8nt���f�+1�� �ס��6�7����@�H�!H���å�Չ�b<�7�(�
�&8&�� �^J�O���y��g�d�Yg7\Ƀ���Y���3n5����Q2��d�>���D*��F��0���Rt/��̍7��3J��M��Y�I*+q�~�Y���,�5��@7A�R���[%��
�xO��6� ZC�Z�g�
`zG����2_g ��)��¯�$�o�ױLwd�oC�R�E.٤�F2ɂq�U�c�spIۚ{���Y"���0��%���ҷ���
����\�]�!�@��$9����\������1��L��	��ijg^�_��t=�M��nbFw0��m��OTs	�V* �[��,+f�}��JXg�s�J��G�F���̥b&�;m�K>碤Ȑ��g�K����J�:��}�����{
x�ӥ�$d#�$K��'¨��ZGSpH�
l���v�0��ϩ�o.ͷG�U�$�.���΅���+�RK�1Ї�6�ֳ�J���5��q	snDJ�9���P��d<U%��,�D1@*�iʤp���y�w�.��,�9?��{>���.96z�^��rHJ���n|�D�{"_�K��Cn�6�K�{�꒔8W�,����=�]�$�

Tf�G*��nm��3�7+�ണ=�Ld%]���+�a
y���h�::�X��U:#'eY�'��%$��#*S��zؘ
��0;�G:��4�:`lkX;"�HB0[0%�շ~�W�pׁ�suk�[~͝��n!�!�.B��*�O��-
�wP���Y{�~�5����T���t9���(m�y@��=�|кde�C�a��L$��ּ?)�
��$�̚�f*&��-6�@�+ؘ�	�$3�e�2l����Q:�q��>u�J�؇�gwPF�456�en����y@��H�E_�pw�)�4��e�=&bsD�8�'iVG�+�bgY�{(�{���,Qf��/d@Ӭ6�����g�}_�z�a�q7� ��=�]|�����į0l�o��f�J�����S�MX��M�^��A�
G=��8ġv+A��h���J\��5<G�$�X(4�"�}:;��QQ�y�?�;�'�����'R����L���gq?r̛�EF�sfO��˚�䱹�]ach$cV`Ä<2W�ľ�zA�Kd{Tc6������J���j]��^�T�Kp×@�l�bP���&���Ձ7�$���y=AD6�!w�b�>"��ȋ��Ţ�$�h�=�^ۘ���첂jPi/FU_�ސ*�7d�4;�[0�(X��F�,f���\h7��:�5�0�`T#YdN3���c�t)�}^��
%냞fOF����!Џ���^�݆EK`]w��=ֲ�O��Fzm��&�:�
e�YkH���"[���uBI)��G=�j�M	���P<;ڕw6� oN�]�*��asN`W�M���]�gƲ��Z,�&�V���,���I��]�b��"/�}��������l����q&ZB�T�u��%����D�IH.d���0fz.ά@�����XT&���g���A�d��yp�A���+��hl(���t���S���S|�0�P��\(p]�hh�Z��f�!\3�5Íl0V�����k��y*�w\pb1�&f$��OJS��q�����Bjtx�{;Aq��z�kĂ����/XcZ=r��2���T�UoSq.��t�ϡ��}��C�¡0����a=j\�2hXG�U��Vg��f�t_�4�y<����
#�wը*xV~��1'v�^SY7o��nqn[�Y娡y0G��s9oN0c�
���X�M�FGloE>�L�� >��`��snB�����g¬l�=�M��[$���S����ߓ۶ϙ
�glȠ���G�c|��z6�e�8�N�	����K���4���0���3�<��icS]�x�lLi�(n�&��YF�����8��g1��Ew�\0OT[�+~/��E2�qJ0g�#��`��*��(����z�ǒ6;�8{�IT0D��\��9��9�8��wTs���
eӦ�!�yb���q]��N���@�	�d��25PX��r�/� H���� -D��"��R;�Nv��7����Ƶe��U����N�Z�/1?lX8���H���
�B#����֊��a03^�t[E5��ˑ��Ei@e���ZVoZ�[stH��H�S�y�3Ȍ3
o*�C
>	iᒂUZ��|n>����y�H�o��`������,m6v)�C�#Sy��U�M���S{���-�|�.Ѽ)q���opn�8��{�)`I�n{J����0��+�d-���<�`�6g�	X�����Dv��6�m�u*�H���h��Gr�WdH)]:��l�3��3#�lW� Sc���`m�F4�=�ę�)��ϟ4S��"�X�7���P
,o���xC;Il\σ�X�b +��;�́�E2xO����n�2��;��`;jd[N)6�(ݬ_.G/��glO`��q�G��x���꾼ϩd����"�QJrJ۳�$�İx�zWV���
	hBG��=���W��C8g={v�k�{���"f3�*�����(�����N�@&9jV�j{V�@s��=B�s���~w(�k�\y�ן�#���6c��q��6�q&bT���pݙ�H��?�Q�u��e�s�����7��{��7�rN�b	�'���8o�@+�9�ϻ���Z�7Vs��4p�ڲ*B��S�Cřu�#_AM�Y�����m/�x�s���Ҟi�<��x��wP��:����έ�.M���7x���C�k��G�9>,��rC���B魃���A�_|V��#1bMIF���N���!��Wr��?3��1
3I��F�ʴ�A�W$��j)�B�y��F�2&�XϺrE�1�>���6�>��1��
��7Bb�5j�tmX���vm,a��z�ގ9̠h�
ُ3@7-#�JFMlƤ�K�G�K���5�bx�<��Jd����$���s2ԣÌ�O�`b}�E�H��2╅u��Z��mës�`��
x-�^�V0�
Y���nE��2S��1�1i�)1�<߹�Y�i���31�/B�H2Ȑu'Hi&��p4(z'ms�(�e�F(,6��.�w��yu	�:�E�E�1��8"a�W��1����@��<���=Ju�1g,Ѽ"`�{J��.;�gU��D���f/-�d��xfiQ"���Ǚ���ňhc���w���Zd��Hvg�E����WiNċ�ϖi?<h����+��\F�TE��Y�,��g0��N�2q>���5����z�����^$��]�m����<�u&�؝�@&���ե�'O!�"q�rF�%x�Xƪ2�Q"��@}o:I�q��s3�'!Y!�GztHIB�	���͌r���O���g#/��}�B�泵��΢�R+&_��R�G<��`�X�W�BkL�,=h�ͪ��e	��u<J�z���I��c:��&À�ʹ���!�,��첀|�	FlN>b�+���Pf���ŤW.)�W�, ���S�
��a����i�oϵ1D��9Vz��v��b�q�cp�`���INf$`qd��ڽ�Sp�dNu4�aQa$���j�>�~�����3P�(0�0���P�k�jU�c�FN�.�0[��=�	H�}�G}^v%P{?�x}�:P�ɿm��L��q�!�Sp 
��V��e��p
b���4?F<���]C38/�e,)Śh�9Y�%A�&�d\xJ.���)^,J24t��W����
��G�!��9/A����y���hf��Q^���1���鸤�k�զ����$v2d�R���*��P�˷��Q|�T{)�*tV��c
&uv���.Ν��#����l��'f����(�����$�8 Oͼ�9wo r��EF�06S��!�C��"ɣ�’�ި`4W}��|�y��_@*��%ݡ3����|���g�q]JCu&Y�rZ��5^�9k�~�f��e*0����
��bӪ�p��Aȣ6y���^�,���Yb�'�f�FE��E.��j��F+�VT�<��Y�H�����1��l)1���4�􌪑��Yy�yT�I1$��Ck����ބ�¶����1��^#��'M�9ɣ>��s��R���Tb*�����b�X!r��?�ꚢ��H��A/�T�g`S�f2�4�b¼�^�\!��
Q���Tg�>p�D��!G��9�|c�+�q�`�g��'���N���*]R�_�z�Xd�B�"F/����	qJu�h�_�s��(�'����t��#f��)�]cŨy�q=�{y"�H�iZ ����=C��:�.�omJ�i��C�S�8
`�I�Y�h.���F�޼��g�DóA�<֏��=�����fvH�����)�A�K��qç���MO$�c3���8�S�t�T�5K }T�Y>nl�
e�җ,}Fc���m�e�X��i����æ>���fjDf=!W7�zw<tw���@�Mg���@�z��?��ݠ���h��U����=�nÞ�w��O�Wʘm�C�U�A�4���S<�c�k
����4h�80���Z3�A�t[4�MNY��!�{��͚�F�(1�v�n�$���V�Mآ��It|����Yd��y��5\Gd-�7��\�42�#�E���Q�\3���{�B��cϲEZwR�Y�𚛋h�Ͷ>�6k��<S�\�AC��Q�I��q��E�"9��}R��ir��D>���T4(B�gػ�#���|!�AV@��u����`����`��NcQ�"h�5CS��HO]f�=�%���ýɊ4W�ܝW~�LZVq�i��b��&�U�G
v�&2vB�ɠx�@��rPG�\�T�����p�F`��@$��_�f;����k�Fc>�e�ԝf�9e�~m|�.�m?=A��&P.���b�q����(Ӹ�5fRiQ�(���՜����2W����#��:0�q�
�n�klJ$w,��]�E`e�I���=L3�t젿�g{�a}#��gu56�0ҼG�#�BT��VHk��l�&U	��9k*6�I��s����~��@/Q��s\����x�D�\̔��3[o�!S����2�B`2�L��`!K	�l��HQ�(St�e<�л�h����zSb�3a�l��xtM"0&G�B4*82�jI&��e"��$1�l�-�lf="��Rc;�qX聪6ٹ���'4�֛����y-�A��ؑu�P�4$�׆����Ԍc��ie`7ŅEb#�l���5��>��1��)FgIt�����u�@f����E�u�<�D,�7]�В�Ai|�|]�,�9��F�d���Gǹ��1���uM�J��Yc>_gچ���G'	3=⨩��@7��$�Ľ
_DzԼw^�˜�yd�g���#��y0�[�`^-����,���2aq��<r��(�qɝ��5�1j+�DZiY�u6�$J�_ۿ�F2�3��T�*��4�/v�xӘ�k�M$d��fr����/����pOyW`�Ȝ"i>K,z0��dj&,�ɚD�c�&�����YiF�X�Ԣ�5�[�,>#y����p�r7�n�t��s�ϮY3?	��H,���$qEY-�e�Ⱊ}Z��#D�����tXG@�Pc�~-��X����y�������
��\E%�
+b`2�9o�C��Y撉�g�=^c���M��1�ˀ)T1����)q��{��*C�͔H
U��9�X�������̑�eOr�ﳳ�ēS1\1���@�� �6�]�1v��"|
���t<'��ע	�w=ô��Y�Ғ���3��!�ϽH��K�f@W��'�1�L#��y����UhTr���'�1��s��o��WԞ��):*_�{V�m��a��[���
�����w}�P-#���A�U�����䥗��`j�(�����績Sih�Hd�4�c��fyBdGj�%��xP.�H{���a�(��'{�
�3a�f[�1�$
���ąd��X`�YY�2��ܥ8_����A�3A&i�9A����Skn���|QC�<x�t�H%��8��dd�e�K�6aIQ��a{�as1��̄���8�8���#��u��R��RtϜ��gwQ֧@�!ܘ�YUxo_�$��WC��JCJs�խ�!5fQ�g��5<c,D���FK��L�3.Z
��˙���Q���߁��4��y�����i�}�
�.6.�V�3'�GCV+��"S^��cȫ]�_�	U�[�Q׺�<9t*M�+�1�ۑ���:=Ұ:bvy��x���gt�W�G�h��N�����}���`�α/v�$=��4G�~��5"i]o:.�F��{^
��AO�����R{�_X{VF�!{ب��}tgVu��OP��Ij
�U�pA֯,�S�ϋG���M }ufō�8bp�li{������P��,�m⼧��4
��:x���19SY�G2����@\7���8/�y���8Ç�t��ˍ	���I�A�3�м�E%^�(�sf�u��5�������\��lF��2�^C8�ί����֩��.��g��?+ּ���Q
?3��L����%�����}v�g�G�[7"��t�[j�˃Db�[kΐ��{	�^C�c�8�˳��l�`�<\ X15<gh8MO��D��Gwh����?�K�/S�P��Y�qC�0 H�U�c������!�d6�,.�#9Dp)�c��SE9(�@|����c�Ɨm��gG��[�+͝��X3_�y��m���h����� ="��&�]��QQM��B3�^��
EG�	�
�T���Ou�=(.��Cݑ]`��"X��(9�>�5��v����&�I��ٗ6wQ����{L�,��L�N��!x����{�[�HCȭ!^L�wq�yX��Le��T
�������_�f4�|��l�L�(a�+���qc+�l8dM0��x�
��uk����[\�g��Vw�4m�C��8��la#�elP�6���:{@�Ȏ��M�`�UJ��,뢽�-7�̬�5�k��^�5��u�"������pF&5S4�x��E'���|�C�V[
�7����W����0���s���Y��L2dʹ<jkn�%*�B޸�����|�Q�����n�3H��e���b4�K4Δ	@��4Id�30_u�H��ﴐ��A�dQ��e<2ȎK�R�P@���Q�F�`h�ɱ��?��ưʝ�Ew\7��y}�5�B���Y&6��Q.�L���ζ���@�cZI{�!��F�Q��\Úg*�d= o����� +?A$�Nn,�p�%P��3���`��|W�p�lR�L�5�,��̯�e��S�0�hcZ���I�S���e�@I�=���sb��7��`?���s�P[�֑��ȱ�)X&�(O��0�'�N�J���J�D��8]o��M�ko�a]ȉ��F�&�u2k�A�Fsm�~Op@j?*�}0#!)E8��%&��K&��UƢ��c��`�"|o�5��rx�&�����KA>�g:��"��*��LW���>�eTS'?H�L���.�:g�D*
]�$�ץP��-�6S%Wa��3�Gyit�fV�q
�M8CT2mn�b�b��``!1�|����͗d}�y5��CU�|�H��"��>��d	���]#z���d�cɐ'l���~ 
�ʝ�(:H��y�����G2���[�',��w|*-��D	ȗuG+�c��l1-J��!����;�_���|�3����;�#?��O��W�Q��������ߗ>����?�{��k�na=���tM*��̪�DיS��V��4�g�,,6#���bY_*��J��T�guS���BV�y����(ML��`Ip�`OW\ I|`M�Y_b��+��R	�A��
�e*��߃�R�V�=b]�j_�2 �6�K�����FG��ۚ�Y�L�l��4�ٌ`��8�
�Q0*��;�k�ݑOt�%T,K�ɅU�	4�K��f��_�Cj-�y�$Q����e����x�H����jl��k)���L)�)�����de�0�mo�\��]2(��v䷟(Dc#�ֳ�cȀh�4��Ng�T^&�Ȉ����E�)�@X~�-h�wm��E��&��:K[D��Iƕ�&*�i���A���2$l0�s���"D��y�L�`�1�1�N܀1�?��
�毃&:@o���N�l�g����7�'�������`TEN��=�ib�2d]� 5r7�L*]�L�;Gp�LR`>A
��
����GX���R(�f�ebV��w �e
�#hI�����3�g���|��}3�8�Q���*=5��!&o���/�������:2]�Yf(�����m���R.��
$Y{/����
%��Xh@�4[��{R��Uzΐ积g3\���Jd�M{f�t�e�{_���?��������/�W��ƿ�e ��Lk��9GtЌ���Ԛ�g�X�M���2�K��٩u��X�;�QR%�C-�:�����a�y�Ȭ����<jƩ(6Ee�2)�l%5�Xg���h�Ys'��ȌV��5�����"��')��"t���%�@]�:R��@i�|����Ñ)�c���`SEt�	��FY�;�fo�o��*��7�.Ϥ�Q���Rܟ�Lcv#SV'Ȕ�$o ��j\`i�i� a�gt��]�ڙ��y�=h�j8���fJߠa��qIzR��IC%��X���̎
o�C�T#D?�\+2�a��߷�z:��p�m0�7IC\\����}����gj31�ذ�>[k�X<�#�6fekv�XM��ɱ>|����G���F�� qHG�1fS,D��}i���[��L��9�{�q*oB|���m�M()�jD�7g�)��A�D�j���#:���"CtN$��
�����`g�1��M�y�hȅ�|0F��ڹ��Z	�IJYs�gGpt;K��f����!��Ԋ=�nIz�!Z�u۫2�q�}G�_72B$؛�M��K�QT0%�,ٹHI϶�.�(�Y���^��qeQ�kᠱ����_��q
�F��׫3�`���;��^%{/A��2�Qӂc��QsGѽ3������'ЬN��~�_�A�(\���c׃ay��\�{�a��r��w��;�i���HW���X&��Й� ���Dw�,G��Gc�;X�g��� �T	��|1*�G�hҚ�D�(�]���
n�sj�N�����Ez7wn��m��4��*�	�خ���C`m��Zf z�w����
����*)�f��bJ4t2jR��V��8� 6P3�e����s�r��|2ba��gx
�����b�͐�s�'�#���\��챂�@��M��2sJ#sX�d�5�(��zwB_s������=/CR�ׄ�k�y2�66���0�'}��B}��9�W���H��пCz�O�	�W��B$�	B���#-� �@t��j��m�-�O��\JȞ����8�Ժrgm':8hb�;�q���G'0(�����$
&]�s����<hlww\v�zȭ9\�N~Z�t'-5���Xz�}}��p���7ƺ����G���"�;�tWa>qJ}�2�TTi��B�Š+�����q�/HpD���Q[3��C�*�{B��x��;ʡܤg}�3�ʀ�S�=��Q
�zv����-�|��^< �0[�
��=�׃ꤱ�tC�Y�A�N(#��~����Y�.���&cWY�6@w�j��1oq�t��~j`ZU�Y���I�(�BM7u�+޴�Y�=i���])F#T&��B�7�r��G#y�]���n��X����8Ɲ��sD���� ����|�C���/�;�om�|�3��<��!���*c���s\��,�\.��zx����Ϳ&�My~�����o^��۱�:�6��h�	�?�"ZdǨ��LӘ�<Z3	�t!���{{��_�hD��H\Of���ɟ����V`Ya_I��GPz��=���	���l��A�
����Q^%JXg�%c�� �DLH�s�`XX�7�р���ڜ�z��\b����#|���4`,��k+0ϫ�6Jeoy�t}���	k�^-�J#�9�"�1�;���3��%2�8�g�2|R4�J�*L00����������$z:,�~K0v�us�@Ƞ^\rOB))��9��ї���Ô8[y���M��f��t���L�$?R�
�_�<8��SDv��a��@�� Jsڋ�z�g�	�*�}������]��x����Ej�a-<r;� ��~���
^��!��I2`(��h�`��$��#�����q�NE�-���?��I4��o$^��b˰�Z����;�s������H�q*�(SJv�oG�l�k�"���F��}�a8�`t}��&!tP��<[o��e�*�ȴ�sc���(��	�(��ffyᔁ�_
"Y#���q�6�A���Io�i5jr�l���:��c�o�x�Rc"�9d08�3�x{�dz���L�����b �p�I�p�����5�![y�u�fȜ�ED���n�c�B$�k�lON=��f��?8r(ťPi��o�����Y�	7	�y,��6�����7�?�������$�~�?�A��5�*�㱫�fu��?��|��[��/���_��*��[�� �Q֏�:P-1�`c?��f��z$bN&^ j$u6v|��)�����
�k	���Y�)5� ,)̷.$�EeJ����J>IMXSV��	����,��?,q���
�2;5I,��,h�y�fj���[��n��a�ۋ=�<�e�@CF#�)A�B�W^u^/���,GE�U-�[�|����B�9�yB��H�^���Luv0��9��k*'\Р�φ�Fω:�k��K�A�c'=5�^�'��\�I&)��V�U�2�l��S�P�QfF�*��v4�5���^	c�LH�ш]<úS����S�3��%�n���%�v=�h��G�)��p��D%Ht�Id��*���6(%Ca7��t�
) �7)|S�Jxஹ�����
T��n�2�dn�������`�p�8��T�e&&_�nNpȺ�Ũ�6@he�,��
{���i5�I��r9��L�n3�&�f��ၝ��RdͶa)�q��lD8Z�b�6�ud�,i�����~���V��$��H��ჸh�J�����z�t�^������ ��s	eB~�.)6�<߀��L"xg�)ͭ�bq3߀�/���M�D:ڏ�����Z:׽����L��F��7[�
��ϟ���ǥ�"������w.����w%_ԯ�Y孕AcV)9�I?����kiv�����n`\$~wg�� �\�u�xR���>-�muy}�/��yu�F5K�cMPH6�K���V�~��[��zЬnͪ�ٿ\��?�fu��'�O�k�ٷ����Ҭ�ʜ噴\��,=�!�~�4�0�N�BfJ��ϥI=�>���*4FL�;��&��=7
r6U�3*D�d0�IT�٥�O����(�rsE����rd`O��5�zc�����PJ&R�Mb\�ǚ�LO�L�$�a�EM� �Ɯ���@\��Ab�����D���%���H��[�6��̲�ArA�R/�O;1�A�fM)��a���ȟ�&>��
5����-�2g�ј�7!rl6Da������A�?�+��BoJ�Q��cM��`��a�;�BL����m0�D�֚��Z?F�K!��lg���ר�]'n�
GL1��J��i �J��
9���ܜ�N
ƛ��"��aJ����|�:[��2�9C����%�a-8KK�2h��9������p���#��gc*<���x���^�Qb�/��p-�^/��j�c1��Cz�Mr�Ż�|}���0St.�r�����}�������dee�Z��N�IS��70���h&��^v,ڍl�W�Oge=����2��-���4:�=I}��c����C6���l�R��O��j�fyS��χL�g�l��V�:*Z�J`��Y�nV{y`���e"���~�'�R���o��
(�4�X/��π������9��“�̋�+����p���y��͍�=����lm�Yp���5υI]|�Uۜ�p~(i(��#n_�5.������æһ{�g�^���~�59?��tw�����ӧO�Ӭ�2`��hV���oɷ?�P�y��?������k_:������ݘ�r>/��xt�A{��<�/���(�CM��|卪I?�/�u�f����Ʞ��&ew��FL�)[�6b�`ӱ1�i��	d�]d�i|�h��@��h[rkO��dڋ����9��ŌH̓����ά�����W���9�q\
���Aj�XJ�17�<jd��A�Q�Q���4PL)1Q����F���s���UlPܣ{�2a�
䰑�����rg��q�����HJy�$���!��]mM����\�%�3���!�#h�RC|�\w�(�8���WP�Y�5�Q��
2��WŖE��դ�3�H�1�R� �ձ*��Ј����\Rb�k@d�"d�n���6%0�f9��%�n�1�b8�@E���7�\䎬�+��t8���Iu�@
z��5Ÿ���C�+S��Ù~H��L���4��5 =��g��,�A�mъęG�du�ϕ�B��|,ﵔ�l[�{����k\V�{g��k$wH�S�,k�j�?�$��J��4A�ه�baiVE�K߮g�����7�	
��{8X{Su^@Z:�`t��!����~��y��M��r��ü��4-4S��`�dm�+�r`9��1B�,1��ġݹj|�k�$��>�t�|��f�r&yҾ���R�
+���{��p�G��%��Ђr�A/�'��y��;����Y8�����bw�3����u7:0̓0ҋ�3I(�i,ES&�<pa�/�ӝ�-�x����=�B�Ȗ��Y�z�,,���Y���o�7�q�o�������Sݬ�[��t슀�Y�\������vMWV��+y�����t}ߩދ@�(i&B���`�1�I���a�2������s�S
#�yH�ӎ�̚�x���T��I 7vc�L��,����9�l�� 3��N�;��ƙ5ڇ-�{�������_ޠ��?dǓ���<P���+��p�А(�qSa�g����ƴ�>��EH 3<��0420v��au����`�7�,��eN-#wկj���@i�����bɜuMt�;��"b��=�9��
d�\���܌�,G�
�e��f�H�s${Ԛݘ�k�D|�i"R4��To�g[���e�6���1:쪋�;�ߒ�^$d���^'5�1;C"��B���4��͖����@���,@��bsi,i���Y��
���7�"X�v)�E�]�7w�@'�Ņv�/p[�n&4S"RY>ht�pჷ�z�F1m.̝F�J'B�O⾜��M�Uv�����T��S�K��Զ^�����������F��?O9]�8o��Ys���⺁6�ٸ�V�6y��M�k_�x%/�'���:5mV�|�$�BȖ��*��*�Net��d�b��n�=���CQ
���Pi���مzkd��0��8G� E�p�!V���9������$2BIC����7-T��`&qY���T�|���4��:a�gl��^Y׵��x��[3���$Π!Ǽ0i����>��{�n+�g^�v�n�#��f�2��:����Q=e����R��R>)�8Ki</�<�Q�� �}z���߯��!r/M �?[%��Px�9M���y���~M>�����O��w~��_�z�[�:fV��f��?�r�`��/�s�׾���'��1~��ة�����B�y�-^3��h45Je��	pP�Y�y��]Ƃ���:����Y�C%U��X=�����
��2�7fڛ���0_*����5�Tՠ��(����@z3%�x�7��
�PÇ+��N�����1h��)4�
�)8{�^px���7�!�A�]��k�3�"[�t��_ee�����;��������&�B@g��H��@��i��`��o/��V*\�DY�
��ڰ���L9��*�U5*��K~h7=ú
Q'��c��I�D\�GP��_�:ըz�|J yE��8n�̏O�~c׉���!;F�B��'M���Ѯ3�
� )�
�vP$<-�*r7��0ꚫ���6����y��Y�.ވ�&m`"��Ez9���U62�ъ�MY��,]���H�{�o��xY.�g7G�r��թ�.+�����h��5���ٌ\\@�
Ӵ�z�'�x}�4�g~cW�o��Z�j۠F�+sb+�U�Ë�� 9��!_<!~�݈qvҢ>,�d��ͨGs;��i��'�LF��v��ݘXx�:%�dz$SC�H�,�6�z\-zWݜ:;�el�d��s)4]%}&"v
̪Q����đAƒV�3�saj�2P��Rc,/��$�B�<�0��߾�ʶ���oss	��6�PDLML�,�3����e��Et��Rz3=��_)�=�ٶ,W:x
d5�p��A����5���e�݇�����7�F�e��5U���]���l��/^��d���ۿ+_���7P�����?.��J��x�j�����G}T�ӵY����|����/|��ݸ|o>��H����9p:���`�JY�&�%	�)�����؋�=�	Y�4���s�g[+����L�W�2�$�V��랏��
����©
�X7#b��O�%�+�1[��qh@8���ѵ��t�W_ ��T��
�9��Q�k�AB�*62��?Hk�YXvjU��(#$��8�otF^P��d`��b�Fe�J?[< ��X$��y�����mΰG�k��W\�s���H��N��$�3ċ�;�G"��Y�� Y���'a)H#<+�:�h%t}*��-=%��c��Y�`]�5�'(24ő�PiRe�07��eٟ�i,8��JT�$k#�0k�bJ�}�$a��|�F��~ڭ�/$%��9=�8���
ݖDDL�y���,���m�βYy@-h��"O�F�So�[t+3�l�13B��II`��Ey��F`�]*��p��}�|����6��Y7S(�Xy^M�4�ռ�|Fi��$mN��9�\�1?��_.��
��>�}�^	�)�i��.��tL�ȟ{��K�ܒ�P�yM��l�mc��9�H�'�[����3�Z�鼁S*]6F��fl����svИ�ǑG��H�^��;�{=�p8#"\�*%6��0��[�rS��`����ȼL	�`�
P6h�������
�v�Х{�Č�iTA�D#7�µ�a���_���n�'P�f��Jj�PS������
FM.��0/u��#y���)�=�<��$j��X�.gmūg'��5���3�=�I��4�gg��kA�,(x�3|�#C�Xյi] ;���Y���Y�Ȭ����^~�Ȩ�c�����!��1�6ݖ���䙙��B|c�30EиaCz��"�M��0�!��s��ŢW$v��}�w���Q�"0�QcQ8އC#2Y�G �]t�ھ�fV�
�
�X#�^d�y���Ib|���g?�����7hԨ��z>Fm8K��|RR�&U4:�s>=;���%�יe�s��#vP��I<���·A�443��/�7��(A<T1�:��:��#d �3ըH����h��ȕ�ś�^�����:&0	f�9+D,�Ѹ��^�H�Gl��~���J�n�zpY��20���w�]Go�q:�h9�?+(`'��2L�[����)�0�M�����%>HI�y%I�gh����Dai�xQH/y�2�3�Ro�,]�d�DsǷz^����㚒aTuF���x�TR��X�Z29-S���M�nK�V7�]��9�Y�CAc�H/�t�J``��ͶM~�$��\	�\L�h�W����YV��n�߇e��')�&;(9���Ñ�����
�\��M�bZ�>�����*���vo��5�U�n_���E)D҈�Ȝ�sŖVpe*�ʁ�6��B����Z��-Ҍ#�z��l��:�5�Wg`�iRkfRaS��6��b5�YOi���&��ҥHR�V�Fs�B
�4��y��j�]P^eͰ	�1�>�{팫3w3;nBrC���x���>�FE�þU��O��{,ʹ�w����5^Y��I�m�f�i,n�./�t�Q}�Ͱ�~���'۸�\�oL��?����?�	��ߖ�9��Ə�k���[o��~e��>��}}�����jX�^ן�RdV����{��2�=2�4�rD4jù�c3vY.ֲ��?45Yr+�O�d͢{�f@fMn�.���s
H$��4�/3��*�n��P�h/G
�
�Tb��4���Y�J�s���&��hLW�2H%��Y�]�e/a�^?���#��l�p��I`F�s& qd�9�l�l��?N�+]G�^j*0���\5Z��#pƸ���hM�BtE#�����k"��@-�PF�eV�|�$w|T�|�uj;
��b��QI�G��94hT�ǚ��ݙ�nx�Ԣq��B�\Tg���B��;?���=-5�M���y�hE�.ʢQ�zC�z�g��(����:h����<s�j���HFe�(��7A~8 V�A�]�adeE2�^bQ��;4JAe���Ȇ��6�
3��4�۹ZXI��곗� A��]��"n�&=a��Br��G�J}ͥ�� :�_	�A������6/���G�Pr��X6�<�
o�������m�r�WC��@��F{c��r�i��T�5��z)�B�;���Arf}Mpt�f%o
��VYH8]����>	��k��w��U��YC�f�k	�i9�ft�N�]N��T=�"�j-��5#�t�I��Ÿ��������G�ƼVG>��C��LTZ��E>w��bz��x_�yD�Z�>y��Z�bT�� PT�|��i|W���B�.3�r^{�Ω���3�S3p�6~�s��3�Z�G��k�[C���coV�������4hd�rMξ����s�ި��ɣ|������Ʈ6��&���|f�s�����~������5|~<}�L~槿���[�P~�~�~ݷ�z[~����K_����'��9��?��n���?�c<��jج2�(��D��m�����nfsy�$�B�i���A��G� |9�E�މ�J~M���\dn��)�dqG`r�<��x�&ț�H0Mƪ3�=��b�p�g�v�l���\�42��\�ׅ���=��.��Hb��^՚�
+��|�"Xjc%����"�qw�:��0�ژI��uZ��OM����^
գ$E�`P��ا�Zg�n�,!���
1�V62�I�Z�TW��Ǩ><��:�1��Πj��\7��ޢz"4^`�|sR|�W�q�*Rܯ��S}D1`��k3�QL���&}(r�f�P�&ʣ�&��l�p]�>;憴b�Ty$�}���������l`t�fGﬧ([�r4�#��a�h�Hpln�d	�Ew>�6�7Bjg�~�>����D7L/EVjZ�ʝ�$�+f�Y��'����o�3 =��o�e")�_K�M�2�sܴ���$����,i0�X����&=vf(�b�n3���h�4�&�l�k��\7�ۍ]��g�߻l3^�Ƀo@�VC��ryX��ܫ���Ty}�z��b	A��7�g��x..���!����~�+��V����
��˵���j4�H}�a��_6�K9���;[B����Xu&��k0��2��<�6-���A��� ��2��1
(=΍���W��u58z[�˵���X�PL�U�qӇBcecKg�8�X�c�}1�r�T���&-0��,m���
�܎o�E�r��uFM�v��?�=�H%O75�z��2�{�����- #{i
�zV6�3*����<���(�Ч?}��&��7��ůL�IN�S`W������Q�~��?!,��Ϟ�O|��7�/�~���omn��[{w�e[?�������W���˿���}>w����^�w޾1�k\Џ�Ƕ�֬w�=���:��/����?\���Lrr���߿����Q^$A<����z��A�26�8����k�R���2��!kɠ�F�H��V���]S��FfQ��
ۄ�+8��#���,/
>5�%R
x֏K>�����\��f|QE�Y��81*��G吀�n����lyMv�#f���R0RZSU:l-)�sd��^�P�i��K$��������j�����z€��d,ݵY��#(�������w��
�$���@q�*ׂ̙��a][�
�O�kd�ioh)-��5�ҫK�q_�<��=�6�[�ʸ�2f:s���G a��3
��>���L�&���@���y0�6ZkXǠ��!��@º,m^�eD
�ȩdjN��B��A�-���M��� Hx�3IG ���l�..�E��Dsu^e�s�M:��d��p�&z��Ç+o��4@��[����N�t�aoX�V�s���c]����W�x�ڱ5�� ?j�����m���n^
s��?�II˳���Ƞ�+��,�����٧�C���e��Ձ6o��V�eu��6���jul����4��v���aSvU���%,hCeQ!�s�++�����H׃��E�`�|=�����v)2Ẇ�}>#ɬha\O&�L��67���������^��4ɇ�Y��6��q+�xr�<9y����l��_1��8��ْfL�����Oz�0���	�c�]50s�y7�"vP�R^�(ͥ������ze��~���,|���~��+y��G���[_�?	?޺6����g��~;���>����o������Q�y���{c������6�Q~��~j��^��{\��<�:rdz�����N�+<z�D	S�O>|%-b�,�����n,SF1&8Fމ��!E�dj��l�4�n	߂�L�v�:fd���^}ah��2x1�,����[Z0��M:������.����>jP�aS�9n@���l�Ȥ�wnf=Ⱥ��ϟ���7!JH�^"�N%#&���j�o�1��
&�&CRoN�B�ܛ�k�D�T�m�=S
�]�@��W�-��4Cs6ۀݔ>‡#x��h`�|&>�)�(2Ǭ%�č]6����c�']��P����
����:�
dU����&��;Ӂ���~�?˒c���{#V�0>uF�3{3�H;�+�m�f��^�P�F/s�0'�$Jyi
�%�g�Ĺ�,� �������X��-7�]� �A�S�����o�ߓ|k�nk&��`Uw���}&6lJnf�Œ(�a�h:% ��+1�&E�ڮ�B�isB���mrA�5|�?YR{ ^†�L`	��GK۴V��*i���V��pp� mgP�^���t���ʛY�#��LN��|U����c���
�%)$י�#�6C��9���:?`��,�I�Z
	�My�ۓ��эU^�SD�q6[3�0�s��6|je�Ƭ��������ŷ�YgtE#��o�3���O��=��}.����7�(��B�3����+�z)2���X����ZQy��sYk�r�>��=w�W����o2lX�~΅A9d��;m.3�ٯ�ץ�Ggm�:���]�������~�6�_����;��O���[���e9Ԭ~pmV�{~��"��7��o}[>�?�嬮��t<�O��O|w��^����ºu��I�O����K3*c&w�nq%A��H�A#�s���F���29�R�&~Nv��1վ�W��٠>){A����GT�����Y{�
\�E[��h4ż~�U�t_����y���gN�w N(� ����]���#*6RF�u��Ѹ�b3�wW�3��<�1˚�ˑ���A(R����U�����Jvg�ٰ�ॢdĵ`�����t3؄�D��G~N��7���mg3�8gZ�o�Ls�� <X	%$0Ib�K�A��-X��k�lq�@�v��8��H$�l0c��w�!Éf��]�8,�pd��+)��[`]��>���6諸�N���"�a���?�{;�3e͏��?�J^ �I%ʟ�.��	#?H- �d�I�s��_��/4��̂�]*
�E�T��Ttk��х�6c!��/^$,L�@��Up�%'i��Y�̺}�y��}Z�yM�2�c�&L�ډm�K�=
�&8����
������ځ�u-���g�}�o�4�hh��u�]7�U���ܚ�/zs��*{Ѷ��jY4���"c���m�Ԣ�	�W�=_`�
h8�ijU-m&U�ztvzj�Kr�r�BNE�o�d��Sc�k�q�/H><���N�\�R��(�uN\[������9�~�\��Ydr��hd#������럝}is��]���Y3�ϻ��hB�s��Y.�;(e�J�L�e���>7u�™��g{����Ϊ��oߚ��~���;��jF��,�2�?�埓�p��Y����gY���L���<{�T~�~I���|f�F�ڣ�[NJ[ �O����7�s���Y���Y�5��Z?_/��(-����,�^��F3����
�jtr��9��x`�{-*z��K妾?M#�H
�.�ص��}�%�˚��9���(��3	��>_z��%�.���Sj�&�i�������@f�gLQ���aq�~�����j�`
s��8�t��rĢbp�ZS�w{��4�8�릅��0�1I/�Wj>��f��D
FC��H���,Q��*3���z��8�ё>S�2�,�~�K��'bq��gޕ��5Hؠg-����
��6Vu%�Qz�4�Jk�@����=�\Ҏk�j�>9�]�B@]��¬��TYd�	����7�l����жxl�Ѷ׽i�'Fv�I����}�����.֣�BV��L]3KF
�iM�|�����Y�W7� ���zh�{�\�N�6(ʄ:�f��H/�A8�Xb��e4E�k�RO	TC��,ߜ{��[���i�~�Y�T7W-��{��GYgo/vC/�a��L
�۹<[k�56	�5k(��ǹ�3+��f�Za�W��1\�k{m~��ϻ6�+���b�}�����d�0�}p����lPv��!�����f���a���*����}،����5�g�y^��,=��D֜|�,%�.��"���m�,we����x�����Z�jStE��C��*~\s���Bc]/7�>�$����I��Z��l�z.���[��M�?�DG�Ϝ�4�s\�@cd<���`��B�]�a=���Bߌb��_�����?���U��6���ׯ��z�>��r�'���Y��?�����?���z>˯����?���<N���W@#�L���xO���6�뿽���p{�^�}�`��;�',����Xヌ�������T�΄�W��$��\��{�����}���	+M-T�p q���e���Ge������>��Jl��{z12��x�
�0�@��I�B�z����3�>#:��AF�|gBq����e0�W���Xϖ*�w���TtU�䯷���L��Ȋ&c�6�$���ّ��\��_P�#��LQQR�������g�ſz���.G^�i�
Oey�kt�")�O�kI�E0�2�A�@O�Z��p��XI~�d�Ҝ,gj��{/���J�Z�O]�j���Gϡ��U�3�q���k��&�%<�:v/�:��a�n�")�Rt��Jt�����Eyn=H�8o�)�Bztl*��Â���$�����;,��6��R�e�Oa~8�T�M�S��ؼ�e o���cΟ������~�`�*�n]^��s�i1F�\�K9l� �ޑ��z�D��5Jvc"��"o��Y�6}�&M%�����F$�����/��yVy���l�H��~���#�Y��'�7� W�̾�b0ߚ���\��7M�D,�g�'��6��8�/k~�~��n����m�������/Ђ}��
wS���+�ƒL@=kv��z����|�@_����ELϮ���*��s��a�3�53� M@ĵ1��%2�\�$77�5��lZ��K@kO�=Xu���{�P$Ƈ�ئ��{�1��GxOgo���"�]���,�k��ﹺ�gX_ǰ��5����_���f�����{����볇M�?�fu[�׳f���?-��[�#_����d/`�[l1e3=K��l�2�HB�E�S�\�?^}
�I� �k��	�D`��y��H�1K儍��|�)�6��#ɬ4�>��iU�o�bS�I��MR��A�xI�=��u����3
R�{l��<���Ȋ
�_h&C�~7v�E���'��a�K+OtsgX٢�3�B��bh쭱�l+��r�Q��Y���G$Y��ַ�Q���i�!L�%n2"s�:��v!yg���C�!�u�T�<��e��@�͋�}n���^��|5��boa�UFym:-��6`<�}�3�S�1�� CC����6��X��"1����*Yd����:GP~��m�:�[y'�o%J6$,��;ٟ�����^tܲ8�1jBM�b�fBh`=�~�0}9�)�_SkB�QȜ�I���uu�WY@���b�S�l,-*Ć�m���Z���痕C��v��9��1��5����	9%�@+������|�
��x7���~31�d'�^��]�<e���<˨9'����u�hK
�BC	�{��$�l&���"����@���{�е��V��[�˺�MF���Kp��}{����[�����M�S+<o��+Dždս~�5�溶ޑ[3��LrUs�[ӣ��-P�TI�.Kt>�RD���O��u�����/�p� �bk*�C��[�uͽ�~�c1mz�����3_%J0��2<B��٢�n・��m�um�{%n�ߋ�Q�4f2V�Ŏ�2�P@J�͍~r���v��9�?�j��~��l:��'��W�����6���G����/>��,�<g��.X����ٕ̓�p��%��}n�x�^z��g7z����Z��	�сJLY�]T�/�������!n0F�	�q�l��+`���s��f6^�S]|{-F}�^s"�el���wg����cUJ�3���ns�H����}4<�SLR�@�3~Q���Ա9��,����dI��P#8��3lX�T���\;�0g�m�n�!<T%���K��P_h��G���/���̨�7G2J�h�BG\��e��‘B���-Փ��=X���&o%�T�8K.`l��μo�(D!�j)��ZÈ��{�-���w�(�I�r�Lj�:����PBDF��
�M�-��r��i�O�b2��G47�‹�7�4�$��%��~���q�*�H���VPҲZS�0��ܨ�ga(O7��!g[��2VB����3���d����LBSW�~Xt��
6>�����Xz����r]_�iCG�$��	�C��A:��~��uom�r���Yk�Ϲ����Az�[�D`�H�0�HB��08�d8��p�1�a��	�7�!vh3P��#=����{��{���UUsV͚��>牧���s��{�Z��o~��~�Y�(��x�<Z�w(dӤ�m(.�*;	9S� �
�[�ɲA<�e�6��j�`��{}m�w�bM�[J��]�%�S�{�֦FI@֨�*JB�%�8��۳@�� 0�v�qX�$�@�_�mPI��9�ߌ��]{���W�}�>���R��_��n���3~��&�=�3h?*&^��%���)	��6O�6K�MR���/J�cjq��[��b��9�=���|];>��1���h	�<�2P�ڳ��ʌk�h�2�Y�V��en�ΊhN�������|����Y"X��3�)���x<�o�u�����`�m�����>d�z䱋_��=']��������v���Q�&�����0<j��}��=�i��n�Sk�W�K�ҏ�ߠ��i���@�t�N0΂bl�
����e+h�R]5���7�HZ�c,� ��
6&v���՘;u��eM�0�2�E*J&�W��&0�E
PU|���Z+e?Hm��c�[��f+Q�E�-&e*E��0��{���&[e�0_�8Ԗ1�zV�Q�6�12"
��W���]����A��v#�6,ikqm�Sh�
:!sv*�w��S'[��-���,��CH�0wj�����Lj�2q&�$)�Qm=#�\Hm�X��xH�
�@Z�K�s"�{�Ze"Z�1c�U�{0�y&k�R�$:�'9Ͱ�a��U
��G�uֿ`�DaY�H�NHP��"�qK]����8�6�[t-<����v]5�
��e��3s���&�&3QJ�����cY�m�k5�~����Ѥk6��X�-���xt���T�o�Ԛ���I��5��-`3���z616?0[G���6�ն!i{����X'�F�����G�2��w���hjU�#-!�i�.�'>�0T���(4C'��R�k�&���P�5�r����������hK�Tg�H|��j��JW���ȝM"��ø��=O��L�X���X�okv�|�t��P��P}w�� ��&Ɨ��Χ��k�^R{1�Zdb�.K��;@���:���2�>���]H��"@�ޥ��E��N����Әoy�/Y�>�r�,5�*��܉�_4��5��͑�dX���X���_���+@+)θӵ�η{�>2��{F^�������_�_���ͷ�:���},�İ�W�?l`���>�i��Ug��?I�j+#T��홫��F4��7������7w����a�DZs=}v�@�k��feh=IcYE12J@ŵm!Ȱ�D���e"F�&Rδ�)�.�N�?�Ze�s%���&T`���oT-�t�+�����rh�@�к�:N`Y��-�������;@5�!��.�3���a��K�̵|���+���#^)�&
f�{85?@���N�S�n�8k��+�^�D�щZwe�S�%��N�-�N�P�.�Ei�#gB��N+�T�X+
�^�hw�2+;�m��52�L��
�I
@�JBتB�����$�,�d�EI��v��*�$���
��J]^ń�
N
�Ȣ֞� W��W/��Q5�-�Ξ��1��)���5�\����
L:�D��z��vL��~@R��6���	�� V���P�-�z��um
�U�B�%��c8�P�}���p3?��h�W�ң2m���<.�V[˦�0����� h3���,Kܒc��;5%i��e��F�4،��`����ՖCA�V��kr$,Y��xM2-��5z�G��
s�Ώ��gLzFl�Q���@�&a)U�������>u�R�V<����VRc6�O�C�WC>L�LGO�}62u���2H����PA��"6=Q�ff�̡UZM�:r,��1�͢!ICp~v�v9�
���6i����76��k�c�X�{w� ��,�}�MLX��
T/�p�����
�v�^{�"�>��y��1����s���oS��R���+��=�A�B�:�e�N�2�Uw��(������e ;���
k!��Ĝi�)<VAbm�s��ڞ?�`���0��B��K^/z�S���/���ug[��)����in�zz��w�[?`5ס�mz��8k��4�g9)�b�F���ڽ�e���o0��>��ݷm�"sw�kr�i���p�ĸHH4;��#�:k�g&�0�g����T㝒���^�r9Yz6���8N���]����%"#ހiqg�De�Dg9���LJ��Rs�z�o�)
ս�T�cJ�7�l�X�xT�����	'�g����b��Sna��Z�xR&}Z���-���G
�C�(�ں?g�
��]�W����aT���'�ض0amS�&K�e��<��xej掍�{.iE�0x���h��E?�6;���nڸ�|pԲɲ=K��٢V,z�k;���� ��l̾�ڟO��ψ^�����{��tE`�n��B�1G�x�[4��mŕ�M��u��E߶�)�B��T���H댳�ش'�ETj�'#�ū�����<4$�^Qh�QZ*�ck��B���
�Q�%���U�ڣd�FljD�Y���H��A�ö�s�PP���n4�a ٪;��4��&��&�V��|g����g�C;Mb0�:J��-�Z�*�-^]�����	m��?b���2�	P$v�a�dl�8�A����&���,y=#��C�=p����!��	����v�4~/×닮ƓfbG�S|�����ͯ{�fQ��Sly�6�N�1����x���N�]����;LZ|�> �?;�u5�%qB�9<y)���lL��3�3�8x{ޫ�)UJ4�s}7��9V���8��%?��$<p���bu(טN�p�dz���sp�?��ul�t�e}�"����Xf~����\S�j�c�����Ԝ�4�$�����bC��©�?�8\��n����u��É=R���ߡ�SÏ,���O��*_���%/���S�?���|��s�p?<������w�7���5?��g��X�@�Ҷ3/�-���P%�rΨ��8=/��_��y.�y|m�o��-.ƻ���DK�@O-�Q̤���a�1�2:Vk��%u�Xa���c]ҳ��ۀ:��a&,�9�bP��hn�㻅�Q�N��
�3!��B��T��nS��U��3�{�>l�g�����[����%�H�|e,CX3�P��M6��O;�co��1OK�[�Q���U̞=��U���d��@X�m������؛�W�����b��o���Q��&��������
�$z�(U����[-��H幒2�z�U�=`
���2#�Y�6<��@S����`�w��$D'B0�?���X�0��¤�e�2$趸�5�֨f�	�dܮ���*�X53�ԧg�a�=4WM�TM&��쫶?�z�0-�@%�e-KC0��H�Ąt� �:'P�W�P�3��SsK�����5-T����qv����Us4FR2V9$r��M�5%��2�x͎����I��2�(e��o���?E�jJ԰ٵ=���gd7��]l;����ev�6Tj[r�:
��*�{���,���.)���->1\�q౉�<�'r+��|I�H5���[�}=�Mgꚤ>��q�j8�X� _��FMo72M�.�l��RJp�:�L�Żc]Z��[>
��I8�pɛU�߬.��j
&�R�=xG�27����2��4G��9�<r�>��z�]�,�?R���|P���&W�5Fvd�{͕r�$����֦>�=K��!ə��&Oq���F��i��f|{�ݟ�԰��������TLD���5|�*w*�haKt��GL�¬��	�&�
���+�Ƿ�&2�3X�ɷ%��,֪>�|���y�3����.��x��[�_Ǐ������r��L�cG�ui1c6#��È���7�UG��ҧpRT�)�J��|�
6=I-����v8h��/h�rW�t4`Z3x����ёj�&���C93��3�
��DhP�gr/0K�(g�8�qr�;a�_�>o"%��֯��L�
X�23BL�g����a$5s.m��a��I}Q�`z����)
�6p�5f��=&05��e�l��N�#,M��:iJ�Lͩ��G�]���ΦE�$�g�%��+��Yg�~5�!�r��老bIiU�a6��sX�u��z%�'h/OJ���p��u�=��֟��g#�%��I�4N�ؚ������:��i?Jk�.nks*й��mqoK��%h@�3F3�ٶ�>~tf�+i�R玦3�D��)�FN$�)�s��n@z1`���I�p�Y90Y,4Ck���� �ձ_�3Q�)��J�]T��j�,W�����,��!�&J3#)ʱ�P�E��ΒKc��И*�����
YV�����K��13+�wjjܞ�e﨔*\:[�m����K�,����W;Db
8���ܮF&b̹w�AI�tV��Ѐ^��c�c�2���H~�M��w.�R�Ґ��ꮎ�
r��=���4�e+y!(1��k2]�� �haRR�%�!,n�ĵ�{�"��+c��{�����9H�Fl�o�=�:����k������1�y"���Ev���k�y�TNO�NƦN��/U��T���1Џ��JZY���63.gcf“��á�m@Á0�(��8�'Yh΀W����s3&�b�s�#&9�s8�aPg/:��+�,��0��T�4a���|*|���
���o��|7�wiO���G���}~��	�~�C�]��ۼ�:�͇�>|��y�!�����uM�bU��A�~#����fv�~K��U�wu-AZ&�2ζ��.�u�C��.R���]�J���!�$y�GW�H�a#�{�t�VyS�o�W	+YL���B�JBL���Z3'\�3�?�W�$}-jNfq�mqD1%�L��w�ef�F�9�����Б��8��6Ȫ	���D��뤣�KF-k�C��x���yO�7qm�ri�9�y(��d_��-ϕDJP2Ra/zm�`�no�kwg�K`د(j=��g��W���"
��H���Z"#P[��A��7�Jz{�5��N�a
�l�y6=��!�L���͢��gP����>;u�ر+o��SR%����[��q	�4�.gm!���5��ʙ
�Ituf�:��XXN���:a�MW�Z]�0�*kX�^@�I�k�#�*�/�����v���9�'�����a����bm�A�CzΌ�D	�t�o��#����V�B�>�TZ��7L���L�o6e��p���{nP���Xs!TQO���C�,���T%�wڝ6��2�I9�#���Ҙ�r���\'��tǒ]0&^��˿�NY��G�afްz7�u��h�2Bk�o��j2":)�A<�W�d��)F6*i�z.?���P�p�#����Fv �����}#y������t��Ko4���n�7x�D�����L��2�X>>q`kZ�&'��i|F���J�X/�I �ٍ�l.��;e�x��ZϱX��I
ZC����]ޯⴽw�e��� �\<��"w^]�5b����.�!���w�S ê|
�8��g>>����`u��s�l>�v�����W_��ÿ����`ݜA��?�eZ��B�������1����&	J5�)�mL�����r)+�`W}��9-��k$~�N'�A3���V��uIS�s�㸤je#�pi�xΪV&����;��n��z�+�ԩ;�ހ��jM�y9�7�:�l����� �A&F���ԑBۡ@M kzaRRg�2b�ܯ;1�3j�NLet�)#"Xa��2��J@'�Q��gzl��'��5��	#��$�&�;���6Vt&1!�N}�C�o����,2Wj�0v��h�LO��}����Zq�uK6<e�'�{I}rC&t��E��2²�v���̘Z�JT�%�	=<u��n	)�p�:�L4��h�]��*FK茬v��#T�6�ޛ6CVc�u��+�HO�����.8#�%�E�&[�ݴ�q�gf��YP�S}�z���j�q���2��VJ��ҽ;�Lt'�ȴ�f������u6D��j��M�"���7֐������)�WY������
7�̤�*2?N��F֐��=��k�I�6�xl\����5���Y�+"E��L&c�H�ﻋ�cs�K��vTM�>@B5i��C2��	6K��*�����w�c�\�y�dJ)V�2���9
9�jU
"��dOi�2�Jg�<��j>`���Tp �,�:�&Vq,��ڐޏʔi��^Tp\�;q;�ImC.�>�^nb/��홃{��S�ptF�d���h��‘��02�kpU/��uw��2��Y|���;�}�y��gݜ��'2��rO�[F���Yr�%�Bĩ~��$�c��j?nL\���r�y��'��z{r	�A�Q�r�X�.S��֬a��;�i�]�9�T��2W��#q�o\�9>™�Vw�g��5�Y�^�o+�*<��iN�ޛ���?{��+>�|��/�װ�[�	���G8�
�
��ޘ`z�<�?�z8�|�q�Wg-s����	�ZOI2OM���#'�ú�^��:o^��Wup���AI�S�U�"�؁�w�Z��l-�u�]g�;�L�6�q�N�uPj0l���U���O���gG���J��4Ł�zN��d0@h�5歹Mi�����g�>����$�2��dG'�ۼ���N����Z��JW�}��M+l��K���i_�=��E�����wAg�א�=����Ǟ���4B:]��s��1[�&;�
��|t�]}V����0�x��O�˄r${dd§�V�e9u�d�k��.ͽ�^��y��ۆ��J�!\�v�;�x��N�wR�DЭձ�%�2�!���U��3M��/XF���;�[�գrޒ���a��"���ߐAa���e&�0l$�C���5�����dpI��E���o��ljva�hH��
[�d�^�6[�����5���Ԣ����Lf԰ع��	�l��#Q�Bjj��epl��J�p�G�f0�"4��#�b���|N�AdYld��tb�b��F���|��	�G%S:?�����
�N�5�c�	yg�	;8aI��8n6v��}^C���7�{Qu�ew�|�)�دS��*m!������w�B��r�89r]dPj����Z�
�IM�h��@]̟�����r-B����=K��}�����sk�?|���Wװ����]�83�Cb��g���6�y�l�]�CfF�Q`ړ�Zٵ:�*Q��AL�UO‹c����k�G}T�E��,'އ��&����p�N�;_��6�ӆ�m�>�{_��ſ�������@�i�@9Ο!M�6���32�ߋ[3qۡd=4���!������I��W��?��Z,�̽���u1O���`����җ‹"X������VX�~���ͯ��W��t�_)L�Z��‡�6�'�p�ـ��-�|�÷d����o�A�s��>c�s�3|w���y��QQ�4>;�e]�5vLl]on�I�"�0#�@����	��">:���0RP}�MG)�`F� &f�\�F��*Y�"�a�T��*c����"GZ�\���X��&�o�Ί=��W]{��~=i)"��3���+��i�аc�̉��5�'�J{#2,���1/Z�W�7��/'�=�6Ɏ�V�Xo7���r\��:�k`P2죺o�f��ȚX>���uvZ�̆��w;�C8EЄv�#��Y�b��-8�չ���w3m��$�b��ɭSsx�ĀcT�P�ove7�6j�J�t�d�N�.�}P^�N�2am�E����g4����b����
��3�-˨W��jj�(K͛TO�>�^ ������Ϟҡ��,�[_�FGNz9B[a��[����,�a�*���V6�g֬Jo0zcj��lC�)5I���mS��L_Q��-�YЦ�t��l�ڌ�2�ZJ�8��~h3���UJ�d�g����TfRC���iv�L1�	�A�� �{`	'q�-ʍw��;%��@�a��x�Z!3(�Ҧ"���חjbEb��(a:��֭��yT�~����"�.�I��9��i�+_��� d�ߍ���C�(�=����N�#ߑ@��)P4ߊu�a+�	X�/,Q��p����
�:^;��v��T��{��y�%����s��xQ��O&q��kPc�W���D&�x�d�����Sˆ���!�l�WV<2p�w8A��x�!ˡ��T�eeh��%.K��母H?��X�>�aV��V�ʳ��[�|c���z�*5/_�����f����U3hZ�-h��k3#�X/չ1�u��^���A3�r���u�!�2"�\�=i�P^�5�rNu��6Jr�I
<��C��X�l�O�|r��ȳI�t%SBvڝd���P�z�
�ʘ�cFic6ͬP?�[(�p	�C�)��
4��P͈�J}%��`�H*���ŵL��7���I��r���+��X�+�z����.�����}�^y��Ɍǂ�����5�!�&j����k{ث�Չ�P�{�a�_.�q�(/�2��l#��IN6:kh�ê��gi��2ڠ��v�`i���x�zR/��Ei��P��y�dtz^S0%&���!e�쮂�"�r��Xq���rX�ГꅩQ�[I��$m�����u��@B\����zjw�3O�\iy�j�P;砭77]wv��b��k�a���Ҿׂ��P5}��!�]_��P�<�	k���*���I�"(
`�_�����Z
�?G�cb�E��
F�Awr�U}QS�1c���U��Ro�w�DP�:p��V!.j�;�9����!Wx|��R�
}(�ZR�
:
T�ANi��7�sހ���h���D��)*���ܪ�:d�=M̚0�NT'mm�y�Z�@QZ�h��҇�A
H��\��|�+��J��FQ��7_[$b]��5���1=�RW	l��Bt(u���+�&N��I�]%[��y��Dl�Tꙕ4��^z�dz|�;�̘�PX����'�)���m\P��j�a^��d�:���1g�omr{��A�sn�*�QXOD
�=�$ff<^�]&|Dy�����t�tm-&'����5T����%����o���'<��{K��fۀ��{�������W|
�f���oav�&|�����T0�<~�R���v�m~o��<	�Γ�="��hZ��qꎓX�����Vі?5���¤.: ��k~'R����
���U2�[�J���]��*�R�"��`���N�
T��@�+S�9�9�@���0q�p7�Q]X6��k�!l��[EL��R}�ʞS��H�j\?j�ʰÜ5-�*�	���x�&�۱'��HO�I��X�2�Z�ou�� �7-��6�\6��`��+�F�jY�J��$Mf>��+ck
H5��N��k�[��y�h���L�i��8ɀ�������6t���X,ꛩm����']����N�޳B�ZF
m�m\�J���9�5��5��[�0U
%'�<	���U��E�ո�ʄ�T(�e#u������CR@o=�D��h�3�Ts��$j�:�Ŧ�8h�R�̏�Zя�ȫg���RH2�zr���v5��[��$N�������M��L��^C�I�	����-mR ��IZԨ"Qhk#�C���3�!!�X����a_2l.�����d!H���zQ�R/^[���B�T���s���J�b �г�6ޝ|ܑ1Ef"\�K�ȯk�&e���=���c��ҺI,f�q�G�}:�	l�$_[G<cs�-�u�AVa�17��v՘)�g���tX���e�JL��p�S�H���$����9���2Eʜ�}���L�R���%��C�"_�D���&��b&&Π3�i��e�k��#kz'f�՚�$i �`w˽���Ԟ�'Y��@ouL@�898�zdP��B�J{(��ޖ��1N����/�u3�]��{}��|>�.v��d�0�ߋ�;T�z1���<?�m�_�R��g=^��o��Y�O=;����<}~�?|�'×��W����
���>�u�Y�n�]ƹ�3���L��׉�̲�� uR U�F1pEE� ��h��י	�m��"U�tu���ǵ���Zj9'O�<S�z|�8�)�9��5��%:ho��ӑ�d��U<�޳�9�Q���!�87fU����ݑZ��a�ZJ��AKˊn��۴����HZ�n�4�Mث~�J��l1�3%����Ǟ\��#��.^�i��h�*�落�����G�9�4�]z�l0`�)w��7�~����:�n�T�ֵ{��HO���F�}>�Y�u��U��|�i��;�:�vU�t�(m���~�����Sh%�+�Ti�1a/
&	b��?�P�sy�w`���z�m�Y�eï"_O��af�Cg��z�Q
�v-v�RI-�Wv�G� uP�w��\
���߃�larXkH� �#�i�A.���r-V(��d�ӧSrO��ľV�qL������ȡ1��,�=;K@_d�N
�͒��5�.7�x�5Q�?Y`y��/ș�*��~⌬�brGl���V�5�ʸD`3�
ݭ�.�Q|�*6F��2��,fN{���&>���k?&�\݇��SA7�EOAa�
Y
��q�9xTz:Tr]�Q��9�f���4��X繟'�0ԃ��v���A+��ʜLM�w��8F��{c��k!G��uϭ(�����H^�<��ڣ�t����c�����HǂIe�j3
�L\����Co�[.��K�E���n� =ּ�6M�!K�7�@n�m�"�ޫ�<1��'��&���:0f̀Y��
������)���who�,�1�H�+;�y�\��ݹT�z1�>��/(I3�{ߚ��=�����<ht�
H^ݷC��)QoNl�DB+	�km�t-�5�:�G��=�'�o_xb�_�i�	����V��U�2`���^�A�Ϙ������=~�טiݟ͠����#�5ںgfuS~�~J��P�\�S�u�h���ٗ ����������X���f�;-'��˜2��Zv��'>\�<Ny㙎���:Q�x���4�&05�k�����
�mUX�E+�$:��,Վ�`�|
���ȍCN`�=S��B�_�2L耞@K�g�o��`+�+Im�D�
;l������؎��w�~�K
���VM�K0&��JmHk�#;��ߌ]+p�5�Yo*s1�g�YI�1�d��2���V=/@��ro�&iL�"E���H}
mZ�}�{�ij�L��5*���g��`�(� 4����&	˲�E���
a ߇�R#&#�
PJ��@+5�6qs�7s�d�]�Gw7U�Rӷ�TCנ��@�Y�H�����ɜϴ���>�k[��"�w���";��<H>c��(gLR=�r�;�݌0"`9r�1���hFq�=:��#�PkW<K9���CF�{���C�s ��gR���d��af~�a�Tߦ�2�?%���7&��ԫzl�Z����ip̆�M�qb
�-�*�Xd���92u��Rk:�߆��JrV�O��zV��5���1�����8N<n�� .��,KɀH�c��2��a��x�R_P���'f�ǐ{��xo�3�wܠ�(�M�>�{)6Z���yo�=>=zT�a~�]���e�.yn���FC�����6��+���Xo[X]�b����ed$2)�C+��Vuc1�q�]�";�a�~��$�>Ğ��@#�tRZ7�:n*�>M�,!�՞Y�I�$�!(��P�(nL���\�Cu����X��e�1�]E�{4f:���w��Ff���!�{ln��˥6�W�`C�G�P�;�0�2G�����#���հ)k�|٧�'=�>��W5�/�3��<�<��-�	��W��;��Z_���ohк{�Z?4L��Zf}\7�o����Lt���8nhL�Ռ+`%Eu�ّ̕��ǀIg���7�D��w�ʎ�T��:�5pG���F�p�#*���qd����p^��/�X��Q'4Kz@e&�v/T�)F���fP������%uJ���3?rl�{��Iw�0��#��n��&PE��i�V��%6��x2IaXas%�:!)�օ��&x=v����e���ͼ�uV�-�V�K�g�H����Èvz��I(�"-�+�Iց��&�b����>@��/�a�"{���R
�{
�ƭ]t2�`�.)vP�ŕ�6��/��lgK�X����^����ʦ��*w�d���Dm��Z��Q'8h��H���>R�R�Nɷ�r�|lz���{��ZFi�݊v��=v��C��Jt�^����k�n�%b7��,���|,k�^�k1C	��|�
�:3%��6�+Y���Pk%K+&�HG,qe���s2(�,.�725����JL��םD����V��Qz��sC9�N\g��Z_x�v���}1��l������P91��
�����:�t����(&J9q�k�R߇��Q��n�bQ������AI8��+��ƴf��ѕ���Bb�$,���ZG:��p��kd@�d�g�HS@�,��1v��ud�k��e���yfy��V��{Q�liusP��}�:113�]G�y�a��
�����xßs��Fqp��6J���q'>`�>q$f������,e7���9�H�_�d�k~��~9�VFFX֦�G�dʤ��h� ���n;��X�*����ub�dB6T��d���
��&�*I�-TaE�����s>�
�9���!�p�����>�>�t]���'r�:��D���V����o�ѻ�_���w���5��u�xՋ��g�ۿ���s�����h�VǓ`�*��dzt��m^�7�Ub��wGoȪ����uIYv?�>$G���>��Rro;`�����A��9��
��$�]
��J��
���T��)��_#��}O��S�4��Ǿ�l♔GSu'�_ƌt!��1!Z�RQ������[2^���3�p
�����Q���M�Vb�����&ؑp�ļEbJ-H�1�:�ГG7�<����S�
V�����%�%2��*mM2��,����X��NB4�U��:5�v���ᒍv�b%<
�jb�-�	dƬ'�Ec���P/�4*��!T���_���:A˞�m6�$q�q@�(BA����)�LM|�@W��W+���}w
,v4�v��
`
�֒l��s�>m�j�VfQ���aj�k�xh�ؠ�Oɀ��H��d&�|�Pk+�q)���5�4�߻�JО'��T*{��Ic����L�dٰFM�S;����Vf���r9[kFTw�,��0Q�|�Y����7�RR\��`�:���3��Ɏ�L�!T���	�\���r�܆T_��z$]�̠*�����6�#���b���V���˂�݋�0LX��(����9D��7��=V��wlҺ��l�g6������$A���E��V=j]�T�[h\��2���$6kR���^�� �ʨ�`GR`���AՔ�d~�<'�Iai���ksb�sl$FI�
��Զ�M����u�L�LR�ȇMfV��o�
�Z�_l��Pϸc4����n��خdLR�ıp��I����R��j���c�i�P���5��_����V�O���jV_�uM��'��_�|���
��Wߜ�����u@�3h�ѷ���%3h����2h9�Zb�(�#X�]�7đ;�����dUɦd��1H�چ[jYw��4TՀ3 ϣ��Ef7ו&�2�G�_"��3��OA*\ؖ}���:���\7��.Ы�B��-M�r�i��
��Ã��8���j҇86�l�I��dl�jw�j
K��6.YU��hh\�
��䪔Ӣ�,��k�
�0��Vׇ}0h�K3GW��z<m�[,*�L��%{4Cܛ&:^'����:�7�Z���i�̪2T�kDg=i��Z�s0@.(�F�p��fB
�9����-�/�a�6�)�KP��k@ybM�d���ֺ�U`9�̌x��P�,HA݂*����?<���l��~����=a%Aÿ�W	lA����+3Vl
��w�#�C�J��(
��O���ؙZ�tl%ǁ�F�����F��Й>�]j^�^H7���B�6������� B��b���qsO�;�O��q���&E����t2��}��ʐ�ln��p����.ֽ��z3��Ky�b��I��*R���p�x��(r+����r�;a��]�����i\�
*�=N�w�J����)�޴#P���9�+�Ϧ/JMF�hG	@#�_��2|S���
{N�,YA>vv��/K\�u���hTM�Nî��%�p�2_͢�DY�7�c��c~���v�1��I
,%J�6|q
ܮǩ��s��������Ru���`�?�W���ά�@;u(��X�dn�\P�M~���#%&�*�pP���Z��j�|s0-w���*;����0Kܵ��y��z���Ȯ�$B����޵CN�ĵ?��H�/�.�|���}���p��|�@��y����3�Y�?���X�k?��L�	X�5��.�������%����e����Bz�5��3f0Zi�u��}3���>^1O�7����-|�f�z�#r�2��᝝�N&�D	�h�P��������!���/��Ԑ8I�C�~�z�-�/��]R&9� ���<�l���Zj��2&MϤU�����F�S�E8@m|�{c�rb1�6�FidV�/�H��n�<��f>O솬���h薁w.�gE�WA:H���-\��L�V��vmJ�m,�D{ҲM4j<�Ԡ�_ǵ�i7�V8"�u��SF+L��s��t�gfU����J��k��\*����P�oۣX������gQ=c����x�h�q�6��j�1-�&+t���n��j�g�@r�y;8Ѯɺ����
�N���[Q����Õ�t��"�ֽ�0�Z��f'Ǻq�I
x�R�\�y�g�d�"`�/�
�?QWۘ]����\;o��#���þ�nLF+t�|b�Xf�U��+��D���?,sy����ґ���$e5]����`7���YQ�R���jϯ�o[_X�:���̀�:D�0�DL�2��]�����i� @��Y�`�:���P�*9EN]K%�H ��
�I
�����S��Q�J�̉��P�z���mz�1��j<]>����V]�N 2X�x\$q��v�͕\��"�O.�dXCB��;�
��A��T�ce�"۸UN���eI(3�ma�3��Aўc_a�b]�V��5
����&n(~(��f�
y��k6b�!6[J^��r-!z��,Wf����/��bW�-����c����r; ���y�M�"��LL���������V֣�+I>a(�'��o|��F�z��/r�<FZ洜j#E�my5�3��A�����7Zрmk=6{�$�<fg��^:�xNx �*�Q�ޜ<�J�v_?
����f�c���~G*��~o�uM�,f�g諗�F�Z�)=�מfVX��f��OO}V?#��Ȍޜa��Tz7��w���D>���J_�C�of����|�~?��χ���Ƀ�=��}ы���{+�wg�v�	�û�J��>��G_{�B���h7lI �}vX�3�=]�������X���GǚX��.� *��g��
���<�1���B�r)L\#wx=�e����3s�Kf�����p/�<]�CGX��K��B憸�C>��~�Pt?�ͩ�Z�$�%�M�R��M/ /*I�285����’�[�@�!��eI�Թ_[{�k�ĬE��<.Ȳ�t��Nt;4�����z��s]p�����yT��΄K-m%�	ز`���m��}�X�AHK0.���]�Trjm�u��	��$�:�^�@��(���UQ",�������ı�BؙБ=���D��S�
N�u�j�q��&j���[�&����e�e��z���))�$��6?'z]#�	j����t�D����R
�M��:�e��j�I�0:`F`���G\�����"�Vv�b�sE�*w�砰���^e������6��&w�c�<c_�!�5t�<��yo4�z�Cv-��
�Mk���ֹ&5Ai��*�ف���Um�Pֈ���p�]NM*l�����A1a�t��q�5�1(�:`aUJ�+˒�=n��F3u�9�D�+x��9]&We�i�Zi)ۮ�GŊe�9Rm!�jP�$0�y��j]QUbg��RsH�:\f�
�sۇ<�{F%�Q�G�L�Q&g�R��2���GE�A�â�6u�j�?�CV6��6����@S���d����n�ҽ�s�qfbgi��l�~�,�.��<{\�ja��џ�㷃9���(HR����[e�<�a�>JO�Ml?�Z�v�H��|
A}^���q�m��u����#wUl:��_>��sT�������+��5�nCI�9p	��KlWt���8�CҞIXy�͹6�ZU�|`�����M_�����Ȉ�3��n�O^֬����&��F��V������+^]������o�������!��a#�;[�g��9�5��g<���o��W��;j��{I�r�9F�&�&F0�%��@�ߪ�dj!�U��i�;�a�8g��v�q�ɾ ��c���lq��I���t�I�qО�c9}a}������F�y�E�N�q���y#�tF���c�A#TI"u̅4�M�E Xu���W2|�!¢�5��i	ؿ�n ���D�^��N��=7���QI�%���~O�Oաkd�*yɸ�.���� R}�����֪�.�?���q	��a��F;?ׇ��Hju����l����m�K�
��TMO�,�=��>t��0�R���.,'Q����W��T+$}/�p,u�b&4���Lo�?3��e���4.�6�H�OIe,o��*6Wׅ�D��$�T"c02�k�
1��]E��Z�X:Z7->��k��Y����՝AI�d�az���VX�Qƙ�Q�FG�	���[$�X�#p��	�	6��˘�warFt	�D=ҍ�����i���`�=oЎ� ���@�|>����ǝ=&�m�j�$4�� �4��+��L����:�D�Ϥ"�6-�gn�<������n0I�N��wsH�M)XO�U����ԃ2�p\��*#�A�����9�L�B�A*`+}�٪S���B\C�
!=a��������o����[����`i�b��u;��N��HYv���U@)�yp�qL��q����Tku���s9���NVd�����̒�D&��bqc�I�9����H���	�m��[噪$�N�HN.�5�1�7HIQ�l��
b��P�{
�]��r�x�E�e���F̓b�����jU�瞯n�Hl�Ɖ��T>?��tIp8䁍����&ιx���f�e��O,q��k�s�D�uX��l
��|��{��Yn�7����3�<�i3XU��Gw��#���Ĭ�}�_�����o�x��>���x����`Z�;���_���[y��F�g�_�y�t�Ozғ�Y�~���fj�}^�	�j=+gNj+��*	D��>�G�u�dNL.'�����fo�2|ˮݒ��(2#H�o5�ĹXK`��ڳD�\Z�#��,+AbB)J�N�DV
���H��j��VT�[	\�3D-��5��~��53����	��������!���r�����=tb�Q|�2
�?��u�֤�s�m�>1^{/�� Kd�f)H�>��az�À�[�iW�	���^�-r:�2�)�ػ1^6��=ba�q�vAu�\
�
ӫa�&uS�$j�V�Ӳ5�U����T�Ӟ�]�Z���~bg�U�%����N���Z���)���P
�BX�o���Z�N���q����R��Ɋy�;U���{�~i)��nqU�2S:vT�(���E\f��.��-Sd�ܿ�8ktW1u�D�+�s``L�MP��W
3�A��s��Y^D	kj9���4�g��A���(=%��Fn�X�ݸ�"��	�i7��N�2!���pC�u=#U�����6���D�~b���ZNq�Ʃ�������MtH#{¶�W����i�>���sH2�d��?s#@V�,F�Җ��}&�"
�ə;�S���!���N֬��ɈKTN1�?�:�i5vjBF2�\Bn�ℹ
ʐ�P��Y�d@p�7�X`�"��E��c�&J�̝Pc�$�#��B6|�D�ߩ=̉�y2ie�I[F��=lH�ז�
�,uB���%� p��D�ͦX��T{,��ԵEX���3G}!�J67"�7������%�G6j92�u��<��7�I��E��M��p���^n�@�,�9���9��F���xq���<X���8�ef�+>>�9O��~}��̼�Տ�3�	�ބ������
&{_�{��I���Ϡ5~����9�i�O��o��+�
Z�y��5���=�e��`��R�L�L��``U�(��ɟ��>��~w�����`��$Vn]���L'UT��KeJ$��n��VT�$ݍ�T�q�-�%�t�jރ�ʩ<.��4���NKm]%Ҳ'��&��d:,����P�mT*�J`F�~�PTaζ��ͮ�-ZZ�(B�=n�3����h�2���^�Cy�`�{�8��C�,f�@��{2��q=�cЬ7u��ZS��TU�>6���F��d�{��s������:,�}��h�@a"t\��]�iŦ7N��j'ߠYN��6nѵ�j�Z��l���+�
����sC6?ɖ�"v�%T�V�E�_o�u
�iԴ����ԂE�����td�����+)@���ӳvl��I�� �E���:��Tg��0�N�Ih����1���M��v��Y�:��xaS�+Q��� =H�l�q�N��^@�o�CȆ?�A��w��Qv���S�.�-'[L�KZ'Tu�8`5�kd���B��7�f�mԣ��NFz��H�6�s�S�E<����/���H�b�JҲ1F�M���q�'vʦFR&���;A����DD��+3���aq��H@��-��Af��ۈ��;>!�Zbs��&�YnQ
dJ��CNJx�iw&��};MЉ�00��eK`)�h|/��_<�GW�eSO�� 
S�?kTL��.m10K�F���q\��X��`�ߎA�U�:#�}i7X�It�uM�1j���Z�`H�����#�΃�F%�2#l����#I1(�c#���t��k�yQR�{��l���pNlo�����yYO^a�gy�r����v󢽍��Yt ��Z�ym��~�qQ/H��O�I�<<f����1�	���X�>�ߤ��'�l���Vߞ�շ~���`�i?�u_��o�Y1��2�֟�A��MW3��
ϛ�뭯~	��"�����h��k��'�`���}��6z�w0-hJI�roI:99���* ۳�cSrk��y~H�)��X@rB����
�6GS��GZ�)lh&gs<3�+8ed\�������Vrh�ahMh4Ι�=����C�GNv;�&i;��F��R�d��{��}:�rѠS�39�ګ�*ʸS2��p�
5�ʖYN�>%@sO�;�oCM���0!Ԩ8ΑK<��"2Ra0L��E�Yh"�2,�Yu
~�)-득���+uW,NO�=4��N���i�}�����X*��S4�8�Z�hR잭��eRXg�&��_�u]�fq�&6�_�Qa�j�Hp�a�NΨh�%i���]O��)��*}��Q0@�,���>@�k�03�1�+�����/e��B���U����Z	/�,[U��VhV�[��s��<݊�v��c��H��
8�ze	^��C'�A\����bgT�V�)/2Y��B���uyE5K�Z��6P��\�$l'�DA%����ԺD�t�y]?���F����J-P`Y���Q �?��/�񅸼JP%ϝe����+��nhWuf��`�^l�b��|�N=Ǵ�Kk ���($�hƟ9�_3+�:񵉬��Wv�^Ϟ{s��4�j��c�qT#K��]#%��άY��#'��ޘ�U��]�!��z����s�O�L�Dz���y����!�Ά��]�A���`�yS��Yu9�td��s���+��V�$�N��A%�<`�U
YΧ�]P̰S�Cg���d�v�N��4
u�'�f%�v��ee+h�t�$�uGU&!�����{߮�
����5��\s=�CtL^Q!~(��0��F	�F3��M�;���������V��j���Ư�����k����Շ2������W�^}���''�z���Fy�7~�g�����9���5��߁�ϯ{���x�7��Π���}�Z��>?2���ú���<���a�xh�o�������z���:./#�m0���h@�f]��HoY�Zq˗�c��iM�mY�����G|����)}����M�g�x�:�ǥ[��;�V�a�1�b0��2�A��ԓ�Q���\��`9�
����k�+��*�'�����X�>g@��Q�)��x���*hYDj̈́D��_�#��
˂�,;�v�&I/9�4�Be�����wk�}m�f��=6�@
F�1l��v�n��l�:&q�y�s�@�y
�Ѵ�ѵ�w!�)'cg��l#�gOR�׀�icB}¨�V�s�ϋ~�tBY���B�x5X�.ҕ�OI��q%r��9�zY�@*h����l�2���7���]�"ls�n���9OE��TM{��t+kU�U€��p�e���#��@��|�b@�:��A�ϐ�E��Ű��*k�%�~'�9�F��r�}.4��ІZ�A	 폄��⒘�L�H}�q
���a����vTzX�5���s��Ȼv%�[ϴM���ȵ�;6�<oc����/�yP�v�&Qt?>3�Vم|��D+�a@��Fbi,r���ȺNq�>Rn#�w��ݑ�9��5�2�P�Ĵ���e/���9Ym�$A�b6S�0_�9f�+�x��[S�b'����j����1�R]iq��S{�k)�n7�4Q_W���jI�F�ʿ�:�q���Ynk����D���<�� 'ϸ��4.�Q)?j��%��6X��y��-W�
*�u))��L�`�׳sl:�� �k'���I͗rN�����9��X5߲ W�aͯ!��
q�Y�����Y�����U�	/z�}�y�t��5V����v�Y}�+_�������$����{-�{�`�o��>�7��I鿿�;.}�O���ԴΠ�?�&x�Z�$����·?��5�N���-�k��D���)IZ�A�i�!kR��A�3�2��x�+P�S��v�3���{T}��썗q��MZ�=+6\u�	�A�`<W��x�:�:v�X� w��J=��><�@E���6���i�E�qf�d�jI@�{���!�g�I`���ĀaL*�lzw�1��s|_� � a���tE�*�d���:�*C���u\jm`t����f��)ףQ]��2+-x�����Ec�45��*�2a0�L�AmkŤê��0�z@�Rc��Qy�Е��edq�F
i�}���&�}�^�oA?)�*�'u@bgCX֠�	Ag>���/�Hm@��i�z���+)Q�V}�RS��kzz�̽S��"��fTT�r�ce�\��M��)J1R5j�Q#.=�+�E��~�	f���C_�~���PIBm�dRqy
��ԩ
��u6�*�,6p*Ω�La��u�ڃVpd8F)��������g��V.���9��M���I�Ը��6@�!��ӛ��b�x�7K�kee���W+P�M���_�P;����I�'����Ś�@�m���qu_HL��{��md��#sU^���J�1�)WU��No��۠�@j���6+v�m�k�����np�	�V*�%�lU�x���>��)A(��z
*�̖�y��8�����3�-�Fb���I	�<u{8P�Q7ֹ% 8���$��d�.&]6=X6*�*��,��e@]�Zo�Y雰Ъ�f��_�fv����'R�ĉ��>7�XS��(�Q�E��-s��t-cn�3@uIE�&M$rNZU����5P�X}�ѐ�_�o���>��Y}j�z!~�3��w���7���VOˀ_�w�<1�嶶��/���?���T���t?5��ˤv�
��z����k�A�m���:��G?nZ����;w`������c�^�1��ep�u�ƤH��
K��R=?�Y2/�k+!�r��*���}���oh�$j���g�v0�J��y#V5GI����j�Q�w+�';�zW���s��71�&WM9�j±�Xmry��vN�_oڌı��m��,k���>��h��#c,�5��`�uN�i�"��q�%���u}�"h���	u�*���jV���(�!,Mw��V�US+�x�r�s�&�&UYW��	�`��渖iP����3��Zour���i�Q�]c�;�B_�NG<a���湧�'����������:�o���Fe
��b�d�k8��_"�Wq�
fG\��o��
;��M*�G^�[�m"5N���9��܋�xb��Yt�;8�*�QVI�@(�n��{��&ի�n����s�r�A>�����U��,��Tw�P����
WxC��)⼉���a�4���Ray.�3�C�!��\�2��U�ydpxFUR�G�cT�D�ܖ��׳�oC������d�cK7I/�\�����`�Hs�*����eЗ**Y�પ&��X/sS&����<��6�ы�~T�(���M2Pe{o.3$0a�
�SaI)0KP��U�lZ�b��NP��"f�%*��T6@@e�WT��<�ű��`��^��0hd��-��l1�hL�S�e�z̸7�N��oc���c��y42����8/��`�kDQz���Wt�9�S�=�.�YJaȶ��.�*x�D��'TXr*R��2h�q�k��Xj�5��8�8�U[s�/I���K�}�F���kpV�~yC���p�WQU}�K����������W}��YO�����`�c�Ru��F�_$���W<����`V��V��1��
�������׃�Q}�w�\�����Z��]���~ӗ|*|�|�oaZa�����{0}��h������+AW��{��C�O����6�ؘ�M�R�}ߊjj�7��ı0sYf[<N�^vZ��
O����!��K�–'Ӗ�u�a�����Sj>g*��e�L��=s��v*1��3XvkEG�5�������y����c�
�p��9%�C�W�yN��%P���èJ�=����b�])�8�v^�r$I�O��K���	�����x���x
D6읱��A�Gu-�Sں����Y�+P�1Hu��3�_�Z�as�A�p�+c
�j�²/(]��:X_`°
��@=�#Cm�Ի��i�uot/�
�
cN'o��т��͢��uƫ��ޖq���ր��DO�1y�!d����Z�bd�1��ϋ��]hjTs+�а��	���I�J�z�������[���ArIF�U�9������Gi��L��A�ck�D��0[�U��+L�{ի��3/\�63�c;�8AphZѠ�r�,ۋ@���b���8"x��R�x:ޘQ�B��f�U��ڱ�Sm�7�{S��#׆B2n��8�`'�jo���9G�0��؝PK��϶<�=�To��(����:֞�lPX�~�=1�rU�$���}``|��%%[(rv-�?����gP�H��X–M��IN�"W�I�M���x���T~^Y�2�64R�~J��ZHF
�L�J� ��,��G�xI�86[";������T��ԭJ(8��K_�F�)�,ώ��SO%o�����bՙ91?:f w��l�D��e�;jL�L�LC�FAB%	Vj�q_9N�`adyߚ�L��(�%6�J��e�2�!�
���E��L�´'s��  �[�9I�Ds'�X��2�cVg���=�"�կ�,���<=3�V?���I�`��Y}ӫ^���_��p�����
X}�{����_��&s���j|��_f�:N�����|�7����=KɃ��1��ox�&��_=�z�b����_�YM������)�@���|���*rd�`�2F�=P�;���舥�.�3w��QL���}!�Δ��$�n��v�K�G��v`�I�=X��V�^����0���Gaw3��c'%4ՓT�a}EJ�㒔�k8�Q)�ز�\P��.u�0���1�x�gM.�\�	����ci��RK�_��f�]U�b൉�^"���0~���'��p��T��-#�(�3�=�ʍ���s�R��aa{-���G�9��P>ن�r��c��'h�I�")�8<]n2&�`�6`�D��.�L�]����v�Q�8��I������Dzl�9y�))�.f�sn��~~�����v�IQN�گ�3�L�@������=���������!�B�€T6u��Q}x.#J5�HK��lA=(j5rk��;惊V$G�r0��]N�SzK�D��
��d*�0?��L�:K}����9:*Zo���%���
@q��R��	���Aa���8Y�����W��ҿ�0���1�	1��ᖺ��*�Y���Q��ڄ�$n%�ȠN�㒡�ܻ5�y0�����ă��w$y��I*�!�͎�6�@q��
���:Ή�@�@lU��r�&�V�L�mA�pon2��QR�`(m�.���b��l���f2���\�7�DbZ�Gg�38�-nd�UZL��5�q�.ə���I�K]��~�����ԇ]�6��fmn�ƍ�*Ѫa��29�@���5�J�MY*+����}ǎ�{�Ɂ���Y
��{V��'��UGr���V̓m}=,�M��Ս����/�a��8�9p�փqS�kޫ#Gչ�Wb<+m&*uޣ��&#$蹲�5��kXc����M�Me��o�uxѳ�/�!Ŭ&�A���-3�o|�����[���_�ӟ���=3X���?����5'F��=�J��շ�{���~r���ݛ���5~�|o|ͧ�ߘj���'��=���<x�A�:�*X%R�|V�ƛT��&�⠰��5�L�k�),�n�>���#8� L�2sl��Q�<;���I�m�M�r��sm	��rk��}�=#(��q�62��^�Ӷ%��=�\�A��"sW�>�C�Rg�qT�����5̤ye�gajc��ځ�#���ٗ0��4at�P���O��Qx��dP�[z��e��b&I�@a��NJ3+�ȁ�X�FBKK�V�� T0`JY��Li��A8X���%v]�,Y���w�ό����s��ŽM�����g�T{P4m��+c�-��{���N�|w�=w�����-�����+�ۋ��S$��f�]�p�:0��_1�j������>�*{��ϐ�1��G.���)h��дs���>�]�;Q��d��L�DwjTbW�V��p�V���= �r�m^�*���TN9e��6X�9X�����#,Ak���u�A�S•�~RM��V����1M(_?9���=�8�ȝY�ܐ
c��ɔA_c*����o#2�O=����t}�_�!�����$��\k�9.<�W�~s�o`���;>�S3of�S[q����9��f-9�H��Pۍ�r�`��&IT�҃4�ҡ���wu~5?ŅyBۃ]��,l��`��ث��	���,	���>��Ԫd�[�HVj0s��OI��h:��nl�yMF���r�L���V��	�lxi�5�
���ޠ��Tg��"=]I]*@iP��J��n�݋�E��@*w(��_,�s��h��")4,�\\����*��{Y\���3ժwP�J:��b(l�ǵ�M7qN�T㞁���|�1���+c/��0��!�V%A��a�`���uSEܺ�kg������ ��[�������o���g���—G����Ϙ���U�
����?�Ï��e��y�w�^ȟ����_���s?��Zo��D��/�/��7��~��{.������-����G�Y]룮���9u\
��ɑ�8-3��.�T��P;l�u"�$�(&���ג�q�WH�dZ)8j��������py����»|&��ewT�:~�N�P�i�[���Pڻ���8�t�2���K�|4��x5����j�ˌ-�Nh"���|M��E ٶ�B�>4��"��N��Sd�&�=m`�����ge%W|����ߙw�j�8�6��qL,���8O�kT'�$�!ֹ0�qap������30I@ai��:j�8\����džE�đc��Z����y�?�GLZ��Q����|0єcc�!'�Ssd�,n����|��" �2ɑ�V[�{
�>'��%5aȦ�,��$����@~�Mͼ�1z?�T�+i�k2�ԶU���2]u1.���2�jң�����6����S�����N�f$��-�X/�H�]���g�Λ�/�6��7��>���5�g�r),���P�f��1%O�I4߹6�p�'�Y�?_�Q�C�'$ھ��EJ���{t,7 ��C�
��1����E���,�=�=W`��/*k�l�ƀ &\XjiS�n�S�Έi�P3�K�?���$o�<��U���G�m���'z��4������oh�GP5�i�����d������A��Y��R�.Ae`iq��m{��$Cr��f�����������c�8q`�s�{��.J�:H�3�cU����UM���6�>iN��RN���p��H�}���J��-_�p���/$��+�&�Uɤ�ؤ����J�U�~��=
5!)2�0�.���٪䡕s0��w�䍅kV������`����M����n��|�G�W|�/�o��O��7_
��Y��?��_T&·��s�g�����Z�r��l�ޟ�A��蚠u���~�g����~&2���o�v�g��on�2���Ν��Jf�Gw�6y8���2e�8i��Xz���u"gg��z^UV/A6���D�!��*פc6G��.1#R���z��|��9{����b23%IB_��|�<�GS�+�<�I�T�cz���Y�g/��F!c{iod��Z���~�j�W�`*5�;îB'Q��<��4O��O�B5�:�>q9��sl6/l�#M�w���4�5�x�\�q�2�}Jn4��uj-�^vP��M��r�TQ�EZ��0v�ϓ[���FЭ�TBs����X`���>��:��פ�+���ҍ:���p��
�T_Mj�����-�FG�TL��A��t���<
�x��%qVN={E�G���I⮬א����j_���~�6��T�:��i�|���{�U�2:X�����X{�d�٪X2��b„+�����V�,�]����s���J��Q��f���a���O��IH\��p6'��
��Z��Y��,�,p|�����YN���E�|`�FL/ҵ`�|���Ps���`z(,l5�	������5��_��Fd���55X���%��@�Z��ɵ���Oܛ��vUe�k�}�����A@Z�BenA��T��(�Ai�ҲZ��ƴ��Zju�Z��m��'`�m��%�{�g�Ug��^k�s��@��{����g�{}��y,$�ы�-��H�*{�TM������%��!��WY��pq�]�]D�d0a+{�Ck�.n���
\0UpG�x��%
��M����C$e�4�u�h|
\�d`
��L^�GZ	 X�ψ�쟾�6:����fw�Mu�,�KX~��솝dr˯G�8��z,�*���T�T�	�/��!%�����EӠ&#A&�)������L:�\��x��fg�f��J��<�A��c7�,�z��
N�խE�f�z�)�|1��폃�N`��,�z��z�2��{�������]`��X��o�N������ֿtz��zӿ�G�{�zLA;@��~����)���>�:�/���~|���W2h}w��/�֣��2�F
CU2�]����"�ԁ���=�(f��C�xM��V45i`VJ���^���5�FO�����uS(�cF��,��
P٭A����}�wXXf��E�TӶ�9��>�gc]�(�=�E<�ʓkn�S��Ѭ�Ip~>�H���d�:m���e��VO��πs�=	`���̨H~
�e�Y�9j
�i�兠��)��r��3�M4�f�~KzM3O్�F��c�%�s���fo�������Ơי�r�<+��1f��:¤9P�F	�5̽^�V11�t\r���vl*�� �����`�YzcZk�$�_r´�Qz������j�b�s�t3�k���@4yhX�]N�de�5��Ċt<B.��z���)�0L4�Q@3y�UE �;���;���b(RȳU
J3�խ�,�b��3$5ߓ[�"g;:��7r9���6�ez~�9�,����Q& V�-ƪ�[1\�^,,b�p�n�M ��'lg��qZ�S1���%�!FT�b�p��6� �H���lF��䂻�Ȍ�4["*�(�-]�����S���^���Og�c�b���ͼuM�;e��i
kÓ��IC"8���3���Vglu��j���+���a3C)�E�,%��(��Zy���%.8/�\,��8Z{s��Oq�����@yX���s��pNnol��#�	ESh�|l�C=��P�5�'}\(ʢ�L��\*���
c�C�Q9	�y�Z�k�"�i�N�ݹ�3��3���)�IuMK�7�=Z����4m�'��i�&P�w�=q
���0c�r�5�c�ݾ�v6���C0�q$MK��>��tl^�ѓ|a������z7����2�s�t%�s
�b_�>p�VO���|/��W��l'X�����D����3�g_��~�����v��O�y�/m�ޏ9�i��´���~�������>kz�/���-|����d��~����/?�<��n^��N�j���Q�=�O�75�Q,a6��&�)5>�Ԟf����[
Ц-�H�j�A�ׅ����拳x;i�3�"�
��g�qzS7�=^�f�D6�����MS����B;���"���^�v��"��=�*">�{��
�2�H��O�;�u��q����@ͦD>y�V�{{̨�3���ޠmxذ���O�s��b��	&~�!U�*�p;���u�/�,k�̘m�g�ܐt4���
��a��N2�s���2�J|*��E�?q}��`�X���ܚ��{�P��:%b`#�S�νn�5��+T��[u%���v5CU���S�cS��ܹ`����BEu���x���eO�׉1d�q!9&�<��{��H��K*�OU�/�f6>�?�5
@�̌�u�N��MV��T|6챳��*@m�	��.#��T��8��
��:�`��.���E�xє.-�K�N�b���c�}���l��9t��E*f�d~S�*)i,���F} ,�(�Z�0gzV�l*���t��:��B'�@��R��¡|�®�x�IPc�l6��8�[:��t���.n�0v�R���]����\�s��0Yf(�߇�=���)���P�\��T��]#�2��H�����%�^>��\ג}'�Ƚڱ���.��dK�y��A��Θc}-_�W�TS1貎�2Kz��
���v4�����M�o�-1p��ha�0Sgכ���K/l�2�ڲ�h��m��,R���e�ژxEɦ6��-6�<��	�*D��F����>f���,���P��|X�X��GaNX���G��~��i�9ԪE�<�ONo�S���<����|���W_nB
���m�
m9��n��5��~��M��Ǯ�3�����_v��S�x򟮻.y��}*����/���p�_�c���#�'��	�n&���L�k��T��g\{���7�=��n��m��>�pۏ��xaV�szZ�o?�-<}�4�<q�X=���W�YJ� ԁ����id�QPn�0zKY�Guʹ����5.��Y��=�
KN-a�����a�ڻo�O�_�\ԫR�u����jZ���s��)9;��`'��9��\���
dY�� E��`�!R�lif8,��%��!R�&�;�1B��<6��9gv�Pԑ='J�%�|e�k����{R;5��v^Z#B�,2����m��1�rs&^�ò���0s���8W9dɱ�����`�g ,��h���k�_G��$�����	����9r�y�-D�*��h�(2&�'"(�Cg����
)�H�i����xʡc�M$&�ʛo�Yy���Numz-!"V�z�j����R5���!�Y�X�:m��FGnqN��f�7;�_55��
���Bڜse=J?3)�ܹiK�/��͘��\��=���/2�(���Td�X��#+���1�O��z5���}�z�s����;`߀��H�^	�A�	^[OL���Eo�i��<�,�g����l��B����}_�Ous,�\���V2�V��b�i��U�
shi{�\b\l�\VPͿ
�A{[�{0�GB6;J3���Ѫ9�ڝ�:�\���flw�R�78�th�Z�10�[��Zpܨ*�h����]k�����=k���X���9
��l�Z�vUR�� }��� �*΋l�<I�H(��2�W��v��ru�fy��[�,w��v@�MC�r�
k�g0y�X�J�*�H#tR񔤬d���OK���s�fV�A���#�il���ւ���y=�E�D�H������[6I�����&S
\��0�N���4�d�5z
Q�,���_sFw`,m�f-^�fY��cm�iG�6����,�	?�/�c~�O�ui~@����W/�����?�^p�G�.��?x����Y��5�,��}_��K
��]������
g�ή�NNw�w�G����O���I'���G�	^����?��;�u2���~�g��W��|Ν�Q������<��P�θ�0cN���.8�8���"�7������-�6�P���('DҎD��~tP�–��y]�fFxTȁ��K��t���xX?�5�Y��Y"���Hs�A�
;�v`��*�
�`�g�����*#h�N}L'�G�UuS�Z{fSBW׍�3�-c�]GK���8�w5�1��HD�{jjձ��X['EM�\�y�h�Yi,�u�u������$+Q�k���=W@�a�>굑�ȕ��e_�Wэa�Ьa@5��&U��"iӑ>�;�2' ��bx�uB���L�pP���f#�jw�������X�&S�M7{���~�|�b�`5_հ�5�KM4���
�32��>4���l�o$ƴ1��?�2�M*O�Z����M���&؁�j�A�8��ژ%(͇iA=�??#�����������p��k%J��:���Z3�H��5#�1��$ف��j�7�b��C��X��V2��̚F�y�hΟ���kk��v��Ĩ��lq[���0g�l���I��L������z�g�F�f��I�m!r�^5��/v��븮�`7x�a��~0���8-�-i�]W��7��z˓)���SW�^'"A��D��2�(���{+�༂W4�yD�Ok��m�s�8�am@x�2K�x�A>�R<
��L�|��O#i�J`��ԕ�d6-*o�/�4�&Η{�+�2s�t=DF�hrH��)�c����x���<k-7���"�o��{\�j���9��Ȅ]�<b��(��:4�W��-�;@��5�nՒI;���_�j䊜���Gx�]���>�_~x�Yx�K^��K�'�s)|��U���k'����Ӿ�-�o�sճ��_��������s�=�sff��I��g<���ӿ��<�}��/y�{�w���~����U��X����������������m&�zx��O���_�*8�O�\s>>����nb�*:��^&v��DC����w4L42�֤�ce�6�j���2���R��l�ga�mGv�%�Έy�).hV�X�w\(�,�[���je��^��r˟%��X�i;�w�	�3�<�:٤9���y���ۻ���r<6p��sh?s�ȗ����u�LM��;X
�
��=��HT�~���)����C����1�Y��3k͙;�KD4��Ff�윮���&�����jt��ܡz���P�����]��3a���H��ۭvV��0���=+h$_�;�D�狰����W���D����ߺ�M
k`�v �c�b[4��YEj�x�YgZ�&6��چϰ����xRXXX�\�a,W��m��ș)��{�+����Йbt�%s�8���11¥����
Ru�:���^����F>k�kP��b��&��RZ.�u0���N~�ְ6�F���LC��3�ퟳ��*�R�J�SŎ��<�ڦEa�U��g�6����NX�n�tf8�G@�l�^�jȕ�݃|�X�_������k���:PY>3��i�V��6��5��2�jl�r��b�2�1@#=�M2���vS��ep�6���T�:�Ի��5��κ��v݊K��E���
�Z)栗����8�	��8�`�S�ݨ�-�wދp�]�ʏl�����o���y�ģ�
�r�િ^|�w��}���qճ��Zo:?𢟆�w�Ew�K��yh��g;��/�����Ͽ�]	����`��o�ɬ���=�V?��/l��oy��]�I?����f�U���ꫳ<��ɣ��̦b�f�U�����_�iV��L*�,7�FcR{����L�`�+�ިˈU�U�v곘��LU��ǹ��$ŭ�I;n+�{����uΖ��_��Е��lfV�\�gaὊ,0+x�ggx�qk^S�ذ:[X��e�����bmW��S��Ӏ8��3h��	;����$�d���kY�8ϲ\[EP�"vFK�o-a絨�P�ݔ'���V� �G�Q�mM�j���odR��cF:f^/���.���8I`�7M�Ê������L�\���*�(�d���
�%�lu^��覙!.��k���S�^o�q��}4#�T�N��u�~"p>./�IB|jz̙a~J|���ۆ�m�t?��x.l	M���_i�%V�a�֭�Bw,���a13�u�#�^K��yAts ��E�q�5�#"q�;�E�E����s���!T�n4�5>_t�kf�HثP��Ԗ�8;*��E)�X%j�\���	�9Ϧ(�ϕ��O2�H7�F�ʅ9����,w��5=W�jv���O3%��X��q��7�]���^��aa��c�^�
s�g�
Ձ�+�gyo���.�b*ߑ���\���m�9����Ȳ��	p��Ie�k���Ҽ�@Uс蹚��IR�C7�D;@D���{���g��A��K�9��򥾨���T[��)�5��]�4߈a�L���;���e�M\�w�2�3p��������ஆڭ�w:��3��c�5�j���w�h%���x��E���~7��	*��Uo�1�����<����}�Z���z�,<�??~YZ�<|^�%�\��_������c���~�Y}�}�gX}�
�z�E-J����@x�u7�3���g��y�c}���k���ٟ���X�S�[I3��DDu1-�j�Z_�'���kA�!u��m5�`%��?�����
�B!��A	�S�����L:7��}B��,?����}��}#YvG�\�FnF�b��tp.��DN����^Tß=�{�,��C6����Y�v!ҿߜg��l�X��u�r��O�I
R]d��|v��MhG-}�K)�PI�6�I�_f,��e���%+����(&�&��a�L�j���e!����O���n��?��C��"���sHG�qi���P�XW���hY�3��A�(�@t��οn���y�(�=�\vл!�v�7���y���5X�6�r��F~�spƕs�u�>H�ةҜ�mF�ܭ!��Qc�LzvT��/�U��C�d���Y��:ؘx��UIDm���c ��3�]ҽ�qX��&ϲRǮ`�6�2�{�'['�Μ8,oe+d)��
��#k���<\d q����*g[�S���uҕ�����h��7�.�脋t��=�1��H�:.�GE��	b#�úqآ��I��
`?�]}��S�N�gI�ɝo�iey�X�g�z�Y*�NPYrmRq�o+�L,c�Qf���Ąd

�2�'Ԃݑ^wrlQd>D&^�3�ض#�.`>�9y_#��͜F�*��-��#�ٔ0Id��s��;uG�Mn+G��w���~�lWe���+��&�

�I��,��
�
���\Ӧ�5�ڳi����D�κ5!�(�jva�r,�(�DO�ck0��Q6�����C�zZ�"_�P@]d���lg��G�8����u�6�$>j�9���w#��h�ڭ��k�+N�������?�99��t�5F\V���?%fv�®�����)��G���ї"�`_:���?�^p�C����/�|����{�;��}Ϗ0h��k@�����~
~���~��0���U4�����|�>��
�oX}͇���3_�x���X����X�[&����N�4`��?��*}`����[x��Y27kD�!:�{��Va{H8W*�[h�X��
��4�����������h+'5�Q���I�5'��obm��nL�F����*8U��d���9�e���'!�&����AkiF+>gܾ�i9A��9���Ĥd�̵–b~�	���U#C-&<PgS�H�_j�Cn����MY�y�2L���5�|�sSoP&��� ����K?��0��a��������>�aW���覺���3��Cάt��c�qT�б���ϊN��p��Heb�s��'������#utZ�A���\���HԤ
T���D	Z��Q-�r�l�XR\9�'&9v"�V'`�ĒWKb�O ��|�z*3�b�9Z���U\��9�Y�@��ݲʹ�Ц��&S^���#U#�x�+�̾-��}�n41Q��ͻ�e��k%��"3V���T0�� ��:�Z�w
=�.�Yc4F�3�U�Z`.��qU&�7'G/�nAz{��e�f�"�]���NR8&0^����l,��iw�ў�؟�������jPD�e<-��L6��=��x��ij�ѫaV���M�%�Lw^X#*06� �&N#���Y!�2��QS��{U�*�S�V涇�8P)�I�Fc�cy�����x�b�B� fc�i��z#�Š��)�[ltK���J� ٟ��&iz���FN_��̬c����t����pFQ͵�\��屵�'ml���"&tv�,/��&��(���c��˜\Q(l+p.J���K�V��8�^��.�����l�<"�e�f��0_��6��A�������Y����ѧn'�z����;�{�}`<w8/�ϴ~���+���Ͽ.�w��~�w�|����*����h}Ћ^;���w����9�����6go�3�u}�߾ই�yH`��_�V���ӗ>��_��ջ%�zQ++��<����n��`u���v�p
�'f��X�cͰ6{\Uϴ�Hiu��F�AG�{�([d�#���q-ހ�F�nL䖾6�*{�QV�hS�$�I^D�ւ��p�];V����5�}����T�0K��M	���K�����4�~Vߑ�
�����F+�ֵXұd�������15��J򾈛��66��$pd�N5���=
�H�b�3��Y�g�2�ݭ�Ղ1��?��M��,@Kc-�a�z$�Ǒ��ּ�H�*��u~vlև�V�0�dF�u���7�.@��.,��~��}2���Q�3\M�b�M	�
47�}��(_u�ܬ��$ᆴYk3�ʰ:~+γ�QP�q�;/�b�׹*}�i��C�ȹ>0	'�Xȵ��3�xm�*��5���9\P��~mQ��:�Ys�{����w�S:Y��b�V�[82�������-x���Q�}i�=�̄�����1p@�u.+d����wظ!V���8[)�Z���9†�k�`P%�8gb�2���Cm�M�0���W�81��A�u[�����H������ӐF�;�v��
��#La���3⯲����l�]SZh���P�pf]%��3���*�!�9�\(��'bk>��]����|�tOM��[B���v8�l�g�8z��]����|3�����y��Z3(�ƪ{'����?p�t��5B��&��|���yb&cL���6�,,V`��y�ʲ�~Ѝw�ZɎN�ݣe��+u>�=c�+�Ջ3X-���
Ͼ���=�x�_�=���߸�R���k������^�����yO�/��̴���ړ�_�x�9��_���"4	��K����#&�����Rx�~y.N`�A�j�7���� x�u�[�:$�z�ά.��O�K��̮�.g�Ѱ�q���ǃ��6�����Di �����ܰ�f�XY!��7�mA/�����Z��4�jb��^�h�Xu�O�O�4=�<�y���+NG�Ӫr#�Ӛ�G��`�$/���x6���v���X
jX�i�H�דz؈��L#�x��ZP��Dm�)�#Ǭ1 ���f���c罡cd�ڳ��H�1=��L��
 �53���
�%�B[p��ite?{]��cOv���6�ѥ���꼱��m�gY�j�j���W�ۢa�Q?���瓲�j�S�e�%Z~/���M;֦�2�G�^�!18�QU�ȵf54��⎔��[�,��t�Nv̓��$n�<k�eq�yZ0=�U�MU�o�LȳŮ3�&�s���[��bS4�)���M��4	��]D��/�(\`����v�Jw�g��<��숫�=�,д�r<���s~\z�k0c2��Kr#˦�|��i��Ɔ��E'�%i�	2}����Fy!�H�D�-�'�b4s�l���~_��c���;i��J#j<�����	��Y�-v�d��4�(�,4�C$��FN�,1��ba� �0l�]����o�#�nx�Ԃ��0<n͑�OT�C�Œ�P�;���fV�4z��rM���q�;���J��v`Kͧ���ңuA��Ί�i`F��q�3w�wչ�\K��y����,농�N����"�N]�`b�,{i��}fb��u_��	w�l2;ߛI�a��e ?Ҽ���?V-Z�y\��Lwg���k��y	���0��y���5p��+��z�']��	�>.��Ĵ��#�ڟ��=�S���>
�8��kZ�|���?L`������񗵿��	P���>����~�O�Rx�寙=/�.�W[��o�Ox0��Oó�3f�<sjdfu�_���v�Oy62�ue�6b�������*�,�%�n��Q�	�"��2U��ڽ��8�eeJ�&G{�Q#kBG�X��wL
Q���K3�=��Ȳ:�%&u&���e��skn8�>�����vT,=+Z�ٶ����X4i�F3�\RJ���>�OBr��#nf��*K���x��$�
_{�Q��ځ�lU��u���J�4�^�׌ϔ�A;�#��M�Bl�g&�'����ڬ0���ьA�4���-��>�,
*�͒T|IJ:�9�CxQ�?J���w�x�X}}<�ƅ���/�W+�Z�o1���D~�N�l����
�ͱ���[UI�'~i���o�ퟴ>q���5�j��V��m�F�r���4�/���"�?��v�`g�����
۸"c�gY\
i�l�i6ա3A���
S�>�rQ7`,#)���d��
F��,���E;�����~�P�h�3%?jȆ8��GM*�$����a@<Ql�t�Pq�6u�Y���j��N�#m@u�=���ܞ1+́YAn�a�1�pY�顉�2cK��)�7w��ylsnSaf#Ql�X^��WDYD�}�,R#��T���1ȍ�ϋ,����%�,Kv�/�#���+��vhÚ.��d����M�t���K�?�sYz��~y�BbN�f��-Q$aӿj����qՌ�”k��hݜJ�$�Y%��|��؂�}U�����I���<����>�9���q�3%X�z�rߋ��ە��_'��z5�:Q1H0��
��4����/"*�����K�,_;,��\
f��s�ȝ2eD<��zܯV/�����}�c��>p5���%���j�Hn:O�����=\������Ѡ�O�t�Z	���C^`��!|�)�	_�����)_؃�u��X��ox,|�V�ꃾhƬ����4<ǂ��}E��z�Ĭ�p��i�-������_�2q&U(�&�儽�y�4�7�<ך-����f�Q�bܙ
�
���uE,�(��ѹ���)K�]�=ͯm��Qׅt?Gm7@Ues��>v�1�<_�z�B�6�5��g�d�_A�`
K
Ǯ�Vq:/gIg���f�~@��#
;j���I�T��/����ܴa���Ɂ�uo�J%�?Θ�6O�r�,��VX(��lan:���~�-�Y��Ď���H�y�r|sR��:�:kTC�ck�L���E1d�Z+l9�`�Y�X??�x����e����K�2T&^������w�D�\1�J5Y1E5�ʦ[vui�n�`�p3�G:�1B1�J��6YD��gV7�3UJ�~"�:.�=5�xgX:�ḥ�M%��E)(�~q�Y�}o�t(߇!j�M�+�{DUR�Ĩ�����$n���L�u�73�͸�ڎȒ��8�%�m�Y��G�`B��؍�v��fs�#,~.X�8�	�6�0���<��-�E�w��̃��m�M�8�̔�`g�ұ���d�8/�=j�&	;��;s~�Y�ذk��L>�M�5�M�x����i��R��1���J,�c�M��m��,*�I@͗M�8�E���{25�{芼x�F;��>3�ץ+-�<�)v�>�/(��T	n��IԜ�=Թ'�Iy@P��c�	lg�"��]$0��ӕ�N�
T26�
+�@f6z^�X�`c�]��F�f��kf��1�]4�r�i�\��E!��`�ѫy�)Uϊ6�\4;Sx�WYv-o�xa;�B�(_߾_?p���f2���m���O3��K��w�����}�_0�����3��}%��&�h��c0�o�
�9}�w<��ࡗ�2��N �sp�_x2��\p/s��V߽V��X}���C����<�������
����� x��n��Aˬ��[8�`��c�]ǚL1KT;vـ�����a�xA��â���	bq���BV�D�.-TD�P#�dm�������a������M�qiȕ��Y7�r��X7t�Q	:��s�թ� n�&ݬ�F��v�ʮ]c�D�lj����q����3�[^����*[eo#�V��kЭ�KAҜM�y` �x��Y�����/�j�$���1���(@�vq(7�y�N�(�(s�����u����IS!?Lﰑ�/��q����b�U�Ŗ=�]����3����E$��4�V��Ի��{
3�Py��ܡ�����in/��9����4d�"���W\�>��P����>���X(H�ks���Z�fK��el�fE� D>��h�9��P׿�oIR~.GF��vS�:���J�r?p�����9��䖧ڼ�:��.���N�r|�7`=#���c=���KW�v1V�~G&b��@[�1��]���p�k�=��]i;��HL�i0u�Y;�(3�&T{��a��&���➺�7�Nu�s����<��U�U\S{�=�V���W�YЁu�EPV�W�b.kNq\L/�Ir��t�LW2�|���G劰s���=�:�Ԧ6��	���8��2ҵ�8�
��bret<���ƃv��^Jm0�!5#[
3�_�Vt�KE��̼
��T6;Yں��2b�i֮7ڨ���M�Y�0�mXϡ�
��2&P��D
�sˇ���5ގ�C]'[���&I�u,�u�zmn�J��ez������ɵ�;�F��ʚYӰy��wN`�s/��`��֓�\4�ֿ���9}��y��_������—
Z�����LL�e��C.{�6�����?L��]�`�K&��c��X�����Uje�ox���ם�翩�woX�d���Щ
V9�h�a�v���K)D�2C�D�Qֶl���aRv#�D�u�xa�F11d�V�'&i�gÉ�������j�k?O�a5l�k
�aGc�f�rcq�ص�f����1�ma��7���ܸv��:B尉����!-@�ug��h0i4=�<g���� ͇%��s>�TM��EAD�8P����a�Q^�2�h"W$�%Rc��'Y��M�NƏ��f`�cqj�����]n���07\�J[1��=��L�4���c��gzM��A�e�ۥ�Q����ȏ{C��p�C)`�g���X��|���d۸jG�8�j�^���
`UF�N����?��� [�����G^/����i d�3�Lf�o���`)�J�#7��^b�\�~�ϗd��4����hb��<צ�#g��g!n��
RW���ʖ��5���:�p�]�G���b+>5pҫZ_����*��G0s���讳����Tb�ޒ�v�!u�,tu��?����G�A�\Ccg�c
5�kt�Y��#l*T<��������
����(�~~}Y�k4�{9���ʶ����(���&�ɛ
���2f�͕���y4�bi����&z��P�����Vn�%���	.���l�}m�U��m
�F��/�����| E�d(�Y>��/��,G-0�-��XX���ؐ��bs˂�`�&�:���t���j�{0
����?v�Z�$�C�l��"dW��|�Kp��S'O�g��p���v���_/�U���	��]��u9�E�����y%��<o�/z�o�����Ϝ*�]~)<��W|�b�����\�_��Ï>#1���ߓ��l��{����~��o����~V^~��e�dfV�9X���#�5�6��q����k���(͌P�1ӻ��r�W�x��iob�jS��y�M�_�Nr��7�ݍqp'�AF��hXsA���TX�v[�
��,("s��z_G~�fZ_���O��`i���/�}Hf�lD^��0r0
tQ񌎺����E9O�J/=�YcJ���z�F)R#���Yit��,���ȮR#W��) �4MbOq���P�VE�<�8+�;/��ԉq&"�Yd5�\��	Î9

?���@�X�]��-���,=�k�H�N�f�%2�Q�YXYp�c�8b����Ѻ��R��[��8̚�����3u����v#P�p�����LEu`��6���ʱ0�U=��5�Gsv��"6Mm-�h��]ɨ�2��BY5�(�`��I��na��?����%�I�x�<�q\k�x��̝W�:������.�&78�궨%\r�-5K3�>��T�dژ���=Wd�޲�`�l�+��\�3�#.�a�up���lY,s�r�9Y<I儮�?���:料7��Lu�3E�ĀH�%`S�׌�`��Z�Ya�����ޛ(.�F3^��<���<D���	,xu@$��;S�l�)K�2��]I#��A��R0�ˈ�u�T9�*I�@�b�9(��rtqo��X- 3�f��00s�&���Q�ڌ5�`�H�ic�ĜLts���K����9'Ndw����q�lC�0	k�t�)�y��A�w��6�9�6֛a�0���K��6�R�p����)䰛�b�".���Y6uE��,�� 5���$6ʕ��F��<�N�8	���"8{��Y�V��N!\r/W�嶜�	�>�9������=O���h��h}ִȽ���Ò��C��U7_��;���	�~�c�a�{Uy|V�:��9������	������>���V�g��5��Y�%��	HjfB�C���Pc�>�)n�9S��˔����b�>'U�1*X�F������3��&��퐻})C4�u��{H�ޞ�}�c1�^�c�A�Z��J6�MT=
P�Qe5��ܴ�}w#���Ӝ	�^h�M0��
�a�y�gl�YҦ��Ea������[���o[]QO5ô>�P+c齔�_���8Wg_�$R�mX{�f���2�u͌$��A�h�(�D���d��2�s��o�ߑci�%�#��KX�9�/�ش`�#�bn.DU Hb����vJ�)���L�x���{�}�}k"e5�>H� V�ڀM�Y� 2p�$��5J"����q�
��n�X5[��n�ȶ�!�9�m��af�@{*��mnB��X��YѰ���1�˷|s�
�ξa�+v4.>��-���1��uus3��b�e>��谝�l涸������W�}�Ղ9�'W3��B�[��iW8m��\�YΒ��B�̌\y	0��|�t`ۦcT�f4�?1��"o�����*V]�K�X��X�<~�L�i�l�2�N҃0}T���@-��O����*v�j*^��ƙ<*���߫,��x���� CX�-�Z�����:I�4S�в�2|n�_eL��q�%�<�X��F��̜T Zdm�tृ?,�Mg�G�4}���h��VS��������;���D��8�ܔD����U�*B"٥N�Ј"/W7D;cj�$�)QY��^#���f��F��
��n����4}��V��F�!aY!$�r���8B�xmg�$��I�8ƨho&f3�W�j��t��l��qѝ�5�S-��p�������I�sX����w�,�h6ғy\�Z���&�z��|�aAVן����/¯���y��U��#��_W@럾����B?��uf�+�/��/��=����}>3���
��<���o�*}J`��`=�a��N�ؿ�a�
:�52b��6�)	�U~þ�X`���H���h�G���L�P��Z݅ͼ��}�ݜ��7�#YR�uz�P؞pC�p��|'�A����m8c4�_�*�b0�����N��h�R#.,��%X�/h�~�W��ô����${4g]b˜T�,�@C��g@s~H�,�e����N�3���X�T�dUR@3yu(�1�/'u
f�tQ�!lU��Z�a�l�$�5�(���x=C�i	ʈ8:�e�٘��LF���:+��_����k��9�g_�������T�#,�	@Fu���C6�$���w&a�7������[�����ȵ�\H�)�ZHTu��D����}pE
����.�~�0:Q��u�p�y�ݱ�s�uuB�D2F�������,�p�D�.�`ϳ]g(.6D�u!u���&,���՜� yIΎ;��%IB��(���1���Qq�Uv��Ծ�]^&ÖF�V��ZdgӀ��1�qƾ���ą3�XE�,�U��6:���x�ҡ���6�K;Wٜ �jGS�E����Vr�����LFL
���N�ydǯ�/y�A��c���AC��X
k�9N�-!�R�\���\�(��o�%�kr�,fE)���"�����r|��G��!��d��˵*7Cd`EFk�Yr�A�R��j'
�	@�C��#s��%ar_�%��D �H:6�.���l��oވ�Tb��{q�)����&�v�3���c�7�ꂂ��k���Y�8>7�/��Og��L�<V�Z=��\8/�#(�Ƌ>���_P� ?���D�P�8���h�����]H�e��fJ#Z�4��ݏ��h3��6FjNr2sl��9$�t�W�j�0.lз�+���^x�'ͬ�A��K�W��\�7L��Y�7���������=�9�2���L��/�zx�s&0�7s��|\�M�
��<��Ͽ+��g]�Oz��c�ᅿ�^��	��	>uf�����n��:({V��z�LkN��{f���td;q�fGX�
gn��<C����|3RO<�6梙�]�Gk��d#ϋ�ӱ�� 5fSM��Dv"�\3��\�yހ��&��m�غq�&�4�l&��`�1��i%�M�+�zE�bAw'��Ca���y�P�K�$������@Z@G�_�L�-9����Z4�'�ca
����A;G�͓�&�5�Z�v���h�;j�J΄�s홛t\��UW=��]S�6
~�(��A=�D�0"c&��i��G6u���?��rd�ă�){X�ev�u��б<v�3�F�k��=I{���ep�Ǒn�u
Y|�Y�q})��6�%�Pxԃk�,��X��b*��7mBe��}Ɲ�:�y����pEQX���u�on��.��x���,�������|��tvj���x��R�G7J�$�v���z�`���y�D���3���\Jup��+���Q�G��.��lh;�-{�b�ʼn������b�@W^�ߣ��6�=�
�a�r�;�`h�Oz��R^\<BsꢄD��c���!V�s#����M䝹�[͍���|�����&���
�20[T=��7W �mL���Q�٩���A�� �DZ6YA�ޑ��C�. �l,=5M6Z<W�\Z��+b'M�3��&M���xqVˋ���ӯ.sT��q�����P׃���C��Gq��ųٮ��?kF�ؚwy� ����Q�GK��f`ո�v@�ߔ=wd�E�"�V0DjQ�ݑ�=t8-\#��[��N׾$[Y��M3̛�`��JFs%�I
�*lƲFS_B7��`q�>�}�n3��vֈ�	�^�I��
Z'�w��'���-���Yx�~q����'‹�Z_�x����πG&Pj侏���K��+��j�?�>3��<����^������O�`��X�/Z0���|.$y.�
b����5�6�"n0F.�EVY2\������\�I��=��O�@ U�`���D�y���)
k�ηj(������9(����>`@/ٰ�t!�/�q`CyrYgS����H�`�m6R��2&1��2=�I��j�ڨ;j*�1�FQԸ>�BL��kpD�eŠő��}+��(��f6-��
Fi�)-MQA�@&;ܰRVyR��nA���]!�,�ԉ���5�^���m2���ؓf�g�0;�-���D.o�f;kxd�ɤ.�T��uA��U��� �����/�u�D�5�8_#�G�nN�7Z'2���I訒�h����T��h��"�j�iG�\7���֯���c!k�Z{r]*�i�[vD�n�^��F�%36���U�d���u����r�l$�=�<�V2.~7y]1
Uw����E;�l
sv	q�;�x:f�ުq��*�����[�rt�0g�Fhd$�<O�]�8�bh_����|�^�*6�a]��%�x��s^X(W%.	�X+����-���t\�浊�`1�	Ȫ�# K�U�C��.hۙ�/����`9a��u�yFk� a� b�4]�{�X��<��y��b���K�e���flP���I2`�%d|����Pq�R_��%u&wHP�1���3H&�o�`��-��,�Bw0�?���1:��I&5*�fF�;~<�B�j'�����BR���
g�gixԜO�g3kL��T6�l��:jf��Z�Qg�3+�J�fQ�|��S��O����DzǷt��-<����e:מ%��Z�{"���!�C5ߚ8-�j�Ȝ�F���M�t
�q�����ꅷ��G�A�^��|K��0��������gJ�p�x����G��0���L(�O^�
�(��Y}�7�+��'<�YM��C�`��=�a�֏�/�����^v�9X���Ua�y!�k�3&�|v�3�z�W�������!Bk��WY:a�2����Ҩ��6���Jrʔ��pR6��U�J�h$��C�񛉡I��d��s���u8�Hgt
`�,9$�ͤ��$���g@�w���=� �
�3�����$i�j#5KXIu��r�B���Ʀ�����P�o���*kI�%����gp%��P+9Fj�s���HfTM��{����n]*s�:��e�|��
a��%�g�L��j�O���J�=l���Ƶw���8@�@���m<�(����`	QGä���ZfX:Փ��m�y1Ʋ��ׅ����v�TߏcO1VR���fI8�W�/܍�®Vw�.J���$Q+�E��Yc���6	���vrv~��_��4����Wf��h��[�uT�����zR�T�B3:�x�\�׈�{j�h��Y��_bt#�BF��?ȍ^���ud�cOK�4c��B�dV��u��E���똽��`-��P��KRe����YH�X�^���W����VG�rUӹl��em��ŀu��!��Qǥ&s�#Ϧ�El�MH;��y�SDcꀍ���d8��^KB����Mji��<�F�
��JT��iB�͉،�ٷ`N�墀Wl��B�b�O`�#�["��9��›cT�D�z�`e��Df���u�FP����[X���뇏��wp)�G�F0��tܣn�[��Ej6�>

eN�g�N��Ο�y,j��4�"wW�̰��8�8#Ϡ��
d�5J�0_���U=U���jj�u����V�uft�ΖJ�^���!!>�&Y�N@a�֓?c.��=j<{E�[��	��e��
XM�yZ�C��Fl�'�Ž�p�o�4Zҹ���|�oo5������׽�*~�N����fx�=^���Ѡ���
ϛ�?~�3�~��-Ox(<��b?�z��x���I�෿�X���՗��V��\s�
V]��G&vmE'6�I���B�@eZ�$H�kq���Lm@��>��py�t�@&66�}���!�FI�S��*�w7;�4�pyH�=稽�\�G(BQ�7�R��,�đ��A�c�ϢJ�(�+�آض�b���⢨���<?ȳ�X
w�!���X��Ӫ�Y4�m�e�zL�,�(5Bq���wP��̥���X4�q1��~f�6+ʒ+��t=�ԣ�l�{��jy�Z��:W=.��h�U�W@���(���Mա}e�e	M3�J�;41T0=צ]K
�
51ٲ_[��̯Օ��u`'��|�٢��z��i��ۋ4ϱI��TIq�&7�A�
_ˈKc\��@� ��{KO5���Ӯ���C8��M�6��B�d�IV�swbY�ZC�0�4ܑV�ne�F����9��f��g�ө�7D�
�'N��yC8�����@i�{I��dgS�ƨ2� >I����EDĪ�v0�QJ�ަ����h+;�a�R�ŋ>uQ�����TF��
�`Z�*j��JUL��G.��t 
u�Fu���Y4+2��gP����(�‘gc�:�� ��I�l�$;��%#w����ͧ`R�Ɯ�h����j�@*_2�*��C�ĝ��4L���T��Y��P��zqV/w�'7IT��ɓ#t�<<f0��jVc������VE�ue�� �j�dMˤ�M��0��9�@�*w��Eәk����j�s�g���b��۹.���
�0�]�;k��`��7���0ɼ.(8����4�D�?_���my���Ӿge��z�h۩�u����[h�6����z ��֫�WLe�������1(+d��K���g��,j��A*qљ�o��x��� n�gˈ�_ˬ�����Ї?|,�u�@��Kt\�����fx��'���x�<^���ϑ����}<Z�.�����M`���j�����K�Y����ۮ��x�aVO �쮮�U����fV����/]/�r=�~��ut��7E�x8�N	JX4�
�E
��م.�O���02�9+@�I����Ya^;Bz�5Zg��"2s��Ù�����\��8����zA�)�!�_i����{'��:6R��Y+a
F�,Qg��Q��<�����ڜ�
v�
����/$��y��;󸍙M��������T/������i��6��?b;�?J*cT��[e�|�QX��u�8N}"����kʟ�Y�$�7�����&�_��(쀙f�:g2Let#��VF�(O�7$3�����mt�A�ɸ�sE�^?��H*�=�f��̓�b����+
&F�q�]��}ԃΏSnc�}qr?1yfe��]�B3�e
���^f���
��En�SQ%l��$�a•a����,���<�]M�7J��s-#.�[#�
��%ܨ3�Ъ��T���M�Y�QF�p��ǘZ
t�x^�P����ڐ����H'�L��qm��&OIq3�ԭ3Ȯ�nr����0�2��K_�`#��r�3(k�49�%)�7�U�XY^��ӬZU#`Ft���x��	;�lg�̨3�qX7�� 8X������avP�;�5'���L�$^�P"��F�ͬqG�fŢ����P#c�/��F�A�Nv��&��g6���I*�P�§�-&X#�`u���G/F`��,���2�m�)
�l.��ʕ9�zo��L,�s�3�(VG��8]�(KĆQ��f��y�	|f9��|�u���l�>�7�HD$���1@��u��,����DRI�ߖA!R�fo��)�鑉:���\嚖�(&�_���:�6�z0y�F�������8�
v�:G�3��O�sP\�L9L	.%w-�)�q�f~���a	_bS�G�
��1�^9!G��E����~!<8w���'��u�<\��ʷ3h��|��'�埘@�>�ؠ��_~����qVv�����[O~��c7�K_�1���Zf�V3X:��I4� B���~Z�����‰���̾RV�+aj����[�����C�wP��(�e�<g�_Қ苚)�fW�c�w��^6Qc��Ȏ���+g0����A6I�3�hL�Tm���Y�y��v/9wndMO@�6
��W�
s"��@Q�
���=�2�Z%T��wa.}��2��W't��A��8��M4Hb�C�:�� �G2ܭ"(;��qΤX��N�i艉'�9��E��-7�QL�J���46ѵ�i��.r]�0[~��@x�I�0�ЉE}⸆k��˧Q54�!1�Ŗ�qذ�އƼ�j�$�Ld�I�M좉��Ģ�-��~TO"x�k$3cF���=MC7� ���ZQ���QU�����"s�k:͌D���=����Չ"6�0`�HSrm�y�e̎�!�A+��0��|B��nD�ٷ&/��O`we۹!�u6|leB�qn[�
[L�Nj����\s�u3wXe�a��y
��h�-;<�+֭�-߂E<lZ�u$J�a����܋��7Ϟ���DԘ����
.����&B����{P.2o�	v�T�5K�JQ\u���X=Y�a1@��#R���K������5���ܙ��=/�68�.����U� 3"����Rt��Y�6��2Y��%C��MAśSV3�.�PM�t�Px�&T�;jF�^J�A����3�Hj�$�"	:Q�c�،��6�4�[�*���d�kol��zޛ���Q:7�,+7B��^x�l��)_����@�a��,����n��zY�ct���3t�ğP�Qh�	�N�l-0{&T;+��}��-8��gvIt�����0�zp�P�9�Ae�A���E�{�/�0�%�M�o�Fq�(��c� sa�~�g��@^7��R�d�֖�O��V���M`��ӧ[�ӧ�~�m�ʇ�^���Y|3\����&���@��~4$Q-_-X��2'6�V���
�������*��`�-�0���/��>7]gn.����QW��<?5҆ ��cv����k<�k>�}�i\�u>=�쨻�:��B�Xĺ'��Es��+.�f���vO&B�9�:cb,����aCl�k��cV-@#�,MeYc�y�$��o���"���}����&l��c��*����&x�Ufm�NM	�S�?Ru�Ck��QzY՗7N�v�@�
SUFt���-��2�s�ERkG��)�]����hʃ�Rm
O(f�"��|^ӟ�6@[�%���K+=t��C�g�3�w@���~-9��ܛ��Q]#+[F��ITAtm�G���1f�)��\Tqh�٭FLT��.R�p���6�&-�/�Ll�-NUX���c����&jt�����d�3�xH�#!��Q!��P�H9q���0Ǥ�u�a�EJR�EQ^�E��r4�:bޕ$��4��y�P��B�P�X����lQ��h�4�m�;3)�i����҄dep�!���Ws����NC�~[�y��#t�?O����Y=XUG�v�: �:6t,X�73����֤I�5�J7G��j���e;\�iOlS��ձ�΅�3�/N��Y<ˌ��Ж��J+RJ����"a���;KH�hH��E騄�~�����\떻\♼͎	"�y��7l-�������:FU�Y��S��ȑD�ݹ��E�f'ń���@����K��e�#~�hw�U%��d���-G1�	
�(  ��t�F4��0��l��$�F�q�*��|8��Ҟ%]���9�6A���_��
�$�qZ�]9�����I�٫�C�f
�-�̾��)ߋ�O\��1q��"�kL�'n�D3�6^�����y'�_�pm��%��)���sf}��[ E�:����^�[�_��s5TU)z�Ι:�������MO���ɨ��\���$�M�4z5�
̌Pw�#7��Y&ZGn9����¬���3s����j�<x��{�m�u��i���
7��'��Vx�'�_�d'�
�wx��K�2��|�C��Z������L��WO`��[?���׃�mm��q��:6�T+�Q?ণgylbĆ	`]0!٬b���i�>�eϨ9��F�F�Ȁ���"�;�"I�6������GR1m$9�y;;�J�nc֩(,�+%����Rx���I�r$����x�h�yը5o��H���Z�fS�V򥏒�	��ܹ��CK�##E�]��=���9���0�HAKPUSd��`Tm��7м9g�O砷�ތ)�S/�4��{�f�.�QWx��F��ԙΡ�lRm�J3V|+ܨ^��@M�b�DAkK9y.ggް�%!j\�4m�P��\[�����fH1�
A��f8ktj��|�[ĵJ��*�bd�.��1���߰�Q�Aɉ�k��֖ޱ�^�V=u���i�~I20�>���œl8+<"���QW��������G���p�-f~:X�s�X��M"C��*��ZS���[��tg�ph����6{�4
Il�H�,�̨7@>�9��	����w� �N�������;�P�j���1$�YZ���6�;'���;9��y/#�-g�f�M�ѧh���|{���2b��EU�r3�JI}��{`4�U
$F%V�H5{�YJ��fE��FE-uv��M�+����Y��~�L���M��΀:��;�6*�9�+�����O�%���r#o�fR��|?�X����f��c��r���$�4rV��UC��bY�;�<4F��X�4y��=
&�H)Lo��v�|b���Ȧ���5����5h��} ]���D�m
��I���z>=4h,�$M�=�J�|�� ��>��wF��ycC���� zRIq0}����6�xod���h������I�+v"k���}ĵ����R�*��K	s��K?�\t�<�WT�0����� ��kiz�1������H�S�*��=S��5�1H�5l��r����7�rR
.���שS��l��7�n�ž���ȃh}�g�����"�7����ë^�o�9?�5�����
���Ew+��h�����<����}���X��0��rΪ���1�6���x��]@<�����������O���&�:=x��ͷ���f��1e.�l�=9��]zRo��Y^#q���2���R�B�Eđ.��8�G���D�D��������)���\�̭����F�)Wf+3�e�����88�>�/S��>�!i�"��T�{�s�.��Т��Z�$Z��0\Fir��[�&8�6%s.�c5>1��	N ]S�4�E֥Xuި��ع�\^���	O�)��#[;r�����.�>F3e�m�Vs$&��-E�)��ٮ\+�d狱:�רeW�Wc�nr-7�}��Y�rm+���d�F�h<���T S��x��p�k��XMɤN��F6US��
n@��8�@i��3�zG�n)��6���E�E�9�h�A:�auԗkNf�%(����
�hG+��/l�َ˒�ت������ħG�RCs������ȑ���Q"���Fa7^h�����q��r��<殥��|�R��v���|�dצ
�Mi㥫P��͕U%/zN6
�]�~G��cr���Ѐ��#����
HOy�ٰ֕U���Y6�i�|��L����016�Cl�U4֘�z�y���Z�K'�o�<��L$HP�r��%mk6�-�j�].>Yz��D 3s�4�	��M)|3����D,ݱ�q�8��q�%{��gV�©: �cT,�Ӌ�P��.���upM�����Bs�'V����YN��F����?L�f2�J�6�5D���a��έ���%$ �%�Q;����a�^V]��*��c }�|f��6>T���=@�TE��Ʒ���Ψ��S���lt����U(�ɇչI�T��gw�z��M���㿈��E6V�lKy�?�=���eࢋxME�<"��-��
7�,S�!���Ϊ-��ʋ�+����%	y��,K°��!0C�(w�͏���|�`��
Rg���
<�Kn�{�ui���
�ᕯ�6x���/]����G>����	�>��ko�����''��y�O;X�ek�=;��5�@XEo{^3�˺�%����t!�|n:��p���JM��9*3i���XeYC'4qS�g���P���Y�J�cI#�Ub�Dט��IЪ[2����gbu��`�j\p�<��F���k=��W%�*�$PM&Մ$�Ah>�U,X�y���'6�j��W~�=��и.k�iy��H,�J*ޞ���0�Ţ�la�
q5G�֯��]���Lq3�\�U��5'���i��=�1���n#��ܤ'��+n~@Y�(���o�:OcU���-׿h���3��i}��`�nv�ꖛ?g���ic�@�(�X�(Ql�}*�?	�z�SB2������ԓ±0HU�-$���bLA��IUTt�Zj�m��.�䐕�Z6���5��Q�H��Fy�Ro7�[/L����t���N��t�Z��8Z'B�xq����XG{���p�J�̺s�":�+��f_L
ɰ6";���s�����=�
F�5���8~+�*�u�#�\U;5B�Q���	ʼ8cM;ú�����A��!v�
�7u��"�U��#Tq�MQ���y���DkR�V���Y�Bq$zڹZaG���H{ɴaŰ�E#�ub�CW%?�:6��z23��\6r�����(��+�3�r�8	EG]p�͡���X�[� ����4��fC��;�3��קb��L� :�:��ve>��hcd������} }��-&Rq��O��ꌇ,`��8#�:��F����?�y���8�!��֗,1��ِ>�^�iN�W6f��A�z>�
:]]�|�iĚ%[�Z��FY�7x�&)��Q]7�Ϯ�k��(�)o���!j��=�T%3��oY�iU��l�V�@?�.3[q��,�����@�+wh�q3DT�Iu��"k�I���'2,:}>�����J��x�������EnP�%��s sQk���O�Y���Ŏ��*οtv	����Oh��џ	W��?��_�3���&���#�Z�ⅿ6��񎷛��ۙՓ��O{�������Y��Mv�����ǖU��I3��*A�Yi��j���VP��Hʞ�䰰	Hmة6����e�2S���-^����:��Tu4��,K^s���y�FE�I�(�����RP�{m(�%vj?��3F^W�Z�@r��FՈU-A�d��K�vɊ"q�<���g����̬nة~/�+�
�|\������ۦ�8dV.I��3�ah-v��(�u��W�#d|ڼB��fq+`�Yӫ>�]��ޣ҈���b]�9�΍r&�+��W�چj�&A��M��3�C�[f�Q!o~��ZD�F;6��:V<�&Q��T�g��I���{MM.�z7��*;ɐ���~���}Öӛ�r
	@B:�B2��쀍4w��b�y���!�ۡ+�YU`D6\����mT�&h�oZ�z�O�a�}-�;/&]�0�T��\3;�"���V&TH���<��<f7F�T,��I����EUB:��MlP4��2&\�+�� lbp<���E��:tn�M�(�/�>�P��@2�_E�Nf�l:>'Ζ'�0"��vX:2�xKW�����B}8v����|��k�^�06t����}W5�\g������ϸ#��b�a����8�c�74�	��E��˂�`�Z��V2Fu3D�q�n䳘.�u{C5���Ek0ٕ��J�7��5�((�����Q�n�ffY���՜�i�k�X��Ȧ�mƓ�9��R3���D� �F�fO]��ڼ�F��Z�B�4�Q�:�'k�m�۹(sYUu5�'/�BZ̭|Y ���E*#����ȸH��H�D��
�D�f`�w�Y��Z���Шz��e��g��F�Q+�2��81�0a�N�t�պC��(ω����Y�5��u^j�Pz��i���{p��E�.J�sW�����f�T���f'��l%��uD�:�Y�	
{Ho�ąH㪰0>4gx	���5�˙y
��������@�M������7�3��g�wok�v��w�oε�>��!�����i(E��&���J傊�*TP�E/(?j�P��
H�(�nҖ�RRn���!iEE��6(��c7v|���Zs~c�|c��3�9�9�v�cX�>{���3���_���?����G�������O/�����vkV�I�p�Y���oY���Ј�Zt���?jud�.�Y�$��AOצz���P���}����ԡ3�'4�q��_�t
ZA�M(��~�B\M��E	�GEi�̱�Y�<���ܙ���k��a�l��YM�xZ���,���i�v�A�r�6�.
��X�
�*Y�4�Q�Z�-����am.�z�@��i;���Ii���q�9l@ou�l�$�n�w�B}-�>���ޒw+`֩J1xYJ��hRt����C��/�$�y_C�FF!WJ�9��:���BI�	2Q���E��wy�c���[أ�4���ʤ��GV!�{a�ɚ����1�fdg4iԌ"�h���l{�2{����#�z�yz{.Q�)���YgJhhr@��	u���)-��>Z#���82�¤48��)Z��`>��yg�d�e]M/$���[5'�f�f9��5
��H�:�yk�4Ut��!��Ϳ2㔚�Ѭ�5X��t�!'X��[��rh
������c�`��/���J��������*�A+��6��#7��P�R���e8&>Qg�&�{0�:s�	��Lm.��8�k:�h�Qaq]�N�s��v��j�Q�0��RZ�ȴ�#=��d�TF��aR9h���#���YMb��b�Mݩ�b�	=���
<��Nb�
�����F�(�b�I�����s�U��h�:� A��D��1���$�Js�]�	�ݕ�Q���$�I'�*O�����橸��'Q>�f��H��\�j.pXD�E�>{x�
�OS�_B��Z%n�@(��"�wC'vj�(��&���9hpth�:Yq2Z�H�qId�Ah�+��~��Q��כ@�(���aٟ��{4p�onӚ�f&
��ڊ�=�܁ýB{�rl\9;�-��Z��)Z`7/dƂ�,�f�
]��5G�^|���/y�� i�'�z��M_�������7��Y���`~�_���?����Q}�k�_�W��������ԟ�gҏ���}J���R�G�v��C��
��O��7�����צf�Ƕf���緢Y�wy�8 c==AK�����c�Y��S'{�X�����C�pmj\���M1�DCۛ��Q�m�?�f��H3t=a�V�`�:h�\Fu��EA���X!46Y��CgYm������X�*���FtU
�EaA���޵2�3�ȝ�F�����ɒW�ф��&kڕݦ����v�U�X�����m���,1}�{�z���n`Tuzr�Î��>��Л���S���ʝ�;��+�V�\7gkWס��q'j1��i��t���爦=5�;�G�D-o��8����):ϠxkddT�J0wc�@��ė F��)A�3� ZY�y�n���T�U�Ȑ�U0F
�d���>��w����kG��q��͕O�#8�I�ӳ=
jw���
�&ע������.hձ��M��C
C��N{T�1�c�w,�}��C��35��s��4�&���P���-�Y@�Y~���H9�He����t&�_�'��f��;û�h�#+A�޻�'�!
&!d��5:Ev:Fɠӄ�茩D����z<��k��4�~c+�Y��+�S�h��gS�'qɊ��"��m�Z�H��2l��N
7�9���Ȗ@7�7�Bf8�(Y�+�)TA�&:����ο֔*�j[�Q��,D�0:8y3��p�+��T
���~�*>�K��4#ǃ�x(3�l�|Ѭj�*��X�)..�_1�&�iH��y�
T�Ø�e7�"k6�u��xW�"[��c�]'fЅ�Ą��s��ˣqW��A���h�N�9�,�y�-�]���7Wך
j4����I- ���<]F7<6<��b_����bA�k���L�
lu�~����7䃺�"��(u���:G��!Z���Ԭ�
F�Q{,uA�3�9�]�ѧ��Eq�.�����
;��o��}ww����>���}��?�?�~�g>7�V~�,���i�o~��H�ޏ����߿1ﳽY��o��Ͽ�~d߬~�ɷ=���<�d�nUϮE�n��0֌k
!���{4ւ��؛�{v�k�uN?oe.�0@�T�z9����m�hj*+�M�
�`ࢃj��У1r0�k���,��Z���wG�?&cM���W)�+��3�A<@�
��qYN�@:��"\�IL�q�;�R�Be6o=�[3s�9ޅԃ@���s��Q�H:C.��."6VH��Z��h$FtWN��L�o,�(%�X��Y������<Ľ`ۤkl�K{���G�<%��0��2�.:�2\ɛO�
���,��,��y=iǢ��t����z��i41��u,�zA��#X|�Ro���(uU�P�1�9Ws�W3]J�$o�!���+��%K+�[��;�"c�t�7G'
��e�d�@��
T�	jЉz���k��p0K<HSc��	O��뎄��OW�ܼ"����d�PKG����`�+�sZ�`��#�e�
N�'F�:d�BϮ�+�F5�����~[tswҦt�I��
�Q3D��(�Bl��<��D�b����ܬ���ݤE9L�"��������L;á���GΎM�c�f
S7���9���5;��TT��f��5�D�>v�ϧE>�SsQQXr�a>���ap�z�5����ǩ��f���"�f�I�����D���,����`t�Sh����2d��/f���	�S4�e��R�G��A5=p�Iz�ӣvā��A�ò����<-Q������L�Q��_AY�]P��\M�e��M�8��L5�H�@w�����%0A�%Ϸ5�(H�L��j�17N��͔�J�41?B�zCᚡuf ��s”F	嬆<6�},0K6EA_�o8�h�TūWz�baix^o�]��FuA�О�m_
�A;���Ȩ�L69=��kF˗��u��������޳����g~泣�iw���/�R����O���L�/�U�x�%�Կ�{�_����}�Pҏ}�kV���w��F�#(�-��'�S���P���}�p�@��!RSĬ�D�Ї+,{{GMV�cs��|��s��iP�C6�0|�����Q�Aߗ1���/�o�=_kR*� ��o�޶C����Y���0cm����
�!
��Q�MN��
�}�E���{�a��mU΄suX�Wh�*Ok��f�׎�A��(y�`���,;/��|:�{���~ZױE!*���W`���
�m���WJ���
M�C����H��"�:]h���3��ɏa<�vio���چAr�wۿ�qլ�lGm6�F�W��ڮJ�$}��0ٽl��e�iM��<��6��q��lS��w%�͈e�<�:.T��Ģuu	57��z"���Jv����Z�ܭ��٠2D0�j��v������|1Ċ�J�X&����7�`��zpj�����qؚ�lncS�t��;�J;u�$���	���m�.v�9�-y|�=mw�2��F5��r>ąX-�Q.q�Nr��
��&)Y���I��ҙSl����;ݤ�`"|NtQ���`=nK�0��P
&�+��F��X#�V���j��w���!����Aޙ,M��LP�:��8��p@�L(.W���܀����k
�RBt�S�(YE�b#�P�>N�O���5� 4\��*8���4�4�d�T��Ewia-�J�$�>;2�8E�;E\C8&�.Ry�KU���.g*���Q�6�5k3�����M���l>gd���s6ToT
�6���Ѝ���'2:[�=�e��"\��G�b�]�ɱ?�n>2Qh�?�̑�Gn��*;�k&�L1e<�p�45�,f��^CO��tBk�M�Z3��AU�C+�C0S���Km�?iv*͓����2{� �i�[j�L3��ޮ_��8G)Bz����,�>`:f�c����V ����%���G�Aߕ�޷!������G���gR��w���}���ϥ?�G~0���J�Yҟ�0��翜�����f�{��Y�U�`3�
�Fֈ�S_�����e��@��&����A�w�{�QW)��<�*]�x�<�A';��N_�����A!��4�#��,t��h���L�2̎�Rj�u#
V�@xW/)�ӧ��:��e{�|knsj�d�%
?��t��N3]{��2:�:G�'��C��Wi��P�5���pi�/�=���%
��wU�7�،Z�o�~��nVZ`6Y̵N��5e��	��:bh�A2��+�[]a���Di����\�Σ��|�}� q
a������\���QV�^7���>x�u�ص-����
�1Z�p�$��4j��%ZK��;��#v���`Kk�%�Ӗ�c�ԈH֨:��U\�T���7����CY��%�n��� ����ݏvF��YoK[�'�јC,�a�9��R�Krʼ~�wbF���IQ����Q�Yt�uv����Z}}^��_4b�]Х���#Ǔti����@�e��P��4�\����}"9�A;��bΔH��"�	k�.�o@\M�A�i��&_��ߔ
��>I@�j�WY�����9j�UH��є��ޑ�)l�X�m'��^���-0KiQf��yN6/4z�?���<S�+�5�9C�@�h����L;J�Nrlh�L�8�9�Y��f��	�S��Р��F�}��WF�nQ��N�d���dyV�e�,A�C32��S��E�c��fJJa�)P�<J��I����004UkgG���͚���;�F,D�0
�u@����du�ǘrP#��<�1��>k4�?��C�(�$�㡐_�Ǒ/������1��9��bp]1���׮��v�pR<�d�B���>�
Xy��u���W�̓�I�}��Ìu���G|;�R�wհ�=Ku�rh��#�����c�����.}L*����O��Ϧ��#�/���x9�ٿ��?��h�[���>�zV�~�?�-oV��a�aO����W��˂���mȀn���.��FAiY��X����e@6��IYe��Mo���xÔ4�O��l�b�\dpĕ�
?׶��&"/��6qppWy�O�6�[x��������ftV[���ȈΪ��*
�+�P	��1L>k#�ć� r-�Z\��%>�MS�Af��d4��~��pad�fE~��6�k������K8kس��T2|(���G�90_J��X��Qܠ� �=U!���}�~�2ͫ9ĉ���M�
$����\37ҥs@Ub��P9��<�P�k��沛�F�r���B�]�h���>O�!	:�E�>eC�[�J��
Ε.�'ì`0Mi1�P���g �95���d̅8H%��-�p�&2����uG�,�*H'�q�!�`Р����������p�Oz[��?�Y�i9q@�i���>��ΧRc��M�=]C��	�-���	=�&���]=?��m��@�D���[�u���Z�T��h��q¾o/�iA�P_�x�J�io賛`𾻏z2Y
�\�"����1O�,���7�np	ǖ�
���8ƒ���%p��X_�+�^�^KЗ�	/y��6����,���ڀ}^��s|d�Ӯƈ�	S�"�2E|��֒B�˥Ә5����Ր	Y�cQ��y^[p\���PT�36ݬ7lbo�װR�kȿ�5��&�A�Ze�x��?��T�6��i�2�+m�x2�/Ջ��^3
*ac�|���V�{/�J!3�(��zl-���םޱ:5*j ��	��q^�?�jf�	8�޸�S���CP�۴��HS�}V�=�
���;/zd�\��S��.of\�!�xJ�.T�����.�����Xu�=|@�.k��>�(�
\I-��
�^�Ц7p�jPc�xrMȨ�FC �3�@��A�A�п)a-~R��}�i�@����9նF��C0zƽ&�[���~0}�ߓ>������"�C��?��w�O?��4�%���bX���Y���}�)•�ڬۣ8m�OX'-��fZH�Ϩ�$����P�D:�̝��1N����Us�]���q`�T�u
���}���id��r9�N��g�g&s��b�n&��[�Y��Z<�ζ�0Ф���Qs�$+�
�X�[�u}�F���Ë6�A�0
�E�o�η�0h&t�e6W>	�z��@Y@�]����Y<�!oʞk���4xq`���m��}�Ӯ!i@Q¬&yY�B2�@���͛��:}tŹΐI��{*�x�i�%�)�Ɔ}}?C���]n�@𔉩2�����&�m��ǎ��׻XJ�h�n��4y��9j5{�V��W�`�$��~�i3+Q��L�`2�J��a���)��V=�N祱lAN�N�
P\d���U�zM��dJ����`3�\��wɆi�<ԝ�T�{W5<l)0,�#�ij�%MH�=����u�|
�
��	쳔8H�#Ezl@�g�9 E	՟��v�ڣ#��tô����Ҥi���ٙu@�Xy�콅/��i��-���3B���LK)�cE�oף]3����}�V����%�3�p�?��!���;$�*2�+���0i��	1�i6Y�3�a:ˠ|���.�k�͌�=M���,G�s>���T��X�Oͩ_g�ds�M,�.y{ڇ�lʪ�f
�	����<�"m�8X��i��-dL׊<��6�v߈�]��{�h>��:O���Z�^�ϺF2����C��֨:�l'���z(iz͊)�վq�N�ibN���{.�"�Dn�L�У��Du��/M<5�mg�])1M�&�fIĦ�5�: ���^#o&L��/p��O1���
��^����}�=���B��)�t��!�R��b�)�ގB���ע^�t�3�h�E����.ǜ�vVp������ܝX��?�-�N_��>E���Ȭ��7�z����~|����G���^�Δ�E��.�U{y衝��:����x�O<-�O~�K�G�O4������h�[��;^0��4������p	��V5�ok��ҋ/l���ә�e3\w�Zv�v}6{ֵ��⛥����4q%��6���[�L�mG��o7c=��5�
́�-��`���ԴhcE��5�1�@䣃�Ǔ���*�hGU��᢬�S��F�ف��Č��|��{�\�^}�FUj�%��FY�f���ZC��*{Ѡ푠lD�`���E>@�0����L9I�z��J�(�5��z�ܘ���n���Q����r�=�Հ��kK|-P�h�l�z4�^_x<�]54(#��[�r�h�wY���1Z�Y�iփ�#C3�p��!����;�m�_Z�\T��2~O����e���k��� ��"��|� ����K�A�I�Ҋ(��r5���Q�ـ"���\.)O5�2
j�aD��4^��\�J^��ɨ�S�9_;wncO�A��&Dq�rj�>���~�r����eG�-;݊ZL�K�&w�nkЮ:C0��S��[r��v�m�ʶ]�S�%sX�j�@ׁ����,�1;شۿ8۰��*�<�蟢��F�P��t\3Ř�g�H�1����ФkM�:�T���X��[])�X�+�|�y� EgMq
�p�䩮�P+����9�ޖ�w�V�	P�'���il��Y1�L�x����N�:�Kh��I��
&�	���\��l�׻>���ݼw(�sl�<�t�wG��S�L(2�QԪ�����c�cӿF��r�lQ�u�tGsqٛ���þ�����f��)�%���#�S��,O0Rt��P�!NЦ_.4	8h��u8����1>(+N||�g*�b�{�Q�[��~� ����.'��-ғ�-O/�e2R~�RrM��Ð���.���b@�Rl8w����l����X�3¤}ЈEI��Ў��-f4mz��~�P��{c��[�H�4Ǫ�&�ܗ��L��e5
�_Y���ŀ��/Jz~��~�f�t9�+��7�<�a�â� g�&�-<SI����I��ZΏP~�b^���)���л�����ߐ�ހ���U�
�����>�’���r�ѿ�V��?mV���o��O_��`k��>}�uш�^��d���$m�A�:��il��̿��>K#s�ߠ���JS�7�z@��Ȇ�Tݓ��R��:��|P�x<{O�����#j����HM����$
ɚ=w[k<u@�3��B)D�xF%�J��6�M�8E5w$,�V�Gg���!�f�Y��Y:�<�8VA`[Ȟ�u��Ϝ��ͨ�a�9ָ�N��-X�r(�H�Y���q��o�@��~�k�0��Z�*�����ei	�XH���~����yD�"�f7fZ��Z_�5�s)2���*hS����6F��~�d�|Rq�L��6]28|l.��֭���fd�XlG�����}U�h�V>��ڊ{��72�~-Z`1�5>��ɐOw��K�δɐ"�i���q`�@[�ͩYmH����?]����G��,�#)k�
���#��w��{K�B2XY{\�"Û�\y����9�{�(J�>w��|�v���5 ���H�E�#����e�}ג��\5��G*�T0X!�l��KT�$0kNQVM9�����#c�G�k�:|Ѵ�͗v�V`��߇&�}ržR�qb�X���hzsy]kٚ;w�L�Ї���4p�bIm:>���u�t�Q4$Q��7?�ƒL�@x�9�Y�Ο�C���J�$�Om�b���h�x��yR��1�m�,�=в���6Ev�4�T:�v�Ny�Pq���8Y�I2Y��X&}���h��h��?wZQtL�
4��)?�|��w,�5>?٤����i8~~�P�����9p����K
�T�x�#zCWu*�6�-h�rg����V֯\'��u��S���f|�B3*�B�t���|��Z�Km����,����P���M�b�u2V�7�L�c�����joC�Et(��d��N�������M2�9�Y�cd:<��I�#��y�i2�0J�U�Η��8�� ���G�eG�7i[�����p4��QOA+��j
?c�'�vV�O�<Oy׏53�:�?�}Zx��_�����l=�<���+��7��-k�>�\4��i��~�+�?��oʍЛ���/�<�_��O�/|������^���zg�n�)��>{��l9�l{��V
���Il�ǑU\�y�Sj��4[S���WU�<A��&�-?8��*��0?��$��EG�j��=X,Kt�GM��A���0}3В�Ή�NA����(����b֤˖CE�}4�O�>���%P&'�&��`vG����8���
!�{$$WZ�+�و}l�5�M."�:�`���Q<c���Y���������.���I=	f"���coYI�Ҙ����,��S�B���B�*�A>��IJ�m�8�v(`���~K��5H&���n�v/����y(�ZPy�p�u
sUI��2�C3�(�N��i�:�|A�Vrh���b����%󆉌-g���t
�dPH-�suz��ƤL��QTW�<$�g�^�B��$�Y���5r�ip�ٜ�l�Z,�C�6�$���5��dR�	����T�(2�.�Pd���4�P�rc�k�Tj�:���13��6J��W�lk�e���њ��~��O���EL�j3��(�+i�E��od��Y�3�#��+��aە�D�ww�l����������sF��PNvo�R��(���E�=(J��(�;�a1�XC�Zr�>k����)JRL���f�ҪwTZ�����JӰ��BR���Ŝ��*�8
�؊��g6ͩMn��5wpT
��/�ƍwBH�U�94�-R�)�+����������"k�p�+)��5ɉ=����$r�ԗp�{-&��2��䴶��;휳s
���4ln�lM1��/�"�ם�1�ػ��Φ]�FL�Ng��?g)
iG՛�>�D�XA!A�&їd<;���c�bcL��#��������"�T?��b�e�K�p�{!=�DEb+�u�I���hF5�@���{�Oj�Y�(b@z��`z,�4A-|-�y������� e�9��P8��&�j�DQ�fu��t�}�cߙ��~)��5`Ϟ-�N�o��ɷe!���I�ӿ���~�c/m=�#Пښ��
��W߷݇�'��'?���uj7[�\�N�h�=��ţD�t��)�]��4�p�T�h\G�K֐�N�]'��5a �Y�ֹ^k����g�l$5���c_
!�:L��D��K�I�]D��02,�Zh��K<�}��|7>�1,�9ۧ7t�h��5��~σ�%��2�E�D*>��b���L�1r?Ci�
^�G��#�(��+��F�����G��Ai-wT��R)�K4z���w��Yp�{h}�
$��S��Y���O7
#L+��8	{iisɑCq����ǀ��K|k4!�4L�hЋ��k��r�%C�Ö���`2S��l�(�>����	<
SN��7k���J:ҦF��q���=nn�J!���!�R�p��Uݖi�[�����F�bk�,ʏ]��r�Ox�srVۡ9������)m��SBy��F�R�:��AE&S��LAa�4��U�S�`�Q��0�P@!�h2��&��3a�e�����V�D�m�7Tm��E��%;�6l~T3����U�^����L5b9̗��#q�R��jTKF^'[O��&
�8�q$)hU��Q��D	N\n��R�H�n�l�fo�u���h�3�g�0
�#�҄��r#��_s�Td���qB���L��OAO�_�D����ȒE�\<�-
ދPE�x��j}	24[/��@����L�B�9M0v@��n�⋕9���\\pn�c�M�
�idj35���09�C����G5�g�1's7�(�m���Y���Ț����J���0���?��<�<ˆ�b�&�b��J�6s����'[�p�o�cq�{��J��o
�p�eL�e�E�g�vVD�#�&W�?2S$r*lwG���P�p{�`����y63�+�<{\L7K��R�D�{?�3j�"��M	�Hz�u������Ν���a����%9�禐��U�Gi��Ko��^l@��<Q��
��Ƶo=�GG���}���so�z��W��>��7�x㷴i���Y}7_��M�W^����S�ښ�/�w�jG�_������wE�p����H�b]8��>����^|�G#;���۵^�l���y�̦wmu{��^u���&M,�����Fy����z������4��!)��d�=k�L�N)�N�:D��rm��P�8�ӌ�Q��w�@h���SB#��r�ڨzX��V�����EIF��a�	g���ؘ�5����G�tL��۲�GcT�����n�M�:f0�[�z�\�Dh��^~T�kP�Ni�h)�zod�l�SB�̒���hH��n��6k�<ˎ8u��=��h�7kw��L��y�w����Ȇnz4u�]�|��B��Q�Y��d�Vm��c�2���(��Ѐ���~�	��a�ڦ7�Y�E���`�1���Ⱥ��0\j��Kr7o3T�\p�9)��*�4�C�>õ�-a�r5�:��e9��ED5"3-�id��h��R�&��:Em��I�}SQT	QKd&N�7��
v��}���
ڶ=[����3��{���U-v3�?���G9�b��lV]��le���(�%H���6����i1֦N�n2=`t
��}��6��S��?��V�^x�l^��͎綇��OE'J΋�f��v�(l�\*�3r�J��ɑ�95�d���ө��iV�@LZ�E�r��Z�
z_k�"�	�9�W��bG:	7���n�Z�>j�-�y����6�7@�π]�|�"�H����{e�������l6B૴��\�m&��QtahO���Kt�V>äS�@A$l^E���o�KQdH�+�n��N�R\
y�&&���J����s)�ò�l�q@!e�!�T��ğ���O�6�ߔ¢��e�Vh�Z�&�ʌse�~���[�jDVH�;*�ɭJA~�� m�Y��_��_�yҦԚ�$��:1_�lL��D��xh8�ڜ�F�Ph��H��b�17�����SA_|����L�i�����u�O�_=+�G�nJs��
gL��u��t�Fn��`0қ��Ȫ�gdo�מ3܅9��,���m���jvGl�Ò�9W����`�i,�Ҿ>��x/pnoyT�W_�w����?��g���y;���G�[_~3������kZY�F
��Kd��xL����C���kG����׋����u�gA�5F���#魎�n���޸ݞ��BX����~f����5������UYd�z��z�hZ�5��=w ��>< �kZA=���ן>�Y�P�Pګ�Аi�,qڻ��]���e�2!H�g��P�>[q]1\�g��Åwu��<��.$~�d���1O���#�u����u$=&��N�b��
�oB��k�~L�C��F(���EvGX�9��	��;J���v��]��,�������7�whRK峬��p>�8jB�X�ҳxd�K��GOa�h�кT�D�!�$�gB��Gu�K؈�#�5�kTQ�h�j��:ܯx}�g7\��2DQ~^Xz���{�N#�[L���A��[<#7���k���
�b8�b��Á��Äu���heO����j�6���])`�5���a��D��,j������iBa�|L�r�a�9�y�7LG�h�،T���hh�yߣ+(n
~4�ތ����3��b�^(��i1�Q�ZF\��[���q���~
�|5�J��6L��8gC���8�Wjҩhxv�i�1/����n�6�]n
��i֏�~���X�*RFҨ�&J� A�W�-�A����=Lh �BueI	J6}h2z!��r�N��^�@���wWQ[����0UPJ�܀Ur�j�9�'�����>�E�>���-h����SV�
�g���lW7E�\�Bh	ȏ��bN����J��,օك��䅃��"��=;�ڌ���h��mJ�4]”'�ͽ��xxpl�|�br�EË�I���G��φF�!X��X;�7%1��q
�`�w�s�ͬȳU�DsJ��a���㲁��ؼpDTJ�e�Uo��ٛ�H��P-�1�N��y�1�ҝ�h7�RӍ�A�E�Ԕ�7����l�h����`�EN_J�F�c���}��BjΔ�F���7�=}xn��>+0\4�E��8z�����歡1���7h��ȑ��4%z�}�篿V����y����v�7�-�X��QZ�eiO}�k���ײ���WbB(R'3b�$��J>^?��	��Wݾ��o�5~/���^}e��Q��~(��魷�2���}:=��������x=}����۟�[��!���k��F�明[��������ٟ;"���(���k�<:��v�z��U��b|�����n
ƫ�`�{�n���^Q�@%'JOWivFc�ݼ�A����*̀W�8�����U%M���Ѣ��{�$�g�>,y�Wњ��d��ϜӬ?%hݠ启���+��yˢ��J�<W{4���Ps5V�Y�u7;�W�O���Jf�R�s�=n��d̮��/]3��e�_����Q>�о�<��/�_o.�1�`v7�_�ȓ�I�:9��I��
�Fn���CR}���:�Z�o׻�#1�p@#?�������n"��>M�kc�#�"�n?��16:��*�#z]0rr1T���y�TR��"�t��S��̫��UC�;j�sDX��<W�	�:T΄�e(��3̽��k��=�\�r����7��"�H8�����{�~EY�	(q6�1�l`�U���#m�*h�-J`,?2	�klǝ��
V�N���˞�n`�'.4����*ղ�$	+v��y��Lf�pt�Tng��裰\���	�}W��y�p���2�UƎ-���i�S����I���wԪ���4_fL;B��Ct2]���=A�<QAC��Q��VY��%�j+~�m��whj�QZ%y.äg�mx-R?��G6�5yw*������
�9���?��;T0А�V�����*{�<(���)�L�3�>�nh�W�h]m����x�3�T�!q%F��v�
I�B˾8-�ͤ�1��@M�Y`z���D��W[�9���jS����#����5@�-(zW|k���S4�ѩ��
S<����!�܆ i�ߔE�ۛ{�;��������˟�{DAS�.��Y��%&m�nڜ18L�a�>��?Z�1E5�F��f���Q��v��fv�>Yv��AIV�D3�^��U�9�;W�h�`j�Sc��p +z�ˣ�VMF�S�.E���N��w�N�e?=H\�JZ:k��Qc�@jόa챇��9 #p{�g}�~�{c��(�!�Q��|h���fgz.M�T�Q͟?R��A'%s4&�H&j��L�k���榻��y{����,#ͨoo>��ѬZ��5����?y�$�����k��l��O��0b��:����{^}k��oV�W���!�z��V}����>h����}ӹ�����Ɨ����}|��:�﮼x�_\:�G�9#V)HB�Ir��w�؎`aa��`{ ���o$V���lg���a��=�gՙ� �qdH	H���Q��	#�s�������XP�V��Թ~��D�5�ed+�<3<J@aGv�>O����+;eh����k�4#�i�5�mi��7��:<ZH��75�
�:�=6��Dt�Zbº�j�h�;r '��+�	���X��e�*�w�@��@Q$E�D���l#5Ebc�-h���w7����&Ǯ�=#0�!���n:Ȑ�tJ�D�{*Zo�D�@�:��|��!a��R��j���$/3�S�=�c2��2����u�9���K@�x��ƣ��;��k�fW9D�0���z��dR:�������CVgS����8�A�k���U�-�ܰj4���(���y�e,*���a4�"�v�|v���Q�DNS�i�1��t�k�Ut
�8\�Z��!Y""�W_�A~
({(�
�Y�c�Uy��R<�o

��nV�*��k���X�M��>`�}�|I
N�՛�N�VWꃾ�P��I�Ƹ@�8�kB�L�p"9�Z�ꆦ1y4L0���0]9��p�c���ʉ.�>'/xOM��9�i���J)�_���
�k��:o�J�PJ�0����'�sj����A�FL�M��睑\
�Ls�J�w_�9t�4�q�B��^��/��r^�F.q��Y'Ԫk�A�K��9u;�[9h�(��0Oh���)J<5Z2kS������Ȍ�}7crv�|�->@Y6$
�6���{xubN���B�'J��C���Qp[��{R�8�s,Mf
��h,�R�@s Dd�v�e��,����L�ש���tl��|@�l�"ks
����~x3�7��0��~�{���h�{i�q]t�(&�%��)�	F��Ћ��#��h����.�C��cn�g�~op�r�[X����*&���I����D5��X���4
�v��Վ�tt�ONFC.��5���~��_���T��ګ���O}:}���я~t��H��K�|:S�ދ/��>���|�?�w~���{}�z�����tD=}�d��������z��w~,����������B��G>|��G�sÞ��F� ����+�z�Ƴ떇S6���C磸��?<l�ŊAH$�SA;��*٘O;*��c���.;ݰv�h�44������c�~67Fl4�<d�:ì�&*nC,
_<
��6C&�[Ҙ{l�5�1:P]�v��|5C��L�i12,Y�}+P"mv��	��F�NE���J�"�mKR(/Ԛ�<��
�EM�GLz�Ԯ������1��rB]֡��9C����t�H�k���j���
<�H���������a߃��Q$���:��H��7�v�V���Ͷ��hHc�\�L���$�n14&Y��L�����smmV�jJ���q���~�dC���d��%�ܔ��J�k����G�
��(hh)4�i�|��y��gm
��=�h��Rͪb����;&�Abcȭz�t
�o�՜�	�؂i�V뒔�~iVe��Z�Az�@��uFTu��q��x���<����hLJ٥�Vxo@pw&���pf&XΧ����U����@�u�<ަ��ƀ�@mg��V�-����26jW9�R�����D,a!�ưE�);wy���{6X�����4��N
��x�F\
�+2t#Z�s
4g<�Ɋ6��V�³0��|Y�1�d��M�(��r�З�J�l��F�w��ٔh�/�	O\NHd��\[�fv��)��Мt:�Sm
�N�ۊ��T
�N�jyv�V-Mn>v.ͩ���|��p��g��h���拒�f}"
�;2�r�P�8��0��N̟�B����$d�\��li|
���M;A{����\0M+�ȷ r���V�U��qV3%&a��Q�Ģ�%�K�,E���&\�,G�д�m�ƶ��d��P�'z�ZG��!�F��x�6���6�٩��Wף��YK�m#�{h2 h@0;�����X
����)�v.4���z#'տ���L;�)����ǀE|��w����U���[p
.�{т�
��zi8%̚���Uh�o�n��(���vnz�����q;�g�Q�=�ڳ��,����N���M�no��_����k���I}��Ưo&D������]>��֗����Ưw���om�z^�����=���g>��C����|*}��_~3}��^�"n��<��z�F?٘��d�S���i�wh�nX�A�~�*�ѠRvz�v_tT�JUڛć�1��P��nS���i�֥�7����/�H�Z�f_KAy&�>�1�)�k�L`
���VP�A߂IpV*$%�84������X�A��s���)Ȃ��0���ez�b�iU�3&�Ry���(�t�0����U+�@P��fg�hĆJ[
y�<��2Z�!gU�麄Ɠ�^3�S`%�f4�K"ذ9�k#1���K�0�(8����?�0�럫�J�,�B��4/E���?��A��3RR��,\?�7����Mur�g���A�a[�.r��s��b��MV�u��O
����A`=C���V�	�2O��)��A%���n���D�OY�P��xn�1�Av_(NU�y��ƶr�=렓ӔJ:ն^;-�5��Q�c
D�::xH
������6�!.y��7�ȶ�h�b��L�I9t��Lb�p�1 m�-̓�>+g����m�U��쒬f�y��cd0��X��Yb0�y�H�ՒDi���FQmB&SU�b��סm�0OZ4}��P�M�@�`�Mg��u%�c�M���I�R?�َ+˃=r��.w�U���=�n��i���qڻ^�]��Ye\��/�Y����#�J&h;ZpbU�C�y�r)*y�˻n��l)����Py��F-�q�.�5�E���_���Mv��+_�f�)@�K0����ѯ�wh����ڸULo��u�|���m��6���I]�i��U�����eW��o�L�t�K�-/���,�e�P�uC�Ό�9���46�D���s͜f�7?�c�b��ˆ��<!v'cc����&�H�'��b:[�N�����K
�����W�x
���lG(�F�v	Ԥ�B��Q�y�.ҭ�i����yjx�}�^gR�[Su��fh��-8�5��1S��h;gۋ������\�h�L/�WJ�Nj�ty�\����ȬU�Ϙ���v���5��!���݌C���>�?�&�i��pk��V����5��"=��
�N7/ɱ>&�٢�%%8�Bumj��~泟��c㯻�|�f�iz�嗿a�7�|3�=�K��_Jü��Ko���я},}�3��ag
h.�7Vd��@S����(�=��Y��>�9�9�a��y/����:[�*��a6��l�M���f/bk����i�Iqkܐ�;@W�P���Ǖ���Y��N%�"r�;����^]��ɹqd�0�)��=5l�~�g*mf[peM9�^#�^t��`t�HYk�|f4YE��&��h��85����.b4wlX���
t%���%J�L�t�}��h֪�h;e���/@��Q����|X��$�������?�o����:�{\��=�ƴ�Cj۪3��ŲP�As��cw^�@�p��ܣ}H�u�O;��k!|*[��΄5���$
���R��}+�ρ
l��Gt#nZܝWs�;\-mn ����rB$Z��[Q-`����CS���c���BXo�6�����'K2b����"s񮪅��;��QFF���g�ò���l��!O&��0�iu<��ȇZuw� O�y��Y�_bMiM�c2@��Sd��J���{n)hH�8j�2�q'��N�(�
�b@D���bh,�f���4^�)C�ss�[
񉴜f�P��M]��^�b	�#Z�!�`�,�<@��Hqv���i
��-��4K�P2t�wO.�l�h�5�.!�գ���F�4�S�ڊneQ�6�q[����.���&��]ޏ�<�Т2��s�
��,[4��)�����w�
=��z����t'7Y�4�_*r�|Lt��vͻ��S67�1����ޯl�K�v�g<���g7%b	��"���z�w��c,
��`��(�P9��o�L[Vrl��&3"s�fА�����ܡ�����M���ޭؗ���o�{���3
]�2�RDG�A�v�n�=�羟�-'ﱬ
4�ҿ:U��:���d�:XF&bAC��y�71Tq
��^�ËH�=�Ao�U�Q`9 d~��@3�C~�h���F�Hf�eh4q��b5wS�N�T`�u~Z��窋�Ni]@_]�0�t�3��ќ�K0}?g�ˢ��a/��p��M.��H	�Q[ȹ�灝)Q@=�MΉ�ϐ��&m�n��a����I�N���ho7��������K[qZ�`6<���R_؞��ĭ�<m~q	k<.�ᰌ5�k@�>y�>�7�#������_�e���+/Ð�oN�j~��n�Yú,[���?�_���G>�ѭi��v�C�f ָf�a���7�N�0�k)��,���ힹ�H�v�f��8m}ȼ��4:=�u�O�
��$�mݳ�=>�hH��)X��gy�_�y�9��f+��׹Y��ۼ�
�Hr�G�M�!��@}�)��,
y��k���X�����&�aݽ�^��*
��)[��}Gٓ��`�Z�0zP�ើf�Z���a�BX�0+� &PN��/��H��U�
g�YX��o�a����ff?�E�A����
Jq<�gmƝJВZv'iD���}�7d���]-O�#̪,��@�B�� �!
�4G�˖$/���P��cm-���k�6�s�e�=xzJN1]H>u6΋>��H��������ˤ1�fa�|��˩���|.r�7�-z0���.����5�zN�&�L�{�v�����M*%�a�S�j5�2c���&�h���pH��}�"P�+fm�Z����#Ļ��K	��v�z�U>n�--V����19�ȁ��F�� 6h���o8@��OkVCl/�u7X�`���!�6��@��/��6��A3?'c
��.!�*�a��q���1�r��킄WZ��A�R4av��Rwս�r�Z�É��'���󤃗��ٖ&5�=� ל�-U��i���Rt��s��N*��+'H(�9��"K�&�Q�J��jJ�_g�}�F
�Š����Nݾ�ܣ�;j���yzh�`�����׈)M->�E���K�69�4�jN�jHwz�j"�7.l��Hޡ.�
��
�,��?Q��*-zXus�0�����g�W�s�6(��a*zMO�
V����K~�_E7@�[ldX�.;�<�ܡ����S�z��A��j����SPh(�`
��D*�Z��$Hl��J!�ȟ���w�j�O*�4<is�}fI6��1�k���!Bq��]�4��hF�hJaq=��#�.&��[8�~���y�������g�&����8�Q���u�̰�R�=�4�����^tU��p^��
C�ډ[\�KΪx���I���^$�2~I�Rp��	�n��>'m��{��<�����M�^�!�Ђ�(�q���b��l��SJ�1Xz�|k"D�{��Q�ItK�iv��<�
kץv��g��i��B#���R���W_y���d���ۢ!}��W_}9}�K����nݍ�����s�3c���àa0x4Q���3ҟ��0�y��Q�~��s��h�Y�0��M�L���ߋ��t���C��F���>�
���7/@5+�R9��R�xܕm�����3��O�5�¦�Ŷ7%Ck��&��@Mu@j��`�lb$��.]ҵ��e��f��T+9{���k�/1ч�4t�������\��EAӲU�<o��c
i��=������Nãy�T�w\�&{�j�M�C;B� �r�=)+:�}�'����e5�ɲ�^��!��ˁ��F�
�i=�sG�t:ኍ����ի/9�$�Kq8ɚ+:%�y�L��5�<.n8�n	�~�<� 
ҨQ�9w��\kScb�gf.d=��`r�(!�;xb�����褸I���޼(]���HV�4��k殐�X�s�!J��Jނ	�dd�-vD��}���N�65�$��I��J��0�7�j�ԇ�z�@�8vrj�|{�Y�]Mzjr��b��(O��c��s6xr�ʉ���;�u"|r3�j��N.�<:��^.�4��m���Y5� �},�D�_��V�m��*(�� )�қ����
��
��B�_�va>�T2����-�P��x��]�-^־/@`�]�.�M5��]Q����s�RDc?��4!	V�!�s�aoG��q�[��_6-ڠ2���8{iȣ�b;F�h���-Ц2��%&s�6�����)�=�(Y�l���,���J�-x�*N*��}��%i<�Zޓ�+RE�p����hÑHC��L����Ch����'S$�f�&��67a,%rg=F�6~ͧlh,��h�aI�4�6U9�js��g��j�w0ra�H�Ʈ��
c���F됻�/��q�;��S��pТ(P�g���S�ϝ�+z�E)�8֞�wJ�tu�p?'�y
��ѫ#�~�I�������j�QeP�8�S�Q�lwR�:u�����X�H�;~b40ɐF��^q)d�h��S�gzk��n��L��\m�W�"��KGP:�Jss��&Ld�N*|��^z���_ޚ�Nۋ��Z���~������uv�qo�Qq�}>~e��oۦ���Xz��|a�Y�P�͛ChT�UWM=�a/��0R�C������iw�fq~�]���ߏ�(���A
��"Ki�̱�l�n�^�(O"8L̠u&F�&
����
�J_;o��:���S)
�GV�\.I�S4�}��A�H�գw�*�����T���)P��9�1^C��/�s�{1)=��$҉~���]߯��B�IN�~�?��61;�����$F+���"�`KU�h�|�-�Z�x;��O0�0dK��]�����3f���:pe���b��Q5�@�V4:M_� �/v�	&f$I����5����i%G ��=���Z�xӋ��R���<�_Hb���,��<�RɁ�d�yRÚ��͎f�GȐ�7l�R�E�E#�@�K�g��A�ui��-W��$g���%��PT�GIZ��0)�����2��iں����:��j�X���)�D���Ȏ�HD�Ҩ$~@v4��
�x�:�QF�I<�&a;�:���s�ۀ$�+9��BCl\̓�0����H��7a�)e�-�J6�1�����hm{H������<J�HTc���&oz��5�d�l��e�nѥ�ޘU�4��I�4%e7�732�*s��Z�=Mx7׷� ����2_�!��c�pr@��e�3�ys�Ms��",Oߏ��] �ll�&�h�-PT=�1�9�♍
���VC��t�_�Pi�K*�7���w��:���L�ol�^-P�T�\UFg�WP��Ғ�DQ��]O^[P��Ϊ��`�]��u���%F*�h�Ӕ��k��JS=�n�פș�*<����5U��"m��=W":���nD�*����l�M2r��PD�n�hz�@��ņ�&��~�sȋF�蚠x^�̎�t r��!���c_���j�Q7!��j�'�:
�����Qb �ä281V��x��p�=8˻g5ޏ�.�[��3Ժ�-b8FùH]wߤQU4�Fv�N'�ĭX8G7|�~]�W��0��‡�4����,�YW��?�wC9
�V-#�c��gY�֬�y&�ӭ��&���cGV{1y��A�|~�V`'�AXҏtw~y�����>��{����Ѯ1�z��n��ʫ�\QW��[���{�x>�������|����c�7&��gcxr��r�~}%j@�z�ߟ�gEt��P�w���+�M�^"q�}P�]S��Ųm�K��}_�k��)a�t��
��G����y}��gY��3;��,4ϑ3I�����>�(��
6�nԴ3Ϟ�|��Ѧ���4�h_����EӀ\pԳ�Q����4�**T�5$%�{'��H�0����l]E,��s.u��lQ�uϣ���`� T��0�J5��W=J=r
U�u3������{�n�U
�M6��`�׻>h�Cބ~�5ح�K�DO������	�W߫�q|��^l ����~w{Po��Q�Tr�D�X ̂�U)�)3Ƣ,�ٞ�Q�t3:��K+gJeG̘p�n�8
�v�swl_�1���u��]4������L���go���
�:����`X	�yr�n)R�M��h&�xeC����.07�œ�b1�be����C�H�R�X��`�|4�s�d�N�]g?�*��D#�A�O�'ǡ�l��w���SpZeh���1����\�q��\[0&e@2�A��4�}=����?h��t�θ�4�R�JUЎ�^zƁ�5:0+=�90���yR���B�?C�NE����od,�)���g�%�(#uj(���r�#'�Na�s*�z�e�d��MM`N���ۆ�ι>M�mH���8a�Ǧ�t�s��
��9ݙ�2�(�&)����1!LJ��(hŭ��hGȚ1�y�gc̛�n�9���XE��>�1�@��.�(��̑�K'.9 l��&t���w�Ii%M�;�y��4&��Ɩ�F��M֒�ѕR��sW,dq$�]gY����D�2IV#����Q7%�C0�q�QL�6�TgX�FTQ�A�&U6߱�5к�(�����8s�Բ��>\5�Q��/�!Fq�3�\wh�.F'��Ӄ}N=;�7R�uH��ޤr6�V��src���o/n��b۔��\I� �=�W�qh
�S�Ne/�԰�F`��l��(v5��м�i`{,"�w!o:%�]�t����_����}�u#/t��y�N���N���N?��0�ߏ8�~�������}�{�'?�3����vz�>>
�o�}�4৷��W^I훠_EV�-��������1^�s_���]ǘ��|8��Y�桧���v�=�5
-�-�;�ڲ��m�b��`�K��]�l��D	<�'u�ZԥI�J_}t��n�F��>��')ʎ�c�VD,��c�TJ��3��yf��Ҥ�˺�H�Z��t4S<4���C�,;��T�Q�����X���޲�3M؜};p���(n�v�uִ�������04G[E,(L���c�#�'���ܯ]7��B�G:X��ó�.�d��F}0ZJ2�X�e�B�~߮�@� �!_�8�%Ks�5i<V������?t*���Ç�lLX:mͲ���/�)��=�9�,��@^���H���}�
�e�e�"��UeN��Fx�~n�!փ=6�u�C�l�Qgl?�5�
(^D�Z���
1�)�&�2�/A�f'a8�Y�&rۡ��]{��1-�5�k@�I�VC.o��9��9ݸ�y(��fĥ)kA-+ϥ
n���ɖ��F����-ĞBAi���ǐ<����n�8M@�VƐJ�u ��c�z��q�=*jiБbxAc��"���u	�\dw ���׆��sU5z�d��Y���k�3��T�蝧��f��˶C>S�y��K�j���_@)dM�D���#�)�42�<��&��5(~�6��i�Oav���(�d��(�.:�	�CN�OnwRE����3�@ۼ�C�666)�f�,��X���F)��L�8�e��Ŕ�)>��k����ǰ�(]3=
�q����?�9�:�
�Q?YUk����Yt���n�x��g
!�Ek�ϩ�pQC`��q<ٟКZ��E�1�H�ꗧ�8י��@��6�L��}̭��1�	�̾H�$_#��5���a�-j@J�I9h�َݗ䅉Rb��=@���>.p�D�F}D�r k�z�LGE���:�S�v�Qh,�&+kTt�r�2�s �x�	��e�.���u����%a(F�-�]̈�[�͑݋{��yg5��mפ���w=~�0��<�hJ�4��,�n�Bs%����o���R��k�f���(�o��ߎL�o�Kh���n����v����|Z�����_��)3��KyOo~z檲T^�?G_�ŭi,��:cam�6�_�M�S�{#z#E���zV(�%���}�*�a�M��D�#N��N�4��X����t��f�F^�=͐�c�&9����7�k�|8y3(�)@@ȑ��њ��ksQ�F�R�m�6��/k\	�!x=�
��3�g3F��D��Z68���Eib�����"��!#U��D�-�4�à��{�V�aX��/l)���P.ī$1̬��ʒ�]5K�3Ν;�N�1"H��M�G�0%�sT5�@#PUb
��8����`=.(`P�d��4E�����,`���0�؎Ɩ�EME04� �F~5<�LL
yٚ�N���we�a6[���t���9��5�;��l���{]�l�����
�%5u*&�=�gq������=�
ځnlh`���n0���d��eAg�Җ <at�{�A�����a���
cf�=�<�V343ZúE`谨B�P0�
k~��˵�pI#�x�̫xr	v*qF����d���L�]t�Z����5�7�3����.^#_��K'�eJ�;���9d>F�t҄�B��J���1�׉&#��ݙ�O���"O�d�N��
��R@�������aJ�n����j�j���Q�Lf��ޙJ�� �TĘ�l8�b�(4�gI13
�s����R�@�M)�Y�h$T��8z�m�ޤ���LZ��fa�S|s����Y���f^��
�(�7D�Y��
� C[�d�+���<&Ci�5=i�gr�O�

���چϖ��1NZ�{�5�`K0��r��)�P�R�dqX��ve!�g~P��8�V:̢T�&�|N�Jy=�䬛t��R�H�H�kO��5g��h�Q<r\i�����"�%��4O��d�f�u��0��@�B�W�����G�l}ޠ}>�m��I���=�N|ĵ��f���F�6 I��?�~��
�S}����w?�p~3_����/}�?�H��۬��W���_M�k���_���R���_��g?��D.�d�
4�G {]����4<�QAp���y
�����N�}��7եA
�F4�2�
�E��t��k��Aɯ�F�����i�E���m��)�f�5��*7
��+{�Bиf�D����c���s%����Dm���F�����/�0j���<k㍾��X�j��b�dx�35����8g
ْ'M��3�Z���WQX:Y�^)���7]$Ȟ�(<\���O��p�}R�^|P��p���S�S����'G���}f��G�dmZCd�M������FB����!�0'��.�2L����T
�@=�����Gd�td�F���|ʍ�97]K�T�����R���A�#
m���SBf�:���/�%
!���g�=��F���U41����:}�g���Y~����<W��: ���޻�1Eg
O�Y�6�1P9��ѽ��mC'��5�{�j�,���x�_{��C�맛�hV���¸(R[�)��SS<=$�����[4A���ll�,^��?C3�;�3�\G�KhJ��)m���N_�w�lԠw���D���.XY5�.n�����1#��ѕ]����j`p�h�4O�[��ɬ(R�&�D�>��N���h6�7#l�^�5�
���uM_k<s�y~�]s������K5�	�s�ɮ�X&%��K��Ǩ��H�ƀπ�g�d�ɦ��!�b���J�6d�:RH$� ���4}-{�|M��QQzs�eU����h�_�dQAE��la�Guv��=j,�~�s�#aET&ʁ5nq-J�!�fp�.�uwćM E^/b�&�$��7Y�Z�Ybkbq�a���l�*9�
%��b��;��T���W�x��Y�Ž�iY��@��u��x��\ĊҎ�^<
�y����];xY�4��=���r�g��2[���x�#"��������,���'���oQ�zA���\��5^z7__���O������uj�4�8سG3��\v��M_b$�{����ϺAK,�z�nnrW�E?Rh�9J���u�=_+��N���kWo��6������l�v�H���1�Ыg�K�]z�j��Ը%���r�FI{�0��`=d���‰�m_z��*f9C�W�Tǵ��Ʉ#��H)��z��˒'=`S�w�-���\=�0>�!;����YR��k�s-x�a��4���F�yy$�Y,�N�-6�E>X��W���g�֩�S6F�A�$Et�y竬Q��]�:�c��HrZ�br��lخ�U"a��a����
�dzgiŔ�xV�O�E^8��
�M$7�CH����o!���;�f����߄�k��/�q�4�
5���g4��@�$�|j�S���Fݳn[.���z�x�h��b�	�
�f�*zZ�����E�1M�����7� 5k\�FVm��`��S�ii����P
4Y�G�z�izVIkլ��}��ƨ��9T�Ƞ}�c]OL�uH|Q����z)�<��sn5�����Ĉ�t0خ4�!�e�H���϶��^�wu]h٣�YOR��tj�h�)@�)G�n��Z�ҥ˦�Zúo�(�S
.��
�5���X�1h�Nc.p$��r�ް;s�prF��>T�K"���e>z$LK>�R�n!G��^T�p9�H�N�6��+�!��Ȳ��c�(��e;j�ߓj��ِ�=��nC�ߵ7�%]���<v]�M�B^&�y�*d[|�a��8�!��ҋt������,Y�$�B�f�'"2������v <��w.�\v��b����2#�q7S\U?US�Yswlȑ��ʊ<?��f���y��4���C�W���z�����gG��ݛ��g�O��&e
���+m�1�S��Iō1�D�rL�Hٻ�g��(�77HA���b4]���Y�q;��I�{�Z�"�C߀W����?`�Qّ"i��ogsE���4�r�����{^s8c4�il��
�WOt�鵐M�8W�A���u�.Q�g<#��¨�FP��b��vnGu��W	q���R޿���iV�3=x�������PD�Z��#�~E�r4����]���)�/)�����~}�T�����,��_�h:^�X�<(ֆi��p�EmH�"��5�=ʗ������Xe������A�!�m6�E�6�����[��:e�Ҍ����ǂ��E�Vq�}����K݌J,��S��Nf>�@j+��~=*�K�F�o1�t_�!�J�kQp�6���"�n\݌�g�T1��@c�g�>[E~%*=�iL��Q�����!��r�����0��M�Kсf�!Գ^���5@�kKF-Оr������9�JӴ�De�st��H4͍��8}���G���Hg��*�q�~�����)3r�Y$�%a#H�T���yU���f�Vc��]�p����h��g0�\L�j�cB�u,��G�2Mɋ���<�ţ��6W�݇�\İ���_���8,�V�qx��m�m͸�"�0�0 (XI�6N��� �p�iH�kp�2�Ǧ�'&�@�?К{�ӟp?�禁����i@�8MD�k{��궡�N8~j�?�L��F)�aF����0�y3��K`�b���>��?1�KA_>�ӟϋ����r��\~�»�'�D���ל��
��Tb�ћ��P:���MI�BM����]��4�N(�7�u��ՠA�2)M���gc���۞��/��Z)�Wٙ�;͎���<X�"�\24rdI��׍f��N?���١<�RhD��j���E�`g��Π�Y�17߾1F6Z)�-�ܩ�NmnɕX���1t��>m+�z|�4��
�JN�&��1#��v�9���#6k�<|���)e��z����S�9h�vD2y�4s6K��'����1�����;a2(��5�@*d!�FඊZc@�x�Z����G�D
��.4�`��b}1�/�gs8u�&5�"�&�R����T=��j�갍�tb �s2[@��:k��-M%K�QP����g���]�������4��5w��:4mT�zP���~�]��Mv�ͨJ��ͨ�ޡ��JD���K���W��A���/s�5�؊87B��.9Ƈ,/�]�ލ�׿�^��I��L1�ϗ0�b�}c�����|�<����T	�^��Q���5#��N��������0��|j#�����K����a���38DN�VF*� y|��a]
��j��H�b���V-�R���^���~�(�e5���q�8Y��t\��3��#��Te�`����U�\���f�Ib��3m�5=�F��  c��?0�Q=WI���g�D3�<�H�n��h|�4��K ���3l}������}+�j�s�=�zR�[���9ޣ;
h����Q2��ـ3���$�Fȅ���>��Q��#L�=���c#�#Y5PK�4�8/��}�����kt�g(�Y�X�7��\3��,���fz8�
Z�;�ƪ�-�i�<�"5
IU�$� �`L�Q�Y;=7A�,j��ε�ڂ�������>�0|�Ra�:Qz.mU�1(�,�0C^���uJ���Û�~֒&S��h<��m�����Jh��Բ��	�Z�[�ޠ�)m"�3ʐ�Ž�A�}�=�t�AQ�~\�(Nt{ ��=�GB~�S8�5g:�ϥ�y_�&���*�V�f������47�a[P|�8嵜?s��Q�'�YG;?��0K@S�d
kܐJ�hV��.���(A����J�8�g֧�S��O�O��2;5X���"'L�Pª:<)�
Q7dG�b���������p��P>>Ehx�)af@r�1=�QR����\4o#sY��9�uN	Ͳ��K�9�Ӡt�Z�Z
EP�s���y�v$6w
1.tB��c~/S���b�\�W��d���Ҥ~�ͤ�\sC�K[5&�O�FpQ�hF�=�8�;gc��Bz��#��.��Wl�	�y��B���|�0���9
LA���SR1m��jڥ�Mk�4&f�CJtZf�1=�%�!��(=F4�&(��>�3��|�5�JU�:U����>q\C�	��fN ��e���bH��GU��j�0�@�FY�d;
�!�hPƌ��:�o�DS��j��v�^Z?�r4�k���NX"���|�,��:�kl�u4G��jb(��_@#�`�+R_[��l��sS~k����K�}?�0������v_`rtC����Am�S*�
��p](>��t����D]��<�7孙볠~B��ːCd�ߏ��}�i�y6��U0�%�5W��/��Oάe���:�
��Ҵ�r4vA����|�}ƣ*
R�[��Ş%��bv�8�k�g=շoTގ7�~<���O��s3j0	���<A�U�1S�4H9��~�=Q�__��.9.ʆs@^��v���ɔ�����n�ף�]d�8����\$�p�}��T�n���VV�%mZ�2�����Ŵ�M����@F�ΑA�8���6�۽4��#��
�����m�b��<�9��*(#�^�NY�(���Q���V���`�!�b��������Il,���]��kD�r1��(��|uw�آb/�Dc&�}��D��a�O�k
��4=P܀nR׿������>��nV�����$;e6��=O/���7�3;�əW�C:�;�P�~6I�F�
it��eՆ�n���P�tdEÓ�(�#�tAY%���b���K��F��b��h����<fo74�ݹ=!f&�Hc�u������)�ÛśR�E�5m���Q��2�E�E5��O>�桡��@�G�h��g��ύ���v㽘s3E��hU1)�4�^��jy��B���f��y%CU�9;E�{�*�T5C���Cd����52���3 y
��%��Y��?���J��O�ٙ5z<C����(nWrp"��'��Ecy��96�J'��C6Y/�����*��_�rv@�hL��\'����Z��.�1�n�׹�-De�|h� "˵��9���g��A�_��'��h��ʛ7��KI��)�.��
�!Fb/{�mB�(>S6o�\������gc�o ԗg=L�6i�0�X|���)�C.�:l��W�1��i$�7\�j8VϵK��L��� U�T6Ⱍ�N���4l_ Փ��8-}���EG��$��rJ�]� �>
��^���E�*��I;	�Պ0�s%�����,&bCnh�MG�T��̡�UZ�y9�-��AÁl1&�t��s
�0���0�r���s�i��,����썜�]�PN{��(��}��I�ϻg~nӿ�s�ۙT�+}9�Y�cJ��c�4�#�%ӓ�5��$�0l뤣�{tN����Z^�����i[���!7C�e��Q;�r?�ub��ݫ!�]cU������߬����ۘ
} g���(������}���3º����4�V�܏��\�����wU4�努��}}5dUs��A�����|�q3���5Z^��M���)�)��8�l�74�y�ԯ�b1mi�X>�jB�$V���Q#ώ�2
�+$S��#�g�R(���b��U��Wq]��)By|��H�9y�G��P��s����f���pD3³!�����>.��d���h���1Y1��{B1��c;Ģ<=B<ț��$�U ���ɪ�q���}�L7�c�m����^[��tp8"wV�s�L�u�e9=?o
�l`��9�!3"mbP�m?�d��k�R���3���K��v=�� L�
�� m"/�S"��2��Ӏz����

W%64dCu��\�1k��{��z��l
�O��z���>߬B�m��zvtw�6Tn#��$5�s%JΏ9�i�݋�s��N��kw	��U��d���
�F�ddqOh߰��2��!��J(jK��A�1���<p#4����^�0��f�re�%wcJ(�@�x�������_d\�Fӯ�z�(��0G��,ᑚ�g����R��
�w��?�&�0/?��ύ&������Sh��ʉ��Wr�IG-:7k@؂�� f3�9�1�պ�M)MQʉ��p�r:MG[��c-SbSӔ)�_��r���Sb�|a�C�:�h��k��S)Vߧ�%�|��
�
��n�&�����(���f!^��o�3����e�1\[x"u\N��ps:9�S��Y<��T�|�(��;
L�zKk��N��pټ�bh��#��s܁l`J�/Lw"�������x�wz�ܽ6�|�;�!­i�]����;C�3]=���b8����:���_�	�b��r#v�N*;wv�7'�6\�}�%�|��U2�׀n1(1��r�;hq��
�T��vjO�4y�cXӛ�%#%w4���Rlr��-0,�D�00�j��iʑe�s�G��G?�O�\�!~f��am5����l�1�4.d����n�d
�N��B�ˋ��LU�M��b�����Ǘ&	Tmi�:�Di2��L�Z�A��_�f�qܬ�c�2�4�X�Ҭ
�.��8�0ɶ�E����3
����ގF�]V����\;�����顴Խ�3h�Qh��y
�4��'Ԭ��P�����;t�#f4�/y��|��>�]��kv]@'�.2_�]��5��|�VD��>�f��_ߎ3�>C�w�S�2B�����8Y2��W���1�Ѹ�Y��H˳��G5���O�����6�c&���}:��4�"���h���k�5>ֻ��w�4���\U�QA��D^�tHP��z�~�g!$�n";���cR��j|@��u�����W<�4� ������?r&��aȴ���F-4u��;��߆5�-X<V �p`�'
O9�Ml&����(e��JVe���z�����馂�_��Z6�hPe��l���a՚��h�����-���}��({�BI�ی�ˉQ�{�#��>Y2��L'&O6�gt���i�����~B��83��u�jE�Gn��R����
�f^��1y�<�p�	k�@˕ޙ�d��뀚���ÓEY�#y�5d�莵����T��'
B쾧~�^Ӥ��e���u
q֘{y\!3Ϝ�fA�Զ�nRj,�a�g�xM�g0�`z)�
��7u㒤}��&n2)�>S�=3��;�K-��[������H�^
��P�#{���s��5}���L+�sƍ��G�ȗ	\�BMj>�gOg���L�G�~*ҧ-�uBT���?�PjS8beZ靖�tI;IW�M`����6�� �r�aŸ�|�'hEņ|�LJ=�M��f��w�� �`Z8fhJ��‘��1~�̗�n'sha�8%d<��q�UzޒO=͞��t� ](c>��}�p�vL)GfPZ�%5�#�QB��:�4l�j����8/F�|p��+b�[\�>����9�f�1U�.�p+��[�}�tj�}9��ys1�N����Z
6���vl���Fp��g���3�CYz�����Ƶ	�M
<��j�_����� L��=�x�q�6e#G	I�<�
6��(��v)�:G��d���͒l���"�ԯ��Ȱ#��ɠA�6O?x�,�u�]lVfa���)�2��n�t6栠�
�P��ݜE�S��Nac��=�FVjJ�}xF�A�|��_�67Ґ~�1,���6�U�5�Mˇ$��	�GA�r*��*z��~����v�� ��pW^��p���G�������|���_l�[�w��_6LnЁ��j~�OO3�ɿ��a��)��	�雬m*�ɞ{���M�|�^�D;ַ�T�������D�`jV<�=�u��_m� �����^�-�i;��E�=��yO�_W��?��mP�6I+��p�~)U����O���qۏ?�Ʊ�����I���ݸ���>����"iJ���`�iGΰ|�;Y1�8~v�l�y�}���v�4�BC����Hu
��b6u�+���J�=6�VK4r��e�#�S��Q�t���r�M�4r9y���.sa�A�
�ss��0�wƨ)i��֘�~��ɜ��ψvW>�>]N�f<
���9<#�m���g��\��e�˨ �{M8���8�r7�Dw	�ԇ����+mj�M6��%GC�>l��>���I8������<NT��L{�:l�Ƕ�gd7}�!�*2��D�4m��j ��'껒�+��5j��
�s�$�3�0J�� 7��.�I��m��a6Y�Q���׫��\�:�R����0�#��!�O�H�!�Lh�Q</�i��6ǵ��X�Fcx��ĠT3Ƒ�n��:���3ƺ@�]W� �ğ�.>�=S�	�wje�J���<_�N}�p����=��D_:��������Q�3r�`�/Ѵ��+��ב4ŗN��s����Tlt^�����:��}J��������3J�BQ.�Z�H�Ŝ'�\O�]�YD��$y�T�=��Q�)��t��p
���s\���xG�昈��ɳ9�b��\���F�1��5�`���w�V��h��^� s=#�Nc�PPxYO�N:Q)�,�òu��ls��B#��~;~�]��F#��a$���a{I��T�@C������֩���)��.��<٦ȶ��T���8Q{�e���#H��g��y���%"7ȾPNPX�:h��AX�����[��b�")
��?�;�H��z��y���i`�Õf�
.�3��cM����E��;n՞����<�U[�Z�ڜJ͡��fz�m�n�ģ�q=�c��妱�	� �b19.B���%I��ͷ��َ� M��}R��&��A��U��V?P�4�n���G3\���n{���(��T���tS��N���
+͡��bC��a͐ꟿ������t���kJQ(�$k�<@#�4p�ɯA��i��V/��=kbe�+�㸮ߎ�{;���dd%���q�d?�㲧@�)&J�}�]��Y�
4���dF(�|��Ѓ�9�M��������^�ٺ���^�'2��"D_���/4�7k^����T@�y�E��7<��
2�	�[?!�'S�s��4�$���P(y��n���˯k5ga�H"��\vD�(�Y�ApS��ݡa
m����Ny��tM��ň��2l��"U�WЌ��HA�S�#�Sͩ�Q#����Oݥ}�|ɐOy� :#'jH�k�1i�g�A�G�[aL߆�5׊��D�+ͦj`�,�	�����G����L���Au!����T���nLaR#/fT%e�׋S~�sJ���}R�#�x�OQ�]��Q�Tz���a�N;�p��'S��&O�t$����E��!�	�i��!ٓj��!�����Uϗa1Cc$�F�ףX��O:ಉ[�Ghm�غ��<p��"֦�ت8�{�\�@E�
*q��5:
̈́�y���t=���.�i)5���݁y �^_�L��GC)k����O^>�?
gl5p�qx���}�s'h�4Ǚ�2���'�g
.3l�x6��κ8*?U~YTR��'R�\�D�
6h��Cz&����'@�>�鞑�Rs30u����l,���z�SP�]�ӊ����YQG�^�Dm�#�t�iPy��T38�M9��0�T�B�*�x�ty��)�Z�'�����:��&h���™ȮOɩ�m:�
Pgv�i��Dӏ�p`�)�f�g��M�|�e�B��pݝ����F�-�Q�7^x�V�/��%5;�tr�-�?���d2Ÿ�pU��S1����U����fzR=�T?Ej�c���H���v8%M3$�:@ܟ�f�F�Z����u�F���t�3c2W�4��O㤚y���6�A�@O��};g��4����7��n�c�~��X1 ��4�eA�:J����ql�)!�9��	�%�IG�i���ΖPbn��_Co���k�!Ko3�gӀ�/�S�SĈ|y>����Ƽ_�>�NJ\5se��}���c�d�%�� ����2�j��P+��y��URZM��Ŋ��M��Xk߿��͓��(�|���x�7-XK�^M�$@�WbT#{f?.�Ύ(�^-fd?��4�,��f<X7�?L¤�R��s�S�Biwgni��2H�1�U�t�&��f�$�>�l����S�Y� ���،��G��p:�?�j�ş8G��zd�q�_���������aj�/��"�Y>�}Jd�q�no�D�k�Eg��@���N��.��_�6T�a�Wj�d�V�X�*�g��S��������zs��*�⺓G��I���1C��G[�������N�4
'�r�e��,M�+{ߋ9x�B�.�M��!�hs���}���h�n�����)R=�(��Ӷ1L��N�Cow�)����k>���nǙ,��L6��^h(�ֻ;���8c֤-��YQ$ހމ��>fCPU?�TCJ`p,@X;�-����k��Sg��Y-�u�&�޻������0�	m�u��C�H4�i5�#cx�u0��^�2���!`H-��L���`sN�=$�V�ƫ��f8[���3��J5.�M���r���Yh0�頻���\�oy���m"�%�|���j)nů�Won�P1��b��*@4��1�:R[�T�;�˚?aC�kLS��C�H�"4�$�s������}�82�b�n��͇�d�H�}W:z���yV����LK�Rb��Dܝ����A�<[�7�����`JZt�2ƺ뎱7x�F0����������b`�rG�E�%�i��<~��*[,
��t����L������!�I�q���;���R��&T�&
���)'G�\PP2�naW*�sSJ��ij/]t�3��P�S�ZΜ���1�SW�R��eߦ
�0RA�����2����l��}.n ���{�0�F'J�&�.��Z6��ճ�`�Qy�rQ��`L9��.!�(v�?k^��{�i�y�v�76��\�)i�����Ի؆45���;L��].�(#�F���!"eИ5�]�T�NgX��T��iV��gl�v+Ҹ�̵�9t�f���i���9+q.�M�����_��>��t���>�K� �M*���t:��%�8���̓Jw��5��5��Fn�06�e��N�%��	�H\2T�/˩��nf0�p	���ٳ�i��zi�	�	��'奡����s
5ה��4�ݝh]Gj�eҀ�U�.�Ҥ��X�{|�&���w%F�h_oV�+��x����$�<�3B4Ӂmi �9͚7�q��d���dm~�0Jnߎwk��ٮw���7 ��Gn�BӅ�uʧ��Z��Ľ͌~X#�c�c��F�7
��4q�؛"&/sgӊq�Td-�>�I�3�9�#t�Z>����Qu��ϬS\@�^�����i�|��|�V����J�f2|y5��wC�T����̓�����Z@�i��@}ϋɝ�C�	�Q)�W�|�F\��9��$hٱv��3�>�������U�QcT�g[��Yȇ�ÜXɝ�ɲH��%����S2�9�
�i(M�tvB%gӔ�	0�6v��̰�
��f�(|;S
3��7	z�f��ix��
)�i]�2v	Y��6��徖�7�3ij�#�,Щ��aW����a^K:v�Xl�S�w4#����K������A㌤_�x�	jq<E]Q;�j�G)|b4
�4bO��Zh�<�*��sB=%��PZڤ7��5��=n�MBw&(�c�U���kk$C��m�::�t�5��_�/ԥ�&8lU�Z|X���3����Rf%�N*�bL�ܰ�\c���R8rʅ�C�t����)x�9��U;�
+i�Jn�c���:�ΉrGc�:4��"3sΙ�L�׽3��Y�_�
w�6��a�'+�hA̘F��b-3�Zs:\�\���|>ј��	?G)�fm�+�����rn���/_����������K֫i��M�cb�چ��� =��xx�G��D��Yo̹w'�y�ll�H��
�3�9�H��_m3�T�$\�ځ1�����0�E4�}�4/"hk�h��j4"�u�`��!��T�q׻6ƴk�u�TwY�tH�4'GL�(|*��J'�:�u���R��wV�H�¡
J���F)�2]K�Z���(%�G��Wk"<uN���q5��J�%�Z��@t

�z�23�ȷg�8iLq�7�9՗�)�Y����İ�	kE���O�L���I���"�-?̵�i���G-��
E���")�=����_��4�0��z�ɝ�q�g��c��-��X��G�@��Ɩ�FS3���u����C��iTm��F5���	��޹d�"c;,	i���6�v3s��u��M�Wz��^�:�����5';��>�f��׻���j�-�A���y�6}�#����9պ����Np��+ї�f,'���g�,e��'�B��s(�a��a�V4���l��ׯU��ytϮ�x���2W��l�.�{Oރ�l�z+P�e��Ț4��2����P�?�-.䵂��FT�̑ꕬp���r?8�*~���@����X�
Ep���1`Z9�Ii�ߎ���#yF>`�v�_}��I���?��f���D��-���D�f(� �{Oص(���ML��8[����&M's�"`0,�fҐ��|����X���0��}�d��)�}|���{�5u|�߄.���B��}Q�h�i���L��'�%�:*�D������u�����ؙ���~3�,�&��5����ɞ�RAّ'��q���UdU�2��q��j^'
�O�C�_3��zC�w��f�$��b�2��0g`"��-������<�Z���>5^Ҽʞ�@�@�q*B:�	���agp��}�v�M�R'�wP�͠�}�}���nv�Z�HA:��va����ݼ�54�h�N�,@�Ag��~��sa��Z�s��Sre�Fei`�ۭ7�4_ԁMuU�:��(2j55�8�x��}N�7t��a�%�ؠh�1�~�a�l��铏^>�F��u�V��=�f'�Ghn�s������nJ����+��
�B\�&�nznE�j���r�b���f�I;d1qN���z.?$y�]3��b�>j�G1��C1�{7��y���9Jo���Q>k�XCv�����ƅnȥ��܌abdPq0s�#����@,bI��\ef���'�������\D��!�y���|sDM�����?�韸^���\���|j\Nh��Z��!N����E����e�fg6tDg�ԁ�t�l��H������Lh�P{?7�
�"���;f��V�t�M�?�c",i�5�[
�@�Cl�u|�>���Q��B�yv^�ZK�<{�y�Ҁ<v�?�8Q<<����hi"�W�mDŽT�u9c�ç��o4k7A�q���H�As�у^f����b�a ��W��Wt��]͟�MK;�29�=m�ÚPm�ӄG�=�]l>yL���%�ֽ&��kՉ|�ZX�)��!��	1۔<�#4<�X2����:�Xknr�y��QZ�t��5H�d4�zbOL�,�s!�e�JИ� 
s���Xh�}�ƨQ3�F��G��xﺁ6�}���2��F&�Q�R�d�v�B
Z��nǏ{�(�Ͽ���|b�y��`1�j=D
���"Q��������q���T��*��ݐ�ں�,���qs�Js/t�7!mV��*�	��4���z�&E�Nw0��nF�ѵ.��/oǽz/��G���E�>T�>�1�]R���ä:‚�����5���;�b�|�f
�_��q���Q�`�e&�
��TI����:*ӧK5��9�~�'z�-wU~�M�o������ϊ��&o�X�����&R:��6|�-�������2�hR��|W{&��L���x�8�i��M���O���S%���E��$1<��JS::	���ܿ�����F:L��?�MUM��KaTe�Fi�l�=�q���!,E��(����^-��5!�+��B	>^�O��{=���q�ރ�a��h����$׳��l�1�3�Ŏ��b.��.,�ͦ�m���}���h���[.t��Ü��e��|�=��R�Y����n�: 38͚M���{LD�]t�R�,n�ܔ�B��6�
�U0�|��/e��b�LY�A�R�
�1(��w�E<G~�nM)�r~�p׆��^��v8�;ek'�E��B��2����.��­���t�b&%���-�lms�ku��/��<�IMi�l4�����GS,�B�Wj�N��gc���>:,m����&)��7�&�\���5ᘥz�j���-�֜�=F���������y�,�M�x*OJie~�, ���Wi����Y#뵫��Iԕ
�4z)�vCñǦ�a��!l�9�XW�	�5���-c����8VpJ����uA҇��ɇ�
y
����aY��|I��]��>���E�,1��6���g����Po7#��[��)�Q���^UFQ��CY�c�:��%�Ɛ��h�v�Ou�d
I��YeDt\رR�m`�����S�O
�a�ku���?��_��"��L@��q�nnDgS�4u���ŕ)9W�:��e7�F2Br�^�)�O��ܣ���̅�Nhih0�D�޿�s�م͵)��mɵ�.�:�z?-�ɰ��V�@�cQ��qq3
ӄp�!�����$,��]��Z����9a�����LB����R,{�䎰jʄ�F��3�����aBM-����q�j8.�ŪT�8��!-� t�r��)0wt,��Fc:��;�q�|����ݒ��RVe�iq~Q��&�Q?�BVgL�層�*§��0���
���z�ՠ��q�7��c�����[����P�Q4�8�~���
�TR�âS��օ�:��rμ��F3Ϸ�#8�ZR�E�,'pC�qޗ:�A��͞AAS�ц8ȥ�B-��{-i����g�ӀJ1�C��M�-PA��>�#���������z	�'�5��_V`��;��BVg��\޷g�wK��=�+n����4^=����w7|���4��qC�4�ٙ"�M�ͮ��<춷ߐ'�og߃���H�b����J]m��z�u�r4����q4�`Y<�4�}72��q>��b�$�i<Z)���>�'ճ$�'�[3H\�=!��U���}��Wv�V̭W(�.-���V:�徽غ��ɀ�hG�3�pf�͞��������x��7R���Y���ɢ���(�z��1ӳ��a_4/��(�B>��:���s��u}5����!g� ���F�����WRb�\�����y��X��3�E�$A����@%�"�
Lmf7;+��:��B85�V�B�V�'��ν,j�]F�C
�0_�	"V0�ѫ��
a0��d:>bo*��+]}(�)�8�n�@ɓ^[��FZ�<Su��B�k�G����#��{�1��8!U��]砻*u���B�M���Mg�{�3h�%E�x�&=N�M�e-��X��gIîn�0IT0�Mv�5��x��i	Ȯ�Oy���c��C���4�fZ��n�Hu��ݤ�L)졷u�V��M�����=���kT�%q#��"o�܊�)���4L�6�LG�0{�6L���0��A�/����x�
-��=\<r��a��0��K�.���i$��z�b@
H��<�Z��=�a��i���||��I�ةMΒGPY*z쏛���"�,oz�g>.a(b��<*0j'0C������a;#��X�O)S�ʓ��&�4�=A��d6[�.;���5��z�A�W7^o��{^�T��D��(jE�?��%@C�Ef�F���W���$���J1'J��噻8��C�kK'�����.Y �h�
&�94����O�0]��Rq�٩v�n��	�I��̽�d�φ���%?`#+�
��=�ʮi���kFv�Sf9(}�������G�\g���btyJ���}vyp�n��+hC
.����F��mR��s��3.I#ϙ|�j�J���d�ჸ����M�h6���oL#ټ�I��;
�Dl7
uS
��D	��j�2�p0�t7M������[��(F���t/h�a����c��E��.�
���it��`���@k:�_����ڮ�0��m^+
����69�Y��QR&`��W'�d�nG�pg�V�+OѸh�����#��5�O
�lp!�4�F��=<WӔi�!W�i�|���(�n�>���j:S2���0@��Na�mw��)��[����\�/�{V��J#�6����D��RM{��Qs��(���T����h�u6�Z`
=u�'s�Z�����`��r[%��g����22���o��]����|��WPġ�=�� ���a�{KϷ�)��h�oU)�m-�(���Fz�9�Y31Rw]�\���A�LFY��W�pѡ>zј!��2-�5��dj�C0��Xy=��/����~��
TLq�h�8 ��pi����љ,&o#NҲ���C1��U��|FAK��`�<�/����7E�8�u��L�l�8�&[)a��yÚi}|�
��b.j�,>�K�e�!��
FA�^���jL&o&��BG���]�M��&y5{�s�!���

��n�)��+3����'�6��C���0��i;t(��ZA[l�ՆԦ#4v�~���F���}��+�m5bs�&O�l��z�@�ՙw��"�:n�'���9H�[ �jp��Jm`ա��+q��`ѡ�cwX���#��N�*��՚M5	�a���u�@���gZ�0�<�C�$�����HG��<�V��a�<k0GY#���T��x��Գ��칖��@�w��F��x�]���.��Ht����
:��#8j?�ɞ�)"��A4mi�N����;K��m�^�8�t�F��2\���1v�A>�Ԇm�Xc2���P�'�C�b�!��x<�ɜz1����=g`��y$s`J!92@��|��i���kct,��R�Vk8 ���J�(�����ѩ�a�0�+'M1G
J������<��q1Ӑ���s����\�zk��	�[��U������B\<�l�j��%����5��=}Zv����:ӓ�p.�l���9A&���)Grra�����]RG�r=�4LgX�$��Y��S��;����y��6�7���o��,���_Ј�ÌF'�п��i�i��8���96wso�X�I?��
j�A���O�p�M�>_]"}JT-��@���F�V�~U�$����t�.��^l���f�Z�F����\G�����,��{sj�FE`8�	��AׄV�*>��z�(��CD] w;��EsI����tm�+�(y��H��n؄l_��n�L�:�����Of2�yj�>��P<��h˒�ZN!��Pc]g<N8M�oP\EK^��g��ؤ��~���#r�Ju��n	��h%5�D'#�fmE�`��(�CL�(
�c���/U�:�0Փ�
�m�!T�j���n:�]��j��A]ww�N*#��|37�
�J+Ꮟ����q����~�Ia��z��C
�?��Ѭ��.�Y�^AE�	Tp�:��rM�	��c����(����4�ҼI�Ŧ#�z�%\�a��F�����_>`fVඝV߻���b�@|����}��*Tͨ����J�ڢg����X��(���,i������:�hr͇��p2Y��T�_�1�!�eܽY�Oi��5�Z�60�r��%C�i��l�t~�����~��.�U��I���6�J�0*�f���5�5�����1�Ps���ٙ�W��b�#���&-�Z�����;���܌�����1���}|��
�A�ζ��5�Rj����v+�T��n��Y5r�V�N����>�F�~tx�x3�ηtc7���|���a�Ӫ+�l�h�W��㌄U�H� 0���g'#.à���$�	y,����4Z�Z�I��0x� bp��#���u��K�*
���`k����)�av�{:�Q��U�
��<���rndUFͪ0�h�/���Y3+�������T�$��z4kn�'��h�d�@��Wi��h<��e�{�� �-
F]�k�hzq4MG���h�d>E'�S$�Ɍ�@���ɠkm���9<&�3_#���7Dm��K0=���Tq�?
�w��cH�`��ؔ�uRrS�E��X��ha[� L��_����B��#���ul(��Ǒ���6�}���F���*l��A�I��Qj��8
�{}�(�#�ހ�\p���Ja0G��hH���2+bh�|��i�p�E��Li����1�u��Zccȋ����d��$"���$�L���
6h�Eiæ�0��KI�Y8h\�O�>N��t�]|2�«�&\��uF��uՒ�n7���êk4�A�KE)9�ln���t�i�!�H(@u�j�ƽ�<<�7{C���\��L�C�p��	W6\@�Ap���"�uX�����m}UP��3z��`�ع��FPuC�]�"�rr-]b�`N�P/?w��5;�+E�
�W��Ha��$6[����]��>dM�i�G�D5Y-�B�ai�v�AH�D�h])����$���Վ7�����	�P�Vc|�Au7[�����_�Q}���{�o��5��a���ゾ���?咺���HěQh�9
r���.��e7�}cx�Y�~p.�	-v�]�kC�O��g��&^���ib�
��x��r>|5-�mh��3��M[�_��tf�p~����?���\��"��4��;��_iK9�+��������ػ�o#���
�`�)瀼���4K�����&�:�g��q�};��ח�:��������#ha,lQ)]/�����5"ҁ�KU��F�Z���`��3!H]��[̤�!4��n_1X����{v�����:3��k2��T��O�Q&�#��]�!:oZj�]�4b��+
�^����SW)ĕ=�Q"�4re+)��j&6��k1hR��H�E�E�
��i��ʦ�]�z�pv�.���<�˗aȩ��2���|3��$8V��LBg��,`k� ZL�*,b{q��kG�{�Y�"�����ӭ�	Q/e��+C��Z��ȤJV�{����ZQ~k��nx�l�>��$*�׵N�{��8�s��Vd̈z�s~7�[���a�\3a�_�QыiT�y]��nX�T_w�)���ar���E<��
����؛qoy���2���t�Y��;�?k2��ܡ����8Ii)Q�K��F��(:���sED�n��fy�mXd
Nŵ|[A�wC��v� ��V�Gcw	X�Y�`
��1,U�&��޻Spm��܄
��jԇ!��m�2 ���M�����z?ݯ����O��e&mᒆ��-n�PҩU��x4�^�3ui��̖<��F��w֘�+�$�+k����i�f^)�7s��N�D�_A
���5���n�>#��Уj'��<�:�9!�Z���-�D���)�f�PE���]��n̲6�P�ک��/b�ܻ�*�=&
�����ي9֕|�u���5J8��5ԉ��՘��7td�4�2g�E'���{�u��n�u�!)�Iw��k��
�o~v]��=����P�j㫲�)�$I��'�#����j e��g�����N"iVP}"�ñL7*2c3%�j�$�+&�Z@lF��{���LW?�PA$��!W���B�\��l@AP�y1
�PǤ1MX�o$ȝb9��ʄ�F5��8Ѵqt��s�h���O�@!P��DP���+n���#��h5ֲ�3�^,NA+������cC�`s@�Ɠ
i{�|1C'B��眆#!�$i��ċ��}Y�>>@풶/���'�um>�����o�t�>TV0��V,}�}��1�o1�Z�R:]�[a��мmI�Lcs�䶂u�i2�
mT\Q7�a��6|����ת4ѿ�nŃ�e�:=�q�V�=�ǿ�ooh�0iA�

�D����Ɨ㹹�[٩Y����^��73�P=_�a�9J��P-�v+�d�K�� ��ggpN
�̂��%��hX�J^�xd_Y�t��d�
�*(�bh�=1W�H�}3�q!kb�
�h�s��%%ؽ>kp�
]]3��G=Җq{�aM��Gr�gu�}Q��������Џ%���9V7hp��?E۫
r�c�Pk	}�D���|�����>Lʳ�zK<Y���Iq�ؾ�}�IN�=ģ-�5�A�ږ���aD��&e��o_���./Ǟ�˱7����L}&����ë���Q�O�k���#�‹iN�q?�m�;���+o��#��x~�ų���M�ftUV�R+o�8�Z�˛]|$���P��F#"-�qh˹(ξa@W�@O�K�qz&��c1�µ��aCxGP�Ռ��=�<����k�r�d9�d<1u��w�1��-T̹���y�q5[�Z�T����"�l��Z W���FKVH�}��\Tݯ��w�j���rkC���p�� I���k��`�!�u�6+z�Zhۑ+���({4�0.V]�賈�1!F&j�˱��h�e����Y���đM��0c�yk
٬v]�Y�Ԭ�N�1���8�oi��)^l�~2��
MqG-=���l��?љ���/n"T�R�b�8@(��Q����х��i3;
�xr����fmB��Y#L���^�M�!=��)��>�� 3�c���Q�VH�d=鳃�?��ڴ��dz� Y����[NR���q�HEfTbI
�&�:2y�a�U��>b�ےQ�8k�,Pݳ���[��Y��(LC��ӿ��_�"i#J)I{_�p}�rj�Znjȸ|}tٲ�1M�7�=�pf>�x��}b$Ts�:�7Z��
��7$q ��VP����ާ�`�w��&z2��ᚚ	r��k!�;�V�?L�I$�~9�Ҵ���ځւ�
�_��	�hF�x3�]Þr�Vjر*��#y��<C�R#0Ƥ�a��@�x��$��Dl/|B����x$���D��Q��`7�\
���YK����j�l���4⢳��g���B�\����F��zF�i�`���f�&#�Âq�f��=!L�u=:��=�S�g��y����.���:�4��y���a?4���C�}c>�NW8��5�\�%��LS*"��H��DOJ�=7����gP4U�]z�"�D,���g[�$)�W���a.������8.�ǵQE3��R�kg5n��2��|Y��P%P��sY����j0�;u���R0��X�-����$8C�a9� [�I1(��.Q!��`�7�&�B*��\�K��V�d��ڨ��`�V��������JF)��B�=�Y�IM����Ќ�5�GЉ�9���Qt�B_HQ�/v�ߪ�x8\.@��c�Y@	&3ꮬ)1+j�	�y�Z/u�;����E]�e�ȳ Ð�Z�1�;��Xg��@֊"ڱ1v'u�~֪�vO�i������u����r��܏�U]>�}���� ���>�
^����?�,���3��ҌG�Vm��g';���j�P�']��e�ձ��Ɋ>`*j%z���o�yϧf�R��6\��:����ȡ���ѐh��R�O^��t�����D2�Oi0?�v^�<�>�}lΡ�p�~��
dbӘ&�Qs�)���:�bè�!*�}7M����\��!�P���8���%
y3��<[VTS�UG�Ҋi^�y�Zsf��4u�n���
J����,3�`�p�����`��\�4�Aˀ�(����i�Ӣ��,�
��>=3�* R�v�!���gf�k�8V�^@�׸�9���2��ꩊ�r�Du�?���%�;>�4�I&������sڬ88)�y�iT�ڞ9�U�'��@\�>�sC}~&�i.Q��5z9.��Q4g�Y},Ͽ&\��V�u�K��0�0�i0O��۔AY�;p9�6	��_Cc*J�b��/���.�k7�b�����
W��z�w�,hl9=�(ڗ������g`�t𝝓a�c5'�9ldëß_��)�yI-��?�`8ѹ;�JK 8�ym�|'}�a�c�Nf��y\:�A"`��x��h)nD�=#�p�C1����;��fM���-݄i�U��6�)[�&C��|11�7Q<8�V�Vq:��д�ʢ�%;��M�A�eL8]Ȍ���T���u�� g�A�F�L��I��)��z��yK�چ�Z�K�0�ܗ\�[$��Oӫ&Y
.l���tc׌�$�:���c�w�I*�{�FQ齋!����Y�㣽ΰ�4�A�$�gɨ#?\)9/�>�!��/�O:�.�"�Ql
t)z����"@�����}��AɖEY�ܡ¸h�A]��*ɽ�)�Q�<,�/�2���?���9�	�_w��"�56�Ӯf�$zfu�$�.n�ȭ�'�F?��J�
�0�3�!�6��}���'�= ,��F�Cc��V�-(I�x�gRf��`I� ��a�Ȕ���;�3��h-DW�ɋ�w��!�Ɣh��4고�?�m?�z��q4P��Oǩ�H��dC*� ���Ҵ�^�aJ�{�4�մ��pD�J��Xv�{Ҭzn�l��C���f��()��,��C���4�+���:{V����^�?,�����ӈ�X_n�!���?�E\�
�^�qf��F���H|�{)lJb�Ն�>�#��(G
��y�Bz�dE�WeX �\ym�l��ӽ�"���/�rp��O�qxZɵ:~)��c�P�ѕ��W�߿�-ZF�Q'H֭�z�S���0/(�0�)3:-K.e�ߠQ�ϻ$G��.꽘��E�q�z\}���5}?^�G�9�d`��_Z�����X�'Ժ?Ҹj6d��Z�踇�t�z���7�뫞B�}_�=�dS��}F�l�ЅW�n7P�0��c�n�i��V�ɝ߇7ʚ�1�C�����+�,r�
�د�6���!�ڸ���#�L��ٵ*�&&o�@k`��c�]G$�9 ���>\����~+ÁF��ٴceN5hueUD�1�\����Gr�ѳ��qڴJc�� ׶���&Mp�eÃ�,��Z�E�y�ͪ슍ѰäN��ˀN������hG���OA/ȣv���+�x���P,Ҩ]A#��6F�VzQz�Dl�pV��#)�,5L\�P�|q?=Ǔ����S�)��q!kh��Ϳ5ϔd]�Cy�j��e�r8>
-W�1R�}Lu�7��&-�!�;����ň�� i��N�Ũ��ĽL6��j>��q��ϒ�Y�~Ot6���&M,\��):�9��S�Lh͞d2J;��u��H���L�>���P���O��,�D�iTFNyx\4yS�I)�B`'�+oh�9h�8�K���W1\���'=���|23�׊I�<)�ٔM�墩�Hj
W؆'}�	�(S��Ӝz��h�����X񚜸䔵[45����������Њ�!z�)�fso{8�Y�>8L�+3O�< 8�����.�;J��� KO��yp�Q\�fX͌H�m��;8A;����Ϡ�f+t\?�ʇ	�)(�,fw���T�ׅFi4ƔJ��*��p��g?R��<�`��\�:��˔1Cb
�F�<�����;�|�Iă�u�Og1��X�c�6�����N���&�G�1A��\�S�\��8����lب��68Q����sf�	mXM=܌m0�u]�mݏ�t��:w�e�f�V`VG<���ZEgw/
�oT���Õ�i���8�)}F���d��M�r2��@N|Ӝ��*l�-.�цfRP��(I�e���dUh����U	d�P5*�m*��J��pG}]�,��9n5M�'������)���A��.7�����n���=�I�YGƓ Nhຉ���l[A��|AX�$���3?/�PtA�ESZ:ts�D�<���)E��ث9�n�%S��	yu?I�@��c�?�҉��#�w+��ڻ.�^L���N,(�S4�s��iR�~1���掵���غo s���h�y����Ą�1�+&�9\�'ߎEvX���՞�����̻����1j��muÒ|�!�CՕ��9{�3T�3�jX)�657;�Џv�m��^�����"��ΨFc�Y��q�0�MԼs|$���;|6V���G&	�[�"��QÜ���e�1m�]Kɨ��c�eD=0Ef���
b��J9��{	��W3l)>��
�T!�2�=#
��6�Rp���P��*�a�{��nM`����wk�iT�s7�"E��.�
M���!0��-_��Z�۠䪆��x��0'b}/ח�����U��%um 1c�K�>�K2��k?Hs�x"����j	��<�S;\��9Qr�b2<e�M����S��x$��WD�n�žd�
�I�ŶsfZ2?pѥJD�(�ܓ��3�8Ւ���-��PjpVO��iT�MG�U�r���4gT`��!y�P)�6Y�r����������M�f
r��%���KAgඤ^��lb�{�O�`AL��*�(2�%�e.���98d���"���i6C����;��s����u����,K�l�>��c��9��U
��Zm���T+�pElhV�����a�3P,�q
�5
��ŊG�pLtz���{#ɩ�17�^���
!��ɐO���Ti
tަ�*�V�ۑO#�JY�xl(xNu�>���r��;$O�P,6�TTk�7�ΓZm�guV1��x��:�y��f�,�(,�,`w�ZEQ�0 ���?yj���h��b��dC	�8GjOM�d�S�f��5v�F��}Ө�5��i ���ͭ��I 	Q/3"��?��(��NϷ�ξp��̣�tڋJD���il���M�5���Fein(�	ME.]a_ä(�|���.쁼E�0lI���v�:ݸ�E���>-ڝ*���oi�of0��̤�LLwUZ�4ӧ�ј�,�w�:]�f5lk�D�_<q��tx��bϽ/	%T�އ"�%L�xLm�f�¹t���>�P�_���=��F]�g������L�$A�:�	�����4;��(�G���`h"
����	�f���N�K.�������B����8��9� ����f��!���H}��
��,�֮4������
�82&�=ᴟS4���[������ ����[2DR4�f�ez�(4������S%�l�$��ף��D(<�i��g�`��o6,�ɏ�i2s;�������x�З���a`�fa���[�qs��i��C���h0�����t���j�eu����.쀷t�1d@"u�o�i[k*�l�tqA�yA�������d?i����4i�z�z����P�d�����P�ղ��{}�fCŁskl�TI��
��\�J`�R��)�h��-�Q�wD�
ށ5|�3
�\�{ t�Ƙu�Ȫ�
iR�x�_�-�Z��Y>�s�7��#֐����`j�Y!�۰�T�X#��Yh��Hnٔ����[
�S7��@�U�i5�s��
}�H1�aJ��:uX�*C���"Fuok�)���.�^1q�֥�[�ưn���情�l2���&X��C	��#��"�ЁN��4������i8��@��a2Ep���:�f�&4L�b���Z�:=��|���ic)��.�Ͻ�髐*.���Ӌ���q1������琉��N�N�L��K��q�����Q�f8�3 q�N����P�Ȣ�9w�;�{&|d�R�g�YS�>��ӊ���W]u���p�
	m��w��(��4�>���6޲!7~�$ M�M�F�a���f55�|R�N/����{fI}������
�2�{��FU��d8 Sn��t���8�NEn��BCl�1m&��I-�fE��#<x�Y�\ݮN�f���P��$�9l>�Zy.�:Ƞ	�Sm0j���T��
X�)�k��m����`��@3g�r,5�Û�A@�F�NHM�I�z�����,���hB�Z=���&�9�W3(n<�n��w��u���k#�Oh�O�\�Z�Ħ�����DQ�)�Q�,c:������&
IM���c7߁ǭ%��m�.B�%pz�'~�%���CO�A�a(���a�JzU�K�zq�֋QR�iܮ������K�5�a��ͪlV�q�����ٍ UoYv:�I��(Ŧ�І�+&�=MU���Q��\&ךKZ̨j�&O2R@~e-8�6��ڱ�}
0��t����MQ~ɋ��̸D�7�j�a3D����u�ߚe6V��4�ԠY:����&��|4RFS�Ȝj�w�V
�T?��v�z9�H�A�NS��|k��tv�R4_���Y�L�f�!���E*߾�3��u?�8��	�v�Ǚ�go���G�{�Q�����|?n���5Mԏyuz��=�췪��}"�:g��1�}C�
M���[R�I�e�n��b��'��
��VQ��w��T�]�~<|\�"��f{���Ӭ<*�$:��3�\/��w~��ή��[y��ldȐ7���i�e�|2y�*ٳR��{./����#�#x3dn}�|E��d]��KD�n�F/��~}%���8���53�;����vM�"B�15��,h�����տ~��o6���ߎ���~C�|[�Ygp��%g�f�b���ѫ��sf�/�뢟��&ٸ�S>4"c��Y�o��u^^��j�2�ӝZ�W��h�aſ��1#�'��/�C�$s�܂Ξ�W[��nf�Bfm\Q�k!��Px��5��x��<liB鸮�/�eT�䘹��9ꢦ|+x�[Pc����P�tf��1�e�e�C�1P�FC��m�A��å�r��y���֫<���N�1.�G��ݲ��Ɏ�����U���Z�Я�<�݌?���a�cC]��b9s���uIF9h,v c����<�=|���R��.X��Щ�f.�R��l0'���m�Z}�?Ԭh�D��VtP�W
��pԥr_�H����-��`�uKXV�)�{3	�c�@��55s �סn��Խ#��!���K':�ޚ�@����f�z��.^���e��P
Å�(��D�y�]Au���ţ��1�>�����|�'g���c��v�eњ�84V�'
t�n�˺
�:E2�7s�h$������6��K�Vmnhޚ
�q6æ��bA�#Y���­��S�"<� �4�����H�c����
�.X
�k�4��G&���rid�~b�妛����{P����s�#N�L�Nta�N�3�T�Je�;JM��=�}R�@=a$AN�RgK�Fݮy
��:�JN�nP#�3�;C��ִ��Ů8��8:�ku�~�Z�t�+Ukhls,����d
�H4?N<�6<%���9�"�2h�<`�?u��]���~dri��hwDF��t|����9lF�����d�����A[
_6���ݰ�z�\o0f,Ҩn��SǏl�4B�v��W���X��$�MfU3��)�,K������)����̤
t4-�9�<�ؘ��[f��&)%H�w+bip2�:=�Ή�
@�a
c�������cw��Mk"S�ղ�`�:0��6봻LGge�D|È��5�~�p������h�G�f|�80�z�^ ��E�V+_��=����b��մl��{ANM�9LЋS��
s��M���RP.�)��+7Íg�iv�=����@�?F��%�hV	=�J�L)d�JT
2v;�`s�s�_5��T/�N�ki�?$��I��}\�^�y��A=m���j��(	�9ǫ��HHp�
D����L�s?<�+&�?��{�Z�}�2�Y�0s�{�Zq)�l;��/߬!�nE����A��Y�i/�:�®��4KK����k��-�>�x�~��"����������y)S��Tji@�dhQT��pB)��dz6O�Ws��>3ϩ�I�/_ŭ�X�?E_)����;��0�oiT_�L�co���ɵ��D/�e��w���x6���u C%ZF)��gy9�D(�����Vd�eͩ�h�s5z8�4.ɝ>�ϐ>I���LðP�,G�D�Sݘ���j�iA��l(��!ǭ@�)�C�DRo���<\����:x�sou'W�83nf$�KX4�s����)��0�h0�h���F�����A�({�����]��s��m#�C�)�����
56�
t�������X0MDn0!���Vme,h�XC�JON]S �%x��%9�������>�$��pA��mZ���Di�F�fD��l�U/n0j�4t��ȗ9'�p�.0w�;����)�!#�8G��h���D`'�5��x$�t1PT�7��w���N2P)���Tjd����l��lLwvό�U�i�k�"h<Cf�Ŏ�ܧq`K8�
W�I���@��(�\�;�c�6Ϸ%�ߒ�u�d���z��28����`OS(��[�dW��]�Ι�ωΝĮ���F�����1�"b(%��S8{9�zgFe�W��b�4?ˠpg,�5t�G���]b��y	� ���(�T����7 r���C�A�cT�
˭١��Eu�'X&`���B�a���q��l=h	>G�ah��ĸ~�@����-ڭ�S�>rA���P��E�9��:��,�L���Z�h�,MjԌ��UKS� q��f�Mm���z`�gWi�=�6⻺�͈�w�ˋ����I���5���
�Zj��2`z1�t��O����dz$/`	N�z(�dBs�R�(�|�4AWU�3�<�Em(2�Zl\�O�j�CڙN����Z��B�͠�i���}�Z�B�V0K�`��Su�����؃Ռ�f��ju.��ŶeKtˢ0��,�Q9(��#�m94['�+r8�Pհ�LI>�\[�K���S���ҘvS�ɂ�EU�]Ӵ�Ԑ8_�e�2T�:e_M������$7Mr*���_��>��+��	ճ�y%+┱�nr�F�s�'R7��#5�C�u�B�4�B���\N��䂉�ލ?r~�:�V�o���Yל�
ζN�/Wz���t�����6i�WB7�q���;�'�C齸��9{�74E�a�!k�ׯT~�� �Į��O��Ó��
I.�P��Lh��Qj͸D��4̄�p�@���=Q���]�w���2�*��g������+>P�q�s�y�jV��8;�`�c$�i*�>^����i=։4�ʈrTL�O�x��7��;��c���PF\�0K$�i��X��鳽�"[�9�ϒ�=�V|�@�~��w�>���9h�ݫ��}���ih�9'J�T�z��������oFI��=\�]��X��|,��e0'i
�\e���(����!�36uz'8�W\;����L�Y�=Es�Fk9��p��p@��8i46�/64kZ�|٭����z����t��B֠Xd2 }�6�Q�lg͌��
(�Վ��`�s1�кQ(S��?��4a��4��k�H�p���KJnP
#�D�/�S���jR�-t��5�B
����3���������7���Dǜk���9�ޛ�4�"B�4! B��K_A쟖4�-(�z4>�TA��)E@�ق~�g�	|H� �ihBB"Vф�47����Zk���s�}����n��g��s��w-�wխ���t�}4*�ԥ12:��'��&	*	&��E#T�D�Ȅu���Y+�M�9���(��BL�1��<I��n�P�CCl�OT�9����)REkj�w�JU��zǏ���)��/�S��I��L������Z�lzaMP{;f>��{e��̯U���5�5�'���A3���E�A�}FAPɲdSnj	2��(��4�&dYap�˄�7@@�ND4��F5�OX���Ɔ���Z��oZ�\��h@ᵀ�.=������
�M]��Uʷ T:�l������͍�	�+�W����S�ml�(�^�d�Q��%3��V�p���i�� q롽�&FP��&Ɇ�D��{����)-�E�{T�d�����A�deɊ�B�b>���!`�D�f#P�JCZՄ�6�<W�b]��F�Z#���p�o�� ���
0	HОR��rV�mC6��;+h��I�4���ka�WT�FM����Z�� ��=�T9V�K�L/f0�i�C�~�}0�B�ּƔ
�h#�Y1R�E���#B��R�ư���i[�Nz8�9عG;���'�<3�O���C�2�z�q
�N͓$�(�Q��ύg�چ��z���RA%3U�p���8��WՆ�s9/3e�b���aFv��I�2�cD1 H��]5�VU!B ��`a�!�HkNw�io=
�)�����4X3mVyM�:	�J��������1F��i�]��P�C��d4Tnbg�"�����9��Y�;I!���e(���3�z�OC3
�u^�����&����(����
9�~���YX{ޤ#]4��_èt?޳�و���M����⢚�:���<��ܰr$��ƴfnS����gO�k�=�"u��~��qgU�(Vx0 :xvIe��N٫D����6`��ˮPzg�����'p��n�U4n�b44�ܲ�ex�0���u��LXkJ��&4)��)�ܴN�G�T1h��⽀������w>�E�����w��j����	�w��u���<��XbsD���f�"#ڝW���L%�Ӻ�
��={��16U׊���wU��~eV)�|*��-b_�O��~kb���N�r-��n�!��:Bn�fH&�g�#��
��gFM	�Ȫ��3�%�PI^��D�t.�
ٵA~�s�O�����;���
%�Q���T�G� 1U� 0�k�{��v�?�"�9v��tѩi��q`Uqx�s侺z(5�t@������b�{D�4T�*�[r@|�)�eN�-b��ĉ�܃�#�V@hM[c2�7�dj����Fsc?6f������'���ES�
%Jf�2����=?%�•Pm�D7܀�{3gs�@��I��bO�c]�os-^�eJ�/���g��&�6E,͆����Ae��>&�:�3��T�+�3|���p��=�a�*�(���ig�[�nA����VJv�s�ɦ�\��+Sy*��p�_��&Z�Rc�n�PL�@%�~ǫa��yD�h�"s(����#L��[uʃ5f	�:)DSh����u�n�
Ҹ��0�X�*�4��&�������4�
@/�_k���z�j)wY-�-��OBɒ�j��bq�"3�iu��5�Ț�`2ykJ�� o
!��׮K������飄�X
o����L�T�Y�2�*++�W?$�]d �b��\�@U���)Umz����{_qϭ��
����)�>�|��Qӯi���G���!-l��^ӐJv��))���ِ�c�ۘS�+�V�ل��$&�~r�A��=�NS�Bꡦ�����4Wb �U�"ł�8�S�v�b68�/k����LDh�x����1����5�~1�1
�Uf�/�[�$fBl"1:յ��|�,U�K�O��Or���5��i2�V�Ck<obԡ�3kY��10��v����I{�*�8lRT%)2Mg���z��z}�A����8A5q-(�LQ\���b�6�f5$ӥ�a�BOK���w�������铽G��jqܳ{r��U�s(
^5���g�&UPձ*x�4�
�UGٵ<��(&�W��+ge��|=���b�!G�,��WW�*���^c5]��NҢ���
�@LkΨ)��
��ch�3��9κL����kW��*��eA�a4��g��n�v��5�T�Ek8Rv_�߼kS%Ր�P���q�ۺ?��Nv�NkM�~:��5z5O�я�q}����!��%���Imi�MG�J�HF�=rN� �D���gf�Tݚ�a�Cf`p���Rq�Nzt6��Jr_��.��|�LW(�C��g�|cj~��ׅ���%?�P�ˑ�E#M����=?۲�t�L���=�X��n��^�]q̓��Vu%�P j;gJ�Y�Y�>{w
��˚�U�)�=�j�a��hN�:�g�;0�Ú��:��v�-D�5]�A�E-"�E}{�ތ�is�w�D�ђ[��NcJ�/��-�֟��/S��w��ǰY��q�0�빑f�Ƌ���	G�_��J�dRgx<jF�D���V�-�E�2}k��0s�M��h;��25��lY
4`����>0`���Ql0�"��6�ff��C��*I�%��hG}�o\�6M�y*ĕ*�[��Tb��V@T���T�(�hm~�p'#@���Q�+��t�f�X�y��P�Q	��!WD�Jq��:� ��'Zc�% �R/؀���yH5l�-�ʕa���Q�/��fS�?ڃ@��ڽ�6��E��� 8�#�4���[�d9Y=B����F��C�$��q�gO���1���Z>�,���� k�*y��=���]���e�sW!�%k�e�����J_�	z�c>�<*|=ٯ��hy�3z�~����������6J��>dl��n�B�B�lIjHu�c�NηYSZ�,�R�y���)�	w4�݈잺M�t���wL���JΜ��!K�3NѵX�"1B�2���(�7�ƶ��Gʛ[O��������5f�P~c�ǻ��v�X�S��9}��8d�8��Z��&*x 
`i��l�J�U�@K��j�[1ᱸ�L�X�$��o@K���Z�"��9uă�q�5��M��Yv��p�2RE�6zl�'a��AI�JѴA�F�{ve� �x������Ʈ=»%�L�PK�}]("�ҧ6�6��[����0��\딊��}��hD�0D��"�s�-V�ޠ��hW\Un��9,ԝT􄖏6�^�%�o>�Ҋ�#T�xr��
�4N@2K�X\c��a3��>G��U�V��T�e�R��Ve[,��������t�x>��+-1���$~��Om�c��3�o�W�R�;$��L#rV�zl�-V7���)�Q���fC��6��O�jh[��3Mr����Ad�zԒ�:�q��Xtq����,a�^��-N�G0p<Q�<@�|ιY��q'Jm�W� �)b��}]�RX'#�A%^���8qH4{��ޙ�b�;Z�4�����2�?v��#{��R�Nt9�o���x+q��8S�����t��M5SF[�,s��aX1��X�˜�͘ǹ�cN��?s�Za�!n�¹���rQ8����ÿ0B��\Z��ƒ4�"�Eə{47x�x;wJ;��{w�F�B���{hY����[l��neX��4?�|1Obƴ�Q2K5S�ߵ���k,q"�;���r�H�n��U������l�)Z:�a��h9���Fu�lx�o��zF7�J^me��!]Z� H�����G�E��iTI�9�S��澽.���X�u��FX;e�	�yz���86���G����L�-�ٖy�뷏�������
wfԄFg�Q��	UW����2�0���7ޚ8�=�dd�
������3J�eF�m�5�e��ʆ���k*��0��U
�ݍ�6_<�PcӋ��F�'ӂ\��N�)�#���i�z�*%�z��M&��=��\r��!�Z%�z�nE≮�;f��J��~��f`��X̨���|��:�I*=���*��N��:m���J�&sl#jw���O�AB����My��Ԙ�\�-�2%�k��ح!�J��w���l���<DJ�#BS�j��6$K4�$
�D;�b4�,V��щ)��{���}�����j
�:c0ؐ)ƒ!�O���	��r�����rk�ń�=�����0*��d�s��g�oO����\��0�z��&h��}RgĶ�ݞh8�
�DM�9� ơ�1�:H��"�`�'/&�Mv�w����cE=M��=2�3m���R��8�Q���ҀM����Ջ�]��"ZB%�i-l����g�y_Ag���A��yA��,�_�:��i@DF��@1-�"U\Ȫ��4cT���-�4k=�2{���f1>#酂kNƅڤ��N�LsS�ؘZ���cr��ӗt^.1�5��ֵ̉pe
A
X0�Q�}5؄��C�t@QW�2�ʍ�K9�V]�(O�ߍ����W4�9q��P�-k��d�##т�s���!�@�k�:��'�h+}�,�Ո�7k1OjuWf
'Ga�A�s!mP:�6���70���Gv���.)E)�B�
��ك�
ōt�XQ�i��B�J�AV�q���
�0bҵZX�Zr�TD$�h�HP���M�R�f�߻\O�{©��pU��y���0��C�@ok@F�g��7.�gpw�fy�	��Bv��I�
��T���n�L��!U&`Mc�
��I�PN)�z��F *�rA�"�oGZ~f��!�sQM����A�}6�1�4%+J�7��ωF�]&�����K_�^d4��\m�Qm�T���:�=ƒ��+~�قႨ6H�J�_=���J�bә��hpfh�����5�w��t�U�����̠�jG�R>�S*{"�M_�L�cG�$,�2|{��o�����ĭ`�"?=�⦹�1;io^�^��$���s`��;�k�/;|��+�
q(UtV�hZu���\dV��(�veKf��Ļ�uF�e�b�A�f<p�j��7J�vhZ�(��e��&�L��/�!닧�Ӈ�#�L#�q�t)�̬u5Ux��;�D�yљ�����W�w�k2��x�F)SMgf4�i�(�	\� ����'e�&��L-�o���F�qG�_�L
?/{��J}T��J�p�y�5F83q�&N��� h�~+L6v7j�Ȩ�6YkA�MӸ��
$�
l��(Qjb^�9�
&��:5{1�d0�ƤO�Ŗa�_= �}z!�&5�������؝�׺��}u8�#��#��4_�Ԫ�M2�S���qיm�AZ����^�9Njz% CJ��di>���
����
B��t��_��V�l����Z!Pn�'�rfqLO�͜�"Aœ^�.l��h��
�%��:��j��3X�y����W��f����u��<�Kb�3��Z��$eo�R���vl*J~��.���1f��OŮ_�i���_��aR�����M�[E2�3�{e���M+�UJ)n���p0��_�)�ARR#�*Jq�i]jueȆ�Vo{����Z�aM�s'(�4�4�e�.��$&�����Md�zAo��ڍ�X"
>T�9;);��5G�}|�*o�`�l��HC�\�9��Vں���i���/d��@�q7�TW]��ٹ��Z>��HF���PC��I7�~
J���R�%�L���
�e�Qh�J��c��D��ߣA��T���d�>�
P5z1����8�@e2z=L�+� 1js�i����j���˰�"e���񵵈�J��6�w�ZYwg1�+��І)�J�^�w�JA�Ѐ1�o)�X[U�F3���f5��H"T�Pt�/�ie�z˜ir>��(�/:S>����0�H�Q�w�-��-�,���<̩&�@˖��?:�Q�I��/	�'5"a��82E���WȢ����L��}��$h�B����A�T�!@��$�~�t�g����\O�ܥ�ͺ��i-���@��)0=�>d��Lϕ>�hfM�ML�HsEu�������������>���C�zO�6��T�
F��8�w5jԊ�1�G`�u�JSvd� A�^�yʅh*�Ev���L�G��������l:$�}Q��a�����w�
:����>k����>�٥��ۦ/_�Pљ��:�q�\����;�>�\Ud;�Qu�"@�P|	f@�1�ws�Y8k��JO����J)�f�6"�/j�%ߩç9)q�)�TQ״�e�(��$s	��EW���Ø֦�f���a
�^�"�y*�s=6Bz1�|���C4B�u�҆k����{؁����G��"�W�|/[�o��_l���e8��^J[���H����
J��ݺ��w�ִ�:��7��	��/}��]���m���ΎN{��'��]9���y4S�^"�Q�q0�d]Văb�~Tԗ���tiR[=���@�	M�r�A[� ���3��m��38;�^��zR��9�Kw����?��5��	C��^�V(LBC���EW��i>	N�)7a�i��Y#�sֱz�7����A�F�h�����7���혳]��t@.}��q*@�e�Q���ߪQ��#Q��Y���q�s%�R��t�w-���a��4m.�z3��Ҍ#�Ŋ�I���Ƕ|���:��b�cLo�����X{=�;Ŵ9�?��r��j4B��&v���LA ��;Ah���ds3�����ʤ{����}f���
v�錙
�J�v����6p�`t�":z8;�6<����vA�����զ..�\�'Ԓ�P�W&|�0p�q�Z�䫘��Ұ&sJ���6������m��yv���F���f4]��K�$o�[pJ��e��	4�I�O$�8����{��$1E�������})�V[�}-7�T
��V����r��ш	�-�8�&�7z�i�|ʍ��7��b�Q2�z�TE��^�j)Y�����Aw�i���� �ӚkOĝ��y�n��rNenR�7�oUDc�=�[@�p��ɵ�2��乾:�ٔ/:�D��d4/,͙��6���h}���� �h�l�Y{jQ�H=.|B���>�3_8�R����Q�VG��^�%���l�U���?dӰM8�I�}�W��kf9Y@i�	#LGV���݆� I&�h��۰��*�1�h�\gW��Ͱ#b�A�� ѭ7�l�c���Y�N`�����I��X�����C�y��cQ2��̼�:O�&=8]c�SkH�����A��.�~-�;������ԱO3Ēr�p��I�Dk뿾ǝwkb�`�&�gc1�n��K������g�}˺I��fjl4xl��.��>����Ck�,�e�E,��z��펚)�q��Lɲ���D�?Fh�Z�\D��_��#��o&/}���C�7@�Y�^5����H5)��ޟ�ޝ���I2p�j}�GӜ�%:�.�����醁�ϖ朵{f�dT�G�@�=ns��<���`�}����O��h�DcA���O�w|���J�,jG�ܼ����S�	>�N;�y�g~d�Ǜoۡ7�ݵ��?�
���D�^C�
�Zߋ�,��V���X��9̾�
�+Ԯ5%DC�B�ђG�1P�G�B�%�4��E��C.�h�"��C�R�.�~�Q�&��Lr���T��LV�9$n�v%���bf3�>����tr��f�P�[��T�&�T���|zyt{��'L
��z�Vzأz�cϢG>�'/U�v�n�?��B�y�.-V�M{P��KAkZ��"�??��ӂ엡��ce�fl�i�ژ6�\����V%9�P���C�ⷺ�ɾ�aZW��F&=����skC���@��c�q;t�"b����U�1	l7�S�G���6.��D�2c�A��{�h�d��"����@fP�.�h{y_b��̗���Jf��?/Hsp{�'�9%V�QW^����a�I���]T�8�yAw:E���-%�:�YC^�s�	;��c$.�Sq����T�O�3���_@�0�9A�|��=f��y��d*Ar5�oC�qHn�v��1!�+(��
�k@���\˙ԥ�\	B
�5855j`��ع��W��%=���4DQA���7Y�!�Z7�Zk9�j��Mr��g�f>�A֯�y�����y��_�65@���w�l,.ԹZ�Y��#�S�2u�^�Z�{*mw�<BL��zm�2[����c���k��+ZH�!%8vɨ�%Ù-8!�uzB�'�z4	����
8�,��
�y��!����da$�2��ۃz��'�|�TPtځeP{�h�ᕹ9sTg�x��1[�&ɶ����S���0'�:57����ڽFT"�jSA���uŌ�����r��J�汁k��Ϝ*dU�ɟk�M�P٨���oC.�oiO�H���g]利������By��҇��,Oc�er��&r�<�:�:�N�
,x3�Y�,e�M��(�cs��▐'5�>׼)��
F�#�Fs-����	���ukynZ��mӺk�0!\��/LЦڔ�Q�m�0���&
�nԬ��~-Gv��sZ�i_L�q���|��TAux�C��g��A�Ш���&ƪs��,��C��:����A�`���|��j��pԆ+��s��s�53�k�h̀�؂�b10�-�\��X��c��Uۦ�S�A�*:]��Il��$��
�``�)��\��6�)��^?�j�Fyݒ(�ݐ�!�Wݗ��R��ݨŋSӉ<���i�7_�&5�1��@݃�4[{:��F��@��$����l�2ta]`t��V��H����M�l����j��'�J�y��~��_F�x}�}������n4jv�h;w��o��h6,kΌ��>�L�G�)�>ZJ���O)b�/>��ѯ���7�|�>������[>I�[(�x�>fQ�X��iC+ٌ����wG��Q�繴��5�G.�mw���X|��fЎ�`Qj�\ʮ��q�J��qD�v�y��������Ƶn�����G{;ۄ�
�;��߼�+@����R�9�����Pl1����M��foC*n�g�L���Z�Jk�U�:�~��˟���sN������t��ޡ_~�t�fS�1�#!6A������'c��
���:�=:0_"1V������E�4�6;#��Jr�0Ŏ��lŎ����!�^���>,�)�/Tk(��%�;O��@B��#P�5ӬJ�S����pL�<xB�}�ѓ�Vptm�D��u6��G!)�Z(�'Q�h��I}ZW��ρ:Pk�Z;-P�j�$qM�)CܹfUZV��h3�c[-^�q����QY9rπ���]v��gߩ��p34ع`ZUc��{/tqn���E�3�	MQ�n��:�5��C+��(ٿ����X�&|t9��v�l�$ڮ��{؈ǁ�):���S�_�N=�I]9�܏�cj�4vP_1�Yψn�-��\����RM�ӂ����v�i�3m�CRI������Uf����h�zA�N��ʽe��5���
�Ưk�(@G�[��s:�Xw?�3,4Y�W��X�k�5=��1$��R6�k0��8�x5j9Q1��~����+skR�J�����b�{�G=���i��i�+Kր��vNٰ��r4���C E�w�ь��ܸ�ϥ���CC�|(3��9�x�5Wڧ��;fǹ:�f��%;8�il�
D\e��j>nښ8hy�|����n���שJڗʹn�Ӫ�P?al�q����e�2��fS���bh�=;{L8�b�6V�j��7�yY�ĭP�}�X�����$�CLT�7����Cl�E��޲CeO��B��*��7�O��l�K{hM7�Z��2���
�E�0�腜��(�ȁG�ίzz�i�����5\<�g71��5w@L�3��)<w��Y��d���V�n��M'��:��̕����<'S�9&�	��^4,Q\|Y#�����ՕXsb���
FYL�1!��.'��	E#К��OŰ+S#�7��l���}<i~�c���jVd"�c}�p6��g�/a�l@KP3#�Rf4�A,f,�/�C�d�BOZEĹ�b�� 0����DZ�)�����T�]VL��dvP/�y� )(G�+�y��iqubE7gyq�SߨQ_�a�}�i͐H敎���a��M>��J#y��	���I�	nZu9���6�L��=ʾѸB9=L�}��*���k
�FEU��d&ƒ��V�Î�������/y(�[�~�	�LO�p��������'հy8�Zt��al�1<9.�S+.>C�S)�����2�L)��䷕�7�>�r�e(�+=?M�R��dw��4�0x2�c�H�3��w�(�l����]�#���+s�5��H���T�4�Z�à��i�@N,Sѻt;�j�r�MO���g5���t�z5�ꛈ�����e�Vtяzz�SF��/����Boz�5�ۗ�H��c�!����23;����aٜ��:=
ː�5��\�jZ����:q�m���V�Bc8N��Yc}��'u|e��vi���\t%þ.��a�Yьay�0X��"�19be�ht�ϛ�	{�J7� UR��0#�[��!ݙE��P3�n��6S�U��H)�e;r�y�O��+}/����N�T�w��jV��A�ͬ� RN5�x��i\�0mX^o�����A�	n%כ�lF
���q� |f���洦6�F�J��@������l4�Y�+�ܫa��3nh��H�4�A�>[��1�8m�Cj������t�u�|����IS�M;�XG�1@6�PK������n�]^q;�k'�On�f���J�
$�h�=ӟ�N�c��X!����gs�-`ש�#�b��흉�����Jhg��b+Y�<4�DK�G/��O5ɂ���M��5=��>���Bgn����g��<ׄW�;��8��w� *�12��P��+E�8�3�i�� R�P���8JyH���LATR�g*G��9��(���9��b����$Xiz�eV��K���!���ozy�^QYC�ܱv��:�^u�e���R[�L8�}6nh��H%��Lqϱ���1,sr�h��|�s��K��6-���ǚ��r>R\k�|�<�l���)-V��ف��+�]e��2
S#g,����
�r0��:��
���`� �,j�Q��&3@���!4��W��n�U�,#ft-�b�5f��Pet�LoR+t�pc>�\a��Jt���&�aM�e��T��41w�4��t�9DČ�����Pr�ss�C�O�nS�Pe�9��&�# �\mQ�U��],���E�h�F��zmLw�Dg�(���6�4zGH��L�*fZ^֧�jD�YL�I��_L'�*3rE[lQ!�TѢ�Y#���\X����)�urhv��L��N�d�`A�C��(�s/_HȔw�aT�f
Y�U4S~��,���a��T�ReP��~�>Y�&Sm�s8l{�c��v��I'�,|}�:�vEo.��ָ�i¡���h�m'u'�-��8�6����ϭW�[qNp�Us��������f�
W5��@�eʷ��$P���7n�������MŽ�q�>��������Ʃc���7fJQ�P��� ��2�L�&AoofDQ��fC2����eD�%]�}�tP�Pv]�`
1
C�}B�t{M"������U�:R��3#/q�ECjk�71Ӻ��Y�r���ɩ�E�
=�|�"��:�VC@���C���']tO�����;�I�"��_:��`��}���	ŗ�S��?���/�C�Ҭ�99�}L�u�!fZ�Mr�
	���#;�S4�����e��ծ�X��>�)Jst��B�K|��g�����%1�?+@�r���Nd9ߺ�7k�A�9[���mp��20�St�k�'�my?
I�9�`�ӱ���4��X6���Y��"J����`���׌M��^�}l�i��LW(�s�Q~�E'/����gƖ�5a�&�(��P\ޢd 3k�9�)�E�(gb�t�F���i-�XDjE3��7p^g�@�f|��ٜ�%�|zC���S}d�k�!���a\�*q�{�zS�s�Î0$m]��î��ڹ�!;�ړ����Y��
)}/�Lc#��A�U~?{�L��i�̆ܜ��'D1�����R�o\��I�e��oT�'�t�)�|�Z=�����l"	�˃�T�3B�n~����.�\�H�����1��e�x/M�[v�HٕX��T�96vJ~��+$������;[DE��ώŭ+FmY-R������k����+C`;�%=�k�ܵ���Kব(l��H�|��>�*+�Ω2yrt0�M��p��i���HzL�(s��!K�8hA�B�s��Z.��ZA��|c��{��S��KUnBh�*HBm(�����3DGVL1�IN��W�wcYLJq	��zg*N�0gJz�ÈE6w,��Y��Q����	�"����:1��˶�+�xBm���g)��4�-IX����i%�Jh��@���*���?�4+��r���ÇM�sU��Rc��Kfpz��u:��h�!eG5ᶛ�7�ϙ��0G��a��V*���,/���:1O�N�"��Wa�c̑׳7����(%��2�j�塹�5��J|�7�8��oFvL�����R�+i:�F\�	�6�.��]c��m�G��`A=2�����u���_,�
������\)A�l0�u堒�0�9٘�E͌#P�m͛Y�i�%��Z'T����zj�/^���9�R�_���jŬcG��`2 �ٚ��|�ӽ�
��9E޷��f�o��!s��Z�i�5�j�9w��z/v��(�^�Ëtv�l����\ٽW����8��X	n�3�i\�GNJf��G����3�r�Ii�W\}���i��X���� ���htp������ΐ�v���1�Q5DmBSe"'{b8�+�
6א���[�]����B���9]�~ʐ��9��_��~�c�{܅p_2�x���Y����Tt��ȘFuP�=;�:�M�/��?�2V�3���d4�(�d@s��Z�野N�|��2�Ү?駻�f����i�ښ�i#��,�	m���3��bp�zK5Q�k��ݐ�{囲��3=��W��:���"ř�ܼyĞY�{7�$�5�2h��1K�>�]�^8�����|��A���:��X�BLo�dK�r�7	�Q�P���$�������V?4�������:u�v�27��M�4��P���>��|j,�{�fAa��J6����ɰ�C�t
�C僜K]���̩�Nj���szi����K0/K@� Z�H��#wU�0h1��Lb>f���xT?E ��0r#��F�6�d30��xT_�qn+�
]�&{a��CrK{M���e��>��u�}��V@�;d(2�W���3sĭ�f�պs��20º�0m��\r�޼B].�7��9SY<��2�y��&��Q�>q��{}�����5�e��{ ��^u����V�}
��7��I�+�Q��PÔkz��ǘ��-� o��3��gC�Q"
+FK*.�
|y�~3V�T!���Ԁgp%�F�dNi�.6Rǘ���l�h��]�n�J#+c�Q�,PY)���=�*�*�F�qt:�W��bv�ϱ�
j]�'T{�&�@�*^R"�0��>�ֽ�ζ��R�d��~��֠¡7�&�&�����rq+ٛ3u"�`Nap��e��9r:�49s_��P	� Y�B����ũ
��Ѧ����%HCc���}�N��Dc�ӕ}��nl*[��PM�M}4T�c$1�H���GvJ�i%H��]���ƚ�cZ���T�

��k�{E�r[�k*�5\@G=6d��lP��H��+�1P�!��1X��ep�ٕ���\�f]�%|�F6H.@�Qy�y�NRD����@�hs��k:ԤSLC��T�g�#n��&�҄T��i�=Y5�R?5^�%��#x-�̨�������=L'�t%>�ꤚ���jU��KiWH�K�*��
4&I���܍�6x4�{'�1�����֪�1�П�i�Pk��M=��Jx6�>�!��]"{c��d=^�%�����\]�_�T��M|\�(�ތӈ�M%9�G��(Ey�C�G�nm���Q�q.�'5�C�N`( M��4���{���FM,����-�v���(��a���]�����>�އ6/���n��w�7���.�����EO<����{�5�����Ut��C-R�����i7�E)?g=�a��Q�8m��@|��a�2�g��).�t�-iBvv��	�Rx�R�.g#:P��/�,�ٴH��Qu�9Rå:���ߦ=Q�$0�Ie"~��ae����jAűU�!����:�ם�ݳ�k��(�AY~�fI�ЏM��*\8�f��?���'�)��_�]����;��4�޻����x���8��A��~�
���u���F��K��_�*�Ե�wA�;��X�1��i�
�=�sN���2�r]��&Ȳ�N(�|?��4$|"���X÷�;9�9F�K0i�ٙ�g���k��NY�0k*���q\fm4m)�j�|�zO���&:����fF��;��MsA�L�3��y�Zlh��;1ӳ�s�;6ab}"�R�&�zb�}K��J��I��]2�c��A|F�N��'�W^���W�L�����$.�I���Ta(�b�&�^�Yrp2Ձ<7D�3���_75��X��D?�t˘�הn�����k$��̶Z����
�]�@3����3��ko�5�-��Q�7c4��`��{.i��5k4�T�w#kM{9�D��hݴ��$T	N�\3�@5���|�)��=Y
J��H�̥S���qE�k�K��E21½P@L�
�m�>�&4�a�4�' t�E��?�`E�h��},��5��s�K욃�E�����y���f�Cq���f�P�O�P�9��M�_��\���A�~s���ə��e-��Q�z	�r���W�����x��f���H~̈n�JD��
����8�ɔ�-O}�
���Z����M�a�Jʀ
���S���p��t�i��8
�,M��s�<����h��,Oc��yK:��A
}J��B�JC�輩
$����G9x}�e�*�'\�f)�@�f=����b�i��bi����Q���bNh$�B-0����L�,���>cN��5D3P.�Tx�e�각��8�����E!�N`L]\��TZ�6#?�δ�4խQS_��5/�T��
Ptvb�"��i�	���rm\Zk�2�l�#jc�7J�q_�G.�ojYa�'��T�e�V}zD���'��i�B��5�;�P�!󫎮���8۴�Jf�9��D�Q��*\$��R��3.�]9�K��?_��y��u�E�`�\�h-�C��ƛT��r�
jAf�`*k†Q��,s�.��3���f�W�
�@��X��(ۺ�^�3�'��ϖ; ����Y`�Odr�Ė+<��ݴ����2L�)�H?�S�]����_��3h6W���N7҅�?M6�\pځo��>��M��e�7��W�twF� ��h�po�ɝ���+��u
������Wt�Ƿ���9NǶϖ}T4��+-L�t����O4�EL��+�o_Й�-���S�it�jGqI�׽���q:������5��$��t9�%��@L#�e����?��/�����o�3�3�~�y#=�����#M~?�}v�.�>��H���*Z
T�mmOr��g ���L�m�8��==�����Z��_���O\�C��6r_>�j:�h;QHwԌЄ"Ձ��_7����~ؤo��b�\��%]w͒>��m윾����ed]b�6�+����t��;Fw��Ef��'.ߦw��f�7��:3�&��lZS������{1�u��=�����������׾�
��7lS�o����t���(l����#z������z����{������>����x����������V_��?��{�
:zD�����L��s���]y�6}�m:�}��`�xNmŅP��Q���=�^����v�~����s7�矲�Y���w�g���3}�j�S�#��nN�y�}��X��n��ﻜ��Aމ��ܲ~���r�<���v��6G5U���q̃�X�|��!�|=v6n���)t���Yg���O]v�n��X�1w$M9m�9s*ҷtA�-L�ŭw�fܸzA�t�����G�QV�D�"���3��ZFe���u7��^���uf�g}��r��HJ����B�֚���4OЯ��4�5g��$!'���ƚ"C(��̠d��
�=Vߐ`�4�^��d4��;��a��t"�q���xj�n�u0)��F֭�\	Ƥl��iE�&_3���%�@s 4�(�7D����ޏ��`��V�^����N0��Z�>Y
rمX�lX�: �67:
^��b�4]C����gyG����Hp��@�>1|}�����)��9��҉���y��_�V���}U,@�hc*�<rFu�+ه��z�G>���1��8�ʼnU+]�̐)Y"D@��	z�$���[D	����v��n�U�^
�H��ٱc��J��#�$WӁ���hn��O觵�AL�޲�
uN�H���c��>�!�ʛܝ7ߖ@�Œ�xP����U��=�}����O�t(����9u���8jj4\�"�4฾A�j�z�w�$k�]�N��2��C�S�]Wa�]>���f���HX`�ى�g�h�J#�#yj]1J����3Z�^���JM6�V5��!A&T6B7�@t��O�7��;G�.kF4K�̒\m��>���T�5��Ęِ+��J��oT]�4_�0]M�f>����S�����!�:�,IB��B����6�K�5���q%�{�+��,8;�Qh����Hj�i:Z��򲃁��bM.�0� ���c0�"�˯V�&'�F�_�FM�i�&U�$�i��"d�f�)2�v���}�a����C�݅���OP�1lp�2�]
�j�r��f�+������Y���a�5���Y��/���@�}撞��x_���-4�'���(
֚�<T1�x5%���z����C�q`��g��n����̽�o�?z�ÿ&��}��mtw�f�>ō������'�z�;��o���+�B�S��̢j�Ud���,��n�?z�#|�oy����ͻj��n��δ�F�}�m�L�}z�k�BN�?*d�sR��g��������m��^��M���>�v��W��3S���|*Bx���c��f�m9���=�5���~�ϻC�����I����L��� ��iA�E�n�#[^�+��'�	��[L��y��̨���jz�_�Nl*��QXbZ���_����;�Y�s����Dׯ��������/;����+jS�#(��F.N����~w��u��Xҋ������_|ɇ�o��|�io�M�p\�� u����N�|�~��H�~������l,�Tb[�<����ϫ�v�[�[���)�=�?{��O���e��X�6�d��g��T[���M��c�����whM�����>�w#m��f���}����>v��q�%�"��n�_~�}���᤿㕗^N�}@�>�{�cU��$cZǛ���O�+]��{�����>EW�}�
�!��e_nl�i�Mg07z��A��%U�<��9b�gg��&U��<5�3\�
�B%�d��U��fO?� ���^��3�kC�5V�W�%l>Ӡ<������PcA=�G4����>kd
�<��s3�5c�>	1�Ts��,Wxx�g�uƦjlp��L�Y^���V�)��|�B4]��la
)�Q���#�47ޫ���w�%��Z�\B鍍�y�n���1,�f���σF��9jm.z\e􉦙�Qܸ�lF�7@�"�0��}��7E�7a��V���*���V5=�*TK-�P�W��q	
=ԭV�cKp���4k�����6��
�H8���*o��
)ǽe�l�yP�nL��
i+S[g1h	�x׌b��=�!��z0�cPf)3
��r�^��"�X��i���X���� ���^�K�
�K��T�ޢ481���gg`nL�W=h��'OE�������MT��˪����k6Tm�g�
n��[o��Cp�'���&3E�n��E���D���J(l͍,���49R%���l5����4zE�+��X9��P�=��^�m�����>d��ӡX|dI5zW�fΚG��F�K����y�(ɲ�J�k���6�x�'�T�SYM�4s+)�w��k���d6��5�2GuI��P�w�Y=�|�d.)g�qƞG\��<#��m7�_ڱ~����\JM��f���r6<k�#:?�7�*�R4S�ՍE��B���r`��S�����j@������J�Ƀ�^5-")�@S��y��2Դ֞Eq�n�����Z�Iž�����MDc�eҠ�N�M��M�i�qME7q3����05��c�
� ��C��g�*�*���m�����5��/�P��n?��LoҺ����S��_�3]t�7��W��'އ.z�=�g>L;W���8����1V��.x����G��1C
r~š}Z+Ǐѻ^�.����7`�+w�X���9>�M��wD��癷�ٸ1x͋Joz�5�{/��6�E��&h5�U�����/��U]�|�7��/ܡ_y��t�*W;<�cُlqg�J�|�yw�s�Iճ�r>}��7�o��Z���#Y˸���3p����g,��?���9o?�{����l{E��(v�I9I�(G���;ƞ������Y�1
�8/OX#�V���U�+�ҏ?�����ٴ�:��%%�4Q#�Dj2mZ��)�s?�����������H�����*�(�j��L��T�psqƽzz���t�Ϻÿ���K��pz��?G/��kh�ސ�)~�d�:�r���U��݆�ǫ_�hz��C�~ j�P��Xp�xඞ6��%�<��Y������ѫ���l/�N8�C|De�9����~��^˫CM����Գ4 `=rѻd�4���"��Zu��M*�L,����x��v
>xȨ"X=�F��R`iI%6(��G���xڂՕ�,��t%��B<�bqt�;��@	5�0����k#G�Z�u�<?�n���L�
�QβV��t=�L�����Cj�)2��Ԥ�s��U����'1wr0
�l�H�p�K?�>���0j�ʱ5�i��t`2#m6�Р�V�.xy�)i�6��S*ƫS#���l�1�{1Ɯs;���U?핍��-^�!���*=s��g����'=�T��g��/$ �oK�ÊK�i~��ی%:L�r)'�D�~
z��F��u��Q�����cЀU���b
*�e�քQ���Vkfe�����C|�y��I�(;W�'��h��^�)��2`�`,Te�@��iA85�i�a{�xr:��:a��k�<ܩv�n�Ҽ���F!Īp��Qq�����L0�ah��ʥ�����	���|y��;k��p"n�Y�h�h�`-ΈI�̈́(�3�z�Kc���z��a
�ᔺ��{�{�L5�C��e8M�m�
��
-i&-���y����148��t�lLU��N_�fF�r���-B��c�uv	x��2#�P�լ55o�tmh�9��E:�pUd��4SJ�
��@�a=�a��)��r���I��CF�y��}]���8�xЇY
�F)J��3kSy٤f�݉�%�'p�=���zf�4�T�ڤ�d=��m�-�%�Sܠ�.��E�D�����@GA3-����r�vu�!�Yp̴�D�M*��u��Q�_��N��m`X!{@��hyr�M�<
���WKEvSv�>	�����e�e+�hk���"!4�.��5Z�Z���0}��:����u��cKz��G���
��f�u��V�ٟ�g����rR�f5θ0�������9��_�k��~���_u,_k�'3LiE����{�<�XAw�N�ԧ�s��<����{N��z��o�����q|�F����՗��t��kx�J�����u�gù��p�t�J���y+��.��rl3�>}�K.٢����by��^M�y��O��U��_�IE����A������!�NtL���{�߰M:��E���[�?"ϣG�/�N;����56Tk�{��J�[��E7��U}<��6y�65�x����/��n%�ѯ��k�����5��g�䄡(��6+����%��o}��t�����.٠g>���L:U��/y���ۂ������~߯>���}�nZloM��:��/�bF�iG��W>�k�����?N��#������Hq���QSx�e��j�W��p��^��i��¬��c��<?O�6���DO\l�\2LMOL�[߃7{f�� (�����SW�$L�V�4d�1>�ik���!y�
'�S�V}-t�1���m�@��8Ƈ�V~����^�<����'��\�x��@&J��ŚM����Fi*g���r��D���2���l���D�l�y���	T� ̷(
^�*�`�쳋���Ւ��]T=27ҋF��ޫW�ĴCH�^��E/�A�w1oJBo�� �|���Fa�{w�N�ٓ[��=�~�oK�s��ӽ~�nh4r�Z���,�3J�����xг95�
U�{A��^���b^᪡��A5Fj5R�������@�5�f~��xY��~�^�j!���ĚMB�VR��Z�5�[�wU����Gx�Jq1U:�r'�K�6�Q�+��<�%�܄hP���^��r�
S��'����{����zQ���R�p��"�Q$XO[%���?".w��Z���-�3��q���5��Wf����d�f�L7`z�,��H5�J�iqm�� �~����U��iB��b+���z#4�b��kk�Z3u�����[��.G���֡bz&.N�/�b!袙�!��Wb)���ES����z��6XP4s�m��lP�4���j�0�βP�2�̸Dzxs�Mc��:m��"k�y��Ûf千)hY-ܢ͍�r
#�7e��v�?Nu3�,�M��*�[(N@�%W��.@��̨�%#�s�:����������i�M�$ҟ�E�f�,��Ct]�����јa��5gP��`�/(9;mN�֢�k�!4�"�9�����;�Dp�c:=���Ғ��lDH2Ӓ��f]L҉[��w882�kN��8j���|8|�k>��ƒi���;}M�j]���K�M?���"?l�}[ݭ�q�[��T����M��O��{+��=7�ٻg+ō�ҁT��K;Gp<gZ�fNw�K���h��B���?DW�K.Px0�1]�]8����m}M�j���.�����Tx���H.��IQ�����^_sc�_x7z�/�@���d��rD��Wݬ���a_�����C��WhF,�|�YO��W������U�_��5t�?��\��–�cdڍ��e��-Am������;��n>�m�K�ƥ�i��u�4�w��{������Yϸ���ͼ��k�3��M���a��{�_���f:u����p�N����zz腧�'�6h�"� j��xd�.}�#�M�����z�� Bj��k�zmE�2��O��M�6bIke�:}��^�
�2j��̘�#�
���n�ךqJRZ�4UN^F�s꺉2�>�ƄD3��!`�����0r�E؏�C5�bu�-L?�if�"�R��Sɓ4&|��1n�Lq͙\�l�19$N��`0���gw��ɕgc=�Xa}�4����s�k������y���8��Lͫ�􆦁��FH���i׭4�J�v��mP���|NM��U�+���I�I�A��UT���[q��Ƃf�L�Ȩ�?3�Z8*
ݸQ:wd1��C�i�7F�ˈ%燺��7��6���Ln��0
Z��e+��&[����S��)��:��O��\�â�$�su?*����Yޗ}e�?J��*�M�j��!�l\���xR7�59:�j1t���Qs�u�Y}O�<�d����+m��t��5�A%�ދC��Ɏ$ߣ?TC�h�`bo^\ݚ!�C��iX�|�q-h]��i>X�8�:9!8�JH�4��'8Љѻ=������|%*D�B��S�Ҙm��A^
L�DKШ/�6�p5L(̔Һ	�n�M�pU�5�Q)|���9�u�G�2s�h�+���T��/�T��1�)���Rc
ve��dĩ��D,�B� [)�����T��V�!����%�3��l���i�-Z�(�� �c���&�M#�J��XL>��eX�H������Sg���!,�ѬN�B�ŕ����q+.l+�%Ԅf��g���`L�wR�ȍS$���
�\O:ZNe��g���;��g�h7��|Ci�	�î.:<�:@��()��i�n�i��Q5��57��F�B	��7"a���fjqR����9š9�r�X{"��$���l��N�W���W����c|2:;+��gK�Q�w�_Ubhu�C�Ѣ�M,$+N�+�f���3�#�Z�}e{G�f� ���_��j�t��J��VSsrޡ�Ǘ_z%]���t��ӣ{6��=]x��lT�뇶���1G
b8����}��?�>�~��y佧?\ɫ������[�KW�t��o/��\���%�riׯ�߼�s��kn�{�w
=��3OZ���Oݏ~��D݉Sd�瘌&)���o��������+銏��k�x����O��א����c�?/J�K5z���y(B|�57�k_w
]��ۦ«��<�,z�!Zd��_w���/_6/{#��x����o��k��/��5��=�=��;ݡf'f_SZ3p�*C2DcF�������q���JG�Y*!���m4����[Ӿ~����a���k�5)�؀nc�i���V��w}�ӹO:}M��_�����Ow9���x�=mԸ	;�����附����T���y'�&��M���r��S򽏿׾{���^E����"�k5F�F0h�ȗ}��w����G=���;�S�<��_?q�C�}�������>z�T���]�u7�����?������jo<Mn�E᜛;�L	�$�C�Ȭ�;:��/C�>����t��9FI��Xg�� ��P��"�s�tN�� f����lGE��2Lřl�6�g��ƜLa��WG�o	ipވ��e���Ca,:�WK*���y�tڴ�0��Lyi�lM��L�R���,�f�
�ȦD�2����g�n��![ꑓ�Pd�D�D�
0�A=3'��f�v��c��T6�>x��hJ���F���+�G/,180Z�9�lF�;��V�^�߭�=����<亀�-�8�뾻Z��S�mK��-���j�M}/Me�Ś�t>�#S�1��j��Ĺ�W9�q1�M�u'�i��"���ߘ��M6A��ac���g����H��f���F��@Z�
^��:ڛ@S'%��lD��m@P�(4TƵ6����0ƒ�.B�[j��B��,�0b��/A�O攬LԆ4bT����dɽK��IL�ޙ4�tQda#
�� M2E��i����W
�G�ӫA����8[��Z�Z�3��x
 �b����3m����O��­S�S
zJ�F˹��q�A�FQQ��gu�$;�f-N�**��N0F�m�q�3�m\�
�6'Z/�R�[�<ż�a�0>�,�~�po�^g�ۄ	h��Lv|��aL�3HSF[
M_8_�h��ʩ�<#�\�tvh	DeB�٤FO�cj��z
�Y���ڻ�g�q8!��g�ƒ��R��sTa�*G����y�
OBc�[ݴi�A�s�4�ܚ���y��a�07u�#3��6R^csA2}1-��R.L�o�<�Q�C��>���-9aW��N�﨨��W�W���,:��"�݂D,�i��/�Xk�e�K��Y?�����=1���b%f�t�O���0]�䵗��~�͔�Tu�y�� �ʩ9e�b����S����}܁�ݏ����="�\	��{*���G�y��~��qz��k����A�	3���!�_/9���ʫo���'�O
��3��q�;,�g�z��;�9����Ԡ�.�q���{�1�������Ǐ���~ͷ��:������rՂ�n.�o.��&ʔ4�L�V�@_����	'}�����l��y��;6=�"�����F>W�u&���^9��]��K�|�5|��~�N	��q�@vjζ{z�sO;���?�1��O���r�nj��o���G�r`1���^M�������[���K�q`�����+���o�~G�����q+z�I��o��G�]�Kg.N�g�g�zX�����=��������S4F!�I����s��V�;u�]���/ߒf�&�y:e����WRH%3ӁV��N��F�ׄFT���i�Y��å��k<Y���ݏ�w_|6}�C��?���tW��.�m%9�<�ۺ���3w�'O��A_������]I��Ee���u�������<��K?BW  l�	+�V�M�x�Qz�O=�/�s��qrۋ��4��x�}���W}ǡ��Mo�4]��Oѱ�rO�/n��~�����{��'��ݜ�9��5���y�q��7}��?��S3����f9����sGz��#���+�o��V(r֠m�}u��gS��S�\=��)�c+5Pkg�t�98x�@�˦r2���OK�#.�<0�p��0���:G��{��!��r|��W��<�Z^�﬋�&E��Ǚ(M
G�G�H&�Iۊ�h����B�$��d�搠/��0@��pJD
$t\�3C)
�U�x���h=�&
(Ԡ�k,9�R�E��>+�k.�_���X�\G���ѶU��Eu]�Sq1�"�@#�M�<���}��R��8�lj`���&X2�����caAA�`Z������G�D��b�f]�(�CG���q��w5�bd�cx���>5�1Un,�MM��i��Ҹ^��7L�2�Aj�Q�B��浦�&��+s�s���޵4�.��{b1kY">�$�Pa�J��)��P=(���3;�z&��c��>��Z�ڇ��A<��}%���oꖤ
��L�;P+e��7�67u\H�_�lߣBM먩�&վ�{�4pZ�F65H�r��4�\AR�x\<6��za�Ss��G@������ۣ6���2�8Q��k��iw}��Z�`
��ܨa���q�^[#
@1��+λ��`��:��gτ"�N(�B�q��=��A�ghgzPm�}�E�,6�}D�Mu=���z���m�6���񐩙��(�5�I��B	$�{[�YW�㈌��Dl�1S�%)�Q7�A��|��b"F9��5��/��G�Ψ:��UY��暻&�A��v!f"G	K
��,aZ"�B��V�_L���lTZ�<�c#a���H�Y+�T��i@�w��ʚ�T�w��	�����yB�D�:��?|��1���Lx�4��p�<#�1gl�1���Q�S��{[���;��;k����HKd��-<��6�^��
�m���-�z�s/��B���
��%����g�Ct��|ȷoҵ�WC-~�3~�����Tz�o|�~�y�US�܉���c�J���
�;Ms�Q����A�������Ct�l�X{D���]�
��ޖ��i=�h�1�;�.{�	���;lϺm������J�NS=�W��(4���E_�{��}4b����}�}��Vs8��8��g��_u��\�����|������|�_v�g��tz͑��<�ء��_�!��t���1��Nn�S�q��9�%��Դ~%���`Y�)��OVt1��à�IT��l�����.3��hmb���gdi�p5L{��b椠N�=�j��l��}g9}?�@����7�b{ڃf�uGϡ�dM��]���9F���ik���_x�{��oN�kIlz������n(�S�~-�ۢ
d�����
�����@?r�;���^�3�w7
k$�"|��}��ߟ�c�\�25����W��[D�ym�H=�
��M?���ۡ��^������`���-=�������qރ^��wҙ���./�E��&+z�������ra���D��f�+��⳺���((��#j��)��!�i�Y'��i�d0N���)Q�SmԽXjR�f'4�X|6w� �L	�RP*Ku�gr�CRa��BVj����OIA�6i^9IS� *��*��[�@H����CJ�&���������v���B��g��h��I��J�Z�������5�z�����EAփz����4}����gmr��0�B���E��h4;���؋�$A�����>b������^��w+>8@%�qz�#�Q��W��nu3J302�E�g57�L��W�X�i�ϙ��pͧ��5���\����(ƨ����B�=�XH�ۨ�ڰ�����G�˪Q���߇�/�9����5�1QZk3�qMF9�[��1ô�vb5�Y�j�6���!�Zy��n2����q�P�� x2�N��Bhg�ts�ͧ?�O���ж�����{�sny/��p�BHP���Q�2*0�XP�;�Qgh����
�6�(H�$`)���B 
H^޻����Z���}�Z���)��K�{��s�^{���
p��ƛ�/_H����E+m��ӟ!aMu����#�YKA�Z����������h@z=���G-�����p�;��0��q1��v �Y|b�Te�/���Ƭ>k0�Ё���dҐ��&*H�$�ЧC5���^�DD���>�U�Y��4}#���Ǥ@�:z�l��=:ٱ���4N���B>M�I$6�y���<�ʣ$���7vjB"�]�b��u����}�`��P
$V�8@1�JI兀�7tKl�������\�+F���2<�����k;�����I�i��0{�Q���2?5GA�+�^�$|Q�7�;�|_��4��!4��P��7{��:dsJ��Z�"J5�*�g�p.T�0�Z���҃@s{���V'�NG��gU�b���4�g��׳toM�;uOejT��;8@$)]
��:���E7A�QR��W�y��<kO��t���wҵ��T���7�&�E�	�NuM2�6��V
�mJXm���zzf��Z�w$�PꅰÎ� �� �N1����38.;C�&``�$�n�U��y�XR����4���!*P�=o�.c���H�-��k�v�{�<�X�������ɴб�b_h�Xh��D��C��$
>ko. �j�kO&���@�{\��'��l��}HzϞ]�Ȧ6�]�om�ߏ����~��ّ�#_�=���M��V��n4 N�^�jf���=7%��}(�^.s���.�E����=]�/��j��_�я=q�׾.�G{ʼn|oz�V#
H�)��7^�7\�A�*…���y�M�<a�׾�ՇD����;:yf�'�[�}Ş����7wU̿�,�=kU�q�\�f�!�:H!]�S�~_\'�����*怨l�pc�p,J�E!{4�h*�Q�~Ѐ�l���;ʏ�3JL��4��LC&	�^�7B���5a��=&��@�,�׾��ŘY:����9�^�'<~��W���4���oqP�Hc���_i?�./ޕ�����c��K��^=��?-�UC��g-:KG��g�Y�lwHwQ�<��
[��{.��k/O�O�E�I�1��~�Ś���v�	�PMaK���]�P�J]3�5��Z0��]����)���98WH�N��E��v�J)8��OB�v��惘�O$���>�f��#=��]U��$h�W3�Q�+�k�#��jzn���>.�>�g������{�ӄF������l=a�TV%~&��TH�]ub�)I[�;�~o�k�����gM�Bjf1jec[����QnU�ݾ4�mz�6�	
Aav�xj��֔��s~
p�Y�GS;M�|�B8>e0M�a1Bf��m:��W-tA�ί&�kic�H�&;���)���mG�2(�m���k�ܧ���q�N�m\����iW�]q-}6�EoĞ}�mB7�,��,���d�};�#��u��|gPM[�|e��yJ��+HE����ضi��!���Z6Ҹ��q���^���Z��n.m�k�Q�v�]���=Զ��n�5��>��;���h�1�K��׮�^��%��}�mvVK�&fW�2��P�K�MoM��|��3���k:����?İKRI�E&�k߻�c�*�T�O�IJ����@��g�NQ2�B="M�h7��J����	�I'�Qj�?��K�~�l�5�h�;xW��mP;��D��`�#VRh�nW��-e�sZ��6/ً䭓�7K����{���,ݨ�l��d*�|�"@E8KE8�J~�^��a��z+�.��
_ޏ��q�X
a6n���s5<�IQH�䃿ŚXqc�K�>\��W���c1�щ2�G�)Y� �]p$�;��)i93Ѥ-É��b[$Ve���I�D{�͂�����k�.��[U̒(C�8�Fx��}��~��2�QR[�ֺ�5%�O�
���֠ʚ"�ZפQ�X�U��7�#�+}_z��*����:��3X���A7�	*
 ֽ���ӏd��e��י�p�j�(�8�f���,��@���É�K�=ۻj�2mLLø
�� �.��y�F�l���@��Ƶ�*]M�Y��<��⭥t���:]�<�)�s���!^�D{�!:욀#��5E�@�k���ʹ�� EA�������`qD?�J���}`�.�9��� 8b�LUT�h~��:W�sX^&�8�w�u�u9���N�m[���A�"�o�ɷ}�A�������<\~����N�~*�+����_ox�����B�=P�
VF��o�~%���IE0�'߸"��4�ק��N�t��M�
���3/����ߑ<��4���pD���{'1��C���4gO�|P�YO���~~�3�䓸�f�[�7|˛���5C��#\r�*sR�7��w��K�'��b�P�ޏ���,4���T���>�%["��<�!��4&�8����儽�6��P��hs�+�H�f'��:?s�큝孴wv)x�Nߒ<���O�O�8]}Ŷ���\|�V�]���|}u�5��t��{������O��\X0�2��i�
|�I51O�tF�RAnV��,w�w��
�j�.�z�ɕ�m�+�� }n�㑕�s>z���6Tp����W��:�О>�x�	rѡ��7�vŏ%9�h@a�y,
ڿ�v���+�^U
�fP�ųF׫Ng*�/��A�?�1�H��4���x�B9���ͪqf�D�,��ߦ$	��(X�+;�^� y�Dm�wxJZ*�U#�6B�~6;;O�@0�U��Q����=�g�+�
�8����NeȨ�M4
]�Dv�Β��:�V�4<�o�Zt��Ƕ �,,��Hn�s�P�#P�,m"�K��P�|�`�\��1�Pe$���/a���5�#�s�H��D����F�<�7�a����C�~��ꦭ�T��4踈!�Z���eԃ���1�hЧ��(���T�6�����|��K�أ��^\g�q�h�]йc�`�.�����!X1�V��34pw�6%�x��b�x[��{sb�. �[j�ť<i�����LE7K�_���c�F�*e�]z�8�r���%I�B��A֖D��q\e���M���J{�%࣏��!e��S��TTh\\a���ph��!�<z���.��n��p\���z�vmްXDM�I
L�|,��J@Y"��$ޫ�L
��vT�L|"v��>WX�
��!һ0��Zd�|"�E�
y{�K���^Ge��x���A7�%~ikbD�A���W�L!ϫ1;65F(�$S}l��&k���z�L�
^
~X��$�O7'��*5�'�

8� �Ǫ선x{���W@6�E�
�j��g�<0&�C_6�L���<���3.-��Y��Z��t�@<k}]!5�R~i⽽��Z�d��̎Х]å�"M�wz5O��4D�cЃI>�U��e�gt�qp��>5�e1x(�I�]Ò���|c�>ij��֠��1­v���7�5�ݫ`�rʭ3�Ly�٨�k�{nB���B�x0�.�����T!!��MGZN9V��Ʃ�+v&<�%\�>G��+
��Ȑ�R��nDӄQI�v�0&�X� �&$z����~���@ڄ�(/�W���[K��V
y��hL0<�rs�޻��;���#�r�;Y9;�7bU84���A���D>��O�i��a�>I��;�.��_����3>x��T�8�8>�ߧ�v�ȉrgM��dU�d���|g�{<P�W����c��߾�c�N�����i,}�=�2���{�~�?��LIVJ,�̻�+_{���M�Hb_W� `ع4��~c����umJ���JF��]�����<��c��>+'���w�
��z~`�m�Zo��"'��ǭU
�M�ZV�0����.(���r�o��iO��m���֮\ۢ~�8B�?���J���SЫ4�Y�������D��5S��W�D��:�%m&՚@*�ˏ���,k�����w�y|�y?~����&�n�"�������ׅe��h�cI�H'#�JBd��V���@yׄ{��C�
Q$ĕ�:�@Y�Zz�գbj�\H��7w��X�'��hJ�o�%�H���)�a�Z
p���8�.�֠4��$ ����H(�p�p�
Z�<�M�'[��#�����uY8�t912�Y���~f�=��B�7]t5��S4�gr�8��w���k̷��M9G1��TVRtM�~��HGPjB��l���h*	�.\��%��ln�D�U�W1.���B;.bJ�A3���vR�km���љ`Jh�I$G�.����p��87��J6�fD:�왺 q�▮e��4�z��Xshd#��Ɔ.p�]��Z����d:'n*��bpG�a�g��)�
rcm��&�sbP�Y��nOn'�gDq7�ԭH^��p���x]��F��3PgTϒƈ���S��6�.�R,)���Z��Z3)�$2%�6
�|����2�6�բJ�h�H��/1�x�`W;|�sR�jjS�g@'�H�[�h����i,-��u[_���.de<IW���� ��ĥ���*�J���w�
�c��\�⨙�[��!FΊ�R$�G�@K�E#"���{��	�x���̄�r��\vuj��ަ�s&ˎ�T7d�T���\��E�������
g�S��>�'��9&�
��(�ϐ�6�c�T��iqt�XS�
�Զ���^4=g�8��Y��CH��P��P
!A���YF1�/I�ۼT�g툁�n��-̯u���G�T*���u�5!<�6�;�����:��V3b�Z�'A��(_�x��R�R�36�vk�ʵ�:V+���Jf�ҩ�MS��Ɨ���iqX�+i�Z�����"��H�\!Tp�= Si^߬X)=rX��g0�?�r��F1~�m�@�t�Ý�<�*u+����4P
��*�U���ʉd��{pOV�X�Rx�*F��f�U�sSi*����sn�|WΉκ��������El��r� E�b.&FK�	�ܐ[.���Ow��?�����Y�t�<�'�{�}�I�>�[���0�z�zٟ�:?2�c	�!�Y��"̳*]�ݧwa����O��G���{��_�ωq����G%������*�5o7}����L�J�2ķ2��_R��z�ta�����P���+RR|��s�.gV���=�PA��TQW�)�"�[�,�S�����^���A)��(ruڕ�R����.��3oGguR۳�U�9I�s���+_Kᩴ�PS��`#-h�M�r���h�N}�q�!y��9�
��s���?�-h�9��t���R�Vl�frd{����m{�����E����ߝ���~6zݳ���G��l5z>��6�+�#6��SI>%��Y�T�M
+��7D�y���XH�������*���1��y&�m���t^�tS(JT�Q�/#�&�.����C�~��a݃]A���gA�ߒ����	^�;���`>L
I�\QEc���Q�R��U�D"+���c1[cF���4R�+����^���H��z�>h}IՔ�;�l$U��h7�]�Z�
uO�3
[;(R�۝M�꺆׼>I�p��
�O	�Ӳs��gZ#��#$ƹq`�;z�ث��Dm�Q�V$�b"�hn����������y"�	�}6H�mT@�5�kz��B�P2�4�m�����Ģ?�9C}�4N�)1�j�U<��5�M0�׭�i��Z�:��in�oQ��3���c�D.#Kw5�J���J\�`מ�S��9��{�3�5Q,�p�r-f��Y���
��9ַ�;�c.��/���^��w��~��!��0�g�Ŏ%�h��l��M
_�:�J����^��j�3?�r����e�)zVE�G
�/%�z�m�Q�Fgr��u%����D9���qL�V�^��XԖF���~�֡x�A�\&�A&Βp��2��T���٫��e�*����*�*���O�nlQ�h�X�l���_��%(�8����A�(�]���
�<T�j�"{������)��4��$�f��U�wL�-?�	E.F�.��d��xQ/%�.{B�z0�%�S���j����B�/�<y��֙O"
�ǥj���j5�%������u�T��1�����}���r\�)?������,=�< ��ʄ�v���8�,%+?�fb"Vf���;���-��������X��h�<��4�����j��K��6y��X�km��9��93���i���n5�5���3��&���P-Nׇ�財���CQ.�׭��R�\�M;W �٢j��Ep�ϵkG%��}�V_�tk��,��Y�@�V�T����9�O�D�G�,�>����<�+����y?������L�ͮg�8ٛ&_kP�,���-��9*�����s��ɭ�'���dP�C0ǯYb|����A��&I����Ώ�#����_W..%���&�̅27�tV�C�����S��~ga���m���L���d�Y4��kiͬ{�o�_CTJ�aJ����JVoÓ.��K��+��ܟS�@dU�/�Y�C�9(��
��Ow&Ј�����[ùJk6�����ӝ%���P��_��g@��-�6�p\��V����.e���q��뜎�`^���U<�(J�&�m����1��md�2j]h9�����q���B�
�Z>IR�n��2�Q�5�Y�R��ҳ�-�8
1DS+��൹�k���n�^�Bެ�iqM9Z��
&[�:��iPc�{�`��Q�|�sU�)XU#:�i���='c���)-�zn135\��4�\�Z�H�����
�>�7��⠏��M�	+���Ƭ��6W�;M�YVޤ�v���A;nT�&M�ˍvE�#���3��>K6����YW/y�F�>��#}1|v^�[
��Z���U�ZU�k&T��,��%:�-�p���"OCU*����h���R�&�pq�L�S��A��=�6��]��w0e)ڛQM�U;���ܾ�cgV5̨��`��Fg�eH=�J\2�8{�F�d����b�d$�x%��	�Gu�{����?�He�+&N�-@��i��xcj�a���T���F˯���VHS��f8,+Ȇ�WZAP�n�jW�}��g�Ҋ	��$�٠
윚G�%�A®�!�������J�t-����--�cV�B�Щ��
D���E�[�$q�%ҵUW��%�4�N�v+�M��5������!�����:��MbXV�H�5��E	<(���_��Q��F1��>�<]<G��� �:��r3��a�he�7
�'])�|�P�i=���5��t�S�SC����1���I�n�4=G7�eL؀���]P�p`e��h���{VL�	����@/�M��5?�c����3�ΎI�"'T��]I
����NT-�"�9m��.�I��&��ʂ_:/dЮj��jSM��d�h�-Aڣ�?��`���B"=����`��CV��2o�U,��U�g�g~��v<�QX�z�+��A��p�M	+�V+�����O�<s�w�|���ە<a5�ٝ$�z���~���7=nϤ��> �ob��Km�u�q�u9|I,��#$H;�J׶���2�rYl�V��f��cU�B��|���O�{B���GW�rO��D�v��j��Tcg6M�þ��<���N�*rb���/\��Z����$����y�[�/�CU/"j����bt�9���+X���5!���蠎 8���,��	��,�����k��+Rd}�G=�t���˞*�bgnpꭎ+�ꊽ�෼/�
��*�PqG|TY�<h1(�Wk"�սv��Y���{<�^��AL��	"f���&�#���f�;�u�_Jsam\�2�L�%w!��7*?4��on.TQ��gWTF�#ʪ�[�����L�^�=�׉�߬(n�C¶��"a�ft��UM�p����A���=VN�Gt$��b^�B��,�{���a��f5Xx^k�'�V�M��lU�w���@(2�I��"�*�R�����Rc�ۙ�C(m/�t���Йw�W��H��v~9wC�gі�+4�"i��s�(�����ޝ�v��g�TA5�Q�^cG����>�
hz����*pXS#���:u����s�0
�"A�9�s�ހ�asܫ�G��s��n�Sc��k]bvJ��"�(b1�F���ճ�r�q�$��1TL^�ѕPp۶�.����y�h*���9��0R��S�Tc�����%�.���}r�lz����^/��S�\(���2/'�j��r���3E�8.�A�nq,����ڿ���ɑ[��y��� JY�=��,��v����E���g������񗣉?Ֆ�a�U�����\�`�X�\J,���;4�S�M�c�y�9B,�8R�b/CW�R�p�R�F��|�M4��J������|@��d_��i�]5t��4�'�y�ڀF#1Wө��F��*~��f�d��R�i��܎ݹ�x^�:��+�O�kC�ݺ�F��H.�;���s��D�L*>ڎ�"[���Q`�TjJUϊ�m����|$T���0��QM�H1T}�Y��̍�v5����n��9��������#���j�d�pr�^��*L��5>��-��a�n�V�{��F�`�dHr#���a[�h[�)��r���<~"�zdA5�gHЎ�����NTa7��%II�ֶ���9e��S�%pWr��j�@��O�:�Ty��1���:���=;���p~M<�N�B
a��k��?g��Α��v�<쓰Z,�*�y#^���ݕ�v��Aa��
�.���W��2��*�e:�Xy�����-Q���N���A���U���S
���ܙ����V����m�:,����r��H�e�E$�	ܭ�֩�w����;���HxZK�}���?�Dy�gv��I��*1�eJ1.'{ԉ��K�dS�u/O�����7��
��<�,(��l
a��K�}#Wc��5AH�t7"�r�_
���ߺLW���H�ʹ��"���y��ĝ0Wt?{�����x'��kuS%���N��:���a�9�V�T��g���.�G3�_J1�p�nr��i�s.��^�����?@^��/ˌ�	h�&x�P1﵂���f����T'���it� W�;���an0�A܇?������|��2��N��['������s/����	k�{�ް�®�n��}R�}H�O�;�8����=�쳨�i�����G��e��
%(LV,BWTG�����
VV���ܲ������G��#�T*(�[A�X:-�U���m����ǎ��	˒/�S��޼g+�B��1�e�A��2�,G'�b~���[��H�N O�C�z4Q��O(��'���j�6h��B�꬐���Ȋ�h�C�,�o�8���\��s�R|S�C��.�; �R���,~��B�*�{��Tv��KM��t�����S�E�{���BB���]�>[:-���s�.0w'�{��+��p	�􆮣����2�b���@���]�6tnZ#�e%��7Ev�{+�C/�W5��e��%p��q�voL'���\�ɣ���"�N��4�S���O?VCX
u��
;�>N��T�(Lз*�j�_���dRSDVZ�3P�n�t�5�S6}��6���j�����A$���ȚSN�E�ZUp�n�+cP����omBH{����� ��o�qt��JA��
�=��N�M4s�SJ9jw��!��<F�sG�����H�z޵�D���\�
_%�>���v�[�j(/�dP�R�Z�����٪�Ԟjd�i� ��ı�+�i��8UEX����@�܈�ð�!���K�r,)���į{K,u�F2�f�RY7�=b�1�0yn�ʇ0���kjUs��k��j�`=Xp��N��	ꌉ��;�Dg��
�:�7��z��QYu�i�k��L��%PwEe�[�!(�	�"�
�6^����Ds�A!d#,�h�9�Z�B���ă�RǛ��������Z
�E��G��M�R�)k&N����P
E0�cH�6	*��u.a�`��#Eޓْ*36(xv�@a��<SP2�|��c��Ȣp!����8E��N-e"+���5�!2,q��eF�q��J�4���X��UZ�Y K���Q�����+GF�G��i�V��3PL)6�P��ލq�$CT�
�6\]I��(�}�E)qK�0��|g%�)�Օ��{YM�	m�hG�݊&��ϖ2�.sA�8� ��j��"p�f&Ś
�?��"O:�w���3�G�v��n���Nɖ��b���~f�ѽU�d��`�����ʺ�_x�7��[���_�H�;}LX��x�Nͬ� n����ްg��.�}�~��w��#2Y��TҮ>E�~m[~��k��5�4��V�=�������rg���6�E����v�<�j�~j^�Ӊz
��T.���	�>�4y�K�ǜ�a�q$��c��q�}��?����{���,r���.4���Z����b/��G'K���1���{5d=���r�ʄ��g�*/���(��e"[S�
��l`�����\iNo���<���<���+�<�쇧*j��!ʩ+������-WN�J�MXH!!@*�17��p��`�����l����~��H��Jg�B:��Ar�h2
���sٺ"�y(�����Fr ��5��\o��Z���P�E�=�n�;��K���&�i�sd͒I1�{�X��5STa�aX��5�@E��PL�K�<k�jًk���i�$�5�ZI�Nb�|�,�B�K��O�;Ĝ}�͔�C�$t�P����2�GZ5���
tFS��{ Ƅ(���"h�95ϐ]\I���~P�*#)�QH�Ρ��+
Se<03�E�O��}�yRD��l�ʍ^�^����=Զ�v6ڕ�a��i����vD�=T��i��ylj��_I�:�gk�L��6�H�m�t��#u�Ϊ�l�1W�F���h�N�`��p1*��m4�Y��Y4 Hi���I�Y�ѣ��Ѧ�����_���U(�"<E�|'u���r�z&�О�����r��H1k�g=��v��E+��B���=6�
*:ԮW�$�3�8NQ���.]H�K�k��f�o$�}�j���}��^7E����rXj�Ë�Bz&-���w%�����-�5�w���1����,lJꫣ�����aS[����1��1�킔��˜
ؚ0�o�=\o��h0��V�=��c����[VMI�2�B��g5$��$wK*ɜC�8�c��A�n�~wC�����u�ͣ�Q���\��Y�]r���;��2VܘLU�6��¤6�!L$���"��HXj.�3gA�!;�`X�Py+G8%��w�à]5�(�!q��ޏ!�S�YV�@���	�`',�H6�ڱ^O�# �b0_t9YJ�\�S+dz�����*��
�\����3c�LŽ.C��hg8e����k�'�����ю{�x�FMOX	Z���s��"y\y�ٗU�Xw�d�B
��
sU,t&"
V�*#K�7>-�^��ِ;���uN2^�������;U�æ�����Z�)x�C�mb
���C+Y�]���B����Y�2m���Y$[�� ����Ȗ*1��w�9�0ȳ5�_?Ha�WN
�[L� ��M5��I;2��\�Ō��{�|��J�98U�ebd���jQ(!�"^�V�9�w�mXܾ��v��q�w� v	��}���\-�n�U-Zm�9RW�H��}�WRt�w7���翈T�F' �����7m���: pg�"��������^֤��t'c7��y毜�d5��k��?�߼�����b:tU��p��Kc��:���CO|ž�x�u��E27�V`�����(/x�"GgŃ��
�s���}�J8�~�Z��Ry4*����1|��c�_~���(��*�x[+j�)'��#���O��^z��:ϙ����0&�ח���y� ���#�w-�T�n�,�{?a!_w�L��[i?�/�e�Y��|׵{&������)	�qC�6b�`;���\���9�Vm�\�
Z��\(���i��X�!�a9�����s���?�+�֗�y-/{�'����넱��=�uX�_
G����/<k�u��|����~D}�I1�@d��[)�}�'�B}O��;p�i'�Vۃrp�xL�	�����5y߇>/�|����|�������H	p��=�7����ʯ?�[��D�귯��)|�'��P�i��mxF�[l﹯��j�G�J��{��=��O�؃�.�9r�v|�6f�2)x~I�#�Ĵ�w��w�����~��Oק��A�C�F��8�2��>3��k��6{�L�ԓ���b�Tu��n���:�i����m�����Y�=�RL7�g���J���<����en�+{�*z��b�f���)�A5A��*�t�QNu O[
����p�)R
�֚
�8UTs�{��~�T�CQ�o�CiV�P+�ɖ����0�ӏ�@�X�
^�y��%d�ؙ�l��ECcdžś"���E�BZ*�ϩsQS�V.�{X����ҡ��@�������<dhnU�i��
4���+��M;a��B�66����q�;vv:Z�V�1�iV�M�w/Z�K�K��fpڌc��͆ZNB�lzˆM�i*c�)�4�^+�?�gts�f�B�<�&%�UZ����Y���A�4�hҘ���‹i�c
��VF�D:����o@$j�X���p��D��x.V�J��lB 6�(�b�s��GX�T�^�$-n%���u9�Kl�}��t�dDm�B_��P���Iѩ��|��Ի/��)�}a~�vL<��R��[q\`�w�/��&�mSN%�T�e���zӀY��HV��cSC�A��h����
\�.5.ɮ�O��2�����M�r4�z4U&*d<��L���V#����7�r�	����ZVʿg��淕q�RDy�slB5PO,����e�P��`��r�UĒB�]Lg�=&�
&��¸�uZ���PL�C����Y��z,8�Nm��3oׇ�u�糡R5T��BY(�dh�W*���$8|����'i0O杺�`ySQ\� H��8��k��g�R�=(y��Xe��U�HC�,>�Ճř��?l����/�.�Q%l^D�*6,�1B��W>q!�C@I����R���dXv)0%aV����&�-�
��l�48M��z�}��\�$:g�V� ��*sXi��'}���;�S�����3we��/
G�)<�bQ{\šş����~N� g�y����r�N�c"��	��I^��O�Ӟt���/<�l�ܸX^�'7��D���Ӆ��~D����9?�m*~t��~�R��DS�~�'T�}O��q���'=���Ĝ����ݢJ�,Hy�c7�g��V��G��4a�8rZ��B"�W��W_&�~��rBJ��-����?z�<�;��ݿ{�ui��w;�9U^��O1q<��9�<K�\,o|�Mrb��v����a��<I~�g3��]o��񋟔��I�w����������o�����&�{���v!Dn޸A~��>]�Y��ɛ��_��z�
;X�+���GϹY�+��ާ�Jc��y�|��_NA�m���9I~���w�dgpL���8�"��CM]:Sl����\#}�i+9��?y��8n8���[r��N�|�(�>�$��ǜ�2���_z���}D.KIk��z�cN���ٴ�֤V i�����a���<{uŠ���`&?iL���/ȳ���=_���q9�ԙ���E�I�ºN���ҏ�Y�K��	���_p�z���"�n���>ű��vr2I�t��{Tc1I8��Ƈ�}���c��=��w�?�~��r�Ex�
�̵�E�;��^�y��˫�}��3�ٙkxƠ�Tw$J��[�X��#A�!���\�61-��%��ӏ�Vx���<��PO�A���q
ʥM.q.�:+��7��Fv6)&i>�H�9_���>i�u0�&�1x�,�wg4��ɠ�V���{�ɶy��
�W$,��{4�Z�����A�x�ƪC����#=`��X`���:��R.4R��h�@�bk���+4�w5�`��q�)��!�����0[p��;�j�&��N*EviF5�V�k��uVO4A6T~�3Z�u�h�P̕�.̙H���A�7u��p�n4?`q���1�^���rlR���D�L�^��(��3�M7�x�l�h��
#�'��/@P�m4)ŽoB<o���gd7�&e4q�'ʜ>�L��X�55��AUĉ�R�[��(Bj��%�G�:������o
i]�j�6P=�p��%��G��Mc��V$��V��{c�C�Έ���U|�X���d�N����D��U�ǫ�7�,�a_�Qg�m��U�Ջ�z�b��TX�/Wx5�(�[WY��/��j1ۛ�m�%[�cLs�[F��ui��tzu��� &D���`I�)�f8؃�Z̫�7e��Y�4{m�"���u�ZH�����Y���8q:��-�٨�"�1 :�GหL1�h#��x7nj��he������	o�薪2�����ǒ�T�+��~�����ڜz}y"�F��T��C���TWh�R���85'A��N�ᐈU�`7A�#7+�Սv�XAg����,�D
~Đ�Ğ4�\�r*uϢ��X��G�3h��ՄP{Ÿ��N;�8���-7l���y�|�A?�Z(7V��"�|1�։q�%�T���c)�Do*�Ѹ����������	�Z*I|�����q�*�.��~*�s���j~=�'ϑ�m#���Z�N>~��V���r�\_��.>����:ȋ~��o�gB����0�v�+�w;*�W_��s���o��N:M�{{��^����I���IQ�m�G�/^�m��:����%ϹF���V׵�:9���s��glq���k؝�5�
�ǴP�n�,���G�;���^��N��=�����p�|��)�����_ap⃶�O��
=�/%f�G��r�{U�������?H��
=��)
}��g{&�wt���O=��r�R k�����0
[��!.y��$���c<証���������l�(�w�Gw������}��'��D��կ��#w���O?d_�o�ֿ���N��AajL�?�f��{���KΕ+������<�����^�+_L�v���_�������<��09�h��?�7����^��})�َ��~9iO;)t�_��ϥ}���9[�MjEUн;�L�Bb�d�F��-N�Pi�V�iuS74��I����R�$��c*�'"A�����5��M��zmm��[�l�g��E����cX�0Ф��Z���~�A�]�.�*��RV��~��Jt�B|'�'��	.ȱ�L%~�M00��! RB!�&����j��j��O��On?�"�(fŇ����㙨��g<�l�V�(`��;zN���Ws5��Z�h�1*)U!�¬��zo�P�3ʍB7HJ��e�HĘ�J7ld�gC
ً�#���k$�2p�����lcc@al�z]�(|v1��/(,�>�]ꈄP��IU+Jf�Dk�^����M�[=�Ug#c���Z1�I7��qIw���Je�X[2~�]�=�"[e0Ն)+�ļ�-G�9�a)^�^|�sʱF*+U��p]��O�-vsR�cD�-����^7����Q�1���`��%��5�L)R�&W�2�t�غ�91�־)��
�-�š��Qn��^��}
R9�S��y�0�/չԉ<O�����G���48�l\���Q/ϼI)Zcƹa)���(XU�s�6,�~��QE�Am���[HP�	��2�&ƥI鬋���"�C�t������}�]o/9�ag�Aq�2�:��Q����(�[ukJt�sIk��
�烅KxHo�;f��ޮ���'�	a���ie���}e\F��Gb�6T.H�gM��Y�h5!�K���d�w��
�����Pģ��p��_>vt�;��z����3�5gSKn�,x^�^+����&+F��T�8H	<�QJ��>չ���Qnu�2�	����8����C�(����/����EE�8?r��]puv+qOX'�:R�I��Zr7��~yyk�����8��4=�jx�^�o�ܾCQ����u�w^q����F�C�!yA��ĩ�x��@$��W.�������u�Wu�^��M��B��y{�4nK…D�~㊴�({E���!>u��o}\~���roK���O���g���fj6!Y���ȟ���|��gpϧ�|���.��~��ҢX�]�O��7���ʭ�{�;�ժ�A5���UL|Ñ������T��ɩ]64�ś�җ�������}�۝�^~���s4Y�A֕;���o
�ۚȓ��u/�m��'��ꈜ��ϕ���������|�m2�q��R��W}M�^fz�,i�Cv�۷�Z�㹉BDK������fy�C��9c�ߖ�B���Jڋ=��,�\4D��q2a'�֧�D(r��gt��
���n�Y$�
�u��TK��D5�ܺ�	�WN�%�Y]��=�AB}Qu�"����HL�pSL$�tE�虼��/QbviA�u�I�v%���]�!:0+v(=�ւ/٩Z}����F&�����wZ�=���k󿥃pE�P�ԧ�<ը]w�(�C��jĀ��<�\n��_�D6LLGf�(Qo���à�_!~WU�O��}ԋ�.���Dͪ?:�5�Ph��_�a�:lv{�P��?:�x�Zg]�O�%�V
����9��u��U�[.��I���`�/4iK�3���#�Db)��w�M��K�Sg��w�XOC�i��:�2(];ifTF��~?k_�d�}�o��J%a{M
aJ��XdL�:�*ƆT�]�=���\)4V��D�LXu�z�U�3��	2���,R�+��֑;���"1���~߮�~A[ؓ'��`���?�����I�3n�PMMUs��r����)����o/�K��G`�^�/��T7�̨X��C����M9M���V���9b<�3��2�\�Ԫ����[
":-� �,C<�,3&��V[�k��i�z�G�o��z�����ճp��o���k�f�	3����IU�5�'��UQ�N+'������&}�d�R��D|4Y��8���ʢ�걊q_B����K�vd_��oN���y��D���m��U��������pd�Sq��,��l.z>/os�&�r��L�}UVz�|Ye�|�fc�aŮ��d�l3pf�M�B~�\��.̱c,"T��rU:X�%�(�X״���k��a�g�9�.�������U�V"k�OΔ��l���|��$u�í��ijUp�+������'��U�A֚�e�ڢn�ފ�顟m�T}0Pe`
8�����`�`����'���[���"˒�`\lz6b�n�t�*�w���6_W�(��D^��G���?~�
i��Tt�^�X����wr��> ���'����—|Dn�p�:�qI�}����fy�˞|�>���ُI��f��L"�kK^�����K�U~�����C7�+��\ ����+�g���ے;m\�'��~��;/�~�B��*H�8�<����/����W�}������G����ϴlq��!X�f�m�2�G����fXӤ�}�����~�y��w]&���ښjg ��iZ�'ʟ����>|�s
�uA��U�fZ��i��?��_;$�W�@co�������ᓤ�=�[+��-'��ƤR���V�S�AU�V������/��t�=������&��j���G;��,Q3�*b��"9>�_��Q_|���͋�,�ج�x�{DR���	.)����@�'9�UAʐ�䤨�	�4eG9���
]8S��x�,
z"�I��3D�׹^�zh`�Y��L���⌠�;��Ƅ�@�	�A<�l�lj��\�V�p蘲KVSŞ	˚�u�E�Z�?�������@RƎ�0v	�kʶ��
_�'^ő�o\�����@#T���
1��D� ��ì��bdŰ(�4�,+�jK-�E��]kYKI$��T�&�Uy�G��V�bCir�%��=��41�-�dB=	�0�*�ηv�?��M��8Bt\c
sv&�w���[�'&��k��A�o���p�b9�
#�Z�Y���J�u�#+��׌vhes?�ʹ���"�w}:���0�k�y�,��e�4̼�g�y�+M���i��3�y��=I{�4u��g��B�˔ɸ2u��"v����kM�l�|��q�a��媽�bV&�5��%��1�+-
�6�r=�U&SQ���^\ؕ��%+�ehbig�c�f��S��[�N�ykQhHL�۔�`�3���M*e݂���n���_�0S�-o�/C�T��A{1N�:�fO�]KܙHYқ=<������~j�*�ѧImg(؝;�̏�2�U��x5Qu�h���Y�h������2?��T*���k���B�:����XҀdr��h��$�ִ��i4�s��μ�s���z�O�_��8�:�0TS�D��>���u�k��@�t:��{��Ms�VR�Se�����aV�.�G
u}���R!Oö|�HP+KF�5 ��:�����P��1�C����>�Q�3�au�+������v>PH���}樚O`���-���A�Lu��psM`��[�49�P��52���W{�:�R�0����h�&��o,�f1�G��O��6^o�oȦ��?)����޶�
F���S1���s����<��,���g����p����o���L�kXC@��V5�57��.�y�'�߻&O���p���ːח��'�Km0`�K��k٫ϝ2�}�mL̑���o^&7_�Vxj�uSQ�BB���G���F�y��_�۝����?!��R��^���_9��UJf��7�"��a���u�J$0��O�yo蘬*~I���q��|M��̏�O��E,����x�\��t�r��<,	Ȉ(r%���u��ފY.+ޫ�����?���'��ӟ|�;�m�z�|Z����T�9�lq��Ur�[���w��(
��ׇ.�����?,y��W���J�g�͚�3��[���U��g|I~��w��	p��{�E�ue�/��ί�|���=��E�H����t���'����mZpe7	!TT�l����r�]/�x�o�}��\$_�P�5��Ay�ԈH���Fz��;}:C�{U��ftg7���D:O�E���4��<N&�^�� ��^
��"�n���%�����BM!����Ӂ"�୮9��S��i�q��RP��N�#�������h@�Ix<��lӧ���,�"^낺,xӤk�P�y(��5�;���44B�u��iߖ~�eJFPHjcd@u	AF��aҎ�6��ꁾ�L8z�]�ZT�w�9���,N�]�A�V�9pdѼ~������eᬫ���Z��Z�tq��Z�U�m�4"���f�D�j��3�ъ^�4/�
6�v0W�O�D�tgk)9]��k�y��I�|!�۪v=���0I���jiD��^ž�<��8��b\��2�0ӛ�12
}Ҽ���5�S��'�;�4"6j";�ϭ�
q�	�չ5¬	��"(D\��:�'�A�Q��!%��Twlh
Jߊ���}�`�i��38�x��;"qe��!�'�͚	�!qT�R"�����H9�lB���.��g�n����
�qD�
���X���r@#�*�N��TM�y�,���aW+8���7�ͷU��7�L٭ζ8Λ�G��*�tr⫂=Sg6!�L��!0�է�	�R������Ʒ�`�9��j�n�î�ђJ&6��u�ogg�gu���Q!�aD��uՐ��vsp�A���/6Ҷ%��`��56�Xڳ۩�z��xAҷk�d���[�8�9Lȉ˾S��8TZ�~�@�y�քX��)�����A����m�2��ߐ�r�5�߰�Ȋ�hˢ���F�M��| ��?� �č��?����Ү��M������o~��[a
ʋ�������x�!D�Ҏ��6t���1�:7�X��,��1U���|����
����M�J7�>��]Zuu��]6�w��L�7*��%[�<o'�v���X�X�^� C��F�`��}�A�R�z�!A��&��y�3�/O}�]�{�����>x���uץ�ɿ#�tI���u���R���<��'���
)��s�����/�|��t�k�p4�1�B�(,�v�M�.�|����*9���ȷϩ��N����Ϲ�b@}�"�Ǧ�¸�.�5�k{��ҧ�^�w�=��g�M���3xFG��o�����;�&�jꞅ�D� P}����M����e�y��<�W�ُ<q��J�|�*y�_]+�N��j�J��Dܙ�p��R�q#W��g|�#���: ���w�w�W�{^��=(3?1t�X�-!��h�~ݦ��g� ��k���g<z�����s�����v7l�;�!�{�Y�82H�Mw�V�+�`r���e�=���u��_����E��'�Y�ڛy�38�J�؇n�K�]�)�A��Y�
w��h|`6����m9�����rו�s����Y��{�DNW~~�(�
(�,�G�^���P�y3������ǟ,���ط���}�|�s����f`�ƙ��z�T�j�Z�Z	7X�U�lR1+�/Sz�H�7R�ѿ8"�����|7y���>0~�{����f�g��Xk�{WiLE?��i���U�Seg*v���&)
�SPQe�h�0��v7��-�9q/�nx���Z�� �K댮�G�%8�Yg᪅��J�1�U�Ec�5��j15�<���B�F�F���'B�!�k6������3�)l���U��4A=��"�YE�c7�O��Φ(u�,j�����CRu�h܁��l���pP����ufE)B�Xt���N^cڈ��QX6���fi�+g���|~���A��v��T�;�����E��'K�U�f~�4辰��k�V�F�!IIډ뛼ov�Mﻓ�X�65)c�R�4��P��p���]���>o�q6I�J�Wk��݋���(aH �J���V��24��l���zQ3�|E����׷ꔋ]	s�8����2��Ǭu���Zk�U���p2��Y\J�<�@�����o�au�4rN�Fi�u��0�T���n��XSdȪD�m�����9H	���b�0���ұKc`���*S�����a��v�/����x��
r��4_(�@�J��hj�`�ƨ�b�z⡊�����M����flH���0�(�b��v������{0�>��8��G0�.K�p�o��F��Q���۷G�ר�IqeI^�*
\K��j
��ڃa)3|m(n�(~�E��40����I�(�-�e�V@���Z�3�a�z �f]�2�4����n�p�F�ye�TV]ӵL$���X�rVX�{)ji��|.{�Ԡ��k1,���k�*xB&X �Qe>
N�ͼ:*t>�QX+w>�HN�3A����Y�F���0>mr�����-�h"b�tm:D���5Q���\Y�)g1%Us�v+XZ��i��J�:���G?����rN`㥅�� ��5T�k�@cҬUA�io�[�9ߛ�f�p�N��1�&}PTv�h…�͖PL�
W�6e-��gS���[���-�l���Z�_o�e#lpN諡Af��;������v�t��\���rw:
!h���`s��租�(�?�s�R�^�͛��?�ʵ׶r�vd�h/����S�d��9ZM�8��c�
v&�-1�Es6�+9�X��/�=�!�Հ����^��|K�Nc��y��]�����NnH�w�yߵ�Q�G�]������&w�|���v���tK6�N�u�f��˵0��4��ľN`_�L=�x���=|��r]w���H�Ƴ���A��lGv��4����q
���I���������Xv��@K����"�2�<,w��:���g�ˍ�-�k*�t�LN�e�6y�a}VV�{鞣���G�7TƯ�,�y��u�����rJ8��Ap�n9�-7FU��u��w�4>'��x�VZ�pS1w*��t=FS:
��o�����C��{�����q0��(�i�����������{��F-����/Υ���ir"ų,7��"=��~(�Z�O��i�}���*fr͐���'�X̄;{W}�l���(o����M��<]���~�n��)Q4��g��1�A�0	�3/գö�ݩ�S�:�SNm�ӧr蓇9��rKN8�&�zCM�S����L����r�f
�9C��r���T��w�g�=q�}��+�j����$�"Q�UT_`B>�`�$o�*BxKܒ٩"���!����%}_shK�m�KR���I^��4i��4�X����*
j�̻��2�zk����g;�eR�[�2JQ�c�(��Zۙ'Nߗ�Pz��'z�k3�‘�c8��a>�}�����s�m���zYK����Ω�]D�h2���-�
�[S�L��}V�7+E��� �u�@r��6��<Q��5_���0�jx��b�[M�u�ş>������̝Ga*�@��9{O�O�s,��V(.%X������Ě�X�i��*ăr��mU,�`,�=-e�Өc�|�M�5����M���� �qM�hԧ��f�#At�l�^�U��k�ȉyW?�9$���{m>T��&P��zEE�ӦM$�8ҍ��%�8�e�����;tNpK͸��2�]��X.��].kn�u��V:楋߁��[�����U�>J!�q(�A��7Ѱ�+��jE��jT�nӵ-�\��Ě����&�d�k�馎x�7#�0_m��<�9�z�i˗p����Y�,ѣ��\�Z��nV�\|�P�Ǥ8q�<g��ɞ��_��Q�٪!^�2$G);o	��\�d��Y�bD��E����2K�W
1�d�U�l ��U���Fŗz`1�N�Bx{���+Ci	)II*�tl�Q�;��;Ӱq��Yi/��Q�QN�su&����[�u��[��&�䬛�w�AE��6�Ҫ�Y�	j�F:�FF�̐���3����|>.8!,��uV�ٹj�0�3qR.AE����S41Q�`�=_����r�)p5X��%��YUƗ3c�A�$�#.o2��� ��:ZGxS��gX�6~��;�re:�N�|��=Z��`��|��Y��j%ԙ8ͻ'��P׫�f�K��I��
�}WQ	W�mr7Ksݰ���Y�)W$���Gn�n0��Tͺ
��l�H�L3��*<�Js4�5}+��FSw��5ͅ�*
S�J!~���l��Ϊ�y}#I��w�^K��u����O��;[� ɇ��ۛ�U�Y6���O=�U���DaR���l!�Dp.U��U��m{�j������b,��]�ٱ[��(1���V��cM�lx�"�k��N���D����7Y�^����ʇ��=�G<�mL�1n7+�S\�F���u��~���,G�֩�1q�F2�9���6�m��^`������)��jpv��`�g(�2�*=O�4�#�
v�T&���߇[��s��(tkp�[A��\��!agp��������΍9[�Q�6PH	�(�*�$}oow�w�E��(���{G((ǹ���W
�E�ֱ�j�كX���1>@4�&�V��x�����ڛR��%�&=����ש�]�J���;G{���f1i]-p\ۏ�d]��Y��W��ܚr�Q��<ǡ1��UΖ�$z���A��jt�*���a_Aᴲ��}2j'{]��{g*���f���D��0򆊂�8�ڈAf+]������Y)�+ʬ�U<O�������eEX��Ac4�e�e_y�d����D)rl��	�g����)-(�J�U���^���5ԲF؊�9��9��+l��r�^[�5��NA�)X����H�jS��r��М�vf'����)����&
�#��_�+�ՅMB����Z!2ZL�l縍��K�b��*��;(z��8&�mdr��(�V�����E+�8�Ms��@�}�L��-���H��E��W:�ftZ�5Z��oc֙�%J�Ie4{�lf�&�J�^-��G�~(�-�G����g����4JQ	&e�~���fj��В���Ɗ�;�� �HJC0q+  ��E�
j���L4�ׄ����x� +��xE�9�b8\4��]k�B��[1B�!H�h=x����ˢ��_r=Gz�)K�{�\j�uH����Ȕ���9q+�
�#���ބU���F��#ׅy�zٝ��c��x+��nH0ɵ��n��\v���**+B�k=4�
*�37�c/���%�
�;0s5�2�/��nac�H�lf�U��
��Y3I���M��m[5�-�'��rC�����޺aa���,bDRT�g1����x��`�(����J��:TTK⑾���E�����;Xb׏zF�;I]��Kv�%������r�J��y��V�DȂ��b;XGՍ�l�ST��J|m�:E�Iۅ�4O&�oG��H��N�8N=�2N����,�eVH��`+���b��.
0�$�|M(mS6w�;�sYET'�U��G�еM7����y�ҾhR�6�=�B���1��h����޺K��<�H�or������-�"5U�T]B9�*��^n��Gu�"�e0?1N��}7�gX�*#�ż�O�,�B�@(k�+�l	��Me�޲B�P�;6�Y��*�����a �-4HF2r��T.���E8�J�>[gm��+�F	���mN:�G(@��J���j��>�����'G��(�X�b��9
ah��� I�5+�I
��y(�O�pX!!��v�0�q-۽�^͛�1�H��C�
��E�}���ﲐ�Β�����B�Z%3���"��]p$�0�
�P�>X�ˊHn���U�P+V%rx>����嵉cF��:G�0�Rǃ^w짋!e�
�]�LI�c��SUt�E/Y�Q�S���xo���X�+\˕Z�e�
C�0��/��aj~L!������b�Yw!��g&�^v�y���zژTf��E��`�3���鵸��z$�c �g���%��U��/�sE[DӰP[4��`/�L�ݷ^��g<o�o��#t�����2r�`͈
|��lb�OᄒY�b+X!L�1�l2C!��Ny�V(���;��pS=���f�D
�5/� �g>���	�Xr�[�'��ݑ&�~�u��*�N�v*k)9�^@�j�5�&��k�s](���)�Xa0C7�Z�K�M�~޳�6��P�uMT�H��5��8�ϵ�+��]��M��,��V1DP�0y��k�ͤ�dIiO\[o�TՑ�z8(��O&�є�U�&R�ʬNr���#ͱ������#�'?�L-��Us��4"���<y�(�Z<����I�$����#�M
�*:���Z��{�3^��O;kj�z-|����~)e�%����fʘv��%�]��(��^�^B��߬��5K�:s�	s~"��CpV��;X�8���ՏMR��j�H3��{1Hs��h]K���feBi܀g<�����PJQy���M(-�e�KSΗ	�24wZdZ� nn�l��SM��Ɛ[���{�F�R�j�WF��c��������&Lg����������y��֎Q��3
2
�Z���O9�xM�d�"U�S��EE�i��b�A�c4@��� lXa�U�Y�sCm�-�'>BK)�P�.:���R;��ɤ\B�	���(�����:6��8Ӭ
�(�v����2��Ikj�s�f�>�/Q���XȣHY��g3�ڝ	��Coͥ�*i\��=�ߊ�͇�j�3��1A�aQ��dh��~�v7y�˘;.�	9I;q�Ϫpjr���J��c�'�V֝`����`����zg���9
Y�cQ�3�n���?F�U~[�*�QE�&\)�	�&�tR���b�qr����3�����0��nX
,�tXGs8���>��z5����˒世-���Gdf���;�@�[5��$��d���9��N��ddU_SW�U��x8I�{�W�&�5�4��s2���|Ԧ؈c����#6�ӢW�=�	/2�s[qCS���똅�s����8��S#��:l��K�����/6��'X�6<8�-L��.4̩���GdN#���or���5F��~^���5ȳ�:I�^�R=mڍ�@�CGHF��Y��s�Oܟ子�ȧ�J,��M��U��)c�n���I�D���s1�57Y�s�n�f=�l
ow�OzS���P���.A��`�"j�EQ
�c��b���㿿�&��@`�1[T�����p�`nd7d"�E��`�]���ٮ�i��gg'��<�z��ST;|��q!�b�>>�N[y��q-+j@���L�ٝ2y/�v��͉M2��C�JFh�Жp:y4hV�ܡa��(\
��l���Y�	
����͖�`Ć>�If\h�.��7:E��e��һ͒��۠�E@�[��d��:��iS#j��y:
IF���*�OR��i�e��n"��J�{����6�[����k0�,�����AJ����|�������z���/_�sC8sf�Z�3[�m�VJ���+�9��L��%�+��?�Z�pZ�������$��9ލ�<�F�X�S������&�Ϥ��Y$Zػ���o�,���q=o�������������G�F=~�}fS����t��A�Lv���s(ݏ�u����W;3(��("��l��[ڃQ��I
4�@-,����z����2���{Ʊ�ۍ��\{��!bX(�J���,�8>�۱�,�6yO����6 �dӘ�����AE�!
�"��g��5�9�&畳�h�ϖ����͑��q�46��.����\Κ�(�˾Q��1�?�aG���̻p�KҒ����� �̪�W���۹؍~�ġ�{5�9�{N��6"v)�-�����8~�CҤ�gKohnB�Є�����q]�ޟ�{��n�0�Z��*]�8��'v��Z��f=�W���z���O!��!���6O���T���1ؽ2p����ۛ7�ZG�R�&g�����a"��>+�S��N=)K��\wM�f���$_α���A����^�a"k��h^w\�"�P��g?��6iX��?W�;V�\@`w��M��2
2������ܖP'-��r�������9���qoߎƘׂ�ȣ����;c�@>�!�nerz4�hTY�`o>���Q��CL�wG��=���&6�K����0����\d�T�@�����~@ۿ(�B

�e��o�z��=��s�߀���_�Ӑ����B\��w澬�Olh;�D!����*
3�5��S�G4vݟ��`v�zFX�6��-1x�8�Z��?d�ZT���Z	��Z:��~CQ����a���{1�a^P�q�d��H��bg;�f�Q�$Ly�1�xt�hNw[�W�0*.�s:3�!��쁴��Y���Ws�1�O9_��q2Q����U'���?q��v�M���)}4�11����e�\6��ݍD���lW�u�й|E�M݊F������s߿@�.�Q�&63:fNo��Μ�b���>����w��k/n��Ԍ"���*���N�w�4�؀P>��o��4aj3���n�е�̜�]S�jJb+y|.�x�楘�&cR���Q��=|.1�m�'�ߜԲN0�K�7i�eMF�-���l��&��4��bj�W���:��n�F��;�n#&������n3��3�_!.�'�kuS��8�4���)q��
'?�zY�2t�E�Uj�ec_���D��b�a�Z���p��..ֳ����Q"�B�꣹S��,�h��߃��&[ʡ��h�bJ3bnЭ�|�I}�HAƐc9��҅��<��`��"�E7���3[��ا�mw6xT�*A��u�c�B�8D�Y�4�h�gB�^b��sמ��1F�]�wl���M��-4ح��l�����3��8�%�<�����'�����UtǒO�IH�u:�������&H���|�#M	c�/|�|mB���N傂m��E���F�:�7�]E�Ƭw"�ڠU�^]�E�$d���6�:Gf��m@}e�+Yd��jc~���ecI�c�bt[Ց
y<�o�r����f�����܀,EŐ�B(~�S�O��.���kK��Y�Z�p���7*T�E��3Q�nׂ��A�k��{a�>��E]�,���L�,���EE����w�h;���%��/��ԗ�(�鑰�qf(���a|7�I�3˘�
Nj���(�}�a_7�b�f�,�4dC�h�i�T"+�Ǝ<��y�R'�_��⾧p�<��d`o�Y�{D�R���w�(�Ѹ���!���X˛�.��᥋��gȵfG�#V�R Fo�6Mc0���L��Z��l�^������hd�h@݋�
�%���IbZ�#�Kn��dgIɸ�T��).�[��MP2�)�xr@}|3b�d�H8@�w)�y�(���
ٜ�)�f����{�g/�Y�=����(�i�Ş"��d�gL�Ύ�tHGИ�_m���TZ�vⅇ4�le�63�����dmrnJ�.R�D�GJBV�IV���Udv�H���E�u���	@b�A%��Ef~�PP���l��~!�8s��o<���T&��O����$:��a��F�F��
{
��_�&Q䧨9)?��yib��Џw33��tM����r���v":16I5<et�k ������3F4b�;$&����HB�C:�{�:P�-O��ͩX��;n�3�{�#��
��4��aڥ~G>�^BW�D��|�m.�<�c.QD���{o�O5<_���`��Έ�����!"��8����&,:��!eg�wN1'm�)vV�3������#m#�o�$�s�܆�����a�t�%�9�L�@w�Nx���p�+w1ié�I_��&�G�)2�N�Xq�)�OA��i�M2P��^0Y�޳�߮��4�~����5�t���<�+v�l�ZW�{?n,��)��kK������}�E�Nfu�֑���b��kԏ��f*X�=�6n]Y_8wo-���(s���8��(�^zy@ah��d�@�M��I`�Ue�Lz8�ߋQG��A5j����(��~-r���Lh@�]O��4Q���&֭��>�&��/�'0IR�-&S��poD���3{e�m�$�YW�im>}e��7����+��I�L�fA_G*��L�E��6}Tk�q�6��vD��,�F��O��l�w"�'QG�b�B)�y�@W�#.�'֨�q�Lh�� �Y�n�̄3Z�sVhV��i�d����4D�0�ܽ�΍��
gӳ~I)z6�L=��B[��O4{=���1&�#-�
W�ܔ&=��)�n��;l�ϥ�8�eF��PD>-��Eu)��j
4�?oX�S�՛L��{>5l;dҤ|HNj*����^���%(N`�S� �K$(��r�5����b8�9��76�2����<��N�#���v������o�0�7#�/g���Z%���:{r�9IK�;L���+X��B.a��;�s�}МiW�0�uߟ�g�s
Φ( M����{�uY@�a��b3�	�8�6|�i�@�)�*F��?g�<�w M���LbH���|�j�E�;�:�B���P�A��e�Yb}���
qQo�DViws�4"
�ü��kM�E\o�z��{�>���km� ���L�M��=��.�r_ߎ��ı�x�@��DL˛��G����l|�&�:�� �4�I��{@gg�n��3�Ks73��4'9^���22�Yd�	�p�m�>z��� @�m�Ɯ����YX�O�7��k�p�X��wcW:ٙ7��3^�Ʌ8E���4��������t9睧^��P���$i���`!�g
��p�Wj4�sz�ݨ}^��AW������A3u��oս#{d���Ϛ2�W�s7^�F��h��2�H�@�"�F��WQΒ��cmB�薷�u�v����r���jF���=��4�h��6�j��r�
�ǻ�F����9j����"�մሸ���]Miweߔ͉���E��
t֭��2�S3
j��ۍ���ִ�lԄa���bs���}�u�_EQD�,�!(�o]�i:?5�Y˪cZ[�H�id��H��v��Gb�o�|�މ���]�i�I�}���8zr_����=ܼ���EF�<�jb�UУ��1(�͑���ijꓘ��$�B�����/�!&��M�b��D�z.7t0�ۉo�Y�@�~����8'Vk���%м,������_O�_��K��Bq+䯘�G'�](jD{L^@�ͦ>aA~t�VW����Xr��ٜBǧ�
��R�f-(�-��e(A�{.�ͺ�5�.o�lR�pz�,h8�B�Bc�]I�h�G�N�4�{�9�)�
]�0�Zx�O��M)
��~��̅�r�+�%�S����(duq�:���k��.4;��帝z�u�i������;��Π!z�G4ݡ�0B�w��o�}���K#�K�lG!���P����􁜹��l9~3�\�w=�]h��.��a�ǷK��3x�C���>
z$|���9ɕV(��cL��h�QO%
w7��4��(ߏ$mP�./9�hJjRO���UQ�^�H{<���~V�4�a�<��gj�x��2�Կ�&Nсh�4��j�Qx�\g�A!�ef�m��_YLeM�T�R��U��V�o��ue}�#Yxv�|t!s��Ѭ��B���3���s5���{�����o�&~h����!k�Qw �(����؄�����ӈ�ҁ�/�%��w8�NB�^�D�����[���~$�7P�^������A��x}D�6!В�AIM�Ǒ���^�`
�O�����\��ߗ;" �o5��	��أNì6L�:���=���9�(�2^gE.��7�KSh�F��}E�T�i�Ґ^��� W��/��n��/��d��eי�_R�N��e�|�ەM��<�2S
�8
�vf3?�}��Li�F����U;����a ���'��||�G�d��Z���!��0�	C2��W��;^�w�:3a�ײ���4EE�M�sP{���Ŝ'��|bm�K��Ur�����E�֟ǹ�&�u�Oe�'/�J����M�M���w�O0�A*�koF�;]e��~Vi.���5�Ό���Cm\"a��Ϻ�h,��؄5�M���A����W�HR)�b�ȵ��H��TL�H
eb�=蹓�*�-��͵�>e�B���j7k')�(`i�$��*h�V�Y��Q�u�5Gc5c藋��^I�O����@�6��x��l|53�e���=�3/�e����Mr�Xl�Q��r7P1x�fi�N�U��MtT4��C�i��:��
��/��x����ܑ��G��`��e�s9���5"����0��$6X�n��fy^4������6���33e�Y�3Z,��*�[�m%������|�:�l��Mtj�(FL�~�M"�+�`��
��m���j�X�ՠ�ϗn��g�)b�Ϟw2�Ҁur4���n�;�(�.� }c�[j7��6{�$g��2�x�yr��$
������i6u�4���A��B"��h��>�XX�C�x�?�E��>��#
�@�A[��C:ň�0��*�NY��p�^Ln!i��C'bjZ��M�>HՐS0�g���Z�vg�A�63sf33�U��Rx��O4n��GD�6��m�Z\���d�������(2�!;
ůA����1*p��/�gܒ�Px/\���z�F��Y�<�l�n�1�mN�Z�TXt�0�Ģ�� t��o�V�p�p�a�"u��p4�Յ�Lk�����p�RPL9�6j�g�OJr4 ��$�
��tX���9r-�KeMF�9���BU�O�3���i��u��5f4e^%�Y�%
 �<�pfn_�ɧnJE�d��(��A�FcW>�n@�x<�|�PH큆�R�/m~��%�0�)L�č6���z:5i��vSf@
��)�#\�ɚ&��W��
	P;h!�ת)O�.��i?�r��5��%\��]�4a҄&,��{oCW�C�z�ᡰ�g��S�k\bc��)E�æq�tK�IS���-��d8�& �焑��qN��&/��6
#�Cˊ����	rm���l^5E�c�:82�n�f����ܵy�x%��M�`������Ef�t;g��-x��
)�%
B��!�{
^��_���[���L�Da�}��'��j�<����H�
��dQ��9�g
��nT��MS�:��go�K��>�b�{�mR�A��#t~`/`�ä���6�I���bJ�\|�����W2��v4��e(�`��\hI�c������A�7�@��0$�>�)<U�#�����N����i}bm֓�w~3����O��lFi�s,hA���!�x�O�m-�K鍎?�MKL��g�@d�i2M�g:���]� j`�9�j��+q�P�����oAу�E�k�k)�gݭ!�_7��_F?8$:>�sza9���[�F(�$0�R��_��V�f09h�u��ˎ,�;h�z�c@�'�8��Hr�:�n_4j�I1ԽkpO
;)�����⏻�pM��d�g��QP/h3��wE\숺��o#I�]u��Þ/Z�㿽=f���7��hX�ʀ�����]�%�(��8(���i։�&������A{�M,�b�pa���}
7�W�co2r�A��ٶ/z�8�C��%>�-��F�=��g��s8�6�|�σ)0��L�n��†��a���:�eO�~���ܔ������&f
�vc�E#HҸv~v��/y3��K�C�t��l�?|�dqVf���N�j�fKv8|�fd�]������2����d<��o7I�vkȓ�z�k�����kс�LVL���pa����YW��/T%�M�%��a{G�f��P�9ew{f�G���c��yr,D��Iҭ^<xv<N�#�>�ܓt�LL�6zd=���>�Ϫ&��)���{��ϧ�p����A�EG^��M`��CNF!
4��,�\��b�Z��IQd�9��Dx�߽�LݦV]9�!���I#MQ�����b���:6�}��d�{?�@�MH�7� `gTc�hK#�fS�`���ٝ�x�X(6UZf���>�~'Ė�9��=�lTGn���x��6qj�h��($4�3�w�⥸_`����W�u�����	���l%��l­�����O�<�lA:K4HU��c*�̪��4K�e�[p�s9�F'�G�	K��P^#_=6��.r�K^����S[�DŽ<�5L�<�7��T�9�r�֗z�܅>��v��P���r�f����:�9&�������(*�У�߄�}8n�K#)*��l�=�ɵ�����f���B��}=7�+�^��i�6�]��"�$��3�~�(9������s.��,�u8��a�)^�[�n��^B��wS�M+�2L��Y�M�sM1�DN\Y��͸R��ꈇ|
{�M�7`��~(V�i�DT�3��\�DT��ֈ����2�b�\gm�fJ�0!R���.��Z���٬h�~�2ʅ׍In�ʏ>�S�lG]j��Y�j�M1(��Ь�C�Yq�>��	�MH�֧bpwQ�A�L��L���Rd:5�(�Õ2;NH�k:��?r�x�a^t�F���
�&�sʧ"�1���?&�_@�$y��v$�~4A�Mz�r4i�{e�g�̢R�l�TB��wy7Z�,ڡG�6�
�;��R�-�v~L�h���9Ɂ�v�З?A0U`�%J�:[�~��:�N1X�$�K��g�ɖFs���̢��|��O�4�p��j�zZS6�Y>�?A���f`څ�O����g�qH��>t��x�߻�)c����qX'y\���-(����E�u������6u�e��lX�hX�)o��u��ljcH.�a�{��gG5���߹|G�2����b��J;�~�O�Ά���A�?����{d&�S�mD�!Wě��>�D���ہ^͹�NX�0�����w0�@�5WǞ������c�<�>(��햞x��� �?�"����=��`Ft=���b����	�Dž.o�A�K����W��2��I�N�,Ӊ
�֜qx�9o�t�hN��cQAG��^c����=:^/
~Lni~�a$����T�kB�����z��<��s:�:d�)��L�m�b�z��N���t@�!����vF�eG�9.�����6�zYX{ҁ�_���"2FF�XQ��ke"ۣ�mH��9�{w=ٔ�9�OB�2��z<Xn�9��5[3W��J
��\����3A^�g��G�)���7��v�+�͙��P�c��k��~A	�W!W�Vԯ�u���ͪK�eH��"��#��b���,NA���&��o@՟d墺N�E�HhзOy���E�c��T��2Ů�$�Q��Y�d�4"�`;�}��j��^��
�VZ����C
���@�>]l[�s��|�:
F�h�����O[�z�ٙ2��	�4��![-���cߝucn���I�eQT��"���'~����v���0X\_�=�IgU�NB��3�����i�z��X��|�`�ցe���al^Ͳ�}`��ٹt�UGiN��Rm̨"�{�YE��*��nӨjjm�7t�@��ȝlI��&8���������5���K�fƦ�M��Zu�\VI�L2�	�4����!�m(|�BQ"ì��BhC
_�#(����4){����\��m �G���Lá�����h�5ON�@T�y�K��1�@}�����X�6�5�ٹ�cܝ~3E:�K���u/3�����L6l
���X���"�����)O�9@7��{9]����	lv(�l
\������ct!��(���<����j���E��H'A��^4a��M�i"�⛹s=p�&��$2s�p�4���F3�-��H�D�\�b���8�WN��w�5�#�2�EV�P7��՘�Ɬ{����-��F�s}��ɍj�y���z�)�y�3{R��ZŠ=`3��6e�`�1�i"��-@8նͽ�E�����l��f����*���q'�$�b�)3r~��6���y�y��t�CrWV��۩�$t�I��ԙ�6�.����2�X���	����~H�l���.\��6(q�Y݇#����z_Z<���B �K����{;sX���L�P�0+/r�l~!�����+t��G���??C�#[��n���dxC��V��!�?W!|0�AQ��jREI9��/
+�̛�k/#j8>"r�!�s�j>
ǽƲ�/N������f6�3���v�s�1k��*`�l'Fi�qMȮ�ҩi���M��/4��.�����������+Mz���(n�v�>�E�IE5�>cP|��Y5��6.���v�ɿ��8~�(ʛY>@�H{��oj�z�^�
�(,h:^����K��v1x������N�n�}�+nt��hݹ���Z�AbO�]|�g��ش>��c�k�.���3ea$��ɛe��5�ixfq�S��.�Q’��(*�t�^��0��6��ׇ���y�f�<g1s@#��y��-5��I�٪�0��o��iZ-�i���Ԇ�(��rq�F�_��:�Fy�H6�h/4}0��z҃��}F���x3�e���B��� �X�	cֻe���"�@��g��Y�E�N��5i��S�kvS,;����⽨��FbY��a�����2��M~�yV��iMK�jR��Լ�`�f.���m�������ٻ6s��~H����~��Р̹��<��(�꼐�~aX}gu�biͮ��ƦwGR'�X#_���-��i�MØ��^��9���O�Dy�]��5{r%��iS��ñ�d�8墧3w>���x��&f�n�6
EM��`�����H�V�X��0����l�K�%�����45�;ú+S�3��z�`��m�
u����l����=�%�Y�u�Y��Xվ�!���/�+���(wU6��_�-I�ux��^����z�Y���cZX�Lb��t��R�]A�?�.�wn��Z��%:�:�k�.��K9��{i��u�H��e%&�=�i�_)�B(1��ɍi'��h�4���~��{��ʨ�Aऄ�`�|-����<r�q��)�W꺛i���l���:�F�Y}���Im��
�Dv�7[��p@=2�(���*
^L�	���"��N�/���+�/q���b[��;9NEL��Irg��7�6���n;m4�>T�z�:ԡ��dq�Ք���h��������q���-��~cL���ñ8@
Ku�[��H{���F����,
t+��b�f@X���מQ6�t�V��������.��3�(:����t1M�2�y_k?h�z�x�z<T���~��nZ�d�i-�x����p t�,�=}�I�X %�d�y���J��[���T�/�[��uc.r�7�Z�@�F��SB��;�GS��m�1R�g�e@4s?ѰC�<,��]*��Y|��o����k���Z���(��z{4h7D $!��� �Vi��	wr��AMH��s�ā�v8}x�j�>~Æ����(iqA=��q���L��O��
�|1,
D3
j���,���.�&'ai�Yͱ�Q�빗�Ϗ�+�[a⡭�J���we
wQ_���fԨ�c���U1&α6;E�71(�v��L��2܂Yz��|��_l�K�_��eD�\N!ۈ{���+�
�����_5�9�=�"鹪�z6֓s(Y�Mn";����#�;���.�Ä�g�-�����m�8�ʍs���8���p�I�fk��6:eb�Y��*cЈ��J
����}zVz�s���X�7�m{��p��/�/��>4dj[�Z�
M���@�0, %39���S�!V�}/�B*�r@+ƙ�)dzt;�/M�7'��=C/6u����+ t�����u4���W�a��~t�҂�ԉ-��%R@�
��~r�sm�Ģz�A��4qo�33�`��U�n.�u5���L�@#<6D�̾�>%�Ϩ�n�nB6Z��Bv��0�Z�7�K��\w�Q6�q+�)�@�Xnnj�v\���>����:\��s�N���)��9��� S�@�g��M��^�Y���l��Lƶ�S���A"bv�Q��M["9|'�f�2
�õ�H�%8p�c2�o��	E�O�Q@�y��z;~�nV$���l�ka����@	ώ�v
�@��i��b*��B����e(֋Q=(��_.�r��8�_]�h���*C2F�}��ܜ֑mH�&��bgp(��G�)wl<K���ÀIH!�;U�ʣ�Dq�6���{�̜�cK���v�3U�O�U+�Q��!{�5cH�U1?>_��¯
9��l�۱0�\�������5�*Մ�|v�%8�?���1B��d��\�|�؟Ԙ�O�[i��-
J/�gC�쯺�!���g[��@o��n��
jy��;aP}�gFX�����2�sn�3OmW1����s�4>o�t��Y���<��_M+B�S�'3ənW�Î�K���j�H��ߨ��,l�d(!���%�gr�v{���ס�����0MR	1~b��S�æߴ��ΆO�v���Q�A������OO_����U5��L?r�]��p*��e
��ǡ��~K�6zA���x9�:�I7
�#�u&у��q��{�l̑���L:sgq�j�D}�*�ܬ6��9��$Q`Za�;�"��(�ƀ>���𛽗Xf�&�0޹�P�I
�ldPT�&���S�(h��,vʩO%����D�=�
A�iv; W�����9���o-2�O
lP�QL�nZ^�du�,�Ʌ_��M�M
ŗ��-�>�:e���������;9�2��z�|Yz$[�ͷ��hJހ�-؈��w�����mL�E#	��)S��GWf��KW�����5}<zG����x+�'-��Dz�%���J�G���x���}���p�o��ћ��i���O��qK�Q�BS��NC1��^��t�Y���[�fI���V�)v!�e$Ҭ���SK����i��wڿi�i��z�1�=��
�:>^r_���:�s��U�`���h=T=�6��
��a��b����#^쒾���
���o�������c7�dYz�>�"�g��c��ARo� 	"��Dc��rԱ?���b	�Jq �e�zE�h�vғ��n7�K����}ߣ�v�S�Fo�0��c&�{b��v>�֞㌁��~�)_8 ��ˍk�M��t�?���?���R\�s��)S�5y�^E��v�|����B�{�(v�������0�)f��*,��X�����d��X���:��W4J]9�(�>�I��#�E����PzC��S�����F�c�x
�^��}=��nhx��|�����2(C/i��9L�D������/����{B�P�4"�
&s�ܺ���\����b�`��hP�&�41��QC�Ѥb]A�A���U�"�����Tr1���wJ�2������@��QHk�Κr�R�2�2��Eh�Ů3}�~��v�?�Qؤ}���kgRB��$�0�n��'
z�|$������.��k�WS�c��z�h�(��MǛޡ�"�2�������dO�4���De�`&L��&��v��w��r��r�XG�A�~���,�W����-�}���pԚ�Sr>x�~�d���Oʰ铉��]�ר����:Qc4%0�J2�İ�����;�����a6"Ǿ�ĝ1~��.�v�7�&(����ɭ�6���pk�ͬ�h��� �x�Ϧ�kҚb,L�����eP��%���pԂ�����{�Ǜ��Q�kî��w�Q��~�@�<��Y��Ʃ[�Շ�2��eY�L(;[���0]������dU%�
˕?�y�.���e�Z(0wZ�@;<��bp�by�덬/��{
���#�7L�[g�{����܏￱&��K�N�յ�
|�:Ļ�k�"�U�3��>�aZHW����I:x��^GD�������(�<k�Z)/���c���� �ףa%T%h�����@Ah��_�쩨6(Pq0��/m�Le�e#�m ����t�MO8ο4��B���n_n��b����6"��6|ҕpm�>�)t�U�a?��/�pQ�?��^��y�i���/	#)0�~�q�K�P��Q,��q�o�h/l����j)t�4��׭�\��������of[y��o6�$nE,�>�"���6)��2�O�ѷ��#�[�st�/*D���B=�`[.�2�=ߴ�	0�|��L�c���b�]�Ue�{�t�^��>A�����3g�װ�D���T�Ӡ����](|��B���ݯ1K-��pI�b8����u�a��.�^�s��W8˙cZ�������yR��G=p���c��*n��@�N��f�/bwLF��jڸ�Bov��\�p�����KSc�-q�&M-�5�������h4C�Y�ϖdle!�u�z&�W�����*
�hȫIG��F�*��CV��ԡ5y�6c9>����L:+�F�lI�"�.wRᆇg�
U�'�ֶ��8i��*{���艹�v� ?�}���W����w̶�_��&"�EA�*���$�	����o�'~��=FW��j�[���A'��,�Pq���5�\�D�u󠅴��~���	:N�6��nn��rF��3��@ݱ?�
�`���d[$9u�-�s)������\&k��g�Ѱ"���aw�+M�h�����"�oD�)��Ѱ>?:]v�q��|!��;���ӫ��e6w�����ޢ�P�}�{ n�_ml/��~��sHa&
p����Ǿ��ϰ� 
5j�1�?�|}���q8��.؞r���,�ގB�
�2�a
=n����j�7>�5$q��Ƚ�I��%�.�дn�>��kP�}�Q��w���M���k'�{-RB��|G�$��|/���vfGy����J���X�����]��1A��M�Y�=��F/
g���4���$يT�t�ݲ���H�yi�3������梶�������ȸ���k�$M��p��A��@�ȴG^�n��E֒�t�3$���\��#�Y�@I�J� ���T`�'���^9�M�y��ok�g�cK%Rb�kp\߮�'f�/|ྛ�k��{k2\d�{V��tFC�aX�f/�Ju,���:��N��^�~F�y�d�.����|�w�a��&��҄���YL7F
�~�|������G�sK10�_l�ň���Y���dc���Q5s��I�4���w(�v�ͫj|֊����H���Q�\����n-���fw|7Nth�Dh�+�0�l�g�{�y�ܤ7�K����pEG$')����^��U�+5|z����,��%���e�*kS#���VS�a�)I��J��sc�n�'g��1H�N��1+o4�C1.C�;h��A�ʠ�X��p���I5�,�"I(V՚�z��;�����C��'�g��Φ���u���ZOMC�%���9璇�M�p�l9�u��WN�+}��T��cZ��U�R��

>z��v:���>��z�D=�h�>6
D�|�����iG��LN���Fs����V�W�����U�h��TD���6<��ۀ.Ll`Ba.<�3����{�Rh���l�%X㸛����H�|�NyQVo˘,�0�{7Z��p|F!�Ϣ����B�	l�ke�K^���	��!��|�4W��v�
��S��֮�9�9�B/��B��:V�ch�X��]v��0�~f�5e�K��I}W���U��r��+�,!�QM'z�b��7�Д�����M�#?4���}��a�"�5��mBU/�<M0�Ȇ�*�nvM�9�z��t\���;<Lّ�YN�JU�D�?e�ͅ��&��b��s4=7St��r���̨�=kGߐYk׌=��Bz��=uk;�u�@R��l��L�c�f��dž���g�"��zd�U���{Ȕ�d@�J��TTN�deS�O��l���(��<kS�Q��m�u�;b��?|}v
�삽�]9�$�,#78���(o�����ZO��$��8
һ���M��ܝ�g����LD�>鰔+���~\���qMoj��4��1T�fO�9�wf5�2嗚�ϗ���G3�$k@N��{ZM��î��A���������]�]Ú��‡�`�\c&sr�lE@���U��������w���Ѡ&�^���3�>��+�U�!���'����g�t{H1\�km�E��l�7����o׿fM����<�㯧6�ɒ��OƳD��� �$�Ut���:G5�;�H���_�-B�>��
t���?�_�s�w��|N&9�G���2
`��w�>AS�_r[�ъ5����:e��gÈɬ!eW��`��YT��f0��y>uj�=��b:�6(�c��&_Z���)�Qu��w�`Ь�M�n��~8\g;��Ȭ�&(&D�L���3���hf�iPX������ܰ�Yޙ,�~�{:��Ʀf�J#�G�SG�=zF��h⤡@�9�F]���8�2O���d��ds����8$��p��@]�8�]�%�|�����*l����S��"�m�^����U5�1=��Qfx
%�}k��a�%�jJ���x6MM��+��o�fl�T �i	%��0	QZViB��r�K%����Ve�ˤ���*�b��X{�Ϥ����;���
���w��#���LC��	]L�[�k|�-W���y׉2��Bf�b��n�Aఆt�9��5c�%�13jI�)�f��{����4��f��i���n�;�}Ñu|Q†YtF�7ұ��ɩx"�E��20��_/Ff!S�h�7P�KN˼��I0'r�%h� 9�����#��Q��
�r�%��`���f%Nu�)?����C��db�PÍ��ul�y6�M�D������ܤ�'6�)h?�Oӏ�0
�;)<�j¯�6�\]��D,GVM�@��Is"\>ɀ���ڙk�=qva�)�;��C��&-����W����$e�v�317;ֺ8��a�І��f�XEt/L��ua�����\���J"zp�Iu2�xЄ�%10\���]�٠K�������,�)wS�tzPcA�QS��x�3Ҟ@Â�
gBl�/J�4R�#߶Y'�Wd�g7	َ�iu+�(�"�ZO�Use�;�Q2.�?��}k��}��S�|!�s���;l��*'b�MC���1�P�Z��#
ӎ��m�į��\�+s�04e@�5iԁ�,2�"���dj�K��ը��+WEu�-���B����~ʇ��X�5;K%纪��Dbl�V��+�
S�����7��2�]h�0ly����w<���O*�)�lG;@�ֿ���
��j8�7�(o�tnDI�'�yL�k���Qx�|�A��^��E��( ����>
ҧ��wX���s����Pi��Zzx��1�F�G=����uJ)>�>@�(Zb�S.1�:�����P#�A��O�CsP����h�0^�~n4�"��:�~j]'75+�B��g��o8b�ߢ�(Hr�j�%E��%�5�qFĠ��ٙ�sO
�dH�0�i��N��L���Jݔ�YS+C9���^����9�;��S�'�$���ۖ5��*��4ŝ���Qi�?k1W�F{\ޏ�=�-������19t�>��U0������>��f$�^�&�[�W��l3��%�ã��s�˘'D=2#d��`����A��2��l����lC40�Z�woNY����X�
+u�F�Q��Mz";��c�"Bާ[�U��Af3�M��"���94c�ч}�몚 [�Ŏ%�U���0�����t;������w.v��FT�9eW��Bz`gkL���:�qv�`��j�*�.�.��8O�����X:ǧ�^x%�|��A�ٍ�G�"_^|���fo&�o��pD
�"f2�������G�-������#h�h�[�����{|���4�QdF��q�co�F7"�k�e(-;�'2��Z�t\{ݤ�q���Z��
���ʬ�-ʹ�{"٤hy,�i�(��~�����7���-����|�o��m�ez��39��p����O�F	�����Out��콎���-���њL�b�����\�(���:�4��,u)B,��tݗ:���:Oj�m�9[k}��c_�!��jF]�u0n��l���}���a��d�&��hD�I�$�h���8[ь����Y�q��[l�E��J��B��MkK
��u����0\#����U6��O�M��6#�Ƙ���>��rcg�>��u�K �������2bW�Z�Q�t���a�.�A{̓�Փ:�m�}�L�Ŋ$5
�D�YN{��.dڢ��WF�MD	��zMj�4�!�����M��ȑ:�4���{VpQ���"��Y����Y	���X�(�5���c��>UR@��v������!꠵U�_��H��X�5�(����˜.�8.�l��C3)jm���1y �%^
P
��h�D�o����xu����uއ�&'��6U.&��5Zz�Q�,��F0E�m�g�|�_�U<k4��:���Up�<�-��U	c4D����d��
�Η�踳�u0t�Of��V�G0��k��6v�%�;�P�~J�$�x�I��ٱ��ZՐ����6kʽf�*Љ��}Q���݇=�>4{С�C���ƙ��ds+����;��eо�	>�����S@�\������{�:�"��tss8���t?�y��A�.Ἤf�ۛ���m�����ax�pV0t�ǟ��u�y�\��,m�Sf�bd�Q�"�}\K�=�YQ	S:%{0g �ik,��|���W.5��eR�9o��ݺڋ�_E�ϿE�Ec����}���M�����O5������̉�^�=q�"Z+��p�Sx%��Fa?�q�p�>��7�gА��I�d*0������𳜾M���1u�O_cn.
k���p�5BT"���1�~���y���|I�Hb����N�&-UE�L�T�s���v7=����\��3��9���9�?{��g���2i��4���c�j���y�7v��=h�kX8�d�6UrD�:J�͹�D;����0��ZΏ�ߖ�q�5���G �|t6(,�%�Y�faD�����!��x���޾�O����?�ɟkقp&�71;��˖I�����>r�d�g
�"f��\���
�
��q���R��t��ٟ{��gM��X��˃�hy��2����=��ɉ��Dl��ә���v
��G%z�K��=}�w�T�h��_�
L�`�6
���617J������a�A�FS#Y��uN�Q8c����a"����=ni�+.�hw�|���"C��=����������B�ڨU�eF��@Qs�D���T��(�@����kW�	~j�~W
��xOh��~��fh}�ES��~V!���';�����S+(w��@�fo��MY��ܔ�lvZW�T�Ϙl0�	����Fɨ|I�5�;��c!�>;��{H`/�l�k6Ê��jΈ�D\#�8���g��p0PU'�
cX��3�ê�t�t'Elb����7����Y�"������>'�;�N��YY���&q�ZO{=�����L�Xa���so��I,��4�y�GE� ��/�u�0PH5��lO�*}����>��1������}?�Ww���s��ޟ�aӮ������s�I�'�a0���� �7؋3
!��ê�~º[����[m�ug`{^����wth(XIKC�348_sAC��m%9V�;�B�j<|4�
'�@���.�ʰY��aoֶ�nn�����b�
����_�K�s�ɴH1�K�y跁���6�GOs���I�PS��
��T�)�i7���w���5綏�l� ���EDk*ѕ�k�L��q������k#
~u>��'FMl_)ȓ�Nė�2�/�TSD�ٱDr�m��YXf�@��h.FP}�Q�VA3�Y��%�O�r�/���n���C���nDꎃ�)�eM�@���Y��H3�~/�&EU���qX�x|}*Na1�[�Γ6�c��qu�j��U$@�61辢R�����ch�ZҦS�#
��p�;^,z���lTa�%*[�RL��P�4�EML���yI���f?TP���yu��������AC��~�Qhj�^�<'S 8�X�z�I�t�8M�+h8��"�׵A�w�l�P��
���E����1x_�����?��"��<�$��@�H����S{���xߧv��8
�}$(u~�,�8�y��څN��{�kO�ʽj[!��dk�fK���T%��p�<~���_t�<�C���dS&�D���������zn���"�¡2W��6XP>�ih�Z�־8i���p�]����آ0��2:b3�����Zy?��?�%��Ǟ�ׄ|a�{��l���Vhx7j�Ѭ�X�}���с��Dq�圣a��v�v�5L�`���&��:���`�)!xr`�LJS����_PӜ����{V���։(
1��S�1'�,ڧ��b���r�Qͬ�Sl>/B�aV��	�?��4k"b�4x��.z����F���mD��@��{�M	����3�]�i=��2/֯j��F���9g��0��q?r5�JY-w��gг�?��:�y�v2�g�}�~�C�����S�ճ3��X�?_����mFX���#��ĺ��]�=8��ύ��L����D5�'��i��x��B��')�X�Ы�l̞��Hs��l]�5���{�߃�WOW]���q����b��1��V<����;���	j��\�9S�;vè�]P�D����_:�'i��7���������׈����!�Y�V	$/�o�~�g:Ų��G��\5tu)����x��۝{��h$��J�
jWq�@7�#O�F����"u5-C3����j}�6�0(�R��]�6�Z�&�g{e�Q!
�ƐzVLaI5��8��G���M��$���3k�ϣy���:��؞�E;�s���ڎM�v������E�z
�e}DA��$�0���A��$D��{Ԃ���$x6�|nf#�łA�|ܳoy�R[H> fK�2hwY$U>I��-O�P�V���
˾ޏ+��p�e'�5j{z�L�O��,R�.�mZ���+r{܇�)j}612�6�����r�9k�O�-� ��qcG草�+�JKs�:��fZ�ޗ�����p-����ID5�>h�S�s��ec- �G�N�%{� �&21��~{��͉!2��\�G��+���3h�3���h��.Ȓf��澦
�%�,�kHd����]�;���N�h*��}�z�	E�ɡ��)]_��>0p���Ԝ�%~�^�=2�A�8�v�Am�~q��?
��39�^�45Y
�`��	���h�'N2�)��jBZ�0�M�昷�<�Bz
�ZMT�r�j�b�H;��7���aʹo�¼�ʙ�iʤ����`+�U���(xP�h&E��iO|�*'L��8KS�=Lm$�tSp5˽�
�}�s��I�&-�2��!0��Ls}�2�"[C'M�s%��O���W����sr�
D/��J8��8���<*��c*݁�?jd��0K�i��~_hX���
�
U�s��f
8i�d�j�u?i����.�
STj�q��U�*lħ�B�
�޵����h��	}��U�v�~ʉΡձ�f��Yctݥ��„��es��>�n=%�,js����C�t�"'N�^�^l�1X��dWSR����N�}1����Fn����"Pe �����'g�B+{�ÿ��(��|�Y�/���f�$s�i���t�)v�3�g�s��2�h��L��C���PT��A(��[D M���v�5K�Hc�g��"p����ڇ욋C���
�f�W5r�haДӏ�34��ߴ�~>�i��.�@e�2f�B�W�Sw��p��JkC'\.�Nh�&���k�!��w�	t����/�<�Gф&m�	�^��E��Q��`%�q��#���ʹ���"�(�m��ԣ��=t��Q�����W��wT�����Q�áRN�Y0v����ɶ�9���;L���a�~���^��/��K+�Z&덷*�B7M:�zT�X'8��M����a?��$}
4�_l��=1.4{1�Tf�ZWa¾�ʡ��P�@��m�Ԇ��:��Cy���zV�;�<}�y`�O1�"�A��Ѵ��0m@�Ea���'4���>♠A�vW��Zy�k��͒��$#����h,���z0�Ϗk�����4�F�}��-2L�8��z���k��=H�{h�S��̜n2�C$�:�)���$���t04��	��V����K%L�xr5�C�N��@χ˱oO�߷�mV(�%X�pǰ��!�b��]��Ω�p��E_5�符3$]����U����r����G�ܫrt=U=��Q,	�:�#�u��i�����d7b�E�g<m�j�r��%4c��B����?�ӬD�qo��G���*Ĕ��Ε����K�y՝֤�)�Z�8#�*,z��l`PZd�t{
�T`�@���:^�M�R��E|a4�fp��o$G4>$��^L�f��82s'V��.�>�2Q-JYM��1��L�(���(��s�Y9g����[4V9YB`f_���e �w�jQu�ؓz
�Z6"-F�Te,�y�֩v�KLR�q��^�0ւ+5�y"Ö��]E\��\rD�<�SPm$[���'���/���XW8w�}OgR�ݕ��Y�6�Z���:��#�����o]n��&Ըr(�np8U6������1�K����R���t*c�<�
���)fL�V�%$7Ί��j���<y�{õ5�[t�s�L����Y>il%ݤ�P�tRNa��M��Wtor��Bޚ'���8јl�1-���֙-U�q�o��O�^�Kjl������=Ӵ�f_Q��8,�J��P�j
_2:��fJ_[H���v��;z�zX�+Q,M���� ��~?V�#X0Y3�s�9ud���V$��buQ�\,J�zҤF�S2jR��҄�0�ڍ�#������=���������i��h8��܀i=���G�=��`��Hq�Y�˯C� (7;���i�{��mи�M�M(_��w��t�9>��[R��o�)�Nr�}��veӨ�׍�E.��h��3O��EoS#���}�_:�Ryvv�&�M,
N�=������z�*7�JY�V-�E:2Xg=>��
y���OЍ����c�	�I*���B�F]04�{z�u�Ykd�%�Y�i�q��9���46�c!�q�u�d]l����v}FS�/,��=y�X��X'��o��PL	��i87��~�>}|�?*�l -�8!4��Z�30ߧ����e(�,�D7Sj��͍��UC���6`>,ށ�Q�lO�6�ͱ��&Qp5��|�+����8��G�FF�k��{�\�g�b��A���ʨ=�e��;MM��D���!��xG?*ϊ8�#��Pk]Ns�-�&�B�zb�mI?��8@��H���]x������z�[pa��@#�U�@�y4<������il�{�}*���(����l��n�	��L@�(��T��4�j�2b�Ի���ὄl����l��Ĝ^D�)�Ԕm�(34 ��E2�"G�	o�j����@���n��eQL㌘oY{(�o�H���_hz�!	�ɿ^�V2$�̨M&�p���6�i���M�����DN�����S4s�R���37,��}f�G�4��1M���:k�֣ٞ5��=ԇO6wAn���.2t�QTkJS��Y��V�j`�m�q��P���j��h�<�AP��U|�F���}s�����D��CL�=�@3 d�g%����4�
�\�Vģ�Hm��e�M�J�bw��p�,�u�G�V���Qڥ_dي��%����}��6I��>�n_M�00
�q�wӴ��Q"$�0�A�}o��Q��k��UЫ��q]�U�iO�{�uDc��k�֤���ʤ��4_��h�P�Bk�V���K'��dq�2]����JlS��C�
�2f<�uw�l-���03RGh��c�k��1�؀@%���Q�SL'�����
Ƒ�0��"���ŷ$�p�2f�����,[��Es�RC��s@dtv��jd�O2S]����MNg�LeŔ9٢��H�Q�u=z���k�uͽ��lM��xNtɞ�n����G��*��U�՜N����t�}���u�Q�4힒ukǐ!}E<�%~��lh��"��]�IB�вД�NzWAy��"[��S�ēp�z)�ؐ9�#�jg��6.�ɯ
�
� !��k;w!!-��3��+���`��$V��m�&(k|�y�s��@5�<&i�:�r���Rb��%
�t��tPS6��+�m*r�чt3�ȶ����h��&�=��M&GW
��mu���U���	��/k�@�d��T�:$ȧn:�lpoA���Ȧ��I�Jc���.ɓSQʻ�S1�Ovl�o8���6��qVq.���mX٣�[��y 5�[��4y��j�CEĄ�{�g蠋Z�W��o��t3��51Fe�z:M�~F1��	oFa*/5i�o�Sp6R�5)Wh�o�J��cZ��z�n�W�D4��[����E5�k�'��b��~э���U��w�.@�x�w#.�v��,޴�m�6!�,t��}VцfG�3y:[o�n�@�~!m}��c�nj�E8	��d#&��F�4��<��4\%�Q�P�&��'�yo(�,�)�P�T?���Ʌ���*�! P��)����,�%�̀u�}
3�K��^}Āe���H�!�t��~���}�d�&r�dv#�v�����6�����(DF|�ع�u��dpL팸:��=��v<K��v��9t�-�
$�3(�)Y�Н�g#��qCd΋.:�Q*���Jv�����v0�^��r��af�h [h޻�[���xGf�;�Μ�=�?���{�5Dw妢��\u�y�wab�a�P�ԎF�$a�$Q%�cm@���(r��}s�XG�+K������z'��"k��݆���}{�>μ��M%��M�n*�>4^�>@�u1��Չ��2�	0���Gma�I��NVP�m���w�A��
��+S����M�]��҆�&Kv`�����M��V]���b���Q,`�|�t���%�p��}o�=�`��k��4ڊ%��x������3�хa°�,6�ZW2���c��ሂ�t��1R�6����nԩ	lY1'rmW�q��đ�۩�)��f�p���<Q�����4j�&?��za� �Ю���`�}^8@� h�=��v���!���*C����`.�&J�w!�]�!VF$I��Gs�.��}ؚ
�&T~�v	YԤ<�3++t��|{;Vq��Csݛ��p1_���s#T�/Y�0Ƣ���0kb���e��C�k���#��b$��-��V�jQ�ft��M�D�C�Y�źS7B0��D���: �""�eF_�&�@*�,�j2�>�\[q-���V�pIO�]��Z4Dd�
�ܣ�^_�%�)�-��t���R�K)�SFO�m��e�:ߕ���sW�Z�,uF`Hc�d&& Kf��]5���m�d�I<�Z�A\Ӟ�sa�X��>�D
��ܑ�.�֓�گZ�^uw2�W��%��F�<��0	/溫��9�;cnX�:{I
j7��nk���'R@�dZon����ЎF������/hj��������r����Ybe4��a�Z9�N�[ZD��'��f�zQO�.A�_1�nT�O�-�B�dg#�e��kZ��gqs���vs�kw��gS�}O
\dž�oF����AO�L:5�=���O��xgVS�ic}�etҎ�7��wS�wv1�?%��K��B4��>@�5�
M7-��]�R7-)��,n��8#�ڎ��Qgb�
>�W��"�u��pr-v��7�	��&��@4e���r[u~&��YNm���D�>1�
Ȝ���������L�yTj~m�5����А�"�k/����HR�0��d��fn��@�ƌW�zh4T(��m��7����[��l��i�Q@�`*\4�Y����;�^�a;���Mί�>(�+3�섋8�P�,��+h��W�	�bwFf�U6z�JtOE�{���C/���qOco�E��|�/lP1�g����Z/��d?���n�%�1f�%5p1e=�
t/6UZl���*4٦��|�x1�S����t�]&{M���sc�����_r�T\$�˲�t�5���XO7
ip.F�kb��+�U���Ϋ>�m$�ӯ�jz\N�9t�Mm�T1W(�<���$+9f��~�a�3���X��I3엳�K�[��WQ����^/�ڪ���P��i�\��z�~��K�M�N�l�ʙ7�M�栵�]=�
2�����J$_�'�'P��:c�g`�a����ʌŠgv7�`^��^��Q/X{eW�W%����?��V���_�V��m�x�R�à�l�]y���G����KH���YYh��<~��9��Ј�����zl�e����XǾ�&:#�����^��{wO'�&�<;�N�93�?Vi�&]�aٶ�ڬ��|Fo����0�1��]���\$6.�_��'����m��Jv��s��Ԟw��U찣�R�Yr�����`�jk~ǟ8j�w��X�#6:�B���q�A�c�ua��L����m��1�;4�.�z�>�::��B�i�p�(�j�ۨn�����S��1�4��+��i��w�=�7B#��{?��8x��5
���y�^�8ά_}%���;sW�^�d�<�F=%��:�)�o!s]�����g��FS�>�r����M����ab������d�d��.bv'�PQO�I��O�y�)���YG�Lb0_Bz�j�j�h���Hy�X��d�r���U�d���{��ϣyr���鶾���dx	cѣ��E`�g]yi�0sߛL���g}�~a�1��9\ؒ�dg[ W��2|`�D�3��h,�����*:ǽ��lsu^�3�9�}�������*f�|��X���܋o2�۔�{�������a��͞�ܻ֏�)�0��(%cJJBV�q��f@P����z�!�%=�R�J��c����À�ż���v�j��Cxr���|*��:�r��A!S�=��1�^�͔�n��_(kϚˠ'n]Py�ښ�S�x�s��/�L�Qβ�ɋ3U�e�]�rD�/�k{�G9�ᨅ�k�D������iB�z硂��_������Ŵ	�X�_gov\uq��p�,v���>��o����'YσJ�g���_O5�re�a��Q�
�)� ���%}mP�1ِiA�Q��?`n*��N�!h_�T�����8����!(�?&:��"t�/�&ǏԞN�`���L�H�f:0��(UT�yĬ�{�m��L"(.�F�:�;�~q���F�+��m��yhy���^.�&���f����"dVr�
Df��!��۱ n�(տV�+�]��&�3�/d㕻M����X��2#J�h����cYhD��<Ӭ��s'���J�ٖm��ru�[�n���`z�w�r�������h ���^�G�+�l��y�b!2����;�x'׵�	����˾��&~,��(I��	Hf�"c�/%�A0�F�� 
w��Ea��7���N����/x�����{_v�%jr^�
F6��M�<�v�p�|���Ӱ�tN�e7M1����<�cy�p��?��(�*�]�ߏ{��9��=�Q��u������(�;'���1��c�����0W������*�[?�m&֋��LG�Mi���!�?��S�>i@	�����X-�fԔ�r6��A�y�#����0�����
����׻&I�d�a��U�3�H�J2Ӛh�?Z�lG&��2�f��2#pw�<܁�.j�jz�*+38����I�6LI��)����d"��1�C
��o�QB�����\|]3�c_3��z��d���A�0��Ed���i_@$��Q�T�C&"�ɳ���%.�'F��/�zB�A��~�GS$��=�̆���t׉Q�]�-��
)��0R���:�|���z_K��a��E��oW��UR���
���ϧ�]�
�����JJ�%,{%���(�D�����Sq2�����mfD�'#o`#��`l��.����33���������Ӻ��3�4ݩ=�}_S3�'��A�X�w�<FV����^Ts��Ɂo�k��^���w���?��1�mF@K8�g�u�I��
�ζ7��g8���_`v7:kSF_\��vp{zj�g��9�M�I��R��7�}�0Wm��D�Fc��g���ȋV-q���
#6�OI~Ө+��Qz�za�I�m;���(��65��T�UkZV�b	��lfʶ����h
dx��
�ې!ɳ#p`�AۢA*�+$`L��߾���A 9kQ�>��?4r�6��5;b�J9�s���=5%V�Z=P��-ӅTyhl�����Y��!�	h�Szδ��B
�7h.1x���*�?�c�{s�|p��hW8���-y�ɬ���Ы���9[��e���� �j����^�k�"-NgP~}e#�q���60:��l#}��kl��D�F������cX��b�N���A�ۑs|X�z�eڄ1n��=�C�[oj1�uHWf�e�ak̪#WGuaP�7�L�����Z�]ن���;��gX��0�ٽ,WJ���+u��;l�=���Wި�:��5�7��3��V�(hq��������Ӻ��qO��_(�3��;
j�r�����YY\v���<�(����͂l�l��|	��M*]�L��Ҩ�Ю��%�5)\��E�'���׆Ӈs`��v��Gfg���}O�le|�jJ(�x����KT���a^R���:��!�sM?��N=���ٝ�9�Ks��Y��2	��YM�	B�<u�̳<�dQ&<�{��ƭ�W��Eώ�T/��jޅ�ݎ�iVx�LPr=���<9���z�{]#�C���ë"LyM#�ۊ⍴�v��0\�ߕS�D{��q�d�2MY��f'LEg�H��u�A��߬’~k��y"mZU��a��o`>������ј:�M��}�F���Z��m�%8$q:Y{dO�s�f�ygl����Ɏ�B�*a'h/IK�5�)��W�t����$���s�qxTt�{2���n�������z�A�vv~��H�*3�ja�cNp�.o�,(�#�lG2\��t�>Д�(8��{���ͷ��>
�`R�S������R�o�߿��c�Z�3N�|5�.�D����j�ld0R���6�N���+p�����U��٘�n��i}@R=���<�~���&�{<��L�E�Ϟ���!�1��;�Nҽ�l��{c�5�Ÿ��w!�?T��NFh�>T�:��k��y�;]E�!Qr�ʡ�I��^)��DZ[����c�t�E��^rZϦK�D.il����8ע��l�0�vf_���%�ٰ��;�6I�6��&�v���{�=�b7e��?>�L;�(b`4L�m24ݲ�[��Kl���H���h+�J���^|�DS�0��љ�pg��<�K;��e��"D�vhlc���������~G���G�~AT��}�`���`�����A s�cg}�=��܇?�l8(4���Q=���l�*s��eޯE�S�2m�B�#&��7�xW�����;���H+��q�j��=8q�$5�C����3���8�)�R[T��\h���r�P��"���&:7P���0�!3����Ln�� G��K5[S(}�b
ݺ�����]+�I�[�&KH�I�X4h�v�6n��d��9��&P4[��T`R���;����]#g�K��%)6F�H���l���b	���i�=q?SJֻב�eczM���B?
�'K�pv��Q�����4{�ވ����Iփ����w5_�KB��=O���$Y��k�&��f#3G���P�C<��hP��6g��|�6X�óƬ��Y
����k�ϣ�rU�
���鳰&��+=��@2,U��'��h��%PM�?�28d��X�vz���{X�S�����O
m�fU&G|*Sk�TS�[��i�%�Gj�E�"���g�N����>(�9f�����i25:����Τz��L�M`�d���-��q�]Ԑi
�t+��j&��$�cY�/�"�����Y{\
v�Es,��Ìu�o{j�&��A��q��[zQ���Ͳk�)�E/���)��t ܤ�(��H���n4X;y�����/޺����:��Kx�H�o䫃OH�I��H3��|�sOt���G�:p����ʗ{�Ѡ�څm�����M�f۶��_�l���o�6wGg����;�ډ��:&`�]@�E/2�j4��b�k�$>�6���x���r�z�/���u��n(��y�I{S���֍1X/Gt� ����2��ꌧ�8zR�Ȗ�d]؛�vP냌v���n�a�B�1�C�vp0/��ZwPM�c�*j���s�x��q.��d�{��QO��K�~rB�H��EQH�I�D��4�l���-Z/dJ.��)S/&ŽDZ�c�FS��F݆� kN6�h��Q�������H����M���t��Nr��!ij�L��QǴ�Q|�7�a�=�"}�짠�����_4�Q&T�M,���hC[O‭�iN.�{GԎ��$�;F�v��_y��*��^�\�bI��y����q�W���M4��Y�D����R��4��9�D~��ռ���)(�j�Q<����\����\y�S��.�/�lڷ/b��pثL���q��/�ߞ�0p�d�������)$�߳���e�����g���rg�ҜhC6�o��g��oI��ki��K���!���k<���h���aU�hV�4dg�ޮ0p���O�/x��FD�~�mw1탮zp�)"	�善���<����
�iP��O���NIa�ڝF�hX�S6x�g��i/���m�^��߾��{�B����ҠFkaz���_4��7��z@պ"
�nֽ�US�Iչ�pO�M��@��v6
�u�(z��{A���A���}��Dn#�,2X
?b�8
���Y_��N2�XgfJ'p��,7b���T�s™�.��Z��4� 	T��j/L�øb�4�����(tK<ֶO��И���d��6Y�����r�KO�?��'��.6EA�6K��ؒhI��.�,����Z��Y���>GWYk��{˟X_k��^m@B�$3!����D%u���`�;t�F�}bf�L�5΢{���(?�\.��=ȫ��_�{4ʃ��M
������,��#%2^�>�T�^���.C, ��g@m
�:0��OTKu�N)Rm�F>u�c_Mc�ɿ�p���#A5�������]7�(�&�M���S-O c �6x-`wY8�OYQH�h����u�ҔL����ϣXl�3�i=�EOlLyn�-�d^��b7�#mVC�%�uV�4�HGutL�,>���%�Q��� >+�#7���Z\Fܷ<j��@PI�X��,jXD�uE���f�SF�AK;j�<܂���	���
?1��'���s���ʬ�����M`��2�B/�7��9�פa�uk/R�z����2|z����	��
`�b�nc���gS^�^d�P�LS�I���&�xe[��I�������J�^�ƌi4���)������Lw�dp@fQ�o��ǯȾ,<�D�IZo�*A�r��j����8�����WF0q��Ef����f��%
&�9~4�n3��ԇ3l�\�\�q�׷!�.���r��bg���t	}O���4-4�W&��ᡡظ{wZ*Q��^]�
D��@��X�ÿ��^=Hy�.ƙ�a��G�ڧˢ�MY�Tν��4P��`�&;��?�,t��&]I�b�gl�Nn�
�����4q#Ԇ�SM��mm����W�a���J��A���V;X�QY`4}��긻o����X>���ǁэrF�N�읮6p����]MW �#U��-*Xu�*�n,XG@4'#�(jWf��fQ�D����1�?�?��Mp?��<�M{R3�ѥ�t_�qӧ�����F�:@��m�Vp��6]�P3Lp+�2����MȌ4�����=qf�̤��Jr�=���ՕK����5��>Ȼ��Я�'���u�Fq,3!_Hw�H}F�I���`^E����:�kr��vZ���ڱֺR�r`�<�.4��P���_�z4�ske�=�����j���b
4�-˨��j�猩t�V�?vQ�g8ip�X��?
��i4
�v��	|oD{`�5�k7�~F���檳$Zg[�ĩ�P9VtV�AY��u�oר�ik�l�P%���]C�l��}LlA�����e�[�-�x���g�qh���@�G
���xf��^c�>�r[4�	�q��ã#4�1r���	݁�6�#|oj����\�W��&��!���65tFY:����Q07p�Q�:�C���W첵n�I=XtWRĎ0�ڧɍ��������J�C�
�Rf��ȃڠ;cMÌ�lu:Sc��z��Nի���`�ŷ����k����$`�[;�?��Mz�ݘ,f�d�E
��Ql�f'O�I�Cܫ��Xѽ��չ�`��ɨbu�$�U{�@5�CEM�܌�&�d��������YK�����w�"��hm)�/g��,����F�{��e�懱���O=����^]ox?ˎ�Q:6�'��t҂���D�Uf�RU��^�~2ftʨU���)�b���:����Q�Z{�|$�4��,���5������!��X(9�!s^�b)�W��(�HG\�7�+��XdV=x�\o?����ꨖ�Aq����?{oz
PJFv5�=;����@�d�Nq��i6sL�K/�BL27���P�`h�F�%eg2y����ج*�4P2��FI�>y���\T��*��zv$<�Уf��h�>
yJ����0��e=L���tJD�gو�S!Yb�{ϊ�峇h2Y2�]����Rf�ch���,F�=Ih�YVj��1����j�L#��{#�{���k�mr�c����@1mZ�SQk<��W
IESV�&)��2a�(���Ld
-�������M͞atem�#ܥ8Ial���u�W9}��ţ��.��^����«pAö�ZZO�Д��>/��0OS��D���"��:=���j�?�O�p:�����'��r�~\9u�,��J]
ZcE��-JR'Q��oA�r@����ܛ��F�ld1��0�GSQ|�8�x@�&�oS�
i���2��i����LZܢ+��?m�m�z�c~��_h�IW��<�W��4N�ZN�Q���t��)���Na&*�D/�ž��Y7MzW�G����\L��mSTi��bz��?-D�9mZ�J�\$�t�ݿ�o��M�0ZB�|��,�䗔-U8�EѼ�w�y%�P��4§LX"�}&,�P��n�y�I�6y�=0���L�L��>������z�QeJ��}�Q��M�2Q�^�E�K�o=��fG�jnO�g�f���+ꯌ��`��Q����fo(ޛ��u��O!L4NCѼJga�w�tN���h�	
�wN�'�(�i��Y4�m	��ʆ�j#&�r0�/:�Ŵ��,ÐDzŘ�\9H*��A�'��36,h�+�+p�\ba"5�H�:��.���Gz���jf���|t-�0x�^��LY�Zګ�Ȍ�d����ʣ��4\���^P�и��C�"�i����g=�E�;m<�Qd�
�N���r4��D'E͹��EJs��9����ъ3o��U�SJ��:�`�,6.4V�3�k��ڴ�9��}�a��BV��yT���F\x�^�n�$/9���B���r�u��a��bOZ4�][�N���1"&
9�����(�67
Ϩ���/pE������?
�VPdo3M������Gz6n�>?r��{�]��B�#� ��6Q
qV����l�B��V���s;b��?�-��%�o����S����Y��z��c��I���~��9��-���pK��nՃ�&P���'����Kh�4>7�͘����ۤ���c�M�|�6f*��v���b��N#qz�D��H_����q��k�Sm����p�D�I+|:2c"-Q�I,���T'���9O��0���O���z?d/6lD��o����������y�(����B,�6ރ;>߾~������v`��z��'j�}���rm˂r
��ނXbF57(��<�Y6+Mo����5�*�T�ʵD�mC�/2�z~>�n�]��
��yL�����;�9�΄���)ʍU�^���q&�7z�n�l,����yv��;v�z��rf��~҃�y�����a>��lH�lZa�t�]��ިy�:3����#�s��=:�;h���<o��%xs0�U�{�VOu�4�P�ĺ��ʼn�{:�o�v�}�,C�u�60��Rh�49)��H���`r����6�������H�@&�����L�犝��V�y�:3�z�����,+d�{�Zd}��Ov(��U�k3 3گ?��[�5�1��C�T�=��j�`��X0���X�O��X�W�=1�/��R��0jy�p=!�T@.M�z�Zב���$Wg$��-tW\OY��1+1v5����t���Rx֬��EQ���{l���i|���5��kh�I�N�L����ϫ<����$6u���
��6ll����l�m캽�ðL��z���m�b��'u0�`�_4��<�%�b6��R�
Fl>�S�s����G�f-˼*���K�%��*[�?(�f�V0�C6��ε�mW�!��$�P��X��J�CGI�M�l�1���T����ܱ�r��\���k���ʖ�b6�bT	�xr��\pg���3M�7�0©��z��.Z��ϋ�J� ��X����5I�*ug@���~�l<��\�ٸqєƚD+Xj�~�4|v�4��E1����v�r+,����*��TH��E�brJ�un̠��~1��^p�
J����kF�����N�GcD�AUh��Vc�
$q��ґy�R�N�m���	�_	�g��w�)��ntF)�"��AT��k�;4���@�駣J�ښ�̓��:)�����z0��4u�+��C��n�`N����˧B7�Qc�|W�e��*5�̂��$��2$RԊ̤�7޵_Nvs
f1����~��x�hi{¬��}gv�N�I�=������ �r;���u��&Lu��g8>~�*t��z�kq�
�h�֣oH���w@��S:�
�������,em���|��it��x�(�v4�@��:%ع��ߗ�H����)2ʱaF���h�:�+d�[F�L��[��E(�@���d?�ɰ���}�s�:7Qf/�E�W��r*m��I@Q)�����â�ڬ�h�P෮�o��u��Ҳ
զP�/E������13��	6�"�{_��0�`z"�M/5�07����f]E��5�����A�i2�<qE;M���1EB���6a_ ����qr˷}_��e�Y [�7�m6���nz�%�a��}��2-y�8��ٶ��9P&��� Z���?1QF��n�}D�;$<�M���[�����_|M{>�Nj4"J[�Te�v�:w���>:���G�^��/�6&e�=�2����ԙ%���a�L�(�ϰT�(�ѣ��4�g�6��ilĩhuIc�Z��N�-�
Ɲq�'V�D��\����ʈ�!j���@��jE��9�p�z�賓4hh�����=T��*����!��1&,)X�m��zu�4V[:��(P�ET3�G�"j,��3f,�;$,��"U����i��hUH����c-VLs�b}���I��Z�\��ܬ1"=��n�2�����q/'��n���Z�8���/���h֣�A��֊e8��G`^�bu%�?�C&#`�0pv'��-٧��T�9[�LD�ok��>����dSJk��Ka�;�m.P'��UF]P_�5p�&���xjm�qM6l"��fk�gb'����';����� �թ�vr)n_����N;���&�v��g���K{"t\��I��(�k��h:q���P�}�ҝ�F�j�2��J���w`�kf�K��?��-�X;���rL�jT�%FA��A0���Ϧ��.b�e�e�F���3A;�5z1���C|��Qs7�؃��s�,�-�+�J����)KtN��2нT�^�DC/о��Z���+��=)��*��`�4uu��6��T�8�ج���o��Ɗ�
Y40��LNOp�iSs����D��S���N�K�a8
)GV�n��iS�ϵ�P0���Ͼi��W�s�̲�TJ\b���d��j:v�>��L���ZIʤ�ƣ͝�8�����*�B��:G�4
�#'t�r�̢J���u�&z<1� �4h��g2��Ye�lB@s�Y�#ꀉ6
tz�|V����6+j���X�p�`r[�e<�Ti؝��_�S�z6ũk*8 Ҏ��@'89�uL\�2�Np�sIVYS�{|����)�����!���w�,�iş�.Fj�*����ȴ�v�c�n��'�,i"b�PM���D��+!�s�aP�žCƓ(�8���R��0��� ����1g�͔����Pd�X=E?��;�V�v�Y�9O���$z��C�V�z��r�S$J$��=:۝�>:����1�θ�jڞޥ�=��Y��b��|ԗ�-۩�z0�����Ѿ:�ok}�D��4��L�t�z�bx�,�h�6S�DM�[���]�"�y���V�6y=c�'CL�'g�5�|�	gb�߶�`6
�b|���HhbA�pT{h��GX_�2�_F���o���ݝ�z��]�����&غ�h�&J.@�e�V���E)�S`�3����9�w�2���2g�\��v"�I�`�����r���ͩm�Q�F��@)�v�5�'X�"����F��D��-�k�����a�l�"J7�EF�Z�|�j���mU�<�C�ٰ��a��������V��`�e "Mm�3'{G���x���;2����Z�j4l��ל���h�hd,�f3�pV�y#:��vJS8�D�g3$��{����&�s�`Hdʃ"SHwTS�E��I;̉L�I֛��:��i��_�f�e�WrD��~�l2�~OB��Y��˸f���tK�Mad�j��Ř�?c2�G�1wݠ��1`p>�a�Y9��>֘�Yƣ:L�ħE�Q�y��5E�5K�D����[;O�ɩ���q���;|�3?�̙�����XFtM��pͥ݌b/���ӅS8��jg
�|.�~�̧�j_�۽\l��݋#�g�:�ǫ�Y���!!#2�6LZ>���=}�ͦT��+&�z\כ�}v�����4�Y��4��GjJ<����s�{���(�!�H�3������G]s��0{��pV�8�ۘ��L��
��B�%Z��J�)��`2�ea?ٜCO��͸�)Dv�4�@�\4����O�Վ�@�Qꎶ�䫍��ҵ]x۱֍�I�"�ƿ��mЃ��8�s��+����e���N}���GF�F9M��xBX=9�Oz�DW{���Fp|�p�W=R�Ȟ6�g��K%�P��0w����iF3��Mn
#��t���aBc��\ĞaI�;`D��%!��<�gu��]:��>L�g�(�K�4��T�&��هI욄�<h�K,���a�n�M t5ա��n3%�ú;;S+�S[�Mo��6��7�>�9=�Q$s���g`z{�3��OZ������4�}E�BA+�E�F�@GoJ�`�a
��Lgmh�
m�@,�7eԀ��ˤ���%ڙ��ANpr�ۯ�:���B��JS%f��4�eܻ7_��?_iH��z���o�uA�"�л�}A�|(��H��t�����dNՋiPL�h�Y|7c�̗F�S_�a�SB�$n��kr�ϋ�
�i�{
ߠ��}��+����v�H�3��܃݅�[�h����9��-|��ԛU���vر�P��m&=?�����o>\��#�2�wL�ѷ,�a�)K*"D�A{n���^�z��7�Q�<�B;+����c�l�c�z��[
�?�~}����)v��㝚�E*�3�����'GH��w6�@<Ҳ~�{��]
�V!�f�HkWm�g��*WN��x���Z�b8BS�؃�L�E���=��~�ԉ
fu�q�t�؎|����r�(����Dا�Lb�Q'mk��|w����x8���Ծ����=Ӣ��T������g���o��߫G��}�PAJ���ea��U!
��h�r��]dC.��C�Y�(B�x<cԃ���&���F$g#���l�9���U1q8Sa�u��9��1�#SJK����&:oØk�L��j���A���J���H2�o뮺����~�L�0�:!H#�|��Z��BV���'�0d_��^$_��cޯ����[j����0�^�~���^�����L���/G
�&��@RT�+5�@NqF}
��#��$(F�B��B��vJ�)�#�_��x/'
�j���3%���=c�^A?�?��Vi�דaل6E��@F���|��:�
I�lfh��J%%�����R�=q�L���C]����##�̨�]V��'iŗ��j���
~Xߛ�a�c_J��(R����Cy>ʐi�ا�2\1�����;82ʍ�a�v�p��Q[n�
�@��8'����I��M�����lZ<HJ���%36gbC���V�z��^�劼Ҭ4�hg\pD�k�s�AuBt��λI2���~��r�ߕ�gk&[��� �LLD6��ˌ��W♁��L��kƳ�'��$$}���QU���W ���o��ن���0Q�C����U=S��x�U,F�@BC�t�ў(�oN�ph�܂F+�V��'(��|o2������x�����g>���FN[aҶ�j����	8�L[7����I��}�}�阆�0���Q����l��1�����w7�$\Z�Vf��6&ic�7�sZ�8�y�<��T�i��hJ����ܝ[�8��i�|R?[{iK���8L���ԣ��A��}ƴ�4��l!��s�x�(.XP!3t
A��CM
�~аa�D��l�L���4w���]����N����k�H(�-�sŜ�8�84���?�(<�fmP��^�ަ�N[��]�J���K
lq�9�J-ɀ*2�[��`ӹ�M3:��0*�����~P@W�,�NA�,6{�t��=t|Â�(3���-Z�v|������$]��t����"�����u���H��6�@!y���Q@z��`Z0nB��(0L��{#5c��'���I������o�
qB�˩<�8�xh�)�TPbߙ�'��f*8�ݛ�T�xn��'�<K�bc���6��X�PE/�ԗ|9⁲��\n=0��\�5����h�^��b5��ο�-4���g���6�+�/�[�����;���pi�p]����2jz��i����2�0���#;W��@�v&zlI��������{O�_��v�NLw��38KM��S�٤�PkX�aH�M�k�e��O3)D�O�#��{tW_��
M�:���ʍ��?�t���lf�|��Q�Ɣ�N��c�"_>p�W��s��5)�����g6�?~�NJ�F�3�Lf�b��M��E�*��Ƶ���

�.��Q9��?�^ta��
Nۆ	O�:��E�F�\�C����zwհ����x_��˻��۳�����Yj�YDd
�h`��q����Gj�>>���>��?�
�F�?���Q�W������6k�,���wb�0*k�64T�.̍���g,VqSo����?;	��M�x��o`fi����iy�Ց����kƺlX;�v3^���]�5�"�@ռ�����F�%�zU�5�I�y�	��V�M��c���ku\�Y���|hè=-*�@�_�{���I��l#�Ϗz�+���'��@�Si������P��V��6iT�"J6~�,�.Y5�nkb��m�f����Sh��͏J�G�3��
���&z%�к�k�vM�E�қ���m��E.�R��`o��c���:�{Y�נ��S�\E�j���2ւ�wJf[4;)�j4��&E~�S�}�H�s�'�����-,�R�?���h��5��4��3���1�6��8�<��Q�:��q��d2BH���2p�)4��njZL�L6������Cƨu�LW46@�Ҧ��7hOMQW��g���ad��4�4h*��NŮ4���52G7I;Ϻ�5/���\��:\�{]���A�FEfI���j}9u�Ml�`���v33L�����W^/ͮ�`��1F#����C�l��t�poDn-=:��?�`���V���D,��@M��+kS4d�nM�O��]y��}	��0��TO{��M{��ֆ��E��;�d�)Y�]�Munu0��j5���$�\H/kcW���@=�n����I�:L�}R�.����ި�������Gk�\�sd�͏��Ň~T_�&�D>+6�7�<8�m4��/TYg���l�ņ����c�C�Y�6̓���8/t�D����%�:2Ǵ~�@B���JS)����!�n)�/?!���*�8�f�����Wzr/d��w?��-�7�*�
�p��)6d�m|n��	�'.ll(���#��yd"m�ݕarԯ�5��f�̆U��m�q�B]L��E�EO�J&��1��_�%�Kx{�t�l
E�MT3^���aɥ����HL�֘u��#=�턨�\���QuD
騉�(�=D��b�D5��\cӏ�����q<9���C��P�k"RԤ������Hl|�+�ޤ��z+G��$����a�D�i��)g�9�P�W#�`g@�F�8I���9��6bSR�a�	�fb4��%���o��`�j:(�l
�rJ�뺄��Ms�9L��u�d�A��N'�ݷ�)v�#�i��`z$�8��om<�a?�?����7�`H!�I�!�uM[B���"�����4��L��]��`����*�n�S6��kzר��b��2	ͭ�{�L�Q�l�,y��p4[��>�pD�c0HG^ț)��)��7�06ۿ�yx�o�/��^�ή��4n�[�»k&�kʭɆd�P/�>�=��X����Ѹ�vJ�zr��n�ə9=�X��0�?u�CG��!�GmM`@I`��v-j�c�Jݴ��ݺت��s���V��u�w���vŨf0E߳Fl�]G��*�إ"��U�a�A�f�,q/��e"}�HDp1��d��'#�)/��Sx�����}���јK@ݷ���3&�9�!���#��(�����g��-��?,�c5�K��jFKr�Á���I�l�gQJ�hP�\@�Q�m_3���Qg���v��q���ԕ��.��ئ�s1�=��mS18w��_O��
�dP�{[��݇g���:נw5���j��E�Gڊ25!�N]H��F{Вl�EF�ܯ�g�+*��<d��cz����H��f��M�kcv�L�1-l�U�vY��m3M���q�T�"]���ZI�?��W��5d䑹�E�� g,a�������=2)0��,�ٿ�ڑ��l��HK��Z=ag��W���&g�ô�x����AW����K�3��~��T���z����{�u�)gR�ܼ����}
�[�2��S"��،(�亻�G�\��&T8R국Y�Dѧ�Q^FVYg-Jѳ?���s��<;d%�{2N�ƙ:U��E�U}>��]x�M�~JB��[��;W[�g��:{㽟�L}=�R�’���؎L?"�N$�%G�E����f7�Q���R��pcO�fnm8�4��k�(+�����
���������ρ��u��7����H��*�97�6#=����f6,�4�t	��)2�r5��:/�Y}aR�h���������V=t�etN��_u����bz�u�/��Y�M�ќR��B��ږ��+�_���9f�S�{+�E��O��;r�?�H����A.��'o�_�ů14=6g�{WG����p�f�=b�C�֑�5i��l�LrR�ϪI�c]=UKr��$�*ƥ�Ƀ)��0�:�%/PgM�XLt���^���6e���%��Ż7������@=X�M>��	�X�z<K�{a�ut�o�0�˔��*O��X|s���7��5�B�J��Dė�-�T��̦ �<uxt|�&�(�h���*��˃���X?
Yf�/Y�3����+~�6]H��R�)m���&GFk)N�G�d�̎�@�=6�O�ڐu�.
�ҍ��*�h�q�Ѐ��9�Q�4��4a�z��H~~�r�=��KBx��
�y(��Y��	4+�w�F<Q�f�a������<�0�7��؟3��Q}҂@�>�cob��-�(6�#�x9�vD�HF�1�������?l������&Y�����.���h�%�Y�Si`U,�#�h�*�sx��2	
(�9����Y�Q��6t�����hC���`��%����u�8�y�Æ���"s�y�$NY/����}�ns�.�؜�l1c�%��E7!ߒB�?�ⷾ������"����
Y=ne��8���?�y/�XO��g�݈R����=�T�g�Z�Y�����T����
:5��Y�p�w��@f'Km�o�b(>��aT�x5��9ʈM��b�0B�N��������Ɵ��@$}_�I���C"�]VM�5ܢ�c���M�"������Ǎ9�h���0�B��/��sc�_�R��]�;\!a@�D��u����k�����pDF˙��h/P��H%��K����i�k����>���}e݁�o�{d��&���fhp�?�=/���_K�y�i4�0=A�5�=����A�ki�����������5e������Qٱ`h�ɤ(�p��r�b�R�'�4�=C����B�i���I�\i�������7��Es��YI��~�e�o
tm��`�e�GBE���5��6X��|�t�.e�:�hl�<2)Zx�8�K>᲻9���/�4��7n{C�dZ��b�����;yV
3*�yg�@
1�Ȧ����i/'['YDO�fd�΋�**�Sg)���1`�1��*vh�D��� �:t�C(Od�Ҭz�hQK���4yx�~�@��z;ev-����iU�]z[쐬i0��n��h�r�7��JK��v�M��OBv/k �J�.A�=z�
9��BF�I��u�< .1�Wr���`
��'�X
�֪����Z3@|��fF5˴l4o�9Dä��^4=W�]J(
ʚ�f+E���g�t��e��ȥ�u�@3�,�h�ǡL�}Y��cH�ܿ��BI�4&�FPw�:CC�ݐm6�K�p�@0��-6��R;�ž�+��Y{C��h2�{��+�uQ�a�ĜF�\���RgL2RS��|��a����I�d�o�?���w���N�ņ���ﺾ4�'cwn������]�?͜�-���Tr9h�@&I">�6�0
��@<L~ϓ�P��9.��&ө��S/{k�h��:X��4�y���ɳgg�&7��-���qm���u�4(k�OD�
!���ݓ)Ø�l	�6�TQt6]	�_�G|��8��'���,.��٩��D��uӻ��lg哃�a�u�:c"?u�l��t�!G�ꜻ��Şݨ)7ͯ���L�5Qz�����Ӽ���0ә����CTd�FE���|>��Rmn�9��f�Nmʙ�D����TÈD��|75�δ,�4��W�<�k@Ɓ�"��{�	��p���aB�Q�bi^�c	N��i�4)��h6
��|��߷Ai�v!*{u�[�4��
8����MF�k4����'Q���������@�hjh�?��m�F f�Z	�?�FE�-��y�M�J��l䳯��lA�/�HYĦlӝ憥��BS��)*�U�E;�L����4մ&d��F�c����ZD��f����V�6(�(��]�'��d#��{>��H��|�;��܉����m�3�
������X��ϕ���*�EZ�82];�2�̢��&$%;�|+=T�xa�a1~{�D�����#�Ӱ+�s����PFU]�̇&��lu�YC�wn�T�!���\��{�Y�t�^���n�s�iӥ14��:#��
��ue[���lT~��9{(��D�Yk���lWήCOv�o1����夸���g/�i�]�}�5v�j�x4�F�q
�nݜ�7Ʊ$�z[Z�N���Mh���]�1��f,2�C7;�`��L�1j)�=�2ہ��
������c��u*�M��^��I�ͭtmX5U�(C�T��D"B��&
QQ�����3�D���m�La6�=N���.�iE�g���u2l�xxAZݵu�
9P����LTL}M��v:)�\6)��0o+���Pm��nxW�[��ur��HFx3(�fDuԾQ+����a�0ƙ�͜�vĔ1�ɦY2m�v�px�����kR(�k4��d�`�QN�^��~f��&��1�&�0�q6����c ��[eG�ҋl��T�˺�P�f{�G��r��X���
A;���F��s�Q3RS?)"�-HdU�e'5�C���y剂
@���Hԇ�ׇ=��ɀ+ƾ��tux����x�(b�N��[�Z��n�,9�mr�6SjCZ�����!w|�d_Ѩ;O/zX��n��
�r7	
�&�����ixU*���̧�U݌�!J��&S�)J���^QWg�s����.�g{&u2+ELUCF'���N�m�ya��|BNͰ>��	��ĮHO{$����<�}�=
,��׼��i;�WM�aν��+��X�u0��P/�����#�0\���7�ပ��$�}ǃ�ad	
�ۗK͜&$�U ?s�Y�Ft�%�8)�4K��
l<��~i�����.I���~�;ܙǩ"��ot/]8	Efj���� M����3
}r�3����_͍Y��;�)sù���+A�ͤP��-@5�\+�Ip��7�@H�[G/�����x��⯮%P	�vL
��5P�0>�r�t��̩:ϟ��J?s�V}	�g;��%Ħ�_3�
�g�*f��Q�q�P��d{���g�D�pn��QѰ�]��
��V�-����6�^f��c)bx3M��->C�N�q�>��R
ʃ6N'�O6�Ip`q�5�,�f:^h��K�Y����OM<�}���geN�n�&t�Xm8ʧ
}nd�z������<���(LRj��aE�귬o�:I�&��)\�ֻ:E����ړB�*�6h���>e�҂�t�Q�_��F�'v�Ifih�A�{��M!t8�p]v�Τ$�웦�p��Όk�C�Fti��a��{��w	�?�O�n�7��B����v0=�*������k��GSL�o��gwߎ('ɩ
U�f�����b�Օz�Ɵ�p
d��P��4`mYE�۬
���F��i︾%�li�P��0��G�dQ2�̅B�bϸ�7�V�+�%�I���xsÅ���4B��.��6�AD�Z��Oij;{T��#>���Ï��T�T����a�#����`��>մaP��ҳs~�9#��}��M��]:����M�bojơlg�S!59���I_dw:E�K	�/.Rlsts�b?�Y�zi왮a�{���	�mN�c5�14,4D�E
��h��@��v־+��g��σ���Ѧg�t��.��5�6��ֽ��v��ۖ���Ħ`
�b�֐!"�"ch���=��{ԵN#�H@.��ad����j���bI�!�����y%�-�>3��hЏ�ZKi��`7M�0gv�����u���y�ǀ��>��p�O��ƹ��U;��@#]�Ѵf-=�/|F�i�8��,���z
���^���t���Mij�C�`X�`�/�+��Og@���-�8�5y�ณh�f�����>��@ȟVR��2���:�,'�$�G0�&8�/K-�A�)o�q7͍~q��#�9x�`��F�
�2�y��w��
5�u�)O�݁ؑM�ش\Ⱥ���d��3�P70Rφ�C:��6!cdpp����B��;�]��K�Wx~�Ι��Jԯ9����yb�;55��驭y��]0%ظr�(��>x0,RA����PP}�P���������t�k`�mv����d2�1�[��v�;�A$�>��9{�H�����a��+�DTC��a�шR�����,�������M�ݢX�k�Q�W]�e?S�]:�}����}=_���Rf�y�FQ��~>A*EZ~�`
:���k�{P"�jM+;"d�&�ά����������B߄��nO��'�lo�:؅�]iv7�͹���]�w��C�(��rWU��t�֝���z��m����C��xuȴ4z�@�8�d������O���@�H?m_(�ytЃ�/���2M��f_q�M��D�͂�Ӈ������O���H�dLqn�2jگ��~��U�[͗�~Y�+���>Ȇ�KYx-���?9f�a_��K:l��ں	�ԕ��On�R�d�pg�H�'��d#���LF�-��
qk��\9է65�/Ht�e�f�&5�q5`_��,�
�ɧ2�RU�2u$)�x>-N���q�a:����!��������d�	]�3X�K՝��0����T�
i[�r�����X���Ϧ|��H�}���}Mb��asY��(�jw
���Ngt��Kk�)"�#:�� !��(�>>+i�(�������Y��^�q_����.t��o���j�5���ga�u���)&�)4c(b@��ӈ��(��T�4,����@�؃�b�A=�Q<�;3�`�`Ƃ�mI,�,�hu��x0j���po��EU<D��aà�D�H��Q=@���=ޥ���A���nUtP>���ӫ+[i+�7��
�SL;�W�id�>�h�Ȣ5G�0��YQ1��Ts�Q��f5��&�o�Ӓ!7��j�.��C:��9��ù)B�ta�G�=P@�sueMnv��	���x���Ș�~�H��u'fyⰄ�(5UYC��
�w�:��?ר��P�����Y'ß�[b1�y�=\�(���6@kF�.q_�쟻I�\54aUR��L\d��k/s�p���N�(|0GB<5('����=d{�b4������Ѡ�����$�aD��qP���b�2�`��G~��T�In;��У��\l�%�&X�Lis��Up��\�D7��izGn�&��ďs*Ŏ���jYKb�Gq��
4̺LFdH�$�Q��.u���C�(�k<P�gs@��m�� jX�z�%3D��zC�
z�&-#ʙ6a0Y�淉�@��G�{��w���`y��oh�M�aD�ޛI�;����ͼh({��bل�Ni@E����9��xGLY�0pW��U<h�=F�;�اp3g�q���ґ��'\h��{S���!?����;��J�b*2�A-ϴ�֮����+����2���h�)6D
�Ėܼw���@o���������ơ�u�[<XSt����X5��6�»�H"�t��AM9�0Hc2j���;��=���p0��
��f:h2Sn��f}�_��}�ʄ�)^���)�#�n6d�H%F|^�_i��(ֹu�[9PVe�6
���@\�b/�3c
�mW�i3�\��"b6Ns�Ya���Cd�8t;��X��bpC�X�,�x�%�"�W6�*0��5=���ݮ{ݵ�iB}̦�S�I��\�}F����dxBw�A�C�|��8|'P�l�Q~8���s
�U������s�.�b���Xmo�ۓkfɗ�f���k�q��?���F��EM|�_d�m�'�[��q���<�0�#��CJvn��V��2N=�XM��3�7�ZW2��l�@�������/�-��&��L��H�/a,^���M�&�t[ٺ�-�h�2m~u�=��&+^Q=m�ԝb�C4W�.�Q�nU:���_x��*�iX>�q��׿�I�h@<�k�
?�Z���m��Pw���0�Yn`?7EfPO�H�H��~�=�Q�Kk�q��%*`�a@���F��%��98
���<�<�wkz	��\a�����M��![�GD�sQ;!���
���ѳ�\u#J%�`<&*�M�kv�'�fEpH�̔h�Se�h���g��/��U#'���m��F�cw�;�2}���S�˥q[[9d(tZL4���Z3p��эqSd�\7g+b�9]L{���z ��U%1r�
͕a>O4F�2²��O+�G�Q_j�D	A�{y�,T�A��u%�ͧ@����^��Ym���H��&�f�۠p�`�蹌��XO��(Q��K�S���@V3����@ė����s�V�{����ת����x�j��_�w4�4J�۞/K�n!�l⋆S������
��c���������8�� _�@�J��ìI)��~�C�}�\<PD��II�S�@}���
z��&��Q~{�9|@�}����j���(�E6�K���LX8̙����5�8�O#�(��o������w���A���͌r�CSLa��]���m�v1$S�N��p4T8vd��w#����15��S�Ef�@J�i8ô�02\�)���,ϓ��ߺ�?n��E/2��9�s�kpS�iD��zMÀ��m�R����eT5����ߍSa)Pmc��;]�f^uk.��~_�Y��#��>S7˩Π��Qc߳v4���ݾ���lmD�u-�l�St背އ�4P[���8L��Mz��v1]�)�3�e��fT�d3!g��N")�.�SG�6(^���\dx�a�)�D�&Q
��U��R+��@�c��2�vNֆ��ꘑ&'������ٓ�{6�1u�$h�D�𹰷�0�|
[���d�+2u�]��W��<vyn��qF`����
��
lZ��܆i"U&�ȍ��c=�G���Z�oL��j���mN���ܒ��e1�&�!MMkq���Q�
�kr�e-`�	uB����W|L�E��awY���i����4i�BUM7�>��^��z���FP&��%9�����ʦ?��&��v#�o#�Aȥ�d��H��D�Y���)�,8j�J���VG��%��M1���^�;�LSSH���]�.Zm&`�SR<�Ț�@U�X�#�q\h��{�\&�Co2�֮���r��eT��2j2��-�z�����7
��ل(���)[ǝf�]�Q��y��Me���ܴi8m�<�?��\BO�u<#�cB<�B@�xz_h�����=������yiDvV�
s@�T�ۋ����X_4]:����7�񗩦�6��1��^Zn��q
TN���͇�����(����zzM!v�B�ә�����Qt;A��\��4Wqx��a]�_]}�aI/ jgU�(�a����} k��
���3�&1=��ݤ�	��9t'/K��,6g�p���j��Ь��D[�#3u;���ˊ�M��&#�W���Ė��(�M��;��Qn|J�ל�h-ET�Ь��NW�a��ܰ��C�x8�1���8,�Qz�g��B���i����G�{[p�x��vn`^�i��A�E�G=�~�'�uV��&�#Q�O�*]��ʁ4/�I� �^P�=wW?�<`�h���J�O�z���\��!y<�7N��X��鿚��Hf?��]c�-ݩ9�g��
(�Wh��p�l#��G\D:����q]9!*�lԍg���5Oq`����Q�B\�h;�������<O5�[���&d1��VT3i?S�c�p�D�U�}��g��O}b΁�f���o0����Q5 �v�U��vhmM%%k�{��bF�ك��j��
�o��?p���=R��ύ�x�Ԟ|�'���γu�X��I�<u���,r.�ގ"t����b_�;�]�Ml*���oޏ�+��o���CE2ݥ���s2@Rǡ��\
�ͥN|��$T��0톨��T�oWd������Q�+Ӡ����f5{(,�N�a;��Ɠ�2���csD���G�ޗ����M~^�30��C������lzht|SG�J��|��`f3�/�.�ֵO�����c����h�I��*�E�H�Ɋ�'Q�d�\�6��Re�I����eٿ�2�1DAL��o�-�qe�Q����?��:&�D��=�Ϯ3�96��M#.|�uB�bڔ���ޕ�ǘ�(�0�@IE珨���}�x�sp<:W��rЀbn~f��T\8��\��0O��ϔ$�#_�p�I��;����X�o�˾�X$��TuXyoj���?����-�ĵϞ	���&Z`Ζ�,-p������y�r��?�E�
�,0���|�j��N48`����?�����`a�H��r��{��^
>���1Rrk&He_���h�3�	�IeL��.+�X�ޑI�6��^�`l��'Dg@+�kקk��S9�W"��|/�'�U�h�P�V��c`{a�CX��ɓ:��ڇI�D�����Ά�4��`P��7����%6a>?z-邻Gɤ�h+cW����i}��A"&	�t��4�!�ThV$�U��Y*MF�D�=�χ)�o�jsƞ�J&!�,s�j�ldb��h2�Ao$7�2Q�#5`?�60�e+�'���&ޥ��tҭ��x�=@s��@�)�=���u 
}��G9�j��9I��;@G�A�s)��!U6�ss%H�Z���uDC�o	�nXȴSN�-}�ixZ�ԛ��V9�P�`�ꄕ\RI��X^M�ǽ-�D���~�U�1��Ӭɵ�j_5�s�n娲M��뮫=���zU�f�WF�P8䴇��]�ט���ν`�Y����X��6U&ye�p��)�I�{�/��v�
'w��k�������0ԓ���4)Hwx�����qL.s�����7����
b�d�|���(i�T��ώ�Hf
�(��l��'�/���Ԩv�Z�_�T��C㓨S�H��V����Ո���s�P�\�Y��n2�
����/t�gگ-�=��l^��:�O�S�F�d�TY���L)v����?�i�@Nq؟�FJ�&Y'j��N�yH��YG�c}�]q05S���DV1����\��9�ّY4=N�BbE 2�ڼVQ�����1PO�<�?r!�4��A�Q�)���@�4@����I�y�.���"��;iR�TT4�u?HA$x�Ƀ5�ۓE��ex���_�c�fdd$s�a�Z�O���'mB�V�"K����*�U�ڸ��Uf`p��QN#M}��ʸ���8�8)�LQ���LI
�pfF�vm�Q�����݇Z
c]D�xo@�n��&K0Jp�]M+M�
x�y��r���A�7v��H׼Z�p�'��4��>��y����i5�X(��G��kt���d���~�YXxL�̏8u|k�¡�w.��l��x����"gBh��n*�$��#�
k�}��Ȉ���.��uu�}1�Gv��T�H�xoԮF��������p��:X.�B6�x �=��#�Q��t��>eZ]i���F�Jr`�`�D#��g"F��?�8L���7
4.zS��@��F.�i͛�1�ˌ,�:���#��qi��ᦝ�}���C���aʃ���Tf)��+یG�J&	P?Q_��K~�,�m+��o�#�g���Q����MJl�_�;6�"�$ӗ��F�z*�-���Bq�9ij�di�=��W#r��2-}��?��
��4�tS(��i:�6�p���!;���(M�uw��tp���{�su2�#m��{����Θ���_9hR[�3�šG[z4G����
�<��a�F��x8"VK�`*���7;�v����5�
';m������F�M��e]���,aco�'�/���`_��y���L0��y�~Җw�#�LWQ�c�gkgk�H.��v�
?֑�<��|���
��Y��L�V,Tz��I�����e��6����P��>�Y3�$��L���h
��M�b0
�s��t�5���JA��l���'Sn61���!��hpISl�AOJF��߿�l�Q��-œ�
CC �A�X+�ã��;�^�is�èGh��Ţ�a����C=qZ0e��=M6�X�G|ؑ�.���;�:4��{����N��Fߛ�hG^"���� M Z2�ʹ�I)ņD�/}��jĔ-^S�L�.��gd��Y*X&�2@�Yݣ١�%�tM��~�w)��=bo��N�D�҉��^�ԗv��:F�.b%����)f�{1�.�մ����h�d�]*L���d�l&�[P�/��ݲ�=L��{��V�
�4]Z��vP��Mj����1��T
��ylRb84~�>�����>Bx��
�Il�N��hڄ�eji���f�yפY��
S�'�B�T�€�!�UΚ�ӳ��)b�5�'��~O����k}R�l4Q� �cB�P�
PDL��$��iN���TNuί{������7�T�3'����D���@�1��C��]3�{I'4L�@�*:�D�h������:�R]��s\�IB3���
��`���>�M��x�i�*���1w�J�	��ʓ"�7�f��ab�۲���(|o�ԡh �I��?�e)���y l�mj5�N3�=�}�uqғ�'4�]��i�h��O�a����W���Q�R��P�;��^������ۍ���x�$jr!�9z(>��BC���g='Lv��+���a��dT�\e�=jRل⇙l�?﷙&]O�R�Hj-G�5�-�=���(�W��"tw?F��UL���ݠ�j�'�t�6���:��D�@�@t=0�1(�h؞.�h��g4�-\����A��L���dZ�F��~p.-�
v�5�DNX�|�I���
+����(p?��Z;�~��k��5MoK"�M.�����k�#����]Z�RD����R��X���뾻�x���uP:q_/YMГ�Qb��������NQ�L嚋R��>�K�h�y�̔��={>�;����Q43#�tX_�֭��|���ό�d-`�׎�j2�˭"�S��jw�x�u�3du�M�ұ����{n~Bw\=9�&2�Qx�L�,�,�\�C;Ow[���gN�ш1�����
܆!�G`�@�G�&�o��������TD�C�M��r��L���Գ~}��
���Ǧ�b�>ya��b fį��U8r��t�<v6�s]��PI�E���u9S�gh2�Aɚ��PO�Pn�ݾM���d��E����_Ə��O2�G���e
�C!�u_G`�,�����q�����ƴ�*Q4?[�.�����G�e���0�2LrA1�^�bR�?�h���R�:��%�PT1aU
%�Ef�o��h�����,0r�.����b�)���}���J�I�J����9�b��m<��t0P2�����暕}1\�sE��Fk�3�ݮ��E����]�oJC�ԁ!�`���T�!f����;[��֖�Ln��MʉO����!��@VQ�������L�&��4`���k�$��8R�`��Ȳ.�:;i��m�)#�@�1�VXsO1j�j�N/&����JN`M�>E��ݷ'c�5A��S��2�:y6G7�>�L���yĥ��U�Dlh���`I��%B�ń�4��x�j����P�c���j�޻�d�Ш��>���ix�U�8�K��4����2�d���r�(i'Cc#�^�j7dG'f�	�>M%�?��o0��L'�S�哦M�ҹ'bܨuM6��٬�=T�v�g�C�G�/�_��^�	a5k{B�0��J0I�������k gG[�t�E�,�&^t��ޘ�ݩ��4�vn�/x�`ΘF����Һ�1�aW��Ne�i�M�~Uぬ�մ�32����3�Б����R'd0Hw�}��As2�,ō-��(�M�k��.��
Kr� ����@s�L;����ůIy�I�p�I�T:m�(�ūT�I��)�58<ը�A5�_�#C��|������U�*���T2RSRK';*�j��9i�6���ب�,cO��&���|�v�}w@��)	��^��eR����p�߯g&��>���]�;�<�Z ��XW09��it����~����@<�u�p���y�VѬ��J�]������#�nlx6�xŷ���LvM�>hF��Y��$OiQ<��GSclGt��:�&�R;��:�T��p�έ����C��Y��k?oc�]G�@E�o,މ;�`x��<+)s02��k�4i)��=|�Ms�3��o�_�?���X�n�3�`_���GyCMh1Rk�	&�CE*�OP���h`2�ϛ�F�R���,�*'t�L8��)����0��*�v&B�Y\��.LQ ���Pw������&:�b�j�G9&�L�Q���"Zv�>�H��#4zE�,�]�[5�}Ơ��Ǔ����Z�!�ُ~?�(a]G�e�@{h�R�.�f��'�E88���5�:���]E��m�x��Yy�jwz�m�mZ�T<� *�84��n��
��إ��<8E�ŧx8"6Ow;{c6����N�K�K�#lc:�,�3�qq���9z��󌍤Dc�nT��ІN9XߙH���LB�c�|�AS�ɍ�O���6�1���myV�W�Uׅ�5�ޱ�!���+O�D�
Ր4��J9��
'm2H�h��s6�����k�A	�⸫痑�����դ�Z�5GM��l�]_O:�EjG1����8"��"�+Y-<L�H����H�u^x�ݸh��*����j�cN�ц�,�>��p�s1��o��1L(x�=e��l$�^�{fr,F�Rl��/��n䃹�nf-�uWh4)M��^�9ujnI��w�!������l�67K��R��k�0�u��5Uh�f6�����lx}NUi@�$�!S5��+'�+$��:���
2��8��)�X�G5𸟥1���=4�jѴU������IZ�
�{���{�X˶�<h\�k���N;�6N�NHPd���J"�(F�GB(�x�~��<��B���  D�L"%LPܴ�q����e�1㻌�֮S��n������2�c���ݚ
�2��pR�G�w8t��7=D�d'E���
y�`�4�1h�
�����{Ґ�Z��~trMҤc�t��+5�Hy��դ����N�D�4�Æ��j��\��-yG�YPC�r�j�
�>��J?aԄ��dMZfy���ȗ�����BP�u�\�=�8>f�YSr}�æ�.��U����h��a܏�coO)���&ʰ��6���L�|�����J]@��A6�H���A�G��想����07���	'p9��L�zH���n��1w^���
r�W�ym�>l�9j��ީ=8M<fZ�{���i>Z�V��P�R�e�b��C�o�?��&YtfF��<�9��t��ݬ�{;W?����4������5u݃l6�w�_#S�t'j���hr�[�<�8����z��>:��>\����G�\��7�,
(n..�2������l�R��t�mP�H���>f4�aī���<�OU�w��Y%:J�IQH|O��XM��]*��۸gAMmw��7��٣��.)��P��s~����K����3���?c�W���+p��x"K'�9���c��X�1UR�r�D�#�\�k�d�p���TM��
(L�U�'�5�m}U�M!�uݳ�qbp�
�h�]}�,4\��HXT�=C�!I\�{�X�Ё�f���4t�ໍ��a����5E'�TL��Gի���U�QSQ/o8�nһ�!�&�A�4B�
�U|���(gkZ˓
P��@�'��������Ih��
_+
��3!�$�Oi�A�{��3��J��ؚ��Xܬ��d�fD���q@���=�<�	�� 
o�E3��nJpy�
|�;*���gE�Ӣ�|-�`�aֲ<iz�zc�0F$@��L%�.)���{�&�hi\��Vw�H�^��1�)�?�?]��k��t�c7si��Hs����n��ۥ���?�ʘg�3�e~0LLH�wV�'�WK�8M�M�V8SW;�\���ukj����4�F��M�dn�qcp��m���h:�bI�#��ۡ�iލ�<m7[b&�cnƾ8�m4L�=�s2�ƒ�8�ɞ\�:r�g_�XE�L���I����v��
�,�>�c��]s��H#�Ӡ�a��]�3,�&�D������ƍ���ƚ�mk�0@
aD�k����.�Q��8ٹ�!ݏ

��M&$�-�^�Is��Af��ݳ`hހ�e��
�"V`pR�}�ݰb�/;�G�U�-�N�NG*���^m<d(��8
1�[M(���{�.>�<k���Y��d�Q����2�%�ԍ�p�F�(�K%�kfcތ��q=�y����l�4rm����)_0�;���h�R�gD�C�n�՟/HF�a�ͺ�'\�M,P��cة!Q:閛F�M�R���c���Q��t�xu;�n�J��e��s4�Z'�@��l�k�O�I��"��b5�[;=�)ǀ�S9��IQ�LD����lT+q�t��0@r#�(�(��l����O��֬o@����E���D���=���]�t}��/of�'!�Tt�0�BC�M�u���4}�X��U�c!bH����k���E~"���c����D7K�(���l
�p|9B�A�6즛��u4iJ�^�^J�<U7�MP�v]C�Z�=#�}�Ѽ"���
2Ze
T]�y�)�
�b8'�cd)mNx���{�RR:������'�we����N�f���Ez_6�E,\S �3�ɲ��_5��ޚY��R0k��v���;��ž�6?�n������j5��n�~{�����\H����亻�~��fG3Îf�W�-�5�&P6�3x�'��$�	����3��˟�T����ô�5~Ci��o^���PP[�؍ͮ[����d������$;3Įa��̢��U��j�C�#xڃ�6����"�I�ʔ�����kc�`�k��{��x2�J�e�vk�P����'ۡ�b��8�VEgh��P�v'4�;yݸI��N�Ro2<����Mʜxy�&��Hsl�A,�9��
�g�F��3��'40h�[�M�OqA	G@S:���dV������^؀�{P���U����"8el�_p…V�|�D�tHM�4�!���B䨌�`G8к��܊3�r�u\�S�K)L�th7�q�,�4vۥ��YwY�O�q���J׍>�5��]x�u�)-�`���ɉk���,��J�"~�0|M�%W�K*<���4y(B��A<�`ʘf�m�!do>�X�A���.�ds��_����(Ȣ��j��S��4�D�pAco}5hqdK�A�Ea�*�b�^�SP�2�ES!>�m1�`��}��	1rr�Z|�{P{��¼�A8h1Y�X��i׷�:����]=�����ruMNl�0����ib��;/|&� �q�v7�=���Tޛ��S~h�6I�P�1��K���u}���S�#E�w�|��͋\�A5;$9�Ұ�0�6m4�#����S���{z;�FN�e��?_������x��H�����3h�0I�Se3]t�D����]ւA&�7�\�u?O&;HVG�$�h���G!v����^o~.c0�qu�_�����?O�S���[�s_5~�y=������||6�W핗ue!ŵx�t�d3՟���vG��.y�]o���p�1�E��U�a[x0ԣ6*��*a�b@�3���y�&UI��+"K�}b���5�O��6�DR���TH����&�
���	;�cW&��#�r(��Bh��l�F�;v`d���O���~����
��kac�����"�x���n��ʢA*��	FQ����];>'�X�Wx^�8tE=q�s�g��zK���p�k��ү����W�P����z�i�<ۣ(��Z�i��â�Hc]������Ȧ��;͒͡u� {:OG���p^j�N��ۭ���Q�sA]�=�F��ÖNl�@3frx��WC��3�x� ��H�aoB&�l���P^fz�Zk�V��÷�yx��n��3�����>�:+��eT�f#�8��=l���s�^�q�$��ܟ��ˈ�'erU�Y����<9wY�+�k�r��ڮ�����'"�
0�'E)�V��L�ת|a�7�Lae��5��g'�β4�m412I}��#��'2�3�x�J�6%W���k�4�%��bD.�MGU�j�d~�3����k�DivӍ�S��Fz`�%��zX�~�Ş%��թr�F2��t�GH�o_>�=�&atuNN����
�Tu��0V��?�
������Ԓi��b03;���st9�aTY�#u�.�{Q=��&�+���w�|��U�Y��x�[�&ӱY��Z�&���������߿w�Mp_7?��%�.�7fI�,i��G��;�6�q�t�@�VӃd��^�挢;��1�B�h9��/D
�A�'�Ƈ�p���*�ohom;��K�q8fQ��Lq8����B���᷒vx�C�!���2�@��Xh��q�;��Ϡ��!���ô���
����i�U��#���W�?0���n:�e��i��~Ãd���8���>�.v��s�_�;�׮�{w6�ڂ��<��g�=�"���=���L��
F抂Z�DU{:�Դ�RK���4�<)�l��00	�	��䴻�6F�<-r�E�y�
�&�-�!-�R�9��:$\�"��&�#/�0f���q�I'z�M��L�j���8��N²�C�
J�aΎ�zw�"_M<NfiV����^A���Ni������i~����K'B�+�C�Wh���m:TYfB�c.'4�7h�������S��o��HaB1��qB!�s��!�h�`.��:�9�u���~�{�vwI
�9\c�6�it���bZ|�ꞍG@�N��T/pVt|�m��	z$�B�yF�P��q(5f8�1���u��M䄺U^`���Jʯ�]<;��[�r3�P:I!
h.����z���ewr�W��{�]'/�G!'��Q���羟4����]��fU�?��q�)z��Y�>���e�]�n�[�wL;���SoЬ����2Ƨ�	`)��Z<8��;�hPZw�&��{�͔��tb�U��w1��X�}��d�$:6��i��>���=�6�AJ���z�a8#�r�9��!U�Q�̙���g�]��DZ��\��:���*��<LͲ�����8�X���xW8��Ӯ�9���d󣑡Jurq9�g�J*f���:�l�ΤnC��ϋς��3��5;O�R�y�j����9��ڞL�	����֓(u�j��ִӨ�߳
����*��{]���Q�s�t���{��а��s��������g����LN9�4��5�h0&�Ec�L��H���[��#��= ,�A����(s-ƌѧ�^��8��}07��PƝ��[4DHAE~��>Ɩ9T��9�.�2�>7'C5
�ɦ�q7#�Ԥg���E���FNl��FS�G4�V�'�΋Z�<P�q���S�1��nac���͡g�"%�̳vo|�^;;#k��fi�Jp�Z~��ܯ�)f�i_38�0(�0��Tn]jV�TGԍ��#愵|՞I�u����_a�C����٧��2g�K���SV]�5��e��}�M�N]X�_a�;��כ�a����%9��?��tj��h�&2��'��Fŵ�@��,�<��+(��Ӽ��a2)�O�XY��
�?E��o�.WӘ���Ă:L=����@O��(�-��Jj��+p%�#�!��A�2|q�Q�`y_�1_��Rz�Ўב���=��k�Km�7��ν�8wbʎ�����G���/|���)�͆I����X����09g;���>�i��FUN���`��w�9��(��0px���
����dՇ��]$ۯ[eN�f"B��Y��E������7nR/��UMeMǴ;�^SL�:��N%k1~�����n�M+^7�T�/��o�wPVI�~S&�6XA������C��'}yR��@TI�jjv�o�@�C֍*��9I�@J��6��g�Eu�w�?�'�ɔL{��@]@�����p������W"b��]�������%Q}���x��M���tP��h�ҭ�@>$���J蚟fM8��ٔ�R1#����-�O35�#�U����f�
�@a��3�64�(�`Ɓ\��9o��v���(�f��y���1<�Z�m��w��ܖg�7�^���P��8��ԛ����Ŷ?}�F�ڢ�n��jZD��f5�~Q�Zo�@����P��1]�x%#�Opb�*ip�j��c(œ�$Z3��7o�"��@g�����	�١n͠3�����,������ �$�V�ag7AU��x���]eT��4ھ_Å�["#8���陛LID��h�d�4
Q��V����3P�,v��;h��\
�F��w4ݛ�p���~��I�2�'i���Ҕ#�ܭ�޿ˢ~_?����IF`v�n.�'�M�0"��O����6
�j�۽aM�9QojQ��C�(�9���nb�n��]�w��p�x҄��鲻%dS���L����,vF� %����}�Լ����;�{��sA�|M�4B�ݤ�l#̿�`�_����$i�-�~��l��\�%��a�cx�G�q�ȏ�>
�)y��o�İ�YC����L�63h�S\gW@ܢ9���Lr��v��Ugp#�G���)�k�#��7���]7��p_�����{��&���i�$�����亀z�dZi�7���X�6��a=r]$�F%��P�
���v��{���Z�������}�w�����l�2�>�#gqocMvZ�2}i��vħY��|��r�s�v�TS0̠1�
鞕E��h
j��lr9����!d���z��4�Y*B���[g�+0̖����Lc�=��i�<ryw�uй�
�8�,�g��哱�|ҤZ�5O�Ԇ�d)��ٝ2���ye
���`�J����C��#9��Ɍ��#�f���%�]�
�(%goCZ��yG��sL�,�#�C"X
<p�$��{�+�֍�F˽�l�c[ݘ$g�6��25"�5N��k^V�0l�}��G�Vu��C�ݨ�+��6#���)Mw'܇H�c��
�Ƴ���iw�G��}O�0Th��6Fb���T�eF+��&_<{S���86oAF�4���^��b�Z”�f�:	�R�ަ��4%du�W�����1f�5e��g�|�pwTO4:%��u���vw�{�_>6�wD6~��ב{���	#q�����M{�L�R�1��b�ix�p�ޡa����2�V�6��M�gi����އ?j'?E��n�<�E�~��ϋ#dG
�5N�����@�^W��]��w���Ch2���DF�FW`����^�Z�貎������\�0�J�:�#5l�y��̢�r��O��`U��<-4�l�@�[�JY-��s�t��5ܬ�ux��_4#e��
���M1{0�N=��~�ABy�`=��e�t��\Ú��ԛ��E�b�+�W����Y���
U@m��h4�md/�`��/>4���57��lҭ�a��~0��T��w�DAs�gO�7Z4�"ͼ�U����Ѭ���F�Ϝ�)*d|�i�Ds_�ѓG�@��"�p+6o��1.BU�1�s�v�����_�����xĜ8:B
k�'ݵ�>pw��R�]E�L���.��V�Υ��Ϻ���͕8��l�"s4s�����W=���%8�����q"�|�2�����[)��|F�֋��H�"z-r~��>n6�kÜ+�z�}�|�~��h
�/F|e����)���?1E�
^�:��4`����h�o4"����t�:Ic
d{r�D-�&fKFp4O�䞎S�^6�Ů�@!�F�kWm�h�R�cFC��v�VtL�Z��#�5�{R�ݯ�
��z�Ç��s�*�9���Ip�g4��fh�����_/� ,���K�T�@4�ȦT�=њ�s��+4�����9��!�E�ۦ�dG�h79�*�Hڽ��/��χ�1��n�	�,>��/�Y^,-)��:6��+]cÎ�9��gWG���bD��X�1���l�pߌ��X�Ƭ����6�b��8��ZJ�G�XK�����#�3iX@�/�{X}Q���Tr7ոO�M�k4y<3Mq0�QƦ��X7�s�}���	�vb�e�m^;��D�ǚ����a�ZE%����!�H���$g2���m��2,j�м@�χ�.�4a_k�ټ���]p����Hz�Dd�Re̴��1��մV��$��4x�v���!T{2�5U;r'�[�<EIm�e1]��C1P��W�E
.���6����6;]��8��Q�G-{A�4��YD����̡�ce�j�9�2�k�Ć9k�$�@US�%-�+�U=;szD��R�(�E�*砧��º��q�Wn��G��=�I����X��,�$�f3���CtZ���Qfl�M6M�{I�ܜ)��f��ʺ^�dLr����@�֡�T�55�Mu�$`6��KS¦�*0(��A&p��Ֆ��05�ث1T��"�&�r"�1	���c-�{�]֓�����5���B�K�4@����F6�BKT��T,FY떺�R��k��[�U�[?wO��td~6�כ�h~ɉ���B�=)���z}y�6�x���t�����W�s�lT{ӝ��(4�Dk�E���zlScwxiW��u!���Oh�z
עBfr�ʲ��ߚ����=ƾ�,1�_�R�{ħ	3��ް~j:>�:~�}"���p{����e���wtsܰ�_�c>1����|��C�~->囔��b��(�_����}1?�����
P|o-��{>tC��aφ��B
A�4a���,��x
S��A�QU؅�U���F;zE6N`(�i�t]5�f��4QZDA��!��aH�>AN?,��x_��
���hN3�I����jA{0�*
FoTG6p��PN��OlZ�S�thm\����̥&"���4\i"���ە+٠thȜ�T9rR��@�ܘq@�A�ioVpHK�����羡�{�Ա���Q'�h46;�D@�������W��ý�i��Q�&��̠�=��g��`�݀.���u�ɻ~6�$+p��"��D�a�^W9�V��i63�+&�C�p|���v9_Ho�{�G��慆�}�����<$nT0����Ð�$������9á�ܷ�4��>p�����V@4Sh����[Q�
���M��r� "��(��ܶbZ��fz��y���F�/�0�*F$y�Cb<��^/��ODo�nB���@�3�s���~��H��s@��s��H�W�y��=�3JSU�3JBө~�P�b 2�Nq,)g��7�rq$¹�h�~�Æ�U����c�����o~v&�D�E�y�g#5��9F����z�}��ݟ��0�E�c��N�-���D�B9P�AGC
�Rv7��{�+�0!��&�Zk���f�n�k�F1��B
�`�6J�	%Se���t�F�Yd����zK�$�����a�2(�%���y��sݳG�I�F��ۜ��qB�F���Pّh0o+�ʅni�qGDJ���}�&��ГR�Hbm���,��+Ym��xr�\�ŲGoY�?��ɹ���d�ـ�nm?��!�-�����6�����E��Tl���9��{
M�����4��?q��w�=�=��ӌ	��
�
��D�lRJK����C�b�}������M�� ���<|��?�DI��������2f��g�Q95��4�F߆�_��4X3���P�~}��}x�|\Ik�MTs�G���{�k�L7�0?��R��^�/�B�*�@�z�\�L����.�vtU#w��'ym���A;���� �[��ܹ�faF1t�9��E�h���n<OX�͒]!�.�I�DT�^��Vҏ�GΡ^�cۄNQ���a6S�=��u�׻?��I�%�&��Es�oèS�[��I/��'q�-��X$�B-@t8�yF���XfI�n��J���&iM�\����b7r��Ci��Q(e�g]F�hG�a�k�M&F�˕��OD	!e"���9K�Y2��+���u`���q�D���X��v�eS6���|�l+���"��a����2��J�؀SCg���z]9���=y���~-����)<??�:�H)��C8�C͍M!���%��@�����M��=~�^{3y)znNG�45-�y���ޖ��!�����:�=�/�XS&K'�"CW�^��4
5<6��>�����a�ެ��ON�i��qQx�D�����u����-z7(���y6��F:G}�t�����Y���;��.Y�e`���F U�z*xD��N��
�Z˛xL�ppr����41<8�~���H2!;xW�閥���"���)�̌��֍D+7��~�s��6Rɇk|s]�n	��aSBJ��M�� g�T��r��:����+9LNΛ'�ю�-[�R�5�Դ}n8�9�l20��Mo
�^���Uñ湿�ǫ�ٓ5j*��Rآ��8R_���&"ao��X��5����a��fL�S15�,����r�3��^m�GO߰!P��L��u������(�I��B=��2lN���Q;��&�aav��>�U7�IPU
\���:�� [��S�I���P܉�_�
�VN��&�)yM*�͗C���;��o���a
c��o�(q8bR��jd�`A�����y�u}
�~�߁�p��!�-�M��4�+�l��1�:p�(?�\@�E�4(�Uk���~��U�u����0�Bv������^�it��:��T��!Nx�2�T��E&4�4K	&������N��>��i�=z9���	*(��j~P4�%���-(t�$�q����=,Bණ2/eۇF�_��A�P'��2��NYN���@��6��{�I!���#�h~�E�1|u������,��)��E1@׋�R�	�Q�	z�p�b�|e�SV�bGh[!�����.����	��⹰ʄ,j��ut4�A(fؗ���y�$������Z�����G"�`�0F��x�gS�_0(p��d�0�nA�:��8&∝:���o�ܞ'-���>�"�w�~'D�e=�\�D�149���$����Ƣ����_��b��Sd���1�x.��;�ud���9��f��Y�0�q��{͗�Z|PWN-{��ߛeLV���Sc��{��%�Q4�X���#��Ͷ0ԣ!PoZ/��3sD�����F�
���@ف���i/�ljZ:B�Y_��~|��3����_l���\��KOx�ґ�ǥ�C��Λ�8Y
����VZI	L�a�� ��K/ؑC��W�h��9��aX���#��k��0},ˁ^����F:��8�9Ǜ���T�����8GS��~o6��d���b�\��������轍��v��Y�g��m�.T:�@�\1�u���	M�&zk��bA����Q��j�5\�?Lק�*d��*���6��Z�z��
t��g����4�)J�7W�0�8�jh�rmф��.��)��R�T�'Ɠf���u�hO9����a0��R�CˬZ��iC
�YE�F�A�v��λ	{�<J��-B
���$=B��ghv�G�~��P��M��g�U&L���L1�Y������㩟w�r���}�H_PnW������:�z�y1]�S��xק�3@���/������f7r��h��gx&�W��B,خ��v��>��Y�>a���ݳ��:_���Z��"z\Up.0�&��n@d����;&�T���P?�I��V�$��\��JI4p���/WVLQ�z0i�IAk��
�R3y�$��d�����Z�[��g~��U�h����osX�U��N��ɶMނr�ZbVR�:��=L`�(>~��<�7��/yۺ�ϴ�����Guʚ�ЧF7*\��͛i�t��Mu�{�Bt=J�l��o�M�����ϓ��.+����,YǙb܅�X8e�x��@��͔Dt+�\ot�Ќ�g��0HvJ��`4
�h�;IR!��v�����&�̃S\L܉�Eј�_����-��F��,x��g�)(���<�����b�����1X���	G˨���EA�.<1������<��l�NM���P	15�8�KM�*�WК�z�r������֠8�{kV��I��5b�ee�0�.q���2�[�D
14����þ��<U��s�(�]����q�E<�v�?{��$@���y�S��/*��]��Q�àz��B4��E�d�J���z�u�Q�7H8�:ir��9.D囑3�c'RR�%2��u3��|����6�`��ipe��ĽA�*�1N)9��ݑ� �~�LFN�~lr���
��A�z.7;~c�(���!�h�V��:+zc��V9ym4�`
ctC:�
FK�9ek�'UJ	��*_n��0+���8��
�}��l�F!����~��G�L=p-vE�����	9�F"���qA��ȥ�}v�����^V�?"���݇C*y��� z�����A�����eG4*��u����Fa�x8
��H�R�NU�#�È羏M.�偞�W���\��bl���9�ڟ���^��.7GY�j�=��vˆ��|V�*\)i�d�
e.��'˪�����g�4مҨ}{�W�)�iĢd��&�=���3��G���,��z7iR��$��^\GY��7��"�Q���j�ְ�M��88���:?,���3((���Y5=�X�J^=�*�Й39�	��&4�%�bd,j-X�������:WHg4b� �>l���AQ׋����7S��0o�mf�Qqd�س�$nWv���*MY�t���z_w�Z牨�j��{:����
o4���ؗ�B�h�4�Ո�v�%����eI��*�\�~��7����P�O�Z:�ʮ�:Ό{Q�µ�����ruG���R��؏y#�Q�Q?'
geV�1����D�\(�}E�o��Y�,X�0�jz&�=K�B�ˬ6G I�,t���u�@2�1�k/[����y`6M�=`��vۍ��u�E��
Z7]�>���A�;�6����[52d������F�E��,�BE
�@��p)z`F:4�4�,���`�d
T��Z��u~6��dK���5�ͶZ�=4_�p5b|�Y���z���ʵ������p ��YFz��Pl69�p��A�P�,oú̠�X��0���y�I�ATl����l[��lJ�� ����l��
ę�H6Z*4|�>w�����u����&�MÚ=�x~6���6e�Y���'��>i��K>1�no,�]��gȼߜ�9O�AWF�/��K�L��u7��r�i��9���σ\1�IN��&�Dq�Hk�|�OV�2��I����{-�O�_^|v
ct�gͰ��$T���i�RV[QoqЇg�(e�򌖾W�\gۃ��jp� ����N�Frq��)���lTU�j���b=�����";�TѨ�E���iϻ����*Ċ
�F�0#y�����3&�L�`��
j�Z��ڴk�ÄI����җ�l�>g(�U�l"3�@3]�nޕ,Z�k�Z�ޮ90��Sr�XV7�m��MC�Y�8�6O���@��z^�����v4�w�3Q�"k*�SM��:��1uX5:��*6�(�7�f�Y��*�A6J@O��롵�9�0`2�.bZn��gn��<i=�'����k��e��Qj�X�/�1LxHwý�d#�HF�(�u4z#��f^
F$U��@ ���
��lVE��
�-�����ba�9�~a���2ֶ���}}?	�u��6�1L�"s�j
�iﶜXg^$3XFS�f��>�#
 *����g�iP�8�j�*hi��v!���_<De@�Ҭu�kC|���A�����Z�����b�-�W:
{rト�O���%�|��p��/�a
����`g�eov�f
��a���N{x�3=�D���u8Ė8�L}H'7|C{ǁ^�A$n���}�����bS�?���nk����t�q6�s�4̊;]7>�+[��A܏�,Ӣ�
�ݞS[G�z���<�:��A�⑟.�_�F���M%��\�H �}��ޠV]ɲ
O1`{��`a�A��(�Ҽ9�eXmC���p~GO�SyM�U� �Hʝ:��3�Vɍ#�� �"�㠝+�Z�d�R
$~V���E&i@�(����9��Q�~�u5�E}cfJ�x}u�.��q
�|��pإ�hQ,��*��Lqv3L#b���Bw���
߾'�"i���@/��y��[V�7X�
s�oA�7�L����wh��h�*�9]T�s{-V�c*e�V?��
_V��UCŅ�$ٝ5Z���=�Pn��g.]sy=��V~��{��2�IJα7ˮ���_n2��ʡ�^o=��Y���ݟ55;����E4�th��<�������&
�[Ԧ�6X�ƒ]�e������Z��`�Z�(��}�Q�>���VRj���m�3?��A�>���F>IV�>�R��"�޴�hk�����	=3���-�#cvD؅��%Q�'a�ôS�ny
���ǎ��zS(�]���:Bz�:����v�j|4�M?sX��� �a�(�E�:�fi��H.M��gfTQ��8�cr@9��hב]��X���@�,�g�!dHHw}|W6��&V�>�0��G�{zzxH���C���}'�ڠ�9Ut�۠�~���o��8Y\�2\��8)~���ި�|���.Sud,}ß��8����9��2=hx@���U�{+B\P��;n����

/
T�[�J�%�'ğ��1�.O���^e��-��:�=YΒ����Z	#�sξo��_[OӁ�/~g��b�15�}��P�""gj�f�59A�/�UJۃ�Ƿ�Q�A�!͔��Y�td�+�L�@4D��׾����
z�wp��Q:�FT1lȞ�5S�IMaDͪX����~H��9ϓ�"�q.DsL��^TF<p�^�=�k�����S?�7�`4Ӭq�@�����	tM؞�}�;5�?ѡR��fT���@g�'5+7��غZ:�A�
FĦ	'64��@$
.��p�s�Rk@�!��W����M�p𳹟�]��){�h�/(`ۦs��,՟I3)��a�t\��`
!�y��"�a�c�Ja�r��s�H���@V�#
Jg#
iҁn�jc�}c<�3��A��S��E�|���:�{s�	�O<��4�&*����`Z�_��`&�����_����>�Giˀ|C�K=|薇�a�!.T��
]���
í:���,
:(SDc��������?����US^4�p\ܰ�f�Q(��d���$���P!���v��n8���VSoQ�C�(�w�6��^���L󎞀o��z2�#�Ut�lv֜���$
3����p�8��ڎ�U�V��)���, !�jX�n`�v
+����N%M�xn�n�ˮ-
�4�9���!���;�iZ�c�����jT4Z44�S؇S/��YE/���ӇÎ4i}� ��&�&%�A��f>��һ����`�iOQ�П�5��K͟�*���&Kͦ�+@��0b�p4��>E���`)�;&����h�ŭH7�����RN�t�F��62����x�Y�)���g�;0�B�IF���ٱt�D�ٵ�إ�1�04��u�ކ����jPLed��	�j���qC��ϛH�Ħw��q�#	��np�=b����ź���4'k��M�}&�c�Lj|s1U`+F��9tE�B�C�2�Q�,s9‘>��av�g��z�$~&f�B8BI�ܙ9��"&
i��:+�YZ8���/�U~�Q�/9�%��i���^�\aL����DҠ�:[�5=&6�XwզD�Y�ٴ�djpvg��Y��k&D�.4��E0�m���"<Z]�VF�`�8�=��ˢ9�I�R��M���&Yض�6��3�r=�z�+��F��k��I�Z<x�ا��m~�H�A�&�˿Zy�����{�"%��3Б%G��{Щঋ�܂���.ʼ6�����J��S��=,iAu%�������`U���ƘDC�<R&3��4F|Ṽ�x��r�w��z���3�SV��`ɠ�/<c7�$A��Łs��{5�1Q5�)��:��A�@C5��7
 �����5��X�3��`����u��{
����	��v��ZA�\�BS��H��JJ�N���w��ߑ�S	�=�fDмUcb�g�n<�7Wt�;��ޠ�� ��k�N�3���A�m>Ϸ���n:���Bt��c�(NEF30���A�g�!�&Jp���_�3\�0����M�D�	�u:�!%&.�
R���r���74i��>�iN�4�f�����u7gRII�>(���a�$3��ۮ~xj�����̺���
��By�#3�T�)m��S����,�(&0h8�������8���ӑSd���k��Luѹjۀ�T�^��p���SW��d�d����HJ�պ/��|�Ny�T0 ��峂�a� oo�Ȉsw�諾J#��t`&� e�!�K��h&��iD5��5��s?��6ۉ�6�y�=A�e�۴�O�\��-I�A��m� ���L��yT�LAd�D���FWq���{��48>�'��%�`Ž�A�8�Ƨ��
�/��o4�Q�#�����\���Q�A��W���<�כ�1:����C3��B��/$�Ӏix�D����D��t~��_���4Q�
`�V
�	d�&G׀�|r6�M@,�dh�L��FԶ��j:�Ǻ^���n~p:��r6��&(��n*$l�Ff�w%�t�䧆��|��
���(�
��������C��(��A
)f�\��&��(�Ǯ�C��Ͽ$�/��hV���]8]��пY6�D�Ci;ݐ�Y�
Cԣ�$L}E�5#�f�ƍ��p�{��
�Y�4`v�FR�΁�SU�F��1o�������g/��fC�
$D_� �ϲ4�,>SƟyr�����to�J�E���P�u2
�4�sN6��xҋ!�:�F�@'X�=����)֤�.��39U�@n&)�K����:��,��7�o��G�LH&k�ǵĽ8ŕ�Sݛ~ 8�r���ݿ�n�����OO�j�2*�e��n��[�8��`�$Sf�x	�N�� DD����8����3��3�܇���@4�9�\�t����qFl��&y��?�ȃ�6�ϓ?���Ϊ0��(M�'�^w���(M��Щi��A��X�"W��q��͍9�ñY����Rfe�V#���6��Z{����ΫǺ��v]?�Lj����>5E�\���Á�0�����~T���90��{�_#��V1d�A��-���	��Gb@��(�(��<�}��؏�^�4kT�pC�A!$g�4ߙ'5q�ilՄ��^�Bj�%��F�":�#�X4ӛ��;�
v���`گ�8�Q�ܟ����+�'Z5��9ֹ�x{�C��4m��=��l�|!8x`؜�h��
Z�k_G�|I�Y2q��a`}9�fڍ=��ف��b�62j�vY?W�F��~f�s�
�nh�:�戱m��J��$��A.6㨻!,�5��h#�cV�Hsn����kI�5�vH��dOϐ�d]�g�̈�Fk��9J.�`�d ��]�~]__�=�����S��Ǹ��<(��R�zS^*��Y9�䍸�4���m}u4��iFb�������j��1����Y��:�	��QZb��VS�+���R&�:fH�uv�v�2f1�������9��d˥�?FW,v�m��_CG?�@��i�]h?�]��gҲۀw������t5�M�QG�X@�=�4!F�dg����E�;����M���`���\��=O�@q�Kݯ����p�U�f����{�*�-��Sw��iځ�ך�b��*��Q
����lV&���m���@���z���H�O���Rސ�?�(+�FT���c��K_�Ng}�z7��K|��zm;�!��Κ*
Ģ8��l���i�H�ƽ��0�zc�x�q��"�;E
��~�9�b���o��gE�H���ξ�9��j��<�#�u=�h��؈=�2���O�
=Zħ*�EP��D��1�U\��=�]�}�b;���83���ꘔKW'6ZTP[�|���p����.¨�nʃ�{IZ?��Z5�\L�'�ӟ4���hP�n��]xP��k�]�5=���W9"��8P�>��dUw�M!&��	��ױ��RQ�i�;4�t�f�#��G&����"uU�.0�QϢYE��$Z&�#�A�{DD�IS���R��ڿ�K�=��ؠϗ�Oe%��"����	Y�Q\j�P���6{T��	3����p�*Rsho�Eiz)����#��*jL����g�f�YN*.�p��A�,�G�KQI]$�@�v���-8&����"��YR�q�}�`�&?*�s���,#'�''�X8�ZI?=��L��oq�@�=d�V_#/�.MF<��h#]�u�;�d���V��ʃ�u�����Ës:)d4�P���
�������&����t���$ݩF�d���V�S�+?l43����s���*���8�A�دڀ<˰�Ѱ,�E!������}q���`Vf3h�D!h�tca�gZm�y�!]G��8<��6y�q�IX���FX
��D�[�<Ͻ@����=����I\ �'�(4U��'RP���u��\���lS���#��&A:��	��uSd�b�\���w�(�	{a�!7>��Hsc~������.EEL��H���ō�&]rh���M��x*��<�0���ɞ�Tn��i���2D{�?�	Zo "��YRW^|?4�+X^�X:2?3���F͠෺˓Дпd�0ncc��lj�f�#�L���#U��X0�9Øg��U
�*�n�e|�f���@CŊ�jM��j�^8����EX�V�-���_=$�� v�E5�	�Z����23�x��9��I�(�1>��zg
ґJЬ�����7*։����O�0p�u͵��kr�e0�ޓ=84�����U�9Z/]����.ać��n�'b �m�ӿf�=��/����զA@a�U臤}U��ᮑ��M��`
"�� JJ�ꅍ(�5�YtY�`ȑ�\�;I'_}�0��>���A�Яߩ7slA����`w��M�QP<������Z���h_��o���y�x?w�d�2�BH�n��c?��Y�Ns��m9)ۖ�|�c��LS͍*?+Y\��=���1a����+��5���u�Utjʹ(��t�:>GQ���N�hv-�Ā[�!r�(� �&;[�6���	��I�>�x#�v�`(/��jC׍M�zwH�J�q�ͽMI��m���Z�$�QY�H���?�
�7|���в~d=���l}�J�&+i%Cd\5��Ӓ:�[
���ɥ�{Qy@�%u�m�%��l�#��͊E7�v�9�9J����t57
hR�<���d�q)֦6�7��5o���zw���U��x�_V����l}���~rQ�D����#QĐ�a�/�y�K���!7�GD���\pQ�N4�YSCdM�{煆H��)��Y!�֨��	��c{��
+'u�I��)L,���q�2	��Qނ�1�S:�ٳ�Py�Ke!x�.���Cj��L��Z8Q�؜���A��Raсk)rܩ���:W��D8�6_��|�p�26�kUv�)^�ž���wp8~٪X�@]����
�Fp��pPPwٯ7��,�v�T����d�Hy[��R�,�-�þ�`���w�&'`,F4@[�{~%�@���s�:(N:�H4��ܤm>2[.�\��h|Q��X1��W}��=�
��&���r�V�&A�3k�N˩����U����-��Q0ynD]uN�UE4�܇��ȁ�ܵ/QF_�t��jk�p
�+�;��8gpcdC���Y�+�!BG�=�|.�79�b]������A/Z��<"q�fCɆk6���^D�
��ݒ+z6���e��k?��l�"�f����Mg��>n���Š����@����a�l���|�
�ij�EW��z$�2�uK鞝���Ԇ�<:��M�&����)���� ��. c�6̳9K��(�1+�n6��Z�cu0��Y�G���*��)��9U���b����y���~����L}�Jy��i3|
���0����m�w�=K�mq��2�/N2I��z�W}�O�����}��~q<�������{Ш&��@f0�F0���5:b!q�'C0Dx���Qm�8
T脣
����C�Q�QP=L*�6�Sf'��57�fa�@�ah�8�r6�{w-��:���g�-����W�g�U4�ahhq�f
�JK6(j6!T�"�u!�{쑳��$h�Hg`JtŮ�����>��7�-`�a���I�tX7{�-��8��A�cщi@n`a��VZ��L�VF��3YŨ�Q7K��X��������:!�Қ�9bs6y��c0m%9�m����jld-�H�U�^�Ә)�8�z�fu�X��٦�
���iQėb�D�.Y{�b�}p�L��{�
�9!�i��B�_�ۦd͹�I�TK�\;����ih��l0�sW}���A��>3�<,�(f(�tn��j��x>�$0$�Mn��eD��0�BH���!e���6����M���)��=7��*���\��}�O,dŘ`��|%�զd�X�(�7GݔԼ����� ��7y]��G�1	i}�MSW�E��<{�
�\
�xT��v�l��-`5#M�z��,{��6�M�ߦ��^E1�s�q1���.�1��,I�e��I(�0]���5q��qS�Y�Qw�1��w׬~�?Ẋ�8��l���O�E�Rc(ZS������a���@E=���ot�*��'�	����~�\��x�&���L�n
殦<DDž�Qe�|9���h,�gH�_<�V�(�t�Y���Jl�4M�)�{���;F�M���Y�d�cA�Y.�D��@��Rj�!35��;�����`N�ШҰ#����ϑ͔�ˈ����K�'�+�M7����4M�hj��lf�?"�E��i]	M���5�7�{���f&kU,�iQ�@z�Z�P&Ej�A�h*��ӱ�J����Vp�z�HƂ�v^��d�Ak8�A���u�E�E��lW8RQA����MªW6z<`�V��p=��]�ȁ~���a�Z�PMGUP���Ar�V�8��YH��D= ���
���(6��I�Kl^�s��C<F���)���
�*k~"�p杢�Ey�օk8TI�BsD4	d���87tID�Ⱦ��^`TY�d�#f8�lTӞ��m7fz*��}>�"�Kj>.ҩ/u<�yZI=��^�Kg��)������sA�����ܴO1�� Y����в��Eq��!v/#�F�D�c�|h�G~Z�g��{��q
(�����Ю��>�|Zf5[�1'� ��1K[�*�FECTF�p���&(�IZg���&Q��J'"�h�^Gw����=�3r�l#Ļ�~���4g�����0"��e!^E������p���4�|Jw�V���|DnC�x���ߍ2���$�y��Yk�%��������ް�bK�ρq�ܺ�ҚV��X����D�l��mw��ȩ}��ب��G�\l�8T�D�͘�>��z�����|�"�?
��Bz��X�m��� j��6�ez/:�"˗�e���X��ڟ��1�U~�V+��ո���ɲ#4U�\2���ݶM�
���r&�'�+���6�gi
�ANY��4b�0��� 5�2�R�Z���P�+6V�;�0N#��%j�p}*��7_/�P�
�DLRC�k��{��J�i*�8l�N�TÙ�<��aF�m��1�{EЖa�T����Y㸦B|-�yVg%u�|8�zBf���W�1ѹilL�-j�\΃l��F(k��7����Ty&*�bc&
Bp�i�#)�=88r-�j�2�2����P}=��^^T��������U��o���2��t��;���%2G0�,�G��+����2M@�Xl,��ajj$�KD��Z�̀�I�����$ ��FPIlF�P`a���S�Z��ĨA,T��аT����!)��8���8:]u���G�
[�Z(��;�
�&�x]�{�o�����?~������:���}/���б/�LY�<�7�V$:�3��GP%z.z�h�k�"��:c�ج)��:U��u6�56n�.�4�-��Ν��
��Mr��H�݈���{ҿ����X��az?i8I��ZοS��7��j���}>�'����M#�\:t�,W67'�kvK���W�&R�B����Z��l��Չ_��=��95�a��I����s�Z�)$�I�0':D6B��`����o|��IˎF�H�2����9QX�Q�)vh
p�3���7k0�%�*V;�:�c%Pq0C��}�=�	���,�����_4�'"b�k�O�^z� ��k�徙_#J&˭�	�1�M�Ш�y#�#S#�Zx��9q�}�a��������H[,�&.l�~��;�$n���272q2W�)2M�ؿ8��4�T��
Dd�&���P
W�=���&�1���8��E٪�:GN]EM���tp�ZGeu��Dm��"�(�ڍ�"O��䞢�n�n��B ����T�C+�-�62�k��e@*NJl�q�AK:�&Mg�E�6]�ғMDž���zY��"|�*mS�M�y#ǖku���g6V�� (��"J	�H	n�zpP��Z�&�#�H�2�(�>�^��Df�K	�L��º�*��T�ߤ�8Dan�*7
h�C'���	;_C���0s���<d��&��d�;|wP�������V�$X�_�[�$���ݪ�TQ��#��E�����B�W�Ԯ�XЬ��I�2�U�pE�6�H�tޔqC}.5�wbF����%�!S��S��P�I�i��_V'|�ݕT��Cv�3p���А�*��<���V�C�6'k�}]��.�bmnv�kr��hs,P*��*ړi��S��capU��r��1"[Gy�\��>�=v-���{���4)s��M�#G�h�>k?����d����/�=�@���?�Q3�H���{�K1A[6U��"�,�GfWb$�U�>;4iMVl���b�bd�`��QJaءp�pJJl�%I>`�{�;�I�_��5�P&�C���D�l�Rm���p�t�ͷ��E�?�E��Lڊ5�G"`�GRY#�M�_g��g#*��j�^���s���Kh�V�t��y�0����G2���u���O�7{`hD5��T�js=�RFq��b_�'c�������%
�(��g鵍ݓ��m8�Q���,�=�In�I��ơq��;Nw�n!�`�A&�=s#����y)*�)g�4̈4�I��C�'�E���4jD��IŨ�_#�<�85�Q:�x�젘�*�(
��@�Ѹ�ʻ�9McK�'"P�Mo��;��W�W���YW�ϥX��+��xNf3-tBȽ���Ykz��/ϵY�G���r`�C���<���%�%(�a�.u���)q8�w���P�n��H������ٟl������s"�H��;�qߏ}mM�YT���!=�1"o�b=&��h�t�Z#"�K\䘛������p�;w-�?�M��}Q8s�����otiE�����?����f�7~���'���������#��1*-(�t�`.��]N��͊}��L�y�g�0`��9������J{7�bd,�����X-����(���&�fM4�sL�?�g��cF���uuB�D�<����գmwd��'~���-����xRc	��v��fq�(xe�@�L+��z|��MA�_,�D;�>�> �o��
���R<�I
&m�a�d�|�B�_�?�)-�t�Zna3���5�����L.�J��&�Q
������XU+�n�����c�;�F�5P&DO%i��I���yڑ��Ӷ��A�OI�ǧ~����C�X����B�%�jT�i�d9����� K���Bc:�����-���`
����t�g�d?\�N>���g9"��
�ӻ�n�&�Ar��4����I�t���6�t�����_��tӴ�z�i��A��@t���37�Tƛ7T�{�~&9��8�����2LYd�Ӌ��\w����Z�Ʀ��Q��p�~�a:DR⛑E��)gq%�r`1��s$���hܒ��N�M��c_>��;�W5�
��Πr<M(8r�ΑTV��D±�D&e;����E��~:�����_O�)Q����b��.�9y��0�FmԸ�'89�t��h2��Yrtj,�a-��z���)�#x����F2��Q�V�V�ElƊU
�g��;]�#����D�j�|)��f�|H�Ÿ�Ye�_��(���h��ؚ�v�Qf���<t�
fjFMs-�ٰ!�dj\�)D]���V�&'T{T"_�	F{�ɴ8!Hٔ��ȍ��<�-v���aX�ײ�)@�͵��nb^l{|ӣ�}��9v�ik�k#ƴ�	>ҧR�;���M{��^쨯����3W�p�|ȠZ�EA���J�s�7�j�>�4g��>�
)�mH��^�`��°���
����zu骲��z����:���xR���e^�gqS@�H�uc���:SV�� h�0�L��i���ȏľV/z�0|ȳ�b&���A6�;�L�<���P����{�l��j?3.�0=-�/N��xC�w?�^�*
cz^��R�p���t�������™Q!#�}�g��h�^�����|�̥�0
zz��V�,M��˕
꩟K=
���)P��<qذ���^���)�3�"� ��|�6j�a�|��1�k܋�#W���d��E6��C��,AO]��￐ْ7���~$/�>|�5�����+j�9|�x����|#���1�_6��|��>�\*���K9��������s}~��s��;��/	����B>��ݑ�{}���D�݄��s������o6	���!�,��������L�z�6Iʅ�4X,h�Aگ���C`�Z��	�����=���j�P��+�1��9���p}��c[٬fĠ�����hl�Ϲ�,����1�K�.��P�r���>[�v����I��/4Ɗ����sYL
�s�r;���,[hv��S�M��z�[f�����r���y�n+t��Ao�eA�}�W{T��\�8??�O�z^ϯ|���~�Y�>����^\�?p�5ǡo9���;|`����d�����E����u[�x�����۶�?y<;e�df7�{
����6|���o�����j���G�_�ş�{E��n�*���ο�����_���s��?�G���}�W���-��?���1�~�����G~�[�8��o�j����v������ka�?����'�!�l��y��~-|�����92U0��_����?��B���7~GR�/�;�����_���bN�^��8D���ڇ�2L���hX�CࣹϽl�s%?��S$vW5��Y�M=�w�BQ����w�81EB���=L_�ك�n���Ȓ���iaaKG��k/H��}�W��T�:PXҭ?���q�:����ҿӁӇs�0����A+�x��)>D���H��5]�4:(t�"���P�ܲ��Ź�´����'>���&��{g�X٤Rsi��I˛��D)?�Y�n_�DT���>����5>��I�ɾ�{������:�
�fV�}Y_m?�6�s�gN:�����-�\��7��3�W�Ti`T����A:�!����Q
�W0�(�`:Y�l̳��G�4��t
��n�
��B5�������I�	z��pi\\oڹc�C��ؐ�M��}	S?����Ny	/��_�4Ƞ�����b�o��lVE���u���~�4���o��c*ߌ�.ئ�_y�c0�A�DP����B�����,���(�������v��'PU��>�B�t�cQ@~�:������>"`�в�MӀ�`�����V��j�
z�����=�<��ŬF��~�Q��>�Nm^���h<p'����{O��H�+Y-@�]h�▣�O0]j�E9��rz��3;KEyo�q�Xm�E1�����Q5���|O� #�z��<	�DTD1�ȗ���zccK�}�,��y�3ؿ�k��2�@�}k�c��6�t���a<&���lY1:��,Z�{�Xۈ2��d�����-W__����؎��d�;I�I�Ԥ�Ѩ-j �!��Mv')���Υ?�(Rh4g�3���c�i���m���za!�sN�g�]އ�,�
y�a}��Е3)��tN (��6��� athP�ۈ���vd�O�\ж4(�+�@�Gs�5�Үy&K	�\8%�����aI��-��ļ�=1���@�I�CAkڿ��:Y7L��W?ga4��/)O�$͛�?a�ђ�u~?��(#4�i�᫳�|����\��:Y�ؔu�]��<E���zL�3'��d���r8QK�X�fS���yf\��Ϗ��Q�l���xG@Ѵ�m�9(\��3�
�m"����!Q��ܡ.�,��a�N��t�t�X��/�h��eǶ���o�j{��-��1��۵����v�da�Sj*�zH�''5���#u��;Jh�׆f6����t����54��}�M�.0c[�h��`gL�@Mp;����S� �9KYM�"J�Ti��Xk�.P��%\�{�
��_ç�!*XpX��p"2&]�"4��ܸ>Oئ��L}�-�^�0���6��?�A�
�7
G�ΣAKɮ����v����PB�o���	#
#��/l�[N�q��鼊�to�r>�$��303;��sI:��/r�a��$�h��?=��&1�֑Mq��:9Ib-�+�Il�	�6�`���
���3G�)�ܩW=RZ�$2��zp�t����R9�q�{<�X,�������󈯶��\oR����=R����49'Hw�4	.�!gI�[a<�a�X��L�I��:�9�{�HT6֬f�a�*�UxHRy��Q-!��?�����������O}��k9���W����ď��[;8@w�2��φ���{�{�o��ޜ�hoR�?��¯���3���?~�O�#�O����ݿ~��#�ۿ��?����~#��w�~�/�B�����/�R��o�/��
��*���ӏ+�����7~3����/��_����1�����
�׿
�����ỿ~�����'~8�ҿ���/���?�������_%j
�P�#��Q@�3u������1R
o̔ڛ��s��77�����9f7��N��
�"~����>��m��Ƶ�{�	�<g�U�}#�����g�o�z�	54?��28D'�J4�1:0�'�]�G��K�����
6MZ>��h�Ѣ�o��!�B϶=&A��
�&ZҺ�{�m�>�P�
��œ���e�NQ��ݨ���oz�����Y�`9)��3Ҩ8��οt>��}���*��΢�����[~�{1�Ga��?����)]m��8؂~N�f�h
�W�z٩s��,�}��
=?˼8�cp>h4~���A��p��6��4-$gfQ��qE�w�	�"8jQP����ŷx�pu
C��A�9�B&�L�*�D�>�>�2��Ij�EиZ���P}hU��&��ubӍ?�?�ivV�'�[���0�	�s	����?�+��it�Mz0p�Θ;�t7�U��h�h��
q)_�d�p�ݤ�V��w22SF3���V��}��7��O�y]1Lm���ACt�d��ʋ�:X+x�0�/CKb�.�MQ�����ͮ����9��{�;5)t�{�|r����hD���Ӥ̺U��d]#Zf���%�:���0[-���L�F*Y�����G>K�p�y��X���[[6@�~ {��|�g��bn��������i�!�J�JZb0$�"}
�K���`���`4�/*��1F0A��	�$��(M�)��z�m�΁s���Zs�9�p�.c�����H����[�\s�9�����d,Ã>�-*��7�3R�Dc�gSٹ��4�o�_(��t�n�������ﴻzt9ߊ&�-�<6��ߴ�_�0�#5-�skrN1��[�W4��lf�J4}?*�5k�~�yRh�r��h��E�)��j^��^KIT.6�½fa?����Kc�o��pA�W�����c8�Ҋ9L�!�^G`�P/XtN�щ��ew'jbp�k����N�C:�gΜY��ݭ��l�</���&���sU�`mcY�����Ngq6�/d�K8���d*m�/��(6i�`��1=���x&NB`� ��

p�!�h0�p.#���#�A��|^E��F��i I���C���q�y™�9@�gf��ؑ��)e0[΢0�0\��x�i89��@���u���WV3�^�1�
�
����9:�r��a���`(�|�Bud��&�vX@g��a?���S�?g��9��uv1jac\j����ߋ=|�q-�l�6�69�d�;�-�Eq��%5�y����$�;=7H���M����+�X���6����w�ܙSyvE�m;
T��"9��p�4r	tZ����pϢ�p�P���ɵzbsL�1vL��v��1R�һazd��ϊ��Gu�1��Zk���1�etV�2�χn��M]h'��kf�zv����l�)D�����b}ns��#hpMd�I��Xg�U������m����^�u�
�(�,^7*`,��0Y��ȧ�^
��t�
m^E���e3ˋ^�>JwM��YR
�l�շ�eV�sͼ|�w~K�����W>��+?Z�������م��̟���~�S� y���m��u����})����	w��5���>�eR�{�Ά/}�S7����w�O�����O����?��t�?�+��ƽ�����υW?����_��p���T�����1�W~�g�;��}�=��'�'�'�Lg�p�@���$���o��D�z�"�EM�[���F"C�꒗=���&P?���i
����X5}8म9KhY�+o�k�j|S����
!�pZOd�'��IW�[�R܌���֜'9�D�lc~��v���W����t�O�8�*I�
����*��!��ֺ	�w�1Tv<@�"4@���Fs$�����pӴ^lDhPd�9��C�t��3l����C��,p/^E9GQ�A��p���b�Z�lJ-&���DY�SK�
��4�wcH�e�?q�/[s�&�^�"�8d���K�3��G�pP�d������ 
|�y����u�4�t�uQ7���]���L�u�� ;�e�hW�fa�-ԃ�t��h�C�w�\���C�����L�A��*`r��p-�
ˆ]N����[d��g:�ylN�8�W��<�c��Æ�B��4���9c�PIn�@YA���ߑ�
�\��ݣ�U(~`jԵ��*}
h�28�I�#4zY.����'�5&�3P��i�;�9�dPN#��q����x0�PHT�N("��AA}P����4�Y�=1
(d0�(��~`���(�{G�VC�cE���(�
d�-�}�-hE���
��i�9]x�F-Thc�m:jѸ��\8�t�D5I�~	U��A<�Rf���&nj�4�[�	�œg��%l��j~7�1�^���h�l�}�G6�%�{���z��qL���B���>�B�5��|�Ҭn��l�ID���
��֖۟-����賄�,׋hEד�x3�UZf�:	4�{��ݶ(0�t��Ҵ�f~O����2���v�����$�����|ViH{��؇1���Z����
be�t����
ύN�v�au!����xC!�u�$�֓"���tG#H��JJf׫����X�:�L@-Ş�_f�n����Q�F�����L��~D*��LK@%Ύl�{������I4�#����\:��x���6�L��@ρZG���{;��*�/�N�Y�М��i��fox�i�y
�YùO��|��]�wm�����@�E��ϵ�]�z�@��sy~�9Z�z(μN��s#dE��4k�?��g,�2��w�\e&ث��~����N�~��x��ٽT�Գ�CX��!�;��q?��18s3[+<�&:C�8��u��ʡ>}��U�U9#2l�	�0��[���?�u7���2��1b�_��
0@)]�2;:�	8��z+������&�?�!Z@�5��z�h⧔��j�z��1s0.�ː׍e'�7����.g6+X�i/_�ލ�(�z�ճ㡞��
��V�t�j�l�PM)�"1��zc��gP{`��՟�u~#�D#���J*��U��ԯl����|�~$s��Ftu���v���}t�'0�\�#�K�EQ�q�1��
�2�w���]ƌw��ت�J��1?sr$�zy���WԦ�۩��eH�g�sg�,	
Vk˅��1��z�����g����}�
?�O�+|�7�}����ׅ7��+��/߅��{���o�Ny�1Z��թ��(/`Ƴ7���Q2�o���_���_��?��g?>��>|����D���~��+>��҇�����0���Tߟ	�yv���O��;�H�;�
k�g���=��'�����o�&��`��wI����_�
��Z���<~���W-kpc����`WͅR��#�yKY�77��R���|S�ؾ�gȓh�t�
�ƙv+��L8�<�h{��4���T�Ψ�L���bÙz-���)S�֨��~����6os�*:�ho��\�Y��v���A[.IR�z8W�M}"=�����O�Iu$����˗��wS\`���@�R�t�e��tFI9m��;L]����a�-p��+��w��QV�W�pҝG��)`���iID�p7�:}���?3��	���Y�&��0�je�"1j}"��a )J4I.�6��gM��N����.���*ki�?k��"�H�M��gA�-�P&]ٺ�4ԃ�~��8���!H�L�<ЁXF��Z߹%�9�J=$�o�ȩ�V���´>����3N��[�f�Q�ҢA�2��'L^��{�wx�M�l}ub��Hl��3q@��;;gl�B����MFSL�e��g����(���?�Eg.y������M������-�MG�o����z$Q�{�|���
'�uaY�}-jz9�"���BMt!�|�ڸ�a��ݐqvJnV!�Y�K�ly9�7M��|GA�)S�
'%��`�C<DZޣ�W;�:���I�����X}FM��Jv���H�,M��b���ͥ�U2�uZ�e�njS7K)��a���C�%�0�m8�!�%��!D1� ��-+o�����FK/���I�C��{��k#_���J�mh&N/8-�I��t��z�+=s i�T�_'�t�մ`�`��{Ä�Y�/Sܼ�XTuk3�R=F��ѡ���>)&i�Zkd�eM��(X^�:�v�]�қ��d��G�Og���u3b�b��=��T��.�iŤ&Kq�V�FS��X�Y�b����E!�k5��E�
a�N�������Y���83��x�?pM�;8qsT^1�P��p�0�;�ljg�=�����<iE<Ѿ�+l-y&1��@k ?�
��a!տ��Y�fi���E�I}A!e�.我9&"��)��Eݓ�Ղ�CCݤ8N���fnh�Л�nz��Z�q���d���=3��S1Q;��9l��qV�oW�����è	�^�~��+���6�����=jE�ғ��p�����X�L�������zb�U�[�w�5���M��Ϥ�s�q����t����/
d�2Kh+��u�>>�x6��z_�#��yQ4����Wzk,f�eJXhɔ�t=����P��n�!�n�7��LQSG��zv,�֊��_h4�1�{t����Ü�[�!TӁ"�k
��hBTZJ&`HZ1�M�T�)K]iG�,���k�D	�Pk�n�4�F�~:�<��p�6wf��1h�3dF� &��z����獽����"�����Ӭ�
Y	{�N���h*�M��u��tMN�b�N0�Bn5��v1��`k~���+������G�������L
�fdF�9�ӳD�#c;�K$�	�54�iv�3�ɧ���3���#߬F��?��'~-���R��{~!���;�����p\���{��;ڐ��_P���z>��ſ~��;���x�(����������o���y���>�¯��O���9|շ~=����
���g���/���ï�ˏ�����(П��y�ݿO�<u4*�z
���`L�yM����;�O�V�k��F5i�+�_9ے�S|��r�AT�L&n�m��4�ς!S+�6J�\����20m�d�C�r�0�F���N9��
0ij]Q�
�����5�)�V���9VjC9�BŦ�VІW�rA�mT�f(�$G�9��g�u����0��B�o�x[NR��	Rq&S]����=��<��CS�3$^K�A�f�J�4�X��j�`rа�x�-x����)�K�]1O�$1�tq[�B���F��K;�T�ӉZ���r1���[I�
��i�D�!�!_�m�]]�����\%GS0�T�A�(
�g��/6MPA�-Za�-�A�;��a���"�H��>��1�/�E�<����[�zΟ�&ߵw��5�>���J>�d�T��z�F���?���{~(��>��*nQ*;�go�]=��q_P<���d��=��b�:�2��z*�4�A �@�Y�;	���c�g���4�َ�2N��bu�,
;�~��&���g�c����]�����"讽�V6#�<;�*im)�N��޹j���x�3����a�@��gx����\�I%�,�Et:Ph�J��lY����FO煍F�@�f�^'��
�[%^6�X�붵��
/���%��Z�NO/yl�Au}�.fN�
QL��>v��2ꞵ�œ�/$Y�G�����]��niNj)�4�B����0�)�P16�����̛�xS7�]�(�/�п���~) ��7�6\.F��,d�܂bv��ᵸ�fF`t��m��b�1�7��E�06hr���`_.x��̧���4Le�R�Ɓ��{��|���0�e�N1.(��Ǽ�9��]^�di������׳]c�6'�:6��_mb��":�w��/�u?�z:��p8�b0�Rq�S���&���B���)<���3_̈́#XV#���t
��j'�H&4{; ������k���Q=�Y�wq_`M��9�F�p��O��F�H�[��('�O�.�j[��Td��F4"Qt��&�<$"�tx=�A��
B���'%ax
fr���Cm�'�Maa�Yk)4�;RijP��( �����}�NG�5�gA����z3�k、&�z"�Q�zҙ�HZ)�p<���8�2�t�9��-K��e�^3x?����Y�x֓\�9��ЀD���w�.���z��v�mn�AQd�)8W�(��_}��v�ֺfq�;J	
>��U5X�h,��Ŀsw�����#]Z{%��޵�
p/�!��Lgݑ��/4�ϔ,$<Sp��;jÑ��<+ng��A��7�~k����U���L�T����##Q���B�2��/�5~�%�Gh0��|�ہB�Ù�T��d�'��gk!���%
ZLk:;���3Y����Հ�c������H�qW���0�d�W���K<��u�.B,_�x�
��JO�-~�f�:}�u[�Q������|oX��?���I����}x�;o��~�����c_����>�%aHg7
��~؇���P8�ts��*ƿ~��W5T����~����B�_�_�?�o���X����Ó'rM7k��N��}�-��O�)!6�cx�ң�ҷ0���-hى�m&"L�0$��!`<��|�+��V�mܨ9��Ɓ�2(I0l���Ɂ�X��9�YSEe���B��� aLJ���00jד��������N�[t���L[��I���Gf��u15�й��7��ga�+c~���z+�N�6�}�*�Q�����'3�e��|���Bۉ�a�٭b�E�>eNn��t���jY5Z�e�
��v֠]���]��"&����%��e�F��|�3^�$�3���O��$yy�m�P�����.N���w1��8S�A���F+:g�6�
�yaS��ƽb6����²�]n\*�2s>�0�E�Jy��#�C�
��3�j����
x�;��653�%n&I��`3d�{m'+y�F��}r��L�>J���F�'�'�݃Z͉�h�S�����o�ۘ:���=H�̃�D�qE��&�.ǖx3�r��n�2
@��E�U4�_�g am?�k%h��@�$��&�����epA���k�H�eǸi��`��!X�[��љXX	��U]��T,���(Ҹ�����d0�áq6���d��#*@w
r���A�U�1�h�q�8�����M\���ˤ+>�#ӗ8ESl���|;P��<+
I�Ό XE��`���剈��qx��
���7ʩ34�ԭ\��=����h�K�*���5U
Ml�O��q�Q��ijY�i��mjk�OAr�
���T2�K��(�2H*F�ܞ.zu��k���h�д�1ys(~ᤓ�pq�m
�uhw.� �沼��+�J�����_yF������+Fg�Ĭ[�����;��_T羻��F�;��.�zJM��Ƅ����ޡ�DD>�۽؞Dʈ!⺊�@�3�A��HC��(��(�<�W����Q@��$��������\��vԿ�Dž�Й�$�&q�y��=�n���Y�L�^��pGS6���gK-��9��^h�=`�vB�
'uGٜ��_X[8c�9a`�RN��z�$��D��z����(���
�aU���q�f �{H1���>���=�V�L�K1���%��������U��	4�c�C�`����4w�GC������ ���KC�rP��Z؟�d��! v��L�=�Q��8����^��zV�ܑ���l�m�M+��znCgV�_�*�q�"
82�3A�F�`�
�e�kSEr\�"+x=�I�G<7�c�t�ug��Q�M�i`#�� [ID��l⌠�Ç�m� ��<Δ,-�I�5�9�3^!�a�sy&`�'���ل37�n�{d�����Aꎶb���[��z�==�
��2?Q��3��gP����ư�/�KB���?�=
�
��g��8"p=��G>�gx�0�:gE�,�X�<�g�!��;8�eWW�jg�ܑՋ���l�
3W�X��3���I�)��ڨv8cw`	��;�K�LY�Y?��4tb��+���L��9��Y(���Yi��J�zѼ�i�W���X����9#��ihL�J;Xy`J�Z:288xc��a�s�^t�Sn���D�e����?�����ZxW���)��_����lV��3lv|ͻ��C��6�秪q/��6\]oE�#��������/����3�}�;�k?��a�쫛�l������g���F	��~_�>�%��w���{���?|��6���X�'�p�[k��<�
1��zj���u����CNM|An*Cf��v�!��|��8�>vVX6���&��!�C��PXP_�?�<\^ذF7bɍ�%�}e�4�q��]J�63�`wE^K�o悿@�_��N��b��v��f�d�565������|�T�ԙh&�2�٨��+ȭ��P.q/ƨ�L�L�gs��b�G�;&^&���iX�/�hS-�a���r����fWe�Gk�HO-�&�NT(�1�����-�B��f�2�Z݅��.���|�%n׸��%1l ��G��
��#��
�"@ӉE����h�;��f���E!Ҫ"��v馻��.*C/Zo��� b�|��h��$-%��s�
�HX��Z�s��f䴹l(�"/�4 �O�AΩ�~�~Ю�g
X�dT�����pm1.f��·~��M�LjV��Y�llT�-�CvSI���F� -�)�&��FP``�;���kH^e��bф����a�D�rs��P�@#�;�I:f:b���z0�j�ԕ+��$]!��ɝ5���
�FKe�h��b�V@�쒩�f�\�6�?�~W�rx�4Ɖl��{
����r�'5ˁ:����m�����Q�1�3N��0��q��Zb!$^���“�E�C#�z?�����
J�g�{\��Dt�F$e��d�p7���3���P�W���&>��m
�:0��= ��0C�_lv�0�Xn�ܧ;E0�es�$M��t��A��D��]�;NL�c�
��٧=s�A#���N�'E�0��E&��;<#�9�
k(��Ę��D��۹�ؓ��5�Ó'�t/�Kx�T�1�C��Z�6)˄w"1/7;�	�"���ˬ��01��F{!`=�ɀ�
�7ƪ(
1����r�z�r�i���{�uU`1��a�4$~xrܤ)x#Qs�D�d �=4��U&E(<OrW�y
S& VdE`�	�K3�7�/�à��|�{T���𱨕��i��q(�^�\7i�L�޲R�#�h�a�4�y��\�Lbh�&nh��2���uD����!�Α�'�����>�6���\6����!���N�g�ބ�$�!�B�'��km	���(v9*�Vc�.ӆ�&�/��� �~�0�$
R��G4�^�f�\��0�#���� J��Yh����ȅL ��3e������C�����DpY�E�~�=���HSȜʢ}���x�D��O2Gj�҅�:=�uQ6z��0�G�M�<d�j��27��#�.Y�`U��ǰ���M>DN����-)�@U�j��P�l�#p�r;xt���\�ŷ#�n�J�a"t��gժ�7����g�C�Q�k2�y��c��6������́��r�E��E�wm��q~�`�>6�dso&S2C�F�EZO�V���^OW�)���A+�oޟ$�ߟȈ�@7ghz�y�g��9J��y�9�(��醋j�0P)����~����+���_����>�
�Ֆ�|�Ź��7CY9��ܖl��M+�8��b��V|Ώay��a��iЈ�>�^r�1,����������+���/��'5�9������X�븒rQ	]3�nZ�}���tGN��h␋���G�bQ.&?Y����:1�g�Ǝ4��6��R��!^�:_5sD�D��*���#nBH�~�o�9C���i?�ˋ0ݫP�[���8�ȴq��؜�
*����=�,�c�O����H47�32h8�y�m�Q�$)\�+���P���<~�����K�n$�

&ڰ��N�!O|�hTA��]��%h�FA+rك��شiJl��~�����R�nJ�1���Pn��V�i��6Ԓ�Ϝy���x�D��M��{k;�1D��ʆ���K;�Q�jj>p���$���hN�]Si4��t.ñS�7(~e��f�ň�{L���F�F<��pw7ȅS=GE�n��ƟyY��M��?`b8�lV�q�m��i�̢���F:4ɜZө26*�ߍ���Ų�*G�δ�-��
�@ÊZH`�����j���_D.��(��^�%q�D�(�;7��n�t�K��c������~�b��{�0����p׺�"�O��8���Q�:�Y9��(�`���Դs�n��I(R��1��`POf������Uq8�>Ѹ"�Ax�Ƭ
?:�r�w/���6���J�,-n����R�q{��`"�f����\�����bBQK��6j��s+bc��C�1��Ópѝ�����ٔ�hNw*2@OF#{��Nhⶖ�>��c��g,D�ep�|�^-C��b�F�Y���
�}�A���]��������k���ā�v����������3
}�M�n�흋.���2(j$�=�7�
c��]Y�g'_�t��sU�5�M�TR��|�3*���$f�/���A�u^�W��p�[�%ګ���ٲn(�mP��"��(�P;IhvC���>���6�����>i��@���2�[k���&�X��+�t|��3��(=�F�
�lv�`�ԫ�+�R-Q±�}�Ew!��žk�ɋ���Ų�|��Z#y�6�^�������.�,#�KE[|v�6,��$�Ӧ��v!lVQ�KN��aU�l��9��
���i�{CVd�p(��zA����B通��6&�\W�Z	�;w=�ʚÈ��gpT�-���BQ{Rez��~�y�>�
q�z�>�f��avNj��G�&��q`Ra�R?�X�f&7�܇��d���{�E3糗#| }{	�6v��E�N�dm&Z|W��Zݟ�ʛ�M��.b�y覛�&~5~��@�g��|��ˣ��0D����g9����I>�z�����ɭ��p<��{�ͪR'��t��h"GsĔ͞�Y���[�Z�M(��A�<\{�fp�_Bb#
7��0��wk-Z]H���3�z�0�oV�u���ݡ����~45�����(\�Fqn̛ՠM>(�:I&p�0a���������k��ݹ�+����$C}8j�9p_{	þb�w�{urlf;��y�CHws���B��>��O�G�|Ya���Z��l��2���w����!*ߵs&w��_ �笡.�hP1l��ޜGww��o䟫��#��):���iW�z.�3�-��(�p�o��ԣ�a��-�!��Y�[�\ݠ_��*r���H�9s*�)�
�F�ۙQ+�������Hc�i��.?�0%�:Y >�l�,M��&��8�;!�E�ĥe����ú��2���q[fM����m���vZ�B�j��ߝ
~3����;5OОy��^\{'T�r�5U8�A��"d��6D�yC��k'J8�ޡQ
Q9�@�IЧnT��@�~7�����<,�z�Zt4$��Ћ��_9�&Q��dڐ&`�n�߂�V7�]W�$����t�����oF�|�����g�Y�Q���ųkS��*ԣ�7p��d���&2U�z��dY/�Gڳ��D�c�fDb�'�=h��Nx�(@0����A1�_��ϲ6�M�0�Ib7�f��b�ؔi_�{�����
vΫ�ܤ�(�	;k`V�RBI"]�V��!g,
��H���#�p������sh�"t����s$K�:�(�ǎ�鴸h�B>�l
�ŀ(e�-BkM��
3�eN�
Id��ZG:�F6�w���Փ3��4�h:k�yh�E���a�$	��~b������L�Z'Ni4��	;�Q�'M�Q8՜�[�"�9nv����8Y�*&���F@G��#��w"��9/n�!I��i�A-'���=����ѳ+5D*�QIJ�Kb����جPd��5�B����i���n�2{B����.0s���k?
���/��ZĀpJ�����*���K���T�冘Х2�H�k�͡�(���I�)=�:�ee�^-϶W�@n
k���1�ҍ)-.o
�h�B��Q�#���Mw�}L6�WE�ݱKخ���.4#2kK�5��f^���3��I��n�@ϊw��o��T�xհnl�$F�E�#-V(�H�����P{!���VƓhzT�M0lY�������Q�7�B���&���"���K�f9��.��a؛90����5��~��#K����"�,4}�kg��/^�z��� �ڱԽZ
.��7�)D�a�3�w���Xdx�2�8q /����߉ן#�>�9�Z��{S�'xn�u�c=�2�o��M�Ɩ�jF�AGɔ�\Y�`Z��@߀��c�y�5���`�1���ĺ-Pb4ee:�qͰ�K]�Nd��YX���f�4
CQ�L��sx���祹�s`�ع4�؎ke�D�Yg�=��h90ǽ^�I�_�na�3�f�.���Ó9+������Y`T��h��,��{�#trT���m�}AA�uM�e^r8ß�agL�F�����7J�:e���-�n�=��C�fxgs7�%�����$cAS������̖�`�^,���s�QS�(^�F����q����R��h8[E�n�˹��4:e�S9JW�����myN��e��JgȎ�c��e�1Xv�(����EL,�Մ� o$�IIfz�K`�&���؋c~��E���፯}wxϯ~�6�_�<�CC�cf�-R�Z�ٰ㵈�zBX��)$�%^�kK�5,�ٸ�o �f�k
��'8E�aY+l'����C�y�h��D��-s�֢��C�F�^FhX�����H�ͱ~�}ڇ;4He�;(-�A�F�y<
�	ZStӆr�M�)�"t�r:�g~�j��&��a�nT�dSPw�;ν�H�FFk~�U�碧��-��]n0���Ť`Q����9�zL�(�Q@�.4�Im�.b$e1���u�I����cc6�/�6L���f$�i�b\Q��?]2�Z{�e����^m��6PO�Q&%���G��	��"Ԋ�B��fY�j��3lٓ�ֈū��h7Vb:,Zsxi?��B�3�V�k惩 �D� ��hP�y��x��FG�F�
v�+
v�+���Ƌ�4D:��x@�F��Dq튳ZAY�e[��"v�W?P��糍2���Ύ��s<[aQ/�y�$��14��I�
�S�QU�U1y�/�)�����FۆPk�d��4-Ԙ��BA;A7Q"�D������0r�p:�(
FyaW���^7>�.���E.�L�&�<5��ؘ��##9��+tBV1qT3��y�G�h�V5OW�۱F�C;{<�u8�ރ�Dc)B{$�~���R];�PfwjV9\�yʚ��
(�@���^�FPF�{74�t���v�l�6qanj/.
��S9Wt�p��>���a!��РE���~ǯ}�	�����K\���u&�W�(�92�1Jh�V�P�6���nC�ZT>�}��d釗t�M�ԕ��@W,5}4sA�"����0�D����N�����>�/Zg���,F4E�B���7�s���$�}�]Ĭ�&�F���n�`Գ��:g�`}tY
\�s
W
�����D�/i���+s��;�E�9��@4ꋇ6���W�/��%�����w-���z�̵�Gk�����ί�{Ľ/��]�K�1RT�$��۽�W�2�J�l.΃��rq~k�i_�a5����sM�r�2��;gZʱ�+����-�P!��-�شes���Į���^F�Q�i4����\�k��{��e���9�5;��s`�Z�F�M��_2����.��Գ�����}�7fh�f�ב�H=(�$$%��a��󸅰�T0e1LHCM�T�Y[�Ò0,�;�NÌe�B��1�dGz�݀����>cP�&�f���ڴ�r���8��;�n:u��ufL��wed	
�V��d�K�h�U�H�	�I�
[���&�Y��-��k%�CΎ�Zg����������g�X*��D�V���ϔ\F�"�g�Y�W|�_����u
Y��Q�g���7e��"}�J�s�3c��$]���4�g'��d`�y1�5%���ϧ�X4N��0g�1�[h�1�ř�w	M15���8�:��HcT�w3����|°Vt۸�p�0U�a�E4]�9����Nj�!MR��N{���̦
�޷�q�{�ϼ�xֈ�ՆNᅴ93W����n�D`�e�I�����מ��W_ו��lj&-Z�gR�>�9�+�bq�!��BV^��qxε�*3�F���A���c���/�?Ҁ�Q��zi��2uZex��)�Mа��{��hrٰ��v+�Q݅C8đ�L섗�^e���e�o.��n��{�8f��)�X,��A-/6F�[�U���nr����I�R6nW��F�H����9�Ie��d�^�U_�]��8�K˯�q$�4鑈j*�kk�`���U��9ëC<L�^0%H�Zx�Z�����ʦAzN�[n�ut#�T�8�5���h.S�HDE��x����/���+�ê=�^/�E;'Q��č*�7��5fk	:干6��F���?��\DɗtYf�U|��r���������G_�T*an%���!DЄq�'Y�`n&9�fVz��멿���:51<,{S۳\��|K�id!W@]���b�{���L,��AÆg9��7fLBX�i��͉T������f�0��j��^��cȴ:Sd`�耑z'L�vv�5�鿫(�(���+�v�̵y�|��h�&9����|�Ȣ�t�
�st�:&�@G%c�MK�h�c�"Xw���(*(
ީ[i$�z�|Е�y�1��-��w'̤�1�A��0�8�͠So�撶�@v(���"J�A�0h���cf��"���BqO@=$ʘ����i�Dy��n�~�B�!
�1(^)%�!��|)�<�6���gv."Q��׵	m4�fFW�b=ITs��֝X�ٗC*��@W�����ڶ��59�*v���	H	����]ؔ��6!"d��W$a�4H��)s�C0E�`�D��(��Ҵű��K���n���/����C��KC;����
5�j���t��]�;��L��cTR�p�Z3kJp��t�QO��W�[�yJ��e��t�6���Ԝ72�S��iTn�V߰fH$j�4�P�F?u�kg���V�W�x)ւc��Ne�#QCLւ�)�9!�C҇���h���
�Z֞� ��q$��ӴQ�
������L4�̒mDky���?�"��<Q?K�Ħ�l��OR��z���{֋4�>��$yh|Fx��aO�@v�����d��83""�sg�&��ݑn(�ò^� 35Lmy�-������]�J�A;�e�I:�s��@���T
c�Qh�Z�>�������`��^b��",���tY�J����%���d
�<�@�4$�8` ڭ2�,�	�<�4ne]��4��Y0��x���@[�*ʫ3[=���;XW��Ų�&�@�;�{�9\�ZU��̄����{
{y���]d���=��3���]��2�PEFwmu�d��]���jC�Aр��MC���($�t����33bAI-~g��;��̾�re���X������IN�g�2Ϻ�.�A�}��ȍ��N�4�@���F@�)���������S�����)��Y��I^T3�ې����%�:~�'�*���A1VY!�0��9�����fR�dx���M;�v��o�_�5?%f���6�����ڴq�6�Ԗ?3>i�]x��1_�.���ю��@<s�c���}�/K��۱,}���OWv��}�\��"��nrw��kpw�d���ֽ1B�N�k�����ǽ���nޙ��G����/���(�	��x	��.��ᝲ�%\4=�%�J
e[�as½�{��mXӆ]���n0�b�M��Zk6?�!L��b��W=��R��$�0�'>o=/	�jT�m�&�{&=�Q0F[�=J��x�Z�.�528¦���ʿhe��&�sg�FQ�K~�Y�)c�ws�Ѥ��|��h���TA�؁���}fp���p�$[+���2�x=
u2n	�N�Q�/9+�S�٨=�Ih`�7[/������S�����$���/����>*8E��D�$t�ݸS^��<U�!��k^�d�QfC[O�\���%죊���w�./.�Zz�$0�x�&h�����F����b��d��8p�=����l0���CL���Uz��S��iv����9�y��}�34M3�bn�U�{��bH���Y�a��HM	2#��7-[�r�&��F4�]2%|�f��򢖬,�F��c#k�q9�zN]a�$c�6�h:�d��dl��������ӁO7�N8)�Q���i%�	��FD��z��_E]�!��[F!�s�B1�:�E��e���H��3�p��$�F?K��u��4�������D8-���Bv�0�lb�m��J/]i��(O�[r�7�b^C_7�g;�V��/I�,Jr٤2�m���d
j�4N��c�?.��th?R�$X���gIP�]�d��a�=�^����a�]�FT���::�l�2�
np;ӑW�L.&���a����pe���"��?e��Y�Y���W�4f+�'�v��
$���bK���T����T��U��ig�s�@w�3[?Uʵ������u�
�s �rޥ-S��|���8EqC�H���&XW�`�e1օ.q3k��\a��v?|�h�����3��JZ�->����g��ڍ94w����$�YSۆ lh����+��Fٛ��Rn�=��@i��<7J�g'6ѝ�m�H"�b�_�i�
Ik����ڒ�%.If�lE�ľ&�0�!�k�:�d*?�uV�9F��:�V�g�iS�%
`��r�:2Ϸ<X-��^2�=nW�j�=��ǁ�I�f����?�!�]��Y;)�C#�P��7���ѹ��g��_���S_f!7����rAҽ3B�nU�^��3~�"VM��Z�]�#�F̴V.�V�q��\IThh��p���ж�#hBӺ��	|;4q�f�8��
�O�d��cNKC���{�ǩ~ʒ$tʊY)nRG4��ٓ"��5��:�}Kd����h�y1�n���z���)#P��U�'����3uf��T�7�g3�"�!�
t�]�٠�e|��
��ŧ�
�˦��z-f�tI.���Q�F��勡�,�Ʀ"þ�͕������������z�z6��=�l=vtR��(1��
��6��Id�Ѝ;1�+�[�\����s��I���&��pw��:mp��-�L)g�]�=I�Y�5�_���vvdR�8���ᄐS��m֙�M�E�5���l�+&������@)��1q���p��M�"{
懱�F[�<8�K��G�S�j^b��k�����J��"qP>ksC���F*�%�Z�Bp�l#�u�z�x
w�%�$�V�M��F��C��?!�/�5oT����
�*ّ��9�S���|�ygǡ�]�4�~&fqNvƤ�	h�6eXbO��yqD�7:�0%%ѓ^:��l�27�^>����Jg���78x{D�m��Z��Ց��y6��5lAW�Ҵ*�ABf��Ҳ��d�A\MmT
�b�n������0�����^�q:s�͗��U��<����J�Zg#p�T�{�j�F�5�H�M8*Wp�Z��<͵\�g̝kN�)����Ih�&�`=��ó��U�w���E���ʦ"��u�M�{	{�����&J�Q���P�#��Yq�%6�ks����<���KxTF-���g��U��S���N^��̟ڼ�qPEz��*�}'��X�%X'��yų�Š�?Ǡ��`�����1N{q��!���6s���q�Ÿ6�����0w��bwxb��~�i�K2Y8$"�{rݠ7�G�$��z���Ί}lw���H�m�3�B|af�H�m���1C��� 0љ�?n�W�5�

���:�/�9�G"bl�K��j��~.6��L�'��bDc��{ZC���وT�,�7�j�:��13��n�DAj��8�{���P'�^�</�
aM��F�j�ps=\�߹�d�#m�֬>KC�,�};k:���3G�֙���Z����Y|hX�}��T4r�kn��X��%�O�FYr��@�� ���}4����y�r/n8��$�j�b��pV6�؟��:ny��
��½��5P���Xf���������Ac���Ie�PSŷ������Z��Dp�V��&C�0�uwCJ��}�&�-c�A��9��Z��!�!B�
�J����?�Wh�iEz~��)Yζ�|���
Y?��$͚�B�d����6.j(�08D2\����t�-�3/���yv���)*����M���2v!��ˆU�(Φ���X1�Vj�a��
���/��3F�dzh�I�4N�w<�ϓ�,ƤX0���D��~�J���ݞZ�l3�h�s)�2h&j'e5���~d�&����{���5"�!yT�%���X�'����P.CV��5ZomT1�PER���A� Ƒx��VK��|1�3�tS�XY3��5:;��^�:�[�DQm���I�#�G�P㠯S��w`Oa�8(ֆ=&r�%�9�((N�γ�%+0�{�8���W�A�F��3�v4R�7���4�(�A�x�V7]�W���� ��.���O<H� ���o����ɒ7�*��
y���A�yث.��*���}����	E�;��W8��Ԉ�<�NDC�[���������]��%/׹�Nk���N���f���e��\N�g5M�j�g��j�
�ﲚ.����1[�J�������
�J4-mIEND�B`��PNG


IHDR���3F�tEXtSoftwareAdobe ImageReadyq�e<�IDATx���}pfY}��C3xFcl^��!&��M�d�&�N�6��&�^��l�X�揔7UIwj]�:e)�r%�ø�?�Vl�Ze�n�BZ�`�]��#��`��-{0����f�7z���s�����t�|�����{��>-���w�=u�ڵ
��C@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h�ӆ8)��p�#�ȇ�CF�xP��$�Y?�n�	�1!���X���V`�j,ZM�@�	�h�ӆ8I�q��գ��w~Ǐ�mF�^��'�I��!�N���������O�h��)C�a
!�&���X���V`�j,ZM�@�	�h5�&���X��iC�kq�̵��ʕNfA��MoZ!K��\�c�~,Տ��;�U?6�c���Bj/�Bzk�~l�v�S���&'����x�|�c���9̊*��k���K=6�k��֪+0{�x�\�7^y{�7^u{u�;:�����~��'�_��n����Fj�%�=�������}g^�y���?=Q_s��~����Kn;��g��ݿ��}�����|����O>W������ɘ~��7t�q>~��j�������~�K>�p�`���g.V�+����ڬ�WI���O���^(���\�n<�r%f+���^�	��:�V�� *B�M"��}o}ف�jR��[_����_��Wu��}�s�G�����n��Z�WÈ��$��>R�T�"�Z�r��>��h�ru��j�~���vX�\	�f*©��>���:M��}�zɷ��T;�`+B�}~�ҳ�~a�8�x|�
�U��ݧ�_�������?|M��y�_z���REX���������>�Ct��;�=�~߲�U5��~�y77�WVJ��
�B�^ߐ)U^��*����>ۃ:��LGT媣����7L�%����)D@��{�9��5wݺ^}�3���_����7�շ�>����UqE�U`BE5HW9��s|�/��p�4u0�NJ~�Ә��U�;�qg�3O[xΩ+�kz n1�W�Zj,]*��
�8<1u�~�z�R��kD�;�B�<�=��&UTj
4uaR^E�Q�ڰm~oQ��\�ʪx-�ˢ"kR��~�/���|�Bps`A{��'�`����
�}�Y�������mEx5��7�Gd�`�ǎ6G
��~��O�ޤS˩����î�	L!��bm�X�=��V�\y`�*�z��{�����it�n7��\�/���F�o�_u�⬼bL��Mmn�j�����c��<��|���ZrMka�^b_y����'n3��km��|ƭ�r���߳W�xR����O��0jTS��X��q��q��^ٕÞ\-��^�Xo��>GpU?���E[eߗ�q��W�կ4��_�ߟ��\�X+��/ޞO�]M�p�:��m�;����8��*��3�|o�ʱr���>�#�a��jh�v S��E�Tc���;6��д�n�G�e�گ�Z)�_��|o��8�4��Y�3���h~���i%�e3�'�i��������j�Rm+��S�a>�wǩ��T����~��\>*�����n��G���?Q��_�}�����"�ͅѣ��}g^�y�\�7���q`/�/���{Uhq��I+À�K�}D賸x�lu=\��C�D�R,�C�%��$�V����-Tڬ��^�B�z���4e�\X�\�;)n�Ч���i����D�u)���m*f�����
mD?�x��!��8��_~i�Z2��rf�>әﺣ8�c�P�[�TY9؊�(wo� )���`)B�X�=�bN�_�Sn;«w���V6����B��w���{�nT�E(7�b��b
!�\���fP�	fb�]
�z�/�ڝR�v�UD�㔁UYV��|����«Qmv	���mٗ�nm�!�S���	�V��\�}ھ�Xx�8�ǍP)�X�=�q�֗u�4��*�h���}��9E[�?�����fҩ��k�^��1������O�CH�ѹ�z�aLDE@�M�]���\nK���5�6�^�~�ӗ}Y�җlд�~�4�o����@c)��f�֝E0nj�>��*�|W�x���,B�^wtg�����wΏu�r�`Lyg�`�?�����?�Tt��Zo�����BA�Z]\<s��^�S�r�U*1U��a����|��O�lNqlz�S��}���B8��H�DX�����h��W�\k+�~��",����VTL,C��>�����WL��v㜾��/WaE��G���я�4EoS�n`�Z<bܣ�,��թƺ�tB8	T`�b�^��T?��P���e:�^u���@qw������FǍ���}�8��#β�^�Ȭd�~r�O4?��?��K?�_�8p��Z�~V(ë<1«�ñş���kD�R�UN��f=6ؕ��Y�y���	]��z�:x>��P�T�r���&�RHv�q�|7²�r�&���m�O@Y@�7ûv3�ZR>}�z�^���VʿG��kj_�G?�'�K�{��b���ˆ��*��Ţ����O�y�yj�VPE��_5�bT8X0X��YeUJ7�
pTQyU�W���#D���<N�(m�ë��U�9��:�E����y�(�w�>�pu�}��y��?�Q,�^��r��A�S���	�b��8���-7X����8FQ��	�bZ�O#,�2�����^E��a�W�Su���Y�eP�R�[e5�0�\e04�¨�Ƈ�J�r�ߝ���0�sGG�S�R�0�^V�~TH��)�X�=AP�T��ѧO��	n�Ĕǣ��}Y���R��j��ꍣ���Ms�r]�m���*��a��qP�t���쁫_��"�0���� ev����T�q��!�J���>�Lsq�1�}9?�f�۴���B�i��X�iP5T�����P^�=�3H�M�o�1������:_��%��>�.�`z�P%^�QYUN뻡�(���g��+*�����n�Xjl�\S��>�Z�6Ӕ�r㥣
�}��ޠ1rSw�k^5Ex������?����b��^UTn��ӯ~�ѽ��ェo�m����~o�{�M+�֬�A���_{�|����BN�6
��,RK��"h��(�A~�SV{M
�_߮ۈ�r�'2�Ŕ��v�w.�����V�w6��yM����}�>�G�0h5���q9�c>Ϫ��B�{fxiʾ��jݗ�Ƙ̧~.��W}��i�`���^#�;�e}������x:\/Q����t�������SѷX��o����ݯΊ��G>�'ڈ������cJ�_�Z��!ډ��iyޕ�#0j��0�V��:�#qqNq�/��t��^�w
��p�	�8iֆ�.����V�U����V-ΞB���U[9��e�hc#�k���[Vx�|�{�e7jkE=�1��R%���K�)�*���Gb^�K���q����"���(O��&��v[����S{USF���`+�oN|h���� �8r�6h��yl��A�=�Զ6E�OF��N���N�)��v��Vq��f0V��Z���T��K��������wL}Y-��+�ҹ�m��x���%W��V��o�s�'8):w@|�N�UTK�]	#̊*��}���P��)��>��G�w����{�y�^!¨�`n�[(�D?b��W�|��›���X��>�;�>��8�G�~E�X�Ǭ4��N]�v�('»��|~�_~����|�)��awZM�@�	�h5�&���X���V`�j,ZM�@��6�I�o|�z����y��?i4�p����?��'?��_���8L!��X���V`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���N�$���D�?��m��o30Uz��O|�00,�D��[�����gﮟ�m4`�>i�Sh5�&���X���V`�j,ZM�@�	�h5�&���N����3���+W8eD8*,ffq����|�u�ʕ6l�^-^:W�9`��ǥ��v����{k�����\�|�xl׏�z��	��|�c�xi!/l?�8;>�T�n�����;�[��;;���V�>���a�����P�>�+?_=���-/}E����U����o/����mWO��>x����z�k^_=����s�Q���zv��:mLkܞ��7Ot���+̊�Y��f%=_b������}�+���|������3�W�<�>�y�
qNK�8��I38�^��u �G/S���7,T���wv~��*���uC?�E��Г�����cc��������ƭ<Fu�u_`�X�R�?�
�_��m���g���.t�O�kdE�T�K�!Vy����-��\��t�U��ʼ����8^"�y�?Z�T�L�/�{�/�	QU�O�:����7W�|�ϫo~���s��t� '��J�~Bl�����[��@(��UcQ�5j0mDx�]?���)��T���/��fM��,�Q��g�Tu���l���~�
�Sѷ�4�/WPE�5�4�!������#2����奯������_٨^�i��rVL{ez�
���NP���r��̧>�	��j��9Ept �_��n[y�
�RÏ�+����e�8F�<FL����G��9����7�!`VRT�A=+��D��������*�����}Wf4��y��8�6����ZROn��PQ/e�4����«�����t*���['XJS�b��$ދ��"�e���]{�G��WI'�+*Ѣ��(�
�A�Ŭ�UF�}��5�_�B�}F�ѣӶyH��ֈ�%«i,�+�b�۸��"�����"����#}ôh��b:�0rEU��a��{��X�1:���a`1k���m��ؘ
8�
�Иʷ0����S�Ŝ�oA
�5�"X�f� ��{�?�	�+������/ãg��ŕ=��ɮ�;���a��V�CÄQy��/��^������k�f����J:�<�r7�K��Hku����k�unsc�;#�>^.�C�s�[;i*�r:v���I}Xo�KcͰ�k��.La�}����h��Ĵ������c�ʭ���.�ex����7�c��F_����&�D8�	-"�h.^�ֿ�I9��V�F�R(���COAL�;��H�9��)�9_�X��çxĂ�u��O)�:_u����0���1�b5 �Jc�ϧ)���E�Q�U��0+�⎁Ä3攋�GX�=��;:a������b��$�uee����<�a�p����a����aM^Ut��1��F5�6�� !-O��~ʕU�Ny\\<s��v�鑫��
-��zj��]���0ڜ���n{����W�
��t���F�"�@n�nc�q޹��l���+�~�骺�?J�㦜Bw�+���j���9U��NUM�V^g�Լ_�Hz��'L�Mcm�n}���C����>�`�
�E��a�({�v�J�a�	c�NE���m
8N#�I�EP�k���v�<��b�u����~۬4�:׬|�\������瓯]LQ\m��f�8��bj�ny�������ݭ�����8fN}�+z�w��u���G��\7�yox���|��x�����$v*���rԹ����YY�@9���A�P��H�Z�u��q�0�
�E��a�Vs��΂�Q�S\��#����m��vS�N�}�:�&��$'��z*�u����_���}(����U16Q��`z�|�Z��*�W�~Թi?�]L��m��خ�h�Ϲ��m�_3�J��[�_GQ]�\t�S-��4
0U-E`Г?q`�2��݂�N���t���B��E�����^(��w�����X�&	�����WD���5�����[���D��ܧ��*U�s����cV�
�
�{��F0�k��/�«bL�S%�J���mM+��0�Rq>g���1��
׊k;�kn.���7ݦ�u֫�ʔL�5�4�̕��b
�~w �����o}��T�8�S)�
1�t}�g�6s��Z�nj (�g�L������ ,K��Rj,4��R�W��}�
g��� �hB���	��C/���Ūb�Fm��TQu)�Ǡ�هn�i��C��&�3e�_��^T/�+��z���b���s0ەkOeq��?������߇�{b$��Y95��a`qX���#��Ժ.�NNu�gw��i��/���Y�|��U�֩�<�>q̼TL���1�n�hck�cm�C-M��.V��d�K�����O�q�S�Nk^5
sg��Һ-=�vG��b���Ί�+omGUN��/wWè~�φX|���UNͲ�pXX�^�`-uy�#M�;�]c��������	�@n��s�ۃ��+i���N3��E��h�b��&�>��2�iV0E@���xok<E�PY�U���@-��ذ�f�.�����
�f�W8,,E��g�>\H�洲^�B�r*�O�e��1:�X�)/~�RM�n��3>��X�0��O�!�e�q����5�2؉
�AUMe6L�V7���w��а��7#�K��-Q-�@��o)*ľ9��U��-��C�ڤ�j��n=������!)��<�yToW��=I[C8��/��&[⺩��P���ٳ����`�t�]/��AaW7Q͔ם�0(�E5��xqN���:xއ�W8,,S�_TD�pes�}r��=�;���~�Ry��C6۫�m���;��,x_����NXM�|`"�OS��s� ��*��f�Լ~m�aS�%w��"�Vє���Z+D�W��WN��&��pEx5J��(}��&��05e��z�Ш�ʋ���cx��0�T�i�G(�'`��i�1[����y�5Y/�%��5��Z���X���KL��8Es���ָ����~�c��P��ѽ�c�^mF�S�5�zP9hz�s{�L����7�%�;�ű�Q.����G���{���S������*���+5k`qh�`E��ÈA�A�u���j��pzX1=/��u>�t���\���)�*�췞�����h�ʧK�ښ�����sU���}�+�g�W����}��>�5�,�OUJ&=�*������/���*�x��ϻ����?R���Wt���'��bza���׼�s��lE[On�D׶r�sK
ךw*����9�/�r�h������`+®�r5X��b��z�5i_�
X��x�u�v��>������Ø�<�솪���.�|��g3��~9%o#UD5�V�Un���ԇ<޹����{F9���1r��^1�s�G�q��f#?Y����>�?��5�v�~��i*)��k<E��_JFEQ�)p��<��3=�̍�E����׬��r�W�M����/���]��T���Ǻ���v�.XTlM���,[3��c��^5+��b�����6�֯G5S��Z���!��z��*+�m�ʵ��Kp�T?�;��H��R��ݧ+}��5=p�:x'ʕ�ga�?+���c��?�XQAUR<E�G�<��OW�lr�"�y�S�T[E{�V��=��?�T9
3m0�1#��>|�/��_�#�^{��NXֵ��H�ܢ����z�V�S_�<�=�q�
m ��5Æ�1�9΁EV9�Y��x�+���j?��K罛�lcP��_MSs[y��Nzt��&�b���͕T����^�>����n�:�"��ʟ��������}�}:a�� �94E8կr��ק��?���Q;u��5���z�{>�/x���4	���x��O|�00�B@�	�h5�&���X���V`�j,ZM�@�	�h�ӆ8I��Sw��'>��_���8T`�j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j�
p�<��s�SO=�������!���O����8Q�|���������!�~�����BZM�@�	�h5�&���X���V`�j,ZM�@�	�h�ӆ���k���+�2"̂������j��|c������s�>��Y�\J�n���[��V�XH���w��v�ج�۝��1V��R:���ұv|:f��[H�Ը��ZO���q$�:(���|a����>��Yh�t��>e��Ϭ_��'Z��Zp��ԧ�|4���<�K=6�k���U#�I$�:h�x>L���fi�}�z��B��D��R�bU�X�~���.D�Oo�űұ6},������Nq���Ϸ���w����g���l���bk�v��6����H�q�h9��:�����l�����;u��5��,4���o�Vc�aG�u�Ҕ����v����TN�3��T�s��¸�k�c�v�~ۧcj����3������i��V��5���|���{��?v��������f��}��=����zWof䜫��ۣ���we~@;�y�Ы�!��6D�o�j}���/��BXH!B$,���P|yZ/^�W�U��9f�����D��z�5���Wӓ*��g �P�[���2����hJ�U���T�}8[?Υ��ߞ�i�f;��Rup
�N���i���8A�/��I�8��cu�t������`��_�{M\�zO�Z�Ϩ���r�~�Y��!H��J4�2���ߔ�W�F�����7~�ڟf��ӎ�ʩ�./t�vw�~���\�_uz^��J�o �w��߭�����#�/�.*�nT�
�¡�;6��fZ��2�K?�5W������>ׅWL"�yUV2�v�&W��+?�ݪ����
y��#D*�1�]���У��څ!�s�ZD֍�z|��e,o��B�}�Ze�sD�ǝO}Z��1v�(��۶�6؅�0}�Z*i΋<o�x}��Rup�Q�3h���^˕$���F�ح��Ƶ_�ƅL��<>s�Ż;�8���C����{7��1L�Y��rџ�1���� ��[�)B�Tٔ����hl3L�Z��4F����m��oTb�_�{ls�ZDVCs�nkZ�@b��b]UE�Vz�痷j�;ʥ%�����Z��������GL{�\��Y�Jc���}�_�SkE��<5�jZ�~�q���Y<�׵�ʴ��﫩/9�ɟ�|����v��\�\,�*��̞�_�1/�ӹ���ԯ�	2�ߓI�6;���$��Q����i�8z���u��8h��ˆ_8�Y���ra�R��T��ѧK�w�ދRG/�	g�ŭc�V��Ţ�v�R��0.����zi��^H��m�:^�
�R�t�����֎�mkP�S
�V���n6�
\���,���j�s��	�=�oڨv��f�����VN�_�EL!��^$v�����g�/e)�8?n[QUT�q6�s�ƨ‰�a�ߝ	A��]�UP�u�E�������rq똶��"��5�A"���vS�F�����ٚD�V�‹��j�b�)*�?�e:�(����ƻ>�r�f�q�6uuF׬�GݭN�>Y��4�~�Jw���s\�|"���kU��X�n��buD�ZDVw��j�U� k��>��)�[�.��«�Zf�c1���{���	��p�5�V��S
l�c�PN�Lc�V��j�1�_��V�������ǝJ%H�C���t��^���8�s����f��N��Ɛ}��5��駟��F�]���I*?�W嵍�j�10Ρ~��s��ڐ�e3�/�.��@�q��^�X����ouۧ��**R�X鱒�g]-�����q��Dto
�v��1���E3�>����E�5M��=r�_����Y�Q�1��j�ukN%����ι�b9�a��uDH4�ҺT�\��������k��)�=��vϐ�ϴ�@{�B�by��._��L�ky�>�k�vaaJjcuq�̅���~�P�å���9�q�ڟjT�o��gؐca�c�Nq7�ƣ��>��I>K�ދ)�UZT�t�np��o��~���]���+)�A
�ʿ'��Q�����z8�a>���~�NP�5�- ����USmw�~���%-�;B�U�+�b��YT�s�/�i=���w�ۚEG��,��K#497�1�'�,u�e�3S�v�w�\�ƫDZ(��/�̮��*�����Q�C܋��bnV��Myݶ��[��H��Ǫ�`�Y�8J;�.�ſ���\6Sߗ������������C�/�.���CU|�j>��KUE����f�J����Gu����/�/��-�SYE�PM��+�Qv�q��j?��z�o�5;�����狿9K=��������z��u������.��G�S(����t�HZ�vﰕXS�/�"���������U��Y(�j�/�-��b�f�=�ᩖ��7�
pT��ks������;U1�b���ߝhnFS�M9�p�0�@/��.U�Ƙ��޼�`q>��4��_N瓃����/�>�������0ӮL������ a���G������w��C�=N�u���\竗rA�cN�ɴ�	����)���Ƃ��* \���k��!�7Z��8���#�/�2�B�_�,_�6G�'X���1�(4��+P�)�_���ˆ�f�^�p�=�4�t�ˊ�����R�F�q��s�ܢg���g�,l�R�%�0�0h���0��S�G�_�eX�5e_��F%�\5\��F+=ơT��Ҁ/У�w���������B���n�<j��\屘���l��p�Y�;k�5;�҂��_|�.ؾ[�>�>͍���Q�hV�r&�4Kŗ�Aӭ���X�eq�L'+�B�x=݅��և���S�F��YJ�u�_�W��k�QN9Kb�rP4?`L��t��2>��v~��-5�i���m�x}�O�q
��*�j�5;�"J�^���.��1
o}�c��Ьis�g��W@=��Nj5���`�/Իq����e�{�k�/�yd<b�V�k�R���w�Ka�5�b�Z
���D�ڌ6��{��$q�\�Q�������ܭ�d�گ���պ��N>�������DO*ݥ�l�;2�����+�?����Em��Z
{��5�M�^aP9N98�J����3�y��g����kvܤʥ����wM�)�!�w�����X`�xo�����w{�_��T�7f�_�`
��6��g�%�_�v�/}9��&�[b��s�/��������J5|��_L_�{Uu��X���ٴo��X0.�"�X��/���r��n�l�0�߹�g��`������z��:nm�fm���?�]>Cq��ŝ���R����E�=���vS�T;�����6��%�����U������ڼ��4�?������ӊ/MQ�“��o�n~Q�5��@f�hw7��^;�
!����4
n���V��栊��j��z�Wn'�x����C������u�[�5�n��﫩�m�.�����`�q��_;���=�qi�5k�^o�q�ƠE۫�aPU
S���Y�yC�fݏ��{�N��z_3�/p̜�v�Q��-.�� ^��)#�,�����=����0�k����͢��{{�w���N��#��ƨ,��*��ç�Nj��P�s�N���n���/p��h��f�N
w!��X���V`�j,Z�!�
�y�E�&���X��5���y��W?N?�ܳ��!�w�:�dX��r�m���C��/~�h��j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V`�j�
p��ɫ����w���O���o3��Ǯ��{~�0��`'��o��z����m4�����)����V`�j,ZM�@�	�h5�&���X���V`�j�
0���3���+W8eD���.���P_�̧_W�/���m�/������r��R�u���⽵��B�u�x�S<���f���4��!m��;�#ߺ�k|>�ң�����T>/���j���~�?\���=�n��·�����y��+n����������Ww� �{K��WOU�_y��|��N�0nc������y����7�}�����_�����X��U?V�!�_j~'��`�>�����V�kamq���+���<��_J�����5ދ�ܪ���ES�W�����:?GA�7���y��o�f���ŝP�ܧ��Mø��}�v�o�K����o~�����`m7����fi��]=��t�K"\� +���)�X�ئ5�;��-���s?���,�Z�y��Y���N�y��X�?W7�^.��o{�Ko}�
A����T;�=۩H�:ž��^y��)*�b�����Ul�ǶQ5I�5IC�S�)��G_�T�u����NYTuEߣ���_���B7�hܬX���♹S��U`��i^U��]����z�FTެ��"Ċ�a;��1��zR�Z_�ˍ�\Lq]�w�ӔU�M.B�v��)~�@i��.B��'�*B�w�ʫ|��&��_>��k�VAe5�g�<'�o;�WQY�����u�EN�_�n��� ���D�i}�����6���zc�ś_��ʟ�U�?����I�us+��vw��*™2��&��.|���
�b�<
/�o�WY�w�S_�=���c�b�v�U[~����7^��������>dp��r��WY�2��P�|ة�=��F�~pJ�h*#�:{���F�r�`:�,����:P��k�j�a��P;�y��4��T�bQ�q�ꚴ��?���}�}��*ߋ�8�n����C{wlL�iV���եܼ֊���+��DxPÊiq�)�ҍ������W3
���[%6�6��+�5$���Mz^e84L���Pa��>iA�2��9�T.N^�/>W�/&�U��Ɛ�T7.8���Lە�~��_k�t�ۚ^��i9]�\U����>̵8��v�o��Yo�5,�[I�;������f*cq����l������80u�3�#-�ߴ����8�j�c�w���G1��v>���ޘ�[�*��u}�'+�x�)+���`u[�*�
sŗ�**��Me;-����u}�����kEP����^�Xo�`�q(��i��<]�Ҁ�Ć����\��1ˁ��tN�Q������yl�G�u�h��r:����X\��?�k����Zͩ��,2�'��zK�Z������O��<�y�6�)te�5J�4�[Nc����^�������?�O�3=8�N���U�9�P�8u��S�Ӽ��3��)�5��
��j��g�x�ν�ʙ�\L��{i�v��
��b��f1�����6�#7~�\��Vjg��F��q7��nG���^z��v��0�����M��ot0?��)�O+�/��.m�x�ۣ����0�~��V��w�`g0S�����h�V㮁�X������E�̪RiZ���x��/B�X�+�b����:�Y���q����f�-ʞC��b=�a��_�ǒ�P�O������ƴ�6{�u{�E��+_����c�k��U�g>�^U\�zٯ�畯CL?[m~����L}�F�;�ͼ���\Nb�k���ʅ��u9�Q�|��T'�K��U�>M�Z������q����?D�B���E�S���^��.�;�J�O=w��+ ��]�"�`u�v:�fQ���j�xD�>0�����_�]�8>n���m�:X���d�v�'�7����q�8A�����>�����2��~W:��!ǯg�3��V��j�cl}��VJ_�0?��Lz
��M�e�ݮSZ[lcȾLz�z�����r�`L�e�`�F�<�{�����yT�UL���w�V�E�T�D�C���T�EFv�/wB�IܴVc��@�/��tmuۧ��*�J�X鱒�X�ZCyJU��3O��Awe�-�se](�4U����ƥ\�jc
�UX�-��Z477w��e���{X�?!X��+P�!��`�~?�����-�vy�{w�%��;;kSE�T�\���۹~�ؕke]���Ru�?\�,C���꽪.�:}��_��R��x�����j?`�ϰ_����B1}q���Ը�w��o<�	+�]L�lL�q�*�aÊ�#���.��70��p��{[�t�^�V+��qFq��_�M�:9�)ף������<=0W7���TI�v��ʯ<u$����@,�^p�u��>�h���:c�WTbEŗ���:IV�j��.�Oe8�m��B��b�\�Y${�Մ�G�3�XU,��V
�QT�m���n{��_a��#��П��ǔ��&���l�ө]��S;'�֗��e����e1Ů�N�0�L�:�X��AP�G�N�m��8^�?�)�;��M�����\��~Ljj��K��ab�ӝcW�G�$X�R��[]Ž�R$�eE���*u[g�8(i���^�'�2X�<�����0����M��O�g�ׁ�ً���yװM��|uB�kAM��ϟܫP��'��>�L׻��}/��w=d:����� ~���_����M#�c���������B�������r��B:d��yLR�N>:}7�PXn;�Ǿ��Ns��C���g'
�&�"y�}�l�������쩛�oRTP
#O�k�ם�^�t=����Aw,��q�ѝ��^;^�BM��e5�0�Q��e1w8�n9�U|�/C�~S�z�SMi��#t�x~�W�1F�S���Oc�Sl����M�k�}���̧�a�3ޖ�7u5V��ޠG�}rhT3eUR/K���@{��ʫ�FV�_�V7���0�l�6ӨR��I�������
����v�8������O��gƚb�F?W��<��<���b_�S%U�tq f�p��ۦk}�)+�"\T]����Q��bݫr����Ay�ay�i������8��e�#�>'���>Ul�˗�f�P�3W
z{�ƀ�ce��rw�>}(���q�C��0"��-���4�a9�+G\�u(�fa�g���X�W(�S^�)*��	rr��z��*�"�q��nb�c+�b�����C_�{��bE1�1��o�x���T��ê����������7��4�c�AZ |�_#���(��w���J��U���}�;����9�E����!�k����װ1��L�B�i^�$�C�X*¦"��7o����?����qg�nb�xD��������N[9d�}c-�^!P�y��Y�7¬��g�o��ۉ������i���s���g|A^���v�;�b��~x�Y3�8�)gy�Ĺ�T�S,㱛�=ƒvR���m�q�^c[�a'��z1Ms�h3W�m7��V��o9��zD}&��;\F�u9�����v���K�1�k�e|�8m�/��G��B�{f����Z�D�D����]_���?�ٶ���͊�,WNEh�o
��Ǟ=�{��L����{f��9������A8�NJ���6���f�:k&��k9�Y�q���?��@�����\���W���������
�o6wT}a�#ĺ'���O��Z7S����w��"��pS��'R�I��G_�V^��j�t��"����<�	��
p"0�0j�ϟ��?;�~я�����s��h���j��N�|�;��6r_��܎����p�ڵk7�I�*��/��[�z�}�~׊/�fxN'M[���^r�v>�4�.OC;[<i��̧G�GgJX������6r����y����rq̹t����f�}��#~.��~��Q�|M6�}
��o����j��0��p�m'�փ����g^w�?�]o�ןQ�w���I�G�DXA��Xp�n1���V`�j,ZM�@�	�h5�&���X���V;m���_���o<��֛~�CF���!��#�N�>�huϟ=����}�h��j,ZM�@�	�h5�&���X���V`�j,ZM�@�	�h5�&���X���V;m���;������یp���o߷���8.X�����w�ț���
��������j,ZM�@�	�h5�&���X���V`�j,ZM�@��6p���������������=�_������
w����{����q�/�����G{��-���P����L�k�8׳���ߞ���<|��g��ʣ�9���/��P��������uo��
Î�I ��!-.����_��)#bL�f��׼�@�3�_~���sC��#B��"p:N�5�?����q��1&�ǯ|Y����N�k���իo���+�/����N"���_�̧_W�/���m�/������r��R�u�����R����:[�s�'��]�,��\�XHo�Ƶ�;��f=~�F��~��("\��*��%*�BT��D�?�����(�VJ�~�PhZ�5H�s�[�“ߨ~�_��OTQ��W��Ӈ����Z����§�^�D���O>U���Ug��{���_|�}x�I�5}Ҭ��Cl��=����B�x�Ev�#������r����{q
W�0-���o�G.��#���<T�ǿ�0Z��Q��E8UN��vc����oܛ��V�^�7
�S�rxAO�iu�8�A�<rx�U?�;�=NE�b�#����*�R�+���Շn8��"��c��[��%�	�I�5}ۍ�a��6KC���x)��ʬ�.�̧G'8��]T�D�u��k��ڙ�T��h�y�;N���������;���Bz�z
����}�z��K�_x���~�~5T�-��{��&��UZQ����޻_��<�=���-s/�{��{L����BTdu�M/�g�ϫn{�^`SX�I$���2hXX\<37�ک[VO�^�M#��$�W�ig�ݴ�Jz?ڸT�uo��v������}��Vl�~��|�8~8��ܸ�1�t=�s�}�+0e�rh\��*DX�o��x/®�D���6ݼ���y�g���[�s�y�0�|�ה�a�ᗿ����.�
p���,����3e�aE�J�T1�����|z}��zQe���8�n�oTAmw��~/’Pr�;��Ty��_��g��n=�mb:[w�����/?���yܱo�+*��t�"��^�^. �[���Y.J�f���(ã�>�u�
X���Z�OGTA�
�R%؅�g�ҚWy����@[��Y^����=����#�!"�W�u"��r��)ߛִ?w!N*�l��D��(�Q;�*�~��F#ܚs�M�Vغ�
8��)q�T}�������(�f���G~�eX,��+�J1��Ӛ]:M��>��Z�p�P�>eH4L���Pc��>i��2�ya�V�s����R�/R絛�?�b�۹�Ŕǵ.�_k�t��W��{��@�\��x�V��ƌ�w�q�֧��Tϩno�ڿse����f��W�j�����c��j��1�As}��=0}��*eR^�jm����w\�[����;�����T�~=g��[�krM2�0��;�W����H*�f }��i|!�j�_Ϋ��;
6�팻�wy��C_[)�P��Z
)r@�C�x�j,�ۦy̥b��k���1�j.�ުs��~D[��ʾ/���
ѯh�r������/����^�)@޿�~;�^���8b�ZL���ֶ�,��2���-����`�"���=Q�T�X~>.�I$���w#j�X������V��]�`�J�ük`7� $�X��l�X��;R4�ʹ��F�g��>�$�w.mw.��n1��������3���}N�ģ�{�b,/��5��)�O2�;W^h\����>M\N�=��jя��R��Xvww�u�c�������_>Һ���f��Mm�v�D�W��C�N,SggТ�9��)�Cv���_�PVx�i��;��7�T53p��N�yJ\��Yx��l���ۧ��Q6{0�u[���s��4ý���IL|N)*�ɹnw��Oq�b��j�8�^ʟ�8nsjc�|��
mT�Y|6"���3���OK��8P}��í	o"P�J�<�2*�b]����o�{�^�!�/��U��38�B��F��c[�O��fg�:X�����v�'�w����!���X����^��"��崯�w�K��V��c���_�P��k�cMl�sJY�zb���<U�C�e�[�g#�S^GmdwιwL�$a�0�6���ޔ�UTE�T�\?c}�����"��+��kl������+�D`�Hc��2�i���r���SMg��*}��m]�*�C����7��z
{����wN�k�5�C��ZkN%�z\�Ak�M|�n��V�`
�u��Y���f�5��Z}w���/|��G7Q1�S����<�~��ɲ��}8�L!�����R��|������}�
W�<�WŔ����n�G�������|�+]��Hq�����Ƹ&�>s�}��*�}��K5B���O�hޒb�,����e�Ѡ;�Eؓ�΅6U_�w����>T}�����0A_��WQ�e� �k���[5�v�)ee8�m��Q���j��6ҺG�[q����sO�Bї�!�\WD�5�֪�����ǍpfJ�N�����d�����3�������7��ۗ۔�vSs��M�����0(��~���S��6ë��^\g
�l�Zk��9L��N����&��IW����8iАB��qρ^y���3�B.�����S�O� yTK�Х�����b杩vw�?�pk�`�97���u�zMO8�T`�PTW-.��@j!=�ӣzU�䊝v���4_��#/�S�V[>�c/|���.���e�Ƕ��y�&��aK�iV�fN���CT��E�US��X7*3^��\jV_
S�4m��fT>���A!S^�>�ۍi�������"L(C�~S�z�SMa��ƴŹ#���햋_'	��
����+��|�܎�F�&��P���/�Q�����LYQkB�Җ������*]��_8�2�j��(�痻��%��
��+×�rX�9�>9��f��!��!�A>�o�YsiZw]�k�߂����,�K�x2��)�۞`�i��8��>�l���;�T��D��o�~��{�{�W٠���WQ�t�W:��\E��ݢ_�<����*B�X�7����ӹ��z�8�r�dS�s�6b�r<��1�&��o&��H�5{�E��/��r�j��k�=�7+���f�>��~ѧ������󎠦O�77�v+3��t���\��ܨ�O��d�s/�r>}>v���!O��!V�2ݪ���Ԭ���!��7�`h�-D�0��'��;��z�a0ֽ��M,ë�N�}��`'�)�3����b��[]B��aG?����ſ׊�6a�Ҩ����k�Zz���z�J�r��5ۃ��2&��Ģ�9��O�p~д�t]�yN)�*��KG5��ї�
w ��`�~c��3WEp!K�^?e�U�wTMVE��y�O��9�I��y}����vϵ��
��_������Qy��U��
�"�X����c�T�aG�:��օ1+��	).�y�b3��\��6���TN;[K��Nj{����bc��m������l�Ǐ�r�_�����]�J�-�Z퇍�:��j�*0_����)?7�G�{f�)���Q��������?-0]�s�������T��B���ި�5l_�'�$�
p��G3$�c�a�w-_�U%E�q��I�P����3���b����������r����Xm�cn����tٮ�C֪X�?bݓ��|��-qm�vNim��i��F�n0`���ҭ/�>�*�NSG3|�c��V����~\�������"Ը�ë��ѷ{�>�緙^�gН��)yq;�q�il����,�~;�Gk��P��}O�pW�_Y��z�#��\:���S��j��v}؝�g�[_v��9��
��q�ڵkF8��|����G�|��N����?`��B�&���X���V`�j,�������d�Þ��v���ZIl���bC��r���Z��j:�=0ix��}ĕ|��&t�h���”�[y�nS0�]��i�����$EA~�e9�;r::'�~fUEU>@M�TW又ofe|+"��I`�5	,�&�@�>R�s�?�����'�ח��7~�4�g�9�+X�����?���?~Wi�CȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$���G�xN��V�W���{���o��?����j84X���o|��z�����o��}_
��B�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$���G��C��'ߙV���zJD��_.�U6�ߕ?����F�h���k�%O�*�s3�='����/��]�?����1)7��:�߰���1��}T[�8���a�.�{����A��a-^�b�t/���/?��3�1N��?����2Bl��XO�<�����F.�$��:v�x��'�rƹ�s�2�b�2�qߏE�v�=�Ʊ�Q$��Y�������yϠ���y�{��Rp��'�	I��Uw�|X��
�6}��5����H`mIYw�Z��k1w��ض�/?=/�$Ί˸l97�e���I��p�>����&-�8)�M���8-_�c�r�v�ϵ��;��91�5�5j橿f�ưe}u
�s`�a�X�*I��}��c�.=uB��֠;*�rz��@C�Uqt��K?���XɱMsF�,'���$��sb��u����S��v�ǟU����ܫ]�s��~���J�C�yp�=�*�0�n�Ы�X���0�b�pÆ�Tض�Zϩ��j�7c�I�0��Y�v�׶�El���lXYoj1�W��?Y��b��^�7��n��^Uչ*$��kɩq�1��xL���?9w�^Y�몤�E�0���k�:��]�����ɾ�~��su��Q�]���sp	��(��I#dX��@��U�
��\N[�'M>ܬ��Wq�'��b�R�{�jNm<�o�A��a����0i��u0Y ^n�;0���*����.#=_6�ϕ�
�7���Wj��¸��8��i�������*M^��K\���.��<XG6��C��>���,+|Ұ�6
�[�z�-���]�ɢu'&��X�8I�؞EΫ�+�W��� $���U�qe�:X�Wt�&M
���X��2\�AV��+���,��~���t��+�+��8�"[��R-����~�&��+��!���,���^?���|��w����Y��[ձ�C$�m:-�c�^X����rz����O�/������խૉ���㔼nX<��}H���oM���u��]\�d�;96��Zϰx�	Ҹ�K,sP������()�~�~�Ll�X��ݯwq��E�I�$�s��;�vz.N�J��i�{�J�w[����d����5���
��q\Iϭ���aW����Y������l��.�������uVsμ��������1�2o����p�7q=�z�;����n�\&�I����wq�eu>�3nǻX�U����sx�|��yeW���aO'��I��=Z�<_U�k����۬v#���8�a���1�����q��~>ߖ���������N���m�����ܑ��|�m���dԼ������d�e]�I��I�붤PGBy\��Y(���8M��u܆7�u�q[/j���z�uV��?I��yU+��u���z�4��'\��:���2�TZ��6ը��}�R6�X/����p�N�U�V�^��x^ϧ�|:��M�y��:x��/�t�ߒ8�U�)$�ޅDVH\�$N�8���pkNt��y�����{[<M�W��}B�|ͥH��>:�}�O���иM�#Z�=k5�b2�|�e�^J�2���w���]}�|H�l��uվ_�C�����8����{.�6\�b��*��?V�����n�_�C�²_�P�I}׷��~b�V�(7K�?v���깩���*no�#��[�>҉�_5ܵr��<o*�r='�c²�޷P���������?�|��m�(
�ˆ8{�t��E�y����.np�~FT�o�L�ϖthuH�݅�(�h�\z`
g44޿.&���{U��񪓧��U���Xa2���/�{�,���N;.ӛ��Mq;���ug
�<�5*�KX��ꬩ�c��URg�����eR�g3�*��e�(YN'��}��#*�窭�k�4%�V���z��U�[�������;�o߼ޡ!&^�9�.����:ɰ5�k����S�7Z|�߫ލ�K�	`��M`�����jI�z��q�{�z_�^%a]�q�X����a.��u�jR#&1B�E�t8_�`�
g�;���7�����L�9M��,�O���X�N����7��j�A�j�z�j�����|O�cҾ�in�0��6Ή��zN�c���M�zl�9���i��ո�8j>:�'��aҨ�4��I�j{Ϣ���9�v�_\'Q�q��'߹��~^<�x���P<�#��z���-�=�u�o��G��f�z>o��E�{-�x�����j�E����k�����$�t��+����W�����+�{��\Xq��jh�P�����X�5�$����=�VSo�IC�d��-�t'�z����t��jH���(�)T%І�7��jɑe�i�^�}�%��>Br���N��/Wl����qn�زx�*ή��x���W����w��=[`��$�$��_$�x�>�z��g�9$�*Æ�?h���R���i���{���:�Վ���j�Ň�
#!��m�;�6dEwG�M�_�c\<&I+mw��?�:`��Ἃ�{B���
��FI��0\o����0|2��`p:���7�I�Al�/2�U�$I��d�� 4��m��5⥷�mJc惻.+��J�L]�'�O^�o�l��P�?o.�i��F���lH^]d��
�JV�;'6����3��qҘO�R��N����h��-%�E�hΤ���Ǧz�1sT��d��'�_�%��<.r9F��:@�D�"������U&���9Η�9<W�!��6(I��f��T	�ɪw܅Z2`/�Y���&��68�c&m`_���&��(��.�;�:`'�s�"w�;my�{-�N^Ż"�ƻnj��ψ���%�YfxV=���a)��Fs=ᐾ�_,����!4�f�ɱJ��m�.�s�>�J�aoL�5�'��_��g��{am�خ�X���4*��/�Y8jxMs^�������.���8�U�P{ݖ�*��N>[&�@�C�Ľ>�0i��K�T�`���,�*��Ml�4��	��Z��jO�0�A��ϳ��
��I���6�`��xL,����P��ċqx�4��⺮b=�Z_����5U<E˜Zq��������{��ct+u�v�;썒shH��sku.�z��=���w�ɯ�ڹ��t8KH��2���{/6��W1iu����M����i�8�W��W"f����86�7���5|��	��]4��U".<�P��1x�4��o��|Xa��B���4�I}��=+{�ǻr}���YĿ�cC{߳�x��4�!�t�������&��1yi㸊���8Z`���Ѹ%�0(���
��V�����^���xL�V��$��YKO���ӡݳ\�_V�6�[6��a�c̞�l:[d�{x�K����Y�=���dž^��_�`�������A�ޣ(�ͫU{�$��.����:(V\WHb}��K4�ӛ�b"sֶV	��OGK�wk<m���6��=��vU/���nc��c�&���vܖ�q���b�	�r}I�4]%�dž
��S�z�~�d���í>����WY�.|�Q8�5����=�^�!q�d��q?o��3gqH_��}W<�r?o:X�E���z'�9�'!Ð�8��4HƓ��c��a�}X/����z�&	���`�u�j>���ފ�qtU�8�y�6,g�mXg�q�/D��7�N�Y����/��AO�Е����_��������š��?�ǿ�w����C�E@�$�ȚY�� kXdM��}���_�����XdM��I`�5s`����G������?8��ܽ�a�I`����O����������}��! kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�H����?.��?���*z�_+��+��I`������>)����c%�?C�g�/��P
�C��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,���"V��M�>�����I��Ǜ�ߛ�
���~�zo��i|�|����@ػ�m��w���i�7���s�uR>.�U�ycp�B�]��}3�ohO�7{�	��i֯�mP>�T�^�m������G��P���ٚ�<�`{O�/[�w!�:*^��{���m��b�!�mH�-!!�Ԥ|�ƟAH`UɃ�X��P�GI�����*��P���xxQ��d�u���.�v��U�-�q��}���i|�*�M�}r��q�@�=?C ӞU�W�U1���xOH"H`틐X�BlN���6�=�BT��B,�����u�¶N��[
�{�^�����ue,�ɤx�Er�w��<�9$�Bϛ��ɫ 13lk��dR[��.���:q�O�iU!_��ސ%Ϝ�``�$��7iC�ro��!�V5�C��x�ac컧ɢu&s�z`��ؖɒǝ	�����b�����>�{g�|�ɶ+ɫg��o;XƦ��4^��:	,�I5�t:�OJx���C2 $�z�0����1-?�����5�]M�ܮ4WQ�r��m~�7l�����;M�5��7��&��Y.�t{Vy��d;���$�ӺY�.����5��:���O�a�U��ar�	sK��ԇ^\�Ň=K���qY�.$��V���>i���N�]W%�Nb�lf���ל�	¦me�n�v5�a1ݞ���{HpUu�T����0AzWI�]x�������iBv�㡊��9�n�Ϋ��6�*YpO�}&�U�)$a�.�0�'\n����C�`���<��x�$�p���q|��Eu��j���C����O�2(���"��e\�m��zH\=.+�}�E��;��2n�2��)$�V���/�ӯ~mQ����'�?,�N����i�um�w�G�1�s[՛N�J�̣����i/y>���h{o�'VHB�I�����x�-�N�(X
�kK*=�fJB�Zz�yu����i�>��Y��kB�#M��}�|zZ.��zh��9~�w~��������◦�P���p��m��|��n�e7�v+:_�C,�K�[�	l�9��_	�*���3g�FyH�C���
��|:Dq�9���e�u�ﳇ�=�'MX
k�_/�W�ԹiL<M��'�h�m7.����>]uC�����b����u2�o���l�x���oR[��.�W�W�.H`��Ξ4�O�&���ܻ>�}T{�G���bXج���m4lK�~[f��O˜��[���$��q��q��o��l�iL~�\��6��DV�K�d�d�öU�o���pX�9��oO'tBO��3M�,z��ӆ���Co���G��,��^]L��S����R,�h�Y�V	�Qm�f�����CŇبb6�/W���!�z_;!��!�Z�	���)ͿK� i�/֨��Y�7���Cr���NU��X�'��9iB����mĆ^RO�N�O{v%$�N�����*s{)l�!���{:�Ɂ��W�6��6t�k����1)Q��	�Ǝ�G����s�L#7�w��cc�t�xӂ�u��=�8åB`ޡGKH���&$���O�}�֚?�u����۷z�=���K�g	Żc+M^]H^9��C���w��q�h_lh�C����p�t����rV��=�b�������|zc=���
�㤱��_۔��rZr ���x.�t(a�4�hBi�p2��vՇ8^���&�n��8����ߔ��e�f'�B�����ޥ��B1�<lP�
Ȇ�&4�o��{[g�Ѐ/f4�I2 $�nVخjW�>Y0o���v�JR�J|�k���^X鶜�٧�������!)u����P�.����f&A�_aB��^'��Ns^{�X��y���W���-��-_�J���ޫ�;�=$wһ�]ݿ��:NGq�anf.�a���k&�~5ϩ�a���=ᎊ!	W%Z^����,ݖ~R�ʤ{����~_z�����!�:I���������Ts�����I�L����������r��N��ܿ/��s�Iw����t:U
d��� ]t��^/$���*jzo����(����*IT%*�r9gk�K��K�8�*i�O�~��a�a��w�;<���q�z:���8>҄��c:�x������m���(��I�@Y�~�w~������Ͽ����_������]�؍B�4O��л�]�����~Z,6�M����u��c[��*$7��m�O�/����I�<��-*��>��K{�T��6�d����6
��2�vԲ-U���dU��C��Լ-��@�;�0$��'-�*�X%�zN���C��#w����+��f����׏�y=���X�A�����}����{z���DC�'I�Q�ɛ�^GU�h�$��g�tz��j^���1yQ�~�Pǭþ����-�-m��M��uQ�C�s���Vz`�}j@x.$�����5	,�&�@�$�ȚY�� kXdMx6�տ��~��(��4�R��g�����J����1���Ҡ���[��4�8�B\}_I��M�H��Ͽ��7��i�9�4�XH\����MEA���
��k1���(�s>�=��g�k���}{D#xV���?,��������~0�xV��_��������ϔ�~���I`�5	,�&�@�$�ȚY�M�S�<�������7��O~����]�Й�ś�'?�I����-:�U���qS�Z�ֱ�3?��?���_���(~�7���3������� ���ҿ�N���D�/	,��������_�+��W~�W��_��_R t����Ͽ,���~�]�Љ/������}��E��W t�����ǿ)~�������
�΄DC����<���'�����{�����%�@�́@�$�ȚY�� kXdM��I`�5	,�&�@�>R���������cX>�#�7_|�Rz6�pR�x���/�ظ�t\�Ͻ<���z*����|$��U��5����](����8�s��:��r=�Jz��T)��A{]5
Z\�JJ�Y�Ch ^�{��U\�Ͻ���z]��h�&n���UV�5���u�eL0�2��p��6�����4~��շ'ᛕ��jT~(�)������X�� ���Iӷm]ŕ�<���E
�ō�;����&�����W�m,��X�'���J^9g���r=ƺ$��C��
�o����gT{M�Pz���U���w�q�;t
�u}����{3��7�B��2����F�F\�v^[��ֻ�X�ji��{��_��&��]0�;p��!���@c��.ɗ���U���8����G���7��0�*����C����A���˩s[�+�c�M88�$������j8�oY8\��dWq%>�K�p�uѾoq#�#�r;����bk���u3t�b�q�z��H`��$�}<o"��a�Ƣ���M<����G���缶��K���Ɉ�s[�+�ctB8D�"�|�=iy/�娥ηW��h�q#���6�y)��ӝs[�+�ct�#E��"��}�,	�O>�N������tW��h�q#���6�y)��Dm���9�-ĕ�1:�p��s�٩�A�K��n�&>ޕO?-����Mƕ�t>�e܈?�M}^����d�s[�+�ctB8D����Nq�p��3���My�t'��T\�O�CX�kbk-0q�s��+�ct�B���p���� ^H�&T���"��80�I�JÝĕ�+��g����V�����E�9�����+e���@5�+��H���r�bX�!���{���U��tCq%>��v7��ymS��b+�$CH\'�}��K�9�Mĕ�1:!��I�u���˳�^0
7W��h�q#���6�y)��M2�!Y���.�z�8g���r=F'$��C��
�h��/{]T�«�����G���缶��K��o��MR�����9�-Ǖ�1:!���Co��뗺�.��݆�J|:�2nğ�ڦ>/��a$���D\��X�!'���܂7u��^��E٬X�*�ħ��.�F�9�m��RlF��9�Mĕ�1:!���4t뽉�
F�3> ϓ�q|/��i��IWq%>��v7��ymS��b�0��Yl"�\��	,�P]%�_6M�?�ϓ�.�^t
��ь���G�����I�EYWq%>��v7��ymS� �v�$���D\�cm��t��C��
6��S���'|@�ߴ\��r��.�B��0gA��-̧p/�1�����n�U\�Ͻ���Oe��y>�*����"�p�<U��<!I0v�bq�z��H`���[�Pj������Ňw�i.���.���+�<
�ƍ�����&��%5օs]Ǖ�1�%�<���U9|{�E	�����O�v��8�g�����7}�K�BWq%>?ѐs܈������kbk�
�Yl"�\��.	,�fw�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$���G���˗�N��?���ު��q�a�7`{$����Q��]��my����9Ⱥ>/���'?o��Ub��p���b?�O�9�(>�?#�ùx�$�إ�����AyQ>Q4�r�߆���2�ʟWe�)6�9����e��
���o)1�9��`�NZ���:l�C/�*A5��>��
���LQ�}T����J��V�����U%�'oj���8��<+X첁\%,B���{h4_(����]՞
�a�j=N��!2c%��l�31�W!auV��nf�VU��qBv%�}5.�A�F�x����J�[�Jx&���U[�*�+dž�ϑ�r�^��	�'��ImC�<�n�8>$���Ն��~X�T�WA_��D?9�X�B}�`�`�}���0a�]�fݍ�����1v�0�R��ah�u��|�����vU�-�ە_�ݮ<���$�@?��:N�rJ'Ȏ����Zg�������=,'�-�r�F�!T�[�[m��U�`����ZVs˄2I՛X�o��B��Z�3M��9�\���Q��Ak�$�n���~�n�cn�d7k�M�}r��������\��mr<�l"���1���Q�u��N�}6��?C��wG�~l�nkq�/{���s�h��J�v^8J�W����]o�zz��T)���c��z�P)���j2�pq}��ݘ����u�4;K��<Yo��DY����&ٿ"m�̹Ezj�u2�~�v�r=���mɒ.�`�:_4a��m�@*_{��ϫ����bv��Рy�ok	���$6�.�ٽ���s��`�ˬ��Y�l�:���e�i�.f��b��rY��:<�:��%�6$C�=~�<�vv���o���]|�d�r��q�$��|ܔ����y1�7�U�̿������N^=>X�ȼ)��(i��2�|C~�4
�@��q�{���Pa����V�zƅu����6nW��4��u��-��Q��{dP<~��&>?K�e���Z<ld�c\�˨b��_ۿ���u{\'�W��]���`�4�o�Xy�6�v�'��ERU���r�Kb�H��-�y�X��y�K��p���]U�*�qCޯ��ֶdЮ�mI�j}��\�X��k���xR;GT���Z�W�
��I|%�T��a���k�- ����`�`%40F�t���ߓ����Z"��q�v���
���
��57�"��؟5�����hi�T�Қ$7�򯒋�jHV���e��M=$=MZ�e�@�,nKU_���bGۜ��$���2ܚ�$�}�@'��긺������6/��zV,�.�k�
��ƺ*�u-�燖�a��b=!���v7�y<����p˽z]Oh���*~�'�>�N�v�,2����=�N�ϫ��x�syko�XO�vbL]l�X�u�k2�;�L`ݴ4.�^[̸x>]v}�A]%&�
��jI㵿�����Q��ng}�W
��v5$&-˺*f�b�P,�x��1Aq�6*6���\Mi��v�2�@��:�KBu����z�K<�%
�:��GMu��m�x�E,vxmu��$�YSl�myU<��Ğ�;=�/�a}/��>9Sn���\�dݦ�(Z�W���3>���ɥ��Ώ���X�[3g��I�bF+^�V�Gq�Y뻭]����y���%�W��[R۷���e2Z`]�z�l��yS{T���{.������+�v�2�Z�uR�Q�)�Z���9���5��ws��m�b1���^j�q�F-ۜ�?|V��ۋ�m��d�L�	��^�]��IݎW�����Q�}��X�%n�5B�6�L/f�a��Y�Y����{B,���7�ɲ�T�T��<f�4@��Ȳ�,�U����(�n��2�Z�u_UO��o�
�Mr��Yu�
�m�𶿍��9�����Z���3b����:+��"�h:�z��0\�x�u;gY��?��t�2^�X�"n��H`�MiB�:�1��{�.XG��I�g%�ҋ��K�CՋ�Q1(��M�H㠃I�7R�$#b/�a�8/IB�o���6wY�]�N���؀���<�ou��N&���z���1إ�b��f|�%49��W؇���ڜ|Æy�r8?.��Z=
�x:d!�j0��ܙ5�0��O���7j��s��r�2�M.��a.�C��J
�5��j`�Ş�����=���~Ƈ�Q��{c�ֈ�����i=����`/� ��w5��1��c_x���R�
5����x!<oaX�u��I��s�m@l�W�z?Qtl�4�v�
��.�#ށ�*)��\�m�e��h9���x����ظ�M|�u�d_�s���>�؞�;�2H{�n�
�z`�-��Sdz��w#l{]��m�\)㤡��o�ӻ]�5��$۽�P�]�A�B]v��]�a�6V'�8��C��A��{���]Jcq�G1���^Z�d|�[��pݎ�<?.����n��C8ހI`��FD�n��\���of
#��	�{k����]��d]J���(��"��C2k
�ʠ�S��?]ls�e��]��6���:�
�W����iP��Q���ch[۽�2�-�)���r����9�ۓ-�����x:$��6��ݕ(����͹����Y�NC�E���ȧ��"�=���2X��1��6/[��+l������d�;��
��a�`����.z����D��9q{T�Ǜ��}�:mُ��+]��
��F�����0٧�b�;�S�k��`V��0�8��6IT��ik@׆)���7�\t�ș�k �	�/��뤶��e]/Pn�.�e�h��m^�m����]�ɜ^`�-�Yc#v���ٶ���.uy</��mC���4l��mܟj��J�Y�㹯\~؆��؏�SzL]m�n�c��2I�X��v�i{|>�[��&�ޙ�-����Q��w-�Q�JT��p!y1㵣���4›�LWC���F����>����gkG:�e,�j]��(	���8���o�v��=N?ղ&��ar�.�e�@�
ns���'��1��bcnnC&I�
̣��v�Ym�Q����_l��������d�ҸlJ�k�z�yU�ճ��l[W�`�ڎ�X�;ˬs�ch۝
�Y�%�Y��~�9��b/�*�;�I����4�r֒��n�eT�8��'�6�?��v.������:N����Ƽ:��
��`O,=|0��I�6�n�7��^w�渉�w�;��ڳz���
|Lp欫jL\�5�C��~�4D���Wɠ���i.e�@��8��I=���6��_K6��Y��7��Q�'
ur��(�N�IC�mLh�]�^	uWq���W
�.ֳU]�o�d�X�b�|�uG��ַ��X��1��c�~�U�5�s_?'���8��ھ�n��ѺM!�]/��/��/��8i9�μ�!o@w!`��e-:���z{������䋸���ºN�v���Y\N�mt�`�Fɋ���9�y|͋d�+UO����Z��.�2X�·���P���YK}��kl��j%�4I���N�&���q{Q��*��^�%y�6�r��÷]�gGI�N�����b;w�bg�$֖��N����ɺo��������U9�>+'�9�[�z2wT�M˘$�3�xܷ�#CO��mH����˸�ӛN�JT��z`��E�RY��I㧧D�q�v��-�9r�8�GXp�ҹ=Ɗ�}$�{(�n}����a��j��%�	�pB�3�.j��O����$�G��F>LB�J���$�`�T�Z������	.�U
���p��/?
=�N��!�!�U%�B���M�$ޞ�Zo:�*�ew�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,�&�@�$�ȚY�� kXdM��I`�5	,���0c���\IEND�B`��PNG


IHDR���>a�tEXtSoftwareAdobe ImageReadyq�e<�IDATx��|uǟ��h)�{���p�T��쥲��^e����"
���n
�F6P@Z
/
Hi�(����M�����.Mڬ�I��_һ��徿g�oy�._�}���s�L&����ͭ~c�clf�4��zݶ^��V�Q��}���1ҹ�W�+��G��XssV���B�?�UU�!Zuu5n��}�4�|�J���?���"wلf��,��>a����o�m���r�����Bq��ު�J�ox{{ז��&��������r|�������f!�(|2�Ȭ���0M��CB|k�5������Z��f��t]>���3���{1�M�J��?�<ee��.��q��Ԡg�n&�bn�Bv��[S##Ni׆�"q�3�{YPX���:oQכ)�X�g�D��55GQQq��ȒL���>��6�B+3���̉��#4��-�
y��YB�P�-�ࠠ:EЪ����T����V���2���Ƚ�WC	�q������ Oll4�|J��EEE�-�͒���O�a/^�L�v-ڶM�i�4
�
�$�V~~�a>�H�X���j��4�C�+..�a�?,4��<���zR��FeCYY�aE��*��g�̈́����m�����f���º�̉�1����)�˭��Fp�����*[۟ǎ�_'O�aȦ��4<+��N1�uR�P��)���w��jc�^T��=4��P^Z�d�'''A%���e��Dg׎�8�%�NَC�R�9g__h���Pz:\�zz�v�Uޠ��0�_\R���@cR�6��ⲳ�krL�����Á��0�?�D@��:b��/_���������o:�?踧q4��]/j�1���Vb�|Uu���l7��S�'�}w�U��%�X�l�>�|þ_�3�J?�8�RO�)�S�E���T�b$g�͉��-�%%�y� l��ߝb>�_#��q6V��D�+�+�g�>VV��fg_lx�<�%%n_	k�Z#t]#m�el������?�%�%
/C.P]��/��O�M�[�u�+@��	��(��OM�����#.�JX�I�/r�AP0{<�8@��%D��TY�z�]>5�.͓�#�{���D���$O�9"�<�"h�o8,$�K(W��֤pI�@ˏ��|���%�<�w<T-|��=䞢����a���&�I��3��Q����*������n��N�A&��_�ڣ�a�j-��s�ey0�"�p7���~0���O��<[���.��@�:hw"���Do�{<��r�����&+�&'���#�����E�J�>D��?%�� �Dp�d�Vr��Bl�A��E��#(��tz�c�W#���z>x����De5�l>z��4�����"���D k:��<|Q�����4�Y��?��c��7�L9�Nz8�(���� LFx+���p�N�dD@ρh�1�e��h����8��_%2y���r��5�t��7��^��u:�]�Jׁ��r�r؀V)�����z�%�?��-ߟ�/⎽JK�_��׋Á��T(�)(�h�� �M�[�w�pA���7q�S��w�a2����j��#���+�-�L#��D�>���@ŒNw��� ������#`Ÿ�,_��|�Ժ���w����;����O��D0���`�6�mD`
�m�����۟z7�?e���{��j(+��y�zz�u�XN����<`}��{s��R��6Z:����o���
n��}Z>�}C`M�p�M�4�R�k\W�ໝ�W{�fm�4�A˟���;��J�T5M����|�_�-'L�[�1p"h���S#1\���lAm��J�~5o����5~%��W���w��*l�$���D0�^������*�A]��F��jˏ
6���+��[K�?��ˌ�ޢ��0$�f�i�)�u���E�=��<����`N��*��E`
|�@��WEIc~Y����y~���/��E��Ḗ��֏�����m��מd%��#T���<AE��.
���������Rc~�t��|̯���y��?���T\e�>�A��Y�PGO�}�)&���#kT*�\��widU!|�|�Y��ȟ1����3�������D���g���3
<��k�q�������0�$�
�p��D`+|�@&�����8�|��g�_|��s��<�w�aRqո^��4�wM��9A��O��D0k��,��6����.�%@�VFִ��Gq�w�n?��7u�t%���~�a�;����!�?_�M,8��!�m���'�8A���D�z�M��&�Q��|]J��]&{��^�u�|t�_��"˷�Z��A	���E�W���qZ6�A��=���RO ���T��@+w:|zx��M�J�WF���Nl(��
_d���|�o]������1��փ��P,s�K��G��b8(u�B����2`����c���2?�w���7q�~<���k0�_�͝S���w�{�l
�u�_���H��	JC=�'9)��c/k|��1I��d�/�����m����s���I�ۃ��q����\�g�wJq����
���E0{���0'(�_~r�S��
�l�/��,�E����}�X����C��_�-�ޱN"�u�Ft�=D��ؚ��8�f8~�
��o+��ơ壵|����}sپ`�F�?�5���k��2�t��7%��N�l�w���q|u`6�EΆO��(�(G��a�;�F����,?���˷�$�	�Ϻ*:Acc��9�_�py�t:���͉ �p�"�f�`���Ep=���
_�ǰ�Z���(���Pi�G����">�����~���94�$�o�+v��Ah��އ����w�\�M���"�hc8@� x�'��B8�x=E�Հ�>0�%a�A��]�g�`������A�Sh��F����$x:����}{���w|
�{n��R�'R��,U�-&[��*=V�<�+�M�<̊�>�7�Ζ!��鉝�����ܾ��<�����箲��[\�c�_���BV$�N��ͻ��'�m�%O`{8��H&����@��~�	�l��1���1rr�/�G���ڲ}1|���O%"�7~敚c�V�G����!�[g����m�q��m&�N����	|!�����_/��40���7����!�;�_�����Zޕf��Y��+Q]�v���}%�s��!���fv�m=�m�u��V�Xq��$�B���Np�ڳ^�׻Δ�`Ga�t�'>ԯ���|��>�'�1�𝦘���>ox?���b{��(��Cgì�6��|+X�>ܾ����E-x~?���Z���q.1������
hӚ����-Am��UgJ�?HZ�'���	�M|̧l?���%�,�6�����;t����R�BٸסW�q?/�ܻw��c�q_h��}cn�qĐD�1&��s1��$I9��~�	 ���'vx�O�����ӯo���|��Bn��U>�s��l?���������8�n����C&�o9�b��*P[3����م{H��D�[`���_/��o/��|r��~@j���X~5��4�Y���D?|
�g��Y/W��{�I�wV�?"�ؿNq�}�}�<A�����z�]�\ʼn@a"���"�>5���egA���k����V���1P⣀������}��02���[.�s�=��Ǧ£m��@�/!r���s��}U���O�\����S�Ìo����Vő'�
=�; 
%ްڿ�i��E ��X4�w�����\8�
��Hȗ�9�t���9�E(��NFkpB{l�0(rD��=���Λa��NY��[0�����+�
��6����K^��vc�r|jv�/���r�rr$/�ȩ�
WZ�,V���>�%�n�x-��n\�;z
���%z�ul|�?���S�ۥ�(�dZ�]c�HfG��	~�4z/�~����1GJ��NS�a��n�+�����>.?��%Q��[�:�r�������½a��b\qt[��<���?O�;}�$@Q����G�/v��u̒�J؅^r1	����L��g�C�$���>[\6���7)O�ر�s��<&�����M]Xh3�z���I:�m�úֿ�>��bߘ��d�udٿ�ܻl�� �9���`pA�߇����F�;y8�`3�W���|<&��J�yi9˗Y��}��]�D�"HA���ܩO:���~��,��̲���\�"�pB���ٺ�.
�Lbe�u�^^�k}}��L}of�hqY��6^z�Y.g�b����O�<���
����9��G��O�W:���@��+�������@m��=�����w�z�>�n��
�oHqw���Q�v� ���c�/SG���ob�V�巭i���u�_�^G�Դ�P����Qg2�:���|��:x%��a��?�'t���MK����"����Po�.�wz�����@��r2��mo��7����
w-���V��<Y>��f
-?��v�g2�S��'|�uP��%*����Ù�����T�S���?� ��ۏp"��;��K�O0��qt��U��lڮ��4�����a��&H];���V��?��~x��Xz�B;�*x0TY��f	B���D�E૬��
Q�y�a��vP���&�վ|�EX�ss���4��3Ҧm��]o�����������勓
¿�6#|ɵ�?���;]u�i#@S#c1�t��]T�f,ci¡���1[J��������I�S�ñ~� �]���`���v�z��?N�����m��!?�d?0ỏ����<���
ߩ��5+QF�U�%��t���+��y��m�����0�<�Ax����}
�Wc���x$��~�n��3�e�i��-?�|�G��K�8*�'Gˏlx�N���؉R��+��@(�H�x����ۦR�ǭ�`�'�@��)�7����b�Q�]:�ԙ���z�-�ˆ��h��v���&e"���j�N@rB�]/X�R�adz���J��s�3�xh���4�n3�㭠&/�i�~�|k�����	�c۰�,s�&��D������I��@��i4��ޢl3|��x9z����χ=�����kk:���]A�
D�;g��Aֱu��<�S_<��c�C��
u[߱C"���C!'@O0�3.��/>1�>V�ܚ��"�P�aw�8�3�5
�_��iqY:���K-��ü��	0��ۏ�nt�v��:��"�QIՒ�ǘ'��)'��O�|l��誙����l��AC�"����-,��/%���O �/������i]�] ��8g��� ��$'@L�E�6�;�����j�"����>xH��h����R—b���	�^��7�׈�Kc]���/����JD�����L�<ŏ���7���K~5yA�A�������
�c�I���;�ק��C�h�-�\�M�o�F�j�cg��9A^�>msN�ms*'�P@m#-.7dxW�:��O߱\盳|t�����3�������[-K�Z-���/��W/��vz�BQN�e��l~�Gm�	�mJ�������Fט?txw�?���=[�r�o!�?�~#�kM�%��x�K·J��?����{�ݘR�5�	�<�!'��'��`��(�͠�/� �0}��n��%���-Sk����'z�o�
ᅵi5-?�u��)K����z�9&�� 1�����2�J��Y�nF�n<��	����D�0�?g���ͫu��]�I\G�W��4�<����2�ZP��*M���`t�<�DK8|:��6�`ˆ�0a��g��È7V�i���o�$=͋��컈�W�I��O�py�P|��.϶�E���=�p�'b�1<�����&�k@mJ�p>ٖo���>[�F�D�T^���f�:(�����6�߬\
�D7ʸ=,���<��|>�'�ᢎ��
�-.��l(�ľ��g�L��Sy�Ҷ2��_C�
_"���4�%Z�[�҄�eS�T�_1��P.拧���?��s�w&�"���)�_"W�/eOQ�.(�Ώ��Dpx�T�sZ�]joM�'��N��W���F�O�t;��|�|Q��9��a�	���_>���[�ߥû<|� 0��t'��)��_�.�G���=�3xzz�|������χ��V��&�O1_��7Ÿ��~<O�%�B���>6��o�FwU�%��녥�!�X8Й�ۯu��~�D�|����`���j�t��$wk��@w�/��nJn�X8QS�"x�].|3=���:� ��6�Ҹ�R���#�����t�������
���-�%����]Yk�j�9����L8=�r1�$�?8�? �_���г�����k��KDp���:PcN0~V��rQ��yB��7�<�+��p���O:���Ί&_"w�o�'��݇?�h'�<n!���+gr�ݮ������O�/�����M-���I���o�
"�C���-X;%�cp�`5� ){2��:�
��8 �i���	�b~7U�����T7��jQ31=�^��l"�>��ZZ�9���>��.Y�m_���[�����垂d�	����1O}y �(���Yjxn�o��S��û��o���
E�Ǘ�}!X�'�aw%wu����XO�ʇ���=�R�~��O����������۶3����}�V8�.�/g`��J�Z���Ӣ�ç����?r=:A��,�r��w
*�۳�k~!�;}���˫�<�B���U���	�7�r����wOXֿ��X��?����
/�p�X��d__��/�6A�0w���`��U����}`��@xc���7x��qy�BK����Zr�\l���
�_+?PȹM%&&6���[��!!!n_"�{0͏��6*Xv�{��y�O%����Z�.�bQXD�[�7� �Vk��_�{e�a]��;9�h[Ǟ�a )�{�A+?�F��_�䪖	-��CJ;��h�2����@
j��������<����;'��,��K��������B�Y�A��h���**+Ac烌�i�
ug�E[h�Ug<������7&�xj7��	:u����i�N�`9�����9@����j���/�w���b��n�j���CA�uN�
`�i�BS!dggch(��P��l�oG����������}�Nx�+���.���(r�@+��:�+�.�N+���N�~`�*fgy-j��i�]�q��Iv��s������
��9��O-.6
�#���-����o�D��f�L[�<��9֕��훁��=��	/]n��b-3�<�<u||�
�LE@�N1�|�[ƌ@��7n+++g��6�>d
���]3��ePbX�(ѫ�R)o��RՂ��7��_Kߺ�DP��7�w�X��h͝��!��;�O��VHui3|�jq�1��%th�uU��R�J��e�W�����vm�j�߰����0���k�o�y��]�R(�]�4�o��j�L��m���kt3��$�Ůp���7l��bYDD�t�҄ƺE�~�Z�F���(�?g�����>0�hݰ�=1�T8��b[3i˖O!1����/�.zi��IEND�B`��PNG


IHDR\r�ftEXtSoftwareAdobe ImageReadyq�e<8CIDATx��xTU��O2�Lʤ�� 	B/VPw]{Y{Gۺ��o�}U,�ݦ�nq��X�HS:��$�@Bz��󦽩�Λ���L��'��yy��9���D��8z�2��1�m���((�8L&DEE�����6��舄���m�����?Fy��>����!�mMgE؆�h`�ѯ�tttJ����|���.��LK�
���.3�
hL�"��7���7����w,�3YE�x�M?��%���@��4;I �
�
�w���~
�?�%��܄��$��v���OA�G~DGGAll�ļT��?���a��� �#?����* 
��d���V�8��b
�a�� ��WX0,�����ƶ���ƚ�Cg%��]�8)!!!��zE���UǠ��ZZ�L�L1���	�9ٴ����0�VUU����+�%�22��¿q�V��$Q
��ѯo��������3N����d���	��;�X;����=�NϘ�{=E�u[9�՝�3���#�������E�L*�?�SR�Qܻ����R�����&̃,��_Z��^e�s�J���I-�o�~:{)~�!6��~2�ڽ�
��Whk �J%p����<

��sgcyѲ�~�8*��WBG����)�+�6*((������ں�	��kI�D��CAA�Lj����>tP*�ق!

��}��1Z[Z�'��?	��w�YMA�{�#(�BGW�C�	� ���ޖ�+�?�<��`T�;EA�w7��%[���Ǭ_HKM
�p@�u(��
�+#�����	m���0@D����:�)~���0��If�+r�/**,�V�J��󶫔LT�S�B}\׏+��ѻw/�>꘽ss�9�l�3������w����~~���ᫎP�v�3���Wx�?��_�b���~�����#G���e�����#??�	�)���Ma)���'�����\�s�B����q(���ki�����=�
�|G���<�ۧX2T}}=��L`�����;�7��8UUǠ��
ꉤ0�¢"H�sF������A]~���\HOK�x���:�>BŚ1PC)��?Qu��(�	�����cTVVJ���=1����2wiP��P���#��6o�.��I������aBD
K�u���{v5�~f<VTH(-�O	l�}�dw|�����jo����P�ѯ����� �ϳg�>]�D67��H=�ؘ�������!�:�L���!x�={���U���W�2�c�8��mt���__�Q古q�k�����Ӎ����L��FrJ�Ǧc?�|L�r����G��>���1u5�������s�~�hin�cx'߽{�J�ӵ�X�~���Nw�"p௫��������(�_����)���;g=��z�����	~4�#G$��A� ��)�J=t�BJ`�$�r�j��ݭ�~�௨��/��(�p	L`���kjj`��ﻷ6m�����c*
�?���$��pv�[
�X�5�@�$J��)�>�w�r(��4 ��s
/QٯN|�
{�����Q
%�����J0�L�6[`�����}*�廖DX�W��/Q#��lt��}�~4��*�����~�}�O�k�g��
�c줠n�:����!��q��!ס�
�Tx����
��~F�*�� ���J?$@�+OS�Z5U^����
A
�~��焈�����.K�qF@�f���bp��$�ß�~ө�5��l+��L�㔇s��'��o-����~3D����z�z	�����5j=
"o��oj�o)��i���Z&�?��I���ʪc�-Oc��6���_���6�C��	�D��c��j<�8�t3��ω�$�x���)�w��EC�����j��N��*��<6�O�&���:��j� /����,��$J�H������WR�~�1��G�_~��TV��y!@~�[�l�*%�����@��-�E2�m�&���i��<H��'Ph
?��]>�����Z�cg���5M�f������ó��E%�$
�ωY���v�o���s5-0�]v	��1
S�c�gY%��I��'Ph?�
5��Ϭ�/��o���J��t$�a���+9�������_	�B�.ܹp��p�8 �Ea2@R�l;a���) �W%p�`�!X�k�S�B�P~�"�ic������ԄX�Z����I��b=I@���:$���G����_t��9���	gH����*��o-䱍$@��]�B
����J�wy���k'G�LS���g~ϱ&�$@��9ֲ����T�s*��'�\&�p�$@�������M�~��A�3%޹	�m(�$P�$��T�$������8���
SV�HA���
?'������d�Be�s������0�_;�M�&���"&�L�'	�(�G�~N��<���?7jY�_qRZ'P��Ng	�����.�	���</wfe�����d�߽�C�_h����?x���L��I`�`%@ P(��w�=o�.��w�����^P��׹����I�'X�$��~��ʁU]$�.���������E�V����4`]�~/����$�3K%���
$]��K��b
�sX��Ձ��>��/��G.(�H�������&�/�p�i9�/#���0�~��z�����
]�L��K��(�
���&��?k\��������B��y����Á����'�~�����%�8�76�)�߫~.6`XA�~���g���p��3el;�ʫa�7��Wh�s�om������n��0�?������~d�#	h?	@k�2�V�w�Yv���,�	f`% ��싅*��v�t����?���#�
�K`y'I@m�IZ�ߖ)T�O[K����K�?޿�����N�b %[s�t����y7vd1	$�I�"�$-���Y�_r��z�*��:���J ����R%@P~�ꙟ?�7Q��l�y/�#�2	�v�@A��olφ%$U�'�
?'ƍ/��V�_�Q
�}��W
��:��]�,�=F�[&�9b����*�T�?�2��Ђ�?��\�3�:������Z��b�`n-�$�_1��=�$b�I�����e��q��w��d~��M3,��li˂�$�P�O%�-Be������'Nln'	�
~@���d�q,�����g��Ϗ�L`����8�i3��#	~���4�����<7�����}U_~i&T��[z�t�N�����V��1�$�rX�H�J��_	l%	~@��O��¿��8ïR�Og������[X�}�E��W��&~cpk[&I ���	s�P�o4�k	�	�kW�{�^^-�@���$�h��L�����-�`�OP�Q���#��^�e���Z�Km�d����bX�b����\%�����W��g�]'�
J�%�'�$���/�GM(��7�m�.���f�Z�I�2��o`��mn�7띯�%IF8q�����Q��lo�`0�$
�o���;FM(e��'ϓÿ��cg�F�5��fv	�
~@@�Y~�c�����%���?I���O~�1?¿�
�s6�]�~i���N�?���m��(�	d�7E8�C	���d�7(�P�OP#��=��	���S����2�@���~X����췾�WY%p�u��Z��\\b�	p���9#�$��$%����M?�x���^�W2��ȅ\�߸b���|�ۮPq����]�

"Ej�OP�/=L���M����k��|O�+����g	��:E8�;`�q��E����D�?��d� v��Rw����i�Y�u��a�|������}ot��zÁ�z���-oN����a��bU�'��b�����N�o<Oz޳�"
?E�||<��M�3�ܷ�tH��U�������4&�İ�?>>N��&���!����}��86�t��y��k�� ��o
�s�^X)���S����@6ww6��^Z�O�/0�:Ig�8漥	�g��}��%e0h
?	 `���f[5�"H�X����J��%�]��߷G��1F(��_S�I�Oj�a��M��៿h���0�+i��~�A��5����k�6P�@��$�+J�W���-�$�o�lJ�oZu��!1A��!��O�cc�o>�~ײ?=�9e��>v�7�p�����@����V�%p�PO�\��o6�CF$�~�?B�S��=���w�O`�_�/�����_��v	�a�@�M*� ����h�Nz����wv�+���_�e��Ia�-��B��?��W���-�9�����V	\�n%�$��.�7�2	$t{���$���2��A���2�{%�	\.V	�NSMz��[����?'F�����=���ҕ-�����ix��Á�/�PCz���
��"��L�5Z���~g	lS�@	��MW�;��R�8���/�-���OJ���S}~�,��7�'����[Թ���K������y]&��JU�"t��pyC*|ےЭ�omm�~��?)V���9���a	~���N�oX�E�����~�k�>�_��WN�nO�IWU;NOz����]b�[	�	~N"��{���]��J�����2��
��,���߀�vlV\А!�\�Aj��V�$�U���B%�wttv�!��Y����r���C���>��G��%lX�Y�?g��4�Ki��o����5���\&��z<J����OQ,�p��[��@�?j�`X{�4+���;��Do��R���/��R����ph��0���e#L�g~�����o�'	�P
4�1	luH�Q&�^9��	�#�/���lWp��p��^����n��o54MzX�孵�,��k:I�J�M������I \�h(��[����wB������5�?�ޚ�:,����Z+�V���f����v	�a%0P�)Bw	dI`qs|�����M�fc~9��|���N�/��K5�'VÖ鿁���q�Ǚkf��R����ϙ�Z$p�@U�n�	l�!�p�?"`�_`m�h����>�~�~C<��Q�pύ�t��0(�y��>��5&��xi�L9ZTqp�W�J��5d��n��#N�5�Ҏ����6z�]�?n!�����
�Ԙ`�Y�K~[,�xp�U!{�ٯj(���%p%�r�����C�D	�	~N;��OUl�
v��{�_���K.|���v,��8��C��_q�����c����dX�f��#F�'ڒ�c��S��;��{��S���3Շ��"��_����&m��;���'`r�������8U�e�˟9$p�@u����I�L���16�	1�F�!;���91n��.�{*��/P���_��_��W�)tM�c=����gT��O�P��J�"���ؐ���a�`���!^k�	{��^��1���~�՝2�?��?�yS
��Z�גo���o�&%�G�>	O_�����(�ɐd�&��.�uL��5u���X$��h���p�h�?���%����R��Z��-S}�����V��2�����+�f�ïvd�×���y��C����%�j�;�*����5*	�ZV	���w	=H ��V��N-�w}�
~�~����1n�oR=�^�{�2�`�	�|����B�_��!�kUlb%�g	��o���=1h)�@�KH��c����//�7c�{h��*����������'��9�^�Q�f��|6�c��I��F�Si��o��\�	�����J@��	`O��[��F	�a�.9�b����~���YCa�]��P��)�a�N��&��eG�����~�^�L���m,;����Q��?߾�WO��?� �_'4���Ǟ��6^~����=��?��ś���O���ߟ�󸞙��qXw7��/y�@��7:J����G�%�y�w*T��?l`��$��'z��S�/CA�o/�3�fɦ�^������橖,�#�L~�Ԩ��=J`��rCX	�%��F��Nw	d�'C)�`����ο�g�YC`�����M�SO^2Wj�y�AO�}���u��}��K@�-�$0�*ߥ�w��.�P�x�� ��g��C�Ir��{)��Z�l;�g�l�_O��W��}3�����1�n�7	�'�N17�}I@�'�$��Ӡk�1�z@mG�E��"'�?�CC��M�@��/�g������q�%pq�S^S�{��G�r�H$��'ҟ����ۆi�(���A�{˸��M��O��-�a!�jgg7�`�*e�����t��������64B4;�"1��/N]6���Q��r�k�v�-���f|9O��c�7��s�$�>V���h�V�XEX���-b���~Rb1*�K���Nn���M\��՟a�o��K`�>d?g(��ƌ���ie5��}��5�w̚:Ě�>��l�����������C�BQ�~�;Hw��u����o���g���>��#;�/%���;�c_ܵ)&�Lh�5�a���	�3:��d���V	�`���_JG����@-�:P/;X�dz�p_xf�`��Y9��3�Fg�_D�
~Ï��?�?��qЩk��BS[,����3	<��{.`�|��0¿}�����L��H@�s��_wm��x��eS^��&���~��{V�z���{�nY.�%�
V���u��&�!����K`eu=L�L���0	L���$��H�>�V-��v���p��%�g�߹�p�/��Z��v+������
X	c�%��{޸�@j2L�p��b�ޟs�8�op�w�tV�:I@���'��>�=���MJM��?�'����������K��s��9���J�f�fS@��Ԩ?�
���&��`H�i�(o���9K��1�+%c~�J@.�93tw�MR*�}EM�Y�����_:ïV�Dz�%'�y���$��9�.�~c��Xu�"����q�	�^�T	��&�:����O��5�}��'��n��/���C�!�1���f�1����I`hV��PZ��L���$`�*m����U��5`%�qSmT���>����o�z��_�O�`�����,�?��_�2�	Ÿ��h
X�̤V�81��Ϧ��V_RƎ�uv%�Ls5d�eg���?��@ԇ��['��o�.�c�?@ُ�//�/�¿�
�Hٟ��]�v����4g(�Я__�U�禵�K��V�����06/M:ٰ�T���s�]j�ֱM���7��\�|������)���%��J������1�H����!�&��_��W;������l˲�[��pnz�@�u��~]:��d[��
R�Q�``Y�!������~z)�Y7&}���"�?%�?�ߏE>N�f��戀?l ����;,�M����Z%�k�����Mg[%���:t)��W���������?���MC3�����f�hk�O�c�!��#���'��8/�սY��m{_��+��$��RJ�����$�L�_���ޘ���Xmc�$�YPY�G��%Æ;�v���CZ��j��@���������]�0��D�a'_����$&��V���z^6,��37J�Ϫt�Q�e�wIh�'��^�7��?�i z���b Mf#p���+}=��g3��r��h7�?� ��2�*�A߶�o��
x�E&u(�}�I�]�^�73���[.X��>�쐌��x`�%��C���?;��<��׋���f�;;�$��`�o�?����Ȅ?l������(���׹J�ٛ���
c�](�w$	�}�0&�K����N�ɚ~[Y!���`���-B��ώ��J_���T_f��2�n�bb�?�5b�(����1v�wä�v�/�QF	�6���"5����i�/9c������+/�����X�v�H�x��x[2��o�!6��~[LL�H@�R�Q8$��ٛU�	�H@�ke���^d��3O������ڭ@d���
~<�����c�/��3�17�_��N�!R	0	X+���2	hQ	<���k��Kߑ�z�@�7���i����S��~+�jd~[��b�_$��w�u+�`��&��N�[}#;I�rH๛-�A���:�$��į�/��9�
�O��!�}V�W媳��6v��9�K:��_O��/���E>2��L��b���@(�K`D�V�WF�b��\�n�t���Ꝭx�*�s��J�B�{d��0���kG�ş�h�Sg�m�x�q��ώ'Wůg0Z2�h��8��n�?3����J�m1!�I��
sV�`%0G&��o�TX%���\]�}Ny]��U�6+{d�����c�J_��N�2[�/0�w���ϑ�o�v��Jj��,�6�Ơ��x��$T�q��I�~�.�l���~��qr�_�%����h�]3��'?
d~<[�=�׍Ԅ�I�m�A&���d'�Q�T�h+6n�mh�$�
J@ρe����q�d~����.��w���V�E~�~]�_q��w�@��b!��[	�`�	��x+��oK��<��x�A��9����%�#�h�9���9���~�PXTYY����@'�
N1	�f���@��Pk80�-��\_��g�<��q��Jُ���	�?�A��g�Gwo�5Ÿ���)����$P��?3m��@&�nH�W�2W	<r�>�O���	~{ٯ��Xٟ�~^�1�	~M�'��%��/O�f�
g	�5����y�*��T	h]���g�����6�'p<e���M��n+�	~m�G��$�S��\��W&�oc�0A����}	�y>��#Whs�ϋ��?;�5�b���P}���?� ���:~-����[���N�)BW	�9E�*���<��x��ǘ�~)���	~m`dc�(C���Ÿt&���b��Y�;$��m�5b�-���W���{I?���7�J�~����� �=	~M���~��`d�v�Ơ\nW�1x�I�
�~uE�~��9������a��S����ı1/�_S�#�����^�,�D+�{�}%��?���e~����Ax��=��:	~-���%0
%���{C	ܵ6�J�;,�=/[9��}�"�ie�J ����σ�?~N	~��'�?Pl�f�'9��z�s��O�k*�H��c3��;��a�ݯ1H�X2�+*P�d���A+��sX�?"}>�����g���
?/�Y���E�k)�H��!`�Z'0�.���3x�Po�@y��B��
x��?�?�\����7��:��O�k.�H��I}���ot���w��N@�dx�*e����	�@�c��7P,���ә�O�h������l1����_�I@�18�N	��N`��=6	��פJ���w����k�a�8f�D�cs��P��������_SW{������I�5�%p�EwLgx�*q�_��G��,��Y����C�k*��W<�nl&�@_�1x�+	,��@�J��
&����U��_���_	��c�$�y�<6����Z�s��ח��T�~g	�p�	F��Lw�[	�%���W{�l����h�ߟ��d�?0��)��q�ώ=����3�N��%6;p�˰a�U��e�Ԙ�*�;_��z&�����1��g����U}��o�c��V9�k�ϑ2?��������Q�;$����\Xx�z_C�*�'��]���1��d�48a��l`��V,�"����;::���5b�,&�3�Ć6	�cxc�e��*���+V	���O\#�?����.�>�������m2��[�����`���_S(����=��$��Q|R�J�%�a��Uj�$p�������G��/��ᗟ
'n�ÿ���V����
�����~��IV	ܺ�YjUۙ�xY�߽���~���$V��������#���~��
c��g�|�U��*����Y�5�$���#�1��@�3�S����z�k�ϱg��_+�
%�_�aO�f�޺�zQ�t3R"���iN��������cǐ��P$�kn�t���V	��[�l��6�E�~��N����ϕDC����L�$P�H�p�ᇝ2	��1h�7�l�C���?'���\p%0���QF]#��$�����J D7�����<D���X�k�����?'>���Z�cT.�@���`Q7� I`�L���쀿�tU�`1���[�_�O`� �5�B	�`��Pc�I��dž�jv�=L���:��E���yafe�@�_S�*J@`���t�@����M��sb�	��!B�T;�ϭ��Z�����R��h��N��k%��@Z�?X����Yg���/���Ib�"�5��h �5�@���A&��g8�@�z,����,v',��=��?f~��Gؘ����R&�I��6����p�:V	��*��n�`�x���J�,�&�5@TT��a��7¸A1ÁӖJ%п6�9�/C���'P�2�g�����_)P���?$���[���R��i2�"��9��Zn9�J�.�E,
�xV�#�����s$�������*�s	���z	�+�XH.���o��.�pZ�3������9��G�y��?,��7��DY&��&�Q�<�,���w��?b���Nj"��"��?��;�ZH ��Ds���P�7m���~8�G�bᏫ���?'��K�ZI �3�iu����g�r��H��&`�
�#�sϵ�?��b� ��N�$04��ȫmt��<Vn'7[|�����<���o��?')�+3��&�_'(`n�g�ZV	\�4�@�(ax��p�`�&!J�j@��,�r�}s9�9��g$�v ��&�X?"��@�	\��U���V	�zib�?l���d���v��`��E2�c��p��_	L���p�
	$'�ߺ{(v�͎7������JmIX
���w�(d'v?�˟vH��,�lk��`���X���y��e��V�W0�__)0�ge�X�?�@����o�.�I���I��X�ȶ1����p�=�q�	���
p�#	��k��)�q�Ek>~ +�)������r�k+�U.�O�:::�(����F��&�k�W>k�h6�_�����n�^,�?���ˁK
�"��=�p��	&���(�[T��1����J�WL&&k�'M��ӡ�i�/-c�/Xn����L�(4��=�Fc���}���^�W�c_d�+��<>M��=��N��ǦAZ"��n��`�����~��cv.�q����ۀ��!�'�K��m��_O�~���$�$
]I�f�d�Ǜ��J��a�~�$d�%�,��_Z*�T��@�3	��	i�m��V�+�l��]p���&x~���0�!��_d���p(�����n�`V	�~�s���ɰ�X=<��j��3�Y��K�Fll����M��7 ���9f�-��Vp�i]\���bo���?�L�9����0��"[i���;M��`�o�}b�^ W��G�f�o]
�!@l�	Z[[\,x�~�A��.���j�e���A&��|�?T��uof�Z*���7==��A�~���$pw_O�������D�K���R#_�9��O��Έ �o�����5���[pz,<��I�(�<�|577'�PXX�D3	 ����g0	L���'��%�!������Y�	?�k�3%9bbc��	��)f��q�E��O�h��w������ۧ�{o #�Ό�o�@\�h�r�Ҭ��D�:<�륥���JKJ��ǵ
0ř�������I�\V�ut96,�g&�*Dff��ĸ��s5)��sK�7�a`3��M��~��ġ�
���3%��%P����tA�)
�/��8 �C��R���~>oӦQh�
�Sg2AVv6�)!��y)���~5@3DK	�u��?G�s^3`0a�X���P '/��!����?�
�'L�ƍ�vߴ|�‚�ۧ/I���v�c�Y��	�W��0���=J �G�t	~�?\�����ק�����zp(p���x�@������f� �9���={z���1��P��$�M���|((*�~��'���ȧ���ֵ�	~��ˎ�$��7�BMM�ۿ�EC	����

P�t��G���1~BB���+�h���
~]	�&��.��7l��;�=>QĦ���S�[Z����
�ZZ���2��HL�'��v|������FF��mQ��s6�$5��0�׵l1��L�hh�
��_�|�fFvRC||�.����!-� ���`T����.��j`��}�i�hh���#��ɗ�{�\ᗣ�m��)(�M��	YQqVT8�Q��'��x�kQa(-)�m��p�}�����CG��1�A���n���!ܰ�Ru�;Ak���N7H���b �#t[�6=
�t�NW������
j�ꠎ��N�S,$'%AFF��׎:z�򻸸�)��z�h%TV__,j0�G�<Ve�#����@TT�.�
�"��.��M`�=|�TV���1�b��	������nmm}"��ڶ����Q�}�0�{u5���P�;�`U6�kii�]��¾��~���|'466	=6!!���Π�"�O�9SZ�O��E����_	�������V5ఁ�'�)��{�#����-�����6!x�o�۪���?��hhh��ړN��_	�LYP��@�jk�~���G��͔J{MMM�@����W$?��]���q�?�	�T}C��KU@{�O�S�O�kJ$P�>x�""!�	��>����B&�=��'�)<��s1[($ $�dw��~c�E���<�E%���<�fn%�c����?��d�̿�]D�ߺ-$����������O~�p�L�{/��^ z]@��I�����9Y���?��*���,x\o葟/�~—�,�|{��Q=z��?�@0�vq/��I�w���
,�+�
� �J�U
?�O�%�m���U�"*E���'�	~
e�l.2@Q�LʾY��;!�Xn�8���JZ�#�p�Q�8�1?�O�ֿ?i�^#�����3kY����1��+,,�V���B��B���:�/�O�����.��xQ��'�3KP�����ৈ�<�����.�f����_"2�H���mmm�Nj�����Vf�~�H�ӱ�����
`�����-��G�St�Y���r�d�K��r:ӏ�����G�ј��ԫW~

�]��o�e��քn�J���q�݀+�|
�<L�X�>gE-�3��¿��>����g�`�^ ^�;�m�"�@�Yt�K�6m((���{��`�jq	m][PIEND�B`��PNG


IHDR��qT@r IDATx^��tU��g�H!��;A:�+H��*`�/EA�4��ҫRU��� Mi�T�
H/	=RHBz��v�l�fwCϜ�O�3w����3z�k״ppKKO�ɓ��`K<�yC��?!!����7:�^P��(@
P��(@
P��(@
P��3�.�k		Aa��6���P �
܎���'O�D��(W�l��({F
P��(@
P��(@
P��(@#�`��=t��/������@��pDDD�A��~ �(A
P��(@
P��(@
P�����6oB�v푞�f�6��o��M�6HK��~�HܺeЎÓ��
F��"���?���<A.8Of�>>��ַo�pq������ts��"�{��|�
(^�X~�6�I
P��(@
P��(@
P���&��S���֦aCҾ����ӨP�
��p^�����s�΢z��+�9��qqC�j�\p�
�p���l3�:8x�^j�*U\r��(���gպ֡
C�Wx^
P��(@
P��(@
P��(p��w\�Vm���#�I�n��pw���cG���?����s�<nHH�����,���R�{�������W��v���p�@rJ28�*U��
��l��(@
P��(@
P��(@�<-`O�˪_�g�5��{�:v�:6k�̦��8�XO//��l�<����,U������Y�k����U@�����Q�f�:���(@
P��(@
P��(@
�H��X�Ξ=G��O��6����S��&�릀�~���.�ҥKf;Q�l�l�0�s�����T�e˖E��e�K���.��]��#�����ȇ9�o���ѣGQ�^=�-�<u�D�<$���k׮��~�M�,:&���r�ׁ�&�Ε��$�(@
P��(@
P��(@
<T��C�
�.��I<a��^�#�`���x�'�m<Q�"�s�N<��Y>�'޵{4h�2e�`͚_�(���^�/��˗/�С�V�#��q|�n
mKe�ߗS�h��ϣ���?T_6�	X�׏;
???h�������sƬ�qqq�\�|}|��([�(@
P��(@
P��(@
P�f�8��^������+��3�<�B[G��
�̠�b͚5�X��弲���f��*�uk�Z��4<��S&O�ҙA�BppBC�׫_#G�@��]��2C�EZZ*�<��t?�u���������ᙯ<tU��ֺ�1:tH�ˮu`��I�.�
�+�+Cv��(@
P��(@
P��(@��'`k� Nm��7
;w�R!m����%c�M��G�E�:u�����w/9-�uQccc�0Ԧ;53��e_�����̙3���K<a���/+��)�����_0'N���q�2Ty����n�Ni�R#��@���%>y��ӵ(T���!U��o�"$$$߾X�r$���(@
P��(@
P��(@����_S'|��Щc'�}q|
hs��ʬ��7[�f�8kկ�M
�y��Y�։pf_cbc�Z��U��c��_Sk��F�XW�[�re�(^¦��\,�pTt��8��J�O����)��4a�s�?����8���x���R�J��<�Ξ=�aC�Y����8w����%�q��.��x	۾VOfq���h�"(Y��cM�h
P��(@
P��(@
P��(`A�Zl\�kܔ�l)�I,!��˗kfvV	j��Wk���g閽�L�,l�"E�h%���;�8���-�v�nݲ��W:k:lth�U	���$
m��W��ĉS(V�ƌ���=��3wV�Z�S�N�p���ܹ3F�w77���?�ĸqcq��)*X:v��Q�L�.=#�}�=�/_���p��T��ɓR=��y^~�Ulݺ�n��o�۷E���>�ƍ����-[�/>�_!?�OZzƏ��_]��7o�7��3g�4n���Tu�տ��ț7�
7��h�H�jի�gϞ�����;w�Ċ+�}��I)��[��[�v�ޅ���gN���Ͽ0n�X�<u
�ҥ3F��A�VS%��������ޘ>}����k�.Uƞ���ҥK�e�
��3�U�*c��+�R�J�t�Ҫ��1�pww�����)���#s�7n�/�xY�d�u=�

Ko��Hppp0*V���*99Y����
��^GW�m�Y|!!�Y�Jh�M
P��(@
P��(@
P�x���C�
���s,*I<a����$>���S�6�-ϙGGG�ȑ��U�f�s�,��`�$sʜ�93o�����v:��}�Z�I	�$�����T�Cщ˚���D��[$._��wu�b���ؼy3�=��>~�8RRRP�DI��Ͽ����?̛7mZ��T���}��E�.]���'���ƍ��k���/�D��!;Y������yd|Y+h3C�^�{!..'LB��ƛ��f͚*4���O>Q7Ό3P�l9ؿ���~�u�
����o�A�
��߫ uǎ�ua%nڴ)�~�m����Q�F�v횚j{˖-����?�px���&�n�%
���]�.������۪�⑵8�c�u8q�
aK�,���h��:�����닄�����J^]Xnk���|%�M�_�@ؖ����b�
4�����yI�����%K�Ҕ����F�%P�hQ��b�(@
P��(@
P��(@
P������7	�ejf�V�l�+[6�n��r��K�q����Ru,y��R��AgNm�yd_Mĵk�'�6�,>|���l�����8�Q��;�x
����Z������f
ڵo�g�}CV�b��`֬��ء�Ů'�IP��O?����6�A��ų�G�1�B�zD�ի��{��+n/^���&�Ç�Z�jcٲ�x��G�i���Uy��ժUG�Z��l�2<��S�s���m�6*���/��$���E�Y�ڱSG5��F��w��	�Z�B���L:���ԨQ�f�B���i<�T�~��G0��>��tA�"8((E�3߰�'��u!�����o��|B^,0��X�?�*�����}%��yRR"�U���lwJ�l��(@
P��(@
P��(@
�شi3ڵo���$�&�������~�'t7�2��uˠ��t�jO�k�4h�Pe����r�lV_�|	��Zi,��+޷�/�m�`k�[�][�ѝ�8��qCU�ٳ[M�+�~O�4������Hܾ�����&��wڴix��g1h� ��GT@*��R�j�Y;τ����:���C��p7����Pe�׮^ſG���[!<,
d��:�)SV�,�i�a�W}w��N�<��K�����.Z�������ދ7"аa�
�ͭ�lo���NW��>B6�s���w��~�)S��)��r�x��xgΜA||<<<<��m��K��/�#""�eV�6��/�LY]�h1k_	�?�h4j�R�J�=n�
P��(@
P��(@
P��(@�����-["=-��.�i�ؾ};��y��fo���S�p25%�¹u��ƻ���5�Յ��N.�U��e����H1����²emWs7��>��a��i,��K�z��4i�$��\m[�][�ѝ�R\�\9U�ܾ�x�W��}���*ou��#�DϘ�5֭[��,6�Lw����vΟ?��|6�$�v�Ue	xϝ��|���?p������[}n{xx�]��*���We:j�(���ŋ�1�`�~�S��*߿�Z�x��+�^B{��k(������߿
�>2�Ϝ=����4iR��l��yÆ��P����Z�˖5�r;c
h�ػw/�T���Ų��	�j�i???x\[�#9�'%%իU���<��(@
P��(@
P��(@
��Yx�0�l���f�<��M��. ..���GzZz�cN�>m;���f3��<2&����?U�T���dK�k�>�6-�r�ț��I���v��]U�
yw�څ.]�M�y��[���Z�t)�5m�eܙa���L�<�7o�����w[M?��ߢu�V�e
�5ka�������Y���vwJꟳ�w��4i�#G�Tǘ��7�|�˗����/�W_5{=��ֆ4ص{7�|�
l���2�5�e
�iS��=F��~���z��Y�u۶mCǎ���$��d�d�i�u��3�<���g�~��� �ah����Ύ��A����9�-�JpLL�
ɍ���x�C
P��(@
P��(@
P��,	�r�@�*UP�X1�3��+(��W�^���裏����d��f��ӑ��
d7w����ر���{�ICFz� ����������m
�uտ�~���öؖpז}t�K�hhh#�3FM��q����лwo˴�+V�@���Q�ti��r%F���G� (00ې�����zҤ��S��Z�|�
����xih����Ï�m�pssS����U�:n�x<���j*f�Z�>��'��f��2�ٳo�����I�&2t�ZCx��Y(_���S�N��ݻ�S9[
�e�j�C|�m�{�_�����_o[�J�*�իWc��)�o�����1w��F�|��)�B�+W��_R�#!!���HNNƆ
ԚťK�FTT4�]���>�M-	A=��65���+K�W��g�b��a���j?Y{Xv�ޱ��T-��ǩj� 5m�����Tdd�g�]}^�O
P��(@
P��(@
P����!�p玚�֭(���@�u�WeDE��j�j(X��\j�M��
�+�����Ҝ�i��)�Ͱ*SMW�\>&f��9M�'w�#}�)>��j
ޜT��Il	wm�G�lm
`�555
-[�@RR"*V��`��{���j��T��0mZ�6y
�$&��/Ǩ�%�Y�&Ə�7K�����oB�v�^���zY�&L�ڵ��z��*UD�n�����%\;v,�����	R�u�
���q�Ʃ�cccQ�vm�����`O�ڵѸIc,]���}ko�3m���+۪ժ*��[��H@<z�hU%[�re|�駐�66��QUlK�Z�Li�h�\�R�/Y��D��*�e�[��5�~pο��)��jլ����[����`�s`/����V�~��ȍ�(@
P��(@
P��(@
8[@������ ل���e����z%t��9��xpp�>o�<�-G�dp���~<���L[|��Q4�+���g��S,;�A�2yr��p� 2�jծ�M�6����MBV����{�k׮�6��o�{!��o���ӧQ�Hh4n.7�u���
�˻�\<(@
P��(@
P��(@
P��@���<uii��*����������j�Ƕm�ѣΞ=�B��nr�#G��}�v8v�+FԔ�xw�T�ҒTK,…�;x��};������vJ�E
P��(@
P��(@
P��(�,���:̓�x`�$�('$ģr�*����{�����)Ω����Op��5|����~
$*:
'N�P���-U��nE������˻(�kР`�K��(@
P��(@
P��(@
P oX�Ϝ=����6�ۣx�z�f�̝;Ǐ�P`�m�C�����ãLMKE�z
��W_�*`n�8x�����NIMAx�EܸqS�s�M��ww�*U*Td�*h�K
P��(@
P��(@
P����XW�[�re�(^"��ݤ@�
\���s�Ι�NJJBrr�Z�ܕ�,����
_W��mS��(@
P��(@
P��(@
���LE|�F��Ed﯀T+V�ʖ����)@
P��(@
P��(@
P��z�pZz:��ŋ�|��=(`I �b8"""���Ģ(@
P��(@
P��(@
P���}�K�{�B���hݷ���'���A�X�C�t��W
P��(@
P��(@
P��(�	h~Y���xL���(_��+��
�á�k"n�@xxRSS]s�J
P��(@
P��(@
P��(@̮lñ܅�(@
P��(@
P��(@
P����<t1�
P��(@
P��(@
P��(@
P��0vD��R��(@
P��(@
P��(@
P��C����`W(@
P��(@
P��(@
P��(@
8"�����������ʕ�HKK�A<��(@
P��(@
P��(@
P�@ɒ�R��䠀^�p.��N�Bbb"�6mOO�\>;OG
P��(@
P��(@
P��(� $$$`�޽�j��]��0$��I��ik3lۆΝ;3����Q��(@
P��(@
P��(@
�����ƍѬ���^�p.��6o�+��
h5�|f���(@
P��(@
P��(@
P���-D�-�aq0�	0v����M�(@
P��(@
P��(@
P��L	h�X�h��Yk5�7��5��3g�?�0�ew����Q��(@
P��(@
P��(@�U�i���A���5Ъ�e�w�&?�D�7��p޸;ϒ-Q��(@
P��(@
P��(@�A�ΝD5__����8C���&3�FtT4�܁F�������1�׾��l��th4n���#�#&&�
B��er֠�Q2����yo܌ġC�q��9DEG!-->>ިX��Q�-[V���pwss�s��+��$&a�̙*2xpn�Y]lي-
w7w��SƵ}�v;vW�\Q�(]�4*W����>��g˖/C�n�m�=�|�e���#,,\��B��
m��{6��;R��(@
P��(@
P��(@
��;ԩ�z�)�N��X�F������U��55%��*.T� �V�����\��?;v�����K�.aٲ�(W��}>F{��ߤ�t<���?����u11�HO�P�[/o:?�أ����]��i.�%���
��$&b��Y* -]�T��))����tI����^���-����w��gϞž}�0e�d�����|�-Z���;m��+�W�ǁ�Q��/^}�U��I����gP�Je����vLLLB�>��~�xzz�J�*���oQ�z��6��>	�3o��J�,y�z��>đ��[����0\���(@
P��(@
P��A`��j�iӦٰ��.v���zDN�<������*[�T��}��c������(Y���C`]�N�9ooo̟�=
,�+V��իX�z�6���`oݔ�)��ش�?q
Ǐ���s'��O-
�n�@�
�-����j���//՚����}�FU*E���>��T}��v-G3W�*�\����w�}G����&��7oބ+B`	�.]�*�7n���~
�K�Vúr�
�oߡB_�y��K�;{��/W�>�-��5�f$&O���1h� ��6����&L��y�y�e׭{7D\���?���my_����p+2]_�.`ǎ��A IDAT~��zC�F�j�w�^�}�;w���� =-
����s͞����vˡC�s�Nܾ}�	�ܲ�������߂�hܨ1}��,�}�֦��u
�im�B��m��������#��U��pw�:E�a�cƌ����ד'����3�����~�o���(@
P��(@
P�YN?��cƨ��15�a����4�2�Vj����
�� #C���$��ƨb���xԮ]����+�{������Ftt��<>��?�};�˗Wp�9/��j4HK�ھ����={T����ᗀ��(�FG!#�h߭.���~o��&$.qU<����ɓr(�yX��{����]����Ǝ�]˸�P*{��F��&{�7��ܹ�w?�:�X�=p�	.�/��R��_~E���%��?��Ïy+S�N�8���ȑ#����>�̎+bzWg�e�3bT�b�=Z�e��]��=߶vh������AӦMՃy�֭�2�R�JHJL��uk՟۵k�ƹw�^��.]����]=0�U��f͚���a!��ԩ]k׮�_����i��x��#HLL�|��f
�d�Mk��.�a��Ʊd���W�6����b͚5(Q�ڴi��z��`��2���M��W��3���Վ���8�����j��3���^S�O
P��(@
P��(@��,0g�5�l2#l�޽m����>_��۷��a���m��jܿ�ڎ��D(PA�A��xG�
�w���77w7<?��32�3��奪�Ǎ�'�xB�n��@����ZD$-^������T�%�Q��;�}�j��m�1o�VV�w�b�(PP�}���Z�����
�Mw+�[�d��c���g��H��J���{�n&a�-_�}���Rț�
����\��M�����T,��D�ΝЩS'�7��p�>���S�8ts��l�Zg�v銺��BB�i��`���>|8<==�
]���2d�zkG�^xA?��K��t�R�@��Xy	A�9�����iӲ�+W����?�7on�ٸO�ڴ���ȰMww��HNNƄ��U�|a�ª�7"n`޷�b�!�jh�~�)�׭[�֭��m��~;�-g�c5έ�9�<��e�L��Y{��k�)@
P��(@
P��(����/"1���'���?�%.e�b_{�U�Ҡ>>�(_�����K���?��͹4j&Q��z�J��Obᄑ8q���}T�[�Hh32T0\�^]�bӅ�;��D���f�Z|9�K4l��������ȹ34nX�f=v�؅C��!#��UP�E��A��(v�&<.�]����P�f]$j
���ܤ	����rڑ޸�X�`ӕ�2�s�f�v�ȜO�42��e�i�
;y/�5��s`��j�A���g��)�
X�+s����o�SoK\�x	%K���Y���������^�
nذ������;}�k�.��cĈ�x����)�m�v�m|�����o���C����<�r)o߶-s���5Ô)ST.S-Z}��Us�˺ӏ=��/[�>�n_�_0��(\83�C����v��-��^lݲEU��*]~~� Sn�2���U�ŋ��ŊC�N�v�:�w��0~�x,X�$}N�Y�H0zt�U�W�v
�������}z��Wc�ҟs���z��u{�d?��w[�nA���q��M�ш{S!k��c���_C�R��>6K���cлWo-V4�uvh�s}2*�:n�s�6��#00�Ǎ��!��"�I�Ǎ���.S���~���_�/���\��RZq٤��䉓���F`@ Z�j��:�����Юm;�kn�}%�F��NIMQ��:���y�/_�3gN��T��wW��			꾼t�z#�g�AݺuU�%\��
8>s�雗��~�Y9V�8���\�����e̺�ݰa(�;��[2���a���s�Nܼ��;��s�os���r���稹k/F�A�ƍ��\��eˡk׮��F�#cY7�M�����Z7�����i��v�M�-7���y
�I�Ϭ=��]���(@
P��(@
P��I�p�O�~ר����~4y�$
n�U���9{�/_�;����;�Z������q��i������Ce32=��^�lٲ�Z����S3Ҡ�tÞ�{���
�+`��yH�O��1j��\����Tf���&���ӕ���+Rm���c�㱊��Y_\���%��)��\�%�b(R�.$�
���3�x�I* ͚�Xe}�!�3oZ{����:��l^^�(Q��=��͜[vM�l�6mބW^}�\i:�&���*zMU���aé��57e
�R�J��}�?�a�a
�Wg���O=��ׯ�I�&�왳*X���*����֭[�x��;v��$������r��x��j�q�K]B�-���?{zz`��hӺ5�=�Ճ�c�N���Ր�+�e�t�
��@�f�P�ZU5�X��߽{W���iT���0�%�i�[�n��Ǐ�*�G}�~�m����+T������k�bĈ��;�f�5��Ç�߬����SO�v�Z&���w�!�F
<���8w�~��W�?8�^�m2
r��Q�zu��L��q���Ӳ��C��?�}kӶM���\�	�
۴eK�.U���ڵUS]�?wN]�:��O0����Aݺu�ê_V!�F�{�9�gy�@�S�d���F���1i�$t���+WFLL4�,kY��pSk*k�ŋ���Z�h�^*��O@@����H�*,�P/?/^�?�
�QQ*��ճ�ziᇅ���l����������W�O�?�m��_{M�y�_�m�vj
唔�������p][�h�*U�������4�z�i�Y�&���k/�u��U�VS>2E�|�Դ�Z`�E*x��9&kɇ]�����i����=(�v�m>��{��kc�T���$���c�����(@
P��(@
P��(�O��c�Q�xQ �+���?����c�K��9z�nE�`�i|����!�Cp��\�rE��XW__�&''A
�d�Hgn�{�-vڍ�Xx(�e���7��I�ƪ�^�rJ	�?��3���ғ��R�*�	�rEqd�\^���Z�N*�j����•�!#]��>>X�<���m
h���_y!���RoiȔ��O���q|��IԭSWUEJ��lM�m�����jԞ�N�:�&�����G�C�&�q��
}�t��5�.]Z�{/պ�ȴ��rȐ!��u��%�O�`Y@�ahCDF��?$eN}	��T[	��R�r���|�t��R/S'n��T>.�M�6�W�J�*�J֮/v�\˙3gb��a�i�
�!�����o���hKp�;�TX+���3�V����T����z�WSP[�SN`�6m��%��←7y<��U�y��9Uq.��T?���޼y3b�����}�ua�|�^P����z�)�R��-U���6yi�ݾ敖W����Ó�G�5危Y�g�)�u��,PQK +a�����C5k8��T�ϝ77���e��B~~*��^?�5�|�٤IUU����4�G����/�SW[�w��u�z�j�Y�殕��7�&R�kl�i�&��ǡs���:�wt�����5�tNk�)�C^��t��9�3�����3I>��s�o^�@
P��(@
P��(@��' ��H�[�^=�tP���O?e}=`;`��9*:�
T��JQ���S6�Y?�w�R&�A	w����AN
��-248|�_?���xlX�C��g�<�iUů��2������>�rmJ2N�{��c�����Gt4Ji�P*(���4�tD�
�G��Цk�����uY�Y��9�)�'94\Nm�gm
hCiY�z���(U�4Zݭ���JX��Mm�X���i����K��75��#G���ݻU%��>����j�8ްa�
�tS+�N$�I���m��Ο?���r�����sg��ܿ�?~��w4n�$[��g��䩓X�l�:�R,��ӷo26xMU��
�ӧϨ���0���5�"E�b��Ux��'U��ի�=��Y”K�.�{��ٮ�L�*����K?Mu����9��U�د��:J�,�o�TX�������JM��U�K���)SUd�
,�)���8��n�z�B���٫��^��ƌ���z%KfN��cG���/��9��T��޳GU����������Wyaa떭�z���O>��>t5�唶�oX�d���y�CA��-]��~6��q�(Q֯�A���r���2=��՗_�����S𡃇�_�o�|[MW-o`�i���#О~?���=��r�����&R�ml��?�.]�@�׭]���ޑ5����������������3I>�����U�C
P��(@
P��(@��* ��49o�<}��7����
ڶ\����� 1)�w�]7U\�TIT�V]�.ׯ]��`�oǩu�eYB�_˔)��)����q%�&Ϟ�B��ؽc7����O4CFZ<�<���=��h��_�ܹ�H��w2���ς���Z����iP����J���Y�
�%|��@����3�k����Ռ��d����`i�Nb��f���ez�w�}G%�cs��l�ƍ������q�F��-{�f�Xk����ԩ�j[i�T,UZ49e��u���P�jֹ٥2V���ƍU�I,SiO�>]�Y�
��V�g-U*�Җ��)ᘬ[��>V�q���sYGTW�(!�L-�F��%
���F��TX[�?s�`�855UhD����������^W�����:s��`��թ�uʅ+����f��6ue�Z���z�R�J��W._�ҥ�T��5��T�M�5EHHH�m��5	&����Ms}�]s�i�8t߅��Ϋ�	�E��~���⥗�A�-�M��W_}M=�RS�T���u����ukUe|����>Fd*�o����z��y$�sss��<���>jji�M�1�n���*�0|�Af��m�����ִ�<dzjS��i;i�D����-D�Q�\Y��L{�mؐ)O㶜ein������իj�c��7u
,���R?d�aK�ڞ�X���6���=�t�bS�1�7?�(@
P��(@
P���  ���%'eIK�Xd��H
U8$�0����(���XV-���P�LzZ��,��򊙛�kQ�^]Y�
{dN���O�~���q�f���6O��{j:<���$�k��4�-j�A����Ȁ婢%�~�B���_��������B���y��B�to�)Q!EK�\�$U�D���+���a�{}]�f�.v�ҲLy;s�,��]�ޭ�������W7�ѣF#1)	=z�@��л7�ag5��d}Q�>�x�����Z,�ˀ��Q�x1�t���T,��hN�>���day�C«.���E�e�[Y�WBO�Z��V��Z��O>Uol޴	2����;�խ��Ʊc�"(8X��R(������
���i�U[�)Z�>�����ԩ�Ԣ��,<��_������XC鿬�*/0���a��Qسg��Z��+�G���Oq��|����E�A�˔�M�6E؅0U��/b�ȑ�C������f�������X����2d��z[��� ��V��{HM����݋}���k�.��U�P�F
Hեlb%[tt���Y���{t�K�.�2w��E��|�~����뇄;wL��Z��>���1٦�qH�,�V	��X�j5Z�l�Gj>��hSv��˗.�5V%@�j��G���r%�{S��-Q���nZ�fyNJ���M�<g�l��v��m����wm�<�r�lS�K�����Ѹa��Y��s�ꞕ0P�o�k���"0(�ڶS��������;oJ�(�V�[���e��ԴTUU�[��x
hӊ?��i�80�K�㶧���i=�ے�8�R7M�q�-]{k�<�^�7�d�py�nݲE�آ����x��֝�{P���km�y,�S�^1��L2�����T�G
P��(@
P��(@��,��V�q���/5�:!>^��DfǙ�X㖹��dC��D�4i�;w�����2���M����_������M�_�,NIO���">1��/Zn�xi�P��~a/��g�8����
Z��ͷ"�*�E�Nem����pQ͊�;�)�OΝ�m�^in�w�D��7�B� _$�@_��xɁ�W����Q��X�s?+�]��3�]�RX��{e~�ҥ2��=s������Lnv	3Cb�7k��$���
Z�By8(K%��BތĔ�SY�34�����j,&L���_}�������'������P̝;W_,�$���j*�>��૱_�…<x0v��	OOT�ZUU�ʼ�~Ps�K�&A��ٳԔ�2
�;���~.}�w8 i_�e���?UX&S�.�X���ݧ�
�6l��Cy���s	n
�ěo��_�U�:�k�JX��U6g��\,c����W^�r�W�\�cG�e�'d�hU���z�����]�6�k��>��ᇅ�]�c���J��c��}*h,_�<Z�h���]�v�쓵6-}o�Mk㐪Py�A֥���ɣ��v�ZjX�iq
h-�y�f����>������[�S�Jp*/d�����#ڷo�� �oB�}#a�ŋ�ꞗ
}	j͝G`	��/[���X�6
UU��3�K�_�E��S�N��]��]�~�2���� օ��ϥ�$!�=�W,����e��ēOX�t��G��[hK���r���E��&�`ݳ��W"��-����R��꿭���\s����km�/
W_K�$����s��_j܁�(@
P��(@
P��\@7ճC
<Z�i�F�ۆ�T��l�SC�n��t���B
4$�����3�<�~�-���DǨbB���Q��R�9���th�ݰ}�vl߹��eh�͜��Cs������0@��S��x�C�Zo�,�T)�mz0����v��}�ɠuǭ�D�����
rGjF�ʃ||}P�^���2���:���J�+jJ�!���Z�u���HIIU�K�㌷
;p��Ql��e톛>� a��᯴bK,�I(���K.�W�XQuB~Q.�0��������v�>D;�;��6n�hu�u�
��z��w�*N	�􋳻�|�4�>�6m����z���k���Pwd��/�|�w�yG�X�ͺ���m�v��#��Y�ڱ^X>��oW��mS��(@
P��(@
P�YRp8e��Ɍ�Rd%�.Z�HeA#G�PSB[���e
���Sb��`Nf�i�<�
u��$Z�Je�d�L4�h&'E�7\��_~]�=�Ŕ��Q�X)�橉EA\ƅ�P�(��2��t<3���H�K�RR�0q��<u
i����K����,
�j��i)
P3��*UC�V��TE�*�j<�M�<ɡ[-�����*�%(��X����p\۷oDZc�p��u�KU_�*U�T�9����X�!o���o8���/^T]+_����kժ��i��+��_}�U5M�Y3���^|
��TQnȏ�θL�Ѷm[��/�[�lկ��Pc<�%κ�.��(@
P��(@
P���C. ��>>�f�$ �
է�zʲ����3gU�%A�,�Y�BE$%%��8��ZJP���+UR3޾�
3�"֑M�}h/&N��f�]��*�)nC�K;&�Ex�	�u���h�>V`�_����Ĥ,\��v�F�T�
^eOOxz�<�r����2
�� =-��ܒ]f�&5Kg��[:��`��lO��t�2��<���Q��v��UMmK5`�^6�B��W_�5��ٳX��x�7Q�dI��*k��O>��'�:� IDATC��`�	��Z;��l��(@
P��(@
P�p����,�w�B� 3=JE���{yy��ׂ��
���ɚ����  ��X�-R��p��H�
4PU����w�.����pswC�8{�֭[�S�O#99Yy��ԫV��
�*W�wd���cϩ���1�W��;��3���9s����k����O?Eǎlj1/NmSǹ�C/ �5�,�	��-�g�}!!!����'OB߾���n�_�����=�(@
P��(@
P��,
��k��L��K�澿�`݈2�f��9�~,������`�5�a��(@
P��(@
P��(@
P��'��8�"�nl�A�]'K=c��׍p.��t�(@
P��(@
P��(@
P�A��-D�����xr+�Kcvv_;[�J{lۆΝ;���+����Q��(@
P��(@
P��(@
<H���ظq#�5}��`�/%`�
�j���SHJJV�p2���;S��(@
P��(@
P��(@
�HHH��}�����ڵj>0.����:�݈��/�696�Z�W�;(��^G"J=0�����98^B�+W�"--5G�
P��(@
P��(@
P��(@
%K�BHHuxzx>0n�$x!�.DZ�yx"��شp��B�\�9� �1pt ����(@
P��(@
P��(@
P���S4�4�#H�b�d3�A�uG
"	E�_���Ah��p9
P��(@
P��(@
P��(@
<�h �K�R��ݴ�2�-<��;e����F(@
P��(@
P��(@
P��(@
�Mĵ���
���(@
P��(@
P��(@
P��Ь_�����<��(@
P��(@
P��(@
P��@Д*Y�p��(@
P��(@
P��M@��'O��Z
�
��]�x	:t쐳�x(@
P��(@��(@
P��(@
P��@�t����kh���8G�<��(@
P��(��7(@
P��(@
P�ȑ��� 
P��(@
P���]���)@
P��(@
P�xp?�ז#�(@
P��@�`��{N
P��(@
P���}`|_�yr
P��(@
P��`��(@
P��(@
P GO<s�L��Ͽ6)իW��M��N�N�B���6��)@
P��(`����L���!܇�(@
P��(@
d�k�f���B{n����?[�x	:t�g�{�ꍹs���?{���_��ʝ(@
P��r$�0�;�p�nD
P��(@
P�������ˣ5;�^�[�nEJJ��K���g�}]�tv�R��ڳ�3`9��MX����,40q�D:ĕ�з}��1���W\�v��>�Y�&�v�
?�B�r~���u�O?��K�.�.�+_ݺuG�ҥ�˸s�-[�ļ��P�B�,��g���i�����Ӭl�=m���K��w�fئ+ڷg����A�P�b���%J���)�V��3۷��_��b��)������3��2˄��3���s=/x��g��An���{����w�^����oڴ[6oF�-вe�'�{0��]�(@
P��(@
P ?
�
�ڻ㑬�!�cp�~�_�۲����|�-�Z�Ǟ_j۳����_�Y;���Ʊ��aC�a���v��]Ϝ>�Y�g��_F��u���[6�N����9k��r�:|��'�ة#y�d�g`���8��F�����-��@��A�1ww}gm
_;wꌕ��t� m�CNO�[�Vn��V�$''�������lmB����c���(X�`�c�ʘ���i�pwsw�3̙�ʭ纭5/=s������!7�o�u�~9p�ߙ�3����[�ܹsX�vz��	߂�Y,�~�;oڷo�ʕ+ی��f*�H
P��(@
P�������*�5�$
����?s,����k���ӎ=��9�Ŝ��~���ΝW�r}z�Q�GzZ���}饗��O?C���/��~�˪U�??�裊�R;C�
U�J;�u��rܔ)Sp��I��O>��j��(-ZTU�U�^�)_1	�k��P���-:*��aa�(W�,�|�-)��ln�����\�r�-�������og���I���G�>�L�~�iU}//`\�z
�f�B;x���P�n���5;G�޴iS�������{�3_##o᫯���CH��=ZU�����8t����_au�{zz����ջ�Ι�����45�����#=#cF���S'Q�JU�1BU��>�;wR�;�*ݸq���@W���?���`̘юY��g��g�n�Æ�[���{V8c���xȐ��1c��{lxϚ������%��i[������U�ˏ>�H�_��_~���>˵0p �|�
,Z��;��A�2e,~f�Z���}����+p�f$��R��Ԭ
��/��_.!��XG��=-ݓ��o|������3Cy�L�<R�.���Cl~�͒��{������3w�����W_ŬY����T�]�w��ל�[p�ߙ��]]<u�4?~�*UD����C`	�Ϙ���/���`�%gl3w�(@
P��(@
P��槀��+�4�3g��?������2
���Z k|�����v>��%�

F�vm�~�$%%��2	�eZ��m���X�x1�q�k�N�y�ʕ*x��R;bӬ�s�v�3싄nR�]�\98xPM+�*U	���� ����C@@ ڴn�M�7��͛*8���,��R��^G�1{���e�ѠAԮS[�4:�6[�(����>�U�Vhݺ
��<U�Z�n=)RK�,����zo���BV����B�0|���P�x	X/Z�w�`РA�ߺ�$���KhԸ�,Y�B�n/uC��U%����1i�D�5Z����+�`���|�2>��SՖ�BK�����m	���ۯg�*eG���X�v�w��<��m�b�Y��q������ȿ�꧙7�gm��͍��X\yoˋ2���h!/5m�5j�(>�<Þ�y�rF؅x��{6}fj�s�k��H�|���߷�7��}`�+��XG�k�@K������W�̔Ǹq��5�?=r~�
Çst��%K���?��>*[��?��:~ݺ��`�c\y�;�,
8�����5zu!��[�ö��-J܇�(@
P��(@
d0[�ʽ�ZO,}.��5��R�xk���b�T?��W~����_��G���2��d�v&M��>�*F	��^�~�=g��מv�3��@A�g~�gT�37	���J�Js�Le8��(\������)
�-�`�����]K~�p�0[B�'O@��|���U,��}���!ф	���ﯿ����'K�-�͕�\�J8q�:LU��R�+���A����V�X����O��3gN�`X�I%h��GiS*��V��^��0l޼y�%iK^�M!-m���J�}-�ʦ���q���a-v�w�Thh���{���'k�K8 �|�b���4�{��{�\�y����W�l��ꅜ���a�Э{�lc��ا�~��}��n��>3u-e���׆7���s����ּ���/��g���hn��`���>3u�H����)/b�h���Z�7�[@^t��}�aÇ[
�]��v�
Xp�ߙ��k˹��7'��87��E
P��(@
P���$�w�&�JD���jժ�2���\�k-��q��Ŝ��Wꥥ�� �n�dK��օ	�_&K�_N�1<�����
���#G����Z����M/ӥJ�g�>�1|=�k�����r���OU���ϖ�mk����`Ј��t����
][�h<n�vs�̆F�9ŻT�͜5S�g�)-�͕��0�V�V	[���HKO�w�{x��7�t�IP&a�…?ॗ�a���j��e˗��^Ǽys�KҖL﬛�7�s���m۶�m���`��i��ٗ8K���qs!�����ﶭ��^���gx��z�[�t6��s�-3ܺ��o���T��]��Ξ5K=�dJh��5|�Y��T�k�{-O�׮]GjJ
2�Z����ަ�Ig~IL=�]Gs��g���?$�;v��)��;��'k���X�͌�3����@ߕ��3�7��.��3u-�z
h�yC`�YN�_9�0��(@
P��(@
P G���ڿ�j�W�O�Ò�KСc�za��/��={��KEi���
��X֐��O�UmZ��?�i;�Le
ý{�b������ؾ��[�f�V��6'�~���c}5��Q�0n�8���0\�1�o[۴���%�i�uSK�)����*��>�T��B�{��mUk*$�v���l��\q�
�^�����SO>���z����ڵ+�Y!�^o�NjW�5p��9U%��矫u~�;��7ٺt�*��UpϞ=����u���"^��B����Z�V-G/s��m�6��mkl��S[`�q��476[���{[�}W��c��內N�;�PD�*�麙�+�-}f�X7K��u�g��]�N]h�4�����VoS�ܜ�r��g���h�fϳ��#��w��k֬���n��N�T��������p�Q���Z����:�wԁ�[pV,U�1����Ϙb����~3A
P��(@
P���,`gN�l�vwI`g��w�Ƃ?d;���z�莆
��5Ý�XB������g�w�^��f-�4�<��ȹ��I��W�(�ׯ�a0o�<}k��2:�ҥK�4q��&�A��HNN��ݻT0��;}���u��X�v�
<�z�M���mk�����5Y�jU�l�R5�˪_T����[1��u��Ꮽ`��Y&M$X�i�%h�����46W^s��U��?n��؎M�6�1L?AM�,k�nٲ[�nQ�:�&�CKh,/�l޼S�L���ѲelݲU����g�d,2��=^Ƃ~@LL�>�1�����0d�`��s�4Ŏ^oS�]㟹�mk��{����粒�ݏ{{�/��3�iӦ�[寿���v&J_۷o��r�5�/^W���K��[��Z�We���"E��[!}�SfY0|����m���w��3��u4�\���hh`h#��s��Z_\�vt�~oh�uɼ7:��}�=ϥ��J�*hڬ���`��
&��;�QoY�YpnTs
h���(@
P��(@
P O�`����G���S�:3��	G����
�{���3'[~
�M���/��T��=y��%��~�e{B����w�>,[�S�M�����B����Ǖ��:u���R�<Fڗ_�_�~
��>�]�:w颿d�C��xQUҽ�ƛ*h�͒��~�ڦ%?G$dc�^�ia��^ꦂO�,�Q^�����*�.]�য়~R�ꦚ5���~�:f|�5�������U�Y�+��q�*}9}�Z�W+�إ����(V��
cu����ӦNU�w�Du?.[�\_!޽[7����-�ڒg�T�:}
�<�>������K�,USI;ksf���m[`W����~?͍�~��R�.!�T��6���ɓ��4��޽{a���(T��
K�,��Y�����ײ��������V?{�,$���0|����m���w��3��u47~{����6׮^ç�}�֛/^��#CT�f�7�������SԽa�ϗ/_V3������Of0�W>��`����8��^u��3��x`N���)@
P��(@
P�x@�N,�2m���W�I�S���rl�_��R��@���[���Y�e
	�/�?��2C-n�-��O�:
Ǐ϶�a0,/\�f4�ŏ�-J܇�(@
P��(@
d�?p�~頻#�M��T��,U
k׮USc�4f�[����|u���w�E�r�Ыg/�l����� ���S@��%�$G��=��m�%�;o��7}�ʕm�,�m���(@
P��(@
P�P���W�Vk�����覱��W��EM�(�>�/�	��n�(@
P����
��
���X��������8?\%���(@
P��(@�<(p`s�&�ŋѰaC�.˖�*`	��m�k��cﴛ��\�A�%
P��(@��(�g���D�]��6)@
P��(@
P�x�V�l��Ӧ�����l��5�Z��Y�����<��(@
P�x�����ʕ��
�Q��(@
P��(��J�.��N?�����(@
P��(�K�s	���(@
P��(@
P�
0���<;(@
P��(�;�sǙg�(@
P��(@
P�>0��������
�ði����ڇa�#(@
P����N�)@
P��(@
P�ȋ���Ua�(@K��B���	�����?m:ܑ
�C3��s��(�k�s��'�(@
P��(@
P�~
0���<7(��T�b��H����|w�R᩽��Oԅ�6�gn�(@
�/��~3A
P��(@
P��@>��p�5�*�L
�R Y����ðyhSP@{/ux�q�?s�(@
P�~����
P��(@
P���@^�_~��|��.S��H���T��2���v��Ŷ)@
P�`�_\��(@
P��(@�{�y7P��M@��d䷎簿���`�CIF
P����)@
P��(@
P����Bs��(@
P�x�?�7�O
P��(@
P�xX?,W����w�QT_�v���jhA�������BI(�Uz�*�7��:"E:ҋRET�*H�����sߖl6[f�M�M�9'�dw��{�{ߝa����	�	�	�	$o����9z      H6��l0�E��"�p�S��^
��IAUn$@$@$@$@$@ɉ��dm��H�H�H�H�H�H��1�$#��ý{�x���0�. �)�:
t2�`/���z%K�Lƞ	��w����n��w�K�s�wmǞ�	x?
��o#��H�H�H�H�H�H�H���e>��M������<L0�T�aH�Ș	��Y��i��f{���`�qg��k�cJ�vu�73p��AD�E,��'/Ch�ev�}4��.$�[q��CH�H@#
�Aq7       �&���d�>|���]�\���[6��o������8������X�C�l�i�y$����ؾm;Ν?�+W�"g�ȗ7*U���y���A�U�W��`�7R��D|�jܦ���Z������G��Һq�������0h� 4j��/��S��-\<6��z$�R��m"�Z��R���j�=~��7ܸqQR��f��Ț5+J�,	�{���)S�@���ȑ#�O/1�S�EB�!]�tx�paԭ[�_�m��'��
O��I��?��%,�?���V��Ȗ-���Q�ti#&�h�"l߱�s�F�:7F�M(.�lբ�g>|r�����aذa�ׯ�j'.���u���Թ���<��
���C�� IDAT�+	�	�	�	�	�	�	$c>/��!�ʿ�_�?�ݳf!�qd{���Fy��H�E��b˖@�"�ʙ�����h��]7��2`͚5�a�*D�D-?�>����'�|������;>�G耧��_�g����Co��ށ?D��>)0vh#� B��,`����s�F�re-C;t�.]��)oجEK�Ҷ��맻�u���)����h.�GۺHax��A�2(gV���)X�![�B/;<���V�Y�&{Z�%a�°u�V<xC��S�݇��(a���?��� (w��@�9JO���ѣ�6m::v耗��S'Oa�)��b�ãG�ЪUk̚5C��ԩSyL0u�q�7o��e˪�X_g�2�:��)�NQ]���n�fB��./�O$P��	�	�	�	�	�	�	$>-�`�u��B����Ǒ:<)�"�'�����!L���(Ze��CT�<��.KV@��.��~X�+V��*W����TD�|�T�Ծ}{�8�2�j׮�V�Z�O�F����YT\�j�ԩ�V�$����V�ŠB(X ^0܇���v"t)�T��9�����!��V��=(K��+ѽ{7KƏ��K6�����w�a��i8u�4
ȏ�]�!"<=��
�~�-������$�;22
:t�ףF�m�vq�&N��
P�t��v��|��N��fDnӶ-�Ν�lծ][T�T7mBh�\س�V��x��e�u���g��W^Q�9:�6n�N�nj��U�dضl�
�ǏWm�������<'�ܹ�o����9�|��]�vȒ%�����a��1�w��4i��sC1{�l�Z�����Ab�KѩS'�%k[9c}��q�_�@�άY���(Q��F�Ν�X3f̈N;YfWs��+W�`ܸqx��1Z�j����?ug}ptL��MкMk,Z���O�ƍQ�|9����V��O��o�Q��-�ܾ};�9�=z�cǎ�}���.s�L���/����l�+�۷G�ƍ�x�e۷�*oF��

�'OĈ־�l^��9b$�:vL�)��w��vmk/�8jߺM�Tp��YK�_��e��h�����	$u����9>       E�w`��˗��x	疯�?�����~m�:�Q��k�S!�����rC�𓒳ZVG�v	%�͜�+e��q�љ��N�Re�u:��V9hws���E�]�r��b�dK��3��0�j�.
e3�v�%(�~�L��ٻ�;�z���4���w���F�4i��4"f�f-L�4	/��"�Ԯ�V��ӧO d�F�B�?D��b���X�~>��CԬY�:�u�֡W�^q���87��@s	h�Җ�wYX��P$O������m�Ä*�b�
�+gƜm���GpH��}����[�*��\��i������I�OG6���i�={�@��yq��A��+eZesv��9����%XJ����1t�P��[�z<ӦNC�̙UՀ
���ڵkhߡ��}̘�J�Q�,[��m��M(;��#�y�^�0}��Xs��={�Q�F(V���ۇU�~��	F]��=�G2�Ϝ�[��Z維3	�ҥ�ċY_��й=z���Y#~P��U�6���(/^��'��W��I��p?x�dʔ���[�nA|�<.k��{�f�P�Z5Ԯ]ǣ���{"<�\�R����s����\tf[��l�jad��3^���|�W��>}:N�8a��E�A�6m|e(��s @�9@�)I�H�H�H�H�H�H����
����)p�<p�,~5
8�+�<}�P���)�7J�B�^@�@��@��^x��9رs��=~��Z�7W���׷_x��*����_|����µ��n�:J������QT��9��F�ѭ�Ȗ�((�E`Ex�z7�0^�B�֥�=�Q|�y0XƱd��^e�J��c�N�IؠA}5F��"B�3iӦŃ�Я?%l�޵[��,b�ף�V��s�%
͛7O��l�����>��l���cK�v��;�X������
70~ȇJ��u�m7����F��w�-Cٲ2����ck�)R�@����/�-�bo��Θ1��ۑ��;�oɒ�P�JeK����Ύ�>��!Y��>D�&���J�Ze�;;��7��PJĎ1B��O�B4�������k��dv�����i;��ɀ����1��Xs�kk�aٴi�ّS�LQ��0�ѳ�C���ܶ��֭[c„�H�J����l����3g�O��͚aᢅ.��U�x^sK�ߜ9scd����%��6�j7g̘�b�'Y_�����%.��o�7g���\tf[�/�;k_+#��ig��\���|/1pԨQ���&�%��ٳ��P���@��s��S�	�	�	�	�	�	�	$>��>0
�g�`m�n�z��9�x7e
\ϑ�,h�Ӧs[�l�s��c�!Ț5+�
����D`�N�>���ɓ'1t�0��g�,�bew��Zڶ��]XkZ��`Ҍ=H�o��+����g��_ɶ����8��йUE��j�_g��Z���O���[�(ΒM�/_>՜mv���6o�J��޽{a�ر�ر�*۽[7L�4Q	m#G���r���N��͙�_X�Ǻ���3<CJ�����l^[D_�¼y��'��Gk��ދY�F��:{6�cn\��J��z�*i+�c�…UsΎ�>DžU�f�8�ݫ�*G�'�KN����ŋ,�
���2�5�[�hnS%�0t�<%n��լYs���T�ȑ#1y��Xs���O`��%*����!�`�!/X�@�[��>kaW`vf/k��Qڳ}S�Yc[�\K������ܹ3�̙3[�y��m24FF�m�g�8�H����0���s��9�y�O|��DZ⾣y�h.:��������e��=�a��J��={bt�w�Aݺu�����s&@�9��'      H��&���j��y��+���vE�7n��_"eʔj�R��;���p�����^@�LO\&��D��/��k��>K��8���x��&:5{��R*R{�b`:v�/;��S�X�
9��t)q��������Mz�������S�祗p��c�/�}�oOs&�H��cΑ��m���m]Z����f6���$�lT���ln���y�����U�fW�يC"�u��E��k.���6�)k��>B�@"ٮ}�������*/&H��k�ѥkW��%���Ghժ�bh�I}h�u�v��i�F(Y�$�:>����SU泔����iӦ�j_+oɤ���������q&j폽(����ϭR���[��c���쮸�N<�=mm ��*����c�!g��<Z�k�s:k�]F�|�1@+W_�O^ܒ��?��)�ԩR���>���/pN�}����1�	�	�	�	�	�	�	�"���s,m���Qs�Al�#���`ڴ�^����EDy��$0ﻃx%.�{)�����+8��4�[���E��lB	���_�˗/#o�<hԸ�����gϚ�L�3�?��7��޽�۷��w����;w.��h���*��`Μ9���>���>�逎���.z�j9��}L�)�>�Svf�A�5\�x�M�={�'O��Ύ�i$����;Ȝ%�5k����xk;Y�5c�d�d\x�?���;��,e�jY#�r�*j
�[�y�|��]�޽�6m��!Cc��6�d⌵9k?00�6n¶�ە��b�JD�5j�r��ϝC��]B�sۚ����P�ȝ;7f͚�1cƨ�����1��:���7g��|��Y�3�۷GѢEq��IL�<�z}eY�ޓ�f|����@��gΘ�C��s�jg�ʚ��RVX�ǻ��z��Y��m:j_������k�K�d�&���̍\���'      H|V%12Q�/A��-_�BC������]+R�õԩ��E�	F�K���
���n�Ӽ���u�Աk-!K��㏣^��2�%%��5X
�T
�.�nw O�|ȗ�Xv��?�p��9��>2��(�!.��� ���p6|8���
Zlb�p]�3c�L�ns֬Y�z�撿a�”�1q�$�A���St����hJY;�QF��I���+�ƛo�$�ˡ_R/��~v�J����ޙ͏=���5��fɊ&M����O���8�sH;�Y��W=Q�D	��[к-R���?��C��U9iY�Vͩs�0y�d<~��}��sC-�K��<m�y��A�"��a���dw�9c}��yU:��^�_���ӧ�~����_|�v��*�6S�����ȑ#G����^�|�^���ߌV[�l���J���ADDG�8	��Ǟ�܉}�����СCX�|����zHH�|�M�6uW����adx ��,\�vs6����_�5{�[�����tԾV�1@k��T��٤:�Td�F�PvE�ߓ	�	�	�	�	�	�	$	�+��í�0\��p`�0�?���H��`�D�
��q�?�E�~��'tA��˒Щ�T�6�f�^�JM�EDiDj�)٨���2t�%�Jˉ���ي���c}E�����v�(������
��ϣv���\�p�WCYk�M�Wڈ���!1��''�ym�a^��������\:���v�>RF�`0�ێ�3g�@�ӡR�J��ןS^pȞ#ҧO�;�c��}8h�[�����v��zn�Ğ�^=�8vN��V�h�8��Ò
����/	�	�	�	�	�	�	$S>-����u�_�\����Y�v�82�=C�HY�x��{)R"EѢ�ز%P��r�>g. @���m?��+V�PkVV�^��(��O�:�}����_٤|i�ڵ�:�;�[
{xg��e�V��*^�o�̻��U\9���Bؔ9l�^Dx-�}�2���ڼ6�C��c��j/�!~x�tQW1cHe�� ػ�7���?��ۈ�2�H�A??U����!�Y=�I��E���Ϟ=S�[~�r��ۭ��n�zn;sn=7�^}bO�� ;G�D�p"��iH�H�H�H�H�H�H��/��%���_���5�u\߲W~�
wL�������X�C�l�i�����҃k֬��V��$�v�:j=Ow��#<O���G�X
��
�2���O�a��ZH @��h;_a�<��܏u@����$��Iu#A���p<|�����=��Gڴi�a�8h�pwbm�6e/I���`�{B$@$@$@$@$@$@$��|^6Q"?��M������<�Í�DPJ���遌��˜H���ZqRz���8w��\���9s _�|�T��[e���������( ������|��Q��Ξ���k/���yz
�.Y&��:�G�9�_��Ṉ�\$��|%��:g��H y��<��Q�	�	�	�	�	�	�@�#�$`��dG��p�"?�!,���.E
��N]��@�2�I|F�R�W�:�Z	�"$��_�_e������$��}��9/$���Fa�H��
�IƔ	�	�	�	�	�	�	��3IF6���1��2�SE_��"�^��9�5��"�u^)�-��*��v�H�H�H�H��	P�z��$@$@$@$@$@$@$@� ��`Oa$@$@$@$@$@I��$iV�H�H�H�H�H�H�H��`�	�	�	�	�	�@r @89X�c$      `:	�	�	�	�	�@r @89X�c$      �L     H('3s�$@$@$@$@$@$@$@ޞ\�L�H�H�H�H�H��M�p��       _ ��p�ڵ|#�H$@$@$@$@$��({���=       ����l�H�H�H�H�H��	P�n��w$@$@$@$@$@$@$@"@�C �	�	�	�	�	��W����a�H�H�H�H�H�H�H�<E���H�     o&@؛�þ�	�	�	�	�	�	�	x�����=��}����C���
%]iҦE���B�ԩ�� 9�dK���ː�""<�!���K�AAA�	�	�	$w���p�$@$@$@$@$@$@$�L���u�6�Q��rS�H&��a^�t��U�T�W;<���@XX8��wn�q�[�2gBɒ��"E����  H*('Kr$@$@$@$@$@$@$@N	������hԸ�I�	,^��j�Ҽ?w$o'p�8���q�\�l�X�<u�
�R�ۇ��	�	�@�	P�7B6@$@$@$@$@$@$@$�(����ǸHXX��0�f�G����q�wc�q��c���q����(��c0�4�g��:>���?!|AJ>�y�OwA�ڿx���A��;nms3W�	���s^��mִ�7-�oϫc����wo��\˨��u=��5>�n���{�c��^܈�4Gׅ��E;���m�#���[{mk﫧��~ob������'�=j��L��3�B$@$@$@$@$@$@$�	P~�����=�`0�رc�u����b�[��#K�,(V�t:��������Ua��3O�O�ŊE�v�3Gv�էZ��`i�c�qG��\�vl�
��؟�W��m۶����xwG/�_�
�m��!���vd�/�uŸq�7�h��Z�'�qf�9s��l9�;N��e�fϑ*T�޽�p����!�X�|���w��^�38J2U�TA���=���s�.���ۥ?����|1��,�l߾M���ƴi��3j�/*��: _�<n�Gi���Ø37�_@�4�Q���hݪ%2g̠�>��L�n}��ѱC{�ϛ����lH�~��w��<�:/�2��õ����ӆرe��d=��q�~|��8b�c�gl߶�-���/еkWL;έqZDž������ѼiSʟOs;��P���ѳ'J�����_4i����'w.�����7X�d�:E|狧�$��%�W����!ׯ�ӧc��uظaC��������܃���"W��hִ	*��%���W_�q�	P���	�	�	�	�	�	�	$�,/�~y,��Q��w�~ߵs�}��da��>H{�dP��(T�e�x���4�"� ���6�x�JU%@`�ݻ�իW�ߎ`�	Л�a�6\e�k7��Z�����J��s[�d���!�$�[s���ۗ�cd1?Q�X�*ضͱln;�aC,�n�Ύ�k��%B�����„�!��S�m�K��l)�G���p�W���������	�����v%?x�=��1�� M�Tx��)���C��R+ع?y���I3Η+V��_[�;¨�����ߩ��۶�v[|��Z�����DdD$֭]���>m�f�H|�?�D�A�Э[wTx�-ܹs�/����E��=�
�}�Z�n���Ȉ�[�V	�3�Mu��;�A�������⋖xa��5j�D�V-Q��_�|�1e�lٰ��� 0l�|�2%���\�Im/И�ٿ�|
{fw��cr���h�
6��K���;���#**�]��M�Ī�+1q�8�ϛ��b�\��nZ�e
�yȈ�(\����]�0y�T�m���?�Z��'O�O߾�K��>��|���ػ�E���A��YX8�޻��u�|J�� IDATb�uH������a��-���}�)�.�~N^��Ç1�1�?`�/����!C��o��x������߫�R[�/Hi�����������L/       H|]6��Όe-�[�}�Q��mr�=X��)]�%���s��9��,̈�`��?F�z��~��#ܺyߌ����+�_��A�>m�����w��E۶m0q�$�]����X�
4~z=Z�l�~���HѢ8~���9�f*Q��扱�#�g���!
/^Đ!�p�mt������[�r��m|=z���~�pa4�ҥU��M�{��%:�n�F���0`� ���#G�`��i�r�*��C�vx��R�ѣ'������̞���o�گ��be2�����a��	�2�]{~��9sq��
�̙�;u�k%�;�6m���U�VŌ�3Цulٺ�(#4g�|_�1�rUZ�����G�Pb��P�/W�_yQ0f��z!��'O�"88֯WB�Va�,�X� �~��S���E^yEq4fዛAW�ѿ����ǵ��^��^��^i�~�&j�������'/<�y"�:�^K_T�M���"##\7:t����i@۶m�9s�H7Ѿ][T�d�[���~z����J�j��D`��:̞��-r9Ud�:����`w�Z�K-vs$�t\�q�F}�S�O�`����Wȑ-���Rmڶ�̙ӕtضMT�\�{~�_�Q�Ξe%�:�M�����,\�Ξŀ���2��G�;w�"�^��ޭ�*[ƥ�����5k�8�E�3g��}�"b�1cF�@���]���姍y`���O��;�N�j�с��о�x�
DDD!$$D���2���k�����'[��@�
p��M�aPq_~�&�u#�B�{�Sl�	�����׊[��O��l}G5��rP�Q�Z5@*��X�a#��݋ÇZ]gt�={Z�j�ݻcƌ�*n�����C{׻���!<<R�;|��GX�b96�,\�,Ws���'@��A$@$@$@$@$@$@$�,$U�^��]�q��ueWy��2eJ<tP=H̜)3*�]�����2`�ڵ(P�$�N�:���� �	�"��+W��P���K$�>Ȟ|��|�lN�>��ߌV����r�q�&X�x1�>~�.�:������
�n�:J�Y�~�z�
Da��!1�{��	������U�;'L��N�:�I�ƚO��"W�l��d?��,��x���np�_��.�H��G`��hܸ1/^��O�s��1J6�y��!$�.�/_�Y��?�_�l��K�R�-Y�K�W"��:C>��3���o������la�Z����#F�8�Ӟ�X��{L��8S�VΚ5+^|�E%�/^�o�R’l���4��c�ȑ(Y��߽��!��,�ʘv�DP�1�:s��5JS�nۉk=�E���I���;o�\�2(��xA�Ձ�������#�Ŭ�LØg����ء^ڐs�-]Z�Ke&����{-}1���RW6���7o�C�V�ժU����-��K.PGJ|)T�0ԯ��7�/R��Y�tk��J��.�;��BQ�pa��pG���I�&Ƙ��r�@�-�`�|<z�@�_��%
��P�~},^�]�yo���y�9ڶ뀒���m[�`�<X�KW�6[g"�9
���дY3,^��^��}z���@���y3���!L�6
�-��?�[{��Fdx�Q��PB^�%%��~./ݺs-[�Š�+T#G�t��u�w+"G��?v,�͝�Y'�>����a����ѽ�5h�e˾Øѣ�]�|�J��&�?_��I�/Z�M��(U��mۊ���	�r?V�n�_[���w@*T�����d�:ٳ�]'5.�Ό�5
�\R���bƴo���wޫ�={���0D:u-s<hа!��-2g�h)�~��Mt��K/���{�O��G�*U�x�5k�C�Ŵ��b٢���zg;_�Z.����
Uyi?E�u�r57��}��$@$@$@$@$@$@$@ɂ@r�Š����ڎŊ��c�R%C_/i,�'�g)R�)??KY��2H{�u�Q������G:Da.9*�Ex��t�_ ?
�χ�_�T��>���Q�/fȐw��E��-�'u�1{�dɔ�.]B����" ծS;�q���"�
2�x!e���Y8��������N��O��!��̙�f�J�\sf�BƌU�o�z�Uƨ<�n0�Λ���3���;j��ŋ��伵C�a���Ȝ!n޺�z
ZJ@�d���p|P�:vn5��~OJuK�h�|��U��bCٴg8K;�f���f����e˕W_ٳeS㕞9�l`ɾ5�+��u*�ĉ�	!�0z��Uf䢅�-P��(����U�@~�i�
3d���a+��u�����޽8|��z�g�x�R����_��X��*�Lࠄ���p��
ӹ~��˘�*���{mŽ�\�r%�^�Ret�GP�jU�Y�
�ҦSW�^
;�lV> /̝���Yւ�!krk(}=�+�����Юm[�UY�F
4k��2?��̛����޽��о=)�K�}0B��Q��}�>B��53�> ��D��r�W���y^��&��c)�/6ض}������Ǭ�3�!Cܽ�mZ��K�f%N���dL�����Z��ܺW��عU�֞An-���:�ɳ0|�q-���X��~�z�#ׅ�K#m�T��3�}��/��ԭ��_��M�*��Q�FX�pꇄ`Պ��"�.��/�s?�R <2R%ɋ��U���۶+��~m��fXle��ſ���/�P���"G�l����ަ끟!�e̱ă5�n�H`�N<
�D�Z���u�v�nۡ~�R�}���8/�,U�V1�K�ϗE��/G���W$n	C�p�pe�$@$@$@$@$@$@$@^F��`[�����W�^�j�@��)�,LeլYS5)�}���H�BJ/����@b��5��>}�S�O�%JXִa�J��t��Q�N=@޲q��K2�6n�?�={�5?RB�l�	d�8�ף�k�n7����k�ҹ��xZ6��j���*��m`�^)i���g��z
��$�#���#efS�H�M�6��ͼ�:�����5-������3g�¥�x�,����P��G����nޤ�U�:��j~`y�o��#�ۖ�6[Iڻ|�?,Y���߇�Y��C��x�D	��m`�M�!����?���F�/!`�Q��Q�JU���O7�kc�3�%�9z�K��c��`��k�
��Ǐ��{
���BLL�6������S6�&z=t~�8q�$F��y���JL���M���Q#�+����ڢFQ�(1J�^�y=v�F����MW߻���3��%��X뵪�m/��E��a�t=fz}�[�k.�mΠ���7˕��g�[	��+V���LQ�C��ձq�:""
��fMlٴQ53c��9��Q	wG�1��`��@>����K�.SZ�z5���mڴ	�:�f��:���v>��V�¤�ѱSGԯ��W��1ߘ�I�<��|ع���q�g�T/;=}�LUZ٦*^��5�ۯ��ñ�mT�R*!Hv��"�ڷm���(�ޮ2l-�qc�;��/���,%�/0��e����1f�;�/2�vl���sKP�/'      ��.;Z�^	han��d�J	S�ӣnݺ�O��V�{V�.-l,�	�ݿAAAț;��[2&�7l��sf#ujY�W��a*
H�W�<c���˗Ѵ�1XTІ
8<���=�'o^�?��z(-k�z�-�����RtU�:t�ld̘	�]��O?��"��k����E�TR>ט1'�q
�h�M2�Tv���U)��6Vd��[/$De��-_Q��'Kv�_LX�
b�ȑȗ7���^�u�*+�h~��_�5m��_g�������圹�X�t��MkX2���Ϗ����2)$��s�s�N���V���+WT	٩S�U�mR�[���,���X����B缴��q�&K�|D��r���oP�>y�
,��Ŋ��޻�F�k^c�(�K�˗
44�C���&8~�ZO6��?����L�׭U;:�^�xce;�la{�%���)��-[\��:v�C��ߨ1�/X�t�dr�|}�~�`c��yo]"^�o�vmQ��;JخQ����1㱕��Ⱄ�1m��@p��}���upt�f�
����gLǃ�ѽ{qa_�G*̙3W]$��XD[&��%���E�L���'LPk��;7>o�T���'Oz`�K@���O�֫�������R#�V��O���=���fTR�E����-�T�eK�ܴ!���j���a�P�x	��c�`��������V�~�������po-(k��}H�H�H�H�H�H�H�|�@r�ׯ_�5>�[��ϻ6^���Y�J��q�ơ}�vj�Q�ƌ��Y��u8w�܅۷c�hY���+���G�T�׮�`4ǎk�8�dݲm;F����?����WJ|X	Q��J�ύī@�+���W���O>���˖�5z͙£ǍG�,YѰ~=�ڹ�wlW�UZ'AɃ�^}��X�WQ듏�l�2,Z�Դf�Aeb�j��s����n�:L�2�r�B�:u1k�ldɜ��~�s�4�,F�Q��v�:t��U��y��Y�?M�4���mz���FX�k���Fl�N�T��
o����Na��aj\�J�Z�/~��s�T�8W���Q�@~�>u����7��^�:m*R�zAe��EK����.�ʕ�����E�e��vm� ��J�;wƛ�K#$$�7���_�5Ue�e�g!!��N�Y�f�ƍ�9r��%dޞ;w;�N;������cl��G�:u�R��ܵ+^}�U����1k��<�f�p�߻����(�<2��5s�ߍ��q��G����Lj/�
��*W�m[q�L�8	�:}��P����	��h=%KX��>}�:����A�o�6�պ�27lX�)�& z^:��9E�W�#bO�O��Y��p�B<�w=�w�5��㖑wp�ژ=k&�fάI��-I.��y�V�����={vծ���4��,��7f4懆j��fB2����Ѷm[|T��Ϙ����\�7-p�.]�5_,%�5�I��=кMd̊��Va����4y����ڑ���;Y[��;�5x�Wx��>�!C��j�
Qq��̙4q��N�F��}�?��jq���_6b$F}=
/ȯ�)�Μ=K����8�/��Yk|��7
�Ϗ=�L$@$@$@$@$@$@$����,e�%�HJ;���/H�*�Z�ҥ��p�*�[Qѧ��N�@��'���ƛo�<�/�~Q�~m��fdMMs�YN�:��w��]e+ʺ��Ǎ���l�/��Ν�Zqc)��Nc��x��Z�n�I��`ㆍ�T��;wb��(��Z~�9F���y���<h�͝�4�S��'�n|�/��c
���Kg�|$�ퟳ�`���s��v�Q#F`��5����0f�X���|];wF������cw��Um��n�Z������iҠk�.���Q�X�B	�;v�ĉ�v�j��mX��*������_1s�,\����]Hp]U:�,�:��=T�P�Uʟi��E����Ø2u*�^�O�ܶuk�/WVS	��O�O��&�"�
Ʈ]�<*��f�Q�L���E�ڴi��Ïb���z����4֬Y�拖��Үd֎?A�E�}���Dz�n޼�q&�������V�;v@�̙5�=�z=�M�f/\D�4�P��7�X�!}:e��n�~X��SǎȪ�%��^kF�9�Kë��7z�w��R�>u�z�@���'NĦ
�X8���O� 8��_��S���C�y��|3z���ٲeC�/;��bE����p�����wЭ{7�>\�{??���̙3jmi��ݺvű��aٲ�s^:q��q�N���aÕ�W�H�3�3fT��znj[��ݻ1v�8�Y�ZS&�Y��p���"��uq�X�XJ�Y$��^��K=�wG�2e��]@e�~R�.&M���E��رc��Z���Íx��y��O���gѣGO�I�Z�Xs��q|�l���_������K�*�0i����eˎ��C��mמ=�E-�hZ�z�i�zQ�ʕ������˗����;v�x��SG�.V����ˋ:w�3
�qF�I�H�H�H�H�H�H�|�@r�/]��ÿ��ڵk�u�rHe��C�R�J!�Y��(����=X2٤䮔nu��!��/_�	s�`)�+[��c��(�`j�C�e*�)���w�̕K�G�53w�ܩJu�KJ�8��KIИ%i�������s���&�Я�8����T]��g��K��ȄV<ͼ��b#��XJ�X"�؏��*�j<��O����2�:�1�l�1�خg�|���,Y)RXvÑ#GP�LY%��!����k|P#�	N�<�¯����L����ܹb"k��#"")f5�|d=g����5Y�狔h�����HM��y�:=��"�z��&o���7D�|�5�E�O����ڊ�7��(��@��C��\��}���`��&�m����q~Y�[Z��?�;OdΔk׮Ŏ�;1a�xM���v,���G�q�x��D�+����� ��K|c�N	�aa�4	�N6�mmc�z��g���/c��N��_@@,�u�E2N�)-�LU���Tk�C|�r�p��sD��1���2�����a�G\狃yn�O��%��K�����aN�ڑ�;�;�{��n4G���b�+W\�����⧶���?��x��X�;z�i������L�       H|YN� �L��,��O�RY���z�M2R3fʈ�/F�,R���f��=���cdZ�U	"S�Oǖm����3�ϛݺvA���-B��V��{��������s���Z*��F��Go�it�ќ���~1{gff�v�D��7�б7{}���c_ںu[���q��>n�*���9��ǖ�}��ZV��
��]Lϱ��3$n��f���#Ύ盽��U�ț�%��<��~Zf��3ݜk�ј��(8�Y�b����m:�[��Y�9���i���֙�j\��Nt�rG��}G~�U��5��\�nZ�{�s����pt�����{����l	P�O�	�	�	�	�	�	�	$������ �	�aa�x��!"$���C�t�"�d�%��*�����{~lɡE��s�N���)s&�-[6F;q���6�`t*3Y��c�ʔ�dp'؉�0	�	x=
�^o"v�H�H�H�H�H�H�H�({�"��F�`�ꧫC��-{�|	\�|�3ޝ(^�8���b�C8�X���/4
�D$�({��       ��'@8��χ���χ���l/�WhP�]�`�I�H��#@�=^ܛH�H�H�H�H�H�H�G	���}�v�,YA�cf��(vv;�	\�t��5�Z�	|Z6O	J@�x9�k�JA��[�d�.m���g�$@$@$o�㍐
�	�	�	�	�	�	�	�_�?z������[���+�ҥC�r�:MjW��{�9RZ~<x���p���@�tiU�g۲�>7hv�H�H�<@�� �	       �'�+���dI�H�H�H�H���`o��F$@$@$@$@$@$@$�1�=��
�	�	�	�	�	x1
�^lv�H�H�H�H�H�H�H�s({�%["    �^���6��/� IDAT	�	�	�	�	�	�	��	P� L6E$@$@$@$@$�({�i�1       O�v�L�2�.�"    H�('S�s�$@$@$@$@$@$@$��x����ce�V�Z&7����K��;��9q��q�9�"}��`}q�?0>26ļ]�0�9s���p���O$@$@$@$@$@$@ɇ`߰5��6h󁶽h�����`�R_��}Ť���a/I�H�H�H�H�H�H�<D���:��
��l�7��g�%��\�8\���x��sa��(q�OHp��>��U�:���+_󇸎3��@�%����h�w���[<� �8����	�����	�+?�:�<t���8���	'��;q2�~�8I8�y8	�	�	�	�	�	�	��o��^: ��Y��s9yv%?��Ԅ�����CL��;��rv�ebrH����f=V����~b������`꼭��<^Dϣ||��9b$��w/<��"����^��u�8#<�'��V"���[�!A�V�
���z�p�!Y]'l����}R�`�?*{K$@$@$@$@$@$@$O��4�&Ϳ��S��:�!�uУ{W\���3gΠP�B:xr��f��\9�E?�kFa"f����UL�1[�l��?��_rc����"#$�h�\��+�aڌؼeث��f�?�	�:�/�E��] ��_8�|a��A��<H|�Z�c�m�r0�i�%X�z
�_����Ѯ];T~��[�M�*�_1Y�ä)S���-�w�r�̉�mۢb�
n�x�G�8����s�$�8���~���:d؛��	o�+�Ϛ�pI4x��K�M=p]�넘��Cpp0zt�2Y]'dJ<z�ߌ��~��hެ)��
��O#'      �-���ԩ�9��Ȝ!�%�W�u���@Ӧ�1�|\�x#GG��}P�@���1<V���3���g����!p��z|��;vBHp~1	���o\9Xg���H
�T�@OŠ#�C�a�����kש����Ș!M�J�={�B�Фi̟���Ca��oF�QӜ9e�ϝ��-^�2e�"o�|��Ͽлwo��i��q�a��>�m}��u���[�=ʔ-��� �r�W0�7o���������C���1wn�NH�z���Gb˖��e�O*&&�u›���_b�7x�uB2�ky����	g��}�p�4y*R�I�
�{�q�:�/�U�
�}��-	�	�	�	�	�	�	�@<	Pv,�_�^ʓ��=��y��>(T�*W�K�[���3����Qc���FT���[���?n���Q@�*UQ�~=lڴ	]�v�o���ukעC��]�#,_��&O���ƨC]���� �l�
���u�!*x_4h���6�[׮;�G�Z��0i�d�S�-�1�H/`Q3�C�,p�*5�'�K8{�,��Ƀ����P���Z��-]�̙3�死�6��>��5¶7X��l�6�p����v�T̞5]�x�*��&���"�ؿ��N����j���n�Mq�U\�)�+�і�\��R��N�a�(�Fi�j��"{�:��`���ۓ�
^{�4-�Q)��Ťp�?����t�������{oV�B`` �C�bE�꾁p<����I�H�H�H�H�H�H�|�`��s��C���/_^�\�Je;͛7e˿��?�A����}{��A9;��ۻ�"��r��Ƹ1��#gN4k��
����мy3�ٵ�k���Y��;(�����s��O[�t����O?i��˽�1��!g�hѢ9F�\�r�i��ؽ{���f��KA9,�Ӊ*v�Q>`��;�˕C�|��b�ؼu+��F��oc�O���GX��T|���yŊqp��^�j�}bѢ��?`�jo����gˊ���"�B�L�0f�h�Z��[qPK\�h�!4t>ʕ+�<�:�֝{���T�����VPKH���u«��	O�7x�u�t�07��E��N8�C�$�����v�Ѧu+ԭ[�~܂+V`��y^u�@ط���ޒ	�	�	�	�	�	�	ē`���D�����3ԨQ;wnC��b��|K��7n�QӦشi��ϥl�9X��-W����(]���~:�������7b�yhܸ�k}�s�˔��_���R�&�,��f�����Ͳ�w����r&~&����u�ļ�P4i�)���Xr�9d�Y�H?�ڸ������z��{�VT����̙3���;hܤ�*l�y�&M�u��Wr0
4�,^�/.�%^C
y�@5��M�R�8$�z1D2t兀I'�eKP�zM,�`\�h�a��%�H��N耱�'!�^=�ʕ]]��:����O�7x�u�z���^��u��5j`��m��A�k�>¬Y3�+?
G�`��I����FN$@$@$@$@$@$@$�[(;���~%�,S�r���U��{�NL�6��D�ܹѬYS̝;w��Q�{��ܹ_��},Y�ꁶ)cJ�*���Ƀ�C�߯߾���I &�l��+�,S�ڿG�͝�j� �em]��d����7o�CHp�޹��/�`SiK��X�ؿG=�]�|ʔ.���ra媕صk�O��>}�#襗дi3��
��;wп_�X�߻s���%{��N����r��̂���&e���W�t�$�k�m���@�l�8x�F�
֢O߁���o���8|�|J�.�l�e�zQTT0���g��N$'p�a����+�����e�I�:!�
�8,�'_�o�?p
z!!��a�FlڴsfM�|���@ط���ޒ	�	�	�	�	�	�	ē`��3��-�{�.^y�0���<yr�k71h�`?y�+�!�!k��v?1Kf�xf,��ثN*�D��~/W�-<�����{�g��f����n��o!J�$W�F�y͚54h���j�`;n[��];�矡y�&�.K�D�0茲�phڬ)6o�l�>}� o� \�v��'�j�b&_�d��,�b�����Wp0	�e�W�AҀ�r�֭]�!J�x�fI�֪Җ��l�SlH��͘�ص{�z�%{���eg��VY�⠖��������f�G�ؐԯb's�k�ro���T�t纘��O��W^/M��N��8���	��8L�_�o7n�Ɛ!�p��?պ��C��ܺOJh��4�p       �"@؉��i�vv�.�g�����Z׍Uʢ�s[�n���������6,
ێۖ�=,��l���x��J�T3W�z'>o6�������(rh��\8��:��	�#�ѝ+�[||�:�ָ܉�>��8�;6��`����ĸ^��V��G�@|t+4�I"4�7��(�s�$@$@$@$@$@$@$@>O��o�������M�^��,9����?pN������@_�y�9�9a����͒	�	�	�	�	�	�	x'
��i�^�!&E>��}{ъ������������)S���簗$@$@$@$@$@$@$@	@�p@M�&��"E�<�)�8���:A���	^'x�p%���Aa�$@$@$@$@$@$@$@�K����ƺg|�O���`��)Sv}���K^/y��)(���܃H�H�H�H�H�H�H 	����m>��m>ЦL���k6���^�z��%`ױ�{�	�	�	�	�	�	�	$q�}�|���|����)Sv}���K^/y���:Vr       �$N���F�%qh^���� �N�Id/>�7��zJ�8'(vQ첽�3.$�넇��1g�.g�\�;i��!���e�5ƖH�H�H�H�H�H�H�H��].P�ʖ+끑�^Q��Sz���!##����OV"0`&�������O
���	c_���`}�g�i��qND_/oܸ
��c3$@$@$@$@$@$@$@�M���
�L�2�
1z'�����Эk}\�v
ٳg���m�|Tn�H����������xg��W�`DM�`�t���u�?0>�Rl����㖡K����,�]<x��9#�^�B8��Xy"       ��J���#�q�W�R%5���C�>uZ�rᗑ6mZ��zrGy )�z��a�����E��
���?O�֫��L�<ybOQ��]�$v%�E�s���իWq��U����{�S�N���G��O�F�Y�.]>T�t؃�{��=2��	�	�	�	�	�	�	��o�v8�˅�z�7Ԕ�8�����ѽ����s砌��R����p��-`R�L�^al`l`l�93|}N$?x3�t�f#{�~��!��1��M�C$@$@$@$@$@$@$��]�Q���?�1@jӺ�^6����lF��y(�P��������	��`
��m�t8`M��	�	�	�	�	�	�	�@R!��p�|���1dʔ	���Fz
��N*�/���C��B��<q��n���@�b`��\�v�/|<�H�H�H�H�H�H�H��P�N�18�](nPܠ��ya/b360606���w_�('�'D�H��N<�<	�	�	�	�	�	�	��s&������A��&��L��*�:��L��Qh�ډ�ȁ������
���]w|!6PN�;
��G�g"      ��.�}�0^/���������X���G�a��?q{���hY�4(Q�P���kG|�An\���q�@��b�._�܉uqݗ1 ߹NP��Lw�8��v��       �a�.,Teʔ�>u��sP�aC Uj ��mG�~T��	�Z�h��m-���>���ه���xB�,�U"a@G���FBnr��H��O|*���/PNH���6��c�3�	�	�	�	�	�	�	x_�!K�%�
��ᬔ���h��-���i���ƒ��B�(v�~��={�Ę~^}����z�"t<F$"��g�U�����E��Z�ħ��'8$䈥m
�	M8�}
��ǚg"      �IE����5������}8z�_�p����;��#`��Û�ډ��(vyR�J�M�spNpNxrN��8}�"��0�
7�$ ��,Ѕ���!c�=����B�/�	
�	)'a��H�H�H�H�H�H�H��P�*sX:C8�]|�Anbx9P�3��g��&��M�s�(ǜe�0'('td��x�y&       �"@ث�����i���/<�N��{R�H�~&�9��9'|O���	m%c�Z��<E$�৊q��ih)��넑5K@'�O�,$@$@$@$@$@$@$@^B���¦Z3����,���Y�;
�^�An�\��J��P��@_0�W�H��A'�D��pD!J�m$�&w/��$n��)?�x��|A��(@�]�~ǴU��9�a����BȨ��/pHHϲ�
W�\�.g�\��ץ����ܛH�H�H�H�H�H�H�����5���x4yl|�i�39�����?pNX����NDGH_�������ǚg"      ����v�@86_x���D�)ǜi���������
�,�;,
��g�H�H�H�H�H�H�H�|�`�4`
��<�h'Ƭ"�~f?�/�(SN�0�Q�12:F�tbܡ�$@$@$@$@$@$@$@^A��W�!V'(S��|n�6E?
��|U�K�;�G߉�Z3�)��08��	�	�	�	�	�	�	����ƢL�0`-щB�|�N!�6V0.P��	�C�?0X˝�!      H({�)S�LXKt�}
��)S�-}!>2X˕�3�0�3�
	�	�	�	�	�	�	����읆�L�0`-��-��>d`�G�`�G���
���K�=^ܛH�H�H�H��TT�ƿ�.jlQ���K���b�����{��n �욨ػQ[�5j�+J���e��ewy�<��9ewʝ����{�	�	�	���	PN�H�0`
�Jv'
=>)���	�	5�	
�J~��M
�q��	�	�	�	�	�	�	���9Q�)S��dw��E�KMb���m�	�	5�	
��]���SVΊ%I�H�H�H�H�H�H�
�	s)S�LX��D��b���.%>�2\\jZ�c��ק��K�	�	�	�	�	�	�	$��$R�L���݉b�.5�]J|:�e�&�&Դ&(�v�+�OX9+�$      H('�I�L�0`%��.�]j���tl�pMpM�iMP��W^��rV,I$@$@$@$@$@$@$�PN��H�0`
�Jv'�]��$v)��ؖ��PӚ����>`�X�H�H�H�H�H�H�H ��0'�0`
����N�(v�I�R�ӱ-�5�5��5A8�+^y}
��Y�$	�	�	�	�	�	�	�@" @8aN"`
��)+ٝ(vQ�R�إħc[�k�kBMk�plW�����bI       �D@�pœD
��)SV�;Q�إ&�K�OǶ�ׄ���خx�)+gŒ$@$@$@$@$@$@$@���9��)S��dw��E�KMb���m�	�	5�	
��]���SVΊ%I�H�H�H�H�H�H�
�	s)S�LX��D��b���.%>�2\\jZ�c��ק��K�	�	�	�	�	�	�	$��$R�L���݉b�.5�]J|:�e�&�&Դ&(�v�+�OX9+�$      H('�I�L�0`%��.�]j���tl�pMpM�iMP��W^��rV,I$@$@$@$@$@$@$�PN��H�0`
�Jv'�]��$v)��ؖ��PӚ����>`嬒T��p��}h4�*/�'On4������`�ʝ+Iq�`I�H�H�H�H�H��O�pœC
��)SV�;Q�إ&�K�OǶ�ׄ���خx�)+g�$J>�ӦMŶ����{9���ӡy��<x2eʈI'a�U�Z�ja���H��.I�� I�H�H�H�H�H��O�pœC
��)SV�;Q�إ&�K�OǶ�ׄ���خx�)+g��S��{�n��Ǐ��dʜ	ٳ;���	��Q�L�X��U��۰a����)�-�Ι����F�ϟ?-[��_c̝;/^<�[�jUT�^ݢG��޽{�ߧ�O���F�߱}N�9m�
;�dH��3f�`Q�d)�ϐ>���I�H�H�H�H�H�bG�p�}������C}-r ��A��}�{}���A
k�𧺓6���Chr����>x�W\7� ����1n�8?q"Z{ʖ-�iS��H�"і���M�6[4c��(R�(�v�jTP�O� IDATf�С8h`��/���
2آKܗ`����f͂K�.�1b$֯_�h,)S�D�:u0v���VD��H�H�H�H�H�H a��0��

���98dO��V��v|� -er �z�/pM����aMP��;�Ƚ��
�w�؉A���#+��<y2�(٦M�*)�Y��ƷE��Ç��Ez�m��왳ظi#>�>�R����_m�m�ɱ+p�+�vnX7`{�����ŏ?�/��C      �	P��Y|Ԡ���Ƈo�C�\�@�Sx�ׄ��K���|�p|�9E���޿?:w�0�1���<Q�f���U�]����jut��Ed�2��L����ƍ�X�l���Ѯ];8:9~z��P`a��&>q�$ҦM�YX�S      �(+g�%)G������#䠥L�[o�����K����p|�9E���{�.j֨�����N�>Z�n�J+!{��x��%�\�?\�vM_����ƍ�&Mj��o�ƣ�!,,_f��
F�dvV����F�ۧK'넆����+��gR�,V��նΜ9�ƍ]�ڲ���R��}�	n޺���0*Xٲg�E߾}�7�_뫥J�
�Ƞ`6�E�Cg��-t������ŋ�p�<=����S#['L���ݻ)��I�H�H�H�H�H�>
���{t�R�J���LȁW��kB���
��{5�	
������(+�ٳg/�ܹӨ���#V,_���5�2,,�V���)S�����n�̙��$���+�c��<~���2�Ag�r:G�Q�
�7o޼F��ۻgϝ�����<l�0�m�6J;%K��Ѽ�^E���P�̙�e��;c��RX6�g��Ţ�{��eL�<%�Y�U�T��iS���7�E�z"崧������X���G�j����K���+W����b�Y�H�H�H�H�H�H����y�G�+਄�� 7�y����AK��A����ý����QM{ุ3R�`���eʖ5*)"Cw��m�߭[��T��ȟ?���^��N�;��V�Q����Q��Q9sb�,E����w��3f���y��EhX�U�4q��ŋ�6�aĈ�		5ۮ���4��ۧ�^M�0z�A2�[w�Ν�N�T�Q,B$@$@$@$@$@$�9	P���-�M8*>��2!r0\��	�?��7���԰&(��}8`�׬Y�ѣ�E�
|Q�bE���s�DT�a��ƒ'OoooT�PA_̜�� ?�
F�ĵ|��At���泒�&�7�z���W�]U2,C$@$@$@$@$@$�	P���tM8*5<ȍo"�<�~F�L�O}�ߧ�]�}A=�'(���>`���
~~���2f��_���FAm3Ez���ҥ�F_6m��k�F��)p4�(֯�Ƈ�eD��Ǐ���^~fIm:9r��#6|^�~�o�F��X�f������/�c�NF�\4�$N�:5�gHm��(W�=�ۨ��͛�f�H�,9:(S^�F�M�ԩ�Qs�\9q���k�	�	�	�	�	�	�
��ڦ�(G���Z&�@�����5��������`�n�cU��|�۵�C��%-���)Yd���Q�ֹs���ը�cǎ�ukW�4ʣG�B��}d9sp�2��u�V�@�^�`!�̝�o��>-nܸa�י3gи���g�eHѝ�y�f��?���H_������w�W��F��I���}T�\�H�/_��7�+u�#     �L(&��tK8* 5<ȍo"-er �z�/��^��G5�
����)r�|��!49s�
��n�	�q�G|�תU+=��J��[�Ƹkӈbk��رc�����P|6'ƚ[͉�7o�4:�8��`Ӧ�z{+W�o���6m��'#��M�p��1{�l��o߼ŵk���遇�k�1�ջW���I�H�H�H�H�H����lk/���C����mu�DW��@�95}��`���(�io��'�V��O�>ض}��dlS�֯_/^ҷ7a�t��ͬ%G���kk�wiӤ��[7��������Q[w��E��g�/�\��L�2��ŕ���ӧ��۵&�Ι3����*�/_w����0�?�nqF���0{���9r8��ٳF�G�����+�
�"�3g��c�e�l^$@$@$@$@$@$@	��9?����k��9��ׄ�����jX���>���s��Â�J��u���k���X�"����ŋ�I�&fۺz�*jծm�ݽ{w�<y�h���U��_(��h�Ƨ��Ԯ�_�\�5y�$t�����-Z�Y�"�km���3>G�M�֘=;�=�NM����0*X����F�ҥc��D$@$@$@$@$@$�(�/o��Q�JJ
r��olʑ��9��n���{*������
���#��.`�Ξ=�F��ti��Kܣ�}��-(X����s\�pA�ٸqcѳgO�m:�3ڵk���������U�O�4]�8�XD�����鋭۶鿲U�ܹ��ݫ���7��ȑ��v�ڸr����jU�b�uF�m�ӤN�z��a�ȑș3g���$@$@$@$@$@$@	��1�VP�:/|��eB�`�:�\:�/po�/�;�aMP���p
�
X����z�j�qS�zYwYnE���[���ҥƌ��'�{{��.��ض=R5�cذa����dx�pB��N��e˖����/��E �t�*U��{}Y[�+WaҤIFs��剚5kF�ՠ� �l���s!�����3S8{�lpi�"���%�H��)s&.T%K�2:GY�+�	�	�	�	�	�	�@ @8L�(G������M䠥L�[o�����K����p|�9E>�&g�\�q���u����}{��S��Q�wv������X�b��.^��5k�q�F�g�s�ez���l��q�ѣ�Q����G�N�&VD�ex^pB�ϟ;�
�����m�~����K�.�_���}��Q9[�=@����o'C�X�b9*U����ԩS�֭�=�W���F�ÇGI�m*�������	�	�	�	�	�	�=
�q�4.Z��"�k��9��ׄ�����jX���YY�V�I�2=Cְj��� ���y���`���޽%J��߉3O�:mT�r�ʨU�&R$O��ǏcǎF�oΜ9t4�R����,��ԩ3����A�,���h$#s���h�R�f!:�ɓ����mQ�Y��pss�b`��	�	�	�	�	��J	PN�G8꼨�An|x9h)�9��}��`����?�io�wN�{$#������ݲe���b���0o�<4o�\_�ѣG�[��>}���T�Ra�ƍ�(ZQ)�
�/^��8#ٜ�j8X�����+�y�V~�ݻ���_�\Q�Q*T� `oo�`�Y�H�H�H�H�H�TK�pœ:
�Q��#`:8dO���V��:w�/���`5�
���Ɓ�1`�z�j̙;�_���v�0k�,�-[6Jٻw�S�N�
�Y�f��իQ�ti�6�,�|��5F��͛��e��舅�jժ�s�����=Z���{����F[�B��X�b2e�h�,�h�	�	�	�	�	�	���9�����S���uan�����{����PϚ����c���X������F��Eį��\�4AӦM�"E
��|������������Q����K��������,����8�7�cr�́*U�H1����2
Zw����Ǐ�����N�8��Ec"z�l�2h׮�4���c��H$@$@$@$@$@�!@8aN`
]�<����`?>v��u~F_��@_0�uհ&(��o�Ƚ�)�c�[�!���S�x��3eBv��H�<�ͭ
Q�ɓ�
	ŗ_~�/�}is	�³g���_X�.�_~�Eo��e�Рa�X��Ǐx�	^�|)�eΖ-R�J�v�	�	�	�	�	�	�@� @8a�#`
����M5<؏�݅(S�S������_B?2��^
��38�X'���u�;w�`РA�Y����۵�0u�4#���>-.\�`�\�$��%     ��(r�1� R����x��1�C̐Pyy���+�*
�<Y��Wc%>�V���/����'�Os{
�����A+`� gyK��el��=���ߗ���;�$���+WQ�vm��ӤN�|���T̏>��'O��=j��퓄(q�$@$@$@$@$@$@����E�z��`X8�`��n)����5���H���K��V�&?C��?��$�|�-1J�\\\��B
kB��͛�A�Z�Nc ��8��I8>H'�>�w��]�G\�n],_�ɒ%���)�Â$@$@$@$@$@$@qN ��E���1���p�@XxZi���-4�(��<<�BB促�'G����0���H�H�H�L	�~/�}B�3G������I���z��'bϞ=�sX�R�L�~}�b���U0�4�H�H�H�H�H���.�i�&����q�/���]�lI=��{��C=�EKI�H�H�&�߳	������b9���c��:}
�o��˗/�&MZ�ϟ�ʕ�k+W|��K�� 	�	�	�	�	�	�	�
�qA�m�@�����#	�	�	���	PV���z       �(+�b$��ĵ|��6�Oc�����4�VI�H�H�<
�	~�h 	�	�	�	�	�	�	�@\��	�?�O!'vqT�܉}����H�H��C��z抖�	�	�	�	�	�	�	Ă�X�cU��(�����X�H�H�
��i69       �(�9H@�(�>o�mg�$@$@$��PNL�ɱ�	�	�	�	�	�	�	P��@"#@�	�l;3�   ��D�pb�M��H�H�H�H�H�H�H q��a�G���\�3��
��O2`ۙ�	�	�	$&��lr,$@$@$@$@$@$@$@��5@����1k�T�\	:ݷ�cy�<yvb����I�@|	��K�ƙ3g�P��yl��6
�&�i�V_4U�T��oйs'�ȑ#6C���{{�����6b8&Q']:{,XڷǗپT�L�(g��pPb^b:?1��(�r$@$�B�U8i4�H�H�H�H�H�H�H�v�9X��X��9�Ŵ)S�*Er9�Ҏp�d��M��������-R��l�C�F��&߸q�
4���g�,��II�	��?`���8u�4&O�os����o޼�޽{q���?>��SM{mU3U4�H���8G���޽�?���m��e˪�x��޹s��~,K;:9*��p������Φ��'��2     �Gj��:U��eKq��yt��Q��	�Kܗa��]x��?d˖
={�@�5P�N]�l�
��2x.^���۷aĈ�U�:�z�7&N���7o��1~�X|��+��L8��]�B����W�d�4m�5k֔M�߿�7oA�>}��w��v�ٳg�0~.]��bŊc��9H�.��GDϛ7��߇�C>L��M<�5j�>}�qc�a谡�hcKm����V��hִ�}������]>�ʓ'F����C�qFl�+D�z���'�>{���k`������/�|�2\�q�|�5���`<+�/G�T)�nݺc�����}suC>~��#��%Kf�f̘��6m*���'m�۷/�-[��M�	��޽���q�˜-iӦ�ߝ>}~����grO�ܹ3���[iK׮]ѫWO�Z�
�ӧ��Ν'�����,Y�?������w��Ȓ%��'�n۶
��}�v�ڡ|�rV���N�@"
��L�(�աCG�_�^�(�

	�?�(6ֳ6���~�y����˗r��X�z��k^$@$@�G�p��N�=]�p;v�@ڴ�:tH��1�F��0�?�7o�`�ԩ�m��߼y3N�:�3f���;'    P#5
��Oa��i�ٳ�eˊ2�p�d�>�74����4p�����U0a�$�͓}���ȑ#�'On����E��C�Ҹ1*T��Ǐ���˖�3��:	�lI���#|||q��	)�K��NNNh��)R�0K)6𨑣�#gt��
?��޾y�#G�~Z�h�~��I�w��=R�ھc��n�С(T�0ڶm�u����t馭�Y��#:u�N;!U�T�Q��-B�o�Ł���p�n��(�T*�B4?�<Ǝ+�i߮=6l�F�I��-—_~�&.M�u�6��;vĸq�мys�(Q�/_�ƍ1e��Ö�Μ1����H���@4h����ꕫعs'F����M�ηo�aǎ�{玾K��Nz���Æ�|�p��)�
�?Gm7n��
`Ϟ=�u�&�
&m[�t2eΌF�!0 �?F��}�w:t@�ڵ�����z���pss��Y�Ϛ���D�&�"�ڶC���и���Q�e�J�Ѥi�(6�emls�Γbxݺ�������rby H�([��kW�a�ڵ���M�4�u��_���oO}N�՜
+W��˗/�7.q��"W����[dʘ�{tG��i0�<�z��ӧCӦM���p���L��@��y�Ĝ��囙B7�˖-�튛�dvvx���}��4���N��p�F�n݆K/b��	2
8!�ԧ'�$     �OA@m��c�>��=�j�3
e�*�� ���+/Z�����H���P���SE9rB�*�XAG#E�d��B8�T��,/�}5G�ԩp���?�ñ�8#`-��,:�N�e�	���։�B�ݴi32f�BF�3fEp��%"b�-��6n܄L�2⟧��n��F�YjS�����*��+U���͚��!�E��	����\�ЭkWd˞M~,�>�,O�Q\B��E:���Ǝ+�L�����hۮ-|||�&MZ��46�-����g͜%�!���>|8����?_~T�RY��{k�� �Wy�7o^��rE�/2X��R���C͚5�u���6|8�/_&��ۧ/�O�.�߉(o�%�z�+V,��"ڶc�z��Z��)�aP0:X|ohc���r�
���G�ٰ-�z�c�Ϟ5K2�C����c �%
�V>z��'O�oٖ,Y2���M7��b�n0
���S����ׯc�B78�����6cǎ�odV�XQ?�9s��
,���b(�gϞ�oi�?N
��_�Ƽ���)���?H)ά����O��h�	�	�	�	�	�	|Zj�Ϝ�P��\��eˢG�^R�W� �?-27W�V
�N���Ge'�
�����\�V}l߾�i�g
����L��П��z�	X�E��v�Ž;e�
6@�z����`'G'��Hw�H��O�?��M�����?�H���E��c�dF7Sq�Z��\��g�Ϫ>|>|D6:��}��F'��6�,����}�hϐq2��J�"�i��S�?�={6D�H#��Wy�`KuE��Q#e��~��c���:d��I�Pd�ӥgV�8��Hi-�d����d�(���S�7�;�3g�Bu�0E��֭��B��ܹ֬Y#�mzzz��ım"Z[����j�����٩��a%��/X��T�TOD�{zy�}]����o����I��� IDAT�H���l���,n�8�����[4��S��&o߼Ř�c�<yryS�w�^yV����|eʔ�i{����
b֬Y��>
dԻ�9	ܵ7o��dtl�:uP�j�f������+U�$~��wܻwW�
'n�tg(��-6oڄ7o��(^�8Z�j)m�d��_�x.�Ј�=|�~�A�����M����+_���z��6m�ȳ0r8ȷ�/q$nHE=�+.!�6%K�@Ϟ=�g�~!�Κ5[�8Y�������خ�@�9{V����֥��t��/_��E�-[�`��0��L3c�]KD}Ks�w�.h�����ě�o��t:��Ӛ�ʶ�"     ��I@����;n<N�>�#��w���\�rɴ���l��`7n$�`q������F�v�o�^�ۻK�SN�.�hFeM֝�+�mťK�;����"E���5'N֩]D�����ʕ+��Q�"ݱN�֦�Ϝ�:�p`��]X�t���k�{�������guiҤ�ҏxeРA��_]zcC��Z]�*XD���=�r��㫼y�sM[3(�
�b�"U���]�l�
�����_���h{�ҥ�(_��~��a���H�!��=f4/^��gM\�����N���s�=z��"~�	
LX�|�	�	�%
�Vh�
�BT�1c:�eˎ�ݻ�_л���I�-\�����4��o�:�3?�������*R|���H*���?<��[��7�)�G��w��(Z�(nߺ����EF(�C�l٧K��ݺ�իW�2u
�+��[�A�u��myP�<��M���'ƍ��9s�z�N�b���_Q>GΜ�?�O�<�Fc'�1��p�?y���0q��X�BTo�1
[�gϜE��]$_k�iv,��f�Z)V<Dސ��(���o��;�	�k׮ùsg1a�x{���%�s�8����Ϫ_2�VV���~��%K�X�OK6
��E$@$@$@$@$@I����0���q��19e"8wϾ�?~"N�<��~�)�NJ�&5F�+W��������dD԰�A�2��q��1<x�X�+�z�*r88`Ĉa��TI�ŒN��#A�ݒ,�p[�x�>���L����g���"�@ht��Q>�u�E������e6�bӦMX��r���J�B˖��v���N'�Zk�T�ԩ3ڴi��U����+9r���6��R^�j52e΄�
��."�nj-����}��Y��?����8~BF3w��	�˗��'%�϶8�9�S<�g.�L�R6e͖�&�@�,-��.^��H�m֬�ԩ#��`��+V s&��[�n�A6�@kѴ��f�-LD��!��+�5k�3�E�
#�m�9�' ���l����"�Iƌ��0�cǎKR��^��)��խ�
�c�Gy��`SSD��x�N��x玝���1�|m�p�O�>hҴ	�W��[7oa��2x�>}�H}|��a���:�Y�Ԯ/^J��G��(�})�+�2y2�~�Uv-�n�]����=*o�G��|��i��(��h|��iӦ"s��i�ORT¶xS�P��ذ�����+����<y�	'ʳK~����Ц�7eʚZ�jA�ui�ݻ�,so�Z�{]�kK~aH)������h,	���U��@$@$@$@$@$@�%�X ��Z'ʚ��n&Lu[��
��1�wfiyb'`I��~��ԨQ)��ę�D�*U�F��2��E@¤I�dA�=z�|~&.���w����W�-��ŋ�x�$�s��m�>�cƌ��Dga�MSXT̞=<���F�
��@\
�"�u�ʕ�v��f͂.]���#_�|Y>7�K�(!�0���ųM�E�d��O!ܻ���瘶\��;w�H�Q�7�q�4��b�,YѮ];����E�իW#}���`��b��3�?����
�L��gS�?n���f�-L��`��5��ZYk��ŋ��w�eh���a��,O$@$K���Uo�	Q��sȑ�u�օ�I�]J`q�p��Aܸ~o߽�?�<Øѣedn��Q�֭��u�Ȉ�M�6C'��~��)���0g��go޼�С��y��� +Ƥ�h����T�V
�j�ҋ���8�j��%"X�&SR�/_A
��Ə�ȑ#��T..�1i�$:D�(+�N�5�[�=�v�:ɫ��$����ɒ#}���mQ�.H�c��������)/ke����1����	�	�	�	�	���	�JV5iOqK �3�m�͚8jk[	�|Rc|�7'.�W�j��k��!GdȐA>�>~�>#��C�I�H@�([����"�U�{��ƃ���3o��E�oETlk��x��fΜ�,ҏԫW�̓-[�E��R]:g[�N�:��9_�
2E��
6Cl�DXKX.X(�Y���#G�ȳ�u��鋕+V`�������['z�kI�	��k7:����w��[���hmT�NE�I�H�H�H�H�H P��l�>
��C�l;3K5(��r���2Mxpp0���#�4�ɛǶFX�H�H �([A���CL�2�z�ԧ0�?o>�ڧ՟�`�Z���)Z�<_Oy��bwwy�ot�.zS��޽?m���
�.]*��՝q�m�v�
g��92:7&��ױp�[�Y�&�l�ETo`@ jԬ!�K��_��U�ЪeK�F[������[�PY�ly�Tؗ._�r�-�5��^Ks���+�~a��Z;‡�����X�l�H�H�H�H�H�TL���'��'i�m�~
��3c
  HL([�����3лwo|�]qY���G�w1i�d����_��+��{��<=e�aqN��={e��i�d]///ܻ{O��

�g|^��l����w�7nT,ڜ8q�;��3�9ӧO�i�Ź��l��Z,ڝ:e
R�L��39���1R�L!��E���?2�sΜ90d�P�V�`2�r�kkW�9€d�x�-�}��+���aa�X�H��2u�Tٶ�`[`kD�nKs/����>]YS�ԧD[��*1m^	�	�	�	�	�	�J����X�
���`ۙ�	�	�	$&���浫�d�����gϰr�J<�\
�%K���m[Q�t�wv��M���_Ac�A�4iТEK|�U^ً�h]��Y2gA��YѥK#X��ׯǕ+�"{v8:��s�P�FMxxz�훷�����]:���'O�D���ЦM�,YO?��_<y�)S���o�Z�乶�l(U�$|||�HZ�J4i�s����۷�)cFt��]�]����[��/2�!{v�4q����e����O�\�Pa�j����(�aÆ�ˉ��=��Y����/��G�����{��d)x�*/r���aÆȖ-;֮]#�1N��^�"g)�.k�Z�`g���܋��������l�m۷K��������ԋ��Ε�y�	�	�	�	�	�@R&@8)�>Ǯf�m�=
��3c
  HL([��]�vaϞ=�3{����E$@$@$@$@$@$@$�^��;w�<i�l��S��k�	�	�@b"@��l�Hϙ3g���Z�k%�9�XH�H�H�H�H�H�H I��$���N(�>��mg�$@$@$��P�0�˗/����e�&���XH�H�H�H�H�H�H ���d��W9
��O `ۙ�	�	�	$&��lr,$@$@$@$@$@$@$@	$dx��ڴm��#0C�{�ڶ�����Ѥ0F.   �(�;H�H�H�H�H�H�H���+k���}Q�Xq�A�?�H�
�p����0��	�	�	�	($@X!(#      P7��*���5��G�;u���$��!v�D�6���z�ޟq�+�"   u����$@$@$@$@$@$@$@
	$d���5�:#L�B���H�������]�оMK"!   PH��BP,F$@$@$@$@$@$@$�n	[ވu T����v3Z���Vth�"�[fs$@$@$@$�x	PN�sˑ�	�	�	�	�	�	�	P��	�#��+���G�UX�4
�	zzh	�	�	�@%@8�N�"      �[j�O�8;�:\+[�R�N�w�QƱ����[#��D��g�nI�H�H�TM�����Ɠ	�	�	�	�	�	�	(%�FX�pl��>][!Y4
�t�4j��&p�z����x�ej��9��r��#��cZO�-�s\�W�(�(�)��/`���x�#��O'''�4i�d��9ܝ;w��<<~�˒	�	�	�(�	H�H�H�H�H�H�H���
��v�@�6�ag=a�}�/5m�0Md��ԯ����A�$���6���>7�*��Y���o��p_���AE�7�a���� ͋>�Y�0����K�F��l��m���N<5�WO]]Q:")xD�H��]b��<3���$Vܵ�)�w[ʧ��^��y���wߡ{�ظq#>��u�y��q7�X�D8�X�H�H��8
�I�8|      H*�(�!�7��o7W�y箜�|����]�
����Y�7���c�O�h�d�2d̔����!���?dΒ��w@�*U�w�����ŋppȁ��z��w%�D�>y����7�;wn����
2j7K�,hߡ=N�8��AGe���x��?�͟��w� �Wy1`�@��nܸ�����s4n����q�Vܿ�-��;ૼ_a�ș3ڵk��5k   ��ӷ<<��2EJ�~F�N����#p�c֌i8v,HFD��_�|�hm�h;o޼&ЫW/���7X�`nD0�ۯ
*OO�"پD�,�Ѿ�`pǎ���������su���P�<:�o�N�:��s
���1f�X/^7�_Ǽy��h׮V�X����HX��ӧK{�%���o4��*W�j��6h4�hX�ܾ���O%/���^��ѣF�@�x��fϞ�~�-[��Ǐ�(|���L��r}����G��Ȑ!�5k
�J�
�;uF��Eի^���W�X���~_�q�����@�h۶-��%('��N'	�	�	�=
�qϔ-�	�	�	�	�	�	�	$@���ñ}�V�M��۶m���
p���p��1|�0}2f!<ݺu�'LĆ
ТEs̞5��䖂��-[��m��U]��J�0n,J�,����8w��S��A.d�p)h�v'L��
��pv�!Pj0v�8ԫ]eʔ��sg�c�NL�1C�C��N�S���6`��-��K��?��=�����]�8w��M���
�]�hذR�L��Ӧ�j��(_�N�:�C�a�1���.�*���[�iܸ12�t��8{e�F��7c�"7YW+�j0n�x�*QB��`�A0X$�}����֭����
�_�9�_m�ndD��.Cn��E�
���

6µk�a�ڵX�x��Ê+�F��سg~�i��Kۺ�`�fC��WXeh���w���[�#p���f̘�Y`!�^�v���S�hQ����軡C�������4iRG�����{�n	
����|�խ��]� y�dRtO�.=-^�\�rbʔ)PR�ť	jԨ�)R`����?0f��{�s��E�B�0b�
�	�M"  �������$@$@$@$@$@$@$@�"�vX��`	l-X�޲e3R�J��p�A��؉˗.����z��
�Ba`�.���K��R��%J�N��"�T5y�p�M�n�:�Nko$d�z��<=��)���;��G!u6qq���s*�(�l��&M���iҤ�K�ڶ-v�Y���Z��i����W�ҹ����_��6nD�����ӧOa��};f�Ξ�jժ����3����@���4����e�T���+0ЄCIɡA��2��h�i�fX�n=R�I+��%^�|�"����!�=B�B%[a�NxB�����:�(獛6#U�4	
�KÆ���͚a�Z-��oߠe���s!2K8����vr΍��ιK�fF�E��]1���O?�̙3%g�+�]2�9ٲg3�\�?�`ժUf�<h0^�|�eKE�p�W��z�W�+��)S�[�nR^�r%��[��
��G�>BBBн{}[��Ֆ��$@$@$��	PN����	�	�	�	�	�	�@�!�v8��B`�F��Ά��Y���ڵE�ΝQ�LY)]�h�B/l>{�/.]���>����k�.QNnѼ�<=�6]#�C��R�5m��NE��-[������©��H����S���^�����[�l��Hgo��B��~~"�����I���!�ֵ3�ϟ�1�G���vv�"Zicc�H ��-�I[��![wN�֢�=��A'���͛7���}:g��^���	�eK�v[����FGZ�o��7a�.�s�5k�뼽�*uZ�~��-u�e��֝
�ɨ�(v�I�fX��ԩSK���a�r��t�F���ǖ��q���U�re4i�$JW�`www�M�Fm+
zx���ݻ#$�XL/),[�4Jd��P���O?���v�|7�����F�	(+��!  0G�0��H�H�H�H�H�H�H IP��3��	��F�Bǎ���[�n��Al֬�hԨ1���p���0j�h�&X\�)�'M/�Պ��Ο�φ
2��Q#ѩc�(�
q���_ďI�&��7_�(��G���#�6}:�� �1W�Z�6����O
�"��ߗB�z��s'.]��)S&G���^?�?���Ѷ]�	S��`�K��Җ�3b�曯ѬY3i�/��`���:d07jd�M7���b'ND�…d�s�����K�ȳe;u�9�u�V�
���b���3f��s�f�u��Ŭ<x�`����8S6 @���)���]7�Q�3f�sŮ��2uv�:u
�����V�M̡�U[Z�w��m�gk�-�۷�0u��y�F6i��^���x�;.\��#��p���kC�u��Qx��	V�\��ɓU7fcZO4:l�0��-ƍ+�����p����A�	�	��'#@���e�$@$@$@$@$@$@$@	����G
��I�P�
+.�H}��M�7)S�B�>�q��߱m�6�3+W��ߏ#K�,hӶ-�V�%��Ǐ�pn޸�l�ӯ�|�-nݼ��Q�݊nݺ�'O����Gc��nݸ!���ŋ�K/�6�߿C�F����m;��X�`>��w����J�L�k�3@�*.!6޿w�{�Ɗի�#gN �8U�g�zxx�����~$m<�e�aKq\8�V�0�P{��ҏ��ߏ��b�ٳ;�o�~��H��q� �F�����[��~���(<oݼ.��G�2
�t��\�7�Ex��ڴi��k�b��̀F�¥�"����y��n���p��H�>�ضS�m�6Zn�}M8����9����}�X�s��QlڴI6)}qF�����[����}�^�z��+W�t�R9_"�w��mعs��4Ϛ5,X��E����V#�m�'��~��'M�6l߾]�F/R���y�	�	�	��-(�B�eI�H�H�H�H�H�H�TK@����b"��t��	�%V2�����+]ۖ�]�|�r�@�/2��R�t_�,B�4׮�@�;wlǍ�70j�8�Sy��Ӵ]K��~���i�Jy�3�c����ue-��˗/Y�n��%nJ|JY[రp̚9S6>b�H��Yf}���ر!�� IDATC�_gN+V
6��Cvy�M�q��i��D�����"�m�'l

�ƍ��u�JZؔ6MZ�,.
��|��H�H�H�"	P�7�	�	�	�	�	�	�	$	j�c��	քc�ʕ���Cx��=��Ƀ��z�p�b�� "{����t�"�u�,_*���Œ���g�,l���oҤ"E�|J��6	�	�	�	$X����0       ��$�v�0X�+��]a�}�/5m�0��Ӹ����2UlK_����2޸*[�qeGd;1���
�H$@$@$@�"@X]�EkI�H�H�H�H�H�H�bH@�0±m��vs�ᩮ��X�h�N2�%:�ݔr@$@$@$@�@�p<@f$@$@$@$@$@$@$@���`��xO�ti�v� �t�/'����/� a��0�V�	�	�	��`u��%      �!�
�[7o��W��ϓ�bv�ɒ%C����9�7m�p�?����ZB#@8���!  P
�j�%�H$@$@$@$@$@$@$kj�ŠE����ڥ+ɳoc�,l ���`����	�	�	��`MM%      �9��,��G������6�s��&	��@2����hߦ��L��:�wR�{�%�3}�F��-_K�>������O�qb��%���p��{#      �L�,�5�[�6m]%���-|&�`�	��x6��m۴N��<�4�{�|ή�
N��Յ��~�Ս#��1����s0�RU�ol���2j������F 	�%`�9%�%      ��+�^�6m��h\�D����X-��0š�>-
*�N�;�!�j�����_o��gэ�\}���8��ɓǴ�
�	��"�>udVt�F�[ֱ|Ĺ��8em���8�=%�v���+��G�r8u�~%cו1��i��n��隰T�P}7c��%����-��a�,�3c��G��8}�:��s�3[�1�����n7�ۋ���J~?YZ�����qąpL�	�	�	�	�	�	�	���PVݔ�`�>�,��p��ɓ�?>
.��S�&��Y�b8C�W�T�4θ�KG�ɄAf�.�qD��'�4��+��m�~Z��(LY��땫X�hV�\���2�p�d̎ÒG�"0(�O���84n�ٳg��B�h�_S�Om��Jx�ʘ��_���u�p���Og��?�F�~}���,��1s�-�����5kb萁H�""_(N�2~1B��֮[�۷o#8��dm*��se��u���&<gN͍X_�r}�����P̝?@Xx8jժ��C� Er
���9s���+W`��U�TF��}�*Er���!�<�8�׭-�e?�>�\>��Jj���և���~���\(+u�#      P5�$-G��}B9�s�]D��]�EY��T��>��]���G�i�)R����z|�oo�8q�߽����u��ɓ���1c:=|��
b���6���U˖�N�5X��y��m�[�w��AxX8
*�Ν:#W�\z�W7��}uߛ���1�5X�8.�p*"��-��Np��b���e�*�̉ 󂣩�Y��4�h��Q�:jV�l$��~G���k�z�*z�K[���w�~��/�HNk+)V\ҝ�>�	`�"��-W	'��2��#O-͗��o�����5"�p�A�e���>��U+W�*UJ
����8t�?���u�8y�&L�(G=i�T��6�[�u�Nq����
4���c��96|8J�.��R��X:��V��l_a�TgN���t)̣��0Z<����Ә0a�,9q�$T(_mZ�@����舖-[J�{��5Ҋ��{im3vJةN�ֳ����������b�n�ta�Gص�4�zW6Z\&��=Fl�	K{Pl���,����RD��Y�ePO���S�<a�Ş����G�E�3����G8:G�$@$@$@$@$@$@$@���Zࠠ E�S�N���ߡB�
��-�qf��g�΀��!�"�m(�숎�9qł�d�8��ـ:�M��'�`�+V&N���'v�ڍ~��!4$K�.�k��pqi,#G���G����(R!�����?[k�o��x�䉌X}��5&M��"E��رceۖ�X�"���3.��N1x�P�^��R�����P�Rm$�F�p)��.<LF:�K|'"�L�A��õ�cu°ct��~~~(X� &O���9�E�|��z:b�>x�7�����~H!�(6=z�~��a���iM�j�YX	:�e�W��?��Ç`)؉~͍O�A�<��%f̘�s���!{v�=ŋ�c
:�e�W��?�ć���5.��7o�}�29rO�>�����_�0q�dܸy�
��	�;WN9<G�
2tV�\��)Sa��a�Z���ED��Y�'k�����	'��͛R(\�F� .']*��G�	�ܱ�w�?�
��ɓ&"W�L7'
�m0ܗ,���<��=x�����o�P���8~<���![�/Q��}�+���R�J`Ԉaz!S�1�/&B�o�Q�~}��ڶm��cƠh�’��k��\�_�o�Hx��ЩKw4o�uj�4~�� �F��6B�N����#|ެ�ei=hզƌ�bE
INW�]��3�~�'�V��ݻ�&u*���7�СcGl���s�udg�{��"�l��D�r���P�@<%J7��~�jm=�"�M��ͺ}��ʅ��l�
k����̭�<�r�`ҵ{w�[���Ϗ5���/Т��|�(m��8{��ݗ`�������k+��@�Ͽ�1cƬ���cF�B���'�����'ַ�7Y��rn��%�Y�Ϣ�/��D6�/��g��R�-�f�:�1��<�Q���2x0J�(&[2�Z�ė�tL��7
���,�3	�	�	�	�	�	�	�@�$�V���������lY��}�!�a��xh�H{0��-��'��4x���V#U,����R$���5��;�0m�tܺy�s����Q�;��6yE�]���5�����|�*)��}<��_�7��~�~[ӦNE�,��=��9Ǝ�/3}�Td1,�h��^��)�.Z�(�L�2�{��x�֬]+�th�y����Эk7�|��^��h�бCY&:�Z���j׮�2e�J�WD��
��Ʃ$�ךG�`!w����Z���cX�l6m��W+�T	�N�^�%,�iY�J8�.�0T~^=�w�"������U̟3S�,��n�����ZD��x�?��]
�mZ57jϒ\��3fΞ��E�d�=�PS6�.
Z�m�؉�X��V����c�"7�xk��V�z�5k�WL�ІmZ�"�5u�@���#��4�K�@�V-���߮]�ys�pO�V�8v��/[���|�-�Rk�$�F�6�6�[K1w��U8y�l�ɱ�^�)�K!�i#+�[�hղ����ի�7g��3�E�`�Yx�!��׏]�K��"��__�v�*������'t���W���q`�.��i�_t�7s�/��7o0n�(T�^�v"m�T<t&O�
�
q��^}�F�@p�T�::w�?�F��ð�C�'B�|,��!Gs��-�����\�a�&���S��A�r"�B�rR�

���/֭�F�џ��fdg�t�֜�	��BÀ˗��vl�")�6���ͥ�H�km=X�O�i˺��X�C��@�…Ѻu[l��H�-�s�o��9��h��m���ر=���c��!r�bU�\
��b��q2ոK㆑���Ȩ���p0v<*V���U���p_��E7��LԳ����0���WeTy����(��ὣ���4��g��@�b�e6_�^�S�H|��iJx�2�n|'�C��-r��탦����gq�('�d��H�H�H�H�H�H�H@K@���;аQCE�hI֝qf�M�W��t��ّ���A��Yi:cZ����^F�E5�X��Z�U0��5�W��P��}�kSW�c�2ҪAg<xk׮���(�2u�uݛ�c��^73nQ�߀A�ջ:t��E��*e*���K
!?b�x�k 6O�6�R�2=��C0r�P�m�f>q���mEZ�]���J`�P�C�֭��96�R�N�����6DT�&��4Fѹ�"���y��yxxx�(`q٧K�.]:�#��ဈz�h4��3���8�B)���3ҥI!ŝ�+�1m*aqٔZ����u�~��O�Wo������2޷�v1؃�{���]�������P,�Wo�µu��� �}Ep�~�����(]�4�-��+ M��vͥ��x����Wr�����p��Y�O�����X�xP�RE�M��ͦ"��R���w�d�B�5��Z�6�m߁t�����;4rq��}{d9'�
���A)X
�B��8u�>�Y+�ZN�%�TT�Y[�mCz�T2B�Z����ϊ,���z;]�4��������j�u���/�fJo��U�Fm�ؾ
��i�M0\7ơ���,�;z<��WıcGQ��Ajff��`_�i�g�޽�pwwG�tiP�@�}�=�Kx�U�B��h׮
Z��J�߈'NbŊ�rL���gL`K�Pcx���4�/���=w�<X�{͛������r����Hm���9�g/b���޽���m�{���5]+�>�v=�"""0#]Ļ�am=X���XZ�b?W��u�}�V��$R�ˈl��߁}{�?���CH�6�~om<���>�3g6Z6o�۶�>mj���F2k׺��<�h%�~�>Q�v=�'���N�Sc��~&:����-g�^���?�}���0nq?3د͍O|mn��?�̓�$�L�n+O��X��s�`l�~mq�(�}��    ���w�QU�_�F �
(��^��^����^ҕ�@(	5tH���P�X@�"�A��:���Lf&�$뼟�d�>{���9�f��}$@$@$@$��WXuŗ��X�������[����|g���������ґ�p�b��+a�����3��ګ���	�Y��������hҴ	b��/��­[71u����R��1u�d�Q����r��?1}��qjԨ�����/��]��
��a��1x睷�k�^�3���%o���jՂ�{��C�i�;v섿�?�~�Ύdff�m������iQE�\�H�8u�$��l�Z���}�V|�'�k�\��bS�tT	��?Ċ����+e��>�wl5j׮�G2Up�WJ˔�Ç`�m֝m��}jn��-��V,_��G�"8$eʔF@@�^�*�;;?�D�~}����f��8,�Gii�F�`k}*\�^���'��ŋc����%�v��q�֮]�b/�����%Kb��eٮ3��?���N֧����‡Q�`��!-u�P���"���b*�_@	��"���#�e���?��>1��4Db��f�ZXM�N}�
Μ9��N�DFZ:֬^apg������n�;w��U'=�34ddj������3gq��)d��aݪ��5.����ѡc'9��-���\6��Z�9�����ı/����t4m�D�YA/�
Xg��P���j�ֶ�����ߏ��5�be�p�)B���"���K�c�gQ�zu�3��N2,U
h����H�N��E��G]�!l�F�v�,�ɿ��!!>F�en�P3Ԛ�oi~J
�ZJ
�?c��و� cQ\����`ۖ�X�n��8�}kE�o��#��d<==�K7M�6��!�L+���Ŭ	�B�57���T��c�\י�o��-��}m�\T�w�Ҧ];xyz�A�����=���x��s�e�vعs��E�X@��<�I�@����hִ��m�y��;�M�'~��_ĥ�^0�r��}m�"�������$�v<���Q濘I�H�H�H�H�H�H��W�.۲n9	�ES�&��A{)��,Y*Y#G��{ヒn]>Brr2֭[����gˤ��TQ�|A0b:v�//!�$�R~.~T�P9�^�q�4o)뤾^�"��b�
֣i�Xi�
�%
��1,?�;�Y3�c���ܹ3�ו1l߱AA��;~��^�HLLĖ�QX�l	<<I7�_׮pqqԻ��F�5J�RS�ӫ�%�����@�ƍ�x����^��eB���Yx�qS;vԺ�͖����̏g�V�Z�O�>��ތ۷c�С(U�fΚ%ӵ��0AAp2%C�AFfV��D�&��(����7~�|ib��u�I,�Y�s��sq�.�0e_)���`ٷ�w����J�,a�۶nÖ-[��G�C�������{��֭[e�M�Ok�"7i��V�������r�/������B�x�U� ���4p�t3�����X4�r
h=��,-�t��/[ڨ}z�pGw��%!('�)��:u���3�V��Fb���4K|w��͡{
�����פ)�Q��� _����آ��>��+C��%���G�A�ޒ�O�>����X�h�|�YLT/���,V��ҁi&U�H}�f�*���]����P��׹s7�-��WCDEG#t�J�#P��8h�t;�T�bm�3���EO���(Â��BX�S�m]
��h���wX�8H��$gZ�/B�{ +BWaĈ��n����Ma8u�kL�2U�(^��j�?CȦ)�E�%K����+|}����(矜��U�ˑ��u1ٟ��-���ކt�V��"qꫯ0e�d�I�s�l���n��w��ϛ+_��n�X:ȳ�G6�B��3w.�T�����!<<ܰ_���2��;P����A417�Z��}�/R@W�\ݻ��[���x�����-|�	��K��6���y,X��[�buh(��e�B���枟���S�B�䋀ʳG���<�ZK-��?�+��ߗ�aFp�8s��N�7�_D,�����l���\�z����K'֞���g�9h-�-�Y\?
����9=       ��]6u��:�mq7i�����t�6i�L
���4���e�Vq(_�S���V�%X\ӨqSY{R�E�n���2���ܰI3)>���m�)�y6�@�z��޻��Flݹ;��0��A�H ڲ}:���Qĭ0��#))	S&�3f���͚y�a�f26
��cYh��2�l|\�vѹ�L2_+u���%g����s|jX|);x�ܽs+CW���E��n��H�H]�TI��9���V����!D�ӧOcŊ�HKK�u���!��tљ��<��y�(�p�L
[�R%���Kf�`�o�~�.�5k���
�m�&��•\�ĿЪUk�n�J�H�^�y������gl����r�����ׇI��5�0U�Ck�oDxxܻg��U��߯����7���i���J��#�q��?*_1Ju��E||<�̜f6��C1�$���jUĩK����^}�U2^��A���߼����r�o�2<gE�B���w������C�����l��h/�,]�		_����;%%���i3f�?���T~S
{ʗ��zAU��7'�����=�%R1�\�Ke����?�Ĕ�ir<�����q�58z��͟/��z���7�ܷ_D����0mZ ʿR�Ӓ|�~*�.[�����x����R�Y *W�,3T�V�������N�����X�/Jmk1c1g1wݡE|\���1�B���Ѽ�7ƍg�G/i�_r�F�6K��HMKGH�R�M���Q�Nm�,._�DB� IDAT�,��&�h|��Ի����?��+K���eb~������͛7�����4��Y���|}��ͽ�vf�#��Ӱ�L��}�� 88D�Y.\(�CP�x?��t�Qw[�̍'�]yN�徽��L
�.�����7mD�~ϛ��^-_ΰ���/Ջ
b�KL¢E��}�f�^���q��,�?{nݷy}�Y��<"�gddd�o��X�`����_�8-�����~M<�D���~��)Sq����ѣ�|A˰�V���8��fxK��4�M����Q6��~H$@$@$@$@$@$@$��wؖ%��,�ރP���ܽ�f�[J��wK�ݳ/ѥ�_t�C5��(R��:��X�[���ݻQD���P�W�E��)�Ş=F�(���v_����x��*�5�<`�P��-Z�ź��n����ܥ+��"e
�m�7�P!gY�M�V��ŀQ�+m�[q
'��%�R�3%鄑�Вܱ�G
]�ҥJ��o�1��Qص}�� %��W�Կd-�OF�Ǝm[m�Bז
���q���i�g0�ї�T�2�{���g�էj�-e�2'�/������oF��ڵj�R=���(�թU=��<�Tך�jm~��im�q��_Nq��3W;YݿI��z*��Q8W�K��5��i}6��i��Rf�6��8Z�Ou�2�~V��5���-�6j�t��y�{_K�S߱�u��57�������x��yhDB[��l��V\*�����IX�f"Ğ�t�<���I���e`j` �T����{�V2�\-�����W�5�9]g澲Tj�t�oe�=o�?Ӹr���~����!�*M��F/ �N���.��敲�r�Ul}d�]��{���$@$@$@$@$@$@$@$�$	ػ��j�N}�@�v�ЦM+lݺU:ń<f���[�>ݐ���5k�"2"�Q�K�7�u������a�&سg^~�F��jժ��?Ƒ�Gp��!�Xby�P�ƌG�5�Ɖ�C�����ƍ���2u��C����G0J*BS;�����ͭ�ݽ���>�[�1�Q�j5��GơC�t�R��+%�������V��5�I�׏Ĺy��|�rh�A,[�Ύ�;z����_�r����˖-���ƌ�Ķ/t���Q���\��i�g�$��7ۖ�M��n��}n�}�󷗱T�T88��k�a�g��N�������1���`m�<�u��T�^2J��X���D�y�_~\�߿���gx�v
�/�����ቷ�y��C�"n��[�d��G ���!���]�	�	�	�	�	�	�	\�.�B֒XIq��~�Y3g�ƍ�0`��X!SJ^��fΘ�ϜE�r����!gb2����Dr�	�޳W�Ҍ�9�˗�`�9���3([�&���SG�]߽��q��_�a2N�Z5�|�+�
��?��T�<pZ�ln��V-�P�so���D�,N|��1t�p/F��ޑm���U̚-b�Q�鸱x睷���a��"0�Rl��`��Z�L���)ɉ�~�&N���gB�Z�0s�t�X���oܸ�I�&��Oge�ӧ����t��O�Ö͕�m(�#��8���<�T���ӈɒ�/�g����{��I���>��n-k��'?�}��|LQP~L �
	�	�	�	�	�	�	�@�&`��i
`A[]�Z
`�� ͥ�4��N�d0�GqȊx��>���%���*��YǞ�I��5׿A��H�z���3[�l��V��/��-�آ�w���`G$@$@$@$`#
�6�b3       �&`��-��:�
�-=��آ���T[���ʵ��Μ�,���sK�[�JV��5`1qO��O�צMI�&LlD$@$@$@��H�H�H�H�H�H�H���.����W��>,
���
s��*�+[z��֔�����.,�E$@$@$��P~bh�1	�	�	�	�	�	�	�@A"`��-,)�B�m�@��5�^CZ��G�%bSX�tE�A��b���(S�_�����"8$kW�d
h{۔��H�H�
8
�|�	�	�	�	�	�	�	���!`��Ν�ЩSG� P�	��|����ٻ�zx!%�8D�j�T_�yh�'�����o��,�[�l��cǰq�*C�t��)h���MQ��=�pI�H�H���\�W��	�	�	�	�	�	�	<�*Q������?���n����^|�E�*U
�����;!��B _`
���d�X��~����T)�&'�@}wOh5h��6'�O��
;!�޾���m��xB��X|v��U��[6�Yt�z�e�1  x&P~&���       ȉ��
�9͋�I�Y'�_p����y�]�u._�V[��}�$})?3r+���ACp��]N�L���(8eJ���OWy-�g}s~$@$@$�t	P~��9	�	�	�	�	�	�	�@>��O�9,	�C�%�	�߸��u�f�h���]�
�1�Z9��f`��9�t�"�-Y���ɳ��=���/�##P���3
��p��r   #��!H�H�H�H�H�H�H��]�����:p�$�[;w�w��^���k��L�����̙3���Id��c��p=w/$'g�,\�/��	�MD���1n�vu2\���F�F���&  �@�0�	�	�	�	�	�	�	��sA��s�̜�3H ��L�17K|w�|��:�� �6i��V����7�����1X�
#F�w�����4љYZt��%!!(_�4�gp�rJ$@$@$PP.��H�H�H�H�H�H�H��8
�O1 �'B ��z��Bgg'���:d�<�
���aǃ{w��|� �h(�ӈ��
IXZ���"))q�G1k�t�}"����	�	�	��H�H�H�H�H�H�H�����e�$�A�"�oN-������G��Wcl�U�Pd�~�`�ȑ�]���s��3�n�	�	�	�@����92	�	�	�	�	�	�	��S$`��p�r*T�������7��^����m�����'�zL��4w���Q�G�Z�	ug,��t)��h�&?nd�j����	�	�	���	�R��c�����	�H�H�H�H�H�H�H�
{��n݊�={��r��
�ҥ�^L}$K6�F\\�*�M�=�F��_L�z��,į~�+e�b�'#Q�f�'�V��X�a#O$�hlL6�V�˯�n��&..V���_�`�"\�peʖ���CQ���d3����ܹs����>=3�s�V�"	�	�	�@� @p�XFA$@$@$@$@$@$@$�	؟�{g�޽�ҵ�Mt�	���FV#��p�Z��������м���S���44t(Z�l�V�Z#�ˣ���֮��H5�K��\�}&��ơo�A4hb���nj�~b�A���	�}��F�n>hԸ	�S��*4���ٮ��������d����$
��$@$@$@$�;�sNj�I�H�H�H�H�H�H�씀}
�Z���p��EI�bŊ���K!>�$7�n�ظx�;��̙�ׯ�W��X�j5��ۋ�͚#^8\�Y��&���/_��ys���k�a���(_�<>���[�ƞ];�~��#*2��������ݺa�ڵx����?e����!<<7��@�r�`D@�z�~��{ԨYpp���ѹsDDD�o�~غy3�d�]||�z�Zܿws�ͳׁ���N-��b�h�Rς��6���U�k�#.6�Bzj*�]\��n�D�~��k�6#X���7�Vç�#A8���=	��މ��p��
   ����{�9{      xnػl�B��5:6>hԨڵm�ݻwceh�L
ݴiS����A/��1��7v,ڷo/�
�LIƎ�۰`�B4k�R��u�L���͛�}/O��ŇA�ԩz�S?�?�����W_×		غ%�+W�A�ҩDDEIaw��l�Dt���뾇�))ع{7f͙��c���H=m*��)�� K� �n.��[�<'�G�Ȋ0<�����чF���na�`N��Md�bLy#@8oܞ٫w�pޚ��V��H�H�y&@�y^}ΝH�H�H�H�H�H��#�.+`e�L������m�b��m(���M������(�n����2��>��}��CX��.R��>�'����6-sf�B�f�P�n]yNPc��g�n�ٳ���w��{�~[���g�޹����bޜ9(����H9yƏ����~�zhҤ)Z�i��Դ�_�ƕ�V7��?�ŌR��1o�|�U�>h�NƯb�EK��U�vx��7	�r�T������k��nE�P�JU���eʔ��4��e/��"V�Ze�aР��~�}��-��M�3�שIOO������������{��d�73C�Z��୙�=��$@$@��F��H�H�H�H�H�H�H�1�w�99�۴i#멺r��;wоc'�G�<D�v��:"**
nn��x��P��x�Y:����j��c,[�cF�†5k�^�۸�p �ɶ׮]�7�bc��R��0x�@�ܩs,_�eK���}����z�t�}��Ʀ
�Q��+�w��Q�9�%�jua!���T׏R@7��;����\�8}�X���"5�!&N��f͛�e���3#X�A��-���(JBp���wᅢEmYF�1!���9�@rr2.\�*U�`�̙n�BCC�M�Uً-B���p��>�0[�\u��&��߸��߰.\��/����{��Q��K���9e*��kuw����O)�=̀H�H��
����&      ��.��#��Ѻu+�l�;w��k��ٱS'L�8ujג5�7mڄCG�`�ĉ��������� h~�t�`��yE�*\��e����߫�.U������E
�aÆ�Ν�Ы!~��F�	v�کJ�h�b��w^���ý�w1a�h���I��ƛ��ƥ�jV��V����Q
h!f���hHI-����u)��J$D�*U��m�6z��N�ngٯnD�?4Pf����"�`�cU���GZj""#���$_�i��'''ܸqs��ƕ?��>��ݻ�����͛�ӭ����j1�Z��9���0\�x�,-*W��>��HA�ԭ�t�9'gg��8�[7y�����Z�ii��HO��X۴���
���6���C�A�ڵ���!�LHH@Vf�6D�޽���k׮a���믿СCl٢s��s���﩯������IQ�Z5\��o�[���L�pr�q8���y�uw/�L:nH�.�S����+I�H�
,
�vi	�	�	�	�	�	�	���$`��-,�:��W�����}��������ճ��X!���D,[�>���W��r��|�te˔�ȑ�S�6�4m���8h�5��4��K��w���G�2e�8����q���S��t�R\�r%J�@�^�Тy3CjdE(VR%����a�X��s����R���Ꟙ��j\�ʄ
��ISoYX�񴈏������Dq�H��B�U��zW��(�*Y�0O�����,fy%P��$)�׬YS�b���8���GfF��gċ�:uDHH�;����)����:�§�>�
&���`ܹsӦMC���0i�$ٷ%U|.���o8:9a̘���ݿ:��!.kc��/�p�����/�gʫ����� �1`玝r����{���c���Y3t�P�g�cU�.%���p
�^�z½�.ż�e��<��bNֿ��)`w/�J>N�7�7#�# ���f�(	�	�	�	�	�	�	��?!`��i
`�B]�\
`!\^�q]������F銅�*�X}j���f��)���tl۾?�;��Ӥ�W��ҏ/����+
LN¨nTU�V�aO��|\9�u����|b��GI�M�*��4ǜb}����f_�F
�9/��"��7nJ�8z��
*`���߯?nݺ���C�q@��=e��`k}*�Z�l�z��K�W���Ú,����[�n���
��uƚ5kqY����a�F�,�����Z�]�{�ƿJ����ѯo?ܾ}[rQ�)\r��@�-Z����Q�Ha#�Nn(��{���ċ('�O��)�H�
H�H��!�����TH�H�H�H�H�H�H�,�wؖ�5u�e�V�ۯ�t��Iq�����ɛW�R�Ӣu�Y�2�NE��_6�/�Ʒe>lC�@~
�B����ڵ�H�8���e�d�!R!o
�___�
)�4f�Ss)��������T��,�"E��o�>����$�,Y"�5J�2���W"kc��o:��w�1w���)�###��(��s��`wwO�,KN>�z�#9�K�Z9�sM��p��ـH�H�"@�ZLN�H�H�H�H�H�H�H�2{��`�+�TfS@��!�ˡ���
���q���-�[1�X�G�EpHʔ)���\�rU��mՇ��j�V��ȨHY�W��֧�ի"1����Q�xq�^�Z��I"�#Pĭ>|���]������Dl�X��۷/J�)�%K���9���������5�-����o��d��zu�5��R��I�����)IDz�f
h[n3�! x�P~���!      0O��`[�՜l�ulC�@A��x���hժ������ر}�tі*U
3g͒���O���8���!C� #3è��OF��Ǹ��q��M�]�N:��j�Ϲ��ř����xD��}����+��HOK�5wK�,aXN�p�q�&�ۻ�ڷG�	���6�_�K�`��ܻt�.]��f��:�%�0�.k��/��9N�8ժV���ѡc'$%�@}�`O�)��g�/ȷc#  �\��kd��H�H�H�H�H�H�H�	ا�ٳ>>>6!�l&6�3A���!Cp���]	DFFI7�P�zu�&�d��.�9sf����ᇈ��4��O�Ɗ+�V�
���E�����}��弬�{��E8:8�R�J���� "<���[��X�VW�Wja�������1u�TԬU��Hsmi>�u����8�	�ظa#�qРq���ѣ'$�ٳg��ɝ;w�s�wTt�L����Ջ��v����._�<�|��C�����Q�[�U^u
`� )�eM`
�v�`�$@$@�%@8��؞H�H�H�H�H�H�H�.	؟�üu�V����������e:�R�JB�� ��浪�]./�~�	��8q��n}��=�}�E`���3;j�
��T�U�6JyO�Y�)�	�	<�(?�[�H�H�H�H�H�H�H� `���cN���j�$��J�pA]�|��R�qK8;���O�aI�H��&
�O�6�"      �7Ͼ�oh90	<Q��(^vN$@$@$���.*�D$@$@$@$@$@$@$��@A����s�H���gypk�	�	�	���(�Ί-I�H�H�H�H�H�H��`;^<��\�l?˯�h��d�˂V_��8��p���ѲF���*#% �G��q�3	�	�	�	�	�	�	�@�	P�52^@���6��I�]������ IDAT�;f7��8���iw�ЦQ�S�E8k�mꏍH�H�H��F�p޸�*       ;#�\���N[����ik\�m�,��X����x��oK?�y��|��-DFD��w�q��-*TժVC�=P�|��<üu����m۷�?��x��hԨ�v�
�ݵ����ӥ�߲uK� ����{����FdOG�Je�������	^��У��(7�6r��z��4Ü:Q����39^H$@$@O��'Õ��	�	�	�	�	�	�	0�*?~�&�������xyy��@��U�0B�����ߨ��ik\�l�֖����bkv<[ⷥ�'�s�C�4i~>�3F��z�����S]�5j��O'�Y���"6&�&�47mmA��w�a挙x��w1< aa�d,�>�___[��m����}�G��:�
�ܫ�)�I���ǎZG-.���z�Q��{p�����KĦ�0����-����Ű�CQ�俐������V��͛c��pvvDjz&�,DlL��Z�h�cF�F!'�
����e"8d	���䙦M�1bD��4�p����������#F`��ix�Nm�ٲ!	�	�	�'
��I�c�	�	�	�	�	�	�	<5�*GEE�,�m��7@rr�����Lo�����b���E��ęî�w�ke�����%Qx���dr��q���E̚=���<ʕ/������5�EYSǡ�NEs\4��9��U����HI>���^��}�� fΘ���0ʱ�'t7���珌�t�߰E��6��]�}�u���_~AVV&�T���}��L��0m�\�8n����GXX.\�m���TF��}���gΜ��N�3g�jժ��c���x睷1p�@ddd�~�����
ѻw/8;;�ڵk�=k6���/t��[�蜿b���4DDF ))	<�����'''�<�9�jRq71a�|��=��(�4g8g�R=g:d"�)�����ob·s�"^������	|||��oK!W�u�1�_�
��"��r
S���ӦN�����|�!,))'1u�y.0p�<��_7�/�h���8��|��g��+WƠ�}��ᅔ���6�ƎECO�������-	�	����l�k��I�H�H�H�H�H�H�rA�^�=����4SK�&s:�������J�PΜ�jV�T�Ʀ������gN��}�{"2b��{�~�9�q�P��įpR���ݧO?�m����ظxlܴ��8����Q��6S@`��O0x�P����I�u\L�0-�N��8?�t3l�[&�m�C�<y�t�V�PA�V�]�6^����j�V8���;g�ܽ{3�OG���1}�49ku[�Ϧ�
&�Y!(߹sӦMC��� �W�
�kװa�F���FV<v�؉����˗/�b�w,^����:t(�3ұ*t��^��ׯǁ�0<`8232�u�~~�ԩ�U���>��_�[燋/���b���B�:�7=+3��^���z��4J����Q���}/mڶE��t���&ND��U����9�:<l�����jV�"��A.*l�U�Sg|>�sTy�����.�I��es�=bϞ=4p �֭�S�����H�H�����QI�H�H�H�H�H�H��2{�Q��ŋ�XŊ���F(>���DR�	�9�3�J�h���X�l�b���剔$�3�1�k���R���?���_��)�� ֪u[�o�۷mŮ];����w�B!gGdff�m������K/�`pgdjѢUkt�醽{�a�Q���o�g�n�7-Zx��~\�Ю߸_�߰A�ٺuø		qX�t�8�[�n�T�RR�:z�(b���q��֭��:}��C�J�c���x�b�������E\>V�:~�ڴm�aÆKnY���?w.��N���s{J����_`톍�v�:*�+�q��❷���~@�Z5e��;��d��v쀿�/�}�����󌊈��{���2y2^�P�[�F���}�6|�o�٭W�὞��h*��׮߈��kb�'�X�������oܸ)�*�:y
���rvb���*U*��M�\��V�������Z���7n�e˖�W������P�ћ7������,�޽z�_%J`Ŋ��׷n߾-���9����7n�$���C��.���:�Ot뎟^<��En�!�Z��+jgi�x��|�
"{F�4J��zGz��ܽw�'
o�ؿ��.�Qc�b��(b��wK�߻E
;c���1K�	���
��^�d��"�:�w��Y�8~,�=��W_C�jU1k�䂝>�	�{�H�H�~	P�ߵc�$@$@$@$@$@$@$@� `��-S�$����w�����l߾!K�IG��Z��9;vBC/O�ܲ9
˗-��g#<~]����c���mڠI#/?~B���f�4����=�G�i�P��
�	�K1S��11�P��K�#�lҤ��s�u���70W$3����#G���C��{/Y�X����:�˫!��ys4B��B�qM�!.φ�ѷO�v���~�+C�i�.��Hs�9�Ա��Z`eh(^�u���J1w�u�VľaS$�|�fNØ1cѹ�G�pwlj�l߾��f�_~+�-���<x |�u�����u�]m!�R9��z�^HN���v��|>�ϝ
w/�L>����Z�a�[6h����*^h��`���2-r���p�ByZ-䊚�7l�W���Y�0��ٚ����`ݺu�,�"E��o�>�j{<��ۢX-����E
E�5�E�b/)��X"V�:�R���bS�N�t��7p�����^�o8h�n?���Y��;%ЪPk�m5/�G)���5����&�ҥ�X�t)�-��*X4�w�!�J���,�ݽ��vy��=̀w��Rϐ�}�`Kt4�O�^��x��2  ��!@8�sT       ��L��`Sׯ�ؚ�������I�ؿ�\�q��C4i�L/7DJ�1��)��II��~����A��+E��8+�"E���Iسw/�}>S�NE�֭��)��m��X��cpq���ǿ<
gg'�����4ǁ�e�7nޒ�c!W^|\�aܯ�9��%Kp��%<LMEV�V
�J?b�F��"55Mơ�n���2���\��	6�%�O8�BN��<<u��tԚ��w���������{�GB��ݺm>�ŋ��[!�����ɓ0}�l�7�@s�&��wu-����R����A7W�܌͎b(S�����yA��R���T�q�b�F� `��'x?��L��ճ��1T-�*���ٳ�Z�����//5'+ldT$���e����W�Db�	DGE�x��X�f��E����gϞ%k����`QX�#.]�4�,Ybp���iiiп�a���\�rU���m=�5��{HLKĈmÑV�P(ZM���A��p��u
�Wa/����zw��%���~DŽ�&�z��7f\]��-�J-�;s����)�k))����M����gغ%R>C�319�+L�4	!���Y�*E`[7ۑ	�	�;
����H�H�H�H�H�H�H�i�w�F��:X�����#�ܽ�f�[���cp����qSo�y�m�g�.ss1/�z��p�
�1-S�Nu�n�aC�"*<N���z�S��_q���gEpV��7�q
����;hѲ�A>��E��~ S�6l�s�6U	�BG�-�{�n)�J�uұ��q+��9�%`e|���	���y�}�:���k�?poVz#��1��[�j�����WJ��R�2�Q׮�������lٌB.N��W�W���UT�h�8�|ܨ֯%X8�3����p�f!��a�P�H��ω�����꾇�O����.�O/��߿;���d�ܱ����ݻ�$�ᛷl����B�����1n�x��|��u�HO�b�������3�b�(�JY=~=�+>���~�mylܰ�������
�ћ�c�v2���o�.]Хk���LI�5��k֬�}����9��z�Y�S�������rOj��@&n�&�g
b~ݏ*� �>��.�n�}>ޯ�F�*�Q/�	��RD{�`E�*�1�M�5��S��Ɣ)S�#R�{5p���6�E�S_aʔ�rS����z�u��:x�J��ȧ�~*�5�+���g�|:t8��cUh(*�/Kؖ��؆H�H �	P�%`$@$@$@$@$@$@$@O����������wڵm�v��`���X�|�V[�l��3f୷j#*2k֮���	3f�U��������R�]�l����|���t9.\�
ժT��}���¡���8<�=qJ���p��xz�ꋎ;�m�Vظi#֭�`6U��!�1l�p�+Wؾ}��åеg���R1�3ժU���#����CX�,���UR�<��̥��к����
@7__4n�.\��{��C��Z����Y�íHܽ{�'}&ۘ���!,["S>+��T�zM[^g$t+)��|�^�S_+~"��Iɏ�r���X'C?ꁟ�͜`�5��tw��E��nx��d-��� g)�ڷ?�
F��ݱ),L�T���gB.Z�BBB���+VJ����+��[�dJ���*k�^�p��T�z��%k�"]t��h���e��n�T
���tFF�LI������7F�=e�i�-,j
w��Y�+��hdee"22J��� �����C�R%�
�Jl5q��M�I�Nތ;Y�e<E�":z��mǺx	/�U�{!C9�\ף�|	Ad/0�-��bd���"&6N~ڼ�7ƍg'G��gb�����џk��cƠ�x������2��q��:��g�|�)��۶]���իdms��>���.I�H�H /(��!      �;�.�<'��~�Y3g�ƍ���Ka�رD,^��ǰaðxq09�?�ieg��D�2e�鸱x睷�Z����o����
��6+�X-+�򹻇'��N૯�Ō�3q��}Y�t���H<� ]y���2�?����p-�������H��OFbɒ`�����W0s�yN�a¸q��;u$��
���(SU!Wj��4._J�#�W9/�R!Ȋ�)�ɔS��p!���
J�,���u�fr�P�'���_����x1�o�w��Ǐ��߮�(N}Ji��CNĩ�HYM�YZ����!EĠ?tq�/%[����~R�m�� ��-��d'���BҐ�Td 
YЧ��#�P�(��A���>L�Z���1}����b��A�N��M���/7	�	�	��"0       �'O��`���������ڵ�hס�t������m�A�RcC�\�i��E��g0o�lcg���z�G��(�*.T���_�F�
�⥗_�_|��۶!"b���j�:�.R;X������M����_��|���	2k�*c�S�&���G�ӶT��Gq���֏�u5տ�8L�5��	����TvI$@$@$�L��L//'G$@$@$@$@$@$@$��wؖ�4r�ņ�7��>}�u1ze�X���(ݯ��LA���~T�V
sg�F�/YM�jԽ���hQ�8x�����+bܘ�x�v�G�Zr�ƞ��/'�a.΋���D�����⬎�?�y��m�sK��isآ�>LǷ�{^��)N�)�/#  xn	P~n��'      �狀��j��5�jNVV٠�DH#=2�iM�S1�QMۼn/�SXq�>�~����Yr��z=�Y$@���H�H�H�rG�p�x�5	�	�	�	�	�	�	����w���j�T�Ғ�Ԗ��mW?J�9ŝ��V����i�]�ǡ\���	�	�	8�ܒ0        �'A�^�;w�S��6!�&�t�@�&@�`�O�E�Ӌ"�����҄r;^N`rʺ�ⴖR?��s�3'n9q�y  �<��'l��H�H�H�H�H�H�H��ث,D�۷o��?�Dzz�Y�N�Nx�Q�T)������0^�J ?�]���V�
U�TE�>}P�L��b7n��q._�%J���x�����Ϸl�bt�ڹ|�O=���7�17Iq��6�}�y�kŤ,	��ϖ����5�V�S�6���4�S�"Ss�n��_ݧ)o��l��}�1 �o��{�=	�	�	�	�	�	�	����U�qzlF�,����(�����p�BT�Z3g�|j�CCC�M��)��'O"h~�-�{w�b�ȑ��l��2{��{B+eQ-R�O<�A�~��e�Z���nnEФq#�>�.NH8vaaa��s(Z�(�.��ҥJX���'�̸�l
��"5���,9��=��.[����C�բJ��6tޮS��x�iZ�1�q�-�c̨Qpqv�s�))����}�…�V�Z6d^�U$��
���s�k�sCQ�
��r�������X�l�����&�1���94o���G����r��<O$@$`
�6ab#       {'@��W��?��]��^8e�]\���4DDF ))	<�����/E.�N8�w�
6�A�A�~���?*:���2dj׮���)F&$$ +3^
�w�^pvv��9<<��NNNٶƦMa��hݦ5�?�6m۠W�^�ݵk�0{�l���_�С�l�9��m霘�2��-[b�������A�t���rn.^�6K��U*�O�>(W���sʼM��&�w��s�Br�q8�d�7`0<��[��rM6m�$ǡCcx�H���❷�BV���nűcǰq�j뢤���w�y7v,�խ���шsm�u��4y���,��cX�{w[r7l�@�ɓ�2Y^7%p��<�O��}��	�|�P筷������G�v�:l߾#G����/ުSGr�?�%֮]�]�7�"~��^�͹����,Y�}_쒂�ɔ��2e��cZ` <�<���Ǹ����y�	��$@�	�e�$@$@$@$@$@$@$@�@A�;}�a���HH�عc����?��T�LJL¢E�P�fML
�����Kaux�pdfdB�X���C��ѵkW8:9J��^��y����/�������^EPPD���;vbࠁptp��QV��:�c��>i�$�|�g,X��G�ƛo���sfK|�-Fbb"���t�
]%?���s[��y99;ç[7�j�
.�\,s��Æ�"spH0�ܹ�iӦ�z�j�Y;g�,��uM�L��4Á���ZH��޽�٫�m�lH�����=D�6mq<!6gW����ܻOt���[67J�,���W?�������X�;���HlX�
+��}�{b⤉�U����3�0g�D�m�S��{'3�q�b��c�ND�o����,��ۈ�;
q�EGl���<���dr���q����7�_DT$֯]��=0y�DԨ^U��Ù��"�6>rl?����	��sF��s��.	�	�	�	�	�	�	<�(?�+�y�;�����jԨ!S)��ҋ0`n޸���Y
�g��P�,\`p�nظ..��q)��B �"��߰^��ݫ7�U�V�X.W����TǙ����?�Ŋ�H!=x�ܺu7n���~}und���z![;�IJv�Z{���ZL�9��W�����s�گY�n��.]�"+3S�������O�	!d@ IDAT(w��Ŵɟ�IX����Y��>|�:�kc�1(_�,._��ۯ\�C
�eʖŊe�P�l)�p#�طw�v���c8cڷo���ù�S)�@����hd,�˗��eKQ�TI����0����K�����,	��_�C�3�߲��Q�LIx{����_�p�B=f�O��v��#.��α�Z����lL$@�!@87�ؖH�H�H�H�H�H�H�n	P�ۥc��9����(*�?7o��u0f�h�~~��HO7Z��yS�&#�V40u��W��޼Y�*.a��M��6�:���&M��m�̘9U�V����t-����\��3�-RF�Tk1}�7X�n�t�C�����///X;���nF��o�����DaWWt��E
�_��9O���c��ٸx�7,]�ŋ�Y�u�e�q�~)������[6o��W�.��QcQ�FMyN��BDTΞ9�%��t�Z�V�����w��殳�j!�g\��
7��;�\��g*�6l������y-���n�`Ĩ��n2�ϜEȢ�F����T
����lL$@y'@8��x%	�	�	�	�	�	�	���lG��PI@E �`ʊ�+p��Q���L����+WeM^�U�_�N}^�5�����eJcɒ%�Ku[kc��߷o6n�hH%�];w�G�h׮���+�iiiп��\�6w�\jf[b�z�O$&�@tT4�/��kVµvΦ��T�U	���T����lݺ����]_����P�Zu�3�]]⯪�mv����.ݰi�F)�*����!ڴi����߸؏��]�;�жM���گ��4�i
���ٳg�R@[�N�f&N5O1�t�ܽ'ل�8yZģ�ʷ�>@���e��${5�Ɓ��צm[$�ɖ���sRtg
h�v7�	��?"@����$@$@$@$@$@$@$@�B�^तD�*T������зW�Ʒ�r��
k��Ggm��L#uF���@��M����a$��5��p��S� �%Kz����6�)PX��j���� �g~<���@Y��O�>��ތ۷�Ծ�J���Y�d��������3d�ddf�z�­ڥk��߿;���dm��X�c��.Z�H�OG�ww���`A����c��Q
Z��))2v��X�f��\��Ι��q���\�9��&��#F��+ek�l�����z^HN:n��Y�q��}�<��͛�q�Ƣi�F�w�0V�ň�n���uz��l�c���t<�^Y��\\���GlټII�
]�^}�ý>���B�AXd$RRNbÚP]�]�u7l�������ɓ�t�N��
<𱟏�=7q*w��гGOT�R���FXX���L=~�g2�y�*Ud��M���9�\�{��x�ܳo��L�nM(6���S_cʔ)����S������ML�O���H����
B$@$@$@$@$@$@$�\�WX��z��a���B<2�q�ti����^�����_�Jٲ��HԬYS~�/D$!�<pm޾�o��ظ84i��8h�YLӀ���ػ�4*�RB�Q\��O��wGlll��S�/⊓��m^9�UdZQ�ӻiS��꜁y9D_�_CȒ%>l(�4n$U�;w���3f̐b�O?����`\�xI:N��틆�
t�D
�ߞ���1{�,�����Z���s�� ׮_�̙���T�JUL�4�z��<�C=�� ��2w���ЕpqqAdd�t�>��իW�i�K�*�+8##C�u�8ظqc������D��ط?�
Ɗ�+,���5h�`\�v
˖-��\�v
�
���V�\��*jw��Y��鬣�����9��ZB(V���󿜗i�/\�GT�T	�z�BŊa�M�FW�V�E����V���24Q�V��B�\Q���{w4�n,�	���Eqo���H��Ys�����=�t�����X����+Z�����v��3z4^-WV�nINM��� ���ܹ͛y˺�.βzn�����R�j�Zy�+V��Փω%^Fb�I�^�?�՗�J�x��x�Y�_�re�&�P����C3�3�����5$@$��s�MI�H�H�H�H�H�H�엀�	�:�b�޽�ҵ�M�-	�֝�����k0h�P�h��Z�F—G�9z3֮]���L�h�{v��E�ZJ�ɚ�|�B�5�kl�%�2��B�n��F�NH1H�;w��e�q��}
Js^cS��(�����L<�ė��#}����5k�ܽ���!<S�ٲ�W'�iСsL���ӧa�����9s�࣏>B�*U$��}������j��O�9�ga����6w~�������5}���i3f 1)Y
�B�
�$�6ѯ4�ku��F±M��L����+�{J4:�Z��ݬNmlz��X�Wj=T��Oݯh��gڟ�2��u���������	f䤵�������&u��k��hK\��4?ӵ��)�'�H�&@��^~N�H�H�H�H�H�H���)ke�ʞ={��ŋr��{N�Y�z�ss����_��ܹ�p��T�P^�ϪU��}� ,<7��@�r���;�(�.���t�n�@�5VE�Pll��n�NlQ��;��յV�X{�.�{�'�	`9�y�q����;�̼�{�>l~����ׯ^��2e����ڵk/������G�G�B�f�=�w��#W�\�ݫ��ltj�Nm����³����ؿF�����7,����ɣr��/2�K���H����7x![V�HS5L޾���ػGWdH�Q��ظ�>��BP~���͟�۷o�h�";�D�v����A�سgڴ����������+C�������L���ٻ/���`�!���ѳW/����G̛?_i���
\r�޽q��)�8yR̟t'''�uu^�T�6�G��Y���c�������+�ޮm;4q���}��}Æ9pM�6��C�p��!�|����� K�:�1K��118�
���k�G���o�ѵ{w!���~[|`eaG���%��1v�Xp���"_��x��	�\]�u��S�-6�-������K��P���셬��O�3"񟧶s2r6	��;�GdL�	�*,���fc�`L�	0&��`L�	�^�.�r��ƌ�ʕ��u��8>[���f�Z�h�R�.\�N?�۷
�R�5�W˼jcC����s�|����1�X&Ɗz1�߷na�X7��a#�?�
�=
#G�@��DX���2��#GE_�YJy#5t@�Zv�\���TOU&�ؾ�fϞ����A}�8q�-,ĘaG�
Q�E�"OrĹp���������}��C[�V"�o���w߸�e!��b��٨S�jײÁ�|�*4M����Sb<��m��8�-sV�2v�X	�[�I#B����Nm�p寫=|&������h�5j����v�����~}�����ʩt��#F��c===�l�2�t��>t(�թ��L��Κ=̟�Ŋ����޽�&O���V�*7j(ڼ~��/ƴ��2�^�h���쇹yDFǠ��#8��>o\���`L�	0`�@�;&��`L�	0&��`L e0uX��W�X���4o��;w��"��P�ff
ރ�{�Q��-~�R�W�(/h�+�.���$
ރ�#a�?g,��Mp�\��2V�Y�<����QB�$�3�!�:�����O�����(���L>s�,��`��i"Dq#T�VM��ذ̲��275��ԩS0w�lL�:
'MB��M����T�G(9���~юBmg�� ��\�����Y��w�(�\�ooo!�4H��իWb�����e˖C�����7�q����;��h�ݱ�����'o�b��08::��SV(���Ѡ�=���+K��L���!X�~=F�)B_:��:��޵c{��"������ѣG���S�=z�x4m�u����'�'x7�/�/��ҥhڴJ�,%�c�p�(��F3�>f8e�yVL�	0&���OO��~��@&��`L�	0&��`L�����*j�nڲ%�mۆLV�Jp4����+\��?��ƯE�`��"��˗ʯ�?Nvj�+W�D�ܹbs���y:�o�����NL�Y��B(l� t6���THp%�U.��
CTT�v�+V��M�����L����I�%!U�{3f̀c��2��	��$�j��������C8n���s8��|��C�(�vT��گ_?8w�ol��B�޽ЭGw���bÚ5�G��m�u��8m��zs�63��)�Z����V!�S�G]�s��B�d���Dx���݁�B��a6���y�
ٲe�N����89�`�>�z��:vB$���S63��ې#Gv4th��hю<���D,Y�ܹs���0a�8�����>o\���`L�	0`�@�;&��`L�	0&��`L e0u8�9��0n�$���A�vmq>"[|��n�:m۵C�Z���1z�HI��;(P!�L~�\�$E�P)M��=. O�<����=X�n��A{46d�>0-<f�?x�ŋ�_��!���-6I��Y����G�w����:u��C�Ť�Q�D	!�
ő#��X�!e��h���k�w�vm��s�.l�F��}ѺY31��'�x��j�=���s�ѽ;�m�*YE.2���PL�8I�ٹs	���G\}U��͛�-BGӜ�w舱��{��m�ʝ�tA�z�8p��^�j�z�߸��S����>����ԡ}���B9�Ӓŋ��@A��v�Z�K����W���l�@�ߪw��]�Хk��yc�Y1&��`L `8.
O�	0&��`L�	0&��0<S��!"�<��9�͛�7o �|=jʔ����l�r<}�9s�D��=Ѱ���딋W.��=m�oYN`�L�*�߂��q"��ȑ#q��u���ϱ!�!B��K���1f1�w�>z���-[P0o^��4y??}D�N��}�����'O���|y�bĈa�P��AM´Y�0�'�U�o�06C4>}����z`Ӧ�Ȝ)#޿�������,,����>���j��$.n�\�ʱLB�"�jO\����ӧ�O}^�;��P�B\}�N�����Lƴ�S��*���?��˖cԨQ��Y׮���K��(X� F�
�ҥD�c�k\�r�8��y˗/džuk�dwW��o�}�lܼq666Blϖ�Q_q��t�-��i��A�C�`��>۟�0&��`L���(
��*�6��Y6(N�	0&��`L�	0&��H�L]V�L��k�L�d~�*�q������ઌ���lV�#+׏1>��������1m��@�=��j�_NE�U����h�����w�*�z��3��ּ�S��~� �>5�O�yi�_Xδ�٫�)����bL�	0&���a�L��a���`���Θ`L�	0&��`L�	0��J��`}�Jy��.%�!���cS�(U3�ME��مG*��C�j�,�1&��`L�	��V��.�?��a�`L�	0&��`L�	0"`������U,?�Lv)>��O̻��#��Ϸ�l`L�	0& M�x�F=a�w`L�	0&��`L�	0&�*����"�l�>6s�����l`Ϙ��[��`L�	�xT�7�{�)~��`L�	0&��`L�	0C0MF�N��B��^����`�D����`L�	ğ��g�-�`L�	0&��`L�	0&�J��`�;v�۷o�sD~��\�4i� K�,ȝ;ڷo�<
8h2�L����~<{&��`L@�y{0&��`L�	0&��`L �LU��rŌ�Ԋ`��q͔H��*<'&��`L� X6F�	0&��`L�	0&��H�~~8�/0���0�ܻw%^V��(Q��t�\�s�t,�zym��M��	����q�gJm�������`L��l
��sdL�	0&��`L�	0&�R:��.w��%�#�1��%`��J�gp��E�\�%K���	���$��$��C0&���#~ϡi���W@5>P|�'Y�ѣ���;`L�	0&��`L�	0&���!	�lH��HF|0�*�ʽWӧO�իW��"�vD�y|��ժUE��=�&�9�ݻ��۷�����A���ѥKg�Ν�������5o�}{�!k��9b$r�ʉ��hl۶gN�ALL�U�.����?�3gF�vmE�2d@�^�aS�F�x����:O��%k����g��Ý�w-<��v�*<�_�zOOO<�M�{��<�5�go����w�^�Y�F��I��Ԇx��=fϞ��3�.]:�~�'M����kr`��u+�ݽ��E
�G�������L�2E�Ga��9r$��Ϗ���Ϙ��cF#S�Lqc_�|�����7o�3g�m���U\��������_Ν;#[��⚪G��o��iSQ��N?�9s��g�a�ƍ���:t� �);,--�=���H��=���:�[��`L�	0&��`L �`8�o`j��`��k׮IZX�L��/M,/�����j�j�.m
777���!44.��!2*^^�8۴iSq�ŋ�B���#�/X�R%Kb��Q��ۣ{w�I�F�����8h v�څ�{��g�077�H4m׮z�郴iӠ[�n�%�/X�l
�www��i��6{�"m�̙=w���I��g,��u�R;n�nϝ�@�>}��;6{{�aI�اc�8{������X�qM���d�4i���ָy�&8��Ç+	�[|� [�lh���a������Zc��u�W�J�*�cG��رc���G�zu�߷��..��L�6u���|�����ˢΈ�#Ddɒ
p��Q�x����`jG\�o�
�6mZxm�B�
�#{�ܵS�BE��Ş�eL�	����='!,XN5n��`L�	0&��`L�	���p��b�2xܹ$�A>�pƶC����ؗ��m��ǃQ�j�;w.����f��<
ƍ��yr+����.��ۯ���5r޼}�U+W�v
�d���{�r��(em-�<��]�b���2d���]��cǎ���ϱ|�rQ������ڑ2y� �v�ڸ�H��m��K�+�Nb����=��s#1�J6Q�����g��%q�ڸ{�i�?44�>~B�V-�w�^XXX���AI�2e��cVV����#/^��' "">D�6m�\�pa�۷__q�`���V�����U\�lYԨQ3λW^aƌ5j��E�,Z��'O��	�tm�ԩq��ͤ����"��ؚ�H.�<.`L�'��9	a�pB�q&��`L�	0&��`L����|��)�X[XX�˗ϨU��^��V���B�452v��6�}�Ӈ�BBo�ym)t��$�?~\ifu���jQ�~%Qs��� O�C��...��T�),�U+Aaz}}���K%cF+�z��J^�~WQ�%/���#�~�z!ӵt��
/ZU�dſ���m��6�
���kW���?�={�ĄD^y;E�h\�k��3��φ
�Z�&�v��ɓ'زe�X=<���z[Qp%[ZOy17O�y�����/B�%qx���=w�\L�8IV 1W5����o��W�����Z�X�b�k:@0g������Ԗ� IDAT��CE��`��8�4����-��&;��=�����	��{N|y�_b\�	0&��`L�	0�x0���)p&�I�ѣ���!���^�7����O�
��[EQ��̿ĵ����S�#
����W��z�j�MI�U��שjuۚ?�Od��t��ڿ&OZ}_p��=̚=�n��b�X7�V�����ꉫ��&��v���[����!o��4h ���R�c��=�!)"����n�}��Y�'N�¹��2��&�+�i<�~��Y���%�UFL�<Yxf�UA�r��>uZl��v���x��X�v��+U��8�|v�
���U��<�Æ
G��Y�p�¸��Lyp�Z�\����M��-5�>�`m������+L�<Ix�R�b*$�*zG��>B���i�Sj>����h�J3g�D����i�f��KEQp��n�nH�!��h_.\�=F���D��|��ѽ���<��ҥK���&M�(8��3fT�&�vΜ���Ç�>}z\�bUq��L������f���r�L�	0��M ��s����L�	0&��`L�	ě��E�xO�0&�H,KL8xw�?�O��U<L�-�9��[����uվUuR��>�Q�����¦&OZѱ��ǒ����|�{�E��MѼEK�9��ޛ����<�s�����g���vr�޽z���=.^��N��Ѓ���oj���w��8�~��I�I�7t�H4=z�D��SHC�HE0�{��I��[�v�ڒoU��Λ7_��ܹ3��g��ۖ�4{z.F�266l�.]��7n����y?a��˗�f͊Z{��%�B7n܄�5j����>�ZTd�ȗ۲eK�n�J��m<m�T4\�����Ç��1}:���v�ލo߾��\{m؀��.	N_�~޲TH�֧�|�٩��XuȎw��	��r�RQUv�k����O�'�9���@���m��*W�Myw�8��b@y�˖-�����O\��[��r;4��C�D��N�:�.Hn��I�f>x� N�:)B��Ε�&Q��ui!DoۺM�r���c��~�`����z��x&��`L�	0&�S`��XF6"�`Xj$�,u�ݻ'&Q�hQ�_qV�&��k71���^��s�Nظi�;�G��
O��o�F�b�0u�$*T�͚aȐ�B��‚y�P�R<x��$�7ql�-Z`g�?~�m�~O���3���k(Z�0&��2eJ�ν�>s���~-V�'MD��E5��{����W�P�@�u�ʕ~����j��τ�]���E���em��{�lش9����+*W� �z��p��_(_������74m�A�v�Kg�۳Gx�}������
O��3��_-�)�'�01ttD�ͱ3 '����k&�e��JK��>{�W����&%��
7�ڦ,F��Q����j�¹T*Sh�yseaqǎ'�Q��	�1��X7�{�^��M�>v�|D�|���%K�[�nȑ#�x���������Ŋ�s'g*\H��ffhժ��ߏܹsc�ȑ"�+�����3gΈ)�ղCǎ�Ğ���m<
_�i��v����C�v�؁��h��)�spp0�,��m���B mޢ��E��u��!&&Z�ܤ�������o߾���SQ��@B�?w�A֬Y�y���߿�r�N�0Q�{���+fΚ�ɓ&Kz�X$���u�l�Ъu+�.]Z����{!�?|�Pxwv�I�…�ػg��׬y3�>�3��Q���υ=$طo�e˕�ّ��yl&���OK��vi�0&��`L�	0&�j��j��
��	�,��I+볽4	�}\���=Z�j	��^���'<D��#��jײ��m�X�bj֮�>����c���X�z
��7b���5��b��ܡҧO�j��p6�F��߫TA�m/����C�����-ڵk�];p��Y,_�D�6��իQ�hQ=?�-�޴1		��G�B�*U��q.�����y�F4ph��k�A�H��ŦM^j����y���7�&o?��&f͜�1c\�|k��
�v��]X�1Æ�Bk''ԪUgΜ��m۰j�b������ѩcG�O���v�θ2A�1"L3Y�l;dϑK�.�u�J���o1g�<̝75lk!"�����S��O����5Yhv�26��mZG[hc�ĝ1&��`�M�`�^?�=`L�	0&��`L�	0&�2�0J�
��^�����<�c̀:��+�tx��-�c��:�
/03DA���G���z�Z8~��2�Et4P����b�^�Uc�z�
q`�~d�L'6�<Tr���g�d�L��?�e��=|H�;��k�N�լ��ժ�*�A��r��(u���@�~XYX����;w���v5�P�ZuT���h����U*!
]��*����ŋ��*����ٳ"��ٰ�Y
أn�����[�f"$��`[����"�Տ�(FcV
��F���X�z��<�c��l�R�~��?{J9'��[�L�?5��y�a89���L�	0&�L��&�X<U&��`L�	0&��`L �0uX�R�$ת����w�Ѩ���5EpP~�J׽� �
!,��+��է��LB����ȜQ&��`�F�
D��Bn��Ç
8�쩸\��q��/�������%~Ű!���\ߡ!��ލL��P�x�
.^��(�k	:P�Q|�į�1b� �:1hҤ)6zmD��y�k_�E�m���sgl߾
ҧE�F�E�֌�2��k��"��z
�V�xL��z�9�gc~��������0%�֮"�cb��<&a�!�/�s����[�huX6Z�	0&����E��k=�&��`L�	0&��`L y�����$w��[����`��fxym��1�`cm�ݺ��C8x���X�j�9|��.UU[;�
?�1cơt<�-c�Nq.<�7l������jի�m�6BH�x�"{.p\�Z�I,�%ܷ_�c�^�z�{�.
��C��5���S'gY��
^��F߾.���z��p��}8���K�>a�B��$TS��m��1k.�2fć�1y�Qg�7�.m�nݺ���Bh_�|��|^!ij<?���'9�c�N�٫88`��}BL�ٴ!�Y�N��m�ڈ8{RIJV��\�����/iE���y�%lT#?Mؤ�`L�	0&�@���s���+`�?C^ ,w��`L�	0&��`L�	� �.�RS�s���̙���;uº�p��q<~��g��իW�/o^�wsE�J��	�?<�e�x���?�tw��k�Q�@~L?�ʕ��1}�tܹs�J�Ĕ�Q�pA��_�q#".�c�B<~��s���.hܸ�@Rݶ&΅����׮]G�ر*�+�s��c��Ex��	r�ʅ���ñ���שO�mmk""���|��2d�.^���W�?|�3��ի�ñc�P�b԰�C	��!�5����W��c!�ݿ�BE
c¸q(W�:ζp�Cl��K֯<Z5͓�B�}��]5���6Y��F�yOq&��`L�	�����l�U�N�`L�	0&��`L�	0��F��`���W1��������
*�lٳaϞ=�_��J��9i�y�]U�U��)j�dŲ�z�V���Fq�Ď+կ<�<�|<M�+٣�����`Ϻ\/�d����G�o�<T�pJ��|�`L�	0�TO����O�>����&Q�@~̜93y'ǣ3&��`Z	�C���g����b�<y2�cL�	0&�RS��Y.M����a�������-
�1��[���]jRr助j��֗���~T�k�7������J��?]|t-�j{]<t]״N��Ү��hJ3����`L�	�"F����:��?��A��u�j/^'NOE;�MeL�	0&`z._�GǦj�P�<B��qaL�	0&�RS�=�垿�b�$+摍���噚z�[�R	��hJ5��K@Ӂ]��NW�|�	0&���!	�{�:�`C�f���ӧ��B��ߺ}�4��Y'�Ծ�R����Aҿ��-�&���L�	0&�C��`}l����&S}:�:L ����.�^�~��..q�V�\���r�j�,�;��4�UF+X��F�޽�7o�d�S�5�崎�	�ؐ�q�=}�%j�ܘ	0&��@�{�:ք�lڟ�	=�/Y���U�=�ɬes�I ���n?�-f`�w�t�I!�gDү+���`L �LU��Sk���(�՚+1�F��FuY�Ș)>~���#F�ή��fF��f����a���jc�`q-ǢE�Pʺ�I���p-����W�c�)ixl.m�|���!"��r;95]!�U鲈l�=�3&�R5#�aX��b8U����,��0�Ծ�R��|?1�;)~��?^\�	0&����N�T`u߽{�gϞ��˔6MZd͖�s熳��Ͼ�l_j!`���0z{�`�=plꈐ�!hڬ)z��)�EFF���gΜ���a]�4���#�m�]���|�|q��Y|��5j�@?�~033�s�N���D��Nܵٲgä���+w.�z����J0 �]:wA�����O�<���Fܾ}��Q(U�Z�7G���?:;w�fooXXX`РA(_����s������6NƧ���u�6D~�.iKڴiA�T}||p��]�DǠd���ݫ7
,g���-_��֨��'��'NJ�TOQV�h�I�Q
mI%�CX1��j?�ה�g]���3&��З�����c!X�w����X��y�6�-K�{)��O��$��`8��L�	0&�R2S�S2S�0*#?�5�I�&��c�…=z4J�(��sf�f۶m�΀��wA�|�1�}�� ����ƍ��<t�PDEF��J;w�,���".�I�:�	�#G�c�����W�v��Yxzz�lٲ�:m*��̙�>�}��������ѡC�I�}��E�̙�`�.R�\�)��
�x횵bXo��2d�!/Y�������acSZ�C�r��p��=�}J�3�OC����[t�����`ii����e˗c�
��7�L&�!�11�X^^�|��s���Kȓ'&M�
�l����b��5������bbpN�����י`L�	�"`��9,�X�u�П�:6?�'���}/�v�i�1��z����g�#2&��H�XNɫ�sc��`T�ht��
���	zy�Ax��-6oބt��a�Сx��6nڈ�3*u�횋�޼~#<m�����
��E��M�7#&&�z�B�,Y�n�:QWXq"eʔa��e˪4?�wp�t����4n���'0	�}�o��"�#�x������ƍ�Z��B�%�`}�L��~��ùc{lߺ]����E��n�[�.Z4o�	���� ̄M����Ο=�#���u�[�N=Գ�ǥK��l�l��,�5l�s��G�re�.��Ø��]1���`�&`��9,�X��e�,�tK�l�����������p�3��`L�	�d)]vj�&%��1�$'`5�Jy��I����oa�ĉj6��t���5:w�"B S(dss夲�\S�B.{�x+	�$@SHh�HK�`Ր��H�%���y˗��1cF�K��h��x���<V��*,+�M!�>�I�Sǎ�_Gn��-�.^������By����Z�j鵏�phX(~���Ǐ����	��
Q������<���@�b�A�M������S"�(f��6vĻw�����N:�^�F����lԭ]����̹`L�	0=	��'(#U�G�\�AA8y�eff�
�N�:hӶ��);��\��/\�p/\_�^�~��_�"K��(X� *W���-[��"�-_�|���={F��y�捘w�9P��
jִC}{{d��}q2V����?.��w�^�x�4�ȓ'/~��5j$B��� }�3���0\�x߿G��;Re��aj/w��C�5y��!�,��y�	^�y��V�#gNT��jת
[[�IM��W��?x����ۅ��ޱ�YS���K,Y�T��\�ra��!z����;vL�<x ֓�UΜ9E蠺u�ә��d֫O�o�:Yh!Œ#{���'�.b�Ν�~�:Ə�;w���﫵+m]-[��96q�Et�U��j�J�ЋO1����ER؟��%�W���^{�@�G�X��G_<��� q��F�˛���A''�̕S���V���#:��ÇEx��o߀�
���+:����0�l�55�:IN�χ-27bL�	0&`,*w��H 9�}��	���t��~~~
B��Ѽys4ϟ?��F/dʔI���kÆ
��'OE�\�$V,r�<��"#E�^�L�T�����]�r�xF�d�R�<�_�x�ٳg�H�""�/��M�����]O�>Ù3�����7��m#%�n����#�b�ؼ%�jف��Ɖשh�;6CP�.XYd����.22.^����q�##�~�*Y�Iw�@���`?��w%�	��%j��UX�d�8�&U(L��УGw�y���8Q���-D,]�N�9�q´i����c������[���ٳ�/��
�[��5_�u�s��5ذa����d͒E������CS14�)S���ŷ���G�
�6�w��C?�%DF�ƥK[c�ȑ��E|JH�L�6
>�،���j��u��/^'N�NAj+$-[��6m��+KK�F�}��]wusŹsqC�����6�[F�d˚U��I�!��9a�u�;C��}֬Yt!Q�n�{�P�c�o
���d��f4�Q>fb?#3e�7W7���Ca�(o�˗�4V�CD�`�¥9:6U�W�|y��g8�:�XSc���I���`�ܐ	0&�����l$��-0����oG���8w�z,�G�%�#�
D?�~(\�0�N�*rϜ9S뵭[��C�F�ܹ1s�,����	���$*:
kV��g��t�*rӒ���aZU���k�P�&MлOo���?|ρ���l۾]�Ebs�=�
��cž<<"��9���l�7w�]�́<���|��aɒ%��\�@���}�v\�z�	A����˄�׬B�
�d�cC@7ph��kע��Ed�cC@O�:M�N���̙2*�x6�U����|E8�������-`L �`8y������[�\9�8���I�&i��#3�gh}����|��"  E��8Fdd��r�w�>��,�D����hРA��i�����K<z�8^��7����$C���1����1�u��C��8�n�����R;�`欙X�j�^|i}�Ν�~�\���#�?^��/^��k<y��c��F�-WVc;m���	ď�o߾)���+W�ר�+кu+�sm߮=Μ=�V�M',[�,^vReS�K��_�~S��s��q��ܾ�:u��r���~F������:͡}9z�h��Y�*�!��]����Rl��`�����I����"q%&��`IL��$��1�DHNx���x��x��+w.=m�"z��իD�e___�e
�ҥŁw��u���_x�~��666�
�A�+E�k߾�pȓ7&N���������_�a�]5��`�A��=V�Y������#��QT8��S:�K�T�`��={��[�ک����%;5�B�t(o�ݻ��o3��ԳWO��R�'s�Qf@5�Z�ӷ�l�A��1c�4,�OT!����sX���;�*�k6nƖ-����#"�O�u���;x,\��s�9�1q׫��!f"�v�…1x�Զ��޿�|s��8 IDATs&���@��������jѢE�ر�dӫ]'�ty�j����=�1\2�@�WT���Z�:}yP�̾}�I
s��.]Z̝;�:��P1;c�V�o���S�1U�y�nٲE���$�m�ZZX��/jUt	����K��'����vv5%���G�H܍��Vk�y�&888�PLA�w�]�eg�m�eyk�
yg��I�� N�Ʒ��^2����ҽ���1��uc���
���`}�Zg��y"������}��'�{�6)I6�:)X���Y$�	0&�����L��)���2Q*%YQ>��O�u�g&�y���ƕ�_��w�GCd#K�{U��a�:���c*\@r
�ɱz	��1��1?}�,���fˊ�k�Svtj�޸�� �~����;�L��R%K�o��J�~���m�B8+��U\�hzʤ8�~6�rgL�	0&�J������)�2����Kpɘ�J��(���
7My��T�")��̙C�,��>z�6�:\��3����m���Bc|:w�1C��Q,�`�v�:��%NFRNa�B�j!�%K��Nbi�^�%�S��;;c�����;�g��M�~�:Z�n�sO��e޻o���zB��6mDÆ
q��)t��Ir�3gΠH�’��̞��+V�]�'O��e��uS�K��_�~S��Ц04��lDc������F�_~��nPw�?�|2f�(i寢�h�*��
��F[�X`I��`�5�~�`L�	���
�;v��;�����2�T��M�$!$������ѰP=z3̪Ѹw��^zw��A�|�0j��+[f:�(%f�"��a̛7DŽ�?D`�?��`�"?~�3g��!�Q����[z�;ظi3Μ>��Ob�۲���N�U���7Ǝ���^b���W�
d�ɩ��b[����*V��Ȝ�R�KW���l5]����L�	0&��������ըQ#�KB֭[��n�z<�\r����E�n]%�}��
�Mq��MqݺT)񣍾T�,URx����CB0s�;^�z��y��õ(^��󃫫�Z�Y�f�g��q�	���q��E�e�ti�����"|Mb
�۠~}ܺ}[�6a�ӥO�Ǐ��ѣ����7o�k֬Q�Ø��tcɒ%%����
�~�
�ZvxRG�Z���ѣ{w4k��
�XN�:��K������knf��yd��իUǛ�o%�J����3(�pdd��B޷��*u�I�ܰ�5��7$Ǣv$T۔�b�k����{��K֯�����vM��5"�ŊE��Y0a�T�ZU|�'�Rc:T��Q-�O頄�I'bࠁ�y�T������ߔ�%�y� ���h�G=`:8A���ճG�4�|�:�B�IM��(��ߤ"P?66�Et��e��˗�8y�$֮[�5�|b`��
��F['I�����`L�	$5��e侽{Ѿ�tD1U��`M>�}�����ebg�\�i)1ff��94�/�L�.+?<s��e��s�u3<�7F�&�8~��m��
�csq*�S{�RcJ{��
��g��ٳ8zXY66�l��O�ѹK���B�98@M��>�`��j�$��7��XN�T�L��*U�$B9k:�k�k�6��<`L�	0`؀0Е6*m�4X�j�6m��3��hܸ�dNTM��
I�9�L�,��j*{����������w悔>w�\,[�\��gQ�p!�a������
ڴi�r�M��l��q�$�i���/�NTyqN�4ߺBBB�)S&�~����W�^
w��j�Λ'�F���ծ��ѺukܹsW횳s'xxx(��l�r��W�4�Ǐ����Os���'�=[5	���r���cu��Mx�أXH�pus՘��k�4n�X��.���رn�֭��ML�{��js<x� z��f��x�"r�ȑ�����%c�/a�)�Kh��AB6�Q�:�bŊbϞ�q���)�v�fM%Èi�̧>��…����}����j�7��`��(� )?�?�
`L�	0��$`�pd�=A)k�PM��+�ץ`�m�����/^�z��c���ص+'b#y{o���ð��O����;b�/�i�Fx�a�y�����P�H�usC�"��5?��9�͛�k׮�P��3z�8����߲%n��Æ��*h|��+(S�,`n�O�?�]��"�j�>}�c�6�Kc���H���	��o������n߾-��XW,Xm�u�cG"$d���,`�����֥1~�X'�X��jD���O��"+}�%�ܜzS��k-��˄s��wyj�N*��dO�T��l.`L�'%�p�.�6jĈ�puu�������r����	(�����w���d(M�̜%�Rk�E��X�P�GʇJB�&�P�[�h���.�uG��6lP&+~��$`���¦���)��!�f͚�?�T���m[Q��t�Y�|��qq�X��ɝ����^�A{����m۶�ҥK5r#��y=z�X������䄈��j��[�w��Q��{�}�v"�j�oo�->J/��׮]b�����?T�VUx<�y�h��{����0���n�>1��d���!�7�{	�C0�w���3�Q�L^$��M$��;XvR-��9�kז<S�re����~/_��-ZH�R�,�m�u�Ϥ�|H��L�	0&�������`�$7o��K��p�"8~�8vl߆ի����	��N�2tH�V��8s�>��S��~}{9
7W74o�5j�Ĺs��s'/�8I\3n*W�"4�?�-��X�v-Z�l�ű��o�K��f�j����z!���B؝<y*&L��֭Q��9�ލYs��u���G��#΅c��,�\��"ZL[�VBضo�@M>v�߼���bL�1
���� ��f&�&ME���۶!W�\p㊲6��Bc���om��ٵ���8~�֚�dC�3&���	`8yK�E��B#�CgGGe�`���_��T�$�����y�ȯ���GDG+�X�p���Oj��P���^?t�z�VΛ+�@!�kծ�V�Z�q�ƒ�Z�Y�W�^�
���͐!�9w�܉�^����%V����$4D��)�'�,�Z�Ц������?�<R߼y+�g��Am���j_�rkJ�1d�o*H>��R�̊�]�xI��W-��^�
KK��K���PbӦM:�N�^�q��!�zt�`�F����s�Zժ�v����N�::��U���`��Eb�7�{	�M,]{L�u�����`��H�!���[��N���g$�7)4�T���Z�8p�����X�r��;@R~>��|�	P*��O��ׯ�	0�x��]���J^�3�OW��c�Γ�S�U�~U=��y�ك�{��Z5[�^�
�T�(���#0���ٳgp�A!�Ξ5G�j�V��84L���뷸U��Ȁ{�*	�M�7�Ν�`e��G�^33��q�;>͋����E��ǬE��aG�0�XZY!��1������c1o�T�^
���Ѹi�ع����}��}B;�e!�RHk
m-��ޕ����.�c��(Q��8��WQ�ݻ'Z�l���#8h7�֭e؈�c���X]+�h��o1�~8�kd�	0&���i`8y�K��3g����G�|���B���&oei�[�oi4�BV.Y����ǻw�d���p,TP�-=L��j�Y���5�j�uk'q�6�E��A���3gѮ}{�~('���w���w`,v�l4	�V��_~�i���o$�]E��†Rn$բ��9M�ڟ>}$rO�#h��W�r<}�Lm���B�
q�k��<x�`����{�j�h�_�p!��b��X�V���.��>[��IT0��D�6�"�������&�AB��1�Q�L!#"�=�����lʔ��3��qrROE��sX޹&o�(c����!���ۥ7n�@�<yA߇�0&���ߔ<X�_k��*W�,:h�N��7S��A�����x��.�a���k�""Gm=�Î����y�ݰ|�J�=^�`fn����U�V��*�X*�!k�C63C�-�m�6d��T��֋W��Ƨy�|������`�v�r�J�M��{$���)�����ޛ6"C�h�~�[a;�\�%�ߣd_L�P�HV� LRpؑ#ph���r�Jfמ�A���P���f�ҵ+,��|�����o��[��|}�!����N�
��Zr ������Ǐ� K�,�[��x&b�g�\��e9÷��n�a������ځ�t��|�)��~%xD&��H�XN��$@��4=��&S^UW77|���4mB������t�"��SD8#7Wt��Y���hz�>p�L�4)Q}��]b�Ç�g�^�S����@T�ZU�t��	8;���]͚z}���a'%kZOU�Zm���gΨU�ތ"��h�o޼�1�b�v�N�?y�Tm<�<l�0�#�����	z>� �g
{In�1������%�6���v�"�:|��Ȑ��۷����߮]������Oi���))?�?�M�"@άKY�.��Z&�H)I&S=�~�8��&IsS��x��ahӾ=jת�����#G"((�7�'ʑ%�H�b�:���J/�޽鷬y�p��[�DIt��G��p4,��0yՒH:~�Dؔ�A�vmq>"[|�E��C��m�vj�K��;(P!��[7.�0�c!��~��0�u����I��ܜ;w��)d��!��`1OYo��M�%�,�E�V�-L5W�Z���s���<��a岥q����e!�I8���r.�%��0}w��>SD$:l||��6Npvv��)F��f�1�d}U����؅�m-����<`L�	�$��w�4	P�|�M�:u
;v2���`Ꜽ��ƺ�ĉ�z�E��˗/ט�UWG[�n'�U��ʺ�T�nlv�l��݋����$���#SX���u�w����Y��Z=�}�i=)���իt�E�u�#G���U��P|Վ�ϟ�%K�� -Z�O�Ɖ��:y	G�?�1Ի^�*T2���h��������%�6���zL"x������E�t}�H��jK�pOI�1�I�l�χ��O������֜-N<��P�S��!��8��E,[�O�<AΜ9ѫgO��w��^�{w�F�p��B�o�fȗ1���#�x��_�_��|y�b���|9!l��-y�>}��͛�7o �|=jʔ��y�r��^o��!N�~e!�c���yc\)�\T�D��c��3,��ݸ.�6b�0��ɾ��Ɔ��%��1B��/�[�O�}llJ�4s�l��ǟ(R�ƺ��x��J����K0��oL\��!�A 9�3g���>�]��z�&M��J�*����������ȩ�Z�k�W��b�䀑5[Vtv���ް����A�P����k�˗÷�����+"�}��E����iӦ���̙3���#�K�F�>}�3�ǯ��!18!���E��M����I
��(�
/�OQ�z�������`�H���]����(�bia��
 {�l"�\�t	���y��6X����X�nN�8!��Tu�O�'phh(z�}V,�Ν�!r7�+nlv�l4�L������+W�B�&MԺ̜9�ȫ�+4��0�R�������Νz�դq\��/���v�D����^��+V��84�o�$pS{:�e�/��٣�]|�����)�%);u�H���~/!��e��>S�c�c	��ΝC�6m�L�W��BZ���bM��NI����_g,�`�'�p���ja��j`�W1���TO��+]%�W���o���7n�}��!����U�i~h0R��qdEU�Q~]���h�<Գv��?ӮM��Oj��s�٫�&]{7�^ONx���x��%6m�,B���
D����<�UNaһt�"�D�I�FD3�g3�/@�"��W��kظq#B��`谡���}�W��Skl۶;��������(Y�$�����[�O�<=<t��^�?}���������Ł����bN�pl��c�����m�*YӦLA�D��±j���۷�����W�1g�<\�t	y����	�Q��
��N�7	��	0&`�XN��K
���lkԐ4t����?`�������ի�j����(W1�޵s'�_��v�J��w��@���h�?X�P!q�11����]b�k�>�����ޣ�>%�ԫWٳg�^�~�r��I֣��$.h+�F�¶��ya���׮áaC����ͺ�F���ʗ���BB�R�v���N�~�(��C�P*�y��]DS�K�lI�"�������&���{�����D��ǏQ�j55�ӦM�?����Y�hŲl�r̝;W�NJ���NI�����uS'�S纳Չ#�p�I�6uX"R���#O��MQ�d)L�69�gK��u}��:L@'���)�y��غm��!������M��z�B��9�j��8������	O`�I����R�\\\���5L�G��(T�.Z��C����gb��3���$'t�:���3g�ׯ�0l�p�̑U�7d��`j7b�h��𛈈����׮b����C��;>ʗ+�4id��G>�����v�����r�Y�t)��nfX�q&��HqXN�%I�����B?�鷣����
	S�TI�D4}	R���S� <<\�I�p��?�v�T�r�V����X�h�"t��Ak���z��X�����N�KR��&�ܿO���Zb��*��/^*U˓;�u	��Boܨ1��zU�:�		ј/���K"��7�d���b�J�T�jq�1����:�K��p`�E�cVh����@``��/N�͓G�N�F��E�+��^��҄�/k���K�kb�6IvL"��Y�&����tHj䨑��g%�v�%)`}>#��s,�>�A�n�$�p�\v6:�XN$@��.+z�=�_ŒP��PΈkx��#�/�����/^h�V�cbb�ܩҦK??_5�YM�,�P�&�S���������	Қ�H�<u���L�m���~�ȑMv87.�s�u�б�7ph���AȘ�>~��;r8D�1p�H�z�U�VE�2eP�v-XX�������ݻ�q�Kcn�s�O��s��`L�	�8,'�$T���|��It��f��MiP�S��)&����j�*-V��ꡂ�cP^�fM�I
��<�ִZÇG@�N���5�~�zԳ�'���ݻ�ׯ��m]�����9K渺I�."���@z��A�-W6n>�!iii��=b�H�رC�Ʈ]���EڎUSi:QJ�~��%K�`���UH�X�j%�+�t���cB\�d;M��Ǐo�6V��b��(V�p�"ڷo/�mK�p&N���gB�R�|��U��޽��b��J���^�9�~a�M�^B`
�@�
���$��L��
6���.]Z�����N=�9U�t��k����F_'I�����z����s����`8q��Z���������u�@RHN�s��8�/����3̞=K��uvv��g-��|�y��e�,6O�<y�ӥK��z��0��F/�C��x�g�:�YO�F��?}"��Bn`��)�%ޫ�ߢ��/�ڵk�p>�߾cݺU�yc������u�&����9s&��`)��ɻ	��#���-���K����;�����۷c�ĉ���d)����h���11hܸ1HܪP��d{:x��q�kٳgÕ+W��o�F���5�n׮��1\�lY�����;w�͛6����q�R�Y??�ϐ^���h��5$=ȪU���k�"W�\ Ʈc\E�U�4
�L�d��j�קL��&�>��9V�Y-D:IJByC����(�r���5
�$�Ԭi�ҥ��w\�xQ�O�V4	���ή�����/�0~������Bt���Gl��*°*��|�L�2�̙3ȑo��� IDAT#��t���dӄ���(����	���/�린��y�H���~/1�D�f�c
�tϩY�&��T3?}��psu!��aШ���Lk�e08��F_'I�����z����s����`8q��Z���S�NzaX/L\�D$�L)�&L����Uİ�ñy�&=zmڶE�NA��R��GFE��Ct蝞�)���Z_`y�tX?w�ܘ9k�8�:v�X>�r�s�…c�ԩ(Q�fΜ)V�K������Ls��}�v��Sm���B=�rj�W�|������P�BEY�[����X��CC���-:���_�0~���M�:
��d��K��ɂ`y/�4�`L@��ɻ-*@�G�o/U�T��g�$�%���ui�e���+�a0�
W$�94pP0˗+'Bc���A�\9��g9 r������X�~]�c������EILiѢ��2kNG��N>�1c����i�'�\�'13<��e˪T_���R�2e@ᚿ}��Ǐ�yaSn?__�ְ�8��>bDb�*��$S%������8͗�<���I�Xޘ~����S�+��?M����Y��:���B6���d�!�7�{	�)C0�ko����0����ի�h4���E���o�w�ND�����^�XI���>WH�XN�Kφ'��������	�2C(��۷o��_�ġ8�C�E�dɂܹs	�G�L�s��@RHN�l��Y[�m�Ç���A��B�gRE�ȉ������C��=D*��
�t`���g��O�acc��}�
�����cǎ�<y�K�^�y��������Eg�G?#�P�T[s�c9|���W����'����!�Eu�~�`(xx���J����f�p�߷n�dɒ�:y2��/�U��C�@�$v4vv��ao޼��BO�;!�O��"��)���`L aXN���wPQ]�/E)�n������6TTb�J1bŎ
4��޻��{W� �{��D��M�~gfwq{�]��wNN�}3w�����߽��^Y�t���V�S}�8��qc�)uu�e�*���������.ֶ���|�dV��P�$c޸~�vu���>c�L���d8;9�j62�Yv-+�\�vm��̟7�V���WIC�O���Wd���Y6:�C�ȑ#:�%݁e��ʎ�~��9ԺUkܽwO�Ͼ���蘭�Tu��k���}ğ��%l]胁��Ӡ���ټ�J��
_m;}
�ٝS�Γ���~������	�_�RP&@���WX{�
ߍ�"�o	��o���.1�K��yU�K��t^U\$��Ԍ�8D�"�O$듦*@�*���z��ş^��Y��ܽ��\^�w	cƌ�(z���~<�J����dE44�3�l?�Ð�Ǚ>m:�����2������YY�~���ҥKZّoԭkW,^�$���*#AA��6m��r��}W�Q^����A�2�YV�ѣ�^&j���w��,��ҫ�/������XV?�Y�j5/E��(]��;�,ŤM����r�z����󵄭}0�f���0����WpwwW�O�*캹k�n����;��'��s�A��Im
�ޜS��'���M������T���a���X�v���<�~��I���e_��ˀix"�g$�(�#D�"@��sw.�*@�*�(?}���#�4��&&ƼD��=NJ+)ۻ�s�gl�E`@��R��0���?D���x���c�ҥ*������-DӦM�zaHv���3���#,,\-	KK,^��t�Ei;v��	����ϟ��Z�lY�x{ý��V�Y�Ǐ��ҥK��~��E���'NB����r�J,X�Pƾ���}}��X?~��?�����x����Y���3�&M��#�o��!�<y�Vqd�Q^_K��^�+~�??^K��d�i���r��8x���Y������ܩSg�����;��'%�r�A������pJJ
���hU�X�\ŶFa۱���� �A �0Y��gϰb�
<x�o7��d{J���K�E��&X�*��[��|E%ukFr])Z�hf3V�U���rcMҘD �	��h��C"@� D@B���s�T�V�E2��?
%��*@eE��y������_�����a`����d�`�p�B�`�VB�\d�=����
6��m���9��c����	���q��e�X٘L�jnW77�}�*�C���}��Q�]>��D�����
��F�\�r�\"7n܈cG�)��f�3������1�WՀ)�)���ţǏ��)R*V�H�R�2�u��
��Kƌ�����=X��µ���a�԰!:u숾�����R#��~�4vrr���6;s�4�V��Ʉ^��d�녾�ϯ�����@������Z�l%�_���dzV����	DGE�|��mڴ���q��c]0�)'`}}G�}��,���~�f}R��A@�ƍ���O�8������k��g���	�Ѻu�{�"��*�;�j����l���7ob�r�۰���k�[?�g���43O0��<;9G� D�|��;��<�|>~���w���<�z�
%������ŋ����k*d
�i���Fl��������������Q�LԨQY�ї�X9� !!�˕�7X�Z6����x��)޾ycc>�}��V"�>����S\d�?�Ν�>:��;<{���';J�*��)V<�2x���:u��+++���v���n����u��g���Z�֏>hZ�9q}��>ϳ���G����[�)SU�V����9�+���ܞ?w	h�3�BL�:�J�BϞ=���?����o�q18��s�8�'O �ptt�[�n+@�S�6����Ng�$+CF�:/$�@t!`����Bm� D�"�W��C�^g����'���,�ѣG�]�v���o��{�^��ŋQ�By�6�r���ϣY�f2.v��W�\Up{ժ�pvv���oD��,��,���z"�INJN�nlml�믿*��ٿo�^��d%m�v�
�E�Wn�}�W�y���&Өa#89;�U�a��Y3y����D��`�HMK��Çyu�wo��J);vB�z��`k�HLH��+�QIJ��cmm�'*d��'�U���]�����ƭ�7Q�Z5���	�:/$�@t!`����Bm��z��Y�Q�D�"�;��!X�)�D Oشq�L��}l֬)�����-e���^�ׯ_CXX6GlV(���li����<�&�>�~���G��߿*��?�]�V�++���f�5���D��|I����}UNk�Y�K�.œ'O��?�~������m#X���+�)�`an���x�
|��v�v��U��/^�=P�v늖v-�
&�R�%J��Bs��ͱn�Z<��1/�\�dI\�zŋ��K�^�=;�\��p��Yܿ��W�Bůj~(��I �0�0`n�[!0��~�z�j�Z�IV�,gਨ(�������I���ժ=5"y���o�j�?6&�܎g��Q�xq�jՊW*12��$�|�?߳������u�V]M��>55�n�Jsl<�/91���J:��ZY���س�t"@�0$��!ؐ�G��@`�96���˗/eFf%�W(�%J�,��g�`4��1ògjժ���o���d�jՒgis0�x֬Y�4�6D��|G���ݔ}�k#��{����kW�s*�ܵ��C׮]�2W�^
�����}���?�ֻwo4iܘ�����>��R�Jpou�]����c.�2�}��Q�F���32�ج}�:u�u�x��fϙ77W4k*[a䫜4
*�	dU�7իWǐ�CbX�nϢW�P���IVF(g`�p�����)��U���lS�_ɋ��\���HL�j����UǛ�v�=k67n��^^		F�H89;i�yTeÆ
�VvQuvrSt��s|]�������K��2�k�H_��z��SH"@
��!�@�"
��X�~=f͚��p�Mё#Gd�Nn�3g��7�,��q&**ߗ��M�46 y�}?��)(�i#KX���L�=y�$�`dmZz���ajj"�,55
����~�AA��w�����o޾A�z�yv0A�	����ΟCD�f̜1���k�2};;�S�/�����vY�?���5ũ?Y�Y��?�o���W,�Ç�x��1c����V����uv�`e�rF޳{~�Vs�Tg�1�:���������~�j���2���kkH�H�Q� `���Ξ=W�\Ŭٳ��^���)SШQC<iii		��S�����Z�ׯ/7ɲ_K�,7W7���Æ
C���2�a%c���",<111HNJ�[M��P��y1Y�,gU���
��O�6�j��U%�a�b655��ׯ1w�\^��=��u�(�X:�ũ���/������={� 1!��l��Y$�Ԯ}���u)CK]ט
 �0�DVz�,D
�"@B���sH6Ȭ�Q"�;���ekp�-0f�l������C���nksL�0^^^�4�6D��|I����}uNk#�=|k֬V��o߽Ì3ЩcGT�R�֭G߾(/��W���{��
~spʔ�(]�4?�n V����z�ܩ?��[�~�Y�S��2�KgK�'��[�y>��
�,0&�1��@g%˙�>#��G�{���X�x�NHV�+g`Q�_&%��4��-Up3+��F�^�e��
��F�M۶:l|7��l�2�<q"�TOd^�e�۶Ű�C���ҬͤɼLg��|��Y�l����
��Ϳ1c�,�y�.�.
���3�a�5.�|cT�!C�����
����BS�Y۹c'�<c����*��2��&�8p �l��E��C%,_w��ـ�<p#�F"=-��qus�S�n:ّwPe�j�nٲ�?D�9��T�3g�D�5x�4�1�v��+L4>|8h�]S�!Sz�V�c/[��ᬂEFF�r�JX��>y�4Ӧ�ĝ�w�˥�q>6:�' �W#!X%�س��VV6� b�d`v��ӷ/���X̘�o+�!�[
�5��'D�d������ɡ�D ���X�`^�z��w�|S��AҺ��{��4P4f�NY���jm��!��݉Ј�"��	�C~����wM��G�b�J��$,K�HѢ�|��߸�}]�z
,Z���L�ҥ��֭[��3��t�ϰ�ѣ�U��7�c��}���t���˄^f�㧏�ر#ʖ-��$|J�7l��	m`���iS�)X�v-����/�����q��ۗot]dGV7��ѣ���v�}�%Z�D�2T�%!D>&���;���f0� 4V)7�<�
{��ֶ\���3��ރC��`�F�L�8�Ư�{��áÇ��lm[a�~p��KW�bݺu	� ϡhۦ5�v톍�`�b�pa�"��U狛�;�RS��l���G���n�m��X�nmf�/�2��7P�!-�zzz���w�w;����Œ�Kt�#��=�%�7r�H���?�����Yu1��N��2i�����Ɩ��2������תT�`��x�L@�Z5���[��W2�?�6o?$��ݝ���S,��[Y���B�����åWOlټ�n���Ed+&贰�1 D���C0�2"�`%y:��[���6��)Ae�u���o���o����}U4�=���[�n+���`„	�޽�W3C�PG��h}�&M0󍉯'N��?���]-Z�`kc�_������7o����J�D�N�дIS�z˖���_�
Q�fM����U0��ޱs� NKKGŊx�N�Z�u���0k�L��VM�4�__����ɓ���9�?����%J�������`��������L��E�0�rKCRp:�8.^>��C��E!���m�%��11Qhnm�'����)��?áSg�<q���C"�<	s��HJICǎ�p��QX[����03+�3��m�s�۴á��y���>��$�ËP^p�7FՅ8t�0�~�Je��@��JW���"<<LF�ec�g�J��ؑ����	�Ɏ:�W>Nm�Q&|����S�2�Y?	6�*X"�J�"m��պ�3k,]��up��;aii�������^F����a#G�z��?nL�5Qr�S.��X�1�0CBB"�9;���C��$=ؒ�� D 0����� ����X.v���|���$/Q�ʕC��MP���#�Ν���2+�dai�K����S���`�! D ���|>���}m`IX�?�Y��������IJϳ~l]�m�͔���I�����FFHJN�������t]	Rf��;���d�R�\#X��3K?���wq��$�$����Qaa�ptLL@bR
Z��G��lif���t�3N?�RNLNE�Ύ8q���lq��J�(s���Ln��G�������@�V�2j�@��7F���#������;wߣ�	��ٰl`�QZ�By�Z�J'�mI�<�9���+}�jY;�e�u<'mg���x��%6lB�"Ed�Q�${�e��r������V�S�p��eש���-\#qA8q�{�_����9L0]�� D {�;���M�&D�"@� D@��Z��&D�@0��+D���i��ix�6��BGG{�ܽuj5���QȨ"�7���M�Y`ߡf͞��~����p�o@T�).ڲ��ݝ�a��]8z4���2w�	��3ʋ�)�{�^=z��kame��5%���b��ǣ?��uE�Ν��M�H�G�E|cT��`�$�'vCx����@^�Ĺ{w������[xe�aÆ�m���e��z��Qvw��ϟ�~��"#��w.{X��9hP�>&�>A';eʖ�	GqX��d��A��P�R%L�6�g�Ξ=[m̋/��s�x��7�.��FV����f{���[�ndž��q!F$o

C���Lw��=��<�������yq{����-�^=Ŷ-[q�u,]��J@�u�"@�G���sH���Po"@� D�"@� @���	�#@���ķ�~�g�9-�#��)|J���6�47G*p��	X����Ul��Ww�8��3�X�l9��1b�,_����bǨѣ��燲�Kc��ɨW�.��\j��1�F��ϗ�q:u�TԫW����0��lp.6����� 1)�\ݰ���O��z^}œ�o�jbw1��l�[:/^�m�r��	̶W	
©S� 0�u�������F�۰�0�?p�WY�~��#p�l4��V�N8e˕�Ɏ�F��*9��XY���T�����ɓ`�͵j����*�W�$C��g�g�����7������{�⳴�nNݰ9b��~
s'Vr�<�Ǵ�3q��]�ruEHH0bϜ�BoS+[�_B��+"V|
���A?'���
���	�M��0`� ����F���9c:�����*��cD� D@��!�� D�"@� '@���_!��?��_΀)b��B�׉8y���P5���Rf�2����-/-Ʉ3c��g�g"1��?��$�x	�U�%J���}���m�D�����o�7F�~��7���$��@��%���} Q&/ۗ�L�Yl�CXp@f	h��$�Wb\��J`Vޞ�μ��PK"@�PN���sH��G� D�"@���	�lp�4�WH�`�Oj��&m���䴏HJ�����kgW5/���-�%�Ycy�C,l4���pa#S%��.�3{�����mެ IDAT*�O���W�āCG����*�+���
�ץL9�/�ߢ�o�~��W�����`„	x��5V�Z�3��
�} �d��-`d��?T¤��a�E��15��}$�I��jI� Z0�����jB� D�"@�@���=~Ի` X���`	.bd��gp��5��[���(������jO,��ܤ|F����H���X"�(����Ԫ 0�т�6/�~��}���G073C�F�з__XZZj�8X��f[��:���Ԓ"@
:��!��/0��"@� D���s2
�� X�S�u	��+�.Nj3�DD� 3��8U�L5�W!+��K��.
|c�  ,�1��� �^�2�!D���G���sH.xK�"&D�"@� 9N��GN~H�$�Wx��]pr��`��R#"�K|c4���as���]}����wڎK� D@?�;�`�LY!D�"@� D@
�iy�	��;3M=��D�>��Cjj��0M�MP�d	�+WN�К��y"��|c4�ã�s���K:K�.);�TW(���P����#{D�"������y
� D�"@� �$@p6R�I�`�O{~��O�,�|B��7F5Q����?��ٳx/^�Z�BϞ=ad$���RΟ�٣��A�nۚ��HF4Tƪ&�R�%ٟ����c�����I�ͭl�!@ .�F���������Y�U�7fOY{���
��'OӖ�b��
��ejC��>	�w	���,�E� D�"@��R$�� � Xwf�z����'y���o�����v�=k67n��^^		F�H89;e;�~Æ
�Vv�Xm�H��쎕�!`��j�׬"�
�b���X�r%|}7��\��epV��!��6��bؘq�m�R�<�ϭ*����-�\L������(�Y�r=�\l�HW��!��KW�a͚��w�>�B!j֨�Ç�����ʚ�>D�m	�w	��N�#D�"@� D �n߾���+���<�6�#(h�\�n]=z$�OA^�����=c
�蓀�XYs�sN�={6�^��Y�g�V�Zx��&O��F�b��HKKCHHN�:�����١_���_w7w^����
A��033ða�P�~=�g憆�",<111HNJ���5y��.vT	��0����w�)`LLLp�
̘1}=sst�愝;v�d���<i2ʖ+��)����lh����ֶ�%+��J�L���O֤��-��D�LX�O,4N�4��ۡm��"���%~H�2v�	���T�+f�N�$g5CV�C%d�(�m���̸5}���Ԅ��΃$��sWSk;�Ĝe6hf��1�3_����1gdF`x�J3������5�g�}~W�\���v�LjM�H��z����%E"K����_p��]����J�F���Ѭys���2"@� D�������,�RRR���("�3:u�3���o��������!�}ɮ$g� �'9K 7�!C�����
����llo�;vb�062�ڵkѵkW����2��&�8p �+�E����x�bPZ0
��1�k$��ҹW778u릓U3#/�Ɯ���e�0q�D4l�a�aط|7�b��܌�`O�}ř/L�3vT���M�,Y�n�@$U
�#�PT�Y�����[̛���P�|L��ԫ��O�2%K�Ƙ�#�t�
��3g�+�̲C�\��H��mʈ��I��9۷n���Dൃ�����C�B�1���Z��6U�Ʌa+[�k��+WƵk�Ѩ�O�4a�S��kf��[BbV�Y�ӧ���˗`ѲE��Ǝ��65��>h�R��2�YcԨ^�ƎE�?�s�8؃!�!�V�
6m��碢�b�z_���?���s�x���7�1o�<��Ǥ�Q�^��2q%�*�\��-�1-/l3���Y�=���{o��gN�FDx6�����w�F���_��I��A��ܽw7�4����…X�d	����!.�!B�"��ݻ7F���%K0B2M� D�"@� �	�e�)ί�@n
�nn�HKM��-L4TLA1|^�x�����_�~(]�֭[�)�2�P!S�	�a&�CZ����Ļ��x�0;<����%K��dG՜����\�f®�� x{{�|�����O(��1��������O��M*��	~ͭ[�|��/��bAr�䩰k�
mڴE\\V�\��aA��O�p�:vr�����E,3����sR63`��KW�F�����҃�cBmsk;�WWD����u�c{���O֯��6n���r�;����x�-3�v��yHI�/�Q(S�D&7���9�.�s6�ǰ}����`m�2�kWo`��)ط{G��,�>��F_�Y��{�~:vƂ�P���06eԲ�����îeK�i����j�
����-;��A�in̈́hIn.k�^	#���Kf�K@��f^ښ	��Lg�k�1;_J=˕��^�l ��4���g��E�
���V,G����Aq��D��ܟ-&�֨QC�#O�>�}
�>cg?0�͛�u��k�qŊ�z�jXY[i݇"@� D�"@�PF�`ZD �Mx��ax���`i���kvuq���)���2b�EX��;�3�JF��dG����$����,�����?>�oo4k�Lf<vO:&u~j\U�J@D�i{����c�)c#�E�毙~{�/�5+W�@�f�e���)--�cB"\���b��Ln.�Z����HX��"��]+�F��畖��ɄӨ�3���Ct�ص��XQIk����ױ��<C�t���7��-ɔ=~����"=��k��bf�u	�V���� 55���b�|���'"������D�>r޼}��M��m�����f&����#��9���FF������ԕ�T��UXU	oI,<;\�K�i��g�Xo�X��\]yb{(��͛X�l�Hpι*�?6Ԁ�@��ܟd}����n�+v�/
��d���9��̌�b��Z�ԁ"@� D�"@���@~�cb�j5���Yf��P�q�[:j5&5"�$���˸H*��me6w���ruu�t0��e���P�V��I�������|]SSS��c�P�޻*�<z��}�þ�=bc��LVcc#���4�xÆ
P�Vk@,h�wb��	s�~�Ν;an&b �<e�f�v�ڋ���G���
B��^�R����ߋ�3jd��2B��p+%g�,�'��޳�=h3Lq?�v��>�4�N��M���gƲ�1b1�k��=f,lll����vm��
�J2o��.�_�p��-�*�i����w�}�.رs,�D���{���{�Lj���H��+.cݪ�=N����x�_&Ʒnc�S�"�f˗���)�%�s��iٺ-<�փ�I���ّ�@��EI��;���Tg��Au8t�W��Ǝ�%s�z�)SQg�P�XѬ��~D�"@� D�"P�	�Wx۶m������GV�T��lWvc��};?~a��X�!�0�������&��O
�5j�q��	8w��^ؼyv��'OxHKO�{��^��=4
����3/={,2��aei˕+��s�A������)[F�<��Ǐ�Ǐ�}��8h �+i�bJ�Hdž�x�ߑ#Gdƫ��J������ժT�d��8e�t+^��q�"f2��oy	h���x�"���l�R�
����_?f�;nS��Kjгg/�^��V,��6�2?%��U	�,��N�b�̙hP��lI�,���4F��2���_��5kbӦ���h%K��!p��uL��w=��s�<u&��(�����s$X�̓�� g��P�n�]�t�����?g��g�e%�U
�̈��OR�0ͭ�xYv�@��8�6��R	h�]��0 *	����C_"h�G����=(('NT9���1�V��O	���h�eǨQ^`?N� D�"@� D�"��O���߷=z��,�J)(f���E�D�Y�P&GF�2 �4�X�R���҉m�>H�"vWj\�s�*]�yNu95�Z��h�]���-����S��}۶\f{�jwA�A8u�F.b���!�I��sXh�`Y��X�~��#p�l4��P�N�Go�re5
��v�7�+]��?��[6o�ܹsQ�Fuޗ�526�B����xF�I�Q�d	���j�RG��ƀ ���!)!�Ҽ����{,^��ΝLJ�g^r�g�DT�^�����&ܿw����B���O8����ȓ\L�7{Ɨ���+.�lee�9^���KC���e$�:�����8t�-^�O?��I�[�t�V�^����4�g�&$&a��u8u�4^�z%å��
Ϥ'ς�����Q�X�ii�0h�-Y��Q|jX��J�'��˲�+U�Ç
���hk�7�>b�%�9z�9K�V:�.������X�˗/�16l�Q^^��ҷ��(�R�5]���$��p��5ޣ~���7�W13�\�):O�����2ˆ�!�fy�\���ُC��ѣ�J#���o?a�!Ɏs��a��ax��
�V��3g��2�"@� D�"@�+��)!��+3�E�g�0��͊2�����̝?�_�F�~��z�Z����Ǐ�h�"<|�?T�&�Gɒ%1b��eb$�e����M�6���)�ޠ}������1`�'{���d��c�h�S�B�{�C��k�C��h�ҥ����E.&2�L2���J�Θ9
����c�Ex�-���a!!8|`?������
�s[Ά�y�kF�II��:e*,,-0k֬L_�))��U������خ8�SdF�����=z4ԫ#+��{�E�~J��`�p/���M7�,�8TU�碆��)iP�������̃��z��/�(�AU��.Jm����#D�d�	��%�������x�"RS�xIe�J�?��~*|)+�΃'�>���c|O��g�x��-,-,Q�L4l��l�`ee�n���S�Sp��A����}�޽�-J�.��u�E�m���
+��g�			X�l�O�����(�1Tvܸq%J��RO"@� D�"@�(�����O��R�EYX��06��O��#nj�]�Vp��{��
x	h4m�]�vŞ=�q��y,\���-���-�lmp��!��6l�Pt����Q8}�~�8�;tD�>}�3�]�
?���r�������=���`Y��Ú5kС}{޷{wg\�v�����{�������]��[6�Ա�$�O.	����(������1v�8�{����z��Oֈ�~�]D �����A�"@��"�soUL�:
7n�ف��A�j�=z�K�,��T2��7)�U�v-�3?���V��'�����`�B^2E�Q�TI����J�/������S&O��K����9s�(u��_�F
$%'+�?u�dfY�`P#"@� D�"@� b�^NO�޵k����eaR���ܪ�;u�����Y!$%%���]p��	~�a��-�07Cbb"z��b�޽�v�:����h�B~Ϡ�}[;����b��7�zx��롵};<p�g�,^��p�x$���H�Dn��������)�prvƁ`߶
؏…#-C�v�od$;c��037Ûw���'#��\?�$��U0C'�雳8G�k��6�"P�	��{+�"(�f��=��FBB�N�9u��K YX����>|8��ۯ��ҥK�,]{{{��P�3��I_[[�����o޼U����Q�f
�b��D�"@� D�"@��A�2'��ƙ�Ny9h���t��g�رf�M�ޔ]�9q�e�F����œ�.�nؽg_0�
���B�C�i����<� ",7l��
�Y&�H�ŗ�|�I��$��"'%F�_���aߦ
vy;q�0�;w�ݻvpa��pvr"��~�I.�Oa"@�(HνY6���#�N���lZ�@hh(
.����ٳ�n�,�?r�0~��#�k�صu��۰�o���H ��w�����"@� D�"@�@�#���t,6�'Oʖ�>����{�����K!8(���!N}��	!����ѱsgth��v��_?.܎?M�6�/]~����]�…x?&o��>���_����Ơ����Q�y�xf�.���=/���.��ɓ'�r�J%p[�<x�`�ܥ�w耰����P	�q��\@'��&D�"P��{���뇝;v@(���JiP����V�RZ���ѣ�߯�ƒϚ"vssŢE���|��7Fz��)[�L����o����'O�(d���˗/����5�$}~Ȑ�ػw�B�F�a�>�u�Mm� D�"@� D���pz:>^��{W����[���x�&]��
�F*`�ʵ�X�h1޾{��}��WĿ���y�����ǨV�*&���{��#1)	��@``���Ǐ��oBB�Q�̌�i#��3��k�ܶ�=�?���C�"0(�K�Ƅ�P�n]^��8X�2�۶��/�]¢ŋ������EHP N9L%��G�`�KJkZ9�ϭ��Qe���ȏ+/�񩲫j��;��u!_zZ�xڰ�4O��-�[S���M��< D �	�����KLLB���?}�D+S�S`ck����
�*�>}�#���>}™�3X�b%�{�B�=˄=t�Pf���Axx8||�+��3g6��N��Ezz��e�ڵ�&����F�
���#v��m߶�F�Vڅ����KsԖ"@� D�"@�@&�|/���R��u\>y)h7r`ju%��s��+ۦR�~ _^FCx	h�0z
���@�˗��w�P�DI<t{w�B��/Bm
Z�_���%��2���U�\\]P�J��E,`��%�a١%���V68
�/v�(�}��r��Y3�����|(C}쥸Jƒ�Bf9>����A.�̸�����vT͸�v�χ��<i�Z�:��l5Ο�����$�U-	�n��"�D�D$��C]�~=f͚�L����Z�j)�{��5�u�*�suu��ŋeޟ?o>V�^��66&�W=�+ܹsׯ_������]��p�z�rAJJ�B�ڵk����011���#D�"@� D�" C ��L��Zd$�oيQ˖���qf�AA�`U�Dr�&�װ�߬�m[���pB�f�Z�<���$|�C%���B��ur9-��&z'��۶">>�.�,Ѣr��cݰa"�E����!�Y�@(�r��`��P�*66ͬmq.&�|2���'7��H����K���)��ءC{x�cXY� C �|\���,�E&b3�---P�zu���B�6�����=]3O���Q

���wP��%�6i��#��\�2����������{�l���F�� N��FpHn�E�A�&�1b��V<�<���1��.�|l�h͜�!�a�r�*���Q�^=�6U�|�e_y�6�9��V�|J�?��;D̖�Xd�hM�o�qcajj�6v6c���T��Я~��ͭm0r�~s%�F`��5����p��y`��|f� D@�sm�Cutt���W�ٲe3lmmUy��)���+�/_����d��[�t��%���p�X����>b�f���䄷��)4gһw�B�
�1Em� D��X44 IDAT"@� D�(%��`�0������cTo�`J��yI��gB)����E�Х?-���@^�Q���D�f͛��{�7m
��{������5ka���žt�0�˪�!&&�o�fmm�A��x����Z�X�%�2���mq>F$�I>cM�m#%Kgz�6Ju�fH
���0�;ӧN�>L�>����-긟V�Z���L�LLLƍ�7�=΁�}���Z�Lf��R���b#G����+6l�ta�n݆3g��i����q��9���'Nc�…���fM��hQ�/���c)Fx����+5�	Bl��|9��M~��Z��3�Y��mF��+�p�<.Ĝ�k�k�X����
�x'N��ƍ����5���cc�4��&f���s�1u�4nc���fo7催���a���4y�֮�ׯ^aӦM�<u2�Z�D�*��m���G�B�inS��A&���RH�"� 8�g6�"�۷�
ΐ+UT�j�e��`_�u��ƧO	
ͮ^��ΑGA�����ce�m�lѵk7888�d�Z��n�����Ctw�5��"���7mLQ"@� D�"@� *	|���6�� �٩�&�r$�!��`v�����-�M�6b���\�e���}�Y3g�v�:�9sYZ�
��1�k$��ұv�Z.�99u�Nf�D(�άeY�L��
__65��je��`�<5SH�Ά����zujr��n��9D����T�������\���+�7o�c޼������c��?Р^n2!1	�׬ũ�g���K.jʸ���	������N�{oL��[|l���D�^=���N6sYk9�5����Ύ�:��'�o��س_Jn�m^�~�����tqt��Y�|=d��@��عc6���O$8���س2O��Y{��}0e�$ԭ#�ry��m�&�B���g~:}�z��y�̺���̺%��S�g��."���X�i�e�BD}� �"@���jo7�"h��8t���MMMP�hQ���{�NA<f����)���
[[;<y�~_bc##��i�nݜ�ԭ
�V�Cvc�ܿ����v�ӧϔ64p �Ϙ���'D�"@� D�"��@���={����Ec|�	�Za�F��@^���3���ccDDD�d�����abj���0~NZ�������y���K�*V�S95`��p��1g�b�ؾ]����bX$��_gCne���퇥�)ƍ��YsХ��8y����0�BNIMC��8y2�&�@˖-ѦMk^q�ʕe�Ι;))��5
eK�Ү��tJ�x���V�ӧO�:e��;`��}:��`���xrζ-[�������{*}WQ})l�lZ/[�}�1e�f���X@����޿y`̸q������mf	h&��ۼ�8��w�c�����(�H�\�T)$&&�l��hݺ5��¢��;��07/�q��1s�,�ܥ�Gߤ@I�n�N:8tƮ����Lּ��v�څɓ�p��_g��%��:��|r�#7�(`H�	Ϯz��Q���O��ڵM�6��{����SY)ee�-[�����M�ٍ]]�Ϟ=�{���j��1�y��!�D�"@� D���H �	��Yڶm޿dz��RӔN��/�r���=�����K /	����`OO�(Y����z�*���,����R�����;�RSe��!8D$kuh�O�8K3S��ic��ѧ�Y���-S2WnW�XQXH��������;��>@�������F���v���a(U���LSup@rJfϝ�Ǐc��(Z�m�nm�cp�����7������[�nEl�Y�oX�v\	���T̙;���իW�x�Z�S�I��IJ�y�2m:�+�q��
V:�BLT�43v���x!��',�?���d˗�f�K�=}�������Ο-#3	�)Y��
l��usk[��Da�Yܯ�3���3�5q��CE�� �L��\��A��ۇ����=e0�eՎ�0�O�//-�*�5���
���н�3=z��I�����B��"@� D�"@��>�WX�ؕ�XiߙZ�<G /	��ΝÒ�K�k^^^:t߯t�ܹ���<!��`�y�s����i�8�����2����1b��Ʀ%�Ϝ������6m�p!�	��P���*/�|	���p�,}��u,]����Щ/Q\��Tf?c&H:dU?�'�n����Y!.>�ʕ��&>&;��³��Z��0���gNS+�8��/&N��:��`��yϜpsk&��_�Y��H��s�lp��s3�?%�K�."?U	���mX�nNN�<z�r%�o���ٚJ@��A��Y�ƙs+Y�V�v8'޷�
/*iNp�. ԋ�<I��ܟ�슠��gѳgO��J�t��)�������Hg��i8-Z��	��ؕ
���K8wwƃ�zԪU+�Paя%:� D�"@� D���/�� y�@^�_�~��s���a����oѯ_Q���Ÿr�2�l݊�ϟs�����~��"#���?1|�p�+W���A���1�	Y�X��3��ʆgL�R����_{a��!hak���[�a�z\��	�b��ꖀÅ��´)Sx�i3f�E���֋���4foh�W��z>6
��ɸy�6/Y��}���S����xB����Xf��7;�%�<��|�5jڵi)��,��/]��W�E�…E��Fزubbb4f�;t��o��Q^�oӊg�JW�V�SE	h		+&���%��0��!�U�&Ϭ
ŝ������̟���ة!��������gX�x�CB�ׅ��:u*�1}�4�ao7�e��k���(�a{.׮Uo޼A�nN�g����\�2%�33��Y�<�\��"@
"�sֳ+�>��v-[*ҴI�����>�J��؟�Hݿ����~��:5j�}��ʜ�n��c�/����q��]�nXYY!44��f�D�"@� D�"@t!��`�ޢB:�0�Qu�%%�Y��/�z��jի�n'O�DpHߛ�_~���9����J�Gmh�8��_�~��#p�l4��P�N8e˕�I��j��,�S*���X��,��^w��i,X��ii`{/Y�H�_,�^�z�V����z�J(���i\�>y��i��>>�011�eDY�<�T(��W�8���I�-�Q�z5���v�mxo�}Ē%K{�<>|x�ߓd��{��׬��S����k~N����R~2��O���H���`�"�+'����V���SHLb{���j��B�Lt�	�8q<m�ګ�)/��}�-�Rf�8s~���s��-��͚c��([�$�j`��%��e˖�M�6t(�+��|M,�;��D;��SS#���̿]��"$,�g���wps酮]��9b�X��u��K���ta%D��5��#���z�<>}�$�a̖?�D�Ǐi.S,~j��"}�/W�?Vجp��ӥ��71e�T���*tcO�=xp_�l�.e��ңǯ�u�R���e�fXZZ��%D�"@� D�"����D��@�!`��y'P-<QU�Y�}��[��(ٻURX:�t�p/���M7R��)�t����Kf��;'���{[R�vfF���teqH�ge<i_�ca紊OlD����pe���I%OM%�U�i^�Ҭ3㖚�:����'��y��J��S�?%�Xz}�1d^�]���3IM� �%`��9$k3AB�<��X�	������ޏ�o�l[ss^�E�=z�mۦП=9�`�|�_r�X	�/^�ɩ�Fo׭]��U��S��*ۦ�����#�߸��FA��C�l�w���'��]��ԯ���a�֭(V���� D�"@� D��� 8+Ԩ�E�1���emhe� �$���גQ�4��5y'��jj��k�TٓMV���M1��C[���#�Sպ���i=�ϑ�u&�#�� ��V��b}i�?:O��-��C��kme���W�u�fM���l�p�|�}еkW�;F���СCd�N��*U���a{�߰7n��d���Ѿ}{��񝝜�=z4h�����;N�:%s�T���v�B�����'����/_Q黣cg�,���530k�L�X�uK͈ D�"@� D��-k{C_�� /T��1/��4	��+o_UI;m����t�4�S�&AG�Oጵ��_ՅB[��+���7F�H� D��\#`��9$k9���ވ�ج��������y��Gl�9�,YB���,`I��u�j�*��9Ϟ>U��e%����`em��GBB�ٷS�Yfm�V�P�N�7CRR<��[�(��ܩ�����n���r
2�ݽ{W!�ZWԞ"@� D�"@
��*GEEi5Yff�HNN����l{5�cYCI�M�o�R�jJ�����?Ֆ��֎�y=Q��dlI�2�K�'�˰jW�]%b�V�FU�2UaO�m���ҵږ6�Oz�U�榮��Bҥ
�\a݈��f%S"V�x�l��ƨV,jD� D�C0�������o�������Ab���2퓒���䄫J�l�5\�h�ڵ�kז�2n�8����vY;V��Ʀ�B���ޯ_9rDWԶ%Xo(� D�"@� D�@ȯpDD\]]��+�m@3+��F+�95s��DZc�(Q�8�ǎA��-�XL�ۻ�fϚ�����w�a�xp����"ƍ���s����b�R;͚5�cܹ{�}�u&
�cE�7�/�Bq&�B��D����b�~�o,X�=B�
0|�P�n%ƕť���$j��ߋ�9�U�W��ӧ����0r�Pش�}��5mne���hܺ�7,���U+[�<%�J۹s�>�͛�Ǐ�QÆ�1}�+��g��q��MF�=~u���8�f�z_�q��q�J�T�nZ�n�~�
Y�>��DH��3L�� D��B��3�ӧM����V*Tqqq
Y���s���q��%���7�ֵ+/Yss3�S��.a̘1�{�^�����f�R�7;����)�ND�"@� D�"�g�U޳{~�V4�	�L4mjm�S&�Ige�!!!�<<p��
�=��cF�?��IS�2�/Ĝ�z��ýwoth�Q��X�z
v�؆fֶ8�`�i~��ٹc�k�6}q�	�bqU�q�'"1y�$4��E��q���K�֭w	S�N�������X����s#�ʚ���u���g�D��~¥˗0}�t8�7��d%~����'#�:��:*���}��S78�o_�
H���b�R�z��Ɗ�+Q�l)��П�[;;zŊ�+T��ª�
��R�.�9+�/�g��Z}�� D�"@A���s(X�IKO�����p��,--�x�b�����b���ش)�?�ʃ�e������U����|}����]#�Æ
���e?%=�;	�ZM5"D�"@� D�ȯpv3�E�-F��
�(]��O�����Ko̚95�Vʤ/��6�V�1v̘L8�sL��߼���;܏��v3f��}fK[;����8e%���l��l@��{��5�W��œ��x���3## #8�u�7 4$���I..��2>
��۳d����x.�޹{ժT����Q�r%��{`�����^���+�#$87o������+xz���˹`�3��3$$P%���ƴ��e�0�U�v8z�
����g�5;�oUʓ����	�7��ea�׭Oܹ{F����3g��Y��������uk��݃'ȯ�_��9B�n&Ĭ|�
|cT�K={�Tzz붭Y�${}4��u���jEyU�I��W(��jOjq?���Z���&
��fE��Y}�A��5 D���Cp�ѣG�b�J�,^V*�=m9�kʕ/��r||<6n܈cG�)��511F�&M���eP�g�� --
��e�c��">��BS�Oq������諤AVb'Xk�Ԑ"@� D�"@H ����g��
�<	����`[6={t��p��a����]��ӧ"�BQ�\YL�4	������1��_0�V���@*7��YsP�fM��Ճ��sy�ou��ҫ#W)1g��E��j�6�2�L���k��LQ�e��*]�V�D�j���uvXƫ�?�Q����v�68{�,�n���5�p��C�����'/V�֮F�jU�9x�ڷE�_�`ǎ�X�jufƴh�/~V�V�g6+��9x8�ڷ���`������|�/v����H�pk{T�V�����.��5���nk[\���=�7A��˓�`׺���Y7?֫�6�Q�Z5�5kT�GV�3�Uw�����
6 �X$.�K����8+ʴ� ���gX�x1�]�KK�M��5�LMx�q��@�Ŋ����C�xr�jZ0t��?*�w�:V�Y����C(�f�>|8~j�#>��a�e8v�8?�о=�Ǎ���1���	�������{��(�����;�,b��M�`�(W�4.+o���h�@��F$��III�Y)�s�/"44W�\��ԯW��Y��*�,$�3K�؀�kd�"@�1��!8k��s~��/�T�\9Ԫ]&&��`u=^�~��O��훷061����`ii��)��ϟ��/�ëW�Q��)�]�z
�GL�x�3�,�@݈ D�"@� D��D�k���˶��X�"��?ˬ.�I>yE-̐���Ν���GѲu{2�NN8t� �ܾ�g���������%M�5���MTPi*�X����w6��Ql���K� ���%�)&Qc��c��wg��ٙ�EAE�>�Fv��{��{��s/^��]�@ݺ�t����Dz��g����?���C���?맋��H��������z�f�Ć�`0�HW�WbB�N {�	�ܵqGb�n�*E�X1����JS��6�m'd<~
2�9�8������	�ڵC\l,ώ^�:m�q�XZ��G�wp���v�]���J<����z�0��Em�1{����͡�\V�?p�:�n�uj�۷�$���8S&������p�A�(V���bֆ	�C�5���֡��߰����	�����\�駟���u����Q�By�gh�����nݻaϞ=x��!�FG��͍s5*"k���L����ye�1h�0XYY��͍�aa������G��o�?�׫���ݵ/t(}�Ɠ��!��p��s8���oR�sqեSW�=�[��=;v+W������ԴS�1c&��?clm���鎄��Y�>��h֬9J��Е�5z��=��'�"3+���t7�G��]1j�l�+pp�.$&���t}��dc��
OO4��cdff"��Ql��_G������_d��o*jL� ��ߙ�&G� D�"@� D��<$�6�O͚5P�BEN꯿n�_~��ii48!1��S�.��?��=ݱ"0U+��°�KG$&�Ʀ5?GV�u��K��ŢH���FG����Ҏ�+
�J���i�s��u��\�1���T���ڋ�j�&���[wP���x���Ѿ};�ꗃs[$��~�Tg�޽%-��"V+�:"66Ek���s89;�����w�{���p�89�����L�KLL0�/�~�,�/}�#�͛�-a�uB���.r���yg?K�֎m�w��*n����=�xu<y�H��=���	��i��ԩS��;�|�UCi IDATܿ��g�B�
0k�?�-]���6����9K&���2��F��eڳ���e&�܏bEy��_��ؾ-Z/S��Ͽ`̘q���S%�
Ɠ��~w'MFhX8:u���� <�z���Ǐ#**7�w�<Ӽa�z|��X��/���+\�9q�sʥ畳{��=x�;�u�2߽���۴!F/�^h��Y�?1Y_ϳ�;w�#>>;w�@ĖPU;#…��"q���רk"@���H�ǓG�"@� D�"@� o��.'%i�25j���{4�w�Ο��o<�cǍG��_`��]H�O�4]�|%ʕ+�^�z��<�KC��uXY�!=��j�¥�_��u�wv�x������#m+�"NJ3;���?��k�ԕ�f����rs�@������}��c��=ؼy��_LXcg$K�gâ�)�g��DԯW��x!��>|A���٧?z�����xV�m_#,t#�:w��c۶mZ����n�R�N�lc9O�~X�5+���&$$eJ������Զ���s��QpusE˖ּ$�ѣǰfM�cee�S�'����
6����RS�a""±T%n�7Y�k��8��(���6%������j��ӧO���B�#22��ݻw�i�&��;��|���fgy[�"55[3�mmZr���爌�BxX�N$�e
{������ �Z笍���0��	�^}�a܄	��i�W2���R��y��X�BE�^��*|GǶ8�o/,��xo̚5�:�Q�U'0ۢ����M�4���7�U��U}��sɲ�\d�>�׍�׺�#�11�x�豮�*�O�����Ѡr��X�j�����	�_�E�7� B� o�<�;�J@�Q�M�"@� D�"@� yE ���`VZ<ډqbg[���?�{5�yf��0d�0�}X��=�
��1m�|s�4j֨��S�P�v->L�§�
�A�EK;df1=&����ڵn<�Q����r�Ϟ=����x�m�vvngڴ����Q��%�Θ_羻��E�r�wT�V
S&O��=�����#���g|D�Hn��y��P�BL�����~�,�v�\��7Ԩ^~�&�A��8��9̙3�o����z�=����]��ŋ��d"nGG���~���|y ?{��~�'�H�B|��%�?(h%�,Y��@�zu1u�dT�^������a��9�p��T��96i���v�Z8��,^�Ԡ_��ʪ%�R��Xk�Q�Y�a��F��5��s��ϝ;��͡�$��g,�Z�a"������|f��>+&da�?�a��%�`V��W/WlڼǏ
���_�'MŽm�P�H!���\A�jc���լ"8O�Ꮢ�J�{�n����w�x4j�^�\�޲u+���e��Uv߃����#�i刾}z���?�.:fϚY�Z/O�a�y���oX�rJ�,��k�2�]+{���O,P1��T�[�{!�ٳL\��6���X0�������W���_"@���G ���!��)�"@� D�"@��;I ��,�hѢ�S�.J�,���޽{�|�G<~�XU�fωI�LV�#�Ve?��*dݱ陵�R�C)��}��H�TZV�E*�.�Kꓮ��$�T)�T�Gg� TJ�m�&���W����S*wk�/�������+˼�ŇZ�Hx�1c*�Wu\Ѹ<~0jl>r"6�޼�_
�^�:�f&�J��Y�=�g�K�N,���<x(_�læ���6��N�e�{v�]�Yr֯��R���_(�f������oY�x& ����hV��k~�D[�9!V��2���0w��t�^�gM3[�=|��;�xb��oW1��
�7���7,�����g/7���²��|��G���c�q���ij��&��I%����F� /D ���!��f�n"D�"@� D�"@���.�$��v��([�/��>�YY\x���e�3�yC�R��J�J�+��&_�%����G~]�_����9��E�5���ߦ���~�m�����>%��X\��)��?S��Wo<}��W����/ܿϳ��~�-�cb��͡��zzZڋ�,j�[�BZ���ڂ��8u�-�Do8:��WϞ;�3��.(y�Cm_PO�����)�F?%�j�7p0ZXY���Ml��@Zz6�_����:uӧ��Μ9�-������(ZԂg�(P111<x��U8p�֬[��c����F�;����R/(h�����'
d}F#59�gO�臾���^ݺ�s�����Ï?`ͪS�����~�tN�.jO� D@N ���!�B�"@� D�"@�x'�w��;�_V�U���=|�.�G�f��K�҇��1F��������X1���a���q�.]�wL.Q�8�L�üys���е[Wl��ʇe��Df�PhK5k�%���2nS���d7C��Z�V-���gG��˾>b4\ڷG���0U�S*-/�۵?y	��Ν��7i��ƣj�x��-Z���~������Q�PAd<y�+V��~ִIS��[�rmIx�4c^�܏��xܺ�/Y�8�c�g�ãGѤi�z�>+"9�Bև��@��%ѢE�9�ʖQ��H���p����V,4r�"@^�<�;���2�4( D�"@� D�"�	�w�^$�C���y�`�Usx������eJ#88��M$�td*S���j�ˤ�ӕ�Qi�Zr�1�L%���}��X�c��k*r�: D��@��CpN&��"@� D�"@� ��@~�w�܅nݺ�ŝ`�0Q��B ���
s���?���'��[�"heڴi��#����i"@� D�M%�����N<�E� D�"@� D��*��*3Q��ݻ�믿���SE&�
�Y�~�!���ը��^+�<~0�*|�����i�&��������~��_�G���_��4 D�"���sH~S'��"D�"@� D�"@r�@~�suF��<~0��P��D�"@��[F ���!�-�r�"@� D�"@�P&@0E�g�h>�A�"@� o�<�;��)X�"@� D�"@� D@���.w�ޝf�	��<�f)�����{Y���/������5g������;�����u�c�ݹ�N��W5�8NN�1��#�`����my_��S|sjWN���<Q�D�E��"��"@� D�"@� D�� �"��/�Sv���a�l�1�f운���^hV4@s+���Dց\�d�����/憐$u@m\�6-�l�%HZi�I�~��1g������[�;pK�-�{���zR'򱩱�j���d�5��7������wQ�T���Kd
��~��8����\Z_�V�f[+���de�Tj��ǃ�����'_�?�G#�ۯL�w
�%RS��s`j2��{���
$�
�4 D�"@� D�"� �m�a��m#�
��r�uX��t��ֶHM�
�J"/\DAQ�$'
JL��ߧ蛂���)�3��K\�
�ke*4��������k;���@Ay�JY‚���R{����/qVg� �)�O�2u���r�21�sמX�h!�թ�'>��P#\��%�2k��S��\����xc�����e1t�W�Eg�egJ$�a�y�	9
ߞ�?��&qޏ�<��%K����,�m��	�Q����ON3��,6��.�Άe�5!���RN@c���
�}ZY��8��55�&�U�_���z�
�7���-R�H�����xH~�i"@� D�"@� D�m'@��>����F�M�Ea7"2^�^(]�4<=<>M�4�T�q�/L�4�5�����5��M&�0A�	�)X�hŢ悰*�tdc��LtMgB�ͼ�d^J��eC�DK�FM$��7���pvh�'�q��M���#�uÈB��,d�33E;�����)����P%B�h��V���o�%n��<%�^�����|,[ȗ������f��u<�v=;M	����q�x�����Ӆ��8�x��ߍ���k,.�HvV��q��T[L¼o��3ߞũ�t��
`sX���1s�4~����EoO7�1^&��lO��֭%Y���Ƒ�t�t�V��-�S�t���c�*�Aگ�:|S[�b�}��/![֋?s����R#"��H�C��5 D�"@� D�"��ȯpJJ�YsT�hQ<~����B{Sib�yf�#m$}�jl4��"���cCͼ!/���;;-���i�B3���ڡ���yq���|������`��4hJ�*�E�Z�jX�x�N�eB���222�`A,-��'K��͵k"..	�	��ͬm1��!��(Z�0&���uk[�\�Y\R�B��L�	�>b)Y6�d�@V���N�A�~��5:u��,T�X^o�h.�h����k����F#&&���k?��a������
d;'f�Ʌ�cI)X�n~��w<}򄗿e%�y�h���lf7���y��3(_�<�N����p3�'%cͺ`]����l�qa�=x�A�V������*��~�O̜5�/_���OC�*���fxO����(R�|}}`�ʖ��2�3e~���J�k,�S����
̘9�����͡�HM�Ρ�X�W�O]�_a�����[�f��De6��&�i�}�z�:f̚��}���V�"��k�MQ�zu�?�>��)&O��U��-Y��ׯc�żO+k�d>��K�{g�_��)
G�u��W?�M�C�u��]����Gd�f���NN�prrF�����m���	
Btk��+����V�Zش1����aނ��}�K����Vs^�Om��-�my��z��T��U*�<c�;h�`����V͚شq��:��j�=�D�vMJ_ha���붹�-RR�p���3n�z�K�N��k��!yK���K�"@� D�"@� ���*o۶
���5k�BC7�W�^�S�eN�����MV&��D$�Ǜ�gi
���O����}b;m�q���4X�۷���\�yU��Բ�|��a���˯Wx��_~��*V�qcѸa��ŋ��ƻ��OX�t~��
*T���#F���>ſ�naΜy���Q�n=L�ꇲeJ�a~��Wlܼ�'������ӧϸs��q.p�5�lmT�1%��ğ7^��r�W�Ha�	�ᨨ(�5{{{�HJ�R����C d���m���#>>E�:kӪʼ_�������R���z�Zl�:ZS�z��D���i3�lq*E[W<l�	L�����[�cp��E,]��,���,p%*T(7W���%�A�P�<<�{鍫$����;aA�B4i�����V��Yl&O�	�V�ao�gΜAЊ����۵�ѸQc��qa�ϙ7�g`��1���z���&M��������Ș	������'O�`�5�u�����y2�4�x�I�S�.z{z":z+���R����S����?kDZ��!C����[q��%,^`��e
0k��r��ѣ�A�2|13t�	hҤ	�������%y6�!7b�		����w����g,^6lDZcǰ*hJ�2�㓱^�h�S���������ø	`gckI��֎m��~/V&�`���ܹ����[�����OH@F�c����ʖѭ��
��:��Nj�l�z�*L��O�:�Z�A{{�+WbkD(KQ���7�z{A�����X;1އ�
��	@)��-Y,�V���}���`�� L|P\Gن�J6+�|]V�Y,�-ݗ��H�vص{Ǝ�A�D{g�g��S+"��H�{�4 D�"@� D�"����q��}����լ	R���yg
�88��L�c����J�2%E>��#f�S&��/�>5��	2�(����	q�b*�If&�۶ÞݻP�D	Y�Y�Aٙ�rK���%I}���K�(��V�C�>m6��gS*�U3ÆG�v�Ѯ��?���شa=��	�(��W���0��x���#5-���ŋ�hQ~=ts(Ϭ�0v���w"
�!C�
s�ɳ�X��������:��Ça�J?�Dn}��-��--�,�[���a��ԨQ�<<��Ҷ4l?���Q����LMLLDq����l�Z!��q�p��i�&$�BKB�/n��2н[w�9`P�Y�O�����鉨��,n���<����"�P���^jv5�n�F�f��Q�hmg�bEt⩚p�خ#�ܽ�3�Ym��8�9jnݾ��͚�q��h�J�ӈ�Ƹ�s鈭Qx�ti���a���(Q�<�ݺ!��a>���-�&�òXQ<��l[!��bFF��<98�`箝����J`홮�Ä86�X��K\|JZj��ڽ;b�.1��1!ޥ��reJ����stn�=�v��[�nH�=��g󓔜;�<y��Ww�3�x�pa\�lق�>�)�g7��~]iG]�6c&J�*
�	cu��^�`�6��|���,�����5̝;�.^@r�q]|3��Am�k��`/D���еd�8�s�ݻ�u�,Pi'��Wz!�qQ�]P�֑�E����1���;r�Nj(���J+���yR�Tf%g��J�%�d�hG���`k����%nގK����!@���N�"@� D�"@� o��)gA��W�\��$���b�+	����۷n�r�J3z4�~�1�y9ٳg�źu�X�l\:� >.;t���aӦM([�,|��ѴQC��Z��G�9�3�����<���Ѵ��:�,>��!88˗-�E�":�:`����/\�f}^��7^R��+��z���8�5k����A@�B�iW�j^�~�z�wp2v���Y�s|B"��υ���|�TO�V��v`��9��n�W�.]����yf���e��ǖ�ܒ���iS^������Qz��Ȉ-4p���F�����y&������L��?��ի�w�DT�R={�D{��ؽk�������cf�i4���8�+�ر�nX�d	*V��������n�&܊Y�Zn	�)���r�f��g�)�1�~rk�x[���<y2�V��ٳg��Gܼy�YpB�����=Z�n��˔�g���SV
U�9��NГs���������nj�ːe�#�����aܘ�j�vH>y�����gϲ���Ӹp�"��O��g	^����.��c�N.L�_�`k��y��O}�gO�ac�j>'Ƅ���%,d�%|�1A(TjoL��i��'��m2��e��B�\fB�(�1�%S������4���RSN�J`�xW����2x�R�JpW��A^Z�*���}҄�ج�0���&�4�G�~��]���1w�<^����ABb"=z�_dj��r��׽��"�(�K5w���];w�Ң��7b|Z��C��ق�?l��~؋E�t8�u�>x
�o�4C�6?�J�`�.�w�u-�K�u$
�Æ���=�0o�שI������	��{h|"@� D�"@� D�m ��`s�@M��EW,D�j�q��1l�ي�k�q�t���<yfϞ�>���,4+<t�|������f�J]&,{��2{��)�g�m�쌾}��G��8��y^�s���pp�祝�Xsfi�b�y�ZmyF��8�/>��sSn IDAT���=�=u*-���$|���еkW�ݖ�0��btb|?�}�0!31��tA���z��[�Vxh��=����vB~��̛;�\gL��ʕ*rY�	��.]��X��_�D#x��lYB������D�����7y2�w�f͛#5��$�7o|}|ѩsX[�DZZv�؁�K����	_
��ݺ�3E��.>�M��TН� թ��={�9r�
(�g�Y����C�x{�lhn��g�����@Lt4�3o_4h�m��ǜx5��m�Yv�֭�<�G�;;;��f��L`6;W��@l,;8��y�fV�W��kfe���f|l�}T��� ��Ԏ��Q��%��
��6��ن��c���%��X�	�tu�ʕ+Q��z�f�\��"�+V����]��ĬY��q����,8{�;.�>�O'~���7��WC�R%-��L��gٸgϞǔɓq��^����T	�Qc'�jXi�[�p��|�R>�X���[Z�Y?X2o�@aΥ�R�����]���Btt֮�q������Æ���
"�F��s��	�,��͵'�E����t�B���VV-����7�J@�77mʫ
Dm��w��a��%�w�)�'y2���W|a�e�+Ƌ8[�Y��G�,���܇a���Q�k?h]cbtz�	~ChX�������X�l�ޞn�ӧ?����*���+��W�3��67��/�ꖽX�2��{�=�U��
�m�n=1��Tդ��������I���g<>(�uಥ�0dq+�W,n
֑d^M�w�b���j�H��g�^�€���e1I�S�h�:x�H~��il"@� D�"@� D�m!��`y֯<�X�{�{�^4on��?����A�s���5:�o;;��=[����`aa���Oѽ{7��V��6k4��O0��q�~-Z��N�mu���\ڷGk[.�2�U�;x�#���0��� &&�?�}��!��=�g�^t�Б�i�E��x���L���L<޳g�����1,<�V_,�͞��ٳ�W___�l�L(��L�R��n6ή=�ТE|���>Օyf"��ݻ9���X1$$& --'MƂ�4oނ��...x���n��y8p��{��Ҳ�p���&d�1X�?}���q��S���B=�eC�LoS���E�.8|$�w�ᢾTHV�'7��7A����\�2��J@�k�����a�x�����W{��x�Q^
U��“V���沟C6�b˖<|�i�'�J�o�\cg����a�^0`�k��,T�TA]^ላO�<w�l��#�Gy�9����Z5���8,Z����ӳ����W�…Q�Z5�>v6�:�KͿ����m������;|L�,X~V�(T�0�U��Æ�����1U�®�2�A�V��c�y�_ާ��?���l\��2�֩�ӧ�j��Z���F�N�,�,���&�m&_�m�j��LW���
̘�˗/���a��HN:ʹ=z��l�cɢE��`�Y��@�p��f��D��u����P��8n޼�}g��m���g���/�N�:\D�^����
�6HM�/�?^-^DkxpK��&��RIx���M�Wl�����g<���x�N����F�B���%"��s�2(��?KY�Z�&�����K�
�{��=�wa�C��PX+��]�QZG�6����R\W�ZY7�^��^�0XG��F׻p�s�U�`�g*��#I�����W~���S�vʕq3b���WJ��W��#D�"@� D�"@�R�]6gZ�2���p��m�9����E��1d�0�qt�K��s�&?�PM~��g����2�Y��ɵ�`G{{]��D��!��K�w�6�ϙ�`���$��>�Y�Bp����Ÿ����{��S�Έ�ފ���x�d!�Q\:uҖ2F������C���6>� �

EB�Q��N�`!Z���X�ֱ����<e�v���W�F���ߏ�<A�_"d�F`��r�e=GEmE1Km���|��
��ϸ�Y&&�#��c�M�'gg�sv��k��������?�a��I�����2��x�ᢅQ�REd<z��?p`?<=<T�1'V�i�:`s�{�m��>il����wRȲe�K3,�,M�7��Ga0�q��cǠI�F�
�رcѴq��J��H��j_c�~��3�s�u�LPq,�\d–�O����J�t�%�W>��>��Lv�yp�D26��ǖ�Mz��5���g&�LI�d�.�Ui^eƋ��e��_M�/������B�j|�Z�
�Ƙ������1`�����O
_nP�E>��$�_d-�����V\G
�՛��ŭJ���u$Ƶ���vJ׃��ں��#��3t��^$�^�4: D�"@� D�"�v���˜<|�ht��v�v����0a�8�ڵK8#7�Ǝ�%�YiZi	��Ç�s�μ�
\n���l�K׎7=���l�J@��b^RZ"{O��ϛ5C��]�k�N�9s0e�T4��={����tl	��
��kw�M���M����p$�F���ܕ��{�N��J�%�ٹ�+W�Ē%��y��<�Z�j
ϗ�b�xƱv�^���f�g���Rg��6�8`�RXZǃw�Y��3�o*>�]��^��^�x1�0k���хҩK�/G���ѱcGmyg>f�.G��Ux5;��p�B3b�)KS���HH��߭Y�
e�/v���Çq����%����i�On�$;Y�g��`{��Q\h/WH�n�}/�
�P�fA�o���w����2��J�*�ez]I�+dM��4�K�9<�͇�jvH�扝iMԨ^S�L��bI`鸲�ČMQ��<��4���9PS��q���4�'����ϯZjq����]��)�v��a�S\�]�r��Q��Z\���N^%�_%m�"@� D�"@�x[	�w؜yQ�N��4V�Z���r��������ijG���?c괩ذa:��Y��3+��9t3ʖ-�I��hԠ����Cm�3��Y��D!�W��=Xf*k�4l���Ŋ���Yd�,���k�7>���>�U}�Q�jU��,�?|�J+b��hذ!N&� h�*dd<�Cx���ݻq�S

�󿭳Sv����&�	�L�9r?��V��駟��c�����D��x|��)�\�
7n�����a@��h��ȹ1!T�W�&�~{�;x�� `�<�����q/��Kߣb�
��&Mu|�i2|''d�Z����F�����tgϝ���
4�T??�)U��c�r�X����KZϝ3�~{�kT���>�U���O�6�xv2���jcD�g��&؜U�KmLe&��0��K0�!��}~��n�KN;�N��[J��tb�-"@� D�"@� D�����`Oz�����V�SK�ӗ�f�2q�B,+լ�dg�f#�װ�Ҹƒ”|LٝӴ?}��Ah�r�yy�����
�GKD�l�M%�����E�ӥL��t�zڡ>ai�JlM��[���"if?�2u�솚�1S�j�����qXP�D��C$��I#�� D�"@� D��7�@~����l�}�6�L\SbcN���3^m]:`РAp��]'��m~�H6A=�b/*d��`��1M�ĥR��C?���ܡ��K^�?�l|��OnGr���=d= D�"@� D�"�f���4X�e��~rCf��:��͘�7�
�7sA����$�p�+[;L�'9�:o��M�URҙ��� ߇I~�������7�;��q6>S�'�#9��Gp��C�"@� D���r_ty׉��D���v��4�G��(��[��G5���ǟ�%�sWٿ#�D�[��.x..�mۆ~����}n	�f
F��@x��k/W�]̶/�]�66��a�ͭl��zXJaN����*7�W0����PX>i�P�-�3�r�?s�j�}a���� 5�ʪ%�R���ל��C�W�]�^�W�_N�Y�?�������xc�%S���i�ܜ?
�ª%RS���<?��!�W�9��֞�6cd/ D�"@� r�/�c"@^5����
سg���͚r���D��	�7U6_^�������&�VV6HO=���8w�WbC�Z�rL���X����06��Ejj�0"ژ�̝(�.���s�X�p!��H_�M�)',^e[�x�^�W�_N�	��ˬ��ԓ���EZj��Eo�dd��%=a6/��u�aNc�T{9�`�v/�Ϋ�/��ʏ�IΏ�F6"@� D�" %@0��HV�ü��c��;w��?���gO�)S�B��{���?@�^�d�D����&�7U�݈�xyz�t�����DhX,,,0|�p4i�R�ƍ�0i�D4j�>>>z�Lή�A�L�hfm����|�t����[��TJ���(7H��f$×5��7N��pvh�'�q��M�����ln�&9�\����R\$e]:��K�d�lѲR��̣X�O�tL
 � �H�SY�&�3�Se<=6Bi�89��f�"��-$���i�z�d�k��x*͛��Ah �Q��b7��gN|i�B/��}������W�/�O���}I!>u��)>j�gN2d��5W@V֧ۗn8�E"s�X\x.�^IM�
����#s�C~jGp~�-��"@� D�%$S\��O�`�9|5��ѣ�Ҙ��$o�7]������+��
B�R��h�"T�^
�/։�L(���CFF,��e1�`��׮�@ll,�	ͭ�0a�7B֯C�…���֭l�K+k4��b
de����îej�Ҍ�(�����dp�����ѨS�f���J���\��[��k���c�-&���e�
p�Ͽ1j�(|��Z����8���5k���Ó'��8�J^+��|E�n����q��T(_~S��q�܌��d�Y���O�<ѕ�5ƅ����#�Z���O�q]���W���Y����˨[�6fΘ�*�+q�Xv��	X�E�����[��0��*��2��<i��p*5I���o`�L\�|nnn�ʳ��G�y'̧.ӛgfڢo��������?�+V0^�V��A�V	����6��k�1ӟ���֩��ӧ�Z���6^��F��8��w�䓦�<�G�)����{w�����w�EѢ��y��_t놭Q[Ѿ}{�O�&ĥ8�J<�����{{#$8E�h�_�V�z%�
��>����'g'T�T^��gq�8C_XG�Fxx>�Y��sJ�I��/`˒͍�_l���ůV�AZ��=����ƿ�}	����:{�D���}I���LX��t6��Ԯ�	�ǡi�ƺ�����؜�2��^�����O�еkW�DE�t�ek�}�j�Jz�/J��4�[����"�����!EpNhQ["@� D�"@� D�(��Q�4�f��]�xx[�N���E �	̄���(�5{{{�HJ�d���̟$
p��-��' 6>E���֭Z�L���<d�x��!%�$֬Y������ܺ�R��	L���º҅kb�Vm��+���ckt4��xK-0Kf����P�<�]��&D���A\��r�ן��Ԯ,\�&��`A��$Ք���ن̿�Sg®U+0�w�V�DdD�Ҷ},B�&��-�ݫą�5g�|<~��G�A����}"���|иiS���!*2�.^��%��������'�S�v��:�����F��*�4!}��$ԩW^��\�]��)'x��V�Z�X��c4�Y�2�n���K.`ɢ�3�Y'`��d<y�1�G�|g�X���O�"/����(\�x�K��ٰDHHƏ��������xqwמ�=u�tشl�����{�FrJ
�Ι���JY�B쉬�x�3S�
����_G��Bq=���]=v�		��x'G8;9⃲���T�b��z����buP��N���Cv�fI	v]��|��tS�҃(�s#MZ�&�C�%�%J�'�>V�M�Kj��I��L�ܹ�=�w�w����w�Ǧ��0^�^�L�SY))�X0�_���Pڗ�-Y�'���ͫ���W�nu����a��g�����Z��r��n"@� D�"@� D�0o���ۋ&�)�<~0j���{���픮i4Z%`ajԨa��DK�Vhа����F��zb.+񜘐��
s1�Ʈ�OjK	�O�J@k�Kx&�ŢD�b���1�w�#�KK��4��<cmkdJ��ɚ�{��^���D��������[�o�Y�fh԰!Z�٢�Ea]��eLsl�w����
(����}#F�����Y��h�leˢ��5�����.���[��6�Ϩ��l���v�A��E��#��{�ogmm��	�,V�2[��H;yLw�V�5,�;�
W�HOM���]�s�.�,^�<���3X�U>���捋���٭{w9|Ф���	��Q(W��^v+��ѩ��ޅ�ŋ���ֵ+b�J�HN���N�<[���xIM?����N;���d��!C�g�rÊ�)L��GwƵDV�g�y?��KH4\���������k�;w.]����c�y6�įd'aq�旉�%,��eY��c��`~��N�a�1;���ɾ@m���Qn�l�2�/��gi�|�e���r�
�=c�rd�֟j|J潹�-oo��s!��������O�
�J�RܑC|\��B�0LJ�;j����妖�l�o�w�U����T�r�O��P�݉0�"@� D�"@���A��wc��˷�@?5F*7���<y2�V��ٳg�7A�h�Ͽ���>+f{{�a��֝�)>��fҊ�Yi`]6� B�6&T�K�V�EAO�ZI��疨���ߘ0f��ٿ�Q[���`ܘQ��L�ji��dmF�T�y�8u�.^��oN��ٓ�Y�F�lp֨ @9�tƎ��`i�%#-[��y�9}.^©S����l^���b�,
�_t��XAVd�����`B���5��(�ش���yv�GOy�0�}DXjg\�V��dB�9��€.^��)�I<k�e(���LBQT�&*ѳ�۶��͡���/���2k�<�6�x�h)j�:�R>��|HbW)�֯_�'���֗|��r��8z�8����Gp`�e;9�|�2��`j�P)�΄a�� �)_�(�K�h�_WZYMQ��!ā�)�%�	cq�bMq_�^��d<;w큱�����O�>����._5>%�ҋ+��J\��|���ۢQHL�Vza@���z�͋t?R�Mŵ���*���)� D�"@� D��w�	���4��o�<~0jUn
�1�b�uk4vlߎQ�G���μ3�%%m�~p��u���"!>��&`{'�_��jV����ѹ?�����t��Xz�!�lcv����a�����g�Y��掕+V�J��z�f��nZ���5���n=1k�l|�D{.��Xj538w�<�L�����`%����g�d��2x0J��P,��<+�{p7�����T	�Qc������憭[���wg�|�R���e�
��+�,V*I�J�֮[��z�9Z�n���=�0l�0���C�֭X�v-/!�>�4C�ؙ֫�ln�.^�W�ؠ��Lk��m	�[q��9�\�X;��-���*�����p��G$$�c�Wѿoo]�]�T*-.r�%X)����3埚�����}�	���T��-��n��Z�Mˈ��DAOm�����	��su_�-aBa�`>(��s�$� IDAT�����L+�w��u��Ŧ��e��l�T)�n�T��z��oo��Vi_
\�4�B�������E|qC5�ߦ�;^�/y�w	��zBi<"@� D�"@� D� ��`���@)ME�sڏ��Ƅ��$�[v��'�|�����`y&��4����{:l��D`�
��ۗwͮ���Ō����zR�@���
�?���ʼnG�gg�	BĆM�ز%�</�+)�|ʯ
�ծ]��g�j�
&`vNqB�Q̝3� �H�Q$&&b�ҙ����8,Z����ӳ��Ê8.\ժUÈ��akc������=,^�ii�{�oϸ�8�…�Z��1|�l��5&)qa�<|��Ukp��qܼy�������u�Ϟ�˗/�n�ژ>}�V�,�6�vjB�|�Ĺ��h%:M����8����|<wwwl	�ɤ��ϣGO`�Ex���y�K-�;x࠯�%ujׂ��LT�TQ�S;�#h�*���x�q�����ԩ�Ӧ�zU���JI=ɳn�P����Y�3/�{=z��Ν�гGl��B���s�&�Si1�J@�3�%��R��1a�?��g�?�І%|5������� l`����n�%�%�_2��z�e�Be��;����!�l_�7�O�ŵ�$�����c����s8K�.��͐�,w�Sbg�p$@��L�}Y����΋%����/U��=F@\��y�ċ��%^mݚ�K�)��sH��#D�"@� D�"@�	�UNJҖ�4���(���G���5��ݸ.<�g���ʾ��9��T{�Tx)��)��2Տ����.���c��F��h����_�W,�˛� �L�ޠ���g�¿��cǢI��V�¯5m�@Y�R{!˜��5�t>3g������ՆT�i[���v��ϳ�'��!d=��m2�t���Xz�X�(�g.R#\�K��ċ4|Dx���t�Z|�lg����:}�g�¾�_+�i���I�5�|R�cj�a#Fc��h���3^�lU{1��}���0R�g������IEm
��/���ɶ7�vg2>%�;��c���^�f�9���x��ukN\Pey�w	�xD�"@� D�"@��;A �
�QQQ���0k����>$U{@oJ�x��&�Sq�
�_BI|��2j�-T{@�@9���HKM�+թk.{��ܪ%R��zϦG��7̝7?]�U�TƤ��hڤQ��45r?��{�œٳ����>�<}�y���„��`ߦ��P��埱6x=�N$i���nV��Q?́%oS�J�Ts<7��*_0���F���hE��Q�:��L��I�2D_�� ��)�U����l_�m/�h���x�y75��8��啝�����F�ݟdy�;?�������9$�  � D�"@� D���&�_�=����]��_U�e��g���`O��S���]��uQؕ�'�/=��!2"�!�l*i[i�C=�X�kcem��m�Qc�I/�LSׯ�P�A#��9�0:vD�Ν�J*���#*j��F5�j<��Oa��WO�b��t��rv&�Ff��M�x�����K/!�d2Əm �3Æ�@�~�yiY��Z���ы�x�W��3����Tƣ��}^�~��756^��7՟��+�x�v�����r{����g/�7�gH�`�
"@� D�"@� D��<��*���+W8�5j@���
�^Q�׮��Y�g���Q��L���
��+�c�������Q�f
L���5j�]{���a߾��0~<���[�ٽ}}���`�z۶����
����B~T�&fL���U�¥cG�9
�V�Bff&���c��˄#�Q��%w��O�...\(���8~,W�^����Z�jb:;s�ZU�;8`��aF�r���7M�6����偽�v�p�Bx�<�;wFtDJ�y��,���>�?A��ĉh��+k�L:�;`�ȑ܇��3�pa>����������{�aӦ���-T�\}��O?Ʒ�Σq��`G|>|��:bǎ����¾�{P����ݱsgDDD��G�x�wa"rgl�z�K�ܔ�ƒ�mZ�A#�7�@f�={���Y���VM}!Z�ֳ�gڒ����@� D���H~Wg��&D�"@� D�"@r�@~��a�&�;�}�9�z�@jj*6n܄аM9z���гg��5N&� he �m[a�LT�R#GǤIQ�jU.�����Mk��z}�Xot��
v�6HNNFLtV�Z��v�1p�@x�����b��u�+k;����4SX�M+6�nn(\�F���ݺ�����)��5��s�w����ٳ'��هC��`C�Z]�ĉ�С�ڴn��I)8t� ̝Ňa(g���Z����I�&s���w�����[��4�K����Ξ��5k�IOnfe&;:�Ǻ�kQ�F
$&�#2b�6o�c�Bjhx~��̝3�'r�[Z5�m߱�/���]��d�0l�Px���H��`ea�$y�LNM=�[��`��,�k+[^�Y��o��}��EdD>��<��M1<�U�$'؜�Hm� D�"`�	�D�"@� D�"@�xy�]�g��3��e��;��(Q�0�<&@:8���}{Q�X<x�]�vE\������'P���ֶH:~����{&�������U��j�ǏC�L��kaa���x~���GaY�23k[��$q8��%晥L�d���-��P�҂ߪ�?~"��XXñ�#\�=��bE���3�o�����$�H:�}
X��f�B�Z5�0���,$���V�Ej��xb,,��Y&в�,V4��EJj��܃۷æ�5Z4o��?�
h��tc��¡Ç�|)�[Ñ�D���`��)�={�������6N�g%��		(Y�g��G�[�x:w�u���<N	%�yc��>&2ݺwáC�x�uT�f��B{�~�=)�{0U�T�����Ĺ�\^��-%l�>S��|��hemMճ�ͭyR�ǔ�y5>�K�x]H~]�i\"@� D�"@� D�m"��`s�B-��c[�ݳ��[�nDة�v�܉�-��E�n�=r�����\�a�'P٧��V�e0lծ;��=�v��e����>���+f�6�RQf�K�	�i*���Զv�ލ�Ŵ���x֯(?�x��*'&���y&��艍�6a����؂B�!L���L�Yߢ���Z���*��/7���O���j���#t��m�7mD��O��g/WDEE���_GG�h��ppv�>���b�s�&� �SSN����YBvp
de">�J�,��e�w����Q�r%p~..8���
���w�gC�=ww��AѢEQ�^}�%]�Jes���m#dk3#xD��
me�i��go�ާ�v���y��k��s��hne�3����%��G���&�6�S��o��^ҹ��*�';��$/I{�s�M��W�u����UK��&��8���� /C��G�"@� D�"@� D@K ��/s�8�hذ!<�ݐ����
�1c�ѼEs���11�8}�4�/[���eܬ�lp*�$g(�6�!�]�������_/�9�Ç!hU�N�)(�؟��=��ٍreJ�	7\���τ��޾�_�����#���sPP pǍ�3Xw�ދ��8����t��Akp��o�_�����3m
�df������гOP���-�_}5��hӦ
~��+����u0�}DA��<g�XZǃ��1c�d~��_�z�M��&q����B�҅lk�����(W�z�����ׯ��d�x	�|��{y�`���8u�T��Ï3v,�7o���S��7[G�&Oz�U5A�Y.u���{VN<=���x�@��n�ª5k�����w��uگo_�ٶ48��߯��.�^��`<��KMM�_$*���"��
���E	����E���|�,&&0k[g�zB�ZD�`p���gX�d��㑕������0�P���h6?�'~���#Ù���W�]��0��8?�H�Yf���Oc����|�W'YH����s4�*V��|�]�J�G� D�"@� D��7�@~�́��|�_�=g.\��3<�L��ƍ��߮������+�֩���P�Z~�,;Ö}��Ʉ �a����چg��]g�͛7.\@�
0���~��~�����{�!h�
$��n�g�f��ƻz�O̙?.\�}�N��O>i"�c�~}0ʖ+��Ӧ�q�:�����\���;vm߆*�+p�H�U�O6��_i;�},�-%5�g:�R��駱d�b\�~~PÆF�vκ�l.d��0�p��bĨQ\����q���c>�)j��"�EaO�6��6}�9}5k���SQ�vMލ��ae�L�e��4YY��'�y�`�ؚ���³�O�i�&/�͔�~�<~���^�;�Q/��௸�����eJ�]�vؾ}"##�Π���M���p����1�^d`�rҗk/WnJ̶ux&�6#V.�J�tY��,�Y�����RF�4�T�����[�g��(Q�8����o��€yv�e��	��.�YA㕆]s�2���I~����g����)τbi�~�T��<�fc��t�����i�>}��L��ڠ������}�D8�[a\�2��L�P.p�׉�f΃��H�l�ԍ� ����t��ucv��F�x������C� D�"@� D��G�]����@z������s���d�^���D=E*@HE#񺁐$�
�a����2tŲ����x�Q��p��y,�˛���8�4cVM����Ot��u��t�ɤcz�Մ%��8)	/��-NyI`�$��1�+77�<~0j��iӦ��@ժUѺuk4i�5k��%]nڴ���5z�?{�իW���ݺv���+
.w77�o�E��Ν�����u�];waժUط_��2_V*�8`/>0!_��JՖx�� �^+
�3�����4�� �ϜA���1u�d4m܀_�wj�а0T��-i.]_�����akt4�ԩ�Y���"�>����[�@�Oc�#f����/����a�4�(h3���F��+��Z�yaXXl�zB���J��c��gリ�燆
���_����GDx�r��x�4_2�8����~�z)\}|к�-م�y�Y[
^����ի̃��?{�����Ҕb�h�����Q4��#E�gĂ],Xc;�ر����0F51�%���ؕ�����}��e�J��9ཙ;3�yo};�w�k���'6n܈����j�3�ѳ�X[z�h��)��y}��yF;~+V���[����Ec�4�|�	0&����9�=���b�X�`L�	0&��`L�	0����)`tzK
u���b���mm�R{��M�c(ħ�����X�������ߠ*U��Y�f�h��B�6��o�*��<��7h������%u�[}�0v��z�\ԾҺ��[_S.Ҵ�1�ƨ��<{�7���3x�捨Z�hQ��BŊ����Ϟ��
�:&�x����ڵk�"O�<�1t��Hܩ#���acm���f�ٖI�G-՞�Tz�;+`�5,�<�g"���BU�?a24h�����ٳX��bl���B����իUGŊѠA}T�ZY�^����nn���K���f�n�M���
�A�F
�M��/�`�?ھZ5���"(8�׬/�H0�o��%(^�����=aI�-P� bccP�p��w/8��2�8#��M�cߞ�`k�#�Gcڴ�hۮ��izn��a�&me�J���M����ȓ'�|�Jl���<��R.v�7E�{��B4u�S}���|�R�3Ju�<����y3.�u	���l'��4<�U�e�1g�\q-�X��#ml�F��M�y�`L�=0�s��i�&��`L�	0&��`L s	�O��2��d���6�%a��n
D���$��r`��~ʋA8s�wm�Vb�NO_SESSG.5Q_
ݏ���	�̼1j
���d\�v����?��#,X�R�h��ܹs#`c�Z

�xɁD�<y�����=�mۦ˖ѱ�U�JX-�p�Y�Vx�2Zݽ��N��Y�M�^������W��H�4j��}{�B����!:�5:wꌰC��^פE�x�Jx�G���N�8&�57�y�ܵ����M�k�/c���<�v�{R
-��ܽw���͙!��p��mDX�u��z<��05��}c�L����NL!��q4"�����ԫ�@�|�{=�g8	���!��1
!7<<��j1]);���c�\���;���?I8�n'�FCPW	���x�鳧��UmT�RU�L`��F�"��`��\�	0��D���9,g���0&��`L�	0&��`f#`^X���:���3���"�b�������<�M�kJ��Տ)c�	u̼1�D��q"��$�:�?�{���5L�Ѽu�Vl۾MxQnX�A��.\�0�c����$�h�;wl�]�\B'�_�$��oǧ/�ѩ�;�J�Ա��W����b��BX��a'{��3&o
��������te��>^D�	���E=
y/���6�Em��s��]��3g�Sh��/��������kĂ����u�d�qm�C�N8r�Z����S_�:�q:����_�M�?}�W$&$b��r�׋4N��W`L�	d%f~�a8+-6��	0&��`L�	0&��0���])��ɣ
KŐL�CI�0�|��)p�N�#`�QC@|}��s����K�8~B��U�ƌ�͛C�}�64H����15k���	��o��ȑ#�'�+&�?SI����Vo�	�C@�s��B�7i�k���q�2���$�N�<����y�5BD�9ݺwG������m;v����/��<E~��-�x���#�a�T�˗�=�"o;qL��7ԟ��ѨQ��\]�9~��!�i�����
K�,�G�E5�rUpr
��S�oڈ�w�b��\1eh�8u2U;��6JՏB����4G������0i�$1�)�'�n�������h-�����3NG�Btk�kj���
-y�pN��?.WZc�t��z1�P+���I&�_��ps�-!�8��Ε��N�N�U��䱬�S���)��^��q�ph�Ob�Ǚ�>�x�L�	|�����|q�ܙ`L�	0&��`L�	|@��L��˗/���C$$$�\1+K+�/�_Q]�v��V����	�yc�;��K9�/�}�1Ѱ���g�}
��ț/�����q��	��ơJ�*�ӧ�-�W�����p��}u�g:�V[i�S�T�bOE�9��ʗQ(��"%��N�����iS bcb�����/�;�N��K�Vjw���ش�}v���^�:��eK	�o��شi>��L�:�J�={�
���l�"���s�ݺs��L���E�U~~��<!ڇ�E <"3|�+�H�[o�:�h�PX(P�Haԫ[�@���O�B���ImɠEJ���P��v�W||"�.���0�w��M1�{$��-􆒦~��SO�Z9*z��K�[x+X��5����_�:H�Ӱ�!�G�>}�i#*|\ӦN�G%շ��v4X]<i�T�$q����˔�Ӡ^�׋Z����<9&�r3?�����`L�	0&��`L�	0&��@v�yE��K���9���#UO:Z1u�9�$�P:'��P%�\)]��N~�l��9�L޹RQ��VѶ)/m�?]�ا�'�
�B���R�� �6 IDAT�rKc�e�3��R;�<�������4�(Wy���ș���Z�]+���l�2?�p}DE�"��uUu��򵔷3�zї G��<9&��-3?��m�8`L�	0&��`L�	0&�,���eY���7F���;���z�P�d�u��0���Ll$�N���h��@k���xL����K�j����i�C�z�u�:j=�˶!.*O^��M%�J]h��}��u����q�j��1&�2����sX6���Ɖp(�_�!&:F����$XXZ��^Z���r�B���`���̣b�L�	0&��`L�	0&�><Y]�Թ�(<c&`���e>XuY��}��Qy�Ҹ9Do�[=��5Έk0&��`8�]�^�“�O���S�y�F��S��"� �m�;7
*(��<y�d?<b&��`L�	0&��`Y��YpQxHL��s���4�L��	0&��I��t�˄f$�޺uKx��R�	�$K���ˇR�J!o�����:L�	0&��`L�	0&���,�����ze��f�p�Q�2�N�[0`L�#�p�_�
�ҌL���,g��G��`L�	0&`���{����3u%�B;{;�p,�3
�v}m�%Q�`�T�>}�QQQx��1
�Ϗ�jGG�T��b_�K�-W�\*[�\�qqqț7/J�.�������-W���z�h����J��5m#Ϟ=Gd�I���|��(S��޾.�u	_����X�+[�j��X���ǘ]�g���&��&�1�w#�����dt�⌲�Qvx�`L �`8k��͛7q��t
2-��Aɒ%P�l�t�Ǎ�`L�	0&��@f6l8�lْj���\S�LA�J���՗*L�2}��Q��
�M��M�6!11I��6mZ�g��+�.��Xh�!!!p��a�U�V8w�<�6mL�>+W�2�;p�&4l�Po}�/X��ݻ�{�H�ʝK��� 00		��5k�ٳ�x�b��$<G�ըK}�������E��c��̼���@v��SJ�\�D**''�3Jr#�S�5�j������ۜ9穫���t�C�F�Z�mu��g�ֆ웓KF_-�)����N�Ќ��^{q��a$%'#0p�;����IHH@�n����4���2<P�N=DE���|���
 @�:�p:�D��e��w�Z�1`L�	�,��i�$))_���/^��-5��y��,?��8yW�REl�paL�	0&��`م�\д��Î��S�p�B8q�ı��$|����̯������ >>^�w�ҥ�M�b_^�H�"8|��-���-Ϛ9~�W����IjA��$��ԯ__��i�JLJҘ���+,\�n�̀��+V��;w����{���cq���Oj/b///lݺM����A��必x��G!<<Lx)�u>���.�.�3�Ȯ0�<�=LZ�
pqqQ��J��t���׬��m�p`�~(R�U�P'E%��(�&�#",̤q��R�&M�s�4�n���ύP��#�C�j�2l���RW�����ƍ��uР���V-<~�3f��+�Q�bEL��
( �_���o���'q4술��(���?��
C�B}gg<~�3|fj�)�S����jܽ{�$�ٷ/�����e����Pd��u�\?3`i��)V���#9)�7�75���9mؔ񚽎�J%[J��ҩ��I>�p��y��p[&��x?X~?���Kll�^���蘴4Ө�.0rp�G�
ag��8���`L�	0&��:IФ
�ӧO��ƿ�Dze��;��{ժ�h۶��]^��џSM���VVV⸏�V�X)~oР>&M��J�+#&:�A��3g.ƍOϾj;i��-�ur���K���|�����%����B8k�_�E��y
B7}� ����3f���������!<�mr)�M7a�ر�w�z�"~���/��P�n]�C��w�-[�f͚�믿N�ݔ���nV�~y|9�@���*��={���Q{e�	����hּv�ډ�J�6E�o%g5m�Pm�0��h�}���,)� �Y�̘��>�oǥ���騦}���
B�-вe+�|�(B6�`��5*�>�yJ�y���~�_�޽���o6DԩH���E_��;�ݫ��7l@B�6L�5z4z������#���6lڄ��8t�����gN�����\�5�6]��b��Y�:��'fϞ�m[���j�,��#M.�JBf��ѢEl۶AA���>֭[�k׮��*V��޽{�P�����w��
�ȝ;�X�5���ظq#nܼ���T�X�<z��G%�^��P)�	=�DFF�u�k���׳/RRR�}�Ǥ=E}�|N�Ƙ�����`�<y�11��FE���^` �ڹ~}xx􄵵5�<y��3f��C��|ΐ{�|�y��#̞=[��Թv�ލؘX���榶�w9�}�ǔ�vFT�q�9����[^��SW�uJ���Q�5�iW�3`�YG/p�S��~�6�jn)���`��ֵ@����R��K�(�U����,Q�FM��
��3&��`L�	d
]0
��o�nݺbL>>����!~�W_{��Z�zu�M\�jU�۷Wl<�˕+WQ�b�c�ڗ�En`��;N)��/��ڱc��Le�O?��/>���իhԨ^{��K1h��qظQ��p�U�VA�o��k‹l͚5�Y���k�8=v�v��@Ȟp�����=A/�P��P��r,t\��@�~���(	��aahܸ	"�àH!�hԤ)>�..�����W�BrR�M��O?���/���_(U�Fz�Dp�f���~׮]�ء�Î����ܹ��q�&J�.�1cƈ6����SDH �h괩��f
�ݻ����3�y�5t�8.�g6i����OB唗��.�?��ժ���E�..B��ݻ������II�pqw��5k��4g�\!ؕ-Scƌ�:wq��w���T�oG"�VN��Eu zO�=E�>}�m�v��(�X��ޅ��1
����dXOi��������eˊ�Z�z(׮ݰ@�N`P��_����槸x�V,_�5�W	�T��2�2��,��������Z�-[�/[M�0A\K�f�#ӧM����V��ӧ���7wJ�)
___4X���\,��:u*�T�,�Q����ׯ�}�1d�$%&����v�N;�����V�I�CBB�m�Vx��D	�"�F�
Dzz&ر}���KK1&{���.��A���� ^���:4� ��
��RR���ӆ��ܪ\����e+p��/x�葸W(D3	�_9�Lj����em�ѣG��✓�Y%ȪC;S�:���5~~���vr����x��9����ե:�W����q��v�,�+�ƏG��UĹ���c򔩸r�:\\ݱ��g���l�O�	0&��X�D�Z]S��΋9p����ÍB�@bR"
PN0��A�Z�B�<�_�<
Cgme��'��&{r���))���/�N�<��W��ᠳ�e�#aL�	0&���C@��u�Vx
&Z���͚͝7װJ�i���gG�v����ګw/��@�1�dL>v
�L��T(�s�&Mޫ�n�:L�4I���At��E�Fe������?~�mT��sf��w��N�v^�l��W�R�дYS����Z�j:9�"�ǮI�ƕ��;���)��''),Ѩ�$<���a�J�	�G""��-E�ҹ3Ο;�5kV�v����ر#Μ9-��V���1�f&��&�!<�F��/��
:t��v���3�7o�7k�=z��o;���6	(�۷��ŋQ�t�I�54~+��`�_XD8ڵo�ŋ���~�[B7c�ʕ�H!T��,ĸ�'c�?��믾��S��c�.̘5�F�A�v���SQؾm+�/\��M[���N�>q��&��\��*�i֜��
��[4o�쇕�B�-Z�����Ԝ�h,	�
�y�6B���b�cԨ��R�*�6o���C�q��u�1�^�b��y����P�
�b�j�*��M���s�,'�Dٵk�"O�<��H�$�w�$�n�b!yْ�J��zzz��›���_�W�nB�墭T�����}J/V�_0_]Oߘ䶴,du�qȐ!x���0Ԓ�M!��x��@�…�b�r���/_��s�S;�!>r��J�ђ
���*����Yx�&C�z�p���-T��${z�CWw7D�<�+V`����3Q�E7ʐ�ʿ%�X_�:N��k�N���-�5}R�q��~�hԨ~?{K~\��@�z����ի�ͭ+��6c���,]d�����X�:H�*�$ʒ�L_2T-	��@B���4~)􏝭��Q�`!�pHb�����<~�/_�=$�M*dC.k���	�os&���dgrpѢ����Q.��#�Ѹq��<-;`L�	0&�	H"*=׮��u���\��I�<���_M�,#}��1t��M�X���[�6if�r��1�L�k���q��P��C��w��"sӦM���ѿ)���K}�ؽx�b��7�Ţŋ���S�����"�1=�u��Y�Y�|9�wh��$��$A�ʄ~���Dn�3�7ݛ7o4��Q�����Ŕ��ǮI�ƕ��;����ׯ�'�!�$U0�
+�[m������6��x��I��G�6mD�`��6j�4[%�\Z�l����ڶŖ���ڊ��n�]E�q���+�I�SдY3�	Ka]w��#��ת����s!h�n%x��]�~��uD��/��Lx�QN[Xv�	a�a�;kl��q�N���1c0g�,�/�Q��hѺ���Y�S`�;���'m
�mo�K�O�~Z1&e�V:B/�ϝ7�֬���ڊ�M�|�*g�Vm��أW/tl�V�߹k��P��gHH��9p�\��hJ~D89����i]����k��oc���vː�YY!�Uϝ;�
��w���Ε���I������bݺu�����z��ggg�n�n��>��P8逍o���$��^)���w��~)첅��U#����~hWww�M�w׮]�9�S�,�K޷��5)�41UNޖ��"8(�
�g���߆�����-9���7���D='��K�k�:Z_;��w)7�x{i�פE�x�J��C��'U�5i��ooo��7hڤ)��ΐO6����X��s��5�K*��t\h遇6g�,�D��bŊ#_�|�!)9Y��Az`��`zcbcp��<|�*!�<�-,-ė
�%�b�%`i<�AE_�0��&����{�7�[��_҇��C�ftwl�	0&���	�v��k䜕꓇��A�4�8�Ƀ��!�]��x>�B!����L�h�}2��|��t��E�������u���!�̌>�ٳ�8M�P�z��b}��ш���w��ҥKѩSG��W/_��ѣ8v{��E�����?�m�,N�]��+1�w$��`S���XC�<~��`�H/��j�V�X&�<\��pXD����v�*oSRRBH��T�-	�ڷ��� ���	�k��"Dt�F�T��!�J�G�������v��<���[Xݏ�Ә^�9��[��S�����0��E��1�NHD��=A���{y `�z�ʕ�:vFP�f�VK)6+�k4=�S� �)EC��xL�8͚6b�`�[�����E���"_/�dC����=�
��_��O�.�X�_�F�o�����L��r;ѪUk�]hcc%���˚{�}e�iI��g�޽b}Y6��a���P�ēǏ1s�L�)[F䵥bL�F��C�<y��7�=��kV�S�h�"�v���eS4Tǐ<h� :y�u��$�r`za�r+^K�,Q{�W1]��}��db��w�&�V�L7�r��JW�ߑ*��z���/�`iD�%�q�F�ܾ�ڑL9�ڵ�g�D�
�Ղs�V�}�N��V�(�%�����Dٟv�t�.[���`ف���J�iq�����w���+-�&��6�(7����P���U��O9�)<��۷ă?���66��2J�a*$2k��+�L��dW�K�V�Z(Z�>����G/��G��eש�`L�	0�L  ���f���{��+J��p�\�BcT����k��6*(�̂�m�� �w�:�T�d(U]�����g���9`��Qܱ��n@b8�9v��ڵkk�_�>����J>�˱T:v� r�QH�3�O�p��B8���e�h�M�ĉ�")T��#S���̈́K���	dw�]rk��;}��&�f��"�p@@>�W?~<�T��.]��!�6(=U[�~
Q�(��cDā��;`�Ν8{�,�Ν�S&��������֭1r�p�ޱ]6��N��,y,+�vA}�uw��!��`!�U!��·�]�DGc쨑Bu7a">���Z#Ž�q�����[�WWXS�-�M�/�+UB�6���#	�ʺd��hӦ5�V����(g�2��K᷏�#�W,G�B�Dh�C�СCX�d)�3x�`���)">4i��޹}��'-��/Y��a��?
���,�,��5����BBC�^��=��^ ���:g��u�/L�2���5��%�x�b�F.�n�"��)�nѢEE��5j`��1:Ei�uM�,����W��T�|�	||| ��Oڷ����������E�u/EY�f���|,�`�FzsS�{}!�i0��\���tq�u��#x�2���_ĽfHvrrƩ����=w.֭]{[�Y2a�4�ɟ_8Z�qȭ!�9
5jԄ���6�`�j?e,g�(`L����n�2�5�~&QV^$�n��f��Ko�}T�#)RD����Ko��F�%�6&�����@�aie�>��m���}�y�u	��ġ�3b�نD �d$����ã�x����`L�	0�w!�Kp�ׯ���+�.X�nnJᑊT�XѢ��!Uה^��G%�񀀍7n���D	G<D��#O�=G�')�$yeI�x�b_���PX�C���fX;��5سg���/NW�XQl�V�Q]�$jPW*�I����vm���+ q��GO�*UA����`���+��18�v����L�T�]6e��=�IHU�U
�
?��˗��<�	�Y��u�)ǭ270	�����̝3_�%1r�T�Z{���ʕ+�{�OB�?"<_gΚ�������,�3����V��O#U_g~�K�,Ã�E��^={�ySe�̆M���%��3gD���p���͚�_��\���s�E!�g��矉M�{b��|\���ǰaC��֨qSD���LBn�f��U�JᐐͰ��/��U*��[z�7n�Dx>SQ�/E�H���?��e˔ŘQ�P�|9<{�B���W��w�ܺ}[�5r��̧b���˗{��m�E��u��LQ66n{������V����Y��.�����9�ƍ��Ѥ|���c)ʟ\���AA��S8.6U�TA�>}P�h�4	���i�K��
/ؑ�o�ʕ��o���@���rw+,hذ!z�^�o�W�̙3D�c��B/�PkS)T��Đ,�ѱSG�!��]��T����,]�?�|L�ࣗ5NG��kש���"'��wd�	q?=��񞐐����a��y��ڑ
�:��7��)��O����8u�4^�|!����ܹ{�&M���������L�⮙`f&���1����H^��
	�$�Ja�+W���,�'-{Y��z��������daa)�z��Д/���P�D`)7����8s�����m�0t��z�0�͏���`L�	�_��J IDAT�gϞ�w>9m��I��42�F޵�;|}}Փ�8q"֭[�wR�zy`���jG�����-���K4k�\<�S�L�����1g�\���zٲebc���;���p��5��K�*%Dc
�*/����}�W#������v`ZGy`}9�uoO
,zL���j+��o������T��g�UIV(���3�����#(��[�8M�\}׵��䩫˳W��Xx䷄�t%�����v�30�U�,�#׭�[V�|�
pV��!���&�75�����3
���]�~��G�̺vU�SO�}_�]�kODg�͖k1&��@v#�p�عs��jR�_�W.�N^���&�$/a!�*���C˅^�Q��t�ޜ�y�&�<}"��)0�uG�������%��~��a���!�,Z�0�M����`L�	�g�D�cǎ�k�nb4�O�<��9-�4����}nTJ�B6���-�k�8-�
���������d�L<~����^+TjT���pws��q޼~#<�ȣF�ms�F��m0n�x�ݣ]�	�T?=v�����}���lʲ��6�]V�C!�[�l��}���K�l�8���n�b8��XƎ���]�|cƌ��������5&��`�A��̠��S��/�#q���Jx�*H�^��(^�>��㷃��z�SD8!�(�H!�4f�jw��}ܺuK�X�~Hd�P�ԯ��^��w�䴞�#��>��###A�͹0&��`L ;���Ϟ�|��r+��|h�"�x��&1 ϚؘR5���;�3��w7��	dwX�,y�JQ�e�i0�K�ǚ��W?�[-æ�p��̖��!��5z��Bd���g��`L�	h`8�.�bu��=���R�g)�/U��˯��3�	m���O� �b�
���0�(r�ٝ���s��%���[L�2U�9��1-gg��>=?`L�	0&��`��.��T9Q6e�\'g`8g�+ϊ	0&���p�]g;�׫�H!��3�D`~?��3�a��3���d\�xA�Z�ː-���HOw܆	�$�n�:����(X����0d�PT�X��1&��`L�	0&��
��)�w��I�Y6	W�&X�&��dL�	0&��N��3ˈ���?��k��_�0�.T� *W���kؠp'����MB�)"p�Z�`��&����`L�	0&��`L�	dW�OV�޲e^�x�G�!Q��[{
,�,�/_>-Z...P�&ˠ�d�u�y�ٞ�Yt	���A
S^�GRZ�����;����`L�	�	��9����z;OII�P���aei���$8w��k��a���w0�Gܾu[x^R�g�����h������1s�q�L�	0&��`L�	0&�� ��*��R[E1��`�e��2�@f	�Ϟ=G?OO|��;n�z꾾�q��)��^����$ڷ�N�3U���-�c�@���dC좚j'��@�:�uBٟ��:u��T�I��qs;&��ȹXΜ��v�����γ��y�3��^�`L�	0&��`L ��p�e�#c�!�Y0�u„	�q�&6lX/�@��W/�*U
>>>�λ�Q	���
;�׭V���pj̳֐p,?'sH�7X�B���S��N����)���8#E���,����OIv�m���:�ӡ�u�u\C�.S	�Ƅvc獱��L�	0&����s\�p/_��۹�+��-X��T�b�c����\�����7o^T�^--M�.`L�	0&��`L�	0�M ��ݿ랣���@�	�yc��x��ك��?�}�h�p�ԩ����/���֭ǵkא����+�w��"=\�nݑ�@~�h�۶mGPP���\��u����JmˣW/�_�N#tK�a<
���pw�*ꅄlF�y�m$aV҃�A�ϩO��,�r�XC����S}���E�&y�`I�Վ��+~��6-�C��t^�,�>.՗ �v��S�1�1�OK�2&K��i1Ss6�s�on��`Y����s%Kf�Ow����\�
�`�\����B�f����r���KK�D`C�P=��ۅ/^��WѢ�P�
	�5jT76M>��`L�	0&��`L�!����<ќB����0=��
�V�[����租��%X�t�g͚���L�6
��T���S���
+kk����e˖��e�ȓ�X�p�ZL��={��o�����"�ܳ�Q�D�zNuоMK�{Ll�.[����"r��"y�R��q�<w�<~�3g��ogϢX�b�0~jT����u������!!�P��M���E��o��$Q��M�EJ�����C6E�`~�+����G����j���`��Qh����ܹ��Ӧ��իb�S&MB鏔i�n�{��S��ꕫpus��F�\G�CE
p&�F\k
=���W����5ƌ���(�r��}L�2
W�^���6lH=��r��<�`L�������勊�BbR��ť��t���R!O`*�j})�`�X��+D$$$�������L³�B��T�X5>��`L�	0&��`L�!����<ќB����0�=qqqX�d	FK���j4��;�%ї�}]]\��k�"O�<�}äd���NNN���ooo!��5��ޞW��N@��
ű�Ü����f�ƛ7o0l�P)\@��_}f�›7��5�E
T�l&Av܄)���4j�gϞ��D`��h���3�{����;6����_a������g"��-�+�ȥ�|�T)*ᘄW��W�ԟ{׮8q"+W����!F�7l�HԨQ����,ƹx�\�n��T�V
�n�
��5kq*�mh�G�:�0q�ʩ<=����"O���+�U5�Q�Ơb�����;�����gȫ8�]�L�4�&`L�	dSf~�aX�uAo�*��,<I�%!��*X�T��mS��T��BO�gy�����'�{�D�k��� .6N���T��X>��`L�	0&��`L�!�pXj�iRZ�gt���il��˘������yc���oߎ��1q�$�����W�;w��q�=$%*�B���$���j��]�~="##1{�l���ޣ�Q�vmcCP�''��4o��[��C�]��Ё}��T�y��
F�y4<Yid-Z����@̟_#T3	�MZ������'/	���y��1!�qrF��C���Ct�kt��a����ɮ�p�����NM,����_�9x�6RG��`g��)@}�8u☨����4k��;w��٩c'��/�5j�;w킃}n��Ģq��BV��螇RvFDD�s[#9�W�NHci��v�����G�&MX6�*�ZL�	0&�M���9,��N�>���]�<r-�,EHc�m���d�˗�ʖ�C�<z����D����9��ٳ�}��=}&�"�_*$'&�N�:��_�
��`L�	0&��`L�	�dW����&�a�ܶx�:���P�Y��rgҸĖ��w�5���]?�r����2f'�]0̼1jl�w������Q�r%\��2��L��0` �<~��3g�L�2��������͛=j4�4m���SX�f�2����Z�Sg~à�ä�G�@˗,�W_~���I8޾}l��۔t[J�rX.���7�lb)�������#��u��� �vrF��S�BWGR�h���F%g`c�1�gL�	0���������⅋s+
Z�"t����_ʿK�]Dz�����z�KN&Ob�7K�M��x��1�/�6�>�#�DZ���rW�^�o)&��`L�	0&��`L@E �
�����ڵ�I먷�1�O}/��i�y������:!�&
�{"Oh�z��B6�GS�AG
�[�N]��:��=|����"JUWcH����3f�ĵ����G%1v�hԬ!�����]2����>]3ר�F|BfΞ�#G?_^�1�6H������X��9���&]Y�T�����������GѢE�t�R��ãb��� �� $4	�����/��RѕӗBJ�{�_4k�}�����Z��zl*x��%ȗ� ��^)6�Y��ѯ0�k|��n�&ME�|��߳/��v��~�"�qH�\�p}�:�C٤i������˘�2y����|��*7�R`~����^�G�Ӛ5E����!8��,�/��5r�������[�#�JxV�q*?g$Oa�o�I!�)�p��}��ЭX�r�2vZ_h1���:L�	0&��	��9�`=��1���F�UK^���DZ�¾w,��%J�&����_�o��@���
�￷p��]�����Nx�,	�R�a}W?y"W�V5g�<;&��`L�	0&��`i �]�ݻv�}��&�T����S.ky�RG���Z���kԓ�ժ.�We�z��T
�jX�Θ=�J�y�0#��&�Ѫ�K�V�z��h��g�>hݦ
ڵk���plDp�&�\�X�z��y��Խ�����a�\#ר*�������㥿.�䉓1|�F(`29�k8��祝�4=��[3o��2��vl߁��ڡG���&G#�"`�F��Ѿ}{���
���?ut	�۶mC���9,��3UvqqÌ3P��2��忯b��	ز%1���l�2��?~,�G
�L%66K�-�џ���OĹӪsϞ����:u/_��H�/[89�o��شi>��L�:�J6���ش)�11�/&胪�Sh�,h�v�SO=.I����C�ݾ}S����ի�P�&O��2�J�Qܺs��L����}�X��'>h�$0'+�w�G����BX�_4�2�����ݻ�1y�4\�vn]�b��D��3���L\�	0&�4	��9�`=ܵ�����#��#����I���)jo`z�#!�BB�p,�⎎�!P����U^�ԁ��W/_	�_�;A�f�
�SX(=�
��([�,�NL�	0&��`L�	0&����@v�%Q�B�R�����ť��/_£w_l	��%�&n��[��2�n�B�ة�U~(R�0&���>��q
���1e�4\�z
�+�ɓ&�T�RhѲ��ݰg�^�1��v�څ1�G�Y�&"�&��]���
�ǔɓP�F5ܾ�S�NհW�li\�t��L�v==�a��E9<)/����={0|�Hu��njA�f�QǩN?��mZc��B(����s��g55�Rz"�N`��=X�~�<}�R%Kb�(o|���T�^��+6�5Z�n#B�v��{~�
kK��ݦ];����Z�"N-[���۶n����_]N���V�J5�><�L��ݾ��Ӧ����4�h-odɳSo�֬�Ia��5e����b1i�$��1}��u�σ_v�H/CH/}�BUQ�
��QHfʗ+�=��t��|QD{��t9�J���)�'L��t�{C{HZԹ������]��d��'�v�j�g8mW4�fL�	0"`����\f����?��0xR(f
-�f&�6!1��VB���@��eagg+�$%&
�`z�~���t��{�s��͝;���W��Wx�a},_��&bL�	0&��`L�	0&�T��l�B���8�
6D�o��Ӟ�X�p��
C�v���c8z�(&M�$���.��Ӯ�8p�֮�Sw-	+��y�c�N��\'O�DhH0�/['��2e*J}T
�
�رcP�T)<����N�1p���|��{�a���X�z%����o 7i���	���%K5`@�֣>'�T��8x0Ǝ'�'��ȑB�"�ag�oЧ������r�
!ܨ=U�_InҬ��Z�lYD��!(p6�$!�c �\��>�0�{�t邺u��ɓ�ض};|}�aȰ��رsjN��������66�"�u�,����̞=��̄Sg�YjV�4l�=z (0E���ƣf�*�B@�l�d�:�M/��?b�H/^,�:�n\�X駡��Z�$��<dɋ8U(tc����Xu�W[yն�Qvj;��x H�W�ѧD�D�ޣAo�-Z�..(_���0�!�@aP�����`8�3���(�����έ�,���	lme-��'�ᖄa�
R�x1X[+ߦ�"}�^�RG���q��=�y�II�� �_���kX�o�����R~�X]>��`L�	0&��`L�C ��`m�_mO`}�$f�~�"�V���%���͚�����a���z��o_T�Q������x�:-Z�FD�899)J���
��͛x(�,§�^HDD�����l����cGamm%��KpX�a�ˍ��oкu[��F����>���ш04l����]nk�qۨq�T0٦~�T���>�"A'�Oϱ�p��m#����u���
Qu�v��m�P����]_����P趝8p� /Z{;[:���HL�8ӧ����	M�61�)"<ylmSr����]�v�;�b��B��F�J�����S�N8p��m݊�RR*��=�?�O�w������`.�6��Rڇ'�/���{�dkU|lrm���`9�����������P�g})3�{&��
��$��.SVVV���Z���Ww�7��+��?���T��O��w�?]c˕+���V�㞙`L�	0&��`L�	dA�]6�>`
Y�]��GO�]��A��;�����#(`�0O!��#"`��Z-�F�V��:�=6n�
�v�B;�lS:N2	�THp=����G��pa�ݶm�#,��6o��;w���M����lsY�Ut�6k�J&aT��/�/	�jX�AKcS��/����s��ۯؿo?>��<��ۼe�[�%����������A�ֵ+��� W.k��(�����:ΠܨI�)W)y7'Ѿ�*��EJ2�B�<��*	������ŋ�Q��}��֭Zᗈ#,�r�p���1��)�J�7�Qm2#�MF��`9������f-y��*$�R�g�/���ȏ���#O�<�m$�I\�k����ӧOq��uZ�-L"0	�RIJ��}e!a�d����
p
&��`L�	0&����dw8�9�I;�]���wa�*?���]];cs�V�^�V�d�ұ��H@����v�]�v���0��[�>eaU�{�A�J����C8x��.[
)�.Uw�Sg�N(�r뒷.��ܱ����+�a��XT�T)������m�vhݺ%�lق��VX��$���I�������N
����B�]��ܷotuwa�oܼ�����R�q�̜
;;{�DGc�qb|�8EE���l�<��cʜ��q:�u�_)T�E�Q�pa���`��8�?֭^���t��C@��{-f���7F3aF�e����ʼ�z�{�s8�L�xL�	0�L$`���l`m_�x��.�A!��C���\�LY88�+=�O��~���e�����ׯ�@޽�1����T{SN`�L���jժ!o�����0&��`L�	0&��ȱ��l������
 &�5:wqAhh(�:��ի���a�֭"$3me�<t�0�Y�E
”�P�z�T�o�{�3g��ŋp,^�F����J>��I>q�7i���o�
*��S��j�J����o����<{����X�b�F��p�$�R8jv��1*u��	/Z駼���m����Ed�I���ӿa�|_ܻ�E�ƀ~�h٢�z	jש����j�N���O2�-F�/?u
q"X-�px��W9^�J�ḩ�N"::'MƯ��E�re1q�T����_���Q����B��V��(����)fz�yc4���vٙ��OOy�!�+�\�`L�$`����\g[�� IDATU��_�˗/S�"ѕB1��kcm�
+���N�y��x~����@Ka��<y�۷n#&6�7�NI��+v��`�7�>�V�ڻt�m�`L�	0&��`L�	�H�]��L�$��7����†�S�JV��J�P��-�r`��g�B��J]J6�w�q�o�}�yC��]�����Ѯ'��~�˓�/Ю}{�8����KrN�-s����8nd^�	�F�M��1��As^Y�7�ƨ�)Sd>/��£{����P���Q��x�
��("�ɋ����3tKh*���eE�4&rL�ޭ��9щ��(lݶ���G�|���7���U�Jo1?������=
������N�d��+���Z\�	0&�r(3?�l���,	�$��ە��P��d�]t��$����[ӣ��pДw8%9I�JX*$׬Q��s�gO�	0&��`L�	0&�ލ@v�M��^`��vhS��
�=x�ܴz�C��4��z3C�KZ�i��V^��ҥ�*�p�
1x� ����ෛ.Z�����W�|������I/?S�7��3G3o�����������M�6EXXV�\%7l�0UӴ��V�Bؑ0�b�90�Ǧ1�ܹs��Z�ja�Сظ1@̩S�N�ڵkz�m��1}�o��{M9ԛ�o܊	0&��?3?�l�%����V
�\�D	�,YR�mO�<��=`�4�-��U(E����[�Ĩi��W�Γ�5k�4aF\�	0&��`L�	0&����G ��r`��~ʋQ�в��ЧY�͛F��R���d�)�ء�yc���S���;wF��Ba֬Y�w#¥\Ԕ~��޴i���q���䄾�}E���׮c�ƍ"59�P�^�P��Q䨶��Eǎ��c�v(X~��"E� �M�^���Q™3f��C�D�x*���}||p��s��3�*U��G�1a�D|��g�ׯ�߿�u���ڵkHNNBŊ�D���ŋ!11AA�8y�$bcbP�re�9�cai�����? @��#ѽF���e�p,�=ˮq���E
c/������e��`L �0�s�&\8����H�"�\�D�U�^kk�B@{�=p�L�у= у��Ǐ��I����U�Ve�_֓�0&��`L�	0&����I �����;	�b�AՋ�}S����~��r�Xͼ1j��;w1�{��|��!|f�@Ŋt6KKhy���c���2t���|�rt��
�:u��A������x�*S�NE�*�1a���,y([YZ�v$1�l:�h�"!�4	�	"W7]p�����l��m*&4F��$�<::ӧMC�*U0m�T���b�֭»��c	L�>
*T����żH�۷/��͋ys�t���58/�����ۻ*J�-�bE�����r��ڥ�����y����qx�Kؿ� =z���Qo��\���_���~�s�F?KY6v�y&��@�%`���M�r�-ۻw�k[[[	�DH��\6���zC$I��� ��_*�wK+�%���ׯ_㯿�BB|<���D`��"�&��`L�	0&��`L@7��*�رS�A��w�M��0��E����Lc��9�����'�`欙z��W�����gυ�+��{�@�R�0�|H�Z�h��_-�_i�P�X����C��]�f���!�����/_��
��X�&]p�nݑ����!!FS�I᤭���!C�A������`*����5�u�K+K�g�!VFג�+:�:F�*�{:k׬�ϴ�B�r������s4r�O�<={�B����/�<���I��ʖ)U&��9�
���q&��@N&`����p��CA�[b�ʗ����?B�/z����~:
�uUMN�Mu,--p�K���b0���Z��;��͙`L�	0&��`L�	�l�U&�D���}]�^�_ ?�-�N�7s����v̼1j�y{��F�|�����X;��dK�X�-���T�X(�q�����,֭['����;8�w�^pvv�ȕKi�($�$��i���%/duSRR�M*4'�*\O?��L9��7���{¦��!�8�����H����X�jF�����`��޺$Ԫ���
_߹�U~x��*�T�R�^�r�X�n��Z�W�ѨX�J�sUacc�� 6(P��й`L�	�Pf~�a8
�
=L]�p�1���/�C���Z���F<|�ЭΪ��q�x����Q�fM!
saL�	0&��`L�	0&��Ȯ0�)�`	�yc�W�|��m̙;�F�a��50�)9������©DGy��!N�<����^�rO٤�D�C���Z�
�l:'y�Wq||<<����%j/\�P�-�r�gΜ!�P��<`�@!Ϝ9eʖA�n�ն
$�%�[�36$��J`�/�%d
����wFy�V�r�	�
Z�l&%����u�6�^����Dx
(�KL���-\�s��2d�	pE�`L�	|����p�*^o޸�J�+k��dG�� L��Ǝ��'&%��(U���<�f�[3&��`L�	0&���yX�yk�3��̼1j�����E��>}��y��8x� ֮]���a�����%t��߉�n���HX�o�&��?y׬QcƎ�����_�2e
�+�k��H�x�b��L�q�V�B�
0d�`l��צ�s���q��)1�7o�`͚5b�������?��g�~��^^�߰��pww��G/�DGc��/�������9���k�N�ؾ}=��t�Ҙ<y�����!�S�r���nJ`���Q=�1.�,=�{,��~�Yv.%�q�_�c��I�O�t^vnڔI&����𛘧��`z	��9��t\{�	��K��)4�B�P�0�,–�8��7+�M�`L�	0&�rգ7m�Q��2�Y\�vC��H�2�~�Y��s�`�lNN ���:w�cL@F�n��8�2���7�9.�5�
�����Í1qqqX��G����0b($��8�){�택�-V�\���`���*U�ѹH�"�~�ȓ{��M�Y�|y��色e�
a���...عc'�/�~���P�l:'y�RN�.]��PД�7x�f�{��zs�fܹsWx&7i�X��7z4�(6n���۷s%�����G`` �=��d�hC�ŋ3(�)0=/~]�QQ���N�y��<����QR�Q��	L��B�gMKK)RmڴF�*��1���\�i�U�T2"W�1��L�	0&�!`8���SŃ	�
3�V>�paL�	0&��`6��K��Gdژˠ��d��.mR�������a/���w�p*q'�̝���"�pF�d;L��,�����z1*x�����Zc?�:�K�yJ�vZ>=F�_e�t����oμ�xVL�	0�4`8���:`L�	0&��`U.���^��;��u>A�h���/p��m��B�ڕA�>%0k/R�j>t���w�3�3:C�e•I���|��C����u*��D`��f�������f�˦����*�q����1�h�+�aW���H�����>�1�dL�	dG,g�U�13&��`L�	0&`n�0y���q�xx�>���|$�)�C#p���
���d����'Qĩ�<�SB9JOZ�^��u����9�V�ǯ��/����=Q@n��
yg��������f�f�����,�f���,`L�	0��E��E:��ɠ�&���7�Acg3L�	0&��`L +P	�$�Q�gy�=zT~`n�S�>��Y�B,$q���?�C!��W��t��+���z��U(�A�?�ϟ�gx!�8K�${Ԍ�%�M��R���Υ
i��f%�@�� ��
����ME{��Z����P��+�b�&h&y�@�{"͟�JE���!a��^��3.5/=�#���Ov��6��4�	�$X�x`������������ٻ
���.�%`��X��=c����(؁X(
؅*v"�؅E� v�cw�
���{�{����A�=��:��w9묽e��H���h,��7�n蚢���)��T��t{��W|Xh�)�����4;Gk4G$$$�aÆ����
MY���$�O���9Y��9Q���h���'�C�U�)��%^�#��p8�l�'���}ݕ��{�}Z�-G�#��p8��o�����:"I�%�͜��}���#�qw�d�(�_�LK$ }�T���(��G���C?��I��	�˖���Ì��K!����@"S�����6a<ꗊ@j
ׄ����k��>�w��ұM�Of�!JH~�?��2?��H����'��4�-
�l�64��"�@�&�!Ɨ|��TW�."��T��'���_�ƥ�u��:Q"�G�����0l�m)GӼ|�A�B���J�C ��>',i��QZ'�~ı��x�>qz�a޶%�k�c��u-����̾neWxǎ8p�V�{xlE�^�dwA��Xhaf���`�l�!����iG�A�-�Z!��OM�I��UJ�H�>i5� �?�����'O�d)��/�	v�Q�j�LᥕA�q'��cDZp�B�
���%�����x�R�<y
y���1�Ѵ����]���c�o�����2��Nk;K�G�#��p8�Ng�)Sn��~�7�&�G�#��p8����)>����p��D'��cL"z�o��M�d���w8x�\�ip�
v"599Rзc4�[�qv����q���'��n�*��h��)))(R$RR�yK0^Eģr�*xr�
�=��u��(˖LY����ĥ�O�����H���
�Ua��g�<��C�HL���ɰ����M'Px��0w�%�&�Z�D�4Jœ	��l�;���^#".�7��5Y�G���΀cr~6�[	�.���m����yP6G,fO�(��O��Lj��Fɢ�0�
����v�����E��'���"�dv�1����A��j߻IY�]y���Q�h	4��'�ܾ��OߡR�R�c�	�d
b"b}]D�H�3Ƨ�h��i�
���`Rf�����_D*���8?}����h��:�f��9�y�թ
Z�)��
��0J��~8x��ucl���oq��^�w��&�Re�sS����(��҅v��A���[�SE+nK��=]O�B��:�(S�J���~~m/�`�&R�V�9�D��{�����S�G��f��1��jk�AU�/��jŭR�da�.حC�@��>Dӧ�Ζ���hӶ-ڵk���N`�����Y�@���P���P#.1���Ghh(N�'�%���7bb�`ie��w��b�y�i���wt���6����Џ���	`�n{^�#�
�4!"k��FU{��z�3~Y��zT��*>������}���3���G�#��p8�G�� �)���o�n�jL����;��߆��l����c
�#.V��,&����X4.	�	����^�ʪS��_�s��a��!	�>c��V	��Z�)R�eKn<z�A�^��.����i�#O�^��u��p�N܆��CX��	)��xW̴��3ƑS�����Z���8���&����u|��n�M�z�[畻P�ϒ�ұ.���_�qCaR:8�����~F��\��y�00��&���Ŕ����l&��usPP\W���e����o�ӧ��.�KL����=��� ��),�鎿*�G�K`��%�ec�Ջ�9]��ϟa��A0������{X3g`0a�P�?�s\}�*TĐ6p�Y�m�X�q��$0y��<|x�c��e
`1�w��b0e�Z�1oK��쐁.�|����h�=	�4H������b�2e�-��>WF���豶��z:&zАaزe�r�#%%���+�ײ�
www,X��Q�Z59�)-��^�e�"<|�eJ�ƤI011A��Э{;z�)A�_����C?~�Z�ē�ϰh�b����.U�&92Z2�6-ͤjY��79%�z�F����>�/_a���K��*������K,\�P�>�s��
8���(.\CF�Vf8p^����3J���lmQ�f
��-]���L�����=z�[�n8z�(ƌ��7n�С��>�OǏc����ظiRSR�4g6jը.��avp��[�=�n�@��U��Ţg�^���Сðc�v��� %%����n���̀�S���Ѿ�W<�T�ק�X����r+a��I8I
`��?U���Çaڴ�([���kE��i�D�T�u��$V�x��ุx�gc�X�t)tt$HMM���=����b�Jѷ�ע.'of�~�_\�~
,�{���0`��0)�ß�III���b���W:^Xhv�ډW�^#o޼h֬z���0�l�,^���e�/�]V�����
LvV.�
ݻ�������ag2����
�|�9�DӤ��"lb=��*�@�&�u�:I?��w���5��iF�u�@�@���c����G�#��p8��z�9�6Q��p�3m۵�
2!竐��H���yN�5c�(���,�1F���VEX�ߤ�8'p��G�X�`���
Y�-{.��3p[a�Ң\���-o"b0wBW�_�]�k1~�(t� 
Ma�)�.���^�Wc�����LX�^�ڡg��,tjP�ȡ�q�YBD�U|��	�Z25��+�~�-����ƯF���Ш��<u#:u1��3oNix�n��s��d!�o>����s����[�E�Φ,���oX��^����GfW~�5�O�ºX����qĹ/��
�cWbD��h߼2�E��,Ǥ�`Z���c�y�^��UN��`a^��'����Xظl�ˢ1�a$�<�b�f���̴����;1���6�"H}�X�d-��wG�Ť��ƛV��V)���ੌ&ro��7i�&�Mq���^��F�D���p���:u��NE���0���]� ��!b�52E�t�J��q2:u���
����];�d�R�j���LCI�O�;��01)���}���q�֩��]�b��}�p!�/B˖�9��K&�)x��ײu[6=�u����'����C0��J�K��Rq�0y�#��ك.]�b���(U�4N�<�Y�l�eK��(�+(f�[c�Ɍ�`o��vؿ���DxRX�6�[3�G��~�&�6m���
�Z��!��ܥV,��g���IK��/|���=c�,L�6
���Q�n��?�=��a��32�$̓O
=�H����,[����`ֲ#n�))!��]����������h�+eЂ�i�u��;s�V�X	��hՊ(a�
5j��h��v�RoÆ

RI�
�O�>���Ǹ��Q�^]��_��*U�`���<���&�x̛;�k��X[[xyy2��@D߾}3=��`�n�e���*��Sť+*DE��4h��3
�רN��Mp!�(b��Q &�D�h�Gդ|�U
X�M�b��)�Ww]3�n�I���3׮_����W��1�F�eK2��CN����=FBB<�����HJJ���#--
mڴfߟ�z�HLL��e
�^k�tM_���~���_N�B��M�p8�G�#��p2�@�z����+֞�=vT���d�a���/���x�h�����1e J#���e!��Ȝ�y�/�C�?LЧskt���6��C������@��R�t���X�� \f٢Q! �lsHL42%�����tuX��#F�OUFhދ����wo#2.�?�`��pT����������-mho=@ IDAT�ꡰ�h@P$�i�m��h���G�"�`�d$K��	���]��0���/ޖ�rےbZ ���d$���[X�+n�m�,?.�D\�����u_>}PJk��R�t�L4?��[ǯB���Ѿuu칖w�Mp�=�ڳe�y�ӂv��w$�8oB��Q0�#��96�ڴF��e�R�<�X�`"W�������O��ovo6w<�V��/Y)���XWQ	�JL�۵[����ŋ1�T���AX�~-&9�c���Z�# ��Ѐ)�ͻ���C��S�޶:"!�� �{�s�vD�>r����Z���#�a`�ψejG����062Dll,,���в�4��@���LiL�_
��ӈ�`m;tB���)�pڷ��W��ʵk��{��9������%�v����W��Ԯ�:�b�플s��!+%@	ˣ��τ��#Gٿ�/���0�G1grjZ�j-G��	`e�HCcK����?��� ,rv���1�BN�|x8&O���.Ψ_�Z�h�pR5O�DB�2��}VX(i���оc'�+W�+,S��	�!C�k�.8z�8��݇-�6f{���3{^�z�T뎎(X� ����F:�V,��cRz������q��P�p����Ӄ�������9sR������}�􁑱�ͻa����_ ?�O���E
#1!Qe��}���/��w��A
��W�x޼y�~�:�Λ��+���>c���F��ׯ_c�wvP��
*b�С(V�(������s��!6&+UJ�F���f�
<<=ahhȞ[իWS���&��///�<y������X7�|Η?,�Zf�Aq�>�m۶-v��
__柲����!^+�`2V�Q^�/�T�D p�7l�������2�
䱘�{�"e��'�����)�ebX%�9��BL��3��C�����S�U�Z�F�@�+{Ñ��'���%j֨�"��8777�޵
!!'Y4:�T�n]��-�����>��3�g3gρi�ư��`�q��p̜9�]�3{6L���e)��Hpe���8�_N�:s�-�p8�G�#��p2���&����Ǵ�,N<��f�E���a1��D.3��9e J�I'��X1u�;�n��? �=�U˿�׼��Fc�v_x;Y�l>)�y(�	Vy��"�q�_@9LJ��=�!����#`QM��`��f��\6����g`��f8��Z���2Go%cg@ ^>�^f
`ߵz:�,���v����ظh�0��t�?"t���P�A
~6�ǔ��ݎ�H̙ؓ���x����UcP	`������|��PAk;?�ǎ��B+AM�q�зcsthS����۝m`�,$���8w�V�T�����}���x� T��m�	�)�l+9X��F�S�7?`��Lq��Hq�y��[T�e�+�"dwX�+���z�Y[��i/O/�oق!C������ۆ
�> �P�����G���p��!�f����w6�?�m066�����B�����T�ZH�T���F(��� ��#���d�`E��H��Jǣ~C(�o�:�w��6��ܵ�9���2�ףg/�p655e�t�ԉ�����#._�����_�Ҭ^g���rC�XP����p:,ƒ�
JX"`�Q"����Or����Nw��k׮E�"t,�OJƀA��0t�`xnuG���~_���4F���,�@�{��mY--i���"w�\��/�U�~X�x!���������r�����s�V��l}�[!�[^�x������훷�7>*T(��VԖ���n�p�a�����6�t�v�f�3f���{(Y�$�\�Fu�-S6���!����kK��;�]U��-_�����G�FRr6n��UF�،d��Vv�)R0�K�ytt�:9�R��pr�����k�N�����p�����c�ܹ"���<y�`��(U�\]]��8�&���g���]]�=����Xk]=]_��9�gu������ڵ�A��Q�w?�o&��W��);��m�v�E�1)^��\��)S�2�R�{h��t������ʗc��K�Q�գwIR˅�������Q�N9�W�Y���N����|�Y����۠1�ը
���
ԪU�Ea�B��i<]]=�/W'��Uٵi3f�@���o��K�#��g�u�#<�2Ȑ��u���-to�>�ƣV�j�݋��1k��a���[�JCeӻ��,pq��˗Q�hQL�:5�UVz�������
|��DP�	�޽�>�2d8z[�F���3��}�b��i�V�k�=,pv���;��
��i�P�rEv����~���Ў�Vm5����
p�W�nG�#��p8�G�#�Ph�%K�s��j:Jx_��
>X;{4��?sgm��ԡ()S�R��.�H�n��D�ry�`��)\��u����j�̷�:�s3��U
>��KlA��(����FؠgU�T�C�����Q=��
0n�:̞;&���O��w�\,׬��
\
E�
kP8��H�x�0g�:L=M*1"����!��*����s�*{Vg��Q�x���<{�
�nڏ����`��L����`�|���Ώ*�c��8�X�l
\퇢FiC6/�{.�՛X=g���_�#_.?�¨U;`;v��)��6��}�<{�|K1L9�i�1~�%�t�F��B�
9�#P('P��犋�}$�+�;���L�%�8�-[1����
�v��VOO6�;��K�V�1r�ht�ܑ��>y�V�X�!���3�g��
	
Dpp \�Js�!�Q�nt��{���˗X�^u!��h$b��Z��2C��DO�6��V�h�#lئ���;��lܴ���EϞ=Фq<{���w�^���YI:=-I�iK�Z ����BIAd��@f��{��)gϾ�{D!��:��a��E�K`l�1�ј�0�}YLQ3O,%�Yo��R>֫`�����Ts�(P�̻I� ?zkW������ل���&2?P�+��V]�m�,[��.]b�`����f����Ɨ�_�ʔ��d�|����U�~A�h�)�q�-�IlZZ*���nڼ	�Uwm��a���d�c*�'e��P&RRS�_!�4���;v,#Օ���~QR�K��:�'G�}cF�aJg��ºuk�U���Q����H��iӷ���r~�"��o�6��`a�۶�����X�؅U%��`�ԕ�N0�
c��pFNS�۷na��BvM),{�Š��|���ڢp!:��ѡ82x�-:t6oތ	& �h@�3����7����Y3qp�.v-2:����]�8r8�^�R����Y�)�e�T%9�q�&f͚���v3�(<~��`e�~��q�F
�ʔ�Ѥi3�h��/_��+�����n��nj�o`��и&&%�f�-R͚�a��!LQ�ի��&&��¬�,…>&Nt���Y��ࠣ03k���`d����4Wv��H�a6��l�'���q�9�	_�D���HJ�-8^��C�rII$���Em��ȟ��xy�p8�_�h	��v��݈#��N�"�����X?}4L��`u��x�����;,�샹.v,���8|���02p�,w�)VFvEd*0{�:�0m���j1�� |>G�\�D*~J�ۯ�ݫ��µW��i'F���%8v�V�Ŭ��,i���eX1�:���S�p2�8v:Y!��)��\����1�;�O��<a�/��I�QPx�&�9��c�m����9?�ͳa�z�����
��԰u�l?,X�c۠���ߡ`�"���k������
�G�d1}���B �]�RC��
XU�C����'�,�l{O��V¢cKtmS
�g�~�FT*]v6]�h�.���5NCX�e��O�Hs!/S�Hۡ�wB�+&tAa]�՛��ƓO�,W��y��/��P��x8�!v��������>�m�h��ʕ!��~q��dwX�yT��vD��š_��غ�yr�DTT��\���J{x��`����jU*���/
��-�.���wP�X1�o�6�)�s:ܲ#���y�?��KO�>ş����$�KJK�%�A�������9M�~�Ҋ�ݻ����Yf;;;ܺs;w�dj�իW����(T��֭[�5���ŠTˤ���,�'٘��&SS;"-��ICW���z�j9{ڴn�>B=1|��u�;Ph���)u8���j}IH˂�D�`!����s��z�J�)�I��l��II�0cJt*R�oZz���	`R�;�#o�|L�*V+L~(#��a��I)ƀB{zI	a*���,�:����K�-�#!������_u�(w/)��ԥ��fZ�K�g"K?~��RL9x=�z���W�O�F�������m|�Sg��4�3�˖�h����>�Epp�1��i��xt��A�XSRֆ����n���g�5"���wC����u�L,#W�B�u�N��C����� V~���y����6�ٳ���󡧙�/^���+���3$&����M,#r��/a�8;v �Q���Fb�H�Bh�t%2��W�l�
�ᩤdzS� LF�n����axF�&���Y:lֶ#""�(�9����ΞRm���w��NI^�~��[=�hҴ���˾}����r�ӽ�q�Z��?٣��k1�	�V{���l�'��لqs9��^�|�����A�� ~��RRS8��d��j5i8!^8�G��F�?
u����޸���MP�q3l��B�?M�W��z �Q���$&����G��+���"������|	
�<�����;���'��U�z�mV���VD��k<�#1%
�Z6�P�pZ⁰�Q0>̱�r���$�ܼ��E�Q�F��ʗ�!��g??�4]�0΍��=P���(*J9�^$Vm�@��`R(�Zw�/�:��Λe��à���g�
���⭜�J�Ͳ��o�궝́Q�=�����^�D�\�����c��:�z|w�x��E�8�?�܏ź�n̮2s�qxo�6�T͏��'j������������p�>�S��(`��Ե���×qX�Ꮘ�x�+S%�����ʼ�6���W�DJf�S�o�uO��ܼ��ӧR���C�^=�l��O�<�4�q/^���b��u��σ�4]�%A?-�	زb&J�zP�׾{�u�dwX10�'��*�����S������9hIi�6��u�b<U+F����y@A�)5���g�j;v�L�5����S��+jJ5]W\)���Ɋ�T�iY��jR�ӌ8�{�N)�u.e�`�̪�'��l�>8��D5Z�]���Z�ɧ���t0�T��(Z��w�&��䡭�-޼~��R~Xu%66��b�R6%9��Х<�t�I]��	
`R'&&�z�pf�2b{��e��r�y��ga��H9r#�,X�P^]��ѣF��[ܷ �u����>�J�r~E�ŪU���Hq�W������N�
XL��7m��gNAO��%�yK3�� ���1�
5A�Y)	+W2K˞���7�Ã�а3hа	#b���07����`ڸ	iOk���}��S&OB���Sq({�K���=0���������"M���	2XJ��i߉�n�e�/�^���Z�=��2�Z�\���C��]p"�8z�����r�a+��xt��	!!���7ӧMM}��}�_�4��;�0�Z�M�/r���F��M��f\�t5j����}�i��׮�N8�߇eV�����gEw��G�#����J��z)+冥�*ڤ����T���
�L?I�K�hωr�Ҷ"��k��=�:�m��uŐ�I Z�7�Au��7���IL}R=�
�l��餶�P_�SO�_��(L4�Bc�0�E�{�O����9�'����sR�R_l<QHd/�ą�f�Y�/}NcQ��3�RZ�cR�d;�Mx���4_d/��r�*�%ËT�T�|P􏪐�t�
�/e�6��A�Q���	j�P�+Q?�aI�)���
x�Y�@v'���A�X���J[M�6}j�CJҶ��a�a�ճ�Vya5���s��ڿI�9s+W�d9`۴mJeA!~G���-�g0�[B@[Y�c��(�l`Pv���r�RxgR��~��Ipu]�7�c��Hԩ[gϜe!ek׮ͮc�Mt�|�
hҴ)Ǝ�m۶��W�53��yf���P�T���=��iSQ�f-��c�V����{�����a!�����ի����&ry߾�,G�p��(U�f͚��lϛ7O-���v�I�d��ᗜ�������z��H���+b�m���
�TD�a��
o�߁[7o��r���6#G�q�F��
�6l�#���(�:���̻��<�9�Q��܉ �>�� =�5��PZ��r����r�)(45�ID,�</#�۷�g&�ps�
oo�t����,���$�.^ϭ(\��r���$R"���ʗc
��}�ǣДK٪?l�߉
�����i3�0տ��p��-=@�"!�M��I'�&M��Q�BF��������5+�j��00���%S�o߁��0lذ����x�f͘���5g6j+Kxzy��K�9s&�6{�,42m�~�}��\Ύ_��f��N�g����5 �Z�jHI��Έ��n޼ɺ�~/���^�N?���G�#�S�m$'���_�C��C��7i�x$�NP6Л
���Sh�GB��F�]��ԇx<�<�zB�D�7�.���^ �5�'�M�����
��T�I퉘UaC��$�`�"�ԧ@�
��g,�hC�lP7?�ۤ����b<�~�U(4��x����x�υy�:�q�w�<��V��gԟ���{���dwX����S\���~�)=�{Tt ~���G��r2"�o�qq�?~S�.]���:,�	v���Ê+a$S�	V�	�H�x��P@����n�:����ܹ����C�ʕ�\�Ha���B�߻{�1�022F�Z5Y^�<y�0���$"-����ԫӦM�;�����UwMP�R^�={�P��II�۶��Xh�h�mx��%�?L�M"�)'����b���t��%8W��X�d	|||p��	&<�X�S�+VT-���ve��:����Y��'OB�#A����G~j
-�C"���Irm��x����%���֗��7��i,Z����֌pr����������@,ruEtTTz.[�D�l)2�Q8fR�2B��!���5kq��)|��7�C/_�~���w۸N�K�B5K	`Sf�<z��?r���\��f�%K��#b�r�[�M�����,Z(��4.���-��q�X�4Æ�ҥK��{��5f�v��`ѷ/���N�d�|��%Kv>���	�֙˳��i��߿�ܹs�~��;f4
ʏ��$�\�
!'N0�/�p��NLLfs$
�ߺ�졯�鵥절�Z+8�O����z�{��x{�G�� �	�3�#�Ȉ�$W�Z��Y�8�p�u��c��~g�|p�;���9�G�#��d3�;�
��Kk3���Y�[����{��H~�������Y��%��Ð�oe�TU���S8�G�z_��U8)�+�#>�I�G��Ő!CP�v��b��r~��S{8F�C�@Y(jM�%��Ϝ���M��t�p�xf�M`Mm�\�ϡxn�W�����p8߂'��-^�#��J��T�2�ҾO����#P�|9L�:��:�1&&&�2eJV���޾y�-n��8	�zB�ƌ��D�u�+Ə�N�j[$ܽs�U�
L�E\U���׮"_�|�4-�@�N~�y IDATk��y=�G�#��p8�ٓ��ߏ>}�h5	��
&^)� �	`��	�l����LQHe�ʖu�ِ
�XQm��4��uU�(⡪_m�S����2V�rCGeJ�´�SPK!v�nU��BEe�c���O�_Mv|�z�m9���'�.�|4�G�+��*-T�Φ��X(���D�-[~�~�_ ?k���:�v�:pu]�wo��U+ԬQ�>�Yy�$��$i��&�$��4!�`��>����S���Y�n�;_S8�EGGW��S��j�*�����0�)W�\�?�?:w���N�qUeŕ+WX#Ro��C�C75
��)�KK�?V$Hё QG��Զ��������q8�G�#��=�~��;v "�޿��$
Z���AV:�Z�HaV^�{��⿇'���9'����L9*�eQ�?E��(#ֵV�f��3�G�# C���k) G�033˔�Od��U�U��5o��>x#�@V!@p�J�����uoie���0\�~
�,NjP��Ƀ�dF>J$ԨY�孡\+YY҈��Iĭ��'�֮���-���K�0�gL�����ߟ嵡���',[��=������֭Z�k�_�i���ֽ�َ��|ڌ��=T2�)���s��ĉ���"a=b\UBc�3���iM%���0%�q�_��ܹ
���h�
��8I9e�i&��|pX���+q8�G�#��mȮ�����J�yM����'��M�ؿ�V
W~f�pem���{�p�N;f�fW�%ȕ+'lll2eFRR���P�~}t��)S}�F��B��
+ Y�Ƥ��D�={��IտTܷl��6?c�}쳿�����p�ѳ'^�x�:�k��ӓ�Tw��Ɉ眹ra���(U��Vn��$ U/����WQ�d�>:���5��͚5ôi�ѻwo6�s�߆�Fػw\\\�n�z�ܱ��Tau�,q�޽{q��I��WS����{�Y��`z�B8��s"""�5B��1d�9\ccc0{�l<|��pߺ���[�#�)������I�Ѝ�ļ���â*ר�DHod�R���/�H=�����V.���p8�G�B�'�����p8����B�f;3�h����3��Tᩉ@W5��v��?ގ#��p����%�������"�˗/���
`�bذa�>s����]\Ǐ����7�j�*�;��567G�`�pkP�*"�kԨ	�]1o�|��NՍET�s�ټ��D����:�y��?q�ƌooԬU��	
=�l ��a�q��%B�n;;;V�ȑð�w���;��������Zf0=��pROׯ_��1<~��&�{�.̜5[��Il=���]�r�^ݺ�N///���ȗ���G�`��'&�Y��|��&�A�D��:H�ow�	�=�ִr�u�G�#��p8��:l����{��^~�����s����9�ؙ�	�����:�_Um�Y;3�N��� Nc,�\�z��.����q�+?�=G�G�Y�8{��Ev�[��;������x��9H�W�N]�
ԑ岌��.׮_cJ��͛��{ȝ;w�x���_�>>}��K�.2%^7�n011aʽgO��H�"��k�r�˱�M��Mж]����}P�;�q�ƿ�܉_"�˕+�B7kS�4%��Sȗ?_z�D���MHH��c����b�
,�2)cB�…���__?T�ZFFFx��
��b��i�M��"M�"�Wnr�I�����
��E�1�IQ�����:u*����|��g�F�N�<VV��}�6,,��G��LaK�ܹs1��7of���������j��4,49s�d�܍���%b]��ѣG�N*;v�ر�(T� ���!D{zz�G�G���:t^^����E�����FU/�B��=�ִr�u�G�#�k �*(IC�lC�bo��,�K���[��m��/�3z_�Ak����<?g8N���(�,C�o���3..��ٲH\K�.e{���ip��GTtV�X	##!Ց�u�x3���˗�ʉ�)"�ߪT��&%�fUQ�B+K����	~)^PV7ˌ��+O�}y]���|��Q*jX_�1T {i��ag��jȞ%N��&;�a�n<���]\��,�TYG"g��]_K�3�+ZD�`�刎�R:*1�%�5S�IMv*]�ڶ���R��|�Y����5�U�N۱U�������U>jZ���Q����}�|�ݚ���\���9�V��v��
##cT(_o޾���/z���-��/c����st�����ñ�����ST�Q=�7N��iӦ(]�����7_^�hт��<p�#p��]���j�ʬ:w���*�q��i�$�1s&�+�_����D������<�Ɔ�'O�`�����+W�H'*�>�<�[�r�0��Y�0�q�L���B��mc�66eᕓ��T�x��E��{���1x�,[�+��0�_Ce��g�00�5k�dc�
u��;fS5�_g��Q�Fa��5����U�V�8;�zz���cV/3����?}D˖fh԰!֭['�+����G�]��v��l��8lذ!#����3�8��@B<�Ϝ���$�X�O��J�Ȓ 
:��Щ�M���g�'�5.]^�#���$H��/q���1��Uݲ��Fz���_b~��t� ������1�i)�Q�(�����S��~N���ʝ������;s�V�Xɢk�j�
AAAذ~�`{�
�[H�
6 (0H)�*�D"th��(�ի���ذ~=�T���S&���D|���m��۠1�$H��X*���+`Ԩ��Q�
#(S%:�څ�3�	`5DU��
;��
�0��ς0Q�X۱(\(?����8'(��}�`�����5k@�)��M�=5kTEbR2\�,C``0�ֶuk�O}Yz2U�/���T`�[&*�z��ʜ8}�^^�w�ԭScnjF�"��hgV�'ɔ����8{	�c*�����#8����s B�/��h׮]����W���LIV���]{�u�BT�P.�����[�=���#�p>���}���eJ�|X��ag��b�Yu���!!��\<z���s�hig�x"�Y��)p]�A��HMKC�6m`?q"�$8u����q��}ٚ��I�)����ټ-Z�J��'�͢��E�(��KϞ��bWWܸy9�s�y�f��}=$&��u�r;龑v�q�$&�bɒ%�ˡ'�'+Y/?�R��W!��(��x۱(^�HF��9"�5z,����ΰ���9!{��>[�c�^���u��ρo�w����s8�a���722ii�ظa#ʔ-���ɓ'X�p���u�^�.)	+U�(GW�Z
���Y���0��g�033c������}+#ˆ�UF����#�
�.K���" ��I���\lF�dpHH��ˇŮ��*�6m�y7s��r8�0�^��,,1)hIU�m�v�Y����!Kj��g %5��`��U(i�T@��4zM�����K��1�q��

ٍ�6�mP:�F@�$�����ׇЪukv�u37���qqhӦ5�U�����17nڄ����XQ�"V�o؀S'O2e�����/G+�Daᢅصk7����L�2r����B�v:�`G�urB�Ν�j�`�K%��`�	P W.t�1q9r YG�B?����8%��ix���}�����A��H�e�g�'�5�\~�#����I�#���g�A�ϩ��,��T����) AY�P��6fhS����=RYg�,�?��Ҵ�x��;�v����cv_�U�!�SaP���?�_�`�w���l��k�W���&��W١m���M���ۨ[ϪpP��R�~��^�OU7�6Q[M���o��{�Q�����3{^�z�E���с�MP�2e�j�VT�1�����P��ų�í�COO��V�����șSL())��ۧ#�(�֞ݻ��@~L�6��FbB��~�]���#�_�w�ޡk׮�*թz}��5�lqg��RSSP�BE�V��=߿{�����^KlL,��ca�q�4"�6A����OHa��ŋph�n�uF�5h�DJpjZ��DUcy�XF4���A��Mz����������X�z96Ph�iQ��K�V�nnؠ	�ä�l�N�ck��TN�<�U�V�Ё����A��5K�nάYhܸ!�YJ#�)��i �����^Dž�p\=�ꏶ�C�>}Q�V-FҜ�i떍�R;e}j�nz
�Ya��2}�T�X�Y�V��l��8v�D�B��5�����'�y3���Κ0�5�sR<6}.�B?�1[*b`�>7~���Zl���lټ�v}U����Y�"�[�Ga\�!'N1����u��C�\���@�d��x�9W����a��5k&�o��9hl��,-0�v��D�Z!5-U�&Μ��ۦ�5V�QS��;��S�
���ֵ�q;�a�#ѠAXXX��a��D>zx��yE;M�ϲw:���TޮXZ�|�Q�an�Ώ�"س�έ�X�nu�{6K-�]T�����\E���=�='�׸���=�Nꃊ���Eq������7=x���N�Xs	�	ذqS���_�::LyG
��Æ�…�E�^����'iqqva�omll��D暵4C��]��o޼Ŝ9s�i��ի��R��͖.]J),�#99��v���fͥ/�p~D�)[���	�C��|�r|��	�jՄ��.�?����[�P�+W�b)&L����x.�N͛;�)n����Hc"[�OO�8o�|�D�-�\�p�i�qHՉC|r������+hߦ����w��o�F@/�)��.��-��P^HR!I�g�Qnޑ#GB���Tt$�}挙,D���>�L�”�B>d:�Q�RE���k*�x��VM[L��ݴy3#�)$6���0�dK�ҥ��CW:�|�26��/�ىT"�7m������'Mfa��z>�'�c���0ɝ-z�@aʋ�7/����)xv�$�mC���Ѳo_TiP�����������˯s8�_�x	��b�@�7b/`��+��:+.����a��>���T ᅩ���N�r�<2�kV���vi\���|�+�.a��^ȧ�CV��ʞ��_~�9�!R<�f$Q	tX�������+LJDm������2����s�V��o8�6���U='D�P��t�@�0'�f�bnA�3J77	@Q�A�?�v��E3폲���\���PT�G�(��2M���{�Q���ƨ���勗�h?��-���[̛?*�W�L[��뺻����(�sի��%�u3nj3�*�dɒ����e˔Mg[�~H�L���-�v젮_uז/[��^�B��|�~�o!�I�L�/�FGǰ��*W���,[������aq��(�	���d�>}�6l��~�Vi���'5�����&=�N�E�$�c�N8r��	`����k̚=�<B��}���aR�����k�/�>u���|��m#����Ӧ�J���u����k+#�\��q��e&`�6u*�W��N0]�q�&O���KՖN����O���>��j���z�(_�&N�C��>��y�̖b�6u
jT�̮E�&0��S��H��O!,��Ȏ����}��;�alh w�)�)(A):�Ԗ	�UC�O rSҀ��h��Tp~�L�H�q��$�C�&S܊K��G�1n�v��	cC�"��,듢~�ݽ�ޞ�x�k�a�g��a�蟡�
�^�-оm+ֿ0-�S;�Ɠ
Is��?}���{U+W`�ݔ�%_���c�uTL:t�S'�Ѡac١"������i�H�ʷ�1��h�Ç�Ȑ�L��84;wl�U��l�k�S�^�
�W�~^[�&���Ұ1�C��r�/�ٹs�Nj�o_t��T(_�g�D��W˞#�oܒ�Ӟ�D덊�焏�V�9�����)� Ȧ��k�6��Z�)������	`�={����7o.
�*���P��~��1K &r��!��)G��9g���	`��Y\�LiRYS!,�4��8�F��q���j�<�Y���H$��ӈ�����;���PcC#C�g��HMIELl,#AŅ�+7��lx0R�N���h�j��N�1S��E!2�-����s�B���q#��|��ԯ/�o^�f��I�\�V-6�D>�/�TDEE��@�����۷���M���c!�h�)�rIs�����l�7DsB!�ŸR�f�*T�p'|�I�DD�-Y=���G����O_���[�)VW��q`�:�m�Z�Z�s!&�����`��g�'��Y��G�#�����_,tĻ�̱�
����!B�*����pT��!%	�����b�WAJ���U�O�?m��u���0�����<x�֍k��T�Oc	u�<ƴ�A�'�A�п�s�~�[�xߒ�-�G}ŋڈ��k4��B��f�e%�MI66�	��^�iB7�_>TG�P<����K����'�%̝�sa���[�"�R��F>�1E�f�o����0�>¼���t-�󡗸z���4G~⋭A��+2��A��`�W����e��P�W�~��6�E�i�XR(�G�~��8��ᄚ�Ů�Z�e�R�7N}M�� K,Ȯ������J�C�"
���,���8[ԯW���w�CN�6�Ź�c��s��r��x�&%J`���0mT_~S��R�HF�lظ���6�����[�����b����pLJ�0}�Lܽ{�Ee�?o
̧tÝ\�s�ߞeJ�f���t��;������{>���HR�WTŨ+�lX�~������`�9?�w���ё��,����oP�x1��g�n�]�µ<xN���T�ͳ��b�Ç��J�O7B���*R��(��V�U�J?xcT��e!.]��r��a���M2K[[[���/� <:pN�K��xyy�h_¾H�"E`;n#��1�zx�����#o޼شy���ڰ��X4DRS�>�|,I#M��|}} �����qL�y��#�7w�|X�l)jT�YҐ�Z*s����%�w���S��L�wD�j�`a�����iS:��;�=�_�b�-Vk׭��
�̬
��QL�w���<t��AAG1m�4mڄ��r�2V�\_)!I��U����8ML�3�B�4\��>���u�JD�Dc挩���N™��ׯ�d��}���Ӧ�D��͘�����X�r%����p���	gk˞���ȭ	�Q�NXZ��pzE�N�
�{�-̞5��NW0��^�HP¤$֬Y��E
��3��;\��f�g�g=��Yh�>��a�\�oL�Ĥ֮Y��E
���Q(a
ɛ��*,d%�Q���a�ر};;�U�zu88�äDq��O�.̾���̬
<��F��8����G�Νp2�X����N���#G�`�i�c��Mq^��!�U�^"^Y���#���W�^HII����<}p�tZ��E����[/���i�Þ/"�ç���;w�n�j����իâ��H|�6�-Y�����Șx��O�GvhҸ!U/�wU='���f\���r���Z��y��}�˖�Z���׵6_��NF~�{'�U,:"�Hygee�r���ƍ�ؽ{�Ԯ�`"���02�B���U��@ܼu5k��0���>(U����J*�����S�/�����t!a��vZ�t��B8U/
^nL�;�jtS���DT߽w˗�`
Z:�������Ύ��,X�#��)�x�����b��'��襦�09�i�Ę#��',�<cF���0�����_͚"��:��(<4˧"����	���9o��p~&�`K^F&�R��xr�
�=s�y� IDAT��ukct��,$tB2�p��>El2���[�}�r��sW�`�#HHR$����]�.#�Ǵ���<ݿ���(+^�=���S�z�!"���66
�:���iq_|�y�/ .E��$��(�'�CL2��/w��×�d�n\�m�D_�l�v��_�T	�k5�����1F6ǻ4�s[(�߽���$T��6��"��x�%;O"5WaP���x�¸p���u�W7	���Y��7!1)	vݛ�W˚�&Rx��X���SuQ�`�/G,fN菏i���)���)bccЬ�)z��Έ�P{uj��E�0o�E�*��
l�q���Ǹ$�-�Gub9�}����'r�զi9]��-~���r�П�UR4B�|�kZ�7>��w;�+�����7����ߟ��h��d���o��jqz�q?.'
���N( [�DD�~�J%c�]?�WX=:�F�?�^��oW�ߴ$|z�!�rD�b����p�	��;�����x���
���+��o���(�#�-�a���0�7������Y8M��ŀ\���c-
w���Dm�vw��҃�T|�}`��J����O�,��Pu0mD��LNΞ��E�q�n�`cJ9q�2�Wذ�_44Ex���
uY֊�ݡCg8͙��R8BJ�s$�W%����<�)�l�8;�5�)H�B6��m�?O�`ڔ���s,�ʕC��=0�3r�`ѝ6l���Nq�����΂20>>W�_g�hGX[�}�6�XƓ��0l� F�,��8�>���7A����+�)l���@��~��iF~SԪJ*��g�̝�H��M�.��1u�t����T�Y��CT�7~�8�l.�}*�O���@�#+�'?xcT�D
`{{v@�������������w!̳�:(��%%��P�� �PSϚ��`鲥rJb!$�@���W�5:lBJd
�L-���B~)�,������YԲW�_���؈��ϵ	�,�h��d�=Ϣ�b��W�^źUҨhYO7��el̈�r�+����C@�g�Vm��^�?{��T�E  `�b_��w�*���]���� �� � ��(`/*�ر������b��ߝ�ŗ�@pe��y��'I��{f��e��s
���#H@�M���<`��`}D�\���^r0����]��;vc佄��bǏI���93��a�={M�BT��>�}Hg������B��'Ϝ�R�*��_!�C�.x���J.-M
���Ҿs7lذ��V��CKȕk�Yd��͛�G��E�����P��N��Kb�X���᜞���O�"$tRR���ݕ�F�wse�8}�\�v3f���M���C��Ni�2����c�!"H=��d��J	`)���5���C��`�����Dd�&v��X��������?
y�:HN��n,]���9����X�"�%R�doS�w��@��"��W�'̽<¢��,0�}��Ú�kq(~����l�E��VO�=���"�\���ШaC�w��aY��wbAF�t�������ؿo�r�V:�����\Q�HL�j����	S1,^'��ˑ��!R�m�D���V��>9�k�"������	`�AoXXN�<��]�ԩ�X���t	��H��.�i���SVF,�#��6�y��"����Ǐ�!�~Q
?��lٵ�(7pf��X�����rp�`B\WW�ݻ/^��q445P�d)$%%1Ifu/<x��n1Uי�ieeB'3�׮b�boLw�@���J�Dߙ3�N[Gz:RÙ��j<8��7��p���1i� �*���
߀ x;����D��v#C}��E�G��H��n��O��ڕ���x����k�Y�Y�!�`�ߟ�-V����m*0��W�b�ǧ��z�+�(ˈ��������0%��'%���,���XܖoC�ڍЩ�/��x�`�W���ۈF�ZaL�*x�	���V4���5ُ��@�Hq8k��t`�s$~�WNV��y20/��>O�Af2�R�иA=�a���l��Q�0��$���p#Om���(`��%ta�I<MJ���)�&g�܇ʵ��Yy�z
,X�Ӧ�G���d�<���}[1ByR�u<KJ����V�-�����G`��%ؾl

i�/<A�F���k��#z�I�r�7Ei�ET�	`��V6��v,�x�ˈ9r��G�e��#`��?���n�
0?]�p�n��m�Oq����K���a{Ra>�X�h���8��As#��m�Gc8����8�[�}U�g�K�'�G���`5s5&����ǎ=F�ne�n��k)�ܳDpO�1~�0j�*��c۔ɖ�?���I?k���ID ̓���c���֭�h)��S|J'iQ'gg�x��E�Ac~~+�g�$�y��e�`̘����I�M���~�
.]Ʋe˰�o9l���6����0�A��e��
��Q�X�HR�D��M$%:p�`�ڵ�4ֵ{O����Ŋ�¢�W���ay&�Hi�vl��Ç�1�en޺�_~��ӪU+~&l��đc'�u�k>G�h���ul޼s)�Ihպ-�Ι�rqҽ�q�F�,^$[?��K�J�*ŏr��=�E���Èָ~�6��'���e�TP�j���\�r,(a���)�H��۸a�$���9������ )Q��u�b��)�� �qH]k[��2^p�?��y��z�V��v�&z����,�����[�s�'�M����L���0�����'OYNHmm����+55
Ç
c	��`R�<��8  9���gB�.Z�D��t�%x��qx����2�A%�[���,&h��w�ѥsg9�ɑ�SW��׶��ơ��͢������Ɉ��Sz�̝���`�`+�HZŶED!�HJ���@�2��;F���8t�3Ctt
��H�b�>2��Cb�]���k7i�;���m۠_P� ^��I�C�Rc�^z����9{�ԩ��(X��;';�[�fkL�֭�����l��Թ�EO*�L}���4~����m���e�SN1E���N�->����D���d���#�3$T�n3�M���XJUD�
�����f���#%E�,�Z���c�w֭[�Bz�l�h^w%)n5������Y�� }�&�gI����?Ĭ9sP�v���+y~�b�qN�Z�� U$�����-�'��6!$$�Њv2)g�l��J�)�`�
�k�/��r�L�;b���(l��"�{ZXb���`�I��%J�Y(����K@��	9	hq����TuJ�{t�܅}�D��y������#�	`��ʏ�tz�N
�<����	9��+�� ?��mr�K��S�����
��	����I�L�T�i<��*?t2퍺5~�F��4J���͇��_L�=:(��#6�-Gɷ�(l`�/1f�|������?C�}�ymAN�9^�#���;��ً%K�0ggt��Q���ϒ��<�3�<
<c&O˚�З�0�K�������6ڀ��:Z�E?sC��T+�X��-�N�'�3��1�+L��%$r�w�e϶��ܠ�
��=��t^�p��PpX�_�F��1#�N>f����c,J�K���:�b���hmT��X��SO��8�+�+W�c�:�y/��1w�DJ���؏���QPX{��C�c�hl(!$Iʸ���hP�&���fѾV셱�1�7�g������͐�x��.Sz0��Ɠ���/[Tב�ఞm@ulY3qL
�}R�%�|���~�>&��+�P��$�v��#�ݘm���8^�ncP�0�Rj�۔L�4��D+�r����1���qy�2b��w�d�j#[��W�p'_�?��h2|s��&���N��|��
�D���ƷZ��p�j�`��b�9͟�濡�q��]z���I!ٜ.^Hb��~$NcIc@��حd�
�䱶�UW��&a�֝�m
����Q��S

Q�LYX[[�Q�z,�m ��mΎ=�f&�ޣ�l�?���K�}x��L�d��{w���;;v<�%'�H��X�rjT��r۵k��ڶ���{�<��=ztE��c8g�9r����d��ѣڵi��w��	/�E�d#��8r� #�?e�ڙ�葃���KK��@��bY6�6�v�C�q2�����\�]�r3���Z��h�Q�۷/.\���,pv��Odd�W��$-��MѳgOl޺
�E����L����=�p!!!���>c&�t��p;|�bb�����wŽ��@đ�+8)9
�z����,`�����,�M��S5�D��ڱ]I{}��O懩I;��i��5k�~=#�U͏��ro������:v=��tp�L�e[��"=h�`|��������[����$�LQ�$�:c�,���K1v�X���;z�����B�}�M�X�6m0q�DDD�l7�ϨO
�!{h?(((����9�$'��yΟGdT�He��9��{4%�#[bbb��T���I	9۱l�"�.:pr��A�^�dQO�r?y���Æ����e/&,�	�Ú�pL��O����РAC���""�:��t
i��-Z`Ѐ,ev9y�$BV ,,�O����<���`Ԫ
���y.(R�S4��dE;�m!�B����v���U����3�>�|M�N"r�==Q�FM�		a�I���;͛�"E���v����Q�_$�<>6o������{w�~�(��gO�Z�&BB� |}��0m�l6�j�ě��X���7�җ��� �>/\��r5+�B��a�Q�f-u�ڼy+W��K�+�*������nA0��Z���B‰㲃=��T&�,�OU�5�6��3prrd6���[������ag?	f&���0?	��JX�0Ax�M~�ӧO�k�'fLs��i;�UjgK؟٭Oz_���S[�?��_k}a�+;h'�Ҟ8�
5bjq��&�,����X�(�.^w���T��Z�I���%A��:��ںkb���3�p)��?��l_�_�
N
y��� @�a�
�)�ʣL��7K��O���b횵��vj����k_�L���r�? ��[0#E?|@���JMŃ�O1r��)��Z��)<���f~�ƃ���.o�#���F�Y�fx�H�ˬ~�zػo�Zp	��X�x�n}y���9�cF��U=M��~2�=�$.߼�W�3q�e*\آNQ`U�!>sʗ�nf0oX���:���b,��o=�`���.��$�P�7���3�N�~������#����e�0-�"޼JD��)�Ѿ�L2�âP��
 5�$�5k3�z�5������[`�����U��kX�%��'���dsjթ�X��fF��:=��k�b��h&-�����Sg�c�P��AS��w�d��H�U��š#cN܅{�A��P�>%B;���i�C�N�m\+U�Hd���x���6�V{���Q�^6e4?��� �t�\lQ� �}�+��n�R~]e��آa1`G�_�y���CY���Sנ�Eo�5.�����{X4��G��2k��{8{��;�B1������!"�+̇�g��f�T,�+�H�3R<�S&��y��ˊ��<���Y}8����ΡF������fs��uoE��w�q:$�0h/n��>.�a(��b�O���,��'N���ѨZ�2�4��F��:�†�0��i{DG�^A]$�}d�]D�u�<|������^J�s��!L�h3sst��	�������Y�z5���b�5Ew���{�f�jL���Q6hܠ��Ʀ��r�C�;pn��ptt���)Lڵc��V �ۚ����h�����)J�`A=:�/��X�����=D�г�:b�([��D�1jĈf]m��"j�\UՏ"~fR�h}$�i�v&��
���G�îݻX
2�y.�ܹ3Z�h��m۶�H!�F��w��݇�h,��fdy�5����L��T��-���קo?�ݳ�Ḻ'�O6^&%�s�.,�H�_s#8�7FU-cii����]�d);\@��k1--
>>�قEr��V$�I���h����?��=~�(�E`�\�Li<}���&�A�ɪ���ƍ���E�a���&;<�}�v�-Ws��e����ݜ>�>.tcy�����N����I��Kѿ���X��i.��D*d�ٳ��ڷ��@��֤Xb:'��&=�?Y���bR�$�<y�$T�Z���Ԑ�I���4Wf�4�����LJɝ�ոqc���r�
,o8��2��o���p�(E��'�$�V�/\���=���|ܹ{C�C`@NK#��?z���Kp��EfK��
�0u
*U(����������ڷ7�t�)�.��WI���퍓'O���7�v������-�$��K;t��k�v��7�����"��'"����`��R�-o?����+p��a$&�Ȇ���v�ԩzv�"�^��͚%œ����$�����5
K��ex;q
���q��
*\͛7��	�Q���8�2"��"lƍ�C�N�н�$O��y<�$V��6oJ�l��,U��,�<�Q�đ��Z��x��O�]���CHM��
1�a**W,���4��LWџ*��̀�bo쏓DB�o���]@CrI�DI"L3�������*O�Z4���r4��/������$mT٩[@��*<s�G�1I��҅�X���R���H���1Sٸu�j���+V�ͷ��!\O$H�t�Z't�i/\��+�:�_n]k��H�JJ��:ҵ�r��k~�+[�������.��<y�o���@S~����@zV�!C3Y�p��Y\>�֮�J������m4�	�
�<�����"?"��o/\@�&M�v�d�,XP���^���xp8�ˋr8����������}j���~��1��lǠ_}
�KF��F��ua?�5^���V��e~+&��"��ӷ�07���PDDq{�wF��	��hc��M��4�Uh\���;��y��c��崳����!d}�{�Be}	AK�'�B}�H.]��3X��.�hո+�������񇁄|>�!��a��a�TV[F��L.@�c���^���S�;����^L���ӥ���c��82˼Ǡ�6)LQ��]�G�O��9���-[�k�-*h����T���r$�3�9y�QQ�e���,bvL�"8p��E���{��&9�%�!h�(T)W'w��mӸ��΅`�9�l��4hL(����7lN��Lo���w6V�J`�G�X�ɣ�{e�N�2Y?������LSD�@8A@Rɒ%؞�2i`�GD�퍉f�oR�`nޞ�2w����v02j�L
-F!HD(����‡O��о=��K$Y��Æ!$(7�ǀ�C���׉�����D$E��`��WtĈ�,#E3�������y����ݲ9�;tdy�D�n��F2b�^�?���(�dx�8���~�W���d�87� 1K��~�}{caL�u0o/�HV ����c�Gw��b�����!k�`¸���t��"oI�]#ٯ[��&�n���h���d!m�K(+���Xn?1�A�ڪl/�+}Ѷ�b�İy��m*#�i�M�G{�������?�J��Ꜣ��I�bŋ1v�.��I٪���Z�m��UH#��C�i��	E#���e����l>��*c����Vnv�aN�&U�H��/�S4f*'�����X\)7�Ee�ڪj>(�+�~��g��˭O�9.7�_2����y�\���5Ǥ����r����l8d��j~���ݿ9�e�܄����'b��O<� IDAT5���I6��]Jd���Z�O\(��s8��-�:G 7.\���%J���6;�#\Yx��-�l߈�oZ���Uk���Hhf��{�l�&�$�a���32���	q����6��C�&x��H�ǣAI��8�G�A��)*�͛$,pY���{��R�/���mJOFd&~$8��6�W�O�׍����?&,\�1�Uxq?5j�bя��p���/�FI�V����θKO1/p3fN��J�H["�7�y��u��u�
Ł��^��9cP��&f�]��ׯd׎Չ�X��s�
Bۺř,4�#��s�vEA��	GĠ������"SǣCU�os��p`,�zY�6֜Kgr��|F�`"�ȇg����Vm�!3���ԁE�_�+�D�����M*��H��/�M���P�O�n5%�}@T‹��#�8�����Ĥ7����F&|V��s�H4�V��F娭�'ncAD|��`PĶ�.�)r�T�H�m���s	;$ �k��:&a�������"�g���Tb�χ8��:Y�b�ě�I,�8�����?J�χ*�4�
���"7�4�D��w����l���������,ͤ�W��ǵ��;��_~AM�ѱο.am��U������@I}MI���&��JKU�)�디xz.���
�b�>���^a=
=�wC�.��i��"q�	�8a
+b���زu+��tpp@���ѩSg���͛6a}h�V�����ت?En�� �7�-{|�ߤQW���U�T�Ǣ�x���1�a2��";yy�b�
�ޣ'V�X�
`�{Lu��ڵkaȐ!���={�b��/Z�0b�632�p��삹�sѼ��B�꿠��D�@�-���("�q�~���??_X[�B�n]ѵ[7���r����]T�^�:������ccx�m��?�ݻ��5k`��HV>>��.[�rשS7o�d�CD|���L4ki,�d%�V܋�?|�E�Q{uk�ƍ����M��"���F/���ԥ֮[��U��0?(����$9�;��G�|��o����vuuesvƌx��%���1��q���P������}�,o�#�" }� ��:$���?��!��!��ϫ�]>��s8��������|��S����	� �%�'���g2%Z���s�
����y��L���4C��,hefA;3:���ߏ��x�*M���p8�;��s"KCO��d�Mj��W�$�ѶC0�p��3�ލ�v#ѱ:{�)����y�px������(F&D}�����y�,��*əuވB�
�2�-����4�3�C��X��I�ǠIm-l;��Mak0����#���8�##�(Js��u��-�9�-�����RZaP\��Ѩ׼
b�D�����9�9%+V���fH�f8o�Y��WFh���mğK��4Z�Ɠr���q�V�G,g�j%���t��$�k].<z�Y�L�>�p4u��>�#�_NL̂���JNJ�5Jq$�fl����2��/�]v��EJ�Ì��Y�Ϟ��f�8|�1fGc����x����E��R�͒�F�r��^|��1���x7(l�w����Lu̦G�G��7�c�C7��/5�4�)�sF�9�}�[���XT�/"h��^��k�]�I�Gg�U�c��C�f���W ��V$���?��b�Yx���5[��j�p�{�)N�ہ����UW"w���>����@_H~�^�'&[�*E�Usw~����L��4��ߕ�ט���TF�喓��"��1	P�Ѷ�_�����h?	��0}�\�r7n���?���q�}T�R�g�D��5�Lx�����n��D��x���~���H^���H[&eI�A��,hfe1)U�._���6�X��j�f���o0��׮]G�����₢E�ѣ'puwǕ+WQ�\9̘1�7d�
%��#��[�ά="�e���Z��ǎ��$�%۔��[�K��ˤ$،�e�d�x<?~����z�+2�֯��s�����}�&T�@+�4�1
��'Oa=b�Ptlo&�wE��~���o��vol���ST0,�q���Ĥ-���spquCj�{�0��W#�X<�+̏U�A*��[�BB�q�=9�Ή|����p�ʓI?"|��Y��}z�I�&>b8����$fU�r���ӈ������� B��EC�!yf_
R������"��s8�ìH�P�G�#��p8��ωE�\x
��(|�:���m��p�^���ޠd�bpe�j���!�.]G�҅ЪU+F�¯5k�nd;lߏ�����(`P6-д���4E��X����R��:1��U����K(mX��aSx(�U-��;��A�R\�J��Q�x����dI��E�2E`ݻ�i�7�	���G�B�0�ʄVAT�P6&(�\!;����'����&ڴi��H=~�ܣ�6��D��e1~@'F�Q�G��xԮ�U�[1"[L8
9��]K�WHJ�*��ŵ0ֶ��a�x��M�)��*eK�o?�k�#��H0����A�R��`�(<y
�o�?E�B:hP�<F�5G�������ǫv�_�>�=.
v�,�Z%��0��5$ѯD�'Q��8{���xרY}:#p�?^�e�u��0{h��Fc��P��>��i�
8�X�o��J��(\���Ƹ�-�״�L�B�_��%1¦+BŽ�ҥ������Ja�]��{�]1{��o9}	!/���?U���>ݐU@�����g���BQ]M��5
��8���W�T)T/���Fm�r>i�NF*���2R��{2J��9��u6ׯ_���i	
K�Մ�r�<H�D�0@-㔖U�t���MP�|"�Q�<����$����~�E�H�(�%�WNQ�B������W;��`��On8�9-Z��DȊf��o�>�W����=��d�,������1lt���#���.�S[q��b��������X�ص{7�lڄ��P֗*���I���<�Qy �7Fպ�x��}����y��NP���̭�|~��E�s�0r�M|}U=;�9���ba�}r8�G�#��p8j#@9_):�H?��(�@��)”.�����6������OĖ��M����(L-����PF��K�(jT ���υ��d'��"mE�ɂ�`������h-���������f~:�Q#zIr;
�$��?�A����/�#;)ڕ"�WF_�/U*�G=&/-�ܤ�g��l�tQB}k���q���x�6�_�����:B��.A:�IKݠϨ?e�-��$��=���E���"�K���4�s�
�B�O�M�>�|����;�P8��t|G�2b��6�ؾ��#�G�F�
>
��-�ؒ�����)��@ܐ�̎�!�'����?m0��*&V+U�sك:$5�W5��2�B}U�jGY=E�S���������ts��H�\ƃ�1nc�Z�k��}!ʔ,.OPI�}��9��~��	��f���m�T�-,f���"z�>����Zժ����
�~> �J��V�_��1����e�P�>�?p�������������n����	�;@�>G�#��p8�G�#��Dhy�����lÜ�hi(�RN?<��c��0idȈJE�:Ǯ��.}w_|�o�z̟9�����y�//����f�R~j�ςo�@^s
*D��E5��P�ܗz.�ԥ���ѓ��_

���@n����s��o�V�}e�E^����'/�|���;�?y�E�~��r�wњ)��{��������#�##���9���'��#��p8�G�#����Je��Vl9��WQHG�Y�(Z�8zv0�Q��,*��:Ֆ�n�z������g���P��.�������X�_�x�C[�	�z�~l��Ѯ��QDA�r_�^n�_ڮ���ycT�ii�aoo}},Y������b������zz�M����
�-Zu����aCQ�dI|�|�B#"��%�6Q���]��		ǔK)�:�׃yuQ����wJ&�Ʉ�y��V������S�o
`w�^,Y���ޱ���e�E�V8�p��W*���.�K������鄣�/^�ݷ��^�#��w��s'�������G�#��p8�G�����VR�$K�/�V�q�.���Fk��\��vj���
~��j���
���m�aii����%_�Z
�B�o�@>o����ѣG����Ѷ077G\\V`ܸqhg�.[U1�Jd����X�Z�ka��_�����Z!ᄄ8e�#")p��Y��2BQL*�gͥ����M��

���k��Ap�*9���K������W�"ܛ�4��GX�
���9H�*�O��*�E�
�Jq���+��M�^a��[�"�E�U�Yw1ٞ'Օ~U�/=��ہuqQć^+�/���0I	N!/z���8}���ڙ�|�-�8�r�oպ��ʪ������s'�����p8�G�#��p�
��"�pR-
y_Y���6u��-�>�v颼��61���?]��2�?�_���&R��۷x��>}�py|
h@���P�L0���[�|�yc47���;���GX��ӧOC�%���4�b$-ݫ�B���.l�,8|C8{��ׁ"t�:V���
����������a��;w�DjJ*""#aտ?3���7o��2�3{ʔ-�'O� $d
n߾���ԬY#G�D�re����
6���HMIa�����v?}�3g�@�z�0m�4����iK#��Bl�@�5���1��9����(�*��	*�\�Le��*i3�8����M������9sanf3SY7�-��$�ZW��Z쟜�
2�r��MW��V,�.�(׮��R<E�e�Vmq��D���е*\T<��L=���ܞ{E��J%�E~c ��<���8��W�����P\7K�$p�F8�p4���|R6�ſSdwU�)�=�m�ƅ���oպ�r[<����z��s'��^�#��p8�G�#��p8�����a��s��|��ͰGa��T�.]Ϟ>���j֬���b��C��r�J4i��f�L�FE�_�~�*�)R^��P�Je,^�K�,ʼn'0f�XF����6E��=f4�����-[���)�1w�\F�A����..�]�\\��-�7�hf��pY�5j��d�n"��̙���������zy"��88 (0��ژ1mڶ5bѽ��b�bKwA��tI>��k �YY8%�LB����a��M��8;�b��rDn����p\^�Y�=z�&�!**ڒ�%����3L��æ��&ٴ�����=�U���?���#��%�k�!K�?�Ah1��,���s�P�lY̝=
��af>z���6��Ű�	�����+q���x�%���'���[�n1̜�Q��!s��t�:�������4��1b�P���qj!��&�Ik?ż��Yt8amh(NHƷ�4�����v;���Ç���I��y>*��ҕ���wa>=|��\�|����˳&i\�7l�jU����Khܸ!f͘.'*�m���8%J���IvX�d�$�f���g�
Q��y�5���X�_#��R�e[[����j��Z6�pQ9�9��}$���[����O�9G�#�����	`�����p8�G�#��p8�G�G��?�r�>�ycT@==<q��Y���X�Pe���
�n�:����ŋɑ�BY"�tt�Y$0��o3҆E��Y�YYY�a��T�."h�@
��K�>.���
�1q�DF`S�re[LLLp��QF W�RYhX!��������X�
[6G�6�4<)��EJ6oi��'�~��Րh�[��o���(\�zK�<�"���Z곜E?��/A���re�b�U_�~���_�N���
�ׅ��$�X�j�Ϳ,	.��·q��01i�s�����ᒱ�ة<-B�z��#m��)%L��B~�.tLJ�aog��%K��o7�
6��U?lذW	3�Ŭ?O�p��	��Ƕ͑��Ѣ9�S6BS�2m&jԪ��"22���8]D���BT�ZB<����Ѱ����v�{y�{Ypq�0���K��?�IS��A����B�j�*|��24�A!!9�AAA�2e
��'�;�|��*ɩ8x:u�=1����0B��f�����ɓ�/���,�_�1d��6+��0s�4��xyy�6�T���;5��H ����4'Թ��^!xA�G G�9��|�q8�G�#��p8�o��tQ��#S�lsD�qI�%���x�����;l٫��p�8yC@��|�U�����JS��4-Z�^���V$|����Uv�#��ůI�=#=�EG�%�>�	`�g�{��E��
��'�Y}�=B��O�MMQ�+���А<�x.�DժUs�F��@<x���	�6n���K�g����Z�D���:����,{!n_t6)g��(�mJ���Q�@_.��]J*���
QĠ�\{�"��N��W�_�Y�?P�n�56�^Ay��86��o޾c�A����p�k�D{�z�
͚6C�:uѦ��MU�����"bc8J+���61��;v��AA������%b��e��hi��q���Ez`l�'�n��W5N��;c�m��L�;�`�2],��NI�a"����Ga}���z!v��Ͽ�r;߹�R���M���۷�拥�%�JY����h��ǎa��r=ѫb���	��b��d����U�&l.I(|n��4j%��U�>p�
�i˞YBV�}{�0:�w�*�-��H�O�=&��4^9�j�� G�#�#���#��p8�G�#���# ݠ��$��I{7�D��{�?.�R��(�BG�?�&<�5����i9'��&��-�@�#�	`���F�N�6e˔Q;�":���D�����(����;/�p�BT�Z���������3��5!(T���i�]>�>�5k*U�Ĥ�ս�r�
������,#�D���/��7F����b?A.B��o��gϟa��]6�Y+c?v�$������3g��ʵ�8u�4>��#(�_Fީ"�;t[�1��д�O��6�^é�g��)!�+�g9�_J��If�b�LU!��%p��mp��ahj)�?�"�)қ.E�������R��7�h��	'����pN�e��p�X�Y3g�wϮr����R�S:~-[#����'v�Hq��KB���bXL��JK���SV6�(RYL�
�a��%��R$����.�G�#�3��3�#��p8�G�#����
�t�f���GxЦ	������%��B�迉�%;�xjG]{�.�{�[/R����ͪA7��?�s�+���U)�^�Dž������n-���uZJ
z��5W<�s�y��N�y��/F�[�G����/��ۡc�ݳ�I��7�L�e�I1�W�������8u�d�9����U0n�'N���HIN���Ÿp�<"��X�Z��ޱc;�m݆Q��P�re̛7�IZ����ISGDDb�-�h7���j�&�i��,'��_����z�jT�V9!kfޑ���KYD� =v�-˗�	W._��Ş9K@�3A&Ч_,_�˗�+�)�ۯ?�|}P�|�϶�@�>pqqA�u�}F�e����Q�7f���S��'g=>�v���f��)�…˘=k���b���2\r�����t IDAT�8i*6jĤ�#"6��KX�t	���3�-�d����HZ�+�d(I@�Z����L�
d�T�O��7vZ�Ɔ�H�Z����D�3������(\�|K/�SpiѢN%���$��'OA��
�d�ƈH\�x˗y3�i~�H8�HM���$�)b]�|y��5���6}{y!|�Z�*UB&-�E��%�	/�>puqF����+�/��}�V��{�D�:W	hF,�rb�"����>��x�Nl��TQ�K~o}�7���	��O0��E�G�#��p8�G@%�4�di��&���%mi�lA�/���
6j�kDަkHl�K@57H25$�o=r��}�;l�?Er����e�+��_Oe�?z�9|�<�'O�b�"k\��~��	��DQ5�㿶����"�	�o�G��"�ഴ��4�Ē%K������LL�2iii���=}|�����3,\膤�I���@����ƈ��������m[��L�2�3g.�10���X��=z@_O����
�����ሏ�GfF&jծ�r�R�\���޾c�3�.��Æe}���f2�IB~���&�ׇ#5%'����
}vJ�3�"Gٌ���Y���J��T��\����ps]�-�w_\<<wWgy�W�G���@O~�N�N�/ ��*�+c��10n�RFX���u�;,��F��Sx��
�p��Yz�)P@��T���cѦu�=�(Å>KIM�ߊ��?t��/Y�n�<���u�j֨�yNsQ�R��'��DK_��mǑ>jޢ52�<�4��,Y;?ż�θu�����w�h<�=>�0<��hi[[[x{y�z�ac���
��P��/pq�����n&�}�	�ϾFbb"��]<���+n޺�5k`��#�T2d��_�5N|�����0_�͘��ր�(k�^�;�o��Ӄ��\�-"��R�|��X$�K����/r�j\T���)'���GR\�[‰͗�������N��p8�G�#����|�]yW��jB��e��������U�ap�.�SRBmѦN�qL/iS�ާ͍n<NAІ-pr��R�`*G��T^�8Hc!g��Lm��[��S��<T�O��A���
�G�s\:s����*�R�Kd�_y�|p�CݐT�MR�]�Nd%���"|��j�.�o�O��M�lc(��	�����Ӛ	�J�јMIx������ޟ�A��b�!��J5�?������'NWk�tuu����l�RZ^^t�ŋ6��r�K�[����C��z�v)�Ty��՗�\y��}���dGJҿ���'�8�FWU�T����p}�����`E��W;�|jj��bŋ!000���w�*��Uv��S\;���E�J�4�g�M����6���oP�^�(^k�ј4i֯#�)]������-<��3;E�+�'}>���`+b�#.J�S|�Re��uI�+�_�"�m��0N.Y��#���׭���lƏ^L���g?��`�"��y!e�L���d��a�([����ve�S�D��K����q|����C��x�������w����p���z�b��t~_�JNN�vm���\�׵>l=�ի�&�5�w�������Sv�N
�"=z}T�TQi�Ǐ�S�%J���Nc��X	@�@�l��u޼IB�2e��a^m��9�G�#��p�
�
 ��S�E�����I���;�!=��("�h�M"!�,wAL-]���Ҧ�k�O�q	W�=��}G���i9"3�m�!JO��&m�P{D�R�}Ne�����>���mPL�5G����E��>�s�e�$\;s��vCIŝ%�]�d4#<����w���A8���-�Cݼ�Z��|��(*%��W�,�_"��l�z>��~'���t�R�xQ�O ��|�4&T��D(C�Y��(Ɵ>����j�����W���1��O������*�6������Q	�M�6a�0I$^nWh�Z���W�z}�-�Ft��{���䊏�/#/sk�mkh�����֡bC&wO�?~��
��X%4��?�g&W��ԃ̮�/e�˕/�"�[�b��C�y�V�D���$[��í۷�d)����������&Jhi���Z�ReXZX�K�l�0x���Q��_@��B��M(U�8�ܹ�����S3s��AA���X�"#�Z�j
SSS��br�C�[G�����F�"E0q�x�1j�+�B;��vq��6FF��613ǁXڂ�ؕ�S��g$�I��捛�1c^�z	��~h׮ƍ�W�����SZlbK�VdœK\N��T��"T��¬�2�M�~��$�(ڥ����궫�2s���������G�]Uv('����&�V����g��X�X�����l��*;T���|����_��I��Ϝ��.���}��}�d^�`u�?uq��8�p�����ego�Z�j�2m�44j����v������f��ޣ{��v���X�))��&�ByP���ܯ��8l߾�钸����	&@G��p"�W���b�U�n]�3���
]����Q�&M`k;��M���5kq��9�ZSC��~<xp�CŹ��Kp8�G�#��|cH�H��/�2�Ѭ�� t�;��;+��m�B2�~+7�Rْ�:��ҁ��X\�y�?e�iúӿ
�5�?�%" b'�35Q�dT�M�)��&X���"%%&�-ѿ��l|�	��:�˷�AR�GT.[�'���s�����5Q��GT��)C��	ڸ7�y�7ian�֝3��M�ű����]7��QJO;�1����WARZ �w����Ej�����΍�^��ϱ9z2�?B7�t5A˦������p0,UUt?���a�,ʺ��'ܿs�@?���!N�����Ө��/��l��^a٦8$'�`��p<x�ߨXh�Ř!�<�aek�w^aw�e�sdfi�n�ߠ�td%=�x�^x��ݐ��L`��8��~��x���;�c@��+���%���n��?���5'���t������?w�F�~��BQ�M&��Z�����`����̙�|J�O&4ѡC{�;�--%�����܅+V n���H6T�!���G홚�12Qve1k��%�S�~ff&.\��.ؾy3�32`ֱ#��؉…&�E����kk�7�m;$�L@`@"��
~H�Ӑ���>Hsl.���a0oo/�L�֢gw���
�([[�k��w���K�1k����G��byZO�>�dz�n��`�CΟ-�e�~6_5�J~�+Ɇ4ׯ��S'1~��<娧��ԹZ4k��sf�����mgf���m�Ԛ�9�	�;��`��5�@�^��l�k���00��N?��Q�p}��.'���������˗������Yʭ�|�p�ۍ��L�2fϞ��i��NSN���sѸqct�֝�HF���1z��\-)�
��\Ѭi3��o��A`@ �t�.]����7mƑ�G`mm��5k�ҥ�X�NVF�����

e0�;t�,,,P�Nܿw�I`�3i��]�G�#��p8����@��>x���%pS)<k�m;{�N��aퟸ���Ђf��֠l��g3J�b�Mw$~�:��I�ڰl¢y����wp�҃E�F�t�]��f-Xw����a�@�M�G�*���(U� lGt��T`�D.w��60e�E�z��`�6,0Eĺ�nA��Уk3�},t�ԯY���X2�7t
�kW.b�cO1;n�v�,Qn�ڠ�(��$���a��u����F�b�b:���¨p��9<{���`����8�Iq���kO���<���Aq��u�,�3��ia�ݨX����`����M[� �w<���Gp���L�V���[C�v���p4��wL�Qo>�עY�?0�O}F�+��T{��\;sM���l^{�96EE`�R;hk��#n'���������$�� ����`�L����o\�m�0s�L$%%a�Hkl����V|��D++��Ҟ�^�z�*U���SQ�Vm���b�U�6�:�H��BHh��I�7�_���^�~��G`�����dY�O����j���X����v��E�F�$%���ukײ��i>�����A ���,n
���a٫��������
��"1j�(ܼ�7c��C{ss̘6
�V1,C��Q�hQ|����U%���TlݲE��w�F���HbF~SNϓY���@F��LH��9��t�R)R�����w���_�.���	F��ǎg9]}}}e0�(��.�ᡈ��C��h[[�^��:�8�a�F�5�凭V�*�r#��Hq�W,OJr�ާvh��-]��/b�Ar���)�űH`��vd��H�u����-R���ſ�"�U���W92_�/m�K�(�������
"�?~�~���ԩ�G]���u�V�={��ޣr���ٳ'�=��d�������_ذq��UȠ�mߎ�����CQ����Iϝ;͛5g?�Ξ=��,-,�4�ƈ���?(S��_k����6m��ݻw8w���ic܆������ͭ�V�Z!%9ϟ?�	�����+�[�������hD��E^^jI.�
b	m��rĈ����ԩSY�n���O9�����-��C+V����Yp���ۏ$����p8�G�#� �w�^,Y�Io���;uT˴�p"��7����p��;�Z��t�0����)��G���MKJ6��p�\��i��W� ���v{�b����]���ա����(c<B�h�I��19&=��A���Y�?lj�QV���}�q��
4�)a���+�ڛ2I�π�|���e�JᑓV�_'#4k�6�A�2�}kK���Ϟ�9Y��^C�ס^ݺ�������D�ǫ\���������7���n=,`m^�IZJ�H䱗HqX��%���W���Clt��d��?����=�b��([��
i�pZs�#A���BG9�	a�X:k0��#��9a��
�Փ�;�+U*W��
�
��v���e�ބ�D��%a�60,��%q/�o�V��9qx���e˖a��#ttu�7{�l�@�f͐p�4��؁�]1c����ﰰ���ӧ���@F���!%%�f�8t�(tt�0s�lF���ۡM۶�ڭ��
X���߽���h�̙'''v����L"C-�&������F022F̞},�x��1�ܥ3�;�CG�`��ٌ0�-W�I8�j�]I��AFl=|8,{Y���+����f���c
�{x��5Чwo�����H671�Ig��]2���BtLKaE�f�������s�"00C���V�:ڙ�gĴ$�0�P^^�Q�\9���n��w�V�_��0t�P��݋E1ҽs�N8p�"#Q�tiLs��:u�C��;�o��S&�Ow�X[�t�2hgj������&�)z�^�5���U��?�Zͽ�p8��O�'���0�����W�m۶����R$��-]����s��(Z�N�8�N�v�ޝ�prt�CCCV�ʒ�ϔ)S��o߾e�����o^�xG''F��K�U�Te?4��-Z�(LLL��k�.F��{0���dee��چ���ۈ��"g�v��~P�ӯ��J/�~촖��F�޽{��\�$�4���{gU���߀X�"`�k�(�b'�؁��;PJ���PTL��]cݵ��R�9w��0����y�ݏ�{��{�>�s�iJB��ɓP�D��Z8Jo�>��T�~}�~�3f�a��5�����������/�"I��U�/^b�Y�ڵ>|��O����;Z&��,�1`L�	0&��@�033���O��ʕ*��+	�!��1ie ��oPHW�F���Ȭ�K��݃Ǧ=ذx
+jϮ9�~���=��ʅ�Sw���Ơ��\!|:N�*������!0*\��E��7ѱh���:��A��#-�VAc��ND�~d��X�����l��|��"W>=,�
���C����N{�)�Π:��R@K��������Ѫ��p�9���شz�o���i�S�'��-���;��h���P��)�h�ыO�DO%��8�[�<�!��?b���yX���0�:�b珢�*aF�*xL������n	�`*�[�h�.�K"<
�|�o>œ؜�x�^S���1	��p���3�k6��`z^}��G'��ؠ�!��!�`=|�Μ9��S����ff�A�_�6�E$,����]�)���}�5k&���,{L�n��-[�}�vm�b����%����h׮�L�عk6xya��	�S�6(ٳ<�TQ+?��r�*�|�����G�qC���|�
L�4	���G�ʕa!�UK7-R7k�`!C��޿7HD�<,�6U����qq�jU��]��Bo׮]�y��M⦺���[X����wzA��<Ϟ=k֬Ơ��ao�1#G"pGdZZB�>"O�L/��܅?/]�������J�*?i^�ݬy�'	��
@�p��!��0�[S{��<	އ���3�Vz��Ih"�v��k>Iy�L�	0&��@�`8S0~�I�2u
�oߎ��8�q�*K�%զ�V���"Q�Q�@<x�P�� ����eo�A�B_O�,���SQ�XQ�/22'N�kժ%��J�*+�߸qS�"����B�9{�,֯߀Y�f��a�S�DI��������p�y,Z��n��и$.�?P���d� �7�ݿ�
�+ �M��cc�DJ'���i-��gϱ`�|�<f�p��������+T���N5q֭[/g[��8�*?|�s��u�T�###����%�,��|0&��`L�	|�pŊq��9"	����`�ʝ��4PDS�.U�#ᓄݠ��������o���{"~[�a��P��b�]�=,�G�(�G�A�|��
{{N݁���p[8�e�Ơ���OF`�V?�r�":Q�����
M��ڳ��7��
�i�O���������ճK�`*@Cu��qD."�:x�"}I�&���F�\KĖ�!x��z7�-��8��<��*=z߉�������h�{Y�������^n!ӱA|p�P���_��
^�?)�BB����[P8G,
��B���Q�ZA!��J�?EH����X�2�C�AMp/p�[�Q�XY���ԯ��W�)�3�{��%ӿ�Dĭ���1.�Ě��D�e///!��o�[6�#��n
��>�ѲU+
�tQ�V^�"�wl6�GF�i�L���9�n]:�}�v�
�K�
6={��Fo�@�z���M�6�(W:,�ȅ\��Se��#r�B�KO�Ʌl���vv"s=��[�x�^u:Z�`���cǎ#`�YM=I���Ov'N/�7r�΋'�cޜ�¾j
]��]�vC�޽�f՟WZC���B�|^rq6}z����������]�����s��?��y�v��Q�&Ǝ�Q
�$�k˒DF��$�+�me-�x�|��bOJW7����z��7q�DDF���r�L6��ݒ��Ο??�N���`�x��+P|��qqq�ݫ���e���+w�<��5�J�._�"ݬJ��������W�N��XC{��<���W�4��{�Z������*9�2�ɝ�*�ܙ	0&�~X,��Q��Kޢ�q��}L�<Y��ժVC��}z:T���6y��Q:���;�o�F��7�������+Ο?�
���C�9����xt��A��Ib�ESt��A4 ����S�-I���ŋ}�4i
KˎJ�gΜc���� IDAT����ի�ܼ�2�Y�*�D�?z��paS��Ӧ�H�"Z8ĉ���>Ǝ�L	M5��N���%c!!!ضm;<==�b�����+=]�fM<Ht���G����*f�/n��`L�	0&��(4e}y��-��>;��k�0}�68;�u��0}�&a����j0�����X��c��fټB�
���1B�]�����4���y�vF,ފ1��Si�8$>F�{�\��l�N�\��_-I���V�`�����m9���r��t�일���m���!he*?��/\D�̎�7��A�� V�*6����#��߫h�'�([&�Ǘ{Dž�g�n�1�	��%E�
�$t_�ƌ_��`�G1�\~�r�ǀ�Y�W<֮_��EC�S�Y~`Ύ�(hl���bn���B���m)�G�z!k7xc��H�g�N�Va���(j��p��tU���U�֣d��hڴ��,	z�ڭ2��_ Į����4i�X{J
]�BEt���Ξ{AJ�)	�!�C����(0	��-�U�VhѲvb��U�����#j���*�4a�D�*UJ)KςO~;�����.�;c[�x{{c�� �KO�/��X�]�h!ʖ� _y*i"O1��BX�Zꗐ�K������\�f
�@;s�]\E
�m[#00P<�zt��r��Q
�� ���❻q��I,^�X�LѿT7Y?i��fr�)��e�``P��:�8x��,Y����Nra����~���3Ν����۔λj�ʢV5���Gz�@��:R�����{	���ɓ'��ቡÆ�Y�f�=��+V���q��)\��RQi���S��
������>O3*q8	8w��湡d�Rpuu��yɀZu�w�?��D 
��y�z8v��Kp2��N=���Bm��J�7n��L�����遵��UǓ���	;��{V��)D��G��g���w��.���S��W>
�sR�R��+ݟ��`��e�u����X�lY�9ժVN۟�'��`L�{`�����L^��^�Zo����5j����X��cF��oS��Z5���F߾�0c�tt��{������;wV�:d�M��M4o޼BL&1��E3��@��ɸ\�\y�9Bis떭8u����ߐ��9�fd��7q��3k�V3"���F$�ՑR:K߀&O�����)�\:���7�o0�~�Қz
`��j͚���u��X�ފ��K���aL�	0&���1�ˀh�����|1�a4�B�H&Q��WI(�zK6����6�^�(;k=J�vxG�O�g-G�z���J�����?x7��Bt%qt��m�ɞ�PPx���r�GR~`��u0�σ6݅8���K�.\�Z��M�q�CxM���}K"��7tud����Z��g�3Gvh��D_;o��g�u1ۥ������&j���}��a��ԥZ���2`�g���;,\�	�.�B��s�_:|��'�
�v�ż��d�k�{�6Nn%��y~g��=,��]�oζ+�|�ol��)>��y�C��9R���x!J�|�w�!*�
r��@�Z�a��T0'�ZO�<{+t��H�?A7?�<����f��U����7bŌ�(b��%��r�����<=Ap�!��ETK��?Ɲ�^|��L���"�'�b���V�:��|E��.s���� �?�����~�&���E4��ˇ��V��u�6�W"j���+W���7oߡ��X�l)���Q#�XX�dIܼu[��"A��i��E�����W�Z������(!8��xA7W.y��CK��z_���0���ţ��RrI�m��ʫ(�D���g���L�C�I�S}��F�͕��c>~�֗/_���K���6|$yx�z�J���z�̕S�楈ӢE�}�0V�N�5z�F~mZ�R��E���s��_�P�DqL�8I�R��OB�"�9��"*[
	���sE��ӧ�d�R|��aC�aٲe�)X��%D̂�=�^��ϩ=��L>9�;��ǘ7�M�ah`(jS����
��WV)���7���E�cǎ!1!�4�T~�^0pڴi��{Z���^�S�I��Ξ;+��Q�5�/:D���K(�a߾=���@�a�|7�h�-[6Qzm��9x�ⅈ�߲E��V�t���˪����i�F8;;�������"x���ׯ[��]i�鞪e���'�w�����_�+�y�ܼ>Ά�L����y}���Dm�=���?_����)����3���͛6��I�}z�D��Q�{V�{R�9�y�D
�Z�̐7ON�'��2�K~4.	�gBO��+^lۮ#F�+J�A��O�	L��%��>��`Y���o��`��'SJ���Dԫ[W����{I��d	4���ϑD�K����"E���=�
��������
�;u�W�}�R��R��i޼*W��[�nbo�^�ʈ���d\M��{�n��Ŋ
�;w�7W[�j%��E��5�I��
f����CK[K�UIǡC��mZ�F���D�2E���'YMbU����ѣ������;�A��T�����⑙`L�	0&�>�@�8q�	�یdȯ���1}DT,��G�<²Mx��F0/UC�Z�k�Ó�b�6<z��:�Ь��[TQ�
���k7��-�
s`�Юx�X�����`��(QHV�:�@~-<Vm
��'�`�7'*�4�u�VȦ�\�ū�P� ���衝��-�|�N�}�H�*i���]Z�@?'.>I��
��!�-��*�"ep�@��7D�?�6�,Ν	��̱0̙|c2Fg`�Fzе-��e��-{q��shii#_�lje�r�u���Y%C�1Ȏ�úc����p	�s}���#J�*�A=[�$�|3��;`�2D�}�"EQ�:�ꇖf�Q�ju,�›w�P(/j�1���"Z{�ر?%�ʐ�vAu�i!Xw����=
�{t�BͰ� ��r
M���~#l��j���Z��a�DFD�z=�oP^{�!*�-j��)�B��N/M��ܜ�6��U`Z()�,��}:��oR�Ҫj�~�8�O#��'��`-E��O?���SMn?�>��vf�O���j���A�>�O��U{��Q�URZj���g�?D�WKj�����i���Km]U-dd�ȋ��f���Ǐc���(X� �?{�ٳQ�\Y���G?vL��:u�T���aG���0hki�k�wջOo�3F졍5+W�{�%K�������"Q�i�&"�{��H�O��z�B'KKt�MG={�@�V��=Gv�_����Kپ�%-\$��#G".>�V�sJWN�����Qˬ�(�G�)�e��{uP:
�!��Nծ�~��������}�G�4� �(DSU�$������Y�p,������{��X�n�� �*S;�U�m��IBu��CЭ{�n)߻�����Hq�(�%�:,�d2�����ջ*�Ǐ��w֯[�pF܆	0&��	���VO�L�Hi����v/՟�|�2��``��.����	\�|YԀ��V�ڼ$�����ꕫBT644韩>_*��2������=��o �H���;��U �>��o��T���$�|��Q�p�47Æ
K�]J[�~��aS�/$Tlߎ'O��&��G�S�'�E���&�����F&����`�������GfL�	0&��P''�G��pH)�i���F)�2	�$DJ�)���D�.�>E$+����yJ;,�����
;R�f�0��t��C�)K��d�|��Q;�|$��-�#6$��=�L���f�Ơ��*��A]�vR
hqR��.q���G<����]���7q��ќ���-����x��%"hU��+�&4���J\�4�t��ќ�Z��1�}#�8�C�l��{ot��$w��sT�/����d�.�GkL��Bc�A���nJL�<���3�W������#E��#?SF�~��d̟e_2����{�4WW\�pAԽ�3wN�H4�ʭX�7X[���F�%"n�oX/l0�
`��eX�t�ܽwww!S=m)����-"�߾y/ooѿ�~(Z�(�/���>^�v-��)�СCSmo=�Z��B}2R����A�PE0SD�СC0a�*TH��9HXU�_�����M���X�l����ք�*K!K�����\�D|���=<a\�V=��K�����B��Фq#4�us}G�y�~c4[7oQ�U�Tu��1I��Ҍ"�5	ݪ����B���OEScc!�61b8#7�aL�	de,g�գ�.T��s#M���K�9�J5C���#3ƥ1H�UO������V���t�ǘ�hQ�(�y�6���X��E�W|0&��`L�	dU��F�	��J�r�Q�h?P�.����F�K�t]�K穿B��:���+:O��!���ШjO=ɞt�lI�%���U�Ks�R�
�.�!�R#K�U�J��H}�O�h��S�O��8P�N5�'o�����b�M](�T����>�6�E�(�IcI�߁wa�u��?
��z�%��S��A��Ŕ���%�Ҙ�ZK��j*i�>K��{"�Ȟ���~�?�Wf�V�l2��w�������L�&N@��z�:Y���+MQ��J�z���8�o�,�6[��)�v)]3Y�^�Z�l7n,֭[��cƈ��\�ƍE-i�zH饕�ǔ�Y�(��������"V��ڑ�i�+	�ĜǢE�jS�1eC����?�ܒ��K)�Iԥ��zz�V�*ƍc�tS@�}�~6cǢ�i!1�"(��w��g��!>I��}w�9i
��
��o���ӳ��ݼe�����˾H��)�l'�R�����JQ���׮�c�.]����י`Y��Y}M�)z�ƍ�P�¯	�g��`L�	0&��(ڈ��坧����g�!.
K��!=Dz�/���k�\ę��A_'ZI	�c`�-��Q��"ZW�ɳ�fQ��F��mE�&�6��-S
��u�+&N�$��e����T#��0�G.d\�/�ӧO1v�X�����puu��E�mО=�a7k֬����D}\ʋ��P�?LW(�8��R�//P���!C��tS@��6��k�w��=Qcڢ����_�ER[i��ҋ]Ԟ^��S�>΅�LL��a�k���F_#6�mQ��ǎJ.Ъ��P�w�1"�����R��*�E��Nݬ���<�t����m��đ�T��y+SO�ǙГ�^tkظ)���]EKt��i�G����H&����N��}�y~L�	0&��`L�	0���b��D`J�L���ZD�0��KQ�R�h�(m)=�2
�K��P�+?��)�v�BϞ=3��k�u�R�2Cݸ�!	|O��ɓ����[�l���R,�1��4N�K������(uF���E�\�Y�֝~^e); ��T�����6xa�Ν�?�622�Ȕ�x��ʨ]UWOS{w��8{挰E�I��#]X�p�����쬜�I�p��}4o��C���j)�U�P�/����0>1	�z��bOO1)�L@���PY�W���g#�<~�E��o���p6씲��h�2�ȑSD�jiic˖-=-�N����xf�
q&�v0}�4xjש�^V� �Ʉ�Ok�n�*N�C>��)&��@&`8a�)&��`L�	0&��`L�%��`�RQ-�w����˗����(R�ٴ�?~d������/8&�H�L)�,X(�Y�D���
bbb��ᙢ�Xzbg||�r�;��L�u�ׯ�2R�J��;{ӦMC�߫�Ⴧ?~<J�.��.sAe�|}�p��)�D��ߨ��5
�(���ٳ�3g��ܵkW�
��K������UO	��[�*U A�`hh���oߎ��1g��)[F�O��h$�z;�\�T��B��>4씈>���U��~(�09��Ύ)��x"崖Dݺu1r�p���-\�$Ӹ1�q��\��G�!:�jW��	��5���'��$���ZI�b�t<z�����ʕ+�s�*U0a�x-b"���/�|6�`L@"�0�L�	0&��`L�	0&���zYU��Օ����[�L�G ��a�Y�*��v3AⰓ��绮���;��R[�G���`롢�p���4�I�z���Q����5��'?�^�L�	0��D�଴Z�+`L�	0&��`L�	0&�����<�����_���E���.]��E���v<�����k+5!��{�0&���D�`��`L�	0&��`L�	0&�~t��~���
�o�1ʬ�`L�	0&��|��92S�™�L���Gߍ��`L�	0&��`L�	0MX�	d1�xc4��`w�`L�	0����7�����t��\�`L�	0&��`L�	0�T	��7�b���h���2&��`?�o�=���f�0&��`L�	0����H����ʺe�����d�G����ηF��a���/Q����[sa�L�k����]+S}��>����̓��vCH��ۥgG��j��_:/�����m��k~��ﷺ������N��3&��`L�	|��9,��pG&��`L�	0&���`{�q$�nì��@��6�Sq.Z�l��E�{B��|��ˀ���X����$��~P��5����@V�O�<��i�̙>Ġ~��jO�]2��[?W��Sy�EU?Ԥ�&{�EaG���<��&{��*���}�	_��fj|�p^�"��K/;�kК���Ӥ��΋�Ѥ/���&e�oy}��/�2�cL�	0&���W���sX��bL�	0&��`L�	|K�2 ��a�z�)m;�@N|�V_��?m|k�h�-�=7q�],�y�����&9�!{�!OJ���u�
v�T�sԞ"uu}�f�6١��
t]j#�Im��x��GO�ዷ�ɴбUS4�Qy��j�墲m&�dU���VVV��j[
*!=F���CX�)��-��(���մ��;w���*�+�gϞ��eg�	
BAC=ܺu��' 00�~�1���P5�d�w]���Ƶ�c��b\�qIII([�4l�٠R��“���z�j<}�&&��ۧ7:Yv�hJG���������D���0e�D����7�ag����
�c��3
�R�N!�r�F�{�N�z8vJ9͉��7nc�ܹ��>~�^���/_1�$�I�N���pFa����p���##Q�Z5L�<	�M
a��)�X������l�Õ�W��2[�!I⦦&;n5�s�?���jZô"��Ū��0j�(,pwG]��r��{�o�f臊1&��`L�[���sX���6�`L�	0&���412`照X�9���(l��rDc�m_�N���{��F
�k�*"B6�gرg?>&	2mtk�m/��sw��<��P9_�t��9��Bђ��-{vܽs�qгc[4�i�S����}�T��vm�[O���돷��8���޾ۡ���6�粃(n��)�k�+`��]x�xh�j�Jȑ��w/`;��さ~!������G��fҲ<^<	G@�A���t�������E}c Ofl�g�*�!&�5dUxW�.t�(-�;4
�2� �YJ����#,��]T#`U_\��iF���\�Ns\Q�|yt�b�a���9r�[4Ď����_pr�%�I�jk�Oŏ.�zb��ahX�q�P0�?���p��	xxz`��LT(W�^�Nΰ��E�uq��Q�]�3g�D��E|�Ο?GG8�vA�90|���j�J���c�	��pTK!X���C�zӄ IDAT�9oU"����Gh�I`
�N�hټ������	�6��ei]� :B�ڵka?k&�-*�I�:;��իp���˖-C�E�����0x{�ѺN��8v	���?/	a{��]B��G��c"���B'{vDEE��a�x����~Z�:`L�	0&�K`��^~�<`L�	0&����	P���x����Qp�TD���eQ�|t�0��g$,,�Dۑ([��Y���lQ�(�
�݀M���`ܦ�m���!"��,\w��?��C��r��`��(1��nA	#=��B ;��ƀ �X2?k6���H$jeG\L$jV.�Q=�a���jV�:V�k�y�7֬��u�CD�]�E+TC��p����{�nY=e$E_�د@ﮝ1���'���w`)	dU��#�e���Cq�ڵO����D$j���0c�t,��ŝ���B_??�<yG''\��J/�iS��b�
��E�����E�e��Ɖ�'��0��ܑ?�"""0q�X8::�r�����RD†���y*�I�[�n���o��J���Ca=h0�խ�V?�M�|�j�R0�F�D��$���"�"������=�p��C89;��(U��fLG��%Q˼>΄����`��L�/j)�F���С�ȡ�%�;۶(3CP������}���Q�f�dx����;w�H�+V`�ȑhݪ,-ۋ��c^gCO")	���e̜5�w퀹�ŋa�%X�|9r��I!܆�y�>}�{�n�hː�������w�/�����8t��
���нGwl݊��9���6&��`L�	���O���3��L��Ƙ`L�	0&��H�����&��w�����Zf�Ni�����p�� j_���.k��6���a�	Ѷm�47��	hi�
ݛ��j�jG���H�}���X;�t�����?~�)]�_�*���Z4i��-
�m~����"�C�>��w��I�9��ao7fF��w"���1zHԩ^@��v������i��/;���2���#�o���c`�jB���Ο���^�>�+� /���P%��
�A�I/���_�ѯ_ԩ�C�CϮ]p��%��GG{�75j�@�n]�u����{���� eN���x�&��Xc����ݧ?,X��'��k-�u�y.sQ�L)H��$:4�L���#�?>ʗ+�����G��%��͛�B��ȓ;�R~��]��� XX�@��]ȭ�Sy]��{��1�hC�
7��G1f�-�ԩ��]� `�6�:�%�=`f�@@��W�D�f!��=�Q�?��;wF˖-�e��{�hH�p#�س{��f�ZzB𿑣��lٴ�r�'d�����
�/�_!�B��PǼ�ۇq���}�+
�,���	�ѥkWԭS�O�b{@滻��8xǏ����f̴G�:�hߦ%���eL�	0&����X����g�s�s[&��`L�	0&������?~"�W�T	Ȑ��2�-�yk��wp��U��B�`��.�q�����12�h�
]�2�c8~����ث��U5�n����M�L�xƽ���6�J�$ֶ�@�ߪcF�Rp��
��fpQK8��],�	��%�`Du$CocѦ=�Z2%5~�>m*�*���-�<�5m���re��w�#�xoBy��Ȇ�j��Lj7�aQ�-�
8�;��^s�<�����A�����*p#&�s`�X��ƅУ[W��T�ǎ�nvm!Z�n=���B�&ͱ�^��V�S�8U�C��t]�N����7���9s&6m܀^������
B�}��)K���cGS�GQ�R��ظ\�t/^D�޽���A�F���c�v�˓[��ht��M)�
���J�fU8^!�8qM-ZbϞ�ȝ��G���%��z"Y��y����x������n��~ބ�A�޽���+]800zyri����Э��nق�EMĸě|;zBx����W�:�o�F�S��"���P̴�''g����y3���llѡC4m�G��B���X�@>���cN+�gn4���4�Y0&��`?�"Հe�X�T�l�	0&��`L�	0���
�+V�/3rh�I��w�&�7�`�����\%�T{�8z�%6�=����e��Ҿ��Ϩ�z�*�j[�"p����8G*��]�Zb�b��)���s�y�*����\:����f�M����l6l��F�!(�+����$�П�yN�{����+��fj�.Dkj�)��Yn�~�����]�r5L��aٱ�XQI�$!��?�L�Z��zY���/�<��l���T����$�)"R-^�����#�M���\�ʝO?��|W��Z�$R�U���Q�*	�c�3��Rx}�2�����a�Fq�q��R@���cŲ�"�!�hP�<Ep�N]�b�J����?۷mE���sE�p�N�p��d~J��w��#>�ߠ!N�:�l����9s�`���<4��2d(֫�\;���b�USQK��ZU���$�ڷo�wo±��%M8&.]�u���/zYYa���ȑC��ߡ]�������҂������_�{ꯝ�{�ѥ��)��`L�	0&�����@�E@u�LE�p��dcL�	0&��`L�	�F�R@�ϟ�w�����)�)�I�X׵��]4l-���;Q���cG�@�r�H��-�Q��ǯP�\���&��9��	a��O�z�k�4F.ET�B��5\�t��/���S�`��Qh^p�؎�`cm!"s�}��>;�j�(�� �{�(!�HL���o;���C3s���+	�!���`ƈ�hTQ_��$�R�i����ǀ�J��J��`�+����<U��FW�-�~!���f�LMLѺU���j�f%x„)�T�7X��3aaX�v-6m�:
v�)�i�O
��dhf�;aĈ�ܱ-�m߉�V�w�^Կw2!��KJ�,�w*�$��?͚5E��]��M{��Ŷm���G����E1�n&~��n\�''��A}sq}��e���G�ҥ���Apuu���.R;��ҥK��-���`���63C�.��e�f\�p�.���Z�^6�SG^x� k̘9��<��%����w��hܸ*T(�5k�@_O�S�
��h��&_�-���,�)S��°7(n�s?�5�����Q��N%k'���1|z��&����~�:�q��nnDEFb֌�b=||7�:�sf;(o�3�Q�b����Sme�w��
M=�?�r�lڸ	���V<U&��`L�	|�����G�'�#wn�\�̴����zbl�	0&��`L�	|C�2 �jVz����p��I���<l�h�����-E��W����C����X�j=��"D��'#zh7�;��d�K���VMn)DW���9�+���yj;!
o�;�G��iJ�y��q���)f���>�x�<V{c>��w��c �B$�ڽ\}Q�N3�kd$�P_�_4/[Go$�̋i�:���W�^��������}�<�o�\@d�gcl:5@���Q�,û�M�l~e���$�L��HϽu��a�A"e3=+�0SD?}��NN���?(R�ӦNA��Em�$����Y�n��2�B������-�~�z�/[
��s�Š�Q�z�d~�1��3�)�#�"���ww7\���d2P�	�q�P�Tq�Ξ�}X�v?}�ҥKa`�~h��B�M׏?)^Nz�>ժVŔ�P��)^�y�3f��A�ʕ�����4��s�.ʕ-��v�Q�X��[�#��!�l�)9z.�ܠ����3f�v�8|�y ""M�b���Ȟ=�2�3��Ҟ"5��cr_�E�}�4q"�1I&�&�x)J�C�>�Hl:Ok��L�0���D=dM��iQ.�y	#G���"��]�S�>�1v�8�g���_X�`6n�����ř�Ӣ=}����4~�}xР��q��r�L�2�ݻ7
ѫ]Y��n�Z�Ú�}�l���E�p:T��?j_�I��&�o�`L�	0��L��4Vo��Fܾ}��ge�g��̴�)�c#L�	0&��`L���Ʌ�S���ۺ-(X���1|hW܉���7`�?�2@��6���{������^��e,�|�w#��x��~���P�X�s����|zȧ���ah�&0БG?x8�؂W�Q�����;|��^]s�U*
//<�L@	S#�/���V-E
h߃7�{���!�vt�k�h���ٵ)
d���lڇ��8_�4ʏ�]����pL\쏏�t�=!Z�6qZّ+!���4�"M4����c�?#�_Y&AR�q!^�:��SĔ��
��v��S@�fR��+�Mj
U='�G�x��;t���ǒ�-������r�SSS��9t�����
������~j�+�W)���Q3#��|��1�\���#5�i�ʥ�Ⱥ�����!C�ix�|KX�I���l�2�-SS��#�����[��V`Y��V�}aL�	0&��`8���l�53�e���vdO�`L�	0&��@JiF�*)%2�O�I�#N�iM��t�ګ�aN�)-3T��H���P
�/��i�%�Qg�"l���d��6ӟ�)>ɞ��!��H`��X4}0��_{������]E1�4i<���S�jC��Ԇk�O�<��L�T_M�ԕ9�6���"Q���DD�Rm�K�)�Rw�I��
c�ȑ�٣��ii"?}�	&�ٳ�8r(Y��dN�&b�6��O��ÒR�G�:�v=�q�14�b�.�U�iYg�y���\���(��ٳ�h�8lݺgϞ����j�_�����›7o�h�=�V�Za������ź�k1h�<�XjUڴl޻w[�l��{�����ҥK��&&&P�VN/�7�c>{�~���s�Et�>}Dtxx8.\��/_�M�����Wj�HLL��a�C�|�Dd���=X�r%Қ��=�3�u�Qw���:::HHH�݌�:u�8'ES;�~��]+^��@BB<���a7s��?z�E�`cc#^2ILL���#�O�<y��|�2��ś�oQ��!�t�R�K�k�߽���/>|�¦�aի��5��d�3�lo?u����c�0�e.^<!2+|��ݻw�o64�#W.y}w>�`L��%�p*k���@$�'@7�.�T��~���R/�ع�����Gov���ƅ��+W�bǎ���P|A�c^�٣/�{��…�x��&��С��[�o�><x�ٲi�f�Z����,U[?�m�3cL�	0&��`ߎ�~`��a�{�nS{��B�P:�T\��;.���Uk1o�T)�+���>b�u6�,+�F�t6�����2������܊Ú�Ie����!,uU���=G�RD���K|��}�պe���$4^�vM�h�|�0y
c�P��=w��/_!�2O�4	�����!CD��u�֣k�.hӦ
V�Z���08@�[�~����Yu���ӲIc�z�Z��QQ���&Ҍێ��SK�^pZcΝ3w����7ww�/W��L��3g1x�`�����[9�Tm�n#p���ԩ3�5�kzs˄[�Mxxx�|��~���ǎ�Lp�}}4o��!���1�:Y��oܸ1ʕ+��G���ѣhҤ	5n�7n��C�I�,{X[[���W._m�ٌm����?~4�h�#G��իWʚש	�ԏ�Z4��E3d˖
�֮C��U`h`����\�Hm�
�;0&��@�"�p*�Eo�nڄ'O�������c�����h߾=r��š����K�֗�N6�?^�yU�F
<z�zzz��{u�f�&{�-��{w�/x�/^�}}���%��=z�����ڵ+7i�ٖ�I����Y&��`L�	0&� xǩ�޹QqI�Z��;�`��������)��8�u�s�E��σv�,P�|QX���V`?~,����Z���>���f�ޗ����C}�u���eD�`$$&�����)S����Q2/ԣj�"��C�ї�6�x���/[&�
1�����	��و��%K�@&�a�ȑ�MzpZ6�k9���\��"�T:��5!&�S��M��U��J5�i�t�5J9ǴlJ~zzz(#`ӛ�W�_�=88�Q��б��ك�9s�Y�f��3g�{GW7���D���ӧ��ٳb߷s��B.^���޵b���)Rfff����J�*�ܼ�2�Wj���[[[��ơ�vvv�rZ0]�5k��3��1}r�r��GHm_�;1&��@�!�pK��f���[��`�M���Ŋ������8q
�J�*c�ĉ�\��x�l�r"bW:R�Go�լYCَR�P����e2))�V�B��%ѿ?юS@g��1v�	0&��`L�''"i�)�sv�i��&�r�L�2��MG+�W�=ڒ#��t�Tۗ&��YUޱc��:��A�dVVVi�m�@�!��&C���U=5j$�:�CUP%�s옱�Hᑣ�b�СC�\LΑ#�/_���f����j+��lR��M�|E�	�s�t̵k����SK�֘��??<�<�\ɖԏ昔��!C����T�Jl�~�]�L=��ܾǍ���SlܸQ�����UW����K���6\]]�A��$;;9���.�.�>}�x	��\������[�ȶ�d��%K
ӓ'O�ܹsŽD��d�ơ#=�m���3�;�u^������{p�1�`L�#�p��E�3g�`�/�z��ŋ�ͭ[�¥K��m�6��E_OO|Q�X��h�n/�t(�}|0��y��U��4�+W��͛7��om--��jU�a�������	���`L�	0&�s��$��/m�Q�
���4��L�J��J��4٥QHu}�&��Ͻ2<;&����L�.� N"
���td��=}=����[��2*S0	rQ�Q��ܺ�1��NDp��*�N=u����)S���Z�R��U=Ҋ����իW��q���iٔ�S$��sg�C��-��TNkL_�����J�{� �Wu�	$����+�ki�L�O��ܾ����쌁b�����CUp��&NB��z`��bŊ���'�l �՚���΃J}JI ��ۋ3f�vUN�q�ܹSD�x;w����@$e�buq��LO�<9���<�{�	0&��=��`L_.oݺ�Y��D+�A�>����U=���+O�A;F2��ݻ�CTd$�̝#�����?�\�Æi����ɓ�?gg'�Ӕ
��ia��n���*<`L�	0&��`L�	0��M �
�Y�:{���@F`�ĉ"8�*�֠A�������:Oԭ�ի(�~��ݢn��X�p*V�
cƌ��%Kq��E�0!>!Y}\J�K��رcċ>>>"���Ӵlzzz��1q�D�̙ӦM���1fϞ-����#66��n000P�)��i�Is�������\����@1�ҥK�n�Z1G�?	�-KGz���Ozs��;��,Z#ڥ,��궭�ĵ&M���?��K�����/l۾
]:w����Luw;w�,>�Ā�Sɇ��BJ���Y^��<(Ro���C� q�Ҳ���|��8y�����`�+�� ����E-g:ҚǗ��^L�	0&����*:tH|ѣ:�޽C�51{�3����s�NB�r�
޿����ܾ_?_�h�B�q�{��x�\���#5{��p���Ϲ����#<x�P�)S�,�\�,����R��-�Zf)�{d��}dL�	0&��`L�	0&�_`��"��0��%�90��uu��ϝ<eJ��l�^~M�� IDAT�*��I�'�}>J�=��mێsg��Ç([�,���+�5^�x����¶�ڊvt�8��տ��k�R�w[�
�����Tm޻w~�~���+\�d	X��R��#�P�!Q����C9��`Jo��<(��KLLD�֭Ai�w���\����s$�۵o��;w�� Rd3��Kͦ&қ[��-�F�?�����F���EGUQ���z��m���
��͔��v�M�.�=SFG��ΰ�a�1b��"��"�
��Ѳ#*T� ƌx!�G����^V���"ϟ��=�w�vt��89:�}`u��K�	�ݺuC�ʕD���qZܒ	0&����X1��Mo�ݼu��0a����W�"!1��"��������/rz��Q
��+�@h�G�7o"/�
hjj"�;�Ξ9�Ĥ$��[�6!�q&	��l���e����eL�	0&��`L�	0&����N�gpx &����}zg�CʺG�o�p��i�V�㯱�}�`L�	0&�X�����M.�#!!Q�M���]��!F�m�td���GB��ت65����	`L�	0&��`L�	0�_���ܒ��+���f��&��1&��`�`8=B|�	0&��`L�	0��O@$HTx�M҉/8�d@�������.���Ǚ{��'�p����	��#�
���`L�	��X��W�}cL�	0&��`L@�8#�7@�G�����m��Qp� ��ɲK��<�,v��$��/��<韀��.��y
L�	0&���OF��lAy:L�	0&��`L�g#� >��$
k|�c�~� �b���J��h)ΓhL��:��t��'[>�7��u|/H�^�
�^�C��yLW��kjO�?�"�Z:G}$ԯ�5�"��y��O���L}Ɇ������S�����&�0��*������ȑC��277W���l�%M���S}J�)�G�'Kr%Í���d�z�7v�����J��O�RrPjn!M3)�3�0�4��t-}�P��gMn�����Dž���u&��`L�	$'�0�L�	0&��`L�	��>Ȁ7V^����qlK�UxM�*E��tn�0L�h�(��JB+	�$rҹyAw��GX0���C§��-E�ȣSI0�Mm:G	��¬��M�+���d��ӵ��eI�&hl���C�i��|�J?�l�h��w烢�%{ԗl��ԟ�b ���j5�$�Md�}�sL@A �
�[�nE���2��^^Э[7�SM�d��I�f9|$��`���=�B��٣;ڷm#�R���.I��K�LM�6ő��L9�72-4ij�bn����H‘��9k�W���V� K�?���n���
G�O�Μ9Q�h1t��D�V-�$��O����ň��B�ʕ1��&F�<���:G�<d=s�׬�Ç��[ժVÈ�a\�@��Ѵ��י��r�*<~����!֨cVK4_�v�lǁ���#_z��G�-SO��D/++lۺ���y�.�����	M�Z�{�8o��F�¦�r
d�ɋ��ݻ�:���3rc��J܆	0&��`���w`L�	0&��`?4�h���s,���D-1̇�9�ao���
���G���B���֦�GO��ۂ��@��ѭ]4�Y�݅�����B�|�0�j�2��Q�DI�dώ�w�"1�zX�E�Z�q��8x`*�*���,p�Q�}��>:N�#��I<6m�E�\y�w@',Y�"�
��s<~�u��$�=�d�Z�2�#߽¸�m��ۏ��]L,�60G�VUq���C��e�_;�o�Bt�ò��,,�|_%�������E���0�gCP�{�z��{!1>9?ªm�ת���/����g^�����}Y��ع� ��`���g�u�!�`+�'O`���<y2ʖ-�7n`��+F�����v�CCK�� Zhj�GIV���^���*w3��b�IP�l"	�B�U?$!Wy>I�@x�kX��d��x��Ǝ�����!�*�!!�����\���1h@4o�G�����L��"E���#���?1c��{Ll,��p:4L����sp_���m�`��Cv�؉;�oa���\XN6{���Lz�#��"M"��D��0u�4T�Z�.]���\�غ�		�h����ȟ'w�륺Jd��u�?e˔Fǎ�8H/	�_/��ƍcמ \�|ӦMU,�-Z4����ХS'�,�!`�n,]���W?C�n��X�z�?����:��2I�׎����#�矞w��x����~d�wz|2z��/=��������z��Q���������u��H��y})�����g��L�	0&��`L�	��(8��#x�6ζD0�yLZ�eʕǠ�p�Al���cQ�(0e�;fڌ@�R���:^=���V-E���e�~�k�4���X��p�C�v�F!m �%l�svcP��3�Eb�u!��<t�g�<��:�6�.X(�؍%co)60Q@c͂
�QA���,���H�
X�bb�$�X[b�
�J���ݻ�.�ˢ(��>O��S�f�ܻ��s&2� 6�sE� l�>\��%�E��}�vh�q6�ps��o;�zXw������W��2�^�������Կ+~�����Ъ�g�	���G�F% ,�v�܍@��hR_�5Q��><�L�%0qq4:�o��V���s�jnf͙����gq��[���=��%<�8₱�U,��v4�F>��)�C�l�!���L�2cnj�A�.�8����[�a���d�x�D=&�K>��ׯa�r�}��4i�E��j��i��y3�������?�7��������8�q
\�ի˵��0���t>v�݇��c��@������X�ʦ�z�=�%�izz6n
GHH&N��������7���(���Z�m�<.�c�'X[Y��y
�4u�T��p��¸�c��p�����XT�T	or�0r�H�oC�5xor�0t�pX���C�8[&^��w�f��m�����I��񫯸��k\��o^&믻w������ƍc��3ڴj�kׯ+�+�}��S��������X�r�U�����0��	˖��]�v4p_ xX3�ƎE�J����MQ�����$�\rj	��e;�d�3���:<D�+�V���;�[\��vqOz�m>
�Q��/��]�*{Jڎ����"8�8+j�+\/+�WL������b�2|��zO��K��MU"@� D��O���������'Ox��>?���+�m�x�=�b����?�1�g|�OCG]�A�B`:p(L�j��9#���}���y/����"ϊ�?<|�3z��,���c���{�;�<�<`�&|�w0zׂ_�vԭQ
3'���Iױ2*�A3� }$�V��ǂ�ѥ�8���l`�k�;���Z|��>[����`?����b�'ԫ.��a���6��~]�c�%ܹy
q.�yy73�M
��������0k ���&�R�b��<�l<֡���oV�{�����A^!��e8j�}���&%"�K��<x0bc�QMOO
�z��ƌ�LXx_�@#	-�U��^v�3�;w�����Fff&��/�ϲ�011���	<��k�b��I�ۯ/N����'�>�y��O4�0�&����…\���o&貃���1˙�����Ÿ���(6��S��C>��9��
��uK������Lx�1V�Z�����
,�1;����(T��/#^�1�7������5�S���-�p��u��N��Ç�h��*y���c�<�g���f�r��qq��]��*f9;��g�V�:�����f�F�ӛY���o��!C,p�L&��"�9��r�x&3��}��#L�6�11��w���K�BB�1z�,Z�͚5�cD,�IJ%K���f��p��)T���y��}4�G��B�X�nj�a˦��Q�T��'�Nt50Bzz*�U�
���+��xy�e��PW��.�@��y"_r&�T�I�tGF��w�%�������j��QY��ƙ�����3U�xi���-�n��<�U�E�o���o;g�P��m����%3o��DŽ�5	i�j~[v��9��SE]$�D'PD�"@� D�I�k׮|�Bv�o��*2K�({�����,>u?o�Z9x��G�_�����ܜ�Cg��næ�h���*�+O����GqퟻX>ϊ�l�܁�;Ф��p�j���S�fI�kX����ܔ�kX���L�璽|Y���m@�V1Ѯ;�{
,����hݼ�~~���8��[���Q�~�#{u��y'x�_��[��҇��w�@�cZ�l��_6GdB"6���k���1��<o�ׯ��SH���7l�j���am#X��G�>2$��(q�`�0�$+���a��]\�;����	~�(Muuu�������w�N���wDDE���S&O���IIX�~Ǎ�m۪<Yz�S�C�;Z0U8/�˾�ݸu���!bs�h�f^�0v�mGc�\f^���qW�_��hޢ%ߟX�:�,� rs8�W��E'Ɗ	��3�	��EX�����P��tZ<��^^X�d�
:wV��Ё��c�	�����B��=z���)G�!�HV�����B ַ���Ŏ�ۡ�Dn�4�{���\�����
{w��Np��y��X�d1���0~�=.\��Ӧ"q�Nh�=��C��s��,���Epw�?��-�Kj
)-`�����U� ��3̘9FF�K�Y�.'88�I�زu��y5�4/��A}�����Wcc�^C�̶�P�![�@�h�D��j`���S|�����!�b�\���M(�Ew��CquMǀ��������
	V��-���ƙz�,�3u�C����Wor��II)���Gss�̞�J�,�r�ȍ�������;}=}|��wpr���+9�}�󂊹Y�yBU="�o\&�)IXF�g�w��$i	�Q�.���ܔp|�:�+V��|���.�g�r�h5��\R�A�"@� D�"����ܶm[9rX#b�a���E���p�{S�����[i�V"qc�Q"��D�C�`�$�s�&F��ep�
��,�S��7�5%Bq��qh���C��+jլ!��e<��p�iW�k��X"?�]�{�&�V����`��?t����|����Yn����^��S�
Ğ������;�.��`7o3�~�5��o��m{�t:�o<���ߌp�/�j���I��e2�������!]yݫ6�y.�M�
DJ�Q �(f̘��#��Ĩ�L�Sؾ}V���G���b���d4�q��������
��L�'���ёQش)�Ə�رc���^^ag����bO]�5�y5����Y�����!��?���X�j5&M���cahе ��DP137G^n�̂N�c��D��;d�`|�]q�gI�g&̲���ݴ	
��G�~�$)�ܼ<،����0{�l�o�m�p���%m��;�=z��I��-��];wrQ�}d2h0���ӈӋ=��`�%!���[F4x��~�n���~�.s�����U�￷�l�2�t�
�l��������$%�}�;L{�gIL�%GFFa�=ܛ����׿�����srr�ӧO�yv6Z�n�	&�~�zj��~�1�1HKK��/yHqG�DZ`b���.��fm��YMx�{�N�:9B�>�j�`��.���H;�G�\�eU�Ej:�ݥlv�fh�3i����z�/���)�{}��nA���!S���N%�t,���]�+��*�{OI�g�P�D�)SZ�J�@�����A}Ū^!1��035�i�����H�R��x��8S:���8�*�Mָ"�	�E]��Є�Q1H�8Oυ<�"OOb����9��W���a``KKK.GFF�iS&9AA/y�����.��2�X4��$���'��c�Ɵ��12��M�K��)�c"����a�$`Qmv�FX�z,�/N)��'�c�4�'�B��}�Jl��Ezf&_lǎ��ب;��Xj����b�bJL� D�"@���`!�����cx{y�E�C|`���v�<{�)���
���a�%�9�Ù��w^7n>÷ͫ�=�b~�e�!y�#��N��g���>F�[��¼-�:�zU��`�E�䌛X�!A3�Jf�r�4ԫW�M��Y^&�2���
��o=�M��Ik]�u&�}��Ɵǿ7op����50�e=�N�ʺ��X�y��1��������pr
v��B~6p��S4o^9�G���?eb�T�Q̓	�,�%��~ۑM���O^N9�S�Nbm�Z����U�V�r�
|}|��'�z2A��,�<usu㡃
̽A9�3�}|���Ľ{���cG�°�C�mG""##�`?��dq�l/��di>.���L0U'3a��������_�ep��.]:���Sݸ��+n��f�<��C3{/Z�K�h��|�y���O�Y���.�����$%'#2"{��FtL4�իsss>)s��	�"����͛h��`?�N#��*$''��C��є�ؙ�a��p���G��m1|�p��<�C@�����MU?i�g��g'�G���{/���a9r8ll��2+Y�	�l���X؍��3YF�Bf^���dodU�V5������K/!  ���͛7��eK��		[�}�68NtD�
�ޢEx{{���x21y��t��䂅����������ʬ�]�_c��,�Y�NAf����J�I<�W�x!�x<�0�½x��.�|�,�׫��L��mxq?���ժ��3��be ?zo/O�C�%\j\+?_>4�D���Ls����+J�h~����rŊpu���z�2\��	7�;~�/�h�#|�uG�s�#Y����#H&d3��*�E��|/�;��)Y}c�쐐��-��k�B4lP��k1�w��X$$$�fۚ4j��O5X.D�8b�\�h��+�]�'N�{��G;�盬�����c;� �.�~RVߍ[�yD�K�/�-�\�F�7��o��l����R��<�@��˅�u��O��m[��%��0^�<z��^��Z�R�wE�w	Uv
�N�L|?��q���b���6�nq��UXZZ#b�fd��?�&^Y��v�x���m�V<��/�6&j�r!W��}O38��:�#�,����a���4�_�͟s���yFq~��o�{������\�f�VX����GX��W�����Б=;d�c�y"++V6�|a��NEi���^a������;e�#Vd7C�3[�l��a6'7nX_�|�y��EF&�{�V�	¡��P�y�4ԫ�6v�^��;_T>�2D�*�ʞߌ�x�!`e;��hצ%��9�X���L�җ:I� D�"@�@�"�Z$�we�!\�q~?��޾LԜ�d*V���΃PG���h�Vŵ�/��$�^2Z�@؉{|?�m^����c~�_�o"b���e��+#���ͻ�q���G��[��s�
9�9�~��
|��P��v?����x��i!(z'�f�H�`�<��Dà�7f֎�c���,5�]�"�WQ�F���ߝǨRQkU�k����MD����-���7�6��1~Q<6l�e=�
0eqz�a���z�_���E>���<�S.�H�1�\<��$<���s&z�Z��r5"���L������d8x�""#p����Y3�Z[ügO����))\h��DZ�٫��7o���e��v�:�l8�)� IDAT�%�\砉$��/�>��Q�jUd=��`TT�tu�ly��Ϥ,Գ8���1*]܃��+ޏX8�=�e?�*�WQ�K�����Q�|�q�kN��"0p
�K�]�vp�9ҏ�;��!-#�aq��
���S�N;f7nĽ��?��z6�_���Z�g󊎍���
hă�!���yMI��K�����G�ƍ����-[�:��S�0w��]�����ŋ\�tv��vm[����^cРA^�;l���`��I\�;t�B� �r{������6غu*W�~�{t3{�}!�E�[�RpnnF���U��w�ɓ��ɓ'��،�+r��}}��Pp�����Ǐ#"2�g���X u7GD ??��ơz��
�i�}�o����dW��H;��D�e��y,�I��ٳ'~9{kW#6Fl��gٰ5}�����jUt�'� ��2e�~�g��\������j�D~���ame��өX�~=�mK�Z��N�/l�&�a�B�;;�Dҡ��M<�Tpa���~��,�{w��gh�r$��������RCLtt����p�X��¨���`�Ϥ���<��/_��''ԮUCn���[��y��ݵ]u?H�G]}N��}ǎ���D\l�<+���gme���iذ~=���yĭX��Z���f6f)���h�Հ�T������];i����:�޺����rvqE����̴�00�/x#a��T>�MM{c��=�ӭg�9��Z�!%��J!W�fޝ#F�@nn.b���S'���U���=K�y��~�<�ld�r�3-Z����
��CB���.�`��;���gϞEP` �c"��s=<ѽ���-�{�8���ŋ�0�c!_D&�<���T:��V���de�u���j�i�kڽ��bu �$���f9M���=�XVM�ڳX�tqC�v�aei�ظX��m�<�3A�.��io�ۻ��1{�,�^���x�a�U�4�y"@� D�"@��\�X,=}��7&�v���VeLu�[Y�ƨ]�y�:�T���j�j�00�3*n7���/�+��^UL��N
��Ť�YX��?���uj��a ��N"�.�F���hߴ.&X�������GyX�!���
j�o�A�=�޽;:�o���(�y�Mօa�ڰ��˅�C�g�!>ZOЩ\	����
�yE��c`}t"���o��VDŽa?@��\��#��9|��5D��e��g��%�/>B�q���T�FO#1m�CH?x���[�ҭ{���F5�
p������ݙR����J��8z"@[q9{�*d)(���*�e}p�D���7�([[�V`����j8�����~�_�q�P�O�d�o��\b�^�����-�Fu����	a�e���S�KYlA��Z��H,r�|��{D_�pދ<y[5�!�A���b�Jyn��jҏ��ʧ�R�7���!_�t�{p)ދ�ѪU+���"��.jiɏM�ɖ����ȨH9��	�,$t��ÓK�\���!���4��O��ۊ8�����R�B1;Ng��ӌZ�]پ��{]mh����6ֈ��AU}��N"D#��QTѭ��<�ȤN��(��Ua'!|��)� 5�$��L��v��3?����W��x�&���	��`�1�*�����C��С�E��tU�u�4���;��~~M]h�� �d^t2��y�<�x�U�D�D��*�AaOb�z����]���la�#��6�XJ2���ll�2R�K��i�sX��".6��u�U��`�^��;c��Ng���4�ީ�dw�\S�>ؽk'�u�,������w�y�]�~���|X��[�`����=��saĈ�߼'�%�ͧj~a�SrR12���h/U�+sO�^f�HO;�ۻO?d�g����!#��3��<�ﻟ�:_���&9:�s�oa��yĞ�7��Ő!H9r@����|}����Eࢼ���С��ǂg���k��|�X�M¼������-}��
��ڳ�1�`Ed�o"@� D�"@�+�Õ}Pc"0���>B���7�̮��y�2OYv�<̳��a!�Y -������fyXY,+ceL:����f|��y�2!��eK��2��̃V����	�B�i�7�b�\�ܗ��c�jW{�<x
,�i��9�+^+���+���>�>c�	q�~�uA
I��
�M/$md��������f'+�]�a�f���d�X�$��;��ք��,+�as��w1��G�Ÿ�.�8j��4L�d���&�NƼZ���L���燾hޢ%-�D��j�E�O���vNi�����!/�Q������ĝ3v��S�����	U��'l����ܾ�f�IJ� �2�ܜ���f��(�,�/��doV��#q'�tľ�����]������\1t�@���N�=e�L�gt�ܻw�gL�["����.˧�NV)˗�~�{J	S�p��&8}Z,s�U���	�;۠!�0s�3����^�f�z�����X���@�J��
�� =�$��.J�4�NVe'+��~PU��!�>CacEA[�����c֌�v�Y�x���.�_>���w�K��I�L�~(o�$���_�,,�`p&�ڔ�fW\�B���'��
��%KB@+
�27���#ضe+�7���o|2�p~Q6
�`�`Q�} 11�,��d�"2�y��<��-��G¼wo�g�p�t��&��2��y$4S���`�:��X�:6����g���<Q�sL�IY>�'��٢�g[�Ķk`�����KX�t)�!�կ���o���"@� D��C@��0��~WI?�I>F��ʟg��wv�?�?�)+G��D�G�b�����m������1�DU�OؓG�w�4�
��0�y��w��hY_�{𯻀��:8��D���h-�+�?�	�[�µ� |Vw.J3a���28��B���-�Q���p�1aydyJ�(~4�0�L��B�`y̲�����萂��V}���G{4-S�O����dӕ��r�J����0

������y�3��␸#�hҤ	<==�ބ�/V{->>;�o�ԩSQ�n],^����v��&x�L��ܼ\o�!��O��q�ڎ›ׯ��,
;�~���أ�Y_�����5�{O�X�5j`��#�Vё��߃�<���������j�0bއ���Hߋص��|���š�@4jP�X�2;Y�E	�-����_uhS��������{��w|||ѼeKl��X�f!E'N��#�eKΝ��˥�H'M���#G�(�5�Tx�l1�^^�ء�����Y(t6�(SZ���0��o@.n(��0}�:|�E����V���S'��F��DК@|�Vr�|�Ռ����w�o��2Ž&v�i����eq��t��t������>>aBB��!�UL��	�/"*g���`/\�	��ec%ͫ8/	y����ę3g��ns\`��{����|��u0r�̓�},4�Gَ�s݆�`i��Q�zM�_xv��U���MQ	�$�J"�1~�x�&e�#v��`�d�]���gה��+��K�_�{�ռ|�|���'��'X�_}şBHm�*�������X���',X�#O�e6�n�16���N���2���6o���"@� D�����K���Ul�y������i?u+��"Ѱ�ܻl/��g����ʕ*�=?�Q
�~0G��ո�q%��}�e����?�fO&^��A�/�`��%jꐇ���)PJ�`D�|(
xҤ�x��֮]�:u���<i2>�U6�Ǜ7o�cǎ!/7�Z������+��{�t*^<�6m��ޞ�<|���0b��m\�~=��{�fM����������YY,~H�0����}��L*���?�@222����g�P�ps��/�����x��������]*��1<��1x��-�Tb�$� ��1,Y�%���=6�Uv�ti�`�ә'��12�OI?�8�?<{���}���_;���k�^N�e�u�����	X�3駤��{�FG�E�fX�h!>o؀_�����y2��k�B4nX�sa���"xp	^fy"�-y_���+�]���O����Av�r�Р���������/_F�͹�и���HڟrB����p��Q,[������������Dم�B�e'�3������������_c�q|Ol�=���qǢ
���@Rr
Oann
WgT� Ȥ,���Tva1�*e�re4k��G���T"�P5��|��e�'�G�|�n~���],X���VVV���B�c<���O��R��Ȓ����l�Ȱ�#y�aÆa�xԓ,,R�<���1��ͻ��8_7j�@����

�Ɛ�E�+�U>NJz�J�c�o�ί�uvv�~Æ��T-�fۈ�΅����$c�s\\P���X���V���4�N� D�"@��GM����!޲�g9��CI��7�P���?�	?�$^��#W�ɇ&3�dv0{����`�Gݑ�8"���)�w���49""6s� ��&�(
(�JC.
"o�H;%/g"qrEe��B$	�
��$s~��#fΜ�����%�"�L�{;U�C�ԩ�1n�xt���v+3�P(j��+r��ء�Z)�Z�0u�B"�W�bէ���O�}۱}�wdu��B�(	��t�W���q&&[&ƙb'�P���6�=��
(����=�l�-�S7��~W�H��s�'OccX(�#��"E�5_�(j�P�D�yP�>a�c&hQ��i$�L����ǣK����m/�A�sL��R��Oa\t54�{*�%�~�w~U��`M_p( D�"@� D�"P�	�?X�{�֭x��1�o4�
[�R�Ю���ի�n�:$��QJ�+#@p9E�E��[�6�(z*ˈ3EyZ}�}�
=jiAb}g%7Kc�i����Յ�-9*J��Β2B�̳ZZ��iS�ϟ���)�g]��C�����]�yΚ��(�K�٢��
>/��n����Wԫ�����}}�1BUyϞ=�?��}=}4jܨD�B� D�"@� D�y�Uּ���<3�$e�	�e�k>N�T	�"|�>���t�8SN�����jWI�K���<OU��9U_Q�K����i���#X
��h\�z�=��8��򒓓�s�N��;Z4o�iӦ�R�J%R'B� D�"@� D��	|�0�4�8	|*���{�*"@� D�4�������f�K�,F�.]afn��7o $8���C�~�Jc<P�D�"@� D�"@>Ze]�e�Ѳ���w!�?ޅ �%D�"@>5$��q晻k�.���BO_:tĘ1���8'�܉_~��^���ÆG���xI��~��;p��=|V����C�+��Ne�^^^hܸ1ƍ���Ej/ D�"@� D���J���
'�@�	�o󽑠�� D�"��Upz��1bcb���1v��V������YYY8p tu�p��aܿ?.X��+`�������;u­[�P�F
|���PZ^�r�_�r��������f=H�� D�"@� D����&JD��R�E��_�!h�Z�E\~~>Z�h�iS�����-��52�"@���	����C@_�|+V`��yhܤ1���3̙���ǡ]��p�3�;�GϞ=ѢEKhi,TR�Ν�X�"�5��t'@�
�Oy�Rۉ D�"@� D���e�	�ʚ���=�m�+��{��)g--��!������?~�8�q`�N�?�Im'D�"P�\8##�7GpO_��͛4}���_�۶m��=@�50j�(�mז'W%�p�+W�D��jb��Ȇ�.c�L$D�"@� D�"P.�W�ԩS�����˗/��*&*Ю�N��"�FV#��.�f�[�W�#������<�n�mGI�'N >6�B��}��S
D�"@�@9$@��Nc/�W�\��BO���ŋX�j5P�A}��U�VE�*U�/"��Fll��=��eKyZ���9A��^�:�f̀��n9Fd2 D�"@� D���O��
�qqq�����ʴ2����E7#���r�UY2YVi�E%Pu]�y��i�000BFz*�+/�^�2���Awd���~����δ�31w�\4�\���5��KTZ��0e�4ܾ�/�Z�~�_��ԅ����7ШED�"@>"$���#G�`Ϟ=�:u*�<y�N�:cɒ��֮��\�����z
++K�u�/��Ţw�ި[�.��ً{����ۛעX��ח�)lfn}==�NK[fff�0��"@� D�"@�(}�U޽k7
�@���g-+���1��N�܁��v,bc"�,Ӻ$ڨ�h,��5NVT�yAW�.a���X�f"�HY���;&&B����춶��(i9ROd��h�t����f�A۶makm�������f�?	�%��T D�"P�HV����WX�v-._���>�	�9�D���ù��!7/�j}��?w��>Į]���/����f!��ڍE�V�x-��YX�ƍY�BL�hGSaD�"@� D�"@>u�U~g`p�Ex.Z���GljX�j���ǁ��I_�>q�D;v�G�C�|�9�͛7c߁�x�$�����ѷ�)N��#-�4���c�L9�':������S� $8uj׆���С���_}�]
���v
�����{��¹?�㋦M0�\�m�k��a���J�fv%9��ff܋��o�{�b\�����/����iS���ӧM��~rs�|�/���#n��6l����>>ڵi�������!xtu*��N�
�^�����E���ؿ���U� ��x�������$��k�S�D�"@��� X�/^�����\J���իWJC6�kl�}}}��++O3(	 D�"@� D�"�>e�~��4��bǎD�	����.\���3g��004AF�I��m��|�…��5c��`2��쟬����3p��~.�2�u��سk7:��CT��fh��0��3g��s�N�1���ش)��|�)��򳃕��v
NN3a`�
Æ����;p�t֬Y	c��`?a�,��˯�a�����GRR<xKˑ�|�o,��D��@���`��5jƣ�G4���pw��ZZ��	��f`[kk�DZ���AfF6����z�
&D�"@J�	�%A�� D�"@� D�"@�<�OY�����NE<�={�q��_~Ú�@\�~/_�B^^�D�-�Ϟ�?�^�����W9���������\��P9L�=z4Ut*�����ӷ�M���Lx������G݊||	���_~Ś��	������{�솞�.�e�Ġ�C��t�{�8��J���ĂqК ����M�ּ�m����aԍ��*`�e,
]���i`i��S��s�+�o�qp:v��lg4���xD�"@�(�H.�Cf"@� D�"@� %K�S�Mz���Э\O�e�̼����3�`b"4{I�aAHe�f��yc��iôW�B���iƌB�B��NE�x�
��
@J���x^Q�e�{w�B5}qd6A�W��,�D�xB IDAT�El޻v%&B__��C,����040Ff�)i�l_d&�-��||�]A���1�'q/�aC���OK�fU(��`f�b�
�@��^��
'D�"@ޑ	����"@� D�"@� ��,���_��u�V�]��)S�x���?o���l߾���1bv�ލ�jVŔ��x��
!:6;�oGlt$֯�;�	d��8a�t�r�bb0d�Vz���ڵG�$#$d=�χ����.A�uq��vm�����۸11Q�<�	���]�fUi虳�ѭkW6[�l�O?��U+�ah`�3驼
��8��)�ϛ_����o���k�q����
xA�¢�]>n�2ce��e��d D�"@�O���3�D�"@� D�"@�@9$�)�?��oX�x	=zGGG�[�ǎ��…˘��]����?�#66�f�Ě5���t�y�ḡ��.\]�p��s���űc�00������e8)��/_b��
E�Z���G�k�]�1c�L���۷E7#������i��}�{{�����
1�\�t�/\���v")�xYx���ob�"/\��o�h�?zx�I���L��<}Y�[�$��pt�Nj�/1�ދ��5ť�W�x�7BCBy�h�!����H?�O3X��[�س	��FF� D��O�	�����"@� D�"@��T|�0���;2'V��U�,
���*���Ғ��E"�ʞ�SE'Z�<�?˯�N�)��+k��u��6��"l�+k�["K��ڧ����
Y��H��{��F� D��$��T& D�"@� D�"P�|���Y�^Q��jX�����\��ªDDe癧��yM�,�=E�Wu]U(gUm/*��u
R21�i$"@� D�xH./JM� D�"@� D��S��\}��+#��-
���rC��r�U����Z�Q�zU�^�
JP�ŭ�C���vi��C�M�"@�(��hǐYD�"@� D�"@�@� �dyjT����_#|�HL���G�c����֭[��uj��n9b�R��l����}��
lmly=�>��Q�[7Nq���]�����E�+�s��X�r�>}�6g��DZ���L�)�c��Z��� K(��\4MWBfQ1D���L����{d; D�"@� D�"�1��*'&���kkk��R""P^�����	?�W���g�0c�Lu/5l���HNJ�"��Q������)z��]�^H��bU���
���b��� R��$=K2h�0,��C��x8}a_sC�I;YP�Q�f�B�nZ�_�m%�~U�(D�(�EI>�E.���E������"P��\�:��%D�"@� D�"@ގ@y��������w�	-ʎ
�P�f
ԭ[����(-822
{��A�~}q`����vvv�TNNbc�p��i<��F�֭1a�ԯ_O�ׯ^#&6iiix��%

����H�VV���Ő!Hܱ5?�	wԩ[G�U+t���J�Y6?�X� "2:::�2e
:th_d;���p��q�������١bŊx���.Y�{��a��زE,J�z�v2�`Uu߿w>>>���ؽ{7�g?G|B�,-���2")K�4CA7dB�&��6˨ F
B)+��@�6���sU0
e�[�6�dD^.xv�駏�	�U	ɂ�tp����	2�p��>U<�V\�)O�e���rQ` �����i��=!-�m�|�>�<D��2N��2�Ad D�"@� D�"P2ʫ\2��R�@�%PZ���.]����̞=͛7��eK9Ȅ�-ؾm':�a����B�-���Zxx8��;MGnN.XXik��/���L���]c�,�Y�Nu^�*��#G��vm��ۣZ�j�[�&M����_��l�I�DL�4�Z��&�ڎ�Ū����=u�T��y���n�\�-[�ֽr�J.�O�<yy���P�Z����6<z���˰��D����LO�t50B�H�|�Ϭ�H?-
�!�E�sV.��H�o���[�>]��7�'���+0�ع`��
F��DTd��s��`��~>{��Ճ�y�о��
,�3��EȃV~��}�ObE��@*i��v�h���gᫎ�$畗�*��c,�񕳥#�����p�T6�x�5[��X��nC���/�v��8����sV���&��vFhH(*U�W�9�����,��#YN�PI�`D�"@� D�"@��'A��O����!���ss�0z�hT�Z,����S���DDl��ӧO��;w�9���r��]stt��G��'.;Ǝ�ƍ#`E�T�����<����ի#4,���DV�~YA��[�RE�	�a&�u��i�;���̞Z�kc��u��`�#�^ci�lVV�l���?n<�G���%�.s�вUK�ڌB\�����D��y��ͽ�G
���ʂ����/��q�DXY�DB|<�<�'��|��Xb���+ڵkK+k��&`cX(���<¤�w���{�={A�������df�癴S�swX�0�.j�M�o��s�����{.�����=��={r[��F<��-`�����]��ۢ�v��6+R�N�%>x��f:9�N��v����?����VHMMÆ�둸-��p��&"�H~{v��"@� D�"@�(Gʺl1th9�I��G��Cf^��t�2<��U���Z����-r޼�^�Z̵T���lz�92*RN�e4	]�bE������𷢁��,[�&��62�V���8�`���lQ%v��-[˫q�g�X0Ԭw�JL����>
3SS9�uN�L�ν�]gϒ�OfE(P��1���PUO���1d�P9t�P�Bwk"�J�45��;w���aڧ?�d=��Lh���BZ�	���<}�	�g~:��V��x���-x�+ϼO_de=�+m--d�WK[�O�>=B�.�Ѯm|gb�J\�VŅ!6�;q�q�]��\�nf?���$CO�2r���H=A�$�."@�<��|��D�"@� D�"@�@I �$(RD��(
x߾}��!
y���;1f�0S�L�ai7�oB�*U䠨����;���}��'��!�-���ýV�>����xWVg��0���S�~=�Y�F��<{_�~
Gncq�w�.,���bOY&0.�^�=��������T��2x������-8*��d��;;v$��nE�ׯ�"I~�B��Y�
�� =�d��-�8<df͜#c�|��^�4���폝�;��SYn?e�=��}RoduS��헝��~��y��g�&'�!�y�fr¸|���
d�V���g)��"P��\���,"D�"@� D�"@���T*�|�!��:;;�������g;���l\G4i������t���j���'`��|�ܺu�b�%�ء��I�)S� 7/��aң�O��)�ڎ�{���xkש-G�8�lZu�le�����=zG��#G��?��,LoXX��8�P���̄?��l;z�lC�
�Pɛ"b����CVWѓ4�P‚�(���<q�$X���	[�sX�\*��G#�^�Ey�J�Y�]бCG���ظ���Pթ\Du_�ի�$GT��WЯrB����')w��p,�Z���ICC3�~�;>>�ТEKlߌ��h��=o� ,$_6k*��Gυ<�DGGT��//�JBKw3���Ӛ�Ė���~��w̛7���tV�E]hƟ�zr+��UA�(�H.�=D�"@� D�"@� %B���H��N�4�I�&��X�v-�ԭ�`���V-lذo޼ALL�;�۪uk�![�~�"�������T�x�mڴ���=��	�,�/Y��1�uw�@͚58s��������b�U8ԅ�V�e���999�����i���c̘����;w�t�������y(h;.>���f������-[��!���W��Р��a���mx.�¥+�aim���H��<΅�.������ެ��H���L@���D<<2��]��v14�{�FG�ŗ��h!}�@j�/����� lY���2޼�/x.ĕ�q/���`������@zF&���p[3���0;T
�"��$,��dz�Oip��a�
\���\>�VH�cm����<�Ζ�ے��[�8�N�����aMPBC6h&���F�X8�M�`�I012�mS�%���]�c�O���<X�1;^�>SQ�D���E���d
 D�"@� D�"��W8-�FD*W��=�
��%:�_�Nj�jT4%"�J�4��h�:/�Ұ�C���؍�5k $$D�%��̻�������pihus��5-�\���4qXe�D,�y�T'�?]:}]�,�D�+�)W��5�ӯ\�e�<�<�%�g�0{eC53�XYyB2�\�|����_�����>�;}�qh�ᩤ�>��3J��R�\-�G�$D�|tH�躔D� D�"@� D�(#P^�[�b��1ujD�f�=(#[�?�D
�g8��݊s�45EJJJ��U��W�^8��\TR��	 ���|.���KpssÃ��&�{O�:E��Ğ����M��}�<|-Y�
�R��<M��Ba�BY�iTvM����V��)�
�e����>��	e(��m󩂭�<E����ZIS>���"�� ���Kj	 D�"@� D�"��@���_���݋#GjԷ���yy0���w�D�*U�r���y_+-�XH�U��*UC|^�l&�����f�ù��� ����W�"|s8���tut��7�n��5o�����kq�Y�F�7�t�z�r4o�$D�"�^��^�R�D�"@� D�"@�@Y#P>�|�=��4©\a�ĉ|�I&��$'!xC0�$AV�SԩS�ǍC�Ν0a�=�$$���rss0��
�a1t�p�$����;X��ϟG�ƍ�2{6Z�n�k�o`�r?�}�o4m�nn�hܸ1������$��#/7^���:r��*y"-�2��m�{�.|}�p���<�lg�i�׮_�����54i�s]]�싦$k4">�D���q�V)��(����ŭ��"@�x�H~�p�h"@� D�"@� D�����\�6z��±�$0�[�C�CC��._�\7W$&&b��;,�A�.������]��d�2���B@���+:}�-��3g2���quE��]0x�`�޽�_[����?`̘1>t(~��7���",4D�,�0�+%%	n�n���N2Ă珊�DHp�L�C�{�n���D����eg|�%�	��-�L� D�|�H�8��ZE� D�"@� D�(��`���X��o��7o�իW�����)G�"33s����ݺuEϞ���Ԍ�������T*#-��Aزe�tu�sXZYc��=\8>�?t+WD^nL�{#%%Z�y<�Xf�r2�����f�`E,�4�*€��uKtuu�������w�.�?�;��O����D�"@�@� �D0R!D�"@� D�"@�@Y'�)�<�r/���#0q�d��0)))x�Ǝ��7b�q���ʕu���r���xT�ӕ��@l\,�t�lem�]�ws�h� ��s!9Z`0��x��l}==9x��������m�m�gg"	�e��+A�JK~��1&::J[�n�:ԮS�[VrE�!�'|��-%W(�$&�Z�M������S��o��� D�|$�T	 D�"@� D�"P�H.�g�v��I�W��nۆݻ� 44��Ձ����"��3̝3�wn�����Ѧuk>��b����{���E�.�1h� �ܙ��g��r_��e���)�_I9))R�y��=�S��>>Z�n��Ç�L����vus��
�ĝ;��ٟ���Cpi�P����333����*U��0c�Lu��-��*88�I�JE^��S����FHOO���
�|���2�S�߃GX�n=222����֭[b��016��E����l��/_���
$'%!/?�{��W���0(?D��_�!h�Z\�z���h٢�M���;�+���%$D��_$�߾#ˉ D�"@� D��b�t`NY�|T�|��e.�V�\�f�����۶b������_�2����A�o��
��|��,�]�/�a���쌶m����[X�l�]��/�5���7n��Lf�/�I9b�y'����JI�w���/�a��pv��vm[��͛X��WR��ps��&�>�:�cP�rJ�����(�ݳ}��Ł�Я?���q�999�����ӧ�<;�Z�Ƅ	P�~=��^�z�������勗044���D"-�\WO����\��p�@��u �B*z���o߾�M��q���e�V��Z�>���-jԬ�=�#"#����)S��C����>|||p��=X���ݻ�<�9�`ei�M쐭_U}���2s޼QʦB�
���pV�*�&�rIՉ�"���1��OA[?�	����H;���ڭ�
�*���x�b�#�ܗ-RQ!����� ��3YH��-�#c���	O���…�`l�cl,�
�}�4''|��w<�����{w�\N�Z2����	�WRk� D�"@� D�>UXV���
����j�+�WTMT��#���E��o��O�@i	��t�0{�l4o�K�-���`��mp���,xy{�E��V{-<<���ӝ�#7',����
,,�HENVf�
��g9��u�y�]c�`�/[���Y6���кMx-Z��#GB��6���Q�Z5�-�C��M��+Vr�z���\8	�v0V�>����k��25a�R�8�����-���gϢ~��p�?۷�v3!���a!!�T�"\]����=u���i�`f�Qh԰./G�Of┿U��N:000Bfzj��*n�{����˰��D��.\+;���G���X�{��]��<���X��ڬVm7ֶ���'��M!$J4���2K��2�5d D�"@� D�"P�>e�$9RYD�C(
877�G�FժU�B/O�<O�<AD�fT�XӧO��;w�9���rH�]stt��G���-;Ǝý�VHE������8�q�^�:B�Byڷ�e�{��
���P�"bcc��d�(�f�p\\�'��Ƭ�,��q�yQE	���SW�:6E�9�X��&=�CϞ�p��Y����t14���DX[Y"�t*֯_����B��V��9u�	[�ac�F�k��[�@��g�<����7�M ��J�*���$$�(JHA����B ��!=H�)(�!�' �ȳ<� �[��93w�3��H���2�{�>{����|����B���I��d��O+�qP�~Y�-�d_�n=����+>�V��zq�E���_¥�3Ǝ������{qx�^���W0t._�$�W�X	�V�@�J��9�H�H�r������I�H�H�H�H�H�H��
��4�!�&��/��Ôɓ3E23x&�ԩ?��-�E;d''�t{�
���[¶	�B�-��V�W��-�{�*dO�� IDAT<)�A/]�$���c�U���"Fq��>[�gm=k6n����R@Dֶ�;�}��ax!'
��H}���'<��ŝ��xx5G|�Ckgq֯���}������=��pL��}�.N|�=~9w���G�V�0��caY�����"�hզv��\���x�M[�*es��[ii���ػ�S��x���W�z���/�GG�̙3X�8���
�$@$��	P~���	�	�	�	�	�	�	�@ @8$�.�@6���_JѴS�N�aODFFb玝�ջ:v숡Cq��5lظ%K�4��ڽ#F���+�[QI��QUT����sz�9��Y\٭�����g�F��5d��lU�Z��U�\Qi����>�{lZ[ϚMklln��ڮCG�رŋ�ت�NS!��wQ����VΞ-Z��(��Z�j�c��Db1O�w��t����XM�'�3���g�J^��_��¾�t���_�^1��6ӕ_��Z����{P�D�)x��wp��>
�67,�	���'@��3�
$@$@$@$@$@$@$@y�@����?�>>>v�i�w�nz�]s9��*�����onj7w7$%%aa�B���a��1�E��;0� �W���ӧ�3�����ދ����m�0t�P�/_��f�QÆ�������t���W��>|�LMϞ"5%E�
�b���eM�۷�ݽ�!!��?�ALl��#�f�p+�턄,DrR��3�nj�.��	p��M�_�AVDQ��z�wK6�ac�`!�N���ϕ���K�,f�l�t?�!hٲ�l�,�Ͽ�����1n�x����k�*�`��؎�_���-�3vEeqbb��'��JhQ������11�]�I	G�f�M�ǼqK$��-�M�*��{4sG/?o���3��ܻ�?������/4'�GF��nZJ8�>L�	��C��P�f�$@$@$@$@$@$@$�����֭[��"�
�R��&P��)�
-_�`���6�����_NJ+P�|9\�~C��/��իWA���C�!#=u^}UV�V�X����(�����[�. ��S!'���*V���SP�l�ۈ�|�{7J/�u����ZK�CaKX�(��}9_��%K��jdq)ªZ�r�/̞=K�YܹKgDGE���X�j5RRR�9�����d�.����כ4i�E���56j?3mv����-�,\���dy~����T�5��ҙ��]��%K�x.�����9rjV���G�",,?��3J���a�6l(^�Y]��?�pKW���5���ή��?�#�/_��kV=���^��i�q���ѧO_�Z�Z
��JdsO
�0%Bb�}rD۶m1~�8-����	�"�?.^F��E8u�װQ#�;5�T�|vp�}J10 �{(罜�#       ��@ �
���0U0��|�o�#I ��
87B�Vś��׼���.S�֬Y�#��MK�<��h���Lkc�����k��С�ѷ_?���7��Z���S:���C�7_7ZM�l��)��*G��M5��_K��Mb@$@$�S(�I�!      ��
�����9�6
��F�DE;�_~�&L���c���hٲ%�d��Ӱ�mg��D{���tS�y+��vU8gem�% �W(�t�Y       ����p�{f74�#�M@�>v��G^�>��ylܴ���;�+�7�x}�����K���Ӱ�mg��D{�e{��W�H�H�*
�� $@$@$@$@$@$@$@A��C��A@�"��1$   �\"@8��sY       �gK�����H �P�)��C$@$@$�((;J�'	�	�	�	�	�	�	88
��~�%@8��.��V�T0Z97W�t?���n�	�	��9��/H�H�H�H�H�H�H��`�H3�,�rKNLH�g�>åK���sϡE��ѣ��Lż���%�2��y 91.������,)��̉���[3$&��FR�[��ސ	�	d��,#�       ��H�p~�}& 7�'O"xf0�|�M1aa[��~t�����y.-���ҿح���7
�.`OO<�L�U��rSQ�Re�����������Mݽ��p�L^��}�=�@lOV�{6��*$@$@$`�`n       � @�!��  ������q򇓘<u����Ɣ�S���cРAHKKCXX>���xzy�o�>�~O��(S��|��y�+Vx��:�5l�)�R���<|�����?���EFF!>>���C�W_E���Q�b(���bpv��ج"6�U���֒�*5�'�UE�����5
V%�*�L�h��Ąc��j��-�z��d5��>dH$@$@���/zK$@$@$@$@$@$@$�M��	��H �	�<x��s�:6mތ%�g"��w`��A(�T+W�D�N�гgO�&�P�B0`J�.���z��Yb�^H6n܈=��`���HOK�6}��ХKg���b�g���?*W����Apuu�̙3�oj�V�s��	�_v�DR�1�s�&F���ݻ���O_���s��'P�BL�4���߻��s白'Z6����11�-b��*�*�r��4V����h��Ѡp��p�UcG���50�i��������Z$%�`������AA�]�?�rӧOClT����>:��\�H�H@��}@$@$@$@$@$@$@$�(;D�d$���_O���J�ܙ�Æ�իW�q�FI�o��x���j�J�x*��"E�e%����������捛�jX\�{�B�jհp�B>]�K����)˖��is�+�E[�]�va�ȑзڽ�Z
�Z
0qJ ���@�V-q��	,_�����S��y�h٪���l�D��5v����A���h�=s!�	������x=-8u�k��k�a�YX~B���D-Cw��ա(Q�z��6�!��# Ǜ�/2b�}�6s	�	�	<
�OƏ�I�H�H�H�H�H�H��	
��$Qt�L�<dH�����
`�@��j�����Έ���T=kI�a��)6���[¶�� mi��is��+���ƍԵq���۽�[��@�h��S!'�������:��e
99!)������C��p��}t���|���u�j=���bWi���X�d	~��w���Ie�p毰k�X�@cr_/&�x�',^�)֬Y��C0~�XԫSK�o.���#�mn  x(?�\�H�H�H�H�H�H�H �	P������/Z,��U��r�/̞=K�����ue�8X��[�b,[�,��#p��y������Cq��5lظ%K���ў
�i3Q*8 `��k�Ι�ڮ/KAV��:b��(Y���|_QYۮûعc;J+*��5�;u�}{�~|v�2XqR_�^�0j�hxx4CJj
�z��lOm��y!>�(
+��4��6��|��.]�Q�Fb��i�R|�$[@��>@$@$��	P~���	�	�	�	�	�	�	�@ @8$�.�@6����Ťɓ�k�c�ȑؼi<��|oDG�`��m@Zzք�A���ѽG�l��͡C��|���5�6ĄO&�����Q�zuL�>�j�Bpp�$ڳ�HMI�����56�̔6��?�??�¼y�a�z�/*�O�6�=W���t��5�����N�s�=�A��(]�ŨrX���w�n��S�OcQ�|땵��<g�\�v�%���H#��.����3�'�RZ@�{"1�\G�d?,�t.\���U�`��ᆖ���3��}�)$@$@$��(�$M�"      ȳ(����1�J 7`�Љ�N :&.\�be�ޒ�88--
�7m��Ç�qҠe˖�ի7
rʶ������(�����[�.�r��A܋����C� *y���:�X��d'}�{7J/�۷o�ׄ�S~fJ�FwF���Dfqm��?��ӧN��߸y!"1)�oߒ��2����Y�H�64�"91N���Ddx\_yA3Q�J%���k5����Ke���E���gl�|�BBp���RH,[Jk���`'���w�9�!�� t�*��z#
K��c��I�H�H 	P�E�\�H�H�H�H��@΋.�B�q�@�!p�ⅼ�L6=�g�?�t6�>u
OK�*e�$��l��4x���x���[L_5+��7~W�PV�~�V����{��Vw��*q�T����æ���ׅ���g�O��B�5��>ng�6��#�" xj(?5�4L$@$@$@$@$��yхlI��5
��S~���9&
�y4�f�_3j���jV}O�����D}��]�J�5K��zb���y�D]ss)���
K�H�H��Pv�|3Z    ��s;%�%@�N
�9��h�,��@[ô��b�%���	�	�$
�9I��H�H�H�H�H���̍A��`
��3��J�p~�\6�6�,ΦN#  G&@ؑ���I�H�H�H�H�H�H���QX�@ۇ��"��M�;jU�%�s��ɥI�H��*
�y53�H�H�H�H�H�H�H G	P�Q�4Fό�C� C���9���h"��5��X^�G;�g�.�B$@$@���1�K$@$@$@$@$@$@$�-�����H �	�ܣ{w��XC��^{�p4@7h��ERb�ĢY:s�B6���Q|��+,Z�)�޹#9��psk����q�g]�!  �|J�p>M�&      �
�Y���$�W4844���7����W�6q�Db�1ʊ���#�sJ_�����ĸg'�j��:������گ��_u9pV�䕍M?H�H�H�)����4	�	�	�	�	�	�	�@�!@8�䂞�@V�E8--
aaa8|�02�3��兾}�����=/��o�fh�Z����C��U�T�Ư�46�F4�$����2 4���HJ8&+��
�YH��'ZR7u���c��S	���e+n�<2�״Ys$�y��o1�`++����̚�Uum#�L6U���6O�ġ$@$@$@�{�H�H�H�H�H�H�H�!Pv�43�H /
�QQQر}
�BN��r�Jt��	=?�aC���իX�t	�ܹ�3f�n�W1e��u+i��J[�5��c�X�:��RRI1TT�6��5h�d���6CV�*��naΜ9���	T�P�'MB�u��ǎ�c��5���?���bh?-lfhtR�p�ju��z���X�b�9�k׮A�����e�s�P۵�OC�*�����扱��b횵(R�(>?�Z4�vE��8Dhq�Jd�F����cF��.]��8w�����y�fYA-.w��Y/h*��`��^}� &&Z�4#U*U4�M�g��GX�b�>���<��.^B������i�P�j%iE�נ�k�Y�N�:��_o���g��w|�3$  ����}v�I$@$@$@$@$@$@$��P�Gɢ�$�"����D�j]E�ݸi�ҷO_���X�j%���q��M�k�M�6��o�…
��}Ջ[�۴눹��a�z(THW
�;1Xw5qo���#�5�
Xܛ8%^͛�U�V���	,[��[䜷ۿ�y��A�(�dlS�m���*�b���=��`Ĉ�x�2�5��ǣA�F��FTdΞ9�E�`w/�__��'`��U��Y��E�c�q��U�O8
���w�O�Z�U���bn蚵HL8*m��y�c�zZ������A����C�;��X�`�uAV͚��)�0r�C�¾�9z�X)�z{� *2
g��%��[�~���u��a̘Q�����H�H�LP�       p�"���MXݚY-���DZj*�cb��j�����Έ�����N`Æ
�
X\.%K��~����<d�h�s�7n���ꡅ�'�s6�s-���u�wq�)Q�J�BNNH�;"�
>�ܸ�ƍ������%��Dl�-�5:!�}��R�}��sr���hզv�%]��޽�ԥ������C��D�H�<�Z )�N=՟��)��*��ɉnj��v���;Qʥ(��{��ڴEb�RlYg-�ۿ��g��]���=�Y
жCGDFF�Ų�U�J���m���];��Rw�=B�Νq�=:a��G���qqG��ᅤ���ೌ!�	���$@�Y��Z$@$@$@$@$@$@$@�F�p����$�D���g���
+`ٲe�X�\���q����s�=�����{���4�B|�NT�)���N�̙3��x2�RR�n�*C�E�c��Bn��=l߱%�	���|��i�Z|��	�x�,�?���lX�J����HV��Xd;u�o���*r��g:Y/[��	��w�n�� o�j%dq)���}�|�X�U�+ٶS.�RwT��.�JH<&��E���?�'zdp2	�	����^�R[��g�ŋ�<�H�H�H�H�H�H�H�H�i��4��6	<=yQ�����m����4�	]��ݻ�{��7wΜ=���@+V#G�D�ʕ�d�	�g����"�
�ť�46KR�ץ��fⵆu
m��X!��JS-p�Ә4�|���ܪM�Y���Tը�iA(U����T�bF6�=��z���B�&�kݶ�<������Z#��z��qh��k��FttN���.^$ױԒ٢����ԒZ���U�6>�!bcc�:4T
�B����C�A3O/DEG#t�j���-�
����ӧOaQ�|�8
g�ZN[k=j�4j�tt4N�<�e���֣���L$@L��'���	�	�	�	�	�	��#��H�f��@^���Ұy�f>|'
Z�l�^�z�P!'���<������l����/�O�>�Y��L����ݻQ�xqܾ}[�f����}X��w� )1��f����l���\իW�Ѐxz������p<�w�h�?7� d�B$%%��[r|bb��G�B�tvvF��504`�<��=Qq�~�f��G�{H�������+V���#���eki����3g�ܹs��ZӦME��U���a�����w��*��)��~�<��ѽ���ZY+���_�8C�����0�;$�<t�(�/X���4y�������Ddx\k��3Q�r%OK�ݽ��W���~͈�.\��/�~���+�O���*K�E\	�q������O�Wl��f,$@$@τ�g����	�	�	�	�	�	�	�6
����O�#�p�<}ʳ����2*q����s�=Տ�_�ejϖ�FFT�mٳu�R<�}+M[/�WS��B�������uk�ec�Jg5
�L^���Y��Ǭ��^[G$@$@&(sK�	�	�	�	�	�	�	8
��fY	P.�I}�!���prB�50y�D4jX����|��*r
��9~x����I�H�H@G�0w	�	�	�	�	�	�	��C��if�����g��
g[��i���k�	�	�@���@i�H�H�H�H�H�H�H o��7�B�H�
���>	�	�¤#� IDAT	�	��A$@$@$@$@$@$@$�(;D�d$@�&�!�	�	�	<U��*^'      �+(�L��
�Y�eq���Ɩ�ۚ����c�\;g[��M��g��Ē��]۔��!������(q�/�!pX�6��H�H�H�H�H�H��`��7�-8rC�ѽ��.%P�v���+V�	w˖0���gd ""��>@4q�@bb��b����KR_S��F�bVEW[�YZW=O?����ЩI����ai={ֱ���KF��b#;c5���Ƣŋq��$%���R���I��󛝵�✜�c^��>�	�@��C i�H�H�H�H�H�H�H o����C�H����c��J1-11�-B�:�l3Y>>>�H��M���bs�����'t©9�WĊ��.�¢_��Ѵ���y3�bN<�'O�Œ�K�~�j8u��,Y��kC�t鋻�����MsU�z�ļL�Qϵ�*N�/�(�lU�*���?���
��GחeMb3	�V���Ԑ%�mmVK�Y���ź���-�x�H��`L:C&      G$@��Θ�\������_O8)"+zS� "2			x��!���1� 
.�����p�c�Z��Y�l�k�۶mGdd�Eۖ�+�I���%���HP	�R(��V��U�uŔ�/D�䄣RlT�+"�zI� io��d�4�n�m�ja$�u'M��6�[��[��(B���G�>����T��	���|�f��ĭ�c���g7OU��6k���Ï�|�c�Җ����dS���O[��J��\�:�~S^S�T���dW��� <�	�	�0
�9��H�H�H�H�H�H�H��&
�y3/�l�pB|/^����cz�tlܸ{v��Ñ����+W���]�t��EY�c;wF�=P��>��h߾=�-bٶ��Y�nj�uk֠��3&��-<euo�F���p�f�J`q���j�5Ȁ�V++�ť@=ЧwoD����A3f�j�
FBn�fHL��$�
/��a�G 66κ�u��p�/1[c�Q��qYic7O$&3����%`uh(���O���@��ʖײu�I|�jf_���s��'P�BL�4�ԕn9�U�k6��J6ָ�y��?��+q��Q\�vM
�
�?/\F`PΝ;'�͘6U�V�W7{`�رX�f-�)��?�V�=�/���R���4Z�x�1#���t��zb�mڼ�	���+��|
;��b�^}����vu����"r+.KB��|��~�p���4�8m�W�$M��6h�/ը�ӧO��aℏ�������	����Ig�$@$@$@$@$@$@$�(;b�sA ����_�z�0r�(�-[����y�&6o�"����ժU��E��jQ��Xe���Q�t)97���ɱR�?�~��H����U�����&*���-��:�N���c�[Gk�t������1�8{�-�k�,�.^�L�����#�@�p�rT�P~>ݍ�5'��ڶ��a�zp.��UW�f�O�y�«y�j�'N���K�Ybm�̛?
�7@�M��?-q�Ϟ�G�b䈑(���F��=
5��ODFF�`�0D�'8�>����K��U���݂�Jekyrs��$��	\��Ƈ~~�����5�d+pq	��^����],������ǻb��q��Y�,�g��e
4k.=z�Q#F�܋e�:JE�1cѰaC�����,Y8_�y]�a���u��a̘1��nCŹ�bϛ�cH�H��Pv��3\      pT�5�;��MX�U���
aܸ���_O����-V����a�lm�a\l�A���x{���K1gdd^�wDWI���U���¢"ط..%p��Ct��������Y�7m�|��Y5�R.%�*=�ܻ�����Bi�bF�,U>�ܸ�&�����ꢅ��+bO-	ǭ۽�[���
gQA�T�Irװ�#�ύФq4�[͛�mB'�[�Үû�����e�d��U�vعkJ�ý{�ѩK|��k����'؏ŋ"Mxy6G��EUm)~K��նv��aX�6o�`O$��a��-�O֋�Bh޷J��ٹkW|�W�+�M{l#B���Q��Ų�����n�6>߹Ӱ_�t���1�c����ᅸ������/�ZR���� (�(��2,       c��#H �mXP[�r:�%K�ʊ�#F���+�l_gg�L`������7gu�=Y�rv�r�ou+��
��J����2�ãb��ի3r�Q��������#Gd�פ��㎢� U뤥i��w��dzg��|�iiX�f���Ԓ�v��ؾ}Jw6��ϩ�:�g�"���HKMÆ5+e<OCvW	���9�9'`��;zNN����hժ�����,��}{�6|a@��(O"'$������`��Ş��1$@$�(;h�6	�	�	�	�	�	�	8
���q�[P��̏g(���׿��c�}�6:�˗G�Yh԰!&|2AbW��ƚ��:ޞ3������C������wQ��v�Z��R�L�l�6�����\�PQ�T�/�2��݊O���y�[@���@��X�l�V*o4>Ut���K��J���}`5��]�!((�5���%�2�N��ĉ�/���&O���+���Q�T	���ҺXT���iL�8{��[�+Zs\l��>j,���l����N��ŋ�Jf�%�q�*o���R0�Ȳ8WO���U�}�11�X�FV�1ݺy#`�`4��@dtBW��q���B4x0�{t�֘X�:}�B��dvsk���x��Yk=r��֨�l�S'Ob٧���b&$����JKrQ�nv����  ��@��S�J�$@$@$@$@$@�	\�t	7��a���hP¥*W��"E�d�`:�t@�ʕ���g���?� 11׮���eʠq�ƨT���W|����K�l������.]ժWÕ+��[�5_�	����1)�nܸ���x�@�����Q��ٵԜ�/��_y9ӸkW���ի�u�"EP���aLN�7砒��@��n�w?��3<���j��7�|���+y��P�S�3$`7�� 1mH@�޹�ա�Q�HDFF!>>�?@ݺue��r��ɸԢ�h!mi�9�6���������:!Q�}������{���gt~�zսdՙ���ځ�#<<�j�BЌ�V��eX�K�����*|��?�bN�c�W��{�އ!!2j?E|ZhP��5�W�Ѐ���p7���q�B.DbR2n߾%�\�%YQ=]��3�ר��C������'�Us\Ľ{�`���8t�0������p���0c�L���j��b��)�V���'�S��*�����mM�(n5u�@�Fw�FP�j
v�w�
���s����-aa�?vHr?t��-�������y�3����@D������4#U�<�7�ο���؏�����<�����A����9��v��SQ�ZeyOĥ�=���b�~K����	�����x9g�$@$@$@$@$�+F���[�fZ���<<=dUM�:u�-�W�Ā��=|���A�ȴ4Q3�z��w<3�+�ϖ}��kLLܛ���о���hӦ56oތ�3gb��P��#��ѲUK�c��2>""��iF�۶m��s�ɶ��K�Y|����h�I�}�w��'�J�*��o�5��I盃��9�9���!�6L��T_�?_�
��!CP���1y��������9�r�@n����[Vc���u�Z��W���U�)	e���JSq\'A7�N��5j$6��i|��0j�(4jP������\�a=}E�z-Ӗ�f�*h���M9��3�E�bO��Ah��9NJ��dYʛ�8\᧒'!Ԋ{�Z���x�_��[6f��Ħt��h�,��̫�S����Y�_���0��~yz�Z& �|O�p�O!     ��A@-4�(^\:}����/�����P�dI�ZV`!|z{{�J�bdJJ����9x� �+�e�j_ʕ+�o��5T�c���s�f�Z�NFF�A�>)ז-����e1yY��t��~�]�6.\���/�u�x���ۨ"ڔ�!�1e��_G���"�eMc�t�)SXܷ'b\V�0r�H|��6��+���O��')�W�Z췻j;�+�K
���sF\0PΡ<*ʦU�Q���8�^�T*T�U�r���gi]�=u���M÷�Ъ�Z��ܺ�6�!���\�����R~;�x��SSw@ㄚ5jbʤO�Z���`2O�4�$�Z���uS���ٛK*q�Mh�H�


�%���H�H�H�H��8Eh�R�2�����)�R�b�
�vO\���ѱcG��z��C�3EW��3
.,_ƪU���͛{a��i��꫸w�.""#0o�|y���@����7I���#:&�P
j*�����¸q��K�~{�l;js��jL�f��ʕ+��޽zɊj��vxX8&|���ၘؘL�J�*����Q�t)��h+ooK��|�/��Ir ��'���ᯫW�Ѭb��ʘEU��Ѷm[4m�4����-�m�}ț(��VS�˃IҕD��/�7o�^�	�@P�,%    �>s�����Y�f�pp�L���W�li����A����^�zؽ�K8;;
�E���:�6+��c�F��O&�D՜��SZZ�dp��]4l�_�ޝ�U��O&�3�ĵ�oP�^]#���>��>ߟ��{ψ�-X��|���2s��@سGn٢%��+�/�֭C�F����93O��'�B�H�&
�6��[����W5%`���)��!�' �<M�p�N�#    ��C�������0r�(��
��Ŋ���o�����R��3��Я?��)�ز/��}���9*�m�[�n��pVc���x�];����Ӎ*����?xW_]=o�\|�ч�:�bŊ��|���噷{��8�XT��'$X<X��O2�V�$"N{`�2z����S�Z5�i�>�>�ߠ�]����6
�y;?�,�̽A$@$@$@Y#@8k�8�H�H�H�H�H ��hѢhҤ1�Z\��:Ξ�IZ�����[��VW�9r��~��ڵk��;��塵3�M�Q���W_}���~�/_�8gw�7{ѿ_�<u
mڴ��͛�ַGx4u8�1���]�t�fV�\��;�����˗�5��O�<C�ȟձ}<�c�߯__lذQ����YUmU~��撦�Ó�@ض'�%y�YǣG��\5j$Ə׵��	Pο���M��c�ѓ	�	�	d��3�     �l�&�V�ZK�.1:cU_�ti:�hŒ�J�w�^�g΢M۶��?��#G�坽��1����Ǐ�[�nHKK�o���H!;��������S�mI�<t�z~���]�|9�t�?[�n�m��ʿ�������=t�V�ZiS~����$9��#+A߹}GƼo�>|�ŗx�𡼵g�n����ݕwQλ��g$`�@n�=���.)g‹�ͽ�,3�����~=3�e���=>fg��2��K	ԩ]}��CŊ�c2��ѷh��<�:�7�DGOI�H����'��$@$@$@$@$@�P�2�=�ѣG��ŋX�v����{�a��UF��=8#C���&��z/����y�-q?*2>��F���k_�4V���
����-���������7Y�|��L:w��N�@�"Ep<9/�{Q22�-::cǎ5��ڵ�-[�q����E%�η����k��U�bW}���}{`!�����h�^�N[\qq���C'�[g۷�9*����2BH�>�u�(g�/F¶HLLĢE�P�Nm۷�����P�߷���Z^����24N�h�8�xL�"/  �TT�T%�,\�x�pI�H�H�H�H�H���9oРA��/�8�a���Nh�2�B��شyS&�/<��T�"_߲%'N�?W�\	Æ
Gݺ����+ظi#�������O���IW#���`dheu�޽�|˩
�����_`Р�җ:�k˳�4l ���!���ɓ'e⬴[NKKC�f�p��%8i48x� j�ֲ[��|[y6+�k��^�97m	�����{��Ͽ�!����ժUGdD.Z$�[j�ͷz�!@8�䊞���@^��������%��s�.ر};�>_S&OA���p��5̝;W�^E��]�����G}�2eˠ]�vضm;"## �i�.�����HG��uпY�z��u̞5[��ԩbcc%Q�,�.���@BB>xwww��…g�@�P*Ƌ*bჟ�6oقbŊ�4l��=/�����q��]ѯo?�o.k뉿���Q����{�P��W
1�V��E�#;q)�ڊH�\�""­�|��M̙3�/]�ᅬ��v!5%�11��6p?�c��5~���s�̱��fŶ^΀N�us�����'�|�	�	�W��k��7	�	�	�	�	�3�<�[�֭q寿��R{��E͚5ed�ZF����>		1P�:u���Zshę�3�fz�ež�j�۷n���o��ݗ`sR���ҥK1o�|�;CTZ�X��f%���[0i�$�a�U+�={+����̷䴒�'Ɂ�mK�����q��_ͺR�Z5)��(Q<���讚`�ȟ�,�FE���…
c�ʕR�=f4/Z,E�C�HAwM�	^����Dagg)0�o�E���)S��+��w�afP^�[AA3���O��:t�P���>��57nĞ�{0|�p���K|���<��m�>*\�8�a���^���wհ�äؼd�ܹs3f̐_�>Z[/&&�>��G�J�43����9sf��٦����V\[u�xB|/^����cz�t�>�7;z��sCW���ʯ",�Yk�Y�'l��XkS�T"���'��QΟ�8zM$@O�ূ�FI�H�H�H�H�L	X�9__?9\���k�.)PfE�U�ڳ�+��^�'N =C�D�l�>o�{�ȥ�ط�.��ɓ�ԩ3RRRr\g%&1�رc�_�155M�ܰA���WW�b8$N��\l���[��R���`Z\Y��3��;Ɩ,��ʁcKc=|$+ƣ��
Bp�b��n�w1q⤂��<�(;@�b�$���M�7C��@�>}��s�a��n߾-��h�ZYA+.���~�z�*]*S��
V!���`�-1X������7e��z��jժaᢅ��E�g�{�"βX��o�bST�6i�T��JE��������%cvqq1Z�R�%ىK�`�z�0r�(�-[��9F���>k4N�ӻw�<����g��0�fak�]of
�.*��<��.`D$@�C���䚑�	�	�	�	�������qC��[�X�wVc�Ň�%]J�2���?�-,_|��L����k�,
�9˓�H�Y���zW�� &6�H�KOϐ-�����WV�V��R�VW�*_�_dڼi3.]�$�)�ն��,������i��Fi휷�m1�g�#[խ'�;�
6�*`q��,���������z�/"f�
em{`��Z�%���%�sQ�ܰa#�7V.o͖���ٜHnN�f�?�z
[c�zQ��	��#��Yg�$@$@$@$@$@$@$�(;`�r� ��A�p�P*uű���Q�\9�X�� �*��4yޭ8844Ԯ
`EX	2$���g�F�T�F IDAT��5���c�
`���6�?p��ވ#p��y�����\�+n*F�\���q�+�R�lm��Cq��5lظ%K�4�EZ#�"���j��VL�n\b�p��!,Y�Tv�fK]]mZl�g{�3�O�g�����6߼��M�=q<�NC�9�6�q	�	8
���e�H$@$@$@$@$@$@$
��$�?	�����䙽]?��:uBtt�<o�o�~�С�A�@zF�<?֫ys>!!�����`3gˊ�������ł��� &6�))��8�W�g?z��֭�I�ptt�o�&�/_��f�QÆ��ɄL��W�7wΜ=���@�j�#F�R�JX�d��D���w`��@T�^ӧOG�Z��1���…�x�ܺu��o���檑��ٍK�=��wq�r�����R�$r���ft��5���g���g�enE^ŗ,��y�J�zoS��HN8"`'�E����$@$��(� L�"      Ȼ(����3�F 7`����>�դ�<�_|��w@���e�b!�9rB��ݱs�NT�X�'O��Ί��ٳg��y;w�,�h�eI�<t��������}�(^\��%K�`Ҥ�[ݺu�m��x���tDFF�J���nݺ�r���2�W>��yy&�o���BNNx��ѧoԬY�Ų��Ľ���+#=u^}UVE�*�~��V�������pyL��E�[q��:��eJ����ܽs�CW�H�"}y�3g����ҵ+�"#
y��szz�E��	�b/�{���ĉ-��Wn����|��j��ɉq��H% `n       � @�!��  ���ma�)��
�3���2e�`͚5���~.�7�����3��žl�g�CGH�H �	P��       �gA���5H �	�7X�=���_0a�\��:�/[��-["`h@�á�#������H�H�
"
�1���H�H�H�H�H�H�H 
��$�?	�7X��x�bx�7de������$�a�	����� �f�$@$@$@$@$@$@$��(;�`���@^��+K�M$@$@$�(;F�%	�	�	�	�	�	�	8<
�� ���OG�I�H�H�r��\CυI�H�H�H�H�H�H��%
�ϒ6�"��#@8�X�%�
k�'\M���1]��u�aHN�m.{m[��Ӹ��x(�L�ˮ��̩�[����}�^������j�,��,�S����w�1�����inz�������h+�ޗ��<��/k�Y[��Vl������}{�Zz>Z�k�9f����C�8ٺo���~�l<�	�	�	�	�	�	�	�D��
��y����7nb���!�+W�ċ�^�;����L���|��ԭ�
�E7h��%%��~�X���24N�h�8�x�ع�RS�&l��$׵�ކZ3����1/=�:u*fϚ�x��'��js��e���/+�)����J^&��,���rs�@rb�m.Y�avǛr��/��s��i+��'��T��t������m��L��³a�䩘9s&
�
�^����>e�9ai?da���Vbb��y��mU�T�4���]_�i��L[�X������sP�|һj������bʴi�5k���-���}��ɖ1��桞c����������I��F���>�\�JV�n�\��/^�`�8"       �gE��"�uH g	8������!p)Y�����Q����,g��X

�}��5�:�2b�p���s��"�|�J$%�=k�*���WȮ������I	GQH?O�U{�x�Qh2)�fB23���3X�d	֮
�Z��O]>��ֺ`����!d�b�ۿZ�o�m��c���ɺ����%��ٳ�����������Zx�`�8�;wb��O!���F�m$�k��¹V�%����JVUލ�
uҼ�w#�f�#%gnn�HN<�˗-���}{�٣��#L��Z��*c-U(Zz�����z����{��r�vu�Сx�Q�⁃��%,���=4Ο���q[�@|�!`�0�����
@��
�_�><�5�_֯ٷ�@���
ku���~����sBɃj��j��m�ڱ�J�4��w�ヮ`��=����'�_XQ�.�Y�}+�3��?1r�(�k��[%�}&^�k���<�$&����p�$�/��
`X�P�|���S�׈'��*�\i|����0�� )�8��#
646��K�
{p�a>����8�3g���
�<_k(y�x����]�3]�e�Z�ob|SwO>�y��ã�|�
$%�{N}�E��m���wQ�7���}F��e8�H�H�H�H�H�H�H�`�\0��(�@^��zaaa��ߠ��µ�+���*U� �Q
""#���������J��_O�)[�ڵöm�a6�[������=���w�A�>}��kW�a�ܹ�z�*�t��?����GtL�RSm�����[��X�b@Æ
�T7�:cQ��B u��K5_Bxx����I&��q��%~VW�V^��+��?�,X�?$o��Ąc:X/�����s��-��7i��i�o��J�6�j0ք9�!j$'%cڴ�r�@xxz�C?˂�����ѡC4��F���/X��-[�M??L�>
�֑�����
7�@`�⣰�Y��ϻY.*Fք
%���`o��\Ťb��~1[᜕JI=����u�\e���E���bZ9h�l��\���|�Xh�	a"r���C���0|��j����#G�t�2�b'<�y������Ѥqc�.��x��y`��-8��|<Y>�/j$}�=��ك����$_��|||�11�x�li���}m�b.�*��&q�^}0}�T�/_�>v��n���Aش>��%��'a���ŗR��@%ur��{JF.\��aCe>�<�
�g�3��0M�_��?��L�5�~~x�Q#�
ۃ��`��uر-��Y.޷��LC�:u�룞�g� G�
��k�!=#���m[,<����a�qr
q��ܞW=��f�B���_o|�ų�^V���}������d��.kc��RMD�m��|?��~��	��l�9a�k��D`�/ƨ�V�M��"�>Y��dp	�	�	�	�	�	�	�@�#@8ߥ���$��aC�Iv��%�s�.f̘��u_Ŕ)S�q�F)�1�i����]:wF�=P��>��h߾=�-b6���/?���b�ر�U�fϙ-�.^�X�˃�AFF:ք������څ
€P�ti,���kTGHH���nqm�ݵA�����ի'�~�	Q�QR�x��r��9���bƴ��Z��\KT^i
�d8i���ՊU
�|�m���i���\�U�B�
õV-�3o4�o$�^���̶�D���� ��
UsY� �	?�>셩�'��^�=}�'̙3a���8�]��`u�jTx���B�>j:���<@rR"�̚i��Ư�m��N8n�duKQK�E6J����0{�\|w�*T��)�&�Q��rȅ��1mF~9�+���Fؖͺ�m^���� ��RM�_�}1��_~���^��
k�M!숽TX���Qx���/d+>sB�X�RE�RQ��qc�b͚�(R�>�x<Z5�4�ku�R�(b�:u�>�F��E����
�,��7�K�h٧?�z�D�����CdT$6�_�~���wth��r��z�oQ�ki���S?b�'�L��Q��_�obȐ!��%x�{���$��pw��7��է��⋨n�9#�+U�U�{�O���x�͘���*�y������ob��y��;y�$4��*&L���;��7ob�O1$ �^~�v����n2O���Q��,6�������R��|��n�<C�˖����a�9�>�g�V��p�fȮF_�Yy���Ō��ۺ۷#:b��s���a䨑رu+�+�s��Yh�U�7n���}�D�oA���ݣ;�m���j�l�u�F��U(���]��B�y����Ǖ�b���nn_�
��7���/�׭#�Ɲ��"#���p�,=',=?m�������c���J��c��[=r$��w��udh[�y�H�H�H�H�H�H�H�`�\0��(�@^����q��MY�ۤiS)�.\X&G�'Dq���ժU��E
"��Q�t)��LO�G}�R�JB�e2$@V�m޼	����n߾���6��E屸�l�ڛ6oF�"β2K�QQQr�M�W�x���2e*��̚5�;w���njG��
������8s�/1�&�y�����tCO�nF����*����Ϫʪ����8}�ص�q�h
�p�rT�P~>ݥ�R�q�@�矗��ʕC˖-п_��(n��M	o�~���7�/���>FP�Lt|�=ؿ�q岹�k����>-l\�*��"0hRRS�l�"�T��q��Ғp��T-�V�J�[�N���-ЪUK�8q˗.ED��zN��_��}|������ǡa�F���rd����?�����Ʉ�ҦRQ���:uӧOÿwm7�ى�l%����j��(*����Q\\V�Z���ș����"�;w��^h��|�g7"��P�d	���o[�'��We+�˗/�4U�TI~�r�rhѲ�|n�������}:~�8T�Z��nna^ժ�p��C��qcF�˳�*�<JӢu�68vx���LA�-%�cG�`ެ }e��
��w�DG�왳X�`������1�8{�-�+�Y��>�4e:�7o���Zɽ�l�RD�o§K��Z���O�믽�Ç������y���M�-]�h��o���׻;b��q��3X2_�a��ժהմ���dq�¥i�aWT+����g�yV�Dq7��^�Ŝ�U��Y�
/	�c����_��f����)�����U�`��X��Z�A�~��5&F�a����^���/>���h���΅3�O!���xJ��#�s�S��bI�D�}��8-f�
�����Y	�&�L�OJ|;w}�Q#G`@��h�-Ɇ�f���I�H�H�H�H�H�H�

�-���Q�	XY���h�ߝ��
d���Y�������'��z�V��K�[����k8�Դ�r�Y�2yr�����:u�H�AT��6q�jbq	خ��g��
����1mz��AT�	�E��۴��v��K1ܻw��t���_����6\V�7ڸ2�J�j�*�����}����'R�ҍ>�C�ܻ���z��K1���lz:p��%lٲw����s�ZS&�q�,�ݻ�(G�KW�b�'�����u��P��K����Lg�{��*��9��Kiyۦݻ�}��ZD��S!'���<۴}���	��s?E��V�Vm�a�]�����J��dqg��'�=/Y����iiR�W���{��UX�����J>t`?J/�4-���IqG��3:��j�T���=F��eKíɛv�C?��	{#njG�z����+���Ϝ����ռ�k�=�B�#�
�
]i~]}�=-�[�S��ҥ���QrO�
�Y�5���*����E��b�5�Ě/1��
5���%�A�h,��a,�"�{X)c�%��JGE�;��κ,��.���9g�̼���7�����!�]
~i�6m�u��� g����A�1��_:v����yTZ��b��ſB'�N8��8�M���[�BLL�rZ�0��{��o�Ďm[ak�Q<�S�Re����hhq�bަ����+�l����֮Ӧ�a������3r?�5s�r�t�{��!V���ϙ�<v����8�7m��$�JGUk�+��A�_�d3`%�b1s�;�7�s�7�A##�0Bx�I�.�� XOI 
;������]��Y�4�U����Q�T�B/X�����
C]����/�0~���A#���ǘ`L�	0&��`L�	0�/��_L(y _������/^B��}�2J��,��ދ�x��1N�<�uk����}�����>k�RƮꦏȺ{�n�@�лOo�=�m�6��7�m�6�`C�����5E�Z]k����<gWwDEGc��Y�)�y�|�M�]�N�8J�Uf�)��� ��/�I�"�C��3����U�[4��Q
�t|��x��1��ۥvU��xt��š�L��.�5�����ULww׫t�n=��㣱�TgWXխ���Xܺ}8(�sm–<3$��S��V�e�!Ԫj�O�T�k�,/��KV-�,w+�u��cƠ~�z"3�ƦY��g34>]�}�œ�_�E��B2eW�o�cǏ�y����m�*���a�ݘ1s&�9�:��[�Ԏ�Y7n*���m&/3���۴���Хkw�0����a���Whݺ-BCj�PW\_���	9(D1�(�R��D��G�^�5�*�Ȳ�8�FڍV�rK�S���j�(�3�)/	������mG[>�Wy}j�O�uۢUlۺ�&��9v�n��Z���w�b�\OO/T��"Z��S���	�uY��0��^���V�r�����`z����c�|.	�q�h׮����:��ƍ��m��ʒ
�?Q���c��Ń0�!�ѥkO�
@s�Lx�6mZ��VZq?�ڵ��x�)-����3�%�i��k��g��Դ^p� O3?U���	��G�Ď�1���U,��_���<\&��`L�	0&��`_5������1���7m�$2�:u�,��u�֊u}��V�Zb��Y���eL�6
��kog��%�����֭ǖ͛1r�H)R��K%V'�9A�2�����k�����+++8�u���\DFDh\ؐ���޽� ��Q&���(�X�\��>N��P,�#,�F���Tҷ{7���?O�[��!!X�DT��O���L�T%Ne@{�.pqqA��Uދ
a��m��8�Fu����-[��̙3P�b%��X��� �����"/O�,^,�Mi��)���ϱ*0����<�9�L��V�~2UfY@`N��NNN�Ĵ�SQ�~=���Cg��i��hժ��_*��\���Led߾{�n�{`���(�Miч(u�*�J"�����:�Z��4�Z�U�Ovr��e>2y�#R6����P�z
��,�T˗/é0����F�E��5��17�K(���Vm1c�LT�X�+��&�l����u�g�x�^�?�������hm��⚵��'�Y�LY�ٳ���'�c�l�\����,�TK;��w�`q��ӣ'dF2�Y���H��.��E�a�+z��%2�7�߈��pP&��Lp�u䥥�R��T�j�m�HE�%�7���۷�'�5�h�=�2_���[X���g��ۏ�a�н[l\�.^T)�l-�ե�
�7lĥ�1�C^���>�8u�x���ɛ�}v��o�ׯ}1q�Dضo��ǎ�X��@�q����UH���1t�0���E|�\�tIY���4_��?���X�t	����j����}��X�|9�-W&�=+#���s�:Ǵ\A�J�����p��U,�^(��}����۴q�s(f��u�~�6�'�����E�J�#��z�(���&&��F"N���+��tq�.>����Z�<i�TK
h�>�ª��3Z�[��V��P���D�χ��7&��>��$!]�>/e8�(}��%̞5+����̔K@��3�&��`L�	0&��`L�$��V�W@ +`Z�wӦM

_�*T-[�B��-ŗ�����X����[�2��˗G���P�lY$%%a��� IDAT͚�"381!��=
��E
�%6/�?��ŋE��ϟc���(P� �,�e��Okw��(�$�H�5�ou�8�޳�ffb̒M�SL�EuaM&_����o�_��J+b���.]R�AeU)2y�e�RR��b�H:&_U6F))������
>�9"V���ʀ}�1[qL)hʀ���c��B!�R,�ϝ��o��P	�7�TB��O2md�…�~��9|,��Vb�$|�~�s<���C��͚a���066�)�?!D�����Gُ���
:vh'lnڲ
ǎǂyB��u63����h�"�-��K�KW0�/�b�1w.�#"-�R�h�w�����h_�t�2��>��k�R�tI�AB���{����޾}�A�a޼y�S�'�+��'�BM��~��뤾���͗���.	�*����9s�5:t�1��O�2aŸ��BE<˖���cά�fB�4�p�C��/��kTǸ�cQ�dq�~���*����5�5>���^��N�F!ϸ�/�.	�K���jժ��WG�yF6�v�.��T���~��uLq��
׋5]
,�K��myQ~�d���i��AŃ*T���3J�(�\/6�}B�˨x̝���1��D����D4n�;v�@�"��]�b��m"~QZ���g�8h0���
�*���ʀ���`���X��-�g������FB||��cF�gy���ɰH,��ŵkא'Oԩ]�~�…�:�Gڡe���ж�����)�*�(��aaX��'D_����f�BT��$$�_�:�5��_p�d8.^��!�*��4��T<��E�V��c��կ�T¶�}GZ�n}�����v� Wϟ����a��%ze���>Ǥ�c�y�ܥ��jU �ܺ
'�),k��w2&��`L�	0&��`_�����Y!g�		��׷/��χe˖}:����T�WOtR--*e����2hՏij���<M)R�%��B�HU�t���=z4jT�>���䃲����@c{�~j���L����i�I�$�E�SFy��3`����zsJ?4e���M�%����d	k��>�%���%#�S�Qզ�]5|҃	�Ɠ^�T�iZ&4�<S�/���������_��涶����]j�-c8U�L�4nnnɣ�2!���k�2�)�Qʌ���LNEi�4�A�)m�	���P�]}|�S=W�R�*'h�?��-���f�~��|P����>����>�>G5�_��Ŕ���ӧ��*3��?��#��M�,���}J�`����G����~�
�w����z�|��P��+�~��%��ܴ]��߿Ϡ�d&��`L�	0&��`L�	|l,l�l�	|,��J"ʵ��0a�<��.B�ƍ1b��l�'�4�VԹ�8��G]1Qw4��տ���/M
��O��!�kh��˞.N�}]���6?�����6t�7����뫂h�������P����5?
8.u�I��.i�ЫnW���N=�_��䭔a��*��٩Z5@������t]w�扮�E�Ð��&UQ�x�_�����u��;���WC�뺟��W���^�ғ��`]���L�	0&��`L�	0&����@��/!�<�������Z~������D�i��qz��P�LIQ�]�J��I�����P_�i���r��n����0�lD��l,v�	0&��`L�	0&���8�3Ύ[2��$�pV�羙�*�y���Е�����)�#	����k&��`L�	0&��`L��`�ӱ枘@fȶ���Ru�ҧ�nz62�^�ҙ���T�-���}���UOu��-���N�1PX���&���\>t���Η��An��m!OCc���=`_���0� �`L�	0&��`L�	0]X�E��3�ϓ@��e�E�X�RhcB��WL�B��ceU��'2�~�dG���"-�o���Қ��X�7��O���k�cO-���x�_e*/Ե6�ƣ…��Wm�A�Pu�Uɦ�J�H�O���Ơ9��*�8T�1t|��s��}�7�bc36����cU��'5_wz��\4̳TqJg��t�v���"C���}��}&�>K,�aa��`L�	0&��`L�	0��&�pfe{L���RX5KO_�S9���y�&
ȏ����c�v�aUt�2b	�VV�8~<u{]��
�h�rT�Z���'�*ħУDZre���_䳴Ġ��ѱcԮk���B�(F��θmِ�� �_��^��[�D4���)2h�R��_I���$�����\�T1��o��c�|<t)))��ys�1���F��ʀ�G�# (W�\C����V-��}$�)���]�������J+b�ȑ��FU�={����ʱ�G�@͚�yAA�q�y����z�j�}�H�/W:]_4q���ܽ{s<���ŋ07�@�ƍ`?�w�ʕ3]�O���bDDD"&&�}W	�~�
g�M%�ھcg̞3�+�G)��2�әg���F!Z�B\����SZ�d]�:��r��@�n��q�Ȑ�2/�۝.3�_�����tY�����ׯ_�P���<x�i>�&�2H����fL�	0&��`L�	0&��@�"�p��{�$Y&�e{��y�o̜9S&O���gϞc��?��&�!i��ƪ�(���UtQ�
�i2uUD���c�޽��8I����'�`�'��s�U��gϞa��7�ܧ8LEN�%��a��j<$�2k����s��6m��6��:��U�j5A=2�x���	���ـ� DFD��i���y�4Է��>�z�+��e�={�~���dlذǎ���r�i�vv�Фaa3��1xy-��]�жm؍�F��cG���…صk;F��^�z�f�HNNAH�Q���b��:`M\h���G]�:�޽��W�Z%l�>r����
ԮN��ѥSg䶰��+W�:�f�T�w��fi>��5B��#�!�d֦j�A<�2���h����s�H��~����5j�Ļ�d������[6ox���_�L�w�UF�>=Ӎ��h���K-~~زyBB�`���������ț������G`_=���)��`L�	0&��`�ŷت_�)3@>�؅/��_Fy_�,�e����p�9�9��E�bʤ��Q��ET0d�(�������R�k�?����Yim�OH��G��ӧOSg�ֵFD�q�x�ѣG�k�.�о����CLsq����Q�bE8;9�t�ʉ�y��-��%�g�C1h�@Գ��J$�c?׵��q��lL��1�?и��2;�JD2���(_���k��T��O���Q�z
���\�x?Ԭ�I�!ڥ���>���a�zP2.m�1-�����'OF��+��/^��3f`u`����y%���hݦ
��F�~�Чw/4i(yC���k��o��(�I�ѣǰz�Z��3%���@Tt��-[�n��	��W�&Ͱw�n�������ۯ6o\�u|�ΦY�Z�R%���/Rl)+6g���X�Ǝ-2�i���,��ː��y	h��"�[���N��j�g�_���"2f�P �����d�et4>�-[�bM�*�`M�^���F���M�`nj�n�m��۲e+֬^��[�nhբy*�9�
E�A~��P!�0O&��`L�	0&���z2��X�W��M��1g9d}l� X����C��d��"(��A�FhҤ1Μ9�E^^X�Z��'ED4��5�n݂��r�GE�<e*6l��M���<�nu�y\����ׯ1����Wj=ԾN�ؾ};F��cP�~h�KS�f7f�ר�=�a͚5�|�2��P���m
�6m��G�%�gq��M�{���m�>�S��K�CЫ{w��<	o�%ؼI.���u��_E����{�"�9A.�j�s�\q�N]k���a����1cph�^a/�8(��\�bŊ�g�n�q���@$$ģp��hܸ1�ssQZ�O@��t��s3����Ŧ�/سk'��L0v�x����m�v8|h�����W�j����y�='��x��(����1�bŋ���%�ƃG�1b��x�ࡰZ�x1�x/F�bE�{Q�Z&�\�T�҂w��u
�ڸ2���k�nH~�k׮E�@?�y|�9�n�F����J�j�\�5h�jU�S�a���;�…��:�	;�oQ
��m�Sa��l��+]7��ҝg���"<���Ln}�����\.���j�uIx/^��E
+��;�	��w��]�_�[���V���ŋQ�Hq�
�?6l��W��Q�:�7�K��Z�_�'�	0�$%������߿DŽ�`L�	0&��`YB����j�Q���޽KF�RA����m��
�T� �����-�?����_�Iv?$�/Hi#;��#��⭧��4��d��]&:Ɠ�4F$9|x���� ��Ǡ�6���'�Up�m+2���(��N՜	)a� ��\�X7��������'����[���5kQ(����s��bŊú~}Lg�J�mҬ�mߎ����O@[[���L�pHH,L�E�b�
q��Qџ$>|�͌���O�����[�m�'��~}�O�z�5��^�q�(J�]�y,�S	���;�X�j�bc1g�tѧt�ރ"{5.6�g�x_
­�L6�^��U۩^2���psw��۷�h��䶀���R�*z�쉔�d��K"��|88��wt�W/$��`�5���%xΟ��L�{��X�9>.sf�i^+�Z(�Gm\��}��s=p��%����k׮X�r���*K,�c�q�ﳸv�:<�&�1t� �:�7xz�֭[HzK��vL9?���Tk\+��R���:�TJDK���A�%&���3��!E�u�J$��b�w����U���زi#L�s��#է�~W�OH�j����1s�+4l"��9a�#6�_���0,_����ߎ�&�������0�
v�	0&��`L�"�X��+Wb��ux��"##
k�r��4glٺ�"O!�I��ɬ�I2��.N�
ŗP�e�1�K�#z�1��"�lfF��[��G����S�N���r�ֆ���Xl��yu��hi��2+�l's	d���)�r�����,_�0O�<ʓ�B���S>�	|�� ���VmA%YI�LU�7��&0`�p<V?�(�E�$�l�۶n%v���* ��G���۷c��T���']�g/1b��J@4�
JSZ.���QK�ȩfZ�f^����t	��aDŽL?�Z��Ӎ�Z���<���侀#U�Fb[t\"lmmr`���K���xt��š�L^
k-k*}�������z;A���{�8i�|����43�%��n�T�ќ�L��fl�yy��Ш�
���3y6y|�+�n�GB���s��׮];9(��t�:#X��ܳ�6n܈���-q�zI��/�cЩS�ݡcg�3���Û�7��i&援֯6�]������y&ݰd�K����̗��r X9ש_Q�;.^�GB+�1j�X4j��mۧɚ�b��K)����#4��t�.J�� ���!�g�7k��	0�ϊ�Z‘��~Vqgg�`L�	0&���
���T�۷�����݅���#�E�p���-�G�Qn)Z�x���8�)[}����"���K�"A)�q�R���Y�\}�5��4�7�$%I�"CDa�Η2�ɶ$D�9R2�:�X����y:��x-eT��W^���	.���N�v(��KvE�.���
E�[�u��5�;�'��/Z��ࡧ�m�,��@���Lj�d��B���Nΰ�̇aC#o�DSl:�#�����ɓP��wx����%��i�4XZZb�!i�+�W�J!��=w�f͂��,��iIx�Q�&zt�u���"CTh�O���}�0�q�^%�ix�G�c��B���T�Z/_����\�\D)���J��j�^E����E&�$��8I(�kU�k�j����t��.D��E4
��)��g/���`�Ǭ�Y�)���ϱ*����<�9*�v=���LU�7 0�O�'''�~�ԩ�W���꡴Y�J��"t��`x/];{{4k�P)������
}z��H��5k	ߥb-X+�:�ի'd2V�^���H��.Ä	����D�嘘�

µ�W��{��v������s��M@�Ә={6Ə�Mmi-�M}�;�{�A�J�����Dp�~�^�
-[��̙3Q�b���G`�
�"�*��K5�T�I�߈�sI� B���}���	�D����E�ƈ���^��ŋ�8w�"����i�FK��F�a�8Ȁ?&L�o��M?���-�I�\"�*lX�aa�X������X�+�)4 *|*`L�	0&��P!����!3`�{��-(8����0�wf���|@�`��x�6��W!�J�&��$d�F�$��F/�K_��t�\��.�-P�-m$���J§�"ۘl�(L�H�%���ӹsv�ĕw1oTC�S�#�O"+m�5�E�>��2_�9};��EA-_�K%����}Wn�ӫ?q$�)�X�#�,Wpp�oZ}�D�3��b_�	��iC��6h��b�$�,܉���3�}�39Dl�	h$�U�˨Xx̝��H��D��ˆ����۶�D`�j<|��J�B�=бC[DE�c�<��Њ��
�3>!�{#��Q<{�L�C�*}Ԑ J}��*H���8Y��}��]]q��uT�XS���L�J�K���jժ��WG�L���#X�
7n�@>KK��;(��rX�{AO���K��S�>��N�J��+q�ꏶC�Bp8�0�����P���lM�L���B�z�@Y�y��k�
m��Hq�.F˼�_M�>�L��~�s<���!yn�f�0~�X)����S�+��*��8|���|��s����f��1n�X�.Y��=s�D}�h-X:V�Tq���r__\�vMT��S�F�>R�~�FXO.&&�(_�~��͚6ֹ��#�@��Wann��ժ	_ʕ+������o߾Š��0o�<D���/r?�V�/{t��D�N����X�W��(%E�ό̗�Ç�9�e�~B��`M5#G�B˖-Ѯ]�4b��8���r_�4�+T(?^�N��…	
e�R��+�V��?/�`:��P�S�s�	0&��`L�	d��@BB"�ϟ/־JLL���/`7j ��J�eҎ;Dv��Ǐ�/_>��s�N8:9�\��hѢBCCq��Y���OhӺ5��݋�ׯ�������T�"�;�3f �eN��Lc���c8�~��G�F[��ؘX8�8#<<�	�hڬ)\]\abjb�M*uL�e��p�^��n�P;�\�t~��1Ϯ�o��Yn�����עtт�$�����k��*�~�Qú7���}���ہ�d#�*��L0͡��������{���G�uѽ�OB<~�������AT��)��Fu��3��4��Z�7(m�g�_����݇kw":�
�Y��V?��!^7�'"N!����Q�,v8�"+��6�n�JJK�S7��/$���
�[�_�;����G��70I~��m�����a���X�n��CY�D����@�m�u{�cמ��1�u�,g�ƖE�2�}��(���WF K`b�B�V�H�|_rW�_e�U�z��Ұ�6%ᔺ��K�I�V-���u��R��i� O�4nnn�A��[�Cu_$?5�/�-��|�r�F?�O3^m\
�ѣ�Q�Z�4��XM�Eс&_��Ub��8�Ʃ�C�?�1�^ʪ\��~L�\Q�Qa���.Qd IDAT��ޣ�|Wm�u>k�/:��v��S��n�|Q-�.�Mu=�^���-�=$�y��ޢ�ޓJ��>x�L�	d���ƭ�`L�	0&����޽K��]�Цm[Q�y�ҥpwwǥK��;wn�������e��Y�?���#G�%�SG'G�F`�*X[[�ĉ��֭�iӜ�6)	
6@Æ
��ၗ/�����۶���;JT���ll�۶���ܪU˴4R��]��P��X�d)�>}�f͛�I,X0�`��pȥ�p��?+��ʼn��a�Sg�Y�מ�d9`�?V��A�`��&�0��A��,	���U�C�4ټ�C�$*n�E0}5~�NT�T~���w1f�2�a������PnS���?\�~�dƀC�y�x?��b�X3�6�ڷ�ѾMm��p�>.��Q�R�\s���Ƽ���+'0m�M�s�<�;v�#�oC�0�oC�V�b�JF�	<��/��o��o J}������ú4p<�?��޽ۋ�e���QH!:K�){��`�4��b��
��\��^&ܕX���>CY&��GD�T8ՕSu{��]ʫ6�T�gC������eO�7Uκ�P[����F�Om�u����P?t�m�H�����Of�wm���Cۥ7��]�L��_]ה!qHo��]��q&��,5��2&��`L�	0��%�/Xd�FEG���-Z�ȰC��m۵e�s�AÆX�t	ڶm+l��������q��q<))	e˖���+���/���?QQ/�u�V�~��b�=!S�a5�%c�ҥ1�q
��f,�a�B޲e3�ԩ#�;::�5�H����0��{�&/و�Ӈ㧼�������n��6�q0���'������ 	��ܽ0��!����(��C�c���Ȳ]�wO_F�m\Q���鏙�G
3���c��I���^%?<]=��q*5���8�����k�xV�`o#J(Lq�’�v(j)��^�n-�Q�^Mr���A������8s��:يr��9�B�*U0�k�����K	�g�BG�F/B��P����?iڶ�͊�R�I񀥅�<�<�q]P����6����ǯ�b��*�1��7f8�Wq�4d8k�s�L�C	d����s{&��`L�	d��:w��`L�	0&��F�k����ЫU���ax��!�-]&�@����;��/b�ر8�
+��`:�� ������G��[سg���SP�\y�3vvvi�BY�..��G�ҥ��+V`�G�w�jU�
��ؔ�C�_`����_���%����Ⱥ.�.+�ҽ��zV.���e������u�n�P��#:����u�0��U
>
��e\��ᄚ��������>��_&�A�V�`��׬���PD���Mbo���}/�����$p*ɍ\x����H��A��
a�7�l����P'��_�]�p'��RZ�.k��u�tkZ-����'q��e+Q
=�5G�*9�e���e�s3}���[X�:�Tb�&3��eX�2��1� ,>n��`L�	|�X�
��CfL�	0&��`YA@U�R�
د��=F���P��Ϙ5s&=~�V�Z!5�T�UO�>��ŋ��
���S0l�0ц�[7obᄑ⽾0�;G%��7o�M��'��lٲ��U��8q"8��|�U�dS�^~�	K�a�k�Lٻ�I������#`�J��4�c/�v�&�A�|�2�~��������O�b�<������
��xs�Ce�>�L��ضq-vxA)c�2ʹ�/eEkd�"c�t�,��%r�?�|�}�6�ۋ���C.I~���2tp������2}I�&���F���
{�ɝ�m�?��X[�@��}�<���������K��8�w�X�H��d7՚�z�j>1+��ԹO&��X�p�l�	0&������uśG��`L�	0&�������;��Qpuq5�4}�;~�Q�r��8��R~�����͛6������ <x}��%�i�`�f��ʀ�8�<LLM2$���}6��e���`FI�$qv��L�w��\��v��V�<B^��,���\;!�.�k���"l��/#n�ݨ��V��g���*�h1f���fB$��_g_�e�o��s|0qd?4��L�L����Q����e	�>��wq�3���A�F}�8r"SWUpU���G�Q�g	�?�P�Bn!���_�#�p��ā`Z��m*Y}��;xx/ǀQ��1^>�������x]�,���1����s���C���'�	`L�	0&�=��=��^2&��`L�	0�����;1l�p,_��[������N��ʗG�z���5��珷II�ջ7�޽���H�-����3��n԰*T������F���G�p��/*+�)XZ�6��sL�^w�Q�*��J$e��P�3�m�T�D�'$�N]���
�ax�$Ӧ��I��������`\��s�
ѕ�с�7�8W.x:�G���G�H1�D�%0�����Ɣ1݄8���S|[�0��ɫO����$_�7
�x�U07�aڄ_Q�x�(�&�`���:�B����>�����#x��	6M�*2l��(2�O���Tp��d@�Gc��j��t���Wp�p(�
�Ǿb-d��G�Ş#�_WX�	1���ҥ5��+�p6�;����Ů2,�t`L�	0&���aX6����`L�	0&��@x���X����BP�ܩ���ԩ��k��ܹs7�DE�D�j�Q�R%���a„	�Q����Q�Թ<==Egpp0
*�y���͛$!��Ͼ�����g���'O����G�.l�o�����ϛ6mF��0g���7��!J>߼u��f�ѽ;F�!RQ��1��p����_�'�d�47ŏ�r�ٮ�Ȋ����z�&�EP�|!��J��"K�6�ޓ05Ήfֵѭiue��ˏ���
·M0rH܋������(li��E�gW[�4���[p��#�c�j�J`P���i����P�@n�*�����i��
7����ɇ��[�@~S�y���+W�Ulʔ����* 4x7�k��M��H�����=
�����y��_�"�ЯK�̅���ڽ�02ʁ��91�gGT*i.��H���
�|A3Գ���x��)�,_�a�.k�MBQ��寳���.
$�����t&�`�3	���`L�	d,g�P��L�	0&��`L�	|��d�uh��3�p��Z�ԥr�$S�d�8e�RV0�,W��2zc���SIe�|4�L��ɎT���N�E�h�6��K��$*K����G~��d�Υ~Ȗ��3��}P_t	�Ԏ�����yR	h�S!�J\�G]�j&�G�K~�OzO~��ls⧺�x�+|�5��ϕ�p��{�T	���	0&��`�`�0^|6`L�	0&��`L K���"$	�$J��H�-	�$�x)�DT�/֧U���R[�O���O��8�.����~z�F��?zI�K�h�dO�lI�%�4�/���I�K��t�6i���K�$.R��#�i��S���I�8�>:��W_�l�H-l�YrMd�S�3B��0��'�p�ǀ=`L�	0&����W��[&��`L�	0&��`L �X� 8n����Y�	0&���vX�v!c��`L�	0&��`L�	0��`8#Ը
�z,g}�&��`L {`8{ŋ�eL�	0&��`L�	0&�2H����fL �	�����`L�	0�lG��l2v�	0&��`L�	0&����3B��0��'�p�ǀ=`L�	0&����W��[&��`L�	0&��`L �X� 8n����Y�	0&���vX�v!c��`L�	0&��`L�	0��`8#Ը
�z,g}�&��`L {`8{ŋ�eL�	0&��`L@2��7R�T���-�������H ` ���X���'��g��k&��`L ���u�g&��`L�	0&�>R�8�o<y����w�͐���z��2��v�y�9Rޡ�OEa�?	�D3�yf0��I���7��	0&���:,g{�	0&��`L�	0��A@!G��w[w��Pۦ�nS
��	���$�Rf,e��K�T&�){9 �58cV��Lٷ�"{��Q�x���!�����?X�^��b㴞��?����JZ8H|U�kz���̏�qi�M�`�L {`8{ƍ�fL�	0&����YǞ{fL�	0&��`L�c�q�c�A���MX|F�kz�1\�@lμ(R�(�$�Mb�����]�������$�^��5�0��~� ��v��$Ȁӏ���uX0������/�ﺁ���[�vE>~d�?�����O�\Ԧe~i^��MB�,��>�Tf��K�����֘��"��"�0&��`_
���H�8�`L�	0&���J@�$��Xz�>Gٛ$܉�ΊZ�����<���};��m�o��Gnjٞ�-�)�$�g��� qt��Wp�ۈ�n������ٛ�q�E�x�7q���~[�q��C�8آ�"���;Սxјi�Ld��O��֬]�q����E��t>�#ńlJ�S-e6K�ǔ�=c�}����;uD>�q�O�A\er�Q�GvHȕ���C�%h�@}�u������'Q�ɌС�
l~*�������u:��+^�-���s�	0&��`�`�0^|6`L�	0&��`��	�g��;adn�^����{?�����u���|�Q��~�Iɨ]�;�ޭ�_�e�k�ۤ$ܹ{%�Ř�P��\�<v���ڇ��;Yto�~,3
B`lL,�]��ĄD4m��.�015��;���r�ʢE�8z�Ο;������eB��-I&WC�����Z�t�Zy���Gؾ�f��ݛ�(��T�q�h���,[�q�9�x˛$���W<OV�9���n#!!��G���aN�y2���w��P�H>L�'�����V�jy�P��-�9�A�[`��C�r�	�ߢ�����;!�
{/!2�s�D23�.ǶBd�U` q[�LN�����M�m=��wF:����-*�yϹ�ظ� R޾A��W���uk�C��O�v���%ʚ$bp/[�ع���3c p�i��.��a]���'��?mw,Z���,,gI���`L�	|-X�Z"��dL�	0&��`ٔ@���,<����!�(��P�ZE�w���`��������4���e����U�Z�km�<c�v�|�Y��"*	��a��;����g��{��O[�8�ܥ
*��K���ӧhּ�4����E����#��66M	[�NBnժe�P�b�'��3L����ÅL��ԍWp�����
A��'4nc��=����|��GQ�p��������~��\]��G���bLp�:e�-0�,��}��`���99rcV_œ�8���I����[Q���hټ<.<<\����_�|��&7�=�����������B60vN
(����T!�J�s�W_��x����;�)�=�\�Q���w�2��h&��9*
)�=�h,e0_}����t��Et�Q�M/#v[A�`�
L {`8{ƍ�fL�	0&����YǞ{fL�	0&��`_��}��7o������-[�5�72y�趈{�
ڎi�#Q���i�}�}�<�E�2&b]�[�`_�qxzډƃ%��7�V����z�+�����́q�<ѢcWtkVB��#(�;m)��p!oٲu���;:��K�.����gφ��?�\�"w0(]�4�8N�СCS�W�]~��K���}�(����k9Z�j�_���aǽ��N��^��'Q�pqh/�6_}��g��u�|�K.���mۣf���t��bG;T,*��ݺ�8���e`�	���/��g�@�Ўx��惹3����|M�a��痟Q��;�����C��{#�ѬZ�b2�q!�T���M�09D�,e�֣���Яُ�ߠ:�L^��:aP�����
Đ��0ݡ=H&��Nc$�O\����>��#g�u]fדXή�c��v,�3����`L�	J�`C��L�	0&��`L�	d�@�ڵq��ѶZժ������R�;�Âջ��e���(�^��E�<��7�x�nLv���`@��m�(O|�v"�x�c��h�-�$���>��ŋ�WۦhV� ,UJKN.]�..��G�ҥ��+V`�G�F�jU�
�ʕ+�1cF���.�x%�����t,G1Y4���@�
ШV1��oว��B���x�2.�Qto�
�X�"%ˠP�3�$�q�
[��M3�Z�=����\��,Y�ޥ5|��ŋ/`o#��<��
�\�9�o�L��ͭa�7�l�|�!��#_��u�-�u��9u�5�������^�F�k��hٴ�W����gP�H�n��k~�Lh�q]D&4	����Kcs�
ƿw�ӥJ(2�޾H,�a�A}X�
��CdL�	0&�2������1&��`L�	0&����Lٟ�����z�A����ݰ	k\��|>��+�6�Vo��t;��W�I���XLX��'�B��r�3��S���+�bбY�ٮ2򪉀>�>p�>'NGٲ$A�Vb�ĉ8x����Vx�h{��ۧ�$��K6��y���ޥ�2g���������Y>*0��{O\��CX0w�C�”KY�ˎEc˦���1%�!�rbE��`��X��C��(c.?�p���'n`�}X�1?�J+��N㢍�i��q�$k�O��O*�}�B���{�йY]�����4�ĖD�=W^c�R_��������cX��3���pv����X��`L�	0��l/>�	0&��`L�	0���s�"::
�.���&�o{�!��Z���I���/0�s1��VE!,��}{�����7�n~��T�D���`��^`�W��;�P�R!�
��:.FC�(�&<x}��%�i}_�f��ʀ�8�<LLM��d���D��g=f8A����$��Q���{��QBD^�����Q��p#���~���$����q5�`֘��]�T�y&v�".��Ƴ�h��5��R��ً0eDo4��_�O�HX=~�9&-^�IG�I	������_���I���6�p&^l
�Q��G���,��>x�o*壽W��?!�#��Rpps�(2�ie��}pY���@��@ܳw(f.CAs#1F�3x���X����1-X��`L�	0��l/>�	0&��`L�	0�OL�֠%ao���
ځ@���F����J���ē�;5��րm�	����'�v舎M���7�,?�kT�W������3�b��;���{��NJJB���P�B�@tt4Z��=����XA%���К2�_��ٵ������:�p�y�T~Z�%��qwm�?�].Xu���`�D[!*Ӿ��[adb�c[1�ٳ�Ȑ+�0u�*�	�Z��>|�*���*O\{��<²	-��JY��]W!�$&��>�|�3~X��S IDATc˜����W�S����;a��<y�͎m��V���{��4���B��<a�9\��~/D)x�,
3Wl��� a;��#D�ߎ�nC�]/5$�n��v�D��
an����vc�m��M^!�g&�i��}$,$�l�	|d,d�l�	0&������Ņ���`L�	0&��,$����WoÃ�w([����Ð�-�y��f'�>y	cc�b]=�T���a�� .\���&�ȑ3'Z6�B�o�8x��� �ݾ#��%�ꈟ��J��(�|��M����G��1b��|$�~�;�^F�}��X�X�}޴i3
,�9���z~#�^~���UNXZ��v	S��B&�-#�&a�چ��s�7�p����?���_�<�y
E,��M��ٵ#
��|�����P$w.�(W�;7',����&(](F
���h`њ��u�>��5A�"y0�S+X�7A�c`���x�ߔ�y�TEh�.�hc�V65�x�?��Dz)�Q4Wj8^�}��lK���)9���0��{c�X�ap�ΨT�X�r�Tp(T��-�u���{
�r�"׻!�&�ٻl�;%L��,Y�i4,�q�Q}�X��c�#dL�	0&�2���˓�1&��`L�	0&���e�5cIԤ	�$rJ��R�a�/�$�I��1z�Z����M�v�Γ���k�Ҹ���~I��1�/7١���Ѱ��}�X�V�F�A�K��+�q�MjK��ϧ㴟���(��2>*�L[z%������#?�>���E��X���;�T9�=:���bM�H�J%�y
�L��?#s,F�`W��X6���`L�	0��D�����.`L�	0&��`L�	0&�>+,V�`g���X����`L�	0A�`�L�	0&��`L�	0&���WA��"�<�/��_`PyHL�	0&���G%��G��ƙ`L�	0&��`L�	0�υ��K$�&`�
��g3&��`L�`�L�	0&��`L�	0&���WA��"�<�/��_`PyHL�	0&���G%��G��ƿo߾EB|�r�y��d_��y�L�	0&��`L�	0��A���'��	�`��`L�	0&�#��^/_F)�011����a��l�	�2Wmll���02����-[�`�(;��/^D���;7`L�	0&��`L�	0��G��ǖ-3��I��I�m3&��`_"�Ӊ�w�(S������K��͘ԙkr�d��Q�:u�֭[���Y���`L�	0&��@j2�b�ZRR���-=�)��ޘ�gF���, �Г�z��Ә`L�	0&� �p:S��O��#�zբE,_�9r�WzY���u�g&��`L�	h#�N�Q��r5�0���&Y$A._z�$!�9g*g6�9X��l�	|j,j��`L�	0&��	��NY����P�<tssE���?��*=�����s&��`L�	h$�Z���?E��%Q���&�>�0)�k͔�,	���X���錈�)*�d�W��$��f�OI2�����d)ɰ��Z8'gz�?�?�`g*���x,�!�~�X�B��bL�	0&�>��A��pBB"BCCp��%$&&�hѢ�[�.jԨ��W��̙���g���S��$�T�Rh���|���;'�-Z66M��|�	>����J�.�|���9��ߺfrz����gϰm�v8;�/��5�{�n��
���w��c۱#����s3s�����K��/Q���|��hѲE���=Ƒ#G���U�-�gL�	0&���A F��[v���N��զ�na2�J�d"������Y�M�Q��Hf�[@�i�)��7.E	�
�Z�-��B�+��>���8x�A~���`�C�4�{6��`��
{��#�0�&��`L�	F��tx}��q�F�����iz����ܹ([�����r%�,]���h�j����6�Y�;�4qV�癛��칳���H�n��,Z�X�˕+Μ9������
��~뚞�2�ء#N�>�����1m��E\�,�={bbbRٶ�_>K|P�@�~m���T�����d2D��D���S�suuŒ%K��N�8�jn�b�Ǚ`L�	0&���TU=�2UI���^�H���W����=�F/� ���ڨ�JIx�v�d�f���ыw1�g#^����K����o�m��߹5�Ρ��$-nB��F��2��XӱW�~�
Z�Yc{�<T��H�T�W�P�� �k6�i�oB��_�b��"�Z���x�w�U�=s
K��A�?E�L��_�j@����%?Ȗ*Si�gEb5����O�'b�S��H���K���76�H��<?�`L�	0&`��᥯�n���S��m����Q�\9q�ѣGѳg/�������t�~i�>�t��Y�ݧ��=���O?�,b�ڷoo�{F��昡~���������s��9q�֭T�32��w&p5fo�U�(K%;�2c���cƒe�C���F�0�PID�BY�K�!��0v�%{Y�J�?Ϲ�m��n�=��s?��=�9���;���9i%nF�֮U{��E���"���v�ڷ��Քɓamc��{RR7n��E��?��M�7e���3&��`L�H�2<%�GB��iIF��I��%H�˒�6���V�0�OO�lSA�?�t�d`v2o��//sLٿ[.'�m�x�����$�n�:$$&��~����$9-	`��q�AI�R;��5�=�q��},���UO�ă�A}'ꗞ#q,�G,ȃ��^;.�r�C8X����Hc�A�)Ә⡯��5�=O���%��6.�	��ݠ0e��Z��h�46q �L���<͍�S�@1�(�|�9>�{Oc_L�Lۣ���/-���G�a�`���y@&�+X�
F�	0&��(BXg����H�.N�>�^��R��Q�F��������c��Cr���I�)(��I�B
�������T�"n߾;;�T�k`���' ]�vŅ��}�{��M�~��7��߃�ѪU+�$��Pe5�^_�0��=Z�i��)M����S���?'��k�����
_\�z-u�Ȧ�]:2��G�8{�hG���������ݻwc��1�}����W��E�-����`L�	0��	$��Qo��
Ŵu1t�V�܈*��1y�	��P\��w��u1����2SY��i�HN|���AIX��*Bf�-u���k�;؋�A���ѡc8:8BSK���9�^�H��~��1\�pA|�o�ڵ�Д�f��W�
�������"㗤���+ص� &O�D�}��TØ�&X�慪��0f�b����q��
$$$��?1�Fڐ3w�,�TQ�d�h'��f(�����G��O@�V?���wBz�L�6��������z0��	����&Y��K��f�l���}ׇ��x��-ڵn��]�n$d7�9�ç/�}��x��Jh��n���B�0	[i��8 ��cx�Qj�~]���O���-{"��Y��l�NM�r����PI��
�ݻva�p3a{=C��`��:M*�۽�3�ŹE`���y(&��X�"L�	0&��(Xg����ȴ��9
���OWǾ}���#�%�.���[�e�N�R�J�7o��+eK���za�ܹ��\���AY��ӦOO}�@H�կ'~<x�9"~�V�*N�8!�qN�KUV��蕕�y���1r�qɇ��~�$��6��۷��j����1��mڤ	6oޜ�!�'ljj"�<���bgmm�p``&O�������'�A�S��-S��(��
�ĻO�	0&��`� |�5��מ�C�J1��}��
���A���e�Khb���x�̶�@���bĐv"su��Z7i���~���>)Km�ퟫX
8�ӷ/苗�W��w���ڵ����D���[�������۷_F43�-p�.�?�	��$�]=�ck��j"vE�i�����,E?�Nr��>�u�a�kg�tAI��;�5b����a����X������/c�e�F������[Q�F���g��;�j$�.���!(]R3����X`��p]e/�u�Ob^c�M!�	˴�P��7aR������VS����0�G�ÌYá��	
��+װ�~��dvZ�C�R��Cd��9S0m��H��&N�B�*��%�c=
��c��kx� ��`��\΁2���i���ϼf�Z�	�ZcP����,X�u�Y~}X}k�3bL�	0&��,��͎�S�nꞱmڴY�GTT�G���[�d%�)�u{p0N�<����"[866&U:R;i�X��������0�|<���ϰ�i<c�L�8A��I|��j���i�gv����o�׭W7�iv�VnD�֭?
a��`L� cIǖ͛���
`Z�F��Ǜ7��Э[Wxzz��Çhެy�:�6j���2�2�gL�	0&��@�%�?K�.ELl,��a�㿕ӛ	`�x�NEc醽�3g��/�|$8��
��WMK����~!G����R���t�p�.�ٮ����GX��&�G@GA��x۶�h޼�hok+���%J���	��޸z��,��J�*�m;�G��d�vv��g�&�y�+z�v@��
��`��!��PV�����v3G�c�>�{�p��a�[2ڪ��^�x?��B��vtŪ��(WJ&�GX��/��Q�~LsZ����Ѳ�,C�{���ҽ�()����/c1oJ_QJ��8�Y荅N�P[ƻ��'�w�6?�n�rL=-�������Ɉ+X�`.2lmmW�a�Z3��G��
C�X��:t�-
�3���}������@umY�jk���s(#��B	�=����J8�����E���B���D�p�pqc&P`�.0K��0&��`���*��D�q�YZ�+V�̬�޽�A�"2�n��K�N�:6l������X���e�Ŋ��t�i�3�9��Tv�N����e���yI�@�>s2Ǵ�ҥ��ӣ܇��۷n�u�6�OH%�3*M��M����7��h�b��e˖��u��!|��7��?7`L�	0&��@a%ЬY��m<�׫��!JM%QE���ΰH,_��n@5tH��=�����?Uue��6V��lK��Z.��Yg���V��p���x�f�x�
�T��W����#N���r��">̞m���'@��ư��KK�O�$	�+|P��:t�}@i�����й��ؓ��\"|����e��˗���z�Vn
���q�^K6���qX�~=|g�
�
���1/�L����߄چ:�@�T�����n�ɪ��y|�ƃ����rI���UEg��u��W���,<�Jՠ������2.m��ZiC���X�Гq��v
'"���<��ipf�u6��?�� B�݄a�jнL�CY��ϟ�)*2f$�����nd$6�"��=��z�}��X��ʓ*X�E�)2&��`�J�p8�*��"/�a��\ѻw�J6ӹoj�F�jU����'O#�����8�|���s�9ggg,Y��E��(���K�����äXj:+q��_�utJ�T�R�����R�e�=�w�F��UN�V�R��jժ~�ŋѥK��缽�D�Jf����{���~�5�~�����iS���7w��`L�	0��F@Q׭[���
1IE&(w��׀�s�A�$u?�7oA�����(�',n;0g����N\�ަ0kWGHҳ�^c�r_�>u"L��
�c��͟�Zu�\��3g���Pԩ[��`��4�
VVV��IQ/�k�:z��[��� ��u������!O�tu�+X|K�C�2��u�|��a�,sT)����
�����i8*j@�׭����u�l?��n��-}�T)	`ړ����Ƽ���B�6n>��ˆ��0��(������AƠr	�s���q"�2V8��Jk��H�0$\�=���ʍ'�Oq�\N–�� *
�:��)=�����+��#�<�|�͘9u,�T��[qOb�nBn��`��,%O��`\�����`L�	��fUSW�Z�;��ױc�`ꔩ.���TUTP��		�q�;�/N�.����u�d�+W���%K�L-A-����َOU�AKa*�Tr�<n�h%�qLF���L�ݻ��T��#[k���ĝ7������6����5kd*��*�}��5џ�����GX��J!��K�_��`L�	0&�
2*���Ylq���t	��0y�]7'w̷�Mk�
�aOB�RgK!-D�)z��#$j���s�,�"���>x� �
.J>��t,�c���/\���f�0��^5���%��X��䫢֗g���9�xlŴ��^M�'�Ӂ��w/��*��&�z�_쁙㇣���B���T���?�1{�v̞:
]+�5K�*�ۋ�B������s�n��8�Ͱ�8f5d���nK��cɔ�hXMKp��~�"����p��0����S �+�s�O+7�����k���_BD�Ir�����AM���<��{b��hR�?J�ۓ� �f8��'�8��r�L /���<`L�	0&�5`��j����z���1���E]T�\Y��7o<<V�^I�y��@�N�RG�p��/l��bhh�G"�O]�UCR}<H|�D�;p��9{6��������>���T�Taa��� p����p5#�l��n3�III���ϸ��?���3Z�ɦxdw�i�xI�S�/��KGp�X[[���ڵj��#�s�eSO�5����d�R�nmm��	0&��`L -���" XdS	h�OH���Qy=،�Wɀ�\�k�=;/J�OX���M�۴!�����0i��:5{�j(���D�m�5k�%�cccajj���f��-�Пd��%���:���ǡA9Y0�Y��ߙ7�[��n�@��F�j��+VƂ�� .7o=~j��;�kg�?��w��7�L\C厧9�Cqu�M
}U�I�+hij@����6BO_K&�I��
N.~!�v/�m��l_*C=r�ЗV]lz���0:)ڥ�`=��V+�1=�vrي��pu!dq�0�<p��B�J{:���˔OU[�/ށ�s�̷������u0[�5Q�E`T�}a7���%n�r�W�>p����Uu����+:X���~]X]�ɳaL�	0&��<�0�J9���a���x��ڵk�gϞ��L�Шzuܿ?5S�K��X��	55����S��4i����8}��G}Q������hԨ�G��n��M�TR�ٍ/=L9��s}f�u}��M����{��Jv����1�ĕ�36�����Բ���>��015�*#��?�ƍ�
s��a���?���_�<`L�	0&�
)�^����!�u"�U4DcX�"2z�H���-����ԋ�c�f��C�]+Ħ�>\�	u-mh��m~@��ߦJX�4"�ۢ���;���ƀ��1n�8!�:�&L����1�ѣ�W����[�l������'mB�����1�o��%���*T��|ˁ"C��?r!��B��U<�-���5+b�@S�m��K`M�v<�����ڵn	�����k^{�5~������1��Oc��`܉����J��ai����2Z�����, IDAT�Z�<���W��_�AS
8u%K��```���o��_^�;u���˨\i����Tp�A<�6!��;�4��J+b_�!0�>mka�P?}��P㿌�*�u9��x�����;q;�!R�4�Y\#�A�
�B�+r�PV�Z������K")E
�R������v��J���B��ళA�p6��%L�`\�C`L�	0&�
�,Wv0uG��:�q�8���r���sgϡo�~�M�=e�>x�0���NL�d�͛7����ҧ�O�bŊ��0;�)�q��73L��za�ܹ��V�P��Q�{�ٙcZ�۠~����c�2y2�m�S�RFScs�8p������^�z�ꍃ�eL�	0&��@^�`*�K��R9`���JY��3e�R��t��ב���T*qL�I�R�-���տp�$��=v)��ƧYIK�)~*M咥�i�t��)}u��ה��y:Gs�k�<MK�A��8R�Vꏊ���t^�H��ԗT:������_R���<��8Ğ���gjCc���J@��yK\�Oeƣ�蠾(v�b�1�}�9P[Q��=�eu��[{���-����{���,��
8&�,��C��aL�	0&��2��~v0u���S���"88/^�L�Ȩ
�#G"m�_*mgg���Ӣ=I�Ν;����HN�>}�z���Ӿ];���;��ė^g9�;m��`��gࠁ8z�X��ݺu����G�eu�i%0���#hӦT1_�F
L�>
ݺu�h,e��;1��G�G�
�o�����sgL�	0&��@�H�d$�'��+�%=$�G�I����$$�9�N��d$=�/,�)�Ɩ��R|$k)����<R��/�4o�V�~��<�H��<�K��󒼥��zi)����9Y]#�!�)�����[΅�Sf<����,q�8�P� �@�i�aS�1�/������ ?���<&�9�9g�=0&��`E��/��)���Gx��
�ʔ�AY�LG|�2O�>%�K��܀/xd#���Ӹ��D�9�'q��߉y%ttP�|���,ڒ�VSU��]��(a-�.Đ�C��'_��`L�	0&��`Y'�8��
&P�.��10&��`���´Z�%�loV�X�t�O��o߾�L��c�Eŵ�q>�<tt� L�	0&��`L�	0&�	��҄�&�e��2\�W&��`L��%���][�Y	|	���;|vog��~�\���2�b�ܜ	0&��`L�	0&��H�p�qs&P@�. �a0&��`���B�T�&�%p``&O��I��M��[R�KO��gL�	0&��`L�	09�|+0��I�p�\7��	0&���?,��=�\�\�v
C�F5j�(hji�8�ӧO���W�\A�ҥabb�#P��v����`L�	0&��`L@y,��g�-�@A"�� ����`L�	,��*q�L�	0&��`L�	0&��@�	��1B�	�����eL�	0&�
1��x�8t&��`L�	0&��!�|� @1�C����=�T�ٍ�+�.YE�~�h���k������y�Ԕ#�X9N܊	4,�ڊp<L�	0&��@A'�������`L�	0&��@��Ț�p�f>y�&�
�mmh�L̮@�R�fmvE��;�L�;�}��)	��?#�P��r<ь��	N,��q�L�	0&��@�`��yd&��`L�	0&������r�5l߳��:���Т,��
�/�oV�Ȓ���3d)Ù£��_)㙲f��1�Ax/�I�2os����)��R\�
�x ���9�wo_��eh��<;;��]�O8�R�I
�);Y��.���?���9��3�|#�8���L�	0&��@!%���.���`L�	0&��@T�7��t��^�Я}]�ȉ��T�YX���<��CL[��U�`��	
�d�NHA���0�wG�6�gc�q�y����P<�bS����׆-�;u8J�P���*@�5�O#��E�;���t���xi� -m�ʊ���K`�$ɉ3g&g�&�Ǧ,��>�r@�p��L�	0&��@�$��H.;O�	0&��`L�	�^�$��A���0I����r'����w�l�a����B��9uyF������R\�ɼUvE$�����2��X5��KO,�c;�����$-����=t�=*�,q{
`���q�<�L���k���Ҿ�ē2{)���C�(-�di
|���;��`c}��#���-e��8ҵT��;���+쇉�I���P��9A���*9���OcJ��8���D\{��G�p�i�T5ѳs{tk\Q�&N9�cZٛ��e��l���@�`���yp&��`L�`\�CfL�	0&��`E��{�AV�j�Rd��+�Ȱ~�	�5AGq��]�'&�Y�o1��B�0�j%�I���u��K�zXOT��<L�w�\�d�5M���W�a�`���0��ţC�ptp���&v���9sP��LMMq��1\�p�7�ڵk��I�Z~�K@Sv�֛���7��@M}YIh�ݗr��,�%����1����rF���1~��Ȭ
�xׯ^��D4h�#~iC���`�3�����%QY;	v6C�6	X���F=AL|:��,L���1���n]���o^�|���S1�ٰo��wc�8̱��)�φ��yqqoѶuK��@�]���.��������W�(]\+�MY*'���3��>�A{��o�B�������>����~?��[�r8��C%�$��;�a䰁P�V쿅={��u�(4�,�c:�%��ҋ:��8���L X�_��`L�	I,����`L�	0&��@�!@b�z��n=}�dU
$ƿA��`�{,q���z�0o/Ģ�l?��S���e��Z��6���f"#u��{�
m���;`�_��j;zT8M�m��}a`��իV��ӧ�ة#ڵk��˗��Q�9����ڷo���p����K�Ο,X�
��	`Oxα@
�v�x'�D���_<�~��o���Z�5¨!?a��P��Ĕa�����q�Z�3�����_œ����:��n�Q���й�1.=�8xb��hT�f��G�R���?����,��ʙB�.�;�蘷�g�^d𒼝���~��:T��h��wL��F��u�p��3L��_dl{o��k�D��n��K���~iX�6@�`I�R�f��C��ڌG�ʀ��RXM���U�C'�!��uX��Q�+�ᱜC)y�g���m��k`��5�����{L�.��-,���ptL =,���`L�	0&��@���/n��`L�	0&��@6	���ҥK{{�v6U�'��o�p
�;��hF������c�+�L��U5��>��a���pq���7y	�?������X�{{K���r��Z�EY@GA��	�m۶�y��"v[[��|�2J�('''x{{��ի�ɥU�T�l��=z�'�$�p�\��aT�pp]�����ϝ�C�y���+��㻊�2��Ǵ%k`;sZW��u^���<|;����*09��x�^����=��1���B��L4���A&?�aݚ����ǣ��,Cw㎿еg[Q�y���x�6=D�G0v�[���L��.?wG��`?u9f���E_y	���Df����A�o`1��X_I�R�8e|/Rr�nݺ´��Oq�i�~��cE�G��[�b	�ғ�/�������4e<S��X�w��k�pdW�4�(+I���J��(�	��u��!�,��3��`L�	|EXE��SaL�	0&��`�@�f���Cb�z�r D�p�T�v��[X�~7�VX�H�O�lj�B�Ѩ�!�w�
��=��q"���&.Ljަ0kWG�+���%ޘh5�j�r�6ǣWm���\�z5q*,��T����ٶ8�z��}*�T�nk�I��������^Z�Ձ��ѡ�нi9�ɻ�\����h!0I�n>�/ܶ��	�^S&�W��ú��n�T���)���9�����{�
<�7��(�HP�›7o�ä-���-���ujB��ؔAK�����/c�0��8���m,����� ��S�8^m���fI]l\�߹cQC_և��S8q��A��_���T�[��U J[;)9�I���Ӻ,V����g.�R�r�stl���ح�#������|=if�	�>'y7�va �-�X��u~5b�_�y\&�3,�sƏ�fL�	0&���Eo�y�L�	0&��`L _(
�u�"4�Rq(
`�;��U�x��ظi68X���L���;0g�%�Jc0�̳7_c�r_L�>-�GN�Bn�����0�
�*�@���7>���8��H_��c�̙8�:u�+�'M����U��J@��m����Q*Q�s�=|�|qP.�I����G�l�x4-!�^g�nf
C�r�`����D���P��,���I�n:�/��c��x|IK�h�W+Y*���Xt˝ǠIk�ZR������?Ơ���/�vu0%�����A��t|Ng4�HI�#�"h�
�:�ƌ��.��RF���/�����NB�ʲyО�*,��z]�W#��E��e9#�8g��j&��`L��`\�֜g��`L�	0&����^����8:8f�4���vO��un�&϶�&���y��ѴV	!$7���ǰ�y"(Ct��r��T�����W�q��Xn)�b�r�k�[�
�Jx��A6\�|��}�X��!g/^�M-M���l���&�����#�!D�d��t�%�����\F
yJ���1ce �L#Y[��(>x��G�����Xk��ȶ=r��if���u��J���K�a�3�M@�*2L��Zк9y���8����.�~�)�`5q~�-kO}Q��[���+�x�T�}PI����~�Ȳ�`�	`Œ�$�)+w���QO��<C����y�7�ϩc8�l������x#�@���קKV�a�a��1�9P�8PV(�8_�_������(XX���h�`L�	0��O�p�_#��	0&��`L�	i�ޮ�O?�k�N���� �%	j5����ʢ�����K��0��HȺ��.��g/��P
/�E^�޶zuj �?w�r�:5��V����hۦ-j֬	_??���������d����,/�6�JSv*�w��6��w�h��ɹ��$�#�5�6b�ҁ('/�LRv�} �*c��f�O��oDǖM1�S-�op�^4<��
�N�Ms\�M]�>�L���PZ=	�����>��0����ƣjEm�u�p�+,�i&J+��l��fq,�l*��g)P�TA1]�j�T6����~�wɊ<z�
+��}��@���
U5-9g)3wqƋz�wO,�����A�_�d�.l�$ƞ���G�8H�{����~���G)-�+`�ݰ��?TV�6��~��@/��%��o&��`L�	d�����L�	0&��`L�	�1��<|�!����0�h�V�K�b���w^+7�Bԓ��TW�I��خ��d����uq��,�b�й��۪���<�O4<��j�R)`ioZ	��[�E��;�w������cܸq"���#a��	�y�=z�}��(��e�V���a���ԌiI�����E|�i%�*�1�!�I������٫8�3�B��0~`g��B,�: /݃��*ڴi�v��إk�]O��Z?T+��*�����+6�C�(_RƆ�ѻJ���?�����-�-��ƕ0���PWN����7���>j�Q�X��������;�aXJ���a@�^0(	\}�7�͈�{��F�Q�bE�=�f=Чu5l>���\�����R�$��Vr�~��B�:x��F��(V�F
����jE˖���Zc��*�+�$�A=9�R����.S`��y�����Xg��g��`L�	0&Px�.<kő2&��`L�	0�"I YEVN��%=(S�$'�K���%=/%^�إ�U*L��Aٜ���~i|Žis}��%��	�Ks#�M)K��J�I����CzP{�+��P�ĉ������/��>�yi�_�3͑t���Lj�WjK�~���1(:(6Gj��#�#�!����\	hI�K��xt�bS<�9�E�")�����Yܗ���|nv�87ir_L ���;�<`L�	0&�u`�u�#ς	0&��`L�	0&��Ȅ`�E�@�$��p�G��`L�	���ǞGfL�	0&��`L�	0&���<��C1�\$�8arWL�	0&��@� ��H,3O�	0&��`L�	0&��`�(�X�u㨙`L�	0��#�8����L�	0&��`L�	0&��@`���y(&��X�"L�	0&��(X�e�I2&��`L�	0&��`,��`���¹n5`L�	0&�X�{�	0&��`L�	0&���C,��6�r��\��]1&��`E��"��<I&��`L�	0&P	���V�B?�|y5��Pu�$˗��Rz|�5-T`8ج`�Zܖ	,��Zp$L�	0&��@� ��p�G��`L�	0&��@	|P��P���-�j�,N��k��$B&�i�Q�D�_=��D�0�L�p`\8׍�fL�	0&���c�#3&��`L�	0&�	�WN\�G���;�J�U�����,�j�tQ�Ȝ6e;K�45;VA��ώ�NQ�p�>r$\屒ĥ#+1%�#_"��3��$���@�$pF뙃����U_��3&���&P8	�.���Q3&��`�G�p��瑙`L�	0&����^���Ŷ�1�w'�k_?sa��x�j��B��d<�XȲ��Y��t�f':I����T�f�O^�9I.���Ԕ��T�M�o"�X8���`����J���v*��!�_�{X�K�	�%�yI��bL�	0&��,���U�90&��`L�	0����$8=e��@��^:H*JY�Ri�7�4���:�_��B`����f���8��TR�G���,��x���j�:�PIF�ԨZ�}�¸�Z꼉������r~Ҟ�R�lj������
X4y�g��Jm�5�ԗb�~��|��[�ݰs��*Ĵ�<)��~���t�[���y
�Nc��(������\��x4�;u+q�X�/EZ
�-]G�!��{�X�CI�����y,���`���¹n5`L�	0&�X�{�	0&��`L�	0%H���\#�FY�$	u�ד�%AG	Œ�6�Z��}z�g�
Bʑ���$�3b�j%���&�2ǔ���r�V���ܱ�n<I��CBb2�퇋9� Ip��t�����L������������tb���ĝւ�փ���HK�s��׎K��V��#�+��֗2�)��u���y��6.�	��ݠ0e��Z��h�46q �L���<͍�S�@1�(�|�9>�{Oc_L�Lۣ�������ڢs��`�]r|�_,��?���`L�	>,�ߚq�L�	0&��`L�HH��_��+p�i�b���^ IDAT�p3�X�U��c�0�'�A��x=�?�
�bL�6PS�e��rGӆ
������E%������U��J��8��~���C|\<:t�GGhjib��]��3ի���G���иqc�]��R���B�
�������"㗤���+ص� &O�D�}��TØ�&X�慪��0f�b����q��
$$$�ᅢ��6BІ����g����%PE;�6C��ݸ��=Bl|:���]���e
���޸��oވ����c�_�k�v�IVEe����;�!b|���}�>޾}�v�[��&b}H�n�s�O_�b��"�
J�Ђ��`Y	h�la���q*@����ڣ�x��6��8[�D��7���gtjj���w���J�0lH�޵���	���vc�ԡhR���s�H����dY��%�,��2��`L�	|UXU�ɓaL�	0&��`_�w^.{p��;����ۧh�����]�@��&Ə�g��l[4��-Fi'2JGX��u�?�'��� ��Wо���y5�X��O߾00���U����St���ڵ�����y�9����ڷo���p����K�Ο,4	��$�]=�ck��j"vE�i�����,E?�Nr��>�u�a�kg�tAI��;�5b����a����X�q����/c�e�F�Ѧ���[Q�F���g��;�j$�.���!(]R3����X`��p]e/�u�Ob^c�M!�	���P��7aR������VS����0�G�ÌYá��	
��+װ�~��dvZ�C�R��Cd��ד2�_X��x�Z�F`��̱��ű��5<{��ME0qx.�@��R�4
I�g^3g�Ą^�1�C���`�2�X�u㨙`��`L�	0&�5,��Ƌ[3&��`L�	0&�M!�C�t�R�������M���,ɵm���t�^̙3�ӗ�7���p��Tԫ�%�@{o?��#���b)J�ZX�`�Y�lW[�w��#,�ق�v��� ��b�!�d��۶mE���E\��2�{��e�(QNNN��իWe�R�*U�`��l�=�v�vv��g�&�y�+z�v@��
��`��!��PV�����v3G�cپ�{�p��a�[2ڪ��^�x?��B��vtŪ��(WJ&�GX��/��Q�~LsZ����Ѳ�,C�{���ҽ�()����/c1oJ_Q���8�Y荅N�P[��=�=Ѿ{_��AvӖc��!h�@���NF\�s�akk�
��˜A�>��U��J�ס{othi��m������ۥ��>N��k��W[�G�Cio_��{"'�p��7:5,/�?)�\���}q,��8b�	|,��V�	0&����	�������`L�	0&�
�f͚�ڕ�_�B�(^��l؝a�X�~7|�&�d�r�XlD�Ѩ�+�x�߷�2p7f;X¸0�r9��:ìݷ���`��6ǣWm��\���84�իW�����P�Je�����g��@H�կ��P��1��'����v�^���K�C����)�?����=y��%����\F��|i�ۭGn`��P�.��d\W��a����+�*hb��ļx.0I\�3o��j�@IHR)��o^��I[$����=�u��|I���E�,�S���������`X��C3�=^�%�m��P+m��5��z����v
'"���<��ipf�u6��?�� B�݄a�jнL�CY�ӟ�)*2f$�����nd$6�"��=��z��i#�y��c�F�p��䎘`L�	0�"B�pYh�&`L�	0&���o��nݺ
=�THI*2q���-�쀟�
����ظy,P�4D��=a�p؁9�P�0v�r��6�Y�:B^���3���aRЕ��&������������n�?fΜ�����S�N�x�$+XYYe(���5G=Y�-IVz�D�:��~�8�:F�S*�x�
V�҅�д�Lfz�{�uX7�Uʩ"���_a��m�t����u+l=|>�b��8|@W)	`ړ����Ƽ���"cw�߷�p�Q,^6ߨ@<G}QlA��c����A��缷��D�e�p0��𖗑�aH�J{�'��O������-{�AT�u�Sz6�	`����>��3�ڌ�SǢMEټ�$V�f�F_��/��`_��/��;eL�	0&��b,�����1&��`L�	0��D�J@/qvFll�.���%o��&������i-]!�7�@��X�l)����6E�vu����:�v�ÚeVB$�D�8�&İa�E�g�ߗ�,r�⅋���̶�Ыf[����3�l&$_�> ���c��VL�l���d{�:x(bܽ�W��|\��f�=�~�f����j	K�S���<��5�1{�(t����R�Tb{�W���qr_q�ܭ���G����=�C��m`�2w,�2
�i����~�"����p��0���y��q���?��x�G�{�^�4��#�wX	�'q��B��V�R5��>�X��1��I�x�0(��oO��Z,ʱ�.ʫ�s/�X���ؙ`L�	0�� �8?��1��S�����/cy����Ѳ�9��Ν;x�X��C�>�+��9<.N�Yn2�4R���O�=�qu�����/'*Kz�$�
�{��ASS3u/���[X�KeX)�%/d�:ɋ��_�.\����
]]t��-Gad�S��!}�N��K���RV�+N���CRi�]'ocE@�������\�׃�؞x���@��-г�d��������M�i<����vmЯS��F��_zB�����mڢf͚�$sll,LMM0���L�t?�X^��`��7�՝�g���=
��2�I��I��yo�u��6$��!=�����X~k��D`ܼ���U��d,����nߍ��,3q
�;����U`7}(�U�'ѯ����2Z0��=}},�h"$mT�T�b(���/��Ec��0��Ke�G��u

���@Y5�at,R�K�C)�z�'��V�cz����c��0B���a�y�0̛�

•������)9���."_��]�[CU
X{�	�:�-�Ś(r�"0*�����z��7C9u�ݫwX�	��F�:��n��E�C�Μ�`��*`L�	0&P�	�.ȫ��mݺ�N�‚q��5�ڽя��t��E�ב�p��	��{�y��}�Wf�s4��8#f�^�7�fw$��ލ����O���رcv���u���9f���Ԅ~��q>;w�D��%0e���[�KeY)GYׯ��={���CX[[�/|���i�Q֐v�K���u�l�Ω0�{p��oXUU����=)��>����㟫71�r4�,2U� �0�F3(�H�y�>V�߆�׉�V�-�
`1����"����R/�����
D֫���p�z$Ե�������Z�*G����GZ�۷n���w"�@KK��Ǹq�T���	' �ez�������-[�����N�S3��=h�_���~��<.	e�UѠ��[���ȅH,
ųW�.�֬�qM�~�}	�	؎����RWC��-a֡��t�k�����tP٠4&Z��i��;Q�Q�T	T7,
�>]�WF�^^������BC�
�K7h���Dc�WPC_�-��+�����}�+���zC��
�=����&ľ}��FUP�bE�=�f=Чm-l����c��4j��q�AE��'�o@�>�?t�w�v�C��i@��.F�&T�W�P��Z�l	'Wĩ�DR���$B=%����2�4���A�~~E������R��.R�͓eL�	0&�r���@|��؏������ԬU'O�D`P >$}@�n]ѵk�\X������9s�,�];w��?�̱�Yn޴.^��V�|�"�_4�1�M��1�u�AA�����ì�Y�
`)��bI�,-��O�5���ԩSs���U��4W�Z-���)---$$$�ڵѯ_?薔v�˕�>�IVX)Ef(���n.f̘�r��#%%��ña��}6�f:Tf���b�t����ۯ^�ʱ��6YE�w��Σv�F�|�9�s
#����G1�W�j,���;���
��r���+}A��.e�Rv+�L_\��W�=�#?G�kTz����lX:O׫�y?˫qr��$��=vi�ą�I����'�B�K�8[:O”�nG�K_�!�ğ�C���>�;]C�H�Q[�?�$A{�yi�(3���JGS_]G�.�O�S{�C�+�~�646Ij����)����x���N1Q�4��ϰ"jK��<�9]G�t��54o�$un�;��=,��Ǎ�b�M�p~����`L�	6,��Y1Ih�h�#�ڊ>��Q�:t(lk��x3�2Y�43�������m�2�M���k��-"s$#陙t�Kf�Œf�)��axx8|||1w�\�/_�=�…Q�N�3&/1��X��6Ϝ9///,^���W��iLl,J�*%�d4�#�5�,������L)��{��n��o:���O^��QY#S��Z�b�A��pC��@!#@"��	6y�]!�!	8:O"�~��%QH��uҵRI{q>�Ϋqr��4�Q�@cQ�A�M�ā��!q�� >_�$�K?ӵRYiE���4�%�G}�yI��uԗ4�CF��b-i����ߥuU��@��?Y�rI�J�(N:9����Ҷ	�s�)��_��[>'��	=��	���ǞGfL�	0&�
'����;q��A��;�L�҈�~77W��ۣX�b����[��HLH@����@q��ȡ�all�~���M�y�fĽ��������W����s
�W(��ÇQ\\�huO\�c����?���sڴ	e˖���˗/�n�]T76F�F��DG?���F�#dT��ٻ7n\GBB^�~�.�;�v?��ի�,�4;::�82�2�E�~��,Jž>sF�E�k�)������s|��Ac�>}!!!"K��.]��Y�f���IЩo�d$.��9s�Ջ�z�5Z�j����A�AHNIA��=�!���]Cګ��ݻ�nTcƎ�T�8�{����	I�D=�:�����>"���"#�J����aد�R�33���#=��U�ACC�w"���(J6o�<�{�^�Ţ��s�eFkI�,&�%j�F��>B�ƍ1d��id4�������ϟ;�5kR0�wuuŃ�h�Bq��㧤$CCC�:��d=)S�7o��5���QV��޷w�?F�r�`hh(���m�N��ƙ�;��$��y=Ӡ�Oe���=����Ť(��?���������u�b��	J�W�{?�攤"ˮ�,�K�������K�3z4TYd��.학���3&��`L��`\�V��a�`�'n��`L�	0������v�-5j$ğ��/j֬�V�Z���/[�%tt`��ox��5�9�^��6�W!?,����`a�h�o�~�ܹ.˗�m\���c����ݻ��kӆ���5j�{��-,qv��	ć�$��?�	&�o���kװ|�~��'Qr69��Qu��#�z��9!Ĩ��C��}�v8;;��iSN��{�ё��̨/M-M������f2�������SpF�);=>��\���C���R�8|�O<~-��U�tϥ�M{�-^�S&OF��5������98؋�;e�7n�$Sff6�@�ᱣGE�����͛X��Yd�~��w��k�$=�M���MҵI�&nn���D��$n������g��~�'����jܻ{�~�%2>��݋=����+U������8�X��,U�/3[Kbq��-��\�����>�����+��d4�������9�l�2�ZZ��Ƨ���V�&}���}%�Ç�Xe�uT�^�L_�iHY�N����N�:ʌ{��IF��=�_F�Sq��Y~�!>��pn�g��&��t�R�m�-~l�k��T���y=�V�=��%�ݺ��ŁIC���2�&g2e�V��`L�	0�J�p]�	dB�0�"L�	0&������:v�������v�!No޸	�K1��F�L�(�믿�X#���ҥ��0���>!� L��ްa#�O�##����)�D�`�9��e
ę�'���T��e͑��/"���U�V�͛���7R��[T�PB`ǎJ	���RSU�\;;�6j7i��G����'��>�'�n�<Z�h�ٳmѵKt��]7�@,]��?��On�`괩h׮���98x���p��1���"���V�m�93f����輨a����ǣw�>�Ը2���Xqఓa�[��f�ć��gi���,�ٳg�S$�lllСcG������O[Z1�*U�|r_+2�l-Ӳ�������o���O�5���2�/3{�M+�i�%����a��l��o����}��Q�F��n���W�ޏY}e����4O�Yy/��!�{ �5J���U>������ 	`z�y�\�:u�}�v"�ܺ���
{N����m;�q#�`��0����_"��은�3&��`��2Ș`�C�`L�	0&�5,�3�E�c$_�,r߾}S�	S��-[1�<���^��yDds�>k��<�L�H�SYi*�����|�_�*����lW*��ڷ����g3tǎ��}e���^x��)f̜!~���Ç�눋�óg�Sc�Lf��1������������������.��ދ���DP�X^
REQ:*�""
�� �FEP��A	EĨ�5ֈ	E�P",�Q�}Ͻ�3�;m���y���ǝ��-���IN~���
��3<?�𣐟�q��	�a���[�V�Z�I�&�)��,p]&�ܓ���v��GQ�.]�ȣ��K�.:��G�i/gU||"w�}�Z�j�V�Z�S��Z~`�i�}o�'�C�||`�����o�v���s1����C�2���/?�-��!�*]�t�}�'�׬�s���ٜ�u��7w0�����g߆�]	����� �8�w׷�>D�}����ߙ�=��w�d~���g�'�^����
2X��v��N�jj�}�y>�Io��Ao�yO
����c:'���9 �$�p��i!F��-� �D'@����˵b�J��]sɛo��W_]�w2��?�{n5.��$^�v���_�=yi�p��t�UW���9
iBksK�n]�)s�M�4)_p��̳HM�91dy��`���y���0��6�U�������_���X��s�h�ĉv
&L��i�U�TI�u�Y������{U��-[�ȑ���ۅ8@;v����]�	`�}�ݧFl��=�G���ܾ;\����^�z��#��d_����=l��kn�kn�n�'m��j|�|��ޘ���D�� �8�w׷��!��s�߼|��l�`p~�C������f��԰aڻRĺ�&>j��.�wI钊I*D��'��@@ ����@L� �l
@@ :��V�X���W��_�/����y��gB�[�Y�F�>��=�;���*Q��}��y�t���`̜Ҵσ=��sJ�s���)�p��vg��SO��u�l�-�׭[�s�̼B�P湠?����:�,�����=g�w��iڿo_��Lx�2ϝ2x�Z�i��;w�gϞ�����y��y��Ǽ�G����`��
���������`�,�'06',�
�=en������=z^ű1 IDAT�8T�M-����P$�2�OF^��6�����k�P�{jmn9_��v����l#	�cmI�oY�:���5
����L^��6�Ϝ̸�{{��?n��U�9]뚚炛��_��c�m�F�'��@@ ����@L� �l
@@ :���
�����ѣT�j5��փ�顇&�<��M�6�ח^zI�ׯט1c��_~�e���g�
��8�����Ѐ�U�Dq���?#����t�������y�<Tj.Z�(_'�C�eN>��%ש][����czb�2�����3cC}n��
fBy�[Y??{��}�y�������ӻ�6}�`[�m�]�V�uq����y>k��U������w�^3�쏛Ԩѣdڛ���/��@��O�>��O�^jo3n���o�(eeg����u����;��53V�8\-����Z�d��2[�V��W������6S�N�?l��ѣen3�;]�L�>B�j�R�;�ݛ�dǎ�{��J$�I��H�p{̷��~���)��͋�w�s��1b�;���w�~��������K%J�������s�& � ��S��RI��6`�U��"� ���
�4a�w�}�}���<ӳe�V�����;vj�����hF���h�"稔�]�vi��Y6D�Y���kx����DM�4U�s襗�k�޽�y����W�.���g޼y2�\-[��
 ��p�2wgj��:xࠚ^x�n��&͜9S���W*]��n��f=vT�g?o�K�t�����u���תZ��.��BL�g�6���^[������Y�f������v��2x�wmf�&�	֗y���͛��f~��>UժU�;Mk���>�8��*U
��#=��^Y��:����x���ԩ�j�>U�6��>�<�^��M��>h�q�]��e�Y���̞X�lYP�
�7���Y�ƍ�޷hΜ����m
�w�nO~��k���9ϫb���X��z��+�={����-�B�����+.�.?�k^��	����e˪p�ªs�i�9��_P���-�C�Ŝ���w͛_b����>}nZKs�n���~����աC=��c������ʩ��}T�N����;e�j_^q���~�z�Vׁ/s
s�…ڶm���k�Ξ���أ���&$?v�h��9��k(++K۶o���~WN?�t��x��WG�=
g�y��g�~���
1�&�T��ڶm��5j�ߦ]�v�b�
�{{_�\�`��_�	���c�ߏƍ/����w��.˗�o���c�;lN�{a������/�B�]w�F�e��^�lY�{�w/?�:��'�_,�@Hf�d�sC �0�@�N�8:/Z#��$�ؾC�?p?qX�h����?�p���{@@-@���8;��,
@�"@V:E����v�jvu��.��0: � ��-@��c�� vo�Y9 ��O�8n\��k��I�.]���]u��խ����kQ���}N7m��t�W��k��i$�E@@���3�t���jʊ@@ ���w@@@H�$)�@ J�(�h� �� v�@@@w��ά�y�Ϋ)+B@��
�ח�@@@@ I���L�(���9 ��^��[@@@�!@�:�J�	;���@�+@__zG@@@�$ N�B0
� ��� � �z`�o@@@p��;��*�'@켚�"@��p|}�@@@�D�8I
�4�R�8J0�#� ����]�@@@@���3�t���jʊ@@ ���w@@@H�$)�@ J�(�h� �� v�@@@w��ά�y�Ϋ)+B@��
�ח�@@@@ I���L�(���9 ��^��[@@@�!@�:�J�	;���@�+@__zG@@@�$ N�B0
� ��� � �z`�o@@@p��;��*�'@켚�"@��p|}�@@@�D�8I
�4�R�8J0�#� ����]�@@@@���3�t���jʊ@@ ���w@@@H�$)�@ J�(�h� �� v�@@@w��ά�y�Ϋ)+B@��
�ח�@@@@ I���L�(���9 ��^��[@@@�!@�:�J�	;���@�+@__zG@@@�$ N�B0
� ��� � �z`�o@@@p��;��*�'@켚�"@��p|}�@@@�D�8I
�4�R�8J0�#� ����]�@@@@���3�t���jʊ@@ ���w@@@H�$)�@ J�(�h� �� v�@@@w��ά�y�Ϋ)+B@��
�ח�@@@@ I���L�(���9 ��^��[@@@�!@�:�J�	;���@�+@__zG@@@�$ N�B0
� ��� � �z`�o@@@p��;��*�'@켚�"@��p|}�@@@�D�8I
�4�R�8J0�#� ����]�@@@@���3�t���jʊ@@ ���w@@@H�$)�@ J�(�h� �� v�@@@w��ά�y�Ϋ)+B@��
�ח�@@@@ I���L�(���9 ��^��[@@@�!@�:�J�	;���@�+@�o��e��ݻWeʔ�)��"��0++۶;��ʖ-��5k����C:v�
.�%���h������VѢE�Q4���^8P�"ET�x1�����T�p-VԶ?r��~��<��/�"E�D"K@@@&@�0jB ��1�3@p�p�"��Wz�嗵{w��eŊԭk7�}���L��*s��{�+WV���T�~}�Q�N��o��h��	ƫp����w�ة1c�(+;[�[�R�k�y?;���z�MճgO��7mܤ�ܝk΃�y
�S�{�����ڵ��w��t�UW����@@@RI�8���\8!@�n@@� ��_j��O�R�����U�Zu�z����u������v�j�ҵ�۫jժںu�^]�D�w����^�3�#y�\�F׮]t饗z?�3g�>��c�w�8?���/j��D�l��T��N�{z�y�*URÆ=����y?���~������ʗ�F�U�FMU�\)��Hk@@@�,@g`�G N�q��[@p�p��;��aÆ)#���?8�{�c��|v��{�d��C�>�bŊk��~�y�-��i�ŋk��QޑL�o�>:tHiii;v���Ӕ��G#��9眣u_�g���<��>r#�y������jԨ�{�O�
��k`ߎƌ��ժ�o߾����0@@@�� N��w
���@�/@��|�G}T7�p����ʠžv�'y=�\�R˖-��1cT�Je��	ZM ���z����f]x�Z�`��}�]
:TM��g���d�Q�9�o��jש�X{�բE=��3���ԥKgۜ8�_2�D@@H���@ Z�h�h� �n �֭[�����>�ݦF�7
�O<��s�m����}�9s�jȐ�:���瞠u�!��pF�
8�s����[o՝w�4��u�Á�Q�F�Z��޷=�2'�_y����o�W��jڴ)��)X? � � �`�%�R�ؕeg� � p�A�%�S��ͷn٪	=d��{u˜g�/Z���~['NT�re�G�A�￯y�^R͚5���Ո�U�Z���	h����:ڄԾ��e�yo�8���lMy�q��ӏ�YǏ?���kx�z����\�-�O�ȥ � � �	 N5!S�r� ��@�8X�����Fi�޽z��N�n۶�>�|�rR�4v�X����w�e�M�4Iuj�Ѡ{y�
��3����ݻ3ըQ#��s�L���	��{]�=�;/�n�{m�]�hQ��7&v��KD@@�*@��ʲ.�;�¬@b-@B�<�w�Sm��/n��ժi���uf�3uG�;�g?���=![�p!]~��R��=ͻf�;6<|�`��M����s���իW�(6�Ds�Ν;���~�-S���4i�}/p^��NS�Lѱ�,5o֌8��@�C@@H�p¨��
ǔ��@@��a�ln��W�i�&�fdQ�&Mu]�*Q������w�זh����������e�i�{*�\��Ӽ;w��yErش�溼�\��SeN{^y�泷�zK��B��� � �8Y����emN vruY ��C�8BU�:tP%J�TzzZЫLx{��a+V,d��� � � ��H�8F�t�@���p � ���)_B� � � ��G�D�O�8�jŒ@@ ����>�@@@b$@#H�A ��	g8@Hy�/!@@@ �b�$���!N���)���e�o6Hʎ��<Z*M�K��^G�%!�]%���U�f� � � � � ���}�8$Z�8/q�D�C�s��;�Ϊ@@ �����J@@�P�8B(�!����I�=����^`�� �1 �9)"� � �@�0{�� &N�]�
RU�8U+Ǽ@@���J�q@@@@ ����Q�tB�`� vm�Y8 ��S�8�p\� � � ��%@�Z�b�x�� � �@t��y�@@@RT�8EǴ]/@�- �D)@%�@@@@ 5�S�n�`� � �pt^�F@@@� N��1m��~� �Q
G	Fs@@@HM�Ԭ�F��=� �D'@������#G�D'Jk@@b$P�hQ�~��*R�H�z�@����?�O]�ԭ3G@�� �q�FU�PQ�K�.��0* � �����ۧ]�w�~������p,���'ޜ@@ ����oݺu�_���-��7�G@R_`㦍jذa�/� �I @�E`
�C�8h\� �� &v���#� ��.@��b~ �J��T-�	`v � �0pt;�� � �	 N(7�!����^`��X`ǖ��!� �@��	�㴵�@@ ��P�@ G����@j
�fݘ5 ��0p��>FF@+@�� �@��S��� N�r0@H`�ئL@p��{k��@ ���7�G!@�e�@@'	;i?�@@�q��+)B� .@|�F�$�O�K@@������,@H�T��D�T N�*1Gr�+@@���	���1�F@H�pB�.@���<�
;��,@�$@L��E� � �� ��"} �9��RS�85�Ƭ@@���	�n�12 � �@X�D4@" ����$�pR��� � �@
��6e� � ��{��[{V�� ��)="��D(3 �8I���I��� � �� v\IY�p�34'!@|x\� �� &v��g� � �@��J��'��p*T�9"�[��]� �D'@Lݎ�5 � �@B���` �p`���9V�ر�ea � '`�8m-�E@��p,�� f' ����Y7f� �'@L\p���@@�
�%� �p�T4D ����L@R@��8�)SD@�+�������f[����U���r�����2wgz�OKKS��%T�z
e��)v�ޭ�?�X���/*_���4m��ի�HF���;���-?m�޽{U�xq�^�t�g��y�Y�����V�2etʩ��c떭���_e�p��gKiR�/�^��*T������ƍ:t�N�s�7n�EX, �`��e:N��q%eA � g� ��֭S�z���O� � ��pj<n�8͘1�.��a����~� �E��z�Pz��_�\�G�V����;���G4v�X���:z��mڴ�q�U�j�qj֬�O>�į}�^�h���6�}���A��������T�RE}���*\����cYjr�ڱs�5j��˗�ς��s�ѣu�m��?33����Z�f��*T(����U�;�P�B�|�@ �0[�� Nͺ1k@(8� ���)@@��ٓ��d�y���>�`��%��m:��1a�|�R�Jy�3�o�Νm�yedd��~�]��S��;�h����X��-ր�m�f�T�6m��\�R������c��K��~�����x�+�iݺue<���~���jժ���~K%K�䫃a��"��pj֍Y#� �@�	�'.�M�� � �'�ϙ3WÆ
�+s`hj>�+����o�>}�}�1{�̙3Զm[o_�Ǐ�SOͰ_z�4r�H�?�Lؿ_�^�������>}n�^���������w�����u�w�}W�K�җ_��{�k�q׬y7׶��(�=I|~���	��͚��E/۶�T������?�Y^x!_�@�8$� ���IX�� �I-@�<�I�o� � �'��_v����;{[���-[Դi-Y�į�����I͚5�mǏ�^�z�6!l�
�)a�ʕ+T�H�>7m�6�s~c�AF��g�}֎���v�Se�!l暕��[n�%
/�bIDATs�k�+Ը��cfNK?��3jذ�k�,�X
�R��H�p�	@�!@������@Hu��k׮U׮�lY���u�Ǝ�	EW���ip��d�R��-����/ն];{���cuK�["*�gsB��[��Y�l�������6}��w�����w���>�I'��i��{o��w�y晹�W�X1��E����[�����iӧ{ۜz�)���W�K�.~f-�F�X����g�)-@���c� � P�A�	�`72$ � �@.��7�x��z�mU�XA�~�9b�lN�v��QS�<�+ -Z��=!����]�wiÆol�~��g�g���O?=K�[��hG�>k8��D�o��57s"��O>�ߡC����r�����‹.���?5�����5��C�د����	��/Z3���4x���J#�.@���SU�8U+Ǽ@@�����Ԗd\@@_'��7oV����թS[_|���5k�h۶�����g�}��+�C��j��OL�{��t՟�l�2d��f�S�d	]w]�k�ܶn��	`s�%������k۷�kK���:e�n�x�_ߞq˔)��w��Y�ҥu��7���������V,_�C��6�����BGTm�]���;����p�V�y#� �@A	�'.�-ɸ � ��N
�G��瞛����O
�m<i��e5h� ���Ϛ����v��iƌ��������k�Ν���	J+T��mc>���K�ҵ�
J���g��I��4��ݙ�����-V�o��<؄��٨�[^���>T�N���O��7��˃a��"��pj֍Y#� �@�	�'.�M�� � �'�8p@����?���kCR��ッo��NU�T�'�~�…{`��!�~��Z�|��t�����9'����}AC��֨Q]��ߥ��:S۷m���g�O>��wД)S���f��26��;V3g��Ωw��;vL�m�׬��9��b���Y���]���q�&{��g��:�S�Ҽyzl�d{�S���i
_#@�A 5�S�n�@
N�8�=p�mJFF@8!���g���Q��–/[�F�7�+�o���={��M��뮻6�`63s����Jm߱C�ͫW�V�:u��
w��[zi��qRN�����|�?]z�wN����;#׶���]���G��-[գG��:��S�s�K�(�W��EHM�Ԭ�F@�� bO\p���@@N8"Ζ.��%�����ӊ9'x}_�̗4o��I�5���˂�k׮U׮����ҥK�n�l���U�9c����,oۻ�K-�n�7v�O��;��Q~�6m�%K�乥#
���G�'��_�
��+�6m�h��a�V�*_�@�8$� ���IX�� �I-@�<�I�o� � �G�X-�L�ݙ�*_�\�g��Nj����T����Iu���H��E�f�� vT9Y �$@��8ی!@@�+@�_9�Cr�+HM�Ԭ�F@�� &.���� � �a����X�8b*"�T�IU&� �) @L�۔)"� �� vo�Y9�^�8���@"��� � �$``'�gւ �8N��q%eA P��������I�q) ��R��ؕ�E#� ��"@�*�b� �
��P%�@n`v � �0pt;�� � �	 N(7�!����^`��X`ǖ��!� �@��	�㴵�@@ ��P�@ G����@j
�fݘ5 ��0p��>FF@+@�� �@��S��� N�r0@H`�ئL@p��{k��@ ���7�G!@�e�@@'	;i?�@@�q��+)B� .@|�F�$�O�K@@������,@H�T��D�TH�����JF�@�6lؠ�=�'|\D@RU��8U�.�F@\!@�2�HH�@���۴I�� �Z+W� N��1[@(``�ނ� � J�����N�8v��@"���X � �``'�cր �8V�ر�ea P��ΐ�@�8�t� �� &vՆg� � �@�	�ZŘ/$�p2W��!\��݁ �D'@Lݎ�5 � �@B���` �p`���9V�ر�ea � '���q�+�"� � � �I$��o�� );�9�IJS�ҥ���{q�Z�ie?4��@NM]�ϻ�'��ig��H��;�g�D�G�c9�����Z@@ ��Pf@@@p�@��l�+�&�9�cZvN���v"��}?U�=�j�B�*;;[�K������&e)���0MY~�{����ό|Zv�_l���<��~��7NN�7�zz��K8���M2�#�p�s@@�_��� � � ��K 1�?��)O<��AժWӀ���Y��٠nݿ����>ת�W��1a���X�w�xy��JK�C��/?��zF3����E:���z����	����}��I��5״m�;����&�m٪u�l�f��X��{b�|ֲu�|�u��8[�����u�%�t�
��9!k�J�(��u�o�>����7/��-���ì��֊+��%1�G��Z�qp�$�@�"@�J�N@@@��@�`<0PW^u�Z�h���Y��˖�iO�p��[�5��j�J��H�,���0�����>'^mt��n����N��:�z�:;����m�	Ss�6M���u�M7�Źs�n�|�$��	�P�	�k����5�ش�JKםwީQ�F�j�*�%�-��Z�}�}���{>t�_|�
�W���U#F�T�V�ԲE�ޜ�_W��t��a�|�
��z�fL�����r�Ӿ�N�'�=��:1�{��ׯ��c��Z��e�.Y"�8��|L nz�99m��O���F��$�T�v � �@�0;@@@ȗ@b�M�n�u� �����޽����
M g"Җ�[k�Js���ۣǎ�s�jӶ�^{�����ڵ[�'O��T�~=���J�m�9q<a���_t��w���&k�+����nO��~���!�xU�v�ڥ�&?���p&�٘�t��9��]�Q�����O��P��/����{ƌ�d�~�y�v
�=7��PӜ޿���8�=p�^�4��'U�T��g�S��ÿ����C=�����6�]�J{2wk��Q�ԩ�.i�̞�5���fQ��nݺz�i�3�|]�O�����?���f̜�m�v�j�ʺ�O]pAc��R׮�ԧ�mz��g��9a|�e�Y�`u�vSO�o�/��$y���~�:f�o۶�^}u���Xݺv�/y�U{z8�>���A���"� ����Xu֌ � � �1��;I���GZ�|�&M�w���V&��;6׵��u��Y]:ݠbE5~�DU�ZՆ�����Çկ_?�;F��t�u�p�"-\�@�W��S1�g�ߞ�=4�x��4�B>tH��ȹ�r�n�5z��Q�t}�ze�b=��4^�j���Jٶ��Mc�=��9�:�5��/N�
�:���u����3��}�ܣ��+庅t���4-ze��9�ݺ?��S%3~�6m�‹�4v�h���K��������	�<��[����UC���$q�	`_�6�|뗡>}�Э�ݪ?6l�5k�h�K4���R�vmum�kԽ{7}�����s��ܳ����k���N�F��Nm��Q��ڵk�hѢ6��[�� ��y~9	�c�sE � �*`W���"� � � �@��`�-[5r�h�=ZuN����i��E�6�7o�*�+g�߱KW�xz�ʕ-�_335h�=�=�y�\{��NW���ˮL���#t��uv��Y�f�Tٲe�'s�
���=g?��;t�E�m��V�9������9p��Bݖٷ��	�M�;��O�+�P�:�i�/hǶm3rD��ٞ�=zT��SS���%='�sf�	�k�:EYǎړ�_�$W�s��[[�:�T=<i�*�+��[S��H���9�m�17Z����j۾����y�j�R��Sٲ����c��}{�Z�<�:������^P��쭞MP��wy;�Ν��"	�}7	�c��EO � �`wԙU"� � � �@�����?j�q�g�@5<����Tϭ�C�W�i��+_W!��]��5�1B�]�H-]��x�ڶ�ߖ.Q��B:��mo�F��6�ڶm�cǎWN�}.{m�
6��ܡ��/�?>�T+TP߾}ՠAbz�`��mp�ҳc�LԷW��}��o֒E�����c}��Gr� �sr=��S��\իUՃÆi�:�^�<o}�A��l��^����nS��ؿ~��_��3�>�-[~����eeۓٶ��ZzOTg���x�iB�S/�۶���2����A~������:@p��[+Ϻ@@@@�$���r��ݺg�4h��;�&zn��-��5�y�������,�<�՜.Q��
:M�&5m�v�gf�R�ҥ���=��{wo��҄�[�"�Ҵ's��t�noil^7�x�fΜ��%Jؿ�<<�$6'�s�N����~[s����s��__!���圤�m���9q��<��7�Ȱ�w�t�}�p޼<�4=��c�袋tY��y~�yƯY��[�h��=j�jT�j�������#�V͞g:��<�&nժ��0.���>��6w��C�o���ż:\�7n��'�	�s���oŝ��ȹv�'n��Tg���M7�����W��@@���n�<�F@@@���o�	w'��/���j߾�
j�mӎ���N3�o�Z�g󮴁k��'ζ�O~�	U�TY;vԻk�ѻM�2weֈ�Ԡ��j��͛�@�,^��+�-���7�T��}��FzᅹZ�l��-_&+N�2Um���si׾�~h��4�s����A͚5׷�n��	��/�>ͭ�g<��*T(����������-6�f���:��%���_T���:d�
x���e<�������#tj�A`{ۜ���ֿ֯״���I*]���ʦ?srwي��5��G}n��v��ź��PA-[��*�����C��ު^��^[�T˗�Д)ST�z5�C��$�Yo�c��~��y��'����f_߼��|A	�O��@@�u��+9F@@@���=�sG���4�.]��`ދ�ԺM�<�	�L�k^9��5��gl�g�_������^_�x@��78�ܻO�?>E�^�*�+��;un�v�6o֤Ik�v��3j=�꿿eo=l��޽{�g�.��K�Ҟ_��)S�n�תR�����_
�9���_j�Yھm��T����QӦM�g���|�I-^�X�}�E�v6=��Pu����/�ᛍ���ڶ}��9�{��J��S����9�ԡc'|�,V��6ܶ/���9��z��k���kOxh��_�[�bŋ���g��~���3׭�qi٪�V�״�����U�d	�u�������%�jɫ��M��Zu�$�	l�-�=��'���?�>4��Ϋ���J�A�A��Y��o^{D�c�E/ � �`�Ԛ�"� � � �@Lr�7��+�s�<<&�,6�8��*�����N|�;��D��7�>ы��	!�yb�g���3�~C���^k�;���@��y�J߶�D���l5���_`�����=�u���zG�XQ�������H��@@�`v � � � �/��N���{��m��s��ݨ�|M+F�@>q�4� 6F�Gݍ��E���~�ګg�q�qA��N΀ � ���)^@�� � � �%�о!��k��	�Z�g���=�P㛹.[�RP��	���XQ΍8J0�#� ����]�@@@@��	�Mo9'��̙s�ԯ��vS'ΟK�]�y�yf//�;���@#@�gFA@@@�	�
�sB�W`I츭���*@W^:G@
;��,	@@@!.6�DT�1�#@�Z�@H�pb�@@@'@츒��� Nʲ0)@Hb�$.SC@@@�d N��07�;���@#@�gFA@@@�	;��,()���,L
@�X�8����@@@@ ����:��9�Ω%+A@���?�m��XM�IEND�B`��PNG


IHDR�蝦tEXtSoftwareAdobe ImageReadyq�e<R�IDATxڬ�ے$ɑ%�j�y�KW߀A�Ό`w���"�w
����7r��p�K!g�ht5�R����p7S�G��S����-�U��n��ףG���?�/����.�<�_��_�H��a�ono�a��v7��w���
�8P�H{
d���1'�c��У_���������g�Q�}�v�N��r��M�����z��̯i՝U�u}5���7����ѮK�홆�׎V�;���~B�����*�������W_Ӈ�=}�ۓ����|՗�[��'���o:O�2�7�t׎��~�4����H����}z�zZQL��nE�]��՚.�O�(隷��}Oww�f���!�,�;������3Z��я6�i�o��v�v�jK�on�}K�
��O���q��vѨO�4?W���n%�6�MZ��i����U�|�;ߥg���8�x�4��E��\t���cڜ�S���__��������g��H{��w����.��qGa�M���5ѧ�Ӎ���Y��<Lk3��~�MG/��V��n.���I���Qڑu���x����w����.�e;���u�¥u�蓋+���}|�!N�$���n��:��C��w���A&y�ԟ��(��'gԿ�����Ǵ�7In��y����Ӟ�8��çH{��s�\�����{�w��i=nG�}��}zέ$�u��w]:'g}��q8�L��>�R���ǯ>���Kzs��>_D�e���(��cZ�{���~�N��өN2���(,�}L2��B���:��=�l:�q�B�������ݐ�op���M�����p�7���dmH�?��t/���h}u���nv[���h��ާ{ܧ{�|O����*�)�=���L�]ӥ?���g�8���.�һ]�w���CZ�}��=����Lh5��R��Xm�"����64��_�{�I�0���t�6/�^t�ҳ���p�WI�~=��yH:$}����I��閈>K��7���n��m�D.���:��p��^	=$��0&YL����o�v�K/O���`:lI�]���eژ��$�������O�\^��~�/��M�n>��^���k_u1�@�N���o?;�>N��qC�vC��>��cR�]�1��$]�h������6�ɇ�;�sگ$�����t��rO��Q�p��Y�v;����>��O^���xK_&�����9�?ޤc����~�;r�mڣ=}�'�_&�YӃ8�>$�y����|���-ݤ��$&i�$5L7�n^y�O�p�lܿ��%ݸ{�X��a�u��_���nh�
���H�'ً�{zy�]�xЙ�\�I�8��.i�d��E?;��ݑO��b��w�Kz1�����:��Pxp$�F���9�OY'��q�9�T�O.z:��]��o�~w\�I���������'I2��ӽ�4����%]nΓژ�ꖺ$�O:�|sF��Cy=��o��}҅�I��z5�}�M�#�ח����]$y��0ٙ��_���>�C��3G/�}r�.�X^]�߭J���Jz�����&���8|�꣏ߗ?}I��w���{ھ���g=uim/;��Ú�K6!�r���.�<��[������_$_�W�E���o����
�O��裏_�����$k���n��AsY�M��w�G��}:�4%ߡ�$��>�Ž��5�W��_��o)��Jk����Q��z����~���$ݒ�l��wA�J���>$���/��}��}y�����nvٶ�Þ��&�0�����:�_ڣ�>��ū5�xq�>|x �.�ݘď�.6��()�������[��ͻ�')��@�H6:�(7>��?|y�}\���tf��3�!�}���_�5>��^W��5�����~��~GB��I����]��IC'9?O2t>ٷ�y:���$��.�s�ś+�ُ>J��>\�|�$��v߼�o޽��_O��@��>ٽ
]vk������#���˫���Mg��ɟ��>����2�/�5}���7�N퓾��3����m����t�=]Ť���^$�q/�t���nt;���~�ޟNe�i�~��~���W����tO/=�������Q�}�d��˗�~�O��֔���$ه�uO]��A�[����N���?���i{�����o���\'��>�_��ui��$�]���\��7���Q^�/���_�J&�%7п|�m�����׿�:��L�^\ҫ����wo�"=��qzƟ��g��&��7�n�|_���Go�}9��_$���pG�_&-�Og'${����ɧ��yԠY4�
�L��L6'���<=z�����gyށ#'�����O��?��vɇ��C�_䌮�L���U�S��l����z�>g�����m����-�8��Uڟ�W����3�"��v�O6���g���o^S/Z�����/�:�I���]'���?���t����'t�������o�<�����ɏ>����R�2�w�W�?�c8ܧ$iK��M�ƥ8�K1VZ�t��������`/_�6���_����";K�Ng0&6+���I'~H�|G_$����>�E�~�@����ԟI���3��6�'���է��o������[sC��?I��:�,�d�'��mҟ[��>�yR�/>zE�����裯��x{ܳ��!��֫�9R��b��i�}��VM�Ŵw�=�&;u���w�����ڼ:�>�����.�����:������F���ŏ>�/o��}�?�׷���b��i��'K�Ok�?�$wC���m:sr���d�M:,�)&�v�^����_'8]����nnv�IG�O��Βoԧ�tI�|�d�w��n���\���eRP�t���A�%����M>��$CrZ��o��5���L?I�o�l�C����b�����S����N�7���t&<�j���dw���l߯Қ����$�r����C��S��F<OqMZ�����%�t���vL�N�>�����������S�J|�����?N�IOo�L�������
�黴������~J�Q�����?~{��N:�+�@_��4������d�����/��>z���/�鋟���Wׇ3ᒽ�I�}yC���~_|�I�h�"�g�)�ǿ��`���gnC���,�����JZoNk�J{��G�VF�Ur�^�
]�7��'cZ|YJv�o>��_�z��E��o�?��&�)�<O2�q���ѩx��{�bڻwt�l��Ic��1��ɕ$�q���\�'�\Ћ7���H���룯2N����b�1����t��H1�:�-�
tIǘ�6Y��M�JzfN��K���ū�6kڧ��?�Hk����I�6�������'[ ��9�ҝs�II�˿y�J��9��(c�m���7k�u��o������Wɏz�d�M���Wdz;�	��O���]����>/F��4�B�❇��$��y����C���䣏���"٭��Y�{�^l����5=�����}y}��&Y�Uz�t?I6a�b�)~�{�M����5;K����.m�Y\�:�k|�y���xw��lA�l�S�E����6�Y^�1't�|뛤�ޞ}��{�~���U���q=^n��sһ��ħ�����bև{ڧ=s(��z]%�Q�>M��˳�ҙ�e�����~��I��!��*��g�����+�?.����!���|*룯�bO7/���'x���[�2�d�N�Hga���$.Ʌ;8��$y��K��)��ۣ#�.���#֒�7}�j�Q�t�ۏ�Nrq��h��rU�H�y8�����el�b}I��K�����a�gҺ��ۧ��I�����]������\]&�=��?��fu�WNv�a;%[�����1ŗ�
I1W�)�^�\	�(��;��!����!}�o��J2���)�O�_��C��)1����;����u�k�w)Mzj���C��IvL�Ӳ�Q�K���똫:Ov�,)����f�!�d3s ����aO_��~��Ű:x�_�״=���ژ�=���\��J�M׼J%}~
���^r���.=��1q8�!4ΟR4�\}�&��^ߤ�#�9��Uz�:�Z��.��S�_�m��$������SL�u�S�K�7�����lr�ҽ��������|w̻h�d!)ȣ1�KNt��@��ӵV�9N�I�����!���}�'_2��|in.��Ӵ��G�����v�l_�#4��cz'�₩??�������wLz1E�������W=�G��p3G��S,�7�e!���v����e���t�S�i[WW�S�<a:�H��>��!�w�5�p�OO�>���g��K�
��*�ի�λ?$�t���2��?��Oo�n������=i�</�tz���Q�)�l�D�*�}��O����Y�|L3�kO� �y�],ϥ�6	��=={��x9$K)��x?�T�����P�>��!~����ż��)�r�6R�1�g��J�O���H�Of[��?�o���Y.�_�Ť���5e]�������c�|?�P�9zV�w`�
L���.c^��>��p���
eJ��|F4��uR>CX��˯���}�x����e��}�W}_�8_'ˉd���E����\��<���:�vz�a��3=�3*`�\��}F��g��z�>#Yt�8�=�ѳ��ZKޣ1?�Aw9��gϮ�g�e��s�Agص��WUE����G�؈z�ˣ���;W��a"����9����P5te�W���<���������r�þ��{W�� �*ߦXˠ?8�o}��� �|�n�Eds�z s
.��2[(���:[׸��A��F,�YYe=5��U��2��c}�~3e=��t�\���E^U'H�5ks���GC�ϳ�a�:̗5T���8˶@�Stt����n1��e2�;:�׵/k��{��4e?��:D�g�~Y�J g�g�T����i?���Y�f����r����6��
?J�QX�9��t�p����xϔ�g��]���)@�K9�zv�����gR���Ub)��Y�TV�~J��i���"�d{�ߠr&Ef��m,���2+W�z��z����@T~>}�.�>��o�s��M����3M�6Ey�Y��M��(o1����/-�V����w��"�sȿ����u�{��kW>sZ�u�}��]Ӟ�n?$����L�uF�3m��Ov	
��s;z\��G�S����ޫL�
9�;,߯�:Jqw����g|��sq������m*�����Nk9�Rt��t�gY��cþ��V?bڛ1��6����{��|��Lm�Zu\�ߔ�^��u٩M��uq\�!=;�.��������ϣz}�m��x����>�[������K\l�L�
�Fi�%�6�"�����>����A޲�V�`��c��_j�AGe-C>{s���jȿ�G�e?��s��7ℼ���|���y
����k���
izΞ�����g���ќ��ʘ���Y�� fd)r����>�J�'>�[T96�s����3�yd��I�a�L���u�����|݈��ĺ�����g�X&��՝>SqF�3sjǸ(����{�3���)�^l��<�� &65«�r�x�y��j=�q�����
����Y�s��V�7Ϩ~�ƕ�o�}'�6�?iL����9�i�G�!���;grOp�������1�/#3�z���E��$Xv�ws��&�UT�&�ފ����w�:�t��o��~��t\����`8�}����a����,��N��ҡP�ޗ��᭮ޗ���a?Q_�6��9_��{Q�p���:uT�&��ڪ��K�y�J�b��Û�c�enS��+,
T�
�^u���"�z���������.���*��>�G2�&\r��oE;(F���"�?}�B�1&�Ej��N�;�9����EZ�G}I�1�v�Z�����!�a U��;H�yW;�
*H��'�Uj�FR+9�g%�}WP9���괊�?*DZH�ɭ�[�K��Ķ�����S�6���C$��ր`T�]JB�5QF�p~�C=����\N�k�Eo���<�M�,uQiu����C��`�U�C�I�:�ZD���9;U���kDX�I�2mʬ�;��H��&+bN�	$�#i��-�br��}�g��/P�U��i�z�kӒ{cX�$F��l��k#�g�!@���E5�ֱ!;�U��8��l
�����D\:
�H0\z��8��V�ɼ�UUR�k���xh�AB��6??�h.r*
�Q+`�`�P����X���'Y��ֹ���q�d����uM��C�3Rۡ����FH�P��4;c�F�9hu��H]W���Q�k_�f�@�$���9U٘���&%�h�����)�LFN��A+xm����Š~�P�rH��5�i	<01I�'܏(�@���=o�Z�ӄ���Œ�	E��6Y�z.b��3�v�ՁJ��%�	�&�M����$}f�-m_F�]���J��z��r"�km������g}�<�:~��[���ؐ����lBWeCx�/l�IV��	�m}�
Va��`�	� �\8�u�5S�^z�/�9���L��/M���E� 58g�0C�6�}����~I �=�筘��d�_�g1���D.���藍Fs@\# ��'+j3��>�3�����oSd�����B��J"L�`�<y�8`�%Ba��"��c�(�_b@b�7�_��
�b\��"��3I^�!'�G9!�\
��ka��
��$��
ZU<"Ŷ���3��C�	ݫ���#�M�c��j�ψb�'�`:�តZ �gS��R<�υ�\:^ʙ{F������8�zM}+����?�!fnfa�)��ɫ�1�$K=om_u�� G���p>�\ ��gc����^��Gj�1Eh���>�E�T��MP���Z�kԳs�`
�r�)�l��Q�?�x	,�|��i�B�4X��T*9�܋Ȗ`~c�@'��P,�T瓪3�`J ��H�>b4j�0�xV�o�r2{���a,�,��"u�z{�"�Vy���@�5J��3�Cj��c����
���1�3[��V&��n��
�*r��T#�I����֭���F,.��F�,pġ���!�.{'Z�b���X���MW����az+����h��MvTa=c�Y���l�y-��|?!��+�:�YY�FQG�JC���d;�"���R�����P�dc�p�cFL�}��!���5`�5�T��1�}98=~Y���t���ݠ�B�g��
'D�.?�:��u]�G�}^��Ѯ�f�����$��$��(�l�lM���i��Nђ�������z�u�p!R�qm= 
�;D�v��uBЬxVYG��R0��AtN�U�g�'e�lȲLb-�@g!z��у#�8n�5�c�d��u�V�)'a5��դrnBnW#(d2�V�R�sGN���vjއ���ȓ���T��EH~�YV#����3��wy3�j�9�>�K����v_Qq������R�<�
@'t�P�#�r�`M&�9;G�L��gT��P�� ;��C��}�ӳM�ޫF��]��lԽ4�v���r_�F�7�����X�B�cF>iD�S�Iu�.Y^僼W�'%���oF\A���������1��].6L�qz�	�=}O(�]���	g�T��pN�5>�r�`��]�D�n�!	�%����i/��}]>�a�.��vl�P�p�R��e�O�����\z�}^�D�� ��9���ݙ�)B��IN��Z�Ab�����]4��$�</�D�ڼ��<ZDhu��\h�I����s� zO$*�g�
?����K+��}/��\~*�1���?G�(D�^���&N㩤{c]0�9Q�㒨�� � ����v
z���P�`ӑ6w�H)��y&�A�g��%�ys!m�Q�P|������4f�����&}rc�`V�z^��΀S�[����]���q	>�i-o���G�T5�V�&��i�6�K@���6M?���tX�:o�NW��_�r�c��ᖂ:ٻAꂶ<r��k%��P��M;J�i틯��vT;�� �	�6�َk�tG����-M�n�}L�{���~z	�i
�O%9�t!o�=��2��R���t�4����ƛ���a��M;�t
:Wl���=�e_��ܑ�J�VU�F�kC�,��+��vz�g�i�0���`��ן9����AP#��JuB��$M�舝��E��<$�=C,����9�)�����Z=�+�,��.��[AL�#��,�A��/0��1k��}�{���\Ӑ�)b�
B~�5Lrי���M9�7�Y�sZ�&l��B=���Z`u���[�2�>#+�
rb^;�y���5\$C!�]�';�A�� )��(c˸�h4��a�k&ʍ#������t��F�W���CE�^���|�+k���g�^)��eY��Az9w�@׃�Kt��Q���|gvН�'�ܨ'��5c�n�P$6�<�c�Cǘ��I�T��֌�2֗@�n�EN׀2���U�T$�p�[UVMVC�Z�d+mA�>EE���/0�d�n�r�d�������l�o״�6C��a�rad���E�n���uސ�{���D�(���IJtB�֢��ߤ�̆
��� nvp�����2�I��7p�Hk%yڿ���ï�O��X[z��C�K;&��}(.���rP`ʊe��:	z���"䤗&�TIj��K�vń`Z�\�mC;��7kh%%\/�iu
!�R���M�7�&��2C;'/��W�*@"�]��$���u��'���	��\���!E�V@�5h�T��ER�Y�Z��tC�����'�"a�5�2��7�s����M3'�qm�p�c�1
��h84h�ym�\�3U/!J3��Eb�^��lظ�ؖ�!S�T�S(`��� �@�F��g�4lS@t�%ѿ��j�u�ez�}(ɧ&��?-h�XiL����{ �1q���gٜ�3PM�E�����B+��yٕD����3^v
�AL�.P�^C�Fid|Nf9)�5[�y�H2�E�����A�#Wc.P`���eWl�}|+��&����[�o�FbN)�.�6C��A.���� �l�篡���"��#��Q,��<
Ε�!�Ե�Ħ���s��eh�z����q�<o��ӗ>F#J�n��ផ�,��6�|E��f"��½m\I�
�H1��ױ$�Ͻ�e��)�!�Ő�~z��PS]���FC=H�)���>�N��.���(�I-E�$	�k�/L��8P�V��P ]Q��Bd���9Q
��;@y����&�nɗõ��!��,;9���Y:��X�������d��TQ��F��^��A~���դ5����d�������F,Vv���#�F��:4����h�to�q,��gΠ_ѥ��U��b��z|�5�y��!q��ߛ��>���E"��uxļ�+�.�x��K������d�cX�={f��l�36�%�[��J��S�Ճw? ��#L=rz���/��+�Kٟ�H���i���6O���5�Wet�j�|�?�d��1ԉ�Sa�� Zg ������H��#��n�u:��p~v\�k#$șj0���O&R����g�7	C�p&���R��4��hI?��g�g�'��N��T�vZPi�Y�l�Z���cI����}���L�:	���X�5J9���l'
��u�c?��;6�H��#�q6��h���xt~&�X��dP�}I�.Vߑ�nu��aM��.���C]��:Z\]��E�ź�$�����K4W�slMA���炄u=�ٜ)�C�X�XR�H+_򥽹��.�^J.#�����のEqD��/�B{'
��^�n�O^�z�]͸w��c( � &���4��Ja�JNsu�t��<ױ%vZ)@�Of��ڮ����C�6-#����њ�����b�B�����㠒�t�����2l����B��բI �Q��V4����f�Jj��U�źHqg'�fN��XA�T�E�~À<����4����TS}`��I�Q���Ma���Q��d��؄&��@�\�@X��T��X��<PW
J�K��V�5I>��,9��N4R~��Ts�*�M�zWw�DP戂d�]�ܦS՝�r�f^"�V��Z?���J�,w��y$k\�4U�
�6�d�=��4ƚjg�u�m�⏓Z��d^[�|��|n[��~�hh:�N ���-�
s˪�B	�s�]�:S�2p:��Rw�08_��Y��J��.̼�R#�5��I��`�~�m���.nae]��#$.���k�$p11a�}0��u�ظ�SH�hb\_7�M\.��(25-��4XD��st�0)�2����™z��i�;X�kv�O�	v��;8#8͂�U>�{�U��Ęj�X�����cw�P`h�Tǫ�z�+I4p��Z�ĸ:��<ޚZ�: ) 㨦�™D#״ZȮ��m��U��0>��.�*��
eIC�~���е3_9��<�y����F��dI[d;��`�9�e�
~��@�tw�S~៓������<�ߒW���>�{���Ug�2�ޫ�߃�D�QY��D��~7<c�~e�H��ך�>���ʻ�'��ڨi�>S���;)�x-C4i���k�R�
��7U�7t�w��yA�1/��g\P���7ٜU���l�����$F�,��k~��L�բ#�Am��+�cɵn����u\ϖB4pl��3j�-gR�y��ށJ������J!�>��x
�m�uH��ЉI\'>���>��<[��X���Ad��9TGjW��L�#�{�~�jZ������*�s�3z��a��E��)��<����X���k���E��`�6�~;��f����:-�ʋXj�?q��p��(jG�3$O����Ub
��a~�YWG�t3d��#Z�z���&�柸z�κ!��׳��1A5#՜56ES�.� ��r�0*��LE���y��g��%u�<c$�<�b�ɻt����Y��L�J���|Va��?���Ȏ��,3�=�K�)Kq�s	�t�0/)�-M"�ֹ�#ř�^E
�k1��CrΎ��Nf�@��j��R���Ȱ8�5��O/����':����!�{��Vghp)��D����y42>�*C��ARE���A3�P��������z����>�e��-�jF�X�j�*�Z@���h��DWW�#�D�(��𰭕�A��ݨ�v-��-Q�I�0��#5B��N|;H��sվK7sN�B�a�8kk��aPj��VR����AF�!��*�\
5����U��/��~�$�#���8K�
4,'6�/���VT�m��`(�����OEn:�k2|�b���=$�A}(�H�@�*h%g]�|���|}	r�!	(u �t4��T�5|���{�
��*Cb�C�5r	8�!�mzc,���夎c�H4>L���L�e���K)�f
<8�ܷb���(��֮�t��N�絶��"'c�3
,:(rj7�t���:i�}��,M���d�J�>�M(;�=�')C�ԉ�9Z�Y]�sh��(9��o�s�E�m��JS$������i�c"�܅=-5�btZ��؀t����p<'̕$�Ч��
ڌ�vO`�LB�B爱y��s=h<H	j\F�{�|��,@[z-���O1sF����֕���F�|z/u��N��o���?�\�(��^�?�w?���g�����{�?u]N�*�y��<�?y��cr�� u[y���T�;Ԟ��%��"x�I�#�#r�'	����!�U���96�A�s�A���X�1$k�#�0bB�j�C'�}(��d�r2T�aO
�ʌ�����S�z�>'���e�q��ΰr*o�t��P@:t!!�y��*`b��D�����ƾ��2�Ɂ�Rey��=�2�G�d��.DO�@������2xJ�������
鄨NFo�nI�3r�$e����O�G5���v�
� �n�iL^F�����™.l����3�Ĺ��1�8ʲ�a���P�z���3\w@jE��Pn�x1�X�0�i����A�E��I�"Ȝd��R׸\t��!S$�|��+��C,�h�d>0�1�g��"m����"�0Y�*p.�`�9&�����y����^��unqJ�*�nd������$�g?-�гܶ�8wcl�au0��ߠ��]M�������}�@6�t�
V
*� #���|�k�^�}@;����j�>�/��z,�H�ViV`�$��؂
�Hs����8�ZY#f?=Ӂ|D�k�dt^:�Unl�@	�`qESyb��	���79ҟ(Z�g����G�f�l�H���/���3�}�ď�A������+�s*�X�m�E�������%���j�s�EU,k����,��*���JTH�X�?�D���X����+����$���/��%v��f�#Lf��2Q�ޢ��$-#P��k�qDŽ-T�������!6�C�:_~u&)y;�V�h�4G��Ψ�&᮴a�f�->׮=�/w�I�}�z��B���Wq�����F�T�C*�\5k`��v�E�N�:�H?�PT:ܾ_�HV�Xg��F�Y9�l�<�PO���+߻�%�=������y��q�q�t�0�ͬ[�S��
�d�X�F0�@1�`�$�m rm��p���B�
�g��y��FN<�C�0���Y�O�V�-7-��V[ݧ��˞�P@峥��}vF�V�̓?��h�haԠ~z�3�nU:��s�#�yDHEM��d�����sg�:pW:�a���g����t��{䩍e.�ʉ�x�g�f�tL����)�y4�QmqԢn��W��r`�=�,HAME����
7H��m�#t~�ןgj�N�,��9�g�n�}��U����8��L��(b���:S����(<������
��`��i�7�e�xĤ�v�p���@���G�݀`R�m��
�������4��mb��{��mBG��@�Y<#�b�>��P��Ye�!�V���h%�z��#��LfZ�͜-���Λ��%;c���T�,'ZL�n�Ѽ�]��q��z_���T3`'T�\�n�R�����yp0!o�,-�f��??�QGn�?��t���Q�t��+��m�e�ay�e�����Q���e��:y�C�x�&QV���w��~�^h�[@�n�����&��RCu��d�I�J�X�L��P�c,TI3�u���S!�����7y�Y���st�{gUi]�3}��1h�c(��WS�:��sf�,�,��*�Q���>���g���A�Xi	�֙A��ґ��|��+�f�X������T���N�cם�vÂ�a�`�{��'�xFS�V?Q�N?�2 `g�3Ń
<�j�
p���VQ<z8�r
C���,���.4��>���
Rs��s8�)UY�@m���g HM�������;��,��>��]������~I�+��'n�';]J^�5�
�~�9�uŷ�����N�G4y]
�6�9�n椎��!Ȇ�9��l�!��Y8��D}:�ɣ?�>�ԅ4j���W��j��R�F�����R�A��Ž@�s��JW%�yG�{�=T�]-�~2.F��k��K'
�1Jw�V�^l��#�v���/����@ �B��.����67�����r��	1�W�*¶�d�-*VYHM�0�,@�T�v�s�A�?V�ׅ�Ħ�x"��d7�3
A�X��,J���ߡ���<���F�x��
R�hG�?�.F+����2}Umn!WI�X��M��@�$0�ۧ�)P�!0�
��ů�B��s�y��(u�!ڙ�o�ݯ�)�Ϩ
/�d�Ӱ�J��y�0���p�}��+�v��9I����UI j�lK���bF��(��X�l�!��p�'��]1sv����5�>}Y��<����n�����Ҳ7��ŭ�����T�p�a20�ߙP��>�.�����N�H��MH�"g4�9� �^l��HH�J���:��Ҫ���b
�P
..�9���C戦աE�ðmb���|�j��;v��99"J�/B�\�6�f�%���	����ϲ�:19��#[�b(Rqt7�1R�H�Fzѕ��X�`ݫ!���cȉ�Unk��9��v�Wj>
{Wss$P#�����\���prBg��0�zڋ���|�pO0�:�@LQ,��{!7g�(���iR��vz���6��T�Ck�2��A�]�1�����5���D@ 
Tw�
R��@�<ϝo�׆|�vY��?R�җ��֑�������:{KKJE��&	��|��5� ��F��Vɂg���`�Vg�:�����'�9��@a?5�|�{OH]��X��|�0Â@0ɖ����u4�\F���Иl�p췾4q:��^�������� �R:)	^�j2'U�|I��8#�o�52ڹ:��4�H��>����`��;Gb��.�'�m��v�.pz�9T�5���jo�`H���u�h�̻�|�		����G�A�	3i���5��nt�Ȗ�<�3st����)^�ǻ��>[�V�Q�S�!��<*LB��j���bڭ�~6��*ֈu�/Dͮ]�F)4�#�����H�i6zW�)��q=�I�1�=��{���zzs�����u^;����]݁�Io��`��Y����N2{�I�ޛ�5�n+����l�o�\W�R���y>���o����z�{�|v֐o��	RS ���h@Z���]�+3i���Y2��vӭ����# O���
d�\!�Y ��)���&��s����S�m3�|���L���t���7σsr0?���ў�����r��?�^C�I��XM���g`������1��X���y�0y?�|�\�Zu�b���R��J��ן��������dlͼ����@��}=E���/*��fճ����J����bP:�(�@�#�n���\V�`!�M�jZ��Ўg6R4[sK�%(=1�	}b�ΈH�����D��N���@�=�>R�\��6jiN7(�P�yxO��yR8�I��X�g��䄃l�#f~�h�,�;&Ȫ���!�	���F
ϱ��-�i�����	-)��FGmG�5Ռ�Mȁ<Vy����rB"O�I�[$���6���a�3�z�8�#�|�RK5b��eӴOW�h�<�m����9pb�d�iU���$ۼyvgP��=,"���d�P�g֗^'K]��*)��2A�u�to<�-�6�7��7�̟
.y�$�6ZW߿��&|�Y��@Y�]	�l3�c�M�N�0$Q�8��^��
��'b#y��X ��ۂ��Aҥi7K����f@�hh�4�MD�� ���� ��nAl!��y��V^UO'@�m���O�*������g�9�5P�j�1=����H=��˒�#B¯���Y0�FNj]$8��slœ�V__�O)H�\mڼ]�@>��O9|:	�O5ۇNs���A#��Y.�5������Ě��ޞJ��Ɔɉ���9�7�kl�ڧs(����&�+qÿ݈���1�:ܫc8��䍙�����u�s���	�_�����!�<Ӿ����)��d�f����QMن��^�Y+�\~%�9y�D��7�T�Z���-�5}L��,u2\��=t�D,S�[�.w
䠏u����9�A�G��/U2�J��0�	Q��& ��k��c�cԓb�|��:H�]çb䈅WӺ ]�L	ՠW³d�B�M���F6�/�,����Dއ3��+�q,݈k��*���۹Od:�M��ڏ����k8,�;��� !��.Y��r�6�I>5
W��Q5���}�"{�v>p���o�f>!�u �S����@!s���l@�8;4�y����&R\��,gw���}�W�	�:�6�J��rVC���k��;�\��L1��b� 3�4�qa��@6'�����_��ٖ�����]�p@ΰ�8e9W�9)a\��ݤ�T��Κ=dn�����O����xq�,9������B��Q0��HO�3+YQI;�kw���GGKO�1e!�@u�*�ʖ&�n����9�U�M	�Z}'E�/?OrK⭱<JG4=�E�\e��c��Ţ��q�"%*tB�?HEt��u5"  _XF)(EDŽ0Ejm���-��g�*1��
_*�,�Ly�;8��2Pڙ��S�W��8Ʋ�G �g�|��PNK�������ΓN��kp�e�z)4�A�+X�X�'�=��+.-�*CF��@<Ν:���gϝ:T[�y0PW��@����E���"Ǖ��7Ms����j�������u���Xx�V����%�ڠ`���F�ⴍlՕ.�j��a�g�6ؽ	�z����rf�X#;4X�^E%���/ht�0��^Gg
��
9��!|�6�`еHu@�C[�<c ,�\)�0��eH��c�h�'�B�1���v	�<��f�(��kKe�/�;t�a ��E�t���1�n�E6V��L�����'{�g\����ǂ>܀S�N���+�YW���e����@o�m֡i�p�fJ�x�GW(�в�_��w�͢�@��`n1����xO����!����9�6�
�v�|?u�Fu{<��Lhƭ~~���3�.�.�����G
Cɔ댮��/U�4��>�5pX䇂��!���>�n��A���k��hXU�:G��paz���P<I:($kQDC��܋bl�l�2�v �ΔZ��-�\� �T@�E`Dp��߾A�_�?<c�x��$��5�L ~�~H�=>l����}�h���(��N[�oG�2B�~x$h�E�.#�m����v��^�e����C r�?!B���P��ä�&���Z<������mm�z�v�O_��p�
h�
�����ؽ��D����k&�|�L�Ejz�V��,���
��Կ�zX���
�׾©�{&T��M�w���VQ���Ÿc��t:�qV{_dk��b�^
Q��	x�� H�S~�^;��R��xh���
���`nڂM����.@DW�^�}l��-�>���r�N��M5�]r(B
|��ЊDҹJ� h��:����B����D��\FD-KA�w�(�#Aw�>wȞKu��x�1��'�F���.8B�\`�4�Wʤ�<HC�φ	�y#�l�9���-=���>��-���hd�HH)E
�-��:"�J�E���s,��?W;`�V,�r��!�7�.T�aS��4�r�dz���
�t�uf�(��ǰ�-fYsP07>��;�$�,.6�;�/Rf�+��H5��8ة��%o�t���`��s3fvgJ&ͻ�⫚��J�#�HS�DBap�ï��p���F,t�t~Xˮ8E�խY:HXi����F܂��+�]�9֩
��B�t��Ny�mk(ܓ�ܠ�!N�9�h�=�ݎ��
��c��/�z��s�J|�����3�!���D�N���w~�+Ms�/H��&��cOAnE'��(,�TH,'���M6�����
l�RD��	~�����mc+�9�5#G�rؤ��#����tvX���Q��uf�Uvω`�*��Ꚁ2R�b�A��3ǝ�׊����q��
E�9��CSf�kP'�������i�F	�0 �:W���%R�bL���羜���1���(\mG�T�6�|�ie���g>S��S���(6��ѹ�:�
wz�D�>H_�PzC����;ю�������*MQO[
�D;�����ffۂK�rD;�Q.L��|��$���� �ȴ*?���o4��"=Sm@�!G��u���̅�v����Ū�l\����d�F��9w@k#K��ɟ!6Z�C8G�j�4��N�ҌŜ���bT(�kW����'f�*sq�6��c�TWK{�KW��>��	U*��&1��ˁ�:@Y��W�1H�x�5*u�ੇ�I���zf�C�B���	L�ڤ��Wȁ��(��\�0��p=����z��N��ȶ���k��s_��ka���峱��qM�lc���p-�n���Vts�5M�x��~H)�j��>$�"jװ%}.�i"t��e.6з�D�Q�(]g�Co�/.��=��5��l5i���e�A")O��J͡ɋy(j�mF��}�<��'f��M|�;*��@c��\���;!��%K[��r��Ϥ���{�[���Bq�N0HL�"\I���~�[�ҕD�n�+I���N���:+�I�C��NR�l�#��>��P�=䂣�۔>�Ce���!���/,L�B�����?M����
��f�G#��+��~>�����B�r�����e��t_���=���$��Ȧ���.'�T/�f��u�mI��{ ��@����d.��h��H
�rŖ�\TSw4~��o`��`���2Ng��s8H}�c?+}Sh t���Y�=���٘Q�
ꮵ���
����N���.eX��{ep�h�3ݠ��~�&y�~�PSX̷��W���(#��Q���(���Pb!X(XP���knm���j��p�ϧ琀��A.	��=��(��P�3�U���	�,�.�e��9���$����G�۹�kfO:11�9��VF�}T�LH8�Ё�y�S� �E�(�9/K����fnA�����Y(6E;g�A\��j���nj.X$�M���F�@;4�ۘ���� �ġ�8)�'�y/�,�
���_�U��c�L/�O��1�����3`K;波�`E�3<�V�:�ʳ@��s��֒��|�}"�B�?"�<�s�N�)u�ħ��;��C����֙��#t?���(�t�H�4��2<�z�y=]�����}��d�BGCᨊ�W���H�̍a�dǶjDy�-p�&jQGj�Zh�IQ3hXq��n����MѴ�Y��Gp�,s6��h?\g���{�j��r���@�Q��#�,�Z-9RE���q=���q�'�::�5)/D�7A���ko9";���
qb��
�b0+�+ZR9t$��4iűNV*Ǡ����"T�g;�6P���:��Ft�+A0)�`�e`i����g��z�������:���FN�vW���?�:s\����Ϥ$�t#|�bAb��Ău�"�w��T'�V��egb4�p8��NBk�|
��S'�r.BB*�rp����׹��y���L����k.�|�r�;8�ch�p�ȅ
��`p�(��v����D�i�����[)Ioo!t�E���q���llUT�P�=�q �����/���@52b���0���gC/�J��[�E�=Xy��k�*r����5�3{�Fz
LDi�a�\)pR��ڙ�3�K����/)����U�UN������	�\ҧ�^���3Bg��%RS�Xej�%6��5@��Q�踦RBT4�Y���ԦANx�OL�;,�6gN�|p�CG��h�����d^<�R���x
o7U��9Y���.�j���x�'��8N�IQ�hφIZ�*-OkmO��,�(7�`��^��.�!��
$�O�gC��;��Y
���\[���"L�^�k�Qj�־�T]�F��g�-������н�HN�4ɣI���p[)�al$V9�k���ע!�������0�H�B��e��l8�A�:®�H�R��5����G��Gg_�P��g�3̭14T
&r
~���l��B�稦]U��\���c�Ƀ��;ƚ�T�ч&H�윭�ݬ
�l�x��<��R��G��p��E
d���X�Nc��U �Z��\���7�x�~����q���o�. ��t[�5C���$�����q��g� iث`��S�ڔG�/a�1�)���4�����Q��IЉ�zK;����*�G��a
ns����fz���Rw��ZsnG����&PfrA젘Í�&d�saXu���n�j8-�%_eru6'��	�j]Kz����[�,�1"�κ)�>w$�f�Z*�PlPl�	Gg��Y)8l}&@��:ƛ��YK�K~����{�L���{VΔu�M���@0����Q�m!㔎\���@Z�%�i�;Y��1b(Ls7�A�;W���pv0U:�R'�:c��x���g���$��D�t"�
$r����ai��
t����O����n�_���9,��|k1���Kmx���ل���J�,�Kf��3���&D�aǮneT�4As�:G�#:�Tϯ�`I<��ؖ:�����ƠuNfa�����#U
�pJu@�(�86�I�t^��z��R\&���f�!A��f�P.n�a7;ˮvb1���
�$�Λv�yXN.�́"׼��PX�MKY�2��9(�uC�'Uw׎Y���s:�܀��o:p��P���Q�� E7D�zH�MN�|Jg�m*7x��G���^*�V5s��� �,�I�T����(��&S0b��yP�y!���*À2���|�\Z=mg�-Εg��',u�;r�"[�z�-"&�j׋���+�HEO�|FV�0	�A�Pr�WJ�1��`��!�Η}� A��.��c�b�)�Ɔ��A�{�N��5ɿ�6G������+�ժ���Sݎ�`� uBI��T�)4�2�;<ך
�}���=>�0���n[;-��ܺ6�i��h���tS|.<��[��r,n�]ΦK��'@��D�~1���^3`�����N�4���J�I)X���?�@O8�j�|y���E�h�)��� �1�#&��2��䘾d9[D[��������^Ў���{�6V��ʟ���rA�u�[V���ό�@IC��B���w�}�ZKE�Q�>;&�1���b�﹞�ET#G�S��>�C�`�k{�~��?�u�~�Y�H)����j���(���M�{����x溻��U���ۓE5�/��z*�p@j��X�@i�"�`�?co�ޑJ�@���.օ��BUg�#�����6w�WH"D�E��!�R�Y�}�P�FDi��9�5M�?���Q�-�A��s���\��-��h
�D�<� �� ��������+u��sa"vO�u=��.",�� �$�b\Gu�;�a�҉�����S���0`��U1����n�P
޷����	&a��H6��!P)�i8���06��ʛ�ِ�f�.��z�iv�rR�5�
��Z�0k46�)L�oLd3��f0����9��18�u�P�Cʥ�E���;>5�����P&cg�z���.3���L(�ZPr@C�
�J��SU�-�z��O�ph�m�8����\��켟��?б�'

`
7
���T��!`=�,ռW�����h@2?ާwe�r������ɜOӟ�XubX��y�����
�R7M��ՐT�8�P��iK��
}�)��3�������/윘�ܲ(P^ׂ�ތ"�P��ժg4�CS'N���	wEm�B%"�"�
���I��
(VTN�R�(2�y��s�wW-tX������� ���!2�J=DcFz;�P�o�K���+��Pڵ־��9�d��v!����fe?�3�ˁ�&+W���k�PJ�s�D�rm�8��:�	�pR��Ey�k~Z�R����WȊkzᐹ�m�T�
�a����1NU3�t�&���\��t����UD5i�C.�h�ș+�q�E����t>h!��v�0�]��
R;=BK];Ӝ��v��$�M[0�#B�Qjd��_ '�������~�o\:
�<��5�g	Q"�]]���}}����ZnF_�
��l����S�:r'��ڛp�l
�McX-)��Y�ۇ��t���l�DQ�>�.�dvg�V]�
�}^�s�i\��u�9��*��}X3Խ�}��.��������q�'������3�ڒ/@q1�d�E���~���Uz����>*�%/��PO>d��?�Y����n>z���,�սE�ʉs�_�&W����&ѧ{��'!����"B�Z��Pt��g��� Hj�L��ɲ��.�)4���
P� �e�5�X��ζ_W]���f�B�S��-⩠��p�H�G6�~?���=8�Ǻ��<��xb�@��Fԅ��]�88wg:Q0	�5��j:��vδl0D~���I��(\��y�q<���A��3
��:#�"�~���nmT#h'S0��}q&I�?������<���!�'dL�~�tE���2|�ʗ��.�C,�H����o�v�#�Ӄ���d�`��Q����:����*�� Pn���j*���2g�`bM��{K�(_+Wf'���P�*)�_��l�C6]e�L-��#��īZ����8��Ljl��cE��
*0b"����hk�д2�mr� �����N��r!n6���"���p�c"TA3�(�\�u���3D����A<c�:�H�N�آb��S�֭R��U�.�T�T7�������P1��rE�v�zW�Z�GLvh��!y;�KJ}VJ���Xܻ���Xo�^���H�k�@��BV�*J��a����.0
 �

�H��][��)���i$��vˎ:-:���`;��f�I�;��Q&��hP��6���3�7b��M�3�M���F�>�lP�~�:�2h��J3>�!eĆPdx�"�~�˧�!��J���k�R�6}?�Y�b�7�\b��c-�C�����g��k���Qe���B�b���~c=����bÊ�w
���Iԍy8	�q���*B�n=���n�Lk�#��x�2t���(k-Р���L�@����2
T�dY���NoT���Z5W�\�Z1�;��1�*c����Jb��[�o���0����g�Tೲs�L��)|� ���QT���Lw�<$��YhɸBe@WV��0l�@�c������r����~"V��c����:p�;é�C��Є�FҀ�t�P��������t"́c��L��
6&P�81�X�������PPCd�7��V�
�)"&+����dy0-�(���((��H. ��~"��lDT�f�Xٓ�Lb�`�=�+-DD:.�@�=`� ��\����"T?>�"m9��$xp6E��n�?+�f�E��|9��ϵ({*C$�i��+&��W�z�ĸ�
A���}�i�'}��p��9�5�ѭ�4)��{�/$��y*�	������9a���!.6�(^W�{G;�rRϗ�K��UN�hQn�K���9��1�2���<��h����+�|>��丹	q����ݛ���3@�
�&�jxX�Pw�t`so��v��X��c��	G�}���ۜ�:UpPW_`����r�n/���������O'�� �Z�P��tH��t�gnwCc�r-~H�r{�n���A�.��P�}:a��K�� u�rÅ"d�� 2��,��>#gG(��\P�jS��&�����׹�!��0�L�M�eE���C�g+�}����w�*��$�R���`���5>l.��	�J���;@���H����Jg�7�g�8@���-�<?,s�/�t�}=8�R$:��SQ���dW�\}�9�kb ��`�.�!��[Tl}$(Tg U��i+�@��h�zOg���5@�7�a�͞@�&�)�{.
4�"-Q��s��v4�����(<,�R?�]�Y0�D"��X����q�\r���)�X�<@��/}I}��!	m��Hng�a�,����8d.\�D��Wha�su��v����
�ʨ��&i�T!�̉��8�1��	I�D��&�\��+y�B!��Z�c����Z:SO�9� ��6�k������RY! �Q[-��)Ct��!N�<n�'��q�yw�gUj4�B��I��`P��DP����FA �V�$,�F�`9���s�N1��DdV�r�-�*;�c���}�����#>j|fW�������sO�Y*KA�9-͕��xg��f��ܞ�{ٷ�
W_�&���|\�kT*&$�g�% �
�w�s��z��H��\4��"�h(1�M$	�I���~��ֿ[0�F��O�����X���P�)��va�dC�iiW�Z���l�	N|[1C;H�z����7l�+�#�/'��N��O��M��%9@��II�}����cA��N!��Μ����K)xT�Z!1�1�T#�I�1�[��8:C�}AY��"�/-,��`��PY>����c�1��#Z���<(-�q,��,���% [�9�v�R��༲�K�j��)��^�����d�h����3m�Ѣ����`�$�@!I�9���Z�ӊI-,�`�C�'�S�S����@56�3W�IeY&�u�):�3(�9 �ID~�9�z��g+���R�@��#3'D\l���^e�γ�@�t�x�	��j��@���� c�:��!M�����~���'׺un��:���3�M	R���^�"�鹓NjNMM�vR�w�gU>s՛����B),hai�h!�V��$���I��Ծ�ԟ)dh٨M����4O���=���U�s@Sf&��u8�H�ڒ��, �}�~d�|.�J���(`�a{��F�g%,�p�hVN�6y�iC���Bn�D�v�F+Y=#��U��� Z�:�`�$[D�e!���EY.m�$g�N�8!w����[|L�DkۍTXo-�K��ʕo�7�0FK�*���c�l�Z�	d,���2��V�K��yb�t~��.-�K��mA�P��=��띙���K�
5��5,:��+u0�q��]���O�0� @ן��hv�JM�CwA�Z~o1��<R��@�O���������*��>H�����k�,m�CHL�s�}Ҡ��}(b�,br:=�C���]���d@�^@c,�]M�)�\0C�h�/$��۵��h���	�G,��A�80AJZ �g
DY>�-5dC�%��޴��4��ђ��i�/rC�"�EW�w�_v����5�@"�-���]M1j}�V�&�mb�|�#�w�-��U�X;�h���.��>lr�W�Uw�<��լ*Tӏ�y_���hϖ4��	?
g>����*��F)��Fkg�	��1�tP�t
@�P�m��p(@��߻et��8��_3W���-��sȵ5�C8B	*$����-J�|�eLD�Y����#X���g��ы@�U�?�K�!ي3hSΨG6�]�|p��q}'t���f�9K;�
�·�5OY�d����J�>��Dp���8<�G�H}5Z��/��"����ݻ���k�<��(�ܜ;$�8Zֳջ:K��9�s䠲�2<~��5�G;����sa��K^)b<y"�y0�Жs;�
��ϼ�R�Ma���Үe�P�I
5��i�T�z�3s��
*�sEBv(|�d8׈_��=�΄����-;��t� ��0���y�'=��c0Ŧ�sQ������+�-ׅ@Ni�CM�jp�bP��X}�>�v��X#Ĺ��Ѡ��dX��y	�@����W�a۹~�#�5-��)T'm�S����BTY�9��q���a��:�t+)e�O�(d�&~6P����pD)����'j��ci=]Wl�����w�s��K�ܞ������\s�c�W����<��G꠪PqgP<��]Y>&t�V�|��9�g����^�-Y�\t{E���_�_U 5pEi���f3��k.��������b-�s�C�V�p��Ad��NN0K�kĦ"���VHx=_;)�Q[E°c����m[�$ЙE�T��:#|n��!��LG�La�Q=�y.�%S(#^"!�"�7r�G�B��	wG��*�~'�,�T�*�c�\]�fZ�x�Os���y�WKP䬊�'�lZ@0�*�)�i���X�J��{H���|��P=��B�<�:ۮeڃ}��Y��JgQ��6R�E���]c���U��J�~v��7�Tu�7��o�
S�㢉��$��΁\��@	3�"ײt��ά�8۽�a<��;*1�%0a���r��44�O�jZ�Xv4(o=�_B�� �:8̝�٧?�q���ל��v
}�>�����F�-?�2����j�`?��� �d�ի���;�$+��dx����b�D���i�D��s��2H��^�}�»n]�[��4y��d�Xeo��,��u�
�Q��{sM��?ߣ}��#�ۧ�m�I���6��z�����F~��:ٰ{��bq��!�މ�Ўe�	A��@��ƺ.�"���.\���O�c�"3<\�s�����-2a��֒&b�/�Z����8�� ���Ӊ�����م9�����S��kѽd����u�G�{�څ�#��[��W?�rXP/��G��l��󒬅��m�ϓ	y��$H똑FRm��m,E��)ϙ����2�Q���
��H�S��+|������M�4�[��6���AO<b��3$���B��������p�
��}"����DW	ϭ|�ۨ��������8�K��v'����?)jQ晔a�1���P�'VT����pn�}�m��k�>Ϊ�ND���O}�Зy�Pm�v���CZ�pPu��� w�*�;N����v�����\�����?��d��(���J}���?EN:
�<�e�L�L�&-�����n���"o(��d�K&l1z��r��LJ]��O<K� )�H9���Ͼ�k! �d��
��L�n�%�S�k���AN:lV��w�\�kyt�gTP�ٟ�Z�
��Q���(|�2��Ne�����T�L�"8�NdhNr\4z_Jbƍ�}�9��2	~�X@��`<O��	��xWc$E~�FK;��_�7���,w�^��=leAàeK9"P'��P���<�X�E��j�(8�D���3����q_o�8������2��☫�q�pc�*��P�Ci!�, qI%ν�=�}�������h�f��\Z�-	�k���K�
uO|'zJ�v���2��<p"���Dk���D�ֈlTe��-%z
!��F����ȯ�p_���{k��+�26�V��w�q�~��\~yx��l��2Tk��ATj&W����>	�se�c����s}f����5!KRǾy���򐾱�sQ���ջ�@�-��S1}e�����e+����{����k�7�h��zu��_�GP4����{�>����ٰ���K�;!�>~iau�\ZN���J��}SX�5u�V�7͉xOKSH?ۛk����^��70rգj~�8�Ƀ�A�E���.��I�����Z�|�BNu�����������G}Uڽ�'�"߃��~V�����U����K��� 9Q���H?	��8P�
@������K�H��Z�y�'�����:7:�s�K���)���ăYw�t�׷�S#�o�F}�@�����g�_���>�O\m��=; ��Z6T}�5��H����@�� �~��cr��v +,�v~�z���U���"�U�^�E��]Ǚ��<��F� 6�
��6�~�w������m���Q��k�3�J��g�ףa���{�ϵ&�}Zm�?D���_��״� �]�ށ�:j�����̞�������@�����H�"C�E��R�=�!P
��:�?��}қ��Lyl���9u�e�ߛǞ�L[�nYƳ���r� \�P�	ִ����8o{'WC�t�p�7��/i2��	��\��
3:�5�cIb�H�`}�G�D�2(q�	�<[j$]L���	�u�����'kϼ�u|����ƕB2܋g���Ja�q�`\"����H��[vJ�%wk�
���y+iR6�j�1�Z�@ҿv_����'Xm��گ��υ���!�z�hǼ����2,�;`�x���:�Ԩ��zd���x��H�(�
$�Ɖ���Zb �O���:�nzUW�so�Y�ѱ�d���ì��,�zk�)���l��ubuk���s�㦕}�K��ؚ�����"�26[&�Y_fC[Toʀ#g���ƪ�:u0�"q��jm�Y;}�A�,e���G�l��F��h}\T�jco����>k�0��/z��1��x?ϖI���h���>�BelFȹ�
E�%�m�
��Lp��+$)
��7�[wL�RCp]E#�6U|/Lx׬�I��k�&����0Fmǂ����\�Xz�P��B��
�
�'K��p�5���׸7w(�9�j���]��U��D�ך�)m��H��X�*1��]TE}�|޳od"�v���z3��D�q���j�{š�(��U%Nl�T�W�g<�u����{b1����y���sB�l|��Gn!e��w9�s�&�|�����bW0a��ϷB���I��F%�M<�=lݯ�gE�Yh�?|�K����x�auq�a�j$��U�%R���Cd}��q��N��������+p�����ji�ɥg|f�Q%���vo6x%�g*��^�:.oE���M��BM{�^���LQ�	��l�@'M�YN�+�Wu�����3꬙ݛ��]^4u���_�G��yr_�l("SY�l
B�$�@���њ�k�[z�+��W��r-(2�A?W����&��BUiC;`��5K$�
�	��>���e�#�)ڐ�����'��c�Շ�@���^�|m��	�`�1yG��{H�$�ARħ�v9��R�+���}�ݯ����L������Z�Q�)��-X�
%��@�[RCS$�g-���:�ūmou�Z��wE���Z�~dg�xMS��3e�E�"��u'��2nX��i7�{�[���VQL����-�r-_SM{����qv1u�Q�l2Z�l5��RF�T>X���ٔ�D��Bж���F�)��1vO2^GI(�N�*��N�LX��&�A��:d�������Q&��eNR�4�p��"�V�p�2L�$7�;�;_^�EnA�!Ѿ���$xODb����'���$�nΰ\g�i�D��Ir�r.ÆL�W�Z����L�N� ���'
Ő�Ȭƴf�]���4N�����)g�����9������
#k"H
d�l/
}ň$��&�5�$�,������ώO��5쬖�/Ig�v��aSY�"T�7�@�}��Tq?n��r�A;�o��l�%il?�F�&�D@�g�(�]���vY�X�]߮�R������ZI˂��Q��쫟C3��0O�c�n�*��b(B~�l�R9*����>�	�ٺ��*Yb�u�mX�T��{M�������.�K��
 ��E�Ȱ�<���q`q�t��
͢j��K��ܯ�=z=�Y��>ً�ښ5Gy}s.�@Y�J� �6��>�jEk�súw`�P�c7o6��ǔb�����F5BM��F�@�i"� �"�y����`�*�w�QL��Ҟ<��xM�����u�+��|���E����19��Q-��	��I�}��	����,ö����zeoE��1�N�u����Q�`z�<�����eX89�ԛf�C�ݲ�	�U�����-�l��`��	ME�|+�� '�W��W�ai�}���=��u�o�woe(�6k����F�ޙ�w;NC�TB��X�
��ߖѠ�kT���6�/�"�">���bn�E�`��Ec~B9)����F%�iH�w�*C)����]ɶ�Q��׶�xvњ�*�3`��փ��D$�����ΥN��f�\/�M�����|X�N<y��z�[
0����5S�r��2�!jֶnnI���瓬��3��%��i/Xƺ�%a�����\�\$�UG
�#)^ys���mR>t�r��~�rE_,�:�����:&J�e(��ϸm-Dy�ɛxOS>��?$ly���a�&bfa�IE��)J��׶�W��\_f1D�d���V{��,NΔ��I����g����R���Q�[彪���\	I��K!ެ�苟k���W
�
�����,	d]��l�g��j��w�G��3�5X}�1p�Z8'$zAon2��9n^+l]���lU�ux�
i��݆������^w�`3���;��\�%�U&B�@Ц`����'U��	W�ϰ%��?sZ�8&��.	��5I�,�ŸA�cNE��u
���^5�Y{��x�6�^[X���Kv[5���g<�L�">���j���D�!dٱ��z��dz�zK��E�=A�ZH.%a�8�n;�H�C�Nr�(�R)�p<;��6,��t<&f8�؄\��kP�M"����^��m�|�Q
�<��9�	[��<PS-tx�����eXx����Q�Ι�7.~�J��xԿ�I��<�K;��=�'�+nM
��瞛ߤ���Xd�ͤ�1����AX��FGi�B-)ï�X�і�J)��׼}Q�)Rq�;ݞI"���Wvۛ���ƛ�-�N� �����תj:
uKzӬ1fɣ�6��������Z?h4)�e��9@���Ր%r��r%�����6��s�V�A���4�gY��tEa�����q�{��]F�*P����~���}u�Ӻ�m�;��=�8����kk`��®� �D�M>��W��&�5>o��U���i��|�=�x]QO_}���]�Q׵��G��S?$�L���-��M�8XZ����I��q�X����՝��aG�g햲
�h9$�oI���ŭ�܆驎+c�>����m�@����u��~�Rk�O|��!�pLj���J�kV�8Q�=J�o��Z���T�_t���݋����~ݧ���>=�W1����
@�
���n�T~�WV���ҾO���F�p��go�HnKQ�j��c��l��u�:�v��_A.\IJ��������a����$N#���l�m4D~-î�n#�����h�h���<�8-�I셥"��tX�c왏{���w<~�����c���uĂgz�X�s�}O�n�h?į��i�d�F�����|��:6�����x�냮 okqK��?}POT�E?V;��|��A=d�����YP�!©����v�j@�,�.6��f�7��75ؖ��T�3K-�T{�%��z�[�^M������ׇ�w�դ�wv��?�2�3k�gƊ�=���%q��&�"�G��gL���4"�i��}�mB^&{�9�֫l��iÞk�=�OnzV��:H�n{�^"a|or�џؙ�@v;�n�2��&v��vD�ek��
c�K�u��zhA6���ښ� �}M���&�:�����E$��Y�.�t���)�X�R9H�ZSO&�;_~Y�@��6��{6M"I����:�'Jb�{���ôz]��}/�:��3�*����E���yp;�;j� j_��]�y`��E�@,�r'SQ^O��x��o�3on�
Q33i�\�X;��w�ן�eԔ�Z��/�E�9E�z���>��W����KP�!`xEfܣ��Q��L�^R��\xP;�+
�,�c����v�dus���b�F%�ú����RDŽ��Z�5ގ\�'�3JdL9��)|��%	�L�9��7�|N�<�%��F�amRl��	HF*���~�^�pR����� 0��='�D�,{�.��_��=[��_�z��&�d��[“���`>���Z޳{���G�G��7��q[ ��ga7��գX�'���-��l�p#hS�� �PRt�%X��QJ��҉
\I�
V�j
w��`oi
�4�ka�(�]�����Z��E��H�l�H�/u����,��t+<��{Q$d̒Իy��H���,	@���w��ϖ��Qn͖1e2R�=1Ʌ�#�`a����-��c��Tq�'�#}�u�����`��aM6FΊ�ƭ�-X&�c���Jj�\���jb�/)D��*���K/��-�),E4�K<k9هP�v��dD/��g�_'���	*��,�~���f�Xq
�!*��' ����5^;�=��M��+���B����Ӂ���Dܚ��CX��&=��4�:�a����l���e����B�"��A���oO�ZE����RA>�ʽLr�.7�GP�F��7�xu��>�Nྻ%�����AAWVo�Wn�\�}m��+Fn�u�d�v0�g��%Z�K<���
��
�z�<飳	\/i��ȋ��ԇ���k�i�l
^�i�>r��gMVK>m�x~?kR2i����@����'���&I��|AA�G�S������N��u�K
��hݱ&;��X����凎ֿ"���@x��O"IR����?�%u���1��/h����U#8!2� �է�|{��??O�N�m�0. uo���n�����־�]�r�t{������F�T5�o�$�|�;U�2�A�A$���m3���ok��c�|O��h�����	�������,0|2�'�*ޝ���Km�h��?��LC��=�B�3�m��?,�(��u�XY����Im��[��8�5ը�znJO��^������g��ks��K̯xE,.i��g}I5��Y�2'�T��
��NH��e-�׽�M�vg/յ�\ӆ�P�'�����@���B�5����	�>!�~��G�S�xljGz��?�F��@�e���p�`��u¥��cbvS�h����h+�|Mj�:q�%���v�R�����ڻ�kTB�ZS��>^jG�=�Fgt�xO�ks����W��~)�ˇ�>=��c�k�r됫c�r��}=`	���9Ѯ��t�cU�z�i���g�:{�2�
Нa�V�}�$�Xx�;<��s�T5�����%�L|j���
=�gr2hh�K�BR�VY
q�.�
5$��0߁M�m���]n�_N���3��� �;	aG+�WӮ���ފ��`�6d��j/x7R�|��!V����-��wvb���5��G"��fѱ�J�v8+hzo;6��}��7�;�'�BW�v��M�ř�����|��'���O��f�2��!�l��8uP����"�_��1�Z�C�{P�M�MT��͎'�ɑ7d(�:X�ė˃������A��V�r�l/����5����2�ϛ7�8H*6���Te��"}q�F�N�D*(c-h�Ѥ��5���Ί�C��G�����ۃ�z�^S�����4�C�k��=_F��~;#�X
I2IV3�~�I���[*�lKVM>�6f�J�k��Po���J*��$�����sgVL��X|��2�C�a�sb�Ò�����Yu���������d�XxjV�I">&�MP1@y����e_o���*����=�E�d�w�/�ƞܧ
tJ�B��w�,�\�Ok?�KT?�)�Z�~o$��w�0��q�^*^�D�^�w�+���엤���D=Ρ7�U��\�r���8�ȳ�{���'o.�s�P�S~�o�@H�ȧ��x\����xw�"X����;B��x<���s����
�Y�x���a/@[;�=K�fQmw����G�Ѭ6&�¯<��X�u�����K��X^�B����2x4��{��=c鹾O���g��3>U|�ӝi�s'	#���g�u&@���gm�샩�����j;�o*s��3�F�%6B���K���sg�=3�I���[S@���ًv����=�-!EŤUx����8;��F�F�y���6�v��ԟ��*��٨�j�N�'��/����4�A�z_������������s���2���Ή�4�,;e�3�FOK��L�e-�#�v<gLzQW�<������⤀��ɮ�vB̎���5�hw9P�o��e��b�@�Q�.q*�Ϭ�/����9��@�R��U�;��[⮼�c�ߡ�L!ֆ�e�c&�Z<�J�f:�w����$�<LK�f"O�Iڗ�P��>���$�O(uK��{����Y�S�L^��]F�k��d�E+�%ن��߆}] 6��kOن���^�$x��e�_� �F�:�'�D:9�1Lb��BFK���)���0���l�0�!9:��� ��^I���v<�h�4�B�0�l�t/G1q��ʙ:S��
�0�B`H��3K��s�qQg���<Tbp�k# ^�p���0L;i�&��(S��\�B����	�O��k�{	�-�vR7뜸Z��6�5���N~���I4q��o��٫BN������H%ߝ1�y�MbΗh�5�mPE(hd�`٠	�D|�;@��j	�1Xd�M+:�L	J��u�g�i��HOS�d�Oey8��kn���RW�/�;Ԛ����F��J5��y��h�ؒ�s���Ł��t‚���N
�?��q�G�W�^���M�!��fK^o!d�w�ײ����P(�/%�1��VA�\^��l��^ܝh����u���V�M}�����ރ���[�.IE[R3���Q<����
Ԙ5�Pw�?�ݽ��
��W�&��ܠ�B�径,��f~�O�p���;މڊ��R��&��ʂDZ��A�P
:#���x����f:L�@寓pj�De����7�[��k#�|�_R���=���j��;@�+�
�O��SaW��8���[W|+��RA��ˇ�|����e�P��Ǿ�,��;��R#�T�>�LulI�h��T���(V/6T?�k�!r6r[�@G��5lnqm`���a�[pV5�=��������b���;Q���r��bt���x�[�J־'���O2U��`S'E��VAF%#�@*w�wN.� _U��}�]�O�U����x�WL'��;
[��MT�5	�N��_�bB��q�V^����:��K���������/�pJ������8�N��lw�鰈,a*&3%����3��~��3�k��kzo���g�D���k7K��j�5���O9��C���Lx� ~�Sn)G{-�&r�����W���Z:���X�k:j��T[/ٮs��>ݒ��b1'l�� �/
�|_�
��O�=�Wu��V�� �Di�#�a?�Yeدy_��:+l���s�d���C�$N[���!�[4��dN%0�5M.Kv�nu;�I�︀�c���x��>}��ݎ>�A�	�)qb�n�f4�Eۙޅ8��u��o���a�F�2Ɛψ���#ٰ�a^ŢQ4��uN �N,��/+�e�������C��mNS+%g~w��c�Y�g����Z�AH�Q���>Q�W؏�������}M�k$���g��6���zq�L�uЌ ���K�S��D��	xW�o龮��n�t��ެS9I`�z���Mb��}�lX�>�N�.������mP���w�gˢ���;x~ؾ�L�Oփ�ܓ5�+{��^t�3~�@�S��#c��Oi�v�4���)|���.��
t��y;=ߨ@Dmc=��t��N~�;ص���{7���/�[
_��nC�
��d3}�������^Jl��hh�Ǫ�<^�������"ݢ2>o�<Lʉ�è����Fѓ�/����"�ۺ����7��Iz��O�\����E��#�ᇚ2ێq��������x<��>��c�CϗYI���a��Yg�K${6��7�5Z�~�F�f;�C�L3̱,M����p���K
�<�.=д�n�;M����aB��Oj��Y�P->�$�S(�״ole���p �K���
�D���Z᪑�Y'
P�'yӺ% �dY$�?��}o�*�n�-/��V�d��6o�Y{{��i�ʐQ�3�Dk9����ԣe��D�$�;P�5]O���!��O	<�o��r���n������7� ~���Po�)�k��=P[0.�!���j�o�,���)�2�T9\~A ��Vu�>�|[��{yl���3���'��Cs3x���i���f
��;|~q��#��,�����g��8z6�˰����|�+l�6;z@{��j�[&Rm��~���9s�$����o(,	::Qs�x���߀�~ߓ��WR-�1�����z�陿i�c��u�r�q��,�[���->���y�Z����/����|m�΃���e��T]��?n�5���Fx��,��s_KT��$���g�8,��M!}?<�|#�@xf1��u�� PX�S��'��>�3�*���.c=����'�e��dx���u���q߾�| �ki�X'�T�kr`��ʛ��p�G��O��]Z��f����l�/�w[!'@J�}��e�fa�snB!0�֍
��i<`�E�T�M"x~�i���	��g��{��u�{���;��"���5�w~ �e��["��E�/Gz�5,j�����OǾ���
6B2��2lo��g� �b:��W|A����x��/�.2��q�v�4�t����e��=�yߡQ�@"�)�(.���G
�%��beO9s%��z6�kB��{�ov
j�+T��u�p�F�Pr�>�>`o���gs[}*�͕�����;Chg������=�Hu��{��@bx��V����ZAlY�m
k��>��)��Y`�pS^����|�‹E��l˨
\��4�1�;�j}�wp�P��Dn(��~<��_u��	��.�����7�Ϩ ʘz��s�jG��u��G����}�Z��];�h����AD�����9��n�}�:,b�{d� X��%2��E-��>���u�[�:ζ\igP2,S���5	Ped�fk��>}}�gA)��@\�J�?��=�ꋜ�ֳ��v Ր����x!���+;�w)C��ާBpz�Q<#B����1��}�ɵ�f�L�$&~ꩦ��Ϟ�}�3��;�h�r�����eu��������Rig±��Yt^%�2u����NV���	s��Y7?Tĝ�"�i��nK�w�}I�A��˶3�5o X*�}�z�����C�
����5:A��1�e���#W��w���O��|��ҍ��T�%��1�I���`;~��n�Ml�1Bơд�П2|�E���`]�?��Dm��W�h:)��σ�~j�q-����HE�87����Ѓq�h�Q����ϕԮP���C���y����o'�рLW*y��a�1�&h3Rҽ���:�%����=NAp��!O�	d��f6-G4���Y����X��u�&���X]��M^Q���O�Y����?S�=�D%�O=�$�j+��<ғ��B����*%�"\�N��Z�I�Rf\��1�����&2��m�����H��
�D.�c|���x��w�K�W��g�@Eӂ��4@@{/�8���
�v�vM@^�^5ڑ�s[��s��YmW%���Z���f��֗4�����T8˱�:�N�d*
�ZT�.'�Yl'*x'!���L��k�jǽ�`߰$���T��X&��^��TΟ��z�KsH���5��6�w�J~�:'r
�j>r�d
P`��jj����tUK����De�G�N6���>��t&P�IF'o��tB(�ΧyR��Cog*>��ې�!v�
�&{:р�
��"q�IS0_������8ʹٹmTq>�H�Lv����uO�������{s�u�O�^$zlߑ�P�'90�*F�(�܄����qOD�h�#�"�wrb�i�w�~����*I�d+H�2Z���ڶ�_s�h�aݾ'Q�$qʤנ)x����^qѸ�o�Ax����3Li�h۶)��)��B2+����K�RɓI��h��;�n�֡�eo��I�`2�sd𹞅�p
�%7I�l;5;�I-N��a�!��R��MM�Q�D�"�
l>��zI~������V�|�w�`�[/�4Kk��)'/�13r�=붗-�f��Bp>�]�P��6�ӯ�q�2�5��y��Hј%�B|�G��Sۋl���1�kV��4������N�|_��p�y1���N�h���� ��vX�3GF�x7�$��S80�t��%�:�]�s�l�isn�b�gIV�O�a�ei���k
�l;xN2�p���x�/H�Wߛ�_�(�4y�-BΑ��"޽�
��Uv�8*Y�$�Ԡ��E�\d469�F��LF��|a	|6��1�!YFO����K�4W���y�BBG����������2<��dXs�A&���I$>vY�is�}曟�}�z��X���b��x�U-�$l"9?@QDΨ��
%�1� �1c�$�������}}��fh�%J�{C��D�*��1d��q�!���P����»���Q���n���ޔ�]K����")L��ܻ��E��ՕS6�>ýɇb�8M���J��ص������5����
�K3�]We��tU��>�@�Ub����I�f�U�\��ݛ���\7�~��/q�am�eij��Ll��e��O��_e4�s���M9���/�Po	���|��iΧ�0ʑm�8���lo
��e�T9�u�rAcU%xo�_Q��#x�R��Q@^u���?���2	���g�"�*�=�DB	B��k�P��JV�q�XV���P�R��>Qw�-�������4�{0$M��^�B�����s���&�n��҆�}F�8��hm�O�;37������^'G>c��/Pu�h���I2<}�u���P����N����x�4K�v���G�X{�1Y5�ݐ(�}�n�ǒ��a��d�2T��m���͎6+a]���K��?md&�Fc����<�;��s��k{=]�Ý8��^��Z�H�v���i�ӧ2кK��	^�mN���B��Q�0�e����z�@��x�#�i�o+:�@M��k9_`cre�e�����Z�0�nx��A�wÔ�D��0ŋ{]!pr��kI�W"���TLxV�/%��Т(��*C}�����Q�-X�=4[	�=Udn�����'��{�f"	��u
q�;�7K�u
��+Y����w����}����p����0��4��uR���I#9�,���pB�w�}��;p�<,��nD��:�zF��i�׌���̽����v�	�&|L8v!(zL?������^.�1'�
��l~��(�+�=uB��=���ƌ�=���(�g�3�E�ìITXR�㌼s|k�h�N�hX�3�+�a)�	��y�=DY��s�p�B�?Q�(��+�%��2�:f�����I�۴���c��$�&�K��9]&"Հ	��lq���s!cGm�1<�cv;rmZ[�#�/(�)��j�3��G��cg=Il:S]���A,)	�Q{��}l~Z�E�sſ�U��d[��-��Ɠ�Z���&�z�=���ӣ���@!�����-�n��'R�sheEWZ]��f9�4,X0r�]��,F�_�����[�o�o(R��]aH�]�@�K�*�_�U�:6Ũl�1�B��Z�!��������?���d����(j{�m����{�gG>�@}ޗ�2�)=ɧ�(��
��n�i������n�u�����)���8%��ʙ��ı9����������w{dOm�Td�4� ��z�0j�v&-`���੻�;�
ڸ�����y���g��F(�I�F�TF�V����0'vʂd���}fI�l���;�T~�'[d\�����[��s�4Es��{�qč�$5�7+��p���,B���	�[{gR�D0����K���uLO4���F6}+c�}�hevod��VT�KS��ƭe(���o�;�9����ꗟ�+T]ԑ�㡜>���yX�����߹4`��s�S����ʸ�v�>}i�����mPV���۞�e{��/}i�S����u#������T���t��G�,��v�T�E�o��<1�w~Anͥ�w4�+^Ϟ>km������O�76�3iOນ��ⱉq�ד���]-�O��Vk��z�^�)��v�4���
��U�`9'�D����/~L<��~�d�%�� '��ϧ�'���8�߾�mz\A��c~�;g��io�n_������=��T���sB�����@9��I�jZ�8�ٰ)�6l�9� �-��r��4wiPGlΖ�%!�L����I�:Q��I6�L��n������R��Y���h�<�I���:��|��8�~ڨ3�F��H���SDW"�C
��]߱O;Y�f��B�p���(�N������u���DUcV�L�e��o��
�* \��6�(^�mI���J�6H�$��:NVh�{x��=o�5:��F�*���b�)X�#�����K�����`.=�mb
RO�ŃW~
�Ib
���T�¼b�4	n-��<ڡ�x��Zn���O�*����]�E05�8���l�{�-z�=.�3J�7|^{S�sE�
�Dw.���J��u�����ٕ�'�S�Uc�Ѫ�)
�(P`�_�s-e�NHId��cG���9}�le�͞�
�t��O�H�B6f��5Z���duk������!�X������~n����k^h�D��c]�WO���
�<�K�lv�����ֲ+n
W�X�\�mR9��t��:p�\<�|���/����/�a�/)Aџ�I���H����V����a03�EٵA5Η�p�+ԿES�t���FJ�6<����r�����T�����l��:���M{��+�^')&�,LQb�LP���}��Aw�)喤�W�N��>eP�Dg��P	8Xi��62g$��6�p�ہo���'M
@�l����F/�[G�ګ���Kp�Z�z<�������8���6�=ޫ�������%�i�F5�M72�+i�VK;�q��W�ʿ��^.�
�7>6P�n��k��9a�!]S��x�A�T�Lp���f��`KRb�ĵ�e4�~c�h C!Heo
Zd3��
���
֩`-g_n�+��M�pM�Q_4�M;[I�ȧ�@֭&0I��𝄿�>)�x:�A���7��e���d�,457l�k���}|��"AM%m^���gr�U�_�=)b$�K��7��6�ͽs=[u�[����=<k�w96�~���E��ndG�7�.�Β;@��3�=�e4
O�����7��&Q<�Jj'������U��S�{H���qv]lL輧3uOR9����o�k]�]bh8�dSH���:��[��q��w��]M��
gq෽�������ZúZ����d�r֖����9D��7*����'_e�wXz]�^�Q��*�<�a1�������Lpԧo�mةT�a�9_�0���q��h�i�(-�K�$�9���.#��^d{b;mT�\ŮP��/�"���(x�,VCƐpИ�c1K�^���_['��k��$�����0��P~�ب�${Ɵ����7��?��a�]�B4��Mv$�X��˨�����5���1{������f;���b����q:������ڑ���Z�Z��.#��i��we1�۝h��7��u�h5̢QY�S;r?#���3O��6�y�{M����Vqϒ]j��LgH�&D�����B0��U����������bok�Ը��%
~vX�T���ؓ�y�2�p��E�(ȁ�w2X�OD��؏�t��}bSK<�ޡܯ9�U�ט��E��۴�`�mI����2D���r��Ec�C�)�_�����U�1%P)*�ds��ynoI�s�QA�����Q�D`�g�����{2�ڳ*ro$�AH'�qo�	cKn����22r�@ܚ�ꖈ�|xE�M%��[�e�r�;�^�/(d��_x��:<�'�	رTk�/�D@�g� C���g��c(̔���e�oR��-�P�;}ǡ��_��J��{Nՙ`��̤‚��ds��P��R���*�:���<{a\G!�HLl4�Op�)by�m�;?3i~����C�H|F��N���r�Xs�0�{n�D㆗��b���1�}l�;�ɖ��r�XOTP{�\&#���n������e�p.�<������{५�`cT�@/x�eV���`���PT��
�g�r�U]:��8X
��/�H��oX%@����R`l�@���8W4W�7�S��L��Ø}j����^�PC���`��FeR/#R�P��ښ3��$��k$"j*�k*�|2�U��d�ϋ<f4�!��(|<pq����,�,N4� �=�C@w��U�j~O����J��,�a}Y\gw�zް�?/xH��r��Z͠ �.}�}�}��[>�q�O��QHP��W�x�z�>��>�	���'�TɰZ��T�S\ޠ��LZ�a��&�sf�(Ǚ�M�+�'�Ll��M9Nd��O���<*�.-P-?���j.��2�V|bB�h���_�c��M��O�ڋ�k^�7�D�pv���DǫH��*o9�;�	͏|�k?�_�6��x<��	l���LY��lzDp�y�{�I��t�D�5vO~
K"�65�������ߘ�=����@��r��u}���R���𬜻���;�@?C�@"��A������=��F�ÜM��uI���o�Y��L,6&���9Nu0���I$Z��<�L�a�=б�3ei�B�%ݏ���y�,�O��v��;��j<v����;qR&�?~΢�$v�Z�~"��Ї��T&����I�u
���:R�覰�w�q�]#F���$�˓�\&ϑ��"�n�WG��2}�D�L��u=?22�7�Yη��.�8�����ߏ��SνU�1�pZ�N�&}�_�n���fv��X�-�|��D8T�0��lv"�$b7~_]�dp�t��s�;Z{3CpFh�=ŎD�&"�O�K�}�Qt��o���؂s�_�{֣LH�,����Px~$?�t(���&��B�{uf�EbG�9Zs�Y��J,��$g�~.�>�����Ht)�q�0Z$YJc��9��^���n���R�~@���V�3��0��}�,+]A�Ȓ+��?�������*�׈�$���k�|y-�Ҋg��o��X���W��/���MQ!=np�����Í/~�Ȟ�>�"�����j�m����.�������T��
�=O�.H�2�$k��}���~��bA��9��׸�,�h�E���*�X/~$�%Q�f���[M�$[-9���]�(^���x�,Z��'*��p�Y�F?GNT��a7��7"�&r�v���?�R&=l����
�W�V���7���Y20��A�:���ޚ������.|`�����xn�I.��Qѵ%�E� ���kWyv$NNd���P��Uޚ�.b��6�Z�xo�J���"�Ġ ������/��'��w�zhy�ᢑTMDg9�[5�,r�`O��v{��ho)����ߚ���[�e��÷�y��Yx1���L}@pK�`N�����Չ���T�
�X�In`�cM<= k|�k�|��lx�_�b��[Pӿ���f�Om��
�Ged��T��P9�$�L��k����6��E�c�3�_�X���W@��%M^����罀ș�̚ա����"��c�zr�}��'�	о��p�����zd��߫�w�H��`���	��s����hT͛�=e�c-��I@��T��ɲgA#��<<}�@eAN0��>�.����B��A����FՉ�%al�d�tB���]f�!�{��j35���'�k�_���$�!c��|��r��Ļ��Vμ)�$7S>�w��x6�nc}�m�$K��ɞ�
B�����bEͻ�����V�=��<L2���v�z2�uEXa����k��
�L2�w�<r��?c�s���ꔙ�$(@�m��:a
��uo�0%[�@���;6��G��\��m=�/f���>u�wS��'�ߟ5�����j�xZ'�.�r���$�ʓ�bV���c�`��S�L6�1���u�o�&a�����8ڽab.��iBhѤ��c�c�9Z`�����[�D���= ��,v�]�;��������ɋ&g
|^
ޘr�a��)s�n����<%�����i���>Z�<U�{��[�&v�h<7�.�5 ���Մ
�gfڹ(�y�mþ�]�dX>C
�<J��*�j$�v"T0��	������X?8�i�56ޙ����_�Q^&M?نE��ڋ�*�d-����Ji��'���x���[�{o~Y{��kO�n�^�5X�:�dƫ3�#+��e�\{�]�a��!:,��H�)[O�/#���|�2;6A^�~%���,����R�8�5�E��
��cι!�JJ��#˞7�W����*��HS�T�������.`l�����(���H?��X1&��[>%�����B\�S6���d�{��/q��pՉM�����i����8нr`��S��Hz8����*q�Zv.C��cq�$t�4�u���$�EUn���V��d?�:�F��i��v����{��h��z�ћ��𵞛�P�J�D5�s�*�FBd���7'���υ���>��T�-�'�VF~Bm�1;�Y�|i�c����>a��ebF��0>9
~ٺ���v={�.qz��Œ��[
���,6A���=3>�(MVL3=~��y����(-m��m(���@�������~id�{]����S?�e۠�E��١���vK4x\�[����;6�-�4f,���FW�=����8�����W6�	�&��sWA�23�@�t�R�N���_�A�Q�?�暧M}i��tbsR�8�� ,/�>�H��~�X=��X)�ޱB��Cya14�~[���ݿ��?����sߒP�?l�#���{�K{��:������G6���� |]	+'���|�Z���cC-��篚�	Z��^z�h��_@B�S�_��/���sY��b��UNx/�*�@۷����ԗXQh��4��.��ޭm����zų���i=�#H!�Xښ��],x�J��ے(��,�w����%�Sv�5՚��
UD�%cPA��[\m����k{�[�Eޚu��7栕_��g��j�+��!�9.v��Ȣ�o��|MD�g�y��h��A���\�h���܏�-OR`�O��\@Wa5�)�&��s����.c��2;�1䲟!%N?�r����k�R$Le��ﶝ��j���&��ޱ���G�ôb�"0���	����{K�93�M���y?m�+��D��ΎIǂ�%��n-��k$
�t��	����	!N�=���|�-���h7��$���y7KDc�9�1Y��օ$KV������U�ذO��'�k��˞�M��$�Ŀl����a[��`*����_P�>Ϲ��Ei��zm� 4���64:�i>rx/�D�U���	����~��Y%N��aL��,�7�����yI�.�H�Ӓu�M������L���5����n���s5���C��?��U��i!P�x�@iI��и������)2�U��w����g��'A���=(\�u���	4�:���~D�g�6���
��^|���Y�N |��=m�5ݿ������PR�r�Tv��qV�8�.��U�&����B�u�8+�R]��(�J~G�T�xhgX?�A�y���� iP��jZ[�1׀!�5)n���s
*M!E�(��G1�u�lmW�'��-��3�+t����5^��n���l�P᣹2M�ĩ�������^�ܲ��sYӸr��i����c��k��h��:_��Y��N8�j�lO|WRS�bC�<�	;��&`��/���&��e��u��«�k�t_{��	�F�pDx���j��l�Gl��[����M�h�Y���V4�
ϝ^�oIe$	w��r�u7����m�OB�mk�F�D���[װO@���-
��\��@�
@�����6��~O�%6�$-.h��dydP����:B}��A�t�*D��$��5��q�+" @o�$��s���~��N���6v�^hr��~��q�d
��A!�����1U���B)�S��y^��Gd�^��g�
��n2.-+}Bi�8u�����5ŀ����K�§������t�h�.A�d�tF�1�[��6K��3�
�_���[���Ss������+�h�cOA���}�
�2�W�	�+�(0a��
��3? ��5�K*��e���24�\��*{��~}k��u�o�h[I�w�8�J́!�F+�Ǹ)@�d
)2$-N�~)#[��u�f��K�m=lW���5rF@�ҚKSH�~�i�{��̕�K�$�ȇ�
u�k���~�'8�ĝ��V'��r�_/T��i}�x���2��ƽ�i��Qo�����&!�x}"<[zvr=Y9xN�"���{LA]~�#,��/�7�lQ7)������ъ��G>��l_�:'�D�_��B
(;>߻��,��}�d�8��^->�mD�&CI]&}[��C�>�g�G'��\�B�+I@�=�<�������tUb���<�,�����Bhc�����O�F������L�K.��]&���^�6��^�\kqf|JS]G3fh�R�[��
�F�H>�x���3�e��d獢qz|���MX#+l�4��!���gu25c�'A�@-����L���ߓ@�V���W`}k���uҖ�K��N��Y@2�E2����d��C�&��r7�! �I�ÙC,C�v�/�;���S�]Lo�r��0�/���I&W��{�X�է����2�_����p[�`��hI�%Ybg�'/����}�{h��>����2�_;�*�q�-���gP�t����a�G ��p�BoIϭ����fW�nl�͎J�9�"AD�:��N����$��-@��Ԩ�<�?�PU���{B��
�&I�"LS���3�f��k�ش%%t��c��5]ARj
&o�GĢ�0>۠-Z-t0#qCY��mӳғ��~X�(F�3M� �^�zǀ�۫����y>#�� 0qX|:Q5���g�F��o�ߥ�84b��%�n9c2<�W|�^�V	gVI��S�R��"Qm�3R`�d�Q
�^%��dX���A� ?�7�/{\���X�,l[qm�p�"'����h�W�d��
u���9���8n]�V�VK���
ێg��|���rВ��B�LuU�����'��+��Lx2�0��ؔ�6,2�ҫ�u�/4�q�y?%H�,��>-I�ȳs�:kӉ]���=�(�5^�H�z�O���wt3"��4���*�����:�cI�f�)�$�GE�S��i�TՓ瞟KI��,\���Y
��DQ��p�p�\�x��C��F�_'������b�̏�c.��
��w{ة����=�5�l���sj|�w��y���d��$N1��L��{KR/:�|���"8w�q�����莇�=�	\�[������1��N\�ey2�h҈��f�:C�w5��dL��k��%�h�n
�?�g��an���O=WMc�ٳ�������M��z�T�$�X5�p�g��N��B�)�8!>K�!nf��<�]�l�Dn�����M�����0M�N�Z�Yc�",�I�:�mbQ�����EA{)K��0��q)C�#s-�_>'�tR�3)g2����Pb�YAt��7ոwj=Y�H=�r̋"�IO�I���pn�`b�2Z&����^y�k~��g�Ž��ޜ���[���It8�`{��
S�<�gyT��}�
�o�D����q����v>[��S��6�Y���Q��W������WU���O��%ޘ�n�:��6������Y!�X���w� =]��8r�p�þ+T��]`�66~�\&��Џі����pr� ��/0�_�`'�~��2瑼�'�ZF�D�!r�#�?���5�B��ψ�T4��H������E�0�ٳ~�w��>ICo�F�9V=�c0s�s��^K`�b}/	�:(	t~=�����%N�T���h�K��-�hc�m�z�_��J��r���������3��P�XR\x��`45���p�{W�eҌ�xTU,�G���t����'����q�]R���bO퇖h?��v�:����/\Ma����E��.G�F'ᅰXSY���X.:�ޣ��槺��{�^����mX"�w�<�ۛ7<�
�ݐ�T����_A���}������k��>��XX��xR_�P�;��q��gnȂ��XMhj2�n�ۘ�)�r�V��hQ��!䬭���
��ﰮ�Vb(�{EÇ�'���ݳ7�d0�D����[�8ά�2Ίێ䦏�/���I�s���1 ������I r.�W��o�'`�	���S_u�)W~>��z�:�I��nY��h:4O�N���1Xu�7�}��7Y9�22OJ�3Nj�g��Ġ��;�sVc갷���Fk�<A��l� �|���e���X�H�ɿ4�"��������D����=_���������$ߊ�����N�{�i{��/\�eX�X�x�e(���{=߳��9�{��}�G�O���B3�'�߇Z4��
����z6:F�:�	1��m���/2ƚ��1�
�W����9����>�L�ĦsV����,X>����:���f-ү�F�k��[�[��c���z՟���lvq_d�;�U�e�Zwy
qO�4�?���IO��1���:�	p]iì�K�9�PZ�6{N&-��=�k�:��V�{��rr~�<���4]�7S���ݎ���c�)����Dx����4I''={���4a��)���91��N��)W�CN�>W�߷L!
޸O��kS9ek:�sHc`��o��cE]�{���J�/R���I�:dA_�ԯ+l��7y��qAxi��۞�QGV���\���	`��A�E\�V�MW% �k� �� ���P��^M)B���`��i���B���	q �� ���f�a�F'�2���̯��ztZs��z�5�?��u�I�O�˹���l^Jt; !˩�[���v൙O�K�u/ ��Z�a�:�g�˨�r��&R?o�	�S�s&����g{t�Q�/��F�8|�jM�0+�3��)u�^Ț��B�#(Q'���aD�w�Q����s*�e���t�Pz�m�+G���0_0#c#�4n�����}�B��X&*ۉ=�f�W�ȧH̒�k�9eqR1�8�������fGıo5Z����44�=��A�%De*���i�w���i�T$U�Sz��Xb��ȟ��u�&eVPanT��� ��?X�(�{���*|��H�~�D��.(h�m��R������R;T�~5y�� S��i�(]�+P!�����7Ueݶkp���+�S�HRP��ATb˂�r=����S���i��Aa���j�O�I�U�`?��e=��>�_��u�K�~����c{*
P�
�,�DG���Q'�C��	�X5*qL�e�b3k@�_}�Z�5��_a���Rq���L�!5��\e���'�n%�wT9�����6\�DbE��Dٛ�Amk�ǭ?�{6�s>�w)�~�ݢ���ě[���;A�
�%�r�1fL�4��gR�LT�3����m�]��}��8�/��&	iv,��g�%���>�r�h!ə	�5i�b��$o֓@q��O�
����o���X	j���ɓ ���I�������g�8�C<�o����Z��@�wVp�ˬ����+��K�E_˨Un�o�j��������Ϡ/ƴ3q+c/\Q�2���2���R��$$��lFL���7�"	�H#9|��=�2j�F�&��_A���p��7ӂ�a�zl��CH���l#ا�qRB&��=��L�;�,���bǜ�����ƾ�.�RH1u)C|���}�ƕ�,��,�$�g�j�{���a��3�N��u���ɨ�zH2�GZF�v��R��Ɂ'�m��0XZ�$N__eU��<4�w�{W�7YR5�C���W�6B�VQd�9�8�J�(�֧-T�s�0�&G�V�U;N�F�1��^��N��s�lRꐍ6y�U��@�{���Z��D��	��4i���i�;	�#���Oz��gY�t�"[$��>i���i+j��Du�Rr�������g�&�c	���	�����,�)[�v=N,�D"ş�["��;��,L^jح�
�ӳ��/�:T�򴀛X�؋)!�!��]���U����?w;n'o��=p����K,ɡ��ޝ'�>]�f�d$k���Y��%�DN�k�=3��}�R?����G�)�QMm�ԟͯϽ>���fo}ANS��9���M,�a$��=�`�K.��v�����YK7��(�����=�Tf�f�=�/��S1�Ƣ<��Z�jMJ_��y�	��{�P�Ϳ�T�k�*v�Hz��a$
�^�]vFq�nL���B(:�
k
�f�\l�_P-�%�ds�� �Nk�~uB�dT�t�����
t�����b��0�I=(&��M�V4�����8^�x
"���A.��8�J�a2�~K$
'oܫ
��{B�Z���H���g��߁`�44�/c�����#�j�1h�u�{��	�k�@hZm�>�6u�4�'sM*�#�z�����d�IR����V��M�NS���&#[�T9T]<`]"�K�2�^�إxqua��M	&(���"��zA��"#��� ϤX2y��o�̰�\_����^.W+_���SDƪ�j��3l��Ipe��5�>�����@�U��{�ZZ�ǥ��\`���'A �ɉ�E/o��/��(4���<�k<	�ڂ���p�}o}�
��& -�V����<���i���\�Ϟ�#�ѹ�� ���(2dI� ��f���-:W��ÿ_�h���C��Q���I>��e}]�Zβ���GQP�O�H@��ٳ.�������;��뛼_��\'t-)��mos�A��ɇ �ZP���'���#בA�\	�N
��������<S4�_j��]�9v:�Y��%��g�EG~��3n�c�~6��6QX�u��6=Iʋ���&��
���P;֧=HW�A�5��y�vB�|�����I	m���(�hZ��py�6�5r��	B���Y#��t��.���EE�ԭ�+�A����𮣾9��󟻐LIk� U�ՙ��Lx�W"HeI�/��:9wVg 6yB�L��PSe�WI26;[����_�@gVD�InJ� �B��"V��̦�g�ӵ��^�Ƃ��b��<�?����x��ߍt���Y�F�'x�V�Tn�:�SV�.M�!��"�;Z犝ԇ%��*W��b@I����Q� ��tM�9��6<��S׎,�
t�V�b™��#И�̢�6M��,����a��$��<a?~7ճ|MI{�O����^tL�U��c�]�g1cs��,�%�%PpVKX��͢�O��<�x�Y�zd6	�����D��n�zXZ"c�84;�Ӟ�q��OX�v,�5*���e�<��5�dZI�A*NzS^�r7/�Ϙ;�H�
u�T�
��ʼ�m�/�%{*����R�X��1�����#:Y<�P1~.;/�g�&�⺌Ӯ̵���zB�M–I�T����C�/Ge܌Ya�C�����?h�r���`]�A�ؤ�C�6�r�T����4>-�'�^���O-Դ���H�_�J���p��l�Q����;N�� ��ã�2DӴ�Х5��]~�����-�l�^p�A��r��(�q�cPuME�{ܽ���_�h��bF����Z�
H�ڞ)O�����)d:X�Y,~3 h��2Nܱ�t���35e���}ڕ��ٸׂ��.,m�ЃBm4�Ͽ�P2���[���A_9���I
D�{M�0�h���}�>+�+���T}��� �=��w��i{��J���Ke���ĵBU�����\�d�aM2���q*��"������̛�8K��~��2��v��,8k"
g��S
^�P��i���te2������2(�s��~�j����|N�8����K".3���E���\dfub'V%f�FueΧ8���̑�lzBc���tV{m��	Z?Q�=�,GLS� >�mL2}��n�!(YĀg�D=�|�������M~_����5�����k�����b�.��������w;�rx��\$��u�/�N!A�r����HW��AZ���˸�&��E�ȰH~���I>�'9
0;o8�l=��m)I}h5؉f�т)�{{�$�6����D�8?�@&��Z%Z\>�b�GZ$*�g�2j���`O�Ł�2l>*2�h��͓x��+�[[Knᄔ�=��)qb+<j\��Ed6or�$;>�n%D���d��j��1��M��>�I?ŤH�SH���'�Yd��Vl���e#�e�-2;ys"��1z�k�9��6�sma�b��oM�"�y��/��zN���0�z��b�ϻc2��v�u�W��� �@f�%YW��_��
K"�܀z��G#���>!�2���"b��}?�,��s�u�2�=!�7q���@YMu��nۉ���ל��k;!�Kԁ%�s�,��]��B>t���Zb-#x����2�"�+03M6�7�ܛެF"�<���n��N���݆e�V?`[&%x��չ�}�Aj��Q�?���D
m���|��?&R���L9��	Թ�`�s��NP����f���O70Ю�rL?�<��	m'f�5I����?��Kf6:����@zz]`]��=�7��L>D�)s�x�Z�o>8P<�VF�8T�4�$T?b��5gy��\�NX�o������#g}����/N���7�3����}�/���P��L����'�u��@^�T��,�c�5�!t*1޳|�%�
ϚJ���u��b�>���F�������Dr�{z�H�����:�䙂8�*L�6��20�ި>�e
~�8i)���i������/h(w����=����,�P���5��w(+H��B�N�H����W���

�g2r#�=F�ɛ쉅��pt��u})cʫ�f����X$=~ƃ�q�;�*��7����7x�J�u����Rz��	܆��+ݾK#.
0���l��s����,/�O�8��[[�?h�#L��W�Uf�,�T6�(��A<�ۗD���Q��F�8sogÂgL/a�ʉb�Ȁ�y��hƾף��
���^O�
�e�P\ڻ���U��}��e�1��5��2�M�O�]�5�_���Ǟ�D�?��s`C9�~⟋����R����}\nɪ1�S'��ˋF��Oo\��w�
+$W��QǚX��b=�=�����{��Q�����[�6�>&F����ї��K�ޯ�?���Eޜ�(qm?�g=��\K��[+ϼxä�3���o���g���s�C��w��9Ե���]=NB�Ѿ����?J=��������à��n�z����]�Ċ���0=! ���R;�U*���$�"�>J->�^/=��R��;��~O�� ��S�����I��ͦA�e��d��M��~A����%y�+ߍJ����z�?�;��M*CS�Ǹ�yNf�Q�X�U�f�u���,n��/�\�"��~[Y]�RG
�3>�b�?;"�%���خ��V'����k����X)p�8(�%�#��>Q�g�����)�DXq���%gL�\Kd�o)C�&�"��q]���
�w�%�=�ζ�5.�qK���'�v�^D��(.��m�q����{�eb�Y��g�`R]���!����e2���0ޗ䠲��c�ɐ=��@�m1c���m�&@m!FUR^!2�I�X����=_�ش1�	�IOm���\&Y��|~�
��KO�ޮ:�x�����OL��|�+�u�}���6����.8Z�F�gV�𗙶��Ͻ�g�r��]:l��NP-3�^�t�}�����8D�pڣ���	��K���L�!�H'���`IH����x�p���X�V�M�`�f�Z�y�ؑ�ް�L�A�U�wiT������u�h�c�Y����wi��/}���U9�7�J\S�̾.8V�Q���o�u�$�mp�
i����N�vʰ4u�8n��'���
�Jr&܋��J ����4W1��j�=��[�5�Hp�7oM��`�R�iأ�t�H��wKҋd��

����=r�����l���JRIy"�4y4�T|�W��G���Nφ�H�Z1�y��/s�I�,	��=HfU��Y���������y�sNwe2��
&PS��YճK����d������F Y��ji�0ZT�u������LabD#9�r�<��~
+�h�e��0*�
��k��
�7�!�����>y{�競�/��E��w8״�"�0b�i~%�ld, x��t�����
�t.@d][^�ѿA��@o��%>�1�����y��l�8����^5��#��6P��2���&��@�p��bӘ��{�>̓ 4�C��sm��v��_�v��9#�����랄�n0�£�-���\�{�a7�[_So����H�j'�<3�G�{�g���8iP �iXFʴ�pui%�-d7�^�Su�'~$�Ap�{�A_�H�w���A�_�k�����W�俕�7�:��;�2�y�W�f�G�+��D�w" ����aQ�}kyp�P4���������F�OA\`"�A�p�y��﷿wr�r��3��[�T��T�ג{���E��S)��3�M��
�����`�g�M�v�����v29KuX�9C?�&�T�u��sr�h?#pU�0�7j�6'e=tڧM6�e���	��Ā��X�\$����6޿���5�u��#����6�D�$���D��R@��1�y.�Wr@��rk�{w��> ��@�Ͷ^��/�2^��<Ped'�x��@1�#��Nn��M]��p�"��3��B���ƨ�-�’�F�Ц��A��H�>ð��{���I>��y��M�*��伀���8`���Y�z��H��g��8`�=!��Y5%@���	#h�hW����)=%�b�
����`<��/$�Q����P���0�o`�MX[,�|2���^:�[`"-��	������I�rg;�
Ɇ���`�&sZ�h�O�'n��Y�A/�L[�s�
k��cS���?M��k^c��(hֈ���3Q���{f2H�N���ᓎC�$#��S�p����C?�ܴhM2����r_���i�B�G�0XK1�֦�����N����M!���=W���l��o>>���]���[�)e��9��S�vr=,)��)ͣu��j-y�9Q�tBV/����;5�g�,,PЛ��1Zod�բ�$�!`!`�� ��Ñ���Y<"�V�=�U���M�=�B���˥�a�?�[S�n~mz<��b	
���=�f���ɇ]&)���	�f9�0|�um|��
|�
���=���c�
���t���z����e���^�B���@/'{j��aT�fv��Ư���5�d��\?M�w$z�o:=�=�
c{m�hF��"0 +Q�ߥ�z!%^1"%�f����
�T6c�ǢMV���� ��E 
��
{�{ȋ�"�0cӠBbK�E�y+5ha�^�j��1T2�fK���CT��3�ΛE����M���SQ���i̕Z6?)��n��a��h��~�Mb���"�b�(ef��*����ٵJ-M���?�T�dk�'��/K�>�@�>+=�nW�@���C|��sr�\)�p&
�q�Tc����I�D�N��)�߮k~��4b�K���{'A�x>�
��g�2��֒Q׻IRt
6���+w9dk�N�5M�(�CHp�ME��'ɔ��"p�!�y��~�����tBџ�����8Z.��K�[Tk�$!����ufEE�O,4��I�3.s�	߃{��!�
 p[�0��M�	�J4
Gv���"~�F����:���vW3W�I�8�e�S�ν�7���Fb�B�sY��g2�@-���D�e�nHJ��h�Yʍ�^ֵ&�d��z_�sc��vn�d�X1R&���m�U
�)^s_�F���\�a��yu�1�E)D$ҳ��,f{�s
�����B�����B�����s�Z���D͍p�l_�D�Ƀ(o�n�	g�SY���U��[���&�~C,f�;�����XH�ot?��§��YK�^7]�Uk����_E���/�����2'�6���6Œ�w�
i`	h���E���>���g�!�J�H�^X8�q#˨N4�9�Q0��Q��
ħ
j"�,8��W;5�L @�:�)B�E��θ�<��@c��kDA�̳}���;K���|o��$^�
�^hn�1����@�{��H>�9XG(�X~z[��p�y�(��gC��Hq�l:G��B���h'�q�u���:�
��vh|���H��B>���m�t*	p|��r�7v'�*�H���5x���,��Ы0�(p��R�Dn0.u!e2Ǭ�-ږ�>bՃ��@l՘`4As���c�\"��+���.�kWn6|�+E'�Ƶi�]�CI�
L�� x��Ǽ���|��u(Ѧ��]@��q��!tۢ��󟠾��6(>!��-�UbH�aAWt�vR'N���c�AC���W���j;��Ia��}���U�G��=w����M�D��@��+��#�ҳ��h��¾&C�
�CȎB��4�>�x~��ezp��W�x��&��{-�g�m&���}���K?ӎ����E�{�گ�݂���Dc2�	��+X��/:C�9�}���0���B��7�~]^�T��L{D����L�\<��m��O�\�߻m��}�!Q�)�9�6J��l'��J�쳏au�P`����[�x)s.Jώ�Z$U\(�J��귝^�܃h"�E��Fd�X>�7y�fuY›X�.꧿��:�{|���{�sAMq� ���L�0��-�d�ʄ�R]�u����
�f���*�+�(;�
�87�(*0x�>��z�5bz
�Q�|�AF��7�O7��e��ޑd��M1O(aPa �I�Q�ܩ�{jg@=�ʃ	#�g��"��uЦ��;Ll�/>�����w��?�a|��;�=���y�i�#'���ho���R�����^wT���_-*G���`������~>}����-\/]�x�~��o�$u�H�5�:��<�
�G�Q�4�W�5�|Od'-��*W�" �~@h(�k��=;��R 9[cVΐFP��[�j����ݨ��⤭���{�Ĉي�01`�O_=˙��u�=�.�4�Ti]%]�mZ�:��`����~[��@���;psh�����;��|�I���_�5C��aqm1�
?����k�
��0���\���Jl��dq�����`w���2ȉ�
�?�po��W{�.�{>�}��S����$P�>�96�j���Ᶎ�/Ӻ��9�{��D6��&!�Ě�G�I�<z4i��%,��0F���kh'd�U����~b�,��䋫���a���g�o�lH�hh�7�͑�<<��D�� �f�3=�*�m�`7~��f��n��߈�6��Y^�q[�=ôC������3��u��`��a�ms,u�3��i1|�I�2dAb��@țPA]m��WTB#�6T�:���u$CT䅆�l�/6d�%*^g/�������Y�/j8�(��� !lU�
 �D�ƍ���w\�MbAk�l�證JK���6�q����R��*���2�]��<�����V��*/���˲�p/v^�g�-U��nf8</C�PE�N0�l�@�6L�fs�π��)f!�<:-�_ �B��_Ϸ=��>Us뿋���{���Sᦩ%�$�
�n
T|H�8�6+�Dm�����~�߶Ht{a��ih�+�7z-�Tw�L�Ϟ_�p�xx��7���&����C����m��
�S��w�g
�vkv�Ƹ���sM�A�,�P9S��D�#'��+�췩��gQ"A�
��������3E�����/=��G� ����8�pҬ/�O�1��	>ʉ*� x�A�!�͚��ݟ�
͹U��h+�~_��̶��s���[�{.����4��_��	��&����eߟ�?H!��ƿ�g����CN~���qmU�����1m������B����R�o�����϶,��I���u����F��~��@�l���| |'cqs�a�'��g������fh��e�c����,��v�0p���pr@O��~o�5^˴���u���}���C��K��=@ZT����k8�B�^`��]�vow�I���,���M�8��:�f��g����þ������Ifm3���P���&6MxM��� @�ʝ@e��sr��Y�x)�5�A��O�~��}"��f`�ɷN:}X�(Y	���l�\��z�*��'^�Y�/�S6�8t���νAI�w�ɆB/���2�Pĥ��6b�p-��=�j������9tZR�m�l�$�a�!��m�3�Ʀb>
�[�$(0="��}���J9����n
�}?�/2�6\V��>�bӒ�1 N��k��L��9�[@d��f
w!n �\�"��}1Gۉ�IP|NƳ���1���@N˜���X�ckx���o��$��.�l1��حBf�
$�+&��sn��?����ȓ��z�A�A�$��^:~�'a�
깃����;S���y���]vN.�S����~�|ѕ�Q�����&CX%�)v6.q�?U�#H��.��<|�d�0C��W�@TY��@(�}�bY�6}ՊE�;�a��r��M�?�Z��F�fU���$���D*��J��<�<x%��B��!�+�e*Ll�}�F���"&똯�$XDcS�wI�E��H(;��wE��j }��;0�޾5�Mb0!lz�轷Y�}�s7��h�F#�od9�J@�3-IAt$�PM�Y���U���IRteM&��UP�UX/>����X�O9�+�*F*\�b��-%ZWr��A��Ś��Y�k+�A�
|�)Qb��~F��L3�0)���D#x� |�_�D+�k���25]5I����X��0u%(��s=Q���
C����V99Y}8�G����j6
J.��	Ө�k���}oTh�U��ko ����&�}ܱ�ɔ%�vl���t���:���׮S��J�`�Bʉ�3���H����g���k���L�$@��P�_���}���OpM&��f�տW�
����,�(���Ϭ��6�mr$��<���d�𑂧�>�b��7���ϯgPT��f�E����Ϩ�����ʑ=z���M?����+=�W~J" �`�=��\���?,W�J�>Z�h��� q˦�8g2z��,��z�vy�=������hd~�^��j'2&J���@��'{'�*�0�:2��@��o
*�v�O��jvN!�����3�Y��H�<�B������ �;��3qW׺m��+��ƙ��W��XR;ҧ@�'�=۶���t
��S����X�V ��f���h�������^๿��?+�)�E�'�Ջ�-�x�'�2L�$�WN�x͆�[5N�x��0Ц���uk���G=�u	9�$��=�3�8�sҊƾe�)T=g��X?~�Q;	h��e`!�7P�P�_�`
�])l�W�{�E��	=g���Mbp�Q~����[�aϺ�z�:�ϛ�I�1(`-VHІ���w�����D:�3��fj(�o�����}4�9��k��KԾ��g�j�>'�Q\|�i(-qJ[ ބr�6w'i!�z���YN���_�n�'_Hu�#*PH�c���]��za϶DŽ���:������/}�� �u����ڢ�UÍF@��!+��U�2�����Y{³�L��1�U�G�-�-�?
o��Z���x���|z@�n��AZ(Ž+���Tt.j�7�kҤ�%�g@]2c��qX6�
<����dl�mn�A&0��JP9N�h�| ���t_��b���!��xl��:x\z���Fk's倭"^�%�<w�,�J��]J�'�O��Zf��j���K6�$�L2�!�m7�`�V�Q���
 ���;H|`����0%�X�L	���2(������V<V�AAWtS�!le��GW�Z}�Y8|��2������I�
͂>ʉ��Ơ�Y�(AU4N�5z���_3��V,�4��׮�kH��e
����,w�F;!�]�5�.j&1�&�0`ͣ|!��J��������Goxv]�s��6-�n�<�?'��먼B&@��pO�ڟ��tZ��4�xu%�wR
�1k����<~]��^��H���I2��rf�z"P����{�꣍F����,��;Q��s��^{P[���&S�/8��?�M�2��sK����UP��k7�1a����Շ���G��r�~��)'�Σ��g�GvX_if���HQ�����[B��0��E��3x�y[3('Ѳ
A'��quN��Hu�N�}
�^�����< Z�Ѭ���
��Y�@<7G$��O�A�{�K?k���jRb.����k!$XQp�j��"��g��~F�h��P,��s�������JS��K��
v@�6�W��v�P{�?��������Jn�*�]4֐
&����/����R�$&�	�{O綊7�֟�P)�Y�������ϧ>}��FB����G+�=g#$�|����k�Q�$fr���d���U���E��ڒ~V:�U��\�#�_�	E`L�U��3���tlj@����5��WH��`��=7�C�~wH�����6��~�˸u4D"��uh7�X��;q%�س��)k���\$67 ��9q�{m�>2;sv�_*�~|
�w���q�FX���'xa۲D`�YԹ#‹�iT�~����6���B�zi_7�-��bYΙO�m}�ac�������?],���@��2{�կ֕�%#-�Kx���C�/'���BNd/�����(�GC�O�|����D�y�v�8Tw�{D���l��e����B�#�xw4W�x��X��V��y�z��=���)�������2U�$�	�%��H�t��
�V���0T��r�7�]#���������a�C�
�֭B1�NC ��S�|� ��:���_W^]�;㤏���:�"�����Z�L�����Q�,� ڨ�Rzf|�W�l9�i�װ#�'{���m��]�,��0Cea�B����D�+����A�-B�3��$�
��
�[�
 Pr�f�G
�K��O*�]����=W
t�@n�L�i(��Q�����M2�ώ���o��
<�Lۈ�/Tʆ�	�{p�d¢���a���VV2�@�T���m6���0J�Š{'�S��7���fᇀ�@��7�����7[�]'�jDc`������S�l�x��>�[�$��c��n荲�������g���x�ܠ�߭c�y�@$U�#ܦ���۠8�S�O�s'�
��M#��|��2��7/eZ�}���whRn�K��T�������IA�x|���W�f���|�o�L���7�{�/��qߋ��ɍ�Уb}���&ѧ`�2�X�bH%���Vn�_��o�Y�'�^g��g`�5��bM�C�.x���]|����>ְ'��k� a����#w;�������e6��}�ѳ�¾�~���;��5wp�m]^$
Z�<uH_�3���w�JR"�>��M ��j��/�?�F6��ڍ�g�}O�N6n2I b���P�Z�$�㖀5�]^�|}*��H
z����W_��Wk��'[~�i/�5�������T�@�Xa\�'4���g�E;��>��<�;IQ2���Oa��Z�i��~rMZ���n��mt'�n��w��W����]h"�ِ�k�&TOu!��)Er�Yc�s[H_`%9NM��[c���u��X���Fb.&����	�`�&my[�
��,���+k�
��I7
9�sr�0����dk�"!6��)�52�TT3��)]����޿�{�y�t-1@��� H�Q�v>#4�Q�S���}��<�m�x�9aS$��P��i|O鳌)g��k���!�[t`�ڴ���<��K?��S�y)qJ�~�,:j�7jҝ�����a�g�`h�t'.`������IV6��y?�$����6�&��K�LI~���<-�,�ṽ��~���U���ʀ���yb��3�I@� ��r\����,H��Bc�9�0i��jX+<eqg��h2d
v����ɜ`x��-�d�D@��Q���r-?�ƤE��#�RvK�uֵiҘ2)a'Ą�
���;�X���0�F�67�0�@��:�Z�>�/`Vp������Bj��	S1���$*�5�%�&�l�)Q��~����<��b����
���w(�o)F�/r��k2��ذ
[�KlNTd���S�Fa<���M��(���	�2U�Ŧ"�H[T�
D������՚�~+��6�W����(�4��~�J�12*��TM��^� @�f��q��鰙�l�!���غ��:�����ðDi�������Pt��-�Z�����E�i�P���/^��Yt46�$���?H�Y%��Lb��������Bf�B�A�w�Є�v�7��w����Iې� c�_ ����/���@�T�P��8Wam�@��zD�39�{���n�y�����L�ٰ��<��z�5�^nO(n���_-�tZ�b]�p/��MV����:�y`}�� ������}'��ѵǑ�f��h� ��B�%�x�'�Ng���lR��:��� �&�����3�@K�����6��h��ۿ��WA�0�I�~��7Y���a"�C�`qr�Q%ꯅV?�=��=Wh�&�9<��ǩ��w����-����J
�F$Wx^4�dn�X����D�)~�&�*���3��
��T'L�Z���&P�P}��ʂָ&"�A�:�iS�k����.�d��3hL�t�����#���ߺ��F��	Q(��GW�",$C�Gt�\��IRqr
<�/P���Uʞݖ6?��.j�� ���/��;�2����Ε��J:�6�؆
���x=��(J����qM�Ɠ�P��T��U�G{�h�2����ON�L�d�
g���S��Y��׵�{M6�eP!����`�x�HD�J$�4x=���%D�΋�z�^�N�]�Ѭ�^o��G�)z�A�
���P���F��o����(�ip�T
46<S�)dfh['G��{ӑ�h3l�f�������c����&1ϭ�_��
6I:��@d��kDr#�^�ʷv���(j�PST[�l-Ѧ�Y�qA�f<��Z=K�d�oD�n�o��Z�+�gU�`n#��v��#-����j��Z�3�#2�ԯ^�/�5��e��Ye��`�v>��Xm�p�
W]��*�Y/n�A�ƨE`y��l��X���g��&'t�[h���99@��+*��~/KR4�y�f��#,>�i����n�/!P�h�ZBJ�8R���a3�O<*�G�&�,)r�Ģ��ld�_�
@���
êP
��J\���0
�`vKhlesϸʬY>���<-��aRF�1:4lţ'�kq������G^���d����1A�P�h�C�)�%5=����{�m�L��͍�dE�Z?�K]��m!���gR���$����f�E�p4
h7[�=8�$`D��� �7������yS#5(�����@^��yC�Croޤ*�����燃��u[���8���7r���W�VZ��Ev�8���
>����$:�H	�FOL!�}��B�iT�������z�(��Y=l�4�H�
��;��(�pExX�b������.t�ƾ�D�w��xVea t���\�F#�<J{��EI����5�y�>У��=�T�۪��+J���oP�dV7�w]T���,

{�R�b
@BI�
��YB���/h���W
^4� ?0��20�\#4��k&{.�{o�V��R������Q��J��u���`'B4�Z�{��%����
Ν���!���	v�jb��0�֒ԮlW����V�c�|�u���х*�[2ZB&���x/�eևv�dNcK�����Ž�k"����b%��kXw��W��CH+
E$�
+ -cZ��3�� �OjK0��q�q�3_߰���sHb^�P�陦1T9�m�	��e�_��h= !p��%�s�򶵾ĽUHg2�o��i����{ck��|��*���8�HGa1�MZX���+p�����&��������hUX�"�YAk`
�9ax߱רtC�쏣g)� ��U&�[��E��m���P��	������g��A����r���}C�
�J�����_���p��/�H)��t�=��c�w��x���};�Fyj=���w�6��n�J'
Y��*����T���i\���2>�K�g7��l2�����*|	*s��lS
_���BZ{m��
��d�h+��#l*�d��ҍ��am�<�:����`�K�[����w�����p��lT�d\���E�U2��÷x� )�q�
*�A7<J�~�=����k�o��Iu*��/�V[3W�GA����c�	[��;�UN�|�����?/��nc�ɹ��;�
��a83�~��WM�L�!G^��r�k���6����n���j0��P+5Tr<(6LW��H�����pu�
����!�BN���^tZ2dq䯳#`�vV�ġ��M�}]�aA�oW9��z�uv��G�_�~w��	t��}���X~��/ӻrLO��!���4�}���y�4h�KRі��w�:�J;���Nm)�5~��+Th��1�=����R�T�S�߷�پ���u�b8�~��&a �'
����zA�J�T�=���(N�99���A��.*����z\4V��h��_���V2����P<d�1��?�bH���G���F
8�;���g�X�~�??��|���~�[;]�d�|��u�K���߫W�`��\%
���A�,������x#��?�|�W��)���B�?�G���Qߓ5kt��gހ��N��ThY��O=�Jr���؋�O]���F ��d���I�[{0�`�{�%�E+1�t��lQ�������dѿ���m!@����{���M���׃/%� ���!�6
��To�u�t�Q,+�_�k��8N;�6�'�C_�LL�$�&�K�{~���n�g��ξ�@�?�/=���C��)���pa�b������l���*QA��?o2���n��njpq�=�*y��շ
�X���P��0'o�!�#�&��|�����h�3&�a߬`���[�.(6�uQ��Vk����IN�~��F�_�z�V<T#]�q�?6�o���6G�Y�"�#×�A\��A~P�5�:�E����?*��>nD�ֲ�zK�? �����T��<^/x���%��>��8Kg���W�=@��{�Gڳ}�d����~}��ӸúI~ߟ�s�^�Ō���������'�:���iO>Ϙ�m�?�$@[Q&��g��?��=��k�{�t�����CNJ��o�PvF�X��:]n}��s�aa����\\�668�$�SPro=t$$��48��q�p_-6��F7p��i����E�ϭ�qݓ��d�@��/��)�S��9����Q��t�A]e-ʀ�艆Q�Ň_�Z��L�E!�a�Ϧ4�$��lz���m�QB?�Z$a��B�7嵃�[�e��P�m�
6(J��G8Z���I�����{��gt��_�N�4��H֏O(�*�P�&*�5
��^������m��y�(6"q���Em�f�Cf(5`��6?�f3������^}z�
�L��MdhX��nL�!	c�g��|)S����$��`�S� �"l�ZWa��E�w'�3|�I`�������|n$�+b.���;�1�*��O�:�Hy�d�7^�p.Y/ݾ�A2m @@��̮@?�@/�oe�wK+�<�dݳ���Fk#Y��}�
����\a]���<�%JjyF`��o���_�o�^��㴂�R ����Kl@mϓYNL�J�	��>v��n�q_#7T���x���U�E����vL��#���t��̸��D��u�S�^�{�����?�̒i�r���ڇN;�Eu�?=�j��l��o['>��VA�U~~��ډ��5u�V��g��uz�A7RH�����l*��k�o�=?�Y����߽.�u�{B��5��a�8�?k.�B����n6�?������þF�=�o��r�@���*LlYV����`+٧D<\;��X'���������I���g/
�2�^�ޮr?���u��@�{�{��{�`���ͦ����������Y��bgܦ
���~v]���)�[�{X��v@����<�p�@���ׅ�C���`��ke�_�q���~��D[ɋB��ޟ���@g5t��3���A�z�8{$Z4	xܣ���g�P>�M�Ȩ^�Ă��"v��Ύ����c��L;�J���	���h�ם64�<��޿�),��p�D��
��?<�ᾌ`aY-������i$�]�~B�ᔃ�/?~�ƺiq-�p:�7�b�&�����
Bu�Jx�m�u8A8�k�xj2��\zs�8�.�,J�6C�"\Q��1����e�
�{"��m���ܰ=txV;���^��ݶ�kt;�=�*^�g��#W�?iK����
�NID�B�T2�j#�5У����{r��,���pL�l����;���ϑɇ��g��=��~@?��8LWgy0��J۠�� ��wM����&U��E/-�w�#�6�؂����@ѱy�[T�7��h��FVI ��<1��)"Aב�Mۡ�đ.��[�y#�[�����`X���DŽY� �Q8���ؤe��{|$�@M�u(��׼Hb�‹��i��b�*���q�q�J��,�2�(X���Ėcs��^��BY4σ�"�Gl����$x/j"����
�B��㽑�/��ɨP�n��@�a������M�CV�5:���p��]���!�\��pd��?����s�9�jN+�d��^H1h����~���WE+'��
j�l
 �1�t��,�N��5��	��()���=~u�k|��(l^h���N��	p,�/��#��:��ٞ�& \s�IH�Fk4<<|���7����r�.
�D�3�V	ؒx�P��G��
1TIJ]�.�|R��7�ФUl�:@����}2|N��OW���j����cz�VD���<B�
���l�����X�6]L�s�xg����t%ML?i>�(�p?Ԥ6TIlOH��f<��T�	=!B��Z��((���%�[����蔰*q�y6L����#y-�����(\p�X>Y'!�z�MְR�K
D�%�g��pT��ArW@}gd������><~6H2��ϘH�:|5�j�M�B�jm����T>����N�x^P�8�,Z�!x��=+8h��<�k����>����@�U�w�%�W�6
Nd���"���w��|��Mb(�I���'NZn ��;� g���hkTs�#�ЪI�@U�(��
M��a}�>E�D������ѣ�����W$�K$�ڧѦCm
�}z��%�X�5�hCd-��_@�0��V �W�(Ji���k�|V���Z�c�b��5��]ڟ�[,�O|����?��yh���Vr�I߃�h�G������l+#��=�����Q�~)�fާ'�Hct?�!Xs!s_�.���x^(�AO��nPK��AǼ����gz�S�}�h�aF)�jF�.�[��j-�ӠP��/���a�\��P�j�fӓ��,���k7L�[���y)Y<���ؕ�[��Jc>7}u ����]�ѳwl��\�y�y�+�;-0�@l�FJ6��"^	ptF-�ñ�nǺ����J@>��_Sd��zj0�n�k���@Tj*\�b�����1����N��P��y����vK��5�>��
*I�#8�y�MC��K���q芸
!�警0�v�k��l��h\4A(�J�6f+��]�g�k���78n�����+y.۪�â����*,�<R��Y�(H<�޴ $����X�:Z�>�Xp)r�d��R[�i&��mЄ��S��0ퟥL���8c��/`ZW]|�ES���R�H�ejð�N
)�ec_Z]��E�����퍯�T�:U�
�R��u~os�
��A#Y!Р;8q���F�����^O�	<$�U6/e������M������8�4�`��AR#
 ��o:�|�nb���ϸ_���]�D��f3��a,�~/����j��F�G� N9�̕qO#���$A�D\��k$��;s��#�oE
���QlJ��׵E�>�o�g{��ơ(Y��sf�Z诨��<���#QjfN��L��EN�l��+��Byg�>��x�	����I#Stwp��U���5�S�/@�2��f�Al r���ɔF�����8�2'�}��o2ݏNB��:U���6��.7%/�3=���Ȳ�xz^���X|2�AƽAHu�{>��u�7���Nm�6��B��úw���)Z�0׫��%�OBJ�E)^���z�T��:L��б�,TP�콞�z�~�t�$�W��q��`�Fh���X�}qј-�9>Q�,N/��Ts�$�?}���$��@��(L��`D"rt����e��[i�s�V�A�M���D`;�q�����B�����������D!�fy&�PMu��&��"�~e��yM���v�SMּ6��;�=��dжi���7��	n�D
�kT"yn���(��|��y����j�٘QX���\���&!��
��t�o��ϫ� vV�K�o�i8�3HA�,<S�a�m����zE�[Y�8��s����\{�"˗�>�5
ECH�Y��}�Qm�����y@g���Y���g@q˟]�<��cd�q�Վ�H�'	�Gc�h��&�"
��Qqm���\�5�ݺf�����{��q����u>�N89��lh1S��h�@�j�ȒD#3|��a7x-+T)4H#�8����4A<���B�>�Sw��M�N������7��(�o@4i$�n7s��7�c�z�хA4%��"
���T|��jX�"�[�wѓ�/C�>t�W؈?���{�Z�1�A��;��^&P�^��+APi
;��ML�EQA/�m.�Rh�&��Lo�F���&�P�{_�bIs�壠l�^`�d(��@�Ac=�n}���=
w��h�!���is�9���s� T�����H��պ%z�{!�V�0\�H�O�����/�|����uޫ���V��C@��D)�@T���6<�Û'�pj�,�AgkXbP
z��z�i=�k���mz���m���?m�G�7f5yP�T���1rza���{�Vx�_d�5*���ɼ�ځ�?�x
��k��_~�{{��w�[�گ�f��Qr��u��ޠ���3��]n$~!kC��� �U�U]��=���	'<<+��9��օŖre���
r���e�6HF����9�r����K`4�1X^^b3y�|�U���Aw?���]{���]!R��B��s�3�%a��HƘx�P�ϔ��\j����{�t��S���b���+@��!�a������3+�k�P�A}���8r@sL��������[��N��$}�:<	F��`��vvs��b�~
'n.��:�9�����jq"��J�B�{���4N�-�W�z:L�h�|@��8H�f��j+�▣�L��|�&6�.޽~������m����
L�>M8,%�o��i��Q
+L��Z�.{��M�
e�׼���|$�����y ��<^�=z]�D5>gn3�
�7�J�Ah�	�b�������˄O�ñ�3�V���x-l���n�`����"aE�Y��еr,"dߑ�P�Ա���w�s&���w��<@T�b<��sm�4�ٜ�[���F��C^[^6ͽ:!P��5�[�bĸ�[2!��_[.�p-�.��&��Ek4�,��n`��m����8=V[���x~�r��uỺhk�]c?Ӏ����j�� aI���{�W�	Qa`���3pv����9�Þq��)�e��7[��EXD�'��h����������*ȯ�>1q�O�_��������m�V�=\��`��a>S� D?	Pn��	�[��
���8dD���B۽��z��^�A�E�7�|��/�A(Pʟ{�S5�`��\%��5c�D,2J6���я�6+�q�H��$�a*��̂�G�Q8x�(��Dy1�r";;�=q+5	�U}���-ŃAK�j����NUb�`jIc�X���	�Y
/T!������%'������W�( [*& ^��kQu������i��^(\�V?�uVC�����:8;@ɧ��N_o��P��&��(Ѩ����}�rG)X��Q�3�h�BH�L���6�9ab�fp��aQy�j]�<�{#��B�F#�N#S=�Nc.0td�	����l�ʨN���9��\',��Ϥ�"��=<��,�Zr�r#�U<jn�le�P�@�8as��8\%�ž��e_�"�?Z�.���X�y������|���H�����GÅp�	(��`ŋN�b��6�'L"��o���$������͢g�ށ_T�+��=��,�Gqw��/p�|� ��ЄM'��ȟ����j�\E�����B�P9�`��	��b3�
��K'�n:�9%b��]J���
xH򌥶��Ҽ�i/}"G�����
�y���F����g����6��J�����簫��Y�ߛ������
�Zn4:���y�@_H�v��
`��F�����/�&N��˦RXɮ��w��P?l��4�ul�氨%B�MIT��;�)��se%�7��g�a�*�p��„�;ɲ��S�󗕩�d�	5��֟|~a(i�w)xe��yh��ƺbX�>���w�{)?�u/�Q���t6�2ϳF!����3���D���ԍ4� �����5���e��A�!8ڦ-]���V�����4�0�В~a	�o�L~��X�{���\d�v��iV�n'��3��X�&8��N�1[o�%�L;��n[��Q
��%~n��W�>��{��
Ć2�PL��f��	��=��F����J�4؁ـ�)�G�s�7�I���-@�)`��n�8��r!�B�9�8�����V�U0mn�Y�a������	'�4�\
��u�[�� �[���Ѩf��s,�ao����E=B���m'~�c96�q��ō��@�@$_>��N\��2�q�G��~v)�q�cg)��4Z�����/�
�DR�1B�ۺG��(�
�2K���xu[ׯ*��Rm-D���D<�����T���С��d&E��-*4
7nY����.�}:��+x�e�Z���n.�*Ͼ^`_�G���Ƕ��
���l.qD�_�*��b�t��,�����C��j���'VH�'/�Ab`��/�P�[�r���T	�����B�C��������?�Zb�`�
�-c���	�4>\�@�0ν�Q���F#�.=/���:$>Ѹ�EE��T.��P �'�3�`��x= ��o5t�&��:���t[��%������(����3N3-4'����kUt%b
:a��{�z!	��*���5+�g�t0^W�ߡA��5�I�77(ڋ�S8Q�y��@voY��;_�r%�0�vC�B�Q���0�}�Y-���m4�������Zx/�u�!3���C�.�T�uoCR	����u�
n���L����>�P�] %2�I�<lq�$����d��ub��Rp��:�sm	`n'=�C���3eѣZ����9m`��2�/�_��J�gZ��L�B��{�a�<	�#�
�|M�qj4��^W��)}�O�l�J���Kߏ���u��1m���7%�
��k��ק+oP�T��p�"��}��d�vB��~I���X[�M#�l���'Ȉ|�X�:ԁv��NBq~l;�Vu�n
AewU>{)�������P�"Xj��4"��Y�@��W� 84�6x]�",�3u��kح������w��0�4����5���M櫟x�#(�@!��ۣ�����IM�o,�ᩡ��'ձ��X
��ᤶYrav�1��f��=����Z.��_��\}�Eoz�L������B*�z��Fb�ܣ�vS�E�Y�,�i�:Z&�HLƂ,����Ɯ@�Bh�Y��)����+�E"拠������y@��ɷ
�E4����\!m�1[B�n�)�Ѥb6��0����>b~a�F)׀�f-��
��z�6�m�)���=$I�N��yk��1�f���	�����Ł= �}p�1+ƤB��Q�
gG���fxդ�+�� �x� ���_�<�3������x��m��/e�!K�`�q��P�?��k���i������N��^ܢb�0A���G�[ׇ�@�lgd��������x�(���&�n���ؒ8����<K?��
�l-'Z+3��Ɓ��7��U+-v��k�Um��F�.}p}�(8%	��Q�t5�U���0�i?Gټ�?��6,���f�!#�5\;�=m�vp����g��	�z�*�

N��4�k���Y�(k�c��֠P$3���H�f	QE
��*	�������*Q���9(d�nLc�C/@����o�Lxՙ׀���«q��h���i�ٖY�e6�N+qӄ���#nQ�
&��~}��^�L���+}L����c-�Fv ����EL��}��TjR�ҧ#�����i�n=����m��]�&Ɇ�m��4�.t���`IE��;��hq�@�7`�{�F%������
c���@❀���C&A�oz�Y�p������+�G��L��3ȟ����{0���\��¹)�U��|��,�Ւ��gjW�_2�S;�Տ���	pp����h�^�R��@
U����)�'�j��K�U�D�i?�h'���`�����2��IܻG{��#x]_e
Bf�-�s�ZiT���Y���@P�O��>��ޕ�C��B����3/��� ������lq�ؽ5�pr��u�A�R�B:(��h�Q��=�f�&{c΁�{��G�!���[���{?���m���op�LD~�so�ώ�HDe��N�� ����|�2�����@z������)CA �dj^`r�$�I�������Ah��m���N�~u6-�'!�MV|A����ߨ�P�ù�}m�j'�Z��Xh�\k��-�#�	�5��b9�/s7{@��B؃R���'�]�TW� m��	-c��Z�~+�Z����b޽?�����=�k�}����r��"��z����/�L*���i皭NU�p#�=�=�VA�=�y���@��AO��~�^��l�iZ!Qb����o*!��.�bD�)��L��S#����R*R���N�c�/ ��i��*��m�"��~kk���(O���5c�,h��L><� i�cӇ�(��>���#X����f�HT��W��B=lG��Y�&�/�NB����QQ��?�����4�R5�1+t\�MNf�?A`���x�mš7���=�u��\�p��#[�������5اWj��b/��S�6����k6}�.�0�OR	Qu��ж]W�'
��@�}�5�����1P܏qk]U
�d�6���!��M�B��#~0\�e��`q������{��N.SI�y��
$4�mڪT�^ɞX4���"�Rp��j�&��sE*����U��`��k�wr�	��!R'#��8sK@El ��6�N���!���1h����S}�{pX�	��B�^�P��軋�S78g.
66@�El�]f��7/e��ߓ� ��.`Wr��w��2�/����l}�9t�A�����w���Zo.�l�lZH p��kG���v?�c����D��Y8��Zfp�m6���ozv��Ҩsx���ނB����曉uW���~/�{s��{�3�ɕ��z%h�<X��Ⱥ'��@���_�b�Z���/Ե[�i�������7��R���'��a���~��o2�U��Y�����g�[~���T��Ҏa��g��Ϯxi0�t_K�ó_�|v�q��`9uo
7
|���������?{�	�ELд�XG�x��u�YS������	�B������S/	x���T�8Q�D>��!x]��WW{�M�r�����Ň׼�sb�
���}��ډV__/���֙��@���m�4�@b�i�}�].~PQ_%N�."�^
�ť�s��w��@��wȮ�~�u��^Gx��A��=eNh���T]a���	��Y�f��-^�`���7����ϵ�6t����{��/Pb'1�eB!,RѪ
�`����K�\a�����$Jg%�d�DF��h����ܠn��S��p�ɟ�+Ԇ��vRh���s�yS��=I5�v�����U�Lo�ڇ� dx`��w/�4�����?��8'�
^@T4޳E�z���-�K#A�s���c�=dˠ��z���ng�b�q��I~�u� =�Xk�C��`E�k���$�`0�I�t��9>j#�C�)p`A\mQ��<U}�r\��4����XϖI�k�\�{▊�t]m��4�a�&o�7����|6b��G߾��`di�62X5b����g}���'_竴�~mc�������c��ҋ��&AE<�-3�C��m����d�����L?<�5(��+��[x[�f8�S6Y���(�	�����{T�������t��YG�^��WK��
Gc�^r��$z��s,4�%���S(�Jhk�:P@��զ'���x���
L�8���QH�(�F�
��r&�q���l{��г=�o�`�q�x��-P�Q;-o�,��}�0hP�g��6PT5�6O8�v<U�
��J�mt
�?հ���	��i�&�|4���u�I��!��eZ���b���z&���mD��pC���Ĕ����^>��*s��^e�za�ߋN`���7j�c��-6���� Z�����`ҵ��Zb���h�5�{�{Z�	|����L�9�yo2m���CMњ��\����dQ�}q�k:;��l�8l�-����]!��0q���=ΈDN�3�w����)�e���>���/��`��&�L��j�"�]G�j�_�H��_���$It����&s'%c)���ږ�ܖ�ʮ�R�X��˚f���m��l�/�_]�B�O�%��\��K��?[��/�\ͲB6�]�jڗ�l�	1 z8���RAN�i�����rP��*�x��� �f����(�v?���Wy���8HV[�ƚ�J�ѵ�9�r�m쪬6�u6�QtS����\7�Y�~��	
K�6o�����q��X�RIfݹ���0�jъEt�C��v���ͦ��>��Z�����J�	�
Ɂd_�:�� ���_�J�Ǽ���|O޻���9s̃9�����Ϭ�M��xM��a��Ub&�8pO����?ڂYk!�8-��6��̍&ᰗ�x@$áO�I�K�K~?P�l9�@���8q;��^[�`x���g���' @}�j������L��6[�ѣ�?��0e���8^�����A��X�-h�_%��<�6��H,\!8������އ��<>�,-$��$��:v% �nD��t���p���4+��e�q�E1tk��G[&�:A>��X�DZ����q#-/��_��p?���F��;��΃���!�~���S�������k��4��
v���B��9�^��e�o/'ݼQ�_c=���;���F𮐯31~/����*k����KȈ�@��7���t:���p�cI�<�4�`4Q�*�0T�*@j��Ӯr"���&x|����$�Ȣ�6_�T�IW�:�2�;
�
���>���Pkl0m���C{T����4����5��V�í^� |�F������:�p�,�<%�K�*��o	:[�#@֭�.���Z��{�s/��IT&7�_�q��%�'�~������&��3���z��*�@�&8l�(������OP�YP%NT���%�
��N@P�fdKr~�j�9�hL��'@�����UI�hS�_�T5�Q���a+�+�o��
$�R�9,N��Z�h�7/��4jP��換�͉�����n�����W�!r�Gv���	��`�F4���rV��}8�޳ް>;�ȶ5ٴ~�M[?2m�Ú��z��=�O�ٲ���Oٹ��=��w:m@F�����n�P�ymI#�d����I$��Ya��7� ?H8�iW�s�$�CO>����y��آ/��Z����
X��T�zO��C�6�8#Uhd��Eh)�\_$��A��Wf�"��?"�vH~�Pcjw��C���x�hB��4[��=ʱ'q`�	�*�f��y�{���[�}��O$� ȁ����u>�C�ݢ�e/k݀{��7tN��Q�
IK@Y���Z��v��,4Gߔ�<�����'�i���K�Bb�U�9P[{� S�KO,���h�3��S�yF�R��(����w�j��k�%�,%Q�["P�t%��x����͓�Ub��=��
c�! ���
� 
��N���Md�Dmp�~&�@�*X�{�D^@=�$E�[Pz}��ͯ�a�GZ�UA�Q���{ d,�%��w;X�V��/%h�D]���(%2(آ+�D�$�s~��$�1��"_�����O� k�GӮ,��"�0����a�
ks�,;�Z��>�����g�Np�1����*�$�nOs釱)I�
�|Grtv.��dE�3�x~�$�_|���&V�}���	��}�_|4s���|[����x�����SJ=S�N�9f����-`��8p�lV�������p;�Uѷ�h�H�����xd)��f��{��|\���|L���Ҡ��#=�cxL3菾�[B����m���
�d^i��CN��h�{������\����m����
6\�ȭ�0lL��QT�~�����&V9�;	�lT,V0�7�v20|Lm�=Do�:�H�rx[riÆ��P4] ��ٿ����c(�1XL��
�Ikq
�
�e@�r�`Z]�5�n5��Ct���3#k3Š
��Meً��C�j9[*�%`���w�F���:y�k�u�#��6��o�z���h�m�����w��:�)�"ɯi�V6n׀������t��[��׮�|��W�J&�T�}m�������o�����&!�و����?�Z���w��&qoru�/W��T����>_���푬�^�y��8\���A�[�;�{�����}���>��,�>�YEW�f�����@c��LC����
Ŝ�f�I��v��)�T{R�b�|�~�i���v�Pay
�g�X$fi�vq���C_��@FT�#�W%��/{��
ڟ�8�>� �vl
�j<�/��w��^Pd�]���Sž��-�E"y8��@��?`�����l_���-��$��W-�Ϯ����R��\�t��CB���l��g�
���
��\�[?�J��'X�m�qnu'P_�tbK2������
N��hY��γ�*1h���a{�ףּ��V��m����ùomN�k?7�d
����� p�_�o�7W��}�?�oF�;���0eD���
�����eVV
�4���F��jL����I����ue�F��E�>W��O>܀�����EpK�"�"1�ׁ�x��(0�y���ݎ��|�Z �(B���j�
�[��p�"#���w��Sl&i_�E�W�Q
���׍`r����H�~x��&�F^�vb�ρ�޳�<�
�&���{�,ϹF��z��\d
���W\���p5h�����žn3�}˾=�C'�
H*�n�,�Y��j��P�(�)���F��
j�
��tL�=������A@woD�N���^ܺ�K��/�eI�k�&����V���V�Y3M0^*vzV����a�ga��Q�PL�.ɘD�&o�A"ؚT���C��X��4,ј���G!����B�(>X����?s��ܐ�s%��y�ś�fP��s7Y�#��5�И�>�=FJ�,��yd���rjb���;RR@�!67Pr���@�pk����E#�
C�_���`k�
с��AP���c}�]P�I�ʘ�l���w@�l�h/ǫ/pm�j�&�FB>i\��� l؅�p4��T@��0��t�D�'fa81R�Ym6�JϻX�t+NŃ�V���4����x��L-JM$�0�5Eo�"P?�jn����>�!�N�˧6pT�Z���p�P�����ŀ�^�a���'@8Q�π5�F���M_�7�}���bˉ0W��!��<Cb���yTiJ�;1T��@#�^���
'j.:Ɋ��w�t�\ITQ2���z?远��oɽ/B��q�po�iq�Rf�I %ɾ�$������g�^g�����������Gs����"�1{�k ���}�o�^W��tr�"P��Aӫ�KY]G?;<��Ȃ�Ȏ1�cIN��K��3�'A�翖is��Z-�iM�V)?��(� c���������P��`�]<�?CJ��N
�+|���N���$8��
���f+8�H�@�k��o�/� pˁ��
O�х�-���&Ɣ��Zn�?����OF�=F��4�� ���T���I��$o���%�F�bM�?�pۛKn����=`z��3�bHl�g���u��-=�����dv�o$�6Tu�XBfm2jj
8Z$ڸ�>Kf]�yUM�p�}�}z���W�6I��r��}��Df�T��'�����������nPC�
h��i�����
6�#��|�C��J-Z�4�{�N�%D��~
��>A�6��0����E!�� �{�Ot�C��5Ur�*Ԏo�۠.D�w����
���:�"�F�``�5 {�`�I��Pj<�A/N$ڭ6�=�DfEbfNdx�]��A���!s�N0;�VA�X?Sؙ��Em���P���kYa\pm�8%t����T���Z"@5~����H��3�}�����Ckq��/%>/ا5�)>`/��ek���J�_�F��Z�;^�ٚן�1�w�{�S5;a^By����'���8adG�xk����g&zs���y�a"�P>L5�:�5�)�����M]��g���խE�U�,.�y��*�yx������,"��5X�"Hs���MbR��[�̠���"���0���f�	_�xCx"�b����N?��CM�ڧ
|㺃<���
�cE�r�B	`�ȗԏ�mP��:"^�[��'d���Z
��|���;� G-?���p��=�2+)9o#���y^'��O�nm*Y|���iL�s��EA�P7��`�*;FP����q�
T*^�0^�J̴3�(N`lY�Q��Ձ,��$ �	�A���l1ֈ�ϏY
�S^2-LN|Ua�ަ46�$�Ϥ
)��T=X����v5`�D5W&���"�@T�þ��~�*��
��l�s�H�uznP���$�<��U�&�����=#h`�\)�
^���Fۭ�Q�������5�]�NՔ�Y�@o��w]�Ɂ� �������<�'���~����_U��sdmt�����:���ـ�-T�������=�>6�xz�χL+��7�u��g��+�g��8EYA0�*�C܄l�yj:�D�p��e��A��g�@Ex��W������IgWa�D�;�p�G��\�G��Й��w���f�~�
��!��{�I�3��$Bab�����d��	�9�&u�U�D籭@ơ3���������`o-�&l��Z�׿%��Vb&�O?"��Į��S��k�F+� �<r-t��!P/p&n����I
�X�����kQ�0���*��Dt�����;�L��nM�!�Q1ګ��93'�+������`�d
��v�(�$Tj$��TK
Kk-��KMz\;mTb(��>R%�˕>�8��2��<=V�'�6a�=���[�ER�=�j�fFDw��bVq�13
��P�o18�`���-� �����Q��;��7X{{�������B��(��j���+���XN+A#�<O�T�l�����,QԆ��1C �������`-h�(�VN���?���e��̈́DZ(G�a���2�pV��P�G��Q^>����)�̒�T(��k�!����n'o�Zm��� qg�,4.Ɇu@��[�h_��=�*=�W4D_Z���5U�cW�^ȭ��Fh��j���T�;�x������9��Das��B�`֞2�[|��<T����hc�7ze*F��*��^�h�=�[�9���iƅ~%o�1:��z�3B���F�J����I��������T
+}��h�Nkk�(.J�1�!�M/�T6!�e�?��逵�.q*�����4��M3�҇bw!Y�Z�le5��O$
6�ڀHanB�ԤzD�;�8mɦu�R0P��?w{�'�[��l�3!,��r���"mkd[�I���6��|��u����]8ڼ;x��"��L�HM�,�Ƶ����`IpR4�V>H����sn�䓯?/�\���pF��k�9q��>�@���� �.d����RC!���m]�pW
�h�x�pv���n+�DsuZ@'U�o`��j�����*�X؀$���=W��g�I�b��aQu��&�����˟���51��tZ���"�t�g�g��!��>8p/��[9�k+���]}� ���3��k`�I��<�Z�iv��J��_k��˚�"t~R�/��γ+�g�G�k3��|�WYC�}o�3v��
�2A�kW^��R'�ӲZ�"@r�gO���{;�;l�Ћ]���[��On�:���(tY��ܬ]�B��:F�(>�m2/���jp6�}o��To���sS���&^��":}�yo���Cx�7���B��<a��_�,*�^���}X�OµA�r_+�$*�����f�l�K�����k��P~q�ò���Zp��d?$�.�v�b"� ���Qc�
�&q"��B)��d�5_d���׸�:�Z�&��ޢ����A�b�EU�\dN�x=Q	<i� P��l���L-��Ľ�l�]���H�b���
rΊ�a���?h)�C�^`�Y$�+��
IY�Yi�O̬��a�v<;d�� ��
��YQb.ֶ��@�
٥�H����O"��k��uH�q�5��
Y��$D�U�$b>tE�gS7����j�2kp�`]��S�G�HD�d2��ֹF1�C�?n+	<KU4�(�uk�,�'��/�S���Z����ߟ�C�db��
���3�I�r�s�\t��e`1T��[�wC�\Zm��ա6��˅BA4�L^p�l�Y�:�7�"��A{��	�/�h����@ܽ��V5��݋�zK?'F^�k0�!2x�q_��;C����K��g
,mxF]��g6u����E
{{V[�adZ�V9��{�����͊�{�@�<�3�Q�L@mk1L�wӒXh/��%ZI��҅P��{�`e�f�E�+N�H�d�T%��),�c�Xs�+�0#��Ȣ�G�}Tp���-c����]h�q;	�.nG��`��*4�����p1��gG���0 ��2*�l��9�Si݁���i�@��֭%!X�[Dd!���dZ��
`�F�k	��s�Aa� �E�[X~Zw�ڼN��"�ޢB���L� �
4�|S�hT�|���"/�O"ց�΅�Cܻ����]�w����+Q����*d:XT�r���U��F9d*y�W�	�7�����}�i���Q����M�R�&�/�[�5�{{
��{��c&����]�$I���<"�?f� ����?���# B�x��LwUF�q�:,\M�<"���eWf��+?<�����T�~لx޽+�B�w����oPlف�D`��
�_��y���<���П6���K�?�Xb�!��H!�JU��_^��IZc鑗~����ὦ(�h~��K�g,��7��s��t���N���y;�;`:���%�Ű��;]k�����MP�)֙��E�I�+�"MN��K4�G�[��Dc�:8�%��ޱ���r,gi�TLm�s,�F��g��Y�B��y���g"�|��E�ʽJ`�hZ	�E9�I��h`o�&q�(�$��N�=eqR͛C�?mf�����7�k��.�iټpbf;?hR<�ٱI���M�
%-,2�3�C��qB�
�G�so���*,�^�Gϓp�*M���dO
����~'8TX+k���o�K��06�+(B���l'x7��s�瓬_K�oﵘEB�
JG�f�hJ���I{�[{��b~���w�������z�t�iD`��,����J���54�J$�9�n1�Üu�D;!jy�ϰ߰�`�K��0�Mr:$F��`��AhՒc���� �	f����5�/p��`��=!��Ͽ��F�j��{�T�ެ[[���	.fy���U��r.3��)x"�w7��k�Ѻ�j8��Y������&*L�<>�
w�J�f}e`UH��2"7L�$��~T����5M������A�N�%&?x��	���D�8�L�^{l8��O6�D��r���\�:���,�X��®�C�7��01*iH�ב�d���C�\c���>f��l�*%��@�X�p�M���j��8��F�1��4��"+��>��l����;�)�w��$���nB��eՓsR$h�bt�uK�d9���F�_G{�}�=���#��v���]Ql1��LM�g�$.諗~r'
�1S��WZ���r�x
���D�5L8I���`�W
�dL����a�Q���Ә��5�?�R�S5�� �.C��a��(��ƼGZ"�%�G������Y7]�~�T�d�	H�xa������E#��Mz`��0z|��8J��:h���R��RݘQ/���1{Ϩ�
	��F`.5NE`��2cb�7��/�$XhZ�F�E��7Chl2���	���g�O�|�R�s8�[񳐼��=�V�	b٫��ct�w�O����A�A�@��`*�z�ik�?���4f��5�Կϯhm&n�n����~��?�*�+.޵���Z�T{���F��R7(ᇹ��,<>�Wzf���V"`(� �]�6����-�/2�J/�bt_ (��1����	[�����Nqf�|KO�:�ۋ��#�a�HudȟP�"s����>���ڴ 6R�9�@zR��S+q�e_6�@�۬1�E-�@�;s�b9L?�3�X�ss�
�F���3I5�mkc��
4E����J�=�ט+b>d'5ڻ����s��4>�����ԃ��-V��H0
���g&#��D����Y{y�ѝ��X)��v���`�d��8�=��4����P��`&�rb�J�I���s+J�/ὤ��/j� '��rC�-}�+�udy�g�O0�t�s�~�<t��"i��E�7h��
'��e򻅴�'��<eV	�_Q���(�I0(�\�Jl#)L��� O�R���;$[���.��|W�&��|�┏����{���4/6�pn�#� 6��uxނ���$
��5��S0�k�D��.J��}�9�v�B��P�����f!��
 �!*1Ko$P�@L�놉D��URC�U��O��Y�`�>N4����3+1)�`^�ofd����1(J�����{�Dm%I%�3M�3���Js�8�(s��ρ�
l7�n�Xm�w_��T����%�E�a��������$Lj�w�?��%
ɸ��u����;Yot��Z�Ѿ8��.ݙ/_%-�Ŀ@����:(�9�����4f�,��3bpO�1酚�8�W��(�S$���?��0jҡvc�)���x��@�쬒�$2{Q��2#��BEzg�ʟTg���{Y9�ijus��[0g�5�Ȩ
��'�sY*��vBF�${�x���'��k����?�[�n�&
�{҄��s@:�5��3�Wpϭ��@<R!�e����"�u�Y�>��z�M��af`��S9���5}2�9�2L�!g�Yء�
#�F��Վ�����j'܏Q�az��������߯x�� ��5�Q�߻��y/6}�w�g�5~�T��5jܘ�E�jM��ͮ��a�nx]��e�M�B^�"E�jb;Ö���V��<�)�+4j�A�9*I���+k��Qs�Fl�a�D��c�~���|5�P�0�W���Ɉ��>����m&j��w�B�@�&U�
ћD&x����B�R�>>!Q�^N�&h�7we���]b�?�YfN�;�c�6�IsaĬV���v\�В�ne��'�
I�R3��*������	=^j�@W�����+�d¿�嶻�ꁎxf��TG��B�]�aMTgc�O5�B�~OO�]$}9�c��D�A^�dZ�u2H�4�>��A��̎�F��C9'���M8eE�`hL��ۈ�H�*�����!��(��5��c�
��j����ŁlĀB��~=։X`拧��3���]<J��4iLt��rL���+ԐkBF�Ȱ'5���X�#1�μ4̎���A`e��Z~�?c���U��^���,��1ѝ%�F6��3�kK�|<V�8��ԭj�Uo���E�n�b��0�^�K?�ۺ����%���J�I�>�v�$�
qZ���� Q�ɭ�&���7`�(5�V�D��f6���e��Vc���� i_S���M��`,�����%^�F۝4�앾�^M%[+ �Ȑ��u
g�5F�#'\�$E�Fr֘j��2c��Q���缀q��o֌ذ�qi�9�CM�X@J�5��D�k�K�jwhK�6&�lc��F�*4�bXi|���L��g��F<)��{��2I7(����N�4�R��q#��Ӻ�\
�76'/4�������:s��l~6\#��՚ć���|�i(�ȅĢPs�  y�����%��W�><=T����9�YY໹��kR/�~�����nz�"M���b$�~�f����Q��v�r�Dg�9K��ô��:�q~��pL��g�M�%���Q����&��rEʌei��c�d`�B�y�˜�L�۳��~@��al*ȨI��12���6���3��_��ه�#�����А��҂��	�M� �^2b�T��|��1:�g���g���'��V2���O]��Uz�O�3zK>z���Y��H��z�v'���m���}�߁���E~āǯ߭��}&�YSx&Ѱ<k�d
#����z�d���s�������SIG�]�}�|��<&j�0~�(���w6J�-[|- �'��݇�m*lj�-M!���?ˍػHh��(�	j��_�Ƙ�������,�!��x�	i�%�q��u�y�]ƫh�u�|x��M#+�k�W��8u�@�X����y|�p��Ţ4�0��5d�'�Tk>��Q��T�l�Il�<��PL�9&ۄ�����0���t����8h�'"�j<oZZ#�]&�"Q�A�o�i�KTio����3���
^p6h"���6�3���`���>���������.�$���j��ws����g�K���X���T�cG�Q�,���M���3O@�%��0=�q���X2�Z�m,�\������j�K3��2A�El5�k�57	
+��&٣|'󷦓O	(�}�Z��q*߷Z�\��ఢ�Hi�~��2†���H 6��a�c����Sce�	a�5�f|n�W����4�b��!t��4�m$�Fi�@;��/5��������]#i N�����	6��,�:z^lbТ����d��P˵�:~��R�{7�(����G�A&bSH�n_���
�i���Ʋ$v��e��HJ,�b��O��ʒO�i*�"2�VJ
'L��5v�fL�d#%Gf����iJ4J�`��kA��_��o�, ��Ȣ�'6>�"�$D�Y��%��`�$�^��(6*~�k8J���Q.��'+��U�)'=H�׫6���7�A2�C�ICF�X�E�&��'/���Y�k��{��\���	��7��@�6 ���ݭtwl2+F��4v�%�꼰~ќ	l����{��E���&��T�";��fѴܒ\C�X�k��4�Pr��Gc�e
���P����59g��гC��Є1�%1�P��7�qŚ)�Y�s+�!ݲ�fxtLд����.��c��N�o��@Rl��@Se4�ףɌڣ��;�ir��d<�y�(	�J�Cv��n�����((1�n���C��g�D����z����r��{LRI���?�\��X��_�����8����co|&o-�*.�QH���F��]�t�?[�7v���TCƎݍ����N@?$<����6պly3��>2��A�1�Z�(߂T�z�2�N`����h�Az؃��݁��	�Jy3JgT��@�R=����Ei0_�����87�$Y)%�?Kk������L��'�k�ԪNұ(#�k����sh�t�� ����X�f���Ф�Q���1��*6����Ŭ17�>2�-��6��&��"�s1��g����r�(QhT"솵zm��ݢ?>�0��o����V����g����J��e�v���i-���
jz�(�7f�_��dk7@�X�&X���E�_\� R��ON��DJ@�!�
Mõ��_�Jyz��,#�Y�T�~�+�b�U�s���27c��v0�Y" �B�&�A�
0H�>q̘�h����`:�ͧE3:�V�9_�iz�����K���G�󺶘��\N�Ղ#�$���i@z�:UjB��}h�~;ڨ��jz6��B�5��Ϧ �h�k�����@T�,.&�"v!�/B����-���s2��B��UO�oUX���t(���]��5"� �����º�F~��N�OR j=�K@1�[�={���P����מ���o�K�F��4��H�̒�^$��Vx����li�{^#���U�DK
/?�̀,p�~�CViZ���@:yL�V!V�E968���€'
��
���#x�h�(CD�Ȅ&@Ғ{�І����9�r=�3���yU��zR!���{�Bzق,)2����T�>���[%��$�.1b
�X%j�b��1��a��^LD�(i�u@u��5^ѫ�A��?��Wx~4��a�����OK�Y�X�)���d4���ac�cө�$wh6�
�e���~����qf>m�ne�(��t�'��7�JG5�'�S�� ��-����r�tB	�;�1/�y{��X� WX��?9���%�����*�rTF�)�����mB��6hk��|T��2�j❒~�m�矤��
@�@�1.+H��D`���(w�F1��"��DSK��5���7��z��U�U`�%U�ّ�&��ϡQ��d`��[w7kR�^�&B�A@k�7.��M"�/B�n��\��$z�\�"��@V���2"5�:�o�N���-����a��!o)������9��'h$��~��e�^^�ϐ�:6���zD����j
6p���M@B�<"%fi/�K[V�߉�3�
��]ȼ�;�[��S��δ^V��6q�c-�,։��}?ס^�j���H�2� j�&&
b��$Q���P�Cq
Zc�Mh����$�d��)�B@ϑ�)`$鼑50�MB�5�jѳ˨y��Zı2I�݃M��N��=5��@]P�8��bx6��յ�ʬ����>����={*�!��RJlp��Q&��wE5lDw�����L�AW4�=O�5��;0>�ˆ�\��FY��
�]T�:�c���>�˼0:�bezE>���5��&Z�I�Y��$�C�˟��y]�#cӟ�$Pυ~��xF�_@V[�!����6�3�Ҥ/x�]*�+R'yא�_p>���?5�~��z\e"�:�FM�,Ѽ���W�Ex_a�G��#Ko�5��F��DM�L��l���E����܄����r�F�n�w�5�2m�b_#��#������(�bd�"�^�����+��R��QR*�W@�Œ�̄Xװ���$j�9l�`͐���zx����f+�:��(d'�͎�5i(q٦���[cS�ɏ<��4�f��\�Eўő#��wݒ�t���Jӥ�D��%=�p����b�8�!��`�ANFM��-5ƍ����;�Ϲ�X��@RP)��TbQ^��&���&Iп׺��37����ϥ1�?����g�׀
fQ�a�
������9����Z�e
�!%��EΧ>I#!��b�u�}��'����®r\#6���G�Bֿ֖� �Q\�>�r@�X� ��RJ��||ׯ��֫��FF���/� f���H��P�|F䖑���'�;�Ȟ�y�_V[>��
��	&��5���j��F}x̳f����~��~�
�Rڹz���(·=fM�p���87�Ȉԋ�7�9�*&ƒ����g`T�6�j�P�����w�FV���ݵ�X�Ea�6)��A���wF��$�[9��������<�'��+aB�@��j���2Ro�5:����"Q|�H~�0Rz�~��ا��Tc��9D�J�;��/��Sk�$

[�,�OE��(�
��Q�Z ��I?n���X$�U"��#1�ٲ�h����}^��ԿXk<��6���K/�S��3$���@U�����:h��� �M��1@U��F�0�;�A@/0!2�dxuT�B��xō^�P�<7Oq;+��up'��8�&��s��l��>%��"���g3K�WA&ry�/���{�|ɥ�J� ��Z#���"��RA��s:����Wsom�l�D�������w��K�OM�6tJH�A�����C���~�}��h�gx?�%�����i����}�0g�@���e#{#~�a�*����!p�1����Q�v�.zg�Um��|_g��j:��O
L�������v�.V=��@�\F��Y~�ד�:��sӕ��]$_�~d�/eװ\�I��;�F��A�������z����.흩�������Ϫ�{��BK/?T��|��,	��@
��o�]���9B��L�w�$�V4�A]P�o��]wp����=��h_�2��{a���Y%N`��n�8ې&Md9����G�˅�Y�c
����KNښr�E����f�b���cw�/�tO��i��F��iI�j�d���L:>�6��I
��,K3�.�g^�m3նjr�)^�j���d��81�u�,���%Oe)����a�(��L<X�߁m�ujS$�m(�P�g�8��Dz�6��siw�-���m�Y����w\v)��OڌL�Y������R���l?���Z�8%R����zԋ���H}�׷-`|��W���}�~�\r�,FO�J�N�p��}7Ϣ�fOhmf��Uc�5�H�����Z�;?�[�n��?׭	f
X�� �^�������G��c��5�����_��VM����y��$�./�s�	��P��e�ڙ1g6�"-���S�Q��&��}m��6���B3x�Mrö%F���;ś����[����^qRUЇ�l�W��f��N !N��[��<i?Gؒ�`q,Mns&�3�o����-ۚEV!6�4�#Ҥq��D]�6����t4g�i��0���	@zݚ�߷�V[~�X�/ G'�ݼl���^RO��M���C]W
o�	y���d�[�>�5v���*S�nٕTP6���i����7�n�)�{r>��l0�����2E�Ɣ�q���9��fk�K0��Z7���H�2u�ŀw�*��u�	4�f`Y�a�T#@�~�'������#��Ms�Ф
b�5�9���;�d�wI�	�p
S��g�Rmq(=�.4H+�'g#4i���)@�
x��$�M�_�V��+HMSTٛ�ۅ��V۬�J<м�85r�[�MF����ɪ�$	w
{��#����8��<W����x{�������#�j,Ҥ���r��'Ne��M��Ce?+5%���Ȓs��P�F$b��;���N�:$g4]�y(#4�rz��Y�k�hᓲ3��?�^ʣB�Jm��%���b28�\X���"O���>�G���4��W͵�E��%#5�"��Y��Q�h�v�ƭ
��$#D�9g�DmH��Y��[��&��S9d.x�2���X�P�I3鬛N��hT�0�����6A�B��J����a	%o�3o4��kF��B�Y�317pLעJb���b�1[h8�t�u��ڹ,
#�XYc����Y�6�^�`��X8�j)փj��d�0u��cI<�A:j,[�g���
�
g�#NIyL��V�Ƌ��
�D�QS���`��n�e?�T@��
���1K�8=�Z��� 1B��U�1p��Fgv�w����xJ��pY��|�艐5�o��K��4A�5��!��i��\�;c����
���Q�Y�@��
��k��xM�E�B���^ۀO�1s����s�f<�@�0m
��&L��� ��	Ec#���D�%�1>�t��A���b���?�Q���D��Q�hG������0B}h�?@͇o�?Y�����򵱈���T�{�7�&�%JL��w�u�=j_��T�R3����&Mz�5��4b&�Q�~��冐&g`���5��]oj`���d�U/r�pA�Y4�d(���1k$��)h8��!~ג��B�`�HI���jU�U໽h�%�ZJ@:N�Y���v����1/�I����[���8+_ir��o�����������-rMJ'M<V޶���=iyB��^�2@A��rhC%Ϛ�M��c`�Bci�Hh��g�)6��j�`L1�rY��w?��<� ��nD�L��{�8Q`0��2/k_*�d���X�C3��u����f�'�"F�
�ϫ��x�s�UkD�{D,
��˵���&����k�m��">/�w����I.�g���[�I<=�?��)�B^	���P��L�i�/����
��"�$�'�#�1H�9��r�_	�@��Ywsi��RS���Y���5|��s�j}-<�EP��ώ!�W�t�79����!��se�l��X���R�]�5"U�5�ƪz��e��zҝz�C���x3ړ �>\,&�yu�6���&d}h4u�`�H��SŒ`�̓����%z<ڍ����echifD����z%�11+
��9lIу2Z^��F�Sgxiy<�� Y+Ҵ�
��X`D�N@?�'�cI��@Du_i�o��8H2����F]F�=j�� Q;Ӥ7��0�@_�Ճ`�D㴅$�����X��
�|��<��:Э�>d�>5��'m��4%�3Od�L�{ɖ�o��x� X>%�cW���68�z17[5�}�h,�'��B`�&�>�4�v�Lt���O��#Y.��CHǯ��ܭ	�L�9�Y��eax��D�(c�R1#�?�3���J�p���˖8���]�!���P�W������Ͳ,��D�:�� �0�x"x/�|����ŋ������ȳg��d��j�����zv��i�!�����D��.�@�'���$����ld��@S�d�����dOt�����O�)0�&���O�k��@M���kl
@�s�"���8U�@�3:Y�.��3�x�} �x��^T�=
�kYK��i�hx�5��{$3��<4�RK`k�qS�������a�]?��|z'S�h��}o�cs
	Th�[,J'��N�u�e��	�5Nz��$W��|Fu$�I1�ѹX�� X�4Q=4ְ���u��Ը�w����Ը@�c�X�d���O�݈���7�O��B�� �I*����_-?,a�3 Mzi����)�C8Q�9Ӫq���'�J�
�'��i.n	��z�.�c�~��
TUP�&�^q�B|~�X�s����4�w���w�A�
1$�f �J��k�G�¹X�A0��?���$�wؐ#�9%�Y���)��S�+��dHm�``Q�u�������Ko�����=�P�σ]l@��:��-CK�DR�tgH���56%���ͧ�w�`O�<em�r\<j�d\4<ӾA�%QUr�;N�������uݙ!������Vr0��%(��3=Z�'��E��ܒ�Շ�zD�J��jm�|$z����DlV�K�"�{�f��=�(%N��d��.8�P���Nl)�'^�#�i�p6#��H{��|X�b�K���ؠ�l��
��(�4*).�N7��ԡ3�!CR^3
h��x*�gh�ؗ7n&hc���~�����,��k�0LI�a6�*=H����Ed�!�b�����U�%�v6�E�;�6A����1д��=�T�]���3��,qbC�v&W�I��$30v����n�)��򸡢�{M<�p�c5*��y�tԋ�I&h�K`{��-��42�}-2� �6����h�JBj�})mO}c)�O�7_����=X����<����ek��}h��e�m�{|*��2������Y+0���n���.I�x�o۳Zj�Ŝ�s�%��_�,`V��������o�|�&��w�b=[���ξ�m\(�]uS?v�`����9m��
�kI��A��
���T��5C�X�����_ ��gsw/�-F�Ѯ�ŕ�M9�O��^!���n��x��Ru�=��Z~0��%��?O?���v�m��������դq��(��6���5a�}��n�1�	kJ�q��%���~�.yB
�?/p߯htn�)�&� ���ׅ8/�/�k��}?T����O&H��i�ǺN��xB˄�c%j��;^�澧��<n����|��hK{����'�o�7�|��Fߣ�<�Iz���L��K˃��k0���Q=��&p��ddO�^��ҍ��	���Hj#0�-�uМ�&U!y���+֝5Ƙ۴I��t���-gq�J�Ť���p�)��}zc��� u�u�t~�C�q��D�rq:�Pz����Ѱd��@*{��&��ɁȬ^�$��V֤�ɥ�x
n�@Xʒ��j�	��@�\k�7|-�g�u�	�����J���D�Y�kĊVԜ�x<P°Mnh��s350��@-&}��4�Ɏ�^Mӱ����m/�F.]�D5�
�O�$L�B���m�[�x�����w^Q�,�S>s�����y�)�{Ci�k�*��?Zd�
8��|ԭ�wiߩ�|@��ǂnx���t�V���u���{T9]��Շ
�f�ρFc�gk,���}����t�?� г�w�LY�</oOF�
��ݛ���d��<	�|5�E, S�{i��&E��E3?gΠ�0ϖ�Q�bڋHG����]�it��_6���O��{�1��l1����"��$'�m�r&Ae9"�_-������D�[.h� ��f�%+�v���@ڨŘ�}�51�F�w�M����xn>%M�]��5be8A�{�ԄBw�Wf�,�@WO�l��X�e�<�h��[�gT�{+ޤ5��$�GFjsVj(�}:]�j�1�G}wWـA������&�#`�������Q�z�ګ���n	���yļ}�X����.7�`���
$�i���{�����6N���ɩ�8�f�$Ƭ=�a�$����c�r���|
�w=k����&����E�+�
p��XkJ�`�_�zT�yi��U��3V�${[ԤA�I�R��1�S����!s�A�f]��5�����&Ӏ8N=c��~x<~��6fhz��&�Aoz �^s?�(�Mg��Hԃ�u�o�����]V��c�|�<L�b��@IR�I!t��ϖ������=�a���;��J�1�Ĩ޸���y1w%����f���p?4|��{�(O��Z�`~<�b����M�X�ވ-�KZ�y�o
@́\*ˊ�$'���{ݬ�Łu���̹�{��A�c���)��k�<��a:��A�j"2�4s��\��%�x��),6i�-���Q�ye��j�	���A�=a')G4D��g�/5Nx,�,d�
����G�A��Y��u�f��!#�'i�ӂ�1�l���g��,C���34�X*x�<����{��iA%�Co�U��)q��k�޳0������{6�A��
����E�(�0�-��6ņ 	@�����{l[ǾRW���C���s?c{�R�u5��A+}m,c�wL��}>H�?c���Dx�J��2������T��)
���g���8��6:o4%X
<�B��V���a�NIY�!���>z�R���R�l�}|PI��'���bU0��K~�4����J������!::��g�H�j�g�C�`|+��G�K58��������I�(��g#�Q����Ϟ6c߂�{ߘ2�љ��@��F@
%nB�܆'�������m��f�4%�̨P�F#e$8��d�l-w�ɇjN��;�s9�$ڲ�q�E�.
�:i:�����6(��y�t���alC֚��b�`�3��>q�0:��z6Rہ>xh0h�t㆚7�
�k1@`�lj5�ˏ�Y���$ 8,�>.[Zq�j4�+t�h�Ӿ�I�A���Q��Kg�w�����*h-&�a�"&��*=C:��ӃXލS&qځkd���=	~'6�'V�����S�2�Zl��1]��P�7�ĉ��� B
���֨�{Ob�?���4�g���$�����/
l��oHOH

�~%SM�)���# 3*��4�H�v����i���r����q�$p�!��4�'����'=N�����e���,�b��,��쑏��G�!/
�Bc/�I�ӛˀYg'��}9R��^D_���Ŋ/�t��0Y��ϝ%r#%!c�Q�M�f��`��_�W���9��r����fD2�Yq�pQm �I��7f^�dT�[A���9�h��"p
7k��W�K����c_���w�d�Ͽ�,�9mw�{��;R$j�	�^\`�Jώ�d\�=�o��+�>8}]0�@r6h�S
�y��~ݥz��u��[)�Ѩ��&Ɓ�Q��_�z3J���#_�egx�ㄵ��Z��K��j��9Ƶ�����9fcH?�ђ�6��5cL2��5����,�$��$�"F��&��rX#���,��{<�}Өf/	%h��K��������H�d�վ��G`�K��u�>� ��?��w�i�7�)mn�fXq��,1T���U_�b�(����F��1���9��(瘐�`g�m'eF��������l��y�g����� 	:�/,�}$�
�Nk���N�.h����V+cI6p��N:�ت}�"4��q���vP�2�,	�!Сrv�
�T�Q!iLU�"L�5d�{��䯫��ޥ�m*��N�
�������2U��]j�20�Du51�i��x�$�4"�R��g�Gr	���
�I'5]笻��2��_�S��x��r$U"���I�q�Ѥ7|�xGI�h���',�;�P@�x���Ŋ,�l[�k��P��0�tm�w^���M�E.���D�{i��Lڦ���
�j�vf�P�Xb����Ģ��v՚�e�a]a69h���.�K
}�͓��Kd����g7�Әǥ
G9�٦/)�R%J2�z����Ĵ�ϼ���|�����go��$z٬Bς�.*�r:u�a��j���~��/>�,?�ɞ�����?�A��j9�M��ஐ�$�s����ٵƱ�NE�u�$��42_t|���9��+�uK��y���&���iJHI�rO�َ&nUz����@�y�#�
3�iO}���.E���W����~�3�A�^���Y{9��nЖ�M�O��������`"ɒ&���~�֓��h*qB�%}��^6��[��ר��'�dѻ��HB���sy�A6E��W�o�GQ2��=ϩ����!K�7�q*K���l����xuL�{�^|��	�>�_ �羸4�ŵ�8�Ҙ�z~�2B�4a;�&�f�$���$ԙ��=���"K�$���&{%f��(��� W����I���$�@��M�_���c}�r����]���(����s��'��;�����&;��^0��i�[Hv~��ĺ��Os�q/4*��s�6��c��N�Ma�Dr��l�rTig�<��9a�?�ŝj[$��Tx�-�+�J�*?/Q 縒��H=y,��<�=�����O��0��Zٽ5�<�$��^y_[>�W`ë�+6�-��C��
k��Z�XR���k.-�a���j�y=��.=$~j��Q�\�Za�=rN2��\���k�7�/�~W6�ʿ���Y��V��}bʺ�d@71��H"�D`��
�ЎS�@�K�Hw��V3KL0 ]�K-��Ӭ�nd���F+8_h$�P�]$����(��p�ԏ�B裏�~��!�s�����	��@�]�A?4�v�Mtu�vN �H�Ƚ�t����˱0{�e�~"▣G[�adk_H�д�cdoOJ	x<@�8�N�f�J���dQ�ǵ<�x�q�@!�c�S���U%��~����v]��=�=�A��F�Rwc�Ԉ4�V��M��#{�J��I"#yt��`���B�}Ѱ"ڤ�V��j�c�7��t������x���~���v+��F&$Q@(!:�bAf�c��<�O���{�H��-�������6wh�  B2;p���K�v�uj��:���~޾����Z����/0*���L?�2y��"����}���L!�=�����!�5	~�&g��7���՛�4j��t��y
w�kx<�o��{������_,�x���5��?/�r7��n��=oC������J/`��R��q�L���l俽�Z���5Ʌ�ć~��4/��+��DBn`�����q�l�r/�-��g��f�CZ����߯�k�2cн@�S�$_���w��.��W�}ׄA�Od]y��7
~W��9�o��H(����Nh6ʹ��bX�(���]cě]�K��,ߓ��Y4s��u�g�{#�F?������h\U����qǼ������� ɫA��ҳ 	������u��9Mw}����'J/���ro����$	��AjP����y6�S�o1���[�S�x��nH<o>G,�c uG}|��8)
�o��ݒ� �`�]|�O%K�&�+�v˃ɻBgz����d�Mu`�$��ĩ���\P&3F�	M)�`b��yU���\�4W"@yOC��2�>�INk�Dr)��C�)W,��)4�����P��i�2�7�S�I{�G�e����-�&�O�r�byݼO[���d&�0��M�7��1�ih�m6n�f��^���l������֎u�5�K�M�˾O��:f篯�G�Tf��/�nDϒ)�s�N*�����{(;RA�>.�"lp�Y7u�LU����S&�`*5CpT��H����޲��P���O��uE#`0>��l�M�E�x�����1`L>Qf���:pad�b�����JM����p�Z���n��
0q��+�&��?Σ&��	y�%\$ꂆ�I홂�87��V�h	,�;Ko�q6���1��:(z��ց��QC�P��r?�^�_)dʣ�%�Z��$<3fd�٠0ˇ�
T#˓B�
���
�sbM��}�Q�����Kl.l��xqvo�[^��>���S��1R�aRA���<����Z���r)�.���!?��A�
�y���F��g����]�5����u�
�X��<�)9�
���##�	�^���&:8z�؝{�ckB/2���"J�`Gנ�S�^Z �~����1�U맥�|
H�Ͱ��[�z��q�;�~�aP4��<tS�

Fod�k{��̈́�5^��
S�dT�'�:�J��_�C��I��Y�Z{�ux���I���]X{�2�7�Y����՝�rH���3��9�9i�C��dz���g�����3Ir[�q���J�s���!�s�o1N��"�g���8[c&��C@�Ȼ&�?*��}�%)�aj�`,ॵ�I4J�p�&����>���Vm��ko��=-i�y�P�j����k7��H��֭��B�q94�p�n���ڳE��;4!�����a�� �E�<_����c����3�ؕHl�~!�Cr]'ғ��5��qs4�ail��&Kk@���q��@���e9��µ��&>����O���Å�@-��Pe�(�V�YŽS�$G�|*�pm�
��qM? "Y��ˍq��E0�Em��q��0�&�٬��.����̯2�7���~s�>��hrc�CkӮ�7��8�Wm`<�z��b5�J'�Q���&o��s2����w�aq�k?���s> �b���^��cL�Ħ��d'�og��(+��|�
Meh��*D�7�w4H���3
�S�5�~?�<^o���Ā>���I�PbK�Y:{%4�N��s:i�e��f=�Gnǀ�p�kD^��X�Dc�l�L�;�~��8j��x����A2�_���&=sk7�ٌf}O���&@>���	Vv�)� �(^(�K���bዀ�nL��s��e*��v
�yv�ƒǀ�Զ>��D��J]r�k�X�8=�c����蓗�Ǒ�l�g�4L: �a�D�/�dY/xl�t,pJ\�a���r +<�ե�,2a��Q�烓��ۤ�=�vfh�F�J� ��:�q���Q�C!��=��������<�M�E{��G�ȑ�a�5��)
��Y��h��x(n!�^8)�D���i���������]�&d H�����-����Yr���4\�F�$ͷ��J�z�β��}��_�(��*���	��?	�o�P�m"��(C��{H;�49���_����ʟ�����8�W��F���5qq���gl��n�fp��7i��wjX_ك�^%�S:�wP�b�A����mj��Ɖ��8J
-���+ǏAM�Hp�F��g�z��	����d�e�;%Y�@���S�����ݐZ�D�k��4Ԥd�?4����Dx(h�i�@��Ć����H�L�+{�h��J��d!W����a�&^?#�O�a~��"�D�|��"L=Z?i�^�%��P��>+(W�%J�7B���'g�E�45�}$NQT�Z�HU>5Qb}����}G��-�ݡ9��ӻ����5���X����Ijv-���}��!�,�>���ލ�wk�8yb�������76��C��+�Kr;b���wƕ��*�f9����SM�|
��ד�
��?���+Є����[;�{CHΘ�����E����;���y�������H�:e|�)���%R��H77��P������}�Ƭ~/�*`�NF&i�G�.�8�$�{W�DMkV)څ
t�E{�Q��+<�>օ�7/����.Q�}���n_�>�hu�4U�M�~H8��I/9��y���0�]akZ�+�P�>��yigF���(V`$~��=�}>>K��3�$5�81���6x�3�:F
7����g{��Sfv�%������y8Ӹ~H m�8�3R�3��ŷش�O�ư*0�x�6���4=߀�t��b�-j�����Ov]�s�tk�Β��xA��;$F֜�X�
����~�߯���n�פ=��RS�L�H�Y{��$�[�i��V�:�c��W�{�:����:82�%~U��d��R?G@�z(4a��>y�ES�k��,/�2x����q����id��;|J!+��}|�Ok�!�����b����I�ϰ��
��L�@��g`�n�����1U���S�w��]�����{�bu�.��ITkrGE����f�II��IA����P�#C �.�'*5v��R�z�A�k���9�][�L���]N�Ht�x�#~����.����RM$Q�=�d6�f+^�X�n���~'Y��+?��hkq��
L��H4��qZ�L�EAR��f�3́���H����#�$€6�\re" ����ҳny�6o�����Z~Vn]
����m�-.%���(���|�;��r��f���v����r`�;Acek�����%�FA��j��4�K�6�0E?��,dޛ��֜aZ_{��{M&���G3ߥ[m�$�J�
�t/$c�`+{#P3�e�V�s��k&�tҥ�k��T6��{c��Z��sqg�C2��-��8Ȉ
0�QTƇ
�+IX��2s�p�7�&dq9	ɼ4Ɯ�u��;��p
o<U����>�$͂S�Z"�6�}�M#�M����yPo�>kF7%S3��{*��p�D�
�&
�wc���Y�٨vn��_,4�NJ�{�e;
p�x����`S���_Gә���'��U���e����
`[�s�	C,ZՁ7��@�Ȥ���O�x��=;�
j
r��DT��y��΂��Ml����Lr��I'2g��?�S���~z��,�Hd��F�Z��,X��l��?�H�������@��l������XɡO[fbjRi�G����U`�������C����W9��[�oN�� 0�J�L����XƢ`�|��ƧQ���ď�4fqJǞqd}��M�$����,��"3x+|�
F�5y�Sb� 8�EH/��4h�)�����9��k�M�����/�v�Ⱦ4���`�A2Q.��0)��[��G�2�mM*����Ήμ���%,	_s��$��:��6.X$�?��]�Zhl�I���1�͢TD��I��ho^����2���׹�ף`�s��_�F�'��7#�A�S����ѯ֤�������\���
�h�Jd|:3itN���q��=x������Wz�33'���_�-~���% �Z@���q����,v���QIk�����Z��9K�f�C�?����q�'�?o���/��o���L,V	<}�1>��s�zw��Th��Bͱ��+ĭ�����ʫ5@�_����}���߅f��Fr���>ı��������L5B٧���e��'�Fw��Ƹr���ot��nq�����&N����%]�"�e�1��������p+�S둋}�ؤ}Ė�%.�7k@��N��D�w›Ǩz�2I�w������"AC5o�V�N~,Le�$C�U��Sl|(�.Ӄ��j}S(�RY�8K���"(Z��X�\�E���ߤ5�c?9�mg��c��?�=���$j������6�sFi��f��P�
�0�ߛ,�x���)iVOIC�+m@Ț�V��.��ŀ�5:���a�y�T�$v~�5h�(���mqb���D��Vj�n��xf^6�H4	�(�3�����v���%�:ȤF|6�T�u�-5`���
�i�(\ɓ���t��NN���T���Yb���QI�z�u�8a1�r���V�AH�{9�`ܸ:Ƚ����n��=�OYB�I���ޢ����&��<s��>�W筓�\�dL��@�u���?%F�<�����ܹu���(K=�u+���ٽS�l���� F��k��c)�A~_(�Y�FDu�5ar�	��I#绹�#[/m�'�(����A�'"m?6�拵��?�	u��)J�@�ˁI��ۤv�{��֖A!"���s״�ޔ��`�ϙ
�>'֧/:Q�]e8�s��e����j��K�n�i�XH֞���k�<�l�y`�lN�F�H_�U�i;+������xtv'�D35K���)����6ߴ)�5f�������`C�k4�,zE�^�fZ�`U��a�oDz���X�$��E�M���;�U�l�0%#����y�>Fm��%�򡞻,�|���-��,.&�,Z=ɛ&\��C��8��&x�	�&l¬6�|"�yv�^|�
���h�(���`,��y�\H�>CV�h"�sH�|��Aꑞ�ѣ�jKW=.�а7;�g_�ז��1��6?�$����w_/6����s�#3�y
�r�J�p?o+Nr�4����4�*01�`gY��g���0qa�yƞd`=�����d1O�Y��
�Ϫ�&����(���7��h2�ɹ�Y$K�t��'�Jx���"̷jR�^	9�_V�y��F�	Z&e�z$K�J�w����$��<�O"*y� !Y�E"��	5H<��s)��l#6��=��
R�B�K��]���X_��*Y$�*�BN�����@�&	K@�h��5?8A�j�\����;GX�jh`e8���a�'��OP�}Ok��tR�I���ASa�)�#��j��djvw�d1��8�,��M�d�����	{���J�9����\q�a�h��l �z����~��a���D��H�w� x��t���+�J�O4'�Pa\�����܍�w�����d�0oҡ�Afvh:����IvY���&\�8�[,r�>s�N��sa`��>;���4z�
z��3��xp��Uz=c4-�]��X�Ȩ��;i�U(*$1ұ�*���d����}����.M��=蜒��n���`Sn%�2�O�ˉZ��FV�7}j2���Cs�"��L3�F�=��S\%�F+�X�N��Ȋ�Nu�d�u�ɈA�S�9H���^L�5���f�l6��A��2��0Kbv+��ԃ�R��M�(MYd�(2gk��J��j��(����*4���gk��Ii�7I�s���f�I�.�c=���Y���5�~�&�Bҥ�a�Xd,���Y�5�4�oJ���;���O�?��4�X��ϼ{h��S�@�{�yr�`��K�U��nP�nv[��71\v���3A��pmq�9]�,
����}�
_lJRIdz���G��&Ϸ�m�d�^�T`�8��M�#�>�KV8?<�ZS�ca�cD�!��3�")t �ހ�{~|�7̭���d�m��f�k��M����8sQ��.�}F��b���y�*Qc[5N0�49��-~>侜��Gσ֯&k_3‘��P��jH4�m�0d�nzN�1��zҐ�|3�Z��b�v�
�&'9���ʹ�rod<$��T��ZW56W��ϖ�n����5��������X2�h�� �,t����}'��]{�	M
���H��1@��M\/=��͂ٱ�r=���qފ��l�\0��x�w�A�e�Ag�Y@4�����5S��6�F-��A^3i/#!�I�e��0�ԞOДF��[�o*ՙ��jl\��q�*�@i6���=�Q��M�΄�1И�4HF��3��2x~S!y��F0���
�M6z�����Ge�;�;]z���m5o0�sX�9��95Ơ.���j����g�]%�`�'���jq�j$
�n��g��^.��5y���!��Z�I7�|`rf`(����J���K���{�'$���?��<_mY%�l�.�e]kܜ[O�`7{�LN
H^L$y�@m0�+;(e��׫|��mI���yd�Y
V�3 =��b z�X�,�/�s��Bg�d��t٘�G[�:�{�k�qԋ]D��*�M{嬮�{$��k5���(f��粭�&o����*�+��cR���[,XV�I�F�1�#�<|D��*���!�]'lґw���
q�
�L�v:��J�̼0�h	�=j��{�d3����ƿa/�|�;�c�<�P�ɤ_z�����o;o� ���7b
8s�N��E��n�H,Ќ���Yh_��0k�p��+LL�{��3��E��qz�Rz�h�X�{�(�/I�)��TW��W�X�Lۿg��	�LW��>�
u�cob����&�0�8o�|�L��P�i�!6o��!_���� ]�R#��&�Q��C�����Vz�ϕ�^=H�5����!��>��E���]��;Mo��E��#y�t���}c}޷��..��8��F���xլ�:Ќ�B�ㆿ�o���c������m?��|�PP8�sIn��J�۽�?d�\�j�SAr�6�HiB� �42�-��҄����=#i��֜���[BZ��_y��o��~Jw37�u@JZw�+ܟ��Z�o��P0Z�	�E.o6�S��B>E.!��m����Ic�$>��Ș��w��y�
Y�޼R�Cq�&��e��t�Y�6/�7h�~��b���Ŗ7�
�w��f�?�{���A"�
�4�y��]NR���po��YזoԬ�*͔W�������X)V�҉a&N�0�5m�fw�����Ie���	H��x�b���t�I�i����W��`��K�(;�:�jx�dd���(, �S��4����0�"���k��"�V�a�-VOr>Yb �d���8ը��[�dO�c�b���!�/��d}"���Z��y��[W=X���LG�αA������T��}�Gc0�uxM~p�^ܒ7Y��9K�Z'���y��
�@B�Ϛ&'5�U�D�����>3�!(���
��5�{�J��O4ĎrV�1���N-�G���/mG��������0*���˒?
8�5�[6��[[���A�H����
:cBc�<e���W~��D-8��T��x?B�I���76�
2=J�R��$A�ר&�̙N��yi��P�i���$�� Y-VI�g��N\�U�n�#�l�zVP饪�/����RHX]�J����L��>/I�˵��
�Z�_A'u�q'�^��>��~,xv�GF�'FS;�4MTt�TM%c���I�I,%�	�;,G��c��ȟB�.�W�I��c��X�D��$G��rc����e��B�z�K0��^S6��#Ӻ��e�-f�E6�HL���5��S�!��g꠷��+�ᙄ��E�Jڛ��ݜM"�0]^�B[�@@�s=��g�D�<���kE��È���=d�h+����Xhz�Y�_��~�݈�&�"�Qm�:��1�vi*�&>�ͧ��(����y�6sK4F���GE������ႎ��
(v�rڀ�7�H����rhM]cM�Jr��L{|�� ��싵U9��m(���������EZf�U�;��52�n����3[��=�M�)���m>���u��dz�Y\��Idܑ%^~43����T��[�^���&:f��4o�
�RiYA1r�!ְ^TYg�&�gǴ�(+�I	Y/����Ţ�)�b�[�^?��g�jۙ�y��q���i'`Nj��5z/�U&q��Kx�Hj�GaRnxC�w��gE�
�ɝ$%�aj���iƢ�	x��"�d'6�^ '���w�
!SMj���x��D�{\_i,�ެ�;,�4¹ٲ7�,N����@��Y�
38��}�a���J�JT�Ih�;O�;����W�w�lA�4!R�w�q?e5�Y�z@h@�_'���}�S^隑~���̏�	y�b�3#6�ޯ����ꉡ�Ǡ9��[l707�ð'_;e��7��4W�@�qz����哥E�M1�$q�K|�9��K0'K�N���	��(R�,��R�2�W:�I�ӨBg�����&�
�o��(m����f����
Ƈ[hŊ�+��D�P,Ћ�'Y��
�
�'ӆ[�m��m8п����\���9�3�wZ�"�:����F�1$�
/�hRI�o!F:�`�H���÷˃��q�7r�N��*�<1��I�%���3��[�Ճn�[�!!����O'�f'���4S�s����^*\�kj�ܰ��.�$o0���L	Mj��N�p�q����36$���&P�7t2>��LMH˓l6����F��^R{ch�8���d҈ݍ%9{�U�B_�M��F�#�t{�ϟă,�%/�A�9�䙡9�t`��1R�fjfn;4���,��Q��|��dL���'��0>]=���b�6��8���E�̲\��M�\0���'fցt��/�#i��@i��M+�s�>J6�'Q8�\� �\N�BC_\z����n��`Yn2b�?��{
��}-'��-ͪ���r�=��8j� �7"G?n'�}�=��Ez��0�l����:�����3Z@;�=�}D�&j�,�Ʀ�~��A����cG���Qeby�8
��
����`-S-���j'źX챬��S�Y��
j�.ޥf�}W'���~��Cs4�b2H@�Mu��Y�J�5-�ԁ�#�D�"�k;8�jcO��c�Ig"�\����5Y��i�6E��w�S��'>$,M�Oғ:m0}�~]>��F�v��Z'ȍ�s�ܝKdU��:K�M����"y'���4������M$9����:o.�9Ɩ�x|"���$>x3`no��YP��d52�N,8���F�s��2���@�3���<kK�
'�*���0�L�AU��P�*L8[���Dͱ;l�ǝ��>�8a#�&f�(M��L���^	p��gL�6��4G,p��%!��L�g��*����q��xP�ɼ4٢	��A�1l�
����n٢�]��>Z����h�3�'��z��ă�VT�w����vʪ-3�9�tUsٖ�3E��߈!��u|�6�'��5kԴԒ_���wj5�����I��0�+�*��I�2�����I�1_n�Xm�B��{��A+3�+n!09G`���]�ךy�mYq�����.��I
:��b�P�A�0��BSbX�k^�t�ioЊ���<Wj6t�dޥ��.�C�o�D��x�K���5iC�D�7�*բ���]ǶD��M@K��%~�5�}:8�0=��_`���PAB.	��
�ɋ����BM_�RGsX�D)ҏ�A��͂:h���D��8��%I+�U����Yɭj��^��]�@Ll�*�1��=�1�_X�� �C:�6靷-~?����XϷ�ߏ�4��`�$O|��L��}��|=���1������6-7A�t��~O�_H��l�k�&��X��h�!����1�8
�vЈ���7h"�^w�&zX0�R�K�e�n������"��Ϭ�ij,��A.x����۾�Ɩ�c|�v�=>��������-2&�����	���y��n���M[n��5�G��f�BP��}�UAJ�zY�1���|"i�W�k̹Ϛ*��Yr�f �(�X��������fqR�Ɯћ>E��D��̃��/k"���D�H��(/�5�$�����B
�${IȠ��l�}��݄���[dg&C �e3k5��`3���s�I�u{�oSvI�ȳ�j�e�ܛe9=x�T��"�I�T�����k`��)�[��`mz�'Y�i�5�Gz�D2��\+��I#�x�ի�&=�5Τ�0#�
2�"_-�~]�A}�m������
���~#��nr��:{'�ӈݶ��Zڞ�)�9m��OJ����6��+{df�0x�`�LMB�_���v�������.Q���	-�8��=�n?�V��k/�=��n|�1���K��O
����w�>+;*G�sŞ-��t0Ǧ�_��lG��Oֺ�8�VH�=)�����# י󕇧G����ŷ�tdbp�^Kd�,�<E��W�'�/�i��U�
���g76�:bփ�]�����0ԠS�h|�$�N%��x���!y�]�
��Zi�K�sb	�cIU�h��`s+��2�^����Q0�Ҷo\�o�<�B���L�q�
����YJ~!��`.[`[���a��u�UY�$�]:�I�td�UI�����`A�r�հ�lX@MT]'$0ȵi�c#�h|4{M��5�V>��n
� &F�4�D ��q��t�A5�٪�7�JiV70��Ő9|b���Lkd�� ���]{�X���y8����iӼ�O/��ѹTH�eOo��	4ʥt&���t����s�޳��m׏W>���W��+�^��&��~�_�*�Fv�~.��
��;4{�uig�.��۠h�g�X�7i��I�
�h6b2��YI8�K��T��|H����½�g��
�+�__J�&����̫[=؋)�J?٢'
[�A�'h|�b�'j�
��GEљ��n��m��\�w��{�~���K��:0F��,�$�s��4���
�����[(�Kvp���|j'�~Ü�ֻlM��59�2��3\��C��9qi4��\�$
�����~��H��l��������@��r��˯� �{�nRP�OP� ���^�炯9�t��Iǭb� ��$w�>��eQ��0�L��j,��Q�y0���9���L�?	9������j%Û���s����n����:
C��f�R���o�ߝz���u��d6�6���R�e&1c,�3?r�;֏Fu�nyҁ
��ack�yQ#�r��f���ɟ�b^��QKәG����4�[��Q��t�l�|��ey+ڻ���c^!T��)ѳ����/����p��8I�i��N4�guom�]	Jr�<��Q��yRc恥T���)a��Zj���d�^�r�XϚC��-ҳ�ߛk~��>��҆W���i�nO�?���!>�٥�<�/���'y���=&|�*�E}��Y[Sv/J�E�CAc`�"dW�ˌ�Ci8���i"����,r�ƻ.��J@����?y�
������&�\��:��T�7-��8����>pd�V�&ٜ���9:A(UԱ���9׬ڇiOh[4��F�&ڣ%�Sn~7i/'�]-�Ż3|�\��4��Y���`\�cځ.=�%>�k\��^���V<W�Y�������-k$��wa��cOO����e�
԰	&\v��R4)�D�\>���@˴�%1q��Î�Q�~��f=�U�X��q['Of-n�%a�l~X���7��AX����wfcF��3!
�!���Z&���ϴ��^�g�NP(�ݘMX��x_.��V,�7]cp�Νi����Y�j�аI^��m#i=�%{��5����
�Z)U()�^�%
��B[ ���M��]��.����>�}��x ��z�k"��@�Q1�&��P�kdgIo�F��7���ǚO��g$�Kh���c�7A}
��鲗��"�I�����9���I����.��߭�x7�,c��B�'�Eb�R�3������Ւ��'��v��Ҫ=�]��ֿ����]�{T�&Z�`<��v�Y�����u����F�G2�4e&z�Y��JO��&�>CA:Dsk� #�I�Ae$&��K��LV
�I:^X���5�������$
$*��B�	�q��V�,зj�jO8�dOL͐�؏;��(,1���M@֡��L�TU0[��^��=3e��Z� �(�M<�A�I�Y	8�������h	ɒJ���b�����D��?ˎ�i�����l��wՋd��kHO-�u��
曈�Z$CgG5�\��cvE�N8����k��]�q��&����w����b�\�����Tch^�H�	M`�a'�����d�vJ����*TKj?��]��Z>͵1充1����4�䘌=g];K@/x�}� �|^���(��\l?%�1Nl�
C�]c�R�Ǡ,���^�w�|�T��h|��4F���-�1��%��b��kp3�>��(��Ք���U��׃Ҕt�5���8f��6g�f͢@Qj@:<�~uP��B3���Dd7�N*�2iz�{^�32a�.�Z��&X5s&X�Yz��ǁ}Ov�L�}��hVb��A��\xoInL�t���r����V�~�h�;�E��`�^vэ��H�#0��ˏ�qP~���aOfN�f[G�Q֐҃��R�$d�]��('�/�/��c=qe��t�(�\# Z@�Iym�A�H��}�?[�d=.�vU�o�~��t�J�<��.<uT�~)�yAMG�AY�K����.�^Rsح8uac&���
�4F�l���ߣ��:;3��X>��ZiL���R�X��k$rN�&@���_޷�v�*B>pw�	5��}�k
}ͯ�d(^H���ec1�d� �'m

U0���v0�ʀ&h^�3��P�"09i΄� -�c�/�b1vL����Q M\)A�rs��J���ACi�b��0ٵ��ţ��_��H=j\<[E9І��w:;c���H�g�M��;sʧ�
4BK�\|z�[?��T���_u1�z �~��@O�QR5�ԉ�^;�C\U��A!oxOm1��B4��
c��eJ�}'ȳ%~M��R�_��&Ԗn��sE�s��U����Z�UfiG)+QԪv�1)A��M[6�aS�aæ�ʞ�6�Fe��	ڲQ�*���~�{vĚ~��Xc�5V�>�~/�5ށ�{�=g��k�5�s��-��`ԝ|.��ί��&�؛�V2�P��$�(���
MH��ه�Iy4\���0nzB��U$�8g�a�0b�y�L=�n�
�je��u.�O8�RSN\��Mw4	���ɝ�	6�u�=yϭ.$^�ވ'j�E�&�t�dy�������'�w!S\�W�)��uQ-�W���#{�!QT7�-�
��ږ��h-�*�����h��l֨#��V‹�^މ��I�)p�4�X����A����x�|{���5Ǟ�^<5�T"mESa������F8�'�k0�w��C��p�7�H���ą�&TT@��M�:&�l�S��JZ����G"��W�����F��'�*�<u±�%%���+��ݚ:���4y�:�U�f�������nr8جt�nDd���|���}�U�bd�";L6�iqj�Zρ��mw%'��es��۴��
^Pi]z��J.e/*&8l`J�c���|5�Ơ�&'mj>rAjoҫ�,о<ci9�1�q�I�k�6X{S��T��0�_���c�d
dF�ϐ-O����f�5�Ӈ)'����4�>��E��\z�lr}-��S�H��Mg��<W�N���z/٨k�	�2f���}�{�ⷭ�4�:��0}�cBZ
$@}��#X�brݚ|3&5�#�;R��N"�$��ZҞ��˥P�
��=$�x���W���"Z���������H
���`�#��o���䇊%��%�x<���i��m�h݈A�;5ńƄ'�qL�9A��	�;'^�'��v�^�C
p���ܧ�'ɡ���k�T��"0P@'���o\�{�X�DO���
�ڙ؈敋�8���>�l~K������xfh����~��A���릥�����W@�YӮ�w��-f�d���r��p;7l�ޢ�~ـ��5�h+����Y���&�"�6%~�e�6�뫟������C��nWʡ��5��d�����|�!h뭝Y�"��=1�gE�h�q�ط�$76�8s�&�������޺�G�[��
�0Nq��P�d�剚b��o&�3ǽ�\\��O��̧z�,�qxZ��5�)��;\Y�{	*M`D�{H/�Gk�.��>'m�p���?��߅t/AĠ��͍�%=��h��ɻ$�]ǧ�\��E��sH�6I�9�ҝ�\+�gA��^G��6D����rW?ƬW;���/ʩL�)j�S�䬰����vj��s�9˺�[s.��X%0վ��XIŢTP"����g����~��]�x�7�=��^�N{�MHc~�d�	�����Á'�x�^S��ew�,�.���8MФ�*���6�z�� ,��[\K��cP��
<S� �[-���1��}�Xj��:O�$��P�W��xF|�}�g�)
�p���V8�H�`,�q�T��`1���S�F�s=�͊�]�@�����C�N��l��(�	|+����nJ�s���-ɺ+A\�� ��ʂ�JE��� }|����9ԞMn��,��3Ar׺�v���*�H���e;�+y+�i��<���Ⲑ�����^�����\&<�)wؔ��:nMu�+��,⺋��3�n�cl'z���p�;�죔N��Z!��nV�]���D@�g:�<FUH�e��S@�^5�elF�G|Q�dN�q���Zb8�8�`?��DZt ����8�H�]r���
;�C��3�l̋�zf4E��Y�#�1m����L�퉾��2��@xp�D���\LhD��R�C�X��k��h�j�[�:��^M�Njw�"(���ױ�Eb��O����GX�<���?3v��!�t�69���a�MTʋ$��&��=\ꡕ����x}�ί�S�q܎��M���{v� -1�x�}e��޶o��GP[����3u.q!]�w�PNʦ��>�
L�q$��Z?��|�N�B5�5=���l����Z����S�Ed��V옌��Y/��`��=���d׭��-�̺�!o䖍?[Wa3�Qd)��<�Cܷo���$D�_M�^�7.���w1��5Hk"�`>J���b#f�X=�ZV��B��y�	c��:�N@l�������y
�Gl~�^�������wR5q.z��⸑D�B��s�
)�
�_�gk���JթF���k�S�NyW���v�]����gr����)}M�>
mb>�<~A�O`snYs�q��j
��k\�׸�~��<w��驕�ޓ��\�r�q�[�yOu��E�ɓLZ��M��S]SSݽ�_=���q��z���� |�4i�#I�$��p��j�O4!��MP���I�]���i{r�9nv��	i�?g�Zl{���&ٝR
�A� xF���դZårԙo��\��{���b�����3k7��g�Y�J���n��׌���ZD��dZ��sص��� 9�G/��(��&k�{��~�R��Z֎�TV�7xi'��3�����č�!�6��)w� ـ��2ރw݂kc�|p	pZ��&�1�1��*я�����d�8�%�O&�[��N&���7+*�iS����Lec'� �1_fr��(
И�,��9�f���AƲ^xg'�3|���؍3{���S���3��Ru�R�]"��E�䨕4Z���ɑQWx�\�>�2j�g%�����|L`�3�W�ܰP��N$T8����9]���@��>���/߯��4ᾈ\��%20n�G��d��g���A��k-B/y�����M�|�Mv�(��y��aU"�+�~�J���*����g(|'���·Vh��6J�L�g�X&̎)@EЏ����:H�S�0P-b�I�ɲW�Z.s&�R�'���ػ�����^�Φ�>"e��ޘ{Z�g
}_Gf]U[��	i*2�l��Ad�l�&;���l�|����X��s3�k���
Xw�=7u���t���;���y$��ߋ���1��J�\��8v��ڷ~�l\��C�m1mP�y�
R1>XH����ܺ��Q�O��d]�������׋��I��y���j'Ĥ��(�;B��s��hZ�<�4��8���	n��Z��;`Q�ӭ�
��R~z�%5�Y%�?H���O�X7Oe�#�ޅH��؁�I�-`2[�a���5���J9p�ԉ1��5��סs �����<�qd�lN��ji�*)g��E�V�l_�5��H�95"vMs���=_�ݷ���8�P bYi���M�E��H׿JFjP_�T� &�e�S2�Bslf5�QG5�j4��S�箈��4���u�]c<����X���G ���G�}��i�p%�1��ذ>Gt��xʜpƈ����v�����I�I���ϯB1�@��f����v���A�}S��>�@x{�\q��ȃ��G�I�s�{g��\��p�>�d}��F'���%'/���v#Cm�45arVUVR�&F��R��f�~���k��o���}�>��U@f`.ظ��~�N�AQ���΁�3�x�
��!Y�$iU�'�i�6�޼�l���_O�M�Wq��3\�p-=�8)H<���c���e���gp0�Q�
��1J��߉"ԁ�V;D�o���eEmo#��d�m:�V2I] ��b�|"������46��(I�����ׁ�n�������d��(�5
W�6��ֳ��=$,w�!��11��˥��=��pA��uG���nJ,�b���>aD���ݲ�Q�K��,H�=1�L���&�l����Ŵԗ�af��;ԘЭ˦_x��a�&��`�=�F\_���hA#�f�,OX(��3LLg�lMo��d��A�%��p=kߚ��t{��fǮ�P�4��ǿ�nE��u�>����Ŋ��$OXo(��D@�]-��q�T;#�TҢܜ˞��'�&0�Ui<�Kxͻ�A�1�(��fz/��'��S��{��/����Ep��>�}ݗ���kf��O�`��Io8�����{8��=Q��,68�qj=LWĨ_�#I��@N������z`���i{�Ό$��=I���n���}�rĮ��Dz��WZ�S�i�m]7r�n'�d�,g��,��dK�E���II���v�c)f���Q�gI$��֧	�
�]ӛ����1w��3mk�7�I��l�NC�I���(buL�Ὗ<w��c�C�mX�s^hg��ai�{�d��DI��u�%�e���l9J�MŞ#n��K�vC �~t֓M>|"��-���Pn�R���T���A�O
��*L��=�{��gb~����5 Oe쯹Ք��R_F�9r�Tj�7��U��i����s20��mu�zq/�l�<���$r��b96�����.p�:_��'�ڟ�wG�r�x�ψ���"��[�������>��v�q'���CcF�Z\%�0A��۫�9VA������f�oʕH]���m:M�4���W�@6�]#�����yQ�VX�|��A�٨	cБ��⬐�8٠¨�u�vݠ5	j�N@���X?V���6-B��u}9���M�L����U��
�c�j��U<Tj����〤�P��Oң(�xbfل͠hQ,o�n�R+yb@�_���2hܒ�%z��/���I�&M��6Pu�$�f���bV���F�f�k�0SX`��{��f����/�S&9]�8y`\�'�;�*\<���Z��ޓ@����Z��"�ǝ�|O�<�$�F�vcJ2����(�kY�F�9V�2+%�W���@�
�]8/p?]Tr�d\�wF�k�<˅ �Ӯ�uBr������[�L�5�U'����a�r$W����ׇrD���[7���@��Fy��*6�Ug^�à��Ώ֣���w/�K��g)�W�f{�|@@���;�m�nͶn&�k�q�v��T`�8xrܛ$��Ī��������'�̐�k�`]<��A���~�������/��v
�kz�;�]��"�ܾ�a��,�cz�⹛�JV�.ȅ7��8
�=�y�)��]��/�?¥'ޓ��ߝ!.�8��
c�˶wk�ނ� L���Isz�4���m"��쯴�X?��4�ϞaD�Gu�j����TWi;�?�w�!'%a��n2B�L�4?t�W!��`�D׋�1�~��5s;��,T-�o�?O��iZ��%>�C�M3��qL̠�մ���3 ���c6��AHh���t"��&:��o�0��E�11�߷�~T��2�;�m:"Mє��yX+����s[�ova���1�K�V0&s���XL��ºm�A3����Q�^�u'Vp��IW�_�	��_�i��~�{ʁ���傸]���q"v1��
5��j�[?]��jJj�d����MZ��w��ɹ���Rrb���
�TH��A�{�YkSJ��X�`��*٢��Nr�.����8�#�������:��J��'�ɤ8��G�6y�V(����7\��	4�"Bl��q��H���/��R��D�^�~�y�9m��MM;d�+����x1��SUŚF�Br���*�>����k7��:��L	)̏'�&b�X3�`3���\Ȕ%��Z��[r������?�+�9a�I{�*|<�6��2o�;~+�g(�ʤu�>���&�S�Z�J��C%m}t�o�+֏yq�J���MLԌTJ��U����p���W�A��a��}<T�n����+�����=���y��J��b�&��a�gI�St���6�j�Uv�8��P����@�J�B��1�ڞ�d�:�e�ؿ��<��b�bB+v[S7��8�l�e�8��|Y܁���,j�
�@��,w��.�-��7��LL���/�5��?�s��{�<��p�m$p+�<�#��\y��<�Y�7��slk�@N4��$^��b'��2h�������������o�g?��O)V��:ݙIk��p�O�S�3�8�-vi�{/ɲ>S��}����?��������!dz�^���GC�?��K^xP<�~H�()�/1���'�v���j~H����#��ۃ]�X�������d�{d��,�¸���T�'�]�hz��OΛ�Ɉ����
[)Lj���Yrȁ�)�;7Q�=�Y�v�k�\_�^2�s�ڏ�k���������z��|�P�B�����E�rQ�k��~����F��ŴƼ��P�ȄIz��!��<?39�c�/��-X�x�Qt����Xr9��\�:�D�׭�v�n�XHv��+�1�(��BB��ײ
CS���r��k~�f�x�@E��2%A<CT}�yd٨"�&����W�h����=Ε쭣�r�,7
�ɧ�A�nc�M�Q<O���&��jb]�Ұ�I����u�+���Я#2h�d���k��%���BO�Վ��
y}b�u���p�BOe"��JV(�0C�X�w�tI�5�4|]�Mv���l�e��F�N�ܮ�X�E�X���P�.�!J����&�R�
�Oc�`ۉ�\d��i堥�
خ}$�i젣h')\;e�*$�F;kf�U4q���� nb����s�E�X�ǿ}��N�� ��'i�$�pCK�5�\T��iM�}
´��~�Ȑ*���m��>E&�|{O�g��ឿ�&?�3�Hz��=�]#2r,�M�箣���Q��[��|�(�rp�+��!}��m��H��8�D�5����7v"��6̃L3h��_�:gN?��!�cՐ�])���K�J�ѵ��.�t	��c q�y��Ĕ6F�ҹ��<1(6\�B&�j�W�(�3�b�Ffk���i�u�q�fe�[!���M��g
|�;��9�<Z�&��HZ��
hf��lH��H�>(�ٰ�u�!�9Y�	��Ӱv�ڀ�jk�u3l��<^�{�&���|V�W��F��B��J��7���(��d�?�Q$kX����!�+��|�{q
m��`����>����g�{��h'���5L�=��ۚ,'��{��p�,
d�j�����$�Ue'������61���z�G~�8g��	6�Ř1��X7>�
r�v�׍�_�^;>���ǿ7�\,�&2��ϓJ�����nkc��3J1P�d.@�r�`��3_�	�9�XInW�N.�9�,��1�����j{�^�b�Bz
�g�I�kk�6.H�B���Z��h㡛��y+�E�I�Q޳oO��6��Q��)��5��Tǟ'�nj������{�v�qp�*��=��Lp�f��|��f���D��LE�)ϓ�.dX��\V)*y��B�2~4���,$7
B�%Ek1��po�d��̜��NP-;��$��rX�x���2�H��$R�]:�K?��c�U^��&~��m�s�*&»�e�P�v�e�r]�g\ʕq��I�<�\�i����tk��鼂��ĭ����.rl���Yx�+?_y�F���~��[7|�a��O�un����˚gw|!�U=vn����
�ho��$�#-���2����7��(Sc�Q'���jcg�'ꝵ�vHԫ�2�gA�'-�u��>zT��o�0�o M0��Ԭ�҈
n*<�xL�:^ _�\��M�)�H'��w x4}�H���s=� �Iw�
��28�:�x�Vb�eSfx�������y@C�x*�F&ۨ��[�0C�=ɏ<m����XF��z_!�zӤ�bU@\5 �����gP��bpPDe0����1�#g�}��{_�&P| Ab֏ħd�z���[9
0>�O_�8�b+MQ��:�h��5w7N����?�n�=������������@zh�n\&��lwy����Q���̕� �.���8���줣�{�6,�7=3�kңM���B�g���p�� ���y����7�Ӷ&?m�5�i��!�Q9���P���dfY�<���`��sYi���O�&:����VZ?�ܶ5�яu�>��H�U���������[��{�����)��&��?�x*d�(
J��m*k�hI��<���	��[���Q�<u���\&`��g�mk��A�">_�'?���)�jR��X�
�N��V����P>��h���tr�hZ�]�(]��B�z��G�ՀgJ;�&!#��W��EcJ��RL��������'����U2X�
*�[�����T2p��4a�h�$P�=g?�V�� ��^���#�˷�}���%E�g�|�~��7#)I�&[��5b���ӲfYs��?�/�@�g�C�:'��m~�Y���׸�}�s���׹1�x�d@s����`M��%����rv�'Qk����R��f��M��k!��P�	�i�bj駌wρBg�=��5r{��3w����@i��[Sx���<���v�$+5�`�����J��+6Ԃ�J��ȹ:�������P֡v�F��9n��	�)8gG�x(U�9�=�s�SE�6*MM��؈��Vo�f��+W�Rw,y��v�+:����z#�E�2�#C�����7���]�2{�\�e��#�oy��կ��u�5�WHN*�Gr��?^_m �Ã�[uy��Y�
w�"�e�?��Ȑ�qC���n��@�Bu�(�X��D;��z��~�d	�ݬ��*�]�7v��\��{Rr���+����B��ƽ2"�q҄]�0�L�uQz�:��Yo¼��ҳ�n/}a��:��p5��:b����a�xh�M���>	J]t��fi�A9��5���V8��� ��y�|1qز��{��<�nn�Z�N��."��_#�<��:�:��z
�e��b��x7ڣ�&8��"٩��`05B.`�R��.J^�=k���8�g48�@�i�gڴ����K��NC�f��=��^�-���n~6w#��
h�)9��#�����!r��{�2By����_n^*��k�m�'����,h>��ek�������1&	:0f�,!���x�ŧ���?ˠY�#�A~���
���S"�ǗI��6��c 1>@Y��S��k���~����s�z���d�Mn`�*b~�������69�Sbn�ɦ�<6�JS)Æ:�� �x�ݱH�b�ˀ��H]
�\���;h/���b��u�+N݊�~5�օE"�Wʃ�����W��vL���L{��΀;���A�����xm����+��XQ�9�	܄,yݱdC'
�Z��+bW02m_|������j��*�I�&�c߻�uz@}�˳�yk���·ʆYtq�����*4�5kh��(��е"��jZf�%�:Հ�ϛG�=!��ؘg��J�u@lVh@ݧn	�i�ף�űD�(]5��_NJ��?n����줧��1�^
�O�d8�gش�{���b%�T�Ӯ���q!���L��ٸ+M)(����m@x��B�s���b��	*�CF=It2@��b|V����f�*QH
��P���7�lV�e2�Wa�D�m*���H��J1JO&9�x}�� 6Oēsr0w�;) UE�>~��4<�fX��9�T�4`�_����޶�x���JKv���+u�S�AْQtZ-�8���rd�<

����Fm�L;xJ�r����+���8&��5�����Q"�E[�O�\��~�E@t�7��N 00)�����K���@;@bh�B���"u��M�J�;&�+���)���#��τ�aGV�g8���(!1\������G����yD#�+�k��&;�{Ê(2X������I�~0����Xsۑ��S1U�x�3��s+�%�}��\�sL��s%�D���':'�(S)?�gZ��sr�'�l}1�:�z�_g���I�̠��.�]�5p#ψ���a��Ӻ#[�x����b��A��n��
9_(XPZI�����x�hH��bJA���`���x�dzvȱ����_���傴dsC�e�ٰ8�x���Y��k����	���0�t�Z��<�/rCɦ=e8�5�g�#ϛ<��q������"�'ȅ�d�̓ݎ���	�� ՝�Fn��a-4`p�u�/j�S2���H�+9��tO��c����jR��Q���h������B�:�z�3�qL���6ɡ�^%��<�8E"�'��f��F���R�Vu��]Hm';��~�d�3؏��}��@ؖ��h�;�"g�8�dJ�}B'8���P�l�as��ɇ��^����j H����I�K��R�����z�T�|�%����	�"s>�_�����茴)6N�L��+�L;ɑ�̒BE����FցO`g'���@%�b�pc�[��y����X���J�)�lF���L䛏MjU��Y���ߦu6��ڬ�D�>;ȥ���ϊ=E�%]S�hxL�a�\���Dc����+6�d^G�5�U}F$o��0�Wܮ���.��|�?ss��_6��1g��'t?cp!��3�����w#Jd�3��>�g�nZ���f��l�M���{w�4�[Đ=�<ju"��V(�ogYǶ�b�����O��e��$��nql:vж�&�Mv�	�M�Z�;PW{	�
�y�?jR1���i��E��)&�˘�s�i��B�eL�ﮭN�pN�p�Q��}�ʳv0���B\7�z�+Ll��P9�<nt�,�uUK�  �y��<���C�x����E�i�+�Z�k�Z��Y&;й��]�.��0��H#�4D_���4�Ϩ��)�e5v�rh�u�€J2�������B���#� !�EqcN�y}�V��?ř��&�L
]u'(�f}7\Q�C�218�u�tI��/PDϑ_s٦�0������?�/*,t"�����2AX�eҾ�9�b��
8Uy/��}w �h�^LFI��&����u#P?m�[MRc��%c�ѿ�B^1�@��W��AX�@�h��G����m�n�!�{�9���D�9x1�3W<,_@��Wܗd�R��!u��{�,H��Cv��;�X4������\W���t�
��o?���d�(�g��
����F6�\�|6=�Ǫ��	��pG�
Ϛ��8�}qB3mHE�����^���3�':�ܫ��H��~���@�$I��L�D�
"��s-sr���
���[�(Eۤ�
�ߍXj�3�3����ߠ�b�ʤ��z��]�i�||7`*�M'=���5�w*ރÜ�c����f*\s���L��F����Bl�}-��>�K<t�'��,w��g���ڙ��m�c�P��T
���}{4Y�ܧ5��z? ٬q�d���,�p�8�N$����z})��Ajʛ|�k	;��
?���6��k�&�T_���s�l��j�30��x.�D������;�g��p���v�)類�ߛ��ީ��[�{	���XM��jϑQN��/��O6n\0���~N5��ESz���3혗��H�H
Tn�oF��>1F{���o,�08��Xo�ӤuB�K�;��xp��j��H�1����X���ݏ/��Lk�������q(N��G�x��ˉ|�1�Y��:H�$��Ig�$��^5�/�
o�D�1�~5 `�N�7�m!������*B'X�{�A`�bC�D�y��]'Yt9�D����#1�՞m����|3
���i�5^Lg_El����|���,����J�Iս�9P�~@��n���p	_!�/dH�8f��Q:�u:�ܱ�/�d,J�p8>��?�x2� 	�Y�`U�58YRƝʄ�O�9��kV1%�[��~{v3�IA;t�����><�Dl,)���ղ4[�܉��>I
�,��7[?��
�U��
μ� �QA]�s�N�/�к�_���5�$FW��j�]�g�%&�M�u��X|����H�u��%1T���ڃ$��̷��m����>�!��c��+0��B4��{� pp���4�o�
�Z�9 N����_��?$6���ç���n�kIe����}�z|�M�$����m��y3o���D� ~�w�6��p��L��›�P@���w��'Ţ�'��X�ꮁ���ĥ��J�F�:�3*d�z����'�:�,a8�Ʋpo�Eq7+���{�Ş[d?�4�5�*��}�^{�/!��1�����:���Pl��������A�Ξ&�4���Z�{9�S��hi*�`G��<6٠�΅e;��5KʝY����9_
�W�Ӌ��#Z�{�U��'����jN|�׭�Y	<���\+��m�p��[B��YU��~�5U{�Ai�]��K�?���>�}�	��o&X=��&h�ŀ@B��K�Х����V��☬l
z�~�FMTj ��J��{�^�uU!y�=vܾF+|&2c�`���m�f��1 lˍn�{�O�m�{͘����;���"ɺ#�I���z����E��p�Uh���a�~�����vQD1�u=IH��{�]��Ę��ޞI�#����o�U�Ȃ�S�5�����G�D�U�܊���+��n���A��F\׼Y���a�f���;���E���!��O֏���4(�:��m���� �-ެ�y�E��
��)��@�4��Y^z����0�F=��x �=�`��kys9\>�@WhᚂF��#�(�3b�(A�١C�#eVz�	�Z�$�tJU��][a��S���5�,w&;��_�O�.�Q�W���.<,u�@��<Rx�x��9c�Sd6!	�[།���G�J6c�n��q�p���@�XI���Z<g��X��Ǡk=���}N�G����$%P68#Bَ�g9�R�$��D�q��k��pKX��RW�|��q�M�FuI�E]�5������1�]��[�L����S�۾_��ʫ
�?17�\��j�'���	�T�?^a�|�<%�r	> 5���
(�8�a#p�e�0e�GG�j*�	��N���
��4�IQ���Η]uW<�;��o��~�|��w�\Yk��~��@�³[❄��b.�Rb?�T�_X�|3M޶�d6�;����9ۊ}l����+o?�׈�R����~�&
'�e�;&��[��i���X%���,�x�L�KT�i
�c��~��Ǻ�J?Q�E���kqW4k����Kp���	��ZkƔ�dR�J]���vk�a"I&6y�`r��r ��dd%���7�3Ө~�џ鬄�����=��4�=D`w�GS�	D�C�/qߦی�e�l��q�vZ�'d.�=�8�M5�������Q귚�'���$�P~v�p��ƭ1�
��^Hy���-�����I�n^`�cQ0�!��n�oS�A����6;�PO����}��������CC��~#��9,H�xnd�'`�j(s���}�4�0;yc���u�S.������D��N6[~��%���P
���gq�F�(�c&L\�
~��e�v�Ӹ~�(;���aZ"k��2�$c>���V����1(~�(����ȁt��3Hv}H]n���@\��[��'�Ҟ���`��a�澝#7�ؖ� +<Q��'�Y������p�����c7Ud�����n�"���X�@����T����lf	#i�K���ZCh'�^ѷ&*:1p&�8v�12`�n_�}��.o�5x��wc��Ud�k���Hw
��W����P���C���1��uő�.��(5���i$����A���%�'q�v
g�~�zf��2f�ԛ��{�SE�H���ꈰ��zB`0~2�����dS̴��#�a@�a�rLt����{/�D��LVٟ �vb�}��	Ty�I0�g�Z�[H;�����V;���X�8�����N4C������c�g �X'��f�hT8P�H�3u
4/v�6 ���xd
�?�k0�^\�Vw9mR��\���LZ�ʠ����N[�u>�D��q}���m?S�~ɭr����z�N�,[}�}����;��ԏs�N�ӛU��Z���׭d���k��@7���J��)a4 ��Ɍ�c$����b׵f�>�f��?v����
�g &J+8��n�o?*�]3���2u%{��.I&��`Wt��c'x��nVG���F#%�ji$�$�ض�1�;�{��
1��Ӣղ�
�Ӆ��W:��$mhp<��Ly��u\�t���}
�7�x�]t��(���\�I��a.r��,�O�J��4��m��Va�]�ȫ�^Q�Tq��o�S++����p@I(+P
�.������Jr){�D�	���Z��~��D\�w��nY��F��x�A�3��@��t���E�3y��Ԭ�Ʃ >\�m���>�7���>�_���{�8�ؗб�s~�1{�5���I�b�uc@����uU
�#�C�1�m�(u��߉q��
����>L��c����Y��"��Q��T(�2G�g��2�c&w3lk�N��ņ�H)��6ξ��
h;����	���T�;�|�:��YC?�"bx6���
Tl �6��	%uH
���&��{"?`ۘb������Q��=*��d�o�i��i�"C-��d�٨DZ'���(kP�����uV��@��u����:�5zc��P��k���A�r�^b��O�T��p-�2�BEN�IÖ.Pдn�6N:�Zf�Nsu�&��c ��9p�%�g`�����ӑ5�K�.w9X�uq3��]�b�<'^
���z��hTAW��~1��C����ړ��N�>�D��/)ݤn�}k���+h#��䇦�gZ,��|D7u�ff~BN��M?�WG��x5g�f�g}���I�S��� �s�n~L
<ȫO �����Ӿ(/D��ϊ�;�Z��n���:��Hl�}S�=�:����ӯ���s�
�?�u�`����!y� �f[s?�&��P����,��ݳ�qg�ٞR/~|&a�!"@[�n'�_�cwv=NMq���N:��9�A�k��qW}���\�g��@��x=�')#I1<�fx�w@� �M;'���y{���^�HBa�W�<��t
�4�I�: o%L��!���X21]Y���ڸ�(���®�;|�Ǻx�i���k�1j=3q6��F��q�Hr]�@}n��Fp�M��J�z�C:��k#i�n�ډ�i{�z\�ްV�9�Sw��,c�j6�fY-����-���W@]�?SA�z��0��4������0ԉ/�$964Y���bc���MV�E<G���Q]���2	�R~T��
��<��7�f�gJ�#]�'"����µ�
A��1y���mZ�Ѧ�A�{=��U�y��eS�(��I�.���
��O��� ºhC��
�����&��~�Ŧ�$�|��ɤ��=TMI�����M�}�D���ׇ������tH�M�;&R������,����U���_��3�M�gt�9.W���=�_����+
/}�b�&0���D9{�u�`�Z�?!`Y�.�`��M�H�aH4*��]Zs�i������A�tu����0Q�ޑA��fAEQ'�RhVܮmV�'�MUI}��MqSMvX��*y����=BՒ��CaV��[�|�	�ŝ:��Wb�y�sPd��t����G�G=Ȱ|��&n���E�q���Lp�<!q$��S�[+�'��3YZ����}�����D"0�A���\�a��j��J�g����"��ߩ���ą
Ǟm樃3��Ģ���^Jq#4@�$Y*.� Gq�Z�"Z��"R1T�:c	WF�X3����4�rgS2� Q�;lHW��!�ޱ`3Nl`W{�σr`�hB�� �d�'�P�S����M�&"s�|	 �#�=:O�(z��~7�_
,~��_!ym#g�	�wҌ���	x�\O�aE����g��S-\�=��#��C ��p4ΰa��s]�|�l�=�͏��3�� x�Wۻ��J/A�s�>g^����ޡ�=���n�n:�Y���{����lM�A�C�?�X֩W��O�"����^?�^�!C�Iv�zH�@�n`:_��8Q6E�*S��m��Nh���Q?���5��O��|.�V�<�d��'N�cP�F؝Fu�������0�V�f���6^N�^�'3������}��Ntz�R�X��\P��Hb
�6qmYrjW�~�R��2o5+k�30�<�bb�	���K=Y�\7�\.j�ё�=Bs_�܌uyT�9�^�����"��ô�,K��R�s���ǬJ�Z(�V!5��t�zf&�u*OT�4"���(
d@~���ʍ�,3�%ߗ���aP��.�Ʉ}��:ڕ�S^���>�3*n���I������������7��lJ��dX+y��dy�6�-A��0��:��b�FF����Ub:���P�q�=��k?�_;0o*���<��:�	dr{īپy���j�X�c$�q�v�D��|�JIʰ��z'��H۲��R48.Zi�
m����(\�(;wԄ��ֈ�}�����x��®�Zl#�*���yS�6����ϋ1�`�5��'�ϰSD��abں��:�N''��	�kH"%1�����}�<�P��@3��B�6H�<�a.,$�Q ��>аN��jc2�'@�
�����y�����nU5�0h/�y2Y3����U��u���|tT*BW������*.vp!�3����a���ߐ�
r�b��:�E$�Ij�����^�"w4a�W �>X����p{|�z�c�J4�s�iv�i��>Z�ߏ��25���e2 �J��uR����1"�"J���u�5W5!'��H�h�y��q�T�B	xs΅Һ�>/h�Z"7o�Vxc�dӗ�@b�LDqïԕ|�ޜ7IL9��������Q�-���8����?��>n�}�b$�W#5HW��{_���c�_y��U��a'��Lƕ���T�A�0Y>�>��9�'2Ui�LKs ��^:�	�") &.�a=d%A�w��C�s����&� x�u.��k�څAwu�*O�J�S�,n�g�����D��6	LK*qz������@��47��0��E#�%�~?�[��
F*碜A���Q����|�p“{�\Ť@�@�[���X�b�	#)F��1#LO��Khvd��6 ���z
��@�#�.�T��ڙ�́���u�
�*KX�P7��R����qmay2� �
����r�8���ϯ;��kE����Q(����t��·X�>-/�$�Q�(a��YNԮ!|TD�*��0n�
?M�/X*�&��3�D�����$k���`�[�2E6�&���q�����"g�߱y�k�yq�Q\k,#�3[�>=#�P�h�,��Ⓤ>�\9e��3�7�*�0v�w�F��$Ϥ�/A;B&.�DʞT"�@’�hR�n�-z����(91����<VJx�1/�'�KrN
��q.��z�Όt������`�&MÌ���ЬL�cs7Ps�xq"���Uf#�:�p:b$�x�Px�vd#A���3��lҳ�E�:�"�q�)e7�G�;�r%�^��e�uE���t�b1^,˪`�Qm�ѯ%4H]�ъS����h�?�^�������C$22c�J���!��[?��Ӡ��,�؀�l` &2M���T˦L��k&��oB7��(0��^@���U,��:�ODž^����B���f_m�-˨49�Ե�����_I��u��쮌8$�0-�^�E�$�>l��7�X1k�`���JS�0,^f���QFbY���?Q�]��t����D��#�6i;o�5�rQ�`�I��s��}vt��\ӷ[~8og���}��[�қO��>42�#���!ޯI���!�����X����q�	���ҟ5)p�UOά����BQ�Љ}�z��R|Y���s�l~��tq��7� x����{o2v��Sh1�g�����v��>;���-�=�W�r��4��n��r�����~��i�Zm�*&5�@��}m�l���M��J_{�ܴ���#�SEc��=�ٴ��?ϖ��"X�{�Z��4R���.;$L$�n�&���o�}���7eZ�y�HrX�	������?���Xڲ���j����n���`��T�%�Ȝ��6fp\`x� �Ji�Ȥ2�Q��QK�XHy&Uf?��Z�_�FM5s��tw�Y�K���@Ѥ^W덼q}`=ܤ�߸	_���y1�}��|{"׬(s\��Ƀ�s����8����Z�a}�L���p� NZ�����Y�2B�)�����!��„5��G�9�c�!�U���8~&���!k���g֋6T�qL2(�q���%ݠ��(n�+�����iʀ��v��*M��>3/�Ң��U7'5��ۤ�N�UH+~�oıiX_���n��1��Bwɪ�P/%���� C�D��hJUz%�Y�.�w�"2�ܮ��%S	K���2&ݟ�h$=D��
*����y1i�x@L�$�1�z�AZ�W]o�ƅ
lR��մ\��8*�V�
WX���KLL�~�������(��&@x:��0��T� 4e��]oqy���3�)>�HJ�k��=�&�ޞq;�
`[���ק	6�B
�ۉ��}х�̾�/bۍ�ɑFb+Ѩp�O�L<����2���c9�"��G�����z���^��N)J�a��zr��k����Y�8����D�04�u��@5���D4��G�z�c���.�6��w1��
;_��#�Q�y����!�]M��)@��y�p��]�h̠ޣ�䟽��Ĉ�Kz�'�ެI
���B�ܧ8:��>�����5��I:+�[���yBp���Hy��z���g��7'*k��H���y>��'0������Rs�`_��4l����3�}[�
�||�����s3u�:�nձ�|`��
��ͳt��Yr���,Or&'��q����x�a���� ��$�Z���16�D@�m�����yCPe#�'$zY�s,�0���ҩ�.M��d�w��pm3�T�b7q�Y��u"`]���r2y�i��>k��(OH��~N���uT���)w�E������p�dX�@�\�=OҪN�0�?�����8J8��\_��fZs8黂�5��c�G�.I���ǘHm�I�"��d�yl�g�Eo@2N�
|�j�q�} �`Ͼ֝<��l��y�ϟe��)G�V�	�=�69��������g]�ݚ��|U���M����>�i�
,m�L�O�|wޛ��{3���ط��2VgT����d��J�
���i���V �Tm�T8�K#��S<��9��u�A�g����^�n�G}�+*4����(��=[k�A롎&�`Yyٖ��6hG�{��Y��
�,�v�}4����Ҡ�	�����~;zo�ۼ�:��8q���q'��N�zV��&eB�\�.�Jdu*i�%�
���[�@*�r<d�l���sG>�	a���E�9�B�CQ�6"��T�D�@�dN�}x�:���@�|�V*XTޯ) s���S75Z��'��B�8<�� ��#Z��@�%�n=������5r�Z�g��}��?3&ce`�9n�k�r����A���G�??G�I��]�?7��֝
�4�"
2W�ٲtV`�T{��ݯY<{�D\���ޡ�@�_�.�����0b�_��QI#WE�“X���&��O�$�@�2�3��wH�*V�F;x*6^�|�JӵfL��6�ku�,�b���χI�6��w�S�=k�Y�p�줂��`C��%J��x5Q �<S�F#��|���A��'�(71y���f�yʢM��'!�ė6�"&��n�zA��cMܕa�}����&�]��c���'"9�{&+��z��	�J�ݗLl�qH���ޝ��I����m��8aG$c�i���?e��{fϒl�?0�4�:D���;H�x�Ĝ(��I�ɳ$���WW��9!P�>�Xc@����e�鮺]������I+���'X��`�<���	�A�^j3yK��N2v�:��	��Q.�4�M�xƭB�d$9�hk�)���l< �N�v�
�k�g�9��ճ�P5�.�;p��������c+�ϡ��8���G�� �<�
N|�̀9s�\�!�N~�"�ce*`'�7����b�fGW>�p+�i��u"��X��IH�=���FL�9Q���6�=�Z�8��p�k��;���<�ݤN@x�hB�����9R��{��6&6�E��"$�B�8�J����'e���A���
g��<
� k��E�\���+C����N$y&HWu�6���;{���?7?�9��,@&IM���w�jJ���\p�X[CO7�9��H9�1^��
�>��%�AC�6�;��a��� [�ͳd��:�8a`f��cx��>Jy$G�8H���M�2(�A��l�H(�]�Ĕ�j�A0i�HX�N	�O�ou �������#a<Y�BDH:H�b�)�$B&�u�+�#���P���V":�5�M��?�h�#�]���i`5[��t�rv�\�A�
ތ
-$-B�N��l~�/����L�=w�L��Q?�XO�aw��ܰA�4�U:�?�nlJ�E�S�/iԫ�}ɐ�[{�$r&a�ǒ8���ir�I�"r�7d�b����w���Z���o�7�L�D�I�N߰,	�]��(1	6�\�'�}9�;��L�òm�7����jY�� džJ�Z�5�7L��,{h�Җp� By���f"��o�g�Q;�7
%�-)O�Av�ޓ��8B�We{b@��̃��~����~�sS�&���]W� _e�%oC`�5�r�z'l�%5ز�&��~�A,\�Zqi��9-܆����݋�ި�E_�D�(�^������c;j�R����������������Y�e_���.HT�.�u_O�-���LN��H�6��]fg�$��g�i,�e�zi8�7����F	�,5�TD�a�h��l�g�6�_PI#�$�PV�+>�QOHg�!�����0�L5�	W"�|F��%�WA"$Z���|��`CKQ�����0td�z2��Dn;��nM
�Ԃ0�
$�J@����7��ϕ�)P�ov�&���Fk�IR��A�@�A�"%�K������Xo"7��r��i���9GC�Sl�XD"�~\<��Ϲ_��2�YhϬ�,�
L���6j��|}�tD�A�l@!�R����uݹ�5M�
���~��P�O��gM�]���H��F*�˯{���:y�8�Web]|n������(�L�'��c��6VW�v�y;A�w�Q52!�p�bڇ��$��	���?_S-`����r$����m+���Ј�5���;>PPgn�Smr�.�C�e��%<ѡ{D��@�}�r�`Q����U���wmN&�m,��h6	~�Q�Ǩٝ��4���V�!�%���
^�&[J���M�}s.�`��aҊS
����C �5���3y09aœˠ0X,�ZW2�uZ'����N‰��6K!��&!6"��P�y�=�
b�y���y9�>1U���c�L�$2kŴ��1�q�_���־�S��I��'FL%8֛�202�&����(�7	�}�ߩÏ��ا��q!S�:�;��鎕K��]/4RJ�9"�W�6���~�4�X������`����O.:�_(~��`������$��w����qtCW*��}�Y����݃�b;K����<�>Ξ�7�mzܪk���{��mK��v��x���{�^�(�`��
r��q9:�A���_����'^��~�/��;�g������_�N�m��8�V^k��9��� �ӻ�}W$z��xv��$� ���~��Ÿt�u$7�o�6�Ҧ�~�?N�hD��o5a�8�]"~q!��Rf�&�3��b0�:�H�_8u`"ّ%����} O�O{Zn:Z7y��>ϊ�w?��+"��_�Y�p�ʖ�E�k��K��ie�������m��e��R'���%=C��B��U��Q
1H��(���'�Lv��kk�����o݊0�6��TISh��Gg.zp�r=0ySi|�9�~_5߷�~O��8[N��}Hմ�U��-�K��I�j��8@�D��H�I��@�b�H���D��7�@P���}Z�6�s����4D�y���1�>
��k�j`�R� �`16
��s����a�T��}���c���r��B��v���<�ߦOޞQ����v�,�T
I�^c�7��J��y*�UlT�a��z�O��	)$O�~v<�{�3��餫j	�saD���߉������<�����"��;oAb7�+O\"$��z�>pag�z�xXO���u���`F��C�-w��yo�����k�SL�٣A�l@����ILG���>6�+%J�g�g�M�X����1��52#w�A�';��FÒi6֭Ь�D��$��=)�n$�Ə��Ky
�ʹvY���/�`�812n��X}�
6���a�g0H��
��ޗ��2"�؟����)��l��H�bW���b��Q��sw�\�+��<=������
�X3�N�up�H~�1�2aS�?+ �eԕ5H驎���b��i�b��-K=>��I�}�6�8�t��Q���%0v��jA�u��K��X�oRtgg|��/�C� ��>db���T�YƤ�y�1�or��g1I���I™6U�H�������$�fn|R�b�~��g�dF��8�?��_�[��s���#��@��}�o�ߟ��w�-�_���1�������T��i0��=�s���t.�1�Q���v�}�`܅�s^@����͘�t'|9!v�-}�sEя�2��G���9��kޟA�)�"$:�)�gЮIO�W�L'��_�Xo"Џ]��'����3�O�s#UJd�1N�

:{[Q�$4��N�E��n�nT#P{�k5�ʅ�n욠�s&I_�z��s2`zF�=V��}��H���&מ�U|Gd_:�ܴ6{�-��C|��tQ�y��SB�]�I�7�}^�dw�<���ߪ��D�~[QW���ҕ$II��
��l��{Jԋ�_}վ�I���,�)MM�q˻��/L����ј� ����{�i�����|�R��iv����u�_Np1�S�#��Uğ=���N�u�m����d��߻0��|?�<N,O��k�U��n�q-��>>�L�Vj�(�����Ŏk@�<dZ�؄�	[���DQ�}�g��_L���Qf�rt28%N��#{[�xZ�i#�3"�U$�S�"���!vk����P�" k���.ps�'�	���E��c�۫	sERIL�6�ٓa2���τAl&���$���F�<o�N�5��(^*}V�N%��~�8�;�z�*}:Ē��@;2�e�$�a+D�#��C�u�߃>{*��s	^��=�{��'<��^�����$:'N�L�(g��"�|��	q[��;�W�:����*(��ޝg�e_�IYU�_$�f��U�
k�*{�u乛���F��+"g�"�b�"�>��U\��Y�h�g��=S�1�Φ%3��䤗��������b-��������F�L|� �i�o|i��=�t���w\Nb��ˏ�����450���n���Z��?�����
�Nd]�?�˪?�?��c���o���_��?�/�����:vyZ6}��ʗ��r�¸X64w4�0����zb�
���?�ݵ,�	�z��)��9��� �k1&h0�̞Ϛ�	d>�IR�ĹK��${��|r����it��@<;��CzO�8B��Jv0p��}��Mݓ�<�)@��=.L���O��CK�0)�֧�04���<���	�6��ȵ>]&H�2�J*Y�FX&�*�����f^���ڒo�q�P���ld�J�*��V��whʸ��6�����x�I�I�$!D��|�䧑��c��Z,�p�������Sj��?�u
�,��$�m�}�i\0��HWϩ����9���_�k֥Ey�PSJ�7���R�NF+t�G/��>��G]��W�4�ht~L#l7h�����F�#">o�F�,�8�v�k��|USF�{+)����Cva���3/�_�fψ���Q���
���,��m5����vm��i�㈞0Zq�]i Wޡ�_<��T��"�Z�m�Ko:<�P���;��oށ��L@SF��H$Lя�2���-X��q#�� ������0����N���.��\D'�?��:�,rW�
�*�&�F�0���bEK:�z&JSO5H���"DpB0�>p�dTp{ra�d	J�ώ�ٲIgt�b�ᚨ1 �G_t����L���#iœE6��P��(*^�	�0�8)�����2,����ؓ��{�@K3�mE`�T	$-�x��
P��lf�;[�Y"w��H�x���ǰ��520>��L����e�t�ӷ0����**�9(3���߅�K�^l�͋e���lU���舺��>���y�;�	G���.��H�N�xg��ڧ��+g���~�Ga�s�����5�����O���O�e��n��������������Y����_W�.g���ӿ��ط��~����h�>��͔nA��wliރݞ%Sf�85�^`jw�כ 7}L�|����6���k����o���f�y'-����I+Рo�ë(^���j=�������ʹΛ���2l��tt�$���W�R��m3��>��S�9J��57#"i�{��E[G�cs�'	�ݓ��{�I�i�{Pa.���蟋ӳ)B��7�s�s|�3u�5_���t�V��I�dI��R�$ca�Ipr��&�`�p���shc�����E͊wD䫐�z�����*��m�wi�
�R!a�*�� ���Nۥ��5&�T���9S���j&�沶j<wnӓ�I��Dv'����Y�|��l��h�\�ON}�H�q���7�f�F�Q�$�S#�m���^�ej�p�?o�ä��X̀5�l������F�cF2��'@鳄ɶ��� J*���0p���Hq9$��;�<1��j���ݵ�P�	�JGi�Lڕ�ewiH|x�F����3v„4i��]��\_�#@�=�W�Z��`>�b	�rr]gf�L����i2�:�^��ؚ�E��L��d�k��,-0��Zl;�R�շ߃Cf!c'{�!�~��P�ˢ�I3�
&5
��M�t�ۿ5e����5'?g�;S�YH^F���2����{M3��%������X]15АUSG.@�֍=�{o	���ǁ�;�Fc�6�)�X�Y/9�Į�Ŏ�l�r;8W*�Q�	'^�루�-L��>�����f���9��"�}F�L��n�4�?2�R���"���9��/	��3e_��evh���	M�Z�7Ќ�%w�$Gw_��[O��&Îp֨
�$r! �DG`���O�(����X���{�Ӎ��g��"+i"�y="R�r@���/�,85"�	���Lk��Z1N,��J�;���?&鰸�"�s��_�~����$r�_������/ȁ��z}}���_��������w����zI!���ݻJ���G�z�8�z�s{�j�jY����k-�~�6/~����L;g��&O���54КH�KA���t�
ޟ��������̫�sX�~BS�=m�_Vc��}&&3`ğ�|���Dnb���Tu�'Y��ަ���I�1�(X�a}�'Y)�c�u�"�g�Ú�,��yb��'d9��,�F/${Ԟ�LM2h��Ȕ�-Phh�8��~x%��ɧ�:��P��Q���*�q�$�݇��^Op�	�-�2�ں��TP�ڃ
GGS�
�nX	69�����j�^־S�rG�{�j�U�XѠ~��Qd=Y�RKg�x�D��BdBS?����d��d�>�0ػ���	up���I\�"�^og^g���/'q����B�'b��qsˑ�8���f�����w"�װ\|�l��!�^O��Hq��QkZF���M5O��TYݳ'�CGu���s_�Jv�/���P�,��uǡ�VT����2Bmo����>ҵ�Y2I/���sz:d���)GL�+�z�!ض�c��g�w�X:�b��2�¤�N$��@W��߽�E��n�n�0K��5��l��H���T�]h��6�^��W:�P���3���؉���8�ք�<А-ޓ�&e�G�q=W��L��I�N(p��g0�n��*��B	�
t�7�3�d��Bυ�,��:�~�H��OP)6�HL���M���� Iǂ;��8����~>�翉�����'mQ?� @"�(���B���_�����Z��_O��c��$E`����3`�����n�����"��������l���9,�T,&o*��K'?t�c�zOSF�KL��8��p7�D�P�^�i��!4�K�� ?d1���:��u62�߮��?M��]Ow]}U���}�J�'7X�6(n` `pý�˿�_���O��?�[� ~ο�d���~_޺���/�~����������3�����s���۬o�xv/c<T����?�z��a���W�>O�p��
��_�AB?^�����{��QQ�*��,��:M݋�I�K�r^�yN�3��A�Y��'ؒl˸Y�Z
S�!�S��`��u1"�b"]�F�r��`b`=��l:K�Ƚ�)U�{��F���g�e�R-Vu�m7��=��8�C��%��ݷЏڳa��i�k�3�3�n5�%1��o���Ȧ�A�镮
s�Rz���uGc����V}+ԝ!j��}gZ�����|�Z<���G��0�uH�A^��^X����_�,iZ���E��}�0�CMԼ*0��g�ƮhrZD,p5�u������CtXg-�'s˵�	���s�ve�X�$��ߚ6S]���e�ϰ����@�MK5%����p��
���>;���($����a�4M��nY�?�m�H�%�Ŷ���6������-V�G��;�&�Z|^!���
�j�z���z"���̖p*��<!�1�Ƕ�}%I��}��I���o2!��|6(Ri�Kq ��m�N��uաU�pB
0*X\��4̠���T��
9��0�!N��-�����c��=���W>ag^�ҵ�Bj7�T���D��u�GƯ��t��k�$��y�f[�~������`��‰R��$�L���t�g�Xu�)}A�b\pR���tH�Q��x�.Ő�B���N�����P,`�%����f(P�������[�l������X�U�$-�)�=0�m�?G�8)
�S�K��p���
�w�rϞ����m<��r����1Ѻ�SG��Tn����^�A�i����^��4h���'�22�TR2S�A�~;[W�����_G��,]�S|n�52��l��:x6���P��a����_���x�����[��nZ���׀�r`�>O�?7� 3^���>�?�������Mx&{���-�V���h����l��6�ƶ	���Ăä��|�)��K�ޏ���`ߠ0���O�@�E��M=�����saj U�T#L?��i	~?�������&$zj?�>P����4�-��֥��F$�@���ɵn���<R@�3*�<�@O�3 :�`41I=
H(%�B:�$��t�׳�C���
5���wQk����r� �W�I*N�.8�,�?�$�'P�"7�Ddrt��$����K��)�ɛ�|2X��]�O�A��m:�Fz��gӨ�^NTb���ʞ�T����%��V�E����5��~_��#I��I)q���ڭ1�lg5��W��3�Ă�5���i�?�	�N{ʏ	�}���s��g�t�ǡ>��T�<|��R�f���C3.��x�UbN����	�r�����肗}���C��5�@1J���M�����C����-��
:�A���>�.'�8�/j�/� '2n�Y������|Q�v€I�#h��+�5@�r+ΐ�{� �t71Cye�GV��}����=�1�'�Q�r���0S��܉�����:�K�����}6=�[�NlH:��8 ��n�|���� ��F�( q0Q�s�\�t��|�z�ѴMU�BC.��mE��z�/y����bY�r��LXj��(�Ɖrn�d�I�.��y�~���D���ǭ���8�^C�K�!���{�I���7�-W�|�08Z���fu���aT����I�=rsL��i�/���M*��/���ô�6-iI5M��vL�+��]���A��_���>b�Iy���䠏jX���J#��{b��䀉e�IڤC{��p�3:?!*�ή���[��l�s�y�p����FT�pm��o���O?�.�����790��y#>���z���Oh6���"���@�\�h��ڀ{�����AO'��-ˈ�ԏ	f�r�	:���A	6F)=&���&��!�)>s%s����W�\�	V�2E�r��Σ���W8��GM��YyI�h6v�+��2��2{�?V�^|[j��ÎЈ��(sUU�b��x�WI��?IPxz�3[~VX��-Kr*	�Z-�R��@y,̕����X��u���T�F7�h�5������:�+��;MZ3 o�5���޻[�]�a{�����E|I|H��@IMM9,[r8,�T���k���=��a)HlY�P8��#lE؎0)�$��I�$�!4��޻7���d���>'��P_������̓�Z{�E�}��`��px��Խ���U��k
.zݲ�-�9��n'��Е�;�Z��� �(R)��2z�4��Qj��h?�@
H�t�틁I��V��8}��'8_����,�1^�
)yDhEJ`-,��X_sk�
LG�j�k��b;���'�8�|��g��|!�m�?��B�eE�a�'#�.���S9�ѵ&��I��x��b�q��
��z��my�Μ�#�{:F��[vɤ�_v�ŗ8~�4�E������}�#[��~�6��]�^��,�]��攭� ����N뗨7dҙ@��A����G�ȗ>�h�F#�|���͂�k�hP���]�V5�v@�iBc��"c��(+>�*_���`O\-�� B�p�Oop��ܸ�ߎ�ֳ��GRkh;��bIC����,�TC��iJ��f`G�oYVOx�V�S�LHi{�ˤ�^�g��Q�~/�������{�2�i� �N�\�/żO:22�ယ�N矂�6.?{��r�P*�@k������ޏi¸q(�R0������g�;2�P��,A�H��#�w���΁�B�Ei�/�~���!hA@㨣Օp��l
�$Q��m0�ԡ�LFɘ(��&H���}%q|�P#��`��@#��=a0=��ro�[�!���h��<���$XF�y�6TiA�>#���4���,�&ŋ�
����3C�h9c	b��x\#g\��t��1/��ky�vܩ�b#��m�s�^��Q<]ȫH����B�?���׿�u��]"��?(����/����Ir`KV��
������s��k�ߜ����}����C��f]��O�Y�d�.��q�s�&��\�Z��/����JU�q�%��2k�k�����g�*��q��Dž�X����\�J�k�q���	#��$�F�Nj'�n0Y�w��m��XLa�1��$1�n�A2��2x�>��!H�µ���<G�ov��52:��S��7qE�,�9H���|,�&�p<0m�Dl� n�7
$P�x	���}���j�AH(�A"dh�/�V�X��B(������<.'�7���ځB�2"�y�Tg���P�6�M5�۪�����'�/
|�ZGn~�8p���$��K>\6C�>'<�t�6��ܽr�A���'=��CmwbD>=��/��
� n1"-���@%�Ajm�:kXic�w��ZYS�0/���eʄ����@���+�g�΋H�VC��ӹ���IYYʟ@��d�{&S>�?W�(��I2�JNռ�m��<��򼓐��^5J۠�z���_I�2���^:�ѡ�q'�۰4~0\}b�V��84/�y��@}1�vw��gc�����w$1F\t��$�U&�i0&��o��I#�Z)��<����
���	�3b��8�yA�k;��h�ba�ԏaa^y���-uT�z���z6j��Nj����PҢ�1�!b2��D�\x	���K^��2yV��}^LD�s3�O	��ra���A�� N��9��x���v��	߶07�J��	����!����&��U��<�����dZ,��Pf�5T����-^��������<��iV|k
D�ʟL�2���F�z�%�<F��*S�N�
��A�1�&��k�\����A?E��F�V���Ƶ�$��P��ޱݡ�vH@;���lo̲����<HM���a�1�.D��[9���o8r`zM`�o�S���y�W�C�_�K�{��9`
r�7$~���o~��P���4/>�я���!�Oצm� ܏)�BܡdK���W�݄��m��j�N��c�,-*G8�J�d���I�@�[}��.�L��<���l� '��Eܸ8R��VkC�Qk��͐10�q��$�F�tBF�A�\�SF]��V�|�'NJa������.z�
>Y�L���5���N\�^;h��r(��]7NQ�zP�*c�u�ܓ3
����F$H��e���pKA���m����T�4%�sUֆ����n)�ɱLj��Zs$�
�g]�w��:Q�4���Z��2(���q��	QB57沁�A5�-��lI"q1v�V�=���/�\Ov@h����Z%��%������rQw�h��t���j�H=��Y0`�C/�����U(���S��g��@�y�)'`��vCa���Co.b�����/s ��d�52�;�rۑ�n�k��U�B{���w��b�u�f`qp}�U�m�F�0����f�/IA`���4,7t��Ɵ���L�����^�ѭ��I�(
�j�JK.Ȭ�E6P0�[��q�TQ=����^����Am�WI�MR����X$��X�����Q����b�
�������A��5��j�X
�|0V&�'V�
y�`���lj�-Ȯ�Tj=x4�Q!π�[�Gng@3G�R�D�@�l��DAk���>$kS'�����{	@!�F�g���t7�'�8� �Aȼ6��q����֙j� �PGPX-}3B�R�*�F��裭��b+�A�?����V'�|�|^Dv@��.s�5�l �����R	�fn�.Qbq�:	ȁ��!J0��MB]�e8���%���҂9�нu�4^_����W_������ߒ��~�1�q����'?���^9 �1r`"�"r`z���˼x��8ϋg�O~r�ں*��F��`���*S����
���qd2�L�{��#9�v@	���Nn�4���}�y�W��n5�,q�w�G�1��0��Dz/�s�c/�״U�a�J�r��K�HV68cX2�lI�T`���N_����	����P��F�W��yR �4~�F����_���}�"<�(���&��K@)�EfH����s;7O��ѸR����$b�8H�I(y^�ĝ4�D{&��RGf��*�,�&3y�d��\{V��I��Gb�q��@�ISX3XZ��y+p���vf�G�V�
ε2'��	�L��Y#�c�7��l
�J�S�E�7��%�r��›0m�C���
��.p΍�4�<��Y���yY�2[�>$�|��*�nA�lW��"Y0k���7���2/
�`#Ns�-�[w�dZ�Q�ꖊ+�L���_�	��
Lt�`���5R \�(��)f�������"���;_��`Y6فZݒ��F�Ǻ/�6e�a��	�)�$ܖW�ZC+�1��~���u�6�Bpԁ�T-���0(¶��.(�4��W�0��Ұ�Aq{��q��Un�`��\�Z˜3�Y��..�Q�+���ɼI%Rb�QE�h=�j���1�����?_�(3�[��-d�I���:�.�����Mc/H�h p9i=
�2�A]�/�!؞=�'2�c�5�����w��x|�����{	���<`���9ةE�ud�#�ͥ��Ap�~Kk��I���Z˝��D��	;�f8�����M�M��3���'8P�
&LE�;{ʟWg�I㱮@�2D�H�,���
�����t�q��:L�hi�J�9 ʵ�0�������$&�t9Y�J�)����*@em�=A��Q��\T�_���.2T����x4�T�1a��Ϟ���^��?>-]���_���G?���]DL��n���{p��'>��}�H���:<�b�'�XJL�H���wWk��H�����C�~~���x���'VM:ϝ��0��#KmM)�����D�:����XX�`�f��J'h�cLY�S"�'�"�����7J@����c[Թ.$S!���<{4�4Lb�Y��7���kgyM�X�����"Kw�UVI���+�~$��1i�y���;�kG�0e"�gM�3��#V�l�HW��#h�,?�gP����L��5�=Q�<	�c�q�Qn�tդ/s�$u�e���ڥ�����K�,6Y0c�����@%:w�&G6G�*���(F���ƈ��AqL4�T���~�;��*R�k�5��`-6K�L�~�H*3m��}sg����d�H4sgH����
��p(�2�+J�YҘ���;Κ�+�h�͝4�,��gMPXc�M�|'ƶ�^;|�ś8��.�=������C�Bl�l�
"�<�Є0Z\n �A<�S�q��1yt����Pb�i�iLk-m?	Lp#����/�`�5:�����$.`lY,Z�h�S��տ���ۧF��B��uQ�.<
?"Ar1���^��DT���E�9X��Q�4
�$|�D��#���a�@�@�a
0����Jp<��~1Ih�2w���	[$q���}��F���*�DҺJe�h���T}�y/ܩ%�������\�h?0]d�
�T�����p��|�\�ͱ}��%0q{����(�L
B�2K�X;�`.J^��K���d�z�Ok�UUZݭ�q�Q��i��&bYbi�V����!��|e�1}�[�~�x��Y�x��=��S��ˋ/�!��*� �aGDh[��=C��f���rf����97�ϲ��ITŷ����b���0&ۇ�X�
P���@%��rp_��d������ۋL����˧?m�c?�#!I�ߐ�~�#�/N��ͣ�[�S��|�,4��<x��7r�̗���}�_fU-n%o�L�b~.�g؈���gςth$�*��|R��Y^�ټ�Wdێ�%�l6�x�Q���|�+��~�Ku���)���:-���<�xekˏ‚��r�Kб/ח�l\W��2B<v��;�� ��X����y�QN��>k�K,E?��<�I�D�3Ă�����;�?,�	
�Xb�s�&@�q!\@�����P���rU��c��311��b�|xd���!�qN1_��7��#B�C*b<]�;XXZ
�C��"�����A��C�L��}�3G��~����ȴ.৵��(K%�6S&m���",�����xQNB��F2��cg�k���Ngn���A���M��G��0'�=�eI��H��K��n�<a��S�K��pB2sv���&po[�����G�B./@H#��1���94ݓ{�s8�{lGYٺ���j�oG7��d˃H�'�&S�����bTX[�������Չ+��Ń��=RP)V�g��ȘJ� �l�ê[D�J�q`��DQ���?�v�������
0�z��{�K��=OX^%����|ػ^�m����c��(`g��}���94D����Q��	 �����wѳn�*�^rl!��M4�Z��t�X�8y����!7��5�:��W��[�X�T��<�*R%�E9
�^K�MmK�$~&�C|vF�M{���	��z��*�O1D)"�t��|�����%ot��E��n)�UG��d�l�
�I=[�$}M��׵E�"�){@�{����c���Կ�6����c���$x���C��+�(�7�|�W�
&�M>�W@�g� �U�Ă�C�]!�Ld��î��{��f1Ӻ��������B$� -��r��]G�Y�,���Z>�X��] 
�@.�'Z�v�,��YM���^{Ro���|����<Wu�PF�U:g%K�p�k=6��[e[_&Xw�9���G2E��'֖a1����	����E�X��-��	:�#�Pi߰�� 	.'ɃD��4��W�!|C0Y
��Ĉ̱wa��*ix8F�!(p��:�ml�\!ޒ��8y���Q��z��[Z��ɷCL��{-R��ҁ��)�l��l�ڶ��\O`�;2�L�<n��dž��3��
׾u�=�J[���]_kC�N0�,��H��?ܻ���poE�Ծ�,j��9�*�5�:��	��^�{[狶2-Yžkc�2�@m�4��K˸J�\k�[��tx�Z' Xh�QL�W��?�PI#�Ֆ�k
��Dm��+8]'���j��u	���q��J�ulNn���UM�6��������M�	��N���|���
��d+Q�ȦӴl�/� ��D���R0��IB}Al��Yq�)塔�?�o����ԨDڒ,+�RF��wd����e�Z�)���c���5q��~�Veյ�>���B�}
��)y����	9uՔm�xS
,u�/�	C�=[�YE-��6mƤ
�*��e|�q��A��c�Y�!��lm"	����p�/�B"g���[v�S�ɘ/���4u��›�u3��㴒Od�BgY
LB3��PM>U=J+�0��w�U��h=���f�\FGEY�GYA��l���$"p�X��Z'4�c	R�Y�s�>3�y���c�{ 1�y06���1?I]�5>,L{�$x��ȁ���#�����)H>*�?�9�����X=�*��L�1�����H	�G�y�+�[d��G�Yꢛp�	�Q��h�k)0�
oC�n:�Bu�����
��0��X�F��Xd5�vt'�(U�Fgc�P���
}�.�z�%K��A�U��mZY��<�����F
�T6�x���T�t3c��k�[�!�cw���\��R��W(e �"p6��3�'2����ub�j�+�_�g�����w��sn��BY�!��?�k��.�\��B^�Wgi �O?(�{ߕU��a�^��j�3G�dO����+6#�A��XPn���D����}C~<�60��������H��yv[�HK�y�Zn©���)�@r�7�1���6�x������$k�A�Kэg��3�gn~�pŇ�ߛ?�L4�!ݘ�/�G�FRm��93���C8���lx�8�U[
0\�`�Tml*@`需�B�[ի�1{����֗�"����Ž�?TR"�w<�%6_��_�P{��G�xh�ekEji�E�!����s��q.��YW�j{^��\�h������/�1j#\��H�e�-���yq��8No?��H�Q�:�08D�>�uuXtؼ�L�+��yă�6�Qk0u�����I�����sl亀�i�0������u\�V���0�36[\] $ ��z�H��#]�L���N��`@��%����\^9_�%o��br�L�|��8ܿ��R��x74�L�j&{@ѹt���@��|E����.A-�a��oI̝[�jfu����P�����t�xsD��VN,e������ÂG�<8�����#T.���ϓy��d��}�"��J�;ݘ�v\��@�$�&3��L�=�$�iuFc�[y����4��̡�0?���I�1t�?�.�T��
/��y�'�����Yn���?�g>��{���$!wS��1���ΐ�s��7߼U��
M��?ۚ/�b�L��#X�%�o��,�,i;
�����Z���8� �(u�d�:��ᅀU������Wx6����	cA�����V��\���L�5��E���]+�o��A�P.��q-O��ޜ8I�k�ɷ��+�ݐV#�[t}���g��gF�i!#F�E!��>k�9^ȓ�(,�C-^{Cse�r�WY�7��؎|�r�y�L��G�5~F��R�d�Fq��;�]IR��F��M_6��bT:?���4=�0�fC�˜�ׁ��֩xLᾋl�R�0��r��3��̍�+��(�
���q����s�l!袢d�qN�)5�|�Y;��qy�¿���{�����9���ߑz�l�;�>m��g�q�A�M��Y�G��C��%m���8
����Mc$MFy����YW�z�b�eeQ�m��s?ǰm7~PD�!R�p�q=�m-W�^e��΍�A�k�#ո��i�o{?�I�E���/�������٠��FSĔ��t�7R�v��M��	��������e�1��ps,+b�J�H�u0�[0y��Xf�۠�/�*�r�5ф�0����"SY�oА� �Hm�WD�r)ґ��$K4?�7��>���F+�6����P�������m<�ğ�|�-����NKUY��J�!ZU��X�hK����l��o��WQ���F�J{�_?	��Е(��*O��=��y�D&i����|�7U�h�q���Է��Ds{TT����L
J
nDG
{`���?Q�*&Ǖ��Y���1���߁�T�����J���%"-���j|��6��:[ݞnRkwW�0�
�wr;Iӗ�%�Y�Va&k4�/=�U�t����8ѹ��$�����c�\��� �������W����ğ�������?��5/���N���/����|뭷��_�X� ?���\������ey�%��~��O�S����'/���kz�o~�[��O�`�s`z}�c�̗�|�$
�D�ǰ~�ʻ�ՌxV���c�\W�g8�c�ta-g~���T9��\���u���Z�<3G�dH@����4\����|���iP�`l�F	5ʓO�x,u���)8.��kM`"��K��y�*~OG�+1��G��Kq9[���u+R,�<�y=�Ʊ��g���
"�M|�ף|[��4�H�qkJss���A� +I��7>��A(���Drg�MU�I��|3��0���I�Wخj�����==x��m�ƙ8l��
k�Ho?ܨ��#J�(%	;��.�')w����^�˶U��j'c&��*���U�'Z�0�d��JH)�e 1�\w�r��������I%y^�{EŹ�-:\:�k��R���#5�{Ɋl'�v��_A���\�Z;q�;d�/��;�@KC���BЏM��߉A`��R7QP �D��R�Y
�A4��4�'��:�+����퉨[Ok�ѵ�����B���e>m���V�hB
��H�5*�]���YU	"���V�lZ�m/��8���}��E�;StH�ՙU�\X���>\lMH���0�L�8h����$atJQ0n�������US�bob,�P_�	Q�xn�}��i݌
]t�D��dq0��k��p2&R��e�r"-�����x��gYWFF��P0s�yɞ)��$͙ΏSù�\�����8ϛ=W%m���i���j�5dIj$�Qp��lH�{,Q)2��:�nwE�'F���b��.�^fy&��i*��w<.��$J/!94b܈��U��k�~�(�a����s,HIy�g�zM%�6�x�i��`ߍte5z�ꁫ���j������N������d��A~��?��o�%��k�H~�w�=&�O90�&�f��/}����~������ӊ$��o���?�=�����Dk��E2�V.�R|���X�UV҃���*�o'��X���-O ��#xn*��L��v
�I�km�*�	E�5��1Ժ�W�g>�ό+����?@�*�֖��i��'B�&\�Lƛ	H�!8+��2����=��@�yA5`�b5@ˤ4W���%(@b�:-R�IM՝�
��E��g��~�?N�c���J���Ldԝm��_�Qk��1��Q��k�ěH���E2��90q^�ڼ�ӵC��W�Zr�xh�i�%�+�y�	d��S�h�a�IN$
�^;x����h�Dž
̦��A��Jt$�-��bޛկm'�A@Ɽ�
Ho
�Q��,bE9�#��9�^��j�o��J���r�[�^`�7k�{I��𛰆�c@j�w�.I|�0�z�6�e��
N�%�^7" x	`�+X�u��JlБHD��5�����-l\��T'�X]2ęt�}���y�3��V��ڮ�����/����#M��b��E�%Iרt!�$6�ʁ�����΁A�c	�AC�f�.+-j9�1�m>d
��<1�H�Y���(�H�Z���c1��-�:�05����d�&sfsCT6P@�l��
9����l��^�F!��$�Z�	ŒU.\��B��S�KV��V�Ȫ�Z�&�l�R��\�����1��g��&1������c0_a#AˆI��3�aO�I����8�h�`��{�Q]��@	�2��uˇ�h^>���\�����^9�խܙ����7p�Ϋ��`
���P�{ݭK:�W�s�h�xkA,S�8{��4�j~�X=��2E�[�K��$!6���֝��r���7�~�ޑ�F� $ ���h���W��Cot��A���(�����V|bt��̹O����>��k_�gϞ/��$?��+����گ˯������ȁ��c�@�H���O~��g����}�|�ߔq��M�k���}T>��]����i��*���Y'��W�/�|�+J/�랛�X.�GE���'��4����[Q_Y���.֧�io%~!�-�#uc���줉t�X0�,�Wے�O6����<��B��< {�rC��N��j�Z����D2��.�V�a)��=E���'kK+sg�kG�$�')����/>m%��#J7���x��O��	y��$����1w��Z�Ǽ��!Cp��wY���	��rf������:�6P�x��6�:'�Ά��B*��Q�L�r�w���ǸR���9�Qd�ܳ�@�"�3̟�;YV�ټ	�C�S�J�>~��ҡ�}<���q�ދĎ�_o�����s���]�X�S��H����m�S�.������Ǝ�y�X=$(H�@�[��!a��p���َ�ko@��h�.�_I��µA���Y�����Â�v��R�S�KA�3iO�i���QDK��`�^h�����p����T��9ǫtU�(ꮑ�����<�669X'��kM>K`"��a�Vc���%%�
�-�*r��{�E����f��F�\�n�:Y�TN��@E0+v��7l�U�I~�u�P	"ds���IK�8̭rC�;Nl'�;DpTgEh��3�G~\�qJJ�>�k�]�q˲�*FT��K|�P�j*�88k"cZ�0��;�|@"pd]�k~?���V�j��51Ќr�Q���9���Z&�۲�r�hP��@�EQ��ʐ��c�=x�sBƀaəJ!{I�Ҭk�|�_�7��y{��쫭�N���G9=��W6�g�����-�Y�
�b�w��݌��{($� =������%Hߗ�:g�բ{'k��W
X3$2�"2�y�����bVȆ��?Z1���4�Z+�M��b�~��PK��к��ɜ(n��3X(�,��XJ⡑7�/L�v�$LK�C���O���3�	�����7���x�t<{�����̒���|�s?!�Oc�F�3���/�k�}����O���F^y�K����1�����M�������!���V��W x �ΣD]H�<b��~]��w^���A�b'j�2Y��Q��J����=���?F�R��p�V\֑z�ADU�(�
φ:�W�_�ur�0wCT�guΊ:�
�_"01��遺M
�0��#��^B�=���W@�!�/Yg(��DET'iȊp�A�ϻ4Hj?ׯ@�@�I��A.��H=�1$��`n>�9�R#�b�x$R��ѥ;3�r@&D{O��F���x�'qi5Q�H��_���g���y\�K]\'c�R˞8�((�%�N���=�U��}N�䐌��I�ۂ��[�����Հe�k�C.��a�0�(�,'cN�x^��-cp��dwa˅�ü�h��)�x}#l��=6��uP����W���8�!F�-y�}p�6����l��=)�=2HZF��b���8Ǩ��h�:�*���w�������l{Btt{����O��JU�h|s�����}Y�� a7�-mȺ5YO�Y5Ү�M5�^���6q���M4���3��D�/�� 	��ܻv"c�.\4o4�����>�%��)*�'NSN<��sI)[�XDB�k-U/?S��_�����s&�=w��ypD(��h�Z̹Z��(�dw�W�f��!A�F���:+�U@20��ąM��{�DI��:Y�5yS�9�@)�*�~
H�-��	���X̊�1�W1�4�ṇ��vG����j�r
�Zt7s]p[��.���܄�y�!�NT�R�!@`bp�R�;Y|��ӹR0��6�u������	�38��#��Yj����H�Z3S�V>{�@�@`�ҝ�Q�U�'�o�����3�yS�?ډA�_�p��	���hW�^{�'
��v���B�5@yn�Hh6^90������MyﵒO���ϼ���ș��[o~K�._�|��C��BL�oz�L��W�8�Z�_X�Q��Y�֑�v�ʟ�A�h�hs�4�Tdҹ��E���<�����T:�M�yi��,��b�����q�:��,MZq>#TU�����㤱oQ+��Tc"�U|�#�<�T�?��x��P�A�*�[]�����@�jP�/u�eO�������j�7��s��^@���ӮX��.2�F��p��"�[�jg��*x
c�[$��J[�Fe�`�W�Ie���x�A��_�4Lt�WsI�s$��1X��ŵnώ
�6�`��W��iv���=œ��t~%ʻ��0!�~�'T�Q��G�"v`T������X�m>_b�5(մq��1os0;	�5�k�׭s^뽳��$W����'ܛi_c��0�O�K�0�Zb��B�5LB���Z{uו�jH	�$0�RX&���2@X)����
l����g&������Ԏ4�?����2(ٹ�]����i�e0�B�ɼ�U�����`�i@�g�Y��Z����H�U��Qu*<CP��p�K�S#o��7��j5�ˀfJ�2$���yԃ���������Td�џ	��rr�Ep�B�մ����iܰ�L,��)#��H`,Q*��җK�w
�� �q�EŐ� �E �B�E?Uas����Z�I�y64��+G�eq�>�2��0h���E#�$��=�Bg�ɹi��4����B��� r'�k3U�.�z�LŴw��y��S�+�?S0:��?��~i%6o�H@�z~�=w" ���o'9���Ǵ��玕SlZ���:�2p,c���yϵh?�(JIޑ����#��7�)_����[g��^�6Ɂ/���_�ڷ��&��[o~K>�я�|�I0=Ͽ���;��i>g�@1�w��}��ɴ��}��<�5y�g�
��H{������*I�Y4R��˙<��q^.^A�u}M'�pjRw��������7�X�sI��
�Ȁ$�m�����g<S�S���@�A/N-sr���Bn�x�r�4LJ��'ѵ(ui�T�p��������X��R˓�D�����a#�vkt�+�{�t��4��o�#`��VԞwW��3��@��Y����:l����b5*@5#�CZ_�j�<����f���Sd�Κ���D`bEc��q�-�.�m<xs�/�7�%-y��z��sV�l�`���	C6�6�qg���|ƴǝuH��c�l\��لf���i�9ك[|2�y&��_�-k K�̽V鼶�j�����1�hŽ��vv�U����&Dq�L��~H�
��Wɥ���F`���[�̛f�.��]��Y7P�o����U/��^W��\�f�x�Ͳ2wR�Q ����k8漂�H�O��w"#��-o࿃�����+U�b�Mz�{JHI�PKﵰ�lk0ߒ	JW���=PFX8�q�����7��N�XX}~�ToH�e��M�l�d���K7��w��<X����Z�
�}x�K����4�&5��|~�gS�P���921��%k�
���0����Ǜ�h_R[*�W?�Z�4��	ua��LP�	�'
�����V-��,W⍴��FpR�KGZR_��]E����z�%�=�-����NReO�!>�1:�O���L�;>y�FP0߆;����8^���x������$�<���ԲSE�x�%�$c����#?�_��q5$X��yH�X4�E@m~&E��:oN'2>���t?o��^2����J0��ƹ=�$�}��=}��T4q>�Ni���V���w{H@ ma�|���:Zz�����	'��0��k_��#^����c��t|^^}��9M�;�����W�?��eR�`z�����K�Ғ��M�Q�X���>�k���{�=9�����|�����u�śҷ5���䘍�a,1�q���VDQ7���h�8�����E�곪ĶG.!P8����X&��~��Ŷ�,�N�Ab�W̝N{_�1 �3񒀌(R<C�d`_�E-��*7$���Urc���q���i,��~?V�4��
�M�ep2�<K&��N�y�sd��d�5�<�y|�[>��0
����+�)������t/o��@���O���XӖ
]�,���nS-���M�\���&M��K&�.$$���
r�kR�)�
���8,����1*��xΖ�,g/�e���5�RG�/Pc ��^�����r;��ꃵ��u('8��G���+ ����u��9J&i����8�c��GE�M͓�)�z�!�
�;\�<|��6�i���V<0�.<\@̞�o�����1b��u���v�r��Ѝ�:�*��.YO�D����3k��x�I�!��Iv�V?:�5�`��Z�xe\>�{KU���,m�gɾ���R{9�|`(m&e����_�ZV�G`�P௝�T�eZ��|Z*ts`"$��Ѳ���s����$�� I�
��Ƈ0˅�g�1F��KIf���X$���)��P'S��Ƃ�dw5^[�с��'
��p��]Ȥ�c�o�$6�uI�RI��+�����1H^�#J���<��FF���ҥ-7;D�DPe��tQfj’�m��]���-��SB�s.~����q`r�΀�a(	$�Up���Ch`�u8��E4?a<'<�n�N�,�gG�#>Yw�-�J��7�<27���T�b�g,�W����#�ގ��0���s�*?G��_�뭷ޒ���\��淾�]K<?oj_K��#�V�tO��x���͟�N����[:'B����|F�>}��o^�n@�΂�vDIP�M��T+T���J
d���zOt��_�W-�F<��г�7D�0vžR���R>� 2��:�P�Ӎ3;+��E�'ɼI���}�i�Cל�?߰���Q�5V��00K�
^��hIԜ �U�#��C�X�90�ĭ�ي��k�@YR �a,��M�A$Z*YN��;��~�t=5q97�a��ڊ��!��<�%�[{W�G��"qMN��v��M���8����H��g��Ah��,�?��."Cy,t�=�3"�4f ��0C�hlX�����0����W:n��*0�q�q�>T�'�Zh�!���x�*��cK�G���tv]�I������&�b���cX�Y��9y��}��*���{�.ln"o�b�9�0dz)��Eo��I�V�&!/ށ-Ξ��6��%��n(�O��{Mu%3��	�D qx/���ƀ_�/Ul�J��-�4�v"
%	��U%ޜ��Lc��fk3���M�
��*�ěG��|�$���F�������-A$2R�KR)0�tA�UU�
�q_
�����J��ښ���$j�n�:/l�ʷ��q�ì�4��$ad�K��&�f��Bվf�TD���˂�I������U�Z�%h���3�[�l��GU�hϔ���!�[d�͂1�Z����ٴ�
��[��A.u�I�u�{�ݼW��d`P#Y����^=���0�*���'��@��_�Pv��vk�,q�o�s�c�ɩP֊���ۉZ����[#���3�򘺴]+_���($S�$2x��K��Q�`�A
p7�C���~�g�G=�{��߼�\n�~��_�'�K�~�<�7�I�Wo�?��=��!�$x��W%�c��N���O_��x>=��L�W�_�C�{y%�7�in<`��*J�|i)����sk/X;$�b��8��Ӽ�w��8�aAҬ���q]��G� ��
0r��n8�@�]�N���x�|�xٗ��U��I�ŴWW�.���D�H
�<s��ܸ��FZt;X,�=�sV:�)Փ����=�x,(@<�%�~Ġ��Y�3k�]9�&�̣�E���i�0"�ѧuc;4�{�NoL�m5f���6�LחdC6�&���[ؘ��2F�u`G#ĿfAW�y*ZT(����ă���7�#ݏ#6��y{㐓��t'�徝�0k����S�?�}U����%����(l�ou�����h��K�ERXc*X;�J��5�3R1
|���g�8�E�P���Y��Ɓ9/��a�x#�T'��g�]
�1������n��<(�۱�GcK�-����p+(]���b����K6Q�ۤ~A&`�
h��`:�@t�D&���V�c��)��7R"2J0��P2�e��a�UX�1�}��[ܝ`���zrX�Z�+���}j��"(�F�F�����%�g1$H"����.�Y��,t�
�E��$�23|�'֋���y��>��s�n�&�7:����dz�ץs=�>�b�<=��p�a>´{0O�u'������J�aP9���#�����	́��� �P�9���b4l�|/���'dJ���*pE��� qU�c�R?'ĭ6��q6�=Η}頞?+�?�p���ϒ���ȷ.G���I�r8a˻�<N��y���Ӹ��WH�٫�:��a�b�M:�Τ�w�F��(��I��R1.��"ú���mޣ�y�\P�%��(���kQd�Ci����+����\�1!	~�wo�^��7�+=�Ɂ:��<�����M�Ɂ{,+�W��5���>�<ߟ��z�7����q&�ĺ/�F��y��y3+�f:/
@X����"�k93m��qƶ$Y� x/h��Z�F%t��,�Av�ܪ�<�L�u'�>|-�g���ΔC o�&*z)1q�%��܉��*�V��I
s$����X�3�QM�>dC��%�v�<S?V��)k�K-w򐨨�̫��yw��J�ҭԾKaǸ�b��^�r�oF����d̂@��@��R8�|<�yT�Qս�+HŜ~3�H��xӖ痡��Ƴ�5���eӺ��X6��Hs���}���o��RX�Hh�m(��Q�58e	�&�Uƃ[v.g��b��v���M�����l���.��X�@Xfz�-��6&5��Sx��9��E�\��ߏal��� |@z#vO�ߦ�u��[<@1���	*<0ȜW��汲"Ǘ�?�w_|M$BO��Tur�����f�Ya�����_�&i�1��8�s}�%�љe�
R_���2��~�Ɩ�+̅���ckh|'b���*�.涍ģ�ۇ?c�'h��'V� ��F"f5�&R��J�		Y�Q;��։R���g�ߐ�r�4XsS��-��؞�����^ 0�	ˢ�Of�'�
@�(8L��n��������qnᘸ�F�uڝ����{����6�*Q����&�t=�r'x�i��.b�'�oX��t�^8?��շTg8ܒ�52S\����b�w�?�л���#�l>�X�4tٍ܊o�E	�F�����P`�yUIs_��@}�<öaH*�/�z��� ���E�^�ђ%6C�e�\�����;�g��N�7êe|�d��%�F���.F�20w����	<��L����";��:I;�N��=�u�a�I|��Q�#��T똍��w@J(z}��_�ۻ�X���o|��2�sj��Vr��.����Enhz��s��'?�bozg`��ӣ����~����G���F:v,{�z�^l���o�x�]��qa+�	��(�1�O�ET�]\m\��d��1z&�Ԃx)�?/�PP��S���xM�d���=�
�Y��t4����X�yU��C&�~JEO?��	#��[��-��5����S;]17�0����*� WՀ�v�(ٔ�ҹE�Y�O�v,m���D���|U�N쨨�(�g����H��ަwJ�3��$���+��.8_�H�>��-��[��V�
�ȶ��w�I*�����c���K�
��Ms��]�'
e��~��l�ל>X��E���p[뇟"�)݆�2�lXއ�$�N���k�Pn��:}���?;��O��Y)Azj˩;äjԍ�n
R~Z{c ?��1.eD8�ܔ]�v�|CѼ=Ԧ%[��vr��D7@``�S'�l9q#x8�ޮY]���Yd�
�+<sڅ4;�ۭAh��t�v���]���	)�H7\��dц'�t	�!�|�*7}��!9�(U��`u��؛F��VBdۨJ�����N��J����?ߛ�Aq���*��\9��;|#� *���M�x���~Ek���5|65�C[�`�Z�X�����
�n����o�E�W�y�v�J�4Q�@^G�>T�Ii�*NkX���ׁc5���*��HЂ����m�|d�^��v�?�m�dA0v�j>���~o~19~�y3g��ӛ�;aCN�Y�Z.h1���ni�$Ԛ?g9��&(�6K�0��_�;�Xec�q W�6H-?U�
���}�0�YYj��]f`Ar�dS"��E�Np���wI�m|���7�=���Vr���u�:��vr��=��|u�"���Y�.�e_�Z)a�[����IR�%��O��Z�Q�4�[$�B��^iN�����<}N��k�
�Ljb^�n��r�6RT�U�=Ku���Q�����O�^7��,W���ԝ��D�Ad��g�S��-�P�+p��hG�H|aUU�C��N����g[K	�_�d
� Nh�앗EP���-���y�4j��[k�J�7�Et�jI-q�ߓ��!ゟ�_��{%�]_�>,�XS^�\�"0���NHу
$#LDiP��J�=ո�H�/�0�-�*a�*��1��`���H"A\��=h����'��6�6��?����9k~,�G��|�RW[��\΀���*0)��c$�x�� 0�ֈ[*��,Sհ��rk��^�*1�c��ִk�M
0z��m�8�B�Qg�\�J7��Hgn'R\9��o��V�~�c��^�Y��)�:T���`=��(Y;�T�����͝�HWIkPVaA���Q@,��E�Z_���av�x���N��$o�k�s1A%f��;��?Y�j��!�v6`�,[�}�"��t B�ڠ5���]~��0��%[7\�jL�|�➒���G�w���U-I|�� 8�h�RK	���c�t;�!�㴬�2�q�):l$�<���q�K�K~H�v@�Z�N�dH�YP*�R`�<���R��/�
ɡ�/��c��?
7��)U��|"�k᳆�4&G�AУ<�bv|h�&�A�~}1�1�S㲭S����T����jR�y�>��E%@%�?�[X����-M�-l��,C��=O�+%��ܛ�d�]qLgH���3i�=f���bxz��XA~M�)�^3>$|�6?�{d+�0Z�� �F�Ӆwly�k%����ז߹���mW�w9���@��=��������'���~B������ܓ�}�z���2�O�����]fU����E@�b��,-�z�l>*D�r9�G���އ\�K���B`��H�a|�(�:q"�j�W����$d�ӴV�j^F����t�Z�	�bz=���f����|*q�IV�*Km���t,{k���5��VrU���H�@��\$���<AߏQ��!�Yoa|��]�a[���S���ϕ���+�d5���{�V�M��#���xv��UYʴ��[�l�wa2����{�:�s�a3���1:\7z\��',�-��8�*�G�n�Fj���R$�pz�j�:/�.,�"Y���C??*�JFi��[���$"�m��#Wp�1F{mo����/�S�d؃��7�+�1��m0�K��7����!%ƙ���Ρ�f/�+��IaD�.�V��:_.���}?��f�s,�{�6ֱ�r��
�5�E^�в�dϡ=D4�iL��C{.�f���*7�U�m�79O_S���#��bw���Uư�x�hk�T4*����*)t���C���F��0+��=�!3l�#$6�ɸq[PE�9�nYj����@���E[���x}�?���W%�O�V�=�T�f"`ʡ�X=���C�0�'�s^�g<�Uڭ�GI��=@�f �?��*C���N�L���xv��d�&��! P	�t��Y��P�C�����ffA�4�Ү�0m��2vp�pu��U�f������ 52vK���(=[��
Z��|�
z]_�H�	�A}�by젩�u��&HN�g�60�b���'\��m���T~,��ǧ�%qgn�DQ�E�hb�ğ����':o����
��C�"���L3T�`��q֋=Xt!ȫi���Y�
ȅG���+�%4]�s[�/� >�ѝ��#�G�Ƒ��{��6�|����z����e������|����\���3��sOo��n!�����K~� �P��1J����{@PxIm������h����_�r\��1{������ӣ���r3@h�rF�!'=<�$�"��7�i�!,d��~/B��|ߏ`~q�A���Y�iNpA��AY,8�N�$m�`i�G2n�$t@�����Xr#1YR�C$��&{`��ސk���bh��5h��@~u�k Gr�<&�"B<�.�G7�k|�U	�z��ŴĿ�l�ڡ�7�WB`��������5�e��A�`!V��ȶ���R�O�����lD����5�G��,ư)��v��b�}�1g�u� ���~���a'�cqK�#緇��'�(�g(����ԝw-�'>ӚK�N�4_���O�<p�9>�H��i��SC�/2H�:��z)�u��m紶��u
:�J
\��H�� x�,�:={��-
���HvF��Hb�\��>m�-Y#�~@� ����z�%
;��6�Q�U,���hJ]4�v�F��I��"㜣�V�	�4�w@C�J��]�V
��Ls�<Ww�0�x�P�0P����'����ڸ�mtO���1�[k*[ã�����3$�*����Tki i*e&Y�I�%a�{��sr���r�u6��܇���J�$��q=U0���^�<Xt!��;��8��d�g�閮��!���Xt�4�����n͋���1�k^7�G��K�1�_�zł�ky������j`"���Lp�<֮�n���p(� ��rIZ��n�m��j��1�+a�[s�>�汹W�u�}i4�7
��m��18E�F:��5gr�a$�`)C&�"PB���I��gʩː���I��i������x	i��V�s���;C���m���?+��OV����w���+d	�	������G���G�&ޙW')�꿗uz���W�V�5��8E�i �6bc���ϙ4�1�Y E]J�J�d���\|O֐7.Ռd8��gkѥ�X`D]@n�tZ��Z
�\�3��@d�WC���^���b���`o����p�uc����)v�X,e�Rl8`]�<�H�4満G<!�H��;^�d@�ۈR��y�}�N��K|l��YD��°[^"?��ڀ��{E�� �@���ЋE+=�~>F��)y���c�q��#��c&[U�F�C�eތ;*{>�/H#���&�T2t�h�������8b�1.�g��<5�+�|�s4ƹ�]�� ��A�׮PH�����9}�q��l�<��m��X�']�{�P�g�U��1���[���Љ]��8R`���,L��X�4��o���V��i��V�$�{��)��H��`r��,�f̆n�A����֜v�/��i���1����*�0Xh���}3?��(Iꤳ��f[��rǐ��V"��`��Lj�`�j2'gD�m���Q�*h���� t �uLKZ6�� )�H<��A�
���� �H#޶N%�ٜ������q�kO�j/dL�d�g`����I֮�A֮I��7=�[��|b��L�j�*�e[~��+��TD�u��s��s�&�֜*{D�������hWz�
�7G_�3?k-�ǒe�$�'���r�qSW�.��oP�<�:���F���V����Z�]RG�X��VK%���Ց�۱RDj����{;"1T��&���D����
���^���~�2F��O}����o���EW��yߓ���#�7ǯ�G�J|��}�@��v���<����%Vu�Ҟ`
�uMc��Ũ��t�(��.�K_�H�r'��n`���@�N�]�T�l�@c�8'Ӻyԑ�+�$�ȕ��'�MQ�02���x������;:��b�^Wl%�`I�ȃ0i��}�y�y�(�er��R�y�U�a������L4G�@Id�F�(�
�F^T[y\7�|�M���kP�
�I�a�,Z$��m{�v�}��iz��I� �|C됬� ��g�{����e�f��Y�3����ֹu*��a���u���6KQ��#F�2\[��$g��e�z��ּ�=#�Nl��#�"2�����`��	�V��l�~��*�?�iP�2[<��A �w�,h�m�q�A��Ġy�
�BG�3�ȳ^v�ظ�����=I�,C0"R��TAt���@�YU�L��X��:�N��	^��>�lJ4�/�8�ބ�?V�D�G1��y���N�G�6��.jLl�d�tFbI��BI0�z}ͩ�x�U��(1#��ؙ���
�22Na�T�ln�.AS���ҥs�ti��K��<�����)�Fm�#��dh��W@[�羂9�m���d��+EJ+t��@����q����m�R��>�(Q���?;��cNC�����
�K�\������,c��@n`s�|֠5p�$[9�A�h�@<Q�D��D�r�Q2ѺA/�1)	�a�F#��+�ē'����-
�V�]A��֠��LU۾QUg6�P�s���>��
R��8e�Y��|�H�;`�_���gI��{�N�����.�ͧ�l���?0H��u��!��69�~ D
��_�Y��?�C�;�_�Q������S?tyT��o���e2���#�7�$x7��苪�/�Ӎ���9q�*�p9��"�+%p67��0F@��kY��'ƹ<�Jq]�j��"@7x���;���Y�^K�J�y1��E~�dk�8��q.!)�t�
R��$ŷ�6�z�d	��N���qm��ع8��y�\Ԩʕ�`�+��C� ����H�ϣ���3�pegڬ�m��,�au!����@T������-CX�쌉wh��[�\j�Դ��t?��V���`�lbFV��
"�Ke]}u��!9�j}m|=�賷0��צ��9��r�%�Bf׽�X�T�`K��Ř�V��րM��Ɠ�M|Y۾���ua�ȀBg̯�#b;
��	@0[�-鸅��p��5�Db�<�j�5����]K�?�>5���3"8D��xM��Cfv�ھ5��j�k�s$}w�X��D8��a�	dO���H�+J�>s�P��׎h�Y[��j�
�eo;ߘK���	���)�3�
h���!E�nl�Z�>�5�!0�\OT2�m
�{� ���~Rݟ05*	��T|b�@�b����@0w�k�U�X�ϝ6 _��k����
��)h5,`�m�����*z��V�᧐����،��g���Q�^4Ib�ͺ�`lDVT�Q�&��f��;��̛ʹ�5����06��$D����u��3�~g�J���^�P?9�i�	�q-��ػ�dm�9��t
����<���=���j�z�����V�jc��n���?��wT�A�Ӟ�NC]9������m�q���Iֵ�Y�Ӽl���O�Wye�n��8W�LV7w��d����ؙ1�
�׭���gu��9��H'��<�s!m�׸���y�7��8��r7���ߖ��d6�|�ֹ}���iG�’
����K����^29��Ƞ��?+e&��>�g�w�������߇��ߩ��H������{�7e�4����|�筊J�ς��혫H��u@��`N[`��pգP�BQg��
#�Dq���F�.�3AC2@V��,�����aжVU�V��t�ۢ�v�T�i(���L�<+޳�1+�#
,`�X
(��d��	[9�P�������8�y�Q]�(ɞ�7����X�����]W��X�N�P�;�u?�f")(��7�����������l�Z朥��eP�E��s_/>{Z�8O1��Z�q!��ʄl�����;��gQ-��
�p�(
�t�:�Ek���R�|N�9�ۇ�1��{d)D�g�FOgyބ}-ߛ��(�
E���,�4*�A0v�G���G�j}�]&�/����QB�ۉ֐y�E�3�;�T�R�=Bj!v��8��z]y��c��
.�F���0����t>��!��2m�76L� ���N�A*�7��)#�Vr�e�"�&�s���t*�[f�n�c�B$T���r��
2|e-�i��<b����8f��\+Paq�&�Tz�9˝�s2M��+8J�8��:&��C���(�2�W�ʠB�gݘ��^Ǜ�Z����(��P�,<ʌ�N@L��kI�o�'��u�-[mjD�(����ȅ���(�TXՙ�>��
o6s��y9��"C��Q#y��[0���%�ꐪQq�ylɿ�I�t�B&e���0�2+栁��IU%��Ai�8plGOX]�8J�����v�8i�������-@IU�JdB�~a@R_���#���\�-��/���%v�R�ᾧ�`���6e��1�&
��hR�NL��I=C�
w~�p�vbًB``8=�G3qP>��UֈK���!�϶ĝ��w��Ѕ�O�Ք��/���s���R<��k��u�o��+�q����H������>��?��G�rlʳ�L:�HW:�3�)�p�����-��8�Z1�l�-��J>���b�^"��:��}��`�H�Ǡf��9�ā�̝3ŢY}�� 8K�)�d8��~�F"��d"����������~n�Uot���)�al�R{0(�k�}�f{A9��B֬�IrD�Y]p�������ͬ�G��Z��{+һ���t�1�[��k�w��>J[����L	j�ȱ���^GgWv�q�d #3���r^0��{q��>^�κ0�.��?Q��̍�b�g�~�����A�"�����5/lǞf>W��=��*"W�*
Z2:������:��rA�ů���� љ�E����Z !`L^̹z���b���q!�F k
H�/��0M\�x�Y$���tj�#߃��y�&�u�X!�j%��|7�[	p4�y�E]���Z�n&1Q)Ҙ�l�|	�[�����y.�(��0�ѯ��j�	L��xΗq�W��=C���2���f����U�p�q4 ��Dc\@*�`#Xx����]P�0��if�����i'jH{�4���^�x�#�� {`s28T�O�u�9��V�噓N�;pmQi��Q�pY3� Yb��*��m#&�N#^�4�R��}E^�L�ilhq���MOq9����]����/N���l� k�UWZ�.��#ВF�*�%�6$�N'�����Y�<p��ē�ʾf\h۠�Il�W�5�����M��'8�@2�k��~;{L���a�_u��}UljTʠ�f�:��S�V�J�Mc��d�Ӈ:n�<�7��yt�����O�B|���1
z��w���<�5U3�ܓ���^UpT/1��Ɂ��I���z 9 �

�������s���|���@y��O}���['���:ʿ�O^����_�s����%��^�LΉ|�y�һ�$x����T���K\��l�j�M�9,��~���C��tf��ˍn���F�%�+��#m R��5���΄K�GG*�u��*���:��w޶� 6�~��9̂�P��02�.E[�;�k��swd�\B���ޓ����si�s��Iz�Ls�՛g[�YD�'�'
�
��]ZJm\��[�=�=s��S����gȝ�fm�d��$������q�h�
Eg�2sEuRsŹ�#\�:��$95Ȉ8������c|B�w\�ʳ�(э�3u�A���?��OK��RF�dD���ٻ�����”ڲ�ܕb�H���$mn����>��py��)h5�<��-O�OI0��W�t�,c���Ni��m$L�J0�c��p�d��1��3�C��	\�D#Ͷ}��J6^Y�WWE��I݆'AbR�{W\?n���2^����B�dS�(2��M�ޡ�_(�պ���4w�.��9��#R�2dY�(����4H3j����a<A��썇��sh��S�ټ]g�0�@���u�
4�U)�͗+��G�}]x��s#�\�i�lo���%Ʋ�5}�b���ڦ��:RqIԓ��ڵ�u�$-����=����<r��u�S��1���ٻ���?p=��k��A�!�Z7em_DY�
�
�F�˗@��3O�}"-	�]�;���{:g�Q�0�<��_xu��x��0����}�4W�TO����seSY;�F=n�rK�i`E&ZQ噒�uZ�c{��Zk刴�D���>�ۙ,�(��{�]��;P'�T���>�W�L����s�q����N�v�oҺ�!0AEF�ezU���$��:�(����[���5\�q�8���e(��$��6�[�5WP�\��q*�YW	�Ӌ$��Z��/F�'뎙���^~������/���3Oy<m�v?a��o�/����W?�!���������n��e����~��m�`�U�k�!#��'@
��=]9\��V�N�U)IT�sH}�_,��=q��l�*CPI��H�8�"�P���)��(����
>�M�dj�8�����Q�!��A��7G��'~�H6f��s$�&SXͶC�5�On`^RUO�4� �S��hӫ�r���#z�T�v'����$����,�+���}H�(w���G�4*f��	L���9���_�6���Ԉ���W@�����I⮐��gZ�p�i/�cRh=qȹh$��
3�:棸\��4_�h�{<X���׽_7���#S���f��0 s�b3�XO{ߞ��ޒ�q�8��HG�1�+
��s�[��?��5ƥE��$O�b��Š~�$��=`i��TwN��N�5?z)Ok䏅��Zˋ6ڝ�����"{T��wFRÆz��=��G���/���!�P�iLd�l��
�(�^笒�i��S�v�M�1�v.y�[�w�Vڜ�oo�{eG�M���h��Y�*9Nr6� �r&O��I0�Q�h��U�^yX['0f���K��ys·�p�G�
q8%q|R��I
b���w����#h�~_͡O��� 	�}5�}5�tA�8���T-����3�}3���{��.�4��U���F�8o��ɣ�x����)m��u�UKڡ�٨�)��W|($�����|�[��=6������k��3#���~�*�h���-k��jAU#D�`��#���0}�FWE��0��;40������Y�ȶ�g�|��j���.��>,��@zz��|"/��5vE�u--�q2�S=�K{O��SE��9��Ќ0��Ѻˁ�QIj�2$τF�>�Հ.-���N���2��O�?��y#r~�?>��'&���~~��K��	N���I�
�Q��r�Z����;����?m���J�D�`�y�+_��|���-"�?�����#��?|�(��?~]��|@~�_������B�I���s���1yw��۫�m�WؔԊ����|�]����j�NT�	�#��&�P͛;��A�]K��Uȴxۀ�Y�@>P�o���[#�W��lm�H�Aޑ�Y��8�3H<icZ��E���J��U�J���ȍ��I-�CTwY��D�
 ��@�~h;����Zۺ�U���@R��j�	��"4ʓ$�CQ�lT
��
��b�I���<�'�|6r���c���;\�s2i�X��H��X�+�u/UsZ���;��"Y����9_��P�s�_0!�1��U�ʏ"[�oDxԮT����:��&�t�;#��׼I��+�֢.����;M�����Z���\|��\)M�ֹ���oJZ7�9g�/;B���
R��U��E(y�V�ٶb3|6� �}`����Z��b�j.��u��:R[�ↇV'��,�I�ӑ�}R=�Mf���k;氺�+D[���ߌ
�V�����ɍ�0�Z�uπ�!P��h&��'UEP#(�H`�`=�[��#���˒�:�@�F�V��uقN��syJ֑׸�R\�r;ԑ��%ƽ��8�����?���X:�R�'�\��2�n8 �Vo�7p�,�qGb�h�1��(��@/5NQ4�s�(�9�%� F�j�&�F"�0�h��\ς5m����!4��j
d
��.���DY�ehv��$�mY��?w��{������;U�%�@P�G�UwviTL�5(��P�q�
�u��NB)���G!��-�C�<�	-�'�u��Dp���w���Z����m�rY��Q)M����K���j�<���~����N�Q�0N�sKuhg�|G��hx_�O��~S��'�΁���m�u�U֫�>������B3������H%U�
I�FW�6��8.d��q9H~;�㏤#
������IRX�I3�����޳w���ݽ���ku�9�}��Vͼ��s��ݽz��Y�Y��y�[�i�!_9@d���{�[��(?��7>e��7������
��G����x�0�$�
�$`���g��Y!���P�2]�����/�eCd������:�~�0|�d^��/�ő
��zC�Vv(2?�q)!���D�[S7������c��N�W����NJ�d�愖��%~@z���@���
0(.-���X�D������CT���G�:��� x�q�(�1�^�+�b��S�P+U�"4b6S&��`Ԝ1U"&'݋�v���L���I|��C!��V=T�c�p).�J�
�aZ�_�3W��;�*A+LV)��
�*6xp^(
�X��5(�Iu��J�"�=O�',�P�8�x
Ɓ�K	o���]�J�R-C{U�nW\@���*�t��Zh�I=�J���Fن ��=�-!����PN�� �f]ȬtŢ8���!�^"�y�~��5�r�hA���rJ}�f]�(-?�� ���@�kw
n�L��P.7DY)Yœ;+��G�%x.B���_�-+	������x��Y�4�c
X��)Ҙ�?-�qHD��04ljn���,�Q�lFS%���L�d:�t�?��g��d��

��/lǯYrMIV�`X�m�\Q�<��
�fț�Y���d��|�L�C�l�AG�i�p� �R�J�l�H�oV�o��JR410�Y�a�݆iл��,'dGm��ao�gY�E|L۸I!O�d{0N��̫����L�B��aU&���K���pi7��N�i���n��)1sx-��[Y�K�OW�'$�d��dM�̱��#�2C\�T����M��C5��N{�H�']�4H�A%7��T{o���_���|�ב����>n�1�r�Q^���g�Q��)٩����tǔ�B�:59�'rCg����+��)�u*"9������3�s+��{�?��_*	V��_��On�Zf��N��[+�]˰���o�_�\��{%�ϱ���3{��%��1R`F}�v>�7��V����,A��/�(�f�jHr|�o{i���9>��e=�G	X[�u�kqC!?�>$��|.�1Դ�����CeAb@"^�{�mq
�P�^� �l�&`q�:���3���2ZQ��U� C+��H2��ܣ%`h�%[3!�9F�T��DȥٔDJ�g����޹�>14�>��Ƹ(��~M�fӥ�v�}����{�N�uA�S(<�M��B��7����ĽJ���6yE�e�M<�*q��q���% ��d��9ejfZ���c�I�?�tNx٘�TE1��,
�-fh3�}��.���5�)ڂ��}������d��5�͘�` 2לN6�W:���ڳr�.^)W�3���X�(4�B(�?�\n�ߔ��B>OGwyY�yv _s�DXw��</v�F0��Ŵ��!����=0�2��qOC��ѓ�q��ȋ�����H��lh�Y<M�L�Jg�H��4�Rń����3�4@��I�$P*�yص���b�f�
:C[��Hbd�TS�7�|��v�0@�*m
h���*c�7|�9Rg��-�l٨7�i"k`n��n��d2@��*?~��j����1 ��c�)��+�l��|�<�1�2��1�#�{0l�EG4�g�Hw`)�3YC4S�
���H�4�Z.Șz�s�{��hv}֙�w$�qio��0��
 �5=⺿(�����c�vF���P)9��t���,Ȏ�k��ywf�1��pGxod�l�N�ߍ���~��8 ��d���\8�5pJb%�Y
pZv���hM�|u���U�,�m,v�gXn�U��Mfp��8ڞ��g�yӸ�^��`S��17�fA�W���L<�ݷ{�� ��^��2^O:���̛#:\�]n�r��+~<�U�)�޷�=YҜ��7������6/yY!W�?��f'^�+�d�O|Θ����\�H��y&|���,������_���1'	��O�ጉ,�i�:�yR�U2I�-{aع��60�ƒ}��!㕙�����0���,�8D �iC.)>�/$@teP��T��&��R��G���{��~
5�
��YSV����V�j᧙]I�\�����)���;�SB��Rs�F�(�n�-�ﱥ.���} ��l =��>ЁQ�~���J1�Nk�ɤ�8��}�#�˥���Ԙ�{�y$�u&�|�\�1w-kĪ�w:&���?!D|p1�o��Z*�����D�9���qN�ɱ�S�d0�\OA�0�a*[8`�ڒ땔��
����Ӣ	xe����H��ԓ�^��n'}�=\�bvv��PV�l��,�Ռ� ۋ�:��8��Y�K��9Y��(ɒ0V*&�8Ԧ@�W�'�I��@����ͣS���$i�cD�iƲ�PJB���	��i��Џ��=T
"i���¾�#v,7����zQfp3
K�`ʼn�b�|���a��%\��NG����v:s��N+`�츃��i��y
 8���(��4���h��ƥ�G@�z�k���T
:�;(���n��1p�;c<k�
��${JpR�%ҚvY��;�>��o�L��_�}�m��ا)�e$���N�"�x��V���y���
K��^3�L�h��m�&����
N�ɹ/�s\_)��A�r'A���.��Mi�@rpS������*��J M�:�8��Q�\S�������9Yaġ$�N�$1,ϵ�C�tȉ��15�|
�
�3���yIs���G�Ѵ�Ŝ��frC�t廂�`�G��ީ4��lw��>�����h��pO�J�vX���m���ȝb�xm�Ų�\�U�n��f!H�:����9VA}�e	�W��|}��_>��` b�[���%�?�=�k�ի�x:W�(���N�o�\~����yq�`�3���*��$�'�&̕�$�2A^·���6IP��n�ܾ}���p"��7�~+n�9�ӱ�OI%k�_0�-��X�lr?�7Ӥ`��2�Š�@}���E`e y�f���
�d-,��^�vAY[�f2b-�*��k��)B}�Z�\O�%���c׋�I#8�h�4PYS�@s����Ƶ�/�$�Y�{(�4X3$\‘j�c{̀T��3Y��|s�<FVdv
]:���}���<F�*���{ÁR+�գ�;j�',I�k��Q;��t_�Z㩏��r��h���ƓO,�2I�����~A�k�9��I��F�h��O��
3#9�9��T2��փ��40�M GSn�V+�p%�D����@�}�����DC��ҍ��p�;�G�BLX��]�j�
��Qm$�*A0�-���*wn)���d*l��0U�`'9�\OI�41/[A�g�4�4�,vh��`b�\�%4�%1C^�ic�i�9@�%O.��y��Mi���a^�!6�![t]��w�Ğ[���7�΂�sc��Q �FB���l����B)���Ɂ n�g���~�V�|�)���Ԛ�J��'գ�t�@�0kƃ6�=��q�z�)H2�B�gA��/�Vp Ijn#��2=�yP@B:��OtM.�Z��
�3���m�ė6�Q�&u��xkل����1�g�Y%7��>�*f�x�۔+دḌ�x���eS<|8���nj6�@�
́���>eV#���2���']wm�кG!�19�%\sW�q�։U"-�_^8����n�� ����K���ۣ�*驸l {�Ļ��,K萾h���>�k灊��
 �M�:���ZGG�����u/�o}������܍����M��V��d�{'rgZ��>I���u�K��{�L��r��j�n����W��K����2I�-�2{�C�'?ۏoH������_�֧�׫�
r�����}}$	�OA8O|�y��_1���Ɂ[�Z{>9Њ;��@J	�3e�
���y�,�"���{3��t���\X�B��z�d=�Z���WBо�z�<s�Wh��L�3�crD�M�@�5�����4:�\�$	,���[=`^�QڤϞ$��TQ�U�"y��s~P��l�0�W"���RB�'Lf��`dά#�+C%��$T�F��MV�8��#{� �����Tp��0���Y�(���R�[�B�XMjZJ�~m�����<^�0�A[�J�J�L&1�R�T�p�ʔ�r��ŠVY{R�A{i({?�kv�cZG��Cb�̂Z'�*S�b�JJ�=��Ae�j��1�L�ㄚ�����6d��jv+�_�)S.��S6�W�B�Գ��s�����+1w)�[�
��<�> ��32X�/65?����@�d���ޤ��g����b�ݲ��*	��:�3\��=A�|�m/�4�
c�]�yx���K/ݿ
�{5\�n�#������\?�3� ����`��M\������2X����H�/j[��
(�a���R��N䠂D��G^j�5tY�r���m�A��F�C���{7q�M��Yp�4��,�ɕd������c޲�|p��3D'�E�Ӂ�Lg�p�����o�R�����v��u�>jD?���q�-
�8��e�އ�� J��i���;3Y�3���H<��90�os�,q�;���@F�sL\g/�Y	�eZN��|��4?!��3R�Ռ�ˏ�*`�m��̆R��%�43{d�4��S9+^�j��t;�g�;���
+��f����l���+*Cr4cf��̔'!q-;��L�p�i�&%�
]�{{�cSr���om:"��R�CLR����q�~_)�����c�{��ޚ��垾}OW�_����MR;A��+���F��<9�-�4_��9�*�a��O~~����� ���q�27~���u}Г�����0M���ϳZU�)$�D�2�;�7�Q���Jf&���$o錬Kͳ��>lM�|�}�,�A6x�T
���v����ɀ�:��x�y
��K-e�#�"тlLO����/4�@�oL���s�@��ɤ'!ȬiGB�~���]s:7�n�ɪ(����[P�x��
`�iO%�˙N��հ�ϲ_�^�,ť�Ʉ9�Qd�7��ɨ�k�;+ϸ�.R�ՙW�2j7���iP�����w$I��ڃf�\�̒8���Tf�b� ��a��G!^D�3INĽgˆ;D���o���;(�T�[0�7&y�k�\;�]0yv% �͜?��-2l��zd	�=�X��Q�?�53*Ud$�rR��먼�PH�L&��	[I=^�P��~^��G���Cm��#8,y�Cm
�8��:h��Ư� �{lcR�c\œ��4{9��y��1����E�>��|�&�`X/����`$En �h#!C���Z��YNvu����9�M�}V�	�m�?��qu�'	V�c�ƴ��nÓ14���
sݽ^k">}��3�I�ePm�9��V[,��f�ḑ���C�a4Bf׌>�4�}ED9�1W���siGy�jM_��3:{��:�L�N�ڕT~:�
(�
�MV�d�
q��T��\��e�� o�_����?{\	�M
�\����b��:�w�(�N�޳#�%�:Z	eCS���#��$e��{N��*r�tZ;C,1�dȪ�9	�F��D�Q������`8��<�>��*Y?�������;#�@*[���W�MJ���7l1��
ط3��������;f{�U�{�F�؋=�dw�&��Cۏ�f@��5��]|L%���S���F�pI��cA\
(I�k)AeNd�?"�s%A�Ř��Xc]I��Q�{ߔ�=0jX"ݷk�m�qq��	�I�ov��ͼZ�,v�J��Y+��z�x�ڷ?�z���(ȁ4UPu?�/��Y���N�§�EON��l�G�y�7$~�1���9���䇗��|�g�W��D,�������53~{Ť��37���P�:�$h}�57��F�\����" ���b���Ł޼�fµ�Oxb���(���x�p ��
l�-�f�|_�ɔ�`	��G��fa!��gr��W�č�}5a@�6m��,@�z$U�IЫ�cQJ��?C�/p
�R�0Ƕ�b�=T�	�f��3j��d�2-G2?&����iGAC�Rd�RY��ʗ�J�C��U�F�ĭh]9S6����6��+MG�c�r��b��+!���ܮ;?���9�@�M$?@�?���3�g��["�Sr�T!:%y7^�im����V"���
�=x�GIvz���e����lr�W[;?%�,���pl��q��"ժ�m`��t�ϓ؟�>����%i.�
�y�%�	�e��ɲm�X�ݲ��*!򯁈�uk�`���Zr �3��߶�����l�g� 5ʲ��|���yи�Cr�w��1�j���Ln������)I�����1˪�:�	�xLb%RbmL��+.��k����H�의�	��A������z�(�=��f�}w��p!0g���͉�hd���0���,�\��Q+�]������P�x��%������7"�+���3�Tܦ����7�e�_�=�h��M��a��^����aH:�P`�zc�$��G\��{"���d٥���}{��:8��s)4����
򿧊$�: '�R@P׹�z���5s��b]�$	��t���(vz�Q�hw�]�V7����pb�x�	����=�MʆZ6#YԤ�|�|��Ix�c3�"=?&~����^�q��d��x2G�
�|X�$�A�W\~_S�y`wlp�}�u߱�*6�$���<D��9���'�ǯ��=9���N�~Q�9�1w�B��s���+�>䆰$	���=�?xM���xr`�Gd�a��*c#gJ�p��!�xo����8o氡�Cǣ�L	Ё�|�V5�'l�3�4C�%,�@�R������4��ލ���k�?Lhl�=�O�%j{�M��r� �O��,+�l{�pM~�ϡ�.��&�q��oqN)	�L=C���T��mO��a���+kq�[���T��K��������lQ��b_Q��g$;+���K@{z�66��zE�1܎�e��u�];�4V(�df��f,[}�4�
��V��M���Y��&5�#�H=�س�*�dF��A�����A"���3���6fy/s\;Z$nbuSp����]h?[�jH���`t� nAꉠM��
t�Z��#�<!w��f��

���/���/��9��2Q�Lmذu�bϙ�nXMh��
��_/����ǃ��C��^|�l��W7��_��v�/U&P�:�e��!"]Dzj$��v�E���`�@���8���L�FAZ�1��'(F̛��>oO05V���\n�`M}�>��rm���
+�e�~�B��K��q�1ȍ�K
U�����}
x��>��;,��_��1����� g���y�+;�j�PA2	"Y��8���Xq����ݣ+?��4u�E�g�@pz���}Us�4"Nk8DM������}Q�e1Th��$���Ӣ�TZ��m{#,�1U+�E&��.�%$d��g�:�A���c#xc��-���_��ְ��^.0(�-�v��c�B׊�/��=>Ŭ�\�Ԭ��J�뗇5�_�?�!�u���[^�Z>�%��y�5y�o�'�M$�ʁ�"�O�?%�h��=�L�߉�I�}t�$�O8I��K�/�`�4_Y$A?9�.�8B�'9PN��%���W���K�
��,u�}	0��tm jյ�m�%	��q�8G/� �^RI7�I4�)R�T`�)9@���V��W����5d�{=�>h�ƤзdZ��J7./�_k���I�oЯ�=S��x���C|v��M�F%{�&i���5o�?� �¤Š����F�z��6oM�
j贱��g%_��J�phLJ�˸V�R��ڜ�5�I_��PZ�h��P��"���s5�3�1��v ��,豣 ���9'@��'���B���5��q̰�$�8:˵����E/���:�{A�����w�xjŕ��%���H��ą� o���hkY�
a�zq�|�F�ʤ޹6�p�7S7h�;��F��&r���� |�d/J-�o���~x��
g�P�B�!�^A.��&0�*�c��5v=4�rF��ڃĤ5]��'k^���AX�6i�3�w���@(00�\�%9��H_[}�A���H
�%7�}:j@
zjZ��΂�}�V��i��1zV�Y3����tb9��{�Y��ZUa_O�^��ҬM(ӣs<�֍�*	h������J�]�Ɯ�p��ێ�0�4�	�=�LxKH��!�z�}���Mf�q�M���rIlL,�`0u$%��r�4�Q�@�a��>����]�
�hxP�`<0�� /CZ�"#���9QPz,q���\C��64���$�x�MV��Y�An�=:�}�M�L����k�}�;ǀ�r��`�f���B�5��35��J��ff����hZ�㢇�C͂���|���u˳�R?���N�{r0H�S����nA_��|B�8��R-{�';��q}a��aos��z5�Ƈ~���y��	��'1���|�b}ȁ����������r�#�|��
=�{�B�!1ޤ�R�$���x 	���/
�>a^8|�5Г`��9k���
��0�L+Úe��B��pd`�f�e2��p����:��'��j/C�8lr���z��
�B٧t�g���6��c����У�{9��4���=��㴈SoMI'I\�8�)q��y���(	�5���9�<6�܎���"�:ސ�d��~�'�{i����u�V"7�*#�C�p�]NR$�@��$)�X�UL�b���WQ�CJ ��@l�Lp�4�RR˹�''h�r��:��M�7B[�t�R)�k%f�M���ld���c������#ѣ����6�+�aeJ�$�[۟�E{vNlnt4w*0�"*fLFL�s��j��Wg�~�
����'I�Ǵ����r���t�~��"�wJ�w���1_�RZ�
����n8~��8BC���<PN���ǭip��"�u����X!ٸ��~hZ���@���S#��ce���u�QM��aQ
pM��Y�����[�^�)�ۦ�<�H1.3(f��Bl�ϗ%C��n��r����:Ϊ�`���)�S֮5��$C���h��
�_{H��|e���Ǩ�d��D[|��{+E��X��x�E���5č
H���(O���W��ێK%�,*ѥ��J�R�xb�`���L�n&�~`�p�nB-�#�f�
�|��g{���A���7_T����6qJJ�?lqvlb��P���b�=',�)�(o�>ql�L&W�2P�Q�"@�{��7�AGW�56@(i[�9���s�`�S�p�l�o�=���3��q�e�M��V/Ś|s�H��%c�G�kB����/��4�u�E�@��`⭞1�BU�,�*�y\���x`���o� E䢖��H��?�}�9��xr��)��r��'ֆ�ڏ'^���H�9���u|<�
��$X����k�$���W9PN���"�.����V�>!Ю%�<��@�g�j��I�%��D*y�ml�h!W�����KB �2V3<o�eyC8C�y
PK��$uh��	�	�T!��6�F���z�	Ih�=z{ֈ�P��_?qv{�6A��8�TE1��q
~=��=�g�(�ܹ�5�j�:�$���7�QH��TaZsB�!��9Tޫ[���	`����
|��2�
�5��6Y
,ȸ/ū��krz�50T�"�˲=��
�֏����6����í[
�5³�S�	�ӎ�XqB�� 7���ᕍ�����$1a@Or��B��u��ĩ^bȝZ^��@����
̧,`K���o��A��)��Zs�
�Q
���FA���(�`%�6�����o���U�����qf�e�c�7^`������#c�������l���r|��/7��d���#U�^���j��D��}T�2:�\b� {��
z-��e��_^ۼ�s� V>��,��b]�v�bsT�!��)��DDџ�_�H�v�y���Ԯi<�kc��C%�2���"x�>�����`���|}A���T�d�� _�֔��<*���ܑ}�&Yp��*���*a���9ly?Ö'���]��6ԙ�B̨9�t��1t���R���D��L��DY� ���9*M�������Ee���J`������A��Ph8t(�ʞ�=`K{�
����qm]G�{HC1����Xsֵ�z����xX��h󂗬��)$��ϸW#�J4�@kZ��*�&e�S�-c�:^[P Z>?M;a0sf��W9p�6!�Θ��#9 �x�APY����z���:��x��$��g�I��	�$��ͼp��,I�h�#8��Z-q�%�V�|(�l� �g7�{�"T�	�ܟ[o�Lb��H-�2K҃��2.
�x�	*�'���xO-~S|"hd�a#�T�J`!a:ׄ�R�Vc*�؆=w�!.H��Y�3I'�o�C�|�v����=֖�iW��Xං��+ �{���z(��P���Yؓ;���� Q֊�̀��I�o�L}��Z�n�)���&��.�sD!��w���ّ{��ZF4�ކ5ҥWy#��b��(-�e�t� �Tmy��y*y%���ǁ��(	�%6�Ld�J�6�J҉e�;��P�ϲuj.�����p:��]l��X񫘁ja�4�S��!�Ș�ʘ�IJ�%i��a�=!2�Nm68�m`h��X*��X�Y��ᴇ���z�$��-����q7
���7���*
�.�
p���p ����[mϡז�2&�ܨ�əQX��n�*AV�3v��t�ACҠ̎�S�2nxsr��aGf����)�@+���öd:��,c�
0{5`J\�y`4���⦃ʺ9��p�%�tΞ�^z��z����y�8��/v������h
5�=$8�o�{���$����s���
ЊE9+���9I5D���,��-&e���T��h3�
D��Hs/93�la�dŦQ�_ڗ�2Z�Bo
��!��D�:�~d�o6�'� ���B*]%tT�����@�T��> g`�y�*�B4�5��Fw���e���eXھBNra���(8�s�1=@(��,KL�����<�k
n\�avD��K�,S�zY"c�,�{���a^���z���M��Ǎ�q
霛��|Ő�1������rM�.����]_������^�˞(1t�D�GJ\>).������^O���r�օ��?�ٌ����e޹�w��i>��~�Ηn@�|?\��^X{����_��%��y�]%A�א<�;w9����֧�_d�T�D �������j
�f�����1+TcZ|4��C#f1:��B"OkYF��L!k�2�Q�9
'4�ρ5��12ͧM����ύ����ƞK�p���[9�3�,EY�F['���Ғu8YC�����C�61�<q���=�2	������A�a�7�qȀ26Q�K��M]��cJH��g��Y���dC丳�@3T���S��4�3��EtN�u���1.����V�o����yk�0��-������K+2r�k�$.�n��s�HKI�Ȥ�P�	��?�N�l�y��1#��j�I,��WS8�Y����� �ۺ��ȟ䘝p�$�:�2�[�g��(��̈���\ǽA���74G��/`r�$o��x�8��a̩��$;���B�o�U,��LR
Ċ:� �B�}�Y�z��f=���$�J��+��~Q�A�[�k�(9n{}���>�:���V�:�V#t�Ȝ1�D��f��<��O�SnM3�Wb�(60t$��H�*`%�&o�ƒ0�'�oxR��X適[�S���t�ʉ/�cDP�Ы�–$vW� �jC>�ѵ��:�1?�=��^\���=�\[61_�|��'�ۛ�*-0���q˭
�*&+k�M�����,T�Zi�D�:�yI�%��Pڞ1�q}F�9|E�U<�Z��fh4y���7����\�c�٨��g��_H���s�������MS%�:2�\
��qܥ��rk���Z�~*DXc?z��U�̃�A�t!����L�4��iTG�$C����C�R����0��v ��>�{���������׉x��l�[������4���~���
��7��=�Ɂ���F����r�>(�Ͻm�,��?�J&+�k/<c���`��_~Ș�{żc��w~�{�߿ӓW���>�³a���?z\�ђ�g%��sp�g*-���<<�6p;��śx�Ґ�	r��T���>#@����T�H���(Y���?n�K.�y�-#�b~�}�G�&%H$�&�C��M3�i��X�/����Ḽ� ���;
O�)YѠ�Rc��9��"�2)Ӟ�(�7��l$�Q_cL	�?�H�c��R/F��X�`�u�1�J�g�ۢ�7����b�31l��x��S[s�x(%A5�PIAo�{���}`~�{
�<�D/��r�`�{\P"ё�==Č�؈v��2I���sʎW�ֱ7�$jz�zZ��$L���1%o�����,�	w�x�66p:Ə��ݏxl�����q5�d�MN,-oʲH k(+=��U��6���4�%FLQ
s���1@x�s�R���5��S+��f�8�&VХQ�L�J;�e��p��k9H�:��/��ޡ\�T0�wkVٙ#A~����>3}�R��ې�$`3B&� r�聩K6��ӵ�qt���[�7�K�fV2I�����^S²Nຍ	&���F6��j�7��R"�%)�ߟ,0�1܃��Ay&�C˚�ҌkM�?�\sR#���k�+5M��W�k��S�}0�͛t'�x�ӆa��dž�+���v̓?O�;F�Nbf{ ����������S����O�ز+q]��N
�@!9�\�F�;�~_&�ǂs�e������+8y@I��l���0�T"!e�X��-tʚ��T?�d[ƍL�?4�>RI�r
Cx�t�6i���w(}n)Ib��Hr0KH"o��;[�kמ��^Z�zd�>���z�܋rtI��
��9k��	�@�_�6�_ϔ2����Y�QD):�b��9��	Q���w���mO��ȁQ%}�@F<ȁwzr��������������V��φ_��?��b���|��g��I�GFT5ڙ^�)M���K:|v�'Jџ?U�
�����!	�������'��Y��^u����J	ߑ�W�@�v��i	X�f���%�9�o�rT�mz�{�I �S8cџRB���9!��&�;�~37�t�ߧ�&�بe�F�`�,��j�|/0��m�1�ͷ
p�\�5E	�6�r�(�?�c�1�8��;3#;���(�9�]�(dP��b��v4�*�#Y�=ۙ�$��H$�O���$��x�Z��N8v:1��'0l���2���
����*���\�M"@e}Tz����������7`���ٮ���F~� ��@���P��ט�:,�g��.��*սC�ky\��3D��il�.́X���D�!kj���t�?�@N��R��i�7�Թt�iÎnܘ˴at�1:!kU d{!F2 �0
�Y�2�|��ܚ�bђ���6���$����qy�Ų����4=(2�,�i��˽
���#����k��y��8ܚU����#nmK�u�������>�g�;��**&���@l�lc�Xr�lj`�!�Kʲ��Þ$Dl��郘�+�C2�s��봐��	�����h�9�������)���wG����{A�l��������#w��%���� 	>!�Vq&� �J��?���/T�p��ns�xCy�Gf�k��ü_J�J��i���hS(�V
n�wS�u�r)�5r�Q?�S9���K�
ǔ'����L	����v�v����NŲ*¦5G|kv	���
P"�R�N'��6��k���~bM�%�D&�n_���'����E�~;���`r�m���	�Iv���ԏ���gX_ܾ�jU!|j�=|�H���� +�
��@<i̝Q_������g�7��;�wr �������W�>��V,���}6����H�o1��yټ�U"	�h'��|��-3C�3F<}�f�BϬ�[wF��Ane����@�@On�$fZ�Z�E̕�Eb���No|�f
��6քs'�2�J,I���Xa�YԳm�>X�NvL�_]��4���"eu�<��;����b*��H�@.���&Ŗ�o�q�۳ �FWPY$ct�L�Wj��|���(I�-��
P,<!�D�_�>q`��ؙ�b�5�A{RI=L����mV9ʘ�
T�MnMLv��C�C5��	#��.E�<18N٫N�����bo���9ۅ��g��JWnh�gV(�s
��c8O���=�=��5�FV/'�Ǐ�U$� ��΢a܀���Йz�YGp��������q;<FֿUp�%?p�':^�d 5ls�$�?�!�a���.��L����p�x,�lu��]��]j:��$���6w`�� G�)�bI*�͙�5����������2�^jVc4@�6JJ$�d8���T�xt�߇%��7�I�ӆ7Dtan4��y/�\�|Ғ=�3��i5N&j#A"
\~:���g2��*q���m(�ƕ˵���u���%������r\���5����q]3��)���;� i�o@�~l1�C�e���0�b�"a�?{�~�g��j���QeQ�&H�v���f�ښ��?����wO��^˲r���Ώ3���8�;��p�t?�+���<�ۄ�I��|���L~��w<�`�K*����|`i��=��ʃ�_�v
r;��*�9���
�~�d޽Ld7��M���MɌ��D����'5CDR>���6�h��XB~$����䁠ч��a7��v��6�\�ɚ��2
��Up�I��q'	�$�N�$Y��Z|y�q�US�2a �E�]�D�:Ǟ�3L�ϑ*�Q���"q ����pZ�<Y_�}��y	7_���k{URrQ���4c�<����S: <;�x�9��-���'��>e��ȁo|۲Wd�~�c^&�Ϙw�ʁ�Jr�������	��oF<I�������ʫF��'�x��+�C�S�u��Ӌ/Tb�����o��i�2��K�vR�D��؆�_��,�`}�4������}Cz~Q��K R�ϱM��G���7)�>�^?��s���BbG�
��^���������Ԭn��)9=qA���2���\1	aBRe��.ϻ����-���l�f�1�d��
2�7��Eް��=5���ܺ���0�*����$U��:	ڡ,��pDH��υ�}D*V6��>��N}�5gj�Iq5�����H�"*'�e�ʔ�ܛ����#��dkŒz�������	r��?�	���K�J�W���N�+�e�c��c��AN��d̘5Z��AƼY^����"�S��\BD4*�}�$�F����-��6&�/��L3ב4/̮��`I@8=	�o��V����ie�w]��[m�;X��@��� H��X��M1�� ��M�`/]��5at�3��f�@|TXh+��|���!%����&~�5ކ��a�՜Jޠgf�?-��?�DmR��4UV��UhZ6�1�\-��3�q�gno@,��̙PQ����S����u�d/�D�?VR <��I��I:�Lr��I7$�.=���c_
+��C�#}���m�/��=��c"Vh�$��Q��A���J�Cx_iu/G+�
�q����C蛊��yk뫔%�!��w�\�u�^�V
N��2��YD�)�	Ί��Cf#J�X����|0�C��p���U!�f���qb�er/���`節�U1i'��-�(�4[Z���^g:������P�ѩّ���_�}^Qg�f<�$��)���(�HUB����s�9��4��5~�ɂe[�h9���t*����
�]����v/�:���~�����
���ZI�q��p�u4|Vr��"9�S?��AV�)��7~��s+�����l �����/��y���߽	I�\��~O�K}�?��"���Ͼj$�;���7���x����+�B�ryɞՀ�f� �$���6𴆅��?�~��9(ǒ�3T0����l8�}S����JQ)�'g�d/����|���R=R�fmlLk���VԲ��ES_b��#_������Ni�TM���d�j���%�Ů�^۠��I��A�v�����<y�@d��-'%6 �v�τ�pN���a�P��BC�Q�K1!t�^�W�~��$D��(}5�R;�׍�sL^M�tB��
<7&��ә}� Pz2�;�Dn�(�M\BَA'�A�&ɲ㎼��n�ӳ��e��}X9�i���T�{��$Qr���Q�;v�a��"0�հ�O���3E�2\l`�D��T�A�I�j8�V}�P���m��:؇%�<�a�M���9�R���m��eV{%�c�-���$�;����!`	�ѤD�kv�w��z�x�Y��$�%\;댜�w�1�>�x�!E�<P6�=H
Ȧp8�,Q�e
�N������
�oV��_���N{ú�6Ik�^
�+�7�y_6�Mv'��ו��9f/�͕��1T\ű�c�F�SI	�ll/ȿ����1�Ѧ�c�ٴo��mqK�c��눉��{�~����>=!$R�3�/nϺ�;d�Y�;�*�ՙ@�xB㡟�$8��V7�g���V$�fb�1�	�7]�R��)J�\���*��r����,��(ZqC�����{�@Q,$�l	J�M�O7R x#ER����Ƥ-�攟�W:�S�S��#��:]�嬌���ŧ!��]�3=]�
cfWn��X��� �z!j�`���]�Ŗ�@��V�k��@6�I����QqS��|�/D�<R��B�*�dM��}]#�8)�<��#�#�w�������t�^٤F������O�s�&�հ��wt��̇�Y���s�)��?4�w�m�o��F��Y�?����<�s�w���+��c�	���V,��[���E%�qx���$�z����GΟ�?"��;��e��5��f�������{ ?�n�Q�/��@H����j�)3 y?�ր ��ˈ��AƬ��Q�Cw
��j�@��%:m��*�)�9��mh)XS�iW3c�U���8#��X�h��Kc=.�3���^.fٿn=c�ˮN�dIz(�
��줒M߅�2p��L�1\jT�xGY�ƺՈT<�b�T�`�����4�yB'Z��hҞy܂�ACEsO�{�̕44��7���!��$/�\'��o�L?)V�9$�/#ױ�)@�Q�9|}�JgeT�
����#{M0�~��w�WAո��Q�B�=$rL��4��H����x3ˌ�q�g���</Q��\̉x�(*�䪊y��k�?�Ϲ��v����/ߏHQ��X>u���-��R+6�fVv9O���D�J�d	�6୼�C���3�t4�I"`���põgQ�a�ʇkJ$y@ɬ�3�Ba6�N-����aX�@+�W�g%4��ns����<��Z��.���E�r��yk�ZY��~_�)o��Ԝy�Ο�ҤƲ�.��I�83e�ֵ0��Z W,I�7e{]i��-�@��{�0rG��yƤ77����$(��2VA��^5���-�+��bz��i?��vY�t��hR�ʚl3G���Z��M�'��X/�ԃ�v��͸�\ʆmp��@5��]����\��j��gb;�61�^mr����n�����Q���X�؞��>�_�v�aV������ d\_g`sD�h�
��~6\�g��gp�}�Rr`,�iuw��ds�_^}4P%�؏Ǽ��l�{�Z��N[��q��6��k�e8��v�A%o-ri!��u�R��!^��� 8��Yv,�ܶ��,�6g��}J�����^Ge�
94ū�6e��������,�E4c�"IpE�^b�);�����9�������9�}��y�9P�9��^V�K9�ʁ�{ɘ��i��O���_}O8ο��\��3����{�~�O������7��_���F<��w�7�񍏘�t�_��EtN��z&�2��H�f��s����N�R�5I�Ф�ZY��QD���*��=�)�5,�cN�~ч���:dDZ�h�ċaLz�g��َ�3��|mo�N�;p�^�(���%��gd�#v�
��
:1!����x9���A�����S�a�1L��dRF���9���^�`O�l@�G���0���z#œ�b�Zh`J[�@ZgH�-;o��%��پ	��nHz�Y��Yl�I�Z�@R54�6'�5�|�V�K�>�z����lԿ
�����c��g�L	<7�*C�K΁�c��8�x�U���\vG�q\S4�5���R@|��ӗ�םXU�G��j��| �gb�X'z���c�~{I�^����a�{�.�a���mw.��.����9��C�N���e�\��`V�?!�������F{�n�S6ᚁ;~�Z0L�X^��v����~ߛ��@��B����d׿�H;t�̣�(���s%%]�~͛��'g�K
7n�!�A\�m15(����2iJ�}�jk!��X��t����"v~u�u�S����-i�6�=v"�
��K�и$�O	HMޠ7�S�,����a�`��L�B�Ժ�}#Mj�;`�+��j�(��	��:TY�2��y�A�o�yMb/�+6l�C^�1
X��b4_��P�-������c�}��X.�lD�Yszf���T�wD�42W�4x���*��C�|!j'���MVO������G�4!�"�aC��ﲊ1��N�}^U��Pi1C���q���ֳ��g�����X��^r���aq��6�U����o��L	2�to(Y�O�1��Ǹ.-v"r�H�s]#39#4P�F\+}6L%�K�Y���`�J�\{ao�X�r�Я&̝,(��{���r�Z;��9�}�@��$y"�e�YC��+��N|�M29���6���Z�.+�M_ۖ��ϙ��
��=� $���o���x7"	^~���q��O���j�C�����<�y�mo{LO�KŘ��
X���Tͪ��nT��P.�ž5/���0����g�J�
�ub��1����ɰ�Q
��Ȁ�/��0�>�|���qS��lУ�	�f'����@yA.���cc�Ok��Œ�%k΀U?5�o�ڞ�|���{��DZ]�5�%d�Z�*Y����Y7$��*�+kn
{�5�zS�\V)��T�9%����;�Ύ�-�v��O{�P;�
��#_T�B���[��a�تM�����a��$0;�u$��������g��C�KV��4:3l"�s��"+�����ks��pZ7w[�41o�k���:Yʺ�2�&}MQ�8��wA9�]=�#�mpMǚ6KG4�j.��{:$�@���|�ǐ�៛����W���;okc�E�l�/ ��ǏG��c��g��N��sd�� OTISj�$	�$݄�>7�$7��,�9B�rzd@�@.�i�z��5�\�7t�c6sJ�J`u$DS����}4�b��9�����7�d�+dr���dJ�;��86��8���AY�.qG&�%��%XP�@�4�3��4��|<u3��1R�����,�#�zش(�n'&�6W�����',��|��X`�?�{5P?�����1�>�)��Ę�"5�|>�F���B�m�o��p��$Օ�
dϔ�&���9���796�&v�j���
t��̉�%�!@��2&-Ɉ�B�78�c
��z�3-I�$��<��?�m��s��#��u�1��V�s6&�c��Hl�I� ����ϋ�����DB��0�#81�l���k�ȁ�8�sE"�9)0��%‚I�v0*y���/wyCZ��e��v�c;�j���G+�?��0���,q� Yd]9{J����D�й��%��fC��s��zn��w��v_9�N���	90�_y��黃y��Hܽc��?i�G>NH�τ�x��������$	������I����_��H�@<�d`��lk`� G3[�����%�����g>��?hG���"�0����
���xh��=9o�gOѩ��ԫ����L�t���$�*X ���@��Ҹ��|�r=Z�t���3�>� ��xE�%N��lIaC����Z�L<d$�����2J"5A��dO��-�#�\'�<;�}�$�k,AD�l��~g�y�@�	en��gOX|��l�,kt� }G�+T�	����PZ�31�NM�\�7
H���`��Æ��[������3��,{�XJ���f�よ�m�`��ф�<�JS����� �ڛS��Y�~"x�T���
H�8���@�6mϪze�_�K���5,�Ա�S�u�/�#�`:�ԯ2Ap&2.I�jh��v�5��Qё�w�'��.[�!"�؜ֽ�[�){���̈́����9�R�;��V�CR�N[/j����+\x���6�����
|�w��w�W�1�6V��{������Jڋ
�V=�{84�n�gS'Q�Y�:#6g�dd��<�9Ζ��O�\�	�I���i��1W�9����\A��!��ƒ/Đ;
Z
�Sp����*<�x!6�^&�#@gG�Z�&?l�X!�q׿�Lb���9L+#<���w2���N�hH��ƾ��0m��Ip
#���{ u	�۔�`�}�`2.h�_����X��Ȝe�$��9�5Yk����^�&��0S�?6SD���I�B8&�j's4~���]c�
�W
Rse�s��P�+�����zqmq��ő��!"��a�+Ǹf�8�y�%�18�!�i������K�ң�I0�^�G��=�p@�'��^e��6����{q�?���R���l˔�D��-�l<�5����YM*��/\��k7V\���h�<9�K_z�X9����{��i����g�7Fr@����Ɂ�%�?���Ɂ���0���Q�~�c�{���p���/��_��$�����'	~����$8z���{^����x�[���7O�Q�l�/�L��+�==���@T�
�<�$Jvh��5HI�z�@Ϗ��f`����� �P;��[���{�d�
�jF�hq�L���Ý0�=n8іj���p�xst�{��#8��j �R�'d��Pr�V����Xm�
�NNUՐp'����xnCpo�6�A�p.�C|�>�Y��
���^�OZ{�V4��j�Ԗ}��̆)�#o/��e����ǣ����`9�>�{�[��/G�>��A
Ց>�э����v=n��o���׷��':�1Ic�;�0�c{�q�<vp;�T�:h��!��5;�Q����C믱�������'��U3�7<>�1�vѡ������N����[)#c�τV�:l9:�ql�~����at�0w=��s��6�|~�}�+g���G�Bw��q�'�)s���*w�0��s�%�������Xڿz8�|-Ec��@fV��1��>̿e�JO+�"T#آOF |�f��B�2X��F<�ԃ�w�o�q-߉NVրA2�=$�K³��c�k��㶆�{��z��_�:�y��R�O�ؐ�ۤ�&�{��9��I���w4����X�
��e�V|�P���̙D��|�@)	R���{���Y[�rj��i(�|��pjN�2ŭ�7��|�Y��q����Y_�f��k�X�kY��ވ6�X��^��n��S>��Q��BFx*�A��\ku
)���43a+
r����^�����`�,�����*&�A����*��9���+0.��B<KI�ٕ�E�'YH�Bf���a%��y?~�B!#���ȥ��yvs��έ\�P��}�Z팛4�F,L�x���^,ô�/G���p��
�#��ǝ�D����;P��	��(�f�� +�y&TPr`�)���ܹН�P9�ō���5O�̻~��3ȁ4��'���?*���	���$x�W܀$x���~?��PI���{�p>I�U��XC�DuhAS]���O�v�cZK^N�wΐWҟ�1��>�P'9����J�j�̳'9����wb��7��ͷ@�6^*�8�g�la�9�(� �@�H؅�Шҡ^��|�1#�`��{֟�.��1a�����N挝��M{r�,ϕeA+�Y��OZ���l.�m����ۄ��~���L���vqR|rR�4�(�~w� 0:��H_;2]��s�
�n5&-
f<���f��a�}������8�K��=��>Ǫs߷�ѧ�*·[�q�b�hE���'��%��5d7�Ē,74z�R�4<� ���;�BD^�Ѿb��{$5/������6�t&��Aㄜv=�/�${�XW�p����$G��(A��K��N���z�D��2͋�O���c�}�;N��>�֤��t���~.�T�3쭦�"��$��m����r�����{a���^�<G�_b��M���4*u�.�Z#a�(R�븍�h+�`�ǁ��IV�����]ƋutsA{܃m֭�O���:�4Fڃ�N�6����w0R�2A`�Z	�<.NZgJ�2�9��"�7X�--"0y�lm5+�P��)N3n�G �d�PՍ��|ŝIB`}|2B
ϼ]�}�")�:�yf�0I@
	$�e����RCG���b��Î\����G��a�.ӈ�v������/�bt�W'�_#��W0y=}�Kr/�Ř3H
M,�e�B���9�X�@+@��[8���A��&i䀤���y�y&�k?�R߯��T���@���$�6ɂY"7�L�b�4v��՜p*��I���޳�єċ��"���>����6�j�L���L#����i�&mҶ�8Uv�@�mQ��� TDS����P��������ٿ�C��ԏ ���gJ`�FXO*����xơs����Q��f�g	?*����*��.�^�8#�6扁���k�	�J|�\9�+�
=�B��9d��*���3O�n4��3*~l%��C9�'>������|��M*	>s?�G�I���3��aܾ�
x2I��ɁGvF�
���R����{����R����}�֥�_��h���+^"�?�l�q�k��ZBBH,���T�
Ǖ��!I�g���A��R�$����!�2/�f�CgU�\C6���K�[�'!3��t�&���j�<����έ���~����f}���u�-!N:'�M�x��:�2�v��8���v��|=82�0
Pɞ��,14z}_$J��Ѱ*&��	w�w�����aD�*��Ld>�is��͸oY����O|��kT2ǁVu�)�q���{��ӥ`�DKS��s6	i;�4h���mX����>Ky�5���	M�ϜW4FEdd{O�c��]03�� <��v�-0ӓ��,��[�G����k;,c�i?�d/����B0'�E��2��ڏ�
Qʎۏ��H�m�W mJ�e4��8�L/��I���0CĿ	k���z@���@�\�(R�nR�&P�����@<�`��I�Ȑ(�;A��~�5a�8��NߛR��M�B��
W�3u�3�ˉ5W��`6I�bd-B�Y�j\��*뵣L�'��Ͱ�~�D�Ԍ����U�C�k:����ln�X"��$Ɂ������
YW�X�,�RI<a3PKv����S	�6S䣑��s�-�?��9�������Tx��5�$hXb��x�J�4�H <�l��:�bR`2{/^j�Gb~-��Ԉ��&}l�˵%�BpX�ʺЮ�&T
�����z;�cc���C�����$ l�y��\9��g٦m����c���DJJ�]�y�,��z��u{߸���S�f�>��F����-���V���֟�sSܛ��CoL���̒!��ϒ�7�2��a��r`�~&}o$��W�*1���r���x��~�bK��S?�]�}��y����r�n�ie�`~��g���y�g~�4r�^$����V���x��	����O��|�'���7j\|?��_|��9��W����<��_0OBI��Oh�Bp0O����>��ko���$y�<��K&�&I�-G�7�E���3�� �1�W�6�*%G??�>�?�
2����̵5,U�c�(��>%������B��jE^�AmP�c j��@%ԝ�w�'�Ɍ�U3ȆY��yI�xQC�{���f��c$[�X���=�xk	o�i�){I`]n�7���R��G��
�_��rAuͻJ����ix��mJܕ�O�K�@�N׳����2����:��pVx�Y_0� ��,��k�1`��t�����d@~/
�
j,F��3M��66�� ,dv܍L(l�HH�_���tx�r��7�r�P����rO�JNA�t�2) gH�t`�g*�s���u�˂��bDg9s8�d�g�K��ƚ~Ǚ��I��==;� -��4�� ��<��Nl�ӑ��	�E��k�*a�,�P����^��p
���hv�TH�9��q�`(�"��B�Dz}8.�֙3��̃��ڎ�<�������@"�)Fc��[}��B�Ӡ�<��ɮ��^�!���^{X�6F�PH�{�`Ս�Q>��7��c���W��E`F��xRo��q���`d+}&>�a�zn&c��?��8�G��r��xH��VMx�l�˸��^>|?�{�� ;h�&�,ϟTtL?Nv������ﮆ��`d]~_��{Ĺ'6��f����z���
x-a���`w����)��IA̺>��+I�)��ih�X�p��.���	�]�2 x�P��
�2�
"Z^�D?C��ͫn@xY�n�|�������驚چ^
��'� �5��H����a�I6-܇�_?��8q�R��q��C����x�^G���~��aV�%�8��+ad7`c4k��gD��{�s%`�*I�����9�6V<
n�4�8��$(����J��z~�FA��U��6����``��l��*!�!n��A��Im�n�=��
�~5�޿�Ûo�p k�p�Ah2;���b�Pǔ�GH^hU������W����$[�s�{���
ȁ}�
rC�n�o�yN��{��7sY�_~�9�{�y�gN����!�MoRM`��?���|�o�?�������τ�$�s�oXI���þ��Gм����q|��m��qV\]]���H�hB��=�I�C�_	f��:�'(���49�iv�z����͖p ޿sD�;I(L��v5ZK�T��g}k󩊪��E�/��@P����.>y�?�/���7��~��
��-�C帳>IWq�9�r*��y�~��y���t�t�ѥ\rs�Ւ,
�k=$������?k:e6���6�S�:
ʁ�Kp�^�ө�G����[$���Fx-2K���'>��j�# 8�'=4�~k���P��O�P�'�۵�n
K*?٦�|~����T���9��zj:l�=���P�{2�����H˧��B(��md	�J���K_ϤDz ���^
�<8�k��績��w=�Q�e���{�?��r�|/��w��w���f�i����g�3yy�;��F��;.��&(�cԣ�[�+��f(+����T��G�W�~͎��DR^�@P7��
Z�W��Ӯ1�ű��h�A?�|����" g1z��9��N�A8t���N��.��\'�5����O�q��u��97#�V͔ `W�������߃.۔�x�]��c���G6��k\?�/(T�{)��{Ӻ�#�v�0q\Ҩ$p���fگY<�*�F�56��{%�M�b��|�Q�7�G���-�Rc|���}a̒=����.?���L/�Ct�4�Y^>��a[q����
��@(B��������P�3�~�Cr�9����
�f��C3�@g�\+JBuMϵ	��2�`h�ƺҁ.}���-�6I���[��:�:7��R�"��('���1COF��@�|H���5{��@�>�=�]�s]�9q��,�a��w��u��2�RU�\�^��;Ap�MHԮ���P�EJ���x׬�H��D�9�k�T��&�~�I���~}�|�ڈ[��,��	��p��h����.��J"��A+GC�Idb��q��^|��wBޓ�ͤ�L�`+V�@�Fn�=ud{�ǩ ���#�װ9Qz2՞֋nT��e�������7k��s�R:=�����x"Ăݼ�����O�c.�U"���"�1\��}.���ȁ��ُȁ�Z�Yv�
�b6���q9�r�����Ԑ��߾l2
r�3�x_$��N'~���7���zh���<��%��\���y?�/���vC�`�����s�ec�J��I�8Ɂ��k����|o?���m�'gxPx�kaZ�~�c���p�J#�c<m�R;�$k�Hl�\�l�:�i5�a[[�a:�"&_�A�{�(T$b�o/cx9j�m'*}��5%&���z�JK$9�$<���D.�]%��r;�ٓ��7�*&�]���V�s%���$��D���
}�O�U�x�������HM][M:i��ٌ����ZIb�y��m���N2: ��BF+���ވ����(x����A����
acm��9=�@�>Ӟ1O=���θ_;b�sO���	�>���t��+�QT���y^[s�0A!��:��&�T���J�@n����V��gp���|S֓5J��o�'=��<3���*]N�ᄄ�i�
Pg�� K�}�YEHH��٦�/g���}Y�z줾q1K8�!�l�im�|������3�~�o��C��yq�c2&��q|�m�3�g�q=Q�p���C	J�Ʌ�hX���[�aֆ�����ƍ�'?��x5ڐ(��a�}�=&��=���{A��U��K��7D���$��=w�;8IRIl�be[������?�6�����BR�҈��Ӑuɗ������
�"s����3�U6�}h.��?�����?�C��O$C��+�ѠNL"a�k}$,�@�o���#7���j��S�.��:D�̿�L���
��� 9����͈or<l,��8G�~6I*)��n�`�
��
M]��,�"�y�]�U�*$G|	���*%#5�,�����M��_�.L)�2Ћ�c1._�ץ~�� �g�	�HL
 ��{�`��W;������?'�ک:cL�b	Xͬ.I7-צ}�n��"���1�#	��������L��ϖcM
��a2o�va��9���H��3ڷ2�|���s�JV��|k�[Y7�a��ᚵm�zKͥC��)���{Qzͥ7��3�pڣ��۲��d���y�w#k��^v5����6F_d��
(>:f���?T��UVk��$��>V��5f2z\�������ڼy�����-{CJ`�^%1�;9h�rb��][�#����-Ќݭ@V����ڽ��Nį����ύ�_�xd߳��9CސP��s�}ρ_��,+��w���i���B��׆�Z����f�Ϙ��Z�쩲Bw<9��*9�7�����g������#�\�ҁ�O|:��Þ$X��f�_
����q	���rC׳��2���/=	���[���k���M���x��a1��0��Y���$r=��_~��:F?I��.i��I��`�^�45~�����o�����qo����b��6m�^����2l�k4nޚ�Dk�1C���Rd��g�I����[n���v��U��=V�e�{,��L�wcz�1-���q�{��b�0�+�V���5xߴD5p���(��v�JuIO2e�Z�Hz�m�Db��=a5i��4=cД�H���}�L��ƷX��j��jT��z/$H��g�ٿg�l\3�|��
���z�g%@cC�D9w�M�J!(�O�lCN����JG�
A�n#��x�*�D�Q�N*��tз�2�!G��A��8.�p}��5�)�g���rb	�
d�K:�=drc��ޛ__;��ے㧡X>s���J h+���r�Ub<$�:Cs�!����I�?���]%!306��J+� ��0�Nj�K����f���r0�Ar;����*T������-�alE�'D�J]@g�S<�a/I�@T�!�X�#��m���Eܞ��3�܏��/��Ĝ���Hm
�u�,w���b�ߧD�AJ
H23�I�~���瀼��#�c5��t4��5���k�Ʃ�m^��<S�����~��>H�=K�C0'?Fl�B�\(�C><6�(���5�n�ny@c4��/�
/��[��{�����_cF|�X*��j*b���8�Fh�h�̵!���3�7���o��-�#���<l�H-�1���f�����5YU�����@��4�@?A_( hymý*�a̸�`$>�hȈ�ܠ�h� 
�W�GP��Ah�	φ��!���9{W�y�Zk�Zs�Z���9���=F���ٵ�V�Z�9�o�o���*2(MW,����� �e6C���>`$1�i�:*8�	//k�n��r�7M�uM$�Z��y��`GxC�G5�`L�x¿!�¯M�]
��vP���ޗ�a�k{	������,�8��@�Z]
b�>4�I�F�vXb���<;�E#�3��‰w�l(�0*b׎H��M��b�h{b0yyT`�$0;���@���;�T�8�a����Nԋ�Z�o���F�b�9Ɂ1��O�{�	�����9p��"0Q�����2��Lk.��������H|�¡��~��%/�D�k���e���-��H�����O1��u&�ڙW}�N�1_�!�ྷs�'J���wX�*�#�%��hg����z�9��f��)!W�`H��
�1x�J&������#i+�|�����Cy��@n^� dvR#����>h�qe	�HXk|$;��G\w�.)b*Զ#LF�H�'� �C.��˵*Q�7=�F��H��e
't7u%�~� ��α�b�vXBa! }���x;[Tt!��#�3�,��S�����Bʣ�P�	��:ߋ����Q"n��[	��������w�<r�8��y� 8�v��`��_�=��Rl��oS�᭘��y̾����(&T8��8ְ+�0r�L�k@�5u��@�	F
aaJ�Lpba�1��9�"�M���R�����L����,��F�Ibi�c��y����c��,����_8g��Mh���qh���l^�D�Ndk��8Y�]N�d�*DB�.����ٵ�eDuj<��������%#M�y��}u#�?\����#i/eú�	�ϯR�S�Imwn�����%���(!�2)T���vA�{���&��e���(&`շs5D���UB�*���@��u��w���A����<���|�SMZ�92��j�p�z����+�	$
h�P�xVmF�Iz�0t[����)vJ��@���V��2@����~�
<�H���kPD=�a�Dɸv; z������QQx�k��
���M��L�g�Z��~o�ccFZ:J���P��߃�w}�$6�~����vo߷��Bt_�����7̄�7��x��V�2z��a��l'�k#��3[�m냣�A6 Ed�~����wQ�?������ρ0�1��AqCM���8<��l��}��Z����!�~�m=�?q}�f�D¡ B6MA���@��Ƀ\���@г�qUR�Dk�S��
1��!$$尰�66�X8�(��"X~�?��^���P� � i�Y����q��s�v`]�M۶�_�k�A�"��<�w�m9U�~C��?��3��x�%�a��K��k��y�]/5���Ybw��`�����ϩ��O�C�*�j]��=���L�Ҧ�(l۪g�pl�X��RP���s�`�����9��O_R�x�##9��9p�=�e�ާȁ'09�c���s?�}�{�md��rˇ���澫w���_i^q�W/#>|sh�{�;C����'$	�����L��B��Ϗ�bcz�/�!�ҭX3Z�Ķi�U���^��y
H�@�AȂK�g��.�g����L�����P]�����>�(1�{��>y4�5�t!�8H��m�>�2�:Ǩo���:].
ȶ�$
�����m�ۄo�il�qdYU�]���d�;�#���?N$�tc�y�qGXv,,��ek�	AV\؏�ڒ���1N'�_\ �x��4u~7s�n��5�Y���	���Ѹ��<$M��sFFB[���]t��m�:xK��3��Ke�x\.`��<mm
(F�)�sɢb���w1'�iۚ1���P�,�Ug^e ���J�`#�����hT��w���N��'dJJt�T`���ud�8��39�^L<~��{F���5V�T�;��u�#�D�ɐ��*��3�Tl�6�q�3Xs�\��<K�u2�:��vD&q�m��z2\�Ǻ�*�6Y�X�j����l�I��"�.7<��lH�
��q|Qw��َE��7�3�ʹz����.��.x�Gն�?9��vt%���I�(�D���� ���k�v�'��Gƌ�8��?OK?/[� 5('j��=��07üߘL� ���s�#��֐ 9$�a��Ȓ>�E�+�^&r.��C�!J�m��|%�kQ���
=�=*���[����A�?�~�ىh�a�g���H"�iL�#E�r�I?f������o����ul#G6��>T �g�sH��Fr�� r����!J���
o0�u�+&��X��Q��Ǡ ~��y�^����泿��!��?�w��O=iू:e��"�*���H��4!����\�!J7;�(Ȋ�\���?DH�g��9��M�T�&���?�K��W�E�۽�RD���S��d{�cO��1j�ă���0?0�5�0�Oj�"����A(�!ҋ�w��Ren`�������2�tvN͐m������vP�����@V�z8�u���͑H��q�]7x�%'P��ń�h��@��ډ�x�*13�p	r1&>uf;aǠ�O=��<�+�/S�B���Ɯ^��@|n ^����{������k����b��ǥ����:�O~�9K(�?k��6/3��w��-�Ƈn
�G�3��1/��DrC�����+<ř�UE9���`�鮧�8w��ieOvbl��s��y560
煽
¿�{�Fc\����PK���$(d�v��>�;ƪ��U��sb{C׳�G��������f�/�CECj�ú����j6K@%L��xі�i�l�v(عCDwI�����ԃr?�	1���d6����	�tQ#`�
`�v®DK�ew�S�+���I���0G���KY��3��g:�ؾ"��5�la�aX�P^���2&�s� ���:�|��g-��QH��);أ.�#"�-N���%\�e`����
k��И]�߹煕��t����A�ޡT�Ye(`�s�����r=�Ϯ	�E!�
R��E����b�\�tx��X�F���iL
W6]w�|��.�'��"{�@2� ev�҈�f��ɨ5�j��M��^�d��������+_ ��<���V��e�â�/��x�\�J�~�njZ�u���ݏW��ԥ�Lai�f�*;��ڱqS]�Z�����5��wh,�1��<"Ǔ�;�&�t��Ӹ�����Z�}췆�,�N��gl���&ٞ�F����A�Z��vT|�!���M�/ 퉌�ƶ��U5P��
1[��q4:r�و��R�nZQkTB�����9�"��aN��-�#�I����31P�'���`��4z"9<q�/����&e$���e��1��%ҁ�\�
��K�3��kV�`�se)�\.k�px@��!�(�L,5��{���`����z!r	h
@sc��o(H��!?�=�(���px��MF`��^����:�B�b��x�����$5y���h�Y�}�='1t��=И/��C��f[�r�g#ªɁ�?�������e׏3�7�9p��)s�O����g��?}���cr��
?a�����~�Șk>�G���1�?4N�O�@|��о@l����,����{�t�1O3��~E����1���sn��K�]�DLg�	�ѯ�G�2����FLh ;�gr:1�54�o�ou�cQ��d��f�A�ߠr�k3�|� ��%��V�Q�©ݎ�Ʋe�v��_���	�k���>�sYfA�!���3=�=Eô���<`{��8��@x�a1/��p��W���/��y[u��"�����N��:�u���g݃��/���%�S�`��'�[�^��Z�@���B��拮� �݉KX�����ƌF��+�O���P�����O8FF�wC��Z]� Eחj���0Jǩ��k�~�j���
69� $�@�r���ײ��H`S~Ϥ_�&��$��TK��uJߍ��q��^Ď{��!_H��\t�zE�)�f��r�L:����$�����w��E�%}?nt�\j�i�Y �Ԣ�%O2F��=W����
]w��ΑF�A���0rԖ�P:Lu��/h�liCY+f�K�q��5����2"\�$gZL�{oP��qӔ�y��"]�B*`��I��N�qnp�AJ�	�zE�F;(I?QkG$ϲ]~^ӳ2RA.�ϟ�Q�����0��ۙ	��h��(V��3�X���"]�q��V�=��>�:'"*���2o���\��Бl]�cy�ƚͶ�����
��B�g�l"�Ȑ�����(�ϵu�sZJ��4/@���1������D�(W	���-���"��IA�%`Q^�֥��B�N�jU��"�O�E����Rw�o��ȁ[�l'�XV觞!ȁ[9p�=f2J�@k�x� ��י���i1s@\j�����ǘo8��������$���+۸S&�͡��?�	D�$��6"	�0�ih~�?��1_uc�~WZd�<綳�$XJ�c;�c{H6J�=Ϙ��Ð�8%M/�Х���P�s�š��nJ�l��}�H ��l-�
v�D�����ݏ�o��)�2.�=V�8��]�ǸgSrlf�]X�]�۬���	,\*���ԝ@F�46XJ��v��%v��8��$�1�-/
��;��,�����d�
���J�kG�\ni�Eւ�bG
tb^xw��|��ܳ��]�x��@�ީ�bY���t�/j�`�s'Rg�S���$��8����L�U��Q�aa��aڪg���ƌ���\��|_�u��SQ�N�-��F�]h)e� �B�@hť:�X��\_%�cK2M*Cֳ��ZgA�w�
�? 
���X����jg�B�JJ;:~�;��B�$��e��d�:,ݩa�?�"��
փ��)�P�r��_��(`��b((Yٖ�����[��GZ��kd��%��������|���>-󬲆��{k��J�� �(�:���P�ξX(�)��qd�/�	8��ZH�cAU$`�(��}�k*P4n��EX��0Hp�vwQ
 ��o'݆B�-�Đ(}�]TW�!��X�m�_ D~m�;�S�Q��3�y��i�5�A�Y*¾�X\u�C��|�h��`y)����[�@�U�G�_�lo�,�	�퇨yE��P�:	��Y�H������aVލI*t� F�a����_	u�,p�H^��FaW��yX�Ż�T[�	�(#`�~�������MH�'�ނɕ1D���� �C��2C����@^
�׮p6m�^��Q
�ǁ�:@٥~�D��16~\8R�������Q�g�_�`_9-E'n��b�����Z��g�	ၨ�0�
���ר"�N��������%�����L�6+�38�sdV�q�֪y��x
h�
1�=i.=}��\?
{2`6��},c�`�.����v��OL�ww��cwy���8E�|�H��3i���c����s˅�l��3�9p�'n��ǚW<�
s��9�rc>�9�s?�ts�=/����3o3_�W�d��l~�~�������\���7�J�ܼ�G��X/�ttL4����{ҕ��~�����p�v�$8c��܉H�9r��@7�ý6I6�T��P&ސ!Ns}o���-���jnX�� ���sf�_���zlqwPZ���>�H;�!��D��Yy��ŝ]�w)�y\�ך��O��(��r�K��{z�\HFZJ���D0��3�ϭڔ,�`A2��Y4��[�="G�2`FF��]���j�,��I:�+q�֔U����ۖ�Cbj�F��d�uW1 ��������oM�Dgx����j)ZG�t��b ��V`a��Z�Ǡ��sa�w+�æ�/����ח�%"�0�<������(1�,�����{�`b����<�I��
��/;ȿ�*�[����̘,�ޫ���x-�c 

c���{W_��R
�"���J��/ds�>7H�R����D6͐�O��c.��3F��ǺN��kQtF��H�cJ�I`�lZ�� �1�%	n�$��	��-�U�˃��C�@��~����v�Nj�%H�Y�/'�ũ���v{0�֢J�'�gt�XA���'��{3�_F����Yj�VD��>U"�#�p��`Mn�����r(R��$ÁXR���t�o*�垎�)+j��hNO�J-i�K��P0�y�Dn����"��T�F��/-�C�;i�n��-}�m�dG����vJC����F.2�7D��K6�#}t�flzdfQ�+��5��sE�cU'��A�c�s�c![�Q����h�M�ϗ�����1�O*B� ��C�c����aq*�z�-�=]ʧ8v�����h�玭�2r3z���)���g����Ig�ovD�bƜma9��-���vU_�Kk�]s`aD�E�	B���/����}"���$���F6s?�B���4j,�Q'Yb)#�*�ܓ%�� R`\l��Ku ҃ciFi��v�~�J����WS�cˁ	��fT�(^n����XNy��2!S
隰{�~cr;�/��
��0]\t9��T����\�v����`A(����8��wl���F�E�M[C�A��璟܌{�7�*F��3m��1W��ucY��ߓ�� Ŕ�}R$���/�������=��#Y�;���{�98�7�h�/~�٪�x]�ͱcn�ay>xSh�u�yb�����W��-�ƿ{/�w����7^��e$A-�֓�Ν�h��bP=a�v�"��OJDZ\�ɳ��e7\>7�́��Iu���ʮ��/���`�[ẖnuF��G)ȥ1PJZ^N]_�
=6�u1�N��fb�*b�]V6�&�T4���V��V�Il����0&`*x
�^�H�F}��i&p0��Ԉ��#�q�M�=�z&-�K€#�5N���Z�ћ���qq�F�j���M4��RF��?(m|i���%���c'0.Tv&��z8
�����L:s��l�N큂������e� w�G�^�5Jj�AS���c�B��ހ��w����<�IrOH[�t^cƙ���.�uL��"�@�22=[3qܧ�k-�K��{-^�r��֎�{�v�������_TE�5�`p��>'`Y�j8���O��O��=��#Xx�% �C`�u��!���0���'Y;�o2g>��v���Y

C=aiA���2آj�]�h�w��ߔ�R֌$U6����@��fn-�����q1x)�DZ��5�O\��NiA�d������3jf��G<#ж/B�`2�L	en��y�Ia����������8����is#q`;�lOR*M������@k�k��Q�D��&�;*$���'��ؘ\K\�,U�5��]m(8\O�NwAAdce�PY޸`����2�
�� Ȍ
GE�!>��v_p��,���T��Č�0/ ��c����#cS�Y�L��/R�iߛ�Q�ɨ���cd^U�7P�V��Hf�]�*;�#	,Kՠ��]���Ւ�W|�N���,һ�1�6cٚ���F�	��7ějh�q�S-Ep�EP��8�Moy�Ăέ(2>EU�b�rO8�$ ��e!Y@=ѐ[�%�E�E�5B��y�D^6�=�xO��&� '�9[�?$�d�Wc�6t���䝝$	�쁩@�1��j�v�b0U�C�[Ӏ�_���|Er�1�Y�g>�<���6W{0\�
��ӲB7�B���+B́�B�n��?��{^6���M�.��q������<�۶V��+�.$��ݾ��=�	�~w\���\�m����o27>0�?�El�<��3��Ip\r`�#! �`gb�+;��'�٬���.�W��͛*�?�E��Y^oI��UY�vX,!(�S�Cnʷ'\{�8�A
���ip�eT����1��%G&	����t>Xw[�F1��*ࢣt�
��$[L�y#6 ���	���-��E�݊�й�V��x	L�	Y�YԶ�~n*�f /��,4�����1�[1�[z>Z���VI��2�`er�v�}����J2m1�%�3(��pM�%sġ2�v��j�,����¶pV�f��H�ӦR�c$�3���|�6�V6.YЭ&AJ��¤�l�
��u�b�7C�?���J�0ٜ�|~g�M�1x�?8M��p��,-U�7$�3#��GE����,�Z.'A��v�W*B�r��`b�]|R[9v���]����EI:w��F�!�qb�4�&x^�
!�X��/p>r`�D�P�۩�8��J���U7�N<���'$]
��OC�vپ��P��
�,�3���NK^�M�х��t.ȝ.�ފs��Ał��_��ϝ�X�U:e(#�Z9����d���Di*�>�f���vg���"�6��!��@G(�3�Z)Jg-3l���c�A���{&DB`�*Fp3��5��<�ݴv�l���7�{��u������s�^�+�c����?�!�!^�Gת�qX`���5O���SA[�<�6wDV�5��4'�XT��x\
�9��JC�������x�H�O>#��.���`�RO�Qҩ�JGC׹У9�m��f��d��K������a𡼯}�=�i"�};�HȘe>0����g6��d�fv*�� ����u���{�����Y����v�~�W��'�(ߧ����x�qK�9zB"A�߷&�����:AX�g7	��qC�n_����n��.��TVh'�T��e�[���|�y�W��\����3����ӲB�I����']n�u�1W���(+t��?{���K/�S_��ֿz��Du�?��ϼ�[�y���5S$�7+���ǻ���}=��.���ɁK�ոmm��d>��KC3���3&	>�<����R�&|Z������!'��H��G"��Q��d-��	��S6f&u4q|iN����m��:��7��z������gL$!{z�&~�?�����q�*~o����8�MtJgB�
�
�\��2*����Ͱ�0�F
�x�^j��ҏ���M�Mp
��T��܉��d�wٞ�=�K���3�vc}��m�s��=�5�W�x59�b��>gub@�	ڿ$�kd���k�ۄTrOr�Q�Q`T����>r�Omޅ�x�}����)S�Ҟ���w�˲ƛޜ��j��|[�ע�C�,6��{Fq�y��,���I�h�k,�9�I:fp6q\|Sg����\tyV�&�l�l�/�p��\�aA:FD�gd��<�H]"�0bMʁ�2I��ы�˝�^=��!GZ6�H�#9�hi�䏌��Z�
~,����Ay},m8���՘,,���]�;ߛ����鄼Z�~/�i3��R�����b�Fkˋ>q�0)��)]�7������+K�Ҹ��5r�L�<vy��k[ˬ�?%�b'|wi������W	��f��p\�c
71��Rj�ѯ�D��?%��A�$���`��cJs*�B��^V*����/���9P�P[����\!��;�B�Ξ��X��RD����iW�tM����,�*+
C
�)=�%i�A_
�਎Ĵ�b�P
d��٬�nѸu�
d����W�嵦�"cm���F��N�����y�xx�z�g���8��_(��s�hL�I�5L���iH�+d̔�⅓��x��z�+�z�I\,����4YvG&��c�o��$�V�P[Xߓ�"�mmǀ�n�R�o
e���������^������� b1Ծ�mY�(��۶"۱uE�։���O�g�ޔ�h�	E�"�O�;+�fK���<�֥�9��{[GVk8�_88�5���*�t��$!S��������J�>���`��^�j}tc�ٯ�{DV1P���g�k�x� f����b�O)�߹Z3�:� �ʘ�d�+�I��<m=x���#���M�C��V�<�)XJ�����"
6j�=5����BGӊ��l�N�L�k$)6��j�EܳJ@��:\��㪲(�N����+?�W$��3m���4�y퇷�x۲��)M
p�ٯ_�ƿ�7G��݇�s�Ӎ���w����s�^V=������?�W����׿���2�&�$��>�N\E�{��ϛ���W�ǽ�C�~w�/2�w���>�Y���[w?X$	̋�|k�bL����D�B�*�ۨy�.z�g���kز�GCs*���\#�7�g��Nu�������g�fo�>]__7���gu��weq��=Ϩ'�h�����8��O�3=Vj�����W����Xٚ���I��5ǓAr���G����y�c�����)����G���D� �ܿ�
?'�~��!k�1�-ާ묶v8��@�O�Vc�MWd^��8ʞG>_���B�*B�F�X�S�_Ѷ�B����1c�	2���&����C��E�L{�}�6̻ϓ��ϵ�0ڙ��ڈ���a<�8�4�c�x:��]6]��c�M������>�o���t��6��=�[Lb���Ǿ�ʌꚠ���`뾁R�K��K�|�����u���Q�n}[�3��K�y~K�N
��7�uu�}A/ܡ)��oy,N���S�E�K�L����/rf�ƤבqI���|a�{��կ�'�<�]�¼ƙ�Y$�@S�j��� �{Ppl'%��2v���;LĔ,�/���;	�9�0�T���P M�F		����}����5&�<����s��^m���A Ɂ��B2$]a�� �WTL1hS,���B��������X�>{�vDYHۦ2�;�$�!��$i#���:��[%�6�佺����L �vpFr���j#.kؔ�E���g���Q��0��X��:��M
�a�O�fF�ߜ�~QrkE@�}a0��σ,I�x���\Q�����
0�&[ޙT�,����nM��"g�Zg��i���>����LoS���}����Q�g��w�:S&/�(KƲb���
L;�`?�$�(/�꽥��f\�o�V�ǘ,�R+�Q�a<r��3K$#2'W,��%�c޺Te�\UO��{�-(㣜�J��J��J���Ȗ�7��v���T������2���D���<zU��g^+��x�a�U��v���\9
صʼj+{RS܁V�aa|������+#���/�?�ӧO�]9�����C]w������ȁ�뚇>h��g��_6�ܝ̏���_=���w����/y��OE��O����o�#cn���n����0?��o0��+g?u�i�iw��_y7��1��UJ�c��[o=q́j��	0&
��m�H��,�I�3������{�׌�_����'��#��vm�D4�`G�$뙾e=_�6���u7�$�B�8L�s<�df�	p�>�d�P}�~�30#@�c��|A�C���e�*�&�O@R/�MO�H��T>f]��n���=N�م ��Jt�Q�IP�1�ϖ)��eўKj{� �M�yb��ezC@j��![͊h?;�����%;W��s�c|�{�mC ����#hHƢנ�^=[�a�z�;b���OE͖�a;!?!�9�*�b��8Tk�^o�^��C���vV+���1,?\��څ��,3Rp��*zj��Ko�-�g8���-#�#	��T�9&A���[H��D7蔨����>.��X��XϿ�(�uD���/K��k�Y��5�0V�]y��c}u��9��W�(����T�x|/%�Yc��m`��&�o�X�D�q*�4�6L�L�QĖp�^Fk'���E
o��ّ!�+]-�"�������ͲŽL%[�]�m��Hg<�g�KMzf���EM�&�C�ˤ��m�B��
�q��9�H��гr|�>'D㺨�����*������1a"�[Nd��X�q�nb$����u��918��z�u����%_0��i��<�i�����v5����j��.|�ƿ���Iď֊=�	Y҅�c��kƺ��t$E��{��_o��.��x�p�9D���͡j{^�Č��NΒ;^~�\�3}|~��H�s�Ű*Z)���ڀ�FGr��dC,%��vMc&u`?��d,�����6���|QIVo0�`wՇ�-9������&�{�lW8фf�M��2�Bt9`���y��fq$��}�K2�H�!|B���3<6�>)#��k
�x�g�~���i?e�������
�)�]�
5,t�%v�(��T�d�d%[̝\^'z哄H�^�II�?��F�I��H�)?�8C���V^Gk���7�'����|�#ͯ��:�/���q�;{�����y�1���Y�2�{�7��|�����⶿���%��<�js�uf~���b��+�i��k��K���o�#���<v�P�����N���>��p_/�>�z=����nկ��>���yȕ�q�X�?_XC�UG�ӟ��9w�ys�/�����^�\�4������ÄH5
��˄��7w)4� �<-�A/N<T���u7&�be���r��hBr�݆}��+,�3��O��5�b}�X{lۡ~��h}6�s�aw�ʊs��^���S���P���l�%OH�
0��W�$xYm�O5%�[���޿���Ua��9[��H�%4��g8P=D�6����$ཱུ5��߂�+E�h���μ�-��Edk�h]ؔ��Z�yhB�BC�K_`/a��g6��>ܩq�Q��$���ф-dY��6H�'���q�S�(���n�
v	��pV�A
bNl�~��	F
)qC~G�C�8�3��5u�L�R��K4��k��!34x�8�s���Pf��]C��YJJ�(����
���ɂ0hƫui���dP��x�G3��A\�C(�-K#�q"b�~LH���c��>�x���7�._��B�+�n����
C����՜@����%�fP��fs��p���2^s�_�5{�&ȑ~���+����/aaق��u�̎�;�9v��J�P�wg��\�L��=M�.��ox�VA�:�&���v&����t>��ܯ�d9QH�Z��=C��D˅�ф�q�=�߸Q�Op7.�&�ň�MU�mח�7�Z���F��W����A���
bff������:?D���9�����r����y]���leP�Vڕ�1�w�q!2/@:��Y�Q�
��엶б��RRQ�r,)�	��ݷ�b�����˙�u|�J�N�~�ľXp�v����[���M�m��Y�T� �C����K��#�{��bj��i{t��e�洉sh��'��C�R7-�͵(�h�Z`��-����q�1Ւ#�rTZ��[���>b+�-Xu�`�`��N+�B{[���4�|�)� =e`�P(�UX|�+/������?�u�i�-�Ɣ��m[ń?�Q���*n�����8/<��6�O}�%б���!�I��$��n��1�o����CfX, ^�{&�g�ּ��P�KY����xlM�xc���h�K{��sn�v����.���� �K�c�����X]���ڼ�c�������y�v@y��k�����b�%g�ƾ'>zS�x᫷�v淞�w�wm���_ݲ�_�~�=��e�OR���?�	���?��?3W��Zs�{^j��O�W�7>u���/~���y���@\��Eoz�y�/ϑ�s��V��!����C.7�y�u�7��u�wY��O}�������߾��cC�W��0��}ťX�4��@ǖ���蔍\�DD=y�ٵ�U��
W
���l�FJnOdV����N�~�1� #�fN���,|
)��C�Z�ں��vs�{Y
2�@)��e��b����U�+9�/����A.�RV�\�@M�#n�9��pV�Y?Q�h*�d���=�\?�|m]P{U�[($�*�1�ފX�0,���[���́ؔ�q2;����y$l�V����UB�3(t��&
��(-���/,���ΤJ�3��t�a��OD�Ϊ�ø�|�#i���)��#M:�2@K�(�v>���J��Nj��j�Y��`a"�zz��w�8�J�
�x
��{�A'S�%a ��:�y�=>�!a�!u;f�v!�]oT!�N�c�"}K1D��go܌�plN!�f+#L��5�4��]Y��DP�3 �+�g"2�x������_-x�smvS�.��eDıɂ��`�����%����� &���0�\�K���
װ�C�Q��b��C�z i`!׉'C&�=8�0�����o�V;�9����{D�:J�z�'��>�q�J�^��,Ǧ�k�gEL�z���R����J����B��Fi���S���Б�=E*J�'>}��g�S?=�/��sD�o��@��u6}�+�j
�5�>��>��æF���S`^+'s ��]a;qd�.NZ[�m�{I��A��vcƑ����?s^;��:͜�ɓQq~�ٔ�dF�sL,xGԊ9U���Y�� $-X$)�Q#x�›m�}*#�S�4;�\��Q�U;B�:�H��=����g�$��@^�1�@�#"8n#�K��k�7��w�!���/"|�INˊR��{1�OQ[C��/&�x~���z�����d�K�y���.�X���.͹��P����T���M�� ��G� �?�x�
�L8ړ��H� �ԋ�H����>h*�MA��йt.?/�ʢT 1#\>�-��"�!H	���sBހ�xW!<X:���"�g1��~�վ)%��4�zYOX������~�ը�v\<�꽷Z��f��R�Z�����B��Ϟ���._ێ����=��A��O_�.smۚW��c͝�u���׿�N|���<�������>�|��3����>����k��N���k��z�ך>���o���2��dz���Q'>v��>���]c~�1���k�05r�2�\a����o�D�84g
v�'o����ܹ�6��zi�֋�(
$BZ�7�t�ń��:�z��Y[:
��'�{H�:�Ȅx����F-�K���P9��:μ����$�F+#}�X3�)����+	���{\�_ӯ�.��Y�DFX��fO�Z�?d	G+�מ��ף�c$�X���0����&��~�}��d�Q{oK�]��|_"�6��iar�&��np�2�#�-t4�Fto'�؉5���eBE�U-� +��#�)!�~�i�Ũq �zU��m8�6��g��?���I;%�A����P�FT��{̉�
�:Z�7�:K����2r[�OYN8��d��]AY��ѧ��b�qIj���6��z��*����jc�8>#jK��<��n	�� �1�Qg�IAbJ�'��FQ�@�azx��ъ��R*���P�Y����E?�i�/�WEѲ�e
�l]���/D�Ci=��������:R�8+v3����SI���8�R�`��-˥RJ�����RRca��;4��a��&�]Z��>�}�q_*��c�(w ��ަb���]:_�9�Do ��Q.a��`*4��Fw� �\x�L*{"�J&t�^���H�a|�5KZ�Z�H@HoRAOϷF�oJ�XeJX�8r� m�荤���A$���v�������X�H�w����	E����Šڰ�M�V�n!�\��z.!��bu���p!Z:��~��8�=J�8�Fk�!���8b~m/Iu
.N�q����h�]�)K!en�c5:�i�I�,��>mGh���ڧѰڈ	G�6����c�ȋ�8-���%}|�������bb-���}H��Q���H:�w����I���@i�=��9�=f%2z�6�k��{\���#Q�YK�nl���dH��#���r2��h��
D�^GR��l`�m�����H���'���R�_|����W =P�gO��Z|�$�Î�H]P2��Vh�������s��e�)Y<=�K5997�"(�ԚT�j�d¢Z�k�W͗3սN�A��ו�	C�K��0P���h�q&؆^�](�������l/}�==I������y�ƚǽ��^��C�S$�;�/�
I�����}Vµ�{�R��j��=��<㻪Ǽ��O2����|�C��N�A�m�~�Ɂ��5�^z�י���*Oܭ�|#����͛w$n��f�я|�\�%�]�q�r@��2
��}%&��������M�K�L���u��J�;��d!
�ؘ�Ȯ|^�	���)7\K�#
�F5�BL�F�f�����{a�m�/�1����9#�ئf���yF����ѐ�"D�oMm\Q�=EH$�|��_ػ�4���y�
{Ğ3PM?Md�:�v&�%l7��}ql��p���E_t~�(���K�oA����Z̑
�J��ʑތ�r�ɾ�$J�\�;�&��6��s�~7�!@�
��y�����3V4�+�v��^�4ٚ�8�KQ�Ls��#��dٗX�z5�M1�w��=��x(rLFO��K��J���1�PcQ+I�Ja*���4�%��F,b~MY�x��Qb�8��483�q��ɱr�`���bQ��
�����c�'ȋ��\�C��7"�ʑ�tX��8`}�7R��ԇn�AZtt<�ӑg&�{�����<���9�Mb�7�SZ^ز�S�n�qNn}��b�)ѥ���V��>[�P�����b�=5#S]P�j�� E���+���i�[��{*6F,8f�`9y�M��%h�����y����4�Δk�����#�Kk�C"@��~��H/z�ȣ��)�\�w,�_,cЫ�/#~2C�rvM�:��)�r '`k��]e����5��ki3	�L��*��I���Q�y���0�"�Q�3>3^|���U�����\��4�Ւ0�����&��d�z��{	%/�nJ��!���^C"�A��2Q����Q���ػ|Q�@ 8	l��N��l|�T�(�6�g�
� ȓ(�hGфGC��s��!�"��/2{"wx�|`�pW\S�Gh��C
U�۾��U:�Y��| 9�F\�BR}���f�c�+c<}�m�����+��7��ox
I��QF*�fh��y�(#�!�"�"���|ٽ9�:�4{�vy����`�x_�	�b>��Zڙltr]�:���]8�>����33c;��g.>��m$�&Y����Mu
M�-L��m��F���w,�i�%b 6�����Tu��2�qȶ
��$�|IN����q�3o��\�@ʱ:D%i$@t0�I@$�/�������>n���W?����%��1�90"	^�{�_��G��ٮ���&�g^����~�3�$��=���w}�ɣy��Ol������5;f\��7��<�3����ݪ����{�y�C�4�~�u�mS�@!���[n6��}f���Lj�!?�Ϳ��8��
�f'�O�U{`��\
p�y��<�����eS��m��&'�I�$H�ab���uT��,ι�������t/�n�I������97�RJX���B�A"��D���8���n %��:Էe�ݿ?M�/�'Zz�@H5p��u�4�?GFx�c�mR�� +��15���NG�ڡ>T�'����U:~OȢpP�'��"I��`?F�Ȕ@��4��p�����^3[��*�M�Azo#�'Y	
퇚k�t9���{��rZͥ�"��An��c:R��^�+��`��iI�\{��}�b�\{aܟ�F�LG��B��<��e���sե����>�RTfm���՟�o�AW��@��kn���r��P.0�O#��EZ�KȞ���v�3�b�Ѫh�Z���6a���7�A1EG�<���	�+'5�P�^j<|�������3G^M�����Ѐ����1G�5"���Z��A����e���d�9�^I�_�v-�;�@�Mx�P2�;�K��^Æ@$�e��H[�Mqm�H�G�,iS��\�d
a{���
{��X�4]+�>΃'z-�����{�†!#�k=�F���k�"�k��VnǕ�Xq삅�A��bG�	P���\��[Ow����㫙|�|)4�mq�cC&���(a�/DȀ�(�5�lg��s�D
�詭M�;Q�{�n�[0p%��πP<�	����6�e�����5��t�����`q_�|�H�(ug�y8�o�a�.�=�ɉj��aQd��^��L��R(�h�`��H+�����ט{�ڃ4f9��:1f�ɞ��g�7HC9�[g��vH�$�Ě���I��T㝐�b�}o��Kg��C�q5�G���Қ
�5�P6d��Ǻ�qzoG�W�$�z����$�].uv�V��w����h�c،S�ز�m���FͿPd��Q��eW��7�^�N�	��W6F-d��y�Qb1ai+jNy�#(p�޿���&ϒ��39��B�v-�(�a~O�5?�AJ���xC���h��mZ�A�!�Q���Y{5{�f[�1Ù~���ށ�I2	��Ko:c��ʘK���m�y��<��g���39���WB�7��(���4��$�^�E���w���`��{g���?�m�Go~�v�"��cn�-s�%O{��uO��Y�{\Z]�|��̫r�y��3o�1s��7���������}�S��d?� �G���t�@���h�Q�]$"�.�KD��d�ɹ�C��Q�'��?	���U����e���~���K����?�(��(�i��O���N���vC���Uk�j���Ԫ��Ȑ�C��\�<�P$���Z&�����n AJ�7V8�K
���1��
��`��uwo�>��s{1,|��>��d���Yg�?=G�Ċk�!K��>:�K�<�Z��12RT펍)?�~��L=�p�B�™4�7�� �Td�+��J��,�Г}(����c�&���I"&}ޯ�	���#a�l�ǟ���p\�ݱs��WC�R?�L�re�"�J��z�£��`��8����~ZA0+I$����}�f���
}"j	q�� fË7���S�!���X�V�%$��@4����{�}���1���:d��bX��A��G���Sñe��H_�(M���@� Ț�q��[�+�_��A����h�����Y�[��k�@��z�]b��#de/�5��Qu�m/B;j���aT���\�\�a�&�7�U����Ԣl2��2p��-Ku3���A��֔J�A$	�
@�:��(�c���#�*E��M��m1��?�=���b[�
�goƠ�8�	3É�ڹ"�.�Lnc �����!+Q���a+s�1)
h.�k}��0��=k�3a���>���x�ȶ�F9�������^Lz_Ndp1๢��rz[4��3r<�6�:8������"e)�<���3d���A<|�[�o�����[rS��wJ�dK E���%-��`~~�=�_�{2;
rR�A�L~O����N���s5؂�����X[t2�Vi��t�8�$ŷ(��"���k�,����N�S:I/d85t��J����bA�o��Xy!��d�5����s֧Gl���	�m�|��~����0ϝ���x�o_��G���շ�nY&�'��O�n���g�$�}��D�m������w��;#��n�7_��^Vh6s�Ir�g��C�2�~�9��xr ����S�Ɩ�db��I�R��<�&��qu��X+W�{"�Q�m�;qToT&����le#�Dd�ӃƱ�I)�(��]nx]9ڌ�X	��-`�f���*��VI�9��[��B]�nƃLj8р���`�����8WG$
�dbG�}��@Ԯ�!�^�u���k��\Z/��5:(����$��v�ieW�\��}@J�Q�~L�M�OO�r)*$U]��ApF�%��9�a���C1.k�H���
��V��ц�!n���t�+�;S$�	A�R��#��JHmD�\�c{XF��������k]:�����{�`��='�E�'���T�B\G�;Q��D�(�(0�Q�)��œ�K��x����0��q��;�{�l,xx�w(�ur�*c�ɒZK�s�	D����S�.��(	�i��r�f��mċ���;X�D/������m?�,��x@F1fm,f�0��Q�I6fH����f�;���t��ulS��n�*ۦ�7X�K�et��}��%����Nz����E�$�͗V��\����P�CM��F���7�}���ƮOgRA��p���'��B�P�P�z�h�2�˫dN�
hۉ1m)�Y��vZ�y��!'F)R��m*L��QM�H��I�f[�p�����x��j(MW>KY02X*�~a/:Y
�(m=I���"핦@�{���n�`�� S�S�XDecʹ��
Y.͡��nj
�$l+z��h��Tu4�|��G5����Ӥ}V�_ʤ�^][v����K��{%^��/�����	�к�N�$��K)�RVfj��G�0d�'��V;�B\�\�e�,����b*t�+@��q��Qu�Jr|_����jF�	`,_�.3�0vt�#1�-�)��m[s��1gΜ6��?��~��m_o��ט�~�]ͯ=�Q��y�/���I��j�9�_��(��m��'��w���o5O�^�W~�����s��߆��1W�w����#c>����#��__�.��_�!t�1��k���Ɂ�]i�=�_�4�����i��ӿ�J`6>v*2��=� c�u��*�sKn%@lM�@G{]��W�u[�v���Z��Ғ��_���L�^�P��x�J�|+��!����t�&ǙHj��}7N�vF�����pq'ߘi����
��F��+L�F%p1�7)B}�7�D>X6��{=a���	����f���$'�ve�7��sj�>UL�I�8��m8�߭�8c�\����(�{P�iE���y�
oh>�����V{�8#l�昨���^�#)�p�sbM��I��p>HH`���.�ek���'?׍^P��S	
K��.�)���I��T�G#i"��I!J��J�u����u�y���G]�`������$�9��3�.��@--KY`앺�H1�7ŠL�0I�ɱ
#�ueŹ`��3H)j�ID��u��BJ�{�Ɛ+c�=�}1	�%�;���7�<G�z��+�[wKc�M��5�'��jAm��(���:�y�evƙ.;{2w>�}?���S�N�<�Ȁ�F���&3�J�dm�P_7G�s:A�e�@{���\y}�P6�eX;�
Q%ހ���� m~��H������r����λw<�Q
ŪA�\҆v��\���$q��h�;�;)h(B=�V�#d�(�i�Ǧ����E�
�.9	�m�4ۼ�ދ���}�2�R�Scscaɞ�1��;@*h�۾	�fg�6���$��ڜ���{1�ָBw��R���fׄvA���ļ��sM�z6��n��l��T"^ZNj~�����\.�b�#i�=���AB��;�:���W�s7�֬�p]���Z�f7�u�n��#`��Hi�E1{�Nn.}dU������e �����0r5ŭ�G�7u�C,����E�!���YKl-�W�/A����d��������51�'����؁r6P�D�0��8mW���$�:�X�r�U���)+á��_&���*m!T���<g�F��Nw�,�xǦxr�8�2�`5��@����|�&��}"��g>:��y�x|��_l��į?�Q�{���-�]F��gm��2�}� 4�+�z�ϼ`�痌�Ɂ?�~�מ�Ɂw���!��[�I{��_b^�̷n����U$��ͷs���m�V��y�f�d���(��A��(z]{O�Gq�Ĉw�7�C��A	�#�ݴ�R���W���mb�z%iA���5@ב���~=8�5(<0|@:���:"���ͷ
�q�q+��B�;�9`%�E,t<
�IYX��R^��q�����>��_*���}�Iu�.l����m��;GlnF ���%�c�تc� "l�kt���Z_���P���9���n�{<DR������
�� ��J"�b����c��'=���pQ��^f�\'�[��"P�7QF�_��3�&I�`�r�H�PoR"�
��"����zY�
e ��Aź0&[����&���׺��.@�2��R�6�S�<��cgkȊ�06&��Ӆ��%JƑRF)�T�U�3pp�E�U���h?7Y[��BS���~\y}�#�KgZQf?�ҝ�?�`�AȔ�~%Ͽ�>I|��ذ��T��Y��~��<�����>}�5�F�vEy��	��8��`�����^K$-+U�[`�����w���`>j��;q=�P/D4��w�sY
'#"0͚�ฎ�Xan�N)�e�.�������T�\�>	�H�2�F�7<hnE�s��<X{OE�[S&HP0�0l,���~��#�{�K�om�d ���ے.z�H����!�bY�v�u�hR��D�E��{��sب�{}�a:�,(/�i�iCI�u�Y}"�|(��Y�:�O��egq�@2`�x��"�C�9��+b�⟩�c��e0�{Cv�҈"�5�%`��"�WtHQ�	�3
b� �Ő=���dK��輡һMl�����|[�R�]n*XQ�4/��t'������ý���P��$ 7Y��Q),i0
�$Q��^F#��Q��J��a"f*_+�ds�{
Tu�{��ZA4e{k�i�k�@Z7�7��)E�Oa�9C�+$��0>H=`�����7M;`�6�"V����L����z�&�6uK:�P&ɪ�ı��I 4�K��^��:�(pM�t��-�Z.�9$�ޔ��j������qsBӰ�Ԃ�7��$�S�����0��i���,�~G���m�<h��?�o��"9�����;�n��מ�ma�}�	H������η�ɲ�7���W���y�8�-|�y˅��~��F<�О���]�+���K�_ߏȁG��:��
�@�7O��w!I�u6)�z��Z�	�KA��{}��x����¿}>�m�o0d+4�N�%س��ym�F�O�
 :�ڊ]����{.�S<��A2'e<�7\�W:l��HP�'��Y��4���*�v��8ks�@�C6G�@`H�ef�r��d3ep���D��V��ܗ�]�O��ӫ�����v�E�7�#��F��/))�]�'"�Q$�}�!?��XD�e��}�,�>�m@Ζ�9�elօ��V��R�U㠳&�`�9I��i��Ef_f�A:ڊ]�z"+
��A��b��l�A� +K�S��Ft: 奔�a��XӋ"*\-�	A���;���$�3�"�4˕�2н$�3���Q�M*��An^�xpvYÁ�6�)��v��N
�,���V�q���f �e
&ɘHhFf$�B=@���6�<�lr�|=nJ�!uG)�N�6_�l��B�Wo���X��爉]jo#�	��T1�v{�9��=B-'�,Nb#M勷�#����L��00��hG�B~��^-1��G�5�N�E�Z���U�G���렂����7���&�������v�Ao�g��oɎ&!kG��b
�9��B�ި��u��b���@@<}v����lŊ����y��h���� o}�€�nE˲��eA�P!2Kd?d	�������#,m �0�� ��FX!�I�g��4c���9�تy �vR4��o&NHс�
d���uZ�
d�ҥj�\��PD�)S��$���S"U���%eq� 
�v��c(���Nf�!�%Peb0E������Y�	=y�2ਪ���A���D�t��8����H�&�.�	�9ԩu�������kT��r@�$a#��\�tQ�
�*eF@i���5��+�d�^f=���LLfgmj{oL�����s4'�GYD/�� "��TQ9�=�W?�X70\�\tc�'������VΝ]b*g�hҁ(���gfꂙ<��XCnj�x��{TlV�E�K�'��
;��*�q�N0X��,�y���]ϥ9��Pk��c��9�)�4��Id��X"z��dJRJ�;�Ȥ�`!�ܓ���s��٢	�^��O����o=ܷ��;�m7�=����$x�+C_��G��l��M2	^����l���s���/_W!����\��-����m�K����==�HT�}/��^e��u�67��.+t�����}u�
�lwO1Ϗ��ŀ���j6�-+�6΃���T8C�n���bM{�
�7�m��A���^�-���İ�ܒ�}k��c�Y�xFW�K�p�]���*��5)�޿�TTYj鏙
L:�X.R�xA�A�b�AcH�>� Hz�!�d{<��I��$��_ت��>�wp�	�o*��'q΋�$�T��F�=b�ZI{��+αktW���l��Q�=��.�3L�
8�u�� #�OKŬ}�F�co_�4>���&����+�/�7}�M'�W{X/
A��Dmt����ߴ8�ηiO=msq��0o25�`�@�d�� ��x����8<�
����D��7�X'aba�c����Z�:��|��X�.�@���Nh<U����91�l`u�(�ʮ*�a8ލ�MR�rB#V2�jN	[X�NG�6d+�ܥL�
�Q3�uD�L��M���tKkc1 kUL�FM�/ǶH?ax/
���֔��b��8vf�nEh�)"`�߫vѮ90sT��Y�캈u��FN@i��y�l�_.B�‰Oy2��5ň�g��Vs]0M�h�+�(E����1�w`�!Nf���<����i��z�N�ϴ�8�}�y�]�`�)���ৼF���=�E�0���~(T6ؓ�'q����h�t����7��ﺉQ��0����M������
EC�&��1�=��G��]Ա�h�ct���*�a��Ntl�haac!L �N$�$B�Ar���Y�QNa�TI�Er�Ч��	���������H'�!�v4�(*�֩f�b��9Ve�0������Jd���:�۽na(F˒R@i�̄>Ÿ�3Aक़z�j��#��3�AX۫b�ۇ�A��Ιq�Q?����S��Pp�""��n��l�)tÜ�U+�M����Y���om��*��"�i�V��@��@���I^H���83�������*�WsحZ�
G������ ����fb[r�y���0�J�,��F��*��8�RF	������Ы�K	,��i�d�p��+S�d�B%ҿ�Z�0��P�:�C����+nIw?��@Y���v�3�1*�]�{�I@5�F��
���e��	0�	PGJ�2��I�L	I2�|�GT{F�,�p���X��V�-,Z���u���yC1����Lk|ec�`K��g�5��(D1e
b��Ը�;@a(����z��g>�ɛ͵_a�K?�L��)^o��w��l��IH�W��$xE�=���o;�M���?��7���ǘW�`�co�mc�r�9��m��G�?\�����]M�@y���/1o}�U��^�n�к�9p��90�?�X�V��`OSm�`*l����-������[��Z�|����^���8g���S���<ٰ�R���(:�w��Zc��d�I.��0��ey
7���:VɭZ�|��\R1ˁPNDy�E���D�[H��s�b��i"��K�`�o���r�FY��X�:AVО�納�޳�"<+����`}%���r:�O`%Ƚ��&��:�ЪZ\DKn��n!l���܉�G9��W(�©��MoZ��F)}�O@$f�xx����z�6��+6��g=:��8X�竉'k�� ^���`��%�-I�@�cS$�����������B�D@���Ɍ�m:�왬�X���rPU�R
B;vY�8΂�;f��TAY�)�c&������9!�Ӄ.�S��e��� �3P1���^�f�Lh��%�5�~t6aDR��PϢ��>���
0���B;���(X��f��=9)3�������]���}��2ؾG�r�h�>I�2_�������s�X��WW7�fW��gu�\IN��	�9�S�	�9��YH�I�X�R��m���o�钑�+��yl�9�h�(�v"����Aٷ��5oll20T_'D��6����Ĭ�}��+������Ƒ�K��|�Fs�hr[5�:v�U�%�đ~.
�7�w�ϑt��C�����.�.-Z7,b�P0�"}�}�����ֹ�>;2)k�Q�}J�4��Ȇ
�m�����aI����7^��^��}61b$���32��4�#}Ra�����$?�.�R�l�el&PA/�G������_3��h�
E�	��J�w���	j��1�����ȥ���9��!Ro4q�Q9?}$�a	%Ov�"V6:�^�08ɴ���<�}���Ȕp�
�M���X���.�֪
��������_O�I$��؂Th��Y�tV��y���C�Y�
�ڋ>�#�cY��T������+vdOԠ@�,���H��	��o��E�����ݑ�M����H�́��F��������܂Sϲ�q�I�F��3$�꛸�@rHHj�
�j	p
s�K��;���{M�9'�JeS,דfN^pw*�d��5�����A���n'�}��3���s	�ɃE0�Mv��d7;o+�!f�+["Z3��u�r�W�H\��?��K��Ϥ_�l'��x-%n����`�A���K��{E�8y���|�~��=���^p|��y/xE����<e{�7H�G\��/r��G�U��@c|Iٔ���7��Ɂo|��u_ȁWL�5W�e�U��rO|���׽��޲������A,��H�dGtDl6qm���w����<�p��Ϣ�
��]{�327����D;��N;�:E��Y�n;�Ζ�HNSaֆl��#�9!�����H�r:2LP(�\�(���>��7�o+�V��-#=�ѣCh>�a�ELbGE�iz�ͱ�~w'L�E�;���N�űA�'�=��x"h]�O�	\�A�!}E���$��#A�:n�!�ۗ��K�� ���(S�q��H��k�V�YpQ~�7�g�4b|���S}ʁkA�އV�B�|~I�l)��WFT �mL-��U�%q�d(c�~��I�#\G4�s�I��s����������0N/-1�`��92�B�����dL�U������V����XF��ېkHl�֧�sH`d��7�DDx<&d��}�ZG.��5bp�z�Z ݈���a(��s�+�5��<;f�R�q=%35�������a� �?�� e'G��Z�f\�٘х%�c��,���z���M�G�5��l�a[��o)�+�'�5��r�b7[gP���v�)"\���g�'�L���~὿?7-�,�yb�����1�WVm�F1R�y�	R*cݙjfB�qZ�j����މ5�bjލ��6M��5z=��Q��v��dT*���-�1�s8�!��݉�s�T$4*�������Ğn �d�\���n�8DdD`	�B>���Ѻ��	Ƹ�V�y!���3fj7t^�	/Aq�p��&d�{2�8ӊWϱ�,��P�R-��
N��	�D���q� �D��6���!EX2(g�zao�F<��	A!aӈ�I�F����)rij�:,li�u
<d���DX�u�q��w
�m���ztϵ����=��I�WP����
#L\e�;��ÐT��)�J�6 	�1.W~	���m�@��T�t�T6��H�q�^k����c���k�}Ε��J���Zs����7�	��2OZ��R�(��J<2����l�z|��e��h�$̚)�=�mK'IKфIċh�c`�
*�>���G{�=��hO�Y���I(Use]�(!�#�R
k;p��Rwv�m
�CP���G�gu`k���#�'�hZ�H�p�
�xj�0�ю�/Z�&P)���}�h�9��'Ev��di#}x�%��H`X��y��f��s�w��9T~w�j�t*������0HDŽ~[K���ֿ1f�m�J�:�y�Mt��trr��]=?݉�.�秤_���սń��y6u�ckIPӞE,g��b�($���ZM����구WK4�udI��>���q�B�W"	�Cc~,b�m'���2�I�`�$��~�;	2I�/�S�
��W��|Ə����o�z&�K�Ԙ�+��ך�5���k���t�0�s_�2�������8!o���<���Zӫ��+�?}��Br5��U�4�IvGdZ"0}�I�H�~�=縣��X@��zos|戄�}6&����^h̷�9���O��ds�PP��Hq��U�߈�H-?
�{�����lk�s�$�}aRx�'����U�&����M�ώ�R��?�8���5rc$��NaO��G�=�% ��
�Ń�H�X�}涊^�:�˨F��+K�Y���!U��xx��X�u�<&6*?�ɵ�h۳s�Z�z�=wd�.�=�,oq�\)SY�r�-�NHM(���̹
@\#���ӾN⧸�{s�:U�~�`Y~��.y޿А��@᳝���,�e�i�ƈ��Q�.XW^h��F�lv��MF*ĭꂎ�1�X:�e�=6�3=^�
d��Q����·�3��XO��$�aw�(q)�[\��Q�-��l��?�BO�07�Ce.���թ��l����&l�����+	%�`�b�k�����$씽AL��x'\�W઺AE��=Q��7�Zn�y�X�3�\��c�~;�e�'�rhA�S�=H�ց�%
+o ݱ�:�M��eM�i>�MT�ܚ�I�8���KPA�
Tl�W{"T��T��zc��9��g�"���N�H��ײ��`�	�A�*my-��i�"6�~v��N�ju آ�c ?N�3b�"~��3�%���3'����?5@�l�
W��>M�Z�,�Cʆ�AMP�ЩC8qP��H;e��@��o�r�bK���u��x�����\`�U��|.����o�'ski�UҀ픒��*�K{�4
�3����.�LK��9|\�ϫ���k1l"��n3������H,b��8�R�y�������2��`����&N�`��_�V˕nW
�z@��m�#��I�32o�z�}���ur�`qT�/c	\`����I���f@��
� 1��k	��v���	�q8�Aqm`!ze.�}��E����
��J�L��Vg�;9�`uG{\P�6�aކ�X�?�U&T@�����nߦ�.��栒���8�<�nf$�fC��Od5Ysw�V�.���%��.�s)9P
a����Y��6z��3�L9q���-�������O;��rA�B����;qDz�I���!]!��u�����5�x�����%��O���_�?~���~����o�Yn��I���#V�Ǐ��wK'��~�?�g\�kɁ߼�s�+^����L���?e�^���_�ʗ��΁�����5r�3O��;�?x���D&��C ��VX�縂f���@B$А�s,�mr�*v��G�P;���E�����[/���D�<P�I2D�J`�#�߫6�Ţc�i�LS@{��%�A�FyH���1�U����KKŽm;�5�x���l<�/<&^�PLqc�t�9Z�gx�g�Hd�5�/ ]Ia�J���k���n��.G�`����i�h�Oߌb���:~b����T�o�\Q`>4�A��Xa!�mȾJs�3�I,1��*ͳ�  ��*�!9�z������(a��2%��5���8����d ��f�*?)ϴ��L~���<9�L��PkzC�+�l'p�qt�+��ٮDo�d!I�yG9V���U4X��D�H�MRrb�#��n�s#\�)G�aL�x8��}[e0,|ۜ�,��*�e5_9M,e/����ɸ��0�=E�`Cb\@�<bȜx�K//�
^��ݵ�����ҫt��\7P_}��R������kP�b=��&"�SО!R��v�1A����Z��)�c�c���s/2������׌����e#}-�KT�]�M;����p�[�7�5sj���f���H�.W��ٔ �\�r�]U�]�&�0��^i[;���"�gi<0i=z
��5����V�W>��zs����U��
7�V
��m��&r��������+g$s� ��36[�wFk��Y
 �Z{W��V��U�+n0��LâjԼ��!���ꄝV��&"a�\�B_\̸��ü1�MkC����
lF1ۃ|���Y�ƫ�Iv��߈��]~����\R�[�:�}�@���׫͐F��0�b��#	rC3�9ɌD�-�YYk�6�ƈ��vV��b����ao�D�
Ƃ�&O�P\FkN�a� "ɕ�b@��EX�M�JF�D>�ʡ)0)����3
��<�PgX��Q��$�0"V��k�람H	��=�v�JA�����ۦ���>sw:��g�(+��@�����8^���ĩ��\9��T�'�z��^H'�̥Sc�%�F�/���a	�K�8%	�b|����|v�r�+������4��'re�����ef��҅A�(i����sp@�u��l�Δ�C��$5�qμ�NT$�Y�c��;������/�����R�Ʒ<I����o0�����O�ρ����Ɂ�|���G�5�o<G�i�ZY�/��W�������_[!>ky�ȁ�kg�����N�E���I����>1}v�S{�����3�dg*�����x�-�E}q��D�m�o⩅�+���8�ئS�V�krY������KrCl$������
�c[� �c�e.��Ŏ����(�����(�g���)�� �Y[���1=���㯙�|�Ue���t�v�U�iPr���{�죏�f{�ߙ90��ͨ�D-`��W%�C���a<�Ö��V瓛��$7 ��Xj?B%��OtQGNn�0U%�aُx/t�۠r�����Pp�M��4� 1�V��=##K*!��?�-97����{jLo+L�9\��xc
V�~K�f�fT9琶Gk}��랟���	�k�+m�^��+c#I:�>nL]�~4�6�B
FU���l^���8�=�q��.�;�<�2��l��O2[9��X��{�g��N�����ڶ��鰘b�˄�BrZ�
��zo�ƿ�������ǟ_���9C�'}��0ġ�mS{��Y��7���\?�����ˉ$��r�L�E�K��w�F�x*��!(B�Hڴ�|S���@c���3�c�^��)�b2�R��1���ۉn}Q�G�\.���
�\����3؁̻�1Q��&烿�Χ�7��݆>G�D�s8�|K���6�`L�@�˞���p'���܅"4�Յ
�m�X���ҁ/���o�e� yS��������1I��.���G/�L���:��Kѵ��>�Bƕg6^����kX(�fVϳ��J%��b��W�H,�ShK�(l
��6{���,�(-��>�6cQ��Z�ވ|~ht�}.KNj��@CyPsq�b����<��	`j�r�s*@AP����޽�=�Xþ�4?sR�.SW�c���$�x��&�jN�@r't�}H�R�"������J���Pi�sGP�9�2j�G��gKe���lS$�k-� �D^U:�JwQWCו�!�
���&��M"�\m<<ld��P*�<��8l5py��`�������ܚ�aC�\�mMcA�I��li�`���m�\wl#��N�ɓ>�0{�I�hb!T^+}��t�"`�I���F�P�����-�2��CR����A��ʞ���Զ5�6+ڞg�{�;�P��T[Ƶ3�HV� ֚Z�?�A����d�L%iX��t>W��׭;&�\(��5Mg�V{6�.������k	B4w�
kN
�y�k^��־>�����y���5��t��~5���ܻ>`������������ic~-���o0���{>8�|40��������k^������s�x��א�!l_�r�~�y�{���1o��19��3Ϙ�|���@=E�j�&��
�l�X��*�B[S��P�0@!�uս�<��r�Pg̪�	�p��H�I-�N�������Ԋ~q ��vӺg�0K�^�Rk��Xb��H7Q��m3
�⸷��g
�����H�0:�%Zc����5Q� y���񢚎�B��h�La�l��Ԅ�G���l(Fc2�{�̉��К���dDs����R�/���&�������W
D�[�ާ]-Ts�*Y�b�vݢ�e=e�$sm�@��
y~�x��
1(KE
"���Pm���m�%�P!�e����%P�Q�X�8*���J���~k�@])��h���Q[�X��-ͥ���G3`��#W��"uS#��u��$�,B�|!��yՓhul�Q���`^yù��Gn=�A:��uٜ"�����M^�|q����yك3�9�I�jn˞ {�)k`�tI5_��6�@��j?I�.ټ a%I�-�d���}�R�U�8���i�O�H���M�-f�-��嬼����gLj*�7����l�5X��;<�~�U�ک���,�rr�!K�����TzV�i�\�X�I�E����^�x��G��GЛ���g�2��p=a-��BK�TJ��I=ï��/�l;�L�9�N�	���^�8V�8�N
�,�e�Ө{���?�Ӌ�`�a;�@���t���N`�U��؀��6��vץ�G�~25�O�ߡ�	$��ϛ��LRo�h/^j�c����j�-o�+,G�>(�HW^��:��V߅T��n�x��`t���A�ʨ@>L�/���re�"L|4(�X�H�A���*rY����!��gGB{5�ں8��m�D�qDQ^�L�A&�16�4E[���(�{�NगHt��k �У>C�@�ه&	�
�p�L�B�F�]>ԭ���,�ӓ�Hm�i|�� �	CY?�!FI��*��*��A���@��2Ww͜�c�7�r���_N�Pw6���I�J�<p~�����=P�(#&	��z�,�_���a��k�U�������s�e�X�^3�ǀF���%���|�/�Q��
�p\P�A�
j��Y��*���
`�;5������4	0�x���!Wϫ��)�<�%+�
��];oH{�x@�'+$�8�E��q ���BN�أ)����Z1d��ZEm�He��8/':�&5]��:��P��5I�HrX��R��8�K�;�� q֙/��/47�o�a�]�x����ޱB�[^���~5�
����`���������M��S$���Q���m�`���^?������?u'r�+��I�#�x�S�o��X��^�r�~ի�g��CW:��Y�<�[�΁_�΁*&F���h���dT�ͅ�H$B.~N�cL�8��O�^S��z���U&]M�Zw\� C��������#r L���Qw-w��"���R��AE�ܕ��Kk=�%4D&�lj��I1�&�	���r鿯���ϱ���i��,�`��m��@����}nS����e&�.~V�?W��ؘZ�����*zl���6�a~��C�~������D�y��/��&�P:C��W�"X�;���"Sa�� M�h�O8��bU�RL��?��t�L�G��*�%Pd� {'��d��n�$3��n�#Ҵ��.��*Nf�*�9�F�6'�E&����
Һ��1��y�ڡ*�"Ro�xz�6��<J+E��H���
��|�+��'$h*���[�)X�UպC�l@}^4�*T��HP���Ր`��ۀHU�*�1+�&�:|���x�7F���66-��9371�H�1�q���X�z�y	���@����s�`�P��h�o8_%y����c�Cɕ�˾�*�E8�ɣ����\�a������A1�TX�~�s�潇���l|��\�O����8j��p�s�-�����j��|X�&Lg�ϐ!'�>��RE#*h�ҋ��c�Î�bIw�y�Lp[3F۰�]͕e''fa|��� �tn�F�2��u�	e��o|��B��A��hW�ʺ�z�sf���{]�6?:���P]��K�t"�7�T�䠚�a�\u��hik�ka5��)U�:hf�>��Sk��1��%��*ν(sa�\��mW�b�I�`ܑ�x O^�ݤ�v3��E&	l�����0*���$�Y?CP�##��
�rR��rU����R�
�H�H�C���<�*NbЇ<6�18lO���f�D���@�
9\����,�y�JDx�(�is��`�|Kd{��<��;t#��7k�W5�	4��iU�s�KAYSd�f���US�?�8�UF�
�+(A9�t1!7y�`��N���v�Z$��LH��^_�զ٬��r>r��iFL�:�ʲHX��v���u@ߘ�m�A�@O�(_v��tN~��j�JfiR��'�ze�V�t�o���a�sL���X'
ZI�ur�.���#�p���$mܻ"�G:�[�!cH�ˑ����do�#m׺{�I�����xru���Ǝ��̀F�t�}�����L���l�iuK���@���G�r>�W���/�Bs�^"^,r��v���/ޘ���CG�ܻ?h��xS��ߐn��;	L"��4rC��O�����Ɂ�?����QV��5�!�"9�կI��7`Q�y�g�UY�_�T�

��GI
R7����z~s\��Px�5��!q�����p\�>�p��(��;��X#Jŗ^+@�>O��$�����L��6�O,���D�̊��S�,"9�ι�8�(w�NQ��Y\�~\�6;�=�|�pT��Xy��y��z�Y@@Z�(ޛ���Kޣ��AbۀN�,�8G=���)�9c��V�ٔ��7����zwg���T�:W3٣O�8'�P�L���\�	���e�:J�|z�\(�UU�U�����;��*RT`�"VB
��4�;:�sd�G��S��LR���k�[������ ��y���1�Ũ�Ba2�������|�lb�}E����dN.��kl��tS!@ս��w�	/��4$�Y����&��R(Fc�Q�Y��TP�_���_�{�$�,�u��ºn=���`���:���o�\��r�t5���ꗈP�.��q{Py�B�:����G�e�qw?�IYbE�#�Ol�Xy#�B�`g�a��:۠IJ7�V�n��D��XGsuC������Ǜ���n��3�Z�ݵ��0�tj~65�&�4���Y���P?��Z���m/Y��4�����A8�@��z���)���~tyzw�
l��P�ȹ&<�^\Npr̺�7�ZΆ�>��e3���f��1#[&[�#|icp:������0h�=7+9��Z�qwܻ�[a��䏬��V��"���xYg�'��E}�6x2�ˊ�5�c��U���.�'��~���BN�J~����A�'��+i�t�v��U�K�:L�Ƌ�V������^�ƈ��
���V��@e�zk����i����&^�ۅ*�]��`�Z�+ �n��^�bt�U
�`]!b3�Bɜ�"�5Q6�GV�`�	/��y��3靣�c��[�CE���}1�u�6��m���
թ$��e��0ˆxy\v�����f�@r!�"���;S{0xU��;��_P{�L��T�z��4zՅ�c�}�&�w#�<G(
~�g�kKU^�znXEV@<kz�"#�O��z��

Q:�E}��yeU�=W�!w7��r�����ũ��>?ҟ5l3��M�s堤�ZB���� ���E��Џ��6i�U{.v�s��+
p�mi��k;��NTy����V��2���;�/=ÊxA\��
�Ž��6��E�"_��MK�ec�>�ot�K"7�U�A�ЎW⸻��q/��/�f��5�Ɂ���~��p"	^�1o����PϢ�}�2I�oH7��7��'	~�'�{Dp�ێ�"v)d4�.~�?��י�Ɂ�y��'�=I�/~����~���HV���B<m~��y1 �'�eY��;�'�ƿ��ꀩ� ��c��y���u�v���5;/�<�)f��Mۼ�,��^���������7�M$!i���)�wuE�.�
P�H���͹�I|&��+��X)�Εݏ4]���m�|Ƭ�Z6���t��[Ia�����h1"�8k�4���=>ϗE�ԉ(�Wq�\�|��:f[�h,�(�V(���&k����bT0��(��<�8�C.���e�'��Ov+��Za��S2M�M�����-&��<��0�@��B�8�2o�2Ц�X����M��B*`��!��ڇf�T�@��
�B!2�8ѿo���F!`krglҪ^ط
��"s՜��0j���.���3���L��5��k9�{z�S��
y>[�7�L���@%gP��=�y�D�=�CE���jlZ�ixn��j�݌�G�L���~8��F�|�M!W��$��CE�ż>u7A+�ez?#�m�/{)L�#�M��a�W��f��`��wE���@g���ߢ���ϣ��P�D���C�s4T8�$�Er$�=4[K�9�'�ɉ���t�e�]�������9{5L��Ȅ�w�4Ѣ�a��SR�<g�R[�3٨SwS���$ύ<��B�L���u����@dL 
���J{�I��"�Ƶ��9��4Y�ź����V��UP��%U�kd�+qi�?�LV��X��"t�}��k	���Jx��J	�X?��K
�$���M�B�T
F� ��4*���\��I3ktkֶ��&�
�ggnf�F��@
d���v5���E�m�g��iC>��4<�o' ~�x��f^�pS�I�`���� W�B� ���	����w��k�"
�
u�%��Á=��o���6\���͖]�+�bl	��ʏ�s\�gX:V�
�a� 2�E��\���T�����Ћ��;*����H� e�CgV��F{�d���Hh��|����^�	'�u�/'h�}�ȧ"K�T���f���'
FY�ē���;��T틠�?�9g���U�4t��+��|��4٠�)j�Z�4��h^�@n�y`��p�L�{���1mB��X
��ނZ'P�;�	*)
�<����t������O��A�w\��צ%�N��`NHb^HƯ�������P#��!�`�3�;����<} cl
�$���+F�Z�j\r����4".,�Y�ǝ�.�U�d��27N���a,�ə��h�:Y5��j~2�%���: q��P|O<��������`�a:�$��7�m:ԌI$	�����#Ip��7��C�?���o��o4�I�w}�rr�k_�^���|�x
g:��5�|�K{���/7�|���gE��WWȁ�Ox��‹��C�T㴄u\�@&��+�I&�f��m29�L�_Q1Hꮉ��杝Gb�C��s�rE�#-���/Ϛ�U�B�r	���J�,�����T�������V�)�/��g�Ų/��Nb#��E�Ib˷�e�R^�x@P4\����*�����]Ab(�_�H�$�2PĂ�ל�,@��X�e]h������VI���u�M2}����k�t�J�xP�L��=�~�1��J��悞$��R0�:�5X���6����>@w�Q��p	����W.��"f*��9�R0�S�9��y �����v�ܦt!�=9�4�j� ZGKh?7_��!vφ}Q˸F��-�dE�(~�4�B���h!�,�ZWFCf���$s��ݳò`|����ʖ�-�z1oE`�Teт`G+c�nH��z��f�8ʃ5R6�ڋ �cN֧f�@b�E��S���"��yR���L	R�&�o�,��:6��v�]:�ٔ8��3(^4{g/�Vث��/r� {�^Ծ�3<���0��s�xT|�{ˤ�$�ziڀ�Җ�*�1dH�s��2�M^96����HFI��G��=�a�T�#���'G���Y��R$?4�(9�iH��+���[�wXe}�JL�
�1lX�q�ٍ��ڮp��4��2�}���c���V��V�Ș��S�1�C^å�9"	�
�~�����`H��#=�~?��;>Hfʵy�s�;Q@+���;��=�02P��Cx�qU��l����y/��ƦZ;3hF���H0�8W�_�	��%��Baʳ1䐹W���EW�*�SoC�k^�}7�ax?m��+�a�7�X����&�6�-w�q�N�M��\��Q���&s�/d���
����	�����Ʀi�:
D%����*6����5�\���~NPW�%�#UK	����)�����k�����5LW�W���vs�!�w0��:��%#���g
}]i�5&
'��
��a$�-�����ڐ	BS[������9~8^\�c)�T-?:\��}$�u�@���h��6ƌBR�<g�BQW͗}�P�"��:5P�W���+�`�#�,��O�{X������!���#N�r����BØs�<�{e��Yv'9;��=c�&m��?S�^�T0�$
"\R>aϐ'�_���$t� Xs=U6�%�Ň�۾S!�� r�΂K$L���/B���%O<qҐ��$�$�-�ٚ�=��;	~��;�����Mi$��A�k#�����ٟ>O�ٯ{]��;�}���֘��e�O�_a�y�k��C���/5$d�L|� �����U1�^��b7������٤ِ�;�D�1�%k@[�}�F��8��4�d�ݐ/�� Ⱦ-������$E�*A����K��.X�[�I� ~�W��#UG\�qMM�:�x�TxzvL�3O�3}��z?M�
PW�5$m�E�Fܞ�d"����Pw��_W��1��<a��9����f��0"i�ot݃=(�`�����y]�6����2��m%n=�?�Dh
ytL0vl��tw"�:�O13��+�%ޔ����F�m��X��O����u��srjE��gٝ-W��g��.N�f��8��c��@���&�l����j~z�]���$m=��2��Y�rl�CQp��Ҫ���*�4.冹���_�Sj�ڥ��w+�L(�����|ci0�Q�:��VP���^�[��U�W��Ǯ��
�g�k��
@��u�2[�O���TW>t3J�)��'�E�m�$tg#��;����4�}e�.S�g)M9H�x胆�'��Om&�Y�NW�ߧ�qGҽ#r�(�����*�\(2�B
8"��Dw��Ҟϼ���b]��c��x���yR6�]��A&E,tݓCv���\[&@R��%�������
JK�f�|��D��g�~��bp �|u�@�e��>0�?H�/.x9-�3�3f�����&�́AŢt<9p*�GSd��z�h��*z��e0;�Iy�еS4�`P���tcj�[�u��0K�A��ϛ8jM�w����L�#�D�� {�z�
��4�#�9N�O(��a��Ё.����er���3Wm�m�|k���i
��*��n��;q�{?2�SU�l�%v��!J�"u:�Ro�|���oӸ��zXR -mި�dK��r�r�����9�
i�W'+7�n=��'��`cמG�&˖*�����};j�ޒ#�t-r�
E���y��p|s�Z�S�|���=��
�E%�.{$Y[L5�oM혌t�z���DRB$o���*Uɳj�������D��?'�w����

�Ru�²c�h�Jo*�+%�\֔����!#7�߇o��ϥ$�R�[e^��Q`�Q��T�`F�m�=�Mր��Qh�"���T��
C!%�nޯ�x��Uw'�k��s{fՖ�@�?4ނ�����.:��=���T-J��Df�I&Ȗ�&�jǸ�@[|B��OrY���c��y������{&5��S��ʾIH�5kݤVg�+��6����T�:G0"г�nrp,V��p���7�9PH��-O��۞��:	�I�H�x�N�]	�xx�	���}���Gr���X�/~�y:��zj�s� 90�'w:��V$͆�2���ՑpPzBF�m2���ߏo�g�Y(N��x��F��HWM�1~��ana��Y��t�K��cc��K�d܂����Τ��q�K�F!W�y�����c�Jα~�:KH�!��޸qO��)c�X�����R��
���UG�W$P+��5R�͹J*.�y�$�֨�\E���<~|�K	��nr���G����R�]�6�*��9I�B�s^���FƷ'��}UH�^G��b��[�tBsi=3'�w�#� �2@-y�ef�����q���
ں��2��t��3
�yG!��=*�����s�
�{�<~�F�"�����s	�<3K��.j���RJ�W�wи�!y�P�7�o���kn�7�͵�>s��x�&�5��nݘ�?��=+���s2��'�z�Nj��&�'Y�	����z����vJ��{��4Y�飓�bG�s�¬�*�����^j�v�
W$^Ĉl�bG "����E>_�,c��0���D��,I�>q���A*�$��ȿoqu'��\(�n�Z�4���ϭ�4Gm!sB��z��e�f��?����^�������E��AL"����/4�jJ��jM5��l���I��]��`� g�u<K��P��+�i�^ T���OY��Ճ�o��	��~�Tp���k���_����u�,AɃ?��	�ɍ[",�x�x
���>s
!��dr$+',i�lZk��pm�����2��p���6w*���8
b�>��PߞW��rS���V����%M��u���W�����\.mͿ����E�l��CഀǶi9R�x.�����`��!�i^�8��;sʧ�n_|P�U65���3��M\\���ą�i�{�q�iE�m�s�ض��%`ِ�d��e���c�ژr�m( b��3�	[�cu �c�̱ޏ@ڴj���'檻����)}TD���͝�B;Ԫ����&7�
��F]�TH�2�ҢW���あ��Ƹ�6O�+�6��?˶�^�&�2g-���'�lc��E�@![ɛ�����,?7J�=X�IC%��K�S��pj��s�VU�[z��,>N�Md���E_g,��P[������N�0{pTg�6�v�ҿ��N���{�[2vq�	:��HVG%NaP]�އ���l.�V&��d/�K�i����o�-�I�A�����	i�M���q��Z��L��x�hqY]�3	�z�<�ACm��rQ�1�BP��a�4�˜�隋j�)F�q�%��% �%cg�H4q[�&~oU��"�V"�tu�"��;��5IJb����u��f�S��cS��]$3�dR�����UJIʈ�G2�4=��dA�Bf/� �u��i���Q�m��.�8|#�.�����O<a�4�=4/��'�(��q�+O^���'	���4�[��R7�~��H������`�ǝ�s ������Uȁ�΁�~���s#9��Ǭ�-/�!9���<c>�"���- �٣�d�Y���i�y@b?��cM��Jֆ�����󎀕g���
�ۘ�K���DV�\���hO\�'
"!T�l�drx4��iɞ4�U,O]�&H�K1N�1����C$@B�� ���(��sD-p֛R����
�z|��{~�ƨ��S+���yj$'P�a���ڠ3��cح�;����v�%�$,#C�$�/�<$%��M�g�S��6/m
�A8�G#���Q��PJ�Ic}S�\I{��w�B
��~C$A���qL�2��7�	BĢ�]*�"�hl:o���F�=��`��Iݎ�d���i��B)L�a]��6��%�Uq�	4��g��9�%���t����C�
.@�4�;�3tK����^
��Y�b)LuO��t�����d�.�k_zo�ֲ�[�1��FƝ��Q�@�f�o-^�"��lLm��{~گ��%�J;���A�
x�6}�Y¤e��󙩢ۗJ&5f��C\_��1��5IԉhY�sKщG���1y&�ڋ����h�$ᵳ$�������|VE���$/��r�g�&��G"`���/�}&.�H�@����AT]U��֫}K�;[���P�V�+6�1M�o�ҲYeή��/pZ�Ha�=�U�$o���yP�{%>�<�2��2a�]/�3�?�!�f�#���+�@������uD�\���O�(��P�t�[��D��qsb�����|�&�s��	k�Yϙ�"2X���k0�*֞K��Nu���ZK>L�\��Jt`�|U�k��ͼ��z���uա��V�t�7v�~Z���8��c�Z��K��y@O�	��[�
����$�
T��!Y����)��`�,�d��@4892�NU]Z�'��
D��,�$Y���Ӧీr�`�T)�H�E�a�V4򩙴H�(�\�吵؃��9��wR65�ծ�P�������p��>��X� ���*(	R!A�B�P��ц�z�d�Sk�C8��8��P�^4ٚ	8�R��D�׽em[��FA���9�`:��Ԋ?1�t;oj�Q9����`RĢ�����N�Qd�m�>s�A��Գ�<��ji3h�݂��+��dЅ&����1ؙ�v�^��'�=�9O�Zo�O uX9��H�R@K,����VcC;� s:UT�N�%үCh�	$�F��@�QYR�2`P��G��kX�cq-I��VSK�`�YٮջP��]!��&(Qe�jU0* �?C��
D���՚s���b}������ߣ�͆Y�
i��3�숇��:����u��V������]ͯ��KNw�?�ē+�$����?p�����u��|�7���o��N|m|o��o2߉��9�_�~���>e��g>�˟4揿|��D��]�o�$�����efh-�f�!�f����i�:[�K��3�gC���y�����p�� �>s�U�w1c�fb�՚��%/{;�3�ї�őN�i;�-�@�e�K��A��x�� ���'�-i"{:�<U����Y�_�Pb;��4$�!	iY�U�kvm&��n��Y�	Գ�|�19k՜R��Gy��T �* �����xQq��R66���]AyP�uz�䊀��������Q���m��B�\`Ҹ4?���,Hv���5Щ"����n>PyH��(���f��׀]h�wP�?�gչ���7>�����4�
�ڭ淕u��k#S%Ʌ������M߄��C҅I��z����@�.��h��DȐ������G.��͙�)�T�ⷤ��������<�R�~K��^ɦ8�(�@�S��⏮�t�%��ʾ ҫ���v+q�\�&Tk��SZL�P��c��eۼ8"•�|���⽵r_2�5�[�z��U$ {��|E܈����^&��j}�������I�~�r+r�s�QX��6���[h@�3�>��@`��nD:��		:�@���(Ż����`���:1��q
�@����XH�3uAj���=�W��fjn;�����'�,��ם���Ѵ�)ŋrfV���=擮b�@�F o�1���ƿ�����ҫț��m@Z����-/��r;�YGٸ�����말�3a-��Q��E���|f�;C�sKm�W���
Hx���*������q:n��,�(�3XԊsTݯɶ�l�2i�zR�<�̮7F�#�nT���Ʀ
h���=���|�> 9*���j�L�
�0�H5��\L�Ő_�#2ͪ";-�"�y\T��A,\!赪BGI:���y��'���Sr�筃�r:�
�M��n�*����>�3�'�ѹ���I��=�ꮰ-��<煂�V��7{���BՖˉ��f���A=���ipƕ^>ŷ�a��Î�J�����~��b!����#L�e,Zѕ۪Cd�$A0E���n-
z	u`�*�|�m��A�2�d-�WD\ {E��zj����s�����+JcdP�K{�*���l6�-�D��X%�p�B7��Uא�B��AJ� g�XwGB�R��2=ƾ�����b%L�L�n�\H�;n�@�)�WͧX�?5k4�>WZ_�,`���*Rzj�#a�X�� y��1*H�H�4��*��������2$���L#�NI;xU��E�c�x\B��o��y�w~�
8'��K���<[����/��~������M���y��xG�$��7��>����_2_������?;ν���Θ?���į0�>��Ca�9���c�?��@ZcJ�c����Z��c�I��ea���g��'^w��q�hG"ݱ/��c �h���Aq>�\���V�i-�`"�@��F���L`�ʗI�fL���əƜNLU�L�'�F�I*�P�u5��>�;~��{,.K�p�rpR
�S��}���x?�>Р�MIe�"/�1Iy"�l�s��/�jw�D�(U�e���$q���;/�v��������E���zx*��b�n�)��F�Ο�"(��!0�A5-cd��<l:�Zh�,��%'��F�n�%�+��
0���xb@�< �sG��`�+��o�L�AU��Į�1�+���s���9��G ��c �Uy��)d����`����?�7evi��T���s$�Π�����'�3�\�X��
]U�s�h�6 ��INe*��Vrg�/�	f�e�4�ȷ�܏���FoqO�(�bJ]B������N���ߎb���L�}۾e5��˲�A3�(�/��g�x/4�g��)����Ey���\�M�p��S��S��*���&Ә��{�����^�l�ApE+]I(��a�>�d�����{C�ie����D"c����#+⣻�z*���tc��Aa/7\S�-��{����f��$��&�,a%�*l"�'J���>zC]P�$�oK��T�9Zo�it,ƎĞ<���(�2�����
���]��Bʥ��O������A��=�g�1�y@:)&5� �T��ܧB��>����.��i
KYCm�ZÓ ,��l}fLУ��ƈ�T���i�|@lq�G�XwPW�C�2��#~�}�C7@{����R��
U�'�ϠPm��,��'��D;�sc�ZW
�;e���f�`}26��_N-�Պ�K�|Q���$��MZ~���5���x�Mfl�k5���9�h�Tx�
gU��׆@�ms���%RU�����+^
�"6�ͽn���o�b�wSu�ZV��
�
���2n(�	6u�j+_��7����R՝�.9�CN���=yĶ�}��@�P���^�̊�i2��d4i�R�5��\R�֞7����?kz��0jqk���!�b������@��]�m���V�1��]�V^4Qk��&c�_�WI0���&x��\ �γ�pP]�U:^��-h�
,����c�MUZ�\�넇R�[�����UBi"6\��M���*�3�5
I`O�������8y���s#�
��:*��s+zX2@vj�Q]UƄK�xQ�	�	YV�b"lHG����XRmmbi���OF�t�ى�$S˼�����ۊ!-�9(�|�;�f	���� �f뮯�<<��[�19��Bι�w|}��o���ݏ����D��_��{����I��y�/��9������Z��o<D'���#�?��o0�x�盿�կ3�x�̛νg$��iY���O���΄Ur��Ǡ�h|�@�
�����l���P���J��;F�j\A�$�*z�z��1��Yz�P�I�J�!K�E�cw
�cMۛT
JA�AO$�U7�2���e�#�Rm�n�
�4|� c�x�$����Eg`��\x���sY�EmTW��A�}sf2��K�X���$"CZ�N�Ӵ�*"�šZ�����;�er���)I�@)l�˕�j3֝io�ļ^�+�_ss��ނH�4Per39���	Kg9k���M�k��^�[��S�즊�-sq.��`���꼑cƍ�#��sAW��#�;(
qKq\���ܧ�s9��@��;��V�l�3��(��jME��+E4��(p�!g�L���V�TEw�EB-箰Z7^�7!�8�=�,�2�Yb�E�K�D�2�3iW���"\���~��R㘼�����4�y~��h}ɩ�${��"_Pr�A�]�@k��&G�(��N`�J�H7v�@r~h<=K�X��6�ɲ����`y\�qt����y�D��&R�HNWr�G*�s��j�q��3�"��C�B*�qt�<��*]i�$m�xNjnb�&��q���y*rK�9.K�N*�r��	�J�Wj�����q�D�B��F�t�i�H���幘=RB�|u��dF�� �'�ۡ���O�T���9�#�S���b�ᾟ�#%���Q���>�e�q�P����v�йYRØ�[��q��~ru��ޥ�}OJ.�.�S�:I���we_:��>�)�x2d\c��[d�
g�Ե��u�%u�:�+�&NL`-�Ȧ�Gm�qÚa�}���1Z����j�LU5���дp�lL�S9v/흑�y��v^����n��CO%�$�� ���;��w��ZU
*����l�LB
�k��֌���F�P�N%@$W����+�����+��0�mx�{,:���A�p��U[W5U�멤�`t`��Ȱ�4�j������&3\����у+v}m�^>@�h��e�
��Y�?&+z�1,[:v�%Ҏ��H�?0��dɃ�w�"��v��
�	C���S��	�X
�O�1��2$񞜘}������	tn-�*>*�s>[�ڀu�
(�{Xko:0T��y@Ȍ�>�1������C�̧hF�m��0"�U���H�G��Y�$�Y��GY��z�<�@&��>�3D��>`�����������S:�H��x�N�D��;��w��lI�SEO���Hg(_d���X�
���Wy
��\�#J�������"Y���WHkjҷ"TȨ�t�5�y�Wս%t#B$�s�&��RD�n�����+K�12(��\�q)�V����2c��-О��?񸙦uA��o~��G?Z�F>_���?zļ��7��uJ��w��|f� >��@����i�gD�}�?�%�X+�~����'�K#90����W�;��$���s���FR��H2�!� K}�9�P�o!��̅h�ϔvr��|ei�%p1��I��-�g�X:��y��.�x�z���:r,
��U���kYR��Pl2�{�$)�|}��yTkH��X�/a�T�僁dNt�⚸$V��*D��b�j�|���ˠ[���9h$1f�~;#4�#T�b������Fg�h�]�7�xclJ���=�YEv;�s/=S'�p��y��>�(pLH�wfD6&�1�%w�q��ɳ���l�=��� 2g"(ƀ ����s�w{
��Y���D�<=4�	���ܵC���@(U�u��hnK��HeNFt��
�)j0��K[�I3�|�J,���x`�K�$m�8_�ʅ��1���`.�b.�Z��ױ�߆�	E��%j��D�0�����z�Lqw꙰$���j!K�!�O]@m��J]_MUo��-6�X�~�AR=o+ݕ�X�&�@�%��N�ߌ��ʀ:�Oz^8��=���Q��Gz�;iU�˦����W��>�XӇOr>4�k�1���Zfg�"�מI�9��d�����7�,�A��[�0�
��V�W�pmh�)/�g�e���'P��Vi�n�x�H�H�DP9���B��t�ݧX"I��")��g>?�k��E��F�iQx�&��G�`߇��&�qG�^jI8��}�v=
�Z�H��<�3�Ef�)�[ѨA�E�4d�������y<&���|��1�Q�Y��Z��U�Lf.��?FX�21Gw
�a�M�C-/�s���\�M��P(퉻3>4��1K��q��9��Y[!1ځ��f��t ����C���;r��w�J-��f�|^��_�K��/�%S�h������u�oN���8��i6v*�*֦�7>_t��K�g8�"��6��d�ܖ�F�Ь.J�"�#���"W�TE���0M�!��m�!��w!��4�|_͗�5u�)�<���z�	(\�)�Z�}1YT���B `n�����-�)�v'͂(n���;bRs�6k(%�
�oh�,+ 0w�O
�d���Y�>J,��n�yV���l� �%P�n�J�2A�ꨘ�:�σQZ��Fw#����W�TP�h��
+@�+r
\?H^��;JTPW:�xt�L�\!e�8�+�7�6�P��%�����8�����w)�Zs����qQN{m��U�6ط����1�!�ӑ�F�D�A�~�W��;��r����N������;?2]��u��!c�?C�������nT{\~�zo�;�w�,z�wU19��o-�״�$��4����:���=���B���L�V�c&,P0���Mb6d+���8'+�sϛg�}�a�J$���y��}����'�ϼ��;���oNs�M��9�}?����?pz3H�+�'�^a~��"9�ur��짌��K&�S5�#�T���$9���
\��+`�fƬ�Qw�R�a-pb@��
6�|����u��w"�:��/9�ة��]s@�¨b2�qzCpҺ��~Ѿ�4�Tr�=1�z�P�R"�²��1}�>�N6�U��*z	�G�M���t��_V��rt��G�����I`Rl��L���P-��<eQU�F�F����X�v3J�H�ʃ9��#��P$���6��J�v��;%�bC&#�Ք�����3X�I�gLy6R�76��6�Cs���ӛ��!U��5u�d�[LF�S��;p+��b��D�|Y��Cж�S��.j4�1�5�UւH|�|�6`�=�8*ܥٛ��H�]���dC���,q$���b&y�v-٢�����(�O���p��"���M�
S�9[=~>�L�� u\����}1���i���w��Ab��㡎�;=W-�s�[4YE�^G�9:y���QK�L�\�;qw��]:2n��q쥒13���olPe^�aEw���==7e��	�rj�<�I<��L6�}�I�Qw1�7b�I�`���B��S�m��A&�����
Zږ�n��H涢��wX�bW��b7��I����P�9C|.Wǟ��wqE׻�1�:^t��^{����
^��Џ�5�'�/�\�|P�*�7؀x&CɜѠ�j&��0��0���tM��Ұ����Bl.��vd29��Vr.,�V��BDo�*��Z����fm��ir��I�h�c���}��L%(��Hω�Ƌ�]�*�8ia��ST$��\59d�wm��1�9�G�z���r� @�|CG-�߁B�K=��\8�ft�m	���Y�ͺڐ,j��
'I����V7���d\6�-#(����VFU4.��M
�e�&��W즥gɕͶ�VC�]Q���Jn
��A�g���Oz˨�a$�=_z0?�>�t/������X��q@�v8��SdV�"&T*�έX�ĵ��rF�t��O��տ��hu�J:���5�5_朅�#�j����ջ9�gS{g,TIn��/%��(Ѝ:!��ꭏ�تʺi�
���͐�H�d1�J�w.&�~�5n�:ɽ�B�Bs��&�k�La�:b�#�Z����/SC5Ai����""9�ֆ��d
E��$	��m���=T�P4��
�
6�dn煦�ߚ�t��ﲥd5�K��z}B��I���;��>���b�b��\xa���7��� e��}O/���H%��x�}�	(}I��A^ɷ�|���	.�3`��f���T���IGc�MK��S�E�)�Ȝ��|����s�\�`8��f�6-�YR�=��9%Z�S�%'�
)��yz����x19�ܳϙ�~�,��� ^��O=n�}�x�5��^"	��ws���}�Ig� �r&p��w_��y�?��o�Ɂ��@�ӡ��T�2�c�$S1gR���:
��}j��X�c�tev�N�.�Sx�*v2�YBj��>�Zu��:�|ʯ��-Q�5vl�H}��L��[%���7�9��ijZ�܊1\ �E�qs�D�z2R�sS*́����QL�30t\;s��@��H�һHBu���u�0��wn��*�V�ʙ�A����墜U#�	0H��V��͖����y%���`�/�&�sL��C��Pw.ϕ^�L�@1"�@�x��3|���/X,�v,��,fɢ�,6
#���Eͷ��G��4Ņ�d���X�@��?�A3LY���ӱl�.��8~����gr���C�:_�Yo�:G�P�;L-k��u4?_��mXM�HHEPN�k3 ������U�M,s�^O���@j(�g瀼�(g^1pM���b��=oJg�SU�sc�.e��/y����	������5Ɵ)5�z�.r�w�����B�R=k���}�cJDA�ƒ�&�o>�$��D�Y�2(��q��w:��v9�+���)�s�7;6�����q��'��>��$���v�A�c�M2jy�Y�d�	�=j-�V��dp�ug��B��
He2���F�xp�%�f�5�!��ob�!�]���Ff?�&���m�i���Ǹ�>cC��G����
ǒ����=ƤZ�4�C���w�Iq|�{S�#�����w�N�5�3��c��9��2��8�`�P7�ѝޘp�=,���>{/�j/N)�ѵ>2Wx�{=�����ם:�-����.����a5�9�}����g�z
c�m�d���
�����	���(�eyq��Ԭe�Ԥ-VYk�%'M�=�D�
�3�|3.`�%����୺�Jɹ�R-�kf=0��J_�̆�����7�˦�NM{1K��$덞͗�C�\��H��̈́�J~���Co���hwj�+�<������H"�8N4�;�ym�Y*���9�ҊOƤX�}��*�K>�2d0��Κd&��Hn��A]ѱ(5/���*�I_a(;�匬Zw��M��4���U�EZ֊�{�
�dm�[�q7f}�z:Zy��iݑ��Ne���9�5�o��ḡE�\���6Ĥ�:wW����Ѽ�@���;�S��|�pLj�Ӊp�g���g�jX���A���'ȉ?��y��Q	L�H�=Bgs�0�µ���k����XU�E��(09@F���7�P�|��R��7�&����QIEQ0�ိ/����>��m�	��j��tAI��O�]�#!�\vPA��Ԝ+�F��0k[E�UI enlL��/g'�a0�ۯ%
�ǝH���H��d�8�:�T��0�p�i�6�
��*`��_o�&�I&��$$k ��ț�YgB$p�i^�K	;��k��66ci�HZM�juR�]Z�/� �S�!H���0,w'b��z�O��M��ó�=gnoo5� ��|j������	���c]'�{��?>���o�rC�˃�Ȅ�d��/5�O|�@�����'��#9�+�΁�|���->نġ�ew� ���*�>��cy2�MY�:�Sg!Ď�9�l��WfS��'afA����ȳգD�W&�\�8KE�2���.&�ٴ=I}z.́�aԨ�
け�S<�m�N-,��o���05A�u��'�a�fH@�
�f��s��T�a�uKף�A��7������}V���!�c�ՠ�Ɋ{,>��Q%a�t"D��H
-404O���kG���KԦ_HWȘ�y�����lJU��U��b���ҝ��bL�O��1�sk>ÂU`1�0��������gM|�+�gVLa���3��9�H�Z�9�9\C�+�I���!�o.�)y�S�hpo{%`ʁf�lU!-��T@��6b�yxA�r�|�DI���9���+���L��t<Jf��Ps2���9u�R�DV�+*>JK= �N>ϫ�#�^H{��7ՅUΑ/� �M8��Ί�I ����L"@���*c�Iګ����GCqTsȇ�p��kn�*Y�gF�2��d�I��
���}?˰�B�1ɚ
1��-�\��*�;�ڬ�L��6�[W&�ӧC_uV�M�˘|(����y�e�:d93l���\�T�����uH�%_<��n�󦋜��y�q0�/(�m�P�Sy�ƽz���C�ַ!^�s�	���8+��5궒-�g��y�����8��e|bC�#/����v��`k�U&��F�c���D�,���ܷD6����:>v�\�*K>��u��I_T�2��q�_�E�W���s�Y/m�6��p��ج㍫���Q܊���`��(^�z�h��$ʿ^n��f��VQ���2��m�
T�+L�,@iQ��}�4~�oB4��/���Ԗŭf�J��`r�[�jy>�j�	��-��a
Ho�Yj�S���u�G<
4��kg�Yd�\��pf�)��`��	���S�5
 �k�Fȧ�\�^h���Z�.��z1"�j�|Yj�k+;@F��@MN0~�	XP0�*W�H�d�
��>�0����*���UD�v�`@�r��6�†��$��W��P��2�m�a���2���7��o^��~PH�f�@s%١*�q|ȸ&jO�e��lf$߻�;{��*i?�;kc!hu@�r,HxV�W�1��b�\hF�ծ@�
Td�<��ގF��y�K��S�
.��W$�
���M��]v�k��k|�X�E'���Y��>�j�@M�*��x1�W_TD:�cA�\X"s�}��Uℭօ����Ը:i�n�6m�.sue^8u�����x����H�
�A 9�볖eX&���p����/g�:u�|�K^r�s�&�p~�N���������c>VC6�������{�9�oz ���7[��+�Ԙ/x�:M���K�+N�̙�m0�lr��
�c@��/O��gj�6
�<��>H+Y�\5%K|`)��Gб�w��
�z/�ڠI���T���(�':��8M+*i� �=��
��MBU8���*�Ų��39~ʛ����C�p�w6��2��_�W�ď`Z�)�(�!W�N
�!�FX3���ΤjxG9�d��%�1�2	�ω�
p��8�/
NJ��j�D0�qj"�L1�ݩ��RHhe��φ}̂a�r,�4q�u�@[H|9Ӂ<��F�TȆ�\ի%eiEpg��zB� �==���PsP���.}��:��h���L/d
k�c���$K�`Mg~�������òI�\�R#BA�]������3�P�-��c��A2'��@�.�����JI\��E�^
6��#y^��(�����@q�I
LUCGi�"ɦ�a!��ZIc�̄�x�/y�9(��͈$4��ʓ�T/7��Q@1�����.ި� ��4j%�g��A �k��W
B,$ڪ�Jν<�
�<7�3��˝x�C`��| �V#�$�z�d���FIw�U�<���:�CbE@l�h�;�u�N�U�.�k�5/�ԭ��'�L&�a+Ŷ|Z��}��B����:���8%(眭r MF��܂"X��(��	G�x|���ٶԍ�s�y�Jِ�J��-B%-��x���mY�s�bZ�y}�_�9��%>�����&j�6[�;/I
���>�\B�x�O�[��\ɧX#�4@�YX���&*�($-�R
dk�%�V�Ņv�{�Mo�H6 ���m1�*�j
=$mg/le�;,�ì�Ϡ���
$��Z]�Ca+L;��
�o�$A�����HM�$p5�R��J�N��ޖ
>j��}-*)��]4�0>�Hn%�d�3>/�7�%�v-��2�*-?��]��BI�+`�����Te��~=��-S����<A:<���gyδ��R�P��)@��u�� �Rp�r����2o����A�I�f������$�AƤ~�*��,w �ܙ��K�ڜ��� �q DD�N�R�<?6o�M܂��`�1je�*�.O\�LA�A��;���}���M�r*V
:5.e�Y��)����E"NUA��R�Ӓ$�]ڊ�|1��A�5��@+n�YI��'�mf~�q"ƚ�XP��؜�mC�]I�,4����5��ަWg(����%A"�(����Q�:j��N^��us��.���Q�a��R�/�j1_~����.u�Z2-հ�;at�{�-���MAڡ�*�`ӽm�D�ay�,Eq�k�S2��o��Acz�
�k�k��k��Aw����b�Yr��g��~"�CF|٧��?�#	�O~���l���ۿ���p��̱P�QV(� ��I�w~`L\Gr`��<��G>��<����1�k��S��=��i��g�(�`1
��k�B&qj�5k��
�L�@�mr�B�WC���@F�7��d�}ҡ'�@�S��bp{əP��F[i2_��g��L��`ck�Obr5=��	r�c��8Iʍ����T��uIsg�{�TM2H�
�1�Ez�S3��a��}r`��H
��t5��$��Nj���k�G I�����q���7e٫:>�la��
D�.5k%N���u�;;R���BN9b�fS?��k�r
�c�[&j��
A��Iރ�w6VMTM<�s㊯ד��SŲ/�l�|"vs.�?L9��2Fqm=�L���eW3�O,ԛ��sC�=S�dY���R���	<c��f�l�.~
��
Ҷ����M7�1.!�f
�h+��T,Zr�Aǖo�Z�
�s.��?��B~���f?}���pD%����E�y�ܣ�O�K�2�L�r�|@��5�}S��}/1�#H׆��0�nY/��.xkJ��p.��9058�'"���>J�lf�
!wZ$�%dic�@�2f��(;�띔j�;����k<���Ӿ���R[�󾑤7mA�l�jD7��ZከZ�yN����D�B�����SK�6�#)�L>(rx=Zf� ����6����gj���GS��B�3���6���굅��BO
�0�B�zl_h��9P|f�:�iZ�"���D��o�wʈ��L�]�1��c�F���;�9�ύǪ��<p���"E������9rG�Eb�
v\���ܕrn�=���!;H��1�r��,\��:C�1�D34|DM�:Pe��&'P{��Z�D�퀞����SsY֮_�Jf�L�%�r�D���K?�A�g�N�
iò�qb�ue��plG~��7��FIʇ��i ���gj��	�4
<��04
�a���50Ǧ�V� Ն<9;�M�ai-�opp�5�+ �����Cѹ?n�U�c֥e�H^�?��t07���U��,UEL\�cD�hC-bq�
�gm�\*����A��xZ=���;��7[��8�n�I�+�K\�$i��&+?Y���ٶ��ٽ�>�^��'�)R@���)ؖ���
؁*Hd���8�?.���lA~��/�LKvB�PْcBU�N�� �Ʋ�ǽ��zNvw��s�^��9�>	�,��:{�ի{�1�CA�b$�l����I�'�J�������Bq�@=#�+k�P����#&��P).��@�<u���\w��5�c��4�w�0�Y!���ծ�5�A��lL���!S~�p�
�����׾��//��;{����o�fu@�dW�����& �a�;�L�q0��i�WG��e �@b�!��>h��oB��/���iҨxۚ�VC��_�Ov��R�!��J=�т7�m�%�f�*P�8m!sQ��v�_&�"7�RX=>��!��8�{�Օ醨{y%����[��s�$��qa˳������d��&�\೨�8K�ر{mk��3�dr=�$)[�M�{p��Vh�bWM��8>��r�����{{s�a�U`�́��
�z�OH����S���	�K~�o~�3�'.��ݿP��釓(M���������	���#_�s����
��d<��?���.9�W �H��U�!9k+ؐ�!���K�r��*x�[�V"K��v&�@��~F͎���O�;tiT��rv�&UP���6���Y��uc9��Ո"��R�"�?`R
�J|�9p��;��d�`�k�B���ﵚC4�D,R�{�|��LU��$�4���-d�c�j�
Q�Yk�#�ɨ�#�e�M�>�^�,�#��I��u�%���O��?�|��k����D%煮O}�	�l{�C`�n�_2�RO��OF��I%��`�Vպ٤���Z���S1�#|"��R�ԸѦ��<���5�b�-b���ƻ�:�}����J�m; Jv�#ط4�Zϐ�t�hZ����+/�Il 糡^�o\�뗸9I��T:��ަ�����&�/v�'���%����u}AW�����
@Nu=�wg�NL*vX�)�2�i�g%�Dlq��^�	��qV�d^d�wlj�e5f�3�R�n;�9�6���djo2�Y��N�<�!s��n@�#�W��:��W�rr+8�L�:�c�d4"2�Y�=��*;�4X��P�xop�߅|BP���_z�j�C!#JMD�<��
��F[���5��(�g�'{��.㵳>L��#��H��n��H�}`���/W�S�����e��k��(����vg��k��]��z��s�I��X(�����)$�
i*��JB`�q+B���|�B���x��l�X)�yθ�C��6�����0[�}
��cl�o���@=����Ǧ}���y��O��g��H��5$-���Κfܓ��{Ĵ���bvcی�
]��`�m;h�:�2c��ц= ]�W�j&���-yR�tA{&�m=�cgf�1�V!�<�S�IU��2����51bP*)iQG�S��Z!=���a�6xm;��!�B堇���ۀ�Q)���S%�؉k��T�\�V���V���YV���i)R1�|���߅��������aa�M��p	>p���m�D�A�UtgV*I�Ϻw$�ު��?x{'��?'F�\��+��G)�y2#n�9����Hh��+�q���zw�T���{c��	�Ƣ���y�@Y���{���ҩ"���-�{�ןɿ&���S����D��x^�s<�R�+�;Љ!Qpl�l�"�K��|����c4�`��ԛ9���!`F�9�\9Lc�'������3��ԁ���'�{_��|��['�\8�">���slw�A	*�m
Gd$��X�4h=���:�%�
�Y��M��`�~����
����m����%�[��>�a�����x�(�ҟy5��%	~�S�Z��O�{����Bp�{��%s���=_��"���]!��k��j}Xk��
�[�H�n[�\Ƕb�(���Fp��Ϩ�_vz��Oi�'��7h5�A��#{�2`�R,����%�P��쯃�Q��\��Q�[�h*Pf�l�UBY��'�vM�&0����m	p�'��@xv��@iK*���3!@��Z���&b�gB�g�}�H:�Y{赦	uf �qhDׁm�s�pZ��yd$X,��SA��1��V`H�x�9��<<���̄=I]�@m��]R�
�{V�o?���V�ێ؎ӎ�%N\��zHU��
�5��~Ъ�EY�$�H	�C�6�7@]�	�{�����=ptyn�~��q���A��=��������$%hb}ICݨY#�g'
��u?Nf�#ь�[�!k��g��G�i�Lh�)l0������vk�#vI�����g�B�O-���0�C�D�,,��H�s5�e�gp��>s�Ih�Д��D\;^�WIzкm���а�;����56�Z��i��OR���H��)�u����}d�c%�q�$qxn��H�����ξ��m�3;���n��i�to���E�}��F
=�W{i�m�Z����|�Ӻ���%�Ӊ{1&\��ā�u��V��1������z
�y:Q��%���*z�	�C�I�����߳�����
x|�p �PH(P�ځO�����<�q>�f{J����/LRQ�T�O<=`6�c�9a�
A��gɭ�D^e��>�dh!���d��0S�	��o��8)ErOg�kö�ŧ�
i���x�'Q��4�US���&�	w�)n
�Q��
�-cUi���t���Y��n�6��baT&O��>E=Eq�l���G+20$�r�P���Q������E;��fcL�x6����u�Zx�|�g��w_-��}[�zmVy\��T�k�}�Ќ_��̈l�X[�(ְ鲡J�Y����+��Bp�|O爢��p7�@��،��ʾX��c7���
C�l�Tm��V0��x�>��!$���u%�
��nTB�ځ�>�rح�-������`|��H�T�/�XpD���}~��9P���2�IÞ	ia�H�d���=��9�g%���H�0f�r�[`�:G �^\%�kΆ8�{B���Z���GdR@�R9"��=��Y�`�~��p/kS!v~�*R����3��>v3x�fn��LJ�,��A0=�'�m*dc��Y3��&wfB��}_�ABx>r�k�bhC������~/�?&	>���^��O����F�?�W���{�#����ȁ߸F��<9�bC�A
>�&s��6�	��OБ3)P]���q���L(I�|R��
�/v��k��%�6�f�Q���D�4>�x�#.�r�L|��O|��{Ɇo��9��CP���G��sj`��hY� LA}���?�}Xl3������x|Vw��MJ�x*

<=�Sk�2Z�a0������W�[�*���!��H�ﻔ�/�v���N"y�*L9�i@V�
���c�'Y"R��I2�n����l�k�!��sN�l��v��̓�?EU�����9����v ֑׭|/0�h�/��3�Z=}��gՀj~�����s2�� ����Ґ�@��c���5�Z�5T��sy�X𐏙�u+�����wD�mT�/�'p�z�<o�Nr`�Ů1@��њ���]��ѫ�k��H�6ibeV��Bۣ����;��.b[�,��*���S~3#��8E���%������@��k�kN�\�ȘF���|V?w
���5.{nd��$j9�u
��~�e�i��<h�
aJ~ߑ�#x��&��<:��$72
��{h}_֡j����lG�>Y��ŠE�N:��F3!�
E�r�0�Z�-�.aƋ
=��~�ۉ'���d�:8�a�1
Y�NL֭Q3c�B�)Ŗ��2�t ��q%�Pm��?v����|n�M�/��6+���y!p��硨��}8V��g�8	0B�x� ��둾l���U�/�aȚ��bn��*��=��٨2�7��S}��k�&|�~vJ׋�m��>�eCșA�|��o'f�fd��}^b��qЦ�"����me,6QË��dc�y�O�a�\��/y����ީ�u��'����ٸ���m���}�z�k��-Q�[�r�i�D$䤪*uɀڙ� KC2��������暰!������o�t�D��$��/�)��$�}��)�06�3M^���O��#U%	o��-\
���hS�J3+O�Uژ�#�x���iH�\�,��]K�G<����M��PcvE2w��a+`�#j�a�((����Fpfc3x	 ��=�_���CR�js���>A;�dRbI�@aK��vSȮ�窠���g5�N>�Ōž_	WE����mS��n�{�)S��k
�؆��j��#c�
N�!���P�
96�[#C@�X����q��j���h��<������u-��ni��=[��fQ�*��\�z�$�>���Ȅ	G�s��"B�2�~��!hH#���؊l
juS��7��\���������e�B��!+*q���1�A�g�����PU��Th�g�x�$�{�����C3��&������&�6$��'���������/��g�����Ѻ^�ӟ������~��9
^Ɂo	������B����Ɂ�k��{��"�V��Nb�*põ�Ӥ��Έ�H}eeB�Դ�A��6MاwO@)��� �%<<��\N�x=j�@,�����[?w�:�>K��f�����bt:�NE-�U끱�����@��ɬڌ�*r�Pʳ)�e��!�l�y'
�
�@jA�`Z`�>�
Q���2���g�_�3�kzM�˩���
,�8��X����<��_�qi�&�%����^����Bُ��'���k��u1��'������|��k��d,P��zƙi��M8�o�jb�-�g�#�H��'S��o��K��	G�����QD� g��j�bgT�G��LJ�}�������+��\����Y
Y��|hϹ���vSU��R���M%s
n���o�G�|��=�����}'l�{>�UAkgk��N��r��\C7�u�8=>�l趺�m	U^���5L�7�h�ɤRB:2(�U��gs�eíS1qy��X��ͧ�լ���Z@A�0	rg��{�l�����&�ձu�sy�ZE��˄�-�pT�
��}/
�:NnVBn]����ְg��g��A��y�I��G
��3~=��Z�����Яx��o|���"xk��B�:eu�/�J��ݡ��_��5�,y*do��f�߼ǖ��֑�.��L�\��ҎS�U��X��,�vz�%��?���<���a4d��e{	�A����XD�r���yO��<���!J?�0��
�ȅK��՞���R�/�24�Vڜ�φ�U��,�V}ֺ;[�f�����d�i�����	p�	<эlY��,���n�h
����ūKԂ�;�f1����G��4�O��L��q=�?��vGl�nD?_��#o8cuS�1�4�Q2Zc_K���nj))P�R��/}U��V�E�?�2�.�!�؝�x�Ʃ���"5iF\H�R����^�G�F��
Hv\T�t�P	���Yb�<��$`8���Lֺ�x<���WY�ԭ/��ud��[0�����w�F� �����Dn��:�翄M�0�:�����ꋋ[����~ǎ����EFl`@����c�V�F����y�y�1�'7��A:ɔ�}����qjg�1��&V�����=Q4t�_0���%��xRt��>��ߟoΞH�ՆL�h�2NM��x�X���Gm���3�uR�@�8S�?�M&������蕱��L�/f
 Z��l��
��3O�@�@���>�y��RO�M�w��o^��d����OE45��
Up�����y�@��*J��&|��d�չ�Y�����nyn�AUV%�o3�5��A�W�<�H{�3� F <�~�����o��B�؟}O�����$�/}��P���߬��'~r��w��y5���]r�?�}ჿPȁߞ��q|[L|%?dҼ�tgTo�˳�l�D�s�id�qКT0��R?C�?�{ա��R�WQs_�n� �N�m����(lD�]B�j\T��<_Y���H;yo��i��m:�>3Ұ�U	i�6{m������Q`P%�H���79�F���1�ة�J ߏ���̛�,k�z��L���]N䭓l֑���d�g��7�B�ڿ�:��N��oϼ|�0�6�ό<	rf���[W�#O�m�1܍jUt���g>d��R��d�Q�a�d��
$�	��`�|�W�y(�Տ�g�����+���Y
ۜ�
r�V�J��Z��3��`AG��)���uyvvz��Ap���P���E>k��u�{Q�۲6^%Η��ztE1�	"�b�ʭc�2�_���b���[�����e�G;rmT{@�)ဃ�Q𗴭���.�k���{؄�
*��~.ӤZr�4����u��*�oq&[�U�\�^��Ď�p/�Z�X��rfb�� t�ˑ��Ľr]���֜�N}�_���l�p@z}s���Zdo���*&�a�U�SH
[���V�4��$\�d&��HΪ��� �^Xڰ�ig:a�Q3��L���`ţZƅ�*�9�s�!�Hp��
`�J��onD:����x;��m���4��M6��fwM��u�� g[v��>��ڿi'�eB������gBH0)�=����X����I��p�d���R
���F�N
�>2�c[��޿-`s4���/��A���0{�xOh�`W�4xV����ȎF%�&-
� �A�@oE0�ac��G8�=Tؐ?R�YG7T�1X���@O�'v��LE0����G��VY{�]��a��͠(;2�L:>��Lw��򬰟�4b4���8#�?z��^B�XFm8�"f����D�'
����*��k
�}�Qf��
�aj���{5s]������̎[[�s=P;��C@������~'��J��>��:�(!b؅�AX�\슩��#�D�&�����5�,�Oj�3�"�q�C��W U�o �)��U������
aײ(n�v��65��0�7֯,z��Y/�Ҟ�PC7�l���-)g�o{��?3����Ap�~xr��z�;��}����@���1��}N�y���É��@3���<9Ea���@�5����S.��/>�,�bhM��q�g��"]+�l����Ba :�=4ra5�M<�3�Bp������D��:|��}���$����{�����;�o���z^����F�'���7��??~��
9�C"|�5r�;o��ȁ`@Ib�[Ԝ嗛�s�p|^�Ґ3+6��b?C�E:%�CV>GА�\��̞M��ɾ��	bX=}ٖ�N��m��|�����$	0�F����`N���l�Bz�Pp5�qbl��*�l��m�{nD�1(b��줏S�\f��g���$�����R2��t�`��ၿ,i>'Bz���[%���c�豀F'l����B�ayr���s��Q�|�Kh"���&t XG�d��3���L��a���V0`4��>�#�v��]VY�o�^�#j����:�0���L��)�h��G��JfD�?����ד�N�ė�&����.ǰ�(A�f���N�ye�y���۝�H@��H��sB��ŗd�=6G)��‘ �t&M5��3� �a��~6`��Lj��Ģ��}�h�ˌ���ۭh���mGM3�/�[�<�g���)l��:���(�~_){>��W�nt�7�J��� 3!G�.v�E(p3�A{9��1)�q������1J�����8�'i�l�?Ss� �K�F��f����=�̂.�����`[�������D��4�¼?��w�O,��?�������M���}4{�>:wF�Z#{4�`�0�KeQ={�&0�YDf�Ҫ̏
 �!������!�7; Sg���x4;z��C|��I��V���[x��WY���$�*vj�@�N͍g��~�`'�nzt��N�ʯ)����7�����
-Y7�e�8M
�\}���	��+3vRGL��J��?'?/ej�}H
�1����N�x���C�1"���"��Zl����<R����LoY\	��� �/#3VX�~���u��T�Q$y�p0�dU�XNv��'}g�~H��

�u�"�`�p4A�5�A��#��7u��Z�[Z{W���=I�A���_�����>[���X��N:xb��k��,6!l�cU��қ�@��Z6��H��;���m�y� ��:�ˤ�(�e�*V͓LҰ	�_�Bk�P��H�?ރ�����}�8�&k��Gέ-�W6��m���`[Gp%�<��V���͋��[��4"l��u8>c�����K�H�ب�k�Yb}4��L�:��g�>��x��>7 F	�
���ދUE_|WQ�F�����3v�{�2yV<Co�~W����Z�ۺ-`����
BGtֵ��9�����������,�p�BD��jnW���`-������.���x�pr���o�j��7:\�܏���
���b�_�$�/�W�?�RH�˯���!	~�	�;���{3��G>>���
��gvm�~�;�᥸U�~-�o���Чt�{�
�
,�F��Ќm��4�r�Z~�72A(燭ň��xV�{9���>@w��V����Z�,��J�6����`ey#wA�Kms��m݈�b������ak�i2�Ȃb��'�?xB<�)��`�
0��:�Y���ū���!�f��A@���VZ���}sXi
�ާ��g	����"�D'=<�4pWΫ���v�c�0!Vu��)_��H���VL���T��z��X3UO�E'G���QtN��N��k;�ڳ���P37"g�( _�o(u��[��"[�X��L�lO=B؀>h��		d�L�_���{��T��x<��zJ��R��D��.�i��4#�m����*nߕ[_������U�0>�=����.��MS��~�9���eV���8b��zO���J��a9�6�������6q��
��{�I��6c�"=l���8K����:�$��C=���̊�A[��Yr*��S�`�}��
U5rL����A�yg��S
	��ٗ��mu;6#��v׌L�D�K,�Ke҂�ȹ����3n'�9�(+z�^��XW��xө�O���g�Lƾ�B�"�W��J�Ǟ�<��_�בsa6o�)��=/M��,�Vg�<�`��Cƺ��#S�
����s͂E#zD'�|�B�77�꽻�}0��$�n@}T�����#��b;4z�[�]���M��}
������2�4���Y��t+��V}���:d0l�'���
,�j�=$�<*��%uTQl��wD�.x��_��llNm�63+�9�����4���փS&Y��ٮ��x��kt$���^<�c�b��,dl�n9�s�N�rM���)��a�\�z�8b���GZ�q#%�W
V��(���Y�;^�w�}�zH�x�6�{���`��Åi�ar�=SG��)���LU=���i�
a�<-Rƅ�yV�]��^A�z�א���fI���U����5�Z��~Y�lhv8�BH�)�L!BЮyQ�Gw�.8^7rۇ�	�g�G���B1EV@h�_��X%�y5X
�����r���&���4�>Eq{ e�ޞ��H0��w���ϵ�Ibe�Akx^�����5@H�����Sz�c',$ʿQw�L��fj�k�q�5L2�b��~��G2�nw��ԙ4�r-W�;	��!d@�#�}3�q�ɉ%|I�ŏy<^0�,�Ȉ�t]�
xU��%4��X9����H�	{���bBL���m�sXޘ�z�g^��>_G^E�<f��xH����B9������@;��uK"�&PBw�4����� 	^��k����>�$���+4����Ͽ��_����?V�'>�_��:����=�d�����g��;b��?���rr \!��1��]����/��F��Ȅ/����$gcn�7q�\W�F	��ԯ������Ŕ�g�6M$Y#��.���^�7��O����"��E���./pi�c���ع�����`KxX�Ε_Sś��]�nR�]L�yh��k�m>�f��M!ayo/���_jQ�{�
�&sh��/��H� S�Amjd[$��h���:Q���l}-U��k��i�5M=bIw\T�Wí
(Ҭ���n��\����$�G��d��&�������/^�F�Gf�^����Ϻ�����]+U0Qj�3��rl�u��X���,,�7&Ḵ
uB���g�Y��#������X���[F[y�U�4��,�K%'���/��׸\�C��*P�{��1%O�F�@��,�hU`�g,��Es��
�\��/���2�{��3_���w��X���3���_�_M�Ʉ+_�1��l��#X��k�b�!*�8_�m$��fWLl��g�Qǻt�g{������c9S�}u&���[�9��d���%�?�=Bzt���N���l�"{3��]D����ޅE�ʊ��&�	W��(��ʘHoo�H�Y<]+\%@x����{���@{)f#��		_ExI���,��ǹ޳o6�-�Љ�`�uC!SS�5���3.�I�
$�Ƃ	8��o{M�od�}&m&��#����� vXي(ֱ?�#l1�q�f.��s�Ҭ��d��FBz%��NA�s�p�a`��ȹ;F��瞀Z��䚷��/��4�4r������q͸�T�}
tf��ߴe~�5��A�*R����ZX�,����b�H�/�m�\�E����J�ZṴ��H��)�j��Ԏ�/��cW��]��hJޯ1�O�[;�������bPE��4˹V5$ܫ ��	����M	7�����k���H0(,��z��U�rw�_L�� h�cL�	�0*جEK!�Ϩ���D��%|��Q)�Z!G�%�k�:��1��hՒ�'��w
���ؿ[�����<�ϔ�ђ��X�m�ü�tBO�[�7�=
�	]<��jM�����_�`�6r�fG�i���̃�+莶��	@o����|��p-��U^L��C�y��6�&�!2.j,�C�ܺ�;������큑0`�wK�	X%�,�ľ���~)\=��1[{�A���3	��E|�G%��i8�	}�=����Qs�qA}��C~m����z7^QW�I��-�/�y���U��J
�a�2!@��Ѫ�9�Ė>�סN�3-�R1p��L��
I%�zHL�2��?�[S�s��Up����-[M3�0_�,�Ü��%|;=N��=υ�Ƚi��gpf��������4=����<�o_���s���!�_�������'~,� �g��9���A��o
��a&��?��������}K)�
4�K�^$���g��<�d�HI@j0ghF��:��Cn
Pr���F�k���+M�
��5���"��O��Zz����9!*�QBCv�2�]2e�h.��!��d�}��(>�q���5}�z��l/�a��;����3M��f"��Or�
�>1B�����+`��-}����
`�$�����ڳ��@0��A'���1�؂�')	q�ۋ�_�q�)���#�G�b�4b��E�N�4��T�+��6�ꙴ��K��;E�w<�]hJc����Z��22�Y[iz���e�:�h���S\d��g��9�a��I�w1t
�q�9ԭUK�(�l�M��U�`2k<�3�u��OD`��$~��~F�Є����{Q��|NT���f.3y)�8�!�^��/�~��k�GhȘ�� �,������OO�v�}]�l��6���Lv�0�e�Z��Y��qɞG��J�K`�o�^�-��Z���mo�[�V4��0������
�q��q,�Km����L�h8(9�X,f�j��T蚓Z�5Uz��מ��w���4�{Gu��6a�ZNb��$�Ʒ����o���-VK}j/_F�uG2�(;�X�\�d��w���ɥ
�g����H��av_;Z��]+^h��}>m�IҼ��s������ ��{�<�ȀƽlK�0��ߊ�A�ܝg����50x�"x�(K2G�WKp$��i
�J���h�`'>q���N���\�{�����D�z^@	���0�6�O���)>�ds�D��"�AɊI���^t&)�"�]���s6Um�G46%��(V��:0�MXF��'S�3p4K0��
g�,
xbpNi b4�����[�
{̓j�a6�>�dUJ;��r���Oj�!]���ixDe�FU��W2�%4��,���W��=�ͳ��v=�U1
-$M<�͘{��6x)�ul�3 d���^��4
x���kvw6��c?��s�d�1(�A�C4ADڀH���jά�$�:5�g��Z�H�}A�l3��Ԅ˚�4=�gJ��3�k���&�D	'��+�?G؜��5�cm(�`����	��F�d�3�
w�������I&��?�˵��]����A')���L!�\�!�	�WR�Q��=���-�PKX���#��=�z3�d��B�|�33�4�m*,��l�jh<_[��j?+^��F,5\��]Yx?/D��\�n�Ɉ�0��l��Y��
�D@�0�'�
&&�6�B�E�n���`�'��>d:���{���2v>�Au������&�x{�������pzÓ���K����s����w����_�情�~k�{?����?�k��޾�u���Ő
��fŷ=t�;7��l�pP�Y�-^��J�y�i?�&��,�o��I��c�8��>�d}��8[�p�0�o�,���ޑ��&�� ��c�	<{�W�Ã�E�=G`�E�\w�ƚd�H��d|ym�+� /��&]��j�F&��M�6�rm���YZ���s��e0ia�N4'3"���C�qxgd	s�T�ڊ������{��*��9
ۙeΧuzTK���:�3��mW\l���@46V.��{f����^�����I���I	5�h��Vo�2j�Z�s��bS�J=E�l�$���\Hv`������(���JU�:3��iy��sz�241�)O�f���'c��?T�[=�����TOPq|(=b��b�S�DR��8�ۚG��{y�ua�0p�����X}��X8�~��T)���Q������$~M��%��)пO�f� ��xT�+��\�/xɿ{ν�usq�s��a67"&����#h>���F���OJ^����ㆃ���V��j��=����&�=��hgYs�جKui.2�����
��=�~l峬+ޱM2���H�"���H ux�����F�D|ޠ�c�DΖ�z��񴞚q5�"�B��i@��cw�~��l�g�.��������T����]�|/;$_���w~���I�!7�Yl�ъ'�������?_�P��㋱�6{ɑ�
̼�_TzV5�Ƌ�&����M�=0��Y*�=ڛ�n�K+6��@0:/+~���㗮����֠G�%Nl��^qa2��^#Vy�i)kbR O2�t�ȨoU��=�� �Tp�m�х���a6C�j�؛p�ꦘ��8s8�l��F�k���b���&$
�l=ϣ�o�A��N�ˆv��ǓE�XW�f-��LqM��R3K��gԍ�F���rj�]�N�~C���<�ōV�g��ӉX����u�H�	�'�]����1��zx`�ۣ�6�ok�ߛ:�ɌJ�7�o�:�m=k�u�n���	��:��2�с��� ��[�辤�(�Dfeө��L�Hc��Þ��>��5`bgP���BU���1+P�}nw�4�	�C��T
��55eݧy�p��B�0]6�L`�]�N�06>�9:��Z,=�H��7mΗNF��& #��c�p3Z�X��� ��1cm�8<W���t������z.J�lr��'R�:���S��N�[�=�YU]���wV���m`��@���g�e{T�e|8}��g�O,~w"����_��Z��=� 
�?>ܪM����r�I���3�k`�VG^����@�_

~��s�<��9�{��3'���&���s�����ݛ�$��t���{��ӿ�ޏ��W�����J\������;��VH�bQ�$�=f�l*g{��)�w�7o.��y��\�j'R��a!�}5d�x
���
K-3�l?'lșx�R;�����ň��L2�@O��������o���<�-�ɮ��+��Ώ���&��$Jl�M?A���d���-�L?�@w�m�f�&�� ����y_�7s�Mb��y�.gL{�IM�&�a8��e�:��.[��ϰ.��ϮR'o[ޛUa&��d���Y뽲N�Y����E��K�X���1�,v7��[�=ĭ��G�!��r����tYŊT�W�!��'nݵ{C"r�:�X��z#>�6*�N*S6�/?�)��)�{��j�@Z�*�h���F�����șj;�/Iz9Pk׵����K�{��vdۏ���mC�3$!2=q�������`�K������a����VJx>+x��N�V���׊5��V�Q�gB?�mGa�9��fYe8��h��5lL=-{w\9�	�]��T:�3�dR�Z
ѽ NBTc�)m�+Ic������YjVP`'�����9i�E���)�5�ez#���.�56E>� �}�:�փ����Pk�����Ou�>+!#���**J��Z��X%@��ku\�3GZ�vd�k"�J,�kgQ�;9g�T�A�ֹa:+q>!�h���~LW��<\�qhς��.�'<��e�f� �E^T|~�~�����J0�s��J�GrnGx.�n	���[��xqPPl0}�*
i�Ә&��f���`�Ac/hƯ�W���QdE|-@Uvvҁ tOt�`Y�(7��.��`�G�<?4�-g��>�ņD���c�`���_S�w��f�V��rЧ��I(�S	���+��3ߝA^ځ���(�v����&�f�|i����z�y���v�]��0�:��>LQ֛>��/͟z0�9Ɯ���:�aX�_�h�|���mmff�PR����Y��y+E^b[��af.#m)ǠLb �d���w�8hp7��6��*�CA-N&�o�6C�9�����F�����L�v��oidJ(��4(���J�g�P�5�eӀ{�Еj��2O,j�g᨝��н��u<7)L�~l���U����|6#��~���P3�l5������![����F��mx�W���tĝ�j���;��(�Z�_q`|:���f�����j'	^�*����є�����o �1^�_��$�|��2*g��+�L����Eu`�hB^��/T/���joh3����{�هW�j��p�F�`'(��?sA&��Hd��f����8��k�'���帓[w�a���Ϭ�X0�Pz
��W��5�{�З�ϩ�P���K�k�@��/|><{rŸ�́K�������o�ȟ�����#���L�ȁ�)���9`?
 H�P}j�u`� I?T��36{�R��@�M�X,5k��L}�-Jբb��=�
Tk*h=Α�S�(� �z�:2�����n@]ܾ?��?��鹰�}u�;b����\��#�Fn�}�6v)�J�7:��H�
�*>�e�A�Hm��2�����h]��W���d^sy�2��X��޷��D��tQG}��|��s֨����FY*⥰�A�}�Z3.h�u"	'䄳%��\cb!���H�x!����G�WRT�fH��%ej�90��Sa[�Uu~�#.7�tB�?E8.T�����s�&��]d��(vJ��Y��.U��!��C��u0��"T�,j8���������[@�2���3�bU��'�doX|��i����� �D���_l��
-���AAZ�R�=X�顕��n�H�'�{V�uY(v��z���B��6Љ�wV��:�C�zLDae����#K���8+����8o�������,����Pb�F��H���D>N����wl�{�y-�\&+G`sѳ�ɂ_�d����f�]'��t��f-�=^"���@�E���0��8UD�xNf���
��k�%�Y3�Q��fa�F�J�uy�����'v�T���H����3c�j
��A��6��ֈÕ@�|�k6��
	��5ا�cRd�@gU�>�ƀ�d�����M�N&-9��_������YJ��=�|�7A���#�󀍔�jK�$����ā�9�O� \{���E���=���p�%�L��%G��91�����⋜���/M�wc�l4��C��:���j�]�N0�b0^ֻܧ?<8�.~�?o{��O��
����oۂI~V�kE�F�'��%�4)\��Ԋ�`S���RZ��'���\�ѿ6	�:��q�b��f%,�`���dm"H�J	
�����A��MgV~w�ր��e�L��TȔ�
�� �q�6�m����B�*
�
o;�*��2�Ƨ;�����<'��h�`�V��o��_��YH϶n�d�f����HD�L-��Y{6`���Oj��R�QW0,��
�Q!a�u��@t�
�i�X��w���a����6�k�	����u��g}�D#NS�N�y���=����A�	y~b������(�üP�ٛ(�v�e��x�{|�`J�4u���z#P
[@��H�'<��;Q?�R��˞���Ԝ�a�P{=pVA�Gj�Ll1�y��
���r��d@��I��SRb"�ް�Y���CY&�:�D|W���G�� ��'�8OB��F�
"��W��FK�@��4�;����T���;��C>�؜��Խn�t�T�|��f��XYuz[�
n �� ���$�����o�]��o�I�˯���|0��J���7*��8����㋿���}�������yȇ(z�g8/̪�gR1��{4]"b��h�.)�����l��U,���I��w��d�A;0�5=T�0"u?_��bj`�FĪ�zVG�Yf�V�����[��Z)rP�ʟg'�4[�Ɔ���A�u�uذR���%k2�&{�:�d��r��%�Κ��Z���R[_*��_P�c�$#�{���?�?��/ђ&Ƣ�u��*�,D@=?���2giV��W^� �y%�|��y�Sq�%��Ʈԟ!�ʐ�f�A�N&DH�؞��ɏ��9 �,�����}G&4�%k�ް-R�,��aЈ���#*/���&�Ǽ���Ƥ�ݢ�x�{|�g��N<R�|&��L/�V�?_�k�Q@c>'�Fl�l�W�[�Y)ζA<�}�5v]F*6���q྄"�(�C�k�3�	�#?'���x����[yE&�8־j������M��!���IXŒxh¸�B4��;b �g�3��[+3��	�%��[�\?�_�a2�r�o�v���4mkV�ە5��XTS[�{���j��M�ا�QpE�Y�2�+�
��
���?��!�"3XfY��yc�^]/8���ٔ|F�&��0��fg��H��b�b�w9��T�M�lGvH��hY
<��X��V2V�v%���@�U��,b8�\2�K��S�R�9���+}p�D�=d���k�W��6����$�	>�lF���/z[.�1r����a��o�ml
_U��6tϗ~�(�+��lwE�$6�Y���l���*7
y�qv�;Ia�H�=��L߀p��7M1��-�EDWՃ�9qg$-��2��Mg硒���͔
1�*B�TQP��x��yg4T�8����@��+�3���h�WU��6��F�K�h�c��S���$�u�y��	�٪�6@�֞�X��>�;Qm�P���y�($�ۨ��Pg�q��3��a���rk,<h�����T����
�K��	aD(�Ԭl@��hn�z)�.AgmW�!ϗ�X����������D�^�)�ڋ��y0��dI�0P��
�چx�y�w5R����7P�zWdF70�ڐ)����8�Р�u��4Q�l��]$�^F{���,��;��*̴Y��`��B�d�آ;@���O�0�p�=fi��_��couAgLX}�(ʙ�Rlv�iP�t���áM)p*-���˃�K�X�ʦ��}"��[�I�d�8���?���}^@	��-��>÷�p�9���S���Y�{�?xx���+4I ��M�n�?��V,V
1����7&	v>>�?��W�>��›~C;��wS�G�T��O&���'�@���_
/M��9���Iܝ�������[8d-KaQ}����}�|�+�p�&���'�)E���/�Q��I�T��,S8�jĈ^������ �'�f��I�僭֪�
I�4�mz$�L.Q$O��ya>�g3X�L
b�e���hK8�N?��'�O��J%C��Ԓ	+�Y����J���'��'	���|�|��<�D��+ �aa2wО���A���{�ֿ�b���ךڲ���bb-`H_K�
���L삄�g�e�?�EW&�_��v���QT���>��S�\U��Շ��pԺ�nK��⑧�	/�E�MRxF>S� �~uOa¢��f�S� ���5u r��}�2і�
=3��UH�E$��"�&�z���Hpr��9@

�(v��IDgrJ6TQ
����/�<T��3Z��,�ׅ��l�g	:�[ڼ��_nIq�bRͱ �7_xQ9�^X,nz:�uCH�8u2wl�Ѐ�ː�e��ؕ<��*4�1N�B��h��m�^s�r+���Ӛ�[ٵg����F������v˂�֟^C����O���c4�]�uc��A�s��k��) 5��g�,H�.��?nh��UQ���{DroGh����vJ��(��V�(�h
p��~-�<�6�1�3�Y�<��A����QX=JZ^�^7�G�QJ����~-��^b+�����D��qM��^��ތ��6�G�p�)y��*lȅ��.�FK���c�.���5l��`^�q���l�oul�Uȁ���e���ױ��Ħ����4K����0��%�~�؀�na<Ւib!�"M&!�
$�����l�<��^֟w��0���6��}��<��P#��R�z��JHKJ-�}
�+^�;*�f�����X1�QЦ!Ւ%�$W�ܧ�)rJ�I�}�Ehʒ2�'�/>+�y)xVT�U<7&����ւT�O�:�><z,EP-��z`F�D(���
C�e_���s�,���Xz�,$R��+� �>:�����,[[����1	ަ�����=��Λ�i/�t��
�^�6����:��!W�	[q�u���t�U`~f�^��0�����;�-�j��8����4l��Ʋl����h9L_m�"3+�g x�,c�yD7��
��&F�׎^����((R4 د��G���Ʉq\t���(�cߔ��5���*�J��NA��M��a�
�(�	5�����-q��ÅBpd��!�;y�|�?��]|��:�X�4�=8"�mE�E��f
���Yie}���O��+?�沙ݔ}���v_/�g��n���//B^�����B%�W&���5���y:�^\�?
�r��kܔ�����b���nS1X��
|��ܚ�@��w�I�
���z99�Q��#V�v��>��}-5^�877F��H6Oi,_y�7Ʒ7��}(����������zozG�7?�·]��~�c�|�����9𕾟wA=�o.��1�bc�FV����M�Ԅ���R��B�����jF�ˏ/�벁�Z1�P���A=���NA���=��
��Z`>��gwͯ�� ��`5ˠ��:�J�?pf�Z����>/��n=��v�0�R|�)<
-����ʟ�5,9G� �uQ38-6>j�`	��n'��ɑˡ`d��`,*F��I����/M!9�g
9�v'+@`P�,LL0`51@ZH�۵���c�{�(ҡ/!l��}J�߆��`��C6�
�z��ಋ:X!L7b�&*`���%������^���T]Y����=���}��\�Y��Նv�KD뵺\�W
F�.�Qk�7./�A�B�?94!Q�Ϗ�k���7/��_P�ks�X�3��N��ZO2&S�i�����Ř��z_����(�"�I�e���V��e{	ߔ���#fE�����L��$��NM`�od"|�Z���w��ebVr�ǧ��]�Nl����ք@=��g=Nz�e�	������JP�b]i�Ÿ��G>/�k[�޲,�׼'x$7/͡���z,v��*���n�`X�b%���!����v�i�r��E�}
�13[�l�8���O�83�P��yKjY6�8Q�2��{�V�r�A�	�E9����m5���1��+�ȓ˾����6�d�[���o�D����r�^��^��,���o�(�����܉�_
���7/G���[;]��#F�+f"��\lV��(3��l��\{Z�}u�7�3�|�8�Z.b�ܧ
�wjt!X�/o!mΥ�>٭�����BƵ�0�Z�sD?Ipk<����&vp*�v��ra�$��}*i{H,\I�+ʹU#$��h�d�!�Z���p-�4����d�L�<
}�A$7�q��$��N�A� �B�
�_:�m��da`���?7�Y��U���+��=tԼ�
d�Z��Ǘ���1����T	�d=�̨�ޖ.v��ڎ�<3�*���Pԟ �����"k����MȄ�ak�V���qe�p�>��U3`��+�0ꢪ6E����U�4v��2N|)@K��ٮ.�2�CO���o^�S(�d}�"����ڟcRk�����YL�2I��*�Tvp��10�8�[n���+���;
���#��E�RVƽM��qB/�tտ�j��_���Mj�S�-LBn[�&�z�e�Ⱥ��71�JFU)�}�fu9.y+�w�6�춖HF󘻄X�� Mp�ݢ������?/�{�+q�s $�^d��J�V���y�G^y��� �-yE�?�Ȩ�E�Pe��'��F�gT�]do$㟖��9V=л��	�:!ty!G~=��c{����m��ʋ��z6&�+^q8��4�D��(�¼q�-B��!���4��;��b���]�ʼ�]�W�r��&O�n��:���ՠ�
��,׵#׳�9$γ���aђ��x�<y�'�G�?��/����k�`���?<����}~�Ǹ�2i6K��%[���wC4W���l<��Z�Ⲩ�׬J�}3&��h�Q���ʞ'@�`�s����L�I�wZsTk&��,xR�'%+�Z��'9���sŤ���B�I��g�a�{f��?��o�320�,}��~�)��\��8��ۗ�h�\p`k�wL�Ch`	
gg�^R?��u��%��d� 8����ā�
�6M�+��6?(��2�/��	v���S}�)�)Xrʹ��;�!�M��
[�tb��k���.����"$ϰ�"��T��Bp���Q�h�Z�.Y�[b
XEyC<���	�.��e��fM�`{�6�s,vhlkUHM8��5��+a� �hk;�]���f[�Hm�,a�a����E�n�P6[+��j�,�����:)�"��o��4��:Q��aYB:Ȕ��m�pW������Wϼ�n
ٱv�0��g����Z}�ŚR&Ux�V�L�F<���9�D��b�	R��V1����^��dAVu8�>�<"�;"��6d�i+2��5��ܻ�W���L64r���s|�0�l�����]#���dF�p~tQim�B$+N2<�ӟmJG��Pr<_����9dZ��qR�W��p(�_�#�m:/CGp�XQ���2u�i��U2�I�u��_�64'��\��������[�OG��z�&/D�X�>G�Z�vxnآ�� � 4����Ѿ���A���]��^�'o�-�
��\{_�ܸ)�,
��G�k�o�8���q<g�3)���&
�@�}�Fgb��+���^z�m�!ܑ�-��7����|-���hU5��l3���A����w� !�ᅛ�֔�d��l0�����U4��Q2�#r`�P���,Hc���y��1���dF=��cC7��0� ־&�TN)@�վѨ��^�UQm�E@̖GO�ј#���f�^��\�m��3Մw��#�m��7Kɹ4�����`C/J^�q��u�I�V���V���@褌
Ό��w���^��y�T&�
�{�Z���ej�IZ��C�\��CS���c���v�����g�4�z	��9��dJ�4��j�D��
@�^�C�5��dm�Q��g�6��D�=	��bR��d�d�=�&x�O��3���i�k�Eb����Ja��%��0�G؅:J4��Ɔ
@���I|�{�DS��	S�šY�#yLa>�"�˃��������`�K�H�"��I#J"��o�7D�^��i��L��^��֕C	��-��5�	|�r6��&n�1��D�b��v�Q6!o����8�X��a؉�X�σ������f'TT��u�Q�f��|��0P���W��j����Z�q�җ���?������}����z��3|�o}�:IPȁ�罜�da	$~��
��)���!���w[�|�¢Cl�I�m���
B�`��(���/�r�lъ���-ʶhϿ�y��nH�gV�R��I�L�k��<ω3?�	���u�Vy"L�6�N6k�Nob��Nt�s.�v���Mt�#�5U��C���2��l,��NB����̮�������
�Z{���=4;�<���AD
T�,��D�¶���y��~ij<����-�}n^��c�@t�2�i+ƔZ4A<����]/t����͡VIw�YJF9R�t�nk�I57�x�K��9��@��,J��zol[�A�����em�,2�&Sr�e&"+)��KB�8�{_{�(��/��a��T���+�Z&I�YȌl���,���gK(�:���	s��S�2WRB}��tB��R�`��Z��^����T�۰��Ľ��Xl�(��
0�W�V��{��wE�x�����l�g5E�_@{=Q{{�N	�:1T(��&{��Zч�BP{�dM�֪��7�x���%R�a��Z�T��5�A���;�`s.P��/�M���YyWPԀ_�m���bߊ<�#?c1�Y6�/����l{��m�p�h���Nt�Mځ�� �j����Ƭ4��۪W��Gދf��uo��Ehw�N)1ނ<�v6k�z&՟�qlDF�}k�|�u0�9�;F`,v���
鴇k�M�8����g`1=��:�{	�l�dЮ|N �Z�B[�X'1��R��9����V�U�#Gy���Ҭ�U����\L���N��! Q�(��oxf��\���"v�ˎ徏�̑��H�*��(@k����͚�U:j/*n�C3����c~�U��8F
@ق��F�B�P���ʅRߘ�ZT��Ü��<Q�����bB���j����z�J��#�Y2A1Y�MƴcjLh��k���M�,�ʚZ�{���Z�T@�c����!��3��)F��f��'�tlX��}"�/uD�~+���xt,7��w����h[���1wӀ`�	9'�V젻��4� �f�vr����E��j1x�om�
Z&	j5t&���m�$ɵk�P5w07h5�[# ��j�܋�)�s�U�^w@n��I��c�M�-f��\#7!z���+#���=�|
!�)<"�er�釠�[a���5-fE�!�V������{8��0;���:�
N!w��]�E����=�S�ɘ���M1�ܞ
(�c�RX�c	�&�l�䦋�>&Ĵ����d
��WU�/$��CëMPFV��0�1��y���H{S�n���^��3�]�ާw<JF]����=�v
!FF���Y_|�1K���za]�yTGȱ����Z%�Xl�V��[<�_ǵ�H%�����oC��~��m�0��4��/�ƾ�/׼�Epրc	P�Ԃ��y{���+"������ǰ,������QɁ��o��_�\�O~�+�$xc�^Z꿿�l�h!��۔(�����}~a� ��֙�����J]�����81� V4��������F}�r�7���fm(�1�޼4Nw��g�e��܀��,�U�,��ל{e��[i���܂o9���M.�3��vbXΔ�=_�c��qQm@��-��K��;\���k�zOt{�B;s֣��(H��H\p-�vU����{�J�>��Se=�MnJ
z
hS�!��۠!��!B'!@%�S̥�*?�س@מ��F�_9��K<����{��jD�jY�=Yz����2�2�m��/��$s_	l�R�vc}���
.����Y�3`1r�y#�D�Oj����f���e����״�����:R{���u�y)�4��7��b#'���61���Rk�4�����E����4�ze����
��يN=��Ox�ͭLq���C�
���a���>,��j6�!MԈ���N�����
�9(y��Z�G�5u4�.ͨ �+��_M����<�*n��#��]�5�`��Z#�,vM�ܑ��+3*�O,�Og���JF6��lp�<�"�v�PHB�@_�a3*~�����kj�[��o��h3��|�ԟ��>��ug�YP��s�g!���om㲕Rٗn��E�Q�j�>XB�s\�d��q��hST�y�%��9t��FR+��QL�=O��s�}��+��<gY&>�S�HEOR�%��} ��U2o���(uT�I�B����r��ϳ8ɧ���`�e�D�6Y��3�9�l5�`c�K��Q���4��*���՚��4x_�eЅ,yCkֵ�r��-�tB!bl���C���U$�/�v�D��YEw�����4��Ag:��`PO�?�$�B��SWx�wG
!��H�`�`H�	�
ŀ\��P\�MX7�FC�
U����+S��Ƃٰj�@�Y*`������
N�04���Y;�q��D߭G��2���nu���`r+4[��7��W�*���X���F6�%�6v…�Z��ٳ�ObD}}`����dV�Ġ����$�E�Or��QV�a�qC��dS�k�H>�{��C��In�u�'h���{m�C9�^�z�E�$��)p�yF͵X�`~�A|�$lsPB�Q^@�F�F}r̈��.ye�(R��AV��\7V	w5��!e�׻k94T������N����CWo�,��8�M������h�:9�[�E'�*������
�-����!�Jo�C�C���7*$)T��[�d�hh�,�8�$S�!�HV�y$է��325ٛ�]���,����K7���)w���H6
^��B"qo��f8
���S�K��>>y�
�_�uO��X���}^ۙY����|j�bIǶ�E9���� 0x�Kx!p�MbB���x�6r��`�'��IA��[#€~�
�H�t~��Zu�X5<@12��y�il%܌2=��0��jԲ��˵=.�w�
̢�^9<�h-<�r6�N���+��3<~��[�����������ؐ���$�J|1�������Q�|��[�����S=��N��x��+5\�e����sR�H�!�8X��$�3��܄�,��@}Nh�\�8�X�+�Bz�;k�Y�}�ٛV�j%�ީ���	��'��ł��/e����X#���{�Yt�-M�Ջ������	庝弤9K�m�h��Š�<W���m���y����F�L<��A��!�A��Ƣ�z�-?yO�>uL�w�b���,[7&C�d��H�F��l�٨ͱ�qdqk��*v��j&��Q{Ǡ�3�;���t.���-���R٬�,�<�T��l�Wd]F��g��hg�2y\
����צ���m����m*�	��ڳZ7�5R�S�dºP���F䕚�z�s-�?��!C�z�cs��"�K'B�琺ȫ�+U �����M�6R@�����
����7��(�k�{y����=2�"Ku�a�3m��s ��6
����:w�"+\UVPu�@����`P�M&@��K�v5���
��5����\~N�<��35ad�W�Ӟ���2t�S�29r����%��;���۠8�kZ_K��mG$�1@l��-�T�� U—�i�^����vF���}n4����b:����ljX��7j�)n1��>PZ����Ȩ�Ȁs$V�*F����Ȣ-V�˳vP!��bۇ�c�B�:��-���/��}ra����!�틭�xyv�3,v�E~+��	��ԗ���X���	Ā�_K/�����^e/�!��zށ�Q��u�^�J�ޫME4kٖmYk�U/�]�CHa�������J��q�r���ZJ)��3N�y���V��쓵�T���2������h�l+�\�]Â�76l�g�&2����`�F����T�P�~�%=u��l:�Z1D�0欈���ز��.Ɇ
:"+E�`k�0�6�o�6�6��)��ECg ��6	�c8�VM�!#��x����F�[������|	�ך$�.⵴��h�fރ\��NCrHv
BE��H��V��@��=I%�f�����Y�<�	ak
d�o4�4	#��_c�u�NƘ�۬L&]N
%:�m�b�s�݆�Ҁ����=&
[�u��Ť���Xs$�숿c�eF r�;����#�J���HU�Ƌ��};�c�vKF�9Z����)
��(v#H��}>u �&v<�Ţhx�#����/"B	WR������ԀG�?,X.���h�uUw0��T���0o�{�=H&�э�ð�{T����p��a��?c1*1
f����>nO�\%�r���mVdI�^kO��g+ǥp��!���d��!��~L�{-��<9ئ2tn^�����}�C���X%��78\�GyeU���`E�f#G?��j�
�B�����������IUY��'�`���4e�ߗ��F@�R�s愚-P�q�K�a��\�]�Eld>����~��
3���/�A8�N_�x�x���R!	��]�c���Z�������?~�/��߶�B8�}���E�Ž�gn{��ZS�y��*ǫ���W���K
�w���#VV[��D�ZZ�~( 5�5�(�b��A�R��z�!���7*Q[�P���@
����Fum`;�d�U/g9���(SG��
g+��}���B��pi"X0쓶/�i�kP���IYr>G<,7)�����g����6�AsW8���N<E�9xk�l��f�R����{5���� -��LI<�پ���;p�s+؜�>��u4]�f�)j/gG�����:
9 �%�8�et��������O�[�(���g���N6�ζ\��O��ϿɆ���Z���G�'`b���
�(}���S��il�4H}�h�r�v9�2��	-A��7����=���+��4��tdj�����&�]�
�Ѯ�쫭9d�G��@��ʤ���,�ޙ�����ʶ�A�j�d^��F�R��E�X��M�k�:0X^�e�͚$I�3AS3�Ȭj�88M
Bș��eG�g��Y��}�y��rF(�r$@��QGF��n��i��Q�M6	�L��YY��v�~��	����!�h�:���v_�Phh��c�jvb,Z��j#+�����\5_#��pCg�@�PB�X"q��v�ɤZ���{D_V8ɲ����U#虌��Y�䨃 �yG����5���,ǣt�XQ8*/9��1#�)����J��I�3W��:ylt�ǃ��]�jp�-ޅaoYu	x��9��5�3��7�"x��<N�\�,�c�˽\(t�P��)Y���u�~i$9�o0��#����G�ET��\p�6��$��\�ԡ��kS��f��r�YȐ�m
>Ą��HyO["L/-�F9�Ɵ,:���*�ޔ����^�[�a�=�B��&`j�l�&�H���Q���ffv߬O�ݛXW�:C��(C��R�)���EGEԩ0s���&��pJ)<i�����-���,LM�ဓj��U� �d��2�}��F��ع�	�݉%㉥;t��
��t�*�dR��[S��Z�ݽv�
`��F`�蝤���`Ҩ��\뿄B	Z��l̈́{��D1�Jٞ��ݤy� p�蜋7;��.�4$�e��&���H�f���,����ݘ�ҡ)���⁕'d,��z��u�v�DP�>�̼/Ŋ��h5�Иl��3N���Ջ{��2�(�殟�g�%jn/�!�K�������z�e�l}ef.���#n	rHV�
��ܡ�7�Dc�#�-�N�Or�%+c����j��LZRڐ�;�A,7ސ�<���@ܷ�H1@,��@���t�RZ���]+ ���@��2��+��6WDǾ�G1��i��]9������s��{�"km��M��(r��a�c�%KAF(=�h��>���g>?��"/F�D��^���2���A��hc�/���P7+n�]n��S	
�}��ӟ��Z�w����7���5a�M�bC��~�׵b��?����m/�۹��06�{�=����m����ۧ����p���T����C��������^3���S��%jf*{Nc�:��w�r��T�5Q�s�ܹ�-|�]�m
^V^�-�<g��9+@#r0*�Z�Ypv�30ɰ>^���ᛜ����C�\����Ȅ��r>�������I
����e�m`�y��,<>+�%�Y����-�,y�H��8%�k��;�d'�)�ۊ>�C#KKp���\�c�:IĵU�YA���0�,�o;
��nf�)�a$?���5�TǢ:����o���<��n ��uƒ�Y;� �g#N�<�-"T�MnW�DH��X9��un]υ*�M��r�E�S����+�Yg�K��~���,
Pg��d��=�)�Q��R]
���Y���Ղf�����ş��$-���"���^h	{c���PRPX�{���
�\�c7���q]�OJ.��
�o�;L��KD�y*.��s��� �RŐ�*�ޥU|{���?t0ӊ	�|9�|�����=��<uQ[�/�gY#e4�o
�����s�
P��L�}"�ƯR���hJ�]"��v�=GP�T���+�H���9�����bFR�ϴa^�P��6�Tw������`�-��`��u(ʎW���;I�D���Ѷ�oҋ�
��XD��cO+K�j�MN:°���n�!�PQ(~|�V!��[⿤����{�2\���+s������›|,�!c��Ve^�wj�G⤋�C)�WRٵ#'K:�f2B�����K?���{���-�N�F�B�^����L�]�
�n�m�m3���2ڕz!��lH�&G@:Di
���l�G�=�;�M�,��DG�D���4�7�CQb[����9�|4�LHtY�,,D^t�� ��ζL���� �[m��[�۰��p�|oo�,���f��X���3��f�˥i�-��� �T�����#�m�E���[���7�Qn��A�_�4@����E,ګ4�|�.�κ����H)ۣ�o��� WokhUn�Ud�M�
��Ǝ�˲x
�m�$�v�Z�L����56
�3Ӡ���$�+!��2�ۂf�D�W�A6��i��Y8���|^�z]�g�9�����$����7x���b##	|%�.CP�FB�<kk]�0�hb����m�:�p�ia(f'��fC�� ʀ=
�X�����Cϡ���C�,��d]i��j���ї�4��Qy�|����b��X���9��W=�研����խ_�l�RY�����D�|�E�<��Ghs{�9��j�{��IJ���4��Vѽ��J��ל��,���+��[�Ae�z��̯��s�̶�}��|o�������������SQo{O��*�ŤFdy�,r�Uk�O�I�܀���a��{3�7����n$�܂E{��\xx=����Ӷן��1l�B�ߌE�|�#
h������?�7O�eI�������7�H�e����Phϭ=��\�Q_Ӽ�s0˞O����H۞N!7=	;�y�<�
��󌴳��-�VD�R�؟���VL�H�1������q�
�I{�Z�W�wEE��*E�&�֊r�9uy�.O��n�L�0�[P5&H�o����(�4��y��}�J��%x��d�W��C�a�BP��a��r��L8�.6�0��dgO���P��~L�pܔ��A�3�
(�Ec�*�mH�72R�
k!�)v���;O�,rm�-��fڑ�rDC� ��l�_�HR���� H�<S6�f��K�U��8&��iҊ�AK���w�"򘭚�KE����,K\�x!��g}�Zq�
k$N��ꐗ��;NlwP=�ftR�<�5Ă�2\��X�}���ur������~�j��C���/4!�Q��Y�Q͒��j�s%4��z�A����[)��<�'Ü'�k{jk��׺����p���M|(��B��f������,	���5�9���U>����qy�K���Zd���a��C7��)O�^t�`��乥���2��Ll
;� ���pic��63-������|ҥ���^:�\�Ӗ��}������摁˲=|$�����/���͜U¨�Y�w��{><)B�Y�\�ү�9k���t6\�B9�-x�Q!�Yp[��H?}?+RpP,T<)��iT�V����I�(����G��X~	R�y� ��b'�n�t)��g؊�O��y����3�\fz���Ϩl��48>/��'W��{�	����C����G�@p��ik��Ѕ[R���8�U�J\�S��u}�K�q��[��e�hXj�s��H��]G��Z��c�w+)А���	M?���Vk��S�b��UڬP0X�-m�0#�-Z֥�i5
[�(��B�B�O�uSAA��s�t�$a�	�Xw�n��
\�u�����N���A ����-�j`,OE����G�
~X��jbE;D��l�L�A�}��y�r���{���o�F�ʨ��XX��*i7�wV�0(JM�?�s�&q�؃N���,v��V0Q$( 7y*�hq�̅���c
�E\� �6~W�q�d���8�`T��S̆Ң���k�ZF�?7�@��~�&gI����Vva�-�s�:�Ri&��d�hY��q^q˼��
�F�l�e��Y�T�V"l��Ц�>ix�]�5�a���<"I��I�2)0tJ�	ϊ>07Jh�.�\����`���<
�dI~���<�7��/�ݦg�^���mcqѳ�8���E��Ӡ�!��B*���
��&���*�$�N���L��M*��͖�U�p<��	T��J�
�g���rbL�6?�i�98�m�$'6�>C��)Z��z�����P�V�y�2"����%�ʮC� �w'����m��I��_�Y�fZ@�FƢ�M'~6Λ.��c˜r0j�v`]��leN���C}��v�=�?H�l"�ó�����I�>�{-4��@� �Ҽ=�6��
L��:5:(��$-{���Ja*g贳�xA��
���otM���O����)}��勵���қ�o#��9���~�֫w|�췼8���1��w�Ӌ:������~�9���!I/Xv9d��Vp^
�|P��N�o�'��~�R(��Z|�}|݋3��(��z��y<��ӷ����Ab�F����j�3��a��*]�(�e1A��$������s����𗜹Z��{�
YCM|�7��,`9\���r�8_�]	K��k���+V�no5�R��u
��8D�X~���{-��Nh�2Qf�1��=���=���4�!�<��28�OR���9ۉ��Y����TFQ���U:�ș��^ �v�Z�#��!�GP�>�yh�?r>�$�0VV��`����ݳ��$������H�5����V�N���6%�S`�j%��"��p"�m��U	$0t�\σ�� -(�$�8�Di�j�)2	a�J�s%�W�E��o߿��@/v�8�>>O����{]�$I�ϯ�ɛ����N[��Iz�E�0%�&��b�5�]S�%�k%zL�� DG�['�p*�Y@�qmD��)�cJ��>��&@W1�.�Aɥs�~���/K�
�.�#�(����;���G#fd��D��;1XxVI�����u�i����=1��[�� ��\2��s�\b�� o�/�>E�-�Uu�eB��p�v�l

Vd�;B��0K3sO�hS����#��y��v����'��,Q�������y*�9i!Z:�����x�r�g����������4>�^�sr �`�&�P�t�).k
)v&��7�GQ�j�Fa.I�����Yc��LkJ�Ll�*f����MHɫ����6����HJ��s{��9�FB@ȯ����Ε71�P��
������5�����>�F�*��Ӹ�n�^ߑ��x"ym�(��
�֒����d�����tb��M��:a/
��[��}71>�n���A�@}
�X���u�?�2����@�JU
���n�*1��J�޳ƹֲV]��ݙ ~���N�à�\��Z�'}����@$�����?���ׂ�Q@�v�����<L ���@����B�
|V�ۀ����[i7fC8t�@�K+�Ðh�c��0HU%�Q �b)�2l�b�����1T$ڗ`��#�҈-p��$�'�V`�=�ެ���	B0��)���ޜ	2�ݲ�@���z Tn���s���d>��'���Gl��;
lƧ�&��,
"�[Ƶ	Ӓ�rYy�8�aﱨ�t��*,8�À[�&��KA����0i:�����K�nm���M	d}t�긪_"Ź�Ҷ�#?�>�G��t"[�@�
�Ag
Ae/�4P^@)�@��Y�v}�$��j�z@�B�B7�Ӄ��u�4��*��];s}{��(�0���%,�^�+�M��Ge��ڿ��/���+�Q���\�p�N���'J'pY+d_�Ƥ�
BQ���='0�=�Q'<�w�~ٯ?��?H�_�N��ş��j���.=���
ؐ���`C���������s�}��ߟ�?�9(��*�:.�=����|M��ޒ&R?0a��u0)�r�$R�����P;Q��S.�j`��wI$�}m �^�X�=�5Zv_]����r/u�Kb�i�!oS��<�����kg�W?/J��d߃!k������u���D�+�O�9��:z����y����xb(�
�iV��4v9��r�c� )yq8��%d^��-⁡�~Tk���4�w�~���s%ı�:)zV%�͏s��\"f���u)����QOE�q~���ـ��%ɪd�S�;�
E�$�H`�M9<�Y�|A�������$��+�%�Rb�������vִ�;�ػ��*G.�u�~�@��y$&��[9��gA�Y�f�MRԲg@��[���q�e�|.j�t�o"���T��j�J�����[l�����L5��jt�s�~,,�Ʌ~����$�^"�㽤w
�p�^gy��K)���bo�o�\y�0�����t��	��C��OI�J�`�뤠�Cn;��1݃w�i:�hRZ���
�zN���&�zyɊ0櫃����~��'�0IkA��$q�@첱)��bY�I�g��n��fÚO�(����4�7@5Ө���D��J�9b�z'Ov�Q�գP�J"uݞ!*�.p�{���;�F>�z��(�;�"N�7��xX���иOd0i`L���p܊2$c�F�
�K�;0��;:��y�c�a0�LqCn�	L��P�u	�B���"��2�uz�ar�V�Q�2�zr���A���Z�p��$(JuXq +������$ק�5��S�<���hQ7�A~���(��v�9���z�9`�cF�T�&�ŦuK/d�Ëh��ڳTω�kFS�Myh�,aj�},�7l��x�â�v�hw��8e�E�L���`�󄈖
�|EL"z5x�$e,_Q@k`�v�;# �m�C|�hI��t)~%Mbŭ��5���ټ$��ʳ���j�~ւ�S�5)f7���E���Mõ��v���>���%
����\BH�<�&�T�
��L��0SMZ!����A���Ku�\S%���A�a��M{�M��@d��`R�a��`|�C�U��X�_n�Ϛ�U�߻�C�zt����vkQ	F��h;@%�X�p�߀�;!���N�hLc��'�D3:��5:v=([T��=�����j��v�l:U)ݝ{i�bQ�$����Z+{dltv����+
�ƞ|��17���F����K2�iZ�]^�~[�A�H@�E���oT N�V69� �|��~���%0�WR`1����e&�i��!#�Je���y��w�ρ�,:Y\��2Uŀ�yN<�hV�79̗,uИ���)K�Ⳳu�|�ڣ�!�Op�9V}5�����z�o�~w���?��郏>L�'b?k:���z��o߾����
���ǿ�����|%����]��G_��*�Ӓ9!���?���|�����d�?�O�|:}���Ω�7˙��ׁeO���m?j�[����e�d=B0��?�쨰Kn���-�n�Vl;-�����fߥ{Jw�8F6��F{A���+'�ZzA��[q��.�7��_$>r��X�
저���veC�R}�Dǟ�����S�X�g��Q��u��Zq$�s��'o���g�A�&jA�[`::����@��;�#:U2r8�!���&ϭ��U@�D8-�	BZ+�>jw�vS�f ���Q��೯��E���<	P��OՂ?:cY
t�[�Q�:i�D8�S�������3�r�u�u���{�iܣ6(D6���g�"K����9�f��uM�ǯצ2�1׾�-)�Х#([�f5Ct~FZ 9�:��S���1XCqi�i�cu�q۞���{�ۄ:[�ֿt��\�
��?!v�
D經a�y��0��X*��r��}{q%��TJ�ħd��1������Ԓ�����oc�<�/_�@�ު��ڊ��9}NN�݁:��x�*���){��f�9�(�<��P���$�0���˙=��Q�ďk��r�:x���Dzh�(3ٮ�y_�9�V�S��6�[GF��7'o7���O2v��=�)��T�(������z��
����(�jpn��B{��L�=j���1�8��[R�*�HN.�|Uv�FJ9���u���/�.�ܮ����D�;)eW-�1���t�5*�JK$Ϡ��<G�G�C�\�s�a	����ʤ�V?�����%{��s��m�k�[�Ib
��K�j�F[���
��Ȇ���)q��
�t��f���ݪX[�ƾM��C�WVŔXrUg�1�{����dJ{-(0��v �Ù�D��Zy��_�0�+5l��SIߩ(��S�N��*�sfk��];X�~���2�@�h��{���s�1�^K�Z��Fw{H�uI�Y��ޔa��r�����2*�vo�XP�?����'l9���o���_��Gp{��f?|�m�C�?����n7���5NJ�G�E��w�)���) ��!Z#�%�
4H!�D�fR�ݪä��&A�A6!���Bo��Z�ȃk�%���餄1���Lͻ{z1��l�x \c>2Aڽ��֠[�HSdl�f�<�2�IN*�G�wԽ^q>E�8M��y�r� ��AOP���i�֢�?$k)����`�o�ы9E��4�ȍ�׮��͝��ś��m�Y���f-3[��7!�g�[Z�- Μ fY�%H�`\j���!�t-[�731y'Ѣ�If'R)�n���D^��l^��,p6��1T�6��J�_��v� M���=��{A�l���l0�*�I��89lg_+RTiݯ��@9��$'��]�g/�^���I���
�Z$�kk�
}d������k�'>��Vg�I����@]��2{]��~kr.�ՒW%B���
!id��NQ �8���ie�t�i�j
��ák����g_��:7y�V�Ή6o�R�p�Ix�:Yȼ�<Z�0�ķ�9
�m噎$��-0���m���χ��N����B��~����o|#�����O?��奤����?+���(}�[�J��~���Y�����֯H������?�����<x��m�M�<�*��y��>�%ze'��!�ϙ<1����=ޞ�H�9whs�|ۿ��d���v2�~�d�N/��$=��]��7_�2�k&7Y���W�ni��*�kG���+��
��wE�n����������lע����9�#��{s�t�1�26�m����4xcqҦW�Z�)87��]SXL>����z���XY�QC���I�
��Ԃ�^��3l+��`J ';hne]�*a'$��1s��G%�VIG��i��P‘�3{��E��TT��<�n�E�ȵƻ���m�������GE�p�:�Z�pi!��AR�#��4��Hd�8��*jǾJ<$�"��a@Ψ!ܖ�W��{����W�ͳ&gӞ��m#�}n��µ���������2��N����J|}
1L�b��W�}jcޫ��HP_o�0�o����>��"�	Օ׹�aΙ@�II�U��"�` 
���R'^,o�q�/4w6������^r�B&��
�����^��
���'A)�;E:�:|^aK.��Q�!_	%�s��)�ОO��-׃�oA[I�Z���L^��AѦ�7�P�6��_c�{;�~=�����~{�z4i������wI\@Tcu�N�aG�O�@���H��O���
[I#��s�"aW��Re|��G��k��^q�]@S!yZ�m��iˈ�z�a�c֮�@�o=N�W�}��X���(m�څ��.`$t2I�X��o4vmZ��n
���i����*w�1�W��Y`�Cn��|U�ܽ����6�������|�7|��|�KJͫ�����]��W	V%m��0�[���H���V',o]yx�$�V���91���^������=�/�2n6�f�(�j@��
�5��	�@�F3��QHSE+�Qx�_� c�P��
2���W��Uqm�X�v���י��%\�
r/aO5��p�Y�v���Ew�̓�����µ@(��υ��5O��Ac��sF�����X�`G���8����AA2	X�Bu�Xe��=���cm5זl�F��	�5IC蒃�+NO�Jh�s��l!��a%�;h�
F��X�X�|
�Ť
	������[66gcHҢ	/��h�������lhA~��S�4��^����Ȕ��C�Y�t�h0/���*�������0�>k@w����0GY+�s`&��#���M`P���%�nt��� 	xD����
�VPs��qH
�;�����,�8��ޱW
Q@�}�1>�E��'f!��l̊�i5�Y�&�����I�_�f�ܜÞ��#K%��o�3iV2�n4,l?�Z�gV����ZRvP�ݳ&������+4�x��y�O��{�Rz��%ZR W}��S��7{c&؉Ybw�/��Q�����\��w�\W��`_��-W�qݗ�3]b�\Mik�v�Պ���Y����n�����7��������?M�W�~�������_uq�'?�I���o~+}���O����9П�M_��U�?��x7Ar�~�XL��٪�_8�tΟ��vpWX��hE�E[�	X�b^"g?g��sOs��Fff_h�d�Y�����#B�\�9*s��\�"��_d��$K"���	�~���G=�
:k_�u,��~�S֢��^g���!'!��~
��DCa�H���b����R�y�nu�Q4���ŵb=y>r���A�Iq]��6Ə(�@ܛ��u.{[��[$�4_��<��	�:XQ�W�����"��X�8"ъ׸(�K�PF���UTu���L���'`3�����4P_[��#2�kr�I!�����t�@�T�T�[�nad��}�`R�঻�5��y̑H�H6%枴���."[X��Ǩu��kYa�}��
��J,�D&m�믚�gA@rU�p-S%�4u��T�4Ȁ�l�wJd1�ֹ
�1GejvR/ �:3�
EK
�(�'W��OɒL�io� yP�������)hT|��BiN��r�` v�q`�ua�
y���s���A�p�^x����b^=����s c.1��ڠ��'e_�ݻ��ZJJ�L��zA2�\�͡t4IE\d�.���:�.��"���B0�n�bD�E�f:D�0�Y�҆ٺ%:i��7����J��_��s0�-)�����PU��9���>:�{��<�s%��|�ڈYi���RGi�eW�A���,�j9���Rd��P�&J���#���sg�' m����q�W��OI$�00LNJ$ t����O���lG@�+Bdnյ�,.n���N�]V�Eϼ��/�����LҖ�"�eZ�t��G�>����H�uRi@��K�8|�`P�̃�Eu���dw����v�<���
��f�†1�����N��۲!<t��i�.��_�T�48�L]S��m��
�h�9��\P�/�LJ���50����D"��];U��l���,����en;k�����c�h��E������W��,a#[$�2n<�C!l��$��'X�9HG��.��.Jˆ�ڦ8����{ŋ�4hP��i&gt���5�pF��<uA��B�Vij˺��g��`�Z\*�p��cB5�]�g���+�X\#	�%x	�r
ڨ}����%2t�m$�¡�q�\�T��D��K9ȝ����m�H�&�Mޔ1�~���uNX2���OR̰���~�a��H���IL�Z�%�h�=��	�P����3���$��T��6W��XCG�m���A�O�5w��v��P!-�����/V2&�sC�o�[_�m����'�V:;����W��ی�Ϗ2�ş�n���h���Y������?�����Y˞qy�8��_�t�8�
?����{q�۟�m����!}�٧]��W�~�������w��ͯ�����O?�o��G~��>����o|�J}5Y�?����g����r3z���m���ŋG�2x�DLT�~Ҳ�E?'.�=	!�
`Y:��R�����
�����"�E���c�× 祢�J$i��"Y�p�YC�[�^��w_\Z�>�>"뾟��=���;����A��YY���{�om�sU��<I:�ϸߛ4{=�l%����AR�Ә<�$@�2:�1���Y�
��ѐkM�籎a6b&ii#����0�)i��~��]�S��R�VQ�j��,�Ie�8�le�XE������h3q
���9�,�@�*�d�&��ӹ܋x���^�b�6IV����\t����\"cV`F?K��*�`�έ�wkP �C��B>�C��w�ki�>N���V�q�o-x�]�Ǻ�%&<x�C������D)�u�MB�:�#!��ш���{�J5���� �b��ǝ���S�z HQ��:c>�%rZI�������H�j�W����p�c�|�Mؕϥ"�\��pB�~k�-�4�󑸅Z�L��@�B�}N^@�M;�JnE���҈*Y�z��,k��˽ci/�������/aؖ���㯣�2�ȹ���@�FU�b�� ��H�n��E�&�U�s�G�m!
޷ӳ*��Ռ�i+{�dU��X)���T^ՋcU:���f��͗X^�
�~��q�;Mx
��ڗ��)�@�	��M�8~Β����d.�z��	q}͕l���!�ٹ�� Jg�Ɠ]�:V�Mbh�� p�{z�� ���0)�s#���	eK<�eͳa���`�{�e}�	Ç�v)���
S�F���>g�3���3!���Q

��;�1B�|5V`i?h�!��n`�{I�}�}"���ȣ'^�L�C |�/W<z���A&+K'Ƶ쀿R	W�r���m�'h�p�tqf�6W�7@����
�CE_��Ic�h['����%^��Cс٥j�-a��2.D�B�I5Ds����	b>c�4ܟRN�e8��m��H��6J�\JW/�ȓ����3���380�T[#@D~fwc�X\i�����<�2D�����x�^�IѸ;m��Rۇ�
y�p/���5�/��KW�K��uYC�*��6�P����ELe�߾�<��V�x*E�Y�=N>G�H��,�`�Ӎ�T����0���tRO(
ve,�,�n^8����p<;³��ѐ��kGK������AWLOV���#��P��Jm��41U���^`Yn��y	���F�g.̛ۅ=%��<�k:�͓��	�3E���J�i��m1����j�JB<4��x��9\���k����z8!��AB�1iɣ�������j
���f�T_�^8��8�L��w�S�b@z�e,]�$	D�S�*��
�y�c'߳�^��R`	�u�5�}>����L���~���vLb��RT Z������G&��P�_}����'?�~��?���?�E�����u��o��������G��勯�߾~�^��U���~/�k��;	^{�u]�O~��O~П���	�<�\.C�a~�.E��QA`ދ�T6�e9�~���^��ƴ����#9[l��{�_�$߽��"l\||Q��*g�$��ܮ��_|$F�m[~J,��ٙ%����[2"���T��$�q�9|����ӣ��_.��%H"�/Dr�3��*D�5���̀$�@"���h�D��y,��uP^���쳯o�%�=��ۘ�x���kV�C�-���	b�Q���B�≲�G�m��Y�K�;���R�yH��J,��c|ah_�ۦ�/��t���qj�M�A�C�Tђ>8�P��v<��r{���R;�����Ԩ���k^�S���l>E�2"����XS�+���ܫ�V�P�'�q�������Ք��u� �H�%~>U�%��V���	�Z�,wHu�&.h���ҍ�b�E:=3@2��Eڵ#Z���K�n@��U$n���lj��{��	��~L=���K.����A���%O��q�[UK{�i�.����E�ayO���vZ��\���e����"�A}LpS����JH~��no�~Ss�v�k��P�IL�l�鯩I��������J��ƥ��S���V�g�j˒,�:�?	V�q����5M~�?Kd��h�p���B!�ϥ�__��c���W�
�
�.U#�y�$d�� ���)��]
�}�0�Dzxgًm����6k����勐�b������(����L:�/�T�\�<&���@0ֶ߱pq�<_AH��\˰;�j��9����p��{r�y	��vO�V�#�@���%ǘڶ]�o�b?�AU�2���Bc��=G@<(���1�b�xbtPc6��ų x�42�4���κ���7��*�FWg�fy�r'��I"������{e���V��6�e�V6^)�(�@�dl*�c��h��U��eCIQ��XJp�Cc����T�s�Y�0���dґ���n�a2m�*A�(-����N�qf���T#c'^���(C!q6%f?!��r0C�.+R��Bf�B9��cBA�'�L'�$�� ���KSP�Q
s��e{��B9���2�4��]��P&����H:4��-6Y���L{�GA/qH��_gi��9�P��ДB"�] �%�K�Ff�(ïݒt��^���鰨�z�jhic-��^�l�L�c��;?�b�w�…�9����ŝKc�����^��phSR9��RX?<�`$,I�~��_�`5fN�lgWl�ͣ.���<1�T�� ��=r��j8&�c�AsдrQd@���~� �p)�#@�C���4JMu���e���y\���3	�V	xWўL�,�>k�(�_�@{SdyHA^KE���NI�;5���%��=Ia�AįAٖB��%1�A�nV�ԟCe��L���IWٚB*1�3[��s7œ����<���;�3��m1�t�ǹ��3/~V��?AZT1�&�θ=go�d�H�׶�Z2����CZ���-q�}x3V3և���1�)�gI*�h��?W�X���r�/H�@��y�o��G_aq���7�W��U���ϵ=�{��g�H�����n�������Q��>T	CA�uOi����D��S�=t��e6l^����\f���
�F���.T[Q��k/����:ɢ��	L*�${�jK6ɟ�*}���c�$�P��l�p~��
�ؚ'�x-��'�\*���'�)���tE4��7A�#��T��$��f�JH
$�O490����R
ř�Y�P���%"�7��l�6݊,\���K9�ym悀ƣ@��рs�MYjJ$SV1�QI�?\��@
�lJyH���ߊ�ižl�E����@�Τ��5d,+{z�@Nw�†�o
�$q������o@�w=��C�4b"�㝹cgI�8y��^%����c�e��[��b�!_5���� ����Q��,�	9�j`_�p�����.��a����!�&�*�R껰$2��n׍���Nv�u���R��ݗ�R�s,�]��Ur��w�\��ĮL!�J`�^e�R�CW�.B%霁�ĞVH���K+�~0E<g�W��}���!�,�'���;iW�Lj��%�i�Y��<�\��d�6.ًJ���X��#�
��߲���5��˚-[d������}����O��h�E�4_y�M��3�*E��jާ<	ȅ	VK�C�����Bܶ�2M�դdiX��y��Pb?�
g�s������"]%��*d>�F4>��C[����Pq��r��s�{T��Ȓ�E���%P�…SJ;(�������i����d�@n:��W��8?7�jEA�_
�3��8�A'
�7+�R�E��Ȝ5�R�OL��̀ǰy�0Xu�z�.�
K�1�n��V�Ӷ��b��t㥱����6�&�e��zJ�ڲ��v3�G����xQ+#E�'��1�����w��t��?̐f��uԂ�vڢ�]�]~`0���`�;�$](oFH;�������b��������Ťyp��l��xWy�fU�O��kd�"M�oA_,�( u<�aHh�*C�i^�����|l��J�-�!��D��z%l�8^:�`�#l�,��
��d��8ă7E&?���4W��=a��t��;ʠ��uC�F�c�vu�S3#S��%��]I����T�蟢�~�xu��A<OP�y���i�|��@zT_�X$���I��4Vt���p�jz��I�fO&`�fv�K���@�m��B�Ys~ϫ�Z�����9��Y+����rm
`�FGB1+A�Ƙ(!Ф�j�"��Y2���X�:+�^����Wr@���<N�l��j��Ĭce����`i���D�tjѼ�M���Ϥeܕۃ�@�3B�ݓ��1��
hn�8tjf�!�lcEZ(3��	d�����<������sRȘ�K����o�W+����W���"��zyvbΠ(����P�E%��/�4v�+�}
�,	]c'��9c�|�u���A�
T�"'H�$q��zbE��'����U��t�.'���oL� _�E2�Ldr
�,�_G���A��_,�J@G���Έ�H���t�3)��Gc�wI��])��\��`��K�Bդ�^�Ύeڇ���[�<v��>¨�rQx�sȭq"!�|(�P��8���cbT��(z'��5Lk)�},����&���P;*���A�A��Udr#�\�2Q3��en`H�lG�U�h��y�_���@���o
�FR|JbT�@�����FidR�Z�pJ�M�4�Brm��R"1�Fy"�뎤}U��S=��hıYvyՐ{L�(�
�ّepWT X�1�o��� HF&�u��@RU�
�-+��gj��'?�^$0��࡝�'����RAt#�iE$E�Q2�Ϲ�L��t��z�Y�.�����4a-0ņ]���y��x�q��V�1@[i���|Փ�sˁ�6$�g�X�賧��I�#��g���,�`��wR")��X�����A
̏qZ��g=�w}E`�&�>���܀Y�q�5R���c�Y}}H��|<!�i�h`n�e��7ni&�I�I�^1����.�0�X��X�����x{n%�0�c`���V��,�Ƌ�ɀڿ���N1�!�D5�b�P�@�;��u��E\��A=��U���ų4y E�$�t��-@n���D�h�B8� ��l��9!�-����V�X�z~н�M��H�	v��#pp��6��i^��@~�N%,�i#��Ĝ�
(���S,�m���]5B�	;�۶�	]��J�.sSqϊq,�l�$�E�e
r->-|uڀ,>+!X�2��S�(Q�l��&<����t*�Ŋ�ޱ��P�����
�J�I�N�aG0W��9O��y�R�p�gV{�*� -���bz�����n�^��|䦶u|.��PI`��	T���� ����1`���_��2C��U�f�Sb��5`P��I;$v������mL}��GѺœL&N��ҫ�y�^�|F+�]C����!�.�������ցU�g�W�qd�PA�A���t�lP?�q����0�D.��y8{���41�)��#�0�zM����l�8��D,1��q����i
�K��{���R�lrfv�-h�A� c��i�����E�:� ]fn���Ю�m��|�v�eN��x\Q��� o0-��&� ���g�sP��J�_��02�h>����{f��$���WP�%vF��E}��UJw��n��ёEb��`��*����6F'�[y�3���W^0kE����ڳ}=��<%�'p�~5��p�݌v{.'��HiŁ���g���@��L�������^�xL�+���oޤ_���fq�?��ܛ�'����C�����
��eLڀ���$�c����6Y�Ύn��m=]z7$���CSJ_��Ωx���+K=5����C"=D�<AX�M�M;�4	�k[{��{�.#�~�u2|&�Wg�?��X�F�]W���N�ÕU�x��O/oZ�p�?����v��~��j��e
Ej�1�OzM_�Ħm/f\�hW���e�K���~V��a�(<I��e1��Q��n��3D[WB%��ݹ�Cs5���C�z,�a���t���z-0�)u��"1�i�g﨣)f�U�2�"PN�/�1q�F%q�x�]u7��e@#��t��6�]j2_��P��y����efP�'$N�M�s��"�ȹ�:h��И|�\$�%[G&�('v�1�"�[Lݡ�C�Zd��>~�k�\�k���`��Zp���'�Kb�L%���r�ׅ��r#d�J�QO/�)ʃdÙ@rbV�yQ�x�6��o^��	cfV���6�	r�:`��rr��s~�}�6�od����
��Z�e�=�]D�e�/�$V�J��xr�k�bB�s7zb�֙�f�]��}�ȓrW{$6��y�8>�3n��Vdxz�cU
SeM��my�(EE�qw�I�]'��A��jR��	B�D����C��i?�L5�c�A�(E�z/�]�٠��p�"e��x;)6�j�r�u|��Ɉj9��_��AY��,e��9���MM�d#���j�J|%#����I�#OEl+n���4�G$`r
8 �3|���S	kU�J�n�E۔t�}���<&AX�
m�-��bC�/����^<2�\0�vȲ=cq6)��YL�XA%ofv1�Sq���ۦ��#�|��1�GۢɈC͗��w(%�L�h�狂h|�o
!���ֱY�_��u�R}���r�96��C�a�� ��N�:�����Q���(��k�f��5H
Q_\#2���hBl�6�rJ.���f���U�[3/�F8�[���E��f����z��;���w�M�n�59)(��M)^7��*l��
�ZT��*�a���UM��9�=ƅ<��i��\
D�'��E/��2���8Q�``:�����0�Ya�����Wi���P�:��v�i,��p\2��F�k/���%:�n���	]�D?4J�fc�I�H�/ٺ�F��t�v^юސM�i	{��#��Y��I��ukA�Ŭz��wy�}�	hO&+��5�~]&υ`
�k��&pO��#8M�������$���V�p�Ä(O}���O+v#+�>���2s�-Ӊ��lo&9�G/�G�5
��n��`]�wJ�ۘ��<S��A5���tE���)��_59�R�zq��@d�S(:K":@z+�ʲW��~k�mט�������R;H��K-�޽OAk�sH}B"�T.�uE,!�]B���QKrو�y���h�bG�'�;5��
M��|/�i����^7W���\�Pҥ�(~^�"	���)=<6��!iI���$@����#��{]�8Kk�O�)rX�JfɊ$�V���L�&["q(��Ұ�z��0о>ڽ�@���k��>jŁ��s��7��;�s����Gp�u�	>�"�Ηw}��UH���_��x��J@Ѳ�)m��XD��mg߸�>������"E��$2#�
��4�@(v�~�,5����^�mI��_���*�R�}bY���
���ޮM���%K���v����i�s�@�������W���-+`9���()��u$�ILp�ݷ(c��b��D�
/z!�K-���*2P(�ً���ظK��i7���f��"���;Ֆ ���T�t��;�)(���~.��g��1���c����"ٮ���J���k~����8<��vX�����&'��*�����V�Y�E
�+oE�0�ۮ�Q��~�)�J�Ȃpl��g'�l&��o��a�~T��f����Ɯ��9:9��X^$�NjE��J&K��Dl����D����EWiQ���DN}J**r)���F�g[��S��+?O�����o%W�@5�(מC���	����m0�.��Έ��ԕv�*��Y
YYI]�E���ϐ��64�+1w�?��5|��n��s�o�yM1ɴ͋��bt��B48�J�%�ea��6v'�+2�E��3�{�;o�T\s��lk�͊i:ӽzA&��1k\��J��;�^S�M�뿨�v��0��3z�����y�r8")��M�d�׮�Q����-"��2�]�[���v._����	2.q�X�E���$x]Ưw��KddU�; �+�٫��/�`py>�7��1��^rxND�cD��ÇC�</bXKV��d@��3��Ӳ�o�g�	e*p�rT߯�$Ȗ��` >��3�JA!��*��s��0�Y�s��ҥ�`���!�!��o@�"��6fˀ�\���8ÂOu����B! ��G�mG��s��Y�~t��i}S[L�Eibw�F:��;���B_C`_>��	`�%&�R�AS���!h��
#C�EA�����o8� $��JU?�L��f?22�:�fU�0W:@���A�j.
� �����DOH
:㟌m$t�̮Q�6q�#c��t��D�?Ol��y�VzJ0�?��
�R���1����kv�i��l�KX��6����Z���^[v��}&�����P��MtJ��� �|��ްyA��4��^�a�Foi��^�LCE�<Fis��K��~
�s
�I��˺��J�K���25?�P��s�h�T��F�`�|���(G)$�\d�*90�SD��tN��ten��tY��ޮHꓰ�*E9w�@I��G���a�'��2-LI� )�R��ȓ��X_Ak�W�ۢ:��5�2���"�|�U6I���.����U���ژ��2�Hd�����I��N,�ѩ�`],)zYt�ƟS��3�{�$,�����T��{�nc
�n>�H��2��;����`�=��%��F>B��:�x����/��Y���;j3�nF�LY�n�3۹+�T��ѩ6ŒE5�$_r�����'��@��{��Y[�����飏>��+����W�՞������Hp�^�Q�v��pI�����{�|�t٩\���f�3���h�<I\���Y$�N���E��<�'��-��P�'��>�����$ �ië�0�U���9��r�Q�ILI[����k�Y�X��'q�~��`d�Go!>��"�]��*�B�Lw�~��{{�8������h�㕯;�E���k�Yםt�[c��m"G��\��NY=P�z��w]�<���$��s�f!��t�S�;�g�@cn���~=���D.�
�P����ɧkyWTB�ǩܱ+���Aa��+�2��J��B�1	`��E�"@ؼ�1HE�ЖU�@i�$��ɥ�:��:�������DI
S�U3�$�ZPP�p$v@�����AE��N,c����ed�/~� �dc
kO�N������!���x_?.��CQ��-+�"������*�m�
)3'��]��XB&)d*�{��L�"������v��(�d�hm{c˷������O��O5��+�[\(��f�$�C��¸�><�7�$Ik�ki��v�_03X�St�S„��h2wdy�>E9�����_R������<�� ��4�-4�4�[�
rlTM���s��uu/@��wž*�}y٧��!7�(p
 5�[�_�]�s�8�5�Us�L����PHib���YuB�[� ���+�`ok'�W,{"�x���~.˨s��;ƃ^<`�H0Oّ��2~�	�+e0aHW�9�F�:JqO����o÷j�"��N �����V3�I�h�y�2��J�s
9����hmyS`�:��lh@�����x\��\�{v��q{�%� �[��p� ����(��Ѵ"p���@|Rb.�
*�O�6sa�x+��]<����
��Ru����j���0:XY|LO��oYA�V�ד�Ho�A�y��J�$�m�&�O@�5�F-�:F��]�q�"Aa��<o�~Ѩ�vL||b��xBMJA�o��\��-��{ٖ�Լ�����?�4Eә�S�P4�����[��`ڞ:*��4uA��f^f�.�u���@L��\�fy�!^7A���6����a����s�6d7��sB��X��̃�א
�lfpY��6s��HYA���>ki+	�������1��0w�E�U�4�\��W�k���uǏ��A�Sb��*JK�>�$/�v– Ve���A$Y��d��R_�&�؈�4>�7jr+����.��Õ���T����ak�_<B�J+���'�$s4��YmQf>X˭J^t��+I�F	����	k����$|b��Bh��+X̞G�}�hz�n^k�!&��v_O;1�����a��L�\?�ȩ���=��@+�y-sZdNg���Bo����(5�#�g��ޫtPhn�Y��hW�����?�ןu d[xH���BŁ������_}���+��ۊo�>m�?��H�?��`��s
��^P���)o-�G�Y���9�Y����ۛ�7������+37��I��,�Vh��od��E��V�z���l�K*w
�[G���?��w_w�3��R�s�Ga���wu ���Cg�{x�}�
v�w��a�#2�<��P(�T���\9�Ɋ�֍+�4��k|� W�Ɩ��
���*'M�o��:��C+�'N��?;�v��NE��ڢ�
:Y!�@��
�s`��y��L6�«t��ļ Ex���Ek �\��|��TO���%���1F�{4���1{?/��W��X��)a@;8@���ح� q]I�`�H��xTrRl��Y�H����E�6���`�	�F}�&Rz��,�C*�#a(�!�ʢ��~�fT+��dZ�h��.~�Oj��)�c�9{�d����p�"����Uq����?ol��=���u����L���2�kV�2<F_��~���I
t�?a㳦����yt�<I��e���_�W;���罹U �I�P�4r)=V�E9)��	�����x�ײf�l�O�<�m�,�cE�37S٦���.E$���ag�}�8@0l��ܗ.�:�Y�t�T���ם��182P�i��t��iEGy�Bd�:��i���A���"�L&s����a�`8��eoΒ�癳<W�
kޭ��N���&ٚ^;���~|ZD����7�k0a������F�|3&�o�
Fd[��W�((c!���ј����"� ݈e��iP�����&�ގ�	ړcՊ��q��?Y����xyͦ��#�dS�Q�+�1DZ���Ul�?����\i���f�b2����qQJ[����U ��lA�/do����?�Q;�b�Q<��
�(]�:y8�C1Ī��jpXr���Ss3�=K��� �p�p�&V��[����Z3��X�E�F�U�P�)!��V��J��ۇ2K&�m�� �Ȯ��e��G��o</��]H��)�{�a������1{@�k$!ձ�1FYF@��p�$�Z ƫ���0b�M���E(�h�t<YZ Tu�����h�B���4f��J�AJ�"��8H����w�{ܿ"�	O!��?~� �+�O��	�J�(wq0�_���<�H�y�L{F��:P�YPgK\�m���,�H�$��rA
HzG���p��L�;[��`r����'8]*gx���u�A�����>�,+�︽���L��F�_<
���
j���+ӳ��"9$�Q��,�� ���$��O��]XG��g)��1o@oc��z�ܯ=ibI���mF}� Y��nY�˖���X6��6O^I�[���.�c�;��ek���GE&�!�ZX��%���^� z�e��lIi0ZJ{�k>��i�Q�h;��ޟ�&�n�֏�+:L����j�@�n#H
�k������=~~t�k�?����Byˣ����Ӛ��@�}I�{�U�����
�Q����'8&B쬉r�P?��O���ύ)�~����w���u_iq���9�x����9����Oz���?�ھ}.�N�ۿ���y�Q2Q
�u�_��s�D8̕�B��Nӎ�+0�)�k�^��Ǭ�o����]�|~+��cf���m?��3d�T�v���l�S�C��k^����AT�*w��!-F��f��z��˗�[L��n��&��5�h��k�r&U��.�C��|��)M�����fa^���K���IH��h�"4HL�
&�KbI�{���y���8���ꚪz����U�9�(B���\X��ާ�7�
�Z�\h��m��r�Y�S��.�33Ё�:�O��3Q��t�.���E�>�Fh��z�D#v��r����Ut�[/��2���yq���t��u��HRX�k�g�q,㹎�·�D�@�������Ag�(��Q�I;\�|j�y��@[,�_>���W�"�d�m=���9��,�� ۚd�^{7�d(��E(UK��
M�W�F��q蕼�I�~��'�a՚����>�$1m2!os�
&5�|�22K���Z<�Zg�����9E��T;��¦r]"�ɮ�3B�ս5��%ť��KU��<��@R`}Qv�-�����iی�Ⱥ��S��yū.Y���j���?��E�fƞ^R2��e\�s�Xa��x6��:5�%{G7m�k��z�V�^hͣlP��E��p=���3�>�,���Zσ��h�R?%.�E�*�� �A��.��d����4�,�lc|�� �
��BQ/N5"�-	<j�]�4W�,8��;�UH����BR���F��F�	#�Q��]�5�T���Y��s�
;K7���RFc��.����S�L�@��d��rF��A�cP��uO��F�y��$y/�whV#�et#<�<xN��'����8v'���u`�$z~!#�R-Jա�9�984�������lX��Y��"�i"�H��̛*(5� �%��`@X;���6�#;�680�c��}	";��NjE�x���y���9D��XGZ}Z%����X\���(�E�Z�M�&��;"o������#���1M>s����7��0-�.��MYy@U�ZY�(�\�˓X��D_�:V�``�l�\�sJ�2Q�(�І��h�ފ�h�5_+4��ѪŬ�Z�5���r������}SU�0vXǍi���RI�a�P[���I�
໭��<s+8��*��
�1nA�ʤHe���pAl!����B�l�����5�}�"�~3SZAG��"�)�Ě��<�d���1ӳ��!���2�6F�:ߐU�c���^��0Xhk������1mvO�@�
�eo[e����:�c���t-�g��ϋ����5��w�7��H��^8�m�(���Z�Z%i�D{tIj��|���1�	K��H2��K�}��9� �
�5�$r��pL8-��>A0��`�{�Dt� Y��X%��	��+(�SH��ʉ�"��Q��X�`����]���0p����<�3��I䄮��]�xXļ��Vz'�N���!q7�_.���?������}��罽=�חo���xV\���{������8pg�?��B_t\os
�@)Dɮr'��{�Wʽ(��d�^�iη��)�n?{�v4��VxY����e�EI"Q�@ѳ
V-�+�v&��]M�_�������-�����VS�ׅ�(���#�$tR��
�&��fr��)ه���kBF�熃	yD��t?^D�Rcҁv0ۖ:C��T]���-	�q���5
2�vN]��]�8䴒�C����a$u3��դ n��Hg�e�x֭},f�9/���ڊ3za��{%�څY`:}��9��B>1f��N��9�N$ʒ��Y�8ꎣv�K�E�O�x�Xsfy�6W1t�K��bΫyC���!�>7�h���ߓ%�0�T_��ݹ��H
�л'Wc�Y��\TBK�ē*�����z���d��`l�*]�팿��:w���%*I���ęU���l�[���ށ�/�a��D�0��I��b9�c�����i*x���_��5��Ġ�~@�*ZG���N	��YB�w� qs&H����@E
PO�K(
Eh��Fp��{W��fI䂠K3&�U�����B�s��S��FPlsԬ<|�)`Y��aX�N�kǞ�\��>����qV�!E�,�Y�|�B!7�jT�H.h^!��1����]z���C7��s�B��ި]��붱`B$Ϲe�v�� ��OVp���	(��"��_���ܢ��b�4��wg��r
�`�]�54*Go�v!��s�dn4��I�5�FcO)z�o��V�%�\��
�;��Ϡ�E6���3E��(�l�0�~��F���Ň�C���/��"N���c�!J0�|]���Փ�������*^��[w����^pŒ������\��"GJH����J��yX*�$��X*�AJ�Rk}�a0�*����/T7��s_7����_'y��ڡ�9&���%�6�m@b��9���B��;%�KCeAl:>��|9���$0^O����a� ���U�a�.���,zi�l���O!�RC��1j�.�<	�!�l|6�׷�
�m�s1@%�b�s	��&��M�?��8������i� �;�Kg�r4�����UBy<��06z�� ͤD����4g���4$I�N��A�e��kn&/(B���C9�40H����BՄ]�]�ڊJ�s]3�@K�
Xg=Ǡ3��WO���2�)m���o� Zv�o�{��c���mL`<�
�W��~��.�)H��	�-d�%IR�E�-����L��%�f�2h\�@#��wN�>F�КD+���yv,��� (L��2�dž*�i�Fs?eEd��R�'�L�m^>����f�+	ke �\]���dF�$��z��E�u�g��%n�|�����@��qlq~\�}��8�! �_�:�(ʃ��c8aa��#�o�8��f<:��{#�>x_7ŷ���#k�uo�2-�^�9�p��zK�H�^ذ��\Q��5H���
��2W���U>��?/R�X!��/�(��O��E���9�f��_iq�u��/�]V���&�	~���O����N`�<7��pچ��9�F�ҁe��
�r^fhN���I*��H�W�+d#@%7�]b$%z絥�����l\0�9"���9ЫݻE$
�P^�����4�cn����l J��G"y�C9�:�pw����4Ǯv�<� 	�d���'��+�r0E6�r$mO��(��GJ�z��D�`�(�=\�&�P#+����2���)�����ER��w�o�p
�Z%�ܢ)OR���/�^�K�R${M���`�׮��A]$H��p�¢׊1���#ϧ���3x����cIC�zሳ)v�?Y�esg��C��
q�z )"KHbU4�~�{z����[�^,0���-_��
I~�9X,K�#=��;h���9��z���ݧ�\4��hG�v���z��
�B��� �R&���u2�ʪdB"����V׽K� &��|��y �&%%6�����I���wcgUAh�Uu�J�\U���2�
�n�$�:��P �7Y0����x�XQn4�87q�"<'�,
�j�v
ݭM"^PB��.y���k��J<�oڕ>`�4�`C�C�1wu�qA�'^?#���%���!�x���d_�z��s��� -��&���@[l�]�8�Z:�n�`��XS�e�3T��5�$��<��㱎�Eܑ��B0
m>Š�)1�Ns>;ax��a,1&�&s	C��y�:��l8����du�D��<�+�Yo/A{֓���A��Dž����l�5��-)M���1pړ1�|Ut+���#��
��F?��l� W�@w�@T`-�\�{U}eO�h�S�\�
��O��Ft5t	8���d�V'w�4�xFD&
ڙ�m���L��Dsw@�Mw��9F�YMG��+6j\�lFo�Q�U�G���~eԻA)Y��\X0Z��X������􍃷��%+�HAɘ2�@I!@��Xh�=���i��W��=��f
��ً%x+�rty�0���9���~����C�7�4�=�!�*kW�F���+9t��ŵ3	<jk���b�o��@�g�mzl[�+��3�ޙ��-l	�B%�D!�,>TեCѠ�;�hѤ�O�.���U!�$��	����)
[��d�^�=c~F��3�5�w��{�9���^+VĜc�9F�8n�A�Q���AOXR@���k�����J��F�`��f@����s��}R���Vo��z���s(V��֔u�L2�b_��<���M�;]a">9X�׆��M�lb�h&�G�id��ꘚ	V���
R8��j�7a��±����z����s������U�*��-�u��i��/M�Q��Y+g,s�}_;�8��C寱�!��l�'eE�4�wxLF��l�e��y񩆏�#ϫ�o�}�*���,d۫x/��zrN8u���OP��`X�{{��J�۔��/��/7Q[��ȁ�]����t]��`?
$�auty*c�����'�	�����7ʭ��^�9�ӻ��/��� ~=9��5�7�5G���k�t?r�:���H�N*ry�?�����CL�h}�;�x���?���M7�vd}��4�w�q���
��I�2H�C�e}���_^uO�o���Ku�p�&5�tܓe�5�b�Қ�;�Ul��0&�x��o�^�VF��F1	����$X&ͪ�2s�j�/���>�%�����l��&��P�>�I�4�r��p�`5-�7��0ʒb"���8���5;��)��`h����zE}�"��,�v�+����O��L���4]C(��1��B�7���U%&[R���������0�,�,2�<�f�z�Ӱ�ln��7��+��'n�k�F���Z����˞���a�*o 	�{v0!�>ۛ�y#L�'y���tt�{M�5>��.]:��k�Ye�7�0�F�����3���Ժ��%BgۘJ�im�**x�#G��`O�Z�iV5�`dx�McZR���~Q�K	q�*2D߮yFĥk�=i�|��R�w�����8cE�c����,�Qg��-$����ע�8>\��\SP��[����c����hP�N`���i�ޫ`C��"���MBT�䦑' ���M�/�����~.&a��A��P�Ŧi��ѩ�$o˜L��'�z60?wZ�U��
��k�7���z���f�4t���q?*�Wҳ[Nl�Ϟ�S�C	5��'��Y�L�<
8�T5���(ؽ��7�R�	��ȭD6�X�Y�1�Kǎ�\��~n�#�'�Hy�g!p\�]�,ȝ�����Sۂ]P@��d�&=݃��4[�#�?��P�i��������������:��O'�3�6��lӿ��|5�,�����BZ
��>N\��4��-Gu8��1��N>�q�F��AO�Ȝ�'��k�;I��i�L�>�5�b�7tP�>F�dmW�hQ��a���J�$P,@�ڼg��7���좩��d�"Na����=����V���Ym:\���I9��ˤ`ߏ'+�%���9���%.#|Ux*���O��-�a�@@��hz�������|�lM'WPk���]WO,�xt�?>"��ƈ��S���`],D@U���O����o7���f������n��]�gUUT�=e�fO�v�v��Ty=|Ƶ��	��5lZ����%�Z"mBVE��V߼�l$�Vd�6wX�de���fc�:F1T��X�u=�ȽxP���@@���=5���&N���h$5/�y$�J��E���9��`x��
�8â�SJ�A�w���ژ1�P���
��[��-B�����m�BTޗ���V�y�*0���R�5�&�]�u��Iq�����>��os?3���
e�VSp�.u$��l'�5�c��
�
H�N�Ѽ>*�*��{}`⦷*������=��⌒2� R,v��\SI�kw��ι����_�O��Z�h�<�7�mb;�+��L
�t���ưbj�"��nla��7�H$^��|�d���z��������ߎ��V��o��W��E09���翔��kr�WO�ۯ�i��w������+�翻r���ͪ����܍>n�A�
[���A���?���\�>�U��P
,�|S�!}�Ɣ�*��)!R1J��[�mq��3��ROe�<��_��I�E&�I4�u7Ҟ 6�&�FM��|?���L�ǫl�of;�v��ru��=
�w�)T8�����1?����05�����G�=�Z��~QޮK��C�Ζ1=�E�O��f�7��[�{��V8J<89�"��0�IM4o�d�p��-דh)��f�&�UK��}Q��jV{	�B!��~$�����U`}o�z*a<��%
�\������F�R�ֻ�_�]�?<����G�S;c^����Ή{g�����8zp�a�<�	��lʛ�z�PLV6�a���:|k4���I�8���&!�Cf�d{,�Vܔ<�:0�Qi�	�LZ��mmQX��dHMkO7��ż̮@o���&v����ɲ��:"9����D�j����]�
�.��?�d�lklHt�i�ڣ������|hL�m��&|e��F���d�q$��Y��N9�!��*{8�u�j�j�!�ː{�\�����A\���������'��b���O��c?�j���Tt!V���M��eۤM'���r	?j��b�\娦�k=��ı3���t��j(�����zmͣzs_���Ase�'S��H@q��8��1�h�#R��/�(�~D8������>�߽n�`�;���ta���8cO��P+��5�6c�_�D	���Q�K�i5��>1|4���;x���v<�d�	bw��C�ş�����f�#� �:�ĘYO�'����i�e�=�.�!�����.��❉�@JJ�^(��0��ɨ%oF����;�)w�����A�|E`a�On�	��������f��Ӑ	)��Z��x0�H+Ѡ��mGp���Ͽ��w�=��U������`�Y�?
�TX=p�8�ݸ�L�(��l�v7/:U��[���z������qm7�k5MQo�5��w2�{M-1v��g"*�p�"׿�jS6��:��u^3�0+�n�n�b�
�5Iȼl)E~0pr�wm��=�ɻ�N<�kz����&�uL ~O���y�(B�]
MQ���pY*K8�}c?k4��=8�uvuhd���T���?5����_��T���'E�T����H�&4���V�߭�򋋄�E3.l�E`�<���m5�N����ή���~��y�@��Si$5<�'L�4�d
��g����>SV.��
h;�=x�
��ΐ��}��@ �`߾N
��E eB=2(&��#tBn�E8pfDh����e��U�L�^��vPSs3.�Ib�CI�'5
���0�9�9��z0O�p����x�������?����P��W���w�v��E���
D�/~���@I���?��ïɁ_!1���Ӆ�w����z�_����G?�αix�v���c�:�������s�M=I(({W�rm"�B�b��7,h�'	8�?�쁯J�˦�m���Q����ƭ=��R���� �:���ķ��Ԁ5��r�̲Q3���"�Jb[<�sC?D!G��@K��>�PY�d�cw
枖�g$A��Ʊ�%�Q%��9x��#�U�]}�݆F�/[_t�W�i=S���|m�X SJ=�>��o4Ѡ �<�)G�d�G�΢(�L)�
�z�D�����I�:�����<!Jo�0X�)M�{1nz~���
$���@��A&h��ov�&AC�-n`���|�1�䂣�l�o���Yc�u��=�]I��ej���6�����2�j��@��纪�i��@d8�C�LOn!�(�Ĕ5����->��_�Tb²%5�	8-)�r;�:9�B�J��>��!2�`	$�a�~Y��o������>f���j�����?��mL)�e���L�dEF*ԑ��H��?h�3�/�M�>��~@��|]��;�z^�(#��ɬ�+m68�&�-Jڵ�}?y6ITT���b��d��"HV�u��mJ�r�z	p�ܞ��7�n�J���l?��߯j$�Y���\�p�
2-�$�QG�	�(g}0�z���=*)_��a��	�q����1�b���u��tN��);}H�~D�D�9������][��Ha��%�5_಺�Zz�5;TƤ�d�~|[�
�1x�3�@�|��Q�
!�}2 �O�]��\>CsP���G� ���9��/l�ۧ�k�'�0������e�L�l��T�De�����ki��8����杮)<���@S�4_;�-Tb�S51ݯ<X�s�1慥zM+*��hM�^}Q~����	��
������!z@�f�Ί$-š���I�d@۞�D�
\�3g	���w{Ǐ-=������
���GP>1�4�A�,�Ji���~�����a:��ıQ���xMH��Ȳ���
~7��s������m!��Aj�M��(�T�&Y�u>7F�]1��%?�d��I��mLDIA��[�v���ȢY5��ڣ��Cv��U�fc�zQw
P�_l��78(�'�懧��ý+90<�@� �8��x����5f�YVh�A�i�ݠ�̲�)7�����8�PcE_�*)v�ͭ�XCe��Uƭ�X�
Nהь�i1@e���2�gו�ij���A�_��r��Bnx�0rfA&a���Z�'����:�6�Y�J4�o�H���(���l_v�@,�^��k+NU')��2���7���dooT^_%��m�|=V]oM��X��MO�?�9o�Y
����r�ʟ_��k��/�����m�k���;I��o���*����u��t���^K�K�����������e�?�O����?�������	A��I�bD�*I
f21�����x�>���;�`$�ն�92�
��i�2i?��-??c�`�ʋn*�C��1��N�z3y��O��f���K���{��Ms]�)	��hﻝS�s�Y�ry�"k���v~�]���O5��L�>�/�t��K1�Ul B�ݭ
���>i��'���1�c��Ȃ\�>�%�����к���\g����;�?�I�&���Yيr�Ȫ �A�%RKLYT�~���זm+�Oɾ6�Y~�x8G���n�	�y7틍`��=y���a���j��]�G�T�T�Г�
��m粋��5K��U���uB����񌥩�ݔ�4	,l��D�]�}�>y�{�����e؏^�k�>���P�6jz�M�M�<iZ��j��v�
���W��

<��%O\���麬��뇑5����y��FN��zd�a<'D/,��=���f��Npb���Y<a�Z�P�.��l�3Bݻ���l��~õ�2I�=�n9D���{=�}=Z� И
�:Y x���<�Q��y	�A�/�}UJ3��+���z޼4W�����[��E�Aū�z��ZE�1EoB���h�EI$�?H"9JE�Y��nK"���{�����̶����jv!X��?ĕ�u��$��_�IO1�Q�{\!�gLM�<C8	�-G]�f��T8�@��?/$�q׉�
���R�#�J��Ll+�x�䬑&��T�bA�w����#`��ྜ�����֟&�Sᢀ��O�,�Lˎ�p��7&�����	���Ց.9���u�<��m�'���y�~0C�ӽH��c`g��r|����
�'L]�d�C�T�NT��}�(�^�j���-k(n��Ɏ����"�6�)��J�^�u��h%����%]Rً0�y|���Y�!|L��6���-��D=����@=X��uZЧa�}xf��͍�4�T���K��>D�$����aK���YH��I�����;�z�*�*�b�,�[�D��[В�M¿�:�C��>��!��j�b6M9��B�
�g��
k׵���V���)5�+��OE^��q�'sd]3>��4y�^�����}�w��X�*oo	�������D�7QK�ڡ�<L#�M�el��*���y�$`�m���eU5h�h�X��*�jq�T�������O-�/㵔D����ݿ�GW���EUC��>� /7R�,O\\�jFd�u��[ �pEi�R��L�Ū���������Z��u�h��
�X��֔�Ł�5dc�e���5��^B�w>n�j��Wpw5)>�R���b4���d��0+{���d�����iH~v�z��cr�)Y,�*��?��i�ɻJ.��۫���,X�:n9�b�-�N��U��Tʊ�ؕ|��s�r;�p_�ɶ�b�����{�ʿ_���5��_��_�����?��^�ӗo�F�$i� ��#�N�ybx����a��*�H�3��$�+yH��
Xn�yr�����������5!'�?�>����M�]��=�ݛ�͟���h{��ӓL	�z��Z_:ix� �̳��Us����ބ1�~�yP>��'*�l�ǿ���
a�ubtX%�j�pD��w%V(�{ؓ���<�@��4K8!A�bAI�>�z��Y�~H|��T"�k�ޤyzSq�O�I��!H�'ઑƘ��	>�Y�n��G�dV���j)#;����Q	���s�.:��i*�H���(���Rd*�]�ܦÊ��^���O��g�I?Sh[r�8��\��l�ʰV�aG�6B����f�)�E�>�X��I�l(�S}�U�h�xW2d(�?���=յ#�f�b�c�Ji�,Y�\�_�)�7zƗ�W�U1�}p���w��H�jy��,D�e]qm?� �6bm�um_��)҉%����h�.a��>/y/��x�r�s!N�z�S���Ĕ�M=d-�x�����+�"Vk���9������XYΡ&V��
[Ol��,��/�3�y�PAY��{���,�?4(�ֲ(}Y���Z�8��3e}�YAd�-g.�A�ڶ��s���?p�}Sۺ=�bcĘ�D%���P�c-А1�V"�E�f��#�lX�>�;�������"y6�s������8X�u?�bh�?��R�&�P�au�ې
�s4�'��dLNEi��1����r����ü�Jr�b�1��u��,����SOm8ց Xas�3�%T��`�����*\xiI�է�E/���w&�[a@~�崘:��e�G*�%�߬= Cfۂ49+�R�F�UQ����%��������k�m�&�4�9)�����9G�OF,���u\�$����^uR J^EQ�\H�b���z�p���Fd�٧V Y1��<]�"Ҫ�
ˉ��v�C����븻2�\�dK�W�hL�Ԩ�/k�)(��*;L�D��S(3!�an���G��;�<*
��}i#�	�i*z�y��@)��\'\ H����Sqn+���!9C@ i����$[�\��Y��a}�-���Q��[Q@�:�[������JJK
���mBkYᦡ�JV�!����A}��<W�<%��L��H�~����B^`Z��ҭ*�0��kV� il_�iH��j��\l�=�c"[x=V/ل@Q�b�{g��l�� �3J#��5�aӛ����p��eo�Ծ)H�{��6�\�Sc"� rij	�+���_������"�c�8�����j#��r�^�"������'���T�"�D}���l���|
*i������R���-���d�5Y
�T‘1�3� [ݮNxoD���ooeX�X��h6�!k6™_��x���4Զ����*f�*���^w��~�, %��b��ί\�N��5�������I��~�5���_�_������o�V�_���|?rXJ���B�KFǙ�g)��R�4�-t
(��
rP;����l�/�o�lo�}"_���g7)
B����4��4^�������8���?�v��*�Ǿq0g�H/��D��vi>���{R�2�m���?�/�����g{� K^4$��-��ך6i�V�z��5���Ӽ�n�ȱ	ER+�a�aň�K��E���ċ�6�O���{Ġ#_�ƖzC�P�z�Â\��5��'������z�{�{��Pr�[�)9��F4�T9�;� ]M� �<��c��IQ�5v�T�����,S|�TB�#�ijM�HyY��fJt�M���a.Ո��I`���Omv:�gcSE{��6&�s&�
���Yf9�E�=�t���0��|!0m�U=�����nriov�y��>n�[�.��<�KI�ߠ�[��-��c�Ut1��_+���ѽ�F�]'�|�Uk�-��x.iL>I��؅�41EB �1����KWp��A��>�U�T��2�u�Fp��'b�z���#k�,�bD��&������ܑ������u�d%mpĊ���%Ӭ��^�:MS!��۽i���SC�y6[�$�K/<�y���}���Tb�y	��i<�&��z��D@������\����I�4��+(�� ��IЉL�����w��SDly�Gq���\��l�WDe�s�%�ʂ��M~(�3|ߴ�몦�E?c��,���O'
ޑ[<@�W���!]�����+u(���/	̠� ���+-��,Gn����t҄��N��r��������e }$\�4��/�e荇g�Pg����j\s����3��BM��Ӊl��7KZ�S��2�a��A��tP���y-$���Vo�0�ӐF��t�z.N)��y3�#�0x�v,M��+�'�|��5�2��v���G�T���v+���M�ʍDV�d�UN#D�mv�?�5���ޔk9�=�f,�D�/��d%��8̪�,aJ�G�r4q��	�g�<�̾
�M
h2�k� ��s<�ED��R��g��g�B����2�v:'�
A����ȁZ	�r���BW��?�	@�n����2rاa�X+s��;�g>�c�-M�[���,d��Rt��J��Wޚ��໩?��k%]+Y!��l㑠�uK�˜�P��|I�h�6%�XY��h�K�1�<���kL��̧�L8*P L����;��uMh�-8#�J�'nQ�<��>yX݉8����N&�\�Hly啑���ir���߇����e�C6�:nm�Y#��'j�*���g��1��E������-����	AH��~�t��q�o�0����1���L��<�M��mr���-I���&���?���,��7�������'!���>� ���kͿ���p��o��2�.H�{��09Z8OF��3rb�B���s�F�+��_����UY��2b���o�V�[�|_�����d�<�ӏ�rK���2�b!�6ap�������?��|���Orm=��)��}���d��L�P�\p��ßCđ� �{k��W��o������C髒�]��]��zhLݒZ�J`�:-���ȣ;(2i=f�������5~�ҳ��ּc�U	���=�|`�.,j��Dnсf�Y"8���6r�G������2U��0�閖i���'u�~J����mu����Yf4}R���N��~�iP�XW�#R�J�=�dz��6�i~�%�w��꾞y�W/s8�ݟGP�bL{N_�B�U`�P�}�	�
������s.fE��*�=6F�����\ �!h��k��N���A�׈��J�+Cx9Bd#�,8��V_"ݮ{�S��)7ʞ)�(�:D�dy`X��_����B��OL��Ӳ;������`F��̢��^��{�E/��f���[��gɓ�?����q�f�cr���rJQ��{P��^�?����������j/J9�����I�Z�9�DF�@$#�	xoyN�A�mv-�}���j��ɡL�D~I�IĖ��=D]J�t��*��z[��Dmo�Ɉ���T������*H�iq������Pd}�k�Ċ�zB��n� �D��:����#R�9Y	4	�@ڃ`ڏBlj���o�aBĊ��_}��sA�,��Z[���E\rP
�n�L]*2�@9��eR�\��w�p��k.��"���Nj,8��s!�#��lǂ������?��RR-3��M;�M�m����j�E�1�H���n�W�拎���$<�X9(&+�k$�?-�1�(�x�?�� h>j˓s�����K($Md�<j���FL�T'I���o��&W�ǵ%�&W(���~8[���7�7�l;�`̂��-ܤѻk�&�)��I���g����~F�Mw�QG}
��_�+�e��=�;cK$���S��;��7�z>����B�K�P-���—�V���fM�éNդ@k���ڔM'�/���[����1�(�c�P��3[!���ں��Ћ�>����n�K�@���g��#�-��K����Ӵ��pJ�fb,�BC�7�n!�|p^�Y�M׎���7�r�T��?�-!M�����!X���a�s���%�1�c*��\�F��!��
UA=~ޛ*���,a�sl���Ch̕e���X�Ҹj~���]���z��O��V���8g��ĢIޯ(]�
�d���:]0���(�V���
��,��WP�6�> ���+�Ƌ�Ϸ#*>��>y������/Zܵ�22hKx�L�m��~��E�>�zw�#�N����WD��|C��QY��d
,��d}(]������"�t_�OP���Ѽ��/_J��
��M���T
��/oEr�hQP��A��AԦ{I��y�_�zI�{�?�AA��o�)#����4�{(PY�a'Be�㧸l�u{�I'>k8������Z&S�%^���S����']GM�iu�)o�~�B�H��Gy�X��p>L6uL�䑬ϔ�����^C��=	"�������oy=�K�}��%[��Ⱦ�~���w٦Z6�a�v�g�U�����o��:�؊�E
�X,;d����Ϗ�����/�^0���>�k�6�
���&%�������e�G1aq��+S��{���E��������E�|��?i����d����W"j?ڵ�s��~�~־?�i��L>k-�d�7������Olp�Ͼ�/ĭ���	m�j���g�{��_ƾ@㾙 蹅ءv��u�^U�i%�p!¤��4T����Ff6;O�N��?<��!;�{��$��������8�1����%f�A��[��,Ԩ���nd p��N���k���fP)�(f��-���mSK&�������pNQپ��Ճcs;
�ܪH�������(Ш�o����T�tm�چ�2���Q�a�ĵ6hV��u���䅂	H��7a�,0�ȈH͢����Vc@���QSQ�#�N�غ$����m����.�#I�<��b�fS�]΃��������P����e9>�bM��r���>�6�6�a���7����@=ݎ�������<A�|���tŵ�s�;��mތ�f�v)���'��Ev��g�) #����e%��F����5{�v,�Ҧ��~=lCub�d�;�-:� A�y���Ѱ���5k��Q :��h��J �E��{42�Am�rm~- � �g��)mR�gxݟ��.�!�s�B#��	xeo�~UD�X��{ޗ�2�s�'�����)��Q���=ꎾ���b�D�[ƚ�����M�d��4)�g��-�&��AR�Wd���,�_���Lo�M�?���_�+���/И>0��6���p�~��0�}k*}�X��/���⍩��0���R�Å��̴���#b�k� |p�qR?$�kHr]Ȓ��^��:�'��6q!����\ck�T&������=\��<&�pQ���b�a7�&X�1L!��6^����}]�L�#`ē��`qF�eF���[��t/oLc3�e�6���V�=�go�2��.���WD�K�h��/��F3 ʿ>��5o��E��3 �k�A
W���\x<��(3ҘX��H1}*�2ś�����q�G���
�W
�i�?��%:��I����0��V�5���,s�9`�ߡfx�����2=T���R�]��~��UNE Rb��y�g�e%0J����x�*��z�Tn�2H�`w *��(V:�钸7��6]p�
d��5�x�ɞ}�����ļ�F6}��S	�_H�4�"=K`��r~���J�+B��#j��t��,�So�ל���r�g����x�뎻,��L
|�dm�������<�&���s��8���Vp��H�[J]��j�G�D��KL54�#D�Ŝ�g�ۦ��&��2�I8F�V��/�[����2J5ޯw@S�Vu�K��H��
��ҧ��:���U5�ho��	%�|��}�M��ڊ���g�0�����Q�Mp{�'�T����E�4��0�`��2�2��~Q"qQ��g������q�r��_��K��0����h�4�����
�M��۫�����Gû��f+��&��7��[W��~M_��n� �
�+��S�-��e�	�1��5(�ȟ����J�g?�6~�\:C�^�=6JJR:f���������E]�K�,�~�wܫ�C�6׵��KYP���_l�s���WY߿�5=h���;{�F���~�[�������u�)RX�\����]��b$� \h�����v���A<�Q�ԗL0p�v��w�)��n�����$>����������G�x�^o˦�g
��x}�:�bR��G�tfo�8��Ȯ`�n�H�w�pZ~�F(߳/
��t�ߤ��֕�eR�����Q��Շ���:$���]S-����'��
ҡ�vU�GIH殖�]Cq͊g�	�?.��,�4d��r��o�ڑ��|�g�	z����y����t�X�B�;�IW�)�a;�@ȓJiAE7��i���6	��~q�k;sp�p�Q�ZM1�>M���=Y�e���E��D�V��ާ`zYV2����Z�^�5ӚZ��D`V�[�a-YY���9�@CıF �B����Mk�q���i��}��"�>/��۵�:�"�=p��
��l�e��2�0�6���)'TذY�d�~9�S��cv͆b��#u��Z�L��X����t����]�a�kz���1%�ZV����H����p�����l7r����*VOj�\ramS_Rs��^C�s�������@�6݂��feK�p�w�qX�I��=&��$�{}};?)F��!Bl)^��6,�k:eB��of�4�0���H��y͡�e즻n��P��ƒ�4IC7�{?�����3�����Jg�������=��	;��@*
�o5j���̅8�o�
C��!�\�M'DI�
k�.%Mf�n"͂S���2At��%m�)�S&��<�@�O�g�ڠ�������?�Q�]��I�>��۲�n)[�P��b�b9�
��|�{��=���� HX̌}��FJ���va�A�I�q�{�u�Q��y����)�_��
��CLq�z�� �-,�-��E�1��W2 @�f@�m%���Ƨj*�+>����X���L��,����8���Ķ���0T�|	O�f�'������␀�y�h��7L
��<9؝l�<�X�<rZ�TH��~��䒩4 �)�d�o�AzϺ�iFԘ����7��%M���%�6��oz��X���e�܇]���M��$�v/a-6m}�@~%Bj	�|��w�,�WH!iua�n�`8�\"@���v�|9@5iU!�}[jFI=�;�{E���)8A賥���_{�r���[V(ź���h-?�[��@i������{}-8���Nh*�nۂŐ�P����#��-1��=�L�X��[5K��z%o��U����;0x���6�ވK��4{(�K�s0)�m�@cf�U9VŪ�|i�*̦�^V��*sJ�[�����)�ti�_DH�����%(��D3���0�� ����B��[V�d���8
S+�@�YI��f��R�z�<��Bq5�~��|�3p��O�-��<>P`��ռ�oz�:%T4�y'�/���t��y@R�W��"����z��y�8k2�F{����fq>��˛���3��.��{�k��Y8��@�����ƥ���RS�SR~Q�~�����{&4O����	�����n��$��C�ʞ�ڥ�2�x.��,2b��lG�V�%U|���p����##��'�^Ͽ�'`RM9Έ�,B�d뾛�^�y�A�U�b���T�?��~�$\{��X��5�:%���UP�.���u�Z����R>������Z�@�k•eB����5|�h�K�UK�!�&d��KnmV�U۷��� �yR����)�\����Gw
��X�U�>)�%��R.����j5��rfi�c_��l��\e̎��������KK��[�J�x��k�y�����=�Y����fV@��4�T�07/���M�k�F](���!�M���� �z3��.=�����c8��T@2z������ö�2\8k�T�e���( �^�'
a(�^�(PhY�=�;��$�|�vj��Cޛr�)�-��O%+ܚ62���)[>b?�u�f?�QkjJ֘��UAe����F�l�[�
����8se��˃�׳zG#0ɋf�(�l�t�)��൫	����'����
��H6&��4-T�����
��RL�=e2�*�kʘ�S�"�8=��&�!��5��D�dP��n�n�Ua%�BЉ5�y���b�`�����%�\7�0ٛ3�\w�~�W��}��x��tK6��o7�E�A�Wؚı���b!е`��cn�k���R�i�
Ӟ�Gӵړ]�M��n?7�44� ��g/�i��}��9�E�Ӑ�D�v�H��t�$�.����S8�L��$�$Hvu}%b}��mɺ�'Lқg'%��|h1ehs�y/�d���.����Tp����g�T+:�C�M�+��䃾��X�%��%X�M=�t¬�FA���-�w=k��N,,��JK���+��G��m���{Q��� �l����6��Կ'y��Zm|ͪ��sF�z}N9TV4�lg�gZ���+e�$�GJ'H`�i�Ery;��-�&�8��'K#~��D�Q� 
���e����C���b���_���iڋRw`��.����թV�e
t-{*ںz�*���ws_�6�0���`j8a�`9 $�b	YJ��D1݀e�fDWY�~��g�,<u��T��y�2��YliX�
S�5)J7��{� %F���S�u�(���Q��^��1�;,|V:��+�g��Qu1F���.�������@�m@0
����d	�Gɢ$aR.;���Y	��|�fuy��wK/�����&�$�c���ܻ�(�(���O�7O�l�j����ȽD���u�T�25����,��� FM����Tkz��X��U�D�l�_�D� �y�Ş6tD���\!�s���u�
�C�ZSs�X��N/�l���z�n�±��"=�~���#�M�����-
?�8S���9��y���M�¦
`��\h����.�d�5d'A�S�Y����)�,���(���k��QCOA�-��h�B���bj7�G�h��`���R��~&#aڢ`,�_#�<oLv�2��2�QG�$i�i�d.ܿ��q@7UZ=0��z������P��������mW�:0P��*��R�$���Z��F����Ϩ����䳛�+Jõ4#����=x��T�X5��*��<ѝ>(
g^�tD48~��(:@���#3�~򗡢c�(�]�QE%?��M��r�H���~��'�5Ra��23��?Ղ�v�R�Oǯ[I�lQ6���|�����JmS9Կ��iS�kf��=��<����?�ӹVU	;F�7���&N�,�rK�	����y�yS%�``t(���C]�B9+A��O۔9��Ì�|c��ӓf�E��A����.���H�U|94|W�&�7jL�|�%�y�����y2�R\q;��>O�Ѥ��G�����<�p��D ���a�����2�ߺ�dl�4B�I�5ެ��7yFI'��'
���}����t��z>gH��"L�yS[�ے�3�U���T�<��i�-�8�,���2������*�@JU&�)���]��/7�:ì!IT�Mkؽ$!F� rK���T�T�~��BB�Œ��7
�~�*Sq��–)S�$ZP1�[	෧���&�A�4���r#|�
B�)�Z_Q"���TƘ�nzMl�v��4wCw�G�DB���'"H�$8A$�V7�*�Bў�'�T��BP_"ɻ�3"@�$���f�܋�=[0B I�)j{b��s>[��<)���1�I`��E���j�
�����tg��0�=�.	w;W)�J��A}n�0�2g�U�u��;@�|GGM��t���Y� ��N^c3�F.���[z�F0	[��)PzX
��_��%���!�}G߃l�ev{�N1�N)�ـy�i��&z=T�jw}�6MY�H=����C��}9�ؿ0��fEk���P�^jW�h�Hi*�{/����M��s(d*�����27��9Xy|~�đ��1����������9Ęb&��@	o+̡�ǻ���<���2
O칀�²-cV}BlI9OG��
d�.��~1��-���=�Yg.�1�E�sJЩ�/Y�b=�w�`ʧ1�)%l�$��l��� �ܦy����A�n@��e
{�:��k�r��#;kp�g���r�7�V%�6K�SI�:>j�7\@������{uV!�$
ɔƮ~�22�P��� ���*A��Q�a�KA0sg	�bA�:2�T�4��?�͓tD�����qs!ci����]�p�3`"L0])TB H�J���#��r��aRf�x��˃�j��.���5�����C0ߥ��i#�P,cn@�<�M�G�ȋO~�+N��@#e��o��~PB�0����~��>D%�k���
�s��I�2&T�=�M]
��4�$�&k�_��0*�i#��p�ʍW-<L�~N(�aAEx�HIp#���	�~ ��~�Rx^/��U��y�85�3/wұ�<}�*�LG���{�����I�B�r�k��k��V`�Uƣ�ڤ�a��N2�No4l������0n�P�M�R��5��ت�XF������7}?��
Mܨo�^)��{�.�/o]�n�C}��⫪ۻ5��|�-��Fr3��>�0�p��s�^���$�_��B�j��{�!��<��U�څ���of�Ї�5&h�2#y�P^7�Y�YmL�����vq��k��F��"��e��_&y��2Ok"<Q���Q�x�oG���V%��j�鹔�g���y��Jy����y%��sdvm��U�ඪ�{�h}V��a#�\0|w��I���ݿ��`�ɾ�Py��R��N'�щ�6Ґ;U�܂��[q��.�A�g&Vv�A�cZ�jpm���㼽D�r{U�)����e���� ��b��,D������kH���+Og��I�t��2ET)�I�ʵ�?����U�q��k�����^k�=���b�4dL���u��Hbj'�1鿯����s�k����?�H�έ&�=zړT	fݵDp��9�D�����5��뫬s^��>�ϗ�L&[���4#T�Jæ����F^��t��OU��/��$H-.��{�O���!�%�࿉Z��@ R5aLB��0Y��Q�`�7��b�lx켼��>r�I�׾�؇˦g�$Y�:�˛N����Y������fY-9$�D;���P�B�����LLI�jS롮?j(��Dt��?��%��D�9{S�E�2>����3I'6S����Ћ��+
6��g��5aV�Y��l�M��n�Wh�������-�D��Y^r�0<�/���f�5�j"6�|�$2����Ǻ]IKItJhm�g4�0�pO�1����qU��ΛZ�
{)V{��}�̀�&��{�87xʱϒ�}�n��_t��ԩ&Pb���H�N�ݚY�b��v����p��{���FfQ�o�	c�e|�f.NRdB����[5�I.&p��+r+�������0��"�]3LF@�����޽�

-��\ˢsĉĚ�����=�I�(��𶜭��Ι*uLl��yfY?��|�i����U��=ٽ��_Ӱ:� �0�"�M���d��Y\k�:5�At�s���32��c���(��8�a%��m�|����0z+'I���
ºͩ�Q�X���J���5'�|��h���h������<0��Jx��m#�{UT��3�pl&޽����s�k�"r�^����!�8{f�>��/SC�S�|]-F.�4ymxX�	�}�{-��&�k;���wku����u���Z�A�7�(�,����Z�~-�W����N�vN_�sc}?�4
|(f��2���1��_Mv~d�M�4Ϭ�����y;=N<|�k��X©�Ɖ�*%��Ô�С,�p4y��IW��3H��%�7�<�h��L�>-���F)����:�C@guV��x�5�0�`zY�i����F ������rdG4�"`O�Bt��X�;���d�7��R����dʥ��ݫ`�#H�S��� ���3+X*���u'U��-��>���ĜVS�i8Y+YE?o�x
�	G�m��g%gi��U�t�>���q�7L|�|
O�	��[ݞ���ڕ�G�/�73�	��j�S�D�WL�\�aa"�F֑�l4O#d�5�!V<��/�s�nk�&
��P.�>���y
2G,��(�TNKj�`��X_;��7�2yVN�1�fNI����=�@K~�Ci�ȕ ��\�w�{��a���Ȫ���mJ9�b���Le!K��(�x�{Ɋ�Kz�ne��J�j!�:Qf*}��I�[����3�G�OXL{v��R���SoO�>a\Lc��6�P��l�Pw��L�\�g���6���t������U�y�L�XOY�����J�C�4��c|<�����f���n��ՔsҦ�FOb�������C)��g[�=j_��MU�poH!���&+��zfr�
l��#�O�4���������Y�]��%�(&��kTy�I�ΡJ{N�<�����'Y�g��+L��d��
�J�T*�7@�]����!�D�P#�F溴�T�Obpu���������wrx���OTr��O��ڍ�)��uC���Q���tՃ�{���R�'�x�B�QN�]V���LD�,"����&u_��'�6_;�m?ʿ��[�leQ1���Nj��1�� �M�V����˙MA*=���=ј�a2�Vd:gd|�2��-שI2����!�_}�ӶKs*�.�<08w�a�up~�*�(�V��R�a�����u�8x�ӱb��J�1M���&�UQ��W3�kC�_�:!�{%�pև���>����aj�����n�A��{�������ޅ7�2�i�����~3�O��dl���s�f;���{4
/�"�T~f�|�q�W���m���lyOB�W���&���l�n��R��?m`��0@3�**�tPB7_e	<�̦}�`�'e�u�E�l���IQW��� ��@��wԱ�uLb��B�Q�);0.^_���-Ϟ
s���	�>O�ה��V :@kOE���+Ę��-�,)�G���JB��h[���Hs�S {O4@~?���>�a�S���F����$p�t��m,�b�����:ve��%aZ#�̟�k>a�{M��pu����;���3��(7[�`�@m��\ϋ�fW��1F��D��!0&�jK���d�*t��i� �ˑ<غ��T��X
t�X����4��J�~ZKIR]L�l0�m
G��L2��nM#��V���������I,60K1����z�.�{��
Q
|A�_��պ�ŧ��$����*��R�ަu��si� E6'��+��'36�ѹe�L�d�YlN�0�S�3��%�C ��C�N�G��O5'���)L��XtyΓ
�E�W�tNFL�����[C^Og
&�1+}2��Q���
_]����٫�-�eR��i3| �@�u��뮰=n�^d�&S��(�����ZU{�SiT���
���|<'{�A��4߻�;���y���X�3��'��n�
o.DZ��k����ܴ@;p]]F�ƿ�|O�S�S�\��5hR��B��-����-�B���;�<2�UA�S�Qw�R_��y��h���,Rj���!R&�>y��	�K�Jׇs�3,31AK���4%�?C��=o�`a�j!Q�\F���c�cLC�߷���Н՜����ޅֈ�+�+�ݻR+ ]C6bm k3��;�9|f�W�©mה�0M�'�ٳ#f;([O}�g�i��Z�����v��1u`^�*=�P%�v����7x�x��r�]�'�<J��з6|`�G�L��Sj�C�i���
��Y�V���?(R-)��li�?W�C����=V��Y�U���F{���:Fߥ{R�HME��M�n{	��o�������:���1o��Y/X35�V�YEa/ǁL����*���د�X�4�'��@O��Z2Am�lB���qh�{
���DJ����[�(�m6]�>�[�Q(�K8�M�9���Kf��b�`��b��q�\��% ;U_T}=o�h���N���/�m���mq�H�T&e�J�USt�?z�{U���
��mx��5�XnU�<���j���/j)�H���[���v��2���ѤV3&�ïɳ��|��q���J!�d�Cj��r8Osv�Y�:M���!�2n>�X��WY���EN�����4�Y��u�I������)0��lX��c�
y�A��~�%��1��
�	�!N��t��=5���|����׽��R\<���䌤n�b�^�mXOFc�;���lSqk�I�x��C��8��E]�� (C�4Ω.*Ez�!�A�Xjj�{Ǔ*�aCx��nIcJ^�z�O0���G#
J26���	�U9B�4��LW�r5��6��>-c��-OE�M���[䥐
�؎���A��gg'��C|�l�eY>�Y���
�Ṉ�,kF,��P��CV�
`�z�϶l���	�!��5��(9��:�y�U�kӔ&�p+=w�%�炰�H��;�hV�����kn��n ��԰R�T}d��4�nV��]����d�� m�| \�������� ��U���ע:��5�_��7�d&���8D%��y���3�'�����RY��A鈑}b�=��2A���_-_H3�,oͧL:9YC�<�^������{�MzzZ�-��Z�"贸���"@�bL֍�^S!#�x��Z4p�@y'_S��^,���AH5����4E_f�++�頸8X�n�"�?O��|n�yro����u�L�ޢ/��D֠�����������t���9v�%�	T���کkVa��}-N���Ȳ��〇؎���z�ub�`Ÿ���z�g�ytK$�V"p��(/1��M���:��+���R
�q-$0��#WДq=�6�v�(Y�S�h�$T�޸��Rz=�8Y�pL�Ô���sa�T`�;7ad���I��(��������]�w���{���s�LP���`<�.���|�S�m����j�iϙ���1[�I'���
A�V%�u�?|]=���+��CHx�����¯�SO�I�"���~��J�}a٦�`Kc����S�%B
!��3�-�e��"0$Ŵq$�#mt���f�NI�D��j(4}�)�¿[��_���ʣ-��i���	PU���b��w�4=�RFS߯-�j��3`���4�E��wHc�P�f�tC���y��[�;L�a��GĀ)Kz�'�&j��F��.�5�M�P@�c���;O9���	(��<{�Zb�����~"s��9��G�w���'��N�$P7�&]��c����MTd�7����p��� g�ꔭa�����H+E��#,�7����D�@�P�A
�EC���m�rs0'zÛ~"#f��P,�9:���UV��z~ͣ���E��%~�㗑�L��u�Q��;��SL���B�M
JY](U^��5U���J
�q�P�aKЄH6�?g�-��]C��m��	�0��H�y �G���h�H=���
��*snzޤ������b�����T�n�yߔ%��Td�_	��i}��<S�dͩ6�>�T�J�7��nB������gz��9�Q���	�^N��>��
ȦRrxt�m�Ǽz�Ci;_�|�>�����P^~<ڸyMe�~�ɱ<qy�ovP����Bh��YU�/�5�J0,��+�� �W��"���a��2E�̠�^ի~��]��F�P�Z"͉f�kj�D�u����5Ȟ_�M�����+��o\pZ��
�~6E�&�#�z\_�E~�́��w�u�
���Ñp��V\���(������<�u�H49F9�����
�G�<���}�
˛7�`�x�i�)+��LH���A��斟3آ8�����֛�3u}�)u�۲_!���g,���1�<^���kla4p�n�Xi�S��3�� G�~�ф_��ڴ���/߄x �`
��k�*gW�~��X2Z��Oʙ�a�7T»B�oJ4�F�ќ��,'�Doad��N6�\�L��d"p�vP1� �;|x
{����z|/
[�Al�3�H��e�I )�䓄���iF��Թ��kP��;K䭙�Z��2���zw�k��J1W�M�1�D>�s^�g#�{hI�J� �F�5k"f�gD�8�A�i����c��a�T�闝�k,?���b��4D�`鼀lҝ{%؍X�=�R*8�jK��<I�+�+blJ��b�˒O��J�N�9P؉�}��|ωȧ+�mӍ�*��4�4�aU_�[�����tRG`��s��kJ�n�_�۹���ԅC7�\�!��w1`1�(�1�/{V��b�8�������B|�t}OS���آr���/еM�n���Qy���5��<���}��xt�S�I��x�	U2	�Ԣ�(k�,
�}��)Z���"fq9�O����2Oԃ�į�̤�i�ϲ��jX_�)i���f����A�F�l���ÕR�(O��T���W��H.%UI���k}���$���
�V��sh��H�0�6&��d�[��Ї�F���]�Ϲ��I�b{>��
M��0�֧�}Z@�zj��!X�#�se�6ݝ;d��#
}��+���`=HnN�~�[�Ok����hs��H�#�E6��K�.�)�N2-����M|�,H٬r�O�tސQ�B�I�Nȍ���2�1�ܗ�&���c�@���Qv�ͦb�w]%�+�A�j�c郑�-)]��ǖRc|
ɋ�B�� �pW+�3�=�R��z��1��o8��0l��!�dx����Bsqo�pwS;�4��
�)�n?����^����(٪(�d
o�]��@�����rج�`I��
�`��n�T�H�l�q/`#��8�6]��s�9LVA�mV�`���H
D��s@��o���[x�q�D��H2	�IIh��T�U�7����-{���M7�vCDZt2���qS�٩�nج��4����w]���.��#M=��n�gxp�ں��C'�LdPH����R�'bx�c��'m��A�<���.V$���̛x!⃣.[�մg��DL�B�+�j�`�1߈��/�N2�uO������
�]��Ln~�I�ÂDՉ;�]��Y�	�Pv���As��3k8cP��ṋ�谉4SS�jʋ(�h�ܖ�'��H`X��@/`{
!f��!F�?�ux��o�eA6������HB;�7)��*]k[
{�Qڒ|�7���
���A�!m�d��.�݈*>?}?�5�<Y0�<��HJ<������X�F��4�O���J�o�Q`[�塚|��8��T��*h#I�z
az������C�g����r�s�����"�O-Rr�c�^�ܟ�H��/?�-��T�	<n�#��lc"̎?Ǿ����UӶ����d��ͫ�v�����]9[�\C��x
���z�e\�̟��?���b��&�7��gQ��o�-4mʨ�:e#�al翞���{�u)&\�%
�������\ʟ�?��3ݾ/c�`(���g.�f�;�=~����j��*��mW����`M�2_��!��Yr�=ȏ�����>�5�������	ĕ�W�#-b,��@���hW�����b��'y�y��G�����p{	4t�-�.LA'���r�|;@&��m�/|q�S*
�W��|.}��z�- ��GSt��Zr���wWT�)K\��@:_�z?ly-���3��}C���C-��t(���}�}a������]��e�2O��	��A7�k�m=�O&����;�����N>�l�e�#ؼ�I�_=�Q����'bd�m��Q��w�Pc/p�y�vN��7���*KLbA��Ғ%��A�D�)G{���{��4����ڕP�!M���O�/���#Hz�f�l3��MBTO�N%�41��Ą����W�=PUAmJ�&���Q��7ͧ�xo�Dz5=�,�#�8	/XDd��Ny�P
�~��o���ao�)v��Z��٣8g@rS��q_��T̒�$͐��d����X]�{^�{s�}��4s����r0P���a�i}���1����x�3���԰�㩫F��@t� �p�w
�����+=B�靧��1�[����6uC<������E��z�ݴfk�nOg�M��8YWJ�
�e6��ia+Q���:;�e��pDE��o�G��=����8����<�?Oj��.�Ԡw5
~�g`λJ�mK�;���4�!��Ü�^�r<
�x�)���CD��c���4��r'�K��Z�D�fK$�Y	�Cb�S�>_�r����|Z�#eWk�.��[xo�ާ�6_�OnR�n�d�At?�e*B�؍p��V*٪��9�Xb��~�zʕX��.��r�%�����GYO�p�����>���<�_���}6�$��=�f�ov~C�� ��� ���sNT<�t�I�
H���8)�c�gi�)fR`%	��g	�pIJ���)�B����BJi"JJRD�Ŭ��C���Z�˖CSie2SPQ�;oȬY MJQ��(��a랂�}���Z�i(l�Wk	B�Җ%`��V�PɞǓ�z����1�(\Aj�M��O�_��	�$��᭾�)�2k�e��A�A���l���{�"��ƙʤlț�{�>4Fz�X�fy1�f!�C
<���TV�ah�J��t
P�6�Zo�vVG��v�^"�sG~�3�I��!�`נ��Z��G�`��=�ml�x��8���r:��|�^����)�"&r)�@�?T%�Pmz����a{{�{�
1��6��%k��l���!���J�1ydS
Թ�MI)�`�s�3��U10�7����c\�9���i�c�(�h&�{�r����7�8o���&�qr"	NF�]�<;L�-����j����m��a{Ղ)�$��+ � <��״>�ô�����X��4@�-J�����e�E����:J��+Q��a������Tp���ՑMc�s�&jI��m����I���M84:�LӚVF�Yu�$I�I������mQ�S���O0BEG���m/���Z�iG�gB��^�|GF���O�e*o�͗7�`��l���>Q�Ӄ�]��Uyl�+_�0��M���{!����*�iā��{�/��i�彫���X��3Z�w�K_��6!#Ly��k@�,��_c�R_��&h7	����؏�p��W�P��X%�=p4���<ɑG�9�u���}?}ً��I���2�sA�5�|
O�
��
�5$X���oSk'��7�]��B|����+(� "���{:yL~V���A�g|N��vLL�\*���b2����ϡ�"7�Zy�f����V��M��]�]���^VA��V��rL>In�e���j��#�D]=j��D��=&pR��1P�
<^�Q���B�m�WS�?�Y�H���}�!�R�zI{�N���:�l�=a>��;ȼn dq�7�h�4۸2R
K �0���4�OS��*d�EK����'��bsD���?�B���3bJ֣	z�Z/ko��4z�d�����
���|� �Y�аb3��fJ����[����c�K?�LvB�Ѧ�FE��Y. X+�vr��6^#�	]�A��A��l��7r?v���!H�l�I3��L�T7�(k#U8�Q����Y%��=�e
����\�.9X��2��$�8St	�V�`���b��ۖQ졖G�֔<���Kؤ����h),�h�|����ŠJ�
UP�@�^�>i��>�e��A�PE��&�%�F�s��uJ�	��ua]�!����JZ�*��g�i�.�+y��r�zR��kC�#G:�.s�J{.���5��Q�! {�e��o�L	��#��.iM3��]A�AH�N�d�A��SD��@!v��L�KI],p��hL�B9��=�.�����줣gr'���m&Z�"E��n�#0?���6��(L�%��ܾ��>�9=��Zj��u/�i�"1x��v.�`��� T#:�2a��0�^d��F*��V�k�`e��

����-�8�
�4}�&�a̬6��Cw�Rϊ.F��#���3�<�4&�A4�H��ׅS�5�/ff;HA�f�6h!�uN��P��h��<�FR��uQ`RGm��,N���M�&���ƞ�z7��ډL��i����J��C�'�u����V�q��\U;>
��uY��ŮER�6��&]�4��-�G�
I��(F������uȚn�UI���Lɹ�ҠA2�Ş���4��(Ԃ�c" ��	�׵ܖ�4��@?�-�Xv�$��R�
+�FH(�'�V��d��~$U'�>�p� �TJ%�@�ƈ����N��c�pX2�X��M�Fg�I�մ����)�zV���6RF��L�ޛm�6uT��d=�)�A��mO�����HQw�zUM%W��������2�I�%cf_h#Zz�9����(0�԰&"UCA1yM�̮u-s�
Ƈ���P�-�=�Ue=M��~��P�6r�*k�3x<�	�Q�P���l��Ⳛݐ�T�NF
r�&���A}�ý��;`��Nn@e�}�5ezr��l�Y����x�X�c�()�s���g�6|-^�P��%���c~��S��$��LY�$�����U��j���C�C	fK3-���f`r��
�=jm��1qC��mMݪ�z=�Yŵ7��O�և)Y��5T��K�!���af�@����qo�x�xK��e�m�:̹�K�5�+��	��B�6xVk��Ьb�=�!%`����)�ث(�o7%X�����i8(�97���F0��%0���|:h�H��#��8{��9��[��Q��1�J�)"Q�v���w��Ȳ}H���~!�.���V[;�I�ȣ��n�@.���������jϣ����Z"��f�My�koA��[B�Q��;D�o��(��ˮ��*Z�'y��BJE�/eo�%ɍd���*������я���}��h�ɪʌp�mطYd��dUVf�;0�v?T=�){���UGd�P��6��u;���ێu� �eHos0�sh
��w�ƀ&X{�̩�QVP,yy�VD�M�9)A�}-75E�9����w0��~6��*��2C�6
+<��,�җZÂ�i�cO��`�(u(b����B(�r��,�ك����n%�����~�s�%��O�l�7R%�B��b�3��J�+�Pʳ}��k9jP,�,��j��4��Є�f�ZjJ�h���{�8I;��6�aMd�xsGP�XM��z�$���vDB�5:�6����K%K� V��s���^P�A�%w
��@��4F��-�{ޝ+)\i��������
�HLe0p�B��Y0b���b9�^���X�[r��]�#~:�B�JU�[LQ�UUP����Y����a}�MO��/Ar '���;�*������5�bw�׫�hO�m�Z	�S�{8��9>�!�=���gO�h��U�vÆ9�5L�5�[�I)Ya�����΂	�&�TӄYa��>�
HJ�~}�/F���Zc
����Q�}��O�:0�$�J|P�j�n*�^jZ�!f��k�|O`��E��Ȭ�#��
*�><���h�w��sU`�"T5�K
{������㬤Ƨ�p���@"�#pfh/GB��|/�~�(������U�K[�/'
k�i�����*�d��f_:
�W�
c%S!���OV���u�P�4>�o˜��=�7�>�]��w�z���I
n2n�(����w�V��������/Ŋ}@(����/��m_�*�
;��B�ɺim�&��y�˙^���&��Y-0 �<)��=�����@~Gn-��4v�V'�R�'	�@a7~�Vc���>%,�7�r�?�8�,d���@��Uq-E"�!l�h� �/H�X
���n�F�
�|Y��>�D(
�߾�&����f���yO���嵼{Ǵ{J-A�؜��L&�M�+�{K�\fЖ�ΐ�
����
-��Cik�2+������`)Ð�Կ�X�'��xݻ�)i\�����㋊�2f�y%��.,�2sP����6(�ŏ��[&�4!jۤ�ΐ�X��'��s���ì�G�U�uɲ�I�ȅ�{��`60X�ڗ�>~�?M؉9p�z�y�C�;�G�0�}�a�:�f�g��C%�u+�[iB��A�|�\Һ��5H��X�Q0��\��TAPmr����XƝ�>�f��m/,�ϫ��E�Y�G�w��~�Z���l�.��ďw��㲟/�h��bwr�H�u�h�-Ȫ��/���U�K/�{aIRa���Zƅ��>�^ZmTK�_�2��^��P��}��)t��kr���X�v����E� �O^ˏ��~+���G>`���ؐ�����cox���}�vۂʷC���4�3����q��R����u����	􇿄�w�Yx�
.�����gp���{�c��_u@�W?}����'�ڣ�m�VO-lš�#2�)6M�5��E��ϯs�v~e1��{�ݚ�cXP�]X6V�yޕ4�'�4���ߏo�{���{S�p\l%5�Z���y����9����E�+����M1�
b�j.d�fa��)x�>����ɖ6��`մ
���c>&�ՠ�����M,.�==m,��r����,� ����$߇-��w�ڼ����r���t�\Q�3����I�����1u�qG�%XH(��b��/���wW&Y��>��Q�+롟�>g���C�y����y>�g�TvB�S�C���7�3���n�/�[3�友�!\���S��]��P-�Pm?eВ��m���1�"jS�Js�yr�m9�;aX��g$�W�hb��=�6��͟�{�,>���<�&��o��A��}(CFS�G�oo���厄}*�0�҆8|Oo�}��������$]m��j�lx06�ŕ���7����'�ɒ�b@�9y ��Y;���m��p9ʹ%
؄z�w+)NU?da�%�g�QX	IFA�O��Å�߶��۳E����`L�_�����N��2��Cg��_[B�c�qk\yƦtk_6ݘ�G0�.�JSY�}
[�}�↭�fއI􉝶�PT�f�줣�N�B��5{b	ww���M��E���<'�:׺1X�3�$���?oT�|��Y�}rN�l5	���?>��jby���V���>�.�5f�M�2G�d��<�
��Fs�T�S��⿯�Be~	q�p{�Mا�Z~�aj�n��C����_Q��ܹ�)6�їػnS�τ�ո>P�V��z>dk|��f�Mьߝ��E��.�Rʷ�,���Z)�1F1[�{e���ю������Z?�r�Ll�Z�������U�*b��g�B���ފ����Y�3Bb�:������S��X��<t������[��3N�Ej�H���H����{|WTО�+���瓏NBi!�C&�&�^C�*+,\v�ZCXf&�jQ��/��*���[�^��˶_6���W?�W��!y.ѣ�k��0OR��1
��&*�5�ъ���5;�m�g쏾��YTf0b��_���w5��<�ƀ�g��
h:t�x�^.�h�� ����6�f�<��d��0F˰C34sBl{���`U<��}؋�94�^�͆&�9�8x�v��p�j��?WU��I{�,r�x��(���A��k@�yҿ��A�}�L�=-�����K����B:�%�8$�(:�%4���E����8zaJ��I�3[��C2>�A�S�y�P�WvEo:��T���CI����W���q�VG��9��܍��7%��>�eO��#�k2 ������G�ݧ��:�u6��M
pE��?0�F�]z�TV?{%���C�xS��`CH����Hs�Z<ve7��,���*̠��8�z��gʠ>y�#�����:)�/ozg$#އ���\v��T����Y.woB�����B�Q�-��Ʈ|H�t�m
�ڐ�tbi��"za7vz��1V�^��htk���>f_Fvm!���o;�Z|b�H0n7�
i7L�J�5LJ`�]�vT�bk���)�*�wמ�݇�	�B�N��n��_L��d?���mJ!�5��2�+�"���'��	�c��P~Ag�Q�x���؇@�MZ�L��C�nw
K�֞�
3�b����B��<3D��pUe��g���[������k��!�9`Áî�>rO�����2Bb{���+�g����
Zc��e}�x�}Ѳz�����������h�O�K����8x>+����>p�ph53Կ=����Ǘ{�Ç�+;�]WE Y��7�mH�l��S53�k�
�7��z~�K0��m��7�������.����#cɼ�k���?�d�k��Hn	����V>�UC�
QƳ�֤_��ߵw���_{�c�� ��s'���5��=���$]�U�}��57�^>G�yI�B�ۀ�%(��i�^�0�}*��k'.Ȱ`(q����n�#��󽽨募'_Ne��S���o�c���,NP���d��ng�y&݄R{��w�7
�;����7Q4phlj�w/��< ���i��4%&)��_K������,�^�|�V/����P`f3c��w#�M�|]��v2��Gf8����$�`�s���!FKel7�Y���o)�INJHF-������ὗ
{
HҜ�2dR?K�ͭ�,��d7�~��:#���X��_�te'�1�=��'8ų�2|��`S9{�Or���q^��/��gGYO~/%��"r���%R3"f�2�YG���9(5˞Z���X���e�ҳ��b���h��U��)�Ѯu���ՙC��P�	)�8ɬ�fP��E4џ��a4
�/�>N�t��C�K��"oۀz�ſ
��؀���Bf/�>4��¸Fl�"�:��C��*���Z�n�S4�L�B�}bڰB���X���m�,���R��n#w�fP�#�';���֔��ݗ3�2��u���`���Y����v�Pl����ܦ���<(I��l�����98�4f�G-��VLS��
�+!4����UA��x��������fP4�s˅�w0�q0�C��S��LKbt�=<�el��z1�#�B���_��UY@�2�m�~���vG5
$��X��r��W�y�	3�?^��®���SH��c=��ǿ�';OI�s�0k�v���}���!���*�Xβ�_`,�}"y��;��8=����
��f��J�!�(��zXf�BM_I�6�&����%r�8��;Bz�b7��2�(6Ke-`�7�u;�a�C����*����ד�eb2���c�P";ƾ$���&8*L��!�.�T&Vn�@��w�mL��w#c�M�	Q��ݔ	�&ݓ�8\�b�!�N+@#�^d"T���lbX��y-��SNi
����$n�\~��1�JX%�b� A���>1�m���3WV �>�;�SX�ެAy�կQ-l�0����={c0ʍn�)���l�W�}t�mM�!��;�[��
e�F(erP!�]RI�����&G��E�����k����r�@�]��d���
�	�r���TS��{F�mlO"0?b{b��LMV�o�TG�y�0���S�[2p�����fX�N�30�L�MM�+xM�E�v�f�צ�6h9Ӽ���@ixW�^��Cg�͖�͜�֞��<?+I=������Hi-7�4s8$�|
�2xɀ=��r�33��	p��T��0ؐ��!�)�;́U��K������T�}>�OR�f�fH��ص|�j lS����+����t��%�pr\J���a`}5����	|Q�5g�֊50��A8�{�Ȁ:�i9�5�8u�����m~%���}
#��uO��{i���{��ەU-��{�]�	P��n^
���p:��X��b{6��<� H�ۅ��־=���PT��?V��9 ��*��)����o�*N��R?(�2�	���\ȝS�y�'�L-儝~5[�~<�����k�ëѥ�����i��e͌�zb�sRd0����6��[�B�w�����	��
�g��;u�������
$������i%��G�	/j8����በ�d��f>V��f,tS�t�	n��"o��/���+����R�mCn�ocl�^,��FB7����I	�EIЭ����P��Y�)]Y���DQC@���}���P
�nN\ɗ	w]�ϴ�ۜ6���P��{f�f5P�e��T�b�_���j�ijP@]WV237�F2�+�a�p��e�1<T�Epn+vS�=�"�Zf`�uPM���`��_��≩T�v�Cl��1r�{xh�1���FY�v���p)d��Yc�=#T�%�2�KEޗ����O_{B�%PsVT����h	�i�[CbU�$�`+�)�l�K�Wo?li;��ޗ����ߗ$LJ��Ga��H%§�S+�@���$�Ӯ�ۻ�����]���;�aDTl�7�R�R�aj����\6KM�Im�5o���V	�-�p�Uڻ��S#($�ر�}�1�_K�v�Z!Q-$j[�#���[�٭�A����6�^���Ζ>Ϫ8(A���``��D?�X���P�P0[[���W^׍���'�qe���E@���?W��x��m�G�HM�=Ͻ+p0J���{|�%L�`%/�X��*"���΀�>\�X��Z�ByN�%p��L�"=����\�b��D
������J�KO=|��4��g��0��E�f�����?�K���@��׍�T�2��R�0;���]&6{z�̤�B���
��|_��~�x�]�_��
�?a~����S�k�M��u�:Ȩ�~��z��������2{0�{-�z1��,�6�	���i�;_�ߏ�/�2WI�O='f8�� �Af�s@R�W0`]���ϭ�Q����n�
PX����d�|N0q�͇+-D������DY�h,�	�\���J���\�۶ ��1:�[�#�i��7A
�=��ɯ_p+!�ȜyP�?L���<�Ο9�`��M-�ڤJ�h`�o@��mN܃��o^����Qݖ���~��@�.͡���l�a�Һ��ўm����@����[�V�,�*��>�������B�i�%tBങ8��Ѻ�T��7�|����ĺ�@�?��г����
����)�6�ǎ7{��r�f���Z�u_��3���W{
�rK���F�����ڪ>ц	�k��]0����Kl2��R<(C@�t	��d�rR,�"�-._���e@�㦲p����m�_A���$�e�o�s�O�O���5eDUnȀ9�e���In�TE�$��zؚ�Q�얠l�2�+���2x�U���xm��7
2�$�!��h��}nf�< ��J�@�]�f��8z��
��������ڍ���|ԝ�m.R�v��F2�r��8Ղ��`_���y�w�C�H�m�g�Ժ�3����0-��Ɇ(n�������_�1��O؆���hԧ���i�2-9�C�$4sS��U�?�j�ַ�(�:jL��%z�Ӝ�\���T���p�
��yETր����9h���%! �Z�&�X�Yh:	��^vZ��v����i�=j�_��o[�_l��|�����
��s��wf�
�y/��MZF�DiC�)�� �����{���B�Aۖ��ɻ[m�>�WaCv����|W~�P�9�V,��;׼M���e�>8?��`�>S���gZ�����K�Nk�G�4ћB�gd7ڇvN�}���5=s����l?�C�PBY?7Ʌ�A+�D-�x_g�Mn 
�o����C�{o'YM�M|�jRo��}�޵iS?�j�C�Șf�К��<(�Q@)����~��dp���e���q�֛���>�s��7�{��}�=E����
F�#U�Q�.�ț#�᥀�͉�(�hD�w���i��0䣛� p�_=�L�D9��T;�ҁ(�C����z�\�}��3H�+-D0/c�����V����P��aE]��|�Yڴ) �=Pa���+�-����i�F<=c���<i3���<�?��h!�P����2+��'+*�i6Pw^�gB�h��f��5A
�����H6�fo
��;b]�Y���������:x����ŶR�����X1��*n�F���*�N����\�Z!�$X����^~�3�9����u�@Ʉ°�������m+��I��F��'�i���3eE���1��>c"�숽��n�b:�������X��\LD��Z^�2�����iɲ���3w�ZL��Sf��>���E�=򃟶��
�Y���Ju�f�ly9TK���C�����������Y��v9�Le��p֛��-�)�Ğum��>#�7�f��*�b���$`D�}���=�b�X9ҡН5��sj��s�y@{!�-#�]TՕvv��h�O*F8�lA�����?Q*�EBo�>�.|r�˻��>a���xf-Pnakc�c��El���3�a10OC�
>{z�ˆ_䗱hi��<I�w�A�j�:-���*�,�x���]&�Y��K�B�����~n�œ����� �S:�ȷ%i�E��G�D�� �;=�u�I��-��N�m�h{e���Ux]o������C�i�o4i�o�ej5�O��Z|~)��eM�x�>�\����ܷ^��p�3|c�/���56��6������~�3���(�\�JY�{v�@��$�3 �1"Ь]�%��3[���c1�RO�Q��5,D�g(_[��cم��,y/�G�J��4QW2ܓ	u�Z��6le����� ��B�vJ�޳e�3г"›fe�5Z��C���|-7�a
�F�X�uH�g]u}��tV �k�g�w0�T'^&3��W��]�]�@����貾w{���󎋇��q) AvK�.eP��'��cs��͎/X��R&����)��VY�#�1��}�o6�uO��KhOlk��bC��
H�����gK�s�샪Jp�ۙ��'��|߾~��5�c-�tt�g�����6I�Kڛ��
03w��UŒ�
����b���;���¨i�^�ZF:�[��ݞ��]����>�~��X�������Y^�~��t���Y�a^0�����?������0T��o���[<�����{ੑ�?W��῾�a�,���Vo<M�;@ku����B�1_��/�|g_����}�O+��	�����	�4p�:���������q�oa�ȍ���~o����/��^ȲZ�P�o_[��_C�V�9jZ�J�ҟ)|P��'G��p�jp5G�]�83�3��������w�w�$=�@�g�RqkPo�E����9��g�[�� �y�s��(˖H�X�^u/�=�_�����/��߾aX�;�eb5�=�+&xy�Z�ߙ�S	r$��������xP��b��߬�A
2�+�����Iv���ݲ	@}������u��5�Tq
2lp<u�-V91�&a�Ϣ��&9{
�RMCOJ�h�-X��\C�hjW�l����̉���_���VU�jqöC���͸b<ϯ����|�4�����`�m_'�m����
��2Q�l:9|�8Re|��	ȅ���gw�E�C��m��g�1<z������-�Aƣy���U'<�!~�3{L�-=@��+������?��a��J�e;�~��@��cb�Z+v�8�.��t�����܂��p:��b�H�L��(Y���P'��#�Q����*d_iK)C�Ô$ғ4ɭJ��;<e����S�[�d6/C���inC��ٟ�"����q�4�3�3��3��=�	j�bV}ݼw��ՕkH�g�.	1�w�@;F�x($lܭ�Ғ�P���4"#b��>�lO[�q�`d���&��i2"�@�*TQw���J�Y��**,��0�{&/��n�J�$����B����O5��ќ�K�k�Kː�f�z*?
��P�/��n$���{ty��@ä���Ŀ�4���Ul@,�,T;�����8c���
,�7�8����nqj�G�<=����<�9�]r[N˳��=:�����j�b�\�pQ(U�Z�.��X΋R��ւ���
��g�_�,���2��s]�������wJ F���`}��P����xf�S[b�jo�8S%w�%�|��i��[$�^А^����P
��O���"w��ߗ
��D���	X��l;4�A1��e�Xѭ����<d�H��/�X�$�W�����uS�z�X�"��s*�v�@QL�������[C��P�C��e3m�M����d��'�>����2+ �ơ�H�<���Ś�l��i�������@�����"�i��k�pb������~�d���,8����C���σE�O��XC`ZF���J��#+X�1~:�r=U�RG�e�d�=��M/���?@)_r���v�L	l^�yO9�K����T�k��y&`�d7��	h�W[�2X�-L	r0���C��dA��/��O>�
�9=�j���LDš��ݽ��%/�ò;�}�y��C�iL��vH"G�`]J8E����"/O�'�>`��Rl(�f2�g/����u_S�{�=7\%<QYq��*��n,���޼�a�?K���q��bc�o��^��O'���fy�y �6��L��~C��[:]�f���+��Ni����Mf�vp��J�)��	S��e�i�q�gAP�~i	Xj{��_�=��!e����,
�ólz<gtK��uX��(��T�n3�v��]�6ڒy1�U���.����\"L0ȏ-�T��^����﷿Cu�k�4�Vh6Pp+�WU����,t�JXV
p�蕟�P4������7�=�a-���yp~�B�6�C���(�y�Ӂ��md�ѽ9�{3q�Glm��\��sڽ��EkY�7x�?#�Ӌ!A��{��#����C����w�g�_�}U`���݀�-���峼��4���3�� �fA���{Z����^�����S���_�S�8���
�b��T�N4t
���n�˫�D-rR(Q�{�SGQ�̶�o2P�6t8������Z�N2�����-m����{U�i�ߟ�3���M�\x���D���
+���-����2�>Z2���	��K��j
u�)Ў��W���yX��oΘ���z
+�'�B�W�a���we-3Q�ˡg����a<���w��7�����s���e�%���R�V�+fc�i�z����q���=�]æM�41�gy�e�B�gR�q����ݰ}�~dV�N3����|`��^5��Aٯ�K��è#��q�-TުX��L}��^_� ��������?S��G�g�����0��"d*:���@*�����k^Z�?�W��Nȷ���l���Za��5���i6�mR��t�ǿH-�U�[MO�����-��n��+��T��r&m�(�ha	Iw������;k[ҡ�����NSe%��i=< z����E>�*I̒��Ȕ�R��,�T_O�-OZ�Dգ��AbO&��<d^��XGc-�\��L���Wp��`DB�s��3�1��BE����ˀ�t9�>_�V�:��2=�IP���я���ڲA$g>2���{�8 l@�j�E+�bXm�ӚF{E�����A�@|Y�i��=��b�m�{��P][J�݌�f%HUVڈ+A7�SXHuj�E	r���e������.�Y)sE��I�ϝ��QQ�耿˹F^�;���X���/�qa����Bu�9�����f���'��p1�M�D�XLJp(�̝@'���JF��8=����xVit�w�'���!S#�v͓���yse�-�<�� �o��}��$��r�r(e�rQ+��
jJ����J?��W�I�"�uئ�ϯ�K�mؚ��x���TwVk��^Z�~B�_��	�+0�]_��-��z=a=�#8���x�mxA�t�n�[�
�՚v�|c��]=�G)�0;=ĭ\?E�KN[�'�=���b�>C/ ����@Zè�N2�3�`]{c��݃�0)�Y
���T�W�S�Fv�Ͱ�S`���XV|��^��-5Ě�,����R��{36�>�UZ��hk��:�E`�^���&U&�*��#]D~4SB`*F�`�y�%Kze]/��I�6ƞ�A@ah<3lO���nf���B�x@0{J>��O���K�Ñ7��zѾ�v�r��h����
��`{��1V�'Ed��Y`��(.{2�=�WA����/n�����!�����-C7��l`�b֢�^�Ռ�d��{���ܫĔ�_"�G����ݘ!'e�Yp�J_
�6zG�ۃr�x�E��B�G ��w�`
N|�=���#�q�/�j);�g���M&5�t�^��J2G��-��/����?����`����9~�0=���۹N6�:���	�v�=�QS��NO䢟X	=�	�]�eX9$�W�B�g7����E�A����?0��Ł�倴z�ރ)W��LD�vU�}X��g�Q됂����}}|&r�ȩ���:��u�о�Q�c^
� j��`k"Eh�p�9��{�ö�}˚����>�2���Gi��z(�o_����>�|Ϻ
��4���T`XϘ��ð���﻽~���@+�)`�ox�u���2��Ƅ�xM����i2voV� �d]������Y�,�@�O���i?ꍛ�����>�E�k��dE=���ؓ���H�X��^�t�0#�V�J�/_���Tn^�CC�v_J������-���X��>�G��Ү�&�fD�P��_�{�����{Wz����?ePJp$E-"�3���k�bj;�^���%��T��P߄v1oh�u��DU��(�r�=�3��t��^�������
e-��WPB?{ۙ�ITC*�8���M&h(6p���zE�̟�*ȃq��麇�� �>�ȑ�rc�z�%X�Ef��5ս2�nJ���.�2w��~L'��‡�@���-H��c�\?2k�Ð|
�Y�f����𮎆mE���|���!=�XN%䖌�v� ��5p"5\�~�F��Bf�щ��[��	s\�&s���f�%��n=���a�á��)Q�a������}F��Op_���0���&�쉑�y���PZ?G��{u��=;'z-�%<�A�`S9u@�`E�_����%�و�H%6nXw*e+G��8@�q��*^�؃hi���G�T����I���KeY��C�6LNJ�����c�A�)�ԖHߗ�1Bas{�2�O�}�V �0)���V����C|��
��k
�w�O�:�fNnCH���T��Ԍ�K�fRF��� 
���	�>  ]7�%�bȜ�R�ӳ��3��r�`�+�����;X@�u���Pj�J/
���TM��C�N;�NR�z��晄$�T��2W���=��,�Ҷ
m��UO_���X�֨����ˆ��a�6,<N�?O�:�(���mk텅X�4㳿�N$T����C8P��䆡�=�B��(T�����!V�ߒbJ��d�+�{�H�T7s��вX7���"h���Гn��9�݇�����f���%�n���wM��,�le�`ޯ�r0�˜Hb��}B5��}`D�o����n`e�}:��M��h4:�Q�L9�5\��eGk�A��T�4�!:�1r����Zc�����.Y۬)��D�Z�p�I�4�]7�����}A!뮑Aa2�(�������]~�IO;��!�n$N���R�U}��6m2�^#�������)�y��]�u+a�ݽ!U<㓃c>K?�j?�,sg-��~�&L���GѬk����^.XTQ���$���=��P��)������F˵�U�E���>��s���h�͂q�u�������`k�?�W����A>�iYݼ�=H�'�`
{��a�e=�g�ٻN<��c��8�9-�����0���C�g��x��K��(��@rۛ1�b!@ɬ"��f�b^��]��IO]�'c���E��*��u$Rk�LlsA��D�z����3�c(�颣�)���E ���xO�K�j��y�0�){��/W��|��~��6i�%�Ā,�-�E���q�7+F�Px�azi�Wz�{`9
�s��c�����b�βw�=�zB���}�� ����ǟ����~��s��ߙ1�����[A�	���
!�b��7V��z�t
p
�z���)����`;��`��O~vX����5ܕ�}��}�5��}��r�!ٷ=��@��F�.��:��#�-L+Y�(m�L`�a6F����/�#�L��&o����^�����~ǿ8��Gmͧy�̤��G��|+ 5�IE�a�� ��>�>}�ſr�c�|pթX��^_W/��-�r�`���[��P��+��2\�c�aK�nv-{(���>4������ �^d���n]L!���CU�\��_r���iWY��0Y���MCy�ht�P7�9a����M���+?���$ �"AT�gzv3�>��}��J"�����N����_�j�:��*j�:�=|��0E,��[s�9E-� �lm��X|�zP ^�7U��yYW���P@S[xGow)�^5�H�7s҂��|��7�^��
a�gЀ�PH��ah_�À_z_B��`��q�{�)'�d����‹�!?K�]�~.��u��#��[�4i.0�Y��ǎ�)+�Ҁ�4��r���w�V��%F�Y��r��ed��=G�O��p���rN4�ɽ@,�2���=�zE'F!��SUb�|�^�ԕ�A�!�n����v���Eώb��A�EUh�ߣ��N�����y�~��
4��V����+2��6���`��qH/!L��={�+SU������05�[�����kw,�O(�x���pn)��W�r�!Yi��O�m��|N����	U]lJ;���Y��ע�3��;�0��-ԾjMd{�+����j;u�併���� �aq��"T����[::XC���	O��2?B��T��w�'BU��@7��3��L�f�Qr�$���'x^
B ҆Cn�q�BAdlC�>�[�U�V]�<<�e%,�Ab��
�)�2iY�k���H���_�~��a�wd@7٤�lx���Q��O�vd�s�q����2C⌧���H����{�
؉��5Q�۞:| ߔ�:!�P�����G�_�z.�r��4��zi�k�D�U7��D����P{��-벮��xtKF�1.��-pVb��D�ߍ0(R���8�R�1HU(��P탠����q���J�3%2��GO��Q؅��3s(Q|���yU�Q�ϰ����/��ߩ�\ϒ��Q�=��&��n��F�_��JlZ>
 �M��&�Ԫ?���L�*���V�R�����i[[$1��K�d�؍3�}��Ƴ�wI�6�ZLf-Tóؿ����\)�%l�7@�u�p6_��ZD���N|1�\Z�(;�"=��P���uK(� ��[.,^�E�b;R�|�>�Op��UU�0�ءhha�V=T��2G�^$$Z��R% �?Q#L�7(��Y
�0���lw�!�|탦A�0�a̍dp@}��(m�b��2*`�(r�;(G��Yj@j���eF/?�YY�4��w��V�o���v�1�����uiV�
�S�w 9�z�I1�S����?�d������1l&T�)��VC���:��+܂Ƈ!�챥��2l�:Q+����P3I�4�<��Mm��yF� v���,e���J/�u�R�A�
�F�
rhe�	���Tޙ�d���G��\4֒Y��ʞ"Z-x“w��׉�1f��N rY�[7ɱ�iHŞ�Hޭ��=�Н��E<���Gygz	SR���	��� �5���L��r6ܖD���(A�n���B��΢)���4�2�e��2���n�T�+���`wH�C0�f�NJ�"H�

*��VG�Lg������,���w~�-�BB{m-Ƞ�2PE�_	M��)�<��3�L!wR��pQ��m��~��Ễ����
�!)yW=�x���B]o��8L���{��P.��Ǭ���2�st\=�[�e�� [	NW�#�'���v@0�-�D�yL��tmz�3������:ٿ�o ��x��#Ah�3�w1*�2����	��6����iE]/l�~~�Y��zn���l���k�N��e�Yδ�JL��}�W?��?���X��$���@�f���xo�Z��B<CE���v�ij��d�av?b5��?��JB���㽭����1���Ń���7}w����C���=�YN4�IOd߷����>$C���|
7�P����7���$�k��e0� ��h*Y4�J?K��*�+�==̖��}|&�vI��u`}��*xkA��=�D�5�hiq���a��`�B�^Rx�WU��ZK�	s
э��~�I�&�־�.�9����iM0�
�f�3F���k��0k��� �P�yZ~�y��Vy?.x�ՖNlc���
ΐnF��~�}�I�q�j��:/u�$$��-}���]�Cջ�����%aF�8N,�I��	Imu���ɤ
�}�!={�.VG�Ҟd~��r��ڭ�׽ZT���Ӗ^������*ۼU"���Q��O8Mź
c#����9�N��9�lh��!��y���({�{�Y�Yl��V�u���L	8�5����C݂�N�)l^Wx6T+��p��Һ�Id���m����r�Ļi�GQS�Z4!�}����ٴ��6w�� 8@�]�exx
��]\���~���5��
���F~�V���m�Bɗ�Nk�A�p�������~6C
z��Q�G($��-�Â�~ׇ���60��R.��/�ʣ�N�<!U24��l�Xj%Z�Ɗ���]�l�������(��vL���T��j�km��[w��kD�Mf��є᱈�<дOU;�^T0ش*B����<�l�#�DI������T
�J��e���k���!tk��.<?����w���8��Ѻ�� ��>��;�xX�5�H6��J[���T��v����/�@�KQ��7Yz���I��*�v���i�Ň�K�n���Ji�"�����O�c��x�*����m�R�����%���U�
�_6�'Z��
{��u�[��z�L����2V($a��6���Ef��L��r@P�\㐱@d��[2X��*���6]S��k�]@8{�ZZ����MO����2 �F1�
i�}�;�X�3�Y�������V�v��a=��2�WP��7��[o��PY*ڣOj 㰵���{�9b��H��~�!�2����9!(�sWj�t7h���bM����6ub�Y�ѧ��2h���~2�}�;(���ޱ^��8�Vf{k�ʽ��A�¢H��������ݷ�/��]
6��n��B0�	
� i.�󡚯�s���\nj�a��̳��@�à��BK0{�$�}3�C2�H��f2�=�X�P��–�b�ɭK�
n��j�x�`��)r�D����oqGc����,0m0��&l
4����x��0ֶ����/�}���#/̪�n���p��G_���m�Z�X��ԇ�zC�I,�Ru��I�\�bICKF��ΐ�á�z�%�_��ےQ�k�qLE�P%�`C��7L����Q3�x=r��1�õ��8�ľ�*D;������$L�k��-v^[�z<V�|�u�V��fJ�6��,ޛ������6�V�h!���g_�oo6T`E
�;︼��3H�_|)�^A��3#-�q��|*��
���B�/D��b� X[��-�0;��r9>��p����]�d<���h�j��K�kvD]�.z�&����6Qd{�~���R�3�'n�DT�oe��]
Q��d6��7�f&�|sF�o^��w*�LUd�6\����4Ў?�1�^G�^WR�v?h�عfz�p��#l���dHz�v�A��~}��X{?�}sr�[������-���q��9�g�S���
�Ū�m'�`�o���j�p�m�~�-�7_�f���95K��)����qx��J��~�21��	�ܼ������J������N-H4���Ӓ�������I��8L��Cj�$;�\<!���zN�ie�!�ө��g7]�,J�[�sV�����>Il�B�-��#��ad�ju�wZ�4%�S�",��[�d�&��?�\�l#�N���:�@7����s�tzh�o/�L`*Q���u��!ŒEU��t����=��>\�qH��jW1��	��p�[L����g`a�^����<��z���B�mM�?�K������p���
͌}n�����8F�.c��Fџ�hm6 d�r?9�A�$B�z�l�@_�p󰊣[�
�B>e��8.���3�,<�k�g�}�u��钹"Ӱp;ӡ���z��>
!W�@����A��u��p%�m�f��[���%8�����ʙ��^��Y���!]m����{��"+��Ë��E?�����'
����rw	W
����g���H���3mą�
�mO�$o�2�739�}p�!H7���BY��rw%��2Ls'X�E��I��Y��S���n��Pl��Q+�[�Ri�d��a�f��[�9��%�#�G�$_�@tl�5�+�OJF�2�������[�i։��SO���Ѐ�R��� �Z,��?T��<�_�J��]�cX$��1-�T���w�	 @�ȳG�g(���֓)N�g7�݃ L��祿V�@fU%d"�x��5�r�x�c��Rz�t*]K�X�|�<�f�PDs��u�>k���Ӟ����yۭFZ���/8�S^�7㳤�7?����Y�僁^�Ƨ9_�r��0�q�J���˘������P�1S-[����ըG����K��|��]�%!��Q�Xa3�~
�0s@�!{`�B`�?�i� H�.���6�]�����0�C�
{���d��r#(H�<�S�zs�\�?�M��D���d!s�}��p͕)�a�n�>�>���8kڂ$��+�z�W+�vc�Rk�mO�}h5�(߱E�@�&vm
E��K�PS1�b������kp_2Bn��R������E��Kw_��M�L儴|Ν}��t(���V�Rl��K���{��隓	�EkM���k��B�Z��x˻=��5����<Ȯ�Dt����m�f!�
�zb�=Z�F>}W�.��X�u�����$���0��#27:TZ� I�7�7�yN�6XC�4�lˇ�i,����������M�� ���B��"E�8����b��X\��<M1wؙ��-�
^��#�����bNE	ð��C���)B�y5���C��k�f'�ω���?4_�H��5*���y�E5�?�RPE�����i�e(�����
��s����iMw����P^,�on8�v\��g�Nb+D�3��KNK�GJ���*�����J�S �~�b!'��)'@�I��fa�v��r�1�z�x���j�#mA7i����2�[fհ}a%O�:�y&@���+�{���
_T�r=��->��	���Wm�
�iR�*j�F�S�H����{�x[��f��'�)��V�Oj�]7$==��z��LxZ�J?;�S�٧x��
[�j=��5����nENMd)�	)�tK=[D>u���
Ҧ�
0�j#2���
�CY���fع1
�2�r��-R@2�@��9�� ����?9���S��&���7�rm��*��t�91�)���@7��$}��}�<�2���vf��ٟ�0�x�Ԉ[B1T���z�OV<�ʳ��c��.8k0Oyݰ�۲ot�/�_S�^����݃ee}�)sm�8$,٘�3{�>����W0�pfU��)T9���@l�H'\��P�����'�Y�qp|n��m�!��-JL�w�Tх
�*�$3$z0=�L�Y���\� nWc⥪���D��U�GA����-�mEUp7����Y�n2�c5_F+�&3l��	�C
��ϭ�,(jLQ`�%�Q��en�Р���^�~w����O�-�>vW�g�����6T磡埩@�2��|7���EJ��Z"���n�g0�-w����r^�gt�۩FfIu���,���"�9�ox�78׶��6�w�����hX0B����,�C��j���e��LT;ol���w�X:>w�}��ʫo��=l�3J����I��$ώJ@qQ/
�j�
��׍���Sh�iX��Iq������ ��ĵ�a��	����山�+�н�?�c��`s�@�����p|ھu�1�tbB�9���d���$�ߞ���`REa�?圁�t�dfO'���������}#����<b8Qr�l/Hd䘘c�Aۚ�N!CK�@HljZQ@&K�S��|�IK���&z���,�R�H���/A�uʗ�ΰߚ����p��:PrVAS��ۀm ��-[R����
�}��뿗� ����DE�
x��i�Xl��A���d����O��|�/�
	�b��I�_�|fy>2A��nqx5���O�:�2����Y}����R�:!cȈ�f����jpO=�3���W�olb��cy��ȐA�]dӄ1E��[{�A�M\|{[��He�bQN�f?�P��q�g?l���`r�������C�<�g�'�2,�������%�dg^���ї�����g<�z=��e�.�6�g@���	�/�/	,s0�XvGe��e4�I��?#?�{�ɮ�������F������Q4�t�Þ�o#���t:�ɂt��K�f��*��d�f�aU�P:�P��Czm��`U�t����X���(q ���П�h	�l���%��l�.:�g�,5)���o|m�}�=��)eI�+
6@��]�:s��O��;�(�Ѓ�\�zR���I$ј�u��hq���a�E��R��r �k�C� �r
`����c�l�`\�Nft�ٕ����P
��
��G�uy�o���YS}`��%JOZ��&T��켿Q>g>Wث���܈�;	xQ���)�񮺤V�aeؗ�
�a4�كr�֊
FXuo=,H��`+!�V&b+
�`Z=����a�=��l床&%�&B�{����rW��(zNg͈��7�W]�l�t�(���U"���~f�30����]���g��`��k�^�,����
����\f"��Z����G�(`{�����:��f7$L���������n�Ǟ8s��l�~i˜���q-?L�U��VJκ�H
ӓe�4��ف����܄Eф_T������A/��tl_v��=F�Y]=p�,2����|g݅������������q�C-��۽c~�n�80���X
,�%���?鵳�P+ø�Ep~B����3�!�g�����8��*�̆���!̀��F4�/o]��a�o?Է�}\����%g�]����x@/���
�!'{�_I�l~w�o:0Fۇ��20.@�O�Y�/�"b��ʎzN�e�7P�����~����b\���Pxl��6b����[Z�_w��2%�0���.���i��R�k�x������M-����0b��^�ȳ�]l�.�=�[���3���~e����g�:���X���S�f{n�y�6p���
�����.�蓺�0���U̵4������1l^��~9�<G���~ko�:||�X���~��,���b���[}"��[3b��4���!X��W�^��lpo��z!�0��
'�|9rJ����9��5?�ߛ��]��9;��%���8g�~M�)V�7�k��A�1��}/vD�ޫ�Gţ�"���b=���]�D6�i��ߋ�ǵ�{M?r=ӊ��S���8|٬f����=�*`�˗Ȟ�k��̅<��M`��KR�����-���w�B�͞�һ=����Y���,��G�.�u؞�T�VF�U(��R�uc�Ř{�P@���w��6��ܻ�)a��b�n=<�r�
�">״l>���VVv���E*��p쥀�f[��E�>����~�1PS�̷�AGΐ鰺��2����3�O��.�<�3�I�~}���p�jhP�1���r�c0ʉ��'�rZ�;��^�	%��c�M��:�g��7=Uf��B������\]�>��ܔ���j����Nź�5��
�(J��B�w���j/)8�ݘ7�={�Q�^�>{/cZ��:�O�v�rWgw�IC�D�S���T���[�����I��*Ōg�!��>�+B�'5��+���:�{
�J�e
j����=\S��JZ<��YB�����g�_���H�T��+���L�'��̖��0f�b#2���&J(O��#}�,�DP���L�b���~��J���{�!��Z��	{r�ҍ83z:;4�YQBX�b��_�t��@��B,�-[���vw�|um�!���/io-=^	^7�q?l�c�f��	�ر6 u�C�`-��B��N�ޮ���_d�U���4ٌV�-���L�� 	w��b�O���H �y1�G�"gV��xӋ�gȉ(x6���~��>��.�5=5�3gK{��1���RO̍V�?����z��Ր�:[�� ����Ai�<9�����]f��L�=3����Pe�Qm��\�/Lkn�������2ŭ�Yp��l�f�\p���x�6O�<$��������E�
��/�8���^4,��T�&�mQ�D�8��PK7��v]��<�,�\1��b�N��l�e��sM����ճ��0�`��SU�<3F�s6���O?HmG���ä���
�ʇ���r/<�0���L�y�P����,�sZ3#CET�nHbQ'�k��Pޔ�Vp�ف�����OZ��C~i��eP��l�~�:~���k$~�R�;�\
����׼S6�3d��j���FX�q����B��~�}�i�=7A�=�yHf �W�������M
O�����.
�0��@�����Zc��֋�07�SjiT@���|c���Fz�t�L%[D<�%���D~qJ'�o� ��}@�y/`{���.��۵4�7U�x�8+7d7T15OP��?�z_�[�j���W˽*%��z��������,/a��C,���}�YL�@���|���e�X���dd�|�_qgJ{�z��b�&��^��t@�ϡ$��'Q��׆�PK�*E�
+����	�� ���ˠ�����gbp��V��jm�P�j�U*��B�(ݛ�S�0��aʾ�gE�E�u�^�C���3�����<���|ٯ��{��}�@�����}�V��RSyk>���}@�R2S�Ւ��8c���L6x�
-=�t�a޵�xG|�;�ΨӔ�D��]�x3&)�����a*?wDO�/�Q�6DZ�Zy��,g�=��ʼn0����G�5�����-�DF��-�Ѓ�>��`0�v��]�������3�fg
��C�N$x{|�n��
xvi����%�o�[�X��C?�˽��
��ܦ��=��r�:�����Y��.���$.6wW/Xox�)iX����q/��=q���E�z4�e��+`�PM-c)-�|PН�_�ۖ���D��$�����^�4%�I������c��^=Ko���B�����
�=T3�R�|���Ajw��3rn�"UY�[����fs���[8�=c.t�4�ze�����r=I�’�5,� v��@
��]4șТFdEe��h��ƹ����P_��a,=��Xb�c=@Ѭyf4*���ѧlN!�72S�od�A�nĶ�/�-S�e^[XՂ`cX�6S����R�
\��k�KHk�a�2���J�b&��x�<O�><��{[�uzA�r�j��_W���a�`<.�S����~�`��
`o#�!�(h��+��~*M0E.C�Mu@ u�5VJ�ΰ)��C�.��z����@̪�Hx;�ȗ}�N�7�h�d�$����1�qE�
�r���jn�g�3��Q����'��J�ܜ�I�ew}�^Sߘ�}ɥ��D�⹣�|�Ӵ�n�,�vxkW[��b!9��*���|K�4h����:L����_6�RT�l8�r( �oОf�)o:��*����E�Nm2��F/q�` ���8}@��^�L�b��ߋ��܋�Mߡ���K�Ez�`REȯ4Y�|^��$��ޖͣmVE�E�3��^ۡ6��~jh�yL���b��W���\� �@�HVGJ�ݣu�'
RS�g-��B�*�Uuls�I	5��
ii&�=���~��-K�~M��k��ΖC40&;x�a,gpb�d�>�&
�cG���~Y������֨aZl�Wf+Z��Ҷ[
��w��PwĬ�(��jR�nMS�\�[��e�I�[��	�`�꫼3!��rR�x~���#)���^�M?�7�	�-�cH��O��aW�y�T1�.���ö�%�4K���1p�̱	���>�k���CA�nϓ7.*�]��1���P9�p(�sGV�=Gy?.�#
	��O�Pe���V}h)���#���d��^tf�am.܂��v�qu�}�-
~$�Ӈ�x��2�M���R%���_�Z���ˇK���D2?��[�N�^����!�MR��W��F���/��=�$����o�^��-�s�0����Mb�0-y�=���w��`d�R+�kB=tP�2������\�gLO��_G`m	���a�M�y:��[�|
��Y@��
�Ң�)�yQbco:��b�w�2(���-����h���֟)��#�u�٪e]_Ϥ�w�4R�	�ڟ����ϕ��g�<0�,v�fKV��Dձ���u��&��z	�F=s�a	W��<���'��ܶfyo�,��"Z�~��
K?n��ҁTX��@�z���V�!���
,5��˽N���:��-Ó��p�Ĺ���>,�t�p]o`�o���o$ۭ7�>T5p'W��W7`�@ql�(��ܮc8!i�5�
t����O��>T ��֟�)](mE��G�Lu���֌g[m9C�"�z��i��2Z	��>�O�Y!���l�Qt���Z�YM{~h��S�5T�af�r۫��
bH`KT��t�%:��^'�����<�mM�:�J^y�tX�G��dsO��V�2��MFԪl�ܩmV�������<��$�P*<��H�h')E��6�{`������;�o�����X���:&S���5���ia��C�U��/{V���m�d�8�A��]�+Q1fυ�!vK�B�=�B�:���z���J�P��O�ՔXO��Ƚa(i��If��fOx]�٤9�g#�Ң�X��Ϯ�~���"=Wc�[���G��7�(�<�T���C[y!�OJ,��/3��ۻ�j^Z�����<�0HO�����
"h�gb�EX�
�tлkP��	j�_�;��U�`0�}-,{_��˜؁���-��-��7S*�К0�N���1���y�߽2�5��e� ��x�	�䜀�+�?E���
LI�[	Q�`Y���	IF],ri÷�j����ˈ��\�O"]�mZ�'��Oz���+��`��u�B5���'��7!�	��i������'�V��M�UЭÀVe
`�"��
�6󅴡y��2�Õ5�6���m\���+�f_j,,���d�l�/�u��$e����>��˜�K��4���+��+9_l��a���R�[`��"1*i����ak�te�-�`��]�Pdb^f���Ö�uc�cN��XN�z_M\��QG�-R�>OЮ�j�T���"]$UG�B��x��z��,[�9��/��ao�M_	t6J���p�� 7ł`�VF��
�bsDe9~(�07�7�ehrl�w�Ptw/$?�1X���\.�Jb����n�K�v���l��
XR),mbn�x�g��h%��پρ����"[�_�aQ�Y�O8�Qn͓V��L��Hj�({�JQ���\쬊��S�z����}�XCSYx��	�5������<m��;|�-�U[�:VB�FU>����(z��9�Y`����'��	F�e!��f��_��f�k���U��+�c8s�]������^��[�D���8�(�6;5��!�V�2�R����Z��X�~�rij{�
�du��x�����KH�\�x�+��[%����9�R��?�&�� ��^w�X`˔�
�����2�zB���)�u�x��k�0��~|`"h�	dKu�
?��^�S��bf�S+�\�v�7=����7�+����
�FHg+���Y�\	��jn�)��/j�!C�}f�|���~�?����y�v9������.V{��|CZ��� �?�R����?�y8p){��ރ��z�&�D��;�5D��c��"�	�~ylڜ���,��E����.�3,��A�Kk�!���ʰaۗ0�;�ǿ��o�z` �
�j`;.*Ѡ2���>���w�3��4����?0���z������痷ȟ�Lw2',�QO
�u���[��}�d@��ta��|�柰���|Q�/2�?J5OK���՚�f����%8|�ZQ�uUBכ���UR�f�+�ګ	??�/Pl(m?�<6>��_�߉���4�w��Y�/I�E
V�^ ���~�[��w��	
/r�����^ض���}#�ג�z�=�-�@�%�Oݳ��ߞTð�*[H!(C�b`����r�}#�,V����<����s�ߕF���o�uW�o�{-籌_4���!��ױr�����T;���	ZZ�g!���?�Xa�^�9��0�c�4�s��?�$U�\��.�^7�u?~�3��p��:�����s���:}j��C��c�W*JY��j_'���w$_��DI�-���ȼ���5�B7�XѝEi��U����:t��ŜY���5�Z��c��mY&��g�ߝE�=�[ɔ����V^���PU��ߩ������f
ŏ�{�WAo�\��������~),�Z��]�_���[���CE��|lJr�e���d��������Z��-�����c���oS�g=���Ի}~�\�

����Y�_�χ�b����`9��#��o�B<�����X�2Z���j��D���zbS	�9����bi�k�����J<��ߒ�9\)맅���n���Bx�C7'.�.RcF����z�%����s�N����:��5�t���bNmX��(��Qp �,�<�3T[��b�$C��됽;�d���<7���Tbxi7<k[�ҫ���
��
�=H��\g[!P��:v��}g��'bؙ�g���N��oj�f�vSY�J�p�mRSu�'?,�#�t�zԉb�޺�����܎����f#X�ՌG0C��c�\�f�:I�tO"��qDTr
���H�\C�'X�J�#��r6�,(�ь�{����HlϪ�ݹ�5��s�^o��
zQ���eh'�����A�Z]w�g���1&���Q�-lv���� `Zޭ�c�jIzx��=�Ο���
5|�1��v�݋u_,����I��_�ۭ��%����G
�9�����Dy���p�Ճn��~�nX'�}���G0���`�OU7�^��O�1��0�Г�O�#iju.��ن���bE\5!�O*I�!G�����Jj�,��a�Z.��ʌ�<P���ټھ^
=*k_�#��vA��c7�=�Z����uy-�m�	��sg�PC�O�C[��uOHK|H�i��z��8���-}WH-�	f%�/z�p��ٔI"o�&Őp�Gj�����^h��)X���}X��E� ly�gY6�:���4����|Q� vגM}s���͝Ϳ��f�> �)6$;�6��d1y�BѦ���vՕ����a,�����������Q�s���~�T�
�P)�x�O��if5u�
���)�rxe������2=t	l]�oL4����ɖ��;,@��!�,��Ý�u�h��z�g����h�@.�@���D~�E�+�9����85�Q}���z�W[�"�
)�
�	.?�|�/���/Z�M��
蕳U2ZxY|{��}U(,/�7+�׭�sz�8C7�p��F	�a�
�Ty�52��3&�.I���o�z��	ꮲga�%�qQi1ӗ������7�5��S���A&����,�Pr9P��I�D捑���K�,��d�3��A@lx/f��[��H)���װ���~y|�_�&燆#�͐4��^r�m��
P#Sh���<����i~��?g�$ˑc�9<"�j���sFs�d�7�?C��a�Df�4ɽ�2�J���������K��;��.J��쳪RF�_+d�Q�<�ޑ|�e>�ߛ��>��qO���
,�̀�s�����k"ː����tg���v��W@�m�,��{�ڧ�c\����?l8�ש���O^�on�����&/���v}�O�K��R���y�XYQǎa��y�����x6��`h�W^�����ұsZ���^W6m�Fǰ�m;�yE�'x�@(,��}�����S)�.�����8�n6�Z��s_�A2+��x�~tN��;k�DH~��Ȏ��ˇ�[�8���EuG���\~ $y��M�V ϛ�	���*��?l�1a#T�a�9�/ldpI�j�̽�f��{y��
(�ۧ
F[��牗X�h�)Bb��{d{f��Z_�C�<��_R<���*���փ~��(�K�P�J�|(�����k*;���p�u��݆���뗛
�CN$�k ��$��#k�Jg���?��K/q/��J�P��P�Ho$���P�����d�i6d���W�Ph���|���6�{��h6�`��������dž�+�S��!9��k�bwp��G�${ж�g���]�t��d�9�q�ZY�P�xر���@2�y�ͷx�M�yQ�_���Gw�3�N�n][�s���1�d8m gg��lJ{_�J�_����/V_^Q�� Rz�sc0ӑ](�bux-�ZXc�e����;�E/a�D`=�nVNj�6D�.ō3��bϰ(	7dH�p�[>��	?���yV��yݏ��T^iu��$�m
�Z���~y����pD��=AQ�,�4{+��y�"r���~��w�ܸ^�zH._mO;E��G�>���̅�7=
76|/��Oy�k�́ �y�{�����}�~�yrQ��ً���g��]}�;��d��u�mo�U)5��#�'[q��K��ź���D��� a��k�_���pw�tp�k-q�>��֕�B�Rw���E��$n fN80��}X�L��<�E���
�>���E����Y�:
��+�����qOO��a���鱪VW��!"��[�Ot�{��'���`�d���v5Td����W���޿3xυ����q��(Î=�_�i�g�ם�v������ʴ���v
#�`� |���n��C��ϗf�����	�)� ����E�6/�
�a�ʞn���ңR���uA/>��@d�1>�O�l���A�̕x����/`�K�l�)9GFh�ҡbQ)�<�{��}a8���BZLN~�[J�
��$.y�B}��f|R�Ʒ�K��J/H}��¹�V�
=���3�󶿲�������ׯE$��G� um���j��)1�j��{9�Y{�lN��erv0P��QܫW[P��G`��k/�A���r�zP�_���@����a~��)0{D*��SFKJ�[-���'T=�N&o���Ƅ�u|��>�d��V,[O�(g�􃳘cN3f�}Z_B���,��e_l\-�&_�g�9�6�|�=��i^�90$`�:L�[�<Ȟ�c$3L�—��+�ƫ4������¼a���S��>����P�F�ށ��M/CUb���}bM����X~{<��*'���A��]�t���O�N2�(��u�;ZX�Ɇǣ���~����
��� ��c��?}�:Ωk7FX���֋�����-�P\X�r
��&A�2�9n�	¾^���`sOS,�Y�Ҿ���4����
�xb����]���2�0�V��"d!����Δ��#��=��΀�f箂(�Ƌ��Y�T��(�?��=On�%g+��{������`T���ְ1��8j#�''�3�����1L��.�1�^390�ό���<�[[�k��N�2G�j���6��<(ƒA�k����A8
>FMh�۸����~����J.,`��2���90q���>_�i���.6t��C�2���0�X�7ٟl�'�'��2?{�����~�>ɮ��zK��;�s�-�]���|X����rA&ݰM��=�r��>�9��gB�P����@�~'���f{���b��f�%�b��=�tJw��ٓ��ƈ�����K�vd||���x��+r�)�a{��1��a��>a%2[����Pl��q�c�� ���W��� ���fZ�4��1��>�I*p�P�e���H��+�/���h���[0P�K�l��րx녻��IXO��l{�G��7Q� ��p�{�~l�?�T2��<�Vzi��j���=��ae�I[؉G���v� O!��2d3�VX�3�&����A־��[T�M��ŒV��?��=
���߹��zO��J�j'�K�I�3����ɡ��<�p�'&�z����tr&g�ܠ��)c/s�l~-31�n~?"��56��⌃��i�ݭX���z
^^(�L�E~�g1����>���3k6�T�`N"fɅ�r#(���w8�\M�(���8u�^W�Ԝ�ࢳ���"��D�klؓ�3m�^Ē�����a�\�9�h<���h�����`u�K��uF��[�]&-)/Ҏyp��lz"�c��wׁ��˛|_!,艵�i���"������3��.},ak���f�Yf!{���ha
�=dTJ����.��.%�OO�`]ϴ�6��%78V ��6\HE�N�D!�|l����2z"hN@#\��������n��
���B�g6L<5t�:ޜq�s[Å�Jy���հ�vR���/q�����:ڡ�cH�8�mK�0�&ig�:�ڊT}��V)���ҕ���W/sx����3�c�`�ΓŌ�a;1����>�:UƦ��=�̿�8���]��9�|�dX�'�p|GAú��f"�D7R���'D�i�J��y��!%;��S�A�\&q8Plj�Z��_W�>8���wZ�C�����Ig��\YF����MNH�FN��{�P��ѽ�ي�������~��y��ijw�d��}:|��A	��'���hmQ���
L�&���h)'�0��j0
,��!+������nT7�
�������^�NZ�&=O]×��'�� ��D��9f>���E��[�Q�k�=a�qJ�W��4'l�q�T���<}�Z$������kRi�̍����!���1�>�`�����&�RO�`a0|֬!=R���f+d���]�'2����{:ª:����'0c��,�S��p'$��5C�
�FpTGa�*1��
����$���M����I�䚑�P�㹄�3h�Z̥�z��}@�;�&/����J5옟¦=ە5w��T���{Wy�.b�td�…L
/E�� K ¥[����Ռ��ɭ�~��߰���[p�>`!2sP�:8�g~��d�G�8�q��+�j�L<��EI�/BqS����־�����?ff���-����e�vu��Lgq��K.�섴)�����ͺ���ox�����4�^��}Ӌ}�:P�^�����q�ƍ��2T��ӣ�Ug��ȑ� ���L�Ÿ'��'��?-�ճ�4��
2���	i�v`/<�[�GY;X39夸&�܎���^�l�|(9i�\��D�Q[��~�?����y5G�Sv�|3���b?H07w�_��.�YGV{(]�C�4�[Լ�؝��[�0Lر�)��	"��@%E�58�j����S��1Я��9�xq}�����
��+q�l?�R�&p`��)�:W6���,�$�C��oP>���zݛG��P�-I��#N�G;�P�\@�|w��X�wa6d��f����ě����r�W鿩�1 |���oV�	X,�<|�{�U�>��N0�����[�=��l�d��ƭc�0�9A�n�Z5�_�-��.v��oof��!��:��x'�F普��bQI
����$��w�}�kN9��b��A����84�&q��18����
U{���
�*wk`�Ci� ����8l %�طKZ���B�K��jX9�o :��_FS���Zv+�̇Z,p�ѱ�P�K�@��8�w:�s{�F�~>��\BY���Q��l3,�*�)l��Y]�˽�C�F���ׇ ��2��C^2-��D��֑�P���e`���Y�t�	V|
�̿e��2���np��h�����Lc�cC
��ώ��2�J�d�1��|�(�'�nj��Òy�$,ʽ�3�	|��̭�RD�Ԓ������&*�g2 ���k9bq�+�g�g�l�ܜ���K�E�1GhȠ�/$7g��1H�B�Пۭ��3q���[��Q��S9b�f=<S��@��zWG���hjf� wD���Gwr~v�w�j��4dv�j���~�]��p����K-��?�V�s��g�
�u���œ�bY�~��5�~c�׷�TF�޷^;�ǖA�cq�1P��M�|�~��I9ɮ�,B2н
|��&Z�:�1@ze��
�I΅����d�$�Ys��[�r_�D�*�=�	��g�g�TQ��c�~�6���O?�
���CU\��s��J��<�
���<�G����X^b�fU4���1��BCYr�^�=O=�<U�Ű`Uݟ`����'r«�f-�f�*�y���f��s��~��Kⷳ�"hk cy��_deSi��	[�w�{�o�����σr\.�*”y��Ɨ%�����֒�jM�y^1]�@�>`�Ҿ�
�d��y�7Vޜ`g|�*s�r��A"=��d�d���Q���)�cJ�V��f�CN�@5)�wN���*���>6H�'�2��,1��oS���
��K���`0��7�8T.ڃ
z�k��()��=Big���V+zE(Iq�bIq�@�g'��ƶbD#d���//V�$eΊ?7O��9|����i�3�L�},
��9B[G��gM�yJ���>�A7���f+�d���?;Ab�p��
��͈��܏�f�V�d�r��E�s�R�$Zi�9�BuZ>��l�we�<��&\2&+
PJ��u�C�{�⸻�C�y�Q(P�]P�,jN\�JM�\P~��¼�7X@��j�H�]Y���k\8ևZAuD��ݚJ����g� ���`0��p`ψ�fCE��]����70�]ap��_�g��&\�F�����P|K�ݎo��}ʇ�b#q�ߓ����a��y�T��*Y���G(5�kwg��$ϢT��5�W�0�R�-J��S�y.��-���;�x�0�y75�	?_N�%g$i��՞�	6���7��~셟�pA2��2�(�^r��PX?����Y�ZT5ߺ�K(��q=?��(m��zfL<�ƯM���2��[_Ϯ��
h��$6D���7[+����'C�����c
w<�3Z_l`	��|����7��l��G1 �)��*��Ѿ���p�25nv����[}�aE)������K�[��[hW���/,L ?�R��w���~���>��?Ympܱ��}�^7��LdV�}�C>^��D��+���?���k^���^��&��yR�ЕÚNk�;�[n����f���G�,���%����Y������οTQ��y���䓕�ظ���l�H]p����O��2�b4�߾���c��!��k鱿�7�Л���]l��!���?[��LYϸ�ի6p��e�q��P�8^�{t����~}�eӡ�Z�|�	k~G.�����}%0�Mm�.ۣ�V����Ȁ@��������v��2��_Ӌ�>̞���2���U�´�g�_�,�~@�x�_�>��x��\�h�K�BFj%��,.���avpjx{�IWF��Ǵ��AHz�>��p�����zB��GK;��l��-�V�����{0,�N�DePu�)ԃ��:K����k�<(���\yu*p�Jç���Wfz��F��6D!�|�����orE��
��O8�L�d��Bt��v�A��ø�i�V��rY>�G��*�8G�I�k!���'�+��=Կ�+z���
�C���2��sg]C����A��J@x?��;z�*�޿��j���S{n
����g�UM-���v����ì#�y{j�^T���u�5җ�9B���n��vf�ʇ��g�y��j�2��Y��ʉU��+���[�K�k�_2{ K�� 6F
ʅ9�H7+����@��*"��[fT6�
�N��8εH�m�S-���b��}Q��:0|,��[J����DMs�x.^�wz����z�*Zp&X�87�_�f�m��$~!#���x�6t�Mm��^m����"�j������J���<Y��M��9�61Қ(r���I�W?�v�껮&'�Rط[�U�V�i�n�7N�9�z�{z1��i���I$rU`/���؁���U�+���:�NCK'=)�*�p|�٢k�q�d)��g��p�����|1 X!�g{#���?2���W?g�OZ�2
i�a�a���:����}��2� ݲE�ec�X+�y�eӟ*p�*B�AXԫl����?�����WK��T����}��u���zZ���2Gn�62c�$RA:.쯅��L�!�(~}k��;����&L�["	D[��W��U��0�i�v2li�=U�M)��?���#݃�Z��a��ŷ��T�4H��Z�p�9��r7N{a��ţ�K���4ׄ_�*��5y�eg2RZ�o�9�������V���1���x�/�>.Z(��]�� �[ᬶN^��G9�����R�_���=�ʺt��
*����.ܳ-U-
^Z4A.EfLS��n�C��x�7��Ja[?T,q6��4-[*��'κ�LqV(��=Cv�Qʦ[�6����+>��h��P�٩T��`�-t�"� ��r��.��ᶌ�����mV� G��Ql.x�M�rLS@�K�|_�{&ʏ$�(^���s�I�ɢ�����+K
�KM߯%{_��0�gO5�T���Me�+��0B�wc�o��
�n�K�́�<'odp"��v�!���������<!�A�a6b�>�����XX3�B����6`�~��y��AD���E��e��e���8�Y�r���v՟��Mãy|�%��߾���ł�Y|����6�U&}����
��9a߶ېڗ�`�P&�X}��Jj��{��/l^y��0�%����:�M)s�b�U�gg�}�#[�o�܋�
��+N�Q�a��t�ԛgv�9��Հ@--�U���X�݀]/��!��j�L�p?} ���B__�m��[�o�`�}���^��V�83_�ެ�����Xsg͹�E%�ֽe�C����QL>*�:�e^�:��A��v���è���M�6.����{��P��f�N�u����,�����)r����ψ�.��-����;tX{G�ӳ�rO�/�a���R��㹽��!����d��!��weP�]���?~L��ס�6T���K����L��,j�$n�P0)ۺY���Q���ZK�K�c�؇m6H Y�\B���
@��y=k|}�/�����w�t���u~$��m��h`�ݎ��W�;�$�c ��.��hOvC�&�g�	�0�W}v~b�ܾ$�}{hΖ��9*�����wr��>�[�%*�͜ڒ�-G��f*{y�ޠ���}�(��=�h��lr:�DV�p��u�3Zm1l�{7�v'9@i\���fo�/�Lr�O,מR&'�p��nD�le}�Z<5(0����-����ۅ0>w�J��|>��2�##��Z���ԛ�ZX]�Y����{H����{���8�
�{;�q�H�j�TY;�ZB��j�=;Xݹ��Sn_聳�sg	'�E�cK[]����{�w�o1���a��MYpA�}�ՙ3�������9��@G݇Ћ���#���K7�=���P�A��Ŝ�L=�9�σ3�B<�"r�Uݣ�Ka��eO�ml���	��� �է0�vrm�Ad�'ֵ�j�p)��n�ͼZ��%v�E�_�:������]��®���ϊ=
���<m�?٫#�,rVŬ�3esk���5M���*NX)�A&N�k�cbgĕz`&��eΌ��ˮ�`qP%jq���*q!$��G�38K,;LZ#u~��+�|S2_��vK��%�p+=�
g��ks����u?��M�����u
�k��P�֖��[,�Ё����z�M�|>l�}�)��Żg�L`ٓg�,m��89�0�y���5��S�fog�pk_Z�z�ҋ�'ZD�y WԼ�FDq:����q.��^넕>׋�	���f�9�vL�UJ�eu
<I6l��?�g��:�-U����C^ʾ}�N�!�v�h*C�dV�'�U��[�F� 穑���TUw�x�C"�N�c�z�h�k�rxX�Ew�=m���¦���#��np��
j/@���,Dx&�b$�7�7���wH�5�`+���m;�N����N��^�A�niip,9!��I����,��|vZ;��<�64/� 1��d�6�ԲՊ�WK3^�[�v�~��p&h���}��M���҆yZ��g������K�3��_
M��o�^�Rd.8��'�q\��==�a
��=a��ߞF�[��a��T��2�o�%0�T:ť/s�|v�{��I3)��z�U�d��c�%�T��b�r�)b���`����
;.��&.E�#mC60�ɥ�t��k@�LE�I�Fn��OY��׃�g��(K�R;���0�/� Ď�XÕ/���Z��f�+�Wr5�z\�`.ɵ�z���iX��X6��>�'7>�ʥ�cz�V]�
9��� �>p��)��
����^
��"Ÿهd9�s��nB�,[hQdx5�Bip񄬢T���*�`
D~�w�<CH��b�D���p�6$՞��\+�n�uO����T�RP�K�S������e��P@y�0�P�5��V�W��N�Xô��G��F�H�f�1�=���a��[�>�-��?o�����<cr�\�`J-
�X-���ʤы>�(/~v���5�5:lyx]7������9�c����A�6
���\c��jU�]j�i��8s�^n����j	6�Z�͟���n6�Q�tp��ຸ3.�eľMΰ�.@8#t��>�jl��C��N�w*u�!�¥+������fd�h|���u1q>�E�n�@��^��P�|�k��+��g�v`O�x�3��������K���A�ck���_}~y�����p���mBy�zN2�,a�~/�f� �Ulo#;v�N�
��n�� �����Aq��f���U��G9�)@(Ay4����#=s�l����u�*�f���)
�C�+j�ءE�Ty(��l��u�+Q�^j���2z�{]����T�N�k�7�i�G�'a��$؍�/� {___�,�An�A�1ɭg��%�B�\���g��bh�]ԭ��E<`l���fS�=s�*J��$����;�v��c�P??�8�5�ʁs���´�'՞	���SÞ��N������ �sx�ςuR9���貸{��dΎ#�X�Q�e:�UuG��^����v��^�^1w��F�,#��d�@�n���5z2�{�JWbz�D/g&��l��j��OV��g;�C'�$%�!њǃ �����,�R����6�S5�X��<��*.��"~�V{���7�C���/Π	+�n���&����+�q�t�p�A�KSd9��	��r�n	bS�ݡ���m��Ҽ�$Z.�j
��f��H�O��&�OB�Z�RH
��k���1-����/vGe2�G�a:�F�g��i+�lU�0�n��
�
f�2�c5��Su�U���׶.�ʁ�dZ|�i�@x0<���͚7lw)p*n�ب�7"˙��Ƴx{y����s�lϾM�o�k�a5�῕���(��
kx�=�8c9�ZS���%���6OK��{{��xY���o
c.�a���Y,%ρ��^pXb�&�3��� %\� tŒ�J��y�y�D��,
�-�U	�e�,�Q¡�=-�k�H��	�lĦ[sC�ڏ�C?G��N0�	<��lt�kqe���G��^�/��~;
�`�V�p6�i�5�Mn��;Eq~���u!l��Q��T+�;�7F�+K�6�s�/5�[�3��&����Z&�Ҕ����zr�uy��y�?a��wcM���.+��`"���Z���pU=}:�r�'<#�8�b�3(�"c�^o�ڄyx�aM�~Bq��K��rz���^ϻ�
F_��5�406�;n=�K�	AF����P2�'�3���y���U�E1�6_��y��R`�9g�_����{p��˞�XҠ�p���YMv�.b˴0����>f�)ō���o}��j%P3|e_�P�T�
����ߗwcƑ-w{�'"WP&,m.�TC�>�sK�����ff��bpP�?�+��N�B�PaJ ��6�`�����l�*8X�Kϰ�;g��<1h4��5��7ݟ�6�QL��1��Ԫ�"�`�Ϯ����l�H�ə�Ә���� z
���V��v�x9G��¯��gor�2�k�r�ɖ~�՘�²̕�Pbޔ����q5ۤ���xKu9w����0W7@����q�5��|mT�ͪt�շ���}�s�b�K�~���I�bؠ�^hk{��l�~�m��z����P��YZ�O��UCy�B��ۅ\��b��J\=;��ڥE�
�n���`,�3���5����sl8�W�Ўy�w+"Z����~k���I౎��Zb�������eg~$���,]5�u}��g�����M�>�[���n
y>EQ�z�6[�j�����%H��s����k�G���m��Ɩ������|\�x��x��7��]��EwR������)T7�Ev�=h�v�O93~�d�u%�|�'��/�������G-�r�07�Ƈr�0qG�64-��n��-1?+���\_+b�;̺Q��ǫ��),:�n�~��3T-O��R��{\����>cp)��wXP�j�^�3Q�MW���2fXp�w�V�7��2���0�%L��k�q���	�ڂH8|�,*4�
P7��N�֕r����2����
6�]~�>�'x
S���6���˧6$;�62x�Y�	w� (�f
4a�������
}����*=Jш][���Y-�Lq���(�]���Q���Q�����x`��jfͪ*��^�m%�k;�-G��A֞��$&����]��gb�_=�� s]�ܗ��mrZ�9�nn��@+�<�Q��}��=q�v�!AVe����6	���v[����Ÿ
��!�X����`�?����jc?��*o�D��(6f��#*?�9�&U��nv�����ER`�Z���=�����⚯�i�79��C?*%���c�`ˆ`؉�N�����mc��V¯��3^�[s
��<��s"@��I+�2��L�k�����pii-;�V�*�b�z*vk=C�lkۿ:��j��gJ�Jb���BjUD�Jmŗ,"��%�aD�>JaW�8�N�@���0���2��
x-Y���2c�D�'&�"��i�T^C�=�F���T�v�݋(�����`Ye�E�p�������\xS���A�/�����c<yO��S�(W(к���Y����Aĝ/�^�c������j9�J2�,d�10[C�b3c���c�A#1-�}Q	E��1��-%��C�a������Gd;)#�������SH�G�'Ж�Y�T��Aj�k_d��)$ؙq19SC�ʇ��A�6L.��"����{.}�$>|�\�W[0�H���8�W7ȯ;t�|_���,�3�v��l�>��&����R�o�K;tb=�m�\�=��ЕqX1V�7����ɪ	ׯ���P�L�9T�,�yқ��H��3Q*vܩ�
�t/+T��^T.#$��l<�v��%�oV�>OG�����`h�TO0qq���%`g��,���~G_lP�������z�=8/���1� ��s��|0��0�a	��7��m,��-Ȯa�sF$�G2����*��;�<3^�:AW���)i�ݼ����KH�؞�� _��NN6ֳ�(:pz��䡕߯z���+���
E�%�~\=8�����y�L0���k�����}����R�k(���T]ipa��m�*�ӵ������=�¡��P[�Kz����
1g'rQ{}��ڜE8��}�s��Ñ�Aӣ��^̺E|�um�Z��u�=Y(0�#d��+=������'	H?-�
�λ��:�QtO���p;�:�'Zuzb��-��Yo@(Y-�'f�� Z@�ni{�x�?��6�ök���ܷm�:k<�����(�˯�M��■^b{)�G�3Z�>Д&�Ѽ�'W�}6�l��/������
t�~���@B�����j���l����ȑ���n�/�:v.�<)�ȆlU�t��U?���)�d��R��,v�l
c��2��YT/�Ϊ�p�,�ՠ���̐����Y$M���W��t>>��,~�6�xx�Z
�u��˰��x�3^L���'|���x�?��?̒�߷bG���K���3�0An٧��a�Ġo��൭������q�TkU	�=�����v�,���^�O��s��?�E�|���:b�A�NaY��C�k�Zc�U=�߿Q4ΟM�!���;Ά��'��3ig�6�u���u�|pX�����v�a��޿ɰ�2
~��fQ%Y"�}N��mFo����5��Xk$b'@�^`>�7���Y�X
}~�`�/?JA�8Y�mG���5d\���u���������<��o�!#�K���O���_�{���z�>�pt_y�6����.p0����Q�cF�=d��k�y]�?���_s;�e(Y�`����Ԟ^�۵�@;��H�ϩ��߯f�%פ?���՛؂ݐq �D�n����v�h^Ur�;-�.�L���w�6B_�=���-A9,�dt�Ȩ*�3`�����ݕ@�V24R�@��a�␰7��^���2���E�����.���Ń���3-^�ל�Z�,����M�+���[�a`�ԯ��m�
���?mO�����ڶ-j~�@��M��O�:(����}��M�Z=/�Nd9̴�ܜ��f�U��C#��:�I�6�� ZHE���d�^�N�����Ƨ�;�Z�<�"Q�n�ÛJz��ؐ�>T���F]~�{d^t�W��m��
USi�C��.~��#,,�J8>L�@��0�הĽ�|'iU3F�����Z&99�)֣�YH)�f����ړ7�Οsˣ97��R-{���C����X�z_�%a�f��i�B�a'K��U�`l�B��/�^�����=Ű�^�ZW��;�`�/0�
�W���i���% ���S7��~�u�z�׍��E{��`���+��5���t�)��>����*9f����Pbl�`�u�ŦXΌ��*C߳%x�
��st󬃦�)$2�Bt~-�=��:�B�����0��f�0����q
} g>�m=0CUVJ�w��wʌZ'�e6Lj젡��Q�w�W�Q����`
ϸ�ӽ�]��}c���B���.��/�~޾#�L����t\J�6�K*O!W��1����K�j��sw+�d���>IE2�lf�K�_Nx	7�T���Y&����`q�n}���K�p����L�^�Cp;���+���20P�Z�)����/,��p)6�H�>GF��g���n�ĩ򢯃҂}mM�vg�m��_��3��s�k���½E-C�0;@���hM���*�æ�P(��񖀢O�=���X(d�Ύ� �����_G�,<�����\�s�Ga	�!���P�M���4˅p�0pgKZa$���`6:�Im��͡ѫ=�xx�mQ�dw%�9BЋo���ʚQ�9����‡D���'�?�x���s�����~� ���!�A
D�!��:]�d,vX�'v_1Q(q�����Y~�0�eo�{4ZX~���o|�.��;Jֆ�o�l�xzp6W�@�E9�>�q�隁��>�ƺߊ�����[V��.���'��k͹ي�@���ЭS����e���8?a:-���Ø&�I�)ri��n�+b{��my��m0����1�w���^[r����>10K8���T�`zb�u�=����|\��t�R�wѽ���ƺF�=Dy ���?~�G{���2�z58����#�Ok-��?~�����L���h�|]{����q�~% ��7Z�\|ݩ�RkQ��a�ܺ�{�y0��.p�̚����}6Fɰ�P9��n.F�=�&���&U�m�gZ�]��N��@�Vr@��nDs�������4�<:���_
7���%<��f�pԖ�6�}�?��Z>�A��K��m�% ������zf�<�y�v{�3@w��\Xs����Î�^/���a[�����Y�H���>�l�V�����P�N�����v`��9�$E�O3��>ۍM�v�R��yue�V�:�B�5g�x%f�:g�s��Ip���~��G�t����������Jسx�R��Z���\�ɫ:a��V��@nص�;�-ʿG1p���KiDm0p�(aO��8��lO\��‡��Tz�|!>�r�����A�Y��a��-��d*�
�PKϒ�*����n.����3m��`x��:"+��! m��:e����jOj���P������9�o.�3�/:��/��5��I�ʅbV�3۽g��9m��Q�W����U��^ֈ�Vn
�({�1�0�y�Tk��̨����,�����@2�@R'�[�w<��Km}g�E�V�V���c�� ��˩�0�7�n�^Uʉ��	���㗁���m����$HUlE���8���֒�EFo��j�W�¼W�DU�v(���ȍqغ�+`�{/<(�:���S��T����.�E�0�, a���	F͑���[N(s���N��L�V�/�Tp19��~V�g�@���4�ζ~W.�R�q/�2%����P��x��|�E-�-��#��"�C��y���xz�鷁ϑ��Tp"��lh�k����j���֌��di��e@	#�F��fQu^u���gf���|^A~^@\vn=�fŞ�U���y�!S��z;�򜄝��ͱ���V?�� �pk@�˸(4��bN���g�ŕ5L�㺜�iD��⊧��fs��Ʌ�E�:r�F��>$���9�31��[��vN{*��!���,���y8�� 3��|XH�
�q�ݶ������Ū���ɝք����lA=Y��L�c���]~<�e���Z�oכ��v�L�4&s��N�C��-����FB
;J(sx8��zlDm����k�"%���0��vſ�oh	!����+,Nr�Q�.���=
��j���9X�
�V��Gk���'<���]Ū#�ji|h��3��}�8m�،!^�D*Y�|H�ŸT䎒Ua�/�1��Y^�X�̐�Lm$s��P�WC$�ʆ��,@����p�u
o0�} ��ѽ��U4��k�kgV*��Z��^}��!όg���ɵ��rxPJUQ'��a/�5j�Ѣѩ�h�+�믭��̓g��Վ�#��K!~6��6t���" ���7�u �{��{`�VQs�ER�𰳤ó�횜A�
-���1�"�~wNAn��!�M�jK�`=�X��{�~qf����I/ɹ��q+!QP7�_s�3`��q�T�s����Xt�7
(FC�B1�#����NT-���3�'��g��g�a��39\f�Y	Mn'�u8�D���"�-��䓝�+�| ��݂���`�އ���b��`� Ę	
�O���>-��1�.������fw�Z0�8���u�ـK����MC�[/!����;[q��TS}���B��.9��j�x<~@~^\��)s`�5s`�g�	8=�jO�:{mr�"l`HC�D�<Mg��ɋ�Fh�s;�R�d��z���ҧ��
�K�Ey��G�d
����(i��l��I�7��:x�|�7W/{�?����*̽�4Lz4Ӌ�E9�0��dj�Q�#�{X��F�R�!*CB�TYZBe{������e�{����?��R��:�am�{�zb�E��f����\8���}}	���Y��
�W��P�Z쇱ju}��gS��ӛK�
��|F�:�cqGp��ٰ�)�5��ք����u��qn�x<l�6.�S��b�Z�[�X�h�ϣ�%Ц�
V��',A�;�?��s`�t�%�3�RL%��e��K��j�������5C�f��rӫ`�>TMK�Y,�,����ٳ~>J�[��xԢ[����7�z�9I�J{'ø���c
�6\��՞X'w�mx��|PWJ�߇�䶻�B�݀D��J^�@��^/=���O���߳{h�~1�mxd9^=�bp%�{�5�M���
2P�@�����Z�jq��`�9ս �g�:1�f�4��7���3�Y��w�U���5Gؿ��t�{�0@��f����ӓ����`����1s ���Ћ^z��m�z�{Չ��Z,y٭�ɾ�H�U��:,�7*�����H�O� I�p��xm����hk�����l�L٧�(���8(�n��9�J6�ꦒi��hP#��f�
W#q����L�t/�-lQ���2���~fMA�������ʀ|�I�u�d@�L�M�`&T�ku	����Ӕ{�}9��+�O��r�K�����5�c��Z��F�1x�tv�����<���L��D��תگ|g�-���x�<^��Z� _2�����ʣ�el��
631�zQ�L�}�૝�A��Eg�c�����v�X�by�8`��`]��e��2�k�=�v�qDط�o��m�fX�s�<WU%^`Y�F���8@�Pl�M�/�^��Ub�D��?���d����*f�Л7��Oi�ުLv/W���]��L���A#J)BP��տ�a�ߖ�-*S������t������L��� Ll�C'>�/���_7�����!�4�(�K��j$��A~��n3����qL�G�S�'�t�����1�H�/n�L\�7�CNE]6�K�
���>ҽ��6i쐅Z��X���P����6�f�Ќ��K
�1�9s	�2���s���-���eQ
t�/�{�!+��z3R}bw�m	p������#��2]9�<.9[K��`|=��Tu�1қH`毵���$���ݝ9H'����]��>�~�m�LУL�;�ot��q[���#1��d��Nl[x8^��T������|��P7����Q�΄g�9p8z�%��+ࠬ��bӶ
+vݎ��<㙚���ګ�F��&����(`u��r�lW�d2x�d��ސ_V{
��{�.���mc���Z[��������e���m&��/��Ӊ�(
�a�M(h.`M�-��8Y���"���B���;=v
����;�,y�?9��-��6�db$���mڐȭ�0��`5@�n�ɐ6�>n�'�~��fm$kŃ.G]ׅ�;Ѡ�q�O�d�g���`��i��0�(TW���
��9�"Rͭ��_�?����������<��\��L�'@?c��{������G�Y@ʹ_�m�ar�a��6�v@o��[3Fӧ�
W���?��;���-{�Q�Yާ���/2�`������q^j�ݷ�B��ܝ�G��
��E���Npz(qԛ�l3d��aν���*��$�=X��<���-65m�y#�~�AA(�E}��;�`�'`,?��So���j�~�k�
��~�*�zfE��v������ǝL�u)����A*�M�p��?e1ċJ����.�\5����^,�͐��eP�.���4��ty����xN_�r??sl�N��� Z�����g7�	
��:8w̗���o-��?
�E>ʷwS'\��x��{C9p��y�2���P�m�͔]������P�_~y��	��엿v�Fb-�ߌ�&a�\�+<u�m���8��=C�
k ��r��Kwx9��<��J������(g��A�QH.�|�
{8���8���zq3�e�@��Ɂ��m�ܗ�x���5<g�뭭$�� ����Þk�U}tT�s{�i;�#�|�����~���\��J�l�֙�zM�����`kS!��_�NʳKQ(���v����K�.8���a	�Jl�PS�Ӽ�� ����(<�z��(ƍ�b��E��]m6��}�g*��63S>�nj����ʼ4HΞ�Ce�܎g�0Κ�<&���lA({f��=ƕPۿK�u�m��1g�6�[�|��ZXk��!��ԡ�~�݂v��es[��;��[����U!�
�<�,�x��Sr�Xo>��Ѿ����1�=��y��a1?�n7l`<�f�G�k�����u���f���H�=�{�%4�"�>o���5��0+"�Gs���g���*��M����+��鸋�܅`�}'�gs.v�R�H�;ި�찿+�ۆ?�ejd����Q�wn�[�=.�pvv5�Hp̻l�;̳x��$��5�a�J{π�}_��b����H����m%<���,p.�ѧ�c&˂�q��%��m��D�T>P(�'��ao[�_�@ُ��L���{�ử�L
�jX�V�t�-���τݦ5U��Fّ�(�����F���ǦH����a�7n��qR�ҫ�,+&��Й�M�矇*O��ÅA-��oa�V��2�8wz�q�U�GN#��J�78�W�4������u�P[�q���x�w�VPcR�]S�0�u������������Mt���_�݁NLd��0G2��0�@HeYpLqs��KYf�2R�,��ݎ����1�#��)$z:��"�2-=|]6�^�`Oea6 v�ْ�p9�V��
s&_;���A�K!�)ۜ�E\B�������N@/�w�	^*@

�A���y�N�;�W�ș}�n�[G�A�	/�}:c+��N)M�Nm�Zz��gN�=����_�����9��a�uΏ�=��������;P��
J�	z8ǰ�"���gY�ּ�9S+i�n�9���s0/l~�<���3�kA��R���X�¾�{*���:�a�q�Ze�p@&�V����?�8)d[��vrug˗���`vl9��o��g�+'3�-�<`�Ǽ��
��f�%Sa	O��|��A��&󂆊�M[4Y.�,A�hF�E&���a�a���}��������*)
8Sa������*�x�CT�F�����A��	@g�oU}ck��4c�<€r�yo��/�]�a=K������4��bs��lY}��0�֯=���j����|'i�H�l�&�L��ֆ��
�B>�/���He{3�Ż�0$����z�[(r��[,�"�=�<���,,9�#k`s�����c���k�[�A��	���oߺɘ�}"�
ק���~��X��71�(��uZ�.��7cL��{j�����p�o����{A;y`��~�`�7[����?f�k���-��;T"�/,f������3�Vn��ǜ؄���K��Og���u__��ُ�Z�])��J�!i&1ݮ�@�?՗��c-���}_�����~ݠ^a<3��wYW�P����Gk��@v���&�!S���l���ŋ�(L���,�s��C���������{��?���ٗ���q7Ԋ��//�\Z�-���_�����[j��5Զ��zonwBj-Q�0:�|�Ϸ��Kɯ��m��z��Bf;�z�ҎGO�/F&��~����ui���N�ˍG'ϋ\��Ƞ׆jr�5G��5�r��wlw^^�p�����X�\��!����-v��L����Ko�˥#���:�m��\���l)=���'�V�f�&7B����|���E��]���Q��A/��P���xK�#Q��e��Y!�w*�	��+"�|����]^���eߓ�1Na�nW`�c�>����0��(=5���nd� ����$�oJ]p���$�;!�LW�I}2�,�vKf��;r&��5"d�2�<4'G�%���1��
�#^�SaN3`"��yNg�ꑪ��_MF�3�z�S�L�D9��Prn�+KFAG-%5�*g��y�(�Ɣ{�+]z	a�A���ҿ]�~Q��ǁ��\�w '�w�����sW�k=s�\�sM9ѲA1b�I�M�{�.��*���L*,`8lP�Q���۰���5�V��%Wm_ݽ`8Io��$��ʲ��_8�~�܆#j��Y!H���R3r����a�;��2瞽a�zC{%�����M�.�K�+��F�����a��R�|�
Z�y��+����;�ܣ�&��3�
b;�W�^�
TT��VU�cA�Ws簐r�����I�Z>nj��i��Ax�s`�R�T]>���T�C1���j�%
����k�B���գ?���A�����gI��R���_i)�e�(s_}ob�ʱk��
!P��{��y��?j�;�Pk>�i�A�i�1B�2���ל�tv��IJ��%�rBѶQ~S �0��u�M�ၭ}�C���z^��~�N�J�!�t��q�5[�^��`W���4H�\�����U�89=*����܌�`N���������tL+�3C����bא��[��_�ez\��|w�@�,��e��
��AM�"�]
^{8�
Zq��u@�])�Qx��o�Xoe�@��+��#����P%�CF�3)]z����z3;�&�}���֥s	�Pl|.i[�g6�w/Er��6/.�a99$W���u�r�>�nT7[�
�3�Ox>	�1#>��D8�`�sM��+�a�p�֞�V�/��C�jN���[Ն���5�>m�n����>�%������˽Th��Ĵ�b�*��H��X'߳�:�H�l����c���Ngh	��gؾ�|V[�^��V��a�p@�#{CE�p&�0�T%f�n��v���NOCق��l��2���a���j��]�5q8�:��)�}���0``���aۨ�5�+�{^0d���
��b]Q��T^��=��~��2Ptm-���%�-��n�bt]X��o���nᶗ^/#a2)d���J�����A�'�kb(,�\J/����نMAxsk�(5}�,��EDi5�h
|
�.�뎁��-e���T��y����%����J��[��:Pg�
��b��~�sU����l\�kOX2x�����ʣr0�v��Cb�@�QOkͺ�l��o]���R����F�s(��s���Bn�r�M\ݵ���q���?t�3�gɯ�j=�to%�qr
:�e�L��?�pP��.�T�5���t�F��X���*n_D˼`
S��j���e�/���?��-�ĩ)7��3�uC}>Э5��(������T��5O�Y�KJn�(�|!$�Q3
�z{����Ϭ
j�p���-��ys��Тꠂ�5���M@~6˶��&��,���9��W]]'�WzI~��EؼtМb�v�&��|
.�S�/�hy=B�P�ݺ�R��/���{W�,o9��_}&ԩda���=�Mȿ�5d_�����Ԙ*�'4�Y;pA�&�[Ty�&"�ٳn�6�_�d�ǔ$��v~=�+J��]���a�_��\��dv��f����T��:rE�{f���-y	ެ#4�^#O>Ԛ����nR�����x.� �� ˔\?�	�Αu�e�fjaCd`cH�g��e6��\<���ki8���~�d����OP���K���ߜ:u�]�_�������R��#�U`�ĩ ��`���,��PE�6-�x&�ƒ��$��v�$�c��c*^�bp���u��
n�W�q�%@�����+����[떵�Z^5��ݧ�Y�Bh@����;J@T-�f(;Ɲ‘�9-��[�ߙł5��X���	V"Ӊ��{�p��iJ�E��\�M�w�[A3�>J�#gP���~X?�A՘��>V� ��DhH�r��Ԗ��Yz�+A������3���L�S�q���)�mnVT=T?[�n�Y�V���¦e�E	�zR�[1y���3Wځ)�:W�b�wV˹�4�
3������D}1�i���x���[U4������㪽�X5�sw�5�}��^��[�E��acd궕�H\W'�0/��x�g
�E��G�祥=�����cs��[��5��~|�)��x%�#���@08�h����`�b�k�
�Tv��4bBs�j��\����j uV
8k���\��`
�����(�B�9��X_l�%���A��<�*�o��o͂b)��18�i��Еi�փ_��ۣa�!���Jb���N=�㍖���ϗ3y��	7�x�`=s�`A]���U���n��:V*�<(�s����G���K�☊
 �I�Į=��=��`q�j/>�mh�rj"}��Y�P����1eZ-Y=)G�罛�8XS{yw�³��?�(Ϻ2Ej�EY/y��¿�]��aB����+)�6����qF����9�
��^�1��Bޣ5���Ly�25��M�z��p�P�����ݘ�P�Yr1��(�xˁ��9d�V�8�7�T��>�,��`���.�`�7�`����Y�x��c.`������ި�d(uc����E]�!���j���f��q�1WPcin��,R�^<3Q<��%��]��N&�u��_��p�a;����[]���5��y� 7��R���Ś(D;�^��~�l�Y��`�+����gy�[7���Daq�����}Ժ�Z���b�#��-�A��զ�M����Ȑ�hfC�F]�Tzn�HSQ���'����ϔ�^��:F������|\��
[(x�h8�r��<\��N��_�{{��u���,�dCU���un�)�2d�=L��'v*�G�7t�q����a6��v����$g���o��^��3WA�-Y�j߀k)�:YO���^�
��?�̓W��f��^�����Ռv1fõoI����vKr!��֨��۝�p��/��d(Կv>1�_�rյ��-?��C����k������r�������[�ݸ5��9������ql��(��y$[�o-�������~��{������\��a4�����m-�'��5q���H��^�oR�=U0v�ko�A�{v�2I����p[�h�	k�ʡ�ؾS��D߱ndP�_0����@���o翶��׿�
�E�Y�-���]�!8��T��=ID���lj����{�v����e��~�<�*�e�xc��Ko�x�_���ǿ���i����{���_LZ){�(V4�d�z�&bni��F�z������v╀�������OVu�\��e�+gH� ��Y�؇�=B�3UUli�q���Pr̍��zY߮��֏5r|��vJ��[���	d�r�s>��C��]}}W���!�M�;ك�;�u�h� ��{N����(�'���k:p/��0	�I�W2�D�����	���q��Y3p�c�M�9��+G%�L�ٷ�ڻ<n�/3�\�.2�*9'|�=����^f���F>��0�	���A����:�\}��>fd�ںl�rw�خ�:�"x�y�w����J�׌�uڤ�([�ڂ��Ë�~V����� ��Bj�Pw�s�RW��{K�+:�Oo%x
�n-m:]1�P�:�@b�vp&:J����QȐbpc�u� �=��dB�9��.vD���z.W�zU�R�??����b�];B����֡,	�JH�V�5l�DY��$J�,Z<S��S�Y�&kk�XGHV������mؐ�nVD�W �Ǻ}���%i}<>��3��_U]�VD����
�8�>��c<�f_lkc��N�A���b�v{l��~�Rpogl��>&E���ċn�fN|�M�;W��w�D�@���{�#;HS��n;�sQ]Q�A��x�&�_9�8ɉw%馔s������fWZ��N%�1qf8±�N)}�k:lY�zݶm>��`���9���O(^�	�����Cs�J�6�gA�w7��uq�oIr�}3#o1����<�8fu�N�(usM�
ӟ�P�,�( |=��d؎�Y�Y�-�/似 6@���M�è�������cB��O���9Y��hϪ��L�O��|��h&�E�~
�����\Z��T�;���36@8�����hf�X��2�Ї}aКo�=`oN	>�.iC1B�7���7ܰ����:����}f�vG�4M��{�b�f�u2!���K�Hn�0��I��кyԉ�A9d�@�{�	�����*����z"㡟�5�ojA�l��_�:{�/�?�tv/����g�Y����(ˇ�d�Dw��o��i �ݷy*��$S;� �$�N=����`���1���:��xZ�_���.���6�RZ�[	�m��]O2�
��e���M�X;.��F?g\�s�Bm�V�z=7x��p���P�>���n����'my��c�4ې���`��on3!&#G�C�4D� Z��P�b��u���|br(��Z�Y�E��W����R��[���cX$��ơ�ʻ���{4���.&�Qi���܋Ͻ�)��aO�x��n��6W�G�yj�q�l7��2|[]F-��Dx�T�X��� �(+���/��bևG|r��;���.׎ƕڏ[����KV�u�j�.E��-�=���x|��[��K�����	!��8�dm"�@s�B3�Y�����
q��e��T﹝P�����rf^��<���q�
H��p��QM�?݆=�Q��}����7�?��zW������ZL�
���&����a��t���7���5��,�`���a�b���Oe�Xd�9_�/���TPI�߿�+�a���C��J���y��S��:��s�R��6Don���B��`���y���2{C��jϧ�<���=��#Z��Fƛ��
g�N��[�ɞ�v]����S�������ڒ����4ҟ�>jv�����q�d�%�n��c3�#9'c�R܁����B_��Z�o�V26$�=���?mI^�慎������_s�9���E��ٽZ�!���1�w���?~�ec*���lD��~��Q��i�{gB�}�o<��V��V>�x�[�W����}�VҰ����n�'Y}r6ؘ�5��|͹�
��R���E�_ɔ��g�ywc�n?V@�)������,W�K��f֔�Lߺ�	g��e���>[�fa������/6x��}~� e��g�8QDv�_~�1����X���[��{R�~�s@Mb���=w�?~��K>ï�MH	J�y�ď�"��Q��+Q��vu �ػ���0};��Y����f�U���^w��y�?���N��ջ[2�0	�Z�0/�XOC?3G���$Ju�=�\hh��9�X����g�(��eH�v+>{R;��<����;�R��j;�L�+�pt0���[7`1Y��@rI&�ZY������scc�ߡ�v��=g��v:M�$���>�ʡ^�6h9J��9�"�"6;�wGO�"`�'�I���ܖb�}¬�/���{�R�w�?�B���`�k�/ �cv�HL��� zN���
ľ���]�˺�?)ɨ���|9�π��E��`ԫ��,>����@�٠��J�����Af��D6����'��t�6pؙپ+�����{��
�LS.w��GZu;�%�F4���jr%�a��$)Y����u_	ֻ�	��*�lP>�� 9���w�S2<�c3-�h��7���9���[�e��_A�%�ęѓV���N�F�0u��u�3��t{rE��L�';�:f�k�'CB.<}��g�0�b��g��YQb�|>�{��{��Nh:ѡ}K�^�>j�y�O��񶯂��%�s
Ka�[����;�����,�4�Mle��>6��н ����zo6.���h�uf���W�xu�/�p�ʟ�S��T�AɆ;��SƲ$�e0eh�YTjX�ۢ��L��a&�}����:����_L|NJ�F�?
����\>��fT|S�L����n\����n�3]��IHm5�M1�B+L��
�`�t9����^3T�"��1ܗ�'m��'�U��bϴ�z�V�#�-�`=4��OR+���L�fř�Lkm����Ơ ���v0׶���˼J�]��k��إv9�E����_l>`<38��n'Fk+��FK��*��`��^����U)�n���\�{�Ȁ�^ʦ�L���觐�`1���Lny���a���{�@g@Ω��ą1B�l�^@JM��ʑ}�_	�\N�"�t*5[��6��–����&S��!4o�!���Psy��rVQROK#2i}s~�9(w��&�1�i�{D8E�B�V�=��s1[�YU�hσ��Z��K��͋T�k�,47�����l��!6�ԁk�����O���X�a���ֽa���ƨ����3�d�[י�R��<�rQg(��l�|&�'	����z
��/j{�5����t@��Y�	��	{
���R��P�T6'%`��C����4�agU�
�S�E�\�-�˓�����JD}ϸ^(����5%.������1B��|72�A��N��c��D��p��^ܶ�3��<Y}XG��������'c-Z���U?`:�`�:��~�绝�Í��}m�7�(�>e�0������&^'����u��R� Tl^c����<�oMC^���gdM�d����ۃ�S�f���ҭ��tV�%�)(X��c�� f�t��\ۺ
c�>��0�G���ܞ�%[9+�sqԐy�]����}=�=�9�1����%l��=̊ĞA����b+�\}�|0��@nѦ~8l��#
��~`�<)b�%�ne�6�{���Co���[��c������ZU��eף��)!�|����DAֽ)�e�#�[�!Q�H�����`C��X�(s� �L��יv��+0��K�O1斡����^���L@!^�NV���$n�
�o��È�̀US-�p�E�V���S-5��2�<`A*,�*	�����y�z�qC�J6N�>���;�'��C^ԸT���h�������[lj�snę�ӸZ-�>{�i5z/���(,969
�T%���,��S��(�Y�;�����u��p�RP�n���(m��F���'���~��HV���i��*0;�j�CQƇ��Q�țe�5��;og�u�V�Y��a����ʵ1HZX�n�x���R<�����C	�����W�2�Ɛ��9�����BĹ/5�mc��c�0�{���k̆��6�k��ܒ�u �zVs�(����	R�T�\��-�C�~�\�	�z综��e�����Y�<�&�WLN���k�]��/��w[��H��L�="�
�ّ�P�����B�_V(��n 3#�L�z�b���b�*3.��f�G��Uழrl�z*�TuCV��$�Q��[��}�e�}N�K�3;yS���^��ɬ�=3FrA
e�u�qSᆝe�A�V|��V?�{��vUm/�EHV�.Up
�aV�Ӈ���.�
s���A8�g�rp�E�� (�޵>):Q�7����n:l��cj.Z(T��xUx�S͕*j���ɋM��6`ot�Uq_~Jz�����y��5�V�tJ2���
� �sJ�*�/���,g��o�̅Kj���xy���O��Ku�|��]�C92��1z�}d�J�A��#2���ѡ����\(����t��.��gia�?O��b��Hi3�?���U&�m;�)˂(lܬ^�H-s�d@'~�lI�ݭ�g��e��NЋY��=��� Z��x���F_�u��.!2��fb����<�F�\�4{+l��Rz���l;��xκhX�dh�ʹ1�WϚav��<�в�*��tFux��&�y*B�` T=�#��Jư`+0�T��I*��D��v���=c�;Р��~�u@0z6Z0x �l�c��M�|���Q^k�p	���$9`<�� �O���h�:�A�^̞�Y耷uw)�b�Y����V��6�#oOM@�|��g���b; ʧ&�6��5�����
��z/>���Z�2 ��)�F�Z�0V9�"�%�)�f�9#'�5�4�!:��⥎����h����skzA	�M�B�
�8'/��������xs .j�@�{��Q�^�w40���7��YX���pɢ��`�	@�u@���7X�����Z�U"��c��#��-�6����Y���D��>�wd���RΔ�d��xڠ�qrڀ�Áxܿ5<{��k���-|������o8ck�08�c�� 0�+(��c3�������n�ıWm1�b�ճqS:ߣ�2��A�����0xKK!¢Q0��%߷�^����9���r�O�J,u�S�5��<�`H����h��Q]�r]�;x����,���N�m�+k!�F16_�C�E)�f�PB����(8ۥ}��L��:U�d��xW�Ҳ�Dl�[z�갂�]��O�W�`��͂wI,�>I~�͇���th3��@�?ol��y���I��6% +��p5�:�*�{�[:!`�u��rn����Ig��0M.�N9�%�zb0P��}Z�
�|����Z�%'|�i~q�.�g�z?��`w%潂�e��|�_��o��C��xt�l���Q�\�-�p-��	��yw��"r}���� �D�ݞ�����ZC��	NŎ���a��O*a�3�Z;�[�'&�Ss+��t����o��_��[�m��KN�����f���l��	��㺌o�7�Hڎ��Bw9T<�P[N3��+Ԅ>��s-2LѺ_m,��z��,��.W�b�R�a��^���i6*�aL�
ú8w�5C$2��~�U��Y2h.�Jp($����� �ιN~���|+J�j�����Ϻ
�hQ�Og�-B;
œ�r�_kU"���`�)�+C��b�U=�=[�kϾ��ZX��{]�M������T2	n�C�8��Yֻ�}x.=~��w�`e�+�
<�N�6����p�B*���U��pHf��Jh�yB������m(�A���a�BQ���<�?̲'�b�����Er�]������A��ޡ���0���j!����?�&�P�K���O��4���]��{S��(	+��޼f�Ⴈ*�����{�񸊷E�n�5��p�
x��f��������8���/j�P�$	i��vE��1w4�C4X{�|��A�z�s=&�`�3zɉ}�����<A�q<��zn6P��R��z�nllq핅�Ϯ�lI��SKŞ� �U�E(M	v�˚�_���}�"�a�M��6���o�z���`Zz�j%^z����	�o:(X�~G'"�ZY�`���ݙ��VUAA�Bƴ�#�����"�Jߟ�`��R�tϐ��^�~�a3���\�w2@�x��;�c��(��|�X88M��c{3-'�Bmi
E�7�zH�恐l^��V�����v�v����xM&(��cN!F^�!�����
X}�^�a�"��@���dq�E��-�_Ԟ[���"˜ɥ=���j�m���܍<9<'g��G�[Ӭ~Q�rT��B[X#̭�����WZ `�X�<"��@��m�@�a�*�z��గ� �䑓�EӢ$0ա�6[����R�<���u��O_Ѥ��++� �����
&c�L�MY�:��}F`l�M�XFP�e/�C-~��}��Tް��J��l��s�T�NqL��(r��C�L�O�M��M�[�m� �i78,Ks����4�j/aH�hr۔�'��SΙ����jK���q�G�<h��ձ������N�/�U%R�\�C��T��^?ˠd\Q��́@4��vf���zTnEj�0J�1-=�®
6�#`��e;/`�Ϗ��A�O��W/j�Э2Z22u=O*�<�7��`d�hsX�w+�������2�kdcL��9��͟MM�~/`�y�i�~5&>�&���B@<�J��ҫ������c:2=�~fx�V�9�F����0��M�{'@����юɼJXK��rʭ�jw�f�(��`��D���?^�m���N'5./A�o�:8U>W<\��k.v���޽�����`��7���,o1=��Y�'x.EV���}��@D�\�!�
����fʵpe��e
]Dp�S2-�!u��a޾?�)�6�������#��YXq�Un1�����V�廩A��AV/�?�Ta�~{�,�xSOͬ�{�/.�q�9�̣��q ��q�>��<��=#�:�{�:�K���x/�}p����=K�垏�.�dc̀�q�7�0��$�MT������z@a����Fe���
6c����Oc��x���bq��1�#����_�Z(6�Y�i��ا
�mKk�bg�L�`焤�Ec~"��&��-�̮���(���c���}80��%���]?:�\t��zI�?�K�-�A��[��^��L�@ہ:����r	E��Ņ(�--����8�N�p��#�Ȳ^;��]�$X�!x�;t
<;���K[��q/6'�5�Vk.�__���ӕ0|$�]]�2�\�?���V��W^��J������~'�pV���
�+��d���韣m?�x ���1`7d�EBקv!;�w�
7��'A��k���L�� �o&I�ǁr��Z�(��[
�D]!���3_��.ߨ}�mk�rFߍ������5���n��yK�7�+��H�0ĊI�o9G?�<~f}���������0s]��$�L���̪h�����*��0V�˩SZ�57.Žy�-���A��,��'T�����L�v���&e(�QR�ns�g�>K�k!����Bgc
"^�楿�`@5��S�Ղ��~0��fֳV	h`�.�͜�E$�����b���*�����#�)z�k��w��tA󢖩C�spkf��>^��e`�b���2�a��:z��(���!<��98kE�N����,<�E�<�C�ȁ��罘��_{���𒑤�9}�>�9�onG=S��ِ�"����˙��M{NvdQt�Up.�nj����,x�
��1���m#�gU��ޥK��W�,+�>H�;o�?�&�)����T�'�����LZ��l�d���Toq���~L{�a����}���4�͢��aVA���|�⮊�I�����8�Ur�:��߶��8�
K{-Qo}�|���A�}e5�0���dܷ��g�#<x�������K�wŰ|.�:W��m.a��Yps�ڻ�y�^�j���5ь~����mkfUN.�.��9W{�A#��R�l��^�n�X���s*�b�����̣��;���	��;1�1:&@�=`�:^Z/����ܷ�"�U�#?�n�(#���E��X�k���>Br ���o3�Y
�I_�H��$�Mk�Y���~Mء�����e�ܵƩQ���e��=@�����O�NA�ʦ��O��7FHj;ٶ�}�%N�Cj;<�''��x�����8?�8�us�,��	$��%]|il!�==թ��U��B"�����r���r�Wg$
�G"f�(fZd�AŃ��)���#���b�sj�dq,��9�����o�"{��}� V����Ѥ�ؔ9�#���.���Xo�4!��|{�S{�l�Z^����]����P�L�5Ѕ0�`��<	�R �>Hq�B��(�m�K��O\Y`�pRq�|��$����6O��mh��[1=[ T��i���m�u�/q�j�Z�f��pk��I�O��+�|I
������@�[yq��8��qA���ϭ�`�T�G��'e)h�����~�w
"��@>�y�d�3��a��T�;��M������i��hhьB��$X�{�0��3�#r6N���k.�v6��Y�&�±��4\ަ�ʴ'���^�1�.,iκo���7�}�3&>V��%�õ�z�U�c�ZQ$�V�)c=I��S��G�}�R)�'R�G���v$�����v0l6�y�M{�
K�ɄӨ
��~�)�"�+��Y�$�B���x�))oO�G���Ʊ�m���F|?�� ��0p���˲G�,`TT�j�O{�;���E�x����u��]��6���2��f��U��?Sz��Gg0
dk�O���7�N��;�dX�9�]C��D�3%�\��G����<��^�{�=���2[*�K[�k��p��ӦP�7	��� ����l?X1�zĹ��������C�����1�`�f�Q������;X�@�,��j:��G&ie7?O�y}���_�`/�|����
�>>���0����Ӣ���R�G��p_�қU4���3Z�l���I�k���n�����,�As��B��
Wd�4Wb޳���v�.Wˏiw>
~އn�^B�2��È#@+L��7���I��}P(��LG�/[`�#�Md-\�G �ꃋZ%�!,�؀��豈�����ԞK��]�ێ}C���mf�"��)
_��A�B����0�:���Y���o�5/Yt3�h�U^��ê��a>y���1Gm~@ve��顕��kP<��^j��)y'���v�#d8�I�kq%�?��G�����
��b�9i�V�e/Q�O(��x"�6n:�-{�vZ^y�8�6�}Ј�t��YI�v�w#�mnG���E�;�q�5ڑ;��U�Aðs�mQ���^ʭg�f�f.}��e3���B�g\Wc��<��R$����K���m�Ƚ)\ }��3�g>^��{s�[��͆]���:�(�}xi�uynEy�M�.��C��+ܮԁs�/#��I(+��&'�m��eg/K6�8�K�rQ�����I��m��?�3��+k���a++����H�9���[�?��jS�̴�}�V�k�o��c���q�����g�����u�+{�����	�)�ptS�nn�'���}��?n�T {�T<'��Q��̝�p��N6{�#r^l���|�o���q��U0Sj������P�W�}>�(P}̬�}����p�����:�ҵ�\	p� ���_�D{?ax�����0���Pvk51��f+.v�h��$I�@�-1�̴�ʲI=�kNXn)�V5&�������K��Y[�i�g���}��sF�D�����d��Â����,��'��M���{���&wG `M�br�LT����	�g�{�/�ɢrF�N�!�J*�DyQ�5Ԃ ��U��/�����@`&B�Iӌs�U�Ξ~͖��R0?�8L�G;C�25K;χr;��f��E��L�N��+�O�z�6,��J�bISQw��Q<��m���w	e��,Ȇz!�f��.�t�&�ⓟ�?N��ro|�2h�0��d_����)�����FK�Ӈ�Aҳgm{�!�^L	�>�gE��_�8���z�w
���Yi��2.#e�n�𵊙Q�O�L�ʄg�O���+{Dld2�:s��k�(X���l`'�K'7����~r)�r����b��b�@8�C��w���e�C:���M��S>yQ6�>,�!�/�"�
�r�՛�N)M��+�܇n�����9�W�.����]����T2{pdvD��aY�[z�-=J^?^�PO���z�fb�|x��tbmģ	�7#(�:�>(�48�Ϣ��[�kL4k����I�[�H��������8�bKu���9�#�
�#�zk�r_n7�F�Lk�H4)l�g���i@ɽ-�~s��*6��s���Nk��Z~e4S	�$
?��0W�\a����aXs^<�Uֽ�u��yj�Y���#ϳ
���7�S�V�܂��	#ϗy��(��s�� �ݲn�3ô�Ty���5j�������>`��m��IO���2�S�@�`�+�})��9�����)+�Yʩhҳ�s�-U��?�vߍU�C,l����u�9�j��!����r7����?�]\��<���X�����b�f��
P��Vr�?���|��R�q@(k��ܚE�^�9C�b+�)��]�nn�b�(�&]Y�H!ș!^��/~����@ꍋ�-B���TB}a:ds�翪�6ȺD�
T(�a��M�����^5Q?���-��Q�l�ܳiŁ��€��CKmRר��[�����<1����"���X��3��>��pK�0��姁�%C����`�k�{̀�9�%�Y*qo�����T��<s2�90����1-�S�@�[l��%�h�p賰
{9'g�o��=��%�<}�w�e���|��AO�+U�	�V`X�<��C2Tn�jVU���G����<B1gY�ʔ�6\��C7���ϸ��Go�o��ݱ���=|p��$ӅR�	��5�+������<��U�=Ռ�;F���-=��bf�81�Ǻ����gp����`��:��6-Y�5qSe�PRHR��á<�~=�w�mr�˦
f�Q�3�� �޼��9��n�3��~��Q����ۡ��´n�,��w`�1��XNȸp!����K\��%�A�:�(���AE7����r���|����揞}�u"�{�PXa8Z���dW��p�j�aֆ���G�x�'�����*����p\��N�4C�酶�-�i�˂~��|�n���<�.�<�������1�H�B�E�����s�IK�=�DY��3��GOB��]�mzQj�^�1%�(vdDD	��.XX�$�]s[\�>��ڋ�O�,W�����3��:�n�L2��`;�W���["(��F�eG�1�tX
�5Y��Z=�>��ŞהO�
����tFW[��^]�z��1&ZH�i�l_�l�z��P;a/�iӽb��E1��}빮�Q8��߱uS|
��H\��b������2�1�}MZ�%#rY�\0^ͥ�hN �_Їn^Az��4�>q��>��y����*��,�"����s2� ���y� 1�bY�A�����������A	��`�4����m�旃�v�wJ�=����H��O��Zg�W�ڙÔj>8��W�o}"܉O���1��(�eo`fw\Pi�EBf���R'����t0f�i�#�7�T�0H~��z����%�8g�N�\^�V��C�T�R�7�K�iMt�(ۉ3�)����f��ș��|j	S>m*Dj�R�39ă����-
��8���1���}/.��G�ٵ(�LS���� �ZH�1�+E�Y���ܪ��7�J���/���E�>�T����!~͇4��`0ΰ�����!?B������i��|�^��n��a�5��;¹�,��gQ��׷��Y;������S�}�m�4�CH����K.��Kf�$k�t͠ �aA�0Z/����fS�_2m^���ޙ1�9l�to	��E"���OEJ(h`R������6���Z��`%��>H�?1 (���:��_��[������}y�/^��+x�v`��_��z2c�u�b�@m�@t8��Rj7�	%��6@�@�+/N�Cش��	K�*N/$[��Q[:- ��_.�}�� l5������=d���Ղ�;cp����O�	�U�nY�x	(��!��\�"���:���i���$����y�b�(��*,C�҈�����oz��ewpƆ�ȹ.���,���UW=����s�_��1�������\v����aIu�l����kx�̹��cQ��;����D�r���O� a`B������~��8�93�MR��+��^�d#���h�����?7����Y/-CK�+)��@;zV����F6�˹0���� �qb��Rr����T��{�,��J��i��ٺX
�����;ĢA��rݪo_Xp���<{��;�~n���4��j[nk.��ʺ�^�F�UmA�_������9�JF�A�y��'�Q�%�Ǽ�Q��l#s&�:X��O�F�������gt%���:Pئ��R��>�w�#�O#��v;�/���Q���lb1��+��̇�~a��`��o���$��/��DZ]��#$]@��qb(������L�=�/QC�{��j^#l\Y�P�)h��E�4����n��4�)����:��rf���}�v./��98\B�w�ă�c8EeH�hŷ*S6�Ď�Ϫڲj�)��W8'�=‡8j)2N�%�*i=�wx0y���0���hZ�m6�5����E���xynM�}`D�惣J�Il�;�6�
�c�k�q�`�[@��'Gv�\�7����T�磭�32v�A�y���i���
�0��5�T,js�s�PuU`��F�+�d�O��&��Gg��
�<����=�gX�ʵt+1�rݦ���0�v!XRU�:8̖]q��7@>����j0�fYKR�I�8(����q��.��	�p�%�pl����q�>+��f"��J�J�}��j~���P�_����=�PC��'_χզ
B����
�����Ή�J��X-�8�$XLCU�w*^Ţ�†,�ٲ}��}s:��{���.��
�1���FA��,#pQ;|�P�yJY/��d9��
Z��V`}s2N2�g�Ί�T����{}�<؝�Ρ�Id����0����W��2cS�j5TG�&j�@�/X�3��GŤ;����QQ���;��qv��շ�T�2%)�ĕ�Ūx~��*�zj&��T��"�_w�{�I�wv;���o{`Bn1ij����״�rf�Á��_J��o�sao�ú{�z���/�qÎR!�����-mܢƽ�	̍�,�O�$�q9�|f�)p(���g�`�UpV�o���N�P��.�==�;�r����e	j[i���ۈ1ub�r7�
����X��7B|�1�c.�S
��#>����ߕ��ͺ�2�����_Z�:F�Y�XA���S������	�h��|���&6�$�����^z\����d��Fp뎺n��h��)��_������R2s���/��_���@�_��Q� s
t<��t{�K�ɓ�8��6�ː���S���[��%�s	��	,(Mf���L��2�J�
��3�I1��P��-�KQ�Ug�nΆ ��Փx�F��H	���֤t����l��N�BI�紛����b�
����X�ѻ��,����l6
ڛ�W������^�haZ�f���wρ�� �����Q��߾�=��M��-ä�z
/�v�������t`e*���n���M@����j�rG�i8;���o�)��;�g�2�R/^0��>��:�5%�����z7�r{�N��g<^��x�BU�3s��*p[��#�i(��&�����\,���By��s7V��.ve%X�S�-�k�Y�7&���Bf��T�X�ݚ��?�5?/��Ϋ�g-ӯ�Vyf�$г��q�U㈀t�ʀ��,����@ghU�\�G���dbW����]�sS��&��@�,Ƃ��˫r����_/����Z+5�z�=A�O�L��O���0����l�;�>�(��r����$4����-���{Pبt72uC�
�Cg8p�P�+��G/3���A=a�'���e�;�X�)F�9.�뛪_�x���ڎ!3����
M����N���}V���ۏ��'[v�Ƚ~Úc��!�1�[��l=�	q�k�惡_x�n�P��?�C/���K�3*�C=�����&��'Ԯ>X*�����7T�v�3m�Z3焮�~��s�$�|"��P��?~#ZZI��
e}|�߻��	��?.��<5^	B��ݟ]I��GN�À:fa;�}�p����;Y����;<���O?~��(x�(��Q��I��[a��97[cw�W���Q���7�#����k_�>m���iM��Y�ا��$l����1ԯ\�Y[��ݘ�aY$���m�q�f�i6�
;�|��Dv�z^in���|�G���\Y�,�_��Lge�ltk1�����Ń���Vl.|��YO��>2��d�1O�+��<��\K�v.�+=�vkF�d���K��Q�_6��dg�|���x�`��5����ۣX�m�t��2���"��:�e�F�l;�8���F7���Ws�q�]�k#�ž��&���Z�l\z�����`�
�*
�s��������n�D[_1}?�3"�m؝f&ҷJ��hj=$��53O��q�ZܲY��$k.�w�պ~�qx�CM�����N�&�[����R��'ݏ>%��HM]�̭��Q�������f�[0�"������Y�$=��k(*J6ٳĻ��=ف&f���=ɦ֢�u���'��=�_sF��ʝ-�m!���y��3�Kd��D��+l�}���ϰ��O9�
�CΥKɿ��=��4,�뮯3u�M�������.j�d�[?LE4²�a�k�����n��x4��b����|�G���>��5ƈ��l�5c�T1�(���*�D��%poK�H�x��̚�F`�oyL��l��KϸyQm����)���j��k�,�
G���s�uݿ�� �^���9X~=�!���n�E����e�1��Q�?�Zk����j��Kl����Y]^�>��o��7����>C0\!t<��G�5��̥�bNf�R���A0��?afJD��	|FMx2��9���M��7�EH�d��s�/>��|�&��,�܇ާ�2p����E�W�
���B��X�k$��a���b�{qFŽ���˙C��]��(l(*C�8���( brH�ݡ�Iu�805���Vn�1�`~f��bozle���G��_��&�mM�Ma��A+��-�v�3;��l΁kQ�9=���c:[3�]���!.a�1Uʣb�_�X���D�*{F�*�vE2z�	��9ȸyq�mEagUUl,�?�����'�v��2=�PΌuV����֬a[?���N�:���,-�-e�糜S���X��{������;�6xa�����[�7n�E��,��[	c,@^�=����{�`��^�[�}�4�^��ka�=fGh��ʍ�R�)��۳CP�(k��u�)pg���W	��K�����M��/p��!����3+
����(\f�7���k�$��r�C��X���o`�Tm�cb��a��~���j�^�q������ ˗�}�ٵZ��ȰZp-��gp��a�l�Z�s���[��Y�$��M�x�^��s'���0�4t���*s������&��_
�j���z�����B%���#᧺S�o�Jgۙ����H���d��,pU�1G�ܡ�g�@s~ug�Nlq4F����~ܹ�SRO���4�˚O��F^|@3�h�Җ���hՄL�)�P�֜���SSL�B
a��sd�{5(��Q܃��vvc�ؙ`�U&�>4L|���,����\�g�)7o`�Y��"lvX���;O����f��{P��u��S�ڊ���G�_�kQ#����`n��E[k(N	�E�&�U�5�,V��CaÍ����U�(7~��=���7z��M�/�د�{�A�_��9)�c}_ȉ\_��;�U�7�r���	L�m�m�0�Y�^�
^� 3l>ӊi�)]>��d�h ��S G�?x\:��M���tW��|J	nY��G����͞4�5n~؇J=�v���+>�"��X6����3?~,$�pb2���iq@�/BѢ��2`�;�n�ף�e^C�W�J�5KUr<;�F�Q��gz��"�<�f9�v?̓�!`��&�rpi/6MA��:��`-/u��'\j?L��xE1��ҏn=볰L��2�Q�n��?gX�Z@,�U���L-�o�Q��I��3�J�9��y�/v�4��p��ICeV��o�\��V|��+�3��b�Lī�*�/sq�a�����FϫeE�S8,T�u��)8��v�ht 3�ߏy�%�@Q����LF.�e��b|���l��u��Ʀ
���ݐe�e�����m5���J����PT�֔:|�����*VwK韬��[�B� �P0螱Yޛ��q�H�\�YΥ��������/����y���L�-K��Ou��`���KTw�{(�[jk��
�z��I���f��&�(J��ƹ7�b�S�^�>n�~����l��5���I�Ds����R
�`�2�v����;��g�?�m���2�5v���3-����R�˱���lI֞�qR�/!SZ�����i���5͓�NОb}6Sؐg`{6��0��α���S���l�aC����M��=�1���s�5ؒ�՞.�U[{6��E5H��|IRQߵ��g��%p��[K� z�v��N��!���l�<0��׿3�}�"wo�p�붡Ep��ޓ�Q��V�	�K
�$F��w��l���
m��jx-a�p�C}��m��.Y��!���8����%?���=�z*��u��Ҫ�gzrz�9�brpm8q�㼶���E��S�\,J"|��%?O�F��j�;�E��O�D�A�%/���rkU�YD�e�	q�=�����+��4�u��,~mc����@%3�H֜��O�4*]U�#�5g��r%R��G󴙻܍�#��q�I�����!�k�@��E��e��T\$��`�
1�Gޞ=�
c��{��C5��DHu7�ia4����Oty���uL;%\��D\T����!ga�N@�|���=��?�L�0,o����;���/c��^Y��hʹI�	�"C�5ˁ`��C'.�n��#��K�^[���-� �=�>��g����~pf�Yʕ綣�����uHK��l?w��	�=?~�6��"nn@[O1u��p`�_��ř����|%
t�Xc3�^�6.�E+�Y����a�����-�o�7�0�rF���["x7�l��؜�/��<���P]8�8B��&��c�.ˇ�חXOx�K���
��IJK�D�-ܙ;�:�0F�I�$�}�5A�b��duʭXu���3�}@K��r�doR� C���Ls��(����I��>��T����!p�q:��)���x9tQ�����<��-
��\&�v�inG����=�χ�/q~�
�8u��1�)��,�c�_�%G��j�@���4v�Q3��JZ����3;�ץ��l-
�ն��ib�����-z
_Cb�pK@Z�#�L�s�[ҽp!�r�k6��y�鶂���)Wz��@�2�7�Ut@�8(2*v��Ai�Eˀ+�^k0�|Ȣ�Ϯ��.��Re�}��f�ϭ$��<_�v�zC>㷫QծA��[Ie�m
-�j��[<�W�xs����ԃ/E'�Pa��/�\:�Ĉ̞�|��>����J���Hɞiێ���9k&�qǜ9��d��[�&�s�E��*�{�`㚧����P�<�a}��-����g��[��o���T���͍~��gX�qž�D(}���b��f�%K�N�[��-�͇s�<�0��<5�ہ)g���ٮ�ZIB%�M�V���	$���G��wu����ai�P��.;��F.\����oaV�u��j"4���,���c7�p��@�L��aG&"�URV/ʤep	�?2Z�
�pHrF��k��G���	ƶ��5sWQ�'I�,'�M0i��`5�}p�H�v���=��>�\��#p�L�g'�5S��Foy�����2o�
�^�İK��^l�/��>�[]%�KJ�v�}��5��x�
NHo--b�n���E�߭��C���g&t.��+_Z��}x�{3�Q
$�ȸ4+�����'�:�T�GfΈ"�w(��𚁵���A��:t���R9�<�Ih�[���b�����uq��9٫%A����Ck�c��������K�/����f�KE	�x\At>����M`/�#p�g�N��-{ۭ���
�����+��f��a�ܟ�%W�:��碰&+�Z'|)=8���j�Z1A��E�]��-�@\�iI���:3��{x^�k�Z�JQ�/����ϧٓ�
���WzZiK�>���[�ažq�dy���A�7�'��u|���_�o�Օ'/����f�ʇ�'��RB$t�Y#����ԻQs����}��S�����Ü3^B�JpM���&yY�	&2��JD2�gر֤���O�6��1N�-�m�yy�Lf���vA��Z]���`���
�n>����@agތ�޵���@r�
�|�a�%6�\�x7m4�ٞe�+h��b�5��f�s�5��@L�a�E��w
���y�TZ&�l��Bi@��I����������j�j�J�Z�{[$l�q����ׅ)�"��;��S�he֞��j07���L�f���=��T�ݑ_�\�b��ě
�XX
{�_�F�bH��
]�|�����}Ro=�t�T{���-�6��hh0�(�$����sF�׽�n����4Q�ӵ���/��=i\��{�=���C��J��-nq�bQ~���*{�2$e�x��1�`G���+��*��.�)�=r�=�Z�s��/@�#����B�9���{��`�)$�n���2�y��T�ԇɟ
���?�;���!���L&���l�x��q��
����?�V�@&޵�@�����?F�ʔ�=)��vB?�m"L�G�/@�+�^��[ҳ��ߴ��5��͆Mʄg
M�6
��5TN�g{��v}�ж��<C��l��z��@�,���vO� �^�-�L^[4���Kq�q�)�<?d��2�o�q����.�k%����d�|>>�;|yK���{Ͻ�sXC�Ϙ���k5�JD
���Z����l��K��g'�|k�K�r��Pp�2Xc��F����J �i��{Q��?s��ϯ���è�z_5Եzu��Z����fڍ9E�A��M6�k��/T��.�t��z�0'���wj2���W
�l���j��^�F���i�U�8�]M�#c����{��p�� �+%����g�����o���k�������jm=
�dC�C��Dg&���M��?&�*X����{����l�o��l�>?3?��>��/���w���3�Z[h0����?�����������\���Od�E�c]}{3ϫ���{Z~��K�a �O��A�C�?���x��f��?�g�"�U�
�=�p�H���������T�H`�wy}���d
_fN��ި����z`����nvC;���>)����l�T�W�Ū҃_]��=��:7���Y��e˼�c�Qg}~m��4���(8�,����s�^*{��f�	�WԒq��v2z��n�9��:m!;�MՇ���=�a벟}�SXf���v�=�QDΦEд[rKd��T����%�Y�r9�  ���K2���2=o��
��Ь`
��v2������]]�Eo*�m�y$�����2r���s�ak�CՇS��`�R��E t���1,�9��6`���ܛ���
@U�>1|�m��`?pp9[�ٻ����/*?����ԋ��僬��}��.!��c�%'�n5��E��98��Z�
=Y[�;ȁ��*1̆�0`P�0t���؆��;X���k�`�cs��k8�ud��=�Q�$XI�E���^vk��G�ML��%�7m���e�Z���Ty�b`�I��^�].4��fK{�$����+,�Θ������.��3@�Վ�]*|x"g��Y�n�hUz�#�Bq��h-����*!nW��
S�S��!%�	Y?7�N68��ܟ"����o��(�LakaZw���n�1���8́dQX�g�͕��+�Ѭ�˄�D��b�xL/X_�^����S[i��Ɛ����A%Ϡ�+��,����Q\V\���O���j�)��V�N�5�z�f!:��=�Kk��,�V3�o �m=I��NO�av
�2���u�W�~]�O�5�打�p�}dw��Y�AE[��E��=�`�LڊN�bSS-��;��;tL�Γ���-��K(�~\��l�@���2� &��)��	�Oo>
Չ�a�ƛk����e3q�L�t�:G��!�ieZ���/���Ã}�9���
����o�zPi���l^��0X(&�i�v�v=�v�� �!5����6�A�92����>��H�~�Ye�k(���f��̶��~Ta��$e�Wݎt}m^(!��&��'k=&a9�p���)h��ۄ��*�^OW��|,`;��ߌ�ѣ:u�I���@e>z����޾�>{2v�5dfw�R���0��9���M�f
޾savd����xπ�*E�*��A+J�Y���?�����f� �e�Z:�����w���)-�ݥ��
���P��3��e'����2Y��$X���"V�����f�7Ѵ:�e䁛y���� i�m��< N�r88���>��vj�1ZI���x'����4��@�G�>.��p ̏��ON?��	�u�ϖʤ�֓���1;JP���J�"�y�m��a��c�	���{�L��f8ɳ ��h�Xݐ��=KYGa0�a�F�ZtO`-V�Ԍms|`H�A�޼}4�W���,~���B��6�TP�\͋S>�4NrHH��<\����E9�B���J��t�W�Rάl"J�c������a�K=��)��~��fѨ#<�\փs�#lY^C��7�a�Z_-8��� k��Z�O.�a�� �����W�"?n�̀F>l8��V7��u��o��M�CXaz~D3V�t�[*?VI���F9R��g��)cFA{��d��:��
X���&�m���{nB�e�U�U�g<+i#Z��ܾ����&��ϥ ͶEUm
5�sg�������K&y��NF��O�Ҕ��qFa��@�3���Aiu)���}~��s���<x
C-������:���Y�va��ZQ�9�S��O�SJ�6��	�j�
�8��𺎡4�P��8u��2&_�b~���P���|�����b�yD����x��޳f��P���Ş`�"����^�빽<>��jA���c�U��j�J��mύ���s��پ��f��7��Q�����@�s��^��Z���wN2�w=�6 W+���`��5�[C��,�r��;��n�9���s�Y�s���߇1����K6�S6�d�|�/۞ۣ���i���{„�7�>�l?�	�����l�~j���U��•�=��eOs�8G}�D��=6?�ͼ��3��
�PuVF�Q�)��N �t>���Y���є�A�}a]���I1�2"���qh�3`^\v����c�C�«�(I3
�,S��\�A��ؔ������*_�XG�]�ܖ��-Օ@�,�9�s�!�����c�l�L�<�+�uk�J�bsv�;g/�4L�KW�o�_(�gZ
��=�����b�"d���j��|Q�N�b
��lk��[%y������J�1V����~`��E�.ؖ�g~M�.4}6��TxC��~
�ȟ��s��J�g��v���֓H���t*1���z��6�$����{{I{ln%J	�G���6�z/�1�%�F�Ӱ�@X�q���3�~E�!�J���g�O���#�����nvͨ7�<�+}��g�@}87�Zp�PU��D�	K-��w<���zw9gn=�ŭ�;�*��T����&a>��k��g�۷�fgV�����pf��U[i��>*�Ȯ{�X~��l�W��HP꣟��l�_G΍�1�K�����򽍗��.ΰ��:�r�/Fp���u�1p� G��g����sʡF:���4�O��j9�3�r�6SF{r�s�7�-���&��}��g���>Mv�N'��ۢ�t�^ykm5�<[d�i~���\U���F�����B*L��0�����_��륭Y.g�г�\�Z���Yͬ���*���U7!	�[f#�'��U����s�"��w��D6}�5���-}m��z4%����oޘ1ފ�@E��>�+#i|1�
�l�2Gz{bc&㨅䭕�ʗ�
�<�����hr��۽�Z@B^�$vd`PԻE:<$�4��࡚��Ϗ�Mώ���/�9~��/�jaĔ2)���:ӭQ(eh ����(s�QLl#Wa8c�K�D�L��'%� ȶ(i(|S�bҁ�`�>Q0�ÿ��&${G�@�*��;d��]}Y���:
��檷֗�����H�e8Dy�ak��0���gZ|��ڿ{xʝfB�T��`ʙm�o��G��:�P����ۖ�"�����j��S�����o�XcK�r,�&^o���m����w6�S|x3Ӈϯ�2��U2H`�Ȟq��I�Vvl
S769e�V+d���yA�+5�~xy�����߄I���3��
�h���g��mw�}�w}�6�Po��z��\���^�����
��-X����lV��|�m
@��HT��PV�j�L�L�"E�Y�)�1��Ys5`�HR���M�ob�o�0�<���a��귴�i%w�e�ڎ��lx?���3D��@���
���Z
�<��oeP�Y�/T���{�PM@�?�����kW>��	��^����/�e��8e�-���
�c��'�x�2��fvAk~��Y��;�G*PrH���n��=��
�ǰ/̂W�c���O0(rMx�2ÜY6�dE�Qn$=Gy��.=�b$m�0��c���30���嬏5;)
�u�}��U:R3m��^�ڕ3����z�*n�rF0A>��pdX��9�D.��e�B�>d�����r���L���<���=��� ���#އ9��Su���n���qc~༓�|��!�Xz���Fa�q&��V��<wLlu�f�!�zD#9j�aϾx���FH*�����jg�g��Y��<C��,%�rVg=�x��MdP�R���V٧Jaz�
�e<�$�K.@Z�-J"�2���}�M��}l>�2,�d�a�rH`�OS󼖨�Fqղ��.N��w�������Xg^VU�4�1�=��.�v^#���ٽfi��B�r��z=l��ϳ���{��N@��#���{l�si�}����%'���W�,�0��4P�hX�nèP+cP䶪����>'�v����ޜp��>n�4�B�ls��4{�U�3�}�5�<SR�'@mpKq�E^h�Ix� ��t���*��.�{���u�*�j�h�8��������:,����GT��u��(Vg!�3��K�\���&5�K�"�Jr�A[��G�l��%v`8����������^K��9�e`%�+��f*����C#�SCf�K�*kG{g�({�ـ'a�x�<���(3ܟ�-�z`�rnΰ�����|�φ"J뾑A٢p>�|8U�ױߛ�)�C$tx�a�:@�p["c3H]�*gIGN�)�ɪ����~S�ș{�=H*������Շa<��`�?}�L8�D�n��M3U� ��D�o�%�(\���Ӷ���0f~���i�E���^�Ydv�j��ZމV"	�>Q�'/6���#D�{�M���OԂ��>`����>������r+��̨��ljj�@�6Q�&/+�gG\��i����<&��Xh*��
�O�mŭ_� ����zρ�
�t��Q_j�9n8M���ꞑ�p��^����G�$,m�g��o`噎��-^�(|y�LipJ� ���N���+�kL�6�&6'~�xR4��F�z+n?��5pÃ�߯�ꚡ�~Oo�rc
��MO6�7��($��x�m�RC�p4�@N |Z��%}�K�{�'�8H�=�ꀥ�{�0<KbZ1н���
��If&���B����� ����I�,��V����>vF���{x�M>}��J��W��Ϙ_L�9�����(������M��-�L�8�깧���W--_4���Q{b�L����[�}�w94(�4��Dގ=B�A���
 ��T�p$��Zz8:��Z��E���jN��H(�+{\]Re�\�߸���5�˨)� �C������
~s�2-�*���y�E(�igQ/�.����ۈ��օgT���5VU�7�fH�pG�@w
��@�����.W�W{, �[P��:�_�0�y�5�m�K����P����D����$s�>��U3%��U��H�Gj��|3f�RTv�6�w%e�	�ر�遽��,�o�>�������gI��W<n�t3K���>�9�T�� 1Y�^@��졕ӗ���ͦ#��f���p	h*�e9K�����	^��ل�4�bӵY�2]�~	�N������`q!v$s9{Ҋ�>��Z�	4K�o.�p�`������ĽIe߿������<z3R�6�Á^�	���,�Ak�s���Ӈ$������ב��z�nf�2 g5��G$�z��6�)�zr��3{���;!~�on�A��)��W��[A���i�3`���Ļ��O�սExW�y=�X����mx��ظ�EU9�EyVB�����ٲ9���p�^мx�R��������*ǁ���<�#�u?
Q�T�CU뀹e��9h��A}��buw�)T� �7����sF'N����.O+���\��-m�j�)�r�J�x��֖\m����1|��C��WK�������������^JoB8�?�6�f� �w�����U���Jvݕ�o?{/�xڸ�s,�
��\@��a9p��YWk2"Xt��NA̪��K}���y��
��Ý�!��ܮV'���¶5���Ovy붷ȯ|p�X�w�yD���1G	(���Y<�&�d��OK&�̤�)�
�I�#v�������{����!	HTlB�@G��;2'��l��g���U"��{��״Z���d��jd��N�vS���=��ǥ|F9S�My/��-z{����s�Ѻ+�잿MU�ԧ��*rB7���t[�Z�u#z)�p+�����ꔱ����3k>{�j5t�����#ۗ1��^ou����	(�^�oPN��@T�{?6��8O���F�bk"w�5���-� ��#HEBN� ]��m�ɯ��;0����1���y�v������h>p_�|�J�6�crbH6�U`�,P��%v��C�H���P&<�r��O`#��:K�u���(�'�
[��`{n'�s_%���·6[��-�f
���$Y|���Q�Z��Y��7�Z��/ݔ<RP�%���Jt�?�w�w ��	��Yj�U�v�dpL:\�=Vάq�:��h���g���B�eS�M� ��M.�1�����pC~�
'�#m�G�}���Ǜ�:��n��
S*�l~�"mgU�/
��vԬ�B�X�=FM������^���� ɢ%K�Gc?啵���}�-�HȦ�
3�/.��{�bd���j���$[KFv苖t뙃�����}@0�?�~1 �B����vd��a�3k�Y�ۣV�~�;�P������Q١7ãN��ߐ4+�ҕMv�W&�3;��!��fx-׷�����M���\�€&�ڢ�8Y���S��H�zh.�r����dR��2c2��;��<��A��ax�]��h
"�O?�Q_�9�}0#֣ڏ$ ןz	W���U�V�:��@�/��υ�鿭�^`Q�lVl�0�Q�|HA�89��oo���l/X�-�}ۋ#�FO���C��Q���I>���ӧ�y 
Bc�7*`�y�ׯO�|��U- ���w�����xz�OS[mVr[^���v���E<���Z�Z(�ߗ$�]b R��`I�n���[s��"�/�A�#?f����b�n�4I�o���YVL��K:�1�����]���j�(�O�V��=Hۧj'�o�9�~��
X��!�/vv$&��u��/�
,$-Ȯ�߶�fO�|�0�e� �J���7�S50�����B��.��d����{�Z)�n��wG��Qm�6���%��lY!��]�hS��/kK=�M�>��>�Ahӆ���{�m`ŻCs�w|��Ϗ���Ch��W}�$��f��7C׻�Bq���J�ϟ+<o\qmb�7B���5U��:��a�����C^�ߌa)jc-%7�(?^`�M,�`J�nj�$C���|�+8��a���<��W�4\Y_�;�,�c�:�H��۾Y(�<�����Ѥ�&�S��4�L�(N<b��z�tJ���>Ȃ��;�ƿӿ~�T�ծ
��κ_��e�$E�X��"���|���1�
���υ�����	Pu���7�=�q����!,:����R%=��a�f!�0(C�Q��Q���-H��[�1���P )@م������g$�j��r�2G�p�Ǖb����R�y�'K�T���GC��ԛeÿ�a��o�s@��e��U(]Z2+o����e3d���==�/z��@���������ooP�?��?����}{�~�EV����dY� 7��~�f�s��'�F����:�t��Q��A|�6�<S��l`��Z��fIŲ��`����&{�{���C��c<
]�e�-g��X�����.������U�4��eS���v�>��UbI���6���,��ar��7=��p����s���Jb�I�+��SeY�
u1ِ��5D��Uy#���"~�w�mz��w��Q�&��ܗn���,9[o�AO�.MA���e�������-Q�����g
���V�w3�zӎ�eu*{Z,^��Z����ђ�Tד3u�@N�R�s��L�f�����|a��~�²�f�1>���ͬp"܋
t,9'�w[m���3 ��٧p���w�~��7Pz�	0��z�~�Ov���d�����-vn�0�#
	c��B��؍v��F�[�0�
k��ŠE���<�|0�h	Pp�m��:������I��j�ÝRs���&D��J;wP�~O�,WL:�v�
SbD��W�2s�8�ZB�5]�a6#u*���:�5x�IƼ{�2U��C2�jWe�f%�"�a���]�Tε�
����͈�m��m�tnڽ��i�ژr�m�ʽX!�}���z:i����~cn��$j&��V�r�P��J�\3v�-�ﲟV\7ƈ�����c��>�N��^;�9���}FD}|�K�U9�i���2��K�ú��N��uw��&�ľT�l����g�-��*S\o�Yz��r�{&��kn�O<��B}�<Yh�l����B��Y����Y����Ca��g�<W[�W��~&Z�-�6���믮c�����6o��LE��ńA��ߗ`pbOu��W`���/G]����<��_��I�j���sC����O�{��/�zZ�l���o��v����$NL���t}:4����梙����n���άv��X�Z/`6��"�ِ_�9���b�X*���F�}\�&�{S�8�=���&{��ODڼ��8_ >
�0X��?<�B��UV&��!xw2�>6��� �K�>I�N��n��TXW��iz��̪�‚��1BjO��l秉~E����`B;�_����F��:�u��A�ݶ�Z��>a^��|�.�b_WD?m�\)�3}iy�����^�J��h��J5{���2\}��,S���U�oꌆ��H��n����~4d��C=�G2cfYOIm�g�1�'�|��QE�U�aA�(�F90U���l(l=� t��g�U�#N;�-�ދMÎÝ0 ������]�f���-�Q�������ƸH�ܓ[��	0�]zX����lѤ��*a{=��d���Hs�s
�l�'��hRNu�]ذ(���=���]o0�^z�> f{����LiqC@|�c���8k|OP��]�,Ǽ8UQX��l>P.EKaׇt=d҉г!Dx���N%��e���1a�G�
�%Ԍ&���u7������٬�>��
ov!����\�����2�;)Uf�=�m4N��㕡~w枭���n9��9��Fi���o=�0����^����	�]�K���m�^�[X��6g�"�j0�[?﫚��}��e���l�v��c�7�%`0�Aq)`���ީ�Y�B�aT<�	f��D��ݞ#���,�l�y�!hI��
��H;od��ÇU��-���=����h'���7؟�FW46&!u�l_���Ⱦ�)e�2Ǿ�p��l���~��>92�s�}Qy~�gP啜���,5���������,��W\8�]�`j~����,����< �ݏ���a�����^�e1��vcM	@[+,~ڼ�|���\7O~��>�ߠh���7�eg�W�&7%����Ճ'��3	����U�-��K��o�ڸ)�"��Dz煔\@rQ��	AuUj!���f����Ѳ/�{t����A�c�u7 �)����Z�X�)خ�d�]4���x.�ݞW�σ��_Z��]2;����
�>9)-K6��Tl��T�9VR�Slﰩ���G�������
r�dxc���GS�p Wt�b
�����V5m�3Wm�+g�H"���ȣ�M>Ȧu��a+3_6��(�s{ܰ��՞p<�ס��s�'��j���E0�<�d�̼p\��X�^l$�,�$~J�Ӽ����[�f���[�씙�k��>(;��|��Ӫ���3@�ʊ��)�K2�,W��bh�p��3hY!ϫH�x�z���֫
e�X��R��g��@�l��d��C��cUfU�|�)*������fd�akA��AV���G�K���Y���y`��=��w�z)�(}N�Z�)B�7����u�JZ��Iyp�O�20��A��䑼Ʈǹ#�^�����!���FO�ij��tvE���{�s;(X���٨�;�)r��P�s��4��(��Uϧ�M In!��:�%����fZzJ■�n�Ui����A���w�$�@?���:���<��6to?pv��?�d�F�ׯ�_;.�y��Z��Cs!�vz⧾���+�'=Ac����%���g��/)��0���1��6�BikϠ�&.����s�/­X�V�*f��#
�?�)��Y��PQ��׊��m�����-jș[��|�8��=�)���u1�a;��.��|^,	Os�ƭ�.���!E����*��aO��X�`O'^�>3�,����}.r���?�Dn�K`Z�tul���c.e�?*�	uf��%��n�U�/����L�.�����hziSǑ��,R�"��@ B�!�1��1����q�𒕃������	�Q��G���G��us�X���?��9Ӌ+�K���
D����%-�ךӯ�3*�;>� Pl*�;��̥���iHa�u��\;�V�e|b!�
c�~#�s�8F&��%q$�K�$[��S]�Y���˱�W/k�6���B^�t�& �X���N똚��Nj�~Y5��6W��ou�>*VN�S�v�����I�7nMC�=_��b%۶����'�QԘ}�����:����8�՚4'�o=�f{vQ6��9G�_l��v��E�d�8�dE�^��Q�/��j��4�.�w{���(%,Q>;+���x���6��Ѱ�춷	kV<���
�F�N'4�F�\zoN�T�����uV�P
!����ŰzR�
�*g�B~N��u�
��x(h��)�mC��C��,�l�[$����P
x�@7e��Jހ�{��1���+���F��I���m��q2��%���B$���h�|
>��s
�Q��U!qq6+���sk18�ϧ��B�:`�����yb��ѧ���aCqjE�O�B,��`ذ�̂(Է\�:����ק�(Z�'<���[c�(�㧣޲(����]ײI�*;>E�u؏�LE�\kg[e��	T�쥻U�s�6�y�@�VrY#1�濒�����i~Ѣ��~1��c�P�r��)���u޲v�k�r/{;��x��}�V��0?��~=�Y_u��9�|.���F��Js1*8"���IE�3/w&@��
���.�u�kT�o���}O,;�|Mݛn�z��R���1�������J,�6m��i��>T�e��P6�6p�.--t\�I��Y�>�I��`3V���s��������ۡ���urxp���$�$��oQ�
�bs��J8�ש����ܐ��n,Z,���{��[�˵�:z{2]y;��M�'Jp�K@{�Hs�R����<i�|�۪�!W~h���Γ��u'��k���Y�.6|=?Cw+;r�@T��9�i+62��P��8{����A�J�ւ|����ByUU�mփ�Z��͟���gn nu'��CQ�qڅ�j<=����e��q3�o�s���SE�9�=��G��N$�>�@�Xe��YБ>�j=��T�#/�s(a�BP~P�����.[��B̛K�V#��9�"��{�u�����
�&=�?GA�#���kd�z��rYs��9�P�:��,�b�[ޞ6��ß=�[{� ;������0',�lT��^p<��o=����1�J?'s��9�6+ٍr 8�"�B�\�;s�n��u,�A��ik%�Bo:e���\q�n�S�9痸݆5��u�'<�א?�t�/�I���+�����"����
a�k�c�Ũ��¤�ռV�Rr23��<�2z�0]r25z��BA����O������O�'�����ceO�$�EI���/z�=ݼ��g)�
JWi��K��I9�tO�YƯ�k>dƘ���w��{Dϐ��r�iiV����43�$�}s�|jg1Wcdxq�,ug�;;j�*��5�w|����
u�~��|y��S1�yR��rq~9(��,
L��RLj�v��
���`3#:9�Yd�o�(��D��.��egy�����[U�~bw7~A��`���(�&0��	�@�AC2�!� �0RF!b&�D��@�DJ�1$<"���a�pc3c���n����{��{���\�:�ܪ[mC�*wU�������k���Ԡ�9J��ْ3NL�R���3k��Q-\�&�-�3���}��St�V����ϼ�gG�yz@�>��!��H/��
�/�Z�((6�M�
J�?���{⬄���4:�e�Q)��8#P���i6A�3��~o�=<ݞI�y�>�{�YU&��z��>`��I��AH�g�,H����k�`l���e�g��.�����9=����6�2��u�L��F`���Y��Ռu�_�,t��H�C���)dc�h�����r�Ko���`T[���:�G�\w�[�Q�ޓn15�M��P�iT�OG����y�I6Ǥ ����MY�R����`�o�dLah�)Q��t���أ#lvB�u�:��}ˤkB{[�iaȌ�
��Ґ�r��
t�D��d#Dv
gg82��hm��vab-���B$����Y�n4\�ϯ���$'
U��L�Q����M�5n��=�00c���X-���j@e}&���Pzmb�S@Sij�(��mD�G��i;6V�����_��'��x�7�B/��;�K��1�䬽���kf�x�k����9k�����5[�f�&p�z��bsZ`.�Z��r!�Y��Ae(�H10�l��ؼ���)	���Z�M��Ao�P�+t*f����t�3v�=v*R�Z�۹'���ף�3�^��}�`�բ���k��P8"U�y�x�����K����G
�k��dhe؂
�0u�]�~a��0-�bU�φ��q�S�2mֱ��nU�-YSϗ�������
�ވ�X��h5��JV+��Xpb6P����:$"|d~��[j��9���{�_���?C�/���ֽ�[�k��e�~�t�5pU���#o�@l���1���1e�c�l8I���M��FA�QmY_�2 oD��#��] �ngm���ş����ֵ|�E�ٛ[�џ�o���l��J]�v柭6(�����-��n��l�4��1MI}!�0ɟ��hnB)~�V\�)�1���tr=C�Մ���լ�j�Q�6'��n=���'p[
�ǟ�ś����x`Kן�
B֑}Dj<�6��0�#�I�<�p�E�V{/X���kp��1���Zg@�Tu™�X��t�6Y�$� y�^jc�֘X�T������=�#����e$�t�_��>���:y�*},���@�z���Mt��z_X}��k5Ž�t�
��]��Յ��$P�(�<�UJn�kF�����N���ƪ��I�Aϱ�\�3���.�_������#4T�I�q'�9�,��!��6R���\���w�-[s��ʃ`I�u6H��
�*<�)�@P�US�:�;_c�Į�->���#��Z�ֺ�m��1ׁ)(���C����j�o��%Ԥ*z��,U,vh�j*N�wb�x�7��D��h�A�}O���<zV��Q�9��RL�:~�T�6�{��7}���o6�[����f9#��W���x��Vda�YE�@�J^�W��g3/U�H��-����51��Y���*ʍ{��R���ZoԵ���W묝7���IA.���s�Φs���_%�ڥ�����i^��4���;md`{yTo�oD���n�>��Ǔm��Z�.�vl}D��4�z�k��I�f�l��Y�����z������$�~�T�Uɮ:�j�.g�*I�rE�F�6�5�<����A�0�6��~���xk�1Ԃ����a�Dgܵ�IC��ъ)׊샋b�g%П%r7h�6�x�9P:2�#q�=�����G�3�uY*���\� �W�?�����iM�t���y�K>Q�'\~O!�N��H¶�I��[l���Q��S(�r���� ���	N�d0�5��gD�̷�\�ۥ��|�,gvj;�dF@��;���!O?x���m��
�I��(�>7Г���fѤ�_�E
K&�&�& ���a�5[m��K;N�]d�<��q>L.oâ�t������:�t'G(@_�^(M��/�(X�F��� ���u(�O�]1F(7h8r�}_m�ܻ�aV|��UK��1+�E���_��Z���
 ��<;S`q�31Sֻyig�i���fû�%N,�S���	���bi�6��Zj�"���m�&ή�H`E��(Y.Rv�0m���0pIN��e/\˼��W����f�t��K����FȤ�Τ_�L
[�!w��6D�(-*�_��Eă��Z]ۊ�#�M�\�y�^��>�<��'��&���3���,
��_�Nҡ��	�:�R����Mh�lP!`�Y��!3�[��q��C��)��T�ǡ�ڙڠ[%e�DX_hs"��~k��u�EU�\��j��[!��ޅ<�ɼ�n�FW?��"���a�،�V3[ڠ��Qf8i�&��È��z@Vg2�����2J�d�a(`�z�r����~�����?��w���\����l�.����l���E<���Ń�X��}�Z
M:�=�����z����Ɔ�{£u��G@�SM�;N��r4��F���gt]��hג��}�-�B	���y�-��o�5
v�D�����8��3�s���!H����^���}���9d���R:�$}�E�q`��	 �1IJ
��g����5O�R,���xpm���ܚ�lz( ��>�?]_hgVsM��f�����l���u�^�$͝kWi�R-뀿^B����=I2؃�2�-Bl���[�p
[�n��㪿l�lC�YA/_`9�\޸�34�b��^9s�\
����|_�әf�l�g����4�ї�����r��}��헨�T�-�6I�I�,� �O���ݓi�ζ$jq�(��5ͬ��lE�H��n���i��g�����>x�x��Ӂ�ܾ���r���@�6�:����r��Y;H���ʴ�\!�u
�-�
0~of���2��>]�醰?mxS�*�h8-�`W�8%��v��
�_1 �j�����%�l~V��
�-��p���&����:�\�[v.޸^$#����T%�/g�����~x�/}����	��XaI5�գ�n�5���,�{��!�9D�qM�$uO�pX�~��ؖ�k⵿ݫI�\�i]�o����0�V�������I��VuKἷp���9d�ÖP��@�(��)ť�=[��Љ I�����J������<7�~��'u$X��Խ�!m('kW%i�e�t�T���(8�۩�տ�V��?�{��h!QsT�jձt����v�So�E�ˤϬ�ʥ��QrY�Ն%�r��f���W�J��`;�&%�洇C����ix�)��m8umRN�Ӳ롪�T�j�i�g8�=
�K��p��}�l�xIAu8HB��2����96ɸhV7'&5�B���W-m$�b@d���6�&ؐ¾
x�iլ��,�,�����a��7<���}l:������?V�ɯ�u����#3#Kb�s�A��fn�����3�B`<
;v6xB��j�v�k�l�#�Zն8�ȶ�k!�9�XUq2H���](����	>
;��X]��p�xj�Z�
���Ȇ�b�y�l�Ȉl�ӵ`����
��F�E�p|u_I[}vQ����X�|X؊��v��Hzvf?{�ʕ�e���@`"�<�i����J
yqJ�K����"���;�|���(9fd��@@/f�	rۇ��5�ݫ\T�S��~�H��}�pn?�C'B��8��#����qF2�ݬ���n�u[�p��I���<�S҅��([�t`��A����6�G��;���j�]���]�u�ߚ�Q#b�
�D�O�‡�Z���13kV��h�qel\a�����p �U��Ǿ�$3�C/���;�=��Ǔ��w~�w������˓��1AY���K�S����LK�@�j�� 4��*����9���cl�I!�"A��2!�A�gc��]�����v�q:PI`�d
�|�걉���v�g�� =X؂f��>)�&f�����`M�>���K}[�n
�ތ�6i��&N���2+��ֻ�X΃J��qd��:�N�'�f�=
b$���A�t-&e_�Z����o,��l�mڨР"��g�Ã�����I�|��>�t�z�f�-x&
�4�q�`��0��m*�d�jU)��M��6�%��n�ơǠۀ!Ȥh�T`d�uFbg��1�5���f])+��gn)�hgVB��I��;m������ʺ=2�F�C�P6���^���0Q��.�=`�����I�	�[i�}�{�^s�%�o������w)Ff�FXW�������/��=r@Xؓk��\���]�ZRg2���Un�����Q3�x���,���<$0[_/X��0BrN]=6�� �T�0'99+�=ERzT@�H~��[�����k,�x@m�
�h�aI���?���	�����k>
�����Կ��{�G��;z[��ܷ^�k]�Ќ�!�AR^����=Y�����:�^�$e���u(�6�Lբ�X�і�ad�T	�p�G�™���L�����y��Խ޴�U��ᵗ���5N��{��\95�u�b��#�K���M
ub�nap���a�%P�ԞJ�Z'M��i��tZ�k�m�G�o�Щ�j�`hL�`���G/�^�_��.����#�>GM
������	���O���^��xë_u�O�����W�0�㷖��y�s�]�z��g%�Z��Ҟ�C3��Ok��5뚡�~&6�z_N�هRF���1���T��(	+u�ydO�(�����z�s
�pTL�*�$�3�-z��M�I܂��ޟ�Es�n���(
�_��&V\T��!�k�*�ǀl�nE����W�y�.X5u2�콀F�M�o9(^��5(�ʐ�*����#��V�����`ߺ%�W{݉U��Y��%>|ڗX�XN��E�~�d��c
֣2�e����4<�r�1�Kq�s�l��鬹:�}��Y�����U�q�ල�#��a��`5հ͕�f����4�\X����h!�BN����s��E�P���q�^^/7���9��JMA�{U)Dl���*��N
�X:6h>��=u
9v�gbJ�g@��V+�s�\�f�w
4FU�`�~=���g	���#�a�7U��{=��]5��1W���rS,%~�nQ{J��0�`B톚�
GH�b�������_x�#�Sn���G(��R�dC��E�Ӥ�=~�|�@����dkm��)+c]dzD�ho����4e������9O�g�\�p.a���P�e=G���Z4r��;P���4�^�'T+��Fk數�
9Y�������'U?�U��|�m{x
��Y��X�#�}��o�3�%Q~�J��**���؇gݾ|(��R��b�m5�^��[x)��	��V�%�r�U�{�����q\qH���l���^$�^���.�����m�̾���_3����p�X)=�rh�k�䠙��hW�2P�Ƣ�$����<z���op�%I���֘b�=�ak�iab�=n����>���l:����q,��oX<<�.�m�^���#Å����<��~���g��DG��={%�)*ic�6{��X9��^�Bn�h�}�èȰ��F���?�X�38�;�\tO�t�	��-N�f���ZhQU��%ppA�*�BIe{)딿i�ڌ�zI�	�[�4��kȗ��{U��6x]�ʎ��g��$���*
7���v8e��Z�8��q� �0�.Y,Zh�u��\l�L����R=ej@�~�'�]��E-��`d�L��=�r��9%��8r����!>�eY�l���g�z��w�5���BW������X�4���.]I�L|�G;)a�$89�p��^�JZK��
�j�g�W
�2�-zD�I�\��!�Ǡ)ђ�0�i��u�q�G��Z��u�w�,ڮ�q�,r�V���y�YXx%�qq��Q��6��t���gj���
5z[6�Xn�kJX�2jг0t7�ј�Ӎ��Л���|����^{|��>���?���O8S�o)�g�E��9�F�f�qN�0j�Ua��T�i��}����
�cvo&�6S����rρ���m��R�|������+7@��\���Z�TM���7��ܱۣE��C<�}N��+؛�uC��D����t��{|�n�?��W��u~ë_&�J�����0��O~��_�� ��x�ؔ<Q��{�Y��8>3�59���1h��z�c�T��h[l�k%���(h�
j�<����s������6���l�̺ǵC�;�y�Nľ�D�E��3�8c�ix��A���	!Lf���v�[h'�4
�4ˑ�Wn3<�GC	�R��Y�=��lyȦ����i7�m�.h�lWe��e1��2��ZNY����XZCt���^\�����+���w���}�u����;<�?�(�Ưf��/�g#�]lm��4S��Ӝ뷺���k�y�އ[�ÛO�"���f������Ħ�y�F���9!���+=��%
�&�BN���О�{'U�%���旐U�N�8%���ی�+K]��b�	 &�:ԋ�\�q~Tc�De�r*v�k���z��h�f���2�q�5���-rZ�[��3��R�2�-b�KE�,o����U���`�X�N�Qђ��P]��}�VU��a���i��y��Pu�%[�EO��&�~
L5� �YY��Pi4�et�LJ=ۂ�3���4���4{dV��ք��u�8[l}����3�&iM`�ո��h�m�Y��%���
���7/�{	g����.k�~Į0�
je͊�k��J��1�W{�D!E�#x�)��/L2��]�ʴ���U��g�/���~7���Lz��S4����Z��Y��Zkc�|�^�%xf������m������vQ�/ؚRI*6l�� �d* P>�֤�<�ø_��
�ؤu��f���"'	�v��P�(vM�áA�2���=;)��I�b�Mv_�����N��KnA)Cf�Q���
�
��֘���<��u7އ�BC�Ovg�,v!e�ʍ-�6s�_VK�"��%I����)Y�m�ղ�4l��bL�bY�m����o�A
6k�~7@<���إ�%�8¸�C���q���9C,K}�{F��(iNj�L���z e��%�]A��Ã�U�\�2o��]���3�ά��I;��f��u�	z��<W��yM�IaxZp�F�_���M�=UU@�������	n-H�S̓�)����OZOt��>�l/�7=����t���,���ǰ6`���O �K�@�[�؜y�JRyO��AヅC�;�ȵ=�:�ٽ<A���pgP�eu�/�,��w�#�i`v�8.T�u�v������j�a�r���4o���-�2%8��!As���)M�S�'�%S8=�%�Bx�ư���3���*k��j�����v�ײ5rr���;3��j���mi{�|$�M]=��$��@X�~��b
���C��1�xC@,�,��Z���K�yPDNI�,�sb���U�Ј�������@x�)j+�d0���k^�O�Ļϼ��f�P��I`P#0'B��>�x����ScЌ1Ut�UVKJ���a����>^# YlXN����,C��nGR^4������������� �����"�}�/t7-kaH�j�]�d04�喍0��²�<�m�0㞼1g�AMKR�p~�u�{�;Gf}̋��򂞱u
���U�B�I���`�i4�L
~��P��ϻ�y��Jl����k���X�э,�$�|�]SO=�I���!Wl�����z�ߔ���� V����&��� �-`I�ۆXe��d�����$�fOV���07U_���0Չ�jI	\�s��`�t+�M<A3�HYq~�Lzk/7Z3S�4t�)��h��%6}Bl$��%�vѭv�Q��&�?��{;�}ɯ��G�
?�f��j5qO�Y0=_�Gj
�А�}�rړ��&I�C���MY��'QBןs]�q����9�?7�Y�b����2��፜A�ޅ��;ۚh��6p��/�g�5����7}.|*~���/��a1��[�~�''8�= ׅ�ۋ���0��Ҫ����'�d8'�����aɑ��A{r ��<
�uq��U���l���Ԥ�m�٪�J����_O?w�`i
�-Mkt
�s��0m̝�3͙ŽS;�I,��*�4�w��س
�����h@�~�8֨���l=��qwj��hU�+E�Y�C63hЮ0���8)p_mm 䗻$�>𕳤�9��ԡݚ"y���`��-�U �PW`���	�W��z��G�?�:�o��3�������~!?�o���_���p��@y���dD"���%?0kG��EX�ق�vBTh�&��g8?o�����ux�~Ƴ�{\P=B�ں<1�=�����V�I���U��;|�����Y�������{��{0�za37?0����5������s{��\_5�#I�8�{xY�ga��Aխ���@���,8Q,��-ʥ�Z�k���־TC�2\�9+�R��)/P��������JP�	:-.ز�qD{���c�tM�M`��#d����Gm&"I��i�)s�����)�)	��ٻ=p�@F۫�U�%-y	
���p
>��*]uu5Jf[>c�3T����uK�d����A��֞�����Ԇ21�����:%e
��&D���[їH�(֙4�Z�ʳ*}@:U{<U��ޓQ�|
=��դ�Hߣ���V��(|nԭ(f,GָKH�#�?Zw�`�E9AD f�+�	)�����t�R
S�C�츚����dA����,�����-��ȵ8U2ۻ�|�����
���҆l���vD��f�D��4�(L�}^�
��i���5+^�Lp�F��z^��`�&� ��F�2%�V����=��������iҧ�'_7��L�����
�jO�Yv��xn{���3j���&Nڣ�^4�� EI|������,��GX�I�kkz�sfZߋ�|h&(�0=���l�m��'Nzf������KR <�R��߻���Wz�,=�ԁO���q�='i�z�nΔ�z1�e��{8�ħSd�^��3�^+[��*���:U�v��o�Q'����_O��Ղ��(Ot�^����|�땿�A'}�-��LY
z/�~Z�!�h%�^�����k�k�1?������|ǯo���O�J^����WqP�c��t�Ay���cgt�����H�1�nQ�SW��t��U֘B�a����Q�p*ը�g����M��uGWk+V'fF�ϱ�K�s����r�8	۲}�pv7�x>BP�4V�_�V�?1v"r��}�IK��)�.��ӷ�����|�AU�Z
��{����g*Z����x���.��j�t!QA;
÷$A�(S7��X3��pY_���	Gn�q��%Ў6hi`	�Eʮ6/s�P�cĽ�Z�n��=������l��#;w�4�K�c�A�b��l0�����)O@�.�45�{9�h� �?
���O��$z{(�^W�4������^���]nl6C�C�-���rQ=��å�u)��Y@dg�5�=��?�f���;��S���3W�	5��
����Hl�*5S�W�i��=|ʆF74�����Q��
�Bʍ�ˠ�F�I�SF.��r�L˒{Bj���}IIe`F੺: �k�gk�*�Z�HQ��^�,GA�_qn�ɍ7�$�S۰�&�z����LC�+��VB���g����'��d���~���K@�V��^C����ɋ2�J��`afQg��izo�����R�]��I�?��=H���A��/
�a��9r�.����h�AD�������r��jABE++!�[�Ϫ��\�g$r�5-sN�����e�\6��N�AR+��jc�E�^�>M��u-$�#�Ęh�.Ir��(]��Où�ŁOf���- Nu@&���
��1�~.���,=3A��W/,���#���"Vk��BU%��P%aW��%U3�P��|v��2�����p6��(VY�C7:OK�*���*��~��>��d��E�?�1�U���E��O��~�׽��E�w���-���7��?�����>�=$u��YT�RS�I
Y[�'e;���~�P���͓�=6k�8jX�+>k�
L��
��z�./6o $
�`���@����{����9�-�Bs��m!n��Jr�nu�]g�'�p����B�a��|���4r��p_�6���ؑ�� �:=��F�6���ق�(���-k�طfܷ	�?�1��y��$g��KR
���Û�����=���_���G���?x��K��%�DigR���(PE'^Q�ϥ_؞f؝5�Y�:����Nd�"��D L�C眻r�C޵���j-y��y1i}^d�|���R׶#~�Lf��Лؚh�J��+�W�Ir�y��($�v��4�i־�?��
����I���j�-
+ԗ;{��(���=C�j3Y6���F�Jlj�o�;RP��Ϝ���6�Y��̦e�^��ҟX�o������NY_�TبvW�B�FP(!��?GÁ}��*���i/����^�J�l�!#i^�����8o���<�W���#�[#�d8W5�b�|j	R�h��	��Tܓ�O��){��U��v�pm<�*�	+�HEɋIdPZ����J@|�t
J.
ۅ�X>�
��=[��@0�?��6��\	_�@ڒς���A�f�n��oأ]*��
4�cT[7Ù�n��ck�MJ�(?���u�̵
�MZ�l�'�g̎i�MP3���B���4�cd1�É�Q���4b�{�Zu��|`��*z?s�y='�5�6�O`:�m��z�2.Pݪ�?/���Nx�}��	��SZ����O��u�@�!�3$��žT�]`��n��3�(|f��tHXݞ�1{A!?J��adž���� �����#BjU	��[��VxZ�p/��b>��WΫ9��)E���,Yk�k(���*|o���\�Q����G7�6#���B�7ө�?�M0�T���,U��;F�.#Z�>��Q<ݯ�K����L�Z�j=�F/�la�I^!+GHG-���ʬz��bM����a��[��O�L�X�1�9߆�3��ɀ]��㙡y4�^�n3\}�� 1@�-�x�A*
�@�Ɗ�
��M?����������ެJ�=��P����_w��2>�&�~xy�2V�6�v��gϏv�
�K���mFeqa��C��mI�UR99b�"�*Վ�ԗn�`�G�?<�!����/��i��m��M��{
��5�s����`�>�}����x���L��\��`w�|J��	��7�ԋ/o�MZe�R:�x\c���X��B
��6��ܱ*��Y�"�f-1iad �H���.aϝ0�_�v/E�prI�����4��j:��0)����qB�{�����:@�q���|L6������=d1{�o�GrJq�<����*��#VT��iX�7)Q
P��K�!0y���L�$��YDzD��"�E#v�݈5�������Kʁ��k^D������#�W|Sz��,���M�,��7ˌ,͐
'ŷÐ�%�M��˲�j��2�.�&��X��_�}};%���[��4|L��$�l[�T�-�0�$��K�s�&������E]M����AR�5�{�h芊8�A�%������I�����z�smԟ42�iR���/��pC��Q)[M`��*W/yyp����J�6��*��UF
L�<hQu���a�?�~�nm�I<h E붉Y�?��f�}���ó�w�$�p2?�O���Co�����Ÿ�/%���l��0����8���ѻ>������+k�L�9mT�6T�ކ�ъ��b/ۛ�6�2p�ߏ�箅G:Pf��:��z���qo��17���&����
{}�{Vr�ءC#�Z"*(�c;�v2<�#oh9[W�l������F�f)�z�#�,��Z�6��̲-�G5B�a�8~ڳ��N{v`�|pAA&�Xѯ;kg�W��'���9��/}.��_����;��O���>���t%O�ƹ_�fk��7B�s���W�K�x��z�B��
�JJ�If�����@���;�>UI9E�6uPnʙr[FB��x �*���a\��nNJph�p�u��Fj����>ɒ��4��3����|n�)$�BЛ����|9��]����͢�����u���M�}D�)�:�B�j���'1��|T/˫�:�ˊ��;8Q��ġu
��H3�e��,�PJ���/d�|%�d�/	3lޣL%>kO�6��:P�
1(\F�ǚ�s&�f�X��>?��>Xe������L|�k
�o��Ȁ����$ز�r��&���5��
�=���w-��2$��[�"�޳{�e��G����H�8d9�>�dd�gK�a�u)��@~d�t��̯�}l�a6�u��F��vU��IA�I�w�U��g��!��ru�����Ww��?r�N�K�����ƣifB�<��[���@��A��$u�0�-��P��V��=k�ܭ���"�/��v4
�C�uSZ�d� �3D|H���*�&DXr��g���Ν��{�&�	}r�� ���AJ���Wu.�Z��j������г�x���dM��2��)*�C�F��Fei�+x��������D8���K0u���q�Q�Ώ{0������d�:�v[x0p� x����s؏�n�gMp�w�M�U�� �ӧ�Uʺ���tJ�d��o��P��G4�R���9On'�D��kH%y�����tq�l<���*��#'��HŃC�f��c�?�&4�*i.�la����\�ґЋ���M5�!�r��>:H�†�܄yp�@���(�ۋ1�H��9FK���A��
d	җ~ЅTw����=Oy�4�GA����RU:k���
�0���
�߂�{g�nl,iB��*CU�W���blTj<JBM�� J�^��M���Ɓ =l�>z
����V�����/Eֽ�QY^�U�د!����H��s.b�?�@Y{�d�9�a�Ksv9�	�69���K��b���I��4�,V�O4�|*���0���|B;fh�Ђt!6�1�,�M36�,�f��v9���ff�T�����|@��q�Î�w���Sv�J ��m�Hj�x���^�
`M*�2��,��{z6�S��pN,��"��2f1lx����fg��_#�/�9�?�:0aF
K��(�Xm�f�����b;Y�����N���vi��Ƿ����'��%kʓ�e��l>���"�D�ng�3+�}��ǽ�X?�z//�:��Э�����CJ�E��v=f�� @�j��+�B���<�d��rE
W��4NR�v��V�]#Y����h��'���6��R5%��$���5K�:�u&׀ٵ
T=�z�H0���{sW3fRY�
��ڿ���Ut���4�T�M��@
�íe$`�,�B
Mb�E�'���;��������M�<(�3dsr	c{��3�����_݂�{���@�/y������?�F���Ž5�y`&����<Ȼ���>(3zþ�&�0m�_$��@H��Ew�%��c�P�I��$i�9��ʀrYPZ!d�ĥ\�*����ֈ&�
˂�*f�����h{��ck�agB���F��Sh�	ޮ�����LY�**�ٵ��oeց�F�\?�uP��h�f�)�s
M	wK�H�9�~�W{ֽkNj�v�ېW2�8���+"
������?����?��L;��T�ii �@�����bz!�\�pzo��'Yv�L��g���\Kp��θ�<>��Bbe��X
yR��J��K���Mz��Y�O {\�	b�<��l}'��l�\�y����.��bs*S������e����N�'���g|�އ�q8�t_jG��d��"��z�^c]D[*T�J�Q&�
};_�'�ϴX�䐡�u��u�u���M�IiAg߉ڜm��I�C��<��г��3YI
ґ�^��Z׳=��›��z�l��U��O�3cI��:9HHn=u��P����k%����g_���3�}�4	�.Jۡ<�}v��'�g��M����7��қm4;��f�^TVڒ�:Y�F�i�^��AU���H���j?�
�e��U'��azV�b�2�D�Ӻ)p˞%�԰u)�l
N��%0�°��+R�1J��W�g�	��IMT�`�����i�Ljn�9[,�Y �4�q]��^^����t��Y���y�����͂6��k��nv�%�`���K<g�����6S���I{2�\��wx���3]�����Ѻ.v'I,��B�5�n1Ź�F�R�'��*[~�6`�-���p��Y���g%{�����,-�r*j��G� �!s�����YR��&�[�z��n�����-��ܱ��Н*
�\�Z��;?k��X�k�u=!O�Il�i
��=��V@fr�Р`@�b��
�e}����ʒ��osoI9A{�,ym�l���C�'uQ�T�`
[��V��eޡ�x������JP���lݘ���d���g"��]<΀ƻh���'�L�0L#g:>����;�g��������_�?�Ί��Rn'"�=���tI1۲)i]���<��8(	��$	�7���O�TG�{�*�h�YE�{*b�?��T�k����<��
L��PǞ�tx�{���Eꙭ;"90���b�T]��c|�c�����0=����p#;3���<�7
i��٬�AYY�EC���9�PF��J�ZТn�yN+����//{W��R'���!_޸���sAP�wD��~m��%�[w�$�c��$MjS�X�"��|�Y*{�5<M#=��TNʼ_,�I����JV0�&t�~�4�x/V���G�Mv�r�%�hR@�Cc���ckG23�-�����{����L���^���A�K�0��p����lB`�"z����"��?����G��ٙ��G�A�uF��d��M��E- ,���m��XڸYGuŤ�~����4
��J$�Y<�����ԗ�j(�����K�2�L�P�X�!���&[acՍ��y��E|B�և֢��ӯ�N)W���O�0��b����=&�c��bjI��|-�XFY�`�O�.��"�uә��6,�h(�qg�;㊭]�SXΞ���O3�H̺H*��k����h�%Y	<Pʖ-�kaG��,�7���=qs���^a؃h��k�1kt�A��6�Z���e�I��m��v>��ΣXHz�|�y����[���
��꒎;�5��sW�����:�8�<�l
�Ӧ_�����S��TS�	P���n�/=��;���|�c�+������$I�������R/F�4&�ݑ�#*Hb
�#��7��	f�ݐ@l�Z0�sU(L����'�F��{���f)���*�
VU}��� �Y�����㍟�́��"����<�I
�Wq�什a9�K��~��
�e�3�3���F�z)S�Ӕ�a�4�j2�9V�(���8P���u�7R{'Zϻ���<)�EvY;�B�ѻLM`�s���#i`P��HSz]�a4w�}��gU��3�E�e3����+Q/k��.el���I�B���>�O�HH,
v�!�:՛œ���6��p�e]d��=�ӭ�t?�O��UZ0�:'
���r�38�ާ�k7>��z|�˞�>����
�w���p�ȋ��%W�v5�f���O��0�堢�J@�I�u;�^�jh^o�?S}Lg��V�醴�t���/䰠!�6wr~~A�t3���^֩��?��B�}���ې��"�[:o�(V�f�%�=��|f��߰%N�`��E_W��t[�|�l7��y߫F|`#��U�n�ym�^sB����*��$�����>1`�(he�#`ecN:P'�f�50�,#M���K]&���5hV:#+yx��jJ�j�mʊ�:~}��]�Ѐ%s�h��\烾4p3�g3� �4��n��[fGE}�^V�����t�9X�Vc��0��Xo!�3�EϪ&��A�-؋&�ι�^o��8G�j���h|:1���5�7�5���xZ�ɤ���T�"���g
�f�
[���rQ$�K��fu����2���!��f�d%��j���T3X).2x��F�{S�_D�[d��))�^r��o�%n��ן1$��CU
�{w��d�4�~x�R��l;��@�)Ó���30�@mn��v�d��e�k��;10�:�p�Ķ8�/l��P��s��P��N6[.��s�/�����/D<�E�ZX�K"Z����|VΘ��_%Sp�k����`'�$Y7)�^�4�X<JU�����#��4����Z�l{�j �P�E=��ZC�M�T�^���$�r�Ik�r��z�\�٭��u={[���}|�>z�)���%�Z69�0�&C����E�>H{<�>�~�*"��w4\]؎��K��k�@Z�30�}�-��K��*�'���V�j��5�<��Ὓn���i�VJ��t����ҿ�F%�I�>�_	n�<"��ud���Fbk�4`�j4�j8�0`�޷@ ����G�Q�X�;�C/Rט��~�
=G�l�A	j�{�v���纒\lŠ2�-�e"F���̼V�;�b��i��a=|���Z`?Z#��D4��Д��=P�&�t��g愖���h�.�jJ=����y����ih>ҐХ%.$�<�<0�۞\��t��%w��J�=9H�	HX��\��>�������P��7f�=��%�1Y4�􋞐���>�ȗ"#v���d]&�ѵ�Tƙ�}7�>z��G
SM)4�}��B��ݜV{5j�ƴ�O^����?TI����'~�@�vDY�)f?������ޏN�	��ڳ�fn衆�9�7>[��x��yhn�C	 �I=_IJhhaC��“�,�)R�����6�eSn�f��^�v﹈m�e��q(���$��f�Urr�_��-,�ڵ3{��b�@y�#oD,����K��2w��ؘo-[�0$���q�!I�P���[���\�|�l���ņz�6A�r��0@�
����,��QmQ�egBrż���.�&ΌM�ޓ����Q��ւ1��
8���$�#��̾2>��� o���`>*J[�l�cJ��*��^�̐�#u���.l�.���
S��c��`6+��@��.-D.���S��\�Ղ�������I����ڭb)���Z�{-�o��g���i�N%X
���uKC��n��R����W.,�Zɜ�U�[�X�eR�����E����ߙ�9�j����Y<�J]��r��QuҨ*}���3��]t�V�Lp�����3�ԁ�����ԋ0��,��"ۥX.��@n��;v�}?�Fj�p�96�D�Rz�.�"?�l)J��
3�F�-�_�^,�ڱ�,4��A�s�j���K*V+�Gh/��{r,U����D��e^�!��Z†����X�R5�C�g>�v������
B��ւ]m�&�ʦ?+���Β��m�-�g����U��M�]z�#.���;��p�~�w�;p�}/�aZ%�j�t�h٤P>�T�I`WC���a?��m�a¢>�Y@�&��И�*È**�c���5
h/��E{��ޒ>��w�z��yl���)s`Y���8SO��B���Ff�+�ݲ(��vL�̐�˂a8v^[�"h���' ��{6+��������J��,8U�g1������zr݃H �؍k�)5Z�z�3���{o��9�i��0��e���;�eI}�-|�l6�X�Xr��J��
+V�z�����!8�x9Zag�߫UQLJguG�V�puXC��J��97�������[|[_��Z<J���b\KLɁ�TEk@,Ty�,�	j�T��H�ϕ�+uˎ4k%�d����Z�$Q�B遰�93�J,��i�q�Ì����a��Z/,z��ڄj�YpL�+��9
j�p�0ɢ_���Y��_�A�YW��o��
�´������Xzߓ̪;�e.]�{�T\Z�j˺?�EnF�Pi�ͪħ!4#�b�m�-�A�>�}3�I!�F��1���-��gA��R�0����|�n��wa$6��?ip�I.�ڰ�5�J��QS�=N� )�LY���ܕd)-�\	bO��0�)��[\o�s:���s�*�	94� ��ˋ�&���H?3)Y��K�&�[v�K{w�HMD�l���QЌ�֜,�[�W[��ݓ��~m��dcj�$�o��
�y���	��T=s�>�I�L՞�O	���$��_��q�=Ԇ���hvH:TB�nv�--g��/��ţC7��9f-V�i���y��3v�#�N�_�厡�W)`7�m�	��ʲ�b����[�I̵�d�""=���̇,E�4+l�)60��"t��j�'٤�R[���16_���4Ξ��e94�n�8`G�DDm�,`�`1!:�R;���߽e9�������IM6X�cmc@��F��y��@�y�����4��g1�
�Ԧ=��8,��͑Ց~���Aȕ�Nvm�0J&`V���g���JC�e}F�}U��Ůi�n�5���}�<�H��<ƏPoUeL4U7/ʬ
���zR�D`>���)f�S������ψV�Ҡ�_�r"��)&r�>��
�,rS����
F���L�|�Ə
��ַ�vd� w@>��f���"
�i-�̨M�u�<8b��]�&���d��p�'�CD��Iu���L)��n�e1мϲ�c�U��Mc{LS��E�pa��b2�z���2g/�9��5UU6���j��4�!���yv	z���s-D���ٱȝua�b�k��6I��KGpĿ]Aq���t�MsA$�C��,^�lD%��i���~�_����{��$�:��N;��uU����U>�l���;b�J�����#JX���Q�2��zE�����gŶ�b��AW^�Ȁ�z���H�p�fn�0荰���� �m�t��&m'ֹ6�d�Y��r��jb����0�~�Ȓu{�y���JZWx4�z'y���fͧ���"~��3'�[���"I^R�y6{�h�m�i�1�`1o�?
�{�+���/>o�‡k�w7x��.�97���v�/{�
x�l����o��瑈E��3e�����afM	7�S�zF��1�4`����ߓ։3۰%͗��$�K��f�D�i�����.�a�:��=�<h�T�Ϧgf۫	z^���J��*ʇ�(1�2�U/P�l��@<:�9F\8Jg�)��l�j�>4o�|8���\�ZL�*�0ś�0V�(�������WC^���>����	�G�C{M��aM�8)����.��~������e����_{���G|��
{�>�����]�y�_��~��u@%�uב�H��ږ}�������0�4�{��g$�/$X�ݓ�3������~Hv%l߱�UJ��1x�>���o���3�k.���M��Y���6TW�e��di��T
l���%�W%�G���|�������µ,/�=m�<���=������R�Z٬ֲ۱ĢA����8�]Lnh{މ��6�s���z^-�kh'��֜U�.e;ɞ��WQkKԽj4uiN�3��@h�� ��ġ~�ƠOR�,[ u��4�,ن�Н�ta�/cf��lv�.E��A�%�����q�29�Ih�@kJlUL1,�)=F\g��^/e�[�V%F,`kQ�����І K'=Y�#"Jh��>�޹�x���võ��2k��?�k��이NU�������qX�7�`�i�D�h�h�}8kM�N�jF�2��:��T��Ɖ7�y&���y���5�h����L���G	�OT�s:Ye�YP��5���mB'̞�#�S��<�zs]�
Lg}�{����гJ�����j&�e���{ɖ�}�^���h�
O�>Yg�(�'ͼ���I���Bj�$�f�4�~�%�x��V�}y
[����r���յ�Ă����6J�NUשŹ�%�9H��Ԯ��J��I�`ךM���$�枋�ٟ������(`=+�̺mx1w���:��6[ڍd�z�	����a�K@�=I��J��[;,�;Ib�z蹤��mUy�{:!�U��E ܾ>M�?�>���y��FJ��z�쥳u	Y�L�k����l��%�'�1;"
���]>B�N�a�@iǃ��#�x��p�톚��w�ά���X�Cj�%�>al
�r�̶#S�и}q�F���o�L� p��[�����O��r����!,2~v,v��Û�:w/yu=7;x��>f/A�`Z�� ���9��f��m�A�}�m`�빦6:�j�������+8B�xEiƁN����<����	�bt�����qR�KS'���$�Ot�@�_bm{�<�(>��0q.�z:ڵ�䏚1><l��u�jw�(b�0���x����X�#�Y�P�!^�>6e)��i{����64�!׺�9C�d���mKrv؃�D
]}�pV��ֹ��9(rѡS�i��l��h`Ú���ɲ��B(�P'�E� 5�����p�prc�>M��.nUnb1L��qFҡG�"F�M����u�6mLo���#4h`K��H�ږn=͹t7�{ݦAUA��r]a�����~ۤIC��Y��F=��n�Y�4�j�[�$��`?�&��p*�!J��hP_�<"y�1���7�'�^��㋝��GW��V~6��ӽ�^���h]�7o-�s*W�æ�vҬ\d�g� �~6�|��SgB�t7�M2���NΞmnS�C^�F#	���{���.�j#���wR��;�R�p�����:`��2�m�Ŧ��3�p�1�
�5�1�=�u�W�E�I�GҸi�ܺ[��@y�2��e-q��l
�^F�`�ٰ�Bʯu_��E+�ȫ0(?�>�g�u8�!�kS��b1ȶ�`�����Ŗ�Ô��`�K�t���~�{>
��<�c/�z.���ƭw#<���?x(�O���x�]��_=��}Ë�����\�{p͇b�	�=i�L(%9�}ij
;-�f�QK���=7�z=�5��U�M-��������h���ݑ�yߔ75(�z=-�A�qx����J%6��,�13n��@̢J6U^�����(!�����*�I�����l+�
dۧdH���L��j�v�F-�:-�xR=y��3�9?��<��֙E'��xe���Cx�~�ZrG��1}�����I2������/��f�_����O��9<��{�iC��_Kl#6�9��_�U���o|����~����?���Y�Q"�����=��=�Hm8o�e&1{�'�Mi�S���F�>R\���z�:�nj�,���^wz�S�Wte*fh�P�A�)�@�6���2@mD6��-�b�=�#ˇ`�J��>{=���fJ���d5Q,̐�.�m��ROfR���T+ b�Z�t}3�E�8TB�[+������t_�?ɀ'���l
�4��Pq���Gn'�٢�bP8�|�&=��Q�_��R����u_������6���_bd[���{FJ�E��6�h��eQ{ē���yؖu��fgY{�ך���؆A+xm�\���#��&�v�3�/a�&� $=�]<�;i�~��z�ۊ棐m�OL��I-x8ߪ�➲��V&�uU9�A}�f�V8���VӀ!�cV�o�z�XJT��u��4�S�H^��d%(Lj!�D�L����p�S�,�(Z��Ņ0�W8<G*��gkJR���;J��N&��D*1�-�&*�
bj�\OA��H�P��%i S�o�!�(����"�
T�=e��PC�z���v�/��P��;��Y�?r`"���%C�멥Hf�d�@
��QAN@۸N�T7
b�/ ����QU'u�&v���t,��Y��+'E�r�`� \�zq�A��u��c����/G?uV�S-g�^���(-��r�6r���73�daE�2�pk�O��Ѡ\���*��/xPn����&�3/EA���G��O���L�윹V�q��s�kr.��,��
i|���T
��C�N��z$�mB��e{��Y~�5�3����wb�T9��v�=���R%\>���Ow�>���� �4ڒ��g�Y�>������u/��O湛�r"�,;��=jcKB�O�������uߝ/�{ۙ�b�v�F��0@69>���T��X��f��i��,m�m��k���.֗�^~#ʠ�M�l,ph7�,t�%K�ьx�~����!�)���|���Tb�C�E&	��
�N�AC@q��vk[Ⱦ�]�2y!Z����$=G}*�R��AL��3)�,��zć����f�=���y�$�{�P��0�`_@8�ʷ $��:+��Q�a�!��9�����4Zy��c(��4\��<D�ʡQ�p
ӟ���<8�pa����%-����(37۰0^�`-5�O~��}�^�Zଯs�,�/=�9����H���Hi���m�4���%�?��TE�Y
dD��;3,'��6�@-ꩱ�W�!�B��lݒ"7k6d�Mʰ�Ed�$i��"����ݢI>��"�p�����r��:��̚O2�.Ʀ�a`�[nQ��oI�q�
���
�!K*&wM
�Z�-���M�.�j��0?��Tg�Mm�3롽)j�QWvv���A+3�9.7�*�Ϥ‹X�����>j�Og�\�y<=����-QG,���m�B�^�V6~L,>^�;+>�����E�σ�u���I��p͔"�
�$q�$D�t��0��[wm��
�n�ʴɪ&���7�iRlR̿��A�a=�s{�=`�Z��r��=V��%��)|^�g����9��='�����@���v]��>��?˟}��9��@��^�G��_�,��}�%�/�aOH��=�ݢ��V\�s���k_3��^U�L��L���O~��������6��ߪP>�N�C՝1I�s�-����vsW߼���|�I9���q�?��%<��������['0�%�?��g��|�7V��7�h&��|���>\�39q����G�W�|�������3�lW	x�d{^��O����
��UE���z>7�Bx�o-�+�{��G��t���{�UeVV�<�r=�(�gh[ߩ�yҀˏ�G�s?�/��/}Y�{�I�9����=��?������~�p#=�3؍�
�	 ��b�_{8Jj��
��[7�^�����|���?�92�y�Q��޳��w�m=�>x?��k����}�Z�E��~����?_�[p����|q��u�\�z�_���
�X�������.��y��]��
F�tuʰM}SQU}i�2��~��5�-�zwx��wݝ�������|���E�������E���ڼ�%��~�������7|{�����>2����,k�qݙ������`:_� �60�4�R���?��/[�ѽ��m���xF���t�z׬�=�e]��]�7�\[ԛ��t�.�-�%`��Є��KTR�,:$�y��L%g�Q�{�.���?�u�y�Ͽo�=�����u��0�Ggx�u}��᝿����|���(��&�0�R�*�c_:U'pOj��ح�'�Ix�_��/8����d]�k�%����x�C����z����VL��b�ߛ�;'��]�H�����˨�m��j��}t�N������³o��{y����]����Sp�س�$m��""K�T&�:�u\�{�+�R|�04�4	�9mR;W�{�����j	(�52�S ��%
�W�v��X@�2���ݶ�{���Ssrr���[�&"���
�K2�qf�ԢV=۰M���!2Q�j�$�?�@���a-�wQ�1�em�e�P�c�!���i�YeޔЧ��)��d�Is*y���Zf�̲r@��T'O��f�A�v	�:$1Y��R���s�݅Z'�x��°o�z4��l��f���$!���s��*��JU���]�-�����
�*:�ߚ�$�V��(��5�М8��s�n�JE�yl϶5L��Y��E�-
V,���VW(��9c���9C�N�2��zϏ�B��<��%�}q��ɼ~���l�,�9sCs�1��}�8'��a���ʳ�V�4��;%!�M�'�Ѡc1,c}gt���\��%d42s�����}�l�L��$�b䓎3̄sP���)�i�+e2]��C��l�P�(��S��i=d�iQox����q�z�	��D)L�lE�����'�MQE�mRe��
f����0�~��9'S�	9��y[&�M�ȃ�}��xE�\��=1���
�xM��3` *'��a��T�(�=C��d��ů
M�<�1YTe�aefK�rc���:�	+�*$������s�J�à �`�����9��geM�o�Ky�0f���;��͡�I,��Mr1��¬vd0`>�� �1�&A���2�ȗ�R�t_�}��=�M�,!0��S���[����M!.�J�j\0{�S)�z����+c�%yią�p@�4�F��dC����v��
�nK����T��ֵ�.�Cg;�Q���jVt��m݋�|�}fѦ���nQ��-Q��޽���LV88�E���_e����PI:8M&H�Ω���*��Y���>�^@���|,��bW��:�%����ꉤ�`
]�<o�Q�E������;�L�K��1ˢ��
�L!b�&9�M}�-�P�'b���ms��!��"�����!��.a��^��ڶjm�¶LE��T����������%k��Z��SAU68=�n��͘jM�8�h��mE��䩯:{+��D)����t��"
�g,a/�}ւ�r�p8�|rV
��Z�1�$k`��M}?v�"�>��t��Ο5���*��jQB���E�?�]��+�x
�b�+%c���l]	�d�L���M߻R�J1w��>�h�ȩ[2��+��ߔ�
�$��a���o��弊4Z��I�[P�����۶G�?��ÿ��W��}���x��!
�Į\Y����G�_��k��+�ߗ���#��f	zna�j��u5���I
���	����_�Uπ/����5`C����~~�������9��}��Y.�ݔLA���?�/��pA`��S�!���O\�L�����?Cx�O=����W��E�Co�=x�m/��A�~
���9@�e��p=?K�v_�����m���������k^���w��=�O��G��?��u+8u�`�)(�����~������
��/����W��( �3?�0��X����.s�v�MW��2�s�ƺ��@��x�c�߰��}��]z}�_�������~�1��C���m`K���Q���gثX�&��}}��m�Z��Ͻ��g�2������������*%4��s�L��9�,�})�և=^���^��W��ޏ���������C�Ì���,(Tj�r�|����_~�ݿ�"���z�G��'n>c�כ��2�l�?Fc���=Y��O����ן�+�p�އ��ox��ǯ=�!x�[o�G��9pO�u��|�
_�K?���b
�d��_�0�������Lx��_{��3�k|o8��_x��O�����v8��J
����C4K��>��g��)�/�ڋ���a���n��G���oO�$_��z�a.-�p�뎂A���F����Mo�4���}�����-?���/4xF���}��'�dV�{�i��3��T �e�Q0�d���ل6���#�
��� ��S�6�ɶGb���S�xp6��x�'�S��K59��z�E?�5u!�Ba�P�����^g��'�F�Y�+�~#̓�3�Y�(�з���z��7>!1���P�GD$u����Ƶw�l,t�}��o��7�S"A�vJ���"����OKv�{��51�C��:�j�1�B�xnc���9���z�=�ޫ9���u;�\�*�2�_���
z����e��2�9;?+�#g��ٞURb���S{9�����s)(�0]S���T�sJGݲ���K�g��s��Ƶ�(;�s�lh�?LixX�nV�S�a��=�b	E*�����I�i���l���bn��)4��u��Yh�>�ɢ|�j)k}�ꐷ�CE}��)���蹅/�C���?��0�[�е����6Dm��^r�r�ʨ�A�b$��u)�sv�9S̠�v~��x�C��}?��50~&�͛�����MG���7B�����֎R���j�PK��������Рj��@Jv`�8锚��8i}�H+8�`7Oښ����^�U�]�+.�v'5�vP��
~�I��4ao��{0�a�����C��"�5}��yM��Y$�,�5��n��ݺ �K�6pdR��QQI�`�,a*�A���Fq�z�Q�ȝ�Z��4�|�˝�p���J��2� �*�yH��C#�J���{��蹕̇8��l������js[�J��pH�H�
s���򍡙�q�,���nA�E�Fm��}lJ��,���b�\�����F�"��xf�(��"Sw�[q�{�z(5��X��m���|��:������L��C��9�Omm�5i��_}����[��ȕ$:�*��@�2)tbR쾅&خ��bf*���} �+�B����Њ��uP��1u�#]�m2��X�۞��ҟ[�)hR6C�/>���m9[ �`��I
-D{��s���!�?�Y��Ɇ�>'�q���ZU�w/�3�J�A���=N[�����,!������
4o�ϊlfy�|��m{r��2I��s��4Q�d�)i�'I���z���Y���{�Wn���{0َ�\tU���s�2:��(�>?0��} 񜾋��F0�<��9���0A�1_�\��wy�H�HB�@FGYB脙�]Uo���UU�g�L!]� 霙��{WX��?�&�����{��(hì�i��Kx�+���*c���*
'�X��V%ޙ;�J��EV�Lu/�YAM��3`�
&���I[Pи�����.��E�iF���� `��SkUiX��OEt2�ϻ�%�
�" ��f&G��WB�U�v���K8��=ز2�~�u��WE?�{�^�<���3_�I�}���ܽ6u84�.g��Cd��O���m�����!x��B�MY4޻�^�'{�~�;��N�]Q�%���sUCc?���@�,�-7�[޼��8�u/Y�q�ˉ.:�z:�w��W^l?3S~�>dz��^&���|���s�G����s�>f]�����?�̓���C/~���ݯ_�7,I�0��%�
���&��̓MG�B�~���W�G��q�M�{�6
����ۯ9|5��� �֫���qi�-��Wl�ǟ������/����7~m��O@�~���i�	�Z9il���y�g��X��*cȔb��ɸ��g�́���/�M��Śd�|�����tn-MU�`\��#�q'�w~��wl����vjw*u����5S_��v�����tr�B��<�)G���j���3�g�ɍȝt�o�����1��A|ȭ�L�R�a[H;0^e_���,.���.��g=��=S�;�!�7�?����{��J+�N��lS�‰x���3��̺�?�׽i[?��_��/?�.<s'��O�k�׭-P;0ۥօ���:\�����w�S�3��?�q��>�������A�y��t��ʼp�<�����ըYCz�����9V��Hr��ԺA9I�X�\!�ښY�Wg���f�UU�JM**��#,����:����ak��f�5�,[�zyn�J�ɫFS��������V$0�TQ��fW��A�qX�F�6{�%4�e\w.	&l%Q���"Z���8Z�(�D�`��48�%�#{�������+�i�M�������F�ޢ��WUd)�9�FPD��V�f]m���,��搅��k�`xc�UhxS�b� s���Af��3H]k�%}��aM�l\ʵ�`dA���EX�i#��fѭ�LR�(�^����]
�	|���5v��W�DԨv�#^'�ư������F�~j.�g�Z}^	��Ŋ��b�U0����Gj�k�A�_�����mu-����P�>c7��R"�+@G�b[2%��7���٪wy�y9B�����kl��b:�ʟ/OܱuP#R��� ��^!��Te�j�K�!oೆ�/[��x�-
'/cb����I!�Q˩R����_W�i���<�V�W2��_��e�%���`��J<.7�&�e�3a�I
�=հ����Z����~#-�B�3�D���� 6g�XR�*b�a{�jy�]��ʚEXQ����}ߟ�0�e�rQ�?GS�F�����9|�+����&��Dex�f�h99|�+�
�
^_P.�V�������z*�^�ԕ�2�|^X�,�if!�
���q�jzH�L/����+���Y�Hq�ǐh��/��*+��)K;}��R�m��|��ӦX<aV��~�P<��z�ǡ�������4�i8U�T�MĒ���ղ��
�`np�׺*TR&��<3��z+����Y�h>1����6R��^�iP8x�&�adm,�����[Q,�G|?�d�R4ꃺe2� W��zC�-e�G1���fY
b	�J�.����ެ�lGJ��}���s���=MC����1��s%�fe�����`&����͑�}����^m�����Ax��Eސ���e�
��G
�N%��s����<[Mup5�������b�-�8��<H30w�su�JfQ�,�j�9`�k�L�럶��l���)H�p`9?�ڮpҤܩ�@���T�hC�]�o13���]�hxFe	b
��h!�Y)5��$�췸��*P&�tX�9�װR��qn�H��^Y;i"g,��`�}���/��]�[��Ѵ�k���e�_	XRTׂ�oL�ܚ�?X��G��!�k뾦(��;��8�cX��s�r 4ˬL�&�כ�<�O�oMF�>��>�x�]�`xk`������Pb*\�0g>�	L#W�*[2���'n�w����N�`�Os`Jڌ�zo���/��b���y��z���=������c��}=�o�[�<L�g�X�\,�fyA�q
�9u�u�ү��?�b�l�����I�1ꘖp���+��X5Ŝ��ꂼ4\M \�밓n���{
�}��������<z�$hu�n;��r�+��^&'c�`7����ƃ���P���<�>����]�v�Ab傱��0�L��TrLf��N}�Nz��Sݫ�Q����!]�OG���:%J���ONz�Nz���S]��^�P���]��E;J/*���,�� �������~*�l+Ƭ�����[��v�B��l���Oh[8H�s:0;�#��ٯ�*17�z��Ҩ߽���_�C������vs�I�� �#։L�����֔�~�D��Ç�����O=�q�!��o~�PO�F�^N5�g���%�	�e�ƒx]�u�?�Ҏ�k^z�~7���F�/�q�ɋw�m�  5:�~�m�CfWY{�;����#�5��{tMg�v��=K�}nL5g��P��&�бU���]�E�8j�{���E���k*�I��#�|4]��o������R[΂b{���g*u�R�U�Ij�3��{B��+�wZ�r�ޟ��c=3sv�Xq��a�	`	WVGq�[�.a�p>W\NkH��$(j�#f��Nr`�<���H�u9CI�j'���X[�n�I��074Ԙ��5�+u��:��Әǿ��F��b�V?����#"Y]vx��:���E�3���	h(v�-��:�[N��n�;��%�5ʹ���S����ҵ�'9�3n3dNJ"4e~��Le�W�i��R�d5iɺ������|��Ca��v0���&ۤ�	6Z;;��$�X��9pZϪ�����֨� +͜2:�������Bŗq���k,w�<™}�a�d9�^�i��n�Q˫�[b�\F����,���ߢ�߫���y3i@��L�F�我��ْ<��vBDu�J#�e��%Pw���X�*���B�'v�n��ko���h�|�>��1jǢ��s�g�o�J�c�̓�iIp80�F�$h,S�k��L��5�.Z8N?�x�sC���3_S��Y�?7Ѧ]�FH����A7��'�3�U�/q�Ÿkk>߻�αe��|�z��-*�8L�0!�:2?y���]�'$7tf�zAJ䧹���:�$`엟Ӧ��H<����N�����3��u���-n��-c���Ϻ��/^o\�`�4ψ�i��^��}g+���Zd\7w��0���;�:]Ո2B���h�%����d�h�1Ϧi.�F�EJ�2����šӠ��6F�{
��4�GIY5��K[���1�W�]�F,��y��@[�8{�A�舆 L*Ò��akHjr@���ST�9,>��b0�.+b"ͷn�\C#!�6g!��Tn�!�X�S�\a�6y�ɲ��xx@_ �#�V��T���7����4���w��,*�$؎K\7�)�ə�٭��y��4����WJ=/٘,L�X���e��=hPN
{܊�?�(h����p�5�Zh��(8b�t�^#_F9��\�l+��U�nˆNZL���렜�r>C������w�	�L�8Y��UW;�U�%�|���-���C�=���,7.�@���B�l���l���k��Y�z�d������q�536�Y6��!Nu�$,/l��=#��Ș�J��CMj�X���j�+�'o�[�\�.BM��I��/��;i���%�Uɼ�%�̺l��g4�_"6�;8*�Q��Yj`/�M���~��
:w�N_MҐì��k�`ʴӬ0貍����
<\�����S�TEd�i*�>T'F]2��X��b�U�KO���V5EP�N��T}��Y[ϙ���7h<�9�:�C�eB挽�s��^�l὘LU`M?�HgK��Ó��2�j�h�r�/fJ�L�@��?�#��Q��`�
)�A#��b��ez�kf�t��'��xϑ��߾���~��ofkv]R�Ǎdv��<�*�ڧ�$˸�n9�`n���g=�by�]� Y_�	���Em��ֻ�s��Wo~�����B�R�V��uONk���s�p��;��W���:�	�ЃN���w��{���bYa�ق��as�!��=�:�ӗ���-/{0�(]I�p���)M�|Pc��s?���-/�vMo~�C�����K�g��kb�*��T)cӾ��u�o���z����뵯��h�Qԍ����u�J��p��T�˵V��bVF�>��7#���Q���}���<̾���}�v��{�#��w9]��4+���ZC�ـƘK'�淀P�g��;��|�>���]K�{/�6]ɡ�mSrRBC�u���]������z����S�w+��yJ|apT�`dA5���k@�H�/|�O��oн~�����A[�G�y�����)�y�lS�*Y=U6:�#�P	g.}=B�Ȗ���l
X�V@!����l/��(AD0s���4>��)�0j[R��:�e����ag�sf���jC	kO��X֯&�WY>�L<��փ�[� 2<��L	~���V��Xٝ������L�8w����'�m��8l���we�k�h��H��-��(��$9+3����=��+��+�W�߀���&��S�t�,T,
2
<�`Uw�24���ov"a�i���Qɼ�-m��u�����l���P���b񱒱�I3.#kZc����L�X�i��N5��b�W��fGn�R���T̩Čn)�d�����Jv)4ٹ�ŜJ؟�;!�%�LԀ\���9�M��넠y%R-��y�Fݿ������7�&8���i��Ĝa.IT!��g�9�q�賓Ø[M2�zmE�p��g����ft�sa�1�VYa��{/��P����A��k9�'7�D�0��e_����Z���#wL43lA�s���
7-����Y��s�-�s�<V�PIU#`�jGr����Wfŕ��5���}�!���j[n�T|��nŻ�k��<_��H݋<)Ě��&Y3a��bpC0�,`j��Cq��#%ޣ��(�A|��|�`\��4�i�����:���ʺĕ��1y	0�6)!?	jSY��V7
� Q9��/�EEQ��"W2�s�c��#c�;x�y7��r&�N
B�]���L ������,�
X.2X��Z���e�Թ
hN��7ܛ����ˋ���h`m�a��
8͞�(����B_B��� ����h��uQ��HKW����c�s��I�h�*�sNd����c�p��)�q�BY��vEY�)ϣ)�MEGq)V̀4��F0����n7���-�U��@Z`�Tz��ܡ�v�$ـ\�&�� ��
v;��s(ܬ���ir���ᰩ!�$c [���~V}����$T��.���\T9l[��kt1��9�
�L��js@�{����6nSi���Ap�C
�W�ׂT�*�|�`�h�d¢��j���b�P
[C�_s�v\Ȉ�z���<̙�”�[7r���1=+�@�0�5X�V�N��q]�w6V��[_"���ֹ����C�94

X.�W~� ��<

.R�E�.6i@��d�u�Y���2W�m�jo�d���RO��*d\OW ��#w_���7
�Br�+��
���8�>�.x�Q�;�w�q��� N��!u�m�݋=�s_� z�	WӇ�ۿĮ�,߬Ɔ���+Ą�*��I�Մ��g@���}z�€���I���M;/9V�bn���L��ߐu��9`_�8�:�;�����J�mLV7�{	��:���Y�W_oy���w}����X��V����v���}��~=��c^�
Ck��!�4�eO7/��V�]�Ǧ�~΅��ѧ��u��g��[�u��xAd�shr4)x��m�l��47���W�\��x�����Ժ@x��>zp<�>u�5��g�t������	�o]K+w��ż'��9�n�-_Ĺ�����I���ܳu��sJ����Ж�G�]�5\[�v����>F��{��g?�>�/S��p��Qg��̑��d��^�cz��|�ݫ����u7_N����,�K�
�U�8�Ș*s[W}`�L��^74�~��R���#4p�ʾrs��.Uy�fτ,��*�ۚ�|�l�u$��S� ��F(��R��B��e4Cn�eC�}��o���+�S�|������Yl���磭���xW�XT��j%v	�xP�&`�ip�"�4y\�;�i��}D��զ��'\t�]!��yg�D\	�5
#�	�
�BTxP�d"�O	"�;s}��j�L�k�z-��Ɨf��j��4x���ycUjG4H�#S�jV%��"2���C�p��,Bm*t�X����KJp/h@2�Dl	N��h�XNx�y�D�{*!2��*;�R��4�����IC��(|X���
�d9��C�"s���X�G]�٧�
�G� ��c���>T�ر����?y6ѯ��1+[X��&LBH{�I�'��tY�i��Qb&�~�Q��_Y��r�L�/7�b��a{�q[P�b���ҩMvL%C�S��fS�~�������狖��$O�������7*��i�fE�^�vb �TB���e͆�6����ϟO��h�Ec@�H�s`ن�1��YC�-���5���I�r �
A���D�� �	����R�&�C��V���?GE�e���B���̢�&K�[u�����		���p
��Fj�/�H� ���^͓.�$1"���(ۡ����V�0��,�
��J
��"v���5:�����d�x���іѧ`>�B6T���j���x�[#hT�a�E�A�1����u�%��72����`�5�<R��J�р¡�bWŝ�q�ԜR��vT�%
5+���_+{mND��5ª���Z��3H@����+���I	Lm4M�)6>O��w���
`o[B��mu�˜%��$V�H�����R�Fx��/=&�b��rWp���g��)G��r�u6�|�ܒ���l%hB�����e�.ٔxR�6aՓ	2*�"\��~+3����l�L|f�w�e�2�}�R+żk�h�lE4�9��m>}'�td�1�
G� ` ������b�k:l[����:P�hs�bD���Sp��lXl��r(0����*;P��WcH������%
c�
�zd��J�cd�k#�k:fI��	�˥�3L�!�b{�Zz`�����
UC�"��>Cu�̿�"��6ָ�4�#WQc���4��E��v��g��P9�E�ӱ���d��t%��2�z�ь������*����K=��2��Y4g��8�iaxfz�%(��-�~N��a�f�/a��eʺ��.&ܓn�t0�px��jS���r#����-^T�
�
��<a9�����B���=/}���_���ҁ"�]�ۃXq�5�dz�b��[O9��>s}��O��ӡ�HY���q3�X�h�2�x�U �(;��z�1�V����?�?��+7����_z#�8�hS��~��;��o:�>(|{�1�/|����1�l�V�.�^{��r�ӹ/{��_o|��.���{���"����o>�>��7�bf�Ow��*�4�֐`�@R-���+BĎ��x�B���X��wPrԿ�[�DU���]ۄ��b������P4[������q�lYXJ��oN��C��|߇��3cL~ST��&�(6+��H���Vլ�t�n���~�}>���\t3Mv�������X����Y�~�t�kcɀ��–oJ&�r�1�l�Eo:�������sA�v�W����ςA�<+9�����(�A��I5l}�3]�s�d�V{����537�b�O�,�EǍ_5��g��L��
�AƩ"�uYQ��BB�`J�b�'g��p^��q�	`�hAX���7�4�Pv7�f����Zj��o9S����7�Z�ͽ�Vk�,��9�%��E�ԣNE��Ȕ�!f&�(���kߠ�@4����Ie��8�ϟ�H�
�R*�b�+�}R��a���rF��9!*�ߚѬH�zCճ�>����7�FjA�g�0fęPǁ�&��i��`��
���>TdN�+��ʶ�Ajl9�+t!��S�b��-�].6E_�:t���0C�a��n�\&�v����eW�X�� +��>%�y=;��NI�$4gf;�7jͫF‚��-��q�4����fw��}A�M�Tu�C�J��lJg�hڊm�oc��:f��6.l��Sl���9�q&vH:V��H��[�غW0��f�a��2�$�3z��	2~�V�xmY�&�u��g{.n��Lbv�tp:_���:������3nlj���gu�͡��"�n�2��h�vD�s/�
Pj�i�C��{0>���c��BE���Ǚ��f�s��<Q�k��ӦF�\9��dW/
�&6BH�tS�y̯�bu�8`���_�7�>�'�����r���fU���װ�����>�4�SĮ��_�i���Ik5%�ڀ|]_��*�H�<;c��p���pn���x� sD0e�k�����2�Y���V���,%ܸpr��7���p�xz/�`��2�J��Ydȱп��@#�'?ސ�����Xx=��W�50	eFϳt�*�ه_-�MZ'�i�:�͙u�9S3x��'���>��x�U���/.[*!P���J�Bf��]o�ϟ�,t\�Kp�M
��$j�M��1�>�(
r${m�����h9�E1��>Xl�ړr>+îyL��Eh�T���	�5pc��4��㕷cRB�e�E�`�QK�ʈ-�����7�]�y|�`)���y��<����\Bǝ3F����ʙ��ׅ�1 v��YX�u>����bv=����j�7�,�̂ȴ�a)�h<���V������;����m��mW���&�lZ�i����p�ZE�?c���.‮��M���^�%�A֮���!�u�%��hSݳ����{��&A5ĝ��R��z+�4�g�+���j�CBX���9e1˂mV\�S%���)N#�u��hBr������ƾ�P��Q�y�KP3S0���/��&>{u�,Z��u��ޢ�ƕ瑰K8X�kağW�(Sc���N�����l��}�S !�rwD�e�ﳹ<�1&@�S/G	BF��5
q%��xQ�/0���ci��z�ӵ��F��ҹ�|t!\�N��X�s�6�����f\�Z�Pg���
c����h���g��sw��G
>��^�8�x�s���o�W��_��/����:�d�
=�C��g����x�������s��܅�>��/����O���|����z�֥��y錖o=�Fi���yE����9$����	Ӛ�4�+����%����;���00�Ǹ�����C;aq���߽���f7�rS���X�_9�ąA�7��x�?/��&�G��
�`��÷��t'��O�ܯ��K���/��i�u�օM��� ч޴>{˾�|�z��c�C����M�ʒB<��
�/���5�.7���N-<6�|�0e�g�6{�{ܨ�2������Po����h�i�멼���)T�]��m�{?�S_���>&�<�A��u�i�I���H��e"�HL��^��4��s?�w�~���g����!�����8��M��A�КG���|(a�\����~)�x-���i�݁�}���`�{����L�=��(�xW���Uūq���A��\R7g��r��v3�X��A.%��u��]�f�6�+m5ؔ�;1;��IMd�M��cl\�C�7@Z�xvn��� ��?ۣS�qA�p�e?j�	kJ�gE�#�"��M���g��� �z&�Mj��Io���sP�;��g�ERs�R*ַT�B�؇��a(j�6��ogV�9ܕP�7:�F����u|�ڣ����&jH0olr��TژU�l�g����z,t�nl$�P-����2B�U�Z�
e��.%`+�.�kk���מLeLlbT��UQ�M6~7��D�d.��5D8O����c0���M�q ��(u.`
I�s�H��ٖ�ps!0%Iu��fۤ�=�)g��ֹ�߉��!Qg~^�mT"���S��řc~��kQ�<�^ѳ��}�&c���RҼP&w��7]�`�s�����n��Q��$�~�D��4CN���8"Z������6�|m�Prؙ �Rp�n&�L�B���_�?�dd�]	�Ӽ�. 7��`v��;U�$��v�V��7#=��M��pf��2Nbq,���}j�r��d���ά�G~p��{/���,LyW�s{��Y^�<x�6�mʸA܅���u7��J�?(�����u^��NF�'�>Ēkb�a���"�j����bEf���GRI���*���U�o�Z>[��x�p��y���`,�j�4�;r��R5jD�zt]�!PyDt~���e�]�c
PT�Pju�3�l\�/M	�=�AM	i�IA㘊|1U�}�)i.M�,XֶWp�;.���xo3�ڀm�r��#�8��y[~
4�1�����5]bYF�W�Pi�q��˛��mN����9�+���1�p���a�J^��m���!�ث���֤����N]
���	�G1���pT��J�Qy|���,UNW��,|�LR��b9�Kb#e��?��^#��<
��]k�fy�����%xV�b�ś�EX�(Z��m��ܠ����yJ���|�PM*�Dր|�a�FC���,��`�w�*ie�zLÆ3M&�bu5j���* �M��e,f0D4w�.���;f:����1��-�w�|v�-D)�B�:g��,j�
���0r"��Pdp�RG�>g*�˿��Sb|��_���)�㴄�kxW�{a�"Ϟ�F
~K1'9I��q>�>��T��X-��fhjF�M��8����Y�W�n�47��4�:��eY����c�����)��n�Y�2X��n���^��X��!���@�Ei��x�/�/�L�A��8���b��5�n��8��Ɔ�/�kCX��J���;������7������x�>���7��_�r{50Nꀑ>�i!@�A�7����������������u�9��8m�F���r,��G�#���ګIE��#k���s�{m�$�4����ot��i�@�zKWY@G�}#������#�~�3��PF�W��n�_~���a*���� �sfT�u��v�;�_�^�&��K��׾�N�}��o{fg�#]O��K�^���m8^���i�>�GU�>ĩ�6���<�Y��������Җݥ��?��n����[z��'o��8�$����t���k�a��t����{����	]qy�[oS&�ǭГ�p�d4�c��&�
�,|�i����T�ݰy�����)�.��.��流`#Ac}�Z%��b�� l��Q�\��zWB7
��,KC��m�4�7�Ag��8��E��/?�U@�Ѯ�#�ts��o��t�=�-�;|�֚'?u+����f6�Ȧ��
-�B��y:�g�p�sY~H]�w@�z�)��>����^�Cz��m�l��9�b�lm���A���W/���grx�����xTC�Sk��p��D��;��;�g��B��ً�����n<T��VA���2���n�g?y�&���<�t�?�K���B�-�=�,��Q����Vw��� ypQS�H�˄>gI�����梪����j_���+d�l��f�()y�ꦉ�`]Q,l
�5�lv�f�r�7����hRINc(Vw":oU�.g���t\�R��\Go�
:�hYA���P��y` q2;�
�n(+��eM�X�@�kVk����u��O�*8�ez**_�u�,�Fti��jK)W�%��
���s+����\�*	C��t\�([�h������k�c��)i����H9�)A�8���v� {h�/A�Uy�3	و*c��'oW	K�LsJ�����GB�[��2b��@��G����e��Q�'6��P�0�g;��AVd,l��[*^��1�C�16�ʺd��)��.!Hg�����G��RT��ZT�]���(�$0��=�|3i�%�&� ��V���3���l�����\`�]-�t^FG9;˜�E�������3mѬK2O%�A���B�|!�r�L��F�A27���`5G*ͥ��$�W�9`��W.�W#�#�L��E$�ی�q#���c�.���}I��I�^�͋�`}6H.�$��I����ۜ{+�X�J��u�p>�}�=�>��w�&]"�&���f��P�"�&ѐ����Nos�!������Tnҧ�<�B��!d�Vyz�.��P�@��D�	\�o'`}�(οg(�cOS&j~��W-�V���EX��w_@H-�
W��n��`�k����b\��H��L$;1  %R}�:B�V���>�,�z����{0�t",���E�DC�6�>��70�@I��'�^`�Tf`d�#)��b�v@��PK�7����.�<�S�������TM����.�S�C�)�B��<�V X�h�h#��b�h�܄!b�|�5T�P`�d�ȫR@6 W|I�4���A�W@b��ΚR`��U��F�F��OV�8fD��52$�"{U�5��0��5�RN��F˒	u�h�3��
��fy�j�
mة������v�C���R�$�q�@ՠl] ���+N�:�h<�9 ��1*K�A�)���e��p/�1<2����ᢁ�lk�<J9ض@�z鬫6.p�/	i�ע���Ba��r�<y��{/��wW���!���#<��9$E�6V�J`Oi��u�G����%����]jD�`��]V�i��q(̨�r@�5O4�̃���r*����c0�SyrW8Dy
dy3)��-c��-b���5Sd��c�j�Am��:eA��R���W%	�j�� �o�G�o����o�g�7��L3U�|�x��|쀐�0�B�6Of��+{͢��e���zݟ�{�����7dH��?�B����^����D~���4�U@/>�H'�;�:z�Y�Z=���9�8�rf��۴D�����2���m�c���c>�W�~�%Pn���:��ߍ�W��p8�DF�L]��>��]����)8ȿ�I'9�	@����=�\t��s�i�#d_�����J�O-�)��;t�+�_�;�c���9X�%���ň~���ȟ�I��I?4��fU*�]:���K���w�{#���7����c�/��:"YjqcW�<�o�s�>f��w��~�~r�q�u���u����w͕�5��=��1}�ͥ^uk<�_xR\���C?�����};��6��ٲ5B�� �߿3�_��:z��w�~��R�yz-��e�p�}�K�粯�|�v�?u1��/�I�Ђ�M�_���W���e��h4��/6���{��v������?yoX��ƺM����W�:�3Na��:������/,ӑ�bɉ�=[8��ѿ}.�λ�N>���sO^�?�m�WnJʹ��
��h�/t��'�?X���O^I��
5���>�����чo�3Ͼ���a����No?wW��P��Qzcg���p���+^�]��c���L�i��ѯ=u��o|�t�D�#���<�V�y�^LI��s/�o�������N�(�F����s���/]A�}��6|��=���^K��/U�}�{F���n�)3�ۊX��~\*i���)���>�:y�eB�"4�b�pXR�1, �Pm*�<4�f6p���T���l�e ��
�]�Z�T��r��2����b]�4a :�]���d&���H
M�9�J�_��Cϐ��+�LZi<�j��@'W6����|!8=@-]���
���&Hw`�˳�~�d9������T��T�F�4n���������k���T�9=z&�*1��^��|,���(��tQ��p�x�N�q0�+��g�f{��:���>7w|nt��5J�\��5�a�\{�[��)��������P�'��F��5�F��PK;�1��N��:V�
�� *��5	˩Q}��`cr�'c<�Kj�	�h8b�xN#�6�]G�8�f:��Q��O;�Q���ȡ��ʙO��7��A��l��� �Nt��c~]�PI9�Is:��03�r�Ń =KRj��ͧ{���k���Tp� xe��P�'c� ��i�r��9C~d�E��Q+#~t
H>P=���%�Q�U���dݹhY!�v �Y��C9�c[]F����|F[�s�u�6X�f�$J���*t�f���X���7�
3_�,��y�"w���W!�ȗ[G��O����3'��a�&_�6��_J�6��2�څ�y��;����,��E�
e7�m�q���7)H�f��X�0�oT��Lg
���*���RFK2U�;p4�q���s��`��d�x�!��}0����>��td��2�;\T5mf�.a���N2�0��|�f���Q牽�h�ls\�e���i�1֓I�l�٦���wc�Jw+��ϩ/�lZ��H��G:���6��.���^{�����vu3�����p�7ǥF
�Q�;"a���
7h�
 �{�l�-��l?L}O�=h�`�������`�8pGH�y�#�³�4�x��pu'F�
�������� 6
0ٸ�U�(sT5�X������g��͠2�fS�xpig�T�i�=���_�7�ċ^�ٝW�\��c7�Q='|
|b�(%xLx,���K�ce�
��L�pn��+�	˒6�f�Y�B���2���;K�S��Ef1���3�����3����oC+�@��C��bE�nn���f�-�!���:ڽ�v@\�l��������LN��8֬�2��{�؛Lg�B�Ӱ��cJP��l'���f�,�w�b��|.X(�r-�Q���>��L��He���	�+�
�SΈ�-e�ޫ96|2�Z����R��F��܅q+~�"�L�d��>�2ɺۙg�Cp�3a^z���\��5�����J�y����ۆ^�~��$�q��.��s��c�Q�����"���4��V^�g+8 ��m��=���g<uc�ؚ7_s���t�x�K�%z�K�i�����ǯ�=�i����܏������>Ȫ����`�����_����j+"������,
�Z2N�ۗ��&�ݓ���~�:z�[6S3;94z(X��]�c�wo����;*�x���tmOG��T�J������?{�D�!���0������Y��=����
���t��
D�,ᗺ�>�K^����6�-/�ǣ�mG\E���������H��;2+�U,�]�.z�S_�9�߿�n��([��rɸj4�r��pz�KVh�ˮ�����Ac�#�>=��:���* U�~]�dRP�j��j�}}�~s�z��������F�����Ω�1��i�R����Τ���u99��r�-�)
1����]rф~��ߧC��{ft�G�e�t ���ck:�n����+�~c`���?
_���Oa���ؕma=&���<[X��7|�����{�V��V�k��V�L��K�tͥ��K^z4=��C�9��|+���}�I�}���d�u]?��L�M{O����wB��Zp(տ����颿��K�-/?u��ۺ����#lf6�c:�Gn�:�ķ��E3��{2����a��f��[�/��>r��7T��)�[�A!���̕�YQ����7�j]L ��]H��q&������/�t\ǻW�zJ�M��E�Z���?�Gzn��!�ay�u�1�c�d90I��a�͂b��6Gl�,L\�^�W+ռsC��Bj\�DiYzڨ^Y�^w����YPЕ������4(@��<�%1��K�@g60������yW��9;BU�i�̵�0~�ɤQ�K�T:{J+I�_��.O?ga�L�k�d�!&L����z���;rj�i������B��<'XOr����."�x�>00�`p�-�(v�	������)X!3�=3	��5�Ь���O��J?�Z��z�s#	�mJ�,��8��e ����`\Qt)
,J�h�7��%�KmK�F�'��4�':���h�t��~Qg'�W~��x�VYL#�ؐ���B!Z&sѠ<��2���j���^�Ō�٢�Y�`��C�|��i�&z�� �2����s�]��8K3n�g�~_���?Q}�f(>e+�X�C��q8#MGQ���,V<���
�}�lBwf����6N�_��D�ΜUھ�����d��?�~@-�,���J:��~�s@���%�P�b���5JV�3u&����}S����o�f
��Fֳq�x=�xN��ӌ��H`�G$J�������V��"!�:�&Yy`�x"�_s}���O�����;�u\�$y����^����M��2`���&���ء�{��n��l=<8���O1
iF�lOn~V�2���<]n��������nrY�Ã�$Wz�HO=���5N��>p5��. ]�C2�9��4-ރ��1Ռ�a�R�_���0h��y��5:��O9"�R�RŽ�AB�td
:M:L���y�7n��=�ed�Rmr̂H7��z����5`wK���Ηkn�$0�1��U�Lμ�S�,1�$d���RłN��?�ϴ���r%iA%>�z��u���M�M��B���獰oA#�nRm�*�O�K������e&�}V�ˋ��r��c�)�R<��#SF�u��*Պ��-ͳbT,xp�J'2����6�ꘙ*o��B$e�7�g�G
�s���߈,�%�9D����¸T60�bR7g�A	]��,>[-V�l]�J�/w�����,�`�|S)A����ϝ�1\t�$�c���jn�����h�P\�x�Gp�y��)̈́�|���J�ʭ,�%�E\Z�����#�	Q��<�fǃm��]3�w�}����i	L�PqW���{��ေ(������sh8�����mECGŒ(�4KU5`]K��k\asg�=�L`e�T�Z�uv�
%�\BBj�p�r0K��S�%a�q�+�P,kB4Ք��O.�W�2���l��C0�帺9�p�N���	nƵ��Ů�#,^B��Z��Y�9��c������A�1R+2�(w���iO�����\G�_u�Hnk�s�F_�����۹a����-�\F��̓��)?DE�.��^3�c�#z؉�н�����^y0���~D/y�N����(ѹ�����-�_x*]q����L���d���q�Շӳ~���n��@�CN��߬	1_��1� ��_��_���=e�0�x�������^����4t�g1�SẎ�gl��̅;�/F�E/�~�}K�+g�oM��a�L��/
k��~�O��?~�g��7���h]�\Q��I�[�肷9ںm'=�6���5�ܤթb;����\���\�|��Vok�1���U��k	J1fN'
�u��0��כi��ɺZ�K	M����f	�Ǟ��W�Oi�mB́��Xf��[��vx�kh2��3$|��5�U��-�����U��w���}8�	�|�d�L�.��~���)w��+��O(��3�`����^{0��n�g�����t��ކ}QI@5��6��l)�|�w�9`��
�Aaݿ�%��Nuڕ�37V�l��Ⱦ��0<7u����'�P������v��b�X�t���xف�W��N}Y�u��Y�?��<�˼usY��9�oJ��ψ��W�1�AP�5��Ⱥ`V*f-
�yf5U�gUg�d۸�y�z1���F���<U�	��*�/
�P��ֆ
!.Еb�h�O�<��XY�������9�!�f$�F3�lJ3��W�TQ�y��fÒ���1���Js8����c�J`&��!V�zCٷ�0���u�3���v`�[���y��zy���@���(����Ǯ�q����IF�?\�1�uO�,(��B�]��:D���$
6EPexQ^��׬;���r���]���g9�˥"���Z;U
V�r8�`Ff����(�쭓�D+s;z%L��B�[S�4b#@-��F��Um�c4�a��*�����y	�ZIȕ��Yt��thX5M+�B��{i|�Q?��-�Q�r�#�|
VLT1�p��~���7m.ڐs�o�!�t5fі-]�ہ�T#��B���a���)Ab�Pn9oq������@k�?�X�3���P�XH�L�N+��L���)��blaϭ
������V�0�?	�D�u���M�����֤i�rV���a�e+�/���S&�����4T�5�.�7r_]��>�s���	��3u�RԯG*_ˁf�J�\�*��� HUs`�o��5�wkU��~�Yl�(���g��2oo_N�r(e0�&���o���˟��M���;��#��m,��]+�{�����+�d#
@�� 
�17�߀E,�"�6b,��)2���%�i\�;7�v��&������!��p	�>��h��ȉ����-�ð�rY��j�6��Ĺ_���E��`�Jp�H77Y��Ee�vf�vF+��Ns� 
A���Ö��jPj�ՊN���Y�eA������.`f�#��'D���R�ܴ�bf�&���(��њ� IM�+�у��cm�%���9p5�D�^���k�&��B�lg�s_T)��ff��������|B���-L1�R/MSI5�߹�*5#�/��1�����|������F�i!�97�8TЬ��K��Hq���k\��א
Sއҡi��n�C�+�(cj�M	*T��Oh0�z�q �`�K�֩/�������_�dF�#�#i�d&vJ	��.7�R����υ�G�4uf�MJ!2夳 o[?}Y\"���1	M���Ҡ�ܕ�*���PP��X�j҆�e%��7�`K�g�,(f3ʱir�-���"�`[᭩�4�2�q�(8�j���98���G�4m�ap!����>�	K��/�^
M:c��4h$�Y����O�Z�P��^F�ݻV���'N<q�p�ɿv�ԩ��H)
�
��@��t}��W���Z���mD_�I�``r��de��S{���;��_p;��SN���Ó��c��_����ꗥ���`]������Q���u޻n!��X
/�:yj-4�b�'�y�U��y����9��y���_O9��:�|��6�?�ٝ��:"璤ʊ3�߅������g�����{ƩGѫg7С��vp��n�ߧ_9�^���?��n
n�����^����ۧ��еU%X����v��b��w��ax��$~�͠��A��~l��=�,� p�	�v���|�'�Ze;GWC�DQ���U��|�ҩSr�
	�ya:�L���f�ʼQK=4.�q���79���*���!xȠ?}]� ���>Sf^�5��g����z��"��������O�?��-���6�)�_>�14o���ꢁ^I��d� x�'��?�}}�6�;��LQ���$;��n��3�̖^�U����B����k�G>�#zƙ��8�-|f�"���d�~��n����ڮ�#;�Y�m�R$p�o���N;�@�d����H�t����
��JvW�3Nk����j8u���R�
9�+&U�6#
3v�<��4GL�Y~�{�+kG*�{����D��
Ѫ^C�`��fHMtT�-�$Ř��"Tl�p�M��P,�B�����ٸ�WL2i4�Ci�O��O�r#���S��,(���q#T��/62b�a����s#l-tm6�aQ�8���T����ޕ��n���se��dj2+��_�����A�wj�eD�c�x��4�ju���Ƹ��?l�Yn��q�Zxy*f-��__
��h���2��E���GcmT%80�3@L��ɪC�lmքX�E�ϟ/�aЉ5��^��	�1��m_̋�1��A�#��K�7#����X��ִ�|���1}�.[��8Lv�����,�Y%F
��{��Z(�d�g"��]#�R�!f�8u�>jF�f�f�y��r1s�Y(;V�!�Cn������6��b�VDX�]���R�y���o�/��Ax:i�ͪ���sk��&s0�=UP@�s�Ili,�Ӎ�w�ٔz��NL��~�6����/Jm�e�q4�e�Gɋ�F����b!��2UA��Z�W"�"@-p'�%���qX��%���^^C�kޮ�|SL��J�9h0������>�*n���KN�[�
��j*p�I%�q��q7�lGs��el6b���ۮ�aڹS�P�c�F�־q���P���%�*ٚ�S��x��u�C9ov�/�x��@ZCf2����#Kk���N�CSf�/��A4���9��tg��z>��u�T��!�dKk�Kڕ�xPT�J-���?^� >f.�8C�n5��u7�)�O���Nū�H+�`4)Y#
�q!��4{�4`�;���!��E��x�W@U���(���Z:�,:���!,׮�PE���#g��z���nJ��F���l�b�-\�9`~�m.��1A��Ǘ�B��݋m��u�7�0�$��PgZCV�?Zה�:UL���O�lV�wΛ�M-��gylN�lh��)�q�hh����:!���1�YQ��-�����q��g���U���<*\7n�m�`�@�y�	k>�VL>ۂ%_�S��b�w����m	��{�`���[7��@��j/�B��2��M�Y�Z�O;�y�?�~����f����k���ĮƋ,��t9��)d�v(��8�8&M�zM��oYƌ�b�&D����T�Q\�Z�N噱/��W��I�ӹм&����<;mhb�*(x�]I�`g@E���^e%�/V�^���u*e�
e�υ���7+�M)d,R0~,����g��u�N! ����RX0R�Q��3�䃱�\��J��HV�D3�� �t����A�����SO�e���';�^�W���9'�G-��_�������k�~zC_��57R_�Iے��-���|c�/�˿���
�ݟ����!��mW���
��|.%j�)7Pl��Ź;/��4���f��nw�8���c]�?~�����Z���x�����8uc��g�q�	�i��g��>�q������
��N^�=ߧ�jj�?��f!���Gc��!��痾�/�/X��u��(��k�ɰI�`�I�B�u���c3�JL�2O�0���絲��x��g���?q�WMZuέ�/�۹�~�u��HɾY�k�z�ca�V�G�rCr�
9��RQ?�����k�V��)M�5K,/ga�(�:�G��!�f�1��I��g��&�W��鍥�D�����ͣC�5���5@_��Vz�Y�7N=�}��V������lO'����S|�oo���!�W�I��֑�/V,:�s�=d��?�c�Oa[2��֛M[�Z�Ş��E��&m����k
��l�M����Լ��t�*w����7�3��w�v�MP_�fP���港/�|�����NJ�;�Utds�z�#�F��@K������ #pP����ӏ��,���S؞�.�cnT����k_`��3�����6���Q(��
��C����N��晘f�ä�-�c��ʆ�g�֭ZV�r�p��lm@���U��禡���-u[��(k*r��2�լL�R��]�JS��&�"#��|���xGx]��q����A����P5��^�F6��p��YXtyd���g ��`�u�HF�/J���N7�� ?��-\^�Gk��0�����cs�XN.q�����;�ȁU4F%�J2��bk�2	�%_�]a[=�e��*'��'���ˡ`Q>�(EaQ��c���l
�Qko'��(����}��`��r1%��ok������+�D��ٓ�K
�q��s3���U�E��:-N���@����-�5�"��Y�KKm>��8d���lʶ=+֘���H��ǣFRK9�1H�T�{}��;!T��^	3P����$�h�%���Q��~�-μRtn�4Z�K-�������������,LG�S�~.��s�K���L�� �_�6�����rV�s�]��V��V-��W
�N�Fu+Sō����iP�&�6����Vǔd�C���1H-���s��Z��ni�RS�WC����TL���ښc�6 @������W)l�X[�������/��g��9J%��s(�����(��ͭS\�ʒ���2-���8$�s`Q��ط��u��
�l=�-8o����<����l�T0'X%������jc�!�a�pV)~O���
| ޫ���6'�J�D�j���� �M�h�P�wd��M��^���m�2HsW`9dS2+�[���8�E\�x���#�fYf�,x��B�+��xq���)�F:��-����B6������I��4f���c��(�ٝR�4���<�I��3I�+���0�e�g?mU1��u�u��X��Ε�H���bv��b�*ٓ��g�Wr�9����r��!M��VC��h3�s�c> k�6T@�r�c��5Hu��.8����n�>�3Q�$6l�!ӈL�#
{��q��n�4�֪@f��Aj��a��a�`D36΀�lDY�S����"?#���K����!wDE^GPC��}��w��;���oƪ�BQ���Mt*c��K�,*�Ňe���i�+"X8���4��i99���l�� �i�Q$������*	�>�Q�hA.y+���'mZ��I=Y�<_
8�y#9����2�;����WoU���8ձmA������K)绘��E�w0��Ԧ���W9	��I&	�\���d&`RY-�kqX�����v�����e!rU����h5|��]o����c��H����H�j�K��,�Wd�BD	Yﱟ@%�_���5��1�7f��4C��$��� ��'��1z�7o�[�]�>21����U�_k�����7���u_��#�A؅�>��Ac�v|�f������\��t9=��:�c�]����`�����q�4�� �s�����|�n�d�൷i-ߩ�\��C�CSL��w�!�@�R�۫�T�Y�l[YH%�+��ê:x��[��@���i�qY�m���O�^k6��n(0r�i���\�#���2���~t���zຟ�A�;���pw���Mt�	_��7]�����Ѧ$���f�OP������ӟ����:�ơ��܀�XnP��|��BU�7�
�Ds��}=ख�$&HM�n�2Y����dSD7@I��Zѣ��{��4�d��}���\#��eK�g:^'�z �ZT�e�|'=������;6���|�߿����)]����[o޺P3�
l�'�Ӵ���Z���/m��<���Ӂ@.JM�ߊ�?;
u
��|���?������.��^��FZ��"���hi�u��o-��m��		Y!���--�)�m�{�H�@��"�pC�Q���O?m�b���=�z�\E����s:UפrĐ���W_��=�Q[�˕���ű�gB\Y�7Ei=3v��<4�ǥ‡��&��^�1c�3O���V��4h�g��V��@���{V�ͽ�o�/YJ9;/�)��*D��S!#UE&����je�USM2NYY/v����׮`H#�*Q�
Y�P��^��4R��\�,;K�z��y�$sAk')���6+
)��39Ppr�-�	��0�T�Ly=R��%��$���.y������B\$U�����ꑠX�Y=b����I(�pu�����D�ms��k�H�t�a�8�1μ�p穫A�	*�bY�:��^�E���s�: ��}�E�1ʶ�%{Qo��?4E$GN���\�qЦ��Pk%L����aL.P�Щ`�3��8�Pژ�bX�+yq&��V���V�LZ�[�Fh�Y�x;;�ʾ�A�(��Q�3.�=��Z�u]��L9S���E��ݽ7	v �tI�2�;=��@�ý�}ǖ-������p��1)�CSjy�6��Ɔ��05,Y�d�(`�
��YVN�}�?��O�:�{س�M��WbD��>[�:��ŝEc#�0�WJN�K�<צ����|H�0�m�43��\1b���l�����R�*�=��x�@L�m	�ܦљ$�
&�mVsItE���:���;?�:�e4�������!��ҍ���{�n�9�-߃���G�h�V/�o@C�린�զ�*כ���5T�R$�m���W���j��|X��m���́G�X�Ċ��R��
�6�o�"�j���#�h�)�?��
���� ��<���v�r���cDEB�]��l�'�XD�g��dͻOU�"]�o�_�)��|��r€�@��٥�
��_�L!`�V��RBXl��q~Œb�M��a`�0d�6n�Ҡ�rs5�e�iZu{�%��Z€lG>7�d�����v,ͨ�&-p,+��s��T�T�R	�͍�HC�+L��,���ƮӉ���\(�š�b�g�T������1����_�1+p�k�������
e��|��J#'���ձ�̓ɨ��;af4@���҉�)J}eIb��X)nȹ�G(�/k5:�dx���F��=Ի�<���n|v��ppWk.�1
�h����-S^A�,���#�v1�<6t��n9�¦��U�r'����Wy�9��6	,�.e�=V���(NPh�֣�2�4��|��RP�����H}?=���\�18�U��Q,���C?�ވ}YI!���e�̿�sn���jv�����jNY0���j��{���S�<=�h�g)��_�=��V�)n�p-�Em����"K�!W�,�"5)��,;�G�d��X���V���eZ0o�
%�Zȵ>_��O����&��-������^i�3A!
�UrOg&o ���g�&sQה��5���8bc�}��Y�W��}c6��'IwѿӁT�`%ϥQ�"yF�lUh��yձ��W�뮣��@�>��ǜ~��}��5G��κK�K��
����_{mX\B��ݕ2+�D,>��u�%݆ �0`ӥt��M�N�3�~�7�H���	'z�wi�����#����h�6�Ix���k�F���N��_X�v�Yjk_�w_�r�h7Q��X�1x�8e��7ub�.{�/�܁�j�\���g����jޕ)��@)��/��*`R�,�
x��݃��Z���v���uC�HRЍI��gS�73�I]��N������=j��G�n��3��ܽ����h	Be�p����m��/��t�;L�F|ʜn&dX�WCX�Um^1����+9Y���0����%c
�m0��v�]�| ��?����m�����t�׏���˰�&C� ��j�r]�gP�̨��f�p �d�&&YV%h=ԙo����<��	�&�D�o4B��2a���
��p��
����`�%g�0�*��1ͦ��s$9�3��5s�厀�R��Z�O}**:������ш|=��l?�$X�Dzՙ�����0sT1����,X-�*���+��z�,����5U�z���)[8'$l@C��A�&���|;i���X�/a��g�f#��p-L8���.�A�ˁfT��i8�
�I�|ΦR�f��4�0_u�I�bቜG;˚�(�L��m�q��h�HS̩+���)Q�D�*��Z�F�R��g@�	}A�ܦ���Ahl@X�V��6��y�	�f��X7�U9�P�y���:ۙ���
A�гH,V�f���ֱLL��r�cT�5;"���@�h㍭�BP,��"^������Ph������Fψ�HCnĬ���.s�e�\�x���q�(Y�h�g��D�
����2A��!��>��q@�\[d�bk��t�pwD���&�~p]�{/�~�+�1�(w��(��"�
��#�e�O�%�^E�Ua��T4�P̗-Ǜ���K� �&A��R�J�ɨm��r�¤l�$�2T��J�P�P�|�Eesj�9<�5P��A&U�nn�$sk�_-�k�PaL8����u�����q�'tֽ�,���t?���T/4R�<kx���Ǎ-�>�f(��N�9��DU�CR���+�WP��ze���ܶ�*s���>����hBc��k--�I�B��DA@�PA�Q҈(h=�4���W��<-
EK���$��%@ �t��{�^k���sεϹ��B8|�\�g���f���Z&`���

�8̙���C7N��9$�r@�L�|=f��rqwk��:P�V6F�kp��x�-島 ���H�`�9P	fV-���&�o4r�vU=��Q��Y@r�4 ���#��X��2�������т�L2e��z��¾y��K��K�VA�i\hmm������˯�UF&�.́�z��9p��v�76Ԋ��3���I�!��L_�j�4W��i���*�
'�au�M��8ݤ�I��z+�knf����&��
��[r9�����H�qA��X.`S���2�P�*�#U�d�Jf/@9<�s%�أ��!�v�I4	6��5\
�F�mi���y;y����,�gM�Ω�|D>G�ܘ���^�A��f��V̲_��z˹�����[�mҍ�v�͌zx�:��m��ogL�1f
)��+
��V4��wCBѠ+��#(Q�4�*���6��A�VU$aA��_m���Y�
�י�?5�r�D��J�8Њ���K��~�E��R%ׯ��S���x�38�W�\�g,�i�u�k}�-�f�#��uέ� PrKv�*J<�:�T
�6v��x��/��n{�o�0K��l����l�Osg�5t������z�
t�#;:�.>�>_�������F��NāZ{��p�u�ՁN���~���Pm`U�c\�H�����_j҉w%��rUdr�Bo��+;�A�n�t:1�;�ڻ�t�ͫU�./$�	32�:��n��o`��j�Xχz
�9�y�1�2�*Tt#�J��/�lF��#����:�ޭ�e�Q�)�`\S�^�*mg�=
��ubی�
�|t��v��q�����k���]�/^��_;��k5���g��-�����8�R�acEtr�%��z>�\P@E���w�-a��&P�a�u_�@bMl%�:�4
��z_\b/�-����ׂG|�&}��3��q�R�[�9D��4�N��[/s1��E�ܻ�䂜#��3C4*{��PϚ�$*E���5��?}@���@X� V�1NyL�)��̱F&T�^�	��by
�����H�ė
�I�@>�1"�>S��v���(��d�F�D�i��u��,X��}�?3�-�C�U����f��و��)g#~'FR�UV��2GβU���������Z"�z��کx�[ވ>Kx;[�D��7���緐)@��8 �D�i��RQ��aUo�f=�X�Ѽh|n��n}эg֨'_�=5��!O�M���\��X���\?k�e�
�5;�7���e:
h�J���P5��恄�� r\�њ��6�.��ź-A�֣$�4[���~@�3�㐽��<�ɒy�j��p�F���\��Bȫ� h#����t�<��|���@a��8f_��A׎����&�%�B��̍�hJ�����q(�+�b�j���is��@�F ����ILV���m,��ք�`��>�mz%㱺����l̘�L���E�������4���g������������q�`則3
�8;B�X�`���҈�B,�x|
����t��t�A�Zc�������q7e)�q��U���>�(M���<�
ݥ>r�<o���8
w�:��s��:}�?ە�_���.Oeuӟ�tJ�
�?��]�V�E*u(
P)�/Z��ۅ��
�8r�gl��S[X��K�^�G���
<���w&���)|S-��luW�vI��L��{D��3�J�E?s	"��J6�� ���bo�J�H�*��@|5\�y_li�~\�p��+�в�)� h;У���;��B�����-�:H�
�kLy�К��,f��=<�ѕMeTd�"�獛^b��t��|�
�&��1,���*��,�L�	����Y��+�̗��_���o��]����}
�C���g��t�v?�'�WB�	�67iΥq�a�����@,OK�,��\��|n-X�����w\'�=˩��/����tvs'�@.�[m��_
dQ�(x�88�s��'n���9rC�W�N���1f���.��$�;�I���󾷠���5��ǹ��n�fȾ��͊ZH��X�x:<0x�n��	�|�_�����1�@y��$߯�eesl���
2:Ƚ�G�K�bE�L�
ƐoL��|��0D=��X$d٘������V��Tn��a���-�p�:�J�s�>��$�}v͌�F]i�	�� J7��n����M���R0dIV
m�=J��}h΋�ѝ`@�_v5�auI„Ks8+���1Wpep8?��q'�
����m����n�փ���I���+�^�j�(0�P�������m�R.uj���B�2i?�l+4���@�QKh0sjO%O�g��K9X.6h���2Kj�ȵ�]]������%����E��|O�/n�"+�o���O~*7�7�z<;�Us��}���_�<�1��!!V �W��X�TG+���^Ӽ�Q�����q�)���?ۿ����d�Sp,9H���|������F�w5�]H0�>�;K�{�G��j����5؉���Xp]���:P�)���	a
���[n^oq��³��:-�!�8�-��bй*@Ƹq��.8`�`+?(ސ���Z���b��f��3�XY*P%�3HP|/����F�w��u��#�9�k6~�0�03+�(AI�_r�|�I���(l�SfP�2��("$�A�t_�=�-.� C
(�2s�^D���Էà����]{����]�;f6`��
�5����`��M�n�Ø4�6������؏����B8[���xP;L�&B�Z��|Lz�t�xbrݲ����*9�aU�&�J�/��aYj���O�UچM�ƌ����&	Q��T-��)+���iΨs8�ELv�gXFB6���P�vU;9G�s�W�3�x�CEk*�&Ĝ����k �\1���Ķ�η���k���E�,n�Q�� 
D	JpNl���a�Ѥ�X?΅��%.lj���mcM���6�fA\���w��4��G�:�5�L�ϡmW�,�)��r.�������N����Ӫ|L�Z��X��,��dl/6�Z����faj�� �]~�R3'^����ִTZ�Nԅ���"�˜S|���6��,-���z���9"�Bn����M��-���h3��u����'b��@:��'9�vS:7[��]�<L)��e�G
b��j\ͱ�s\��<V<t��'Q�K�z�}�66+�g� �2�;'
�f��	�KˍP���R!��<�Z�͚J2f�>#��8C�y�/Ziv��y��4�g����8�sb\w�qb�e�շx�3�=�v֎k�}N�Ϧ4\�I�� ��L� 魷���]���Lx�ڗ�����z���A~��΀�`6D�3#��9aőUyb�4���2K�w`����0�/&����e����+�>���9�1i`��T��;m�1�aS��6_+�L7hиu��"	�T^�i9�U�'	�4�M�I7��F����>��+E��>�Su��/�iCk�8.PAh��ac9^ϒs8�q��V �Uה]H3���@ѵ�ϴ�l`�AP�7�%y�V8���+�4�9�O���b�����ӗJЈ%D��H,��G��|*-�E�[>�X�E���!��tś�Jh
X­��К�?�..�"7��a�I�L:e�d �.��
�O�N���b�,G�Q�J����T���A��#�$vg
oq���<�w�X�_�1���i`ԹJ��%	�
���z%Z�ȫZ�i�Ҙ������2�P
|�͞������l�+��E��g\���*�C�A�
��S�h�dP���R��][{6'�Pb��Ǐ>�
��r���\�HC�R�*�	7.��MH����{���Rf��	��Q-Yj�2�=W���E����+~�N�%�}�)�9���ƲI��{x�c޸��W͠��Y%2�����
<aכ/}P5/;��I�8D��d}q
l���SF|
D�d,��*�+�&3=���~��4���\Պ�zx{�Kxl��4�%��܏Ž�D-�g
���	�1�{���7;�	k�03;��ܥp�t��+Oy�K�S�����
`����[1�a%d��Mk�T2�=��6����
��Ĕ��D-�����hq��b��i�Z	�Z�������@]���$�Y���X�ffP*���%�(j�J�?'�R�]��>VV�7��&
�|�ju.p�lܤk_y<���CaQ��~_�A�(�\(���u����gJp�΅�dh������s(�W;����
9d��{0�%����@>�1���#|�[�6O�g�?��SH�����M􌧝��
[�2�N��l�ec#PZ[�!
��XrN���L�\������"�b�d������)xQ��0}�4��څ��b���v�j���~-3���t��mM1�Y�.o��9��2W��������B��3�]o�Z���R��?�\�a�]?����[��ϔ�`��A���h��B�	a���)�����0?�lŎ&bĂ�,����/�5mL��wk0��k�Y�Gp�-��~9f�G�'��O
pMvN͊�i��S�z$*P�>T���Z�C����$*�H\�IZ?-��ܞ՚�4���0!���?f,�
�)TD��Ϧk
���4!*jS��C��q��]��y볇5a��i{�\�&gmq=��RoQe�a�"�.���.u���	gMQ�g�����e�UFQ�s��=��u��h�E=WUVm��kXyo���!��e/��&�|�XX�6�g�n�v>n��m�r�̣A�Nj-�����q莶�;m�38'
Xh2��q��MQ�z�N4W�M��>�׼>_�}V�Z�T�p(���B\�uCJG��d��Ȇ�:�߭W�\�L0�::M�?�|����4�"W�(.��pa��S:�݀+s(�Z��Aȝ��|��<av~:o<?�?9u"p�P���HT���M!��:���a���ln&��0CVŠy�_���r �4+�ؗ�V@~�GB �]�͖��B*�P�4ŕ<��֧\#�X���\ˍ����!����{�L�`�Ziқz_�d\<^�b�]&=˴�78�:�P��,�sf�d%2I�	Ό��}(߸�$"�m�L�g&��N�|>�	5��"�#�;�e�yEo$Y#�`�
y��q/^��ٻ��=9��3EC���[����l%Q�a���l@X�!]���
�'�e����w�:
%;��e\Fv9?�A��e��8��|>#Ś�y�-Q��يIȧ�Km8�5eUy2o;:n�Q�}Գ�{"™�X�vmWk�O��n�BSa���ߺ�B�I�o�tj��[�X��3f�\�Y���H��X`l��9�.��7��P]d%ƺ�Nk���+��L��ߦr�����݇�ڔ�B`�jf
����\�1Җ���J	5hXP�d�^�k� a��@O����^��u�D��x����=���N`n��vU~�y
��#��b��q�#�`������|��#�TWtW_
�XH�b!��&��y��3�w�H%�)TT0dZ��2�6�aR�x:��$LSJ��$�]�?_7|�	Bu&`��+'~��&�
�NP(�c?qy��Z�M�ce�IM}VT*~�
WͿ�QI��5�
��>�P���[�_�0$d
ȫ�埲�!��XdHQ�F���F�0ܫ�@s]	2Vj��x���3<�.s��*
�׮2@NjP!6n�!�(��=l�����72i��r�H�M.��k*�U�)7^�A�Yz�4D{�P�w�(�%�5;;l�\9�V� ��|�zL���;"�[�*?�l	6)��ݹ�6旀���>�=���DA	
Y-����&�<���l�\�I��Ke��WL9@h^|w�T:�'���~���4�?���02�&;��g�`ox;W��;w�T��5���7h��®�e������Y��x�F�%�p����%	�n1� ���ә�p!x䳱/0���ЊU�<���L���A��w�A������e��n��6��k:&��s�m�еQ�L�SH�+L-�s1Ҵ!��5�x��S����ț��_��+��V��u��wz�;q���3��;>��y���eYDV<<���cR�8���W?�ՃVPuD�4�ңnIG9@��u���#?��{ӓ�}+?>/�Z��g��J؝Cmݏ�E3 �l���XQe�A%|0�,!�fRVv����}΅w҅�}��ϒo?���4��iA�|�	{*:V�\��B�9��7����8oN�m�c�*V*�&��:��jG�3��vt�����\ɀ�ǰ�*{1GlPGwL���68�L��v�u���u�n�T���ʦ��3��&��6�r�F�HqZ[��;������.
�5��+�q�.{lx�u��z�r.rnRg
aѮ?��)�Q����Tdu?���Vo�>k'G+���z"�~�����ʪP�{hۃ�TSg�<������o���l���d9}��>����!��
̤�y�����JYM�����,%�y*�K1�<��i�U�V*���Z��A��bM{��u)YVH�O`��
N+E�.����N��};*�y6ލ=���E�&iB��Tg�-6��(M�/V��>�g:���v�Vi�"�^�Y��O��d舍�N�5�{�wɪ�b�m
 ��b�¬��l)��*�`�9dKJ�r�vҘ��sU�#l^��l5\���ʯk1����فY��/��W�^�B��Jv��|m�E$�E�ȫȘ7��.�A��S>iLX���8`�M�Lf������R�0QEâ�n�:桀I,,�ԶؕX�9�V���[�T],�TF�V�
ό'��z�G�#+������m~T5H�>c�0D��Q�{��3A���BpـW��~��ԒX;2��MU��a��C��)c�~�w�S����㫵��1�8�)~\M�P�U������	�;.�VTT�*ڳ�x5N:r��;�$����%{z�Z��]����v�n_�h�gqGC`'s��]�,GjUBV>CgZ�s�|�d��vҝ�u�5���i��ff.dI};^��MO�
���/�3o��w^l%�m4��z�q���U�2�D����K}D7ςsj�o'J�٬���/�I\*�Y;s``"5����Rѫ7�2a��p!���&�e11x\�1�j�jD7^|��}�>N3*��%�6f
��L��uf}R�R�a��XEWd%���5+R��1Ҋ�lS殮l+N=KU����|܍E��6�e�����@��6ރ-�4�]v�A�k�=<�1{����l��e0^��zǰꑦ�v�|$W5$�Q������[fv3��q���]W��;)����N���^܀/a��R02�*��!�K��+��T2V]��U�Q����&us/,#|*ӟh�U�=ªC��]�����W7��q�F�c���I�z�>�ʪ+�ZNj=�ËՏ��`>��F6(pu�H��5�߳s:�p��13ճG��RC�RV�8+<+�4�\��PlK���f҉��.���2[��{Uh�l��j�g�ᥓ���&aƬ��Z�@nVA���h9�j�����;��5���KcP������E�&��H)�ě�h�T5 ̬���	���t]�ƚ��I1�ެV����0� Vbk�>嚘�,y6�q���}������̐�y��Hg���_�f�6^I�6�����bGD�u��~���Z�窨�ڸ�l��|G'��m:�^�����;����j�U5�^
������"�
�ɲ��Ʊv	.�7��w���S�,�rT��A���߽�Uy�����.Ϫ�y._��wۡ-�8Y��~������t�;I�XM͒��?@u�R;L=�ډf�!�Q�bo�N��VXaoa�2�L%��O��W�aJ��<�N�������� �P�'|����lI�j>q\��Ш�_;��h���{���VҠ���*�d���8oX�ׂ5L��a1���w�Z��/>�Yz�ko��Si�q
���}���ث���޳���E߽I?�Գ�P$u`�����G޺�]���NnO��p��>��ޛ�7�s���&�~ AȽ�-y<-}}��o��3��/�!�5I���i=���1��d��l�tr.Qut���|������e#g��;�[�>p�_����o����&�&@NSj23s�Z�-��%�)Ĝ�q%l;�G���-x_�����`I�~٦nD0wB����ں&��ϗ�v�W[��%Ϻ��3��.��:�NIw�@v��Y�E��V�Ҥܛ�]s��6g
��a�Jy�g�V�H�&��[af�)�kr��X�53��A���Ѧ���
�bAkQ>������6(��{�k>^ӆk�,<h�`4��K�&-؆dV0����`%gɾ��C��t����@�>%����1��"H��W�:�J��dM$	�'�2���+v��(E���Р����395���u�x��v���9���mE�$���
�eӊ��?x�m��`�Хl;+�1�qa���d<��2\�[sF���M�<$[4�gF�q�����n�[&�#��m
��$�h/M��B!�jC%ж�9���Sk`&R��5`���G�Q�x�?����^��Vp"Ou�EXQ�
2G��c
K_r���؉2AR���Lr��@�Բ����
{�sm�u�4
����ԦImh¸��c����`[@���9�Ԋh��󙚭E�e�����s؆�\X.<�Y�@�c�43�;�5>�}M�����"��y;]{zؗKF�L-�\,�6˒���do�A���?���b1�Z�h�5�l��rn�T�3cEr�X^:�yzF�pôm;�=���GV��sB�����Z
�w)�8�l[�}��z�"�q]�P��������0R�v5��
�w�:�gl�6�2b1��C��C�Yؔ&M����3�4��'��v��1�m�j7���u8C��E�S����t�ܥpF�Z�xx��,�2@O������O�Μhș��td)�;�5�8e��>(c���5S\ahR;a�c�������m��CެKlD�;>�%��������$LH�H�ɂ�	&ean$ۻ�o(�">ࡦ���y��(����61�D����E��$�ï����/��N�1I̸r��+���~�9d�6�
PuE
�jV���:��!�}�\'�h紂J�j�!r�@a�.�,rք1��	{����-QS"y�nN;�EJe�$}��jp�5Q�uc�`!�2�N��쯫w=�J#�7缠y1�"�7Tb�����Ȇll!Db%!��[��?ل�u�U�mc(@b,����kp��"�]q���|�p��F���B��=�C��Dc:V�Pg�]���l$>KP��['���@pc�;�*0�mf�wn~J�+��^����*��-�l�=�|~n��1�GH�Fr���ث��٭�O���`������|��v��y�r�%}��\7(�l�ĔY�r�������b>���~|f�<��&�
�,vJ�]� ���7�v�͜�z� l2�p8�{����"Y�}�j��0�rh�mja�ijn���h�Yd�5%�|� Lڨ-�9�y�<���I#�8�zs��9<�T�
�5;�$c�$2'(c�Z��ÚVȭ��5T�C�C�ԩ�}��kǗx��?�}���|�3�	���y���Ϫ��%����Q���N�1@j�r"M����_���һ�|Ҹ>n���9y)3pLU�1wV�z㺹I��oZ�A�?�u���T?��-��ǜ@���Ø7`�X�����sP��}�g�G.>o
 }{<B�{�,"����x��_����;�K;MX��8����=��Cj�&�{�n��Ȅ??}�ڎ��k��6f������D���)8G��q(�N*u��]w:�&C���t���Y�~�]{b.�j6��/��kMx��%}ףfk� ��1e�<��XjfW��r1�ۍ2��v5q�͖0�!�����}�zW��_~=���pͽ����|��f����Lņ���%��ń��D�z�&����OR�p<��
��c���Hf=��]|޷�y�����w���B����$��@��Ͽ��/]�!������Ѳ� �ܵ�� `�7���Ox�{(��q�)�Ϙ�mC$�Z�!���:V6a��~ck�\k&w�Ԟ��S�xq ?
�Oq�A{���?�cY����%����/������^���7�2�I�Ⱕ�`>��\��k��c�k�g@�$S�@����&���`��EIHq����,W�����C�Χh.����=}�ѩ�7��l��)����q�X�3�*���<�䆄:B�E�u�U�&�\Ş�I���g�s��|�”/8U�d.��#�k$�ȔG�&t��2Ϥ�Jhq’��	kg�N�؍��/�b+	91��Ӽ	a+�6�ʼ�,~d�v6�
_�j���B-*,#G���3�'Ur��V���{/�6��Gn��,z�����6�JWlE|Ş�r_�c0�.�uM�dC�)�MCʛ�ԓ
2s��h���(�C�UЪb��tа4����c��H�c��Qt��v
���v�
v�I����4ͺ���Ƃ����!O"7�C��ʦ�a��b���V����#E��R��fsҸ�==2���Ę���ۥ>+�a�94�Fr>����5�HÕ}*���(����Om0"���fN�	cM	h�$Tn�h]�Qۗ���W��l;��6�#ԒW��q�a/{�+�$MR�-��ZsLc�8Z9K�3�lkDUV����t�J�E/c�%4�|��������s���t�I5���)��70��w�'$��l=��\�0��6[��zL���#��ewid"�[���`ڀ�!�{�m7*��B����sV����|&��^��p��uBV��J��t��aO�睐M��
=2�.�H��*�\��3_�f��8s:�L�a���r��3���]Ò�1j��wK�ҘL(��;�L�_x�
}>����;�fբ�.�*$0�t��\����u$�u�'�Y^v�'�n5��Ⱦ[���d#�g��i���B��)[Z�ک;��^�`�@q�π���?��d�H��Հp������]Fqc���F�r�!U`c�z�D%{��5����n�+vX�z*cFk��2襃�s�H��"c1d�h2�sd�B��7�
�g��H�6�lS�|i���7Ks00�Q��Ʌ�}���l懝;x���Wzt�Vs�@�R��V������DR5i� �G�Ra���	��q���Z����i2�0
țq�����t��mW�I�&~����>�gY�vd�ƃ��v9
�7�<B7x>���S�s.�WB��PL
K6�]c�U���„�M���l��d�Y.�e�I��K�A�6<W��kK�H����7�ɘ;�"�+�߹"�E��h~�6��95 ˀ��}����Ѝ�&�sQ1�6�~����l�L��uT峴�ܳ5�0����Rn9�2+���O��p틕���D�4�uN��w�Ωf������{[�OS��cK�h��r�珅C�-��cx�G��8D.��,M9`v9���^��]}��6�
��|s@�Y��˔�kC?������4��,�Z,Q�
V�T�rڹ��&�Δ���)����'�}��
����j��K.�/����i~������g@8jt�9\Wnn�ހ6h�7ڼ�`��
���������0���@���w�p��|��싌��L�����K����5ß}�樂eM��57"N����/�;�{����ʿx“6�����b��k��ta��e�r�w��=W�����2I�efW��z��`�O8���4]-'�6��j��}h~�ˈn<{�N>��k���Sܕ�cc����������O}�)�Mn����~�de�y:�aw3=��5��+>a��������V��7�Wc���h%B�ڛ�M�����=h��{��J�yƧ��kN�}ona���^Ǫ���ig؝�Bd��͍��<T�E�m�c�*�<-{�*��;x1�7xι�ZJ�7���~����)�
e|
���x��+�UP�]s�z����3�%�=Lm�)�W�N��;�^uNu���w Y4l��
9�&�%�
J�Y��,��Kc>3W 9�E�4k}.3�d��l(�ݛkY[]�����v;�f~4T��5%�	v[{%��p�(��y�Ŭ�/�/`��˘�h�$�u47�02F�$��a��P�?������#�QI@�|a��mU���	&-9�<��uC�Ue���f�O�^�H�&j�s����:S$'-�B�Nnc�U�q4�Tej_��J����$���5 ��<ª�%�r[�un)FR�:�c�O��ZEb�r+g�%���4v}�6I)eſ�m�dƂTm�Np?��1!*��X�a���3�,RVj�p+�-�
�M�O�тp�Zmrɽ{��D/v#����"`Z����I�LQ��Y!�ڑj��4Pfz��0db�4�AZ1�=8��j>�,��l�?a 6�%6Yc�(m��'�\0w����=Z>-d�K��&[;˘�`�LLjw��ep:n�ل�كʄD^�r� ��1T�6X�LMKJ�qU-`�"�e	`��	!�aM����!�<HW��C��6���-A��)Y ��#ÓY�B�彍s<�~_����c��:s(�>8��)[�d&���qF�D*U��a�1g��A���’�{@6�u���)Ů
��m�7���FJ�W+c@�U,k����3��Y�}uMn����3�؈�9�	�ýͺ�wS/����%�C��&+�@�N�쬨��j�G���$)�V��r}A{�wo�=�������J��,��ǘ텫��}���a�54�A���@^���&���Cv�q;�n���p�4!�#2����۠4�Q���t7��K�I��E��ѱR�+ۇ35�&�LZ�&�C��#:Y��u�/�74��A6D�jj��;Q�.���EM.U�5�|�}%��΀�F�V���&�Xl��Q50�Y�17� �^;�t*I�hm����>���9�J(��ސ*3����~^�qЀ��b�Ϡ
/�t�o,Q	���s4�1M�q���=����b��/kht�m���>�r�+�M��*���1K#���3�viA*�c����Y�<��t1t�d�׀V�[��KV����!��{t_E�k��q0M#@��qAn,АI���haAӪ}Nk�6)"{X)a~D��:��eA��mB�Z0xqm��6�e��Tu�]ŤΎ�r��/g�r�M%F�w�J^g�y���o��"e�{ʊx����*�d��l;�%��>�� ѴY7�R�fk�=?7\XJ����	�(�<�Q<X)��؄]Y����KT��Ձk�~�kp�l0���k�\b��o,�6{\����5�����Ŭ��y#�Gm�,ze�CT�K
��b���]#����A`k�o.mG狄O�lU嚲��m�c���S*,�4�嫙!�nR��2
��� �FK�~�"�s�+`�\�&�b��3|��$A�Ž٫C��4\�a��eM6`�1�����������Q
aP��~S�Gڥ9�\>���\o�6��]�1���7��E���S�W��/�/}ۻ����4]���h7�`�z�e�X���Q}���n��Y�
U�ߥ�;��K^xo��'�>JO�Oq)+�(&��jX��so��<u=_�k����ck�[�����G�{z�?�������]�W!$S���q�oc�T�u�۩4{��S0{��}�t�6�&�Ѿ~�g7�-�q��x'��Y�hE��n��|��i��?گ��}���ދ?A���}G��k�e:L���!�e$�Y�M���Ae_7y:	��Y��˙2	�T#k�?�]����E�]��+_�@z�3�����m��b�7X0�M�9�7:�q�<V�=n�^��o�|�k�p_z�ӿH��r�f��nF�8묽��lS�<�0t�ɻ=H�Ad��t%����Q��ĵ���ݗ��^F�}`U��C�>t��m�z`�8�6Zn����N��#�
P#�����0����]�5n�`�9-lEa�UA��np-*u�W+�%�g�����_z=�7����O���?�O��R!�e6~��R%�����
�w`(J��)s��lB�ᕱjH
�
@����u\#֕f�i���?$UZ�j�&7r
0Y�˻�G�Y�i#��ջ���$[�ں�t��{_��R�����8ϖ
��AqUY���žά^U
s�H�!�,���SV���LbL
�ad}�M�c��G��4���`�S��/>�F�i24�zDH���5�A�8���N�Ë�;��C��$v��s�,�.�� ��.ᝁm�dA��ͫj�N���X��8Lu K.S�z��p�XvJY�X�I��l���kT���)iy��
`��ry�?u���BPA�
�����!��p�1�g��D�(В�A�u߹���M��M@!ep�,f�T��E 	P�r��#�*�Y����	�Qpi��U�N_��T��R�<������{���Isr�9��	VWrЊbu�BN��L
o��1+y���0��Xy�Y��s	�s
�9d��B��G�=$�Vp���0n��q�50�*s�ύQ���c"=B��2�GcG,�H����q��X4����r�fD�f�b�A��P��8��^�c��(U�}�%�f��F͹�Kg����z��G�A��aM�pD�j��,s&�kPk�h{A�
~�Z6�[`;�m"�u�-�-*g�d�JS피�tӒ�A�Wl���+��%��fGT����T~~����Z͚�dB�3À��L�vZ�����m�ǩX���߰� Hk4
Vq�v-��b{ǁ��(�@2-��ܵj�C�M^E��T�>���M�dv�Y?�oZti��zs)��xʶG<H|�E��fܴ-!ݥqA����;�^U쓾Ѫ��%,q��t���c�V��,-�l$��5�q<��qc��
������+0馍�&A-��R3X*)��l�i��vxh0�xZᦡA�Rg.;W���-t"���ܻq��Y�k�/)z�E�	��)��mYN|Ċ�-Y�3X��$��i�N���P-
.�-y��1��F�+�U�Dj��M�
���>��


��!��,aO����"�kP�Z�SL�PW+ ��$W����n�+dUȼѐ��C��%��-�*$e�x�s����Gm��	�0Վ���t��ޗ���k�J�@�5��K\ ��lì<ހ��&,���BÐ�)#�_H�z���^�I���w���.�R�Q��#u�3��#�{��n���U��?�p��/�H}�b�sH8�Ö�)/r��?o�4�Y��12.�H�.��;7#)�x�u>}��M�t�˖K\�����y
�����o�B
�z�+Sȹ�����%<z+\�ˬ�P\�E+͕�Y%i�Ay*��k_�I�;�e�U�d�(�c�o�^�T�����K@��ʂ+�E`4ٚ���O�G�&��+k!�����$�bg��o�';�y3=�-���P���6�4��탲-$���\/��6c��- w[B�l%�1�[ȳ�] l{��^�r����Hq��יgxi(�|mW������x�qvH6��G����#�)�3?q��ß�;�:M��=�{h�42���2m�O�`K���_~�XEa�:�g~'�[ڠK�(�MQH�;�-�`����7����×~��{����i�nf+—s�P�J�?�6z�%{�3�^��A�p��lU�lѫ^�V@�W4ȜH�*Fע��%z��cp3;���������6e����8�io�����~��|}��=i�Z��^�<~&�=����$���Seݵ�l�q&��YP�,��o?t]p�ѯ퉏9�.��S��w��fS��ˏ���~���o�(�}Šb׭���q��ޗ���n��n���R�U
�A=��MO{I�G_t���g��-�����f1�62Q�U��/Ჱ(a}���>�?�?���+�	�<x�&���z�|�>�>c\�<58x�*�kh������c�v��8�z�SN������q��������~9��޳��)l8�g��wFǭ7�z�K��R��S7grOC�X	�e=ߢ��Gs���ێ�����}�mt�����W<��7~�����jD�V)�r�($n��=]p�az��U�/<�*��u'���,�A����l\��?��b#�Etx��:�5�,�c�aP�lV�g��\�q����IO�������ɿ���j��<�f�VXt�<X�̨?�܃��'O���w�p�q,Fi��D�փw��,l��	��|�d�$m�̌�}�MJȠbO�Ľ�:Y/v)YX5zX3�$[@��M���v�s<���[qC{��{tm��ÿ���:Ʊ����Z�Z���ܷFϳ�2d
�`L^��b�=�P��>�8!�8F�	��KrL�Pe��W~���ɹ>U:�B���d��P[�_����"q�ץ|a��pp��u����B*�C>��Xj:%ʙ+�	b�ĵ�+Hl
l����L��9;7�.�ٳ�ڥKߴ�=K������3i��r�Ɍ��
i!DKl�y��_*���O�![UH�H�E��)�*�;���@�l���
�Z<�װ�����s�8���Xd�ʴ<�\rVxAJ.+Oӕq�m�	e�3�ZFInMR��y�bW;��M��^�q��A
NPRk81,�eO�sC���+gF�%V,u�g�c�318c��y�<x~�I�2��Ţ���}��ո����W�sR��D]�ؑ�T��>�6K�N�F���G��>ִ��nL�d{�%rF��OiU��!�ac��g0�m��aК������Ff���Ɯ/��Z�?&R:�2Ϡ���8�8�8�C��k�V�uA7��&-ik[�E)ĖI{\vCI����t`��ֈ]���p�M�
�ֳeUP+!#Y/�c�����D�1�ɻg|�k��F�a@N$c{����G�"f}��Zc�k>�{���V�M>�����]CbQޤ�V��/�o��>��x+���dz\+�ÍY[5����a���*��ꏱ��&�ۘ+������x=K��a8�G5~w6T4��=�g�{�ϔ�@�"�0�m�N�aK�Tټ���t͆��|7�%��.�y���3/�����;��-�si��atQ��,��L��Д�.�V�@P6���x����!#0j�]�(��`,nK�μ�q���Ϩ�li��[�M�`~̐o��J�� !@�P0���/�QL ij3�u��š($�0�R8T
9i�\m6��$�Bk�3����( u_dv�?�ӭ�Ezy皕��T,��`qBa��ۥii6��h'֎�����1�𮀣��('��؉"y8���{x�/Ʊ�y,���@b�e�4`�6�!��+Xݐ�lf	v?�Q�fs��+�*���@f�6�`c.��NqSƔz8B�(�_U�Ծ���
E�Q���?Q�KqbV��`��V��J�\a�f���
ژ44�FL�q����À�Y�f[a��U�G��Iz�Hk���f�[KH㓪!t8���,%�n�
��p
 73.(|�6����KI*�B"_�+
ZyM��&W_�cZ 6�����<
�2_u�@��}�yP`*j���k��F��԰7F��A�v�{�p���v|��c��u�Q1��p�7� 4�A�鼑��93P������cs�-��	�Ss)�۰����+W׽-{�:_5-i�2����oߦ���j���f�3v�ZL�]z�S�,}���O$ǜ�ҧ����S�lgI�K��c�/���|̹�~��>2��FU4��0u������Ͼ/g�u��[��G.��{�Φ������O���]y�Se_b{́[�E/;@�\���?K�}�8��+�K=ƾ�4
�>m�s_����{.z�}�����~}����yƸn����������z������ۜ� ��y�:(\�I��
�����{}�^��[��:K֪W�$�m����F���fm��{?|�Dg`��P�3��í���~��t�yG*/��l�O��׿D���A� �S����N[��o��^�<}���E�z���+�/J{6)3P5F��x��=z�S���_}��E���?x�k�ϸ���,�)�{�����/�s~�N��L��}3����Dz�8�^����t�}����t�ߜ<>�
�9quBZ�tx~+��g�}��i�x�1��Cً�DQ�^��\f���rv8I���V�����[^��G]�uJ�_~����?n��g�����6�reK��ӥ�b�8��q7=��Ӿ�$���.o�&�����[)�/�ZV��ҍ7��F��:~������g��Pb8~ľ�nX��?>����e����߼{I�|�z��O^��߽�����2?Ak/���2�w�����S�w���0}ݹ�ϼ�n��De�:�������;��(a%[+d�q����-B�3�2IH!Q���Ν��& �c���r�+�ZM������/�����8%qw�fptt�O8z�S�uճ��Ot׵�չZD.Ɯ�3>�R�1+燡�#�����1���7b�&�p6�Ŗ(	Y+��=(�8�M������=�
���B�2�nK��|�l/�ݟ�&�k�%�xeۡ�f'����HS]1]�=�r��*�;NRK��d�j��M�?�;]��R�޲�R8�5B��ʚMj��V���'9/q�2�v�`=�T���A�����f����bp+lg_7���	Wg�\^M�̢9&��{���5,��60�5fE���������Lv9�R������Q3|��xH�^1�b�M��JW00��Փ�0I��`�!!(IGT�E!�v����_΀�f9��Wޥ�4}TդO�Ø�������z�dN��3))��c6���k#`
SYnE��YN[!@�hl�c��-�vR���֔,+
90PQF�s����g��
����m��bY�j��8�{�
9P�����q\�y+�\�) 8�
4����X*	WH���wj	ì�!�������!+�Wg�6%C�L1+�W�b!+3k~Hȍ�i�����Z���I�f��
�<jr;�z?|�}_�/��i9۳U%�L�����
���2!�ϸ�yO�l�,G�`៱�QS���H�����7�7�8r���.vr
ޱx�`�ank�3С���
iP��x��Θ�F��'��5IFM��Ƭ��m1�b�� ��r�B����'d^M-~\R<v�q�@[�bs� 컁eټ�Q���a�&UM� c{�y�on0��%[��(��b0���&�ڠ4R]YЌ7>��eְ1k&�I���$����q�m�uG�F�Ë�������n���K9D�:9�Ԁ]�z
�h�%`8�0^a�# G�>��o�2���v�ˆ�3�*��M���!�G��[C �#��4y�Mf���[�wj�+�K�,�d���0��A�Z(���T��H7	�c��`�a��I�]��H�.�1W����ݕ
�ܮqيH��(�R�-L���W�
7�s�yњ|�h%D������-��w���J�=�f��M����|-'h�Y��OUW|Gش5Ț�u�H�l=�%i
�Oٟ=�N����}%��VB�pt
�+�[�Ɔ$��S=�)oR��_��ųN��*�.GH%g �5�=��s��cd
q%�4i\]p�X������̎X�Lj`o�]VE-0�{X-uʶot8�ŵ�Vƙ�BʪⲰ8�jH:�ޮC�*��� Jy�^~X"sGHֻ�2�`��pOƘo�M��+�$�<
�AL�)�'L�:�ͭ�x�,�(�O&0�[c����S�!�E�p�_�4��Z3N��&�g��e�q�5�j0��s�W��
1����CaTB?�$��c�^0�g���勞�׷����?��~�Uȍ_�Yn9!��0p�@��g����\z�>G��hO[n����y<]p�y�p}��I@;�Y��=Y��{�2��7�M�������w��kݲu����?�����N@����	8����E��	r_j��G���'��=�k�7[x\���7/&i\y�mt�M�1;���\|�z����=�b-m�3�t�_ٸ���lџ��
���?��������z�N��#��3��O��k;9ۘ�X�}bC�Io�����c�9�N?�����t��N�FA,���`��N���s?s2=�‡M�����W���{�R���e/�Ue���7�M�ޫD%�����~�ޟ^I�-���]����M�?��iO=k����7��Wn�ō��vF�x�}��D�Xܕ&�+.�����&��.���ZC�z�@���@?��?&�}�B˧�e��O����
 �|�1MrlS��#�a�6�J��[W�k^�M�t�|��x�8w���������q�>�>Ӕ�{�-�$��=�^w�r�5�[~�2��=�j�B�ĵ��-۸!>���H/~�7��Z|���um��@O�?�����Oy�Z���_|$=�_�7����K�͟30(��)�ǟF���!;Ƒ6	LOƕt��'�`���7*�-h��摭D�Y����
���)$.����O�����^����_:��?�zz�k>K��1��B�;��/H�3O={\�Ξ<�W����_��n��ddHT'K��"�ŠZ:�����p�Y��7 GOAm�M��GS��̸���Ū�&�D�Fj��&�ɯ��C��	g+eђ��Hk�b��t�d/���>M~�<
�a����SM��mD�����)���ΰj7i
�r��'p=WW1?��(�O$�	(>�
Qr^�ý$4/4�@��5p���RYZւ��L㊽�C{�U2sAN��r���ۿÙ	Ͳh��eœ��M�o��Ϟy�h:�Z@>�2�L>���5�ljW��1[�&��L��Ԯ2+�q�N�?�,���*���]$8���V�+�0%w�㫦E����\We��\7%�g�̽�5K5�����#�ҥ�~����u4KW�'&~�-��������8��C��$�)Q<��h���%���l��MRu����Y���nge��!�Nƕ�=�g�w���<�Kd�%�%��4uV�8d��j�)�~���<J����6����\�|s~�����2W�qr%�r�/
!r�����3�Ì�qЃ�����ˇ�a���$A�R_Y?{�R�}�C�로�m0��&!�*z��O����R)JåI�ژ[�o�_��2Td�&(t�m�zA�M�}֌�܃��ֽ�����d�h�@Mo���V>b�BH��|a��������ܞm�]��;���)��
��!L'��A�`ҝr
��a�ÿت�%����J��W6��}�J��`[�W����B%��E�mҐ�JB�	�`Xr;S
��'j���I�RN���0�*_Ơ��	�XY�t$�]��-���q3`�l���ǻ�~{���}��Oa֨5�D���ݷ��M��Z�������\.�K�1>q�
OZ�.EX��Rk����;[c^�\G���ex�4v�Ƽ�W��o���4k}�R@�m-�!7�0O�ȀB纑�k3^l�,ڹz�7�z�N�=~t�[����c������ڹk�u�1��a3��U�����5`%�a�
��2��^��P~�26�찍@u���L�m�LP��$�.fc:d~�{�j"WyR™",~u[n�8�do�9 ����c��c_{�Y��0���M��H��p�hh�����s�A��a��x'W����O3_WՌ��W|(=
g+�y�Κj��?��r�18Ԓ��{?��P,��!��`+!m�$mg�dv|P�43O�^����Y>��qsO�f�X
m��J�xg���j&��9g`k;h�

W$1'ؓ8�@��&�EqR�E�ht`ʵ-M,�R.h}.�����2=�gF���7?�tzs���y�囸�>K�_�-{~���
��c����}Ce_�o�ٌc7���2�%|pϐٽ��������z�B�ay'<���?9o��b��C�~��[	r=�A���G�?y�m��v+5w��}���'6T<d��7ћ~�tO~q�ᗟ؊si]z����Ͽ����o�G��}���ٞ6��X�9�ϋCI�R����`��az�Kz�g�3�������ȶۦ�_r�=-/}���o��$:a�8:|xj��R�vp�?o￙��]�;&�ퟮ���ԁ'���_t�Q?���/>��t�է���&��^�'<Mz��}���ԇޣ�)ϼ��t���u��*���P��/rK��V�>��
��$��o ^�y�T�I?�vQ|=|��5W�߽���Fwb��5�-�g��������
z�ۈ�w
%��ڸ���>@O|�׾�W��'���~X����@���Ct��݇~�i_�����t%���:&Uz�[�o�����{�O��Q���'�&ҁ��r�t�����s���n�=���k��gR�X-czs��’���%��X֩�|������@�\�=ש���調ؗ�0=l���}!���h/�,;$D�˭6�*
��O����Z�,f��T���A��/3s�b5��4t��a�8��K�J�^�4�v|&��.w��*>�K� TL��ES#�K�I���Ou��v6l�Ԭ
�L���J���M'}�����.l�Y�b��R�����ƹZ�z
eka�㙨}�ۗى�k�ԋ��7��N,;�	��ڙJch��8��s9,���9���Tl[�&�{+�7�g�j+�#�C	��.�d��M= ı2����!��UDB���$�^����Fi<۷ 4��lKC̩[@��
A���	/V�V�	�j�m��XW����3�'�\�C��]�ĈB�
B�">Z0Y�'�L��f/����
?�-�6��I�N�'Ͻ�݈�cB��y�1�}%�a{�4�b ��V/>�A=�w�m��C��?G12�	� �
�eV3!N.'Lt�*І��ZP�G5Q@��3�6��ՄK��f���4瓥����E�¶3��{Q�j˘��l։M���k�����z�Y�"Ԛk���p�{��J*��f~�|�&����Ra�x����k�Q	��eM��&^P++U�<��sZvra�l.�/��R��
���0Ȝgg�-���ry�434��;���87����J�M��EsQ�j��}�!���T�N��=�@���d�@\��9�wl���:%3�	�Lq��ł-�Ҫ��(
���w6`�¬�E��bI��ބ?"���=�߅�
k���;�$��&���b�ѐM�R�/� O�4w��Z#�usژ���Y��
�6�����h���[�L�>>�:��
:�:��—�FKm��t�z�_^��qʬwD���Z[,�9ˆT��4\f1nl��Ef7��z1��j>k�;�'��,��h>�l5��6I�?v0���T$�*�t�j�
M�z�����I�6n���|�D7�"a�Beܨ[WE�ҩ:(��w�G���8f��TW�7e������ӊ(6i���,��a/� q(�FG�����&��0��@,J�j�N�ġQ�:��Ge��8d��^�eٝ-�3I�W��X���">�^V���p/�HA��깧���*�|��ò�6:XĔՀ��ŸHǶE�n3�i$���Y�(6a1�bg5	�.B@���^��Ia%�G蠠�XØt���-R}R�C��B/Z�r=nV:��uc`Й�$�xR���͹XYV�"���ԡ�An<9�f�f��9��-���q���z��w.Kur�{�&��O1���U1�G�A$�	���6H`�s�Ņ��#�]׆AcB�� 0���)+n�ʾ�&�/��r������߱Ѩ������8bT&g:�z|'��l��CIBg���>t�ǿ�sa!��V[��5%���9�U�!��2�YV���+�5$���y
�Jj���ws�	rá���Xy�6Q�X�]�տbk�S�����Y�7���0�6�@�Od��!�R��s��K��ݓ��<��+���������s���Jn���~?�zۻ6駞�
7�:>7]��N/i����k����^���i��[�x� HC^�|�ɡ�b0�
�ܢMw�d҈UUt��i�1I�r7�Yؠ�����޹�e�(3�ʮ���z=����[~�0��x]�E;����]'
�u���J�(�p?z��[>vv�@�¬����ms���gǢ)�DMh��~4��o�L��4XŎ��jp��%}�&!�	�{�����{��<���x��o��$�|�κD'
g�����2���n�[n�ܧ}��g���1_Sb����Vo�&�
�R@v�?�~��џ�ׯ~�@�^�}0��3��ۯ= 5v�$��:c.�	ibR���AHe����rS[k6&p�Dz�g�Lס:+-ƚ�5��7o����c\���=��|��+���/NE
�s8�I�c�Y�u(��&��s����y
Vv��}�wB<����PNz\��W���/U�靝?�F��g�P��{�Uu.�h=�>W����L�s�Զ�v����Qz�$�v�W���s���2��vFc��ׁ>`�r��^�y䝀XB���r�Ƒ*�-�w�7�/�����|d�B[jq���00@2�I�=��6��C�xh�nF%��][�N�ڷ��X�'h}������
�m���f�3�8ŏ�q������=f��)�>`fg,�V4>*hp�C���!t�1����`s��/�1�Z�^l?�
�& ߮�⫣NДc�'9����|��Zs�8���(�V·=�x'K�%V1��El��52q���d���&Ev���힪�d�K�w��	̌G��ӳ��a�٦����n���@@I�86g6�z�S�ߝ��6b��i�^^�
r*��FT�f&�5��i�0���/b�
��^�'S����i�(
�>
�$�	�W�AΖ���\�t6��lGe?� y��ҍ�g##/��i�|��ޓd�I�}>P�c3�a>����ͩ�����Z�m��1�mr���o[��͢U��j���%��Ω�_���].ǽh�u�kL$�u�ɾ�u���aF9�Iび���9FT�Z+�6)�L㿣�L-��ޞ����@[T@�89�,̞c���5��#�8�7K��>F�������xݸooc�ұ��{#�ozn�Y���W��''&6P4��U�՞�
�=3��U'�$�v�g/X�z'���h�-��:�K�<V����6f�9p�	���z�v?e�����y���Z^�5��m(�Cm	]=q�LTK�l�Tfo2i���#5��W����vc�;-��x8��j�gS�yK�jǓ����^�Y��G@�M*����5#���yM�x�Zn�Z�cf��d��`�X�
!���\Hig�~�+Q�J�Wor�s�k�ml��!�IP44`m�F*3�dp���H��J(�W"Ҽ]Щ�P�6Zs�
!OE
e~�"�6F�%f9�j�m�D�҅`�jv��9����	^�%�|�/���(2SB�M?�#ɦ�������a!>t��aujܯ
$x]2��B�HW���Bu��k �L:����V[�BA���Byrl�,�C@`��f�y���1���_C��-l��&%l
��F�j6J=�@�u�S��Y��}7k��WL�Tƥ��橗�)/�Ye��$�;T�nWl�Rd�|�3����P����@p����!���nu�l���)��X	e�q�e,���^Y\YF��,�e�r�;tYjݺ��Wɿ�[��ٞM,��Ό`�j��
��|X��V�&!��%�j�5��IZ�U�,���&��;�J�E�������
z�k@�!`L�yTi�(p��bVa��N�6Ԣm����m�@;�l��W���T|]��ղ/Js@�:���*:�3|���LJ��u�9Kf9��;_w=�G_t�W��}��-���Z��}�qթ�'�E��oх���k�f�����7��X�nlv|ι{t��U�����A�Τ�L+H�w�N���uo��Wnus_W]s�6�	���m?q�����>K���=�_�g��U׳���[��kϻ�^����g�v�A+|	�v�2�(���;��Zm+��>(���[�7N-��z$�����K���LOy�C���^Ay�&m����A�����_����Z������j�@}�D,ޗw�smq�է��_v)��E�M��潕3�w�g=4i��5�1����d4i���ޫ��k�vV�o�O��[��W��[�&�jN(�\�-�μ�{��
i[7<��D�L�u�^L�<���ɚ������£�MEC�̬�9‚��gJ(#;�f�u�ɤ�����M�/�)Ǘ��6�����rv��#l!s��X�:o�����/4�?q�l[vU�͹���{�Sԭ_�> �0`Iv9v�؎��"	�!8.�!	�S��!��-�8��(CU8�;}H��~�RKH-�Z����{��k��9�k�}�}�O����_���s�^{�9��5tZލ�)x
VY��e-wW��(�^��9�v�PH��$��32�T�5U�F��3�5ĩ��$�߀��9E�39*1�mJ�їۏ���R�7Wۗ��!
�` w��\�:P�nK�k
��tv�95%���:��Ƴ����"��
7?�o�Z�0Uk�Q�jF�cc���R�՜͊Fp#�U���^��0�V��\ڠ*���ƚ�B�ƈ{Q����[�7�����u�XoqK��D�����bZ�45w�l��-�ȼvY�k|2t���ss���k�)�%UE�D����o�bi���lRN��$u�\t/(P\h�Å�.�c���V=]
�z����Lф����d2�j)��l0VB��ҠN$����8l2k8pV ]-�'���Ċ�	1x�MU�h���~�f�Î%yv��?'%}f4��`b�_)f�37
t)��9�PY�>������-弪�C�{�d�[$Á���3\�XݮYO������Wy{dC��:	�<>������5�5L��k��\�SR�۫�ȅ�����/�������
Y�h��h�'�}_mɗ��á�w�U8U:��E�ʠ���?
�_ͷ.��
�4pgPy��f��R�����9=�A7e� �0�TuCX�5
�P4��?�*od��r�B5�J7|xI{�@�~�+��� 
+躑�eP{��`d&���6X�,Hӑ���V�j�j���h1��,���3�U�L�&�8����O�}u��1���ό�
����˝���C�������z(m1)b�m�֜�h��!Q����[5�llEڑ�/�a�8;t����L��W�b��=0y��wʫg&\�h6S.�š�R�ހ�PUK����7��%Zah,$t���3�庍���QmXB=�ɶqY��m������˅��`��,�d�i5pj�h��X5x{G���S؇�X
3���&�j�P����F�w=�ι�#55��#lg�h��1�Г�8**k��[+��p�A��X�\b�5�L��|�2�LܼFo	�6$�Z�Hƺ`���e���xp����C2�ϓ��T � ���M�E��Qղ�,�2œ\���
*���i�Ŭ{�@n�1�+"nd-ʧl�Y���בc����Z-��'�I
`�&F�^ɇR�	j�*�u/G��F1�ȴ��+����b5�����
��P;�ҟl����&"����hd��n4������¨�2|�$���_��w~������m�8��>E�ڝ���g%/��o>�/���oy����K�{�~��0f_-�-hpU��G۾�%�D��C_�����x��������WBgk̠b���j�O��?�!�+~�]���n��5�r���T@m�����+tϕ�_�y���%����[>@�|���\��?vuZ ������G�������oz���/��ў�l��^���{{�Fl��O�u�6d�!���z�$�B��/����ߦ��=�r�~�e�����V��W���rKM��_�����������c}N?��X!���<,�m���'��o��}��?���[��]�މ��d!�����
�W6UR��+�"=�I��ıh��;ݸ���j\��|�)}��#�����������W��
V�z�?7��>��p�E������N��u��h�n�e��y���
�{��5
�匼7�&��0f�����/Be��H/�Aj�ì�j)f�v�єv���th��"�P�k�l��i$��+����~*ۄ�s}����H)�$t�����w��~�,�q���Ku�V��I@Β��4�꘠d��[��ĶM���H'���g����j��3A���1����}��/浜�~�/j�"ʞ\-��Վ�Ϭg��Ԫ���@[O�J�1��4�±�{��sXl}�d���*� =UpR�����Ş+�&��~�,���zv���=NA�lVv������YJ�^"�s�b�h��:V[*nf�� #�8"�154wS{Lu
%��粹}�a�jXf@����V�2�\[���ۮ�.�s�I�ba#�U�Po�d����s�V��g"&�Ɣ=l=��	8�phÓ��CA�l�Bc��^�=G�3��������P�ч������	�`�r�R��q"#��H��>�
t��8�b8U�����v5r=��Kpu<UL5�2�U�f�4��W��'�ם� W�5�H�rҨ_(u\���d_uŬ�=��WQS�L3fS�)�ʂQ��J�
��z�g�P�'�ˍ
��<�0"�Q��h�W��;��q#�Y�aY/B�n�A��z�9��
�d�2�
��m�q�lI��idM��{Y�u����N$�P��j��Z�v)�h�Q��3�����|	�� 7&�y\��@��Bo�cgٌΗ�w~~�^Tl��� ~[]�,�M�|�X�["��%���2��>�����
^��������c{ygS�F,��K��E�z#o^b��
�z,��[S��X�s��͇:�\7��QZ�Ѭ{�c�uI�g�.�~��C]46L��waD�C�Skج�h�F�<$x
��u�C�=l����tD_o��ȱh%V��JB袅�z��F`�f`
:S5��	rfۮ�l�L�T��iK�<ܛ�������^����M*]��}�R�Y�dv��:�$�,W�x+F�M:G0�������m/[Q4�����:�u2���X@�e
��tk��(r��[p��g}P�`�H�c��փ���]��G�ha/ �.(�E�;6QЉ�Y��"k�U}��6@ߓ��h,R+���=�[9H� Sɬ��RVo��}�.��^��$^�Rpp

�k�g,�1_�P��瓂�f.u
-�ӝH�<Cu(&a�S�M_��9�o����n�E�h�J*^8�f!� j�Ap:�`�S[�n��ʦ�FDl`�n
l�?b�Ц ;&C�/*���A�|h�g�6p���:8a�a�\�F{����
xŠuם�K���I~&�f�̇�ɹ�����,_[��s�nU�Q�
K������j�E��F��l%j�sS'��r�r�L�`�B�]��v���Dŀ灏B�n���|�U�q��_�ۃK��r]�8���!��a�f��M0?���	�N���~����'����t�2ܼ�~�����.����[�;�(_��
ݷVj��Aݪ%�r=�L7�_�R���Tzͫ����@�Ջ>���_���O��2�=�,��U�]j�
��o��w�>���o�������/}{(�J�ݘuϑ�U�8���(�r0V��2��x"}��{�=����>��c�w���D�Tm�8�*��c�E]iG?�w��o~;}�w<�q�����?|����ラ�W��-���_�d���M?�xp\��w~������<�@�
��*p�S@�H���^;
�H��Ei|�kӢodp3��94Vt��]�~"}��K�}wF>�������c��4��cc�Z�a���gӁ����^�я����e��_}���O�w���> X�ωd�,�yA��q�u����{��;�������=�q_��x��+?H�k�,5ղx�&������7X?_��N�d��<(#O���d����2���J����ĎI���9�QLe��������=�Z�{˵z�-����?�V���N��)AX�!Mf{pX~?ap*�̰�Lz��cѬK̖�m����e�Q�
����n�7�^"T�/!N&�5Ba���=jey(�~�-���lr}�&푥.K�Q=��r�Xa N�<"Ĭ2��L6,\�ϛ��Nw
��Li ��Կs�Gp�//"��2h(Q�wNr��<�Iw����.ik3�6\��ߵ>ȼ�5�YCX���Š��l�g�
k'�ɵV7e��*X����Yl��Ty2B�@�b���gR�]E�2�~H�N�k�F%3�[���;�[��ЬZԪClpL4��9#d�����%ڕ�4^����9���d6� �IA?������w������5�
\f� OX�G���p�MՑ���|��%�4�5�ҿ�ɈJBs���W��A��=��xQ�+������9�
�PK�G�I�\]t��C	c/�z�Pj�����S�-6t&s���J�����k`u���y4*.'縉��N�3���ŝL��V��>(�i[���L��Wڠ�S�֓ܠs��]�|��F�k6���3�*֧�tm�9Jb�|�Q�x���[���(���{.X����:0�~�3RS��^;F�sKQVOT����V�r�drEf�[[�����)�k/���/^~�|�z���mƍzۋ�ɲ�LW6�k�ȟ��*6:e��J|�(uCX��e͜���Sqo_}�$GDm��w���qr�{�߲�6�1��|��neIn�a>*ި��|f�72�hy6�`^��
�	�/�/�"%�Oi5�j�Ջ����~�<j�7�<Et%�JF��`
���蜞{|I>�^~�|nW�А�Q�7��n�ۥ7>Y�b�%���u��7�!�L2ܲ�+�	�c��B~.U4�	e�	(�`�F�T�y2���9��8;�6�E���H�v���jؤ���O^aᎌ��)�t�P[I~ϱ����8�se�p�����<h݊�2��&.���3|�B��4�P�O�s��/#}�E�D�r4ʵ���*si�;���d�Ƃ�8�ܧ�F�T�Y�G{i�N��M�J7�0�Ól��k���D��`�m�S9^ik�j^�i��P�k�ƭ̑��@�!4���VW6ϐ�{���M�~��|톀 LH*�5zc?#�ce<
8t�׈�*�xj����S|��D3�=8'
�J�0�������<0e������7������T9㐻��c��7���D~�CV��i�5ȩ��Y�z6����Q�rXM�'k"B��a���R�$��s��;���]93���m�{�!��!l�̦�{���}ve�6�N>�ƁP̟�:*�:�F|贀�v*�I(k��jdݞ[���Tj��U{�?���,��6��@�����*��<ȫ�������O�+������%��zL����(�e)Y�@��z,F�}�"�lP=l.�>�L���ZR`��6�*�0�~��RW��y��UK��|��*{`�+*�1�<л��O�������}Ľ����&o�/��\k�"K���
@�l�Wo�Ww�/����W��Y�]m�3��m	ۋ����#���E���o��~�3Y���������s�v��J/u�d��ۅ��?�$��(�x+}����k����+�&��G�w���KI0]��`��㸉M
u_��ʧ�_��e?������]����:@��!��r�w�T���\��.EI�o�4�G_�Qz��y��|�[>H?��o�G��ڠ/�sg�EZ׈V�0���B�^����A����q���џz'����_��T�;`z���|tޡ�~�5O�o|���;��;?�%��e������_��g�	5Z{�<i�M�����l�h� �X�T���a��e�J��z"����W�ŷҷ|�3w�V����Az�uWi;ܭ^��;����Qji`��{�۾�w�{���蹟�%{�����_�ї�q�C��X��圛mX�\��k+����_�v���x���x|,�~쟾�~�g=ix��g��*5��Yܥ���|3֨0�sc�x�v0�ۆ��Rl��(�U!��2�*Am"��ƻ���W�7W���g��/_�~����4?|�!-c�
���=ar�*�k Sj%6�,b%K�(`#SJ�#�\���k(-�L����lB��5vφ��J���;��YT�l@��1�v�ZH2��ƪ���S���)�9z꩝�༱@̭e"(qC�;�Y�Pq��R[�ƠMn�T�5�Y����{���\:	X#�s�oP�L����ݮ���B�Q�@L�T�%#.�>HL���1R�,҇$����̂i��kv�O���g(���1~�~W��hkL�\�v�p j_S��w�U	�&��V�-Q�aa�*7@֮�/^SIm�����.���\��J�Ĺ�NZn��!����d`��j��T]`�LPk�yT�h�Y߳dS�[����������W�P�sU�Y��W�X�U���E��Z\{*֨�nESZ��a{]*�S�{G07���Cljm�a�b�ۛ��#��;(A-��͝uM@���Nu��*Y�kRKr
7ߔ°S��t��m�4�*�&��1�0��{�W��P��"֔Ts8��������f�`��b��
È\��A�
���n9c��,jũBֵ��%>����s���}.]����],#����O��ZԺ�n��3^w����3���Ys6.��\�
�<��P���!s�j#��,~�X���y�{	fq�6�f�����y0����N�gʰ�#��T�7{ˀ�F%CƊ{�PbG�2�3]~l�#s��c*�q��Y��_ιI��9��!"\Y֤�F��6 Sg����d��
�_6(��J���s�f'�]�
{�L=K��ͳI�	<���i �ko�msj`�2G�?����ɡ
pV�η���,WxxX>H��=�;�0�r�,��C=�(���7[d��'�3>O�U*���J)�i����&���Щc�3J}�
5�����c
Q�-���}�Z#�4(r�ĸ� ƁH5[!V�)�^tM�z�l�O>�w��ZtA��\��]�<3�ׁV1?��|�`Zh Wdxjf���6g�:���`_�B8X7�r1Cj�52<ܾi*�xz.6bv?_?��FX���(`�
�M��|���@J�j��)�!��I0�Pn��jb��=Z�E��<s�{�-�4�T�$�X���c�n7��/t+V�w�i��E�\+k�LȰ-�
��
{������n-S6��a6e�^��!�@}v7_x6 �7�G��?�P��z��?�P�*o0��:w"�pg��G��x	�)9V�������1���n����ֶ�h �`0X����ӛTy�"��R�H�g�t����	UY�-���e����ѵ`��Y�KC� ��!i�fja��31�}�&3��:�6���ι��\�0�f��1m����Mo��
�	��W=L��
�@�L˚�;bK�������7���ӗ���}�]�������_��ӫ6��ȓ�B�j��X��+�F�FA��~��g�/��O���/��B_������>�a�+_���k�W��j�Or�W�m��~vDoZF�۝xNύw=���k���o|�^��Ϻ�-��'�!��Wn��_ס�rG���1�e�c��{�~�kwЯ���_җ}%����nP�7�~�'����'ѕ퓗}a�g̜�Z��W5�(����^�ߞ��_�V�O�����/���
���}��W\����qN�f'��{}�|y�X��J�K?����_���o|�m
��/<Ho���{�K�3�5;

�3�q}�پ&�tuB1�0CU���D���р6 s۰������5�g�`Y?_qJ_�8���{��/^��yC�h�N�X�yCS#{��]	.p/}��z�^�����g6��g����?u�����ލ�����y�r(WxB?�e��{�^{"�����_���}��|�~v�����O���",�$�y��3oo�	ý�c�k�@*1|F�f�쎡n�yʽ
��ߵ��/��?���׼�������/����+����Co�Ж��n4 ���yi5�}p\��Rj�⶛�EBQ���u:pwFou{e���D�"�݃����y��M�7=�XI/�y+�v/� ���A���]���T�Ts�4�@��]On#l���$6>2!<���\
���+��,xlsK~=��[n��Z�����v<�י*���yʰ�t��>�����9\�thN\��[�uD�V7w�	��z�U͝�'V�@����r�],'��͗��01�Cl�lj�=K�\ٶ���S���d�Q1�!�k�H����>@�@�q��M�C>BAV��B-��;�,�j�
�_�

j�L�f;+?#p�|6ȱ?K�ɤ���S�2v��}]S�ŕ�=���9�Ĵ�E)����RީP;#G�a�V��ۙ�j��Lޠe�-�r;Hbly!�傺>!������D�yǨX����QXA��\e��n�]0$ѽH����r��g`�B\�3m��<�E�%�Z�Ŭ��Z:h�i�QåU���yMᢃ�np�CF�ܔ�o:�l�����<��X+�k���U�1�%R���;��,��L�Ԍ���66�g.u���WZ_!+����!	7�*�B�?[ϐ`��������9Wնc��#��f�~+m���U��+QױC�9���?��r9��V����ˇ��.���
���t�SYɳy����f�9k^�y����M`s�d�LdAn?�SQZe���IS7����k��>�f�
�C;�ӯ�2(�Ք�C���!�p@���{�M� �*SI5`���?gZ�p`�ق���mFҵ����8��b�܂�.M\b|��Lf�UU:�n�S2K(;D.��lxD���;�^��1*]n
�q��\S�GS��@mml�
q����a�
����*�2����hvWzO]nh���l�!X�T�v�-LM�r,K����ΐ��Ơ��`���N|�vq�{��7�E�oao�w}�{���ƾ]�	$��2��(�<��,�	�UFA$)C0������EX��fc��J�k[�$#©5��
O���oT&��0�9�m�>��+G����Nns�-�t�/��k��͌��R%�3�kS
ؔ{����I�*7X��ܰM֫���ʜ�=F�oc��Ga�|ϥ�:�C8<��!���.;Vo�ъg1e��ΩTA-@�a��I#�
}�f��Ʊ�l��`�a0�L#_D�3��X
��MPv��D�bܜr��E+Lq_[�|�"�=�F�
7�1b�@���[eʲ?(���
1����`H7/���gb��j���mrkw����!z�}6d6���@��B\���d�}��͹��:�K�\����+tg��C�}���Ϟk��{,��"�9Y�5{��^��rUF���ɞ�a�i��,�_�i?>M�?8�/y�H����r�Z��=0�o�qO��SzB��<��%�R��a3�u|��OQ4�L���紻���҆���Gz�}���?�R �}}�����-��o^��t�;��;yݓd�����to��!�ݔ��c�vdO?���}���%/��S���a���
"	����<��Ǜ'zϻ'z�t��ϰ��Adϛ����0�
G<�:��;F��������{L`�K��o���M����	�0���B������X�����?߹���{z�w��I�cU�z�%���Hȳ,�L�<l���3pO�=��K�*(nق}F������&��`C�}��zO�����~$���4�[�@��]΀w�9�
��6ӕ��|�#4K��̮�J��T҅r���%��{��Ҏ��������ן��w��k������J7�|�A�u;�B�p��˅�a
6@��<�}@�˶�E��,�9����c����Bt�����A��~��'��y��vf��o.Ut���tr�IZAy]���H�ƹ�t:k���ܧ^y¼�M��Vr�g�R�۫��y���n��Nev-/������z��O�)	u�-���YC7�g���N�η��mo<�'��ʉ
�o�3�f]k���:�A�8=���0k_���#����`K�KOV����w�����ܠ�ן��N�y��z�37j��C�@�}�����ްl�I>�|�<|�T��v9X�>ç�>D_����;����������:�7�n�{˽T�C�g�ܑ�!,'�'(>9���¬���Z9��ۀ��C�]��Oݭu��ӟpe�߫��Zoʒ�p=�<�t�'�Z����Y;~by��){U�D�*@؜bE�<�s�a�Xtc���'�'�ynK_�%W��d�����}�@�|�Mzï?BWy
�=4��ji�ko:
6���V_�_j'y��5
�r%X�=� �.�t?��/���`����aw��=8A��u�ZAj����{��ۥG�$c�g�H����cT����#�����je�/�L�ye�_��4�i�{�MLV���nAx3e�Y��[�AClD�cF���&��I)�~;�S�|����J�� �Yh�I���i�J
�B�]e��F*{يUs�}Y1bh�j�1(�#��ؘ�3f�w��ACh��b;�l$�a��{y/(�����5*>��a�N<��P�W��k�o�_2��3�C��o-q��b�9f(�H��ߑ��ь�|�b�m��	�QR��[� �"5���0����F���ON��?�A�y���l�Hj5�Ƚ�e��.O�lX${��!C{k��1�S��N��΃����m�K�$�Y��ާ���+�R�JS�X�<Ǫ&�:Y��P�l�@�\~��Q�O�
̹���GsdG�w�oA��. /�|V�3!K��v�.��G��?�f�أ֯��r����c��{_�;��x�ŊKB���t�?[���	�˙�۪jB��A��U�2ҳ.�^�
��}�DҼ�n���`'b��vd���*r2�3�N�f�
d=g��ժ�����I���,��X�#2y���Y�A���Ѱ���Y����;g�'4��U�b�U��\��E0a�$`9#P{RB�6�������R�>?���=���Q�H7��'��ai$T� �n�Vρ;���%�s�d��"˴.��^��h2���p���Lm2{�9M��|�-��:)�5�5濧�-X{�Y�� I�.
�B���%W�\�>+�!��mp11
ɴ�.�����"V5�y��vkӆk[�
O�A��
�]E����Nj��M��
�K�X���r��5١W��Ү
�䑛�(`��0��]�̃�ˌ(�L�HJV���c)fr
�U��1_��-�U(�q�3ꆠ�mۓX%�����+���C�CWtr�B��S̜ ^�e(���Bn�9��yN̓��C��c�i#��y)��,"�HC
����!�ߺ��)��?���O�A ����p)���F��֍;��e�,�<D���\��{���{ɺI���	}���X}�mr��Tk8�3Z�eC%�O�zP�4��ʕ��-x9lV��"��x�HP^���B��kx�Z��)ʕ��8>l������'�^�0�U��h�6�T�|p�W�`�Z�u��y��f��\v����>dYl��"Z���]XP�ɽ2��`Y	�rh���)\��dMŰ�:�-vu ���	g�?-���l�{B16c�x��� ��H]ގ��;+�U�q���Y�4�ښ�}�
��")w���_WUuS���pK^����5�<�@�6�{]�ٔ��8>����҇�v�%u=��sj9#��uV�M��L9-�C;C}6J�����62�������TV�n�wr��XU7�t��<��>�d~���笠���k>Ϩ�Zn
'��ܼ�T5���-	*�א/xarS�tQ��vm����j�(C)�� ��p7]Y>�6qɤ��&�֐�J9�tW�g^�t�.X�U4/C�rn��	�@��Kp�Y�d��RT�?��qG����=�ϪgE�{�ofn����0�'Ⱦ�.�ߝ�%~��>���c^�7�S��랟�@YM�g}�|��ӧ��=����w�#�rn�՝�j�&�r?�7R\�\at˖�_���P*�V�šW��ƫw>�>A7��Z����H�'�>_����Y�ȋ��ay/'W��71 ��'D�g�i��Њpr,��.6�+�v���h�s�`�Ԍy�q�ʚ��rvҠ�U핻A��^�Wr�猵/υxo�ɲ�W� �]�����DW@bQB�U�Y\��1���ɪ4`�������`����:�k`��gأt�!��1t��I�(Hùt6U����m����J�WtX������܂H���!���

�� >�BֈZkD������0����C��}��.zN��r�Q�������m������1��ww����FGU�h�]9}����(�M�Hg+�Z@�e�ɀ!�r�n�]^�?g�-OG��_���i�����|Z��-�;>I�[:�F>QP�:j+K��q��[(	�u�%�AAm�dM��^�WiI�h{�?ƥ(�����L@gX�-kX��b�;�g�\SN�+�)�bmVm�f�ޛ�Y�5��Z.ڊ?������Ǘ��ñ�|��n�F�+���W9K ���ͧ�堗�k��t��#jMk��X�`�=k���T0C��^P0��ڿ�"���X��\S�#�bf�O��{���zyX%֧q*B�(1�!n����(���ab�*�ݯ{�Ei�7���S�{o}���3_���A�2��:��������Vavu��fXrd�U�j�+�;8�pn�gFf��3���3�*$Z���8i���	���x�OC����h��R_��Lj��,�.!O𚀬���癢癜�N�qn����=H���*~�]Ri�_���Ψ%�Q�@|�,��7�I-�!�K&A�}N}O2�LQ1T�|�'�*�R�	�Z�aY����dVWr������Zt�yY�KJ
*{����쪞�<�g���Z=g�����f�m}��f�i`��Pr ��V���
n��J��6�4�����d�r�ê$\%�F�/Fl�A���JDA�`����pr�(#
F�L������"�&��Q�����j�N0c�Fv�a���"#��)��*�T�n�v؆���2��2�;�'=#��]����H\b�Q��T�_,�G{�Yr`��<7�����
���O!�C�������
l�-(����a%�C��p��� %���Z�#�ieO�^��dY�|vrn��g�z�`P�bv�b{��5�T�iİ]V������$���f#y.W��K�}q9�N;�v>��;��M�:y�Xe�Za�S���X����,�J�f�!@�=�^��p;l��04��+6���J����V�y�!;����
X,�.5���\��M�c�$\�śEA@�g�z�6�M��b���j��̭ �m�"�K�6[��+��7��Hr ⮩az喍gU�]��m����?��Ti�.��&i��ك:!��y�n
��tu쭼C{�X�$���:<�?�@���TZS��P���\�����U�̐)`�C�޹8`DAq-6��ay�2‚T�B�!ebꬠJk�����b��ܨ3�c:�:|��E�>E��]dsk�b�[�^�K�A�ҧ��#��6�%�܃�\�g����܇����t>�g0\]��Rǂ�fg_V�G����
VL͎5�������D/֭��M�!:CFm{�@�A�#e=˾�X-��HVL������u#Hi�p��hs�j�1tvVޜL��j}�Ȩ�����x
U���C3C�����G>(����&�⺟�{Oaz!���G�-��4�YX-�`���9ٰ��o����7����+�Mއ��;![�x��=��)��`�lZ`^�y#&-��z�aM��e�x>[��A�5���Չ�E��th3٢��۪��U����!@�P-��#�b�<a���c�3�l��]R�ʠL�H)��67,�<x�����00�^섲yj�(`��AѧL)�u�h1����
�@�̜�r5����a�p�+hqp�-b�Z�Y-Ԡ25Q�ΒK����F������PXd�HW�E<�ʛ����	�N'���RI��e��ag�[�Q���J�Ӻ�1�·]3�XC�›���������[Q<W�q)
�+�����
�Z�U�
U[I^�b�Z�wѝ�n
6�����k,#�=���M�;��dܫ��a%�v�;ZT���8�����KYL�v�t�^�K��3�;`��
��h�yߔ��!���N����M���jUٵmӲx=����	{���$�喎8֘
�`;7���Й��㺕:E_�}���iKO�g�,�R|n�RI ���f%�*�LT�u��#Po9���s
�=�0���uRvt:<�H_Z�Yh��;Si���g���y��x9#�e����^�83	��2��W��%����{A�h�?�gC���]Q�H��(9%�|�7�)�[s�e˩�wF���gޫ�i�6w�MW�Y�`h ���-�Lj�]@���F�?�ϔ��̹e�$��>�j7��f���!T��0
̪]�yb�RSͼ����*|y��������^�U}Ù�Ij-+u�ϙ��u�����[���z��/�3�U=�}j�#�+�P�nA�W�Bm[��&"��m����[�
|�J�kF�eg�s6�ޛ
����T�Z:�U�cZ۶T�z$aA	���>2�Lm���Ӂ+�Ñ�Pe�)\�Y=�oN^G�f��Q�A�Y��/�d�(V�'�����h.N�#�4P:۾R�(�s��9P�����Ep�
�w�_�UPrD�j��眢�S�=���*��p��$#�X�]}A��]}�=������kG�TZ� c5�3�*kn���9n0Z?���پ�=� ����]	+�u=p�Ք�6KUBVG��l8�[i��a�5S�M+�;L�æu�
L�<(䉪�WD�Cĵ&�Q;�:�՞�eU��K�n��
7|��
��TD�F�.X�;��D�DtVÆ�bXc���h��˝�5�����]�
X<�G|�����ꝯ�D��J}�,��×�V���&��m5/��d5�g�J��:��B@I�4\�d�,2$Ӑs
�^V����F�(V��q��q�Ah� p%o����sc��}:��%̰-r�bе�\�n�\�\m�}�pFh3r+�E-丮{B�W�/6�{($%d�v�|�(7֡$�l؝�0�����bu�kX0�4D\ω4�!c�A��ޔ:Fo�<��[��&��B���5R
���{q�_�	��fT��T%���L�tZ>�qO󽲖6��9t���e;����bcIr�f�cC*�c��r�7���.H6����B�&�+s�N�^���"��U韡~u��?��{2�$`KI+ �}�7��L�\1�r͈����e�<!��a5 �Pw�IcF�W�]g��ts���a%
i��.:h��ۺ>J(�4�|K͋[d�;#7ې6b���
���\`< "Xʡ�_�x��U><�6I����HnQU�G�V����|L�s���tf�5 ,�
�T������Ck���8XU�C���t�l�P|�o2dQ�>��c����a3~/�\�L'�y�2��.*@`�0�t ��C0�T�z7@0��`���{]�P��t���	�TY\&f�ի��������N����k:����ƶqg�
$�'`� �
;�e��@r��^NJ]A���k���N?�
@@0���e'�r�l��?���"�1��K�!K�?�5E��ly.5'c.�ʨ��`�$L�M� �U8Iõq���9n�2C�Q !'
��]^�X���t�$�p��3Sg��	
	��o����}b����c���'��X��`DX�����ljS������̡su��̾��{W���~��I�ѧDh�89���Q��y,�[��Gc�]0;�b�MX>�f��-����&8΍R��(��t�l��^��mO`k��;���g���*й{�Jh�:�%�\��h��<O{�cf0�JMMB�<`����l��Ƞ8������.s�[�G��?�z�D0s�HdX%��3��R�J�}�K�L�r�d;��mb�)J�����(�X3`�@�(}�����M��S�n��/Ց��g��7gY�:
����X6�����U^ڐ��!�*~��4�h��B`��v��@�������2u%=�/���v.G]��V��;Um�`5��|��'C߀`=��L>��N�P����6��	��J�[R�Jn�m���.0wsiS��)Cm�9��P����
���Y�����]��	�9Hh��A�؀D��?����Dnˀ����*�R��Է����˕Q�)��9K��b�R����퍽64�
U��_�6V8����|�ėa����~��~i�Oț�L�y���\��$$Y>�4G"|���� ���+�d�j��A���+���2�]^[B��ԙd��L�`�_����ҷ���*<Q���<����+�aj������!���l͜�lb���ڈ��gJΘ�<�^+����ȏ��Jǘ�Հ��[�@%�c�u��uB_T�^78K�3�uF��’�\�����Fq?}�)j�_T��d5��ѳӲ)x�Q���
�0cG��n2�����J�렝
��dLW!-Ț瑫Mߜ5g`�\	���D�p�l�
�c?����otR�D5۠��w�A͒��z(no0՚��f\GS-�*�L��s{=*JصmqY��
��[��d֧� �~.
��y�/}�T����mY�V���k��zV���ƕ�^G�wnsL����[Oփn���q�O�}m���?����GS�2�[��
� >�b���Qϗ�z)� RCr��]$뙓�u�m��9��Y��(P����exT�(q
P�?� ��R�����b7��u��N�`����<Rkx�?��dS5
c�i�1)��fJdà��0�~W�T�xB��2�"���+�D	X�>��Xqu���z��aC���*�L�z��_�!��rf��K�A��Ԡ��fD.%�)U�hu��aT��c����je��ˋ�aو7�d�0�y��������eV�r,�xl�U�rMr2
��
��$��L=R��W8	!�:	�C��J�rF=��:�V��Yk��:�:�@:VŞ��抭Z�o%@����p�AW1�+H�>���L��˅�>��;ל�sH�^���OQ��	j����x���ܽ�JJͷ�\��V=�Lo�h�S���=M�^��hUf2>�[�J:o=��Mt?�6(O��%�o�n�@J!@�cX��L�EXQ���9]2$Y�Fymּ��6�h�}P�e��<��*�N!�;1�Am�-kN��B��O-��g��@��
�Z�L�
S���PVRt�����8��2š5���2����V'����/��Z*.��o`]�En�Q��6�qh�V���3��V��gg���uZv�x2,�3l5�gl�{��`N�/���d�r8v�jPT,�N4&]��Bh��G6��V��q��bM*7i�4�'�y"�\��J9wy�8�z��NY�;��9R*��:<g$���ܳ�nerV����Xg�E�)�+[��,.
-%4��˱��ֆ.� �ߧҚ nC��p���d䲿�9Of+5�:����\�r)�$#A�3a�ZJ鬄�…{�t�19��Pj)��g5�E�&�6�)��p�04�((K������f��s�5=ʚ��5��^�ў%���]�TZ�3Z~M
�dcP	R��~�N6LW��Y2-�u~�Pe�b-ºco��<�Y�
�mz�M�9@�C���j�:�,7�<^��*3���k�;�0=�>(o���(#F0;R*�{����a��}V/�R���j�`T��r40���,Y_�,��z�R�9�!J*�[��
PD�/Kj8�f=&{ݙ��aXk�m�����,W��`F%�d�ry7�V�%%�1��t������5��/�9�K-��݁3��\�$ݐ>��p�7q��DZ��C�<�i&C����_g��k�SJ��Htg���8��ƠtuaG�5�
c"���ݻ J��ۓP���t�=ۥ�s�x�����v�)��u��|��u��a^��{K7��-��.x�PY3�u�pilp�.C#��(��~}��k�l�J��~pwD��}�/\V�T�љ��,��5qY���b/�hrw#�^�`��U�H��<C��Q���˷�5o�U��$@u��`�7�y��<�K��j�c�ܦ2AI6����
����S��ZX���XLMI�M�a}2�~%�RE��˙s��͆���ܲ?���"b�Y��2��)2�i=71��[��FΔ�GUp��J�0�d���ZW��W>��3��ϙ6AkU0�^<hӉ`!co���|_&y�p&����,A��MкJ{<gaS5%�x����`B8��	{ޚ�8��4\�\m���ϕ�����L �4��s�|�ŖHmg�����Dw:�5�4�[�Q�RjH�{�Pvf
�	��4��XP)xX���~(i���lF��DΆt���sۣ������.��l��X`��>�AB->��;:�F�&�[�n�Y�/y���]���[-
 H���S檬P�e��*��F��C��Q�k�R��t�<���f4M���Ik
ԕ�)aa�~k��b�g#�<a@a�.�T!$&&
�ن�샧���-�iJ6\U�Zgi_�B"3r;�
^���yg�|��g*-4ES�S��!��R�$���ת}f���nN�=�tyG�`u�Y���D�|�{x��6�����Z���#�Lj�
QoY�g�do�<p#�8�ʭ����%�����K#O9j6pO���q�G$S˘�IU�)%���W���P��;$e��a�-�JG�G�Ȩ�l��`�B��ۛT�!v��w��~y�α�Ƚ5�o=�2Ί��P�2�VJI+�4�r<����z+,����#���̧/��i�S�wķ|�3%�ڛ�|�Z^~��⼬؂S���`8Ɲr�=�$ց�*��\�N��Z�2l��2�U���jh�<��H��GKx?�zo܎Ƚ�t:l�Ӏ�萂��fX�T�a X	�EθJtt���i����GYo�Z�M��U���}�Xq���غ��.����!�7��A��7QϦ��-�e�����.��&$�XS�C��Ὕ�e����2��m� �}r��Ղ(Y����]k���!���G�d��OV�w��H�kY%D�����a�[�GQ>�~�D�N��N�գ�
��Fj���R��;h֖�(G��%�r׽�gd
��`����c;+�c�l
1�(`K3�oL�1+]@�0}O��/��P�Fj�m�)���R ��!�١�`���蟀���ׄC��hn��bST�\�ӆ�=���Z1�x
�E\���`�Q�T�A���}3����L+�g�U�3�I�MxC��A�G����u��sW����䌑ljY=�!h_<���am����5Q>T�4rf�U�C7��������2Qxo�M�7s~o��0WfFB{����;~�E��>��`�$5��a�C�dd���[�U�x���A���AMo�b\꾩�/;��k)��D
n�EA���=�X�O�UB�o,P���sc�����ظ��FKg�Yr�3-��5��ү;������a�Yp:15�jC���p]�H,��3Â`McU��S9�]B'\�&��5���C����V0y�ڍ��z$X"�e'�u8�����9�v��t1%��Ehe�Ҁ�.��p�3RX�q7��G
�;!2 0l{���?�I��iE��^]ӹ��R�n��/OŹ�	ʂlRo�6O��g�$S�H� ���5�Lh��>���������b0z��F/���TՆ��
<�1q�����
c�x$�*�u���\"��������H\�ȇdC����ϋY�E}���`.����h>�R��ap҃�������AY8O��6�j#��Z\1�m
� �zl��~6Ѭ�}�b�����	낱�B�7y/U��Аse�
�c��
���4�zݒ5cљ����7�M��V3*�뵬�ޔl}�3��'���u��Pt�U@N�����V���PfWs��t@S/ϟ`li�#2["�A�&T%���������l��r��deDcg��#��i`�����>�[��)�K��[}���'~��`�lG�f��<�+���6e�dq�Vi�:��+�%��S��Z��N�-kF<�Rw�My5�PLo�}3���I��l�:h��޼&<�ǥ��ܩ�zRB?\��>�n���Gj5���C��Nm��VW�˺0dd��Z+�,צ]X�C9Y�g\�z�+8vu�+�:�"ϰ��!V -��`S$v�|=k%W����нI����BhHgʹ��崮ve?��䆱�s��^V� ��8��S2ܚL-�|�����C�	��q�|�=T�	LP��R?���t�f��)m-(!D��^�=
lE
�	��BG@�ˌ�uR�sUz�Ŗ璫�1��	���ג�Xj��͎n�ύ�"����[76�>��Srڒ��D]'���m�%�6�T�V�!Jp�2�tȿ!E�
�7>t�j#�
%�h
���n��A^c�\��0���
l*`Jy��>��8O�z���sRP��9���j��˟�$����wO�H���39�-�!#�S2��
-l�)���}�R�`[]_|��ͮ�F�p�+�5�2��i/�Q�`
sȣ����4��]7%#�Y懁 �u�ܦL:3�_�J�E}'*%�d�@Snu�Nk�Y�OU+����qC���z��G�Bre`�0kiDYγ��jK�`�<�a(j�����}�L�6�`�{��BO�ذ��}���y
�Q�tf��c�v�XJ����咛�[h�]��
a�QfW3ES�3U+�j�	KC���#}U�R���Բ\�ϯ�w�u����2TB�dǘ�P�+˟��e�����;x������f���r�:Ky��ν�>	@��]�	��ګĥ�5WD�=d)�&I*�Rf�~�3���T]�Pk����A���g6 1[�4�{���S��e�)&$�2�R���X�\Xy�:$�P��e]��٩wm�:��Cw�%�GW/�M�S���˗JԸ?E��Ϙ�D���
�*g+�Q�ȭ�,���lA�|[
Q�
ԅזu�X�g2�Z����,�y�vs��Q��}��njy?-ϟ�PU�a�,�и�S_��n���d2������julx�6��#[�Y���Z7H�p�����5�J7}NumF�[��j���r��ϱ�$�g
���$OC���sv���埧�A��<3��1͚��sO`+���W�0��7e�����A8q����D��R�/��+-rXY`2r�\�UJ��ҝ�wE�\Ϋӊ�[(>��s��W�!�9�=�Ϥ*Oa{��Gy���]q�!��4�f}�<�A���k��~@�J�`�T~�DM���&�0Ͳp��>���cZA���m@�J��k��.L���%^yl�5�\Ѐ@B^: �t>��zG�[d/��A���Ph�l/\S'�P�
�
�lj������#Y�� ���ײ3�bgٔ�B��s �ݹ����\�Ij�م��&�����z�
�y��=�޺�B�s�9�Z�D�C"HHC&P}WQ�
>���"X�n
�|腃#"�����T
��At�'�a������5\zec��Ou����`T����l:	2�6�Mb���^I����5�&�f��s��'������]���ޏ�o�]cSAZy�wl!��px| Q�=N�"�4W������:�jQ?Wn��>�u�+&f�pkwӜ�����p;S7B�wp&?{�S'���{��^t�O��:��%2S�g�o놛/y�.0�3\��j��
��}�1�Jh��u8�Y%�d;+M�`�}~�y�$��t�9�*CUM"��{D��ʦ�Ra����18�,g�����l�������t���A��Ϯ�[q����/3������ex�k��VP�k����
��~QsS�p�����]�
{�~���9���1�]1�fKv�W0�Ƚ��I$���<�������7[
7���ξ��XaU�,+�.����匼�f�X�9c��Yu��qh��"L���%�y� _�A)wd
�n |��dm`��H<cؼ�3���^:&>�lo���"
T��ïR�\	j�.`�h�Ƽ]'U��j�w;_��58�{��^����2����2��3�vf�n�`�Z����(v�J�#�|�_�5:`�_W�	3�8���.�g
�i�Ȝ����s��,�.0�y��}:3�
��X���e���M�,�B,�s�(@�*���䶶B\W��5�rm�g��Jr̠4�z�6 ���F.%׾#p�z�Q�����"g���י��,knO��W��W�;�U�X�
��7#�5_����u���UT��Ij�v'�:S�$�Tn����W�a�=Q*+�S
�RP�����'�w�&w���.�v֌X�	'c�42�����w�[dd��jgVѤ�h!��&x�k�l����a@y�,e
�E��$jy~��u^��*u��"��PpF�GJٲ�#��+^l�6�ֽȇ�r&����#Vm�<|��.�u�ݏ��C�Qe����9��M9��?NS�(1�����k<T�
��f�]7������6�%�ZH�F�Np��ye}�),}Lȍ��+��`�XU!0�#��^�)]���~+����C�b^��G������p������Ii}/��6�.�;\A�.ې���j]ܻ����6�vH9
�ZB=�6pJ�)�v�n����h|�����,jjZ����X#[�j�\��2�F��:����PƇ:���F�_�3������I����l�5�Rw�f�S1�`5���̾�T�V��2���Wn=���6��Z�܆��qN-ǭf���juƽMfjـ�v���vU痖�<��@��0��϶���XB �Y���&!Tnۢ�^�4ϣ2=���B�[o���q�ZWK�������-z�f!��==ψ�"��d^ն-�TK�䶷`!'�0�g��zS�d��Bj�	_���^.��;���q�ho�,��ɰ�˥sc�,���\��J��-�/�2�n-�ݫ���:TNj�>�":����ӿ��z ݬ�z�0��V0�.[�c��cj
xs�h5:�A.-n���;{��S���X��k˰��~3�B�.�A�RVl�!l�KI��~��i2�8�Dd2D.��/��'DՃ�a�ˡ��u"B|K��baB�t�&��5Yx%o�G�*3�&~	����7�6��""_T�W��G�f�V,��דkt�l���?��νMI���eB����(P��<�DY�8|<�:��T�T7��v�(�<�{$�N�AG���<;����._M��9�D��a�'�bN�
�j!���ݧ~�"��0��i������Y�s�2wʋu��ZV�;L׭Kd3�^�i�+\��Ԯzʩ2�g4u��Q'�z�Y�(�E�J�E�56`��.�P�H
�aʙk�-�b�J���S���>$ۄ��}OK(��t,8�g��$��,�Tf��bWd�3�/��9!�^s�̣\-Dri����ڀ��UZ��`��N��QmbF+C�����<�>�vo���Z�u�����O
��x��1���+�v��<Qc���Vƕ+�̛ZI@�ks��=0��H�~C�@o�UYk�����'��f<Þ�2K��bX��
�q�ÙRg�W��^���a��<3۩�?�</H�at6���Qsq0H-:�0zir�Y�p��ޫ†�L5",'e��<�S�lF
5l����M����Jgc�gD~?�\��'�O=���1l�xZ��kS
^��{e���4^���}Yf�Ojm<�jA�A���]>�{�{Q&\95���<�����Fk�o&c9$�d�d�'F|`
�sDH!1`��[*�
Lg�x�69cWi��H<ƀ����l�{>�[�y}6�R��j}��`�Ā{�U�����C^5N�HLy~��92��A��da�[�/�yu�ѐ��i��]	`��R3r���+�~��L��1E3~e������g�=���9!(d�
n�ց���#<u����oؘQj��4�<:��»��-꠫q�=OS�1r@�n3z���30���T�1�wj]?��k
��C7)�+.B��#w��$�7G�
Ä�@��T�!@���1�7 �>V`���l�B���f:؛����˪�(>�˶���S�Hf�����P:����j%���N�ˀw	����NQa�×U<�O�������p��ZƖeB����U�#�ڇ��.�\��A*	��To#�%m˞"�$޸3<$��MmƷ�bQ���*1�%�INlA�
0_?߽�:G��S��p��t���H�-���Ϋr��&*`�"t��
=��
�g�DO8����ZQH�,!��lc�uY�&�ID:AȨ�
g�X ������E���RcjD�fa��v��Ed���g�/�rb�$���wK/-6��gln�� �+G����W`7Q��LE0*��)��Aj�+�kX:�L�E������撩�I~�Dz�&N5|�p�����ϥt;�JCX�3����,�=�׺Fe.���
��FXP
�U�t2�fբc�3��:%{�ugv�Q�r԰�biF��b�Q����dϱew���窈��V�0o�{Y��T�|0�J��[(����)�CN��5��,^���ݛ���N�8I��]���v-��(K��ө�@K=�g��'ض$<.���S�4*�����3*�o�ȇ؞,�y��3�e�vvS���p���l�T}�U�T�,��K�H�=Bݼ��J��\���}��b5�D��AdR5kPK�)�{��'ʆNG�:��\���j����V/�[Y3�}H�2	4���$�_s�JPv��FS��%k%�Zm'd1�:�&X��w�]B��<7����ή��G���|���1;�Ʀ�d�V��9�T�P�#5��p�HbTs�@�սa�5?qP��)�OR����d�xQ{��w
��ֻ�5$�\RֺJ�P�`�PԂhi,G�y.F�>�K���b���S#/)��
�(�Y�ŝ���U�6z�֝�aU��T�����~�N�~;�؂��؊}�����
��y�j�{�QtHؗ�a�����f����ϔ��ۨ��(��,݊�Ş���SR��|ث͏
�N���F&8�y�:��ՓqU#���1���3U���2U�{K8/�y��מ�kv���ԥ�d�,��K֊ٌ����\%��	uT� ��*~���&c2U�����9æ[����0�/����,�Zd9T�E��9`�Y*��&"��bח05۠�~z�Kn���}���&o���8jnbG��%"���@Q�/Z�g�/�g<�>�]�kk����W��5�B�!�Z��N�o��;�Ve	]�s���>�ٷ���H@�fP�co���.��|�5���f$�k!si��(p��M�cvt�b�i�l�r��2�#+����^x6�}�ds;�6܀�n�z����:�+-k���ʷn[!MW2�W=ޚV����U�@t�B F��A�r����\+����y�il��j�ądTM
`˗?�A�P�
S��X��ϲ�"�x�4S�i��Ɋ�}�M��g��宠)�8�1m�
���G3l�ԗ��N"[WI���6���򽏁�xv`���p��
����Ꚉf[�[�0
L�;i�Mo��P��9"!Hz��$CUy1WB
#�7uLR�\e�m
�l�n�PϬk�LD["E���zX
T�#{	~
�j�t��_�^�KcKX�*�Xb��rf�q6Ye
o-�I:Os}�@�ԩ:@��|�FUc[��<�Q���C7&��+��q�o���)�!ѽO��7)0�a�Q_�៙$?"@f,���}`6 �c�������&}���؍C�	���\�64��?aX�՛ܾk�ԛA��ai�z+@�)s�ẉX���m�e]���}{���1��T�����?7��C���';��'����X�.WA>�y��h���牮�~\!J��ZX�0R���P�bK��`
%d��.�6ۍe9`��k�Z4�z�6c%���r(]����,�vM.ޓ��g���33���N�l�k���I:�y������f��k��|[��y�+��sY�ri���,݆
�(r�]+>��
�_�2��T����"C�ֻ�t�y�O���>�|�O?�
�4zV
�t{��z&�cH�P��͉����^��t��֠{�=	:��F�\ߛ�y�F�aR\�,=k6A��z���`�%��
�a�u�Ƽb�˾%�'yN�k4/P�i99o���w%PRc�����Du1W�҅�N@�G7��G�t��C��n��s����R
�u����N���5IlT��#�տf�	��;�:`���l���3�3'L�xdR a+ἐ}ivp�Z�-?c'�:��͑ K��p6à��d�)kݕ�v�e���B��G@�X9�Pk�eJ�ZJ�x욝Jv�<��?c�V���>`3ٟ[M��c8S᪘�Y�����C�>��C'��W�׉�H��.��g�m�$�um=�t�Ȭ���Hvg��d����A
5�Xf�}wweF8I�,��Ȭ}���>�UY�C��ZߪW�j�\ц�����$Ⱦ����܆�.��8��o�=����
A�B^R��
Ԉ"�s����O�.8��pUҳ{�
xC���Wߪq���Vu乏��U6[C��׶�Z�QqJ.����x���ej���=�ѡ�?���51�{�?�v�ZI��lOu	8�tĠ�B�"�4m5����e�I��}�}E�&���a.��,L�T��C�r����#5��+.��:Unm�r|3IT�*áf'
]��jd����ϑ4Af��̻;O�	4�s��*g'P����P��tOɡ�x�6P�x�.�=�:�WE@�ɵ{���.�O���dO�a����d]�}H��
Du;����1��V���P����'A`\B��F��E�S?t��M~�wfTT�Vm��"�Z�α����j�}o����h �N�����YK=�M�R��4G�'���^�����~�'U�i�K��Pߧn��KЪ �:f:�3Ճ
�d��MHi����?T��E��35x���Ӭ��x;�^C�C�n�a�G�y�)}�O��
ړa<�s�I/�����1�Ϫ�”�a��)/���՞�&z����RUΨε�P|3t'{�}��F��S����m�p�%�Q���^�����������7=�����i6,`o�O�.�a�7����G�A#��g���2��hƌ�O�om�o{�Y�q��
�%��^E"Ӈ���j�:]�4�ԆG�?�]��4gy��?���ٶ݆�n(�/m��Ζl���qz֞;��9k�٪�K��[V�l
�������,�_��n�q��n7#� �n��TG#�hDX�@H��V\w�$��gn*_��g��{?/�;�ioEP��9�.���Pv��@���^6�ݦ4�ݶ�֦U�U��(��u�ؒ�G�`�q�,O#3>�'03�8v+6OYX���g[�qL������3…�=��r�n1�FZ�L)Ԩ4������0͙_���|�.�4=��B�b.E�Ln�Yo�#��T����U��=�o�ѐ7�t]���/.n���t%g�<�p�������o2;�X�^p�M(�:+K!��۩!�~���d�l\��0B.5�kC>>�O5�€RZɧg8X3�VNp q^յ�Q,�-"�����M^<_Oi����g�<.��M�y�Иh\�͗�-3ic����1�?!�}7BAy6ӹm�W�f^�
��g�&�T%�"����+:����/��:B�l��3c�
ʂ�(ԙn�rE�7醫6�|s�JR��}�ϒƙ`*�����Pt����z����G����
j��+�y�z��r��Jx��߄<�a��o.�����ꈫP>/K�r�7`RTaK��2.9�p
8������,���Y3������
'\6h��6S$�ڻh�x���Qo(�T^-8�R�z�1���x��!�9�<?�}��V
q\�	��G��/pӱ:�5�X���5��ʞ��uJ����р=��Iָg���J�J�o�C1Э%��L&��G�噕A�r�s�������[���5����C���5�c���3���yu
Y�|~�(�f�}��I�D@RySs@$��Xg��=T����o]+B��5�68"���"PԐT�;�%��G6�0{��K�O��������V�߻>����Cz�]�Ч.�3ͥ@�w
���ý�-1�����r���H���)�/�ɴy�3ͫ{�������m����YY�|i����}�ݭ���ٴ��G[M.	4��Y6�R�
y^���͞��%���
�����o�̛��Wp�I�����#g+��O���E�����]l��D��$Zg��~�&ǫ��)��z�:֞d��͑�|�7LJ��`[]u��{R�O�Bu]u��T���|��@�����h�@
�{��8�3&
����pTD��1����{V/t	�GcX�8"6��\:������I�L|L0y�xՅ�"|f��b,bS�}v�s}��,\:�72��Z_K���u���C}���,YQ�X
/Q��;��pI0)�����x5B�h!r"ϐ�]e��-���%| ���h츳)L%���ҳ��M)\!�qU���T��p��5@���Ս�a�6�%xgmݓo�٣v1�9��Z��un�3Y�V�Ü�V��[�O/�
����t/���+@+�@�sd�9����As�L`殭��40�5,s���*�TN�gӰ���P��qf�נC_���
}�3���ݪR���J��ORJ��{/ʆO��	�y8�\�kO��䦸So����.5;%�dM���+8K�dw{y=�ד8�Mh
�sO�BF.p��c� �V��&,��|���|�2m�AC�KiNd����=>1͕�l������@;"�H�}�{�w��݃��;�#�T��A�:R��.��E.K��[R�u�+ĴB��mU)^����0�����i8W�Z/����Z^Y l i	5Sr�3�F~��M+}r�b8�y)(|�$\�ȵ���k8�5{b��e�]���Xù�ky�q������t�D����ܩ;��o���k
�D�M"��r>�a�4�'��qg{�%�V��!�b��ܲr��o�?�r\���XN����y�8C+�pީ��� o�P�.�p"�2RG�hT��Xw�\����ȿ�����κ�k�@���Ĝ��p�w
�7!��l�ȣ���\�Mw v���g�NP#��L׀�J��;ay�&〷���"\5X�])��9
tR�����TF�0�֮�~�+I��`5�4����y1q��b
.�l*����d�����pa�J��R�諊����slM
�KX�7!<�C,�
�6�������\��9�@2��X��р���L*�V��]�*d��Qaj�W�O�ѵ�������2fn�'x��_+�s��l+B�Dhe�颪Xq���	n��ڛ_�2^!B��Qh�e�
67n)9c��)͜-6�6�1;��}һ�i�EӾ'O<dGh��g���z�<k��;��~�j�+�&P��y8��Q�1'���p�7x�=^�7��۱S�-sY��r�$�(�g_�4�>�r��|U�|z���L��q}ϖs@�I�Z�e��J�b4��ᲊ�qpJ�/!U�✸P]y#��r���L��e0V����@gA�RP�u�?'2%2���~eG�5�ð1��\p�sS� ��ʪu�
0�_�~��5T��'m�N\�r~��+�z�I~�e�<%����{e`�;�8�h��nX�k������2�a8��P(*��]��I���D��E]�(+���W��8�u�)e<�w5-6X��3G�Rʗa��F��H�~���
�Y"}ܔ���1#?�]X��)�%#|އ<�KpQ��T�p�9��,�7ǰ�ޝM�K�)��	ۡ��Ɩ`�.�g8$H-�~�z�Zi�lX����Z�n
������_J�ҵ�����V1ܓ�e�>��Q]��[�u�kf\��9"��h�З_'�{'0��8��.��r��uuU�}l�R�:��ŁY�{��W����PA�%"��?�H(����,�J�o���-�oyw������?�[`�����iW��n�
Η#be���[��o�!3ب�n9��AEyL/�|U+��"�х#_��"��(�����5��9
t='D"�5Hx��@���F�LC��u�:q
��ÁZ��s��+�����<���`������Q|��-֪����}5�J�l�B�X�uh��R�+��P$L�������
;�g"�b�Kd`���7��t�>(�z�����&�#��s���9p.��nl�ǞWT*��<�7Ń!��3�JK
��0$����:,��6\���n����t�A��
I
{<?X��L����?�ʣk(t3�~S��[/V|m�$'A���L�wC.�v�F�4����V@�pf��En9q�I}]� 贵/��|�(��v��i��hA�m?��,�j��G�Ⱥ��ܱf�=�[��q�!vԛ��ʨ�P�XTT�Mv:sa�7�:wW���GOw6�΄
�qM��9����Фd��F�B%(�<�>J��>���H�l6�]PKцf�_i���
��C�
�ϫ�����[+�������ϛ>,,i(q^S�a��p�f�ѭa��'L�Ѩ�he���r��@�H���ȫ�sd-{۾ڳ��ô�t�z�'S<�7E����%[ʇ#�Y�/��g��
 Q���J�U'P�[޽�=��L�>=c�9Q͜�n!ɬ��gy~��ྙK���߁�=l�W�f��V�Axv��"�h5��:�{Y���&ԷV�I3���j,���(V�A��Gw"�.��߬���:8�y�����d�b��#�	o���@�tQC�,�-�Ҟ�g,}6�	���X��w��DW����BM�`/\�>7�E�{*ՠ��s����C'�o|�&I�7�cR�e�>��5��|&y5�9z�s�#ʪG��<1x�k�e������!^l��<6�+���{q~�m��!*.^>�y���[~������R��U�@�	�ŊA�8�֑r+]�F?a��lp�ϖ}�4c��N{����מ�-�g�ý
?���PT��4;{ɔ����[57�td��1ġ3;��}]HcZN�����+}��-�����]�IY�'��}n]�-���z�*���1�/Df�
�g	��~Ξ��'��G/�?�,Z�0Г]~;o�`�nm5�_ݹ�ݦ(��_��/��l�'o�X��䔿[_�w��m�YS�N�[�K���,����n%!�4i؍�,ΆZ��$�2_��P��:�;��?d����#�<�p>~�.	��H�RvS9�!��\���KQUC��.����,ꔚ;L�=!?hWIf��k�h�y��>m���1C���u�qvVP
-M��b!���Y�ξ���'Ͷ���1xB�,��ۦ�E��dO�����zy�o��Ԙ6�jp
T������B�V;�,���A���iO����Z��[����1FX�e�vsN*�,��>ep֜��Ad�xz8��*j+���܂N������������d�ZT����CHx�^�J�쁰䧱�#�MGv\��>�u��Ь���ŗ&qF�eW�Ʈ`a��Y��.s~���:�k�]��z>G+ �(�G���&l
��i���-3V)����<��VĐ
���q	�V�D����Σ�1���V���O�c�MJ�(U��/oB'd����X>y���0j�fb��BBT�5�9�a����7�x�tC,��0����n�:���`��0հn�
u]n�5�<�h*��z�3����F)�g7RƧ<Ւ��mЮk�\���mNHq�M�Xi�EZ��QSE��4~��AA�[���O��@�Fվ9�h�V윬���`��$k�X�H�F�L�����[�~�'��W�F�ܻ{�BRm��uY���E!iŪA���:��?�j�����K����f
�~�X��|3��Pu�}��]�,Y�'�/(
mF��D��/�i�D�	��.�S�[���rr�WE�]�?���5՘�(�$s@���rk���3�v�F�—İ�/�����f�j��2��Mvr�J�5�
o[�k��C?���Tm�m�0iV����������U-�t��,BY��r����E�5%�F�w"�V�,�Կ|�j9���/����U��Ң�r����5��0���^��w6V�����cW'�)�Ԫ=
�6v�S��Jy�& ��>������]��߻�9R.a�����7޳㠖"�ן_��굂p���/W=��Ѱ�Y���0疚ގ��A�v���l]���k(�)�k�W�0X�:��S^Z*7��+���
��;r���:NP�������܇���<c���G�Z�����l�?w�SGR�%�s(
zmL�p�\KRd3�������檒f�(��3�R�=�ٺX����^��/RLY�E1�Wuie��yc9�L��?��e�=�eָ_ܖsD�nڪ�<��v�̻��Os�o�g�b�nXW��o$�]d͟�}�.5��t���e���
��n�Ly�	���s
+�f��,R>�~�g�v�̳bE�q�s�7=�|�rQ�������-b8NpX yX�~���o5�&���~: |��O�đ}�k�a*�v��o������\���MU��`y�	k���7���UL3"D�'Bk�Qb�����1�|�̾v^�]��@Ϸ�~~��̵d碘�n
��Q~
�f��Y���9���wVDD�Kh��!h�=�d���8+�!Ě6���C��EU�7��.iZo��a�${@n���������M�mwQ�4'�f�G`x4��%���J�iM���,�'���ƿ֯���g��^���g^^�C��=^�o�(�zU���/��m�-B�e�I1���|��c5�$�d?���ֳOE�
���S��|��k/HŨ�#튝Q+T��zꠡ����ߒ1�ڹ!GD����Ę�@�����k��>�:om$j�����p~��|�k�z�,����C��o���s
灃�
GD������<����T�E�?#�p���\��U�$��%{�%��eD}?��{Z+>h�*~��>�{>�d��i�,%=ذ��5���L�"ּ+Ex���p��X�����5�p&<��++��P�Q��S�tF6y*66j(�Jz=��2�xi:����A��ڥ \s��Ύ�����=���<lZC�|~�
�vt��b�������L��=&���?w�;��<d]�^MO��b�g�h��^Ys
��L�U��3�v;V3��ñ�rϟ���g^���g��3Hޣ5��>�)�b���<��'Xj�5\j��͆����NwL)�IF�������~Q]}U��I����Z��s��M�������Z��@�����pk�(�N׆���p�s�Τ�%G[8�g8qf�~�y���Ƚ�i�b�E��O}7E�C�����n�oZ
t
6e��e��O^��ꇄ�˂£&�P<���4�d�c�H=�Y�m��`~a�8��W7�M^��Ȯb<��zӅ���Y��Veu�f�O-�@�Q��-�\([�u"����!�V��Ġsǃq�msĔo�qs��f�)�)F�Rw8��dhY]b`��O����.]p爫kʌ�x&�I��z���.C�1=���,�h	|��S,
\��@"b�e��8s'�>�g��)��߂P"`4,��٠~��\�%UH�q>�H�&�j5���
h�+�Sž3�o��V� J�U���R��B}����F�@����_n�gmj48��`jǯ��W:5�e�O�x����/��l���(�������рg��M��v��H#jl	"�A)8f�dJ��8�l�͇R�.�<ݑP\~3�d���K�p���I�(�5�!��Z3~��FPcz�-����Y����I�mUW`��qՂ;ul'E	0��i�0�G뻩�\�t�lK~�"@�����;(���l�,_Y��x��A��\К�M�8n�t<�bW#X�D�$/AIix.����ؕg���zo��&w&దu���Y��Jv�%h�sXi[��-��`�8��g2�:+�V7ؑR�z����i�)Ƽ�G<�ڛ�>�e�,i��nX!���u��b��@(0e�����ed�F��Kx�R�P=�X�#��;�nyݠb�����uO�Ƌ��(24�o�rV>�^J{���т�ciX/��P��罁ь��W	g��`�#[�Z�����<�;��Ľ��G��͂�Tk#����U'�`8z�^��:����s-kڀC��fnTs�)�Cz	ٖ\y����x������s��ɜ�X8Xdʳ�IxE�Kh�E�w�3�
�E���R�7����3�w��y��x��(�]����M�lm5a����dbNX ��zʫ��k�]���$J��p4��7���s�A�g�ԯ�\��03
����.%����.	7�A�:�aS3Y{�AF���`�YȕqnWE'���͵�?g���q��w�CgQ�EPc~��8�YMw&y�X�",*�!�G�����0�Ե�ʾY~�+�uϝq6�2��ﰠ:� ���vi,D��8��c�n��Rt�;�u̚,����~��-܃j�]k����@�m��s��k �h��8�+&�a*y��~������'�B{�FI�9`����:t�n,�
i����"�5�FmI�F��1��Nk�Ei��
�w������BW���`G��l>���7�PQΠ�>8pq�,}��;��|���f5w�b٦���Y�h�JQ/o☨V/�px�U�(���f���N�ԃ�с�g��D�P��s+f���y���dgiy,�0�p���Ca�ެa����M��
(��������ț^�\��1T�:yVO˹
*sw볆��6���{�4V��ϣ'�QZ������q���^�Z���S�\��
MYQ��5��:�,��/�B׾l'ssl��@��I�\٫6`��}�oG/��Ԩ��y_���A�p+N�뵙��.�J�^�fm��H���,D�u�UPMG�w���O{����\����Hp�0WTS1��!��ފ�sV�D���
[����ݎ�lk�v�yq&e_=��Ѱ�>���x��<t�#��eW�������o�!�gm������&�s��ςj�x�y����_�5��S�f_~�^�P!�����m	�jDc׃OW5x�`˰}k9�-���.��ՆYx� "p�/�(�jP*�m��ʗ�R��ޤ|�7R<@SaS�kO����|���w����<�+�d��u=��)�{DLRs6���>-Ocw�ӗ&��x	�������n����nH�QbN[��r�8�h��	H�(�q��="в{6���)g�{&�����M��#=Eſ�w�?���al%{�����!ܬ[�{�i�P��ۭ�8�Kp����X�Z�����"N�����Eo�rl-+Q�筅�YQ_�F)�����3�IBF�c��<,x���*��"1�FO}+��<캊���X��zd���Ec��C�������>>p˓��+�1��|��$y(ɱA�P�x��|����ˁ�j�F`�7ń<6�l-J�>?UK}�i��/�ć?��ڮJ�@�0/���4k_8r�)����tmB�ΙdՑ�	.o:Ch�h^��H�ưc����{�\\"`A�$
�%o��M��~��慟7p=�f<��=�J`ב���������^�K�6��ߨ����=�_	�1ÑaSfk�]�@�/-%q#)��5YoG���\pa[I�XP��wiL�`t�?�B�w���+�:�MVg��Ԅ^��M�:�,@tQ�΋R��;Q��#g
��Y����)�>x�&��e�N݁��=��)i�
~X����</�08[M���5L���v&��+ĉ(���.���i�t�Bh�Uc@j��	F� �Y���ojS�&Ϙ�I�I��ű�a}���Cr���r��V���V�h��
4�㝰�3�ߴ�yaK��V*����w;��Nç�QmrAal����6���!�/��i:�B���XO| mnԱl߂F8l�Q;B���_ʼnu=�h�����D!�imeĎ
Ɏ/�DE$�Q��w�0�v���Mst}��N)juK��5b��PNj7�G��pȎ%�ٝ�s^G��;�Rg�Ú)�E1�
y����fk�֞Vr�n���g�)_ �Ȏe�!JN�B�מ����Zд�R$?
���nvuO�4H��$b8�&K��.���{�ڢ�k��V���ճ�_Q�"TZ?���7�H�jw��
�`p�S(���Ù�ai`={�<�|������Y���G��J֨-�?U̻_�up�Lq���?u1I�~�um6�������CG���VP��.{��j�r��3٥���x�򙹡���U(	i�73
��I�[�P�9_z+9��~�,����di_��ݯ�.�%�D8~]8� �~eG��1��;�E�bb�.��j6�]�I���<͒�`Ш�\,��.������=�?d?��`�h�o���`Ӂ0�c����Œ�θ12UH�|���sAv�k~~��\q쫟LU�S��]ՙ�XR��DP1D˙��g��M���9x��XjN^�o4�
�ڀ@��%�Li|�l(�
�"�Nm��9�]�%
Xq��r�j����{1�u��7��=vk�nP��`f�!����l�s�t�*&]KL4��>�ܽ�P��yO�=J�nhiNl������pD<�q�@�0�8=�^-��*�w�)����ς\�R>7�Iɘ�����Hrջ6�"��ňG��UU)n]Z�����‘���8�'�@ZMe|]Dv���b
�ߌ.����]1l����U\ūQ��^u�M��Z��]g��f`�6d��Y�U韐9)Dy*?C��o����D>��ELIތ��
?��8R^��M`��WWE����%,��y[�'�MV�]�W�o84��1�A�XW�9��{�~� �cM�v���s�����z9�۹�V-DU�ʂgx���Mj�b*v٤:�l�+My2�C���O��	�:}�$��r�رN��j�X�CϦ8,
^����n��H�7=+���Ȕ�΀�L��)B�0[��om����LL�6#<(&xB�*g�ig�Δ�����),8b���rd�jE����o�It��%�{��j �lf���sY�,��N��k��JeU�.ro�w��91�Z}&�3q� ����:Q#d'�����IP�.4��>5��1��}l��5��GG�������Ϣ/:4G���i]Yk�?s�p9F��^���Z4��(4k�?|�q^Q���LR��К(�}��K_���Cu\O�Ա@���pg
uF�Za�4�#b��L<#s��6_���+�HV�sQ~N�:]Y��t�Wa{��3�,R4�E~�6' ��kV��ÔE���U�fY���~Յq
šӭ��ڡl|@���"]��i%�k��`%�7^�&t�u��d�Ȯ�/!�*]�
�����N�p�PE�d���Y�]��fo֛���)R�m�ӘUz��̣{�jR����Ʀ⛼&��#����C��#�J����8��=#��5�z�e�UR_�m�2�n,c)fR�-�Ҍk��D�7�%�2��4��餭�/}b2�}��M���ç.&�TA74ڥ�������yQ����zU�X&|���FkA?���9N�
4?��"�����' �cÑ�!¬Ͽ�0ELKSu�������"�8e�Ia��3�1q<L{#['����/׊^B�x5"5�F�m��Q�5V�����Q+�P��)�g�+�֛}sίw���Qr���P9���$��,�݇|u��<0�
+XF4�v�|
ĺ��t�-}֯��f�/q8��1J�g27z2Kc���O�d?o̴V����(�3�<���/が��6�Sރ�'��h4�#`5���7U���֟�
��J�B@�bq}��~�� ��n(�FV��p�|菹�H���/��)l�xd�H�ӌZ(��Բ�ՔFk���FF�}���\`S�׶����SY]�,��C��%�ᔑ��`�l��W�F���l��9ĜX�xa�l�U?ט-BT��g(��Y���3��h���ؗ�ڍ�����.�oVX}~k���~�7k�J��)L	�y@�k��St��&O���ݔg���S-�2�{���;2"����5�p�]F�d$�Xd�T�?�uP���
!r�<=Mժ�Tm��l�|@`��E.O��Ԍbo�p#+��z�� T���l��c���쥌(n��L�CI�+�f
u��f0��1������ ����{�iQ؅[φ��p��j�r�h�e�*Fo����3_�U�����������
4���Y5*�H��LC��f(˝w�5��XnGf�r�'c��}46����.���yJ_\�{��6Y��a�*e2ÿ5�;#�1tQY�:<G!�/��-
R��8hZϔϤ��f��#��3����1���SZ���"�܅��
{�)9;_՘�D���g�T�ܵ�)c��/�`##8#3��	���,�rja�v�D�O`��F-2{d�9ע�k
/�s�ɵ-<mrë��Zk�@P@��P
����k����-�D�������n�
$������yd?�%����g=�%�%��d�ګ'����bB�CD�w��BC�09�
R�5��q��?�_��pD!�j�y�,���Q`��a�������Y~VkT���0'Bo�,������[Ѽ4˒{�a��a�_��3��^�k���nKg�	�� X�f��f�Zy&>�(]�;����Ȏ]��S�Uu�+.�(ý
;�93����m���lT��6߻�Ɣg9VH]M{9��څ���uq-,�j�m����TB�꡴�.��	�s��p���N�H�*~`��<�D~�(��g���g��f4�Y���\.㦪Z��7��e��H��.�Yӿ�V�,�h��j��Ⱦ).���:��7��9i5}�{ݳ(t?"��@#X���,�T
�ۯ��R�n1/�p��#�!a���:�m���EQ����O�5����ͮ��Ȇ����,2̓�X�)T�b��6�lç
A��9��]�X����,��F��\$I�Z)ߥ)j�+�T��~M�A�fI��v�u�h�fT�L0�)���Wjc�*��<>�VUxw;߻]���V�!�����-�n���A��r��Ր���Ȗ��|�7�g��o!άȜ��I��3;�+�}��z�ٟ�T�j��[z���|X��'
��D�3������Ky_l��n�$<��hæh�g^
�,�aWit�p���v��4m@w8
�^	-��LN$u�ܚ>c�a��͉!K!�$o��Mee���!�����$�A��Z�n���M�Q��XC�Z4�+���f�ٸ���3��E�)�a���;r��
�yo]V<�gy��	,�1
��AH�VYdX�xv
p;�����kA��;��8�~�����j\fp�g��#����y

 �R���Y�g��$�� 7A���~>G����U�5Z�������c�G͓�pؐt�h(��B4��˼v�z���ؑ��m������I�c��=~��37ź�q��\�>�J�e׬h�J��ʑ���M3��7��bW���
_l���]&�����Ԗ�4�ˡ:�+���e�V��_�w�vy#SR�+��d�?�qe��
-��);K؁�\<���_wC�qU\�����ꡔJg�d�5�;ȿ�X_�&�ns�3�;�n�[�VM��uʎ;���M��|�Vo�!�bN`��zi�L�w8,@�)Y
�u���'������5�����{F�%w�F�Aq}��Fl�]��y�@�eƮmp�x�K��3���-I)b~~
�F���)D�o��5�	vX���d�f%��u_�mK�
2������;;��y�{5C)K�Nba^
<���O��6n��N����'�G�����>qk��?U�$J�#Pծt��׫���:sV��Ҕu��=
��}XQ(��>�A&���oP�Z�����c����1��S�Ŕ(:��sk�����T�:�,��z;�`��u���d�Wh����bJ����in�����ah�ծ;�s8n�x�k�4|���(a��?yN�Ƿs=|��)Y)���)yR`W��ـEQ��f#�9$R�U����(����/Y�D;��ʶ���n��V�9-�o��Uy�ꆶ��;�U��n�}��OS����y�`w��d�[�?͐`����{��ne�.[��o�@�.Ö�p8\q,�Ez�h����/���¯�{���"(����z�٬��(3pr��A�V��y�w�ԟ/<�ϩ��
=�b	�J�LQ�P����y�V��R�j�����C��a�d�_�1�c�M�W�����E�.����/.�x����y_?�KI��_4s-�a��j׆+3���o����%v���p<���?vc������9�ϟ�$��R�gפb
L�/<C�,�f&�)�e��X~�=-C�b
��Ž���^�ߛb��zGX���ف����`�ι2�����B.��6���]�Z�me��5�/�2�Y�LҘ��aŇ*��Bs�t�����g[��������<3��������K��c��Բz�폭<��z|Z��-}���A�"�.D�ּU�N�_vG����Ҩ���a����s�e${��[�f��������5$���Qz��?�wmzʵ�Y�د"�UxR$��v��aJ�`0ˁ҃�g
�o�ϫ�o�(��E��?���sӆ�<���&��&���(c�1L��xS���C��C�OFx.qrj�
|�:x~�>L	?y9WsVN[{lO�Wp~��\�FT������\��9?e�pE�	���{��6������LkX��C���4J��[���6A��ER��߬�!��B��^A��Ou�ɞ��'�+��|$��֒P�t^9c�YC2?&8���m��Պw�P��䗵���rI����]����#�f�u����J��ҧ.J�D%�`���_Gm�yM�vu�ͮ�T�����ճ��T��P�����NJ@�R\�e�qa�'
jNXT���sJ�Z�bi��@LE�����!K�V�C�P�R�BQWI�Ls	@=-|�}7W*F�$-B�ߺg����y��U�!�h��-4d�9�8�B��	��"sVYC�ř��R��㚰.5��BX���c���X�F�h�;ޝ�wP�<ʋ�՟P����P�й�P�qx���:�����ֲ�
�l�<8�/=_
dU 0Y�F�Z�a�
�
Dy_�KKϓ�k�]O��i ʨ�@�@[�f�{�a�s�8�-����x��9��mU0��!�
�x:D���98O��Ĩ������p��~$��H�#��3.��Lb�Ɔ���yN�&.�ݨ�8��xg6ϸ(�"B#�L|��h맘��KDQ�,�b�,�V!��'��"?Q�9�]�3�4}?�N� UX�W!1���N�D
�>/(*JBH~�ź
���knu�lyg�A��i��kI�����:�$W�eQ�\ރ���8�T�!�-��ő>�i��V.�w�I�%5��ˇ�PZm�c��Wז�Oń*��c��ru���Ѡ0���%_�V����_���c��"P�g��dD�xM��z_���n��~�9�������5��sͪ�K�l�4�6'��(�
%���`�}x���J�6��p"g�
^Y�AM�{�l~�~��^�>0\��.��$9����ql�&JhV�ar*�Q����J�%�^�_����j
Z��.p	�Rb�	�T��ۼ�1D�CVA����DW��䴠�2�]z�@4^ظ�\Be�
��9K~�5#X�1�B_��a�m��#v�&��gI��9�]�>t��J!��5��M/%Է/��%|[m�E�R���ja��F�A�Q�t}��.�g���F>THn�ajRay�����_
�.r_Á[�e5ܧ�S�#[� 樼(\��36Qx3�P��Z�A�@\b��/���O�ʚn׼�,��+g_���l�)��QJ�1Qu��&z���?*t� }�! {��P��+���(N�Ÿ ׇ����n�iNy����'�2״�jGk>B������2J+?|i�2�/����
�9��m��A�[s+]%��:���X�ʘ1'���fEj
�)u'~��?�h`�@]yVG��4\U�WN�EC��[J|�'¢G�C��ED���9�}����8�Fڐ�C)n���/�wqV���� �kؼ7H����x'hs�mC>Ȗ-���\v���(�U7�<[Ҁ�pD�w����X਷☳Wk�4�wM���H�*l�v�n
-@!��z�}��-/,z�q=W1<�Ժ�Q��1 �:�^� u{TS�m��G��6p���1��Vk��
�ފX�7���<�6�5[�ûڛ�.DT�L�hu���`{.��س +��n��ҟ���XQX�P?��%2�<���c՞�P#�qaѪ�&D���Õ�^���9�w�_σ�%+%��J��z�;�#�w�]J����T]x�x ����E4�b���#��L����7c��eH��L�I#�g�K�|\0`�4�v\����Ð�M/�N��Ī�a*�I�'�#l>H9ɰȯ���%J�c~�}��~�5����3�hY��~�,�fM-+3F���?�!�3ʵ����=�JE���l�>�J�=DC�K�d�!a���e��У��i�E=w9{�<ֲ��`�(�1��<�I�h�M��8ᨫ6!����֔�H����]����0�d��9��p�{��_T��2���0��&͓�����TM��M}��c�Zn�*WX��Fա�hM)\	"
���)R��nd�ǽ:�'��iRu���ޞcl����ZWn�f���� �z.ĥ1�(�y��9F>I	{�|�r�n65��r�kH29Z������2��K��)��J�ST��<U��[MS�*P�{czF�⬆]1m�
Euh�_���sj�T�ԫ.��@8��;>=�C\�v��˸�ɖ
t�sUm`1����'4�TAj�szJslWg�7��o�N�?3O��“b�ϔ��^Gh����vmP�"|����򯑍�q��-"�6��yQ������<0�'��vA
�>�u��"N}��@�5�N�x��5����r�L�<����q��[��$< ��3	D�
B$4{��ޖ��y�/"�ı��A��������i(C����Š�����Pu5:7�5�&/W?T�7`��ӨD0*���f��$"(�f�I�y����<L8C��y��r%����o΋�M��u��p�Mu��!���\�d����m@2V�ԥ[�45���-��ՇzS�
t {�l=�
b�$�r��lT܇Vr�>&������"|��:�sx�
�zOr8�L��/��kr��c"�y���l@B-��᢮6a�Xn�
�P�M�u�g�{�mHOZ��	T�!gˢL��9(�s2�3����y�9�u1�3@'�D�0F�5t?�y?����A�G_!�8�NN8s�ڟ�ϗw��XV2�J��(CJ��9Wй���@FúJv�Z9r��!C��k��jb���uM�L����>W+��!G�C�
LAQ]_2_�����Tj�{��t�~T��Y��l+_�<4R�Z:�(��#�����y��-���*��\��@�)]��)��9_`�P$�bi1ٖ]	���I�I]�)�x��x$�}�-߳n��
�"asw��0&l7O��G	kc�	���\�ӗŴ,ϧ�N��ҷ�3�~AqP�ȀU���=^h���R���,�)�5p "<`f����v�a�plk2zYk��*������}�h�Xs9xT51}@��Vj���k��_F�-��(���\�C�����|�?�~3«f��'Tc�H�w�&�ӗi"�&�c��h<k��aMWQ{�C���:,1�a�p����$+G�66�]�;�N��#58}�/Z�������٣�&�Mat�����.��:��F>P���k>S�y�
>�f[a�<��\`������T�;�ܾb�A���wҡ�`o
q��zS7ː���ۑhV�
�u5�p��`��`�Js�39���mشYoM������ƍP2^�<�L�5��զa�)�����K%ﴁ܂R��X���_%��)�J�n��怣�m�`������:�J�^��Tx@�J��z����v?����:l�����1��텹��D�3�������i?�m�"M��O���a���L}/�u�GBFҶ�}Ǿ�P�X�,���G�ͳ��X=�k`��e�3����L���.�O�JW��y�`Ik5��V�g�CiCИ�˿��T�>h�C�8�CL�vjK���\!�W{ڳ��a(�f�n���P�=+
 ������A����B+�?�=2^kU������
0.h�6Ԁ���H�d��Oy�eH1!\�7�s���
��x���מ�b�Z�J����`�:��0U�q�}&X���J��0��(#�����xź�95����]	S�%��:�ڸ����r���&	×IW'\�|�����
m��a�C�E����N��B����z
�^1Ȓ���;�0uuw��|�+���	��5�m�+'�g��`�I���@3�z>�gl3�v��E�3=wEȳ$D E�h�S‘���sex!7`����(6�����Di�}}�I M*��:�؋ߤR��]89ޯ�i�}>�*�+(5c���K����c֫��_ţρ�X�_��\������`S�K��v������ѐ�r+��}�
{T��\6�֔�;�E��u�~�9W~�d)�P�R�����U��Qq'�슶hڄ�Ud�	��\|�f�ȵ��܎�֨��'OA��f���X��&h�:�b�۞&�Q����Y��q`5���0jS����n�N�+㧦����������[�|��_\����uqL3�t�C_�!U-��dQ���X��+O`�����6�B �\�SkR�����L�
r+���)�W�i5�޴R!�+�E^�jJ���l�U
��~���ƋR�ܛg�P�����rrrB��$ԛH�#f���v٣t_�u�9)\�5��b�pm�,T��8a��C�q�\#��nP�`�x<s�Eq27q�o�]q�RA-G-F&�z����60G@z�a�N|��\����*��g����k��sUg(���m�t��� E�t=~��җ�Xς\Q{m���S"�n8�3	 �5�;�8>ԑ{��ۍј>�>`���3�`�y�	��W΢�ɮ������P6u�K��tH��7�S�����\�n�uj���0���LD6�K�ϸ}��M*��;�(v~�G=��(���#iN�g�}�MG�c�9=�:��m}y;l�2��MY��k�4�����eE�2Ώv�/���n�:�<�Uݥ�X�����F�5.
o�R*r�j[5�V!��Yk0�Ņ3�M�Y-}��f�4;G�`�&��؁�Ulݘ�k�l�ȯ�vޕ�RC����΂_\��¹=��r�{��%�̕������b����.��x�6\{��c����ƞQ��G]*�I-z�%�GT�3lX��p��jk���oD��*�����"v�
fh���.t_V I�
������2\����m4���*�6�/���W[����JF����x^�X��)���ή���\��eq�ˋ7#پ�?�h�L]t�٦�W��u8��E�f-����ꬖSW:C�#7�y
ʿ�5ĿP
6<�ڍ�p�f�=&�;���_߭�KVo?����<�x�gp��/��_?�m�v���f�ͤ�����Ef�N����B�*&~�j^���C9��~�v��ۭ%7B��<�Φ��bv�ߕsnV,BCFCe�í<X�j�2��s!#(����K��F鬈�/�,"a��)!=4�zl͔��B�6Z��;�wϗL	;�"Z^o�,����r��s#*uA��_C�>�ڈ4<���Ń8��l0�<s�a-��
B�5�յ�T�L(1����o��q(6��)�74
4-�so��x��f�æ��L1��5_�7J�l/�XT�)�U��y:��E��W%�"`�|V�Ow�4�:��?�MU~�ϷfCQ�h��+�B�0d���0{!RW�,��
;��@���I= U�sD�D��-�DS��2d�p3�pN��=sS*
�OEw͌�}UX�%�gRӊE��`e~L
!��in��q��қJf� �C���
Fo��W��7NFΚY��Ayi詈���I�������"��	!X�^R0�5���{����D��'����WO��A�V��0ǂ�Qn���N	���94�Y��-WG����a���'5³���$J�02�
�,KɸǁXB����AC!��<�	*���ݔ��5������˾)�G¼�(��=�&��?�Ϧ�]a��]�)���h+��ș�����wq���ޛ~FŎ��q�v���[C����6�"��"}��L�LoQ�L�j*�!�>�;�
�;��JoW�—�1���[���zTMX��&0/8кZ�me��-�bI
�-�
��f}�lt�.>�m=��)���@�����`a�oD"�X�����yB/�2BCJũ����}����S--��U#Ee�"S�",���j�9B42��9Ъ/^�|��Ϩ��ap��F#ՕXÜ"����,,"w���:��u�S��8�� %�NҲ��j�>��L�|7!�S��Gz�gЕ��LJ�.U�H
����|���|�g��);��o�Ě/���Ӿ��˯��6��6j��]k
��}R�Ot�nu�'>�6]k���dǤ�9�8�
ŶA���;����$l�w��ٓ!C�n�	����Bz�|?�Ӈ4�ϺYš�	�5�H=��,;J�g]$CV�[,+a�o'�X��=�D��5��$���G�`�(���4�Ik3�Sۚ6��>��,5ܨ���>�{p�����(���bwaK=��:��U��b��������!��m���@.�կ�똆��ז��=5��;�5��b�gS�����������@��^c-#w���1M��
&iη��,�$m��`�p��쁡ɡ�-�1?�e�Դ>=����+���oCa�P�n�~gy��
�B�||����V�{š�jg8��^Y�bIŭ�kG�\��]���W��}�"�tg0#�8Q�/���9c"gj��5U[h�xA�F`�fx;5ɚ�ab����|�cSA���q�SG�)��S��>t�ڥ�����~�~����xb��1}����H�c��HwǙM�+; 3���iB�:}��.�$��m3�X��W,��:��ɟ���н�B��5�����ڳ�x��{a�k�_�)���n��-��rn=~�{�U�sds�	׿%~��3�ý�Sh����S3Q����^S�7���� g��UϽ��;,`}��/5c���|*hcE�Zִ���=����0w�$HX�m�	��XCR�*}˃��B�]�d��
N�sl�8���Y�W��C�M`�w�R�����T���:
,�D;��vH�?�9��uB�N���t��G�U�/�!�:W��������j�*z�,�Sů;DD�4n��8�����}&t��>�n�炼��M��z.>?�}�kOQ*Y돧�秾{3#b[�u�3�z?����q�����`�Jϫ�����p6Ϣ����8c���M���?�������R��D*��)�5y������Ҁl/�%},j�����U�k3x���/��Ǧ7�C 
/��l����,��F��D�/$�O	E�B��K�k``Vx�Z�T�׈c���/�-VT���
��J`�\��q�YY�gZ�og/���`�����<�#�c���ϔ
�	�d98ȸ^�ڃ|\�x����6'�W�(�'q�����6�V�^ZI!���Mэ.�Ur�j\�2Y�x�	fs�'��|M�f�~������հ�L��@E 2�d���`K���މ�q#��'���6]�C�K�[�@�����/c"΃�rЋ�I�1�BK�0�Q�A�Z�.��>����/�����`w��ٸty��m�P淒8|̿�tyQwv��6��J�ULHZ��j6���粑upS���/K���X�
�ro�乜3�m@j�o�1B�3�!	V<�l,Oڏ���ߤ����쀧x�9c0�(�0�#�+gxvW�5�pEQ�jC���a��^L�R�a��=u���IW �0���X�	j놓��k�bM�r�l���&��_��2�k��G����=;[�nP:l!N���+�כf:d߬y"}��izCю�3�k��6�A��݁t�W7���Y4%�R���B��k���`;�D��U9�{c1e0 낰��0%��(C��L
���"@Hl��/
i��uz��j����90t,hb���S�{��������԰��Ȓ��wS�Z�2¹8�x8
�K �B)�<����p�+wRjfč�2�hS*7�-��yತ���<0�A�C��+@e�'��S���E�`�s�������y�e�+� �M��V�Ye�l�w<�2��=�M��/�lM��=�5��M
W_sY5�[��n��\��vmU�!��P�_��
P]�nօ��G���g����g��ڳrЖ�+�I�wt�5L��F3�!��|��N^._���1����,��3"@D
���񀥱�����lH�Aq��r�}���p��_a���uB�d��I�� Y�#���s�������d<�I&���j�U��T�(�wS�ɞ��|�a���r=��j��&�|�-�1c�v0�ou�gG�OҚ�-K��k)ꭽh�tI���0/��]ÚPGj�����6,قm}�*ϩ�\�����d�W��D��4�%c��ڪ��b�܏��߈�����sNdHy����_��9^	�HH˛�?�hҤ��̱�9��g\c.�u���bSԧ��r�Q�|�t��^ﯔ���M��(g��/��5h�a1A�4��5\R�G�H��h���H�i�
ְ�i��!t0q>+\W��4�D��<��\(Ý���nh�(Dv�$��	����"\h9sܥ+?C�
�k�aC�(�59�rN��{| �UUȂ�: ,廇̆�rb /��ִ�j�����*Bա\��!�8Q2��7�����L���b�3�ݡz|���F�a{�)ȧ�(׋Yj�E�I#	5rsL�{�"��_h�I>��a���c��4��ϑ5yS�oQG�:�4N�=�|/��(Dqx���u,����Q�=����V4)�^h�oQ�LuT�$��-]� �9�1�^�N`k��71��)w����b�x�p��g��Ű�~ ���s�n���{��U���<��p��F�Im����C��v|��L��>B��4���g�)��D^�5�	e�|�?���<���9/Β�Y�ş
.���Ⱦw
�g�D��~ֆ��c�*�s����p�=C>��L��k���&s
��S�����OZ�#le�@a�L�;�L��F]/�����0���gĄD_NɄ���CQj��z�]d"J9������(D��42��1���FĨ�FB�f�I?[�����v��3qFE&N�g�>�®��V{X��B�8��a��Ee��\y�g����଴��	�_��l�f��ậ�j�\�jCE�-U����[.��_�y�,�_6��`���b��8h�R�bgA!~�w�>�>���
����#A�
X��'?
)U
��Pʍ��������3•��\��U`���{%z]
���uUuPBً����$�JԂ��3�� �L�PF�x���.WprY��Ȗ�	\�����"�𰮷qb��a����:�{�%��.L�;�k�0���&Q�+��\��]����:Ff�@ǔ��/���FR��a@�V�����ä�/�M���<.9)���e8嶩�:�qJ���7S�BM3R�����vG5��&��ujT�$$Z�e�>P%Ű��s�3���S��4O�B��g��9�Ҡ�x�-�i~�ƿr���ܐ�P�K��6����5P���oR���k�/^\�-��k�lrb���7�:>r'�1B�R�/gO��v�z������%�4��(w��S5���>���ܭ(d=�!û�W?��o�J���`-�sk�E��&<c�Bf��0<c�d�k�7`�%-���d�ϰ���@D)��c�Pa�Ҭ���}���3����	����k�،�b2x驹Ŝ$ɩi���>3{�j�� 釀�Xm�t_��7�8��YZJ͸cI���k���-Ҭf�Z�\�y�d@�L����T�Ti��=�Ț��T�Ӯ��蔀$�Ҵ���OL)��הk$��%�g����7��!9)o�>��{
V��3��}�UxwL�y>5痍׊��"nMkDV��n�ƻ���*>2�^��k�C3�J�{���8��u�����tcZ�6ּX&�'�@e��Z�э�Ӵa�A(�ж�	�(�tz5�Y���xQ�3���@�a���ku���6�ڸ�I�>˥�$�U��Qy K伧?~�@��o������Ǥn����Bֽ!�+��/���sG%\~�ĕ���iQ�2KH;�1��B���U�DЭ�FZc�{����$��H�K/�GD-�w�'�f�|y��.���Î��Ұ���k������C�&]�#j]��d��E���T��%M?�Q�	#�s���s�}���l��m/�%�I�b����+��]�D8X�<n&�V�	WfE�X]ɰ�%�b֝X�.|O��0&j]X�ᚸM  ����(E��}�
��k��Ή��sh�a���Gd.l̈́B���m�z#h�����T���Mϖ�.兴ҐvU����tk����1X��-�*��Q�6c�"X佺�K3YV�"R���<+��]���ڐ1S��'�T�ro�EG׾��G�9R!2��k-׹k3d�sN�(�ta	�8��Uː0d���*T��%4	�,�~�$���j��^ʿ��$�	�/����s����ҷ[g����&�'\��5�S�'>,�>"�U�{���E��#N�c,A[<��IoZ�!gõ����y�c�jo�C��s˂�"�y��X�B�s�b��*u��b���KLE/=8���m���*Y�"�	�\���MU��#x�*2�G
�B����Ӧ����3$�s�@V�/RRJ�d�xmS��Y���я�|��d��B�s}��^>�kL��zs+�Q�����bzӺ!�:t��-]�EG�Di.sF�P7����F&!���I鑇
�;S�E�"HY(<:0'
��<21�ȴplJH)g�Od�5�ym y�&�Mp��>T����&�kv�3}g%�r.N�WLڰ�e��H���=�����p�,l�D�6�r������w�G>�1��V�i��+�Q>x!�y�V2%�N�np��8��^?�]]�팁��$4��n�1�k�-�
8q�tp����krJכ5uO���-(zm����k��K�Z�3��
���X�d};�s��N��
�!υ7��]GP�<�;u�yUuw��_
_k]|D3\�!��!�AE������A�3`` )ϣ�����Vna�(Z��ks��(B-v!sJ�(���_#�����C�j�
Ù!g�	[N�D6����%ֿ��%�n%��d(ߺ�k:r��!����坮<M
������xW�]�o+�qVx�s��_��h�:�SYXdW��=��|���u@b'�S9;]�x�_l�L�a��gypm[G..Iك0�B�zL[4�᤿���oR��$��n/�ګ���ɮ"q<�[�m	;�`�K�~�O��r�;�1/�DR��T�%uR:���W���AQ���7l�eʴ�NfM�
L�o�E6�
�4�n�RLG9[�"�T|v۰�aL�!�T��6C�{�*�KU�Z��������K�ӭ�k�V�j*`P
sZ�a�ʱoZ��%
�zr�L���4F�G”W�wph�9�<LQ�[W~z��ڶ�+��%}!B��������ʆ#ؗj�X�Z|gb
PF��W�e�ف�
�ş2u�6�
�QU�#�lxC5��+
*��PQ�0c����Ճ
ZCͺ=�h�Մ-x�M���W�?�3h����cm@�,��Pq�������b��퀌5��^OØ�ё4In�'�:�.0|��F����D�m�3�v��K�l�ra��"�2$��d��a��P>�ðD����h�Mǔ�^�ð�\�jjyU+�fq��a��!���&�w�������#\������8(���6��Q������z>�=v8��CIh]��N��ۆ&�^J��A�yA�ވ�ñ1saJNm�1
e���u1>�\�z�bR��4�A�y�h9�8�xc�c<�x$k�ғ1 �7���k߸<~|EC��+	�FPPְ���㬲��x��T�k
�4���/��P|�;,Ý	�d+��G�C�)�;.��0��j�,E�5|������i�X�璽�Uh@��-��Ƹ�N)���3R7�u*�uS���aA�Ġ&\�ع�u��:ֳ^� ��	~�%�7��R�G�e�0��:���o�ڛ2 C��)ܸ��J��W������}�w�����u�w�gy�4탩�M��U	ATsܳ��i�,��Λ�}.�2Cu�d�6����5d�������m�/.�j^�suh�Ɛe��i��e���1�-(ͻfí��C�b<wP�*�F��gI�u���y�w�r��:�XN��g�\[o���aJ������6`@D�������)Q��@�V^�F0�|_����o��ݛ:�j�<ٛ����|b�E�R�a��g�J��~�dM�a�!k
HOϻk�"y*.�(�X�g�njdsx��o�ϨA�l�Mn��nD=?h��#@l���݆0���j�hZ�>�cjM�0��\�T<@V~�y�n�B������/�~�|?Z��.���j�z�pi���a�U�f��:�:f�6|*i~�A���啩X���� ��+[���dkn�f�<˽2�&(&eԒ#4����+y^���rgo���HiG�ѵW'�!�D&�� �&��e�*�ګ��7�M�a
%7��(E$�ǐ��xB֑�:��{�s5��
��Qe|��lԒh��-��d>�*Y�}��1�����9�<r^
{�7��ɂ�����G��q�G2 �˟n�����e7�S89�8l�g��=(
m�ֶ�3�4�ڢ�YFNU�ƨg
�	1�@R5�DI��Z���M�`9�4���b�ގ	�.k��H�X����b�b�� So��	���!�����0P�aW�:�0����I�3�
(���A��({�I�dI�.��Y��38����@�~��;�]��n�tU3�̬9����]�ws3UQ�hxo+Q|��&�܃���Q�0i�V�����J(�]Hv:��XV&;Hd�$#Ed[� �谩���>3��2q8�,u"� l�j��t�2��'��Cї)��mBΥ�b`��ن͕�g�T�Z�l�^����l�An��;�.���)ӟ���IXls�i�a��x{�Z��C�Ysr�Nr��R�F���.��5�3����C�>5ۖ��>Yz�C����w�]�Ɵ��q;3V�~z�c�y"���c��`Q[�k*�6���H�}̻
5���r��j�����T�Ɇ�#���pC=�s�R�
r�=����.���u��l�R�+.`�?͇�[�G�?�HT��F�T��A��e�D��'��
���q��f��*���]�өZ�ϯ^$�Ҍ��i���c�2�5�!��1K�`p����t�Zh	�L����$"���_��ݷ�o��#��5LEa!$�i��ׁ�yRP��G0�xo����2����(���z����m]a����e��0��c��X�^�t�ed�$u�p��}z��\.�h�FK��
h4�@���dl�ߍ��V��[<t�"��,�TμPˢ���lp(�6��\.��8���>�����W�qXim�~�/K�\�k�vjo��(E��['��	�';7����!��q�^טEF��MeJw���'��'{�5pͺ�E%`
;
6Nڄm���&���-6�w�7�1��4l��^��3ї�mϨ�,P��s0‡�-K��U,��me�+f�碓-�z]Ш��m3O{�]�����Gcp�Ӄ���;�1��ac �S�}���ncv��N-����:��$c��b��t<	%���$|���Z���(	�n�si`����G�^�T<K6?�[�i�\�1{Z��f�Ru+fwV�`ddnX�հ+k�F2)�3X�F�u��㻪�$��-o�=�?�P��a�:�������$ޏ�KV�Օ9f{��m3[%ᗒ��~��Q A9��B=i}��Xo��Pۍn�B��JY&`�@ǐ��`�ARc�������?��&������j9�.���&�e�
!�E�5|Uv�B9�|=���^���t�LW��S
6r��-yx������3:�s��Ǝ=T�τ���C-|��P�q@����w�U�g��D����k��C�4{n�)h�ٕݤM�9B�0|.�>W��.y�}�g�ꡏ�L��,��Z����
����[��L��#���y�*W!�W-��V*38N��M��
�)��mȿQ�A��&��nWF2fiǙ��?.��[^���=��k�'�^O���< 8�n�!��'�5����W�L�}��o'��ls�r��x.�6��Bf��؂�vmm��[���lm�ͽ�wm�gh�p�?�[M����ώu�@�U��X�e�?�ٵ_im��i�����d�6���r1�|g��?ZH���bfu����>��Q�Yy|�lυ����FU�<�8$�K$ ?��r��&5
��o�)wf�F�;�J���{���^o!��6�a�]����`��Te�3Mv*��W��~�G�6��sg�/p�L�I��eb)�~��f��z��2�
����!����ja���s0߷�|�k��G�%�����X��jWW�:�]��s�)�[��9���Y���qv�j��ez픅��A*2^������,*�ʡIcz�j=�$W�ە�n�$��لO��w�}�����
�g���3)#V����c��=�i
�=~��]	�! 7#۩}����q	V���;j:A�VK/������jit���5�. X}���J�I��=D{���(���ۂ�������'��J�b���ڲg{ޮo�I���A��W/d����'KT���=�v�T)3����������	%;-�6�,�X��W��//�@VK��L�c���7����叇d�g�2�a�b����ehu���IŚ��ŀ��Z�]���مV�ա��}d���eV�d�æ�����^��O����nj�3i{�Q':۝�_l1h��6�hU���i rk���W�m���zL��׫��	���6ԭ�����ܘ��,�˅��$2���z���φ�HY�^����r��T�X3B��z�8`{��L���J�l�>Ϫ�A^��92�<@����ƻ�=o�.^�n�<�����c)�NkY�*i�B��r�P�m�5�*f�N3����',e9��K~B�Y@���n��a6_dYz�#cب�磏�Fw<2ZJ��p�`?37��7P��
����{ۀk�%�![߿���w
�Ԑ�kа�#7�
��_�J�H�>��;��,6��7S��9g�����ڿ\W��$�
$/���4���־�FW%���G殑��)P�V��f�
�OMWM��U��ޙk	�;�|Zg�6Ul��&,3�1�ʼn���%�v)6��v���O�dpy��� p-f��u���T�
+P��?�]`��)��3j��eS��8h>��:h��}�>�@�wϻz|x���u�Y�G�?Zȥ�����!/s2�2�<���I>���2�V-LN�}�0$����,��>�4I���e$��n#U���B��h�{:�
v!��Ϙy.i�Lf��~V�uRu�>4&):uB�ޱ��E���I���S�ⓖi@S��Cܾ��$�%:�ٿH��y�=+؄i���<v�
��Y��K��AI�|nO�nҹ
���2H��}�<�e�`e�B�DC�a�0��{�͓�}�M,S���̛��A7����B#��I'��Π��Zqϼ4�gf���A���t4�U�۷�6jx`�;��sv2v,��cXz��Rv:������,8퓡����&dCc��G%N�DE�2�t1Mp�
I��%Y�)�\.դ��M�u^�1�u�Vu���5\�	���=eޕaӭu@�pDH(��ۉɬ��͎�Y���Q?rxhç\��j����S�1���G`��mb�'9�N�����2F2QE���HW��8���*��+�Wc{{n�6Y�y��
�dΰIT�T�� �l�k��:WD��
=���C��3���2�����jQ&��kav�u����A��I3�V4tF�����=�0���@����Z~i�N���f�C%T�R`V_�aMJ6D�����t�0�*(O"A@k#F�ݍvE���)���J6H��6�P	z����B��ws}9��
ЩG�;CԒ"�V�������{�t
d�76��PD��]��ʘA��!Ç~K:[��3���N��L̎CFB%A�u;�J]Y"nǗ�W�׼�m8���2jw�["@��6���s06O�d׽�h1bex��3:\��n2�zV�wŇ�9"6��awֻ�tu��4�M
oaa�,~�@%�&J�SX�Ҋ�h�+-x/�^��0�3*ry���iȜ�<kʓJ�z�9��O�?;��>�s&�-'W���I}p�Ԕ`�WW!�����: �a�G� �؛-����6�?B1�\ w��=���=װ�*��k-)����#��i{�0�9�z:�طɣ�UV�c�O?Q�3��Og�e^��ƒ� B�:��޴�j=1JϨJ��R�5+�NL#���f�XG7�rYȕ֫��I�b{�Y%6�q�>ªA1��"R�R6o�$:<o���:��}J��Y`���>z	+8}e�z�5۔�1�.�r�U��;
	�ZL�7�k����5ݚ��5}dc�^�_o��gTM���c��-kM��R����X��綕1ج��Lv�ӫ��4?
�iJ���y��Arp�&�v����`��m)_�rH�G:l�(�}AX�Iv�ɚQ�o1���{�U�ȫ��0���Et��Ӱ���L+(��_���QE�tX�E���;�-II�%�2�]h��8�;�.T(�
���{��)�C�P�a�A�@
��D�4��-7��<!?��ܕ�mT�'2P���gz?���'ۥޢ�l�vXokZ�!ا"'�e����Y��C��-�y ����2�PO�s�P��y@�����v��V���:��°��=�d�M#���+*\s� 	T�.v[���)[�d���jk����s)f@�|s@0b�T�";w��js�V���oy����
 
�F�z]�`D�`(\�?�G϶X�M��j��gv����B��#=�J�
̹��L�8�1�7~ֳ�ۆ�Q�G������J�0���)z�]�o��℟��]���g
b(|[K���9�~���~YC����j��������N��8D�06�

�4��_�R&��5��5O*���σ[q��pU�68z=�e��d�KByA�}��b�YN��Zʸ��X��p��jܟ�{S1ؼ될�$-�v�Փ��q���n�,̮���OPD���}���݆�+���aM���ON('Ȍ.
����~�����~*v�ׁ���j#��F[�ew�&�kn�`dX��A5u�f�=G8{'�ѝj�!�{D��t�=���p�w���fC#h�桽��Au��o�O�F<�JZXPwuY�f6���L|�:�5� �J��v�f4�,�<+��c�Q���{ꟶ�`�l�Qyhzpd
����Bqg�q������yp�pw`��'����4��KK�Z>�2�9��0�A{g�M�O�<��иZ>�H�t��gQ�����p����{O��A�쩴O^�!�$6�H5P�š��P�}��׃��+n�C0�t7��1�����>���3��I�7�u�x2�k��Y���%
/�)�*O���,�]L3�����TZ$�B{@l��E��Y��DY����������'�`����(�j̅"�S���Ly�K�q=#n�O�SH_x�~2`,"���n�@	I��u2��6�Cb-L���8ǧ��
�S��!���D-��y�<���G}UfcSdX����S�y�v͵a�dI���?�y��$��Zx!�����3���Ð�k)�2KQ�y�s�ެ����ф��2jiax����,VljipN��~��l9�C{��~�m��t��V�P(KH�	4_�9�zs�^s�O�M��#��������,��=6�Z����f�֙���wyt�[��|�a�&SHv�b6
ɬ��9]k!�i
?�8=hO��hd���,��f��fɣ9�m�sw��o��I�|(�]�!o=�&�%�;�+��	)�ۻ���Ÿ���{�����Ї��~�@ԥ/����Z�>OV.���
 �Z)��-	��eHF�$�0P�8�-��,��NF|���tS����|�O7?��?}��)��w2�����{���I��|-'�K���쒨G*����)��♞m-%��Sr���ȌD�8��l�_�<.�|�_�cp��_���H<_e�w686z˔��U��ϓ/D��%�e��C�&N��KcP���`�=�?)�u�_�\^'��蟼wfŬn��������K:�D�=��f�1@c����=�%\yV�3)��L\ �g����_�����fb�։�p��=Y<���d�7rv��1�8�
Y�~��f�Ly�����W%��G���5��H�
��<�P�x��[�R�C��e<��[.N*A>�����A��]���b�j�y��|ZK
�gmvW�G(�
k��%�be"kd����[��^�X��؃�y�WrLPi~�s�[3��,�s)1@A�ǃ9y�İ��7����!��e7bD+6��"��E��%�#g9I�|�;��5���
�����Տj9T��ǽ��4���h�Z����+��]r�
,�Lm���:k�2�gUBM�ld��a��B) �{�?ߍ�Y���cH)
���"�/Uh�;�s�UI�I������NSp.��lĐa�d��"��˓z���T����݆l�ȞΞL��e���Vq��,01��N��NN������e����qa9�3�ťd	l�1�'f�dz���2J����v�H�s����+��@��`�\Xh�vB�����}�Ot��<�^�"7�쌾m��M6P��
�AQ�cX9dx?\K@RՌe%ῺL6��\����~�wf����j�2��`R$*�m:_�b��1�E��l�ΰ�bO�9�H��t2�x�ε�i��YΗO�AAl��-�{O���L��ә2������V�x�d����Il��N��ywW��P�;\�O#�Ksr�gQ��xh$=U�yr4��N`M�O�@�3��Y������H�B�<��yS�lYTI'"_�]���.C
�:���=M��G�y����91qr�+n�KE��B<��~e	�;�Pb_��?0�J�tv��+�fy�����L�=��}選��%ݳN������0�H`�$���4���V]�Vm@\J��a�_�f�U)C�h��}8��e��*-hV���WY�z{�=��a�
�)���XB^1��X-��[�@��0$D�x��o��H>���>��0Zԧ����=�m3�4�������g��*��t��a����e)uH���e��'�4$9)��t*N�V�������t��A�?�#y,��������	�� �^O�������Շ�8ʆ�i��_����zs�.C��d?�Ec��4|x��m]-���?w�@!Ȫ�s��O����t����3��Ա���1��E��X��^lx{���4V��rK$��3��X܀ʬ��'9�DѕO��B���|SKU<p���z�{(x�T�=in�!R�F��.�R�kL^� �2i$*o}O�!�kuU>"9�̰�Ll��c�٥44J�r�\&ݻ�"%�bL�>1�x����צzܫ.�K8�+�����=�����%���,�����2�`9�o��Q�U���fM#
6}���l�
>����L��L�]�l�T�3�� ��]�y�r��z���z<�s1���R�ڬ��B�lc����V)��׼��]��.��b9�{O��e�������)�����sЈ�m�=�r7;دʨɕ�a�j������-уۃ�P��oKz��U�����h�-B�b��+
�u��V���[�{هe������w�͐1��@�_S�b�B��T�J[�v�󊿗�"xP�_^7�a{�0��Tvn��-c�K�G���]��$�^�x����g��^˥�k�i##_:�.۲ř�z�/���7+�kq�ƤT�h�`���*�U��[������9`�%�������΂��^nVOyj+6z�;TCzy��V��j��{��<<3aH��9L���7���d0����Wt�y�O��Vip��V��U��~�R'�3{�{���|��%��{m�2��IᚭV]��ݘ�9�g�<�S��-4b�ٻ�g���D�|�L�5�G9��r"������~(}���̆�k̅��C��GS��7�I.8��Ɋ��Vȣ%�c�X%��^l�qc'���Da^���Tv��U���:ɧ���A��3�]'�P�%S;�����m[
T�>�������#�vcP+�hjO��`�hi��C�~�>�v�b2����Æ���pB�ۍ��{7+>�T���p����~��Q�z��ju�����e���
�1���3ݎ�ղ٧���Y�e7�B��䋬{�Z���X�,�	�ٸ���������]�o/���kF<)����™y)�7f����%��T��[�푨��J�{q���c.���Oa��k�ѭk�O3Zt�����m<��֎��G���E���N ihM�sѮG�x���w����,�H�
�Z�^^�\�<�
ұ�]Y�H�y
�^�U���챏��^�U���{��N��Z
i��v!��&�l��/U��e���_�=9ʠW�Zb��5��x;.��v|���g��]��<�_�����xx�=�է�2B9�yz�I��C�o݈�7hނ2��jFk��,aMr_�k��q��߶�ꦲ��^ڥ�6v��;-�}�
Ө74�{�[
���1}�C���wڥ�
�;N��{7/�]k�j}�X
�VzexM�<)g$RO�|?�6d�-`����8�H��q\��)XZ�������v�{��Efk���L��g�E\c��i8�Iޤ�O/�*f�T����rF�\�7��͆�4'�)�[.��Н���z��k�EN\b譞�(0��(�X#��Nz�
B��T�,}-�ߎK���QL]U�j��v�Ŕ���S6��o�v�"��Z�LkE�;��a+�A��ʁ��ڲN�p�+�L�`�)�1��}���ղ
�e��`�w��t��=v�ƽ�݂
0�?��FDV�n��������#{���}�~?��QK�]����qގ{�ծ���H�жw�q���^{ؓ&��)������ɺ����[_�*��9�G�֣�T�E���T�
n�}�8A��'�
���Ϣ�bK�k��u}9��ҡ��H�P��{�;��Ҽ2ä�E�[��9hmPo,����0%̎=�lS���I(��+�A�:[��Q���~��NU�]���&���,��Fp<�M�]:|'�wj$����z�Q.@�B��f$`�I��胂�{�^
�-�ղh���y6�q
ԙDm��}s|�C�����++}�K����}o^W�-��r�x�
xރC��X�A�$7���A�x�g+�d��gp�<Ykd�QTg�t��C���|c�m������鵪�C:��R0,J��,��p&��tk��IJ�s\�D����L�"xfpҲF��'UD����H�an^�m�ۘޔ�FI�J�i�mżG�p�$�4�4'2�+�[�5�:5x���)Q![a���i 	"�V6�����^���?�0��!��:5���ٜ�2�h/O���=A��k�Y��/�j~�ڝ�d��
�V���<�O����L�*n���w�`�†�3d�G�Z=D�[Q����_YFA�Up��lk.�	��{�6�4��[�P���R���>�)m���(Ol\9��5�{�����'��t�'�W�dy��O�\�_h�}��w����F�W|�9�p��U�dE4�y�~.��0�w���}��l+�rU��Gc���$��ib���i�%��V+�t��2L�D�2���C�g�Դ���Ls9��\y�rȾ�w�X�zp��C�%���`G�P6�䆈���B��n�0�	��f%�>l�y�Ͽ^����Β�-�����>��EL>1<$���Ւ�G��Vc0�o�~Eӣ���ls,Sgj,�Tɘ�q`V��?6��D�v��p%��e��V�p�,��07��:tx���"��{����>��|`��2�V�����5�M�"C�cLn��j[��_A�/ϝ
��%���4�.�3\��[zJ�lS�?�bW���d��Ϗ��%�>��5�H������`�h��3=���SJ\�z���k�V%P+<���,�,湽�Q3!h�� ��@?��9AE�l�ana�>e2i�h�9��0�\���S�|�y�@��KA=������v=3�������T�>YF`���k�s-@���?��>q�<�qp�Î̂Ա�1eVg�$'A�P��â��x��~
>�y|7V �/O�H�J��Y�K��e����e��D�<
�Jw���>��ϼc?��<Y�'|��{@�J��o��+��fV��Y�| ��i���v9؆�7��)U0D-�l�Rh_Y�/g[y�������{'۟�=��{���v~'kO�lA�&pn��/)�� 9̊���U7�Y� ��Svz���d���
k�؅g��G�a����dW�r�4yF���:� w�P�)\�Z���fx��p�}V�0�T�x��?6(�`ˡ��F5������A'
(+`�_ �K�M��ڔ��2�{216�D�بրx�I�&_�;�9��T��ϑ8<����:K
JҚ���6��X��,�Pf�O˴��9���H$<�-D��6���kzW�{7"��
�骀��6W�S��m���$v^��|�40�B+{&W�$/��)b0Wl��h�i�-U��X��ճ����IF����1��B���fOa5�n��C�pf�)B,s��
���ŀԥ�S�h#ܦ׸�Tz__m��39p�K��k
J�BKE�>kX!s_r��Y��_�ܖ<
M�Z@u�N�����%�=�-#r�t`Qh�W�a��`?�X4ȃ����M5a�X�j�B[�h����:P �@�J+�R�sݞS}aY�}@�IfZ���KM�$_<�G��O�a��B��z���2\:m��&I�	��ǯ��h�R���tN�x���j�/v���v��`:���}�
V�?�7���ڱ���u��W�,����6�`ߑMU@u�`�Eߚ�jwKW�]=ܶ��5�()�Nm6��!d�ͬO|���^�Іe�<z���i×�k�퇴���ǫ�X�浛m�����;��bk�!�8'���+�������k�����a�� �;�^!�'�v��5�>�~b[{z���1h]�wL�) 
R��>�W׾�Z���"�=��ؙ_�)X��
��)���nSXY/�guG���)Y��;�F��L������㣕:��3��A�|�7���=m#�|(��?V��}fJ�|ru�����6�nZ�<L�gH�2E�D�L���b����;�5.�6M�b��k�e�J���D$(�$_ߡ����/(���yYb��ۃ�nz>4'C�9�h���5�v�b(&[��8�Q��
.���ωY���9��v�[,�T
��4/�,�򆪟-<�'�$��YB�7T��b�͡@{��)Nʔ�%�/�%�c]N��yr����<��U�a�Lc�'���gI��k	�/f�KSpn��FzP�'�b�?w��{�ÿ�
���ΨZ�͋�N�"'`2�_�=��R�yy`2�lȵw�����<,_Y�?�4�栜!~q�Vs�f�<.?yj�<�?��u��+2��&�-X	�7I�+f�I����NFk� ��qσ{�
��n��!KLQ��%(�'ٿ7��r��2t��l0�P�ۣt��{�����L��a�ֹeE����<�&�SΆFq1!\iH���@��
V��c� �ɮH�|��pӥ������/O9$��2IU'\�I�1��˴�W2��$€��X��33;@��F��#WC\"Xr<���e�Z1�OX]���-��V�:`b�O�'�;\���&�z���m]x�z�m+C�+�`�`���:�9��,W�;l����k*�ù���zЊ��١nձ�>�x���[(�l ������V�C��'��������r��!ź�v���ͣ�n�Iy–�{�����l��s�5�5r3O����/�w�,gs�P�v;��P�
x�����_��Ȣ
�0gŸ��B云��ޅ����}~��l�@�-X����w�ۍ��r� s��`��n���Ux��7,�����f�O��s��5�bg�1s.C�22.:�����!�N{._b�@݅:ࡇX������Rf1��C����P�m��&�#r0��>�|�����dW���ԇ[_�6��
=zd�L���Q�O�(�0�V�y9lG�VO\a��c����Ut2�W[��?z�}Kj��,c����Y�2#�����U��Pq�"��{��>4t����J:�P�j����2Ξ�'�K���4��S����)=]��Q�P:6y��d����X�ϖI�Ɠ1/C]�"`X����6�d�����@��k]"����a+��S�o,�IG�>���T�q�7p��lfc��������U'��O���:S̗8,
%�
Z;����ԑ������c#�[h���ՔQn[���^;�<;c���yc ��6�3�����%�Es�O�j�_a�X���"�Al(��Y�/�:�||FܪH\�������B����C�ə�B�'�V��G�^�7S�)R�_�}���)�/��R8��(;���hVO�S�u�]�za��gڼ�E�����Г�&�^��IAxU���C$�a� ��ˆ
}��
퇜���ӝ�F�Y����4-m�t�'z`��5��5:/��R%m��oo&�[�]o�30��gLv��ں�՝H��ݲMV�v�nS�H��T�"�C�Ř��3�t*���8���"�B���~�ڨ�#_���߀�b�=�O���C�߫��O���|��s�>e���<�&uښ�
���ҷ�S٦=�t�[v�b#�N�7z����GS7�s��хyG\�DJLuS̢j���\	��^Hjk�֤�y�^�5���=�Ȓ�i�.T�]U�d��>�NgT��*�Av�!b6�<Efa�8��X�����Z�v{���z��s�NE��0a�����tyh���0T�F�{'�P0��ʑ(��8��@�4P�@������=z,By�m��S��$=Wp>�)������ȍ�5�M��:,�I�@.F��Ew̰�����O����߷��e��#���P)���O�^��j~�Y�����c]���\��t�!=�s���}w�&{�ʐ6�4�>�?�Ok�Y��1���:���y0�	��q�k�07�?r�.��.�$���.ê8wG��d��ͮi�.͢����br&2�_��c8)>�*�r|Dd��=�Zc��}y�����ŏ�>,��c�Ys�F�r�#zﲖ�!̚��?�&���{N�
u[�1!iĉ@�C0x�|�����>���mB�NK���kF\cf%�tj�tJ(H�4<�fK�c(PN�2r|��4�8��S��gL擅����G��р
�Ŵ��_B��5_C&]��a�K��&����|����>���)��Sf�7����K�1%�a�ܟ�gm�?�v�=5�m�
�>>�_3(�-��[7�;j�ܰ�5��	�N�J���J���ܔI����O|��/�ʔ2PSMc�C����3�j8��<�u��z\g�6��W�hb)�j1�6A��V�����
Ecw�U*�%�gƄpV!����=���*�%�?lZ
����Y���2i�seб\�j�"�;���єqЫ����V',ru0��w[��?GH�<�E��ʟ�~X�-�ԵP��s�ir�9f�ڟWX�Z�$��A��Ѓ,�������= W��n�9`��a=D�Ž�5-��)t���c�eR9z��0%5��{��ư��\��)�����?�&�ş?=�a1u4�k�� �[1ۗf�:�=@.|�o`��-�
,Ae�t^=�!�U��<#Xi������Y�F�
:T!��Z(�p���g_Ў�DJF�٠hQ�~��{��+�
@gg.V��bmw���<9�,ֳ̌���������ʴ|�l�M#�t6�(ٲ�	��)~[�W���R�l�^��&N�
yk��(�iU���T��Zz��c�zjKf���e�(��E�9j�p)�ω��T�*�U��Ś���*�	�Z(��3�d�?��,�i������	K���U%��FI1T�%EÆ�j�#���@�y��E+~��^>���s�C���&q>�\�:����ѡX.
�kcUl(,���eb�9�#@sx����]ڒ�PXlܫ��h�i�F�\��7� ��Z�sD�~,#M��J���=�^�����^�oOq 1|t_��OL�aٕ��o�N1 �É{��
���N�G1����0�F��f*l�c��	�ll�f5\�~��!4�H��Ps+��xq�[q2@�#K�`Q�f��ȴV�)kh���S��|�>�٧���iA	�`�k�s��|�y˴/y�
;էEF�1�p������qa��yo���d)yX'=+X��x�u�z�i��}|s?���\|���vb� A�)�2=�j�<�13M���3���O:�"3�j�%���Y8���ϝ;�['SU���.��7�WWdĬ�Y�.�O���5-�_��&lo.d�'Eک�*y�/��5kߠ 0&�..��9��PP{�r/��f����`c�ij�*Y�8��`�{���>�j3t���/��z��`@���\T��z��7S,�b��W��գ�h?�H�a��'z���n�6�g]Y~��z�i��;���WZ��]��P�,iW���ā��~`��ZO�bw6?�X���Z���~J����T_�U
�P|\k��3���<A/P������q����H����PjY�j��085��k�=^l��.������aG�8�Ry�L{�j��ǔ퍬�f��~���1�g4S†�)�MsmA`J��?y�
�0؞�?9�f�*�v��利�J��9~0L�I9*XԿr�Z3�[���6iμuV�fB@���2���]a����t��/Gյ����̂D�a����q��ǚ<�Sh#�V�M�y@��I"�j�R�A�,uf���g���ik����
��*t?�B�����q1S2
��HC�e5�ǭ����cȩ*�<G���]'���%=�n���怜՜%���j�<���$������98��SXs6:��i?��C�/w�L��u^?�e9M��zٹ_���
��V2��ֵw|| b��P�����E���Q�Lq���,�̚��.�l�Ϥ�o�^^/W��|)�Kԩ�q��z�F��)J���+�(ְ���c/$RF"(�J�[9x6���a�M����ڀd��mtqx��S�8'��SR^F�aQ֝p�]W�}JW�z�a���<�zȖ�r���xflEAa��}whc{��Y���F��9�s9)���9���>#���W�j}�|��H�q�-Ȗ�g/�2��̂^ϐ]��y�Y>x��Ij3��c�Ù#(�5�j푌`�6�;s1�y�RԆ��j�z�dPt�;���mJYqB���D"��|Eo�=[���B҂���f׫4Ϧ|�|����/D��5�����z?���}1em���Z��뗺M!�4D���C{=�+
�����(��{� ����P%^�~k}?���~�,�h�!6�/iϥY��yp�3$L���%���_��癡V��5�
h���3�M�hh�G<DZ�z���>T[���.���~��0��_9T��j���[~��]!�Ӡ��3Ig�XXV����J������zYF���Xl.�o𝶂F^�,8�e
�ي1Gq����f��1���/gܻ�g_���fȈ<�9��\�(���8����x��y%;c�9\�$�������Q
�?�z>�f�G�0�'p�F���N�/!q�	���"P�'�&�c[���ꬆi�ؓ�ړ�iE����
*�J�̙ʒN��k���/�]�|��k�I<ևg���G���X(���Q=��̍Ģ���|6��T��
���4�R���84�c^�����/�[���=�m#I�p����H�Ǐ��A��7��f��ܧ,��{ጀ��_��x��2q�q�=�L�!���9��ސ�v��?5�bq��>�|��;�Ͳ?�Z������D��L�j�K�DwG4���?�c(��s;�	�>�`�i�� �dA�Ϝ6�m1�M���c֘�5�U{��P!3�iEJ����)�ŀ�oo��<Z�����^0y#��f����=[���``?�����G0�y�>����m�2������@L�����:�s=����O
�ߴ)�r
ݗ��O}"	�f-���u���sG����+�렃�:�1����<���lC!x�v���/�`��O�_ꛩtP�-[?�=�}O6'ȹ�>8�����Q���b�kc�a�^��B�f�������
@I����A����_�]�ifSg6#(0c�U��~�%�c��R�cv��G���ܯ��&&1��y,�r\Ƿ�� �`>�~{=���5�����ڞ/4n�#%�6ib]1���Q{%�`Ç����`������%����y�J���c���r<뗄�
�kK�j�*��>N��Ol) q��I�������S}��O�~M��UB��o��J��jO���P���d"0Y��T4�M��1�0h��'ج������s��U�ӂ��?���~�/�a��A��5�x7V�	�_}x���e�g��?��l<��o5��#�l��zך8U�U*Eޏ������a�n�m�-d�%��	��b�-���c?�gT=�e�@ҳe ���ä��Z��n������ּ�^�W�~n�^���F��!�������x�{�fi�;ZX�)�샷��e��T��Zj��=����~7�C\C�8y�#��/��`�E��N��ώ��^*�L9PN�]GT
w���E����r��J�i7�\[�.�f\����پ�3�?�ǵ��B�O���X/G��sCx�Y��L��pB��}=Z��>��Z����^-��L6�3]A;�s�
>>�QS�ޯLx�
y@9�ā5rB��5cG���(��Q	�iP�}��2C>Ya}S��K�V�o��if/����됏e9��E�r�ƒ�c]^�m|`)�vr5Sv��ҧ��bj�|8(T���<XYf�ug�j���0W�}�#_��)�����P+�6��IE@��>�P�h
���ٙ؞���6��J��$��:w�P���F�Z�
%�5��	��m�vҭ6���Y�l���W0�eE}���^�m�+��f����W�'�l �%!8QM��Y�v�:8�e�K6��s��̲
i��4�@�~�$�%�_����+�^PkR�%�:���*9�帾�;���tY��v&(rѫ֍���uP��&��Q�f�[�n�)a����3F�O`��-�u���s*�z1��6�hm�@b	5cM7@�\�y�֠��ۉ��z�Mmfv���)��*[���^�����M�e��t�y"��QR��7X�@a�	^�.��xv�:�I�Z�*>�\�j�¶c�5Ҩ������;�wrv�lCG6;	���ν�S'�Q�Ȱ#���7�j\�j)��U�q���r��1~�}�U�|��
�r3��b�G7�w8w��-
����32�*qKݳ+m���L:������)����,J慽Yԕ͔����IfYA~�Ԁ��fa;�j:3�|�7�_+��.�"�����Q�lw��A�丁��s��'��uc�wqU�b�&�f�����\v7<[�g������`���/�N]��5��x]��@��\�O9O�Ny�YGe�f
�e�v	0qflwn�g�X��(}���ejH<I���tS��#����$���1v�@���i�0��y���5�ۃ���<��{OsY��%�w*ׯ�y�/G���L���=�s
�)�~�OM��ċ5굟��~I�^Ɓ���%�H��_RN!�I�)j:5c�Z�	�-'Fۘ�5��
��/��X�n���d���=}�g�8�:|<p��܆�ɴ���(3����kq&2�=�.
�L(9�|v�Gw�o�>3e%/��Qdz�-|�!W�{?T�-�bLT͟y�pwE���#�i�Ew�sV`d1��e5�9�6����rN'��J�����4yY��MC��Kdsl�!���h��r�����.O�P3�`�%[P�
[6�Ş۝�
@�Wm�:��s��;�w���_��h�s�?~r���,��=�pD�tZ�2)*F`��AI�kTy�G���h�6(�ᗿ��dd)�x��L�O�G{	�M&0L�k�e(C̆�pe���#=����
�	k�t_h�wz���.k9�̷�s3���x��)�m$��H6�o` @o�a�2�<��r�b���S��v)���!�m�����l���6x��\������}�}��i}���؜zާi5��4<�����Yq`�wc��@͚m�TK�F�!�s(��@Rޚ���^
�|��`K�#����7�"i�2��^1_�~/\6j���C��
u�����#ysC�@GГ��mNt!�SaL�X���b����LFm��VS�{&�{�5��5Y�)cU����ng�{��J�V�A�����Ɓ��H��}{��f?6�����l*�5���ͅ|��<��Ac�j3�z��ԥ�q�P�'��������~�u�*�߾�RP��������Ry�?v��J/�[��Qrȑ�5��
�m@�����t�M֭Yh$�|<닅��?�}_�^:���q��m�����M����X���|f�P�D�T~&��-�:�9@fV)���RE�:�m��Ի��� 0����IFA��`���ȓb���n*��xy�Z���ף��"�C��}_�5��k;ز��Le����v��{
���y5�I'X�$����gc2g��CJ;���̗��=�e#�j'�M�g؟ph�@L�tO�7Z�哫$��o�9��Iُ0�M�Y̼�d��4�]�gk㙣�;�a!�I6��[1)��%Tr^M#PwYP+��T����a�aQ3<Ɏg�ma�����ǀ�eZr	5Sz��j�coX)�W���	��C��aA�y�74�*���$YA���14�x�����^,�G��K?�&�M�Tc@~��W=����Z�M�Q��:T����ۚ����o�@��׶�/�5�^�2�}�z�Z���k,�c��JԷi���^�|�8�ϟU���k����^�R&	�����lߎ���fb�#��.bJ-(3��ݖ�6�l[k���1,��nQ4zas&��U&�
����>�'+P42j���?�~$���i*�R8x��sX���VK��c�1x/�,w�r�lo���m�t)a'"�m�� �р�d5Ț�M��Wx.u�X=ǶGSs��\�9/��0:zr�)�n8�˓�Da�RX5�}N+9��f?�e"ص�d��:�%jt&�A6%]q%ԝ�%ؕ�,����C�P�?<�d���!ź����տ�w��^��}�\���s��\�#�I�	�I��Yk��A�Y보�i��k�N��y��w!�Ѿ�ȁ�LD�)x�y������%�pPX3���s��B�v�u"KT�'�J"�D5��'�`:ɉ��F(�W*?|2=�JE't�q����Q���f���PTMN�%�j��iad6L=�^o%�Na]c x�b�
k�60/X���
o!���,�Q�X-jg�)�첇;KJ�	�~"…n�e^
�
��.���S�Ӌ�b�X�<�l���	�Ϲ,Ӵ��g�I��B"��*ݞӰ�}�l�]9�Cc�i���J��œ�߁�z�);��~R��$k�6��j��k!�lg5�}|qN{y2���G,�U	�o=��na&��=]�=�wz�T���%
v�'���9�9�?[I�f��Cg���p�]�2������.�D��C֙؝�EC"�?3�O����)8I�ų���7�z(@�y{�ڃ�Pv�\16�K�hf�#���"{��A�@jJ��,�t)~W�l]����EF���,@��,�;�Xh�R�k�+�'�ZlD#�-�O���v�e�@;WB�M���k�_��yRc�L�5u�~���fO��%�f?g��2|�#���
�3{��F9$�զ�5]� ���	��
/gHJh�镇�D��gѮG��?FND������i�9{2��oʟ9	�͡ȧ�]��w��H�YK!��0�NP��4��ɲ���qXfN���;Y��ý�ŊM)<4O�y-L��4,�F����K����\=̫��A�uO!eO�O�d{�L{�L���.&����)�9G� �1/�Cu��掍@c��½p皴��y��N��t@�#��uc��{�Tg���@=��aG��7��kq���X� g�
�Ҋ`O[����iR�Io�n�ϐj�6��s��9�(*<�k���ab�܊3�ޔ�0U�N�NzaS���3i:3[�Ԩ^���ua��Ijg���f���rm�	*���JJ��6c�6.Þ�~����i��0�a����!W����Y͆Nf���W�*��lok m�>�J�H��'{�9BW;�H*m�8Y�H�q����J�,=�L!E�f
e�W�l��T;[4$��+�a�z��i�o���	ϓJ�}��Ќ�V

��^걷�Y�!�W.��4&�p�ׯe4
���QE��%�-���׸r�ɂ҃�g��m��%��g��Fy��;�+���<8�Js�<shҬ��Qʓ�߹I��C��2�L�r���x^F�l?['a
�:��d�� ���ҵ4S��nka�G��(�B��'��p��<BFՋؗ�0w,��Y990�T�=�\��*G��������|~��>�%}J�A��'�$��6��w$@�,��@pF��
�L:7�z�x�-Ǯs`�Z11[�O�v��dZ�`�O��J���ϴP�a�R�ٚ�}?���HU���=(*�L�I�����S�ﷇ�ez���$������/�2k�5�[��N��@�j��:�|�@P�}�^Am+v2|风��Um�@��Y4��[�e�m�W���l�_i�`��oU#(��:j'��P]�g�
�fe)1�x�z��}��X�T�C-f���6e��*�gޟ��zT$��a�$3Aq��-�^���I�E����*dsrk�>�Z�,]�G��L )�����m���k���㛍��М{�����y��@a�V
x�)-0
��z��,Iз�`
S9�51��)��'{�1ȳ0lZU%�K7���w�s4<=��y��Ө'��,�s!'+I�^A���'���ʊ/zGx�9��J��麫6�GOւ�gv�	�$���Ou��vu�V#3yQf�0�HT����C�D�ۧ+���ٕ�\�d���]H�0��C4���G���Jȝ<�n�����Z�d�I�5����@���^,�D>�Y���BŞ��gO]MA��`v	��&v‚�ɴP�uU�v����a�WhGv��I�7h��)Z^�*^{|���A�|c�Ԍ5{�����{��
2�ց�Z��P݇in}��	�)b$��;�����n��ک��Z�M�=��D-�y:���ٟl��ɂ�\�y�C����]�|�U�^jv���]�6��Z�&dy���� h��X{]B�eNc}�b�<�R�d��wz��������^�a���3!�>.�?�=x���A�5U����FYGx&�ҟҌǙ�`�� �r"��d߷��̥y
�+�����N&�ƒ�eO�7��x-��|�'?{�.���ǁ@��A|
.�"��E�)�gF,d�v2r��O�c�/{f`�:���P#���ـ{�\H��l2é���1�/��K�m�y��6���5ܟ310�ԩ��a@�h���"�O��Sk��>���Z�wA���L�V�E��`h3q�ɷcb^_��s����n�da���mxHi|;���n�ow�:��p9E>I�>*��k�\�>Je+��mOo���v`�e�m����W}��X�٘�j'�2b�$+x���'������'[0+6=��1�.mA�vY�An2U�l��S�`/�gaq�Ɍ�h"噺��Dk�b
�ϻ�Y��MP�}A��˥2�4��r#3	��u䆌���9.z��0������I&��q�"�+ �y�_�E@r>��S���V����z��]_�$�s�W�2�nrV,����E�ޢ���T���@9:䇜M�l�w>�;�8c��U��م���4P����Y�eZ:`��Ϟ~S����Ab�
}�/�Mq2�a����R�}�`��iX3�ޱ&gSm�W��r-`*�le�Ǻa�ڭI
	jꔩ���@�!��Kv��ok��~�a<�B���3t�+%�.�kSM�X�we<�L�sp�����<!õ2s@����5�.5��c?泑�d�zeƋ2�t�>,o%�ylQ�8��w���,YGɬ��Qy5&q�����3�����٪1ʆ8���P���e�c�t
�n��ZbX���c���ٙc��S�P��\אH�Q�H7�������X�w�w�[R^wu�%��k]�)t�Q��ֆ����T�T�o��l%`��a6Sx-#�X,�Ss=�6t1+�x�M��ʲ�>�L�����M��v��
��uF%�M���a`�p��xz[K�	��� B�e4�gU�����>�~�;��}����>�fR�|��>z�p�\g�u��Ue~N
���	K�T�l�f�	
5��2|N G��d�F�ꌼ'�U�'���@f�1]砆(oc=���� ��"����S�\��]&W0�{�S�p$q����b��O�\y踅�0�V/��[��ň=����Z�O7��`�y�I}KN�s����C��_��g��r��߹�A"#B���jC��ej�s{o�l��8"�;�Ś�c0XUV���n͑9����)��������j;�#7�{�n~��߫����;���
�q�vv���8�?�g�v~i7��v�!��`?ڛ�0����Y֙\�ywc��o[��Xh3��m��
����S;���j�eΤw�r�m@^�٩��8`��p�+�l�Q��P�}�mH������v�^l@)�ei窟au2E6�K��:x9j�JB��Ƴ\��E���I��f��ޞI2��bֆ�=���7��������[Tt1�Z���w91V�֖�!
�yM�~|)�
�c��y�WR��Lۉ��,\f�-��0��6,,�e��A�axV�`>�߷cS՚Zq���>9!J�<������5t�����{[qn’X�*��c3��K	kc܊	�����0�mf�hĽu�}7i�L�LV�'݅��p�4�DzX��w󐥆o������<X�
��߷j����rN1�0뷥�F;���v�6�Q����s�
�����e6,������q�e���H�����~�%����՟���԰u�X*c�ܹ��v�3I�ce�19���. �mv���9UkN(!T���q�Qm��c��/#4��颐)�υ;��kƩ�����P�G�b��g����U^.j?tAϫ{���A��T��YK��!��0������y
�^��	)� ��DC�}(��O����k�� �U���t�Zf]�{���v�����@��Q�O��Ϸ:�Q��=�����!j��3�X8��z��n�nxV�)�8���4�$�B-�KX��������� �����2�9b�E�Lԯ͈$7L{�yFW��������hr�4w����Z(��6�MP�BBW��Q�?D�ܠ��R�{��_4�ve�� i��W���VC�w<[/��.��v��pK��qR�������ih�W�r��_��Q7�R��Y��[Aԥ�t+�)�Q��9��3t��\���vf�����/SP��'/����'�$�Z	��W���]>����!Ó�  
�_@�>�>�MN~���<����[��s|1'9�q/a�h� ���l���s����ukI��gX�u{�B�'���=�~�G�Kbv��y���oz�U2s(�5J�G_��i�vx�#K����}©�ЃRY��I������O���w�v�n4R3�?
��ie�|�Jv���z;�}��d��T*8��st|�e��:K�LE�O$]
;s⟗@�t.�	@������P�`���B��)�8k�����1�1i}Ο.���uY�7Zj \�8�y��>�'�]Ty�"OO���U��#,�ޏ���	��fO�_�����F�M�?|��P)Yh1���F�Fd�ny��0�ar�0�P���n�kRJ�2�h1��в��7��E������ykh�!ug��_?
��C���B��^���,D���$�S��ZЪ�ѝ�;�Nudɤ`�$4��{�����G�c�Q0���L��S��.�3QGz����އ�� ǽ���U��-��^`�[=%����b�
x�DC��e��@�Q�0#��X����<+��r�*�l6a��N-2�i�S�V���ӗ{ܴ����|>�yU��y���|�nJ����Tf���߻���lW�`�3\/1/6�r"��}�`D�n7A#��n�n͊ԟ��������n>�#�����P�C��ߎ���"���+�֬ٵ���HX~��^��Jf�����'��x�r�5��{m�S�m|��?�ܞ���K�������$?�uw���Ǻy�ɀ���i�bcs��Og�ޭh5+�p�x��ײH����Z�}�~b���8��J��]K�,Q�޽�%��a�}z���#�m��}::�zДoI?��n�7���Xk�ׄ���f���3M�~PZf�
1`p<�KX�%���u�!Z��?j1������*-�]}/}=�r<o�\ӿ��ӂ��Ìp鈻���P�ҟV�V��\۟�K�]�"h��:Ymg����8[�X�r�	h�9lX�}6���d��~z�o��c҃L��jC���6;l����?�yMM�)��E3R��a`�Z�f4b�.ڄ��v����eX�5}��6=�Q����9�B���u���f!ް{�֤K����0��p*��^8�ѹJ�a�9t�k���ra�F#Agg-֩2T5���b�%��uBX;�5�8��������CƠ^-��'�
�LWe�e����!W�1G=�X�n�>8���?^ӏ�;z����Tl���A��^lhx\ÿ4\�}32�q/��[�9��b�k��ƌ�M�/G����X'�ף�ҰG���=G&�-���{�ߏk���R�lKz����T萱f{��8�qf�Qw#��ٸ�m��X߰&� �KB����q߱�0��|{������+�=��v�?�WSJ�9��
�����:�Y�� <|�q�y�c]���lP�=v`��F��~�Kz]��@��jy�i�F6}����Os]4,��j���*L�û�G�_�r*�ɤna��`�ނ$X��}dZ)��T��]�c���
3^���e@b��CCp}��^�=jوe"7���O��� b}P!0���O�~V\�fW����>z=w:�Y�Xw�ǝ���	�9��cMo��]6{>bj9[Y��?�0D�r���<㨛�RY��р��]�lU�jo��X�[�B��C�%�j\HLr�-�0evK����U�o̩��#S����Y!WSb� ��8�AX�Y�K�P\���<�Y���4��{����rԚ�~v�ѭocvTnF�Y�g���=�����k;k�YZ���,W��,o5"��x�س�a6�d��E�g�a��%I�
���}x��9u���w��؆$����|b�;�q�Y�y>���3r�Q[9!��H[����>V�٬~Ԏ�r�������%����� ��q��6�v�ٓ,|��Zh
S[>��0$롅z�q���$�Pxvφ�����;nq��2�$B|g�ϫk{Ճ�X����]���ƫ�К-c�6�F��M���Ivf�3B���h6k�3��&ͮCx���f�6+��2[��������_�+'��Şu��=r�ŽY��ޛ�Pq�˱��C���T�n���� L^�	�2��F��r6�����s�jDV�ur�Y��R�0�6�o?O��3��YN�u��e�{��[J�z:���/Si���%O��`���2�����1�R�jƤD�l��'����
�T�9,6�$�!�L�Tҍ*�K��3�̭Iro|DK���va�
g�߉DP	��\L]��u�*)6隂}F�?�P����<<���}��"�:�/Œ���������x��g�}�{��!$]�����)��<�������]�N�F��z�u����x7?�©�N~�����獩��P�O��>
�ڹu[��Wؔ{�8O����Ov*I>ޑ�˵��wq�VN�-,�4`�<�x8�
�s�f4δ�![��Hl��Ƀmsm���<��L����a�IěϮ������˰�<�wt�M�a�B�/��kd�S��Vr���z�UL�{�:�Bְ�s>�<x[�N�$�pk6eo6�7;!��Z�gڙ,�	������2o�p^��1��n�kakN��Yvv�>y��!G��j*�O��w�	"�3�ï2�L��R���G���!�>X��Zxpg�U�JM5>saF���1�����6�+��2��X���p��A[�9r[:�.�V���k�{	<�	����p-<�������Z���DAC����j�?��0�2T=٭='�GZ����g0o�&��<��P��	��8���IT���r�pE��2�"�W"H?���.���9$�K	��mz���_<Hӽw��|ڂc����S��7�.He<$svO!��i}�8KX$���~��g�N����継��餉Z-�Z�/p(˰��Ao�=g���y����H�f���;�����'��g��M���P=x֐�ʔP�<SQ�^�,t��N����g�WY<@Y~QS�ke���h�[:���?5a�����ާ��9�����Rҟ˿�i���<ԃ*��י�s|�߷N0���/a�VB�6��eVܲ7�u�W�v�~]��<y�ڣ�}��K�l)�5��]���z�x��N�wN4qr���dܛE�a�9�#���e����S#%�Z��뇪g�d��t�W�N�
z�u��kv�j�����&��A�-O�e�.{�`�a�x�z�ʌ�e�l	)�'і��R�n���e�����)9���>��
꺆��|�N���;��.�4�u�9x�g�#)��������DL5�V[Q�y/�FZrԁh)kP�|���6(��٠�"`Z1u����$7tâ%�K���L�����y��\�bo�i�
ܨ
�Qt\�k��q<o�͢�=3�}q"�:o�X�{Y �)�̟=�l�Y�r��~�/�>3��%n���%P�0#[p�I��dž�V{j_�*�d�}խ��p<�Ϥ�s�	����Z�y2Z�D�N��
�P��N��;�ʽ�|>��F���û��=�i��g��7e�*Ym5[(dV�'2U��g�iNX�Ja�;�-o��G�hW~����{�:�[��qrQ5|~�aE����d�|t�8/N4�Ԙ�V���g��׍�Y
������֓'�V92�T�nQ�y0,��)B����G-b�����T��S���{`  A8�-ux�j%�ݬ�s���Ju��'�P�O5E1pZHb�
�j���L��X��W�H�R$��h'�m�S6�{�#�5H%����h	T�5z񣡘�K�
ۆ��X�a��M�pS�=&�>Ѣ3K�j�0�v��م�-)z1I��N�C Z�UR�MJ(�:�ϥC�7��@H���e��<^J9e|-VزT�B�O��IѫC�b�C`a\w��'ӆ�#�����Ӻun{rɓ7��2�״��vzm)9jY��7�Y��Y}
�f~��������W�g����l3�;#(7q�0@m�uYV�	��8F�@n��e��w�y�i���H�$�!$ɪ�J2=��}}�ɤO���{Nw���� Y��Yӌ�Ξ��C&3�@���m 򰍢� �[�okO��Ob{��2��������ĝK�q]<8�����yyXt��e��NrO-D���|�jB�q@�h�j^��dZ�K�9������9�7��sZ�t[���b[��18�|�Ue���'"�����p�:RW��R��[O�L,����۸�>H����9�のOc����tXm�;8�����(��k�cc��n�6\�<<;J|�衙��݆b��Bx��(�q]�5S�y������>5���Y�p�6$��,��!�y�B������Ɲ�ͳ7�
�U��MO�A�U���Y��P[
QB��`��cw?I���tmnR�ӵ���,�~!J�2���@/�L��0�;q��OÁ8�}�L�z���E�t�����%y�;�;0�=&�n�h�65)�渶L,�2�gW��C8��d�*�(�F���!��ᇅ�a~ɰc���KXU�nX�3f�w�G1�<,�D['m`7Ծ����b[�f��7���jE���+P-��Ⱥ�5!\��N�Z�$+vr�NC���x���Ӛ�8�����JY����:�9��c8�뾏a����Ү��}�aL~|��)�a[퐤�b �MT�R$\Bo��Eg�W�vUC�D�¿�����n�4H��=�s0��ل�kX����Px�������'v�7�z�>q�նQ5���4���K�yǒ���v�'�T��ro����=ܹ��@���O��h�޸W�q]���#X*�c��Y�Ki��u�{27
�J��7�ݝ��Q��{ʔ$�+,y��æD�h�^�!�2D~8K�*)TGy�v&>�
���7����]����Yfs
{V��~r���Ys��S�����/5�x}�NYW�g���J`
}Òly���x�)�����Z4�;v\݇�l۝��)�~҃M��Uϟ�g_ބ��a:NQ��s�7΍�yr�(O��v�\��>�<b��7~@�[�$>�v�tk��I�t���4��^e5�3^
v(wdM9�
K��	���[SW�sV��dp���0I#�J���S�F��'��7-C���*�E�}>+-yU�_S6!|��ԍ���<`(�46�K���"Mv#����\�f�Ro*God�kU��{E���:1β��Ե��-�J�O�.,
(Φ����b�`Ð��7�>�-�;��Ѧ2���*а����vE�z�t0#E�:q|4\\5l�{�6�o�=�aȞ
�A�M2�(�Кk��+9Ἁ�I
vz1$�b'��z�eU�*�n7�kt���X*����U��/��,WP5��8�"��AG㾣pޞ�f���x��!��>�ō���=�(��ܼ�D���P�'�@_N�"��f�萆IC#��l&�[X�."�u<K�73H�S��J�c�����v��%3k�Y+�v�YO�Q�q��˲�:*L�0}�9�V���2��mP��t�f~ju@�\L�%�I�1��آꢦ�5i>���!�U>p�6a���#�u�ve��k����p��}=�.��_�i���h�S���#�Q�	�<!�s�p�dBs��NĤ�Y�U�]�c*�Jŝ�#�6t1�:A�5�!"rA�� ���нs=vsaݮ�㳼��Ub��=9|�&��Z}?�	H�nE�����l?�<Ž���3(��4~�(6'Y��
uب�����'ˑ��#��α޷���wG���?�i+�a5D�>����b�Sy��|���g�+cɞ����ٲi���gڿdH�
�2�2�h�{P���g#��yeݩ���������5C:E�oPb�@�"�͜V�hQ3�n)�rC�(���m���9�{O��p������?s��e�`��S�ĕ��2a@�Z�����Z��t�&F3������D�����{�$B�z_�sE�>��+��::hIs���	�:�D���1�DOb"��\R�w��� ��>��Kd8T8�H��D���3�6I՜�x��w��^�Ϯ׎_!bw�'z��iJ�.|A{>��o&56lH\œɵ��7h�f7�Z|*�f\�l{��4e^�}R4�����|
E����s�E�Љ!u�V5�@;�����s�`:ei��K։���MXH�G�ށ��`�I������bTuX�{��L���V�p!�y����e�"�j\u��_tr�l�mȂ�y�$�)���a���a1�?B����8��5C0@كC��[�ﯢ�pg�r�����q�o�آ<�>��fV��nMM
ljmD߈-L��d[ߨC�nTL=�+����=<߿x�o�������@��7
t�z�cúk��œ�Q�:�9�����X�Z���pN���Yi1
���i8�W�:���EL��$�^��h�m�e��jj)L�c��J���<���yЀ��Fa�ϘEp9��N��A���zj,��{�R���2 Ht�5σ��b�r�f=�Ϸ�� FX��UAƇUD��ǃ���J��&  B����S|�zɶ�-�O��U�P�`/�m֕��hM�d���;�`�f���ދ�$�i
!v��W[�]�.t�U67��ҕ�����~<G������=o���9���A�%�8��N���[2E?�GѦ���}��c�L&�!�%[-�]@��f�1�D2��?.�Nb���c����󇂙�*f_
x�WC©�<7�)ݎ~ߚ��O�w����㺔Һ���bz4ET	��v����k�f�F=`�Y� ����Ϯ�d#�4b�6���=�3�D1Ǎ���Cd1�F�'�&b�~u�Q���}�������m7�hLzU��]��v��/��U�H��9̫�c�d���[H�2+�U���`��ِ�ǍđM��w*��T�k�+=�`r���Ӆ��v�76��Ǜ�b-��C�DŽ�K̳�^<�\2�Mt�WV�PD*�M݄�L�s�H�L��)�����������!p���q�|���ϟMQQ��6������Mw��dgޡ�ڙ����y,�m��ji��ϭ2�6����~(��&�owk�������J"N-��I�w�VG��\w&�O�4{�ϵ�w�9�H���zB��DxF`=7��X�F�� ��)�gc��'W%�X��X�џ��+���L�޿���������XoQ�����~��BTI�u2��
�V��VV*������o��>���?7����A��õ�2/�gM�����w�2��X]�F��7m�N-���|G���"�߷�[��;��f���<��ף{�Y�ً����1$��A�Dp�U�%�/AQ!�q�
����ΧU��b�x������/��KLlP4S%�18�fN����������ۦ~Vu�(�IR&7�x�a`~��-��+�U�:�Eg"9~��k���E�$�]�=�zl�ܬ)I�D��llLE�����.����c��к��G�5�a�a/���c8��	j\�w��j�Th�Jkv`Q��P�����̜�Db�'��c�v������U���u�'�mΣ!����*��xO��߳v��v�����eJ����G]oa��ڔ�3�Z-/���4W��۞�{I�_R�b'�|�F`jc�����p��,)zm.�L�h5�	F8P}��5��Q��z�ApS���a��&DQ�<Z@(���R&�ڐ�>��Н~��}�CD��Vǵ�X2w@�Gcx�z�{0��n��r�ߵR!lS��+C��Ip�^�!�g��p?(?�U�.���+u�-����lؖ�
W:3��P��3�Lџ�X']OMgo���������Ø�����9
����\��Fq�Vcɇ����M
��
qfkd+����:������{e=^ΈB�����ub��ە5�Ս��P��s���8���RF���;�#C�`)���V/UE/��MXim�7�L�]g@+	�nڧ�V�CS����~�gI:º�Y���H*f�E�4�Qk���꙲���`����w���{ű�q}��T�7?��x]7sW�D3?�B�!�֊K= ������4�l�S=�h��usֆ��Ta^��k��M���5М�]]%RƵ��*6)�>A]�x}��8t��^J�&)���.��|T�~d�m�6�=�^rQk�ͷ�wN��C�~J�IP���(��q6�㊎zNj����F�n�l}��X���O>*;����$�{Fy���c�� g1?p�*��ֻ4�Xx��0(��_<KGb�_�v�s��t:�ؕ�c�w�)���l�)���G�i4�� �D���1�*��F�tSh�#�D�H͕���+��9�v�a�HZ;1�^�$ڙM��<�͛K4�1��R�j�}%כ��t
gĒ.�䪗J�9�Puu\�X�[��8OS��!B��mD@rh���\���b3|��vmu�����a�YS]��MtM
G�o3{��w���w�Mn	�#Z�K*vH�)Nv����ױ����uS{�:s5e{z����`�-�l��ڀ���kgc����M�¶:�6R�ys_`�S���,�w^<�M�4Ԭ4S�h�}��0Ov�)uF��h�=��2�{f������M����$V�!m���՟������/�5-ʉM�L+p��P�vM6`b���x*��t�D�`ӯ���<�[�>�a�IT���^,�60†�q�c���Z1�J��u�.�Uod���ǽ�bZ�^�&���T�,��~0�uc0�G?��Y��=��<���Yj���po݂�*�*c�~���P���=/䢅Q+S=�s�1�몞�u����x��޽��"�{Ǡd7�'���H�*�g{�|m�UȄ߶���v!�›Bon���
eZ_�Vξv��.���2�kw�f!�m�5��M���Q=,��.�*��{�bJ�!Yn���~N���:}��F������+�E�0��o�:��Q%��a�a�{���jx�~=���njj����ԂKJ!q�=U����r�}���N��v���5@����3Fȯ�8�@fW���K܉RÁm
(&5���*(�j�J�,O
�촦��ee�e�g
����_?
1�xO+�`F�pM�6Ւt평ІYi���97h�[l�9E�7,^z�
O�xy��O��X�.�^�c�ҝ��mrg�ƷS�sVWʄ���CHC�޺{!M5ŴGMӢ���0�v/8ty�~�U�7����w�|��U��?U�m�l8VЭ�+Z������Z=��||m�5��R����0Q��hs�!h254�c8&��|�8�chʬ8ec`ϪÝ�2�g�xqG#QL��x��9mR��l��⡕�!x����b�z�ՅL�y���Zu��$n�����cni 㠌�\����0T��4,Q��V�rX���9N�is� �2D��ų��Z��4à;�c�y[T����}h��埫�l�~�]4�e�z[Q�[���u��mr�T:~�h!�	gW)��8c���`�
霖AЅ^(��)��w�`
_�Y�G���?1��3+�n882�x|�[�f86;
7��1XE�|��>���2R8�oDf����j�!�"ǢnHJd����@�fS�ݞ�,���n�����"�����(.�9@Ø���2g�Z�P���b�a�>k�h�4��Z��י�mSۗ�<=װ+�#��_p��
�Z)�4\�qM��My���.h��Xg�����p����[�!A���_�f/�!'��z�x�<�K�v;S�ug��ZA���Y���:�&�+�x�`����;~M��-Z���K�.l�eM�����"��b����A_���x�phvK��5��c�7��z�kDB�-w&�|����u�H����B�	�8P/y���@��u!�|bق�&-���ixMh��Y@�k\�K�|�ᐜ�������e��c�g�a�i���~�7G�<��}I��\����]�@���SYXK�Q5��A�c,�-�3�6�����'D��&t=$Z���̰{��)~s\
�)��|v*�]l���X��u�b/{t�IuR�!��9åý�	���$�u�&��G��2<�;�����q'�	}k�~�%������Y0<_hn��ã��h�%���֜
AVGc�+��#��ݏ"��v�]*ka�kE��i��ſ1�pHq@��]�Vws�\����r�׋�}�]��䤉�t���k�� a�yo~/Ք\�]�=���Ģ�~��jcV�_�-����6�͆�;�W��:-��p�W�.��޳G?:��]X?�+��.�Fx��Q܃��B�b$w(Ew�/��A.^�5�.f�1aG�s�Q�7*OQwS\ݝm�R�hSs���4,��=�"�m��Y^�%p'���1׿g��Fd��A��L�*�>6�&<��P�n��f�`v�຋���YR�0�E!	<d5��'��ߙ�65��0�Jy���Ӡ�_��6�T�����*J�����y@bʵ��/��`4eC�"�Fs퇛D�ۦ�V�<no���Y��1����#��g��f�@��ԡ�O�]����nM���ؓ,��ڑP�9L���a�A)q\�W���{ L����f����KzT��r��F�F�j��;�z�av<�9�<
S��6ɣ>q���-�)�Yf2�t��C5>m^@��sr��Sjƌ��
i�3�>��+E�Ӷ�jΉ]'�x2�J�gި|�H���S�s*�Q0��16�8*Ց,vOE>s(�\�k�T{�UeAD-tK=�c�=}��[W@UY�l��>�:T(�܇82>Z�3^��5�PUQ�s!Du
T�?Շ�j�	aJ ���q�0�<x~����$?
�n���EzO��0uw[@<��D�ĭr�3�8U��Oq˺s�Y���[}�IFc��>�0OB삆��0�7�xݙ���g��m�X(�AY��Q$�=�I���AU�YrT��ٔPR�C�N���r�A8�a��v��!�uJ� d5k�g-^���=�A��{|�䟛���xC̬�:c-�ؔ�,��[��j�{n�OX�6��3b�����sT>)�t#�Ckde���\Ө�b,�&�C�PM��d�ڃ����3�\��i�	M�����3U^s����]����jg���u��L���	m�z��'"�8JS��'�)sP��Qk��:VcF��6�>�,Z�	i>�7ϵ��z�>���s5탈����������0��|Fe���~
`6ǣ#A��SCac;	O��VC|W�턈�E�
�];�:�-p�<]t��2���O�m�hb����+-�gR����������3S�I�kk���r(�3-�I�Ɠ%^��k2�H������ܛ���Q�1�G�_��͖m�:�Ϫjl���(r�g_�*��}��	u�G�j���I�����	��t?	��Mt#�۝��V�`f"�/e����o:w�@�iӆ0��:��V3հ�Ƒ3�9��B�'CF	�:���}c�Kdi�X��u�p�y��}��J��{�
]�gb�ךi�F��Օ.�J&u�z��^�z1js'�f`�S�1ɟU�*�?���A*p��U�i�.̝�i�־ni.�
Y݉n�sN��x�m���3J"
Ⲹ>	���`�gFYK�8?��Z]��y]E��g~�)����AZ�NY?�?���G�ϡ�1�n_h�f���0M��S��Gk)�N�(������Fk�p��J[�S�q�Т��k]!��=ĩ��J���U���1�ʶ�2�%^�|g�Ȅ.?�m<Ř���?�0�
������u�*:��=�i],P
�&�r��ɕ���#���KuP>���xȾ��{y�z�Q�n�X;.V�&��˿����7�n��2o'a�n��34:ƭM�Ab6W�!?������FzU;edCA�>+��g�g��Ix���rpV��Lc=Ҧ�B罫�Z�.��!�#	�x�I ��Wj@�~%
g�C*�Ktv\�Mz6��o�D!c��KϘx�`�S)��y'���H�z�Х!M=����x���]N=�ȳ��8��z�빵0�6{��uc�iJ��Y��WE�>x��+L�w�9O�K���t�ǝ�D?�KwU�����l�0�ks�E�F��!ʱ?��O�<���{��Km#?�.\�
o�	yc|��:�-��J/ߞ�P��f�x�ypC#����>��"I�F��k��_�d˙|P��\�e��
�T���0
	|au�Ûա�SN���f�S���G8�J�Eío��%��n�9Le޴$����C�K2!���
�ql��kp����z��=4�O�"���.|f﷥�Np�ֲ���PϨ��l.->�:u=@�~��>�B�Yӊ��ڨc�a��ǵ�KE0�V7�J\(�n���Lқ�4���-RY�씅��8({J5m��p+�aWkN�p��}h��Y�7e�,(/�A�[�7mW�~�d�>�9�6N��p�]jXJi�~Fs<s��@��9���[��2���A�Ɔ�OS�xi'�^W��X��맧�MA�g��Z���b����Y@�zcc��ٹv7e?Fm���
�vU��5���&�7��\}ǡ�N&�?7�rܯQe^xo�2�9Vu	�H�\�fW*bpo��f�g��b��9`}��@�m)��F���_�r�o�]�1�3b���c����<X�IH�Ì�U�D^{��g�
Y���[����
s�6��*V$ZC��S-���E��N��h�¹�pj�����>���-�
�vT���M?�o�D_L������/�*��l�C���^CqE�N��U�U�>?�5-k�w&w��ަ��[d��y�k���O�G=��
W>�� }|�喔�4PeC���[3��_�60������*�d�eC܎���WCM-6��Ǫj�G�P��6ߡ��Y!'�W�}���Ybjӷ��g�L%�&�qqY���/��	ֲ��`�y��ZZ��F������Lg�;"�(3nC*�UC���_/d�ҍQW�[B����"��x$�%ѡ���X;�eM���U�ˊ�L���+�n'p���]�٘K��Dׇ����T�kq��y��jp����E����0��Y�}P<������\eb�ƺ��W�l���ρ��z��k������g�TN$4|џ��AB�j��ڥ����ѵ\�{�YP?�[�V�ՙ�>�)�!�[s�)X�v�m_\|p�t�Ѫ��~B���3�d6�m/�+o� ���IE]�4��*�9+�,����pДO3�9蚊N�zȬ�S�1kJ�`*�:f�8���5
��?�5f�t���*ƀ�.F�5��56̱��ў��>�J���T��6�Q��0�9�<�ø�Au�V_Uo>NA���ݎ&�%��M1�d�
�?�ks;��sP�k���-l�B�9���zc �P�C�{GaT�"j;@�'�7�k�'�b)���qk6X�X>\U�}�X|�
�i)�;eC0^|QA�9�2@Ja}_l��xW��\4�&1.�܋�.�P3'��Z�G^�C�1�+�`�)��%��-��J����mQ��	�E�v��?��3GL�puտ��q].����J\�˱_�~Tt�Y%{�~|��]��b�Rb�^� �f�xEoUU�����O�
)�7u��f�:P��͉��c�����b
����8`��9'�?,���_��/u
p�"���x_	���h�C
oX+3�;��5|d�M��~�'��u\���*��mD�.���v�D��ϔ0�!�es�U����|�u��@.]Xf��Ž�>��Ϩ�tm�	����)�ף�y�Qy��6,<#:b�)r$��F!��A��g��c���*b�>��ά�4"R�fg�����}�
���+��s�-iH��5`��{�p����"�%��hF�`QUGxf���9����E�3�OS��?�&^��o�j����6�Ч��e߇�lV�n���}��B(S�W�$�n�bVd��0ɥ��5�8����J1�*ËeyƇhf��&�2<_�m7Ꭱ�6k`��.�> C� ]�b�nu$kJC���׬j��=�_��e7�j�aɏ��P$��M�|�>2K�W<帇�8��XI�լŹ�k�
Sn��R�	{9�m�P����V���E}��wc��N�b5����@��y��[� ��+
�Ů'υ
fzKw�e�@���@I6������hV�:�%���+��}]�z\S<�@]o�p���g�F��yW �V�
p}?��f91��g��\��f�LzjpW_�YP�h�v��E��F���L�)���x�=�bG�:��tiDgţ�/��sg-M1PIz�W'��6T�{K���z�aƛs�5a�����{w�ϸ�s݃��1s���\�68�B4��p��ge=�m�F�/�6�����=��p=���o^����kG�Qa%�C��gmNM�
]����Z�������
�>0ӗ�O4it+z��	�.�>�$�Yʻ9��V3�g�������}�Q�m��<t=���{(X�ukLwf^�_)��۟����
[L�*�p����)<�Q}�z8�ku���F�Z��w�Am���6F!�右!����p��|�Q�tOW�4+�ooh3t�,*Wo��)m*(N������nxTn*x#�Zpc�A����sy�ڴ\�6���I�1�R�k<L?v6�H.�d�����+`��܀�"�<N<�z(�t$�MP}�yB[�a���H���m���>���v��@d�qj�H����g�<@���������J\m|�"^�`٪I�k<�WX�}>�m��C�zZ�-t*�La\e�zFq0���/<6J6�<��1�I��'���_o�{VxՍ�U΂Øq���=�v0}�<�P%��L�2����5:hu����׽�E�z��L��߇[���d
lZ4l�8#�g���76������aj�}��4(���
��8T�Ӵ~Ѡ\P����.�k
��3-��x~�{���X�Z�>v{���w��0F�<�{g��>����P=�:��•����ۆ'e�"0E��f��_�q����j^?�C���a���;�`+���;���?�7�7{]L�v|ގ�A�&����PY@��8	HTw�
1ZP_�f�?��h��r|�K�MC�	��[R���~{������+�Q�ߎ�}gTÅ����V���IW�]qo^-���C���G]�˛c-�i�����=Yc�k�_�����
���Z>�x����Ar��X�{?��xX��-a���Amլ�9�P��,P%��ֺ�s9N��L��^~�
*�b�ܮ)J��ۚ/u`*����E������%��Xm�W3�;�eگ6 0����ȃ�=�#l��oפ�#��W1^4ٰ!�Em����!�O{
�{;~������3�k[쀆&��;-l���0���g �5ɯ��렑����7�:�$l����a���p�r�Kw/�8t�a-]���:�X�k����<��c���?���`=����L���L)zBt"���-�C?#�����f�,o�L[kO���߁$��ϲ�0�ֺ�kqE*��A����)��͟E�yr���Yp4��L��kk���Ѕ�����*��{��7�+d<Z����}�,����\n1�����P#���ȲG�7�D�Q���0@�1c��
mw්{���=��σ�
�xw)���i�8�OE8�x��i�Tѹ�'�gi�^W��j���k<��e��,�QW�T1U�dl�anK�:U���޳^Cj{���]�"��[����Lߎ��q<�w`J�|���J�o�
��X��l{0?�5@�)�R(�T\֯��u;�A�N���eo�y0�ꂎZ�u��&Vd�;3����>�^ȥ)���4 2籧��Z"��/��_�+�������BW�քYQI�u��`�`e|����c�5�5�B��k!�^{
�+z�z��k)��x�-K1dG^p��*8��v[��՞?4�0�W
�%Ak
��CGcnb-S���(8dse�xk��Q�ߔ_n����{hfU�B'+���ĥ�]�Q7�_�隔��}#������z�q�![#߇�pݭ�=�B�2�{}�9�ͻ��5�z=�1I̵�CK�x�?��Bϣ��	�viA3�X`���jdm@��W�+���P+ݕ��l-NA��g���8�H5P�N��:�tř
!.m�o;��jG���\ȗjN&�&E���g��qj�h��6z)��*�lnc|~�+����z�S��zs�ZE����F�89�!���e7
i�3��8�C��M<�͹J%���Vr��E�:�~�F�ODa�b*T��ʁ�UXc�Y蕺�@�0����>
�s�eB��Ds�Q硗*P8��mx��c���]sD�k��+�Rا�D��C�b�@`�0i8x2�
�D�C�bf��8���{U���X{$�g�M_a�~�f�t���ǙI�.F���Ɔ�=Q�⑓ty2O�c��'1��,���s��:����'s����RM�e(�˱f^�۔W�Hh�ޫ"��=��Ú�����^B$����Ts��j\�ֳ��;�x_*،�>���9��'��h�{�{\C�q��욞m7�?E��򄐓Ҧ<M�q�V=����ĘXg�mz�rOQx�%X�'�(�b��~)�[1uR�GۈqN�����P��ʇ����5�\j�C"?��ٗY�(�ɨ�<�Ύ��6�K$�b"قkX��ƭ�n�9���ֈ�V�xe�;�wK7�ɧ˃��F8Ma�W���O�'�q������4��I{��Ѡ��6��W@��6	!U9)�l��� oDqL�vb��a
�y���b�
�bGݴ�������L�P��a�mg�X���v>X��]z����K��]����U���A�>2�k�tt֜�AL�f���]���i6�Wa6Qѫj*�G�x���o+��پp�H{Ꮡ8T�I�jQ�y�j_o�b
G�K�βH�6KgD
��qۭ[�۩9��_�l���ё���1#�2%s��z����2�m4b�ӗ��ӲK��9��;-l��:�I���k�Hl#������ OV���x��8�~�A�����
�]�Uϟ�S�/�0F�i�GVg���Cg�6Y���5̖��+〔�窀��Ś�T�W�^4�֞���z(��i��1��ޚ��~�س*���<�]��x��Mh)�Ѹ"h��m�U;��%Tf_�Vdgr�*�DBq�����҅J����1)TTZ�u范1y�z���Y'�_|>`��Il���N%�r׉;�%�������rk=��Hk�ow�YEDKp[��|�]�:r�Y��x��?p�~^5��hiZih���d*�4�y<���+r����2�6��<�>�k�B7��sp��h�����un���7��:�1wcc*���`4�m��bw���߇i��,�6D@a�{�6+�֭�h_~�77'�iS��7M�ĵUiA=�۞U2L9$�(�������OC��m�ґ*���ٛk-�4�Y�P��@��>l�|�	W$���p`�N�rWH:��~��IwU8
�=�e:m��z8�Ľ�L�3���P�.3�'���1��usw�=�`o^+Ľ�5uČfLD{R"�N�y���N�\��q���_Jeȯ3֦=��{uoz3�1N�V:��{n�m�;�m�XCa�&P�h��Ys<�A�6�?��Ǯ�����0�].������;�@�j�"��W�LS���G5Ą�ɢNv*�hjT	�y�g�X�Sm��xz�(vƯw�Z�ɞ��6�Yox>B��t`Lu�l�H����F�֬�k��$D��:oɮ�&���Z��}�(|矧�����=�n����97�NⶌF�o"+I��P�?�Ȃ�b#0;�f������kCࡧ��(�P�/����_ם�gQ�>����T4uz���X���)ڀ���D7s�$b+�������fu�7hjϤu��K۷�\X#C���Rؔ����>P��U���]���z��6<W��s�<�H�ߵaU��M2�kր����AR�V8j+%��2�-m^GEax�(��@J�^;���M�f§6*W#am/5�%����6`�׫��9���QG������rR��E��w�*�5��L=w00�T7��Q�X��b{����4�2�e���b.���zC���l�ʙ��0��u|�Gߡ���!�@��EmT��YM�+ڱ�r�Y>�
`.v�l��COT�4��rb��Q�$c���Edj^��ݵ�lC_���^�,�4s��v�<c��amB����Y.l#S1#Bl��E�p���{�kzNi6l���9�AL4��z8.XҳG�_�g�Mvȓ�?;�`�L��λ	�8'8����Yqg���9BU�b��:��׼�PK�3�y{�4�rk�@}�p�xw�1߳�e�s_���n��`o���h_�Bw*�!�~Y1y�<�'(�:��o��y��GãuT:�GvΉmE�\ �z;[�J���}Eϝ���Fk�E�*5x���{B�Է�>X�O�����H�\��R�1��v�G�c��*(K-��6zqz�!N��H��<����4j������ԑmA�6��}-�߰�4�P>�x%�����CU?s�6%��6u��^��X�������/:	��α����n�]�
c�8�a�KG;7S�����6Q/�n37�U5u7��u�r�=Bשd�>,y$E��J��ƙT�@^�Z�|���E�Y��l�d�����[�p:��a3��Yw@��!���z|�"����F������O_�Y�>X����h�k�E��@s֕�*�����ϯ�agӐ =�
WG�i\�r@2��2�ٓ�����t&"ln�
+���#y��l�[�'�-*f›�[Q��D���Y�K��PF�V#Sy'����)}��	�B�8Cu��)���S�Ƃr�͹������������F���9�
�X�^����E�)��J��>vb��T�!��9yZt�Bu�U� �P��T���Y)��3Y�/�lصn�\��^��N��<bd�Ab�3J��̚���`��nYh�4��UU�O4��`�o��LGW���TXџ����l/<ly�E�RuG�%�����C)�(�Mu�,Y��zx�k����
���;��P0�7��\	,R3��`@z�L��,Y�Z�ƥ3��
��!�kx���ŵ�3��z��N��Fs}ĔFs݇�TZjc���(� �
5�GhW�ךM��{4�(Pt�60�d�v5A�:����p}���}e���z�O@���%zl>�c��𺯎�h�Nn�l�V(�<��[a�E\c��6<"M����6�h��"j��b͕h
Ej5U��:�@��E-�PQ?ɮ��-B��X!��L٥8X����S[ך$��lK@HW�>�{'����j�f����l1���x����c�
��=WF�/W�m(��<,[�DbMm��{dp쇃K�@^���1��}�8'U�m�ǮDu@�0pG�}�2r�����S��h8-l`�T�����{u�j�ާ�hy�����?ߕlh�&��7���z#�7�Nz�CbP9siz+� (th�Ⱦ����A��^k�K�t�J_���iF$wV4WR���=��7.'=_��L{>�_K��ړX�,����SJ�~�״�iFX��p�o�D��S
�&W��ϝU�/�<��}��Ԇ�:�>���9ݵ�0�ф���b
!&��Wz/����D�IԵ��5e�P��7�W��qkr	�Dy]|��`�|����Ƴg-�)/C‰!���I���5�I�Ҵ�k�}]���T
gj�/S������\���g�D��F����7r RE�Z
z��v#��h��S^�5�F{�̬@Sw�<���n%"��p�����t<�ih�.v��&��%�f{�+Ȝ)��P��g�X-���$}�P�M���:(HWk랼���Qݠ�\�=d���f�'�@���C��u�t��M�س��z���ݔ^퉎tC�S�mM�S�
�'�T*2���b
P	���["(|�`��6q��)�ɚlU��lg����{oTp[���͞S�w��֌�I��ծ:4���p8B���o��P���!~A#���u��
��VNԄ�BwG�4���Fp���߲�]Ȩ1�:�A��}�ڬ�[7/�m�bS��.�g�j�uW�jM)�阡�	�FAY0�o�̮��O�٥q���R�ϔi1\$j8+`[��*m�]L�{�T��xAk�	�4�U���ǝ7>B��F-�,/ʲ<>� �yn
�U��'��n��^��>�����	�9?0;*;�4�~����K�s�N⽡���D��Z'�a���HcP'���zh�k��&�zF��k�f�d5^���c���,����ᖮ�p^l��fR|�l�[��v]C#��CIz�\�ކ¾���9hV�lH^E��xZ}Q�8��B�`��p����P1Q�:��bsLE����ONx���j���F�F�Pgbڀf�����)���hog=����Y>/vS�����)p�:�݅y���a��0�{/�x�Z�f}�4�e����ۉ
��~�^.�mb��2&u���\����{�(�-�y����ǽ�/S{�֩�r�XJ��pt@�۞���$��{P[��0�-�b( �
s!yR20Z�s�"�d`�!8�|S�&OM�/hDR&i��>4
<w���L&��o��#@������D��u��v�
s��L
MNg�~N�׿k���Q�
�m�i�H�jks%f(:���Wa���=C/M�
]^Z�™0�[]�6j��uȸ#Mp�{E�I72[ۍ��IE�[�H�=��?,-���}Q;�n)����'uO��翔s&�-/��Lu
���~��a��J�Ķ����&�����]�/_����pA�3�}E�o@ v`�~[�!��_�֕v��pДV����H��D�Lo�ͯ�tBW��7xւ:'���Tti�@xİ5������9�:��C�8�	"���V��r��~M�
j�y���m<��՝��೺�l>��R���O��O�p{9�As�7j-��F�<��l��V��RG�*�]%Mz�ކ�&�h���+�u�<������l���9�.?\MҾz���
�>�J�y��'E��h����,j�(�N���UUKLF�Ѳ(|64W��:���J܍M��Q��%%T�
k���ߪO��75B��=�F��M'Ѧ�+`���P�]/��sޠV@�,ڸ��kg)5�N���̧��Ê����f O���
+8uy��q���
�;�`��@�����G�A���(�>���D�:B���/���d�������d�д�]�p�ga�@��W����
�*�T��à��W����ش��*��0�*�ֹӦ졚kn������isܫj�ޖ��=����ʡ�3�F}{zP���욮YT%����:��4�c���}`��������Y�g�zJ��F��bʓM��3���Xw�N��3��ms_�2V��{Ev�)�Î��/S�~P��c�*��,�I�Q�Ue���Z-�z3x��a���bVC�m����0ӐݯIb�cކ�eg�,�[ug���jk�$�3$y�ݡ$S��7;66K1�C�!Q-vP��`0Ă�q�3ZK��6�Y��?��YH�7C9=��P�F�v���+m4G�0=<N��I��c�FS�ל�&�>o'��		s߷�X��n����xQ�G��3넿���dGH��P�5E� ��1���p��ӓvvx�rW�v��~V�<�é'Sxz�1�> �_��-�A뭙9��*����#�_9'ڸ�^_w�^n1|�T�,�U��͔�%����C�C�ʔ�	����"���(��I'rR��a�}��b�����%���F���+��X��*��8򫑽.*|8��bcov'P�Rk~o�u���Qq�}p���Z��اAk1�{���E'4�J�Wu-��!�-��.t	��u�ǚ$[��{x��T;ǠI�5�h=Wޭ�Y�g���#���J�I�C=�rXa7�L�u0�F�OQ ��yl����v��=���#E�|l�&/�6�3�k�s#T�G�r;Δ��
|�l֠�{1����
C_�Ѽ�5c�"<6쭚��u��uOn�׀�O
���g�B*q_D:�
�Ѭ��
�b
����b�T��p#��2XMZ1v����)\q�ֺГ��4����~-��ZchE
����7mR��!��\=�����G�lH��k	��`r:�l�,�CX����l�&
p�Z?�����o�Va�1!** :s
3:h�#�ԫ���
�&�LO�)�R�t��Y6v��;;�ZD�&�	'�M�urԧE7�;�E< ���[{��
��\��^�
d_
�����Ve�P���i=�},��~�e�i2~G�{4d
����_C�[�`�]mУ�b��3+�)� ;">�ճ�e>��c�𯕂 ��M�Z���:�N�K�1(ؚ֮�8����}/ǚ����Ѹ�=�p�?�����:����]���X���°`[�0C�!;@q9.�qZ´
h�@t����,��4C������E���X�\NwD�R&����)w¶��a�n,�{���E�I1kXkϼ�Gϯ��s�ʙ�]�Gy��Z�^��}	7`ů@mg�[�N;��n��q�|�*:M���;"�{h��!�]��Y$��x��I.Qz��f�Ts��ijh5���}��jղ5��x�@����5�ի����x��"�z..�s��qdM�/���&�V��8��]3C�L�3w¼Y�ԑq��C�"�t���m&+���SXq}J3W�]uO�~��u��g�/���k??�E,�˅�Z	R'^��`���m�����:I�"o.V�{��,��ȷ�HO�3���Vʋ�{��F!��L�gd���%���O��OU	ΐ�s��ӾPKɹ�|�wL3���@����3�ʠ��O����,u8�/q�E�1��qJ=���o}�y��Y~>��O��v����(ǝs�P'.��ht.��hY	�:\��"�tr����x�6��L�kٜ�M���V�BN'�����c��O���tTG\y������1l���Z�m�)��b�N������ g�S������!��o3�x���QY�ؽ�T�#TM�2�*&�X����P�F���P}R<�ԀT�#����e4�jkC�*,��B�Q�Z?�e��2
�'��(D<;���~"1�F���86�5ȍY���P�8���.�[	����&�I�������:���R{�~���kb�U��,^�)�3t�w?�Eq������h ���x��Q#�1{���d��PD9&J|XdiDa�X��!D�A�XG��]��[TEl�M%��(��;K,�{���Xar��V;p.�)�I)^yP�"��ߒ�p�9�鵍!X�g�<p3�E��ƻ�~?'e�R!��U�z�⴬�J�V����P��=���Χ���Q����ks쌰�'�n.`��`�7���}~'s���i�h����F����`���Ŭ�2�T���D��P�a�k�&�B�P�4-d46Xr�Ð���T�����fi��#���� K<��Q硭���sx��Uم��;��
u+�8�oj�?-�w&�W"�/�\*�gVM׎<q��1R/ӵ�	k��Ѕ!���vkn�=[��T�ju
��+�rzϱ>��wv�`؀߅&ڟ,�o~�	�€em�#�^����-KE�7����n���؝85��j��Y�=�Н�<�?�e]���/��X��9|����0���4
����!qv��@r5�ͶY�iہ����p��:�1}���>��{џA��w8}�m�t��5c����q��� �M�u��A�u�r��C@΅�J1��W�o�}{�D�׏�N5�p�鳃F�ud��l���fֈ�n�0`7փuk�[9����j�aӁP�PLq����q����:���g����ǿ��s���[ت��tI�̞G��ƶ�gd3�LL���aG����Jl��k��c�vU�w�e���Y8M�SG��'7C�E��
FV]7İAuӢA���bOe�Pyɚy�0��Ӵ��a-�C�Y��b*|���ņ�>t(ҵE&�Z���+����Wd��8�=W@�/�L���JKOk�͐��Ml]xT4p��/z��Q����)����c!{���T0�غ�,_���n.o*�d�5<�*��j$�u�#g��D��2�wé�W�b�ы����B�[6���ޑP�֑.���P��B�4>���\w"WD�xõy�-�(r4CY�!�'�0�������:ˣ����C�Hu6Գ��)P��i��� �ś��9Y�X�ݚ;�1�QC~��
�7:lQ���.X�F�s�����(�tZ�ω�,.��)T�rfC�@ʆC:�b~��c�y8��p�w6aCG��tJ��tU7�SSbUN�6e�|�f�:t����k�K��ī��WS�?B��@]BC^��4���V�x���֛j. ���\s���$X�?�<3K5!�����`��dh�K�;�K8�ц�vn�|s��[+���"t@I'5<AK�����t~�MJg3���A�<�6E&�?��Cܓ��7��x/��܄��f5e�\��C4\ꮬ�����h&�E�Eì46�y~�?u=ƾ���#�D�l{���D�I����u�F~^>�<+��z7(��?�i��f�D"��J]��m�ұ�s?Ӑ_2��웳*r�Tɗ�{�=�BT�?S\��-���l�V���Jf��G�V�A�\6�aSx���u�;G"���홬����Q�UB�9�ʁ[�q
.N��֧���DJ���}P�D�l�e���	�%��AVm�q�k��}x������t���6!��g�3Fb�88�J�>�,���attۗyg�NǴ��N"��{=�Sg]&�f��3���y�n減��w�aS�o�r��>��˓���0ALz3�u6��C��Yw.�X�q���Y��a|�J�Pj�/����ʘ]�H��3��cB�Q�4�j��Ϸ�}�f�Ԗ�݆�����_>�Ş���[�.��jjh�n����y�S3t�O
�9�Zx�����z�$S�� :�2*ãH"�GL)��1t�Kq��>	׾a��<���1e���}[�T��(���f%���ƞ����$g8W��)Phyl�NoO��|�^�{N�{
܀M��h���*���Y�Ш��fx�M�}*yZ��-��b���ݔ�}�V�#��
f�пxR�wu��GV{��5��7�P�f�֝�l�v�e޸Z���7��b>�Y� U��
."��:r�Ce���c�Ws	 1�Η���kW'�g7؋z'��~��І�
���m}ǫd����!�;���n�j���Ys�]O�6C����:bp��yfԆ��4��n-.��wE`�7t9��&�s$�6�R��Tz����j��X�ARx�k�j@��D�����I�?I�t���]�����Y9�ڥEZ�����Y�sϧ�\k*����/Bro֔W��DlT�}U��{ځuh��v8�h_���j#��?~�h�w�RUf�Yx��������C]�qR������9K�o�s՟g��T�#�@���s��]�u>5=9���UUk�-�Ȕ:��cSEї.1e�+����i2��f�T�&�C�m!Ͼ��<=/ 2�/��6�I�kZtlj�+T���:�,�ݾ��6��T��18c<78��Ɋ���J��%�F&k퍏Zg�9M��\����>�U0�QΘ�IH��<�Cl�����E��z�D6h8��1ћ�׼�'���`б�'ي�}�in�)�ȴJ��1�A �q]uh�i^dJah���O��^�ʦ0���a�y8 O�_z��z�L�s��|�6��^W�t�S�z���X\@"C��3���dW��N{�=b������Y��1��]����x���u���c�4:��-#���
)6m�b��aT�eŵ�<�����{K;]�J�����	S�!���5�	S����Q�;c�í |����k�yFz��^�/�[�j�a��6�:} O.�:
n	�P�Q��/dЛFmpw{t�~���u��c�M��٪�;�[�V�A��o�Z���7l�)�O1�B$�5�1�*du��@�.���D�7j��l�W[�+�x=�K��jX
�c���s��.��l�м!����.́������.��
T���#��T�.�@�I��N����M��I���ұl�z�lWt0U�h�)��ߝ�L��2���n���PnE_0�$ol�b�G���)'=$�͐C=?'�ZH���1�Ɣ�����0W��0�:�)���\	U�.�E�y���,)���p�u(^e�r��-�0К?�`=��	�EƵ�fi��V?ԽD�H�A^��X�����?�o��Jwa�^Qb˼�+�yh �zYc�|�@#�"�a�po���x�z���M1
Vgc��ќ�IJ->dթ
�)ut�J92�:��>D�Fh��=�E-�pD�a{�5G��"��zn�
�u1jW�q=��>��(R�=��I}F3�Ɋ	d�D�C������[���A�Qi�a�!~eFb
��c5���Ե[�	[�($��t0��LT1�G�|eĆ-��YñT$��]SQi��܂���կ��u�b���
�}����2�QC��ky��P��@��3*���4���w�p	�a-��˱�b8�v˛��n�}m��d��gn�-��PQ�'�*��[B�D�$1A���Ҟ�X2'��5�
�^�)>����t*&Z�N�1�74����kQS$��5��6������3_�O$r�„�h�tV�vvI�g8<��F�qk�	��Ψ�*���iy�{���g7�s��1�s9l�L�Ö����@������M�gs����m�2{#H��HW[I(ԒH�_cs�_�M�10�]���K65χ�
����Q�;c��qؑޙ�ln.S��%�R�[�*��qoj�Q�wR����f����L�t��!/D�R���7a�~���}vm��.�:�������{?�����vYL��{�7��Õ�X
F�ͮ�6.��Y�d��ί�⑩��\Ϧ��B����z�K:�#T憥33˘�'�y��4�j��?U;�h���U��IoW�`�
��v9��S��:��V�y���s�#�����fX��
�y���Fم�
\�^*�Ś"����7���
�)}��
�#'=�M����<�mL��A1a�N���&Y�w�2���j}|>1�Е�QZ?l�@x��	Ć�7Xx�xx��.v�TZ˅lُ-����&4Ӵ�]�����:T�
�G�,ivh\l�T-2�^�H_�p�e1{f��ċ{m�{�8���if�UQ���%]q�/tj(v�a�Fl*Pu{ds��ƌ�Y��m�dg�q0��k͐�y3NJ_<��V<�xSU�}e�>� Kr�1��Z���Y�b�����"��{G�(�g/�]�
��E��G6;���aU�_�ևq����fUqNW�����RG��Āt�,�)���y��g��i����,�#T�u�i;\#�5F#�~~�=*?�$��<|ؑx��M3�X�L�$]!m�oȌ-��ĵ�����Nnp�y/�i�{3�؝��Om0��6Q�B��#��e�L����ófa�,�8��n)��Y|�oa:(�].ǁ�3��@x���a���SO™�ms����޺
T\Y�)���^׽����`$r���0�0^�]��k�JT�"��47�����@�МJ��:�#x�ۉ���J��\Ȅ_9�wB뮝�Zg����B^#�!�����*��:%��a���?u�5��.u%2�V'�O�����N�_ꦘ�䟖�{:e���m&���m8�$��9�7��ط�x��lp��ƽSAٚ��h����&��Y������FT�h\�}?����z)�u�r(��"���ð�]q�|�=$�(Pqn��VmC�ܾeݣ
�2��{�{�l�7��n[�h�jB4���*��+�V���\b�1�����C����0W�Fuw��%rvx��C����.�pšax����#`TS��*����%��+]:�'�:V帆{�ܟd�կ��Ji��&�><���&�3�ꁗ��G�h���(;6��i��F�����������q
�Ӈ=�3k�.N���l�L����J݉�\
~���lx��*?�cje�n�Qs&���ۉ���4���X�
����_�k�%�U���(*���_S9���^j_��:�ݙ(PK�G��o�x�:��&7@S���BL%ޠ6O�\v�lӁ�c1\����Ӡ;ж��14o�q�oۤ/x>�%���Uf�Œ�2�J�2@�
0jm��3&���)<�4s(�X��F��S'b=���ğ���d���I��Amr�e�f�!�wC�P)yp�s�66K�5����v����R��E1>q8���A�:3�h�Fb6w;C�Z�s�>�W�G1�pW����?~�r5�|�I%E���(�,dSy�M����t�d�$:<6����tlGT���rع�b���(�d��0��0KCd1��
���^�a�\�5�5�m��+4�1��.�tOr���Åy�5��l�ݵW�o�U��2�:��ˊ�����O{��7Oe��6�`7p�}w:v`s����6]�	��G[c�`��!C��(�f:�]���=S�;F�1��{��
���8_o��89s�1s�rDL=��0n�
ׁ��2z�
�g��
<�;sj_��k(ZςmS��#��k�B8�����O���*O˕1�^�K8��-��Dpgt|�h�:������b<�+�맦��X�xr	�a4YsW��W��MXs�h��_��^�S�!y�/):��"'��ښmu���.���U��|�+B��\�1�	��Yʙ$?�$�:�4�@~%�g���Y�T�^N-p�/�XfY�f��^K�Pn���m�x��3�����ټ���/�vWcF_�[4�Ѱ��
Cڀ�o��g5����p�%��Ү�I�J���69�׃��	�N�㰴Q��Oܾ]j{��xyG��U���!�jV��>�pc�o�(�����H�j5�b�T�|����].��������L��8˙ʸjl�
_�`'���|�>e���	1~W6��{X9�A��=�A�m�?���@���g��==|�p�p�F
���v�[�@k��<��p�@̐N͕�j�����N��>�kZ���w�G^�7�أ��q�M��	�ܽ�w�P�U�g�j��İ��0l(,��~�1I��e��g�˶�-�yEb>�>~wf���?N1�nM6EJv���jW+`�|5��X���XD�u����{�$� ���V���XOڔ䈅`qG6���&f��Y�
e�Nq�ͶF��^��6��T}�"��^�������i���ES�W����~[�@���l�NY-�jGE^V����3�Q�G��᪍w[�~����n��R�����
��������i�S�r	�tj�X��,�x1�+>�_P���^���qpŕ��X�!9*�nw�@�x�s���C<�g4Y�:�2�%'���z�ʶ&�q��D�"���<O�=�?��N�L�K�1ڎB�P8#d	G{�vo�6���($m�!�g34��ʴ�B�_�fz"O[�8��i���h�M�X�`���~�u��~��oY�f�Â���(��w,*"H���)��O�������lܨ�����`�h|<.հ���0{��]�u�<�	��}{���x/�G�!����.vi�G�Ց<����,�d���}��Hл�
���ԕ4���q�P�U�
e�37�������Qh���=y��Ĝ���k6x��S	�x�3�gΖ
��
ɑP�����l���%�C'0b?�>�Ym 5T@
��/(I��Y�Qr���s5xg8�Y���9��D���,�q�(ZfM04G���g�z��M�m���q1�5}��(�f}�MUA������E��<풹=9�М�F�w�W��{���>E�����
x��������^���-�^ycs%NOC���e���Q��6`XoSx5�
�o]
��C�‰
�@�#� �1���H�lH�H��J�w�����k�Ǽ.��~�h���Pϣg{n�=�p
l��@��	{⊬�b���*�-�_j�	\��g��
7���Y:��YWo:��F��kU�Ա����~����ܦ���Ò�Nxł!q�k3��j���M�2�P�.z��j���N/��w��@+R+���q��q���ܢ�.��#��������X�q/��n��)��Bm�aCz1��+�CW
��9�s�>B��5Y}�U+h��j��G~j��������g}��:F���~���qcV�X��N�T�l��\�"���LbkΕ�|��\�s��K>�Zl��k�����ݥNt�9��d�I?�����YM(!��kcΐ���_A�$�����P�6]�po̡"�_�0_����-�5�C*|���-|jL9:Q�CY���99UC�����y�s�	O�y��#@��G�b��{��x�x8��^t���Ԛ�$ʓ����Y�<	\����A��r��D���ɬg�8�K3�]&��(ܩ��Q�U��"i.��h#8��)#�V�Xn�f��q��rݚ��;z_�s�:�ˮ�SZ�}Ç�[n��m� �"7���'j�)l9z:��̭��z^X�.�#M�ek�JQ
��oױ�1t7��@�u�槔��3uHr��[Lq�$&��A��đ��pE9k��fs���뚿�?�[�Pm�D�=3���3�q��u��>��^�3<x#ތo���U���f���������#wͼ��ZM��C�5K&���C�Y���ŞW�{�?�Y@���x�Y�����8xր�F�f5��Ͻ�:s��zM��Z��xBX�{����Qs�5�Hȝc����-\}XP3C�
/�.EK3�N�LD�x��{[�u��,L�_7����g�,���:���I+s�ޜ*��,�����o��8Flpb��>�#>�	�
݈!�~�ko[��ț�6�<�=��XU����@�dKo�\������?���̐���߬<�W
�狮L��c\4�;XS�-?{�'i�9���ຟ�n�/����&��?�ޯI�I���Y=�'+B>Q�~z>�D$���]���L�xddu-o�zwv�*3�3՟��2���j��f�6>�"�� y}�&�b�N���B���i=t�dC�j���Y�C�F��5��Q8Rj���7B���eL�0_�E\��%&��^�y��>�֪�(h?�>g��tD�u�zקZ��f����h�E�Ho(℞��qu�~Ù�V�Χ�6!�t�6}S�Y�CΧ1���6��n3��7����	j`�Ҝ�A�U4�?;킾	�T����x6kn�Sr�t��2��B�*�\�*���N����6�D��$�A������Wa8��w �%��j��B�٧9�0%_�Ѭ-���=]�h����J�r:�f�"�.Xdl�w��@'Vb�~as��1J�q�˜�欱���l�h�M`9w�9��#r�Tk�S����C����׿
����Ȏg��9�2�jkW偾�nB\���O�z��������N�P�՝�_��!��y	�P~H�TF H[Bϫ�3�-�\߽����}�g��zґ�
�*k9PJ6�0m���H�D�k(�]�N�v&�3r���>@�a
M"��b�&�����id�,�Pw�O���8�Fd�L'���k;Qz���ގ���1��[����pkc�:��CM��4��Tُ�p��6(��n]�OD&��Ͽ��EA�1BM0�@<4���Iu�2$�zv��ߥ�{�C͇�n8��V�?����;��?σBM�x�ƽ�ꘪ����g�O5pO�*��K��<����L��K�������C��O��2H��sG�w�J����˖� ����}
�N̟��������wt,�ta�g��ק�P�{�H���Bԕe��eb�j`~<���/�l(ծ��\KqH
�ȗ�r�&�j�
s���)�������P�b���Z4ΛD�7pݽ�M#I��֓ƕ{[O
��tp+:���_W���ܝl��#�Nx"��ʑ��!Vc�ʐ�J���>VScT�`;N-�JMΎ�4��MrP\z��٥��
힥�MC|oBN�.e΁^���@ܝ}6l2RF�k�J<��x�q��6jB�bg�/�VG4���Ð�+�Z�V������6N���
�������2T�.�I�]��g���e�rB-�{�~�u��~�!���(I��������
�6�j]`
�ΪsO�|�]�Á��֝�X��k�{낡�5w"�R�ԡ�"�a��J)��2
�շx��"�Y��Ћ��!Ê�.�=2��|9r�u%۾���Ng�,xA����Kk0�Z���W4�#'Į2vNi�[S��0[d���=J��+;Ҧ�=��1��l<���_�}�$cͽ�k�f�:��l�E�����D�;\\�L_��՛���E�[��+��::
���@�1BF��r��E�w�{h����FɰA��l��~�D��CĝbP��|�qQ����u��lڏ��koF�X�a���M��׀�g���Y�i��NQ;�MD�8��;�k�	@\�ؘ�8��5���7���k��E��*��ˈ|�BwY��.i�b��@��J>�6�x���l@f��Xʫ	�8���ԇ��X_D�Ņ�ʥ8�G(�{.R��ɼAdn����Q�P�З���:2��hG_yf�
��Y���	�3�XF|�)D�S��,+A#�|S`��T3-�>`���F�*��}�r�Q��	��B����=��o��.ה���;e:�&��V�����{�k_9 �BS �?��&:��lb�Rlz�m�����B��LDW�'�0���j���m*�8�??�!�A4�`�g�szBN�/�&�Z����u���<����*��pЈ�+�ɡ���L������%Z�*Uzs"����D8M��ـ,I��H�=�R��0;�6�1p��/Ӡ�\�lrC�4>����ˎ��Y�ԉ\
��	r�c������D�|&��7
+�<6M�6+#��x�����ԱY5�"2tJ_�c}:�Qy�,�,@�a���(D��"aa�u�|[�ޝ�pq��c�i�sUSd�L��������&q0U��aҺ�7��!"B��삡�L�
 s����
/W_�S��^�aHe#��M\�xUe�"�Qvs�f��]8��p"i���
��v�ѥ$����kDA�GS��Q�\pM<���qh��=w��m�k�8�$�.)]x�t��+�w�MU6��S�{Q����t� 0P-w��5�l��9��[�Nn�"v���Π7��na��2l��^WShA�m?�vk�۟;2���F�����a�f#���,��$n���i48��M�鍃l�3�٧�u4s���#�/��.~X3eH?T*�{k_��7�o�yv ��_[G�I�X��m��V4L��B�g0�sf�KҎ�h:�B�A��0D�ç����!�b�B�[���,�'>h�zhJv�ߦF��U>���R�&5���$SPX�Pm�|�u���co�>��i{�}Fgd��k��-��zF��)��%��\�&^�pﭥG�0��ݼ���k�m
�J2BPl���p�C`��Џ�y�D 2-�Ep��h<�3�60J�|������<����Ť�
s^'��xG,p@!�4=��ύ��\�Ӑ���yj�硂t��x�yD��y\��>
V�N��ȟ���w�P���ɜ����*�=A!�4���G+�A�>�\���'?��~B�<u�j:�N�o�soq�B�n����c]�5l��q�5�o�h�ʤ�)Z@��|OGlIG�X<�:0T^/7�ٴ�x�B��g����0>��!$��af�v\�A��#���5\|�{�
����}X��_���K��p��L��y���d�Վ����Y��ue���Y*r�W�G]>���sV\	�7��ޚ��n{�H�7�R�X���QF��8=�5�"8�~|�ʼ��}%���<4��UmN��j�>
���^�.��]L�����)\@����ʹL'�"�q����k��|��g����C뽎wyq.$��.Zh�&�B�(�L��O�{�I^��E�W	����i`,�kg(����<���g��q�����3��>����zR�k��ޤ%&M���`Ca�,|G�L$xZ�c/����ܑ�}�e���Z�`6K˴���}�����^k�]w�����!:8��mމ��ܘC�
r
�ܩ���8'%fN�5Y�>��̨U�֭
��7
S�w�p�3���8W�v�ra��Q�*�����e�<Q�s�U����~j�
1��O�tL'�"k�I�T��<c�c�VJ�dER�D���W�A�27�|�Ь	� x8���(+%�G��D���s��|� �3�V����7��0���@/����\�Q@�9*^��3�/�$po�}�d�c��2U6P�٠��똹I��Y��0�yU5r.�9���U�w<k�s
����&�\��}ߗei�Y�2��%�M�α��x� �h���wF�f�k�)����ݺ��^|WZ��Y��zfb���CL��ʰjf��LA�+
�S	�K��q\u�9���q�s�M9�"^����p�uڎ=
8�}�J2k�i��t\Ukk�.��h�L����o�t����޸��n��g�!����kx�4�
��GqQgĉ$g��Y��#���x��>�H��S��!b����~.�=���>-�B*
�4�D͕k�Z�1�'-@�[sJ�⅞���Ԍw���8���\@3^}�ڛ�O4�C��!t<|�J�2'|7�"O BƇ�oڿzRfi�[�cO!��dپ}�L�����a)��S�})Kz-h�Ys��}z�2�C�Z�<܉I�x1g����Vf�\fC�7���O]�Q��e�~!�!�Q�r+ڣ�f����gT�<-�8"A��h��Y-3�繓��9�>��6m�^��6��X��0kwЊ���r
C�ߚ7��ii����o��Tï�k�{�`YS}��İfp�ׁo�l�|lTX1j�;���&r�ZWO� @�ɵ#� �(��t~�3��<N�en���S���Ko�>̲���=�λ4�ŕ6ԪT���?���S<��U/"Ȉ�ϻ1�u�'�W.l�����V�>�W���v��p1,���h4�t�!�m��El?���p7�7���+{z}Y]9m��{�\Q�%_3�f��6Z��h� �9(v����u��z�����P-��˃�\�1��@2������s?M��X�p�GX|]���
%&Ps�A�<�yW��za�]��ڡX����}�`PZ����F7�wν�S���z|�k�]`�-h��X
��k�\�?zp��.�5'/t�-N����a�{�1�	���^o��x-�Ͽ65��{\ӽv[�c�N/�,o/e��G5S�
����6E�D��~-��%���<X�j�߅XM����{����4j$J��K���l�Ym��`��;ׄT�ӛ�Ű}�܇P���� �w�!��z��g�V�J�S�(�ê��1�wM���7[Sm���ٯ��������KVd�}���)6k�ar~܈E&���oP~�Ě���p&1�
w�#kXC��
��禴�@v��p�$��x����P��߻�����_���kdzR1��7��GwϰV����Ѽ�`�
�%��s%���HI�˲<����6*���]�L�@xGQ_4�r:%jg�r��Q�+C*��B8�q�M_�0�����}^��d_��Y�:�N�Lկ��r*��Л�#��F�7�_;�7�N�k2D'ᆙ|dc���ڏ�
M��7�ꦹ~�]b���׹������ȊP���P��Ao�a��hH&b,�L�Dw~*d�MO��w��Q���F��5�"��$������f����5�@���e�>��(PK�Յ@ܤ@w�!�L�o��ػ�aA���/��Γ���Ш!Y�!r\�7�j���2���!���^��;:���ݑ6�m�{X��̸o�¸f(��c�x#��Y��H��p;�-�Kx��ݕ.��dJ<27o.���]�~l���?���9��{p����=6��r��ˎ���������OA�9�^���q�
��R��?�,;����}遪�}�\��pa��w�˱���%X��X�ݙvC;����>�ޯ\����k_��W0���7N�♶�9SW:�K���4�K���~�s]�
[�>X
�$�%�"�{�K�k�3[W:n�Kq����~��_�ĸJ&g���.��'���9�z��NW6���3�����q!.twG���?�s��!���-

v{ ���4Ń�t�Ib����B������]�ԅlX���߈�k�ǒ�M�靷��o�HU��M�c5�q��^��FͳՎ+���\����^�.���������>S���$�?vi��æZ>���%|U�������k
�����s�e^(����1�?~�?/��n��y��@^3�^��>;���h)C���z�����زX�F�������H?u���7�CX�Y�ݝ6`ޠ��Aު��wWi۵^M��ó�()[��|�:��Ns��V��!p;�
�m]��vߏ��i�6X9ީ
g�ٵ>ۀ�0��3��x��Xm�'1�@�)��ܣws��>�����k��U^�.���P���qܿ�ϛ^�/�ҿZ6ʚ�ﶱ�bN=��+��s`9[�4n~�̶k���8��C"���r�3�8���] ʚZ��{Dž���u�NM}�d�|�c�ۮ)�'�m��^ľ@��͟G�ņ�1E��V"��(D�^���\���)�bvFx�3�
6������}���P��.�]�5��b�݋��v/�??�J�W���q��=G`�W�H0��QV����4���#�yg^����"���*:^˷����7��;��o�6���v\�pHţQ\<σN�N
��^�Vj����To���Rr�s���K�8�
�7��;������:�g6[����xW�V��cP�u�mE��wc�&Y�Ύ#f��|�)mP~˱0�"�!��T8��|��O>t�?�U�H������+�;��R}�O�'��WS?��2��	�������j�
�x��f߅�z��0`�F���߷�!<J�J5�
�ʿ�E# Z>�v,�|��iq���ej�R�3��2\<(H�(@#�O+�P�\��9p�E(�8�����1�,���	�;����Tp��ȋN[�,0t�'�W���gbjasݡ]��C�t3„V����=\j�S�̀�jS{���W���
����7���}!���J^��s�oup��7�v���ϜpT"�Ԟ�w�,H���Jy�@�n;���j� ����U''����(ĭ�"�b�i���A�!�Y��1�P��ϗq.
�m��Y2oQ�}dN�u�AU:�k��/>(IC!��6w4O��)�O��[�U�����8lz3�
��y܋+���W_�Aq�s�u�9g���l�c�*^�՗)x�=H;-��<c�7��E+���a�Ϻ?��"���#�udž�
5w��w=�����z��������B�Eh��}B�eB&,K�J���F`��r����P���{�E�R̛�Z���uΟ����!��+���?�S�e�;��ύX�$�w�gӤ�%�	��M�v�4�RZ�8L�`��Ee��o;�4���j4�#6��V/�C���M��S݀5�\/�Qs!Vhoڃ���ҋ��j�޽���"{��Ȧ�Q������O���ڃ+7k�],��)���͓�p�@b�5v���
�\���	䇧]��G�\��v�u�>ԡ���;�S
�τ�+�8i�J�-�^p��*|(Z_{�{������)oԭx�n`D�H��z
�%�^9�c�,BL�
8��E6���۴�>3��9E-SF_�*$�V5�NL�,���|P�	�3u�8�n�8t�:'p�h}�g:y��~B�NUt���k����%�-���Sq�s�|�3e~Q��d����*G�EZ��NF��Qm�L��s�s�5���h6v�Fi̧jl�Q���J��͔�&{�C.Y+,�==�h������*w-y�v%���s��_�ѤcG��=2���X
�=����-X�k<�l��nq\
�y����2er�˞�pbM,gc
��V����+�9e����D4��gLb
K�cN�Xbݜ�)k��e��x0��v����;w3{a_�cj���Kb������߫"�,��A?6�<[��Wk��~���E����#�I;n����Jػ�;~�����w�ܼ�k�t�� P��\��^��ҏ��.CA�l 4��o�kA��7!-h��|����yW���~����uo�p��{��Ƴ5�-��������^l6�ș� �k,TZ�է�sLn���F��������Û��!�
*jG\duy��M����{�m��R��q{���R<;iu1E"61��.T��{�ּ�=�;�,�p��)�=�dƳ�;�Oe�1j��]U#��4�fYMb�WWч�ozf�D�=z-~��{�m…%��>4a(iʔ�6<�.48��	S,�Þ��k�P&���o�S��t���3��ݴ}‹
"V��
����b��^�o��nug�ں�4j3W�ox,'�S��BL�!

�(��Jf�m �ЋB��{��ؙ�b����N����!_�pH۳��J�Ys�_��y�ݏ{dzՂ������9���ڀ���F�g���I��8���5��Z�q�Lr��~�pq��rGe{���N��f��_��2N"w��T�Sˆ�6:�V�:u�3g�<���;�crb�� S����3��(!qu����i����S$ĄB�f;wd�,<���c*lƷ���|լ�!쳼�Kw��o��3.����zI/?��=������a�ap�s���Ct�:��0cm���GM��_���ZԮ��;N{�
}+av�w�O�8`a�w�5�7��?o受Kw Vi�Y�����q��Mx���f��J7"j�eyC�@�AmX�g,	����o�=�ki�ƾ?ߕk��a��)w�*���UhDY��q���K�^�wS`��A0%��̽�_��_�3_�,�}Xa�9w���	)�2���V���P@h�/F淞��:�1.*�t��U�6e6jS�H��F�zd��[�F�OO���gӹ�F���t8��Фa����e@��r*x�]�8$���r:_똪-�����)�01��IV���Ь���^�s���<a�
N�9S+u]�������^��ӌ��#ߟOI�7LL��v6e�P�E��"Mzcc	Eq/��x���T;wm�g�_��r��
Q)����34�uʧ�����ysiؽ��	��ap�!3Y�{��:XS�/�g�����M�Il�kc���sa��w��h	vչ�����Y�%#/��Ȱh�SD���K��R�(Ԋ��N6ݦ�.�C���#�u��"S�>Za�6ۯ�H�f��B��u0G�-�P�#��DגXn��ߊ��V2aP�$�
}\P��	+F9wq({@}����M�F�������Y6޽Hp��X1��%~�n����C�pes]�,^2Qd;]�LˀXa���ڵ�#ே�?���40\>X��>�o�b����ma���0R�חI1�����:
̂
~ذ��Z�PC�$�+ٔ~@�	"DC�a��-�Ȧx�������|�ƭ[�Td�Q�y�����ܕ�s��ҝח*"�PdL!�>�;�����
���k���"�Q�,v�26����%��u�?`�hsQ��B�����tq��iD���TtR���y�����m���|�������n��kK<���dy��Ɲ� �����dE�x����
�[/ű�9�pL;k��9�ڇ�~j�������Q��v���l����As�u�{5dө�=�&����F@fNAdO�ua��x�c~Og��MX1P�����P

8�/]�ĵ���[ҩ�Psg�s�9�nyN�d(盎��8ڎ��’4Z�`R�}*87�q�SA~�>��}͑�8p=������SbrG�M�����*H
�P��d�ɉX5G�>\�t�o�;5!���)�S:qob.{P����gU`Z$�=�'�ϙ��>8��s=����;Kz����kkw)�{��Wʃs�����)��
v#46��eGšh�����7��m#T�)
C��@f�� �#}�ͬ�F�#�p�����W�g^��d�%�\5�.�X�X0:��ũ)fA]p6b�L���e�k��c���Ԩ�J���tݽa�\q�i��Դ�Hg����9 ��4�g6<Zn�^|�d�/Ծ�]'�r��@d��B����?�� ��>�v#R�n��zk
�������֣�+��e�Q��&�L;#{�~�Þ[��m���u����R���T������@'�.JHx)��:�~�{Meޖ���Y �)��!$|�G7��[����������&���Z"�&dU!2���Gp���k5��+BK@��J�L4kP/�I��!򰆫7��|�j��:����T�]��U��\Dž�!lC���S�D�9&��Ԩ��L8����΍XזpCV0��q+$4��A�����~3{�Jr�YF�	�A�;"6��w����W����wqa����	�j��F���I�E�o�PKG�xƗ��Z�(@o	�-[K���0�.�jݑ� �7
!޾k<W�E�3��f��QZ�����5{��	�	���u�"�s����(���y�>�]h��rQ<��y.�k��G��!;��>�J���	y(���J�srպ��UsdZ@|�gj2�&�"{��q�i����_�5:�*{�.��1t�J�y��<�?b��=E��6q��
9&b5�H�=�E�D�P?{ X����kǃ�a�:��5-5Q���1W$��a\��{�c/0���R�����C��a�Oq��"nxaWK�t��p
�
,��Uf%\	�j�U��ɕ��vҒ��n(+ѵ�������݈_�}��B�M���g
W�s`nФ�ㄐ�����?U�}�9u�6��9�H��+2u��Z~y�.���2��h���T|�}��<
�"<PO&"������7m�?�O��j��"
q�\pc�d��o�O���{�Ź���}���7Ǜ_���ʞϊ'�rr���!hC����F�Z����׭f
4���v�c�pQ��*#�X�C΁�@��t��;}�H*_؄)z�3�aؔ7��h��G���:%ON�'�x����Ѫ�g��Φ�8,���l��$�"E>C�I��z���_9t��ÿt%�d�����y�hv�.�m?pvQ��`�Tr�H�陟�2�����]q��:7Z���FY|��u� <���
5�<���<�?�F������)�?��Ȕ���^͆�@	����1�h�Be��t��Q�_�ݕaQ��QIdŕ��9�=&��u�&�1��j%�1u�[�ǐ��8�=p^�?��ټYkE��K�g���܂g�mk�z�b��+��a�
�=|%.7?����
��W89�z�T.�v���(�U�J1ԓ�ɦ�vK��ܴ�ۉC�Ә��J�wW3�#��C�pl�uu�P�ȩ���	ۭ�f��V���%�p���yɥ?�?�:)8���>�s�?�A�b����^�^r�
�:[�xHW�;=��ׇCe���)k���yC�}a��I�m>�Xdf���3J�����5ί'g�tK��|�ӜZn�����
��Fu�tev����%yL�^2
�Wl��?L��>.9�4P�f7u��
��A@^?L�d��
�z���3p�
0i�h���X��v������P�]������{��Ě�e�p`�����~��.�ɦ��P
�*ރlcy�',,O��TQZ���9�X��ɇ02��͕�;B�]Yٯ�

��:
�y
�E͜�KR���(�}����tR�>�Q=#�8]o޷)�C0��܋��e���ۗ����G:M���V�\�k�L�Ulh��갇�*�{V:�Ȧ�P�z���Q���K~H���'΂��u��$�Un=���:����kl,�����X�s�.����Md(�Q��/}��G/t��J#l4�K�U�UO��	=��v߯~Ѡ?��*K8q���`f�u��2��v�u�X�.����\�d��M�YOf�@���0ۅ�z�!�؄�&��`�N�cϵ&��Ag<5X�U��{��M%�k�&b���o�
��൭�g�0�kcP��"�7t�Om5�k,��@ij䓜K�H2�ʱ�`�=��Rž�(DP��p(7�A��<%�I�,����2���rD>%��d5�v�ʎ�6>k#P�P?�{�F�oVO��-��z����(��:��b��:�6��y�m'j����љ)�v����6��ZbB��n����fvM!�x/�ڝ�v_T�Ͽ������I!x?����j���<��B�qNh0nC&���M"�T�S������.��#)�%�o��d�Y넋)��VCi
���W���B[���b��8+[`�K��̸e1�)����h�7�'�Q~ȕ�
Q���mm���ȇTlh}�Z�ES}k�Ikfܣh�)��V��9����ub�ݚ�6�b�x;y�ݷȒ�|���h���4�^�q=���~��Ǝko�������4��x��>J�y��em}`�L��\4���8vk��3�Z��;zq��$6��(3h��9;_��V�_]Dd�Ñ�u�X�
Ĕ�7t��!Qs\���c�!��U<��,{���<�s�`�A(]<��
��'�������=�[z1dϏ+�vM��ݭ�i� �ڵ�WY��<u��Y�9�z�R���O�PJ{��O�F`� D�){�4��i��P�0Pn/�K�T7b�Q�s��DO�v�d �zsFľ�8Xu 4���.��}-�����ku�K��6���'�
o��eV��|O﷍?S|ݾDO4!â��m��
(X��1�)�1�/o�I��N��f�=@'�5�Q_�z��J���P�e4�O��+����>�Ji��,��b-��s�1��ǒ�:Z�*�D�[�pJ��u�jco�8ŻY:U
2v�
�kX{f�|}߱m��1���7�Y\3�s~U�'V����茩����_n�cU2�b�~a��Ǐ�I��w���n��k�b��{G@�4��:�b�'Qq�#MU��ֳ<�s����C�s�)�n�|�6}F���熲�(2�OXjra���(�.��v�d�b��mDǂ�.n�J����X�=���*0(����l6<�.TdS��GDi��,<5}��?'����'YW��K��2x�'6 ��(n5������\���A6i
]l���¶ڋ�Ǡi�5E��24�5{�Q�w�+�E��O򞵿������\1ܪ�
�Nءҳ
%pB���F>sf�i?�[�����G�ޣ_�c�P"��s.���2��0Te^Ĩ9��j�r��m�lz�>�w��N���P�ءϞWX�W՘*9��~4n��LMq��N�K�8c�
�������h:8e��2��u�g���?����������M�r|wM��|���}�͐*_,���g_���}��3��O�U��.�TT�*���B,H4��N�B �
qL�d��cY�5��_���=�[��]�ḵ��&�����3��{��~lޛ�~wf�p�5��bO�q��짽Y��`G��{�UtE��J��!jX�,����rw�wxh���7<[����.8��G?����v<hf��Ʊe�x�=c��"lH[3Y�7������}:3:����������l
]`-T���h8��@��?/�&g�*����wb�\Y������\��������O����>����}��B��pjW���AYXs4�*��*��ײ�燊����/�w2ja��vZ^ۤ���7lF,|.:ќ5/(�
�tcpz`UܝaM!�4�t)��s'ٶs�q�uƯ��i���/�v�5�~<O?�sS�j��
�
!�8������Ȝ�?��6��;P�(֜�0�B9
��
�����*ܯ{D!���O7▪�������O�J��L�t�ye�=˃[�+�-8�J+��`�t�rh��˭�50{��7�B��Qb8��w��y�w�`??w��S��^�����I�I��"���v���mN���e�稁��~@��Z|�Ht��e9:�B��E���؃�m(�&���6��+Ag1���sp#�l�	�o�*=/���s}}*cx�k�J�Fe��/-��(�ߎg��u�96�7��{��|ߐո��Q����:u�f�����k����^����e���۴�o� ��fb��G80�� �5���;�o���v��� ��A<�	���k��w6k�`�4V{�}��h� ���נ�l�!�Xq��=oc�iص�Pn�.Z)�� g���k�T����+���7�g�m@��;���d9�XV�^r�0�z/O�7���^۹Qc���J�z����bd��d��<�-�l)_�նZ�jw�%��cC����D5�h��S�"��؀�
c��=�@/�α�ɽ�~b��ʭ�s��š���J&W�g�pu�!h�~�������db�)?�uE�gk�ۿ��/��<��n9|�4��ğ����I�qC��c֩�Ƭ�[�ʰHLe����g<caS\b��遄��{�}�A���ȏ�<	:��br��-�3��_|X
���聼܄��)�kyO�㹱f�rԞ����d�������h~O
v������ 饟7���\tr�Ͼ:*?��-�^��H7�g��In��r�0������r���Ʀ�=�jd?��ܺbָ�ݡ����x]��Zkk�^*D�,��K;+��搶3��RswN´�8��֧����[�	�=��э|�O�nT~���b����giC��9k��֓��<��zq�����'r'/�.��d�?��VՅ��~[)N
%��[p�B��;�����6��v����M��������f!!��܀���a{��x��K��Hb����5���"u�!^�7e]c5��\ֻ�l���u��7�I�^���ƳeƐ�����P��J��ZDAȰ
l�]��E�Ԫ�
��o2RA#/�c�,Qi�v�
w	]���-��C��tAa
n�Q*3`�wk������3��W?dH��XO"	�:���V����^=��V�����ς31s���|��l/�L�|��f��i�7�C����jap�f���5���qO "k�=n/.�Z! 8���cC�z����ixu�Bu��wjb@q%�����1�e*,�-g?����g�{��f��$�@�l8 ���]�J9Hm;�����I�s�k}��:<�}�~�s'd�z�?�����*�u+D(�C~�}y|����f8��%w��Ɍ���V{ �˗k)<i,GQ9+�A�x�}J��.mZ�U����(,������ꯔ[2+��_��x�xN�v�{*_�P�ٻ,�2�o�i��Wճ[A`��E؊?�rv�;ëjg�W���
�Nwϛ��0h
,XK�@�L>g?���)��B��,E6�3):�T�-혊6	�����@�'r��M���yJ�xox����h#R�<I�wc�{��"\3�K���4K�&-�2�-2o`����T�~g�zT�4p|Ư��B\�XP�
q�
��P�&�k<	���c-x�[jYn(n�wc�ӖF�8�TW��ud'(b6v%[���^2��L�wG�g���ϳ��n����j�ߡb��1�N*���~�Ex��r1�`�sҋT�n-������X�a�l���_&�l��`�6O�tP!�,�PW*_h
~;��aȔ�v}�BҮO�g�ì.�"e��4V�ָ��;�J��`�j���Vl�P���M�?����s�#���,��{�Â��,�:Ǻs��{���P�e�0����v��Ypߎ�PS1W�\sƭ)��q�{l͡�4��W��N%���F(Vj������c(�<��hF�5]�n�ϊkP��ף�X�������>�=�ߛ=���P�Z�����\����;�H��
���\������>L�#+��wu��������W��6�Uٕ<��gؚ���C������C4	��2F�5�S^*m���?V�Nؿ��g8.����=��q�0tu�
�X�Lyk9a��tx���CR��f��%������ݞ~V�zh����߼��Y�.�pgOJ���}sRK��(�##�G�ٹ�w�+B.}Xy'� a�h�������?dF��M��_C-�Þ��W�s^z��%k�ǖ�C���65�ƃ����qɣ!nj��闺P�p���6�L�_k�{��l�f�_�8e�س��O
21���T��!~p�o�h�Zh��~6���l�e����e���zi����X׎�|<0����?.�������t��m�!���8$𼱂�d��M� ���v�V���"��a=#.|?�}z��q>�֓KPr���wؠД�n\.�Y(7���#^N8)o:i�mt�>,�H�>j���p�#��p���n�1��D� &꧂w�b{E���-�X�vU�+`�C�ڸ��^T��z���O�SM�qo���EW�!]0�F�܃�p��Z�d�H��Gk��.����Q-��C���ɊF_]m����;�z:�%ӥu�l�7��U��Y�0�M��`)�?�{H�ns�+Ђ����B�kMU����:
���-/��_��;�W�;Я�e<�'O�s�n�Z�g5^v/��{�)~�]iXw((�˾�crw�B�Ny�G';S�\+;�5��6P �ܸ
0�_�@����с�l�Q���"�c�3���K�i��hJ�<jF�S�p����aB���D��$��Vk'�]3�j��ө@qJ�HbM)�{��w��_�}R����X=(��u�u��t��9�����lGe��'�C��3TjG����"</q����R:���k�H�[>bg��/#����nfw�7ɷ�MnMc,(�ʄ��
#�0�d��@�R$��	��5�6�]D��N���ިS*��\�b���ǚ���Y���f�%���Jǝ�hb�V9`�c	���lPG�RY/cՄ>9d��yrG���,C���	�4FC�r��������aE��T�m�͝|�y>?ַ�؛V)H�tg̮����!q��0���.$���ִ6!��X�@��UF�O8ZJ��t�HT�rb���0 �����N�����B\����z�H:z��C˯�7�IO��*.(�1���ػ�r���@�jm��T�Л �#!N��|�c���!�\T���Q|��i��CWC�����p'D_{���E;8�C���	!�Bg���F���#� ֔�fa�9��u�\&	RF��	�p�O=0�!��窜T��SUO
�)K�[�S�ܤĒ�_2�����輣l4�9J�1)\i��U��	��h����ϖWu��*-5gV�ן/yp�������)�n�	���FiyN�C����9���ʹ(��"�l^�`�|+N�=�%�/OF���iq��ơ7�BMæ���(<���1�ȹ��a�3����F���?OR�cW,EZ�p�
;ؔx�	������’�#����15�oU��3KN�S�D�/S���-
�K�]M�a9О����NC�4fӾ8w����'k�4=)������$ºE�C��Q��l�2<�6r	���z��-�/<����������-�mXO�T"C���rC0��@���JT�"�����@�4�"��:69�)�`9x�Y8�g8[l�&��^����TN‰� �v��uk�A7^/tIJ����)�����T�s8Qa�Lش[�VKl��թ�4�w��H�,�*��l�*��نn�t�k�dSZ3eN�s6��d�)�
X�-/99��&�0ǭv�j0$4�y�L9)���D���L;��9V4�>o8�g�&�xx4��4`�NT4�+��f0s���ps�������p�42�J��T?)�ԇ+�K��
��F�!�9S��u�i���<��*�*�X2��^�3\<����2�v}�tĈ���c,�=�P8zS���#���J�Pڟ�"���@��@��i?�u��u_��?���\aUE�[\�,�gK;(�o���j���P�)�WvЪ��Mu��<ԏ����I��N��K�꠭���M����L锾F��Q��Ӱ^�Cu��I`��� .�5=��,d͑����pp�϶PZ �����g�;q˴��T������0矐O^��U"����V0X�	k4k��/��,�^:�G�x��Α�Ȫ!����[�ȄEUW�V:]���4�޿�[M�HPi�ލ���O�orj
F������iB&/�e��2��q��œI�6���)֠���p�y<�yt��^�rHd�v%����{����Th�7�`~QG�˰��7\^���f��n�Y,dϪ��Fh�F8'�Ք�<�Ъ�����h
G
�<`}�2�Ny��/K�k{�*9�/t���4�h�xo\��2p�?'+���s��$��B��J���3N���^W8m��ي�}���
Ȃ-�^���&���q>�BZ�����5�׻*��P蠈@�,C�[�*/��3B��	X���sHÚ���5�~`kF6��,D^E0�N��Z��WY��F�7�(�F��T,”��@:�[�#F��@�94��{�썊�t��U�_j�9��;�@�1�g֎�����%�#��J�Zj~�D��$Ib��y&�cIF�H⽮���Ezn��X��3�����Q#U���R�>N*C��g�e�׀)
���2e�9���C(9V�	��5|c�i�>��q���tN����6��X�D;ko%.�H��Kǚ7�,�#�	`��J{P��a�(�)���?���Cs>{Me׳T}��fCl�B��bo�}��"Y�AkfNY�6[�z�XR�G�
!����sݞq�Q_�DG.�QJ�s��*��K��"H4io�Fm����M�.e	
Q`i�N����Qp����=���y�pg[q��
���!��� �D}�aUl��dZ��y4�����(�mgjI��;o��vw{� G�)��m�mV��=L}�)�+م"8+���s��M��s#��3��qp�TO�����Ȗ���j��f��
p�XGj�37w��ZБ�9qh�=�pf���#:_���o��y��z��A� �F�������A�
s�)���5�hg
�P�e+LrVY��dc�¢yr��7�׃
9]q�y4�Z$d?q���[y>�Cɀ�zP�op�j��@��~�1��ɸ5@^M"�
����M��<H�Z�`�(1�����?��{ٱ��5V��ł�<&��:]ί��OG,deSg+��<�Kܴ��ϱ�i�!Ep��.�	���p��;(?���R9e͸���c�;>�Ϻyx�?"������yt`���rh��PSf�қ�`���>��o8�Ԥ�� o�i�.���i7��É�oQ��y�s���qv/���7T�I���X[�a�<x����ފP�Jd�슕��;�?vE����pR=x΄�f�1��������'��m�Sk�R��{J5��a�PYL5��W�;~�)�>ic6U��l��6>j�0T%U���jĬ�{iފ������I�[�M�vS(�y0�P�Xo�v����mh�lJoEK�O��y���0�P�l���YZ󤚪xrh�ڵ��c=ӗ‚C��6?��4\�,���c8'��SI��~9��
<��#�ʰl�f/v�P����m�zVP�sK��m,>:˰�`h�?�X�g����n��ڄK��X)�&_��p;�����+�+��]���M�>��p�x����[��N��v�0C�0C��ֱ��!$�1�E��ܵ4%��NSє�
����Q�ZF�a]L�gH���\�Ώ�,\�(��5��҈�ع�,	�ִ5\O�����ohX]
y�8qX�ٞ��NI����t�k�@P��U���֤	F��6�Z�YmT9f���P��7�ga���>��\����;��m�p'Ђ���������g߷��	)h?k�g�Ɋ\�/��v�Y4�mm]�I���@1�t�U~��H�Zu��r��ީM�-,����<�G����{Xl�J9�V�,�	י�d�2t{rx5�˕�O�v��5�>�vN��cy�O[�zN��Ϯ��B�3k��4�:+V��)�]�U�����H�
����1���B�9�'J�x�6}|#�R��tFp2�5r(����C$����t��J[��7Վ>�u`O`�/t��A���Y��p7[dw��n��5u��]�{n�1��fc�"�^N��S{懭C&v�#���m8�=����9m̮�%�'qWU���TW�N.�M1;�[M�!٪a��p����!m�������տ �����}H٦H� 2Z
��175�φƱ����ە8���>�hh�E(�7�|���œ�fY�/6�e��Ů�Ճ�o#�xS[����k+i��5����l����%������z���rԜ[���l�4�XL��a��X��3�gg����-�/k�hG�9��
�X�}���@a��o]�I�jh�f(�M웾78�дC}�q�6�і�c������{l�q]�����|Gr�p8�*۾��|����k�������DO���}ڏ=�T��:J%VP)�u�k����r1�͂�%�n�{�X �ϛ��,�����˚���;E~x��pM�9��
�����p�k��<.p���5\����trh�PQ׭;�����v�
Lv�ϮZf���+`�y�����+���}:�M��aj
i�VQ��g�ޘ/�=�Ξ���W���<0\���لG�kaޕÈ�+��pw%��+��\��vd�a╜W~�X��5�/l�4�w`HC�����BΏ�u8D�l��$	������p����v��2�B�0��Js�Y惡�l�9��H-l����*����D�ê�?{�`�'����O�x�kr��uz��0�������3l�dW�_ӏ׫#r��n�ϝ�����k��-e?��g���64;�sI�+x�2�Σe�zx~L�qf�ِi�^��
�|�"�ݣ.�ϸ�����3j�]D;��_�3d��c8�BQ�a���0l�<�wG���1ӡ����T�����y���[Z�um9�1;�{Ŀ~~:Y!1ײ�:vgﰝd,C/'</~������v?�⌵�I��s���G���m<_��Q��`�{��vqg�#S��� g�~�ֱA�Zt�К��Aڋ��v��j�����	w��g�7wa�{wʺ��K!'�����R
�&�8:�|�~�3K�ym�[��_|�0�Y8�+�������2����/�3�.���<��CN�Kk�=C���9~>�ΐ歊<�)���o�����s���AOӇ��#��<X93�'�e7�i��wԐ��e��`��c^hפrα����X�i�/l@��>7��`�M�ȉ�'W��d2����ܨ�L����%�_*w�N�*Ezp2Om&�,2��߱Hҙ���OM�ט]�v�s�`�ul³��wf`�����Pq^y(�:Kh�%��x�Jc�4A���&�O:��ɂ�L�
�"�D���gwU����6y�z�ۭ��R$_���h]t��װm��0̻���tW5_Nhs�!��ʢov	4�> ����D�mZ�1�\r�H�2M���Y�"=�vH���!�|�>i�R�vGx�+�w"6�߃��U�ß�Z�s�����d��6�}H�7m�}\�@i]���G�*�t���Zj��UbH
Lll�8��xO��;W®���ݱ>T@�^�wQ�ݿO�2�M7�[�Ptvlر5�ή�މ5��d��	gE��*b坅[S���ϭaat�u��>%;�A���Y����ӓ��L�~5��l?�s��z������^��S�\q@ƃǡli5��5n�����9,��P�ݯ��9����Z���A�*2�]MM����@�Ɣ7�����,3��3�D]�:{�p%\�\?��o�&�>��kZ�5,����U�����r��m�E�ׂb9��h,C��ݰR�?6���Ȑ����g\,�����k���	��p��{�^�7��6�I��]�W�؝�܈R�<��C����/e�P�C�7b��!��Cyd_���{�^�:_ۮ��oM��,��=�~��>)^�xg�{�j:�Hb3�ؘ�[Hd�7��<|^�޴g��c�2�]��W��Zp�,m��5P���_Ȭ6.�gM����p��|&Z��Bzy��*���qi�W: ���^ӏ�����7:�8��j=����GI/o������{�U�h6.��MGI��̼Ho
1�::9Y/GT��k򼒶�a�u�c�;�~��a�-8��Z��h{.&��N�@�%
����������l*P2é�Ӈ
��^�rr�x��x~���{�
�~�����y�,�Q����7G�Ic��E��ڲ`�mk��`T��ބ�mA��ւ�w'�}{��u�
��4�9+������~�u�E�~�/{Z��\zӔ���kP$�r��f���֛�eO��R�r�G���oְb
��� {�z�c�zk��J���P��j��kG:�*��J�\��*����
�
����<�ٰ:�8?�^`O�
�m0��^DOnWA�9���5�<���w�d4娻�:e��.,��vAsW޼�dV���}�S��#�H���<�yͶ`ކ��KY�d����t�b=�{�j�н66(��{��Cd�#	�m�i��JЇh�i�(rpx���*d��>��m�1Ԑ�?������肍l((v7w����k�q�0������Y���,hݨ�{_�����lbC�[�x30�A2A���1�����8K��z	�������	ߧW�v��߻�kww9Z��(�Z,�����@X�b��!k��xl��[�W=�f9�J|v̕�bԎ�n�J��*�9�{�n��Xí!��)�sVB"�f;mdn�˵0�y��ͦ�"��x#W3��p�n�!�-m�(Ϫ�7���q=$0����p�v��D�t����}�������l��<k.�hy8�XY
���i.��_���p�H�! 7_��V|�Z&Q��1lv��W���R��%[+,\�a�;.�q�;���a�*����Φ��c��;�^�W�_�Jw��h.�х4Wx~%��8y-.���=��ƾEs��&���~d-ؚ��PH�M�z���������鼱O����B�:X+ZAD���#�`q��q]~Nn{Go=�,�����ǰj!�V'׉r��� ��D�����FW*z����%}���C��XO,yΕ-Rz���F;B��<yn�
k�ѓ��n�)���#��FJwCggg�㽸K�D�"��vwf��3#U��i3{�³�2#�k,3f�Ek�=�>����f2Cͳa����3��0��QU�)�k(��'�Q��FS9nX��ߋ�I:#p8g{v�Z�Ci�
���'懱E��(bQD�TE�~3b�u��J[›�1��b>�ڿ|�F��Ya�F��ٚ�QA�S�3�M��f%�-P���/jڈ2�^w$��
?�����0e��7��fU�\���7�:߄x9�����/�EcnBQ�P�tk1%�=hW:FH��vZ�T�{߁��M�ep�#�����RX�p����v%���LQX�h��3g"�r�M��8^00�@hEo�P:K������v�-L:��a�L�,\rFS�ՙ
��C���L��y��M���IFˮ�^wpsc�u[e�+�C�|
i��݂���t�/����i�@��gj��b��mP5���xS�j�B�(����SL!�7bۡD~
1Pi $�"��QS�����<��q��1�&��J�2�&�����4�\c��,d��`��jvk ���$�V�l�Λ����U�)ig���}�`}5v�9�v�`
QO�9�=4C\y�W" 6�m�����ãnk_��yRUz̗D^�N��)L6%�UP�k�	cc�[c�[c��_��sŐPO�=bM�y�L���
�L����<��";�~���k"w"0�;�
/�9��{cg������3�0s�×�L��+���蒑@~L�'[?�5�B�C�>jE����
ف��@�Qy�e��c�.�`h�<hx1�q=�ҳ>Bo���C[�����=U��d���	G�CQ���)�����f�y\��6�{��W�ܸ�*��p���ra#r��d!r�}��:n����L,�M	Cg�_ؠ�=�~n�Y!%C0��εIYE:�t��NnL#�At��Ŀ�G����<��X������g:�q�ϛ�s&P���8$]"~�T��{Ff�Lk��<�O�Y��s�%��nM��Q��P���#��!��T/2�� ��ύ�P�_Y�#w�t�\f�5tk6�-�t����A}ʳ5���)��lI'�c�����袙�/6���e�>��G�|ñC��E�9��$�8|��M��<jWw:��{_ 0N���GbX��v��k-��j�"e�U�s�p�� q�����$���&4]�{���D'����^nW�"��j����bϦ����.�Q�H�b�]j���2�c��H6|��Ȑ' 
U
"�/�����]͹�^ˇR���>��@�I����Ѕ{��˛"��괕kx}H�� F<��fκ�Mz�?���g%T�˗����C*^.R��`;���z>��d,xΪ&{G9��̸/���I�<0�l�fȚJE��yK�dao�NJϑ��N���������"/,�Y9���q50�ֳ���ua^_Q~�
!�~FY��Vs0Ǩ8��@�J��rJ���8�T��B�R��w�*� ��� ���y��;�fk8���u�\y詳�]�L��8\���n�W{֩���:�춞�_[�ac?������8�8��������#��JKGs��,=p9�
����K��Ib��_��qc</��8���l���H��5ȇ͉��0b��9wwT8�2�O.|�����j��E[G��
܄�R�\y�u^��C+�p�._4�S���J7gu�9ęh���Y��
�@����b��E��&�h�x�B��
�=UG��
����6��b��L���jE�
���{�t,4�
��b߯ ć{�p6g(�~nG.j�ߧ��.���pT6�<
+��5x��w@4���dOnwԞ#z6����~��q�T(�z�	�6
�
�:�fQ��IČ=S:��ߣ�X��H�9>6X��iEoþ�9�C��B@�Z��.ڴu���
��b�-{���?����eOY��{h���?閁?��I(F�k.�T9\lm�w��(ޥ���K�aX�4��-���j�V�Hb���=�����̑��e~�"�&-���O��o�8���5�U�w����m��q�9�;��JD]<�b4F{����(��@��!��k��o|��C��{���Vh�C��9������H�ӗ�8��`mV$S�8��T;�J��d�.�b��wtk�����=��9m{	��uKO�Rͦ��s/R[��y���{�����|��&�=lR21B
N�ڻ�;��ҹl�.�S?�3��N������� ��B��P|F�>M��PFQ85���S��SdǴ��T�VDZo(ƃ5)2�0�SmE����{~�eMJڰ���S"c��6�'�ANv�-��l�+�}&�ݨ����lM����i�ქ;TJjֲ��C���<�Jbr�xaM埡�J�ᎉ�����'��=��8]�쎌���Z�,~�h�����ހ��B����m{�i��R8�{��L��
4Ӵ+xDG6C�*�H)�R
{�2o��#�:�&�U7��?��E#���h�;>�*b6E͕l+&M��SCJ����J���e��?D�`
�����!���h!g}~�Jd�pm���l��A��e��S[���1��z�m��hR���9�&�
H��ܤ��S�lG�m��;�:�s(�W<����Ba��T�ho����CPl�%vg�SP�D8��%
�����ڙ����&*���ٔ=7��ž
�)�a�9;-Aͺ���{}4t����wQ(�ș�JS��7d7,Tw���"{wꜝѳ|�.�'Xۜ0pN���\J�FV���<D�J�i����~$T�v,!0J��g�紟e��r�����x���BW��y��$��$C���hg�O^���Yb�:j�	^'l�����/z:n�c��
S8��i��K�8�"���h�g����Zׄî+�~U/�
RT�k���[ӭ��Ҥ�(���P����/�m*³:�a;yg������yVc�4�e�!x2&0�Ho*\۩�6��u�1��,��u�y�b�y��6�a�|��YFVQ<�4�P�p�j�u������R���f�t7=m��*Ӏ �N|�n��-=/%��ER�|y��.��M����mO���%/`����$U��Z���y���&��t����W�K(�@'(]���)jhz�#{��L�qa�k�Ӂ:�sZa/g��7a��5u[��������[bT��Ӎ������X)�&�&��=Ԟ����0W�G�6*ES%�w�'������ڀ��$P�::�H726~憦/r̎�w���O���[�8�}��&EP��X2���JW.zQ����ã&/y�X�@���֠Z��󳼨cc<�v�#����Z�d9��,4��ﭑ�Ǣ(�
=b8}/ڼlW��lk5��3����+a�{�u�M�B%p��Vu�5%�<#r,�gM��89�	�p��n$���?.�u�ٯC�'yZ��|.l�R�yrZ��,
�OL��!x����&�=���^-?�zx��Ɵ<J]wǹA��y��[w�9��<�`��1tki�F�&Jw�M�b���'k|~|GR��-}�q�rN{����Wq�+K/��^zmD7v��Y�DwC�A�E1)�g�zn����fk(�<��R.�X��cS�,,��F�X4UV뗴�Z��X��{�	��uҵ�Ÿ}O��=\X�w$/��`{��;mn>d4l[A��^����ů|i�u#cFCm�Z��=."���8Mw�f����w�rċ_;��c㞄��n���1_���;<�����&�.�dJ�?Ca�M6�\J!9�?��hf�l��!\���}��3)���V7��|�^߼?i������;�?�I��ټ^0P�b$k{��Й��CT�k����sV'.�L�e9�/~I�A
�G�;2D�:��́jȞ5����U�2�,���?��=,�Z"�؄O��̸�pw{�=�k�(f�ܙ�>���mƿ��.�R
��8�9V-�3�%��/����9���i����a@��~)�b1�l\-�Z�
����FP���[�-&��	V�s��{�r�Ӕ�'���ҷ�/��'Z���I����a���k����B��"gӥ��2��T'�3�i?��B�ܘK���aU��r[1-��y9�E��P	�/8��m�v��a���!������e���t�����AS�97����g^[L/�rj`��~�v����Y���7QTB��3�3��@�����ز��ޕ婫�϶k�n��~f���kY|
�w��S�kC����9U/�XD�?�3��O�����'��ߨn�gv�>�?�<�N��?����u�(��Ϟ

A2���p+n�~ aS�8�s0�f��>�Ĺ�h@5��{�/]�g|�ݛG��#�/�9�U�G1�S�ߺK���}Z��NkP�|�2���ʜW��ϟx:�@(��3�Լ�!���ў��3PR~[�.��Mڽy�pX�<d�&�����Z��9�*Ɵ�=�+�$�����k�)�O�R�
��
�D$��^���g��8�(̢a�;,�!�hr�n����oq����B�BU�~ּ��Ϭ����c�q��J���\y�����&�
��ۿ+��_m=��>�!}�y2������@֐�5���mCs#D������C����H{��FrdI?$%eu���~�W{�o��bg�TU�$2���� %ef����+;S���nn?������E��������j�̈��g�c"�q��g���=��Ŭֺ�*+��YK�:��c�]�Y���@���ս��\��w:�o���?��ߋ�����x�}����+��|�����dW��aN+�=ރ�O2n}�/(��ͫ4��_�q=Y\������xa�$M�{�*˄�����@����Ф�	壙�`A!���\z߂�I�ͻy�3^���[�1z������ߟ:��{���o/��YY�ȴ����yZ}�L�UI0(CR�,עH*N�#)@R�@�^�DYI�����H�b�^�ϸy���%�]�?��]U�UG�	����Qg������}����
��g)i`e�z�=����?�
|}5%I��ˈ�>���x�Aw:z׿��5VVPoL�?K�Wld�Kg����X���,<��*��^�g��j�?_�W��ۗ���f��a{�b�i�6E��r��s,<L���5�A�O�vF�����]j�g�D~��@)�|'D�#
(����?��Ȳ�g{>���o�e���_N�������J�+k�
�$Լ��o��N��e5�:jvl�:��������ϘU+�>$�z�pM��x���f���ϸ��9�}+=�i_՝)�$ɯ}ϭn�q]\���)X��T����=P��.Ř�(-̝�z&�/����c%XU��Y=V�5�����dCn�̀է�t���w���h�O<���Ǚ�Kq�`����P�le6�X�,��&�����3t�����Y������%��^�wg�p:���L�z���vܻ�̒�%�c�l����6� ���·A���Չ��:��S3�#<ǯ�����w�Ȱ#���˅E��,�ud#��v���<��?���X��~�̶�,g�(|��Wr-��i<Ϗy}�2�ʃ��[p�l�fm�,���5sc�W8[��#������kl�ð��Q��ƾ�p�����e9��d�F�{7�95%x��X���6t Y��|ٌT0g����-2��Ȫ�6���wi?��S��	xl��j�g���2�3=�-��~�W^��Z��f�-�a�^֗�;�0�e:�!��u�"J՘��O<��|J�`eR����՜�YF"3
�1��DeFZ&�*KaS���?��T�@m
)
����biߞN����}�~>�d
������"k�Z�L�^����T������k�nj���DZ�I�d��G��9q瞱Ѣ�pi)�<��q��P��_Y-(�D�eR��d�����>����V
ʐ�}��:uk�Z���F[1W���d�M%��l���ЃLhӎۚHƆ'˼���(��B��r ���������t��l���X��z>����E���@�m�$��U�跲'h�pr.�	����$]Z]�ȟQ�!P��Dv��;QDu��O�V���mn�z�5�r�j�I����[u2�	�,����NA���a~C`{z��AhV�Ү:��)��x�|{���!�Yߏ����jI��8I}�zfHm��k٪x�g��e����k�80h�jf��t!b�>�8��0kh��U��J�`V
�W�"�t7��j8P+s:<�sA��e����ܺ�mvy���t�g`v�X1Qz�gB��-������F���9�s=ۯ��z��W#��q�}� �Z��mY��"���wi{g7�;��s�	�:���l*n��^�A`�J?���Ol������C�Z�0V��:ӫv�<6�7c@`�P� ��G��4�ުiS3o@1�8�3�6�g�بAln��ƈ=-�-���U�M�UEL-��Y?�����{���(Y��-��H�&�ͩv�-A#l�u���y�K����Ն^Q�pz�;K���k��ye�0��M���F�;f����%a�b*���K�wI����?׽io��C��:�_Rn6���*B��|��{��ݨPL�����k��i�c��!�l�^�ɯ�W�9g�l�Oʡ�? deU��i��/_��8����{OQ2�r�rǘ-�9wYd'��nS��"L��!o���̡�ɺ%����t�ʿ���U����(�~w-:�4qH�*.�ŁV.���l}�82P�Eow6���
�&ө(4U O��I�#<����5h��6�7v�_�[C�^�]�h%m���|2�q|��Ѽ��V��l�z���;��	7��k�S��Ea�2��,x>�ti���1~,��ڏ�~�K��>?�&9G��̽������p �]�j��&���v7&�5���S�b���x��X�[S��@&���5����@ޭ()j������Ɇʰb�[=�"H�:���	��T���D^�9г�uOv>�W;}l��@����`�m�,:{<v�?h�[
pDVF��$6�BV='`j�Y��t�{��l��m�����Ѐrk"�n[�>M%�1�L��w�Ȳk�{����UL<���.��O�Ɏ����k����?��"�r����K"�g�����,=u���,���R� L�IC�~����z>[��+�/�{��y°��pﯘ�bjN��i�����,��Yݿ��6���^mI?��\�?�k��,�;��=}!M;U�$ج����QUcdY�ɇ�+D��7�dU�\}
B�r��j��-��Ūp�2�Pǰ��v\�d��k�ٴ��f�WUs�1�Jw�Et5��q��{Qۗ52����?��z�z̳�h$�Z��dǞSJ�49��͛\�چ�~�t&a'��ػb?�xG
�޽��_ؽ��~��[�10�vyQ�2_ha����	����cF������HLn[����eG�^��=�s@�{��|���3�>�Y 0Ag������I�+JhՀ�@�?GM���\GzcM�t9���k���^�E�̬PG6S��uynW
Hi�x�mj��Ђ�z���f�B�Q��[1�q{O�|@��n�;������v���,�A5z|OM�Al:1�0��CY 1�뺲F��a����}����3������4yO��Fy���������$���M�r����ٓX���8��v<+Q�/dXY��d7�ث۽��}���=��8o�@��Һϻa�6!�C�ٝ@�=�i7��S>�j)`*��3�с�
}�艹�h��fẋْr`x�&`3v�tR^�^#oZ8J?݃>vekv�f
�s/م����̒l��������=)<�l�7ףn50z����5�lz9�
\��z��}�
\���8�#�6
��7��b^G�y
'@@�<��BF��bkFR���ëf}��^����\�VS�s�u�H%�mU�f����j�<�R\9�¬��!f�����;cxxj���M@g�4(�cxM2�zQl���B#k�}7[��ن9�����N֚ �-��5�*0}��ua��,�IENň~�o����DZ���n
���$��I�Ol�BG�v�4�w+�d��+T�lO���
�г��(��3�Y QgT�M�=���]��X\W�7�r�/;�l������.���`�'��~f�V�}��ur���0�mEv�[9_���[8�'�	x��ӱ��4�*�a��g6r��$9�X%kx��l��L�$D�Z���и���_�k�	b�,N�� �h��@I���(U9-��MyT�|a36�ݞ�fIxצ`�3�3c �����W�����+ۺa�28�X�k�ٺo���W$٣�L�2iPc�,��D�AQ�h�L�¯r�[��
�"�=p�S����W{����6���x���MC�/���a�Z�_�	���&~.���~5�Eӟ���rj5�
mr阳�b�@L�f,zJ|ݢ�_�ZC�˷���/�V*a�*P�}��!j2'oB6}{�̠<(Ӧ�~�*h�D&���A�q�!R=��E�
����D�f�L�x7���ʦ�+룟t��&�U�BM�
j��z׵��&�4+��b�;��]~��:��|��(�5�q��9Gc
5��9\z��:�Ӟ�_:u��$`C�t�7��P��h�/�Vyء��km�7ycV�9�-s�3����!�����#���ԑ����$g:��|�d܀f�8��@o���a�c�������0M�hV�!��w��!��&.�$�$~
�F]R�fS�.]~\�-����
�1����E�gGX�c�r"�Q���"�܇Yzf�Ų�v���a�U*�~�]��=C;:C3��!GM�MgVC��Zn�Ŋu���#�s����>�b�x^�s���"����sj����a=�G@<mwx������H�R�{����<���{��Ɂ�'O{�wm��Z�ì��"�VQ��1�=��GxN��b�������R�4=oQ,j����^Cg��5��EX�{K')�AYH�.�5�y�><c�گ}�J�=�݋�����6�ځ����[	8k?(0,
(��\TW�6[v�>��w:���S�"[~ޖ�7{kC�'�O]sk"��4��o
���31���s?���*�؉�uz�>�'���)+ar�3��6eO|q��`�$u���k ��Mt��}�K�xω�R9�0��=�w��qX:�3XU{>d>����@��kf�����ܧ5~]^��i�|�v��N�n�'-~�L����f/�w��Ch��Y�3�g�J�yK�h���B�1Su
��:�[���_ԏ�=5m}�a�ԑqcYF#��1|z���ى�s�Þ��}2��9h{`��ֺO7\�]�_E��ݖH�y��
�^\��؎q<��[�~�N�/�D`M���0�d'�C�5�/f�zl��4F�P6��%u;�Ç�:J��'$��]úٛ�2�ѳu��U5�R;i �[�ټ���S��Qv��GK���lm��d��H�/X���E̟��8��Н����@r�GS�@���Ŕ!Id�
�ao�����`&��s�!|��y�[<�nD9hu���_M���	%��Vy�$� �T����4�����ƥC�ׅX�5u�
�2���A�ȋ��>�řG���A@U�s��z�7�ʪ��`���޸N�Ȩ!�$�F�����`�*�53��,ڃ��/��q�aZ�7}�_������iX�ہ�m0c��U��� N�m���s�Z(a�
n	H�T�C�w�O��
��:Փ�ҋ�5-�&>���T-"_䁫psM���� Gm�T�i�/���=%��!+*�{4��R�M���,��t�_��Dl��[T�~VⰣ)�ɑk�6&
�1�x�-+A��9���h�9+�~FU��]g�a���r�a!F���{=і8���4'=2ײ��`�� ���To��C�J�7gp�l�\ٳl���-�RC���A��Ck[��&Q�#3����q
#ӫh�'�����,��u�]i_cs���s��p�d�L�`do�N���QO��}���e�Ն�Zʈ�$��0���*<�!�ayW��Hఫ+"�E�����ca��^��;��jU-(�:w��-Q	:'��-��Qd�x�]랺��UɬK�����F�o��i۟a�su	�C�Mu%���\y����ǹ�Z��cF/�+�gv�H���V�&O���W��_�jF#3�&Zc�Ǣ�1(�)����֚�b��̀�c;lLžo�>�&�����G8���_z����������%��6B�P��&v�QO.g��PC����f�Ӹ�3�ɻ��g�z(���Ĵ�]K�t����>)��ȥ��n���6]�&���+6�2�1�BGYMs�7���:$�;6��BU���}�����y��H��&{gI_a�d�g b�Bf͔XT���yg���m�V��eWKxZV�<i6��bwF�EXQ�j!{He��O~��-�O�({%g��I�]��Z.�\��U�k5;!���zy:�2ئ����yh�>g��O�%[
�qq	f4+!Z��qSVH��Thk�=*�S
<�M�l����"���"_`H�Z"�g��{�!��{o��՘NG�Y���Ɵ�tY�V�|���B��[N�9e?�:7+��ͽ�6E�AU��'N��I!��+��/��t�
����`�}I�<]`Mk��b�B�H�j��%�=V�-�b��v������h�G�J��ThB�qJ���{!�y�i�|�v�Aj��c-�A_
 OWc�D�:ݷ]E�I�Qv�]��}�|�U���IFAi+dX՚Ɯd�j�iVp�?�X�튀��A��=���۰�	�U��~�aS���%Xm]��u�z����Q	7XĜs؏5��u7��އ��#�f���zz�7J�i�����8��ֺ�B�v���l�h(�n�p�@;�#�МASaAdI��~�V�}�W��^�:�ϛ/G��.��m7붔h�C[�O�
W�Ġ�vOnѳ]�g/���`n��v�b��Y[����/)y`��X;"��k�(����
vH	c�y�Ƹ8�Q���[Ԁ[������n2��:߭H�т�.�r�Ѓ��Y��J��z]"�`��xs��Oٍ�>BM�m):<�@��U۬b�r�Ӕ!�@��μ&�j�Đ�T�x:�1�81�vw�6y��3�3�
t"s���|����w@���mUZ��=i�?���7���s-'�LjD���lxS��!=�KQ{{��N���[��A��>7����/�kV�L��?c��_���{�~�9��
�4X��IgPC��=3#e؆�m�1�0�]��R�|��т������l�:&�|o�����|
���<��w<T	�)x}(����ŇJO@�v����Y^�6|��Mj5W���qv��>����
R���_ٖ��nR �\
��F	���s��r��9�7#�г�ů�j8<C�"k?��)��.R�t'6�����Z�m�f�z�զ?`���=�����3^뭳:A<H�y3F~R��F ���SKњ�tV	�>�`�4��ӎ��>�j���}�H������
�������qbZR�cy2�f8}�z��^3�Փ�B���f^B�=�M�4j���/�Ӱ��NHP }�����Z�[=z
�u��q��x5�0�`��?���;>�	j>�����ЏkX�e[�f`��ޠ�h���lǽ�b{����}����,�व�o1�aw�6�ġ�D3�EM��R�>�$@����a)O����6�	�
.W��I
f��*����F�����{��	���[�T��F{[�r����LP��v�����}g����YW�5Y<��YD�ń�}��U�x��*Je��P���H[�w��&�"��`�c���K��k����_���D��xϻ��� dJKeٶ��2�W��|�s����6�y���R�a�
��@�۩Ů7_w���.�f��Ջ�p��O詒
��}��I��/j�����߾=q��ޏϹ�Dh1?Ȋ��������x��j��|9��c��r�M&�
�rl���}�3,{z\ҧ���F�	+�w���TS�EA#��fx�n(�Mu�p-q�S�>�EK1u�g,�iX�q��$�r'�,L��=��R�2{�^;Ʒ.���X�H�yP4��?���d��&�!��aI/�)��
�j�*7'�6��5�u3�27��z�E�B[~�����]J�g9���|
��䶙�:oMy��
�Z�׼��ӂ��O��TJ跶s��o乀�u�
�n��I�ƞC�֭fSj�B���ºmԺH�ISd��>��q
Sd�V�{-��Bj���j�8/�g��
6�/�x�Y���m
Z�5PT��^���u�(�ė�?�h:�W��9X�dz���M��J~����aQl}�n{:��v�%Ǿ��XK9�X���v�\ozͅ���}��yp�33О5���	]p��P�d�C���’m��$U	�	˶p@N+l�Vu�,,��Yk�@���{"V���=�9�C��<���3"F��L��=eZ-�s��Ȍ纕�t;�]�W
!|T�^g�G�cEgM���:�Y��6�Sڋ41���:��j�i��&���k<�����ϘF_���9��w�r�mv���:������X��<�m�č�x��z��ij��\:��
��&�{��T�4I>e��)�F������^�'��C>�����&��g'l�+7�5��?�(���<�%?��ͦX�>S��E��rs�%a��������vy��:|`EF?�6���@Gt��
�T�߫�h���,�ʗ��-z��M�}ۺ�^�ɲ߿%u�Q��o߀�O=�w0�?�Ng.Æ�'8�Nz!*Z6�Uʽ��ڿ�-����.�/��\�O�8��u�'`sI@��0W�N�{9u��.Q���ja1:����
��ϐV�M� G���`�1p9`�w���q=�ɃeR:��o��Nx̿�e>t(��gRP�@jf~�����p�	��hpv=�q�0�xk
��,��9����S��s6ņ�}v���
PV+9)��UH�wz��z.+A�g�>b0?>gH��^�zʹr:^<����#8,���Cު���3�&�L�j{�~պ�u�%�d�
��t2�beHq��Lr�_Uï�yS
���?�32VX/`-|;��|=>��߯�Ӣ���k~S1�@3�Tɂø�Vc�s�пEy��ᇐk��+�����b,x�6�tZx�eg�
gN��_�-x��h@�����{L�����OY���(�r��EqFM���[o6@������Ȑ��ڙ��f��G�{^�A�]I4r��_ߔ5��zM��x�U��ǯ�f͇��
�#�ov^�C���d�n)�p[�M�fa�e�����f��")���H��f�b���P�p�UX��*VY�s��-�ُ��r��&�u<cn!p
�t�a�0e�1��N�)'e0R�8d=��q�0���H�~Y�1#�G?nuX����N�]��8)X�$b�I�S�r_hydgH�,���s3пHi�h;�fX1�OHC�(�j�V?=�k�:��#sX�8�c���yqzG�}�$�s���5�fm<'|.ڜ�&�q�4 h�ߖ��i�������:,%ѐ��a?bدE;���.1E��lGR�9�;���m	�Ľ�����C��
� �̊{nS��&޳�X�l��|�yv�'ZKIZK��ϵ��6O4�G���J����Q�8~��{q��b��]�9ƻ����5D��̪��{QԛV���Pxk��m�n��ŹxbFL�9{���ЃyS�d��)��.8Wߣ�&�\�LJ��혇�L����
��H����+�n׍���V�gd��g@�;!��8tF�@�`7$qG�t���Ԑ����+�ρ=z!P��p�n�-�0�r��ୟw;��ˉ�>�qx;j��.����f�oz�Sz�G��(��G��|�+��{{7�����g�P��p���>�����{M���w�ڵ�yYl��,!��$�=�M�%m�$���k$藥l�c���o`7Y�$ST��e!@�%]��@��������h������s6�[f=�4@�q�Wx�=��l 1���_ǽ:��r��d葐I�&K�Y|#�<l���9,P��"2��.�$oNB.��AB`n����O���H���-{ڭ��k�8���v��?|�z��l�y��`�dA���n<_�t2��Ԝ��v���i�Mx>�b��ە�Z*��*��p�5�n�v����#�`�y��d�54{�c]��Rmm2��$-W�Zob��b{^�tg�_�9B��cs�y�^����
��|�d��=��+�@�P
Z���f�+�V]�ҩІ�juV6[n�D����B��~�޷z����mZ�n?����h��
 䮚���^��E_��<����S�g��\άgfh��j�r���;�N�Y��`/���9�g��P���������m��._na����o^����}�?�}c]ɳ�׎�o�E,������ߍ��)tX���A�Pn�U��諱��T�OȌn;�O�,aiUjG�H6`W�/��Ș�G�Wq���`�r	���=��~?6�������y��^m�n�12�×��/`�r�X�s�B��qf����ϋ{������^$���j�d���-�c��?���Ny&��F,�f$�z�^Y�a'2�O�؄g�,�2-c��~�+u�=�p��u>cb�[���/���$����9���B��d���r6���S*m$l����$��˹��D��(Ï~��{C�gg&&��g
(g��֯)3`����řb)�yP��Z�P�R���>ijR��K\�3W/�Iw�{��G����>ҍ>v?�:�O�C��Ax�l�b/��%w8zF���x���g� 
���תy�3j���屣=롳d�d����K+�X����B���'��6���k@V�1J�������H��n�6���_G>w��.���_]����nw�~��H_��恖o۠,*s� ߁{y�p)mwl���n�'�<�mw�?y芀g�M�L�t�B��4\{W��I��i����V��>|k|�&)�+^��5߆g+�l��I`:��5S��:�o�(V{#Y����q��{G�$�����H�IV�F���QÒ|���"k�2�������J�<^	&C��n��Y�YM�O�K�m2>���X�MU�z����IPW�z>�9���!�lcU�����s+$=�g,L�]��/��|c��1'0s	�Z��O�m���G�tP]���̋�	!ZLi|��O]c6�Ml�u6�YktCsU�A�� ip�C�0lɨ|)A �bE�7m6A�l�5��ʭ�2T��9>�<�a�@`�
�(��ۦ�E����z�9P
Xװa�'�E*�d×�>��fۨ%Y���B�����-����4�گ9�?�
֞k���y�]f�4da>�ڛ7'q�Q��>8	d��"�P�I����H1�����l�̪���Әᖛ
�9�9��.y4�û��=v�<�2�-����f�
�{��ǔ:0��=W�fF{j��c��1xIS`}t��5i�Qĺ�χ*R�;Y������1�`C"\k(��?m��:��<�6h?5��Zf{Ok�؄���s���`��ٛ�ABq�n��`C���J�x�bN�:���q��K׌��|hR��b�x�|r濱mF��?oV̻ݢ�]4y�O.7�q�&����?f^�=�^�^�uE���/���R���t\�H��?�Ҧ0�tr�Lc�V�{iNVI�
d�ô�?{o�n��O��T6y�F�S������՟Nw
��\�J�$k
�_��wMz��А�60c�+��C���8\���fL��F}�� Gt7I�-�R��l�EҐ	v�̡��g4bsj0d�EFs:qM�ދ��-��$&u�G�lK�S'�l�
o݂[���<9whF�ȹ7���j�M0��v{�P��0�>�p��ý�C�g&��&��U���1�Қ�8��֫��,^��f�
����b�5����$�����a1n��;��$
䚶=�ڸ%�e��2+���p>ܰ�WI���ٵ�����^��P�/��|b�L����d�6�u�H��0Bey�ךc��E,J�d����f����(t�ʬq�Qų��\
dŀ�ݔ��*oAW��3�o�BO�<k�ں
���X��W�A�f�0yE�<�o���<�v��%\/��
y���z���y�z��'��2
p����>�?^jZ`H�z\�rU(,���s��,#n���C�s��C�e�%�7k�@�.$�6��cט�!��S��c�K�ڑ
�,��i�SS?U���$K؛����x�W۷�3YH��+[؇[ke��A)^&��{Y�ڵ�Ɋ�	л� �5!+�2�:�*p�q_`6C�O�궈\� ���Њj��>�|F�J��{�}fW�F��x,PO�({�6�>*�E.27�B�4���-�@�:/�3<�0U6�f��bo؆-�1Տ����n�[�Q6�FDsl�Umv>2;d�l8���˹A5!-VT{�� =C`��_�U��A��욫c�W4�
2��"��j.l�4d�d��u�d���
5�^�l-�-{���f����$��6z��d���t�J����eyܑ>����*0��_���ۓ�!?B��l���q��j��ߚj�Q�pPt�]������0�C��jCC�﷛�A6��;X�)C�i�S-���v�8Thvޝ��l�z����i������@�$�P�DA���L�Α����)��M�cq|̊��g�z��A��{���Ϟ�����H`P��//u韏�]�Rl���I�d��[�e���_������p�
��G�h��6��ϡ�xo-$�lr/�8`��M�R}���C�ŗ��{��ԙ�kk��N���n
��!r9��"|���W`&=��m�'1B�r_4�7���Ի�(M
|s���~u7u���ۮi�����R~�jwSE%x~=0鞹�sɲ���(jj��,��J�_[��$y��R�p%�(/���{k}Sn��7A�O_r�⧾Cc}/
�<������A�9���b�o&_��P�&�,b��;[��~��aOo��!ݠ.xJjb�d���J�~�qM�m�'OH��@��,i�Ҳ$G
�/\��V@��\o,�Q�����_o5��*�a��Ӫ�]���Wˣ�-��������v��MrO[�hwn����zE͈g-K�Ĵv`a��1|
�F�RƐM���h��?~9�{��}��U0x��Y���Y���l��ϒ�b�8/}�kRDD�w�l�:�t�i��R$Y��Ϗp�f򮴳���;�<������L�
R}�m�p7_3,����y�t6P��9����; �Ц�Q�a"��݆w���x���G�$�"�S4��U��fE*����|�i�_�I����)`r���6 @y9��n�~���Y%UJ��Իg�Nl*�g�j/B���vm*-�?;��kn���q����n@��
�F��yL�|�s6�¦�S�i2��7����L~��̎��E�FSA�ߚ}f�v�� l��WA�Fk#T�6������C�V���%�t^@b���
O�����3mɊ���,<[2�o{2�%��X ldG�^4O�l��9�+���܌{k��Al,�og�@;�ВY��IU����q
?n#8��p�:���	���Ғ,Es	�*p"�̶�t��0e}��'K*a��sR��H���eJʍ���&����ݪg�/�݄@��회�ف�9�6�=�=Z��$_c�քL��o��:xK&���<����&�3;Y�>��Q��Yg*��{�g�v��ܲ�>dz���i�10!~�<G ��Of8_�����O����_�)G�0�%U��{�&��Z�&���lg�(4�
�p���bO�� ����7qL��$l7�I��>	��aJ�3��h��t�g�Tf�Ug��������ng–+K���a�YI�6�a>���ZuL��[3�,�+-��dgY�њ*�P��f`y�!I��>�f��1T��ߚ{�or�}m5���i���@s���{����b�����+��+��[�l�q=p.�)��G5��%�d��FA�#Lw������<��(�7(	�
��=��R-4t
�M�/V�s�h	i7Y�߼ԓ,#�Ћd~���l@y|��z]��u��ϩ�~�F�Eh�G���|�F�`�q�]�b�4aW�0jm�/�o�{����
����T���Ʃ[�=#�621yQ�{_j
�F0{$�N��k��5�ɛ��MC� �f(	p��׳���䊛<�U�`�gD�f��x�[��BUv�	d<�S@�p:�J��|�)��w�X�n�#
�5���G�������ىg������q�x���'��(�F���X�aWf�]���lZPoe�S�TD܂��x��@O�d ���ɰlj���s2�;�5���
�=��9NJ�7y�g�fK�5E�W��VhG����}�jD����*�1��S���*�P�($�,��<~�N<
TZ'Y
�k���p�U��2g�9dP� ���"C��4�2?)p��Y��FKVSD
3v��Id���&��")g��K�z1+��{�FE�l�UifK�V'EB���f��Ѭz,�����#i�R���җf���6.�]r~P�"��^�]V�W���������ӎ� Sa�2Ij6��������s�<�}`�?���n6��87��G�IU?��n�/��'��E�}�{��~*sx���_Q*|*�S�����?ɶ�K��Ϯ�=��Yq13�a�j�=e�@�.j&h
V<?�ģT_;p]�MJ�T{�Q�ZĴ����bm�縬OT,�;�֤>�����{W,Z�g&>���P���A<�1��oM����ܫo�6,����ڻJ8weэ�{�&zI[��i�qH}3�&�Fut�T��CL�Y5�	�qE�$����T��
+n�6y::\��a%t�Rb5���b1J���*|�YX�j��r2�NKw}\�p"~������Ƀ
c���_C�_ M��P�C�d�(��g�����R�{���tf�2�v�̅������k�NL�L�kg��	F���m7zE�+�
�����S6���@�*7��&k5���̊85W�h3�$�s�j��<�"?QΚamokK�F�@��{�Z��
>�-Q�����b�~Uݾ���;�]O
�E�j(�/��]�KP�q����SɳVH��L�R|�>��
�&�ګ��zO/f�����89���Ij�М�;P�Px';uK#� �e�)�2��e%��z-�!erN02�H�A]
4�o?vcf�@���i�G��b�]_1I�$6�+	���>�J����lA�d��d�c���	���|�o�j��L�DW�@�S^wc��4�b��OO'2��e}���'{>�GV���~'��"��,OQ�s�_���h.��p
�!�bl���<�(�$k%إ����h(�$��'�#�b�&|L=�Kj[� �f`U��.,M��(�Ěw���r'�k,����6Y�ٿy;�:�٥��'��B�}��ZR�M�(��_�d��4?��cM�.'��ᇁ
b��i��B����f~�<���|
��+��W{�b�@�^l@�=��j�]g�RC��㚤b��f�n���b�篿��AW<_,�
��Qh�j��}7(�7b�@�J9��c�a8����5�����t�\S�p_w�w�<�MS�^_NV�@^}3�gX�a�G�m�bWx/f���Mh�6�����e+�S6;�`!	j�7=G�v�M��k�����$��S�®(�;����U'eY���{����(�b�Z��c5����8sYì��q��?�q�C�,��+����/�e���]o�SYl��<����:���N����i��A��] "�+?���$��(���]��Z�@�8K���m�'�s�9t�zo�S�^�-�
ݗlj�g&�]Nii|@���)(�j�S�结Q��C�ݚ�➙�h���~�7��_[�I3���c'%|f��!�"SD��)=|��2�؝?Z� �
���*p� <;9,�-K Gd�.�9uͱ�_ofSc����'�s�X�����w�Y^��!;O�ϽhC�b�l�e�Z�Vj�8���cb���z{ �(�o��Z��O�nP��m}מ�aa��m�[?E�Ж!V�*��<���1P���|\z�����k
�E
<+�ZBMyJƴ��4Ι$rp{��[3�:a55��y��;3m�T�g�EE��������Xq���NҐ���2U+�t���Ƴ���N`��Kx9�?�ݰ��ڧ*��+�T������ƾ����3ޮ���/�|��^����:����+��{=�Mjp�
]�D`�t�<?�vx����3v��zZ�:(%��6?�h?�UD5007�a��'K��v�Y�$���YH5�t��B��f��
��dLJ�L)P�/r\��'F�������-���-� ��M������]o�-'�����
�k���6L\��~2Ue��Ճ��߿êddО��߇{���{/��Uk�&#��qXq0W�}\#�9�l��T��w����H���O�;�m�$d�K�;�w<C����,�no��9X_�MA�9h]n	�uNTh|^?�W����\,���q9�
�#����b8�nV7�&7Ū?��"�6ob�C%�~f�^@�Zϊ����|��o�-�+�ud�x�-k3���hR���:	=���^�_����L�Y���,��~��F�f��G���3t��A�lۨ�Γ��A\3�|�d�l�>��IN�9��2���o��\h�0�HyXt�.9ׅ@�MV}����9l���������NVa�
;z=웦�N"�-G�Y����u�g��� ]I&����z<*py��.���U��7˸*ܛzma�죯@��Q��u���e}0��ߞ^��)�\k��f�m���t�ɗH�3�(D`�o�
���a������qo/�	/F���w[�E*0�Jo�7M9w6&�Y�Ү\v0͡.��أî[���c�^/�|�L)����Pݏ���ܰT͕�خ(��'�/��qjߨ�/�z�n�u]˹�cqvn���_[��|z
OOg^���)��Bn�j�_�q?���(:��Z�����o�������}�(y���x�\Oh#��a�i�=ݼ��cO.ц�5�{���X:X������ 1P:$����_�`Z���}�>�'����ް�\��3ƍ���`=��4�S��)��}�8�0م�*�5@�������E�_�I=���m%�;���Q�qROZ^,�ֳ�Z�	��eF�m�%0=�}*(��	����{�ğ����˅
�2�]r��8�5��3�͜6�p��а�'�>~��-�D1�D.�փ�S����}ո��2�jD2�w=�
C�4�N)t�#�H�Mc}jٚ��̈́�d.�
ޭ�j�}�a�'��)V>����s�> ���py6<㗾�I�ۮ�=�0�1QK�)��F�G����č(+}Y:���
g1�DMf����J|g=�~�|�iP�ő�������8vՊۂm���=%[�O�
g�2���@������h�q{M�7���GO��2oȊg�j����[�,�rِ�T���fu��xk���^����w��"/��P:��]��[eo]�A�[���t_��G��c2x�%��e� ��)�@��+!>K�4�캨P0ݽ���C��mA��rg�6�愛�Eҿ&�kvOy#�(Vm`��
-�^5��зW�˭�,�b!�`o�NՉ��Ŏ��B��۸������2e�[ל�]�DM�o���7��Xշ:���c
�n��ֆƎ��$
Q��@�Ƨ�K����w�m*�h7�%����tVI��ê����|*��g�"�&����6����Z8�J=�(�&���W�1[(���`�s��F�_Lm�+��)�8(���5�6�5R��;��9S��Z\Kz���Um�����`A�ϗEa��~�`@�'yh7f�6$��1�<
�*%N�-ה�,����e��C��;�q���d�<'LPG|�3 �+�h�HYRyg��l�	_�������]L�	l@��\FC��/av�.�>�	�{ P��R�P8�a��?���w�Foր�JSe�v#M�}��;s�$�����ܗg<�������T����-i��,۷�5,]]��MP
�(Y�d�I�5��>_4�뱞���k�C�IEW'8�?�|�ݘy��o�د�B�t�mRnYv͚i�XUc��lYvG
[6U	�Z7
�i�Y��~�ڋY��a%�z�����#�y3W�L}�)1�Y)K�Eg:���k���5U�=��{�=Y2�[�|��Q>���~���Np�����e�.h��xΗ���sfӉ�V|���b�9<q�7f���><��E90k����~��|�<���2I.���3��dj��#}
"jm��$����sL}���j=-Tt�\�~-k�X�š$����\��&m��5��¼�������d�lX�P��
��U�r����kcY�c�w�.�N/وk���F.�{$%���Po����o�x�g��6`{W�=���"���x�]�>�c������b�JƢF /��IJ�!��)��2�K�B��۝ٗ�2O�=b�q�}:�����C�+��W.pn�fe)��)3?sC���T��sY�A��:�綉 ��9U*˹V�s�g����Ү��A��"ū�1DUV#��Z�w=��B��j��8�Z��؆�n������-��TSyևye�T�
n|����{ݲ2�F��&����$���n�-�[��0�?7�p�C�n��nQ�BI�A�H�@:X$b}3�mǠ��w'�:f�r��j�� yd��t�sT�X��z���XѴa�p�r�B�T3A��\'�4Vd�n��ۓ�w���9�:t|�f1l�O]�nĆ"��}�����P�U���j
D�%!隓T�[f�Y�b�u~Ґ���ͭ[�Yę��RO�vf����S�,y����ڃ��m��_�S'!�[܃��Y]9)(xd��ڼ�=�n�KU��gbyF\���tV���;�|Wow��]�$]�[��,��j�j����Xʞ&P�pSﻲ���73cg��z���E��QdZ�I�<�p���g �ݛ�	�\'Ҋ���XVEQmK��y������~/cu��nQ�?��^������0�|�I�q�!�xZ��fLJ?��s^PI�MyS���|�����O@�-M�|i��,?�L��ɰ�=`l�Л�����n-���`8�\��8��6i=��5�K�ϸnܚ�󿿅w�����=��-l[W'Y��hSF"rW
���)
��J�w&��#t,%Ѯ�W>"w�
d�2>p�"+�B�n+�	H�(��}��y.AXUrkJ�K��5q/)�����
ڢ��k�Щ��h�թ�	�Me`��R��O���-�$3w�i�/q���E|�(p.�������o���gצּ��f5�n���㛚!��g!{�o��6�9z����z�c�&l��
���Ŏ��qЮ�@#K��Mj蛊�$�}SI�-����6���Ki��w���~b|�&����#=��=ͣ�s�t�*�2���b;߳쪀_{�g�D\��Z����h��Ґ��_�ő��g�?�����)T@�;���F_J#���
�0�SY�d@��j�^�$�ҬcIc\U��W���k���q�Q��C,�#��2kr��Z ��
��(F�V��I;L�p��
�]!��.E?H�+H�1�T��̷��`Z$3<_Oq�y(q�2��ctp���6d�Ԇ�/�|	��[��^{��{79��ɸՀ�V����͘5�gI��2���p"po�'��V��.f+���e�{eP��P��zsd�����Ue>,�{�}��ӚkAv0�G�6#/���b�(ޝuߤ���`E5O���,�p��T�Jo�$f��vKm���
v~����.GPJ�X|�pg=�{��0Č���l�������:쑒)h[Qε�Цp�&O�67�(9,�G�H��[����/���h�R���L﵃q9N��:'iSf*�kc5m�Jxr��t~�F��x���{=v���V��j�
^u�Dy�;���}'[�����d'��Ů��B�ٛ��ca#m��$����d�d"���IH~Ż��m����.���Q��~�=��t�o���m���O�eF�f��GJ��m�
[�p�{��Ks�´�p����)��A�8g�mWh�Lj��s��f�},��_�nQ�B���&~i�Ӿ���_+�p�l
����1~Vϵ��� �9t�M������LQA�^�}_��}]߉dݶq<�]]U�zi
$����2�k�R�����f��a_�m���m�zL4�� �=�c�v;)�|tRHԾUk��ha��TɃ��="N�|�q~m�{�D}�/=�"6����U�ă�Ҝl���ug��f5}�2�:�����k����C�=o��Nx�;��:{=8�C�4�&}�&��C�*��z²���y����]�X���w����W�}���_���B���TӵjJ��&3I�������m�F-ga���hIC�8h7��_տ%)oe�C��$�bv�+n�`�չ�$����s��b�񮖎âp:��>����r�A\�_{�ܨ��]���� 	��0�c���([[���2���j��YTz��';Z~A�@�`d�͔1x�.��I��,�טN���6Oz��ސf�~E�����
�lt&�uk�E@���k���/����{�+L�{�{�7Y���U��7�>��P���Ѭb�����B��!�UJ� �u+��_��I���1��1�5u������9">e{��d�1�5R�}�$��Z008����b�jz����4v������K��7�X$D�-����
†��[�s���E�G2��i����H�L3��yt�c0�!?t�P@�f����;��L�z�Ɋ�
(��Z�}�Lob�s�r�v�S?석�}��{e˫-4��S쉝Y�T8�3�nJ��3>��p<?^O�3�����U��d�gz���
N�K�#���t��?�S��H�h���OkVOpH��9�`��>���?7�ha��"�5 sN쉑�)�a�3ػ�hx�Y٠��s��VS_�]�Y2��J;2S��`�6m�Y�IIX������k!�F�bS����M��f�UW*����R��rn3��" F��h���@�-ӫ��&<�����3E:�:
~�G��o�#C"ť�2$�m3,�]Rr3_K�lݗh&�Ki��4Q��7'09k�(V꾅A����7��T�_"ÿ���6�*���	WZ�L�M]��t�q�K��Ơ``H8NjX��G�e�]�cC7@ʨ���vK�Ÿ�@��B0u'?����!Z@'�x'N6/��"]�1A?4/{��F(t�n���pk�}@ba�v�y�ح^Z�Z�kFH���^��S�mX�����z�[:�(�@�m��x"��@���ɐ̓b��`ʠ��]'�4~^,��b)�����},A�����AhS�x�	}�&wKCO�M�lY�QB��
�]������h�فQ��RՐ
�pOx��DtS �C2!T���4��C�z��`���|Z8X�n�b�BS���۝����ъxn�WÆ��u	��ɘ�����WyO�		�*EP��ZI;��,y{@0���l���a�͑L*���ve��ބ�M�N���l߂�2ܭY���U19��y�'c���ÎT<�Δ,�k�`h�V0����&�y��;��̳I2)E}/b���-݈�K-}͚�p��y��`
�jI��ڤ1E;(Y0,}724��gOQ,�����I>��ޕ��*$������PPn�C�L��b5E
w/XD����Kv]�)[�jl~�P
���[�vU���󚤈�擟wI��J��ÿ�l-�1�.xnRTPQ3�C��U���(s�z,��ٮE�a#Æ�b�*�Rºt f���"6
��x�I�~��p0���n��(���|܋��Qi��6���5�}��=,���=ȏL�6�F��M���ǟ]�17���&����F5*��iK9Ŧ�6��B�{'o�G��#�{zY�N5���m�����(�uM�l��j���4�h��ۺ5�'�y��r�ح7�Z?ԕi.W&@h��=ȶ7m{č6�=2�y�z/������I�@�%�q^'����p���sK��6gU��w]���{��x�<�����: *�ܣ�����)3`�3��cM���w[���Ѧ�0H	]�+�ϥ��ÈG@5�L���+�C��G
��ϛ�g��aa���:՚Yk�?#�㦺%}j4�&���q��C&F�����x����䃒j <�aɆ��
��<]�=�W�=�ԇ���?(��
�X���u����(ؐ��<a�	(�#��AE�!�Q+0��b�HI��۹V��YU�5�{��	V3���CRCU���E�q?�'�4�N9����a<���MYH|ta�s|�KZ	�l����)M��0
-k��J�Ko�%�w�����q��~����^������q�� {m�6��������~��W�P)e�
���w���{���"��s�g����~\��t���gcƚ�^����)30�^O
��:�J|(n����� `0RU�3*�&��3�[�� ��� (mO�l~��bX=V�Ɔ��GQ��<��j6�T�����H��P�yP<6X����˓3�����-�Xof�_���!�}y�P�E�æ�S6+��o�Y����[�m�4T�>q\[�CX��}���s�
��P���G�r�;A�ݬ,v��{_���V�Η�ĕ+�#X*a]�I��Re��M�<�?b|㵶bxH�$[2�Fڃ����*٨&0��!����X`�B%�$��4�LSkA2_��ߎ�[/�yR��7~9����dk$	��/�z�E��i���v����dz��taˠ�������
�2*i�/���X�b�#�	�Am���韱�uV��Rb��E�j��"�w��ō�>�P/-���X����Bx��o����-�rVۗ_��O�}9���<E�1�����ux-f��}�-�@=>��5����A�{p|��T(`
�K��Q�%�fς�R*�	"����c?���3�vߎ{��؍���f��F�N�g�{�V*Z����#o��X)�ݟ��~(�C�z��zG�/�=�I�2�9�\B�(q¥�$+���T�ۃg�ݪ>�EM!����N,6�)����v�!�M�N��B�~�a��}Ԥ����xo��|����
�ȭ˅��鼆���0����Ͽ��R����Zx9v�QPh̓k��6�Z��r��Ү$�ц��Y�;k�3v�|e�C�i��׏1��:��d{7C�WsQ��jy%M$;s�(Έ��}1��|;����q�0�����,�c�|���}���KpY���f�5�����k`�:�_������1�p�G�5��� p|�7�l�o1�d�XP�g���s���~�g�f��qP����@�Ҵ�ϓ<���&`x�� �v�7�s#�$#�6�.�П���~3iHի����}���
�8��kRm��IC�DY�6��ڰ��d�=D��>���y�M�vI���p������}n��a
��F��b��rS���ŤP��\?w��]@��>��;�����-��{�n�k�����v˳��؃����pm6�8�������")�}���&�,�P`S�l ���,V��&y<wll�rw�4l8|��כj����s�i2�m)Y�kr�a��{�Xڞ,��^i�pbhw�-�~4��@�`�?��_\1��-���L|{>�Z$��GC��M�|>��B�М�ԁj�C��[�[��㠋���L76XV�#�^�ǽG���e�XOv�̃��u<��8d���E��9m̊i��%2��t��� �E 6������ܬ��xN��x=���שI��X��Ü=��)��Dz�k]a�r\?x�Q�r���m0���6	H�6�:�8aϦ��:1���1�{C����� b�H\鹉/[��h3̑�]�!��Cq�܃�����5c0p���WHZw
����g��۱�S���\���x�w�ـ��zK6V{�*��mvS
l���Ǔ�3�OE�D�ެ�v�	��/k�aձk?�D����T��]��G#��
��h�m]e��DH���
z�0����'�D>
���*|u��X�=(�W�7)e�L~���u�Rrۍw,PZ��d��Z��K�(����lA�恮�Y��֪�֖#{�S�F��uIi����4s������2���;_׬bj��e���v�u�5X'�����v�ݚH x����;�2��ʰ�{YN��+�M\ϲ)��d�8:<����o]�Vi����ӷ���׷�,Tg���V��I�W��ʹ҆��r<ӯ[�o&����sb���:��q湷]��m��+�����4Z�-��ZCEx����q�NU�p��r�s�y�"6��{�jM�Z��m��e�Y�f9ȴ�C� k^Sϴ�us<G}��MD�� ��N!�c����l�R��`x�E�����vV��A�AH9�9��d��d5�x��aF�2��rY�Y^�~�� <�����ƺ_>X9����s!0Ƽ��D�8����m�OZ�^�8w�y(N���-�[	ab����������R4�E�m����F_d�'�������Y��l%aӷu���r^X��c&�C��|���X~��+�4�~��v[����u��ճF8�h���?��Tt?>f�X&R����3?���~|/}�	L�������N�_�A�o��i�VU�vذ{��:��(;Ad'�SvYB֡���^�u7�	t�s����0�{�2��g�ش_���5�n�yA����a?Τ��j���d�Q^���xm�N��(��A��.��j߭�����d�$|��b����aAFn+zz���<���!�,_�Ⱦߓ�7���ߩz3����͢�%{@�`m�t�o0�o~��O6��`XѴ�9�Kk>�Y�B�7��uW	��=��a
h�)!���%���K���J�5�������v�5��S�Q?-Qo�	����fr��~ml�' ���r�h
U�9/���!��i�`-}��}��Cu��iFԧ;�M�bnwyi������؇��������EMu2�}� ��>
��߲$0����������i�c�u!@6�������C_���Ϲ�[���"�G�\��O������-��Ԝ���j�}�v���Hq�by]	�^�_�0v��V�`��Lȃ)��ψ#�	�Rmr�0ۭ7��dN����ߧ��Ufk�ȟ�(�"�a�n6���:�kV��*���Ʌ~�`�� �ݲBPS]
���=JZҰ�nU��7�6���X���vED�0�6��7�Fܪx	I6X�M��r������r�YO/g�'���n>P���Ul�G���M�����3D/)�>gcO
�Ɉ�z�2ݫ�lI�5o�L�W�"��jŹ�XdE��MYe��O���3��1Y������I�l�(���jR�8I�[k��Ӟ�O�>�����o^_����w'��9�*�f������f>
"`�����
'��{��ba�D�3�����"�Oz;푫�@�,�V�0��W�b�m��;0{J��=���&"��.��z�,��m�5��=���3rO�cȁJe�-��->��!�lM����}��_w������/�����S�YQ�d��1�{�f��2��a/>Uv����Jc�\�m&o�UAK=82�*�c����Ϥ�
Ɖ9�I���\YX���c�]���-̺���:Q�]°@�a�����܊�7�35|g�Ż�F����`E�kbʄn?�6-i�6�O��а~����@T
|gV*�~bz5��A"����<���[����|ߒ���3�`���N�[��
��S����I�n�:<��d�ߨ+��u�D������L\�֏Ы;Z���e�eJN��
�ub����\'���R�bVD�d]s����#�~l�b�Zn'c�wI��c6S
�m���(f��7}'6=T?|�}�&u
�֡{�G� �b�R�*)q�B����%I�l�bת�����j �'}�uw^;m�
5/�V����*�1���~џ#��6�LS��xl���d�H�n�����0�6T+(~KC,�W	��T"��B	`8�!Ѥ5��x�ދ�k����j�2Q�����Pq�t{���a�Aj�dk�N�#�
S��K�W�5�u�R�5�7�~�і�2d��9�j���QF�����4���Y�jW��8�2L�)�ݖ,I����N/Re�'ϙ�aR��N�g���{'��*Hg֫Ҧ������}�u�l��VS�X����]�?����r΋�${Pʠ�C6[ox�.�0єu֍��cc�:]�{+��~�ξO]M��8-�OH)���I��I��tD���8��p��>�u�W��4��FЦ��_�J�nq��>~�6��D
Ya��m��#&�v��"��HR�0ҙ���{�%����S]�G�r��z�<���=<�:��G�α�6�d
�R�j��
��j�4Qv	{iw~�=kl��bŀa��f�5i_jJ�A�s�k3�w;=��gC*~��P��Q�AE�.���(d6|�͂�E�[���mj�a:w|J�6�W�v'G<�72ʍM��io}��=�\�Ӕ��{��̓
�L�J��P/�0�Zp1y/��������I�Âb�0;g�7�Ά�+�ڽt�M�fz����%���V���n�+�{���dW�<[�'�(+)��D˒D�)} ���.�Q��nc�L�=Zm�?�M�f��hLɸ�yC6���y���>�}<��>�2wre��5�3-��D��o�V�2;����bt���Dq��T�l=/�,�}�������zܢCY}X;P՞TƇ�ݟ���1Ky��Jg�N��!s�	i�A��G�njk
g��x�Y�ݾ��� �QUͲƜ�|�γM��!5ʺ�(�hZ-��k��J��P$Nv�Q{[[\ܾHO�lVOe%�w�z1���GֻF�la��6��O-�ءȿ���7c�g�i���7�b=�5��cS�������k�
	C�P�}}�l�V7��;�=�t��W�3�4`�Ř2�xm�L�� ����uC��&�(�!�k6`:IMZd�����{ݺ�gT��>¯G
��F�P�`�-v�1𦿺��ޗ�*1������p+������6_C��_Zl���u��ꪧ�O?�k�:�q��^-�����a��(;J����F4�@��
ʳ���{ה5�u˒
`�}V���-���b��Zn/�GV���f8�r4g��;��*CC90���SLM\~��J7�Iu�3t�
+V�"��B�@sy�1�����nt���f�=	8���m�H�^2�-�d�����y�,{,�e�܋j�9���b�j�Ae��{4��o D���p�gS�_��j�x�����-���L"E;?Y=R�t�g˓ir��=AQgD)#.�P��=?�*"��C6�L�_���u̬���;�����v$7���KD&�*u��9�{�j�g_g_m�̴TdfF�0ss�d��3�}������n�Y�u��_�%Կ<G8�����:�Ό�D
�Ua/d����]���.�h��%�s;R�@U�lo#�տQ���IĘ�!��@4����GƟ*��w���Ӵ��Z�E�I=���2b�����p�\//�h�ir�8����쯐H'��|����6��z�{Hk��}��ϑ��(��go�!;xH����n�.I�J�Dr�לC�/��nK��r�z��;������~TWq���Iw�`�r�AV��!D,���
f��X0����A��A���*{rN8���S�řv��Sܦ��@l�h�1���0� �vЃ�zm�xp�l�>��9�ij>���綱�Ay�6F�x�MB8�Q��u��<�S��Թ�ާ�G1\��
�>�!`�Q���}L�����D�)zaa��:Q�� �߰ŵ8��L9&
$���:��y���*|�S�xI�1�F�C�k��džG�����HѠ_S�\/]��5��e�J���w����.���Cdo)|7�
5�G���5��P��Z�0�p3K�*
��b<5���L����#�z�O܋�T�%�9��¨֓z�;�q���e-]���5@��խ�Ol��u`�	�䢦)�a���Գ_�8#w��y�C�ܦ,	��X���o�Ũ��ڇ�U�@"�
����)
uզ�Ŗ��lv`���̒̓c�;���Ђl*�8g݌W�����Kl��i8��p!<O�{���B:�R�Yq<�΀u����
�����7�i��?���p�V��JM�j�:I꿝¬z�WA�I�כ
���C�6�M�$�K����g�j
��|�s��N7����V�WF�C:y]�h��)L;�]����k���%ٞ�Ά����م+ei�AC�i�>��iV�3C�ٌ��>8��Q�f痆�B;�z�����g��5�Aь⇕��b���f���6�;.`�Wk�Mv7DZ�i�nj���x-b�r9��2Wg90�B-����j�*�C��S��D��ȇ�%r��e�����ΠѪ���l����X�L�s�|R�W5F��W�;�_��!�D.��82@��V�7��k;�ŭ�ޫ >5�_^gFQ�~�(u1p�V��u�j�F;]3j���i6]x�W���dE[-u1�|s�l���k�Q-t�*�(���H�8V�<=�e��t�� �)v�EK�G�z�*lϣ���]��|`;���旨���w�T+�x'"
Y�H�:t�k�f�ί֟�8�:^&��-ؠ9�!��e�&Mb�?��ZW�,�omk�Z�cgM��A��oް^��C4K�Nu��h�6��(��I����^u^sia<�@|E�D��$k+��]nZ�>0�eP&l���r�뎡���5�cŜ1�Nz��(�����n4�gvq����œ�7�eĚ�?�zp�@�(ä?�dm��L�?���&�����nߥ��	�J�`�J�La��w�7˩�ը�T��=���+&��E>>sԧ����߯�6a��a����E�38���i��6a�j���b�m>$:J��ڬj��6��
P�F�:����$�0�b�f���T&�=��j�j����{��
��RT1���Jњ"w�2#�\{��sa.���ܩ&7inCU
�w����,y�=\ܰE�ص�r�3�x��B������F3��:&s�d��'e7Y���'�am�b�وO�j�0���K
�y�gu���Z}@�� x���y{�*��z���IAH֢�j5�%٠��5d�(����e�[A��X�(%�<3YV����[�}��$���L��áE%F
$�+4�0�=�-*��W�i��ǵ���+A�Ҵ�Žcų�HŠ`�
����1p"����N�G�������B�1$�(�N��!�{�0z��Z	�W1qa�钢�M��z���>��B
v~��6��#�8z)YY���v��V��h�Y���\X+��+�T�{O�7C��9`�_ka�K�3��g��m6L��\-z\���piū
1XK6�¶'�O���yb~�v�Ɗ��+��U񗢧y�o�����_�a�f�vɽ!��oT�.��`���+���h�K�
~�=r�g	I!���wl`�T���g�?�
>S[�|�R���b!O��
Ɨ$�kVS���M��S�r<a���\���lA��XŵV�R��OħP��%g����>#v
��	yX��`S�=[ r%Z\r����VSo�IV�Om�F1�-�/�����qW��"�)ܚP���Һ=<>����o1LX�@Vj#�j���|����/2�\�7�\�}��?�͚r�_�W78*?Σy�#�||_���Mh�!F�{z�_���Q�r��\Q�Y����B�G�������&s���B&5f�&���3��۷W��&����A�&��U������ڜ��i�}��_���3V<D��Yh*�>����
_�Y���$�Mx���AD�"�m����O��
�F�!��)�����
�
O��1���G<���~Z=At ��W�8�B�R>�ƍ��xfҺ�
��:���X���}�d�
�U�%u�t��XͦN�g5�ApE�Ř��w���kWR�lֲ�0�V�!����Q_�j��c�$s�'����N�\������^��wT�8��n[ĸm9��K��-6�Ǯ�\��e���jPH`=x�-Vjv!��M�9-���`�\,��ͽꝞ�ͮk��T�^t�y+��mY�p��`������P�3J
��v#�*�7]�5�]��#q�b3"Z�@L�3JO3�c;5����,�=��]�
��P�Saa��>��M�d�Уs���|��A#�lJU��K3��|e��ۋ�ٷ7���5�n����{�z�?n��T����]�Ί�����Oô�\<[8���{�Ю�E�as���j���^���g���>�7g�I�L%
pwr����sKj�w���34q���4�j���Z5Hq'K~(�O
���!)��>;	���Y�"��W�P�f�xe
�Q0�y��\֯�.�Y]8�%h�؞�4,�t(N�SK#�<N!�%��(+=���Ai�x�غ��${95X�\��\�y8-vl�����!���{o�����l�T���5��`͚?XzV"5�F�<�ɴ�:�a�Z.�69sp�○�wډ�ib�K���"��Q!��+�Ӑ�v���6��er�3Ci��t:Ё��P���B�vV���1�d	/�f��Ҭ�y\r^�p��;֧˱�.��	4Z��UP3,BKb�O%@#��M%$��<���	��ipty�n��2T�X���^֭��5>x��5~=�">�/.>ĉa(��\�3�f�ރ*R�+�uy�X
,c��߲�:��_/X�=�}Y)�G}�s��Ge�!�C��86�W�j3�,�8`]�[�56�:��� ף�%Q�V�#�1�s7�����B�
��<��q��WC@���N|7�^B��q}���nCm��z�en��JYX��.?��
]p!܏5��A���J�-Wr��T^��ֆb\y8`_w�1 cy}�l2$Bϔɚ.��b; +�–6��Z�^��,�7w�X�C]��-ә���
��4��ܥ�|��5�����
��9���m2�ղ0 ��>��M��a���qg���<^�zcSP:j֪�-�;U����EkjQ���	V��oh[��ݫf�<>�
o�[��{Md�ţ�x��5�^�V�p\5<���s	߾]����w��x��Ո|�;FtE�F��y$��/vn���rd��ǻ�j�R���^����j�U {�o����
�B��n�+*�\��LR�P�/u<=ն�\��dx�Fd^>�G+ץ۾�M����݇h^���3�|�Ρ��a�`J^�,Wå�ah�p�����m��������;TmW���<�ͥL�ŚXkzCU�((�9~���K��F�Ѩx6�H9;������\���c9�Z�k��߳�3u�lZ^����^;�#p�<���66���D.H샤��}\���ޡ��kM{��W�P����s+�Ʀ���q�Q����1ˬ(+�8~�@�1C�x�v���R�^tó��z���3���+�m�N��Q�:<�{�c}�P/��l�nb��PW�a*�NJ��ĺy/u
�u;v�]��g4n�������'��Жa��9=�s��\,�=�d�y�~���k�Ƶ�Gϵh��\�B�u�T��`.�5x�a�@��	�9�!pi��g�3��n�Xកl���b���8o^��#~��������S���Յ�j�oR�����:�+���z�b�f;���1��}=�h�s�
���D��;_z_&�G1A>��/;]�kyY�.
Kw�G��,�Q�u`!kd�����\/��/΄�9bx��~�>^�j��m4��W���
�KE��$�'�w�KA���������Z�U�`�i�G���#�s{3ͭX$6}�险&(&E�[��ɬ���i�s,=��|�?��pQ�L����D������2~�}O�g�ҁ�l�<jg��yq4��PG`5��v���*�L�G�����)>����Y��|clq-��\⬶��B�zw6|�|7%�qW�	�4( 7�*�ܯ!�:8~��֕�&�*O�Td̓�������(ׇ��FK?�Ћ����f,��Q�5*J!��U�������02��f����PH�;��dWd&�lDo�w5�+oȲ��Q!r���`���Q�,#�Q���@�UZ�c��%
wGt�"z�����ŀ��a�r�q�m�q�U���x%t���6����T^�X�m$Λձ#����W�{S�|�h�U�[��[�2ޥ�}�;	*��Y±4SQ�A�h�P5�W��P-,&9��Ո�k2���ÍO��ܙÚ�����!�0Q$\"��a\6GDE5��r�Wm�a��lz�د;�?���N/=�qP��
���V~7,oֈ�Bl���g,͌y�g�ᘇ��h���9#��J<��(��U���6���zB����PB
��0��y���j��������ұN�����N���k�@��S���,]939�I�|kR6-R�ar/O.�՞-�60������@�>���x0�v�\�Zn]>�<�L��<�Zh���]�{��q�>Ӭ>�q��V
X�3l�S8�$q�}j�Cw5��}�Ӡ )�x�]�f|'8=$8���~&6Y�wY�#E����&T*��3L3��mέu�,��Q�9�FXaM�vϕ�}.��Z�kM���Fl�0L�'�T�p�'�[S�	��e�"�����–�)�G��O��|�MyL�~k�5f*xGRu�@{N�zn���=)�O�g�MW�e�0|F�·�?�&�ZIm
���ӌAG��,
Bc6��
���v樌S3�c���F�u�|���uی�t�y�]C�z���\�Y�x��O�Nf��!��{^��U)JK�ۓ�~bs���A�����Jy:s�<p5a�HI�dKW`1���^��L7�|���U��T|��	J�$WB�C_��CnS�3��im���*�'���w�r������=��50Pv>�j����gÙ���$���hoʭ�ҹG%��S�W���G��ekS�k3�*���ee}�+��F�-ߎ�	]��<VodDC=��>H�*p��A}�nxF��v`2�55��kq���ER*󲲭�� :���yA�Z688l1�zl& Y�<Ҩ6��)��X��W�q�ޖD6;$U���Hm7��M��8c)���}�Y�[a�-�>�����Ѭ��ü���h��}�}~}Ilh���P`�CRr;����Bk�9A"���u1��$\r��5�p��-PY�661��W�,�9������5��/]bw1�]8�eV���G_�3�o�o #��+��/W����3�*ѱ��<�ZG��
\p�Q�?nac��0TH4M�-nX���F&�ܠx�w��5�r�w��4p}���WkpWkr���q]pf���� !Hڨ�v|%��U�%<�g�����}YI1_X��?�QYW�'{��І
�ߛ���z>�^�Z�o��|���:���R&�9��M4H�*W2-��H]��ǽj�9ީ�z
��
�M@f�xέ�ԏe��!�-³�2+�a�.B�=R���+ �����3:pWe��,LH��0E�jv��3��V�=sOD��!�<i�^�?�.��-^|H;u���Z'�Ke2�ߣ)�A^x^/�D]�(7��;"�o�Ǻ��	/R]�mЄ!^j��=p舳�D{ô��~�l�A� �){D� �"���VQ�����T��k����ھ��_0�Q�����G�p�����"[��-���g�ͅo�1�3�x�s�s �°m�����cƫI�at#Z��������צ�e��@��e���W�p���㜙
�oe�g�@j	��b5ʪ?�ٞ���P�>�ߏy(n�����;�6�w�P�V�fo��DwW�N��)��Nxנ�*w�-,��/r񯴟�B�������|:����]����!����$q%ݦS;��((
Md��`pׯ�Iǁd�R���fU���Q��O�=٤���[=�L��[��5�;�Lj;�1�9�ԋ�zƀ�Zn�	M��:�v��*{�5Yí�1۵���ϰ�Lw�?�sڠ�x~��eS�A@���n/u�*�?C��3typ��)�Z�*�� �~�.-�nvv�21ݳ+\���TbI�"_t�v][H
5U�^۩��<��������}~A�~���:X��3�9�ф��o1T7����	���	��z��`�	��{��i,�,sK���h�:[5�I��J�i��'*�2h��2����L�9��1�&7����8,��,o�_� zn��"���l��H�#@���v�ryЍ�
��C�f��FK=x����֏0�#y���U�N�6x��c��	^G��B'�MWz�s��X��Y֬�L��d�(��k�=}�x�NYy�Ѡ��=dz�'�J�ƣ�Z�;��^��a�.ʐHRL�c��6��c-��9=�Y��-��K���52E9Z���vv�'�kԡ<��V/���p�ުA��	U��|�F*�Y:�T$	
�s5�	;�X�(E�^ڧ&�Pܺ�F��n��g
k���9z��d��X��B��2��M��j�8��[�*]=�0�5�pM����0hej����c��:���2��l7#�q�{c����E����ܱ<�M
5���#!�L��=+~���h���g�ao�>�	xCّ����sA���E5�x����$c����ɱ��|u��Lܭ2��~�jS3x<�5��S�����6����4�:O?/=݈����s�T�<��K?i
ⓠi|���g�_մ^7����l#��"���"���΅�_�x+��3���G�!���m�n��
��s�|��ݡ�/�4a��w���ܓ�Ϗ��㣔�j�����_��/��9č�E/�j�Uǧ:��`l[������+�qqC
��4�c-�}!J�����	��ۜK���i%�e�Y@���]�Q�픵T%�Jr���tTӳ�~�^�5�ШƟ_Os;�@�Z!Z��o;�WUբ�F����Ż	�'�1%v|�5�x>n�~"��
��*E0�Ն�lR@��k�+c9b��1��FDN�9�?�jP${��G�w�)'͏ll��^�8���9�sA]k� >����({�Q�p4U� M׶&��K2��
�%^��7���>Y��R��,	����S��^��y/�ҩH)D5I�f5e5g��';_{��k;�^�>O������i�#:#L8V��jy�c��1�yLl'��q�(FwR��{��!LF�vqj�0gT��Ml
'��=̷����&�3(�`C�:�ȟ�_�El},��ؚ ��e.��
�Y1���D��0�\��_O��s2ëw��[�C^���ń@~���^�E{繴4��
�R�����ä�(�zξ��'�AQv�k��'Գ�)��K�f�)����y���	���ê��;�o�HY����$81������Y�`���#����I�z��{�R��F�A	I�H4�N��g�I�e�s`]FfJ�^�-zm��?�>C�<Ƣ!@3�P�Ԟʁ*��}����\�����l�0!�<k��M�g��'�o��
��M�=��[��=��r��Or�M=�	�x�հ:�%6�+�����)U���w٦�6r�����~tixG�����Ke�w�9��szX�MZ}giI.D�-JT��%�7�T�k��y;NB�!6�����Y�&j����Ɵ-�/���>�a�䤶����"���i(Bߖ�0�Ô�	�ۖ9��Hm꟭ꡎ�WK���Cv�?&g�i��\Ë�P�����IU��u������g�c���4
�CM� ܆��ɿz�Φ��;�18�EbCw�d̚�������#��6�ů�sS��^9���`/#�vmע�-�$^h�<c����PK���Z}J-<3�h��+��]6qkT��=������u��!�5��W�m�\\׸���5(06���>��w"��c�=_heecS��MM�-3�v�B�׎I�j�PX슔�i
G�k;��X��*Ğ�P]���!T,�n/�8{�L�x-g�c쇧��Z��c(R6.��\���h������E�1&�_d3ƽ�]��9w)��9-��,����eҷ�(X��&^šl�k���
�-re�l
ښ�
[���+v@�uW>6T���٦ڈ��!#_*7��A��$U
γtdJ%K����o�!��]�5�@��<��آY�amR��_�q�a�
'4=ߏ?돲�9p��:�����>K37��%���17�7�_em�x��<Q���ߣ���+<�x>���i�D��o�W��S��C���v5S�7�1��������K��g)�{�a����q��g݁!:��?���N�D+��s�`���N������i��B�
���3/@G�V������{�+�I2����.ί��
g�Er_L�_���Se�-���ԋ hP���ʍuY�a�;ߓ�"�����l���o�k��ε��
`[�&#k�*ԍi�-�!kuξٛK�
���v���K�cV-��HDK������E��"���
��
�������|[��{l҃"q��%\3�(�_��{��0&�˙K�+k�-؊t�P��㈝E�Y\�?��f�t߭)55��J'O(&�E�Y�����U�8�Ɠ^� ��hs�N����}�[�y�cƓ/�U�2�޽�О�X���F�t�#��I�������ڇT�J�Y�E0k��O��
�~*ҙ��N2z���P��u�g�������=�ACTC'ֳb���V5`J���`�?�5q�!�=�)���0�v�E)�M�2�T���K��hN��f��b\�ߌϺ_�|��q�Pc�`�9{�	s�4��.ը�̱'O�L�πG������IM~|�䡳��
TEK}6\WkN�adS�[·	=U�B����uZ_NV
Q
��d����f��-���0Ǧ����Ms��M�L쐭���+XV�>�/)@��R�c�dܓG2�7PoD�QSi���;\֭�h�I��F�,�����P�sǣ��P~iIz��sES^�Vkb"��r�'�ȉj���-��?^����j��59;��4�Qs��3陖�����1��pY,�~��߉<�w�P�WC`���76�m�oy�Sq�]���,�)^_�D�\�Ǟ�m�"�8~�q!//fi�o��K�?'3�(��� ��n
e4ȯ��3lt�qm2'Y4%�׽�y��Y�a^
mM|D��"��Z��T�F��*�d�(��q�np?��ޠ�]�O��?މ�Xt�k��e��!�|xgu�t�����q��fsA#치��?�D�k������y=^�����X���~$�mpm�1s�
�����)�T���\(�3'43�6�X�	l茐��kV�oD�Ǻ�=��^��R$����7	�{w|�?���Q��߿����N�^��7����������c��srl���(d��t�My�s��x�ڇ����ڶJ�u,�W <�~�6bo��8�=��`-��k7��{%T�x��5;~�!��.�솿�/&=���x���{V[�P��C��ބ=�'�{�8���k�C_�����Π���{e�D�8q�5
��q�/�����>XE�We����ij��֛���D��0t`	Fg2+�R6_�
��.2��粄�~�Ƕ����uA��Mq���<��n���s�\�u#�Ԁ��<���}{�˥3Y��a$l
,ɍ��ٜ9�У��h=^��kb�n�ggo���M��8�|�~�k��v�&���^�^��_�\�1v�΁\�zz���.����;"�X����0��ym�қj5Z��˽r��ˣ�gW��b�~��L�e`�qV����*�:���x��`��rR��9srvN�����o��a�#���"oT�ia�-�v��ѼA���]V
m��_��~��^
���o��tz�.�����>q1���beB��}pj��8�t��긌3E���?��0�zrz����@�6��/�d�︾w[����a}��2-�lM$�K��Pjl����ț�:�RN��..�u�2��]�YpZ���O�/��1hh�e���v��C�E�,0�<����x�eYë8��W}�C����W���>����*~��$���ZoSc���6���e(�ߙ��&�+�l���B��G�R��� *�]
j��R�|Ḱ��t��j�M��xU�dF|�EF�t<[��&�
2���p.�E*C[4j6�v`���l�(�Q�a���N��}	�%��{M���~�75�뿫c�՞�]�(�_��]�ъI,�=#éjNΫo�X쏏�&�'0px@�����-�~@�;%�ּ��F�aR9�*]�Y�x��0�8��͍�[�SRȊ
eo~O)4.jf�����C[㱚�� ���ە�Fp���ܜ�q�96���b���ރkP��vv�����k|P��!
dʱ��z��Æ�2݌�Z�y��R�z�� +EkZaqխ�e��<�^W���ʄ��u:`b���!l�
�\n]��9ٶ��MYU�fq�
(�����C���>�o&��I�����oA!Hц+��=�y�B	�I�
������_�e��rX�){6��}��!5��i$��j=���wM���z��o�0|蒓�jP�OA�^�h�k��A�b)�i�b�f�RT�5�]�>P"�(�x/�e�U�f�W�ko���Ƽ��;�lY�b׭ug�;c�����pЄ���`����#����UN$�
�P ���p���}}8��?6���Au���d��y�b��e
�),�W\V4�q���5���5O�k���l�`M`â!�b�Ud�>hjm/��i�A�¾)+A�%F�cG�y�;J�S���s�$�5xܷ9f�?�����q{)S���9'��������x���{��q}5Y���f��c��79A�������c3�=�Ӝ��mi|�v5t�M�� �C%86��ad����ld\t+P_+��t`��X:5�ַ�N�)�G�;I�Пm��V�~�L;�]�d͔��/��[��<;q�c�o�i��~���_���|��wL���)9���e�^���R��%��V�dv?�����OaU��V�q�3��4Q���5�9��`��$��d9������`����mn����5jpD�G��֩�OS���Bl�"�~�s͕�MV�բ��r��/�=<�Q��Q]��)���!~لJ[�A[-����O׼M�!ډa4/ݥ7�YD����
{n�M��,B�I%���"^r֚���W��~��D*�Ћ���)ɰBI*K���B�s��"���a�@f���"�~ŵ�k@��N���_&ʱ��:
(�ن�[�!��O��~!���Ʌk�������#��~x9���a�2,TDL���gq�'�yU�M�E6�kw?���`�������l��
x�����#��L�m�u�s����ga+�`%.{O�z�ߎ�y��[�q��%��E�7�n�mr�U7���)����� ��uz2�����C���JMv9ޙ#d�A��͒�5ޅ2�2?z�y<��`��z������88�����ML���o����>ޓ〒��~/%��3,���D�V�Q�\��x��l�������0�~cM7�߿��5؛z�`�kr��?qΥqaP໲���Lf�.��b>��p�l�q|7䉼Y0�eg��&�%"@����64z���������ԇ����L�əX�H�?7������WX��LۄФ $HY�a�q��0����ӏg��X��a�f��L��:o�������Qy^���^�����Qk�k�
:�㯗ijj4�\�gR�u�PEY#��ڄB݈B�z��h����?�z��~��"٢%�Z�J��?��_�#���&��~�f��&غx?�޶��}�������q�мo��;�c�x�w;G\/����Jf�ጉ��f��C�k�����M}&F����\_mx�&)Do�m:@���C4y�&�=�	�̜��Gl��Ɇ�`�_.6�ّ��3�l�I�GX�����l*�ޏύ�B���o���������3�C�!������Ŝ7D���}��b���fb`��}/��Ȧ�x���*D�v�o�ދ��l
3a�0�x^�����]X;�OԆ���N��Ξ�3fx�+�mr��k�����4 �N�8��K�\�Zڅc��,�t�e���Ӗ#θX�����^��x���=��o�7����W<w�g�	�L]�bC�����ʵ
k����M��nmc���P�?��<�8��2�}�����gk�[������̕}Ne�_�](��X���穈�js��>P�G����x�+ŧ�}nO��6��d��w��e��T��E�ؼ:gی�\��b�b��8g+�4���qR�)����sls�mS�UvPfHMсR�p:�������q��gkG+~�k���ɨ�@�)\�7�0�<PѮ�%������l>�
��3��3�j�v�-�*����R
�d���1��[�Bd�y��(�u�a�Q�QZ����х�+g�^�Z��,��mC�D�d��6����Ք+��_)󞟅�7�B��Z,S�c^���ӰI?0u�;QB�t��{Y��'FES�JKK�;F�u4V����fS��0\\� &5�����j_XC��`�!!����T˞�C8Ԯ���ɮ΅1X��]-��Rr��`W��Bi���酑�V[�c��Tw�#�u�N�б�#�9J��a#P�aAk��0g�G�~o��H��e$�sZ��I��aR���y�-�sNv��ư:������mö�%�w�7�+!�p����8ܬJAd�Ê�q|
q�g<
U�,��QtSɀ?��U���BCAA(k�տE�a�K;B�	�㈤7T$��E���:9:	�!`�_/
�ޫTTbg6c��r>�j (�*-��l	F �P�8�T�5Y!���V`�6f����::�
/��~ʶꍙV�Y��9S�p�/,�L����\E�k�E�ga�TI�p�JgU���8\w�n���E��E�b�*O��]���l.��v� t��k��zndf[�@���F��ڑMɝ|�Sp.U���d��CC�b�\����e�h���/�H�{Bi�Z��(B�O��3�;��װ$T�T^q ]~{]�̐N�ht�����5�DƮ<��@tyMd�k�j_r� :O�x��g�"KM�.�ǚ�\�g���U����8X/>9~��n!w�^[���R]�3�N�ܩyu4��.Ϊ�øs8�;Q.;>�X��S:֩k����zM�߹Z���~���TL��'on�����I茎M�v6f�ؙ��E������g�ij�+��s�bC^�6�����pt�C�=#�s+���sH��	wW�p\F�
�6�熰sK{�YgMyk�/���;'<J���Yv�)UCI�ȹ�~Qnx�}��&;X�u��;L����j`�@b{�*���ٕ����sc�@���hF�xi�FAEZǚ�g�x��%��`ymQ5�Ÿ�����Wqr)�n���RT���y�-v.�Ն�S �5������Mb���ғ#��'j���K&t�w��?�,��/�L�^��{̊cZ����` G
K��c,�������h�|���������}O�;����s�Ӑ��� 	a:�E��*<P�U#���p���&AOS��@�L�jS��Y+¨�W�VGLm�0|���'᭲5��#uZ�O
S���Ѯ۳��]L.R��4�C�8�c����/�bB�ݚ��
��v~��i}M�3�Gh� Dg��Gc�'9b�~]L���z�g�e������E�6����W�8����j���c�;,'�\>���yM"8�#w����G���.3�Q��}�=p��s"��t4����B9��p尽5�>��7�
�E�y��>�@�VGΑ\Ҏ_ni����)�r��L����|�
�&_�Hu�S4c��7@����^6ď~l�.�7�A��Ja���l(�$Gvվ�4�i�)g�q�;�{j]}�	��
�\�u�,�F�cǭ���`�j<�q0��P�(��~p�`9W��N� �vd�����S&+q7��s���_!�'�S�gt�74��n�w���``���U~�l�;��&���<��2�K�MW��ɓ�q�����ϋ6a?��	�ӯ��-��*�fҟ�!��R�DP�O�(@9ւ�եcԢ�[/�V����>�O��l�,T�n�f�����^�5��<�r�8P�UnTt��s�"��f�Pû��"Z��3W
=훏�BD��������#��u4�t��2Pp$_r�}��nK��눲��e�?�e����>a`�O�n᧡�_���7��l�*�GY,kJk�c��KLS���@�!���
��3���p��)��,gB��cP�o��_rjC����ɮ������Ȫ���KM���"�z�$\����*Mr��X���3Z�}�3h6~~�r?-\cH�,Ҫ�>�C�����i%o�Nh���� Y���6e��cRz�^�ƃØٍ�m
z^(S��:7����f��f,�� V�z�u���Ut�$��K���� L�����L�����wo�Ƣ�ɆMU,H=Hŕ��&�r+,ސ�jA���(������@�8�	����4�Oh�x�d�dV�'^�;��I��諛8�����{*��ce�Q�SQ6+�h��YS�ר�,b�3��!*�a��;7�
�
�K�
�Y�\w�6e��hP��C9k�6�GXCK��Mj��H��c���U��؉7*‘�ҭ�m�/��аe
D���e����Y�P��%�QC��<i��Rѝ�	��+�dRC��wѳm��\ʡ���]��@�@Pפ�3�H9
�iX-���rIR��{͌5��=.AJ)���[����S�C%T��j�P��
��қ k�'�g5
��Ht⡲+xV�"Kא�V4E.�o׬��k��:�ZRgV���s�_X*3�Cr�O��Z��K
+&o�OѾ}�z��P�3�F{��O�Cp=���מ�!E�g%�J�a���LP�	�>?��I�h����
*&��H�d�P�]��@�pgK��#ȉҜީ�:��}�C�"��P��iv�pm�o��Zs�r���6-�!N���~�^54��#
�mg,#�{�� �n5P��#��i?Q�\�:����g6��l0��a�G��绵�C�����L���ux�@/�7�Xh��9-g��C!�50�9W�2��(�M�>��?52,��7�B�?U_�^:�y�\ρž�PY9g|��G�-�AA���䃐��Cs87��}1��zV��|R��j�=�m�a��;j�~���~�T][��2�=7�$���P`�2�r����CR�T�,w����8�Z�j��
{qG{��4I��y<��+����UT�(�����p���j|_��=�,i�Z_�W:
�3s�U�=�А�
�����P�7�+
��v��{�����}:�ɽ��mE�T�&:��	8�(D
A�b�?�)�S�r?����痣�(YȱFA���M�=6|����F4Α�Ԛ����{�C,CW
j���@
��K

���_��!`��Z���o����K�
~��u	���h��{��ٚ��ʠ�H�S�����G��4q�1h/������	�Ʈ�o�v�w��\�ja^�	��Qh��\$V����*0���lp�.l^e�,�h�m��?8xi���}����k�:M���A����.Ge����<,�����[�h�E����V�.J�^߲]�7~�Mj6����2�9B�I]��0pC����G�0��q����U.�Z�ܮ�u����=B���x��"�	�]
�T��R�[	\�wEa�T�.Ω��������Vy�;t�]��e1Lq1�[�û��<����N,&�`6��C^659�ĵ���dimY�
{��6��I�BQC�[����'C��/���̹�<���薩��~b�/50�A�	Z��o��ڸ���=�z_-Wb�[<�]g�d�R��(�Y�3��׳R����B5�K6��'k��\���{Z�[l����6��P;J}����`¦,QE�p^c�U�s�փ��j/�{:�,�0Ŀ@U:�{��Q@��+�N�@�tu>>�ִ-R��Y�[6ј�n��Al��̄NI.4ۋ�(��Ma�Ҹw�s1��xV�þ���+U噃f����,j����ʂ<��f��d��pb���=^�lGːl�$#cY��Yp|�⺧�7�k�?�Öfԍ\|1�$��`�<����^\,���Q{�Q�S����*ݐ
|Ң@c8�r��<Z�[n��oޟQf�>�sϱ����C/����!܁x����7�5
�yf�����ܴq��������t��E��e�i�-�L����s
�CC'Դ$�2�p�c-õ#����@�b�gr��V�/��_�y�Y����y2L�Y�dzH���؇���Ŧl�����U�-E�[-“�uV�Zhgfjx�Bo�[,d`��[y�nŧ[�������HS\{��5�5U�-Y�D���*�Ծ�DEM{1x�y��d�����K������n:���G�EF�<w��2C����h"O�h�S�j�"C��U>�a{�2\�?r��a�\\��Q6�g稅�J&cуf���Oj��JNyL�� ��~]���x�5|��֨������W�[�QQP��5��j6Ө���l�
#Cp�ca8NH��)t�S�I���`M�� �
��
�_��Qt>�B^�'*���pe욄??�	���+��}?n5�g�.��ˊ��,܏��3K�9V�yՂ��MdOQ����<��N�]�Ns͊���=�"�G��M#{�t�H/�\����S�64�*��D�͚vM��}���*�>�iy6�����v�p �	~<W7˖p�qR#{��7Ǔ�I:�]3�7�zІ^X�^�S,���ٕN�#��¤`��Kᰰ}�Z3?I7�QM�ĦA�#�,��~��v�����u�t!�/]��@@��I!R����aÇ�P{���l`����i]��i���T�d�����c~�X���x��zQ#�/>�̍�j
�b�,�~���p�m�p��]#̾��h�(�K�;����tY��T=�A�h��rblVqQ���_&t	֐��>,�~n���w���玍��,s��@�:Gv���?�>��%���TȍN���cO`�0e�K�`����À�@��x������*�A������Z*t�a�F�[g�V[+���i�k2voop�0+��0/�+p��T�au x��I�_�뺘j���0lg�G��{c��<+�l�e���ֳ�����٭>e�~BN�w`IoR\��h�(G^��3&��sI���ۛ��,�i?K7�g��F�	
�:e�?�q��Y]�#�߳��M�V�eTG�=�6X�~��@g�^��(q��Sc�b�a޷j�۔�ť���`����'�]E��l�-��m����~}/=�6��?�
��N�dj⦀��P'
��M{d��:�٠G��������S��PC�����ϵzƮS�>h�1�D��ݟ�
�gðn���;ٛ��Ô�k,��� �`���90Y��K=H�Z���]@��ט�\�N�����܎:d8���1>�G�})G��mH���؝t��e��f�b���q�.o^�[����Z;F*LC~�ٚ�Z2U:���2�[x�5�#�
��e)�I'������"��9�j�+db}o`�"���w��;���B
�����+Qp����t��[N��>c	=��2�%	���ݍKhu@����g�d���ڒP���v�0�|��G�������Q��|y1��Ǐ��@PC�?���|��T�1<;�$[���9�5��>������Eu�~ܯ��~��/a}U�����5d)�b����]H�nk*��IU���w�A�Q�v��w�Q�r��6���Q�l5Z�m��Q�(��{���|_?�_���}kEJ����q�������7xK=���^�ϰw%��ٮ��"o1��Ύ�2� �L��?���5��
?�h�땹Y���sk9ށo��w���a��X��*��k��boF5{�������_�޷;��c7U?�^ˢ��8o�$��u]��%~�o�Лx>q�,�+��L��&LK��B�e��e�:x:�<�X��킣xUMƼ���Y.v�Q�%�H��W�\y�\�=�PsuuFq"�����K6�_&��bg�=[fF{HT�䎳��tPsg�-����C�d��\�dN�R����C���l��ɭ������Ѭ}<3�o/���~����2p�ȣ`�2<V�2X��i�7
������ {�[���n� \���a�"�,��/���u����ă��唧�J��}��e�ô(7�k�YB��S�~�ΌS\�=a�ڣ
�\p
��	�����k;��F�Ճ��?8��}AVptח��[��^�R�0/����8��.�"X��,a����+�sM��wA*{���k�tɰ�l=��g���帤p
�a)D9�����>����J8}֏ņ.���/&��4��5�t*Z�g�) p��%�b�%;�eީ>�K�ʂ���%�I��[�?��}�9͔ڼ��V�g�÷LA-��x�<cBU�}7��ǹ�S*iT���֢ۢnRkZ�:�#z���&D��{`��>	W���R-2�~�O���`�>�<χ���I6���|i�`�I�w�E���Z�ī�)�I	���%P;��%{�]�v��Byx�����A�/'�����Il5uh�.����O�.�g�g[nj����;��?���Dr���PKʆ����ί%�#��*��ߍ��,��TM�GW�'�ny՗��!�6c�L�㵯|o8�*lZ�����������
�M��6��J��n�z7d���G�†H?X� ��񗥴�'��ǜ�P
#b��1����p1�FK��F����KS�T:g6D{�	%�H��z�S]���q��`<�=p�1=��[�44��.�d�6^��a��"T�R�P�[���e�����P�m�!���R19�J�E�ߠ�X�}��㇃C��1�H��
�g�ߒ��7`�Դ��MDd�Z?az
��M����&l�;�p��VU������G>��"�3܉S�����]��J��Sv�9�`O݉A��PT���M%�p�۟a�M�A��_[3�)ަi�!L�;�<��o��-%)��o��E:lM��.#Tq#=�
7DZ �3��o<0�MEC���lm�LbE�@�N��ބV�b*z���9֥k�F�+���T�h�ǻȭuA��]qՄ�XJ|M3���Q	��\��(��N᠁p�����E�x���9V�3q���ɚj�B�m Pu3����s>��!q\r����O��JZkP�?��	�{8��̺���� �$t_R
0��Ii_ژ?�Y��*%t�mSs�C,�0m�&(I]q_ғϴ�9֨t�o.���Ќ��k>��3�{�!�jWt�u[�+g���&�d��ꗠM�_ۈۍS���pe�q�Xj8#F���h�?����I�ZE‹����f����� ՝����$��N?�P9�l"��^^�g���Һ��pIC3(��f�g̕�:��Bߵ�KÔXU�*D�~TJzM�?������4kyq��,	�)C(*H{+��7�Џib=�ͼ拚R`�a��C��K��k��đH�i�u=v@����s�]�ɟ�A�{��_���e
.0�S薬A�:��8�kg�d�'���[�9���]�������|k�C��z|R��V����Of��L�\��ش��!\�I�ϭ����/"0h�l_t�ھc�E�%�
o�u��}c��@�_By�ux�"7��k��5�P�
=��Mvv��}�r*햙�����Ϡ�%�m_�n�&(P�?���!VtU��(�P�����E�:66S{�v���d/8�xO��8��\�3V�Q�Ֆ�RA���V�L�������[���G
y�R��P{�P-c���Al�_fs3.��q.�B�E{�J�z2CA��
�0�P�����.
xlI�v��:qΊ����q�W�����^w�#QC���l�b8j
��^��(�����k��A�\��*A]O�j;�h�o��X��۞��!@}]�%Z�'�r�Ìh�dX�^;1�U��w�W�4,p<���#	��fx��i����E��F`�#�k�{�bوļ��!e��ؼƙ��I�IM쵾�;C�}�ʼnJC�.��VǢ�,�NSk��	�:
"(�H}lR�&�����~�]��`Ӂp!�7�_8�q��C�;����1�0D�HE&��Z8sTC~�F��{#�n���Y�a_%�;�A�Ìg9�sb�/Ia��5}�9���/�7�{`�|J���<���Ե��c�h�G���r�|�@��f��
���A�w6M���[�윅�#[>�ӆ����0��V������`h���Xk���x�&ջ�3�ޤ
~�H8"�7� ����qݙ�A!�M4�������(7w��Y�!�m���w4�}@�z����۝8Z:������l��}���s�^*�p�ǵ�Ka�u�}a_�B\�\�V��T��(�"ϥ��?>�Ʉ8w�Si=��'XEm�;�T��n4��z��D�J�v��'˞�Ӈ��j�I�zͳ#�����ՙZ���\�7f�3��i���߾�3�*lp�N{�/�����KD́����y�/IU�qo^��QG\��!Į���}�;r����J�Ê�ٝяw�_{�J�]��<g�#a�gJQYn)�)���Q�}�a���r�F��AզBƆ��%M��.��ۘ���i�&�i-{P0;pNC}C�Oeum'����Óhg�C�Yi�dG������	mP��c�a��fY	�.6�3�Ds��Mӿ�d;��Z��[�޺F��~���b�9�tP��5�`g|�'к��p��PBIv�(5x���+�SL��ؖ�w��y�l����2�j�C����]��c��K����5C���pz$��1L(g.:���+�6fZ�����[�j�&и&JM�֮bE���
�2���5�'n��)B���ê�,��� �2��MX!2��_�B�^l�Hoo�A��PBv�v)��dİ�N��tNsq_��Z��5u���Z�qv��YR�H�`��ړ���:8'���0��T�G"@�C��g������ִ)�.kԝF�4�|���oa4����Q�Xf=�LU��Z�N����or�ցpD���>4���t˪��(7UvKo4Wu�֛�"XX��3�S���Ŭ}�߾��P�b���]26�*=��y]_4�!�,�9����Qs�5>��np/���P``jOE{8a��@iHws�$Ww�(%MεY��¯�j��<s@�9�.�X��
	c���zYm�?�ka��ż���Y�5�Ua����)G�|�k�����՘�UM_|��KB �W
���M7�4\�9���Ŧ�s`�܁�b��T�)x:�T��l����I�fHA=�e����yگ�9а+M��f
���H��)��hw��\��k�6�|7KVkl҅M��(�ә �!M�qu��k�g/��[�;�:�]��	�߄�:q�'�S;�H�0���je6�u�n93��3
k�'��HJȓBk�}���gjmfG��aapR�&,{��o��i��ظ���:g� h=��l����3K�C�J�W��3w@���_H�p�=�]�L'uf��e�TC�� �����31�٨H���'����K�*7���讀�*�.��}�5Ĝ��zB��O8��-��ϧ�Y�d4
���\��r&��rt~rgk����ڙ��Y�T�3Gh5/�5�:jJ���ڋ��wk���/��Io�𧏳�"��"�:K��1ˊ��%�.\Gt^�r�"բi`� ����$
��}�{�#;(3��w��*�
�<�~�.՗ESuC�
�p���z��TA�1d�,�4���f���@EC7��BS�Yck��o/�I�]��Z9ۊ���?�O�$H,��ijy�,�L4�馭�g�qPY,㍸>o�hX�g��f���&"�,��)>�7,�ł������1�y7T���p��ոe���8�gM�hA(��]�h���N���߷�'�p��*��.^T�A�2��b.K�)rz����>�)w!�I0�:���a�)�ċ�j�k��{�kt
⻲�?;�ج	o�Z[8H�+���:[�)G�ɖm-�H�a�Kw�*O�<�u^zEa��e�
B�K�n�(�eP~�&��B�.�B���!'q߬�(5�
	R2\rhg:E��I}ݴ��Om8˚~~}�"�"�8�AcIƯ����^�W�fk�%
j�!&K�����kX��>��)[C�~�8���g��
5bWU��,��5�QDq�2�P��K���#�S��cV�.a�ù%o�����,�}\Mm맟�Ѓ�8*zF�	��}9�0�,����ik�$=��ܳ!�&68ѿr�I�u�b�b)�r��L���e5S����-��~v��[��n
Q������j��``�)&w��Ώ�Fkq�08Z,c�;�b%hx=�57La�]��BN�[��~�C���$
8zH���8Y�_�.�v��	M
c�r��6d��Ԉyr�W��u.wD���Ց�u6��QT�Ȇ��z���f���*qg\��U4d2�IXx8s�³�GE�fXp5�g{W�g8k��j���ڀk.��H�T����i���ݝ.�Ww�����Yض�3K�dVf^òFn��L�X6�y����0x˗l5�.A|�� h���&x���όT5����ʂI���v���PB�ql�����M�]����e_�j9�џ�66�vZƞ�����+��/a=�����΍p�ԙ�H���Aʔ�4�t��pW)4�������W�I�@�J؛���L��l/���4�o~"G��оx^
���M�e �h��"��|�v<D3�^�(��9r�;zR]�����qEqkj�JWG[�>���PgUP1�ü:s��۽Zc���3Y&�\S���=hU'��"�H��!BR÷Ȟ۹s�b��Y[�`��I��l���>v���>90��(Gg�Z��y����ۋa,~@��)5
hh��:M'�.�|U1���@�W��!8В�Y��`�fm���큳��+M`|����C�𪆃)�0$f����!B��9�h�A�Q��Yu��&��;��N��\
μ��5ms����i��C��gV���rĕBG����V�B<��K|V�P�k}�|V-t��8d�]�7+��b/�,��Q��x���_/�^l�C�5�>����	�<�X&+b���ݣã0
�1�( �,�a�O.�4�����ߌ���M�uW�L���O�i�C���\��Bj�*n?�{�#�8o�uHz���v�x8cP�Զt���0�uIL���U��nCžK��9Epl�6����Y$�o�C��m���m�Nj��G�,Hd�ާݧj�g��R��s4+�Q<�V��$��1�c��@|���B�u�~a�^M���Oz�zH`87F�B{C�����e��r��ߊ�;_mʮ�����H�Tψ�Q�O����t��9q�ۄ?���xW��F�M��uw*[���ץ���0��/��$��׊��uگe�c4���ֺc�߃6=`�h�W���Pen�@f��)���qq
��'c×尫�ԮL��
����@B���j��/B��Z0�fxӳ�Um8݋��yp�Ԡ�a�H��U��ay;Q.�t��M�h��Q'c/{�:&�-�ߋ�v���[g��hX.^�f
UJS�
�����}j�����)���O��&��}P������:b�%b�f��=ؙ�����6��
�i��f��R'-�;̢�LР�9��sa?���^�j��r5�Y�Ա�5Ϸk#�ٛ�8{B�Q���+����J�[!�/��^�|���c�0�1)��B'��o|q
��x�^Q��
�r,��/Q
�֛�3��\�-�)I�&:�W����25;�PE�Ƕ����r��쑪�b!�T�©8��2vb��y�=��U�&�C��d���g��ԙ�D3�.V��Z�0<Q
�Eu~�mgc
�÷W=���۩f
onLq��k�����=�2�qe�P���A��ݠDG�s/���5V݂�ìI�c?ˡ�
��S
��YDv*�y�����e�::ƁDt�)����K\x�d�{�q���l��X�$Xف!*��6]�Z#3��S`�ϻO�֨��u�hh�}j�LCw>JLe����G�$zPp�B}��N�����f�����TQɖo���潐!��T���p�l,g�~(��2�b�[V�YЬ���+�HlX?���︎WT�ћ٪ճ���E�]>��b
2�
Уυ3x1f�9���@\�-�}ޤ�6g�bg��gH	�~Ίua5�OM֟�,6,ų���
�#�%7�<����O��x�"�L~.Cʞ`'yXV��s��>���l�RE>	#|]�(Dn��5�6s"lv&�b��.����kl���@1���Gڎϸۻ%�Or7H��'�bA����x-o�;1B���d;��2li�C�:�k%��&��+"�P=�z!Ǒg�=�_��~QU6��_͑= ш���J|�'r�
4��f�3"{ �r�Aܷ��I�����c�ڍ��G�`�Ey�r�a�e�2�d�R�����O���c��.�2
��
��RY�[�p~��q�_���f�?����*Ɵ�c��p�d�8#�~v�����W*��ۈ�n���-�j�
#�F�s�5��tn%��c�xke�~O
�/�d�*���:v����]�ي�-=�.���K����PB�Ko�
�v\���ѐM�O'9~�)���:1.ڼ�
��<�W���6ҿ2���QѰQr0���GX����e���E�)��IE�oӝ�jAq��Q������)����\GSL���J�JWD5fbx���OM�N�OGsS@=���Y��xQc�sV����f\2�q��"1�#_����;U���/~<o{GP�iQ35Pݴ�����&���:X�IhЉ+ٶ�b��S_@�
+�+l�k�׳`�`����i����(���pFX�!�>l�?��o`���]Ç,M��l�'��q�|�}�l�Ҝ�h��M�Sg�]
�`M?f14�M<�U�]1��*6d��g�U6䏝!�Y�u��`��&�
�����\6�yc_���YYd���o?N��PL=���};N:�8�}��U�7i�7暚�x��z���jdT��0|{�&����:!vW���q�*'W��VA���Oh
y�� �����zEo/kx�f~�Mqɲ"�ԡ�3��8���~���BU8�ٷf<s�I�˷��
���[�``���T��V�jn4�/j�8��]�����*0�A�w�yK]a�����,�<!�����.e�3���}�(�+�4�ג=�]G��N��Z�)���(�����k�9�<�d����p��d��y�8�_M�I<r!�VZm���v����B���K��ʻlx�a��a�yk�Rn����D��o���t�\l���	�d�g��Ou	�H��X��=:^Φ��Vo�C}�}������Yʹ����8S�b�c<��3��u��A�:��j'�Ǧ�h@.:����=���&�Q�ok¸+���=����}�)50'f�Y�>��EMG���NȓJ��rܴ�ߴo݀�����a��@�ś��ΠcF�K��;��3���?�10��-�!	��jL>��k���ԌUC���ͽT�Y�mị��n�|٩�{~�~@�����/:�`h�O�7�YabC�������Ɇ�D�ipM`m�Ag�
 ����2l�2l�x�C;
~͍��aY�}����N/�M��j�mz�T�i��W��>��{�T?���ݞ���u<�I��@��pNm�B�Lj=O�߃5
��5|��n�7(��胅�u~1s_�؛�ǟ���*𕃘�����J,���|y;j��=��7��@�M�w��!��
�֏��/��H�?r�y��u���m�����=D������CJ�h!�>��u3>t4����ڪ��-���F�E��2B�~���<z\�px������`���j�KӢ��k_ؐ}%NC��j�!S���2Z��?����1�%AJ6(�����'*{D]:��6g�kM*Be��3[G�hG�
�v
-�nݫ9����?��i�j�n��?/26�8|����
#�B���y�k�Q�֨q���,;O�w	#�[~0��8O|75����nr�U��q�L�'+�#�g�b�ؓ�M����>�uU#
�v
\�8\��j��JJ$���=\��>�e�����ۖ�H�%� "2���h-=�E������I�6}N���	�m��#2Y��N
���dfp��mۗw�P�=�έs�uc#��'�b�z�O�LW�z�R8�v����ew{����j\��j��˺w|� ������>����rEv�J���As�j9j������oj۲Z�3���^��J��u���[q����>�z:����k�o�&��^�'?,��p]�5�i��r1�!Q��p8���0�a����5��zfx�+Ȯ��s��~�]pP/�T������xϥ14�b�mU{� ȆgӨ�Kh�-��R�A�G�E˰T6�es�/V�걇�g���M�?����
¦m'D^]x��V�C���Q��}�.x��	�_�z"[���C����	YS����	ӌ��~�C9~j0~��:U5l��<�nX]����&mC��!���j���v�96�p���m�X�OT' �bd��5`:
��� �j�k$�S�;����i����Z<���%���a^*��'������=�b�������6�Z5�`���;p#�3dHR~�2X�n־����ʴ�q��@m������7�7���5#k�@��-�Oi���'
2%ø���rj3w��t�_�n=9�E�dzў��x6���
%�'��䌈ʤȞ]���p܊�5��W�����.x���W�10GHvA�f��€������PtH�?��w`ʅg����@f�|���1(n�[[E��M�A�I���mT6٠��ᰳ{���7WX:-t�9߫�v��#�u�Slh�C,��%�=ɗC�?������SΞNy#-n�*�,��-���Jr+-9�s�17�F��/�_���
�8@�y�`j591k?޿O��(,�	�.�)CX͍5�fa(O�d�EqڻLC�	X.5��|���͝S�	�_м��N����-��Xvf5?�1��X���<��@A"X�L�ʹ��d����˫y��	��\��z/�يb�Q��)�i)Ȝ.HS��6��PR2�w�D X~�7+
�dSt�j�-�_M�!��Rx��a�L+!�؜�U�m'���У�R�����1�.���C����;ʄn����Mާ���}�Ň%&�����B��|72Y{�}�0G��>�N<$�!uEL.��14+���#���w;8O��%2�M�_����)�F(�%�p�Pl-��v�;m�������G�0�ў]z<��r�~��^��~��c�V%������/��3#�s6[���~3�P��W �0��^/3�^�� � �Z����_���z<G����5#5�2S74�"��4ɘwv���j���ݞ�~�\0M�u�C�e�sF���e�@�˕��,¶��b��|�-l8$�ۡ�b��zJ|�Sf��r�)���\8[w62����=�G��2$���8x�YȜ��ǟm.n���8�LW�x��r�pWU��u2�
JX
��l
Z�dڊӧ����E&�G,��1���~��<`�$�o���}2`3�q��2��%�(3nW���7��7Gj?Ч=S�Yp���"/�]��d"0;x츲+�
��)�aLI�����&���$�����M�x�2����E������+z{�sVc_�~�VX������ta7��3�2r�/�8�S�(�!�	���[ʿ!����!��-K}y�ʴ��ˠ���x�����}�"7>�q�ʴ�'�kj��4�o�yn��b-���dx���W�KQ٩�ό����bc��w�_��/��*��s̪�ҳ��p
Y��R��lkqU�tJ���>9(J\����zQ��s+�z3�7qns�g�j���_b�9w�����h��Ag_7�&���w���b�M��IŇ�'�1��`��:�����Nj�A!��V�,�����pԆZ3�9���d�j?��n%�b^��[�������n:�����{�<���� �$g5Hi��U��	����-�C
��}\�Z}��R����]���R��BC~�w�0\�lV�V�ا�}���kuS?W
�6�nU	�J�C1Ora}Nd�
VY��<�Q�Z/�N�C�w*D���,��s��B3�r>)��jz
|n��t |qgSa(��Im(�
U��2���?�O\߃�d���J���>P�Y!���AĜ�gm�Űi>�n@r���XH�6��b:u7+j4{+f��{O�r�@�q��L���Lʚ���g<�1L�������
п0W�PU�ö��ΧgZ�*�Lu����B��%�UN�y�k�Y����k���z
�~}��]m&�]��2E�ʵ!S0���j��B݈�������]%B��L����,CAۣ��f�3ǂ_�GO�5#�U��	��8�t�=�;�LB����08h�u�/.C�5�\q�p*ӞM���2@,��sEl�h�*��i$m�&sH�9mɬ��A�BK4���Q��v�r��{?/����^�R��5^����^.�Gsꢀt�b�,P�t�e�<E��s%:�*.\�5�Yz�d��iznԦ�x�W������q�2��4�h��9hn�Hͯ��RM������Y�gd&�)����ވ=�i 1��_���ٷ㟏��ag���
Y�w�Of��������2TYj��Q�hs�i�b�o��U8���;3>�tB�b1�Q��/�]'N��#�Q��@p��PN�&o�X�c�����4�n��U�F�8 �4
��5��t[�S���H����6�ʿB����_�k�3,�39�0���8s��1n4(���h��!@���E��_j��ـ@��yC�/��%O`�
�fwp�Þ'�F��0;sO��7�i��������.���d��>&��ѹ�f�n�/�n��췊��5�'v�%�@�t��l9�8�ml���iû��m��+(��y��/�%69E��c3.v?x��*@��Wf��	���̢0�!LH�Y���)��]�O�-�Z|�|��t�B��9��&K�����Ln�(X��#`���_�4,�����V��d�
�Zwʽ`��]�'$���b���>Q����K�=i��9F�N~�;p8�i��*�^�\�6B�� �y0��
lk�t6��;m��n�*�U&pO�4��1�jC���EV�w�3���P��5q҃ѭ*����5�CW^H(xfbZH�A��w�*�΀�z\���)n��a#��o�VdU������<MF	�@&k@���{��n�sR�UU��j?S	��E�]w
ք}F[�1XhVʰR~_��I���/`�er�_�)o�ǐbr��׿]Ȣ���#��J�}��)���#3?C��2l�r6V��\����7h��v�DkC�d�`k����Ҍ͇�*,2��~l�T62��e��b�+�&+s�Rc��h��7�)���?����-m�g���..R�0+�����}x�������L��,_2��BL�
�����=�B�F�^Ļ��[�����V2A"�����/���)�22�v��c�G�]_���8)�L��"w��	��3�R�ő�1�]_G"����VkD��'�=�K��L��/�qg�y�#/�
���ҋ��׍ͫ�џU�3{*Γ<�k���,N{͖ZxH�]y�f��?���'S����֤�	{�Oe��4��2�;�9eXj�42$�Z���F�P��ͷ�����]��u�y@^���r� Wz>隷j�P��73�z
;Len�W���-�2>�0C0�eb-�l���M��BKj����N��K]�N��f��� �nZ݆�v�Y�y`��A�����Ej*=�7�BX��h��%ީ��<��c(ɦ����N�mb���qfq(��Z�j��El�J��g��&1��)K%���N�T�A{�]�}�:��p�J�ZL�[5�g��3���{�
AuS;�y<_AA��մˍ��$T�5�^���ۼl�^Ӭ��m��ZY��� ;�O�l:�J�2;�֩Кq/v������� /���� ��sR	���]��|-C�Zk�jfY<�!�^p|%5>��'���KU>������x�?�O#5�2^<��uL��؟��_V����ـ*@e��6����
kj1+a��T�Sy����:�2�x�� �����+�<��3�j݋��5�
G�Nn!�&�'��q��F��N�*I�c�ck�
kYՙ[�:Q%O�/t�'�@������"����1$�!{�8�㸣*�i�Wm�б/��e�!B�m��������R�C�~9�s���2M��͒D���=V�	m�,�|K�ﻨ�X�@�j�:5�^3� k�𦯴���u_�w����(r�Sb׌p��i��5s2�Z����<��ҳ�,CPja�g^�D>}/��3��m���4�Y��a���t_*�Q����qU�辣o.,����A��RYA�C���|��&,Z�S���LuY�A���P�-�ZP���na\�kd'b��6��:�4c��p�rᐝ�ν���*.Q����5�\�Z�pd<;핚M�2-NJ/�j{���K�}{Tdw��QX��Dӳ)0݊OUI���1p�2�
[o�y��Y1��^֙�U5l'�j��[�fo���g7	�t�����\?��l�h��e�^��]��߿��\8:���r-�r�=�'<�a��9�J`7=Ib��(g�uXh�.R9葃���%e��0��x^�~��I���<���:Fb��O"��S�{^![u��3��`kS�1o�u�FCwl��~0����~�Ț�j�¼R�o��vGۉ�=;�ȋsl~�`k{�<�5g>�(E��Y��T�ۢŇ�S�����a�/<�
P�L�Fl�lٲ<���,���q��1}�8+���(ua��`s%>�����pRxIu��|e�XS��mF/��l��?�8����l��3-g�f-"i�6�Nl��P�<���ѐ����0o��2�l�s�O���DZN2}��.��	S�������8v�"�g��cs��d���"^�HO:���,A�2X�.v|X���e�|P�2O��Y@��OYp��5��k����N5�6��fãR�ۥ`*�����h΀��}(�e������1�}E�ʸ��f�Z�����B�	|k����0�Kˀ�wLz͖��!�8V�kr=S�N˵K:.Q�W�PDh�`�`�\�m���kӧ��)�m<��Od��E���u?�:[�9™twQ�Z���c����^���s�~<����~cc���%ra(��7�	"�hWgB��I�eP[hC1d
��HYu_����]�)�E�GB[�~����oQg[����G��<���v�7�TT��G �M%�O�>��8��}���>;m$�[�9�8��(9~���ު1��]ꚍ�+Ĺn�������F̘M�A�ӏ4�0&G��!�u�SK3,��C6��6�
Ƴg
k���	+�[7����(�T;��Ն5�*^�ʨ�K6����ڇ{���̐0P���S �~��gn*q^բ�l�m�������p��M�f��F���j����{;$^�AP�x�C�<?��&��`��g��Вg9��n�&��&��g"Jg��~�Nk5�<�������F�
��2Uz�I}�	0) ���gv������U�B�7�E�xԐ
�E���Ҥ�yK��oמxA��<�#Ӿϙ���pp�C����y��U`�-Rl��G��G;�B`�c�_�})�v�C����4�w��I�N7���u"S�ߗ2����
jӧO惌�pfo��y
��W�����;�U�Df�?�� �@�A�:̹]���&S�}R�1cC\�C�A�v_�ԅlW6Oz�7**�3o'����Ÿ�Li��*j�VjN��qN��~����#�
ϡl�t�b6n�2����WI���S��N{;�6���B�1�vc�s��x&���rT�6��6K��6��`�~?����xv[���@T�W�`�E"��h��=֗���7���˱�^V�c����
����*�b��k���KV�� ,s�
{a=��i��׮�@
�0�Jmɮ��G����Gm��Q7`|_m����[�Ɯ�R��k����F9���h��%z�'���}en��اZ����ϣF:~�Uk%�Y�>���̏���^bm>���~�缮g�B���\A�7,p�=�Z�o�e�����u��C���Q�}Y�l�֙�����߽�ōpEm{�����v}3�{�w�ɮ�T�?�V��燁�˚��A��ٽX�"d�	�R��mK���_kk�ɕ���᪞��3�y�ݛYC;j���o��H??� U�*���4���Jxp� ��?�B=�п>�&վ������G���G��E`��nk�=2�����o�kz����jS&�n{�ٌU��b!�7�mW��s�4q��+��Ml���"S����oG�h�!�c/����ٖ��ow�_�Y����3aH�T���lS�o�g^�O��i`�Ό����忻G���s�2x�j�g���F:Xd��X(.�J���<���WV�Վ��$��Dp�(�y9֡2����q�K���/�w���j�f����a�Z�j���ϗ�X�o|��8�X�g�ǟ�a0�w�u�)D�҉�AJٟ`��~�X�Xv�?�2�X#�QW���A��iy9�
�Նu�ĬwՇ]�7��^�
_�/��m�($�i�kq�َ�����q�6���E�c���
����:D��Z:>���ՆE�ѫZ:)����桨M��ٕL��g�m@�ل`{�Jk��^��F�ү}nAP4���<�
s�peA߶��-AFU�j�-�
��g?9D�n�f<��ڜ[d���ߑ]����vIߏK��J�^��G�=�L��������)[g��e�4�\�^}����vאoc�[vb�z���ֳ��J�|�9�*�
��}�9�Z��b��A63�ܽ���|�-�4ՃV��X��K1�e���P@-��(n}��A��k���>��2�ç�޿�z�z$�+�kq���y�)��grzw�'-�P,��;��oe
%��Lid`�<��b��T�dڊ~�z�s*������J_��œ.gqi0)���!z9>�%��^�pc7<�B��Jމ��4�+VV�;�{<��e�d�}�+��n,�05l�u'}	k���ş�/M�r>�l ���Ϥ��`'*h����7ug`�~�[�d�D��^�UF�DMY��E�̛�y�N�;���f�8'�N����X.!ŕ����II2|�k��OY
R#z��?O~��]�P�9d��Rm��]��AJ��m"�^uϟ_���1�N.��މy�]�;�X�y��
��V���6}�w��-�ҁo��+ˤ�L�S\��3�/����BV���1�x�W-'�n��Βt�J�M��F�^#�z|���Ax��5u-꓍�֦�H�|Sp��3�z�6C�5-~1�;��m��串���b�2�Y$J�av[~ͫz��a�ػ$d_��an>|���y8`~�6�l�[��Ճa:_-+��rG��{)D�<WAc�;YY���~�n/S�,ԯa���S�Q��lp�����\2�?�mJ\�Xm�q��_�⮚�%���O'� V�|J���� �0�a�����k��Jm��pcֵϡ׶s0���nh�a����X���5���s6�����]+�;-�Ń���BS��`�-����q���
u���n�a����j���c��R�O��G��}�w���!vclx����=l�v���յ�'��
���{|��l���-���k��`��j��ü��1̟��\�STυ{������kf)����~�A�lnyYz��@��g._��\�e����Y�4��J�K�W�:�탮°�y2y9�$U�
��y����k�F�,�n�D ]���9�ؠR��PO*8�'}o��<�л���Cɰ�$XQ`��P�T��u*-�����~�)eg��l�=̤ۓuVJ'�{e��5���Χ}�{�e]�G�M��۵ӆ˱�b6m�T�uɃ��ad>ĩ30�����-ֳ�����}P\�>)��>K���Z��F�Q�%�A.��2U8R�^�ߕ�p�|�ȩ�&��n�f����:�� ���ܕYF.��ɍˬ>�b��]��z�[p䜺��A(�"��?�XΠ/y�o�:
>�γ�M�H&c�����ߐUR�T�V;��+�j��+;V��2٠��2&��ZMR��}�4�v�e���̰J�z�s��oϐ��P	*��`f�Ő�d#�f2�z���ȼYE�l����=�u��U�pD�'Ce��}sej�g�"C�>��N�^���I�`��s X�:�n>v�2ʴ&�5��5�y)���1�U�{VaC�P�N$R@-A������|=s#�ؐ�9qxY�*�N�b�gr� �42h����yR�ɔ�5X�Y�8���[/2��=�H��
�tt�k)�Nc`��e6����O�nW�
��d�Z�9��
^�հ�g��[�nv�w
[D�glJ�V8�j���VC������2)�0����3�����>yCbyGe�B��_*t�|�m{�=�g���Kh]�D':���:B�O��
V%����\�
Ak%bP��P�s�������(T��f$I�ʮ4���*e(��O��R�DI���0�+���ȑ22��d��=�Z_��;�j٩*�u�����u�ӕY�ϸφŔ�z�ǘ�lґm��xĕ�*�$���
�s�\i_���M����Z� w�c�Y�������ts�����V�ͳ�z�j�Dz^�g%��sY^4L�����Y\�?��B��^CkĶlM��Gdޛ���W�������L��N;S�K�P!�� _����͞�Y�U�2��ȕ`�(|^V����Uu����#-�쁄Y����"E��K�u�9��n���)$�~v#O�V<G��π��B{�d��טq֝k&�V�|������ޘ/�C��<��Lr�.:<Y.�C y�2n��fG�b4Rj��t[������N:��d��9@�`ݩ�W1p��|Ȕɳj��ó���*�h/�/��N
�t�c�f{�;1�"�s+-{���r���	��Q�r�~<���ZTq.X^�t�݌�궆�I�./i��;���{�-�쯒m+�)?���%u� ^\��I��9�؛�!��l�Ô{
�(+&�7�w4h��ߦ_��jl�d!��p�݂H��đ�	��[5��Nۨ�V�R-�h�����)%��R�m��<)'��c���.g������4�C�{z���vk&{�`�+�lA���`t����A���d<�r@��A���U�f��yb�s�D��}*�������A�95��������솂	rz�N�e���pgI<��dB����`���}2����d?��"K�MU	<���>���Z�A�B g��x��{��\0���v�ɩ���eR=h���BqFe��`(�e���p�3y���%����!�b�Q��o��*+���jg����|���E���N�Ɗ3� ��~_0OX�*vo^��Я%��L@*�/iZ�a'�U*���Y�����:<3;)�
4cQ6�TY�=_���!WP,�XO:,E^YE����E{c���h�~pچ��
�f���)dӖj�%U�3�ٮS���nT��st������J�H��?׽]�Q
k��!'3�rb>���K���c�e��~��3g'���9���uM��n7�ȴ�z�޻��<��UkK���1���6���RFVϴ��Lw5V�}j+��薰г�#;�r0�/eė�2��=��lu�L�_�{����ki���s{����hL����y4�8�\��5n�ӡ(b �����IY��;Z�HS��g��4�V˵�ܔ�]��q�Ir!�F�ݚ�\l���*����-���y��5��W�ͅ�eb֧�_���G4��û���u��,O��V;>lÑ��F�Z��i� �F/�c{]
�S��.��.��SX�Dz>�S9�B�J�8�����xN��+]�,9��a�A��6�KH��f�K��Jz���|��N���s����b
u�D�*�D?b�G*���*}A��h���x�V
(�Ĝ����@��s�oj0�4����,��_�0Z
0����X��k��f�8�,'�K�f~�L!p����M�5}t�g���2�'Z�t� 0h�I���s���g�l�+U��0�4�Ke��ըU�e�3���峁'v�3��t@��5���$�B�uSN�?��>YF�`>��X� �e��ܚyR^j���ي��r
�@�}X-�$u��_�@�ug8���y�"��b� P��X�L�gg�'|&@6�߼��U��B������{'�3�N��+d�b��S�A�����>���`�R-e�Rq�lp���gV,84籧�?6��ܫy��Jc@6��%l$=K+OYni�C��3WﷃՕ��i1��C3�E&8� �!��Г����.�l�?�+��*��?������l��<�IG�S�}��l
�[�T�wC��gBU��[�UX���=�&{Ԇf����{�n֜��.a-d�V�a���%Onq���(�k۳�7���#�vẁ]�l�s��{��q�4�����b��ރ��Z�2�ڵ ��V�ʞ��Z0���tB�m��QM{Cn��]My���``Ҟ,�{�|�r-W+
<OR�=��!]�T�3C�lv�foȬ��z�:���K��C��n�3l��r��O$�s��BIAPf���L�y�i���ٓ/�ng�ʚ�|�~���*�FKϑA��ؐ&۶�=��؇?nwV�F���ც�y_Q�gZ�,�oIF��਷�Њ�����c��ȉ]d��+P�.��8���i�3	��JP{Add����������Y�$dIٖXs$��P�9���&�[չu6�*�2�Jr*^U'��2�<�D��׳Vߓ�G��^��@�LL�7f	Gc1| ;E/!�w�4�1k�j}�Rւ���A��̮p!�k�0��G�~/}��f�-�H0����6yV������gc���6'���G	c�9G�3��ޒ�-.;-�a��u�`*���V#ѻ�r��և���׈��p`�+�@P�.���a�������9���e�W���e�������5غ��mCa��Ƚ(>)
U��)��>����U;R.�9遭��]B�oHx�Č��AwJ,���M����?ǟ.���8ķ'��i	�_�R2s��r��af�F�����������W�D��mAu��[&�ɦ�Sz��`���M�V6��5�?~v]YPPF*�Y��Τ -,B�ir(qv�o�O�B�̵��th!y��Hh�JFdc0�ty���^��p,L�#H~��a�2D-Vʪ�m�(��4�Vb�)�V��{{Q�T*]̺D�{K���qɗhF{{�[M9�\��Ճ��ϖ>y�M��\�
F��XJP$Y gJ?{��Z<#m���Pqef�P��0�pO�&��H���e�8��[&�%tC�>��g�00)�N+)���&$d�݂7�>��/4������V�
(4�:5<z�z�1���ÇPz4�ά�5��,�
�>5!)/�f����5YBxղ1x�r��B;<X;�P��7��2��Q�?q_�[���6�r�3L=A^[p���V�>�ƀ�����w�d{O ���gk_����5���U��uQ���2�j�$���g��� w]Kǽ���C|�w��|-���P��ݟ;@��܌p/�����
}7m6���6@n���}��%������9h/
{�@
�%�\�Cu�B�a�j�o��6���$�l>�`�m�"Z�c0�̠�-�.���ޟ���k�ϱ�����2��<�FV���8����L%��w��!횷E��eJ�j#��͞��U.�ϺۛT�7�{(�p�o�N:�[�Y�#�c�_(�:��� 9�=S�"��0��U�,b�O��
�9����CH�/�L�
g�Cl�}�c��n�L�.���4�R�lfk��W^`N�N����ˌ��#8� �¥=�5���2n�Ԥ���l(�FF��K��b'0%�y�#�﷖?2�#)���u�a�/	!��-��ϙ<ej�j?�� ���ϟ�D�/q~�|Y�~��0&@����2�P|O�y��Q��yZ�j�m�R\N]^�Z2y�w*L��^"|�H>�Һ<~��܍A�_g���p�)�!���-P��ǭ�:� �*�2���r�"���	6NT
 �8B�Nw?��~/��3_��A'����‡֥K�|-�U���F�>�f|6�І9:��m�A��׾�U�f7J�n�����d��%�B�p]���9���a�e7g`�k۞Y��u(2�U&��؝JY(eC͞I|�rRn��jI�����o ���,V��1���њ�v�ԛ�i1��X+z6���=o���ð��؞�.�v.:���{IrH\��K�_XA�
A��E�	a�OZ�,f�㽰�H�^Dk�n�j?����|;n���W����I-��>@� a�j>����Z��K�G������J�������+��%ݏg���B=�e����W��;U	�^�~|��?���^�l�Q' ����q���o��{ێ5�=���ז.�Z�,�93�\�1���ȶ�X�K��PY/��A1ocΰ������Z�[[qO��G���f䚦@7�lx�=��-PUzo0�����>��k�x�c=�}�#�Z=~�z�g�˽�ݛ��H�)2�2���$ڛi��F
�׺��lr��^o�
����UKC\Mu�P�[�k���K��%ʕ����W9V��2��Z��~7�6Ү�r�	�����
k�{���{� �Cp^-��)V���a�V����Z�����DL9��n�!��e�p2��E��Td���\,L�Ȃg��|�S���3ڸ)�dF����a�hCKfF���r3{�`6#Tu�>n��5�D�0�����T+�O}�в��r�A���nF�I�a���u�FN�>�j��i�R�L�.������;�����P� bS[�;�̀�,�\�o��J��^��Fh����m5�0�l��v\�ۙ^i?��pf�b�*fH�%-����f�5����8a�
m�R�p�N1T��� �ܬS�BL6����4�n<�������^gGX�^2�
�kz�v���*
`����??��d��Ӝ�;���e�A�Y�_�Y��*g�� 0y�v���~,�J����|rܟo��ؿ��ޏ���8ɕ��<~��c�Q�#��n�^ʐ5N�|���C}��Z��ٿ�=�ҵ��]��vl�Y:{���b�vF=Ą��_m��_|�t�LHM�%��������*��f�zy
�˓���3.��+ٙ~��҆��ti!'O_H����/C�`��6W�w�g�I�pڦ ņ�R�l,�
|eK�\�i�cE����O���Z�nכ��m�*�j2ĥ`
V��۴�-��0!X��T*�/,��'��'��+�y0M�8�lEJL�?�Ƿ��큗�x}������ak��
��v~*K�i�a6y�,S�ܺ�0=>q�iX�����}"J�V�O06��Ac��EY�`q����Q�����d?����I����$��pO�[���0S;��]`����`=_����`�/#��ZN�iq�<�����g�ݐ7����@�
�����<˧���dpSZ�xV�w�\C��ߖ����eeN��,X~���q
��=�,"��1Uɚ�Z+턎{�ol��2O˓����mŚW��LS��`@�ٵ��jh%Cg])�<���m�u�v,��[2��¾�X���d�
��Kep�ނm����~�F�^�>����,
�g�����A�B�bo`�Q�5|��HT�c�nǵ�]�g�+]O?�+Qϕ�~��=u�v�~k�~���9�)MNL���4��1,��o��>-��|x�Dk4�L��ed��������2�
�
�r����֨z ����E��%�E"�ȡK��Y�;���p���W���aVO�i]�o�B�7@��3�3�-z/ou
�?�4��p1[!�p���%�c�(؎{����w��"�?u߇���&���˅��l�oO�^���p8����"�j{>�����T&�z�,�E�@�
	����zCA�V$�Z#��E=���+S�00�w�0��.�w�D��f@NOl;��YȄ���cR\]fl.؞k�{�>�:��f�.Vr4�2����~h`���>���޸�����%�|�7}�ꫩ
b'K��|���ꁂ�'��t�z[����n�����I=2l=�\�����x��F�&�-�\��?�����a>4% �
��~�g�QE�5M�~i�Rg0a~9�3��o�ϑ:y�ߗn̻.B��=��Pi
�)S�IZ��J0�ݾC��ل�\��"�uc=��y+���A�����A8��~�ے[W��4����X}رː��*���Ā�,4�*�yy�ǘH,��`O6	뺒U	;�n�evEգ]���R��\���/�Q�Xp�{�v��]A[�^�0�(pܝT�'�"�6;#�E��@�&u���<;�RN��>Cg��
��F�U��v��:2B������(f3k���¡��}��/?��O}e~����l��'������~Om��
H��GsUĬ_���Th}���?�jI�x�s[�
Z?�C	݌�rdUN�6���`�B�S2ۑ<�{I{8�b*���� �v���Iq[�
���鯲�{�>��f����#��Y-y�?]��yʳa�����UI�a[צ�Y,|z&&�0_��+C��_�V��g`��=��T量��Y:�Ps�F��S�S�TںZ�ڷ7�V�	�^ݓ�+�_>KUxX�c���9,�lGotO�d��LY�q�wݘ��VB��{?R��۷@I߻qn�A��֦8kk�@�xh+.Z�u���׋�xL��$3U��/���W��ŭ��Z�����6���#޾_�ShǾQ�J�4�Wq�@����o�P���Gf��ZJ>�Q�~�l���qO6**�(�,�^�,��݈x�,n�u�p[D�e���G{�j�����U��|�_t,W��k���5\BM ������h��P1���g��:
��:(��`�����~�P�%^G��k�U#����*'���Q`���p�h�t�z1��軸�B\��3u�����04��s`e����w(梸���J�ؐ���'ﴪ�:8����^�an�VO3�Y��<�2HqO�[;F�4��9߮+���m�>�v2���&�O^'r��O�<4oB���n�?z��co~��؏4E�cr�|Ƿ����\,75
E�x=��>>�nװx��ೞ-+����/wdj���`���ňj��랩|4��Vbe��f�
lG���fAa�=���lҳ*!��0~|�Fl�M�Z�O@J?�����Ӂ�snY�Cd�;�R#�||�?‚Hk]���o�o���,+��o��_��u���;�Vy�۫��R����,��N\�xw���Ϭ�2�<` ��m�"����
�u����N�V�!���Fr�,����~{o�"�,\�>�,@$����� ��!�K����ϑ�������%χwacP�y�$/�Sc�6í�3�y�{�79��=�}�l� �,#�*���{�ˁ�
�K�ǻ�1�����w���
x�^n��;;��v�n�3f�(�7ݣ�b������R>	ɍ!��[�ƈ�
����K���&�g}���6GO�]�v��s��E����+Y����¹�}ب��쓒���󘪘Ɍdʃ
�M=[�R�V8Q�̶{�÷���TG+�-��Sڅ^�z h�Y'{{Mx\[P�����}� ���z!(Dv��Z��=G;�`BM+���Ӱ5��R�5y(-�
��ɔLR��a?��e�i2
t�B�9	�'�%,���kԪ�H����Bz�dW��&�\�P�Ǩd�+�@/fZ�<��(
}���A3o�=!���l��nWdtzw�fU�wh��!Kń\j�JHZNx��6���.�C��>�0�0�c]��˴����N�o{'����m�F���\2)ak���o�S��2�~x����Icq�^�š>�7��u�Q�����qh��@}g�.+>�>��H��WR"�oc3D�_2�F0�Y�7���%jb�
�٫i�L�3��_���T�O-Z�䐉�J�&��!�f-d5U��+�U���vbq���3?�b!�%�����T#
B|k��|+y�fKB��z�j�e>>������6!���{��Xq��ee��?�y������<WC��|Z���4�7jw[�Y��A��<����̃u�{X�s3�S/Ɉ+OnTc]�‚^��,ՉD�g��QNx�5��h�WI��^0�5���J
`��Q��ju_�p�^�]�)�\�ۙ��C84��m�Z�\@�Ł�6�߾/�v�X��b ��A㼮d��jk�n6p���/X�+�Kk(�b��m+)��5/Q�(�#Ѧ�қ�e�j{��O�Js|��6��π_����aul�W��8Ӻ#�1�m�0�E&e�gs�.k�������Y��LŜ���sߓ�`����&�œ&����8��?.P-�,h�j�Xr���:�=�kd�|�o�?��~����XX=��c��X�V}�s�P:��+��t8P.
J-%V�A��M�q��I�=�a���CY���q\��χY�q��ϩ2�dVx���6S���l(h�?zop�w���u,ІM�%�r��Ώ�¡���������Y3�A���?��7]�!S���OQ���'�pn�%���UY�ʿ���82���rY�]�?����������7̬�������45QA��߭r�U�c�l�������R�صZ�_��׳Ք��w��~����l>v�e�f�͠��,4�v;�,{Ԉ�e�mG-�l��l������W�g���Q|i-�T֭gϕ�)�-4���[2b��*�*����<60h�/�!��횭1l��UH5�A�S�z�s������c��>~��[�>��.�����C�ϐ�zf`�n �[ﹽ���mme�擉�Sa�b����F�	b
k���>dp��K��^�כr�?���n8�$aK,hwi�'��	�ߔ�{��ﷅ����|���Ҳ���^�}zZl�h[�p\�Ű�	�����򢾂�j�����g�-A�!����'Z�[�~�i��q� ꝃ)����SqF^t���CE�Z�Z94�i���i
��KT#����Ĵ��l��u��P���*�����{x�w#!������h��M��8�W�%0��X�������~�IiB����ڠ�;�{�� WN�gSx-:=m$���L{���e(E�3�������y��敟�yr��u��h#T��gi����5r=�Z`c�,��&�JaCӲx�%*�­�ՠ�Q���cPa�ra/�|wZ�@�v3k�A�"h��n �i�s>�����	u`
�*GߊЃ�GR��0'���Ny���@��v:+6��"3�z����X�!�9�]��1��[���=����gaӈ?aOT+���$�9^�ia'��b�οp%a���ݵ6�m��R\�Vboj�a��/��D������9Z��-�.����$/�@�\L��~}�_�SP���:o{<�}�Ļ������-Bm�0H̖��h-������6�$X�٘��Ki��FM�6��M�C���;&_<�W{����cF�?���.�w�!����I]�/ᥛ��-OB�"@�a�#�@-��7��q�J�����g�߯&Nc���UX��������o���읒<2'�<���[rPS���OAFH41��61R�q�(��O�Qpph�'�5I&���N�+��nkV��p�`҄�� Ҵ��CV�JPNHD~�ZӤ�p�E7�ɗY�I؝�3���Ey�䘆Z������q,��IS�g�r>�X�K4�f�d͛5Zf��kW�s�d��g�%{�>q3n���B�r�9�Z�ϠI�x���b�p�ed��@�s$v�NEEr��\9�,�r��ASɯ-�=l;2{:�pt���o}xbb]-cH�A��'k�_������'�d7�-�
�@�i��Y�
!a��6���2:
�@V+��#���n?�9Z@��Z�I�Y�5�m��z������;}�|�]����ܵA���F�p��ڄ&R`uP��﯋H쉯����h&�dʕlXd{���`�V��GY�ex#f����5�v&(B�]�8���`'{�0  �8�\X����6(y�-�
w��΢�`�n���<�i4S��`E���u�a!P�$����|�Al+Ȕ�q���Ub�i!@������z��iAo)XV��jC���]=����pb�i���2c��'h�|�#J�MA[y���y���uZL�@ЗyN¬�<<w�_
yn�<�3$ؑ3í�t2ޑ�S{���;������\+�c:}�wq/�s��.��eh���_W㧺3�H��h��dj-&%��%ŹC�"D�d�rM/c���d��%�`XZ��dH�O�x��Zk~6��ގ�N�L�Iy�r��z�){���g�s%<�'��YS�%�7�u���Sr���D�)����:�`J�lE��R�=���R{�DH�PI��3�Ϛ�� LpUH��e���(qfݰ��`~��5rNY>�m�`�E�5�ٚvT=��V�V�:�?��;��>�j�G�>��;(�=�ui��0�]��~�IH�mz�a!S�\�e#>�J�uM$Q��Z��RĽҚv�c�b�EP�r,�i�!�7�)�r஁�n��鏾/
�@`P�j�2y�G��d"�W�6E�=�f0�i`�5�K�z�7c3�[Gq (=M���w	��n&U����Pư�Һj��?mb�v�rPc�MoY��'��j����?�6��P�X^�fx�x��(v���B�c��~:���H��U��;���K�<�|���g����ܻ���@|U)���{�|B�g��%Z�����2��Yo�.��X���N
A�@A���OY�-՘���d,ذ��|eO�A��.,Tk-��g�5�UB{k*�dV+,7ثB4��T��[�萲�'��;���RE٬�l���y
��[�9�]uw�O�aj��j�T�ʋ ��`+��%M�o�����Wr��d��<]�l�p��G쯽0�t�x� Z�£͠��I�-�����@���mt�U33L]\�	��w����|��'<�Z�0��$��ЬXaei��a<�TI5y���q`C�3��Lq��3����+;���N|� q�$J`U�%2��)'�ye�{�l8�
ң��|$4-��Z9�
k�^�����ڰD��a�sl�P��8Tx�uXMy��eA,6�ة�k_BN#q���9f!�DLY�$2ڡ(�,�4\G
���ɭcԠ:@l��5��XK�e����PJ����@)^<���:��fl��հ�?G1���*H��dY�e
+��'���I[漅��KoN�ʅ2J�#b��
�g��J.�����	�P�ꑾ���5up�A�`�Mr���Niͱ���9�3���J���g\ӭVJr�fe�$��߀��Thr�Ǣ7�M�'d�c�za���!�K-�k�Ss���+�dA��݁�c����y��ez�z%可�#�bSMֹ��䩻��%��G@t����'>�>ϓ��"�5v��c#[1Q3�͓�x|\SuX2��/�7��\��{Z��-�������}P�Е@��P0���c��3@�XlBh�����N��j>�	X�)�dmb"�MR�>���lv�]ڋ-����D����8�Պyf:Pb�ͻ����*}����s3&�C�[�6�My������ޣ�Yr��|e<��:����o�7��[o؋V4�ʎ���Yb9k�D�@-��(f2��BpK���c���3*s��txv6�f�t��-ò�1�'�8�'����6���Z�������J�����?�����-�TR���)$�e��Tiڷ�ce\��I>Mٍ��P�ݚJl�X���s��ꗯ�P�a�r�N��;�ٽ"��]��`��	���@:�wk����Y7�$��,�3D��}�B=��,B����O�V�T���=��l�b����,�^��vʊ�0[9�X.+@m���)�fTOn�6#j���~~}n��+��[��w[�:��+��\���B�5XILyҡ�C����mJ��7H��zH���ckf����j,W���j	@�_��\m��[�I����NQ� �?
81������(d�W]UT�a���슘l��9~��) 1_�Na^�x�5�4T�
�u�����5�Z@�t�-���2��革vc}�c��f*��^��LvOՋ��}I���A�d���Q5ٷڶ�d(��63@��Ճ���^+�@�5u�2�*&n�>^gK���j ��8m�}P��!A�C�V��X�j5f���p�`�����uRqt�}�6�dp��f�"�9��0asf��ɬZ��4U˾���<���hS����U�{�A��`s�`����Z2���*,�{x;{P��j�Bh͞��Z"x�s�'2��O[_
���+1����$���b�3�YA�>)I1��y،�O��y�ө�{�[�r*Pumص���ʰ�V7�|�Y!lxi1��vm�ò.V#n�v���9�7���x�2�]����c��˞��#�n�t��r�hy��d�Z��Ʀ�s[-w��?��si�WC��@��<G.�[���w-�׵\�yf���^��V9=�}@����R�*�[�o�+:6������:?�s�K0����]��@�yUXۻT*vU�����-<
U��*�<��J4Ʌj���yP��י�j�H��3�uWI���=��ͮ's��zr�$RTrP�&�����{��4t�VS�x��%C	AR�6p�L�΄�df�z�=5EO����K�$�O����
��Q�ZY�ޟ�f�A�?]�K���:{B��U���z�P)�BU.�1�!�K~N�j/[7����`�F�%c���Uߞ���l��ٔ%�T��$���t��
u��5?��|]T)u�ho��?��9~�Z�F���E����tz�M�\�ۻ�a�u�o�?qRe��׻p�C��;�NoP|f;�B���g���p:3�잕P��p��;���-$��WK����r�g#,��r�V��f���ŬB`������3��5���n�x^���|=$,a�F8�8`��q��3Z5ې�������O�x���!ŕkv�����l����6�e��0=�7��K�������[�-z�j��Fܠ
m56���L��v�3�gI4뮬}a4�Ӫ�򍙊`�+��[�5ε�����y�h\;Y�.C#�oi&{(�(hq^��Fh���#�KT�XV��DP,7����ڏ)^���h����co�5�)���pf��`��m���s���k��.���Ƞ�����Ԭ����v�.=WL��z1��%Y΃D��b��)�p<�}8ӟO�'�]��]���:�xށE�ű�F� WX3_b8/֞�~qM�����KU�^i#E^2��>��G��5��l�a[�\_���^jGq���Z�@��%�EϩL����z\&R�
�{�{'��d�Zrԝ�IA0+t�B�gj�p�DZ�i��ji}�gv�V�Rh��WV��+jx�H�m?�х�&��X��f�<�NC
�A�)�db���ύ��=���:WA"�}�����x�`F"���(�4����p@~���/��KH��%�m 0���/1�5���H
�o0�d��
Wg�Mi�a�"_����W\�������#���
e
|�e�Z�/d�s��^�J�$�����F]��W�l��Z��Y�{�W�2��{U�.&Xo闁��˛R����呤����,SR��S�x�1�QS$��>���/��xc[m$�#�V�����BI=s3y������xɃm0�ɥ9$��j,�(6��㷋y���P&�����`+~J��\�i���_4Qb9��9;,�eh�t�֚i��C7T�l�64`�+r�/������҇���lg!%�Y�T�I
�@H�����n�/����fŴ
/�\9\��*X8�ob`���� �1 0�6	����Eye>�]i��GL|J��4b�2l�*P\��U5`^�/�����?,�-���L���
d��W1F�	:�IyR��9�))�!�]\�
N��j�Ν����G�V<�"���<�\6���k~nV�jТ�z�{y'��f�ژ�8�`\7%
�������ɪ��i�`�g��d?J����y�K�S��̽�$�#3��RK����!�Z� �b�]�X�=�c	,���6��g�F	�7�;�EH�+��P>��l2ֻ�\o�}����Cq���_>8���mM�����|��q��7��Li������!�ۤ��x��5�[0���Տ!Jhv�L{�����,�춵g�
%�DH�3�3z�jN���� ��,P9t�͔J��8�I�&řq�
;|�k��*m��F8>��y��@dg��]]j��}��]9��X	�<N��q]��z�CŰ$���D�S�0lտ�k�]�㣹��?v3�5�nV���"��ލ1��:�|굑���6z��cЀ�8
�aǣa���*���U�D�J��&LZodz���a���]��	k���ݻelm��۟tȶ�;��=o�,n0�?�vtL=2^��4��RQ���)>$�S��g^�
{b�b��CAi�C������SŒ�YTS���-���{v2�k{�H����Aɿ��2Bmђ�zY��	@%Id�=�7I5'[�z��ߪb����v���_���O�(���l#��hQ��W����f�ʳ��}��%"��+���C�r]p���C��e�M^�xF�@��s������@͘��u�C���P�bCAb��U� �.�?$�v<W)M$-�U��b�n���3L��Ǐ�Q�T,��g���հ}γ?�u�퀀��;M��t�tv'��O��j���VQo�ol�bl�$�:z�F{
�����&uSל��a�(遬L%�\�FR����*�X�\b-��2���iO�C�:
��S_��� F���b䠫��qȃ�eA��9j��M	n��s(���[�s��ؗ]qg���}72��7�O���	�ծo�s�
�vj�@k�cii��8��Nko��"��-m��p��u���V��Z�E~����x��@�Z����Z�9H5/�N�6َ}h�`j��u��s�*�l�J4�[�YpS�l��;j��
��#E�Ԭ^��_K���^xA��N�����J}�
T�v=��5��>c]�D�� Ov&����㸣o�u�v0;	9P��4��1�;���|0�Y,L�¾�ѿs�����UBVO۬}�>MثZ$bd��}P�-�E��M5��r��z�CF�E테�|�6��X��ޞ��UpC?�Uf9Tл�}!x��A�
,���&�8î�Kp.ܰ͋��9�|�^�6{<�@�b%<s�Y�f^H�p ��>�����8]���sC��v���[�����03/L1&Qr܃}q��B�[=�j�|O�nĸ+ճ�~$�魇��x������6����k�ͯNn �Zk����i2����3p�}�S����т��_�e�,4�ɞdžg|��}
���}�[�-t��n�R�y���H$&f�g&XI�l�s2�q�� �p?ss�X��WR���a;�t�̫�Z�eǤ���ちȸ}XX����X�t�%�X�L��ǫA�{F�%��e<��,1��$~�6�����Dr�-�S���j<p����%$��
��>����ظR���D�3�z�e��`�]ͽˆ�7�w��=7�<�t�âRf5A��yR��҂$��\"�S
���/����4�40�Ȍ���-������B�j�I����}&=Bx���͎�LKl��$��.8t����m��P�B�=ˡ�\�gս�>NB���U�^��+74������ȓ���fP��l��k�s
��SY����bL�n���ϝ̞�`_u}q���\+�������ݐ�x��+��nEQ	�,y蹕��O�V��b��^��;g�Z;�L��J�P����kZ�����E�!���<9��N�&4Z��ͬ-��b��*`S*�	�\2��C堍@ŧ��Tg�_2�Yj{0G��V1����
�F�rJ�^h)F��B��&�ռ��G~��$���&��p
�gf%��TRp��Cڙ���m���-�2(�[>��Z h�>U�{3��<�R���vD�}<�iþ�'�+*<LeE:*-|��>����vB`:�!ywWj��=E�gs�ܰ�q� -w���8s O����u�P(k����.9�p��	��ګ������.�l��_[�(��dǡ�6
n����3�ˣHӠ6:,HH�a"�S����W6��q���bb,c`Ѓ���=��#�
�>_e�/y4���L����dΪ2B)
p���l�'+�=����қjX�P�����r�q�����5j��g+�t�,db�u�K��d-�G7OSo��IR3.��R�N�_G��{�觻�\��bxE6��Rw�E�.��P��!�!�=M�?���^�	e���=�
;F��+��T-��l�n��bq ���9%���_.SM�R�:{5��*̣)s���xj����;K������JP���ށ$l��I��vW�rn���d ,g��Gs�X�`�����Y�w�N��6}h��)��<�e2�qЕEx��B>�}i��_�yH�UH�ɯ��0>��'��`O�/�#u���U�������C���L�@�??��O�69֌��g��3-'"��v���Ogtf6��&s�{)���
�ij~��v�Ӣ�|��>���5Ђ�mݧ�p�<�݇{y<��!)�#IrR$�*�%iv�8��
�@Q"�9���l�7�kV�� 
U��
���N�հeb�-��7��V�C�����:7Vz��#�.ip�ާsx�9��EY� `P@���9��Q���q��͘�
*-�)��6��q)��!�k�qn.T��\v���
��0�pk	:�^ީֻ��*���ad��
d�;��$�z[��k�ܩ�3V��~[�P�s*.�}��g�Yɡ���/���O�$Sh��=X�:uV5)������iʦA��5V5����à+ﰶ�w��v���a����us[�ku�~���v7�u*^7R
�y/.n�����d!�e�Eg����͘Ȏ�i>��rh6U밊�������Q��K�s|Ž�j�]{}
ҋ���j�E���=
O�Bi9>�=��
�t��u�:��e�ky��W��3�H@�nj'�9��u`=՝	�v.$������l<�V�^W���f�hU��0�e�`��t�'�n�4wԜ�L�H(
�{g��؏��	�򕩫�<�ev������/-���?vd<u]>SVg��K^M�/s��qmd<g��v�?z���xg�OA�0{����u�P)� ����a7���9������~d��)/�K�,���-���f.��΅�B�_e�kO�!��"?N� V�0J�p�n}r�4��a��^l����X�i�����	]�:�X(g�u�ޣ�2��3m�KP�]S5��Y�	y�D�p$*�R9�!c���~�-0우�r``�LÞ{(0�۫��5x��S`���|8b 7�
�n��N��vPnj�=�5�S	�Ci�������J5�2؛��DWO|
pW�fg��TƓ|&�<�`s��xӭϴAF��_u��{Yd8��'T�	�<�������������q�_�5�k��Lz����R�04'���"_mߞ�-F���|a<���F�F� A�aJ���`1̦�ꙗV4pX?Y�*�\�o�/ۦ�=�m{ر-D�/^��DW�$�=X��?uL��j@m'Rk�����+��_0s��k�2��3Bh���N�4�v�3$�7?›��_I�ʀ��CY(A���#���㵤`��<,H33��@_w�p��h;��%���l���i+�46(�N5���[��Q%��y6	`sm.�K����V��q�K�rm�ZD�Tt������n�POكՎM�rf
��E���5M
�A�d�7����(��
ez�j(f�C�9&��p�us#�QL>6�fVL����o����k�.�S	��:#�����R��v�e�%m(5���P(��q��g@v6i�Z�!3
����Ȕ�a���($U�&�i���b���Z��	�Iq6H�
��P��Zf���~�K=�#��#�j����'�>��|-f��c��l��u�� ����:��46�[�L�>e��`R8��X	v��~}���-Ț�$�c��?�	 /}b�	��
�2h���I��B��m��x�Mlaš�{[k��r~��@���I<�[(q&#$N�L�T#{��'p����Y0t�oo;���/�>�#�-�;U��RZ�l*|}��x��2��+X���-�˙���ь؃�X�q.�1F��\�Δ���r"fsї@��i�y�}2�SÌR�I�ڠ-��H<]/�M�=�_��4)���%�o�qf�t�=�s�\�p�� a�����?��~���^SX�a��ھ��G0k$G���ڳ���^�j���r�7+2�)�Pq;,��M%��蠐��CK��k���o���_��,�+�>v2���r>�s�_�=��Py���Yc)����|'/���O�$��1�_?e��(9=�4͌�4��L0M3�_�*_�N��s�25��)����%P���'���[2�O!_�2^�r?�j�..y�4��)/��|�9� C�)O�,l�թ�2T"A�������$���Nݓ���T^*{�4=Q�>�A�Iy��s�Y�����L�|R���H���=�T{mu�˄��h�h�Xc����{a	���o��f*B��QװyHs��0d&X�Ok��Ck��	��гY
�<��Z�q7XydX_�ņ[-��u�>yؕ�8�c��NаL5�:��$�_;��͂��̖�Gί+:��ba�f�� &���@�=�����/f��rԭ
�Ys�z?(�V�V����(P���v���IvF��j��ͦ�fɐ�e]��:9(v��<��f��&�����k�mYz6�\k��9�VUw��e�_��m�,	�BDQ �a^Q"+BQ�_�&��P@�DJ��Dy+?� A �m$9�;�	qplډ��a쮮{�={��Yc|�k�}έ*+պ]��=��ךk���x�5�2�գ�)���P�[kYv8��z�脾��e�-���5;�6�i���jϹ҂��F$�.;X����s�VP���H�������@JT�n�j$C�;�v���'O�P(-g**��&e�8AD}yv�f$8J�"�����݇�ah�vZ�4��%6p�,M�͆x,b�V���G�Q��@%Q��*(����'c�F����x\�~ ���Na�/�PH6��K!�sgo����4p�]�Yݐ.2*/m��r	XOf�H���o�:�3�`��w���I66�T����qۈ�rH5��+\�ݓy����T��5,��k#tc}\��|�~�y�B����;���
h�=!*�7*|8J!�<r�e}2߰+���p��by4n��L=�Yb�1�fi<�]v�Q-���7�(�����ȿ�j�$B�6���1��uV.AQ��)Ω&��CY/�.:��)�Qa�6+w���P�b	-<����ԡ��ڊa��N!���?��\ijT��}���vǼ�󟗶�p����V����.ݭg�a�'���b��q�'&M�a��ϵX��)F]ɒ�%���5�Lg�v��.F��\e����	��|d�7$��
7ڔ́�*��G��
d��o݆6��ެ�c}L�����R�<��\�r�
�J��[d�Y^�s��2�^��U96�:��}�{v���a��g~Y��|~��:1�x;R-	h��[��"���-S�Dn�Қ�O>| �Oz7 `�.��*���z��Z�B��>*q�5ܻ9�ڍ�a�ҹ�����
�$����1]�S�+��"l�=�Q7��.'���7�G6��s}h=�
F^����l��J7/A�S�K%>�X��i�x�-��;)�ސ���p� "���$��8��Ŵɧ�	,���L�N���O���.9���zhdhZ���I�l��c�-x8:+��	�#�}X7Y�@�s��co�P�����̩h��f��9؆?�aOsjÇ�)�$m��է?=�����`�	hÚ�7H,ׁ�3��qx7�^yb=-�w�?��NͿ�Í��5ܯ��\7�J�j
+�L�Nm��.(��#v���6�Z���Ks�X��M1�	�Iy�X�~���)iS"`��jq�<�v�Vј�jwc��x5s���j:���M�\���rc��>p�X����;8�o'��xq:�8�&����<l^�\siR M�P.���˫�Fq��	^�����Ck؍�9č�^\{�� ���.�8JVmqʝ5	�m�5��$�tVwwc8��8��C2�0��]�{��ݐ8Z��|@�&^���Ԇ^hZ	��?�]A�Y����GcQ�w�X�����
A|��`�1��TV�I�����`j�PLu�����B��1z�����&
�9��-ϤN�����elpi�Pz�e�vI�9@S~BZJBo�]�����	��_�H��fڕ@aFq�a��F>�<�<=���-3"�{ݯ἟�����'�����Vg�ۧ����q��=֗�1�`a6o;�}H��\i4��f䝥��"n6U��n��`���4U���RZ�<^�/~�[w��
k���b�Ӕ���A����p�k_���Ӗ����6�V����p%
>2�=��q6p��<���3c�1z���,���^�J<7�i�jPx;�I25����c���˻_/M�笛��݈���AP��{��;��T��CbÆ�7d�Ӡk�Cw��BQ�H��~ P|X���1��8w� ��UQ�
�:�V���}ۋ'�o'�:��CY��Zj����]mj��4#Ø{f1t�7�0�3�-d~Hуs�,�=E��%�q
�g&�xh�6���t���l$�b�b��Ǻn��ן͓���"�P��۵Y2��Z��yޯ4��H �6t��c���L2�[�ޘ���9�u��Tm�5�G�}�V�V��w��ә,��3��9U^��¤�Q�ǵ�]F>�X��-�S�jV���XUc޲��@�U�K���>s�_�̱X�I���hVcx$���{3�z��|��A�`f��3��8�gz{�-<�*��U����m����>)���ŋ���bg�'����z]o����x�6qL-h>6�X֍~^�W��x�vn���>�*����W��S��$�"����l>�Pɂi��ew�aX�W$���Wü��NG�H�w��P�a��K�|�&��gD��I�p&?�9��c���ëy\�T���llkՋ��`�y�?P��k|���+��E���=������g��I�K�u`���!��X�� ��.
�F�FU�h�V�ά��ܛSc%71�j� sⳡz/��EAi�lo`j��q1p;3��5o�z��Q�[�.�A�߀���#M�8��5�g>�n�:�傻��V�f��0�*]�[��"A����"�a��5�����M���\ +�9�,���7���cx8�胾�,�)�g�Q�5y�}Ԁ���[����lL�}�qs�>3�Ʀ�z��ݙ֟![<Cc}��<,
"]��͛��o/_��"�΍{Wg�fú�QN$���D�9�u���A6W�u�~����E�AVZ�e>���s��2ؠ���{Ȏ�,�t��/޽W�z��R�j}��o,�j���6�\�|گ�>2�ID��F���`�e�uJ�^���{��\s�{� p��䬇ɲ��~����za�n��E�
��`�� �SE'���}��,�_��Ia�dt�>ġ�e.	�����i��(�:��a!��6��ј�
���\=�I?�C-Y�W��8)ʪ�B�ݶ�*�=4�
a���/���trPfm�V6�5P�,H
? �	���8�
DD�F�9ei?�e��2et���^���gX�ּȎ�i\t��n��}<�3nM�}z6&UK���{WX(�֏x\^�����!XI�Z����>''��N���{x�`N|Z�}�e��I��l�к��|�������?�p��L�Y.D�Л�<7d���F��S��I��tۡ�8ن	E���%�GVDW���@��a�!&����>���B�Y� r���>&k����.�b?؍�~=ܫ�����$��t����{�m�;�]7���<��eY�\�7��:���Jw�=&&T��R�<�6�z�A�t���I�%��0�:�]��)p�>��E�.G
��ܭ?��Je70SJ��hSyw��O��_�{��R|�Oo�8�Ǩр6��-t�3E�EK=W�›K�"�?v��80�cc����U�H�L�|�&3׶��Z��ʕoWx�0�Q`��V��N,.���?k$	��.����"�S����fg�m��e���Pʨ� 	�%fy�5�`��(~���&/��i��t�
���K��j��X�fMd�7nm.
�b	�bb�)+Oz=x�43��,�(P�K��yG��Ya	�<����
�������$)z�U
��>$�͗�6����ڜe'.�]QwI��Π������I62�5]Yloۓ�z�ua1&�(���ɹ�o>t�E�
�d��3�>3o��nmoÁ����3� �R.v�A�3�ji�
������a���u�P�|E��}��+v�qe���i�JE��g���7�-X�s)�L�<�	rv�����u�0o��s!�n5�X���Ӣ�#�؆$$|��;�$^���>ݸ��T(&��ƚ^�Kѽ�
ʓ�x�����%L��˕�u�
v��h�
��؀�x� !��lON,���O�?����Kֹ��;e�l�j���u�@e�!�]�r�����E�B�=���81�l6�(��.ް��e7��?3�oP�Ү�����WW��vO�R����{B���`��e�K�B{�V���\5�€ 	�)�w��_<�`g��������'�|Z3�;���%~3��7+�Wz`��X�w�^	�B��,�����3�:-
崁Ҩ���`�˿c��m�/T�s���Z��ꬵE��$�QZ�����v�-��ڬ��ߓ[�T�te��Py��B@�l�����>��ʪ{��Ւ��@#�=�����I��{1CC�윌y��Wt�"+��a�s����k��Y����7�p�gs>oi�ZJ{�a��r+�X¦�tŏ�p_2�R���>���^6�Ѭj�`ܲ���̶oH�klE��S��Y�Ҝi�bfE�OU\Ԛ/u�!Q[9�g��ʛeUYy'v��D�IR�&����
�A�PA�6�Bm`�%UPʀ�8��P�֬����EQܳ��뱸��%��A:K����øP�n)vw+vJb�87{�1�m`�D��C�=4�*�Tm

����.�N�[t�H]@�B
�P�����$�3�'�
�j�у�Ccjrؐu�&�+@YZ�He=}���\u1�%&��7^k�e^t�e�{}t?c�Š�h6u�j���N]n�ȉ2C׫�Oݻ=<{�ƒ�{�����1w�ee�͂��dV��a	�R�UNU
�9~�E��q���b��op]�eu�l�W�M֨�)3bc�:�ˌ�25�,	PYk@�/�]�>���E
�J}��z�Hm��MWr���U�,)O0N�³	e�!-l�p��<<h��+�����o%߬m��hlĖ�(`q������(��lli�ȓ����(��*���/��j�4X���+�,}9&,n%�v)���U4����ɵ�\�g���ձ#��^B���GqS4��&��684z�
���Em
�O�7�kڂ�$��vr��fG梼1�'4���Q\�#H�T�ԁ����7[ľK"�z��5��#��6�W����)����!�1v��#� |A�����[�]m�:��5��E�|�s�ފ��3�ٽ���Z#q�P3y=e�3nH�z	�( ���=�)��"�����֥���ka7�M\N�*��f���#�ц|t��PN���B�eW�z��$���^SK���SF�-�������Ub�{���������}x���D'��zH��M����܆�Ꭓv!j���Ϋ�~ao�ǾC�������f�竏��f�j���^i�W����o���`8��������^�Z1K�9�r^���0��eb,�
0��������F��_��N�W��	Zx?P��*���i�u�hhl<����N��tt�ϧcV���3Í��A�Hd���{�c�5�zٸ�wG�ˋEV�������k���~��a���)�Ʀ�Wo}Az�{P|/�<^�ܺ<���t��G�[嶐%7���{�����CC� t�h.��)����_�AM�Jw����O��9N�8ʝ�{��:�:l�J�P�+�򴒤H�%vZT!�A�K(r�fc��vU�l�D��o�pj�B5R�>I�w�ױX��zpɶ���&E��(�ޤn�<�c�v���>�kl�R�_�K�J��
Ҕ�bn�:-t�w�}��Z��6����>w59��-����r��^A��C����>(�|�i�n�-`o�M�ʼn{�V�>��IWk���g�e'�(̫1M.]�*��%�w]
b-s9z��;��1�F��y�p���mWBy^zf�8pco/�YT	�q�����!�ݛ�1����,�"\�e(�o-RdĦ0��d���I�;��$o��GM�S,v������U�9s6����a�N��,kF
&�Rj���ɲ_!��Y[�C����ɲ�^�)l�,o�"�z>ȋ��Ru�޸���=���$��������dW�^僘����б�
��V�
�Q���ϕ6��\�5Mo��P�^j��r�E�S�¹F�ٳ�����HV�G�[_�(�ОW��JS��'�R6���(��G(��1@�
W��R��p�k5̖��AtLm	�"��э���:K<<�C����,�{�*lk<�=Mi�FqG3�.��cS0�6@n�R��܃ݮ�ur�`��������^�Ͽ��\�����a8���ZxT�G
i�v��)��
���bl6�?�����b;$9<�z���5��A��6�T�OSf���1<^�����Aۭ���{sX{�xI�x�'���q�Փ%���A(+��t���X��\�/��/)Pq��)���F
<ܒ�s`
���~{
�ĪC�R}* N�Z�^۪��æm/�j���{|��]��u
E5��)�G��R�[��Y�.
�[��
�n����%v�[���� S���C��9�
�[�V?ej9�[w�C�y�'|�۷��)e�lm^d���^&��;h`8t�2��s�j~���`d��ȱȾ̃��3��M�b����C�	&BE�Jg2���n�P�K�֏m���3B��p0s�--��>�r���Ƌ�����!�ٷ�G�ZJw{k�jE��8�Qk���8&6�ة���g�핧h�h�e���-ޏc�Gg�@_�4�C�b��R�l/ܷ�(x��m3���k3���)vjve�xl�
-,|�����t����k����W�K��%�^�'��.	�//��,�ic��xa�k
}N�S�z�ˇ�ʍ��.�@�	�R��Pɗ�x
�e[.mp�N�T�u���n�,����z��a'��̥)sH`�Ӓ�c���y�R.��`�۟�Lz.�D#G��FT+=���=DJ�5�i��~OnV�6����o�F�x��rS�va^%x&��dRSp
 ����ze0��2[F�VN
�-u������-��%�v*K��H԰4h�[e��)q� %ֳ������.��[5������������R����2��SlD(�t��g��жˇ�2l.�^SU`0���A����Z�z*�v)(����h{�FlT�������pF���sh*��-����w'C��4�HN���Q�}˺	-.��ë")��Վa��OMAo�@��� '!�`�5� ��(r���I�>���'��g˺ >��|CH���U_�&VW𙋩�F����T3T�*y{±g�͢��YI���/���'Fǖ}��*&��KP��ev��l��z��10tqS��`�
�d��Pغ��;�0�Ev�ï��'��Ĕ��T��N2�)�^6B��Š>��8�$3��,�@	Wp]آ�(�;���˗������?��(��~�����ZpC��\�Q��o��xg
��_��^r�"Y5l���DI�E=Ջ��H�y�����3>��2r�ĦQ#�
S;h�HRX#�4�ܯݺ���\���ZceBg�2k��`���e�_�x�A$0aoi)h'd!0N��J���@/(Im�l2m/|�b���i�S׊�(��'2��F��'Mw��#p]_��Tg�̊A23c�Oi������=������6Hz��Q"�5\�k��6�*�=�
���}��8��I櫉_ώu�TM`��x�1�>��Iļ���ps��7��m1<��	�}?��Q.���hUc�3��x�n�gꍛIa?��9���1��#����e�l�m��吣V���2����{�Q�����B�Q�fد�Ҽ�z�Y8E�ا��B!~;*��R�Xb`�XY
�L�]��u>s�c,@�1�3|�
��]����3��Gm(��$�no�1���ScYl&g�7m��=.����^�Γ��ܶ��d����Xf�v��e�Z�����1�͆�p����Zf��p����Y������ Y��%�ц
��C0%c�X�U2���^�x��)h
C��!H���<,^�F��@{
�=+d:S`8p���΅`��\G�߬~�bcl⾔Ze�)��H�r���ƚA�T��d�ٜ�[?��f����`�������D����w�(���q���1��Xvyk��ע�`�>o�����t;mփ��>2-{����1�3x��1��
e*��=c
�퇠ݥUg��z�f���5J�Ӡ�������l��O�͊�����``ݏ���g1�3Xc�
>�(�ׯ���_0$MV���Mp���pEh��!�G�+\J�����u��VPTj�h��ϵ	��W|]��Xl\_؞0��n5[dJ�v�,���_��Z;��d`gX�Q.�`[��լZ8 ����	�>��G�O��5�ʵ��Ϟ�l�q
��J
�:����A�
4��p�Z�����#���nT*�
ae5�~>����uf�����f2����QJ��8���ѕ����ol�:A{)ن�[*��lΧ��W씻S�37��ض��Țj�R�+��m��Y�E�E�+v)69�-<�&��MFh���J*{���4t�C��	��I�k�(*��͞ydGy;L�a/��n7my0�6n�Z'o�?���
8v�ǁG�"�^�%�2E)xb��*=��m������$��`-�&�棩��,�@��߃�i���[�@�j,W,�	�'�LY72�o4[I�&)�x�,-�_�_��A=�Y����F�x0��j�IͲ!a�Xp�2���d�
M�h�Y3�����V�VW�%���΁6��D�Y��~}=<�C�m^�5n�[e�C�0�c�2�~)�?�Y>k�M���$+X#�{|O��С���c0�{cֺvBY���;R��^���pN��s�R~Gf�5d�;��p�l�+��l�F�2�hi�jĈ=� ���j��
��}��L$r�}�Ѭ�tr�a!
�/��s
o�lk��@�l��'I2��6N�{:����z���_����@媝��^�bmY!f#j���1=Z�%��WMA�@��~b�ubO�P����=23��8A�E�tX���X�>{�Ƭ�}�aݧ�k�a���Z�	A5�)�1�>���b��z��l������ml�f>ϋ���]�}@������4�ʒ�"�_,+�I��E���[�Y���C�f�jj�Z=@� Z��Y�=�l�8��|����M�2�*XŧbV\��dm]k���g{������=ϩ�7J,���=eD�0����foU����L1�b�bM�Ѭ���c��?���CidD�����x�R�P�<5��ڈ������^�,�̓`�tn�=�07�
r1�����iᙆ��f��ȟm���56]�=���mO�
�S��wV�r���`�g�
�9$Կ�g=���!y��x>1�U����mh��m.���ˮ�C/1��ny�埌���8r��D)��3m��0���
��͢�T(�l`�6�vPV��������e��M�����	K��0Cmн
Jn�l��l�*���L��2��`�r{�n���͇�m&�4zJ*���.1���D����aOuS\��>������	���ڋ������U���"2�����7��?��_�O���nK��9����j��vM� �E�xZf�8�fC�0m�1n6���{�-9���Z�ץ�� $��#���A:^��H
A��*Q�kLE	�1J9�r�\�7�f��B�<�{�>���ã�7v�ݯ�VD;ރ�z�p߇��໏��M�a}� 
����@�͛�_?������%��>y	h�����`">�3�<�.
�NAD�_��RSzc]
-�t��\;6�S9
���[ޭ?����5�3�Md�T��}M�#[��/��U|��O�ŵ���4
vu��(@��&ˏݫ���k�XS1�n�AY��wӞ2֓<8s��icr��� �6h�	/A$�Y3�R����VK�����ho0��{���y����p��}MO�0��{@'�r����i�ꌜ� H|ml�DΥ�Mj^�M5����K���3>��L��Y��L�u0���H0��溹�<8��D��u{'���0�d1`y�|?|{cA<�?�:��,敌b��kb!'y����(�\}���HLd��!�f��v/,�2��O�k�B�Lz�X ���_ц�s	@>���۹�@��R��]k߰tU꣘}X�-Bؠ+��t6��o��q�B�I�{���������\g6P�����B9?Θ0Of0c�,�p�ARS�_�l�O�f�5��9�Y�e7v(v8�����M��2J[��v�f�b�D��0�f�$�Ca
`�%,�<�g��7�u[�"o>+�6)��{�7-b���V���#mo�,)�:)�q���k,V��s�p�^��0�s�t���ޓ�	fמC���,DAR���7��r2{�v�9�EMs.��xc?q]�i�әD�}X�υ�{��!��Y�yX��\��oNu˪�Oo	��a�m�zPׁ�E�w7�y�ǚ�ϧ�1g?����]�A�٠�T�ߝ�����(�7��J��4��?k�v"p^�ÏD�x?�ɬ~RRn���<�1mŹ#��	ǫ��N���3�)B}�u�׵�2����{vDh@^��)^o� .�7�0X_Xo���,�����
�Ly�-�g��.�$5E��6_6K<�/8e�{䧌۾���ʳKf��5�JLx.��Ե���M ~����B-C8
]�Q�a(�F�>�R�����ѭl������M��V�N�����S@��>^��:L��e�� Iѕy�v5U@ev/y=���}�M!������s��~O;ݫ�:O��7��E2��C����s78 P���
���X���V<�{���\r�܅O���-28+��H�x�E��7��3v#���Y	T+���h 2|�=���/d18��d0i�߄=�>��M[���>�LD�������b�eS��ؘ�1\K
6ۯ��K�	�y�b�I�?�ڸ��P��^q�'�?o�ݠ�v��
��Y
g�OJ�:E��g�%�tJ�f�e�s�c�h��mlk;��9�����%�0,�$	<[k�Dk<�i�h�`�z�dL��n�����z�����C�=�WZmb߇�uҙ��y
L��oc���S+,�
l���ڈ-O*4�B��ـER幱[��yɝA��̸js��mЭIIe��M��o=JJR����K[��dÏ�mMx�U��7
��pTU�,�C�s(��̳�!�l<�VW����{zZ{�(}d�gr��[���~8͍���ʢ'*��PK�sp�h;��T��R%�?X��4
 vۗh�6X���P���6[�}�.8�d�
�t�k���%�Nڗ�;��U9U�/�s���I��n��$�#�3�1˼���u��A	7��U�44�O'���æ�����?�+�}LU�n�iw�9��k�ԈM[�M�U���a0�dQ7��_��#�;��PЛb(���g���(�J+ٵv��uL��\��Afc����wmik�U��\���2Te��Q�P;����_}��I����@�xۯu�n��F��u�8֨��_�ljj�Qȓ�@�\�?�9�?�� ���S�-�e� 8N��K.���Q\���;�&jƮ/1K䙄G�SJ�L�r>s�g
,�Gw�u��O��$��G�4*�l��U�9+�j�i��N�k���Z{g�NJ�����:���[��<g����.0�	�}�4N�>;_�������{��-h�6�
��"�ie� �������p�`�
�J}hn݆���jjl�����Mqkq�)�U�S4wx���J�Z�e�T�A����n>����-���7kM~��&@�㑵�or�~ݸ�s}:�?�������6����}�OpH����o�\��{�6dG
�r_�@^a�M�ؗ\b<G
G�"=�Ax�Tl���K&�WvS���ǿ�W����'>��	�/���bG􎡾��{Sjj�z���A�ؔ��i�o��)���~]�~�����9�D�q��6<�,��܆�ia	��_���?�F�-TJc�o����'�̽��JFU���IŮ�K����h1�{��Vl��Ҭk�o�K�lE^=P�53۾�d�Y��4x_7�������oh�t�5n�ɑ�.�d��m+�~l�,���L7o��Ճ�(�v2��ܾo^���Z�}�e�}nBJy8�mԦ�t�"il}?m����SY�!o��K��1��.gV8�"֟��Ct)�����dy"��^Wc�y\�%�m��
�y)���A�.�D�VX�,�
���F�X\88�<K��Fa=�듼�ŬSX�f���ˬ�x�o�y�2��J���
�&%@U8X��@&3S���lK����$A�"��+�����0n]n���	�b��<�3�Rl����X>�f��0Ĭ�{f<X55?Bl�g�`‘� ��,~
G/��
���jvB����;B@mr|�?��PMVLm��j���=+��K4�[�<�D3qpUO��:ۑ�
dh�+�k~iЄΐ�"~νuA$H�B�Z�>��-f��EA6�~m���i~ꮂؾ�1��)�XՋ�u\�;�,*0��y���i�nOUeE��o�� Y �=E+j�j����&�7�II�.+�I o�^N�g�|>�ݎ� ^�h$�D�ʶ{�B�,zt�Z�Zl��ѲY����j69�
G�GH�e�kT��	�R�B��S:(‡�\)/�}�-�Av[�l�gh/R��I��N������k���s?4����P�.L�e��K�Dp�'�Q���õ[�r-��8�K?�*��0y�b�ξ�y��UZVC����Z7�n��dN5�Wi���m-;�gs#�a�����*(��y/�vC�'�����[�#՚F0�%�z�3�ʤ/%�q��:�*D�U�J&H�7v~��rF����f�ɹ/��teT�K�K�l�>.�qI�ft�.�d�{#T?��d��Ѭ��k�j^רԍl��QV����o�.���|z[��uR|���%�cK�\)Tj�R'��24_V���ě�I��{�fD���&$*xVL�:ʵ-�1��E��4�Ҭ �lĶ<-6f�VQo^�����"[�PPT�7��������{S���91z�E8+�=ܯ��
h�7�]�V�&�6�ꡪ�|������1u�ޚ��~��x#�VuԠ�%�f�b��1Y�4�m�f�fgӸd�A�0��:��52-&�0���$&��E+�=���u�2�ܰS��Ǣ=�t9	Е�ue���
o�oş��A�'���k\��Od3����O!�
o%�c��4,�f�p:�R�(��o~I�y*3P+�;�`�T�,*Ʋ�Э'�d�M,�ݐ�>m7�„�t1��nȖ?��u
}�1(�B�W�?d�?�Y��K�,�2Iт��t��|�2�y+�L�Y	R���џ�@�������+4�kQ��F�"`>څ�E�B;�6�J�B���Y<s��:�f��Ϊ	�a��(�'���`ܬ��bi1�̨����gp�c�3��<+��ś)�[��9P�%.U��@� �d��rݏ�7�\1�n4K�����"�K�0kx=Zwm�E�ɭ�`v`�vY?��N^�j�A�b��7n��E�RS��$p]�{ʻHn<鞚�	���Q��j�������/>�6I<N�%Yx<����25k�lS��6���^vdY���

���Ϳ�l]�W�Y΋�\-�v��C�N�
�8P�3��u��]�M�Pd'�e�S�F "[t�	�{���bp}�H�[q O�Y�Q��$�t�-Ki�e�z=[/�|��}!�(k�H�9�d�<H�_��4���ʒT�/�9[��JYP���!؍���:��c�z����̊�{W�FP���`�n���v4�s"�3q��J)>�>�$cq�ƈM^3S-8�5溾��A2P-�[�K�LmYՖDx�W�6�-��3_���vh����'5a<�f#��}�Я~;|�����¿�k�����~8�������g�R-;9
�\��>���>���0���;�$�� ������˿�{�O�W��-�Xx�o_Z��������W8��믫�w�K�g�����C�����g_�_~<|�s�����3�����G?�M����ɋgayy_�k?�/���O?zN~�G~*���~׷u�6�����#�c�����Ґ�4W�����~�'~n� �wy����c�"��g�ӱ�@u<�>0�i��5�o�
tK�<��GV9-4�I`9��;j�\�/:�Ň��ˀ���j��$�BX�B\s��՟�D�̄J.�1��,1.R��tt5���U���I��x���%\5˒2�f�W—�
Z�^�)���d�6���7�Q���z�˟I�_6+�E��z�}[c}:���m8`0�t��c��v!\���$Ce�b���hv
�D3�X{I!q`ОVS�*يn"r�`R�%2�,SaFT�;�+����i��Hh9	Ra�ٟ
l�<�%]#��ǜ�i��4k��ҁ;ޤ��X��d�y	�xǵ=��o��/�fy���=SVGM�Q@�-���J�6�E���p!y&�y>�&�4_�L��Sٮ�E(��钃�զ���&�=��-!o~��a�������l��9F*f��gÙ����d����!ma�EҲra��v#��g��{�m�=���)�&?������kR��al��i!��,k Y6�#��pv���MMA�$�ka�Ɛ�N,�&�=/[��&VE�+m��ܸ(eH8��M��aڅ��f�N���>P`1(�h�s��=��b�a���G)���k� FJ6K�����m��L*ok�kg
XȒ��ٳ�sKc��N�<���f��/]e)�>���tmv��X)ĩ�m!߳����vD���'Y�����1ݧE��C��1�����QèIT?��l�^�&Y��.M�1�^�n	jލ�j����d�f�aT���Y?P��Cd�hϜ�q�'g:�G��$���6I�\�r2�I6d����UѬ*�y;�j�|�ћ��\8�)
)t�'��d�*���|�a~d6
��Õ�\��IA㑌Z;�=ˣd�%_����?L���+>�Dok*\SK_W4�w�F����� {��L�+��"�*;�����YN'�!�\Ga��(��ϗ�����Dս��V���P����*][j���F�xJƼux�>�sx�ﯛ_�{g	��'n×z��y['5�z�us���=yi�8���]��m��.�DW�T��xTeD��Я�ō3��P�᫏f ����� ��"�$m���Ag�
�E5�����7�G���3ڟ[=i����&��ng��ͥ�ր&E���m�U���,?&���G��6��ؐ[J�P/�!�,�n���	HR����y
�x���C1+�\ZZ�g1pOe���X�!���Tqi���B�s2�-���m�0�!�I`�v�
����#D��	"�u�߭��\6k�� �>eu��Y�ī-����^���aX���W���c�v���t`��e��{��,G�N�l�
z8�1���7ׂ����?X���'��vW�{��xV�c�\�er)��n�V7G�-ǁ��zMN�A �w�u
P�k/�v��}�`V�����{����K���a6;��:,M�̄x�K�Mu95�P�c��*�z��/�T����9L�)ձ��H�%q�_��lLR*��p>��h]�n���X��<��
Q^�3����3��Á��!e�3��Z��Oܟr��.PR�A�"����#p�}D�.[�j��ӳ�P�lf�%��0���/g�b�VM�-$^b�![��,6�����a��^�a��z^k�|>���vX�����
fk���\���dg2����J���q�4����\�|�CE�)���TL(���>��R�
/e�c���C�J�ء�L�~�P_Xu�Y���$6��{����Tþ�-e}��Y֟y�~?,�tV�Br�6���I�Ӯ��l��͢w�����/*�A�'`�,FQ}�������.x9���cE9���0��n��:��B�<�|��3��|���dYP�''�2,8�����O1�Şf��0���,�ioJ$���Eu���
x��H=�:��ϖ/R����o��[����q�s9ِԇ�|��b#B
R�4�C��)�&"��ú�O�"�e��5�c=y��g}�٠�޶��7ooe�n|�OFJ�:��#���O<|���!����ܗB���������g��
_��g�����/�B�GN���/\�F����q���EC��
��?�[�w?�_��+�n���3�;��_��
�/���Ց�����?�?���o�����k�L���[�{�ȟ#�3���;x�?��?~�������5�����s��?�������������p���Z�}�
o����?{'��~H�{<���������>~�{,|�?o��������?~��E��[��F\�$�t8u��]8�Y���@�l��b���u�lN��̅�*/��x/�@|Z$q�^�4�n��%�뢦y�`�80p�
b���̶6n���
F6��o̗�P�+��'����vA}��y�T���f���M�;�-|������Ұ\�ʽ�g���>Y�
���[�bj�Kƞ6�{aÖ����V٥��A
��_���	-��u�h�=f�9��f���z�|`%}��e0��n�8�_���w^n6
6���ˮ���g�պ�Cn�á:([k�E!t$�8�W9|��OD}Hʹ���E�
�vP,c�r�?V#��Y�KV/q���l <0� �:��)�Z��lOs[o�e@�hr(H������OmϏ�	%m����ajݼQ�.A�x��6���Q��I�rא-���`����g�R����{hq��s��	6nz
ʖ�%<��Q��1�bϧ����Hq�7���–c���/���+�-Ф]tsxH��j`p���3��h-���x$3�<��d�d��4�u���]�_o��LU�x�,�T�$�ʜ�)�~S��a�y`�D��1m9�u�-��U�@)J��N�톡�/�G����[�S���=^�����ZB�5q��t�5�=A�☶`�k$7VrzJF�$�!�'�݇_g�x��%lLCTq�Nwk4\����zm�Q9��%�(g��
��c�]����F��I&�\�XwD�O�E�5�����Q@��SG�|�Y^-
U4e�N�9:hg|S���)�H׃��%S�۶��K��q�\ScjLt�h-�Y��އ/����<�m?��şs��.fg�3Y�6�(�����Ncy��:-&a&Yl�!��g\�Φ���'�dA�������\��r�s7)#��ޤ̳܂$���Ⱥ��K�����/���6ϓ}
/�9�[�6 �k56(�~y�������)x��k�J�i��n6��^ק�R�Tb4,�ؤGuma�G_.H��DV&��P���z���ȱ��yW�o�l��5X�����/C��K�`�u�F-�:!�1��`禆,�A���T�T�����٫x���L�z��t����
��ObƠ�vlj�
l7P �Y	y����*��"�/�g�$���N�6�*�¬(j�l{�(F�Ͱ�z�2Kۏ���,h��,���;(�aP����o�ؙ�>w��ZV�i������pd�Tmz�ک7�X�Ǿ��
�h������n	-i�!���*=�0M]J/�,�`�����g�|�dT�|8W�|���d�T�pbLW���\BF�f���������M�&u���"����{��󪏕�Q�d�{���wk}�{>��w���e	o=+$����5����+���lי*���a,�\'{��)'�|^���Y��;��g��dv+��oW\"=�Zso�_��s9��q��̦����H���$ Z��?�����$�Dv�m�����ǂu�@c�ެ���}t-n�D�Ķ�
\� ����ݡ.D�jܵ�MP���0���|ȧ�;ƓC`�,�3BJ��Z w����"���۵�Z��5����`�3C�5��gA��q��̖s�ֳڪ��u��?��offפ�����lv��|�q�ߌ$���z���;/ð��a
2��q�N狳�U��
ֿ�E|=�=T��=�����wb�"���>@�t�g�r%꧇3�&,��:�t�i����y}+{����a����_㍴��0!�1�r���(Y�0�g�ړ���)r��2U��
K��'YVr�ֺ6#��������DG��a}i�fxX��%�=��;�뭿��a:�v���go
���C02����z~̴�>����,o��V�x��#LF*s���A]��	��6HE��~�%��a}.�h�_�<Ƈ��B�Ò�k�Q!����_DI*��([���~����C<���~�S��e�3H�ɰ�?E�3^��#�̶���d}rA�;��iǺ��;hge�LOޙʜ=c�g��3��x�X^���$�x�剹'goN�(�-�U�:�`��6�Mޛ)�s�!�^�����TA��<�d��U��6R
m��զ����) �s�����{�>Wo޽�aA	/^��B9��†����3���÷}���������/~�7�O�/p��:5�W�&sЈ�v.Nr�Xwsi�ۃ��ë��/�m��g���g��G��~䋴(���������s?���Bu�;?���u���c�{	����HJ�������p���۟�d������N���T�t��O���W~1����OҞ_~���������7��j��w|K���w}����y8����\���:�tE�YN'��k�����y5���������6����;^b���
�_�Kce��s�ղ��-��#����XL�ya�O���Ғ�s�)���x�X������/<�o�at{ 5K�X�+�c4�)]�����K��O���=��{���lҗ=�O�I,
!��`ІB�--�����\��w��O�&��3�ڼ�����[S	/���X�*fn,���5���_�h�?����
!ʪ�e����>�q� �JR���e�Y+�m�o+05+Z�NՆa*��߳y����>��J�͓���W��<�{u1���p�Vn~Ła��X��pb�Z[��4%��r>��nw[Nkm�ň
�s�����ߙh%1�<�v9���̼��$~h8��=�h\���>�K���7�C��!�F{`�g���@k�e��.Y��UY���
Tn^��7ׂc-T��އ�l^���ǒ�>J!T��5��YG�av��$�Ral����Q���Hs�s�%lB����f7��'�<r�$�; �gv�Z`���y�_�_���)k�K�tR� ������.���|�b����b��e.-M	��=o�u��ؼ��1��ڊ 6h�']�^��Kq2�.�'6m�Ԍ"��8�
�K�r8PF�0V��)�ʜ�m�V	�x�L3�x]����C�S
��9G��֬c܎�-���S)!��m��� f���>8ȳ�k;#�غ�@�m��^(���U�p�G�d0�;�Ȧ�Rz2�jO�'5)�ͬA�G� �m-�������TSb���F���ٝUg=��$U���'4��t�}3��r��>�-ܔ߽�/=�@mOG�
�答t��?r���Va��{u�B��?��گ��g�ˣ���b�p�%�ZC�A�bQj��m��̒���&H����i�t5"}���\��9^0�^sP�M�kA�ҟ}tC5Y�ͽW{��a}�s�#|���N��dC��‡�}"���8;ӟ��}e�2W�ҵA� �!�7�L��n�}a�v<�	5�+�c��a@�=i���Xu��S^?�I�!FͲ^���$c�]��(���Ę"+��z�v������[�\S��2/C��4X�c�uER��S,�s��ֳ���y��p���R(�m�&X��JؔhA~���wQJ����j�r���0�^�Y^,G���<��p6M������p��Rn���tj�$
�-����tg�c?"���@��ẽ�;ݐ�j- �9w��oҴ6��,��fɮ[��N`f�x��Y"Ş�(��Y?��i?��u���<�� �$e�#���s� J셻T�iB�m.c����`(ϰ�07�݌FN����@�ʳ����E�����[w��b=#n�k�A����,�
�)f��H�����3��uu�g�z��}��@�8�ek�i�*���`����eC$����8),�q�#x�G

-q��Q��h�5���9 ���Ӱ����b}���!�"		��D`3c�$���sâ��g��v
�#n';A־-O���5V8jk��Լ�La��3#����A�P��'�L�R��f���|&�
�nh�ɬS�K�����D��f���3�!��?����>>����1p(�4,��)۰{߃��G˖X�����W�#�1�)��2X0`���3��d��ؿ��I���G�����=���o���QV0eS�����B<a��f�w�0&�2CٛG�@�\������Ө�k��g�Y��(j��7P�p�i-��A|0�7��Y�Z�o9�5�)���i{7s@b��[�z�!X�0��a�NT��)]�E��92K+�}#�Eu�b
���(��`JZ���}k�)���a�
0�^v��K����j�K��dO�ֵ/ߝ����G�l��T-=�m4���lY��-װ��c{BԺ���R�+�M�
�b����rcmE�a2��M�Vo8+�]
o���/TٟrQ
���J�䀤:����dc�/h�0 �&>�;��[���
���ֶRv�v�#!���Ƞ;��>�3uw��
��� ��|�}=�X����9ja���<�?�}��`�a���^v�d6�ʃ������Et�R�A�<)����b5��>�ka��^����nV�Hc���n�r����_bP~�ZD8<��7>����?���pg����J��O�p�~��×����~�O�'�'�y�ӿ��Դ�^_�a�#��|�e=9l+�����%��E� [�S7��g��Z�#�Xi��^Ϗ���+�G����?w鵤�&0����}ݟd�s\ֿ�
1��t� ����}%|�p��������_��oX���k}��fc�u�֋���N����a{@u���-�<��~*�{|M}?���N|3Ri��^5���Q�N��L>+�f�#�J�u����6�����"x���w��G/1��rc��3����j�m��#,@�@Ƹ�/E�����6�H]���w	�����o^܏H����}`��N
�Z+���=�9VR�|�p�Ա�Sg%D���^��Y~�C8�(�Q����L1�N^ma��8�ݺ��ˌ��|�Y%�rU���*�B�G`��$)�M}��v-��<&��䮍�$��A�ΛEC�/h��.�y�u
ř��Ljo&TXK�=�W���I����C�/������GǗ��
�-qcu&
̻x�'`�lE�c��
��M�f�d!�xg�z�u���B�� ^I眻�m�{��4�G�$�Gqc�T�|w�m
�nP�y�'���ྖ�_1z�4����JK������M�����kr�	�R�0�‚ɮm�����1�=�oa����</f)�B�帼��f�ł�z[��}^=�;�
�R���۴4g��ne��nq�Z�c�֬��t���b*Z�Fx�K���F�|��>6�0m�^/�Jh좱�0g��E�Y
��"�ގj��	+�Ty�;Ku��06�gS f�!�	��,;��y󵮵c��@g�:F6���z������}ǣVC�LYhY�`�,�Ե�Hb���Ѓ�s�5��2��X�e��V�`m���s��1^�PQnj�+�烄�b
��K�Ҵ���SO
�uL�>���Ǥ�+k����Z��>]=5���&�XΡ��k]
�����S�0��Y�tvHn�;���߇VCu�1=.�RZj���/K�Α~����l�0,�+����E1�GR⋍�^�.j���A��U�B�́�.K�k���שaEʳ����%�2o#p�փl�6�n�����Tk�em�����>��d7��ץ����Ȇ�5��e�ĸڦ�vS�G���Bx�v�,�8�����=o%�TuFp�+�n�)ݎ��Uυb��S�j�"���hW�dR�~ � ����ۈ�&}oj���o�#$������/m�`���-��T����l^D�O��ܶ��b{7T�<_��g�`g�_��a���l�S�B�c����S����CSS���C�\l�GuK����=���S,�
'qM���g��pm�zLC�:4��r�=?�����C�h�1��WS�p�r�F��b�y;
C}/յ,��yv�B��l�v�u."$ZqP��g0x�1��)���$�H-��Dz�W=�E��=�i4���l!��~���W
z�k����0S&ݱ�DM��:����
R��7�a�fcA�-�ȟ
�k'+��$��A�-I<\|��9(�A���9I��A�Z:+�uȘy_��1���HM�Y�!���� v�5����]&�纑�F��R�Xɡ`cF�-���bqo��,�l�dֶ��E�!�Ջ�΋�@j��Z~�����n����k2Z��/#����ܵD�qAm���I���G��X藗W{����]�e�M���U]�)�uS�HNi��,P��$|��Sm�5����R:���rT�q5���3�F������0IN��<C1���AB�ޔk�7%od٬�4�\�J�a������½��3�8��1�[��b��l��,
R��wI��
ʈ��sV��W�X��CK]��R����;H�"Wmu��Qd�&W��&0қ�c�rӿkO�����&=%�u��@��7~$��?�������W����K��>��o����=/�/K������|�[?�ÿÐ��5ً6 �Ǡ�?s�ql�-ʭ�T����� ��O�z!��?����g�	_��	��T|���.���_	���3�5�����?���K����7�߿�[>�я������px�[?�g���g�1����o^ťU����ͧ>N̈���y[]e1��-�g�.Zl6Bd{���t!9M�i�R��߆
 �:�z�I�%��fq)��)P��j�ʰc޼�珲Nڵ����sJ]��L�@�A����OX/�����K���M���3�,���π_���v��������x�ǑL%Z�`���]�A���|�N�c��	1Y-�[��jh���:(vϊ���#1>�vo��&�m=+xg	:�l�v�xH��`�Hȍ=��n/�<���m%�3���lH��A��n�Ew����c����Y3XXQ�����١4�0�z�-�glڐ!v�"Y&��~�.�탭��0�� ~����A������d�\�.��[�lۯ��AW��}<��	�<i������JW�7ͣ
z/�����V�.~����əP���9(ڋ�C��y9S
�4y��/!��� ;|�q��\	/���Ǧ��rX�d�33)�'�/��
~����.ܿ�$eUޔ�w2)�
DH��6j��Vxt�U!�`������kZi54n�#W�*�9�Y�M��k�;��ߴ�v�	����Ϛ��aK��w�.�n_(2&�w�5��%��ܿ�����O���lwig�<0���XV�ز�r˖�����.&��jH]�`����!v@gc�F���g�A�SS)Y�@5+�-���aa�p��� �j��\�͆�5`Y-8��-[�Y�#�L*ޱ����V�PF�.3�"5Q�H�f�X� �
V<�j�C�<�?�Aû�r�׸m�f7%`��8tʗ��£7�b*$H�u;h`s��P6r���O�T�l ���"h�@���3XxF����%l'��a-C���	]��~��<5UI���Vl��8l 2*jK��aϬ��K�ə4~��?��`��m�_�=E`�ۀ�����s��T60�j�w�tP5�OWuUH믇9��	���W9l򣦵�}]��W��Õ��ԧ��MNg�������?\���RUY��&���+��ԱuE���z�.���^�þ�Z_����Ӕ_�-��>�E�kf�L��[Ѵ!�HA@I|��d1�K����ZTf�C�rZ�^sh6m��k1��?�16BN��l�/K���v&��Z_�� #;�J"�e�
 n�,Eg�������Y�Ke�h�&5��!n�!�fhԃTT�SeE`-oÔ��YP��"(�=ҋy��Z��@إ���6��'��6�3�nh���кi %��T,:�L%
���DY�H��C�g$Y���bqմ�����������'��H���j�;��5�YV�=x�=	ێTȺF︄W�Ȉf�u�]�źe����s�;k��^.F�d���
�4$"��Z ��Xv]�0�~��
:�Y0}k��Wp4�ؖm�V��^h���B�� �;‘�‡�ξ�ݯ���υ��9�0����w��U^Q}4���'*j����
.f���������~Ztv��Z8`��>����r�N;�#7#'֔��9��dDzz��V�<MKɸ�zS8����k�5@���L%�n]��6�6^2���ʉ2fq��
�ͻC8�.h]��17�q�3P�fņ�@m�7�0��y�,cV��ψ���IXҥa_��:~Į�(֎2H��2f���ٱ������ޚ�g�3_}�͑%�:�$#/L�+�Y�_�B�?��&`c%K�۲�Pp�e��ef��JB��8���j�l�J
aX���N���'���x�=+�Q�x��v[�á�\G�N2Q��-�"�0W vX?�úai�Nk�yˡ�«Q�Ks�0j➚i��_�EZ���f�ƌ97��ѽ��a�A��a�����[�z�㺎8|p���֪�B������+IJ\ړB�m��@�a/��X�Y]��>��}���c�	#����03��T��g�r!9!c�ziO��z�g�.��qf�<�D��H�#��A��X�UX�K��3�˝���pkH��<²a�9?6����ɪs|@�^<�p�=+�kX	��~��D�����0z�&�z��a]�o�1^���Oއ���-<�=_��_��_�������g/�������yw}.NO��qh��=k�'��S����}�i�>�M�q{Ok���o~����Pw/�������?���5�z��o?����������k���o�/�Ï���l��>�a���vE_�Z������zM>��?�u?~��o�����	��o/7�D،'̏�9p6�L��rc�
�W�D}�3sk;�7Ǫ�a��-a~�5ХL|�h��C�Q��
� �?x-l؊xlL��f�+�z~=_�Vg��ץ��c�����G���aB|�|��������-^vU����g���Z&�@٨���Z���@�޻���oן����i�~����$�,F���Q�S(`a�~\.�_pO~����
��V��V��Qh2}��YS��Y�l�Y�d7�!,�
 �ׂ�E�ʭBJ*�99����7�r��Y�-��6���Nv(q[Qo�݅q��ayX��|�w����H��W��,�ږrq���H*M�q�/59�CM�����:�'�P��Y��r>����Z6�X���عd�Пsd����Z5�l������k@�䒉?���'�ɯ�w��m-2�6j�/�!6�h><�;~���'k��}
��8�y8��
2�3����up�B�@�����E�3P2����5��j���Ȥ��dtk�Ygw�Rh�uV���  p&$�f4���ͼ�f|X3��P��1X��jܷ#����Ě �?�i���HY�'�ٍñ.�18	�|��|��������;�1���`���N���a`ў=�0�%s?[��"��s��f��7������^��6���y`9�_��*��l6Q�R��bmq;�\�Ȋ��Q���&c��_s3�_ޚ4�NM�‹�:����g6�7k��n��䚙M�[�b�Օe�D2�XH'{61L�,t}�>� A����}���,u�T���k/����Y1"��h�f,���lt-!Hz�dIa�12xy�*A�E�`,�	9�턬���0u��Sɲ`|X���Ш���7�����Wk3;�:#@~��rh�b(EU_�IXqel�uÊa���kS^:b�z
.e
kм�?������x���榚��-�{보��=1�:�5ܖ�#�	i#��ǝy9��
~ƒ@*E3@޺��}�,iG{
<�7��E�Ό��j�Ь�bs�*T��+�nH�Ś+<&����V]�HK�Sۡ�M��uW�/((���Y��_U8n}�E��f��-�&Yɴ��&�Z:>�9���",���^�_|����\��Z__���'Ak�dVD��7]��א*J��G�j��uن���ij#Y$�����M��1Κ��.5\Ȫb�*=�&���(�StD�6�/\Kg�)E���X�H�-L6r�}�0�%D�<&E�h,��2���#6�
eF��ɤ�n���2�E-��ނ���uqŝ$T��cdR/��\�M)��y�A��Kxo�C���U����L�1S`]���d�I��O�p"6���{�,4gc�{K׷�j��yXӠ�:�$f_l�c{{��3i���Z�N��	�`��^��z�{�����Y����YA���%=��k��|b&Š��x8Й���M�
���,�F��A�U�7�^L'F��G���V��'��y��_2@J��h��A��M����π��a�Y�_�����-���
�>�Ƶg�}����ga@V�ق_�ح8��yy
77S`9�����{���94@)�
TI��z���w��-Kσ�eε���Tu�%�m��mc�(�\)%(J y�'�P�	!�ϼ ����d�E1ʃ'$
-��(�N�n�����vwu�s�^k�9��c����j�ʧ]Ug���s�1�����YH~?G�V
�r`��Q�{u��¨�7����X��78\"5������e�e���\�9�w�n�َw��{��^�
2v��v�pWxϴ�Y��f�(�wB��^>\���������P���$��Sx`O�!�o�am��nf�S�N���϶O�v~���g{ר�kf��Ϝ+3B��Q��5|k���������=~{#������{�p��Ǽ_C� hg�-F�a�x����G�31��"��}�a�3r����=��,�y����A��6� 5�נ�?�:��ַ�^��g��ol8V�qN���R�����@�J�(��a��sWd�7��y��pr{<���5һ#C�J��h}����s��^0�Oqx����,C�b>�����c �����`5�0�׻����s��.�k�
LԊ
��ىL{��}8o֯F˯���G&�O-� �ʽ
�
�l��F ���S�uо�1�Z%�f)��~�����p|�@�J[���І��7o�����y����jy����{^ͼ/ȝ��{K
�y�Vˈ���s��:���vIj��x�s�0��7�$B��q��gf9�I}��@2�1`Ж§ʉx�h#]�	/.��g>f�,e��d9r81П��擊���������jƵ-����Ά���5�.+�N��
����.����}�Xȸ� ^{%�7z����Y��:��`���� �Ѿ�n���α�v����?�b�>�*�7�����՟�ꎔ�~��ت��h���/N:�k@�Y9sn�G�rHOl+�
�u��}�+�w�����϶���zX����>����>��_
��G�K_���t��������\^1��<
��
Zp��^�-�Iu�5>�ޫ�`�,=��~���9b��B��_��?���?~��ʏRM��i��C���o
J��,ԯ��?
���㧟�S�1����~��M�0�)כ;y���e}��~KY�Aՙ��Kh��΂([?�ifvanA�5Z��g3�#Y
�?��?�_���p�]�Ox�R9���[Bss�c���f���>{WN����Ū����I��YZ;�차n}�2������x�Bnϲ�b��H�DymU#N�"���(`���D	m	[�&V;�]�Bߑ�}�/�(
bt�)�.�^٬���Y�0�f��v�����3،c��A
]m�U�3U�$���+,7@Lǭ��^o��
��{�`
M��ʐHۄ}�3���d�?�2�Tcm���;�,˜t�<^uó<k����b>t�^�����h�
vܿ��4�YII��s8�
�#���-j>�9f��f�/q+z'�G���8�P�ܡ������>�} �ĂU,�Ů�+�kӭ�@W�!@�Kݞ�ԻNR,Td
�/���Z�WFo>�侖��6��.�
"�$m,%^%W^K�k����j�p���0ᶕ�u�:�3�c��V�7f�|M��	DI��o!ʥ�\�UQ�N\��3PME�u�:J�kIM|MRE���vu���kN}��H��f��n+�HIA�u,��MV]����$;��:��$�7U���~�����ڨ���p��UPC�U3���X�m�,[	���k�C��рK����te�1��-�dklS�a�0:��aP�R�J�^�h�Ro��o�LW���_
�v�=O@T����6.��{�!	D�6�D�ؖ���8	���}��h`ͬ�'̎�
�EPWI�:���Rz�Q�=����8+N뵊@�e}r~}G�I�#���θ	E���X��h,]r���Cڧ(��n�s��z�!��.�Zk���u$B�_���noЬRn�>�^^��?��(4i��چ���gd�<�m�3�C�	Y`\��#�B?���N��rLo툆���Ϙ���t��|04(?�5A���<O�OOTUʯ��7�&ݯu��s}ؙ�����'�9]��Ȕ�@�WV�.�?����4�0=��p�/�ԫ1���ɲ-Ɩ3��F#�&p���5D-�j�!��L��:6b�=�yGvc��4�,�ۭAk�uN�
�sT��壗���v�|��3�Ym	���<~��i��
႔[p��Ԭ�JJM�#&�`�f�Fi3`<�Qn��iO�ap��*="�#�K�F�VL�[,��-czFm��id@A��T�=$�>�^��L�FP^V�nF��F�U�=q��3J�`�E�"s�\ٷP�<�"K
�RZg�W[����Q��:����ׂ�����*��J�b�}R�^�TC�V
��S�NŠ(˖L��YZ�ܣ��͵�q��z��Ѯ$��g�2X�<��p���^�uѢ(���V�UFEo��m�&Rl@�5�|4�0��{8f�L�n�A�����;c0�:��/����ѺN��e|��,��`�lJ���3��B
�Pi���g���ю����W�+�9*DIPw�nk�V~��j�xz�o��+�۸��I�ZW�&�O�uT���y]Zuyw�I0K�J"E=�6���|���:2�I����֢T��}���[�S�'է�De�@Q�њ���\�ؙ>-q���o��M*�TWvU̜s�/�=Oܯl$ݤ��-Ix�A��7��R�F
�S7���rۚ�����%z��%��B�yRYP͎���g��ӓ����Ѕh�	I��9+�,��r�p�)�wdc�:��N�h��ՀV����IJ�F�8L�lZ���$�R�S�#+Xo����f-${���S�����w?m��Ӟs�A:�5l?^��|O@Ғ0�:XԬє�^����8#W��
��D����?�S�O�4	~�?�+�g�+���7�=�~)��C��T8,[��rHP�%��P��L���J�}=_�j�HA���fJ�"8��a���~��w����o�?���x��?��p|������cx^z]K{
;�<kT��"B��z����%��Pӕ���Z��+)gR�pV-:���6�*^��y�Ÿ�Go��폽�wV�����F|�c}���vbҷ7&�5�f�S_�n�L!|�M�w<NA�0xu�?\�ݦ$�ֵ��£Rk{�7o��4g\�k&W|�*�T7�!�:\��ΰB��HBz��R��'����?���i"y��  m?y0V@
�0����F/�=��
����T8ou8�M���
YI����(}��,�-Z�'ǀc��R&�Ft],4�V<�إ��Y�l��b��y�'��D��u�:�G���r����q]��%OF�O&���b���)��Z�؀�LVv�P�-4?Jn��y'7&�G�qU2y�}���l�Ƅ.�� ���6gOW���n��0�(�h�� xT�)g�
Od�c��p���kav��d�}���,h�+�J�g
�@va�+��M���C��M�I��:��k�f�F�x��X�~)�dk�Ayϱ8/E�BV4d���s�E�B�Ι)#M��z�� Ё�i��m</ꕍà��w���*�0 j(')4&y��d�����8xN����Ill����=B���%b����R��0�0��!=sM�p�.O�f��o.
��`���
�y�fC*(X>��]J��:�R�Luk�d�cI��o�¬�l�ʪݪ�-�R�UkN���eHT�h���j*�aP䬦$�E=e�j��mc�!�%GS��PC�J�q@̚�5���@Ac8'w\
Ak�M�OمT�B�쯒��0d�
Y��S�S����xMf��I#(�
L�.��i�Z��G�^_n��5��=���5�+9��7Ł���¨�}��v]��,a�u=S��mAn�1���H1b��y/��j�s:�j�$�s�߉�%!k��9�n�[U�*Ie�"�
�̐��N���gq��nC�~^�øWc���R�����m/���*|k�C�R5�9<m\b���6VY�B��7��Ү�Y&�H��,��Z��V�	#Fz��o��?�6 =����Gb��޹�,Ɇ�X��0����K�Wu���uI4oxk��6x����9R����^�8�]-��r\W5@ت)<]��)�&˿guY�Mcv(&���	�P���zzjP:���bTnC���T{�E+0ն2bWBt�#��8����\���Y�ҪB�U�~�~���}��&*�LMe�):j.�c�y~�}�䏲Z��x��f"�C�5'���x�l���Ϗ{R�#�!;�Ef�jXB%��iW��,X7{/�z�(�"��!پ+��H��g�л]��*Lc��x�u*@�C5j�U���0лZOS�
2��9����ZM�ڄd��E�
���FLƒ��u���*!��H���᨟dM0��Zߨ��m�,/n.C�1�����i��H��f�T˴�2+����kI�}O;*�-�<����x�K`����
exZ�Z�6}%�UI(�d��5i�4��0x���
|?>?��~6��g���p��P���ՂwG�n�ai��,S�&�=n�=���UECܬ������L��f����gq�0d[E0�Wv�|�dd�>q�N
�9$p� �a�&�z�8�a<7�7�˻=lY�@ŊL�m���6�v$ىa�;/�I���v�>u��q�=�FvO6���5��d�:�p'���2��sM�#�;"��{��ۃ9	̴U��R�}�,�V��W
�'>��+�Gpo����,�|�z*�طҊO��`�Of5�~������@|m�
O+�r��/'$2+Fy����ī��)���X�y9ӝmϼ��ia�0բu#3lϿq�h�g��c��z��ؓ�w
"�`'td ��\����<�V�O��U�A���~?s��]����,��]��q���r�*U�5n�O�T]6#M'����',���b��m3%`�7�
e�z6ФZ����Tg�a���X��y�""n7��gr�•�g����
z|��������7~8��_�wCx�ST��[���wTh�{"%��_�J�'�<���ܡ���&Sy_��H�����`�rGTJ��g�W����z�r��/~��w_�zx�������������z����/`�����3a{�~��;�]W<��YA%���M;��,s��̞y?��)��O��+�GPn|v��Dr�4�=���/WY����O�ڽ�1�SY��A^蹶�����E����;f������GZ��$�~�b��6�$��BI�O�����g(�T�\e�gOx��t0�2d��C�U��7��N�F����^c�>�Q�5�j�����d�su�����9�w�����x�gM�:��w>�3��6x�4��YĠf����݁�[��;mߨ�l���&ta"Y.6�O�������8�u�'��%;����zX���d6��`a]o/VPr�E�b�тܪT2�k�Xc�������N-Sx����I�o�	��G�*���Ct��'7%u
)��69:`џI��)W3����������;Fc�Om�\xS��U����{�
�@�V'�������*���{���w�B�ެ�����*Z�i/����zhYn��j�B��f��h�>��Ͼ���7Y�ec���*��û�}T�L
�3�2G�1�Vt�!x�����.�A���;h����	r~|?x������g*
7H�O���`$~�q݄����9���.���1ٳ8��q8�sra��
x/�������u��C6a+%E
ÝW����(�//���'g� ҙ���9E�JX�Ԩ
�߿ߛ�I�U�@�������]M~��}�!��d�h8PU��VH�K�e߿�>Y���N��v	6p�d�}���@�Ht�p�����!�3v0�l`�cD1_��>��jm27�}�k�"T��p(�˵���.t�J���?'Y��n-��砆��1�K��-XV�B��9l
�]QC���Y�u�A7�d)�M-yK
w��,����Lɻ�2���K1�o����c�ŗ�TMG�e�Xw��Z������{���5���MI�8��zO�vg���w
��$ˀȓ3���q�t�=��1u��F��]��}NȮ{�DI�@�<�C0�Ӗ-(9�$����Aц8��I6�묢8�2O��?÷��Kzg=ػ���"�5���BW3��p��eb�d�R���(6���辖�%{�
�G��Δ�W��nھy�2���t�qQN�C�����[����)_����q�!�*<��0��:��'���Î,�'1�Zc�mB;-WC5D2w�p�u��u��rR�}iKե�z
��i2Ӭ��!]�ʜ�W���!B��2-�`���uݚ"ҳm��I�P[,�hg�I{&k�|�-@����JVQAd��K4�\����3y�$7��Ϝ�8�8�ğ �q�;�L��؀l�W"�'�~����>0���*��H��烱���ۤ?��Y��S���S��r��>i	�Z�j��^�
�q��@m���䕭n�2�h��se�6|F')�J�:Ɉ5�r{x<�@��ᘮ�3j4�֫`-<<����H�;�=کK��`JW��|)Q�v
�p�_\D��#�o�����KxuJ�����<�WS���o�l��d�?d���
������9&8���LlY�H�ʠcԃTI��3�f?L�|q���w`8(���=Bs�:��@�?#��s1(,~�(\�y3k�����6A�w�+A��[���
J��{-����LUfj��9�ͪ%�#;md��}-��ڇ�[�T68L�g|<���z��ȝ"A$�
{�J�U��o]�=P@@�t��C�?����C�����<<�����ȵ�.{���C�����q/�t����y���3���%��F�C��w�-mgqӦp�f۱�����~�a�y����|�C�>��E���W<2��5����+��u�a�ƨ�~�w$ ���_G�b�<^�������%���v��e���21f2�k��͛P�n��2�	x ��Y���~.3q'u�Y~Р���YR�X���b�#k2Xw��h�s^m��c�u6;*��w�������%���_hM�b.Z��ئ�+]|�'�.�a�S����w����cWq�CD�i��}X�����k�������^��ͫ��N���{�]��^5ә����9`�I���q�{�ve���=l���-�½��:0��CzW��g�9�E���)ގ�w��1h�j;��8`��`�~�֭|��Op2�s����A&�T�.6�nr(�Q)(��s`�wd��c4�/�>/o-��D�ϋ���[`���Q�ǣ�fceUآ�����6d
��!ee�hvj�$���ʮ��`ڐ���n����?�79$x����/|�?
��?��Ϳ���?��r�O�?_�ϯ����r۾=>�
�'Л!ş���j8�}���.��������V�ry4��W9�3��k¥�/?��=���p��O�~�w�o��?��������;��C~�.|������—��Ï|�Ӳ`��7�Sm2�����?���,��C�~��Jx��W�����χ��=3~��L곟	��_�K����
���:|�_
����_���wO:��z����sW1x�*'��珡.������K����}m%]�?5Ȳz�-�pNSce�݂1�9�|��(���r�r`b�j�����n�+'�� �;���9��s��J,�P�}`�`�
/d咲bH�W�Ͷ`�jp3�_zZhDg��0�ԂsPP���6���G5��f��Z���G&4��f�\"�u���З�	jK��y[ڹ!U`�M��N���&����h�K1VV�`>5GQ2:���pmJ�)�x�[���	�#�l��C�a J�H�́�J^��c& DPj�����l�\o`��&��s��3F�O�i޿�Lp|a���M�������h����
+��^�Tgfe%���C{6i��U�`HK'��n�'7�	IE6��|�
̜�NG�bMNm�\H��(b�ȝg�٣�U�Q��fA }]�(�
�Ӿ��1��JA�ݐJZ�xT���plcҝ�~�VLnG'��j�(Շ�
�)��;�pH9��|��Ȯ!'�'���,t(5��Hs�iA�5쬶��f�@C'zr!�n��_VY��"� ;��jc��0�����;��*�j������%�l���kQ�"�:&�e�<MU�]�������CB0V�~z3N6Lt�4`�T���UF�@�P
�R8�f(�Ds� �U7�2�yB��AR�ʂ���:����QS����J��tڟ�C)��nϜCj6�J
��ϭD�{�Q�� ���f�/Ū[Vâ�u�\<kr��7�F��5�����^$7�� ^�*��r�`�����%4䤺U�+g�q2){��0��r�&�:h�Us���X1�c)��
S��)��q=���4,�X�1c��"s�T2�,�;kc�{׀s|�u����V��"�>�`�6ˆ5�W3���!�EGqV�H�1�s����:����~#{��d0BT"tv���x��a+%��劺G|õa@�J�ǜ�ɂ�3�e���kAv5Q��@ll�rc&fNTy��<��=���R;��|����h�a�`A���]dc*���ʜ�olh{:�kWN��u����aj�Й���^q�c��H�e�ƚ��+i8YV�x���]!e���1ꂘ��3\����˵�@X�d@ja���A9U�j/���a���y8f�K1;ǩ�*ƒk��>`�}8Ў�y����B=�������q�P�L�%��@Q��z�:��k�o�P�Vj�?��8H(���SK��^� ���M1:��]3
�s'PM�U��#����'�:��aE�<�e��K�'��"��� ���3_�l�sH�͚�M �9x%�I���oh��f5��;�p��]���[ٮ!��O�W��4������ϋv7{?����O`ͦ��ag�֕�M�c�����s�C�BMP�I��R�)�R�m�4j��Z��n���ZGj�_�_EL��J���T}�hd�N�rv�}���s�Z�XZ���{<�
s�-��F
���6�$�z�bC�I�X{H�!� [��3:L�W�(xE���'�6)��De�E'B�,5�1���=�]([3�cH�l
a�q<�V<>3�a
��V�h��N	 ��׍�Sri��8��=���z
k����M��^���ج��E�	������R�GZ<I6TɃjkm5�+�ҐkTZ�S9��*�|j�	Z
�F~�,U3z*<��Ϩ�*j�K�t0|
Ë���^��������l!�M���N4���+=Ջ��c*�����d�7e��^rS���-�6�PY0�E�vMy�-�p�n��r���~�
����X�RUL�=���<M�LUkCsʡ;����:�k���iF�]���&�����"V7�����ꑣ��K�Cj�n� 2�څ�*2�|��aö����rY��v<8�vL��k��r��\u�,��J&d
D?��+1�U�H�UO����Pn�c�Z��~��C��aJ��9�� �}Z`����~��6�w���`1��%-�k�׿nm/���_
����d��W_	?���N����"s8�C�����
?�DԌ{�IE�\��p	��Gu>�e�3o������z�_�r��?�r;
��_�J��_��p�����{��/}5��?;��z�|�k��o�^�{ow��O����s�7��?FMu�Ʒ�����׾e	��$˺D��/~9,o���_��M��o����k���1|��~۞�eax�7~����z��5f
��+��_�����ZPq|$�O�\�3T����,d��P����O��imv.�w�,�u�IY@r�;+�)��Θ[K��wWF#�?W}�/���/��)���g�P
�Gk��1�Qlg����B��C7���F�%��\�?\���TT���7X�fp�Y0�R�áɭaS?,����� ~�Mb�9��R�m;��3 u�R#r��P�>�����6��*@�A�de���*{݇�xRl
q��m�(E/Y��f���@G�CNJ��*PZ��7VF��y���F�a��N)5 c��Bl��
���{�!�1�ֲN�Td�*n4pBmJ�`��+ߋ��b)}
,�V�+Ot/x��pZ�X�X�M�/x}��3p.�y�,m8F�	�'�Ș�5�޵�š0�� �W6�+x��E5TK�V��n!۾���$;��F�8�Vy���r鷆tޘo�+�1NZ_�y��Gc�ydCI�x=�T#%ů)5�(�F2D��6i�@+�8Z����Ϩ{���*k���;w�Ś$�(�ݶ�v_�~�[�,��+�R��e�7��B-��6X1���G�Y�I�{`��K<��ニn%Ex�'��_Y+=�����'�f	Sn��m�a�}0��e1�T�J�j�f�ۂ��,X�` ���"�)���B��fc��a7���?�:�e�NNC�sa��tP��M-�}-�a�5_���|٬tRp������A\��ŀ5��`��g^���F��B��� )����KǞ�V�Ag=V�n�r�;��kC�h� A�]e����9^Y˴a{� ��6�4;=YU�۟��u�e��j;�C��b��+ʚi5j+����{,�|p��Y	���-�������z\
�z%
�%��+K�۳8=cٌ+��n���g2'j����ƴ>����<K�P���x[�����mu՘�@6���K�z�\桿�ч��\�^�^��<�x;���1�b��_�}���J�J���zK�ٱ���Oڥ��&��2�V�f_5>�؞�ܢ�{��=ֶ�T�7��6���:�zO�O�A�c7|ؐ</Da���O��ʳ�|��O�7�>�����6=P�Ht��D��H����zXcQZY�(���DW��Lc����b�aP����vR�V�������̓�P�X�AI@��L��0xscH��ջ9��_��L-3��Yϖ9��,��?��`&��YCh�b��1�����%��LW���9��\:�h2����ֵ6��I�2d�D'P�k�D�>�-��4�2�����k�������%���F-�ba�WPN�7!�_k)�3:�%~�ԇ�V@e'E���LA�ȕx\��Pl�^[sY9�ɞ1�{ß�g���Z)xo��/�k[`��I�=֗MVk�Z(�՟�FI(��ԡĆj̇�º��5���Bu�W_:�� ���~��C��>�R��K{6����Y�������s��N��H�C���t�C�5��PJ^s}J&wn�VEΡ�^j�o�:~��;��o�2Y|�����@�͚��j}�`=�V
p.^�%�r��R���5��W��2�G��R���c�z�ͬ��:��y�,�|�d�	��l��=����9m�p<�J��n<ǭ6��Vٔ'�FH��}�M��%�,̳,��CG�����ϙB��<�ғ��u����]���N�<+R�*�$�0�0�l��q-Cfd	��H�'���e��6�X�K��vg�oC�K�!,��_�r�������~��cr��g0��ۀ4�Td%���X���}���?�8��R3Ea�P<���Y:_D*\�vO��?;���,������ꛋ�}ko��w����/|�׾R��5�o�O���	��?�7~��q�0��3H�}~����g��bx����Je{��`��q~{֛�r7N�-#�JA�sa_/�	�h#��ۏ83�/��r��71�K��π��3y���Nq���	��b	o��^鎥B��4�qK|�o�
�'-��_���i{4��j�ٚX�t!b��iC�����9��&�v�^�9�/��چv�Vμ��t�f k�A��!�x*��\>��}X���^������<ie���=�
o��6T�P߃�,@���A9P��7�$�����O��O���o��|�T�8��f�I,$�˪�I��|��r��vY��7V���5{^�a*ͷ�+>�@���d���ߜ��~�:���d�h�5�7XzDZ�l:�z�䰹��-�LQq0,�Y�ƃ�� �T	�>_$U��D�lL�g[�k�� ��<��ۇ�	��<C>�o�„<���o�J"@ʹ.��.�˯3��f�����Ml;�1�p����9�B�"���QE�J���B�y���Ig���Iu^e�Pc�����F���y���б�GU�&�w�C��צйRy��͔����.����ˊ���{����`k��rװ�>��(&�D����N���x����hM���5���
�R���t�g|�����A�<k�+���pI)%�~��F�b3Gr�w�}@����0 
,ˇ�P��������5,���lj
��ecI�@��ٚ)��K��8��y2��~�3i��މ�Ehщŷ���5�ϯ�g3��i��z6*"d���F��O�>q����y{��^z�?��f��Y�5:K6��#KV�g�4��h��2;�%��ߏ��ҾG�� ��m۟i����W0'�F�颠@�����p������ڂ�����6>��^G�z-��,��WL���g���	�$l2T^�ɚ	���l���7E{�e���eW� C9{�	��
�v%T)ʶ��ک}��>�d�`�8[P!=������۲EZ�a��0,���傀x������a�k�>N�EN�A��S&�\�O[��d�{=��
��*�\��tU�x^��L�;�ӓ�)ϕ>�xϏ����ά��clAyb/�“�t�
#e�b9^&�+f�4(hJ�ލ�&m�
���hҹq�&/��y���E�&�6U6qTRV��|�8o7�y��pU��s�ڵn�97�+���qx��J��Q
R��>�� ��D�Êj� ���u�e��9��ѿ�<�����7�L�48�7�!�+�mH�_[�-��`����b�'�d�
�,M����{���_Ҿ�3���G�z�Y�M�úi�lYvf9��+�6�Q�x<^Ff�������9J����H�7�0G�xm�4	xZ����a_��ܺ
��@f
g=�1)��<���������;�����u��#�����帶>�X����Þ�J�^3�B8l�jv�_V����`9	B�j�5dQ��
�eZ�����m�bC����j�pM>��YP���^C�h@�q?���
\K[��9e.f++�T{S�ڵ�b�?S�(i���WϨ�0��:�ƺ�1\�U�bh��OyY���9��+�����[\P��kS��1�N�*9�m�}�ܢ�*}���K4;�mЋ�|���LR�%Y���s�Ԉ)Tu�E9?S%��j�����}:&���Y��V[G�ɉf�('�O�݋`��_P��}��s�f}�j>�_3��ɞ/φ�H+�ꚃ���P����3�
L=��m���ۧ<���C����-��=͙��<ʹ��Ɗ�4Ҟ����[���\b1╅�&��Z���o��w��,�͸���q�e ��5L���&��{��먇֪�S���PZ������v:
m�r���w4�Hk���
?���֓,0�Y�k[�+y��e
؄1� �Z�`�'��w��g�ڙ�\���Pji�q_5$�*U��_�e&h,�j4���-^瀕��;�V,�r���
�X���i����h?~�[*�i:�ȡ ���&J���l����((�fZ"�9r�r��ib`l��,���r\�����fm���A_��o��F��|HJu'�<��c���ƌ(�3�}�o�>��{�#s)mP�
���D��,FRqҕ��S'��b'1�������>žf�r�Z�G���=Z�T��(��ƽwH�̓>|��e�(7zb6���{:c�8���|�pt�����r6w\���hk�#�G�2Q�Ðu�i-P�/ܤ��zF���	���%�e 9.q��.�~�]�#����s�/���?y5@�@F�ؓ�q���^�t��bc���}�^��R��x`#��#�|{��3���f�	��i�5��?�����1Y�`2�B6�W����A�ZeG�e;``Ơ�Fr�ݺu@��@��MM][6GTE�Y��^7�
JluL���ry�����C�H =q,}y@p�Mw��$E �M��=�g
�:0�_�ns6=@�S<�����o8�f���/�>��5Ə�8�o�K<����ѭj�?/&0����@i���-�ﰇ�#����1
���6��B�d����e�H��z�Sa
Y J鬺d�,��N6�Jh/ۅ~ַi��v�U|�	\�7�+8��g�.>&���HP�5󦜙װ	ܫ���ͧ�)�wwG����7x���T�R�X��K�Y;8�&���jaK�9�P���r���8�>�f�A=�t�;��#�~�a�i�9w����c8��V���A���u�b">�dX�w��dg3$Ǭ2��4�zwY��r���L+��
�sP��!]��a��@6����	Om��+{{��.�܄�͛�d��"�X��>��ÑrI��5N+�QΣy�r��/� %UĐ�������i�s�x��G�!�b����0��f�?ؽAxX):�}��:1��g{��(���b^�v�8+z�j���=���i ��s�lo���ؠ�Q�|:-���Ҷ~)5�&g|\6��cx}g�II62�g��b�����PT��=���xPòj)�&���A ���o��w��+-���A�Fc���^�ʉ�
����b!�Ƀ��g{`#��3� �{!|����&��sL
�F#���Q�>��3k��-L,ӳ���`����V�+�\as�`f
�j?�a��(�'�qE�'_��E�=?���Q�L��q4d�)$��[�l��5�N=ܜ[^0�S�֯O'��U�k�_
�3�}5KY�F���P��Av>bjc=M�N�����'�NVٯ��<ɽٳ �n�DIx�J4��;��
�eE��s��A�~s��G��~���3Š��"X��<XȠ�|�ve�S�����S�<�m۾�h�
�!}�W�n�r��;��ym�k����9K�]����dW�9��m
w�R��N�3%�'�~�iÃ3Ї)���jP�q��)R�2\%Uj����.s���}?y��6g�;�B���z??�&�N>0�:��z�?�^tf��i:2�й���m�h�G�4BB�3��q�ݦ+t��{sT�)���"{���غ��3ڎ �[����L��w��~�[y��P��A�XE> ��V/�	�|��<�'��:��*��24�֬�0��3z��I�+
�l~��	x�`C�%���-"6�
�Ü��6(K�giM�e$�57;K&���`l5��dG���տ5���^1�$	`�`֝[���@����'$�j��w���c���&-8z�d7��MN6p��X�f����B���3�d�*<���@��*�3Y�6�
�m^��̨a0�F+�[��M�zKW��h�#u��R��k��X�"+��l�����l(���zSi�b�=�V��˥)�	�����I�HЖ%��X���P�n�/���֬6��H���Hq
���i����*��C௅iFye���0q�`�k�A�˴7��[��q~�o��-΋��nqvo�YYv�M1�lG��$�po���xZgI^���n��J�2����4X��V1�?�鹅�;'�{�BW�Ԍ����A��B'͂�ζ#j*V��`�T��{7kU"���o�b�_w�%#�C�Y�[}�7���
Dy��T+�a7��aU����F�<�F����ި
�<��_߱F���������z4˳3>7)p�|Oǽ��5��B��9�Εh6*�wJ�F�j�VR��σ��j�6��9�飭�L���l��G�C���f
��M=Zi{H����I��r�`��֯��Bb �<��m����8��{���x�x�ɦ�����Z��A��̦aUQ�vL��df��d��[f$;�t��ܻ����x�/�����Ļ� 뮨wԭn�N*Rx3�:�V8�#�����r��0�z������e?�����o�w�u �r"G��{x�W�'��D��wlJ;w
�A0�4�f�uVb=E���#1�xΧ�A��y����wAl,�i�Ad��|��l�|@��5��t�v�N{5���~A�b)9�,t8h@�?le�e���+�m1+���ހ���VBn��1M�5_iW{	�Tof�x7�:�q�gֻ��q�A��.)6l���D��'��o6�3�O�?y�w��s9���}�&���Я���
r��?�T�t��qw�۟�y����,�u���c����ۘ����,�n����^����"������V��;OF�e05���"v��s���K1U!�q�AB��W��$�7��(T:�=o4�x!z��B.�@F����A�L�%�@lo�6��;��-L<+��ب��Xأ�jb���A\k��j�����6�o3X��!�S��/k��J���f�6eD�-���s�n�b�w�4�A�X�S�q|����H���S��H&�Wc��O"�2��
�T�h����m��M�ޭ^ ����������7y���Ѽ�C�u��ɖ��-|Ⱦ�;��@�X`��0wi#�����y3���B�Yõ���a��^�zy'5���G�4&�͙A�gT�x8P;MVtw�/�[Nl�{j^[H!�-�SNMc��"�mU�'
�*��Z(̚н�aWJ|���T�B��������P�?S�^܏��@�&����K���yXj�	X�Z�.=%��5`��>�Fpv�7�k��s;E�������G��y.�[��i�^'�}�9������y�fY��
]!%+��V>i��/iE�5�[��V�ڹ��I���YLf�h@0�
�1~W��$e�,��2f�D�?��j��
�?|/��8t�<t/N���j�Wp��赺O��'��
u$�J�Q1��e5\�	YJ̇�|717)Q����.�l��W�vٚ�`L�Ws��TE5
��!�PB�&rF���x!_;���|{�f�!�u�ȤZ�K甛m�?;��`��^�`ﻄҮo�-�K-�$
|��VZ��ե�F�� ��ww5�}-!����^W�;�}���=3���ۗ�3e�$�э9Fۨ��.��u��co�M6텎o�����?�g6jՀ�=�M�bjVMX�S-ׄyISֻ]�p�����sV�!\�r�>��<����0�b�G9H6�5Ny2��_�3���y�ok�VL:_
�v��ˆ�z�Dv�|����|�)�젬��6t��cS��6��:�-���:TND�ٵ6Р�l�J��3lhn[m@8��R�=bR�����j��r5�喍��,I��\,5��֘]n���c�pl���40�g
y6)�N�jlҵ%R�Mՙ�� �C��	~_����|R�%�)�������S��,|ҿz��^���A�64u�{������P��U����*�W�X�Sj=�wI�(� [�Wn̨jT=�	粒���L��A���
��u����ڗM�V�KS��&Qw�'�����v���_����"�᝟
�݌3i�o[���{�s����1
>�1v+&���e�Yh�l+���]�r�F�����V���1hb���ʢ�e?�jT��4
�Y�d�Ӌ��9T�=���#�o�r+�84��I"W�S�l�Md���8��j�"��,��Rh\���n���ԶZ��<�>��`i�l��	��̃�Q���T�[0�mOC:\Y⻊��0�J���ݮ�N���Ip��Y��l��Z���)j��m�Ҡ���料?�ΰ���x	�R����0o{s�{\�a`��0鹱�OQ1֦��6T�']��y<z���ن�a3�t�:�
���Dх�P��z=�Aq�h͆0h8��)w���U���B*�^���~�u\YJ-韷&�45{�=�"w��ZNI�
�١�Ybd?#�8���q�|S��Ġ�>��w�r��,n1�d�[�J,#�{k
�ݾo
uP�i�s�%%ZS	��j���~�(O�v�Q�	�[��ѭ*G[��q��-��.±��)�Ϡ*I��䪢�ydXC�Η��ޡf)�� [�Y�I��H��*
C����Kгx�[�>WVZ�um8Zu��T���&��e.躲�7
[q�~��E��K�U}�%�����nie`��>@β-��Sѭ��7ה���jRAd��s�YOu���|�a}qO�Z(���l��j1���l ����43�o�{&�%z��6΃���j��j\��ne;{�q�`[�WG宺MVl}�����~.���P�371YCF[+k4a�d��"�yr{�^B��
�#�=��ou�Jc��-�.9z��t���]tP��)�7�Ҍ>�'��N�'Ev&��͉/>+��,p3�i�x�c|���[�$?ҵP��(��Z7,Nm���ݻ�����x��
��g]����٦���ޤ��#d��b_6�pneM��l���3�5�+*
��'���O7�^mJꛛ�
�pMb���2P⿊�4Uk�3$��B�D�#I�
��ɘiq�Ԩ��S�t4ך��F��ެ��$��e�β�s,�����L��-zE��_16/����
*"3�����E�g�sbRc��*�
Y�Wg}��uo=�޽�0�ŀ`�hp�q8+y�xhߵ��YvdMA3��Q0.�1�Q4���VԔ�7B�~��kQ�a��n���cm��$�8���
N9��;M�C��[�ѵ�h��H�C��*)��0�Q�xp
VL�}k����g̹X:sl��F�ߋ����4t���h@�FK!kN���{xY�M��=�Y�LYBi�D��y�-�/��(��EaF��%z����X�`߰y�z0	�Fɠ
T�@i�M޳�8�`|~,��P�<;�R��l@3�Fj���h]�v
T���(%{�����ս7#e�P�,�͖�f����ak�?��ػ�b8�ٶIOK3j��x�N/4h(�
}���V�b��T%֠����&�ok�ͦ�������Ԝ��5��&�#�̲s��	��5������i��>�5�s<T.��=Ȃċ�\�h
��{�|�>6�i�^kW7��F5�X�֟��Pm�:1�#�y+�94�����4QjZ��
�Y�8��
C�m��92�*V�l��"/��P��Z�ʠ)��xc�G
�ܠ�^��p��l����~Gf,���K�3G���������qv;�eFͳ��b�<�����{��>��
�O��O �ہ�"��7Fc�r�l�fw8�uƛ��&�Ơ�tow6x�^&�����|�-��Is�OK�4=�+���(u���~�n�V���p���c뽏����+JK���!�F�l�G7�W�ZnTcpSM쟨�_K�T�*���,�d����[Ji���~��2�"�_l�.�U�a��|�u�Yb f1�
��,��&���{�d^�9��T?�d��}�+��F�=�������蕞��N(]�[|R���o^MY���Kv�EeF�����j�d�F�U��9t�Wy��y<]��ьl�
A���� ��m��)NB�8�i�agH�M1r�!������j�,1�6<O�(;l�x��ޥE9NFPA�e��4k�*�j6%�M�xRP�4����8�cƞA[��|�S{���ʀ5w���C��������쳗���<���Ǩ�%�N�'�gm���6n�ϙj�lV���nEV�|,ڀ`�34�$��bTWMV��h_j���]e5_��9���~�u���d��� ��
�A����k�d�gıi��17`���bk�=딉j�B�����ʎL<�Z���e����¬C������Vy6�G�
�4(Pc߁�Z��Zͬ�P��֪&��/}�p
��i暄�"�6 Hv��5l,�sQ�,
���Œ%0b׋��H�3%E�+�
��C
j�}q+O�g0���p�9�)M���]"|��V��$�擈�YH���W�I֋�_X+��C�,�a�k��8p�`���Teq�WXڸ��E�j����<�]15
�pG�V�c���Fa�9c�<�eւ|�-3e3UM�YLz�״�<��zn|�7���}���{o֚Y�����2�Z(�z'z�d�FNO{��9���ׁ3�;!��m ���
�6T��)��j�U\̫�����k���zU�U
��ާz�R��:6�8@u�Cц�O'�P��*
g1X���_@q� �2����<Wvl
淚�?�n�k*O�L��W�r0�D2k�~vQX�\�W@��pw�3�$�}M�Sf	I��C����+���ِh*�V#�M�J�(Q����d�l���r�8�%!tW������8�R�D��d T��`���B���>��a�R��3<ɿ�z񲘡{`���s#�a�Æh��Q1�-.gcE���3�0�M��N>��A1�F�T�p8�ޘ���B�`�O1�����uy�I�{��	�
���l�:Rq�SA
����\�^���Apˌ��O$���m
Q$
r���Rn,�U�7�\E Э�X|‰�l�L�)Q���r p!��z���11|�=��h��G�,֙��!�vm�-0��X
R�(�3MP��G�j.^�N��O��&��g�#�U��O-��$N�<팍�z��P��c����g$1nak����Ƅ���Ҋ���{�y���cc �j`���t4�j�<���Y�$�d�������Ls��3Y~5�Q�|5XT>�Ͳ��f(%ܟ��q��b^��ԫ�y5۴�"f5l���8��=�jW��)ۨ`U�X����p�Y����b��-M �;�5*n��H;ɀ��t�,e`@�q<q�y�A�p���8$�M����<�Un�r?�d���.�g&���+��S��D���w����OG�ƁA�bM�N|w{�~L&W�``��[�O��O�!H��)9X�O�)8�S�*m�5.K��Fg��*,� ��@ޘW-�ٲ6�"�+x�g�B'1/��	�3�;(HKr‡3�%YRq����{V�恚�L�Al����5�W(�w��=L1_M��KAO��O�N��"p�>����8a͐}_��磙��:�]�vm+���+��C�1yd���f�LX��`�w~⎶B���1��)���c6@�����:������Fu`��έ�6s	��XT�q�L�:��V1&�yhWɎ�E��@�e�ζ��@ۃ}��3�k[Qm0�om(G/*�	���d
أP٪!'�۹}g��a��6dl�V�”
4:�X���nRa�Z�Ŏ�=��"��(�3��bɤ�QXi=��oi2�ӹ��*�-Pd�U�0�Gx���y}?���ղbh�e�&�����hD�y-[co:+�F��g� ��i+=��*��z�=j��u���
M�Y��ZJ�w�\M]5c�A=�k稳�o�)�8���t0;$�a.��?�L��&�1���,�����UH{m*湔n�r�\e�[c�9J=��E>Dj,`�j͚ �PУ��Vh��2�9��C񲆟��lSvp�عȺ�o=+��Krc�z���e5��n���+c�e��!;�Vv�B��k��&ū��������$7HA�� �C+�y���)6JQ����
����yγ����6�ZƽI�
S7�FL���ٔ�3�Jk�dj�Y�.2�`A(O���fNRcu6z
�M�z�F�I2��e��K��E,n�c���:����3��s�8ȟu
�l}������9-p[�/)dWߩ�3��A�"_�5wW�$��NHA �b�Lwn���`pq�:n3����T���2;y	�"*!��� <r���14{�d�@u����	^���`� \�����C�N���X��ia�}������>�D�1�a�Z!�ނ�G�'vW��Q`��-s-I�h�vjLC�M�n��[�k�bYG�Ae�
�I�䫝հ�>���\��5��@<$��H��-�-x�xA=۰��I6�@�(��4�Xj�g��ݎ�
��t�X�\GՈr�Y���ͤ���Yj�m�+���fg-��/�<�>���~z�T�l6\d�B�,��"�l�u�z���u���sڔ�Q9O�}�s��&c�$skyV��@8�}߿����_�"������v1
��֩F���=�ɜ�6hY���U���raƜ��lؘǃ�����>ב5��P)xA���ŵ�ٔ�kن��џ�,���,_�"��Q�e�C�6pP@hԽM��2���E�s482����в���{�~�q_Ӈ��C���
����[��	�@�x2��$����^�Ȣ�k;m-��&�e������Q{�R�mX"���i�y�mv6������(��XAue��
�e������lw��قcq	<�/re�y�ik*˨�����]��ׯw�%�s��a����i�G�fY��kߋ/F�B>�q��T��\�y����
Uю�1����C�z�-V�s"�w�8�Z�c�鎇�]Go��yώ�c���4I���b��j@>�n�A���V6���'�6E�(��gX'�E%�]Yϵ8�b�B2�a�o�:ˀSŠ������.!��u�€�6�H�&�:�*�2�Ay���l�q��=� [́�9͖�2k�EV�q��M����S���e��dMf2GB�k<w�a(i���γ�t������)m��3�x���$��	�kߍ�k��x��νm;nPv�5�L�l�e��j8{���(������.XX=�H�
<��Lh���~,L�>����@��iR�A����V�ê�@��N�4/x
�c�.a��k�ӳn'd�G[�z�g�&�g��Ʋ��m`dbHv�C��jq����by���;*^�|��8)��Hix�gӇ�V�{�56��7�!���W/�����8���u:Y�&d���}[L5�H&�f�Bc�u\�VU��oE�b	�Y�W(7�w��T6��%�̫b�D�(���ɳ���6S��A�c*�1�/�_k�{��Z,�(roO��K�4�0oWڔLք���R��† �sCm�����,�j�^��TLv ��^X��dȍ��������f
Dc0P��
*��1:`�3����z��f2�lҬ����M�!�����}�n_��X�є+�1��P��g��/1�B0��Z�`�Vlj
�of6���9e�}�>�y��#�C�O|;r���(95p�,�̛r?3x]:U�ݤ���=�,d"�V�u�����94���`c�p��2�<�s)���/��;h��F1-�}�BsR����ʩ��0����o"�Y��k���M�-Ā��i��W��K&�?�����
��-���S�A��z��y���8d3��zR!r.���M��q3�C��dz��V�͗�:C^�a�{1�@�"��P��w����lA~x���Sc��Qn���&V��M�K�-"�SRvK`i
c��J9X��p���]V�S�09���]��=PI�� �)_���
?ޙds���B��h]F���^�m�Gc���?�u/�"�^�Ekkb��c�7��B2���p�P�3���nE�$��E��[m�{HcFi,�$��jkڞ��k�
�]���P��9�,�.Y.��0��,��»Y�I�UX`xV6k6}�y�x������b�A�v�����)C�"�`���P�VD#�ϯL�+0vl������ޝ�KɄZJ��W�`_�M�Ɂ��.��I�b/�0��SH�;*\1g�Os����
����T���
��Ő�/bJ%Wψї���[^�5J��{�D	�*��X��]GnrszEޣ~�YϹY����}�Z�2J�S��=3 ȺG[p��,����~����ʶ�ၽVŁ�[^�ԣ�,�s��O����M
�5}Bgا���2sQ���~~�ɓ�û�
���Oe�Y�3�����<�moHz6�l���^p\�_�v�(L��1vо��5/��Y�d�u��ݘ�1�AJن��%��]���n��	1n{��I7�)(E�_��X�9yd�E�8���
n���(��L�X��i��ق}{/6��nRC>W�7a�lW���,"X>��=�ĬAe�{p9�(������_�9R��&;�j�ہ*oc?�yP9�D;��,��;p`��\L9��SA���.vή�3Gdc�ܢ�~�`‡���`���;s�m�΁�̗6X�*�\Y��$����6N@'~,T��W�y�Hq���+܆٨I�W)YC����rwH�GmW�f�[�C��Z�]d��vf�zY�@�x�/{Ŏ�g6�C��&���z�?DŽ���� �bC\�U'��y�g,�.^js�پ9"�@�֟���x����(�!�Ɛ�*��Y���{f�'��T)I!CN��dC׳ȏK
��@3���z�{�LkI��b���w���vO��"�d�Fx*��;bI5o��5eV;�4U��C��Ø!S�@o��P���T��p_�����ߋ}d U�2��E�ܜ�=��0f�P����<�V�M��q_7�~1^d��j��l\;��];c̃��y��u�B�!�]Y�p��]�fW�~ �s�ۃ�^�
�lݚ��4|­��Nf�J�f�9����r��Akr��S�i�O�fU���j�H�˞د����i�-��`U{��0/�f���_��^n�Ra���Jn��E��C%�P㙶iň8�'!~�4������f=zj�_�H�H�a�-�����=_���ˑ���0T�$.����Ξ�؁�[���1G��r��E.��r�uE8��P=e�WφNF�C,-��m�6=�b���2�z|���l��u��MJ�T���=Lj�"���IV�{2�9?Q`��0PQAh��p�#��}W��gq�!"�2��v��*��5��o�h��L���-���6��Ty��o��fS4��`�z1����uo-:��u��ҳ�׈yu�� 
e��� $YMt�Vh� E���&\�"!��3-7�`�	5.�Kc��?#~�*�;tO����k�Ø��m�����=\h�Up��Q�L䮛����I�'eY���Lg���Ǧ�&���ݠI_�ZD�E��x3w��/���Z�����L���P���
���%6�*�Sk�Ҿn3tVS�U
�GlF�
'k,*��X!�M��"�A�M^�#�w���R�X��v�$��ڮ�� �B��|Nܕ�_�|�-���up���1Ʋ��\�]���aցl��ƒ����Bi�� �w�k���lMV4c��qg0��&��kn���$�;̉
�n|:�YHN����쵺@ρ���9�m���
ۜ�ƀ7�s��j<��{��l-hv�`��?����<���f����ĭ��Dz�WId������*[��b�Hɱ�1�=�p�Z��`�B�y��5WX���
��j�����YoE�"{_K�n���@�y�f8�q��l�-SjY/�o[f��fJ�ʥ��3��8��)�m�$YX!=3s�ȃ��I�@r/X�p�w�>�6Ԙ$�fx/
���n�U8ڈ!�-*/Av:�������=Pu�}�t�Q��\�*e��3#\o_�:�����������&�g�"(/��O{V�dr�C#��F	VA9���Hܣ�&'����j
��dz.r��A����X�T{;l�IW������ήL<ٺ{܋�E�y�
�M*���l�H�2Ļ`�.[�3��eC�����Pvс9��;q���e�Y�@2���)�9��S6lͻ�O�=ÒM�u��7yk�j"���}�ݿ��>b����,62�Ьl�.f'��Î�F�~J4�������[x}7�Z�|��C�ԁi`�T��e�^����zXyR�3x����^�:�Q��$*��S(��&&pLÀ pb5����{[�`c�6 ��w�ϋ��ڀ��Am
�);+^l���E�M�
��s/�A%�3���*/\}�n[0��3NS�LX
S\үU��Hky2 ���yS������O��>qQl�휛��1�A��;�l��Ɲ��6��{纥�JUG�gIuTj,}��-pu��|��� �x�Ϥ�4˫U��8[���@ƈ�NEY�UZRx���(K�:d�d���{�h�g�_�>j�P�|1�z�Ie���c�:خ�!s��'�0�L���/�܋�%|H�w"�y�����w6UQ�65���m�1� w{ZL��j�1+��nI�f��Ew�d�2$ݘ?���|�L��A�y�U
?��U����Wh=g}�e��ÇY�ջAu��h�gx�e�]m!��Y�{L�F9���iz~U�CGRZj�s+�����:�|
	������Y(��l�Oe�(A�j���{u���q��31B��_p��R��"�)��z�$�hYE�WA���g��as�e��|�c����)]9ӷ�ڔ*�n��[%*����={�:de;m�����PW�f~VŃԨ̖���F�����CeW�6`Qy�bB���'�o���ٮ��J�F=9��p�1-W!՛.˭�;3�k��%i��uI���2�T�{��g�	��J#�[i�f����-�w-?%I��q�z���j{��u��"g�DE��os�K�v�ų�B�g�+�bm�b�YJ��Gq��R�rX@�K*�R��?�!�&�gr��s��@�<�
�@�[��*�-{���ץ��Τ���"�����G��!�+�B1G� g��� 5���T��)K'�
krۣ>(��&��Wt�ހ�� _1�酟�1�3sP���A�x��d�9��s��I�P\u�=��Ȣ�>Ȉ�z�q!fPlа�q#�$�`&3��W	���K0L�rHxk�Nv�6���W�����k��ۭ���:(���R���*�.g��W��)�d!��g�ɹۏ�8�آ�V��hC�	��Ɓ�SK����}tn�R0�NM��EiG{fQzb�?"�����J{丵+ɪ^F���,@�����CĶ4�UE2u�=�dU�HF�7�˚驅���Y��N%�1$6���AG}alJIVKm�`9�ػFK��d4�P��O�Q-��x��M;M�g������#��c�I�����?Z.�>M��b��F�)�|@����ٗԧ��Ռ_Lf
G���|��V�X�`b4��xȱ[MB�w�fRbt%ob�ډ֤�qWH��Qd�3�F��a4�ҽ��)���mʉ�}�|��$�����+m-��8�P�JM&
������Ü_���1�_�QCW�j͟L�=��Ґ-A4?k��_'�6<7I���,�d���i���u<W�9]�	�k�)N9#Ć<�p��V2Q*�s�b�ʇ���hw3��Ȁ�����d�W�Z� ��I���
4S�e�A�1މ��D�U	z�@��Jx!�F-��	@��ǥ���w�@�E��,U��'��VB� Mn_�9YJ��N���PO� �uGa��r[:�W&�Ζ��򠩝d��v�^(ɘA�0�t�}!�5��82��
S�=�
��,Jv�@X�i�o�M��Pũ#Z�;@_E������e��^�&�i�Crut��I4�t�1\���dE�2�2�_�*��I�5���Z��좨�h���bU��
���y�E�+�ag�b���
�\��ty!V/2�NIw5+'�J���{p���{1I�%�s�Ży�ֆv)��Ѻ��0p,�T_��P����E`
��@=���B<�\)	��j-=�{C��u𘉇��yP�u0���=�ݬ�uӦ��)j�LJ���T��5	���= � m8�,
U�RZ���k�3H�04� �͡^���g��툱]o��>t�4��p&�nM�"�[=�0�`Ո����f)~`5���ds��e�����ԱJ�P�@�928ƃ�~j<ݟSa�o�\8��ډ?��^��lJ�59k��~�kj9�B�	/:���6���sO7�7���U\�}�f�=��<�c�,C��)ޓGJ�޸,�6�T*W~�t��)�O���r����Z�P\]/ut~���f�Z{\���
fD�{���x	�yT��z��~�	�$�p���b�C�Q*����QvGg s�=��e$�ݘ�
���`�^d�(�6T7�f�{�9k��{�b7Pz+��ukJ.��6Km�h�����IL�s�|��\Ci�dT`V�D�5Zo�yF���"���4����q���|�������j�Q�
�F�[%5�d�C�Ք���G����̳�a`X�k���d�wAP�ll��j#������ᕺ�6x��Dv֤7�M��d`q�ٽn�|U�{X��!�g��W��Avt����f�/�$i�mS�	�06�]I6�ι��w�#��0��`�����ɔ��v#��<&��cN��|_���z�2Q���]�h�Lۉ,zx���Ip���7@u:�u�&J�"b��9�Y&�
�s49;%B�?��y�~|�[M����q�
�L�J��<�\�F�6W�����+��2����gHQLT[s4�
���/���0�}&emnSH���H߆�	�2����v���X��3��^/�2��A:��@Y��9�CT��1Q���8�
H^�� y]m���5�&/N)9�S ���*�'>��	r��~��\O��p����&��S��3����
�8�/�)Tg�v�D���9�i��H~7��s���=h�T��W�-4�v3=�a�!̥{y<(qC���❀7<���6����Rޕ)�0N�,s�J{��V��Iك
��X�w(v�9vd��Ge�}[r��ɢ����W ��<��Vo�����gJ<椽�u�z�����@��n%�>����G%��B�������)G�_�¸�>d�!%�8������(l��|:#�-�	���|�F	.ǽm�l*��S�O��gU�'�pxA�B�&٘ռs8����:��횒�14�����5`��Q�����ή��s��������W@���6���8x��>�G�JlD�ش�/B�z�xeKx��ɏ
�~^���v��j�$o�YT�*W���]��;!�U��rJ��]>���u�٘������,
������m1
V�m�~�j�Xlu��!�pz����@n1kL)s�4B�!�B�	��Ω$�\Del٦�R����*]D�K�)_�K��8���+J�>4 &�˚�HZ ��ȇ�\�GI��FMO��ڜ�9	.k;<�qzS��]��)sb�_j�W����������_�J���B!U�M�7m����L��`fH	��7��&�^P�V2�19I6X�RHAƹxx��e�i�#G�[����Qg�)��k
oJ�Ql��[��I8ī!��b��2�ط(9��A��n/t�аr6\�sx_��koLH3C��9��Y�[`,8�|�&;�aF�0	�h�֪�+
}2	��5tt�o���mC1k>$���a���}/|p�k�������zX�_� 	�%?S��4���$<
�纼��Z�UH?Er2���} İb�φ���s��D�T����������vҿE�o�4�C56�
�&�0�ã����}�ݴ]]�">q�QV(P��6U�㫐g]���.��b��jH�����ͨ��!��mm2>�8�m��+,YXj���Ӏ,.&i���_|�C��U����
��"0�Z�5��)������z�f��fdr���̀ɔ�L8Ɏ�\ͩH����p��]r�.Hj5EK�6'���/!ۃp-�
&x'\L���f]~��d(I�1��S�=����w�\����%5y�x��uk�?!��r��8�̣��owram,�oD�+� ����9 ��͐��ɆU(,QG��~���R���
�?X�O�!�Q;o*�re�ϒ�{U�i���ٱ~[�(�(��@TƼ�+�Sp�k�Z/�;�W���=�?��tO�����dN0,�c�
��b�"�Ijx�*QF�)�]���BB]Ŏ�ݦ$�6kP��;���9��W�H�?���ct<E��nK2����>���m�+�����c�
�Q�x�$
�=�g�~16\������s5ٍ��5z���"<�ۏ:`�X��_eA4��~�o�7\}5�K
z�B�B
�כ��E��=���
�(��}�'ïD�z�#某K]�:��b��Z��r�9�L�+�o����i�{g���?����u3U45��{���Ry���[Ϧ�e���tw�����u��M,�M�-���G3>���yBPyUt9*[_w� ��C�����ސ��S(��M�3Ir�	$�<�$�n���&D0��f~�4$����ь��[O� c)-�V"K�J�}�{c|�ׯ��4�/j�j�������!W� 2�BՕ����p͛�`�Y�l��L��B�4H�����$a���b�t��e�~1�(J�;�w��!��Q��}��|gY����D���M2#�m�ǚjQ�q��e	��E��m2D-�`k��`��z��~����q�ckkf�c�/�+��߷�q��Aq��v��|�
��jM����!�E߿�W��ܗf��p�4fs�YJ��-Wc���6����nE�)˒���{�+���b�V��X�am�(s��g܀���\�h�]gm�Aab��%��+�7S}�3�5Dxs�
I�K�\��b't���5+�p��yJ�ކ�9����|��׈�����qqŵO��Cne6�\;��v1<��o�+��.&3���{��YT�_�ޮwV�Hɖ�P&��f1�?��$��o_~(n��_!~]LF���x��Ԡt���4��y�}�zeI��zL0�Ow;۰N���f�	��[�����[x�k̔�
)t�ރ"JM����X�&�4�����u��(�LjdF-�X Ӿn�Q#v���
���$	��(F1|�S��^i�G�i���Ë����8&�������dgq4�y��2G�1��5y�Ҭ,�Wɋ ��
�!���t�k@�|3�Xm�8 H�̤iM&x{�k�j�MH��i���1�I)��vGog_o_��y�"��A|�l6@xwH2����P��Y�2��m-&ŞD�C���]^�rҹ�>ּj�i߃53��%�6.����d���������Y�2���TO�m�_���zy����_n|>ǹ�
Đe1�Gϱ6�a�����$����v:d����s�;h6Aƌ`j�7kt�x�ڌ�c�ƪDܘ!&��{���������4(u<)����P�2YOt���_m����k�
uC=�q��굕ZO���7E����n-6��
���C�b��k�\[�Ⱥ�e��'�K�:3��u���kU=L�I�0-�9�uf��~6��.�?�Z�������O*y�O��QN����Eu#��~]��h|Iw^刺rWF3/�U��/�տ3�`�ij�������� >\I�%�1$�S>B�|��rY+�����	Zwe�Vo
q8i•e��:ڋ�ݽ��t���^)�p�$��/�`w�fc@J(��`�.kr]De��AN)�]⪖njC$��`��uM� ?RN��LgAZ�u��D	�U鮻ԁk!_hTi���46��#��8�g�0�	�_�0Nf�S����U�>P�d-8�9�P�1큵��,�ٙM�0�ЎQ�f��)@����s��#�%�qi�I�����{��6���*
�d�G�D/m�TǶrq-W��M�/�d�%�t~��0�ɋ���G�w,蹆�10�,1�׋�>6	�V�M"�'��f��Wbg��š�����n�!gY`c/�0Ȣ�(S>2��%^dQ�'M�g��VSG�h�e��j��Z���Zj�4g�'�q8�'%�VT�X��$IǦ�Z%E1��]���Y�O]"�lU�ҘMg`U�D�/ȣ]�*)'�pQR�o1�ҝ��d�ö��D>fG�S�k���U��.)��k��	U���ė)*�Zx�ǣU�{�N�7�E!C�������׳��S
���r��O�&���šg�R�!��!��5�ܐ-��Y�3;����];���惆�T0Qp.&G��kt3ci�Yk��)�aφ6`$E��M�����_�ɢ��}�{�d∔/u���h�”�X���<:��h(ϣ�g:�-
���ơS���6�a��{�L�5+��NkS����CY���uG��2Ў�>CE���$��(�	sY�������t���A��!�c�ݮ
QW��s胙�k}t��|�{d{�Q7�C�����ߝ
4[݀����k4�^+����kh����<ĂI�ˆ����MaǍ$ɝ�_�;��kjL��Q�����u�`��1I�L���9(�Q+�:[Tq8Z�����iD�d~T��QF��)�'cVr8`2��v��}M�$�Qkzc� ����fIU������$�a]��!�D���y�(н�4O�"�f���̪����:(v���LQr.(/�(����)���t�i�.��OcRn�g���;�̏�����bI՝����r�ZG&�j��4�2d�M&�f4�%�f9���!�
ƜB&�Zx�Q�B�
�Ջ6�4��
fIȹ\W�<&�Pc-Z�u �D1o��uju @�&i���Cr��/�.3�X:V�d?4�{zԙ�8dsv��E�.d��qKu@��R�-���%e"łp�S��3�.�g���&�JZ׬U�y ���t��3O��0�]�G�stl�(�%�X����d�8=+��o������s��̏)+昍Ln�~�5_5���e��ք�̀�
ħ��\+s��bM�t4-e8ٌM�!����-̟���Ik�z��\��`:\��	%y�ا�M-�Hz��n{�N��O�Z]$
(�NN֎�����[:)Y)K�,�.�9Ӏ�$
r�"T�<kqP���2����jxk)��Nv�|ɀ��@�f5^Ѡ�t�}?7c�bHH]|�w�I�'�T�8�������s��ѱ��떧����u�A،����1�����
M��_N�����Ǧ��1_�d�?�U�?�y��=G�̕��,Yj ��c����L�Se���2֝S0_��o�G%�'�>n��#FٕD������~f�	�m�=�d�*꿨.�-�b���[h�Y�k�TD\Fu5��gI}�K_��˾��=�:ј���=���
�}P�L��)�~]�ۇ�b�nĖI�s#�EE>>��y�Z�%{�&��t�����Q��a��T�Fl�c�8�qTAm��y&V�b(p�ݞ6Q<(6��д��|ӄʧ4̿�WwX�j�N2�|i��Z��&%�1��?�X�u(hrMѦin�ũS��+�z֤>�[ZT�b�.�P�hͨ���4�W�L���Y��T�6d��
�k#$��5�j�]�~J�����f]�ظ�A�M��O'���\u��騹&~�'�y]���4�pnT�>��Τq�@��,3I�)k�ÅH���¡	q��6�3g-���M�Bf?��Ѵ0
�z�f�iM�Q��
�����#�`�����'A�)���u]�
��d]r/*;3ib��>^g*��c��֤��D{L�-@��DW�B�3���e��
M+����7L~��)�Lr���-�<v-Щ��yhα5S.����F�7#H'���ԭS1j3s�PF��AjC���$R��L�L��%@�L�|~8���%ѴI���{��Y�M2�F��F�Q���M��P�@#zn�mֆ��J�1�ޔZ�e&�Q��,�ԞyrM9�Rqא��5?(�CӶ�t��~��ImJ��Ai�oS6��c��%�z8p�ߊX$3`�w*وd�L�HD�4K�<Ulq�'�ݘ�����s��9`�`Jƈ�����_,� ��tA�y�9���6f7����16H<��ڑ����C��7%o�mdi��r�	�@`��}�}6cOh�+�Av�����9�Qw8�7I\U��<3_wٚ�^�^�I�����jȠ�q�ھ�oE��;�3j���UԀ*�/�*a�ّ��[�0O�ܒg�sh6��}֋)�6cVJ-�Q�������b8j����!F�} YC�$�Q������lMj��'^��F)�A�g��C柯)%��R���Ƭp��$��\�3����Sl��6`��%:o-��V��-�_k�}�2��h�P����)\})������!TM:���Xa�SO量$���8�������1|= �\{vl�6=z��)��c�uo��*�T<�� 7v�AʫK6mg��r9
�7y��]�ӄ=j��|��h`O+ۜ=��k3��뷂2�_Ib�[1�<\C��Q6<+�!$eh�;u�d��3X�:�g%{�˺Y��Z�i�Zۙi�Ԗ
Q���dr\��R}ږc����OM3x�l�,c��u��,R(T6���x���{��������C��)ǢkS�>���Y�5>:�Ճ2�:h��x��I���.MT)���aS~�8�%;ûh����}�=K�h�%hH`�CT�4�L�H>f�īIqq���a�|i����֒�ۮ|�Z
��őf�n���$+s
��y�7Ֆc#���?S�b"���c`œ�a�+D�,�S��a��%����:@N̝�L�'��l(�!��Ml$�����(���B���Y=�Hs͑�y��F�sg�x�%�Ui�^}�Xڢ�]2,����>����z\L����f�B	�H3��T��{����j4��L��0Y��=.kxd�;cf��4�Œp-����e�h0�.�y{
q�w���C�zd��ؐ�gN-f��6�
b����r����o�{<�{��@?��K�����f�](7�pۯ~��V28Y���~y�j1�y\>
L����A46qQW�s�,G���?3�n�����5=��j��QI��ٔ�:{��5��a�8�v�O�5��PK��&
�a����v7@�w36G�Ҧ��I�Gɱ:�yZE����Rj���M�oR�Y%o�&�
����ܬ9Ά}�~0&W�@�r0��و+97������%M/�I���H�m��6c�V�a�1$��`��Y��aD�>����ʳ�ȫm5����j���Q��J���z�y���nXM��f7{׀;�#t����`r��9�j�����T�k=�?�la�($�{%ڹ�>ƦX���	ؤ~���P�b���Z�B��K�>Z6�Mg�q�� b$��Ն[Y����-w� ��Rz��^�g\�;9�w-I�3�)Z��I�N�wW�����9�Z���<�^Gf�(�)�B��`Qe	�/�mIEND�B`�